[
  {
    "path": ".appveyor.yml",
    "content": "\n# 25.12.31\n# <http://Tomassetti.me/continous-integration-on-linux-and-windows-travis-and-appveyor/>\n# <http://GitHub.com/pypa/setuptools/blob/master/appveyor.yml>\n# <http://www.AppVeyor.com/docs/windows-images-software/#python>\n# <https://www.appveyor.com/docs/appveyor-yml/>\n\nimage: Visual Studio 2022\n\nenvironment:\n\n  APPVEYOR: True\n# CODECOV_ENV: APPVEYOR_JOB_NAME\n\n  matrix:\n    - PYTHON: \"C:\\\\Python313-x64\"\n      PYTHON_ARCH: \"64\"\n      APPVEYOR_JOB_NAME: \"Python313-64bit\"\n\n    - PYTHON: \"C:\\\\Python313-x64\"\n      PYTHON_ARCH: \"64\"\n      PYTHONDONTWRITEBYTECODE: \"1\"\n      PYGEODESY_LAZY_IMPORT: \"0\"\n      APPVEYOR_JOB_NAME: \"Python313-64bit-isLazy-0\"\n\n    - PYTHON: \"C:\\\\Python27-x64\"\n      PYTHON_ARCH: \"64\"\n      APPVEYOR_JOB_NAME: \"Python27-64bit\"\n\n    - PYTHON: \"C:\\\\Python27\"\n      PYTHON_ARCH: \"32\"\n      APPVEYOR_JOB_NAME: \"Python27-32bit\"\n\n    - PYTHON: \"C:\\\\Python312-x64\"\n      PYTHON_ARCH: \"64\"\n      PYGEODESY_LAZY_IMPORT: \"0\"\n      APPVEYOR_JOB_NAME: \"Python312-64bit-isLazy-0\"\n\ninstall:\n  # symlink python from a directory with a space\n  - \"mklink /d \\\"C:\\\\Program Files\\\\Python\\\" %PYTHON%\"\n  - \"SET PYTHON=\\\"C:\\\\Program Files\\\\Python\\\"\"\n  - \"SET PATH=%PYTHON%;%PYTHON%\\\\Scripts;%PATH%\"\n  # UTF-8 for unicode test results\n  - \"SET PYTHONIOENCODING=utf-8\"\n  - \"python --version\"\n  - \"python -m pip install --upgrade pip\"\n  - \"pip install geographiclib\"\n  # \"pip install win_unicode_console\"\n\nbuild: off\n\nclone_depth: 1\nskip_commits:\n  files:\n    - 'dist/*.*'\n    - 'docs/*.html'\n    - 'testresults/*.txt'\n\n#cache:\n#  - '%LOCALAPPDATA%\\pip\\Cache'\n\ntest_script:\n  - \"cd C:\\\\projects\\\\pygeodesy\"\n  - \"python test\\\\run.py -failedonly\"\n  # \"python test\\\\run.py -results\"\n  # \"type testresults\\\\testresults*Windows*.txt\"\n\n# version: '{build}'\n"
  },
  {
    "path": ".cirrus.yml",
    "content": "\n# <https://Cirrus-CI.org/examples/#python>\n# <https://hub.Docker.com/_/python/>\n\ncontainer:\n  image: python:latest\n# image: python:3.9.9-slim\n\ntest_task:\n  pip_cache:\n    folder: ~/.cache/pip\n    # fingerprint_script: cat requirements.txt\n    # populate_script: pip install -r requirements.txt\n    populate_script: pip install distro\n  test_script:\n    - pip install --upgrade pip\n    - pip install distro\n    - pip install geographiclib\n    - python -c 'import distro; print(distro.id(), repr(distro.name()), distro.version())'\n    - python -c 'import platform; print(platform.uname())'  # , platform.dist())'\n    - python -c 'import geographiclib; print(\"geographiclib \" + geographiclib.__version__)'\n    - python -B test/run.py -failedonly\n    - env PYGEODESY_LAZY_IMPORT=0 python -B test/run.py -failedonly\n"
  },
  {
    "path": "MANIFEST.in",
    "content": "graft docs\ninclude docs.html\ngraft pygeodesy/auxilats\ngraft pygeodesy/deprecated\ngraft pygeodesy/geodesicx\ngraft pygeodesy/rhumb\ngraft pygeodesy/triaxials\ngraft test\ninclude test/testRoutesMap.jpg\ngraft testcoverage\ninclude testcoverage.pdf\ninclude testcoverage.rc\ngraft testresults\ninclude testresults-PyGeodesy-26.02.26-GeoidHeights-dat.pdf\n"
  },
  {
    "path": "README.rst",
    "content": "\n=========\nPyGeodesy\n=========\n\nA pure Python implementation of ``geodesy`` tools for various ellipsoidal and spherical earth\nmodels using precision exact, elliptic, trigonometric, vector-based, iterative and approximate\nmethods for geodetic (lat-/longitude), geocentric (ECEF_ cartesian), local (LTP_) and certain\n`triaxial ellipsoidal`_ coordinates.\n\nTranscoded in part from `JavaScript originals`_ by *Chris Veness (C) 2005-2025* and from several\n`C++ classes`_ by *Charles F.F. Karney (C) 2008-2025* and published under the same `MIT License`_.\n\nThere are four modules for ellipsoidal earth models, *ellipsoidalExact*, *-Karney*, *-Vincenty*\nand *-Nvector* and two for spherical ones, *sphericalTrigonometry* and *-Nvector*.  Each module\nprovides a geodetic LatLon_ and a geocentric Cartesian_ class with methods and functions to compute\ndistance, surface area, perimeter, forward and reverse azimuth, initial and final bearing, intermediate\nand nearest points, intersections of geodesic, great circle and rhumb lines, circle intersections and\nsecants, `3-point resections`_, triangulation, trilateration (by intersection, by overlap and in\n3d), among other things.\n\nAlso included are modules for conversions to and from `Cassini-Soldner`_, ECEF_ (Earth-Centered,\nEarth-Fixed cartesian), UTM_ (Universal Transverse Mercator and Exact_), UPS_ (Universal Polar\nStereographic) and `Web Mercator`_ (Pseudo-Mercator) coordinates, MGRS_ (Military Grid Reference\nSystem, UTM *and* UPS) and OSGR_ (British Ordinance Survery Grid Reference) grid references, TRF_\n(Terrestrial Reference Frames) and modules to encode and decode EPSG_, Geohashes_, `Georefs (WGRS)`_\nand `Garefs (GARS)`_.\n\nOther modules provide `Albers equal-area`_ projections, equidistant_ and other *azimuthal*\nprojections, Lambert *conformal conic* projections and positions, functions to clip paths or\npolygons of *LatLon* points using the `Cohen-Sutherland`_, `Forster-Hormann-Popa`_,\n`Greiner-Hormann`_, `Liang-Barsky`_ and `Sutherland-Hodgman`_ methods or to perform *boolean*\noperations between (composite) polygons, functions to simplify_ or linearize a path of *LatLon*\npoints (or a `numpy array`_), including implementations of the `Ramer-Douglas-Peucker`_,\n`Visvalingam-Whyatt`_ and `Reumann-Witkam`_ algorithms and modified versions of the former.\n\nPlus modules and classes to interpolate_ the Height_ of *LatLon* points and Geoid_ models, to compute\nvarious Fréchet_ or Hausdorff_ distances or to perform *boolean* operations between (composite)\npolygons of *LatLon* points.\n\nFor further details see the documentation_, the descriptions of `Latitude/Longitude`_, Vincenty_ and\n`Vector-based`_ geodesy, the original `JavaScript source`_ or docs_ and *Karney*\\'s Python geographiclib_\nand C++ `GeographicLib.`_\n\nInstallation\n============\n\nTo install ``pygeodesy``, type ``python[3] -m pip install pygeodesy`` or ``python[3] -m easy_install pygeodesy``\nin a terminal or command window.\n\nIf the wheel ``pygeodesy-yy.m.d-py2.py3-none-any.whl`` is missing in `PyPI Download files`_, download\nthe file from `GitHub/dist`_.  Install that with ``python[3] -m pip install <path-to-downloaded-wheel>``\nand verify with ``python[3] -m pygeodesy``.\n\nAlternatively, download ``pygeodesy-yy.m.d.tar.gz`` from PyPI_ or GitHub_, ``unzip`` the downloaded file,\n``cd`` to directory ``pygeodesy-yy.m.d`` and type ``python[3] setup.py install``.\n\nTo run all ``pygeodesy`` tests, type ``python[3] test/run.py`` or type ``python[3] test/unitTestSuite.py``\nbefore or after installation.\n\nDependencies\n============\n\nInstallation of *Karney*\\'s Python package geographiclib_ is optional, but required for module\n``ellipsoidalKarney``, ``azimuthal`` classes ``EquidistantKarney`` and ``GnomonicKarney`` and the\n``HeightIDWkarney`` interpolator.\n\nBoth numpy_ and scipy_ must be installed for most Geoid_ and Height_ interpolators, except ``GeoidKarney``\nand the ``HeigthIDW...`` ones.\n\nFunctions and ``LatLon`` methods ``circin6``, ``circum3``, ``circum4_`` and ``soddy4`` and functions\n``triaxum5`` and ``trilaterate3d2`` require numpy_ to be installed, modules ``auxilats`` and ``rhumb``\nmay need numpy_.\n\nModules ``ellipsoidalGeodSolve`` and ``geodsolve`` and ``azimuthal`` classes ``EquidistantGeodSolve``\nand ``GnomonicGeodSolve`` depend on *Karney*\\'s C++ utility GeodSolve_ to be executable and set with\nenv variable ``PYGEODESY_GEODSOLVE`` or with property ``Ellipsoid.geodsolve``.\n\nTriaxial geodesic classes ``Geodesic3Solve`` and ``GeodesicLine3Solve`` in module ``geod3solve`` need\n*Karney*\\'s C++ utility Geod3Solve_ to be executable and set with env variable ``PYGEODESY_GEOD3SOLVE``\nor with property ``Geodesic3Solve.Geod3Solve``.\n\nClass ``Intersectool`` in module ``geodesici`` needs *Karney*\\'s C++ utility IntersectTool_ to be\nexecutable and set with env variable ``PYGEODESY_INTERSECTTOOL`` or with property\n``Intersectool.IntersectTool``.\n\nTo compare ``MGRS`` results from modules ``mgrs`` and ``testMgrs`` with *Karney*\\'s C++ utility\nGeoConvert_, the latter must be executable and set with env variable ``PYGEODESY_GEOCONVERT``.\n\nModule ``rhumbsolve`` needs *Karney*\\'s C++ utility RhumbSolve_ to be executable and set with env\nvariable ``PYGEODESY_RHUMBSOLVE`` or with property ``Ellipsoid.rhumbsolve``.\n\nDocumentation\n=============\n\nIn addition to the ``pygeodesy`` package, the pygeodesy_ `distribution files`_ contain the tests, the\ntest results (on macOS only) and the complete documentation_ generated by Epydoc_ using command line:\n``epydoc --html --no-private --no-source --name=pygeodesy --url=... -v pygeodesy``.\n\nTests\n=====\n\nThe tests ran with Python 3.14.3 (with geographiclib_ 2.1), Python 3.13.12 (with geographiclib_ 2.1,\nnumpy_ 2.3.3, scipy_ 1.16.2, GeoConvert_ 2.7, GeodSolve_ 2.7 and Geod3Solve_ 2.7), Python 3.12.10 (with\ngeographiclib_ 2.0, numpy_ 2.1.0, scipy_ 1.14.1, GeodSolve_ 2.7, Geod3Solve_ 2.7, IntersectTool_ 2.7\nand RhumbSolve_ 2.7), Python 3.11.9 (with geographiclib_ 2.0, numpy_ 1.24.2 and scipy_ 1.10.1) and with\nPython 2.7.18 (with geographiclib_ 1.50, numpy_ 1.16.6, scipy_ 1.2.2, GeoConvert_ 2.7, GeodSolve_ 2.7,\nGeod3Solve_ 2.7, IntersectTool_ 2.7 and RhumbSolve_ 2.7), all on macOS 26.3 Tahoe in 64-bit.\n\nAll tests ran with and without ``lazy import`` for Python 3 and with command line option ``-W default``\nand env variable ``PYGEODESY_WARNINGS=on`` for all Python versions.  The results of those tests are\nincluded in the distribution files.\n\nPython 3.14.3, 3.13.12, 3.12.10 and 3.11.9 run on Apple M4 Si (``arm64``), *natively*.  Python 2.7.18 runs\non Intel (``x86_64``) or Intel *emulation* (\\\"``arm64_x86_64``\\\", see function `pygeodesy.machine`_).\n\nTest coverage has been measured with coverage_ 7.10.7 using Python 3.14.3, 3.13.12 and 3.12.10.  The\ncomplete coverage report in HTML and a PDF summary are included in the distribution files.\n\nThe tests also ran with Python 3.14.3 (and geographiclib_ 2.1) on `Debian 12`_ in 64-bit only and with\nPython 3.13.8 (and geographiclib_ 2.0) on `Windows 2019Server`_ in 64-bit only and with Python 2.7.18\n(and with geographiclib_ 1.52) on `Windows 10`_ in 64- and 32-bit.\n\nA single-File and single-Directory application with ``pygeodesy`` has been bundled using PyInstaller_ 3.4\nand 64-bit Python 3.7.4 and 3.7.3 on macOS 10.13.6 High Sierra.\n\nPreviously, the tests were run with Python 3.13.0-9, 3.12.0-7, 3.11.2-5, 3.10.1-7, 3.9.1, 3.8.7, 3.7.1, 2.7.15,\nPyPy_ 7.3.12 (Python 3.10.12), 7.3.1 (Python 3.6.9) and PyPy_ 7.1.1 (Python 2.7.13) (and geographiclib_ 1.52,\nnumpy_ 1.16.3, 1.16.4, 1.16.6, 1.19.0, 1.19.4, 1.19.5 or 1.22.4 and scipy_ 1.2.1, 1.4.1, 1.5.2 or 1.8.1) on\nUbuntu 16.04, with Python 3.10.0-1, 3.9.0-5, 3.8.0-6, 3.7.2-6, 3.7.0, 3.6.2-5, 3.5.3, 2.7.13-17, 2.7.10\nand 2.6.9 (and numpy_ 1.19.0, 1.16.5, 1.16.2, 1.15.2, 1.14.0, 1.13.1, 1.8.0rc1 or 1.6.2 and scipy_ 1.5.0),\nPyPy_ 7.3.0 (Python 2.7.13 and 3.6.9), PyPy_ 6.0.0 (Python 2.7.13 and 3.5.3) and `Intel-Python`_ 3.5.3 (and\nnumpy_ 1.11.3) on macOS 15.0-6 Sequoia, 14.0-6.1 Sonoma, 13.0-5.2 Ventura, 12.1-6 Monterey, 11.0-5.2-6.1 Big\nSur (aka 10.16), 10.15.3, 10.15.5-7 Catalina, 10.14 Mojave, 10.13.6 High Sierra and 10.12 Sierra, MacOS X\n10.11 El Capitan and/or MacOS X 10.10 Yosemite, with Pythonista_ 3.2 (with geographiclib 1.50 or 1.49 and\nnumpy 1.8.0) on iOS 14.4.2, 11.4.1, 12.0-3 on iPad4, iPhone6, iPhone10 and/or iPhone12, with Pythonista_ 3.1\non iOS 10.3.3, 11.0.3, 11.1.2 and 11.3 on iPad4, all in 64-bit only and with 32-bit Python 2.7.14 on Windows\nServer 2012R2, Windows 10 Pro and 32-bit Python 2.6.6 on Windows XP SP3.\n\nNotes\n=====\n\nAll Python source code has been statically checked_ with Ruff_ using Python 3.13.12 and with PyChecker_, PyFlakes_,\nPyCodeStyle_ (formerly Pep8) and McCabe_ using Python 2.7.18, both in 64-bit on macOS 26.3 Tahoe only.\n\nFor a summary of all *Karney*-based functionality in ``pygeodesy``, see module karney_.\n\n*Last updated: Mar 26, 2026.*\n\nLicense\n=======\n\n**Copyright (C) 2016-2026 -\\- mrJean1 at Gmail -\\- All Rights Reserved.**\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated\ndocumentation files (the \"Software\"), to deal in the Software without restriction, including without limitation\nthe rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and\nto permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions\nof the Software.\n\nTHE SOFTWARE IS PROVIDED \\\"AS IS\\\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED\nTO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL\nTHE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF\nCONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\nDEALINGS IN THE SOFTWARE.\n\n.. image:: https://Img.Shields.io/pypi/pyversions/pygeodesy.svg?label=Python\n  :target: https://PyPI.org/project/pygeodesy\n.. image:: https://Img.Shields.io/pypi/v/pygeodesy.svg?label=PyPI\n  :target: https://PyPI.org/project/pygeodesy\n.. image:: https://Img.Shields.io/appveyor/ci/mrJean1/PyGeodesy.svg?branch=master&label=AppVeyor\n  :target: https://CI.AppVeyor.com/project/mrJean1/PyGeodesy/branch/master\n.. image:: https://Img.Shields.io/cirrus/github/mrJean1/PyGeodesy?branch=master&label=Cirrus\n  :target: https://Cirrus-CI.com/github/mrJean1/pygeodesy\n.. image:: https://Img.Shields.io/badge/coverage-95%25-brightgreen\n  :target: https://GitHub.com/mrJean1/PyGeodesy/blob/master/testcoverage.pdf\n.. image:: https://Img.Shields.io/pypi/wheel/pygeodesy.svg\n  :target: https://PyPI.org/project/pygeodesy/#files\n.. image:: https://Img.Shields.io/pypi/l/pygeodesy.svg\n  :target: https://PyPI.org/project/pygeodesy\n.. image:: https://img.shields.io/pypi/dm/pygeodesy\n  :target: https://PyPI.org/project/pygeodesy\n\n.. _Albers equal-area: https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1AlbersEqualArea.html\n.. _C++ classes: https://GeographicLib.SourceForge.io/C++/doc/annotated.html\n.. _Cartesian: https://mrJean1.GitHub.io/PyGeodesy/docs/pygeodesy-Cartesian-attributes-table.html\n.. _Cassini-Soldner: https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1CassiniSoldner.html\n.. _checked: https://GitHub.com/ActiveState/code/tree/master/recipes/Python/546532_PyChecker_postprocessor\n.. _Cohen-Sutherland: https://WikiPedia.org/wiki/Cohen-Sutherland_algorithm\n.. _coverage: https://PyPI.org/project/coverage\n.. _Debian 12: https://Cirrus-CI.com/github/mrJean1/pygeodesy/master\n.. _distribution files: https://GitHub.com/mrJean1/PyGeodesy/tree/master/dist\n.. _docs: https://www.Movable-Type.co.UK/scripts/geodesy/docs\n.. _documentation: https://mrJean1.GitHub.io/PyGeodesy\n.. _ECEF: https://WikiPedia.org/wiki/ECEF\n.. _EPSG: https://EPSG.org\n.. _Epydoc: https://PyPI.org/project/epydoc\n.. _equidistant: https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1AzimuthalEquidistant.html\n.. _Exact: https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1GeodesicExact.html\n.. _Forster-Hormann-Popa: https://www.ScienceDirect.com/science/article/pii/S259014861930007X\n.. _Fréchet: https://WikiPedia.org/wiki/Frechet_distance\n.. _Garefs (GARS): https://WikiPedia.org/wiki/Global_Area_Reference_System\n.. _GeoConvert: https://GeographicLib.SourceForge.io/C++/doc/utilities.html\n.. _GeodSolve: https://GeographicLib.SourceForge.io/C++/doc/utilities.html\n.. _Geod3Solve: https://GeographicLib.SourceForge.io/C++/doc/Geod3Solve.1.html\n.. _geographiclib: https://PyPI.org/project/geographiclib\n.. _GeographicLib.: https://GeographicLib.SourceForge.io/C++/doc/index.html\n.. _Geohashes: https://www.Movable-Type.co.UK/scripts/geohash.html\n.. _Geoid: https://mrJean1.GitHub.io/PyGeodesy/docs/pygeodesy.geoids-module.html\n.. _Georefs (WGRS): https://WikiPedia.org/wiki/World_Geographic_Reference_System\n.. _GitHub: https://GitHub.com/mrJean1/PyGeodesy\n.. _GitHub/dist: https://GitHub.com/mrJean1/PyGeodesy/tree/master/dist\n.. _Greiner-Hormann: http://www.inf.USI.CH/hormann/papers/Greiner.1998.ECO.pdf\n.. _Hausdorff: https://WikiPedia.org/wiki/Hausdorff_distance\n.. _Height: https://mrJean1.GitHub.io/PyGeodesy/docs/pygeodesy.heights-module.html\n.. _Intel-Python: https://software.Intel.com/en-us/distribution-for-python\n.. _interpolate: https://docs.SciPy.org/doc/scipy/reference/interpolate.html\n.. _IntersectTool: https://GeographicLib.SourceForge.io/C++/doc/utilities.html\n.. _JavaScript originals: https://GitHub.com/ChrisVeness/geodesy\n.. _JavaScript source: https://GitHub.com/ChrisVeness/geodesy\n.. _John P. Snyder: https://pubs.er.USGS.gov/djvu/PP/PP_1395.pdf\n.. _karney: https://mrJean1.GitHub.io/PyGeodesy/docs/pygeodesy.karney-module.html\n.. _Latitude/Longitude: https://www.Movable-Type.co.UK/scripts/latlong.html\n.. _LatLon: https://mrJean1.GitHub.io/PyGeodesy/docs/pygeodesy-LatLon-attributes-table.html\n.. _Liang-Barsky: https://www.CS.Helsinki.FI/group/goa/viewing/leikkaus/intro.html\n.. _LTP: https://WikiPedia.org/wiki/Local_tangent_plane_coordinates\n.. _McCabe: https://PyPI.org/project/mccabe\n.. _MGRS: https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1MGRS.html\n.. _MIT License: https://OpenSource.org/licenses/MIT\n.. _numpy: https://PyPI.org/project/numpy\n.. _numpy array: https://docs.SciPy.org/doc/numpy/reference/generated/numpy.array.html\n.. _OSGR: https://www.Movable-Type.co.UK/scripts/latlong-os-gridref.html\n.. _3-point resections: https://WikiPedia.org/wiki/Position_resection_and_intersection\n.. _PyChecker: https://PyPI.org/project/pychecker\n.. _PyCodeStyle: https://PyPI.org/project/pycodestyle\n.. _PyFlakes: https://PyPI.org/project/pyflakes\n.. _pygeodesy: https://PyPI.org/project/pygeodesy\n.. _pygeodesy.machine: https://mrJean1.GitHub.io/PyGeodesy/docs/pygeodesy.internals-module.html#machine\n.. _PyInstaller: https://PyPI.org/project/pyinstaller\n.. _PyPI: https://PyPI.org/project/pygeodesy\n.. _PyPI Download files: https://PyPI.org/project/pygeodesy/#files\n.. _PyPy: https://formulae.brew.sh/formula/pypy3.10\n.. _Pythonista: https://OMZ-Software.com/pythonista\n.. _Ramer-Douglas-Peucker: https://WikiPedia.org/wiki/Ramer-Douglas-Peucker_algorithm\n.. _Reumann-Witkam: https://psimpl.SourceForge.net/reumann-witkam.html\n.. _RhumbSolve: https://GeographicLib.SourceForge.io/C++/doc/utilities.html\n.. _Ruff: https://GitHub.com/astral-sh/ruff\n.. _scipy: https://PyPI.org/project/scipy\n.. _simplify: https://Bost.Ocks.org/mike/simplify\n.. _Sutherland-Hodgman: https://WikiPedia.org/wiki/Sutherland-Hodgman_algorithm\n.. _TRF: http://ITRF.ENSG.IGN.FR\n.. _triaxial ellipsoidal: https://GeographicLib.SourceForge.io/1.44/triaxial.html\n.. _UPS: https://WikiPedia.org/wiki/Universal_polar_stereographic_coordinate_system\n.. _UTM: https://www.Movable-Type.co.UK/scripts/latlong-utm-mgrs.html\n.. _Vector-based: https://www.Movable-Type.co.UK/scripts/latlong-vectors.html\n.. _Vincenty: https://www.Movable-Type.co.UK/scripts/latlong-vincenty.html\n.. _Visvalingam-Whyatt: https://hydra.Hull.ac.UK/resources/hull:8338\n.. _Web Mercator: https://WikiPedia.org/wiki/Web_Mercator\n.. _Windows 10: https://CI.AppVeyor.com/project/mrJean1/pygeodesy\n.. _Windows 2019Server: https://CI.AppVeyor.com/project/mrJean1/pygeodesy\n"
  },
  {
    "path": "docs/abc.ABCMeta-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>abc.ABCMeta</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        abc ::\n        ABCMeta ::\n        Class&nbsp;ABCMeta\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"abc.ABCMeta-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== TYPE DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Type ABCMeta</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\nobject --+    \n         |    \n      type --+\n             |\n            <strong class=\"uidshort\">ABCMeta</strong>\n</pre>\n\n<hr />\n<p>Metaclass for defining Abstract Base Classes (ABCs).</p>\n  <p>Use this metaclass to create an ABC.  An ABC can be subclassed \n  directly, and then acts as a mix-in class.  You can also register \n  unrelated concrete classes (even built-in classes) and unrelated ABCs as \n  'virtual subclasses' -- these and their descendants will be considered \n  subclasses of the registering ABC by the built-in issubclass() function, \n  but the registering ABC won't show up in their MRO (Method Resolution \n  Order) nor will method implementations defined by the registering ABC be \n  callable (not even via super()).</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">bool</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"abc.ABCMeta-class.html#__instancecheck__\" class=\"summary-sig-name\">__instancecheck__</a>(<span class=\"summary-sig-arg\">cls</span>,\n        <span class=\"summary-sig-arg\">instance</span>)</span><br />\n      Override for isinstance(instance, cls).</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">bool</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"abc.ABCMeta-class.html#__subclasscheck__\" class=\"summary-sig-name\">__subclasscheck__</a>(<span class=\"summary-sig-arg\">cls</span>,\n        <span class=\"summary-sig-arg\">subclass</span>)</span><br />\n      Override for issubclass(subclass, cls).</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"register\"></a><span class=\"summary-sig-name\">register</span>(<span class=\"summary-sig-arg\">cls</span>,\n        <span class=\"summary-sig-arg\">subclass</span>)</span><br />\n      Register a virtual subclass of an ABC.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>type</code></b>:\n      <code>__call__</code>,\n      <code>__delattr__</code>,\n      <code>__eq__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__gt__</code>,\n      <code>__hash__</code>,\n      <code>__init__</code>,\n      <code>__le__</code>,\n      <code>__lt__</code>,\n      <code>__ne__</code>,\n      <code>__repr__</code>,\n      <code>__setattr__</code>,\n      <code>__subclasses__</code>,\n      <code>mro</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__format__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__str__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">a new object with type S, a subtype of T</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"abc.ABCMeta-class.html#__new__\" class=\"summary-sig-name\">__new__</a>(<span class=\"summary-sig-arg\">mcls</span>,\n        <span class=\"summary-sig-arg\">name</span>,\n        <span class=\"summary-sig-arg\">bases</span>,\n        <span class=\"summary-sig-arg\">namespace</span>)</span></td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>type</code></b>:\n      <code>__abstractmethods__</code>,\n      <code>__base__</code>,\n      <code>__bases__</code>,\n      <code>__basicsize__</code>,\n      <code>__dictoffset__</code>,\n      <code>__flags__</code>,\n      <code>__itemsize__</code>,\n      <code>__mro__</code>,\n      <code>__name__</code>,\n      <code>__weakrefoffset__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__instancecheck__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__instancecheck__</span>(<span class=\"sig-arg\">cls</span>,\n        <span class=\"sig-arg\">instance</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Override for isinstance(instance, cls).</p>\n  <dl class=\"fields\">\n    <dt>Returns: bool</dt>\n    <dt>Overrides:\n        type.__instancecheck__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__new__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__new__</span>(<span class=\"sig-arg\">mcls</span>,\n        <span class=\"sig-arg\">name</span>,\n        <span class=\"sig-arg\">bases</span>,\n        <span class=\"sig-arg\">namespace</span>)</span>\n    <br /><em class=\"fname\">Static Method</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  \n  <dl class=\"fields\">\n    <dt>Returns: a new object with type S, a subtype of T</dt>\n    <dt>Overrides:\n        object.__new__\n        <dd><em class=\"note\">(inherited documentation)</em></dd>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__subclasscheck__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__subclasscheck__</span>(<span class=\"sig-arg\">cls</span>,\n        <span class=\"sig-arg\">subclass</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Override for issubclass(subclass, cls).</p>\n  <dl class=\"fields\">\n    <dt>Returns: bool</dt>\n    <dt>Overrides:\n        type.__subclasscheck__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/api-objects.txt",
    "content": "pygeodesy\tpygeodesy-module.html\npygeodesy.simplifyRDPm\tpygeodesy-module.html#simplifyRDPm\npygeodesy.wrapPI\tpygeodesy-module.html#wrapPI\npygeodesy.deprecated_property_RO\tpygeodesy-module.html#deprecated_property_RO\npygeodesy.attrs\tpygeodesy-module.html#attrs\npygeodesy.triAngle\tpygeodesy-module.html#triAngle\npygeodesy.clipDegrees\tpygeodesy-module.html#clipDegrees\npygeodesy.F_D\tpygeodesy-module.html#F_D\npygeodesy.neg_\tpygeodesy-module.html#neg_\npygeodesy.degrees2grades\tpygeodesy-module.html#degrees2grades\npygeodesy.rtp2xyz_\tpygeodesy-module.html#rtp2xyz_\npygeodesy.fatan\tpygeodesy-module.html#fatan\npygeodesy.falsed2f\tpygeodesy-module.html#falsed2f\npygeodesy.str2ub\tpygeodesy-module.html#str2ub\npygeodesy.clipDMS\tpygeodesy-module.html#clipDMS\npygeodesy.latDMS\tpygeodesy-module.html#latDMS\npygeodesy.version\tpygeodesy-module.html#version\npygeodesy.acos1\tpygeodesy-module.html#acos1\npygeodesy.Fsum2product\tpygeodesy-module.html#Fsum2product\npygeodesy.MIN_EXP\tpygeodesy-module.html#MIN_EXP\npygeodesy.R_NM\tpygeodesy-module.html#R_NM\npygeodesy.m2chain\tpygeodesy-module.html#m2chain\npygeodesy.isTuple2\tpygeodesy-module.html#isTuple2\npygeodesy.intersection3d3\tpygeodesy-module.html#intersection3d3\npygeodesy.MAX\tpygeodesy-module.html#MAX\npygeodesy.euclidean\tpygeodesy-module.html#euclidean\npygeodesy.nonfiniterrors\tpygeodesy-module.html#nonfiniterrors\npygeodesy.n2f_\tpygeodesy-module.html#n2f_\npygeodesy.isLazy\tpygeodesy-module.html#isLazy\npygeodesy.signBit\tpygeodesy-module.html#signBit\npygeodesy.float0_\tpygeodesy-module.html#float0_\npygeodesy.opposing_\tpygeodesy-module.html#opposing_\npygeodesy.itemsorted\tpygeodesy-module.html#itemsorted\npygeodesy.trfTransforms\tpygeodesy-module.html#trfTransforms\npygeodesy.isnon0\tpygeodesy-module.html#isnon0\npygeodesy.radical2\tpygeodesy-module.html#radical2\npygeodesy.m2yard\tpygeodesy-module.html#m2yard\npygeodesy.S_MIN\tpygeodesy-module.html#S_MIN\npygeodesy.toUtm\tpygeodesy-module.html#toUtm\npygeodesy.sincos2_\tpygeodesy-module.html#sincos2_\npygeodesy.flatLocal_\tpygeodesy-module.html#flatLocal_\npygeodesy.hartzell\tpygeodesy-module.html#hartzell\npygeodesy.cosineForsytheAndoyerLambert_\tpygeodesy-module.html#cosineForsytheAndoyerLambert_\npygeodesy.FrechetCosineForsytheAndoyerLambert\tpygeodesy-module.html#FrechetCosineForsytheAndoyerLambert\npygeodesy.clipSH\tpygeodesy-module.html#clipSH\npygeodesy.neg\tpygeodesy-module.html#neg\npygeodesy.EcefCartesian\tpygeodesy-module.html#EcefCartesian\npygeodesy.fractional\tpygeodesy-module.html#fractional\npygeodesy.collins\tpygeodesy-module.html#collins\npygeodesy.isNvector\tpygeodesy-module.html#isNvector\npygeodesy.sincos2d\tpygeodesy-module.html#sincos2d\npygeodesy.f_2f\tpygeodesy-module.html#f_2f\npygeodesy.hypot1\tpygeodesy-module.html#hypot1\npygeodesy.flatPolar_\tpygeodesy-module.html#flatPolar_\npygeodesy.ft2m\tpygeodesy-module.html#ft2m\npygeodesy.hypot3\tpygeodesy-module.html#hypot3\npygeodesy.copysign\tpygeodesy-module.html#copysign\npygeodesy.trfTransform0\tpygeodesy-module.html#trfTransform0\npygeodesy.latlonDMS_\tpygeodesy-module.html#latlonDMS_\npygeodesy.parseOSGR\tpygeodesy-module.html#parseOSGR\npygeodesy.nearestOn3\tpygeodesy-module.html#nearestOn3\npygeodesy.frange\tpygeodesy-module.html#frange\npygeodesy.favg\tpygeodesy-module.html#favg\npygeodesy.a_b2f2\tpygeodesy-module.html#a_b2f2\npygeodesy.nearestOn6\tpygeodesy-module.html#nearestOn6\npygeodesy.asin1\tpygeodesy-module.html#asin1\npygeodesy.printf\tpygeodesy-module.html#printf\npygeodesy.isodd\tpygeodesy-module.html#isodd\npygeodesy.ispolar\tpygeodesy-module.html#ispolar\npygeodesy.ha2m2\tpygeodesy-module.html#ha2m2\npygeodesy.Fn_rt\tpygeodesy-module.html#Fn_rt\npygeodesy.HausdorffCosineForsytheAndoyerLambert\tpygeodesy-module.html#HausdorffCosineForsytheAndoyerLambert\npygeodesy.fStrzs\tpygeodesy-module.html#fStrzs\npygeodesy.INF\tpygeodesy-module.html#INF\npygeodesy.istuplist\tpygeodesy-module.html#istuplist\npygeodesy.unroll180\tpygeodesy-module.html#unroll180\npygeodesy.F_DEG\tpygeodesy-module.html#F_DEG\npygeodesy.parseDDDMMSS\tpygeodesy-module.html#parseDDDMMSS\npygeodesy.radiansPI\tpygeodesy-module.html#radiansPI\npygeodesy.iscolinearWith\tpygeodesy-module.html#iscolinearWith\npygeodesy.geoidHeight2\tpygeodesy-module.html#geoidHeight2\npygeodesy.cotd_\tpygeodesy-module.html#cotd_\npygeodesy.cassini\tpygeodesy-module.html#cassini\npygeodesy.frandoms\tpygeodesy-module.html#frandoms\npygeodesy.collins5\tpygeodesy-module.html#collins5\npygeodesy.print_\tpygeodesy-module.html#print_\npygeodesy.anstr\tpygeodesy-module.html#anstr\npygeodesy.HeightIDWcosineAndoyerLambert\tpygeodesy-module.html#HeightIDWcosineAndoyerLambert\npygeodesy.compassPoint\tpygeodesy-module.html#compassPoint\npygeodesy.angle2chord\tpygeodesy-module.html#angle2chord\npygeodesy.fathom2m\tpygeodesy-module.html#fathom2m\npygeodesy.F_DM__\tpygeodesy-module.html#F_DM__\npygeodesy.excessQuad\tpygeodesy-module.html#excessQuad\npygeodesy.cosineLaw\tpygeodesy-module.html#cosineLaw\npygeodesy.chord2angle\tpygeodesy-module.html#chord2angle\npygeodesy.circum3\tpygeodesy-module.html#circum3\npygeodesy.cosineAndoyerLambert_\tpygeodesy-module.html#cosineAndoyerLambert_\npygeodesy.isiterabletype\tpygeodesy-module.html#isiterabletype\npygeodesy.RefFrames\tpygeodesy-module.html#RefFrames\npygeodesy.fsum\tpygeodesy-module.html#fsum\npygeodesy.UtmUps\tpygeodesy-module.html#UtmUps\npygeodesy.iscomplex\tpygeodesy-module.html#iscomplex\npygeodesy.gnomonic\tpygeodesy-module.html#gnomonic\npygeodesy.F_DEG_\tpygeodesy-module.html#F_DEG_\npygeodesy.m2fathom\tpygeodesy-module.html#m2fathom\npygeodesy.scalar\tpygeodesy-module.html#scalar\npygeodesy.circum4_\tpygeodesy-module.html#circum4_\npygeodesy.a_b2e22\tpygeodesy-module.html#a_b2e22\npygeodesy.sumOf\tpygeodesy-module.html#sumOf\npygeodesy.zqrt\tpygeodesy-module.html#zqrt\npygeodesy.toMgrs\tpygeodesy-module.html#toMgrs\npygeodesy.F_RAD_\tpygeodesy-module.html#F_RAD_\npygeodesy.int1s\tpygeodesy-module.html#int1s\npygeodesy.Conics\tpygeodesy-module.html#Conics\npygeodesy.F_SEC\tpygeodesy-module.html#F_SEC\npygeodesy.isnormal_\tpygeodesy-module.html#isnormal_\npygeodesy.F_D60__\tpygeodesy-module.html#F_D60__\npygeodesy.clipGH4\tpygeodesy-module.html#clipGH4\npygeodesy.tanPI_2_2\tpygeodesy-module.html#tanPI_2_2\npygeodesy.EPS8\tpygeodesy-module.html#EPS8\npygeodesy.EPS4\tpygeodesy-module.html#EPS4\npygeodesy.utmZoneBand5\tpygeodesy-module.html#utmZoneBand5\npygeodesy.EPS2\tpygeodesy-module.html#EPS2\npygeodesy.haversine\tpygeodesy-module.html#haversine\npygeodesy.EPS0\tpygeodesy-module.html#EPS0\npygeodesy.EPS1\tpygeodesy-module.html#EPS1\npygeodesy.degrees360\tpygeodesy-module.html#degrees360\npygeodesy.machine\tpygeodesy-module.html#machine\npygeodesy.inStr\tpygeodesy-module.html#inStr\npygeodesy.e2f\tpygeodesy-module.html#e2f\npygeodesy.fStr\tpygeodesy-module.html#fStr\npygeodesy.RefFrameError\tpygeodesy-module.html#RefFrameError\npygeodesy.isneg0\tpygeodesy-module.html#isneg0\npygeodesy.excessAbc\tpygeodesy-module.html#excessAbc\npygeodesy.NorthPole\tpygeodesy-module.html#NorthPole\npygeodesy.atan1d\tpygeodesy-module.html#atan1d\npygeodesy.thomas_\tpygeodesy-module.html#thomas_\npygeodesy.deprecated_class\tpygeodesy-module.html#deprecated_class\npygeodesy.utmZoneBand2\tpygeodesy-module.html#utmZoneBand2\npygeodesy.f2e2\tpygeodesy-module.html#f2e2\npygeodesy.agdf\tpygeodesy-module.html#agdf\npygeodesy.chain2m\tpygeodesy-module.html#chain2m\npygeodesy.intersection2\tpygeodesy-module.html#intersection2\npygeodesy.isBoolean\tpygeodesy-module.html#isBoolean\npygeodesy.cbrt2\tpygeodesy-module.html#cbrt2\npygeodesy.iterNumpy2over\tpygeodesy-module.html#iterNumpy2over\npygeodesy.strs\tpygeodesy-module.html#strs\npygeodesy.isnear0\tpygeodesy-module.html#isnear0\npygeodesy.map2\tpygeodesy-module.html#map2\npygeodesy.atan2\tpygeodesy-module.html#atan2\npygeodesy.atan1\tpygeodesy-module.html#atan1\npygeodesy.map1\tpygeodesy-module.html#map1\npygeodesy.compassAngle\tpygeodesy-module.html#compassAngle\npygeodesy.F_DMS__\tpygeodesy-module.html#F_DMS__\npygeodesy.F_MIN__\tpygeodesy-module.html#F_MIN__\npygeodesy.tienstra7\tpygeodesy-module.html#tienstra7\npygeodesy.antipode\tpygeodesy-module.html#antipode\npygeodesy.exception_chaining\tpygeodesy-module.html#exception_chaining\npygeodesy.fsum1f_\tpygeodesy-module.html#fsum1f_\npygeodesy.flatLocal\tpygeodesy-module.html#flatLocal\npygeodesy.F_RAD\tpygeodesy-module.html#F_RAD\npygeodesy.f2n\tpygeodesy-module.html#f2n\npygeodesy.R_MB\tpygeodesy-module.html#R_MB\npygeodesy.R_MA\tpygeodesy-module.html#R_MA\npygeodesy.m2acre\tpygeodesy-module.html#m2acre\npygeodesy.degrees\tpygeodesy-module.html#degrees\npygeodesy.deprecated_Property_RO\tpygeodesy-module.html#deprecated_Property_RO\npygeodesy.isclose\tpygeodesy-module.html#isclose\npygeodesy.reprs\tpygeodesy-module.html#reprs\npygeodesy.callername\tpygeodesy-module.html#callername\npygeodesy.hypot2\tpygeodesy-module.html#hypot2\npygeodesy.f2product\tpygeodesy-module.html#f2product\npygeodesy.equidistant\tpygeodesy-module.html#equidistant\npygeodesy.parseRad\tpygeodesy-module.html#parseRad\npygeodesy.tand_\tpygeodesy-module.html#tand_\npygeodesy.sincos2\tpygeodesy-module.html#sincos2\npygeodesy.F__E_\tpygeodesy-module.html#F__E_\npygeodesy.Rad\tpygeodesy-module.html#Rad\npygeodesy.clipFHP4\tpygeodesy-module.html#clipFHP4\npygeodesy.MIN\tpygeodesy-module.html#MIN\npygeodesy.tienstra\tpygeodesy-module.html#tienstra\npygeodesy.notOverloaded\tpygeodesy-module.html#notOverloaded\npygeodesy.radians\tpygeodesy-module.html#radians\npygeodesy.parseDMS\tpygeodesy-module.html#parseDMS\npygeodesy.a_b2e\tpygeodesy-module.html#a_b2e\npygeodesy.frechet_\tpygeodesy-module.html#frechet_\npygeodesy.a_b2f\tpygeodesy-module.html#a_b2f\npygeodesy.rtp2xyz\tpygeodesy-module.html#rtp2xyz\npygeodesy.a_b2n\tpygeodesy-module.html#a_b2n\npygeodesy.R_FM\tpygeodesy-module.html#R_FM\npygeodesy.degDMS\tpygeodesy-module.html#degDMS\npygeodesy.heightOrthometric\tpygeodesy-module.html#heightOrthometric\npygeodesy.Datums\tpygeodesy-module.html#Datums\npygeodesy.joined\tpygeodesy-module.html#joined\npygeodesy.Ellipsoids\tpygeodesy-module.html#Ellipsoids\npygeodesy.norm2\tpygeodesy-module.html#norm2\npygeodesy.trilaterate3d2\tpygeodesy-module.html#trilaterate3d2\npygeodesy.hypot\tpygeodesy-module.html#hypot\npygeodesy.S_DMS\tpygeodesy-module.html#S_DMS\npygeodesy.atan2p\tpygeodesy-module.html#atan2p\npygeodesy.a_f2b\tpygeodesy-module.html#a_f2b\npygeodesy.deprecated_function\tpygeodesy-module.html#deprecated_function\npygeodesy.atan2b\tpygeodesy-module.html#atan2b\npygeodesy.m2degrees\tpygeodesy-module.html#m2degrees\npygeodesy.atan2d\tpygeodesy-module.html#atan2d\npygeodesy.Geodesic_WGS84\tpygeodesy-module.html#Geodesic_WGS84\npygeodesy.iskeyword\tpygeodesy-module.html#iskeyword\npygeodesy.NEG0\tpygeodesy-module.html#NEG0\npygeodesy.areaOf\tpygeodesy-module.html#areaOf\npygeodesy.randomrangenerator\tpygeodesy-module.html#randomrangenerator\npygeodesy.isPoints2\tpygeodesy-module.html#isPoints2\npygeodesy.triSide\tpygeodesy-module.html#triSide\npygeodesy.pairs\tpygeodesy-module.html#pairs\npygeodesy.NN\tpygeodesy-module.html#NN\npygeodesy.m2km\tpygeodesy-module.html#m2km\npygeodesy.clipCS4\tpygeodesy-module.html#clipCS4\npygeodesy.m2SM\tpygeodesy-module.html#m2SM\npygeodesy.F_D60\tpygeodesy-module.html#F_D60\npygeodesy.R_M\tpygeodesy-module.html#R_M\npygeodesy.toUtm8\tpygeodesy-module.html#toUtm8\npygeodesy.m2furlong\tpygeodesy-module.html#m2furlong\npygeodesy.fsum1_\tpygeodesy-module.html#fsum1_\npygeodesy.isnear1\tpygeodesy-module.html#isnear1\npygeodesy.parse3d\tpygeodesy-module.html#parse3d\npygeodesy.toUtmUps8\tpygeodesy-module.html#toUtmUps8\npygeodesy.fstrzs\tpygeodesy-module.html#fstrzs\npygeodesy.classname\tpygeodesy-module.html#classname\npygeodesy.trfXform\tpygeodesy-module.html#trfXform\npygeodesy.isidentifier\tpygeodesy-module.html#isidentifier\npygeodesy.nearestOn5\tpygeodesy-module.html#nearestOn5\npygeodesy.R_SM\tpygeodesy-module.html#R_SM\npygeodesy.n_xyz2philam\tpygeodesy-module.html#n_xyz2philam\npygeodesy.clipCS3\tpygeodesy-module.html#clipCS3\npygeodesy.soddy4\tpygeodesy-module.html#soddy4\npygeodesy.F__F__\tpygeodesy-module.html#F__F__\npygeodesy.PI_6\tpygeodesy-module.html#PI_6\npygeodesy.Triaxials\tpygeodesy-module.html#Triaxials\npygeodesy.points2\tpygeodesy-module.html#points2\npygeodesy.toLcc\tpygeodesy-module.html#toLcc\npygeodesy.grades2degrees\tpygeodesy-module.html#grades2degrees\npygeodesy.wrapPI2\tpygeodesy-module.html#wrapPI2\npygeodesy.a_b2e32\tpygeodesy-module.html#a_b2e32\npygeodesy.fma\tpygeodesy-module.html#fma\npygeodesy.fmean_\tpygeodesy-module.html#fmean_\npygeodesy.parseUTMUPS5\tpygeodesy-module.html#parseUTMUPS5\npygeodesy.anStr\tpygeodesy-module.html#anStr\npygeodesy.simplifyRW\tpygeodesy-module.html#simplifyRW\npygeodesy.issubclassof\tpygeodesy-module.html#issubclassof\npygeodesy.toDMS\tpygeodesy-module.html#toDMS\npygeodesy.wrap90\tpygeodesy-module.html#wrap90\npygeodesy._pygeodesy_\tpygeodesy-module.html#_pygeodesy_\npygeodesy.vincentys_\tpygeodesy-module.html#vincentys_\npygeodesy.clipLB6\tpygeodesy-module.html#clipLB6\npygeodesy.triaxum5\tpygeodesy-module.html#triaxum5\npygeodesy.height4\tpygeodesy-module.html#height4\npygeodesy.HeightIDWcosineForsytheAndoyerLambert\tpygeodesy-module.html#HeightIDWcosineForsytheAndoyerLambert\npygeodesy.copysign0\tpygeodesy-module.html#copysign0\npygeodesy.triAngle5\tpygeodesy-module.html#triAngle5\npygeodesy.triAngle4\tpygeodesy-module.html#triAngle4\npygeodesy.m2ha\tpygeodesy-module.html#m2ha\npygeodesy.lonDMS\tpygeodesy-module.html#lonDMS\npygeodesy.yard2m\tpygeodesy-module.html#yard2m\npygeodesy.polar2d\tpygeodesy-module.html#polar2d\npygeodesy.xyz2rtp_\tpygeodesy-module.html#xyz2rtp_\npygeodesy.isnear90\tpygeodesy-module.html#isnear90\npygeodesy.radiansPI2\tpygeodesy-module.html#radiansPI2\npygeodesy.enstr2\tpygeodesy-module.html#enstr2\npygeodesy.nearestOn4\tpygeodesy-module.html#nearestOn4\npygeodesy.INT0\tpygeodesy-module.html#INT0\npygeodesy.n2f\tpygeodesy-module.html#n2f\npygeodesy.parseMGRS\tpygeodesy-module.html#parseMGRS\npygeodesy._isfrozen\tpygeodesy-module.html#_isfrozen\npygeodesy.isclass\tpygeodesy-module.html#isclass\npygeodesy.hstr\tpygeodesy-module.html#hstr\npygeodesy.excessAbc_\tpygeodesy-module.html#excessAbc_\npygeodesy.f2e32\tpygeodesy-module.html#f2e32\npygeodesy._init__all__\tpygeodesy-module.html#_init__all__\npygeodesy.fasin1\tpygeodesy-module.html#fasin1\npygeodesy.min2\tpygeodesy-module.html#min2\npygeodesy.cbrt\tpygeodesy-module.html#cbrt\npygeodesy.limiterrors\tpygeodesy-module.html#limiterrors\npygeodesy.parseUTM5\tpygeodesy-module.html#parseUTM5\npygeodesy.max2\tpygeodesy-module.html#max2\npygeodesy.copytype\tpygeodesy-module.html#copytype\npygeodesy.isscalar\tpygeodesy-module.html#isscalar\npygeodesy.fmean\tpygeodesy-module.html#fmean\npygeodesy.isninf\tpygeodesy-module.html#isninf\npygeodesy.f2mul_\tpygeodesy-module.html#f2mul_\npygeodesy.isantipode\tpygeodesy-module.html#isantipode\npygeodesy.thomas\tpygeodesy-module.html#thomas\npygeodesy.hubeny_\tpygeodesy-module.html#hubeny_\npygeodesy.f2f2\tpygeodesy-module.html#f2f2\npygeodesy.hypot2_\tpygeodesy-module.html#hypot2_\npygeodesy.isenclosedBy\tpygeodesy-module.html#isenclosedBy\npygeodesy.F__F_\tpygeodesy-module.html#F__F_\npygeodesy.clipSH3\tpygeodesy-module.html#clipSH3\npygeodesy.bqrt\tpygeodesy-module.html#bqrt\npygeodesy.degrees90\tpygeodesy-module.html#degrees90\npygeodesy.egmGeoidHeights\tpygeodesy-module.html#egmGeoidHeights\npygeodesy.unrollPI\tpygeodesy-module.html#unrollPI\npygeodesy.isLatLon\tpygeodesy-module.html#isLatLon\npygeodesy.S_SEP\tpygeodesy-module.html#S_SEP\npygeodesy.HeightIDW\tpygeodesy-module.html#HeightIDW\npygeodesy.MANT_DIG\tpygeodesy-module.html#MANT_DIG\npygeodesy.parseWM\tpygeodesy-module.html#parseWM\npygeodesy.S_SEC\tpygeodesy-module.html#S_SEC\npygeodesy.cosineForsytheAndoyerLambert\tpygeodesy-module.html#cosineForsytheAndoyerLambert\npygeodesy.decodeEPSG2\tpygeodesy-module.html#decodeEPSG2\npygeodesy.bearing_\tpygeodesy-module.html#bearing_\npygeodesy.simplifyVW\tpygeodesy-module.html#simplifyVW\npygeodesy.fsum_\tpygeodesy-module.html#fsum_\npygeodesy.F_SEC__\tpygeodesy-module.html#F_SEC__\npygeodesy.cotd\tpygeodesy-module.html#cotd\npygeodesy.utmupsValidate\tpygeodesy-module.html#utmupsValidate\npygeodesy.latlonDMS\tpygeodesy-module.html#latlonDMS\npygeodesy.property_doc_\tpygeodesy-module.html#property_doc_\npygeodesy.a_b2f_\tpygeodesy-module.html#a_b2f_\npygeodesy.F_DMS_\tpygeodesy-module.html#F_DMS_\npygeodesy.perimeterOf\tpygeodesy-module.html#perimeterOf\npygeodesy.excessGirard\tpygeodesy-module.html#excessGirard\npygeodesy.cot_\tpygeodesy-module.html#cot_\npygeodesy.compassDMS\tpygeodesy-module.html#compassDMS\npygeodesy.ha2acre\tpygeodesy-module.html#ha2acre\npygeodesy.issequence\tpygeodesy-module.html#issequence\npygeodesy.typename\tpygeodesy-module.html#typename\npygeodesy.pygeodesy_abspath\tpygeodesy-module.html#pygeodesy_abspath\npygeodesy.wildberger3\tpygeodesy-module.html#wildberger3\npygeodesy.upsZoneBand5\tpygeodesy-module.html#upsZoneBand5\npygeodesy.a_f_2b\tpygeodesy-module.html#a_f_2b\npygeodesy.isfinite\tpygeodesy-module.html#isfinite\npygeodesy.facos1\tpygeodesy-module.html#facos1\npygeodesy.wrap360\tpygeodesy-module.html#wrap360\npygeodesy.euclid_\tpygeodesy-module.html#euclid_\npygeodesy.bounds\tpygeodesy-module.html#bounds\npygeodesy.toWm\tpygeodesy-module.html#toWm\npygeodesy.R_KM\tpygeodesy-module.html#R_KM\npygeodesy.euclid\tpygeodesy-module.html#euclid\npygeodesy.float0\tpygeodesy-module.html#float0\npygeodesy.date2epoch\tpygeodesy-module.html#date2epoch\npygeodesy.isnan\tpygeodesy-module.html#isnan\npygeodesy.b_f2a\tpygeodesy-module.html#b_f2a\npygeodesy.clipStr\tpygeodesy-module.html#clipStr\npygeodesy.grades400\tpygeodesy-module.html#grades400\npygeodesy.simplifyVWm\tpygeodesy-module.html#simplifyVWm\npygeodesy.wrap_normal\tpygeodesy-module.html#wrap_normal\npygeodesy.MAX_EXP\tpygeodesy-module.html#MAX_EXP\npygeodesy.F__G__\tpygeodesy-module.html#F__G__\npygeodesy.m2ft\tpygeodesy-module.html#m2ft\npygeodesy.ub2str\tpygeodesy-module.html#ub2str\npygeodesy.NINF\tpygeodesy-module.html#NINF\npygeodesy.cosineAndoyerLambert\tpygeodesy-module.html#cosineAndoyerLambert\npygeodesy.PI\tpygeodesy-module.html#PI\npygeodesy.tan_2\tpygeodesy-module.html#tan_2\npygeodesy.toCss\tpygeodesy-module.html#toCss\npygeodesy.antipode_\tpygeodesy-module.html#antipode_\npygeodesy.lrstrip\tpygeodesy-module.html#lrstrip\npygeodesy.circin6\tpygeodesy-module.html#circin6\npygeodesy.unsign0\tpygeodesy-module.html#unsign0\npygeodesy.unstr\tpygeodesy-module.html#unstr\npygeodesy.fsum1\tpygeodesy-module.html#fsum1\npygeodesy.epoch2date\tpygeodesy-module.html#epoch2date\npygeodesy.EPS1_2\tpygeodesy-module.html#EPS1_2\npygeodesy.polar2\tpygeodesy-module.html#polar2\npygeodesy.iterNumpy2\tpygeodesy-module.html#iterNumpy2\npygeodesy.MANTIS\tpygeodesy-module.html#MANTIS\npygeodesy.wrap180\tpygeodesy-module.html#wrap180\npygeodesy.float_\tpygeodesy-module.html#float_\npygeodesy.utmupsValidateOK\tpygeodesy-module.html#utmupsValidateOK\npygeodesy.isNumpy2\tpygeodesy-module.html#isNumpy2\npygeodesy.boundsOf\tpygeodesy-module.html#boundsOf\npygeodesy.excessLHuilier\tpygeodesy-module.html#excessLHuilier\npygeodesy.isfloat\tpygeodesy-module.html#isfloat\npygeodesy.simplify1\tpygeodesy-module.html#simplify1\npygeodesy.equirectangular\tpygeodesy-module.html#equirectangular\npygeodesy.hausdorff_\tpygeodesy-module.html#hausdorff_\npygeodesy.acre2ha\tpygeodesy-module.html#acre2ha\npygeodesy.notImplemented\tpygeodesy-module.html#notImplemented\npygeodesy.FrechetCosineAndoyerLambert\tpygeodesy-module.html#FrechetCosineAndoyerLambert\npygeodesy.fhorner\tpygeodesy-module.html#fhorner\npygeodesy.EPS_2\tpygeodesy-module.html#EPS_2\npygeodesy.circle4\tpygeodesy-module.html#circle4\npygeodesy.areaof\tpygeodesy-module.html#areaof\npygeodesy.isError\tpygeodesy-module.html#isError\npygeodesy.encodeEPSG\tpygeodesy-module.html#encodeEPSG\npygeodesy.SouthPole\tpygeodesy-module.html#SouthPole\npygeodesy.sincostan3d\tpygeodesy-module.html#sincostan3d\npygeodesy.crosserrors\tpygeodesy-module.html#crosserrors\npygeodesy.isAng\tpygeodesy-module.html#isAng\npygeodesy.e22f\tpygeodesy-module.html#e22f\npygeodesy.F__E__\tpygeodesy-module.html#F__E__\npygeodesy.remainder\tpygeodesy-module.html#remainder\npygeodesy.degrees180\tpygeodesy-module.html#degrees180\npygeodesy.toEtm8\tpygeodesy-module.html#toEtm8\npygeodesy.cot\tpygeodesy-module.html#cot\npygeodesy.splice\tpygeodesy-module.html#splice\npygeodesy.degrees2m\tpygeodesy-module.html#degrees2m\npygeodesy.isstr\tpygeodesy-module.html#isstr\npygeodesy.tand\tpygeodesy-module.html#tand\npygeodesy.parse3llh\tpygeodesy-module.html#parse3llh\npygeodesy.false2f\tpygeodesy-module.html#false2f\npygeodesy.S_DEG\tpygeodesy-module.html#S_DEG\npygeodesy.isint0\tpygeodesy-module.html#isint0\npygeodesy.isiterablen\tpygeodesy-module.html#isiterablen\npygeodesy.fprod\tpygeodesy-module.html#fprod\npygeodesy.flatPolar\tpygeodesy-module.html#flatPolar\npygeodesy.DIG\tpygeodesy-module.html#DIG\npygeodesy.excessQuad_\tpygeodesy-module.html#excessQuad_\npygeodesy.isbool\tpygeodesy-module.html#isbool\npygeodesy.unsigned0\tpygeodesy-module.html#unsigned0\npygeodesy.nameof\tpygeodesy-module.html#nameof\npygeodesy.intersections2\tpygeodesy-module.html#intersections2\npygeodesy.radii11\tpygeodesy-module.html#radii11\npygeodesy.fidw\tpygeodesy-module.html#fidw\npygeodesy.isconvex_\tpygeodesy-module.html#isconvex_\npygeodesy.__package__\tpygeodesy-module.html#__package__\npygeodesy.isneg\tpygeodesy-module.html#isneg\npygeodesy.m2NM\tpygeodesy-module.html#m2NM\npygeodesy.luneOf\tpygeodesy-module.html#luneOf\npygeodesy.simplify2\tpygeodesy-module.html#simplify2\npygeodesy.wrapPI_2\tpygeodesy-module.html#wrapPI_2\npygeodesy.m2radians\tpygeodesy-module.html#m2radians\npygeodesy.n2e2\tpygeodesy-module.html#n2e2\npygeodesy.SM2m\tpygeodesy-module.html#SM2m\npygeodesy.isiterable\tpygeodesy-module.html#isiterable\npygeodesy.normal_\tpygeodesy-module.html#normal_\npygeodesy.isconvex\tpygeodesy-module.html#isconvex\npygeodesy.excessKarney\tpygeodesy-module.html#excessKarney\npygeodesy.b_f_2a\tpygeodesy-module.html#b_f_2a\npygeodesy.toUps8\tpygeodesy-module.html#toUps8\npygeodesy.circum4\tpygeodesy-module.html#circum4\npygeodesy.hartzell4\tpygeodesy-module.html#hartzell4\npygeodesy.km2m\tpygeodesy-module.html#km2m\npygeodesy.elliperim\tpygeodesy-module.html#elliperim\npygeodesy.NAN\tpygeodesy-module.html#NAN\npygeodesy.EPS\tpygeodesy-module.html#EPS\npygeodesy.horizon\tpygeodesy-module.html#horizon\npygeodesy.grades\tpygeodesy-module.html#grades\npygeodesy.gdf\tpygeodesy-module.html#gdf\npygeodesy.joined_\tpygeodesy-module.html#joined_\npygeodesy.F_DEG__\tpygeodesy-module.html#F_DEG__\npygeodesy.classnaming\tpygeodesy-module.html#classnaming\npygeodesy.isnormal\tpygeodesy-module.html#isnormal\npygeodesy.furlong2m\tpygeodesy-module.html#furlong2m\npygeodesy.atand\tpygeodesy-module.html#atand\npygeodesy.excessLHuilier_\tpygeodesy-module.html#excessLHuilier_\npygeodesy.cosineLaw_\tpygeodesy-module.html#cosineLaw_\npygeodesy.instr\tpygeodesy-module.html#instr\npygeodesy.equirectangular_\tpygeodesy-module.html#equirectangular_\npygeodesy.triSide4\tpygeodesy-module.html#triSide4\npygeodesy.len2\tpygeodesy-module.html#len2\npygeodesy.fsumf_\tpygeodesy-module.html#fsumf_\npygeodesy.xyz2rtp\tpygeodesy-module.html#xyz2rtp\npygeodesy.euclidean_\tpygeodesy-module.html#euclidean_\npygeodesy.hav\tpygeodesy-module.html#hav\npygeodesy.Transforms\tpygeodesy-module.html#Transforms\npygeodesy.equirectangular3\tpygeodesy-module.html#equirectangular3\npygeodesy.equirectangular4\tpygeodesy-module.html#equirectangular4\npygeodesy.pierlotx\tpygeodesy-module.html#pierlotx\npygeodesy.R_VM\tpygeodesy-module.html#R_VM\npygeodesy.F_D__\tpygeodesy-module.html#F_D__\npygeodesy.heightOf\tpygeodesy-module.html#heightOf\npygeodesy.enStr2\tpygeodesy-module.html#enStr2\npygeodesy.triArea\tpygeodesy-module.html#triArea\npygeodesy.triSide2\tpygeodesy-module.html#triSide2\npygeodesy.rangerrors\tpygeodesy-module.html#rangerrors\npygeodesy.PI2\tpygeodesy-module.html#PI2\npygeodesy.PI3\tpygeodesy-module.html#PI3\npygeodesy.PI4\tpygeodesy-module.html#PI4\npygeodesy.isenclosedby\tpygeodesy-module.html#isenclosedby\npygeodesy.S_RAD\tpygeodesy-module.html#S_RAD\npygeodesy.OK\tpygeodesy-module.html#OK\npygeodesy.signOf\tpygeodesy-module.html#signOf\npygeodesy.sincos2d_\tpygeodesy-module.html#sincos2d_\npygeodesy.bearingDMS\tpygeodesy-module.html#bearingDMS\npygeodesy.isantipode_\tpygeodesy-module.html#isantipode_\npygeodesy.radiansPI_2\tpygeodesy-module.html#radiansPI_2\npygeodesy.excessGirard_\tpygeodesy-module.html#excessGirard_\npygeodesy.vincentys\tpygeodesy-module.html#vincentys\npygeodesy.norm_\tpygeodesy-module.html#norm_\npygeodesy.pierlot\tpygeodesy-module.html#pierlot\npygeodesy.utmupsZoneBand5\tpygeodesy-module.html#utmupsZoneBand5\npygeodesy.f2f_\tpygeodesy-module.html#f2f_\npygeodesy.floats_\tpygeodesy-module.html#floats_\npygeodesy.trilaterate2d2\tpygeodesy-module.html#trilaterate2d2\npygeodesy.HeightIDW3\tpygeodesy-module.html#HeightIDW3\npygeodesy.parseUTM\tpygeodesy-module.html#parseUTM\npygeodesy.F_D60_\tpygeodesy-module.html#F_D60_\npygeodesy.truncate\tpygeodesy-module.html#truncate\npygeodesy.a_b2e2\tpygeodesy-module.html#a_b2e2\npygeodesy.m2toise\tpygeodesy-module.html#m2toise\npygeodesy.fdot3\tpygeodesy-module.html#fdot3\npygeodesy.perimeterof\tpygeodesy-module.html#perimeterof\npygeodesy.HausdorffCosineAndoyerLambert\tpygeodesy-module.html#HausdorffCosineAndoyerLambert\npygeodesy.NM2m\tpygeodesy-module.html#NM2m\npygeodesy.F_SEC_\tpygeodesy-module.html#F_SEC_\npygeodesy.fdot_\tpygeodesy-module.html#fdot_\npygeodesy.fremainder\tpygeodesy-module.html#fremainder\npygeodesy.parseUPS5\tpygeodesy-module.html#parseUPS5\npygeodesy.modulename\tpygeodesy-module.html#modulename\npygeodesy.parseDMS2\tpygeodesy-module.html#parseDMS2\npygeodesy.F__G_\tpygeodesy-module.html#F__G_\npygeodesy.elliperim_\tpygeodesy-module.html#elliperim_\npygeodesy.f2e22\tpygeodesy-module.html#f2e22\npygeodesy.excessCagnoli_\tpygeodesy-module.html#excessCagnoli_\npygeodesy.acre2m2\tpygeodesy-module.html#acre2m2\npygeodesy.F__E\tpygeodesy-module.html#F__E\npygeodesy.F__F\tpygeodesy-module.html#F__F\npygeodesy.F__G\tpygeodesy-module.html#F__G\npygeodesy.fstr\tpygeodesy-module.html#fstr\npygeodesy.excessKarney_\tpygeodesy-module.html#excessKarney_\npygeodesy.nearestOn\tpygeodesy-module.html#nearestOn\npygeodesy.hubeny\tpygeodesy-module.html#hubeny\npygeodesy.clipRadians\tpygeodesy-module.html#clipRadians\npygeodesy.parseETM5\tpygeodesy-module.html#parseETM5\npygeodesy.snellius3\tpygeodesy-module.html#snellius3\npygeodesy.OVERFLOW\tpygeodesy-module.html#OVERFLOW\npygeodesy.isclockwise\tpygeodesy-module.html#isclockwise\npygeodesy.fpowers\tpygeodesy-module.html#fpowers\npygeodesy.quadOf\tpygeodesy-module.html#quadOf\npygeodesy.meeus2\tpygeodesy-module.html#meeus2\npygeodesy.haversine_\tpygeodesy-module.html#haversine_\npygeodesy.latlon2n_xyz\tpygeodesy-module.html#latlon2n_xyz\npygeodesy.fpolynomial\tpygeodesy-module.html#fpolynomial\npygeodesy.isinstanceof\tpygeodesy-module.html#isinstanceof\npygeodesy.islistuple\tpygeodesy-module.html#islistuple\npygeodesy.isDEPRECATED\tpygeodesy-module.html#isDEPRECATED\npygeodesy.sqrt3\tpygeodesy-module.html#sqrt3\npygeodesy.sqrt0\tpygeodesy-module.html#sqrt0\npygeodesy.radians2m\tpygeodesy-module.html#radians2m\npygeodesy.hypot_\tpygeodesy-module.html#hypot_\npygeodesy.sincostan3\tpygeodesy-module.html#sincostan3\npygeodesy.zcrt\tpygeodesy-module.html#zcrt\npygeodesy.centroidOf\tpygeodesy-module.html#centroidOf\npygeodesy.Deg\tpygeodesy-module.html#Deg\npygeodesy.F_DM\tpygeodesy-module.html#F_DM\npygeodesy.n_xyz2latlon\tpygeodesy-module.html#n_xyz2latlon\npygeodesy.SinCos2\tpygeodesy-module.html#SinCos2\npygeodesy.clips\tpygeodesy-module.html#clips\npygeodesy.toOsgr\tpygeodesy-module.html#toOsgr\npygeodesy.F_D_\tpygeodesy-module.html#F_D_\npygeodesy.F_DM_\tpygeodesy-module.html#F_DM_\npygeodesy.R_QM\tpygeodesy-module.html#R_QM\npygeodesy.EPS02\tpygeodesy-module.html#EPS02\npygeodesy.F_DMS\tpygeodesy-module.html#F_DMS\npygeodesy.halfs2\tpygeodesy-module.html#halfs2\npygeodesy.fatan2\tpygeodesy-module.html#fatan2\npygeodesy.bearing\tpygeodesy-module.html#bearing\npygeodesy.fatan1\tpygeodesy-module.html#fatan1\npygeodesy.philam2n_xyz\tpygeodesy-module.html#philam2n_xyz\npygeodesy.Triaxial3s\tpygeodesy-module.html#Triaxial3s\npygeodesy.F_RAD__\tpygeodesy-module.html#F_RAD__\npygeodesy.F_MIN_\tpygeodesy-module.html#F_MIN_\npygeodesy.HeightIDW2\tpygeodesy-module.html#HeightIDW2\npygeodesy.polygon\tpygeodesy-module.html#polygon\npygeodesy.elevation2\tpygeodesy-module.html#elevation2\npygeodesy.isCartesian\tpygeodesy-module.html#isCartesian\npygeodesy.PI_2\tpygeodesy-module.html#PI_2\npygeodesy.PI_3\tpygeodesy-module.html#PI_3\npygeodesy.PI_4\tpygeodesy-module.html#PI_4\npygeodesy.F_MIN\tpygeodesy-module.html#F_MIN\npygeodesy.deprecated_method\tpygeodesy-module.html#deprecated_method\npygeodesy.normal\tpygeodesy-module.html#normal\npygeodesy.R_GM\tpygeodesy-module.html#R_GM\npygeodesy.sqrt_a\tpygeodesy-module.html#sqrt_a\npygeodesy.simplifyRDP\tpygeodesy-module.html#simplifyRDP\npygeodesy.isint\tpygeodesy-module.html#isint\npygeodesy.fdot\tpygeodesy-module.html#fdot\npygeodesy.tyr3d\tpygeodesy-module.html#tyr3d\npygeodesy.precision\tpygeodesy-module.html#precision\npygeodesy.isinf\tpygeodesy-module.html#isinf\npygeodesy.tan\tpygeodesy-module.html#tan\npygeodesy._all\tpygeodesy-module.html#_all\npygeodesy.tan_\tpygeodesy-module.html#tan_\npygeodesy.unStr\tpygeodesy-module.html#unStr\npygeodesy.toise2m\tpygeodesy-module.html#toise2m\npygeodesy.PI3_2\tpygeodesy-module.html#PI3_2\npygeodesy.opposing\tpygeodesy-module.html#opposing\npygeodesy.grades2radians\tpygeodesy-module.html#grades2radians\npygeodesy.normDMS\tpygeodesy-module.html#normDMS\npygeodesy.freduce\tpygeodesy-module.html#freduce\npygeodesy.__main__\tpygeodesy.__main__-module.html\npygeodesy.__main__._main\tpygeodesy.__main__-module.html#_main\npygeodesy.__main__.__package__\tpygeodesy.__main__-module.html#__package__\npygeodesy.__main__.t\tpygeodesy.__main__-module.html#t\npygeodesy.albers\tpygeodesy.albers-module.html\npygeodesy.albers._xkwds\tpygeodesy.errors-module.html#_xkwds\npygeodesy.albers._DatanheE\tpygeodesy.albers-module.html#_DatanheE\npygeodesy.albers._atanh1\tpygeodesy.albers-module.html#_atanh1\npygeodesy.albers.neg_\tpygeodesy.basics-module.html#neg_\npygeodesy.albers.deprecated_Property_RO\tpygeodesy.props-module.html#deprecated_Property_RO\npygeodesy.albers.fsum1f_\tpygeodesy.fsums-module.html#fsum1f_\npygeodesy.albers._ellipsoidal_datum\tpygeodesy.datums-module.html#_ellipsoidal_datum\npygeodesy.albers._ct2\tpygeodesy.albers-module.html#_ct2\npygeodesy.albers._TOL0\tpygeodesy.albers-module.html#_TOL0\npygeodesy.albers._name2__\tpygeodesy.named-module.html#_name2__\npygeodesy.albers._Dsn\tpygeodesy.albers-module.html#_Dsn\npygeodesy.albers._diff182\tpygeodesy.karney-module.html#_diff182\npygeodesy.albers.sincos2d_\tpygeodesy.utily-module.html#sincos2d_\npygeodesy.albers.hypot\tpygeodesy.fmath-module.html#hypot\npygeodesy.albers._Pass\tpygeodesy.named-module.html#_Pass\npygeodesy.albers.sincos2d\tpygeodesy.utily-module.html#sincos2d\npygeodesy.albers._k1_\tpygeodesy.albers-module.html#_k1_\npygeodesy.albers.__all__\tpygeodesy.albers-module.html#__all__\npygeodesy.albers.neg\tpygeodesy.basics-module.html#neg\npygeodesy.albers._Lat\tpygeodesy.albers-module.html#_Lat\npygeodesy.albers._isin\tpygeodesy.basics-module.html#_isin\npygeodesy.albers.unstr\tpygeodesy.streprs-module.html#unstr\npygeodesy.albers._tol\tpygeodesy.albers-module.html#_tol\npygeodesy.albers._ALL_DOCS\tpygeodesy.lazily-module.html#_ALL_OTHER\npygeodesy.albers._1_x21\tpygeodesy.albers-module.html#_1_x21\npygeodesy.albers._xlat\tpygeodesy.albers-module.html#_xlat\npygeodesy.albers._update_all\tpygeodesy.props-module.html#_update_all\npygeodesy.albers._qZx\tpygeodesy.albers-module.html#_qZx\npygeodesy.albers._MAXIT\tpygeodesy.albers-module.html#_MAXIT\npygeodesy.albers._D2atanheE\tpygeodesy.albers-module.html#_D2atanheE\npygeodesy.albers._MAXIT0\tpygeodesy.albers-module.html#_MAXIT0\npygeodesy.albers.hypot1\tpygeodesy.fmath-module.html#hypot1\npygeodesy.albers._atanheE\tpygeodesy.albers-module.html#_atanheE\npygeodesy.albers.degrees360\tpygeodesy.utily-module.html#degrees360\npygeodesy.albers.sincos2\tpygeodesy.utily-module.html#sincos2\npygeodesy.albers.__package__\tpygeodesy.albers-module.html#__package__\npygeodesy.albers.sqrt3\tpygeodesy.fmath-module.html#sqrt3\npygeodesy.albers._Ks\tpygeodesy.albers-module.html#_Ks\npygeodesy.albers.atan1d\tpygeodesy.utily-module.html#atan1d\npygeodesy.albers._Fsum1f_\tpygeodesy.fsums-module.html#_Fsum1f_\npygeodesy.albers._norm180\tpygeodesy.karney-module.html#_norm180\npygeodesy.albers.strs\tpygeodesy.streprs-module.html#strs\npygeodesy.albers._TERMS\tpygeodesy.albers-module.html#_TERMS\npygeodesy.albers.atan2\tpygeodesy.utily-module.html#atan2\npygeodesy.albers.atan1\tpygeodesy.utily-module.html#atan1\npygeodesy.albers._signBit\tpygeodesy.basics-module.html#signBit\npygeodesy.angles\tpygeodesy.angles-module.html\npygeodesy.angles.property_doc_\tpygeodesy.props-module.html#property_doc_\npygeodesy.angles._isRadians\tpygeodesy.units-module.html#_isRadians\npygeodesy.angles._xkwds_get\tpygeodesy.errors-module.html#_xkwds_get\npygeodesy.angles._normalize2\tpygeodesy.angles-module.html#_normalize2\npygeodesy.angles._Pass\tpygeodesy.named-module.html#_Pass\npygeodesy.angles._EPS03\tpygeodesy.angles-module.html#_EPS03\npygeodesy.angles._other\tpygeodesy.angles-module.html#_other\npygeodesy.angles._copysign_0_0\tpygeodesy.constants-module.html#_copysign_0_0\npygeodesy.angles.atan2\tpygeodesy.utily-module.html#atan2\npygeodesy.angles._raiseError\tpygeodesy.angles-module.html#_raiseError\npygeodesy.angles.sincos2d\tpygeodesy.utily-module.html#sincos2d\npygeodesy.angles._allPropertiesOf_n\tpygeodesy.props-module.html#_allPropertiesOf_n\npygeodesy.angles._scnu4\tpygeodesy.angles-module.html#_scnu4\npygeodesy.angles._ncardinal\tpygeodesy.angles-module.html#_ncardinal\npygeodesy.angles.__package__\tpygeodesy.angles-module.html#__package__\npygeodesy.angles.float_\tpygeodesy.constants-module.html#float_\npygeodesy.angles.isAng\tpygeodesy.angles-module.html#isAng\npygeodesy.angles.__all__\tpygeodesy.angles-module.html#__all__\npygeodesy.angles._CARDINAL2\tpygeodesy.angles-module.html#_CARDINAL2\npygeodesy.angles._Ang_types\tpygeodesy.angles-module.html#_Ang_types\npygeodesy.angles.atan2d\tpygeodesy.utily-module.html#atan2d\npygeodesy.angles._flipsign\tpygeodesy.constants-module.html#_flipsign\npygeodesy.angles._update_all\tpygeodesy.props-module.html#_update_all\npygeodesy.angles._Ang_from\tpygeodesy.angles-module.html#_Ang_from\npygeodesy.angles._SinCos2\tpygeodesy.angles-module.html#_SinCos2\npygeodesy.angles._orthogonal2\tpygeodesy.angles-module.html#_orthogonal2\npygeodesy.angles._isDegrees\tpygeodesy.units-module.html#_isDegrees\npygeodesy.angles._rnd\tpygeodesy.angles-module.html#_rnd\npygeodesy.angles._fint\tpygeodesy.angles-module.html#_fint\npygeodesy.angles._ZRND\tpygeodesy.angles-module.html#_ZRND\npygeodesy.angles._xkwds\tpygeodesy.errors-module.html#_xkwds\npygeodesy.angles._copysign_1_0\tpygeodesy.constants-module.html#_copysign_1_0\npygeodesy.angles.remainder\tpygeodesy.constants-module.html#remainder\npygeodesy.angles.fstr\tpygeodesy.streprs-module.html#fstr\npygeodesy.angles.Deg\tpygeodesy.angles-module.html#Deg\npygeodesy.angles.map1\tpygeodesy.basics-module.html#map1\npygeodesy.angles.Rad\tpygeodesy.angles-module.html#Rad\npygeodesy.angles.unstr\tpygeodesy.streprs-module.html#unstr\npygeodesy.angles._copysign\tpygeodesy.geodesicx.gx-module.html#copysign\npygeodesy.angles._xkwds_pop2\tpygeodesy.errors-module.html#_xkwds_pop2\npygeodesy.angles.SinCos2\tpygeodesy.utily-module.html#SinCos2\npygeodesy.angles.sincos2\tpygeodesy.utily-module.html#sincos2\npygeodesy.angles._signOf\tpygeodesy.basics-module.html#_signOf\npygeodesy.angles._isfinite\tpygeodesy.constants-module.html#_isfinite\npygeodesy.angles.hypot\tpygeodesy.fmath-module.html#hypot\npygeodesy.angles._over\tpygeodesy.constants-module.html#_over\npygeodesy.angles.signBit\tpygeodesy.basics-module.html#signBit\npygeodesy.angles.Ang_\tpygeodesy.angles-module.html#Ang_\npygeodesy.auxilats\tpygeodesy.auxilats-module.html\npygeodesy.auxilats._ALL_OTHER\tpygeodesy.lazily-module.html#_ALL_OTHER\npygeodesy.auxilats.__package__\tpygeodesy.auxilats-module.html#__package__\npygeodesy.auxilats.Aux\tpygeodesy.auxilats-module.html#Aux\npygeodesy.auxilats._CX_4\tpygeodesy.auxilats._CX_4-module.html\npygeodesy.auxilats._CX_4._coeffs_4\tpygeodesy.auxilats._CX_4-module.html#_coeffs_4\npygeodesy.auxilats._CX_4.__package__\tpygeodesy.auxilats._CX_4-module.html#__package__\npygeodesy.auxilats._CX_6\tpygeodesy.auxilats._CX_6-module.html\npygeodesy.auxilats._CX_6._coeffs_6\tpygeodesy.auxilats._CX_6-module.html#_coeffs_6\npygeodesy.auxilats._CX_6.__package__\tpygeodesy.auxilats._CX_6-module.html#__package__\npygeodesy.auxilats._CX_8\tpygeodesy.auxilats._CX_8-module.html\npygeodesy.auxilats._CX_8._coeffs_8\tpygeodesy.auxilats._CX_8-module.html#_coeffs_8\npygeodesy.auxilats._CX_8.__package__\tpygeodesy.auxilats._CX_8-module.html#__package__\npygeodesy.auxilats._CX_Rs\tpygeodesy.auxilats._CX_Rs-module.html\npygeodesy.auxilats._CX_Rs.__package__\tpygeodesy.auxilats._CX_Rs-module.html#__package__\npygeodesy.auxilats.__main__\tpygeodesy.auxilats.__main__-module.html\npygeodesy.auxilats.__main__._main\tpygeodesy.auxilats.__main__-module.html#_main\npygeodesy.auxilats.__main__.__package__\tpygeodesy.auxilats.__main__-module.html#__package__\npygeodesy.auxilats.auxAngle\tpygeodesy.auxilats.auxAngle-module.html\npygeodesy.auxilats.auxAngle._AuxClass\tpygeodesy.auxilats.auxAngle-module.html#_AuxClass\npygeodesy.auxilats.auxAngle._yx2\tpygeodesy.auxilats.auxAngle-module.html#_yx2\npygeodesy.auxilats.auxAngle.unstr\tpygeodesy.streprs-module.html#unstr\npygeodesy.auxilats.auxAngle.hypot\tpygeodesy.fmath-module.html#hypot\npygeodesy.auxilats.auxAngle._ALL_DOCS\tpygeodesy.lazily-module.html#_ALL_OTHER\npygeodesy.auxilats.auxAngle.sincos2d\tpygeodesy.utily-module.html#sincos2d\npygeodesy.auxilats.auxAngle.isnan\tpygeodesy.constants-module.html#isnan\npygeodesy.auxilats.auxAngle.atan2\tpygeodesy.utily-module.html#atan2\npygeodesy.auxilats.auxAngle.sincos2\tpygeodesy.utily-module.html#sincos2\npygeodesy.auxilats.auxAngle.__package__\tpygeodesy.auxilats.auxAngle-module.html#__package__\npygeodesy.auxilats.auxAngle.map1\tpygeodesy.basics-module.html#map1\npygeodesy.auxilats.auxAngle.atan2d\tpygeodesy.utily-module.html#atan2d\npygeodesy.auxilats.auxAngle._AUXClass\tpygeodesy.auxilats.auxAngle-module.html#_AUXClass\npygeodesy.auxilats.auxAngle._update_all\tpygeodesy.props-module.html#_update_all\npygeodesy.auxilats.auxAngle._MAX_2\tpygeodesy.auxilats.auxAngle-module.html#_MAX_2\npygeodesy.auxilats.auxAngle._copysign_1_0\tpygeodesy.constants-module.html#_copysign_1_0\npygeodesy.auxilats.auxAngle.isfinite\tpygeodesy.constants-module.html#isfinite\npygeodesy.auxilats.auxAngle.map2\tpygeodesy.basics-module.html#map2\npygeodesy.auxilats.auxAngle._xinstanceof\tpygeodesy.basics-module.html#_xinstanceof\npygeodesy.auxilats.auxAngle._over\tpygeodesy.constants-module.html#_over\npygeodesy.auxilats.auxDLat\tpygeodesy.auxilats.auxDLat-module.html\npygeodesy.auxilats.auxDLat._Dsn\tpygeodesy.auxilats.auxDLat-module.html#_Dsn\npygeodesy.auxilats.auxDLat._reverange\tpygeodesy.basics-module.html#_reverange\npygeodesy.auxilats.auxDLat._Datan\tpygeodesy.auxilats.auxily-module.html#_Datan\npygeodesy.auxilats.auxDLat._ALL_DOCS\tpygeodesy.lazily-module.html#_ALL_OTHER\npygeodesy.auxilats.auxDLat._DClenshaw\tpygeodesy.auxilats.auxDLat-module.html#_DClenshaw\npygeodesy.auxilats.auxDLat._Dsin\tpygeodesy.auxilats.auxDLat-module.html#_Dsin\npygeodesy.auxilats.auxDLat.__package__\tpygeodesy.auxilats.auxDLat-module.html#__package__\npygeodesy.auxilats.auxDLat.isnan\tpygeodesy.constants-module.html#isnan\npygeodesy.auxilats.auxDLat.isinf\tpygeodesy.constants-module.html#isinf\npygeodesy.auxilats.auxDLat._Dasinh\tpygeodesy.auxilats.auxily-module.html#_Dasinh\npygeodesy.auxilats.auxDLat._Dm\tpygeodesy.auxilats.auxily-module.html#_Dm\npygeodesy.auxilats.auxDLat._sn\tpygeodesy.auxilats.auxily-module.html#_sn\npygeodesy.auxilats.auxDLat._sc\tpygeodesy.fmath-module.html#hypot1\npygeodesy.auxilats.auxDLat._sxk2y\tpygeodesy.auxilats.auxDLat-module.html#_sxk2y\npygeodesy.auxilats.auxDLat.atan2\tpygeodesy.utily-module.html#atan2\npygeodesy.auxilats.auxDLat.atan1\tpygeodesy.utily-module.html#atan1\npygeodesy.auxilats.auxDLat.map1\tpygeodesy.basics-module.html#map1\npygeodesy.auxilats.auxDLat._1_over\tpygeodesy.constants-module.html#_1_over\npygeodesy.auxilats.auxDLat._over\tpygeodesy.constants-module.html#_over\npygeodesy.auxilats.auxDLat._naninf\tpygeodesy.constants-module.html#_naninf\npygeodesy.auxilats.auxDLat.isfinite\tpygeodesy.constants-module.html#isfinite\npygeodesy.auxilats.auxDST\tpygeodesy.auxilats.auxDST-module.html\npygeodesy.auxilats.auxDST._reverscaled\tpygeodesy.auxilats.auxDST-module.html#_reverscaled\npygeodesy.auxilats.auxDST.isodd\tpygeodesy.basics-module.html#isodd\npygeodesy.auxilats.auxDST._Dm\tpygeodesy.auxilats.auxily-module.html#_Dm\npygeodesy.auxilats.auxDST.isfinite\tpygeodesy.constants-module.html#isfinite\npygeodesy.auxilats.auxDST._naninf\tpygeodesy.constants-module.html#_naninf\npygeodesy.auxilats.auxDST._2cos2x\tpygeodesy.karney-module.html#_2cos2x\npygeodesy.auxilats.auxDST.neg\tpygeodesy.basics-module.html#neg\npygeodesy.auxilats.auxDST.__package__\tpygeodesy.auxilats.auxDST-module.html#__package__\npygeodesy.auxilats.auxDST._reverange\tpygeodesy.basics-module.html#_reverange\npygeodesy.auxilats.auxDST._len_N\tpygeodesy.auxilats.auxDST-module.html#_len_N\npygeodesy.auxilats.auxDST._ALL_DOCS\tpygeodesy.lazily-module.html#_ALL_OTHER\npygeodesy.auxilats.auxDST._xnumpy\tpygeodesy.basics-module.html#_xnumpy\npygeodesy.auxilats.auxLat\tpygeodesy.auxilats.auxLat-module.html\npygeodesy.auxilats.auxLat._AuxClass\tpygeodesy.auxilats.auxAngle-module.html#_AuxClass\npygeodesy.auxilats.auxLat._isRadius\tpygeodesy.units-module.html#_isRadius\npygeodesy.auxilats.auxLat._xkwds_pop2\tpygeodesy.errors-module.html#_xkwds_pop2\npygeodesy.auxilats.auxLat._ellipsoidal_datum\tpygeodesy.datums-module.html#_ellipsoidal_datum\npygeodesy.auxilats.auxLat._2cos2x\tpygeodesy.karney-module.html#_2cos2x\npygeodesy.auxilats.auxLat._log2\tpygeodesy.constants-module.html#_log2\npygeodesy.auxilats.auxLat._Fsumf_\tpygeodesy.fsums-module.html#_Fsumf_\npygeodesy.auxilats.auxLat._ALL_DOCS\tpygeodesy.lazily-module.html#_ALL_OTHER\npygeodesy.auxilats.auxLat.isnan\tpygeodesy.constants-module.html#isnan\npygeodesy.auxilats.auxLat.atan2\tpygeodesy.utily-module.html#atan2\npygeodesy.auxilats.auxLat.__package__\tpygeodesy.auxilats.auxLat-module.html#__package__\npygeodesy.auxilats.auxLat.isinf\tpygeodesy.constants-module.html#isinf\npygeodesy.auxilats.auxLat._sn\tpygeodesy.auxilats.auxily-module.html#_sn\npygeodesy.auxilats.auxLat._AR2Coeffs\tpygeodesy.auxilats.auxLat-module.html#_AR2Coeffs\npygeodesy.auxilats.auxLat._exp2\tpygeodesy.auxilats.auxLat-module.html#_exp2\npygeodesy.auxilats.auxLat._update_all\tpygeodesy.props-module.html#_update_all\npygeodesy.auxilats.auxLat._Newton\tpygeodesy.auxilats.auxLat-module.html#_Newton\npygeodesy.auxilats.auxLat._isin\tpygeodesy.basics-module.html#_isin\npygeodesy.auxilats.auxLat._isDegrees\tpygeodesy.units-module.html#_isDegrees\npygeodesy.auxilats.auxLat._Xorder\tpygeodesy.errors-module.html#_Xorder\npygeodesy.auxilats.auxLat._reverange\tpygeodesy.basics-module.html#_reverange\npygeodesy.auxilats.auxLat._polynomial\tpygeodesy.karney-module.html#_polynomial\npygeodesy.auxilats.auxLat._sum\tpygeodesy.fsums-module.html#_fsum\npygeodesy.auxilats.auxLat.atan1\tpygeodesy.utily-module.html#atan1\npygeodesy.auxilats.auxLat.cbrt\tpygeodesy.fmath-module.html#cbrt\npygeodesy.auxilats.auxLat._0_0s\tpygeodesy.constants-module.html#_0_0s\npygeodesy.auxilats.auxLat._RRCoeffs\tpygeodesy.auxilats.auxLat-module.html#_RRCoeffs\npygeodesy.auxilats.auxLat._name__\tpygeodesy.named-module.html#_name__\npygeodesy.auxilats.auxLat._TRIPS\tpygeodesy.auxilats.auxLat-module.html#_TRIPS\npygeodesy.auxilats.auxLat._toAuxCase\tpygeodesy.auxilats.auxLat-module.html#_toAuxCase\npygeodesy.auxilats.auxLat._sc\tpygeodesy.fmath-module.html#hypot1\npygeodesy.auxilats.auxLat.isfinite\tpygeodesy.constants-module.html#isfinite\npygeodesy.auxilats.auxLat._xkwds_not\tpygeodesy.errors-module.html#_xkwds_not\npygeodesy.auxilats.auxLat._passarg\tpygeodesy.internals-module.html#_passarg\npygeodesy.auxilats.auxLat._xinstanceof\tpygeodesy.basics-module.html#_xinstanceof\npygeodesy.auxilats.auxLat._over\tpygeodesy.constants-module.html#_over\npygeodesy.auxilats.auxLat._diff_name2\tpygeodesy.auxilats.auxLat-module.html#_diff_name2\npygeodesy.auxilats.auxLat._Clenshaw\tpygeodesy.auxilats.auxLat-module.html#_Clenshaw\npygeodesy.auxilats.auxily\tpygeodesy.auxilats.auxily-module.html\npygeodesy.auxilats.auxily.hypot2_\tpygeodesy.fmath-module.html#hypot2_\npygeodesy.auxilats.auxily._Datan\tpygeodesy.auxilats.auxily-module.html#_Datan\npygeodesy.auxilats.auxily.Aux\tpygeodesy.auxilats.auxily-module.html#Aux\npygeodesy.auxilats.auxily._ALL_DOCS\tpygeodesy.lazily-module.html#_ALL_OTHER\npygeodesy.auxilats.auxily.isnan\tpygeodesy.constants-module.html#isnan\npygeodesy.auxilats.auxily.__package__\tpygeodesy.auxilats.auxily-module.html#__package__\npygeodesy.auxilats.auxily._h\tpygeodesy.auxilats.auxily-module.html#_h\npygeodesy.auxilats.auxily._Greek2Aux\tpygeodesy.auxilats.auxily-module.html#_Greek2Aux\npygeodesy.auxilats.auxily._isin\tpygeodesy.basics-module.html#_isin\npygeodesy.auxilats.auxily._copysign_1_0\tpygeodesy.constants-module.html#_copysign_1_0\npygeodesy.auxilats.auxily._Dlam\tpygeodesy.auxilats.auxily-module.html#_Dlam\npygeodesy.auxilats.auxily._Dh\tpygeodesy.auxilats.auxily-module.html#_Dh\npygeodesy.auxilats.auxily._Dasinh\tpygeodesy.auxilats.auxily-module.html#_Dasinh\npygeodesy.auxilats.auxily._Dm\tpygeodesy.auxilats.auxily-module.html#_Dm\npygeodesy.auxilats.auxily._Aux2Greek\tpygeodesy.auxilats.auxily-module.html#_Aux2Greek\npygeodesy.auxilats.auxily._sc\tpygeodesy.fmath-module.html#hypot1\npygeodesy.auxilats.auxily._sn\tpygeodesy.auxilats.auxily-module.html#_sn\npygeodesy.auxilats.auxily.typename\tpygeodesy.internals-module.html#typename\npygeodesy.auxilats.auxily.atan1\tpygeodesy.utily-module.html#atan1\npygeodesy.auxilats.auxily._Dp0Dpsi\tpygeodesy.auxilats.auxily-module.html#_Dp0Dpsi\npygeodesy.auxilats.auxily._1_over\tpygeodesy.constants-module.html#_1_over\npygeodesy.auxilats.auxily._over\tpygeodesy.constants-module.html#_over\npygeodesy.auxilats.auxily.isinf\tpygeodesy.constants-module.html#isinf\npygeodesy.azimuthal\tpygeodesy.azimuthal-module.html\npygeodesy.azimuthal._xkwds\tpygeodesy.errors-module.html#_xkwds\npygeodesy.azimuthal._xdatum\tpygeodesy.errors-module.html#_xdatum\npygeodesy.azimuthal._over_horizon_\tpygeodesy.azimuthal-module.html#_over_horizon_\npygeodesy.azimuthal.deprecated_Property_RO\tpygeodesy.props-module.html#deprecated_Property_RO\npygeodesy.azimuthal._name__\tpygeodesy.named-module.html#_name__\npygeodesy.azimuthal.equidistant\tpygeodesy.azimuthal-module.html#equidistant\npygeodesy.azimuthal._name2__\tpygeodesy.named-module.html#_name2__\npygeodesy.azimuthal._TRIPS\tpygeodesy.azimuthal-module.html#_TRIPS\npygeodesy.azimuthal.sincos2d_\tpygeodesy.utily-module.html#sincos2d_\npygeodesy.azimuthal._xinstanceof\tpygeodesy.basics-module.html#_xinstanceof\npygeodesy.azimuthal._hypot\tpygeodesy.fmath-module.html#hypot\npygeodesy.azimuthal._Pass\tpygeodesy.named-module.html#_Pass\npygeodesy.azimuthal.euclid\tpygeodesy.fmath-module.html#euclid\npygeodesy.azimuthal.property_doc_\tpygeodesy.props-module.html#property_doc_\npygeodesy.azimuthal.sincos2d\tpygeodesy.utily-module.html#sincos2d\npygeodesy.azimuthal.asin1\tpygeodesy.utily-module.html#asin1\npygeodesy.azimuthal.__all__\tpygeodesy.azimuthal-module.html#__all__\npygeodesy.azimuthal.atan2b\tpygeodesy.utily-module.html#atan2b\npygeodesy.azimuthal._fstrLL0\tpygeodesy.streprs-module.html#_fstrLL0\npygeodesy.azimuthal.atan2d\tpygeodesy.utily-module.html#atan2d\npygeodesy.azimuthal._Equidistants\tpygeodesy.azimuthal-module.html#_Equidistants\npygeodesy.azimuthal._isin\tpygeodesy.basics-module.html#_isin\npygeodesy.azimuthal._spherical_datum\tpygeodesy.datums-module.html#_spherical_datum\npygeodesy.azimuthal.unstr\tpygeodesy.streprs-module.html#unstr\npygeodesy.azimuthal._ALL_DOCS\tpygeodesy.lazily-module.html#_ALL_OTHER\npygeodesy.azimuthal._EPS_K\tpygeodesy.azimuthal-module.html#_EPS_K\npygeodesy.azimuthal._update_all\tpygeodesy.props-module.html#_update_all\npygeodesy.azimuthal._umod_360\tpygeodesy.constants-module.html#_umod_360\npygeodesy.azimuthal.gnomonic\tpygeodesy.azimuthal-module.html#gnomonic\npygeodesy.azimuthal.isnon0\tpygeodesy.constants-module.html#isnon0\npygeodesy.azimuthal.typename\tpygeodesy.internals-module.html#typename\npygeodesy.azimuthal._xattr\tpygeodesy.errors-module.html#_xattr\npygeodesy.azimuthal._enzh4\tpygeodesy.azimuthal-module.html#_enzh4\npygeodesy.azimuthal.sincos2\tpygeodesy.utily-module.html#sincos2\npygeodesy.azimuthal.__package__\tpygeodesy.azimuthal-module.html#__package__\npygeodesy.azimuthal._norm180\tpygeodesy.karney-module.html#_norm180\npygeodesy.azimuthal.atan2\tpygeodesy.utily-module.html#atan2\npygeodesy.azimuthal.atan1\tpygeodesy.utily-module.html#atan1\npygeodesy.basics\tpygeodesy.basics-module.html\npygeodesy.basics._xiterror\tpygeodesy.basics-module.html#_xiterror\npygeodesy.basics._TypesError\tpygeodesy.errors-module.html#_TypesError\npygeodesy.basics._passarg\tpygeodesy.internals-module.html#_passarg\npygeodesy.basics.isscalar\tpygeodesy.basics-module.html#isscalar\npygeodesy.basics.neg_\tpygeodesy.basics-module.html#neg_\npygeodesy.basics.isLatLon\tpygeodesy.basics-module.html#isLatLon\npygeodesy.basics._Xstr\tpygeodesy.basics-module.html#_Xstr\npygeodesy.basics._xpackages\tpygeodesy.basics-module.html#_xpackages\npygeodesy.basics._xscipy\tpygeodesy.basics-module.html#_xscipy\npygeodesy.basics._xsubclassof\tpygeodesy.basics-module.html#_xsubclassof\npygeodesy.basics._Strs\tpygeodesy.basics-module.html#_Strs\npygeodesy.basics._XPACKAGES\tpygeodesy.basics-module.html#_XPACKAGES\npygeodesy.basics._xiterable\tpygeodesy.basics-module.html#_xiterable\npygeodesy.basics.signOf\tpygeodesy.basics-module.html#signOf\npygeodesy.basics.issequence\tpygeodesy.basics-module.html#issequence\npygeodesy.basics._args_kwds_names\tpygeodesy.basics-module.html#_args_kwds_names\npygeodesy.basics._xinstanceof\tpygeodesy.basics-module.html#_xinstanceof\npygeodesy.basics._xpackages_\tpygeodesy.basics-module.html#_xpackages_\npygeodesy.basics._xzip\tpygeodesy.basics-module.html#_xzip\npygeodesy.basics._required_\tpygeodesy.basics-module.html#_required_\npygeodesy.basics.itemsorted\tpygeodesy.basics-module.html#itemsorted\npygeodesy.basics._splituple\tpygeodesy.basics-module.html#_splituple\npygeodesy.basics._xiterablen\tpygeodesy.basics-module.html#_xiterablen\npygeodesy.basics.__all__\tpygeodesy.basics-module.html#__all__\npygeodesy.basics.typename\tpygeodesy.internals-module.html#typename\npygeodesy.basics._max2min2\tpygeodesy.basics-module.html#_max2min2\npygeodesy.basics.neg\tpygeodesy.basics-module.html#neg\npygeodesy.basics._PYGEODESY_ENV\tpygeodesy.internals-module.html#_PYGEODESY_ENV\npygeodesy.basics.ub2str\tpygeodesy.basics-module.html#ub2str\npygeodesy.basics.issubclassof\tpygeodesy.basics-module.html#issubclassof\npygeodesy.basics.isNvector\tpygeodesy.basics-module.html#isNvector\npygeodesy.basics._xgeographiclib\tpygeodesy.basics-module.html#_xgeographiclib\npygeodesy.basics._isin\tpygeodesy.basics-module.html#_isin\npygeodesy.basics._envPYGEODESY\tpygeodesy.internals-module.html#_envPYGEODESY\npygeodesy.basics.splice\tpygeodesy.basics-module.html#splice\npygeodesy.basics._enquote\tpygeodesy.internals-module.html#_enquote\npygeodesy.basics.iscomplex\tpygeodesy.basics-module.html#iscomplex\npygeodesy.basics._enumereverse\tpygeodesy.basics-module.html#_enumereverse\npygeodesy.basics.isbool\tpygeodesy.basics-module.html#isbool\npygeodesy.basics.isodd\tpygeodesy.basics-module.html#isodd\npygeodesy.basics._neg0\tpygeodesy.basics-module.html#_neg0\npygeodesy.basics.isidentifier\tpygeodesy.basics-module.html#isidentifier\npygeodesy.basics.iskeyword\tpygeodesy.basics-module.html#iskeyword\npygeodesy.basics._signOf\tpygeodesy.basics-module.html#_signOf\npygeodesy.basics._integer_ratio2\tpygeodesy.basics-module.html#_integer_ratio2\npygeodesy.basics._xversion\tpygeodesy.basics-module.html#_xversion\npygeodesy.basics._xor\tpygeodesy.basics-module.html#_xor\npygeodesy.basics._xscalar\tpygeodesy.basics-module.html#_xscalar\npygeodesy.basics.isinstanceof\tpygeodesy.basics-module.html#isinstanceof\npygeodesy.basics._gcd\tpygeodesy.basics-module.html#_gcd\npygeodesy.basics._xcoverage\tpygeodesy.basics-module.html#_xcoverage\npygeodesy.basics._below_\tpygeodesy.basics-module.html#_below_\npygeodesy.basics.isiterabletype\tpygeodesy.basics-module.html#isiterabletype\npygeodesy.basics._xImportError\tpygeodesy.basics-module.html#_xImportError\npygeodesy.basics.isstr\tpygeodesy.basics-module.html#isstr\npygeodesy.basics._xnumpy\tpygeodesy.basics-module.html#_xnumpy\npygeodesy.basics._list_tuple_types\tpygeodesy.basics-module.html#_list_tuple_types\npygeodesy.basics.islistuple\tpygeodesy.basics-module.html#islistuple\npygeodesy.basics.clips\tpygeodesy.basics-module.html#clips\npygeodesy.basics.max2\tpygeodesy.basics-module.html#max2\npygeodesy.basics.str2ub\tpygeodesy.basics-module.html#str2ub\npygeodesy.basics.copysign0\tpygeodesy.basics-module.html#copysign0\npygeodesy.basics._xkwds_get1\tpygeodesy.errors-module.html#_xkwds_get1\npygeodesy.basics.isiterablen\tpygeodesy.basics-module.html#isiterablen\npygeodesy.basics.isfloat\tpygeodesy.basics-module.html#isfloat\npygeodesy.basics.int1s\tpygeodesy.basics-module.html#int1s\npygeodesy.basics._xAssertionError\tpygeodesy.errors-module.html#_xAssertionError\npygeodesy.basics._xdup\tpygeodesy.basics-module.html#_xdup\npygeodesy.basics._xcopy\tpygeodesy.basics-module.html#_xcopy\npygeodesy.basics.len2\tpygeodesy.basics-module.html#len2\npygeodesy.basics._reverange\tpygeodesy.basics-module.html#_reverange\npygeodesy.basics.unsigned0\tpygeodesy.basics-module.html#unsigned0\npygeodesy.basics._version_info\tpygeodesy.internals-module.html#_version_info\npygeodesy.basics.isCartesian\tpygeodesy.basics-module.html#isCartesian\npygeodesy.basics.isDEPRECATED\tpygeodesy.basics-module.html#isDEPRECATED\npygeodesy.basics.__package__\tpygeodesy.basics-module.html#__package__\npygeodesy.basics.signBit\tpygeodesy.basics-module.html#signBit\npygeodesy.basics.isint\tpygeodesy.basics-module.html#isint\npygeodesy.basics.isclass\tpygeodesy.basics-module.html#isclass\npygeodesy.basics.isiterable\tpygeodesy.basics-module.html#isiterable\npygeodesy.basics.min2\tpygeodesy.basics-module.html#min2\npygeodesy.basics.copytype\tpygeodesy.basics-module.html#copytype\npygeodesy.basics.halfs2\tpygeodesy.basics-module.html#halfs2\npygeodesy.basics.map2\tpygeodesy.basics-module.html#map2\npygeodesy.basics._Bytes\tpygeodesy.basics-module.html#_Bytes\npygeodesy.basics.map1\tpygeodesy.basics-module.html#map1\npygeodesy.basics._req_d_by\tpygeodesy.basics-module.html#_req_d_by\npygeodesy.booleans\tpygeodesy.booleans-module.html\npygeodesy.booleans._low_high_eps2\tpygeodesy.booleans-module.html#_low_high_eps2\npygeodesy.booleans._L\tpygeodesy.booleans-module.html#_L\npygeodesy.booleans._open_\tpygeodesy.booleans-module.html#_open_\npygeodesy.booleans._other\tpygeodesy.booleans-module.html#_other\npygeodesy.booleans._1EPS\tpygeodesy.booleans-module.html#_1EPS\npygeodesy.booleans._name__\tpygeodesy.named-module.html#_name__\npygeodesy.booleans.unstr\tpygeodesy.streprs-module.html#unstr\npygeodesy.booleans._RP2L\tpygeodesy.booleans-module.html#_RP2L\npygeodesy.booleans._IsnotError\tpygeodesy.errors-module.html#_IsnotError\npygeodesy.booleans.hypot\tpygeodesy.fmath-module.html#hypot\npygeodesy.booleans.issubclassof\tpygeodesy.basics-module.html#issubclassof\npygeodesy.booleans._alpha_\tpygeodesy.booleans-module.html#_alpha_\npygeodesy.booleans._boolean_\tpygeodesy.booleans-module.html#_boolean_\npygeodesy.booleans.fdot_\tpygeodesy.fmath-module.html#fdot_\npygeodesy.booleans._isin\tpygeodesy.basics-module.html#_isin\npygeodesy.booleans.favg\tpygeodesy.fmath-module.html#favg\npygeodesy.booleans._alpha1\tpygeodesy.booleans-module.html#_alpha1\npygeodesy.booleans._min_max_eps2\tpygeodesy.booleans-module.html#_min_max_eps2\npygeodesy.booleans.isodd\tpygeodesy.basics-module.html#isodd\npygeodesy.booleans.isBoolean\tpygeodesy.booleans-module.html#isBoolean\npygeodesy.booleans._10EPS\tpygeodesy.booleans-module.html#_10EPS\npygeodesy.booleans._Cps\tpygeodesy.booleans-module.html#_Cps\npygeodesy.booleans._xkwds_get\tpygeodesy.errors-module.html#_xkwds_get\npygeodesy.booleans._Cnum\tpygeodesy.booleans-module.html#_Cnum\npygeodesy.booleans._0EPS\tpygeodesy.booleans-module.html#_0EPS\npygeodesy.booleans._ALL_DOCS\tpygeodesy.lazily-module.html#_ALL_OTHER\npygeodesy.booleans._EPS0\tpygeodesy.booleans-module.html#_EPS0\npygeodesy.booleans._EPS1\tpygeodesy.booleans-module.html#_EPS1\npygeodesy.booleans._xscalar\tpygeodesy.basics-module.html#_xscalar\npygeodesy.booleans.pairs\tpygeodesy.streprs-module.html#pairs\npygeodesy.booleans._left_right_bottom_top_eps2\tpygeodesy.booleans-module.html#_left_right_bottom_top_eps2\npygeodesy.booleans._outside\tpygeodesy.booleans-module.html#_outside\npygeodesy.booleans.typename\tpygeodesy.internals-module.html#typename\npygeodesy.booleans.hypot2\tpygeodesy.fmath-module.html#hypot2\npygeodesy.booleans._NotImplemented\tpygeodesy.named-module.html#_NotImplemented\npygeodesy.booleans._xattr\tpygeodesy.errors-module.html#_xattr\npygeodesy.booleans._eps0\tpygeodesy.booleans-module.html#_eps0\npygeodesy.booleans._alpha4\tpygeodesy.booleans-module.html#_alpha4\npygeodesy.booleans._case_\tpygeodesy.booleans-module.html#_case_\npygeodesy.booleans.fabs\tpygeodesy.booleans-module.html#fabs\npygeodesy.booleans.__package__\tpygeodesy.booleans-module.html#__package__\npygeodesy.booleans._RP\tpygeodesy.booleans-module.html#_RP\npygeodesy.booleans._corners_\tpygeodesy.booleans-module.html#_corners_\npygeodesy.booleans._xkwds_pop2\tpygeodesy.errors-module.html#_xkwds_pop2\npygeodesy.booleans.__all__\tpygeodesy.booleans-module.html#__all__\npygeodesy.booleans.map2\tpygeodesy.basics-module.html#map2\npygeodesy.booleans._unrollon\tpygeodesy.utily-module.html#_unrollon\npygeodesy.cartesianBase\tpygeodesy.cartesianBase-module.html\npygeodesy.cartesianBase._xkwds\tpygeodesy.errors-module.html#_xkwds\npygeodesy.cartesianBase._r_\tpygeodesy.cartesianBase-module.html#_r_\npygeodesy.cartesianBase.fsumf_\tpygeodesy.fsums-module.html#fsumf_\npygeodesy.cartesianBase.acos1\tpygeodesy.utily-module.html#acos1\npygeodesy.cartesianBase._earth_ellipsoid\tpygeodesy.datums-module.html#_earth_ellipsoid\npygeodesy.cartesianBase._name2__\tpygeodesy.named-module.html#_name2__\npygeodesy.cartesianBase._xdatum\tpygeodesy.errors-module.html#_xdatum\npygeodesy.cartesianBase.radians\tpygeodesy.utily-module.html#radians\npygeodesy.cartesianBase._xinstanceof\tpygeodesy.basics-module.html#_xinstanceof\npygeodesy.cartesianBase._xyzhdlln4\tpygeodesy.vector3d-module.html#_xyzhdlln4\npygeodesy.cartesianBase._IsnotError\tpygeodesy.errors-module.html#_IsnotError\npygeodesy.cartesianBase.hypot\tpygeodesy.fmath-module.html#hypot\npygeodesy.cartesianBase._Pass\tpygeodesy.named-module.html#_Pass\npygeodesy.cartesianBase.sincos2_\tpygeodesy.utily-module.html#sincos2_\npygeodesy.cartesianBase.property_doc_\tpygeodesy.props-module.html#property_doc_\npygeodesy.cartesianBase.sincos2d\tpygeodesy.utily-module.html#sincos2d\npygeodesy.cartesianBase.hypot_\tpygeodesy.fmath-module.html#hypot_\npygeodesy.cartesianBase.__all__\tpygeodesy.cartesianBase-module.html#__all__\npygeodesy.cartesianBase._rtp3\tpygeodesy.cartesianBase-module.html#_rtp3\npygeodesy.cartesianBase._isin\tpygeodesy.basics-module.html#_isin\npygeodesy.cartesianBase._isMeter\tpygeodesy.units-module.html#_isMeter\npygeodesy.cartesianBase._spherical_datum\tpygeodesy.datums-module.html#_spherical_datum\npygeodesy.cartesianBase.degrees\tpygeodesy.utily-module.html#degrees\npygeodesy.cartesianBase._isfinite\tpygeodesy.constants-module.html#_isfinite\npygeodesy.cartesianBase.isnear0\tpygeodesy.constants-module.html#isnear0\npygeodesy.cartesianBase.cbrt\tpygeodesy.fmath-module.html#cbrt\npygeodesy.cartesianBase._xkwds_get\tpygeodesy.errors-module.html#_xkwds_get\npygeodesy.cartesianBase._ALL_DOCS\tpygeodesy.lazily-module.html#_ALL_OTHER\npygeodesy.cartesianBase._heigHt\tpygeodesy.units-module.html#_heigHt\npygeodesy.cartesianBase.rtp2xyz_\tpygeodesy.cartesianBase-module.html#rtp2xyz_\npygeodesy.cartesianBase._update_all\tpygeodesy.props-module.html#_update_all\npygeodesy.cartesianBase._theta_\tpygeodesy.cartesianBase-module.html#_theta_\npygeodesy.cartesianBase.xyz2rtp\tpygeodesy.cartesianBase-module.html#xyz2rtp\npygeodesy.cartesianBase.typename\tpygeodesy.internals-module.html#typename\npygeodesy.cartesianBase.hypot2\tpygeodesy.fmath-module.html#hypot2\npygeodesy.cartesianBase._xattr\tpygeodesy.errors-module.html#_xattr\npygeodesy.cartesianBase.xyz2rtp_\tpygeodesy.cartesianBase-module.html#xyz2rtp_\npygeodesy.cartesianBase._xkwds_pop2\tpygeodesy.errors-module.html#_xkwds_pop2\npygeodesy.cartesianBase.fabs\tpygeodesy.booleans-module.html#fabs\npygeodesy.cartesianBase.sqrt\tpygeodesy.geodesicx.gx-module.html#sqrt\npygeodesy.cartesianBase.__package__\tpygeodesy.cartesianBase-module.html#__package__\npygeodesy.cartesianBase.deprecated_method\tpygeodesy.props-module.html#deprecated_method\npygeodesy.cartesianBase.rtp2xyz\tpygeodesy.cartesianBase-module.html#rtp2xyz\npygeodesy.cartesianBase._resections\tpygeodesy.cartesianBase-module.html#_resections\npygeodesy.cartesianBase.atan2\tpygeodesy.utily-module.html#atan2\npygeodesy.clipy\tpygeodesy.clipy-module.html\npygeodesy.clipy.boundsOf\tpygeodesy.points-module.html#boundsOf\npygeodesy.clipy.points2\tpygeodesy.iters-module.html#points2\npygeodesy.clipy._pts2\tpygeodesy.clipy-module.html#_pts2\npygeodesy.clipy.clipFHP4\tpygeodesy.clipy-module.html#clipFHP4\npygeodesy.clipy._Pass\tpygeodesy.named-module.html#_Pass\npygeodesy.clipy.fabs\tpygeodesy.booleans-module.html#fabs\npygeodesy.clipy._imdex2\tpygeodesy.iters-module.html#_imdex2\npygeodesy.clipy._LBtrim\tpygeodesy.clipy-module.html#_LBtrim\npygeodesy.clipy.isconvex_\tpygeodesy.points-module.html#isconvex_\npygeodesy.clipy.__package__\tpygeodesy.clipy-module.html#__package__\npygeodesy.clipy.clipCS4\tpygeodesy.clipy-module.html#clipCS4\npygeodesy.clipy.len2\tpygeodesy.basics-module.html#len2\npygeodesy.clipy._original_\tpygeodesy.clipy-module.html#_original_\npygeodesy.clipy._neq\tpygeodesy.clipy-module.html#_neq\npygeodesy.clipy._fj_\tpygeodesy.clipy-module.html#_fj_\npygeodesy.clipy._4corners\tpygeodesy.clipy-module.html#_4corners\npygeodesy.clipy.areaOf\tpygeodesy.points-module.html#areaOf\npygeodesy.clipy.clipGH4\tpygeodesy.clipy-module.html#clipGH4\npygeodesy.clipy._eq\tpygeodesy.clipy-module.html#_eq\npygeodesy.clipy._box4\tpygeodesy.clipy-module.html#_box4\npygeodesy.clipy.__all__\tpygeodesy.clipy-module.html#__all__\npygeodesy.clipy.clipLB6\tpygeodesy.clipy-module.html#clipLB6\npygeodesy.clipy.clipSH3\tpygeodesy.clipy-module.html#clipSH3\npygeodesy.clipy.typename\tpygeodesy.internals-module.html#typename\npygeodesy.clipy.clipSH\tpygeodesy.clipy-module.html#clipSH\npygeodesy.constants\tpygeodesy.constants-module.html\npygeodesy.constants.MIN\tpygeodesy.constants-module.html#MIN\npygeodesy.constants.NAN\tpygeodesy.constants-module.html#NAN\npygeodesy.constants.EPS\tpygeodesy.constants-module.html#EPS\npygeodesy.constants.float0_\tpygeodesy.constants-module.html#float0_\npygeodesy.constants._0_01\tpygeodesy.constants-module.html#_0_01\npygeodesy.constants._umod_PI2\tpygeodesy.constants-module.html#_umod_PI2\npygeodesy.constants.R_MB\tpygeodesy.constants-module.html#R_MB\npygeodesy.constants.R_MA\tpygeodesy.constants-module.html#R_MA\npygeodesy.constants.MANT_DIG\tpygeodesy.constants-module.html#MANT_DIG\npygeodesy.constants._0_0_9T\tpygeodesy.constants-module.html#_0_0_9T\npygeodesy.constants._9_0\tpygeodesy.constants-module.html#_9_0\npygeodesy.constants._N_90_0\tpygeodesy.constants-module.html#_N_90_0\npygeodesy.constants._N_1_0\tpygeodesy.constants-module.html#_N_1_0\npygeodesy.constants._K0_UPS\tpygeodesy.constants-module.html#_K0_UPS\npygeodesy.constants.isclose\tpygeodesy.constants-module.html#isclose\npygeodesy.constants.isint0\tpygeodesy.constants-module.html#isint0\npygeodesy.constants._2_0\tpygeodesy.constants-module.html#_2_0\npygeodesy.constants.R_VM\tpygeodesy.constants-module.html#R_VM\npygeodesy.constants.MIN_EXP\tpygeodesy.constants-module.html#MIN_EXP\npygeodesy.constants.R_NM\tpygeodesy.constants-module.html#R_NM\npygeodesy.constants._floats\tpygeodesy.constants-module.html#_floats\npygeodesy.constants._4_0\tpygeodesy.constants-module.html#_4_0\npygeodesy.constants.PI2\tpygeodesy.constants-module.html#PI2\npygeodesy.constants.PI3\tpygeodesy.constants-module.html#PI3\npygeodesy.constants.PI4\tpygeodesy.constants-module.html#PI4\npygeodesy.constants._0_0s\tpygeodesy.constants-module.html#_0_0s\npygeodesy.constants._720_0\tpygeodesy.constants-module.html#_720_0\npygeodesy.constants._copysign_1_0\tpygeodesy.constants-module.html#_copysign_1_0\npygeodesy.constants.MAX\tpygeodesy.constants-module.html#MAX\npygeodesy.constants._0_0_1T\tpygeodesy.constants-module.html#_0_0_1T\npygeodesy.constants._over\tpygeodesy.constants-module.html#_over\npygeodesy.constants.signBit\tpygeodesy.basics-module.html#signBit\npygeodesy.constants.isfinite\tpygeodesy.constants-module.html#isfinite\npygeodesy.constants.R_FM\tpygeodesy.constants-module.html#R_FM\npygeodesy.constants._0_001\tpygeodesy.constants-module.html#_0_001\npygeodesy.constants._main\tpygeodesy.constants-module.html#_main\npygeodesy.constants._SQRT3\tpygeodesy.constants-module.html#_SQRT3\npygeodesy.constants._log2\tpygeodesy.constants-module.html#_log2\npygeodesy.constants._60_0\tpygeodesy.constants-module.html#_60_0\npygeodesy.constants._INF_NAN_NINF\tpygeodesy.constants-module.html#_INF_NAN_NINF\npygeodesy.constants.R_KM\tpygeodesy.constants-module.html#R_KM\npygeodesy.constants._N_180_0\tpygeodesy.constants-module.html#_N_180_0\npygeodesy.constants._M_KM\tpygeodesy.constants-module.html#_M_KM\npygeodesy.constants._0_25\tpygeodesy.constants-module.html#_0_25\npygeodesy.constants.isnan\tpygeodesy.constants-module.html#isnan\npygeodesy.constants._8_0\tpygeodesy.constants-module.html#_8_0\npygeodesy.constants.__all__\tpygeodesy.constants-module.html#__all__\npygeodesy.constants.MAX_EXP\tpygeodesy.constants-module.html#MAX_EXP\npygeodesy.constants._N_2_0\tpygeodesy.constants-module.html#_N_2_0\npygeodesy.constants._6_0\tpygeodesy.constants-module.html#_6_0\npygeodesy.constants._64_0\tpygeodesy.constants-module.html#_64_0\npygeodesy.constants.NINF\tpygeodesy.constants-module.html#NINF\npygeodesy.constants._N_0_5\tpygeodesy.constants-module.html#_N_0_5\npygeodesy.constants._0_5\tpygeodesy.constants-module.html#_0_5\npygeodesy.constants.PI\tpygeodesy.constants-module.html#PI\npygeodesy.constants._0_0\tpygeodesy.constants-module.html#_0_0\npygeodesy.constants._0_1\tpygeodesy.constants-module.html#_0_1\npygeodesy.constants._M_NM\tpygeodesy.constants-module.html#_M_NM\npygeodesy.constants._1_75\tpygeodesy.constants-module.html#_1_75\npygeodesy.constants._SQRT2\tpygeodesy.constants-module.html#_SQRT2\npygeodesy.constants._3_0\tpygeodesy.constants-module.html#_3_0\npygeodesy.constants._copysignINF\tpygeodesy.constants-module.html#_copysignINF\npygeodesy.constants._360_0\tpygeodesy.constants-module.html#_360_0\npygeodesy.constants._2_3rd\tpygeodesy.constants-module.html#_2_3rd\npygeodesy.constants._xkwds_get1\tpygeodesy.errors-module.html#_xkwds_get1\npygeodesy.constants._copysign_0_0\tpygeodesy.constants-module.html#_copysign_0_0\npygeodesy.constants.remainder\tpygeodesy.constants-module.html#remainder\npygeodesy.constants._EPS4e8\tpygeodesy.constants-module.html#_EPS4e8\npygeodesy.constants.iscomplex\tpygeodesy.basics-module.html#iscomplex\npygeodesy.constants._45_0\tpygeodesy.constants-module.html#_45_0\npygeodesy.constants._89_999\tpygeodesy.constants-module.html#_89_999\npygeodesy.constants._16_0\tpygeodesy.constants-module.html#_16_0\npygeodesy.constants.R_SM\tpygeodesy.constants-module.html#R_SM\npygeodesy.constants._isfinite\tpygeodesy.constants-module.html#_isfinite\npygeodesy.constants.R_M\tpygeodesy.constants-module.html#R_M\npygeodesy.constants.isinf\tpygeodesy.constants-module.html#isinf\npygeodesy.constants.INF\tpygeodesy.constants-module.html#INF\npygeodesy.constants._10_0\tpygeodesy.constants-module.html#_10_0\npygeodesy.constants._1000_0\tpygeodesy.constants-module.html#_1000_0\npygeodesy.constants._EPSqrt\tpygeodesy.constants-module.html#_EPSqrt\npygeodesy.constants._flipsign\tpygeodesy.constants-module.html#_flipsign\npygeodesy.constants.isninf\tpygeodesy.constants-module.html#isninf\npygeodesy.constants._pos_self\tpygeodesy.constants-module.html#_pos_self\npygeodesy.constants.OVERFLOW\tpygeodesy.constants-module.html#OVERFLOW\npygeodesy.constants._Radius\tpygeodesy.constants-module.html#_Radius\npygeodesy.constants._1_5\tpygeodesy.constants-module.html#_1_5\npygeodesy.constants._1_0\tpygeodesy.constants-module.html#_1_0\npygeodesy.constants._100_0\tpygeodesy.constants-module.html#_100_0\npygeodesy.constants.EPS_2\tpygeodesy.constants-module.html#EPS_2\npygeodesy.constants._K0_UTM\tpygeodesy.constants-module.html#_K0_UTM\npygeodesy.constants._isclose\tpygeodesy.constants-module.html#_isclose\npygeodesy.constants._floatuple\tpygeodesy.constants-module.html#_floatuple\npygeodesy.constants._SQRT2_2\tpygeodesy.constants-module.html#_SQRT2_2\npygeodesy.constants._180_0\tpygeodesy.constants-module.html#_180_0\npygeodesy.constants._1_EPS\tpygeodesy.constants-module.html#_1_EPS\npygeodesy.constants._over_1\tpygeodesy.constants-module.html#_over_1\npygeodesy.constants._0_0001\tpygeodesy.constants-module.html#_0_0001\npygeodesy.constants._EPStol\tpygeodesy.constants-module.html#_EPStol\npygeodesy.constants.isnon0\tpygeodesy.constants-module.html#isnon0\npygeodesy.constants.typename\tpygeodesy.internals-module.html#typename\npygeodesy.constants.floats_\tpygeodesy.constants-module.html#floats_\npygeodesy.constants._3600_0\tpygeodesy.constants-module.html#_3600_0\npygeodesy.constants.R_QM\tpygeodesy.constants-module.html#R_QM\npygeodesy.constants._0_125\tpygeodesy.constants-module.html#_0_125\npygeodesy.constants.EPS02\tpygeodesy.constants-module.html#EPS02\npygeodesy.constants._off90\tpygeodesy.constants-module.html#_off90\npygeodesy.constants._Float\tpygeodesy.constants-module.html#_Float\npygeodesy.constants.DIG\tpygeodesy.constants-module.html#DIG\npygeodesy.constants.isbool\tpygeodesy.basics-module.html#isbool\npygeodesy.constants.EPS8\tpygeodesy.constants-module.html#EPS8\npygeodesy.constants.EPS4\tpygeodesy.constants-module.html#EPS4\npygeodesy.constants.EPS2\tpygeodesy.constants-module.html#EPS2\npygeodesy.constants._EPSjam\tpygeodesy.constants-module.html#_EPSjam\npygeodesy.constants.EPS0\tpygeodesy.constants-module.html#EPS0\npygeodesy.constants.EPS1\tpygeodesy.constants-module.html#EPS1\npygeodesy.constants.isneg0\tpygeodesy.constants-module.html#isneg0\npygeodesy.constants.isnear90\tpygeodesy.constants-module.html#isnear90\npygeodesy.constants._float\tpygeodesy.constants-module.html#_float\npygeodesy.constants.NEG0\tpygeodesy.constants-module.html#NEG0\npygeodesy.constants.PI_3\tpygeodesy.constants-module.html#PI_3\npygeodesy.constants.PI_4\tpygeodesy.constants-module.html#PI_4\npygeodesy.constants.PI_6\tpygeodesy.constants-module.html#PI_6\npygeodesy.constants.__package__\tpygeodesy.constants-module.html#__package__\npygeodesy.constants._xError\tpygeodesy.errors-module.html#_xError\npygeodesy.constants.float_\tpygeodesy.constants-module.html#float_\npygeodesy.constants.INT0\tpygeodesy.constants-module.html#INT0\npygeodesy.constants.isneg\tpygeodesy.constants-module.html#isneg\npygeodesy.constants.R_GM\tpygeodesy.constants-module.html#R_GM\npygeodesy.constants._5_0\tpygeodesy.constants-module.html#_5_0\npygeodesy.constants._SQRT3_2\tpygeodesy.constants-module.html#_SQRT3_2\npygeodesy.constants.isint\tpygeodesy.basics-module.html#isint\npygeodesy.constants._0_75\tpygeodesy.constants-module.html#_0_75\npygeodesy.constants._2__PI\tpygeodesy.constants-module.html#_2__PI\npygeodesy.constants._32_0\tpygeodesy.constants-module.html#_32_0\npygeodesy.constants._M_SM\tpygeodesy.constants-module.html#_M_SM\npygeodesy.constants._90_0\tpygeodesy.constants-module.html#_90_0\npygeodesy.constants._EPS2e4\tpygeodesy.constants-module.html#_EPS2e4\npygeodesy.constants._1_0_1T\tpygeodesy.constants-module.html#_1_0_1T\npygeodesy.constants._float0\tpygeodesy.constants-module.html#_float0\npygeodesy.constants._1_3rd\tpygeodesy.constants-module.html#_1_3rd\npygeodesy.constants._N_0_0\tpygeodesy.constants-module.html#_N_0_0\npygeodesy.constants._xkwds_item2\tpygeodesy.errors-module.html#_xkwds_item2\npygeodesy.constants._copysign\tpygeodesy.geodesicx.gx-module.html#copysign\npygeodesy.constants._umod_360\tpygeodesy.constants-module.html#_umod_360\npygeodesy.constants.isnear1\tpygeodesy.constants-module.html#isnear1\npygeodesy.constants.isnear0\tpygeodesy.constants-module.html#isnear0\npygeodesy.constants.PI3_2\tpygeodesy.constants-module.html#PI3_2\npygeodesy.constants._EPSmin\tpygeodesy.constants-module.html#_EPSmin\npygeodesy.constants._1_over\tpygeodesy.constants-module.html#_1_over\npygeodesy.constants._iscfinite\tpygeodesy.constants-module.html#_iscfinite\npygeodesy.constants._270_0\tpygeodesy.constants-module.html#_270_0\npygeodesy.constants._naninf\tpygeodesy.constants-module.html#_naninf\npygeodesy.constants.PI_2\tpygeodesy.constants-module.html#PI_2\npygeodesy.css\tpygeodesy.css-module.html\npygeodesy.css.toCss\tpygeodesy.css-module.html#toCss\npygeodesy.css._sincos2d\tpygeodesy.karney-module.html#_sincos2d\npygeodesy.css._diff182\tpygeodesy.karney-module.html#_diff182\npygeodesy.css._ellipsoidal_datum\tpygeodesy.datums-module.html#_ellipsoidal_datum\npygeodesy.css.islistuple\tpygeodesy.basics-module.html#islistuple\npygeodesy.css._xdatum\tpygeodesy.errors-module.html#_xdatum\npygeodesy.css._xattr\tpygeodesy.errors-module.html#_xattr\npygeodesy.css._norm180\tpygeodesy.karney-module.html#_norm180\npygeodesy.css._CS0\tpygeodesy.css-module.html#_CS0\npygeodesy.css._atan2d\tpygeodesy.karney-module.html#_atan2d\npygeodesy.css.neg\tpygeodesy.basics-module.html#neg\npygeodesy.css._norm2\tpygeodesy.karney-module.html#_norm2\npygeodesy.css.fabs\tpygeodesy.booleans-module.html#fabs\npygeodesy.css._heigHt\tpygeodesy.units-module.html#_heigHt\npygeodesy.css.deprecated_Property_RO\tpygeodesy.props-module.html#deprecated_Property_RO\npygeodesy.css._xkwds\tpygeodesy.errors-module.html#_xkwds\npygeodesy.css._signBit\tpygeodesy.basics-module.html#signBit\npygeodesy.css._update_all\tpygeodesy.props-module.html#_update_all\npygeodesy.css._xsubclassof\tpygeodesy.basics-module.html#_xsubclassof\npygeodesy.css._isin\tpygeodesy.basics-module.html#_isin\npygeodesy.css._xellipsoidal\tpygeodesy.errors-module.html#_xellipsoidal\npygeodesy.css._umod_360\tpygeodesy.constants-module.html#_umod_360\npygeodesy.css.__all__\tpygeodesy.css-module.html#__all__\npygeodesy.css._LL4Tuple\tpygeodesy.namedTuples-module.html#_LL4Tuple\npygeodesy.css._fstrLL0\tpygeodesy.streprs-module.html#_fstrLL0\npygeodesy.css._name2__\tpygeodesy.named-module.html#_name2__\npygeodesy.css._copysign\tpygeodesy.geodesicx.gx-module.html#copysign\npygeodesy.css._xinstanceof\tpygeodesy.basics-module.html#_xinstanceof\npygeodesy.css.__package__\tpygeodesy.css-module.html#__package__\npygeodesy.css._xzipairs\tpygeodesy.streprs-module.html#_xzipairs\npygeodesy.css._fstrENH2\tpygeodesy.streprs-module.html#_fstrENH2\npygeodesy.datums\tpygeodesy.datums-module.html\npygeodesy.datums._isRadius\tpygeodesy.units-module.html#_isRadius\npygeodesy.datums._xkwds\tpygeodesy.errors-module.html#_xkwds\npygeodesy.datums._passarg\tpygeodesy.internals-module.html#_passarg\npygeodesy.datums._F\tpygeodesy.constants-module.html#_float\npygeodesy.datums._RPS\tpygeodesy.datums-module.html#_RPS\npygeodesy.datums._DHDN_\tpygeodesy.datums-module.html#_DHDN_\npygeodesy.datums._TokyoJapan_\tpygeodesy.datums-module.html#_TokyoJapan_\npygeodesy.datums._name__\tpygeodesy.named-module.html#_name__\npygeodesy.datums.islistuple\tpygeodesy.basics-module.html#islistuple\npygeodesy.datums._earth_datum\tpygeodesy.datums-module.html#_earth_datum\npygeodesy.datums._earth_ellipsoid\tpygeodesy.datums-module.html#_earth_ellipsoid\npygeodesy.datums._ellipsoidal_datum\tpygeodesy.datums-module.html#_ellipsoidal_datum\npygeodesy.datums._Names11\tpygeodesy.datums-module.html#_Names11\npygeodesy.datums._zip\tpygeodesy.basics-module.html#_zip\npygeodesy.datums._DHDNE_\tpygeodesy.datums-module.html#_DHDNE_\npygeodesy.datums._Irl1965_\tpygeodesy.datums-module.html#_Irl1965_\npygeodesy.datums._name2__\tpygeodesy.named-module.html#_name2__\npygeodesy.datums._S1_S\tpygeodesy.datums-module.html#_S1_S\npygeodesy.datums._ED2\tpygeodesy.datums-module.html#_ED2\npygeodesy.datums._under\tpygeodesy.internals-module.html#_under\npygeodesy.datums._xinstanceof\tpygeodesy.basics-module.html#_xinstanceof\npygeodesy.datums._negastr\tpygeodesy.datums-module.html#_negastr\npygeodesy.datums._IsnotError\tpygeodesy.errors-module.html#_IsnotError\npygeodesy.datums.Datums\tpygeodesy.datums-module.html#Datums\npygeodesy.datums.radians\tpygeodesy.utily-module.html#radians\npygeodesy.datums.neg\tpygeodesy.basics-module.html#neg\npygeodesy.datums.Transforms\tpygeodesy.datums-module.html#Transforms\npygeodesy.datums._isin\tpygeodesy.basics-module.html#_isin\npygeodesy.datums._ED50_\tpygeodesy.datums-module.html#_ED50_\npygeodesy.datums._a_ellipsoid_\tpygeodesy.datums-module.html#_a_ellipsoid_\npygeodesy.datums._Identity_\tpygeodesy.datums-module.html#_Identity_\npygeodesy.datums._Names7\tpygeodesy.datums-module.html#_Names7\npygeodesy.datums._BD72_\tpygeodesy.datums-module.html#_BD72_\npygeodesy.datums._NTF_\tpygeodesy.datums-module.html#_NTF_\npygeodesy.datums._MGI_\tpygeodesy.datums-module.html#_MGI_\npygeodesy.datums._GDA2020_\tpygeodesy.datums-module.html#_GDA2020_\npygeodesy.datums._Potsdam_\tpygeodesy.datums-module.html#_Potsdam_\npygeodesy.datums._xellipsoidall\tpygeodesy.errors-module.html#_xellipsoidall\npygeodesy.datums._Irl1975_\tpygeodesy.datums-module.html#_Irl1975_\npygeodesy.datums._EnD3\tpygeodesy.datums-module.html#_EnD3\npygeodesy.datums._spherical_datum\tpygeodesy.datums-module.html#_spherical_datum\npygeodesy.datums._equall\tpygeodesy.datums-module.html#_equall\npygeodesy.datums.map2\tpygeodesy.basics-module.html#map2\npygeodesy.datums._xkwds_pop2\tpygeodesy.errors-module.html#_xkwds_pop2\npygeodesy.datums.__package__\tpygeodesy.datums-module.html#__package__\npygeodesy.datums._lazy\tpygeodesy.named-module.html#_lazyNamedEnumItem\npygeodesy.datums._mean_radius\tpygeodesy.datums-module.html#_mean_radius\npygeodesy.datums._DHDNW_\tpygeodesy.datums-module.html#_DHDNW_\npygeodesy.datums._WGS84\tpygeodesy.datums-module.html#_WGS84\npygeodesy.datums.__all__\tpygeodesy.datums-module.html#__all__\npygeodesy.datums.fmean\tpygeodesy.fmath-module.html#fmean\npygeodesy.datums._OSGB36_\tpygeodesy.datums-module.html#_OSGB36_\npygeodesy.datums.fdot\tpygeodesy.fmath-module.html#fdot\npygeodesy.deprecated\tpygeodesy.deprecated-module.html\npygeodesy.deprecated.scalar\tpygeodesy.deprecated-module.html#scalar\npygeodesy.deprecated.R_MA\tpygeodesy.deprecated-module.html#R_MA\npygeodesy.deprecated.HeightIDW\tpygeodesy.deprecated-module.html#HeightIDW\npygeodesy.deprecated.equirectangular_\tpygeodesy.deprecated-module.html#equirectangular_\npygeodesy.deprecated.areaof\tpygeodesy.deprecated-module.html#areaof\npygeodesy.deprecated.tienstra\tpygeodesy.deprecated-module.html#tienstra\npygeodesy.deprecated.falsed2f\tpygeodesy.deprecated-module.html#falsed2f\npygeodesy.deprecated.cosineForsytheAndoyerLambert\tpygeodesy.deprecated-module.html#cosineForsytheAndoyerLambert\npygeodesy.deprecated.sumOf\tpygeodesy.deprecated-module.html#sumOf\npygeodesy.deprecated._unLazy0\tpygeodesy.deprecated-module.html#_unLazy0\npygeodesy.deprecated.equirectangular3\tpygeodesy.deprecated-module.html#equirectangular3\npygeodesy.deprecated.R_VM\tpygeodesy.deprecated-module.html#R_VM\npygeodesy.deprecated.Fsum2product\tpygeodesy.deprecated-module.html#Fsum2product\npygeodesy.deprecated.R_NM\tpygeodesy.deprecated-module.html#R_NM\npygeodesy.deprecated.collins\tpygeodesy.deprecated-module.html#collins\npygeodesy.deprecated.joined_\tpygeodesy.deprecated-module.html#joined_\npygeodesy.deprecated.isenclosedby\tpygeodesy.deprecated-module.html#isenclosedby\npygeodesy.deprecated.parseUTM\tpygeodesy.deprecated-module.html#parseUTM\npygeodesy.deprecated.OK\tpygeodesy.deprecated-module.html#OK\npygeodesy.deprecated.excessGirard\tpygeodesy.deprecated-module.html#excessGirard\npygeodesy.deprecated.joined\tpygeodesy.deprecated-module.html#joined\npygeodesy.deprecated.Transforms\tpygeodesy.deprecated-module.html#Transforms\npygeodesy.deprecated.elliperim_\tpygeodesy.deprecated-module.html#elliperim_\npygeodesy.deprecated.R_FM\tpygeodesy.deprecated-module.html#R_FM\npygeodesy.deprecated.Datums\tpygeodesy.deprecated-module.html#Datums\npygeodesy.deprecated._ALL_ATTRS\tpygeodesy.lazily-module.html#_ALL_ATTRS\npygeodesy.deprecated.Ellipsoids\tpygeodesy.deprecated-module.html#Ellipsoids\npygeodesy.deprecated.toUtm\tpygeodesy.deprecated-module.html#toUtm\npygeodesy.deprecated.R_KM\tpygeodesy.deprecated-module.html#R_KM\npygeodesy.deprecated.HeightIDW3\tpygeodesy.deprecated-module.html#HeightIDW3\npygeodesy.deprecated.HeightIDW2\tpygeodesy.deprecated-module.html#HeightIDW2\npygeodesy.deprecated.cosineForsytheAndoyerLambert_\tpygeodesy.deprecated-module.html#cosineForsytheAndoyerLambert_\npygeodesy.deprecated.FrechetCosineForsytheAndoyerLambert\tpygeodesy.deprecated-module.html#FrechetCosineForsytheAndoyerLambert\npygeodesy.deprecated.EcefCartesian\tpygeodesy.deprecated-module.html#EcefCartesian\npygeodesy.deprecated.__getattr__\tpygeodesy.deprecated-module.html#__getattr__\npygeodesy.deprecated.perimeterof\tpygeodesy.deprecated-module.html#perimeterof\npygeodesy.deprecated.clipDMS\tpygeodesy.deprecated-module.html#clipDMS\npygeodesy.deprecated.cosineAndoyerLambert\tpygeodesy.deprecated-module.html#cosineAndoyerLambert\npygeodesy.deprecated.HausdorffCosineAndoyerLambert\tpygeodesy.deprecated-module.html#HausdorffCosineAndoyerLambert\npygeodesy.deprecated.clipCS3\tpygeodesy.deprecated-module.html#clipCS3\npygeodesy.deprecated.copysign\tpygeodesy.deprecated-module.html#copysign\npygeodesy.deprecated._lazy_import_as\tpygeodesy.lazily-module.html#_lazy_import_as\npygeodesy.deprecated.nearestOn3\tpygeodesy.deprecated-module.html#nearestOn3\npygeodesy.deprecated.clipStr\tpygeodesy.deprecated-module.html#clipStr\npygeodesy.deprecated.nearestOn4\tpygeodesy.deprecated-module.html#nearestOn4\npygeodesy.deprecated.unsign0\tpygeodesy.deprecated-module.html#unsign0\npygeodesy.deprecated.R_MB\tpygeodesy.deprecated-module.html#R_MB\npygeodesy.deprecated.EPS1_2\tpygeodesy.deprecated-module.html#EPS1_2\npygeodesy.deprecated.Fn_rt\tpygeodesy.deprecated-module.html#Fn_rt\npygeodesy.deprecated.MANTIS\tpygeodesy.deprecated-module.html#MANTIS\npygeodesy.deprecated.HausdorffCosineForsytheAndoyerLambert\tpygeodesy.deprecated-module.html#HausdorffCosineForsytheAndoyerLambert\npygeodesy.deprecated.fStr\tpygeodesy.deprecated-module.html#fStr\npygeodesy.deprecated.R_M\tpygeodesy.deprecated-module.html#R_M\npygeodesy.deprecated.excessAbc\tpygeodesy.deprecated-module.html#excessAbc\npygeodesy.deprecated.istuplist\tpygeodesy.deprecated-module.html#istuplist\npygeodesy.deprecated.excessLHuilier\tpygeodesy.deprecated-module.html#excessLHuilier\npygeodesy.deprecated.enStr2\tpygeodesy.deprecated-module.html#enStr2\npygeodesy.deprecated.R_SM\tpygeodesy.deprecated-module.html#R_SM\npygeodesy.deprecated.FrechetCosineAndoyerLambert\tpygeodesy.deprecated-module.html#FrechetCosineAndoyerLambert\npygeodesy.deprecated.inStr\tpygeodesy.deprecated-module.html#inStr\npygeodesy.deprecated.points2\tpygeodesy.deprecated-module.html#points2\npygeodesy.deprecated.encodeEPSG\tpygeodesy.deprecated-module.html#encodeEPSG\npygeodesy.deprecated.HeightIDWcosineAndoyerLambert\tpygeodesy.deprecated-module.html#HeightIDWcosineAndoyerLambert\npygeodesy.deprecated.cosineAndoyerLambert_\tpygeodesy.deprecated-module.html#cosineAndoyerLambert_\npygeodesy.deprecated.anStr\tpygeodesy.deprecated-module.html#anStr\npygeodesy.deprecated.simplifyRDPm\tpygeodesy.deprecated-module.html#simplifyRDPm\npygeodesy.deprecated._ALL_DEPRECATED\tpygeodesy.deprecated-module.html#_ALL_DEPRECATED\npygeodesy.deprecated.decodeEPSG2\tpygeodesy.deprecated-module.html#decodeEPSG2\npygeodesy.deprecated.bounds\tpygeodesy.deprecated-module.html#bounds\npygeodesy.deprecated.HeightIDWcosineForsytheAndoyerLambert\tpygeodesy.deprecated-module.html#HeightIDWcosineForsytheAndoyerLambert\npygeodesy.deprecated.false2f\tpygeodesy.deprecated-module.html#false2f\npygeodesy.deprecated.hypot3\tpygeodesy.deprecated-module.html#hypot3\npygeodesy.deprecated.triAngle4\tpygeodesy.deprecated-module.html#triAngle4\npygeodesy.deprecated.polygon\tpygeodesy.deprecated-module.html#polygon\npygeodesy.deprecated.atand\tpygeodesy.deprecated-module.html#atand\npygeodesy.deprecated.float0\tpygeodesy.deprecated-module.html#float0\npygeodesy.deprecated.elliperim\tpygeodesy.deprecated-module.html#elliperim\npygeodesy.deprecated.__package__\tpygeodesy.deprecated-module.html#__package__\npygeodesy.deprecated.RefFrameError\tpygeodesy.deprecated-module.html#RefFrameError\npygeodesy.deprecated.fStrzs\tpygeodesy.deprecated-module.html#fStrzs\npygeodesy.deprecated.NorthPole\tpygeodesy.deprecated-module.html#NorthPole\npygeodesy.deprecated.SouthPole\tpygeodesy.deprecated-module.html#SouthPole\npygeodesy.deprecated.utmZoneBand2\tpygeodesy.deprecated-module.html#utmZoneBand2\npygeodesy.deprecated.simplifyVWm\tpygeodesy.deprecated-module.html#simplifyVWm\npygeodesy.deprecated.unStr\tpygeodesy.deprecated-module.html#unStr\npygeodesy.deprecated.simplify2\tpygeodesy.deprecated-module.html#simplify2\npygeodesy.deprecated.bases\tpygeodesy.deprecated.bases-module.html\npygeodesy.deprecated.bases.__all__\tpygeodesy.deprecated.bases-module.html#__all__\npygeodesy.deprecated.bases.points2\tpygeodesy.deprecated.bases-module.html#points2\npygeodesy.deprecated.bases.__package__\tpygeodesy.deprecated.bases-module.html#__package__\npygeodesy.deprecated.classes\tpygeodesy.deprecated.classes-module.html\npygeodesy.deprecated.classes.HeightIDW3\tpygeodesy.deprecated.classes-module.html#HeightIDW3\npygeodesy.deprecated.classes.HeightIDW2\tpygeodesy.deprecated.classes-module.html#HeightIDW2\npygeodesy.deprecated.classes.deprecated_method\tpygeodesy.props-module.html#deprecated_method\npygeodesy.deprecated.classes.FrechetCosineAndoyerLambert\tpygeodesy.deprecated.classes-module.html#FrechetCosineAndoyerLambert\npygeodesy.deprecated.classes._ALL_DOCS\tpygeodesy.lazily-module.html#_ALL_OTHER\npygeodesy.deprecated.classes.FrechetCosineForsytheAndoyerLambert\tpygeodesy.deprecated.classes-module.html#FrechetCosineForsytheAndoyerLambert\npygeodesy.deprecated.classes.HeightIDW\tpygeodesy.deprecated.classes-module.html#HeightIDW\npygeodesy.deprecated.classes._float\tpygeodesy.constants-module.html#_float\npygeodesy.deprecated.classes.EcefCartesian\tpygeodesy.deprecated.classes-module.html#EcefCartesian\npygeodesy.deprecated.classes.HeightIDWcosineAndoyerLambert\tpygeodesy.deprecated.classes-module.html#HeightIDWcosineAndoyerLambert\npygeodesy.deprecated.classes.RefFrameError\tpygeodesy.deprecated.classes-module.html#RefFrameError\npygeodesy.deprecated.classes.HausdorffCosineAndoyerLambert\tpygeodesy.deprecated.classes-module.html#HausdorffCosineAndoyerLambert\npygeodesy.deprecated.classes.deprecated_class\tpygeodesy.props-module.html#deprecated_class\npygeodesy.deprecated.classes.__all__\tpygeodesy.deprecated.classes-module.html#__all__\npygeodesy.deprecated.classes._reNames\tpygeodesy.deprecated.classes-module.html#_reNames\npygeodesy.deprecated.classes.HeightIDWcosineForsytheAndoyerLambert\tpygeodesy.deprecated.classes-module.html#HeightIDWcosineForsytheAndoyerLambert\npygeodesy.deprecated.classes.HausdorffCosineForsytheAndoyerLambert\tpygeodesy.deprecated.classes-module.html#HausdorffCosineForsytheAndoyerLambert\npygeodesy.deprecated.classes.Fn_rt\tpygeodesy.deprecated.classes-module.html#Fn_rt\npygeodesy.deprecated.classes.__package__\tpygeodesy.deprecated.classes-module.html#__package__\npygeodesy.deprecated.consterns\tpygeodesy.deprecated.consterns-module.html\npygeodesy.deprecated.consterns.OK\tpygeodesy.deprecated.consterns-module.html#OK\npygeodesy.deprecated.consterns.__all__\tpygeodesy.deprecated.consterns-module.html#__all__\npygeodesy.deprecated.consterns.MANTIS\tpygeodesy.deprecated.consterns-module.html#MANTIS\npygeodesy.deprecated.consterns.__package__\tpygeodesy.deprecated.consterns-module.html#__package__\npygeodesy.deprecated.consterns.deprecated_method\tpygeodesy.props-module.html#deprecated_method\npygeodesy.deprecated.consterns.EPS1_2\tpygeodesy.deprecated.consterns-module.html#EPS1_2\npygeodesy.deprecated.datum\tpygeodesy.deprecated.datum-module.html\npygeodesy.deprecated.datum.__all__\tpygeodesy.deprecated.datum-module.html#__all__\npygeodesy.deprecated.datum.R_MA\tpygeodesy.deprecated.datum-module.html#R_MA\npygeodesy.deprecated.datum._ALL_OTHER\tpygeodesy.lazily-module.html#_ALL_OTHER\npygeodesy.deprecated.datum.Datums\tpygeodesy.deprecated.datum-module.html#Datums\npygeodesy.deprecated.datum.R_MB\tpygeodesy.deprecated.datum-module.html#R_MB\npygeodesy.deprecated.datum.R_SM\tpygeodesy.deprecated.datum-module.html#R_SM\npygeodesy.deprecated.datum.Ellipsoids\tpygeodesy.deprecated.datum-module.html#Ellipsoids\npygeodesy.deprecated.datum.R_M\tpygeodesy.deprecated.datum-module.html#R_M\npygeodesy.deprecated.datum.R_NM\tpygeodesy.deprecated.datum-module.html#R_NM\npygeodesy.deprecated.datum.R_KM\tpygeodesy.deprecated.datum-module.html#R_KM\npygeodesy.deprecated.datum.__package__\tpygeodesy.deprecated.datum-module.html#__package__\npygeodesy.deprecated.datum.R_VM\tpygeodesy.deprecated.datum-module.html#R_VM\npygeodesy.deprecated.datum.R_FM\tpygeodesy.deprecated.datum-module.html#R_FM\npygeodesy.deprecated.datum.Transforms\tpygeodesy.deprecated.datum-module.html#Transforms\npygeodesy.deprecated.functions\tpygeodesy.deprecated.functions-module.html\npygeodesy.deprecated.functions.nearestOn4\tpygeodesy.deprecated.functions-module.html#nearestOn4\npygeodesy.deprecated.functions.unStr\tpygeodesy.deprecated.functions-module.html#unStr\npygeodesy.deprecated.functions.excessLHuilier\tpygeodesy.deprecated.functions-module.html#excessLHuilier\npygeodesy.deprecated.functions.utmZoneBand2\tpygeodesy.deprecated.functions-module.html#utmZoneBand2\npygeodesy.deprecated.functions.unsign0\tpygeodesy.deprecated.functions-module.html#unsign0\npygeodesy.deprecated.functions.enStr2\tpygeodesy.deprecated.functions-module.html#enStr2\npygeodesy.deprecated.functions.bounds\tpygeodesy.deprecated.functions-module.html#bounds\npygeodesy.deprecated.functions.scalar\tpygeodesy.deprecated.functions-module.html#scalar\npygeodesy.deprecated.functions.triAngle4\tpygeodesy.deprecated.functions-module.html#triAngle4\npygeodesy.deprecated.functions.isenclosedby\tpygeodesy.deprecated.functions-module.html#isenclosedby\npygeodesy.deprecated.functions.float0_\tpygeodesy.constants-module.html#float0_\npygeodesy.deprecated.functions.joined_\tpygeodesy.deprecated.functions-module.html#joined_\npygeodesy.deprecated.functions.toUtm\tpygeodesy.deprecated.functions-module.html#toUtm\npygeodesy.deprecated.functions.equirectangular_\tpygeodesy.deprecated.functions-module.html#equirectangular_\npygeodesy.deprecated.functions.float0\tpygeodesy.deprecated.functions-module.html#float0\npygeodesy.deprecated.functions.clipCS3\tpygeodesy.deprecated.functions-module.html#clipCS3\npygeodesy.deprecated.functions.inStr\tpygeodesy.deprecated.functions-module.html#inStr\npygeodesy.deprecated.functions.cosineForsytheAndoyerLambert_\tpygeodesy.deprecated.functions-module.html#cosineForsytheAndoyerLambert_\npygeodesy.deprecated.functions.fStrzs\tpygeodesy.deprecated.functions-module.html#fStrzs\npygeodesy.deprecated.functions.elliperim\tpygeodesy.deprecated.functions-module.html#elliperim\npygeodesy.deprecated.functions._UTM\tpygeodesy.deprecated.functions-module.html#_UTM\npygeodesy.deprecated.functions.__package__\tpygeodesy.deprecated.functions-module.html#__package__\npygeodesy.deprecated.functions.encodeEPSG\tpygeodesy.deprecated.functions-module.html#encodeEPSG\npygeodesy.deprecated.functions.areaof\tpygeodesy.deprecated.functions-module.html#areaof\npygeodesy.deprecated.functions.clipDMS\tpygeodesy.deprecated.functions-module.html#clipDMS\npygeodesy.deprecated.functions.tienstra\tpygeodesy.deprecated.functions-module.html#tienstra\npygeodesy.deprecated.functions.__all__\tpygeodesy.deprecated.functions-module.html#__all__\npygeodesy.deprecated.functions.cosineAndoyerLambert\tpygeodesy.deprecated.functions-module.html#cosineAndoyerLambert\npygeodesy.deprecated.functions.collins\tpygeodesy.deprecated.functions-module.html#collins\npygeodesy.deprecated.functions.cosineForsytheAndoyerLambert\tpygeodesy.deprecated.functions-module.html#cosineForsytheAndoyerLambert\npygeodesy.deprecated.functions.equirectangular3\tpygeodesy.deprecated.functions-module.html#equirectangular3\npygeodesy.deprecated.functions.copysign\tpygeodesy.deprecated.functions-module.html#copysign\npygeodesy.deprecated.functions.cosineAndoyerLambert_\tpygeodesy.deprecated.functions-module.html#cosineAndoyerLambert_\npygeodesy.deprecated.functions.anStr\tpygeodesy.deprecated.functions-module.html#anStr\npygeodesy.deprecated.functions.Fsum2product\tpygeodesy.deprecated.functions-module.html#Fsum2product\npygeodesy.deprecated.functions.clipStr\tpygeodesy.deprecated.functions-module.html#clipStr\npygeodesy.deprecated.functions.simplifyRDPm\tpygeodesy.deprecated.functions-module.html#simplifyRDPm\npygeodesy.deprecated.functions.nearestOn3\tpygeodesy.deprecated.functions-module.html#nearestOn3\npygeodesy.deprecated.functions.parseUTM\tpygeodesy.deprecated.functions-module.html#parseUTM\npygeodesy.deprecated.functions.polygon\tpygeodesy.deprecated.functions-module.html#polygon\npygeodesy.deprecated.functions.decodeEPSG2\tpygeodesy.deprecated.functions-module.html#decodeEPSG2\npygeodesy.deprecated.functions._WGS84\tpygeodesy.deprecated.functions-module.html#_WGS84\npygeodesy.deprecated.functions.falsed2f\tpygeodesy.deprecated.functions-module.html#falsed2f\npygeodesy.deprecated.functions.simplifyVWm\tpygeodesy.deprecated.functions-module.html#simplifyVWm\npygeodesy.deprecated.functions.excessGirard\tpygeodesy.deprecated.functions-module.html#excessGirard\npygeodesy.deprecated.functions.atand\tpygeodesy.deprecated.functions-module.html#atand\npygeodesy.deprecated.functions.joined\tpygeodesy.deprecated.functions-module.html#joined\npygeodesy.deprecated.functions.simplify2\tpygeodesy.deprecated.functions-module.html#simplify2\npygeodesy.deprecated.functions.deprecated_function\tpygeodesy.props-module.html#deprecated_function\npygeodesy.deprecated.functions.false2f\tpygeodesy.deprecated.functions-module.html#false2f\npygeodesy.deprecated.functions.fStr\tpygeodesy.deprecated.functions-module.html#fStr\npygeodesy.deprecated.functions.excessAbc\tpygeodesy.deprecated.functions-module.html#excessAbc\npygeodesy.deprecated.functions.hypot3\tpygeodesy.deprecated.functions-module.html#hypot3\npygeodesy.deprecated.functions.perimeterof\tpygeodesy.deprecated.functions-module.html#perimeterof\npygeodesy.deprecated.functions.elliperim_\tpygeodesy.deprecated.functions-module.html#elliperim_\npygeodesy.deprecated.functions.istuplist\tpygeodesy.deprecated.functions-module.html#istuplist\npygeodesy.deprecated.nvector\tpygeodesy.deprecated.nvector-module.html\npygeodesy.deprecated.nvector.NorthPole\tpygeodesy.deprecated.nvector-module.html#NorthPole\npygeodesy.deprecated.nvector._ALL_OTHER\tpygeodesy.lazily-module.html#_ALL_OTHER\npygeodesy.deprecated.nvector.__all__\tpygeodesy.deprecated.nvector-module.html#__all__\npygeodesy.deprecated.nvector.__package__\tpygeodesy.deprecated.nvector-module.html#__package__\npygeodesy.deprecated.nvector.deprecated_class\tpygeodesy.props-module.html#deprecated_class\npygeodesy.deprecated.nvector.SouthPole\tpygeodesy.deprecated.nvector-module.html#SouthPole\npygeodesy.deprecated.nvector.sumOf\tpygeodesy.deprecated.nvector-module.html#sumOf\npygeodesy.deprecated.rhumbBase\tpygeodesy.deprecated.rhumbBase-module.html\npygeodesy.deprecated.rhumbBase.__package__\tpygeodesy.deprecated.rhumbBase-module.html#__package__\npygeodesy.deprecated.rhumbaux\tpygeodesy.deprecated.rhumbaux-module.html\npygeodesy.deprecated.rhumbaux.__all__\tpygeodesy.deprecated.rhumbaux-module.html#__all__\npygeodesy.deprecated.rhumbaux.__package__\tpygeodesy.deprecated.rhumbaux-module.html#__package__\npygeodesy.deprecated.rhumbsolve\tpygeodesy.deprecated.rhumbsolve-module.html\npygeodesy.deprecated.rhumbsolve.__all__\tpygeodesy.deprecated.rhumbsolve-module.html#__all__\npygeodesy.deprecated.rhumbsolve.__package__\tpygeodesy.deprecated.rhumbsolve-module.html#__package__\npygeodesy.deprecated.rhumbx\tpygeodesy.deprecated.rhumbx-module.html\npygeodesy.deprecated.rhumbx.__all__\tpygeodesy.deprecated.rhumbx-module.html#__all__\npygeodesy.deprecated.rhumbx.__package__\tpygeodesy.deprecated.rhumbx-module.html#__package__\npygeodesy.dms\tpygeodesy.dms-module.html\npygeodesy.dms.F_MIN__\tpygeodesy.dms-module.html#F_MIN__\npygeodesy.dms._SEXAGECIMUL\tpygeodesy.dms-module.html#_SEXAGECIMUL\npygeodesy.dms._xkwds\tpygeodesy.errors-module.html#_xkwds\npygeodesy.dms.F__F_\tpygeodesy.dms-module.html#F__F_\npygeodesy.dms.parseDDDMMSS\tpygeodesy.dms-module.html#parseDDDMMSS\npygeodesy.dms.F_DEG__\tpygeodesy.dms-module.html#F_DEG__\npygeodesy.dms.F_RAD\tpygeodesy.dms-module.html#F_RAD\npygeodesy.dms.clipDegrees\tpygeodesy.dms-module.html#clipDegrees\npygeodesy.dms.F_D\tpygeodesy.dms-module.html#F_D\npygeodesy.dms.isLatLon\tpygeodesy.basics-module.html#isLatLon\npygeodesy.dms.S_SEP\tpygeodesy.dms-module.html#S_SEP\npygeodesy.dms._parseX\tpygeodesy.errors-module.html#_parseX\npygeodesy.dms.S_SEC\tpygeodesy.dms-module.html#S_SEC\npygeodesy.dms._F_case\tpygeodesy.dms-module.html#_F_case\npygeodesy.dms.bearingDMS\tpygeodesy.dms-module.html#bearingDMS\npygeodesy.dms.parse3llh\tpygeodesy.dms-module.html#parse3llh\npygeodesy.dms.latDMS\tpygeodesy.dms-module.html#latDMS\npygeodesy.dms.F_SEC__\tpygeodesy.dms-module.html#F_SEC__\npygeodesy.dms._dms3\tpygeodesy.dms-module.html#_dms3\npygeodesy.dms.latlonDMS\tpygeodesy.dms-module.html#latlonDMS\npygeodesy.dms.F__E_\tpygeodesy.dms-module.html#F__E_\npygeodesy.dms.F_DMS_\tpygeodesy.dms-module.html#F_DMS_\npygeodesy.dms.S_NUL\tpygeodesy.dms-module.html#S_NUL\npygeodesy.dms.issequence\tpygeodesy.basics-module.html#issequence\npygeodesy.dms._2Tuple\tpygeodesy.dms-module.html#_2Tuple\npygeodesy.dms._S_norm\tpygeodesy.dms-module.html#_S_norm\npygeodesy.dms.compassDMS\tpygeodesy.dms-module.html#compassDMS\npygeodesy.dms._deg_min_\tpygeodesy.dms-module.html#_deg_min_\npygeodesy.dms._dms2deg\tpygeodesy.dms-module.html#_dms2deg\npygeodesy.dms.S_MIN\tpygeodesy.dms-module.html#S_MIN\npygeodesy.dms.parseDMS\tpygeodesy.dms-module.html#parseDMS\npygeodesy.dms.F_D60_\tpygeodesy.dms-module.html#F_D60_\npygeodesy.dms._DDDMMSS6\tpygeodesy.dms-module.html#_DDDMMSS6\npygeodesy.dms.__all__\tpygeodesy.dms-module.html#__all__\npygeodesy.dms._DDDMMSS5\tpygeodesy.dms-module.html#_DDDMMSS5\npygeodesy.dms.F__G__\tpygeodesy.dms-module.html#F__G__\npygeodesy.dms._fstrzs\tpygeodesy.dms-module.html#_fstrzs\npygeodesy.dms._toDMS\tpygeodesy.dms-module.html#_toDMS\npygeodesy.dms.F_SEC_\tpygeodesy.dms-module.html#F_SEC_\npygeodesy.dms.F_DM_\tpygeodesy.dms-module.html#F_DM_\npygeodesy.dms._envPYGEODESY\tpygeodesy.internals-module.html#_envPYGEODESY\npygeodesy.dms.parseDMS2\tpygeodesy.dms-module.html#parseDMS2\npygeodesy.dms.F__G_\tpygeodesy.dms-module.html#F__G_\npygeodesy.dms._WINDS\tpygeodesy.dms-module.html#_WINDS\npygeodesy.dms.compassPoint\tpygeodesy.dms-module.html#compassPoint\npygeodesy.dms._MINUTES_\tpygeodesy.dms-module.html#_MINUTES_\npygeodesy.dms._SECONDS_\tpygeodesy.dms-module.html#_SECONDS_\npygeodesy.dms.F__E\tpygeodesy.dms-module.html#F__E\npygeodesy.dms.F__F\tpygeodesy.dms-module.html#F__F\npygeodesy.dms.F__G\tpygeodesy.dms-module.html#F__G\npygeodesy.dms._RADIANS_\tpygeodesy.dms-module.html#_RADIANS_\npygeodesy.dms.fstr\tpygeodesy.streprs-module.html#fstr\npygeodesy.dms._DMS3\tpygeodesy.dms-module.html#_DMS3\npygeodesy.dms._DR2\tpygeodesy.dms-module.html#_DR2\npygeodesy.dms.F_DEG\tpygeodesy.dms-module.html#F_DEG\npygeodesy.dms.fstrzs\tpygeodesy.streprs-module.html#fstrzs\npygeodesy.dms.isodd\tpygeodesy.basics-module.html#isodd\npygeodesy.dms._neg\tpygeodesy.basics-module.html#neg\npygeodesy.dms.degDMS\tpygeodesy.dms-module.html#degDMS\npygeodesy.dms.clipRadians\tpygeodesy.dms-module.html#clipRadians\npygeodesy.dms._F_symb\tpygeodesy.dms-module.html#_F_symb\npygeodesy.dms._latlonDMS_sep2\tpygeodesy.dms-module.html#_latlonDMS_sep2\npygeodesy.dms.S_DMS\tpygeodesy.dms-module.html#S_DMS\npygeodesy.dms._DEGREES_\tpygeodesy.dms-module.html#_DEGREES_\npygeodesy.dms.F__F__\tpygeodesy.dms-module.html#F__F__\npygeodesy.dms.F_D60\tpygeodesy.dms-module.html#F_D60\npygeodesy.dms.F_DM__\tpygeodesy.dms-module.html#F_DM__\npygeodesy.dms.F__E__\tpygeodesy.dms-module.html#F__E__\npygeodesy.dms._F_prec\tpygeodesy.dms-module.html#_F_prec\npygeodesy.dms.toDMS\tpygeodesy.dms-module.html#toDMS\npygeodesy.dms._DMS2deg\tpygeodesy.dms-module.html#_DMS2deg\npygeodesy.dms.F_DM\tpygeodesy.dms-module.html#F_DM\npygeodesy.dms.F_D60__\tpygeodesy.dms-module.html#F_D60__\npygeodesy.dms.isstr\tpygeodesy.basics-module.html#isstr\npygeodesy.dms._beyond_\tpygeodesy.dms-module.html#_beyond_\npygeodesy.dms.typename\tpygeodesy.internals-module.html#typename\npygeodesy.dms.F_D_\tpygeodesy.dms-module.html#F_D_\npygeodesy.dms.copysign0\tpygeodesy.basics-module.html#copysign0\npygeodesy.dms.S_DEG\tpygeodesy.dms-module.html#S_DEG\npygeodesy.dms.F_DMS\tpygeodesy.dms-module.html#F_DMS\npygeodesy.dms.F_RAD_\tpygeodesy.dms-module.html#F_RAD_\npygeodesy.dms.lonDMS\tpygeodesy.dms-module.html#lonDMS\npygeodesy.dms.F_SEC\tpygeodesy.dms-module.html#F_SEC\npygeodesy.dms.F_DEG_\tpygeodesy.dms-module.html#F_DEG_\npygeodesy.dms.F_RAD__\tpygeodesy.dms-module.html#F_RAD__\npygeodesy.dms.F_MIN_\tpygeodesy.dms-module.html#F_MIN_\npygeodesy.dms.parseRad\tpygeodesy.dms-module.html#parseRad\npygeodesy.dms._split3\tpygeodesy.dms-module.html#_split3\npygeodesy.dms.S_RAD\tpygeodesy.dms-module.html#S_RAD\npygeodesy.dms._D603\tpygeodesy.dms-module.html#_D603\npygeodesy.dms.F_MIN\tpygeodesy.dms-module.html#F_MIN\npygeodesy.dms.__package__\tpygeodesy.dms-module.html#__package__\npygeodesy.dms._xError\tpygeodesy.errors-module.html#_xError\npygeodesy.dms.F_D__\tpygeodesy.dms-module.html#F_D__\npygeodesy.dms.rangerrors\tpygeodesy.errors-module.html#rangerrors\npygeodesy.dms._F_DMS\tpygeodesy.dms-module.html#_F_DMS\npygeodesy.dms._sexagecimal_\tpygeodesy.dms-module.html#_sexagecimal_\npygeodesy.dms.normDMS\tpygeodesy.dms-module.html#normDMS\npygeodesy.dms.latlonDMS_\tpygeodesy.dms-module.html#latlonDMS_\npygeodesy.dms.precision\tpygeodesy.dms-module.html#precision\npygeodesy.dms._0wpF\tpygeodesy.streprs-module.html#_0wpF\npygeodesy.dms._umod_360\tpygeodesy.constants-module.html#_umod_360\npygeodesy.dms._clip\tpygeodesy.dms-module.html#_clip\npygeodesy.dms.F_DMS__\tpygeodesy.dms-module.html#F_DMS__\npygeodesy.ecef\tpygeodesy.ecef-module.html\npygeodesy.ecef._isRadius\tpygeodesy.units-module.html#_isRadius\npygeodesy.ecef._TypesError\tpygeodesy.errors-module.html#_TypesError\npygeodesy.ecef.hypot2_\tpygeodesy.fmath-module.html#hypot2_\npygeodesy.ecef._xkwds\tpygeodesy.errors-module.html#_xkwds\npygeodesy.ecef._xdatum\tpygeodesy.errors-module.html#_xdatum\npygeodesy.ecef.degrees90\tpygeodesy.utily-module.html#degrees90\npygeodesy.ecef._norm3\tpygeodesy.ecef-module.html#_norm3\npygeodesy.ecef.isscalar\tpygeodesy.basics-module.html#isscalar\npygeodesy.ecef._norm7\tpygeodesy.ecef-module.html#_norm7\npygeodesy.ecef._xnamed\tpygeodesy.named-module.html#_xnamed\npygeodesy.ecef.cbrt\tpygeodesy.fmath-module.html#cbrt\npygeodesy.ecef.fsumf_\tpygeodesy.fsums-module.html#fsumf_\npygeodesy.ecef._name__\tpygeodesy.named-module.html#_name__\npygeodesy.ecef.unstr\tpygeodesy.streprs-module.html#unstr\npygeodesy.ecef._xsubclassof\tpygeodesy.basics-module.html#_xsubclassof\npygeodesy.ecef._ellipsoidal_datum\tpygeodesy.datums-module.html#_ellipsoidal_datum\npygeodesy.ecef._prolate_\tpygeodesy.ecef-module.html#_prolate_\npygeodesy.ecef._copysign_1_0\tpygeodesy.constants-module.html#_copysign_1_0\npygeodesy.ecef._TRIPS\tpygeodesy.ecef-module.html#_TRIPS\npygeodesy.ecef._4Ecef\tpygeodesy.ecef-module.html#_4Ecef\npygeodesy.ecef._xinstanceof\tpygeodesy.basics-module.html#_xinstanceof\npygeodesy.ecef.atan2d\tpygeodesy.utily-module.html#atan2d\npygeodesy.ecef._llhn4\tpygeodesy.ecef-module.html#_llhn4\npygeodesy.ecef.sincos2d_\tpygeodesy.utily-module.html#sincos2d_\npygeodesy.ecef.hypot\tpygeodesy.fmath-module.html#hypot\npygeodesy.ecef.sincos2_\tpygeodesy.utily-module.html#sincos2_\npygeodesy.ecef.__all__\tpygeodesy.ecef-module.html#__all__\npygeodesy.ecef.neg\tpygeodesy.basics-module.html#neg\npygeodesy.ecef._Ecef_\tpygeodesy.ecef-module.html#_Ecef_\npygeodesy.ecef.issubclassof\tpygeodesy.basics-module.html#issubclassof\npygeodesy.ecef.copysign0\tpygeodesy.basics-module.html#copysign0\npygeodesy.ecef._name1__\tpygeodesy.named-module.html#_name1__\npygeodesy.ecef._isin\tpygeodesy.basics-module.html#_isin\npygeodesy.ecef._Ecefs\tpygeodesy.ecef-module.html#_Ecefs\npygeodesy.ecef._xkwds_get\tpygeodesy.errors-module.html#_xkwds_get\npygeodesy.ecef.map1\tpygeodesy.basics-module.html#map1\npygeodesy.ecef._ALL_DOCS\tpygeodesy.lazily-module.html#_ALL_OTHER\npygeodesy.ecef.sqrt0\tpygeodesy.fmath-module.html#sqrt0\npygeodesy.ecef.degrees180\tpygeodesy.utily-module.html#degrees180\npygeodesy.ecef.isnon0\tpygeodesy.constants-module.html#isnon0\npygeodesy.ecef.typename\tpygeodesy.internals-module.html#typename\npygeodesy.ecef._xEcef\tpygeodesy.ecef-module.html#_xEcef\npygeodesy.ecef._xattr\tpygeodesy.errors-module.html#_xattr\npygeodesy.ecef._Pass\tpygeodesy.named-module.html#_Pass\npygeodesy.ecef._xyz_y_z\tpygeodesy.ecef-module.html#_xyz_y_z\npygeodesy.ecef._xyzn4\tpygeodesy.ecef-module.html#_xyzn4\npygeodesy.ecef.sincos2\tpygeodesy.utily-module.html#sincos2\npygeodesy.ecef.__package__\tpygeodesy.ecef-module.html#__package__\npygeodesy.ecef.deprecated_method\tpygeodesy.props-module.html#deprecated_method\npygeodesy.ecef.atan1d\tpygeodesy.utily-module.html#atan1d\npygeodesy.ecef.hypot1\tpygeodesy.fmath-module.html#hypot1\npygeodesy.ecef.atan2\tpygeodesy.utily-module.html#atan2\npygeodesy.ecef.atan1\tpygeodesy.utily-module.html#atan1\npygeodesy.ecef.fdot\tpygeodesy.fmath-module.html#fdot\npygeodesy.ecefLocals\tpygeodesy.ecefLocals-module.html\npygeodesy.ecefLocals._xsubclassof\tpygeodesy.basics-module.html#_xsubclassof\npygeodesy.ecefLocals._ltp\tpygeodesy.ecefLocals-module.html#_ltp\npygeodesy.ecefLocals._xkwds_pop2\tpygeodesy.errors-module.html#_xkwds_pop2\npygeodesy.ecefLocals.__all__\tpygeodesy.ecefLocals-module.html#__all__\npygeodesy.ecefLocals._isin\tpygeodesy.basics-module.html#_isin\npygeodesy.ecefLocals.notOverloaded\tpygeodesy.named-module.html#notOverloaded\npygeodesy.ecefLocals.__package__\tpygeodesy.ecefLocals-module.html#__package__\npygeodesy.ecefLocals._xkwds_item2\tpygeodesy.errors-module.html#_xkwds_item2\npygeodesy.ecefLocals._ALL_DOCS\tpygeodesy.lazily-module.html#_ALL_OTHER\npygeodesy.ecefLocals._ltpTuples\tpygeodesy.ecefLocals-module.html#_ltpTuples\npygeodesy.elevations\tpygeodesy.elevations-module.html\npygeodesy.elevations._XML_\tpygeodesy.elevations-module.html#_XML_\npygeodesy.elevations._xkwds_get\tpygeodesy.errors-module.html#_xkwds_get\npygeodesy.elevations.elevation2\tpygeodesy.elevations-module.html#elevation2\npygeodesy.elevations._JSON_\tpygeodesy.elevations-module.html#_JSON_\npygeodesy.elevations.lrstrip\tpygeodesy.streprs-module.html#lrstrip\npygeodesy.elevations.typename\tpygeodesy.internals-module.html#typename\npygeodesy.elevations._qURL\tpygeodesy.elevations-module.html#_qURL\npygeodesy.elevations.geoidHeight2\tpygeodesy.elevations-module.html#geoidHeight2\npygeodesy.elevations._xml\tpygeodesy.elevations-module.html#_xml\npygeodesy.elevations.__package__\tpygeodesy.elevations-module.html#__package__\npygeodesy.elevations.ub2str\tpygeodesy.internals-module.html#_passarg\npygeodesy.elevations.fstr\tpygeodesy.streprs-module.html#fstr\npygeodesy.elevations.__all__\tpygeodesy.elevations-module.html#__all__\npygeodesy.elevations._error\tpygeodesy.elevations-module.html#_error\npygeodesy.elevations.fabs\tpygeodesy.booleans-module.html#fabs\npygeodesy.elevations._QUESTION_\tpygeodesy.elevations-module.html#_QUESTION_\npygeodesy.elevations._QUOTE2COLONSPACE_\tpygeodesy.elevations-module.html#_QUOTE2COLONSPACE_\npygeodesy.elevations.clips\tpygeodesy.basics-module.html#clips\npygeodesy.ellipses\tpygeodesy.ellipses-module.html\npygeodesy.ellipses._TOL53_53\tpygeodesy.ellipses-module.html#_TOL53_53\npygeodesy.ellipses._xkwds\tpygeodesy.errors-module.html#_xkwds\npygeodesy.ellipses.hypot\tpygeodesy.fmath-module.html#hypot\npygeodesy.ellipses._2RC\tpygeodesy.ellipses-module.html#_2RC\npygeodesy.ellipses.__package__\tpygeodesy.ellipses-module.html#__package__\npygeodesy.ellipses._TOL53\tpygeodesy.ellipses-module.html#_TOL53\npygeodesy.ellipses._isFlat\tpygeodesy.ellipses-module.html#_isFlat\npygeodesy.ellipses.fhorner\tpygeodesy.fmath-module.html#fhorner\npygeodesy.ellipses._fsum\tpygeodesy.fsums-module.html#_fsum\npygeodesy.ellipses.sincos2d\tpygeodesy.utily-module.html#sincos2d\npygeodesy.ellipses._isfinite\tpygeodesy.constants-module.html#_isfinite\npygeodesy.ellipses.atan2b\tpygeodesy.utily-module.html#atan2b\npygeodesy.ellipses.unstr\tpygeodesy.streprs-module.html#unstr\npygeodesy.ellipses.fmean_\tpygeodesy.fmath-module.html#fmean_\npygeodesy.ellipses.atan2p\tpygeodesy.utily-module.html#atan2p\npygeodesy.ellipses.sincos2\tpygeodesy.utily-module.html#sincos2\npygeodesy.ellipses.euclid\tpygeodesy.fmath-module.html#euclid\npygeodesy.ellipses.atan2\tpygeodesy.utily-module.html#atan2\npygeodesy.ellipses._xkwds_pop2\tpygeodesy.errors-module.html#_xkwds_pop2\npygeodesy.ellipses.__all__\tpygeodesy.ellipses-module.html#__all__\npygeodesy.ellipses._arc\tpygeodesy.ellipses-module.html#_arc\npygeodesy.ellipses.typename\tpygeodesy.internals-module.html#typename\npygeodesy.ellipses._1_over\tpygeodesy.constants-module.html#_1_over\npygeodesy.ellipses._over\tpygeodesy.constants-module.html#_over\npygeodesy.ellipses._q1ps\tpygeodesy.ellipses-module.html#_q1ps\npygeodesy.ellipsoidalBase\tpygeodesy.ellipsoidalBase-module.html\npygeodesy.ellipsoidalBase._IsnotError\tpygeodesy.errors-module.html#_IsnotError\npygeodesy.ellipsoidalBase._xkwds\tpygeodesy.errors-module.html#_xkwds\npygeodesy.ellipsoidalBase._ellipsoidal_datum\tpygeodesy.datums-module.html#_ellipsoidal_datum\npygeodesy.ellipsoidalBase._ALL_DOCS\tpygeodesy.lazily-module.html#_ALL_OTHER\npygeodesy.ellipsoidalBase.__package__\tpygeodesy.ellipsoidalBase-module.html#__package__\npygeodesy.ellipsoidalBase._xError\tpygeodesy.errors-module.html#_xError\npygeodesy.ellipsoidalBase.deprecated_method\tpygeodesy.props-module.html#deprecated_method\npygeodesy.ellipsoidalBase.deprecated_property_RO\tpygeodesy.props-module.html#deprecated_property_RO\npygeodesy.ellipsoidalBase._trilaterate5\tpygeodesy.latlonBase-module.html#_trilaterate5\npygeodesy.ellipsoidalBase._isin\tpygeodesy.basics-module.html#_isin\npygeodesy.ellipsoidalBase._isDegrees\tpygeodesy.units-module.html#_isDegrees\npygeodesy.ellipsoidalBase._update_all\tpygeodesy.props-module.html#_update_all\npygeodesy.ellipsoidalBase._nearestOn\tpygeodesy.ellipsoidalBase-module.html#_nearestOn\npygeodesy.ellipsoidalBase._earth_ellipsoid\tpygeodesy.datums-module.html#_earth_ellipsoid\npygeodesy.ellipsoidalBase.property_doc_\tpygeodesy.props-module.html#property_doc_\npygeodesy.ellipsoidalBase.__all__\tpygeodesy.ellipsoidalBase-module.html#__all__\npygeodesy.ellipsoidalBase._xellipsoids\tpygeodesy.errors-module.html#_xellipsoids\npygeodesy.ellipsoidalBase.fabs\tpygeodesy.booleans-module.html#fabs\npygeodesy.ellipsoidalBase._xellipsoidal\tpygeodesy.errors-module.html#_xellipsoidal\npygeodesy.ellipsoidalBase._xkwds_not\tpygeodesy.errors-module.html#_xkwds_not\npygeodesy.ellipsoidalBase._xinstanceof\tpygeodesy.basics-module.html#_xinstanceof\npygeodesy.ellipsoidalBase._lowerleft\tpygeodesy.ellipsoidalBase-module.html#_lowerleft\npygeodesy.ellipsoidalBase._xattr\tpygeodesy.errors-module.html#_xattr\npygeodesy.ellipsoidalBase._set_reframe\tpygeodesy.ellipsoidalBase-module.html#_set_reframe\npygeodesy.ellipsoidalBaseDI\tpygeodesy.ellipsoidalBaseDI-module.html\npygeodesy.ellipsoidalBaseDI._isRadius\tpygeodesy.units-module.html#_isRadius\npygeodesy.ellipsoidalBaseDI.isLatLon\tpygeodesy.basics-module.html#isLatLon\npygeodesy.ellipsoidalBaseDI.isnear0\tpygeodesy.constants-module.html#isnear0\npygeodesy.ellipsoidalBaseDI.unroll180\tpygeodesy.utily-module.html#unroll180\npygeodesy.ellipsoidalBaseDI._intersect3\tpygeodesy.ellipsoidalBaseDI-module.html#_intersect3\npygeodesy.ellipsoidalBaseDI._IsnotError\tpygeodesy.errors-module.html#_IsnotError\npygeodesy.ellipsoidalBaseDI._isHeight\tpygeodesy.units-module.html#_isHeight\npygeodesy.ellipsoidalBaseDI._Equidistant00\tpygeodesy.ellipsoidalBaseDI-module.html#_Equidistant00\npygeodesy.ellipsoidalBaseDI.m2km\tpygeodesy.utily-module.html#m2km\npygeodesy.ellipsoidalBaseDI._intersects2\tpygeodesy.ellipsoidalBaseDI-module.html#_intersects2\npygeodesy.ellipsoidalBaseDI._ALL_DOCS\tpygeodesy.lazily-module.html#_ALL_OTHER\npygeodesy.ellipsoidalBaseDI._isequalTo\tpygeodesy.formy-module.html#_isequalTo\npygeodesy.ellipsoidalBaseDI.typename\tpygeodesy.internals-module.html#typename\npygeodesy.ellipsoidalBaseDI._polar__\tpygeodesy.ellipsoidalBaseDI-module.html#_polar__\npygeodesy.ellipsoidalBaseDI.intersecant2\tpygeodesy.ellipsoidalBaseDI-module.html#intersecant2\npygeodesy.ellipsoidalBaseDI._xError\tpygeodesy.errors-module.html#_xError\npygeodesy.ellipsoidalBaseDI._intersections2\tpygeodesy.ellipsoidalBaseDI-module.html#_intersections2\npygeodesy.ellipsoidalBaseDI.fsumf_\tpygeodesy.fsums-module.html#fsumf_\npygeodesy.ellipsoidalBaseDI.wrap360\tpygeodesy.utily-module.html#wrap360\npygeodesy.ellipsoidalBaseDI._nearestOn2\tpygeodesy.ellipsoidalBaseDI-module.html#_nearestOn2\npygeodesy.ellipsoidalBaseDI.favg\tpygeodesy.fmath-module.html#favg\npygeodesy.ellipsoidalBaseDI._xsubclassof\tpygeodesy.basics-module.html#_xsubclassof\npygeodesy.ellipsoidalBaseDI.fmean_\tpygeodesy.fmath-module.html#fmean_\npygeodesy.ellipsoidalBaseDI._isDegrees\tpygeodesy.units-module.html#_isDegrees\npygeodesy.ellipsoidalBaseDI._intersection3\tpygeodesy.ellipsoidalBaseDI-module.html#_intersection3\npygeodesy.ellipsoidalBaseDI._nearestOn3\tpygeodesy.ellipsoidalBaseDI-module.html#_nearestOn3\npygeodesy.ellipsoidalBaseDI._radical2\tpygeodesy.formy-module.html#_radical2\npygeodesy.ellipsoidalBaseDI.__all__\tpygeodesy.ellipsoidalBaseDI-module.html#__all__\npygeodesy.ellipsoidalBaseDI._LL4Tuple\tpygeodesy.namedTuples-module.html#_LL4Tuple\npygeodesy.ellipsoidalBaseDI._unrollon3\tpygeodesy.utily-module.html#_unrollon3\npygeodesy.ellipsoidalBaseDI._fi_j2\tpygeodesy.units-module.html#_fi_j2\npygeodesy.ellipsoidalBaseDI._TRIPS\tpygeodesy.ellipsoidalBaseDI-module.html#_TRIPS\npygeodesy.ellipsoidalBaseDI._xkwds_not\tpygeodesy.errors-module.html#_xkwds_not\npygeodesy.ellipsoidalBaseDI._or\tpygeodesy.errors-module.html#_or\npygeodesy.ellipsoidalBaseDI._xellipsoidal\tpygeodesy.errors-module.html#_xellipsoidal\npygeodesy.ellipsoidalBaseDI._unrollon\tpygeodesy.utily-module.html#_unrollon\npygeodesy.ellipsoidalBaseDI.opposing\tpygeodesy.formy-module.html#opposing\npygeodesy.ellipsoidalBaseDI.__package__\tpygeodesy.ellipsoidalBaseDI-module.html#__package__\npygeodesy.ellipsoidalBaseDI.isnear1\tpygeodesy.constants-module.html#isnear1\npygeodesy.ellipsoidalExact\tpygeodesy.ellipsoidalExact-module.html\npygeodesy.ellipsoidalExact._xkwds\tpygeodesy.errors-module.html#_xkwds\npygeodesy.ellipsoidalExact._intersection3\tpygeodesy.ellipsoidalBaseDI-module.html#_intersection3\npygeodesy.ellipsoidalExact.perimeterOf\tpygeodesy.ellipsoidalExact-module.html#perimeterOf\npygeodesy.ellipsoidalExact.intersections2\tpygeodesy.ellipsoidalExact-module.html#intersections2\npygeodesy.ellipsoidalExact.isclockwise\tpygeodesy.ellipsoidalExact-module.html#isclockwise\npygeodesy.ellipsoidalExact._polygon\tpygeodesy.karney-module.html#_polygon\npygeodesy.ellipsoidalExact.fabs\tpygeodesy.booleans-module.html#fabs\npygeodesy.ellipsoidalExact.__package__\tpygeodesy.ellipsoidalExact-module.html#__package__\npygeodesy.ellipsoidalExact.nearestOn\tpygeodesy.ellipsoidalExact-module.html#nearestOn\npygeodesy.ellipsoidalExact._intersections2\tpygeodesy.ellipsoidalBaseDI-module.html#_intersections2\npygeodesy.ellipsoidalExact._nearestOn\tpygeodesy.ellipsoidalBase-module.html#_nearestOn\npygeodesy.ellipsoidalExact.areaOf\tpygeodesy.ellipsoidalExact-module.html#areaOf\npygeodesy.ellipsoidalExact._areaError\tpygeodesy.points-module.html#_areaError\npygeodesy.ellipsoidalExact.__all__\tpygeodesy.ellipsoidalExact-module.html#__all__\npygeodesy.ellipsoidalExact.ispolar\tpygeodesy.ellipsoidalExact-module.html#ispolar\npygeodesy.ellipsoidalExact._ALL_OTHER\tpygeodesy.lazily-module.html#_ALL_OTHER\npygeodesy.ellipsoidalExact.intersecant2\tpygeodesy.ellipsoidalExact-module.html#intersecant2\npygeodesy.ellipsoidalExact.intersection3\tpygeodesy.ellipsoidalExact-module.html#intersection3\npygeodesy.ellipsoidalGeodSolve\tpygeodesy.ellipsoidalGeodSolve-module.html\npygeodesy.ellipsoidalGeodSolve._xkwds\tpygeodesy.errors-module.html#_xkwds\npygeodesy.ellipsoidalGeodSolve._intersection3\tpygeodesy.ellipsoidalBaseDI-module.html#_intersection3\npygeodesy.ellipsoidalGeodSolve.perimeterOf\tpygeodesy.ellipsoidalGeodSolve-module.html#perimeterOf\npygeodesy.ellipsoidalGeodSolve.intersections2\tpygeodesy.ellipsoidalGeodSolve-module.html#intersections2\npygeodesy.ellipsoidalGeodSolve.isclockwise\tpygeodesy.ellipsoidalGeodSolve-module.html#isclockwise\npygeodesy.ellipsoidalGeodSolve._polygon\tpygeodesy.karney-module.html#_polygon\npygeodesy.ellipsoidalGeodSolve.fabs\tpygeodesy.booleans-module.html#fabs\npygeodesy.ellipsoidalGeodSolve.__package__\tpygeodesy.ellipsoidalGeodSolve-module.html#__package__\npygeodesy.ellipsoidalGeodSolve.nearestOn\tpygeodesy.ellipsoidalGeodSolve-module.html#nearestOn\npygeodesy.ellipsoidalGeodSolve._intersections2\tpygeodesy.ellipsoidalBaseDI-module.html#_intersections2\npygeodesy.ellipsoidalGeodSolve._nearestOn\tpygeodesy.ellipsoidalBase-module.html#_nearestOn\npygeodesy.ellipsoidalGeodSolve.areaOf\tpygeodesy.ellipsoidalGeodSolve-module.html#areaOf\npygeodesy.ellipsoidalGeodSolve._areaError\tpygeodesy.points-module.html#_areaError\npygeodesy.ellipsoidalGeodSolve.__all__\tpygeodesy.ellipsoidalGeodSolve-module.html#__all__\npygeodesy.ellipsoidalGeodSolve.ispolar\tpygeodesy.ellipsoidalGeodSolve-module.html#ispolar\npygeodesy.ellipsoidalGeodSolve._ALL_OTHER\tpygeodesy.lazily-module.html#_ALL_OTHER\npygeodesy.ellipsoidalGeodSolve.intersection3\tpygeodesy.ellipsoidalGeodSolve-module.html#intersection3\npygeodesy.ellipsoidalKarney\tpygeodesy.ellipsoidalKarney-module.html\npygeodesy.ellipsoidalKarney._xkwds\tpygeodesy.errors-module.html#_xkwds\npygeodesy.ellipsoidalKarney._intersection3\tpygeodesy.ellipsoidalBaseDI-module.html#_intersection3\npygeodesy.ellipsoidalKarney.perimeterOf\tpygeodesy.ellipsoidalKarney-module.html#perimeterOf\npygeodesy.ellipsoidalKarney.intersections2\tpygeodesy.ellipsoidalKarney-module.html#intersections2\npygeodesy.ellipsoidalKarney.isclockwise\tpygeodesy.ellipsoidalKarney-module.html#isclockwise\npygeodesy.ellipsoidalKarney._polygon\tpygeodesy.karney-module.html#_polygon\npygeodesy.ellipsoidalKarney.fabs\tpygeodesy.booleans-module.html#fabs\npygeodesy.ellipsoidalKarney.__package__\tpygeodesy.ellipsoidalKarney-module.html#__package__\npygeodesy.ellipsoidalKarney.nearestOn\tpygeodesy.ellipsoidalKarney-module.html#nearestOn\npygeodesy.ellipsoidalKarney._intersections2\tpygeodesy.ellipsoidalBaseDI-module.html#_intersections2\npygeodesy.ellipsoidalKarney.deprecated_method\tpygeodesy.props-module.html#deprecated_method\npygeodesy.ellipsoidalKarney._nearestOn\tpygeodesy.ellipsoidalBase-module.html#_nearestOn\npygeodesy.ellipsoidalKarney.areaOf\tpygeodesy.ellipsoidalKarney-module.html#areaOf\npygeodesy.ellipsoidalKarney._areaError\tpygeodesy.points-module.html#_areaError\npygeodesy.ellipsoidalKarney.__all__\tpygeodesy.ellipsoidalKarney-module.html#__all__\npygeodesy.ellipsoidalKarney.ispolar\tpygeodesy.ellipsoidalKarney-module.html#ispolar\npygeodesy.ellipsoidalKarney._ALL_OTHER\tpygeodesy.lazily-module.html#_ALL_OTHER\npygeodesy.ellipsoidalKarney.intersecant2\tpygeodesy.ellipsoidalKarney-module.html#intersecant2\npygeodesy.ellipsoidalKarney.intersection3\tpygeodesy.ellipsoidalKarney-module.html#intersection3\npygeodesy.ellipsoidalNvector\tpygeodesy.ellipsoidalNvector-module.html\npygeodesy.ellipsoidalNvector.deprecated_class\tpygeodesy.props-module.html#deprecated_class\npygeodesy.ellipsoidalNvector.toNed\tpygeodesy.ellipsoidalNvector-module.html#toNed\npygeodesy.ellipsoidalNvector._Ecef\tpygeodesy.ellipsoidalNvector-module.html#_Ecef\npygeodesy.ellipsoidalNvector.meanOf\tpygeodesy.ellipsoidalNvector-module.html#meanOf\npygeodesy.ellipsoidalNvector._xnamed\tpygeodesy.named-module.html#_xnamed\npygeodesy.ellipsoidalNvector._sumOf\tpygeodesy.nvectorBase-module.html#sumOf\npygeodesy.ellipsoidalNvector.__package__\tpygeodesy.ellipsoidalNvector-module.html#__package__\npygeodesy.ellipsoidalNvector.nearestOn\tpygeodesy.ellipsoidalNvector-module.html#nearestOn\npygeodesy.ellipsoidalNvector.__all__\tpygeodesy.ellipsoidalNvector-module.html#__all__\npygeodesy.ellipsoidalNvector.deprecated_method\tpygeodesy.props-module.html#deprecated_method\npygeodesy.ellipsoidalNvector.issubclassof\tpygeodesy.basics-module.html#issubclassof\npygeodesy.ellipsoidalNvector._xsubclassof\tpygeodesy.basics-module.html#_xsubclassof\npygeodesy.ellipsoidalNvector._isin\tpygeodesy.basics-module.html#_isin\npygeodesy.ellipsoidalNvector._nearestOn\tpygeodesy.ellipsoidalBase-module.html#_nearestOn\npygeodesy.ellipsoidalNvector._earth_ellipsoid\tpygeodesy.datums-module.html#_earth_ellipsoid\npygeodesy.ellipsoidalNvector._xkwds\tpygeodesy.errors-module.html#_xkwds\npygeodesy.ellipsoidalNvector.fstr\tpygeodesy.streprs-module.html#fstr\npygeodesy.ellipsoidalNvector._ellipsoidal_datum\tpygeodesy.datums-module.html#_ellipsoidal_datum\npygeodesy.ellipsoidalNvector._xkwds_pop2\tpygeodesy.errors-module.html#_xkwds_pop2\npygeodesy.ellipsoidalNvector._Nv00\tpygeodesy.ellipsoidalNvector-module.html#_Nv00\npygeodesy.ellipsoidalNvector.fabs\tpygeodesy.booleans-module.html#fabs\npygeodesy.ellipsoidalNvector._ALL_OTHER\tpygeodesy.lazily-module.html#_ALL_OTHER\npygeodesy.ellipsoidalNvector.sincos2d_\tpygeodesy.utily-module.html#sincos2d_\npygeodesy.ellipsoidalNvector.map2\tpygeodesy.basics-module.html#map2\npygeodesy.ellipsoidalNvector.deprecated_function\tpygeodesy.props-module.html#deprecated_function\npygeodesy.ellipsoidalNvector._xinstanceof\tpygeodesy.basics-module.html#_xinstanceof\npygeodesy.ellipsoidalNvector.fdot\tpygeodesy.fmath-module.html#fdot\npygeodesy.ellipsoidalNvector._xzipairs\tpygeodesy.streprs-module.html#_xzipairs\npygeodesy.ellipsoidalNvector.sumOf\tpygeodesy.ellipsoidalNvector-module.html#sumOf\npygeodesy.ellipsoidalVincenty\tpygeodesy.ellipsoidalVincenty-module.html\npygeodesy.ellipsoidalVincenty.unroll180\tpygeodesy.utily-module.html#unroll180\npygeodesy.ellipsoidalVincenty._Ecef\tpygeodesy.ellipsoidalVincenty-module.html#_Ecef\npygeodesy.ellipsoidalVincenty.perimeterOf\tpygeodesy.ellipsoidalVincenty-module.html#perimeterOf\npygeodesy.ellipsoidalVincenty.hypot\tpygeodesy.fmath-module.html#hypot\npygeodesy.ellipsoidalVincenty._ALL_DOCS\tpygeodesy.lazily-module.html#_ALL_OTHER\npygeodesy.ellipsoidalVincenty.sincos2d\tpygeodesy.utily-module.html#sincos2d\npygeodesy.ellipsoidalVincenty.sincos2\tpygeodesy.utily-module.html#sincos2\npygeodesy.ellipsoidalVincenty.deprecated_function\tpygeodesy.props-module.html#deprecated_function\npygeodesy.ellipsoidalVincenty.wrap180\tpygeodesy.utily-module.html#wrap180\npygeodesy.ellipsoidalVincenty.__package__\tpygeodesy.ellipsoidalVincenty-module.html#__package__\npygeodesy.ellipsoidalVincenty.nearestOn\tpygeodesy.ellipsoidalVincenty-module.html#nearestOn\npygeodesy.ellipsoidalVincenty._intersections2\tpygeodesy.ellipsoidalBaseDI-module.html#_intersections2\npygeodesy.ellipsoidalVincenty.intersections2\tpygeodesy.ellipsoidalVincenty-module.html#intersections2\npygeodesy.ellipsoidalVincenty.atan2b\tpygeodesy.utily-module.html#atan2b\npygeodesy.ellipsoidalVincenty._xkwds\tpygeodesy.errors-module.html#_xkwds\npygeodesy.ellipsoidalVincenty.atan2d\tpygeodesy.utily-module.html#atan2d\npygeodesy.ellipsoidalVincenty.fdot_\tpygeodesy.fmath-module.html#fdot_\npygeodesy.ellipsoidalVincenty._sincostan3r\tpygeodesy.ellipsoidalVincenty-module.html#_sincostan3r\npygeodesy.ellipsoidalVincenty._intersection3\tpygeodesy.ellipsoidalBaseDI-module.html#_intersection3\npygeodesy.ellipsoidalVincenty._sincos22\tpygeodesy.ellipsoidalVincenty-module.html#_sincos22\npygeodesy.ellipsoidalVincenty.areaOf\tpygeodesy.ellipsoidalVincenty-module.html#areaOf\npygeodesy.ellipsoidalVincenty.ispolar\tpygeodesy.ellipsoidalVincenty-module.html#ispolar\npygeodesy.ellipsoidalVincenty.property_doc_\tpygeodesy.props-module.html#property_doc_\npygeodesy.ellipsoidalVincenty.__all__\tpygeodesy.ellipsoidalVincenty-module.html#__all__\npygeodesy.ellipsoidalVincenty.intersection3\tpygeodesy.ellipsoidalVincenty-module.html#intersection3\npygeodesy.ellipsoidalVincenty._Dl\tpygeodesy.ellipsoidalVincenty-module.html#_Dl\npygeodesy.ellipsoidalVincenty._and\tpygeodesy.errors-module.html#_and\npygeodesy.ellipsoidalVincenty._c2sm2\tpygeodesy.ellipsoidalVincenty-module.html#_c2sm2\npygeodesy.ellipsoidalVincenty.atan2\tpygeodesy.utily-module.html#atan2\npygeodesy.ellipsoidalVincenty.intersecant2\tpygeodesy.ellipsoidalVincenty-module.html#intersecant2\npygeodesy.ellipsoidalVincenty._AB2\tpygeodesy.ellipsoidalVincenty-module.html#_AB2\npygeodesy.ellipsoidalVincenty.hypot1\tpygeodesy.fmath-module.html#hypot1\npygeodesy.ellipsoidalVincenty._antipodal_to_\tpygeodesy.ellipsoidalVincenty-module.html#_antipodal_to_\npygeodesy.ellipsoidalVincenty._nearestOn\tpygeodesy.ellipsoidalBase-module.html#_nearestOn\npygeodesy.ellipsoidalVincenty._Ds\tpygeodesy.ellipsoidalVincenty-module.html#_Ds\npygeodesy.ellipsoidalVincenty._ellipsoidalOf\tpygeodesy.ellipsoidalVincenty-module.html#_ellipsoidalOf\npygeodesy.ellipsoidalVincenty.deprecated_method\tpygeodesy.props-module.html#deprecated_method\npygeodesy.ellipsoids\tpygeodesy.ellipsoids-module.html\npygeodesy.ellipsoids.f2f2\tpygeodesy.ellipsoids-module.html#f2f2\npygeodesy.ellipsoids._T\tpygeodesy.constants-module.html#_floatuple\npygeodesy.ellipsoids.degrees90\tpygeodesy.utily-module.html#degrees90\npygeodesy.ellipsoids._ispherical_f\tpygeodesy.ellipsoids-module.html#_ispherical_f\npygeodesy.ellipsoids.instr\tpygeodesy.streprs-module.html#instr\npygeodesy.ellipsoids.deprecated_Property_RO\tpygeodesy.props-module.html#deprecated_Property_RO\npygeodesy.ellipsoids._name__\tpygeodesy.named-module.html#_name__\npygeodesy.ellipsoids.unstr\tpygeodesy.streprs-module.html#unstr\npygeodesy.ellipsoids.strs\tpygeodesy.streprs-module.html#strs\npygeodesy.ellipsoids.cbrt2\tpygeodesy.fmath-module.html#cbrt2\npygeodesy.ellipsoids._lazy\tpygeodesy.named-module.html#_lazyNamedEnumItem\npygeodesy.ellipsoids._0_0s\tpygeodesy.constants-module.html#_0_0s\npygeodesy.ellipsoids.a_b2f_\tpygeodesy.ellipsoids-module.html#a_b2f_\npygeodesy.ellipsoids.a_f2b\tpygeodesy.ellipsoids-module.html#a_f2b\npygeodesy.ellipsoids.f2f_\tpygeodesy.ellipsoids-module.html#f2f_\npygeodesy.ellipsoids._f__WGS84\tpygeodesy.ellipsoids-module.html#_f__WGS84\npygeodesy.ellipsoids.f_2f\tpygeodesy.ellipsoids-module.html#f_2f\npygeodesy.ellipsoids.a_b2e\tpygeodesy.ellipsoids-module.html#a_b2e\npygeodesy.ellipsoids.n2f_\tpygeodesy.ellipsoids-module.html#n2f_\npygeodesy.ellipsoids.a_b2f\tpygeodesy.ellipsoids-module.html#a_b2f\npygeodesy.ellipsoids._over\tpygeodesy.constants-module.html#_over\npygeodesy.ellipsoids.a_b2n\tpygeodesy.ellipsoids-module.html#a_b2n\npygeodesy.ellipsoids.isint\tpygeodesy.basics-module.html#isint\npygeodesy.ellipsoids.e22f\tpygeodesy.ellipsoids-module.html#e22f\npygeodesy.ellipsoids.hypot\tpygeodesy.fmath-module.html#hypot\npygeodesy.ellipsoids.Ellipsoids\tpygeodesy.ellipsoids-module.html#Ellipsoids\npygeodesy.ellipsoids._Pass\tpygeodesy.named-module.html#_Pass\npygeodesy.ellipsoids._f__0_0\tpygeodesy.ellipsoids-module.html#_f__0_0\npygeodesy.ellipsoids.b_f2a\tpygeodesy.ellipsoids-module.html#b_f2a\npygeodesy.ellipsoids.property_doc_\tpygeodesy.props-module.html#property_doc_\npygeodesy.ellipsoids.typename\tpygeodesy.internals-module.html#typename\npygeodesy.ellipsoids.a_b2e2\tpygeodesy.ellipsoids-module.html#a_b2e2\npygeodesy.ellipsoids.atan2b\tpygeodesy.utily-module.html#atan2b\npygeodesy.ellipsoids._EWGS84\tpygeodesy.ellipsoids-module.html#_EWGS84\npygeodesy.ellipsoids.a_f_2b\tpygeodesy.ellipsoids-module.html#a_f_2b\npygeodesy.ellipsoids._isin\tpygeodesy.basics-module.html#_isin\npygeodesy.ellipsoids.a_b2f2\tpygeodesy.ellipsoids-module.html#a_b2f2\npygeodesy.ellipsoids.fstr\tpygeodesy.streprs-module.html#fstr\npygeodesy.ellipsoids.f2e22\tpygeodesy.ellipsoids-module.html#f2e22\npygeodesy.ellipsoids.fpowers\tpygeodesy.fmath-module.html#fpowers\npygeodesy.ellipsoids.f2n\tpygeodesy.ellipsoids-module.html#f2n\npygeodesy.ellipsoids.isbool\tpygeodesy.basics-module.html#isbool\npygeodesy.ellipsoids._Lat0\tpygeodesy.units-module.html#_Lat0\npygeodesy.ellipsoids.cbrt\tpygeodesy.fmath-module.html#cbrt\npygeodesy.ellipsoids.hypot_\tpygeodesy.fmath-module.html#hypot_\npygeodesy.ellipsoids._sin2cos2\tpygeodesy.ellipsoids-module.html#_sin2cos2\npygeodesy.ellipsoids.sincos2d\tpygeodesy.utily-module.html#sincos2d\npygeodesy.ellipsoids.a_b2e32\tpygeodesy.ellipsoids-module.html#a_b2e32\npygeodesy.ellipsoids._a2b2e2\tpygeodesy.ellipsoids-module.html#_a2b2e2\npygeodesy.ellipsoids.fmean_\tpygeodesy.fmath-module.html#fmean_\npygeodesy.ellipsoids.sqrt3\tpygeodesy.fmath-module.html#sqrt3\npygeodesy.ellipsoids.n2f\tpygeodesy.ellipsoids-module.html#n2f\npygeodesy.ellipsoids.deprecated_property_RO\tpygeodesy.props-module.html#deprecated_property_RO\npygeodesy.ellipsoids._xkwds_not\tpygeodesy.errors-module.html#_xkwds_not\npygeodesy.ellipsoids.a_b2e22\tpygeodesy.ellipsoids-module.html#a_b2e22\npygeodesy.ellipsoids.copysign0\tpygeodesy.basics-module.html#copysign0\npygeodesy.ellipsoids.hypot2\tpygeodesy.fmath-module.html#hypot2\npygeodesy.ellipsoids.b_f_2a\tpygeodesy.ellipsoids-module.html#b_f_2a\npygeodesy.ellipsoids._xattr\tpygeodesy.errors-module.html#_xattr\npygeodesy.ellipsoids._ispherical_f_\tpygeodesy.ellipsoids-module.html#_ispherical_f_\npygeodesy.ellipsoids._f_0_0\tpygeodesy.ellipsoids-module.html#_f_0_0\npygeodesy.ellipsoids.__package__\tpygeodesy.ellipsoids-module.html#__package__\npygeodesy.ellipsoids.e2f\tpygeodesy.ellipsoids-module.html#e2f\npygeodesy.ellipsoids._isfinite\tpygeodesy.constants-module.html#_isfinite\npygeodesy.ellipsoids.radians2m\tpygeodesy.utily-module.html#radians2m\npygeodesy.ellipsoids.atan1d\tpygeodesy.utily-module.html#atan1d\npygeodesy.ellipsoids.m2radians\tpygeodesy.utily-module.html#m2radians\npygeodesy.ellipsoids.n2e2\tpygeodesy.ellipsoids-module.html#n2e2\npygeodesy.ellipsoids.f2e32\tpygeodesy.ellipsoids-module.html#f2e32\npygeodesy.ellipsoids.f2e2\tpygeodesy.ellipsoids-module.html#f2e2\npygeodesy.ellipsoids.__all__\tpygeodesy.ellipsoids-module.html#__all__\npygeodesy.ellipsoids.hypot1\tpygeodesy.fmath-module.html#hypot1\npygeodesy.ellipsoids._ispherical_a_b\tpygeodesy.ellipsoids-module.html#_ispherical_a_b\npygeodesy.ellipsoids.atan1\tpygeodesy.utily-module.html#atan1\npygeodesy.ellipsoids.fdot\tpygeodesy.fmath-module.html#fdot\npygeodesy.ellipsoids._aux\tpygeodesy.ellipsoids-module.html#_aux\npygeodesy.elliptic\tpygeodesy.elliptic-module.html\npygeodesy.elliptic.neg_\tpygeodesy.basics-module.html#neg_\npygeodesy.elliptic._deltaX\tpygeodesy.elliptic-module.html#_deltaX\npygeodesy.elliptic._TolRG0\tpygeodesy.elliptic-module.html#_TolRG0\npygeodesy.elliptic._abm3\tpygeodesy.elliptic-module.html#_abm3\npygeodesy.elliptic._over\tpygeodesy.constants-module.html#_over\npygeodesy.elliptic._3over\tpygeodesy.elliptic-module.html#_3over\npygeodesy.elliptic._Hdot\tpygeodesy.elliptic-module.html#_Hdot\npygeodesy.elliptic._sincos2\tpygeodesy.karney-module.html#_sincos2\npygeodesy.elliptic.__all__\tpygeodesy.elliptic-module.html#__all__\npygeodesy.elliptic._rG2\tpygeodesy.elliptic-module.html#_rG2\npygeodesy.elliptic._rG3\tpygeodesy.elliptic-module.html#_rG3\npygeodesy.elliptic.hypot1\tpygeodesy.fmath-module.html#hypot1\npygeodesy.elliptic.favg\tpygeodesy.fmath-module.html#favg\npygeodesy.elliptic._rF2\tpygeodesy.elliptic-module.html#_rF2\npygeodesy.elliptic._fsum\tpygeodesy.fsums-module.html#_fsum\npygeodesy.elliptic.unstr\tpygeodesy.streprs-module.html#unstr\npygeodesy.elliptic._rC\tpygeodesy.elliptic-module.html#_rC\npygeodesy.elliptic._flipsign\tpygeodesy.constants-module.html#_flipsign\npygeodesy.elliptic._ellipticError\tpygeodesy.elliptic-module.html#_ellipticError\npygeodesy.elliptic._TolRD\tpygeodesy.elliptic-module.html#_TolRD\npygeodesy.elliptic._TolRF\tpygeodesy.elliptic-module.html#_TolRF\npygeodesy.elliptic._update_all\tpygeodesy.props-module.html#_update_all\npygeodesy.elliptic._Hsum\tpygeodesy.elliptic-module.html#_Hsum\npygeodesy.elliptic._MAXIT\tpygeodesy.elliptic-module.html#_MAXIT\npygeodesy.elliptic._Rdot\tpygeodesy.elliptic-module.html#_Rdot\npygeodesy.elliptic.typename\tpygeodesy.internals-module.html#typename\npygeodesy.elliptic.copysign0\tpygeodesy.basics-module.html#copysign0\npygeodesy.elliptic._RJ\tpygeodesy.elliptic-module.html#_RJ\npygeodesy.elliptic.__package__\tpygeodesy.elliptic-module.html#__package__\npygeodesy.elliptic._1_over\tpygeodesy.constants-module.html#_1_over\npygeodesy.elliptic.neg\tpygeodesy.basics-module.html#neg\npygeodesy.elliptic._norm180\tpygeodesy.karney-module.html#_norm180\npygeodesy.elliptic._allPropertiesOf_n\tpygeodesy.props-module.html#_allPropertiesOf_n\npygeodesy.elliptic.map2\tpygeodesy.basics-module.html#map2\npygeodesy.elliptic.atan2\tpygeodesy.utily-module.html#atan2\npygeodesy.elliptic._signBit\tpygeodesy.basics-module.html#signBit\npygeodesy.elliptic._RF3\tpygeodesy.elliptic-module.html#_RF3\npygeodesy.elliptic.zqrt\tpygeodesy.fmath-module.html#zqrt\npygeodesy.elliptic._RD\tpygeodesy.elliptic-module.html#_RD\npygeodesy.epsg\tpygeodesy.epsg-module.html\npygeodesy.epsg._EPSG_S\tpygeodesy.epsg-module.html#_EPSG_S\npygeodesy.epsg._to3zBhp\tpygeodesy.utmupsBase-module.html#_to3zBhp\npygeodesy.epsg.decode2\tpygeodesy.epsg-module.html#decode2\npygeodesy.epsg._ALL_DOCS\tpygeodesy.lazily-module.html#_ALL_OTHER\npygeodesy.epsg._EPSG_N\tpygeodesy.epsg-module.html#_EPSG_N\npygeodesy.epsg.__package__\tpygeodesy.epsg-module.html#__package__\npygeodesy.epsg.encode\tpygeodesy.epsg-module.html#encode\npygeodesy.epsg._EPSG_N_01\tpygeodesy.epsg-module.html#_EPSG_N_01\npygeodesy.epsg.isint\tpygeodesy.basics-module.html#isint\npygeodesy.epsg._EPSG_S_60\tpygeodesy.epsg-module.html#_EPSG_S_60\npygeodesy.epsg._EPSG_N_60\tpygeodesy.epsg-module.html#_EPSG_N_60\npygeodesy.epsg._EPSG_S_01\tpygeodesy.epsg-module.html#_EPSG_S_01\npygeodesy.epsg.__all__\tpygeodesy.epsg-module.html#__all__\npygeodesy.epsg.isstr\tpygeodesy.basics-module.html#isstr\npygeodesy.epsg._xinstanceof\tpygeodesy.basics-module.html#_xinstanceof\npygeodesy.errors\tpygeodesy.errors-module.html\npygeodesy.errors._xgeodesics\tpygeodesy.errors-module.html#_xgeodesics\npygeodesy.errors._TypesError\tpygeodesy.errors-module.html#_TypesError\npygeodesy.errors.exception_chaining\tpygeodesy.errors-module.html#exception_chaining\npygeodesy.errors._xkwds\tpygeodesy.errors-module.html#_xkwds\npygeodesy.errors._xdatum\tpygeodesy.errors-module.html#_xdatum\npygeodesy.errors._xattrs\tpygeodesy.errors-module.html#_xattrs\npygeodesy.errors._parseX\tpygeodesy.errors-module.html#_parseX\npygeodesy.errors._error_init\tpygeodesy.errors-module.html#_error_init\npygeodesy.errors.crosserrors\tpygeodesy.errors-module.html#crosserrors\npygeodesy.errors._xsError\tpygeodesy.errors-module.html#_xsError\npygeodesy.errors._vs__\tpygeodesy.errors-module.html#_vs__\npygeodesy.errors._xError2\tpygeodesy.errors-module.html#_xError2\npygeodesy.errors._and\tpygeodesy.errors-module.html#_and\npygeodesy.errors._IsnotError\tpygeodesy.errors-module.html#_IsnotError\npygeodesy.errors._XErrors\tpygeodesy.errors-module.html#_XErrors\npygeodesy.errors._error_under\tpygeodesy.errors-module.html#_error_under\npygeodesy.errors.__all__\tpygeodesy.errors-module.html#__all__\npygeodesy.errors.typename\tpygeodesy.internals-module.html#typename\npygeodesy.errors._plural\tpygeodesy.internals-module.html#_plural\npygeodesy.errors._error_cause\tpygeodesy.errors-module.html#_error_cause\npygeodesy.errors._envPYGEODESY\tpygeodesy.internals-module.html#_envPYGEODESY\npygeodesy.errors._xellipsoidal\tpygeodesy.errors-module.html#_xellipsoidal\npygeodesy.errors._XError\tpygeodesy.errors-module.html#_XError\npygeodesy.errors._xkwds_pop\tpygeodesy.errors-module.html#_xkwds_pop\npygeodesy.errors._argument_\tpygeodesy.errors-module.html#_argument_\npygeodesy.errors.isError\tpygeodesy.errors-module.html#isError\npygeodesy.errors._\tpygeodesy.errors-module.html#_\npygeodesy.errors._ImmutableError\tpygeodesy.errors-module.html#_ImmutableError\npygeodesy.errors._xkwds_kwds\tpygeodesy.errors-module.html#_xkwds_kwds\npygeodesy.errors._del_\tpygeodesy.errors-module.html#_del_\npygeodesy.errors._xkwds_get\tpygeodesy.errors-module.html#_xkwds_get\npygeodesy.errors._Xorder\tpygeodesy.errors-module.html#_Xorder\npygeodesy.errors._streprs\tpygeodesy.errors-module.html#_streprs\npygeodesy.errors._limiterrors\tpygeodesy.errors-module.html#_limiterrors\npygeodesy.errors._xAssertionError\tpygeodesy.errors-module.html#_xAssertionError\npygeodesy.errors._region_\tpygeodesy.errors-module.html#_region_\npygeodesy.errors._name_value_\tpygeodesy.errors-module.html#_name_value_\npygeodesy.errors._xStrError\tpygeodesy.errors-module.html#_xStrError\npygeodesy.errors._xellipsoids\tpygeodesy.errors-module.html#_xellipsoids\npygeodesy.errors._rangerrors\tpygeodesy.errors-module.html#_rangerrors\npygeodesy.errors._tailof\tpygeodesy.internals-module.html#_tailof\npygeodesy.errors._xkwds_item2\tpygeodesy.errors-module.html#_xkwds_item2\npygeodesy.errors._or\tpygeodesy.errors-module.html#_or\npygeodesy.errors._xellipsoidall\tpygeodesy.errors-module.html#_xellipsoidall\npygeodesy.errors._xkwds_not\tpygeodesy.errors-module.html#_xkwds_not\npygeodesy.errors._incompatible\tpygeodesy.errors-module.html#_incompatible\npygeodesy.errors._xkwds_get1\tpygeodesy.errors-module.html#_xkwds_get1\npygeodesy.errors._xattr\tpygeodesy.errors-module.html#_xattr\npygeodesy.errors._SciPyIssue\tpygeodesy.errors-module.html#_SciPyIssue\npygeodesy.errors._exception_chaining\tpygeodesy.errors-module.html#_exception_chaining\npygeodesy.errors._xkwds_pop2\tpygeodesy.errors-module.html#_xkwds_pop2\npygeodesy.errors.__package__\tpygeodesy.errors-module.html#__package__\npygeodesy.errors._box_\tpygeodesy.errors-module.html#_box_\npygeodesy.errors._xError\tpygeodesy.errors-module.html#_xError\npygeodesy.errors.rangerrors\tpygeodesy.errors-module.html#rangerrors\npygeodesy.errors._expected_\tpygeodesy.errors-module.html#_expected_\npygeodesy.errors._InvalidError\tpygeodesy.errors-module.html#_InvalidError\npygeodesy.errors._and_or\tpygeodesy.errors-module.html#_and_or\npygeodesy.errors._xcallable\tpygeodesy.errors-module.html#_xcallable\npygeodesy.errors._an\tpygeodesy.errors-module.html#_an\npygeodesy.errors.limiterrors\tpygeodesy.errors-module.html#limiterrors\npygeodesy.etm\tpygeodesy.etm-module.html\npygeodesy.etm._TAYTOL2\tpygeodesy.etm-module.html#_TAYTOL2\npygeodesy.etm._norm2\tpygeodesy.karney-module.html#_norm2\npygeodesy.etm.neg_\tpygeodesy.basics-module.html#neg_\npygeodesy.etm._incompatible\tpygeodesy.errors-module.html#_incompatible\npygeodesy.etm._tand\tpygeodesy.karney-module.html#_tand\npygeodesy.etm.callername\tpygeodesy.named-module.html#callername\npygeodesy.etm._ellipsoidal_datum\tpygeodesy.datums-module.html#_ellipsoidal_datum\npygeodesy.etm._TRIPS\tpygeodesy.etm-module.html#_TRIPS\npygeodesy.etm._xinstanceof\tpygeodesy.basics-module.html#_xinstanceof\npygeodesy.etm._main\tpygeodesy.etm-module.html#_main\npygeodesy.etm._parseUTM5\tpygeodesy.utm-module.html#_parseUTM5\npygeodesy.etm._diff182\tpygeodesy.karney-module.html#_diff182\npygeodesy.etm.hypot\tpygeodesy.fmath-module.html#hypot\npygeodesy.etm.property_doc_\tpygeodesy.props-module.html#property_doc_\npygeodesy.etm._TOL_10\tpygeodesy.etm-module.html#_TOL_10\npygeodesy.etm._unsigned2\tpygeodesy.karney-module.html#_unsigned2\npygeodesy.etm.neg\tpygeodesy.basics-module.html#neg\npygeodesy.etm.atan2d\tpygeodesy.utily-module.html#atan2d\npygeodesy.etm._TAYTOL\tpygeodesy.etm-module.html#_TAYTOL\npygeodesy.etm._to7zBlldfn\tpygeodesy.utm-module.html#_to7zBlldfn\npygeodesy.etm._isin\tpygeodesy.basics-module.html#_isin\npygeodesy.etm.pairs\tpygeodesy.streprs-module.html#pairs\npygeodesy.etm.isnear0\tpygeodesy.constants-module.html#isnear0\npygeodesy.etm.cbrt\tpygeodesy.fmath-module.html#cbrt\npygeodesy.etm.unstr\tpygeodesy.streprs-module.html#unstr\npygeodesy.etm._fix90\tpygeodesy.karney-module.html#_fix90\npygeodesy.etm.parseETM5\tpygeodesy.etm-module.html#parseETM5\npygeodesy.etm._update_all\tpygeodesy.props-module.html#_update_all\npygeodesy.etm.deprecated_property_RO\tpygeodesy.props-module.html#deprecated_property_RO\npygeodesy.etm.toEtm8\tpygeodesy.etm-module.html#toEtm8\npygeodesy.etm.hypot1\tpygeodesy.fmath-module.html#hypot1\npygeodesy.etm.hypot2\tpygeodesy.fmath-module.html#hypot2\npygeodesy.etm._toXtm8\tpygeodesy.utm-module.html#_toXtm8\npygeodesy.etm._cmlon\tpygeodesy.utm-module.html#_cmlon\npygeodesy.etm._toBand\tpygeodesy.utm-module.html#_toBand\npygeodesy.etm.isnear90\tpygeodesy.constants-module.html#isnear90\npygeodesy.etm.atan2\tpygeodesy.utily-module.html#atan2\npygeodesy.etm._OVERFLOW\tpygeodesy.etm-module.html#_OVERFLOW\npygeodesy.etm.__package__\tpygeodesy.etm-module.html#__package__\npygeodesy.etm.deprecated_method\tpygeodesy.props-module.html#deprecated_method\npygeodesy.etm._copysignOVERFLOW\tpygeodesy.etm-module.html#_copysignOVERFLOW\npygeodesy.etm.atan1d\tpygeodesy.utily-module.html#atan1d\npygeodesy.etm._loneg\tpygeodesy.utily-module.html#_loneg\npygeodesy.etm.__all__\tpygeodesy.etm-module.html#__all__\npygeodesy.etm._norm180\tpygeodesy.karney-module.html#_norm180\npygeodesy.etm.sincos2\tpygeodesy.utily-module.html#sincos2\npygeodesy.etm.map1\tpygeodesy.basics-module.html#map1\npygeodesy.etm._signBit\tpygeodesy.basics-module.html#signBit\npygeodesy.fmath\tpygeodesy.fmath-module.html\npygeodesy.fmath._isRadius\tpygeodesy.units-module.html#_isRadius\npygeodesy.fmath._0_4142\tpygeodesy.fmath-module.html#_0_4142\npygeodesy.fmath.hypot2_\tpygeodesy.fmath-module.html#hypot2_\npygeodesy.fmath.fidw\tpygeodesy.fmath-module.html#fidw\npygeodesy.fmath._xkwds\tpygeodesy.errors-module.html#_xkwds\npygeodesy.fmath.bqrt\tpygeodesy.fmath-module.html#bqrt\npygeodesy.fmath.frange\tpygeodesy.fmath-module.html#frange\npygeodesy.fmath.isscalar\tpygeodesy.basics-module.html#isscalar\npygeodesy.fmath._fma\tpygeodesy.fmath-module.html#_fma\npygeodesy.fmath.fatan\tpygeodesy.fmath-module.html#fatan\npygeodesy.fmath.unstr\tpygeodesy.streprs-module.html#unstr\npygeodesy.fmath.cbrt2\tpygeodesy.fmath-module.html#cbrt2\npygeodesy.fmath._isFsum_2Tuple\tpygeodesy.fsums-module.html#_isFsum_2Tuple\npygeodesy.fmath._xiterable\tpygeodesy.basics-module.html#_xiterable\npygeodesy.fmath._Hypot\tpygeodesy.fmath-module.html#_Hypot\npygeodesy.fmath._1_6th\tpygeodesy.fmath-module.html#_1_6th\npygeodesy.fmath.fprod\tpygeodesy.fmath-module.html#fprod\npygeodesy.fmath.isfinite\tpygeodesy.constants-module.html#isfinite\npygeodesy.fmath._IsnotError\tpygeodesy.errors-module.html#_IsnotError\npygeodesy.fmath.euclid_\tpygeodesy.fmath-module.html#euclid_\npygeodesy.fmath.zcrt\tpygeodesy.fmath-module.html#zcrt\npygeodesy.fmath.hypot\tpygeodesy.fmath-module.html#hypot\npygeodesy.fmath.polar2d\tpygeodesy.fmath-module.html#polar2d\npygeodesy.fmath.euclid\tpygeodesy.fmath-module.html#euclid\npygeodesy.fmath._cbrt\tpygeodesy.fmath-module.html#_cbrt\npygeodesy.fmath.__all__\tpygeodesy.fmath-module.html#__all__\npygeodesy.fmath.fdot3\tpygeodesy.fmath-module.html#fdot3\npygeodesy.fmath.fdot_\tpygeodesy.fmath-module.html#fdot_\npygeodesy.fmath.fremainder\tpygeodesy.fmath-module.html#fremainder\npygeodesy.fmath._powers\tpygeodesy.fmath-module.html#_powers\npygeodesy.fmath.favg\tpygeodesy.fmath-module.html#favg\npygeodesy.fmath.polar2\tpygeodesy.fmath-module.html#polar2\npygeodesy.fmath._isHeight\tpygeodesy.units-module.html#_isHeight\npygeodesy.fmath._copysign_0_0\tpygeodesy.constants-module.html#_copysign_0_0\npygeodesy.fmath._map0\tpygeodesy.fmath-module.html#_map0\npygeodesy.fmath.isodd\tpygeodesy.basics-module.html#isodd\npygeodesy.fmath.isbool\tpygeodesy.basics-module.html#isbool\npygeodesy.fmath._fast\tpygeodesy.fmath-module.html#_fast\npygeodesy.fmath.cbrt\tpygeodesy.fmath-module.html#cbrt\npygeodesy.fmath.fsum\tpygeodesy.fsums-module.html#fsum\npygeodesy.fmath._xsError\tpygeodesy.errors-module.html#_xsError\npygeodesy.fmath.norm2\tpygeodesy.fmath-module.html#norm2\npygeodesy.fmath.hypot_\tpygeodesy.fmath-module.html#hypot_\npygeodesy.fmath.fhorner\tpygeodesy.fmath-module.html#fhorner\npygeodesy.fmath.frandoms\tpygeodesy.fmath-module.html#frandoms\npygeodesy.fmath.fpowers\tpygeodesy.fmath-module.html#fpowers\npygeodesy.fmath.remainder\tpygeodesy.constants-module.html#remainder\npygeodesy.fmath.facos1\tpygeodesy.fmath-module.html#facos1\npygeodesy.fmath.fma\tpygeodesy.fmath-module.html#fma\npygeodesy.fmath._Fm2\tpygeodesy.fmath-module.html#_Fm2\npygeodesy.fmath.fmean_\tpygeodesy.fmath-module.html#fmean_\npygeodesy.fmath.sqrt3\tpygeodesy.fmath-module.html#sqrt3\npygeodesy.fmath.sqrt0\tpygeodesy.fmath-module.html#sqrt0\npygeodesy.fmath.typename\tpygeodesy.internals-module.html#typename\npygeodesy.fmath.norm_\tpygeodesy.fmath-module.html#norm_\npygeodesy.fmath.copysign0\tpygeodesy.basics-module.html#copysign0\npygeodesy.fmath.hypot2\tpygeodesy.fmath-module.html#hypot2\npygeodesy.fmath._h_lt_b_\tpygeodesy.fmath-module.html#_h_lt_b_\npygeodesy.fmath.fatan2\tpygeodesy.fmath-module.html#fatan2\npygeodesy.fmath.fatan1\tpygeodesy.fmath-module.html#fatan1\npygeodesy.fmath.len2\tpygeodesy.basics-module.html#len2\npygeodesy.fmath._xkwds_pop2\tpygeodesy.errors-module.html#_xkwds_pop2\npygeodesy.fmath.__package__\tpygeodesy.fmath-module.html#__package__\npygeodesy.fmath._xError\tpygeodesy.errors-module.html#_xError\npygeodesy.fmath.hypot1\tpygeodesy.fmath-module.html#hypot1\npygeodesy.fmath._2float\tpygeodesy.fsums-module.html#_2float\npygeodesy.fmath.sqrt_a\tpygeodesy.fmath-module.html#sqrt_a\npygeodesy.fmath.isint\tpygeodesy.basics-module.html#isint\npygeodesy.fmath.fdot\tpygeodesy.fmath-module.html#fdot\npygeodesy.fmath.fasin1\tpygeodesy.fmath-module.html#fasin1\npygeodesy.fmath.fpolynomial\tpygeodesy.fmath-module.html#fpolynomial\npygeodesy.fmath._copysign\tpygeodesy.geodesicx.gx-module.html#copysign\npygeodesy.fmath.fmean\tpygeodesy.fmath-module.html#fmean\npygeodesy.fmath.f2mul_\tpygeodesy.fmath-module.html#f2mul_\npygeodesy.fmath.zqrt\tpygeodesy.fmath-module.html#zqrt\npygeodesy.fmath._root\tpygeodesy.fmath-module.html#_root\npygeodesy.fmath.freduce\tpygeodesy.fmath-module.html#freduce\npygeodesy.formy\tpygeodesy.formy-module.html\npygeodesy.formy._isRadius\tpygeodesy.units-module.html#_isRadius\npygeodesy.formy.thomas\tpygeodesy.formy-module.html#thomas\npygeodesy.formy._xkwds\tpygeodesy.errors-module.html#_xkwds\npygeodesy.formy._opposes\tpygeodesy.formy-module.html#_opposes\npygeodesy.formy.hubeny\tpygeodesy.formy-module.html#hubeny\npygeodesy.formy.flatLocal\tpygeodesy.formy-module.html#flatLocal\npygeodesy.formy.float0_\tpygeodesy.constants-module.html#float0_\npygeodesy.formy._maprod\tpygeodesy.formy-module.html#_maprod\npygeodesy.formy._sincosa6\tpygeodesy.formy-module.html#_sincosa6\npygeodesy.formy._xnamed\tpygeodesy.named-module.html#_xnamed\npygeodesy.formy.cosineLaw\tpygeodesy.formy-module.html#cosineLaw\npygeodesy.formy.fsumf_\tpygeodesy.fsums-module.html#fsumf_\npygeodesy.formy._name__\tpygeodesy.named-module.html#_name__\npygeodesy.formy.isantipode\tpygeodesy.formy-module.html#isantipode\npygeodesy.formy.euclidean_\tpygeodesy.formy-module.html#euclidean_\npygeodesy.formy._normal2\tpygeodesy.formy-module.html#_normal2\npygeodesy.formy.equirectangular4\tpygeodesy.formy-module.html#equirectangular4\npygeodesy.formy.bearing_\tpygeodesy.formy-module.html#bearing_\npygeodesy.formy.acos1\tpygeodesy.utily-module.html#acos1\npygeodesy.formy.heightOf\tpygeodesy.formy-module.html#heightOf\npygeodesy.formy._ratio_\tpygeodesy.formy-module.html#_ratio_\npygeodesy.formy.antipode\tpygeodesy.formy-module.html#antipode\npygeodesy.formy._ellipsoidal_datum\tpygeodesy.datums-module.html#_ellipsoidal_datum\npygeodesy.formy._0_0s\tpygeodesy.constants-module.html#_0_0s\npygeodesy.formy._anti2\tpygeodesy.formy-module.html#_anti2\npygeodesy.formy._name2__\tpygeodesy.named-module.html#_name2__\npygeodesy.formy.isantipode_\tpygeodesy.formy-module.html#isantipode_\npygeodesy.formy.fprod\tpygeodesy.fmath-module.html#fprod\npygeodesy.formy.excessGirard_\tpygeodesy.formy-module.html#excessGirard_\npygeodesy.formy._RADIANS2\tpygeodesy.formy-module.html#_RADIANS2\npygeodesy.formy._mean_radius\tpygeodesy.datums-module.html#_mean_radius\npygeodesy.formy.heightOrthometric\tpygeodesy.formy-module.html#heightOrthometric\npygeodesy.formy.radical2\tpygeodesy.formy-module.html#radical2\npygeodesy.formy.hypot\tpygeodesy.fmath-module.html#hypot\npygeodesy.formy._isequalTo_\tpygeodesy.formy-module.html#_isequalTo_\npygeodesy.formy.euclid\tpygeodesy.fmath-module.html#euclid\npygeodesy.formy.flatLocal_\tpygeodesy.formy-module.html#flatLocal_\npygeodesy.formy._umod_PI2\tpygeodesy.constants-module.html#_umod_PI2\npygeodesy.formy._idllmn6\tpygeodesy.formy-module.html#_idllmn6\npygeodesy.formy.__all__\tpygeodesy.formy-module.html#__all__\npygeodesy.formy.typename\tpygeodesy.internals-module.html#typename\npygeodesy.formy._dE\tpygeodesy.formy-module.html#_dE\npygeodesy.formy._xline_\tpygeodesy.formy-module.html#_xline_\npygeodesy.formy.atan2b\tpygeodesy.utily-module.html#atan2b\npygeodesy.formy._dS\tpygeodesy.formy-module.html#_dS\npygeodesy.formy._Propy\tpygeodesy.formy-module.html#_Propy\npygeodesy.formy.hubeny_\tpygeodesy.formy-module.html#hubeny_\npygeodesy.formy.fdot_\tpygeodesy.fmath-module.html#fdot_\npygeodesy.formy._isin\tpygeodesy.basics-module.html#_isin\npygeodesy.formy.flatPolar_\tpygeodesy.formy-module.html#flatPolar_\npygeodesy.formy.tan_2\tpygeodesy.utily-module.html#tan_2\npygeodesy.formy.antipode_\tpygeodesy.formy-module.html#antipode_\npygeodesy.formy._isHeight\tpygeodesy.units-module.html#_isHeight\npygeodesy.formy._d3\tpygeodesy.formy-module.html#_d3\npygeodesy.formy.remainder\tpygeodesy.constants-module.html#remainder\npygeodesy.formy.excessCagnoli_\tpygeodesy.formy-module.html#excessCagnoli_\npygeodesy.formy.excessQuad\tpygeodesy.formy-module.html#excessQuad\npygeodesy.formy._scale_deg\tpygeodesy.formy-module.html#_scale_deg\npygeodesy.formy.isnormal_\tpygeodesy.formy-module.html#isnormal_\npygeodesy.formy.cosineLaw_\tpygeodesy.formy-module.html#cosineLaw_\npygeodesy.formy._hartzell\tpygeodesy.formy-module.html#_hartzell\npygeodesy.formy.intersection2\tpygeodesy.formy-module.html#intersection2\npygeodesy.formy.excessKarney\tpygeodesy.formy-module.html#excessKarney\npygeodesy.formy.unstr\tpygeodesy.streprs-module.html#unstr\npygeodesy.formy.isnormal\tpygeodesy.formy-module.html#isnormal\npygeodesy.formy.equirectangular\tpygeodesy.formy-module.html#equirectangular\npygeodesy.formy.asin1\tpygeodesy.utily-module.html#asin1\npygeodesy.formy._isequalTo\tpygeodesy.formy-module.html#_isequalTo\npygeodesy.formy.opposing_\tpygeodesy.formy-module.html#opposing_\npygeodesy.formy.haversine_\tpygeodesy.formy-module.html#haversine_\npygeodesy.formy._radistance\tpygeodesy.formy-module.html#_radistance\npygeodesy.formy.intersections2\tpygeodesy.formy-module.html#intersections2\npygeodesy.formy.angle2chord\tpygeodesy.formy-module.html#angle2chord\npygeodesy.formy.excessAbc_\tpygeodesy.formy-module.html#excessAbc_\npygeodesy.formy._isDegrees\tpygeodesy.units-module.html#_isDegrees\npygeodesy.formy.chord2angle\tpygeodesy.formy-module.html#chord2angle\npygeodesy.formy.sqrt0\tpygeodesy.fmath-module.html#sqrt0\npygeodesy.formy.opposing\tpygeodesy.formy-module.html#opposing\npygeodesy.formy.thomas_\tpygeodesy.formy-module.html#thomas_\npygeodesy.formy.vincentys_\tpygeodesy.formy-module.html#vincentys_\npygeodesy.formy.degrees2m\tpygeodesy.utily-module.html#degrees2m\npygeodesy.formy.isnon0\tpygeodesy.constants-module.html#isnon0\npygeodesy.formy.hartzell\tpygeodesy.formy-module.html#hartzell\npygeodesy.formy.euclidean\tpygeodesy.formy-module.html#euclidean\npygeodesy.formy._bearingTo2\tpygeodesy.formy-module.html#_bearingTo2\npygeodesy.formy.hypot2\tpygeodesy.fmath-module.html#hypot2\npygeodesy.formy.hav\tpygeodesy.utily-module.html#hav\npygeodesy.formy._scale_rad\tpygeodesy.formy-module.html#_scale_rad\npygeodesy.formy._xattr\tpygeodesy.errors-module.html#_xattr\npygeodesy.formy.bearing\tpygeodesy.formy-module.html#bearing\npygeodesy.formy._spherical_datum\tpygeodesy.datums-module.html#_spherical_datum\npygeodesy.formy.excessQuad_\tpygeodesy.formy-module.html#excessQuad_\npygeodesy.formy.flatPolar\tpygeodesy.formy-module.html#flatPolar\npygeodesy.formy.haversine\tpygeodesy.formy-module.html#haversine\npygeodesy.formy.sincos2_\tpygeodesy.utily-module.html#sincos2_\npygeodesy.formy._xkwds_pop2\tpygeodesy.errors-module.html#_xkwds_pop2\npygeodesy.formy.vincentys\tpygeodesy.formy-module.html#vincentys\npygeodesy.formy.sincos2\tpygeodesy.utily-module.html#sincos2\npygeodesy.formy.__package__\tpygeodesy.formy-module.html#__package__\npygeodesy.formy.excessLHuilier_\tpygeodesy.formy-module.html#excessLHuilier_\npygeodesy.formy._xError\tpygeodesy.errors-module.html#_xError\npygeodesy.formy._ellipsoidal\tpygeodesy.formy-module.html#_ellipsoidal\npygeodesy.formy.horizon\tpygeodesy.formy-module.html#horizon\npygeodesy.formy.normal\tpygeodesy.formy-module.html#normal\npygeodesy.formy.m2degrees\tpygeodesy.utily-module.html#m2degrees\npygeodesy.formy.excessKarney_\tpygeodesy.formy-module.html#excessKarney_\npygeodesy.formy._xcallable\tpygeodesy.errors-module.html#_xcallable\npygeodesy.formy.normal_\tpygeodesy.formy-module.html#normal_\npygeodesy.formy._radical2\tpygeodesy.formy-module.html#_radical2\npygeodesy.formy._loneg\tpygeodesy.utily-module.html#_loneg\npygeodesy.formy.limiterrors\tpygeodesy.errors-module.html#limiterrors\npygeodesy.formy._copysign\tpygeodesy.geodesicx.gx-module.html#copysign\npygeodesy.formy.compassAngle\tpygeodesy.formy-module.html#compassAngle\npygeodesy.formy.atan2\tpygeodesy.utily-module.html#atan2\npygeodesy.formy._equirectangular\tpygeodesy.formy-module.html#_equirectangular\npygeodesy.frechet\tpygeodesy.frechet-module.html\npygeodesy.frechet._formy\tpygeodesy.frechet-module.html#_formy\npygeodesy.frechet._xkwds\tpygeodesy.errors-module.html#_xkwds\npygeodesy.frechet._xkwds_get\tpygeodesy.errors-module.html#_xkwds_get\npygeodesy.frechet.radians\tpygeodesy.utily-module.html#radians\npygeodesy.frechet._fractional\tpygeodesy.points-module.html#_fractional\npygeodesy.frechet.property_doc_\tpygeodesy.props-module.html#property_doc_\npygeodesy.frechet.isscalar\tpygeodesy.basics-module.html#isscalar\npygeodesy.frechet.typename\tpygeodesy.internals-module.html#typename\npygeodesy.frechet._frechet3\tpygeodesy.frechet-module.html#_frechet3\npygeodesy.frechet.__package__\tpygeodesy.frechet-module.html#__package__\npygeodesy.frechet._frechetR\tpygeodesy.frechet-module.html#_frechetR\npygeodesy.frechet._frechetDP\tpygeodesy.frechet-module.html#_frechetDP\npygeodesy.frechet._isin\tpygeodesy.basics-module.html#_isin\npygeodesy.frechet._xcallable\tpygeodesy.errors-module.html#_xcallable\npygeodesy.frechet._ellipsoidal_datum\tpygeodesy.datums-module.html#_ellipsoidal_datum\npygeodesy.frechet._fraction\tpygeodesy.frechet-module.html#_fraction\npygeodesy.frechet._main\tpygeodesy.frechet-module.html#_main\npygeodesy.frechet.__all__\tpygeodesy.frechet-module.html#__all__\npygeodesy.frechet._name2__\tpygeodesy.named-module.html#_name2__\npygeodesy.frechet._Pass\tpygeodesy.named-module.html#_Pass\npygeodesy.frechet._distanceTo\tpygeodesy.points-module.html#_distanceTo\npygeodesy.frechet.frechet_\tpygeodesy.frechet-module.html#frechet_\npygeodesy.frechet._points2\tpygeodesy.iters-module.html#points2\npygeodesy.frechet._xattr\tpygeodesy.errors-module.html#_xattr\npygeodesy.fstats\tpygeodesy.fstats-module.html\npygeodesy.fstats._xsError\tpygeodesy.errors-module.html#_xsError\npygeodesy.fstats._ALL_DOCS\tpygeodesy.lazily-module.html#_ALL_OTHER\npygeodesy.fstats.isscalar\tpygeodesy.basics-module.html#isscalar\npygeodesy.fstats.__all__\tpygeodesy.fstats-module.html#__all__\npygeodesy.fstats._xinstanceof\tpygeodesy.basics-module.html#_xinstanceof\npygeodesy.fstats.__package__\tpygeodesy.fstats-module.html#__package__\npygeodesy.fstats._xError\tpygeodesy.errors-module.html#_xError\npygeodesy.fstats._sampled\tpygeodesy.fstats-module.html#_sampled\npygeodesy.fstats._Xs\tpygeodesy.fstats-module.html#_Xs\npygeodesy.fstats._xsubclassof\tpygeodesy.basics-module.html#_xsubclassof\npygeodesy.fstats._isFsum_2Tuple\tpygeodesy.fsums-module.html#_isFsum_2Tuple\npygeodesy.fstats._xiterable\tpygeodesy.basics-module.html#_xiterable\npygeodesy.fstats._zip\tpygeodesy.basics-module.html#_zip\npygeodesy.fstats.isodd\tpygeodesy.basics-module.html#isodd\npygeodesy.fstats._name__\tpygeodesy.named-module.html#_name__\npygeodesy.fstats._xkwds_item2\tpygeodesy.errors-module.html#_xkwds_item2\npygeodesy.fstats._NotImplemented\tpygeodesy.named-module.html#_NotImplemented\npygeodesy.fstats.typename\tpygeodesy.internals-module.html#typename\npygeodesy.fstats._2finite\tpygeodesy.fsums-module.html#_2finite\npygeodesy.fsums\tpygeodesy.fsums-module.html\npygeodesy.fsums._2sum\tpygeodesy.fsums-module.html#_2sum\npygeodesy.fsums._xkwds\tpygeodesy.errors-module.html#_xkwds\npygeodesy.fsums._passarg\tpygeodesy.internals-module.html#_passarg\npygeodesy.fsums.fsum1f_\tpygeodesy.fsums-module.html#fsum1f_\npygeodesy.fsums._s_r2\tpygeodesy.fsums-module.html#_s_r2\npygeodesy.fsums._Fsumf_\tpygeodesy.fsums-module.html#_Fsumf_\npygeodesy.fsums.isscalar\tpygeodesy.basics-module.html#isscalar\npygeodesy.fsums._fma\tpygeodesy.fsums-module.html#_fma\npygeodesy.fsums.fsumf_\tpygeodesy.fsums-module.html#fsumf_\npygeodesy.fsums._name__\tpygeodesy.named-module.html#_name__\npygeodesy.fsums._test\tpygeodesy.fsums-module.html#_test\npygeodesy.fsums._xkwds_pop\tpygeodesy.errors-module.html#_xkwds_pop\npygeodesy.fsums._halfeven\tpygeodesy.fsums-module.html#_halfeven\npygeodesy.fsums._xkwds_get\tpygeodesy.errors-module.html#_xkwds_get\npygeodesy.fsums.fsum_\tpygeodesy.fsums-module.html#fsum_\npygeodesy.fsums._n_d2\tpygeodesy.fsums-module.html#_n_d2\npygeodesy.fsums._isFsum_2Tuple\tpygeodesy.fsums-module.html#_isFsum_2Tuple\npygeodesy.fsums._xiterable\tpygeodesy.basics-module.html#_xiterable\npygeodesy.fsums._Psum_\tpygeodesy.fsums-module.html#_Psum_\npygeodesy.fsums._xError2\tpygeodesy.errors-module.html#_xError2\npygeodesy.fsums._name2__\tpygeodesy.named-module.html#_name2__\npygeodesy.fsums.signOf\tpygeodesy.basics-module.html#signOf\npygeodesy.fsums._integer_\tpygeodesy.fsums-module.html#_integer_\npygeodesy.fsums._2FACTOR\tpygeodesy.fsums-module.html#_2FACTOR\npygeodesy.fsums._threshold\tpygeodesy.fsums-module.html#_threshold\npygeodesy.fsums._NonfiniteError\tpygeodesy.fsums-module.html#_NonfiniteError\npygeodesy.fsums._nfError\tpygeodesy.fsums-module.html#_nfError\npygeodesy.fsums.itemsorted\tpygeodesy.basics-module.html#itemsorted\npygeodesy.fsums._divmod_op_\tpygeodesy.fsums-module.html#_divmod_op_\npygeodesy.fsums._xsum\tpygeodesy.fsums-module.html#_xsum\npygeodesy.fsums.__all__\tpygeodesy.fsums-module.html#__all__\npygeodesy.fsums._NONFINITEr\tpygeodesy.fsums-module.html#_NONFINITEr\npygeodesy.fsums._significant_\tpygeodesy.fsums-module.html#_significant_\npygeodesy.fsums._2split3s\tpygeodesy.fsums-module.html#_2split3s\npygeodesy.fsums._nonfinites_isfine_kwds\tpygeodesy.fsums-module.html#_nonfinites_isfine_kwds\npygeodesy.fsums.unstr\tpygeodesy.streprs-module.html#unstr\npygeodesy.fsums.fsum1\tpygeodesy.fsums-module.html#fsum1\npygeodesy.fsums._\tpygeodesy.fsums-module.html#_\npygeodesy.fsums._2split3\tpygeodesy.fsums-module.html#_2split3\npygeodesy.fsums._enquote\tpygeodesy.internals-module.html#_enquote\npygeodesy.fsums.iscomplex\tpygeodesy.basics-module.html#iscomplex\npygeodesy.fsums._NotImplemented\tpygeodesy.named-module.html#_NotImplemented\npygeodesy.fsums.isbool\tpygeodesy.basics-module.html#isbool\npygeodesy.fsums._stresidual\tpygeodesy.fsums-module.html#_stresidual\npygeodesy.fsums._isfinite\tpygeodesy.constants-module.html#_isfinite\npygeodesy.fsums._threshold_\tpygeodesy.fsums-module.html#_threshold_\npygeodesy.fsums._xsError\tpygeodesy.errors-module.html#_xsError\npygeodesy.fsums._ROs\tpygeodesy.fsums-module.html#_ROs\npygeodesy.fsums._psum\tpygeodesy.fsums-module.html#_psum\npygeodesy.fsums._signOf\tpygeodesy.basics-module.html#_signOf\npygeodesy.fsums._integer_ratio2\tpygeodesy.fsums-module.html#_integer_ratio2\npygeodesy.fsums._x_isfine\tpygeodesy.fsums-module.html#_x_isfine\npygeodesy.fsums._2tuple2\tpygeodesy.fsums-module.html#_2tuple2\npygeodesy.fsums._gcd\tpygeodesy.basics-module.html#_gcd\npygeodesy.fsums.isodd\tpygeodesy.basics-module.html#isodd\npygeodesy.fsums._1primed\tpygeodesy.fsums-module.html#_1primed\npygeodesy.fsums.fsum\tpygeodesy.fsums-module.html#fsum\npygeodesy.fsums.typename\tpygeodesy.internals-module.html#typename\npygeodesy.fsums._2finite\tpygeodesy.fsums-module.html#_2finite\npygeodesy.fsums._Psum\tpygeodesy.fsums-module.html#_Psum\npygeodesy.fsums._xkwds_get1\tpygeodesy.errors-module.html#_xkwds_get1\npygeodesy.fsums._fmaX\tpygeodesy.fsums-module.html#_fmaX\npygeodesy.fsums._isOK\tpygeodesy.fsums-module.html#_isOK\npygeodesy.fsums.nonfiniterrors\tpygeodesy.fsums-module.html#nonfiniterrors\npygeodesy.fsums._isFsum\tpygeodesy.fsums-module.html#_isFsum\npygeodesy.fsums._Float_Int\tpygeodesy.fsums-module.html#_Float_Int\npygeodesy.fsums._residue\tpygeodesy.fsums-module.html#_residue\npygeodesy.fsums.__package__\tpygeodesy.fsums-module.html#__package__\npygeodesy.fsums._isOK_or_finite\tpygeodesy.fsums-module.html#_isOK_or_finite\npygeodesy.fsums._xError\tpygeodesy.errors-module.html#_xError\npygeodesy.fsums._X_ps\tpygeodesy.fsums-module.html#_X_ps\npygeodesy.fsums._2float\tpygeodesy.fsums-module.html#_2float\npygeodesy.fsums._2products\tpygeodesy.fsums-module.html#_2products\npygeodesy.fsums._Fsum_2Tuple_types\tpygeodesy.fsums-module.html#_Fsum_2Tuple_types\npygeodesy.fsums.isint\tpygeodesy.basics-module.html#isint\npygeodesy.fsums.f2product\tpygeodesy.fsums-module.html#f2product\npygeodesy.fsums._isub_op_\tpygeodesy.fsums-module.html#_isub_op_\npygeodesy.fsums.fsum1_\tpygeodesy.fsums-module.html#fsum1_\npygeodesy.fsums.fstr\tpygeodesy.streprs-module.html#fstr\npygeodesy.fsums._Fsum1f_\tpygeodesy.fsums-module.html#_Fsum1f_\npygeodesy.fsums._xs\tpygeodesy.fsums-module.html#_xs\npygeodesy.fsums._strcomplex\tpygeodesy.fsums-module.html#_strcomplex\npygeodesy.fsums._xkwds_not\tpygeodesy.errors-module.html#_xkwds_not\npygeodesy.fsums._iadd_op_\tpygeodesy.fsums-module.html#_iadd_op_\npygeodesy.fsums._non_zero_\tpygeodesy.fsums-module.html#_non_zero_\npygeodesy.gars\tpygeodesy.gars-module.html\npygeodesy.gars._M3\tpygeodesy.gars-module.html#_M3\npygeodesy.gars._M2\tpygeodesy.gars-module.html#_M2\npygeodesy.gars._M1\tpygeodesy.gars-module.html#_M1\npygeodesy.gars._LonOrig_M1_1\tpygeodesy.gars-module.html#_LonOrig_M1_1\npygeodesy.gars.decode3\tpygeodesy.gars-module.html#decode3\npygeodesy.gars._LatOrig\tpygeodesy.gars-module.html#_LatOrig\npygeodesy.gars._2fll\tpygeodesy.gars-module.html#_2fll\npygeodesy.gars._ALL_DOCS\tpygeodesy.lazily-module.html#_ALL_OTHER\npygeodesy.gars._LatOrig_M1\tpygeodesy.gars-module.html#_LatOrig_M1\npygeodesy.gars._LatOrig_M4\tpygeodesy.gars-module.html#_LatOrig_M4\npygeodesy.gars._Digits\tpygeodesy.gars-module.html#_Digits\npygeodesy.gars._M4\tpygeodesy.gars-module.html#_M4\npygeodesy.gars._Letters\tpygeodesy.gars-module.html#_Letters\npygeodesy.gars.__package__\tpygeodesy.gars-module.html#__package__\npygeodesy.gars._Resolutions\tpygeodesy.gars-module.html#_Resolutions\npygeodesy.gars.precision\tpygeodesy.gars-module.html#precision\npygeodesy.gars._xStrError\tpygeodesy.errors-module.html#_xStrError\npygeodesy.gars._xkwds\tpygeodesy.errors-module.html#_xkwds\npygeodesy.gars._encode3\tpygeodesy.gars-module.html#_encode3\npygeodesy.gars._LonOrig\tpygeodesy.gars-module.html#_LonOrig\npygeodesy.gars._splituple\tpygeodesy.basics-module.html#_splituple\npygeodesy.gars._MinLen\tpygeodesy.gars-module.html#_MinLen\npygeodesy.gars._MaxLen\tpygeodesy.gars-module.html#_MaxLen\npygeodesy.gars._LatLen\tpygeodesy.gars-module.html#_LatLen\npygeodesy.gars._LonOrig_M4\tpygeodesy.gars-module.html#_LonOrig_M4\npygeodesy.gars.encode\tpygeodesy.gars-module.html#encode\npygeodesy.gars._LonLen\tpygeodesy.gars-module.html#_LonLen\npygeodesy.gars._name__\tpygeodesy.named-module.html#_name__\npygeodesy.gars.__all__\tpygeodesy.gars-module.html#__all__\npygeodesy.gars.isstr\tpygeodesy.basics-module.html#isstr\npygeodesy.gars._off90\tpygeodesy.constants-module.html#_off90\npygeodesy.gars._2Precision\tpygeodesy.gars-module.html#_2Precision\npygeodesy.gars._2divmod2\tpygeodesy.gars-module.html#_2divmod2\npygeodesy.gars.typename\tpygeodesy.internals-module.html#typename\npygeodesy.gars._2garstr2\tpygeodesy.gars-module.html#_2garstr2\npygeodesy.gars._1_over\tpygeodesy.constants-module.html#_1_over\npygeodesy.gars._MaxPrec\tpygeodesy.gars-module.html#_MaxPrec\npygeodesy.gars.resolution\tpygeodesy.gars-module.html#resolution\npygeodesy.geod3solve\tpygeodesy.geod3solve-module.html\npygeodesy.geod3solve._main\tpygeodesy.geod3solve-module.html#_main\npygeodesy.geod3solve._xkwds_get\tpygeodesy.errors-module.html#_xkwds_get\npygeodesy.geod3solve.hypot\tpygeodesy.fmath-module.html#hypot\npygeodesy.geod3solve._ALL_DOCS\tpygeodesy.lazily-module.html#_ALL_OTHER\npygeodesy.geod3solve.sincos2d\tpygeodesy.utily-module.html#sincos2d\npygeodesy.geod3solve._Triaxial3_WGS84\tpygeodesy.geod3solve-module.html#_Triaxial3_WGS84\npygeodesy.geod3solve._toAzi\tpygeodesy.geod3solve-module.html#_toAzi\npygeodesy.geod3solve.__all__\tpygeodesy.geod3solve-module.html#__all__\npygeodesy.geod3solve.isAng\tpygeodesy.angles-module.html#isAng\npygeodesy.geod3solve._over\tpygeodesy.constants-module.html#_over\npygeodesy.geod3solve._toDegrees\tpygeodesy.geod3solve-module.html#_toDegrees\npygeodesy.geod3solve.Deg\tpygeodesy.angles-module.html#Deg\npygeodesy.geod3solve._xinstanceof\tpygeodesy.basics-module.html#_xinstanceof\npygeodesy.geod3solve.__package__\tpygeodesy.geod3solve-module.html#__package__\npygeodesy.geodesici\tpygeodesy.geodesici-module.html\npygeodesy.geodesici._xgeodesics\tpygeodesy.errors-module.html#_xgeodesics\npygeodesy.geodesici._xkwds\tpygeodesy.errors-module.html#_xkwds\npygeodesy.geodesici._sX0_\tpygeodesy.geodesici-module.html#_sX0_\npygeodesy.geodesici._sAB_\tpygeodesy.geodesici-module.html#_sAB_\npygeodesy.geodesici._c__\tpygeodesy.geodesici-module.html#_c__\npygeodesy.geodesici._o__\tpygeodesy.geodesici-module.html#_o__\npygeodesy.geodesici._L1\tpygeodesy.geodesici-module.html#_L1\npygeodesy.geodesici.unstr\tpygeodesy.streprs-module.html#unstr\npygeodesy.geodesici._i__\tpygeodesy.geodesici-module.html#_i__\npygeodesy.geodesici._TRIPS\tpygeodesy.geodesici-module.html#_TRIPS\npygeodesy.geodesici.radians\tpygeodesy.utily-module.html#radians\npygeodesy.geodesici._xinstanceof\tpygeodesy.basics-module.html#_xinstanceof\npygeodesy.geodesici._lonA_\tpygeodesy.geodesici-module.html#_lonA_\npygeodesy.geodesici.x\tpygeodesy.geodesici-module.html#x\npygeodesy.geodesici.isfinite\tpygeodesy.constants-module.html#isfinite\npygeodesy.geodesici._main\tpygeodesy.geodesici-module.html#_main\npygeodesy.geodesici._diff182\tpygeodesy.karney-module.html#_diff182\npygeodesy.geodesici._Pass\tpygeodesy.named-module.html#_Pass\npygeodesy.geodesici.euclid\tpygeodesy.fmath-module.html#euclid\npygeodesy.geodesici.__all__\tpygeodesy.geodesici-module.html#__all__\npygeodesy.geodesici._cWGS84\tpygeodesy.geodesici-module.html#_cWGS84\npygeodesy.geodesici.XDict_\tpygeodesy.geodesici-module.html#XDict_\npygeodesy.geodesici._n__\tpygeodesy.geodesici-module.html#_n__\npygeodesy.geodesici.fsum1_\tpygeodesy.fsums-module.html#fsum1_\npygeodesy.geodesici._EPSr5\tpygeodesy.geodesici-module.html#_EPSr5\npygeodesy.geodesici.pairs\tpygeodesy.streprs-module.html#pairs\npygeodesy.geodesici._enumereverse\tpygeodesy.basics-module.html#_enumereverse\npygeodesy.geodesici._0t\tpygeodesy.geodesici-module.html#_0t\npygeodesy.geodesici._xkwds_kwds\tpygeodesy.errors-module.html#_xkwds_kwds\npygeodesy.geodesici._xkwds_get\tpygeodesy.errors-module.html#_xkwds_get\npygeodesy.geodesici._aAB_\tpygeodesy.geodesici-module.html#_aAB_\npygeodesy.geodesici._1_1t\tpygeodesy.geodesici-module.html#_1_1t\npygeodesy.geodesici._ALL_DOCS\tpygeodesy.lazily-module.html#_ALL_OTHER\npygeodesy.geodesici._EPS3\tpygeodesy.geodesici-module.html#_EPS3\npygeodesy.geodesici._xor\tpygeodesy.basics-module.html#_xor\npygeodesy.geodesici._isDegrees\tpygeodesy.units-module.html#_isDegrees\npygeodesy.geodesici._X000\tpygeodesy.geodesici-module.html#_X000\npygeodesy.geodesici.__help_\tpygeodesy.geodesici-module.html#__help_\npygeodesy.geodesici.typename\tpygeodesy.internals-module.html#typename\npygeodesy.geodesici._ceil\tpygeodesy.trf-module.html#_ceil\npygeodesy.geodesici._examples\tpygeodesy.geodesici-module.html#_examples\npygeodesy.geodesici._sincos2de\tpygeodesy.karney-module.html#_sincos2de\npygeodesy.geodesici._xkwds_pop2\tpygeodesy.errors-module.html#_xkwds_pop2\npygeodesy.geodesici.fabs\tpygeodesy.booleans-module.html#fabs\npygeodesy.geodesici.sincos2\tpygeodesy.utily-module.html#sincos2\npygeodesy.geodesici._latA_\tpygeodesy.geodesici-module.html#_latA_\npygeodesy.geodesici.__package__\tpygeodesy.geodesici-module.html#__package__\npygeodesy.geodesici.deprecated_method\tpygeodesy.props-module.html#deprecated_method\npygeodesy.geodesici._R__\tpygeodesy.geodesici-module.html#_R__\npygeodesy.geodesici._XINF\tpygeodesy.geodesici-module.html#_XINF\npygeodesy.geodesici._an\tpygeodesy.errors-module.html#_an\npygeodesy.geodesici.atan2\tpygeodesy.utily-module.html#atan2\npygeodesy.geodesici.map1\tpygeodesy.basics-module.html#map1\npygeodesy.geodesici.fdot\tpygeodesy.fmath-module.html#fdot\npygeodesy.geodesici._1_0_1t\tpygeodesy.geodesici-module.html#_1_0_1t\npygeodesy.geodesicw\tpygeodesy.geodesicw-module.html\npygeodesy.geodesicw.unstr\tpygeodesy.streprs-module.html#unstr\npygeodesy.geodesicw._unrollon\tpygeodesy.utily-module.html#_unrollon\npygeodesy.geodesicw.__package__\tpygeodesy.geodesicw-module.html#__package__\npygeodesy.geodesicw._atan2d\tpygeodesy.karney-module.html#_atan2d\npygeodesy.geodesicw._wrapped\tpygeodesy.geodesicw-module.html#_wrapped\npygeodesy.geodesicw._earth_datum\tpygeodesy.datums-module.html#_earth_datum\npygeodesy.geodesicw.fabs\tpygeodesy.booleans-module.html#fabs\npygeodesy.geodesicw._name2__\tpygeodesy.named-module.html#_name2__\npygeodesy.geodesicw.Geodesic_WGS84\tpygeodesy.geodesicw-module.html#Geodesic_WGS84\npygeodesy.geodesicw._name1__\tpygeodesy.named-module.html#_name1__\npygeodesy.geodesicw._wargs\tpygeodesy.geodesicw-module.html#_wargs\npygeodesy.geodesicw.callername\tpygeodesy.named-module.html#callername\npygeodesy.geodesicw._plumb_\tpygeodesy.geodesicw-module.html#_plumb_\npygeodesy.geodesicw._Intersecant2\tpygeodesy.geodesicw-module.html#_Intersecant2\npygeodesy.geodesicw._under\tpygeodesy.internals-module.html#_under\npygeodesy.geodesicw.__all__\tpygeodesy.geodesicw-module.html#__all__\npygeodesy.geodesicw._PlumbTo\tpygeodesy.geodesicw-module.html#_PlumbTo\npygeodesy.geodesicw.classname\tpygeodesy.named-module.html#classname\npygeodesy.geodesicw._copysign\tpygeodesy.geodesicx.gx-module.html#copysign\npygeodesy.geodesicw._TRIPS\tpygeodesy.geodesicw-module.html#_TRIPS\npygeodesy.geodesicw.typename\tpygeodesy.internals-module.html#typename\npygeodesy.geodesicw._xinstanceof\tpygeodesy.basics-module.html#_xinstanceof\npygeodesy.geodesicw.wrap360\tpygeodesy.utily-module.html#wrap360\npygeodesy.geodesicx\tpygeodesy.geodesicx-module.html\npygeodesy.geodesicx._ALL_LAZY\tpygeodesy.geodesicx-module.html#_ALL_LAZY\npygeodesy.geodesicx.__package__\tpygeodesy.geodesicx-module.html#__package__\npygeodesy.geodesicx._ALL_DOCS\tpygeodesy.lazily-module.html#_ALL_OTHER\npygeodesy.geodesicx._C4_24\tpygeodesy.geodesicx._C4_24-module.html\npygeodesy.geodesicx._C4_24._coeffs_24\tpygeodesy.geodesicx._C4_24-module.html#_coeffs_24\npygeodesy.geodesicx._C4_24.__package__\tpygeodesy.geodesicx._C4_24-module.html#__package__\npygeodesy.geodesicx._C4_27\tpygeodesy.geodesicx._C4_27-module.html\npygeodesy.geodesicx._C4_27._coeffs_27\tpygeodesy.geodesicx._C4_27-module.html#_coeffs_27\npygeodesy.geodesicx._C4_27.__package__\tpygeodesy.geodesicx._C4_27-module.html#__package__\npygeodesy.geodesicx._C4_30\tpygeodesy.geodesicx._C4_30-module.html\npygeodesy.geodesicx._C4_30._coeffs_30\tpygeodesy.geodesicx._C4_30-module.html#_coeffs_30\npygeodesy.geodesicx._C4_30.__package__\tpygeodesy.geodesicx._C4_30-module.html#__package__\npygeodesy.geodesicx.__main__\tpygeodesy.geodesicx.__main__-module.html\npygeodesy.geodesicx.__main__._main\tpygeodesy.geodesicx.__main__-module.html#_main\npygeodesy.geodesicx.__main__.__package__\tpygeodesy.geodesicx.__main__-module.html#__package__\npygeodesy.geodesicx.gx\tpygeodesy.geodesicx.gx-module.html\npygeodesy.geodesicx.gx._polynomial\tpygeodesy.karney-module.html#_polynomial\npygeodesy.geodesicx.gx.fsum1f_\tpygeodesy.fsums-module.html#fsum1f_\npygeodesy.geodesicx.gx._norm2\tpygeodesy.karney-module.html#_norm2\npygeodesy.geodesicx.gx._cosSeries\tpygeodesy.geodesicx.gxbases-module.html#_cosSeries\npygeodesy.geodesicx.gx._TOLb\tpygeodesy.geodesicx.gx-module.html#_TOLb\npygeodesy.geodesicx.gx.fsumf_\tpygeodesy.fsums-module.html#fsumf_\npygeodesy.geodesicx.gx._eTOL2\tpygeodesy.geodesicx.gx-module.html#_eTOL2\npygeodesy.geodesicx.gx._sinf1cos2d\tpygeodesy.geodesicx.gxbases-module.html#_sinf1cos2d\npygeodesy.geodesicx.gx._TOL1\tpygeodesy.geodesicx.gx-module.html#_TOL1\npygeodesy.geodesicx.gx._TOL0\tpygeodesy.geodesicx.gx-module.html#_TOL0\npygeodesy.geodesicx.gx._TINY3\tpygeodesy.geodesicx.gx-module.html#_TINY3\npygeodesy.geodesicx.gx._TOL2\tpygeodesy.geodesicx.gx-module.html#_TOL2\npygeodesy.geodesicx.gx.typename\tpygeodesy.internals-module.html#typename\npygeodesy.geodesicx.gx._xinstanceof\tpygeodesy.basics-module.html#_xinstanceof\npygeodesy.geodesicx.gx._sincos2d\tpygeodesy.karney-module.html#_sincos2d\npygeodesy.geodesicx.gx._diff182\tpygeodesy.karney-module.html#_diff182\npygeodesy.geodesicx.gx._toNAN\tpygeodesy.geodesicx.gxbases-module.html#_toNAN\npygeodesy.geodesicx.gx.hypot\tpygeodesy.fmath-module.html#hypot\npygeodesy.geodesicx.gx._norm180\tpygeodesy.karney-module.html#_norm180\npygeodesy.geodesicx.gx._atan2d\tpygeodesy.karney-module.html#_atan2d\npygeodesy.geodesicx.gx._cbrt\tpygeodesy.karney-module.html#_cbrt\npygeodesy.geodesicx.gx.isnan\tpygeodesy.constants-module.html#isnan\npygeodesy.geodesicx.gx._atan2d_reverse\tpygeodesy.utily-module.html#atan2d\npygeodesy.geodesicx.gx._unsigned2\tpygeodesy.karney-module.html#_unsigned2\npygeodesy.geodesicx.gx._xnC4\tpygeodesy.geodesicx.gxbases-module.html#_xnC4\npygeodesy.geodesicx.gx.fdot_\tpygeodesy.fmath-module.html#fdot_\npygeodesy.geodesicx.gx._THR1\tpygeodesy.geodesicx.gx-module.html#_THR1\npygeodesy.geodesicx.gx._fix90\tpygeodesy.karney-module.html#_fix90\npygeodesy.geodesicx.gx._C4coeffs\tpygeodesy.geodesicx.gx-module.html#_C4coeffs\npygeodesy.geodesicx.gx._ALL_DOCS\tpygeodesy.lazily-module.html#_ALL_OTHER\npygeodesy.geodesicx.gx._TOL08\tpygeodesy.geodesicx.gx-module.html#_TOL08\npygeodesy.geodesicx.gx._xor\tpygeodesy.basics-module.html#_xor\npygeodesy.geodesicx.gx.wrap360\tpygeodesy.utily-module.html#wrap360\npygeodesy.geodesicx.gx._TOL016\tpygeodesy.geodesicx.gx-module.html#_TOL016\npygeodesy.geodesicx.gx._sincos2de\tpygeodesy.karney-module.html#_sincos2de\npygeodesy.geodesicx.gx._update_glXs\tpygeodesy.geodesicx.gxline-module.html#_update_glXs\npygeodesy.geodesicx.gx._sin1cos2\tpygeodesy.geodesicx.gxbases-module.html#_sin1cos2\npygeodesy.geodesicx.gx._TOL3\tpygeodesy.geodesicx.gx-module.html#_TOL3\npygeodesy.geodesicx.gx._MAXIT2\tpygeodesy.geodesicx.gx-module.html#_MAXIT2\npygeodesy.geodesicx.gx._MAXIT1\tpygeodesy.geodesicx.gx-module.html#_MAXIT1\npygeodesy.geodesicx.gx.hypot2\tpygeodesy.fmath-module.html#hypot2\npygeodesy.geodesicx.gx._atan12\tpygeodesy.geodesicx.gx-module.html#_atan12\npygeodesy.geodesicx.gx._Astroid\tpygeodesy.geodesicx.gx-module.html#_Astroid\npygeodesy.geodesicx.gx.unsigned0\tpygeodesy.basics-module.html#unsigned0\npygeodesy.geodesicx.gx._xkwds_pop2\tpygeodesy.errors-module.html#_xkwds_pop2\npygeodesy.geodesicx.gx.atan2\tpygeodesy.utily-module.html#atan2\npygeodesy.geodesicx.gx._sincos12\tpygeodesy.geodesicx.gxbases-module.html#_sincos12\npygeodesy.geodesicx.gx.__package__\tpygeodesy.geodesicx.gx-module.html#__package__\npygeodesy.geodesicx.gx._earth_datum\tpygeodesy.datums-module.html#_earth_datum\npygeodesy.geodesicx.gx._sincos2\tpygeodesy.karney-module.html#_sincos2\npygeodesy.geodesicx.gx._around\tpygeodesy.karney-module.html#_around\npygeodesy.geodesicx.gx._copysign\tpygeodesy.geodesicx.gx-module.html#copysign\npygeodesy.geodesicx.gx._unrollon\tpygeodesy.utily-module.html#_unrollon\npygeodesy.geodesicx.gx._signBit\tpygeodesy.basics-module.html#signBit\npygeodesy.geodesicx.gxarea\tpygeodesy.geodesicx.gxarea-module.html\npygeodesy.geodesicx.gxarea.unsigned0\tpygeodesy.basics-module.html#unsigned0\npygeodesy.geodesicx.gxarea._diff182\tpygeodesy.karney-module.html#_diff182\npygeodesy.geodesicx.gxarea._remainder\tpygeodesy.karney-module.html#_remainder\npygeodesy.geodesicx.gxarea._s_t2\tpygeodesy.geodesicx.gxarea-module.html#_s_t2\npygeodesy.geodesicx.gxarea.printf\tpygeodesy.internals-module.html#printf\npygeodesy.geodesicx.gxarea._ALL_DOCS\tpygeodesy.lazily-module.html#_ALL_OTHER\npygeodesy.geodesicx.gxarea.callername\tpygeodesy.named-module.html#callername\npygeodesy.geodesicx.gxarea.__package__\tpygeodesy.geodesicx.gxarea-module.html#__package__\npygeodesy.geodesicx.gxarea._fma\tpygeodesy.fmath-module.html#_fma\npygeodesy.geodesicx.gxarea._sum2\tpygeodesy.karney-module.html#_sum2\npygeodesy.geodesicx.gxarea.pairs\tpygeodesy.streprs-module.html#pairs\npygeodesy.geodesicx.gxarea.isodd\tpygeodesy.basics-module.html#isodd\npygeodesy.geodesicx.gxarea._copysign\tpygeodesy.geodesicx.gx-module.html#copysign\npygeodesy.geodesicx.gxarea._norm180\tpygeodesy.karney-module.html#_norm180\npygeodesy.geodesicx.gxarea.typename\tpygeodesy.internals-module.html#typename\npygeodesy.geodesicx.gxbases\tpygeodesy.geodesicx.gxbases-module.html\npygeodesy.geodesicx.gxbases._sincos2d\tpygeodesy.karney-module.html#_sincos2d\npygeodesy.geodesicx.gxbases._hypot\tpygeodesy.fmath-module.html#hypot\npygeodesy.geodesicx.gxbases._2cos2x\tpygeodesy.karney-module.html#_2cos2x\npygeodesy.geodesicx.gxbases._nC4s\tpygeodesy.geodesicx.gxbases-module.html#_nC4s\npygeodesy.geodesicx.gxbases._sincos12\tpygeodesy.geodesicx.gxbases-module.html#_sincos12\npygeodesy.geodesicx.gxbases._norm2\tpygeodesy.karney-module.html#_norm2\npygeodesy.geodesicx.gxbases.__package__\tpygeodesy.geodesicx.gxbases-module.html#__package__\npygeodesy.geodesicx.gxbases._cosSeries\tpygeodesy.geodesicx.gxbases-module.html#_cosSeries\npygeodesy.geodesicx.gxbases._f2\tpygeodesy.geodesicx.gxbases-module.html#_f2\npygeodesy.geodesicx.gxbases._sum3\tpygeodesy.karney-module.html#_sum3\npygeodesy.geodesicx.gxbases._toNAN\tpygeodesy.geodesicx.gxbases-module.html#_toNAN\npygeodesy.geodesicx.gxbases._sinf1cos2d\tpygeodesy.geodesicx.gxbases-module.html#_sinf1cos2d\npygeodesy.geodesicx.gxbases._xkwds_item2\tpygeodesy.errors-module.html#_xkwds_item2\npygeodesy.geodesicx.gxbases.isodd\tpygeodesy.basics-module.html#isodd\npygeodesy.geodesicx.gxbases._sin1cos2\tpygeodesy.geodesicx.gxbases-module.html#_sin1cos2\npygeodesy.geodesicx.gxbases._or\tpygeodesy.errors-module.html#_or\npygeodesy.geodesicx.gxbases.isfinite\tpygeodesy.constants-module.html#isfinite\npygeodesy.geodesicx.gxbases._xnC4\tpygeodesy.geodesicx.gxbases-module.html#_xnC4\npygeodesy.geodesicx.gxline\tpygeodesy.geodesicx.gxline-module.html\npygeodesy.geodesicx.gxline._sincos2d\tpygeodesy.karney-module.html#_sincos2d\npygeodesy.geodesicx.gxline.fsum1f_\tpygeodesy.fsums-module.html#fsum1f_\npygeodesy.geodesicx.gxline._fix90\tpygeodesy.karney-module.html#_fix90\npygeodesy.geodesicx.gxline._ALL_DOCS\tpygeodesy.lazily-module.html#_ALL_OTHER\npygeodesy.geodesicx.gxline._atan2d\tpygeodesy.karney-module.html#_atan2d\npygeodesy.geodesicx.gxline._atan2d_reverse\tpygeodesy.utily-module.html#atan2d\npygeodesy.geodesicx.gxline.sincos2\tpygeodesy.utily-module.html#sincos2\npygeodesy.geodesicx.gxline._sincos12\tpygeodesy.geodesicx.gxbases-module.html#_sincos12\npygeodesy.geodesicx.gxline._glXs\tpygeodesy.geodesicx.gxline-module.html#_glXs\npygeodesy.geodesicx.gxline.__package__\tpygeodesy.geodesicx.gxline-module.html#__package__\npygeodesy.geodesicx.gxline._toNAN\tpygeodesy.geodesicx.gxbases-module.html#_toNAN\npygeodesy.geodesicx.gxline._cosSeries\tpygeodesy.geodesicx.gxbases-module.html#_cosSeries\npygeodesy.geodesicx.gxline._xError\tpygeodesy.errors-module.html#_xError\npygeodesy.geodesicx.gxline.fsumf_\tpygeodesy.fsums-module.html#fsumf_\npygeodesy.geodesicx.gxline._sincos2\tpygeodesy.karney-module.html#_sincos2\npygeodesy.geodesicx.gxline.fremainder\tpygeodesy.fmath-module.html#fremainder\npygeodesy.geodesicx.gxline._update_all\tpygeodesy.props-module.html#_update_all\npygeodesy.geodesicx.gxline._update_glXs\tpygeodesy.geodesicx.gxline-module.html#_update_glXs\npygeodesy.geodesicx.gxline._norm2\tpygeodesy.karney-module.html#_norm2\npygeodesy.geodesicx.gxline._sinf1cos2d\tpygeodesy.geodesicx.gxbases-module.html#_sinf1cos2d\npygeodesy.geodesicx.gxline._xGeodesicExact\tpygeodesy.geodesicx.gxline-module.html#_xGeodesicExact\npygeodesy.geodesicx.gxline._sin1cos2\tpygeodesy.geodesicx.gxbases-module.html#_sin1cos2\npygeodesy.geodesicx.gxline._around\tpygeodesy.karney-module.html#_around\npygeodesy.geodesicx.gxline._llz2gl\tpygeodesy.karney-module.html#_llz2gl\npygeodesy.geodesicx.gxline._xkwds_pop2\tpygeodesy.errors-module.html#_xkwds_pop2\npygeodesy.geodesicx.gxline._copysign_1_0\tpygeodesy.constants-module.html#_copysign_1_0\npygeodesy.geodesicx.gxline._norm180\tpygeodesy.karney-module.html#_norm180\npygeodesy.geodesicx.gxline.isfinite\tpygeodesy.constants-module.html#isfinite\npygeodesy.geodesicx.gxline.atan2\tpygeodesy.utily-module.html#atan2\npygeodesy.geodsolve\tpygeodesy.geodsolve-module.html\npygeodesy.geodsolve._main\tpygeodesy.geodsolve-module.html#_main\npygeodesy.geodsolve._sincos2d\tpygeodesy.karney-module.html#_sincos2d\npygeodesy.geodsolve.wrap360\tpygeodesy.utily-module.html#wrap360\npygeodesy.geodsolve._Pass\tpygeodesy.named-module.html#_Pass\npygeodesy.geodsolve._ALL_DOCS\tpygeodesy.lazily-module.html#_ALL_OTHER\npygeodesy.geodsolve._unrollon\tpygeodesy.utily-module.html#_unrollon\npygeodesy.geodsolve._xinstanceof\tpygeodesy.basics-module.html#_xinstanceof\npygeodesy.geodsolve.__all__\tpygeodesy.geodsolve-module.html#__all__\npygeodesy.geodsolve.__package__\tpygeodesy.geodsolve-module.html#__package__\npygeodesy.geohash\tpygeodesy.geohash-module.html\npygeodesy.geohash.neighbors\tpygeodesy.geohash-module.html#neighbors\npygeodesy.geohash.decode_error\tpygeodesy.geohash-module.html#decode_error\npygeodesy.geohash._xkwds\tpygeodesy.errors-module.html#_xkwds\npygeodesy.geohash._2mid_ndigits\tpygeodesy.geohash-module.html#_2mid_ndigits\npygeodesy.geohash._Neighbors8Defaults\tpygeodesy.geohash-module.html#_Neighbors8Defaults\npygeodesy.geohash.distance_\tpygeodesy.geohash-module.html#distance_\npygeodesy.geohash._xnamed\tpygeodesy.named-module.html#_xnamed\npygeodesy.geohash._name__\tpygeodesy.named-module.html#_name__\npygeodesy.geohash.euclidean_\tpygeodesy.geohash-module.html#euclidean_\npygeodesy.geohash.distance2\tpygeodesy.geohash-module.html#distance2\npygeodesy.geohash.distance3\tpygeodesy.geohash-module.html#distance3\npygeodesy.geohash.distance1\tpygeodesy.geohash-module.html#distance1\npygeodesy.geohash.equirectangular4\tpygeodesy.geohash-module.html#equirectangular4\npygeodesy.geohash._2bounds\tpygeodesy.geohash-module.html#_2bounds\npygeodesy.geohash._2Geohash\tpygeodesy.geohash-module.html#_2Geohash\npygeodesy.geohash.sizes\tpygeodesy.geohash-module.html#sizes\npygeodesy.geohash.isstr\tpygeodesy.basics-module.html#isstr\npygeodesy.geohash._GH\tpygeodesy.geohash-module.html#_GH\npygeodesy.geohash._splituple\tpygeodesy.basics-module.html#_splituple\npygeodesy.geohash.__all__\tpygeodesy.geohash-module.html#__all__\npygeodesy.geohash._2Precision\tpygeodesy.geohash-module.html#_2Precision\npygeodesy.geohash.decode2\tpygeodesy.geohash-module.html#decode2\npygeodesy.geohash._ALL_DOCS\tpygeodesy.lazily-module.html#_ALL_OTHER\npygeodesy.geohash.haversine_\tpygeodesy.geohash-module.html#haversine_\npygeodesy.geohash.decode\tpygeodesy.geohash-module.html#decode\npygeodesy.geohash.encode\tpygeodesy.geohash-module.html#encode\npygeodesy.geohash._xStrError\tpygeodesy.errors-module.html#_xStrError\npygeodesy.geohash.precision\tpygeodesy.geohash-module.html#precision\npygeodesy.geohash.deprecated_property_RO\tpygeodesy.props-module.html#deprecated_property_RO\npygeodesy.geohash.decode_error2\tpygeodesy.geohash-module.html#decode_error2\npygeodesy.geohash.resolution2\tpygeodesy.geohash-module.html#resolution2\npygeodesy.geohash.vincentys_\tpygeodesy.geohash-module.html#vincentys_\npygeodesy.geohash._2latlon\tpygeodesy.geohash-module.html#_2latlon\npygeodesy.geohash.bounds\tpygeodesy.geohash-module.html#bounds\npygeodesy.geohash.deprecated_function\tpygeodesy.props-module.html#deprecated_function\npygeodesy.geohash._2mid\tpygeodesy.geohash-module.html#_2mid\npygeodesy.geohash._2res\tpygeodesy.geohash-module.html#_2res\npygeodesy.geohash._formy\tpygeodesy.geohash-module.html#_formy\npygeodesy.geohash.sizes3\tpygeodesy.geohash-module.html#sizes3\npygeodesy.geohash._2fll\tpygeodesy.geohash-module.html#_2fll\npygeodesy.geohash.nameof\tpygeodesy.named-module.html#nameof\npygeodesy.geohash.__package__\tpygeodesy.geohash-module.html#__package__\npygeodesy.geohash.deprecated_method\tpygeodesy.props-module.html#deprecated_method\npygeodesy.geohash._MASK5\tpygeodesy.geohash-module.html#_MASK5\npygeodesy.geohash._2center\tpygeodesy.geohash-module.html#_2center\npygeodesy.geohash.map2\tpygeodesy.basics-module.html#map2\npygeodesy.geohash._2dab\tpygeodesy.geohash-module.html#_2dab\npygeodesy.geohash._MaxPrec\tpygeodesy.geohash-module.html#_MaxPrec\npygeodesy.geoids\tpygeodesy.geoids-module.html\npygeodesy.geoids.attrs\tpygeodesy.streprs-module.html#attrs\npygeodesy.geoids._rb_\tpygeodesy.geoids-module.html#_rb_\npygeodesy.geoids._F\tpygeodesy.constants-module.html#_float\npygeodesy.geoids.geoids\tpygeodesy.geoids-module.html#geoids\npygeodesy.geoids.egmGeoidHeights\tpygeodesy.geoids-module.html#egmGeoidHeights\npygeodesy.geoids.frange\tpygeodesy.fmath-module.html#frange\npygeodesy.geoids._name__\tpygeodesy.named-module.html#_name__\npygeodesy.geoids._ellipsoidal_datum\tpygeodesy.datums-module.html#_ellipsoidal_datum\npygeodesy.geoids._format_\tpygeodesy.geoids-module.html#_format_\npygeodesy.geoids._bHASH_\tpygeodesy.geoids-module.html#_bHASH_\npygeodesy.geoids.__all__\tpygeodesy.geoids-module.html#__all__\npygeodesy.geoids._supported_\tpygeodesy.geoids-module.html#_supported_\npygeodesy.geoids._isin\tpygeodesy.basics-module.html#_isin\npygeodesy.geoids._as_llis2\tpygeodesy.heights-module.html#_as_llis2\npygeodesy.geoids.favg\tpygeodesy.fmath-module.html#favg\npygeodesy.geoids._lonE2lon\tpygeodesy.geoids-module.html#_lonE2lon\npygeodesy.geoids._lon2lonE\tpygeodesy.geoids-module.html#_lon2lonE\npygeodesy.geoids.isodd\tpygeodesy.basics-module.html#isodd\npygeodesy.geoids._ALL_DOCS\tpygeodesy.lazily-module.html#_ALL_OTHER\npygeodesy.geoids._assert_\tpygeodesy.geoids-module.html#_assert_\npygeodesy.geoids._endian_\tpygeodesy.geoids-module.html#_endian_\npygeodesy.geoids._kind\tpygeodesy.geoids-module.html#_kind\npygeodesy.geoids.pairs\tpygeodesy.streprs-module.html#pairs\npygeodesy.geoids._crop\tpygeodesy.geoids-module.html#_crop\npygeodesy.geoids._incompatible\tpygeodesy.errors-module.html#_incompatible\npygeodesy.geoids._SciPyIssue\tpygeodesy.errors-module.html#_SciPyIssue\npygeodesy.geoids._ascalar\tpygeodesy.heights-module.html#_ascalar\npygeodesy.geoids.len2\tpygeodesy.basics-module.html#len2\npygeodesy.geoids._splituple\tpygeodesy.basics-module.html#_splituple\npygeodesy.geoids._xkwds_pop2\tpygeodesy.errors-module.html#_xkwds_pop2\npygeodesy.geoids.__package__\tpygeodesy.geoids-module.html#__package__\npygeodesy.geoids._header_\tpygeodesy.geoids-module.html#_header_\npygeodesy.geoids.fstr\tpygeodesy.streprs-module.html#fstr\npygeodesy.geoids.min2\tpygeodesy.basics-module.html#min2\npygeodesy.geoids._lli_\tpygeodesy.geoids-module.html#_lli_\npygeodesy.hausdorff\tpygeodesy.hausdorff-module.html\npygeodesy.hausdorff._formy\tpygeodesy.hausdorff-module.html#_formy\npygeodesy.hausdorff._xkwds\tpygeodesy.errors-module.html#_xkwds\npygeodesy.hausdorff._xkwds_get\tpygeodesy.errors-module.html#_xkwds_get\npygeodesy.hausdorff.__all__\tpygeodesy.hausdorff-module.html#__all__\npygeodesy.hausdorff._Pass\tpygeodesy.named-module.html#_Pass\npygeodesy.hausdorff.randomrangenerator\tpygeodesy.hausdorff-module.html#randomrangenerator\npygeodesy.hausdorff._distanceTo\tpygeodesy.points-module.html#_distanceTo\npygeodesy.hausdorff.__package__\tpygeodesy.hausdorff-module.html#__package__\npygeodesy.hausdorff._isin\tpygeodesy.basics-module.html#_isin\npygeodesy.hausdorff._xcallable\tpygeodesy.errors-module.html#_xcallable\npygeodesy.hausdorff._ellipsoidal_datum\tpygeodesy.datums-module.html#_ellipsoidal_datum\npygeodesy.hausdorff.hausdorff_\tpygeodesy.hausdorff-module.html#hausdorff_\npygeodesy.hausdorff.property_doc_\tpygeodesy.props-module.html#property_doc_\npygeodesy.hausdorff._point\tpygeodesy.hausdorff-module.html#_point\npygeodesy.hausdorff._name2__\tpygeodesy.named-module.html#_name2__\npygeodesy.hausdorff.radians\tpygeodesy.utily-module.html#radians\npygeodesy.hausdorff._points2\tpygeodesy.iters-module.html#points2\npygeodesy.hausdorff._hausdorff_\tpygeodesy.hausdorff-module.html#_hausdorff_\npygeodesy.hausdorff._xattr\tpygeodesy.errors-module.html#_xattr\npygeodesy.heights\tpygeodesy.heights-module.html\npygeodesy.heights._formy\tpygeodesy.heights-module.html#_formy\npygeodesy.heights._linear_\tpygeodesy.heights-module.html#_linear_\npygeodesy.heights._SciPyIssue\tpygeodesy.errors-module.html#_SciPyIssue\npygeodesy.heights.radians\tpygeodesy.utily-module.html#radians\npygeodesy.heights._orderedup\tpygeodesy.heights-module.html#_orderedup\npygeodesy.heights.len2\tpygeodesy.basics-module.html#len2\npygeodesy.heights._ALL_DOCS\tpygeodesy.lazily-module.html#_ALL_OTHER\npygeodesy.heights.isscalar\tpygeodesy.basics-module.html#isscalar\npygeodesy.heights._distanceTo\tpygeodesy.points-module.html#_distanceTo\npygeodesy.heights.min2\tpygeodesy.basics-module.html#min2\npygeodesy.heights._error_\tpygeodesy.heights-module.html#_error_\npygeodesy.heights._xscipy\tpygeodesy.basics-module.html#_xscipy\npygeodesy.heights._as_llis2\tpygeodesy.heights-module.html#_as_llis2\npygeodesy.heights._atuple\tpygeodesy.heights-module.html#_atuple\npygeodesy.heights._alist\tpygeodesy.heights-module.html#_alist\npygeodesy.heights._xkwds_get\tpygeodesy.errors-module.html#_xkwds_get\npygeodesy.heights._InsufficientError\tpygeodesy.heights-module.html#_InsufficientError\npygeodesy.heights._isDegrees\tpygeodesy.units-module.html#_isDegrees\npygeodesy.heights._xkwds\tpygeodesy.errors-module.html#_xkwds\npygeodesy.heights._ellipsoidal_datum\tpygeodesy.datums-module.html#_ellipsoidal_datum\npygeodesy.heights._xyhs\tpygeodesy.heights-module.html#_xyhs\npygeodesy.heights.__all__\tpygeodesy.heights-module.html#__all__\npygeodesy.heights._ascalar\tpygeodesy.heights-module.html#_ascalar\npygeodesy.heights._name2__\tpygeodesy.named-module.html#_name2__\npygeodesy.heights._xkwds_item2\tpygeodesy.errors-module.html#_xkwds_item2\npygeodesy.heights.map1\tpygeodesy.basics-module.html#map1\npygeodesy.heights._llis_\tpygeodesy.heights-module.html#_llis_\npygeodesy.heights.__package__\tpygeodesy.heights-module.html#__package__\npygeodesy.heights._xnumpy\tpygeodesy.basics-module.html#_xnumpy\npygeodesy.heights._xattr\tpygeodesy.errors-module.html#_xattr\npygeodesy.internals\tpygeodesy.internals-module.html\npygeodesy.internals._print7\tpygeodesy.internals-module.html#_print7\npygeodesy.internals._macOS_\tpygeodesy.internals-module.html#_macOS_\npygeodesy.internals._NL_\tpygeodesy.internals-module.html#_NL_\npygeodesy.internals._fper\tpygeodesy.internals-module.html#_fper\npygeodesy.internals._BAR_\tpygeodesy.internals-module.html#_BAR_\npygeodesy.internals._usage_argv\tpygeodesy.internals-module.html#_usage_argv\npygeodesy.internals._passarg\tpygeodesy.internals-module.html#_passarg\npygeodesy.internals._sizeof\tpygeodesy.internals-module.html#_sizeof\npygeodesy.internals._DOT_\tpygeodesy.internals-module.html#_DOT_\npygeodesy.internals._DASH_\tpygeodesy.internals-module.html#_DASH_\npygeodesy.internals._versions\tpygeodesy.internals-module.html#_versions\npygeodesy.internals._usage\tpygeodesy.internals-module.html#_usage\npygeodesy.internals.printf\tpygeodesy.internals-module.html#printf\npygeodesy.internals._version_info\tpygeodesy.internals-module.html#_version_info\npygeodesy.internals._load_lib\tpygeodesy.internals-module.html#_load_lib\npygeodesy.internals._secs2str\tpygeodesy.internals-module.html#_secs2str\npygeodesy.internals._UNDER_\tpygeodesy.internals-module.html#_UNDER_\npygeodesy.internals._osversion2\tpygeodesy.internals-module.html#_osversion2\npygeodesy.internals._PyPy__\tpygeodesy.internals-module.html#_PyPy__\npygeodesy.internals._100_0\tpygeodesy.internals-module.html#_100_0\npygeodesy.internals._python_\tpygeodesy.internals-module.html#_python_\npygeodesy.internals._plural\tpygeodesy.internals-module.html#_plural\npygeodesy.internals._sysctl_uint\tpygeodesy.internals-module.html#_sysctl_uint\npygeodesy.internals._QUOTE1_\tpygeodesy.internals-module.html#_QUOTE1_\npygeodesy.internals.print_\tpygeodesy.internals-module.html#print_\npygeodesy.internals.__package__\tpygeodesy.internals-module.html#__package__\npygeodesy.internals.machine\tpygeodesy.internals-module.html#machine\npygeodesy.internals._caller3\tpygeodesy.internals-module.html#_caller3\npygeodesy.internals._PYGEODESY_ENV\tpygeodesy.internals-module.html#_PYGEODESY_ENV\npygeodesy.internals._isNix\tpygeodesy.internals-module.html#_isNix\npygeodesy.internals._s_\tpygeodesy.internals-module.html#_s_\npygeodesy.internals._0_0\tpygeodesy.internals-module.html#_0_0\npygeodesy.internals._isPyChOK\tpygeodesy.internals-module.html#_isPyChOK\npygeodesy.internals._DMAIN_\tpygeodesy.internals-module.html#_DMAIN_\npygeodesy.internals._Python_\tpygeodesy.internals-module.html#_Python_\npygeodesy.internals._isWindows\tpygeodesy.internals-module.html#_isWindows\npygeodesy.internals._envPYGEODESY\tpygeodesy.internals-module.html#_envPYGEODESY\npygeodesy.internals._tailof\tpygeodesy.internals-module.html#_tailof\npygeodesy.internals._isAppleSi\tpygeodesy.internals-module.html#_isAppleSi\npygeodesy.internals._NLATvar_\tpygeodesy.internals-module.html#_NLATvar_\npygeodesy.internals._ImmutableError\tpygeodesy.internals-module.html#_ImmutableError\npygeodesy.internals._version2\tpygeodesy.internals-module.html#_version2\npygeodesy.internals._SPACE_\tpygeodesy.internals-module.html#_SPACE_\npygeodesy.internals._ismacOS\tpygeodesy.internals-module.html#_ismacOS\npygeodesy.internals._main\tpygeodesy.internals-module.html#_main\npygeodesy.internals._pregistry\tpygeodesy.internals-module.html#_pregistry\npygeodesy.internals._version_ints\tpygeodesy.internals-module.html#_version_ints\npygeodesy.internals._pygeodesy_\tpygeodesy.internals-module.html#_pygeodesy_\npygeodesy.internals._Property_RO\tpygeodesy.internals-module.html#_Property_RO\npygeodesy.internals._QUOTE2_\tpygeodesy.internals-module.html#_QUOTE2_\npygeodesy.internals._enquote\tpygeodesy.internals-module.html#_enquote\npygeodesy.internals._iOS_\tpygeodesy.internals-module.html#_iOS_\npygeodesy.internals.NN\tpygeodesy.internals-module.html#NN\npygeodesy.internals._COMMA_\tpygeodesy.internals-module.html#_COMMA_\npygeodesy.internals._isiOS\tpygeodesy.internals-module.html#_isiOS\npygeodesy.internals._arm64_\tpygeodesy.internals-module.html#_arm64_\npygeodesy.internals._SIsecs\tpygeodesy.internals-module.html#_SIsecs\npygeodesy.internals._headof\tpygeodesy.internals-module.html#_headof\npygeodesy.internals._isPyPy\tpygeodesy.internals-module.html#_isPyPy\npygeodesy.internals._under\tpygeodesy.internals-module.html#_under\npygeodesy.internals._name_version\tpygeodesy.internals-module.html#_name_version\npygeodesy.internals._Pythonarchine\tpygeodesy.internals-module.html#_Pythonarchine\npygeodesy.internals._Windows_\tpygeodesy.internals-module.html#_Windows_\npygeodesy.internals.typename\tpygeodesy.internals-module.html#typename\npygeodesy.internals._passargs\tpygeodesy.internals-module.html#_passargs\npygeodesy.internals._COLON_\tpygeodesy.internals-module.html#_COLON_\npygeodesy.internals._MODS\tpygeodesy.internals-module.html#_MODS\npygeodesy.internals._popen2\tpygeodesy.internals-module.html#_popen2\npygeodesy.internals._ELLIPSIS_\tpygeodesy.internals-module.html#_ELLIPSIS_\npygeodesy.interns\tpygeodesy.interns-module.html\npygeodesy.interns._degrees_\tpygeodesy.interns-module.html#_degrees_\npygeodesy.interns._pygeodesy_abspath_\tpygeodesy.interns-module.html#_pygeodesy_abspath_\npygeodesy.interns._N_A_\tpygeodesy.interns-module.html#_N_A_\npygeodesy.interns._PERCENT_\tpygeodesy.interns-module.html#_PERCENT_\npygeodesy.interns._AMPERSAND_\tpygeodesy.interns-module.html#_AMPERSAND_\npygeodesy.interns._of_\tpygeodesy.interns-module.html#_of_\npygeodesy.interns._elevation_\tpygeodesy.interns-module.html#_elevation_\npygeodesy.interns._in_\tpygeodesy.interns-module.html#_in_\npygeodesy.interns._DDOT_\tpygeodesy.interns-module.html#_DDOT_\npygeodesy.interns._numpy_\tpygeodesy.interns-module.html#_numpy_\npygeodesy.interns._exists_\tpygeodesy.interns-module.html#_exists_\npygeodesy.interns._invalid_\tpygeodesy.interns-module.html#_invalid_\npygeodesy.interns._E_\tpygeodesy.interns-module.html#_E_\npygeodesy.interns._no_\tpygeodesy.interns-module.html#_no_\npygeodesy.interns._MANT_DIG_\tpygeodesy.interns-module.html#_MANT_DIG_\npygeodesy.interns._1_\tpygeodesy.interns-module.html#_1_\npygeodesy.interns._prime_vertical_\tpygeodesy.interns-module.html#_prime_vertical_\npygeodesy.interns._LSQUARE_\tpygeodesy.interns-module.html#_LSQUARE_\npygeodesy.interns._meter2_\tpygeodesy.interns-module.html#_meter2_\npygeodesy.interns._UNDER_\tpygeodesy.interns-module.html#_UNDER_\npygeodesy.interns._conversion_\tpygeodesy.interns-module.html#_conversion_\npygeodesy.interns._n_\tpygeodesy.interns-module.html#_n_\npygeodesy.interns._b_\tpygeodesy.interns-module.html#_b_\npygeodesy.interns._QUOTE3_\tpygeodesy.interns-module.html#_QUOTE3_\npygeodesy.interns._UNUSED_\tpygeodesy.interns-module.html#_UNUSED_\npygeodesy.interns._NS_\tpygeodesy.interns-module.html#_NS_\npygeodesy.interns._PyPy__\tpygeodesy.interns-module.html#_PyPy__\npygeodesy.interns._colinear_\tpygeodesy.interns-module.html#_colinear_\npygeodesy.interns._Krassovski1940_\tpygeodesy.interns-module.html#_Krassovski1940_\npygeodesy.interns._m12_\tpygeodesy.interns-module.html#_m12_\npygeodesy.interns._DSLASH_\tpygeodesy.interns-module.html#_DSLASH_\npygeodesy.interns._Clarke1880IGN_\tpygeodesy.interns-module.html#_Clarke1880IGN_\npygeodesy.interns._BAR_\tpygeodesy.interns-module.html#_BAR_\npygeodesy.interns._ellipsoid_\tpygeodesy.interns-module.html#_ellipsoid_\npygeodesy.interns._immutable_\tpygeodesy.interns-module.html#_immutable_\npygeodesy.interns._tolerance_\tpygeodesy.interns-module.html#_tolerance_\npygeodesy.interns._WGS72_\tpygeodesy.interns-module.html#_WGS72_\npygeodesy.interns._incompatible_\tpygeodesy.interns-module.html#_incompatible_\npygeodesy.interns._UPS_\tpygeodesy.interns-module.html#_UPS_\npygeodesy.interns._width_\tpygeodesy.interns-module.html#_width_\npygeodesy.interns._len_\tpygeodesy.interns-module.html#_len_\npygeodesy.interns._antipodal_\tpygeodesy.interns-module.html#_antipodal_\npygeodesy.interns._B_\tpygeodesy.interns-module.html#_B_\npygeodesy.interns._DUNDER_\tpygeodesy.interns-module.html#_DUNDER_\npygeodesy.interns._up_\tpygeodesy.interns-module.html#_up_\npygeodesy.interns._from_\tpygeodesy.interns-module.html#_from_\npygeodesy.interns._other_\tpygeodesy.interns-module.html#_other_\npygeodesy.interns._EW_\tpygeodesy.interns-module.html#_EW_\npygeodesy.interns._intersection_\tpygeodesy.interns-module.html#_intersection_\npygeodesy.interns._composite_\tpygeodesy.interns-module.html#_composite_\npygeodesy.interns._small_\tpygeodesy.interns-module.html#_small_\npygeodesy.interns._clip_\tpygeodesy.interns-module.html#_clip_\npygeodesy.interns._hemipole_\tpygeodesy.interns-module.html#_hemipole_\npygeodesy.interns._vs_\tpygeodesy.interns-module.html#_vs_\npygeodesy.interns._DEPRECATED_\tpygeodesy.interns-module.html#_DEPRECATED_\npygeodesy.interns._height_\tpygeodesy.interns-module.html#_height_\npygeodesy.interns._PLUS_\tpygeodesy.interns-module.html#_PLUS_\npygeodesy.interns._an_\tpygeodesy.interns-module.html#_an_\npygeodesy.interns._s_\tpygeodesy.interns-module.html#_s_\npygeodesy.interns._Sphere_\tpygeodesy.interns-module.html#_Sphere_\npygeodesy.interns._radius1_\tpygeodesy.interns-module.html#_radius1_\npygeodesy.interns._LCURLY_\tpygeodesy.interns-module.html#_LCURLY_\npygeodesy.interns._edge_\tpygeodesy.interns-module.html#_edge_\npygeodesy.interns._DEQUALSPACED_\tpygeodesy.interns-module.html#_DEQUALSPACED_\npygeodesy.interns._DSTAR_\tpygeodesy.interns-module.html#_DSTAR_\npygeodesy.interns._northing_\tpygeodesy.interns-module.html#_northing_\npygeodesy.interns._lat2_\tpygeodesy.interns-module.html#_lat2_\npygeodesy.interns._c_\tpygeodesy.interns-module.html#_c_\npygeodesy.interns._COMMA_\tpygeodesy.interns-module.html#_COMMA_\npygeodesy.interns._radius_\tpygeodesy.interns-module.html#_radius_\npygeodesy.interns._M_\tpygeodesy.interns-module.html#_M_\npygeodesy.interns._MINUS_\tpygeodesy.interns-module.html#_MINUS_\npygeodesy.interns._azi2_\tpygeodesy.interns-module.html#_azi2_\npygeodesy.interns._2_\tpygeodesy.interns-module.html#_2_\npygeodesy.interns._concentric_\tpygeodesy.interns-module.html#_concentric_\npygeodesy.interns._z_\tpygeodesy.interns-module.html#_z_\npygeodesy.interns._angle_\tpygeodesy.interns-module.html#_angle_\npygeodesy.interns._degrees2_\tpygeodesy.interns-module.html#_degrees2_\npygeodesy.interns._MAX_\tpygeodesy.interns-module.html#_MAX_\npygeodesy.interns._scale0_\tpygeodesy.interns-module.html#_scale0_\npygeodesy.interns._ELLIPSIS_\tpygeodesy.interns-module.html#_ELLIPSIS_\npygeodesy.interns._meanOf_\tpygeodesy.interns-module.html#_meanOf_\npygeodesy.interns._NOTEQUAL_\tpygeodesy.interns-module.html#_NOTEQUAL_\npygeodesy.interns._RPAREN_\tpygeodesy.interns-module.html#_RPAREN_\npygeodesy.interns._SUB_PACKAGES\tpygeodesy.interns-module.html#_SUB_PACKAGES\npygeodesy.interns._lon2_\tpygeodesy.interns-module.html#_lon2_\npygeodesy.interns._0to9_\tpygeodesy.interns-module.html#_0to9_\npygeodesy.interns._duplicate_\tpygeodesy.interns-module.html#_duplicate_\npygeodesy.interns._earth_\tpygeodesy.interns-module.html#_earth_\npygeodesy.interns._meter_\tpygeodesy.interns-module.html#_meter_\npygeodesy.interns._doesn_t_exist_\tpygeodesy.interns-module.html#_doesn_t_exist_\npygeodesy.interns._pole_\tpygeodesy.interns-module.html#_pole_\npygeodesy.interns._PLUSMINUS_\tpygeodesy.interns-module.html#_PLUSMINUS_\npygeodesy.interns._3_\tpygeodesy.interns-module.html#_3_\npygeodesy.interns._points_\tpygeodesy.interns-module.html#_points_\npygeodesy.interns._scipy_\tpygeodesy.interns-module.html#_scipy_\npygeodesy.interns._lat0_\tpygeodesy.interns-module.html#_lat0_\npygeodesy.interns._reframe_\tpygeodesy.interns-module.html#_reframe_\npygeodesy.interns._version_\tpygeodesy.interns-module.html#_version_\npygeodesy.interns._N_\tpygeodesy.interns-module.html#_N_\npygeodesy.interns._AtoZnoIO_\tpygeodesy.interns-module.html#_AtoZnoIO_\npygeodesy.interns._nearestOn2_\tpygeodesy.interns-module.html#_nearestOn2_\npygeodesy.interns._NSEW_\tpygeodesy.interns-module.html#_NSEW_\npygeodesy.interns._exceed_PI_radians_\tpygeodesy.interns-module.html#_exceed_PI_radians_\npygeodesy.interns._QUOTE1_\tpygeodesy.interns-module.html#_QUOTE1_\npygeodesy.interns._MIN_\tpygeodesy.interns-module.html#_MIN_\npygeodesy.interns._phi_\tpygeodesy.interns-module.html#_phi_\npygeodesy.interns._d_\tpygeodesy.interns-module.html#_d_\npygeodesy.interns._utf_8_\tpygeodesy.interns-module.html#_utf_8_\npygeodesy.interns._RCURLY_\tpygeodesy.interns-module.html#_RCURLY_\npygeodesy.interns._MGRS_\tpygeodesy.interns-module.html#_MGRS_\npygeodesy.interns._GRS80_\tpygeodesy.interns-module.html#_GRS80_\npygeodesy.interns._std_\tpygeodesy.interns-module.html#_std_\npygeodesy.interns._to_\tpygeodesy.interns-module.html#_to_\npygeodesy.interns._W_\tpygeodesy.interns-module.html#_W_\npygeodesy.interns._xyz_\tpygeodesy.interns-module.html#_xyz_\npygeodesy.interns._convergence_\tpygeodesy.interns-module.html#_convergence_\npygeodesy.interns._j_\tpygeodesy.interns-module.html#_j_\npygeodesy.interns._delta_\tpygeodesy.interns-module.html#_delta_\npygeodesy.interns._AiryModified_\tpygeodesy.interns-module.html#_AiryModified_\npygeodesy.interns._odd_\tpygeodesy.interns-module.html#_odd_\npygeodesy.interns._m_\tpygeodesy.interns-module.html#_m_\npygeodesy.interns._NAD83_\tpygeodesy.interns-module.html#_NAD83_\npygeodesy.interns._start_\tpygeodesy.interns-module.html#_start_\npygeodesy.interns._Error_\tpygeodesy.interns-module.html#_Error_\npygeodesy.interns._low_\tpygeodesy.interns-module.html#_low_\npygeodesy.interns._lon_\tpygeodesy.interns-module.html#_lon_\npygeodesy.interns._ltp_\tpygeodesy.interns-module.html#_ltp_\npygeodesy.interns._azi12_\tpygeodesy.interns-module.html#_azi12_\npygeodesy.interns._D_\tpygeodesy.interns-module.html#_D_\npygeodesy.interns._not_scalar_\tpygeodesy.interns-module.html#_not_scalar_\npygeodesy.interns._lat_\tpygeodesy.interns-module.html#_lat_\npygeodesy.interns._0_\tpygeodesy.interns-module.html#_0_\npygeodesy.interns._with_\tpygeodesy.interns-module.html#_with_\npygeodesy.interns._cartesian_\tpygeodesy.interns-module.html#_cartesian_\npygeodesy.interns._QUOTE2_\tpygeodesy.interns-module.html#_QUOTE2_\npygeodesy.interns._PERCENTDOTSTAR_\tpygeodesy.interns-module.html#_PERCENTDOTSTAR_\npygeodesy.interns._insufficient_\tpygeodesy.interns-module.html#_insufficient_\npygeodesy.interns._epoch_\tpygeodesy.interns-module.html#_epoch_\npygeodesy.interns._beta_\tpygeodesy.interns-module.html#_beta_\npygeodesy.interns._valid_\tpygeodesy.interns-module.html#_valid_\npygeodesy.interns._NLHASH_\tpygeodesy.interns-module.html#_NLHASH_\npygeodesy.interns._azimuth_\tpygeodesy.interns-module.html#_azimuth_\npygeodesy.interns._LPAREN_\tpygeodesy.interns-module.html#_LPAREN_\npygeodesy.interns._ecef_\tpygeodesy.interns-module.html#_ecef_\npygeodesy.interns._k0_\tpygeodesy.interns-module.html#_k0_\npygeodesy.interns._deg_\tpygeodesy.interns-module.html#_deg_\npygeodesy.interns._python_\tpygeodesy.interns-module.html#_python_\npygeodesy.interns._s12_\tpygeodesy.interns-module.html#_s12_\npygeodesy.interns._WGS84_\tpygeodesy.interns-module.html#_WGS84_\npygeodesy.interns._end_\tpygeodesy.interns-module.html#_end_\npygeodesy.interns._COLONSPACE_\tpygeodesy.interns-module.html#_COLONSPACE_\npygeodesy.interns._number_\tpygeodesy.interns-module.html#_number_\npygeodesy.interns._rIn_\tpygeodesy.interns-module.html#_rIn_\npygeodesy.interns._near_\tpygeodesy.interns-module.html#_near_\npygeodesy.interns._area_\tpygeodesy.interns-module.html#_area_\npygeodesy.interns._HASH_\tpygeodesy.interns-module.html#_HASH_\npygeodesy.interns._NL_\tpygeodesy.interns-module.html#_NL_\npygeodesy.interns._arg_\tpygeodesy.interns-module.html#_arg_\npygeodesy.interns._band_\tpygeodesy.interns-module.html#_band_\npygeodesy.interns._A_\tpygeodesy.interns-module.html#_A_\npygeodesy.interns._not_finite_\tpygeodesy.interns-module.html#_not_finite_\npygeodesy.interns._distant_\tpygeodesy.interns-module.html#_distant_\npygeodesy.interns._DOT_\tpygeodesy.interns-module.html#_DOT_\npygeodesy.interns._X_\tpygeodesy.interns-module.html#_X_\npygeodesy.interns._radians2_\tpygeodesy.interns-module.html#_radians2_\npygeodesy.interns._EQUALSPACED_\tpygeodesy.interns-module.html#_EQUALSPACED_\npygeodesy.interns._NTF_\tpygeodesy.interns-module.html#_NTF_\npygeodesy.interns._value_\tpygeodesy.interns-module.html#_value_\npygeodesy.interns._main\tpygeodesy.interns-module.html#_main\npygeodesy.interns._latlon_\tpygeodesy.interns-module.html#_latlon_\npygeodesy.interns._V_\tpygeodesy.interns-module.html#_V_\npygeodesy.interns._H_\tpygeodesy.interns-module.html#_H_\npygeodesy.interns._feet_\tpygeodesy.interns-module.html#_feet_\npygeodesy.interns._LANGLE_\tpygeodesy.interns-module.html#_LANGLE_\npygeodesy.interns.NN\tpygeodesy.interns-module.html#NN\npygeodesy.interns._4_\tpygeodesy.interns-module.html#_4_\npygeodesy.interns._encode_\tpygeodesy.interns-module.html#_encode_\npygeodesy.interns._gamma_\tpygeodesy.interns-module.html#_gamma_\npygeodesy.interns._f_\tpygeodesy.interns-module.html#_f_\npygeodesy.interns._finite_\tpygeodesy.interns-module.html#_finite_\npygeodesy.interns._zone_\tpygeodesy.interns-module.html#_zone_\npygeodesy.interns._y_\tpygeodesy.interns-module.html#_y_\npygeodesy.interns._azi1_\tpygeodesy.interns-module.html#_azi1_\npygeodesy.interns._on_\tpygeodesy.interns-module.html#_on_\npygeodesy.interns._radians_\tpygeodesy.interns-module.html#_radians_\npygeodesy.interns._transform_\tpygeodesy.interns-module.html#_transform_\npygeodesy.interns._ellipsoidal_\tpygeodesy.interns-module.html#_ellipsoidal_\npygeodesy.interns._BACKSLASH_\tpygeodesy.interns-module.html#_BACKSLASH_\npygeodesy.interns._spherical_\tpygeodesy.interns-module.html#_spherical_\npygeodesy.interns._Krassowsky1940_\tpygeodesy.interns-module.html#_Krassowsky1940_\npygeodesy.interns._DMAIN_\tpygeodesy.interns-module.html#_DMAIN_\npygeodesy.interns._stdev_\tpygeodesy.interns-module.html#_stdev_\npygeodesy.interns._COMMASPACE_\tpygeodesy.interns-module.html#_COMMASPACE_\npygeodesy.interns._Clarke1866_\tpygeodesy.interns-module.html#_Clarke1866_\npygeodesy.interns._clipid_\tpygeodesy.interns-module.html#_clipid_\npygeodesy.interns._F_\tpygeodesy.interns-module.html#_F_\npygeodesy.interns._fi_\tpygeodesy.interns-module.html#_fi_\npygeodesy.interns._specified_\tpygeodesy.interns-module.html#_specified_\npygeodesy.interns._Y_\tpygeodesy.interns-module.html#_Y_\npygeodesy.interns._NLATvar_\tpygeodesy.interns-module.html#_NLATvar_\npygeodesy.interns._range_\tpygeodesy.interns-module.html#_range_\npygeodesy.interns._lon0_\tpygeodesy.interns-module.html#_lon0_\npygeodesy.interns._by_\tpygeodesy.interns-module.html#_by_\npygeodesy.interns._AT_\tpygeodesy.interns-module.html#_AT_\npygeodesy.interns._lat1_\tpygeodesy.interns-module.html#_lat1_\npygeodesy.interns._reciprocal_\tpygeodesy.interns-module.html#_reciprocal_\npygeodesy.interns._mean_\tpygeodesy.interns-module.html#_mean_\npygeodesy.interns._LatLon_\tpygeodesy.interns-module.html#_LatLon_\npygeodesy.interns._UTM_\tpygeodesy.interns-module.html#_UTM_\npygeodesy.interns._initial_\tpygeodesy.interns-module.html#_initial_\npygeodesy.interns._name_\tpygeodesy.interns-module.html#_name_\npygeodesy.interns._keyword_\tpygeodesy.interns-module.html#_keyword_\npygeodesy.interns.MISSING\tpygeodesy.interns-module.html#MISSING\npygeodesy.interns._SW_\tpygeodesy.interns-module.html#_SW_\npygeodesy.interns._a12_\tpygeodesy.interns-module.html#_a12_\npygeodesy.interns._NE_\tpygeodesy.interns-module.html#_NE_\npygeodesy.interns._STAR_\tpygeodesy.interns-module.html#_STAR_\npygeodesy.interns._NAN_\tpygeodesy.interns-module.html#_NAN_\npygeodesy.interns._g_\tpygeodesy.interns-module.html#_g_\npygeodesy.interns._or_\tpygeodesy.interns-module.html#_or_\npygeodesy.interns._exceeds_\tpygeodesy.interns-module.html#_exceeds_\npygeodesy.interns._outside_\tpygeodesy.interns-module.html#_outside_\npygeodesy.interns._bearing_\tpygeodesy.interns-module.html#_bearing_\npygeodesy.interns._COLON_\tpygeodesy.interns-module.html#_COLON_\npygeodesy.interns._decode3_\tpygeodesy.interns-module.html#_decode3_\npygeodesy.interns._resolution_\tpygeodesy.interns-module.html#_resolution_\npygeodesy.interns._h_\tpygeodesy.interns-module.html#_h_\npygeodesy.interns._convex_\tpygeodesy.interns-module.html#_convex_\npygeodesy.interns._C_\tpygeodesy.interns-module.html#_C_\npygeodesy.interns._DNAME_\tpygeodesy.interns-module.html#_DNAME_\npygeodesy.interns._Z_\tpygeodesy.interns-module.html#_Z_\npygeodesy.interns._ambiguous_\tpygeodesy.interns-module.html#_ambiguous_\npygeodesy.interns._inside_\tpygeodesy.interns-module.html#_inside_\npygeodesy.interns._ELLIPSIS4_\tpygeodesy.interns-module.html#_ELLIPSIS4_\npygeodesy.interns._parallel_\tpygeodesy.interns-module.html#_parallel_\npygeodesy.interns._scale_\tpygeodesy.interns-module.html#_scale_\npygeodesy.interns._DASH_\tpygeodesy.interns-module.html#_DASH_\npygeodesy.interns._scalar_\tpygeodesy.interns-module.html#_scalar_\npygeodesy.interns._tbd_\tpygeodesy.interns-module.html#_tbd_\npygeodesy.interns._kind_\tpygeodesy.interns-module.html#_kind_\npygeodesy.interns._SLASH_\tpygeodesy.interns-module.html#_SLASH_\npygeodesy.interns._distance_\tpygeodesy.interns-module.html#_distance_\npygeodesy.interns._radius2_\tpygeodesy.interns-module.html#_radius2_\npygeodesy.interns._lam_\tpygeodesy.interns-module.html#_lam_\npygeodesy.interns._point_\tpygeodesy.interns-module.html#_point_\npygeodesy.interns._module_\tpygeodesy.interns-module.html#_module_\npygeodesy.interns._too_\tpygeodesy.interns-module.html#_too_\npygeodesy.interns._limit_\tpygeodesy.interns-module.html#_limit_\npygeodesy.interns._a_\tpygeodesy.interns-module.html#_a_\npygeodesy.interns._RANGLE_\tpygeodesy.interns-module.html#_RANGLE_\npygeodesy.interns._TILDE_\tpygeodesy.interns-module.html#_TILDE_\npygeodesy.interns._meridional_\tpygeodesy.interns-module.html#_meridional_\npygeodesy.interns._negative_\tpygeodesy.interns-module.html#_negative_\npygeodesy.interns._Nv00_\tpygeodesy.interns-module.html#_Nv00_\npygeodesy.interns._null_\tpygeodesy.interns-module.html#_null_\npygeodesy.interns.__package__\tpygeodesy.interns-module.html#__package__\npygeodesy.interns._infinite_\tpygeodesy.interns-module.html#_infinite_\npygeodesy.interns._R_\tpygeodesy.interns-module.html#_R_\npygeodesy.interns._LR_PAIRS\tpygeodesy.interns-module.html#_LR_PAIRS\npygeodesy.interns._x_\tpygeodesy.interns-module.html#_x_\npygeodesy.interns._overlap_\tpygeodesy.interns-module.html#_overlap_\npygeodesy.interns._Airy1830_\tpygeodesy.interns-module.html#_Airy1830_\npygeodesy.interns._DALL_\tpygeodesy.interns-module.html#_DALL_\npygeodesy.interns._e_\tpygeodesy.interns-module.html#_e_\npygeodesy.interns._datum_\tpygeodesy.interns-module.html#_datum_\npygeodesy.interns._singular_\tpygeodesy.interns-module.html#_singular_\npygeodesy.interns._NN_\tpygeodesy.interns-module.html#_NN_\npygeodesy.interns._M21_\tpygeodesy.interns-module.html#_M21_\npygeodesy.interns._i_\tpygeodesy.interns-module.html#_i_\npygeodesy.interns._BANG_\tpygeodesy.interns-module.html#_BANG_\npygeodesy.interns._n_a_\tpygeodesy.interns-module.html#_n_a_\npygeodesy.interns._line_\tpygeodesy.interns-module.html#_line_\npygeodesy.interns._Bessel1841_\tpygeodesy.interns-module.html#_Bessel1841_\npygeodesy.interns._Python_\tpygeodesy.interns-module.html#_Python_\npygeodesy.interns._M12_\tpygeodesy.interns-module.html#_M12_\npygeodesy.interns._precision_\tpygeodesy.interns-module.html#_precision_\npygeodesy.interns._Intl1924_\tpygeodesy.interns-module.html#_Intl1924_\npygeodesy.interns._invokation_\tpygeodesy.interns-module.html#_invokation_\npygeodesy.interns._NW_\tpygeodesy.interns-module.html#_NW_\npygeodesy.interns._SPACE_\tpygeodesy.interns-module.html#_SPACE_\npygeodesy.interns._SE_\tpygeodesy.interns-module.html#_SE_\npygeodesy.interns._not_\tpygeodesy.interns-module.html#_not_\npygeodesy.interns._lon1_\tpygeodesy.interns-module.html#_lon1_\npygeodesy.interns._INV_\tpygeodesy.interns-module.html#_INV_\npygeodesy.interns._EQUAL_\tpygeodesy.interns-module.html#_EQUAL_\npygeodesy.interns._units_\tpygeodesy.interns-module.html#_units_\npygeodesy.interns._opposite_\tpygeodesy.interns-module.html#_opposite_\npygeodesy.interns._semi_circular_\tpygeodesy.interns-module.html#_semi_circular_\npygeodesy.interns._easting_\tpygeodesy.interns-module.html#_easting_\npygeodesy.interns._attribute_\tpygeodesy.interns-module.html#_attribute_\npygeodesy.interns._and_\tpygeodesy.interns-module.html#_and_\npygeodesy.interns._coincident_\tpygeodesy.interns-module.html#_coincident_\npygeodesy.interns._NAD27_\tpygeodesy.interns-module.html#_NAD27_\npygeodesy.interns._RSQUARE_\tpygeodesy.interns-module.html#_RSQUARE_\npygeodesy.interns._INF_\tpygeodesy.interns-module.html#_INF_\npygeodesy.interns._center_\tpygeodesy.interns-module.html#_center_\npygeodesy.interns._sep_\tpygeodesy.interns-module.html#_sep_\npygeodesy.interns._S12_\tpygeodesy.interns-module.html#_S12_\npygeodesy.interns._S_\tpygeodesy.interns-module.html#_S_\npygeodesy.interns._few_\tpygeodesy.interns-module.html#_few_\npygeodesy.interns._pygeodesy_\tpygeodesy.interns-module.html#_pygeodesy_\npygeodesy.iters\tpygeodesy.iters-module.html\npygeodesy.iters._passarg\tpygeodesy.internals-module.html#_passarg\npygeodesy.iters._NOTHING\tpygeodesy.iters-module.html#_NOTHING\npygeodesy.iters._items_\tpygeodesy.iters-module.html#_items_\npygeodesy.iters.len2\tpygeodesy.basics-module.html#len2\npygeodesy.iters._ALL_DOCS\tpygeodesy.lazily-module.html#_ALL_OTHER\npygeodesy.iters._imdex2\tpygeodesy.iters-module.html#_imdex2\npygeodesy.iters.__all__\tpygeodesy.iters-module.html#__all__\npygeodesy.iters.points2\tpygeodesy.iters-module.html#points2\npygeodesy.iters.__package__\tpygeodesy.iters-module.html#__package__\npygeodesy.iters.issubclassof\tpygeodesy.basics-module.html#issubclassof\npygeodesy.iters._isin\tpygeodesy.basics-module.html#_isin\npygeodesy.iters.isNumpy2\tpygeodesy.iters-module.html#isNumpy2\npygeodesy.iters.isPoints2\tpygeodesy.iters-module.html#isPoints2\npygeodesy.iters._iterNumpy2len\tpygeodesy.iters-module.html#_iterNumpy2len\npygeodesy.iters.isTuple2\tpygeodesy.iters-module.html#isTuple2\npygeodesy.iters.degrees2m\tpygeodesy.utily-module.html#degrees2m\npygeodesy.iters.iterNumpy2over\tpygeodesy.iters-module.html#iterNumpy2over\npygeodesy.iters.islistuple\tpygeodesy.basics-module.html#islistuple\npygeodesy.iters.iterNumpy2\tpygeodesy.iters-module.html#iterNumpy2\npygeodesy.iters.map2\tpygeodesy.basics-module.html#map2\npygeodesy.iters.typename\tpygeodesy.internals-module.html#typename\npygeodesy.karney\tpygeodesy.karney-module.html\npygeodesy.karney._polynomial\tpygeodesy.karney-module.html#_polynomial\npygeodesy.karney._xkwds\tpygeodesy.errors-module.html#_xkwds\npygeodesy.karney._norm2\tpygeodesy.karney-module.html#_norm2\npygeodesy.karney._tand\tpygeodesy.karney-module.html#_tand\npygeodesy.karney._1_16th\tpygeodesy.karney-module.html#_1_16th\npygeodesy.karney._llz2gl\tpygeodesy.karney-module.html#_llz2gl\npygeodesy.karney._zip\tpygeodesy.basics-module.html#_zip\npygeodesy.karney.atan2d\tpygeodesy.utily-module.html#atan2d\npygeodesy.karney.isint\tpygeodesy.basics-module.html#isint\npygeodesy.karney._popen2\tpygeodesy.internals-module.html#_popen2\npygeodesy.karney.tand\tpygeodesy.utily-module.html#tand\npygeodesy.karney._sincos2d\tpygeodesy.karney-module.html#_sincos2d\npygeodesy.karney._diff182\tpygeodesy.karney-module.html#_diff182\npygeodesy.karney._Pass\tpygeodesy.named-module.html#_Pass\npygeodesy.karney._norm180\tpygeodesy.karney-module.html#_norm180\npygeodesy.karney._atan2d\tpygeodesy.karney-module.html#_atan2d\npygeodesy.karney._cbrt\tpygeodesy.karney-module.html#_cbrt\npygeodesy.karney.sincos2d\tpygeodesy.utily-module.html#sincos2d\npygeodesy.karney._sum3\tpygeodesy.karney-module.html#_sum3\npygeodesy.karney._unsigned2\tpygeodesy.karney-module.html#_unsigned2\npygeodesy.karney.neg\tpygeodesy.basics-module.html#neg\npygeodesy.karney._wrapped\tpygeodesy.karney-module.html#_wrapped\npygeodesy.karney._PYGEODESY_ENV\tpygeodesy.internals-module.html#_PYGEODESY_ENV\npygeodesy.karney.fremainder\tpygeodesy.fmath-module.html#fremainder\npygeodesy.karney._xgeographiclib\tpygeodesy.basics-module.html#_xgeographiclib\npygeodesy.karney._copyBit\tpygeodesy.karney-module.html#_copyBit\npygeodesy.karney._isin\tpygeodesy.basics-module.html#_isin\npygeodesy.karney.fhorner\tpygeodesy.fmath-module.html#fhorner\npygeodesy.karney._key2Caps\tpygeodesy.karney-module.html#_key2Caps\npygeodesy.karney._isfinite\tpygeodesy.karney-module.html#_isfinite\npygeodesy.karney._perimeter_\tpygeodesy.karney-module.html#_perimeter_\npygeodesy.karney.cbrt\tpygeodesy.fmath-module.html#cbrt\npygeodesy.karney._remainder\tpygeodesy.karney-module.html#_remainder\npygeodesy.karney._fix90\tpygeodesy.karney-module.html#_fix90\npygeodesy.karney.norm2\tpygeodesy.fmath-module.html#norm2\npygeodesy.karney._ALL_DOCS\tpygeodesy.lazily-module.html#_ALL_OTHER\npygeodesy.karney._2_4_\tpygeodesy.karney-module.html#_2_4_\npygeodesy.karney.notImplemented\tpygeodesy.named-module.html#notImplemented\npygeodesy.karney._polygon\tpygeodesy.karney-module.html#_polygon\npygeodesy.karney._sincos2de\tpygeodesy.karney-module.html#_sincos2de\npygeodesy.karney._2cos2x\tpygeodesy.karney-module.html#_2cos2x\npygeodesy.karney._K_2_0\tpygeodesy.karney-module.html#_K_2_0\npygeodesy.karney._unroll2\tpygeodesy.karney-module.html#_unroll2\npygeodesy.karney.typename\tpygeodesy.internals-module.html#typename\npygeodesy.karney._Xables\tpygeodesy.karney-module.html#_Xables\npygeodesy.karney._version_info\tpygeodesy.internals-module.html#_version_info\npygeodesy.karney._poly_fma\tpygeodesy.karney-module.html#_poly_fma\npygeodesy.karney.fabs\tpygeodesy.booleans-module.html#fabs\npygeodesy.karney.__package__\tpygeodesy.karney-module.html#__package__\npygeodesy.karney.deprecated_method\tpygeodesy.props-module.html#deprecated_method\npygeodesy.karney._sincos2\tpygeodesy.karney-module.html#_sincos2\npygeodesy.karney._sum2\tpygeodesy.karney-module.html#_sum2\npygeodesy.karney._math_isfinite\tpygeodesy.constants-module.html#_isfinite\npygeodesy.karney._around\tpygeodesy.karney-module.html#_around\npygeodesy.karney._K_2_4\tpygeodesy.karney-module.html#_K_2_4\npygeodesy.karney.__all__\tpygeodesy.karney-module.html#__all__\npygeodesy.karney._copysign\tpygeodesy.geodesicx.gx-module.html#copysign\npygeodesy.karney._unrollon\tpygeodesy.utily-module.html#_unrollon\npygeodesy.ktm\tpygeodesy.ktm-module.html\npygeodesy.ktm._polynomial\tpygeodesy.karney-module.html#_polynomial\npygeodesy.ktm._spherical_datum\tpygeodesy.datums-module.html#_spherical_datum\npygeodesy.ktm._diff182\tpygeodesy.karney-module.html#_diff182\npygeodesy.ktm._Xorder\tpygeodesy.errors-module.html#_Xorder\npygeodesy.ktm._fix90\tpygeodesy.karney-module.html#_fix90\npygeodesy.ktm.hypot\tpygeodesy.fmath-module.html#hypot\npygeodesy.ktm._sinhcosh2\tpygeodesy.ktm-module.html#_sinhcosh2\npygeodesy.ktm._atan2d\tpygeodesy.karney-module.html#_atan2d\npygeodesy.ktm.property_doc_\tpygeodesy.props-module.html#property_doc_\npygeodesy.ktm._B1Coeffs\tpygeodesy.ktm-module.html#_B1Coeffs\npygeodesy.ktm._unsigned2\tpygeodesy.karney-module.html#_unsigned2\npygeodesy.ktm.sincos2\tpygeodesy.utily-module.html#sincos2\npygeodesy.ktm.neg\tpygeodesy.basics-module.html#neg\npygeodesy.ktm.atan1d\tpygeodesy.utily-module.html#atan1d\npygeodesy.ktm._AlpCoeffs\tpygeodesy.ktm-module.html#_AlpCoeffs\npygeodesy.ktm.__package__\tpygeodesy.ktm-module.html#__package__\npygeodesy.ktm._BetCoeffs\tpygeodesy.ktm-module.html#_BetCoeffs\npygeodesy.ktm.hypot1\tpygeodesy.fmath-module.html#hypot1\npygeodesy.ktm._Cyxgk4\tpygeodesy.ktm-module.html#_Cyxgk4\npygeodesy.ktm.__all__\tpygeodesy.ktm-module.html#__all__\npygeodesy.ktm._Xs\tpygeodesy.ktm-module.html#_Xs\npygeodesy.ktm.fdot_\tpygeodesy.fmath-module.html#fdot_\npygeodesy.ktm._isin\tpygeodesy.basics-module.html#_isin\npygeodesy.ktm.pairs\tpygeodesy.streprs-module.html#pairs\npygeodesy.ktm._update_all\tpygeodesy.props-module.html#_update_all\npygeodesy.ktm._copysignINF\tpygeodesy.constants-module.html#_copysignINF\npygeodesy.ktm._cfma\tpygeodesy.ktm-module.html#_cfma\npygeodesy.ktm.neg_\tpygeodesy.basics-module.html#neg_\npygeodesy.ktm._0_0s\tpygeodesy.constants-module.html#_0_0s\npygeodesy.ktm._xkwds_pop2\tpygeodesy.errors-module.html#_xkwds_pop2\npygeodesy.ktm._loneg\tpygeodesy.utily-module.html#_loneg\npygeodesy.ktm._norm180\tpygeodesy.karney-module.html#_norm180\npygeodesy.ktm.atan2\tpygeodesy.utily-module.html#atan2\npygeodesy.ktm.isodd\tpygeodesy.basics-module.html#isodd\npygeodesy.ktm._xinstanceof\tpygeodesy.basics-module.html#_xinstanceof\npygeodesy.ktm.copysign0\tpygeodesy.basics-module.html#copysign0\npygeodesy.ktm._reverange\tpygeodesy.basics-module.html#_reverange\npygeodesy.ktm.sincos2d_\tpygeodesy.utily-module.html#sincos2d_\npygeodesy.latlonBase\tpygeodesy.latlonBase-module.html\npygeodesy.latlonBase._isRadius\tpygeodesy.units-module.html#_isRadius\npygeodesy.latlonBase._xkwds\tpygeodesy.errors-module.html#_xkwds\npygeodesy.latlonBase._passarg\tpygeodesy.internals-module.html#_passarg\npygeodesy.latlonBase._xdatum\tpygeodesy.errors-module.html#_xdatum\npygeodesy.latlonBase.parse3llh\tpygeodesy.dms-module.html#parse3llh\npygeodesy.latlonBase.latDMS\tpygeodesy.dms-module.html#latDMS\npygeodesy.latlonBase._name2__\tpygeodesy.named-module.html#_name2__\npygeodesy.latlonBase._xinstanceof\tpygeodesy.basics-module.html#_xinstanceof\npygeodesy.latlonBase._IsnotError\tpygeodesy.errors-module.html#_IsnotError\npygeodesy.latlonBase.sincos2d_\tpygeodesy.utily-module.html#sincos2d_\npygeodesy.latlonBase.lonDMS\tpygeodesy.dms-module.html#lonDMS\npygeodesy.latlonBase.__all__\tpygeodesy.latlonBase-module.html#__all__\npygeodesy.latlonBase._trilaterate5\tpygeodesy.latlonBase-module.html#_trilaterate5\npygeodesy.latlonBase._isin\tpygeodesy.basics-module.html#_isin\npygeodesy.latlonBase._spherical_datum\tpygeodesy.datums-module.html#_spherical_datum\npygeodesy.latlonBase._xkwds_get\tpygeodesy.errors-module.html#_xkwds_get\npygeodesy.latlonBase._ALL_DOCS\tpygeodesy.lazily-module.html#_ALL_OTHER\npygeodesy.latlonBase.latlon2n_xyz\tpygeodesy.latlonBase-module.html#latlon2n_xyz\npygeodesy.latlonBase._isDegrees\tpygeodesy.units-module.html#_isDegrees\npygeodesy.latlonBase._update_all\tpygeodesy.props-module.html#_update_all\npygeodesy.latlonBase._umod_360\tpygeodesy.constants-module.html#_umod_360\npygeodesy.latlonBase._latlonheight3\tpygeodesy.latlonBase-module.html#_latlonheight3\npygeodesy.latlonBase.isstr\tpygeodesy.basics-module.html#isstr\npygeodesy.latlonBase.typename\tpygeodesy.internals-module.html#typename\npygeodesy.latlonBase._incompatible\tpygeodesy.errors-module.html#_incompatible\npygeodesy.latlonBase._xattr\tpygeodesy.errors-module.html#_xattr\npygeodesy.latlonBase._formy\tpygeodesy.latlonBase-module.html#_formy\npygeodesy.latlonBase.philam2n_xyz\tpygeodesy.latlonBase-module.html#philam2n_xyz\npygeodesy.latlonBase.__package__\tpygeodesy.latlonBase-module.html#__package__\npygeodesy.latlonBase._xError\tpygeodesy.errors-module.html#_xError\npygeodesy.latlonBase.deprecated_method\tpygeodesy.props-module.html#deprecated_method\npygeodesy.latlonBase._unrollon3\tpygeodesy.utily-module.html#_unrollon3\npygeodesy.latlonBase._toCartesian3\tpygeodesy.latlonBase-module.html#_toCartesian3\npygeodesy.latlonBase._xkwds_item2\tpygeodesy.errors-module.html#_xkwds_item2\npygeodesy.latlonBase._xkwds_not\tpygeodesy.errors-module.html#_xkwds_not\npygeodesy.latlonBase._unrollon\tpygeodesy.utily-module.html#_unrollon\npygeodesy.latlonBase.map1\tpygeodesy.basics-module.html#map1\npygeodesy.lazily\tpygeodesy.lazily-module.html\npygeodesy.lazily._HASH_\tpygeodesy.lazily-module.html#_HASH_\npygeodesy.lazily._pygeodesy_abspath_\tpygeodesy.lazily-module.html#_pygeodesy_abspath_\npygeodesy.lazily._getattras\tpygeodesy.lazily-module.html#_getattras\npygeodesy.lazily._main\tpygeodesy.lazily-module.html#_main\npygeodesy.lazily._a0\tpygeodesy.lazily-module.html#_a0\npygeodesy.lazily._getmodattr\tpygeodesy.lazily-module.html#_getmodattr\npygeodesy.lazily._by_\tpygeodesy.lazily-module.html#_by_\npygeodesy.lazily._lazy_import2\tpygeodesy.lazily-module.html#_lazy_import2\npygeodesy.lazily._lazy_dict\tpygeodesy.lazily-module.html#_lazy_dict\npygeodesy.lazily._ALL_ATTRS\tpygeodesy.lazily-module.html#_ALL_ATTRS\npygeodesy.lazily._ALL_LAZY\tpygeodesy.lazily-module.html#_ALL_LAZY\npygeodesy.lazily._not_\tpygeodesy.lazily-module.html#_not_\npygeodesy.lazily._DOT_\tpygeodesy.lazily-module.html#_DOT_\npygeodesy.lazily._lazy_init2\tpygeodesy.lazily-module.html#_lazy_init2\npygeodesy.lazily._all_missing2\tpygeodesy.lazily-module.html#_all_missing2\npygeodesy.lazily._no_\tpygeodesy.lazily-module.html#_no_\npygeodesy.lazily._EQUALSPACED_\tpygeodesy.lazily-module.html#_EQUALSPACED_\npygeodesy.lazily._intern\tpygeodesy.lazily-module.html#_intern\npygeodesy.lazily._ALL_DOCS\tpygeodesy.lazily-module.html#_ALL_DOCS\npygeodesy.lazily._UNDER_\tpygeodesy.lazily-module.html#_UNDER_\npygeodesy.lazily._ALL_IMPORTS\tpygeodesy.lazily-module.html#_ALL_IMPORTS\npygeodesy.lazily._isfrozen\tpygeodesy.lazily-module.html#_isfrozen\npygeodesy.lazily._module_\tpygeodesy.lazily-module.html#_module_\npygeodesy.lazily._ALL_INIT\tpygeodesy.lazily-module.html#_ALL_INIT\npygeodesy.lazily.NN\tpygeodesy.lazily-module.html#NN\npygeodesy.lazily._unLazy0\tpygeodesy.lazily-module.html#_unLazy0\npygeodesy.lazily._ALL_MODS\tpygeodesy.lazily-module.html#_ALL_MODS\npygeodesy.lazily.__package__\tpygeodesy.lazily-module.html#__package__\npygeodesy.lazily._caller3\tpygeodesy.internals-module.html#_caller3\npygeodesy.lazily._DALL_\tpygeodesy.lazily-module.html#_DALL_\npygeodesy.lazily._version_\tpygeodesy.lazily-module.html#_version_\npygeodesy.lazily._headof\tpygeodesy.internals-module.html#_headof\npygeodesy.lazily._a\tpygeodesy.lazily-module.html#_a\npygeodesy.lazily._ALL_DEPRECATES\tpygeodesy.lazily-module.html#_ALL_DEPRECATES\npygeodesy.lazily._DMAIN_\tpygeodesy.lazily-module.html#_DMAIN_\npygeodesy.lazily._from_\tpygeodesy.lazily-module.html#_from_\npygeodesy.lazily._COMMASPACE_\tpygeodesy.lazily-module.html#_COMMASPACE_\npygeodesy.lazily._lazy_module\tpygeodesy.lazily-module.html#_lazy_module\npygeodesy.lazily._or_\tpygeodesy.lazily-module.html#_or_\npygeodesy.lazily._envPYGEODESY\tpygeodesy.internals-module.html#_envPYGEODESY\npygeodesy.lazily._tailof\tpygeodesy.internals-module.html#_tailof\npygeodesy.lazily._init__all__\tpygeodesy.lazily-module.html#_init__all__\npygeodesy.lazily._unlazy\tpygeodesy.lazily-module.html#_unlazy\npygeodesy.lazily._versions\tpygeodesy.internals-module.html#_versions\npygeodesy.lazily._lazy_import_as\tpygeodesy.lazily-module.html#_lazy_import_as\npygeodesy.lazily._hash_imported\tpygeodesy.lazily-module.html#_hash_imported\npygeodesy.lazily._getmodule\tpygeodesy.lazily-module.html#_getmodule\npygeodesy.lazily._SPACE_\tpygeodesy.lazily-module.html#_SPACE_\npygeodesy.lazily._WARNINGS_X_DEV\tpygeodesy.lazily-module.html#_WARNINGS_X_DEV\npygeodesy.lazily._ALL_DEPRECATED\tpygeodesy.lazily-module.html#_ALL_DEPRECATED\npygeodesy.lazily._imported_\tpygeodesy.lazily-module.html#_imported_\npygeodesy.lazily.printf\tpygeodesy.internals-module.html#printf\npygeodesy.lazily._all_enums\tpygeodesy.lazily-module.html#_all_enums\npygeodesy.lazily._Property_RO\tpygeodesy.internals-module.html#_Property_RO\npygeodesy.lazily._all_imports\tpygeodesy.lazily-module.html#_all_imports\npygeodesy.lazily._all_deprecates\tpygeodesy.lazily-module.html#_all_deprecates\npygeodesy.lazily._attribute_\tpygeodesy.lazily-module.html#_attribute_\npygeodesy.lazily._asSPACED_\tpygeodesy.lazily-module.html#_asSPACED_\npygeodesy.lazily._SUB_PACKAGES\tpygeodesy.lazily-module.html#_SUB_PACKAGES\npygeodesy.lazily._ALL_OTHER\tpygeodesy.lazily-module.html#_ALL_OTHER\npygeodesy.lazily._doesn_t_exist_\tpygeodesy.lazily-module.html#_doesn_t_exist_\npygeodesy.lazily.typename\tpygeodesy.internals-module.html#typename\npygeodesy.lazily._getmodinto\tpygeodesy.lazily-module.html#_getmodinto\npygeodesy.lazily._line_\tpygeodesy.lazily-module.html#_line_\npygeodesy.lazily._PYTHON_X_DEV\tpygeodesy.lazily-module.html#_PYTHON_X_DEV\npygeodesy.lazily.isLazy\tpygeodesy.lazily-module.html#isLazy\npygeodesy.lazily._COLONSPACE_\tpygeodesy.lazily-module.html#_COLONSPACE_\npygeodesy.lazily._lazily_\tpygeodesy.lazily-module.html#_lazily_\npygeodesy.lazily._pygeodesy_\tpygeodesy.lazily-module.html#_pygeodesy_\npygeodesy.lazily._FOR_DOCS\tpygeodesy.lazily-module.html#_FOR_DOCS\npygeodesy.lcc\tpygeodesy.lcc-module.html\npygeodesy.lcc._F\tpygeodesy.constants-module.html#_float\npygeodesy.lcc._xnamed\tpygeodesy.named-module.html#_xnamed\npygeodesy.lcc.degrees180\tpygeodesy.utily-module.html#degrees180\npygeodesy.lcc._xsubclassof\tpygeodesy.basics-module.html#_xsubclassof\npygeodesy.lcc._ellipsoidal_datum\tpygeodesy.datums-module.html#_ellipsoidal_datum\npygeodesy.lcc._name2__\tpygeodesy.named-module.html#_name2__\npygeodesy.lcc._xinstanceof\tpygeodesy.basics-module.html#_xinstanceof\npygeodesy.lcc._xzipairs\tpygeodesy.streprs-module.html#_xzipairs\npygeodesy.lcc._IsnotError\tpygeodesy.errors-module.html#_IsnotError\npygeodesy.lcc._par1_\tpygeodesy.lcc-module.html#_par1_\npygeodesy.lcc.hypot\tpygeodesy.fmath-module.html#hypot\npygeodesy.lcc.degrees90\tpygeodesy.utily-module.html#degrees90\npygeodesy.lcc.__all__\tpygeodesy.lcc-module.html#__all__\npygeodesy.lcc._N0_\tpygeodesy.lcc-module.html#_N0_\npygeodesy.lcc._isin\tpygeodesy.basics-module.html#_isin\npygeodesy.lcc._heigHt\tpygeodesy.units-module.html#_heigHt\npygeodesy.lcc.toLcc\tpygeodesy.lcc-module.html#toLcc\npygeodesy.lcc._E0_\tpygeodesy.lcc-module.html#_E0_\npygeodesy.lcc._SP_\tpygeodesy.lcc-module.html#_SP_\npygeodesy.lcc._update_all\tpygeodesy.props-module.html#_update_all\npygeodesy.lcc._par2_\tpygeodesy.lcc-module.html#_par2_\npygeodesy.lcc.typename\tpygeodesy.internals-module.html#typename\npygeodesy.lcc.copysign0\tpygeodesy.basics-module.html#copysign0\npygeodesy.lcc.Conics\tpygeodesy.lcc-module.html#Conics\npygeodesy.lcc.tanPI_2_2\tpygeodesy.utily-module.html#tanPI_2_2\npygeodesy.lcc.sincos2\tpygeodesy.utily-module.html#sincos2\npygeodesy.lcc.__package__\tpygeodesy.lcc-module.html#__package__\npygeodesy.lcc.deprecated_method\tpygeodesy.props-module.html#deprecated_method\npygeodesy.lcc._lazy\tpygeodesy.named-module.html#_lazyNamedEnumItem\npygeodesy.lcc._LL4Tuple\tpygeodesy.namedTuples-module.html#_LL4Tuple\npygeodesy.lcc.atan1\tpygeodesy.utily-module.html#atan1\npygeodesy.lcc._fstrENH2\tpygeodesy.streprs-module.html#_fstrENH2\npygeodesy.ltp\tpygeodesy.ltp-module.html\npygeodesy.ltp._xkwds\tpygeodesy.errors-module.html#_xkwds\npygeodesy.ltp.fsumf_\tpygeodesy.fsums-module.html#fsumf_\npygeodesy.ltp._name__\tpygeodesy.named-module.html#_name__\npygeodesy.ltp.unstr\tpygeodesy.streprs-module.html#unstr\npygeodesy.ltp._xsubclassof\tpygeodesy.basics-module.html#_xsubclassof\npygeodesy.ltp._wide_\tpygeodesy.ltp-module.html#_wide_\npygeodesy.ltp.cotd\tpygeodesy.utily-module.html#cotd\npygeodesy.ltp.tand_\tpygeodesy.utily-module.html#tand_\npygeodesy.ltp._name2__\tpygeodesy.named-module.html#_name2__\npygeodesy.ltp.sincos2d_\tpygeodesy.utily-module.html#sincos2d_\npygeodesy.ltp._args_kwds_names\tpygeodesy.basics-module.html#_args_kwds_names\npygeodesy.ltp._xinstanceof\tpygeodesy.basics-module.html#_xinstanceof\npygeodesy.ltp.fdot_\tpygeodesy.fmath-module.html#fdot_\npygeodesy.ltp.property_doc_\tpygeodesy.props-module.html#property_doc_\npygeodesy.ltp.sincos2d\tpygeodesy.utily-module.html#sincos2d\npygeodesy.ltp.__all__\tpygeodesy.ltp-module.html#__all__\npygeodesy.ltp.typename\tpygeodesy.internals-module.html#typename\npygeodesy.ltp._llhn4\tpygeodesy.ecef-module.html#_llhn4\npygeodesy.ltp._isin\tpygeodesy.basics-module.html#_isin\npygeodesy.ltp._isHeight\tpygeodesy.units-module.html#_isHeight\npygeodesy.ltp._fov_2\tpygeodesy.ltp-module.html#_fov_2\npygeodesy.ltp.wrap180\tpygeodesy.utily-module.html#wrap180\npygeodesy.ltp._xkwds_get\tpygeodesy.errors-module.html#_xkwds_get\npygeodesy.ltp._floor\tpygeodesy.wgrs-module.html#floor\npygeodesy.ltp.wrap360\tpygeodesy.utily-module.html#wrap360\npygeodesy.ltp._update_all\tpygeodesy.props-module.html#_update_all\npygeodesy.ltp._umod_360\tpygeodesy.constants-module.html#_umod_360\npygeodesy.ltp._height0_\tpygeodesy.ltp-module.html#_height0_\npygeodesy.ltp.tand\tpygeodesy.utily-module.html#tand\npygeodesy.ltp._xattr\tpygeodesy.errors-module.html#_xattr\npygeodesy.ltp.notOverloaded\tpygeodesy.named-module.html#notOverloaded\npygeodesy.ltp._xyzn4\tpygeodesy.ecef-module.html#_xyzn4\npygeodesy.ltp.fabs\tpygeodesy.booleans-module.html#fabs\npygeodesy.ltp.__package__\tpygeodesy.ltp-module.html#__package__\npygeodesy.ltp.tyr3d\tpygeodesy.ltp-module.html#tyr3d\npygeodesy.ltp._xkwds_pop2\tpygeodesy.errors-module.html#_xkwds_pop2\npygeodesy.ltp._loneg\tpygeodesy.utily-module.html#_loneg\npygeodesy.ltp._xLtp\tpygeodesy.ltp-module.html#_xLtp\npygeodesy.ltp._narrow_\tpygeodesy.ltp-module.html#_narrow_\npygeodesy.ltp.strs\tpygeodesy.streprs-module.html#strs\npygeodesy.ltp.map2\tpygeodesy.basics-module.html#map2\npygeodesy.ltp.map1\tpygeodesy.basics-module.html#map1\npygeodesy.ltp.fdot\tpygeodesy.fmath-module.html#fdot\npygeodesy.ltpTuples\tpygeodesy.ltpTuples-module.html\npygeodesy.ltpTuples._TypesError\tpygeodesy.errors-module.html#_TypesError\npygeodesy.ltpTuples._xkwds\tpygeodesy.errors-module.html#_xkwds\npygeodesy.ltpTuples._init\tpygeodesy.ltpTuples-module.html#_init\npygeodesy.ltpTuples._ned_\tpygeodesy.ltpTuples-module.html#_ned_\npygeodesy.ltpTuples._xnamed\tpygeodesy.named-module.html#_xnamed\npygeodesy.ltpTuples.deprecated_Property_RO\tpygeodesy.props-module.html#deprecated_Property_RO\npygeodesy.ltpTuples._name__\tpygeodesy.named-module.html#_name__\npygeodesy.ltpTuples._slantrange_\tpygeodesy.ltpTuples-module.html#_slantrange_\npygeodesy.ltpTuples._local_\tpygeodesy.ltpTuples-module.html#_local_\npygeodesy.ltpTuples._name2__\tpygeodesy.named-module.html#_name2__\npygeodesy.ltpTuples._yaw_\tpygeodesy.ltpTuples-module.html#_yaw_\npygeodesy.ltpTuples.radians\tpygeodesy.utily-module.html#radians\npygeodesy.ltpTuples.atan2d\tpygeodesy.utily-module.html#atan2d\npygeodesy.ltpTuples._xzipairs\tpygeodesy.streprs-module.html#_xzipairs\npygeodesy.ltpTuples._ChLV_false2\tpygeodesy.ltpTuples-module.html#_ChLV_false2\npygeodesy.ltpTuples._uvw_\tpygeodesy.ltpTuples-module.html#_uvw_\npygeodesy.ltpTuples.sincos2d_\tpygeodesy.utily-module.html#sincos2d_\npygeodesy.ltpTuples.hypot\tpygeodesy.fmath-module.html#hypot\npygeodesy.ltpTuples.hypot_\tpygeodesy.fmath-module.html#hypot_\npygeodesy.ltpTuples.__all__\tpygeodesy.ltpTuples-module.html#__all__\npygeodesy.ltpTuples.typename\tpygeodesy.internals-module.html#typename\npygeodesy.ltpTuples._alt_\tpygeodesy.ltpTuples-module.html#_alt_\npygeodesy.ltpTuples.issubclassof\tpygeodesy.basics-module.html#issubclassof\npygeodesy.ltpTuples.atan2b\tpygeodesy.utily-module.html#atan2b\npygeodesy.ltpTuples._XyzLocals5\tpygeodesy.ltpTuples-module.html#_XyzLocals5\npygeodesy.ltpTuples._XyzLocals4\tpygeodesy.ltpTuples-module.html#_XyzLocals4\npygeodesy.ltpTuples._name1__\tpygeodesy.named-module.html#_name1__\npygeodesy.ltpTuples.fdot_\tpygeodesy.fmath-module.html#fdot_\npygeodesy.ltpTuples._tilt_\tpygeodesy.ltpTuples-module.html#_tilt_\npygeodesy.ltpTuples._h__\tpygeodesy.ltpTuples-module.html#_h__\npygeodesy.ltpTuples.cos\tpygeodesy.geodesicx.gx-module.html#cos\npygeodesy.ltpTuples._isMeter\tpygeodesy.units-module.html#_isMeter\npygeodesy.ltpTuples._north_\tpygeodesy.ltpTuples-module.html#_north_\npygeodesy.ltpTuples._down_\tpygeodesy.ltpTuples-module.html#_down_\npygeodesy.ltpTuples._ALL_DOCS\tpygeodesy.lazily-module.html#_ALL_OTHER\npygeodesy.ltpTuples._east_\tpygeodesy.ltpTuples-module.html#_east_\npygeodesy.ltpTuples._toStr2\tpygeodesy.ltpTuples-module.html#_toStr2\npygeodesy.ltpTuples._isDegrees\tpygeodesy.units-module.html#_isDegrees\npygeodesy.ltpTuples._er2gr\tpygeodesy.ltpTuples-module.html#_er2gr\npygeodesy.ltpTuples._xkwds_item2\tpygeodesy.errors-module.html#_xkwds_item2\npygeodesy.ltpTuples.strs\tpygeodesy.streprs-module.html#strs\npygeodesy.ltpTuples._xyzLocal\tpygeodesy.ltpTuples-module.html#_xyzLocal\npygeodesy.ltpTuples._xattr\tpygeodesy.errors-module.html#_xattr\npygeodesy.ltpTuples._Pass\tpygeodesy.named-module.html#_Pass\npygeodesy.ltpTuples._roll_\tpygeodesy.ltpTuples-module.html#_roll_\npygeodesy.ltpTuples._enu_\tpygeodesy.ltpTuples-module.html#_enu_\npygeodesy.ltpTuples.sincos2_\tpygeodesy.utily-module.html#sincos2_\npygeodesy.ltpTuples._ChLV_unfalse2\tpygeodesy.ltpTuples-module.html#_ChLV_unfalse2\npygeodesy.ltpTuples.__package__\tpygeodesy.ltpTuples-module.html#__package__\npygeodesy.ltpTuples.deprecated_method\tpygeodesy.props-module.html#deprecated_method\npygeodesy.ltpTuples._ltp\tpygeodesy.ltpTuples-module.html#_ltp\npygeodesy.ltpTuples.fstr\tpygeodesy.streprs-module.html#fstr\npygeodesy.ltpTuples._aer_\tpygeodesy.ltpTuples-module.html#_aer_\npygeodesy.ltpTuples._xyz2aer4\tpygeodesy.ltpTuples-module.html#_xyz2aer4\npygeodesy.mgrs\tpygeodesy.mgrs-module.html\npygeodesy.mgrs.deprecated_property_RO\tpygeodesy.props-module.html#deprecated_property_RO\npygeodesy.mgrs._JtoZx_\tpygeodesy.mgrs-module.html#_JtoZx_\npygeodesy.mgrs._resolution10\tpygeodesy.streprs-module.html#_resolution10\npygeodesy.mgrs.halfs2\tpygeodesy.basics-module.html#halfs2\npygeodesy.mgrs._enstr2m3\tpygeodesy.streprs-module.html#_enstr2m3\npygeodesy.mgrs._AN_\tpygeodesy.mgrs-module.html#_AN_\npygeodesy.mgrs._LnUPS\tpygeodesy.mgrs-module.html#_LnUPS\npygeodesy.mgrs._splituple\tpygeodesy.basics-module.html#_splituple\npygeodesy.mgrs._polar_\tpygeodesy.mgrs-module.html#_polar_\npygeodesy.mgrs._um100km2\tpygeodesy.mgrs-module.html#_um100km2\npygeodesy.mgrs.toMgrs\tpygeodesy.mgrs-module.html#toMgrs\npygeodesy.mgrs._xzipairs\tpygeodesy.streprs-module.html#_xzipairs\npygeodesy.mgrs.enstr2\tpygeodesy.streprs-module.html#enstr2\npygeodesy.mgrs.__package__\tpygeodesy.mgrs-module.html#__package__\npygeodesy.mgrs._xinstanceof\tpygeodesy.basics-module.html#_xinstanceof\npygeodesy.mgrs._FeUPS\tpygeodesy.mgrs-module.html#_FeUPS\npygeodesy.mgrs._AtoPx_\tpygeodesy.mgrs-module.html#_AtoPx_\npygeodesy.mgrs.__all__\tpygeodesy.mgrs-module.html#__all__\npygeodesy.mgrs._xkwds\tpygeodesy.errors-module.html#_xkwds\npygeodesy.mgrs._isin\tpygeodesy.basics-module.html#_isin\npygeodesy.mgrs.parseMGRS\tpygeodesy.mgrs-module.html#parseMGRS\npygeodesy.mgrs._RE\tpygeodesy.mgrs-module.html#_RE\npygeodesy.mgrs.toUps8\tpygeodesy.ups-module.html#toUps8\npygeodesy.mgrs._ellipsoidal_datum\tpygeodesy.datums-module.html#_ellipsoidal_datum\npygeodesy.mgrs.toUtm8\tpygeodesy.utm-module.html#toUtm8\npygeodesy.mgrs._hemi\tpygeodesy.utmupsBase-module.html#_hemi\npygeodesy.mgrs._main\tpygeodesy.mgrs-module.html#_main\npygeodesy.mgrs._to3zBlat\tpygeodesy.utm-module.html#_to3zBlat\npygeodesy.mgrs._name2__\tpygeodesy.named-module.html#_name2__\npygeodesy.mgrs._LeUPS\tpygeodesy.mgrs-module.html#_LeUPS\npygeodesy.mgrs._FnUPS\tpygeodesy.mgrs-module.html#_FnUPS\npygeodesy.mgrs._Pass\tpygeodesy.named-module.html#_Pass\npygeodesy.mgrs._parseX\tpygeodesy.errors-module.html#_parseX\npygeodesy.mgrs._LeUTM\tpygeodesy.mgrs-module.html#_LeUTM\npygeodesy.mgrs._LnUTM\tpygeodesy.mgrs-module.html#_LnUTM\npygeodesy.named\tpygeodesy.named-module.html\npygeodesy.named._TypesError\tpygeodesy.errors-module.html#_TypesError\npygeodesy.named._xkwds\tpygeodesy.errors-module.html#_xkwds\npygeodesy.named.attrs\tpygeodesy.streprs-module.html#attrs\npygeodesy.named.classnaming\tpygeodesy.named-module.html#classnaming\npygeodesy.named.lrstrip\tpygeodesy.streprs-module.html#lrstrip\npygeodesy.named._hasProperty\tpygeodesy.props-module.html#_hasProperty\npygeodesy.named._xnamed\tpygeodesy.named-module.html#_xnamed\npygeodesy.named._name__\tpygeodesy.named-module.html#_name__\npygeodesy.named._zip\tpygeodesy.basics-module.html#_zip\npygeodesy.named._xsubclassof\tpygeodesy.basics-module.html#_xsubclassof\npygeodesy.named.callername\tpygeodesy.named-module.html#callername\npygeodesy.named._UP\tpygeodesy.named-module.html#_UP\npygeodesy.named._such_\tpygeodesy.named-module.html#_such_\npygeodesy.named._notDecap\tpygeodesy.named-module.html#_notDecap\npygeodesy.named._sizeof\tpygeodesy.internals-module.html#_sizeof\npygeodesy.named._name2__\tpygeodesy.named-module.html#_name2__\npygeodesy.named._isPyPy\tpygeodesy.internals-module.html#_isPyPy\npygeodesy.named._under\tpygeodesy.internals-module.html#_under\npygeodesy.named._xinstanceof\tpygeodesy.basics-module.html#_xinstanceof\npygeodesy.named._Units_\tpygeodesy.named-module.html#_Units_\npygeodesy.named.itemsorted\tpygeodesy.basics-module.html#itemsorted\npygeodesy.named.reprs\tpygeodesy.streprs-module.html#reprs\npygeodesy.named.property_doc_\tpygeodesy.props-module.html#property_doc_\npygeodesy.named._Names_\tpygeodesy.named-module.html#_Names_\npygeodesy.named._update_attrs\tpygeodesy.props-module.html#_update_attrs\npygeodesy.named._name1__\tpygeodesy.named-module.html#_name1__\npygeodesy.named._envPYGEODESY\tpygeodesy.internals-module.html#_envPYGEODESY\npygeodesy.named._ImmutableError\tpygeodesy.errors-module.html#_ImmutableError\npygeodesy.named.pairs\tpygeodesy.streprs-module.html#pairs\npygeodesy.named._NotImplemented\tpygeodesy.named-module.html#_NotImplemented\npygeodesy.named.isbool\tpygeodesy.basics-module.html#isbool\npygeodesy.named._name\tpygeodesy.named-module.html#_name\npygeodesy.named._item_\tpygeodesy.named-module.html#_item_\npygeodesy.named._lazyNamedEnumItem\tpygeodesy.named-module.html#_lazyNamedEnumItem\npygeodesy.named.unstr\tpygeodesy.streprs-module.html#unstr\npygeodesy.named.isidentifier\tpygeodesy.basics-module.html#isidentifier\npygeodesy.named._ALL_DOCS\tpygeodesy.lazily-module.html#_ALL_OTHER\npygeodesy.named.notImplemented\tpygeodesy.named-module.html#notImplemented\npygeodesy.named.iskeyword\tpygeodesy.basics-module.html#iskeyword\npygeodesy.named._caller3\tpygeodesy.internals-module.html#_caller3\npygeodesy.named._registered_\tpygeodesy.named-module.html#_registered_\npygeodesy.named._xvalid\tpygeodesy.named-module.html#_xvalid\npygeodesy.named._xjoined_\tpygeodesy.named-module.html#_xjoined_\npygeodesy.named._update_all\tpygeodesy.props-module.html#_update_all\npygeodesy.named._callername2\tpygeodesy.named-module.html#_callername2\npygeodesy.named._std_NotImplemented\tpygeodesy.named-module.html#_std_NotImplemented\npygeodesy.named._notError\tpygeodesy.named-module.html#_notError\npygeodesy.named._xkwds_item2\tpygeodesy.errors-module.html#_xkwds_item2\npygeodesy.named.isstr\tpygeodesy.basics-module.html#isstr\npygeodesy.named.typename\tpygeodesy.internals-module.html#typename\npygeodesy.named._incompatible\tpygeodesy.errors-module.html#_incompatible\npygeodesy.named._xattr\tpygeodesy.errors-module.html#_xattr\npygeodesy.named._Pass\tpygeodesy.named-module.html#_Pass\npygeodesy.named.modulename\tpygeodesy.named-module.html#modulename\npygeodesy.named.classname\tpygeodesy.named-module.html#classname\npygeodesy.named._xdup\tpygeodesy.basics-module.html#_xdup\npygeodesy.named._xcopy\tpygeodesy.basics-module.html#_xcopy\npygeodesy.named.len2\tpygeodesy.basics-module.html#len2\npygeodesy.named.nameof\tpygeodesy.named-module.html#nameof\npygeodesy.named.notOverloaded\tpygeodesy.named-module.html#notOverloaded\npygeodesy.named._MRO_\tpygeodesy.named-module.html#_MRO_\npygeodesy.named._xkwds_pop2\tpygeodesy.errors-module.html#_xkwds_pop2\npygeodesy.named._COMMASPACEDOT_\tpygeodesy.named-module.html#_COMMASPACEDOT_\npygeodesy.named.__package__\tpygeodesy.named-module.html#__package__\npygeodesy.named._xother3\tpygeodesy.named-module.html#_xother3\npygeodesy.named.deprecated_method\tpygeodesy.props-module.html#deprecated_method\npygeodesy.named._Named_Property_ROs\tpygeodesy.named-module.html#_Named_Property_ROs\npygeodesy.named._callname\tpygeodesy.named-module.html#_callname\npygeodesy.named.__all__\tpygeodesy.named-module.html#__all__\npygeodesy.named._xotherError\tpygeodesy.named-module.html#_xotherError\npygeodesy.named._COMMANL_\tpygeodesy.named-module.html#_COMMANL_\npygeodesy.named._allPropertiesOf_n\tpygeodesy.props-module.html#_allPropertiesOf_n\npygeodesy.namedTuples\tpygeodesy.namedTuples-module.html\npygeodesy.namedTuples._xkwds\tpygeodesy.errors-module.html#_xkwds\npygeodesy.namedTuples.deprecated_property_RO\tpygeodesy.props-module.html#deprecated_property_RO\npygeodesy.namedTuples.issubclassof\tpygeodesy.basics-module.html#issubclassof\npygeodesy.namedTuples._closest_\tpygeodesy.namedTuples-module.html#_closest_\npygeodesy.namedTuples._Pass\tpygeodesy.named-module.html#_Pass\npygeodesy.namedTuples._fraction_\tpygeodesy.namedTuples-module.html#_fraction_\npygeodesy.namedTuples.__all__\tpygeodesy.namedTuples-module.html#__all__\npygeodesy.namedTuples._xinstanceof\tpygeodesy.basics-module.html#_xinstanceof\npygeodesy.namedTuples._elel_\tpygeodesy.namedTuples-module.html#_elel_\npygeodesy.namedTuples._final_\tpygeodesy.namedTuples-module.html#_final_\npygeodesy.namedTuples.isinstanceof\tpygeodesy.basics-module.html#isinstanceof\npygeodesy.namedTuples._v2Cls\tpygeodesy.namedTuples-module.html#_v2Cls\npygeodesy.namedTuples._xkwds_not\tpygeodesy.errors-module.html#_xkwds_not\npygeodesy.namedTuples._xattr\tpygeodesy.errors-module.html#_xattr\npygeodesy.namedTuples._xkwds_pop2\tpygeodesy.errors-module.html#_xkwds_pop2\npygeodesy.namedTuples.fabs\tpygeodesy.booleans-module.html#fabs\npygeodesy.namedTuples._destination_\tpygeodesy.namedTuples-module.html#_destination_\npygeodesy.namedTuples.__package__\tpygeodesy.namedTuples-module.html#__package__\npygeodesy.namedTuples.map1\tpygeodesy.basics-module.html#map1\npygeodesy.namedTuples._LL4Tuple\tpygeodesy.namedTuples-module.html#_LL4Tuple\npygeodesy.nvectorBase\tpygeodesy.nvectorBase-module.html\npygeodesy.nvectorBase._xyzhdlln4\tpygeodesy.vector3d-module.html#_xyzhdlln4\npygeodesy.nvectorBase.atan2\tpygeodesy.utily-module.html#atan2\npygeodesy.nvectorBase.hypot\tpygeodesy.fmath-module.html#hypot\npygeodesy.nvectorBase._ALL_DOCS\tpygeodesy.lazily-module.html#_ALL_OTHER\npygeodesy.nvectorBase._isequalTo\tpygeodesy.formy-module.html#_isequalTo\npygeodesy.nvectorBase.n_xyz2philam\tpygeodesy.nvectorBase-module.html#n_xyz2philam\npygeodesy.nvectorBase.sincos2d\tpygeodesy.utily-module.html#sincos2d\npygeodesy.nvectorBase._trilaterate\tpygeodesy.nvectorBase-module.html#_trilaterate\npygeodesy.nvectorBase._unrollon\tpygeodesy.utily-module.html#_unrollon\npygeodesy.nvectorBase._xattrs\tpygeodesy.errors-module.html#_xattrs\npygeodesy.nvectorBase.fidw\tpygeodesy.fmath-module.html#fidw\npygeodesy.nvectorBase._isin\tpygeodesy.basics-module.html#_isin\npygeodesy.nvectorBase.__package__\tpygeodesy.nvectorBase-module.html#__package__\npygeodesy.nvectorBase._xother3\tpygeodesy.named-module.html#_xother3\npygeodesy.nvectorBase.property_doc_\tpygeodesy.props-module.html#property_doc_\npygeodesy.nvectorBase._triangulate\tpygeodesy.nvectorBase-module.html#_triangulate\npygeodesy.nvectorBase.fsumf_\tpygeodesy.fsums-module.html#fsumf_\npygeodesy.nvectorBase.deprecated_method\tpygeodesy.props-module.html#deprecated_method\npygeodesy.nvectorBase.unstr\tpygeodesy.streprs-module.html#unstr\npygeodesy.nvectorBase.NorthPole\tpygeodesy.nvectorBase-module.html#NorthPole\npygeodesy.nvectorBase.hstr\tpygeodesy.streprs-module.html#hstr\npygeodesy.nvectorBase._update_all\tpygeodesy.props-module.html#_update_all\npygeodesy.nvectorBase._xkwds\tpygeodesy.errors-module.html#_xkwds\npygeodesy.nvectorBase._xkwds_pop2\tpygeodesy.errors-module.html#_xkwds_pop2\npygeodesy.nvectorBase.SouthPole\tpygeodesy.nvectorBase-module.html#SouthPole\npygeodesy.nvectorBase.__all__\tpygeodesy.nvectorBase-module.html#__all__\npygeodesy.nvectorBase._nsumOf\tpygeodesy.nvectorBase-module.html#_nsumOf\npygeodesy.nvectorBase.n_xyz2latlon\tpygeodesy.nvectorBase-module.html#n_xyz2latlon\npygeodesy.nvectorBase._unrollon3\tpygeodesy.utily-module.html#_unrollon3\npygeodesy.nvectorBase.sumOf\tpygeodesy.nvectorBase-module.html#sumOf\npygeodesy.nvectorBase._spherical_datum\tpygeodesy.datums-module.html#_spherical_datum\npygeodesy.nvectorBase._under\tpygeodesy.internals-module.html#_under\npygeodesy.nvectorBase.map1\tpygeodesy.basics-module.html#map1\npygeodesy.osgr\tpygeodesy.osgr-module.html\npygeodesy.osgr._xkwds\tpygeodesy.errors-module.html#_xkwds\npygeodesy.osgr._resolution10\tpygeodesy.streprs-module.html#_resolution10\npygeodesy.osgr._ord_A\tpygeodesy.osgr-module.html#_ord_A\npygeodesy.osgr._ll2datum\tpygeodesy.osgr-module.html#_ll2datum\npygeodesy.osgr._Fsumf_\tpygeodesy.fsums-module.html#_Fsumf_\npygeodesy.osgr.degrees90\tpygeodesy.utily-module.html#degrees90\npygeodesy.osgr._OSGR_\tpygeodesy.osgr-module.html#_OSGR_\npygeodesy.osgr._parseX\tpygeodesy.errors-module.html#_parseX\npygeodesy.osgr.degrees180\tpygeodesy.utily-module.html#degrees180\npygeodesy.osgr._enstr2m3\tpygeodesy.streprs-module.html#_enstr2m3\npygeodesy.osgr.unstr\tpygeodesy.streprs-module.html#unstr\npygeodesy.osgr.nameof\tpygeodesy.named-module.html#nameof\npygeodesy.osgr.D\tpygeodesy.osgr-module.html#D\npygeodesy.osgr._ellipsoidal_datum\tpygeodesy.datums-module.html#_ellipsoidal_datum\npygeodesy.osgr._name2__\tpygeodesy.named-module.html#_name2__\npygeodesy.osgr._TRIPS\tpygeodesy.osgr-module.html#_TRIPS\npygeodesy.osgr.t2\tpygeodesy.osgr-module.html#t2\npygeodesy.osgr.t1\tpygeodesy.osgr-module.html#t1\npygeodesy.osgr.t\tpygeodesy.osgr-module.html#t\npygeodesy.osgr._xzipairs\tpygeodesy.streprs-module.html#_xzipairs\npygeodesy.osgr._splituple\tpygeodesy.basics-module.html#_splituple\npygeodesy.osgr.__all__\tpygeodesy.osgr-module.html#__all__\npygeodesy.osgr._equivalent_\tpygeodesy.osgr-module.html#_equivalent_\npygeodesy.osgr._NG\tpygeodesy.osgr-module.html#_NG\npygeodesy.osgr.isbool\tpygeodesy.basics-module.html#isbool\npygeodesy.osgr._xkwds_get\tpygeodesy.errors-module.html#_xkwds_get\npygeodesy.osgr._ll2LatLon3\tpygeodesy.osgr-module.html#_ll2LatLon3\npygeodesy.osgr.fpowers\tpygeodesy.fmath-module.html#fpowers\npygeodesy.osgr._rnd\tpygeodesy.osgr-module.html#_rnd\npygeodesy.osgr.sincostan3\tpygeodesy.utily-module.html#sincostan3\npygeodesy.osgr.i\tpygeodesy.osgr-module.html#i\npygeodesy.osgr.typename\tpygeodesy.internals-module.html#typename\npygeodesy.osgr.isfloat\tpygeodesy.basics-module.html#isfloat\npygeodesy.osgr._GD_prec2\tpygeodesy.osgr-module.html#_GD_prec2\npygeodesy.osgr._xsubclassof\tpygeodesy.basics-module.html#_xsubclassof\npygeodesy.osgr._xkwds_pop2\tpygeodesy.errors-module.html#_xkwds_pop2\npygeodesy.osgr.enstr2\tpygeodesy.streprs-module.html#enstr2\npygeodesy.osgr.__package__\tpygeodesy.osgr-module.html#__package__\npygeodesy.osgr.parseOSGR\tpygeodesy.osgr-module.html#parseOSGR\npygeodesy.osgr.truncate\tpygeodesy.utily-module.html#truncate\npygeodesy.osgr.toOsgr\tpygeodesy.osgr-module.html#toOsgr\npygeodesy.osgr.halfs2\tpygeodesy.basics-module.html#halfs2\npygeodesy.osgr.map1\tpygeodesy.basics-module.html#map1\npygeodesy.points\tpygeodesy.points-module.html\npygeodesy.points.isenclosedBy\tpygeodesy.points-module.html#isenclosedBy\npygeodesy.points._xkwds\tpygeodesy.errors-module.html#_xkwds\npygeodesy.points.perimeterOf\tpygeodesy.points-module.html#perimeterOf\npygeodesy.points._fractional\tpygeodesy.points-module.html#_fractional\npygeodesy.points.isscalar\tpygeodesy.basics-module.html#isscalar\npygeodesy.points._distanceTo\tpygeodesy.points-module.html#_distanceTo\npygeodesy.points.crosserrors\tpygeodesy.errors-module.html#crosserrors\npygeodesy.points.equirectangular4\tpygeodesy.formy-module.html#equirectangular4\npygeodesy.points.luneOf\tpygeodesy.points-module.html#luneOf\npygeodesy.points._isLatLon\tpygeodesy.points-module.html#_isLatLon\npygeodesy.points._xkwds_item2\tpygeodesy.errors-module.html#_xkwds_item2\npygeodesy.points.parseDMS\tpygeodesy.dms-module.html#parseDMS\npygeodesy.points._xinstanceof\tpygeodesy.basics-module.html#_xinstanceof\npygeodesy.points._IsnotError\tpygeodesy.errors-module.html#_IsnotError\npygeodesy.points.issequence\tpygeodesy.basics-module.html#issequence\npygeodesy.points.hypot\tpygeodesy.fmath-module.html#hypot\npygeodesy.points.degrees90\tpygeodesy.utily-module.html#degrees90\npygeodesy.points.property_doc_\tpygeodesy.props-module.html#property_doc_\npygeodesy.points._ncols_\tpygeodesy.points-module.html#_ncols_\npygeodesy.points.__all__\tpygeodesy.points-module.html#__all__\npygeodesy.points.issubclassof\tpygeodesy.basics-module.html#issubclassof\npygeodesy.points.fractional\tpygeodesy.points-module.html#fractional\npygeodesy.points.atan2b\tpygeodesy.utily-module.html#atan2b\npygeodesy.points._ilon_\tpygeodesy.points-module.html#_ilon_\npygeodesy.points.favg\tpygeodesy.fmath-module.html#favg\npygeodesy.points.areaOf\tpygeodesy.points-module.html#areaOf\npygeodesy.points.nearestOn5\tpygeodesy.points-module.html#nearestOn5\npygeodesy.points.unrollPI\tpygeodesy.utily-module.html#unrollPI\npygeodesy.points._spherical_datum\tpygeodesy.datums-module.html#_spherical_datum\npygeodesy.points.wrap180\tpygeodesy.utily-module.html#wrap180\npygeodesy.points.isnear1\tpygeodesy.constants-module.html#isnear1\npygeodesy.points.boundsOf\tpygeodesy.points-module.html#boundsOf\npygeodesy.points.unroll180\tpygeodesy.utily-module.html#unroll180\npygeodesy.points.instr\tpygeodesy.streprs-module.html#instr\npygeodesy.points.fsum\tpygeodesy.fsums-module.html#fsum\npygeodesy.points._nrows_\tpygeodesy.points-module.html#_nrows_\npygeodesy.points._ALL_DOCS\tpygeodesy.lazily-module.html#_ALL_OTHER\npygeodesy.points.notImplemented\tpygeodesy.named-module.html#notImplemented\npygeodesy.points.isclockwise\tpygeodesy.points-module.html#isclockwise\npygeodesy.points.degrees180\tpygeodesy.utily-module.html#degrees180\npygeodesy.points.quadOf\tpygeodesy.points-module.html#quadOf\npygeodesy.points.points2\tpygeodesy.iters-module.html#points2\npygeodesy.points._umod_360\tpygeodesy.constants-module.html#_umod_360\npygeodesy.points._latlonheight3\tpygeodesy.latlonBase-module.html#_latlonheight3\npygeodesy.points.centroidOf\tpygeodesy.points-module.html#centroidOf\npygeodesy.points._areaError\tpygeodesy.points-module.html#_areaError\npygeodesy.points.degrees2m\tpygeodesy.utily-module.html#degrees2m\npygeodesy.points._ilat_\tpygeodesy.points-module.html#_ilat_\npygeodesy.points.typename\tpygeodesy.internals-module.html#typename\npygeodesy.points._bearingTo2\tpygeodesy.formy-module.html#_bearingTo2\npygeodesy.points.ispolar\tpygeodesy.points-module.html#ispolar\npygeodesy.points._xattr\tpygeodesy.errors-module.html#_xattr\npygeodesy.points._xdup\tpygeodesy.basics-module.html#_xdup\npygeodesy.points._xcopy\tpygeodesy.basics-module.html#_xcopy\npygeodesy.points.nameof\tpygeodesy.named-module.html#nameof\npygeodesy.points.notOverloaded\tpygeodesy.named-module.html#notOverloaded\npygeodesy.points._xkwds_pop2\tpygeodesy.errors-module.html#_xkwds_pop2\npygeodesy.points.isconvex_\tpygeodesy.points-module.html#isconvex_\npygeodesy.points.__package__\tpygeodesy.points-module.html#__package__\npygeodesy.points._area2\tpygeodesy.points-module.html#_area2\npygeodesy.points.classname\tpygeodesy.named-module.html#classname\npygeodesy.points.isint\tpygeodesy.basics-module.html#isint\npygeodesy.points.isclass\tpygeodesy.basics-module.html#isclass\npygeodesy.points._isLatLon_\tpygeodesy.points-module.html#_isLatLon_\npygeodesy.points.isconvex\tpygeodesy.points-module.html#isconvex\npygeodesy.points.isnear0\tpygeodesy.constants-module.html#isnear0\npygeodesy.points._unrollon\tpygeodesy.utily-module.html#_unrollon\npygeodesy.points.fdot\tpygeodesy.fmath-module.html#fdot\npygeodesy.props\tpygeodesy.props-module.html\npygeodesy.props.deprecated_class\tpygeodesy.props-module.html#deprecated_class\npygeodesy.props.deprecated_Property_RO\tpygeodesy.props-module.html#deprecated_Property_RO\npygeodesy.props._xkwds_get\tpygeodesy.errors-module.html#_xkwds_get\npygeodesy.props.__all__\tpygeodesy.props-module.html#__all__\npygeodesy.props._class_\tpygeodesy.props-module.html#_class_\npygeodesy.props._dont_use_\tpygeodesy.props-module.html#_dont_use_\npygeodesy.props.typename\tpygeodesy.internals-module.html#typename\npygeodesy.props._update_attrs\tpygeodesy.props-module.html#_update_attrs\npygeodesy.props._hasProperty\tpygeodesy.props-module.html#_hasProperty\npygeodesy.props._allPropertiesOf\tpygeodesy.props-module.html#_allPropertiesOf\npygeodesy.props.__package__\tpygeodesy.props-module.html#__package__\npygeodesy.props._qualified\tpygeodesy.props-module.html#_qualified\npygeodesy.props.deprecated_method\tpygeodesy.props-module.html#deprecated_method\npygeodesy.props._not_an_inst_\tpygeodesy.props-module.html#_not_an_inst_\npygeodesy.props._deprecated\tpygeodesy.props-module.html#_deprecated\npygeodesy.props._function_\tpygeodesy.props-module.html#_function_\npygeodesy.props._update_all\tpygeodesy.props-module.html#_update_all\npygeodesy.props._tailof\tpygeodesy.internals-module.html#_tailof\npygeodesy.props._DNL_\tpygeodesy.props-module.html#_DNL_\npygeodesy.props._has_been_\tpygeodesy.props-module.html#_has_been_\npygeodesy.props._deprecated_module\tpygeodesy.props-module.html#_deprecated_module\npygeodesy.props.property_doc_\tpygeodesy.props-module.html#property_doc_\npygeodesy.props._method_\tpygeodesy.props-module.html#_method_\npygeodesy.props._deprecated_RO\tpygeodesy.props-module.html#_deprecated_RO\npygeodesy.props.deprecated_property_RO\tpygeodesy.props-module.html#deprecated_property_RO\npygeodesy.props._isclass\tpygeodesy.basics-module.html#isclass\npygeodesy.props._throwarning\tpygeodesy.props-module.html#_throwarning\npygeodesy.props._allPropertiesOf_n\tpygeodesy.props-module.html#_allPropertiesOf_n\npygeodesy.props.deprecated_function\tpygeodesy.props-module.html#deprecated_function\npygeodesy.props._DEPRECATEDof\tpygeodesy.props-module.html#_DEPRECATEDof\npygeodesy.props._xcallable\tpygeodesy.errors-module.html#_xcallable\npygeodesy.resections\tpygeodesy.resections-module.html\npygeodesy.resections.tienstra7\tpygeodesy.resections-module.html#tienstra7\npygeodesy.resections.hypot2_\tpygeodesy.fmath-module.html#hypot2_\npygeodesy.resections.fidw\tpygeodesy.fmath-module.html#fidw\npygeodesy.resections._xkwds\tpygeodesy.errors-module.html#_xkwds\npygeodesy.resections._triSide2\tpygeodesy.resections-module.html#_triSide2\npygeodesy.resections.triSide2\tpygeodesy.resections-module.html#triSide2\npygeodesy.resections._Fsumf_\tpygeodesy.fsums-module.html#_Fsumf_\npygeodesy.resections._pierlotxy2\tpygeodesy.resections-module.html#_pierlotxy2\npygeodesy.resections._B3\tpygeodesy.resections-module.html#_B3\npygeodesy.resections._triSide\tpygeodesy.resections-module.html#_triSide\npygeodesy.resections._radC_\tpygeodesy.resections-module.html#_radC_\npygeodesy.resections._rotate\tpygeodesy.resections-module.html#_rotate\npygeodesy.resections._PC_\tpygeodesy.resections-module.html#_PC_\npygeodesy.resections.fsumf_\tpygeodesy.fsums-module.html#fsumf_\npygeodesy.resections.acos1\tpygeodesy.utily-module.html#acos1\npygeodesy.resections.fsum1f_\tpygeodesy.fsums-module.html#fsum1f_\npygeodesy.resections.triArea\tpygeodesy.resections-module.html#triArea\npygeodesy.resections.triSide4\tpygeodesy.resections-module.html#triSide4\npygeodesy.resections._zip\tpygeodesy.basics-module.html#_zip\npygeodesy.resections._and\tpygeodesy.errors-module.html#_and\npygeodesy.resections._over\tpygeodesy.constants-module.html#_over\npygeodesy.resections._radB_\tpygeodesy.resections-module.html#_radB_\npygeodesy.resections.sincos2d_\tpygeodesy.utily-module.html#sincos2d_\npygeodesy.resections.hypot\tpygeodesy.fmath-module.html#hypot\npygeodesy.resections._Pass\tpygeodesy.named-module.html#_Pass\npygeodesy.resections.sincos2_\tpygeodesy.utily-module.html#sincos2_\npygeodesy.resections.sincos2d\tpygeodesy.utily-module.html#sincos2d\npygeodesy.resections.__all__\tpygeodesy.resections-module.html#__all__\npygeodesy.resections._PA_\tpygeodesy.resections-module.html#_PA_\npygeodesy.resections.favg\tpygeodesy.fmath-module.html#favg\npygeodesy.resections.fsum1\tpygeodesy.fsums-module.html#fsum1\npygeodesy.resections.triSide\tpygeodesy.resections-module.html#triSide\npygeodesy.resections._PB_\tpygeodesy.resections-module.html#_PB_\npygeodesy.resections.wildberger3\tpygeodesy.resections-module.html#wildberger3\npygeodesy.resections.pierlot\tpygeodesy.resections-module.html#pierlot\npygeodesy.resections.isnear0\tpygeodesy.constants-module.html#isnear0\npygeodesy.resections.cassini\tpygeodesy.resections-module.html#cassini\npygeodesy.resections.snellius3\tpygeodesy.resections-module.html#snellius3\npygeodesy.resections.asin1\tpygeodesy.utily-module.html#asin1\npygeodesy.resections._zidw\tpygeodesy.resections-module.html#_zidw\npygeodesy.resections._fma\tpygeodesy.fmath-module.html#_fma\npygeodesy.resections._pointP_\tpygeodesy.resections-module.html#_pointP_\npygeodesy.resections._umod_360\tpygeodesy.constants-module.html#_umod_360\npygeodesy.resections._otherV3d\tpygeodesy.vector3d-module.html#_otherV3d\npygeodesy.resections.triAngle\tpygeodesy.resections-module.html#triAngle\npygeodesy.resections._or\tpygeodesy.errors-module.html#_or\npygeodesy.resections.typename\tpygeodesy.internals-module.html#typename\npygeodesy.resections._pointH_\tpygeodesy.resections-module.html#_pointH_\npygeodesy.resections._triAngle\tpygeodesy.resections-module.html#_triAngle\npygeodesy.resections.triAngle5\tpygeodesy.resections-module.html#triAngle5\npygeodesy.resections._Clas\tpygeodesy.resections-module.html#_Clas\npygeodesy.resections.collins5\tpygeodesy.resections-module.html#collins5\npygeodesy.resections._pierlot3\tpygeodesy.resections-module.html#_pierlot3\npygeodesy.resections.map2\tpygeodesy.basics-module.html#map2\npygeodesy.resections._noneg\tpygeodesy.resections-module.html#_noneg\npygeodesy.resections._xkwds_pop2\tpygeodesy.errors-module.html#_xkwds_pop2\npygeodesy.resections.sincos2\tpygeodesy.utily-module.html#sincos2\npygeodesy.resections.pierlotx\tpygeodesy.resections-module.html#pierlotx\npygeodesy.resections.__package__\tpygeodesy.resections-module.html#__package__\npygeodesy.resections._concyclic_\tpygeodesy.resections-module.html#_concyclic_\npygeodesy.resections._pierlotx3\tpygeodesy.resections-module.html#_pierlotx3\npygeodesy.resections._radA_\tpygeodesy.resections-module.html#_radA_\npygeodesy.resections._xcallable\tpygeodesy.errors-module.html#_xcallable\npygeodesy.resections.fmean\tpygeodesy.fmath-module.html#fmean\npygeodesy.resections.atan2\tpygeodesy.utily-module.html#atan2\npygeodesy.resections.map1\tpygeodesy.basics-module.html#map1\npygeodesy.resections._ABC3\tpygeodesy.resections-module.html#_ABC3\npygeodesy.rhumb\tpygeodesy.rhumb-module.html\npygeodesy.rhumb.__all__\tpygeodesy.rhumb-module.html#__all__\npygeodesy.rhumb.__getattr__\tpygeodesy.rhumb-module.html#__getattr__\npygeodesy.rhumb._lazy_import_as\tpygeodesy.lazily-module.html#_lazy_import_as\npygeodesy.rhumb._ALL_OTHER\tpygeodesy.lazily-module.html#_ALL_OTHER\npygeodesy.rhumb.__package__\tpygeodesy.rhumb-module.html#__package__\npygeodesy.rhumb.aux_\tpygeodesy.rhumb.aux_-module.html\npygeodesy.rhumb.aux_.__package__\tpygeodesy.rhumb.aux_-module.html#__package__\npygeodesy.rhumb.aux_._polynomial\tpygeodesy.karney-module.html#_polynomial\npygeodesy.rhumb.aux_._log2\tpygeodesy.constants-module.html#_log2\npygeodesy.rhumb.aux_.hypot\tpygeodesy.fmath-module.html#hypot\npygeodesy.rhumb.aux_._reverange\tpygeodesy.basics-module.html#_reverange\npygeodesy.rhumb.aux_.copysign0\tpygeodesy.basics-module.html#copysign0\npygeodesy.rhumb.aux_._ALL_DOCS\tpygeodesy.lazily-module.html#_ALL_OTHER\npygeodesy.rhumb.aux_._DClenshaw\tpygeodesy.auxilats.auxDLat-module.html#_DClenshaw\npygeodesy.rhumb.aux_._RACoeffs\tpygeodesy.rhumb.aux_-module.html#_RACoeffs\npygeodesy.rhumb.aux_.isinf\tpygeodesy.constants-module.html#isinf\npygeodesy.rhumb.aux_._Dlam\tpygeodesy.auxilats.auxily-module.html#_Dlam\npygeodesy.rhumb.aux_._xkwds_get1\tpygeodesy.errors-module.html#_xkwds_get1\npygeodesy.rhumb.aux_._RAintegrate\tpygeodesy.rhumb.aux_-module.html#_RAintegrate\npygeodesy.rhumb.aux_._Lbits\tpygeodesy.rhumb.aux_-module.html#_Lbits\npygeodesy.rhumb.aux_.__all__\tpygeodesy.rhumb.aux_-module.html#__all__\npygeodesy.rhumb.aux_._RAseries\tpygeodesy.rhumb.aux_-module.html#_RAseries\npygeodesy.rhumb.aux_._Dp0Dpsi\tpygeodesy.auxilats.auxily-module.html#_Dp0Dpsi\npygeodesy.rhumb.aux_._over\tpygeodesy.constants-module.html#_over\npygeodesy.rhumb.bases\tpygeodesy.rhumb.bases-module.html\npygeodesy.rhumb.bases._xkwds\tpygeodesy.errors-module.html#_xkwds\npygeodesy.rhumb.bases._xdatum\tpygeodesy.errors-module.html#_xdatum\npygeodesy.rhumb.bases.Rl\tpygeodesy.rhumb.bases-module.html#Rl\npygeodesy.rhumb.bases._ref\tpygeodesy.rhumb.bases-module.html#_ref\npygeodesy.rhumb.bases._earth_datum\tpygeodesy.datums-module.html#_earth_datum\npygeodesy.rhumb.bases._Xorder\tpygeodesy.errors-module.html#_Xorder\npygeodesy.rhumb.bases.acos1\tpygeodesy.utily-module.html#acos1\npygeodesy.rhumb.bases.LHR\tpygeodesy.rhumb.bases-module.html#LHR\npygeodesy.rhumb.bases._anti_\tpygeodesy.rhumb.bases-module.html#_anti_\npygeodesy.rhumb.bases._TRIPS\tpygeodesy.rhumb.bases-module.html#_TRIPS\npygeodesy.rhumb.bases.sincos2d_\tpygeodesy.utily-module.html#sincos2d_\npygeodesy.rhumb.bases._under\tpygeodesy.internals-module.html#_under\npygeodesy.rhumb.bases._xinstanceof\tpygeodesy.basics-module.html#_xinstanceof\npygeodesy.rhumb.bases._over\tpygeodesy.constants-module.html#_over\npygeodesy.rhumb.bases.itemsorted\tpygeodesy.basics-module.html#itemsorted\npygeodesy.rhumb.bases._diff182\tpygeodesy.karney-module.html#_diff182\npygeodesy.rhumb.bases.euclid\tpygeodesy.fmath-module.html#euclid\npygeodesy.rhumb.bases._atan2d\tpygeodesy.karney-module.html#_atan2d\npygeodesy.rhumb.bases._update_all_rls\tpygeodesy.rhumb.bases-module.html#_update_all_rls\npygeodesy.rhumb.bases.sincos2d\tpygeodesy.utily-module.html#sincos2d\npygeodesy.rhumb.bases.favg\tpygeodesy.fmath-module.html#favg\npygeodesy.rhumb.bases._rls\tpygeodesy.rhumb.bases-module.html#_rls\npygeodesy.rhumb.bases.pairs\tpygeodesy.streprs-module.html#pairs\npygeodesy.rhumb.bases._spherical_datum\tpygeodesy.datums-module.html#_spherical_datum\npygeodesy.rhumb.bases._intersect3d3\tpygeodesy.vector3d-module.html#_intersect3d3\npygeodesy.rhumb.bases._fix90\tpygeodesy.karney-module.html#_fix90\npygeodesy.rhumb.bases.NE_\tpygeodesy.rhumb.bases-module.html#NE_\npygeodesy.rhumb.bases._ALL_DOCS\tpygeodesy.lazily-module.html#_ALL_OTHER\npygeodesy.rhumb.bases._azireversed\tpygeodesy.utily-module.html#_azireversed\npygeodesy.rhumb.bases._update_all\tpygeodesy.props-module.html#_update_all\npygeodesy.rhumb.bases._copysign\tpygeodesy.geodesicx.gx-module.html#copysign\npygeodesy.rhumb.bases.typename\tpygeodesy.internals-module.html#typename\npygeodesy.rhumb.bases.unsigned0\tpygeodesy.basics-module.html#unsigned0\npygeodesy.rhumb.bases._xkwds_pop2\tpygeodesy.errors-module.html#_xkwds_pop2\npygeodesy.rhumb.bases.__package__\tpygeodesy.rhumb.bases-module.html#__package__\npygeodesy.rhumb.bases.deprecated_method\tpygeodesy.props-module.html#deprecated_method\npygeodesy.rhumb.bases.sqrt_a\tpygeodesy.fmath-module.html#sqrt_a\npygeodesy.rhumb.bases._loneg\tpygeodesy.utily-module.html#_loneg\npygeodesy.rhumb.bases._norm180\tpygeodesy.karney-module.html#_norm180\npygeodesy.rhumb.bases.Al\tpygeodesy.rhumb.bases-module.html#Al\npygeodesy.rhumb.bases._unrollon\tpygeodesy.utily-module.html#_unrollon\npygeodesy.rhumb.bases.NRT\tpygeodesy.rhumb.bases-module.html#NRT\npygeodesy.rhumb.ekx\tpygeodesy.rhumb.ekx-module.html\npygeodesy.rhumb.ekx._Eaux4\tpygeodesy.rhumb.ekx-module.html#_Eaux4\npygeodesy.rhumb.ekx._Dlog\tpygeodesy.rhumb.ekx-module.html#_Dlog\npygeodesy.rhumb.ekx._Xorder\tpygeodesy.errors-module.html#_Xorder\npygeodesy.rhumb.ekx.hypot\tpygeodesy.fmath-module.html#hypot\npygeodesy.rhumb.ekx._Datan\tpygeodesy.rhumb.ekx-module.html#_Datan\npygeodesy.rhumb.ekx.sincos2_\tpygeodesy.utily-module.html#sincos2_\npygeodesy.rhumb.ekx._ALL_DOCS\tpygeodesy.lazily-module.html#_ALL_OTHER\npygeodesy.rhumb.ekx._Dtant\tpygeodesy.rhumb.ekx-module.html#_Dtant\npygeodesy.rhumb.ekx._update_all_rls\tpygeodesy.rhumb.bases-module.html#_update_all_rls\npygeodesy.rhumb.ekx._DeatanhE\tpygeodesy.rhumb.ekx-module.html#_DeatanhE\npygeodesy.rhumb.ekx._RACoeffs\tpygeodesy.rhumb.ekx-module.html#_RACoeffs\npygeodesy.rhumb.ekx._Dgd\tpygeodesy.rhumb.ekx-module.html#_Dgd\npygeodesy.rhumb.ekx.__all__\tpygeodesy.rhumb.ekx-module.html#__all__\npygeodesy.rhumb.ekx._Dsin\tpygeodesy.rhumb.ekx-module.html#_Dsin\npygeodesy.rhumb.ekx._Dsinh\tpygeodesy.rhumb.ekx-module.html#_Dsinh\npygeodesy.rhumb.ekx._xkwds_pop2\tpygeodesy.errors-module.html#_xkwds_pop2\npygeodesy.rhumb.ekx._Dgdinv\tpygeodesy.rhumb.ekx-module.html#_Dgdinv\npygeodesy.rhumb.ekx._Dsincos\tpygeodesy.rhumb.ekx-module.html#_Dsincos\npygeodesy.rhumb.ekx.deprecated_method\tpygeodesy.props-module.html#deprecated_method\npygeodesy.rhumb.ekx._DfEt\tpygeodesy.rhumb.ekx-module.html#_DfEt\npygeodesy.rhumb.ekx._sincosSeries\tpygeodesy.rhumb.ekx-module.html#_sincosSeries\npygeodesy.rhumb.ekx._Xs\tpygeodesy.ktm-module.html#_Xs\npygeodesy.rhumb.ekx._gd\tpygeodesy.rhumb.ekx-module.html#_gd\npygeodesy.rhumb.ekx._Dcosh\tpygeodesy.rhumb.ekx-module.html#_Dcosh\npygeodesy.rhumb.ekx._0_0s\tpygeodesy.constants-module.html#_0_0s\npygeodesy.rhumb.ekx._Dasinh\tpygeodesy.rhumb.ekx-module.html#_Dasinh\npygeodesy.rhumb.ekx.hypot1\tpygeodesy.fmath-module.html#hypot1\npygeodesy.rhumb.ekx.atan1\tpygeodesy.utily-module.html#atan1\npygeodesy.rhumb.ekx.__package__\tpygeodesy.rhumb.ekx-module.html#__package__\npygeodesy.rhumb.ekx._1_over\tpygeodesy.constants-module.html#_1_over\npygeodesy.rhumb.ekx._over\tpygeodesy.constants-module.html#_over\npygeodesy.rhumb.ekx._Dtan\tpygeodesy.rhumb.ekx-module.html#_Dtan\npygeodesy.rhumb.solve\tpygeodesy.rhumb.solve-module.html\npygeodesy.rhumb.solve.r\tpygeodesy.rhumb.solve-module.html#r\npygeodesy.rhumb.solve.p\tpygeodesy.rhumb.solve-module.html#p\npygeodesy.rhumb.solve._ALL_DOCS\tpygeodesy.lazily-module.html#_ALL_OTHER\npygeodesy.rhumb.solve._unrollon\tpygeodesy.utily-module.html#_unrollon\npygeodesy.rhumb.solve._sincos2d\tpygeodesy.karney-module.html#_sincos2d\npygeodesy.rhumb.solve._xinstanceof\tpygeodesy.basics-module.html#_xinstanceof\npygeodesy.rhumb.solve.wrap360\tpygeodesy.utily-module.html#wrap360\npygeodesy.rhumb.solve.t\tpygeodesy.rhumb.solve-module.html#t\npygeodesy.rhumb.solve.rhumb_intercept\tpygeodesy.rhumb.solve-module.html#rhumb_intercept\npygeodesy.rhumb.solve.__all__\tpygeodesy.rhumb.solve-module.html#__all__\npygeodesy.rhumb.solve._norm180\tpygeodesy.karney-module.html#_norm180\npygeodesy.rhumb.solve.rS\tpygeodesy.rhumb.solve-module.html#rS\npygeodesy.rhumb.solve.__package__\tpygeodesy.rhumb.solve-module.html#__package__\npygeodesy.rhumb.solve.v\tpygeodesy.rhumb.solve-module.html#v\npygeodesy.rhumb.solve._over\tpygeodesy.constants-module.html#_over\npygeodesy.rhumb.solve.rlS\tpygeodesy.rhumb.solve-module.html#rlS\npygeodesy.simplify\tpygeodesy.simplify-module.html\npygeodesy.simplify.len2\tpygeodesy.basics-module.html#len2\npygeodesy.simplify.__package__\tpygeodesy.simplify-module.html#__package__\npygeodesy.simplify.fdot_\tpygeodesy.fmath-module.html#fdot_\npygeodesy.simplify.equirectangular4\tpygeodesy.formy-module.html#equirectangular4\npygeodesy.simplify.simplifyVW\tpygeodesy.simplify-module.html#simplifyVW\npygeodesy.simplify.sqrt0\tpygeodesy.fmath-module.html#sqrt0\npygeodesy.simplify.simplifyRW\tpygeodesy.simplify-module.html#simplifyRW\npygeodesy.simplify._xkwds_pop2\tpygeodesy.errors-module.html#_xkwds_pop2\npygeodesy.simplify.isTuple2\tpygeodesy.iters-module.html#isTuple2\npygeodesy.simplify.__all__\tpygeodesy.simplify-module.html#__all__\npygeodesy.simplify.simplify1\tpygeodesy.simplify-module.html#simplify1\npygeodesy.simplify.simplifyRDP\tpygeodesy.simplify-module.html#simplifyRDP\npygeodesy.simplify.isNumpy2\tpygeodesy.iters-module.html#isNumpy2\npygeodesy.solveBase\tpygeodesy.solveBase-module.html\npygeodesy.solveBase.unroll180\tpygeodesy.utily-module.html#unroll180\npygeodesy.solveBase.fstrzs\tpygeodesy.streprs-module.html#fstrzs\npygeodesy.solveBase.printf\tpygeodesy.internals-module.html#printf\npygeodesy.solveBase.pairs\tpygeodesy.streprs-module.html#pairs\npygeodesy.solveBase._cmd_stdin_\tpygeodesy.solveBase-module.html#_cmd_stdin_\npygeodesy.solveBase._ALL_DOCS\tpygeodesy.lazily-module.html#_ALL_OTHER\npygeodesy.solveBase.map2\tpygeodesy.basics-module.html#map2\npygeodesy.solveBase.strs\tpygeodesy.streprs-module.html#strs\npygeodesy.solveBase._earth_datum\tpygeodesy.datums-module.html#_earth_datum\npygeodesy.solveBase._update_all\tpygeodesy.props-module.html#_update_all\npygeodesy.solveBase.callername\tpygeodesy.named-module.html#callername\npygeodesy.solveBase._isin\tpygeodesy.basics-module.html#_isin\npygeodesy.solveBase._enquote\tpygeodesy.internals-module.html#_enquote\npygeodesy.solveBase.fstr\tpygeodesy.streprs-module.html#fstr\npygeodesy.solveBase._xkwds_get1\tpygeodesy.errors-module.html#_xkwds_get1\npygeodesy.solveBase._xkwds_item2\tpygeodesy.errors-module.html#_xkwds_item2\npygeodesy.solveBase.__all__\tpygeodesy.solveBase-module.html#__all__\npygeodesy.solveBase._zip\tpygeodesy.basics-module.html#_zip\npygeodesy.solveBase._name2__\tpygeodesy.named-module.html#_name2__\npygeodesy.solveBase._ERROR_\tpygeodesy.solveBase-module.html#_ERROR_\npygeodesy.solveBase._xkwds_get\tpygeodesy.errors-module.html#_xkwds_get\npygeodesy.solveBase.notOverloaded\tpygeodesy.named-module.html#notOverloaded\npygeodesy.solveBase.clips\tpygeodesy.basics-module.html#clips\npygeodesy.solveBase.__package__\tpygeodesy.solveBase-module.html#__package__\npygeodesy.solveBase._popen2\tpygeodesy.internals-module.html#_popen2\npygeodesy.sphericalBase\tpygeodesy.sphericalBase-module.html\npygeodesy.sphericalBase._isRadius\tpygeodesy.units-module.html#_isRadius\npygeodesy.sphericalBase.tanPI_2_2\tpygeodesy.utily-module.html#tanPI_2_2\npygeodesy.sphericalBase.isinstanceof\tpygeodesy.basics-module.html#isinstanceof\npygeodesy.sphericalBase._radians2m\tpygeodesy.sphericalBase-module.html#_radians2m\npygeodesy.sphericalBase._logPI_2_2\tpygeodesy.sphericalBase-module.html#_logPI_2_2\npygeodesy.sphericalBase.isbool\tpygeodesy.basics-module.html#isbool\npygeodesy.sphericalBase._intersecant2\tpygeodesy.sphericalBase-module.html#_intersecant2\npygeodesy.sphericalBase.degrees90\tpygeodesy.utily-module.html#degrees90\npygeodesy.sphericalBase._ALL_DOCS\tpygeodesy.lazily-module.html#_ALL_OTHER\npygeodesy.sphericalBase._xattrs\tpygeodesy.errors-module.html#_xattrs\npygeodesy.sphericalBase.sincos2d\tpygeodesy.utily-module.html#sincos2d\npygeodesy.sphericalBase._unrollon\tpygeodesy.utily-module.html#_unrollon\npygeodesy.sphericalBase.sincos2\tpygeodesy.utily-module.html#sincos2\npygeodesy.sphericalBase._earth_ellipsoid\tpygeodesy.datums-module.html#_earth_ellipsoid\npygeodesy.sphericalBase.__package__\tpygeodesy.sphericalBase-module.html#__package__\npygeodesy.sphericalBase.acos1\tpygeodesy.utily-module.html#acos1\npygeodesy.sphericalBase._xError\tpygeodesy.errors-module.html#_xError\npygeodesy.sphericalBase.map1\tpygeodesy.basics-module.html#map1\npygeodesy.sphericalBase.deprecated_method\tpygeodesy.props-module.html#deprecated_method\npygeodesy.sphericalBase.property_doc_\tpygeodesy.props-module.html#property_doc_\npygeodesy.sphericalBase.wrapPI\tpygeodesy.utily-module.html#wrapPI\npygeodesy.sphericalBase.atan2b\tpygeodesy.utily-module.html#atan2b\npygeodesy.sphericalBase.degrees180\tpygeodesy.utily-module.html#degrees180\npygeodesy.sphericalBase.atan2d\tpygeodesy.utily-module.html#atan2d\npygeodesy.sphericalBase.favg\tpygeodesy.fmath-module.html#favg\npygeodesy.sphericalBase._isin\tpygeodesy.basics-module.html#_isin\npygeodesy.sphericalBase._rads3\tpygeodesy.sphericalBase-module.html#_rads3\npygeodesy.sphericalBase._update_all\tpygeodesy.props-module.html#_update_all\npygeodesy.sphericalBase._m2radians\tpygeodesy.sphericalBase-module.html#_m2radians\npygeodesy.sphericalBase.__all__\tpygeodesy.sphericalBase-module.html#__all__\npygeodesy.sphericalBase.fdot\tpygeodesy.fmath-module.html#fdot\npygeodesy.sphericalBase.asin1\tpygeodesy.utily-module.html#asin1\npygeodesy.sphericalBase._copysign\tpygeodesy.geodesicx.gx-module.html#copysign\npygeodesy.sphericalBase._spherical_datum\tpygeodesy.datums-module.html#_spherical_datum\npygeodesy.sphericalBase.isnon0\tpygeodesy.constants-module.html#isnon0\npygeodesy.sphericalBase._xattr\tpygeodesy.errors-module.html#_xattr\npygeodesy.sphericalBase.isnear0\tpygeodesy.constants-module.html#isnear0\npygeodesy.sphericalBase.hypot\tpygeodesy.fmath-module.html#hypot\npygeodesy.sphericalBase._over\tpygeodesy.constants-module.html#_over\npygeodesy.sphericalBase.sqrt_a\tpygeodesy.fmath-module.html#sqrt_a\npygeodesy.sphericalNvector\tpygeodesy.sphericalNvector-module.html\npygeodesy.sphericalNvector._intersect3\tpygeodesy.sphericalNvector-module.html#_intersect3\npygeodesy.sphericalNvector._xkwds\tpygeodesy.errors-module.html#_xkwds\npygeodesy.sphericalNvector.triangulate\tpygeodesy.sphericalNvector-module.html#triangulate\npygeodesy.sphericalNvector.nearestOn2\tpygeodesy.sphericalNvector-module.html#nearestOn2\npygeodesy.sphericalNvector.meanOf\tpygeodesy.sphericalNvector-module.html#meanOf\npygeodesy.sphericalNvector._intersecant2\tpygeodesy.sphericalBase-module.html#_intersecant2\npygeodesy.sphericalNvector.notImplemented\tpygeodesy.named-module.html#notImplemented\npygeodesy.sphericalNvector.sincos2d\tpygeodesy.utily-module.html#sincos2d\npygeodesy.sphericalNvector.degrees360\tpygeodesy.utily-module.html#degrees360\npygeodesy.sphericalNvector._trilaterate\tpygeodesy.nvectorBase-module.html#_trilaterate\npygeodesy.sphericalNvector._radians2m\tpygeodesy.sphericalBase-module.html#_radians2m\npygeodesy.sphericalNvector.sincos2\tpygeodesy.utily-module.html#sincos2\npygeodesy.sphericalNvector.deprecated_function\tpygeodesy.props-module.html#deprecated_function\npygeodesy.sphericalNvector.sumOf\tpygeodesy.sphericalNvector-module.html#sumOf\npygeodesy.sphericalNvector.intersecant2\tpygeodesy.sphericalNvector-module.html#intersecant2\npygeodesy.sphericalNvector.__package__\tpygeodesy.sphericalNvector-module.html#__package__\npygeodesy.sphericalNvector._isDegrees\tpygeodesy.units-module.html#_isDegrees\npygeodesy.sphericalNvector._xError\tpygeodesy.errors-module.html#_xError\npygeodesy.sphericalNvector.deprecated_method\tpygeodesy.props-module.html#deprecated_method\npygeodesy.sphericalNvector._triangulate\tpygeodesy.nvectorBase-module.html#_triangulate\npygeodesy.sphericalNvector.fdot_\tpygeodesy.fmath-module.html#fdot_\npygeodesy.sphericalNvector._isin\tpygeodesy.basics-module.html#_isin\npygeodesy.sphericalNvector._lines_\tpygeodesy.sphericalNvector-module.html#_lines_\npygeodesy.sphericalNvector._m2radians\tpygeodesy.sphericalBase-module.html#_m2radians\npygeodesy.sphericalNvector.perimeterOf\tpygeodesy.sphericalNvector-module.html#perimeterOf\npygeodesy.sphericalNvector.areaOf\tpygeodesy.sphericalNvector-module.html#areaOf\npygeodesy.sphericalNvector.atan2\tpygeodesy.utily-module.html#atan2\npygeodesy.sphericalNvector.sincos2_\tpygeodesy.utily-module.html#sincos2_\npygeodesy.sphericalNvector.fsum\tpygeodesy.fsums-module.html#fsum\npygeodesy.sphericalNvector.intersection\tpygeodesy.sphericalNvector-module.html#intersection\npygeodesy.sphericalNvector.__all__\tpygeodesy.sphericalNvector-module.html#__all__\npygeodesy.sphericalNvector._nsumOf\tpygeodesy.nvectorBase-module.html#_nsumOf\npygeodesy.sphericalNvector._Nv00\tpygeodesy.sphericalNvector-module.html#_Nv00\npygeodesy.sphericalNvector.fabs\tpygeodesy.booleans-module.html#fabs\npygeodesy.sphericalNvector._ALL_OTHER\tpygeodesy.lazily-module.html#_ALL_OTHER\npygeodesy.sphericalNvector.nearestOn3\tpygeodesy.sphericalNvector-module.html#nearestOn3\npygeodesy.sphericalNvector.typename\tpygeodesy.internals-module.html#typename\npygeodesy.sphericalNvector.fmean\tpygeodesy.fmath-module.html#fmean\npygeodesy.sphericalNvector._unrollon\tpygeodesy.utily-module.html#_unrollon\npygeodesy.sphericalNvector._xinstanceof\tpygeodesy.basics-module.html#_xinstanceof\npygeodesy.sphericalNvector.intersection2\tpygeodesy.sphericalNvector-module.html#intersection2\npygeodesy.sphericalNvector.ispolar\tpygeodesy.sphericalNvector-module.html#ispolar\npygeodesy.sphericalNvector.trilaterate\tpygeodesy.sphericalNvector-module.html#trilaterate\npygeodesy.sphericalTrigonometry\tpygeodesy.sphericalTrigonometry-module.html\npygeodesy.sphericalTrigonometry._isRadius\tpygeodesy.units-module.html#_isRadius\npygeodesy.sphericalTrigonometry._xkwds\tpygeodesy.errors-module.html#_xkwds\npygeodesy.sphericalTrigonometry._rads3\tpygeodesy.sphericalBase-module.html#_rads3\npygeodesy.sphericalTrigonometry.perimeterOf\tpygeodesy.sphericalTrigonometry-module.html#perimeterOf\npygeodesy.sphericalTrigonometry.radiansPI2\tpygeodesy.utily-module.html#radiansPI2\npygeodesy.sphericalTrigonometry.degrees90\tpygeodesy.utily-module.html#degrees90\npygeodesy.sphericalTrigonometry.unrollPI\tpygeodesy.utily-module.html#unrollPI\npygeodesy.sphericalTrigonometry._T00\tpygeodesy.sphericalTrigonometry-module.html#_T00\npygeodesy.sphericalTrigonometry.crosserrors\tpygeodesy.errors-module.html#crosserrors\npygeodesy.sphericalTrigonometry.fsumf_\tpygeodesy.fsums-module.html#fsumf_\npygeodesy.sphericalTrigonometry.degrees180\tpygeodesy.utily-module.html#degrees180\npygeodesy.sphericalTrigonometry.sumOf\tpygeodesy.sphericalTrigonometry-module.html#sumOf\npygeodesy.sphericalTrigonometry.fsum\tpygeodesy.fsums-module.html#fsum\npygeodesy.sphericalTrigonometry.bearing_\tpygeodesy.formy-module.html#bearing_\npygeodesy.sphericalTrigonometry.acos1\tpygeodesy.utily-module.html#acos1\npygeodesy.sphericalTrigonometry.sincos2_\tpygeodesy.utily-module.html#sincos2_\npygeodesy.sphericalTrigonometry._ellipsoidal_datum\tpygeodesy.datums-module.html#_ellipsoidal_datum\npygeodesy.sphericalTrigonometry.intersection\tpygeodesy.sphericalTrigonometry-module.html#intersection\npygeodesy.sphericalTrigonometry._int3d2\tpygeodesy.sphericalTrigonometry-module.html#_int3d2\npygeodesy.sphericalTrigonometry.signOf\tpygeodesy.basics-module.html#signOf\npygeodesy.sphericalTrigonometry._nearestOn5\tpygeodesy.points-module.html#nearestOn5\npygeodesy.sphericalTrigonometry.excessGirard_\tpygeodesy.formy-module.html#excessGirard_\npygeodesy.sphericalTrigonometry.opposing_\tpygeodesy.formy-module.html#opposing_\npygeodesy.sphericalTrigonometry.hypot\tpygeodesy.fmath-module.html#hypot\npygeodesy.sphericalTrigonometry.copysign0\tpygeodesy.basics-module.html#copysign0\npygeodesy.sphericalTrigonometry.meanOf\tpygeodesy.sphericalTrigonometry-module.html#meanOf\npygeodesy.sphericalTrigonometry.__all__\tpygeodesy.sphericalTrigonometry-module.html#__all__\npygeodesy.sphericalTrigonometry.typename\tpygeodesy.internals-module.html#typename\npygeodesy.sphericalTrigonometry.atan1d\tpygeodesy.utily-module.html#atan1d\npygeodesy.sphericalTrigonometry.atan2d\tpygeodesy.utily-module.html#atan2d\npygeodesy.sphericalTrigonometry._bearingTo2\tpygeodesy.formy-module.html#_bearingTo2\npygeodesy.sphericalTrigonometry._trilaterate5\tpygeodesy.latlonBase-module.html#_trilaterate5\npygeodesy.sphericalTrigonometry.excessLHuilier_\tpygeodesy.formy-module.html#excessLHuilier_\npygeodesy.sphericalTrigonometry.fdot_\tpygeodesy.fmath-module.html#fdot_\npygeodesy.sphericalTrigonometry._isin\tpygeodesy.basics-module.html#_isin\npygeodesy.sphericalTrigonometry.tan_2\tpygeodesy.utily-module.html#tan_2\npygeodesy.sphericalTrigonometry.antipode_\tpygeodesy.formy-module.html#antipode_\npygeodesy.sphericalTrigonometry.favg\tpygeodesy.fmath-module.html#favg\npygeodesy.sphericalTrigonometry.areaOf\tpygeodesy.sphericalTrigonometry-module.html#areaOf\npygeodesy.sphericalTrigonometry.nearestOn2\tpygeodesy.sphericalTrigonometry-module.html#nearestOn2\npygeodesy.sphericalTrigonometry.triangle8_\tpygeodesy.sphericalTrigonometry-module.html#triangle8_\npygeodesy.sphericalTrigonometry._intersect\tpygeodesy.sphericalTrigonometry-module.html#_intersect\npygeodesy.sphericalTrigonometry.excessAbc_\tpygeodesy.formy-module.html#excessAbc_\npygeodesy.sphericalTrigonometry.nearestOn3\tpygeodesy.sphericalTrigonometry-module.html#nearestOn3\npygeodesy.sphericalTrigonometry.wrap180\tpygeodesy.utily-module.html#wrap180\npygeodesy.sphericalTrigonometry.isnear1\tpygeodesy.constants-module.html#isnear1\npygeodesy.sphericalTrigonometry._intdot\tpygeodesy.sphericalTrigonometry-module.html#_intdot\npygeodesy.sphericalTrigonometry._xkwds_get\tpygeodesy.errors-module.html#_xkwds_get\npygeodesy.sphericalTrigonometry._intersecant2\tpygeodesy.sphericalBase-module.html#_intersecant2\npygeodesy.sphericalTrigonometry._intersects2\tpygeodesy.sphericalTrigonometry-module.html#_intersects2\npygeodesy.sphericalTrigonometry.asin1\tpygeodesy.utily-module.html#asin1\npygeodesy.sphericalTrigonometry._radians2m\tpygeodesy.sphericalBase-module.html#_radians2m\npygeodesy.sphericalTrigonometry._t7Tuple\tpygeodesy.sphericalTrigonometry-module.html#_t7Tuple\npygeodesy.sphericalTrigonometry.isPoleEnclosedBy\tpygeodesy.sphericalTrigonometry-module.html#isPoleEnclosedBy\npygeodesy.sphericalTrigonometry._isDegrees\tpygeodesy.units-module.html#_isDegrees\npygeodesy.sphericalTrigonometry.vincentys_\tpygeodesy.formy-module.html#vincentys_\npygeodesy.sphericalTrigonometry.degrees2m\tpygeodesy.utily-module.html#degrees2m\npygeodesy.sphericalTrigonometry.isnon0\tpygeodesy.constants-module.html#isnon0\npygeodesy.sphericalTrigonometry.deprecated_function\tpygeodesy.props-module.html#deprecated_function\npygeodesy.sphericalTrigonometry.ispolar\tpygeodesy.sphericalTrigonometry-module.html#ispolar\npygeodesy.sphericalTrigonometry.wrapPI\tpygeodesy.utily-module.html#wrapPI\npygeodesy.sphericalTrigonometry._LL3Tuple\tpygeodesy.sphericalTrigonometry-module.html#_LL3Tuple\npygeodesy.sphericalTrigonometry.intersections2\tpygeodesy.sphericalTrigonometry-module.html#intersections2\npygeodesy.sphericalTrigonometry._xkwds_pop2\tpygeodesy.errors-module.html#_xkwds_pop2\npygeodesy.sphericalTrigonometry.atan2\tpygeodesy.utily-module.html#atan2\npygeodesy.sphericalTrigonometry.__package__\tpygeodesy.sphericalTrigonometry-module.html#__package__\npygeodesy.sphericalTrigonometry._xError\tpygeodesy.errors-module.html#_xError\npygeodesy.sphericalTrigonometry.deprecated_method\tpygeodesy.props-module.html#deprecated_method\npygeodesy.sphericalTrigonometry._mean_radius\tpygeodesy.datums-module.html#_mean_radius\npygeodesy.sphericalTrigonometry._PI_EPS4\tpygeodesy.sphericalTrigonometry-module.html#_PI_EPS4\npygeodesy.sphericalTrigonometry._m2radians\tpygeodesy.sphericalBase-module.html#_m2radians\npygeodesy.sphericalTrigonometry.m2radians\tpygeodesy.utily-module.html#m2radians\npygeodesy.sphericalTrigonometry._unrollon3\tpygeodesy.utily-module.html#_unrollon3\npygeodesy.sphericalTrigonometry.triangle7\tpygeodesy.sphericalTrigonometry-module.html#triangle7\npygeodesy.sphericalTrigonometry._radical2\tpygeodesy.formy-module.html#_radical2\npygeodesy.sphericalTrigonometry._ALL_OTHER\tpygeodesy.lazily-module.html#_ALL_OTHER\npygeodesy.sphericalTrigonometry.isnear0\tpygeodesy.constants-module.html#isnear0\npygeodesy.sphericalTrigonometry.fmean\tpygeodesy.fmath-module.html#fmean\npygeodesy.sphericalTrigonometry._unrollon\tpygeodesy.utily-module.html#_unrollon\npygeodesy.sphericalTrigonometry.intersecant2\tpygeodesy.sphericalTrigonometry-module.html#intersecant2\npygeodesy.sphericalTrigonometry.map1\tpygeodesy.basics-module.html#map1\npygeodesy.sphericalTrigonometry.fdot\tpygeodesy.fmath-module.html#fdot\npygeodesy.sphericalTrigonometry._destination2\tpygeodesy.sphericalTrigonometry-module.html#_destination2\npygeodesy.streprs\tpygeodesy.streprs-module.html\npygeodesy.streprs._EN_PREC\tpygeodesy.streprs-module.html#_EN_PREC\npygeodesy.streprs._IsnotError\tpygeodesy.errors-module.html#_IsnotError\npygeodesy.streprs.Fmt\tpygeodesy.streprs-module.html#Fmt\npygeodesy.streprs._xkwds_get\tpygeodesy.errors-module.html#_xkwds_get\npygeodesy.streprs._streprs\tpygeodesy.streprs-module.html#_streprs\npygeodesy.streprs._resolution10\tpygeodesy.streprs-module.html#_resolution10\npygeodesy.streprs.anstr\tpygeodesy.streprs-module.html#anstr\npygeodesy.streprs.attrs\tpygeodesy.streprs-module.html#attrs\npygeodesy.streprs._Fspec_\tpygeodesy.streprs-module.html#_Fspec_\npygeodesy.streprs._at_\tpygeodesy.streprs-module.html#_at_\npygeodesy.streprs._pct\tpygeodesy.streprs-module.html#_pct\npygeodesy.streprs.enstr2\tpygeodesy.streprs-module.html#enstr2\npygeodesy.streprs._0wpF\tpygeodesy.streprs-module.html#_0wpF\npygeodesy.streprs.isscalar\tpygeodesy.basics-module.html#isscalar\npygeodesy.streprs.typename\tpygeodesy.internals-module.html#typename\npygeodesy.streprs._zip\tpygeodesy.basics-module.html#_zip\npygeodesy.streprs._Gg\tpygeodesy.streprs-module.html#_Gg\npygeodesy.streprs.instr\tpygeodesy.streprs-module.html#instr\npygeodesy.streprs.__package__\tpygeodesy.streprs-module.html#__package__\npygeodesy.streprs._0wd\tpygeodesy.streprs-module.html#_0wd\npygeodesy.streprs.lrstrip\tpygeodesy.streprs-module.html#lrstrip\npygeodesy.streprs._threshold_\tpygeodesy.streprs-module.html#_threshold_\npygeodesy.streprs._FfEeGg\tpygeodesy.streprs-module.html#_FfEeGg\npygeodesy.streprs._enstr2m3\tpygeodesy.streprs-module.html#_enstr2m3\npygeodesy.streprs.unstr\tpygeodesy.streprs-module.html#unstr\npygeodesy.streprs.isint\tpygeodesy.basics-module.html#isint\npygeodesy.streprs.hstr\tpygeodesy.streprs-module.html#hstr\npygeodesy.streprs.fstrzs\tpygeodesy.streprs-module.html#fstrzs\npygeodesy.streprs._or\tpygeodesy.errors-module.html#_or\npygeodesy.streprs.__all__\tpygeodesy.streprs-module.html#__all__\npygeodesy.streprs._EN_WIDE\tpygeodesy.streprs-module.html#_EN_WIDE\npygeodesy.streprs.pairs\tpygeodesy.streprs-module.html#pairs\npygeodesy.streprs._OKd_\tpygeodesy.streprs-module.html#_OKd_\npygeodesy.streprs._xkwds_item2\tpygeodesy.errors-module.html#_xkwds_item2\npygeodesy.streprs.isstr\tpygeodesy.basics-module.html#isstr\npygeodesy.streprs._fstrLL0\tpygeodesy.streprs-module.html#_fstrLL0\npygeodesy.streprs._0wdot\tpygeodesy.streprs-module.html#_0wdot\npygeodesy.streprs.reprs\tpygeodesy.streprs-module.html#reprs\npygeodesy.streprs.islistuple\tpygeodesy.basics-module.html#islistuple\npygeodesy.streprs.strs\tpygeodesy.streprs-module.html#strs\npygeodesy.streprs.fstr\tpygeodesy.streprs-module.html#fstr\npygeodesy.streprs._fstrENH2\tpygeodesy.streprs-module.html#_fstrENH2\npygeodesy.streprs._xzipairs\tpygeodesy.streprs-module.html#_xzipairs\npygeodesy.streprs.itemsorted\tpygeodesy.basics-module.html#itemsorted\npygeodesy.streprs._DOTSTAR_\tpygeodesy.streprs-module.html#_DOTSTAR_\npygeodesy.trf\tpygeodesy.trf-module.html\npygeodesy.trf._ITRF94_\tpygeodesy.trf-module.html#_ITRF94_\npygeodesy.trf._xkwds\tpygeodesy.errors-module.html#_xkwds\npygeodesy.trf._F\tpygeodesy.constants-module.html#_float\npygeodesy.trf._ETRF94_\tpygeodesy.trf-module.html#_ETRF94_\npygeodesy.trf._ITRF_\tpygeodesy.trf-module.html#_ITRF_\npygeodesy.trf._ITRF2020_\tpygeodesy.trf-module.html#_ITRF2020_\npygeodesy.trf._indirects\tpygeodesy.trf-module.html#_indirects\npygeodesy.trf._ETRF2005_\tpygeodesy.trf-module.html#_ETRF2005_\npygeodesy.trf._mDays\tpygeodesy.trf-module.html#_mDays\npygeodesy.trf._WGS84g1674_\tpygeodesy.trf-module.html#_WGS84g1674_\npygeodesy.trf._ETRF89_\tpygeodesy.trf-module.html#_ETRF89_\npygeodesy.trf._ITRF89_\tpygeodesy.trf-module.html#_ITRF89_\npygeodesy.trf._ETRF2020_\tpygeodesy.trf-module.html#_ETRF2020_\npygeodesy.trf._EP0CH\tpygeodesy.trf-module.html#_EP0CH\npygeodesy.trf._toRefFrame\tpygeodesy.trf-module.html#_toRefFrame\npygeodesy.trf._0_0s\tpygeodesy.constants-module.html#_0_0s\npygeodesy.trf.classname\tpygeodesy.named-module.html#classname\npygeodesy.trf.date2epoch\tpygeodesy.trf-module.html#date2epoch\npygeodesy.trf._name2__\tpygeodesy.named-module.html#_name2__\npygeodesy.trf._trfX\tpygeodesy.trf-module.html#_trfX\npygeodesy.trf._n_pop\tpygeodesy.trf-module.html#_n_pop\npygeodesy.trf._NAD83cors96_\tpygeodesy.trf-module.html#_NAD83cors96_\npygeodesy.trf._xinstanceof\tpygeodesy.basics-module.html#_xinstanceof\npygeodesy.trf._WGS84g1762_\tpygeodesy.trf-module.html#_WGS84g1762_\npygeodesy.trf._main\tpygeodesy.trf-module.html#_main\npygeodesy.trf._sumstr\tpygeodesy.trf-module.html#_sumstr\npygeodesy.trf._MM2M\tpygeodesy.trf-module.html#_MM2M\npygeodesy.trf._Epoch\tpygeodesy.trf-module.html#_Epoch\npygeodesy.trf._GDA94_\tpygeodesy.trf-module.html#_GDA94_\npygeodesy.trf._ITRF2005_\tpygeodesy.trf-module.html#_ITRF2005_\npygeodesy.trf.property_doc_\tpygeodesy.props-module.html#property_doc_\npygeodesy.trf._ETRF92_\tpygeodesy.trf-module.html#_ETRF92_\npygeodesy.trf.neg\tpygeodesy.basics-module.html#neg\npygeodesy.trf._inverse_\tpygeodesy.trf-module.html#_inverse_\npygeodesy.trf._n1_n2_n3\tpygeodesy.trf-module.html#_n1_n2_n3\npygeodesy.trf._toTransforms\tpygeodesy.trf-module.html#_toTransforms\npygeodesy.trf._negastr\tpygeodesy.datums-module.html#_negastr\npygeodesy.trf._isin\tpygeodesy.basics-module.html#_isin\npygeodesy.trf.trfTransform0\tpygeodesy.trf-module.html#trfTransform0\npygeodesy.trf._ETRF2014_\tpygeodesy.trf-module.html#_ETRF2014_\npygeodesy.trf._ITRF93_\tpygeodesy.trf-module.html#_ITRF93_\npygeodesy.trf._reframe\tpygeodesy.trf-module.html#_reframe\npygeodesy.trf._ETRF93_\tpygeodesy.trf-module.html#_ETRF93_\npygeodesy.trf._toTransform0\tpygeodesy.trf-module.html#_toTransform0\npygeodesy.trf.epoch2date\tpygeodesy.trf-module.html#epoch2date\npygeodesy.trf.unstr\tpygeodesy.streprs-module.html#unstr\npygeodesy.trf.isidentifier\tpygeodesy.basics-module.html#isidentifier\npygeodesy.trf._ITRF90_\tpygeodesy.trf-module.html#_ITRF90_\npygeodesy.trf._ITRF2008_\tpygeodesy.trf-module.html#_ITRF2008_\npygeodesy.trf._ETRF90_\tpygeodesy.trf-module.html#_ETRF90_\npygeodesy.trf._xform_\tpygeodesy.trf-module.html#_xform_\npygeodesy.trf._xscalar\tpygeodesy.basics-module.html#_xscalar\npygeodesy.trf._366_0\tpygeodesy.trf-module.html#_366_0\npygeodesy.trf._ETRF2000_\tpygeodesy.trf-module.html#_ETRF2000_\npygeodesy.trf._ITRF91_\tpygeodesy.trf-module.html#_ITRF91_\npygeodesy.trf._ETRF2008_\tpygeodesy.trf-module.html#_ETRF2008_\npygeodesy.trf.RefFrames\tpygeodesy.trf-module.html#RefFrames\npygeodesy.trf.trfTransforms\tpygeodesy.trf-module.html#trfTransforms\npygeodesy.trf._stref\tpygeodesy.trf-module.html#_stref\npygeodesy.trf._xkwds_item2\tpygeodesy.errors-module.html#_xkwds_item2\npygeodesy.trf.isstr\tpygeodesy.basics-module.html#isstr\npygeodesy.trf._xellipsoidall\tpygeodesy.errors-module.html#_xellipsoidall\npygeodesy.trf._ETRF91_\tpygeodesy.trf-module.html#_ETRF91_\npygeodesy.trf.typename\tpygeodesy.internals-module.html#typename\npygeodesy.trf._ITRF92_\tpygeodesy.trf-module.html#_ITRF92_\npygeodesy.trf._xattr\tpygeodesy.errors-module.html#_xattr\npygeodesy.trf._direct\tpygeodesy.trf-module.html#_direct\npygeodesy.trf._ETRF88_\tpygeodesy.trf-module.html#_ETRF88_\npygeodesy.trf._ITRF88_\tpygeodesy.trf-module.html#_ITRF88_\npygeodesy.trf._ITRF96_\tpygeodesy.trf-module.html#_ITRF96_\npygeodesy.trf._equall\tpygeodesy.datums-module.html#_equall\npygeodesy.trf._WGS84g1150_\tpygeodesy.trf-module.html#_WGS84g1150_\npygeodesy.trf.trfXform\tpygeodesy.trf-module.html#trfXform\npygeodesy.trf.__package__\tpygeodesy.trf-module.html#__package__\npygeodesy.trf._GRS80\tpygeodesy.trf-module.html#_GRS80\npygeodesy.trf.map1\tpygeodesy.basics-module.html#map1\npygeodesy.trf.deprecated_method\tpygeodesy.props-module.html#deprecated_method\npygeodesy.trf._earth_datum\tpygeodesy.datums-module.html#_earth_datum\npygeodesy.trf._lazy\tpygeodesy.named-module.html#_lazyNamedEnumItem\npygeodesy.trf._ETRF96_\tpygeodesy.trf-module.html#_ETRF96_\npygeodesy.trf._trfT0s\tpygeodesy.trf-module.html#_trfT0s\npygeodesy.trf._ITRF97_\tpygeodesy.trf-module.html#_ITRF97_\npygeodesy.trf._rates_\tpygeodesy.trf-module.html#_rates_\npygeodesy.trf._ITRF2000_\tpygeodesy.trf-module.html#_ITRF2000_\npygeodesy.trf.__all__\tpygeodesy.trf-module.html#__all__\npygeodesy.trf._ITRF2014_\tpygeodesy.trf-module.html#_ITRF2014_\npygeodesy.trf._eXhaustives\tpygeodesy.trf-module.html#_eXhaustives\npygeodesy.trf._ETRF97_\tpygeodesy.trf-module.html#_ETRF97_\npygeodesy.triaxials\tpygeodesy.triaxials-module.html\npygeodesy.triaxials.Triaxial3s\tpygeodesy.triaxials-module.html#Triaxial3s\npygeodesy.triaxials.__getattr__\tpygeodesy.triaxials-module.html#__getattr__\npygeodesy.triaxials.__package__\tpygeodesy.triaxials-module.html#__package__\npygeodesy.triaxials._lazy_import_as\tpygeodesy.lazily-module.html#_lazy_import_as\npygeodesy.triaxials.hartzell4\tpygeodesy.triaxials-module.html#hartzell4\npygeodesy.triaxials.Triaxials\tpygeodesy.triaxials-module.html#Triaxials\npygeodesy.triaxials.__all__\tpygeodesy.triaxials-module.html#__all__\npygeodesy.triaxials.height4\tpygeodesy.triaxials-module.html#height4\npygeodesy.triaxials._ALL_OTHER\tpygeodesy.lazily-module.html#_ALL_OTHER\npygeodesy.triaxials.bases\tpygeodesy.triaxials.bases-module.html\npygeodesy.triaxials.bases._xkwds\tpygeodesy.errors-module.html#_xkwds\npygeodesy.triaxials.bases.km2m\tpygeodesy.utily-module.html#km2m\npygeodesy.triaxials.bases._Fsumf_\tpygeodesy.fsums-module.html#_Fsumf_\npygeodesy.triaxials.bases._llk_\tpygeodesy.triaxials.bases-module.html#_llk_\npygeodesy.triaxials.bases.fsumf_\tpygeodesy.fsums-module.html#fsumf_\npygeodesy.triaxials.bases._not_ordered_\tpygeodesy.triaxials.bases-module.html#_not_ordered_\npygeodesy.triaxials.bases._over0\tpygeodesy.triaxials.bases-module.html#_over0\npygeodesy.triaxials.bases.float0_\tpygeodesy.constants-module.html#float0_\npygeodesy.triaxials.bases.hypot\tpygeodesy.fmath-module.html#hypot\npygeodesy.triaxials.bases._Pass\tpygeodesy.named-module.html#_Pass\npygeodesy.triaxials.bases.property_doc_\tpygeodesy.props-module.html#property_doc_\npygeodesy.triaxials.bases.asin1\tpygeodesy.utily-module.html#asin1\npygeodesy.triaxials.bases._getitems\tpygeodesy.triaxials.bases-module.html#_getitems\npygeodesy.triaxials.bases._otherV3d_\tpygeodesy.triaxials.bases-module.html#_otherV3d_\npygeodesy.triaxials.bases._isfinite\tpygeodesy.constants-module.html#_isfinite\npygeodesy.triaxials.bases._sqrt0\tpygeodesy.triaxials.bases-module.html#_sqrt0\npygeodesy.triaxials.bases.cbrt\tpygeodesy.fmath-module.html#cbrt\npygeodesy.triaxials.bases.map1\tpygeodesy.basics-module.html#map1\npygeodesy.triaxials.bases._omg_\tpygeodesy.triaxials.bases-module.html#_omg_\npygeodesy.triaxials.bases.norm2\tpygeodesy.fmath-module.html#norm2\npygeodesy.triaxials.bases._ALL_DOCS\tpygeodesy.lazily-module.html#_ALL_OTHER\npygeodesy.triaxials.bases._HeightINT0\tpygeodesy.triaxials.bases-module.html#_HeightINT0\npygeodesy.triaxials.bases._hypot2_1\tpygeodesy.triaxials.bases-module.html#_hypot2_1\npygeodesy.triaxials.bases.fmean_\tpygeodesy.fmath-module.html#fmean_\npygeodesy.triaxials.bases.sqrt0\tpygeodesy.fmath-module.html#sqrt0\npygeodesy.triaxials.bases.deprecated_property_RO\tpygeodesy.props-module.html#deprecated_property_RO\npygeodesy.triaxials.bases._otherV3d\tpygeodesy.vector3d-module.html#_otherV3d\npygeodesy.triaxials.bases._over02\tpygeodesy.triaxials.bases-module.html#_over02\npygeodesy.triaxials.bases._MAXIT\tpygeodesy.triaxials.bases-module.html#_MAXIT\npygeodesy.triaxials.bases.m2km\tpygeodesy.utily-module.html#m2km\npygeodesy.triaxials.bases._KTpFlat\tpygeodesy.triaxials.bases-module.html#_KTpFlat\npygeodesy.triaxials.bases.fabs\tpygeodesy.booleans-module.html#fabs\npygeodesy.triaxials.bases.sqrt\tpygeodesy.geodesicx.gx-module.html#sqrt\npygeodesy.triaxials.bases.__package__\tpygeodesy.triaxials.bases-module.html#__package__\npygeodesy.triaxials.bases._Lat0\tpygeodesy.units-module.html#_Lat0\npygeodesy.triaxials.bases.deprecated_method\tpygeodesy.props-module.html#deprecated_method\npygeodesy.triaxials.bases.__all__\tpygeodesy.triaxials.bases-module.html#__all__\npygeodesy.triaxials.bases._bet_\tpygeodesy.triaxials.bases-module.html#_bet_\npygeodesy.triaxials.bases._1_over\tpygeodesy.constants-module.html#_1_over\npygeodesy.triaxials.conformal3\tpygeodesy.triaxials.conformal3-module.html\npygeodesy.triaxials.conformal3._NLOG2\tpygeodesy.triaxials.conformal3-module.html#_NLOG2\npygeodesy.triaxials.conformal3._Pass\tpygeodesy.named-module.html#_Pass\npygeodesy.triaxials.conformal3._F\tpygeodesy.triaxials.conformal3-module.html#_F\npygeodesy.triaxials.conformal3._gam_\tpygeodesy.triaxials.conformal3-module.html#_gam_\npygeodesy.triaxials.conformal3._invScale\tpygeodesy.triaxials.conformal3-module.html#_invScale\npygeodesy.triaxials.conformal3._root4\tpygeodesy.triaxials.conformal3-module.html#_root4\npygeodesy.triaxials.conformal3._cf2en\tpygeodesy.triaxials.conformal3-module.html#_cf2en\npygeodesy.triaxials.conformal3._Pi\tpygeodesy.triaxials.conformal3-module.html#_Pi\npygeodesy.triaxials.conformal3.sincos2\tpygeodesy.utily-module.html#sincos2\npygeodesy.triaxials.conformal3.__package__\tpygeodesy.triaxials.conformal3-module.html#__package__\npygeodesy.triaxials.conformal3.signBit\tpygeodesy.basics-module.html#signBit\npygeodesy.triaxials.conformal3._bet_omg_name\tpygeodesy.triaxials.conformal3-module.html#_bet_omg_name\npygeodesy.triaxials.conformal3._invRy2\tpygeodesy.triaxials.conformal3-module.html#_invRy2\npygeodesy.triaxials.conformal3.hypot1\tpygeodesy.fmath-module.html#hypot1\npygeodesy.triaxials.conformal3._LOG2MIN\tpygeodesy.triaxials.conformal3-module.html#_LOG2MIN\npygeodesy.triaxials.conformal3._1_over\tpygeodesy.constants-module.html#_1_over\npygeodesy.triaxials.conformal3._Neg\tpygeodesy.triaxials.conformal3-module.html#_Neg\npygeodesy.triaxials.conformal3._copysign_1_0\tpygeodesy.constants-module.html#_copysign_1_0\npygeodesy.triaxials.conformal3.T\tpygeodesy.triaxials.conformal3-module.html#T\npygeodesy.triaxials.conformal3.t\tpygeodesy.triaxials.conformal3-module.html#t\npygeodesy.triaxials.conformal3.remainder\tpygeodesy.constants-module.html#remainder\npygeodesy.triaxials.conformal3.c\tpygeodesy.triaxials.conformal3-module.html#c\npygeodesy.triaxials.conformal3.__all__\tpygeodesy.triaxials.conformal3-module.html#__all__\npygeodesy.triaxials.conformal3._copysign\tpygeodesy.geodesicx.gx-module.html#copysign\npygeodesy.triaxials.conformal3.isAng\tpygeodesy.angles-module.html#isAng\npygeodesy.triaxials.conformal3._invF\tpygeodesy.triaxials.conformal3-module.html#_invF\npygeodesy.triaxials.conformal3._over\tpygeodesy.constants-module.html#_over\npygeodesy.triaxials.conformal3._invPi\tpygeodesy.triaxials.conformal3-module.html#_invPi\npygeodesy.triaxials.triaxial3\tpygeodesy.triaxials.triaxial3-module.html\npygeodesy.triaxials.triaxial3._v_h_llk_name_NOIDAL\tpygeodesy.triaxials.triaxial3-module.html#_v_h_llk_name_NOIDAL\npygeodesy.triaxials.triaxial3._xkwds\tpygeodesy.errors-module.html#_xkwds\npygeodesy.triaxials.triaxial3._otherV3d_\tpygeodesy.triaxials.bases-module.html#_otherV3d_\npygeodesy.triaxials.triaxial3.fsumf_\tpygeodesy.fsums-module.html#fsumf_\npygeodesy.triaxials.triaxial3._h_llk_unit_name\tpygeodesy.triaxials.triaxial3-module.html#_h_llk_unit_name\npygeodesy.triaxials.triaxial3.cbrt2\tpygeodesy.fmath-module.html#cbrt2\npygeodesy.triaxials.triaxial3._copysign_1_0\tpygeodesy.constants-module.html#_copysign_1_0\npygeodesy.triaxials.triaxial3._TOL2\tpygeodesy.triaxials.triaxial3-module.html#_TOL2\npygeodesy.triaxials.triaxial3._over\tpygeodesy.constants-module.html#_over\npygeodesy.triaxials.triaxial3.Ang_\tpygeodesy.angles-module.html#Ang_\npygeodesy.triaxials.triaxial3._txtz2\tpygeodesy.triaxials.triaxial3-module.html#_txtz2\npygeodesy.triaxials.triaxial3._Pass\tpygeodesy.named-module.html#_Pass\npygeodesy.triaxials.triaxial3._v_h_llk_name\tpygeodesy.triaxials.triaxial3-module.html#_v_h_llk_name\npygeodesy.triaxials.triaxial3.__all__\tpygeodesy.triaxials.triaxial3-module.html#__all__\npygeodesy.triaxials.triaxial3._zet_\tpygeodesy.triaxials.triaxial3-module.html#_zet_\npygeodesy.triaxials.triaxial3._copysign_0_0\tpygeodesy.constants-module.html#_copysign_0_0\npygeodesy.triaxials.triaxial3._isfinite\tpygeodesy.constants-module.html#_isfinite\npygeodesy.triaxials.triaxial3._sqrt0\tpygeodesy.triaxials.bases-module.html#_sqrt0\npygeodesy.triaxials.triaxial3._xkwds_get\tpygeodesy.errors-module.html#_xkwds_get\npygeodesy.triaxials.triaxial3.norm2\tpygeodesy.fmath-module.html#norm2\npygeodesy.triaxials.triaxial3._flipsign\tpygeodesy.constants-module.html#_flipsign\npygeodesy.triaxials.triaxial3._HeightINT0\tpygeodesy.triaxials.bases-module.html#_HeightINT0\npygeodesy.triaxials.triaxial3._SinCos2\tpygeodesy.angles-module.html#_SinCos2\npygeodesy.triaxials.triaxial3._d_t\tpygeodesy.triaxials.triaxial3-module.html#_d_t\npygeodesy.triaxials.triaxial3.hypot\tpygeodesy.fmath-module.html#hypot\npygeodesy.triaxials.triaxial3._TOL\tpygeodesy.triaxials.triaxial3-module.html#_TOL\npygeodesy.triaxials.triaxial3.hypot2\tpygeodesy.fmath-module.html#hypot2\npygeodesy.triaxials.triaxial3._xattr\tpygeodesy.errors-module.html#_xattr\npygeodesy.triaxials.triaxial3.Triaxial3s\tpygeodesy.triaxials.triaxial3-module.html#Triaxial3s\npygeodesy.triaxials.triaxial3._solve\tpygeodesy.triaxials.triaxial3-module.html#_solve\npygeodesy.triaxials.triaxial3._NAN3d\tpygeodesy.triaxials.triaxial3-module.html#_NAN3d\npygeodesy.triaxials.triaxial3._xkwds_pop2\tpygeodesy.errors-module.html#_xkwds_pop2\npygeodesy.triaxials.triaxial3.fabs\tpygeodesy.booleans-module.html#fabs\npygeodesy.triaxials.triaxial3.sincos2\tpygeodesy.utily-module.html#sincos2\npygeodesy.triaxials.triaxial3._cubic\tpygeodesy.triaxials.triaxial3-module.html#_cubic\npygeodesy.triaxials.triaxial3.sqrt\tpygeodesy.geodesicx.gx-module.html#sqrt\npygeodesy.triaxials.triaxial3.__package__\tpygeodesy.triaxials.triaxial3-module.html#__package__\npygeodesy.triaxials.triaxial3._alp_\tpygeodesy.triaxials.triaxial3-module.html#_alp_\npygeodesy.triaxials.triaxial3._27_0\tpygeodesy.triaxials.triaxial3-module.html#_27_0\npygeodesy.triaxials.triaxial3._copysign\tpygeodesy.geodesicx.gx-module.html#copysign\npygeodesy.triaxials.triaxial3.atan2\tpygeodesy.utily-module.html#atan2\npygeodesy.triaxials.triaxial3.map1\tpygeodesy.basics-module.html#map1\npygeodesy.triaxials.triaxial3._1_over\tpygeodesy.constants-module.html#_1_over\npygeodesy.triaxials.triaxial3.fdot\tpygeodesy.fmath-module.html#fdot\npygeodesy.triaxials.triaxial5\tpygeodesy.triaxials.triaxial5-module.html\npygeodesy.triaxials.triaxial5._validate\tpygeodesy.triaxials.triaxial5-module.html#_validate\npygeodesy.triaxials.triaxial5.fsum1f_\tpygeodesy.fsums-module.html#fsum1f_\npygeodesy.triaxials.triaxial5.isLatLon\tpygeodesy.basics-module.html#isLatLon\npygeodesy.triaxials.triaxial5._rootNd\tpygeodesy.triaxials.triaxial5-module.html#_rootNd\npygeodesy.triaxials.triaxial5.fsumf_\tpygeodesy.fsums-module.html#fsumf_\npygeodesy.triaxials.triaxial5._name__\tpygeodesy.named-module.html#_name__\npygeodesy.triaxials.triaxial5.hartzell4\tpygeodesy.triaxials.triaxial5-module.html#hartzell4\npygeodesy.triaxials.triaxial5._reverseLatLon3\tpygeodesy.triaxials.triaxial5-module.html#_reverseLatLon3\npygeodesy.triaxials.triaxial5._TRIPS\tpygeodesy.triaxials.triaxial5-module.html#_TRIPS\npygeodesy.triaxials.triaxial5.t\tpygeodesy.triaxials.triaxial5-module.html#t\npygeodesy.triaxials.triaxial5._over\tpygeodesy.constants-module.html#_over\npygeodesy.triaxials.triaxial5._over0\tpygeodesy.triaxials.bases-module.html#_over0\npygeodesy.triaxials.triaxial5._hartzell3\tpygeodesy.triaxials.triaxial5-module.html#_hartzell3\npygeodesy.triaxials.triaxial5._omega_\tpygeodesy.triaxials.triaxial5-module.html#_omega_\npygeodesy.triaxials.triaxial5.hypot\tpygeodesy.fmath-module.html#hypot\npygeodesy.triaxials.triaxial5._Pass\tpygeodesy.named-module.html#_Pass\npygeodesy.triaxials.triaxial5.__all__\tpygeodesy.triaxials.triaxial5-module.html#__all__\npygeodesy.triaxials.triaxial5.atan2d\tpygeodesy.utily-module.html#atan2d\npygeodesy.triaxials.triaxial5._isin\tpygeodesy.basics-module.html#_isin\npygeodesy.triaxials.triaxial5._otherV3d_\tpygeodesy.triaxials.bases-module.html#_otherV3d_\npygeodesy.triaxials.triaxial5._isfinite\tpygeodesy.constants-module.html#_isfinite\npygeodesy.triaxials.triaxial5.isnear1\tpygeodesy.constants-module.html#isnear1\npygeodesy.triaxials.triaxial5._sqrt0\tpygeodesy.triaxials.bases-module.html#_sqrt0\npygeodesy.triaxials.triaxial5.hypot_\tpygeodesy.fmath-module.html#hypot_\npygeodesy.triaxials.triaxial5._HeightINT0\tpygeodesy.triaxials.bases-module.html#_HeightINT0\npygeodesy.triaxials.triaxial5._hypot2_1\tpygeodesy.triaxials.bases-module.html#_hypot2_1\npygeodesy.triaxials.triaxial5._SinCos2\tpygeodesy.angles-module.html#_SinCos2\npygeodesy.triaxials.triaxial5._plumbTo5\tpygeodesy.triaxials.triaxial5-module.html#_plumbTo5\npygeodesy.triaxials.triaxial5._plumbTo3\tpygeodesy.triaxials.triaxial5-module.html#_plumbTo3\npygeodesy.triaxials.triaxial5._otherV3d\tpygeodesy.vector3d-module.html#_otherV3d\npygeodesy.triaxials.triaxial5._over02\tpygeodesy.triaxials.bases-module.html#_over02\npygeodesy.triaxials.triaxial5.height4\tpygeodesy.triaxials.triaxial5-module.html#height4\npygeodesy.triaxials.triaxial5._spherical_datum\tpygeodesy.datums-module.html#_spherical_datum\npygeodesy.triaxials.triaxial5._ordered\tpygeodesy.triaxials.triaxial5-module.html#_ordered\npygeodesy.triaxials.triaxial5.fabs\tpygeodesy.booleans-module.html#fabs\npygeodesy.triaxials.triaxial5.sqrt\tpygeodesy.geodesicx.gx-module.html#sqrt\npygeodesy.triaxials.triaxial5.__package__\tpygeodesy.triaxials.triaxial5-module.html#__package__\npygeodesy.triaxials.triaxial5._tri_biaxial\tpygeodesy.triaxials.triaxial5-module.html#_tri_biaxial\npygeodesy.triaxials.triaxial5.Triaxials\tpygeodesy.triaxials.triaxial5-module.html#Triaxials\npygeodesy.triaxials.triaxial5._xkwds_pop2\tpygeodesy.errors-module.html#_xkwds_pop2\npygeodesy.triaxials.triaxial5.atan2\tpygeodesy.utily-module.html#atan2\npygeodesy.triaxials.triaxial5._plumbTo4\tpygeodesy.triaxials.triaxial5-module.html#_plumbTo4\npygeodesy.triaxials.triaxial5.fdot\tpygeodesy.fmath-module.html#fdot\npygeodesy.triaxials.triaxial5.T\tpygeodesy.triaxials.triaxial5-module.html#T\npygeodesy.units\tpygeodesy.units-module.html\npygeodesy.units._isRadius\tpygeodesy.units-module.html#_isRadius\npygeodesy.units._2000km\tpygeodesy.units-module.html#_2000km\npygeodesy.units.issubclassof\tpygeodesy.basics-module.html#issubclassof\npygeodesy.units._Meters\tpygeodesy.units-module.html#_Meters\npygeodesy.units._toDMS\tpygeodesy.dms-module.html#_toDMS\npygeodesy.units.parseDMS\tpygeodesy.dms-module.html#parseDMS\npygeodesy.units._toUnit\tpygeodesy.units-module.html#_toUnit\npygeodesy.units._xlimits\tpygeodesy.units-module.html#_xlimits\npygeodesy.units.__all__\tpygeodesy.units-module.html#__all__\npygeodesy.units._1um\tpygeodesy.units-module.html#_1um\npygeodesy.units._1mm\tpygeodesy.units-module.html#_1mm\npygeodesy.units._10um\tpygeodesy.units-module.html#_10um\npygeodesy.units.isscalar\tpygeodesy.basics-module.html#isscalar\npygeodesy.units._Degrees\tpygeodesy.units-module.html#_Degrees\npygeodesy.units._isScalar\tpygeodesy.units-module.html#_isScalar\npygeodesy.units._100km\tpygeodesy.units-module.html#_100km\npygeodesy.units._isMeter\tpygeodesy.units-module.html#_isMeter\npygeodesy.units._Lat0\tpygeodesy.units-module.html#_Lat0\npygeodesy.units.fstr\tpygeodesy.streprs-module.html#fstr\npygeodesy.units._isHeight\tpygeodesy.units-module.html#_isHeight\npygeodesy.units._ALL_DOCS\tpygeodesy.lazily-module.html#_ALL_OTHER\npygeodesy.units._heigHt\tpygeodesy.units-module.html#_heigHt\npygeodesy.units._isDegrees\tpygeodesy.units-module.html#_isDegrees\npygeodesy.units._umod_360\tpygeodesy.constants-module.html#_umod_360\npygeodesy.units._fi_j2\tpygeodesy.units-module.html#_fi_j2\npygeodesy.units._Radians\tpygeodesy.units-module.html#_Radians\npygeodesy.units.signOf\tpygeodesy.basics-module.html#signOf\npygeodesy.units.typename\tpygeodesy.internals-module.html#typename\npygeodesy.units._xattr\tpygeodesy.errors-module.html#_xattr\npygeodesy.units._ScalarU\tpygeodesy.units-module.html#_ScalarU\npygeodesy.units._isRadians\tpygeodesy.units-module.html#_isRadians\npygeodesy.units.parseRad\tpygeodesy.dms-module.html#parseRad\npygeodesy.units.__package__\tpygeodesy.units-module.html#__package__\npygeodesy.units._xcallable\tpygeodesy.errors-module.html#_xcallable\npygeodesy.units._Radii\tpygeodesy.units-module.html#_Radii\npygeodesy.units._Degrees_new\tpygeodesy.units-module.html#_Degrees_new\npygeodesy.unitsBase\tpygeodesy.unitsBase-module.html\npygeodesy.unitsBase._Str_degrees2\tpygeodesy.unitsBase-module.html#_Str_degrees2\npygeodesy.unitsBase.modulename\tpygeodesy.named-module.html#modulename\npygeodesy.unitsBase._IsnotError\tpygeodesy.errors-module.html#_IsnotError\npygeodesy.unitsBase._xUnit\tpygeodesy.unitsBase-module.html#_xUnit\npygeodesy.unitsBase._xUnits\tpygeodesy.unitsBase-module.html#_xUnits\npygeodesy.unitsBase._ALL_DOCS\tpygeodesy.lazily-module.html#_ALL_OTHER\npygeodesy.unitsBase.property_doc_\tpygeodesy.props-module.html#property_doc_\npygeodesy.unitsBase.typename\tpygeodesy.internals-module.html#typename\npygeodesy.unitsBase.__package__\tpygeodesy.unitsBase-module.html#__package__\npygeodesy.unitsBase.issubclassof\tpygeodesy.basics-module.html#issubclassof\npygeodesy.unitsBase._Str_NN\tpygeodesy.unitsBase-module.html#_Str_NN\npygeodesy.unitsBase._Str_radians2\tpygeodesy.unitsBase-module.html#_Str_radians2\npygeodesy.unitsBase._xsubclassof\tpygeodesy.basics-module.html#_xsubclassof\npygeodesy.unitsBase._isin\tpygeodesy.basics-module.html#_isin\npygeodesy.unitsBase._Str_meter\tpygeodesy.unitsBase-module.html#_Str_meter\npygeodesy.unitsBase._XError\tpygeodesy.errors-module.html#_XError\npygeodesy.unitsBase.fstr\tpygeodesy.streprs-module.html#fstr\npygeodesy.unitsBase.isstr\tpygeodesy.basics-module.html#isstr\npygeodesy.unitsBase.__all__\tpygeodesy.unitsBase-module.html#__all__\npygeodesy.unitsBase._Str_degrees\tpygeodesy.unitsBase-module.html#_Str_degrees\npygeodesy.unitsBase._Str_radians\tpygeodesy.unitsBase-module.html#_Str_radians\npygeodesy.ups\tpygeodesy.ups-module.html\npygeodesy.ups.isnear90\tpygeodesy.constants-module.html#isnear90\npygeodesy.ups.degDMS\tpygeodesy.dms-module.html#degDMS\npygeodesy.ups._scale\tpygeodesy.ups-module.html#_scale\npygeodesy.ups._BZ_UPS\tpygeodesy.ups-module.html#_BZ_UPS\npygeodesy.ups._to4lldn\tpygeodesy.utmupsBase-module.html#_to4lldn\npygeodesy.ups._to3zBhp\tpygeodesy.utmupsBase-module.html#_to3zBhp\npygeodesy.ups.upsZoneBand5\tpygeodesy.ups-module.html#upsZoneBand5\npygeodesy.ups.nameof\tpygeodesy.named-module.html#nameof\npygeodesy.ups._K1_UPS\tpygeodesy.ups-module.html#_K1_UPS\npygeodesy.ups._Falsing\tpygeodesy.ups-module.html#_Falsing\npygeodesy.ups._neg\tpygeodesy.basics-module.html#neg\npygeodesy.ups.sincos2d\tpygeodesy.utily-module.html#sincos2d\npygeodesy.ups._hemi\tpygeodesy.utmupsBase-module.html#_hemi\npygeodesy.ups.__package__\tpygeodesy.ups-module.html#__package__\npygeodesy.ups.toUps8\tpygeodesy.ups-module.html#toUps8\npygeodesy.ups.parseUPS5\tpygeodesy.ups-module.html#parseUPS5\npygeodesy.ups._toBand\tpygeodesy.ups-module.html#_toBand\npygeodesy.ups.__all__\tpygeodesy.ups-module.html#__all__\npygeodesy.ups.sqrt0\tpygeodesy.fmath-module.html#sqrt0\npygeodesy.ups.atan2\tpygeodesy.utily-module.html#atan2\npygeodesy.ups.atan1d\tpygeodesy.utily-module.html#atan1d\npygeodesy.ups._update_all\tpygeodesy.props-module.html#_update_all\npygeodesy.ups._to3zll\tpygeodesy.utmupsBase-module.html#_to3zll\npygeodesy.ups._xkwds_pop2\tpygeodesy.errors-module.html#_xkwds_pop2\npygeodesy.ups._ellipsoidal_datum\tpygeodesy.datums-module.html#_ellipsoidal_datum\npygeodesy.ups.property_doc_\tpygeodesy.props-module.html#property_doc_\npygeodesy.ups.parseDMS2\tpygeodesy.dms-module.html#parseDMS2\npygeodesy.ups._under\tpygeodesy.internals-module.html#_under\npygeodesy.ups.degrees180\tpygeodesy.utily-module.html#degrees180\npygeodesy.ups.hypot\tpygeodesy.fmath-module.html#hypot\npygeodesy.ups._envPYGEODESY\tpygeodesy.internals-module.html#_envPYGEODESY\npygeodesy.ups.hypot1\tpygeodesy.fmath-module.html#hypot1\npygeodesy.ups._parseUTMUPS5\tpygeodesy.utmupsBase-module.html#_parseUTMUPS5\npygeodesy.ups.deprecated_method\tpygeodesy.props-module.html#deprecated_method\npygeodesy.utily\tpygeodesy.utily-module.html\npygeodesy.utily._xkwds\tpygeodesy.errors-module.html#_xkwds\npygeodesy.utily.km2m\tpygeodesy.utily-module.html#km2m\npygeodesy.utily._M\tpygeodesy.utily-module.html#_M\npygeodesy.utily.radiansPI2\tpygeodesy.utily-module.html#radiansPI2\npygeodesy.utily.gdf\tpygeodesy.utily-module.html#gdf\npygeodesy.utily._G\tpygeodesy.utily-module.html#_G\npygeodesy.utily.degrees90\tpygeodesy.utily-module.html#degrees90\npygeodesy.utily.__package__\tpygeodesy.utily-module.html#__package__\npygeodesy.utily.wrap_normal\tpygeodesy.utily-module.html#wrap_normal\npygeodesy.utily.unrollPI\tpygeodesy.utily-module.html#unrollPI\npygeodesy.utily.degrees2grades\tpygeodesy.utily-module.html#degrees2grades\npygeodesy.utily.yard2m\tpygeodesy.utily-module.html#yard2m\npygeodesy.utily.degrees180\tpygeodesy.utily-module.html#degrees180\npygeodesy.utily.hav\tpygeodesy.utily-module.html#hav\npygeodesy.utily.m2chain\tpygeodesy.utily-module.html#m2chain\npygeodesy.utily.acos1\tpygeodesy.utily-module.html#acos1\npygeodesy.utily._tanu\tpygeodesy.utily-module.html#_tanu\npygeodesy.utily.cotd\tpygeodesy.utily-module.html#cotd\npygeodesy.utily.m2degrees\tpygeodesy.utily-module.html#m2degrees\npygeodesy.utily._Wrap\tpygeodesy.utily-module.html#_Wrap\npygeodesy.utily.grades\tpygeodesy.utily-module.html#grades\npygeodesy.utily.acre2m2\tpygeodesy.utily-module.html#acre2m2\npygeodesy.utily.wrap360\tpygeodesy.utily-module.html#wrap360\npygeodesy.utily.cot_\tpygeodesy.utily-module.html#cot_\npygeodesy.utily.radiansPI_2\tpygeodesy.utily-module.html#radiansPI_2\npygeodesy.utily.isstr\tpygeodesy.basics-module.html#isstr\npygeodesy.utily.tand_\tpygeodesy.utily-module.html#tand_\npygeodesy.utily._over_1\tpygeodesy.constants-module.html#_over_1\npygeodesy.utily.radians\tpygeodesy.utily-module.html#radians\npygeodesy.utily.sincos2_\tpygeodesy.utily-module.html#sincos2_\npygeodesy.utily.isnan\tpygeodesy.constants-module.html#isnan\npygeodesy.utily.m2ft\tpygeodesy.utily-module.html#m2ft\npygeodesy.utily.truncate\tpygeodesy.utily-module.html#truncate\npygeodesy.utily.__all__\tpygeodesy.utily-module.html#__all__\npygeodesy.utily._circle4radius\tpygeodesy.utily-module.html#_circle4radius\npygeodesy.utily.toise2m\tpygeodesy.utily-module.html#toise2m\npygeodesy.utily.atan2p\tpygeodesy.utily-module.html#atan2p\npygeodesy.utily.m2toise\tpygeodesy.utily-module.html#m2toise\npygeodesy.utily.wrap90\tpygeodesy.utily-module.html#wrap90\npygeodesy.utily._nonfinite\tpygeodesy.utily-module.html#_nonfinite\npygeodesy.utily.atan2b\tpygeodesy.utily-module.html#atan2b\npygeodesy.utily.NM2m\tpygeodesy.utily-module.html#NM2m\npygeodesy.utily.atan2d\tpygeodesy.utily-module.html#atan2d\npygeodesy.utily.ft2m\tpygeodesy.utily-module.html#ft2m\npygeodesy.utily.tan_2\tpygeodesy.utily-module.html#tan_2\npygeodesy.utily._copysignINF\tpygeodesy.constants-module.html#_copysignINF\npygeodesy.utily._sin0cos2\tpygeodesy.utily-module.html#_sin0cos2\npygeodesy.utily.sincostan3d\tpygeodesy.utily-module.html#sincostan3d\npygeodesy.utily.cotd_\tpygeodesy.utily-module.html#cotd_\npygeodesy.utily._copysign_0_0\tpygeodesy.constants-module.html#_copysign_0_0\npygeodesy.utily.m2radians\tpygeodesy.utily-module.html#m2radians\npygeodesy.utily.cot\tpygeodesy.utily-module.html#cot\npygeodesy.utily._cotu\tpygeodesy.utily-module.html#_cotu\npygeodesy.utily.m2SM\tpygeodesy.utily-module.html#m2SM\npygeodesy.utily.wrap180\tpygeodesy.utily-module.html#wrap180\npygeodesy.utily._isfinite\tpygeodesy.constants-module.html#_isfinite\npygeodesy.utily.m2yard\tpygeodesy.utily-module.html#m2yard\npygeodesy.utily.unroll180\tpygeodesy.utily-module.html#unroll180\npygeodesy.utily.m2acre\tpygeodesy.utily-module.html#m2acre\npygeodesy.utily.radiansPI\tpygeodesy.utily-module.html#radiansPI\npygeodesy.utily._xkwds_get\tpygeodesy.errors-module.html#_xkwds_get\npygeodesy.utily.asin1\tpygeodesy.utily-module.html#asin1\npygeodesy.utily.acre2ha\tpygeodesy.utily-module.html#acre2ha\npygeodesy.utily.sincos2d\tpygeodesy.utily-module.html#sincos2d\npygeodesy.utily._SIN_45\tpygeodesy.utily-module.html#_SIN_45\npygeodesy.utily.ha2acre\tpygeodesy.utily-module.html#ha2acre\npygeodesy.utily.grades2degrees\tpygeodesy.utily-module.html#grades2degrees\npygeodesy.utily._atan1u\tpygeodesy.utily-module.html#_atan1u\npygeodesy.utily._m2rad\tpygeodesy.utily-module.html#_m2rad\npygeodesy.utily._sincostan3\tpygeodesy.utily-module.html#_sincostan3\npygeodesy.utily.degrees\tpygeodesy.utily-module.html#degrees\npygeodesy.utily.wrapPI2\tpygeodesy.utily-module.html#wrapPI2\npygeodesy.utily.isinstanceof\tpygeodesy.basics-module.html#isinstanceof\npygeodesy.utily.grades400\tpygeodesy.utily-module.html#grades400\npygeodesy.utily.wrapPI\tpygeodesy.utily-module.html#wrapPI\npygeodesy.utily._azireversed\tpygeodesy.utily-module.html#_azireversed\npygeodesy.utily.tan_\tpygeodesy.utily-module.html#tan_\npygeodesy.utily._umod_360\tpygeodesy.constants-module.html#_umod_360\npygeodesy.utily.sincostan3\tpygeodesy.utily-module.html#sincostan3\npygeodesy.utily._rad2m\tpygeodesy.utily-module.html#_rad2m\npygeodesy.utily.ha2m2\tpygeodesy.utily-module.html#ha2m2\npygeodesy.utily.m2fathom\tpygeodesy.utily-module.html#m2fathom\npygeodesy.utily.degrees2m\tpygeodesy.utily-module.html#degrees2m\npygeodesy.utily.SinCos2\tpygeodesy.utily-module.html#SinCos2\npygeodesy.utily.tand\tpygeodesy.utily-module.html#tand\npygeodesy.utily.typename\tpygeodesy.internals-module.html#typename\npygeodesy.utily.m2km\tpygeodesy.utily-module.html#m2km\npygeodesy.utily._passargs\tpygeodesy.internals-module.html#_passargs\npygeodesy.utily.sincos2d_\tpygeodesy.utily-module.html#sincos2d_\npygeodesy.utily.m2ha\tpygeodesy.utily-module.html#m2ha\npygeodesy.utily.circle4\tpygeodesy.utily-module.html#circle4\npygeodesy.utily.tanPI_2_2\tpygeodesy.utily-module.html#tanPI_2_2\npygeodesy.utily.furlong2m\tpygeodesy.utily-module.html#furlong2m\npygeodesy.utily.tan\tpygeodesy.utily-module.html#tan\npygeodesy.utily.degrees360\tpygeodesy.utily-module.html#degrees360\npygeodesy.utily.SM2m\tpygeodesy.utily-module.html#SM2m\npygeodesy.utily.atan2\tpygeodesy.utily-module.html#atan2\npygeodesy.utily.sincos2\tpygeodesy.utily-module.html#sincos2\npygeodesy.utily._float\tpygeodesy.constants-module.html#_float\npygeodesy.utily.m2furlong\tpygeodesy.utily-module.html#m2furlong\npygeodesy.utily._umod_PI2\tpygeodesy.constants-module.html#_umod_PI2\npygeodesy.utily.m2NM\tpygeodesy.utily-module.html#m2NM\npygeodesy.utily.radians2m\tpygeodesy.utily-module.html#radians2m\npygeodesy.utily.isint\tpygeodesy.basics-module.html#isint\npygeodesy.utily.atan1d\tpygeodesy.utily-module.html#atan1d\npygeodesy.utily.wrapPI_2\tpygeodesy.utily-module.html#wrapPI_2\npygeodesy.utily._abs1nan\tpygeodesy.utily-module.html#_abs1nan\npygeodesy.utily._wrapu\tpygeodesy.utily-module.html#_wrapu\npygeodesy.utily._SIN_30\tpygeodesy.utily-module.html#_SIN_30\npygeodesy.utily._unrollon3\tpygeodesy.utily-module.html#_unrollon3\npygeodesy.utily.agdf\tpygeodesy.utily-module.html#agdf\npygeodesy.utily.chain2m\tpygeodesy.utily-module.html#chain2m\npygeodesy.utily._loneg\tpygeodesy.utily-module.html#_loneg\npygeodesy.utily._copysign\tpygeodesy.geodesicx.gx-module.html#copysign\npygeodesy.utily.isnear0\tpygeodesy.constants-module.html#isnear0\npygeodesy.utily._unrollon\tpygeodesy.utily-module.html#_unrollon\npygeodesy.utily.atan1\tpygeodesy.utily-module.html#atan1\npygeodesy.utily.grades2radians\tpygeodesy.utily-module.html#grades2radians\npygeodesy.utily.fathom2m\tpygeodesy.utily-module.html#fathom2m\npygeodesy.utm\tpygeodesy.utm-module.html\npygeodesy.utm._Bands\tpygeodesy.utm-module.html#_Bands\npygeodesy.utm.degrees90\tpygeodesy.utily-module.html#degrees90\npygeodesy.utm.degrees180\tpygeodesy.utily-module.html#degrees180\npygeodesy.utm.unstr\tpygeodesy.streprs-module.html#unstr\npygeodesy.utm._ellipsoidal_datum\tpygeodesy.datums-module.html#_ellipsoidal_datum\npygeodesy.utm._to4zBll\tpygeodesy.utm-module.html#_to4zBll\npygeodesy.utm._hemi\tpygeodesy.utmupsBase-module.html#_hemi\npygeodesy.utm._under\tpygeodesy.internals-module.html#_under\npygeodesy.utm.degDMS\tpygeodesy.dms-module.html#degDMS\npygeodesy.utm._false2\tpygeodesy.utm-module.html#_false2\npygeodesy.utm._parseUTM5\tpygeodesy.utm-module.html#_parseUTM5\npygeodesy.utm.hypot\tpygeodesy.fmath-module.html#hypot\npygeodesy.utm.property_doc_\tpygeodesy.props-module.html#property_doc_\npygeodesy.utm.__all__\tpygeodesy.utm-module.html#__all__\npygeodesy.utm._FalseNorthing\tpygeodesy.utm-module.html#_FalseNorthing\npygeodesy.utm.fdot3\tpygeodesy.fmath-module.html#fdot3\npygeodesy.utm.fdot_\tpygeodesy.fmath-module.html#fdot_\npygeodesy.utm.parseDMS2\tpygeodesy.dms-module.html#parseDMS2\npygeodesy.utm.utmZoneBand5\tpygeodesy.utm-module.html#utmZoneBand5\npygeodesy.utm._to3zBlat\tpygeodesy.utm-module.html#_to3zBlat\npygeodesy.utm._to4lldn\tpygeodesy.utmupsBase-module.html#_to4lldn\npygeodesy.utm._xkwds_get\tpygeodesy.errors-module.html#_xkwds_get\npygeodesy.utm._to3zBhp\tpygeodesy.utmupsBase-module.html#_to3zBhp\npygeodesy.utm.toUtm8\tpygeodesy.utm-module.html#toUtm8\npygeodesy.utm.hypot1\tpygeodesy.fmath-module.html#hypot1\npygeodesy.utm._to7zBlldfn\tpygeodesy.utm-module.html#_to7zBlldfn\npygeodesy.utm._parseUTMUPS5\tpygeodesy.utmupsBase-module.html#_parseUTMUPS5\npygeodesy.utm._SvalbardXzone\tpygeodesy.utm-module.html#_SvalbardXzone\npygeodesy.utm._bandLat_\tpygeodesy.utm-module.html#_bandLat_\npygeodesy.utm._FalseEasting\tpygeodesy.utm-module.html#_FalseEasting\npygeodesy.utm._toXtm8\tpygeodesy.utm-module.html#_toXtm8\npygeodesy.utm.len2\tpygeodesy.basics-module.html#len2\npygeodesy.utm._cmlon\tpygeodesy.utm-module.html#_cmlon\npygeodesy.utm._xkwds_pop2\tpygeodesy.errors-module.html#_xkwds_pop2\npygeodesy.utm.sincos2\tpygeodesy.utily-module.html#sincos2\npygeodesy.utm.__package__\tpygeodesy.utm-module.html#__package__\npygeodesy.utm.deprecated_method\tpygeodesy.props-module.html#deprecated_method\npygeodesy.utm._toBand\tpygeodesy.utm-module.html#_toBand\npygeodesy.utm._to3zll\tpygeodesy.utmupsBase-module.html#_to3zll\npygeodesy.utm.parseUTM5\tpygeodesy.utm-module.html#parseUTM5\npygeodesy.utm.map2\tpygeodesy.basics-module.html#map2\npygeodesy.utm.atan2\tpygeodesy.utily-module.html#atan2\npygeodesy.utm.atan1\tpygeodesy.utily-module.html#atan1\npygeodesy.utm.neg\tpygeodesy.basics-module.html#neg\npygeodesy.utmups\tpygeodesy.utmups-module.html\npygeodesy.utmups.toUtmUps8\tpygeodesy.utmups-module.html#toUtmUps8\npygeodesy.utmups.modulename\tpygeodesy.named-module.html#modulename\npygeodesy.utmups.utmupsZoneBand5\tpygeodesy.utmups-module.html#utmupsZoneBand5\npygeodesy.utmups._IsnotError\tpygeodesy.errors-module.html#_IsnotError\npygeodesy.utmups._to4lldn\tpygeodesy.utmupsBase-module.html#_to4lldn\npygeodesy.utmups._MGRS_TILE\tpygeodesy.utmups-module.html#_MGRS_TILE\npygeodesy.utmups.utmupsValidate\tpygeodesy.utmups-module.html#utmupsValidate\npygeodesy.utmups._to3zBhp\tpygeodesy.utmupsBase-module.html#_to3zBhp\npygeodesy.utmups._UTM_S_MAX\tpygeodesy.utmups-module.html#_UTM_S_MAX\npygeodesy.utmups._UTM_S_MIN\tpygeodesy.utmups-module.html#_UTM_S_MIN\npygeodesy.utmups.toUtm8\tpygeodesy.utm-module.html#toUtm8\npygeodesy.utmups.parseUTM5\tpygeodesy.utm-module.html#parseUTM5\npygeodesy.utmups.__package__\tpygeodesy.utmups-module.html#__package__\npygeodesy.utmups.toUps8\tpygeodesy.ups-module.html#toUps8\npygeodesy.utmups.upsZoneBand5\tpygeodesy.ups-module.html#upsZoneBand5\npygeodesy.utmups.__all__\tpygeodesy.utmups-module.html#__all__\npygeodesy.utmups._UTM_N_MIN\tpygeodesy.utmups-module.html#_UTM_N_MIN\npygeodesy.utmups._UTM_C_MAX\tpygeodesy.utmups-module.html#_UTM_C_MAX\npygeodesy.utmups._UTM_N_MAX\tpygeodesy.utmups-module.html#_UTM_N_MAX\npygeodesy.utmups._isin\tpygeodesy.basics-module.html#_isin\npygeodesy.utmups._UPS_N_MIN\tpygeodesy.utmups-module.html#_UPS_N_MIN\npygeodesy.utmups.utmZoneBand5\tpygeodesy.utm-module.html#utmZoneBand5\npygeodesy.utmups.parseUTMUPS5\tpygeodesy.utmups-module.html#parseUTMUPS5\npygeodesy.utmups.UtmUps\tpygeodesy.utmups-module.html#UtmUps\npygeodesy.utmups._xkwds_pop2\tpygeodesy.errors-module.html#_xkwds_pop2\npygeodesy.utmups.parseUPS5\tpygeodesy.ups-module.html#parseUPS5\npygeodesy.utmups._UTM_C_MIN\tpygeodesy.utmups-module.html#_UTM_C_MIN\npygeodesy.utmups._UTM_N_SHIFT\tpygeodesy.utmups-module.html#_UTM_N_SHIFT\npygeodesy.utmups.map1\tpygeodesy.basics-module.html#map1\npygeodesy.utmups._UPS_S_MAX\tpygeodesy.utmups-module.html#_UPS_S_MAX\npygeodesy.utmups._UPS_N_MAX\tpygeodesy.utmups-module.html#_UPS_N_MAX\npygeodesy.utmups.utmupsValidateOK\tpygeodesy.utmups-module.html#utmupsValidateOK\npygeodesy.utmups._UPS_S_MIN\tpygeodesy.utmups-module.html#_UPS_S_MIN\npygeodesy.utmupsBase\tpygeodesy.utmupsBase-module.html\npygeodesy.utmupsBase._xkwds\tpygeodesy.errors-module.html#_xkwds\npygeodesy.utmupsBase._xattrs\tpygeodesy.errors-module.html#_xattrs\npygeodesy.utmupsBase.isscalar\tpygeodesy.basics-module.html#isscalar\npygeodesy.utmupsBase._parseX\tpygeodesy.errors-module.html#_parseX\npygeodesy.utmupsBase._name__\tpygeodesy.named-module.html#_name__\npygeodesy.utmupsBase._xsubclassof\tpygeodesy.basics-module.html#_xsubclassof\npygeodesy.utmupsBase._ellipsoidal_datum\tpygeodesy.datums-module.html#_ellipsoidal_datum\npygeodesy.utmupsBase._UTMUPS_ZONE_MAX\tpygeodesy.utmupsBase-module.html#_UTMUPS_ZONE_MAX\npygeodesy.utmupsBase._hemi\tpygeodesy.utmupsBase-module.html#_hemi\npygeodesy.utmupsBase._UPS_LATS\tpygeodesy.utmupsBase-module.html#_UPS_LATS\npygeodesy.utmupsBase._under\tpygeodesy.internals-module.html#_under\npygeodesy.utmupsBase._xinstanceof\tpygeodesy.basics-module.html#_xinstanceof\npygeodesy.utmupsBase._xzipairs\tpygeodesy.streprs-module.html#_xzipairs\npygeodesy.utmupsBase.degDMS\tpygeodesy.dms-module.html#degDMS\npygeodesy.utmupsBase._UPS_BANDS\tpygeodesy.utmupsBase-module.html#_UPS_BANDS\npygeodesy.utmupsBase._UTM_ZONE_OFF_MAX\tpygeodesy.utmupsBase-module.html#_UTM_ZONE_OFF_MAX\npygeodesy.utmupsBase.property_doc_\tpygeodesy.props-module.html#property_doc_\npygeodesy.utmupsBase._lowerleft\tpygeodesy.utmupsBase-module.html#_lowerleft\npygeodesy.utmupsBase._UTM_LAT_MIN\tpygeodesy.utmupsBase-module.html#_UTM_LAT_MIN\npygeodesy.utmupsBase.__all__\tpygeodesy.utmupsBase-module.html#__all__\npygeodesy.utmupsBase._UTM_LAT_MAX\tpygeodesy.utmupsBase-module.html#_UTM_LAT_MAX\npygeodesy.utmupsBase._toMgrs\tpygeodesy.utmupsBase-module.html#_toMgrs\npygeodesy.utmupsBase._isin\tpygeodesy.basics-module.html#_isin\npygeodesy.utmupsBase.parseDMS2\tpygeodesy.dms-module.html#parseDMS2\npygeodesy.utmupsBase.neg_\tpygeodesy.basics-module.html#neg_\npygeodesy.utmupsBase._to4lldn\tpygeodesy.utmupsBase-module.html#_to4lldn\npygeodesy.utmupsBase._UTMUPS_ZONE_INVALID\tpygeodesy.utmupsBase-module.html#_UTMUPS_ZONE_INVALID\npygeodesy.utmupsBase._to3zBhp\tpygeodesy.utmupsBase-module.html#_to3zBhp\npygeodesy.utmupsBase._ALL_DOCS\tpygeodesy.lazily-module.html#_ALL_OTHER\npygeodesy.utmupsBase.wrap360\tpygeodesy.utily-module.html#wrap360\npygeodesy.utmupsBase._UPS_LAT_MIN\tpygeodesy.utmupsBase-module.html#_UPS_LAT_MIN\npygeodesy.utmupsBase._update_all\tpygeodesy.props-module.html#_update_all\npygeodesy.utmupsBase._UPS_LAT_MAX\tpygeodesy.utmupsBase-module.html#_UPS_LAT_MAX\npygeodesy.utmupsBase.deprecated_property_RO\tpygeodesy.props-module.html#deprecated_property_RO\npygeodesy.utmupsBase._or\tpygeodesy.errors-module.html#_or\npygeodesy.utmupsBase.isstr\tpygeodesy.basics-module.html#isstr\npygeodesy.utmupsBase._parseUTMUPS5\tpygeodesy.utmupsBase-module.html#_parseUTMUPS5\npygeodesy.utmupsBase._UTMUPS_ZONE_MIN\tpygeodesy.utmupsBase-module.html#_UTMUPS_ZONE_MIN\npygeodesy.utmupsBase._float\tpygeodesy.constants-module.html#_float\npygeodesy.utmupsBase.__package__\tpygeodesy.utmupsBase-module.html#__package__\npygeodesy.utmupsBase.deprecated_method\tpygeodesy.props-module.html#deprecated_method\npygeodesy.utmupsBase._UTM_ZONE_MAX\tpygeodesy.utmupsBase-module.html#_UTM_ZONE_MAX\npygeodesy.utmupsBase._UPS_ZONE\tpygeodesy.utmupsBase-module.html#_UPS_ZONE\npygeodesy.utmupsBase.isint\tpygeodesy.basics-module.html#isint\npygeodesy.utmupsBase._UPS_ZONE_STR\tpygeodesy.utmupsBase-module.html#_UPS_ZONE_STR\npygeodesy.utmupsBase._to3zll\tpygeodesy.utmupsBase-module.html#_to3zll\npygeodesy.utmupsBase.fstr\tpygeodesy.streprs-module.html#fstr\npygeodesy.utmupsBase._copysign\tpygeodesy.geodesicx.gx-module.html#copysign\npygeodesy.utmupsBase._xkwds_not\tpygeodesy.errors-module.html#_xkwds_not\npygeodesy.utmupsBase._UTM_ZONE_MIN\tpygeodesy.utmupsBase-module.html#_UTM_ZONE_MIN\npygeodesy.utmupsBase.atan1\tpygeodesy.utily-module.html#atan1\npygeodesy.utmupsBase._fstrENH2\tpygeodesy.streprs-module.html#_fstrENH2\npygeodesy.vector2d\tpygeodesy.vector2d-module.html\npygeodesy.vector2d.hypot2_\tpygeodesy.fmath-module.html#hypot2_\npygeodesy.vector2d._xkwds\tpygeodesy.errors-module.html#_xkwds\npygeodesy.vector2d.fsum1f_\tpygeodesy.fsums-module.html#fsum1f_\npygeodesy.vector2d._meeus2\tpygeodesy.vector2d-module.html#_meeus2\npygeodesy.vector2d._meeus4\tpygeodesy.vector2d-module.html#_meeus4\npygeodesy.vector2d._Fsumf_\tpygeodesy.fsums-module.html#_Fsumf_\npygeodesy.vector2d._circin6\tpygeodesy.vector2d-module.html#_circin6\npygeodesy.vector2d._numpy\tpygeodesy.vector2d-module.html#_numpy\npygeodesy.vector2d.nearestOn\tpygeodesy.vector2d-module.html#nearestOn\npygeodesy.vector2d.fsumf_\tpygeodesy.fsums-module.html#fsumf_\npygeodesy.vector2d._tri3near2far\tpygeodesy.vector2d-module.html#_tri3near2far\npygeodesy.vector2d._rank_\tpygeodesy.vector2d-module.html#_rank_\npygeodesy.vector2d._cA_\tpygeodesy.vector2d-module.html#_cA_\npygeodesy.vector2d._and\tpygeodesy.errors-module.html#_and\npygeodesy.vector2d._nearestOn2\tpygeodesy.vector3d-module.html#_nearestOn2\npygeodesy.vector2d._nVc\tpygeodesy.vector3d-module.html#_nVc\npygeodesy.vector2d._trilaterate2d2\tpygeodesy.vector2d-module.html#_trilaterate2d2\npygeodesy.vector2d._Pass\tpygeodesy.named-module.html#_Pass\npygeodesy.vector2d.trilaterate3d2\tpygeodesy.vector3d-module.html#trilaterate3d2\npygeodesy.vector2d._tricenter3d2\tpygeodesy.vector2d-module.html#_tricenter3d2\npygeodesy.vector2d.__all__\tpygeodesy.vector2d-module.html#__all__\npygeodesy.vector2d.typename\tpygeodesy.internals-module.html#typename\npygeodesy.vector2d._outer_\tpygeodesy.vector2d-module.html#_outer_\npygeodesy.vector2d.fdot_\tpygeodesy.fmath-module.html#fdot_\npygeodesy.vector2d._deltas_\tpygeodesy.vector2d-module.html#_deltas_\npygeodesy.vector2d.circin6\tpygeodesy.vector2d-module.html#circin6\npygeodesy.vector2d._radii11ABC4\tpygeodesy.vector2d-module.html#_radii11ABC4\npygeodesy.vector2d.isnear0\tpygeodesy.constants-module.html#isnear0\npygeodesy.vector2d._iscolinearWith\tpygeodesy.vector2d-module.html#_iscolinearWith\npygeodesy.vector2d.unstr\tpygeodesy.streprs-module.html#unstr\npygeodesy.vector2d._tri5perturbs\tpygeodesy.vector2d-module.html#_tri5perturbs\npygeodesy.vector2d._tri4near2far\tpygeodesy.vector2d-module.html#_tri4near2far\npygeodesy.vector2d.soddy4\tpygeodesy.vector2d-module.html#soddy4\npygeodesy.vector2d._trilaterate3d2\tpygeodesy.vector2d-module.html#_trilaterate3d2\npygeodesy.vector2d._cB_\tpygeodesy.vector2d-module.html#_cB_\npygeodesy.vector2d.meeus2\tpygeodesy.vector2d-module.html#meeus2\npygeodesy.vector2d.circum4\tpygeodesy.vector2d-module.html#circum4\npygeodesy.vector2d.circum3\tpygeodesy.vector2d-module.html#circum3\npygeodesy.vector2d._residuals_\tpygeodesy.vector2d-module.html#_residuals_\npygeodesy.vector2d._nearestOn3d\tpygeodesy.vector3d-module.html#nearestOn\npygeodesy.vector2d._otherV3d\tpygeodesy.vector3d-module.html#_otherV3d\npygeodesy.vector2d._xnumpy\tpygeodesy.basics-module.html#_xnumpy\npygeodesy.vector2d._Type_\tpygeodesy.vector2d-module.html#_Type_\npygeodesy.vector2d.circum4_\tpygeodesy.vector2d-module.html#circum4_\npygeodesy.vector2d.deprecated_function\tpygeodesy.props-module.html#deprecated_function\npygeodesy.vector2d.hypot\tpygeodesy.fmath-module.html#hypot\npygeodesy.vector2d.trilaterate2d2\tpygeodesy.vector2d-module.html#trilaterate2d2\npygeodesy.vector2d.len2\tpygeodesy.basics-module.html#len2\npygeodesy.vector2d.map2\tpygeodesy.basics-module.html#map2\npygeodesy.vector2d.fabs\tpygeodesy.booleans-module.html#fabs\npygeodesy.vector2d._circum3\tpygeodesy.vector2d-module.html#_circum3\npygeodesy.vector2d.radii11\tpygeodesy.vector2d-module.html#radii11\npygeodesy.vector2d.sqrt\tpygeodesy.geodesicx.gx-module.html#sqrt\npygeodesy.vector2d.__package__\tpygeodesy.vector2d-module.html#__package__\npygeodesy.vector2d._xError\tpygeodesy.errors-module.html#_xError\npygeodesy.vector2d._raise_\tpygeodesy.vector2d-module.html#_raise_\npygeodesy.vector2d.triaxum5\tpygeodesy.vector2d-module.html#triaxum5\npygeodesy.vector2d._cC_\tpygeodesy.vector2d-module.html#_cC_\npygeodesy.vector2d.fdot\tpygeodesy.fmath-module.html#fdot\npygeodesy.vector3d\tpygeodesy.vector3d-module.html\npygeodesy.vector3d._xyzhdlln4\tpygeodesy.vector3d-module.html#_xyzhdlln4\npygeodesy.vector3d.isnear0\tpygeodesy.constants-module.html#isnear0\npygeodesy.vector3d.parse3d\tpygeodesy.vector3d-module.html#parse3d\npygeodesy.vector3d._xkwds_get\tpygeodesy.errors-module.html#_xkwds_get\npygeodesy.vector3d.iscolinearWith\tpygeodesy.vector3d-module.html#iscolinearWith\npygeodesy.vector3d.hypot\tpygeodesy.fmath-module.html#hypot\npygeodesy.vector3d._vector2d\tpygeodesy.vector3d-module.html#_vector2d\npygeodesy.vector3d._intersects2\tpygeodesy.vector3d-module.html#_intersects2\npygeodesy.vector3d._ALL_DOCS\tpygeodesy.lazily-module.html#_ALL_OTHER\npygeodesy.vector3d.trilaterate3d2\tpygeodesy.vector3d-module.html#trilaterate3d2\npygeodesy.vector3d.euclid\tpygeodesy.fmath-module.html#euclid\npygeodesy.vector3d.sincos2d\tpygeodesy.utily-module.html#sincos2d\npygeodesy.vector3d.fabs\tpygeodesy.booleans-module.html#fabs\npygeodesy.vector3d.intersection3d3\tpygeodesy.vector3d-module.html#intersection3d3\npygeodesy.vector3d.__package__\tpygeodesy.vector3d-module.html#__package__\npygeodesy.vector3d.nearestOn\tpygeodesy.vector3d-module.html#nearestOn\npygeodesy.vector3d._isDegrees\tpygeodesy.units-module.html#_isDegrees\npygeodesy.vector3d._xError\tpygeodesy.errors-module.html#_xError\npygeodesy.vector3d.intersections2\tpygeodesy.vector3d-module.html#intersections2\npygeodesy.vector3d.atan2b\tpygeodesy.utily-module.html#atan2b\npygeodesy.vector3d._fi_j2\tpygeodesy.units-module.html#_fi_j2\npygeodesy.vector3d._nVc\tpygeodesy.vector3d-module.html#_nVc\npygeodesy.vector3d.nearestOn6\tpygeodesy.vector3d-module.html#nearestOn6\npygeodesy.vector3d.sumOf\tpygeodesy.vector3d-module.html#sumOf\npygeodesy.vector3d.sqrt\tpygeodesy.geodesicx.gx-module.html#sqrt\npygeodesy.vector3d._xnamed\tpygeodesy.named-module.html#_xnamed\npygeodesy.vector3d._intersect3d3\tpygeodesy.vector3d-module.html#_intersect3d3\npygeodesy.vector3d._xkwds\tpygeodesy.errors-module.html#_xkwds\npygeodesy.vector3d._v2Cls\tpygeodesy.namedTuples-module.html#_v2Cls\npygeodesy.vector3d.fdot\tpygeodesy.fmath-module.html#fdot\npygeodesy.vector3d._otherV3d\tpygeodesy.vector3d-module.html#_otherV3d\npygeodesy.vector3d.__all__\tpygeodesy.vector3d-module.html#__all__\npygeodesy.vector3d._name__\tpygeodesy.named-module.html#_name__\npygeodesy.vector3d._xkwds_item2\tpygeodesy.errors-module.html#_xkwds_item2\npygeodesy.vector3d._xattr\tpygeodesy.errors-module.html#_xattr\npygeodesy.vector3d._name2__\tpygeodesy.named-module.html#_name2__\npygeodesy.vector3d._xotherError\tpygeodesy.named-module.html#_xotherError\npygeodesy.vector3d.typename\tpygeodesy.internals-module.html#typename\npygeodesy.vector3d._nearestOn2\tpygeodesy.vector3d-module.html#_nearestOn2\npygeodesy.vector3dBase\tpygeodesy.vector3dBase-module.html\npygeodesy.vector3dBase.property_doc_\tpygeodesy.props-module.html#property_doc_\npygeodesy.vector3dBase.hypot2_\tpygeodesy.fmath-module.html#hypot2_\npygeodesy.vector3dBase.unstr\tpygeodesy.streprs-module.html#unstr\npygeodesy.vector3dBase.euclid_\tpygeodesy.fmath-module.html#euclid_\npygeodesy.vector3dBase.fdot_\tpygeodesy.fmath-module.html#fdot_\npygeodesy.vector3dBase._ALL_DOCS\tpygeodesy.lazily-module.html#_ALL_OTHER\npygeodesy.vector3dBase._flipsign\tpygeodesy.constants-module.html#_flipsign\npygeodesy.vector3dBase.hypot_\tpygeodesy.fmath-module.html#hypot_\npygeodesy.vector3dBase.isscalar\tpygeodesy.basics-module.html#isscalar\npygeodesy.vector3dBase.fabs\tpygeodesy.booleans-module.html#fabs\npygeodesy.vector3dBase._signOf\tpygeodesy.basics-module.html#_signOf\npygeodesy.vector3dBase.__package__\tpygeodesy.vector3dBase-module.html#__package__\npygeodesy.vector3dBase._xother3\tpygeodesy.named-module.html#_xother3\npygeodesy.vector3dBase._xError\tpygeodesy.errors-module.html#_xError\npygeodesy.vector3dBase.sincos2\tpygeodesy.utily-module.html#sincos2\npygeodesy.vector3dBase.deprecated_method\tpygeodesy.props-module.html#deprecated_method\npygeodesy.vector3dBase.islistuple\tpygeodesy.basics-module.html#islistuple\npygeodesy.vector3dBase._update_all\tpygeodesy.props-module.html#_update_all\npygeodesy.vector3dBase._copysignINF\tpygeodesy.constants-module.html#_copysignINF\npygeodesy.vector3dBase._xcallable\tpygeodesy.errors-module.html#_xcallable\npygeodesy.vector3dBase._xyz3\tpygeodesy.vector3dBase-module.html#_xyz3\npygeodesy.vector3dBase.__all__\tpygeodesy.vector3dBase-module.html#__all__\npygeodesy.vector3dBase._zip\tpygeodesy.basics-module.html#_zip\npygeodesy.vector3dBase._copysign\tpygeodesy.geodesicx.gx-module.html#copysign\npygeodesy.vector3dBase.strs\tpygeodesy.streprs-module.html#strs\npygeodesy.vector3dBase._NotImplemented\tpygeodesy.named-module.html#_NotImplemented\npygeodesy.vector3dBase.isnear0\tpygeodesy.constants-module.html#isnear0\npygeodesy.vector3dBase.map2\tpygeodesy.basics-module.html#map2\npygeodesy.vector3dBase.atan2\tpygeodesy.utily-module.html#atan2\npygeodesy.vector3dBase.map1\tpygeodesy.basics-module.html#map1\npygeodesy.vector3dBase.fdot\tpygeodesy.fmath-module.html#fdot\npygeodesy.vector3dBase._float0\tpygeodesy.constants-module.html#_float0\npygeodesy.vector3dBase.isnear1\tpygeodesy.constants-module.html#isnear1\npygeodesy.webmercator\tpygeodesy.webmercator-module.html\npygeodesy.webmercator._isRadius\tpygeodesy.units-module.html#_isRadius\npygeodesy.webmercator._spherical_datum\tpygeodesy.datums-module.html#_spherical_datum\npygeodesy.webmercator._splituple\tpygeodesy.basics-module.html#_splituple\npygeodesy.webmercator.clipDegrees\tpygeodesy.dms-module.html#clipDegrees\npygeodesy.webmercator._parseX\tpygeodesy.errors-module.html#_parseX\npygeodesy.webmercator._LatLimit\tpygeodesy.webmercator-module.html#_LatLimit\npygeodesy.webmercator.__package__\tpygeodesy.webmercator-module.html#__package__\npygeodesy.webmercator.parseWM\tpygeodesy.webmercator-module.html#parseWM\npygeodesy.webmercator._xinstanceof\tpygeodesy.basics-module.html#_xinstanceof\npygeodesy.webmercator.deprecated_method\tpygeodesy.props-module.html#deprecated_method\npygeodesy.webmercator.degrees180\tpygeodesy.utily-module.html#degrees180\npygeodesy.webmercator._xkwds\tpygeodesy.errors-module.html#_xkwds\npygeodesy.webmercator.toWm\tpygeodesy.webmercator-module.html#toWm\npygeodesy.webmercator._isin\tpygeodesy.basics-module.html#_isin\npygeodesy.webmercator._datum\tpygeodesy.webmercator-module.html#_datum\npygeodesy.webmercator.parseDMS2\tpygeodesy.dms-module.html#parseDMS2\npygeodesy.webmercator.degrees90\tpygeodesy.utily-module.html#degrees90\npygeodesy.webmercator._xkwds_pop2\tpygeodesy.errors-module.html#_xkwds_pop2\npygeodesy.webmercator.__all__\tpygeodesy.webmercator-module.html#__all__\npygeodesy.webmercator._name2__\tpygeodesy.named-module.html#_name2__\npygeodesy.webmercator.strs\tpygeodesy.streprs-module.html#strs\npygeodesy.webmercator.typename\tpygeodesy.internals-module.html#typename\npygeodesy.webmercator._xzipairs\tpygeodesy.streprs-module.html#_xzipairs\npygeodesy.webmercator._xattr\tpygeodesy.errors-module.html#_xattr\npygeodesy.wgrs\tpygeodesy.wgrs-module.html\npygeodesy.wgrs.isstr\tpygeodesy.basics-module.html#isstr\npygeodesy.wgrs._2geostr2\tpygeodesy.wgrs-module.html#_2geostr2\npygeodesy.wgrs._Tile\tpygeodesy.wgrs-module.html#_Tile\npygeodesy.wgrs._2Precision\tpygeodesy.wgrs-module.html#_2Precision\npygeodesy.wgrs.decode3\tpygeodesy.wgrs-module.html#decode3\npygeodesy.wgrs._LatOrig\tpygeodesy.wgrs-module.html#_LatOrig\npygeodesy.wgrs._2fll\tpygeodesy.wgrs-module.html#_2fll\npygeodesy.wgrs._ALL_DOCS\tpygeodesy.lazily-module.html#_ALL_OTHER\npygeodesy.wgrs._LatOrig_Tile\tpygeodesy.wgrs-module.html#_LatOrig_Tile\npygeodesy.wgrs._LonOrig\tpygeodesy.wgrs-module.html#_LonOrig\npygeodesy.wgrs.m2ft\tpygeodesy.utily-module.html#m2ft\npygeodesy.wgrs._float\tpygeodesy.constants-module.html#_float\npygeodesy.wgrs._Digits\tpygeodesy.wgrs-module.html#_Digits\npygeodesy.wgrs.__package__\tpygeodesy.wgrs-module.html#__package__\npygeodesy.wgrs._0wd\tpygeodesy.streprs-module.html#_0wd\npygeodesy.wgrs._LonOrig_60B\tpygeodesy.wgrs-module.html#_LonOrig_60B\npygeodesy.wgrs.precision\tpygeodesy.wgrs-module.html#precision\npygeodesy.wgrs.__all__\tpygeodesy.wgrs-module.html#__all__\npygeodesy.wgrs._xStrError\tpygeodesy.errors-module.html#_xStrError\npygeodesy.wgrs._LatOrig_60B\tpygeodesy.wgrs-module.html#_LatOrig_60B\npygeodesy.wgrs._LatTile\tpygeodesy.wgrs-module.html#_LatTile\npygeodesy.wgrs._Base\tpygeodesy.wgrs-module.html#_Base\npygeodesy.wgrs._encode3\tpygeodesy.wgrs-module.html#_encode3\npygeodesy.wgrs.ft2m\tpygeodesy.utily-module.html#ft2m\npygeodesy.wgrs._xattr\tpygeodesy.errors-module.html#_xattr\npygeodesy.wgrs._MinLen\tpygeodesy.wgrs-module.html#_MinLen\npygeodesy.wgrs._LonTile\tpygeodesy.wgrs-module.html#_LonTile\npygeodesy.wgrs._MaxLen\tpygeodesy.wgrs-module.html#_MaxLen\npygeodesy.wgrs.encode\tpygeodesy.wgrs-module.html#encode\npygeodesy.wgrs.typename\tpygeodesy.internals-module.html#typename\npygeodesy.wgrs.m2NM\tpygeodesy.utily-module.html#m2NM\npygeodesy.wgrs._DegChar\tpygeodesy.wgrs-module.html#_DegChar\npygeodesy.wgrs._LonOrig_Tile\tpygeodesy.wgrs-module.html#_LonOrig_Tile\npygeodesy.wgrs.decode5\tpygeodesy.wgrs-module.html#decode5\npygeodesy.wgrs._name2__\tpygeodesy.named-module.html#_name2__\npygeodesy.wgrs._60B\tpygeodesy.wgrs-module.html#_60B\npygeodesy.wgrs.nameof\tpygeodesy.named-module.html#nameof\npygeodesy.wgrs._off90\tpygeodesy.constants-module.html#_off90\npygeodesy.wgrs._float_Tile\tpygeodesy.wgrs-module.html#_float_Tile\npygeodesy.wgrs.parse3llh\tpygeodesy.dms-module.html#parse3llh\npygeodesy.wgrs._BaseLen\tpygeodesy.wgrs-module.html#_BaseLen\npygeodesy.wgrs._MaxPrec\tpygeodesy.wgrs-module.html#_MaxPrec\npygeodesy.wgrs._divmod3\tpygeodesy.wgrs-module.html#_divmod3\npygeodesy.wgrs.resolution\tpygeodesy.wgrs-module.html#resolution\nabc.ABCMeta\tabc.ABCMeta-class.html\nabc.ABCMeta.__new__\tabc.ABCMeta-class.html#__new__\nabc.ABCMeta._abc_invalidation_counter\tabc.ABCMeta-class.html#_abc_invalidation_counter\nabc.ABCMeta.__instancecheck__\tabc.ABCMeta-class.html#__instancecheck__\nabc.ABCMeta.__subclasscheck__\tabc.ABCMeta-class.html#__subclasscheck__\nabc.ABCMeta.register\tabc.ABCMeta-class.html#register\nabc.ABCMeta._dump_registry\tabc.ABCMeta-class.html#_dump_registry\npygeodesy.albers.Albers7Tuple\tpygeodesy.albers.Albers7Tuple-class.html\npygeodesy.named._NamedTuple.toRepr\tpygeodesy.named._NamedTuple-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._NamedTuple.toUnits\tpygeodesy.named._NamedTuple-class.html#toUnits\npygeodesy.named._NamedTuple._validate\tpygeodesy.named._NamedTuple-class.html#_validate\npygeodesy.named._NamedTuple.__str__\tpygeodesy.named._NamedTuple-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._NamedTuple._DOT_\tpygeodesy.named._NamedTuple-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._NamedTuple.reUnit\tpygeodesy.named._NamedTuple-class.html#reUnit\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.albers.Albers7Tuple._Names_\tpygeodesy.albers.Albers7Tuple-class.html#_Names_\npygeodesy.named._NamedTuple.__setattr__\tpygeodesy.named._NamedTuple-class.html#__setattr__\npygeodesy.named._NamedTuple.__new__\tpygeodesy.named._NamedTuple-class.html#__new__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._NamedTuple._validated\tpygeodesy.named._NamedTuple-class.html#_validated\npygeodesy.named._NamedTuple.__getattr__\tpygeodesy.named._NamedTuple-class.html#__getattr__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._NamedTuple._xtend\tpygeodesy.named._NamedTuple-class.html#_xtend\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._NamedTuple.dup\tpygeodesy.named._NamedTuple-class.html#dup\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedTuple.toStr\tpygeodesy.named._NamedTuple-class.html#toStr\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedTuple.units\tpygeodesy.named._NamedTuple-class.html#units\npygeodesy.named._NamedTuple.iterunits\tpygeodesy.named._NamedTuple-class.html#iterunits\npygeodesy.named._NamedTuple.iteritems\tpygeodesy.named._NamedTuple-class.html#iteritems\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._NamedTuple.items\tpygeodesy.named._NamedTuple-class.html#items\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedTuple.__delattr__\tpygeodesy.named._NamedTuple-class.html#__delattr__\npygeodesy.named._NamedTuple.__repr__\tpygeodesy.named._NamedTuple-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._NamedTuple.__hash__\tpygeodesy.named._NamedTuple-class.html#__hash__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.albers.Albers7Tuple._Units_\tpygeodesy.albers.Albers7Tuple-class.html#_Units_\npygeodesy.albers.AlbersEqualArea\tpygeodesy.albers.AlbersEqualArea-class.html\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedBase.__str__\tpygeodesy.named._NamedBase-class.html#__str__\npygeodesy.albers._AlbersBase.datum\tpygeodesy.albers._AlbersBase-class.html#datum\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.albers._AlbersBase._k0\tpygeodesy.albers._AlbersBase-class.html#_k0\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.albers._AlbersBase.isPolar\tpygeodesy.albers._AlbersBase-class.html#isPolar\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.albers._AlbersBase.ellipsoid\tpygeodesy.albers._AlbersBase-class.html#ellipsoid\npygeodesy.albers._AlbersBase._azik\tpygeodesy.albers._AlbersBase-class.html#_azik\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.albers.AlbersEqualArea._k\tpygeodesy.albers.AlbersEqualArea-class.html#_k\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.albers._AlbersBase._sign\tpygeodesy.albers._AlbersBase-class.html#_sign\npygeodesy.albers._AlbersBase._tanf\tpygeodesy.albers._AlbersBase-class.html#_tanf\npygeodesy.albers._AlbersBase.toStr\tpygeodesy.albers._AlbersBase-class.html#toStr\npygeodesy.albers._AlbersBase._datum\tpygeodesy.albers._AlbersBase-class.html#_datum\npygeodesy.albers._AlbersBase.lat1\tpygeodesy.albers._AlbersBase-class.html#lat1\npygeodesy.albers._AlbersBase.majoradius\tpygeodesy.albers._AlbersBase-class.html#majoradius\npygeodesy.albers._AlbersBase.lat0\tpygeodesy.albers._AlbersBase-class.html#lat0\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.albers._AlbersBase.lat2\tpygeodesy.albers._AlbersBase-class.html#lat2\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.albers._AlbersBase.rescale0\tpygeodesy.albers._AlbersBase-class.html#rescale0\npygeodesy.albers._AlbersBase._k02\tpygeodesy.albers._AlbersBase-class.html#_k02\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.albers._AlbersBase._ta0C2\tpygeodesy.albers._AlbersBase-class.html#_ta0C2\npygeodesy.albers._AlbersBase._m0\tpygeodesy.albers._AlbersBase-class.html#_m0\npygeodesy.albers._AlbersBase.flattening\tpygeodesy.albers._AlbersBase-class.html#flattening\npygeodesy.albers._AlbersBase._k0s\tpygeodesy.albers._AlbersBase-class.html#_k0s\npygeodesy.named._NamedBase.others\tpygeodesy.named._NamedBase-class.html#others\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.albers._AlbersBase.reverse\tpygeodesy.albers._AlbersBase-class.html#reverse\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._NamedBase.__repr__\tpygeodesy.named._NamedBase-class.html#__repr__\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.albers._AlbersBase.toRepr\tpygeodesy.albers._AlbersBase-class.html#toRepr\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.albers._AlbersBase._lat2\tpygeodesy.albers._AlbersBase-class.html#_lat2\npygeodesy.albers._AlbersBase._lat1\tpygeodesy.albers._AlbersBase-class.html#_lat1\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.albers._AlbersBase.equatoradius\tpygeodesy.albers._AlbersBase-class.html#equatoradius\npygeodesy.albers._AlbersBase._cstxif3\tpygeodesy.albers._AlbersBase-class.html#_cstxif3\npygeodesy.albers._AlbersBase.forward\tpygeodesy.albers._AlbersBase-class.html#forward\npygeodesy.albers._AlbersBase._ta0\tpygeodesy.albers._AlbersBase-class.html#_ta0\npygeodesy.albers._AlbersBase.scale0\tpygeodesy.albers._AlbersBase-class.html#scale0\npygeodesy.albers._AlbersBase._nrho0\tpygeodesy.albers._AlbersBase-class.html#_nrho0\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.albers._AlbersBase._a_b_sxi3\tpygeodesy.albers._AlbersBase-class.html#_a_b_sxi3\npygeodesy.albers._AlbersBase.f\tpygeodesy.albers._AlbersBase-class.html#f\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.albers._AlbersBase.ispolar\tpygeodesy.albers._AlbersBase-class.html#ispolar\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.albers._AlbersBase._txif\tpygeodesy.albers._AlbersBase-class.html#_txif\npygeodesy.albers.AlbersEqualArea.__init__\tpygeodesy.albers.AlbersEqualArea-class.html#__init__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.albers._AlbersBase._polar\tpygeodesy.albers._AlbersBase-class.html#_polar\npygeodesy.albers._AlbersBase._qZ\tpygeodesy.albers._AlbersBase-class.html#_qZ\npygeodesy.albers._AlbersBase.a\tpygeodesy.albers._AlbersBase-class.html#a\npygeodesy.albers._AlbersBase._qx\tpygeodesy.albers._AlbersBase-class.html#_qx\npygeodesy.albers.AlbersEqualArea2\tpygeodesy.albers.AlbersEqualArea2-class.html\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedBase.__str__\tpygeodesy.named._NamedBase-class.html#__str__\npygeodesy.albers._AlbersBase.datum\tpygeodesy.albers._AlbersBase-class.html#datum\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.albers._AlbersBase._k0\tpygeodesy.albers._AlbersBase-class.html#_k0\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.albers._AlbersBase.isPolar\tpygeodesy.albers._AlbersBase-class.html#isPolar\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.albers._AlbersBase.ellipsoid\tpygeodesy.albers._AlbersBase-class.html#ellipsoid\npygeodesy.albers._AlbersBase._azik\tpygeodesy.albers._AlbersBase-class.html#_azik\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.albers.AlbersEqualArea2._k\tpygeodesy.albers.AlbersEqualArea2-class.html#_k\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.albers._AlbersBase._sign\tpygeodesy.albers._AlbersBase-class.html#_sign\npygeodesy.albers._AlbersBase._tanf\tpygeodesy.albers._AlbersBase-class.html#_tanf\npygeodesy.albers._AlbersBase.toStr\tpygeodesy.albers._AlbersBase-class.html#toStr\npygeodesy.albers._AlbersBase._datum\tpygeodesy.albers._AlbersBase-class.html#_datum\npygeodesy.albers._AlbersBase.lat1\tpygeodesy.albers._AlbersBase-class.html#lat1\npygeodesy.albers._AlbersBase.majoradius\tpygeodesy.albers._AlbersBase-class.html#majoradius\npygeodesy.albers._AlbersBase.lat0\tpygeodesy.albers._AlbersBase-class.html#lat0\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.albers._AlbersBase.lat2\tpygeodesy.albers._AlbersBase-class.html#lat2\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.albers._AlbersBase.rescale0\tpygeodesy.albers._AlbersBase-class.html#rescale0\npygeodesy.albers._AlbersBase._k02\tpygeodesy.albers._AlbersBase-class.html#_k02\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.albers._AlbersBase._ta0C2\tpygeodesy.albers._AlbersBase-class.html#_ta0C2\npygeodesy.albers._AlbersBase._m0\tpygeodesy.albers._AlbersBase-class.html#_m0\npygeodesy.albers._AlbersBase.flattening\tpygeodesy.albers._AlbersBase-class.html#flattening\npygeodesy.albers._AlbersBase._k0s\tpygeodesy.albers._AlbersBase-class.html#_k0s\npygeodesy.named._NamedBase.others\tpygeodesy.named._NamedBase-class.html#others\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.albers._AlbersBase.reverse\tpygeodesy.albers._AlbersBase-class.html#reverse\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._NamedBase.__repr__\tpygeodesy.named._NamedBase-class.html#__repr__\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.albers._AlbersBase.toRepr\tpygeodesy.albers._AlbersBase-class.html#toRepr\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.albers._AlbersBase._lat2\tpygeodesy.albers._AlbersBase-class.html#_lat2\npygeodesy.albers._AlbersBase._lat1\tpygeodesy.albers._AlbersBase-class.html#_lat1\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.albers._AlbersBase.equatoradius\tpygeodesy.albers._AlbersBase-class.html#equatoradius\npygeodesy.albers._AlbersBase._cstxif3\tpygeodesy.albers._AlbersBase-class.html#_cstxif3\npygeodesy.albers._AlbersBase.forward\tpygeodesy.albers._AlbersBase-class.html#forward\npygeodesy.albers._AlbersBase._ta0\tpygeodesy.albers._AlbersBase-class.html#_ta0\npygeodesy.albers._AlbersBase.scale0\tpygeodesy.albers._AlbersBase-class.html#scale0\npygeodesy.albers._AlbersBase._nrho0\tpygeodesy.albers._AlbersBase-class.html#_nrho0\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.albers._AlbersBase._a_b_sxi3\tpygeodesy.albers._AlbersBase-class.html#_a_b_sxi3\npygeodesy.albers._AlbersBase.f\tpygeodesy.albers._AlbersBase-class.html#f\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.albers._AlbersBase.ispolar\tpygeodesy.albers._AlbersBase-class.html#ispolar\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.albers._AlbersBase._txif\tpygeodesy.albers._AlbersBase-class.html#_txif\npygeodesy.albers.AlbersEqualArea2.__init__\tpygeodesy.albers.AlbersEqualArea2-class.html#__init__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.albers._AlbersBase._polar\tpygeodesy.albers._AlbersBase-class.html#_polar\npygeodesy.albers._AlbersBase._qZ\tpygeodesy.albers._AlbersBase-class.html#_qZ\npygeodesy.albers._AlbersBase.a\tpygeodesy.albers._AlbersBase-class.html#a\npygeodesy.albers._AlbersBase._qx\tpygeodesy.albers._AlbersBase-class.html#_qx\npygeodesy.albers.AlbersEqualArea4\tpygeodesy.albers.AlbersEqualArea4-class.html\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedBase.__str__\tpygeodesy.named._NamedBase-class.html#__str__\npygeodesy.albers._AlbersBase.datum\tpygeodesy.albers._AlbersBase-class.html#datum\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.albers._AlbersBase._k0\tpygeodesy.albers._AlbersBase-class.html#_k0\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.albers._AlbersBase.isPolar\tpygeodesy.albers._AlbersBase-class.html#isPolar\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.albers._AlbersBase.ellipsoid\tpygeodesy.albers._AlbersBase-class.html#ellipsoid\npygeodesy.albers._AlbersBase._azik\tpygeodesy.albers._AlbersBase-class.html#_azik\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.albers.AlbersEqualArea4._k\tpygeodesy.albers.AlbersEqualArea4-class.html#_k\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.albers._AlbersBase._sign\tpygeodesy.albers._AlbersBase-class.html#_sign\npygeodesy.albers._AlbersBase._tanf\tpygeodesy.albers._AlbersBase-class.html#_tanf\npygeodesy.albers._AlbersBase.toStr\tpygeodesy.albers._AlbersBase-class.html#toStr\npygeodesy.albers._AlbersBase._datum\tpygeodesy.albers._AlbersBase-class.html#_datum\npygeodesy.albers._AlbersBase.lat1\tpygeodesy.albers._AlbersBase-class.html#lat1\npygeodesy.albers._AlbersBase.majoradius\tpygeodesy.albers._AlbersBase-class.html#majoradius\npygeodesy.albers._AlbersBase.lat0\tpygeodesy.albers._AlbersBase-class.html#lat0\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.albers._AlbersBase.lat2\tpygeodesy.albers._AlbersBase-class.html#lat2\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.albers._AlbersBase.rescale0\tpygeodesy.albers._AlbersBase-class.html#rescale0\npygeodesy.albers._AlbersBase._k02\tpygeodesy.albers._AlbersBase-class.html#_k02\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.albers._AlbersBase._ta0C2\tpygeodesy.albers._AlbersBase-class.html#_ta0C2\npygeodesy.albers._AlbersBase._m0\tpygeodesy.albers._AlbersBase-class.html#_m0\npygeodesy.albers._AlbersBase.flattening\tpygeodesy.albers._AlbersBase-class.html#flattening\npygeodesy.albers._AlbersBase._k0s\tpygeodesy.albers._AlbersBase-class.html#_k0s\npygeodesy.named._NamedBase.others\tpygeodesy.named._NamedBase-class.html#others\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.albers._AlbersBase.reverse\tpygeodesy.albers._AlbersBase-class.html#reverse\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._NamedBase.__repr__\tpygeodesy.named._NamedBase-class.html#__repr__\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.albers._AlbersBase.toRepr\tpygeodesy.albers._AlbersBase-class.html#toRepr\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.albers._AlbersBase._lat2\tpygeodesy.albers._AlbersBase-class.html#_lat2\npygeodesy.albers._AlbersBase._lat1\tpygeodesy.albers._AlbersBase-class.html#_lat1\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.albers._AlbersBase.equatoradius\tpygeodesy.albers._AlbersBase-class.html#equatoradius\npygeodesy.albers._AlbersBase._cstxif3\tpygeodesy.albers._AlbersBase-class.html#_cstxif3\npygeodesy.albers._AlbersBase.forward\tpygeodesy.albers._AlbersBase-class.html#forward\npygeodesy.albers._AlbersBase._ta0\tpygeodesy.albers._AlbersBase-class.html#_ta0\npygeodesy.albers._AlbersBase.scale0\tpygeodesy.albers._AlbersBase-class.html#scale0\npygeodesy.albers._AlbersBase._nrho0\tpygeodesy.albers._AlbersBase-class.html#_nrho0\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.albers._AlbersBase._a_b_sxi3\tpygeodesy.albers._AlbersBase-class.html#_a_b_sxi3\npygeodesy.albers._AlbersBase.f\tpygeodesy.albers._AlbersBase-class.html#f\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.albers._AlbersBase.ispolar\tpygeodesy.albers._AlbersBase-class.html#ispolar\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.albers._AlbersBase._txif\tpygeodesy.albers._AlbersBase-class.html#_txif\npygeodesy.albers.AlbersEqualArea4.__init__\tpygeodesy.albers.AlbersEqualArea4-class.html#__init__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.albers._AlbersBase._polar\tpygeodesy.albers._AlbersBase-class.html#_polar\npygeodesy.albers._AlbersBase._qZ\tpygeodesy.albers._AlbersBase-class.html#_qZ\npygeodesy.albers._AlbersBase.a\tpygeodesy.albers._AlbersBase-class.html#a\npygeodesy.albers._AlbersBase._qx\tpygeodesy.albers._AlbersBase-class.html#_qx\npygeodesy.albers.AlbersEqualAreaCylindrical\tpygeodesy.albers.AlbersEqualAreaCylindrical-class.html\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedBase.__str__\tpygeodesy.named._NamedBase-class.html#__str__\npygeodesy.albers._AlbersBase.datum\tpygeodesy.albers._AlbersBase-class.html#datum\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.albers._AlbersBase._k0\tpygeodesy.albers._AlbersBase-class.html#_k0\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.albers._AlbersBase.isPolar\tpygeodesy.albers._AlbersBase-class.html#isPolar\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.albers._AlbersBase.ellipsoid\tpygeodesy.albers._AlbersBase-class.html#ellipsoid\npygeodesy.albers._AlbersBase._azik\tpygeodesy.albers._AlbersBase-class.html#_azik\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.albers._AlbersBase._k\tpygeodesy.albers._AlbersBase-class.html#_k\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.albers._AlbersBase._sign\tpygeodesy.albers._AlbersBase-class.html#_sign\npygeodesy.albers._AlbersBase._tanf\tpygeodesy.albers._AlbersBase-class.html#_tanf\npygeodesy.albers._AlbersBase.toStr\tpygeodesy.albers._AlbersBase-class.html#toStr\npygeodesy.albers._AlbersBase._datum\tpygeodesy.albers._AlbersBase-class.html#_datum\npygeodesy.albers._AlbersBase.lat1\tpygeodesy.albers._AlbersBase-class.html#lat1\npygeodesy.albers._AlbersBase.majoradius\tpygeodesy.albers._AlbersBase-class.html#majoradius\npygeodesy.albers._AlbersBase.lat0\tpygeodesy.albers._AlbersBase-class.html#lat0\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.albers._AlbersBase.lat2\tpygeodesy.albers._AlbersBase-class.html#lat2\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.albers._AlbersBase.rescale0\tpygeodesy.albers._AlbersBase-class.html#rescale0\npygeodesy.albers._AlbersBase._k02\tpygeodesy.albers._AlbersBase-class.html#_k02\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.albers._AlbersBase._ta0C2\tpygeodesy.albers._AlbersBase-class.html#_ta0C2\npygeodesy.albers._AlbersBase._m0\tpygeodesy.albers._AlbersBase-class.html#_m0\npygeodesy.albers._AlbersBase.flattening\tpygeodesy.albers._AlbersBase-class.html#flattening\npygeodesy.albers._AlbersBase._k0s\tpygeodesy.albers._AlbersBase-class.html#_k0s\npygeodesy.named._NamedBase.others\tpygeodesy.named._NamedBase-class.html#others\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.albers._AlbersBase.reverse\tpygeodesy.albers._AlbersBase-class.html#reverse\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._NamedBase.__repr__\tpygeodesy.named._NamedBase-class.html#__repr__\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.albers._AlbersBase.toRepr\tpygeodesy.albers._AlbersBase-class.html#toRepr\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.albers.AlbersEqualAreaCylindrical._lat2\tpygeodesy.albers.AlbersEqualAreaCylindrical-class.html#_lat2\npygeodesy.albers.AlbersEqualAreaCylindrical._lat1\tpygeodesy.albers.AlbersEqualAreaCylindrical-class.html#_lat1\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.albers._AlbersBase.equatoradius\tpygeodesy.albers._AlbersBase-class.html#equatoradius\npygeodesy.albers._AlbersBase._cstxif3\tpygeodesy.albers._AlbersBase-class.html#_cstxif3\npygeodesy.albers._AlbersBase.forward\tpygeodesy.albers._AlbersBase-class.html#forward\npygeodesy.albers._AlbersBase._ta0\tpygeodesy.albers._AlbersBase-class.html#_ta0\npygeodesy.albers._AlbersBase.scale0\tpygeodesy.albers._AlbersBase-class.html#scale0\npygeodesy.albers._AlbersBase._nrho0\tpygeodesy.albers._AlbersBase-class.html#_nrho0\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.albers._AlbersBase._a_b_sxi3\tpygeodesy.albers._AlbersBase-class.html#_a_b_sxi3\npygeodesy.albers._AlbersBase.f\tpygeodesy.albers._AlbersBase-class.html#f\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.albers._AlbersBase.ispolar\tpygeodesy.albers._AlbersBase-class.html#ispolar\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.albers._AlbersBase._txif\tpygeodesy.albers._AlbersBase-class.html#_txif\npygeodesy.albers.AlbersEqualAreaCylindrical.__init__\tpygeodesy.albers.AlbersEqualAreaCylindrical-class.html#__init__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.albers._AlbersBase._polar\tpygeodesy.albers._AlbersBase-class.html#_polar\npygeodesy.albers._AlbersBase._qZ\tpygeodesy.albers._AlbersBase-class.html#_qZ\npygeodesy.albers._AlbersBase.a\tpygeodesy.albers._AlbersBase-class.html#a\npygeodesy.albers._AlbersBase._qx\tpygeodesy.albers._AlbersBase-class.html#_qx\npygeodesy.albers.AlbersEqualAreaNorth\tpygeodesy.albers.AlbersEqualAreaNorth-class.html\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedBase.__str__\tpygeodesy.named._NamedBase-class.html#__str__\npygeodesy.albers._AlbersBase.datum\tpygeodesy.albers._AlbersBase-class.html#datum\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.albers._AlbersBase._k0\tpygeodesy.albers._AlbersBase-class.html#_k0\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.albers._AlbersBase.isPolar\tpygeodesy.albers._AlbersBase-class.html#isPolar\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.albers._AlbersBase.ellipsoid\tpygeodesy.albers._AlbersBase-class.html#ellipsoid\npygeodesy.albers._AlbersBase._azik\tpygeodesy.albers._AlbersBase-class.html#_azik\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.albers._AlbersBase._k\tpygeodesy.albers._AlbersBase-class.html#_k\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.albers._AlbersBase._sign\tpygeodesy.albers._AlbersBase-class.html#_sign\npygeodesy.albers._AlbersBase._tanf\tpygeodesy.albers._AlbersBase-class.html#_tanf\npygeodesy.albers._AlbersBase.toStr\tpygeodesy.albers._AlbersBase-class.html#toStr\npygeodesy.albers._AlbersBase._datum\tpygeodesy.albers._AlbersBase-class.html#_datum\npygeodesy.albers._AlbersBase.lat1\tpygeodesy.albers._AlbersBase-class.html#lat1\npygeodesy.albers._AlbersBase.majoradius\tpygeodesy.albers._AlbersBase-class.html#majoradius\npygeodesy.albers._AlbersBase.lat0\tpygeodesy.albers._AlbersBase-class.html#lat0\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.albers._AlbersBase.lat2\tpygeodesy.albers._AlbersBase-class.html#lat2\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.albers._AlbersBase.rescale0\tpygeodesy.albers._AlbersBase-class.html#rescale0\npygeodesy.albers._AlbersBase._k02\tpygeodesy.albers._AlbersBase-class.html#_k02\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.albers._AlbersBase._ta0C2\tpygeodesy.albers._AlbersBase-class.html#_ta0C2\npygeodesy.albers._AlbersBase._m0\tpygeodesy.albers._AlbersBase-class.html#_m0\npygeodesy.albers._AlbersBase.flattening\tpygeodesy.albers._AlbersBase-class.html#flattening\npygeodesy.albers._AlbersBase._k0s\tpygeodesy.albers._AlbersBase-class.html#_k0s\npygeodesy.named._NamedBase.others\tpygeodesy.named._NamedBase-class.html#others\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.albers._AlbersBase.reverse\tpygeodesy.albers._AlbersBase-class.html#reverse\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._NamedBase.__repr__\tpygeodesy.named._NamedBase-class.html#__repr__\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.albers._AlbersBase.toRepr\tpygeodesy.albers._AlbersBase-class.html#toRepr\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.albers.AlbersEqualAreaNorth._lat2\tpygeodesy.albers.AlbersEqualAreaNorth-class.html#_lat2\npygeodesy.albers.AlbersEqualAreaNorth._lat1\tpygeodesy.albers.AlbersEqualAreaNorth-class.html#_lat1\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.albers._AlbersBase.equatoradius\tpygeodesy.albers._AlbersBase-class.html#equatoradius\npygeodesy.albers._AlbersBase._cstxif3\tpygeodesy.albers._AlbersBase-class.html#_cstxif3\npygeodesy.albers._AlbersBase.forward\tpygeodesy.albers._AlbersBase-class.html#forward\npygeodesy.albers._AlbersBase._ta0\tpygeodesy.albers._AlbersBase-class.html#_ta0\npygeodesy.albers._AlbersBase.scale0\tpygeodesy.albers._AlbersBase-class.html#scale0\npygeodesy.albers._AlbersBase._nrho0\tpygeodesy.albers._AlbersBase-class.html#_nrho0\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.albers._AlbersBase._a_b_sxi3\tpygeodesy.albers._AlbersBase-class.html#_a_b_sxi3\npygeodesy.albers._AlbersBase.f\tpygeodesy.albers._AlbersBase-class.html#f\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.albers._AlbersBase.ispolar\tpygeodesy.albers._AlbersBase-class.html#ispolar\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.albers._AlbersBase._txif\tpygeodesy.albers._AlbersBase-class.html#_txif\npygeodesy.albers.AlbersEqualAreaNorth.__init__\tpygeodesy.albers.AlbersEqualAreaNorth-class.html#__init__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.albers._AlbersBase._polar\tpygeodesy.albers._AlbersBase-class.html#_polar\npygeodesy.albers._AlbersBase._qZ\tpygeodesy.albers._AlbersBase-class.html#_qZ\npygeodesy.albers._AlbersBase.a\tpygeodesy.albers._AlbersBase-class.html#a\npygeodesy.albers._AlbersBase._qx\tpygeodesy.albers._AlbersBase-class.html#_qx\npygeodesy.albers.AlbersEqualAreaSouth\tpygeodesy.albers.AlbersEqualAreaSouth-class.html\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedBase.__str__\tpygeodesy.named._NamedBase-class.html#__str__\npygeodesy.albers._AlbersBase.datum\tpygeodesy.albers._AlbersBase-class.html#datum\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.albers._AlbersBase._k0\tpygeodesy.albers._AlbersBase-class.html#_k0\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.albers._AlbersBase.isPolar\tpygeodesy.albers._AlbersBase-class.html#isPolar\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.albers._AlbersBase.ellipsoid\tpygeodesy.albers._AlbersBase-class.html#ellipsoid\npygeodesy.albers._AlbersBase._azik\tpygeodesy.albers._AlbersBase-class.html#_azik\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.albers._AlbersBase._k\tpygeodesy.albers._AlbersBase-class.html#_k\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.albers._AlbersBase._sign\tpygeodesy.albers._AlbersBase-class.html#_sign\npygeodesy.albers._AlbersBase._tanf\tpygeodesy.albers._AlbersBase-class.html#_tanf\npygeodesy.albers._AlbersBase.toStr\tpygeodesy.albers._AlbersBase-class.html#toStr\npygeodesy.albers._AlbersBase._datum\tpygeodesy.albers._AlbersBase-class.html#_datum\npygeodesy.albers._AlbersBase.lat1\tpygeodesy.albers._AlbersBase-class.html#lat1\npygeodesy.albers._AlbersBase.majoradius\tpygeodesy.albers._AlbersBase-class.html#majoradius\npygeodesy.albers._AlbersBase.lat0\tpygeodesy.albers._AlbersBase-class.html#lat0\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.albers._AlbersBase.lat2\tpygeodesy.albers._AlbersBase-class.html#lat2\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.albers._AlbersBase.rescale0\tpygeodesy.albers._AlbersBase-class.html#rescale0\npygeodesy.albers._AlbersBase._k02\tpygeodesy.albers._AlbersBase-class.html#_k02\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.albers._AlbersBase._ta0C2\tpygeodesy.albers._AlbersBase-class.html#_ta0C2\npygeodesy.albers._AlbersBase._m0\tpygeodesy.albers._AlbersBase-class.html#_m0\npygeodesy.albers._AlbersBase.flattening\tpygeodesy.albers._AlbersBase-class.html#flattening\npygeodesy.albers._AlbersBase._k0s\tpygeodesy.albers._AlbersBase-class.html#_k0s\npygeodesy.named._NamedBase.others\tpygeodesy.named._NamedBase-class.html#others\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.albers._AlbersBase.reverse\tpygeodesy.albers._AlbersBase-class.html#reverse\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._NamedBase.__repr__\tpygeodesy.named._NamedBase-class.html#__repr__\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.albers._AlbersBase.toRepr\tpygeodesy.albers._AlbersBase-class.html#toRepr\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.albers.AlbersEqualAreaSouth._lat2\tpygeodesy.albers.AlbersEqualAreaSouth-class.html#_lat2\npygeodesy.albers.AlbersEqualAreaSouth._lat1\tpygeodesy.albers.AlbersEqualAreaSouth-class.html#_lat1\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.albers._AlbersBase.equatoradius\tpygeodesy.albers._AlbersBase-class.html#equatoradius\npygeodesy.albers._AlbersBase._cstxif3\tpygeodesy.albers._AlbersBase-class.html#_cstxif3\npygeodesy.albers._AlbersBase.forward\tpygeodesy.albers._AlbersBase-class.html#forward\npygeodesy.albers._AlbersBase._ta0\tpygeodesy.albers._AlbersBase-class.html#_ta0\npygeodesy.albers._AlbersBase.scale0\tpygeodesy.albers._AlbersBase-class.html#scale0\npygeodesy.albers._AlbersBase._nrho0\tpygeodesy.albers._AlbersBase-class.html#_nrho0\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.albers._AlbersBase._a_b_sxi3\tpygeodesy.albers._AlbersBase-class.html#_a_b_sxi3\npygeodesy.albers._AlbersBase.f\tpygeodesy.albers._AlbersBase-class.html#f\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.albers._AlbersBase.ispolar\tpygeodesy.albers._AlbersBase-class.html#ispolar\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.albers._AlbersBase._txif\tpygeodesy.albers._AlbersBase-class.html#_txif\npygeodesy.albers.AlbersEqualAreaSouth.__init__\tpygeodesy.albers.AlbersEqualAreaSouth-class.html#__init__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.albers._AlbersBase._polar\tpygeodesy.albers._AlbersBase-class.html#_polar\npygeodesy.albers._AlbersBase._qZ\tpygeodesy.albers._AlbersBase-class.html#_qZ\npygeodesy.albers._AlbersBase.a\tpygeodesy.albers._AlbersBase-class.html#a\npygeodesy.albers._AlbersBase._qx\tpygeodesy.albers._AlbersBase-class.html#_qx\npygeodesy.albers.AlbersError\tpygeodesy.albers.AlbersError-class.html\npygeodesy.albers._AlbersBase\tpygeodesy.albers._AlbersBase-class.html\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedBase.__str__\tpygeodesy.named._NamedBase-class.html#__str__\npygeodesy.albers._AlbersBase.datum\tpygeodesy.albers._AlbersBase-class.html#datum\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.albers._AlbersBase._k0\tpygeodesy.albers._AlbersBase-class.html#_k0\npygeodesy.albers._AlbersBase.rescale0\tpygeodesy.albers._AlbersBase-class.html#rescale0\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.albers._AlbersBase.isPolar\tpygeodesy.albers._AlbersBase-class.html#isPolar\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.albers._AlbersBase.ellipsoid\tpygeodesy.albers._AlbersBase-class.html#ellipsoid\npygeodesy.albers._AlbersBase._azik\tpygeodesy.albers._AlbersBase-class.html#_azik\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.albers._AlbersBase._k\tpygeodesy.albers._AlbersBase-class.html#_k\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.albers._AlbersBase._sign\tpygeodesy.albers._AlbersBase-class.html#_sign\npygeodesy.albers._AlbersBase._txif\tpygeodesy.albers._AlbersBase-class.html#_txif\npygeodesy.albers._AlbersBase.toStr\tpygeodesy.albers._AlbersBase-class.html#toStr\npygeodesy.albers._AlbersBase._datum\tpygeodesy.albers._AlbersBase-class.html#_datum\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.albers._AlbersBase.majoradius\tpygeodesy.albers._AlbersBase-class.html#majoradius\npygeodesy.albers._AlbersBase.lat0\tpygeodesy.albers._AlbersBase-class.html#lat0\npygeodesy.albers._AlbersBase.lat1\tpygeodesy.albers._AlbersBase-class.html#lat1\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.albers._AlbersBase.lat2\tpygeodesy.albers._AlbersBase-class.html#lat2\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.albers._AlbersBase._k02\tpygeodesy.albers._AlbersBase-class.html#_k02\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.albers._AlbersBase._ta0C2\tpygeodesy.albers._AlbersBase-class.html#_ta0C2\npygeodesy.albers._AlbersBase._m0\tpygeodesy.albers._AlbersBase-class.html#_m0\npygeodesy.albers._AlbersBase.flattening\tpygeodesy.albers._AlbersBase-class.html#flattening\npygeodesy.albers._AlbersBase._k0s\tpygeodesy.albers._AlbersBase-class.html#_k0s\npygeodesy.named._NamedBase.others\tpygeodesy.named._NamedBase-class.html#others\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.albers._AlbersBase.reverse\tpygeodesy.albers._AlbersBase-class.html#reverse\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._NamedBase.__repr__\tpygeodesy.named._NamedBase-class.html#__repr__\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.albers._AlbersBase.toRepr\tpygeodesy.albers._AlbersBase-class.html#toRepr\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.albers._AlbersBase._lat2\tpygeodesy.albers._AlbersBase-class.html#_lat2\npygeodesy.albers._AlbersBase._lat1\tpygeodesy.albers._AlbersBase-class.html#_lat1\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.albers._AlbersBase.equatoradius\tpygeodesy.albers._AlbersBase-class.html#equatoradius\npygeodesy.albers._AlbersBase._cstxif3\tpygeodesy.albers._AlbersBase-class.html#_cstxif3\npygeodesy.albers._AlbersBase.forward\tpygeodesy.albers._AlbersBase-class.html#forward\npygeodesy.albers._AlbersBase._ta0\tpygeodesy.albers._AlbersBase-class.html#_ta0\npygeodesy.albers._AlbersBase.scale0\tpygeodesy.albers._AlbersBase-class.html#scale0\npygeodesy.albers._AlbersBase._nrho0\tpygeodesy.albers._AlbersBase-class.html#_nrho0\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.albers._AlbersBase._a_b_sxi3\tpygeodesy.albers._AlbersBase-class.html#_a_b_sxi3\npygeodesy.albers._AlbersBase.f\tpygeodesy.albers._AlbersBase-class.html#f\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.albers._AlbersBase.ispolar\tpygeodesy.albers._AlbersBase-class.html#ispolar\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.albers._AlbersBase._tanf\tpygeodesy.albers._AlbersBase-class.html#_tanf\npygeodesy.albers._AlbersBase.__init__\tpygeodesy.albers._AlbersBase-class.html#__init__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.albers._AlbersBase._polar\tpygeodesy.albers._AlbersBase-class.html#_polar\npygeodesy.albers._AlbersBase._qZ\tpygeodesy.albers._AlbersBase-class.html#_qZ\npygeodesy.albers._AlbersBase.a\tpygeodesy.albers._AlbersBase-class.html#a\npygeodesy.albers._AlbersBase._qx\tpygeodesy.albers._AlbersBase-class.html#_qx\npygeodesy.angles.Ang\tpygeodesy.angles.Ang-class.html\npygeodesy.angles.Ang.__int__\tpygeodesy.angles.Ang-class.html#__int__\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.angles.Ang.__str__\tpygeodesy.angles.Ang-class.html#__str__\npygeodesy.angles.Ang.NAN\tpygeodesy.angles.Ang-class.html#NAN\npygeodesy.angles.Ang.__imatmul__\tpygeodesy.angles.Ang-class.html#__imatmul__\npygeodesy.angles.Ang._flip\tpygeodesy.angles.Ang-class.html#_flip\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.angles.Ang.__rdiv__\tpygeodesy.angles.Ang-class.html#__rdiv__\npygeodesy.angles.Ang.__rmul__\tpygeodesy.angles.Ang-class.html#__rmul__\npygeodesy.angles.Ang._other\tpygeodesy.angles.Ang-class.html#_other\npygeodesy.angles.Ang.__lt__\tpygeodesy.angles.Ang-class.html#__lt__\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.angles.Ang.fromRadians\tpygeodesy.angles.Ang-class.html#fromRadians\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.angles.Ang.__cmp__\tpygeodesy.angles.Ang-class.html#__cmp__\npygeodesy.angles.Ang.__rfloordiv__\tpygeodesy.angles.Ang-class.html#__rfloordiv__\npygeodesy.angles.Ang.scn3\tpygeodesy.angles.Ang-class.html#scn3\npygeodesy.angles.Ang.mod\tpygeodesy.angles.Ang-class.html#mod\npygeodesy.angles.Ang._ifloat\tpygeodesy.angles.Ang-class.html#_ifloat\npygeodesy.angles.Ang.toStr\tpygeodesy.angles.Ang-class.html#toStr\npygeodesy.angles.Ang._Ang\tpygeodesy.angles.Ang-class.html#_Ang\npygeodesy.angles.Ang._n01\tpygeodesy.angles.Ang-class.html#_n01\npygeodesy.angles.Ang.__pow__\tpygeodesy.angles.Ang-class.html#__pow__\npygeodesy.angles.Ang.__gt__\tpygeodesy.angles.Ang-class.html#__gt__\npygeodesy.angles.Ang.__bool__\tpygeodesy.angles.Ang-class.html#__bool__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.angles.Ang.fromScalar\tpygeodesy.angles.Ang-class.html#fromScalar\npygeodesy.angles.Ang.sc2\tpygeodesy.angles.Ang-class.html#sc2\npygeodesy.angles.Ang.__nonzero__\tpygeodesy.angles.Ang-class.html#__nonzero__\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.angles.Ang.fromLambertian\tpygeodesy.angles.Ang-class.html#fromLambertian\npygeodesy.angles.Ang.signOf\tpygeodesy.angles.Ang-class.html#signOf\npygeodesy.angles.Ang.radians\tpygeodesy.angles.Ang-class.html#radians\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.angles.Ang.t\tpygeodesy.angles.Ang-class.html#t\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.angles.Ang.__long__\tpygeodesy.angles.Ang-class.html#__long__\npygeodesy.angles.Ang.round\tpygeodesy.angles.Ang-class.html#round\npygeodesy.angles.Ang.toRepr\tpygeodesy.angles.Ang-class.html#toRepr\npygeodesy.angles.Ang.toRadians\tpygeodesy.angles.Ang-class.html#toRadians\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.angles.Ang.__truediv__\tpygeodesy.angles.Ang-class.html#__truediv__\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.angles.Ang.__imod__\tpygeodesy.angles.Ang-class.html#__imod__\npygeodesy.angles.Ang.__rmod__\tpygeodesy.angles.Ang-class.html#__rmod__\npygeodesy.angles.Ang.lambertian\tpygeodesy.angles.Ang-class.html#lambertian\npygeodesy.angles.Ang._n_0\tpygeodesy.angles.Ang-class.html#_n_0\npygeodesy.angles.Ang.scnu4\tpygeodesy.angles.Ang-class.html#scnu4\npygeodesy.angles.Ang.flipsign\tpygeodesy.angles.Ang-class.html#flipsign\npygeodesy.angles.Ang.__float__\tpygeodesy.angles.Ang-class.html#__float__\npygeodesy.angles.Ang.__ne__\tpygeodesy.angles.Ang-class.html#__ne__\npygeodesy.angles.Ang.__ifloordiv__\tpygeodesy.angles.Ang-class.html#__ifloordiv__\npygeodesy.angles.Ang.base\tpygeodesy.angles.Ang-class.html#base\npygeodesy.angles.Ang.__divmod__\tpygeodesy.angles.Ang-class.html#__divmod__\npygeodesy.angles.Ang.toTuple\tpygeodesy.angles.Ang-class.html#toTuple\npygeodesy.angles.Ang.__rmatmul__\tpygeodesy.angles.Ang-class.html#__rmatmul__\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.angles.Ang.c\tpygeodesy.angles.Ang-class.html#c\npygeodesy.angles.Ang.__imul__\tpygeodesy.angles.Ang-class.html#__imul__\npygeodesy.angles.Ang.__trunc__\tpygeodesy.angles.Ang-class.html#__trunc__\npygeodesy.angles.Ang.shift\tpygeodesy.angles.Ang-class.html#shift\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.angles.Ang.s\tpygeodesy.angles.Ang-class.html#s\npygeodesy.angles.Ang.__mul__\tpygeodesy.angles.Ang-class.html#__mul__\npygeodesy.angles.Ang._float2\tpygeodesy.angles.Ang-class.html#_float2\npygeodesy.angles.Ang.__matmul__\tpygeodesy.angles.Ang-class.html#__matmul__\npygeodesy.angles.Ang._float1\tpygeodesy.angles.Ang-class.html#_float1\npygeodesy.angles.Ang.isnear0\tpygeodesy.angles.Ang-class.html#isnear0\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.angles.Ang.pow\tpygeodesy.angles.Ang-class.html#pow\npygeodesy.angles.Ang.ncardinal\tpygeodesy.angles.Ang-class.html#ncardinal\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.angles.Ang._update\tpygeodesy.angles.Ang-class.html#_update\npygeodesy.angles.Ang.__rsub__\tpygeodesy.angles.Ang-class.html#__rsub__\npygeodesy.angles.Ang.divmod\tpygeodesy.angles.Ang-class.html#divmod\npygeodesy.angles.Ang.toLambertian\tpygeodesy.angles.Ang-class.html#toLambertian\npygeodesy.angles.Ang.toUnit\tpygeodesy.angles.Ang-class.html#toUnit\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.angles.Ang.is_integer\tpygeodesy.angles.Ang-class.html#is_integer\npygeodesy.angles.Ang.unit\tpygeodesy.angles.Ang-class.html#unit\npygeodesy.angles.Ang.toDegrees\tpygeodesy.angles.Ang-class.html#toDegrees\npygeodesy.angles.Ang.__rpow__\tpygeodesy.angles.Ang-class.html#__rpow__\npygeodesy.angles.Ang.__abs__\tpygeodesy.angles.Ang-class.html#__abs__\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.angles.Ang.degrees\tpygeodesy.angles.Ang-class.html#degrees\npygeodesy.angles.Ang.__itruediv__\tpygeodesy.angles.Ang-class.html#__itruediv__\npygeodesy.angles.Ang.__isub__\tpygeodesy.angles.Ang-class.html#__isub__\npygeodesy.angles.Ang.__rdivmod__\tpygeodesy.angles.Ang-class.html#__rdivmod__\npygeodesy.angles.Ang.__invert__\tpygeodesy.angles.Ang-class.html#__invert__\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.angles.Ang.N\tpygeodesy.angles.Ang-class.html#N\npygeodesy.angles.Ang.copy\tpygeodesy.angles.Ang-class.html#copy\npygeodesy.angles.Ang.__eq__\tpygeodesy.angles.Ang-class.html#__eq__\npygeodesy.angles.Ang.degrees0\tpygeodesy.angles.Ang-class.html#degrees0\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.angles.Ang.__round__\tpygeodesy.angles.Ang-class.html#__round__\npygeodesy.angles.Ang.__mod__\tpygeodesy.angles.Ang-class.html#__mod__\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.angles.Ang.__iadd__\tpygeodesy.angles.Ang-class.html#__iadd__\npygeodesy.angles.Ang.n\tpygeodesy.angles.Ang-class.html#n\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.angles.Ang.__le__\tpygeodesy.angles.Ang-class.html#__le__\npygeodesy.angles.Ang.__floordiv__\tpygeodesy.angles.Ang-class.html#__floordiv__\npygeodesy.angles.Ang.__hash__\tpygeodesy.angles.Ang-class.html#__hash__\npygeodesy.angles.Ang.__sub__\tpygeodesy.angles.Ang-class.html#__sub__\npygeodesy.angles.Ang.__ge__\tpygeodesy.angles.Ang-class.html#__ge__\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.angles.Ang.nearest\tpygeodesy.angles.Ang-class.html#nearest\npygeodesy.angles.Ang.__rtruediv__\tpygeodesy.angles.Ang-class.html#__rtruediv__\npygeodesy.angles.Ang.radians0\tpygeodesy.angles.Ang-class.html#radians0\npygeodesy.angles.Ang.__radd__\tpygeodesy.angles.Ang-class.html#__radd__\npygeodesy.angles.Ang.__floor__\tpygeodesy.angles.Ang-class.html#__floor__\npygeodesy.angles.Ang._norm\tpygeodesy.angles.Ang-class.html#_norm\npygeodesy.angles.Ang.__init__\tpygeodesy.angles.Ang-class.html#__init__\npygeodesy.angles.Ang.normalize\tpygeodesy.angles.Ang-class.html#normalize\npygeodesy.angles.Ang.__ceil__\tpygeodesy.angles.Ang-class.html#__ceil__\npygeodesy.angles.Ang._kwds\tpygeodesy.angles.Ang-class.html#_kwds\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.angles.Ang._unit\tpygeodesy.units.Radians-class.html\npygeodesy.angles.Ang.__pos__\tpygeodesy.angles.Ang-class.html#__pos__\npygeodesy.angles.Ang.cardinal\tpygeodesy.angles.Ang-class.html#cardinal\npygeodesy.angles.Ang.EPS0\tpygeodesy.angles.Ang-class.html#EPS0\npygeodesy.angles.Ang.__repr__\tpygeodesy.angles.Ang-class.html#__repr__\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.angles.Ang.__idiv__\tpygeodesy.angles.Ang-class.html#__idiv__\npygeodesy.angles.Ang.reflect\tpygeodesy.angles.Ang-class.html#reflect\npygeodesy.angles.Ang.fromDegrees\tpygeodesy.angles.Ang-class.html#fromDegrees\npygeodesy.angles.Ang.__add__\tpygeodesy.angles.Ang-class.html#__add__\npygeodesy.angles.Ang._quadrant\tpygeodesy.angles.Ang-class.html#_quadrant\npygeodesy.angles.Ang.quadrant\tpygeodesy.angles.Ang-class.html#quadrant\npygeodesy.angles.Ang.__ipow__\tpygeodesy.angles.Ang-class.html#__ipow__\npygeodesy.angles.Ang.__div__\tpygeodesy.angles.Ang-class.html#__div__\npygeodesy.angles.Ang.__neg__\tpygeodesy.angles.Ang-class.html#__neg__\npygeodesy.angles.Ang.n0\tpygeodesy.angles.Ang-class.html#n0\npygeodesy.angles.Lambertian\tpygeodesy.angles.Lambertian-class.html\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.unitsBase.Float.__str__\tpygeodesy.unitsBase.Float-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.unitsBase._NamedUnit._units\tpygeodesy.unitsBase._NamedUnit-class.html#_units\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.units.Radians.toStr\tpygeodesy.units.Radians-class.html#toStr\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.unitsBase._NamedUnit._arg_name_arg2\tpygeodesy.unitsBase._NamedUnit-class.html#_arg_name_arg2\npygeodesy.units.Radians.toRepr\tpygeodesy.units.Radians-class.html#toRepr\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.units.Radians.toDegrees\tpygeodesy.units.Radians-class.html#toDegrees\npygeodesy.unitsBase._NamedUnit._toRepr\tpygeodesy.unitsBase._NamedUnit-class.html#_toRepr\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.units.Radians.toRadians\tpygeodesy.units.Radians-class.html#toRadians\npygeodesy.unitsBase._NamedUnit._std_repr\tpygeodesy.unitsBase._NamedUnit-class.html#_std_repr\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.unitsBase._NamedUnit._Error\tpygeodesy.unitsBase._NamedUnit-class.html#_Error\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.unitsBase._NamedUnit.std_repr\tpygeodesy.unitsBase._NamedUnit-class.html#std_repr\npygeodesy.unitsBase.Float.isneg0\tpygeodesy.unitsBase.Float-class.html#isneg0\npygeodesy.angles.Lambertian.__new__\tpygeodesy.angles.Lambertian-class.html#__new__\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.unitsBase._NamedUnit.units\tpygeodesy.unitsBase._NamedUnit-class.html#units\npygeodesy.unitsBase.Float.__repr__\tpygeodesy.unitsBase.Float-class.html#__repr__\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.auxilats.auxAngle.AuxAngle\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.auxilats.auxAngle.AuxAngle.__str__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.auxilats.auxAngle.AuxAngle._copy_2\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#_copy_2\npygeodesy.auxilats.auxAngle.AuxAngle.toChi\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#toChi\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.auxilats.auxAngle.AuxAngle.fromRadians\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#fromRadians\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.auxilats.auxAngle.AuxAngle._y\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#_y\npygeodesy.auxilats.auxAngle.AuxAngle._x\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#_x\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.auxilats.auxAngle.AuxAngle.toPhi\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#toPhi\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.auxilats.auxAngle.AuxAngle._x_normalized\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#_x_normalized\npygeodesy.named._Named.toStr\tpygeodesy.named._Named-class.html#toStr\npygeodesy.auxilats.auxAngle.AuxAngle.toMu\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#toMu\npygeodesy.auxilats.auxAngle.AuxAngle.__bool__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__bool__\npygeodesy.auxilats.auxAngle.AuxAngle._toRhumbAux\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#_toRhumbAux\npygeodesy.auxilats.auxAngle.AuxAngle.copyquadrant\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#copyquadrant\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.auxilats.auxAngle.AuxAngle.__rsub__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__rsub__\npygeodesy.named._Named.toRepr\tpygeodesy.named._Named-class.html#toRepr\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.auxilats.auxAngle.AuxAngle._iter\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#_iter\npygeodesy.auxilats.auxAngle.AuxAngle.fromLambertianDegrees\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#fromLambertianDegrees\npygeodesy.auxilats.auxAngle.AuxAngle.toBeta\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#toBeta\npygeodesy.auxilats.auxAngle.AuxAngle.__ne__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__ne__\npygeodesy.auxilats.auxAngle.AuxAngle.x\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#x\npygeodesy.auxilats.auxAngle.AuxAngle._iadd\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#_iadd\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.auxilats.auxAngle.AuxAngle.toLambertianRadians\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#toLambertianRadians\npygeodesy.auxilats.auxAngle.AuxAngle.fromLambertianRadians\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#fromLambertianRadians\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.__repr__\tpygeodesy.named._Named-class.html#__repr__\npygeodesy.auxilats.auxAngle.AuxAngle.fromDegrees\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#fromDegrees\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.auxilats.auxAngle.AuxAngle.toRadians\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#toRadians\npygeodesy.auxilats.auxAngle.AuxAngle._yx\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#_yx\npygeodesy.auxilats.auxAngle.AuxAngle.diff\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#diff\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.auxilats.auxAngle.AuxAngle._AUX\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#_AUX\npygeodesy.auxilats.auxAngle.AuxAngle._RhumbAux\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#_RhumbAux\npygeodesy.auxilats.auxAngle.AuxAngle.__abs__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__abs__\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.auxilats.auxAngle.AuxAngle._yx_normalized\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#_yx_normalized\npygeodesy.auxilats.auxAngle.AuxAngle.toDegrees\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#toDegrees\npygeodesy.auxilats.auxAngle.AuxAngle.__float__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__float__\npygeodesy.auxilats.auxAngle.AuxAngle.__isub__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__isub__\npygeodesy.auxilats.auxAngle.AuxAngle._diff\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#_diff\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.auxilats.auxAngle.AuxAngle.toLambertianDegrees\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#toLambertianDegrees\npygeodesy.auxilats.auxAngle.AuxAngle.normalized\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#normalized\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.auxilats.auxAngle.AuxAngle.__eq__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__eq__\npygeodesy.auxilats.auxAngle.AuxAngle.iteration\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#iteration\npygeodesy.auxilats.auxAngle.AuxAngle.__iadd__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__iadd__\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.auxilats.auxAngle.AuxAngle.__sub__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__sub__\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.auxilats.auxAngle.AuxAngle._yxr_normalized\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#_yxr_normalized\npygeodesy.auxilats.auxAngle.AuxAngle.__radd__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__radd__\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.auxilats.auxAngle.AuxAngle.tan\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#tan\npygeodesy.auxilats.auxAngle.AuxAngle.__init__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__init__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.auxilats.auxAngle.AuxAngle.__pos__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__pos__\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.auxilats.auxAngle.AuxAngle.normal\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#normal\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.auxilats.auxAngle.AuxAngle.__add__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__add__\npygeodesy.auxilats.auxAngle.AuxAngle._copy_r2\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#_copy_r2\npygeodesy.auxilats.auxAngle.AuxAngle.__neg__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__neg__\npygeodesy.auxilats.auxAngle.AuxAngle.y\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#y\npygeodesy.auxilats.auxAngle.AuxBeta\tpygeodesy.auxilats.auxAngle.AuxBeta-class.html\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.auxilats.auxAngle.AuxAngle.__str__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.auxilats.auxAngle.AuxAngle._copy_2\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#_copy_2\npygeodesy.auxilats.auxAngle.AuxAngle.toChi\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#toChi\npygeodesy.auxilats.auxAngle.AuxAngle.toBeta\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#toBeta\npygeodesy.auxilats.auxAngle.AuxBeta.fromRadians\tpygeodesy.auxilats.auxAngle.AuxBeta-class.html#fromRadians\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.auxilats.auxAngle.AuxAngle._y\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#_y\npygeodesy.auxilats.auxAngle.AuxAngle._x\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#_x\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.auxilats.auxAngle.AuxAngle.toPhi\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#toPhi\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.auxilats.auxAngle.AuxAngle._x_normalized\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#_x_normalized\npygeodesy.named._Named.toStr\tpygeodesy.named._Named-class.html#toStr\npygeodesy.auxilats.auxAngle.AuxAngle.toMu\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#toMu\npygeodesy.auxilats.auxAngle.AuxAngle.__bool__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__bool__\npygeodesy.auxilats.auxAngle.AuxAngle._toRhumbAux\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#_toRhumbAux\npygeodesy.auxilats.auxAngle.AuxAngle.copyquadrant\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#copyquadrant\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.auxilats.auxAngle.AuxAngle.__rsub__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__rsub__\npygeodesy.named._Named.toRepr\tpygeodesy.named._Named-class.html#toRepr\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.auxilats.auxAngle.AuxAngle._iter\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#_iter\npygeodesy.auxilats.auxAngle.AuxAngle.fromLambertianDegrees\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#fromLambertianDegrees\npygeodesy.auxilats.auxAngle.AuxBeta._AUX\tpygeodesy.auxilats.auxAngle.AuxBeta-class.html#_AUX\npygeodesy.auxilats.auxAngle.AuxAngle.__ne__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__ne__\npygeodesy.auxilats.auxAngle.AuxAngle.x\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#x\npygeodesy.auxilats.auxAngle.AuxAngle._iadd\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#_iadd\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.auxilats.auxAngle.AuxAngle.toLambertianRadians\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#toLambertianRadians\npygeodesy.auxilats.auxAngle.AuxAngle.fromLambertianRadians\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#fromLambertianRadians\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.__repr__\tpygeodesy.named._Named-class.html#__repr__\npygeodesy.auxilats.auxAngle.AuxBeta.fromDegrees\tpygeodesy.auxilats.auxAngle.AuxBeta-class.html#fromDegrees\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.auxilats.auxAngle.AuxAngle.toRadians\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#toRadians\npygeodesy.auxilats.auxAngle.AuxAngle._yx\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#_yx\npygeodesy.auxilats.auxAngle.AuxAngle.diff\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#diff\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.auxilats.auxAngle.AuxAngle.toDegrees\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#toDegrees\npygeodesy.auxilats.auxAngle.AuxAngle._RhumbAux\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#_RhumbAux\npygeodesy.auxilats.auxAngle.AuxAngle.__abs__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__abs__\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.auxilats.auxAngle.AuxAngle._yx_normalized\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#_yx_normalized\npygeodesy.auxilats.auxAngle.AuxAngle.__float__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__float__\npygeodesy.auxilats.auxAngle.AuxAngle.__isub__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__isub__\npygeodesy.auxilats.auxAngle.AuxAngle._diff\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#_diff\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.auxilats.auxAngle.AuxAngle.toLambertianDegrees\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#toLambertianDegrees\npygeodesy.auxilats.auxAngle.AuxAngle.normalized\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#normalized\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.auxilats.auxAngle.AuxAngle.__eq__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__eq__\npygeodesy.auxilats.auxAngle.AuxAngle.iteration\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#iteration\npygeodesy.auxilats.auxAngle.AuxAngle.__iadd__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__iadd__\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.auxilats.auxAngle.AuxAngle.__sub__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__sub__\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.auxilats.auxAngle.AuxAngle._yxr_normalized\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#_yxr_normalized\npygeodesy.auxilats.auxAngle.AuxAngle.__radd__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__radd__\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.auxilats.auxAngle.AuxAngle.tan\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#tan\npygeodesy.auxilats.auxAngle.AuxAngle.__init__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__init__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.auxilats.auxAngle.AuxAngle.__pos__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__pos__\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.auxilats.auxAngle.AuxAngle.normal\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#normal\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.auxilats.auxAngle.AuxAngle.__add__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__add__\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.auxilats.auxAngle.AuxAngle._copy_r2\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#_copy_r2\npygeodesy.auxilats.auxAngle.AuxAngle.__neg__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__neg__\npygeodesy.auxilats.auxAngle.AuxAngle.y\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#y\npygeodesy.auxilats.auxAngle.AuxChi\tpygeodesy.auxilats.auxAngle.AuxChi-class.html\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.auxilats.auxAngle.AuxAngle.__str__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.auxilats.auxAngle.AuxAngle._copy_2\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#_copy_2\npygeodesy.auxilats.auxAngle.AuxAngle.toChi\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#toChi\npygeodesy.auxilats.auxAngle.AuxAngle.toBeta\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#toBeta\npygeodesy.auxilats.auxAngle.AuxAngle.fromRadians\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#fromRadians\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.auxilats.auxAngle.AuxAngle._y\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#_y\npygeodesy.auxilats.auxAngle.AuxAngle._x\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#_x\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.auxilats.auxAngle.AuxAngle.toPhi\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#toPhi\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.auxilats.auxAngle.AuxAngle._x_normalized\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#_x_normalized\npygeodesy.named._Named.toStr\tpygeodesy.named._Named-class.html#toStr\npygeodesy.auxilats.auxAngle.AuxAngle.toMu\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#toMu\npygeodesy.auxilats.auxAngle.AuxAngle.__bool__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__bool__\npygeodesy.auxilats.auxAngle.AuxAngle._toRhumbAux\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#_toRhumbAux\npygeodesy.auxilats.auxAngle.AuxAngle.copyquadrant\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#copyquadrant\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.auxilats.auxAngle.AuxAngle.__rsub__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__rsub__\npygeodesy.named._Named.toRepr\tpygeodesy.named._Named-class.html#toRepr\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.auxilats.auxAngle.AuxAngle._iter\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#_iter\npygeodesy.auxilats.auxAngle.AuxAngle.fromLambertianDegrees\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#fromLambertianDegrees\npygeodesy.auxilats.auxAngle.AuxChi._AUX\tpygeodesy.auxilats.auxAngle.AuxChi-class.html#_AUX\npygeodesy.auxilats.auxAngle.AuxAngle.__ne__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__ne__\npygeodesy.auxilats.auxAngle.AuxAngle.x\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#x\npygeodesy.auxilats.auxAngle.AuxAngle._iadd\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#_iadd\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.auxilats.auxAngle.AuxAngle.toLambertianRadians\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#toLambertianRadians\npygeodesy.auxilats.auxAngle.AuxAngle.fromLambertianRadians\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#fromLambertianRadians\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.__repr__\tpygeodesy.named._Named-class.html#__repr__\npygeodesy.auxilats.auxAngle.AuxChi.fromDegrees\tpygeodesy.auxilats.auxAngle.AuxChi-class.html#fromDegrees\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.auxilats.auxAngle.AuxAngle.toRadians\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#toRadians\npygeodesy.auxilats.auxAngle.AuxAngle._yx\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#_yx\npygeodesy.auxilats.auxAngle.AuxAngle.diff\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#diff\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.auxilats.auxAngle.AuxAngle.toDegrees\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#toDegrees\npygeodesy.auxilats.auxAngle.AuxAngle._RhumbAux\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#_RhumbAux\npygeodesy.auxilats.auxAngle.AuxAngle.__abs__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__abs__\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.auxilats.auxAngle.AuxAngle._yx_normalized\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#_yx_normalized\npygeodesy.auxilats.auxAngle.AuxAngle.__float__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__float__\npygeodesy.auxilats.auxAngle.AuxAngle.__isub__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__isub__\npygeodesy.auxilats.auxAngle.AuxAngle._diff\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#_diff\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.auxilats.auxAngle.AuxAngle.toLambertianDegrees\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#toLambertianDegrees\npygeodesy.auxilats.auxAngle.AuxAngle.normalized\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#normalized\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.auxilats.auxAngle.AuxAngle.__eq__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__eq__\npygeodesy.auxilats.auxAngle.AuxAngle.iteration\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#iteration\npygeodesy.auxilats.auxAngle.AuxAngle.__iadd__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__iadd__\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.auxilats.auxAngle.AuxAngle.__sub__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__sub__\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.auxilats.auxAngle.AuxAngle._yxr_normalized\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#_yxr_normalized\npygeodesy.auxilats.auxAngle.AuxAngle.__radd__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__radd__\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.auxilats.auxAngle.AuxAngle.tan\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#tan\npygeodesy.auxilats.auxAngle.AuxAngle.__init__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__init__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.auxilats.auxAngle.AuxAngle.__pos__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__pos__\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.auxilats.auxAngle.AuxAngle.normal\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#normal\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.auxilats.auxAngle.AuxAngle.__add__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__add__\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.auxilats.auxAngle.AuxAngle._copy_r2\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#_copy_r2\npygeodesy.auxilats.auxAngle.AuxAngle.__neg__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__neg__\npygeodesy.auxilats.auxAngle.AuxAngle.y\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#y\npygeodesy.auxilats.auxAngle.AuxMu\tpygeodesy.auxilats.auxAngle.AuxMu-class.html\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.auxilats.auxAngle.AuxAngle.__str__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.auxilats.auxAngle.AuxAngle._copy_2\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#_copy_2\npygeodesy.auxilats.auxAngle.AuxAngle.toChi\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#toChi\npygeodesy.auxilats.auxAngle.AuxAngle.toBeta\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#toBeta\npygeodesy.auxilats.auxAngle.AuxAngle.fromRadians\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#fromRadians\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.auxilats.auxAngle.AuxAngle._y\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#_y\npygeodesy.auxilats.auxAngle.AuxAngle._x\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#_x\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.auxilats.auxAngle.AuxAngle.toPhi\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#toPhi\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.auxilats.auxAngle.AuxAngle._x_normalized\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#_x_normalized\npygeodesy.named._Named.toStr\tpygeodesy.named._Named-class.html#toStr\npygeodesy.auxilats.auxAngle.AuxAngle.toMu\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#toMu\npygeodesy.auxilats.auxAngle.AuxAngle.__bool__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__bool__\npygeodesy.auxilats.auxAngle.AuxAngle._toRhumbAux\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#_toRhumbAux\npygeodesy.auxilats.auxAngle.AuxAngle.copyquadrant\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#copyquadrant\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.auxilats.auxAngle.AuxAngle.__rsub__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__rsub__\npygeodesy.named._Named.toRepr\tpygeodesy.named._Named-class.html#toRepr\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.auxilats.auxAngle.AuxAngle._iter\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#_iter\npygeodesy.auxilats.auxAngle.AuxAngle.fromLambertianDegrees\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#fromLambertianDegrees\npygeodesy.auxilats.auxAngle.AuxMu._AUX\tpygeodesy.auxilats.auxAngle.AuxMu-class.html#_AUX\npygeodesy.auxilats.auxAngle.AuxAngle.__ne__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__ne__\npygeodesy.auxilats.auxAngle.AuxAngle.x\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#x\npygeodesy.auxilats.auxAngle.AuxAngle._iadd\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#_iadd\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.auxilats.auxAngle.AuxAngle.toLambertianRadians\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#toLambertianRadians\npygeodesy.auxilats.auxAngle.AuxAngle.fromLambertianRadians\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#fromLambertianRadians\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.__repr__\tpygeodesy.named._Named-class.html#__repr__\npygeodesy.auxilats.auxAngle.AuxMu.fromDegrees\tpygeodesy.auxilats.auxAngle.AuxMu-class.html#fromDegrees\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.auxilats.auxAngle.AuxAngle.toRadians\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#toRadians\npygeodesy.auxilats.auxAngle.AuxAngle._yx\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#_yx\npygeodesy.auxilats.auxAngle.AuxAngle.diff\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#diff\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.auxilats.auxAngle.AuxAngle.toDegrees\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#toDegrees\npygeodesy.auxilats.auxAngle.AuxAngle._RhumbAux\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#_RhumbAux\npygeodesy.auxilats.auxAngle.AuxAngle.__abs__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__abs__\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.auxilats.auxAngle.AuxAngle._yx_normalized\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#_yx_normalized\npygeodesy.auxilats.auxAngle.AuxAngle.__float__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__float__\npygeodesy.auxilats.auxAngle.AuxAngle.__isub__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__isub__\npygeodesy.auxilats.auxAngle.AuxAngle._diff\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#_diff\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.auxilats.auxAngle.AuxAngle.toLambertianDegrees\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#toLambertianDegrees\npygeodesy.auxilats.auxAngle.AuxAngle.normalized\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#normalized\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.auxilats.auxAngle.AuxAngle.__eq__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__eq__\npygeodesy.auxilats.auxAngle.AuxAngle.iteration\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#iteration\npygeodesy.auxilats.auxAngle.AuxAngle.__iadd__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__iadd__\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.auxilats.auxAngle.AuxAngle.__sub__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__sub__\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.auxilats.auxAngle.AuxAngle._yxr_normalized\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#_yxr_normalized\npygeodesy.auxilats.auxAngle.AuxAngle.__radd__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__radd__\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.auxilats.auxAngle.AuxAngle.tan\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#tan\npygeodesy.auxilats.auxAngle.AuxAngle.__init__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__init__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.auxilats.auxAngle.AuxAngle.__pos__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__pos__\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.auxilats.auxAngle.AuxAngle.normal\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#normal\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.auxilats.auxAngle.AuxAngle.__add__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__add__\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.auxilats.auxAngle.AuxAngle._copy_r2\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#_copy_r2\npygeodesy.auxilats.auxAngle.AuxAngle.__neg__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__neg__\npygeodesy.auxilats.auxAngle.AuxAngle.y\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#y\npygeodesy.auxilats.auxAngle.AuxPhi\tpygeodesy.auxilats.auxAngle.AuxPhi-class.html\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.auxilats.auxAngle.AuxAngle.__str__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.auxilats.auxAngle.AuxAngle._copy_2\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#_copy_2\npygeodesy.auxilats.auxAngle.AuxAngle.toChi\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#toChi\npygeodesy.auxilats.auxAngle.AuxAngle.toBeta\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#toBeta\npygeodesy.auxilats.auxAngle.AuxAngle.fromRadians\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#fromRadians\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.auxilats.auxAngle.AuxAngle._y\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#_y\npygeodesy.auxilats.auxAngle.AuxAngle._x\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#_x\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.auxilats.auxAngle.AuxPhi._AUX\tpygeodesy.auxilats.auxAngle.AuxPhi-class.html#_AUX\npygeodesy.auxilats.auxAngle.AuxAngle.toPhi\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#toPhi\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.auxilats.auxAngle.AuxAngle._x_normalized\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#_x_normalized\npygeodesy.named._Named.toStr\tpygeodesy.named._Named-class.html#toStr\npygeodesy.auxilats.auxAngle.AuxAngle.toMu\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#toMu\npygeodesy.auxilats.auxAngle.AuxAngle.__bool__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__bool__\npygeodesy.auxilats.auxAngle.AuxAngle._toRhumbAux\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#_toRhumbAux\npygeodesy.auxilats.auxAngle.AuxAngle.copyquadrant\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#copyquadrant\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.auxilats.auxAngle.AuxAngle.__rsub__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__rsub__\npygeodesy.named._Named.toRepr\tpygeodesy.named._Named-class.html#toRepr\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.auxilats.auxAngle.AuxAngle._iter\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#_iter\npygeodesy.auxilats.auxAngle.AuxAngle.fromLambertianDegrees\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#fromLambertianDegrees\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.auxilats.auxAngle.AuxAngle.__ne__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__ne__\npygeodesy.auxilats.auxAngle.AuxAngle.x\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#x\npygeodesy.auxilats.auxAngle.AuxAngle._iadd\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#_iadd\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.auxilats.auxAngle.AuxAngle.toLambertianRadians\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#toLambertianRadians\npygeodesy.auxilats.auxAngle.AuxAngle.fromLambertianRadians\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#fromLambertianRadians\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.__repr__\tpygeodesy.named._Named-class.html#__repr__\npygeodesy.auxilats.auxAngle.AuxPhi.fromDegrees\tpygeodesy.auxilats.auxAngle.AuxPhi-class.html#fromDegrees\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.auxilats.auxAngle.AuxAngle.toRadians\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#toRadians\npygeodesy.auxilats.auxAngle.AuxAngle._yx\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#_yx\npygeodesy.auxilats.auxAngle.AuxAngle.diff\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#diff\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.auxilats.auxAngle.AuxAngle.toDegrees\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#toDegrees\npygeodesy.auxilats.auxAngle.AuxAngle._RhumbAux\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#_RhumbAux\npygeodesy.auxilats.auxAngle.AuxAngle.__abs__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__abs__\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.auxilats.auxAngle.AuxAngle._yx_normalized\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#_yx_normalized\npygeodesy.auxilats.auxAngle.AuxAngle.__float__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__float__\npygeodesy.auxilats.auxAngle.AuxAngle.__isub__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__isub__\npygeodesy.auxilats.auxAngle.AuxPhi._diff\tpygeodesy.auxilats.auxAngle.AuxPhi-class.html#_diff\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.auxilats.auxAngle.AuxAngle.toLambertianDegrees\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#toLambertianDegrees\npygeodesy.auxilats.auxAngle.AuxAngle.normalized\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#normalized\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.auxilats.auxAngle.AuxAngle.__eq__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__eq__\npygeodesy.auxilats.auxAngle.AuxAngle.iteration\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#iteration\npygeodesy.auxilats.auxAngle.AuxAngle.__iadd__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__iadd__\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.auxilats.auxAngle.AuxAngle.__sub__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__sub__\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.auxilats.auxAngle.AuxAngle._yxr_normalized\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#_yxr_normalized\npygeodesy.auxilats.auxAngle.AuxAngle.__radd__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__radd__\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.auxilats.auxAngle.AuxAngle.tan\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#tan\npygeodesy.auxilats.auxAngle.AuxAngle.__init__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__init__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.auxilats.auxAngle.AuxAngle.__pos__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__pos__\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.auxilats.auxAngle.AuxAngle.normal\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#normal\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.auxilats.auxAngle.AuxAngle.__add__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__add__\npygeodesy.auxilats.auxAngle.AuxAngle._copy_r2\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#_copy_r2\npygeodesy.auxilats.auxAngle.AuxAngle.__neg__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__neg__\npygeodesy.auxilats.auxAngle.AuxAngle.y\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#y\npygeodesy.auxilats.auxAngle.AuxTheta\tpygeodesy.auxilats.auxAngle.AuxTheta-class.html\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.auxilats.auxAngle.AuxAngle.__str__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.auxilats.auxAngle.AuxAngle._copy_2\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#_copy_2\npygeodesy.auxilats.auxAngle.AuxAngle.toChi\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#toChi\npygeodesy.auxilats.auxAngle.AuxAngle.toBeta\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#toBeta\npygeodesy.auxilats.auxAngle.AuxAngle.fromRadians\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#fromRadians\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.auxilats.auxAngle.AuxAngle._y\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#_y\npygeodesy.auxilats.auxAngle.AuxAngle._x\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#_x\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.auxilats.auxAngle.AuxAngle.toPhi\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#toPhi\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.auxilats.auxAngle.AuxAngle._x_normalized\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#_x_normalized\npygeodesy.named._Named.toStr\tpygeodesy.named._Named-class.html#toStr\npygeodesy.auxilats.auxAngle.AuxAngle.toMu\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#toMu\npygeodesy.auxilats.auxAngle.AuxAngle.__bool__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__bool__\npygeodesy.auxilats.auxAngle.AuxAngle._toRhumbAux\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#_toRhumbAux\npygeodesy.auxilats.auxAngle.AuxAngle.copyquadrant\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#copyquadrant\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.auxilats.auxAngle.AuxAngle.__rsub__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__rsub__\npygeodesy.named._Named.toRepr\tpygeodesy.named._Named-class.html#toRepr\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.auxilats.auxAngle.AuxAngle._iter\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#_iter\npygeodesy.auxilats.auxAngle.AuxAngle.fromLambertianDegrees\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#fromLambertianDegrees\npygeodesy.auxilats.auxAngle.AuxTheta._AUX\tpygeodesy.auxilats.auxAngle.AuxTheta-class.html#_AUX\npygeodesy.auxilats.auxAngle.AuxAngle.__ne__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__ne__\npygeodesy.auxilats.auxAngle.AuxAngle.x\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#x\npygeodesy.auxilats.auxAngle.AuxAngle._iadd\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#_iadd\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.auxilats.auxAngle.AuxAngle.toLambertianRadians\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#toLambertianRadians\npygeodesy.auxilats.auxAngle.AuxAngle.fromLambertianRadians\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#fromLambertianRadians\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.__repr__\tpygeodesy.named._Named-class.html#__repr__\npygeodesy.auxilats.auxAngle.AuxTheta.fromDegrees\tpygeodesy.auxilats.auxAngle.AuxTheta-class.html#fromDegrees\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.auxilats.auxAngle.AuxAngle.toRadians\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#toRadians\npygeodesy.auxilats.auxAngle.AuxAngle._yx\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#_yx\npygeodesy.auxilats.auxAngle.AuxAngle.diff\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#diff\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.auxilats.auxAngle.AuxAngle.toDegrees\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#toDegrees\npygeodesy.auxilats.auxAngle.AuxAngle._RhumbAux\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#_RhumbAux\npygeodesy.auxilats.auxAngle.AuxAngle.__abs__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__abs__\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.auxilats.auxAngle.AuxAngle._yx_normalized\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#_yx_normalized\npygeodesy.auxilats.auxAngle.AuxAngle.__float__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__float__\npygeodesy.auxilats.auxAngle.AuxAngle.__isub__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__isub__\npygeodesy.auxilats.auxAngle.AuxAngle._diff\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#_diff\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.auxilats.auxAngle.AuxAngle.toLambertianDegrees\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#toLambertianDegrees\npygeodesy.auxilats.auxAngle.AuxAngle.normalized\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#normalized\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.auxilats.auxAngle.AuxAngle.__eq__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__eq__\npygeodesy.auxilats.auxAngle.AuxAngle.iteration\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#iteration\npygeodesy.auxilats.auxAngle.AuxAngle.__iadd__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__iadd__\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.auxilats.auxAngle.AuxAngle.__sub__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__sub__\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.auxilats.auxAngle.AuxAngle._yxr_normalized\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#_yxr_normalized\npygeodesy.auxilats.auxAngle.AuxAngle.__radd__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__radd__\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.auxilats.auxAngle.AuxAngle.tan\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#tan\npygeodesy.auxilats.auxAngle.AuxAngle.__init__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__init__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.auxilats.auxAngle.AuxAngle.__pos__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__pos__\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.auxilats.auxAngle.AuxAngle.normal\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#normal\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.auxilats.auxAngle.AuxAngle.__add__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__add__\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.auxilats.auxAngle.AuxAngle._copy_r2\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#_copy_r2\npygeodesy.auxilats.auxAngle.AuxAngle.__neg__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__neg__\npygeodesy.auxilats.auxAngle.AuxAngle.y\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#y\npygeodesy.auxilats.auxAngle.AuxXi\tpygeodesy.auxilats.auxAngle.AuxXi-class.html\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.auxilats.auxAngle.AuxAngle.__str__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.auxilats.auxAngle.AuxAngle._copy_2\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#_copy_2\npygeodesy.auxilats.auxAngle.AuxAngle.toChi\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#toChi\npygeodesy.auxilats.auxAngle.AuxAngle.toBeta\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#toBeta\npygeodesy.auxilats.auxAngle.AuxAngle.fromRadians\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#fromRadians\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.auxilats.auxAngle.AuxAngle._y\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#_y\npygeodesy.auxilats.auxAngle.AuxAngle._x\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#_x\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.auxilats.auxAngle.AuxAngle.toPhi\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#toPhi\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.auxilats.auxAngle.AuxAngle._x_normalized\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#_x_normalized\npygeodesy.named._Named.toStr\tpygeodesy.named._Named-class.html#toStr\npygeodesy.auxilats.auxAngle.AuxAngle.toMu\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#toMu\npygeodesy.auxilats.auxAngle.AuxAngle.__bool__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__bool__\npygeodesy.auxilats.auxAngle.AuxAngle._toRhumbAux\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#_toRhumbAux\npygeodesy.auxilats.auxAngle.AuxAngle.copyquadrant\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#copyquadrant\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.auxilats.auxAngle.AuxAngle.__rsub__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__rsub__\npygeodesy.named._Named.toRepr\tpygeodesy.named._Named-class.html#toRepr\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.auxilats.auxAngle.AuxAngle._iter\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#_iter\npygeodesy.auxilats.auxAngle.AuxAngle.fromLambertianDegrees\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#fromLambertianDegrees\npygeodesy.auxilats.auxAngle.AuxXi._AUX\tpygeodesy.auxilats.auxAngle.AuxXi-class.html#_AUX\npygeodesy.auxilats.auxAngle.AuxAngle.__ne__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__ne__\npygeodesy.auxilats.auxAngle.AuxAngle.x\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#x\npygeodesy.auxilats.auxAngle.AuxAngle._iadd\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#_iadd\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.auxilats.auxAngle.AuxAngle.toLambertianRadians\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#toLambertianRadians\npygeodesy.auxilats.auxAngle.AuxAngle.fromLambertianRadians\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#fromLambertianRadians\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.__repr__\tpygeodesy.named._Named-class.html#__repr__\npygeodesy.auxilats.auxAngle.AuxXi.fromDegrees\tpygeodesy.auxilats.auxAngle.AuxXi-class.html#fromDegrees\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.auxilats.auxAngle.AuxAngle.toRadians\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#toRadians\npygeodesy.auxilats.auxAngle.AuxAngle._yx\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#_yx\npygeodesy.auxilats.auxAngle.AuxAngle.diff\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#diff\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.auxilats.auxAngle.AuxAngle.toDegrees\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#toDegrees\npygeodesy.auxilats.auxAngle.AuxAngle._RhumbAux\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#_RhumbAux\npygeodesy.auxilats.auxAngle.AuxAngle.__abs__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__abs__\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.auxilats.auxAngle.AuxAngle._yx_normalized\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#_yx_normalized\npygeodesy.auxilats.auxAngle.AuxAngle.__float__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__float__\npygeodesy.auxilats.auxAngle.AuxAngle.__isub__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__isub__\npygeodesy.auxilats.auxAngle.AuxAngle._diff\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#_diff\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.auxilats.auxAngle.AuxAngle.toLambertianDegrees\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#toLambertianDegrees\npygeodesy.auxilats.auxAngle.AuxAngle.normalized\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#normalized\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.auxilats.auxAngle.AuxAngle.__eq__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__eq__\npygeodesy.auxilats.auxAngle.AuxAngle.iteration\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#iteration\npygeodesy.auxilats.auxAngle.AuxAngle.__iadd__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__iadd__\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.auxilats.auxAngle.AuxAngle.__sub__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__sub__\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.auxilats.auxAngle.AuxAngle._yxr_normalized\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#_yxr_normalized\npygeodesy.auxilats.auxAngle.AuxAngle.__radd__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__radd__\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.auxilats.auxAngle.AuxAngle.tan\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#tan\npygeodesy.auxilats.auxAngle.AuxAngle.__init__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__init__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.auxilats.auxAngle.AuxAngle.__pos__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__pos__\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.auxilats.auxAngle.AuxAngle.normal\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#normal\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.auxilats.auxAngle.AuxAngle.__add__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__add__\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.auxilats.auxAngle.AuxAngle._copy_r2\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#_copy_r2\npygeodesy.auxilats.auxAngle.AuxAngle.__neg__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__neg__\npygeodesy.auxilats.auxAngle.AuxAngle.y\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#y\npygeodesy.auxilats.auxDLat.AuxDLat\tpygeodesy.auxilats.auxDLat.AuxDLat-class.html\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.auxilats.auxLat.AuxLat.Authalic\tpygeodesy.auxilats.auxLat.AuxLat-class.html#Authalic\npygeodesy.auxilats.auxLat.AuxLat._RectifyingR\tpygeodesy.auxilats.auxLat.AuxLat-class.html#_RectifyingR\npygeodesy.auxilats.auxAngle.AuxAngle.__str__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.auxilats.auxLat.AuxLat._E\tpygeodesy.auxilats.auxLat.AuxLat-class.html#_E\npygeodesy.auxilats.auxAngle.AuxAngle._copy_2\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#_copy_2\npygeodesy.auxilats.auxAngle.AuxAngle.toChi\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#toChi\npygeodesy.auxilats.auxAngle.AuxAngle.toBeta\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#toBeta\npygeodesy.auxilats.auxAngle.AuxAngle.fromRadians\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#fromRadians\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.auxilats.auxAngle.AuxAngle._y\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#_y\npygeodesy.auxilats.auxAngle.AuxAngle._x\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#_x\npygeodesy.auxilats.auxLat.AuxLat.Conformal\tpygeodesy.auxilats.auxLat.AuxLat-class.html#Conformal\npygeodesy.auxilats.auxDLat.AuxDLat._Datanhee\tpygeodesy.auxilats.auxDLat.AuxDLat-class.html#_Datanhee\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.auxilats.auxLat.AuxLat._n\tpygeodesy.auxilats.auxLat.AuxLat-class.html#_n\npygeodesy.auxilats.auxAngle.AuxAngle.toPhi\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#toPhi\npygeodesy.auxilats.auxAngle.AuxAngle.__eq__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__eq__\npygeodesy.auxilats.auxLat.AuxLat._e\tpygeodesy.auxilats.auxLat.AuxLat-class.html#_e\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.auxilats.auxDLat.AuxDLat.DIsometric\tpygeodesy.auxilats.auxDLat.AuxDLat-class.html#DIsometric\npygeodesy.auxilats.auxAngle.AuxAngle._x_normalized\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#_x_normalized\npygeodesy.named._Named.toStr\tpygeodesy.named._Named-class.html#toStr\npygeodesy.auxilats.auxLat.AuxLat.RectifyingRadius\tpygeodesy.auxilats.auxLat.AuxLat-class.html#RectifyingRadius\npygeodesy.auxilats.auxAngle.AuxAngle.toMu\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#toMu\npygeodesy.auxilats.auxLat.AuxLat._qIntegrand\tpygeodesy.auxilats.auxLat.AuxLat-class.html#_qIntegrand\npygeodesy.auxilats.auxAngle.AuxAngle.__bool__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__bool__\npygeodesy.auxilats.auxLat.AuxLat.Parametric\tpygeodesy.auxilats.auxLat.AuxLat-class.html#Parametric\npygeodesy.auxilats.auxLat.AuxLat.Reduced\tpygeodesy.auxilats.auxLat.AuxLat-class.html#Reduced\npygeodesy.auxilats.auxAngle.AuxAngle._toRhumbAux\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#_toRhumbAux\npygeodesy.auxilats.auxLat.AuxLat._fm1\tpygeodesy.auxilats.auxLat.AuxLat-class.html#_fm1\npygeodesy.auxilats.auxAngle.AuxAngle.copyquadrant\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#copyquadrant\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.auxilats.auxLat.AuxLat.Rectifying\tpygeodesy.auxilats.auxLat.AuxLat-class.html#Rectifying\npygeodesy.auxilats.auxLat.AuxLat._toZeta\tpygeodesy.auxilats.auxLat.AuxLat-class.html#_toZeta\npygeodesy.auxilats.auxLat.AuxLat._toAux\tpygeodesy.auxilats.auxLat.AuxLat-class.html#_toAux\npygeodesy.auxilats.auxAngle.AuxAngle.x\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#x\npygeodesy.named._Named.toRepr\tpygeodesy.named._Named-class.html#toRepr\npygeodesy.auxilats.auxDLat.AuxDLat.Dconvert\tpygeodesy.auxilats.auxDLat.AuxDLat-class.html#Dconvert\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.auxilats.auxLat.AuxLat._CXcoeffs\tpygeodesy.auxilats.auxLat.AuxLat-class.html#_CXcoeffs\npygeodesy.auxilats.auxAngle.AuxAngle.__iadd__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__iadd__\npygeodesy.auxilats.auxLat.AuxLat._e2\tpygeodesy.auxilats.auxLat.AuxLat-class.html#_e2\npygeodesy.auxilats.auxLat.AuxLat._e1\tpygeodesy.auxilats.auxLat.AuxLat-class.html#_e1\npygeodesy.auxilats.auxAngle.AuxAngle._iter\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#_iter\npygeodesy.auxilats.auxAngle.AuxAngle.fromLambertianDegrees\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#fromLambertianDegrees\npygeodesy.auxilats.auxLat.AuxLat._e12p1\tpygeodesy.auxilats.auxLat.AuxLat-class.html#_e12p1\npygeodesy.auxilats.auxLat.AuxLat.Geocentric\tpygeodesy.auxilats.auxLat.AuxLat-class.html#Geocentric\npygeodesy.auxilats.auxLat.AuxLat.flattening\tpygeodesy.auxilats.auxLat.AuxLat-class.html#flattening\npygeodesy.auxilats.auxLat.AuxLat._atanhee\tpygeodesy.auxilats.auxLat.AuxLat-class.html#_atanhee\npygeodesy.auxilats.auxAngle.AuxAngle._AUX\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#_AUX\npygeodesy.auxilats.auxAngle.AuxAngle.__ne__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__ne__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.auxilats.auxLat.AuxLat.Geodetic\tpygeodesy.auxilats.auxLat.AuxLat-class.html#Geodetic\npygeodesy.auxilats.auxAngle.AuxAngle._iadd\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#_iadd\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.auxilats.auxAngle.AuxAngle.toLambertianRadians\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#toLambertianRadians\npygeodesy.auxilats.auxAngle.AuxAngle.fromLambertianRadians\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#fromLambertianRadians\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.auxilats.auxLat.AuxLat.convert\tpygeodesy.auxilats.auxLat.AuxLat-class.html#convert\npygeodesy.auxilats.auxLat.AuxLat.ellipsoid\tpygeodesy.auxilats.auxLat.AuxLat-class.html#ellipsoid\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.__repr__\tpygeodesy.named._Named-class.html#__repr__\npygeodesy.auxilats.auxAngle.AuxAngle.fromDegrees\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#fromDegrees\npygeodesy.auxilats.auxLat.AuxLat._Dq\tpygeodesy.auxilats.auxLat.AuxLat-class.html#_Dq\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.auxilats.auxLat.AuxLat._mAL\tpygeodesy.auxilats.auxLat.AuxLat-class.html#_mAL\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.auxilats.auxLat.AuxLat._conformal_diff\tpygeodesy.auxilats.auxLat.AuxLat-class.html#_conformal_diff\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.auxilats.auxLat.AuxLat._fromAux\tpygeodesy.auxilats.auxLat.AuxLat-class.html#_fromAux\npygeodesy.auxilats.auxAngle.AuxAngle.__rsub__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__rsub__\npygeodesy.auxilats.auxLat.AuxLat.equatoradius\tpygeodesy.auxilats.auxLat.AuxLat-class.html#equatoradius\npygeodesy.auxilats.auxAngle.AuxAngle.toRadians\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#toRadians\npygeodesy.auxilats.auxAngle.AuxAngle._yx\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#_yx\npygeodesy.auxilats.auxAngle.AuxAngle.diff\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#diff\npygeodesy.auxilats.auxLat.AuxLat._e2m1\tpygeodesy.auxilats.auxLat.AuxLat-class.html#_e2m1\npygeodesy.auxilats.auxAngle.AuxAngle.toDegrees\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#toDegrees\npygeodesy.auxilats.auxAngle.AuxAngle._RhumbAux\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#_RhumbAux\npygeodesy.auxilats.auxAngle.AuxAngle.__abs__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__abs__\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.auxilats.auxAngle.AuxAngle._yx_normalized\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#_yx_normalized\npygeodesy.auxilats.auxAngle.AuxAngle.__float__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__float__\npygeodesy.auxilats.auxAngle.AuxAngle.__isub__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__isub__\npygeodesy.auxilats.auxLat.AuxLat._e2m1_sq2\tpygeodesy.auxilats.auxLat.AuxLat-class.html#_e2m1_sq2\npygeodesy.auxilats.auxDLat.AuxDLat.DE\tpygeodesy.auxilats.auxDLat.AuxDLat-class.html#DE\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.auxilats.auxAngle.AuxAngle.toLambertianDegrees\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#toLambertianDegrees\npygeodesy.auxilats.auxAngle.AuxAngle.normalized\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#normalized\npygeodesy.auxilats.auxLat.AuxLat.AuthalicRadius2\tpygeodesy.auxilats.auxLat.AuxLat-class.html#AuthalicRadius2\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.auxilats.auxLat.AuxLat._scbeta\tpygeodesy.auxilats.auxLat.AuxLat-class.html#_scbeta\npygeodesy.auxilats.auxLat.AuxLat.b\tpygeodesy.auxilats.auxLat.AuxLat-class.html#b\npygeodesy.auxilats.auxLat.AuxLat.f\tpygeodesy.auxilats.auxLat.AuxLat-class.html#f\npygeodesy.auxilats.auxLat.AuxLat._n2\tpygeodesy.auxilats.auxLat.AuxLat-class.html#_n2\npygeodesy.auxilats.auxAngle.AuxAngle.iteration\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#iteration\npygeodesy.auxilats.auxLat.AuxLat._coeffs\tpygeodesy.auxilats.auxLat.AuxLat-class.html#_coeffs\npygeodesy.auxilats.auxLat.AuxLat._e12\tpygeodesy.auxilats.auxLat.AuxLat-class.html#_e12\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.auxilats.auxAngle.AuxAngle.__sub__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__sub__\npygeodesy.auxilats.auxLat.AuxLat._q\tpygeodesy.auxilats.auxLat.AuxLat-class.html#_q\npygeodesy.auxilats.auxLat.AuxLat._csc\tpygeodesy.auxilats.auxLat.AuxLat-class.html#_csc\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.auxilats.auxAngle.AuxAngle._yxr_normalized\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#_yxr_normalized\npygeodesy.auxilats.auxLat.AuxLat._2_e2m12\tpygeodesy.auxilats.auxLat.AuxLat-class.html#_2_e2m12\npygeodesy.auxilats.auxLat.AuxLat._fromAuxCase\tpygeodesy.auxilats.auxLat.AuxLat-class.html#_fromAuxCase\npygeodesy.auxilats.auxLat.AuxLat._Ef_fRG_a2b2_PI_4\tpygeodesy.auxilats.auxLat.AuxLat-class.html#_Ef_fRG_a2b2_PI_4\npygeodesy.auxilats.auxAngle.AuxAngle.__radd__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__radd__\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.auxilats.auxLat.AuxLat.ALorder\tpygeodesy.auxilats.auxLat.AuxLat-class.html#ALorder\npygeodesy.auxilats.auxAngle.AuxAngle._diff\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#_diff\npygeodesy.auxilats.auxAngle.AuxAngle.tan\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#tan\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.auxilats.auxLat.AuxLat.__init__\tpygeodesy.auxilats.auxLat.AuxLat-class.html#__init__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.auxilats.auxAngle.AuxAngle.__pos__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__pos__\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.auxilats.auxAngle.AuxAngle.normal\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#normal\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.auxilats.auxAngle.AuxAngle.__add__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__add__\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.auxilats.auxDLat.AuxDLat.CParametric\tpygeodesy.auxilats.auxDLat.AuxDLat-class.html#CParametric\npygeodesy.auxilats.auxDLat.AuxDLat.DRectifying\tpygeodesy.auxilats.auxDLat.AuxDLat-class.html#DRectifying\npygeodesy.auxilats.auxLat.AuxLat.a\tpygeodesy.auxilats.auxLat.AuxLat-class.html#a\npygeodesy.auxilats.auxLat.AuxLat._qf\tpygeodesy.auxilats.auxLat.AuxLat-class.html#_qf\npygeodesy.auxilats.auxDLat.AuxDLat.CRectifying\tpygeodesy.auxilats.auxDLat.AuxDLat-class.html#CRectifying\npygeodesy.auxilats.auxLat.AuxLat.polaradius\tpygeodesy.auxilats.auxLat.AuxLat-class.html#polaradius\npygeodesy.auxilats.auxAngle.AuxAngle._copy_r2\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#_copy_r2\npygeodesy.auxilats.auxAngle.AuxAngle.__neg__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__neg__\npygeodesy.auxilats.auxAngle.AuxAngle.y\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#y\npygeodesy.auxilats.auxDLat.AuxDLat.DParametric\tpygeodesy.auxilats.auxDLat.AuxDLat-class.html#DParametric\npygeodesy.auxilats.auxDST.AuxDST\tpygeodesy.auxilats.auxDST.AuxDST-class.html\npygeodesy.auxilats.auxDST.AuxDST._N\tpygeodesy.auxilats.auxDST.AuxDST-class.html#_N\npygeodesy.auxilats.auxDST.AuxDST._ffts2\tpygeodesy.auxilats.auxDST.AuxDST-class.html#_ffts2\npygeodesy.auxilats.auxDST.AuxDST.refine\tpygeodesy.auxilats.auxDST.AuxDST-class.html#refine\npygeodesy.auxilats.auxDST.AuxDST._fft_real\tpygeodesy.auxilats.auxDST.AuxDST-class.html#_fft_real\npygeodesy.auxilats.auxDST.AuxDST.__init__\tpygeodesy.auxilats.auxDST.AuxDST-class.html#__init__\npygeodesy.auxilats.auxDST.AuxDST.integral\tpygeodesy.auxilats.auxDST.AuxDST-class.html#integral\npygeodesy.auxilats.auxDST.AuxDST.transform\tpygeodesy.auxilats.auxDST.AuxDST-class.html#transform\npygeodesy.auxilats.auxDST.AuxDST.integral2\tpygeodesy.auxilats.auxDST.AuxDST-class.html#integral2\npygeodesy.auxilats.auxDST.AuxDST.evaluate\tpygeodesy.auxilats.auxDST.AuxDST-class.html#evaluate\npygeodesy.auxilats.auxDST.AuxDST.N\tpygeodesy.auxilats.auxDST.AuxDST-class.html#N\npygeodesy.auxilats.auxDST.AuxDST.reset\tpygeodesy.auxilats.auxDST.AuxDST-class.html#reset\npygeodesy.auxilats.auxDST.AuxDST._ffts\tpygeodesy.auxilats.auxDST.AuxDST-class.html#_ffts\npygeodesy.auxilats.auxDST.AuxDST._fft_numpy\tpygeodesy.auxilats.auxDST.AuxDST-class.html#_fft_numpy\npygeodesy.auxilats.auxLat.AuxLat\tpygeodesy.auxilats.auxLat.AuxLat-class.html\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.auxilats.auxLat.AuxLat.Authalic\tpygeodesy.auxilats.auxLat.AuxLat-class.html#Authalic\npygeodesy.auxilats.auxLat.AuxLat._RectifyingR\tpygeodesy.auxilats.auxLat.AuxLat-class.html#_RectifyingR\npygeodesy.auxilats.auxAngle.AuxAngle.__str__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.auxilats.auxLat.AuxLat._E\tpygeodesy.auxilats.auxLat.AuxLat-class.html#_E\npygeodesy.auxilats.auxAngle.AuxAngle._copy_2\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#_copy_2\npygeodesy.auxilats.auxAngle.AuxAngle.toChi\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#toChi\npygeodesy.auxilats.auxAngle.AuxAngle.toBeta\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#toBeta\npygeodesy.auxilats.auxAngle.AuxAngle.fromRadians\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#fromRadians\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.auxilats.auxAngle.AuxAngle._y\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#_y\npygeodesy.auxilats.auxAngle.AuxAngle._x\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#_x\npygeodesy.auxilats.auxLat.AuxLat.Conformal\tpygeodesy.auxilats.auxLat.AuxLat-class.html#Conformal\npygeodesy.auxilats.auxLat.AuxLat._q\tpygeodesy.auxilats.auxLat.AuxLat-class.html#_q\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.auxilats.auxLat.AuxLat._n\tpygeodesy.auxilats.auxLat.AuxLat-class.html#_n\npygeodesy.auxilats.auxAngle.AuxAngle.toPhi\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#toPhi\npygeodesy.auxilats.auxAngle.AuxAngle.__eq__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__eq__\npygeodesy.auxilats.auxLat.AuxLat._e\tpygeodesy.auxilats.auxLat.AuxLat-class.html#_e\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.auxilats.auxLat.AuxLat._e12\tpygeodesy.auxilats.auxLat.AuxLat-class.html#_e12\npygeodesy.auxilats.auxAngle.AuxAngle._x_normalized\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#_x_normalized\npygeodesy.named._Named.toStr\tpygeodesy.named._Named-class.html#toStr\npygeodesy.auxilats.auxLat.AuxLat.RectifyingRadius\tpygeodesy.auxilats.auxLat.AuxLat-class.html#RectifyingRadius\npygeodesy.auxilats.auxAngle.AuxAngle.toMu\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#toMu\npygeodesy.auxilats.auxLat.AuxLat._qIntegrand\tpygeodesy.auxilats.auxLat.AuxLat-class.html#_qIntegrand\npygeodesy.auxilats.auxAngle.AuxAngle.__bool__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__bool__\npygeodesy.auxilats.auxLat.AuxLat.Parametric\tpygeodesy.auxilats.auxLat.AuxLat-class.html#Parametric\npygeodesy.auxilats.auxLat.AuxLat.Reduced\tpygeodesy.auxilats.auxLat.AuxLat-class.html#Reduced\npygeodesy.auxilats.auxAngle.AuxAngle._toRhumbAux\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#_toRhumbAux\npygeodesy.auxilats.auxLat.AuxLat._fm1\tpygeodesy.auxilats.auxLat.AuxLat-class.html#_fm1\npygeodesy.auxilats.auxAngle.AuxAngle.copyquadrant\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#copyquadrant\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.auxilats.auxLat.AuxLat.Rectifying\tpygeodesy.auxilats.auxLat.AuxLat-class.html#Rectifying\npygeodesy.auxilats.auxLat.AuxLat._toZeta\tpygeodesy.auxilats.auxLat.AuxLat-class.html#_toZeta\npygeodesy.auxilats.auxLat.AuxLat._toAux\tpygeodesy.auxilats.auxLat.AuxLat-class.html#_toAux\npygeodesy.auxilats.auxAngle.AuxAngle.x\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#x\npygeodesy.named._Named.toRepr\tpygeodesy.named._Named-class.html#toRepr\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.auxilats.auxLat.AuxLat._CXcoeffs\tpygeodesy.auxilats.auxLat.AuxLat-class.html#_CXcoeffs\npygeodesy.auxilats.auxLat.AuxLat._coeffs\tpygeodesy.auxilats.auxLat.AuxLat-class.html#_coeffs\npygeodesy.auxilats.auxLat.AuxLat._e2\tpygeodesy.auxilats.auxLat.AuxLat-class.html#_e2\npygeodesy.auxilats.auxLat.AuxLat._e1\tpygeodesy.auxilats.auxLat.AuxLat-class.html#_e1\npygeodesy.auxilats.auxAngle.AuxAngle._iter\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#_iter\npygeodesy.auxilats.auxAngle.AuxAngle.fromLambertianDegrees\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#fromLambertianDegrees\npygeodesy.auxilats.auxLat.AuxLat._e12p1\tpygeodesy.auxilats.auxLat.AuxLat-class.html#_e12p1\npygeodesy.auxilats.auxLat.AuxLat.Geocentric\tpygeodesy.auxilats.auxLat.AuxLat-class.html#Geocentric\npygeodesy.auxilats.auxLat.AuxLat.flattening\tpygeodesy.auxilats.auxLat.AuxLat-class.html#flattening\npygeodesy.auxilats.auxLat.AuxLat._atanhee\tpygeodesy.auxilats.auxLat.AuxLat-class.html#_atanhee\npygeodesy.auxilats.auxAngle.AuxAngle._AUX\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#_AUX\npygeodesy.auxilats.auxAngle.AuxAngle.__ne__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__ne__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.auxilats.auxLat.AuxLat.Geodetic\tpygeodesy.auxilats.auxLat.AuxLat-class.html#Geodetic\npygeodesy.auxilats.auxAngle.AuxAngle._iadd\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#_iadd\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.auxilats.auxAngle.AuxAngle.toLambertianRadians\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#toLambertianRadians\npygeodesy.auxilats.auxAngle.AuxAngle.fromLambertianRadians\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#fromLambertianRadians\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.auxilats.auxLat.AuxLat.convert\tpygeodesy.auxilats.auxLat.AuxLat-class.html#convert\npygeodesy.auxilats.auxLat.AuxLat.ellipsoid\tpygeodesy.auxilats.auxLat.AuxLat-class.html#ellipsoid\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.__repr__\tpygeodesy.named._Named-class.html#__repr__\npygeodesy.auxilats.auxAngle.AuxAngle.fromDegrees\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#fromDegrees\npygeodesy.auxilats.auxLat.AuxLat._Dq\tpygeodesy.auxilats.auxLat.AuxLat-class.html#_Dq\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.auxilats.auxLat.AuxLat._mAL\tpygeodesy.auxilats.auxLat.AuxLat-class.html#_mAL\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.auxilats.auxLat.AuxLat._conformal_diff\tpygeodesy.auxilats.auxLat.AuxLat-class.html#_conformal_diff\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.auxilats.auxLat.AuxLat._fromAux\tpygeodesy.auxilats.auxLat.AuxLat-class.html#_fromAux\npygeodesy.auxilats.auxAngle.AuxAngle.__rsub__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__rsub__\npygeodesy.auxilats.auxLat.AuxLat.equatoradius\tpygeodesy.auxilats.auxLat.AuxLat-class.html#equatoradius\npygeodesy.auxilats.auxAngle.AuxAngle.toRadians\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#toRadians\npygeodesy.auxilats.auxAngle.AuxAngle._yx\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#_yx\npygeodesy.auxilats.auxAngle.AuxAngle.diff\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#diff\npygeodesy.auxilats.auxLat.AuxLat._e2m1\tpygeodesy.auxilats.auxLat.AuxLat-class.html#_e2m1\npygeodesy.auxilats.auxAngle.AuxAngle.toDegrees\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#toDegrees\npygeodesy.auxilats.auxAngle.AuxAngle._RhumbAux\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#_RhumbAux\npygeodesy.auxilats.auxAngle.AuxAngle.__abs__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__abs__\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.auxilats.auxAngle.AuxAngle._yx_normalized\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#_yx_normalized\npygeodesy.auxilats.auxAngle.AuxAngle.__float__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__float__\npygeodesy.auxilats.auxAngle.AuxAngle.__isub__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__isub__\npygeodesy.auxilats.auxLat.AuxLat._e2m1_sq2\tpygeodesy.auxilats.auxLat.AuxLat-class.html#_e2m1_sq2\npygeodesy.auxilats.auxAngle.AuxAngle._diff\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#_diff\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.auxilats.auxAngle.AuxAngle.toLambertianDegrees\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#toLambertianDegrees\npygeodesy.auxilats.auxAngle.AuxAngle.normalized\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#normalized\npygeodesy.auxilats.auxLat.AuxLat.AuthalicRadius2\tpygeodesy.auxilats.auxLat.AuxLat-class.html#AuthalicRadius2\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.auxilats.auxLat.AuxLat._scbeta\tpygeodesy.auxilats.auxLat.AuxLat-class.html#_scbeta\npygeodesy.auxilats.auxLat.AuxLat.b\tpygeodesy.auxilats.auxLat.AuxLat-class.html#b\npygeodesy.auxilats.auxLat.AuxLat.f\tpygeodesy.auxilats.auxLat.AuxLat-class.html#f\npygeodesy.auxilats.auxLat.AuxLat._n2\tpygeodesy.auxilats.auxLat.AuxLat-class.html#_n2\npygeodesy.auxilats.auxAngle.AuxAngle.iteration\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#iteration\npygeodesy.auxilats.auxAngle.AuxAngle.__iadd__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__iadd__\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.auxilats.auxAngle.AuxAngle.__sub__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__sub__\npygeodesy.auxilats.auxLat.AuxLat._csc\tpygeodesy.auxilats.auxLat.AuxLat-class.html#_csc\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.auxilats.auxAngle.AuxAngle._yxr_normalized\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#_yxr_normalized\npygeodesy.auxilats.auxLat.AuxLat._2_e2m12\tpygeodesy.auxilats.auxLat.AuxLat-class.html#_2_e2m12\npygeodesy.auxilats.auxLat.AuxLat._fromAuxCase\tpygeodesy.auxilats.auxLat.AuxLat-class.html#_fromAuxCase\npygeodesy.auxilats.auxLat.AuxLat._Ef_fRG_a2b2_PI_4\tpygeodesy.auxilats.auxLat.AuxLat-class.html#_Ef_fRG_a2b2_PI_4\npygeodesy.auxilats.auxAngle.AuxAngle.__radd__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__radd__\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.auxilats.auxLat.AuxLat.ALorder\tpygeodesy.auxilats.auxLat.AuxLat-class.html#ALorder\npygeodesy.auxilats.auxAngle.AuxAngle.tan\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#tan\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.auxilats.auxLat.AuxLat.__init__\tpygeodesy.auxilats.auxLat.AuxLat-class.html#__init__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.auxilats.auxAngle.AuxAngle.__pos__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__pos__\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.auxilats.auxAngle.AuxAngle.normal\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#normal\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.auxilats.auxAngle.AuxAngle.__add__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__add__\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.auxilats.auxLat.AuxLat.a\tpygeodesy.auxilats.auxLat.AuxLat-class.html#a\npygeodesy.auxilats.auxLat.AuxLat._qf\tpygeodesy.auxilats.auxLat.AuxLat-class.html#_qf\npygeodesy.auxilats.auxLat.AuxLat.polaradius\tpygeodesy.auxilats.auxLat.AuxLat-class.html#polaradius\npygeodesy.auxilats.auxAngle.AuxAngle._copy_r2\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#_copy_r2\npygeodesy.auxilats.auxAngle.AuxAngle.__neg__\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#__neg__\npygeodesy.auxilats.auxAngle.AuxAngle.y\tpygeodesy.auxilats.auxAngle.AuxAngle-class.html#y\npygeodesy.azimuthal.Azimuthal7Tuple\tpygeodesy.azimuthal.Azimuthal7Tuple-class.html\npygeodesy.named._NamedTuple.toRepr\tpygeodesy.named._NamedTuple-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._NamedTuple.toUnits\tpygeodesy.named._NamedTuple-class.html#toUnits\npygeodesy.named._NamedTuple._validate\tpygeodesy.named._NamedTuple-class.html#_validate\npygeodesy.named._NamedTuple.__str__\tpygeodesy.named._NamedTuple-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._NamedTuple._DOT_\tpygeodesy.named._NamedTuple-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._NamedTuple.reUnit\tpygeodesy.named._NamedTuple-class.html#reUnit\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.azimuthal.Azimuthal7Tuple._Names_\tpygeodesy.azimuthal.Azimuthal7Tuple-class.html#_Names_\npygeodesy.named._NamedTuple.__setattr__\tpygeodesy.named._NamedTuple-class.html#__setattr__\npygeodesy.named._NamedTuple.__new__\tpygeodesy.named._NamedTuple-class.html#__new__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._NamedTuple._validated\tpygeodesy.named._NamedTuple-class.html#_validated\npygeodesy.named._NamedTuple.__getattr__\tpygeodesy.named._NamedTuple-class.html#__getattr__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._NamedTuple._xtend\tpygeodesy.named._NamedTuple-class.html#_xtend\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._NamedTuple.dup\tpygeodesy.named._NamedTuple-class.html#dup\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedTuple.toStr\tpygeodesy.named._NamedTuple-class.html#toStr\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedTuple.units\tpygeodesy.named._NamedTuple-class.html#units\npygeodesy.named._NamedTuple.iterunits\tpygeodesy.named._NamedTuple-class.html#iterunits\npygeodesy.named._NamedTuple.iteritems\tpygeodesy.named._NamedTuple-class.html#iteritems\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._NamedTuple.items\tpygeodesy.named._NamedTuple-class.html#items\npygeodesy.azimuthal.Azimuthal7Tuple.antipodal\tpygeodesy.azimuthal.Azimuthal7Tuple-class.html#antipodal\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedTuple.__delattr__\tpygeodesy.named._NamedTuple-class.html#__delattr__\npygeodesy.named._NamedTuple.__repr__\tpygeodesy.named._NamedTuple-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._NamedTuple.__hash__\tpygeodesy.named._NamedTuple-class.html#__hash__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.azimuthal.Azimuthal7Tuple._Units_\tpygeodesy.azimuthal.Azimuthal7Tuple-class.html#_Units_\npygeodesy.azimuthal.AzimuthalError\tpygeodesy.azimuthal.AzimuthalError-class.html\npygeodesy.azimuthal.Equidistant\tpygeodesy.azimuthal.Equidistant-class.html\npygeodesy.azimuthal._AzimuthalBase.toRepr\tpygeodesy.azimuthal._AzimuthalBase-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.azimuthal._AzimuthalBase._latlon0\tpygeodesy.azimuthal._AzimuthalBase-class.html#_latlon0\npygeodesy.azimuthal._AzimuthalBase._toLatLon\tpygeodesy.azimuthal._AzimuthalBase-class.html#_toLatLon\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedBase.__str__\tpygeodesy.named._NamedBase-class.html#__str__\npygeodesy.azimuthal._AzimuthalBase.datum\tpygeodesy.azimuthal._AzimuthalBase-class.html#datum\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.azimuthal._AzimuthalBase.radius\tpygeodesy.azimuthal._AzimuthalBase-class.html#radius\npygeodesy.azimuthal._AzimuthalBase.equatoradius\tpygeodesy.azimuthal._AzimuthalBase-class.html#equatoradius\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.azimuthal.Equidistant.__init__\tpygeodesy.azimuthal.Equidistant-class.html#__init__\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.azimuthal._AzimuthalBase.flattening\tpygeodesy.azimuthal._AzimuthalBase-class.html#flattening\npygeodesy.azimuthal._AzimuthalBase._reverse2\tpygeodesy.azimuthal._AzimuthalBase-class.html#_reverse2\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.azimuthal.Equidistant.forward\tpygeodesy.azimuthal.Equidistant-class.html#forward\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.azimuthal._AzimuthalBase.a\tpygeodesy.azimuthal._AzimuthalBase-class.html#a\npygeodesy.azimuthal._AzimuthalBase.latlon0\tpygeodesy.azimuthal._AzimuthalBase-class.html#latlon0\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.azimuthal._AzimuthalBase._forwards\tpygeodesy.azimuthal._AzimuthalBase-class.html#_forwards\npygeodesy.azimuthal._AzimuthalBase.toStr\tpygeodesy.azimuthal._AzimuthalBase-class.html#toStr\npygeodesy.azimuthal._AzimuthalBase._datum\tpygeodesy.azimuthal._AzimuthalBase-class.html#_datum\npygeodesy.azimuthal._AzimuthalBase._sc0\tpygeodesy.azimuthal._AzimuthalBase-class.html#_sc0\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.named._NamedBase.others\tpygeodesy.named._NamedBase-class.html#others\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.azimuthal._AzimuthalBase.majoradius\tpygeodesy.azimuthal._AzimuthalBase-class.html#majoradius\npygeodesy.azimuthal._AzimuthalBase.lat0\tpygeodesy.azimuthal._AzimuthalBase-class.html#lat0\npygeodesy.azimuthal._AzimuthalBase.reset\tpygeodesy.azimuthal._AzimuthalBase-class.html#reset\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.azimuthal.Equidistant.reverse\tpygeodesy.azimuthal.Equidistant-class.html#reverse\npygeodesy.azimuthal._AzimuthalBase._reverse\tpygeodesy.azimuthal._AzimuthalBase-class.html#_reverse\npygeodesy.azimuthal._AzimuthalBase.f\tpygeodesy.azimuthal._AzimuthalBase-class.html#f\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.azimuthal._AzimuthalBase._forward\tpygeodesy.azimuthal._AzimuthalBase-class.html#_forward\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedBase.__repr__\tpygeodesy.named._NamedBase-class.html#__repr__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.azimuthal._AzimuthalBase.lon0\tpygeodesy.azimuthal._AzimuthalBase-class.html#lon0\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.azimuthal._AzimuthalBase._reset\tpygeodesy.azimuthal._AzimuthalBase-class.html#_reset\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.azimuthal.EquidistantExact\tpygeodesy.azimuthal.EquidistantExact-class.html\npygeodesy.azimuthal._AzimuthalBase.toRepr\tpygeodesy.azimuthal._AzimuthalBase-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.azimuthal._AzimuthalBase._latlon0\tpygeodesy.azimuthal._AzimuthalBase-class.html#_latlon0\npygeodesy.azimuthal._AzimuthalBase._toLatLon\tpygeodesy.azimuthal._AzimuthalBase-class.html#_toLatLon\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedBase.__str__\tpygeodesy.named._NamedBase-class.html#__str__\npygeodesy.azimuthal._AzimuthalBase.datum\tpygeodesy.azimuthal._AzimuthalBase-class.html#datum\npygeodesy.azimuthal.EquidistantExact.geodesic\tpygeodesy.azimuthal.EquidistantExact-class.html#geodesic\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.azimuthal._AzimuthalBase.radius\tpygeodesy.azimuthal._AzimuthalBase-class.html#radius\npygeodesy.azimuthal._AzimuthalBase.equatoradius\tpygeodesy.azimuthal._AzimuthalBase-class.html#equatoradius\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.azimuthal.EquidistantExact.__init__\tpygeodesy.azimuthal.EquidistantExact-class.html#__init__\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.azimuthal._AzimuthalBase.flattening\tpygeodesy.azimuthal._AzimuthalBase-class.html#flattening\npygeodesy.azimuthal._AzimuthalBase._reverse2\tpygeodesy.azimuthal._AzimuthalBase-class.html#_reverse2\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.azimuthal.EquidistantExact.forward\tpygeodesy.azimuthal.EquidistantExact-class.html#forward\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.azimuthal._AzimuthalGeodesic._7Tuple\tpygeodesy.azimuthal._AzimuthalGeodesic-class.html#_7Tuple\npygeodesy.azimuthal._AzimuthalBase.a\tpygeodesy.azimuthal._AzimuthalBase-class.html#a\npygeodesy.azimuthal._AzimuthalBase.latlon0\tpygeodesy.azimuthal._AzimuthalBase-class.html#latlon0\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.azimuthal._AzimuthalBase._forwards\tpygeodesy.azimuthal._AzimuthalBase-class.html#_forwards\npygeodesy.azimuthal._AzimuthalBase.toStr\tpygeodesy.azimuthal._AzimuthalBase-class.html#toStr\npygeodesy.azimuthal._AzimuthalBase._datum\tpygeodesy.azimuthal._AzimuthalBase-class.html#_datum\npygeodesy.azimuthal._AzimuthalGeodesic._mask\tpygeodesy.azimuthal._AzimuthalGeodesic-class.html#_mask\npygeodesy.azimuthal._AzimuthalBase._sc0\tpygeodesy.azimuthal._AzimuthalBase-class.html#_sc0\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.named._NamedBase.others\tpygeodesy.named._NamedBase-class.html#others\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.azimuthal._AzimuthalBase.majoradius\tpygeodesy.azimuthal._AzimuthalBase-class.html#majoradius\npygeodesy.azimuthal.EquidistantExact.reverse\tpygeodesy.azimuthal.EquidistantExact-class.html#reverse\npygeodesy.azimuthal._AzimuthalBase.reset\tpygeodesy.azimuthal._AzimuthalBase-class.html#reset\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.azimuthal._AzimuthalBase.lat0\tpygeodesy.azimuthal._AzimuthalBase-class.html#lat0\npygeodesy.azimuthal._AzimuthalBase._reverse\tpygeodesy.azimuthal._AzimuthalBase-class.html#_reverse\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.azimuthal._AzimuthalBase.f\tpygeodesy.azimuthal._AzimuthalBase-class.html#f\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.azimuthal._AzimuthalBase._forward\tpygeodesy.azimuthal._AzimuthalBase-class.html#_forward\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedBase.__repr__\tpygeodesy.named._NamedBase-class.html#__repr__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.azimuthal._AzimuthalBase.lon0\tpygeodesy.azimuthal._AzimuthalBase-class.html#lon0\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.azimuthal._AzimuthalBase._reset\tpygeodesy.azimuthal._AzimuthalBase-class.html#_reset\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.azimuthal.EquidistantGeodSolve\tpygeodesy.azimuthal.EquidistantGeodSolve-class.html\npygeodesy.azimuthal._AzimuthalBase.toRepr\tpygeodesy.azimuthal._AzimuthalBase-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.azimuthal._AzimuthalBase._latlon0\tpygeodesy.azimuthal._AzimuthalBase-class.html#_latlon0\npygeodesy.azimuthal._AzimuthalBase._toLatLon\tpygeodesy.azimuthal._AzimuthalBase-class.html#_toLatLon\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedBase.__str__\tpygeodesy.named._NamedBase-class.html#__str__\npygeodesy.azimuthal._AzimuthalBase.datum\tpygeodesy.azimuthal._AzimuthalBase-class.html#datum\npygeodesy.azimuthal.EquidistantGeodSolve.geodesic\tpygeodesy.azimuthal.EquidistantGeodSolve-class.html#geodesic\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.azimuthal._AzimuthalBase.radius\tpygeodesy.azimuthal._AzimuthalBase-class.html#radius\npygeodesy.azimuthal._AzimuthalBase.equatoradius\tpygeodesy.azimuthal._AzimuthalBase-class.html#equatoradius\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.azimuthal.EquidistantGeodSolve.__init__\tpygeodesy.azimuthal.EquidistantGeodSolve-class.html#__init__\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.azimuthal._AzimuthalBase.flattening\tpygeodesy.azimuthal._AzimuthalBase-class.html#flattening\npygeodesy.azimuthal._AzimuthalBase._reverse2\tpygeodesy.azimuthal._AzimuthalBase-class.html#_reverse2\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.azimuthal.EquidistantGeodSolve.forward\tpygeodesy.azimuthal.EquidistantGeodSolve-class.html#forward\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.azimuthal._AzimuthalGeodesic._7Tuple\tpygeodesy.azimuthal._AzimuthalGeodesic-class.html#_7Tuple\npygeodesy.azimuthal._AzimuthalBase.a\tpygeodesy.azimuthal._AzimuthalBase-class.html#a\npygeodesy.azimuthal._AzimuthalBase.latlon0\tpygeodesy.azimuthal._AzimuthalBase-class.html#latlon0\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.azimuthal._AzimuthalBase._forwards\tpygeodesy.azimuthal._AzimuthalBase-class.html#_forwards\npygeodesy.azimuthal._AzimuthalBase.toStr\tpygeodesy.azimuthal._AzimuthalBase-class.html#toStr\npygeodesy.azimuthal._AzimuthalBase._datum\tpygeodesy.azimuthal._AzimuthalBase-class.html#_datum\npygeodesy.azimuthal._AzimuthalGeodesic._mask\tpygeodesy.azimuthal._AzimuthalGeodesic-class.html#_mask\npygeodesy.azimuthal._AzimuthalBase._sc0\tpygeodesy.azimuthal._AzimuthalBase-class.html#_sc0\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.named._NamedBase.others\tpygeodesy.named._NamedBase-class.html#others\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.azimuthal._AzimuthalBase.majoradius\tpygeodesy.azimuthal._AzimuthalBase-class.html#majoradius\npygeodesy.azimuthal.EquidistantGeodSolve.reverse\tpygeodesy.azimuthal.EquidistantGeodSolve-class.html#reverse\npygeodesy.azimuthal._AzimuthalBase.reset\tpygeodesy.azimuthal._AzimuthalBase-class.html#reset\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.azimuthal._AzimuthalBase.lat0\tpygeodesy.azimuthal._AzimuthalBase-class.html#lat0\npygeodesy.azimuthal._AzimuthalBase._reverse\tpygeodesy.azimuthal._AzimuthalBase-class.html#_reverse\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.azimuthal._AzimuthalBase.f\tpygeodesy.azimuthal._AzimuthalBase-class.html#f\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.azimuthal._AzimuthalBase._forward\tpygeodesy.azimuthal._AzimuthalBase-class.html#_forward\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedBase.__repr__\tpygeodesy.named._NamedBase-class.html#__repr__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.azimuthal._AzimuthalBase.lon0\tpygeodesy.azimuthal._AzimuthalBase-class.html#lon0\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.azimuthal._AzimuthalBase._reset\tpygeodesy.azimuthal._AzimuthalBase-class.html#_reset\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.azimuthal.EquidistantKarney\tpygeodesy.azimuthal.EquidistantKarney-class.html\npygeodesy.azimuthal._AzimuthalBase.toRepr\tpygeodesy.azimuthal._AzimuthalBase-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.azimuthal._AzimuthalBase._latlon0\tpygeodesy.azimuthal._AzimuthalBase-class.html#_latlon0\npygeodesy.azimuthal._AzimuthalBase._toLatLon\tpygeodesy.azimuthal._AzimuthalBase-class.html#_toLatLon\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedBase.__str__\tpygeodesy.named._NamedBase-class.html#__str__\npygeodesy.azimuthal._AzimuthalBase.datum\tpygeodesy.azimuthal._AzimuthalBase-class.html#datum\npygeodesy.azimuthal.EquidistantKarney.geodesic\tpygeodesy.azimuthal.EquidistantKarney-class.html#geodesic\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.azimuthal._AzimuthalBase.radius\tpygeodesy.azimuthal._AzimuthalBase-class.html#radius\npygeodesy.azimuthal._AzimuthalBase.equatoradius\tpygeodesy.azimuthal._AzimuthalBase-class.html#equatoradius\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.azimuthal.EquidistantKarney.__init__\tpygeodesy.azimuthal.EquidistantKarney-class.html#__init__\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.azimuthal._AzimuthalBase.flattening\tpygeodesy.azimuthal._AzimuthalBase-class.html#flattening\npygeodesy.azimuthal._AzimuthalBase._reverse2\tpygeodesy.azimuthal._AzimuthalBase-class.html#_reverse2\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.azimuthal.EquidistantKarney.forward\tpygeodesy.azimuthal.EquidistantKarney-class.html#forward\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.azimuthal._AzimuthalGeodesic._7Tuple\tpygeodesy.azimuthal._AzimuthalGeodesic-class.html#_7Tuple\npygeodesy.azimuthal._AzimuthalBase.a\tpygeodesy.azimuthal._AzimuthalBase-class.html#a\npygeodesy.azimuthal._AzimuthalBase.latlon0\tpygeodesy.azimuthal._AzimuthalBase-class.html#latlon0\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.azimuthal._AzimuthalBase._forwards\tpygeodesy.azimuthal._AzimuthalBase-class.html#_forwards\npygeodesy.azimuthal._AzimuthalBase.toStr\tpygeodesy.azimuthal._AzimuthalBase-class.html#toStr\npygeodesy.azimuthal._AzimuthalBase._datum\tpygeodesy.azimuthal._AzimuthalBase-class.html#_datum\npygeodesy.azimuthal._AzimuthalGeodesic._mask\tpygeodesy.azimuthal._AzimuthalGeodesic-class.html#_mask\npygeodesy.azimuthal._AzimuthalBase._sc0\tpygeodesy.azimuthal._AzimuthalBase-class.html#_sc0\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.named._NamedBase.others\tpygeodesy.named._NamedBase-class.html#others\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.azimuthal._AzimuthalBase.majoradius\tpygeodesy.azimuthal._AzimuthalBase-class.html#majoradius\npygeodesy.azimuthal.EquidistantKarney.reverse\tpygeodesy.azimuthal.EquidistantKarney-class.html#reverse\npygeodesy.azimuthal._AzimuthalBase.reset\tpygeodesy.azimuthal._AzimuthalBase-class.html#reset\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.azimuthal._AzimuthalBase.lat0\tpygeodesy.azimuthal._AzimuthalBase-class.html#lat0\npygeodesy.azimuthal._AzimuthalBase._reverse\tpygeodesy.azimuthal._AzimuthalBase-class.html#_reverse\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.azimuthal._AzimuthalBase.f\tpygeodesy.azimuthal._AzimuthalBase-class.html#f\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.azimuthal._AzimuthalBase._forward\tpygeodesy.azimuthal._AzimuthalBase-class.html#_forward\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedBase.__repr__\tpygeodesy.named._NamedBase-class.html#__repr__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.azimuthal._AzimuthalBase.lon0\tpygeodesy.azimuthal._AzimuthalBase-class.html#lon0\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.azimuthal._AzimuthalBase._reset\tpygeodesy.azimuthal._AzimuthalBase-class.html#_reset\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.azimuthal.Gnomonic\tpygeodesy.azimuthal.Gnomonic-class.html\npygeodesy.azimuthal._AzimuthalBase.toRepr\tpygeodesy.azimuthal._AzimuthalBase-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.azimuthal._AzimuthalBase._latlon0\tpygeodesy.azimuthal._AzimuthalBase-class.html#_latlon0\npygeodesy.azimuthal._AzimuthalBase._toLatLon\tpygeodesy.azimuthal._AzimuthalBase-class.html#_toLatLon\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedBase.__str__\tpygeodesy.named._NamedBase-class.html#__str__\npygeodesy.azimuthal._AzimuthalBase.datum\tpygeodesy.azimuthal._AzimuthalBase-class.html#datum\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.azimuthal._AzimuthalBase.radius\tpygeodesy.azimuthal._AzimuthalBase-class.html#radius\npygeodesy.azimuthal._AzimuthalBase.equatoradius\tpygeodesy.azimuthal._AzimuthalBase-class.html#equatoradius\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.azimuthal.Gnomonic.__init__\tpygeodesy.azimuthal.Gnomonic-class.html#__init__\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.azimuthal._AzimuthalBase.flattening\tpygeodesy.azimuthal._AzimuthalBase-class.html#flattening\npygeodesy.azimuthal._AzimuthalBase._reverse2\tpygeodesy.azimuthal._AzimuthalBase-class.html#_reverse2\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.azimuthal.Gnomonic.forward\tpygeodesy.azimuthal.Gnomonic-class.html#forward\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.azimuthal._AzimuthalBase.a\tpygeodesy.azimuthal._AzimuthalBase-class.html#a\npygeodesy.azimuthal._AzimuthalBase.latlon0\tpygeodesy.azimuthal._AzimuthalBase-class.html#latlon0\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.azimuthal._AzimuthalBase._forwards\tpygeodesy.azimuthal._AzimuthalBase-class.html#_forwards\npygeodesy.azimuthal._AzimuthalBase.toStr\tpygeodesy.azimuthal._AzimuthalBase-class.html#toStr\npygeodesy.azimuthal._AzimuthalBase._datum\tpygeodesy.azimuthal._AzimuthalBase-class.html#_datum\npygeodesy.azimuthal._AzimuthalBase._sc0\tpygeodesy.azimuthal._AzimuthalBase-class.html#_sc0\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.named._NamedBase.others\tpygeodesy.named._NamedBase-class.html#others\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.azimuthal._AzimuthalBase.majoradius\tpygeodesy.azimuthal._AzimuthalBase-class.html#majoradius\npygeodesy.azimuthal._AzimuthalBase.lat0\tpygeodesy.azimuthal._AzimuthalBase-class.html#lat0\npygeodesy.azimuthal._AzimuthalBase.reset\tpygeodesy.azimuthal._AzimuthalBase-class.html#reset\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.azimuthal.Gnomonic.reverse\tpygeodesy.azimuthal.Gnomonic-class.html#reverse\npygeodesy.azimuthal._AzimuthalBase._reverse\tpygeodesy.azimuthal._AzimuthalBase-class.html#_reverse\npygeodesy.azimuthal._AzimuthalBase.f\tpygeodesy.azimuthal._AzimuthalBase-class.html#f\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.azimuthal._AzimuthalBase._forward\tpygeodesy.azimuthal._AzimuthalBase-class.html#_forward\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedBase.__repr__\tpygeodesy.named._NamedBase-class.html#__repr__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.azimuthal._AzimuthalBase.lon0\tpygeodesy.azimuthal._AzimuthalBase-class.html#lon0\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.azimuthal._AzimuthalBase._reset\tpygeodesy.azimuthal._AzimuthalBase-class.html#_reset\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.azimuthal.GnomonicExact\tpygeodesy.azimuthal.GnomonicExact-class.html\npygeodesy.azimuthal._AzimuthalBase.toRepr\tpygeodesy.azimuthal._AzimuthalBase-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.azimuthal._AzimuthalBase._latlon0\tpygeodesy.azimuthal._AzimuthalBase-class.html#_latlon0\npygeodesy.azimuthal._AzimuthalBase._toLatLon\tpygeodesy.azimuthal._AzimuthalBase-class.html#_toLatLon\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedBase.__str__\tpygeodesy.named._NamedBase-class.html#__str__\npygeodesy.azimuthal._AzimuthalBase.datum\tpygeodesy.azimuthal._AzimuthalBase-class.html#datum\npygeodesy.azimuthal.GnomonicExact.geodesic\tpygeodesy.azimuthal.GnomonicExact-class.html#geodesic\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.azimuthal._AzimuthalBase.radius\tpygeodesy.azimuthal._AzimuthalBase-class.html#radius\npygeodesy.azimuthal._AzimuthalBase.equatoradius\tpygeodesy.azimuthal._AzimuthalBase-class.html#equatoradius\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.azimuthal.GnomonicExact.__init__\tpygeodesy.azimuthal.GnomonicExact-class.html#__init__\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.azimuthal._AzimuthalBase.flattening\tpygeodesy.azimuthal._AzimuthalBase-class.html#flattening\npygeodesy.azimuthal._AzimuthalBase._reverse2\tpygeodesy.azimuthal._AzimuthalBase-class.html#_reverse2\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.azimuthal.GnomonicExact.forward\tpygeodesy.azimuthal.GnomonicExact-class.html#forward\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.azimuthal._AzimuthalGeodesic._7Tuple\tpygeodesy.azimuthal._AzimuthalGeodesic-class.html#_7Tuple\npygeodesy.azimuthal._AzimuthalBase.a\tpygeodesy.azimuthal._AzimuthalBase-class.html#a\npygeodesy.azimuthal._AzimuthalBase.latlon0\tpygeodesy.azimuthal._AzimuthalBase-class.html#latlon0\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.azimuthal._AzimuthalBase._forwards\tpygeodesy.azimuthal._AzimuthalBase-class.html#_forwards\npygeodesy.azimuthal._AzimuthalBase.toStr\tpygeodesy.azimuthal._AzimuthalBase-class.html#toStr\npygeodesy.azimuthal._AzimuthalBase._datum\tpygeodesy.azimuthal._AzimuthalBase-class.html#_datum\npygeodesy.azimuthal._AzimuthalGeodesic._mask\tpygeodesy.azimuthal._AzimuthalGeodesic-class.html#_mask\npygeodesy.azimuthal._AzimuthalBase._sc0\tpygeodesy.azimuthal._AzimuthalBase-class.html#_sc0\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.named._NamedBase.others\tpygeodesy.named._NamedBase-class.html#others\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.azimuthal._AzimuthalBase.majoradius\tpygeodesy.azimuthal._AzimuthalBase-class.html#majoradius\npygeodesy.azimuthal.GnomonicExact.reverse\tpygeodesy.azimuthal.GnomonicExact-class.html#reverse\npygeodesy.azimuthal._AzimuthalBase.reset\tpygeodesy.azimuthal._AzimuthalBase-class.html#reset\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.azimuthal._AzimuthalBase.lat0\tpygeodesy.azimuthal._AzimuthalBase-class.html#lat0\npygeodesy.azimuthal._AzimuthalBase._reverse\tpygeodesy.azimuthal._AzimuthalBase-class.html#_reverse\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.azimuthal._AzimuthalBase.f\tpygeodesy.azimuthal._AzimuthalBase-class.html#f\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.azimuthal._AzimuthalBase._forward\tpygeodesy.azimuthal._AzimuthalBase-class.html#_forward\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedBase.__repr__\tpygeodesy.named._NamedBase-class.html#__repr__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.azimuthal._AzimuthalBase.lon0\tpygeodesy.azimuthal._AzimuthalBase-class.html#lon0\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.azimuthal._AzimuthalBase._reset\tpygeodesy.azimuthal._AzimuthalBase-class.html#_reset\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.azimuthal.GnomonicGeodSolve\tpygeodesy.azimuthal.GnomonicGeodSolve-class.html\npygeodesy.azimuthal._AzimuthalBase.toRepr\tpygeodesy.azimuthal._AzimuthalBase-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.azimuthal._AzimuthalBase._latlon0\tpygeodesy.azimuthal._AzimuthalBase-class.html#_latlon0\npygeodesy.azimuthal._AzimuthalBase._toLatLon\tpygeodesy.azimuthal._AzimuthalBase-class.html#_toLatLon\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedBase.__str__\tpygeodesy.named._NamedBase-class.html#__str__\npygeodesy.azimuthal._AzimuthalBase.datum\tpygeodesy.azimuthal._AzimuthalBase-class.html#datum\npygeodesy.azimuthal.GnomonicGeodSolve.geodesic\tpygeodesy.azimuthal.GnomonicGeodSolve-class.html#geodesic\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.azimuthal._AzimuthalBase.radius\tpygeodesy.azimuthal._AzimuthalBase-class.html#radius\npygeodesy.azimuthal._AzimuthalBase.equatoradius\tpygeodesy.azimuthal._AzimuthalBase-class.html#equatoradius\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.azimuthal.GnomonicGeodSolve.__init__\tpygeodesy.azimuthal.GnomonicGeodSolve-class.html#__init__\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.azimuthal._AzimuthalBase.flattening\tpygeodesy.azimuthal._AzimuthalBase-class.html#flattening\npygeodesy.azimuthal._AzimuthalBase._reverse2\tpygeodesy.azimuthal._AzimuthalBase-class.html#_reverse2\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.azimuthal.GnomonicGeodSolve.forward\tpygeodesy.azimuthal.GnomonicGeodSolve-class.html#forward\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.azimuthal._AzimuthalGeodesic._7Tuple\tpygeodesy.azimuthal._AzimuthalGeodesic-class.html#_7Tuple\npygeodesy.azimuthal._AzimuthalBase.a\tpygeodesy.azimuthal._AzimuthalBase-class.html#a\npygeodesy.azimuthal._AzimuthalBase.latlon0\tpygeodesy.azimuthal._AzimuthalBase-class.html#latlon0\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.azimuthal._AzimuthalBase._forwards\tpygeodesy.azimuthal._AzimuthalBase-class.html#_forwards\npygeodesy.azimuthal._AzimuthalBase.toStr\tpygeodesy.azimuthal._AzimuthalBase-class.html#toStr\npygeodesy.azimuthal._AzimuthalBase._datum\tpygeodesy.azimuthal._AzimuthalBase-class.html#_datum\npygeodesy.azimuthal._AzimuthalGeodesic._mask\tpygeodesy.azimuthal._AzimuthalGeodesic-class.html#_mask\npygeodesy.azimuthal._AzimuthalBase._sc0\tpygeodesy.azimuthal._AzimuthalBase-class.html#_sc0\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.named._NamedBase.others\tpygeodesy.named._NamedBase-class.html#others\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.azimuthal._AzimuthalBase.majoradius\tpygeodesy.azimuthal._AzimuthalBase-class.html#majoradius\npygeodesy.azimuthal.GnomonicGeodSolve.reverse\tpygeodesy.azimuthal.GnomonicGeodSolve-class.html#reverse\npygeodesy.azimuthal._AzimuthalBase.reset\tpygeodesy.azimuthal._AzimuthalBase-class.html#reset\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.azimuthal._AzimuthalBase.lat0\tpygeodesy.azimuthal._AzimuthalBase-class.html#lat0\npygeodesy.azimuthal._AzimuthalBase._reverse\tpygeodesy.azimuthal._AzimuthalBase-class.html#_reverse\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.azimuthal._AzimuthalBase.f\tpygeodesy.azimuthal._AzimuthalBase-class.html#f\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.azimuthal._AzimuthalBase._forward\tpygeodesy.azimuthal._AzimuthalBase-class.html#_forward\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedBase.__repr__\tpygeodesy.named._NamedBase-class.html#__repr__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.azimuthal._AzimuthalBase.lon0\tpygeodesy.azimuthal._AzimuthalBase-class.html#lon0\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.azimuthal._AzimuthalBase._reset\tpygeodesy.azimuthal._AzimuthalBase-class.html#_reset\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.azimuthal.GnomonicKarney\tpygeodesy.azimuthal.GnomonicKarney-class.html\npygeodesy.azimuthal._AzimuthalBase.toRepr\tpygeodesy.azimuthal._AzimuthalBase-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.azimuthal._AzimuthalBase._latlon0\tpygeodesy.azimuthal._AzimuthalBase-class.html#_latlon0\npygeodesy.azimuthal._AzimuthalBase._toLatLon\tpygeodesy.azimuthal._AzimuthalBase-class.html#_toLatLon\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedBase.__str__\tpygeodesy.named._NamedBase-class.html#__str__\npygeodesy.azimuthal._AzimuthalBase.datum\tpygeodesy.azimuthal._AzimuthalBase-class.html#datum\npygeodesy.azimuthal.GnomonicKarney.geodesic\tpygeodesy.azimuthal.GnomonicKarney-class.html#geodesic\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.azimuthal._AzimuthalBase.radius\tpygeodesy.azimuthal._AzimuthalBase-class.html#radius\npygeodesy.azimuthal._AzimuthalBase.equatoradius\tpygeodesy.azimuthal._AzimuthalBase-class.html#equatoradius\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.azimuthal.GnomonicKarney.__init__\tpygeodesy.azimuthal.GnomonicKarney-class.html#__init__\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.azimuthal._AzimuthalBase.flattening\tpygeodesy.azimuthal._AzimuthalBase-class.html#flattening\npygeodesy.azimuthal._AzimuthalBase._reverse2\tpygeodesy.azimuthal._AzimuthalBase-class.html#_reverse2\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.azimuthal.GnomonicKarney.forward\tpygeodesy.azimuthal.GnomonicKarney-class.html#forward\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.azimuthal._AzimuthalGeodesic._7Tuple\tpygeodesy.azimuthal._AzimuthalGeodesic-class.html#_7Tuple\npygeodesy.azimuthal._AzimuthalBase.a\tpygeodesy.azimuthal._AzimuthalBase-class.html#a\npygeodesy.azimuthal._AzimuthalBase.latlon0\tpygeodesy.azimuthal._AzimuthalBase-class.html#latlon0\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.azimuthal._AzimuthalBase._forwards\tpygeodesy.azimuthal._AzimuthalBase-class.html#_forwards\npygeodesy.azimuthal._AzimuthalBase.toStr\tpygeodesy.azimuthal._AzimuthalBase-class.html#toStr\npygeodesy.azimuthal._AzimuthalBase._datum\tpygeodesy.azimuthal._AzimuthalBase-class.html#_datum\npygeodesy.azimuthal._AzimuthalGeodesic._mask\tpygeodesy.azimuthal._AzimuthalGeodesic-class.html#_mask\npygeodesy.azimuthal._AzimuthalBase._sc0\tpygeodesy.azimuthal._AzimuthalBase-class.html#_sc0\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.named._NamedBase.others\tpygeodesy.named._NamedBase-class.html#others\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.azimuthal._AzimuthalBase.majoradius\tpygeodesy.azimuthal._AzimuthalBase-class.html#majoradius\npygeodesy.azimuthal.GnomonicKarney.reverse\tpygeodesy.azimuthal.GnomonicKarney-class.html#reverse\npygeodesy.azimuthal._AzimuthalBase.reset\tpygeodesy.azimuthal._AzimuthalBase-class.html#reset\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.azimuthal._AzimuthalBase.lat0\tpygeodesy.azimuthal._AzimuthalBase-class.html#lat0\npygeodesy.azimuthal._AzimuthalBase._reverse\tpygeodesy.azimuthal._AzimuthalBase-class.html#_reverse\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.azimuthal._AzimuthalBase.f\tpygeodesy.azimuthal._AzimuthalBase-class.html#f\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.azimuthal._AzimuthalBase._forward\tpygeodesy.azimuthal._AzimuthalBase-class.html#_forward\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedBase.__repr__\tpygeodesy.named._NamedBase-class.html#__repr__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.azimuthal._AzimuthalBase.lon0\tpygeodesy.azimuthal._AzimuthalBase-class.html#lon0\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.azimuthal._AzimuthalBase._reset\tpygeodesy.azimuthal._AzimuthalBase-class.html#_reset\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.azimuthal.LambertEqualArea\tpygeodesy.azimuthal.LambertEqualArea-class.html\npygeodesy.azimuthal._AzimuthalBase.toRepr\tpygeodesy.azimuthal._AzimuthalBase-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.azimuthal._AzimuthalBase._latlon0\tpygeodesy.azimuthal._AzimuthalBase-class.html#_latlon0\npygeodesy.azimuthal._AzimuthalBase._toLatLon\tpygeodesy.azimuthal._AzimuthalBase-class.html#_toLatLon\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedBase.__str__\tpygeodesy.named._NamedBase-class.html#__str__\npygeodesy.azimuthal._AzimuthalBase.datum\tpygeodesy.azimuthal._AzimuthalBase-class.html#datum\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.azimuthal._AzimuthalBase.radius\tpygeodesy.azimuthal._AzimuthalBase-class.html#radius\npygeodesy.azimuthal._AzimuthalBase.equatoradius\tpygeodesy.azimuthal._AzimuthalBase-class.html#equatoradius\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.azimuthal.LambertEqualArea.__init__\tpygeodesy.azimuthal.LambertEqualArea-class.html#__init__\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.azimuthal._AzimuthalBase.flattening\tpygeodesy.azimuthal._AzimuthalBase-class.html#flattening\npygeodesy.azimuthal._AzimuthalBase._reverse2\tpygeodesy.azimuthal._AzimuthalBase-class.html#_reverse2\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.azimuthal.LambertEqualArea.forward\tpygeodesy.azimuthal.LambertEqualArea-class.html#forward\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.azimuthal._AzimuthalBase.a\tpygeodesy.azimuthal._AzimuthalBase-class.html#a\npygeodesy.azimuthal._AzimuthalBase.latlon0\tpygeodesy.azimuthal._AzimuthalBase-class.html#latlon0\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.azimuthal._AzimuthalBase._forwards\tpygeodesy.azimuthal._AzimuthalBase-class.html#_forwards\npygeodesy.azimuthal._AzimuthalBase.toStr\tpygeodesy.azimuthal._AzimuthalBase-class.html#toStr\npygeodesy.azimuthal._AzimuthalBase._datum\tpygeodesy.azimuthal._AzimuthalBase-class.html#_datum\npygeodesy.azimuthal._AzimuthalBase._sc0\tpygeodesy.azimuthal._AzimuthalBase-class.html#_sc0\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.named._NamedBase.others\tpygeodesy.named._NamedBase-class.html#others\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.azimuthal._AzimuthalBase.majoradius\tpygeodesy.azimuthal._AzimuthalBase-class.html#majoradius\npygeodesy.azimuthal._AzimuthalBase.lat0\tpygeodesy.azimuthal._AzimuthalBase-class.html#lat0\npygeodesy.azimuthal._AzimuthalBase.reset\tpygeodesy.azimuthal._AzimuthalBase-class.html#reset\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.azimuthal.LambertEqualArea.reverse\tpygeodesy.azimuthal.LambertEqualArea-class.html#reverse\npygeodesy.azimuthal._AzimuthalBase._reverse\tpygeodesy.azimuthal._AzimuthalBase-class.html#_reverse\npygeodesy.azimuthal._AzimuthalBase.f\tpygeodesy.azimuthal._AzimuthalBase-class.html#f\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.azimuthal._AzimuthalBase._forward\tpygeodesy.azimuthal._AzimuthalBase-class.html#_forward\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedBase.__repr__\tpygeodesy.named._NamedBase-class.html#__repr__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.azimuthal._AzimuthalBase.lon0\tpygeodesy.azimuthal._AzimuthalBase-class.html#lon0\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.azimuthal._AzimuthalBase._reset\tpygeodesy.azimuthal._AzimuthalBase-class.html#_reset\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.azimuthal.Orthographic\tpygeodesy.azimuthal.Orthographic-class.html\npygeodesy.azimuthal._AzimuthalBase.toRepr\tpygeodesy.azimuthal._AzimuthalBase-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.azimuthal._AzimuthalBase._latlon0\tpygeodesy.azimuthal._AzimuthalBase-class.html#_latlon0\npygeodesy.azimuthal._AzimuthalBase._toLatLon\tpygeodesy.azimuthal._AzimuthalBase-class.html#_toLatLon\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedBase.__str__\tpygeodesy.named._NamedBase-class.html#__str__\npygeodesy.azimuthal._AzimuthalBase.datum\tpygeodesy.azimuthal._AzimuthalBase-class.html#datum\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.azimuthal._AzimuthalBase.radius\tpygeodesy.azimuthal._AzimuthalBase-class.html#radius\npygeodesy.azimuthal._AzimuthalBase.equatoradius\tpygeodesy.azimuthal._AzimuthalBase-class.html#equatoradius\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.azimuthal.Orthographic.__init__\tpygeodesy.azimuthal.Orthographic-class.html#__init__\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.azimuthal._AzimuthalBase.flattening\tpygeodesy.azimuthal._AzimuthalBase-class.html#flattening\npygeodesy.azimuthal._AzimuthalBase._reverse2\tpygeodesy.azimuthal._AzimuthalBase-class.html#_reverse2\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.azimuthal.Orthographic.forward\tpygeodesy.azimuthal.Orthographic-class.html#forward\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.azimuthal._AzimuthalBase.a\tpygeodesy.azimuthal._AzimuthalBase-class.html#a\npygeodesy.azimuthal._AzimuthalBase.latlon0\tpygeodesy.azimuthal._AzimuthalBase-class.html#latlon0\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.azimuthal._AzimuthalBase._forwards\tpygeodesy.azimuthal._AzimuthalBase-class.html#_forwards\npygeodesy.azimuthal._AzimuthalBase.toStr\tpygeodesy.azimuthal._AzimuthalBase-class.html#toStr\npygeodesy.azimuthal._AzimuthalBase._datum\tpygeodesy.azimuthal._AzimuthalBase-class.html#_datum\npygeodesy.azimuthal._AzimuthalBase._sc0\tpygeodesy.azimuthal._AzimuthalBase-class.html#_sc0\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.named._NamedBase.others\tpygeodesy.named._NamedBase-class.html#others\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.azimuthal._AzimuthalBase.majoradius\tpygeodesy.azimuthal._AzimuthalBase-class.html#majoradius\npygeodesy.azimuthal._AzimuthalBase.lat0\tpygeodesy.azimuthal._AzimuthalBase-class.html#lat0\npygeodesy.azimuthal._AzimuthalBase.reset\tpygeodesy.azimuthal._AzimuthalBase-class.html#reset\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.azimuthal.Orthographic.reverse\tpygeodesy.azimuthal.Orthographic-class.html#reverse\npygeodesy.azimuthal._AzimuthalBase._reverse\tpygeodesy.azimuthal._AzimuthalBase-class.html#_reverse\npygeodesy.azimuthal._AzimuthalBase.f\tpygeodesy.azimuthal._AzimuthalBase-class.html#f\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.azimuthal._AzimuthalBase._forward\tpygeodesy.azimuthal._AzimuthalBase-class.html#_forward\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedBase.__repr__\tpygeodesy.named._NamedBase-class.html#__repr__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.azimuthal._AzimuthalBase.lon0\tpygeodesy.azimuthal._AzimuthalBase-class.html#lon0\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.azimuthal._AzimuthalBase._reset\tpygeodesy.azimuthal._AzimuthalBase-class.html#_reset\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.azimuthal.Stereographic\tpygeodesy.azimuthal.Stereographic-class.html\npygeodesy.azimuthal.Stereographic._k02\tpygeodesy.azimuthal.Stereographic-class.html#_k02\npygeodesy.azimuthal._AzimuthalBase.toRepr\tpygeodesy.azimuthal._AzimuthalBase-class.html#toRepr\npygeodesy.azimuthal._AzimuthalBase._latlon0\tpygeodesy.azimuthal._AzimuthalBase-class.html#_latlon0\npygeodesy.azimuthal._AzimuthalBase._toLatLon\tpygeodesy.azimuthal._AzimuthalBase-class.html#_toLatLon\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedBase.__str__\tpygeodesy.named._NamedBase-class.html#__str__\npygeodesy.azimuthal._AzimuthalBase.datum\tpygeodesy.azimuthal._AzimuthalBase-class.html#datum\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.azimuthal.Stereographic._k0\tpygeodesy.azimuthal.Stereographic-class.html#_k0\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.azimuthal._AzimuthalBase.radius\tpygeodesy.azimuthal._AzimuthalBase-class.html#radius\npygeodesy.azimuthal._AzimuthalBase.equatoradius\tpygeodesy.azimuthal._AzimuthalBase-class.html#equatoradius\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.azimuthal.Stereographic.__init__\tpygeodesy.azimuthal.Stereographic-class.html#__init__\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.azimuthal.Stereographic.k0\tpygeodesy.azimuthal.Stereographic-class.html#k0\npygeodesy.azimuthal._AzimuthalBase.flattening\tpygeodesy.azimuthal._AzimuthalBase-class.html#flattening\npygeodesy.azimuthal._AzimuthalBase._reverse2\tpygeodesy.azimuthal._AzimuthalBase-class.html#_reverse2\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.azimuthal.Stereographic.forward\tpygeodesy.azimuthal.Stereographic-class.html#forward\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.azimuthal._AzimuthalBase.a\tpygeodesy.azimuthal._AzimuthalBase-class.html#a\npygeodesy.azimuthal._AzimuthalBase.latlon0\tpygeodesy.azimuthal._AzimuthalBase-class.html#latlon0\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.azimuthal._AzimuthalBase._forwards\tpygeodesy.azimuthal._AzimuthalBase-class.html#_forwards\npygeodesy.azimuthal._AzimuthalBase.toStr\tpygeodesy.azimuthal._AzimuthalBase-class.html#toStr\npygeodesy.azimuthal._AzimuthalBase._datum\tpygeodesy.azimuthal._AzimuthalBase-class.html#_datum\npygeodesy.azimuthal._AzimuthalBase._sc0\tpygeodesy.azimuthal._AzimuthalBase-class.html#_sc0\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.named._NamedBase.others\tpygeodesy.named._NamedBase-class.html#others\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.azimuthal._AzimuthalBase.majoradius\tpygeodesy.azimuthal._AzimuthalBase-class.html#majoradius\npygeodesy.azimuthal._AzimuthalBase.lat0\tpygeodesy.azimuthal._AzimuthalBase-class.html#lat0\npygeodesy.azimuthal._AzimuthalBase.reset\tpygeodesy.azimuthal._AzimuthalBase-class.html#reset\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.azimuthal.Stereographic.reverse\tpygeodesy.azimuthal.Stereographic-class.html#reverse\npygeodesy.azimuthal._AzimuthalBase._reverse\tpygeodesy.azimuthal._AzimuthalBase-class.html#_reverse\npygeodesy.azimuthal._AzimuthalBase.f\tpygeodesy.azimuthal._AzimuthalBase-class.html#f\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.azimuthal._AzimuthalBase._forward\tpygeodesy.azimuthal._AzimuthalBase-class.html#_forward\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._NamedBase.__repr__\tpygeodesy.named._NamedBase-class.html#__repr__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.azimuthal._AzimuthalBase.lon0\tpygeodesy.azimuthal._AzimuthalBase-class.html#lon0\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.azimuthal._AzimuthalBase._reset\tpygeodesy.azimuthal._AzimuthalBase-class.html#_reset\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.azimuthal._AzimuthalBase\tpygeodesy.azimuthal._AzimuthalBase-class.html\npygeodesy.azimuthal._AzimuthalBase.toRepr\tpygeodesy.azimuthal._AzimuthalBase-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.azimuthal._AzimuthalBase._sc0\tpygeodesy.azimuthal._AzimuthalBase-class.html#_sc0\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedBase.__str__\tpygeodesy.named._NamedBase-class.html#__str__\npygeodesy.azimuthal._AzimuthalBase.datum\tpygeodesy.azimuthal._AzimuthalBase-class.html#datum\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.azimuthal._AzimuthalBase._reverse\tpygeodesy.azimuthal._AzimuthalBase-class.html#_reverse\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.azimuthal._AzimuthalBase.radius\tpygeodesy.azimuthal._AzimuthalBase-class.html#radius\npygeodesy.azimuthal._AzimuthalBase.equatoradius\tpygeodesy.azimuthal._AzimuthalBase-class.html#equatoradius\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.azimuthal._AzimuthalBase.__init__\tpygeodesy.azimuthal._AzimuthalBase-class.html#__init__\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.azimuthal._AzimuthalBase.flattening\tpygeodesy.azimuthal._AzimuthalBase-class.html#flattening\npygeodesy.azimuthal._AzimuthalBase._reverse2\tpygeodesy.azimuthal._AzimuthalBase-class.html#_reverse2\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.azimuthal._AzimuthalBase.forward\tpygeodesy.azimuthal._AzimuthalBase-class.html#forward\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.azimuthal._AzimuthalBase.reset\tpygeodesy.azimuthal._AzimuthalBase-class.html#reset\npygeodesy.azimuthal._AzimuthalBase.latlon0\tpygeodesy.azimuthal._AzimuthalBase-class.html#latlon0\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.azimuthal._AzimuthalBase._forwards\tpygeodesy.azimuthal._AzimuthalBase-class.html#_forwards\npygeodesy.azimuthal._AzimuthalBase.toStr\tpygeodesy.azimuthal._AzimuthalBase-class.html#toStr\npygeodesy.azimuthal._AzimuthalBase._datum\tpygeodesy.azimuthal._AzimuthalBase-class.html#_datum\npygeodesy.azimuthal._AzimuthalBase._latlon0\tpygeodesy.azimuthal._AzimuthalBase-class.html#_latlon0\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.named._NamedBase.others\tpygeodesy.named._NamedBase-class.html#others\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.azimuthal._AzimuthalBase.majoradius\tpygeodesy.azimuthal._AzimuthalBase-class.html#majoradius\npygeodesy.azimuthal._AzimuthalBase.lat0\tpygeodesy.azimuthal._AzimuthalBase-class.html#lat0\npygeodesy.azimuthal._AzimuthalBase.a\tpygeodesy.azimuthal._AzimuthalBase-class.html#a\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.azimuthal._AzimuthalBase.reverse\tpygeodesy.azimuthal._AzimuthalBase-class.html#reverse\npygeodesy.azimuthal._AzimuthalBase.f\tpygeodesy.azimuthal._AzimuthalBase-class.html#f\npygeodesy.azimuthal._AzimuthalBase._toLatLon\tpygeodesy.azimuthal._AzimuthalBase-class.html#_toLatLon\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.azimuthal._AzimuthalBase._forward\tpygeodesy.azimuthal._AzimuthalBase-class.html#_forward\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedBase.__repr__\tpygeodesy.named._NamedBase-class.html#__repr__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.azimuthal._AzimuthalBase.lon0\tpygeodesy.azimuthal._AzimuthalBase-class.html#lon0\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.azimuthal._AzimuthalBase._reset\tpygeodesy.azimuthal._AzimuthalBase-class.html#_reset\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.azimuthal._AzimuthalGeodesic\tpygeodesy.azimuthal._AzimuthalGeodesic-class.html\npygeodesy.azimuthal._AzimuthalBase.toRepr\tpygeodesy.azimuthal._AzimuthalBase-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.azimuthal._AzimuthalBase._latlon0\tpygeodesy.azimuthal._AzimuthalBase-class.html#_latlon0\npygeodesy.azimuthal._AzimuthalBase._toLatLon\tpygeodesy.azimuthal._AzimuthalBase-class.html#_toLatLon\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedBase.__str__\tpygeodesy.named._NamedBase-class.html#__str__\npygeodesy.azimuthal._AzimuthalBase.datum\tpygeodesy.azimuthal._AzimuthalBase-class.html#datum\npygeodesy.azimuthal._AzimuthalGeodesic.geodesic\tpygeodesy.azimuthal._AzimuthalGeodesic-class.html#geodesic\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.azimuthal._AzimuthalBase.radius\tpygeodesy.azimuthal._AzimuthalBase-class.html#radius\npygeodesy.azimuthal._AzimuthalBase.equatoradius\tpygeodesy.azimuthal._AzimuthalBase-class.html#equatoradius\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.azimuthal._AzimuthalBase.__init__\tpygeodesy.azimuthal._AzimuthalBase-class.html#__init__\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.azimuthal._AzimuthalBase.flattening\tpygeodesy.azimuthal._AzimuthalBase-class.html#flattening\npygeodesy.azimuthal._AzimuthalBase._reverse2\tpygeodesy.azimuthal._AzimuthalBase-class.html#_reverse2\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.azimuthal._AzimuthalBase.forward\tpygeodesy.azimuthal._AzimuthalBase-class.html#forward\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.azimuthal._AzimuthalGeodesic._7Tuple\tpygeodesy.azimuthal._AzimuthalGeodesic-class.html#_7Tuple\npygeodesy.azimuthal._AzimuthalBase.a\tpygeodesy.azimuthal._AzimuthalBase-class.html#a\npygeodesy.azimuthal._AzimuthalBase.latlon0\tpygeodesy.azimuthal._AzimuthalBase-class.html#latlon0\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.azimuthal._AzimuthalBase._forwards\tpygeodesy.azimuthal._AzimuthalBase-class.html#_forwards\npygeodesy.azimuthal._AzimuthalBase.toStr\tpygeodesy.azimuthal._AzimuthalBase-class.html#toStr\npygeodesy.azimuthal._AzimuthalBase._datum\tpygeodesy.azimuthal._AzimuthalBase-class.html#_datum\npygeodesy.azimuthal._AzimuthalGeodesic._mask\tpygeodesy.azimuthal._AzimuthalGeodesic-class.html#_mask\npygeodesy.azimuthal._AzimuthalBase._sc0\tpygeodesy.azimuthal._AzimuthalBase-class.html#_sc0\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.named._NamedBase.others\tpygeodesy.named._NamedBase-class.html#others\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.azimuthal._AzimuthalBase.majoradius\tpygeodesy.azimuthal._AzimuthalBase-class.html#majoradius\npygeodesy.azimuthal._AzimuthalBase.reverse\tpygeodesy.azimuthal._AzimuthalBase-class.html#reverse\npygeodesy.azimuthal._AzimuthalBase.reset\tpygeodesy.azimuthal._AzimuthalBase-class.html#reset\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.azimuthal._AzimuthalBase.lat0\tpygeodesy.azimuthal._AzimuthalBase-class.html#lat0\npygeodesy.azimuthal._AzimuthalBase._reverse\tpygeodesy.azimuthal._AzimuthalBase-class.html#_reverse\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.azimuthal._AzimuthalBase.f\tpygeodesy.azimuthal._AzimuthalBase-class.html#f\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.azimuthal._AzimuthalBase._forward\tpygeodesy.azimuthal._AzimuthalBase-class.html#_forward\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedBase.__repr__\tpygeodesy.named._NamedBase-class.html#__repr__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.azimuthal._AzimuthalBase.lon0\tpygeodesy.azimuthal._AzimuthalBase-class.html#lon0\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.azimuthal._AzimuthalBase._reset\tpygeodesy.azimuthal._AzimuthalBase-class.html#_reset\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.azimuthal._EquidistantBase\tpygeodesy.azimuthal._EquidistantBase-class.html\npygeodesy.azimuthal._AzimuthalBase.toRepr\tpygeodesy.azimuthal._AzimuthalBase-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.azimuthal._AzimuthalBase._latlon0\tpygeodesy.azimuthal._AzimuthalBase-class.html#_latlon0\npygeodesy.azimuthal._AzimuthalBase._toLatLon\tpygeodesy.azimuthal._AzimuthalBase-class.html#_toLatLon\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedBase.__str__\tpygeodesy.named._NamedBase-class.html#__str__\npygeodesy.azimuthal._AzimuthalBase.datum\tpygeodesy.azimuthal._AzimuthalBase-class.html#datum\npygeodesy.azimuthal._AzimuthalGeodesic.geodesic\tpygeodesy.azimuthal._AzimuthalGeodesic-class.html#geodesic\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.azimuthal._AzimuthalBase.radius\tpygeodesy.azimuthal._AzimuthalBase-class.html#radius\npygeodesy.azimuthal._AzimuthalBase.equatoradius\tpygeodesy.azimuthal._AzimuthalBase-class.html#equatoradius\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.azimuthal._EquidistantBase.__init__\tpygeodesy.azimuthal._EquidistantBase-class.html#__init__\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.azimuthal._AzimuthalBase.flattening\tpygeodesy.azimuthal._AzimuthalBase-class.html#flattening\npygeodesy.azimuthal._AzimuthalBase._reverse2\tpygeodesy.azimuthal._AzimuthalBase-class.html#_reverse2\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.azimuthal._EquidistantBase.forward\tpygeodesy.azimuthal._EquidistantBase-class.html#forward\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.azimuthal._AzimuthalGeodesic._7Tuple\tpygeodesy.azimuthal._AzimuthalGeodesic-class.html#_7Tuple\npygeodesy.azimuthal._AzimuthalBase.a\tpygeodesy.azimuthal._AzimuthalBase-class.html#a\npygeodesy.azimuthal._AzimuthalBase.latlon0\tpygeodesy.azimuthal._AzimuthalBase-class.html#latlon0\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.azimuthal._AzimuthalBase._forwards\tpygeodesy.azimuthal._AzimuthalBase-class.html#_forwards\npygeodesy.azimuthal._AzimuthalBase.toStr\tpygeodesy.azimuthal._AzimuthalBase-class.html#toStr\npygeodesy.azimuthal._AzimuthalBase._datum\tpygeodesy.azimuthal._AzimuthalBase-class.html#_datum\npygeodesy.azimuthal._AzimuthalGeodesic._mask\tpygeodesy.azimuthal._AzimuthalGeodesic-class.html#_mask\npygeodesy.azimuthal._AzimuthalBase._sc0\tpygeodesy.azimuthal._AzimuthalBase-class.html#_sc0\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.named._NamedBase.others\tpygeodesy.named._NamedBase-class.html#others\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.azimuthal._AzimuthalBase.majoradius\tpygeodesy.azimuthal._AzimuthalBase-class.html#majoradius\npygeodesy.azimuthal._EquidistantBase.reverse\tpygeodesy.azimuthal._EquidistantBase-class.html#reverse\npygeodesy.azimuthal._AzimuthalBase.reset\tpygeodesy.azimuthal._AzimuthalBase-class.html#reset\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.azimuthal._AzimuthalBase.lat0\tpygeodesy.azimuthal._AzimuthalBase-class.html#lat0\npygeodesy.azimuthal._AzimuthalBase._reverse\tpygeodesy.azimuthal._AzimuthalBase-class.html#_reverse\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.azimuthal._AzimuthalBase.f\tpygeodesy.azimuthal._AzimuthalBase-class.html#f\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.azimuthal._AzimuthalBase._forward\tpygeodesy.azimuthal._AzimuthalBase-class.html#_forward\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedBase.__repr__\tpygeodesy.named._NamedBase-class.html#__repr__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.azimuthal._AzimuthalBase.lon0\tpygeodesy.azimuthal._AzimuthalBase-class.html#lon0\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.azimuthal._AzimuthalBase._reset\tpygeodesy.azimuthal._AzimuthalBase-class.html#_reset\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.azimuthal._GnomonicBase\tpygeodesy.azimuthal._GnomonicBase-class.html\npygeodesy.azimuthal._AzimuthalBase.toRepr\tpygeodesy.azimuthal._AzimuthalBase-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.azimuthal._AzimuthalBase._latlon0\tpygeodesy.azimuthal._AzimuthalBase-class.html#_latlon0\npygeodesy.azimuthal._AzimuthalBase._toLatLon\tpygeodesy.azimuthal._AzimuthalBase-class.html#_toLatLon\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedBase.__str__\tpygeodesy.named._NamedBase-class.html#__str__\npygeodesy.azimuthal._AzimuthalBase.datum\tpygeodesy.azimuthal._AzimuthalBase-class.html#datum\npygeodesy.azimuthal._AzimuthalGeodesic.geodesic\tpygeodesy.azimuthal._AzimuthalGeodesic-class.html#geodesic\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.azimuthal._AzimuthalBase.radius\tpygeodesy.azimuthal._AzimuthalBase-class.html#radius\npygeodesy.azimuthal._AzimuthalBase.equatoradius\tpygeodesy.azimuthal._AzimuthalBase-class.html#equatoradius\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.azimuthal._GnomonicBase.__init__\tpygeodesy.azimuthal._GnomonicBase-class.html#__init__\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.azimuthal._AzimuthalBase.flattening\tpygeodesy.azimuthal._AzimuthalBase-class.html#flattening\npygeodesy.azimuthal._AzimuthalBase._reverse2\tpygeodesy.azimuthal._AzimuthalBase-class.html#_reverse2\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.azimuthal._GnomonicBase.forward\tpygeodesy.azimuthal._GnomonicBase-class.html#forward\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.azimuthal._AzimuthalGeodesic._7Tuple\tpygeodesy.azimuthal._AzimuthalGeodesic-class.html#_7Tuple\npygeodesy.azimuthal._AzimuthalBase.a\tpygeodesy.azimuthal._AzimuthalBase-class.html#a\npygeodesy.azimuthal._AzimuthalBase.latlon0\tpygeodesy.azimuthal._AzimuthalBase-class.html#latlon0\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.azimuthal._AzimuthalBase._forwards\tpygeodesy.azimuthal._AzimuthalBase-class.html#_forwards\npygeodesy.azimuthal._AzimuthalBase.toStr\tpygeodesy.azimuthal._AzimuthalBase-class.html#toStr\npygeodesy.azimuthal._AzimuthalBase._datum\tpygeodesy.azimuthal._AzimuthalBase-class.html#_datum\npygeodesy.azimuthal._AzimuthalGeodesic._mask\tpygeodesy.azimuthal._AzimuthalGeodesic-class.html#_mask\npygeodesy.azimuthal._AzimuthalBase._sc0\tpygeodesy.azimuthal._AzimuthalBase-class.html#_sc0\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.named._NamedBase.others\tpygeodesy.named._NamedBase-class.html#others\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.azimuthal._AzimuthalBase.majoradius\tpygeodesy.azimuthal._AzimuthalBase-class.html#majoradius\npygeodesy.azimuthal._GnomonicBase.reverse\tpygeodesy.azimuthal._GnomonicBase-class.html#reverse\npygeodesy.azimuthal._AzimuthalBase.reset\tpygeodesy.azimuthal._AzimuthalBase-class.html#reset\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.azimuthal._AzimuthalBase.lat0\tpygeodesy.azimuthal._AzimuthalBase-class.html#lat0\npygeodesy.azimuthal._AzimuthalBase._reverse\tpygeodesy.azimuthal._AzimuthalBase-class.html#_reverse\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.azimuthal._AzimuthalBase.f\tpygeodesy.azimuthal._AzimuthalBase-class.html#f\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.azimuthal._AzimuthalBase._forward\tpygeodesy.azimuthal._AzimuthalBase-class.html#_forward\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedBase.__repr__\tpygeodesy.named._NamedBase-class.html#__repr__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.azimuthal._AzimuthalBase.lon0\tpygeodesy.azimuthal._AzimuthalBase-class.html#lon0\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.azimuthal._AzimuthalBase._reset\tpygeodesy.azimuthal._AzimuthalBase-class.html#_reset\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.booleans.BooleanFHP\tpygeodesy.booleans.BooleanFHP-class.html\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.booleans._BooleanBase.__ror__\tpygeodesy.booleans._BooleanBase-class.html#__ror__\npygeodesy.booleans._CompositeBase.__str__\tpygeodesy.booleans._CompositeBase-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.booleans._CompositeBase.toLatLon\tpygeodesy.booleans._CompositeBase-class.html#toLatLon\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.booleans._CompositeFHP._resultX\tpygeodesy.booleans._CompositeFHP-class.html#_resultX\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.booleans._CompositeBase._xtend\tpygeodesy.booleans._CompositeBase-class.html#_xtend\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.booleans._CompositeFHP._special_cases\tpygeodesy.booleans._CompositeFHP-class.html#_special_cases\npygeodesy.booleans._CompositeFHP._classify\tpygeodesy.booleans._CompositeFHP-class.html#_classify\npygeodesy.named._Named.toStr\tpygeodesy.named._Named-class.html#toStr\npygeodesy.booleans._CompositeBase._left_right_eps2\tpygeodesy.booleans._CompositeBase-class.html#_left_right_eps2\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.booleans._CompositeBase._clips\tpygeodesy.booleans._CompositeBase-class.html#_clips\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.booleans._CompositeBase.raiser\tpygeodesy.booleans._CompositeBase-class.html#raiser\npygeodesy.named._Named.toRepr\tpygeodesy.named._Named-class.html#toRepr\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.booleans._CompositeFHP._2splits\tpygeodesy.booleans._CompositeFHP-class.html#_2splits\npygeodesy.booleans._BooleanBase.__rand__\tpygeodesy.booleans._BooleanBase-class.html#__rand__\npygeodesy.booleans._BooleanBase.__iand__\tpygeodesy.booleans._BooleanBase-class.html#__iand__\npygeodesy.booleans._CompositeBase.__contains__\tpygeodesy.booleans._CompositeBase-class.html#__contains__\npygeodesy.booleans._BooleanBase._boolean4\tpygeodesy.booleans._BooleanBase-class.html#_boolean4\npygeodesy.booleans._CompositeBase.__ne__\tpygeodesy.booleans._CompositeBase-class.html#__ne__\npygeodesy.booleans._CompositeFHP._presults\tpygeodesy.booleans._CompositeFHP-class.html#_presults\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.booleans._CompositeBase._10eps\tpygeodesy.booleans._CompositeBase-class.html#_10eps\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.booleans._BooleanBase.__ior__\tpygeodesy.booleans._BooleanBase-class.html#__ior__\npygeodesy.booleans._CompositeBase.__repr__\tpygeodesy.booleans._CompositeBase-class.html#__repr__\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.booleans._CompositeBase._eps\tpygeodesy.booleans._CompositeBase-class.html#_eps\npygeodesy.booleans._CompositeFHP._special_identicals\tpygeodesy.booleans._CompositeFHP-class.html#_special_identicals\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.booleans._BooleanBase.__add__\tpygeodesy.booleans._BooleanBase-class.html#__add__\npygeodesy.booleans._CompositeFHP._labelize\tpygeodesy.booleans._CompositeFHP-class.html#_labelize\npygeodesy.booleans._CompositeBase.clipids\tpygeodesy.booleans._CompositeBase-class.html#clipids\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.booleans._CompositeBase._edges3\tpygeodesy.booleans._CompositeBase-class.html#_edges3\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.booleans.BooleanFHP.__rsub__\tpygeodesy.booleans.BooleanFHP-class.html#__rsub__\npygeodesy.booleans.BooleanFHP._boolean\tpygeodesy.booleans.BooleanFHP-class.html#_boolean\npygeodesy.booleans._BooleanBase.__and__\tpygeodesy.booleans._BooleanBase-class.html#__and__\npygeodesy.booleans._CompositeFHP._set_entry_exits\tpygeodesy.booleans._CompositeFHP-class.html#_set_entry_exits\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.booleans._CompositeBase.__len__\tpygeodesy.booleans._CompositeBase-class.html#__len__\npygeodesy.booleans.BooleanFHP.__isub__\tpygeodesy.booleans.BooleanFHP-class.html#__isub__\npygeodesy.booleans._CompositeBase._encloses\tpygeodesy.booleans._CompositeBase-class.html#_encloses\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.booleans.BooleanFHP._kind\tpygeodesy.booleans.BooleanFHP-class.html#_kind\npygeodesy.booleans._CompositeBase._intersections\tpygeodesy.booleans._CompositeBase-class.html#_intersections\npygeodesy.booleans._CompositeBase.__iter__\tpygeodesy.booleans._CompositeBase-class.html#__iter__\npygeodesy.booleans._CompositeBase._sum\tpygeodesy.booleans._CompositeBase-class.html#_sum\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.booleans._CompositeBase.__eq__\tpygeodesy.booleans._CompositeBase-class.html#__eq__\npygeodesy.booleans._CompositeBase._clipids\tpygeodesy.booleans._CompositeBase-class.html#_clipids\npygeodesy.booleans._CompositeFHP._LL\tpygeodesy.booleans.LatLonFHP-class.html\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.booleans._BooleanBase.__iadd__\tpygeodesy.booleans._BooleanBase-class.html#__iadd__\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.booleans._CompositeBase._results\tpygeodesy.booleans._CompositeBase-class.html#_results\npygeodesy.booleans.BooleanFHP.__sub__\tpygeodesy.booleans.BooleanFHP-class.html#__sub__\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.booleans._BooleanBase.__radd__\tpygeodesy.booleans._BooleanBase-class.html#__radd__\npygeodesy.booleans._CompositeBase._points\tpygeodesy.booleans._CompositeBase-class.html#_points\npygeodesy.booleans.BooleanFHP.__init__\tpygeodesy.booleans.BooleanFHP-class.html#__init__\npygeodesy.booleans._CompositeFHP._identicals\tpygeodesy.booleans._CompositeFHP-class.html#_identicals\npygeodesy.booleans._CompositeBase._bottom_top_eps2\tpygeodesy.booleans._CompositeBase-class.html#_bottom_top_eps2\npygeodesy.booleans._CompositeBase._kwds\tpygeodesy.booleans._CompositeBase-class.html#_kwds\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.booleans._CompositeBase._raiser\tpygeodesy.booleans._CompositeBase-class.html#_raiser\npygeodesy.booleans._CompositeBase._class\tpygeodesy.booleans._CompositeBase-class.html#_class\npygeodesy.booleans._CompositeFHP._Union\tpygeodesy.booleans._CompositeFHP-class.html#_Union\npygeodesy.booleans._CompositeBase._sum1\tpygeodesy.booleans._CompositeBase-class.html#_sum1\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.booleans._CompositeBase._sum2\tpygeodesy.booleans._CompositeBase-class.html#_sum2\npygeodesy.booleans._CompositeBase.isequalTo\tpygeodesy.booleans._CompositeBase-class.html#isequalTo\npygeodesy.booleans._CompositeFHP._splits_xings\tpygeodesy.booleans._CompositeFHP-class.html#_splits_xings\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.booleans._BooleanBase.__or__\tpygeodesy.booleans._BooleanBase-class.html#__or__\npygeodesy.booleans._CompositeBase._equi\tpygeodesy.booleans._CompositeBase-class.html#_equi\npygeodesy.booleans._BooleanBase._inplace\tpygeodesy.booleans._BooleanBase-class.html#_inplace\npygeodesy.booleans._CompositeBase.eps\tpygeodesy.booleans._CompositeBase-class.html#eps\npygeodesy.booleans._CompositeFHP._clip\tpygeodesy.booleans._CompositeFHP-class.html#_clip\npygeodesy.booleans._CompositeFHP._2xings\tpygeodesy.booleans._CompositeFHP-class.html#_2xings\npygeodesy.booleans.BooleanGH\tpygeodesy.booleans.BooleanGH-class.html\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.booleans._BooleanBase.__ror__\tpygeodesy.booleans._BooleanBase-class.html#__ror__\npygeodesy.booleans._CompositeBase.__str__\tpygeodesy.booleans._CompositeBase-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.booleans._CompositeBase.toLatLon\tpygeodesy.booleans._CompositeBase-class.html#toLatLon\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.booleans._CompositeGH._first\tpygeodesy.booleans._CompositeGH-class.html#_first\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.booleans._CompositeGH._xtend\tpygeodesy.booleans._CompositeGH-class.html#_xtend\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.booleans._CompositeGH._LL\tpygeodesy.booleans.LatLonGH-class.html\npygeodesy.named._Named.toStr\tpygeodesy.named._Named-class.html#toStr\npygeodesy.booleans._CompositeBase._left_right_eps2\tpygeodesy.booleans._CompositeBase-class.html#_left_right_eps2\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.booleans._CompositeBase._clips\tpygeodesy.booleans._CompositeBase-class.html#_clips\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.booleans._CompositeBase.raiser\tpygeodesy.booleans._CompositeBase-class.html#raiser\npygeodesy.named._Named.toRepr\tpygeodesy.named._Named-class.html#toRepr\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.booleans._BooleanBase.__rand__\tpygeodesy.booleans._BooleanBase-class.html#__rand__\npygeodesy.booleans._BooleanBase.__iand__\tpygeodesy.booleans._BooleanBase-class.html#__iand__\npygeodesy.booleans._CompositeBase.__contains__\tpygeodesy.booleans._CompositeBase-class.html#__contains__\npygeodesy.booleans._BooleanBase._boolean4\tpygeodesy.booleans._BooleanBase-class.html#_boolean4\npygeodesy.booleans._CompositeBase.__ne__\tpygeodesy.booleans._CompositeBase-class.html#__ne__\npygeodesy.booleans._CompositeGH._presults\tpygeodesy.booleans._CompositeGH-class.html#_presults\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.booleans._CompositeBase._10eps\tpygeodesy.booleans._CompositeBase-class.html#_10eps\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.booleans._BooleanBase.__ior__\tpygeodesy.booleans._BooleanBase-class.html#__ior__\npygeodesy.booleans._CompositeBase.__repr__\tpygeodesy.booleans._CompositeBase-class.html#__repr__\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.booleans._CompositeBase._eps\tpygeodesy.booleans._CompositeBase-class.html#_eps\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.booleans._BooleanBase.__add__\tpygeodesy.booleans._BooleanBase-class.html#__add__\npygeodesy.booleans.BooleanGH.__rsub__\tpygeodesy.booleans.BooleanGH-class.html#__rsub__\npygeodesy.booleans._CompositeBase.clipids\tpygeodesy.booleans._CompositeBase-class.html#clipids\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.booleans._CompositeBase._edges3\tpygeodesy.booleans._CompositeBase-class.html#_edges3\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.booleans.BooleanGH._boolean\tpygeodesy.booleans.BooleanGH-class.html#_boolean\npygeodesy.booleans._CompositeGH.xtend\tpygeodesy.booleans._CompositeGH-class.html#xtend\npygeodesy.booleans._BooleanBase.__and__\tpygeodesy.booleans._BooleanBase-class.html#__and__\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.booleans._CompositeBase.__len__\tpygeodesy.booleans._CompositeBase-class.html#__len__\npygeodesy.booleans.BooleanGH.__isub__\tpygeodesy.booleans.BooleanGH-class.html#__isub__\npygeodesy.booleans._CompositeBase._encloses\tpygeodesy.booleans._CompositeBase-class.html#_encloses\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.booleans.BooleanGH._kind\tpygeodesy.booleans.BooleanGH-class.html#_kind\npygeodesy.booleans._CompositeBase._intersections\tpygeodesy.booleans._CompositeBase-class.html#_intersections\npygeodesy.booleans._CompositeGH._resultU\tpygeodesy.booleans._CompositeGH-class.html#_resultU\npygeodesy.booleans._CompositeBase.__iter__\tpygeodesy.booleans._CompositeBase-class.html#__iter__\npygeodesy.booleans._CompositeBase._sum\tpygeodesy.booleans._CompositeBase-class.html#_sum\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.booleans._CompositeBase.__eq__\tpygeodesy.booleans._CompositeBase-class.html#__eq__\npygeodesy.booleans._CompositeBase._clipids\tpygeodesy.booleans._CompositeBase-class.html#_clipids\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.booleans._BooleanBase.__iadd__\tpygeodesy.booleans._BooleanBase-class.html#__iadd__\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.booleans._CompositeBase._results\tpygeodesy.booleans._CompositeBase-class.html#_results\npygeodesy.booleans.BooleanGH.__sub__\tpygeodesy.booleans.BooleanGH-class.html#__sub__\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.booleans._BooleanBase.__radd__\tpygeodesy.booleans._BooleanBase-class.html#__radd__\npygeodesy.booleans._CompositeBase._points\tpygeodesy.booleans._CompositeBase-class.html#_points\npygeodesy.booleans._CompositeBase._raiser\tpygeodesy.booleans._CompositeBase-class.html#_raiser\npygeodesy.booleans._CompositeBase._bottom_top_eps2\tpygeodesy.booleans._CompositeBase-class.html#_bottom_top_eps2\npygeodesy.booleans._CompositeGH._kwds\tpygeodesy.booleans._CompositeGH-class.html#_kwds\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.booleans.BooleanGH.__init__\tpygeodesy.booleans.BooleanGH-class.html#__init__\npygeodesy.booleans._CompositeBase._class\tpygeodesy.booleans._CompositeBase-class.html#_class\npygeodesy.booleans._CompositeBase._sum1\tpygeodesy.booleans._CompositeBase-class.html#_sum1\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.booleans._CompositeBase._sum2\tpygeodesy.booleans._CompositeBase-class.html#_sum2\npygeodesy.booleans._CompositeBase.isequalTo\tpygeodesy.booleans._CompositeBase-class.html#isequalTo\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.booleans._BooleanBase.__or__\tpygeodesy.booleans._BooleanBase-class.html#__or__\npygeodesy.booleans._CompositeBase._equi\tpygeodesy.booleans._CompositeBase-class.html#_equi\npygeodesy.booleans._BooleanBase._inplace\tpygeodesy.booleans._BooleanBase-class.html#_inplace\npygeodesy.booleans._CompositeBase.eps\tpygeodesy.booleans._CompositeBase-class.html#eps\npygeodesy.booleans._CompositeGH._clip\tpygeodesy.booleans._CompositeGH-class.html#_clip\npygeodesy.booleans.LatLonFHP\tpygeodesy.booleans.LatLonFHP-class.html\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.booleans.LatLonFHP.isenclosedBy\tpygeodesy.booleans.LatLonFHP-class.html#isenclosedBy\npygeodesy.booleans._LatLonBool.__str__\tpygeodesy.booleans._LatLonBool-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.booleans._LatLonBool._linked\tpygeodesy.booleans._LatLonBool-class.html#_linked\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.booleans.LatLonFHP._isduplicate\tpygeodesy.booleans.LatLonFHP-class.html#_isduplicate\npygeodesy.booleans.LatLonFHP.__rmul__\tpygeodesy.booleans.LatLonFHP-class.html#__rmul__\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.booleans._LatLonBool._link\tpygeodesy.booleans._LatLonBool-class.html#_link\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.booleans.LatLonFHP._2xing\tpygeodesy.booleans.LatLonFHP-class.html#_2xing\npygeodesy.named._Named.toStr\tpygeodesy.named._Named-class.html#toStr\npygeodesy.booleans._LatLonBool.ispoint\tpygeodesy.booleans._LatLonBool-class.html#ispoint\npygeodesy.booleans.LatLonFHP._prev_next2\tpygeodesy.booleans.LatLonFHP-class.html#_prev_next2\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.booleans._LatLonBool.clipid\tpygeodesy.booleans._LatLonBool-class.html#clipid\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.toRepr\tpygeodesy.named._Named-class.html#toRepr\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.booleans._LatLonBool._dupof\tpygeodesy.booleans._LatLonBool-class.html#_dupof\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.booleans._LatLonBool.latlon\tpygeodesy.booleans._LatLonBool-class.html#latlon\npygeodesy.booleans._LatLonBool._checked\tpygeodesy.booleans._LatLonBool-class.html#_checked\npygeodesy.booleans._LatLonBool.__ne__\tpygeodesy.booleans._LatLonBool-class.html#__ne__\npygeodesy.booleans.LatLonFHP._en_ex\tpygeodesy.booleans.LatLonFHP-class.html#_en_ex\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.booleans._LatLonBool.__repr__\tpygeodesy.booleans._LatLonBool-class.html#__repr__\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.booleans.LatLonFHP._label\tpygeodesy.booleans.LatLonFHP-class.html#_label\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.booleans.LatLonFHP.__add__\tpygeodesy.booleans.LatLonFHP-class.html#__add__\npygeodesy.booleans._LatLonBool.height\tpygeodesy.booleans._LatLonBool-class.html#height\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.booleans._LatLonBool._next\tpygeodesy.booleans._LatLonBool-class.html#_next\npygeodesy.booleans._LatLonBool.lon\tpygeodesy.booleans._LatLonBool-class.html#lon\npygeodesy.booleans._LatLonBool.__abs__\tpygeodesy.booleans._LatLonBool-class.html#__abs__\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.booleans.LatLonFHP._isinside\tpygeodesy.booleans.LatLonFHP-class.html#_isinside\npygeodesy.booleans._LatLonBool._2A\tpygeodesy.booleans._LatLonBool-class.html#_2A\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.booleans._LatLonBool.__eq__\tpygeodesy.booleans._LatLonBool-class.html#__eq__\npygeodesy.booleans._LatLonBool._prev\tpygeodesy.booleans._LatLonBool-class.html#_prev\npygeodesy.booleans._LatLonBool._2Abs\tpygeodesy.booleans._LatLonBool-class.html#_2Abs\npygeodesy.booleans.LatLonFHP._e_x_str\tpygeodesy.booleans.LatLonFHP-class.html#_e_x_str\npygeodesy.booleans.LatLonFHP.__mod__\tpygeodesy.booleans.LatLonFHP-class.html#__mod__\npygeodesy.booleans._LatLonBool._alpha\tpygeodesy.booleans._LatLonBool-class.html#_alpha\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.booleans._LatLonBool.__sub__\tpygeodesy.booleans._LatLonBool-class.html#__sub__\npygeodesy.booleans.LatLonFHP._RPoracle\tpygeodesy.booleans.LatLonFHP-class.html#_RPoracle\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.booleans._LatLonBool._clipid\tpygeodesy.booleans._LatLonBool-class.html#_clipid\npygeodesy.booleans.LatLonFHP._2split\tpygeodesy.booleans.LatLonFHP-class.html#_2split\npygeodesy.booleans.LatLonFHP.__init__\tpygeodesy.booleans.LatLonFHP-class.html#__init__\npygeodesy.booleans._LatLonBool.isintersection\tpygeodesy.booleans._LatLonBool-class.html#isintersection\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.booleans.LatLonFHP.__mul__\tpygeodesy.booleans.LatLonFHP-class.html#__mul__\npygeodesy.booleans._LatLonBool._toClas\tpygeodesy.booleans._LatLonBool-class.html#_toClas\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.booleans._LatLonBool._height\tpygeodesy.booleans._LatLonBool-class.html#_height\npygeodesy.booleans._LatLonBool.isequalTo\tpygeodesy.booleans._LatLonBool-class.html#isequalTo\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.booleans._LatLonBool._equi\tpygeodesy.booleans._LatLonBool-class.html#_equi\npygeodesy.booleans._LatLonBool.lat\tpygeodesy.booleans._LatLonBool-class.html#lat\npygeodesy.booleans.LatLonGH\tpygeodesy.booleans.LatLonGH-class.html\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.booleans.LatLonGH.isenclosedBy\tpygeodesy.booleans.LatLonGH-class.html#isenclosedBy\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.booleans._LatLonBool.__str__\tpygeodesy.booleans._LatLonBool-class.html#__str__\npygeodesy.booleans._LatLonBool._clipid\tpygeodesy.booleans._LatLonBool-class.html#_clipid\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.booleans._LatLonBool._linked\tpygeodesy.booleans._LatLonBool-class.html#_linked\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.booleans._LatLonBool._dupof\tpygeodesy.booleans._LatLonBool-class.html#_dupof\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.booleans._LatLonBool._next\tpygeodesy.booleans._LatLonBool-class.html#_next\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.booleans.LatLonGH.__init__\tpygeodesy.booleans.LatLonGH-class.html#__init__\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.booleans._LatLonBool.latlon\tpygeodesy.booleans._LatLonBool-class.html#latlon\npygeodesy.booleans._LatLonBool.isintersection\tpygeodesy.booleans._LatLonBool-class.html#isintersection\npygeodesy.booleans.LatLonGH._check\tpygeodesy.booleans.LatLonGH-class.html#_check\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.booleans._LatLonBool.lon\tpygeodesy.booleans._LatLonBool-class.html#lon\npygeodesy.booleans._LatLonBool._link\tpygeodesy.booleans._LatLonBool-class.html#_link\npygeodesy.booleans._LatLonBool.__abs__\tpygeodesy.booleans._LatLonBool-class.html#__abs__\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.booleans._LatLonBool._checked\tpygeodesy.booleans._LatLonBool-class.html#_checked\npygeodesy.named._Named.toStr\tpygeodesy.named._Named-class.html#toStr\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.booleans.LatLonGH._isinside\tpygeodesy.booleans.LatLonGH-class.html#_isinside\npygeodesy.booleans._LatLonBool.__ne__\tpygeodesy.booleans._LatLonBool-class.html#__ne__\npygeodesy.booleans._LatLonBool._toClas\tpygeodesy.booleans._LatLonBool-class.html#_toClas\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.booleans._LatLonBool._height\tpygeodesy.booleans._LatLonBool-class.html#_height\npygeodesy.booleans._LatLonBool.isequalTo\tpygeodesy.booleans._LatLonBool-class.html#isequalTo\npygeodesy.booleans._LatLonBool.ispoint\tpygeodesy.booleans._LatLonBool-class.html#ispoint\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.booleans._LatLonBool._2A\tpygeodesy.booleans._LatLonBool-class.html#_2A\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._Named.toRepr\tpygeodesy.named._Named-class.html#toRepr\npygeodesy.booleans._LatLonBool._equi\tpygeodesy.booleans._LatLonBool-class.html#_equi\npygeodesy.booleans._LatLonBool.lat\tpygeodesy.booleans._LatLonBool-class.html#lat\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.booleans._LatLonBool.height\tpygeodesy.booleans._LatLonBool-class.html#height\npygeodesy.booleans._LatLonBool.__eq__\tpygeodesy.booleans._LatLonBool-class.html#__eq__\npygeodesy.booleans._LatLonBool._prev\tpygeodesy.booleans._LatLonBool-class.html#_prev\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.booleans._LatLonBool._2Abs\tpygeodesy.booleans._LatLonBool-class.html#_2Abs\npygeodesy.booleans.LatLonGH._e_x_str\tpygeodesy.booleans.LatLonGH-class.html#_e_x_str\npygeodesy.booleans._LatLonBool._alpha\tpygeodesy.booleans._LatLonBool-class.html#_alpha\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.booleans._LatLonBool.clipid\tpygeodesy.booleans._LatLonBool-class.html#clipid\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.booleans._LatLonBool.__repr__\tpygeodesy.booleans._LatLonBool-class.html#__repr__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.booleans._LatLonBool.__sub__\tpygeodesy.booleans._LatLonBool-class.html#__sub__\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.booleans.LatLonGH._entry\tpygeodesy.booleans.LatLonGH-class.html#_entry\npygeodesy.booleans._BooleanBase\tpygeodesy.booleans._BooleanBase-class.html\npygeodesy.booleans._BooleanBase.__ror__\tpygeodesy.booleans._BooleanBase-class.html#__ror__\npygeodesy.booleans._BooleanBase.__radd__\tpygeodesy.booleans._BooleanBase-class.html#__radd__\npygeodesy.booleans._BooleanBase.__and__\tpygeodesy.booleans._BooleanBase-class.html#__and__\npygeodesy.booleans._BooleanBase.__rand__\tpygeodesy.booleans._BooleanBase-class.html#__rand__\npygeodesy.booleans._BooleanBase.__iand__\tpygeodesy.booleans._BooleanBase-class.html#__iand__\npygeodesy.booleans._BooleanBase.__ior__\tpygeodesy.booleans._BooleanBase-class.html#__ior__\npygeodesy.booleans._BooleanBase._boolean4\tpygeodesy.booleans._BooleanBase-class.html#_boolean4\npygeodesy.booleans._BooleanBase.__or__\tpygeodesy.booleans._BooleanBase-class.html#__or__\npygeodesy.booleans._BooleanBase.__add__\tpygeodesy.booleans._BooleanBase-class.html#__add__\npygeodesy.booleans._BooleanBase._inplace\tpygeodesy.booleans._BooleanBase-class.html#_inplace\npygeodesy.booleans._BooleanBase.__iadd__\tpygeodesy.booleans._BooleanBase-class.html#__iadd__\npygeodesy.booleans._Clip\tpygeodesy.booleans._Clip-class.html\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._Named.__str__\tpygeodesy.named._Named-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.booleans._Clip.__lt__\tpygeodesy.booleans._Clip-class.html#__lt__\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.booleans._Clip._first\tpygeodesy.booleans._Clip-class.html#_first\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.booleans._Clip._LL\tpygeodesy.booleans._Clip-class.html#_LL\npygeodesy.named._Named.toStr\tpygeodesy.named._Named-class.html#toStr\npygeodesy.booleans._Clip.__gt__\tpygeodesy.booleans._Clip-class.html#__gt__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.booleans._Clip._insert\tpygeodesy.booleans._Clip-class.html#_insert\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.toRepr\tpygeodesy.named._Named-class.html#toRepr\npygeodesy.booleans._Clip._bltr4\tpygeodesy.booleans._Clip-class.html#_bltr4\npygeodesy.booleans._Clip._closed\tpygeodesy.booleans._Clip-class.html#_closed\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.booleans._Clip._ishole\tpygeodesy.booleans._Clip-class.html#_ishole\npygeodesy.booleans._Clip.__contains__\tpygeodesy.booleans._Clip-class.html#__contains__\npygeodesy.booleans._Clip._Xings\tpygeodesy.booleans._Clip-class.html#_Xings\npygeodesy.booleans._Clip._append\tpygeodesy.booleans._Clip-class.html#_append\npygeodesy.booleans._Clip.__ne__\tpygeodesy.booleans._Clip-class.html#__ne__\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.booleans._Clip._OpenClipError\tpygeodesy.booleans._Clip-class.html#_OpenClipError\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.__repr__\tpygeodesy.named._Named-class.html#__repr__\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.booleans._Clip._bltr4eps\tpygeodesy.booleans._Clip-class.html#_bltr4eps\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.booleans._Clip._edges2\tpygeodesy.booleans._Clip-class.html#_edges2\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.booleans._Clip._intersection\tpygeodesy.booleans._Clip-class.html#_intersection\npygeodesy.booleans._Clip._dup\tpygeodesy.booleans._Clip-class.html#_dup\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.booleans._Clip.__len__\tpygeodesy.booleans._Clip-class.html#__len__\npygeodesy.booleans._Clip._identical\tpygeodesy.booleans._Clip-class.html#_identical\npygeodesy.booleans._Clip._Error\tpygeodesy.booleans._Clip-class.html#_Error\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.booleans._Clip._update_all\tpygeodesy.booleans._Clip-class.html#_update_all\npygeodesy.booleans._Clip._intersections\tpygeodesy.booleans._Clip-class.html#_intersections\npygeodesy.booleans._Clip.__iter__\tpygeodesy.booleans._Clip-class.html#__iter__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.booleans._Clip.__eq__\tpygeodesy.booleans._Clip-class.html#__eq__\npygeodesy.booleans._Clip._remove2\tpygeodesy.booleans._Clip-class.html#_remove2\npygeodesy.booleans._Clip._index\tpygeodesy.booleans._Clip-class.html#_index\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.booleans._Clip._pushback\tpygeodesy.booleans._Clip-class.html#_pushback\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.booleans._Clip.__le__\tpygeodesy.booleans._Clip-class.html#__le__\npygeodesy.booleans._Clip.__hash__\tpygeodesy.booleans._Clip-class.html#__hash__\npygeodesy.booleans._Clip._nodups\tpygeodesy.booleans._Clip-class.html#_nodups\npygeodesy.booleans._Clip.__ge__\tpygeodesy.booleans._Clip-class.html#__ge__\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.booleans._Clip._dups\tpygeodesy.booleans._Clip-class.html#_dups\npygeodesy.booleans._Clip._points\tpygeodesy.booleans._Clip-class.html#_points\npygeodesy.booleans._Clip.__init__\tpygeodesy.booleans._Clip-class.html#__init__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.booleans._Clip._noInters\tpygeodesy.booleans._Clip-class.html#_noInters\npygeodesy.booleans._Clip._last\tpygeodesy.booleans._Clip-class.html#_last\npygeodesy.booleans._Clip._noXings\tpygeodesy.booleans._Clip-class.html#_noXings\npygeodesy.booleans._Clip._composite\tpygeodesy.booleans._Clip-class.html#_composite\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.booleans._Clip._len\tpygeodesy.booleans._Clip-class.html#_len\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.booleans._Clip._equi\tpygeodesy.booleans._Clip-class.html#_equi\npygeodesy.booleans._Clip._point2\tpygeodesy.booleans._Clip-class.html#_point2\npygeodesy.booleans._Clip._all\tpygeodesy.booleans._Clip-class.html#_all\npygeodesy.booleans._Clip._id\tpygeodesy.booleans._Clip-class.html#_id\npygeodesy.booleans._Clip._all_ON_ON\tpygeodesy.booleans._Clip-class.html#_all_ON_ON\npygeodesy.booleans._CompositeBase\tpygeodesy.booleans._CompositeBase-class.html\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.booleans._CompositeBase.__str__\tpygeodesy.booleans._CompositeBase-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.booleans._CompositeBase.clipids\tpygeodesy.booleans._CompositeBase-class.html#clipids\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.booleans._CompositeBase._edges3\tpygeodesy.booleans._CompositeBase-class.html#_edges3\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.booleans._CompositeBase.raiser\tpygeodesy.booleans._CompositeBase-class.html#raiser\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.booleans._CompositeBase._sum1\tpygeodesy.booleans._CompositeBase-class.html#_sum1\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.booleans._CompositeBase._points\tpygeodesy.booleans._CompositeBase-class.html#_points\npygeodesy.booleans._CompositeBase._raiser\tpygeodesy.booleans._CompositeBase-class.html#_raiser\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.booleans._CompositeBase._bottom_top_eps2\tpygeodesy.booleans._CompositeBase-class.html#_bottom_top_eps2\npygeodesy.booleans._CompositeBase.__contains__\tpygeodesy.booleans._CompositeBase-class.html#__contains__\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.booleans._CompositeBase._xtend\tpygeodesy.booleans._CompositeBase-class.html#_xtend\npygeodesy.booleans._CompositeBase.__init__\tpygeodesy.booleans._CompositeBase-class.html#__init__\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.booleans._CompositeBase._class\tpygeodesy.booleans._CompositeBase-class.html#_class\npygeodesy.booleans._CompositeBase._LL\tpygeodesy.booleans._LatLonBool-class.html\npygeodesy.booleans._CompositeBase.__len__\tpygeodesy.booleans._CompositeBase-class.html#__len__\npygeodesy.booleans._CompositeBase.__ne__\tpygeodesy.booleans._CompositeBase-class.html#__ne__\npygeodesy.booleans._CompositeBase._encloses\tpygeodesy.booleans._CompositeBase-class.html#_encloses\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.booleans._CompositeBase._sum2\tpygeodesy.booleans._CompositeBase-class.html#_sum2\npygeodesy.named._Named.toStr\tpygeodesy.named._Named-class.html#toStr\npygeodesy.booleans._CompositeBase.isequalTo\tpygeodesy.booleans._CompositeBase-class.html#isequalTo\npygeodesy.booleans._CompositeBase._kind\tpygeodesy.booleans._CompositeBase-class.html#_kind\npygeodesy.booleans._CompositeBase._intersections\tpygeodesy.booleans._CompositeBase-class.html#_intersections\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.booleans._CompositeBase.__iter__\tpygeodesy.booleans._CompositeBase-class.html#__iter__\npygeodesy.named._Named.toRepr\tpygeodesy.named._Named-class.html#toRepr\npygeodesy.booleans._CompositeBase._sum\tpygeodesy.booleans._CompositeBase-class.html#_sum\npygeodesy.booleans._CompositeBase._equi\tpygeodesy.booleans._CompositeBase-class.html#_equi\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.booleans._CompositeBase.__eq__\tpygeodesy.booleans._CompositeBase-class.html#__eq__\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.booleans._CompositeBase._left_right_eps2\tpygeodesy.booleans._CompositeBase-class.html#_left_right_eps2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.booleans._CompositeBase._10eps\tpygeodesy.booleans._CompositeBase-class.html#_10eps\npygeodesy.booleans._CompositeBase._clipids\tpygeodesy.booleans._CompositeBase-class.html#_clipids\npygeodesy.booleans._CompositeBase._clips\tpygeodesy.booleans._CompositeBase-class.html#_clips\npygeodesy.booleans._CompositeBase.toLatLon\tpygeodesy.booleans._CompositeBase-class.html#toLatLon\npygeodesy.booleans._CompositeBase._kwds\tpygeodesy.booleans._CompositeBase-class.html#_kwds\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.booleans._CompositeBase.eps\tpygeodesy.booleans._CompositeBase-class.html#eps\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.booleans._CompositeBase.__repr__\tpygeodesy.booleans._CompositeBase-class.html#__repr__\npygeodesy.booleans._CompositeBase._results\tpygeodesy.booleans._CompositeBase-class.html#_results\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.booleans._CompositeBase._eps\tpygeodesy.booleans._CompositeBase-class.html#_eps\npygeodesy.booleans._CompositeFHP\tpygeodesy.booleans._CompositeFHP-class.html\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.booleans._CompositeBase.__str__\tpygeodesy.booleans._CompositeBase-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.booleans._CompositeBase.toLatLon\tpygeodesy.booleans._CompositeBase-class.html#toLatLon\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.booleans._CompositeFHP._resultX\tpygeodesy.booleans._CompositeFHP-class.html#_resultX\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.booleans._CompositeBase._xtend\tpygeodesy.booleans._CompositeBase-class.html#_xtend\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.booleans._CompositeFHP._LL\tpygeodesy.booleans.LatLonFHP-class.html\npygeodesy.booleans._CompositeFHP._classify\tpygeodesy.booleans._CompositeFHP-class.html#_classify\npygeodesy.named._Named.toStr\tpygeodesy.named._Named-class.html#toStr\npygeodesy.booleans._CompositeBase._left_right_eps2\tpygeodesy.booleans._CompositeBase-class.html#_left_right_eps2\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.booleans._CompositeBase._clips\tpygeodesy.booleans._CompositeBase-class.html#_clips\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.toRepr\tpygeodesy.named._Named-class.html#toRepr\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.booleans._CompositeFHP._2splits\tpygeodesy.booleans._CompositeFHP-class.html#_2splits\npygeodesy.booleans._CompositeBase.__contains__\tpygeodesy.booleans._CompositeBase-class.html#__contains__\npygeodesy.booleans._CompositeBase.__ne__\tpygeodesy.booleans._CompositeBase-class.html#__ne__\npygeodesy.booleans._CompositeFHP._presults\tpygeodesy.booleans._CompositeFHP-class.html#_presults\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.booleans._CompositeBase._10eps\tpygeodesy.booleans._CompositeBase-class.html#_10eps\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.booleans._CompositeBase.__repr__\tpygeodesy.booleans._CompositeBase-class.html#__repr__\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.booleans._CompositeBase._eps\tpygeodesy.booleans._CompositeBase-class.html#_eps\npygeodesy.booleans._CompositeFHP._special_identicals\tpygeodesy.booleans._CompositeFHP-class.html#_special_identicals\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.booleans._CompositeFHP._labelize\tpygeodesy.booleans._CompositeFHP-class.html#_labelize\npygeodesy.booleans._CompositeBase.clipids\tpygeodesy.booleans._CompositeBase-class.html#clipids\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.booleans._CompositeBase._edges3\tpygeodesy.booleans._CompositeBase-class.html#_edges3\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.booleans._CompositeBase.raiser\tpygeodesy.booleans._CompositeBase-class.html#raiser\npygeodesy.booleans._CompositeFHP._set_entry_exits\tpygeodesy.booleans._CompositeFHP-class.html#_set_entry_exits\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.booleans._CompositeBase.__len__\tpygeodesy.booleans._CompositeBase-class.html#__len__\npygeodesy.booleans._CompositeBase._encloses\tpygeodesy.booleans._CompositeBase-class.html#_encloses\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.booleans._CompositeBase._kind\tpygeodesy.booleans._CompositeBase-class.html#_kind\npygeodesy.booleans._CompositeBase._intersections\tpygeodesy.booleans._CompositeBase-class.html#_intersections\npygeodesy.booleans._CompositeBase.__iter__\tpygeodesy.booleans._CompositeBase-class.html#__iter__\npygeodesy.booleans._CompositeBase._sum\tpygeodesy.booleans._CompositeBase-class.html#_sum\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.booleans._CompositeBase.__eq__\tpygeodesy.booleans._CompositeBase-class.html#__eq__\npygeodesy.booleans._CompositeBase._clipids\tpygeodesy.booleans._CompositeBase-class.html#_clipids\npygeodesy.booleans._CompositeFHP._special_cases\tpygeodesy.booleans._CompositeFHP-class.html#_special_cases\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.booleans._CompositeBase._results\tpygeodesy.booleans._CompositeBase-class.html#_results\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.booleans._CompositeBase._points\tpygeodesy.booleans._CompositeBase-class.html#_points\npygeodesy.booleans._CompositeBase._raiser\tpygeodesy.booleans._CompositeBase-class.html#_raiser\npygeodesy.booleans._CompositeFHP._identicals\tpygeodesy.booleans._CompositeFHP-class.html#_identicals\npygeodesy.booleans._CompositeBase._bottom_top_eps2\tpygeodesy.booleans._CompositeBase-class.html#_bottom_top_eps2\npygeodesy.booleans._CompositeBase._kwds\tpygeodesy.booleans._CompositeBase-class.html#_kwds\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.booleans._CompositeFHP.__init__\tpygeodesy.booleans._CompositeFHP-class.html#__init__\npygeodesy.booleans._CompositeBase._class\tpygeodesy.booleans._CompositeBase-class.html#_class\npygeodesy.booleans._CompositeFHP._Union\tpygeodesy.booleans._CompositeFHP-class.html#_Union\npygeodesy.booleans._CompositeBase._sum1\tpygeodesy.booleans._CompositeBase-class.html#_sum1\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.booleans._CompositeBase._sum2\tpygeodesy.booleans._CompositeBase-class.html#_sum2\npygeodesy.booleans._CompositeBase.isequalTo\tpygeodesy.booleans._CompositeBase-class.html#isequalTo\npygeodesy.booleans._CompositeFHP._splits_xings\tpygeodesy.booleans._CompositeFHP-class.html#_splits_xings\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.booleans._CompositeBase._equi\tpygeodesy.booleans._CompositeBase-class.html#_equi\npygeodesy.booleans._CompositeBase.eps\tpygeodesy.booleans._CompositeBase-class.html#eps\npygeodesy.booleans._CompositeFHP._clip\tpygeodesy.booleans._CompositeFHP-class.html#_clip\npygeodesy.booleans._CompositeFHP._2xings\tpygeodesy.booleans._CompositeFHP-class.html#_2xings\npygeodesy.booleans._CompositeGH\tpygeodesy.booleans._CompositeGH-class.html\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.booleans._CompositeBase.__str__\tpygeodesy.booleans._CompositeBase-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.booleans._CompositeBase.clipids\tpygeodesy.booleans._CompositeBase-class.html#clipids\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.booleans._CompositeBase._edges3\tpygeodesy.booleans._CompositeBase-class.html#_edges3\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.booleans._CompositeBase.raiser\tpygeodesy.booleans._CompositeBase-class.html#raiser\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.booleans._CompositeGH.xtend\tpygeodesy.booleans._CompositeGH-class.html#xtend\npygeodesy.booleans._CompositeBase._sum1\tpygeodesy.booleans._CompositeBase-class.html#_sum1\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.booleans._CompositeBase._points\tpygeodesy.booleans._CompositeBase-class.html#_points\npygeodesy.booleans._CompositeBase._raiser\tpygeodesy.booleans._CompositeBase-class.html#_raiser\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.booleans._CompositeGH._first\tpygeodesy.booleans._CompositeGH-class.html#_first\npygeodesy.booleans._CompositeGH._kwds\tpygeodesy.booleans._CompositeGH-class.html#_kwds\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.booleans._CompositeGH._xtend\tpygeodesy.booleans._CompositeGH-class.html#_xtend\npygeodesy.booleans._CompositeGH.__init__\tpygeodesy.booleans._CompositeGH-class.html#__init__\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.booleans._CompositeBase._class\tpygeodesy.booleans._CompositeBase-class.html#_class\npygeodesy.booleans._CompositeGH._LL\tpygeodesy.booleans.LatLonGH-class.html\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.booleans._CompositeBase.__len__\tpygeodesy.booleans._CompositeBase-class.html#__len__\npygeodesy.booleans._CompositeBase.__ne__\tpygeodesy.booleans._CompositeBase-class.html#__ne__\npygeodesy.booleans._CompositeGH._presults\tpygeodesy.booleans._CompositeGH-class.html#_presults\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.booleans._CompositeBase._sum2\tpygeodesy.booleans._CompositeBase-class.html#_sum2\npygeodesy.named._Named.toStr\tpygeodesy.named._Named-class.html#toStr\npygeodesy.booleans._CompositeBase.isequalTo\tpygeodesy.booleans._CompositeBase-class.html#isequalTo\npygeodesy.booleans._CompositeBase._kind\tpygeodesy.booleans._CompositeBase-class.html#_kind\npygeodesy.booleans._CompositeBase._intersections\tpygeodesy.booleans._CompositeBase-class.html#_intersections\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.booleans._CompositeGH._resultU\tpygeodesy.booleans._CompositeGH-class.html#_resultU\npygeodesy.booleans._CompositeBase.__iter__\tpygeodesy.booleans._CompositeBase-class.html#__iter__\npygeodesy.named._Named.toRepr\tpygeodesy.named._Named-class.html#toRepr\npygeodesy.booleans._CompositeBase._sum\tpygeodesy.booleans._CompositeBase-class.html#_sum\npygeodesy.booleans._CompositeBase._equi\tpygeodesy.booleans._CompositeBase-class.html#_equi\npygeodesy.booleans._CompositeBase._encloses\tpygeodesy.booleans._CompositeBase-class.html#_encloses\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.booleans._CompositeBase.__eq__\tpygeodesy.booleans._CompositeBase-class.html#__eq__\npygeodesy.booleans._CompositeBase._bottom_top_eps2\tpygeodesy.booleans._CompositeBase-class.html#_bottom_top_eps2\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.booleans._CompositeBase._left_right_eps2\tpygeodesy.booleans._CompositeBase-class.html#_left_right_eps2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.booleans._CompositeBase._10eps\tpygeodesy.booleans._CompositeBase-class.html#_10eps\npygeodesy.booleans._CompositeBase._clipids\tpygeodesy.booleans._CompositeBase-class.html#_clipids\npygeodesy.booleans._CompositeBase._clips\tpygeodesy.booleans._CompositeBase-class.html#_clips\npygeodesy.booleans._CompositeBase.toLatLon\tpygeodesy.booleans._CompositeBase-class.html#toLatLon\npygeodesy.booleans._CompositeBase.__contains__\tpygeodesy.booleans._CompositeBase-class.html#__contains__\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.booleans._CompositeBase.eps\tpygeodesy.booleans._CompositeBase-class.html#eps\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.booleans._CompositeGH._clip\tpygeodesy.booleans._CompositeGH-class.html#_clip\npygeodesy.booleans._CompositeBase.__repr__\tpygeodesy.booleans._CompositeBase-class.html#__repr__\npygeodesy.booleans._CompositeBase._results\tpygeodesy.booleans._CompositeBase-class.html#_results\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.booleans._CompositeBase._eps\tpygeodesy.booleans._CompositeBase-class.html#_eps\npygeodesy.booleans._LatLonBool\tpygeodesy.booleans._LatLonBool-class.html\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.booleans._LatLonBool.__str__\tpygeodesy.booleans._LatLonBool-class.html#__str__\npygeodesy.booleans._LatLonBool._clipid\tpygeodesy.booleans._LatLonBool-class.html#_clipid\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.booleans._LatLonBool._linked\tpygeodesy.booleans._LatLonBool-class.html#_linked\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.booleans._LatLonBool._dupof\tpygeodesy.booleans._LatLonBool-class.html#_dupof\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.booleans._LatLonBool._next\tpygeodesy.booleans._LatLonBool-class.html#_next\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.booleans._LatLonBool.__init__\tpygeodesy.booleans._LatLonBool-class.html#__init__\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.booleans._LatLonBool.latlon\tpygeodesy.booleans._LatLonBool-class.html#latlon\npygeodesy.booleans._LatLonBool.isintersection\tpygeodesy.booleans._LatLonBool-class.html#isintersection\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.booleans._LatLonBool.lon\tpygeodesy.booleans._LatLonBool-class.html#lon\npygeodesy.booleans._LatLonBool._link\tpygeodesy.booleans._LatLonBool-class.html#_link\npygeodesy.booleans._LatLonBool.__abs__\tpygeodesy.booleans._LatLonBool-class.html#__abs__\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.booleans._LatLonBool._checked\tpygeodesy.booleans._LatLonBool-class.html#_checked\npygeodesy.named._Named.toStr\tpygeodesy.named._Named-class.html#toStr\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.booleans._LatLonBool.__ne__\tpygeodesy.booleans._LatLonBool-class.html#__ne__\npygeodesy.booleans._LatLonBool._toClas\tpygeodesy.booleans._LatLonBool-class.html#_toClas\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.booleans._LatLonBool._height\tpygeodesy.booleans._LatLonBool-class.html#_height\npygeodesy.booleans._LatLonBool.isequalTo\tpygeodesy.booleans._LatLonBool-class.html#isequalTo\npygeodesy.booleans._LatLonBool.ispoint\tpygeodesy.booleans._LatLonBool-class.html#ispoint\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.booleans._LatLonBool._2A\tpygeodesy.booleans._LatLonBool-class.html#_2A\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._Named.toRepr\tpygeodesy.named._Named-class.html#toRepr\npygeodesy.booleans._LatLonBool._equi\tpygeodesy.booleans._LatLonBool-class.html#_equi\npygeodesy.booleans._LatLonBool.lat\tpygeodesy.booleans._LatLonBool-class.html#lat\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.booleans._LatLonBool.height\tpygeodesy.booleans._LatLonBool-class.html#height\npygeodesy.booleans._LatLonBool.__eq__\tpygeodesy.booleans._LatLonBool-class.html#__eq__\npygeodesy.booleans._LatLonBool._prev\tpygeodesy.booleans._LatLonBool-class.html#_prev\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.booleans._LatLonBool._2Abs\tpygeodesy.booleans._LatLonBool-class.html#_2Abs\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.booleans._LatLonBool._alpha\tpygeodesy.booleans._LatLonBool-class.html#_alpha\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.booleans._LatLonBool.clipid\tpygeodesy.booleans._LatLonBool-class.html#clipid\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.booleans._LatLonBool.__repr__\tpygeodesy.booleans._LatLonBool-class.html#__repr__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.booleans._LatLonBool.__sub__\tpygeodesy.booleans._LatLonBool-class.html#__sub__\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.cartesianBase.CartesianBase\tpygeodesy.cartesianBase.CartesianBase-class.html\npygeodesy.vector3d.Vector3d.toCartesian\tpygeodesy.vector3d.Vector3d-class.html#toCartesian\npygeodesy.vector3dBase.Vector3dBase.__int__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__int__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.cartesianBase.CartesianBase.tienstra7\tpygeodesy.cartesianBase.CartesianBase-class.html#tienstra7\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedBase.__str__\tpygeodesy.named._NamedBase-class.html#__str__\npygeodesy.cartesianBase.CartesianBase.datum\tpygeodesy.cartesianBase.CartesianBase-class.html#datum\npygeodesy.vector3dBase.Vector3dBase.__imatmul__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__imatmul__\npygeodesy.cartesianBase.CartesianBase.toLatLon\tpygeodesy.cartesianBase.CartesianBase-class.html#toLatLon\npygeodesy.vector3dBase.Vector3dBase.times_\tpygeodesy.vector3dBase.Vector3dBase-class.html#times_\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.vector3dBase.Vector3dBase.__rdiv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rdiv__\npygeodesy.vector3dBase.Vector3dBase.__rmul__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rmul__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.vector3dBase.Vector3dBase.__lt__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__lt__\npygeodesy.cartesianBase.CartesianBase.philamheightdatum\tpygeodesy.cartesianBase.CartesianBase-class.html#philamheightdatum\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.cartesianBase.CartesianBase.to3llh\tpygeodesy.cartesianBase.CartesianBase-class.html#to3llh\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.vector3dBase.Vector3dBase.__cmp__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__cmp__\npygeodesy.vector3d.Vector3d.nearestOn\tpygeodesy.vector3d.Vector3d-class.html#nearestOn\npygeodesy.vector3dBase.Vector3dBase.minus_\tpygeodesy.vector3dBase.Vector3dBase-class.html#minus_\npygeodesy.vector3dBase.Vector3dBase.__rfloordiv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rfloordiv__\npygeodesy.cartesianBase.CartesianBase.tienstra\tpygeodesy.cartesianBase.CartesianBase-class.html#tienstra\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.cartesianBase.CartesianBase._ecef9\tpygeodesy.cartesianBase.CartesianBase-class.html#_ecef9\npygeodesy.vector3dBase.Vector3dBase.rotateAround\tpygeodesy.vector3dBase.Vector3dBase-class.html#rotateAround\npygeodesy.cartesianBase.CartesianBase.pierlotx\tpygeodesy.cartesianBase.CartesianBase-class.html#pierlotx\npygeodesy.cartesianBase.CartesianBase.toStr\tpygeodesy.cartesianBase.CartesianBase-class.html#toStr\npygeodesy.vector3dBase.Vector3dBase._roty\tpygeodesy.vector3dBase.Vector3dBase-class.html#_roty\npygeodesy.vector3dBase.Vector3dBase.angleTo\tpygeodesy.vector3dBase.Vector3dBase-class.html#angleTo\npygeodesy.cartesianBase.CartesianBase.toTransform\tpygeodesy.cartesianBase.CartesianBase-class.html#toTransform\npygeodesy.ecefLocals._EcefLocal.toXyz\tpygeodesy.ecefLocals._EcefLocal-class.html#toXyz\npygeodesy.vector3dBase.Vector3dBase.__pow__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__pow__\npygeodesy.vector3dBase.Vector3dBase.__gt__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__gt__\npygeodesy.vector3dBase.Vector3dBase.__bool__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__bool__\npygeodesy.vector3dBase.Vector3dBase.x2y2z23\tpygeodesy.vector3dBase.Vector3dBase-class.html#x2y2z23\npygeodesy.cartesianBase.CartesianBase.toEcef\tpygeodesy.cartesianBase.CartesianBase-class.html#toEcef\npygeodesy.vector3dBase.Vector3dBase.rotate\tpygeodesy.vector3dBase.Vector3dBase-class.html#rotate\npygeodesy.vector3dBase.Vector3dBase.__nonzero__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__nonzero__\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.vector3dBase.Vector3dBase._ll\tpygeodesy.vector3dBase.Vector3dBase-class.html#_ll\npygeodesy.vector3dBase.Vector3dBase._plus\tpygeodesy.vector3dBase.Vector3dBase-class.html#_plus\npygeodesy.vector3dBase.Vector3dBase.__mod__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__mod__\npygeodesy.vector3dBase.Vector3dBase.to3xyz\tpygeodesy.vector3dBase.Vector3dBase-class.html#to3xyz\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.vector3dBase.Vector3dBase.x\tpygeodesy.vector3dBase.Vector3dBase-class.html#x\npygeodesy.vector3dBase.Vector3dBase.__long__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__long__\npygeodesy.vector3dBase.Vector3dBase.cmp\tpygeodesy.vector3dBase.Vector3dBase-class.html#cmp\npygeodesy.vector3dBase.Vector3dBase.homogeneous\tpygeodesy.vector3dBase.Vector3dBase-class.html#homogeneous\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.vector3dBase.Vector3dBase.plus_\tpygeodesy.vector3dBase.Vector3dBase-class.html#plus_\npygeodesy.cartesianBase.CartesianBase.sphericalCartesian\tpygeodesy.cartesianBase.CartesianBase-class.html#sphericalCartesian\npygeodesy.cartesianBase.CartesianBase.Roc2\tpygeodesy.cartesianBase.CartesianBase-class.html#Roc2\npygeodesy.cartesianBase.CartesianBase.toDatum\tpygeodesy.cartesianBase.CartesianBase-class.html#toDatum\npygeodesy.vector3dBase.Vector3dBase.__truediv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__truediv__\npygeodesy.ecefLocals._EcefLocal.toLtp\tpygeodesy.ecefLocals._EcefLocal-class.html#toLtp\npygeodesy.vector3d.Vector3d.trilaterate2d2\tpygeodesy.vector3d.Vector3d-class.html#trilaterate2d2\npygeodesy.vector3dBase.Vector3dBase.__matmul__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__matmul__\npygeodesy.vector3dBase.Vector3dBase.euclid\tpygeodesy.vector3dBase.Vector3dBase-class.html#euclid\npygeodesy.vector3dBase.Vector3dBase._minus\tpygeodesy.vector3dBase.Vector3dBase-class.html#_minus\npygeodesy.vector3d.Vector3d.trilaterate3d2\tpygeodesy.vector3d.Vector3d-class.html#trilaterate3d2\npygeodesy.vector3dBase.Vector3dBase.__rmod__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rmod__\npygeodesy.ecefLocals._EcefLocal._ecef9datum\tpygeodesy.ecefLocals._EcefLocal-class.html#_ecef9datum\npygeodesy.cartesianBase.CartesianBase.latlon\tpygeodesy.cartesianBase.CartesianBase-class.html#latlon\npygeodesy.cartesianBase.CartesianBase.hartzell\tpygeodesy.cartesianBase.CartesianBase-class.html#hartzell\npygeodesy.vector3dBase.Vector3dBase._crosserrors\tpygeodesy.vector3dBase.Vector3dBase-class.html#_crosserrors\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.vector3dBase.Vector3dBase._mapped\tpygeodesy.vector3dBase.Vector3dBase-class.html#_mapped\npygeodesy.vector3dBase.Vector3dBase.sum\tpygeodesy.vector3dBase.Vector3dBase-class.html#sum\npygeodesy.cartesianBase.CartesianBase.philam\tpygeodesy.cartesianBase.CartesianBase-class.html#philam\npygeodesy.ecefLocals._EcefLocal.toAer\tpygeodesy.ecefLocals._EcefLocal-class.html#toAer\npygeodesy.cartesianBase.CartesianBase.collins\tpygeodesy.cartesianBase.CartesianBase-class.html#collins\npygeodesy.vector3dBase.Vector3dBase._other_cmp\tpygeodesy.vector3dBase.Vector3dBase-class.html#_other_cmp\npygeodesy.vector3dBase.Vector3dBase.isequalTo\tpygeodesy.vector3dBase.Vector3dBase-class.html#isequalTo\npygeodesy.vector3dBase.Vector3dBase.__ne__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__ne__\npygeodesy.cartesianBase.CartesianBase._height2C\tpygeodesy.cartesianBase.CartesianBase-class.html#_height2C\npygeodesy.vector3dBase.Vector3dBase.__ifloordiv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__ifloordiv__\npygeodesy.vector3dBase.Vector3dBase.dividedBy_\tpygeodesy.vector3dBase.Vector3dBase-class.html#dividedBy_\npygeodesy.vector3dBase.Vector3dBase.equals\tpygeodesy.vector3dBase.Vector3dBase-class.html#equals\npygeodesy.cartesianBase.CartesianBase._n_xyzh4\tpygeodesy.cartesianBase.CartesianBase-class.html#_n_xyzh4\npygeodesy.vector3d.Vector3d.circin6\tpygeodesy.vector3d.Vector3d-class.html#circin6\npygeodesy.cartesianBase.CartesianBase.ellipsoidalCartesian\tpygeodesy.cartesianBase.CartesianBase-class.html#ellipsoidalCartesian\npygeodesy.vector3d.Vector3d.nearestOn6\tpygeodesy.vector3d.Vector3d-class.html#nearestOn6\npygeodesy.vector3dBase.Vector3dBase.__rmatmul__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rmatmul__\npygeodesy.vector3dBase.Vector3dBase.floats\tpygeodesy.vector3dBase.Vector3dBase-class.html#floats\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.vector3d.Vector3d.meeus2\tpygeodesy.vector3d.Vector3d-class.html#meeus2\npygeodesy.vector3dBase.Vector3dBase.__imul__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__imul__\npygeodesy.vector3dBase.Vector3dBase.__trunc__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__trunc__\npygeodesy.vector3dBase.Vector3dBase.times\tpygeodesy.vector3dBase.Vector3dBase-class.html#times\npygeodesy.vector3dBase.Vector3dBase.length\tpygeodesy.vector3dBase.Vector3dBase-class.html#length\npygeodesy.vector3dBase.Vector3dBase.plus\tpygeodesy.vector3dBase.Vector3dBase-class.html#plus\npygeodesy.vector3dBase.Vector3dBase.__mul__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__mul__\npygeodesy.cartesianBase.CartesianBase.pierlot\tpygeodesy.cartesianBase.CartesianBase-class.html#pierlot\npygeodesy.vector3dBase.Vector3dBase.__divmod__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__divmod__\npygeodesy.named._NamedBase.toRepr\tpygeodesy.named._NamedBase-class.html#toRepr\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.cartesianBase.CartesianBase._height4\tpygeodesy.cartesianBase.CartesianBase-class.html#_height4\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.vector3dBase.Vector3dBase.pow\tpygeodesy.vector3dBase.Vector3dBase-class.html#pow\npygeodesy.vector3dBase.Vector3dBase.xyz\tpygeodesy.vector3dBase.Vector3dBase-class.html#xyz\npygeodesy.vector3dBase.Vector3dBase.others\tpygeodesy.vector3dBase.Vector3dBase-class.html#others\npygeodesy.cartesianBase.CartesianBase.isEllipsoidal\tpygeodesy.cartesianBase.CartesianBase-class.html#isEllipsoidal\npygeodesy.cartesianBase.CartesianBase.height\tpygeodesy.cartesianBase.CartesianBase-class.html#height\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.vector3dBase.Vector3dBase.__rsub__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rsub__\npygeodesy.vector3dBase.Vector3dBase.ints\tpygeodesy.vector3dBase.Vector3dBase-class.html#ints\npygeodesy.cartesianBase.CartesianBase.cassini\tpygeodesy.cartesianBase.CartesianBase-class.html#cassini\npygeodesy.vector3dBase.Vector3dBase.negate\tpygeodesy.vector3dBase.Vector3dBase-class.html#negate\npygeodesy.vector3dBase.Vector3dBase.apply\tpygeodesy.vector3dBase.Vector3dBase-class.html#apply\npygeodesy.vector3dBase.Vector3dBase.equirectangular\tpygeodesy.vector3dBase.Vector3dBase-class.html#equirectangular\npygeodesy.vector3dBase.Vector3dBase.intermediateTo\tpygeodesy.vector3dBase.Vector3dBase-class.html#intermediateTo\npygeodesy.vector3dBase.Vector3dBase.unit\tpygeodesy.vector3dBase.Vector3dBase-class.html#unit\npygeodesy.vector3dBase.Vector3dBase.__float__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__float__\npygeodesy.vector3dBase.Vector3dBase.__rpow__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rpow__\npygeodesy.vector3d.Vector3d.soddy4\tpygeodesy.vector3d.Vector3d-class.html#soddy4\npygeodesy.ecefLocals._EcefLocal.toNed\tpygeodesy.ecefLocals._EcefLocal-class.html#toNed\npygeodesy.cartesianBase.CartesianBase._N_vector\tpygeodesy.cartesianBase.CartesianBase-class.html#_N_vector\npygeodesy.vector3d.Vector3d.iscolinearWith\tpygeodesy.vector3d.Vector3d-class.html#iscolinearWith\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.vector3dBase.Vector3dBase.__itruediv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__itruediv__\npygeodesy.vector3dBase.Vector3dBase.dividedBy\tpygeodesy.vector3dBase.Vector3dBase-class.html#dividedBy\npygeodesy.vector3dBase.Vector3dBase.__isub__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__isub__\npygeodesy.vector3dBase.Vector3dBase.__rdivmod__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rdivmod__\npygeodesy.vector3dBase.Vector3dBase.crosserrors\tpygeodesy.vector3dBase.Vector3dBase-class.html#crosserrors\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.vector3d.Vector3d.circum3\tpygeodesy.vector3d.Vector3d-class.html#circum3\npygeodesy.vector3dBase.Vector3dBase.__radd__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__radd__\npygeodesy.vector3dBase.Vector3dBase.__eq__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__eq__\npygeodesy.ecefLocals._EcefLocal.toEnu\tpygeodesy.ecefLocals._EcefLocal-class.html#toEnu\npygeodesy.vector3dBase.Vector3dBase.__round__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__round__\npygeodesy.vector3dBase.Vector3dBase.bools\tpygeodesy.vector3dBase.Vector3dBase-class.html#bools\npygeodesy.cartesianBase.CartesianBase.latlonheight\tpygeodesy.cartesianBase.CartesianBase-class.html#latlonheight\npygeodesy.cartesianBase.CartesianBase.height4\tpygeodesy.cartesianBase.CartesianBase-class.html#height4\npygeodesy.ecefLocals._EcefLocal.Ecef\tpygeodesy.ecefLocals._EcefLocal-class.html#Ecef\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.vector3dBase.Vector3dBase.xyz3\tpygeodesy.vector3dBase.Vector3dBase-class.html#xyz3\npygeodesy.ecefLocals._EcefLocal._ltp_ecef2local\tpygeodesy.ecefLocals._EcefLocal-class.html#_ltp_ecef2local\npygeodesy.vector3dBase.Vector3dBase.__iadd__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__iadd__\npygeodesy.cartesianBase.CartesianBase.height3\tpygeodesy.cartesianBase.CartesianBase-class.html#height3\npygeodesy.vector3d.Vector3d.circum4_\tpygeodesy.vector3d.Vector3d-class.html#circum4_\npygeodesy.cartesianBase.CartesianBase.latlonheightdatum\tpygeodesy.cartesianBase.CartesianBase-class.html#latlonheightdatum\npygeodesy.vector3dBase.Vector3dBase.__le__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__le__\npygeodesy.vector3dBase.Vector3dBase.__floordiv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__floordiv__\npygeodesy.vector3dBase.Vector3dBase.__hash__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__hash__\npygeodesy.vector3dBase.Vector3dBase.__sub__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__sub__\npygeodesy.vector3dBase.Vector3dBase.z\tpygeodesy.vector3dBase.Vector3dBase-class.html#z\npygeodesy.vector3dBase.Vector3dBase._xyz\tpygeodesy.vector3dBase.Vector3dBase-class.html#_xyz\npygeodesy.vector3dBase.Vector3dBase.minus\tpygeodesy.vector3dBase.Vector3dBase-class.html#minus\npygeodesy.vector3dBase.Vector3dBase.__ge__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__ge__\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.vector3d.Vector3d.bearing\tpygeodesy.vector3d.Vector3d-class.html#bearing\npygeodesy.vector3dBase.Vector3dBase.__rtruediv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rtruediv__\npygeodesy.vector3dBase.Vector3dBase.floorDividedBy_\tpygeodesy.vector3dBase.Vector3dBase-class.html#floorDividedBy_\npygeodesy.cartesianBase.CartesianBase.collins5\tpygeodesy.cartesianBase.CartesianBase-class.html#collins5\npygeodesy.vector3dBase.Vector3dBase.x2y2z2\tpygeodesy.vector3dBase.Vector3dBase-class.html#x2y2z2\npygeodesy.cartesianBase.CartesianBase.toRtp\tpygeodesy.cartesianBase.CartesianBase-class.html#toRtp\npygeodesy.cartesianBase.CartesianBase.toNvector\tpygeodesy.cartesianBase.CartesianBase-class.html#toNvector\npygeodesy.vector3d.Vector3d.parse\tpygeodesy.vector3d.Vector3d-class.html#parse\npygeodesy.vector3dBase.Vector3dBase.floorDividedBy\tpygeodesy.vector3dBase.Vector3dBase-class.html#floorDividedBy\npygeodesy.vector3dBase.Vector3dBase.__floor__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__floor__\npygeodesy.cartesianBase.CartesianBase.isSpherical\tpygeodesy.cartesianBase.CartesianBase-class.html#isSpherical\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.cartesianBase.CartesianBase.__init__\tpygeodesy.cartesianBase.CartesianBase-class.html#__init__\npygeodesy.vector3dBase.Vector3dBase.__imod__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__imod__\npygeodesy.vector3dBase.Vector3dBase.fabs\tpygeodesy.vector3dBase.Vector3dBase-class.html#fabs\npygeodesy.vector3dBase.Vector3dBase._times\tpygeodesy.vector3dBase.Vector3dBase-class.html#_times\npygeodesy.vector3d.Vector3d.radii11\tpygeodesy.vector3d.Vector3d-class.html#radii11\npygeodesy.cartesianBase.CartesianBase.to2ab\tpygeodesy.cartesianBase.CartesianBase-class.html#to2ab\npygeodesy.vector3dBase.Vector3dBase.cross\tpygeodesy.vector3dBase.Vector3dBase-class.html#cross\npygeodesy.cartesianBase.CartesianBase.philamheight\tpygeodesy.cartesianBase.CartesianBase-class.html#philamheight\npygeodesy.vector3dBase.Vector3dBase.__pos__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__pos__\npygeodesy.vector3dBase.Vector3dBase.__abs__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__abs__\npygeodesy.cartesianBase.CartesianBase._datum\tpygeodesy.cartesianBase.CartesianBase-class.html#_datum\npygeodesy.named._NamedBase.__repr__\tpygeodesy.named._NamedBase-class.html#__repr__\npygeodesy.ecefLocals._EcefLocal._ltp\tpygeodesy.ecefLocals._EcefLocal-class.html#_ltp\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.cartesianBase.CartesianBase.destinationXyz\tpygeodesy.cartesianBase.CartesianBase-class.html#destinationXyz\npygeodesy.cartesianBase.CartesianBase._height\tpygeodesy.cartesianBase.CartesianBase-class.html#_height\npygeodesy.vector3dBase.Vector3dBase.__idiv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__idiv__\npygeodesy.vector3dBase.Vector3dBase._united\tpygeodesy.vector3dBase.Vector3dBase-class.html#_united\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.vector3dBase.Vector3dBase._fromll\tpygeodesy.vector3dBase.Vector3dBase-class.html#_fromll\npygeodesy.vector3dBase.Vector3dBase.__add__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__add__\npygeodesy.cartesianBase.CartesianBase.toVector\tpygeodesy.cartesianBase.CartesianBase-class.html#toVector\npygeodesy.cartesianBase.CartesianBase.convertDatum\tpygeodesy.cartesianBase.CartesianBase-class.html#convertDatum\npygeodesy.ecefLocals._EcefLocal.toLocal\tpygeodesy.ecefLocals._EcefLocal-class.html#toLocal\npygeodesy.vector3dBase.Vector3dBase.length2\tpygeodesy.vector3dBase.Vector3dBase-class.html#length2\npygeodesy.cartesianBase.CartesianBase.to2ll\tpygeodesy.cartesianBase.CartesianBase-class.html#to2ll\npygeodesy.vector3dBase.Vector3dBase.isconjugateTo\tpygeodesy.vector3dBase.Vector3dBase-class.html#isconjugateTo\npygeodesy.vector3dBase.Vector3dBase.__ipow__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__ipow__\npygeodesy.vector3dBase.Vector3dBase.__div__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__div__\npygeodesy.vector3dBase.Vector3dBase.__ceil__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__ceil__\npygeodesy.vector3dBase.Vector3dBase.__neg__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__neg__\npygeodesy.vector3dBase.Vector3dBase.y\tpygeodesy.vector3dBase.Vector3dBase-class.html#y\npygeodesy.vector3dBase.Vector3dBase.dot\tpygeodesy.vector3dBase.Vector3dBase-class.html#dot\npygeodesy.cartesianBase.RadiusThetaPhi3Tuple\tpygeodesy.cartesianBase.RadiusThetaPhi3Tuple-class.html\npygeodesy.cartesianBase.RadiusThetaPhi3Tuple.toCartesian\tpygeodesy.cartesianBase.RadiusThetaPhi3Tuple-class.html#toCartesian\npygeodesy.named._NamedTuple.toRepr\tpygeodesy.named._NamedTuple-class.html#toRepr\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._NamedTuple.toUnits\tpygeodesy.named._NamedTuple-class.html#toUnits\npygeodesy.named._NamedTuple._validate\tpygeodesy.named._NamedTuple-class.html#_validate\npygeodesy.named._NamedTuple.__str__\tpygeodesy.named._NamedTuple-class.html#__str__\npygeodesy.cartesianBase.RadiusThetaPhi3Tuple._toX3U\tpygeodesy.cartesianBase.RadiusThetaPhi3Tuple-class.html#_toX3U\npygeodesy.named._NamedTuple._validated\tpygeodesy.named._NamedTuple-class.html#_validated\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._NamedTuple._DOT_\tpygeodesy.named._NamedTuple-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.cartesianBase.RadiusThetaPhi3Tuple.toRadians\tpygeodesy.cartesianBase.RadiusThetaPhi3Tuple-class.html#toRadians\npygeodesy.named._NamedTuple.reUnit\tpygeodesy.named._NamedTuple-class.html#reUnit\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.cartesianBase.RadiusThetaPhi3Tuple._Names_\tpygeodesy.cartesianBase.RadiusThetaPhi3Tuple-class.html#_Names_\npygeodesy.named._NamedTuple.__setattr__\tpygeodesy.named._NamedTuple-class.html#__setattr__\npygeodesy.named._NamedTuple.__new__\tpygeodesy.named._NamedTuple-class.html#__new__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.cartesianBase.RadiusThetaPhi3Tuple._toU\tpygeodesy.cartesianBase.RadiusThetaPhi3Tuple-class.html#_toU\npygeodesy.named._NamedTuple.__getattr__\tpygeodesy.named._NamedTuple-class.html#__getattr__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._NamedTuple._xtend\tpygeodesy.named._NamedTuple-class.html#_xtend\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._NamedTuple.units\tpygeodesy.named._NamedTuple-class.html#units\npygeodesy.cartesianBase.RadiusThetaPhi3Tuple.toDegrees\tpygeodesy.cartesianBase.RadiusThetaPhi3Tuple-class.html#toDegrees\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedTuple.toStr\tpygeodesy.named._NamedTuple-class.html#toStr\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedTuple.dup\tpygeodesy.named._NamedTuple-class.html#dup\npygeodesy.named._NamedTuple.iterunits\tpygeodesy.named._NamedTuple-class.html#iterunits\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._NamedTuple.iteritems\tpygeodesy.named._NamedTuple-class.html#iteritems\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._NamedTuple.items\tpygeodesy.named._NamedTuple-class.html#items\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedTuple.__delattr__\tpygeodesy.named._NamedTuple-class.html#__delattr__\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._NamedTuple.__repr__\tpygeodesy.named._NamedTuple-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._NamedTuple.__hash__\tpygeodesy.named._NamedTuple-class.html#__hash__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.cartesianBase.RadiusThetaPhi3Tuple._Units_\tpygeodesy.cartesianBase.RadiusThetaPhi3Tuple-class.html#_Units_\npygeodesy.clipy.ClipCS4Tuple\tpygeodesy.clipy.ClipCS4Tuple-class.html\npygeodesy.named._NamedTuple.toRepr\tpygeodesy.named._NamedTuple-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._NamedTuple.toUnits\tpygeodesy.named._NamedTuple-class.html#toUnits\npygeodesy.named._NamedTuple._validate\tpygeodesy.named._NamedTuple-class.html#_validate\npygeodesy.named._NamedTuple.__str__\tpygeodesy.named._NamedTuple-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._NamedTuple._DOT_\tpygeodesy.named._NamedTuple-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._NamedTuple.reUnit\tpygeodesy.named._NamedTuple-class.html#reUnit\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.clipy.ClipCS4Tuple._Names_\tpygeodesy.clipy.ClipCS4Tuple-class.html#_Names_\npygeodesy.named._NamedTuple.__setattr__\tpygeodesy.named._NamedTuple-class.html#__setattr__\npygeodesy.named._NamedTuple.__new__\tpygeodesy.named._NamedTuple-class.html#__new__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._NamedTuple._validated\tpygeodesy.named._NamedTuple-class.html#_validated\npygeodesy.named._NamedTuple.__getattr__\tpygeodesy.named._NamedTuple-class.html#__getattr__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._NamedTuple._xtend\tpygeodesy.named._NamedTuple-class.html#_xtend\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._NamedTuple.dup\tpygeodesy.named._NamedTuple-class.html#dup\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedTuple.toStr\tpygeodesy.named._NamedTuple-class.html#toStr\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedTuple.units\tpygeodesy.named._NamedTuple-class.html#units\npygeodesy.named._NamedTuple.iterunits\tpygeodesy.named._NamedTuple-class.html#iterunits\npygeodesy.named._NamedTuple.iteritems\tpygeodesy.named._NamedTuple-class.html#iteritems\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._NamedTuple.items\tpygeodesy.named._NamedTuple-class.html#items\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedTuple.__delattr__\tpygeodesy.named._NamedTuple-class.html#__delattr__\npygeodesy.named._NamedTuple.__repr__\tpygeodesy.named._NamedTuple-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._NamedTuple.__hash__\tpygeodesy.named._NamedTuple-class.html#__hash__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.clipy.ClipCS4Tuple._Units_\tpygeodesy.clipy.ClipCS4Tuple-class.html#_Units_\npygeodesy.clipy.ClipFHP4Tuple\tpygeodesy.clipy.ClipFHP4Tuple-class.html\npygeodesy.named._NamedTuple.toRepr\tpygeodesy.named._NamedTuple-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._NamedTuple.toUnits\tpygeodesy.named._NamedTuple-class.html#toUnits\npygeodesy.named._NamedTuple._validate\tpygeodesy.named._NamedTuple-class.html#_validate\npygeodesy.named._NamedTuple.__str__\tpygeodesy.named._NamedTuple-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._NamedTuple._DOT_\tpygeodesy.named._NamedTuple-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._NamedTuple.reUnit\tpygeodesy.named._NamedTuple-class.html#reUnit\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.clipy.ClipFHP4Tuple._Names_\tpygeodesy.clipy.ClipFHP4Tuple-class.html#_Names_\npygeodesy.clipy.ClipFHP4Tuple.isintersection\tpygeodesy.clipy.ClipFHP4Tuple-class.html#isintersection\npygeodesy.named._NamedTuple.__setattr__\tpygeodesy.named._NamedTuple-class.html#__setattr__\npygeodesy.named._NamedTuple.__new__\tpygeodesy.named._NamedTuple-class.html#__new__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._NamedTuple._validated\tpygeodesy.named._NamedTuple-class.html#_validated\npygeodesy.named._NamedTuple.__getattr__\tpygeodesy.named._NamedTuple-class.html#__getattr__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._NamedTuple._xtend\tpygeodesy.named._NamedTuple-class.html#_xtend\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._NamedTuple.dup\tpygeodesy.named._NamedTuple-class.html#dup\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedTuple.toStr\tpygeodesy.named._NamedTuple-class.html#toStr\npygeodesy.clipy.ClipFHP4Tuple.ispoint\tpygeodesy.clipy.ClipFHP4Tuple-class.html#ispoint\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedTuple.units\tpygeodesy.named._NamedTuple-class.html#units\npygeodesy.named._NamedTuple.iterunits\tpygeodesy.named._NamedTuple-class.html#iterunits\npygeodesy.named._NamedTuple.iteritems\tpygeodesy.named._NamedTuple-class.html#iteritems\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._NamedTuple.items\tpygeodesy.named._NamedTuple-class.html#items\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedTuple.__delattr__\tpygeodesy.named._NamedTuple-class.html#__delattr__\npygeodesy.named._NamedTuple.__repr__\tpygeodesy.named._NamedTuple-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._NamedTuple.__hash__\tpygeodesy.named._NamedTuple-class.html#__hash__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.clipy.ClipFHP4Tuple._Units_\tpygeodesy.clipy.ClipFHP4Tuple-class.html#_Units_\npygeodesy.clipy.ClipGH4Tuple\tpygeodesy.clipy.ClipGH4Tuple-class.html\npygeodesy.named._NamedTuple.toRepr\tpygeodesy.named._NamedTuple-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._NamedTuple.toUnits\tpygeodesy.named._NamedTuple-class.html#toUnits\npygeodesy.named._NamedTuple._validate\tpygeodesy.named._NamedTuple-class.html#_validate\npygeodesy.named._NamedTuple.__str__\tpygeodesy.named._NamedTuple-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._NamedTuple._DOT_\tpygeodesy.named._NamedTuple-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._NamedTuple.reUnit\tpygeodesy.named._NamedTuple-class.html#reUnit\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.clipy.ClipGH4Tuple._Names_\tpygeodesy.clipy.ClipGH4Tuple-class.html#_Names_\npygeodesy.clipy.ClipFHP4Tuple.isintersection\tpygeodesy.clipy.ClipFHP4Tuple-class.html#isintersection\npygeodesy.named._NamedTuple.__setattr__\tpygeodesy.named._NamedTuple-class.html#__setattr__\npygeodesy.named._NamedTuple.__new__\tpygeodesy.named._NamedTuple-class.html#__new__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._NamedTuple._validated\tpygeodesy.named._NamedTuple-class.html#_validated\npygeodesy.named._NamedTuple.__getattr__\tpygeodesy.named._NamedTuple-class.html#__getattr__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._NamedTuple._xtend\tpygeodesy.named._NamedTuple-class.html#_xtend\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._NamedTuple.dup\tpygeodesy.named._NamedTuple-class.html#dup\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedTuple.toStr\tpygeodesy.named._NamedTuple-class.html#toStr\npygeodesy.clipy.ClipFHP4Tuple.ispoint\tpygeodesy.clipy.ClipFHP4Tuple-class.html#ispoint\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedTuple.units\tpygeodesy.named._NamedTuple-class.html#units\npygeodesy.named._NamedTuple.iterunits\tpygeodesy.named._NamedTuple-class.html#iterunits\npygeodesy.named._NamedTuple.iteritems\tpygeodesy.named._NamedTuple-class.html#iteritems\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._NamedTuple.items\tpygeodesy.named._NamedTuple-class.html#items\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedTuple.__delattr__\tpygeodesy.named._NamedTuple-class.html#__delattr__\npygeodesy.named._NamedTuple.__repr__\tpygeodesy.named._NamedTuple-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._NamedTuple.__hash__\tpygeodesy.named._NamedTuple-class.html#__hash__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.clipy.ClipGH4Tuple._Units_\tpygeodesy.clipy.ClipGH4Tuple-class.html#_Units_\npygeodesy.clipy.ClipLB6Tuple\tpygeodesy.clipy.ClipLB6Tuple-class.html\npygeodesy.named._NamedTuple.toRepr\tpygeodesy.named._NamedTuple-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._NamedTuple.toUnits\tpygeodesy.named._NamedTuple-class.html#toUnits\npygeodesy.named._NamedTuple._validate\tpygeodesy.named._NamedTuple-class.html#_validate\npygeodesy.named._NamedTuple.__str__\tpygeodesy.named._NamedTuple-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._NamedTuple._DOT_\tpygeodesy.named._NamedTuple-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._NamedTuple.reUnit\tpygeodesy.named._NamedTuple-class.html#reUnit\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.clipy.ClipLB6Tuple._Names_\tpygeodesy.clipy.ClipLB6Tuple-class.html#_Names_\npygeodesy.named._NamedTuple.__setattr__\tpygeodesy.named._NamedTuple-class.html#__setattr__\npygeodesy.named._NamedTuple.__new__\tpygeodesy.named._NamedTuple-class.html#__new__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._NamedTuple._validated\tpygeodesy.named._NamedTuple-class.html#_validated\npygeodesy.named._NamedTuple.__getattr__\tpygeodesy.named._NamedTuple-class.html#__getattr__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._NamedTuple._xtend\tpygeodesy.named._NamedTuple-class.html#_xtend\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._NamedTuple.dup\tpygeodesy.named._NamedTuple-class.html#dup\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedTuple.toStr\tpygeodesy.named._NamedTuple-class.html#toStr\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedTuple.units\tpygeodesy.named._NamedTuple-class.html#units\npygeodesy.named._NamedTuple.iterunits\tpygeodesy.named._NamedTuple-class.html#iterunits\npygeodesy.named._NamedTuple.iteritems\tpygeodesy.named._NamedTuple-class.html#iteritems\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._NamedTuple.items\tpygeodesy.named._NamedTuple-class.html#items\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedTuple.__delattr__\tpygeodesy.named._NamedTuple-class.html#__delattr__\npygeodesy.named._NamedTuple.__repr__\tpygeodesy.named._NamedTuple-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._NamedTuple.__hash__\tpygeodesy.named._NamedTuple-class.html#__hash__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.clipy.ClipLB6Tuple._Units_\tpygeodesy.clipy.ClipLB6Tuple-class.html#_Units_\npygeodesy.clipy.ClipSH3Tuple\tpygeodesy.clipy.ClipSH3Tuple-class.html\npygeodesy.named._NamedTuple.toRepr\tpygeodesy.named._NamedTuple-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._NamedTuple.toUnits\tpygeodesy.named._NamedTuple-class.html#toUnits\npygeodesy.named._NamedTuple._validate\tpygeodesy.named._NamedTuple-class.html#_validate\npygeodesy.named._NamedTuple.__str__\tpygeodesy.named._NamedTuple-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._NamedTuple._DOT_\tpygeodesy.named._NamedTuple-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._NamedTuple.reUnit\tpygeodesy.named._NamedTuple-class.html#reUnit\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.clipy.ClipSH3Tuple._Names_\tpygeodesy.clipy.ClipSH3Tuple-class.html#_Names_\npygeodesy.named._NamedTuple.__setattr__\tpygeodesy.named._NamedTuple-class.html#__setattr__\npygeodesy.named._NamedTuple.__new__\tpygeodesy.named._NamedTuple-class.html#__new__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._NamedTuple._validated\tpygeodesy.named._NamedTuple-class.html#_validated\npygeodesy.named._NamedTuple.__getattr__\tpygeodesy.named._NamedTuple-class.html#__getattr__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._NamedTuple._xtend\tpygeodesy.named._NamedTuple-class.html#_xtend\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._NamedTuple.dup\tpygeodesy.named._NamedTuple-class.html#dup\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedTuple.toStr\tpygeodesy.named._NamedTuple-class.html#toStr\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedTuple.units\tpygeodesy.named._NamedTuple-class.html#units\npygeodesy.named._NamedTuple.iterunits\tpygeodesy.named._NamedTuple-class.html#iterunits\npygeodesy.named._NamedTuple.iteritems\tpygeodesy.named._NamedTuple-class.html#iteritems\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._NamedTuple.items\tpygeodesy.named._NamedTuple-class.html#items\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedTuple.__delattr__\tpygeodesy.named._NamedTuple-class.html#__delattr__\npygeodesy.named._NamedTuple.__repr__\tpygeodesy.named._NamedTuple-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._NamedTuple.__hash__\tpygeodesy.named._NamedTuple-class.html#__hash__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.clipy.ClipSH3Tuple._Units_\tpygeodesy.clipy.ClipSH3Tuple-class.html#_Units_\npygeodesy.css.CSSError\tpygeodesy.css.CSSError-class.html\npygeodesy.css.CassiniSoldner\tpygeodesy.css.CassiniSoldner-class.html\npygeodesy.css.CassiniSoldner.toRepr\tpygeodesy.css.CassiniSoldner-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.css.CassiniSoldner.isExact\tpygeodesy.css.CassiniSoldner-class.html#isExact\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedBase.__str__\tpygeodesy.named._NamedBase-class.html#__str__\npygeodesy.css.CassiniSoldner.datum\tpygeodesy.css.CassiniSoldner-class.html#datum\npygeodesy.css.CassiniSoldner.geodesic\tpygeodesy.css.CassiniSoldner-class.html#geodesic\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.css.CassiniSoldner.toLatLon\tpygeodesy.css.CassiniSoldner-class.html#toLatLon\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.css.CassiniSoldner.equatoradius\tpygeodesy.css.CassiniSoldner-class.html#equatoradius\npygeodesy.css.CassiniSoldner._sb0\tpygeodesy.css.CassiniSoldner-class.html#_sb0\npygeodesy.css.CassiniSoldner.reverse4\tpygeodesy.css.CassiniSoldner-class.html#reverse4\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.css.CassiniSoldner.__init__\tpygeodesy.css.CassiniSoldner-class.html#__init__\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.css.CassiniSoldner.flattening\tpygeodesy.css.CassiniSoldner-class.html#flattening\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.css.CassiniSoldner.forward\tpygeodesy.css.CassiniSoldner-class.html#forward\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.css.CassiniSoldner._cb0\tpygeodesy.css.CassiniSoldner-class.html#_cb0\npygeodesy.css.CassiniSoldner.forward4\tpygeodesy.css.CassiniSoldner-class.html#forward4\npygeodesy.css.CassiniSoldner.forward6\tpygeodesy.css.CassiniSoldner-class.html#forward6\npygeodesy.css.CassiniSoldner.latlon0\tpygeodesy.css.CassiniSoldner-class.html#latlon0\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.css.CassiniSoldner.toStr\tpygeodesy.css.CassiniSoldner-class.html#toStr\npygeodesy.css.CassiniSoldner._datum\tpygeodesy.css.CassiniSoldner-class.html#_datum\npygeodesy.css.CassiniSoldner._latlon0\tpygeodesy.css.CassiniSoldner-class.html#_latlon0\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.css.CassiniSoldner._datumatch\tpygeodesy.css.CassiniSoldner-class.html#_datumatch\npygeodesy.css.CassiniSoldner.a\tpygeodesy.css.CassiniSoldner-class.html#a\npygeodesy.named._NamedBase.others\tpygeodesy.named._NamedBase-class.html#others\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.css.CassiniSoldner.majoradius\tpygeodesy.css.CassiniSoldner-class.html#majoradius\npygeodesy.css.CassiniSoldner.lat0\tpygeodesy.css.CassiniSoldner-class.html#lat0\npygeodesy.css.CassiniSoldner.reset\tpygeodesy.css.CassiniSoldner-class.html#reset\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.css.CassiniSoldner.reverse\tpygeodesy.css.CassiniSoldner-class.html#reverse\npygeodesy.css.CassiniSoldner.f\tpygeodesy.css.CassiniSoldner-class.html#f\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.css.CassiniSoldner._geodesic\tpygeodesy.css.CassiniSoldner-class.html#_geodesic\npygeodesy.named._NamedBase.__repr__\tpygeodesy.named._NamedBase-class.html#__repr__\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.css.CassiniSoldner.lon0\tpygeodesy.css.CassiniSoldner-class.html#lon0\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.css.CassiniSoldner._meridian\tpygeodesy.css.CassiniSoldner-class.html#_meridian\npygeodesy.css.Css\tpygeodesy.css.Css-class.html\npygeodesy.css.Css.toRepr\tpygeodesy.css.Css-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedBase.__str__\tpygeodesy.named._NamedBase-class.html#__str__\npygeodesy.css.Css._northing\tpygeodesy.css.Css-class.html#_northing\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.css.Css.height\tpygeodesy.css.Css-class.html#height\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.css.Css.toLatLon\tpygeodesy.css.Css-class.html#toLatLon\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.css.Css.easting\tpygeodesy.css.Css-class.html#easting\npygeodesy.css.Css.reverse4\tpygeodesy.css.Css-class.html#reverse4\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.css.Css.__init__\tpygeodesy.css.Css-class.html#__init__\npygeodesy.css.Css.northing\tpygeodesy.css.Css-class.html#northing\npygeodesy.css.Css.latlon\tpygeodesy.css.Css-class.html#latlon\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.css.Css._cs0\tpygeodesy.css.Css-class.html#_cs0\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.css.Css._easting\tpygeodesy.css.Css-class.html#_easting\npygeodesy.css.Css._height\tpygeodesy.css.Css-class.html#_height\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.css.Css.rk\tpygeodesy.css.Css-class.html#rk\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.css.Css.toStr\tpygeodesy.css.Css-class.html#toStr\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedBase.others\tpygeodesy.named._NamedBase-class.html#others\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.css.Css.azi\tpygeodesy.css.Css-class.html#azi\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.css.Css.reciprocal\tpygeodesy.css.Css-class.html#reciprocal\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.css.Css._CS0\tpygeodesy.css.Css-class.html#_CS0\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedBase.__repr__\tpygeodesy.named._NamedBase-class.html#__repr__\npygeodesy.css.Css.azimuth\tpygeodesy.css.Css-class.html#azimuth\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.css.Css.cs0\tpygeodesy.css.Css-class.html#cs0\npygeodesy.css.EasNorAziRk4Tuple\tpygeodesy.css.EasNorAziRk4Tuple-class.html\npygeodesy.named._NamedTuple.toRepr\tpygeodesy.named._NamedTuple-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._NamedTuple.toUnits\tpygeodesy.named._NamedTuple-class.html#toUnits\npygeodesy.named._NamedTuple._validate\tpygeodesy.named._NamedTuple-class.html#_validate\npygeodesy.named._NamedTuple.__str__\tpygeodesy.named._NamedTuple-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._NamedTuple._DOT_\tpygeodesy.named._NamedTuple-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._NamedTuple.reUnit\tpygeodesy.named._NamedTuple-class.html#reUnit\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.css.EasNorAziRk4Tuple._Names_\tpygeodesy.css.EasNorAziRk4Tuple-class.html#_Names_\npygeodesy.named._NamedTuple.__setattr__\tpygeodesy.named._NamedTuple-class.html#__setattr__\npygeodesy.named._NamedTuple.__new__\tpygeodesy.named._NamedTuple-class.html#__new__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._NamedTuple._validated\tpygeodesy.named._NamedTuple-class.html#_validated\npygeodesy.named._NamedTuple.__getattr__\tpygeodesy.named._NamedTuple-class.html#__getattr__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._NamedTuple._xtend\tpygeodesy.named._NamedTuple-class.html#_xtend\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._NamedTuple.dup\tpygeodesy.named._NamedTuple-class.html#dup\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedTuple.toStr\tpygeodesy.named._NamedTuple-class.html#toStr\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedTuple.units\tpygeodesy.named._NamedTuple-class.html#units\npygeodesy.named._NamedTuple.iterunits\tpygeodesy.named._NamedTuple-class.html#iterunits\npygeodesy.named._NamedTuple.iteritems\tpygeodesy.named._NamedTuple-class.html#iteritems\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._NamedTuple.items\tpygeodesy.named._NamedTuple-class.html#items\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedTuple.__delattr__\tpygeodesy.named._NamedTuple-class.html#__delattr__\npygeodesy.named._NamedTuple.__repr__\tpygeodesy.named._NamedTuple-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._NamedTuple.__hash__\tpygeodesy.named._NamedTuple-class.html#__hash__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.css.EasNorAziRk4Tuple._Units_\tpygeodesy.css.EasNorAziRk4Tuple-class.html#_Units_\npygeodesy.css.EasNorAziRkEqu6Tuple\tpygeodesy.css.EasNorAziRkEqu6Tuple-class.html\npygeodesy.named._NamedTuple.toRepr\tpygeodesy.named._NamedTuple-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._NamedTuple.toUnits\tpygeodesy.named._NamedTuple-class.html#toUnits\npygeodesy.named._NamedTuple._validate\tpygeodesy.named._NamedTuple-class.html#_validate\npygeodesy.named._NamedTuple.__str__\tpygeodesy.named._NamedTuple-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._NamedTuple._DOT_\tpygeodesy.named._NamedTuple-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._NamedTuple.reUnit\tpygeodesy.named._NamedTuple-class.html#reUnit\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.css.EasNorAziRkEqu6Tuple._Names_\tpygeodesy.css.EasNorAziRkEqu6Tuple-class.html#_Names_\npygeodesy.named._NamedTuple.__setattr__\tpygeodesy.named._NamedTuple-class.html#__setattr__\npygeodesy.named._NamedTuple.__new__\tpygeodesy.named._NamedTuple-class.html#__new__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._NamedTuple._validated\tpygeodesy.named._NamedTuple-class.html#_validated\npygeodesy.named._NamedTuple.__getattr__\tpygeodesy.named._NamedTuple-class.html#__getattr__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._NamedTuple._xtend\tpygeodesy.named._NamedTuple-class.html#_xtend\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._NamedTuple.dup\tpygeodesy.named._NamedTuple-class.html#dup\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedTuple.toStr\tpygeodesy.named._NamedTuple-class.html#toStr\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedTuple.units\tpygeodesy.named._NamedTuple-class.html#units\npygeodesy.named._NamedTuple.iterunits\tpygeodesy.named._NamedTuple-class.html#iterunits\npygeodesy.named._NamedTuple.iteritems\tpygeodesy.named._NamedTuple-class.html#iteritems\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._NamedTuple.items\tpygeodesy.named._NamedTuple-class.html#items\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedTuple.__delattr__\tpygeodesy.named._NamedTuple-class.html#__delattr__\npygeodesy.named._NamedTuple.__repr__\tpygeodesy.named._NamedTuple-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._NamedTuple.__hash__\tpygeodesy.named._NamedTuple-class.html#__hash__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.css.EasNorAziRkEqu6Tuple._Units_\tpygeodesy.css.EasNorAziRkEqu6Tuple-class.html#_Units_\npygeodesy.css.LatLonAziRk4Tuple\tpygeodesy.css.LatLonAziRk4Tuple-class.html\npygeodesy.named._NamedTuple.toRepr\tpygeodesy.named._NamedTuple-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._NamedTuple.toUnits\tpygeodesy.named._NamedTuple-class.html#toUnits\npygeodesy.named._NamedTuple._validate\tpygeodesy.named._NamedTuple-class.html#_validate\npygeodesy.named._NamedTuple.__str__\tpygeodesy.named._NamedTuple-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._NamedTuple._DOT_\tpygeodesy.named._NamedTuple-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._NamedTuple.reUnit\tpygeodesy.named._NamedTuple-class.html#reUnit\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.css.LatLonAziRk4Tuple._Names_\tpygeodesy.css.LatLonAziRk4Tuple-class.html#_Names_\npygeodesy.named._NamedTuple.__setattr__\tpygeodesy.named._NamedTuple-class.html#__setattr__\npygeodesy.named._NamedTuple.__new__\tpygeodesy.named._NamedTuple-class.html#__new__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._NamedTuple._validated\tpygeodesy.named._NamedTuple-class.html#_validated\npygeodesy.named._NamedTuple.__getattr__\tpygeodesy.named._NamedTuple-class.html#__getattr__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._NamedTuple._xtend\tpygeodesy.named._NamedTuple-class.html#_xtend\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._NamedTuple.dup\tpygeodesy.named._NamedTuple-class.html#dup\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedTuple.toStr\tpygeodesy.named._NamedTuple-class.html#toStr\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedTuple.units\tpygeodesy.named._NamedTuple-class.html#units\npygeodesy.named._NamedTuple.iterunits\tpygeodesy.named._NamedTuple-class.html#iterunits\npygeodesy.named._NamedTuple.iteritems\tpygeodesy.named._NamedTuple-class.html#iteritems\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._NamedTuple.items\tpygeodesy.named._NamedTuple-class.html#items\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedTuple.__delattr__\tpygeodesy.named._NamedTuple-class.html#__delattr__\npygeodesy.named._NamedTuple.__repr__\tpygeodesy.named._NamedTuple-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._NamedTuple.__hash__\tpygeodesy.named._NamedTuple-class.html#__hash__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.css.LatLonAziRk4Tuple._Units_\tpygeodesy.css.LatLonAziRk4Tuple-class.html#_Units_\npygeodesy.datums.Datum\tpygeodesy.datums.Datum-class.html\npygeodesy.named._NamedBase.toRepr\tpygeodesy.named._NamedBase-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._NamedBase.__str__\tpygeodesy.named._NamedBase-class.html#__str__\npygeodesy.named._NamedBase.others\tpygeodesy.named._NamedBase-class.html#others\npygeodesy.datums.Datum.isEllipsoidal\tpygeodesy.datums.Datum-class.html#isEllipsoidal\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.datums.Datum.isSpherical\tpygeodesy.datums.Datum-class.html#isSpherical\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.datums.Datum.__init__\tpygeodesy.datums.Datum-class.html#__init__\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.datums.Datum.ellipsoid\tpygeodesy.datums.Datum-class.html#ellipsoid\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.datums.Datum._ellipsoid\tpygeodesy.datums.Datum-class.html#_ellipsoid\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.datums.Datum.transform\tpygeodesy.datums.Datum-class.html#transform\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.datums.Datum.toStr\tpygeodesy.datums.Datum-class.html#toStr\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedEnumItem._register\tpygeodesy.named._NamedEnumItem-class.html#_register\npygeodesy.datums.Datum.exactTM\tpygeodesy.datums.Datum-class.html#exactTM\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.datums.Datum.__eq__\tpygeodesy.datums.Datum-class.html#__eq__\npygeodesy.named._NamedEnumItem._enum\tpygeodesy.named._NamedEnumItem-class.html#_enum\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.datums.Datum.ecef\tpygeodesy.datums.Datum-class.html#ecef\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._NamedEnumItem.name\tpygeodesy.named._NamedEnumItem-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._NamedEnumItem.unregister\tpygeodesy.named._NamedEnumItem-class.html#unregister\npygeodesy.datums.Datum._transform\tpygeodesy.datums.Datum-class.html#_transform\npygeodesy.datums.Datum.isProlate\tpygeodesy.datums.Datum-class.html#isProlate\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.datums.Datum.isOblate\tpygeodesy.datums.Datum-class.html#isOblate\npygeodesy.named._NamedBase.__repr__\tpygeodesy.named._NamedBase-class.html#__repr__\npygeodesy.datums.Datum._hash\tpygeodesy.datums.Datum-class.html#_hash\npygeodesy.datums.Datum.__hash__\tpygeodesy.datums.Datum-class.html#__hash__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.datums.Datum.__matmul__\tpygeodesy.datums.Datum-class.html#__matmul__\npygeodesy.datums.Transform\tpygeodesy.datums.Transform-class.html\npygeodesy.named._NamedBase.toRepr\tpygeodesy.named._NamedBase-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedBase.__str__\tpygeodesy.named._NamedBase-class.html#__str__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.datums.Transform.transform\tpygeodesy.datums.Transform-class.html#transform\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.datums.Transform.__init__\tpygeodesy.datums.Transform-class.html#__init__\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.datums.Transform.inverse\tpygeodesy.datums.Transform-class.html#inverse\npygeodesy.datums.Transform.tz\tpygeodesy.datums.Transform-class.html#tz\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.datums.Transform.tx\tpygeodesy.datums.Transform-class.html#tx\npygeodesy.datums.Transform.ty\tpygeodesy.datums.Transform-class.html#ty\npygeodesy.datums.Transform.s1\tpygeodesy.datums.Transform-class.html#s1\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.datums.Transform.rx\tpygeodesy.datums.Transform-class.html#rx\npygeodesy.datums.Transform.ry\tpygeodesy.datums.Transform-class.html#ry\npygeodesy.datums.Transform.rz\tpygeodesy.datums.Transform-class.html#rz\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.datums.Transform.isunity\tpygeodesy.datums.Transform-class.html#isunity\npygeodesy.datums.Transform._rps2\tpygeodesy.datums.Transform-class.html#_rps2\npygeodesy.named._NamedBase.__repr__\tpygeodesy.named._NamedBase-class.html#__repr__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.datums.Transform.toStr\tpygeodesy.datums.Transform-class.html#toStr\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.datums.Transform._s_s1\tpygeodesy.datums.Transform-class.html#_s_s1\npygeodesy.named._NamedEnumItem._register\tpygeodesy.named._NamedEnumItem-class.html#_register\npygeodesy.datums.Transform.__iter__\tpygeodesy.datums.Transform-class.html#__iter__\npygeodesy.named._NamedBase.others\tpygeodesy.named._NamedBase-class.html#others\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.datums.Transform.__eq__\tpygeodesy.datums.Transform-class.html#__eq__\npygeodesy.named._NamedEnumItem._enum\tpygeodesy.named._NamedEnumItem-class.html#_enum\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.datums.Transform.sz\tpygeodesy.datums.Transform-class.html#sz\npygeodesy.datums.Transform.sy\tpygeodesy.datums.Transform-class.html#sy\npygeodesy.datums.Transform.sx\tpygeodesy.datums.Transform-class.html#sx\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._NamedEnumItem.name\tpygeodesy.named._NamedEnumItem-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._NamedEnumItem.unregister\tpygeodesy.named._NamedEnumItem-class.html#unregister\npygeodesy.datums.Transform.items\tpygeodesy.datums.Transform-class.html#items\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.datums.Transform.s\tpygeodesy.datums.Transform-class.html#s\npygeodesy.datums.Transform.__neg__\tpygeodesy.datums.Transform-class.html#__neg__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.datums.Transform.__hash__\tpygeodesy.datums.Transform-class.html#__hash__\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.datums.Transform.__matmul__\tpygeodesy.datums.Transform-class.html#__matmul__\npygeodesy.deprecated.bases.LatLonHeightBase\tpygeodesy.deprecated.bases.LatLonHeightBase-class.html\npygeodesy.latlonBase.LatLonBase.toCartesian\tpygeodesy.latlonBase.LatLonBase-class.html#toCartesian\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.latlonBase.LatLonBase.__str__\tpygeodesy.latlonBase.LatLonBase-class.html#__str__\npygeodesy.latlonBase.LatLonBase.datum\tpygeodesy.latlonBase.LatLonBase-class.html#datum\npygeodesy.latlonBase.LatLonBase.philam2\tpygeodesy.latlonBase.LatLonBase-class.html#philam2\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.latlonBase.LatLonBase.to3llh\tpygeodesy.latlonBase.LatLonBase-class.html#to3llh\npygeodesy.latlonBase.LatLonBase.isnormal\tpygeodesy.latlonBase.LatLonBase-class.html#isnormal\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.latlonBase.LatLonBase.flatLocalTo\tpygeodesy.latlonBase.LatLonBase-class.html#flatLocalTo\npygeodesy.latlonBase.LatLonBase._N_vector\tpygeodesy.latlonBase.LatLonBase-class.html#_N_vector\npygeodesy.latlonBase.LatLonBase._distanceTo\tpygeodesy.latlonBase.LatLonBase-class.html#_distanceTo\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.latlonBase.LatLonBase.isequalTo3\tpygeodesy.latlonBase.LatLonBase-class.html#isequalTo3\npygeodesy.latlonBase.LatLonBase.nearestTo\tpygeodesy.latlonBase.LatLonBase-class.html#nearestTo\npygeodesy.ecefLocals._EcefLocal.toEnu\tpygeodesy.ecefLocals._EcefLocal-class.html#toEnu\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.latlonBase.LatLonBase.isantipode\tpygeodesy.latlonBase.LatLonBase-class.html#isantipode\npygeodesy.latlonBase.LatLonBase._ecef9\tpygeodesy.latlonBase.LatLonBase-class.html#_ecef9\npygeodesy.latlonBase.LatLonBase._rhumb3dict\tpygeodesy.latlonBase.LatLonBase-class.html#_rhumb3dict\npygeodesy.latlonBase.LatLonBase.to2ab\tpygeodesy.latlonBase.LatLonBase-class.html#to2ab\npygeodesy.latlonBase.LatLonBase.toStr\tpygeodesy.latlonBase.LatLonBase-class.html#toStr\npygeodesy.latlonBase.LatLonBase._datum\tpygeodesy.latlonBase.LatLonBase-class.html#_datum\npygeodesy.latlonBase.LatLonBase.PointsIter\tpygeodesy.latlonBase.LatLonBase-class.html#PointsIter\npygeodesy.ecefLocals._EcefLocal.toXyz\tpygeodesy.ecefLocals._EcefLocal-class.html#toXyz\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.latlonBase.LatLonBase.antipode\tpygeodesy.latlonBase.LatLonBase-class.html#antipode\npygeodesy.latlonBase.LatLonBase._n_xyz3\tpygeodesy.latlonBase.LatLonBase-class.html#_n_xyz3\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.latlonBase.LatLonBase.toEcef\tpygeodesy.latlonBase.LatLonBase-class.html#toEcef\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.latlonBase.LatLonBase.thomasTo\tpygeodesy.latlonBase.LatLonBase-class.html#thomasTo\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.latlonBase.LatLonBase._Ecef_forward\tpygeodesy.latlonBase.LatLonBase-class.html#_Ecef_forward\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._NamedBase.toRepr\tpygeodesy.named._NamedBase-class.html#toRepr\npygeodesy.latlonBase.LatLonBase.isantipodeTo\tpygeodesy.latlonBase.LatLonBase-class.html#isantipodeTo\npygeodesy.ecefLocals._EcefLocal._ltp\tpygeodesy.ecefLocals._EcefLocal-class.html#_ltp\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.latlonBase.LatLonBase.toDatum\tpygeodesy.latlonBase.LatLonBase-class.html#toDatum\npygeodesy.ecefLocals._EcefLocal.toLtp\tpygeodesy.ecefLocals._EcefLocal-class.html#toLtp\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.latlonBase.LatLonBase.clipid\tpygeodesy.latlonBase.LatLonBase-class.html#clipid\npygeodesy.latlonBase.LatLonBase.ellipsoidalLatLon\tpygeodesy.latlonBase.LatLonBase-class.html#ellipsoidalLatLon\npygeodesy.latlonBase.LatLonBase.latlon\tpygeodesy.latlonBase.LatLonBase-class.html#latlon\npygeodesy.latlonBase.LatLonBase.circum4_\tpygeodesy.latlonBase.LatLonBase-class.html#circum4_\npygeodesy.latlonBase.LatLonBase.haversineTo\tpygeodesy.latlonBase.LatLonBase-class.html#haversineTo\npygeodesy.latlonBase.LatLonBase.normal\tpygeodesy.latlonBase.LatLonBase-class.html#normal\npygeodesy.latlonBase.LatLonBase.philam\tpygeodesy.latlonBase.LatLonBase-class.html#philam\npygeodesy.ecefLocals._EcefLocal.toAer\tpygeodesy.ecefLocals._EcefLocal-class.html#toAer\npygeodesy.latlonBase.LatLonBase.chordTo\tpygeodesy.latlonBase.LatLonBase-class.html#chordTo\npygeodesy.latlonBase.LatLonBase.__ne__\tpygeodesy.latlonBase.LatLonBase-class.html#__ne__\npygeodesy.latlonBase.LatLonBase.toWm\tpygeodesy.latlonBase.LatLonBase-class.html#toWm\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.latlonBase.LatLonBase.sphericalLatLon\tpygeodesy.latlonBase.LatLonBase-class.html#sphericalLatLon\npygeodesy.latlonBase.LatLonBase.equals\tpygeodesy.latlonBase.LatLonBase-class.html#equals\npygeodesy.latlonBase.LatLonBase.circin6\tpygeodesy.latlonBase.LatLonBase-class.html#circin6\npygeodesy.latlonBase.LatLonBase.nearestOn6\tpygeodesy.latlonBase.LatLonBase-class.html#nearestOn6\npygeodesy.latlonBase.LatLonBase.rhumbIntersecant2\tpygeodesy.latlonBase.LatLonBase-class.html#rhumbIntersecant2\npygeodesy.latlonBase.LatLonBase.cosineLawTo\tpygeodesy.latlonBase.LatLonBase-class.html#cosineLawTo\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.latlonBase.LatLonBase.toVector3d\tpygeodesy.latlonBase.LatLonBase-class.html#toVector3d\npygeodesy.latlonBase.LatLonBase._lat\tpygeodesy.latlonBase.LatLonBase-class.html#_lat\npygeodesy.latlonBase.LatLonBase.cosineForsytheAndoyerLambertTo\tpygeodesy.latlonBase.LatLonBase-class.html#cosineForsytheAndoyerLambertTo\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.latlonBase.LatLonBase.compassAngleTo\tpygeodesy.latlonBase.LatLonBase-class.html#compassAngleTo\npygeodesy.named._NamedBase.__repr__\tpygeodesy.named._NamedBase-class.html#__repr__\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.latlonBase.LatLonBase.points2\tpygeodesy.latlonBase.LatLonBase-class.html#points2\npygeodesy.latlonBase.LatLonBase.flatPolarTo\tpygeodesy.latlonBase.LatLonBase-class.html#flatPolarTo\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.latlonBase.LatLonBase.boundsOf\tpygeodesy.latlonBase.LatLonBase-class.html#boundsOf\npygeodesy.latlonBase.LatLonBase._havg\tpygeodesy.latlonBase.LatLonBase-class.html#_havg\npygeodesy.latlonBase.LatLonBase.xyz\tpygeodesy.latlonBase.LatLonBase-class.html#xyz\npygeodesy.named._NamedBase.others\tpygeodesy.named._NamedBase-class.html#others\npygeodesy.latlonBase.LatLonBase.isEllipsoidal\tpygeodesy.latlonBase.LatLonBase-class.html#isEllipsoidal\npygeodesy.latlonBase.LatLonBase.height\tpygeodesy.latlonBase.LatLonBase-class.html#height\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.latlonBase.LatLonBase.equals3\tpygeodesy.latlonBase.LatLonBase-class.html#equals3\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.latlonBase.LatLonBase.rhumbDestination\tpygeodesy.latlonBase.LatLonBase-class.html#rhumbDestination\npygeodesy.latlonBase.LatLonBase._heigHt\tpygeodesy.latlonBase.LatLonBase-class.html#_heigHt\npygeodesy.latlonBase.LatLonBase.latlon_\tpygeodesy.latlonBase.LatLonBase-class.html#latlon_\npygeodesy.latlonBase.LatLonBase.lon\tpygeodesy.latlonBase.LatLonBase-class.html#lon\npygeodesy.latlonBase.LatLonBase.xyzh\tpygeodesy.latlonBase.LatLonBase-class.html#xyzh\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.latlonBase.LatLonBase.hubenyTo\tpygeodesy.latlonBase.LatLonBase-class.html#hubenyTo\npygeodesy.latlonBase.LatLonBase.heightStr\tpygeodesy.latlonBase.LatLonBase-class.html#heightStr\npygeodesy.ecefLocals._EcefLocal.Ecef\tpygeodesy.ecefLocals._EcefLocal-class.html#Ecef\npygeodesy.latlonBase.LatLonBase.latlon2\tpygeodesy.latlonBase.LatLonBase-class.html#latlon2\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.latlonBase.LatLonBase.circum3\tpygeodesy.latlonBase.LatLonBase-class.html#circum3\npygeodesy.latlonBase.LatLonBase._rhumb3\tpygeodesy.latlonBase.LatLonBase-class.html#_rhumb3\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.latlonBase.LatLonBase.__eq__\tpygeodesy.latlonBase.LatLonBase-class.html#__eq__\npygeodesy.latlonBase.LatLonBase._lon\tpygeodesy.latlonBase.LatLonBase-class.html#_lon\npygeodesy.latlonBase.LatLonBase.toNormal\tpygeodesy.latlonBase.LatLonBase-class.html#toNormal\npygeodesy.latlonBase.LatLonBase.latlonheight\tpygeodesy.latlonBase.LatLonBase-class.html#latlonheight\npygeodesy.latlonBase.LatLonBase.height4\tpygeodesy.latlonBase.LatLonBase-class.html#height4\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.latlonBase.LatLonBase.xyz3\tpygeodesy.latlonBase.LatLonBase-class.html#xyz3\npygeodesy.latlonBase.LatLonBase.bounds\tpygeodesy.latlonBase.LatLonBase-class.html#bounds\npygeodesy.latlonBase.LatLonBase.hartzell\tpygeodesy.latlonBase.LatLonBase-class.html#hartzell\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.latlonBase.LatLonBase.rhumbAzimuthTo\tpygeodesy.latlonBase.LatLonBase-class.html#rhumbAzimuthTo\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.ecefLocals._EcefLocal.toNed\tpygeodesy.ecefLocals._EcefLocal-class.html#toNed\npygeodesy.latlonBase.LatLonBase.cosineAndoyerLambertTo\tpygeodesy.latlonBase.LatLonBase-class.html#cosineAndoyerLambertTo\npygeodesy.latlonBase.LatLonBase.rhumbMidpointTo\tpygeodesy.latlonBase.LatLonBase-class.html#rhumbMidpointTo\npygeodesy.latlonBase.LatLonBase._clipid\tpygeodesy.latlonBase.LatLonBase-class.html#_clipid\npygeodesy.latlonBase.LatLonBase.toNvector\tpygeodesy.latlonBase.LatLonBase-class.html#toNvector\npygeodesy.latlonBase.LatLonBase.isSpherical\tpygeodesy.latlonBase.LatLonBase-class.html#isSpherical\npygeodesy.latlonBase.LatLonBase._wrap_name2\tpygeodesy.latlonBase.LatLonBase-class.html#_wrap_name2\npygeodesy.latlonBase.LatLonBase.__init__\tpygeodesy.latlonBase.LatLonBase-class.html#__init__\npygeodesy.latlonBase.LatLonBase.radii11\tpygeodesy.latlonBase.LatLonBase-class.html#radii11\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.latlonBase.LatLonBase.philamheight\tpygeodesy.latlonBase.LatLonBase-class.html#philamheight\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.latlonBase.LatLonBase.latlon2round\tpygeodesy.latlonBase.LatLonBase-class.html#latlon2round\npygeodesy.ecefLocals._EcefLocal._ltp_ecef2local\tpygeodesy.ecefLocals._EcefLocal-class.html#_ltp_ecef2local\npygeodesy.latlonBase.LatLonBase.vincentysTo\tpygeodesy.latlonBase.LatLonBase-class.html#vincentysTo\npygeodesy.ecefLocals._EcefLocal._ecef9datum\tpygeodesy.ecefLocals._EcefLocal-class.html#_ecef9datum\npygeodesy.latlonBase.LatLonBase.to3xyz\tpygeodesy.latlonBase.LatLonBase-class.html#to3xyz\npygeodesy.latlonBase.LatLonBase.lam\tpygeodesy.latlonBase.LatLonBase-class.html#lam\npygeodesy.latlonBase.LatLonBase.phi\tpygeodesy.latlonBase.LatLonBase-class.html#phi\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.latlonBase.LatLonBase.destinationXyz\tpygeodesy.latlonBase.LatLonBase-class.html#destinationXyz\npygeodesy.latlonBase.LatLonBase._height\tpygeodesy.latlonBase.LatLonBase-class.html#_height\npygeodesy.latlonBase.LatLonBase.isequalTo\tpygeodesy.latlonBase.LatLonBase-class.html#isequalTo\npygeodesy.latlonBase.LatLonBase.euclideanTo\tpygeodesy.latlonBase.LatLonBase-class.html#euclideanTo\npygeodesy.latlonBase.LatLonBase._intersecend2\tpygeodesy.latlonBase.LatLonBase-class.html#_intersecend2\npygeodesy.latlonBase.LatLonBase.lat\tpygeodesy.latlonBase.LatLonBase-class.html#lat\npygeodesy.latlonBase.LatLonBase.toVector\tpygeodesy.latlonBase.LatLonBase-class.html#toVector\npygeodesy.latlonBase.LatLonBase.equirectangularTo\tpygeodesy.latlonBase.LatLonBase-class.html#equirectangularTo\npygeodesy.ecefLocals._EcefLocal.toLocal\tpygeodesy.ecefLocals._EcefLocal-class.html#toLocal\npygeodesy.latlonBase.LatLonBase.rhumbDistanceTo\tpygeodesy.latlonBase.LatLonBase-class.html#rhumbDistanceTo\npygeodesy.latlonBase.LatLonBase.rhumbLine\tpygeodesy.latlonBase.LatLonBase-class.html#rhumbLine\npygeodesy.latlonBase.LatLonBase.intersecant2\tpygeodesy.latlonBase.LatLonBase-class.html#intersecant2\npygeodesy.latlonBase.LatLonBase.points\tpygeodesy.latlonBase.LatLonBase-class.html#points\npygeodesy.latlonBase.LatLonBase._toCartesianEcef\tpygeodesy.latlonBase.LatLonBase-class.html#_toCartesianEcef\npygeodesy.latlonBase.LatLonBase._distanceTo_\tpygeodesy.latlonBase.LatLonBase-class.html#_distanceTo_\npygeodesy.latlonBase.LatLonBase.compassAngle\tpygeodesy.latlonBase.LatLonBase-class.html#compassAngle\npygeodesy.deprecated.classes.ClipCS3Tuple\tpygeodesy.deprecated.classes.ClipCS3Tuple-class.html\npygeodesy.named._NamedTuple.toRepr\tpygeodesy.named._NamedTuple-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._NamedTuple.toUnits\tpygeodesy.named._NamedTuple-class.html#toUnits\npygeodesy.named._NamedTuple._validate\tpygeodesy.named._NamedTuple-class.html#_validate\npygeodesy.named._NamedTuple.__str__\tpygeodesy.named._NamedTuple-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._NamedTuple._DOT_\tpygeodesy.named._NamedTuple-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._NamedTuple.reUnit\tpygeodesy.named._NamedTuple-class.html#reUnit\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.deprecated.classes.ClipCS3Tuple._Names_\tpygeodesy.deprecated.classes.ClipCS3Tuple-class.html#_Names_\npygeodesy.named._NamedTuple.__setattr__\tpygeodesy.named._NamedTuple-class.html#__setattr__\npygeodesy.deprecated.classes._Deprecated_NamedTuple.__new__\tpygeodesy.deprecated.classes._Deprecated_NamedTuple-class.html#__new__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._NamedTuple._validated\tpygeodesy.named._NamedTuple-class.html#_validated\npygeodesy.named._NamedTuple.__getattr__\tpygeodesy.named._NamedTuple-class.html#__getattr__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._NamedTuple._xtend\tpygeodesy.named._NamedTuple-class.html#_xtend\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._NamedTuple.dup\tpygeodesy.named._NamedTuple-class.html#dup\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedTuple.toStr\tpygeodesy.named._NamedTuple-class.html#toStr\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedTuple.units\tpygeodesy.named._NamedTuple-class.html#units\npygeodesy.named._NamedTuple.iterunits\tpygeodesy.named._NamedTuple-class.html#iterunits\npygeodesy.named._NamedTuple.iteritems\tpygeodesy.named._NamedTuple-class.html#iteritems\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._NamedTuple.items\tpygeodesy.named._NamedTuple-class.html#items\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedTuple.__delattr__\tpygeodesy.named._NamedTuple-class.html#__delattr__\npygeodesy.named._NamedTuple.__repr__\tpygeodesy.named._NamedTuple-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._NamedTuple.__hash__\tpygeodesy.named._NamedTuple-class.html#__hash__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.deprecated.classes.ClipCS3Tuple._Units_\tpygeodesy.deprecated.classes.ClipCS3Tuple-class.html#_Units_\npygeodesy.deprecated.classes.EasNorExact4Tuple\tpygeodesy.deprecated.classes.EasNorExact4Tuple-class.html\npygeodesy.named._NamedTuple.toRepr\tpygeodesy.named._NamedTuple-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._NamedTuple.toUnits\tpygeodesy.named._NamedTuple-class.html#toUnits\npygeodesy.named._NamedTuple._validate\tpygeodesy.named._NamedTuple-class.html#_validate\npygeodesy.named._NamedTuple.__str__\tpygeodesy.named._NamedTuple-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._NamedTuple._DOT_\tpygeodesy.named._NamedTuple-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._NamedTuple.reUnit\tpygeodesy.named._NamedTuple-class.html#reUnit\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.deprecated.classes.EasNorExact4Tuple._Names_\tpygeodesy.deprecated.classes.EasNorExact4Tuple-class.html#_Names_\npygeodesy.named._NamedTuple.__setattr__\tpygeodesy.named._NamedTuple-class.html#__setattr__\npygeodesy.deprecated.classes._Deprecated_NamedTuple.__new__\tpygeodesy.deprecated.classes._Deprecated_NamedTuple-class.html#__new__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._NamedTuple._validated\tpygeodesy.named._NamedTuple-class.html#_validated\npygeodesy.named._NamedTuple.__getattr__\tpygeodesy.named._NamedTuple-class.html#__getattr__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._NamedTuple._xtend\tpygeodesy.named._NamedTuple-class.html#_xtend\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._NamedTuple.dup\tpygeodesy.named._NamedTuple-class.html#dup\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedTuple.toStr\tpygeodesy.named._NamedTuple-class.html#toStr\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedTuple.units\tpygeodesy.named._NamedTuple-class.html#units\npygeodesy.named._NamedTuple.iterunits\tpygeodesy.named._NamedTuple-class.html#iterunits\npygeodesy.named._NamedTuple.iteritems\tpygeodesy.named._NamedTuple-class.html#iteritems\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._NamedTuple.items\tpygeodesy.named._NamedTuple-class.html#items\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedTuple.__delattr__\tpygeodesy.named._NamedTuple-class.html#__delattr__\npygeodesy.named._NamedTuple.__repr__\tpygeodesy.named._NamedTuple-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._NamedTuple.__hash__\tpygeodesy.named._NamedTuple-class.html#__hash__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.deprecated.classes.EasNorExact4Tuple._Units_\tpygeodesy.deprecated.classes.EasNorExact4Tuple-class.html#_Units_\npygeodesy.deprecated.classes.Jacobi2Tuple\tpygeodesy.deprecated.classes.Jacobi2Tuple-class.html\npygeodesy.named._NamedTuple.toRepr\tpygeodesy.named._NamedTuple-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._NamedTuple.toUnits\tpygeodesy.named._NamedTuple-class.html#toUnits\npygeodesy.named._NamedTuple._validate\tpygeodesy.named._NamedTuple-class.html#_validate\npygeodesy.named._NamedTuple.__str__\tpygeodesy.named._NamedTuple-class.html#__str__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._NamedTuple._DOT_\tpygeodesy.named._NamedTuple-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.triaxials.triaxial5.Conformal2Tuple.toRadians\tpygeodesy.triaxials.triaxial5.Conformal2Tuple-class.html#toRadians\npygeodesy.named._NamedTuple.reUnit\tpygeodesy.named._NamedTuple-class.html#reUnit\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.triaxials.triaxial5.Conformal2Tuple._Names_\tpygeodesy.triaxials.triaxial5.Conformal2Tuple-class.html#_Names_\npygeodesy.named._NamedTuple.__setattr__\tpygeodesy.named._NamedTuple-class.html#__setattr__\npygeodesy.deprecated.classes.Jacobi2Tuple.__new__\tpygeodesy.deprecated.classes.Jacobi2Tuple-class.html#__new__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._NamedTuple._validated\tpygeodesy.named._NamedTuple-class.html#_validated\npygeodesy.named._NamedTuple.__getattr__\tpygeodesy.named._NamedTuple-class.html#__getattr__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._NamedTuple._xtend\tpygeodesy.named._NamedTuple-class.html#_xtend\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._NamedTuple.units\tpygeodesy.named._NamedTuple-class.html#units\npygeodesy.triaxials.triaxial5.Conformal2Tuple.toDegrees\tpygeodesy.triaxials.triaxial5.Conformal2Tuple-class.html#toDegrees\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedTuple.toStr\tpygeodesy.named._NamedTuple-class.html#toStr\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedTuple.dup\tpygeodesy.named._NamedTuple-class.html#dup\npygeodesy.named._NamedTuple.iterunits\tpygeodesy.named._NamedTuple-class.html#iterunits\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._NamedTuple.iteritems\tpygeodesy.named._NamedTuple-class.html#iteritems\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.triaxials.triaxial5.Conformal2Tuple.to5Tuple\tpygeodesy.triaxials.triaxial5.Conformal2Tuple-class.html#to5Tuple\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._NamedTuple.items\tpygeodesy.named._NamedTuple-class.html#items\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedTuple.__delattr__\tpygeodesy.named._NamedTuple-class.html#__delattr__\npygeodesy.named._NamedTuple.__repr__\tpygeodesy.named._NamedTuple-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._NamedTuple.__hash__\tpygeodesy.named._NamedTuple-class.html#__hash__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.triaxials.triaxial5.Conformal2Tuple._Units_\tpygeodesy.triaxials.triaxial5.Conformal2Tuple-class.html#_Units_\npygeodesy.deprecated.classes.JacobiConformal\tpygeodesy.deprecated.classes.JacobiConformal-class.html\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.triaxials.triaxial5.Triaxial._forwardLatLon3\tpygeodesy.triaxials.triaxial5.Triaxial-class.html#_forwardLatLon3\npygeodesy.named._NamedBase.__str__\tpygeodesy.named._NamedBase-class.html#__str__\npygeodesy.triaxials.bases._OrderedTriaxialBase._a2b2_a2c2\tpygeodesy.triaxials.bases._OrderedTriaxialBase-class.html#_a2b2_a2c2\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._norm2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_norm2\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.triaxials.triaxial5.Conformal._y\tpygeodesy.triaxials.triaxial5.Conformal-class.html#_y\npygeodesy.triaxials.triaxial5.Conformal._x\tpygeodesy.triaxials.triaxial5.Conformal-class.html#_x\npygeodesy.triaxials.triaxial5.Conformal.xyQR2\tpygeodesy.triaxials.triaxial5.Conformal-class.html#xyQR2\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.triaxials.bases._OrderedTriaxialBase._radialTo3\tpygeodesy.triaxials.bases._OrderedTriaxialBase-class.html#_radialTo3\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.e2bc\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#e2bc\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.isFlat\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#isFlat\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.triaxials.triaxial5.Conformal._a2_b\tpygeodesy.triaxials.triaxial5.Conformal-class.html#_a2_b\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.R2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#R2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.R3\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#R3\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.toStr\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#toStr\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._a2b2c23\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_a2b2c23\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._a2_b2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_a2_b2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.hartzell4\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#hartzell4\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._NamedEnumItem.name\tpygeodesy.named._NamedEnumItem-class.html#name\npygeodesy.named._NamedEnumItem.unregister\tpygeodesy.named._NamedEnumItem-class.html#unregister\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._a2b2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_a2b2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.areaRG\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#areaRG\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.triaxials.triaxial5.Conformal.xR_\tpygeodesy.triaxials.triaxial5.Conformal-class.html#xR_\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.triaxials.triaxial5.Conformal.x\tpygeodesy.triaxials.triaxial5.Conformal-class.html#x\npygeodesy.triaxials.triaxial5.Conformal.yR\tpygeodesy.triaxials.triaxial5.Conformal-class.html#yR\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.unOrdered\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#unOrdered\npygeodesy.named._NamedBase.toRepr\tpygeodesy.named._NamedBase-class.html#toRepr\npygeodesy.triaxials.triaxial5.Triaxial.forwardLatLon_\tpygeodesy.triaxials.triaxial5.Triaxial-class.html#forwardLatLon_\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._order_ijk\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_order_ijk\npygeodesy.triaxials.bases._OrderedTriaxialBase._k2_kp2E\tpygeodesy.triaxials.bases._OrderedTriaxialBase-class.html#_k2_kp2E\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.area_p\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#area_p\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.b2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#b2\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.triaxials.triaxial5.Conformal.xyR2_\tpygeodesy.triaxials.triaxial5.Conformal-class.html#xyR2_\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._sideOn\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_sideOn\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.isOblate\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#isOblate\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._kji\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_kji\npygeodesy.triaxials.triaxial5.Triaxial.forwardBetaOmega_\tpygeodesy.triaxials.triaxial5.Triaxial-class.html#forwardBetaOmega_\npygeodesy.triaxials.triaxial5.Triaxial.reverseLatLon\tpygeodesy.triaxials.triaxial5.Triaxial-class.html#reverseLatLon\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.triaxials.triaxial5.Triaxial.forwardBetaOmega\tpygeodesy.triaxials.triaxial5.Triaxial-class.html#forwardBetaOmega\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.e2ab\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#e2ab\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.e2ac\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#e2ac\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.sideOf\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#sideOf\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.Rauthalic\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#Rauthalic\npygeodesy.named._NamedBase.others\tpygeodesy.named._NamedBase-class.html#others\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.triaxials.triaxial5.Triaxial.reverseBetaOmega\tpygeodesy.triaxials.triaxial5.Triaxial-class.html#reverseBetaOmega\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.triaxials.triaxial5.Triaxial.forwardLatLon\tpygeodesy.triaxials.triaxial5.Triaxial-class.html#forwardLatLon\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.c\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#c\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.isProlate\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#isProlate\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.triaxials.triaxial5.Conformal._c2_b\tpygeodesy.triaxials.triaxial5.Conformal-class.html#_c2_b\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.__repr__\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#__repr__\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.triaxials.bases._OrderedTriaxialBase._unordered\tpygeodesy.triaxials.bases._OrderedTriaxialBase-class.html#_unordered\npygeodesy.triaxials.bases._OrderedTriaxialBase.area21k\tpygeodesy.triaxials.bases._OrderedTriaxialBase-class.html#area21k\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._ijk\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_ijk\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.triaxials.triaxial5.Conformal.xy\tpygeodesy.triaxials.triaxial5.Conformal-class.html#xy\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._order3d\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_order3d\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.triaxials.bases._OrderedTriaxialBase.area\tpygeodesy.triaxials.bases._OrderedTriaxialBase-class.html#area\npygeodesy.triaxials.triaxial5.Triaxial._Height\tpygeodesy.triaxials.triaxial5.Triaxial-class.html#_Height\npygeodesy.triaxials.triaxial5.Conformal._yE\tpygeodesy.triaxials.triaxial5.Conformal-class.html#_yE\npygeodesy.named._NamedEnumItem._enum\tpygeodesy.named._NamedEnumItem-class.html#_enum\npygeodesy.triaxials.triaxial5.Triaxial.reverseCartesian\tpygeodesy.triaxials.triaxial5.Triaxial-class.html#reverseCartesian\npygeodesy.triaxials.triaxial5.Conformal.xR\tpygeodesy.triaxials.triaxial5.Conformal-class.html#xR\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.volume\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#volume\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._b2_a2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_b2_a2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.c2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#c2\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.b\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#b\npygeodesy.triaxials.triaxial5.Triaxial.forwardCartesian\tpygeodesy.triaxials.triaxial5.Triaxial-class.html#forwardCartesian\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.height4\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#height4\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.Rvolumetric\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#Rvolumetric\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.perimeter4ab\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#perimeter4ab\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.perimeter4ac\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#perimeter4ac\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._ordered4\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_ordered4\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._order3\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_order3\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.normal3d\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#normal3d\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.isOrdered\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#isOrdered\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.triaxials.triaxial5.Conformal.xyR2\tpygeodesy.triaxials.triaxial5.Conformal-class.html#xyR2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.isSpherical\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#isSpherical\npygeodesy.deprecated.classes.JacobiConformal.__init__\tpygeodesy.deprecated.classes.JacobiConformal-class.html#__init__\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.perimeter4bc\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#perimeter4bc\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._a2c2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_a2c2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.toBiaxial\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#toBiaxial\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.normal4\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#normal4\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._c2_b2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_c2_b2\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.triaxials.triaxial5.Conformal.xyQ2\tpygeodesy.triaxials.triaxial5.Conformal-class.html#xyQ2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.a2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#a2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.abc3\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#abc3\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._b2c2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_b2c2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.a\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#a\npygeodesy.named._NamedEnumItem._register\tpygeodesy.named._NamedEnumItem-class.html#_register\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._c2_a2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_c2_a2\npygeodesy.triaxials.triaxial5.Conformal._xE\tpygeodesy.triaxials.triaxial5.Conformal-class.html#_xE\npygeodesy.triaxials.bases._OrderedTriaxialBase._areax\tpygeodesy.triaxials.bases._OrderedTriaxialBase-class.html#_areax\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.ellipse5\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#ellipse5\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.areaKT\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#areaKT\npygeodesy.triaxials.triaxial5.Conformal.yR_\tpygeodesy.triaxials.triaxial5.Conformal-class.html#yR_\npygeodesy.triaxials.triaxial5.Conformal.y\tpygeodesy.triaxials.triaxial5.Conformal-class.html#y\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.toEllipsoid\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#toEllipsoid\npygeodesy.deprecated.classes.JacobiConformalSpherical\tpygeodesy.deprecated.classes.JacobiConformalSpherical-class.html\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.triaxials.triaxial5.Triaxial._forwardLatLon3\tpygeodesy.triaxials.triaxial5.Triaxial-class.html#_forwardLatLon3\npygeodesy.named._NamedBase.__str__\tpygeodesy.named._NamedBase-class.html#__str__\npygeodesy.triaxials.bases._OrderedTriaxialBase._a2b2_a2c2\tpygeodesy.triaxials.bases._OrderedTriaxialBase-class.html#_a2b2_a2c2\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.triaxials.triaxial5.ConformalSphere._bc\tpygeodesy.triaxials.triaxial5.ConformalSphere-class.html#_bc\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._norm2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_norm2\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.triaxials.triaxial5.Conformal._y\tpygeodesy.triaxials.triaxial5.Conformal-class.html#_y\npygeodesy.triaxials.triaxial5.Conformal._x\tpygeodesy.triaxials.triaxial5.Conformal-class.html#_x\npygeodesy.triaxials.triaxial5.Conformal.xyQR2\tpygeodesy.triaxials.triaxial5.Conformal-class.html#xyQR2\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.triaxials.bases._OrderedTriaxialBase._radialTo3\tpygeodesy.triaxials.bases._OrderedTriaxialBase-class.html#_radialTo3\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.e2bc\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#e2bc\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.isFlat\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#isFlat\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.triaxials.triaxial5.Conformal._a2_b\tpygeodesy.triaxials.triaxial5.Conformal-class.html#_a2_b\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.R2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#R2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.R3\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#R3\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.toStr\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#toStr\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._a2b2c23\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_a2b2c23\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._a2_b2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_a2_b2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.hartzell4\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#hartzell4\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._NamedEnumItem.name\tpygeodesy.named._NamedEnumItem-class.html#name\npygeodesy.named._NamedEnumItem.unregister\tpygeodesy.named._NamedEnumItem-class.html#unregister\npygeodesy.triaxials.triaxial5.Triaxial.forwardCartesian\tpygeodesy.triaxials.triaxial5.Triaxial-class.html#forwardCartesian\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.areaRG\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#areaRG\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.triaxials.triaxial5.Conformal.xR_\tpygeodesy.triaxials.triaxial5.Conformal-class.html#xR_\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.triaxials.triaxial5.Conformal.x\tpygeodesy.triaxials.triaxial5.Conformal-class.html#x\npygeodesy.triaxials.triaxial5.Conformal.yR\tpygeodesy.triaxials.triaxial5.Conformal-class.html#yR\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.unOrdered\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#unOrdered\npygeodesy.named._NamedBase.toRepr\tpygeodesy.named._NamedBase-class.html#toRepr\npygeodesy.triaxials.triaxial5.Triaxial.forwardLatLon_\tpygeodesy.triaxials.triaxial5.Triaxial-class.html#forwardLatLon_\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._order_ijk\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_order_ijk\npygeodesy.triaxials.bases._OrderedTriaxialBase._k2_kp2E\tpygeodesy.triaxials.bases._OrderedTriaxialBase-class.html#_k2_kp2E\npygeodesy.triaxials.triaxial5.ConformalSphere.radius\tpygeodesy.triaxials.triaxial5.ConformalSphere-class.html#radius\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.b2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#b2\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.triaxials.triaxial5.Conformal.xyR2_\tpygeodesy.triaxials.triaxial5.Conformal-class.html#xyR2_\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._sideOn\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_sideOn\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._ordered4\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_ordered4\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._kji\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_kji\npygeodesy.triaxials.triaxial5.Triaxial.forwardBetaOmega_\tpygeodesy.triaxials.triaxial5.Triaxial-class.html#forwardBetaOmega_\npygeodesy.triaxials.triaxial5.Triaxial.reverseLatLon\tpygeodesy.triaxials.triaxial5.Triaxial-class.html#reverseLatLon\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.triaxials.triaxial5.Triaxial.forwardBetaOmega\tpygeodesy.triaxials.triaxial5.Triaxial-class.html#forwardBetaOmega\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.e2ab\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#e2ab\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.e2ac\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#e2ac\npygeodesy.triaxials.triaxial5.ConformalSphere.bc\tpygeodesy.triaxials.triaxial5.ConformalSphere-class.html#bc\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.sideOf\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#sideOf\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.Rauthalic\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#Rauthalic\npygeodesy.named._NamedBase.others\tpygeodesy.named._NamedBase-class.html#others\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.triaxials.triaxial5.Triaxial.reverseBetaOmega\tpygeodesy.triaxials.triaxial5.Triaxial-class.html#reverseBetaOmega\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.triaxials.triaxial5.Triaxial.forwardLatLon\tpygeodesy.triaxials.triaxial5.Triaxial-class.html#forwardLatLon\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.c\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#c\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.isProlate\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#isProlate\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.triaxials.triaxial5.Conformal._c2_b\tpygeodesy.triaxials.triaxial5.Conformal-class.html#_c2_b\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.__repr__\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#__repr__\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.triaxials.bases._OrderedTriaxialBase._unordered\tpygeodesy.triaxials.bases._OrderedTriaxialBase-class.html#_unordered\npygeodesy.triaxials.bases._OrderedTriaxialBase.area21k\tpygeodesy.triaxials.bases._OrderedTriaxialBase-class.html#area21k\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._ijk\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_ijk\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.triaxials.triaxial5.Conformal.xy\tpygeodesy.triaxials.triaxial5.Conformal-class.html#xy\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._order3d\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_order3d\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.triaxials.bases._OrderedTriaxialBase.area\tpygeodesy.triaxials.bases._OrderedTriaxialBase-class.html#area\npygeodesy.triaxials.triaxial5.Triaxial._Height\tpygeodesy.triaxials.triaxial5.Triaxial-class.html#_Height\npygeodesy.triaxials.triaxial5.Conformal._yE\tpygeodesy.triaxials.triaxial5.Conformal-class.html#_yE\npygeodesy.named._NamedEnumItem._enum\tpygeodesy.named._NamedEnumItem-class.html#_enum\npygeodesy.triaxials.triaxial5.Triaxial.reverseCartesian\tpygeodesy.triaxials.triaxial5.Triaxial-class.html#reverseCartesian\npygeodesy.triaxials.triaxial5.Conformal.xR\tpygeodesy.triaxials.triaxial5.Conformal-class.html#xR\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.volume\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#volume\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._b2_a2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_b2_a2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.c2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#c2\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.b\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#b\npygeodesy.triaxials.triaxial5.ConformalSphere._a2b2\tpygeodesy.triaxials.triaxial5.ConformalSphere-class.html#_a2b2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.height4\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#height4\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.Rvolumetric\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#Rvolumetric\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.perimeter4ab\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#perimeter4ab\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.perimeter4ac\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#perimeter4ac\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.isOblate\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#isOblate\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.area_p\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#area_p\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._order3\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_order3\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.normal3d\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#normal3d\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.isOrdered\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#isOrdered\npygeodesy.triaxials.triaxial5.ConformalSphere.ab\tpygeodesy.triaxials.triaxial5.ConformalSphere-class.html#ab\npygeodesy.triaxials.triaxial5.Conformal.xyR2\tpygeodesy.triaxials.triaxial5.Conformal-class.html#xyR2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.isSpherical\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#isSpherical\npygeodesy.deprecated.classes.JacobiConformalSpherical.__init__\tpygeodesy.deprecated.classes.JacobiConformalSpherical-class.html#__init__\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.perimeter4bc\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#perimeter4bc\npygeodesy.triaxials.triaxial5.ConformalSphere._a2c2\tpygeodesy.triaxials.triaxial5.ConformalSphere-class.html#_a2c2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.toBiaxial\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#toBiaxial\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.normal4\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#normal4\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._c2_b2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_c2_b2\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.triaxials.triaxial5.Conformal.xyQ2\tpygeodesy.triaxials.triaxial5.Conformal-class.html#xyQ2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.a2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#a2\npygeodesy.triaxials.triaxial5.ConformalSphere._ab\tpygeodesy.triaxials.triaxial5.ConformalSphere-class.html#_ab\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.abc3\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#abc3\npygeodesy.triaxials.triaxial5.ConformalSphere._b2c2\tpygeodesy.triaxials.triaxial5.ConformalSphere-class.html#_b2c2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.a\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#a\npygeodesy.named._NamedEnumItem._register\tpygeodesy.named._NamedEnumItem-class.html#_register\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._c2_a2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_c2_a2\npygeodesy.triaxials.triaxial5.Conformal._xE\tpygeodesy.triaxials.triaxial5.Conformal-class.html#_xE\npygeodesy.triaxials.bases._OrderedTriaxialBase._areax\tpygeodesy.triaxials.bases._OrderedTriaxialBase-class.html#_areax\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.ellipse5\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#ellipse5\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.areaKT\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#areaKT\npygeodesy.triaxials.triaxial5.Conformal.yR_\tpygeodesy.triaxials.triaxial5.Conformal-class.html#yR_\npygeodesy.triaxials.triaxial5.Conformal.y\tpygeodesy.triaxials.triaxial5.Conformal-class.html#y\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.toEllipsoid\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#toEllipsoid\npygeodesy.deprecated.classes.Lam_\tpygeodesy.deprecated.classes.Lam_-class.html\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.unitsBase.Float.__str__\tpygeodesy.unitsBase.Float-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.unitsBase._NamedUnit._units\tpygeodesy.unitsBase._NamedUnit-class.html#_units\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.units.Radians.toStr\tpygeodesy.units.Radians-class.html#toStr\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.unitsBase._NamedUnit._arg_name_arg2\tpygeodesy.unitsBase._NamedUnit-class.html#_arg_name_arg2\npygeodesy.units.Radians.toRepr\tpygeodesy.units.Radians-class.html#toRepr\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.unitsBase._NamedUnit._toRepr\tpygeodesy.unitsBase._NamedUnit-class.html#_toRepr\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.units.Radians.toRadians\tpygeodesy.units.Radians-class.html#toRadians\npygeodesy.units.Radians.toDegrees\tpygeodesy.units.Radians-class.html#toDegrees\npygeodesy.unitsBase._NamedUnit._std_repr\tpygeodesy.unitsBase._NamedUnit-class.html#_std_repr\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.unitsBase._NamedUnit._Error\tpygeodesy.unitsBase._NamedUnit-class.html#_Error\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.unitsBase._NamedUnit.std_repr\tpygeodesy.unitsBase._NamedUnit-class.html#std_repr\npygeodesy.deprecated.classes.Lam_.__init__\tpygeodesy.deprecated.classes.Lam_-class.html#__init__\npygeodesy.unitsBase.Float.isneg0\tpygeodesy.unitsBase.Float-class.html#isneg0\npygeodesy.units.Lamd.__new__\tpygeodesy.units.Lamd-class.html#__new__\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.unitsBase._NamedUnit.units\tpygeodesy.unitsBase._NamedUnit-class.html#units\npygeodesy.unitsBase.Float.__repr__\tpygeodesy.unitsBase.Float-class.html#__repr__\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.deprecated.classes.LatLonExact4Tuple\tpygeodesy.deprecated.classes.LatLonExact4Tuple-class.html\npygeodesy.named._NamedTuple.toRepr\tpygeodesy.named._NamedTuple-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._NamedTuple.toUnits\tpygeodesy.named._NamedTuple-class.html#toUnits\npygeodesy.named._NamedTuple._validate\tpygeodesy.named._NamedTuple-class.html#_validate\npygeodesy.named._NamedTuple.__str__\tpygeodesy.named._NamedTuple-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._NamedTuple._DOT_\tpygeodesy.named._NamedTuple-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._NamedTuple.reUnit\tpygeodesy.named._NamedTuple-class.html#reUnit\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.deprecated.classes.LatLonExact4Tuple._Names_\tpygeodesy.deprecated.classes.LatLonExact4Tuple-class.html#_Names_\npygeodesy.named._NamedTuple.__setattr__\tpygeodesy.named._NamedTuple-class.html#__setattr__\npygeodesy.deprecated.classes._Deprecated_NamedTuple.__new__\tpygeodesy.deprecated.classes._Deprecated_NamedTuple-class.html#__new__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._NamedTuple._validated\tpygeodesy.named._NamedTuple-class.html#_validated\npygeodesy.named._NamedTuple.__getattr__\tpygeodesy.named._NamedTuple-class.html#__getattr__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._NamedTuple._xtend\tpygeodesy.named._NamedTuple-class.html#_xtend\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._NamedTuple.dup\tpygeodesy.named._NamedTuple-class.html#dup\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedTuple.toStr\tpygeodesy.named._NamedTuple-class.html#toStr\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedTuple.units\tpygeodesy.named._NamedTuple-class.html#units\npygeodesy.named._NamedTuple.iterunits\tpygeodesy.named._NamedTuple-class.html#iterunits\npygeodesy.named._NamedTuple.iteritems\tpygeodesy.named._NamedTuple-class.html#iteritems\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._NamedTuple.items\tpygeodesy.named._NamedTuple-class.html#items\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedTuple.__delattr__\tpygeodesy.named._NamedTuple-class.html#__delattr__\npygeodesy.named._NamedTuple.__repr__\tpygeodesy.named._NamedTuple-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._NamedTuple.__hash__\tpygeodesy.named._NamedTuple-class.html#__hash__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.deprecated.classes.LatLonExact4Tuple._Units_\tpygeodesy.deprecated.classes.LatLonExact4Tuple-class.html#_Units_\npygeodesy.deprecated.classes.NearestOn4Tuple\tpygeodesy.deprecated.classes.NearestOn4Tuple-class.html\npygeodesy.named._NamedTuple.toRepr\tpygeodesy.named._NamedTuple-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._NamedTuple.toUnits\tpygeodesy.named._NamedTuple-class.html#toUnits\npygeodesy.named._NamedTuple._validate\tpygeodesy.named._NamedTuple-class.html#_validate\npygeodesy.named._NamedTuple.__str__\tpygeodesy.named._NamedTuple-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._NamedTuple._DOT_\tpygeodesy.named._NamedTuple-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._NamedTuple.reUnit\tpygeodesy.named._NamedTuple-class.html#reUnit\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.deprecated.classes.NearestOn4Tuple._Names_\tpygeodesy.deprecated.classes.NearestOn4Tuple-class.html#_Names_\npygeodesy.named._NamedTuple.__setattr__\tpygeodesy.named._NamedTuple-class.html#__setattr__\npygeodesy.deprecated.classes._Deprecated_NamedTuple.__new__\tpygeodesy.deprecated.classes._Deprecated_NamedTuple-class.html#__new__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._NamedTuple._validated\tpygeodesy.named._NamedTuple-class.html#_validated\npygeodesy.named._NamedTuple.__getattr__\tpygeodesy.named._NamedTuple-class.html#__getattr__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._NamedTuple._xtend\tpygeodesy.named._NamedTuple-class.html#_xtend\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._NamedTuple.dup\tpygeodesy.named._NamedTuple-class.html#dup\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedTuple.toStr\tpygeodesy.named._NamedTuple-class.html#toStr\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedTuple.units\tpygeodesy.named._NamedTuple-class.html#units\npygeodesy.named._NamedTuple.iterunits\tpygeodesy.named._NamedTuple-class.html#iterunits\npygeodesy.named._NamedTuple.iteritems\tpygeodesy.named._NamedTuple-class.html#iteritems\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._NamedTuple.items\tpygeodesy.named._NamedTuple-class.html#items\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedTuple.__delattr__\tpygeodesy.named._NamedTuple-class.html#__delattr__\npygeodesy.named._NamedTuple.__repr__\tpygeodesy.named._NamedTuple-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._NamedTuple.__hash__\tpygeodesy.named._NamedTuple-class.html#__hash__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.deprecated.classes.NearestOn4Tuple._Units_\tpygeodesy.deprecated.classes.NearestOn4Tuple-class.html#_Units_\npygeodesy.deprecated.classes.Ned3Tuple\tpygeodesy.deprecated.classes.Ned3Tuple-class.html\npygeodesy.named._NamedTuple.toRepr\tpygeodesy.named._NamedTuple-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._NamedTuple.toUnits\tpygeodesy.named._NamedTuple-class.html#toUnits\npygeodesy.named._NamedTuple._validate\tpygeodesy.named._NamedTuple-class.html#_validate\npygeodesy.named._NamedTuple.__str__\tpygeodesy.named._NamedTuple-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._NamedTuple._DOT_\tpygeodesy.named._NamedTuple-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._NamedTuple.reUnit\tpygeodesy.named._NamedTuple-class.html#reUnit\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.deprecated.classes.Ned3Tuple._Names_\tpygeodesy.deprecated.classes.Ned3Tuple-class.html#_Names_\npygeodesy.named._NamedTuple.__setattr__\tpygeodesy.named._NamedTuple-class.html#__setattr__\npygeodesy.deprecated.classes._Deprecated_NamedTuple.__new__\tpygeodesy.deprecated.classes._Deprecated_NamedTuple-class.html#__new__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._NamedTuple._validated\tpygeodesy.named._NamedTuple-class.html#_validated\npygeodesy.named._NamedTuple.__getattr__\tpygeodesy.named._NamedTuple-class.html#__getattr__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._NamedTuple._xtend\tpygeodesy.named._NamedTuple-class.html#_xtend\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._NamedTuple.dup\tpygeodesy.named._NamedTuple-class.html#dup\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedTuple.toStr\tpygeodesy.named._NamedTuple-class.html#toStr\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedTuple.units\tpygeodesy.named._NamedTuple-class.html#units\npygeodesy.named._NamedTuple.iterunits\tpygeodesy.named._NamedTuple-class.html#iterunits\npygeodesy.named._NamedTuple.iteritems\tpygeodesy.named._NamedTuple-class.html#iteritems\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._NamedTuple.items\tpygeodesy.named._NamedTuple-class.html#items\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedTuple.__delattr__\tpygeodesy.named._NamedTuple-class.html#__delattr__\npygeodesy.named._NamedTuple.__repr__\tpygeodesy.named._NamedTuple-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._NamedTuple.__hash__\tpygeodesy.named._NamedTuple-class.html#__hash__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.deprecated.classes.Ned3Tuple._Units_\tpygeodesy.deprecated.classes.Ned3Tuple-class.html#_Units_\npygeodesy.deprecated.classes.Phi_\tpygeodesy.deprecated.classes.Phi_-class.html\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.unitsBase.Float.__str__\tpygeodesy.unitsBase.Float-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.unitsBase._NamedUnit._units\tpygeodesy.unitsBase._NamedUnit-class.html#_units\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.units.Radians.toStr\tpygeodesy.units.Radians-class.html#toStr\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.unitsBase._NamedUnit._arg_name_arg2\tpygeodesy.unitsBase._NamedUnit-class.html#_arg_name_arg2\npygeodesy.units.Radians.toRepr\tpygeodesy.units.Radians-class.html#toRepr\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.unitsBase._NamedUnit._toRepr\tpygeodesy.unitsBase._NamedUnit-class.html#_toRepr\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.units.Radians.toRadians\tpygeodesy.units.Radians-class.html#toRadians\npygeodesy.units.Radians.toDegrees\tpygeodesy.units.Radians-class.html#toDegrees\npygeodesy.unitsBase._NamedUnit._std_repr\tpygeodesy.unitsBase._NamedUnit-class.html#_std_repr\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.unitsBase._NamedUnit._Error\tpygeodesy.unitsBase._NamedUnit-class.html#_Error\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.unitsBase._NamedUnit.std_repr\tpygeodesy.unitsBase._NamedUnit-class.html#std_repr\npygeodesy.deprecated.classes.Phi_.__init__\tpygeodesy.deprecated.classes.Phi_-class.html#__init__\npygeodesy.unitsBase.Float.isneg0\tpygeodesy.unitsBase.Float-class.html#isneg0\npygeodesy.units.Phid.__new__\tpygeodesy.units.Phid-class.html#__new__\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.unitsBase._NamedUnit.units\tpygeodesy.unitsBase._NamedUnit-class.html#units\npygeodesy.unitsBase.Float.__repr__\tpygeodesy.unitsBase.Float-class.html#__repr__\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.deprecated.classes.Rhumb7Tuple\tpygeodesy.deprecated.classes.Rhumb7Tuple-class.html\npygeodesy.named._NamedTuple.toRepr\tpygeodesy.named._NamedTuple-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._NamedTuple.toUnits\tpygeodesy.named._NamedTuple-class.html#toUnits\npygeodesy.named._NamedTuple._validate\tpygeodesy.named._NamedTuple-class.html#_validate\npygeodesy.named._NamedTuple.__str__\tpygeodesy.named._NamedTuple-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._NamedTuple._DOT_\tpygeodesy.named._NamedTuple-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._NamedTuple.reUnit\tpygeodesy.named._NamedTuple-class.html#reUnit\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.deprecated.classes.Rhumb7Tuple._Names_\tpygeodesy.deprecated.classes.Rhumb7Tuple-class.html#_Names_\npygeodesy.named._NamedTuple.__setattr__\tpygeodesy.named._NamedTuple-class.html#__setattr__\npygeodesy.deprecated.classes._Deprecated_NamedTuple.__new__\tpygeodesy.deprecated.classes._Deprecated_NamedTuple-class.html#__new__\npygeodesy.named._NamedTuple.__delattr__\tpygeodesy.named._NamedTuple-class.html#__delattr__\npygeodesy.deprecated.classes.Rhumb7Tuple.toInverse10Tuple\tpygeodesy.deprecated.classes.Rhumb7Tuple-class.html#toInverse10Tuple\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._NamedTuple._validated\tpygeodesy.named._NamedTuple-class.html#_validated\npygeodesy.named._NamedTuple.__getattr__\tpygeodesy.named._NamedTuple-class.html#__getattr__\npygeodesy.deprecated.classes.Rhumb7Tuple.toDirect9Tuple\tpygeodesy.deprecated.classes.Rhumb7Tuple-class.html#toDirect9Tuple\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._NamedTuple._xtend\tpygeodesy.named._NamedTuple-class.html#_xtend\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._NamedTuple.units\tpygeodesy.named._NamedTuple-class.html#units\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedTuple.toStr\tpygeodesy.named._NamedTuple-class.html#toStr\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedTuple.dup\tpygeodesy.named._NamedTuple-class.html#dup\npygeodesy.named._NamedTuple.iterunits\tpygeodesy.named._NamedTuple-class.html#iterunits\npygeodesy.named._NamedTuple.iteritems\tpygeodesy.named._NamedTuple-class.html#iteritems\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.deprecated.classes.Rhumb7Tuple.toGDict\tpygeodesy.deprecated.classes.Rhumb7Tuple-class.html#toGDict\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._NamedTuple.items\tpygeodesy.named._NamedTuple-class.html#items\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.deprecated.classes.Rhumb7Tuple.toRhumb8Tuple\tpygeodesy.deprecated.classes.Rhumb7Tuple-class.html#toRhumb8Tuple\npygeodesy.named._NamedTuple.__repr__\tpygeodesy.named._NamedTuple-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._NamedTuple.__hash__\tpygeodesy.named._NamedTuple-class.html#__hash__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.deprecated.classes.Rhumb7Tuple._Units_\tpygeodesy.deprecated.classes.Rhumb7Tuple-class.html#_Units_\npygeodesy.deprecated.classes.Rhumb7Tuple._to7Tuple\tpygeodesy.deprecated.classes.Rhumb7Tuple-class.html#_to7Tuple\npygeodesy.deprecated.classes.RhumbOrder2Tuple\tpygeodesy.deprecated.classes.RhumbOrder2Tuple-class.html\npygeodesy.named._NamedTuple.toRepr\tpygeodesy.named._NamedTuple-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._NamedTuple.toUnits\tpygeodesy.named._NamedTuple-class.html#toUnits\npygeodesy.named._NamedTuple._validate\tpygeodesy.named._NamedTuple-class.html#_validate\npygeodesy.named._NamedTuple.__str__\tpygeodesy.named._NamedTuple-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._NamedTuple._DOT_\tpygeodesy.named._NamedTuple-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._NamedTuple.reUnit\tpygeodesy.named._NamedTuple-class.html#reUnit\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.deprecated.classes.RhumbOrder2Tuple._Names_\tpygeodesy.deprecated.classes.RhumbOrder2Tuple-class.html#_Names_\npygeodesy.named._NamedTuple.__setattr__\tpygeodesy.named._NamedTuple-class.html#__setattr__\npygeodesy.deprecated.classes._Deprecated_NamedTuple.__new__\tpygeodesy.deprecated.classes._Deprecated_NamedTuple-class.html#__new__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._NamedTuple._validated\tpygeodesy.named._NamedTuple-class.html#_validated\npygeodesy.named._NamedTuple.__getattr__\tpygeodesy.named._NamedTuple-class.html#__getattr__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._NamedTuple._xtend\tpygeodesy.named._NamedTuple-class.html#_xtend\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._NamedTuple.units\tpygeodesy.named._NamedTuple-class.html#units\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedTuple.toStr\tpygeodesy.named._NamedTuple-class.html#toStr\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedTuple.dup\tpygeodesy.named._NamedTuple-class.html#dup\npygeodesy.named._NamedTuple.iterunits\tpygeodesy.named._NamedTuple-class.html#iterunits\npygeodesy.named._NamedTuple.iteritems\tpygeodesy.named._NamedTuple-class.html#iteritems\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._NamedTuple.items\tpygeodesy.named._NamedTuple-class.html#items\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedTuple.__delattr__\tpygeodesy.named._NamedTuple-class.html#__delattr__\npygeodesy.named._NamedTuple.__repr__\tpygeodesy.named._NamedTuple-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._NamedTuple.__hash__\tpygeodesy.named._NamedTuple-class.html#__hash__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.deprecated.classes.RhumbOrder2Tuple._Units_\tpygeodesy.deprecated.classes.RhumbOrder2Tuple-class.html#_Units_\npygeodesy.deprecated.classes.Transform7Tuple\tpygeodesy.deprecated.classes.Transform7Tuple-class.html\npygeodesy.named._NamedTuple.toRepr\tpygeodesy.named._NamedTuple-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._NamedTuple.toUnits\tpygeodesy.named._NamedTuple-class.html#toUnits\npygeodesy.named._NamedTuple._validate\tpygeodesy.named._NamedTuple-class.html#_validate\npygeodesy.named._NamedTuple.__str__\tpygeodesy.named._NamedTuple-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._NamedTuple._DOT_\tpygeodesy.named._NamedTuple-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._NamedTuple.reUnit\tpygeodesy.named._NamedTuple-class.html#reUnit\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.deprecated.classes.Transform7Tuple._Names_\tpygeodesy.deprecated.classes.Transform7Tuple-class.html#_Names_\npygeodesy.named._NamedTuple.__setattr__\tpygeodesy.named._NamedTuple-class.html#__setattr__\npygeodesy.deprecated.classes.Transform7Tuple.__new__\tpygeodesy.deprecated.classes.Transform7Tuple-class.html#__new__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._NamedTuple._validated\tpygeodesy.named._NamedTuple-class.html#_validated\npygeodesy.named._NamedTuple.__getattr__\tpygeodesy.named._NamedTuple-class.html#__getattr__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._NamedTuple._xtend\tpygeodesy.named._NamedTuple-class.html#_xtend\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._NamedTuple.dup\tpygeodesy.named._NamedTuple-class.html#dup\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedTuple.toStr\tpygeodesy.named._NamedTuple-class.html#toStr\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedTuple.units\tpygeodesy.named._NamedTuple-class.html#units\npygeodesy.named._NamedTuple.iterunits\tpygeodesy.named._NamedTuple-class.html#iterunits\npygeodesy.named._NamedTuple.iteritems\tpygeodesy.named._NamedTuple-class.html#iteritems\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._NamedTuple.items\tpygeodesy.named._NamedTuple-class.html#items\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedTuple.__delattr__\tpygeodesy.named._NamedTuple-class.html#__delattr__\npygeodesy.named._NamedTuple.__repr__\tpygeodesy.named._NamedTuple-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._NamedTuple.__hash__\tpygeodesy.named._NamedTuple-class.html#__hash__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.deprecated.classes.Transform7Tuple._Units_\tpygeodesy.deprecated.classes.Transform7Tuple-class.html#_Units_\npygeodesy.deprecated.classes.TriAngle4Tuple\tpygeodesy.deprecated.classes.TriAngle4Tuple-class.html\npygeodesy.named._NamedTuple.toRepr\tpygeodesy.named._NamedTuple-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._NamedTuple.toUnits\tpygeodesy.named._NamedTuple-class.html#toUnits\npygeodesy.named._NamedTuple._validate\tpygeodesy.named._NamedTuple-class.html#_validate\npygeodesy.named._NamedTuple.__str__\tpygeodesy.named._NamedTuple-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._NamedTuple._DOT_\tpygeodesy.named._NamedTuple-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._NamedTuple.reUnit\tpygeodesy.named._NamedTuple-class.html#reUnit\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.deprecated.classes.TriAngle4Tuple._Names_\tpygeodesy.deprecated.classes.TriAngle4Tuple-class.html#_Names_\npygeodesy.named._NamedTuple.__setattr__\tpygeodesy.named._NamedTuple-class.html#__setattr__\npygeodesy.deprecated.classes._Deprecated_NamedTuple.__new__\tpygeodesy.deprecated.classes._Deprecated_NamedTuple-class.html#__new__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._NamedTuple._validated\tpygeodesy.named._NamedTuple-class.html#_validated\npygeodesy.named._NamedTuple.__getattr__\tpygeodesy.named._NamedTuple-class.html#__getattr__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._NamedTuple._xtend\tpygeodesy.named._NamedTuple-class.html#_xtend\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._NamedTuple.dup\tpygeodesy.named._NamedTuple-class.html#dup\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedTuple.toStr\tpygeodesy.named._NamedTuple-class.html#toStr\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedTuple.units\tpygeodesy.named._NamedTuple-class.html#units\npygeodesy.named._NamedTuple.iterunits\tpygeodesy.named._NamedTuple-class.html#iterunits\npygeodesy.named._NamedTuple.iteritems\tpygeodesy.named._NamedTuple-class.html#iteritems\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._NamedTuple.items\tpygeodesy.named._NamedTuple-class.html#items\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedTuple.__delattr__\tpygeodesy.named._NamedTuple-class.html#__delattr__\npygeodesy.named._NamedTuple.__repr__\tpygeodesy.named._NamedTuple-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._NamedTuple.__hash__\tpygeodesy.named._NamedTuple-class.html#__hash__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.deprecated.classes.TriAngle4Tuple._Units_\tpygeodesy.deprecated.classes.TriAngle4Tuple-class.html#_Units_\npygeodesy.deprecated.classes.UtmUps4Tuple\tpygeodesy.deprecated.classes.UtmUps4Tuple-class.html\npygeodesy.named._NamedTuple.toRepr\tpygeodesy.named._NamedTuple-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._NamedTuple.toUnits\tpygeodesy.named._NamedTuple-class.html#toUnits\npygeodesy.named._NamedTuple._validate\tpygeodesy.named._NamedTuple-class.html#_validate\npygeodesy.named._NamedTuple.__str__\tpygeodesy.named._NamedTuple-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._NamedTuple._DOT_\tpygeodesy.named._NamedTuple-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._NamedTuple.reUnit\tpygeodesy.named._NamedTuple-class.html#reUnit\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.deprecated.classes.UtmUps4Tuple._Names_\tpygeodesy.deprecated.classes.UtmUps4Tuple-class.html#_Names_\npygeodesy.named._NamedTuple.__setattr__\tpygeodesy.named._NamedTuple-class.html#__setattr__\npygeodesy.deprecated.classes._Deprecated_NamedTuple.__new__\tpygeodesy.deprecated.classes._Deprecated_NamedTuple-class.html#__new__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._NamedTuple._validated\tpygeodesy.named._NamedTuple-class.html#_validated\npygeodesy.named._NamedTuple.__getattr__\tpygeodesy.named._NamedTuple-class.html#__getattr__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._NamedTuple._xtend\tpygeodesy.named._NamedTuple-class.html#_xtend\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._NamedTuple.dup\tpygeodesy.named._NamedTuple-class.html#dup\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedTuple.toStr\tpygeodesy.named._NamedTuple-class.html#toStr\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedTuple.units\tpygeodesy.named._NamedTuple-class.html#units\npygeodesy.named._NamedTuple.iterunits\tpygeodesy.named._NamedTuple-class.html#iterunits\npygeodesy.named._NamedTuple.iteritems\tpygeodesy.named._NamedTuple-class.html#iteritems\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._NamedTuple.items\tpygeodesy.named._NamedTuple-class.html#items\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedTuple.__delattr__\tpygeodesy.named._NamedTuple-class.html#__delattr__\npygeodesy.named._NamedTuple.__repr__\tpygeodesy.named._NamedTuple-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._NamedTuple.__hash__\tpygeodesy.named._NamedTuple-class.html#__hash__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.deprecated.classes.UtmUps4Tuple._Units_\tpygeodesy.deprecated.classes.UtmUps4Tuple-class.html#_Units_\npygeodesy.deprecated.classes.XDist\tpygeodesy.deprecated.classes.XDist-class.html\npygeodesy.named.ADict.toRepr\tpygeodesy.named.ADict-class.html#toRepr\npygeodesy.named.ADict.__str__\tpygeodesy.named.ADict-class.html#__str__\npygeodesy.deprecated.classes.XDist.__init__\tpygeodesy.deprecated.classes.XDist-class.html#__init__\npygeodesy.named.ADict.__setattr__\tpygeodesy.named.ADict-class.html#__setattr__\npygeodesy.named.ADict._toT\tpygeodesy.named.ADict-class.html#_toT\npygeodesy.named.ADict.__getattr__\tpygeodesy.named.ADict-class.html#__getattr__\npygeodesy.named.ADict._toL\tpygeodesy.named.ADict-class.html#_toL\npygeodesy.named.ADict._AttributeError\tpygeodesy.named.ADict-class.html#_AttributeError\npygeodesy.named.ADict._iteration\tpygeodesy.named.ADict-class.html#_iteration\npygeodesy.named.ADict.toStr\tpygeodesy.named.ADict-class.html#toStr\npygeodesy.named.ADict.set_\tpygeodesy.named.ADict-class.html#set_\npygeodesy.named.ADict.iteration\tpygeodesy.named.ADict-class.html#iteration\npygeodesy.named.ADict.typename\tpygeodesy.named.ADict-class.html#typename\npygeodesy.named.ADict.__repr__\tpygeodesy.named.ADict-class.html#__repr__\npygeodesy.deprecated.classes._Deprecated_NamedTuple\tpygeodesy.deprecated.classes._Deprecated_NamedTuple-class.html\npygeodesy.named._NamedTuple.toRepr\tpygeodesy.named._NamedTuple-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._NamedTuple.toUnits\tpygeodesy.named._NamedTuple-class.html#toUnits\npygeodesy.named._NamedTuple._validate\tpygeodesy.named._NamedTuple-class.html#_validate\npygeodesy.named._NamedTuple.__str__\tpygeodesy.named._NamedTuple-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._NamedTuple._DOT_\tpygeodesy.named._NamedTuple-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._NamedTuple.reUnit\tpygeodesy.named._NamedTuple-class.html#reUnit\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.named._NamedTuple._Names_\tpygeodesy.named._NamedTuple-class.html#_Names_\npygeodesy.named._NamedTuple.__setattr__\tpygeodesy.named._NamedTuple-class.html#__setattr__\npygeodesy.deprecated.classes._Deprecated_NamedTuple.__new__\tpygeodesy.deprecated.classes._Deprecated_NamedTuple-class.html#__new__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._NamedTuple._validated\tpygeodesy.named._NamedTuple-class.html#_validated\npygeodesy.named._NamedTuple.__getattr__\tpygeodesy.named._NamedTuple-class.html#__getattr__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._NamedTuple._xtend\tpygeodesy.named._NamedTuple-class.html#_xtend\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._NamedTuple.dup\tpygeodesy.named._NamedTuple-class.html#dup\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedTuple.toStr\tpygeodesy.named._NamedTuple-class.html#toStr\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedTuple.units\tpygeodesy.named._NamedTuple-class.html#units\npygeodesy.named._NamedTuple.iterunits\tpygeodesy.named._NamedTuple-class.html#iterunits\npygeodesy.named._NamedTuple.iteritems\tpygeodesy.named._NamedTuple-class.html#iteritems\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._NamedTuple.items\tpygeodesy.named._NamedTuple-class.html#items\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedTuple.__delattr__\tpygeodesy.named._NamedTuple-class.html#__delattr__\npygeodesy.named._NamedTuple.__repr__\tpygeodesy.named._NamedTuple-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._NamedTuple.__hash__\tpygeodesy.named._NamedTuple-class.html#__hash__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.named._NamedTuple._Units_\tpygeodesy.named._NamedTuple-class.html#_Units_\npygeodesy.deprecated.consterns.Elliperim\tpygeodesy.deprecated.consterns.Elliperim-class.html\npygeodesy.deprecated.consterns.Elliperim.AGM\tpygeodesy.deprecated.consterns.Elliperim-class.html#AGM\npygeodesy.deprecated.consterns.Elliperim.R2\tpygeodesy.deprecated.consterns.Elliperim-class.html#R2\npygeodesy.deprecated.consterns.Elliperim.Arc43\tpygeodesy.deprecated.consterns.Elliperim-class.html#Arc43\npygeodesy.deprecated.consterns.Elliperim.E2k\tpygeodesy.deprecated.consterns.Elliperim-class.html#E2k\npygeodesy.deprecated.consterns.Elliperim.GK\tpygeodesy.deprecated.consterns.Elliperim-class.html#GK\npygeodesy.deprecated.consterns.Elliperim.HG\tpygeodesy.deprecated.consterns.Elliperim-class.html#HG\npygeodesy.deprecated.consterns.Elliperim.e2k\tpygeodesy.deprecated.consterns.Elliperim-class.html#e2k\npygeodesy.deprecated.nvector.Nvector\tpygeodesy.deprecated.nvector.Nvector-class.html\npygeodesy.nvectorBase.NvectorBase.toCartesian\tpygeodesy.nvectorBase.NvectorBase-class.html#toCartesian\npygeodesy.vector3dBase.Vector3dBase.__int__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__int__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedBase.__str__\tpygeodesy.named._NamedBase-class.html#__str__\npygeodesy.nvectorBase.NvectorBase.datum\tpygeodesy.nvectorBase.NvectorBase-class.html#datum\npygeodesy.vector3dBase.Vector3dBase.__imatmul__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__imatmul__\npygeodesy.nvectorBase.NvectorBase.toLatLon\tpygeodesy.nvectorBase.NvectorBase-class.html#toLatLon\npygeodesy.nvectorBase.NvectorBase.to3abh\tpygeodesy.nvectorBase.NvectorBase-class.html#to3abh\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.vector3dBase.Vector3dBase.__rdiv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rdiv__\npygeodesy.vector3dBase.Vector3dBase.__rmul__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rmul__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.vector3dBase.Vector3dBase.__lt__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__lt__\npygeodesy.nvectorBase.NvectorBase.philamheightdatum\tpygeodesy.nvectorBase.NvectorBase-class.html#philamheightdatum\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.nvectorBase.NvectorBase.to3llh\tpygeodesy.nvectorBase.NvectorBase-class.html#to3llh\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.vector3dBase.Vector3dBase.__cmp__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__cmp__\npygeodesy.vector3d.Vector3d.nearestOn\tpygeodesy.vector3d.Vector3d-class.html#nearestOn\npygeodesy.vector3dBase.Vector3dBase.minus_\tpygeodesy.vector3dBase.Vector3dBase-class.html#minus_\npygeodesy.vector3dBase.Vector3dBase.__rfloordiv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rfloordiv__\npygeodesy.vector3dBase.Vector3dBase.crosserrors\tpygeodesy.vector3dBase.Vector3dBase-class.html#crosserrors\npygeodesy.nvectorBase.NvectorBase._h\tpygeodesy.nvectorBase.NvectorBase-class.html#_h\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.vector3dBase.Vector3dBase.rotateAround\tpygeodesy.vector3dBase.Vector3dBase-class.html#rotateAround\npygeodesy.nvectorBase.NvectorBase.to2ab\tpygeodesy.nvectorBase.NvectorBase-class.html#to2ab\npygeodesy.nvectorBase.NvectorBase.toStr\tpygeodesy.nvectorBase.NvectorBase-class.html#toStr\npygeodesy.vector3dBase.Vector3dBase._roty\tpygeodesy.vector3dBase.Vector3dBase-class.html#_roty\npygeodesy.vector3dBase.Vector3dBase.angleTo\tpygeodesy.vector3dBase.Vector3dBase-class.html#angleTo\npygeodesy.vector3dBase.Vector3dBase.__pow__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__pow__\npygeodesy.vector3dBase.Vector3dBase.__gt__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__gt__\npygeodesy.vector3dBase.Vector3dBase.__bool__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__bool__\npygeodesy.vector3dBase.Vector3dBase.x2y2z23\tpygeodesy.vector3dBase.Vector3dBase-class.html#x2y2z23\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.vector3dBase.Vector3dBase.rotate\tpygeodesy.vector3dBase.Vector3dBase-class.html#rotate\npygeodesy.vector3dBase.Vector3dBase.__nonzero__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__nonzero__\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.vector3dBase.Vector3dBase._united\tpygeodesy.vector3dBase.Vector3dBase-class.html#_united\npygeodesy.vector3dBase.Vector3dBase._other_cmp\tpygeodesy.vector3dBase.Vector3dBase-class.html#_other_cmp\npygeodesy.vector3dBase.Vector3dBase._plus\tpygeodesy.vector3dBase.Vector3dBase-class.html#_plus\npygeodesy.vector3dBase.Vector3dBase.__mod__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__mod__\npygeodesy.vector3dBase.Vector3dBase.to3xyz\tpygeodesy.vector3dBase.Vector3dBase-class.html#to3xyz\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.nvectorBase.NvectorBase.h\tpygeodesy.nvectorBase.NvectorBase-class.html#h\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.vector3dBase.Vector3dBase.x\tpygeodesy.vector3dBase.Vector3dBase-class.html#x\npygeodesy.vector3dBase.Vector3dBase.__long__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__long__\npygeodesy.vector3dBase.Vector3dBase.cmp\tpygeodesy.vector3dBase.Vector3dBase-class.html#cmp\npygeodesy.vector3dBase.Vector3dBase.homogeneous\tpygeodesy.vector3dBase.Vector3dBase-class.html#homogeneous\npygeodesy.nvectorBase.NvectorBase.ellipsoidalNvector\tpygeodesy.nvectorBase.NvectorBase-class.html#ellipsoidalNvector\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.vector3dBase.Vector3dBase.plus_\tpygeodesy.vector3dBase.Vector3dBase-class.html#plus_\npygeodesy.nvectorBase.NvectorBase._H\tpygeodesy.nvectorBase.NvectorBase-class.html#_H\npygeodesy.vector3dBase.Vector3dBase.__truediv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__truediv__\npygeodesy.vector3d.Vector3d.trilaterate2d2\tpygeodesy.vector3d.Vector3d-class.html#trilaterate2d2\npygeodesy.vector3dBase.Vector3dBase.euclid\tpygeodesy.vector3dBase.Vector3dBase-class.html#euclid\npygeodesy.vector3dBase.Vector3dBase._minus\tpygeodesy.vector3dBase.Vector3dBase-class.html#_minus\npygeodesy.vector3d.Vector3d.trilaterate3d2\tpygeodesy.vector3d.Vector3d-class.html#trilaterate3d2\npygeodesy.vector3dBase.Vector3dBase.__rmod__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rmod__\npygeodesy.nvectorBase.NvectorBase.latlon\tpygeodesy.nvectorBase.NvectorBase-class.html#latlon\npygeodesy.vector3dBase.Vector3dBase._crosserrors\tpygeodesy.vector3dBase.Vector3dBase-class.html#_crosserrors\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.vector3dBase.Vector3dBase._mapped\tpygeodesy.vector3dBase.Vector3dBase-class.html#_mapped\npygeodesy.vector3dBase.Vector3dBase.sum\tpygeodesy.vector3dBase.Vector3dBase-class.html#sum\npygeodesy.nvectorBase.NvectorBase.philam\tpygeodesy.nvectorBase.NvectorBase-class.html#philam\npygeodesy.vector3dBase.Vector3dBase._ll\tpygeodesy.vector3dBase.Vector3dBase-class.html#_ll\npygeodesy.vector3dBase.Vector3dBase.isequalTo\tpygeodesy.vector3dBase.Vector3dBase-class.html#isequalTo\npygeodesy.vector3dBase.Vector3dBase.__ne__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__ne__\npygeodesy.vector3dBase.Vector3dBase.__ifloordiv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__ifloordiv__\npygeodesy.vector3dBase.Vector3dBase.dividedBy_\tpygeodesy.vector3dBase.Vector3dBase-class.html#dividedBy_\npygeodesy.vector3dBase.Vector3dBase.equals\tpygeodesy.vector3dBase.Vector3dBase-class.html#equals\npygeodesy.vector3dBase.Vector3dBase.times_\tpygeodesy.vector3dBase.Vector3dBase-class.html#times_\npygeodesy.nvectorBase.NvectorBase.sphericalNvector\tpygeodesy.nvectorBase.NvectorBase-class.html#sphericalNvector\npygeodesy.vector3d.Vector3d.circin6\tpygeodesy.vector3d.Vector3d-class.html#circin6\npygeodesy.vector3d.Vector3d.nearestOn6\tpygeodesy.vector3d.Vector3d-class.html#nearestOn6\npygeodesy.vector3dBase.Vector3dBase.__rmatmul__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rmatmul__\npygeodesy.nvectorBase.NvectorBase.toVector3d\tpygeodesy.nvectorBase.NvectorBase-class.html#toVector3d\npygeodesy.vector3dBase.Vector3dBase.floats\tpygeodesy.vector3dBase.Vector3dBase-class.html#floats\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.vector3d.Vector3d.meeus2\tpygeodesy.vector3d.Vector3d-class.html#meeus2\npygeodesy.vector3dBase.Vector3dBase.__imul__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__imul__\npygeodesy.vector3dBase.Vector3dBase.__trunc__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__trunc__\npygeodesy.vector3dBase.Vector3dBase.times\tpygeodesy.vector3dBase.Vector3dBase-class.html#times\npygeodesy.vector3dBase.Vector3dBase.length\tpygeodesy.vector3dBase.Vector3dBase-class.html#length\npygeodesy.vector3dBase.Vector3dBase.plus\tpygeodesy.vector3dBase.Vector3dBase-class.html#plus\npygeodesy.vector3dBase.Vector3dBase.__mul__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__mul__\npygeodesy.vector3dBase.Vector3dBase.__matmul__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__matmul__\npygeodesy.vector3dBase.Vector3dBase.__divmod__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__divmod__\npygeodesy.named._NamedBase.toRepr\tpygeodesy.named._NamedBase-class.html#toRepr\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.vector3dBase.Vector3dBase.length2\tpygeodesy.vector3dBase.Vector3dBase-class.html#length2\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.vector3dBase.Vector3dBase.pow\tpygeodesy.vector3dBase.Vector3dBase-class.html#pow\npygeodesy.vector3dBase.Vector3dBase.xyz\tpygeodesy.vector3dBase.Vector3dBase-class.html#xyz\npygeodesy.vector3dBase.Vector3dBase.others\tpygeodesy.vector3dBase.Vector3dBase-class.html#others\npygeodesy.nvectorBase.NvectorBase.isEllipsoidal\tpygeodesy.nvectorBase.NvectorBase-class.html#isEllipsoidal\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.vector3dBase.Vector3dBase.__rsub__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rsub__\npygeodesy.vector3dBase.Vector3dBase.ints\tpygeodesy.vector3dBase.Vector3dBase-class.html#ints\npygeodesy.vector3dBase.Vector3dBase.negate\tpygeodesy.vector3dBase.Vector3dBase-class.html#negate\npygeodesy.vector3dBase.Vector3dBase.apply\tpygeodesy.vector3dBase.Vector3dBase-class.html#apply\npygeodesy.vector3dBase.Vector3dBase.equirectangular\tpygeodesy.vector3dBase.Vector3dBase-class.html#equirectangular\npygeodesy.nvectorBase.NvectorBase.unit\tpygeodesy.nvectorBase.NvectorBase-class.html#unit\npygeodesy.vector3dBase.Vector3dBase.__float__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__float__\npygeodesy.vector3dBase.Vector3dBase.__rpow__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rpow__\npygeodesy.vector3d.Vector3d.soddy4\tpygeodesy.vector3d.Vector3d-class.html#soddy4\npygeodesy.vector3dBase.Vector3dBase._N_vector\tpygeodesy.vector3dBase.Vector3dBase-class.html#_N_vector\npygeodesy.nvectorBase.NvectorBase.lon\tpygeodesy.nvectorBase.NvectorBase-class.html#lon\npygeodesy.vector3d.Vector3d.iscolinearWith\tpygeodesy.vector3d.Vector3d-class.html#iscolinearWith\npygeodesy.nvectorBase.NvectorBase.xyzh\tpygeodesy.nvectorBase.NvectorBase-class.html#xyzh\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.vector3dBase.Vector3dBase.__itruediv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__itruediv__\npygeodesy.vector3dBase.Vector3dBase.dividedBy\tpygeodesy.vector3dBase.Vector3dBase-class.html#dividedBy\npygeodesy.nvectorBase.NvectorBase.Ecef\tpygeodesy.nvectorBase.NvectorBase-class.html#Ecef\npygeodesy.vector3dBase.Vector3dBase.__rdivmod__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rdivmod__\npygeodesy.nvectorBase.NvectorBase._toEcefDrv3\tpygeodesy.nvectorBase.NvectorBase-class.html#_toEcefDrv3\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.vector3d.Vector3d.circum3\tpygeodesy.vector3d.Vector3d-class.html#circum3\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.vector3dBase.Vector3dBase.__eq__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__eq__\npygeodesy.vector3dBase.Vector3dBase.__round__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__round__\npygeodesy.vector3dBase.Vector3dBase.bools\tpygeodesy.vector3dBase.Vector3dBase-class.html#bools\npygeodesy.nvectorBase.NvectorBase.latlonheight\tpygeodesy.nvectorBase.NvectorBase-class.html#latlonheight\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.vector3dBase.Vector3dBase.xyz3\tpygeodesy.vector3dBase.Vector3dBase-class.html#xyz3\npygeodesy.vector3dBase.Vector3dBase.__iadd__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__iadd__\npygeodesy.vector3d.Vector3d.circum4_\tpygeodesy.vector3d.Vector3d-class.html#circum4_\npygeodesy.nvectorBase.NvectorBase.latlonheightdatum\tpygeodesy.nvectorBase.NvectorBase-class.html#latlonheightdatum\npygeodesy.vector3dBase.Vector3dBase.__le__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__le__\npygeodesy.vector3dBase.Vector3dBase.__floordiv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__floordiv__\npygeodesy.vector3dBase.Vector3dBase.__hash__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__hash__\npygeodesy.vector3dBase.Vector3dBase.__sub__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__sub__\npygeodesy.vector3dBase.Vector3dBase.z\tpygeodesy.vector3dBase.Vector3dBase-class.html#z\npygeodesy.vector3dBase.Vector3dBase._xyz\tpygeodesy.vector3dBase.Vector3dBase-class.html#_xyz\npygeodesy.vector3dBase.Vector3dBase.minus\tpygeodesy.vector3dBase.Vector3dBase-class.html#minus\npygeodesy.vector3dBase.Vector3dBase.__ge__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__ge__\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.vector3d.Vector3d.bearing\tpygeodesy.vector3d.Vector3d-class.html#bearing\npygeodesy.vector3dBase.Vector3dBase.__rtruediv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rtruediv__\npygeodesy.vector3dBase.Vector3dBase.floorDividedBy_\tpygeodesy.vector3dBase.Vector3dBase-class.html#floorDividedBy_\npygeodesy.vector3dBase.Vector3dBase.__isub__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__isub__\npygeodesy.vector3dBase.Vector3dBase.x2y2z2\tpygeodesy.vector3dBase.Vector3dBase-class.html#x2y2z2\npygeodesy.vector3dBase.Vector3dBase.__radd__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__radd__\npygeodesy.vector3d.Vector3d.parse\tpygeodesy.vector3d.Vector3d-class.html#parse\npygeodesy.vector3dBase.Vector3dBase.floorDividedBy\tpygeodesy.vector3dBase.Vector3dBase-class.html#floorDividedBy\npygeodesy.vector3dBase.Vector3dBase.__floor__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__floor__\npygeodesy.nvectorBase.NvectorBase.isSpherical\tpygeodesy.nvectorBase.NvectorBase-class.html#isSpherical\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.deprecated.nvector.Nvector.__init__\tpygeodesy.deprecated.nvector.Nvector-class.html#__init__\npygeodesy.vector3dBase.Vector3dBase.__imod__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__imod__\npygeodesy.vector3dBase.Vector3dBase.fabs\tpygeodesy.vector3dBase.Vector3dBase-class.html#fabs\npygeodesy.vector3dBase.Vector3dBase._times\tpygeodesy.vector3dBase.Vector3dBase-class.html#_times\npygeodesy.vector3d.Vector3d.radii11\tpygeodesy.vector3d.Vector3d-class.html#radii11\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.vector3dBase.Vector3dBase.cross\tpygeodesy.vector3dBase.Vector3dBase-class.html#cross\npygeodesy.nvectorBase.NvectorBase.philamheight\tpygeodesy.nvectorBase.NvectorBase-class.html#philamheight\npygeodesy.vector3dBase.Vector3dBase.__pos__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__pos__\npygeodesy.nvectorBase.NvectorBase.H\tpygeodesy.nvectorBase.NvectorBase-class.html#H\npygeodesy.vector3dBase.Vector3dBase.__abs__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__abs__\npygeodesy.nvectorBase.NvectorBase._datum\tpygeodesy.nvectorBase.NvectorBase-class.html#_datum\npygeodesy.named._NamedBase.__repr__\tpygeodesy.named._NamedBase-class.html#__repr__\npygeodesy.nvectorBase.NvectorBase.lam\tpygeodesy.nvectorBase.NvectorBase-class.html#lam\npygeodesy.nvectorBase.NvectorBase.phi\tpygeodesy.nvectorBase.NvectorBase-class.html#phi\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.vector3dBase.Vector3dBase.__idiv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__idiv__\npygeodesy.nvectorBase.NvectorBase.to4xyzh\tpygeodesy.nvectorBase.NvectorBase-class.html#to4xyzh\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.vector3dBase.Vector3dBase._fromll\tpygeodesy.vector3dBase.Vector3dBase-class.html#_fromll\npygeodesy.vector3dBase.Vector3dBase.__add__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__add__\npygeodesy.nvectorBase.NvectorBase.lat\tpygeodesy.nvectorBase.NvectorBase-class.html#lat\npygeodesy.vector3dBase.Vector3dBase.intermediateTo\tpygeodesy.vector3dBase.Vector3dBase-class.html#intermediateTo\npygeodesy.nvectorBase.NvectorBase.hStr\tpygeodesy.nvectorBase.NvectorBase-class.html#hStr\npygeodesy.nvectorBase.NvectorBase.to2ll\tpygeodesy.nvectorBase.NvectorBase-class.html#to2ll\npygeodesy.vector3dBase.Vector3dBase.isconjugateTo\tpygeodesy.vector3dBase.Vector3dBase-class.html#isconjugateTo\npygeodesy.vector3dBase.Vector3dBase.__ipow__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__ipow__\npygeodesy.vector3dBase.Vector3dBase.__div__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__div__\npygeodesy.vector3dBase.Vector3dBase.__ceil__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__ceil__\npygeodesy.vector3dBase.Vector3dBase.__neg__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__neg__\npygeodesy.vector3dBase.Vector3dBase.y\tpygeodesy.vector3dBase.Vector3dBase-class.html#y\npygeodesy.vector3dBase.Vector3dBase.dot\tpygeodesy.vector3dBase.Vector3dBase-class.html#dot\npygeodesy.ecef.Ecef9Tuple\tpygeodesy.ecef.Ecef9Tuple-class.html\npygeodesy.ecef.Ecef9Tuple.toCartesian\tpygeodesy.ecef.Ecef9Tuple-class.html#toCartesian\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedTuple._validate\tpygeodesy.named._NamedTuple-class.html#_validate\npygeodesy.named._NamedTuple.__str__\tpygeodesy.named._NamedTuple-class.html#__str__\npygeodesy.named._NamedTuple.iteritems\tpygeodesy.named._NamedTuple-class.html#iteritems\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.ecef.Ecef9Tuple.toLatLon\tpygeodesy.ecef.Ecef9Tuple-class.html#toLatLon\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.ecef.Ecef9Tuple.philamheightdatum\tpygeodesy.ecef.Ecef9Tuple-class.html#philamheightdatum\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.ecef.Ecef9Tuple.ellipsoid\tpygeodesy.ecef.Ecef9Tuple-class.html#ellipsoid\npygeodesy.named._NamedTuple._validated\tpygeodesy.named._NamedTuple-class.html#_validated\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._NamedTuple._xtend\tpygeodesy.named._NamedTuple-class.html#_xtend\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.ecef.Ecef9Tuple._ecef9\tpygeodesy.ecef.Ecef9Tuple-class.html#_ecef9\npygeodesy.named._NamedTuple.toStr\tpygeodesy.named._NamedTuple-class.html#toStr\npygeodesy.ecefLocals._EcefLocal.toXyz\tpygeodesy.ecefLocals._EcefLocal-class.html#toXyz\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.ecef.Ecef9Tuple.latlonheightdatum\tpygeodesy.ecef.Ecef9Tuple-class.html#latlonheightdatum\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.ecef.Ecef9Tuple._Units_\tpygeodesy.ecef.Ecef9Tuple-class.html#_Units_\npygeodesy.named._NamedTuple.toRepr\tpygeodesy.named._NamedTuple-class.html#toRepr\npygeodesy.ecefLocals._EcefLocal._ltp\tpygeodesy.ecefLocals._EcefLocal-class.html#_ltp\npygeodesy.ecef.Ecef9Tuple.toDatum\tpygeodesy.ecef.Ecef9Tuple-class.html#toDatum\npygeodesy.ecefLocals._EcefLocal.toLtp\tpygeodesy.ecefLocals._EcefLocal-class.html#toLtp\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.ecefLocals._EcefLocal._ecef9datum\tpygeodesy.ecefLocals._EcefLocal-class.html#_ecef9datum\npygeodesy.ecef.Ecef9Tuple.latlon\tpygeodesy.ecef.Ecef9Tuple-class.html#latlon\npygeodesy.ecef.Ecef9Tuple.lonVermeille\tpygeodesy.ecef.Ecef9Tuple-class.html#lonVermeille\npygeodesy.ecef.Ecef9Tuple.philamVermeille\tpygeodesy.ecef.Ecef9Tuple-class.html#philamVermeille\npygeodesy.named._NamedTuple.__getattr__\tpygeodesy.named._NamedTuple-class.html#__getattr__\npygeodesy.ecef.Ecef9Tuple.philam\tpygeodesy.ecef.Ecef9Tuple-class.html#philam\npygeodesy.ecefLocals._EcefLocal.toAer\tpygeodesy.ecefLocals._EcefLocal-class.html#toAer\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.ecef.Ecef9Tuple.Mx\tpygeodesy.ecef.Ecef9Tuple-class.html#Mx\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.ecef.Ecef9Tuple.lamVermeille\tpygeodesy.ecef.Ecef9Tuple-class.html#lamVermeille\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._NamedTuple.__delattr__\tpygeodesy.named._NamedTuple-class.html#__delattr__\npygeodesy.ecef.Ecef9Tuple.convertDatum\tpygeodesy.ecef.Ecef9Tuple-class.html#convertDatum\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._NamedTuple.toUnits\tpygeodesy.named._NamedTuple-class.html#toUnits\npygeodesy.ecef.Ecef9Tuple.xyz\tpygeodesy.ecef.Ecef9Tuple-class.html#xyz\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._NamedTuple._DOT_\tpygeodesy.named._NamedTuple-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.ecef.Ecef9Tuple.xyzh\tpygeodesy.ecef.Ecef9Tuple-class.html#xyzh\npygeodesy.named._NamedTuple.dup\tpygeodesy.named._NamedTuple-class.html#dup\npygeodesy.ecefLocals._EcefLocal.Ecef\tpygeodesy.ecefLocals._EcefLocal-class.html#Ecef\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.ecefLocals._EcefLocal.toEnu\tpygeodesy.ecefLocals._EcefLocal-class.html#toEnu\npygeodesy.ecef.Ecef9Tuple.latlonheight\tpygeodesy.ecef.Ecef9Tuple-class.html#latlonheight\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.ecefLocals._EcefLocal._ltp_ecef2local\tpygeodesy.ecefLocals._EcefLocal-class.html#_ltp_ecef2local\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedTuple.items\tpygeodesy.named._NamedTuple-class.html#items\npygeodesy.named._NamedTuple.__hash__\tpygeodesy.named._NamedTuple-class.html#__hash__\npygeodesy.ecef.Ecef9Tuple.phiVermeille\tpygeodesy.ecef.Ecef9Tuple-class.html#phiVermeille\npygeodesy.ecefLocals._EcefLocal.toNed\tpygeodesy.ecefLocals._EcefLocal-class.html#toNed\npygeodesy.named._NamedTuple.reUnit\tpygeodesy.named._NamedTuple-class.html#reUnit\npygeodesy.named._NamedTuple.__new__\tpygeodesy.named._NamedTuple-class.html#__new__\npygeodesy.ecef.Ecef9Tuple.latlonVermeille\tpygeodesy.ecef.Ecef9Tuple-class.html#latlonVermeille\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.ecef.Ecef9Tuple.philamheight\tpygeodesy.ecef.Ecef9Tuple-class.html#philamheight\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._NamedTuple.units\tpygeodesy.named._NamedTuple-class.html#units\npygeodesy.ecef.Ecef9Tuple._Names_\tpygeodesy.ecef.Ecef9Tuple-class.html#_Names_\npygeodesy.named._NamedTuple.__repr__\tpygeodesy.named._NamedTuple-class.html#__repr__\npygeodesy.ecef.Ecef9Tuple.lam\tpygeodesy.ecef.Ecef9Tuple-class.html#lam\npygeodesy.ecef.Ecef9Tuple.phi\tpygeodesy.ecef.Ecef9Tuple-class.html#phi\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._NamedTuple.__setattr__\tpygeodesy.named._NamedTuple-class.html#__setattr__\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedTuple.iterunits\tpygeodesy.named._NamedTuple-class.html#iterunits\npygeodesy.ecef.Ecef9Tuple.toVector\tpygeodesy.ecef.Ecef9Tuple-class.html#toVector\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.ecefLocals._EcefLocal.toLocal\tpygeodesy.ecefLocals._EcefLocal-class.html#toLocal\npygeodesy.ecef.Ecef9Tuple._CartesianBase\tpygeodesy.ecef.Ecef9Tuple-class.html#_CartesianBase\npygeodesy.ecef.EcefError\tpygeodesy.ecef.EcefError-class.html\npygeodesy.ecef.EcefFarrell21\tpygeodesy.ecef.EcefFarrell21-class.html\npygeodesy.named._NamedBase.toRepr\tpygeodesy.named._NamedBase-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.ecef._EcefBase.lon00\tpygeodesy.ecef._EcefBase-class.html#lon00\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.ecef._EcefBase._isYou\tpygeodesy.ecef._EcefBase-class.html#_isYou\npygeodesy.ecef._EcefBase.datum\tpygeodesy.ecef._EcefBase-class.html#datum\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.ecef._EcefBase.equatoradius\tpygeodesy.ecef._EcefBase-class.html#equatoradius\npygeodesy.ecef._EcefBase._E\tpygeodesy.ecef._EcefBase-class.html#_E\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.ecef._EcefBase.__init__\tpygeodesy.ecef._EcefBase-class.html#__init__\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.ecef._EcefBase.ellipsoid\tpygeodesy.ecef._EcefBase-class.html#ellipsoid\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.ecef._EcefBase.forward_\tpygeodesy.ecef._EcefBase-class.html#forward_\npygeodesy.ecef._EcefBase._Matrix\tpygeodesy.ecef._EcefBase-class.html#_Matrix\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.ecef._EcefBase.flattening\tpygeodesy.ecef._EcefBase-class.html#flattening\npygeodesy.ecef._EcefBase.toStr\tpygeodesy.ecef._EcefBase-class.html#toStr\npygeodesy.ecef._EcefBase.forward\tpygeodesy.ecef._EcefBase-class.html#forward\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._NamedBase.__str__\tpygeodesy.named._NamedBase-class.html#__str__\npygeodesy.named._NamedBase.__repr__\tpygeodesy.named._NamedBase-class.html#__repr__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.ecef._EcefBase._lon00\tpygeodesy.ecef._EcefBase-class.html#_lon00\npygeodesy.ecef._EcefBase._datum\tpygeodesy.ecef._EcefBase-class.html#_datum\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.ecef._EcefBase._polon\tpygeodesy.ecef._EcefBase-class.html#_polon\npygeodesy.ecef._EcefBase._xyzllhCpn9\tpygeodesy.ecef._EcefBase-class.html#_xyzllhCpn9\npygeodesy.named._NamedBase.others\tpygeodesy.named._NamedBase-class.html#others\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.ecef._EcefBase.__eq__\tpygeodesy.ecef._EcefBase-class.html#__eq__\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.ecef._EcefBase.a\tpygeodesy.ecef._EcefBase-class.html#a\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.ecef.EcefFarrell21.reverse\tpygeodesy.ecef.EcefFarrell21-class.html#reverse\npygeodesy.ecef._EcefBase.f\tpygeodesy.ecef._EcefBase-class.html#f\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.ecef._EcefBase._Geocentrics\tpygeodesy.ecef._EcefBase-class.html#_Geocentrics\npygeodesy.ecef._EcefBase._forward\tpygeodesy.ecef._EcefBase-class.html#_forward\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.ecef._EcefBase.equatorialRadius\tpygeodesy.ecef._EcefBase-class.html#equatorialRadius\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.ecef.EcefFarrell22\tpygeodesy.ecef.EcefFarrell22-class.html\npygeodesy.named._NamedBase.toRepr\tpygeodesy.named._NamedBase-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.ecef._EcefBase.lon00\tpygeodesy.ecef._EcefBase-class.html#lon00\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.ecef._EcefBase._isYou\tpygeodesy.ecef._EcefBase-class.html#_isYou\npygeodesy.ecef._EcefBase.datum\tpygeodesy.ecef._EcefBase-class.html#datum\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.ecef._EcefBase.equatoradius\tpygeodesy.ecef._EcefBase-class.html#equatoradius\npygeodesy.ecef._EcefBase._E\tpygeodesy.ecef._EcefBase-class.html#_E\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.ecef._EcefBase.__init__\tpygeodesy.ecef._EcefBase-class.html#__init__\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.ecef._EcefBase.ellipsoid\tpygeodesy.ecef._EcefBase-class.html#ellipsoid\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.ecef._EcefBase.forward_\tpygeodesy.ecef._EcefBase-class.html#forward_\npygeodesy.ecef._EcefBase._Matrix\tpygeodesy.ecef._EcefBase-class.html#_Matrix\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.ecef._EcefBase.flattening\tpygeodesy.ecef._EcefBase-class.html#flattening\npygeodesy.ecef._EcefBase.toStr\tpygeodesy.ecef._EcefBase-class.html#toStr\npygeodesy.ecef._EcefBase.forward\tpygeodesy.ecef._EcefBase-class.html#forward\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._NamedBase.__str__\tpygeodesy.named._NamedBase-class.html#__str__\npygeodesy.named._NamedBase.__repr__\tpygeodesy.named._NamedBase-class.html#__repr__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.ecef._EcefBase._lon00\tpygeodesy.ecef._EcefBase-class.html#_lon00\npygeodesy.ecef._EcefBase._datum\tpygeodesy.ecef._EcefBase-class.html#_datum\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.ecef._EcefBase._polon\tpygeodesy.ecef._EcefBase-class.html#_polon\npygeodesy.ecef._EcefBase._xyzllhCpn9\tpygeodesy.ecef._EcefBase-class.html#_xyzllhCpn9\npygeodesy.named._NamedBase.others\tpygeodesy.named._NamedBase-class.html#others\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.ecef._EcefBase.__eq__\tpygeodesy.ecef._EcefBase-class.html#__eq__\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.ecef._EcefBase.a\tpygeodesy.ecef._EcefBase-class.html#a\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.ecef.EcefFarrell22.reverse\tpygeodesy.ecef.EcefFarrell22-class.html#reverse\npygeodesy.ecef._EcefBase.f\tpygeodesy.ecef._EcefBase-class.html#f\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.ecef._EcefBase._Geocentrics\tpygeodesy.ecef._EcefBase-class.html#_Geocentrics\npygeodesy.ecef._EcefBase._forward\tpygeodesy.ecef._EcefBase-class.html#_forward\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.ecef._EcefBase.equatorialRadius\tpygeodesy.ecef._EcefBase-class.html#equatorialRadius\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.ecef.EcefKarney\tpygeodesy.ecef.EcefKarney-class.html\npygeodesy.named._NamedBase.toRepr\tpygeodesy.named._NamedBase-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.ecef._EcefBase.lon00\tpygeodesy.ecef._EcefBase-class.html#lon00\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.ecef._EcefBase._isYou\tpygeodesy.ecef._EcefBase-class.html#_isYou\npygeodesy.ecef._EcefBase.datum\tpygeodesy.ecef._EcefBase-class.html#datum\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.ecef._EcefBase.equatoradius\tpygeodesy.ecef._EcefBase-class.html#equatoradius\npygeodesy.ecef._EcefBase._E\tpygeodesy.ecef._EcefBase-class.html#_E\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.ecef._EcefBase.__init__\tpygeodesy.ecef._EcefBase-class.html#__init__\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.ecef._EcefBase.ellipsoid\tpygeodesy.ecef._EcefBase-class.html#ellipsoid\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.ecef._EcefBase.forward_\tpygeodesy.ecef._EcefBase-class.html#forward_\npygeodesy.ecef._EcefBase._Matrix\tpygeodesy.ecef._EcefBase-class.html#_Matrix\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.ecef._EcefBase.flattening\tpygeodesy.ecef._EcefBase-class.html#flattening\npygeodesy.ecef._EcefBase.toStr\tpygeodesy.ecef._EcefBase-class.html#toStr\npygeodesy.ecef._EcefBase.forward\tpygeodesy.ecef._EcefBase-class.html#forward\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._NamedBase.__str__\tpygeodesy.named._NamedBase-class.html#__str__\npygeodesy.named._NamedBase.__repr__\tpygeodesy.named._NamedBase-class.html#__repr__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.ecef._EcefBase._lon00\tpygeodesy.ecef._EcefBase-class.html#_lon00\npygeodesy.ecef._EcefBase._datum\tpygeodesy.ecef._EcefBase-class.html#_datum\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.ecef._EcefBase._polon\tpygeodesy.ecef._EcefBase-class.html#_polon\npygeodesy.ecef._EcefBase._xyzllhCpn9\tpygeodesy.ecef._EcefBase-class.html#_xyzllhCpn9\npygeodesy.named._NamedBase.others\tpygeodesy.named._NamedBase-class.html#others\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.ecef._EcefBase.__eq__\tpygeodesy.ecef._EcefBase-class.html#__eq__\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.ecef._EcefBase.a\tpygeodesy.ecef._EcefBase-class.html#a\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.ecef.EcefKarney.reverse\tpygeodesy.ecef.EcefKarney-class.html#reverse\npygeodesy.ecef._EcefBase.f\tpygeodesy.ecef._EcefBase-class.html#f\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.ecef._EcefBase._Geocentrics\tpygeodesy.ecef._EcefBase-class.html#_Geocentrics\npygeodesy.ecef._EcefBase._forward\tpygeodesy.ecef._EcefBase-class.html#_forward\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.ecef._EcefBase.equatorialRadius\tpygeodesy.ecef._EcefBase-class.html#equatorialRadius\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.ecef.EcefMatrix\tpygeodesy.ecef.EcefMatrix-class.html\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.ecef.EcefMatrix._validate\tpygeodesy.ecef.EcefMatrix-class.html#_validate\npygeodesy.named._NamedTuple.__str__\tpygeodesy.named._NamedTuple-class.html#__str__\npygeodesy.named._NamedTuple.iteritems\tpygeodesy.named._NamedTuple-class.html#iteritems\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.ecef.EcefMatrix.row\tpygeodesy.ecef.EcefMatrix-class.html#row\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._NamedTuple._xtend\tpygeodesy.named._NamedTuple-class.html#_xtend\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._NamedTuple.toStr\tpygeodesy.named._NamedTuple-class.html#toStr\npygeodesy.named._NamedTuple.units\tpygeodesy.named._NamedTuple-class.html#units\npygeodesy.ecef.EcefMatrix.matrixTransposed3\tpygeodesy.ecef.EcefMatrix-class.html#matrixTransposed3\npygeodesy.ecef.EcefMatrix.rotate\tpygeodesy.ecef.EcefMatrix-class.html#rotate\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.ecef.EcefMatrix.__copy__\tpygeodesy.ecef.EcefMatrix-class.html#__copy__\npygeodesy.ecef.EcefMatrix._Units_\tpygeodesy.ecef.EcefMatrix-class.html#_Units_\npygeodesy.named._NamedTuple.toRepr\tpygeodesy.named._NamedTuple-class.html#toRepr\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.ecef.EcefMatrix.matrix3\tpygeodesy.ecef.EcefMatrix-class.html#matrix3\npygeodesy.ecef.EcefMatrix._Names_\tpygeodesy.ecef.EcefMatrix-class.html#_Names_\npygeodesy.named._NamedTuple.__setattr__\tpygeodesy.named._NamedTuple-class.html#__setattr__\npygeodesy.named._NamedTuple.__getattr__\tpygeodesy.named._NamedTuple-class.html#__getattr__\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.ecef.EcefMatrix.column\tpygeodesy.ecef.EcefMatrix-class.html#column\npygeodesy.named._NamedTuple.items\tpygeodesy.named._NamedTuple-class.html#items\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._NamedTuple.__delattr__\tpygeodesy.named._NamedTuple-class.html#__delattr__\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._NamedTuple.toUnits\tpygeodesy.named._NamedTuple-class.html#toUnits\npygeodesy.named._NamedTuple._validated\tpygeodesy.named._NamedTuple-class.html#_validated\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._NamedTuple._DOT_\tpygeodesy.named._NamedTuple-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._NamedTuple.dup\tpygeodesy.named._NamedTuple-class.html#dup\npygeodesy.ecef.EcefMatrix.copy\tpygeodesy.ecef.EcefMatrix-class.html#copy\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedTuple.__hash__\tpygeodesy.named._NamedTuple-class.html#__hash__\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._NamedTuple.reUnit\tpygeodesy.named._NamedTuple-class.html#reUnit\npygeodesy.ecef.EcefMatrix.__new__\tpygeodesy.ecef.EcefMatrix-class.html#__new__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.ecef.EcefMatrix.__deepcopy__\tpygeodesy.ecef.EcefMatrix-class.html#__deepcopy__\npygeodesy.ecef.EcefMatrix.unrotate\tpygeodesy.ecef.EcefMatrix-class.html#unrotate\npygeodesy.named._NamedTuple.__repr__\tpygeodesy.named._NamedTuple-class.html#__repr__\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedTuple.iterunits\tpygeodesy.named._NamedTuple-class.html#iterunits\npygeodesy.ecef.EcefMatrix.multiply\tpygeodesy.ecef.EcefMatrix-class.html#multiply\npygeodesy.ecef.EcefSudano\tpygeodesy.ecef.EcefSudano-class.html\npygeodesy.named._NamedBase.toRepr\tpygeodesy.named._NamedBase-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.ecef._EcefBase.lon00\tpygeodesy.ecef._EcefBase-class.html#lon00\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.ecef._EcefBase._isYou\tpygeodesy.ecef._EcefBase-class.html#_isYou\npygeodesy.ecef._EcefBase.datum\tpygeodesy.ecef._EcefBase-class.html#datum\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.ecef.EcefSudano._tol\tpygeodesy.ecef.EcefSudano-class.html#_tol\npygeodesy.ecef._EcefBase.equatoradius\tpygeodesy.ecef._EcefBase-class.html#equatoradius\npygeodesy.ecef._EcefBase._E\tpygeodesy.ecef._EcefBase-class.html#_E\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.ecef._EcefBase.__init__\tpygeodesy.ecef._EcefBase-class.html#__init__\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.ecef._EcefBase.ellipsoid\tpygeodesy.ecef._EcefBase-class.html#ellipsoid\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.ecef._EcefBase.forward_\tpygeodesy.ecef._EcefBase-class.html#forward_\npygeodesy.ecef._EcefBase._Matrix\tpygeodesy.ecef._EcefBase-class.html#_Matrix\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.ecef._EcefBase.flattening\tpygeodesy.ecef._EcefBase-class.html#flattening\npygeodesy.ecef._EcefBase.toStr\tpygeodesy.ecef._EcefBase-class.html#toStr\npygeodesy.ecef._EcefBase.forward\tpygeodesy.ecef._EcefBase-class.html#forward\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.ecef.EcefSudano.tolerance\tpygeodesy.ecef.EcefSudano-class.html#tolerance\npygeodesy.named._NamedBase.__str__\tpygeodesy.named._NamedBase-class.html#__str__\npygeodesy.named._NamedBase.__repr__\tpygeodesy.named._NamedBase-class.html#__repr__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.ecef._EcefBase._lon00\tpygeodesy.ecef._EcefBase-class.html#_lon00\npygeodesy.ecef._EcefBase._datum\tpygeodesy.ecef._EcefBase-class.html#_datum\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.ecef._EcefBase._polon\tpygeodesy.ecef._EcefBase-class.html#_polon\npygeodesy.ecef._EcefBase._xyzllhCpn9\tpygeodesy.ecef._EcefBase-class.html#_xyzllhCpn9\npygeodesy.named._NamedBase.others\tpygeodesy.named._NamedBase-class.html#others\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.ecef._EcefBase.__eq__\tpygeodesy.ecef._EcefBase-class.html#__eq__\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.ecef._EcefBase.a\tpygeodesy.ecef._EcefBase-class.html#a\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.ecef.EcefSudano.reverse\tpygeodesy.ecef.EcefSudano-class.html#reverse\npygeodesy.ecef._EcefBase.f\tpygeodesy.ecef._EcefBase-class.html#f\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.ecef._EcefBase._Geocentrics\tpygeodesy.ecef._EcefBase-class.html#_Geocentrics\npygeodesy.ecef._EcefBase._forward\tpygeodesy.ecef._EcefBase-class.html#_forward\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.ecef._EcefBase.equatorialRadius\tpygeodesy.ecef._EcefBase-class.html#equatorialRadius\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.ecef.EcefUPC\tpygeodesy.ecef.EcefUPC-class.html\npygeodesy.named._NamedBase.toRepr\tpygeodesy.named._NamedBase-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.ecef._EcefBase.lon00\tpygeodesy.ecef._EcefBase-class.html#lon00\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.ecef._EcefBase._isYou\tpygeodesy.ecef._EcefBase-class.html#_isYou\npygeodesy.ecef._EcefBase.datum\tpygeodesy.ecef._EcefBase-class.html#datum\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.ecef._EcefBase.equatoradius\tpygeodesy.ecef._EcefBase-class.html#equatoradius\npygeodesy.ecef._EcefBase._E\tpygeodesy.ecef._EcefBase-class.html#_E\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.ecef._EcefBase.__init__\tpygeodesy.ecef._EcefBase-class.html#__init__\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.ecef._EcefBase.ellipsoid\tpygeodesy.ecef._EcefBase-class.html#ellipsoid\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.ecef._EcefBase.forward_\tpygeodesy.ecef._EcefBase-class.html#forward_\npygeodesy.ecef._EcefBase._Matrix\tpygeodesy.ecef._EcefBase-class.html#_Matrix\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.ecef._EcefBase.flattening\tpygeodesy.ecef._EcefBase-class.html#flattening\npygeodesy.ecef._EcefBase.toStr\tpygeodesy.ecef._EcefBase-class.html#toStr\npygeodesy.ecef._EcefBase.forward\tpygeodesy.ecef._EcefBase-class.html#forward\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._NamedBase.__str__\tpygeodesy.named._NamedBase-class.html#__str__\npygeodesy.named._NamedBase.__repr__\tpygeodesy.named._NamedBase-class.html#__repr__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.ecef._EcefBase._lon00\tpygeodesy.ecef._EcefBase-class.html#_lon00\npygeodesy.ecef._EcefBase._datum\tpygeodesy.ecef._EcefBase-class.html#_datum\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.ecef._EcefBase._polon\tpygeodesy.ecef._EcefBase-class.html#_polon\npygeodesy.ecef._EcefBase._xyzllhCpn9\tpygeodesy.ecef._EcefBase-class.html#_xyzllhCpn9\npygeodesy.named._NamedBase.others\tpygeodesy.named._NamedBase-class.html#others\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.ecef._EcefBase.__eq__\tpygeodesy.ecef._EcefBase-class.html#__eq__\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.ecef._EcefBase.a\tpygeodesy.ecef._EcefBase-class.html#a\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.ecef.EcefUPC.reverse\tpygeodesy.ecef.EcefUPC-class.html#reverse\npygeodesy.ecef._EcefBase.f\tpygeodesy.ecef._EcefBase-class.html#f\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.ecef._EcefBase._Geocentrics\tpygeodesy.ecef._EcefBase-class.html#_Geocentrics\npygeodesy.ecef._EcefBase._forward\tpygeodesy.ecef._EcefBase-class.html#_forward\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.ecef._EcefBase.equatorialRadius\tpygeodesy.ecef._EcefBase-class.html#equatorialRadius\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.ecef.EcefVeness\tpygeodesy.ecef.EcefVeness-class.html\npygeodesy.named._NamedBase.toRepr\tpygeodesy.named._NamedBase-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.ecef._EcefBase.lon00\tpygeodesy.ecef._EcefBase-class.html#lon00\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.ecef._EcefBase._isYou\tpygeodesy.ecef._EcefBase-class.html#_isYou\npygeodesy.ecef._EcefBase.datum\tpygeodesy.ecef._EcefBase-class.html#datum\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.ecef._EcefBase.equatoradius\tpygeodesy.ecef._EcefBase-class.html#equatoradius\npygeodesy.ecef._EcefBase._E\tpygeodesy.ecef._EcefBase-class.html#_E\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.ecef._EcefBase.__init__\tpygeodesy.ecef._EcefBase-class.html#__init__\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.ecef._EcefBase.ellipsoid\tpygeodesy.ecef._EcefBase-class.html#ellipsoid\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.ecef._EcefBase.forward_\tpygeodesy.ecef._EcefBase-class.html#forward_\npygeodesy.ecef._EcefBase._Matrix\tpygeodesy.ecef._EcefBase-class.html#_Matrix\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.ecef._EcefBase.flattening\tpygeodesy.ecef._EcefBase-class.html#flattening\npygeodesy.ecef._EcefBase.toStr\tpygeodesy.ecef._EcefBase-class.html#toStr\npygeodesy.ecef._EcefBase.forward\tpygeodesy.ecef._EcefBase-class.html#forward\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._NamedBase.__str__\tpygeodesy.named._NamedBase-class.html#__str__\npygeodesy.named._NamedBase.__repr__\tpygeodesy.named._NamedBase-class.html#__repr__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.ecef._EcefBase._lon00\tpygeodesy.ecef._EcefBase-class.html#_lon00\npygeodesy.ecef._EcefBase._datum\tpygeodesy.ecef._EcefBase-class.html#_datum\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.ecef._EcefBase._polon\tpygeodesy.ecef._EcefBase-class.html#_polon\npygeodesy.ecef._EcefBase._xyzllhCpn9\tpygeodesy.ecef._EcefBase-class.html#_xyzllhCpn9\npygeodesy.named._NamedBase.others\tpygeodesy.named._NamedBase-class.html#others\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.ecef._EcefBase.__eq__\tpygeodesy.ecef._EcefBase-class.html#__eq__\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.ecef._EcefBase.a\tpygeodesy.ecef._EcefBase-class.html#a\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.ecef.EcefVeness.reverse\tpygeodesy.ecef.EcefVeness-class.html#reverse\npygeodesy.ecef._EcefBase.f\tpygeodesy.ecef._EcefBase-class.html#f\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.ecef._EcefBase._Geocentrics\tpygeodesy.ecef._EcefBase-class.html#_Geocentrics\npygeodesy.ecef._EcefBase._forward\tpygeodesy.ecef._EcefBase-class.html#_forward\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.ecef._EcefBase.equatorialRadius\tpygeodesy.ecef._EcefBase-class.html#equatorialRadius\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.ecef.EcefYou\tpygeodesy.ecef.EcefYou-class.html\npygeodesy.named._NamedBase.toRepr\tpygeodesy.named._NamedBase-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.ecef._EcefBase.lon00\tpygeodesy.ecef._EcefBase-class.html#lon00\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.ecef.EcefYou._isYou\tpygeodesy.ecef.EcefYou-class.html#_isYou\npygeodesy.ecef._EcefBase.datum\tpygeodesy.ecef._EcefBase-class.html#datum\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.ecef._EcefBase.equatoradius\tpygeodesy.ecef._EcefBase-class.html#equatoradius\npygeodesy.ecef._EcefBase._E\tpygeodesy.ecef._EcefBase-class.html#_E\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.ecef.EcefYou.__init__\tpygeodesy.ecef.EcefYou-class.html#__init__\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.ecef._EcefBase.ellipsoid\tpygeodesy.ecef._EcefBase-class.html#ellipsoid\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.ecef._EcefBase.forward_\tpygeodesy.ecef._EcefBase-class.html#forward_\npygeodesy.ecef._EcefBase._Matrix\tpygeodesy.ecef._EcefBase-class.html#_Matrix\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.ecef._EcefBase.flattening\tpygeodesy.ecef._EcefBase-class.html#flattening\npygeodesy.ecef._EcefBase.toStr\tpygeodesy.ecef._EcefBase-class.html#toStr\npygeodesy.ecef._EcefBase.forward\tpygeodesy.ecef._EcefBase-class.html#forward\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._NamedBase.__str__\tpygeodesy.named._NamedBase-class.html#__str__\npygeodesy.named._NamedBase.__repr__\tpygeodesy.named._NamedBase-class.html#__repr__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.ecef._EcefBase._lon00\tpygeodesy.ecef._EcefBase-class.html#_lon00\npygeodesy.ecef._EcefBase._datum\tpygeodesy.ecef._EcefBase-class.html#_datum\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.ecef._EcefBase._polon\tpygeodesy.ecef._EcefBase-class.html#_polon\npygeodesy.ecef._EcefBase._xyzllhCpn9\tpygeodesy.ecef._EcefBase-class.html#_xyzllhCpn9\npygeodesy.named._NamedBase.others\tpygeodesy.named._NamedBase-class.html#others\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.ecef._EcefBase.__eq__\tpygeodesy.ecef._EcefBase-class.html#__eq__\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.ecef._EcefBase.a\tpygeodesy.ecef._EcefBase-class.html#a\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.ecef.EcefYou.reverse\tpygeodesy.ecef.EcefYou-class.html#reverse\npygeodesy.ecef._EcefBase.f\tpygeodesy.ecef._EcefBase-class.html#f\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.ecef._EcefBase._Geocentrics\tpygeodesy.ecef._EcefBase-class.html#_Geocentrics\npygeodesy.ecef._EcefBase._forward\tpygeodesy.ecef._EcefBase-class.html#_forward\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.ecef._EcefBase.equatorialRadius\tpygeodesy.ecef._EcefBase-class.html#equatorialRadius\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.ecef._EcefBase\tpygeodesy.ecef._EcefBase-class.html\npygeodesy.named._NamedBase.toRepr\tpygeodesy.named._NamedBase-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.ecef._EcefBase.lon00\tpygeodesy.ecef._EcefBase-class.html#lon00\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.ecef._EcefBase._isYou\tpygeodesy.ecef._EcefBase-class.html#_isYou\npygeodesy.ecef._EcefBase._lon00\tpygeodesy.ecef._EcefBase-class.html#_lon00\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.ecef._EcefBase.equatoradius\tpygeodesy.ecef._EcefBase-class.html#equatoradius\npygeodesy.ecef._EcefBase._E\tpygeodesy.ecef._EcefBase-class.html#_E\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.ecef._EcefBase.__init__\tpygeodesy.ecef._EcefBase-class.html#__init__\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.ecef._EcefBase.ellipsoid\tpygeodesy.ecef._EcefBase-class.html#ellipsoid\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.ecef._EcefBase.forward_\tpygeodesy.ecef._EcefBase-class.html#forward_\npygeodesy.ecef._EcefBase._Matrix\tpygeodesy.ecef._EcefBase-class.html#_Matrix\npygeodesy.ecef._EcefBase.datum\tpygeodesy.ecef._EcefBase-class.html#datum\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.ecef._EcefBase.flattening\tpygeodesy.ecef._EcefBase-class.html#flattening\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.ecef._EcefBase.forward\tpygeodesy.ecef._EcefBase-class.html#forward\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._NamedBase.__str__\tpygeodesy.named._NamedBase-class.html#__str__\npygeodesy.named._NamedBase.__repr__\tpygeodesy.named._NamedBase-class.html#__repr__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.ecef._EcefBase.toStr\tpygeodesy.ecef._EcefBase-class.html#toStr\npygeodesy.ecef._EcefBase._datum\tpygeodesy.ecef._EcefBase-class.html#_datum\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.ecef._EcefBase._polon\tpygeodesy.ecef._EcefBase-class.html#_polon\npygeodesy.ecef._EcefBase._xyzllhCpn9\tpygeodesy.ecef._EcefBase-class.html#_xyzllhCpn9\npygeodesy.named._NamedBase.others\tpygeodesy.named._NamedBase-class.html#others\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.ecef._EcefBase.__eq__\tpygeodesy.ecef._EcefBase-class.html#__eq__\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.ecef._EcefBase.a\tpygeodesy.ecef._EcefBase-class.html#a\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.ecef._EcefBase.reverse\tpygeodesy.ecef._EcefBase-class.html#reverse\npygeodesy.ecef._EcefBase.f\tpygeodesy.ecef._EcefBase-class.html#f\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.ecef._EcefBase._Geocentrics\tpygeodesy.ecef._EcefBase-class.html#_Geocentrics\npygeodesy.ecef._EcefBase._forward\tpygeodesy.ecef._EcefBase-class.html#_forward\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.ecef._EcefBase.equatorialRadius\tpygeodesy.ecef._EcefBase-class.html#equatorialRadius\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.ecefLocals._EcefLocal\tpygeodesy.ecefLocals._EcefLocal-class.html\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.ecefLocals._EcefLocal.toNed\tpygeodesy.ecefLocals._EcefLocal-class.html#toNed\npygeodesy.named._Named.__str__\tpygeodesy.named._Named-class.html#__str__\npygeodesy.ecefLocals._EcefLocal.Ecef\tpygeodesy.ecefLocals._EcefLocal-class.html#Ecef\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.ecefLocals._EcefLocal.toLtp\tpygeodesy.ecefLocals._EcefLocal-class.html#toLtp\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.ecefLocals._EcefLocal.toAer\tpygeodesy.ecefLocals._EcefLocal-class.html#toAer\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.ecefLocals._EcefLocal._ecef9datum\tpygeodesy.ecefLocals._EcefLocal-class.html#_ecef9datum\npygeodesy.ecefLocals._EcefLocal._ltp\tpygeodesy.ecefLocals._EcefLocal-class.html#_ltp\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._Named.toStr\tpygeodesy.named._Named-class.html#toStr\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.ecefLocals._EcefLocal.toXyz\tpygeodesy.ecefLocals._EcefLocal-class.html#toXyz\npygeodesy.named._Named.toRepr\tpygeodesy.named._Named-class.html#toRepr\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.ecefLocals._EcefLocal.toEnu\tpygeodesy.ecefLocals._EcefLocal-class.html#toEnu\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.ecefLocals._EcefLocal.toLocal\tpygeodesy.ecefLocals._EcefLocal-class.html#toLocal\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.ecefLocals._EcefLocal._ltp_ecef2local\tpygeodesy.ecefLocals._EcefLocal-class.html#_ltp_ecef2local\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._Named.__repr__\tpygeodesy.named._Named-class.html#__repr__\npygeodesy.ecefLocals._EcefLocal._ecef9\tpygeodesy.ecefLocals._EcefLocal-class.html#_ecef9\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.elevations.Elevation2Tuple\tpygeodesy.elevations.Elevation2Tuple-class.html\npygeodesy.named._NamedTuple.toRepr\tpygeodesy.named._NamedTuple-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._NamedTuple.toUnits\tpygeodesy.named._NamedTuple-class.html#toUnits\npygeodesy.named._NamedTuple._validate\tpygeodesy.named._NamedTuple-class.html#_validate\npygeodesy.named._NamedTuple.__str__\tpygeodesy.named._NamedTuple-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._NamedTuple._DOT_\tpygeodesy.named._NamedTuple-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._NamedTuple.reUnit\tpygeodesy.named._NamedTuple-class.html#reUnit\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.elevations.Elevation2Tuple._Names_\tpygeodesy.elevations.Elevation2Tuple-class.html#_Names_\npygeodesy.named._NamedTuple.__setattr__\tpygeodesy.named._NamedTuple-class.html#__setattr__\npygeodesy.named._NamedTuple.__new__\tpygeodesy.named._NamedTuple-class.html#__new__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._NamedTuple._validated\tpygeodesy.named._NamedTuple-class.html#_validated\npygeodesy.named._NamedTuple.__getattr__\tpygeodesy.named._NamedTuple-class.html#__getattr__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._NamedTuple._xtend\tpygeodesy.named._NamedTuple-class.html#_xtend\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._NamedTuple.dup\tpygeodesy.named._NamedTuple-class.html#dup\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedTuple.toStr\tpygeodesy.named._NamedTuple-class.html#toStr\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedTuple.units\tpygeodesy.named._NamedTuple-class.html#units\npygeodesy.named._NamedTuple.iterunits\tpygeodesy.named._NamedTuple-class.html#iterunits\npygeodesy.named._NamedTuple.iteritems\tpygeodesy.named._NamedTuple-class.html#iteritems\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._NamedTuple.items\tpygeodesy.named._NamedTuple-class.html#items\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedTuple.__delattr__\tpygeodesy.named._NamedTuple-class.html#__delattr__\npygeodesy.named._NamedTuple.__repr__\tpygeodesy.named._NamedTuple-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._NamedTuple.__hash__\tpygeodesy.named._NamedTuple-class.html#__hash__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.elevations.Elevation2Tuple._Units_\tpygeodesy.elevations.Elevation2Tuple-class.html#_Units_\npygeodesy.elevations.GeoidHeight2Tuple\tpygeodesy.elevations.GeoidHeight2Tuple-class.html\npygeodesy.named._NamedTuple.toRepr\tpygeodesy.named._NamedTuple-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._NamedTuple.toUnits\tpygeodesy.named._NamedTuple-class.html#toUnits\npygeodesy.named._NamedTuple._validate\tpygeodesy.named._NamedTuple-class.html#_validate\npygeodesy.named._NamedTuple.__str__\tpygeodesy.named._NamedTuple-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._NamedTuple._DOT_\tpygeodesy.named._NamedTuple-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._NamedTuple.reUnit\tpygeodesy.named._NamedTuple-class.html#reUnit\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.elevations.GeoidHeight2Tuple._Names_\tpygeodesy.elevations.GeoidHeight2Tuple-class.html#_Names_\npygeodesy.named._NamedTuple.__setattr__\tpygeodesy.named._NamedTuple-class.html#__setattr__\npygeodesy.named._NamedTuple.__new__\tpygeodesy.named._NamedTuple-class.html#__new__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._NamedTuple._validated\tpygeodesy.named._NamedTuple-class.html#_validated\npygeodesy.named._NamedTuple.__getattr__\tpygeodesy.named._NamedTuple-class.html#__getattr__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._NamedTuple._xtend\tpygeodesy.named._NamedTuple-class.html#_xtend\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._NamedTuple.dup\tpygeodesy.named._NamedTuple-class.html#dup\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedTuple.toStr\tpygeodesy.named._NamedTuple-class.html#toStr\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedTuple.units\tpygeodesy.named._NamedTuple-class.html#units\npygeodesy.named._NamedTuple.iterunits\tpygeodesy.named._NamedTuple-class.html#iterunits\npygeodesy.named._NamedTuple.iteritems\tpygeodesy.named._NamedTuple-class.html#iteritems\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._NamedTuple.items\tpygeodesy.named._NamedTuple-class.html#items\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedTuple.__delattr__\tpygeodesy.named._NamedTuple-class.html#__delattr__\npygeodesy.named._NamedTuple.__repr__\tpygeodesy.named._NamedTuple-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._NamedTuple.__hash__\tpygeodesy.named._NamedTuple-class.html#__hash__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.elevations.GeoidHeight2Tuple._Units_\tpygeodesy.elevations.GeoidHeight2Tuple-class.html#_Units_\npygeodesy.ellipses.Ellipse\tpygeodesy.ellipses.Ellipse-class.html\npygeodesy.ellipses.Ellipse.slope\tpygeodesy.ellipses.Ellipse-class.html#slope\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.ellipses.Ellipse._ellipE\tpygeodesy.ellipses.Ellipse-class.html#_ellipE\npygeodesy.named._NamedBase.__str__\tpygeodesy.named._NamedBase-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.ellipses.Ellipse._flat\tpygeodesy.ellipses.Ellipse-class.html#_flat\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.ellipses.Ellipse._HGKs\tpygeodesy.ellipses.Ellipse-class.html#_HGKs\npygeodesy.ellipses.Ellipse._Ek\tpygeodesy.ellipses.Ellipse-class.html#_Ek\npygeodesy.ellipses.Ellipse._ellipe\tpygeodesy.ellipses.Ellipse-class.html#_ellipe\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.ellipses.Ellipse.perimeter2RC\tpygeodesy.ellipses.Ellipse-class.html#perimeter2RC\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.ellipses.Ellipse.lati\tpygeodesy.ellipses.Ellipse-class.html#lati\npygeodesy.ellipses.Ellipse.R1\tpygeodesy.ellipses.Ellipse-class.html#R1\npygeodesy.ellipses.Ellipse.R2\tpygeodesy.ellipses.Ellipse-class.html#R2\npygeodesy.ellipses.Ellipse.toStr\tpygeodesy.ellipses.Ellipse-class.html#toStr\npygeodesy.ellipses.Ellipse._maxit\tpygeodesy.ellipses.Ellipse-class.html#_maxit\npygeodesy.ellipses.Ellipse.b\tpygeodesy.ellipses.Ellipse-class.html#b\npygeodesy.ellipses.Ellipse.hartzell4\tpygeodesy.ellipses.Ellipse-class.html#hartzell4\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.ellipses.Ellipse.p\tpygeodesy.ellipses.Ellipse-class.html#p\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.ellipses.Ellipse._sideOf\tpygeodesy.ellipses.Ellipse-class.html#_sideOf\npygeodesy.named._NamedBase.toRepr\tpygeodesy.named._NamedBase-class.html#toRepr\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.ellipses.Ellipse.arc\tpygeodesy.ellipses.Ellipse-class.html#arc\npygeodesy.ellipses.Ellipse.polar2d\tpygeodesy.ellipses.Ellipse-class.html#polar2d\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.ellipses.Ellipse._tEPS\tpygeodesy.ellipses.Ellipse-class.html#_tEPS\npygeodesy.ellipses.Ellipse._GKs\tpygeodesy.ellipses.Ellipse-class.html#_GKs\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.ellipses.Ellipse.perimeterHGK\tpygeodesy.ellipses.Ellipse-class.html#perimeterHGK\npygeodesy.ellipses.Ellipse._xy03\tpygeodesy.ellipses.Ellipse-class.html#_xy03\npygeodesy.ellipses.Ellipse.sideOf\tpygeodesy.ellipses.Ellipse-class.html#sideOf\npygeodesy.ellipses.Ellipse.Rauthalic\tpygeodesy.ellipses.Ellipse-class.html#Rauthalic\npygeodesy.ellipses.Ellipse.perimeterGK\tpygeodesy.ellipses.Ellipse-class.html#perimeterGK\npygeodesy.ellipses.Ellipse.isCircular\tpygeodesy.ellipses.Ellipse-class.html#isCircular\npygeodesy.named._NamedBase.others\tpygeodesy.named._NamedBase-class.html#others\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.ellipses.Ellipse._Ph2\tpygeodesy.ellipses.Ellipse-class.html#_Ph2\npygeodesy.ellipses.Ellipse.e2\tpygeodesy.ellipses.Ellipse-class.html#e2\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.ellipses.Ellipse.c\tpygeodesy.ellipses.Ellipse-class.html#c\npygeodesy.ellipses.Ellipse.Roc_\tpygeodesy.ellipses.Ellipse-class.html#Roc_\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.ellipses.Ellipse.Roc\tpygeodesy.ellipses.Ellipse-class.html#Roc\npygeodesy.ellipses.Ellipse.isProlate\tpygeodesy.ellipses.Ellipse-class.html#isProlate\npygeodesy.ellipses.Ellipse.Rrectifying\tpygeodesy.ellipses.Ellipse-class.html#Rrectifying\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.ellipses.Ellipse.apses2\tpygeodesy.ellipses.Ellipse-class.html#apses2\npygeodesy.named._NamedBase.__repr__\tpygeodesy.named._NamedBase-class.html#__repr__\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.ellipses.Ellipse.point\tpygeodesy.ellipses.Ellipse-class.html#point\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.ellipses.Ellipse.slope_\tpygeodesy.ellipses.Ellipse-class.html#slope_\npygeodesy.ellipses.Ellipse.Rgeometric\tpygeodesy.ellipses.Ellipse-class.html#Rgeometric\npygeodesy.ellipses.Ellipse.area\tpygeodesy.ellipses.Ellipse-class.html#area\npygeodesy.ellipses.Ellipse.toTriaxial_\tpygeodesy.ellipses.Ellipse-class.html#toTriaxial_\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.ellipses.Ellipse._Error\tpygeodesy.ellipses.Ellipse-class.html#_Error\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.ellipses.Ellipse._sc2\tpygeodesy.ellipses.Ellipse-class.html#_sc2\npygeodesy.ellipses.Ellipse.perimeterAGM\tpygeodesy.ellipses.Ellipse-class.html#perimeterAGM\npygeodesy.ellipses.Ellipse.perimeter2k\tpygeodesy.ellipses.Ellipse-class.html#perimeter2k\npygeodesy.ellipses.Ellipse.perimeter4Arc3\tpygeodesy.ellipses.Ellipse-class.html#perimeter4Arc3\npygeodesy.ellipses.Ellipse.perimeter2R\tpygeodesy.ellipses.Ellipse-class.html#perimeter2R\npygeodesy.ellipses.Ellipse.isFlat\tpygeodesy.ellipses.Ellipse-class.html#isFlat\npygeodesy.ellipses.Ellipse.height4\tpygeodesy.ellipses.Ellipse-class.html#height4\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.ellipses.Ellipse._4_PI_\tpygeodesy.ellipses.Ellipse-class.html#_4_PI_\npygeodesy.ellipses.Ellipse.foci\tpygeodesy.ellipses.Ellipse-class.html#foci\npygeodesy.ellipses.Ellipse.isOblate\tpygeodesy.ellipses.Ellipse-class.html#isOblate\npygeodesy.ellipses.Ellipse.normal3d\tpygeodesy.ellipses.Ellipse-class.html#normal3d\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.ellipses.Ellipse.__init__\tpygeodesy.ellipses.Ellipse-class.html#__init__\npygeodesy.ellipses.Ellipse.perimeter2k_\tpygeodesy.ellipses.Ellipse-class.html#perimeter2k_\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.ellipses.Ellipse._perimeter2k\tpygeodesy.ellipses.Ellipse-class.html#_perimeter2k\npygeodesy.ellipses.Ellipse.normal4\tpygeodesy.ellipses.Ellipse-class.html#normal4\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.ellipses.Ellipse.perimeterCR\tpygeodesy.ellipses.Ellipse-class.html#perimeterCR\npygeodesy.ellipses.Ellipse.a\tpygeodesy.ellipses.Ellipse-class.html#a\npygeodesy.ellipses.Ellipse.e\tpygeodesy.ellipses.Ellipse-class.html#e\npygeodesy.ellipses.Ellipse._triaxialX\tpygeodesy.ellipses.Ellipse-class.html#_triaxialX\npygeodesy.ellipses.Ellipse.arc_\tpygeodesy.ellipses.Ellipse-class.html#arc_\npygeodesy.ellipses.Ellipse.points\tpygeodesy.ellipses.Ellipse-class.html#points\npygeodesy.ellipses.Ellipse.toEllipsoid\tpygeodesy.ellipses.Ellipse-class.html#toEllipsoid\npygeodesy.ellipses.EllipseError\tpygeodesy.ellipses.EllipseError-class.html\npygeodesy.ellipsoidalBase.CartesianEllipsoidalBase\tpygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html\npygeodesy.vector3d.Vector3d.toCartesian\tpygeodesy.vector3d.Vector3d-class.html#toCartesian\npygeodesy.vector3dBase.Vector3dBase.__int__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__int__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.cartesianBase.CartesianBase.tienstra7\tpygeodesy.cartesianBase.CartesianBase-class.html#tienstra7\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedBase.__str__\tpygeodesy.named._NamedBase-class.html#__str__\npygeodesy.cartesianBase.CartesianBase.datum\tpygeodesy.cartesianBase.CartesianBase-class.html#datum\npygeodesy.vector3dBase.Vector3dBase.__imatmul__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__imatmul__\npygeodesy.ellipsoidalBase.CartesianEllipsoidalBase.toLatLon\tpygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#toLatLon\npygeodesy.vector3dBase.Vector3dBase.times_\tpygeodesy.vector3dBase.Vector3dBase-class.html#times_\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.vector3dBase.Vector3dBase.__rdiv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rdiv__\npygeodesy.vector3dBase.Vector3dBase.__rmul__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rmul__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.vector3dBase.Vector3dBase.__lt__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__lt__\npygeodesy.cartesianBase.CartesianBase.philamheightdatum\tpygeodesy.cartesianBase.CartesianBase-class.html#philamheightdatum\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.cartesianBase.CartesianBase.to3llh\tpygeodesy.cartesianBase.CartesianBase-class.html#to3llh\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.ellipsoidalBase.CartesianEllipsoidalBase.toTransforms_\tpygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#toTransforms_\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.vector3dBase.Vector3dBase.__cmp__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__cmp__\npygeodesy.vector3d.Vector3d.nearestOn\tpygeodesy.vector3d.Vector3d-class.html#nearestOn\npygeodesy.vector3dBase.Vector3dBase.minus_\tpygeodesy.vector3dBase.Vector3dBase-class.html#minus_\npygeodesy.vector3dBase.Vector3dBase.__rfloordiv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rfloordiv__\npygeodesy.cartesianBase.CartesianBase.tienstra\tpygeodesy.cartesianBase.CartesianBase-class.html#tienstra\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.cartesianBase.CartesianBase._ecef9\tpygeodesy.cartesianBase.CartesianBase-class.html#_ecef9\npygeodesy.vector3dBase.Vector3dBase.rotateAround\tpygeodesy.vector3dBase.Vector3dBase-class.html#rotateAround\npygeodesy.cartesianBase.CartesianBase.to2ab\tpygeodesy.cartesianBase.CartesianBase-class.html#to2ab\npygeodesy.cartesianBase.CartesianBase.toStr\tpygeodesy.cartesianBase.CartesianBase-class.html#toStr\npygeodesy.vector3dBase.Vector3dBase._roty\tpygeodesy.vector3dBase.Vector3dBase-class.html#_roty\npygeodesy.vector3dBase.Vector3dBase.angleTo\tpygeodesy.vector3dBase.Vector3dBase-class.html#angleTo\npygeodesy.cartesianBase.CartesianBase.toTransform\tpygeodesy.cartesianBase.CartesianBase-class.html#toTransform\npygeodesy.ecefLocals._EcefLocal.toXyz\tpygeodesy.ecefLocals._EcefLocal-class.html#toXyz\npygeodesy.vector3dBase.Vector3dBase.__pow__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__pow__\npygeodesy.vector3dBase.Vector3dBase.__gt__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__gt__\npygeodesy.vector3dBase.Vector3dBase.__bool__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__bool__\npygeodesy.vector3dBase.Vector3dBase.x2y2z23\tpygeodesy.vector3dBase.Vector3dBase-class.html#x2y2z23\npygeodesy.cartesianBase.CartesianBase.toEcef\tpygeodesy.cartesianBase.CartesianBase-class.html#toEcef\npygeodesy.vector3dBase.Vector3dBase.rotate\tpygeodesy.vector3dBase.Vector3dBase-class.html#rotate\npygeodesy.vector3dBase.Vector3dBase.__nonzero__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__nonzero__\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.vector3dBase.Vector3dBase._ll\tpygeodesy.vector3dBase.Vector3dBase-class.html#_ll\npygeodesy.vector3dBase.Vector3dBase._plus\tpygeodesy.vector3dBase.Vector3dBase-class.html#_plus\npygeodesy.vector3dBase.Vector3dBase.__mod__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__mod__\npygeodesy.vector3dBase.Vector3dBase.to3xyz\tpygeodesy.vector3dBase.Vector3dBase-class.html#to3xyz\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.ellipsoidalBase.CartesianEllipsoidalBase.reframe\tpygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#reframe\npygeodesy.vector3dBase.Vector3dBase.__long__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__long__\npygeodesy.vector3dBase.Vector3dBase.cmp\tpygeodesy.vector3dBase.Vector3dBase-class.html#cmp\npygeodesy.vector3dBase.Vector3dBase.homogeneous\tpygeodesy.vector3dBase.Vector3dBase-class.html#homogeneous\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.vector3dBase.Vector3dBase.plus_\tpygeodesy.vector3dBase.Vector3dBase-class.html#plus_\npygeodesy.cartesianBase.CartesianBase.sphericalCartesian\tpygeodesy.cartesianBase.CartesianBase-class.html#sphericalCartesian\npygeodesy.cartesianBase.CartesianBase.Roc2\tpygeodesy.cartesianBase.CartesianBase-class.html#Roc2\npygeodesy.cartesianBase.CartesianBase.toDatum\tpygeodesy.cartesianBase.CartesianBase-class.html#toDatum\npygeodesy.vector3dBase.Vector3dBase.__truediv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__truediv__\npygeodesy.ecefLocals._EcefLocal.toLtp\tpygeodesy.ecefLocals._EcefLocal-class.html#toLtp\npygeodesy.vector3d.Vector3d.trilaterate2d2\tpygeodesy.vector3d.Vector3d-class.html#trilaterate2d2\npygeodesy.vector3dBase.Vector3dBase.__matmul__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__matmul__\npygeodesy.vector3dBase.Vector3dBase.euclid\tpygeodesy.vector3dBase.Vector3dBase-class.html#euclid\npygeodesy.vector3dBase.Vector3dBase._minus\tpygeodesy.vector3dBase.Vector3dBase-class.html#_minus\npygeodesy.vector3d.Vector3d.trilaterate3d2\tpygeodesy.vector3d.Vector3d-class.html#trilaterate3d2\npygeodesy.vector3dBase.Vector3dBase.__rmod__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rmod__\npygeodesy.ecefLocals._EcefLocal._ecef9datum\tpygeodesy.ecefLocals._EcefLocal-class.html#_ecef9datum\npygeodesy.cartesianBase.CartesianBase.latlon\tpygeodesy.cartesianBase.CartesianBase-class.html#latlon\npygeodesy.cartesianBase.CartesianBase.hartzell\tpygeodesy.cartesianBase.CartesianBase-class.html#hartzell\npygeodesy.vector3dBase.Vector3dBase._crosserrors\tpygeodesy.vector3dBase.Vector3dBase-class.html#_crosserrors\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.vector3dBase.Vector3dBase._mapped\tpygeodesy.vector3dBase.Vector3dBase-class.html#_mapped\npygeodesy.vector3dBase.Vector3dBase.sum\tpygeodesy.vector3dBase.Vector3dBase-class.html#sum\npygeodesy.cartesianBase.CartesianBase.philam\tpygeodesy.cartesianBase.CartesianBase-class.html#philam\npygeodesy.ecefLocals._EcefLocal.toAer\tpygeodesy.ecefLocals._EcefLocal-class.html#toAer\npygeodesy.cartesianBase.CartesianBase.collins\tpygeodesy.cartesianBase.CartesianBase-class.html#collins\npygeodesy.vector3dBase.Vector3dBase._other_cmp\tpygeodesy.vector3dBase.Vector3dBase-class.html#_other_cmp\npygeodesy.vector3dBase.Vector3dBase.isequalTo\tpygeodesy.vector3dBase.Vector3dBase-class.html#isequalTo\npygeodesy.vector3dBase.Vector3dBase.__ne__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__ne__\npygeodesy.cartesianBase.CartesianBase._height2C\tpygeodesy.cartesianBase.CartesianBase-class.html#_height2C\npygeodesy.vector3dBase.Vector3dBase.__ifloordiv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__ifloordiv__\npygeodesy.vector3dBase.Vector3dBase.dividedBy_\tpygeodesy.vector3dBase.Vector3dBase-class.html#dividedBy_\npygeodesy.vector3dBase.Vector3dBase.equals\tpygeodesy.vector3dBase.Vector3dBase-class.html#equals\npygeodesy.cartesianBase.CartesianBase._n_xyzh4\tpygeodesy.cartesianBase.CartesianBase-class.html#_n_xyzh4\npygeodesy.vector3d.Vector3d.circin6\tpygeodesy.vector3d.Vector3d-class.html#circin6\npygeodesy.cartesianBase.CartesianBase._height4\tpygeodesy.cartesianBase.CartesianBase-class.html#_height4\npygeodesy.vector3d.Vector3d.nearestOn6\tpygeodesy.vector3d.Vector3d-class.html#nearestOn6\npygeodesy.vector3dBase.Vector3dBase.__rmatmul__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rmatmul__\npygeodesy.ellipsoidalBase.CartesianEllipsoidalBase._reframe\tpygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#_reframe\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.vector3d.Vector3d.meeus2\tpygeodesy.vector3d.Vector3d-class.html#meeus2\npygeodesy.vector3dBase.Vector3dBase.__imul__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__imul__\npygeodesy.vector3dBase.Vector3dBase.__trunc__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__trunc__\npygeodesy.vector3dBase.Vector3dBase.times\tpygeodesy.vector3dBase.Vector3dBase-class.html#times\npygeodesy.vector3dBase.Vector3dBase.length\tpygeodesy.vector3dBase.Vector3dBase-class.html#length\npygeodesy.vector3dBase.Vector3dBase.plus\tpygeodesy.vector3dBase.Vector3dBase-class.html#plus\npygeodesy.vector3dBase.Vector3dBase.__mul__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__mul__\npygeodesy.cartesianBase.CartesianBase.convertDatum\tpygeodesy.cartesianBase.CartesianBase-class.html#convertDatum\npygeodesy.vector3dBase.Vector3dBase.__divmod__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__divmod__\npygeodesy.named._NamedBase.toRepr\tpygeodesy.named._NamedBase-class.html#toRepr\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.ellipsoidalBase.CartesianEllipsoidalBase.ellipsoidalCartesian\tpygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#ellipsoidalCartesian\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.vector3dBase.Vector3dBase.pow\tpygeodesy.vector3dBase.Vector3dBase-class.html#pow\npygeodesy.vector3dBase.Vector3dBase.xyz\tpygeodesy.vector3dBase.Vector3dBase-class.html#xyz\npygeodesy.vector3dBase.Vector3dBase.others\tpygeodesy.vector3dBase.Vector3dBase-class.html#others\npygeodesy.cartesianBase.CartesianBase.isEllipsoidal\tpygeodesy.cartesianBase.CartesianBase-class.html#isEllipsoidal\npygeodesy.cartesianBase.CartesianBase.height\tpygeodesy.cartesianBase.CartesianBase-class.html#height\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.vector3dBase.Vector3dBase.__rsub__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rsub__\npygeodesy.vector3dBase.Vector3dBase.ints\tpygeodesy.vector3dBase.Vector3dBase-class.html#ints\npygeodesy.cartesianBase.CartesianBase.cassini\tpygeodesy.cartesianBase.CartesianBase-class.html#cassini\npygeodesy.vector3dBase.Vector3dBase.negate\tpygeodesy.vector3dBase.Vector3dBase-class.html#negate\npygeodesy.vector3dBase.Vector3dBase.apply\tpygeodesy.vector3dBase.Vector3dBase-class.html#apply\npygeodesy.vector3dBase.Vector3dBase.equirectangular\tpygeodesy.vector3dBase.Vector3dBase-class.html#equirectangular\npygeodesy.vector3dBase.Vector3dBase.intermediateTo\tpygeodesy.vector3dBase.Vector3dBase-class.html#intermediateTo\npygeodesy.vector3dBase.Vector3dBase.unit\tpygeodesy.vector3dBase.Vector3dBase-class.html#unit\npygeodesy.vector3dBase.Vector3dBase.__float__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__float__\npygeodesy.vector3dBase.Vector3dBase.__rpow__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rpow__\npygeodesy.ellipsoidalBase.CartesianEllipsoidalBase.convertRefFrame\tpygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#convertRefFrame\npygeodesy.vector3d.Vector3d.soddy4\tpygeodesy.vector3d.Vector3d-class.html#soddy4\npygeodesy.ecefLocals._EcefLocal.toNed\tpygeodesy.ecefLocals._EcefLocal-class.html#toNed\npygeodesy.cartesianBase.CartesianBase._N_vector\tpygeodesy.cartesianBase.CartesianBase-class.html#_N_vector\npygeodesy.vector3d.Vector3d.iscolinearWith\tpygeodesy.vector3d.Vector3d-class.html#iscolinearWith\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.vector3dBase.Vector3dBase.floats\tpygeodesy.vector3dBase.Vector3dBase-class.html#floats\npygeodesy.vector3dBase.Vector3dBase.__itruediv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__itruediv__\npygeodesy.vector3dBase.Vector3dBase.dividedBy\tpygeodesy.vector3dBase.Vector3dBase-class.html#dividedBy\npygeodesy.vector3dBase.Vector3dBase.__isub__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__isub__\npygeodesy.vector3dBase.Vector3dBase.__rdivmod__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rdivmod__\npygeodesy.vector3dBase.Vector3dBase.crosserrors\tpygeodesy.vector3dBase.Vector3dBase-class.html#crosserrors\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.vector3d.Vector3d.circum3\tpygeodesy.vector3d.Vector3d-class.html#circum3\npygeodesy.cartesianBase.CartesianBase.toNvector\tpygeodesy.cartesianBase.CartesianBase-class.html#toNvector\npygeodesy.vector3dBase.Vector3dBase.__eq__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__eq__\npygeodesy.ecefLocals._EcefLocal.toEnu\tpygeodesy.ecefLocals._EcefLocal-class.html#toEnu\npygeodesy.vector3dBase.Vector3dBase.__round__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__round__\npygeodesy.vector3dBase.Vector3dBase.bools\tpygeodesy.vector3dBase.Vector3dBase-class.html#bools\npygeodesy.cartesianBase.CartesianBase.latlonheight\tpygeodesy.cartesianBase.CartesianBase-class.html#latlonheight\npygeodesy.cartesianBase.CartesianBase.height4\tpygeodesy.cartesianBase.CartesianBase-class.html#height4\npygeodesy.ecefLocals._EcefLocal.Ecef\tpygeodesy.ecefLocals._EcefLocal-class.html#Ecef\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.vector3dBase.Vector3dBase.xyz3\tpygeodesy.vector3dBase.Vector3dBase-class.html#xyz3\npygeodesy.ecefLocals._EcefLocal._ltp_ecef2local\tpygeodesy.ecefLocals._EcefLocal-class.html#_ltp_ecef2local\npygeodesy.vector3dBase.Vector3dBase.__iadd__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__iadd__\npygeodesy.cartesianBase.CartesianBase.height3\tpygeodesy.cartesianBase.CartesianBase-class.html#height3\npygeodesy.vector3d.Vector3d.circum4_\tpygeodesy.vector3d.Vector3d-class.html#circum4_\npygeodesy.cartesianBase.CartesianBase.latlonheightdatum\tpygeodesy.cartesianBase.CartesianBase-class.html#latlonheightdatum\npygeodesy.vector3dBase.Vector3dBase.__le__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__le__\npygeodesy.vector3dBase.Vector3dBase.__floordiv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__floordiv__\npygeodesy.vector3dBase.Vector3dBase.__hash__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__hash__\npygeodesy.vector3dBase.Vector3dBase.__sub__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__sub__\npygeodesy.vector3dBase.Vector3dBase.z\tpygeodesy.vector3dBase.Vector3dBase-class.html#z\npygeodesy.vector3dBase.Vector3dBase._xyz\tpygeodesy.vector3dBase.Vector3dBase-class.html#_xyz\npygeodesy.vector3dBase.Vector3dBase.minus\tpygeodesy.vector3dBase.Vector3dBase-class.html#minus\npygeodesy.vector3dBase.Vector3dBase.__ge__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__ge__\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.vector3d.Vector3d.bearing\tpygeodesy.vector3d.Vector3d-class.html#bearing\npygeodesy.vector3dBase.Vector3dBase.__rtruediv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rtruediv__\npygeodesy.vector3dBase.Vector3dBase.floorDividedBy_\tpygeodesy.vector3dBase.Vector3dBase-class.html#floorDividedBy_\npygeodesy.cartesianBase.CartesianBase.collins5\tpygeodesy.cartesianBase.CartesianBase-class.html#collins5\npygeodesy.vector3dBase.Vector3dBase.x2y2z2\tpygeodesy.vector3dBase.Vector3dBase-class.html#x2y2z2\npygeodesy.cartesianBase.CartesianBase.toRtp\tpygeodesy.cartesianBase.CartesianBase-class.html#toRtp\npygeodesy.ellipsoidalBase.CartesianEllipsoidalBase.toRefFrame\tpygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#toRefFrame\npygeodesy.vector3d.Vector3d.parse\tpygeodesy.vector3d.Vector3d-class.html#parse\npygeodesy.vector3dBase.Vector3dBase.floorDividedBy\tpygeodesy.vector3dBase.Vector3dBase-class.html#floorDividedBy\npygeodesy.vector3dBase.Vector3dBase.__floor__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__floor__\npygeodesy.cartesianBase.CartesianBase.isSpherical\tpygeodesy.cartesianBase.CartesianBase-class.html#isSpherical\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.ellipsoidalBase.CartesianEllipsoidalBase.intersections2\tpygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#intersections2\npygeodesy.vector3dBase.Vector3dBase.__imod__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__imod__\npygeodesy.vector3dBase.Vector3dBase.fabs\tpygeodesy.vector3dBase.Vector3dBase-class.html#fabs\npygeodesy.vector3dBase.Vector3dBase._times\tpygeodesy.vector3dBase.Vector3dBase-class.html#_times\npygeodesy.vector3d.Vector3d.radii11\tpygeodesy.vector3d.Vector3d-class.html#radii11\npygeodesy.cartesianBase.CartesianBase.pierlotx\tpygeodesy.cartesianBase.CartesianBase-class.html#pierlotx\npygeodesy.ellipsoidalBase.CartesianEllipsoidalBase._epoch\tpygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#_epoch\npygeodesy.vector3dBase.Vector3dBase.cross\tpygeodesy.vector3dBase.Vector3dBase-class.html#cross\npygeodesy.cartesianBase.CartesianBase.philamheight\tpygeodesy.cartesianBase.CartesianBase-class.html#philamheight\npygeodesy.vector3dBase.Vector3dBase.__pos__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__pos__\npygeodesy.ellipsoidalBase.CartesianEllipsoidalBase.epoch\tpygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#epoch\npygeodesy.ellipsoidalBase.CartesianEllipsoidalBase.__init__\tpygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#__init__\npygeodesy.vector3dBase.Vector3dBase.__abs__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__abs__\npygeodesy.ellipsoidalBase.CartesianEllipsoidalBase._datum\tpygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#_datum\npygeodesy.named._NamedBase.__repr__\tpygeodesy.named._NamedBase-class.html#__repr__\npygeodesy.ecefLocals._EcefLocal._ltp\tpygeodesy.ecefLocals._EcefLocal-class.html#_ltp\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.cartesianBase.CartesianBase.destinationXyz\tpygeodesy.cartesianBase.CartesianBase-class.html#destinationXyz\npygeodesy.cartesianBase.CartesianBase._height\tpygeodesy.cartesianBase.CartesianBase-class.html#_height\npygeodesy.vector3dBase.Vector3dBase.__idiv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__idiv__\npygeodesy.vector3dBase.Vector3dBase._united\tpygeodesy.vector3dBase.Vector3dBase-class.html#_united\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.vector3dBase.Vector3dBase._fromll\tpygeodesy.vector3dBase.Vector3dBase-class.html#_fromll\npygeodesy.vector3dBase.Vector3dBase.__add__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__add__\npygeodesy.vector3dBase.Vector3dBase.x\tpygeodesy.vector3dBase.Vector3dBase-class.html#x\npygeodesy.cartesianBase.CartesianBase.toVector\tpygeodesy.cartesianBase.CartesianBase-class.html#toVector\npygeodesy.cartesianBase.CartesianBase.pierlot\tpygeodesy.cartesianBase.CartesianBase-class.html#pierlot\npygeodesy.ecefLocals._EcefLocal.toLocal\tpygeodesy.ecefLocals._EcefLocal-class.html#toLocal\npygeodesy.vector3dBase.Vector3dBase.__radd__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__radd__\npygeodesy.vector3dBase.Vector3dBase.length2\tpygeodesy.vector3dBase.Vector3dBase-class.html#length2\npygeodesy.cartesianBase.CartesianBase.to2ll\tpygeodesy.cartesianBase.CartesianBase-class.html#to2ll\npygeodesy.vector3dBase.Vector3dBase.isconjugateTo\tpygeodesy.vector3dBase.Vector3dBase-class.html#isconjugateTo\npygeodesy.vector3dBase.Vector3dBase.__ipow__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__ipow__\npygeodesy.vector3dBase.Vector3dBase.__div__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__div__\npygeodesy.vector3dBase.Vector3dBase.__ceil__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__ceil__\npygeodesy.vector3dBase.Vector3dBase.__neg__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__neg__\npygeodesy.vector3dBase.Vector3dBase.y\tpygeodesy.vector3dBase.Vector3dBase-class.html#y\npygeodesy.vector3dBase.Vector3dBase.dot\tpygeodesy.vector3dBase.Vector3dBase-class.html#dot\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.toCartesian\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toCartesian\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.toCss\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toCss\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.isenclosedBy\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#isenclosedBy\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.toEtm\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toEtm\npygeodesy.latlonBase.LatLonBase.__str__\tpygeodesy.latlonBase.LatLonBase-class.html#__str__\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.datum\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#datum\npygeodesy.latlonBase.LatLonBase.philam2\tpygeodesy.latlonBase.LatLonBase-class.html#philam2\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.elevation2\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#elevation2\npygeodesy.latlonBase.LatLonBase.to3llh\tpygeodesy.latlonBase.LatLonBase-class.html#to3llh\npygeodesy.latlonBase.LatLonBase.isnormal\tpygeodesy.latlonBase.LatLonBase-class.html#isnormal\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.ellipsoid\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#ellipsoid\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase._upsOK\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#_upsOK\npygeodesy.latlonBase.LatLonBase.flatLocalTo\tpygeodesy.latlonBase.LatLonBase-class.html#flatLocalTo\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.geoidHeight2\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#geoidHeight2\npygeodesy.latlonBase.LatLonBase._distanceTo\tpygeodesy.latlonBase.LatLonBase-class.html#_distanceTo\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.nearestOn\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#nearestOn\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.ellipsoids\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#ellipsoids\npygeodesy.ecefLocals._EcefLocal.toEnu\tpygeodesy.ecefLocals._EcefLocal-class.html#toEnu\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.latlonBase.LatLonBase.isantipode\tpygeodesy.latlonBase.LatLonBase-class.html#isantipode\npygeodesy.latlonBase.LatLonBase._ecef9\tpygeodesy.latlonBase.LatLonBase-class.html#_ecef9\npygeodesy.latlonBase.LatLonBase._rhumb3dict\tpygeodesy.latlonBase.LatLonBase-class.html#_rhumb3dict\npygeodesy.latlonBase.LatLonBase.to2ab\tpygeodesy.latlonBase.LatLonBase-class.html#to2ab\npygeodesy.latlonBase.LatLonBase.toStr\tpygeodesy.latlonBase.LatLonBase-class.html#toStr\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase._datum\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#_datum\npygeodesy.latlonBase.LatLonBase.PointsIter\tpygeodesy.latlonBase.LatLonBase-class.html#PointsIter\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.toTransform\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toTransform\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase._toX8\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#_toX8\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.antipode\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#antipode\npygeodesy.latlonBase.LatLonBase._n_xyz3\tpygeodesy.latlonBase.LatLonBase-class.html#_n_xyz3\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.toUtmUps\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toUtmUps\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase._geoidHeight2to\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#_geoidHeight2to\npygeodesy.latlonBase.LatLonBase.toEcef\tpygeodesy.latlonBase.LatLonBase-class.html#toEcef\npygeodesy.latlonBase.LatLonBase.cosineLawTo\tpygeodesy.latlonBase.LatLonBase-class.html#cosineLawTo\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.triangulate\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#triangulate\npygeodesy.latlonBase.LatLonBase.thomasTo\tpygeodesy.latlonBase.LatLonBase-class.html#thomasTo\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.latlonBase.LatLonBase._Ecef_forward\tpygeodesy.latlonBase.LatLonBase-class.html#_Ecef_forward\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.reframe\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#reframe\npygeodesy.named._NamedBase.toRepr\tpygeodesy.named._NamedBase-class.html#toRepr\npygeodesy.latlonBase.LatLonBase.isantipodeTo\tpygeodesy.latlonBase.LatLonBase-class.html#isantipodeTo\npygeodesy.latlonBase.LatLonBase.compassAngle\tpygeodesy.latlonBase.LatLonBase-class.html#compassAngle\npygeodesy.latlonBase.LatLonBase.lam\tpygeodesy.latlonBase.LatLonBase-class.html#lam\npygeodesy.latlonBase.LatLonBase.xyz3\tpygeodesy.latlonBase.LatLonBase-class.html#xyz3\npygeodesy.latlonBase.LatLonBase.points2\tpygeodesy.latlonBase.LatLonBase-class.html#points2\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.toDatum\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toDatum\npygeodesy.ecefLocals._EcefLocal.toLtp\tpygeodesy.ecefLocals._EcefLocal-class.html#toLtp\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.toUtm\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toUtm\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.latlonBase.LatLonBase.clipid\tpygeodesy.latlonBase.LatLonBase-class.html#clipid\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.ellipsoidalLatLon\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#ellipsoidalLatLon\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase._gamma\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#_gamma\npygeodesy.latlonBase.LatLonBase.hartzell\tpygeodesy.latlonBase.LatLonBase-class.html#hartzell\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.scale\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#scale\npygeodesy.latlonBase.LatLonBase.normal\tpygeodesy.latlonBase.LatLonBase-class.html#normal\npygeodesy.latlonBase.LatLonBase.philam\tpygeodesy.latlonBase.LatLonBase-class.html#philam\npygeodesy.ecefLocals._EcefLocal.toAer\tpygeodesy.ecefLocals._EcefLocal-class.html#toAer\npygeodesy.latlonBase.LatLonBase.isequalTo3\tpygeodesy.latlonBase.LatLonBase-class.html#isequalTo3\npygeodesy.latlonBase.LatLonBase.chordTo\tpygeodesy.latlonBase.LatLonBase-class.html#chordTo\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.latlonBase.LatLonBase.__ne__\tpygeodesy.latlonBase.LatLonBase-class.html#__ne__\npygeodesy.latlonBase.LatLonBase.toWm\tpygeodesy.latlonBase.LatLonBase-class.html#toWm\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.latlonBase.LatLonBase.sphericalLatLon\tpygeodesy.latlonBase.LatLonBase-class.html#sphericalLatLon\npygeodesy.latlonBase.LatLonBase.equals\tpygeodesy.latlonBase.LatLonBase-class.html#equals\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase._ups\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#_ups\npygeodesy.latlonBase.LatLonBase.circin6\tpygeodesy.latlonBase.LatLonBase-class.html#circin6\npygeodesy.latlonBase.LatLonBase.nearestOn6\tpygeodesy.latlonBase.LatLonBase-class.html#nearestOn6\npygeodesy.latlonBase.LatLonBase.rhumbIntersecant2\tpygeodesy.latlonBase.LatLonBase-class.html#rhumbIntersecant2\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase._reframe\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#_reframe\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.latlonBase.LatLonBase.toVector3d\tpygeodesy.latlonBase.LatLonBase-class.html#toVector3d\npygeodesy.latlonBase.LatLonBase._lat\tpygeodesy.latlonBase.LatLonBase-class.html#_lat\npygeodesy.latlonBase.LatLonBase.cosineForsytheAndoyerLambertTo\tpygeodesy.latlonBase.LatLonBase-class.html#cosineForsytheAndoyerLambertTo\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.latlonBase.LatLonBase.compassAngleTo\tpygeodesy.latlonBase.LatLonBase-class.html#compassAngleTo\npygeodesy.named._NamedBase.__repr__\tpygeodesy.named._NamedBase-class.html#__repr__\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase._elevation2to\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#_elevation2to\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.convertDatum\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#convertDatum\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.intersection3\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#intersection3\npygeodesy.latlonBase.LatLonBase.latlon_\tpygeodesy.latlonBase.LatLonBase-class.html#latlon_\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.gamma\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#gamma\npygeodesy.latlonBase.LatLonBase.flatPolarTo\tpygeodesy.latlonBase.LatLonBase-class.html#flatPolarTo\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.latlonBase.LatLonBase.boundsOf\tpygeodesy.latlonBase.LatLonBase-class.html#boundsOf\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase._scale\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#_scale\npygeodesy.latlonBase.LatLonBase._havg\tpygeodesy.latlonBase.LatLonBase-class.html#_havg\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase._geoidHeight2\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#_geoidHeight2\npygeodesy.latlonBase.LatLonBase.xyz\tpygeodesy.latlonBase.LatLonBase-class.html#xyz\npygeodesy.named._NamedBase.others\tpygeodesy.named._NamedBase-class.html#others\npygeodesy.latlonBase.LatLonBase.isEllipsoidal\tpygeodesy.latlonBase.LatLonBase-class.html#isEllipsoidal\npygeodesy.latlonBase.LatLonBase.height\tpygeodesy.latlonBase.LatLonBase-class.html#height\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.latlonBase.LatLonBase.equals3\tpygeodesy.latlonBase.LatLonBase-class.html#equals3\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.latlonBase.LatLonBase.toVector\tpygeodesy.latlonBase.LatLonBase-class.html#toVector\npygeodesy.latlonBase.LatLonBase.rhumbDestination\tpygeodesy.latlonBase.LatLonBase-class.html#rhumbDestination\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.convertRefFrame\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#convertRefFrame\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.trilaterate5\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#trilaterate5\npygeodesy.latlonBase.LatLonBase._heigHt\tpygeodesy.latlonBase.LatLonBase-class.html#_heigHt\npygeodesy.latlonBase.LatLonBase._N_vector\tpygeodesy.latlonBase.LatLonBase-class.html#_N_vector\npygeodesy.latlonBase.LatLonBase.lon\tpygeodesy.latlonBase.LatLonBase-class.html#lon\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.midpointTo\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#midpointTo\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.toLcc\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toLcc\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.Equidistant\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#Equidistant\npygeodesy.latlonBase.LatLonBase.xyzh\tpygeodesy.latlonBase.LatLonBase-class.html#xyzh\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.latlonBase.LatLonBase.nearestTo\tpygeodesy.latlonBase.LatLonBase-class.html#nearestTo\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.distanceTo2\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#distanceTo2\npygeodesy.latlonBase.LatLonBase.hubenyTo\tpygeodesy.latlonBase.LatLonBase-class.html#hubenyTo\npygeodesy.latlonBase.LatLonBase.heightStr\tpygeodesy.latlonBase.LatLonBase-class.html#heightStr\npygeodesy.ecefLocals._EcefLocal.Ecef\tpygeodesy.ecefLocals._EcefLocal-class.html#Ecef\npygeodesy.latlonBase.LatLonBase.latlon2\tpygeodesy.latlonBase.LatLonBase-class.html#latlon2\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase._utm\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#_utm\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase._toLLEB_args\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#_toLLEB_args\npygeodesy.ecefLocals._EcefLocal._ltp\tpygeodesy.ecefLocals._EcefLocal-class.html#_ltp\npygeodesy.latlonBase.LatLonBase._rhumb3\tpygeodesy.latlonBase.LatLonBase-class.html#_rhumb3\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.convergence\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#convergence\npygeodesy.latlonBase.LatLonBase.toNvector\tpygeodesy.latlonBase.LatLonBase-class.html#toNvector\npygeodesy.latlonBase.LatLonBase.__eq__\tpygeodesy.latlonBase.LatLonBase-class.html#__eq__\npygeodesy.latlonBase.LatLonBase._lon\tpygeodesy.latlonBase.LatLonBase-class.html#_lon\npygeodesy.latlonBase.LatLonBase.toNormal\tpygeodesy.latlonBase.LatLonBase-class.html#toNormal\npygeodesy.latlonBase.LatLonBase.latlonheight\tpygeodesy.latlonBase.LatLonBase-class.html#latlonheight\npygeodesy.latlonBase.LatLonBase.height4\tpygeodesy.latlonBase.LatLonBase-class.html#height4\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.iteration\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#iteration\npygeodesy.latlonBase.LatLonBase.bounds\tpygeodesy.latlonBase.LatLonBase-class.html#bounds\npygeodesy.latlonBase.LatLonBase.circum4_\tpygeodesy.latlonBase.LatLonBase-class.html#circum4_\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.latlonBase.LatLonBase.rhumbAzimuthTo\tpygeodesy.latlonBase.LatLonBase-class.html#rhumbAzimuthTo\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase._elevation2\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#_elevation2\npygeodesy.ecefLocals._EcefLocal.toNed\tpygeodesy.ecefLocals._EcefLocal-class.html#toNed\npygeodesy.latlonBase.LatLonBase.cosineAndoyerLambertTo\tpygeodesy.latlonBase.LatLonBase-class.html#cosineAndoyerLambertTo\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.toUps\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toUps\npygeodesy.latlonBase.LatLonBase._clipid\tpygeodesy.latlonBase.LatLonBase-class.html#_clipid\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.toRefFrame\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toRefFrame\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.parse\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#parse\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.latlonBase.LatLonBase.isSpherical\tpygeodesy.latlonBase.LatLonBase-class.html#isSpherical\npygeodesy.latlonBase.LatLonBase._wrap_name2\tpygeodesy.latlonBase.LatLonBase-class.html#_wrap_name2\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.__init__\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#__init__\npygeodesy.latlonBase.LatLonBase.radii11\tpygeodesy.latlonBase.LatLonBase-class.html#radii11\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase._epoch\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#_epoch\npygeodesy.latlonBase.LatLonBase.philamheight\tpygeodesy.latlonBase.LatLonBase-class.html#philamheight\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase._utmOK\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#_utmOK\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.epoch\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#epoch\npygeodesy.latlonBase.LatLonBase.latlon2round\tpygeodesy.latlonBase.LatLonBase-class.html#latlon2round\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.intersections2\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#intersections2\npygeodesy.ecefLocals._EcefLocal._ltp_ecef2local\tpygeodesy.ecefLocals._EcefLocal-class.html#_ltp_ecef2local\npygeodesy.latlonBase.LatLonBase.vincentysTo\tpygeodesy.latlonBase.LatLonBase-class.html#vincentysTo\npygeodesy.ecefLocals._EcefLocal._ecef9datum\tpygeodesy.ecefLocals._EcefLocal-class.html#_ecef9datum\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.to3xyz\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#to3xyz\npygeodesy.latlonBase.LatLonBase.rhumbMidpointTo\tpygeodesy.latlonBase.LatLonBase-class.html#rhumbMidpointTo\npygeodesy.latlonBase.LatLonBase.latlon\tpygeodesy.latlonBase.LatLonBase-class.html#latlon\npygeodesy.latlonBase.LatLonBase.phi\tpygeodesy.latlonBase.LatLonBase-class.html#phi\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.latlonBase.LatLonBase.destinationXyz\tpygeodesy.latlonBase.LatLonBase-class.html#destinationXyz\npygeodesy.latlonBase.LatLonBase._height\tpygeodesy.latlonBase.LatLonBase-class.html#_height\npygeodesy.latlonBase.LatLonBase.isequalTo\tpygeodesy.latlonBase.LatLonBase-class.html#isequalTo\npygeodesy.latlonBase.LatLonBase.circum3\tpygeodesy.latlonBase.LatLonBase-class.html#circum3\npygeodesy.latlonBase.LatLonBase.euclideanTo\tpygeodesy.latlonBase.LatLonBase-class.html#euclideanTo\npygeodesy.latlonBase.LatLonBase.haversineTo\tpygeodesy.latlonBase.LatLonBase-class.html#haversineTo\npygeodesy.latlonBase.LatLonBase._intersecend2\tpygeodesy.latlonBase.LatLonBase-class.html#_intersecend2\npygeodesy.latlonBase.LatLonBase.lat\tpygeodesy.latlonBase.LatLonBase-class.html#lat\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.intermediateTo\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#intermediateTo\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.toMgrs\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toMgrs\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.latlonBase.LatLonBase.equirectangularTo\tpygeodesy.latlonBase.LatLonBase-class.html#equirectangularTo\npygeodesy.ecefLocals._EcefLocal.toLocal\tpygeodesy.ecefLocals._EcefLocal-class.html#toLocal\npygeodesy.ecefLocals._EcefLocal.toXyz\tpygeodesy.ecefLocals._EcefLocal-class.html#toXyz\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.toOsgr\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toOsgr\npygeodesy.latlonBase.LatLonBase.rhumbDistanceTo\tpygeodesy.latlonBase.LatLonBase-class.html#rhumbDistanceTo\npygeodesy.latlonBase.LatLonBase.rhumbLine\tpygeodesy.latlonBase.LatLonBase-class.html#rhumbLine\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase._etm\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#_etm\npygeodesy.latlonBase.LatLonBase.intersecant2\tpygeodesy.latlonBase.LatLonBase-class.html#intersecant2\npygeodesy.latlonBase.LatLonBase.points\tpygeodesy.latlonBase.LatLonBase-class.html#points\npygeodesy.latlonBase.LatLonBase._toCartesianEcef\tpygeodesy.latlonBase.LatLonBase-class.html#_toCartesianEcef\npygeodesy.latlonBase.LatLonBase._distanceTo_\tpygeodesy.latlonBase.LatLonBase-class.html#_distanceTo_\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase._Radjust2\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#_Radjust2\npygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI\tpygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.toCartesian\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toCartesian\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.toCss\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toCss\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.isenclosedBy\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#isenclosedBy\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.toEtm\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toEtm\npygeodesy.latlonBase.LatLonBase.__str__\tpygeodesy.latlonBase.LatLonBase-class.html#__str__\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.datum\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#datum\npygeodesy.latlonBase.LatLonBase.philam2\tpygeodesy.latlonBase.LatLonBase-class.html#philam2\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.elevation2\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#elevation2\npygeodesy.latlonBase.LatLonBase.to3llh\tpygeodesy.latlonBase.LatLonBase-class.html#to3llh\npygeodesy.latlonBase.LatLonBase.isnormal\tpygeodesy.latlonBase.LatLonBase-class.html#isnormal\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.ellipsoid\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#ellipsoid\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase._upsOK\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#_upsOK\npygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI.distanceTo\tpygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#distanceTo\npygeodesy.latlonBase.LatLonBase.circum3\tpygeodesy.latlonBase.LatLonBase-class.html#circum3\npygeodesy.latlonBase.LatLonBase.flatLocalTo\tpygeodesy.latlonBase.LatLonBase-class.html#flatLocalTo\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.geoidHeight2\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#geoidHeight2\npygeodesy.latlonBase.LatLonBase._distanceTo\tpygeodesy.latlonBase.LatLonBase-class.html#_distanceTo\npygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI.finalBearingOn\tpygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#finalBearingOn\npygeodesy.latlonBase.LatLonBase.isequalTo3\tpygeodesy.latlonBase.LatLonBase-class.html#isequalTo3\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.ellipsoids\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#ellipsoids\npygeodesy.latlonBase.LatLonBase._lon\tpygeodesy.latlonBase.LatLonBase-class.html#_lon\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.latlonBase.LatLonBase.isantipode\tpygeodesy.latlonBase.LatLonBase-class.html#isantipode\npygeodesy.latlonBase.LatLonBase._ecef9\tpygeodesy.latlonBase.LatLonBase-class.html#_ecef9\npygeodesy.latlonBase.LatLonBase._rhumb3dict\tpygeodesy.latlonBase.LatLonBase-class.html#_rhumb3dict\npygeodesy.latlonBase.LatLonBase.to2ab\tpygeodesy.latlonBase.LatLonBase-class.html#to2ab\npygeodesy.latlonBase.LatLonBase.toStr\tpygeodesy.latlonBase.LatLonBase-class.html#toStr\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase._datum\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#_datum\npygeodesy.latlonBase.LatLonBase.PointsIter\tpygeodesy.latlonBase.LatLonBase-class.html#PointsIter\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.toTransform\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toTransform\npygeodesy.latlonBase.LatLonBase.isEllipsoidal\tpygeodesy.latlonBase.LatLonBase-class.html#isEllipsoidal\npygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI._Direct2Tuple\tpygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#_Direct2Tuple\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.antipode\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#antipode\npygeodesy.latlonBase.LatLonBase._n_xyz3\tpygeodesy.latlonBase.LatLonBase-class.html#_n_xyz3\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.toUtmUps\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toUtmUps\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase._geoidHeight2to\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#_geoidHeight2to\npygeodesy.latlonBase.LatLonBase.toEcef\tpygeodesy.latlonBase.LatLonBase-class.html#toEcef\npygeodesy.latlonBase.LatLonBase.cosineLawTo\tpygeodesy.latlonBase.LatLonBase-class.html#cosineLawTo\npygeodesy.latlonBase.LatLonBase.lam\tpygeodesy.latlonBase.LatLonBase-class.html#lam\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.triangulate\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#triangulate\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase._ups\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#_ups\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.latlonBase.LatLonBase._Ecef_forward\tpygeodesy.latlonBase.LatLonBase-class.html#_Ecef_forward\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.reframe\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#reframe\npygeodesy.named._NamedBase.toRepr\tpygeodesy.named._NamedBase-class.html#toRepr\npygeodesy.latlonBase.LatLonBase.isantipodeTo\tpygeodesy.latlonBase.LatLonBase-class.html#isantipodeTo\npygeodesy.latlonBase.LatLonBase.compassAngle\tpygeodesy.latlonBase.LatLonBase-class.html#compassAngle\npygeodesy.latlonBase.LatLonBase.__ne__\tpygeodesy.latlonBase.LatLonBase-class.html#__ne__\npygeodesy.latlonBase.LatLonBase.xyz3\tpygeodesy.latlonBase.LatLonBase-class.html#xyz3\npygeodesy.latlonBase.LatLonBase.points2\tpygeodesy.latlonBase.LatLonBase-class.html#points2\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.toDatum\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toDatum\npygeodesy.ecefLocals._EcefLocal.toLtp\tpygeodesy.ecefLocals._EcefLocal-class.html#toLtp\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.toUtm\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toUtm\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.latlonBase.LatLonBase.clipid\tpygeodesy.latlonBase.LatLonBase-class.html#clipid\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.ellipsoidalLatLon\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#ellipsoidalLatLon\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase._gamma\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#_gamma\npygeodesy.latlonBase.LatLonBase.hartzell\tpygeodesy.latlonBase.LatLonBase-class.html#hartzell\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.scale\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#scale\npygeodesy.latlonBase.LatLonBase.normal\tpygeodesy.latlonBase.LatLonBase-class.html#normal\npygeodesy.latlonBase.LatLonBase.philam\tpygeodesy.latlonBase.LatLonBase-class.html#philam\npygeodesy.ecefLocals._EcefLocal.toAer\tpygeodesy.ecefLocals._EcefLocal-class.html#toAer\npygeodesy.latlonBase.LatLonBase.chordTo\tpygeodesy.latlonBase.LatLonBase-class.html#chordTo\npygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI.finalBearingTo\tpygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#finalBearingTo\npygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI._Inverse\tpygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#_Inverse\npygeodesy.latlonBase.LatLonBase.toWm\tpygeodesy.latlonBase.LatLonBase-class.html#toWm\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.latlonBase.LatLonBase.sphericalLatLon\tpygeodesy.latlonBase.LatLonBase-class.html#sphericalLatLon\npygeodesy.latlonBase.LatLonBase.equals\tpygeodesy.latlonBase.LatLonBase-class.html#equals\npygeodesy.latlonBase.LatLonBase.circin6\tpygeodesy.latlonBase.LatLonBase-class.html#circin6\npygeodesy.latlonBase.LatLonBase.nearestOn6\tpygeodesy.latlonBase.LatLonBase-class.html#nearestOn6\npygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI.nearestOn8\tpygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#nearestOn8\npygeodesy.ecefLocals._EcefLocal._ecef9datum\tpygeodesy.ecefLocals._EcefLocal-class.html#_ecef9datum\npygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI.distanceTo3\tpygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#distanceTo3\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.distanceTo2\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#distanceTo2\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.latlonBase.LatLonBase.toVector3d\tpygeodesy.latlonBase.LatLonBase-class.html#toVector3d\npygeodesy.ecefLocals._EcefLocal.toEnu\tpygeodesy.ecefLocals._EcefLocal-class.html#toEnu\npygeodesy.latlonBase.LatLonBase._lat\tpygeodesy.latlonBase.LatLonBase-class.html#_lat\npygeodesy.latlonBase.LatLonBase.cosineForsytheAndoyerLambertTo\tpygeodesy.latlonBase.LatLonBase-class.html#cosineForsytheAndoyerLambertTo\npygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI._g_gl_p3\tpygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#_g_gl_p3\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.latlonBase.LatLonBase.compassAngleTo\tpygeodesy.latlonBase.LatLonBase-class.html#compassAngleTo\npygeodesy.named._NamedBase.__repr__\tpygeodesy.named._NamedBase-class.html#__repr__\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase._elevation2to\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#_elevation2to\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.convertDatum\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#convertDatum\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.intersection3\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#intersection3\npygeodesy.latlonBase.LatLonBase.latlon_\tpygeodesy.latlonBase.LatLonBase-class.html#latlon_\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.gamma\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#gamma\npygeodesy.latlonBase.LatLonBase.flatPolarTo\tpygeodesy.latlonBase.LatLonBase-class.html#flatPolarTo\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.latlonBase.LatLonBase.boundsOf\tpygeodesy.latlonBase.LatLonBase-class.html#boundsOf\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase._scale\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#_scale\npygeodesy.latlonBase.LatLonBase._havg\tpygeodesy.latlonBase.LatLonBase-class.html#_havg\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase._geoidHeight2\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#_geoidHeight2\npygeodesy.latlonBase.LatLonBase.xyz\tpygeodesy.latlonBase.LatLonBase-class.html#xyz\npygeodesy.named._NamedBase.others\tpygeodesy.named._NamedBase-class.html#others\npygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI.geodesic\tpygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#geodesic\npygeodesy.latlonBase.LatLonBase.height\tpygeodesy.latlonBase.LatLonBase-class.html#height\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.latlonBase.LatLonBase.equals3\tpygeodesy.latlonBase.LatLonBase-class.html#equals3\npygeodesy.latlonBase.LatLonBase.rhumbIntersecant2\tpygeodesy.latlonBase.LatLonBase-class.html#rhumbIntersecant2\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.latlonBase.LatLonBase.toVector\tpygeodesy.latlonBase.LatLonBase-class.html#toVector\npygeodesy.latlonBase.LatLonBase.rhumbDestination\tpygeodesy.latlonBase.LatLonBase-class.html#rhumbDestination\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.convertRefFrame\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#convertRefFrame\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.trilaterate5\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#trilaterate5\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.nearestOn\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#nearestOn\npygeodesy.latlonBase.LatLonBase._heigHt\tpygeodesy.latlonBase.LatLonBase-class.html#_heigHt\npygeodesy.latlonBase.LatLonBase._N_vector\tpygeodesy.latlonBase.LatLonBase-class.html#_N_vector\npygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI.destination\tpygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#destination\npygeodesy.latlonBase.LatLonBase.lon\tpygeodesy.latlonBase.LatLonBase-class.html#lon\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.midpointTo\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#midpointTo\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.toLcc\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toLcc\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.Equidistant\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#Equidistant\npygeodesy.latlonBase.LatLonBase.xyzh\tpygeodesy.latlonBase.LatLonBase-class.html#xyzh\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.latlonBase.LatLonBase.nearestTo\tpygeodesy.latlonBase.LatLonBase-class.html#nearestTo\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase._reframe\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#_reframe\npygeodesy.latlonBase.LatLonBase.hubenyTo\tpygeodesy.latlonBase.LatLonBase-class.html#hubenyTo\npygeodesy.latlonBase.LatLonBase.heightStr\tpygeodesy.latlonBase.LatLonBase-class.html#heightStr\npygeodesy.ecefLocals._EcefLocal.Ecef\tpygeodesy.ecefLocals._EcefLocal-class.html#Ecef\npygeodesy.latlonBase.LatLonBase.latlon2\tpygeodesy.latlonBase.LatLonBase-class.html#latlon2\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI._Direct\tpygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#_Direct\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase._utm\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#_utm\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase._toLLEB_args\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#_toLLEB_args\npygeodesy.ecefLocals._EcefLocal._ltp\tpygeodesy.ecefLocals._EcefLocal-class.html#_ltp\npygeodesy.latlonBase.LatLonBase._rhumb3\tpygeodesy.latlonBase.LatLonBase-class.html#_rhumb3\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.convergence\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#convergence\npygeodesy.latlonBase.LatLonBase.toNvector\tpygeodesy.latlonBase.LatLonBase-class.html#toNvector\npygeodesy.latlonBase.LatLonBase.__eq__\tpygeodesy.latlonBase.LatLonBase-class.html#__eq__\npygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI.destination2\tpygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#destination2\npygeodesy.latlonBase.LatLonBase.toNormal\tpygeodesy.latlonBase.LatLonBase-class.html#toNormal\npygeodesy.latlonBase.LatLonBase.latlonheight\tpygeodesy.latlonBase.LatLonBase-class.html#latlonheight\npygeodesy.latlonBase.LatLonBase.height4\tpygeodesy.latlonBase.LatLonBase-class.html#height4\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.iteration\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#iteration\npygeodesy.latlonBase.LatLonBase.bounds\tpygeodesy.latlonBase.LatLonBase-class.html#bounds\npygeodesy.latlonBase.LatLonBase.circum4_\tpygeodesy.latlonBase.LatLonBase-class.html#circum4_\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.latlonBase.LatLonBase.rhumbAzimuthTo\tpygeodesy.latlonBase.LatLonBase-class.html#rhumbAzimuthTo\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase._elevation2\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#_elevation2\npygeodesy.ecefLocals._EcefLocal.toNed\tpygeodesy.ecefLocals._EcefLocal-class.html#toNed\npygeodesy.latlonBase.LatLonBase.cosineAndoyerLambertTo\tpygeodesy.latlonBase.LatLonBase-class.html#cosineAndoyerLambertTo\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.toUps\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toUps\npygeodesy.latlonBase.LatLonBase._clipid\tpygeodesy.latlonBase.LatLonBase-class.html#_clipid\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.toRefFrame\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toRefFrame\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.parse\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#parse\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.latlonBase.LatLonBase.isSpherical\tpygeodesy.latlonBase.LatLonBase-class.html#isSpherical\npygeodesy.latlonBase.LatLonBase._wrap_name2\tpygeodesy.latlonBase.LatLonBase-class.html#_wrap_name2\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.__init__\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#__init__\npygeodesy.ecefLocals._EcefLocal.toXyz\tpygeodesy.ecefLocals._EcefLocal-class.html#toXyz\npygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI.initialBearingTo\tpygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#initialBearingTo\npygeodesy.latlonBase.LatLonBase.radii11\tpygeodesy.latlonBase.LatLonBase-class.html#radii11\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase._epoch\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#_epoch\npygeodesy.latlonBase.LatLonBase.philamheight\tpygeodesy.latlonBase.LatLonBase-class.html#philamheight\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase._utmOK\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#_utmOK\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.epoch\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#epoch\npygeodesy.latlonBase.LatLonBase.latlon2round\tpygeodesy.latlonBase.LatLonBase-class.html#latlon2round\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.intersections2\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#intersections2\npygeodesy.ecefLocals._EcefLocal._ltp_ecef2local\tpygeodesy.ecefLocals._EcefLocal-class.html#_ltp_ecef2local\npygeodesy.latlonBase.LatLonBase.vincentysTo\tpygeodesy.latlonBase.LatLonBase-class.html#vincentysTo\npygeodesy.latlonBase.LatLonBase.thomasTo\tpygeodesy.latlonBase.LatLonBase-class.html#thomasTo\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.to3xyz\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#to3xyz\npygeodesy.latlonBase.LatLonBase.rhumbMidpointTo\tpygeodesy.latlonBase.LatLonBase-class.html#rhumbMidpointTo\npygeodesy.latlonBase.LatLonBase.latlon\tpygeodesy.latlonBase.LatLonBase-class.html#latlon\npygeodesy.latlonBase.LatLonBase.phi\tpygeodesy.latlonBase.LatLonBase-class.html#phi\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.latlonBase.LatLonBase.destinationXyz\tpygeodesy.latlonBase.LatLonBase-class.html#destinationXyz\npygeodesy.latlonBase.LatLonBase._height\tpygeodesy.latlonBase.LatLonBase-class.html#_height\npygeodesy.latlonBase.LatLonBase.isequalTo\tpygeodesy.latlonBase.LatLonBase-class.html#isequalTo\npygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI.bearingTo2\tpygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#bearingTo2\npygeodesy.latlonBase.LatLonBase.euclideanTo\tpygeodesy.latlonBase.LatLonBase-class.html#euclideanTo\npygeodesy.latlonBase.LatLonBase.haversineTo\tpygeodesy.latlonBase.LatLonBase-class.html#haversineTo\npygeodesy.latlonBase.LatLonBase._intersecend2\tpygeodesy.latlonBase.LatLonBase-class.html#_intersecend2\npygeodesy.latlonBase.LatLonBase.lat\tpygeodesy.latlonBase.LatLonBase-class.html#lat\npygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI.intermediateTo\tpygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#intermediateTo\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.toMgrs\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toMgrs\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.latlonBase.LatLonBase.equirectangularTo\tpygeodesy.latlonBase.LatLonBase-class.html#equirectangularTo\npygeodesy.ecefLocals._EcefLocal.toLocal\tpygeodesy.ecefLocals._EcefLocal-class.html#toLocal\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase._toX8\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#_toX8\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.toOsgr\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toOsgr\npygeodesy.latlonBase.LatLonBase.rhumbDistanceTo\tpygeodesy.latlonBase.LatLonBase-class.html#rhumbDistanceTo\npygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI.plumbTo\tpygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#plumbTo\npygeodesy.latlonBase.LatLonBase.rhumbLine\tpygeodesy.latlonBase.LatLonBase-class.html#rhumbLine\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase._etm\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#_etm\npygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI.intersecant2\tpygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#intersecant2\npygeodesy.latlonBase.LatLonBase.points\tpygeodesy.latlonBase.LatLonBase-class.html#points\npygeodesy.latlonBase.LatLonBase._toCartesianEcef\tpygeodesy.latlonBase.LatLonBase-class.html#_toCartesianEcef\npygeodesy.latlonBase.LatLonBase._distanceTo_\tpygeodesy.latlonBase.LatLonBase-class.html#_distanceTo_\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase._Radjust2\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#_Radjust2\npygeodesy.ellipsoidalExact.Cartesian\tpygeodesy.ellipsoidalExact.Cartesian-class.html\npygeodesy.vector3d.Vector3d.toCartesian\tpygeodesy.vector3d.Vector3d-class.html#toCartesian\npygeodesy.vector3dBase.Vector3dBase.__int__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__int__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.cartesianBase.CartesianBase.tienstra7\tpygeodesy.cartesianBase.CartesianBase-class.html#tienstra7\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedBase.__str__\tpygeodesy.named._NamedBase-class.html#__str__\npygeodesy.cartesianBase.CartesianBase.datum\tpygeodesy.cartesianBase.CartesianBase-class.html#datum\npygeodesy.vector3dBase.Vector3dBase.__imatmul__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__imatmul__\npygeodesy.ellipsoidalExact.Cartesian.toLatLon\tpygeodesy.ellipsoidalExact.Cartesian-class.html#toLatLon\npygeodesy.vector3dBase.Vector3dBase.times_\tpygeodesy.vector3dBase.Vector3dBase-class.html#times_\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.vector3dBase.Vector3dBase.__rdiv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rdiv__\npygeodesy.vector3dBase.Vector3dBase.__rmul__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rmul__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.vector3dBase.Vector3dBase.__lt__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__lt__\npygeodesy.cartesianBase.CartesianBase.philamheightdatum\tpygeodesy.cartesianBase.CartesianBase-class.html#philamheightdatum\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.cartesianBase.CartesianBase.to3llh\tpygeodesy.cartesianBase.CartesianBase-class.html#to3llh\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.ellipsoidalBase.CartesianEllipsoidalBase.toTransforms_\tpygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#toTransforms_\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.vector3dBase.Vector3dBase.__cmp__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__cmp__\npygeodesy.vector3d.Vector3d.nearestOn\tpygeodesy.vector3d.Vector3d-class.html#nearestOn\npygeodesy.vector3dBase.Vector3dBase.minus_\tpygeodesy.vector3dBase.Vector3dBase-class.html#minus_\npygeodesy.vector3dBase.Vector3dBase.__rfloordiv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rfloordiv__\npygeodesy.cartesianBase.CartesianBase.tienstra\tpygeodesy.cartesianBase.CartesianBase-class.html#tienstra\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.cartesianBase.CartesianBase._ecef9\tpygeodesy.cartesianBase.CartesianBase-class.html#_ecef9\npygeodesy.vector3dBase.Vector3dBase.rotateAround\tpygeodesy.vector3dBase.Vector3dBase-class.html#rotateAround\npygeodesy.cartesianBase.CartesianBase.to2ab\tpygeodesy.cartesianBase.CartesianBase-class.html#to2ab\npygeodesy.cartesianBase.CartesianBase.toStr\tpygeodesy.cartesianBase.CartesianBase-class.html#toStr\npygeodesy.vector3dBase.Vector3dBase._roty\tpygeodesy.vector3dBase.Vector3dBase-class.html#_roty\npygeodesy.vector3dBase.Vector3dBase.angleTo\tpygeodesy.vector3dBase.Vector3dBase-class.html#angleTo\npygeodesy.cartesianBase.CartesianBase.toTransform\tpygeodesy.cartesianBase.CartesianBase-class.html#toTransform\npygeodesy.ecefLocals._EcefLocal.toXyz\tpygeodesy.ecefLocals._EcefLocal-class.html#toXyz\npygeodesy.vector3dBase.Vector3dBase.__pow__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__pow__\npygeodesy.vector3dBase.Vector3dBase.__gt__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__gt__\npygeodesy.vector3dBase.Vector3dBase.__bool__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__bool__\npygeodesy.vector3dBase.Vector3dBase.x2y2z23\tpygeodesy.vector3dBase.Vector3dBase-class.html#x2y2z23\npygeodesy.cartesianBase.CartesianBase.toEcef\tpygeodesy.cartesianBase.CartesianBase-class.html#toEcef\npygeodesy.vector3dBase.Vector3dBase.rotate\tpygeodesy.vector3dBase.Vector3dBase-class.html#rotate\npygeodesy.vector3dBase.Vector3dBase.__nonzero__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__nonzero__\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.vector3dBase.Vector3dBase._ll\tpygeodesy.vector3dBase.Vector3dBase-class.html#_ll\npygeodesy.vector3dBase.Vector3dBase._plus\tpygeodesy.vector3dBase.Vector3dBase-class.html#_plus\npygeodesy.vector3dBase.Vector3dBase.__mod__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__mod__\npygeodesy.vector3dBase.Vector3dBase.to3xyz\tpygeodesy.vector3dBase.Vector3dBase-class.html#to3xyz\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.ellipsoidalBase.CartesianEllipsoidalBase.reframe\tpygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#reframe\npygeodesy.vector3dBase.Vector3dBase.__long__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__long__\npygeodesy.vector3dBase.Vector3dBase.cmp\tpygeodesy.vector3dBase.Vector3dBase-class.html#cmp\npygeodesy.vector3dBase.Vector3dBase.homogeneous\tpygeodesy.vector3dBase.Vector3dBase-class.html#homogeneous\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.vector3dBase.Vector3dBase.plus_\tpygeodesy.vector3dBase.Vector3dBase-class.html#plus_\npygeodesy.cartesianBase.CartesianBase.sphericalCartesian\tpygeodesy.cartesianBase.CartesianBase-class.html#sphericalCartesian\npygeodesy.cartesianBase.CartesianBase.Roc2\tpygeodesy.cartesianBase.CartesianBase-class.html#Roc2\npygeodesy.cartesianBase.CartesianBase.toDatum\tpygeodesy.cartesianBase.CartesianBase-class.html#toDatum\npygeodesy.vector3dBase.Vector3dBase.__truediv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__truediv__\npygeodesy.ecefLocals._EcefLocal.toLtp\tpygeodesy.ecefLocals._EcefLocal-class.html#toLtp\npygeodesy.vector3d.Vector3d.trilaterate2d2\tpygeodesy.vector3d.Vector3d-class.html#trilaterate2d2\npygeodesy.vector3dBase.Vector3dBase.__matmul__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__matmul__\npygeodesy.vector3dBase.Vector3dBase.euclid\tpygeodesy.vector3dBase.Vector3dBase-class.html#euclid\npygeodesy.vector3dBase.Vector3dBase._minus\tpygeodesy.vector3dBase.Vector3dBase-class.html#_minus\npygeodesy.vector3d.Vector3d.trilaterate3d2\tpygeodesy.vector3d.Vector3d-class.html#trilaterate3d2\npygeodesy.vector3dBase.Vector3dBase.__rmod__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rmod__\npygeodesy.ecefLocals._EcefLocal._ecef9datum\tpygeodesy.ecefLocals._EcefLocal-class.html#_ecef9datum\npygeodesy.cartesianBase.CartesianBase.latlon\tpygeodesy.cartesianBase.CartesianBase-class.html#latlon\npygeodesy.cartesianBase.CartesianBase.hartzell\tpygeodesy.cartesianBase.CartesianBase-class.html#hartzell\npygeodesy.vector3dBase.Vector3dBase._crosserrors\tpygeodesy.vector3dBase.Vector3dBase-class.html#_crosserrors\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.vector3dBase.Vector3dBase._mapped\tpygeodesy.vector3dBase.Vector3dBase-class.html#_mapped\npygeodesy.vector3dBase.Vector3dBase.sum\tpygeodesy.vector3dBase.Vector3dBase-class.html#sum\npygeodesy.cartesianBase.CartesianBase.philam\tpygeodesy.cartesianBase.CartesianBase-class.html#philam\npygeodesy.ecefLocals._EcefLocal.toAer\tpygeodesy.ecefLocals._EcefLocal-class.html#toAer\npygeodesy.cartesianBase.CartesianBase.collins\tpygeodesy.cartesianBase.CartesianBase-class.html#collins\npygeodesy.vector3dBase.Vector3dBase._other_cmp\tpygeodesy.vector3dBase.Vector3dBase-class.html#_other_cmp\npygeodesy.vector3dBase.Vector3dBase.isequalTo\tpygeodesy.vector3dBase.Vector3dBase-class.html#isequalTo\npygeodesy.vector3dBase.Vector3dBase.__ne__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__ne__\npygeodesy.cartesianBase.CartesianBase._height2C\tpygeodesy.cartesianBase.CartesianBase-class.html#_height2C\npygeodesy.vector3dBase.Vector3dBase.__ifloordiv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__ifloordiv__\npygeodesy.vector3dBase.Vector3dBase.dividedBy_\tpygeodesy.vector3dBase.Vector3dBase-class.html#dividedBy_\npygeodesy.vector3dBase.Vector3dBase.equals\tpygeodesy.vector3dBase.Vector3dBase-class.html#equals\npygeodesy.cartesianBase.CartesianBase._n_xyzh4\tpygeodesy.cartesianBase.CartesianBase-class.html#_n_xyzh4\npygeodesy.vector3d.Vector3d.circin6\tpygeodesy.vector3d.Vector3d-class.html#circin6\npygeodesy.cartesianBase.CartesianBase._height4\tpygeodesy.cartesianBase.CartesianBase-class.html#_height4\npygeodesy.vector3d.Vector3d.nearestOn6\tpygeodesy.vector3d.Vector3d-class.html#nearestOn6\npygeodesy.vector3dBase.Vector3dBase.__rmatmul__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rmatmul__\npygeodesy.ellipsoidalBase.CartesianEllipsoidalBase._reframe\tpygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#_reframe\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.vector3d.Vector3d.meeus2\tpygeodesy.vector3d.Vector3d-class.html#meeus2\npygeodesy.vector3dBase.Vector3dBase.__imul__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__imul__\npygeodesy.vector3dBase.Vector3dBase.__trunc__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__trunc__\npygeodesy.vector3dBase.Vector3dBase.times\tpygeodesy.vector3dBase.Vector3dBase-class.html#times\npygeodesy.vector3dBase.Vector3dBase.length\tpygeodesy.vector3dBase.Vector3dBase-class.html#length\npygeodesy.vector3dBase.Vector3dBase.plus\tpygeodesy.vector3dBase.Vector3dBase-class.html#plus\npygeodesy.vector3dBase.Vector3dBase.__mul__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__mul__\npygeodesy.cartesianBase.CartesianBase.convertDatum\tpygeodesy.cartesianBase.CartesianBase-class.html#convertDatum\npygeodesy.vector3dBase.Vector3dBase.__divmod__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__divmod__\npygeodesy.named._NamedBase.toRepr\tpygeodesy.named._NamedBase-class.html#toRepr\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.ellipsoidalBase.CartesianEllipsoidalBase.ellipsoidalCartesian\tpygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#ellipsoidalCartesian\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.vector3dBase.Vector3dBase.pow\tpygeodesy.vector3dBase.Vector3dBase-class.html#pow\npygeodesy.vector3dBase.Vector3dBase.xyz\tpygeodesy.vector3dBase.Vector3dBase-class.html#xyz\npygeodesy.vector3dBase.Vector3dBase.others\tpygeodesy.vector3dBase.Vector3dBase-class.html#others\npygeodesy.cartesianBase.CartesianBase.isEllipsoidal\tpygeodesy.cartesianBase.CartesianBase-class.html#isEllipsoidal\npygeodesy.cartesianBase.CartesianBase.height\tpygeodesy.cartesianBase.CartesianBase-class.html#height\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.vector3dBase.Vector3dBase.__rsub__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rsub__\npygeodesy.vector3dBase.Vector3dBase.ints\tpygeodesy.vector3dBase.Vector3dBase-class.html#ints\npygeodesy.cartesianBase.CartesianBase.cassini\tpygeodesy.cartesianBase.CartesianBase-class.html#cassini\npygeodesy.vector3dBase.Vector3dBase.negate\tpygeodesy.vector3dBase.Vector3dBase-class.html#negate\npygeodesy.vector3dBase.Vector3dBase.apply\tpygeodesy.vector3dBase.Vector3dBase-class.html#apply\npygeodesy.vector3dBase.Vector3dBase.equirectangular\tpygeodesy.vector3dBase.Vector3dBase-class.html#equirectangular\npygeodesy.vector3dBase.Vector3dBase.intermediateTo\tpygeodesy.vector3dBase.Vector3dBase-class.html#intermediateTo\npygeodesy.vector3dBase.Vector3dBase.unit\tpygeodesy.vector3dBase.Vector3dBase-class.html#unit\npygeodesy.vector3dBase.Vector3dBase.__float__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__float__\npygeodesy.vector3dBase.Vector3dBase.__rpow__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rpow__\npygeodesy.ellipsoidalBase.CartesianEllipsoidalBase.convertRefFrame\tpygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#convertRefFrame\npygeodesy.vector3d.Vector3d.soddy4\tpygeodesy.vector3d.Vector3d-class.html#soddy4\npygeodesy.ecefLocals._EcefLocal.toNed\tpygeodesy.ecefLocals._EcefLocal-class.html#toNed\npygeodesy.cartesianBase.CartesianBase._N_vector\tpygeodesy.cartesianBase.CartesianBase-class.html#_N_vector\npygeodesy.vector3d.Vector3d.iscolinearWith\tpygeodesy.vector3d.Vector3d-class.html#iscolinearWith\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.vector3dBase.Vector3dBase.floats\tpygeodesy.vector3dBase.Vector3dBase-class.html#floats\npygeodesy.vector3dBase.Vector3dBase.__itruediv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__itruediv__\npygeodesy.vector3dBase.Vector3dBase.dividedBy\tpygeodesy.vector3dBase.Vector3dBase-class.html#dividedBy\npygeodesy.vector3dBase.Vector3dBase.__isub__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__isub__\npygeodesy.vector3dBase.Vector3dBase.__rdivmod__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rdivmod__\npygeodesy.vector3dBase.Vector3dBase.crosserrors\tpygeodesy.vector3dBase.Vector3dBase-class.html#crosserrors\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.vector3d.Vector3d.circum3\tpygeodesy.vector3d.Vector3d-class.html#circum3\npygeodesy.cartesianBase.CartesianBase.toNvector\tpygeodesy.cartesianBase.CartesianBase-class.html#toNvector\npygeodesy.vector3dBase.Vector3dBase.__eq__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__eq__\npygeodesy.ecefLocals._EcefLocal.toEnu\tpygeodesy.ecefLocals._EcefLocal-class.html#toEnu\npygeodesy.vector3dBase.Vector3dBase.__round__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__round__\npygeodesy.vector3dBase.Vector3dBase.bools\tpygeodesy.vector3dBase.Vector3dBase-class.html#bools\npygeodesy.cartesianBase.CartesianBase.latlonheight\tpygeodesy.cartesianBase.CartesianBase-class.html#latlonheight\npygeodesy.cartesianBase.CartesianBase.height4\tpygeodesy.cartesianBase.CartesianBase-class.html#height4\npygeodesy.ecefLocals._EcefLocal.Ecef\tpygeodesy.ecefLocals._EcefLocal-class.html#Ecef\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.vector3dBase.Vector3dBase.xyz3\tpygeodesy.vector3dBase.Vector3dBase-class.html#xyz3\npygeodesy.ecefLocals._EcefLocal._ltp_ecef2local\tpygeodesy.ecefLocals._EcefLocal-class.html#_ltp_ecef2local\npygeodesy.vector3dBase.Vector3dBase.__iadd__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__iadd__\npygeodesy.cartesianBase.CartesianBase.height3\tpygeodesy.cartesianBase.CartesianBase-class.html#height3\npygeodesy.vector3d.Vector3d.circum4_\tpygeodesy.vector3d.Vector3d-class.html#circum4_\npygeodesy.cartesianBase.CartesianBase.latlonheightdatum\tpygeodesy.cartesianBase.CartesianBase-class.html#latlonheightdatum\npygeodesy.vector3dBase.Vector3dBase.__le__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__le__\npygeodesy.vector3dBase.Vector3dBase.__floordiv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__floordiv__\npygeodesy.vector3dBase.Vector3dBase.__hash__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__hash__\npygeodesy.vector3dBase.Vector3dBase.__sub__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__sub__\npygeodesy.vector3dBase.Vector3dBase.z\tpygeodesy.vector3dBase.Vector3dBase-class.html#z\npygeodesy.vector3dBase.Vector3dBase._xyz\tpygeodesy.vector3dBase.Vector3dBase-class.html#_xyz\npygeodesy.vector3dBase.Vector3dBase.minus\tpygeodesy.vector3dBase.Vector3dBase-class.html#minus\npygeodesy.vector3dBase.Vector3dBase.__ge__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__ge__\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.vector3d.Vector3d.bearing\tpygeodesy.vector3d.Vector3d-class.html#bearing\npygeodesy.vector3dBase.Vector3dBase.__rtruediv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rtruediv__\npygeodesy.vector3dBase.Vector3dBase.floorDividedBy_\tpygeodesy.vector3dBase.Vector3dBase-class.html#floorDividedBy_\npygeodesy.cartesianBase.CartesianBase.collins5\tpygeodesy.cartesianBase.CartesianBase-class.html#collins5\npygeodesy.vector3dBase.Vector3dBase.x2y2z2\tpygeodesy.vector3dBase.Vector3dBase-class.html#x2y2z2\npygeodesy.cartesianBase.CartesianBase.toRtp\tpygeodesy.cartesianBase.CartesianBase-class.html#toRtp\npygeodesy.ellipsoidalBase.CartesianEllipsoidalBase.toRefFrame\tpygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#toRefFrame\npygeodesy.vector3d.Vector3d.parse\tpygeodesy.vector3d.Vector3d-class.html#parse\npygeodesy.vector3dBase.Vector3dBase.floorDividedBy\tpygeodesy.vector3dBase.Vector3dBase-class.html#floorDividedBy\npygeodesy.vector3dBase.Vector3dBase.__floor__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__floor__\npygeodesy.cartesianBase.CartesianBase.isSpherical\tpygeodesy.cartesianBase.CartesianBase-class.html#isSpherical\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.ellipsoidalBase.CartesianEllipsoidalBase.__init__\tpygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#__init__\npygeodesy.vector3dBase.Vector3dBase.__imod__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__imod__\npygeodesy.vector3dBase.Vector3dBase.fabs\tpygeodesy.vector3dBase.Vector3dBase-class.html#fabs\npygeodesy.vector3dBase.Vector3dBase._times\tpygeodesy.vector3dBase.Vector3dBase-class.html#_times\npygeodesy.vector3d.Vector3d.radii11\tpygeodesy.vector3d.Vector3d-class.html#radii11\npygeodesy.cartesianBase.CartesianBase.pierlotx\tpygeodesy.cartesianBase.CartesianBase-class.html#pierlotx\npygeodesy.ellipsoidalBase.CartesianEllipsoidalBase._epoch\tpygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#_epoch\npygeodesy.vector3dBase.Vector3dBase.cross\tpygeodesy.vector3dBase.Vector3dBase-class.html#cross\npygeodesy.cartesianBase.CartesianBase.philamheight\tpygeodesy.cartesianBase.CartesianBase-class.html#philamheight\npygeodesy.vector3dBase.Vector3dBase.__pos__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__pos__\npygeodesy.ellipsoidalBase.CartesianEllipsoidalBase.epoch\tpygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#epoch\npygeodesy.ellipsoidalBase.CartesianEllipsoidalBase.intersections2\tpygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#intersections2\npygeodesy.vector3dBase.Vector3dBase.__abs__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__abs__\npygeodesy.ellipsoidalBase.CartesianEllipsoidalBase._datum\tpygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#_datum\npygeodesy.named._NamedBase.__repr__\tpygeodesy.named._NamedBase-class.html#__repr__\npygeodesy.ecefLocals._EcefLocal._ltp\tpygeodesy.ecefLocals._EcefLocal-class.html#_ltp\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.cartesianBase.CartesianBase.destinationXyz\tpygeodesy.cartesianBase.CartesianBase-class.html#destinationXyz\npygeodesy.cartesianBase.CartesianBase._height\tpygeodesy.cartesianBase.CartesianBase-class.html#_height\npygeodesy.vector3dBase.Vector3dBase.__idiv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__idiv__\npygeodesy.vector3dBase.Vector3dBase._united\tpygeodesy.vector3dBase.Vector3dBase-class.html#_united\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.vector3dBase.Vector3dBase._fromll\tpygeodesy.vector3dBase.Vector3dBase-class.html#_fromll\npygeodesy.vector3dBase.Vector3dBase.__add__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__add__\npygeodesy.vector3dBase.Vector3dBase.x\tpygeodesy.vector3dBase.Vector3dBase-class.html#x\npygeodesy.cartesianBase.CartesianBase.toVector\tpygeodesy.cartesianBase.CartesianBase-class.html#toVector\npygeodesy.cartesianBase.CartesianBase.pierlot\tpygeodesy.cartesianBase.CartesianBase-class.html#pierlot\npygeodesy.ecefLocals._EcefLocal.toLocal\tpygeodesy.ecefLocals._EcefLocal-class.html#toLocal\npygeodesy.vector3dBase.Vector3dBase.__radd__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__radd__\npygeodesy.vector3dBase.Vector3dBase.length2\tpygeodesy.vector3dBase.Vector3dBase-class.html#length2\npygeodesy.cartesianBase.CartesianBase.to2ll\tpygeodesy.cartesianBase.CartesianBase-class.html#to2ll\npygeodesy.vector3dBase.Vector3dBase.isconjugateTo\tpygeodesy.vector3dBase.Vector3dBase-class.html#isconjugateTo\npygeodesy.vector3dBase.Vector3dBase.__ipow__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__ipow__\npygeodesy.vector3dBase.Vector3dBase.__div__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__div__\npygeodesy.vector3dBase.Vector3dBase.__ceil__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__ceil__\npygeodesy.vector3dBase.Vector3dBase.__neg__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__neg__\npygeodesy.vector3dBase.Vector3dBase.y\tpygeodesy.vector3dBase.Vector3dBase-class.html#y\npygeodesy.vector3dBase.Vector3dBase.dot\tpygeodesy.vector3dBase.Vector3dBase-class.html#dot\npygeodesy.ellipsoidalExact.LatLon\tpygeodesy.ellipsoidalExact.LatLon-class.html\npygeodesy.ellipsoidalExact.LatLon.toCartesian\tpygeodesy.ellipsoidalExact.LatLon-class.html#toCartesian\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.toCss\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toCss\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.isenclosedBy\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#isenclosedBy\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.toEtm\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toEtm\npygeodesy.latlonBase.LatLonBase.__str__\tpygeodesy.latlonBase.LatLonBase-class.html#__str__\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.datum\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#datum\npygeodesy.latlonBase.LatLonBase.philam2\tpygeodesy.latlonBase.LatLonBase-class.html#philam2\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.elevation2\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#elevation2\npygeodesy.latlonBase.LatLonBase.to3llh\tpygeodesy.latlonBase.LatLonBase-class.html#to3llh\npygeodesy.latlonBase.LatLonBase.isnormal\tpygeodesy.latlonBase.LatLonBase-class.html#isnormal\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.ellipsoid\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#ellipsoid\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase._upsOK\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#_upsOK\npygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI.distanceTo\tpygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#distanceTo\npygeodesy.latlonBase.LatLonBase.circum3\tpygeodesy.latlonBase.LatLonBase-class.html#circum3\npygeodesy.latlonBase.LatLonBase.flatLocalTo\tpygeodesy.latlonBase.LatLonBase-class.html#flatLocalTo\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.geoidHeight2\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#geoidHeight2\npygeodesy.latlonBase.LatLonBase._distanceTo\tpygeodesy.latlonBase.LatLonBase-class.html#_distanceTo\npygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI.finalBearingOn\tpygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#finalBearingOn\npygeodesy.latlonBase.LatLonBase.isequalTo3\tpygeodesy.latlonBase.LatLonBase-class.html#isequalTo3\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.ellipsoids\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#ellipsoids\npygeodesy.latlonBase.LatLonBase._lon\tpygeodesy.latlonBase.LatLonBase-class.html#_lon\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.latlonBase.LatLonBase.isantipode\tpygeodesy.latlonBase.LatLonBase-class.html#isantipode\npygeodesy.ellipsoidalExact.LatLon.geodesicx\tpygeodesy.ellipsoidalExact.LatLon-class.html#geodesicx\npygeodesy.latlonBase.LatLonBase._ecef9\tpygeodesy.latlonBase.LatLonBase-class.html#_ecef9\npygeodesy.latlonBase.LatLonBase._rhumb3dict\tpygeodesy.latlonBase.LatLonBase-class.html#_rhumb3dict\npygeodesy.latlonBase.LatLonBase.to2ab\tpygeodesy.latlonBase.LatLonBase-class.html#to2ab\npygeodesy.latlonBase.LatLonBase.toStr\tpygeodesy.latlonBase.LatLonBase-class.html#toStr\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase._datum\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#_datum\npygeodesy.latlonBase.LatLonBase.PointsIter\tpygeodesy.latlonBase.LatLonBase-class.html#PointsIter\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.toTransform\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toTransform\npygeodesy.latlonBase.LatLonBase.isEllipsoidal\tpygeodesy.latlonBase.LatLonBase-class.html#isEllipsoidal\npygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI._Direct2Tuple\tpygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#_Direct2Tuple\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.antipode\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#antipode\npygeodesy.latlonBase.LatLonBase._n_xyz3\tpygeodesy.latlonBase.LatLonBase-class.html#_n_xyz3\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.toUtmUps\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toUtmUps\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase._geoidHeight2to\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#_geoidHeight2to\npygeodesy.latlonBase.LatLonBase.toEcef\tpygeodesy.latlonBase.LatLonBase-class.html#toEcef\npygeodesy.latlonBase.LatLonBase.cosineLawTo\tpygeodesy.latlonBase.LatLonBase-class.html#cosineLawTo\npygeodesy.latlonBase.LatLonBase.lam\tpygeodesy.latlonBase.LatLonBase-class.html#lam\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.triangulate\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#triangulate\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase._ups\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#_ups\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.latlonBase.LatLonBase._Ecef_forward\tpygeodesy.latlonBase.LatLonBase-class.html#_Ecef_forward\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.reframe\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#reframe\npygeodesy.named._NamedBase.toRepr\tpygeodesy.named._NamedBase-class.html#toRepr\npygeodesy.latlonBase.LatLonBase.isantipodeTo\tpygeodesy.latlonBase.LatLonBase-class.html#isantipodeTo\npygeodesy.latlonBase.LatLonBase.compassAngle\tpygeodesy.latlonBase.LatLonBase-class.html#compassAngle\npygeodesy.latlonBase.LatLonBase.__ne__\tpygeodesy.latlonBase.LatLonBase-class.html#__ne__\npygeodesy.latlonBase.LatLonBase.xyz3\tpygeodesy.latlonBase.LatLonBase-class.html#xyz3\npygeodesy.latlonBase.LatLonBase.points2\tpygeodesy.latlonBase.LatLonBase-class.html#points2\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.toDatum\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toDatum\npygeodesy.ecefLocals._EcefLocal.toLtp\tpygeodesy.ecefLocals._EcefLocal-class.html#toLtp\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.toUtm\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toUtm\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.latlonBase.LatLonBase.clipid\tpygeodesy.latlonBase.LatLonBase-class.html#clipid\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.ellipsoidalLatLon\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#ellipsoidalLatLon\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase._gamma\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#_gamma\npygeodesy.latlonBase.LatLonBase.hartzell\tpygeodesy.latlonBase.LatLonBase-class.html#hartzell\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.scale\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#scale\npygeodesy.latlonBase.LatLonBase.normal\tpygeodesy.latlonBase.LatLonBase-class.html#normal\npygeodesy.latlonBase.LatLonBase.philam\tpygeodesy.latlonBase.LatLonBase-class.html#philam\npygeodesy.ecefLocals._EcefLocal.toAer\tpygeodesy.ecefLocals._EcefLocal-class.html#toAer\npygeodesy.latlonBase.LatLonBase.chordTo\tpygeodesy.latlonBase.LatLonBase-class.html#chordTo\npygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI.finalBearingTo\tpygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#finalBearingTo\npygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI._Inverse\tpygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#_Inverse\npygeodesy.latlonBase.LatLonBase.toWm\tpygeodesy.latlonBase.LatLonBase-class.html#toWm\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.latlonBase.LatLonBase.sphericalLatLon\tpygeodesy.latlonBase.LatLonBase-class.html#sphericalLatLon\npygeodesy.latlonBase.LatLonBase.equals\tpygeodesy.latlonBase.LatLonBase-class.html#equals\npygeodesy.latlonBase.LatLonBase.circin6\tpygeodesy.latlonBase.LatLonBase-class.html#circin6\npygeodesy.latlonBase.LatLonBase.nearestOn6\tpygeodesy.latlonBase.LatLonBase-class.html#nearestOn6\npygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI.nearestOn8\tpygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#nearestOn8\npygeodesy.ecefLocals._EcefLocal._ecef9datum\tpygeodesy.ecefLocals._EcefLocal-class.html#_ecef9datum\npygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI.distanceTo3\tpygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#distanceTo3\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.distanceTo2\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#distanceTo2\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.latlonBase.LatLonBase.toVector3d\tpygeodesy.latlonBase.LatLonBase-class.html#toVector3d\npygeodesy.ecefLocals._EcefLocal.toEnu\tpygeodesy.ecefLocals._EcefLocal-class.html#toEnu\npygeodesy.latlonBase.LatLonBase._lat\tpygeodesy.latlonBase.LatLonBase-class.html#_lat\npygeodesy.latlonBase.LatLonBase.cosineForsytheAndoyerLambertTo\tpygeodesy.latlonBase.LatLonBase-class.html#cosineForsytheAndoyerLambertTo\npygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI._g_gl_p3\tpygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#_g_gl_p3\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.latlonBase.LatLonBase.compassAngleTo\tpygeodesy.latlonBase.LatLonBase-class.html#compassAngleTo\npygeodesy.named._NamedBase.__repr__\tpygeodesy.named._NamedBase-class.html#__repr__\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase._elevation2to\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#_elevation2to\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.convertDatum\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#convertDatum\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.intersection3\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#intersection3\npygeodesy.latlonBase.LatLonBase.latlon_\tpygeodesy.latlonBase.LatLonBase-class.html#latlon_\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.gamma\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#gamma\npygeodesy.latlonBase.LatLonBase.flatPolarTo\tpygeodesy.latlonBase.LatLonBase-class.html#flatPolarTo\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.latlonBase.LatLonBase.boundsOf\tpygeodesy.latlonBase.LatLonBase-class.html#boundsOf\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase._scale\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#_scale\npygeodesy.latlonBase.LatLonBase._havg\tpygeodesy.latlonBase.LatLonBase-class.html#_havg\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase._geoidHeight2\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#_geoidHeight2\npygeodesy.latlonBase.LatLonBase.xyz\tpygeodesy.latlonBase.LatLonBase-class.html#xyz\npygeodesy.named._NamedBase.others\tpygeodesy.named._NamedBase-class.html#others\npygeodesy.ellipsoidalExact.LatLon.geodesic\tpygeodesy.ellipsoidalExact.LatLon-class.html#geodesic\npygeodesy.latlonBase.LatLonBase.height\tpygeodesy.latlonBase.LatLonBase-class.html#height\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.latlonBase.LatLonBase.equals3\tpygeodesy.latlonBase.LatLonBase-class.html#equals3\npygeodesy.latlonBase.LatLonBase.rhumbIntersecant2\tpygeodesy.latlonBase.LatLonBase-class.html#rhumbIntersecant2\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.latlonBase.LatLonBase.toVector\tpygeodesy.latlonBase.LatLonBase-class.html#toVector\npygeodesy.latlonBase.LatLonBase.rhumbDestination\tpygeodesy.latlonBase.LatLonBase-class.html#rhumbDestination\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.convertRefFrame\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#convertRefFrame\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.trilaterate5\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#trilaterate5\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.nearestOn\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#nearestOn\npygeodesy.latlonBase.LatLonBase._heigHt\tpygeodesy.latlonBase.LatLonBase-class.html#_heigHt\npygeodesy.latlonBase.LatLonBase._N_vector\tpygeodesy.latlonBase.LatLonBase-class.html#_N_vector\npygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI.destination\tpygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#destination\npygeodesy.latlonBase.LatLonBase.lon\tpygeodesy.latlonBase.LatLonBase-class.html#lon\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.midpointTo\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#midpointTo\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.toLcc\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toLcc\npygeodesy.ellipsoidalExact.LatLon.Equidistant\tpygeodesy.ellipsoidalExact.LatLon-class.html#Equidistant\npygeodesy.latlonBase.LatLonBase.xyzh\tpygeodesy.latlonBase.LatLonBase-class.html#xyzh\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.latlonBase.LatLonBase.nearestTo\tpygeodesy.latlonBase.LatLonBase-class.html#nearestTo\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase._reframe\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#_reframe\npygeodesy.latlonBase.LatLonBase.hubenyTo\tpygeodesy.latlonBase.LatLonBase-class.html#hubenyTo\npygeodesy.latlonBase.LatLonBase.heightStr\tpygeodesy.latlonBase.LatLonBase-class.html#heightStr\npygeodesy.ecefLocals._EcefLocal.Ecef\tpygeodesy.ecefLocals._EcefLocal-class.html#Ecef\npygeodesy.latlonBase.LatLonBase.latlon2\tpygeodesy.latlonBase.LatLonBase-class.html#latlon2\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI._Direct\tpygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#_Direct\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase._utm\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#_utm\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase._toLLEB_args\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#_toLLEB_args\npygeodesy.ecefLocals._EcefLocal._ltp\tpygeodesy.ecefLocals._EcefLocal-class.html#_ltp\npygeodesy.latlonBase.LatLonBase._rhumb3\tpygeodesy.latlonBase.LatLonBase-class.html#_rhumb3\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.convergence\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#convergence\npygeodesy.latlonBase.LatLonBase.toNvector\tpygeodesy.latlonBase.LatLonBase-class.html#toNvector\npygeodesy.latlonBase.LatLonBase.__eq__\tpygeodesy.latlonBase.LatLonBase-class.html#__eq__\npygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI.destination2\tpygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#destination2\npygeodesy.latlonBase.LatLonBase.toNormal\tpygeodesy.latlonBase.LatLonBase-class.html#toNormal\npygeodesy.latlonBase.LatLonBase.latlonheight\tpygeodesy.latlonBase.LatLonBase-class.html#latlonheight\npygeodesy.latlonBase.LatLonBase.height4\tpygeodesy.latlonBase.LatLonBase-class.html#height4\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.iteration\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#iteration\npygeodesy.latlonBase.LatLonBase.bounds\tpygeodesy.latlonBase.LatLonBase-class.html#bounds\npygeodesy.latlonBase.LatLonBase.circum4_\tpygeodesy.latlonBase.LatLonBase-class.html#circum4_\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.latlonBase.LatLonBase.rhumbAzimuthTo\tpygeodesy.latlonBase.LatLonBase-class.html#rhumbAzimuthTo\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase._elevation2\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#_elevation2\npygeodesy.ecefLocals._EcefLocal.toNed\tpygeodesy.ecefLocals._EcefLocal-class.html#toNed\npygeodesy.latlonBase.LatLonBase.cosineAndoyerLambertTo\tpygeodesy.latlonBase.LatLonBase-class.html#cosineAndoyerLambertTo\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.toUps\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toUps\npygeodesy.latlonBase.LatLonBase._clipid\tpygeodesy.latlonBase.LatLonBase-class.html#_clipid\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.toRefFrame\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toRefFrame\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.parse\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#parse\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.latlonBase.LatLonBase.isSpherical\tpygeodesy.latlonBase.LatLonBase-class.html#isSpherical\npygeodesy.latlonBase.LatLonBase._wrap_name2\tpygeodesy.latlonBase.LatLonBase-class.html#_wrap_name2\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.__init__\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#__init__\npygeodesy.ecefLocals._EcefLocal.toXyz\tpygeodesy.ecefLocals._EcefLocal-class.html#toXyz\npygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI.initialBearingTo\tpygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#initialBearingTo\npygeodesy.latlonBase.LatLonBase.radii11\tpygeodesy.latlonBase.LatLonBase-class.html#radii11\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase._epoch\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#_epoch\npygeodesy.latlonBase.LatLonBase.philamheight\tpygeodesy.latlonBase.LatLonBase-class.html#philamheight\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase._utmOK\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#_utmOK\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.epoch\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#epoch\npygeodesy.latlonBase.LatLonBase.latlon2round\tpygeodesy.latlonBase.LatLonBase-class.html#latlon2round\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.intersections2\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#intersections2\npygeodesy.ecefLocals._EcefLocal._ltp_ecef2local\tpygeodesy.ecefLocals._EcefLocal-class.html#_ltp_ecef2local\npygeodesy.latlonBase.LatLonBase.vincentysTo\tpygeodesy.latlonBase.LatLonBase-class.html#vincentysTo\npygeodesy.latlonBase.LatLonBase.thomasTo\tpygeodesy.latlonBase.LatLonBase-class.html#thomasTo\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.to3xyz\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#to3xyz\npygeodesy.latlonBase.LatLonBase.rhumbMidpointTo\tpygeodesy.latlonBase.LatLonBase-class.html#rhumbMidpointTo\npygeodesy.latlonBase.LatLonBase.latlon\tpygeodesy.latlonBase.LatLonBase-class.html#latlon\npygeodesy.latlonBase.LatLonBase.phi\tpygeodesy.latlonBase.LatLonBase-class.html#phi\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.latlonBase.LatLonBase.destinationXyz\tpygeodesy.latlonBase.LatLonBase-class.html#destinationXyz\npygeodesy.latlonBase.LatLonBase._height\tpygeodesy.latlonBase.LatLonBase-class.html#_height\npygeodesy.latlonBase.LatLonBase.isequalTo\tpygeodesy.latlonBase.LatLonBase-class.html#isequalTo\npygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI.bearingTo2\tpygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#bearingTo2\npygeodesy.latlonBase.LatLonBase.euclideanTo\tpygeodesy.latlonBase.LatLonBase-class.html#euclideanTo\npygeodesy.latlonBase.LatLonBase.haversineTo\tpygeodesy.latlonBase.LatLonBase-class.html#haversineTo\npygeodesy.latlonBase.LatLonBase._intersecend2\tpygeodesy.latlonBase.LatLonBase-class.html#_intersecend2\npygeodesy.latlonBase.LatLonBase.lat\tpygeodesy.latlonBase.LatLonBase-class.html#lat\npygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI.intermediateTo\tpygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#intermediateTo\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.toMgrs\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toMgrs\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.latlonBase.LatLonBase.equirectangularTo\tpygeodesy.latlonBase.LatLonBase-class.html#equirectangularTo\npygeodesy.ecefLocals._EcefLocal.toLocal\tpygeodesy.ecefLocals._EcefLocal-class.html#toLocal\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase._toX8\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#_toX8\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.toOsgr\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toOsgr\npygeodesy.latlonBase.LatLonBase.rhumbDistanceTo\tpygeodesy.latlonBase.LatLonBase-class.html#rhumbDistanceTo\npygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI.plumbTo\tpygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#plumbTo\npygeodesy.latlonBase.LatLonBase.rhumbLine\tpygeodesy.latlonBase.LatLonBase-class.html#rhumbLine\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase._etm\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#_etm\npygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI.intersecant2\tpygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#intersecant2\npygeodesy.latlonBase.LatLonBase.points\tpygeodesy.latlonBase.LatLonBase-class.html#points\npygeodesy.latlonBase.LatLonBase._toCartesianEcef\tpygeodesy.latlonBase.LatLonBase-class.html#_toCartesianEcef\npygeodesy.latlonBase.LatLonBase._distanceTo_\tpygeodesy.latlonBase.LatLonBase-class.html#_distanceTo_\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase._Radjust2\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#_Radjust2\npygeodesy.ellipsoidalGeodSolve.Cartesian\tpygeodesy.ellipsoidalGeodSolve.Cartesian-class.html\npygeodesy.vector3d.Vector3d.toCartesian\tpygeodesy.vector3d.Vector3d-class.html#toCartesian\npygeodesy.vector3dBase.Vector3dBase.__int__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__int__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.cartesianBase.CartesianBase.tienstra7\tpygeodesy.cartesianBase.CartesianBase-class.html#tienstra7\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedBase.__str__\tpygeodesy.named._NamedBase-class.html#__str__\npygeodesy.cartesianBase.CartesianBase.datum\tpygeodesy.cartesianBase.CartesianBase-class.html#datum\npygeodesy.vector3dBase.Vector3dBase.__imatmul__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__imatmul__\npygeodesy.ellipsoidalGeodSolve.Cartesian.toLatLon\tpygeodesy.ellipsoidalGeodSolve.Cartesian-class.html#toLatLon\npygeodesy.vector3dBase.Vector3dBase.times_\tpygeodesy.vector3dBase.Vector3dBase-class.html#times_\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.vector3dBase.Vector3dBase.__rdiv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rdiv__\npygeodesy.vector3dBase.Vector3dBase.__rmul__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rmul__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.vector3dBase.Vector3dBase.__lt__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__lt__\npygeodesy.cartesianBase.CartesianBase.philamheightdatum\tpygeodesy.cartesianBase.CartesianBase-class.html#philamheightdatum\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.cartesianBase.CartesianBase.to3llh\tpygeodesy.cartesianBase.CartesianBase-class.html#to3llh\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.ellipsoidalBase.CartesianEllipsoidalBase.toTransforms_\tpygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#toTransforms_\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.vector3dBase.Vector3dBase.__cmp__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__cmp__\npygeodesy.vector3d.Vector3d.nearestOn\tpygeodesy.vector3d.Vector3d-class.html#nearestOn\npygeodesy.vector3dBase.Vector3dBase.minus_\tpygeodesy.vector3dBase.Vector3dBase-class.html#minus_\npygeodesy.vector3dBase.Vector3dBase.__rfloordiv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rfloordiv__\npygeodesy.cartesianBase.CartesianBase.tienstra\tpygeodesy.cartesianBase.CartesianBase-class.html#tienstra\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.cartesianBase.CartesianBase._ecef9\tpygeodesy.cartesianBase.CartesianBase-class.html#_ecef9\npygeodesy.vector3dBase.Vector3dBase.rotateAround\tpygeodesy.vector3dBase.Vector3dBase-class.html#rotateAround\npygeodesy.cartesianBase.CartesianBase.to2ab\tpygeodesy.cartesianBase.CartesianBase-class.html#to2ab\npygeodesy.cartesianBase.CartesianBase.toStr\tpygeodesy.cartesianBase.CartesianBase-class.html#toStr\npygeodesy.vector3dBase.Vector3dBase._roty\tpygeodesy.vector3dBase.Vector3dBase-class.html#_roty\npygeodesy.vector3dBase.Vector3dBase.angleTo\tpygeodesy.vector3dBase.Vector3dBase-class.html#angleTo\npygeodesy.cartesianBase.CartesianBase.toTransform\tpygeodesy.cartesianBase.CartesianBase-class.html#toTransform\npygeodesy.ecefLocals._EcefLocal.toXyz\tpygeodesy.ecefLocals._EcefLocal-class.html#toXyz\npygeodesy.vector3dBase.Vector3dBase.__pow__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__pow__\npygeodesy.vector3dBase.Vector3dBase.__gt__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__gt__\npygeodesy.vector3dBase.Vector3dBase.__bool__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__bool__\npygeodesy.vector3dBase.Vector3dBase.x2y2z23\tpygeodesy.vector3dBase.Vector3dBase-class.html#x2y2z23\npygeodesy.cartesianBase.CartesianBase.toEcef\tpygeodesy.cartesianBase.CartesianBase-class.html#toEcef\npygeodesy.vector3dBase.Vector3dBase.rotate\tpygeodesy.vector3dBase.Vector3dBase-class.html#rotate\npygeodesy.vector3dBase.Vector3dBase.__nonzero__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__nonzero__\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.vector3dBase.Vector3dBase._ll\tpygeodesy.vector3dBase.Vector3dBase-class.html#_ll\npygeodesy.vector3dBase.Vector3dBase._plus\tpygeodesy.vector3dBase.Vector3dBase-class.html#_plus\npygeodesy.vector3dBase.Vector3dBase.__mod__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__mod__\npygeodesy.vector3dBase.Vector3dBase.to3xyz\tpygeodesy.vector3dBase.Vector3dBase-class.html#to3xyz\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.ellipsoidalBase.CartesianEllipsoidalBase.reframe\tpygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#reframe\npygeodesy.vector3dBase.Vector3dBase.__long__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__long__\npygeodesy.vector3dBase.Vector3dBase.cmp\tpygeodesy.vector3dBase.Vector3dBase-class.html#cmp\npygeodesy.vector3dBase.Vector3dBase.homogeneous\tpygeodesy.vector3dBase.Vector3dBase-class.html#homogeneous\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.vector3dBase.Vector3dBase.plus_\tpygeodesy.vector3dBase.Vector3dBase-class.html#plus_\npygeodesy.cartesianBase.CartesianBase.sphericalCartesian\tpygeodesy.cartesianBase.CartesianBase-class.html#sphericalCartesian\npygeodesy.cartesianBase.CartesianBase.Roc2\tpygeodesy.cartesianBase.CartesianBase-class.html#Roc2\npygeodesy.cartesianBase.CartesianBase.toDatum\tpygeodesy.cartesianBase.CartesianBase-class.html#toDatum\npygeodesy.vector3dBase.Vector3dBase.__truediv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__truediv__\npygeodesy.ecefLocals._EcefLocal.toLtp\tpygeodesy.ecefLocals._EcefLocal-class.html#toLtp\npygeodesy.vector3d.Vector3d.trilaterate2d2\tpygeodesy.vector3d.Vector3d-class.html#trilaterate2d2\npygeodesy.vector3dBase.Vector3dBase.__matmul__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__matmul__\npygeodesy.vector3dBase.Vector3dBase.euclid\tpygeodesy.vector3dBase.Vector3dBase-class.html#euclid\npygeodesy.vector3dBase.Vector3dBase._minus\tpygeodesy.vector3dBase.Vector3dBase-class.html#_minus\npygeodesy.vector3d.Vector3d.trilaterate3d2\tpygeodesy.vector3d.Vector3d-class.html#trilaterate3d2\npygeodesy.vector3dBase.Vector3dBase.__rmod__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rmod__\npygeodesy.ecefLocals._EcefLocal._ecef9datum\tpygeodesy.ecefLocals._EcefLocal-class.html#_ecef9datum\npygeodesy.cartesianBase.CartesianBase.latlon\tpygeodesy.cartesianBase.CartesianBase-class.html#latlon\npygeodesy.cartesianBase.CartesianBase.hartzell\tpygeodesy.cartesianBase.CartesianBase-class.html#hartzell\npygeodesy.vector3dBase.Vector3dBase._crosserrors\tpygeodesy.vector3dBase.Vector3dBase-class.html#_crosserrors\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.vector3dBase.Vector3dBase._mapped\tpygeodesy.vector3dBase.Vector3dBase-class.html#_mapped\npygeodesy.vector3dBase.Vector3dBase.sum\tpygeodesy.vector3dBase.Vector3dBase-class.html#sum\npygeodesy.cartesianBase.CartesianBase.philam\tpygeodesy.cartesianBase.CartesianBase-class.html#philam\npygeodesy.ecefLocals._EcefLocal.toAer\tpygeodesy.ecefLocals._EcefLocal-class.html#toAer\npygeodesy.cartesianBase.CartesianBase.collins\tpygeodesy.cartesianBase.CartesianBase-class.html#collins\npygeodesy.vector3dBase.Vector3dBase._other_cmp\tpygeodesy.vector3dBase.Vector3dBase-class.html#_other_cmp\npygeodesy.vector3dBase.Vector3dBase.isequalTo\tpygeodesy.vector3dBase.Vector3dBase-class.html#isequalTo\npygeodesy.vector3dBase.Vector3dBase.__ne__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__ne__\npygeodesy.cartesianBase.CartesianBase._height2C\tpygeodesy.cartesianBase.CartesianBase-class.html#_height2C\npygeodesy.vector3dBase.Vector3dBase.__ifloordiv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__ifloordiv__\npygeodesy.vector3dBase.Vector3dBase.dividedBy_\tpygeodesy.vector3dBase.Vector3dBase-class.html#dividedBy_\npygeodesy.vector3dBase.Vector3dBase.equals\tpygeodesy.vector3dBase.Vector3dBase-class.html#equals\npygeodesy.cartesianBase.CartesianBase._n_xyzh4\tpygeodesy.cartesianBase.CartesianBase-class.html#_n_xyzh4\npygeodesy.vector3d.Vector3d.circin6\tpygeodesy.vector3d.Vector3d-class.html#circin6\npygeodesy.cartesianBase.CartesianBase._height4\tpygeodesy.cartesianBase.CartesianBase-class.html#_height4\npygeodesy.vector3d.Vector3d.nearestOn6\tpygeodesy.vector3d.Vector3d-class.html#nearestOn6\npygeodesy.vector3dBase.Vector3dBase.__rmatmul__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rmatmul__\npygeodesy.ellipsoidalBase.CartesianEllipsoidalBase._reframe\tpygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#_reframe\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.vector3d.Vector3d.meeus2\tpygeodesy.vector3d.Vector3d-class.html#meeus2\npygeodesy.vector3dBase.Vector3dBase.__imul__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__imul__\npygeodesy.vector3dBase.Vector3dBase.__trunc__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__trunc__\npygeodesy.vector3dBase.Vector3dBase.times\tpygeodesy.vector3dBase.Vector3dBase-class.html#times\npygeodesy.vector3dBase.Vector3dBase.length\tpygeodesy.vector3dBase.Vector3dBase-class.html#length\npygeodesy.vector3dBase.Vector3dBase.plus\tpygeodesy.vector3dBase.Vector3dBase-class.html#plus\npygeodesy.vector3dBase.Vector3dBase.__mul__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__mul__\npygeodesy.cartesianBase.CartesianBase.convertDatum\tpygeodesy.cartesianBase.CartesianBase-class.html#convertDatum\npygeodesy.vector3dBase.Vector3dBase.__divmod__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__divmod__\npygeodesy.named._NamedBase.toRepr\tpygeodesy.named._NamedBase-class.html#toRepr\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.ellipsoidalBase.CartesianEllipsoidalBase.ellipsoidalCartesian\tpygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#ellipsoidalCartesian\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.vector3dBase.Vector3dBase.pow\tpygeodesy.vector3dBase.Vector3dBase-class.html#pow\npygeodesy.vector3dBase.Vector3dBase.xyz\tpygeodesy.vector3dBase.Vector3dBase-class.html#xyz\npygeodesy.vector3dBase.Vector3dBase.others\tpygeodesy.vector3dBase.Vector3dBase-class.html#others\npygeodesy.cartesianBase.CartesianBase.isEllipsoidal\tpygeodesy.cartesianBase.CartesianBase-class.html#isEllipsoidal\npygeodesy.cartesianBase.CartesianBase.height\tpygeodesy.cartesianBase.CartesianBase-class.html#height\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.vector3dBase.Vector3dBase.__rsub__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rsub__\npygeodesy.vector3dBase.Vector3dBase.ints\tpygeodesy.vector3dBase.Vector3dBase-class.html#ints\npygeodesy.cartesianBase.CartesianBase.cassini\tpygeodesy.cartesianBase.CartesianBase-class.html#cassini\npygeodesy.vector3dBase.Vector3dBase.negate\tpygeodesy.vector3dBase.Vector3dBase-class.html#negate\npygeodesy.vector3dBase.Vector3dBase.apply\tpygeodesy.vector3dBase.Vector3dBase-class.html#apply\npygeodesy.vector3dBase.Vector3dBase.equirectangular\tpygeodesy.vector3dBase.Vector3dBase-class.html#equirectangular\npygeodesy.vector3dBase.Vector3dBase.intermediateTo\tpygeodesy.vector3dBase.Vector3dBase-class.html#intermediateTo\npygeodesy.vector3dBase.Vector3dBase.unit\tpygeodesy.vector3dBase.Vector3dBase-class.html#unit\npygeodesy.vector3dBase.Vector3dBase.__float__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__float__\npygeodesy.vector3dBase.Vector3dBase.__rpow__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rpow__\npygeodesy.ellipsoidalBase.CartesianEllipsoidalBase.convertRefFrame\tpygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#convertRefFrame\npygeodesy.vector3d.Vector3d.soddy4\tpygeodesy.vector3d.Vector3d-class.html#soddy4\npygeodesy.ecefLocals._EcefLocal.toNed\tpygeodesy.ecefLocals._EcefLocal-class.html#toNed\npygeodesy.cartesianBase.CartesianBase._N_vector\tpygeodesy.cartesianBase.CartesianBase-class.html#_N_vector\npygeodesy.vector3d.Vector3d.iscolinearWith\tpygeodesy.vector3d.Vector3d-class.html#iscolinearWith\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.vector3dBase.Vector3dBase.floats\tpygeodesy.vector3dBase.Vector3dBase-class.html#floats\npygeodesy.vector3dBase.Vector3dBase.__itruediv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__itruediv__\npygeodesy.vector3dBase.Vector3dBase.dividedBy\tpygeodesy.vector3dBase.Vector3dBase-class.html#dividedBy\npygeodesy.vector3dBase.Vector3dBase.__isub__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__isub__\npygeodesy.vector3dBase.Vector3dBase.__rdivmod__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rdivmod__\npygeodesy.vector3dBase.Vector3dBase.crosserrors\tpygeodesy.vector3dBase.Vector3dBase-class.html#crosserrors\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.vector3d.Vector3d.circum3\tpygeodesy.vector3d.Vector3d-class.html#circum3\npygeodesy.cartesianBase.CartesianBase.toNvector\tpygeodesy.cartesianBase.CartesianBase-class.html#toNvector\npygeodesy.vector3dBase.Vector3dBase.__eq__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__eq__\npygeodesy.ecefLocals._EcefLocal.toEnu\tpygeodesy.ecefLocals._EcefLocal-class.html#toEnu\npygeodesy.vector3dBase.Vector3dBase.__round__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__round__\npygeodesy.vector3dBase.Vector3dBase.bools\tpygeodesy.vector3dBase.Vector3dBase-class.html#bools\npygeodesy.cartesianBase.CartesianBase.latlonheight\tpygeodesy.cartesianBase.CartesianBase-class.html#latlonheight\npygeodesy.cartesianBase.CartesianBase.height4\tpygeodesy.cartesianBase.CartesianBase-class.html#height4\npygeodesy.ecefLocals._EcefLocal.Ecef\tpygeodesy.ecefLocals._EcefLocal-class.html#Ecef\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.vector3dBase.Vector3dBase.xyz3\tpygeodesy.vector3dBase.Vector3dBase-class.html#xyz3\npygeodesy.ecefLocals._EcefLocal._ltp_ecef2local\tpygeodesy.ecefLocals._EcefLocal-class.html#_ltp_ecef2local\npygeodesy.vector3dBase.Vector3dBase.__iadd__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__iadd__\npygeodesy.cartesianBase.CartesianBase.height3\tpygeodesy.cartesianBase.CartesianBase-class.html#height3\npygeodesy.vector3d.Vector3d.circum4_\tpygeodesy.vector3d.Vector3d-class.html#circum4_\npygeodesy.cartesianBase.CartesianBase.latlonheightdatum\tpygeodesy.cartesianBase.CartesianBase-class.html#latlonheightdatum\npygeodesy.vector3dBase.Vector3dBase.__le__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__le__\npygeodesy.vector3dBase.Vector3dBase.__floordiv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__floordiv__\npygeodesy.vector3dBase.Vector3dBase.__hash__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__hash__\npygeodesy.vector3dBase.Vector3dBase.__sub__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__sub__\npygeodesy.vector3dBase.Vector3dBase.z\tpygeodesy.vector3dBase.Vector3dBase-class.html#z\npygeodesy.vector3dBase.Vector3dBase._xyz\tpygeodesy.vector3dBase.Vector3dBase-class.html#_xyz\npygeodesy.vector3dBase.Vector3dBase.minus\tpygeodesy.vector3dBase.Vector3dBase-class.html#minus\npygeodesy.vector3dBase.Vector3dBase.__ge__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__ge__\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.vector3d.Vector3d.bearing\tpygeodesy.vector3d.Vector3d-class.html#bearing\npygeodesy.vector3dBase.Vector3dBase.__rtruediv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rtruediv__\npygeodesy.vector3dBase.Vector3dBase.floorDividedBy_\tpygeodesy.vector3dBase.Vector3dBase-class.html#floorDividedBy_\npygeodesy.cartesianBase.CartesianBase.collins5\tpygeodesy.cartesianBase.CartesianBase-class.html#collins5\npygeodesy.vector3dBase.Vector3dBase.x2y2z2\tpygeodesy.vector3dBase.Vector3dBase-class.html#x2y2z2\npygeodesy.cartesianBase.CartesianBase.toRtp\tpygeodesy.cartesianBase.CartesianBase-class.html#toRtp\npygeodesy.ellipsoidalBase.CartesianEllipsoidalBase.toRefFrame\tpygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#toRefFrame\npygeodesy.vector3d.Vector3d.parse\tpygeodesy.vector3d.Vector3d-class.html#parse\npygeodesy.vector3dBase.Vector3dBase.floorDividedBy\tpygeodesy.vector3dBase.Vector3dBase-class.html#floorDividedBy\npygeodesy.vector3dBase.Vector3dBase.__floor__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__floor__\npygeodesy.cartesianBase.CartesianBase.isSpherical\tpygeodesy.cartesianBase.CartesianBase-class.html#isSpherical\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.ellipsoidalBase.CartesianEllipsoidalBase.__init__\tpygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#__init__\npygeodesy.vector3dBase.Vector3dBase.__imod__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__imod__\npygeodesy.vector3dBase.Vector3dBase.fabs\tpygeodesy.vector3dBase.Vector3dBase-class.html#fabs\npygeodesy.vector3dBase.Vector3dBase._times\tpygeodesy.vector3dBase.Vector3dBase-class.html#_times\npygeodesy.vector3d.Vector3d.radii11\tpygeodesy.vector3d.Vector3d-class.html#radii11\npygeodesy.cartesianBase.CartesianBase.pierlotx\tpygeodesy.cartesianBase.CartesianBase-class.html#pierlotx\npygeodesy.ellipsoidalBase.CartesianEllipsoidalBase._epoch\tpygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#_epoch\npygeodesy.vector3dBase.Vector3dBase.cross\tpygeodesy.vector3dBase.Vector3dBase-class.html#cross\npygeodesy.cartesianBase.CartesianBase.philamheight\tpygeodesy.cartesianBase.CartesianBase-class.html#philamheight\npygeodesy.vector3dBase.Vector3dBase.__pos__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__pos__\npygeodesy.ellipsoidalBase.CartesianEllipsoidalBase.epoch\tpygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#epoch\npygeodesy.ellipsoidalBase.CartesianEllipsoidalBase.intersections2\tpygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#intersections2\npygeodesy.vector3dBase.Vector3dBase.__abs__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__abs__\npygeodesy.ellipsoidalBase.CartesianEllipsoidalBase._datum\tpygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#_datum\npygeodesy.named._NamedBase.__repr__\tpygeodesy.named._NamedBase-class.html#__repr__\npygeodesy.ecefLocals._EcefLocal._ltp\tpygeodesy.ecefLocals._EcefLocal-class.html#_ltp\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.cartesianBase.CartesianBase.destinationXyz\tpygeodesy.cartesianBase.CartesianBase-class.html#destinationXyz\npygeodesy.cartesianBase.CartesianBase._height\tpygeodesy.cartesianBase.CartesianBase-class.html#_height\npygeodesy.vector3dBase.Vector3dBase.__idiv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__idiv__\npygeodesy.vector3dBase.Vector3dBase._united\tpygeodesy.vector3dBase.Vector3dBase-class.html#_united\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.vector3dBase.Vector3dBase._fromll\tpygeodesy.vector3dBase.Vector3dBase-class.html#_fromll\npygeodesy.vector3dBase.Vector3dBase.__add__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__add__\npygeodesy.vector3dBase.Vector3dBase.x\tpygeodesy.vector3dBase.Vector3dBase-class.html#x\npygeodesy.cartesianBase.CartesianBase.toVector\tpygeodesy.cartesianBase.CartesianBase-class.html#toVector\npygeodesy.cartesianBase.CartesianBase.pierlot\tpygeodesy.cartesianBase.CartesianBase-class.html#pierlot\npygeodesy.ecefLocals._EcefLocal.toLocal\tpygeodesy.ecefLocals._EcefLocal-class.html#toLocal\npygeodesy.vector3dBase.Vector3dBase.__radd__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__radd__\npygeodesy.vector3dBase.Vector3dBase.length2\tpygeodesy.vector3dBase.Vector3dBase-class.html#length2\npygeodesy.cartesianBase.CartesianBase.to2ll\tpygeodesy.cartesianBase.CartesianBase-class.html#to2ll\npygeodesy.vector3dBase.Vector3dBase.isconjugateTo\tpygeodesy.vector3dBase.Vector3dBase-class.html#isconjugateTo\npygeodesy.vector3dBase.Vector3dBase.__ipow__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__ipow__\npygeodesy.vector3dBase.Vector3dBase.__div__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__div__\npygeodesy.vector3dBase.Vector3dBase.__ceil__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__ceil__\npygeodesy.vector3dBase.Vector3dBase.__neg__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__neg__\npygeodesy.vector3dBase.Vector3dBase.y\tpygeodesy.vector3dBase.Vector3dBase-class.html#y\npygeodesy.vector3dBase.Vector3dBase.dot\tpygeodesy.vector3dBase.Vector3dBase-class.html#dot\npygeodesy.ellipsoidalGeodSolve.LatLon\tpygeodesy.ellipsoidalGeodSolve.LatLon-class.html\npygeodesy.ellipsoidalGeodSolve.LatLon.toCartesian\tpygeodesy.ellipsoidalGeodSolve.LatLon-class.html#toCartesian\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.toCss\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toCss\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.isenclosedBy\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#isenclosedBy\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.toEtm\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toEtm\npygeodesy.latlonBase.LatLonBase.__str__\tpygeodesy.latlonBase.LatLonBase-class.html#__str__\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.datum\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#datum\npygeodesy.latlonBase.LatLonBase.philam2\tpygeodesy.latlonBase.LatLonBase-class.html#philam2\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.elevation2\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#elevation2\npygeodesy.latlonBase.LatLonBase.to3llh\tpygeodesy.latlonBase.LatLonBase-class.html#to3llh\npygeodesy.latlonBase.LatLonBase.isnormal\tpygeodesy.latlonBase.LatLonBase-class.html#isnormal\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.ellipsoid\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#ellipsoid\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase._upsOK\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#_upsOK\npygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI.distanceTo\tpygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#distanceTo\npygeodesy.latlonBase.LatLonBase.circum3\tpygeodesy.latlonBase.LatLonBase-class.html#circum3\npygeodesy.latlonBase.LatLonBase.flatLocalTo\tpygeodesy.latlonBase.LatLonBase-class.html#flatLocalTo\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.geoidHeight2\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#geoidHeight2\npygeodesy.latlonBase.LatLonBase._distanceTo\tpygeodesy.latlonBase.LatLonBase-class.html#_distanceTo\npygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI.finalBearingOn\tpygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#finalBearingOn\npygeodesy.latlonBase.LatLonBase.isequalTo3\tpygeodesy.latlonBase.LatLonBase-class.html#isequalTo3\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.ellipsoids\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#ellipsoids\npygeodesy.latlonBase.LatLonBase._lon\tpygeodesy.latlonBase.LatLonBase-class.html#_lon\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.latlonBase.LatLonBase.isantipode\tpygeodesy.latlonBase.LatLonBase-class.html#isantipode\npygeodesy.ellipsoidalGeodSolve.LatLon.geodesicx\tpygeodesy.ellipsoidalGeodSolve.LatLon-class.html#geodesicx\npygeodesy.latlonBase.LatLonBase._ecef9\tpygeodesy.latlonBase.LatLonBase-class.html#_ecef9\npygeodesy.latlonBase.LatLonBase._rhumb3dict\tpygeodesy.latlonBase.LatLonBase-class.html#_rhumb3dict\npygeodesy.latlonBase.LatLonBase.to2ab\tpygeodesy.latlonBase.LatLonBase-class.html#to2ab\npygeodesy.latlonBase.LatLonBase.toStr\tpygeodesy.latlonBase.LatLonBase-class.html#toStr\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase._datum\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#_datum\npygeodesy.latlonBase.LatLonBase.PointsIter\tpygeodesy.latlonBase.LatLonBase-class.html#PointsIter\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.toTransform\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toTransform\npygeodesy.latlonBase.LatLonBase.isEllipsoidal\tpygeodesy.latlonBase.LatLonBase-class.html#isEllipsoidal\npygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI._Direct2Tuple\tpygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#_Direct2Tuple\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.antipode\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#antipode\npygeodesy.latlonBase.LatLonBase._n_xyz3\tpygeodesy.latlonBase.LatLonBase-class.html#_n_xyz3\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.toUtmUps\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toUtmUps\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase._geoidHeight2to\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#_geoidHeight2to\npygeodesy.latlonBase.LatLonBase.toEcef\tpygeodesy.latlonBase.LatLonBase-class.html#toEcef\npygeodesy.latlonBase.LatLonBase.cosineLawTo\tpygeodesy.latlonBase.LatLonBase-class.html#cosineLawTo\npygeodesy.latlonBase.LatLonBase.lam\tpygeodesy.latlonBase.LatLonBase-class.html#lam\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.triangulate\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#triangulate\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase._ups\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#_ups\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.latlonBase.LatLonBase._Ecef_forward\tpygeodesy.latlonBase.LatLonBase-class.html#_Ecef_forward\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.reframe\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#reframe\npygeodesy.named._NamedBase.toRepr\tpygeodesy.named._NamedBase-class.html#toRepr\npygeodesy.latlonBase.LatLonBase.isantipodeTo\tpygeodesy.latlonBase.LatLonBase-class.html#isantipodeTo\npygeodesy.latlonBase.LatLonBase.compassAngle\tpygeodesy.latlonBase.LatLonBase-class.html#compassAngle\npygeodesy.latlonBase.LatLonBase.__ne__\tpygeodesy.latlonBase.LatLonBase-class.html#__ne__\npygeodesy.latlonBase.LatLonBase.xyz3\tpygeodesy.latlonBase.LatLonBase-class.html#xyz3\npygeodesy.latlonBase.LatLonBase.points2\tpygeodesy.latlonBase.LatLonBase-class.html#points2\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.toDatum\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toDatum\npygeodesy.ecefLocals._EcefLocal.toLtp\tpygeodesy.ecefLocals._EcefLocal-class.html#toLtp\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.toUtm\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toUtm\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.latlonBase.LatLonBase.clipid\tpygeodesy.latlonBase.LatLonBase-class.html#clipid\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.ellipsoidalLatLon\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#ellipsoidalLatLon\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase._gamma\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#_gamma\npygeodesy.latlonBase.LatLonBase.hartzell\tpygeodesy.latlonBase.LatLonBase-class.html#hartzell\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.scale\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#scale\npygeodesy.latlonBase.LatLonBase.normal\tpygeodesy.latlonBase.LatLonBase-class.html#normal\npygeodesy.latlonBase.LatLonBase.philam\tpygeodesy.latlonBase.LatLonBase-class.html#philam\npygeodesy.ecefLocals._EcefLocal.toAer\tpygeodesy.ecefLocals._EcefLocal-class.html#toAer\npygeodesy.latlonBase.LatLonBase.chordTo\tpygeodesy.latlonBase.LatLonBase-class.html#chordTo\npygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI.finalBearingTo\tpygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#finalBearingTo\npygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI._Inverse\tpygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#_Inverse\npygeodesy.latlonBase.LatLonBase.toWm\tpygeodesy.latlonBase.LatLonBase-class.html#toWm\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.latlonBase.LatLonBase.sphericalLatLon\tpygeodesy.latlonBase.LatLonBase-class.html#sphericalLatLon\npygeodesy.latlonBase.LatLonBase.equals\tpygeodesy.latlonBase.LatLonBase-class.html#equals\npygeodesy.latlonBase.LatLonBase.circin6\tpygeodesy.latlonBase.LatLonBase-class.html#circin6\npygeodesy.latlonBase.LatLonBase.nearestOn6\tpygeodesy.latlonBase.LatLonBase-class.html#nearestOn6\npygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI.nearestOn8\tpygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#nearestOn8\npygeodesy.ecefLocals._EcefLocal._ecef9datum\tpygeodesy.ecefLocals._EcefLocal-class.html#_ecef9datum\npygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI.distanceTo3\tpygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#distanceTo3\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.distanceTo2\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#distanceTo2\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.latlonBase.LatLonBase.toVector3d\tpygeodesy.latlonBase.LatLonBase-class.html#toVector3d\npygeodesy.ecefLocals._EcefLocal.toEnu\tpygeodesy.ecefLocals._EcefLocal-class.html#toEnu\npygeodesy.latlonBase.LatLonBase._lat\tpygeodesy.latlonBase.LatLonBase-class.html#_lat\npygeodesy.latlonBase.LatLonBase.cosineForsytheAndoyerLambertTo\tpygeodesy.latlonBase.LatLonBase-class.html#cosineForsytheAndoyerLambertTo\npygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI._g_gl_p3\tpygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#_g_gl_p3\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.latlonBase.LatLonBase.compassAngleTo\tpygeodesy.latlonBase.LatLonBase-class.html#compassAngleTo\npygeodesy.named._NamedBase.__repr__\tpygeodesy.named._NamedBase-class.html#__repr__\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase._elevation2to\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#_elevation2to\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.convertDatum\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#convertDatum\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.intersection3\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#intersection3\npygeodesy.latlonBase.LatLonBase.latlon_\tpygeodesy.latlonBase.LatLonBase-class.html#latlon_\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.gamma\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#gamma\npygeodesy.latlonBase.LatLonBase.flatPolarTo\tpygeodesy.latlonBase.LatLonBase-class.html#flatPolarTo\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.latlonBase.LatLonBase.boundsOf\tpygeodesy.latlonBase.LatLonBase-class.html#boundsOf\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase._scale\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#_scale\npygeodesy.latlonBase.LatLonBase._havg\tpygeodesy.latlonBase.LatLonBase-class.html#_havg\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase._geoidHeight2\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#_geoidHeight2\npygeodesy.latlonBase.LatLonBase.xyz\tpygeodesy.latlonBase.LatLonBase-class.html#xyz\npygeodesy.named._NamedBase.others\tpygeodesy.named._NamedBase-class.html#others\npygeodesy.ellipsoidalGeodSolve.LatLon.geodesic\tpygeodesy.ellipsoidalGeodSolve.LatLon-class.html#geodesic\npygeodesy.latlonBase.LatLonBase.height\tpygeodesy.latlonBase.LatLonBase-class.html#height\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.latlonBase.LatLonBase.equals3\tpygeodesy.latlonBase.LatLonBase-class.html#equals3\npygeodesy.latlonBase.LatLonBase.rhumbIntersecant2\tpygeodesy.latlonBase.LatLonBase-class.html#rhumbIntersecant2\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.latlonBase.LatLonBase.toVector\tpygeodesy.latlonBase.LatLonBase-class.html#toVector\npygeodesy.latlonBase.LatLonBase.rhumbDestination\tpygeodesy.latlonBase.LatLonBase-class.html#rhumbDestination\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.convertRefFrame\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#convertRefFrame\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.trilaterate5\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#trilaterate5\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.nearestOn\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#nearestOn\npygeodesy.latlonBase.LatLonBase._heigHt\tpygeodesy.latlonBase.LatLonBase-class.html#_heigHt\npygeodesy.latlonBase.LatLonBase._N_vector\tpygeodesy.latlonBase.LatLonBase-class.html#_N_vector\npygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI.destination\tpygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#destination\npygeodesy.latlonBase.LatLonBase.lon\tpygeodesy.latlonBase.LatLonBase-class.html#lon\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.midpointTo\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#midpointTo\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.toLcc\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toLcc\npygeodesy.ellipsoidalGeodSolve.LatLon.Equidistant\tpygeodesy.ellipsoidalGeodSolve.LatLon-class.html#Equidistant\npygeodesy.latlonBase.LatLonBase.xyzh\tpygeodesy.latlonBase.LatLonBase-class.html#xyzh\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.latlonBase.LatLonBase.nearestTo\tpygeodesy.latlonBase.LatLonBase-class.html#nearestTo\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase._reframe\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#_reframe\npygeodesy.latlonBase.LatLonBase.hubenyTo\tpygeodesy.latlonBase.LatLonBase-class.html#hubenyTo\npygeodesy.latlonBase.LatLonBase.heightStr\tpygeodesy.latlonBase.LatLonBase-class.html#heightStr\npygeodesy.ecefLocals._EcefLocal.Ecef\tpygeodesy.ecefLocals._EcefLocal-class.html#Ecef\npygeodesy.latlonBase.LatLonBase.latlon2\tpygeodesy.latlonBase.LatLonBase-class.html#latlon2\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI._Direct\tpygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#_Direct\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase._utm\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#_utm\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase._toLLEB_args\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#_toLLEB_args\npygeodesy.ecefLocals._EcefLocal._ltp\tpygeodesy.ecefLocals._EcefLocal-class.html#_ltp\npygeodesy.latlonBase.LatLonBase._rhumb3\tpygeodesy.latlonBase.LatLonBase-class.html#_rhumb3\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.convergence\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#convergence\npygeodesy.latlonBase.LatLonBase.toNvector\tpygeodesy.latlonBase.LatLonBase-class.html#toNvector\npygeodesy.latlonBase.LatLonBase.__eq__\tpygeodesy.latlonBase.LatLonBase-class.html#__eq__\npygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI.destination2\tpygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#destination2\npygeodesy.latlonBase.LatLonBase.toNormal\tpygeodesy.latlonBase.LatLonBase-class.html#toNormal\npygeodesy.latlonBase.LatLonBase.latlonheight\tpygeodesy.latlonBase.LatLonBase-class.html#latlonheight\npygeodesy.latlonBase.LatLonBase.height4\tpygeodesy.latlonBase.LatLonBase-class.html#height4\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.iteration\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#iteration\npygeodesy.latlonBase.LatLonBase.bounds\tpygeodesy.latlonBase.LatLonBase-class.html#bounds\npygeodesy.latlonBase.LatLonBase.circum4_\tpygeodesy.latlonBase.LatLonBase-class.html#circum4_\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.latlonBase.LatLonBase.rhumbAzimuthTo\tpygeodesy.latlonBase.LatLonBase-class.html#rhumbAzimuthTo\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase._elevation2\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#_elevation2\npygeodesy.ecefLocals._EcefLocal.toNed\tpygeodesy.ecefLocals._EcefLocal-class.html#toNed\npygeodesy.latlonBase.LatLonBase.cosineAndoyerLambertTo\tpygeodesy.latlonBase.LatLonBase-class.html#cosineAndoyerLambertTo\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.toUps\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toUps\npygeodesy.latlonBase.LatLonBase._clipid\tpygeodesy.latlonBase.LatLonBase-class.html#_clipid\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.toRefFrame\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toRefFrame\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.parse\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#parse\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.latlonBase.LatLonBase.isSpherical\tpygeodesy.latlonBase.LatLonBase-class.html#isSpherical\npygeodesy.latlonBase.LatLonBase._wrap_name2\tpygeodesy.latlonBase.LatLonBase-class.html#_wrap_name2\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.__init__\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#__init__\npygeodesy.ecefLocals._EcefLocal.toXyz\tpygeodesy.ecefLocals._EcefLocal-class.html#toXyz\npygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI.initialBearingTo\tpygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#initialBearingTo\npygeodesy.latlonBase.LatLonBase.radii11\tpygeodesy.latlonBase.LatLonBase-class.html#radii11\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase._epoch\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#_epoch\npygeodesy.latlonBase.LatLonBase.philamheight\tpygeodesy.latlonBase.LatLonBase-class.html#philamheight\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase._utmOK\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#_utmOK\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.epoch\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#epoch\npygeodesy.latlonBase.LatLonBase.latlon2round\tpygeodesy.latlonBase.LatLonBase-class.html#latlon2round\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.intersections2\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#intersections2\npygeodesy.ecefLocals._EcefLocal._ltp_ecef2local\tpygeodesy.ecefLocals._EcefLocal-class.html#_ltp_ecef2local\npygeodesy.latlonBase.LatLonBase.vincentysTo\tpygeodesy.latlonBase.LatLonBase-class.html#vincentysTo\npygeodesy.latlonBase.LatLonBase.thomasTo\tpygeodesy.latlonBase.LatLonBase-class.html#thomasTo\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.to3xyz\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#to3xyz\npygeodesy.latlonBase.LatLonBase.rhumbMidpointTo\tpygeodesy.latlonBase.LatLonBase-class.html#rhumbMidpointTo\npygeodesy.latlonBase.LatLonBase.latlon\tpygeodesy.latlonBase.LatLonBase-class.html#latlon\npygeodesy.latlonBase.LatLonBase.phi\tpygeodesy.latlonBase.LatLonBase-class.html#phi\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.latlonBase.LatLonBase.destinationXyz\tpygeodesy.latlonBase.LatLonBase-class.html#destinationXyz\npygeodesy.latlonBase.LatLonBase._height\tpygeodesy.latlonBase.LatLonBase-class.html#_height\npygeodesy.latlonBase.LatLonBase.isequalTo\tpygeodesy.latlonBase.LatLonBase-class.html#isequalTo\npygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI.bearingTo2\tpygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#bearingTo2\npygeodesy.latlonBase.LatLonBase.euclideanTo\tpygeodesy.latlonBase.LatLonBase-class.html#euclideanTo\npygeodesy.latlonBase.LatLonBase.haversineTo\tpygeodesy.latlonBase.LatLonBase-class.html#haversineTo\npygeodesy.latlonBase.LatLonBase._intersecend2\tpygeodesy.latlonBase.LatLonBase-class.html#_intersecend2\npygeodesy.latlonBase.LatLonBase.lat\tpygeodesy.latlonBase.LatLonBase-class.html#lat\npygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI.intermediateTo\tpygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#intermediateTo\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.toMgrs\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toMgrs\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.latlonBase.LatLonBase.equirectangularTo\tpygeodesy.latlonBase.LatLonBase-class.html#equirectangularTo\npygeodesy.ecefLocals._EcefLocal.toLocal\tpygeodesy.ecefLocals._EcefLocal-class.html#toLocal\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase._toX8\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#_toX8\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.toOsgr\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toOsgr\npygeodesy.latlonBase.LatLonBase.rhumbDistanceTo\tpygeodesy.latlonBase.LatLonBase-class.html#rhumbDistanceTo\npygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI.plumbTo\tpygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#plumbTo\npygeodesy.latlonBase.LatLonBase.rhumbLine\tpygeodesy.latlonBase.LatLonBase-class.html#rhumbLine\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase._etm\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#_etm\npygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI.intersecant2\tpygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#intersecant2\npygeodesy.latlonBase.LatLonBase.points\tpygeodesy.latlonBase.LatLonBase-class.html#points\npygeodesy.latlonBase.LatLonBase._toCartesianEcef\tpygeodesy.latlonBase.LatLonBase-class.html#_toCartesianEcef\npygeodesy.latlonBase.LatLonBase._distanceTo_\tpygeodesy.latlonBase.LatLonBase-class.html#_distanceTo_\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase._Radjust2\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#_Radjust2\npygeodesy.ellipsoidalKarney.Cartesian\tpygeodesy.ellipsoidalKarney.Cartesian-class.html\npygeodesy.vector3d.Vector3d.toCartesian\tpygeodesy.vector3d.Vector3d-class.html#toCartesian\npygeodesy.vector3dBase.Vector3dBase.__int__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__int__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.cartesianBase.CartesianBase.tienstra7\tpygeodesy.cartesianBase.CartesianBase-class.html#tienstra7\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedBase.__str__\tpygeodesy.named._NamedBase-class.html#__str__\npygeodesy.cartesianBase.CartesianBase.datum\tpygeodesy.cartesianBase.CartesianBase-class.html#datum\npygeodesy.vector3dBase.Vector3dBase.__imatmul__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__imatmul__\npygeodesy.ellipsoidalKarney.Cartesian.toLatLon\tpygeodesy.ellipsoidalKarney.Cartesian-class.html#toLatLon\npygeodesy.vector3dBase.Vector3dBase.times_\tpygeodesy.vector3dBase.Vector3dBase-class.html#times_\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.vector3dBase.Vector3dBase.__rdiv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rdiv__\npygeodesy.vector3dBase.Vector3dBase.__rmul__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rmul__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.vector3dBase.Vector3dBase.__lt__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__lt__\npygeodesy.cartesianBase.CartesianBase.philamheightdatum\tpygeodesy.cartesianBase.CartesianBase-class.html#philamheightdatum\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.cartesianBase.CartesianBase.to3llh\tpygeodesy.cartesianBase.CartesianBase-class.html#to3llh\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.ellipsoidalBase.CartesianEllipsoidalBase.toTransforms_\tpygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#toTransforms_\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.vector3dBase.Vector3dBase.__cmp__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__cmp__\npygeodesy.vector3d.Vector3d.nearestOn\tpygeodesy.vector3d.Vector3d-class.html#nearestOn\npygeodesy.vector3dBase.Vector3dBase.minus_\tpygeodesy.vector3dBase.Vector3dBase-class.html#minus_\npygeodesy.vector3dBase.Vector3dBase.__rfloordiv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rfloordiv__\npygeodesy.cartesianBase.CartesianBase.tienstra\tpygeodesy.cartesianBase.CartesianBase-class.html#tienstra\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.cartesianBase.CartesianBase._ecef9\tpygeodesy.cartesianBase.CartesianBase-class.html#_ecef9\npygeodesy.vector3dBase.Vector3dBase.rotateAround\tpygeodesy.vector3dBase.Vector3dBase-class.html#rotateAround\npygeodesy.cartesianBase.CartesianBase.to2ab\tpygeodesy.cartesianBase.CartesianBase-class.html#to2ab\npygeodesy.cartesianBase.CartesianBase.toStr\tpygeodesy.cartesianBase.CartesianBase-class.html#toStr\npygeodesy.vector3dBase.Vector3dBase._roty\tpygeodesy.vector3dBase.Vector3dBase-class.html#_roty\npygeodesy.vector3dBase.Vector3dBase.angleTo\tpygeodesy.vector3dBase.Vector3dBase-class.html#angleTo\npygeodesy.cartesianBase.CartesianBase.toTransform\tpygeodesy.cartesianBase.CartesianBase-class.html#toTransform\npygeodesy.ecefLocals._EcefLocal.toXyz\tpygeodesy.ecefLocals._EcefLocal-class.html#toXyz\npygeodesy.vector3dBase.Vector3dBase.__pow__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__pow__\npygeodesy.vector3dBase.Vector3dBase.__gt__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__gt__\npygeodesy.vector3dBase.Vector3dBase.__bool__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__bool__\npygeodesy.vector3dBase.Vector3dBase.x2y2z23\tpygeodesy.vector3dBase.Vector3dBase-class.html#x2y2z23\npygeodesy.cartesianBase.CartesianBase.toEcef\tpygeodesy.cartesianBase.CartesianBase-class.html#toEcef\npygeodesy.vector3dBase.Vector3dBase.rotate\tpygeodesy.vector3dBase.Vector3dBase-class.html#rotate\npygeodesy.vector3dBase.Vector3dBase.__nonzero__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__nonzero__\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.vector3dBase.Vector3dBase._ll\tpygeodesy.vector3dBase.Vector3dBase-class.html#_ll\npygeodesy.vector3dBase.Vector3dBase._plus\tpygeodesy.vector3dBase.Vector3dBase-class.html#_plus\npygeodesy.vector3dBase.Vector3dBase.__mod__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__mod__\npygeodesy.vector3dBase.Vector3dBase.to3xyz\tpygeodesy.vector3dBase.Vector3dBase-class.html#to3xyz\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.ellipsoidalBase.CartesianEllipsoidalBase.reframe\tpygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#reframe\npygeodesy.vector3dBase.Vector3dBase.__long__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__long__\npygeodesy.vector3dBase.Vector3dBase.cmp\tpygeodesy.vector3dBase.Vector3dBase-class.html#cmp\npygeodesy.vector3dBase.Vector3dBase.homogeneous\tpygeodesy.vector3dBase.Vector3dBase-class.html#homogeneous\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.vector3dBase.Vector3dBase.plus_\tpygeodesy.vector3dBase.Vector3dBase-class.html#plus_\npygeodesy.cartesianBase.CartesianBase.sphericalCartesian\tpygeodesy.cartesianBase.CartesianBase-class.html#sphericalCartesian\npygeodesy.cartesianBase.CartesianBase.Roc2\tpygeodesy.cartesianBase.CartesianBase-class.html#Roc2\npygeodesy.cartesianBase.CartesianBase.toDatum\tpygeodesy.cartesianBase.CartesianBase-class.html#toDatum\npygeodesy.vector3dBase.Vector3dBase.__truediv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__truediv__\npygeodesy.ecefLocals._EcefLocal.toLtp\tpygeodesy.ecefLocals._EcefLocal-class.html#toLtp\npygeodesy.vector3d.Vector3d.trilaterate2d2\tpygeodesy.vector3d.Vector3d-class.html#trilaterate2d2\npygeodesy.vector3dBase.Vector3dBase.__matmul__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__matmul__\npygeodesy.vector3dBase.Vector3dBase.euclid\tpygeodesy.vector3dBase.Vector3dBase-class.html#euclid\npygeodesy.vector3dBase.Vector3dBase._minus\tpygeodesy.vector3dBase.Vector3dBase-class.html#_minus\npygeodesy.vector3d.Vector3d.trilaterate3d2\tpygeodesy.vector3d.Vector3d-class.html#trilaterate3d2\npygeodesy.vector3dBase.Vector3dBase.__rmod__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rmod__\npygeodesy.ecefLocals._EcefLocal._ecef9datum\tpygeodesy.ecefLocals._EcefLocal-class.html#_ecef9datum\npygeodesy.cartesianBase.CartesianBase.latlon\tpygeodesy.cartesianBase.CartesianBase-class.html#latlon\npygeodesy.cartesianBase.CartesianBase.hartzell\tpygeodesy.cartesianBase.CartesianBase-class.html#hartzell\npygeodesy.vector3dBase.Vector3dBase._crosserrors\tpygeodesy.vector3dBase.Vector3dBase-class.html#_crosserrors\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.vector3dBase.Vector3dBase._mapped\tpygeodesy.vector3dBase.Vector3dBase-class.html#_mapped\npygeodesy.vector3dBase.Vector3dBase.sum\tpygeodesy.vector3dBase.Vector3dBase-class.html#sum\npygeodesy.cartesianBase.CartesianBase.philam\tpygeodesy.cartesianBase.CartesianBase-class.html#philam\npygeodesy.ecefLocals._EcefLocal.toAer\tpygeodesy.ecefLocals._EcefLocal-class.html#toAer\npygeodesy.cartesianBase.CartesianBase.collins\tpygeodesy.cartesianBase.CartesianBase-class.html#collins\npygeodesy.vector3dBase.Vector3dBase._other_cmp\tpygeodesy.vector3dBase.Vector3dBase-class.html#_other_cmp\npygeodesy.vector3dBase.Vector3dBase.isequalTo\tpygeodesy.vector3dBase.Vector3dBase-class.html#isequalTo\npygeodesy.vector3dBase.Vector3dBase.__ne__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__ne__\npygeodesy.cartesianBase.CartesianBase._height2C\tpygeodesy.cartesianBase.CartesianBase-class.html#_height2C\npygeodesy.vector3dBase.Vector3dBase.__ifloordiv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__ifloordiv__\npygeodesy.vector3dBase.Vector3dBase.dividedBy_\tpygeodesy.vector3dBase.Vector3dBase-class.html#dividedBy_\npygeodesy.vector3dBase.Vector3dBase.equals\tpygeodesy.vector3dBase.Vector3dBase-class.html#equals\npygeodesy.cartesianBase.CartesianBase._n_xyzh4\tpygeodesy.cartesianBase.CartesianBase-class.html#_n_xyzh4\npygeodesy.vector3d.Vector3d.circin6\tpygeodesy.vector3d.Vector3d-class.html#circin6\npygeodesy.cartesianBase.CartesianBase._height4\tpygeodesy.cartesianBase.CartesianBase-class.html#_height4\npygeodesy.vector3d.Vector3d.nearestOn6\tpygeodesy.vector3d.Vector3d-class.html#nearestOn6\npygeodesy.vector3dBase.Vector3dBase.__rmatmul__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rmatmul__\npygeodesy.ellipsoidalBase.CartesianEllipsoidalBase._reframe\tpygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#_reframe\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.vector3d.Vector3d.meeus2\tpygeodesy.vector3d.Vector3d-class.html#meeus2\npygeodesy.vector3dBase.Vector3dBase.__imul__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__imul__\npygeodesy.vector3dBase.Vector3dBase.__trunc__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__trunc__\npygeodesy.vector3dBase.Vector3dBase.times\tpygeodesy.vector3dBase.Vector3dBase-class.html#times\npygeodesy.vector3dBase.Vector3dBase.length\tpygeodesy.vector3dBase.Vector3dBase-class.html#length\npygeodesy.vector3dBase.Vector3dBase.plus\tpygeodesy.vector3dBase.Vector3dBase-class.html#plus\npygeodesy.vector3dBase.Vector3dBase.__mul__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__mul__\npygeodesy.cartesianBase.CartesianBase.convertDatum\tpygeodesy.cartesianBase.CartesianBase-class.html#convertDatum\npygeodesy.vector3dBase.Vector3dBase.__divmod__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__divmod__\npygeodesy.named._NamedBase.toRepr\tpygeodesy.named._NamedBase-class.html#toRepr\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.ellipsoidalBase.CartesianEllipsoidalBase.ellipsoidalCartesian\tpygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#ellipsoidalCartesian\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.vector3dBase.Vector3dBase.pow\tpygeodesy.vector3dBase.Vector3dBase-class.html#pow\npygeodesy.vector3dBase.Vector3dBase.xyz\tpygeodesy.vector3dBase.Vector3dBase-class.html#xyz\npygeodesy.vector3dBase.Vector3dBase.others\tpygeodesy.vector3dBase.Vector3dBase-class.html#others\npygeodesy.cartesianBase.CartesianBase.isEllipsoidal\tpygeodesy.cartesianBase.CartesianBase-class.html#isEllipsoidal\npygeodesy.cartesianBase.CartesianBase.height\tpygeodesy.cartesianBase.CartesianBase-class.html#height\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.vector3dBase.Vector3dBase.__rsub__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rsub__\npygeodesy.vector3dBase.Vector3dBase.ints\tpygeodesy.vector3dBase.Vector3dBase-class.html#ints\npygeodesy.cartesianBase.CartesianBase.cassini\tpygeodesy.cartesianBase.CartesianBase-class.html#cassini\npygeodesy.vector3dBase.Vector3dBase.negate\tpygeodesy.vector3dBase.Vector3dBase-class.html#negate\npygeodesy.vector3dBase.Vector3dBase.apply\tpygeodesy.vector3dBase.Vector3dBase-class.html#apply\npygeodesy.vector3dBase.Vector3dBase.equirectangular\tpygeodesy.vector3dBase.Vector3dBase-class.html#equirectangular\npygeodesy.vector3dBase.Vector3dBase.intermediateTo\tpygeodesy.vector3dBase.Vector3dBase-class.html#intermediateTo\npygeodesy.vector3dBase.Vector3dBase.unit\tpygeodesy.vector3dBase.Vector3dBase-class.html#unit\npygeodesy.vector3dBase.Vector3dBase.__float__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__float__\npygeodesy.vector3dBase.Vector3dBase.__rpow__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rpow__\npygeodesy.ellipsoidalBase.CartesianEllipsoidalBase.convertRefFrame\tpygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#convertRefFrame\npygeodesy.vector3d.Vector3d.soddy4\tpygeodesy.vector3d.Vector3d-class.html#soddy4\npygeodesy.ecefLocals._EcefLocal.toNed\tpygeodesy.ecefLocals._EcefLocal-class.html#toNed\npygeodesy.cartesianBase.CartesianBase._N_vector\tpygeodesy.cartesianBase.CartesianBase-class.html#_N_vector\npygeodesy.vector3d.Vector3d.iscolinearWith\tpygeodesy.vector3d.Vector3d-class.html#iscolinearWith\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.vector3dBase.Vector3dBase.floats\tpygeodesy.vector3dBase.Vector3dBase-class.html#floats\npygeodesy.vector3dBase.Vector3dBase.__itruediv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__itruediv__\npygeodesy.vector3dBase.Vector3dBase.dividedBy\tpygeodesy.vector3dBase.Vector3dBase-class.html#dividedBy\npygeodesy.vector3dBase.Vector3dBase.__isub__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__isub__\npygeodesy.vector3dBase.Vector3dBase.__rdivmod__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rdivmod__\npygeodesy.vector3dBase.Vector3dBase.crosserrors\tpygeodesy.vector3dBase.Vector3dBase-class.html#crosserrors\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.vector3d.Vector3d.circum3\tpygeodesy.vector3d.Vector3d-class.html#circum3\npygeodesy.cartesianBase.CartesianBase.toNvector\tpygeodesy.cartesianBase.CartesianBase-class.html#toNvector\npygeodesy.vector3dBase.Vector3dBase.__eq__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__eq__\npygeodesy.ecefLocals._EcefLocal.toEnu\tpygeodesy.ecefLocals._EcefLocal-class.html#toEnu\npygeodesy.vector3dBase.Vector3dBase.__round__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__round__\npygeodesy.vector3dBase.Vector3dBase.bools\tpygeodesy.vector3dBase.Vector3dBase-class.html#bools\npygeodesy.cartesianBase.CartesianBase.latlonheight\tpygeodesy.cartesianBase.CartesianBase-class.html#latlonheight\npygeodesy.cartesianBase.CartesianBase.height4\tpygeodesy.cartesianBase.CartesianBase-class.html#height4\npygeodesy.ecefLocals._EcefLocal.Ecef\tpygeodesy.ecefLocals._EcefLocal-class.html#Ecef\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.vector3dBase.Vector3dBase.xyz3\tpygeodesy.vector3dBase.Vector3dBase-class.html#xyz3\npygeodesy.ecefLocals._EcefLocal._ltp_ecef2local\tpygeodesy.ecefLocals._EcefLocal-class.html#_ltp_ecef2local\npygeodesy.vector3dBase.Vector3dBase.__iadd__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__iadd__\npygeodesy.cartesianBase.CartesianBase.height3\tpygeodesy.cartesianBase.CartesianBase-class.html#height3\npygeodesy.vector3d.Vector3d.circum4_\tpygeodesy.vector3d.Vector3d-class.html#circum4_\npygeodesy.cartesianBase.CartesianBase.latlonheightdatum\tpygeodesy.cartesianBase.CartesianBase-class.html#latlonheightdatum\npygeodesy.vector3dBase.Vector3dBase.__le__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__le__\npygeodesy.vector3dBase.Vector3dBase.__floordiv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__floordiv__\npygeodesy.vector3dBase.Vector3dBase.__hash__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__hash__\npygeodesy.vector3dBase.Vector3dBase.__sub__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__sub__\npygeodesy.vector3dBase.Vector3dBase.z\tpygeodesy.vector3dBase.Vector3dBase-class.html#z\npygeodesy.vector3dBase.Vector3dBase._xyz\tpygeodesy.vector3dBase.Vector3dBase-class.html#_xyz\npygeodesy.vector3dBase.Vector3dBase.minus\tpygeodesy.vector3dBase.Vector3dBase-class.html#minus\npygeodesy.vector3dBase.Vector3dBase.__ge__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__ge__\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.vector3d.Vector3d.bearing\tpygeodesy.vector3d.Vector3d-class.html#bearing\npygeodesy.vector3dBase.Vector3dBase.__rtruediv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rtruediv__\npygeodesy.vector3dBase.Vector3dBase.floorDividedBy_\tpygeodesy.vector3dBase.Vector3dBase-class.html#floorDividedBy_\npygeodesy.cartesianBase.CartesianBase.collins5\tpygeodesy.cartesianBase.CartesianBase-class.html#collins5\npygeodesy.vector3dBase.Vector3dBase.x2y2z2\tpygeodesy.vector3dBase.Vector3dBase-class.html#x2y2z2\npygeodesy.cartesianBase.CartesianBase.toRtp\tpygeodesy.cartesianBase.CartesianBase-class.html#toRtp\npygeodesy.ellipsoidalBase.CartesianEllipsoidalBase.toRefFrame\tpygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#toRefFrame\npygeodesy.vector3d.Vector3d.parse\tpygeodesy.vector3d.Vector3d-class.html#parse\npygeodesy.vector3dBase.Vector3dBase.floorDividedBy\tpygeodesy.vector3dBase.Vector3dBase-class.html#floorDividedBy\npygeodesy.vector3dBase.Vector3dBase.__floor__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__floor__\npygeodesy.cartesianBase.CartesianBase.isSpherical\tpygeodesy.cartesianBase.CartesianBase-class.html#isSpherical\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.ellipsoidalBase.CartesianEllipsoidalBase.__init__\tpygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#__init__\npygeodesy.vector3dBase.Vector3dBase.__imod__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__imod__\npygeodesy.vector3dBase.Vector3dBase.fabs\tpygeodesy.vector3dBase.Vector3dBase-class.html#fabs\npygeodesy.vector3dBase.Vector3dBase._times\tpygeodesy.vector3dBase.Vector3dBase-class.html#_times\npygeodesy.vector3d.Vector3d.radii11\tpygeodesy.vector3d.Vector3d-class.html#radii11\npygeodesy.cartesianBase.CartesianBase.pierlotx\tpygeodesy.cartesianBase.CartesianBase-class.html#pierlotx\npygeodesy.ellipsoidalBase.CartesianEllipsoidalBase._epoch\tpygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#_epoch\npygeodesy.vector3dBase.Vector3dBase.cross\tpygeodesy.vector3dBase.Vector3dBase-class.html#cross\npygeodesy.cartesianBase.CartesianBase.philamheight\tpygeodesy.cartesianBase.CartesianBase-class.html#philamheight\npygeodesy.vector3dBase.Vector3dBase.__pos__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__pos__\npygeodesy.ellipsoidalBase.CartesianEllipsoidalBase.epoch\tpygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#epoch\npygeodesy.ellipsoidalBase.CartesianEllipsoidalBase.intersections2\tpygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#intersections2\npygeodesy.vector3dBase.Vector3dBase.__abs__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__abs__\npygeodesy.ellipsoidalBase.CartesianEllipsoidalBase._datum\tpygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#_datum\npygeodesy.named._NamedBase.__repr__\tpygeodesy.named._NamedBase-class.html#__repr__\npygeodesy.ecefLocals._EcefLocal._ltp\tpygeodesy.ecefLocals._EcefLocal-class.html#_ltp\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.cartesianBase.CartesianBase.destinationXyz\tpygeodesy.cartesianBase.CartesianBase-class.html#destinationXyz\npygeodesy.cartesianBase.CartesianBase._height\tpygeodesy.cartesianBase.CartesianBase-class.html#_height\npygeodesy.vector3dBase.Vector3dBase.__idiv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__idiv__\npygeodesy.vector3dBase.Vector3dBase._united\tpygeodesy.vector3dBase.Vector3dBase-class.html#_united\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.vector3dBase.Vector3dBase._fromll\tpygeodesy.vector3dBase.Vector3dBase-class.html#_fromll\npygeodesy.vector3dBase.Vector3dBase.__add__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__add__\npygeodesy.vector3dBase.Vector3dBase.x\tpygeodesy.vector3dBase.Vector3dBase-class.html#x\npygeodesy.cartesianBase.CartesianBase.toVector\tpygeodesy.cartesianBase.CartesianBase-class.html#toVector\npygeodesy.cartesianBase.CartesianBase.pierlot\tpygeodesy.cartesianBase.CartesianBase-class.html#pierlot\npygeodesy.ecefLocals._EcefLocal.toLocal\tpygeodesy.ecefLocals._EcefLocal-class.html#toLocal\npygeodesy.vector3dBase.Vector3dBase.__radd__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__radd__\npygeodesy.vector3dBase.Vector3dBase.length2\tpygeodesy.vector3dBase.Vector3dBase-class.html#length2\npygeodesy.cartesianBase.CartesianBase.to2ll\tpygeodesy.cartesianBase.CartesianBase-class.html#to2ll\npygeodesy.vector3dBase.Vector3dBase.isconjugateTo\tpygeodesy.vector3dBase.Vector3dBase-class.html#isconjugateTo\npygeodesy.vector3dBase.Vector3dBase.__ipow__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__ipow__\npygeodesy.vector3dBase.Vector3dBase.__div__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__div__\npygeodesy.vector3dBase.Vector3dBase.__ceil__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__ceil__\npygeodesy.vector3dBase.Vector3dBase.__neg__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__neg__\npygeodesy.vector3dBase.Vector3dBase.y\tpygeodesy.vector3dBase.Vector3dBase-class.html#y\npygeodesy.vector3dBase.Vector3dBase.dot\tpygeodesy.vector3dBase.Vector3dBase-class.html#dot\npygeodesy.ellipsoidalKarney.LatLon\tpygeodesy.ellipsoidalKarney.LatLon-class.html\npygeodesy.ellipsoidalKarney.LatLon.toCartesian\tpygeodesy.ellipsoidalKarney.LatLon-class.html#toCartesian\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.toCss\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toCss\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.isenclosedBy\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#isenclosedBy\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.toEtm\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toEtm\npygeodesy.latlonBase.LatLonBase.__str__\tpygeodesy.latlonBase.LatLonBase-class.html#__str__\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.datum\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#datum\npygeodesy.latlonBase.LatLonBase.philam2\tpygeodesy.latlonBase.LatLonBase-class.html#philam2\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.elevation2\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#elevation2\npygeodesy.latlonBase.LatLonBase.to3llh\tpygeodesy.latlonBase.LatLonBase-class.html#to3llh\npygeodesy.latlonBase.LatLonBase.isnormal\tpygeodesy.latlonBase.LatLonBase-class.html#isnormal\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.ellipsoid\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#ellipsoid\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase._upsOK\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#_upsOK\npygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI.distanceTo\tpygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#distanceTo\npygeodesy.latlonBase.LatLonBase.circum3\tpygeodesy.latlonBase.LatLonBase-class.html#circum3\npygeodesy.latlonBase.LatLonBase.flatLocalTo\tpygeodesy.latlonBase.LatLonBase-class.html#flatLocalTo\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.geoidHeight2\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#geoidHeight2\npygeodesy.latlonBase.LatLonBase._distanceTo\tpygeodesy.latlonBase.LatLonBase-class.html#_distanceTo\npygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI.finalBearingOn\tpygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#finalBearingOn\npygeodesy.latlonBase.LatLonBase.isequalTo3\tpygeodesy.latlonBase.LatLonBase-class.html#isequalTo3\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.ellipsoids\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#ellipsoids\npygeodesy.latlonBase.LatLonBase._lon\tpygeodesy.latlonBase.LatLonBase-class.html#_lon\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.latlonBase.LatLonBase.isantipode\tpygeodesy.latlonBase.LatLonBase-class.html#isantipode\npygeodesy.latlonBase.LatLonBase._ecef9\tpygeodesy.latlonBase.LatLonBase-class.html#_ecef9\npygeodesy.latlonBase.LatLonBase._rhumb3dict\tpygeodesy.latlonBase.LatLonBase-class.html#_rhumb3dict\npygeodesy.latlonBase.LatLonBase.to2ab\tpygeodesy.latlonBase.LatLonBase-class.html#to2ab\npygeodesy.latlonBase.LatLonBase.toStr\tpygeodesy.latlonBase.LatLonBase-class.html#toStr\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase._datum\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#_datum\npygeodesy.latlonBase.LatLonBase.PointsIter\tpygeodesy.latlonBase.LatLonBase-class.html#PointsIter\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.toTransform\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toTransform\npygeodesy.latlonBase.LatLonBase.isEllipsoidal\tpygeodesy.latlonBase.LatLonBase-class.html#isEllipsoidal\npygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI._Direct2Tuple\tpygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#_Direct2Tuple\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.antipode\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#antipode\npygeodesy.latlonBase.LatLonBase._n_xyz3\tpygeodesy.latlonBase.LatLonBase-class.html#_n_xyz3\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.toUtmUps\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toUtmUps\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase._geoidHeight2to\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#_geoidHeight2to\npygeodesy.latlonBase.LatLonBase.toEcef\tpygeodesy.latlonBase.LatLonBase-class.html#toEcef\npygeodesy.latlonBase.LatLonBase.cosineLawTo\tpygeodesy.latlonBase.LatLonBase-class.html#cosineLawTo\npygeodesy.latlonBase.LatLonBase.lam\tpygeodesy.latlonBase.LatLonBase-class.html#lam\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.triangulate\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#triangulate\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase._ups\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#_ups\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.latlonBase.LatLonBase._Ecef_forward\tpygeodesy.latlonBase.LatLonBase-class.html#_Ecef_forward\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.reframe\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#reframe\npygeodesy.named._NamedBase.toRepr\tpygeodesy.named._NamedBase-class.html#toRepr\npygeodesy.latlonBase.LatLonBase.isantipodeTo\tpygeodesy.latlonBase.LatLonBase-class.html#isantipodeTo\npygeodesy.latlonBase.LatLonBase.compassAngle\tpygeodesy.latlonBase.LatLonBase-class.html#compassAngle\npygeodesy.latlonBase.LatLonBase.__ne__\tpygeodesy.latlonBase.LatLonBase-class.html#__ne__\npygeodesy.latlonBase.LatLonBase.xyz3\tpygeodesy.latlonBase.LatLonBase-class.html#xyz3\npygeodesy.latlonBase.LatLonBase.points2\tpygeodesy.latlonBase.LatLonBase-class.html#points2\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.toDatum\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toDatum\npygeodesy.ecefLocals._EcefLocal.toLtp\tpygeodesy.ecefLocals._EcefLocal-class.html#toLtp\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.toUtm\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toUtm\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.latlonBase.LatLonBase.clipid\tpygeodesy.latlonBase.LatLonBase-class.html#clipid\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.ellipsoidalLatLon\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#ellipsoidalLatLon\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase._gamma\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#_gamma\npygeodesy.latlonBase.LatLonBase.hartzell\tpygeodesy.latlonBase.LatLonBase-class.html#hartzell\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.scale\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#scale\npygeodesy.latlonBase.LatLonBase.normal\tpygeodesy.latlonBase.LatLonBase-class.html#normal\npygeodesy.latlonBase.LatLonBase.philam\tpygeodesy.latlonBase.LatLonBase-class.html#philam\npygeodesy.ecefLocals._EcefLocal.toAer\tpygeodesy.ecefLocals._EcefLocal-class.html#toAer\npygeodesy.latlonBase.LatLonBase.chordTo\tpygeodesy.latlonBase.LatLonBase-class.html#chordTo\npygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI.finalBearingTo\tpygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#finalBearingTo\npygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI._Inverse\tpygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#_Inverse\npygeodesy.latlonBase.LatLonBase.toWm\tpygeodesy.latlonBase.LatLonBase-class.html#toWm\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.latlonBase.LatLonBase.sphericalLatLon\tpygeodesy.latlonBase.LatLonBase-class.html#sphericalLatLon\npygeodesy.latlonBase.LatLonBase.equals\tpygeodesy.latlonBase.LatLonBase-class.html#equals\npygeodesy.latlonBase.LatLonBase.circin6\tpygeodesy.latlonBase.LatLonBase-class.html#circin6\npygeodesy.latlonBase.LatLonBase.nearestOn6\tpygeodesy.latlonBase.LatLonBase-class.html#nearestOn6\npygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI.nearestOn8\tpygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#nearestOn8\npygeodesy.ecefLocals._EcefLocal._ecef9datum\tpygeodesy.ecefLocals._EcefLocal-class.html#_ecef9datum\npygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI.distanceTo3\tpygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#distanceTo3\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.distanceTo2\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#distanceTo2\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.latlonBase.LatLonBase.toVector3d\tpygeodesy.latlonBase.LatLonBase-class.html#toVector3d\npygeodesy.ecefLocals._EcefLocal.toEnu\tpygeodesy.ecefLocals._EcefLocal-class.html#toEnu\npygeodesy.latlonBase.LatLonBase._lat\tpygeodesy.latlonBase.LatLonBase-class.html#_lat\npygeodesy.latlonBase.LatLonBase.cosineForsytheAndoyerLambertTo\tpygeodesy.latlonBase.LatLonBase-class.html#cosineForsytheAndoyerLambertTo\npygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI._g_gl_p3\tpygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#_g_gl_p3\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.latlonBase.LatLonBase.compassAngleTo\tpygeodesy.latlonBase.LatLonBase-class.html#compassAngleTo\npygeodesy.named._NamedBase.__repr__\tpygeodesy.named._NamedBase-class.html#__repr__\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase._elevation2to\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#_elevation2to\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.convertDatum\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#convertDatum\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.intersection3\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#intersection3\npygeodesy.latlonBase.LatLonBase.latlon_\tpygeodesy.latlonBase.LatLonBase-class.html#latlon_\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.gamma\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#gamma\npygeodesy.latlonBase.LatLonBase.flatPolarTo\tpygeodesy.latlonBase.LatLonBase-class.html#flatPolarTo\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.latlonBase.LatLonBase.boundsOf\tpygeodesy.latlonBase.LatLonBase-class.html#boundsOf\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase._scale\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#_scale\npygeodesy.latlonBase.LatLonBase._havg\tpygeodesy.latlonBase.LatLonBase-class.html#_havg\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase._geoidHeight2\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#_geoidHeight2\npygeodesy.latlonBase.LatLonBase.xyz\tpygeodesy.latlonBase.LatLonBase-class.html#xyz\npygeodesy.named._NamedBase.others\tpygeodesy.named._NamedBase-class.html#others\npygeodesy.ellipsoidalKarney.LatLon.geodesic\tpygeodesy.ellipsoidalKarney.LatLon-class.html#geodesic\npygeodesy.latlonBase.LatLonBase.height\tpygeodesy.latlonBase.LatLonBase-class.html#height\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.latlonBase.LatLonBase.equals3\tpygeodesy.latlonBase.LatLonBase-class.html#equals3\npygeodesy.latlonBase.LatLonBase.rhumbIntersecant2\tpygeodesy.latlonBase.LatLonBase-class.html#rhumbIntersecant2\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.latlonBase.LatLonBase.toVector\tpygeodesy.latlonBase.LatLonBase-class.html#toVector\npygeodesy.latlonBase.LatLonBase.rhumbDestination\tpygeodesy.latlonBase.LatLonBase-class.html#rhumbDestination\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.convertRefFrame\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#convertRefFrame\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.trilaterate5\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#trilaterate5\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.nearestOn\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#nearestOn\npygeodesy.latlonBase.LatLonBase._heigHt\tpygeodesy.latlonBase.LatLonBase-class.html#_heigHt\npygeodesy.latlonBase.LatLonBase._N_vector\tpygeodesy.latlonBase.LatLonBase-class.html#_N_vector\npygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI.destination\tpygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#destination\npygeodesy.latlonBase.LatLonBase.lon\tpygeodesy.latlonBase.LatLonBase-class.html#lon\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.midpointTo\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#midpointTo\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.toLcc\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toLcc\npygeodesy.ellipsoidalKarney.LatLon.Equidistant\tpygeodesy.ellipsoidalKarney.LatLon-class.html#Equidistant\npygeodesy.latlonBase.LatLonBase.xyzh\tpygeodesy.latlonBase.LatLonBase-class.html#xyzh\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.ellipsoidalKarney.LatLon.bearingTo\tpygeodesy.ellipsoidalKarney.LatLon-class.html#bearingTo\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase._reframe\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#_reframe\npygeodesy.latlonBase.LatLonBase.hubenyTo\tpygeodesy.latlonBase.LatLonBase-class.html#hubenyTo\npygeodesy.latlonBase.LatLonBase.heightStr\tpygeodesy.latlonBase.LatLonBase-class.html#heightStr\npygeodesy.ecefLocals._EcefLocal.Ecef\tpygeodesy.ecefLocals._EcefLocal-class.html#Ecef\npygeodesy.latlonBase.LatLonBase.latlon2\tpygeodesy.latlonBase.LatLonBase-class.html#latlon2\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI._Direct\tpygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#_Direct\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase._utm\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#_utm\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase._toLLEB_args\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#_toLLEB_args\npygeodesy.ecefLocals._EcefLocal._ltp\tpygeodesy.ecefLocals._EcefLocal-class.html#_ltp\npygeodesy.latlonBase.LatLonBase._rhumb3\tpygeodesy.latlonBase.LatLonBase-class.html#_rhumb3\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.convergence\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#convergence\npygeodesy.latlonBase.LatLonBase.toNvector\tpygeodesy.latlonBase.LatLonBase-class.html#toNvector\npygeodesy.latlonBase.LatLonBase.__eq__\tpygeodesy.latlonBase.LatLonBase-class.html#__eq__\npygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI.destination2\tpygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#destination2\npygeodesy.latlonBase.LatLonBase.toNormal\tpygeodesy.latlonBase.LatLonBase-class.html#toNormal\npygeodesy.latlonBase.LatLonBase.latlonheight\tpygeodesy.latlonBase.LatLonBase-class.html#latlonheight\npygeodesy.latlonBase.LatLonBase.height4\tpygeodesy.latlonBase.LatLonBase-class.html#height4\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.iteration\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#iteration\npygeodesy.latlonBase.LatLonBase.bounds\tpygeodesy.latlonBase.LatLonBase-class.html#bounds\npygeodesy.latlonBase.LatLonBase.circum4_\tpygeodesy.latlonBase.LatLonBase-class.html#circum4_\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.latlonBase.LatLonBase.rhumbAzimuthTo\tpygeodesy.latlonBase.LatLonBase-class.html#rhumbAzimuthTo\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase._elevation2\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#_elevation2\npygeodesy.ecefLocals._EcefLocal.toNed\tpygeodesy.ecefLocals._EcefLocal-class.html#toNed\npygeodesy.latlonBase.LatLonBase.cosineAndoyerLambertTo\tpygeodesy.latlonBase.LatLonBase-class.html#cosineAndoyerLambertTo\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.toUps\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toUps\npygeodesy.latlonBase.LatLonBase._clipid\tpygeodesy.latlonBase.LatLonBase-class.html#_clipid\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.toRefFrame\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toRefFrame\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.parse\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#parse\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.latlonBase.LatLonBase.isSpherical\tpygeodesy.latlonBase.LatLonBase-class.html#isSpherical\npygeodesy.latlonBase.LatLonBase._wrap_name2\tpygeodesy.latlonBase.LatLonBase-class.html#_wrap_name2\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.__init__\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#__init__\npygeodesy.ecefLocals._EcefLocal.toXyz\tpygeodesy.ecefLocals._EcefLocal-class.html#toXyz\npygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI.initialBearingTo\tpygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#initialBearingTo\npygeodesy.latlonBase.LatLonBase.radii11\tpygeodesy.latlonBase.LatLonBase-class.html#radii11\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase._epoch\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#_epoch\npygeodesy.latlonBase.LatLonBase.philamheight\tpygeodesy.latlonBase.LatLonBase-class.html#philamheight\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase._utmOK\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#_utmOK\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.epoch\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#epoch\npygeodesy.latlonBase.LatLonBase.latlon2round\tpygeodesy.latlonBase.LatLonBase-class.html#latlon2round\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.intersections2\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#intersections2\npygeodesy.ecefLocals._EcefLocal._ltp_ecef2local\tpygeodesy.ecefLocals._EcefLocal-class.html#_ltp_ecef2local\npygeodesy.latlonBase.LatLonBase.vincentysTo\tpygeodesy.latlonBase.LatLonBase-class.html#vincentysTo\npygeodesy.latlonBase.LatLonBase.thomasTo\tpygeodesy.latlonBase.LatLonBase-class.html#thomasTo\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.to3xyz\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#to3xyz\npygeodesy.latlonBase.LatLonBase.rhumbMidpointTo\tpygeodesy.latlonBase.LatLonBase-class.html#rhumbMidpointTo\npygeodesy.latlonBase.LatLonBase.latlon\tpygeodesy.latlonBase.LatLonBase-class.html#latlon\npygeodesy.latlonBase.LatLonBase.phi\tpygeodesy.latlonBase.LatLonBase-class.html#phi\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.latlonBase.LatLonBase.destinationXyz\tpygeodesy.latlonBase.LatLonBase-class.html#destinationXyz\npygeodesy.latlonBase.LatLonBase._height\tpygeodesy.latlonBase.LatLonBase-class.html#_height\npygeodesy.latlonBase.LatLonBase.isequalTo\tpygeodesy.latlonBase.LatLonBase-class.html#isequalTo\npygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI.bearingTo2\tpygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#bearingTo2\npygeodesy.latlonBase.LatLonBase.euclideanTo\tpygeodesy.latlonBase.LatLonBase-class.html#euclideanTo\npygeodesy.latlonBase.LatLonBase.haversineTo\tpygeodesy.latlonBase.LatLonBase-class.html#haversineTo\npygeodesy.latlonBase.LatLonBase._intersecend2\tpygeodesy.latlonBase.LatLonBase-class.html#_intersecend2\npygeodesy.latlonBase.LatLonBase.lat\tpygeodesy.latlonBase.LatLonBase-class.html#lat\npygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI.intermediateTo\tpygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#intermediateTo\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.toMgrs\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toMgrs\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.latlonBase.LatLonBase.equirectangularTo\tpygeodesy.latlonBase.LatLonBase-class.html#equirectangularTo\npygeodesy.ecefLocals._EcefLocal.toLocal\tpygeodesy.ecefLocals._EcefLocal-class.html#toLocal\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase._toX8\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#_toX8\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.toOsgr\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toOsgr\npygeodesy.latlonBase.LatLonBase.rhumbDistanceTo\tpygeodesy.latlonBase.LatLonBase-class.html#rhumbDistanceTo\npygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI.plumbTo\tpygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#plumbTo\npygeodesy.latlonBase.LatLonBase.rhumbLine\tpygeodesy.latlonBase.LatLonBase-class.html#rhumbLine\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase._etm\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#_etm\npygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI.intersecant2\tpygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#intersecant2\npygeodesy.latlonBase.LatLonBase.points\tpygeodesy.latlonBase.LatLonBase-class.html#points\npygeodesy.latlonBase.LatLonBase._toCartesianEcef\tpygeodesy.latlonBase.LatLonBase-class.html#_toCartesianEcef\npygeodesy.latlonBase.LatLonBase._distanceTo_\tpygeodesy.latlonBase.LatLonBase-class.html#_distanceTo_\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase._Radjust2\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#_Radjust2\npygeodesy.latlonBase.LatLonBase.nearestTo\tpygeodesy.latlonBase.LatLonBase-class.html#nearestTo\npygeodesy.ellipsoidalNvector.Cartesian\tpygeodesy.ellipsoidalNvector.Cartesian-class.html\npygeodesy.vector3d.Vector3d.toCartesian\tpygeodesy.vector3d.Vector3d-class.html#toCartesian\npygeodesy.vector3dBase.Vector3dBase.__int__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__int__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.cartesianBase.CartesianBase.tienstra7\tpygeodesy.cartesianBase.CartesianBase-class.html#tienstra7\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedBase.__str__\tpygeodesy.named._NamedBase-class.html#__str__\npygeodesy.cartesianBase.CartesianBase.datum\tpygeodesy.cartesianBase.CartesianBase-class.html#datum\npygeodesy.vector3dBase.Vector3dBase.__imatmul__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__imatmul__\npygeodesy.ellipsoidalNvector.Cartesian.toLatLon\tpygeodesy.ellipsoidalNvector.Cartesian-class.html#toLatLon\npygeodesy.vector3dBase.Vector3dBase.times_\tpygeodesy.vector3dBase.Vector3dBase-class.html#times_\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.vector3dBase.Vector3dBase.__rdiv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rdiv__\npygeodesy.vector3dBase.Vector3dBase.__rmul__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rmul__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.vector3dBase.Vector3dBase.__lt__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__lt__\npygeodesy.cartesianBase.CartesianBase.philamheightdatum\tpygeodesy.cartesianBase.CartesianBase-class.html#philamheightdatum\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.cartesianBase.CartesianBase.to3llh\tpygeodesy.cartesianBase.CartesianBase-class.html#to3llh\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.ellipsoidalBase.CartesianEllipsoidalBase.toTransforms_\tpygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#toTransforms_\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.vector3dBase.Vector3dBase.__cmp__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__cmp__\npygeodesy.ellipsoidalBase.CartesianEllipsoidalBase.convertRefFrame\tpygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#convertRefFrame\npygeodesy.vector3dBase.Vector3dBase.minus_\tpygeodesy.vector3dBase.Vector3dBase-class.html#minus_\npygeodesy.vector3dBase.Vector3dBase.__rfloordiv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rfloordiv__\npygeodesy.cartesianBase.CartesianBase.tienstra\tpygeodesy.cartesianBase.CartesianBase-class.html#tienstra\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.cartesianBase.CartesianBase._ecef9\tpygeodesy.cartesianBase.CartesianBase-class.html#_ecef9\npygeodesy.vector3dBase.Vector3dBase.rotateAround\tpygeodesy.vector3dBase.Vector3dBase-class.html#rotateAround\npygeodesy.cartesianBase.CartesianBase.pierlotx\tpygeodesy.cartesianBase.CartesianBase-class.html#pierlotx\npygeodesy.cartesianBase.CartesianBase.toStr\tpygeodesy.cartesianBase.CartesianBase-class.html#toStr\npygeodesy.vector3dBase.Vector3dBase._roty\tpygeodesy.vector3dBase.Vector3dBase-class.html#_roty\npygeodesy.vector3dBase.Vector3dBase.angleTo\tpygeodesy.vector3dBase.Vector3dBase-class.html#angleTo\npygeodesy.cartesianBase.CartesianBase.toTransform\tpygeodesy.cartesianBase.CartesianBase-class.html#toTransform\npygeodesy.ecefLocals._EcefLocal.toXyz\tpygeodesy.ecefLocals._EcefLocal-class.html#toXyz\npygeodesy.vector3dBase.Vector3dBase.__pow__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__pow__\npygeodesy.vector3dBase.Vector3dBase.__gt__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__gt__\npygeodesy.vector3dBase.Vector3dBase.__bool__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__bool__\npygeodesy.vector3dBase.Vector3dBase.x2y2z23\tpygeodesy.vector3dBase.Vector3dBase-class.html#x2y2z23\npygeodesy.cartesianBase.CartesianBase.toEcef\tpygeodesy.cartesianBase.CartesianBase-class.html#toEcef\npygeodesy.vector3dBase.Vector3dBase.rotate\tpygeodesy.vector3dBase.Vector3dBase-class.html#rotate\npygeodesy.vector3dBase.Vector3dBase.__nonzero__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__nonzero__\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.vector3dBase.Vector3dBase._ll\tpygeodesy.vector3dBase.Vector3dBase-class.html#_ll\npygeodesy.vector3dBase.Vector3dBase._plus\tpygeodesy.vector3dBase.Vector3dBase-class.html#_plus\npygeodesy.vector3dBase.Vector3dBase.__mod__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__mod__\npygeodesy.vector3dBase.Vector3dBase.to3xyz\tpygeodesy.vector3dBase.Vector3dBase-class.html#to3xyz\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.ellipsoidalBase.CartesianEllipsoidalBase.reframe\tpygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#reframe\npygeodesy.vector3dBase.Vector3dBase.__long__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__long__\npygeodesy.vector3dBase.Vector3dBase.cmp\tpygeodesy.vector3dBase.Vector3dBase-class.html#cmp\npygeodesy.vector3dBase.Vector3dBase.homogeneous\tpygeodesy.vector3dBase.Vector3dBase-class.html#homogeneous\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.vector3dBase.Vector3dBase.plus_\tpygeodesy.vector3dBase.Vector3dBase-class.html#plus_\npygeodesy.cartesianBase.CartesianBase.sphericalCartesian\tpygeodesy.cartesianBase.CartesianBase-class.html#sphericalCartesian\npygeodesy.cartesianBase.CartesianBase.Roc2\tpygeodesy.cartesianBase.CartesianBase-class.html#Roc2\npygeodesy.cartesianBase.CartesianBase.toDatum\tpygeodesy.cartesianBase.CartesianBase-class.html#toDatum\npygeodesy.vector3dBase.Vector3dBase.__truediv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__truediv__\npygeodesy.ecefLocals._EcefLocal.toLtp\tpygeodesy.ecefLocals._EcefLocal-class.html#toLtp\npygeodesy.vector3d.Vector3d.trilaterate2d2\tpygeodesy.vector3d.Vector3d-class.html#trilaterate2d2\npygeodesy.vector3dBase.Vector3dBase.__matmul__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__matmul__\npygeodesy.vector3dBase.Vector3dBase.euclid\tpygeodesy.vector3dBase.Vector3dBase-class.html#euclid\npygeodesy.vector3dBase.Vector3dBase._minus\tpygeodesy.vector3dBase.Vector3dBase-class.html#_minus\npygeodesy.vector3d.Vector3d.trilaterate3d2\tpygeodesy.vector3d.Vector3d-class.html#trilaterate3d2\npygeodesy.vector3dBase.Vector3dBase.__rmod__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rmod__\npygeodesy.ecefLocals._EcefLocal._ecef9datum\tpygeodesy.ecefLocals._EcefLocal-class.html#_ecef9datum\npygeodesy.cartesianBase.CartesianBase.latlon\tpygeodesy.cartesianBase.CartesianBase-class.html#latlon\npygeodesy.cartesianBase.CartesianBase.hartzell\tpygeodesy.cartesianBase.CartesianBase-class.html#hartzell\npygeodesy.vector3dBase.Vector3dBase._crosserrors\tpygeodesy.vector3dBase.Vector3dBase-class.html#_crosserrors\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.vector3dBase.Vector3dBase._mapped\tpygeodesy.vector3dBase.Vector3dBase-class.html#_mapped\npygeodesy.vector3dBase.Vector3dBase.sum\tpygeodesy.vector3dBase.Vector3dBase-class.html#sum\npygeodesy.cartesianBase.CartesianBase.philam\tpygeodesy.cartesianBase.CartesianBase-class.html#philam\npygeodesy.ecefLocals._EcefLocal.toAer\tpygeodesy.ecefLocals._EcefLocal-class.html#toAer\npygeodesy.cartesianBase.CartesianBase.collins\tpygeodesy.cartesianBase.CartesianBase-class.html#collins\npygeodesy.vector3dBase.Vector3dBase._other_cmp\tpygeodesy.vector3dBase.Vector3dBase-class.html#_other_cmp\npygeodesy.vector3dBase.Vector3dBase.isequalTo\tpygeodesy.vector3dBase.Vector3dBase-class.html#isequalTo\npygeodesy.vector3dBase.Vector3dBase.__ne__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__ne__\npygeodesy.cartesianBase.CartesianBase._height2C\tpygeodesy.cartesianBase.CartesianBase-class.html#_height2C\npygeodesy.vector3dBase.Vector3dBase.__ifloordiv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__ifloordiv__\npygeodesy.vector3dBase.Vector3dBase.dividedBy_\tpygeodesy.vector3dBase.Vector3dBase-class.html#dividedBy_\npygeodesy.vector3dBase.Vector3dBase.equals\tpygeodesy.vector3dBase.Vector3dBase-class.html#equals\npygeodesy.cartesianBase.CartesianBase._n_xyzh4\tpygeodesy.cartesianBase.CartesianBase-class.html#_n_xyzh4\npygeodesy.vector3d.Vector3d.circin6\tpygeodesy.vector3d.Vector3d-class.html#circin6\npygeodesy.cartesianBase.CartesianBase._height4\tpygeodesy.cartesianBase.CartesianBase-class.html#_height4\npygeodesy.vector3d.Vector3d.nearestOn6\tpygeodesy.vector3d.Vector3d-class.html#nearestOn6\npygeodesy.vector3dBase.Vector3dBase.__rmatmul__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rmatmul__\npygeodesy.ellipsoidalBase.CartesianEllipsoidalBase._reframe\tpygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#_reframe\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.vector3d.Vector3d.meeus2\tpygeodesy.vector3d.Vector3d-class.html#meeus2\npygeodesy.vector3dBase.Vector3dBase.__imul__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__imul__\npygeodesy.vector3dBase.Vector3dBase.__trunc__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__trunc__\npygeodesy.vector3dBase.Vector3dBase.times\tpygeodesy.vector3dBase.Vector3dBase-class.html#times\npygeodesy.vector3dBase.Vector3dBase.length\tpygeodesy.vector3dBase.Vector3dBase-class.html#length\npygeodesy.vector3dBase.Vector3dBase.plus\tpygeodesy.vector3dBase.Vector3dBase-class.html#plus\npygeodesy.vector3dBase.Vector3dBase.__mul__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__mul__\npygeodesy.cartesianBase.CartesianBase.convertDatum\tpygeodesy.cartesianBase.CartesianBase-class.html#convertDatum\npygeodesy.vector3dBase.Vector3dBase.__divmod__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__divmod__\npygeodesy.named._NamedBase.toRepr\tpygeodesy.named._NamedBase-class.html#toRepr\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.ellipsoidalBase.CartesianEllipsoidalBase.ellipsoidalCartesian\tpygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#ellipsoidalCartesian\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.vector3dBase.Vector3dBase.pow\tpygeodesy.vector3dBase.Vector3dBase-class.html#pow\npygeodesy.vector3dBase.Vector3dBase.xyz\tpygeodesy.vector3dBase.Vector3dBase-class.html#xyz\npygeodesy.vector3dBase.Vector3dBase.others\tpygeodesy.vector3dBase.Vector3dBase-class.html#others\npygeodesy.cartesianBase.CartesianBase.isEllipsoidal\tpygeodesy.cartesianBase.CartesianBase-class.html#isEllipsoidal\npygeodesy.cartesianBase.CartesianBase.height\tpygeodesy.cartesianBase.CartesianBase-class.html#height\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.vector3dBase.Vector3dBase.__rsub__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rsub__\npygeodesy.vector3dBase.Vector3dBase.ints\tpygeodesy.vector3dBase.Vector3dBase-class.html#ints\npygeodesy.cartesianBase.CartesianBase.cassini\tpygeodesy.cartesianBase.CartesianBase-class.html#cassini\npygeodesy.vector3dBase.Vector3dBase.negate\tpygeodesy.vector3dBase.Vector3dBase-class.html#negate\npygeodesy.vector3dBase.Vector3dBase.apply\tpygeodesy.vector3dBase.Vector3dBase-class.html#apply\npygeodesy.vector3dBase.Vector3dBase.equirectangular\tpygeodesy.vector3dBase.Vector3dBase-class.html#equirectangular\npygeodesy.vector3dBase.Vector3dBase.intermediateTo\tpygeodesy.vector3dBase.Vector3dBase-class.html#intermediateTo\npygeodesy.vector3dBase.Vector3dBase.unit\tpygeodesy.vector3dBase.Vector3dBase-class.html#unit\npygeodesy.vector3dBase.Vector3dBase.__float__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__float__\npygeodesy.vector3dBase.Vector3dBase.__rpow__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rpow__\npygeodesy.vector3d.Vector3d.nearestOn\tpygeodesy.vector3d.Vector3d-class.html#nearestOn\npygeodesy.vector3d.Vector3d.soddy4\tpygeodesy.vector3d.Vector3d-class.html#soddy4\npygeodesy.ecefLocals._EcefLocal.toNed\tpygeodesy.ecefLocals._EcefLocal-class.html#toNed\npygeodesy.cartesianBase.CartesianBase._N_vector\tpygeodesy.cartesianBase.CartesianBase-class.html#_N_vector\npygeodesy.vector3d.Vector3d.iscolinearWith\tpygeodesy.vector3d.Vector3d-class.html#iscolinearWith\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.vector3dBase.Vector3dBase.floats\tpygeodesy.vector3dBase.Vector3dBase-class.html#floats\npygeodesy.vector3dBase.Vector3dBase.__itruediv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__itruediv__\npygeodesy.vector3dBase.Vector3dBase.dividedBy\tpygeodesy.vector3dBase.Vector3dBase-class.html#dividedBy\npygeodesy.ellipsoidalNvector.Cartesian.Ecef\tpygeodesy.ellipsoidalNvector.Cartesian-class.html#Ecef\npygeodesy.vector3dBase.Vector3dBase.__rdivmod__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rdivmod__\npygeodesy.vector3dBase.Vector3dBase.crosserrors\tpygeodesy.vector3dBase.Vector3dBase-class.html#crosserrors\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.vector3d.Vector3d.circum3\tpygeodesy.vector3d.Vector3d-class.html#circum3\npygeodesy.ellipsoidalBase.CartesianEllipsoidalBase.toRefFrame\tpygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#toRefFrame\npygeodesy.vector3dBase.Vector3dBase.__eq__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__eq__\npygeodesy.ecefLocals._EcefLocal.toEnu\tpygeodesy.ecefLocals._EcefLocal-class.html#toEnu\npygeodesy.vector3dBase.Vector3dBase.__round__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__round__\npygeodesy.vector3dBase.Vector3dBase.bools\tpygeodesy.vector3dBase.Vector3dBase-class.html#bools\npygeodesy.cartesianBase.CartesianBase.latlonheight\tpygeodesy.cartesianBase.CartesianBase-class.html#latlonheight\npygeodesy.cartesianBase.CartesianBase.height4\tpygeodesy.cartesianBase.CartesianBase-class.html#height4\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.vector3dBase.Vector3dBase.xyz3\tpygeodesy.vector3dBase.Vector3dBase-class.html#xyz3\npygeodesy.ecefLocals._EcefLocal._ltp_ecef2local\tpygeodesy.ecefLocals._EcefLocal-class.html#_ltp_ecef2local\npygeodesy.vector3dBase.Vector3dBase.__iadd__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__iadd__\npygeodesy.cartesianBase.CartesianBase.height3\tpygeodesy.cartesianBase.CartesianBase-class.html#height3\npygeodesy.vector3d.Vector3d.circum4_\tpygeodesy.vector3d.Vector3d-class.html#circum4_\npygeodesy.cartesianBase.CartesianBase.latlonheightdatum\tpygeodesy.cartesianBase.CartesianBase-class.html#latlonheightdatum\npygeodesy.vector3dBase.Vector3dBase.__le__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__le__\npygeodesy.vector3dBase.Vector3dBase.__floordiv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__floordiv__\npygeodesy.vector3dBase.Vector3dBase.__hash__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__hash__\npygeodesy.vector3dBase.Vector3dBase.__sub__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__sub__\npygeodesy.vector3dBase.Vector3dBase.z\tpygeodesy.vector3dBase.Vector3dBase-class.html#z\npygeodesy.vector3dBase.Vector3dBase._xyz\tpygeodesy.vector3dBase.Vector3dBase-class.html#_xyz\npygeodesy.vector3dBase.Vector3dBase.minus\tpygeodesy.vector3dBase.Vector3dBase-class.html#minus\npygeodesy.vector3dBase.Vector3dBase.__ge__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__ge__\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.vector3d.Vector3d.bearing\tpygeodesy.vector3d.Vector3d-class.html#bearing\npygeodesy.vector3dBase.Vector3dBase.__rtruediv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rtruediv__\npygeodesy.vector3dBase.Vector3dBase.floorDividedBy_\tpygeodesy.vector3dBase.Vector3dBase-class.html#floorDividedBy_\npygeodesy.cartesianBase.CartesianBase.collins5\tpygeodesy.cartesianBase.CartesianBase-class.html#collins5\npygeodesy.vector3dBase.Vector3dBase.x2y2z2\tpygeodesy.vector3dBase.Vector3dBase-class.html#x2y2z2\npygeodesy.cartesianBase.CartesianBase.toRtp\tpygeodesy.cartesianBase.CartesianBase-class.html#toRtp\npygeodesy.ellipsoidalNvector.Cartesian.toNvector\tpygeodesy.ellipsoidalNvector.Cartesian-class.html#toNvector\npygeodesy.vector3d.Vector3d.parse\tpygeodesy.vector3d.Vector3d-class.html#parse\npygeodesy.vector3dBase.Vector3dBase.floorDividedBy\tpygeodesy.vector3dBase.Vector3dBase-class.html#floorDividedBy\npygeodesy.vector3dBase.Vector3dBase.__floor__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__floor__\npygeodesy.cartesianBase.CartesianBase.isSpherical\tpygeodesy.cartesianBase.CartesianBase-class.html#isSpherical\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.ellipsoidalBase.CartesianEllipsoidalBase.__init__\tpygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#__init__\npygeodesy.vector3dBase.Vector3dBase.__imod__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__imod__\npygeodesy.vector3dBase.Vector3dBase.fabs\tpygeodesy.vector3dBase.Vector3dBase-class.html#fabs\npygeodesy.vector3dBase.Vector3dBase._times\tpygeodesy.vector3dBase.Vector3dBase-class.html#_times\npygeodesy.vector3d.Vector3d.radii11\tpygeodesy.vector3d.Vector3d-class.html#radii11\npygeodesy.cartesianBase.CartesianBase.to2ab\tpygeodesy.cartesianBase.CartesianBase-class.html#to2ab\npygeodesy.ellipsoidalBase.CartesianEllipsoidalBase._epoch\tpygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#_epoch\npygeodesy.vector3dBase.Vector3dBase.cross\tpygeodesy.vector3dBase.Vector3dBase-class.html#cross\npygeodesy.cartesianBase.CartesianBase.philamheight\tpygeodesy.cartesianBase.CartesianBase-class.html#philamheight\npygeodesy.vector3dBase.Vector3dBase.__pos__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__pos__\npygeodesy.ellipsoidalBase.CartesianEllipsoidalBase.epoch\tpygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#epoch\npygeodesy.ellipsoidalBase.CartesianEllipsoidalBase.intersections2\tpygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#intersections2\npygeodesy.vector3dBase.Vector3dBase.__abs__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__abs__\npygeodesy.ellipsoidalBase.CartesianEllipsoidalBase._datum\tpygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#_datum\npygeodesy.named._NamedBase.__repr__\tpygeodesy.named._NamedBase-class.html#__repr__\npygeodesy.ecefLocals._EcefLocal._ltp\tpygeodesy.ecefLocals._EcefLocal-class.html#_ltp\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.cartesianBase.CartesianBase.destinationXyz\tpygeodesy.cartesianBase.CartesianBase-class.html#destinationXyz\npygeodesy.cartesianBase.CartesianBase._height\tpygeodesy.cartesianBase.CartesianBase-class.html#_height\npygeodesy.vector3dBase.Vector3dBase.__idiv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__idiv__\npygeodesy.vector3dBase.Vector3dBase._united\tpygeodesy.vector3dBase.Vector3dBase-class.html#_united\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.vector3dBase.Vector3dBase._fromll\tpygeodesy.vector3dBase.Vector3dBase-class.html#_fromll\npygeodesy.vector3dBase.Vector3dBase.__add__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__add__\npygeodesy.vector3dBase.Vector3dBase.x\tpygeodesy.vector3dBase.Vector3dBase-class.html#x\npygeodesy.cartesianBase.CartesianBase.toVector\tpygeodesy.cartesianBase.CartesianBase-class.html#toVector\npygeodesy.cartesianBase.CartesianBase.pierlot\tpygeodesy.cartesianBase.CartesianBase-class.html#pierlot\npygeodesy.vector3dBase.Vector3dBase.__isub__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__isub__\npygeodesy.ecefLocals._EcefLocal.toLocal\tpygeodesy.ecefLocals._EcefLocal-class.html#toLocal\npygeodesy.vector3dBase.Vector3dBase.__radd__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__radd__\npygeodesy.vector3dBase.Vector3dBase.length2\tpygeodesy.vector3dBase.Vector3dBase-class.html#length2\npygeodesy.cartesianBase.CartesianBase.to2ll\tpygeodesy.cartesianBase.CartesianBase-class.html#to2ll\npygeodesy.vector3dBase.Vector3dBase.isconjugateTo\tpygeodesy.vector3dBase.Vector3dBase-class.html#isconjugateTo\npygeodesy.vector3dBase.Vector3dBase.__ipow__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__ipow__\npygeodesy.vector3dBase.Vector3dBase.__div__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__div__\npygeodesy.vector3dBase.Vector3dBase.__ceil__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__ceil__\npygeodesy.vector3dBase.Vector3dBase.__neg__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__neg__\npygeodesy.vector3dBase.Vector3dBase.y\tpygeodesy.vector3dBase.Vector3dBase-class.html#y\npygeodesy.vector3dBase.Vector3dBase.dot\tpygeodesy.vector3dBase.Vector3dBase-class.html#dot\npygeodesy.ellipsoidalNvector.LatLon\tpygeodesy.ellipsoidalNvector.LatLon-class.html\npygeodesy.ellipsoidalNvector.LatLon.toCartesian\tpygeodesy.ellipsoidalNvector.LatLon-class.html#toCartesian\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.toCss\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toCss\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.isenclosedBy\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#isenclosedBy\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.toEtm\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toEtm\npygeodesy.latlonBase.LatLonBase.__str__\tpygeodesy.latlonBase.LatLonBase-class.html#__str__\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.datum\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#datum\npygeodesy.latlonBase.LatLonBase.philam2\tpygeodesy.latlonBase.LatLonBase-class.html#philam2\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.elevation2\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#elevation2\npygeodesy.latlonBase.LatLonBase.to3llh\tpygeodesy.latlonBase.LatLonBase-class.html#to3llh\npygeodesy.latlonBase.LatLonBase.isnormal\tpygeodesy.latlonBase.LatLonBase-class.html#isnormal\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.ellipsoid\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#ellipsoid\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase._upsOK\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#_upsOK\npygeodesy.ellipsoidalNvector.LatLon.distanceTo\tpygeodesy.ellipsoidalNvector.LatLon-class.html#distanceTo\npygeodesy.latlonBase.LatLonBase.flatLocalTo\tpygeodesy.latlonBase.LatLonBase-class.html#flatLocalTo\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.geoidHeight2\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#geoidHeight2\npygeodesy.latlonBase.LatLonBase._distanceTo\tpygeodesy.latlonBase.LatLonBase-class.html#_distanceTo\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.latlonBase.LatLonBase.isequalTo3\tpygeodesy.latlonBase.LatLonBase-class.html#isequalTo3\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.ellipsoids\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#ellipsoids\npygeodesy.ecefLocals._EcefLocal.toEnu\tpygeodesy.ecefLocals._EcefLocal-class.html#toEnu\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.latlonBase.LatLonBase.isantipode\tpygeodesy.latlonBase.LatLonBase-class.html#isantipode\npygeodesy.latlonBase.LatLonBase._ecef9\tpygeodesy.latlonBase.LatLonBase-class.html#_ecef9\npygeodesy.latlonBase.LatLonBase._rhumb3dict\tpygeodesy.latlonBase.LatLonBase-class.html#_rhumb3dict\npygeodesy.latlonBase.LatLonBase.to2ab\tpygeodesy.latlonBase.LatLonBase-class.html#to2ab\npygeodesy.latlonBase.LatLonBase.toStr\tpygeodesy.latlonBase.LatLonBase-class.html#toStr\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase._datum\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#_datum\npygeodesy.latlonBase.LatLonBase.PointsIter\tpygeodesy.latlonBase.LatLonBase-class.html#PointsIter\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.toTransform\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toTransform\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase._toX8\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#_toX8\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.antipode\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#antipode\npygeodesy.latlonBase.LatLonBase._n_xyz3\tpygeodesy.latlonBase.LatLonBase-class.html#_n_xyz3\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.toUtmUps\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toUtmUps\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase._geoidHeight2to\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#_geoidHeight2to\npygeodesy.latlonBase.LatLonBase.toEcef\tpygeodesy.latlonBase.LatLonBase-class.html#toEcef\npygeodesy.latlonBase.LatLonBase.cosineLawTo\tpygeodesy.latlonBase.LatLonBase-class.html#cosineLawTo\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.ellipsoidalNvector.LatLon.destinationNed\tpygeodesy.ellipsoidalNvector.LatLon-class.html#destinationNed\npygeodesy.nvectorBase.LatLonNvectorBase.triangulate\tpygeodesy.nvectorBase.LatLonNvectorBase-class.html#triangulate\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase._ups\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#_ups\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.latlonBase.LatLonBase._Ecef_forward\tpygeodesy.latlonBase.LatLonBase-class.html#_Ecef_forward\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.reframe\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#reframe\npygeodesy.named._NamedBase.toRepr\tpygeodesy.named._NamedBase-class.html#toRepr\npygeodesy.latlonBase.LatLonBase.isantipodeTo\tpygeodesy.latlonBase.LatLonBase-class.html#isantipodeTo\npygeodesy.latlonBase.LatLonBase.compassAngle\tpygeodesy.latlonBase.LatLonBase-class.html#compassAngle\npygeodesy.latlonBase.LatLonBase.lam\tpygeodesy.latlonBase.LatLonBase-class.html#lam\npygeodesy.latlonBase.LatLonBase.xyz3\tpygeodesy.latlonBase.LatLonBase-class.html#xyz3\npygeodesy.latlonBase.LatLonBase.points2\tpygeodesy.latlonBase.LatLonBase-class.html#points2\npygeodesy.ellipsoidalNvector.LatLon._Nv\tpygeodesy.ellipsoidalNvector.LatLon-class.html#_Nv\npygeodesy.ellipsoidalNvector.LatLon.deltaTo\tpygeodesy.ellipsoidalNvector.LatLon-class.html#deltaTo\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.toDatum\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toDatum\npygeodesy.ecefLocals._EcefLocal.toLtp\tpygeodesy.ecefLocals._EcefLocal-class.html#toLtp\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.toUtm\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toUtm\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.latlonBase.LatLonBase.clipid\tpygeodesy.latlonBase.LatLonBase-class.html#clipid\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.ellipsoidalLatLon\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#ellipsoidalLatLon\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase._gamma\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#_gamma\npygeodesy.latlonBase.LatLonBase.hartzell\tpygeodesy.latlonBase.LatLonBase-class.html#hartzell\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.scale\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#scale\npygeodesy.latlonBase.LatLonBase.normal\tpygeodesy.latlonBase.LatLonBase-class.html#normal\npygeodesy.latlonBase.LatLonBase.philam\tpygeodesy.latlonBase.LatLonBase-class.html#philam\npygeodesy.ecefLocals._EcefLocal.toAer\tpygeodesy.ecefLocals._EcefLocal-class.html#toAer\npygeodesy.latlonBase.LatLonBase.chordTo\tpygeodesy.latlonBase.LatLonBase-class.html#chordTo\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.ellipsoidalNvector.LatLon._rotation3\tpygeodesy.ellipsoidalNvector.LatLon-class.html#_rotation3\npygeodesy.latlonBase.LatLonBase.__ne__\tpygeodesy.latlonBase.LatLonBase-class.html#__ne__\npygeodesy.latlonBase.LatLonBase.toWm\tpygeodesy.latlonBase.LatLonBase-class.html#toWm\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.latlonBase.LatLonBase.sphericalLatLon\tpygeodesy.latlonBase.LatLonBase-class.html#sphericalLatLon\npygeodesy.ellipsoidalNvector.LatLon.equals\tpygeodesy.ellipsoidalNvector.LatLon-class.html#equals\npygeodesy.latlonBase.LatLonBase.circin6\tpygeodesy.latlonBase.LatLonBase-class.html#circin6\npygeodesy.nvectorBase.LatLonNvectorBase.others\tpygeodesy.nvectorBase.LatLonNvectorBase-class.html#others\npygeodesy.latlonBase.LatLonBase.rhumbIntersecant2\tpygeodesy.latlonBase.LatLonBase-class.html#rhumbIntersecant2\npygeodesy.ecefLocals._EcefLocal._ecef9datum\tpygeodesy.ecefLocals._EcefLocal-class.html#_ecef9datum\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.distanceTo2\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#distanceTo2\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.latlonBase.LatLonBase.toVector3d\tpygeodesy.latlonBase.LatLonBase-class.html#toVector3d\npygeodesy.latlonBase.LatLonBase._lat\tpygeodesy.latlonBase.LatLonBase-class.html#_lat\npygeodesy.latlonBase.LatLonBase.cosineForsytheAndoyerLambertTo\tpygeodesy.latlonBase.LatLonBase-class.html#cosineForsytheAndoyerLambertTo\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.latlonBase.LatLonBase.compassAngleTo\tpygeodesy.latlonBase.LatLonBase-class.html#compassAngleTo\npygeodesy.named._NamedBase.__repr__\tpygeodesy.named._NamedBase-class.html#__repr__\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase._elevation2to\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#_elevation2to\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.convertDatum\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#convertDatum\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.intersection3\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#intersection3\npygeodesy.latlonBase.LatLonBase.latlon_\tpygeodesy.latlonBase.LatLonBase-class.html#latlon_\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.gamma\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#gamma\npygeodesy.latlonBase.LatLonBase.flatPolarTo\tpygeodesy.latlonBase.LatLonBase-class.html#flatPolarTo\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.latlonBase.LatLonBase.boundsOf\tpygeodesy.latlonBase.LatLonBase-class.html#boundsOf\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase._scale\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#_scale\npygeodesy.latlonBase.LatLonBase._havg\tpygeodesy.latlonBase.LatLonBase-class.html#_havg\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase._geoidHeight2\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#_geoidHeight2\npygeodesy.latlonBase.LatLonBase.xyz\tpygeodesy.latlonBase.LatLonBase-class.html#xyz\npygeodesy.latlonBase.LatLonBase.nearestOn6\tpygeodesy.latlonBase.LatLonBase-class.html#nearestOn6\npygeodesy.latlonBase.LatLonBase.isEllipsoidal\tpygeodesy.latlonBase.LatLonBase-class.html#isEllipsoidal\npygeodesy.latlonBase.LatLonBase.height\tpygeodesy.latlonBase.LatLonBase-class.html#height\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.latlonBase.LatLonBase.equals3\tpygeodesy.latlonBase.LatLonBase-class.html#equals3\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.latlonBase.LatLonBase.toVector\tpygeodesy.latlonBase.LatLonBase-class.html#toVector\npygeodesy.latlonBase.LatLonBase.rhumbDestination\tpygeodesy.latlonBase.LatLonBase-class.html#rhumbDestination\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.convertRefFrame\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#convertRefFrame\npygeodesy.nvectorBase.LatLonNvectorBase.trilaterate5\tpygeodesy.nvectorBase.LatLonNvectorBase-class.html#trilaterate5\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.nearestOn\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#nearestOn\npygeodesy.latlonBase.LatLonBase._heigHt\tpygeodesy.latlonBase.LatLonBase-class.html#_heigHt\npygeodesy.latlonBase.LatLonBase._N_vector\tpygeodesy.latlonBase.LatLonBase-class.html#_N_vector\npygeodesy.latlonBase.LatLonBase.lon\tpygeodesy.latlonBase.LatLonBase-class.html#lon\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.midpointTo\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#midpointTo\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.toLcc\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toLcc\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.Equidistant\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#Equidistant\npygeodesy.latlonBase.LatLonBase.xyzh\tpygeodesy.latlonBase.LatLonBase-class.html#xyzh\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.latlonBase.LatLonBase.nearestTo\tpygeodesy.latlonBase.LatLonBase-class.html#nearestTo\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase._reframe\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#_reframe\npygeodesy.latlonBase.LatLonBase.hubenyTo\tpygeodesy.latlonBase.LatLonBase-class.html#hubenyTo\npygeodesy.latlonBase.LatLonBase.heightStr\tpygeodesy.latlonBase.LatLonBase-class.html#heightStr\npygeodesy.ellipsoidalNvector.LatLon.Ecef\tpygeodesy.ellipsoidalNvector.LatLon-class.html#Ecef\npygeodesy.latlonBase.LatLonBase.latlon2\tpygeodesy.latlonBase.LatLonBase-class.html#latlon2\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase._utm\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#_utm\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase._toLLEB_args\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#_toLLEB_args\npygeodesy.ecefLocals._EcefLocal._ltp\tpygeodesy.ecefLocals._EcefLocal-class.html#_ltp\npygeodesy.latlonBase.LatLonBase._rhumb3\tpygeodesy.latlonBase.LatLonBase-class.html#_rhumb3\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.convergence\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#convergence\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.toRefFrame\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toRefFrame\npygeodesy.latlonBase.LatLonBase.__eq__\tpygeodesy.latlonBase.LatLonBase-class.html#__eq__\npygeodesy.latlonBase.LatLonBase._lon\tpygeodesy.latlonBase.LatLonBase-class.html#_lon\npygeodesy.latlonBase.LatLonBase.toNormal\tpygeodesy.latlonBase.LatLonBase-class.html#toNormal\npygeodesy.latlonBase.LatLonBase.latlonheight\tpygeodesy.latlonBase.LatLonBase-class.html#latlonheight\npygeodesy.latlonBase.LatLonBase.height4\tpygeodesy.latlonBase.LatLonBase-class.html#height4\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.iteration\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#iteration\npygeodesy.latlonBase.LatLonBase.bounds\tpygeodesy.latlonBase.LatLonBase-class.html#bounds\npygeodesy.latlonBase.LatLonBase.circum4_\tpygeodesy.latlonBase.LatLonBase-class.html#circum4_\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.latlonBase.LatLonBase.rhumbAzimuthTo\tpygeodesy.latlonBase.LatLonBase-class.html#rhumbAzimuthTo\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.ellipsoidalNvector.LatLon._update\tpygeodesy.ellipsoidalNvector.LatLon-class.html#_update\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase._elevation2\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#_elevation2\npygeodesy.ecefLocals._EcefLocal.toNed\tpygeodesy.ecefLocals._EcefLocal-class.html#toNed\npygeodesy.latlonBase.LatLonBase.cosineAndoyerLambertTo\tpygeodesy.latlonBase.LatLonBase-class.html#cosineAndoyerLambertTo\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.toUps\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toUps\npygeodesy.latlonBase.LatLonBase._clipid\tpygeodesy.latlonBase.LatLonBase-class.html#_clipid\npygeodesy.ellipsoidalNvector.LatLon.toNvector\tpygeodesy.ellipsoidalNvector.LatLon-class.html#toNvector\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.parse\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#parse\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.latlonBase.LatLonBase.isSpherical\tpygeodesy.latlonBase.LatLonBase-class.html#isSpherical\npygeodesy.latlonBase.LatLonBase._wrap_name2\tpygeodesy.latlonBase.LatLonBase-class.html#_wrap_name2\npygeodesy.nvectorBase.LatLonNvectorBase.intersections2\tpygeodesy.nvectorBase.LatLonNvectorBase-class.html#intersections2\npygeodesy.latlonBase.LatLonBase.radii11\tpygeodesy.latlonBase.LatLonBase-class.html#radii11\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase._epoch\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#_epoch\npygeodesy.latlonBase.LatLonBase.philamheight\tpygeodesy.latlonBase.LatLonBase-class.html#philamheight\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase._utmOK\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#_utmOK\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.epoch\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#epoch\npygeodesy.latlonBase.LatLonBase.latlon2round\tpygeodesy.latlonBase.LatLonBase-class.html#latlon2round\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.__init__\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#__init__\npygeodesy.ecefLocals._EcefLocal._ltp_ecef2local\tpygeodesy.ecefLocals._EcefLocal-class.html#_ltp_ecef2local\npygeodesy.latlonBase.LatLonBase.vincentysTo\tpygeodesy.latlonBase.LatLonBase-class.html#vincentysTo\npygeodesy.latlonBase.LatLonBase.thomasTo\tpygeodesy.latlonBase.LatLonBase-class.html#thomasTo\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.to3xyz\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#to3xyz\npygeodesy.latlonBase.LatLonBase.rhumbMidpointTo\tpygeodesy.latlonBase.LatLonBase-class.html#rhumbMidpointTo\npygeodesy.latlonBase.LatLonBase.latlon\tpygeodesy.latlonBase.LatLonBase-class.html#latlon\npygeodesy.latlonBase.LatLonBase.phi\tpygeodesy.latlonBase.LatLonBase-class.html#phi\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.latlonBase.LatLonBase.destinationXyz\tpygeodesy.latlonBase.LatLonBase-class.html#destinationXyz\npygeodesy.latlonBase.LatLonBase._height\tpygeodesy.latlonBase.LatLonBase-class.html#_height\npygeodesy.ellipsoidalNvector.LatLon.isequalTo\tpygeodesy.ellipsoidalNvector.LatLon-class.html#isequalTo\npygeodesy.latlonBase.LatLonBase.circum3\tpygeodesy.latlonBase.LatLonBase-class.html#circum3\npygeodesy.latlonBase.LatLonBase.euclideanTo\tpygeodesy.latlonBase.LatLonBase-class.html#euclideanTo\npygeodesy.latlonBase.LatLonBase.haversineTo\tpygeodesy.latlonBase.LatLonBase-class.html#haversineTo\npygeodesy.latlonBase.LatLonBase._intersecend2\tpygeodesy.latlonBase.LatLonBase-class.html#_intersecend2\npygeodesy.latlonBase.LatLonBase.lat\tpygeodesy.latlonBase.LatLonBase-class.html#lat\npygeodesy.ellipsoidalNvector.LatLon.intermediateTo\tpygeodesy.ellipsoidalNvector.LatLon-class.html#intermediateTo\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.toMgrs\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toMgrs\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.latlonBase.LatLonBase.equirectangularTo\tpygeodesy.latlonBase.LatLonBase-class.html#equirectangularTo\npygeodesy.ecefLocals._EcefLocal.toLocal\tpygeodesy.ecefLocals._EcefLocal-class.html#toLocal\npygeodesy.ecefLocals._EcefLocal.toXyz\tpygeodesy.ecefLocals._EcefLocal-class.html#toXyz\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.toOsgr\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toOsgr\npygeodesy.latlonBase.LatLonBase.rhumbDistanceTo\tpygeodesy.latlonBase.LatLonBase-class.html#rhumbDistanceTo\npygeodesy.latlonBase.LatLonBase.rhumbLine\tpygeodesy.latlonBase.LatLonBase-class.html#rhumbLine\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase._etm\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#_etm\npygeodesy.latlonBase.LatLonBase.intersecant2\tpygeodesy.latlonBase.LatLonBase-class.html#intersecant2\npygeodesy.latlonBase.LatLonBase.points\tpygeodesy.latlonBase.LatLonBase-class.html#points\npygeodesy.latlonBase.LatLonBase._toCartesianEcef\tpygeodesy.latlonBase.LatLonBase-class.html#_toCartesianEcef\npygeodesy.latlonBase.LatLonBase._distanceTo_\tpygeodesy.latlonBase.LatLonBase-class.html#_distanceTo_\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase._Radjust2\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#_Radjust2\npygeodesy.nvectorBase.LatLonNvectorBase.trilaterate\tpygeodesy.nvectorBase.LatLonNvectorBase-class.html#trilaterate\npygeodesy.ellipsoidalNvector.Ned\tpygeodesy.ellipsoidalNvector.Ned-class.html\npygeodesy.ellipsoidalNvector.Ned.toRepr\tpygeodesy.ellipsoidalNvector.Ned-class.html#toRepr\npygeodesy.ltpTuples.Ned.bearing\tpygeodesy.ltpTuples.Ned-class.html#bearing\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.ltpTuples._AbcBase.toNed\tpygeodesy.ltpTuples._AbcBase-class.html#toNed\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.ltpTuples._AbcBase.xyz\tpygeodesy.ltpTuples._AbcBase-class.html#xyz\npygeodesy.ltpTuples.Ned.ned4\tpygeodesy.ltpTuples.Ned-class.html#ned4\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.ltpTuples.Ned.down\tpygeodesy.ltpTuples.Ned-class.html#down\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.ltpTuples.Ned.slantrange\tpygeodesy.ltpTuples.Ned-class.html#slantrange\npygeodesy.ltpTuples.Ned.north\tpygeodesy.ltpTuples.Ned-class.html#north\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.ltpTuples.Ned.to3ned\tpygeodesy.ltpTuples.Ned-class.html#to3ned\npygeodesy.ellipsoidalNvector.Ned.__init__\tpygeodesy.ellipsoidalNvector.Ned-class.html#__init__\npygeodesy.ltpTuples.Ned._toStr\tpygeodesy.ltpTuples.Ned-class.html#_toStr\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.ltpTuples.Ned.ned\tpygeodesy.ltpTuples.Ned-class.html#ned\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.ltpTuples._AbcBase.toAer\tpygeodesy.ltpTuples._AbcBase-class.html#toAer\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.ltpTuples.Ned._east\tpygeodesy.ltpTuples.Ned-class.html#_east\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.ltpTuples.Ned.east\tpygeodesy.ltpTuples.Ned-class.html#east\npygeodesy.named._NamedBase.__str__\tpygeodesy.named._NamedBase-class.html#__str__\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.ltpTuples._AbcBase._ltp\tpygeodesy.ltpTuples._AbcBase-class.html#_ltp\npygeodesy.ltpTuples.Ned.elevation\tpygeodesy.ltpTuples.Ned-class.html#elevation\npygeodesy.ltpTuples._AbcBase.xyzLocal\tpygeodesy.ltpTuples._AbcBase-class.html#xyzLocal\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.ltpTuples.Ned.toStr\tpygeodesy.ltpTuples.Ned-class.html#toStr\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.ltpTuples.Ned.groundrange\tpygeodesy.ltpTuples.Ned-class.html#groundrange\npygeodesy.ltpTuples.Ned.aer4\tpygeodesy.ltpTuples.Ned-class.html#aer4\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.ltpTuples._AbcBase.toXyz\tpygeodesy.ltpTuples._AbcBase-class.html#toXyz\npygeodesy.named._NamedBase.others\tpygeodesy.named._NamedBase-class.html#others\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.ltpTuples.Ned._down\tpygeodesy.ltpTuples.Ned-class.html#_down\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.ltpTuples._AbcBase.toEnu\tpygeodesy.ltpTuples._AbcBase-class.html#toEnu\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.ltpTuples.Ned.toVector3d\tpygeodesy.ltpTuples.Ned-class.html#toVector3d\npygeodesy.ltpTuples.Ned._north\tpygeodesy.ltpTuples.Ned-class.html#_north\npygeodesy.ltpTuples._AbcBase.ltp\tpygeodesy.ltpTuples._AbcBase-class.html#ltp\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.ltpTuples.Ned.xyz4\tpygeodesy.ltpTuples.Ned-class.html#xyz4\npygeodesy.ltpTuples._AbcBase.xyz3\tpygeodesy.ltpTuples._AbcBase-class.html#xyz3\npygeodesy.ltpTuples.Ned.up\tpygeodesy.ltpTuples.Ned-class.html#up\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.ltpTuples.Ned.length\tpygeodesy.ltpTuples.Ned-class.html#length\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.named._NamedBase.__repr__\tpygeodesy.named._NamedBase-class.html#__repr__\npygeodesy.ltpTuples.Ned.azimuth\tpygeodesy.ltpTuples.Ned-class.html#azimuth\npygeodesy.ltpTuples.Ned.y\tpygeodesy.ltpTuples.Ned-class.html#y\npygeodesy.ltpTuples.Ned.x\tpygeodesy.ltpTuples.Ned-class.html#x\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.ltpTuples.Ned.z\tpygeodesy.ltpTuples.Ned-class.html#z\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.ellipsoidalNvector.Nvector\tpygeodesy.ellipsoidalNvector.Nvector-class.html\npygeodesy.ellipsoidalNvector.Nvector.toCartesian\tpygeodesy.ellipsoidalNvector.Nvector-class.html#toCartesian\npygeodesy.vector3dBase.Vector3dBase.__int__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__int__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedBase.__str__\tpygeodesy.named._NamedBase-class.html#__str__\npygeodesy.ellipsoidalNvector.Nvector.datum\tpygeodesy.ellipsoidalNvector.Nvector-class.html#datum\npygeodesy.vector3dBase.Vector3dBase.__imatmul__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__imatmul__\npygeodesy.ellipsoidalNvector.Nvector.toLatLon\tpygeodesy.ellipsoidalNvector.Nvector-class.html#toLatLon\npygeodesy.nvectorBase.NvectorBase.to3abh\tpygeodesy.nvectorBase.NvectorBase-class.html#to3abh\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.vector3dBase.Vector3dBase.__rdiv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rdiv__\npygeodesy.vector3dBase.Vector3dBase.__rmul__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rmul__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.vector3dBase.Vector3dBase.__lt__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__lt__\npygeodesy.nvectorBase.NvectorBase.philamheightdatum\tpygeodesy.nvectorBase.NvectorBase-class.html#philamheightdatum\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.nvectorBase.NvectorBase.to3llh\tpygeodesy.nvectorBase.NvectorBase-class.html#to3llh\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.vector3dBase.Vector3dBase.__cmp__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__cmp__\npygeodesy.vector3d.Vector3d.nearestOn\tpygeodesy.vector3d.Vector3d-class.html#nearestOn\npygeodesy.vector3dBase.Vector3dBase.minus_\tpygeodesy.vector3dBase.Vector3dBase-class.html#minus_\npygeodesy.vector3dBase.Vector3dBase.__rfloordiv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rfloordiv__\npygeodesy.vector3dBase.Vector3dBase.crosserrors\tpygeodesy.vector3dBase.Vector3dBase-class.html#crosserrors\npygeodesy.nvectorBase.NvectorBase._h\tpygeodesy.nvectorBase.NvectorBase-class.html#_h\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.vector3dBase.Vector3dBase.rotateAround\tpygeodesy.vector3dBase.Vector3dBase-class.html#rotateAround\npygeodesy.nvectorBase.NvectorBase.to2ab\tpygeodesy.nvectorBase.NvectorBase-class.html#to2ab\npygeodesy.nvectorBase.NvectorBase.toStr\tpygeodesy.nvectorBase.NvectorBase-class.html#toStr\npygeodesy.vector3dBase.Vector3dBase._roty\tpygeodesy.vector3dBase.Vector3dBase-class.html#_roty\npygeodesy.vector3dBase.Vector3dBase.angleTo\tpygeodesy.vector3dBase.Vector3dBase-class.html#angleTo\npygeodesy.vector3dBase.Vector3dBase.__pow__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__pow__\npygeodesy.vector3dBase.Vector3dBase.__gt__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__gt__\npygeodesy.vector3dBase.Vector3dBase.__bool__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__bool__\npygeodesy.vector3dBase.Vector3dBase.x2y2z23\tpygeodesy.vector3dBase.Vector3dBase-class.html#x2y2z23\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.vector3dBase.Vector3dBase.rotate\tpygeodesy.vector3dBase.Vector3dBase-class.html#rotate\npygeodesy.vector3dBase.Vector3dBase.__nonzero__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__nonzero__\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.vector3dBase.Vector3dBase._united\tpygeodesy.vector3dBase.Vector3dBase-class.html#_united\npygeodesy.vector3dBase.Vector3dBase._other_cmp\tpygeodesy.vector3dBase.Vector3dBase-class.html#_other_cmp\npygeodesy.vector3dBase.Vector3dBase._plus\tpygeodesy.vector3dBase.Vector3dBase-class.html#_plus\npygeodesy.vector3dBase.Vector3dBase.__mod__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__mod__\npygeodesy.vector3dBase.Vector3dBase.to3xyz\tpygeodesy.vector3dBase.Vector3dBase-class.html#to3xyz\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.nvectorBase.NvectorBase.h\tpygeodesy.nvectorBase.NvectorBase-class.html#h\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.vector3dBase.Vector3dBase.x\tpygeodesy.vector3dBase.Vector3dBase-class.html#x\npygeodesy.vector3dBase.Vector3dBase.__long__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__long__\npygeodesy.vector3dBase.Vector3dBase.cmp\tpygeodesy.vector3dBase.Vector3dBase-class.html#cmp\npygeodesy.vector3dBase.Vector3dBase.homogeneous\tpygeodesy.vector3dBase.Vector3dBase-class.html#homogeneous\npygeodesy.ellipsoidalNvector.Nvector.ellipsoidalNvector\tpygeodesy.ellipsoidalNvector.Nvector-class.html#ellipsoidalNvector\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.vector3dBase.Vector3dBase.plus_\tpygeodesy.vector3dBase.Vector3dBase-class.html#plus_\npygeodesy.nvectorBase.NvectorBase._H\tpygeodesy.nvectorBase.NvectorBase-class.html#_H\npygeodesy.vector3dBase.Vector3dBase.__truediv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__truediv__\npygeodesy.vector3d.Vector3d.trilaterate2d2\tpygeodesy.vector3d.Vector3d-class.html#trilaterate2d2\npygeodesy.vector3dBase.Vector3dBase.euclid\tpygeodesy.vector3dBase.Vector3dBase-class.html#euclid\npygeodesy.vector3dBase.Vector3dBase._minus\tpygeodesy.vector3dBase.Vector3dBase-class.html#_minus\npygeodesy.vector3d.Vector3d.trilaterate3d2\tpygeodesy.vector3d.Vector3d-class.html#trilaterate3d2\npygeodesy.vector3dBase.Vector3dBase.__rmod__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rmod__\npygeodesy.nvectorBase.NvectorBase.latlon\tpygeodesy.nvectorBase.NvectorBase-class.html#latlon\npygeodesy.vector3dBase.Vector3dBase._crosserrors\tpygeodesy.vector3dBase.Vector3dBase-class.html#_crosserrors\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.vector3dBase.Vector3dBase._mapped\tpygeodesy.vector3dBase.Vector3dBase-class.html#_mapped\npygeodesy.vector3dBase.Vector3dBase.sum\tpygeodesy.vector3dBase.Vector3dBase-class.html#sum\npygeodesy.nvectorBase.NvectorBase.philam\tpygeodesy.nvectorBase.NvectorBase-class.html#philam\npygeodesy.vector3dBase.Vector3dBase._ll\tpygeodesy.vector3dBase.Vector3dBase-class.html#_ll\npygeodesy.vector3dBase.Vector3dBase.isequalTo\tpygeodesy.vector3dBase.Vector3dBase-class.html#isequalTo\npygeodesy.vector3dBase.Vector3dBase.__ne__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__ne__\npygeodesy.vector3dBase.Vector3dBase.__ifloordiv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__ifloordiv__\npygeodesy.vector3dBase.Vector3dBase.dividedBy_\tpygeodesy.vector3dBase.Vector3dBase-class.html#dividedBy_\npygeodesy.vector3dBase.Vector3dBase.equals\tpygeodesy.vector3dBase.Vector3dBase-class.html#equals\npygeodesy.vector3dBase.Vector3dBase.times_\tpygeodesy.vector3dBase.Vector3dBase-class.html#times_\npygeodesy.nvectorBase.NvectorBase.sphericalNvector\tpygeodesy.nvectorBase.NvectorBase-class.html#sphericalNvector\npygeodesy.vector3d.Vector3d.circin6\tpygeodesy.vector3d.Vector3d-class.html#circin6\npygeodesy.vector3d.Vector3d.nearestOn6\tpygeodesy.vector3d.Vector3d-class.html#nearestOn6\npygeodesy.vector3dBase.Vector3dBase.__rmatmul__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rmatmul__\npygeodesy.nvectorBase.NvectorBase.toVector3d\tpygeodesy.nvectorBase.NvectorBase-class.html#toVector3d\npygeodesy.vector3dBase.Vector3dBase.floats\tpygeodesy.vector3dBase.Vector3dBase-class.html#floats\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.vector3d.Vector3d.meeus2\tpygeodesy.vector3d.Vector3d-class.html#meeus2\npygeodesy.vector3dBase.Vector3dBase.__imul__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__imul__\npygeodesy.vector3dBase.Vector3dBase.__trunc__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__trunc__\npygeodesy.vector3dBase.Vector3dBase.times\tpygeodesy.vector3dBase.Vector3dBase-class.html#times\npygeodesy.vector3dBase.Vector3dBase.length\tpygeodesy.vector3dBase.Vector3dBase-class.html#length\npygeodesy.vector3dBase.Vector3dBase.plus\tpygeodesy.vector3dBase.Vector3dBase-class.html#plus\npygeodesy.vector3dBase.Vector3dBase.__mul__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__mul__\npygeodesy.vector3dBase.Vector3dBase.__matmul__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__matmul__\npygeodesy.vector3dBase.Vector3dBase.__divmod__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__divmod__\npygeodesy.named._NamedBase.toRepr\tpygeodesy.named._NamedBase-class.html#toRepr\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.vector3dBase.Vector3dBase.length2\tpygeodesy.vector3dBase.Vector3dBase-class.html#length2\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.vector3dBase.Vector3dBase.pow\tpygeodesy.vector3dBase.Vector3dBase-class.html#pow\npygeodesy.vector3dBase.Vector3dBase.xyz\tpygeodesy.vector3dBase.Vector3dBase-class.html#xyz\npygeodesy.vector3dBase.Vector3dBase.others\tpygeodesy.vector3dBase.Vector3dBase-class.html#others\npygeodesy.nvectorBase.NvectorBase.isEllipsoidal\tpygeodesy.nvectorBase.NvectorBase-class.html#isEllipsoidal\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.vector3dBase.Vector3dBase.__rsub__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rsub__\npygeodesy.vector3dBase.Vector3dBase.ints\tpygeodesy.vector3dBase.Vector3dBase-class.html#ints\npygeodesy.vector3dBase.Vector3dBase.negate\tpygeodesy.vector3dBase.Vector3dBase-class.html#negate\npygeodesy.vector3dBase.Vector3dBase.apply\tpygeodesy.vector3dBase.Vector3dBase-class.html#apply\npygeodesy.vector3dBase.Vector3dBase.equirectangular\tpygeodesy.vector3dBase.Vector3dBase-class.html#equirectangular\npygeodesy.ellipsoidalNvector.Nvector.unit\tpygeodesy.ellipsoidalNvector.Nvector-class.html#unit\npygeodesy.vector3dBase.Vector3dBase.__float__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__float__\npygeodesy.vector3dBase.Vector3dBase.__rpow__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rpow__\npygeodesy.vector3d.Vector3d.soddy4\tpygeodesy.vector3d.Vector3d-class.html#soddy4\npygeodesy.vector3dBase.Vector3dBase._N_vector\tpygeodesy.vector3dBase.Vector3dBase-class.html#_N_vector\npygeodesy.nvectorBase.NvectorBase.lon\tpygeodesy.nvectorBase.NvectorBase-class.html#lon\npygeodesy.vector3d.Vector3d.iscolinearWith\tpygeodesy.vector3d.Vector3d-class.html#iscolinearWith\npygeodesy.nvectorBase.NvectorBase.xyzh\tpygeodesy.nvectorBase.NvectorBase-class.html#xyzh\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.vector3dBase.Vector3dBase.__itruediv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__itruediv__\npygeodesy.vector3dBase.Vector3dBase.dividedBy\tpygeodesy.vector3dBase.Vector3dBase-class.html#dividedBy\npygeodesy.nvectorBase.NvectorBase.Ecef\tpygeodesy.nvectorBase.NvectorBase-class.html#Ecef\npygeodesy.vector3dBase.Vector3dBase.__rdivmod__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rdivmod__\npygeodesy.nvectorBase.NvectorBase._toEcefDrv3\tpygeodesy.nvectorBase.NvectorBase-class.html#_toEcefDrv3\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.vector3d.Vector3d.circum3\tpygeodesy.vector3d.Vector3d-class.html#circum3\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.vector3dBase.Vector3dBase.__eq__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__eq__\npygeodesy.vector3dBase.Vector3dBase.__round__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__round__\npygeodesy.vector3dBase.Vector3dBase.bools\tpygeodesy.vector3dBase.Vector3dBase-class.html#bools\npygeodesy.nvectorBase.NvectorBase.latlonheight\tpygeodesy.nvectorBase.NvectorBase-class.html#latlonheight\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.vector3dBase.Vector3dBase.xyz3\tpygeodesy.vector3dBase.Vector3dBase-class.html#xyz3\npygeodesy.vector3dBase.Vector3dBase.__iadd__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__iadd__\npygeodesy.vector3d.Vector3d.circum4_\tpygeodesy.vector3d.Vector3d-class.html#circum4_\npygeodesy.nvectorBase.NvectorBase.latlonheightdatum\tpygeodesy.nvectorBase.NvectorBase-class.html#latlonheightdatum\npygeodesy.vector3dBase.Vector3dBase.__le__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__le__\npygeodesy.vector3dBase.Vector3dBase.__floordiv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__floordiv__\npygeodesy.vector3dBase.Vector3dBase.__hash__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__hash__\npygeodesy.vector3dBase.Vector3dBase.__sub__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__sub__\npygeodesy.vector3dBase.Vector3dBase.z\tpygeodesy.vector3dBase.Vector3dBase-class.html#z\npygeodesy.vector3dBase.Vector3dBase._xyz\tpygeodesy.vector3dBase.Vector3dBase-class.html#_xyz\npygeodesy.vector3dBase.Vector3dBase.minus\tpygeodesy.vector3dBase.Vector3dBase-class.html#minus\npygeodesy.vector3dBase.Vector3dBase.__ge__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__ge__\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.vector3d.Vector3d.bearing\tpygeodesy.vector3d.Vector3d-class.html#bearing\npygeodesy.vector3dBase.Vector3dBase.__rtruediv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rtruediv__\npygeodesy.vector3dBase.Vector3dBase.floorDividedBy_\tpygeodesy.vector3dBase.Vector3dBase-class.html#floorDividedBy_\npygeodesy.vector3dBase.Vector3dBase.__isub__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__isub__\npygeodesy.vector3dBase.Vector3dBase.x2y2z2\tpygeodesy.vector3dBase.Vector3dBase-class.html#x2y2z2\npygeodesy.vector3dBase.Vector3dBase.__radd__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__radd__\npygeodesy.vector3d.Vector3d.parse\tpygeodesy.vector3d.Vector3d-class.html#parse\npygeodesy.vector3dBase.Vector3dBase.floorDividedBy\tpygeodesy.vector3dBase.Vector3dBase-class.html#floorDividedBy\npygeodesy.vector3dBase.Vector3dBase.__floor__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__floor__\npygeodesy.nvectorBase.NvectorBase.isSpherical\tpygeodesy.nvectorBase.NvectorBase-class.html#isSpherical\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.ellipsoidalNvector.Nvector.__init__\tpygeodesy.ellipsoidalNvector.Nvector-class.html#__init__\npygeodesy.vector3dBase.Vector3dBase.__imod__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__imod__\npygeodesy.vector3dBase.Vector3dBase.fabs\tpygeodesy.vector3dBase.Vector3dBase-class.html#fabs\npygeodesy.vector3dBase.Vector3dBase._times\tpygeodesy.vector3dBase.Vector3dBase-class.html#_times\npygeodesy.vector3d.Vector3d.radii11\tpygeodesy.vector3d.Vector3d-class.html#radii11\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.vector3dBase.Vector3dBase.cross\tpygeodesy.vector3dBase.Vector3dBase-class.html#cross\npygeodesy.nvectorBase.NvectorBase.philamheight\tpygeodesy.nvectorBase.NvectorBase-class.html#philamheight\npygeodesy.vector3dBase.Vector3dBase.__pos__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__pos__\npygeodesy.nvectorBase.NvectorBase.H\tpygeodesy.nvectorBase.NvectorBase-class.html#H\npygeodesy.vector3dBase.Vector3dBase.__abs__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__abs__\npygeodesy.ellipsoidalNvector.Nvector._datum\tpygeodesy.ellipsoidalNvector.Nvector-class.html#_datum\npygeodesy.named._NamedBase.__repr__\tpygeodesy.named._NamedBase-class.html#__repr__\npygeodesy.nvectorBase.NvectorBase.lam\tpygeodesy.nvectorBase.NvectorBase-class.html#lam\npygeodesy.nvectorBase.NvectorBase.phi\tpygeodesy.nvectorBase.NvectorBase-class.html#phi\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.vector3dBase.Vector3dBase.__idiv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__idiv__\npygeodesy.nvectorBase.NvectorBase.to4xyzh\tpygeodesy.nvectorBase.NvectorBase-class.html#to4xyzh\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.vector3dBase.Vector3dBase._fromll\tpygeodesy.vector3dBase.Vector3dBase-class.html#_fromll\npygeodesy.vector3dBase.Vector3dBase.__add__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__add__\npygeodesy.nvectorBase.NvectorBase.lat\tpygeodesy.nvectorBase.NvectorBase-class.html#lat\npygeodesy.vector3dBase.Vector3dBase.intermediateTo\tpygeodesy.vector3dBase.Vector3dBase-class.html#intermediateTo\npygeodesy.nvectorBase.NvectorBase.hStr\tpygeodesy.nvectorBase.NvectorBase-class.html#hStr\npygeodesy.nvectorBase.NvectorBase.to2ll\tpygeodesy.nvectorBase.NvectorBase-class.html#to2ll\npygeodesy.vector3dBase.Vector3dBase.isconjugateTo\tpygeodesy.vector3dBase.Vector3dBase-class.html#isconjugateTo\npygeodesy.vector3dBase.Vector3dBase.__ipow__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__ipow__\npygeodesy.vector3dBase.Vector3dBase.__div__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__div__\npygeodesy.vector3dBase.Vector3dBase.__ceil__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__ceil__\npygeodesy.vector3dBase.Vector3dBase.__neg__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__neg__\npygeodesy.vector3dBase.Vector3dBase.y\tpygeodesy.vector3dBase.Vector3dBase-class.html#y\npygeodesy.vector3dBase.Vector3dBase.dot\tpygeodesy.vector3dBase.Vector3dBase-class.html#dot\npygeodesy.ellipsoidalVincenty.Cartesian\tpygeodesy.ellipsoidalVincenty.Cartesian-class.html\npygeodesy.vector3d.Vector3d.toCartesian\tpygeodesy.vector3d.Vector3d-class.html#toCartesian\npygeodesy.vector3dBase.Vector3dBase.__int__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__int__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.cartesianBase.CartesianBase.tienstra7\tpygeodesy.cartesianBase.CartesianBase-class.html#tienstra7\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedBase.__str__\tpygeodesy.named._NamedBase-class.html#__str__\npygeodesy.cartesianBase.CartesianBase.datum\tpygeodesy.cartesianBase.CartesianBase-class.html#datum\npygeodesy.vector3dBase.Vector3dBase.__imatmul__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__imatmul__\npygeodesy.ellipsoidalVincenty.Cartesian.toLatLon\tpygeodesy.ellipsoidalVincenty.Cartesian-class.html#toLatLon\npygeodesy.vector3dBase.Vector3dBase.times_\tpygeodesy.vector3dBase.Vector3dBase-class.html#times_\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.vector3dBase.Vector3dBase.__rdiv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rdiv__\npygeodesy.vector3dBase.Vector3dBase.__rmul__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rmul__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.vector3dBase.Vector3dBase.__lt__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__lt__\npygeodesy.cartesianBase.CartesianBase.philamheightdatum\tpygeodesy.cartesianBase.CartesianBase-class.html#philamheightdatum\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.cartesianBase.CartesianBase.to3llh\tpygeodesy.cartesianBase.CartesianBase-class.html#to3llh\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.ellipsoidalBase.CartesianEllipsoidalBase.toTransforms_\tpygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#toTransforms_\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.vector3dBase.Vector3dBase.__cmp__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__cmp__\npygeodesy.vector3d.Vector3d.nearestOn\tpygeodesy.vector3d.Vector3d-class.html#nearestOn\npygeodesy.vector3dBase.Vector3dBase.minus_\tpygeodesy.vector3dBase.Vector3dBase-class.html#minus_\npygeodesy.vector3dBase.Vector3dBase.__rfloordiv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rfloordiv__\npygeodesy.cartesianBase.CartesianBase.tienstra\tpygeodesy.cartesianBase.CartesianBase-class.html#tienstra\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.cartesianBase.CartesianBase._ecef9\tpygeodesy.cartesianBase.CartesianBase-class.html#_ecef9\npygeodesy.vector3dBase.Vector3dBase.rotateAround\tpygeodesy.vector3dBase.Vector3dBase-class.html#rotateAround\npygeodesy.cartesianBase.CartesianBase.pierlotx\tpygeodesy.cartesianBase.CartesianBase-class.html#pierlotx\npygeodesy.cartesianBase.CartesianBase.toStr\tpygeodesy.cartesianBase.CartesianBase-class.html#toStr\npygeodesy.vector3dBase.Vector3dBase._roty\tpygeodesy.vector3dBase.Vector3dBase-class.html#_roty\npygeodesy.vector3dBase.Vector3dBase.angleTo\tpygeodesy.vector3dBase.Vector3dBase-class.html#angleTo\npygeodesy.cartesianBase.CartesianBase.toTransform\tpygeodesy.cartesianBase.CartesianBase-class.html#toTransform\npygeodesy.ecefLocals._EcefLocal.toXyz\tpygeodesy.ecefLocals._EcefLocal-class.html#toXyz\npygeodesy.vector3dBase.Vector3dBase.__pow__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__pow__\npygeodesy.vector3dBase.Vector3dBase.__gt__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__gt__\npygeodesy.vector3dBase.Vector3dBase.__bool__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__bool__\npygeodesy.vector3dBase.Vector3dBase.x2y2z23\tpygeodesy.vector3dBase.Vector3dBase-class.html#x2y2z23\npygeodesy.cartesianBase.CartesianBase.toEcef\tpygeodesy.cartesianBase.CartesianBase-class.html#toEcef\npygeodesy.vector3dBase.Vector3dBase.rotate\tpygeodesy.vector3dBase.Vector3dBase-class.html#rotate\npygeodesy.vector3dBase.Vector3dBase.__nonzero__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__nonzero__\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.vector3dBase.Vector3dBase._ll\tpygeodesy.vector3dBase.Vector3dBase-class.html#_ll\npygeodesy.vector3dBase.Vector3dBase._plus\tpygeodesy.vector3dBase.Vector3dBase-class.html#_plus\npygeodesy.vector3dBase.Vector3dBase.__mod__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__mod__\npygeodesy.vector3dBase.Vector3dBase.to3xyz\tpygeodesy.vector3dBase.Vector3dBase-class.html#to3xyz\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.ellipsoidalBase.CartesianEllipsoidalBase.reframe\tpygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#reframe\npygeodesy.vector3dBase.Vector3dBase.__long__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__long__\npygeodesy.vector3dBase.Vector3dBase.cmp\tpygeodesy.vector3dBase.Vector3dBase-class.html#cmp\npygeodesy.vector3dBase.Vector3dBase.homogeneous\tpygeodesy.vector3dBase.Vector3dBase-class.html#homogeneous\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.vector3dBase.Vector3dBase.plus_\tpygeodesy.vector3dBase.Vector3dBase-class.html#plus_\npygeodesy.cartesianBase.CartesianBase.sphericalCartesian\tpygeodesy.cartesianBase.CartesianBase-class.html#sphericalCartesian\npygeodesy.cartesianBase.CartesianBase.Roc2\tpygeodesy.cartesianBase.CartesianBase-class.html#Roc2\npygeodesy.cartesianBase.CartesianBase.toDatum\tpygeodesy.cartesianBase.CartesianBase-class.html#toDatum\npygeodesy.vector3dBase.Vector3dBase.__truediv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__truediv__\npygeodesy.ecefLocals._EcefLocal.toLtp\tpygeodesy.ecefLocals._EcefLocal-class.html#toLtp\npygeodesy.vector3d.Vector3d.trilaterate2d2\tpygeodesy.vector3d.Vector3d-class.html#trilaterate2d2\npygeodesy.vector3dBase.Vector3dBase.__matmul__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__matmul__\npygeodesy.vector3dBase.Vector3dBase.euclid\tpygeodesy.vector3dBase.Vector3dBase-class.html#euclid\npygeodesy.vector3dBase.Vector3dBase._minus\tpygeodesy.vector3dBase.Vector3dBase-class.html#_minus\npygeodesy.vector3d.Vector3d.trilaterate3d2\tpygeodesy.vector3d.Vector3d-class.html#trilaterate3d2\npygeodesy.vector3dBase.Vector3dBase.__rmod__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rmod__\npygeodesy.ecefLocals._EcefLocal._ecef9datum\tpygeodesy.ecefLocals._EcefLocal-class.html#_ecef9datum\npygeodesy.cartesianBase.CartesianBase.latlon\tpygeodesy.cartesianBase.CartesianBase-class.html#latlon\npygeodesy.cartesianBase.CartesianBase.hartzell\tpygeodesy.cartesianBase.CartesianBase-class.html#hartzell\npygeodesy.vector3dBase.Vector3dBase._crosserrors\tpygeodesy.vector3dBase.Vector3dBase-class.html#_crosserrors\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.vector3dBase.Vector3dBase._mapped\tpygeodesy.vector3dBase.Vector3dBase-class.html#_mapped\npygeodesy.vector3dBase.Vector3dBase.sum\tpygeodesy.vector3dBase.Vector3dBase-class.html#sum\npygeodesy.cartesianBase.CartesianBase.philam\tpygeodesy.cartesianBase.CartesianBase-class.html#philam\npygeodesy.ecefLocals._EcefLocal.toAer\tpygeodesy.ecefLocals._EcefLocal-class.html#toAer\npygeodesy.cartesianBase.CartesianBase.collins\tpygeodesy.cartesianBase.CartesianBase-class.html#collins\npygeodesy.vector3dBase.Vector3dBase._other_cmp\tpygeodesy.vector3dBase.Vector3dBase-class.html#_other_cmp\npygeodesy.vector3dBase.Vector3dBase.isequalTo\tpygeodesy.vector3dBase.Vector3dBase-class.html#isequalTo\npygeodesy.vector3dBase.Vector3dBase.__ne__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__ne__\npygeodesy.cartesianBase.CartesianBase._height2C\tpygeodesy.cartesianBase.CartesianBase-class.html#_height2C\npygeodesy.vector3dBase.Vector3dBase.__ifloordiv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__ifloordiv__\npygeodesy.vector3dBase.Vector3dBase.dividedBy_\tpygeodesy.vector3dBase.Vector3dBase-class.html#dividedBy_\npygeodesy.vector3dBase.Vector3dBase.equals\tpygeodesy.vector3dBase.Vector3dBase-class.html#equals\npygeodesy.cartesianBase.CartesianBase._n_xyzh4\tpygeodesy.cartesianBase.CartesianBase-class.html#_n_xyzh4\npygeodesy.vector3d.Vector3d.circin6\tpygeodesy.vector3d.Vector3d-class.html#circin6\npygeodesy.cartesianBase.CartesianBase._height4\tpygeodesy.cartesianBase.CartesianBase-class.html#_height4\npygeodesy.vector3d.Vector3d.nearestOn6\tpygeodesy.vector3d.Vector3d-class.html#nearestOn6\npygeodesy.vector3dBase.Vector3dBase.__rmatmul__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rmatmul__\npygeodesy.ellipsoidalBase.CartesianEllipsoidalBase._reframe\tpygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#_reframe\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.vector3d.Vector3d.meeus2\tpygeodesy.vector3d.Vector3d-class.html#meeus2\npygeodesy.vector3dBase.Vector3dBase.__imul__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__imul__\npygeodesy.vector3dBase.Vector3dBase.__trunc__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__trunc__\npygeodesy.vector3dBase.Vector3dBase.times\tpygeodesy.vector3dBase.Vector3dBase-class.html#times\npygeodesy.vector3dBase.Vector3dBase.length\tpygeodesy.vector3dBase.Vector3dBase-class.html#length\npygeodesy.vector3dBase.Vector3dBase.plus\tpygeodesy.vector3dBase.Vector3dBase-class.html#plus\npygeodesy.vector3dBase.Vector3dBase.__mul__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__mul__\npygeodesy.cartesianBase.CartesianBase.convertDatum\tpygeodesy.cartesianBase.CartesianBase-class.html#convertDatum\npygeodesy.vector3dBase.Vector3dBase.__divmod__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__divmod__\npygeodesy.named._NamedBase.toRepr\tpygeodesy.named._NamedBase-class.html#toRepr\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.ellipsoidalBase.CartesianEllipsoidalBase.ellipsoidalCartesian\tpygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#ellipsoidalCartesian\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.vector3dBase.Vector3dBase.pow\tpygeodesy.vector3dBase.Vector3dBase-class.html#pow\npygeodesy.vector3dBase.Vector3dBase.xyz\tpygeodesy.vector3dBase.Vector3dBase-class.html#xyz\npygeodesy.vector3dBase.Vector3dBase.others\tpygeodesy.vector3dBase.Vector3dBase-class.html#others\npygeodesy.cartesianBase.CartesianBase.isEllipsoidal\tpygeodesy.cartesianBase.CartesianBase-class.html#isEllipsoidal\npygeodesy.cartesianBase.CartesianBase.height\tpygeodesy.cartesianBase.CartesianBase-class.html#height\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.vector3dBase.Vector3dBase.__rsub__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rsub__\npygeodesy.vector3dBase.Vector3dBase.ints\tpygeodesy.vector3dBase.Vector3dBase-class.html#ints\npygeodesy.cartesianBase.CartesianBase.cassini\tpygeodesy.cartesianBase.CartesianBase-class.html#cassini\npygeodesy.vector3dBase.Vector3dBase.negate\tpygeodesy.vector3dBase.Vector3dBase-class.html#negate\npygeodesy.vector3dBase.Vector3dBase.apply\tpygeodesy.vector3dBase.Vector3dBase-class.html#apply\npygeodesy.vector3dBase.Vector3dBase.equirectangular\tpygeodesy.vector3dBase.Vector3dBase-class.html#equirectangular\npygeodesy.vector3dBase.Vector3dBase.intermediateTo\tpygeodesy.vector3dBase.Vector3dBase-class.html#intermediateTo\npygeodesy.vector3dBase.Vector3dBase.unit\tpygeodesy.vector3dBase.Vector3dBase-class.html#unit\npygeodesy.vector3dBase.Vector3dBase.__float__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__float__\npygeodesy.vector3dBase.Vector3dBase.__rpow__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rpow__\npygeodesy.ellipsoidalBase.CartesianEllipsoidalBase.convertRefFrame\tpygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#convertRefFrame\npygeodesy.vector3d.Vector3d.soddy4\tpygeodesy.vector3d.Vector3d-class.html#soddy4\npygeodesy.ecefLocals._EcefLocal.toNed\tpygeodesy.ecefLocals._EcefLocal-class.html#toNed\npygeodesy.cartesianBase.CartesianBase._N_vector\tpygeodesy.cartesianBase.CartesianBase-class.html#_N_vector\npygeodesy.vector3d.Vector3d.iscolinearWith\tpygeodesy.vector3d.Vector3d-class.html#iscolinearWith\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.vector3dBase.Vector3dBase.floats\tpygeodesy.vector3dBase.Vector3dBase-class.html#floats\npygeodesy.vector3dBase.Vector3dBase.__itruediv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__itruediv__\npygeodesy.vector3dBase.Vector3dBase.dividedBy\tpygeodesy.vector3dBase.Vector3dBase-class.html#dividedBy\npygeodesy.ellipsoidalVincenty.Cartesian.Ecef\tpygeodesy.ellipsoidalVincenty.Cartesian-class.html#Ecef\npygeodesy.vector3dBase.Vector3dBase.__rdivmod__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rdivmod__\npygeodesy.vector3dBase.Vector3dBase.crosserrors\tpygeodesy.vector3dBase.Vector3dBase-class.html#crosserrors\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.vector3d.Vector3d.circum3\tpygeodesy.vector3d.Vector3d-class.html#circum3\npygeodesy.cartesianBase.CartesianBase.toNvector\tpygeodesy.cartesianBase.CartesianBase-class.html#toNvector\npygeodesy.vector3dBase.Vector3dBase.__eq__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__eq__\npygeodesy.ecefLocals._EcefLocal.toEnu\tpygeodesy.ecefLocals._EcefLocal-class.html#toEnu\npygeodesy.vector3dBase.Vector3dBase.__round__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__round__\npygeodesy.vector3dBase.Vector3dBase.bools\tpygeodesy.vector3dBase.Vector3dBase-class.html#bools\npygeodesy.cartesianBase.CartesianBase.latlonheight\tpygeodesy.cartesianBase.CartesianBase-class.html#latlonheight\npygeodesy.cartesianBase.CartesianBase.height4\tpygeodesy.cartesianBase.CartesianBase-class.html#height4\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.vector3dBase.Vector3dBase.xyz3\tpygeodesy.vector3dBase.Vector3dBase-class.html#xyz3\npygeodesy.ecefLocals._EcefLocal._ltp_ecef2local\tpygeodesy.ecefLocals._EcefLocal-class.html#_ltp_ecef2local\npygeodesy.vector3dBase.Vector3dBase.__iadd__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__iadd__\npygeodesy.cartesianBase.CartesianBase.height3\tpygeodesy.cartesianBase.CartesianBase-class.html#height3\npygeodesy.vector3d.Vector3d.circum4_\tpygeodesy.vector3d.Vector3d-class.html#circum4_\npygeodesy.cartesianBase.CartesianBase.latlonheightdatum\tpygeodesy.cartesianBase.CartesianBase-class.html#latlonheightdatum\npygeodesy.vector3dBase.Vector3dBase.__le__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__le__\npygeodesy.vector3dBase.Vector3dBase.__floordiv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__floordiv__\npygeodesy.vector3dBase.Vector3dBase.__hash__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__hash__\npygeodesy.vector3dBase.Vector3dBase.__sub__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__sub__\npygeodesy.vector3dBase.Vector3dBase.z\tpygeodesy.vector3dBase.Vector3dBase-class.html#z\npygeodesy.vector3dBase.Vector3dBase._xyz\tpygeodesy.vector3dBase.Vector3dBase-class.html#_xyz\npygeodesy.vector3dBase.Vector3dBase.minus\tpygeodesy.vector3dBase.Vector3dBase-class.html#minus\npygeodesy.vector3dBase.Vector3dBase.__ge__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__ge__\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.vector3d.Vector3d.bearing\tpygeodesy.vector3d.Vector3d-class.html#bearing\npygeodesy.vector3dBase.Vector3dBase.__rtruediv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rtruediv__\npygeodesy.vector3dBase.Vector3dBase.floorDividedBy_\tpygeodesy.vector3dBase.Vector3dBase-class.html#floorDividedBy_\npygeodesy.cartesianBase.CartesianBase.collins5\tpygeodesy.cartesianBase.CartesianBase-class.html#collins5\npygeodesy.vector3dBase.Vector3dBase.x2y2z2\tpygeodesy.vector3dBase.Vector3dBase-class.html#x2y2z2\npygeodesy.cartesianBase.CartesianBase.toRtp\tpygeodesy.cartesianBase.CartesianBase-class.html#toRtp\npygeodesy.ellipsoidalBase.CartesianEllipsoidalBase.toRefFrame\tpygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#toRefFrame\npygeodesy.vector3d.Vector3d.parse\tpygeodesy.vector3d.Vector3d-class.html#parse\npygeodesy.vector3dBase.Vector3dBase.floorDividedBy\tpygeodesy.vector3dBase.Vector3dBase-class.html#floorDividedBy\npygeodesy.vector3dBase.Vector3dBase.__floor__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__floor__\npygeodesy.cartesianBase.CartesianBase.isSpherical\tpygeodesy.cartesianBase.CartesianBase-class.html#isSpherical\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.ellipsoidalBase.CartesianEllipsoidalBase.__init__\tpygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#__init__\npygeodesy.vector3dBase.Vector3dBase.__imod__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__imod__\npygeodesy.vector3dBase.Vector3dBase.fabs\tpygeodesy.vector3dBase.Vector3dBase-class.html#fabs\npygeodesy.vector3dBase.Vector3dBase._times\tpygeodesy.vector3dBase.Vector3dBase-class.html#_times\npygeodesy.vector3d.Vector3d.radii11\tpygeodesy.vector3d.Vector3d-class.html#radii11\npygeodesy.cartesianBase.CartesianBase.to2ab\tpygeodesy.cartesianBase.CartesianBase-class.html#to2ab\npygeodesy.ellipsoidalBase.CartesianEllipsoidalBase._epoch\tpygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#_epoch\npygeodesy.vector3dBase.Vector3dBase.cross\tpygeodesy.vector3dBase.Vector3dBase-class.html#cross\npygeodesy.cartesianBase.CartesianBase.philamheight\tpygeodesy.cartesianBase.CartesianBase-class.html#philamheight\npygeodesy.vector3dBase.Vector3dBase.__pos__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__pos__\npygeodesy.ellipsoidalBase.CartesianEllipsoidalBase.epoch\tpygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#epoch\npygeodesy.ellipsoidalBase.CartesianEllipsoidalBase.intersections2\tpygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#intersections2\npygeodesy.vector3dBase.Vector3dBase.__abs__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__abs__\npygeodesy.ellipsoidalBase.CartesianEllipsoidalBase._datum\tpygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#_datum\npygeodesy.named._NamedBase.__repr__\tpygeodesy.named._NamedBase-class.html#__repr__\npygeodesy.ecefLocals._EcefLocal._ltp\tpygeodesy.ecefLocals._EcefLocal-class.html#_ltp\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.cartesianBase.CartesianBase.destinationXyz\tpygeodesy.cartesianBase.CartesianBase-class.html#destinationXyz\npygeodesy.cartesianBase.CartesianBase._height\tpygeodesy.cartesianBase.CartesianBase-class.html#_height\npygeodesy.vector3dBase.Vector3dBase.__idiv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__idiv__\npygeodesy.vector3dBase.Vector3dBase._united\tpygeodesy.vector3dBase.Vector3dBase-class.html#_united\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.vector3dBase.Vector3dBase._fromll\tpygeodesy.vector3dBase.Vector3dBase-class.html#_fromll\npygeodesy.vector3dBase.Vector3dBase.__add__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__add__\npygeodesy.vector3dBase.Vector3dBase.x\tpygeodesy.vector3dBase.Vector3dBase-class.html#x\npygeodesy.cartesianBase.CartesianBase.toVector\tpygeodesy.cartesianBase.CartesianBase-class.html#toVector\npygeodesy.cartesianBase.CartesianBase.pierlot\tpygeodesy.cartesianBase.CartesianBase-class.html#pierlot\npygeodesy.vector3dBase.Vector3dBase.__isub__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__isub__\npygeodesy.ecefLocals._EcefLocal.toLocal\tpygeodesy.ecefLocals._EcefLocal-class.html#toLocal\npygeodesy.vector3dBase.Vector3dBase.__radd__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__radd__\npygeodesy.vector3dBase.Vector3dBase.length2\tpygeodesy.vector3dBase.Vector3dBase-class.html#length2\npygeodesy.cartesianBase.CartesianBase.to2ll\tpygeodesy.cartesianBase.CartesianBase-class.html#to2ll\npygeodesy.vector3dBase.Vector3dBase.isconjugateTo\tpygeodesy.vector3dBase.Vector3dBase-class.html#isconjugateTo\npygeodesy.vector3dBase.Vector3dBase.__ipow__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__ipow__\npygeodesy.vector3dBase.Vector3dBase.__div__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__div__\npygeodesy.vector3dBase.Vector3dBase.__ceil__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__ceil__\npygeodesy.vector3dBase.Vector3dBase.__neg__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__neg__\npygeodesy.vector3dBase.Vector3dBase.y\tpygeodesy.vector3dBase.Vector3dBase-class.html#y\npygeodesy.vector3dBase.Vector3dBase.dot\tpygeodesy.vector3dBase.Vector3dBase-class.html#dot\npygeodesy.ellipsoidalVincenty.LatLon\tpygeodesy.ellipsoidalVincenty.LatLon-class.html\npygeodesy.ellipsoidalVincenty.LatLon.toCartesian\tpygeodesy.ellipsoidalVincenty.LatLon-class.html#toCartesian\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.toCss\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toCss\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.isenclosedBy\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#isenclosedBy\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.toEtm\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toEtm\npygeodesy.latlonBase.LatLonBase.__str__\tpygeodesy.latlonBase.LatLonBase-class.html#__str__\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.datum\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#datum\npygeodesy.latlonBase.LatLonBase.philam2\tpygeodesy.latlonBase.LatLonBase-class.html#philam2\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.ellipsoidalVincenty.LatLon._iterations\tpygeodesy.ellipsoidalVincenty.LatLon-class.html#_iterations\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.elevation2\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#elevation2\npygeodesy.latlonBase.LatLonBase.to3llh\tpygeodesy.latlonBase.LatLonBase-class.html#to3llh\npygeodesy.latlonBase.LatLonBase.isnormal\tpygeodesy.latlonBase.LatLonBase-class.html#isnormal\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.ellipsoid\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#ellipsoid\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase._upsOK\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#_upsOK\npygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI.distanceTo\tpygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#distanceTo\npygeodesy.latlonBase.LatLonBase.circum3\tpygeodesy.latlonBase.LatLonBase-class.html#circum3\npygeodesy.latlonBase.LatLonBase.flatLocalTo\tpygeodesy.latlonBase.LatLonBase-class.html#flatLocalTo\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.geoidHeight2\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#geoidHeight2\npygeodesy.latlonBase.LatLonBase._distanceTo\tpygeodesy.latlonBase.LatLonBase-class.html#_distanceTo\npygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI.finalBearingOn\tpygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#finalBearingOn\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.convertRefFrame\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#convertRefFrame\npygeodesy.ellipsoidalVincenty.LatLon.bearingTo\tpygeodesy.ellipsoidalVincenty.LatLon-class.html#bearingTo\npygeodesy.latlonBase.LatLonBase._lon\tpygeodesy.latlonBase.LatLonBase-class.html#_lon\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.latlonBase.LatLonBase.isantipode\tpygeodesy.latlonBase.LatLonBase-class.html#isantipode\npygeodesy.latlonBase.LatLonBase._ecef9\tpygeodesy.latlonBase.LatLonBase-class.html#_ecef9\npygeodesy.latlonBase.LatLonBase._rhumb3dict\tpygeodesy.latlonBase.LatLonBase-class.html#_rhumb3dict\npygeodesy.latlonBase.LatLonBase.to2ab\tpygeodesy.latlonBase.LatLonBase-class.html#to2ab\npygeodesy.latlonBase.LatLonBase.toStr\tpygeodesy.latlonBase.LatLonBase-class.html#toStr\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase._datum\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#_datum\npygeodesy.latlonBase.LatLonBase.PointsIter\tpygeodesy.latlonBase.LatLonBase-class.html#PointsIter\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.toTransform\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toTransform\npygeodesy.latlonBase.LatLonBase.isEllipsoidal\tpygeodesy.latlonBase.LatLonBase-class.html#isEllipsoidal\npygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI._Direct2Tuple\tpygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#_Direct2Tuple\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.antipode\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#antipode\npygeodesy.latlonBase.LatLonBase._n_xyz3\tpygeodesy.latlonBase.LatLonBase-class.html#_n_xyz3\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.toUtmUps\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toUtmUps\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase._geoidHeight2to\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#_geoidHeight2to\npygeodesy.latlonBase.LatLonBase.toEcef\tpygeodesy.latlonBase.LatLonBase-class.html#toEcef\npygeodesy.latlonBase.LatLonBase.cosineLawTo\tpygeodesy.latlonBase.LatLonBase-class.html#cosineLawTo\npygeodesy.latlonBase.LatLonBase.lam\tpygeodesy.latlonBase.LatLonBase-class.html#lam\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.triangulate\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#triangulate\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase._ups\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#_ups\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.latlonBase.LatLonBase._Ecef_forward\tpygeodesy.latlonBase.LatLonBase-class.html#_Ecef_forward\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.reframe\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#reframe\npygeodesy.named._NamedBase.toRepr\tpygeodesy.named._NamedBase-class.html#toRepr\npygeodesy.latlonBase.LatLonBase.isantipodeTo\tpygeodesy.latlonBase.LatLonBase-class.html#isantipodeTo\npygeodesy.ellipsoidalVincenty.LatLon._no_convergence\tpygeodesy.ellipsoidalVincenty.LatLon-class.html#_no_convergence\npygeodesy.latlonBase.LatLonBase.compassAngle\tpygeodesy.latlonBase.LatLonBase-class.html#compassAngle\npygeodesy.latlonBase.LatLonBase.__ne__\tpygeodesy.latlonBase.LatLonBase-class.html#__ne__\npygeodesy.latlonBase.LatLonBase.xyz3\tpygeodesy.latlonBase.LatLonBase-class.html#xyz3\npygeodesy.latlonBase.LatLonBase.points2\tpygeodesy.latlonBase.LatLonBase-class.html#points2\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.toDatum\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toDatum\npygeodesy.ecefLocals._EcefLocal.toLtp\tpygeodesy.ecefLocals._EcefLocal-class.html#toLtp\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.toUtm\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toUtm\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.ellipsoidalVincenty.LatLon._epsilon\tpygeodesy.ellipsoidalVincenty.LatLon-class.html#_epsilon\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.ellipsoidalLatLon\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#ellipsoidalLatLon\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase._gamma\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#_gamma\npygeodesy.latlonBase.LatLonBase.hartzell\tpygeodesy.latlonBase.LatLonBase-class.html#hartzell\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.scale\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#scale\npygeodesy.latlonBase.LatLonBase.normal\tpygeodesy.latlonBase.LatLonBase-class.html#normal\npygeodesy.latlonBase.LatLonBase.philam\tpygeodesy.latlonBase.LatLonBase-class.html#philam\npygeodesy.ecefLocals._EcefLocal.toAer\tpygeodesy.ecefLocals._EcefLocal-class.html#toAer\npygeodesy.latlonBase.LatLonBase.isequalTo3\tpygeodesy.latlonBase.LatLonBase-class.html#isequalTo3\npygeodesy.latlonBase.LatLonBase.chordTo\tpygeodesy.latlonBase.LatLonBase-class.html#chordTo\npygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI.finalBearingTo\tpygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#finalBearingTo\npygeodesy.ellipsoidalVincenty.LatLon._Inverse\tpygeodesy.ellipsoidalVincenty.LatLon-class.html#_Inverse\npygeodesy.latlonBase.LatLonBase.toWm\tpygeodesy.latlonBase.LatLonBase-class.html#toWm\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.latlonBase.LatLonBase.sphericalLatLon\tpygeodesy.latlonBase.LatLonBase-class.html#sphericalLatLon\npygeodesy.latlonBase.LatLonBase.equals\tpygeodesy.latlonBase.LatLonBase-class.html#equals\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.latlonBase.LatLonBase.circin6\tpygeodesy.latlonBase.LatLonBase-class.html#circin6\npygeodesy.latlonBase.LatLonBase.nearestOn6\tpygeodesy.latlonBase.LatLonBase-class.html#nearestOn6\npygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI.nearestOn8\tpygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#nearestOn8\npygeodesy.ecefLocals._EcefLocal._ecef9datum\tpygeodesy.ecefLocals._EcefLocal-class.html#_ecef9datum\npygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI.distanceTo3\tpygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#distanceTo3\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.distanceTo2\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#distanceTo2\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.latlonBase.LatLonBase.toVector3d\tpygeodesy.latlonBase.LatLonBase-class.html#toVector3d\npygeodesy.ecefLocals._EcefLocal.toEnu\tpygeodesy.ecefLocals._EcefLocal-class.html#toEnu\npygeodesy.latlonBase.LatLonBase._lat\tpygeodesy.latlonBase.LatLonBase-class.html#_lat\npygeodesy.latlonBase.LatLonBase.cosineForsytheAndoyerLambertTo\tpygeodesy.latlonBase.LatLonBase-class.html#cosineForsytheAndoyerLambertTo\npygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI._g_gl_p3\tpygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#_g_gl_p3\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.latlonBase.LatLonBase.compassAngleTo\tpygeodesy.latlonBase.LatLonBase-class.html#compassAngleTo\npygeodesy.named._NamedBase.__repr__\tpygeodesy.named._NamedBase-class.html#__repr__\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase._elevation2to\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#_elevation2to\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.convertDatum\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#convertDatum\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.intersection3\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#intersection3\npygeodesy.latlonBase.LatLonBase.latlon_\tpygeodesy.latlonBase.LatLonBase-class.html#latlon_\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.gamma\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#gamma\npygeodesy.latlonBase.LatLonBase.flatPolarTo\tpygeodesy.latlonBase.LatLonBase-class.html#flatPolarTo\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.latlonBase.LatLonBase.boundsOf\tpygeodesy.latlonBase.LatLonBase-class.html#boundsOf\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase._scale\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#_scale\npygeodesy.latlonBase.LatLonBase._havg\tpygeodesy.latlonBase.LatLonBase-class.html#_havg\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase._geoidHeight2\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#_geoidHeight2\npygeodesy.latlonBase.LatLonBase.xyz\tpygeodesy.latlonBase.LatLonBase-class.html#xyz\npygeodesy.latlonBase.LatLonBase.clipid\tpygeodesy.latlonBase.LatLonBase-class.html#clipid\npygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI.geodesic\tpygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#geodesic\npygeodesy.latlonBase.LatLonBase.height\tpygeodesy.latlonBase.LatLonBase-class.html#height\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.latlonBase.LatLonBase.equals3\tpygeodesy.latlonBase.LatLonBase-class.html#equals3\npygeodesy.ellipsoidalVincenty.LatLon.iterations\tpygeodesy.ellipsoidalVincenty.LatLon-class.html#iterations\npygeodesy.latlonBase.LatLonBase.rhumbIntersecant2\tpygeodesy.latlonBase.LatLonBase-class.html#rhumbIntersecant2\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.latlonBase.LatLonBase.toVector\tpygeodesy.latlonBase.LatLonBase-class.html#toVector\npygeodesy.latlonBase.LatLonBase.rhumbDestination\tpygeodesy.latlonBase.LatLonBase-class.html#rhumbDestination\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.nearestOn\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#nearestOn\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.trilaterate5\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#trilaterate5\npygeodesy.latlonBase.LatLonBase._heigHt\tpygeodesy.latlonBase.LatLonBase-class.html#_heigHt\npygeodesy.latlonBase.LatLonBase._N_vector\tpygeodesy.latlonBase.LatLonBase-class.html#_N_vector\npygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI.destination\tpygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#destination\npygeodesy.latlonBase.LatLonBase.lon\tpygeodesy.latlonBase.LatLonBase-class.html#lon\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.midpointTo\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#midpointTo\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.toLcc\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toLcc\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.Equidistant\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#Equidistant\npygeodesy.latlonBase.LatLonBase.xyzh\tpygeodesy.latlonBase.LatLonBase-class.html#xyzh\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.ellipsoids\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#ellipsoids\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase._reframe\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#_reframe\npygeodesy.latlonBase.LatLonBase.hubenyTo\tpygeodesy.latlonBase.LatLonBase-class.html#hubenyTo\npygeodesy.latlonBase.LatLonBase.heightStr\tpygeodesy.latlonBase.LatLonBase-class.html#heightStr\npygeodesy.ellipsoidalVincenty.LatLon.Ecef\tpygeodesy.ellipsoidalVincenty.LatLon-class.html#Ecef\npygeodesy.latlonBase.LatLonBase.latlon2\tpygeodesy.latlonBase.LatLonBase-class.html#latlon2\npygeodesy.ellipsoidalVincenty.LatLon.epsilon\tpygeodesy.ellipsoidalVincenty.LatLon-class.html#epsilon\npygeodesy.ellipsoidalVincenty.LatLon._Direct\tpygeodesy.ellipsoidalVincenty.LatLon-class.html#_Direct\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase._utm\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#_utm\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase._toLLEB_args\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#_toLLEB_args\npygeodesy.ecefLocals._EcefLocal._ltp\tpygeodesy.ecefLocals._EcefLocal-class.html#_ltp\npygeodesy.latlonBase.LatLonBase._rhumb3\tpygeodesy.latlonBase.LatLonBase-class.html#_rhumb3\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.convergence\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#convergence\npygeodesy.latlonBase.LatLonBase.toNvector\tpygeodesy.latlonBase.LatLonBase-class.html#toNvector\npygeodesy.latlonBase.LatLonBase.__eq__\tpygeodesy.latlonBase.LatLonBase-class.html#__eq__\npygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI.destination2\tpygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#destination2\npygeodesy.latlonBase.LatLonBase.toNormal\tpygeodesy.latlonBase.LatLonBase-class.html#toNormal\npygeodesy.latlonBase.LatLonBase.latlonheight\tpygeodesy.latlonBase.LatLonBase-class.html#latlonheight\npygeodesy.latlonBase.LatLonBase.height4\tpygeodesy.latlonBase.LatLonBase-class.html#height4\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.iteration\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#iteration\npygeodesy.latlonBase.LatLonBase.bounds\tpygeodesy.latlonBase.LatLonBase-class.html#bounds\npygeodesy.ellipsoidalVincenty.LatLon._is_to\tpygeodesy.ellipsoidalVincenty.LatLon-class.html#_is_to\npygeodesy.latlonBase.LatLonBase.circum4_\tpygeodesy.latlonBase.LatLonBase-class.html#circum4_\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.latlonBase.LatLonBase.rhumbAzimuthTo\tpygeodesy.latlonBase.LatLonBase-class.html#rhumbAzimuthTo\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase._elevation2\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#_elevation2\npygeodesy.ecefLocals._EcefLocal.toNed\tpygeodesy.ecefLocals._EcefLocal-class.html#toNed\npygeodesy.latlonBase.LatLonBase.cosineAndoyerLambertTo\tpygeodesy.latlonBase.LatLonBase-class.html#cosineAndoyerLambertTo\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.toUps\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toUps\npygeodesy.latlonBase.LatLonBase._clipid\tpygeodesy.latlonBase.LatLonBase-class.html#_clipid\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.toRefFrame\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toRefFrame\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.parse\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#parse\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.latlonBase.LatLonBase.isSpherical\tpygeodesy.latlonBase.LatLonBase-class.html#isSpherical\npygeodesy.latlonBase.LatLonBase._wrap_name2\tpygeodesy.latlonBase.LatLonBase-class.html#_wrap_name2\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.__init__\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#__init__\npygeodesy.ecefLocals._EcefLocal.toXyz\tpygeodesy.ecefLocals._EcefLocal-class.html#toXyz\npygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI.initialBearingTo\tpygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#initialBearingTo\npygeodesy.latlonBase.LatLonBase.radii11\tpygeodesy.latlonBase.LatLonBase-class.html#radii11\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase._epoch\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#_epoch\npygeodesy.latlonBase.LatLonBase.philamheight\tpygeodesy.latlonBase.LatLonBase-class.html#philamheight\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase._utmOK\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#_utmOK\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.epoch\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#epoch\npygeodesy.latlonBase.LatLonBase.latlon2round\tpygeodesy.latlonBase.LatLonBase-class.html#latlon2round\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.intersections2\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#intersections2\npygeodesy.ecefLocals._EcefLocal._ltp_ecef2local\tpygeodesy.ecefLocals._EcefLocal-class.html#_ltp_ecef2local\npygeodesy.latlonBase.LatLonBase.vincentysTo\tpygeodesy.latlonBase.LatLonBase-class.html#vincentysTo\npygeodesy.latlonBase.LatLonBase.thomasTo\tpygeodesy.latlonBase.LatLonBase-class.html#thomasTo\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.to3xyz\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#to3xyz\npygeodesy.latlonBase.LatLonBase.rhumbMidpointTo\tpygeodesy.latlonBase.LatLonBase-class.html#rhumbMidpointTo\npygeodesy.latlonBase.LatLonBase.latlon\tpygeodesy.latlonBase.LatLonBase-class.html#latlon\npygeodesy.latlonBase.LatLonBase.phi\tpygeodesy.latlonBase.LatLonBase-class.html#phi\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.latlonBase.LatLonBase.destinationXyz\tpygeodesy.latlonBase.LatLonBase-class.html#destinationXyz\npygeodesy.latlonBase.LatLonBase._height\tpygeodesy.latlonBase.LatLonBase-class.html#_height\npygeodesy.latlonBase.LatLonBase.isequalTo\tpygeodesy.latlonBase.LatLonBase-class.html#isequalTo\npygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI.bearingTo2\tpygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#bearingTo2\npygeodesy.latlonBase.LatLonBase.euclideanTo\tpygeodesy.latlonBase.LatLonBase-class.html#euclideanTo\npygeodesy.latlonBase.LatLonBase.haversineTo\tpygeodesy.latlonBase.LatLonBase-class.html#haversineTo\npygeodesy.latlonBase.LatLonBase._intersecend2\tpygeodesy.latlonBase.LatLonBase-class.html#_intersecend2\npygeodesy.latlonBase.LatLonBase.lat\tpygeodesy.latlonBase.LatLonBase-class.html#lat\npygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI.intermediateTo\tpygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#intermediateTo\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.toMgrs\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toMgrs\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.latlonBase.LatLonBase.equirectangularTo\tpygeodesy.latlonBase.LatLonBase-class.html#equirectangularTo\npygeodesy.ecefLocals._EcefLocal.toLocal\tpygeodesy.ecefLocals._EcefLocal-class.html#toLocal\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase._toX8\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#_toX8\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase.toOsgr\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toOsgr\npygeodesy.latlonBase.LatLonBase.rhumbDistanceTo\tpygeodesy.latlonBase.LatLonBase-class.html#rhumbDistanceTo\npygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI.plumbTo\tpygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#plumbTo\npygeodesy.latlonBase.LatLonBase.rhumbLine\tpygeodesy.latlonBase.LatLonBase-class.html#rhumbLine\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase._etm\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#_etm\npygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI.intersecant2\tpygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#intersecant2\npygeodesy.latlonBase.LatLonBase.points\tpygeodesy.latlonBase.LatLonBase-class.html#points\npygeodesy.latlonBase.LatLonBase._toCartesianEcef\tpygeodesy.latlonBase.LatLonBase-class.html#_toCartesianEcef\npygeodesy.latlonBase.LatLonBase._distanceTo_\tpygeodesy.latlonBase.LatLonBase-class.html#_distanceTo_\npygeodesy.ellipsoidalBase.LatLonEllipsoidalBase._Radjust2\tpygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#_Radjust2\npygeodesy.named._NamedBase.others\tpygeodesy.named._NamedBase-class.html#others\npygeodesy.latlonBase.LatLonBase.nearestTo\tpygeodesy.latlonBase.LatLonBase-class.html#nearestTo\npygeodesy.ellipsoidalVincenty.VincentyError\tpygeodesy.ellipsoidalVincenty.VincentyError-class.html\npygeodesy.ellipsoids.Curvature2Tuple\tpygeodesy.ellipsoids.Curvature2Tuple-class.html\npygeodesy.named._NamedTuple.toRepr\tpygeodesy.named._NamedTuple-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._NamedTuple.toUnits\tpygeodesy.named._NamedTuple-class.html#toUnits\npygeodesy.named._NamedTuple._validate\tpygeodesy.named._NamedTuple-class.html#_validate\npygeodesy.named._NamedTuple.__str__\tpygeodesy.named._NamedTuple-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._NamedTuple._DOT_\tpygeodesy.named._NamedTuple-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._NamedTuple.reUnit\tpygeodesy.named._NamedTuple-class.html#reUnit\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.ellipsoids.Curvature2Tuple._Names_\tpygeodesy.ellipsoids.Curvature2Tuple-class.html#_Names_\npygeodesy.named._NamedTuple.__setattr__\tpygeodesy.named._NamedTuple-class.html#__setattr__\npygeodesy.named._NamedTuple.__new__\tpygeodesy.named._NamedTuple-class.html#__new__\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._NamedTuple._validated\tpygeodesy.named._NamedTuple-class.html#_validated\npygeodesy.named._NamedTuple.__getattr__\tpygeodesy.named._NamedTuple-class.html#__getattr__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._NamedTuple._xtend\tpygeodesy.named._NamedTuple-class.html#_xtend\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._NamedTuple.dup\tpygeodesy.named._NamedTuple-class.html#dup\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedTuple.toStr\tpygeodesy.named._NamedTuple-class.html#toStr\npygeodesy.ellipsoids.Curvature2Tuple.transverse\tpygeodesy.ellipsoids.Curvature2Tuple-class.html#transverse\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedTuple.units\tpygeodesy.named._NamedTuple-class.html#units\npygeodesy.named._NamedTuple.iterunits\tpygeodesy.named._NamedTuple-class.html#iterunits\npygeodesy.named._NamedTuple.iteritems\tpygeodesy.named._NamedTuple-class.html#iteritems\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._NamedTuple.items\tpygeodesy.named._NamedTuple-class.html#items\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedTuple.__delattr__\tpygeodesy.named._NamedTuple-class.html#__delattr__\npygeodesy.named._NamedTuple.__repr__\tpygeodesy.named._NamedTuple-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._NamedTuple.__hash__\tpygeodesy.named._NamedTuple-class.html#__hash__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.ellipsoids.Curvature2Tuple._Units_\tpygeodesy.ellipsoids.Curvature2Tuple-class.html#_Units_\npygeodesy.ellipsoids.Ellipsoid\tpygeodesy.ellipsoids.Ellipsoid-class.html\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.ellipsoids.Ellipsoid.Rr\tpygeodesy.ellipsoids.Ellipsoid-class.html#Rr\npygeodesy.ellipsoids.Ellipsoid.Rs\tpygeodesy.ellipsoids.Ellipsoid-class.html#Rs\npygeodesy.named._NamedBase.__str__\tpygeodesy.named._NamedBase-class.html#__str__\npygeodesy.ellipsoids.Ellipsoid.flattening2nd\tpygeodesy.ellipsoids.Ellipsoid-class.html#flattening2nd\npygeodesy.ellipsoids.Ellipsoid.BetaKs\tpygeodesy.ellipsoids.Ellipsoid-class.html#BetaKs\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.ellipsoids.Ellipsoid.es_taupf\tpygeodesy.ellipsoids.Ellipsoid-class.html#es_taupf\npygeodesy.ellipsoids.Ellipsoid.Rquadratic\tpygeodesy.ellipsoids.Ellipsoid-class.html#Rquadratic\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.ellipsoids.Ellipsoid._hubeny_2\tpygeodesy.ellipsoids.Ellipsoid-class.html#_hubeny_2\npygeodesy.ellipsoids.Ellipsoid.es_c\tpygeodesy.ellipsoids.Ellipsoid-class.html#es_c\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.ellipsoids.Ellipsoid.toEllipsoid2\tpygeodesy.ellipsoids.Ellipsoid-class.html#toEllipsoid2\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.ellipsoids.Ellipsoid.e12\tpygeodesy.ellipsoids.Ellipsoid-class.html#e12\npygeodesy.ellipsoids.Ellipsoid.roc2\tpygeodesy.ellipsoids.Ellipsoid-class.html#roc2\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.ellipsoids.Ellipsoid.geodesicw\tpygeodesy.ellipsoids.Ellipsoid-class.html#geodesicw\npygeodesy.ellipsoids.Ellipsoid.e2abs\tpygeodesy.ellipsoids.Ellipsoid-class.html#e2abs\npygeodesy.ellipsoids.Ellipsoid._exp_es_atanh_1\tpygeodesy.ellipsoids.Ellipsoid-class.html#_exp_es_atanh_1\npygeodesy.ellipsoids.Ellipsoid._f\tpygeodesy.ellipsoids.Ellipsoid-class.html#_f\npygeodesy.ellipsoids.Ellipsoid.eccentricity1st2\tpygeodesy.ellipsoids.Ellipsoid-class.html#eccentricity1st2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.ellipsoids.Ellipsoid._b\tpygeodesy.ellipsoids.Ellipsoid-class.html#_b\npygeodesy.ellipsoids.Ellipsoid._a\tpygeodesy.ellipsoids.Ellipsoid-class.html#_a\npygeodesy.ellipsoids.Ellipsoid.distance2\tpygeodesy.ellipsoids.Ellipsoid-class.html#distance2\npygeodesy.ellipsoids.Ellipsoid.R1\tpygeodesy.ellipsoids.Ellipsoid-class.html#R1\npygeodesy.ellipsoids.Ellipsoid.R2\tpygeodesy.ellipsoids.Ellipsoid-class.html#R2\npygeodesy.ellipsoids.Ellipsoid.R3\tpygeodesy.ellipsoids.Ellipsoid-class.html#R3\npygeodesy.ellipsoids.Ellipsoid.toStr\tpygeodesy.ellipsoids.Ellipsoid-class.html#toStr\npygeodesy.ellipsoids.Ellipsoid.R2x\tpygeodesy.ellipsoids.Ellipsoid-class.html#R2x\npygeodesy.ellipsoids.Ellipsoid.L\tpygeodesy.ellipsoids.Ellipsoid-class.html#L\npygeodesy.ellipsoids.Ellipsoid._KsOrder\tpygeodesy.ellipsoids.Ellipsoid-class.html#_KsOrder\npygeodesy.ellipsoids.Ellipsoid.rocTransverse\tpygeodesy.ellipsoids.Ellipsoid-class.html#rocTransverse\npygeodesy.ellipsoids.Ellipsoid.a_f\tpygeodesy.ellipsoids.Ellipsoid-class.html#a_f\npygeodesy.ellipsoids.Ellipsoid.flattening3rd\tpygeodesy.ellipsoids.Ellipsoid-class.html#flattening3rd\npygeodesy.ellipsoids.Ellipsoid.areax\tpygeodesy.ellipsoids.Ellipsoid-class.html#areax\npygeodesy.ellipsoids.Ellipsoid.a_b\tpygeodesy.ellipsoids.Ellipsoid-class.html#a_b\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.ellipsoids.Ellipsoid.majoradius\tpygeodesy.ellipsoids.Ellipsoid-class.html#majoradius\npygeodesy.ellipsoids.Ellipsoid.rocAzimuth\tpygeodesy.ellipsoids.Ellipsoid-class.html#rocAzimuth\npygeodesy.ellipsoids.Ellipsoid.Rpolar\tpygeodesy.ellipsoids.Ellipsoid-class.html#Rpolar\npygeodesy.named._NamedEnumItem.name\tpygeodesy.named._NamedEnumItem-class.html#name\npygeodesy.ellipsoids.Ellipsoid.toEllipse\tpygeodesy.ellipsoids.Ellipsoid-class.html#toEllipse\npygeodesy.named._NamedEnumItem.unregister\tpygeodesy.named._NamedEnumItem-class.html#unregister\npygeodesy.ellipsoids.Ellipsoid.toTriaxial\tpygeodesy.ellipsoids.Ellipsoid-class.html#toTriaxial\npygeodesy.ellipsoids.Ellipsoid.Rlat\tpygeodesy.ellipsoids.Ellipsoid-class.html#Rlat\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.ellipsoids.Ellipsoid._Rhumbs\tpygeodesy.ellipsoids.Ellipsoid-class.html#_Rhumbs\npygeodesy.ellipsoids.Ellipsoid.Rgeocentric\tpygeodesy.ellipsoids.Ellipsoid-class.html#Rgeocentric\npygeodesy.ellipsoids.Ellipsoid._c2f\tpygeodesy.ellipsoids.Ellipsoid-class.html#_c2f\npygeodesy.ellipsoids.Ellipsoid.auxConformal\tpygeodesy.ellipsoids.Ellipsoid-class.html#auxConformal\npygeodesy.named._NamedBase.toRepr\tpygeodesy.named._NamedBase-class.html#toRepr\npygeodesy.ellipsoids.Ellipsoid.radians2m\tpygeodesy.ellipsoids.Ellipsoid-class.html#radians2m\npygeodesy.ellipsoids.Ellipsoid.rhumbekx\tpygeodesy.ellipsoids.Ellipsoid-class.html#rhumbekx\npygeodesy.ellipsoids.Ellipsoid._geodsolve\tpygeodesy.ellipsoids.Ellipsoid-class.html#_geodsolve\npygeodesy.ellipsoids.Ellipsoid.Rgeometric\tpygeodesy.ellipsoids.Ellipsoid-class.html#Rgeometric\npygeodesy.ellipsoids.Ellipsoid.b2\tpygeodesy.ellipsoids.Ellipsoid-class.html#b2\npygeodesy.ellipsoids.Ellipsoid.geodesic_\tpygeodesy.ellipsoids.Ellipsoid-class.html#geodesic_\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.ellipsoids.Ellipsoid.geodsolve\tpygeodesy.ellipsoids.Ellipsoid-class.html#geodsolve\npygeodesy.ellipsoids.Ellipsoid._elliptic_e22\tpygeodesy.ellipsoids.Ellipsoid-class.html#_elliptic_e22\npygeodesy.ellipsoids.Ellipsoid.es\tpygeodesy.ellipsoids.Ellipsoid-class.html#es\npygeodesy.ellipsoids.Ellipsoid._heightB\tpygeodesy.ellipsoids.Ellipsoid-class.html#_heightB\npygeodesy.ellipsoids.Ellipsoid.a2_b\tpygeodesy.ellipsoids.Ellipsoid-class.html#a2_b\npygeodesy.ellipsoids.Ellipsoid.roc2_\tpygeodesy.ellipsoids.Ellipsoid-class.html#roc2_\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.ellipsoids.Ellipsoid.polaradius\tpygeodesy.ellipsoids.Ellipsoid-class.html#polaradius\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.ellipsoids.Ellipsoid._Lpd\tpygeodesy.ellipsoids.Ellipsoid-class.html#_Lpd\npygeodesy.ellipsoids.Ellipsoid.c2x\tpygeodesy.ellipsoids.Ellipsoid-class.html#c2x\npygeodesy.ellipsoids.Ellipsoid.flattening\tpygeodesy.ellipsoids.Ellipsoid-class.html#flattening\npygeodesy.ellipsoids.Ellipsoid.m2degrees\tpygeodesy.ellipsoids.Ellipsoid-class.html#m2degrees\npygeodesy.ellipsoids.Ellipsoid._es_atanh\tpygeodesy.ellipsoids.Ellipsoid-class.html#_es_atanh\npygeodesy.ellipsoids.Ellipsoid._Lpr\tpygeodesy.ellipsoids.Ellipsoid-class.html#_Lpr\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.ellipsoids.Ellipsoid.Rauthalic\tpygeodesy.ellipsoids.Ellipsoid-class.html#Rauthalic\npygeodesy.ellipsoids.Ellipsoid.rocPolar\tpygeodesy.ellipsoids.Ellipsoid-class.html#rocPolar\npygeodesy.named._NamedBase.others\tpygeodesy.named._NamedBase-class.html#others\npygeodesy.ellipsoids.Ellipsoid.e4\tpygeodesy.ellipsoids.Ellipsoid-class.html#e4\npygeodesy.ellipsoids.Ellipsoid.auxReduced\tpygeodesy.ellipsoids.Ellipsoid-class.html#auxReduced\npygeodesy.ellipsoids.Ellipsoid.flattening1st\tpygeodesy.ellipsoids.Ellipsoid-class.html#flattening1st\npygeodesy.named._NamedEnumItem._enum\tpygeodesy.named._NamedEnumItem-class.html#_enum\npygeodesy.ellipsoids.Ellipsoid.e2\tpygeodesy.ellipsoids.Ellipsoid-class.html#e2\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.ellipsoids.Ellipsoid.roc1_\tpygeodesy.ellipsoids.Ellipsoid-class.html#roc1_\npygeodesy.ellipsoids.Ellipsoid.c\tpygeodesy.ellipsoids.Ellipsoid-class.html#c\npygeodesy.ellipsoids.Ellipsoid.auxRectifying\tpygeodesy.ellipsoids.Ellipsoid-class.html#auxRectifying\npygeodesy.ellipsoids.Ellipsoid.e32abs\tpygeodesy.ellipsoids.Ellipsoid-class.html#e32abs\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.ellipsoids.Ellipsoid.quarteradius\tpygeodesy.ellipsoids.Ellipsoid-class.html#quarteradius\npygeodesy.ellipsoids.Ellipsoid.isProlate\tpygeodesy.ellipsoids.Ellipsoid-class.html#isProlate\npygeodesy.ellipsoids.Ellipsoid.Rrectifying\tpygeodesy.ellipsoids.Ellipsoid-class.html#Rrectifying\npygeodesy.ellipsoids.Ellipsoid.polarimeter\tpygeodesy.ellipsoids.Ellipsoid-class.html#polarimeter\npygeodesy.ellipsoids.Ellipsoid.rocBearing\tpygeodesy.ellipsoids.Ellipsoid-class.html#rocBearing\npygeodesy.named._NamedBase.__repr__\tpygeodesy.named._NamedBase-class.html#__repr__\npygeodesy.ellipsoids.Ellipsoid._hash\tpygeodesy.ellipsoids.Ellipsoid-class.html#_hash\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.ellipsoids.Ellipsoid._albersCyl\tpygeodesy.ellipsoids.Ellipsoid-class.html#_albersCyl\npygeodesy.ellipsoids.Ellipsoid.Rbiaxial\tpygeodesy.ellipsoids.Ellipsoid-class.html#Rbiaxial\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.ellipsoids.Ellipsoid.b2_a\tpygeodesy.ellipsoids.Ellipsoid-class.html#b2_a\npygeodesy.ellipsoids.Ellipsoid.geodesic\tpygeodesy.ellipsoids.Ellipsoid-class.html#geodesic\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.ellipsoids.Ellipsoid.equatoradius\tpygeodesy.ellipsoids.Ellipsoid-class.html#equatoradius\npygeodesy.ellipsoids.Ellipsoid._assert\tpygeodesy.ellipsoids.Ellipsoid-class.html#_assert\npygeodesy.ellipsoids.Ellipsoid._elliptic_e12\tpygeodesy.ellipsoids.Ellipsoid-class.html#_elliptic_e12\npygeodesy.ellipsoids.Ellipsoid.rhumbx\tpygeodesy.ellipsoids.Ellipsoid-class.html#rhumbx\npygeodesy.ellipsoids.Ellipsoid.rocMean\tpygeodesy.ellipsoids.Ellipsoid-class.html#rocMean\npygeodesy.ellipsoids.Ellipsoid.Requatorial\tpygeodesy.ellipsoids.Ellipsoid-class.html#Requatorial\npygeodesy.ellipsoids.Ellipsoid.Rauthalicx\tpygeodesy.ellipsoids.Ellipsoid-class.html#Rauthalicx\npygeodesy.ellipsoids.Ellipsoid.area\tpygeodesy.ellipsoids.Ellipsoid-class.html#area\npygeodesy.ellipsoids.Ellipsoid.rocGauss\tpygeodesy.ellipsoids.Ellipsoid-class.html#rocGauss\npygeodesy.ellipsoids.Ellipsoid._f_\tpygeodesy.ellipsoids.Ellipsoid-class.html#_f_\npygeodesy.ellipsoids.Ellipsoid.b2_a2\tpygeodesy.ellipsoids.Ellipsoid-class.html#b2_a2\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.ellipsoids.Ellipsoid.rhumb_\tpygeodesy.ellipsoids.Ellipsoid-class.html#rhumb_\npygeodesy.ellipsoids.Ellipsoid.a_f2\tpygeodesy.ellipsoids.Ellipsoid-class.html#a_f2\npygeodesy.ellipsoids.Ellipsoid._es_tauf3\tpygeodesy.ellipsoids.Ellipsoid-class.html#_es_tauf3\npygeodesy.ellipsoids.Ellipsoid.a2_b2\tpygeodesy.ellipsoids.Ellipsoid-class.html#a2_b2\npygeodesy.ellipsoids.Ellipsoid.f\tpygeodesy.ellipsoids.Ellipsoid-class.html#f\npygeodesy.ellipsoids.Ellipsoid.Rtriaxial\tpygeodesy.ellipsoids.Ellipsoid-class.html#Rtriaxial\npygeodesy.ellipsoids.Ellipsoid.AlphaKs\tpygeodesy.ellipsoids.Ellipsoid-class.html#AlphaKs\npygeodesy.ellipsoids.Ellipsoid._es_taupf2\tpygeodesy.ellipsoids.Ellipsoid-class.html#_es_taupf2\npygeodesy.ellipsoids.Ellipsoid.volume\tpygeodesy.ellipsoids.Ellipsoid-class.html#volume\npygeodesy.named._NamedEnumItem._register\tpygeodesy.named._NamedEnumItem-class.html#_register\npygeodesy.ellipsoids.Ellipsoid.auxParametric\tpygeodesy.ellipsoids.Ellipsoid-class.html#auxParametric\npygeodesy.ellipsoids.Ellipsoid.eccentricity\tpygeodesy.ellipsoids.Ellipsoid-class.html#eccentricity\npygeodesy.ellipsoids.Ellipsoid.c2\tpygeodesy.ellipsoids.Ellipsoid-class.html#c2\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.ellipsoids.Ellipsoid.Llat\tpygeodesy.ellipsoids.Ellipsoid-class.html#Llat\npygeodesy.ellipsoids.Ellipsoid.__eq__\tpygeodesy.ellipsoids.Ellipsoid-class.html#__eq__\npygeodesy.ellipsoids.Ellipsoid.b\tpygeodesy.ellipsoids.Ellipsoid-class.html#b\npygeodesy.ellipsoids.Ellipsoid.degrees2m\tpygeodesy.ellipsoids.Ellipsoid-class.html#degrees2m\npygeodesy.ellipsoids.Ellipsoid._rhumbsolve\tpygeodesy.ellipsoids.Ellipsoid-class.html#_rhumbsolve\npygeodesy.ellipsoids.Ellipsoid.height4\tpygeodesy.ellipsoids.Ellipsoid-class.html#height4\npygeodesy.ellipsoids.Ellipsoid.Rvolumetric\tpygeodesy.ellipsoids.Ellipsoid-class.html#Rvolumetric\npygeodesy.ellipsoids.Ellipsoid.es_atanh\tpygeodesy.ellipsoids.Ellipsoid-class.html#es_atanh\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.ellipsoids.Ellipsoid.n\tpygeodesy.ellipsoids.Ellipsoid-class.html#n\npygeodesy.ellipsoids.Ellipsoid._rocDirectional\tpygeodesy.ellipsoids.Ellipsoid-class.html#_rocDirectional\npygeodesy.ellipsoids.Ellipsoid.isOblate\tpygeodesy.ellipsoids.Ellipsoid-class.html#isOblate\npygeodesy.ellipsoids.Ellipsoid._triaxial\tpygeodesy.ellipsoids.Ellipsoid-class.html#_triaxial\npygeodesy.ellipsoids.Ellipsoid.geodesicx\tpygeodesy.ellipsoids.Ellipsoid-class.html#geodesicx\npygeodesy.ellipsoids.Ellipsoid._Geodesics\tpygeodesy.ellipsoids.Ellipsoid-class.html#_Geodesics\npygeodesy.ellipsoids.Ellipsoid.__hash__\tpygeodesy.ellipsoids.Ellipsoid-class.html#__hash__\npygeodesy.ellipsoids.Ellipsoid.ecef\tpygeodesy.ellipsoids.Ellipsoid-class.html#ecef\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.ellipsoids.Ellipsoid.f1\tpygeodesy.ellipsoids.Ellipsoid-class.html#f1\npygeodesy.ellipsoids.Ellipsoid.f2\tpygeodesy.ellipsoids.Ellipsoid-class.html#f2\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.ellipsoids.Ellipsoid.circle4\tpygeodesy.ellipsoids.Ellipsoid-class.html#circle4\npygeodesy.ellipsoids.Ellipsoid._heightMax\tpygeodesy.ellipsoids.Ellipsoid-class.html#_heightMax\npygeodesy.ellipsoids.Ellipsoid.rhumbaux\tpygeodesy.ellipsoids.Ellipsoid-class.html#rhumbaux\npygeodesy.ellipsoids.Ellipsoid.auxAuthalic\tpygeodesy.ellipsoids.Ellipsoid-class.html#auxAuthalic\npygeodesy.ellipsoids.Ellipsoid.eccentricity2nd2\tpygeodesy.ellipsoids.Ellipsoid-class.html#eccentricity2nd2\npygeodesy.ellipsoids.Ellipsoid.a2_\tpygeodesy.ellipsoids.Ellipsoid-class.html#a2_\npygeodesy.ellipsoids.Ellipsoid.isSpherical\tpygeodesy.ellipsoids.Ellipsoid-class.html#isSpherical\npygeodesy.ellipsoids.Ellipsoid.__init__\tpygeodesy.ellipsoids.Ellipsoid-class.html#__init__\npygeodesy.ellipsoids.Ellipsoid.minoradius\tpygeodesy.ellipsoids.Ellipsoid-class.html#minoradius\npygeodesy.ellipsoids.Ellipsoid.e32\tpygeodesy.ellipsoids.Ellipsoid-class.html#e32\npygeodesy.ellipsoids.Ellipsoid.e2s\tpygeodesy.ellipsoids.Ellipsoid-class.html#e2s\npygeodesy.ellipsoids.Ellipsoid.b_a\tpygeodesy.ellipsoids.Ellipsoid-class.html#b_a\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.ellipsoids.Ellipsoid.es_tauf\tpygeodesy.ellipsoids.Ellipsoid-class.html#es_tauf\npygeodesy.ellipsoids.Ellipsoid.e22abs\tpygeodesy.ellipsoids.Ellipsoid-class.html#e22abs\npygeodesy.ellipsoids.Ellipsoid._Kseries\tpygeodesy.ellipsoids.Ellipsoid-class.html#_Kseries\npygeodesy.ellipsoids.Ellipsoid.eccentricity3rd2\tpygeodesy.ellipsoids.Ellipsoid-class.html#eccentricity3rd2\npygeodesy.ellipsoids.Ellipsoid.equatorimeter\tpygeodesy.ellipsoids.Ellipsoid-class.html#equatorimeter\npygeodesy.ellipsoids.Ellipsoid._Betad\tpygeodesy.ellipsoids.Ellipsoid-class.html#_Betad\npygeodesy.ellipsoids.Ellipsoid.A\tpygeodesy.ellipsoids.Ellipsoid-class.html#A\npygeodesy.ellipsoids.Ellipsoid.Rmean\tpygeodesy.ellipsoids.Ellipsoid-class.html#Rmean\npygeodesy.ellipsoids.Ellipsoid.rocPrimeVertical\tpygeodesy.ellipsoids.Ellipsoid-class.html#rocPrimeVertical\npygeodesy.ellipsoids.Ellipsoid.auxGeocentric\tpygeodesy.ellipsoids.Ellipsoid-class.html#auxGeocentric\npygeodesy.ellipsoids.Ellipsoid.rhumbsolve\tpygeodesy.ellipsoids.Ellipsoid-class.html#rhumbsolve\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.ellipsoids.Ellipsoid.KsOrder\tpygeodesy.ellipsoids.Ellipsoid-class.html#KsOrder\npygeodesy.ellipsoids.Ellipsoid.m2radians\tpygeodesy.ellipsoids.Ellipsoid-class.html#m2radians\npygeodesy.ellipsoids.Ellipsoid.a2\tpygeodesy.ellipsoids.Ellipsoid-class.html#a2\npygeodesy.ellipsoids.Ellipsoid.rocEquatorial2\tpygeodesy.ellipsoids.Ellipsoid-class.html#rocEquatorial2\npygeodesy.ellipsoids.Ellipsoid.e2s2\tpygeodesy.ellipsoids.Ellipsoid-class.html#e2s2\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.ellipsoids.Ellipsoid.auxIsometric\tpygeodesy.ellipsoids.Ellipsoid-class.html#auxIsometric\npygeodesy.ellipsoids.Ellipsoid.a\tpygeodesy.ellipsoids.Ellipsoid-class.html#a\npygeodesy.ellipsoids.Ellipsoid.e\tpygeodesy.ellipsoids.Ellipsoid-class.html#e\npygeodesy.ellipsoids.Ellipsoid.e21\tpygeodesy.ellipsoids.Ellipsoid-class.html#e21\npygeodesy.ellipsoids.Ellipsoid.e22\tpygeodesy.ellipsoids.Ellipsoid-class.html#e22\npygeodesy.ellipsoids.Ellipsoid.isEllipsoidal\tpygeodesy.ellipsoids.Ellipsoid-class.html#isEllipsoidal\npygeodesy.ellipsoids.Ellipsoid.Lmeridian\tpygeodesy.ellipsoids.Ellipsoid-class.html#Lmeridian\npygeodesy.ellipsoids.Ellipsoid.f_\tpygeodesy.ellipsoids.Ellipsoid-class.html#f_\npygeodesy.ellipsoids.Ellipsoid.rocMeridional\tpygeodesy.ellipsoids.Ellipsoid-class.html#rocMeridional\npygeodesy.ellipsoids.Ellipsoid._1_e21\tpygeodesy.ellipsoids.Ellipsoid-class.html#_1_e21\npygeodesy.ellipsoids.Ellipsoid.hartzell4\tpygeodesy.ellipsoids.Ellipsoid-class.html#hartzell4\npygeodesy.ellipsoids.Ellipsoid2\tpygeodesy.ellipsoids.Ellipsoid2-class.html\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.ellipsoids.Ellipsoid.es_c\tpygeodesy.ellipsoids.Ellipsoid-class.html#es_c\npygeodesy.ellipsoids.Ellipsoid.Rs\tpygeodesy.ellipsoids.Ellipsoid-class.html#Rs\npygeodesy.named._NamedBase.__str__\tpygeodesy.named._NamedBase-class.html#__str__\npygeodesy.ellipsoids.Ellipsoid.flattening2nd\tpygeodesy.ellipsoids.Ellipsoid-class.html#flattening2nd\npygeodesy.ellipsoids.Ellipsoid.BetaKs\tpygeodesy.ellipsoids.Ellipsoid-class.html#BetaKs\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.ellipsoids.Ellipsoid.eccentricity3rd2\tpygeodesy.ellipsoids.Ellipsoid-class.html#eccentricity3rd2\npygeodesy.ellipsoids.Ellipsoid.geodesic_\tpygeodesy.ellipsoids.Ellipsoid-class.html#geodesic_\npygeodesy.ellipsoids.Ellipsoid.Rquadratic\tpygeodesy.ellipsoids.Ellipsoid-class.html#Rquadratic\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.ellipsoids.Ellipsoid._hubeny_2\tpygeodesy.ellipsoids.Ellipsoid-class.html#_hubeny_2\npygeodesy.ellipsoids.Ellipsoid.Rr\tpygeodesy.ellipsoids.Ellipsoid-class.html#Rr\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.ellipsoids.Ellipsoid.__eq__\tpygeodesy.ellipsoids.Ellipsoid-class.html#__eq__\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.ellipsoids.Ellipsoid.e12\tpygeodesy.ellipsoids.Ellipsoid-class.html#e12\npygeodesy.ellipsoids.Ellipsoid.roc2\tpygeodesy.ellipsoids.Ellipsoid-class.html#roc2\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.ellipsoids.Ellipsoid.geodesicw\tpygeodesy.ellipsoids.Ellipsoid-class.html#geodesicw\npygeodesy.ellipsoids.Ellipsoid._rhumbsolve\tpygeodesy.ellipsoids.Ellipsoid-class.html#_rhumbsolve\npygeodesy.ellipsoids.Ellipsoid.e2abs\tpygeodesy.ellipsoids.Ellipsoid-class.html#e2abs\npygeodesy.ellipsoids.Ellipsoid._exp_es_atanh_1\tpygeodesy.ellipsoids.Ellipsoid-class.html#_exp_es_atanh_1\npygeodesy.ellipsoids.Ellipsoid._f\tpygeodesy.ellipsoids.Ellipsoid-class.html#_f\npygeodesy.ellipsoids.Ellipsoid.eccentricity1st2\tpygeodesy.ellipsoids.Ellipsoid-class.html#eccentricity1st2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.ellipsoids.Ellipsoid._b\tpygeodesy.ellipsoids.Ellipsoid-class.html#_b\npygeodesy.ellipsoids.Ellipsoid._a\tpygeodesy.ellipsoids.Ellipsoid-class.html#_a\npygeodesy.ellipsoids.Ellipsoid.distance2\tpygeodesy.ellipsoids.Ellipsoid-class.html#distance2\npygeodesy.ellipsoids.Ellipsoid.R1\tpygeodesy.ellipsoids.Ellipsoid-class.html#R1\npygeodesy.ellipsoids.Ellipsoid.R2\tpygeodesy.ellipsoids.Ellipsoid-class.html#R2\npygeodesy.ellipsoids.Ellipsoid.R3\tpygeodesy.ellipsoids.Ellipsoid-class.html#R3\npygeodesy.ellipsoids.Ellipsoid.toStr\tpygeodesy.ellipsoids.Ellipsoid-class.html#toStr\npygeodesy.ellipsoids.Ellipsoid.L\tpygeodesy.ellipsoids.Ellipsoid-class.html#L\npygeodesy.ellipsoids.Ellipsoid._KsOrder\tpygeodesy.ellipsoids.Ellipsoid-class.html#_KsOrder\npygeodesy.ellipsoids.Ellipsoid.rocTransverse\tpygeodesy.ellipsoids.Ellipsoid-class.html#rocTransverse\npygeodesy.ellipsoids.Ellipsoid.a_f\tpygeodesy.ellipsoids.Ellipsoid-class.html#a_f\npygeodesy.ellipsoids.Ellipsoid.flattening3rd\tpygeodesy.ellipsoids.Ellipsoid-class.html#flattening3rd\npygeodesy.ellipsoids.Ellipsoid.areax\tpygeodesy.ellipsoids.Ellipsoid-class.html#areax\npygeodesy.ellipsoids.Ellipsoid.a_b\tpygeodesy.ellipsoids.Ellipsoid-class.html#a_b\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.ellipsoids.Ellipsoid.majoradius\tpygeodesy.ellipsoids.Ellipsoid-class.html#majoradius\npygeodesy.ellipsoids.Ellipsoid.rocAzimuth\tpygeodesy.ellipsoids.Ellipsoid-class.html#rocAzimuth\npygeodesy.ellipsoids.Ellipsoid.Rpolar\tpygeodesy.ellipsoids.Ellipsoid-class.html#Rpolar\npygeodesy.named._NamedEnumItem.name\tpygeodesy.named._NamedEnumItem-class.html#name\npygeodesy.ellipsoids.Ellipsoid.toEllipse\tpygeodesy.ellipsoids.Ellipsoid-class.html#toEllipse\npygeodesy.named._NamedEnumItem.unregister\tpygeodesy.named._NamedEnumItem-class.html#unregister\npygeodesy.ellipsoids.Ellipsoid.toTriaxial\tpygeodesy.ellipsoids.Ellipsoid-class.html#toTriaxial\npygeodesy.ellipsoids.Ellipsoid._Betad\tpygeodesy.ellipsoids.Ellipsoid-class.html#_Betad\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.ellipsoids.Ellipsoid._Rhumbs\tpygeodesy.ellipsoids.Ellipsoid-class.html#_Rhumbs\npygeodesy.ellipsoids.Ellipsoid.Rgeocentric\tpygeodesy.ellipsoids.Ellipsoid-class.html#Rgeocentric\npygeodesy.ellipsoids.Ellipsoid._c2f\tpygeodesy.ellipsoids.Ellipsoid-class.html#_c2f\npygeodesy.ellipsoids.Ellipsoid.e\tpygeodesy.ellipsoids.Ellipsoid-class.html#e\npygeodesy.ellipsoids.Ellipsoid.auxConformal\tpygeodesy.ellipsoids.Ellipsoid-class.html#auxConformal\npygeodesy.named._NamedBase.toRepr\tpygeodesy.named._NamedBase-class.html#toRepr\npygeodesy.ellipsoids.Ellipsoid.A\tpygeodesy.ellipsoids.Ellipsoid-class.html#A\npygeodesy.ellipsoids.Ellipsoid._assert\tpygeodesy.ellipsoids.Ellipsoid-class.html#_assert\npygeodesy.ellipsoids.Ellipsoid._geodsolve\tpygeodesy.ellipsoids.Ellipsoid-class.html#_geodsolve\npygeodesy.ellipsoids.Ellipsoid.Rgeometric\tpygeodesy.ellipsoids.Ellipsoid-class.html#Rgeometric\npygeodesy.ellipsoids.Ellipsoid.b2\tpygeodesy.ellipsoids.Ellipsoid-class.html#b2\npygeodesy.ellipsoids.Ellipsoid.es_taupf\tpygeodesy.ellipsoids.Ellipsoid-class.html#es_taupf\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.ellipsoids.Ellipsoid.geodsolve\tpygeodesy.ellipsoids.Ellipsoid-class.html#geodsolve\npygeodesy.ellipsoids.Ellipsoid._elliptic_e22\tpygeodesy.ellipsoids.Ellipsoid-class.html#_elliptic_e22\npygeodesy.ellipsoids.Ellipsoid.es\tpygeodesy.ellipsoids.Ellipsoid-class.html#es\npygeodesy.ellipsoids.Ellipsoid._heightB\tpygeodesy.ellipsoids.Ellipsoid-class.html#_heightB\npygeodesy.ellipsoids.Ellipsoid.a2_b\tpygeodesy.ellipsoids.Ellipsoid-class.html#a2_b\npygeodesy.ellipsoids.Ellipsoid.roc2_\tpygeodesy.ellipsoids.Ellipsoid-class.html#roc2_\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.ellipsoids.Ellipsoid.polaradius\tpygeodesy.ellipsoids.Ellipsoid-class.html#polaradius\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.ellipsoids.Ellipsoid._Lpd\tpygeodesy.ellipsoids.Ellipsoid-class.html#_Lpd\npygeodesy.ellipsoids.Ellipsoid.c2x\tpygeodesy.ellipsoids.Ellipsoid-class.html#c2x\npygeodesy.ellipsoids.Ellipsoid.flattening\tpygeodesy.ellipsoids.Ellipsoid-class.html#flattening\npygeodesy.ellipsoids.Ellipsoid.m2degrees\tpygeodesy.ellipsoids.Ellipsoid-class.html#m2degrees\npygeodesy.ellipsoids.Ellipsoid._es_atanh\tpygeodesy.ellipsoids.Ellipsoid-class.html#_es_atanh\npygeodesy.ellipsoids.Ellipsoid._Lpr\tpygeodesy.ellipsoids.Ellipsoid-class.html#_Lpr\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.ellipsoids.Ellipsoid.Rauthalic\tpygeodesy.ellipsoids.Ellipsoid-class.html#Rauthalic\npygeodesy.ellipsoids.Ellipsoid.rocPolar\tpygeodesy.ellipsoids.Ellipsoid-class.html#rocPolar\npygeodesy.named._NamedBase.others\tpygeodesy.named._NamedBase-class.html#others\npygeodesy.ellipsoids.Ellipsoid._elliptic_e12\tpygeodesy.ellipsoids.Ellipsoid-class.html#_elliptic_e12\npygeodesy.ellipsoids.Ellipsoid.auxReduced\tpygeodesy.ellipsoids.Ellipsoid-class.html#auxReduced\npygeodesy.named._NamedEnumItem._enum\tpygeodesy.named._NamedEnumItem-class.html#_enum\npygeodesy.ellipsoids.Ellipsoid.e2\tpygeodesy.ellipsoids.Ellipsoid-class.html#e2\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.ellipsoids.Ellipsoid.roc1_\tpygeodesy.ellipsoids.Ellipsoid-class.html#roc1_\npygeodesy.ellipsoids.Ellipsoid.c\tpygeodesy.ellipsoids.Ellipsoid-class.html#c\npygeodesy.ellipsoids.Ellipsoid.auxRectifying\tpygeodesy.ellipsoids.Ellipsoid-class.html#auxRectifying\npygeodesy.ellipsoids.Ellipsoid.e32abs\tpygeodesy.ellipsoids.Ellipsoid-class.html#e32abs\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.ellipsoids.Ellipsoid.quarteradius\tpygeodesy.ellipsoids.Ellipsoid-class.html#quarteradius\npygeodesy.ellipsoids.Ellipsoid.isProlate\tpygeodesy.ellipsoids.Ellipsoid-class.html#isProlate\npygeodesy.ellipsoids.Ellipsoid.Rrectifying\tpygeodesy.ellipsoids.Ellipsoid-class.html#Rrectifying\npygeodesy.ellipsoids.Ellipsoid.polarimeter\tpygeodesy.ellipsoids.Ellipsoid-class.html#polarimeter\npygeodesy.ellipsoids.Ellipsoid.rocBearing\tpygeodesy.ellipsoids.Ellipsoid-class.html#rocBearing\npygeodesy.named._NamedBase.__repr__\tpygeodesy.named._NamedBase-class.html#__repr__\npygeodesy.ellipsoids.Ellipsoid._hash\tpygeodesy.ellipsoids.Ellipsoid-class.html#_hash\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.ellipsoids.Ellipsoid._albersCyl\tpygeodesy.ellipsoids.Ellipsoid-class.html#_albersCyl\npygeodesy.ellipsoids.Ellipsoid.Rbiaxial\tpygeodesy.ellipsoids.Ellipsoid-class.html#Rbiaxial\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.ellipsoids.Ellipsoid.b2_a\tpygeodesy.ellipsoids.Ellipsoid-class.html#b2_a\npygeodesy.ellipsoids.Ellipsoid.geodesic\tpygeodesy.ellipsoids.Ellipsoid-class.html#geodesic\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.ellipsoids.Ellipsoid.equatoradius\tpygeodesy.ellipsoids.Ellipsoid-class.html#equatoradius\npygeodesy.ellipsoids.Ellipsoid.rhumbekx\tpygeodesy.ellipsoids.Ellipsoid-class.html#rhumbekx\npygeodesy.ellipsoids.Ellipsoid.e4\tpygeodesy.ellipsoids.Ellipsoid-class.html#e4\npygeodesy.ellipsoids.Ellipsoid.rhumbx\tpygeodesy.ellipsoids.Ellipsoid-class.html#rhumbx\npygeodesy.ellipsoids.Ellipsoid.Requatorial\tpygeodesy.ellipsoids.Ellipsoid-class.html#Requatorial\npygeodesy.ellipsoids.Ellipsoid.Rauthalicx\tpygeodesy.ellipsoids.Ellipsoid-class.html#Rauthalicx\npygeodesy.ellipsoids.Ellipsoid.area\tpygeodesy.ellipsoids.Ellipsoid-class.html#area\npygeodesy.ellipsoids.Ellipsoid.rocGauss\tpygeodesy.ellipsoids.Ellipsoid-class.html#rocGauss\npygeodesy.ellipsoids.Ellipsoid._f_\tpygeodesy.ellipsoids.Ellipsoid-class.html#_f_\npygeodesy.ellipsoids.Ellipsoid.b2_a2\tpygeodesy.ellipsoids.Ellipsoid-class.html#b2_a2\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.ellipsoids.Ellipsoid.rhumb_\tpygeodesy.ellipsoids.Ellipsoid-class.html#rhumb_\npygeodesy.ellipsoids.Ellipsoid.a_f2\tpygeodesy.ellipsoids.Ellipsoid-class.html#a_f2\npygeodesy.ellipsoids.Ellipsoid._es_tauf3\tpygeodesy.ellipsoids.Ellipsoid-class.html#_es_tauf3\npygeodesy.ellipsoids.Ellipsoid.a2_b2\tpygeodesy.ellipsoids.Ellipsoid-class.html#a2_b2\npygeodesy.ellipsoids.Ellipsoid.Rtriaxial\tpygeodesy.ellipsoids.Ellipsoid-class.html#Rtriaxial\npygeodesy.ellipsoids.Ellipsoid.AlphaKs\tpygeodesy.ellipsoids.Ellipsoid-class.html#AlphaKs\npygeodesy.ellipsoids.Ellipsoid._es_taupf2\tpygeodesy.ellipsoids.Ellipsoid-class.html#_es_taupf2\npygeodesy.ellipsoids.Ellipsoid.volume\tpygeodesy.ellipsoids.Ellipsoid-class.html#volume\npygeodesy.named._NamedEnumItem._register\tpygeodesy.named._NamedEnumItem-class.html#_register\npygeodesy.ellipsoids.Ellipsoid.auxParametric\tpygeodesy.ellipsoids.Ellipsoid-class.html#auxParametric\npygeodesy.ellipsoids.Ellipsoid.eccentricity\tpygeodesy.ellipsoids.Ellipsoid-class.html#eccentricity\npygeodesy.ellipsoids.Ellipsoid.c2\tpygeodesy.ellipsoids.Ellipsoid-class.html#c2\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.ellipsoids.Ellipsoid.Llat\tpygeodesy.ellipsoids.Ellipsoid-class.html#Llat\npygeodesy.ellipsoids.Ellipsoid.toEllipsoid2\tpygeodesy.ellipsoids.Ellipsoid-class.html#toEllipsoid2\npygeodesy.ellipsoids.Ellipsoid.b\tpygeodesy.ellipsoids.Ellipsoid-class.html#b\npygeodesy.ellipsoids.Ellipsoid.degrees2m\tpygeodesy.ellipsoids.Ellipsoid-class.html#degrees2m\npygeodesy.ellipsoids.Ellipsoid.f\tpygeodesy.ellipsoids.Ellipsoid-class.html#f\npygeodesy.ellipsoids.Ellipsoid.height4\tpygeodesy.ellipsoids.Ellipsoid-class.html#height4\npygeodesy.ellipsoids.Ellipsoid.Rvolumetric\tpygeodesy.ellipsoids.Ellipsoid-class.html#Rvolumetric\npygeodesy.ellipsoids.Ellipsoid.es_atanh\tpygeodesy.ellipsoids.Ellipsoid-class.html#es_atanh\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.ellipsoids.Ellipsoid.n\tpygeodesy.ellipsoids.Ellipsoid-class.html#n\npygeodesy.ellipsoids.Ellipsoid.Lmeridian\tpygeodesy.ellipsoids.Ellipsoid-class.html#Lmeridian\npygeodesy.ellipsoids.Ellipsoid.isOblate\tpygeodesy.ellipsoids.Ellipsoid-class.html#isOblate\npygeodesy.ellipsoids.Ellipsoid._triaxial\tpygeodesy.ellipsoids.Ellipsoid-class.html#_triaxial\npygeodesy.ellipsoids.Ellipsoid.geodesicx\tpygeodesy.ellipsoids.Ellipsoid-class.html#geodesicx\npygeodesy.ellipsoids.Ellipsoid._Geodesics\tpygeodesy.ellipsoids.Ellipsoid-class.html#_Geodesics\npygeodesy.ellipsoids.Ellipsoid.__hash__\tpygeodesy.ellipsoids.Ellipsoid-class.html#__hash__\npygeodesy.ellipsoids.Ellipsoid.ecef\tpygeodesy.ellipsoids.Ellipsoid-class.html#ecef\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.ellipsoids.Ellipsoid.f1\tpygeodesy.ellipsoids.Ellipsoid-class.html#f1\npygeodesy.ellipsoids.Ellipsoid.f2\tpygeodesy.ellipsoids.Ellipsoid-class.html#f2\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.ellipsoids.Ellipsoid.circle4\tpygeodesy.ellipsoids.Ellipsoid-class.html#circle4\npygeodesy.ellipsoids.Ellipsoid._heightMax\tpygeodesy.ellipsoids.Ellipsoid-class.html#_heightMax\npygeodesy.ellipsoids.Ellipsoid.KsOrder\tpygeodesy.ellipsoids.Ellipsoid-class.html#KsOrder\npygeodesy.ellipsoids.Ellipsoid.rhumbaux\tpygeodesy.ellipsoids.Ellipsoid-class.html#rhumbaux\npygeodesy.ellipsoids.Ellipsoid.auxAuthalic\tpygeodesy.ellipsoids.Ellipsoid-class.html#auxAuthalic\npygeodesy.ellipsoids.Ellipsoid.eccentricity2nd2\tpygeodesy.ellipsoids.Ellipsoid-class.html#eccentricity2nd2\npygeodesy.ellipsoids.Ellipsoid.f_\tpygeodesy.ellipsoids.Ellipsoid-class.html#f_\npygeodesy.ellipsoids.Ellipsoid.isSpherical\tpygeodesy.ellipsoids.Ellipsoid-class.html#isSpherical\npygeodesy.ellipsoids.Ellipsoid2.__init__\tpygeodesy.ellipsoids.Ellipsoid2-class.html#__init__\npygeodesy.ellipsoids.Ellipsoid.minoradius\tpygeodesy.ellipsoids.Ellipsoid-class.html#minoradius\npygeodesy.ellipsoids.Ellipsoid.e32\tpygeodesy.ellipsoids.Ellipsoid-class.html#e32\npygeodesy.ellipsoids.Ellipsoid.e2s\tpygeodesy.ellipsoids.Ellipsoid-class.html#e2s\npygeodesy.ellipsoids.Ellipsoid.b_a\tpygeodesy.ellipsoids.Ellipsoid-class.html#b_a\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.ellipsoids.Ellipsoid.es_tauf\tpygeodesy.ellipsoids.Ellipsoid-class.html#es_tauf\npygeodesy.ellipsoids.Ellipsoid.e22abs\tpygeodesy.ellipsoids.Ellipsoid-class.html#e22abs\npygeodesy.ellipsoids.Ellipsoid._Kseries\tpygeodesy.ellipsoids.Ellipsoid-class.html#_Kseries\npygeodesy.ellipsoids.Ellipsoid.R2x\tpygeodesy.ellipsoids.Ellipsoid-class.html#R2x\npygeodesy.ellipsoids.Ellipsoid.equatorimeter\tpygeodesy.ellipsoids.Ellipsoid-class.html#equatorimeter\npygeodesy.ellipsoids.Ellipsoid.Rlat\tpygeodesy.ellipsoids.Ellipsoid-class.html#Rlat\npygeodesy.ellipsoids.Ellipsoid.radians2m\tpygeodesy.ellipsoids.Ellipsoid-class.html#radians2m\npygeodesy.ellipsoids.Ellipsoid.Rmean\tpygeodesy.ellipsoids.Ellipsoid-class.html#Rmean\npygeodesy.ellipsoids.Ellipsoid.rocPrimeVertical\tpygeodesy.ellipsoids.Ellipsoid-class.html#rocPrimeVertical\npygeodesy.ellipsoids.Ellipsoid.auxGeocentric\tpygeodesy.ellipsoids.Ellipsoid-class.html#auxGeocentric\npygeodesy.ellipsoids.Ellipsoid.rhumbsolve\tpygeodesy.ellipsoids.Ellipsoid-class.html#rhumbsolve\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.ellipsoids.Ellipsoid.flattening1st\tpygeodesy.ellipsoids.Ellipsoid-class.html#flattening1st\npygeodesy.ellipsoids.Ellipsoid.m2radians\tpygeodesy.ellipsoids.Ellipsoid-class.html#m2radians\npygeodesy.ellipsoids.Ellipsoid.a2\tpygeodesy.ellipsoids.Ellipsoid-class.html#a2\npygeodesy.ellipsoids.Ellipsoid.rocEquatorial2\tpygeodesy.ellipsoids.Ellipsoid-class.html#rocEquatorial2\npygeodesy.ellipsoids.Ellipsoid.e2s2\tpygeodesy.ellipsoids.Ellipsoid-class.html#e2s2\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.ellipsoids.Ellipsoid.auxIsometric\tpygeodesy.ellipsoids.Ellipsoid-class.html#auxIsometric\npygeodesy.ellipsoids.Ellipsoid.a\tpygeodesy.ellipsoids.Ellipsoid-class.html#a\npygeodesy.ellipsoids.Ellipsoid.rocMean\tpygeodesy.ellipsoids.Ellipsoid-class.html#rocMean\npygeodesy.ellipsoids.Ellipsoid.e21\tpygeodesy.ellipsoids.Ellipsoid-class.html#e21\npygeodesy.ellipsoids.Ellipsoid.e22\tpygeodesy.ellipsoids.Ellipsoid-class.html#e22\npygeodesy.ellipsoids.Ellipsoid.isEllipsoidal\tpygeodesy.ellipsoids.Ellipsoid-class.html#isEllipsoidal\npygeodesy.ellipsoids.Ellipsoid._rocDirectional\tpygeodesy.ellipsoids.Ellipsoid-class.html#_rocDirectional\npygeodesy.ellipsoids.Ellipsoid.a2_\tpygeodesy.ellipsoids.Ellipsoid-class.html#a2_\npygeodesy.ellipsoids.Ellipsoid.rocMeridional\tpygeodesy.ellipsoids.Ellipsoid-class.html#rocMeridional\npygeodesy.ellipsoids.Ellipsoid._1_e21\tpygeodesy.ellipsoids.Ellipsoid-class.html#_1_e21\npygeodesy.ellipsoids.Ellipsoid.hartzell4\tpygeodesy.ellipsoids.Ellipsoid-class.html#hartzell4\npygeodesy.ellipsoids.a_f2Tuple\tpygeodesy.ellipsoids.a_f2Tuple-class.html\npygeodesy.named._NamedTuple.toRepr\tpygeodesy.named._NamedTuple-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._NamedTuple.toUnits\tpygeodesy.named._NamedTuple-class.html#toUnits\npygeodesy.named._NamedTuple._validate\tpygeodesy.named._NamedTuple-class.html#_validate\npygeodesy.named._NamedTuple.__str__\tpygeodesy.named._NamedTuple-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._NamedTuple._DOT_\tpygeodesy.named._NamedTuple-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._NamedTuple.reUnit\tpygeodesy.named._NamedTuple-class.html#reUnit\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.ellipsoids.a_f2Tuple._Names_\tpygeodesy.ellipsoids.a_f2Tuple-class.html#_Names_\npygeodesy.named._NamedTuple.__setattr__\tpygeodesy.named._NamedTuple-class.html#__setattr__\npygeodesy.ellipsoids.a_f2Tuple.__new__\tpygeodesy.ellipsoids.a_f2Tuple-class.html#__new__\npygeodesy.ellipsoids.a_f2Tuple.ellipsoid\tpygeodesy.ellipsoids.a_f2Tuple-class.html#ellipsoid\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._NamedTuple._validated\tpygeodesy.named._NamedTuple-class.html#_validated\npygeodesy.named._NamedTuple.__getattr__\tpygeodesy.named._NamedTuple-class.html#__getattr__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._NamedTuple._xtend\tpygeodesy.named._NamedTuple-class.html#_xtend\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._NamedTuple.dup\tpygeodesy.named._NamedTuple-class.html#dup\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedTuple.toStr\tpygeodesy.named._NamedTuple-class.html#toStr\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedTuple.units\tpygeodesy.named._NamedTuple-class.html#units\npygeodesy.named._NamedTuple.iterunits\tpygeodesy.named._NamedTuple-class.html#iterunits\npygeodesy.named._NamedTuple.iteritems\tpygeodesy.named._NamedTuple-class.html#iteritems\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.ellipsoids.a_f2Tuple.b\tpygeodesy.ellipsoids.a_f2Tuple-class.html#b\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._NamedTuple.items\tpygeodesy.named._NamedTuple-class.html#items\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.ellipsoids.a_f2Tuple.f_\tpygeodesy.ellipsoids.a_f2Tuple-class.html#f_\npygeodesy.named._NamedTuple.__delattr__\tpygeodesy.named._NamedTuple-class.html#__delattr__\npygeodesy.named._NamedTuple.__repr__\tpygeodesy.named._NamedTuple-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._NamedTuple.__hash__\tpygeodesy.named._NamedTuple-class.html#__hash__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.ellipsoids.a_f2Tuple._Units_\tpygeodesy.ellipsoids.a_f2Tuple-class.html#_Units_\npygeodesy.elliptic.Elliptic\tpygeodesy.elliptic.Elliptic-class.html\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._Named.__str__\tpygeodesy.named._Named-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.elliptic.Elliptic.kp2\tpygeodesy.elliptic.Elliptic-class.html#kp2\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.elliptic.Elliptic.k2\tpygeodesy.elliptic.Elliptic-class.html#k2\npygeodesy.elliptic.Elliptic._B4\tpygeodesy.elliptic.Elliptic-class.html#_B4\npygeodesy.elliptic.Elliptic._B3\tpygeodesy.elliptic.Elliptic-class.html#_B3\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.elliptic.Elliptic.deltaD\tpygeodesy.elliptic.Elliptic-class.html#deltaD\npygeodesy.elliptic.Elliptic.deltaE\tpygeodesy.elliptic.Elliptic-class.html#deltaE\npygeodesy.elliptic.Elliptic.deltaF\tpygeodesy.elliptic.Elliptic-class.html#deltaF\npygeodesy.elliptic.Elliptic.deltaG\tpygeodesy.elliptic.Elliptic-class.html#deltaG\npygeodesy.elliptic.Elliptic.deltaH\tpygeodesy.elliptic.Elliptic-class.html#deltaH\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.toStr\tpygeodesy.named._Named-class.html#toStr\npygeodesy.elliptic.Elliptic.fPi\tpygeodesy.elliptic.Elliptic-class.html#fPi\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.elliptic.Elliptic._cGHPi\tpygeodesy.elliptic.Elliptic-class.html#_cGHPi\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.elliptic.Elliptic._cK\tpygeodesy.elliptic.Elliptic-class.html#_cK\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.elliptic.Elliptic.fDelta\tpygeodesy.elliptic.Elliptic-class.html#fDelta\npygeodesy.elliptic.Elliptic._fRF3RD\tpygeodesy.elliptic.Elliptic-class.html#_fRF3RD\npygeodesy.elliptic.Elliptic._cE\tpygeodesy.elliptic.Elliptic-class.html#_cE\npygeodesy.named._Named.toRepr\tpygeodesy.named._Named-class.html#toRepr\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.elliptic.Elliptic.alpha2\tpygeodesy.elliptic.Elliptic-class.html#alpha2\npygeodesy.elliptic.Elliptic._cDEKEeps\tpygeodesy.elliptic.Elliptic-class.html#_cDEKEeps\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.elliptic.Elliptic.fEinv\tpygeodesy.elliptic.Elliptic-class.html#fEinv\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.__repr__\tpygeodesy.named._Named-class.html#__repr__\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.elliptic.Elliptic._reset\tpygeodesy.elliptic.Elliptic-class.html#_reset\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.elliptic.Elliptic.deltaEinv\tpygeodesy.elliptic.Elliptic-class.html#deltaEinv\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.elliptic.Elliptic.cK\tpygeodesy.elliptic.Elliptic-class.html#cK\npygeodesy.elliptic.Elliptic.cH\tpygeodesy.elliptic.Elliptic-class.html#cH\npygeodesy.elliptic.Elliptic.cG\tpygeodesy.elliptic.Elliptic-class.html#cG\npygeodesy.elliptic.Elliptic.cE\tpygeodesy.elliptic.Elliptic-class.html#cE\npygeodesy.elliptic.Elliptic.cD\tpygeodesy.elliptic.Elliptic-class.html#cD\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.elliptic.Elliptic.reset\tpygeodesy.elliptic.Elliptic-class.html#reset\npygeodesy.elliptic.Elliptic._jam\tpygeodesy.elliptic.Elliptic-class.html#_jam\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.elliptic.Elliptic.cPi\tpygeodesy.elliptic.Elliptic-class.html#cPi\npygeodesy.elliptic.Elliptic.sncndn\tpygeodesy.elliptic.Elliptic-class.html#sncndn\npygeodesy.elliptic.Elliptic.alphap2\tpygeodesy.elliptic.Elliptic-class.html#alphap2\npygeodesy.elliptic.Elliptic.deltaPi\tpygeodesy.elliptic.Elliptic-class.html#deltaPi\npygeodesy.elliptic.Elliptic.__init__\tpygeodesy.elliptic.Elliptic-class.html#__init__\npygeodesy.elliptic.Elliptic.cKE\tpygeodesy.elliptic.Elliptic-class.html#cKE\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.elliptic.Elliptic._sncndn3\tpygeodesy.elliptic.Elliptic-class.html#_sncndn3\npygeodesy.elliptic.Elliptic.fEd\tpygeodesy.elliptic.Elliptic-class.html#fEd\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.elliptic.Elliptic._Einv\tpygeodesy.elliptic.Elliptic-class.html#_Einv\npygeodesy.elliptic.Elliptic._fXf\tpygeodesy.elliptic.Elliptic-class.html#_fXf\npygeodesy.elliptic.Elliptic._jamac2\tpygeodesy.elliptic.Elliptic-class.html#_jamac2\npygeodesy.elliptic.Elliptic._fXa\tpygeodesy.elliptic.Elliptic-class.html#_fXa\npygeodesy.elliptic.Elliptic.fRC\tpygeodesy.elliptic.Elliptic-class.html#fRC\npygeodesy.elliptic.Elliptic.fRG\tpygeodesy.elliptic.Elliptic-class.html#fRG\npygeodesy.elliptic.Elliptic.fRF\tpygeodesy.elliptic.Elliptic-class.html#fRF\npygeodesy.elliptic.Elliptic.fRD\tpygeodesy.elliptic.Elliptic-class.html#fRD\npygeodesy.elliptic.Elliptic.fRJ\tpygeodesy.elliptic.Elliptic-class.html#fRJ\npygeodesy.elliptic.Elliptic.eps\tpygeodesy.elliptic.Elliptic-class.html#eps\npygeodesy.elliptic.Elliptic.fD\tpygeodesy.elliptic.Elliptic-class.html#fD\npygeodesy.elliptic.Elliptic.fE\tpygeodesy.elliptic.Elliptic-class.html#fE\npygeodesy.elliptic.Elliptic.fF\tpygeodesy.elliptic.Elliptic-class.html#fF\npygeodesy.elliptic.Elliptic.fG\tpygeodesy.elliptic.Elliptic-class.html#fG\npygeodesy.elliptic.Elliptic.fH\tpygeodesy.elliptic.Elliptic-class.html#fH\npygeodesy.elliptic.Elliptic3Tuple\tpygeodesy.elliptic.Elliptic3Tuple-class.html\npygeodesy.named._NamedTuple.toRepr\tpygeodesy.named._NamedTuple-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._NamedTuple.toUnits\tpygeodesy.named._NamedTuple-class.html#toUnits\npygeodesy.named._NamedTuple._validate\tpygeodesy.named._NamedTuple-class.html#_validate\npygeodesy.named._NamedTuple.__str__\tpygeodesy.named._NamedTuple-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._NamedTuple._DOT_\tpygeodesy.named._NamedTuple-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._NamedTuple.reUnit\tpygeodesy.named._NamedTuple-class.html#reUnit\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.elliptic.Elliptic3Tuple._Names_\tpygeodesy.elliptic.Elliptic3Tuple-class.html#_Names_\npygeodesy.named._NamedTuple.__setattr__\tpygeodesy.named._NamedTuple-class.html#__setattr__\npygeodesy.named._NamedTuple.__new__\tpygeodesy.named._NamedTuple-class.html#__new__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._NamedTuple._validated\tpygeodesy.named._NamedTuple-class.html#_validated\npygeodesy.named._NamedTuple.__getattr__\tpygeodesy.named._NamedTuple-class.html#__getattr__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._NamedTuple._xtend\tpygeodesy.named._NamedTuple-class.html#_xtend\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._NamedTuple.dup\tpygeodesy.named._NamedTuple-class.html#dup\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedTuple.toStr\tpygeodesy.named._NamedTuple-class.html#toStr\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedTuple.units\tpygeodesy.named._NamedTuple-class.html#units\npygeodesy.named._NamedTuple.iterunits\tpygeodesy.named._NamedTuple-class.html#iterunits\npygeodesy.named._NamedTuple.iteritems\tpygeodesy.named._NamedTuple-class.html#iteritems\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._NamedTuple.items\tpygeodesy.named._NamedTuple-class.html#items\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedTuple.__delattr__\tpygeodesy.named._NamedTuple-class.html#__delattr__\npygeodesy.named._NamedTuple.__repr__\tpygeodesy.named._NamedTuple-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._NamedTuple.__hash__\tpygeodesy.named._NamedTuple-class.html#__hash__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.elliptic.Elliptic3Tuple._Units_\tpygeodesy.elliptic.Elliptic3Tuple-class.html#_Units_\npygeodesy.elliptic.EllipticError\tpygeodesy.elliptic.EllipticError-class.html\npygeodesy.epsg.EPSGError\tpygeodesy.epsg.EPSGError-class.html\npygeodesy.epsg.Epsg\tpygeodesy.epsg.Epsg-class.html\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.epsg.Epsg.__str__\tpygeodesy.epsg.Epsg-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.epsg.Epsg.zone\tpygeodesy.epsg.Epsg-class.html#zone\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.unitsBase._NamedUnit._units\tpygeodesy.unitsBase._NamedUnit-class.html#_units\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.unitsBase.Int.toStr\tpygeodesy.unitsBase.Int-class.html#toStr\npygeodesy.epsg.Epsg._band\tpygeodesy.epsg.Epsg-class.html#_band\npygeodesy.epsg.Epsg.band\tpygeodesy.epsg.Epsg-class.html#band\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.unitsBase._NamedUnit._arg_name_arg2\tpygeodesy.unitsBase._NamedUnit-class.html#_arg_name_arg2\npygeodesy.unitsBase.Int.toRepr\tpygeodesy.unitsBase.Int-class.html#toRepr\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.unitsBase._NamedUnit._toRepr\tpygeodesy.unitsBase._NamedUnit-class.html#_toRepr\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.epsg.Epsg._utmups\tpygeodesy.epsg.Epsg-class.html#_utmups\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.unitsBase._NamedUnit._std_repr\tpygeodesy.unitsBase._NamedUnit-class.html#_std_repr\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.unitsBase._NamedUnit._Error\tpygeodesy.unitsBase._NamedUnit-class.html#_Error\npygeodesy.epsg.Epsg.utmupsStr\tpygeodesy.epsg.Epsg-class.html#utmupsStr\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.epsg.Epsg._hemisphere\tpygeodesy.epsg.Epsg-class.html#_hemisphere\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.unitsBase._NamedUnit.std_repr\tpygeodesy.unitsBase._NamedUnit-class.html#std_repr\npygeodesy.epsg.Epsg.__new__\tpygeodesy.epsg.Epsg-class.html#__new__\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.unitsBase._NamedUnit.units\tpygeodesy.unitsBase._NamedUnit-class.html#units\npygeodesy.epsg.Epsg.__repr__\tpygeodesy.epsg.Epsg-class.html#__repr__\npygeodesy.epsg.Epsg._zone\tpygeodesy.epsg.Epsg-class.html#_zone\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.epsg.Epsg._epsg\tpygeodesy.epsg.Epsg-class.html#_epsg\npygeodesy.epsg.Epsg.utmups\tpygeodesy.epsg.Epsg-class.html#utmups\npygeodesy.epsg.Epsg.hemisphere\tpygeodesy.epsg.Epsg-class.html#hemisphere\npygeodesy.errors.AuxError\tpygeodesy.errors.AuxError-class.html\npygeodesy.errors.ClipError\tpygeodesy.errors.ClipError-class.html\npygeodesy.errors.ClipError.__init__\tpygeodesy.errors.ClipError-class.html#__init__\npygeodesy.errors.CrossError\tpygeodesy.errors.CrossError-class.html\npygeodesy.errors.GeodesicError\tpygeodesy.errors.GeodesicError-class.html\npygeodesy.errors.IntersectionError\tpygeodesy.errors.IntersectionError-class.html\npygeodesy.errors.IntersectionError.__init__\tpygeodesy.errors.IntersectionError-class.html#__init__\npygeodesy.errors.LenError\tpygeodesy.errors.LenError-class.html\npygeodesy.errors.LenError.__init__\tpygeodesy.errors.LenError-class.html#__init__\npygeodesy.errors.LimitError\tpygeodesy.errors.LimitError-class.html\npygeodesy.errors.MGRSError\tpygeodesy.errors.MGRSError-class.html\npygeodesy.errors.NumPyError\tpygeodesy.errors.NumPyError-class.html\npygeodesy.errors.ParseError\tpygeodesy.errors.ParseError-class.html\npygeodesy.errors.PointsError\tpygeodesy.errors.PointsError-class.html\npygeodesy.errors.RangeError\tpygeodesy.errors.RangeError-class.html\npygeodesy.errors.RhumbError\tpygeodesy.errors.RhumbError-class.html\npygeodesy.errors.SciPyError\tpygeodesy.errors.SciPyError-class.html\npygeodesy.errors.SciPyWarning\tpygeodesy.errors.SciPyWarning-class.html\npygeodesy.errors.TRFError\tpygeodesy.errors.TRFError-class.html\npygeodesy.errors.TriangleError\tpygeodesy.errors.TriangleError-class.html\npygeodesy.errors.UnitError\tpygeodesy.errors.UnitError-class.html\npygeodesy.errors.VectorError\tpygeodesy.errors.VectorError-class.html\npygeodesy.etm.ETMError\tpygeodesy.etm.ETMError-class.html\npygeodesy.etm.Etm\tpygeodesy.etm.Etm-class.html\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.utm.Utm.toEtm\tpygeodesy.utm.Utm-class.html#toEtm\npygeodesy.utm.Utm.__str__\tpygeodesy.utm.Utm-class.html#__str__\npygeodesy.utm.Utm._Bands\tpygeodesy.utm.Utm-class.html#_Bands\npygeodesy.utmupsBase.UtmUpsBase.datum\tpygeodesy.utmupsBase.UtmUpsBase-class.html#datum\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.etm.Etm.toLatLon\tpygeodesy.etm.Etm-class.html#toLatLon\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.utmupsBase.UtmUpsBase.easting\tpygeodesy.utmupsBase.UtmUpsBase-class.html#easting\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.utm.Utm.zone\tpygeodesy.utm.Utm-class.html#zone\npygeodesy.etm.Etm.parseETM\tpygeodesy.etm.Etm-class.html#parseETM\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.utmupsBase.UtmUpsBase._mgrs\tpygeodesy.utmupsBase.UtmUpsBase-class.html#_mgrs\npygeodesy.utmupsBase.UtmUpsBase._easting\tpygeodesy.utmupsBase.UtmUpsBase-class.html#_easting\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.utm.Utm.toStr\tpygeodesy.utm.Utm-class.html#toStr\npygeodesy.utmupsBase.UtmUpsBase._datum\tpygeodesy.utmupsBase.UtmUpsBase-class.html#_datum\npygeodesy.utmupsBase.UtmUpsBase._band\tpygeodesy.utmupsBase.UtmUpsBase-class.html#_band\npygeodesy.utm.Utm.band\tpygeodesy.utm.Utm-class.html#band\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.utmupsBase.UtmUpsBase._ups\tpygeodesy.utmupsBase.UtmUpsBase-class.html#_ups\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.utmupsBase.UtmUpsBase.phiFootPoint\tpygeodesy.utmupsBase.UtmUpsBase-class.html#phiFootPoint\npygeodesy.utm.Utm.toRepr\tpygeodesy.utm.Utm-class.html#toRepr\npygeodesy.etm.Etm._exactTM\tpygeodesy.etm.Etm-class.html#_exactTM\npygeodesy.utmupsBase.UtmUpsBase._mgrs_lowerleft\tpygeodesy.utmupsBase.UtmUpsBase-class.html#_mgrs_lowerleft\npygeodesy.etm.Etm.toUtm\tpygeodesy.etm.Etm-class.html#toUtm\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.utmupsBase.UtmUpsBase._lowerleft\tpygeodesy.utmupsBase.UtmUpsBase-class.html#_lowerleft\npygeodesy.utmupsBase.UtmUpsBase._gamma\tpygeodesy.utmupsBase.UtmUpsBase-class.html#_gamma\npygeodesy.utmupsBase.UtmUpsBase.falsed\tpygeodesy.utmupsBase.UtmUpsBase-class.html#falsed\npygeodesy.utmupsBase.UtmUpsBase.scale\tpygeodesy.utmupsBase.UtmUpsBase-class.html#scale\npygeodesy.utmupsBase.UtmUpsBase._latlon\tpygeodesy.utmupsBase.UtmUpsBase-class.html#_latlon\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.utmupsBase.UtmUpsBase._toRepr\tpygeodesy.utmupsBase.UtmUpsBase-class.html#_toRepr\npygeodesy.utmupsBase.UtmUpsBase.eastingnorthing2\tpygeodesy.utmupsBase.UtmUpsBase-class.html#eastingnorthing2\npygeodesy.utmupsBase.UtmUpsBase._falsed\tpygeodesy.utmupsBase.UtmUpsBase-class.html#_falsed\npygeodesy.named._NamedBase.others\tpygeodesy.named._NamedBase-class.html#others\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.utmupsBase.UtmUpsBase.toEpsg\tpygeodesy.utmupsBase.UtmUpsBase-class.html#toEpsg\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.utm.Utm.__repr__\tpygeodesy.utm.Utm-class.html#__repr__\npygeodesy.etm.Etm._toLLEB\tpygeodesy.etm.Etm-class.html#_toLLEB\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.utmupsBase.UtmUpsBase.gamma\tpygeodesy.utmupsBase.UtmUpsBase-class.html#gamma\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.utmupsBase.UtmUpsBase._scale\tpygeodesy.utmupsBase.UtmUpsBase-class.html#_scale\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.utm.Utm.pole\tpygeodesy.utm.Utm-class.html#pole\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.utmupsBase.UtmUpsBase.northing\tpygeodesy.utmupsBase.UtmUpsBase-class.html#northing\npygeodesy.utmupsBase.UtmUpsBase._latlon5args\tpygeodesy.utmupsBase.UtmUpsBase-class.html#_latlon5args\npygeodesy.utm.Utm._xcopy2\tpygeodesy.utm.Utm-class.html#_xcopy2\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.utmupsBase.UtmUpsBase.scale0\tpygeodesy.utmupsBase.UtmUpsBase-class.html#scale0\npygeodesy.etm.Etm._Error\tpygeodesy.etm.ETMError-class.html\npygeodesy.utmupsBase.UtmUpsBase.to2en\tpygeodesy.utmupsBase.UtmUpsBase-class.html#to2en\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.utmupsBase.UtmUpsBase._latlon5\tpygeodesy.utmupsBase.UtmUpsBase-class.html#_latlon5\npygeodesy.utmupsBase.UtmUpsBase._utm\tpygeodesy.utmupsBase.UtmUpsBase-class.html#_utm\npygeodesy.utmupsBase.UtmUpsBase.hemisphere\tpygeodesy.utmupsBase.UtmUpsBase-class.html#hemisphere\npygeodesy.etm.Etm.exactTM\tpygeodesy.etm.Etm-class.html#exactTM\npygeodesy.utmupsBase.UtmUpsBase.convergence\tpygeodesy.utmupsBase.UtmUpsBase-class.html#convergence\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.utm.Utm.__eq__\tpygeodesy.utm.Utm-class.html#__eq__\npygeodesy.utmupsBase.UtmUpsBase._band1\tpygeodesy.utmupsBase.UtmUpsBase-class.html#_band1\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.utmupsBase.UtmUpsBase.eastingnorthing\tpygeodesy.utmupsBase.UtmUpsBase-class.html#eastingnorthing\npygeodesy.utmupsBase.UtmUpsBase._hemisphere\tpygeodesy.utmupsBase.UtmUpsBase-class.html#_hemisphere\npygeodesy.utm.Utm.falsed2\tpygeodesy.utm.Utm-class.html#falsed2\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.utm.Utm.toUps\tpygeodesy.utm.Utm-class.html#toUps\npygeodesy.utmupsBase.UtmUpsBase._northing\tpygeodesy.utmupsBase.UtmUpsBase-class.html#_northing\npygeodesy.etm.Etm.parse\tpygeodesy.etm.Etm-class.html#parse\npygeodesy.utmupsBase.UtmUpsBase._footpoint\tpygeodesy.utmupsBase.UtmUpsBase-class.html#_footpoint\npygeodesy.etm.Etm.__init__\tpygeodesy.etm.Etm-class.html#__init__\npygeodesy.utmupsBase.UtmUpsBase._toStr\tpygeodesy.utmupsBase.UtmUpsBase-class.html#_toStr\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.utm.Utm.parseUTM\tpygeodesy.utm.Utm-class.html#parseUTM\npygeodesy.utm.Utm._zone\tpygeodesy.utm.Utm-class.html#_zone\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.utmupsBase.UtmUpsBase._epsg\tpygeodesy.utmupsBase.UtmUpsBase-class.html#_epsg\npygeodesy.utmupsBase.UtmUpsBase.toMgrs\tpygeodesy.utmupsBase.UtmUpsBase-class.html#toMgrs\npygeodesy.utmupsBase.UtmUpsBase.latFootPoint\tpygeodesy.utmupsBase.UtmUpsBase-class.html#latFootPoint\npygeodesy.utm.Utm._etm\tpygeodesy.utm.Utm-class.html#_etm\npygeodesy.utm.Utm._scale0\tpygeodesy.utm.Utm-class.html#_scale0\npygeodesy.etm.ExactTransverseMercator\tpygeodesy.etm.ExactTransverseMercator-class.html\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedBase.__str__\tpygeodesy.named._NamedBase-class.html#__str__\npygeodesy.etm.ExactTransverseMercator.datum\tpygeodesy.etm.ExactTransverseMercator-class.html#datum\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.etm.ExactTransverseMercator._k0\tpygeodesy.etm.ExactTransverseMercator-class.html#_k0\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.etm.ExactTransverseMercator._E\tpygeodesy.etm.ExactTransverseMercator-class.html#_E\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.etm.ExactTransverseMercator._zetaInv04\tpygeodesy.etm.ExactTransverseMercator-class.html#_zetaInv04\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.etm.ExactTransverseMercator.ellipsoid\tpygeodesy.etm.ExactTransverseMercator-class.html#ellipsoid\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.etm.ExactTransverseMercator._zeta3\tpygeodesy.etm.ExactTransverseMercator-class.html#_zeta3\npygeodesy.etm.ExactTransverseMercator.extendp\tpygeodesy.etm.ExactTransverseMercator-class.html#extendp\npygeodesy.etm.ExactTransverseMercator._e\tpygeodesy.etm.ExactTransverseMercator-class.html#_e\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.etm.ExactTransverseMercator._Ev\tpygeodesy.etm.ExactTransverseMercator-class.html#_Ev\npygeodesy.etm.ExactTransverseMercator._e_PI_4_\tpygeodesy.etm.ExactTransverseMercator-class.html#_e_PI_4_\npygeodesy.etm.ExactTransverseMercator._Eu_2cE_\tpygeodesy.etm.ExactTransverseMercator-class.html#_Eu_2cE_\npygeodesy.etm.ExactTransverseMercator._zetaC\tpygeodesy.etm.ExactTransverseMercator-class.html#_zetaC\npygeodesy.etm.ExactTransverseMercator._3_mv\tpygeodesy.etm.ExactTransverseMercator-class.html#_3_mv\npygeodesy.etm.ExactTransverseMercator.toStr\tpygeodesy.etm.ExactTransverseMercator-class.html#toStr\npygeodesy.etm.ExactTransverseMercator._datum\tpygeodesy.etm.ExactTransverseMercator-class.html#_datum\npygeodesy.etm.ExactTransverseMercator._Ev_cKE\tpygeodesy.etm.ExactTransverseMercator-class.html#_Ev_cKE\npygeodesy.etm.ExactTransverseMercator.majoradius\tpygeodesy.etm.ExactTransverseMercator-class.html#majoradius\npygeodesy.etm.ExactTransverseMercator._1_mu_2\tpygeodesy.etm.ExactTransverseMercator-class.html#_1_mu_2\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.etm.ExactTransverseMercator._extendp\tpygeodesy.etm.ExactTransverseMercator-class.html#_extendp\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.etm.ExactTransverseMercator.raiser\tpygeodesy.etm.ExactTransverseMercator-class.html#raiser\npygeodesy.etm.ExactTransverseMercator._scaled2\tpygeodesy.etm.ExactTransverseMercator-class.html#_scaled2\npygeodesy.etm.ExactTransverseMercator._Eu_cE_4\tpygeodesy.etm.ExactTransverseMercator-class.html#_Eu_cE_4\npygeodesy.named._NamedBase.toRepr\tpygeodesy.named._NamedBase-class.html#toRepr\npygeodesy.etm.ExactTransverseMercator._sigmaInv04\tpygeodesy.etm.ExactTransverseMercator-class.html#_sigmaInv04\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.etm.ExactTransverseMercator._resets\tpygeodesy.etm.ExactTransverseMercator-class.html#_resets\npygeodesy.etm.ExactTransverseMercator._k0_a\tpygeodesy.etm.ExactTransverseMercator-class.html#_k0_a\npygeodesy.etm.ExactTransverseMercator._Inv03\tpygeodesy.etm.ExactTransverseMercator-class.html#_Inv03\npygeodesy.etm.ExactTransverseMercator._1_e_PI_2\tpygeodesy.etm.ExactTransverseMercator-class.html#_1_e_PI_2\npygeodesy.etm.ExactTransverseMercator.flattening\tpygeodesy.etm.ExactTransverseMercator-class.html#flattening\npygeodesy.etm.ExactTransverseMercator._lon0\tpygeodesy.etm.ExactTransverseMercator-class.html#_lon0\npygeodesy.etm.ExactTransverseMercator._Eu_cK_cE\tpygeodesy.etm.ExactTransverseMercator-class.html#_Eu_cK_cE\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.etm.ExactTransverseMercator._Eu_cE\tpygeodesy.etm.ExactTransverseMercator-class.html#_Eu_cE\npygeodesy.etm.ExactTransverseMercator._zetaInv2\tpygeodesy.etm.ExactTransverseMercator-class.html#_zetaInv2\npygeodesy.named._NamedBase.others\tpygeodesy.named._NamedBase-class.html#others\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.etm.ExactTransverseMercator._1_2e_PI_2\tpygeodesy.etm.ExactTransverseMercator-class.html#_1_2e_PI_2\npygeodesy.etm.ExactTransverseMercator._Eu_cK\tpygeodesy.etm.ExactTransverseMercator-class.html#_Eu_cK\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.etm.ExactTransverseMercator._zetaDwd2\tpygeodesy.etm.ExactTransverseMercator-class.html#_zetaDwd2\npygeodesy.etm.ExactTransverseMercator.reverse\tpygeodesy.etm.ExactTransverseMercator-class.html#reverse\npygeodesy.etm.ExactTransverseMercator._mu\tpygeodesy.etm.ExactTransverseMercator-class.html#_mu\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.etm.ExactTransverseMercator._zetaScaled\tpygeodesy.etm.ExactTransverseMercator-class.html#_zetaScaled\npygeodesy.named._NamedBase.__repr__\tpygeodesy.named._NamedBase-class.html#__repr__\npygeodesy.etm.ExactTransverseMercator._sigmaInv2\tpygeodesy.etm.ExactTransverseMercator-class.html#_sigmaInv2\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.etm.ExactTransverseMercator._e_TAYTOL\tpygeodesy.etm.ExactTransverseMercator-class.html#_e_TAYTOL\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.etm.ExactTransverseMercator._lat0\tpygeodesy.etm.ExactTransverseMercator-class.html#_lat0\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.etm.ExactTransverseMercator.equatoradius\tpygeodesy.etm.ExactTransverseMercator-class.html#equatoradius\npygeodesy.etm.ExactTransverseMercator._Ev_3cKE_4\tpygeodesy.etm.ExactTransverseMercator-class.html#_Ev_3cKE_4\npygeodesy.etm.ExactTransverseMercator._sigmaDwd2\tpygeodesy.etm.ExactTransverseMercator-class.html#_sigmaDwd2\npygeodesy.etm.ExactTransverseMercator.forward\tpygeodesy.etm.ExactTransverseMercator-class.html#forward\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.etm.ExactTransverseMercator._mv\tpygeodesy.etm.ExactTransverseMercator-class.html#_mv\npygeodesy.etm.ExactTransverseMercator.reset\tpygeodesy.etm.ExactTransverseMercator-class.html#reset\npygeodesy.etm.ExactTransverseMercator.f\tpygeodesy.etm.ExactTransverseMercator-class.html#f\npygeodesy.etm.ExactTransverseMercator._Newton2\tpygeodesy.etm.ExactTransverseMercator-class.html#_Newton2\npygeodesy.etm.ExactTransverseMercator._Ev_cK\tpygeodesy.etm.ExactTransverseMercator-class.html#_Ev_cK\npygeodesy.etm.ExactTransverseMercator.iteration\tpygeodesy.etm.ExactTransverseMercator-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.etm.ExactTransverseMercator._Eu\tpygeodesy.etm.ExactTransverseMercator-class.html#_Eu\npygeodesy.etm.ExactTransverseMercator.lon0\tpygeodesy.etm.ExactTransverseMercator-class.html#lon0\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.etm.ExactTransverseMercator._sigmaC\tpygeodesy.etm.ExactTransverseMercator-class.html#_sigmaC\npygeodesy.etm.ExactTransverseMercator.__init__\tpygeodesy.etm.ExactTransverseMercator-class.html#__init__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.etm.ExactTransverseMercator.k0\tpygeodesy.etm.ExactTransverseMercator-class.html#k0\npygeodesy.etm.ExactTransverseMercator._raiser\tpygeodesy.etm.ExactTransverseMercator-class.html#_raiser\npygeodesy.etm.ExactTransverseMercator._Ev_5cKE_4\tpygeodesy.etm.ExactTransverseMercator-class.html#_Ev_5cKE_4\npygeodesy.etm.ExactTransverseMercator._sncndn6\tpygeodesy.etm.ExactTransverseMercator-class.html#_sncndn6\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.etm.ExactTransverseMercator.a\tpygeodesy.etm.ExactTransverseMercator-class.html#a\npygeodesy.etm.ExactTransverseMercator._e_PI_2\tpygeodesy.etm.ExactTransverseMercator-class.html#_e_PI_2\npygeodesy.etm.ExactTransverseMercator._1_e_90\tpygeodesy.etm.ExactTransverseMercator-class.html#_1_e_90\npygeodesy.etm.ExactTransverseMercator._sigma3\tpygeodesy.etm.ExactTransverseMercator-class.html#_sigma3\npygeodesy.etm.ExactTransverseMercator._Eu_2cK_PI\tpygeodesy.etm.ExactTransverseMercator-class.html#_Eu_2cK_PI\npygeodesy.etm.ExactTransverseMercator._3_mv_e\tpygeodesy.etm.ExactTransverseMercator-class.html#_3_mv_e\npygeodesy.fmath.Fcbrt\tpygeodesy.fmath.Fcbrt-class.html\npygeodesy.fsums.Fsum.__int__\tpygeodesy.fsums.Fsum-class.html#__int__\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.fsums.Fsum._facc_dot\tpygeodesy.fsums.Fsum-class.html#_facc_dot\npygeodesy.fsums.Fsum.fsum2_\tpygeodesy.fsums.Fsum-class.html#fsum2_\npygeodesy.fsums.Fsum.__str__\tpygeodesy.fsums.Fsum-class.html#__str__\npygeodesy.fsums.Fsum.__gt__\tpygeodesy.fsums.Fsum-class.html#__gt__\npygeodesy.fsums.Fsum.fint\tpygeodesy.fsums.Fsum-class.html#fint\npygeodesy.fsums.Fsum.__imatmul__\tpygeodesy.fsums.Fsum-class.html#__imatmul__\npygeodesy.fsums.Fsum.__bool__\tpygeodesy.fsums.Fsum-class.html#__bool__\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.fsums.Fsum.__rdiv__\tpygeodesy.fsums.Fsum-class.html#__rdiv__\npygeodesy.fsums.Fsum.__rmul__\tpygeodesy.fsums.Fsum-class.html#__rmul__\npygeodesy.fsums.Fsum.__lt__\tpygeodesy.fsums.Fsum-class.html#__lt__\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.fsums.Fsum._Fsum_as\tpygeodesy.fsums.Fsum-class.html#_Fsum_as\npygeodesy.fsums.Fsum.fover\tpygeodesy.fsums.Fsum-class.html#fover\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.fsums.Fsum.__cmp__\tpygeodesy.fsums.Fsum-class.html#__cmp__\npygeodesy.fsums.Fsum._n\tpygeodesy.fsums.Fsum-class.html#_n\npygeodesy.fsums.Fsum.__rfloordiv__\tpygeodesy.fsums.Fsum-class.html#__rfloordiv__\npygeodesy.fsums.Fsum._ps_acc\tpygeodesy.fsums.Fsum-class.html#_ps_acc\npygeodesy.fsums.Fsum.is_scalar\tpygeodesy.fsums.Fsum-class.html#is_scalar\npygeodesy.fsums.Fsum.fadd\tpygeodesy.fsums.Fsum-class.html#fadd\npygeodesy.fsums.Fsum.__call__\tpygeodesy.fsums.Fsum-class.html#__call__\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.fsums.Fsum._mul_Fsum\tpygeodesy.fsums.Fsum-class.html#_mul_Fsum\npygeodesy.fsums.Fsum.real\tpygeodesy.fsums.Fsum-class.html#real\npygeodesy.fsums.Fsum.toStr\tpygeodesy.fsums.Fsum-class.html#toStr\npygeodesy.fsums.Fsum.f2product\tpygeodesy.fsums.Fsum-class.html#f2product\npygeodesy.fsums.Fsum.ceil\tpygeodesy.fsums.Fsum-class.html#ceil\npygeodesy.fsums.Fsum.__pow__\tpygeodesy.fsums.Fsum-class.html#__pow__\npygeodesy.fsums.Fsum._1_Over\tpygeodesy.fsums.Fsum-class.html#_1_Over\npygeodesy.fsums.Fsum.Fsum_\tpygeodesy.fsums.Fsum-class.html#Fsum_\npygeodesy.fsums.Fsum.Fsumf_\tpygeodesy.fsums.Fsum-class.html#Fsumf_\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.fsums.Fsum._isfine\tpygeodesy.fsums.Fsum-class.html#_isfine\npygeodesy.fsums.Fsum.int_float\tpygeodesy.fsums.Fsum-class.html#int_float\npygeodesy.fsums.Fsum._pow_2_3\tpygeodesy.fsums.Fsum-class.html#_pow_2_3\npygeodesy.fsums.Fsum.__nonzero__\tpygeodesy.fsums.Fsum-class.html#__nonzero__\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.fsums.Fsum._nfprs2\tpygeodesy.fsums.Fsum-class.html#_nfprs2\npygeodesy.fsums.Fsum.signOf\tpygeodesy.fsums.Fsum-class.html#signOf\npygeodesy.fsums.Fsum.__mod__\tpygeodesy.fsums.Fsum-class.html#__mod__\npygeodesy.fsums.Fsum.fint2\tpygeodesy.fsums.Fsum-class.html#fint2\npygeodesy.fsums.Fsum._mul_scalar\tpygeodesy.fsums.Fsum-class.html#_mul_scalar\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.fsums.Fsum._facc_args\tpygeodesy.fsums.Fsum-class.html#_facc_args\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.fsums.Fsum.__long__\tpygeodesy.fsums.Fsum-class.html#__long__\npygeodesy.fsums.Fsum._pow_0_1\tpygeodesy.fsums.Fsum-class.html#_pow_0_1\npygeodesy.fsums.Fsum.cmp\tpygeodesy.fsums.Fsum-class.html#cmp\npygeodesy.fsums.Fsum.toRepr\tpygeodesy.fsums.Fsum-class.html#toRepr\npygeodesy.fsums.Fsum._RESIDUAL\tpygeodesy.fsums.Fsum-class.html#_RESIDUAL\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.fsums.Fsum._truediv\tpygeodesy.fsums.Fsum-class.html#_truediv\npygeodesy.fsums.Fsum._ps_1sum\tpygeodesy.fsums.Fsum-class.html#_ps_1sum\npygeodesy.fsums.Fsum._pow\tpygeodesy.fsums.Fsum-class.html#_pow\npygeodesy.fsums.Fsum._fset\tpygeodesy.fsums.Fsum-class.html#_fset\npygeodesy.fsums.Fsum.__truediv__\tpygeodesy.fsums.Fsum-class.html#__truediv__\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.fsums.Fsum.__ceil__\tpygeodesy.fsums.Fsum-class.html#__ceil__\npygeodesy.fsums.Fsum.__rmod__\tpygeodesy.fsums.Fsum-class.html#__rmod__\npygeodesy.fsums.Fsum._ps_mul\tpygeodesy.fsums.Fsum-class.html#_ps_mul\npygeodesy.fsums.Fsum._facc_power\tpygeodesy.fsums.Fsum-class.html#_facc_power\npygeodesy.fsums.Fsum.as_integer_ratio\tpygeodesy.fsums.Fsum-class.html#as_integer_ratio\npygeodesy.fsums.Fsum.partials\tpygeodesy.fsums.Fsum-class.html#partials\npygeodesy.fsums.Fsum.is_math_fsum\tpygeodesy.fsums.Fsum-class.html#is_math_fsum\npygeodesy.fsums.Fsum.fsum_\tpygeodesy.fsums.Fsum-class.html#fsum_\npygeodesy.fsums.Fsum.as_iscalar\tpygeodesy.fsums.Fsum-class.html#as_iscalar\npygeodesy.fsums.Fsum.__ne__\tpygeodesy.fsums.Fsum-class.html#__ne__\npygeodesy.fsums.Fsum._pow_int\tpygeodesy.fsums.Fsum-class.html#_pow_int\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.fsums.Fsum.__ifloordiv__\tpygeodesy.fsums.Fsum-class.html#__ifloordiv__\npygeodesy.fsums.Fsum._ErrorXs\tpygeodesy.fsums.Fsum-class.html#_ErrorXs\npygeodesy.fsums.Fsum._fmul\tpygeodesy.fsums.Fsum-class.html#_fmul\npygeodesy.fsums.Fsum.residual\tpygeodesy.fsums.Fsum-class.html#residual\npygeodesy.fsums.Fsum.rdiv\tpygeodesy.fsums.Fsum-class.html#rdiv\npygeodesy.fsums.Fsum._facc_neg\tpygeodesy.fsums.Fsum-class.html#_facc_neg\npygeodesy.fsums.Fsum._f2product\tpygeodesy.fsums.Fsum-class.html#_f2product\npygeodesy.fsums.Fsum._mul_reduce\tpygeodesy.fsums.Fsum-class.html#_mul_reduce\npygeodesy.fsums.Fsum._fprs2\tpygeodesy.fsums.Fsum-class.html#_fprs2\npygeodesy.fsums.Fsum.__divmod__\tpygeodesy.fsums.Fsum-class.html#__divmod__\npygeodesy.fsums.Fsum._ErrorX\tpygeodesy.fsums.Fsum-class.html#_ErrorX\npygeodesy.fsums.Fsum._neg\tpygeodesy.fsums.Fsum-class.html#_neg\npygeodesy.fsums.Fsum.__rmatmul__\tpygeodesy.fsums.Fsum-class.html#__rmatmul__\npygeodesy.fsums.Fsum.fsum2\tpygeodesy.fsums.Fsum-class.html#fsum2\npygeodesy.fsums.Fsum._facc\tpygeodesy.fsums.Fsum-class.html#_facc\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.fsums.Fsum.fcopy\tpygeodesy.fsums.Fsum-class.html#fcopy\npygeodesy.fsums.Fsum.__imul__\tpygeodesy.fsums.Fsum-class.html#__imul__\npygeodesy.fsums.Fsum.__trunc__\tpygeodesy.fsums.Fsum-class.html#__trunc__\npygeodesy.fsums.Fsum.fma_\tpygeodesy.fsums.Fsum-class.html#fma_\npygeodesy.fsums.Fsum.__mul__\tpygeodesy.fsums.Fsum-class.html#__mul__\npygeodesy.fsums.Fsum._fpow\tpygeodesy.fsums.Fsum-class.html#_fpow\npygeodesy.fsums.Fsum.__matmul__\tpygeodesy.fsums.Fsum-class.html#__matmul__\npygeodesy.fsums.Fsum._fsub\tpygeodesy.fsums.Fsum-class.html#_fsub\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.fsums.Fsum.fadd_\tpygeodesy.fsums.Fsum-class.html#fadd_\npygeodesy.fsums.Fsum.fsub\tpygeodesy.fsums.Fsum-class.html#fsub\npygeodesy.fsums.Fsum.fset_\tpygeodesy.fsums.Fsum-class.html#fset_\npygeodesy.fsums.Fsum.pow\tpygeodesy.fsums.Fsum-class.html#pow\npygeodesy.fsums.Fsum.fsum\tpygeodesy.fsums.Fsum-class.html#fsum\npygeodesy.fsums.Fsum.fmul\tpygeodesy.fsums.Fsum-class.html#fmul\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.fsums.Fsum.__rtruediv__\tpygeodesy.fsums.Fsum-class.html#__rtruediv__\npygeodesy.fsums.Fsum.__rsub__\tpygeodesy.fsums.Fsum-class.html#__rsub__\npygeodesy.fsums.Fsum.divmod\tpygeodesy.fsums.Fsum-class.html#divmod\npygeodesy.fsums.Fsum.float_int\tpygeodesy.fsums.Fsum-class.html#float_int\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.fsums.Fsum.is_integer\tpygeodesy.fsums.Fsum-class.html#is_integer\npygeodesy.fsums.Fsum._copyd\tpygeodesy.fsums.Fsum-class.html#_copyd\npygeodesy.fsums.Fsum.__float__\tpygeodesy.fsums.Fsum-class.html#__float__\npygeodesy.fsums.Fsum.__rpow__\tpygeodesy.fsums.Fsum-class.html#__rpow__\npygeodesy.fsums.Fsum._fint2\tpygeodesy.fsums.Fsum-class.html#_fint2\npygeodesy.fsums.Fsum._fma\tpygeodesy.fsums.Fsum-class.html#_fma\npygeodesy.fsums.Fsum.fsum2f_\tpygeodesy.fsums.Fsum-class.html#fsum2f_\npygeodesy.fsums.Fsum._facc_xsum\tpygeodesy.fsums.Fsum-class.html#_facc_xsum\npygeodesy.fsums.Fsum.__abs__\tpygeodesy.fsums.Fsum-class.html#__abs__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.fsums.Fsum._cmp_0\tpygeodesy.fsums.Fsum-class.html#_cmp_0\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.fsums.Fsum.__itruediv__\tpygeodesy.fsums.Fsum-class.html#__itruediv__\npygeodesy.fsums.Fsum.fma\tpygeodesy.fsums.Fsum-class.html#fma\npygeodesy.fsums.Fsum.__isub__\tpygeodesy.fsums.Fsum-class.html#__isub__\npygeodesy.fsums.Fsum.__rdivmod__\tpygeodesy.fsums.Fsum-class.html#__rdivmod__\npygeodesy.fsums.Fsum._Error\tpygeodesy.fsums.Fsum-class.html#_Error\npygeodesy.fsums.Fsum.__invert__\tpygeodesy.fsums.Fsum-class.html#__invert__\npygeodesy.fsums.Fsum.is_math_fma\tpygeodesy.fsums.Fsum-class.html#is_math_fma\npygeodesy.fsums.Fsum.fpow\tpygeodesy.fsums.Fsum-class.html#fpow\npygeodesy.fsums.Fsum._facc_scalar\tpygeodesy.fsums.Fsum-class.html#_facc_scalar\npygeodesy.fsums.Fsum.imag\tpygeodesy.fsums.Fsum-class.html#imag\npygeodesy.fsums.Fsum._ps_neg\tpygeodesy.fsums.Fsum-class.html#_ps_neg\npygeodesy.fsums.Fsum._nonfiniteX\tpygeodesy.fsums.Fsum-class.html#_nonfiniteX\npygeodesy.fsums.Fsum.__iter__\tpygeodesy.fsums.Fsum-class.html#__iter__\npygeodesy.fsums.Fsum.Fsum2Tuple_\tpygeodesy.fsums.Fsum-class.html#Fsum2Tuple_\npygeodesy.fsums.Fsum._ftruediv\tpygeodesy.fsums.Fsum-class.html#_ftruediv\npygeodesy.fsums.Fsum.fsub_\tpygeodesy.fsums.Fsum-class.html#fsub_\npygeodesy.fsums.Fsum.copy\tpygeodesy.fsums.Fsum-class.html#copy\npygeodesy.fsums.Fsum.__eq__\tpygeodesy.fsums.Fsum-class.html#__eq__\npygeodesy.fsums.Fsum._facc_scalar_\tpygeodesy.fsums.Fsum-class.html#_facc_scalar_\npygeodesy.named._Named.__repr__\tpygeodesy.named._Named-class.html#__repr__\npygeodesy.fsums.Fsum.__round__\tpygeodesy.fsums.Fsum-class.html#__round__\npygeodesy.fsums.Fsum._fhorner\tpygeodesy.fsums.Fsum-class.html#_fhorner\npygeodesy.fsums.Fsum.__ipow__\tpygeodesy.fsums.Fsum-class.html#__ipow__\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.fsums.Fsum.__iadd__\tpygeodesy.fsums.Fsum-class.html#__iadd__\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.fsums.Fsum.fdiv\tpygeodesy.fsums.Fsum-class.html#fdiv\npygeodesy.fsums.Fsum.__len__\tpygeodesy.fsums.Fsum-class.html#__len__\npygeodesy.fsums.Fsum.__floordiv__\tpygeodesy.fsums.Fsum-class.html#__floordiv__\npygeodesy.fsums.Fsum.__hash__\tpygeodesy.fsums.Fsum-class.html#__hash__\npygeodesy.fsums.Fsum.__sub__\tpygeodesy.fsums.Fsum-class.html#__sub__\npygeodesy.fsums.Fsum.root\tpygeodesy.fsums.Fsum-class.html#root\npygeodesy.fsums.Fsum.__ge__\tpygeodesy.fsums.Fsum-class.html#__ge__\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.fsums.Fsum._update\tpygeodesy.fsums.Fsum-class.html#_update\npygeodesy.fsums.Fsum.fdivmod\tpygeodesy.fsums.Fsum-class.html#fdivmod\npygeodesy.fsums.Fsum._fdivmod2\tpygeodesy.fsums.Fsum-class.html#_fdivmod2\npygeodesy.fsums.Fsum._finite\tpygeodesy.fsums.Fsum-class.html#_finite\npygeodesy.fsums.Fsum.__radd__\tpygeodesy.fsums.Fsum-class.html#__radd__\npygeodesy.fsums.Fsum.__floor__\tpygeodesy.fsums.Fsum-class.html#__floor__\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.fmath.Fcbrt.__init__\tpygeodesy.fmath.Fcbrt-class.html#__init__\npygeodesy.fsums.Fsum._f2mul\tpygeodesy.fsums.Fsum-class.html#_f2mul\npygeodesy.fsums.Fsum.__imod__\tpygeodesy.fsums.Fsum-class.html#__imod__\npygeodesy.fsums.Fsum._fprs\tpygeodesy.fsums.Fsum-class.html#_fprs\npygeodesy.fsums.Fsum.floor\tpygeodesy.fsums.Fsum-class.html#floor\npygeodesy.fsums.Fsum._optionals\tpygeodesy.fsums.Fsum-class.html#_optionals\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.fsums.Fsum._fadd\tpygeodesy.fsums.Fsum-class.html#_fadd\npygeodesy.fsums.Fsum.__pos__\tpygeodesy.fsums.Fsum-class.html#__pos__\npygeodesy.fsums.Fsum._raiser\tpygeodesy.fsums.Fsum-class.html#_raiser\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.fsums.Fsum.f2mul\tpygeodesy.fsums.Fsum-class.html#f2mul\npygeodesy.fsums.Fsum._scalar\tpygeodesy.fsums.Fsum-class.html#_scalar\npygeodesy.fsums.Fsum.is_exact\tpygeodesy.fsums.Fsum-class.html#is_exact\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.fsums.Fsum.fsumf_\tpygeodesy.fsums.Fsum-class.html#fsumf_\npygeodesy.fsums.Fsum.__idiv__\tpygeodesy.fsums.Fsum-class.html#__idiv__\npygeodesy.fsums.Fsum.is_finite\tpygeodesy.fsums.Fsum-class.html#is_finite\npygeodesy.fsums.Fsum.RESIDUAL\tpygeodesy.fsums.Fsum-class.html#RESIDUAL\npygeodesy.fsums.Fsum._pow_Fsum\tpygeodesy.fsums.Fsum-class.html#_pow_Fsum\npygeodesy.fsums.Fsum.__add__\tpygeodesy.fsums.Fsum-class.html#__add__\npygeodesy.fsums.Fsum.nonfinitesOK\tpygeodesy.fsums.Fsum-class.html#nonfinitesOK\npygeodesy.fsums.Fsum._ps_other\tpygeodesy.fsums.Fsum-class.html#_ps_other\npygeodesy.fsums.Fsum._rcopyd\tpygeodesy.fsums.Fsum-class.html#_rcopyd\npygeodesy.fsums.Fsum.nonfinites\tpygeodesy.fsums.Fsum-class.html#nonfinites\npygeodesy.fsums.Fsum._pow_scalar\tpygeodesy.fsums.Fsum-class.html#_pow_scalar\npygeodesy.fsums.Fsum._ResidualError\tpygeodesy.fsums.Fsum-class.html#_ResidualError\npygeodesy.fsums.Fsum._Fsum\tpygeodesy.fsums.Fsum-class.html#_Fsum\npygeodesy.fsums.Fsum._fsum2\tpygeodesy.fsums.Fsum-class.html#_fsum2\npygeodesy.fsums.Fsum._floordiv\tpygeodesy.fsums.Fsum-class.html#_floordiv\npygeodesy.fsums.Fsum.__div__\tpygeodesy.fsums.Fsum-class.html#__div__\npygeodesy.fsums.Fsum.__neg__\tpygeodesy.fsums.Fsum-class.html#__neg__\npygeodesy.fsums.Fsum.f2mul_\tpygeodesy.fsums.Fsum-class.html#f2mul_\npygeodesy.fsums.Fsum.__le__\tpygeodesy.fsums.Fsum-class.html#__le__\npygeodesy.fmath.Fdot\tpygeodesy.fmath.Fdot-class.html\npygeodesy.fsums.Fsum.__int__\tpygeodesy.fsums.Fsum-class.html#__int__\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.fsums.Fsum._facc_dot\tpygeodesy.fsums.Fsum-class.html#_facc_dot\npygeodesy.fsums.Fsum.fsum2_\tpygeodesy.fsums.Fsum-class.html#fsum2_\npygeodesy.fsums.Fsum.__str__\tpygeodesy.fsums.Fsum-class.html#__str__\npygeodesy.fsums.Fsum.__gt__\tpygeodesy.fsums.Fsum-class.html#__gt__\npygeodesy.fsums.Fsum.fint\tpygeodesy.fsums.Fsum-class.html#fint\npygeodesy.fsums.Fsum.__imatmul__\tpygeodesy.fsums.Fsum-class.html#__imatmul__\npygeodesy.fsums.Fsum.__bool__\tpygeodesy.fsums.Fsum-class.html#__bool__\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.fsums.Fsum.__rdiv__\tpygeodesy.fsums.Fsum-class.html#__rdiv__\npygeodesy.fsums.Fsum.__rmul__\tpygeodesy.fsums.Fsum-class.html#__rmul__\npygeodesy.fsums.Fsum.__lt__\tpygeodesy.fsums.Fsum-class.html#__lt__\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.fsums.Fsum._Fsum_as\tpygeodesy.fsums.Fsum-class.html#_Fsum_as\npygeodesy.fsums.Fsum.fover\tpygeodesy.fsums.Fsum-class.html#fover\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.fsums.Fsum.__cmp__\tpygeodesy.fsums.Fsum-class.html#__cmp__\npygeodesy.fsums.Fsum._n\tpygeodesy.fsums.Fsum-class.html#_n\npygeodesy.fsums.Fsum.__rfloordiv__\tpygeodesy.fsums.Fsum-class.html#__rfloordiv__\npygeodesy.fsums.Fsum._ps_acc\tpygeodesy.fsums.Fsum-class.html#_ps_acc\npygeodesy.fsums.Fsum.is_scalar\tpygeodesy.fsums.Fsum-class.html#is_scalar\npygeodesy.fsums.Fsum.fadd\tpygeodesy.fsums.Fsum-class.html#fadd\npygeodesy.fsums.Fsum.__call__\tpygeodesy.fsums.Fsum-class.html#__call__\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.fsums.Fsum._mul_Fsum\tpygeodesy.fsums.Fsum-class.html#_mul_Fsum\npygeodesy.fsums.Fsum.real\tpygeodesy.fsums.Fsum-class.html#real\npygeodesy.fsums.Fsum.toStr\tpygeodesy.fsums.Fsum-class.html#toStr\npygeodesy.fsums.Fsum.f2product\tpygeodesy.fsums.Fsum-class.html#f2product\npygeodesy.fsums.Fsum.ceil\tpygeodesy.fsums.Fsum-class.html#ceil\npygeodesy.fsums.Fsum.__pow__\tpygeodesy.fsums.Fsum-class.html#__pow__\npygeodesy.fsums.Fsum._1_Over\tpygeodesy.fsums.Fsum-class.html#_1_Over\npygeodesy.fsums.Fsum.Fsum_\tpygeodesy.fsums.Fsum-class.html#Fsum_\npygeodesy.fsums.Fsum.Fsumf_\tpygeodesy.fsums.Fsum-class.html#Fsumf_\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.fsums.Fsum._isfine\tpygeodesy.fsums.Fsum-class.html#_isfine\npygeodesy.fsums.Fsum.int_float\tpygeodesy.fsums.Fsum-class.html#int_float\npygeodesy.fsums.Fsum._pow_2_3\tpygeodesy.fsums.Fsum-class.html#_pow_2_3\npygeodesy.fsums.Fsum.__nonzero__\tpygeodesy.fsums.Fsum-class.html#__nonzero__\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.fsums.Fsum._nfprs2\tpygeodesy.fsums.Fsum-class.html#_nfprs2\npygeodesy.fsums.Fsum.signOf\tpygeodesy.fsums.Fsum-class.html#signOf\npygeodesy.fsums.Fsum.__mod__\tpygeodesy.fsums.Fsum-class.html#__mod__\npygeodesy.fsums.Fsum.fint2\tpygeodesy.fsums.Fsum-class.html#fint2\npygeodesy.fsums.Fsum._mul_scalar\tpygeodesy.fsums.Fsum-class.html#_mul_scalar\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.fsums.Fsum._facc_args\tpygeodesy.fsums.Fsum-class.html#_facc_args\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.fsums.Fsum.__long__\tpygeodesy.fsums.Fsum-class.html#__long__\npygeodesy.fsums.Fsum._pow_0_1\tpygeodesy.fsums.Fsum-class.html#_pow_0_1\npygeodesy.fsums.Fsum.cmp\tpygeodesy.fsums.Fsum-class.html#cmp\npygeodesy.fsums.Fsum.toRepr\tpygeodesy.fsums.Fsum-class.html#toRepr\npygeodesy.fsums.Fsum._RESIDUAL\tpygeodesy.fsums.Fsum-class.html#_RESIDUAL\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.fsums.Fsum._truediv\tpygeodesy.fsums.Fsum-class.html#_truediv\npygeodesy.fsums.Fsum._ps_1sum\tpygeodesy.fsums.Fsum-class.html#_ps_1sum\npygeodesy.fsums.Fsum._pow\tpygeodesy.fsums.Fsum-class.html#_pow\npygeodesy.fsums.Fsum._fset\tpygeodesy.fsums.Fsum-class.html#_fset\npygeodesy.fsums.Fsum.__truediv__\tpygeodesy.fsums.Fsum-class.html#__truediv__\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.fsums.Fsum.__ceil__\tpygeodesy.fsums.Fsum-class.html#__ceil__\npygeodesy.fsums.Fsum.__rmod__\tpygeodesy.fsums.Fsum-class.html#__rmod__\npygeodesy.fsums.Fsum._ps_mul\tpygeodesy.fsums.Fsum-class.html#_ps_mul\npygeodesy.fsums.Fsum._facc_power\tpygeodesy.fsums.Fsum-class.html#_facc_power\npygeodesy.fsums.Fsum.as_integer_ratio\tpygeodesy.fsums.Fsum-class.html#as_integer_ratio\npygeodesy.fsums.Fsum.partials\tpygeodesy.fsums.Fsum-class.html#partials\npygeodesy.fsums.Fsum.is_math_fsum\tpygeodesy.fsums.Fsum-class.html#is_math_fsum\npygeodesy.fsums.Fsum.fsum_\tpygeodesy.fsums.Fsum-class.html#fsum_\npygeodesy.fsums.Fsum.as_iscalar\tpygeodesy.fsums.Fsum-class.html#as_iscalar\npygeodesy.fsums.Fsum.__ne__\tpygeodesy.fsums.Fsum-class.html#__ne__\npygeodesy.fsums.Fsum._pow_int\tpygeodesy.fsums.Fsum-class.html#_pow_int\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.fsums.Fsum.__ifloordiv__\tpygeodesy.fsums.Fsum-class.html#__ifloordiv__\npygeodesy.fsums.Fsum._ErrorXs\tpygeodesy.fsums.Fsum-class.html#_ErrorXs\npygeodesy.fsums.Fsum._fmul\tpygeodesy.fsums.Fsum-class.html#_fmul\npygeodesy.fsums.Fsum.residual\tpygeodesy.fsums.Fsum-class.html#residual\npygeodesy.fsums.Fsum.rdiv\tpygeodesy.fsums.Fsum-class.html#rdiv\npygeodesy.fsums.Fsum._facc_neg\tpygeodesy.fsums.Fsum-class.html#_facc_neg\npygeodesy.fsums.Fsum._f2product\tpygeodesy.fsums.Fsum-class.html#_f2product\npygeodesy.fsums.Fsum._mul_reduce\tpygeodesy.fsums.Fsum-class.html#_mul_reduce\npygeodesy.fsums.Fsum._fprs2\tpygeodesy.fsums.Fsum-class.html#_fprs2\npygeodesy.fsums.Fsum.__divmod__\tpygeodesy.fsums.Fsum-class.html#__divmod__\npygeodesy.fsums.Fsum._ErrorX\tpygeodesy.fsums.Fsum-class.html#_ErrorX\npygeodesy.fsums.Fsum._neg\tpygeodesy.fsums.Fsum-class.html#_neg\npygeodesy.fsums.Fsum.__rmatmul__\tpygeodesy.fsums.Fsum-class.html#__rmatmul__\npygeodesy.fsums.Fsum.fsum2\tpygeodesy.fsums.Fsum-class.html#fsum2\npygeodesy.fsums.Fsum._facc\tpygeodesy.fsums.Fsum-class.html#_facc\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.fsums.Fsum.fcopy\tpygeodesy.fsums.Fsum-class.html#fcopy\npygeodesy.fsums.Fsum.__imul__\tpygeodesy.fsums.Fsum-class.html#__imul__\npygeodesy.fsums.Fsum.__trunc__\tpygeodesy.fsums.Fsum-class.html#__trunc__\npygeodesy.fsums.Fsum.fma_\tpygeodesy.fsums.Fsum-class.html#fma_\npygeodesy.fsums.Fsum.__mul__\tpygeodesy.fsums.Fsum-class.html#__mul__\npygeodesy.fsums.Fsum._fpow\tpygeodesy.fsums.Fsum-class.html#_fpow\npygeodesy.fsums.Fsum.__matmul__\tpygeodesy.fsums.Fsum-class.html#__matmul__\npygeodesy.fsums.Fsum._fsub\tpygeodesy.fsums.Fsum-class.html#_fsub\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.fsums.Fsum.fadd_\tpygeodesy.fsums.Fsum-class.html#fadd_\npygeodesy.fsums.Fsum.fsub\tpygeodesy.fsums.Fsum-class.html#fsub\npygeodesy.fsums.Fsum.fset_\tpygeodesy.fsums.Fsum-class.html#fset_\npygeodesy.fsums.Fsum.pow\tpygeodesy.fsums.Fsum-class.html#pow\npygeodesy.fsums.Fsum.fsum\tpygeodesy.fsums.Fsum-class.html#fsum\npygeodesy.fsums.Fsum.fmul\tpygeodesy.fsums.Fsum-class.html#fmul\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.fsums.Fsum.__rtruediv__\tpygeodesy.fsums.Fsum-class.html#__rtruediv__\npygeodesy.fsums.Fsum.__rsub__\tpygeodesy.fsums.Fsum-class.html#__rsub__\npygeodesy.fsums.Fsum.divmod\tpygeodesy.fsums.Fsum-class.html#divmod\npygeodesy.fsums.Fsum.float_int\tpygeodesy.fsums.Fsum-class.html#float_int\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.fsums.Fsum.is_integer\tpygeodesy.fsums.Fsum-class.html#is_integer\npygeodesy.fsums.Fsum._copyd\tpygeodesy.fsums.Fsum-class.html#_copyd\npygeodesy.fsums.Fsum.__float__\tpygeodesy.fsums.Fsum-class.html#__float__\npygeodesy.fsums.Fsum.__rpow__\tpygeodesy.fsums.Fsum-class.html#__rpow__\npygeodesy.fsums.Fsum._fint2\tpygeodesy.fsums.Fsum-class.html#_fint2\npygeodesy.fsums.Fsum._fma\tpygeodesy.fsums.Fsum-class.html#_fma\npygeodesy.fsums.Fsum.fsum2f_\tpygeodesy.fsums.Fsum-class.html#fsum2f_\npygeodesy.fsums.Fsum._facc_xsum\tpygeodesy.fsums.Fsum-class.html#_facc_xsum\npygeodesy.fsums.Fsum.__abs__\tpygeodesy.fsums.Fsum-class.html#__abs__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.fsums.Fsum._cmp_0\tpygeodesy.fsums.Fsum-class.html#_cmp_0\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.fsums.Fsum.__itruediv__\tpygeodesy.fsums.Fsum-class.html#__itruediv__\npygeodesy.fsums.Fsum.fma\tpygeodesy.fsums.Fsum-class.html#fma\npygeodesy.fsums.Fsum.__isub__\tpygeodesy.fsums.Fsum-class.html#__isub__\npygeodesy.fsums.Fsum.__rdivmod__\tpygeodesy.fsums.Fsum-class.html#__rdivmod__\npygeodesy.fsums.Fsum._Error\tpygeodesy.fsums.Fsum-class.html#_Error\npygeodesy.fsums.Fsum.__invert__\tpygeodesy.fsums.Fsum-class.html#__invert__\npygeodesy.fsums.Fsum.is_math_fma\tpygeodesy.fsums.Fsum-class.html#is_math_fma\npygeodesy.fsums.Fsum.fpow\tpygeodesy.fsums.Fsum-class.html#fpow\npygeodesy.fsums.Fsum._facc_scalar\tpygeodesy.fsums.Fsum-class.html#_facc_scalar\npygeodesy.fsums.Fsum.imag\tpygeodesy.fsums.Fsum-class.html#imag\npygeodesy.fsums.Fsum._ps_neg\tpygeodesy.fsums.Fsum-class.html#_ps_neg\npygeodesy.fsums.Fsum._nonfiniteX\tpygeodesy.fsums.Fsum-class.html#_nonfiniteX\npygeodesy.fsums.Fsum.__iter__\tpygeodesy.fsums.Fsum-class.html#__iter__\npygeodesy.fsums.Fsum.Fsum2Tuple_\tpygeodesy.fsums.Fsum-class.html#Fsum2Tuple_\npygeodesy.fsums.Fsum._ftruediv\tpygeodesy.fsums.Fsum-class.html#_ftruediv\npygeodesy.fsums.Fsum.fsub_\tpygeodesy.fsums.Fsum-class.html#fsub_\npygeodesy.fsums.Fsum.copy\tpygeodesy.fsums.Fsum-class.html#copy\npygeodesy.fsums.Fsum.__eq__\tpygeodesy.fsums.Fsum-class.html#__eq__\npygeodesy.fsums.Fsum._facc_scalar_\tpygeodesy.fsums.Fsum-class.html#_facc_scalar_\npygeodesy.named._Named.__repr__\tpygeodesy.named._Named-class.html#__repr__\npygeodesy.fsums.Fsum.__round__\tpygeodesy.fsums.Fsum-class.html#__round__\npygeodesy.fsums.Fsum._fhorner\tpygeodesy.fsums.Fsum-class.html#_fhorner\npygeodesy.fsums.Fsum.__ipow__\tpygeodesy.fsums.Fsum-class.html#__ipow__\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.fsums.Fsum.__iadd__\tpygeodesy.fsums.Fsum-class.html#__iadd__\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.fsums.Fsum.fdiv\tpygeodesy.fsums.Fsum-class.html#fdiv\npygeodesy.fsums.Fsum.__len__\tpygeodesy.fsums.Fsum-class.html#__len__\npygeodesy.fsums.Fsum.__floordiv__\tpygeodesy.fsums.Fsum-class.html#__floordiv__\npygeodesy.fsums.Fsum.__hash__\tpygeodesy.fsums.Fsum-class.html#__hash__\npygeodesy.fsums.Fsum.__sub__\tpygeodesy.fsums.Fsum-class.html#__sub__\npygeodesy.fsums.Fsum.root\tpygeodesy.fsums.Fsum-class.html#root\npygeodesy.fsums.Fsum.__ge__\tpygeodesy.fsums.Fsum-class.html#__ge__\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.fsums.Fsum._update\tpygeodesy.fsums.Fsum-class.html#_update\npygeodesy.fsums.Fsum.fdivmod\tpygeodesy.fsums.Fsum-class.html#fdivmod\npygeodesy.fsums.Fsum._fdivmod2\tpygeodesy.fsums.Fsum-class.html#_fdivmod2\npygeodesy.fsums.Fsum._finite\tpygeodesy.fsums.Fsum-class.html#_finite\npygeodesy.fsums.Fsum.__radd__\tpygeodesy.fsums.Fsum-class.html#__radd__\npygeodesy.fsums.Fsum.__floor__\tpygeodesy.fsums.Fsum-class.html#__floor__\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.fmath.Fdot.__init__\tpygeodesy.fmath.Fdot-class.html#__init__\npygeodesy.fsums.Fsum._f2mul\tpygeodesy.fsums.Fsum-class.html#_f2mul\npygeodesy.fsums.Fsum.__imod__\tpygeodesy.fsums.Fsum-class.html#__imod__\npygeodesy.fsums.Fsum._fprs\tpygeodesy.fsums.Fsum-class.html#_fprs\npygeodesy.fsums.Fsum.floor\tpygeodesy.fsums.Fsum-class.html#floor\npygeodesy.fsums.Fsum._optionals\tpygeodesy.fsums.Fsum-class.html#_optionals\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.fsums.Fsum._fadd\tpygeodesy.fsums.Fsum-class.html#_fadd\npygeodesy.fsums.Fsum.__pos__\tpygeodesy.fsums.Fsum-class.html#__pos__\npygeodesy.fsums.Fsum._raiser\tpygeodesy.fsums.Fsum-class.html#_raiser\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.fsums.Fsum.f2mul\tpygeodesy.fsums.Fsum-class.html#f2mul\npygeodesy.fsums.Fsum._scalar\tpygeodesy.fsums.Fsum-class.html#_scalar\npygeodesy.fsums.Fsum.is_exact\tpygeodesy.fsums.Fsum-class.html#is_exact\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.fsums.Fsum.fsumf_\tpygeodesy.fsums.Fsum-class.html#fsumf_\npygeodesy.fsums.Fsum.__idiv__\tpygeodesy.fsums.Fsum-class.html#__idiv__\npygeodesy.fsums.Fsum.is_finite\tpygeodesy.fsums.Fsum-class.html#is_finite\npygeodesy.fsums.Fsum.RESIDUAL\tpygeodesy.fsums.Fsum-class.html#RESIDUAL\npygeodesy.fsums.Fsum._pow_Fsum\tpygeodesy.fsums.Fsum-class.html#_pow_Fsum\npygeodesy.fsums.Fsum.__add__\tpygeodesy.fsums.Fsum-class.html#__add__\npygeodesy.fsums.Fsum.nonfinitesOK\tpygeodesy.fsums.Fsum-class.html#nonfinitesOK\npygeodesy.fsums.Fsum._ps_other\tpygeodesy.fsums.Fsum-class.html#_ps_other\npygeodesy.fsums.Fsum._rcopyd\tpygeodesy.fsums.Fsum-class.html#_rcopyd\npygeodesy.fsums.Fsum.nonfinites\tpygeodesy.fsums.Fsum-class.html#nonfinites\npygeodesy.fsums.Fsum._pow_scalar\tpygeodesy.fsums.Fsum-class.html#_pow_scalar\npygeodesy.fsums.Fsum._ResidualError\tpygeodesy.fsums.Fsum-class.html#_ResidualError\npygeodesy.fsums.Fsum._Fsum\tpygeodesy.fsums.Fsum-class.html#_Fsum\npygeodesy.fsums.Fsum._fsum2\tpygeodesy.fsums.Fsum-class.html#_fsum2\npygeodesy.fsums.Fsum._floordiv\tpygeodesy.fsums.Fsum-class.html#_floordiv\npygeodesy.fsums.Fsum.__div__\tpygeodesy.fsums.Fsum-class.html#__div__\npygeodesy.fsums.Fsum.__neg__\tpygeodesy.fsums.Fsum-class.html#__neg__\npygeodesy.fsums.Fsum.f2mul_\tpygeodesy.fsums.Fsum-class.html#f2mul_\npygeodesy.fsums.Fsum.__le__\tpygeodesy.fsums.Fsum-class.html#__le__\npygeodesy.fmath.Fdot_\tpygeodesy.fmath.Fdot_-class.html\npygeodesy.fsums.Fsum.__int__\tpygeodesy.fsums.Fsum-class.html#__int__\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.fsums.Fsum._facc_dot\tpygeodesy.fsums.Fsum-class.html#_facc_dot\npygeodesy.fsums.Fsum.fsum2_\tpygeodesy.fsums.Fsum-class.html#fsum2_\npygeodesy.fsums.Fsum.__str__\tpygeodesy.fsums.Fsum-class.html#__str__\npygeodesy.fsums.Fsum.__gt__\tpygeodesy.fsums.Fsum-class.html#__gt__\npygeodesy.fsums.Fsum.fint\tpygeodesy.fsums.Fsum-class.html#fint\npygeodesy.fsums.Fsum.__imatmul__\tpygeodesy.fsums.Fsum-class.html#__imatmul__\npygeodesy.fsums.Fsum.__bool__\tpygeodesy.fsums.Fsum-class.html#__bool__\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.fsums.Fsum.__rdiv__\tpygeodesy.fsums.Fsum-class.html#__rdiv__\npygeodesy.fsums.Fsum.__rmul__\tpygeodesy.fsums.Fsum-class.html#__rmul__\npygeodesy.fsums.Fsum.__lt__\tpygeodesy.fsums.Fsum-class.html#__lt__\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.fsums.Fsum._Fsum_as\tpygeodesy.fsums.Fsum-class.html#_Fsum_as\npygeodesy.fsums.Fsum.fover\tpygeodesy.fsums.Fsum-class.html#fover\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.fsums.Fsum.__cmp__\tpygeodesy.fsums.Fsum-class.html#__cmp__\npygeodesy.fsums.Fsum._n\tpygeodesy.fsums.Fsum-class.html#_n\npygeodesy.fsums.Fsum.__rfloordiv__\tpygeodesy.fsums.Fsum-class.html#__rfloordiv__\npygeodesy.fsums.Fsum._ps_acc\tpygeodesy.fsums.Fsum-class.html#_ps_acc\npygeodesy.fsums.Fsum.is_scalar\tpygeodesy.fsums.Fsum-class.html#is_scalar\npygeodesy.fsums.Fsum.fadd\tpygeodesy.fsums.Fsum-class.html#fadd\npygeodesy.fsums.Fsum.__call__\tpygeodesy.fsums.Fsum-class.html#__call__\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.fsums.Fsum._mul_Fsum\tpygeodesy.fsums.Fsum-class.html#_mul_Fsum\npygeodesy.fsums.Fsum.real\tpygeodesy.fsums.Fsum-class.html#real\npygeodesy.fsums.Fsum.toStr\tpygeodesy.fsums.Fsum-class.html#toStr\npygeodesy.fsums.Fsum.f2product\tpygeodesy.fsums.Fsum-class.html#f2product\npygeodesy.fsums.Fsum.ceil\tpygeodesy.fsums.Fsum-class.html#ceil\npygeodesy.fsums.Fsum.__pow__\tpygeodesy.fsums.Fsum-class.html#__pow__\npygeodesy.fsums.Fsum._1_Over\tpygeodesy.fsums.Fsum-class.html#_1_Over\npygeodesy.fsums.Fsum.Fsum_\tpygeodesy.fsums.Fsum-class.html#Fsum_\npygeodesy.fsums.Fsum.Fsumf_\tpygeodesy.fsums.Fsum-class.html#Fsumf_\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.fsums.Fsum._isfine\tpygeodesy.fsums.Fsum-class.html#_isfine\npygeodesy.fsums.Fsum.int_float\tpygeodesy.fsums.Fsum-class.html#int_float\npygeodesy.fsums.Fsum._pow_2_3\tpygeodesy.fsums.Fsum-class.html#_pow_2_3\npygeodesy.fsums.Fsum.__nonzero__\tpygeodesy.fsums.Fsum-class.html#__nonzero__\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.fsums.Fsum._nfprs2\tpygeodesy.fsums.Fsum-class.html#_nfprs2\npygeodesy.fsums.Fsum.signOf\tpygeodesy.fsums.Fsum-class.html#signOf\npygeodesy.fsums.Fsum.__mod__\tpygeodesy.fsums.Fsum-class.html#__mod__\npygeodesy.fsums.Fsum.fint2\tpygeodesy.fsums.Fsum-class.html#fint2\npygeodesy.fsums.Fsum._mul_scalar\tpygeodesy.fsums.Fsum-class.html#_mul_scalar\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.fsums.Fsum._facc_args\tpygeodesy.fsums.Fsum-class.html#_facc_args\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.fsums.Fsum.__long__\tpygeodesy.fsums.Fsum-class.html#__long__\npygeodesy.fsums.Fsum._pow_0_1\tpygeodesy.fsums.Fsum-class.html#_pow_0_1\npygeodesy.fsums.Fsum.cmp\tpygeodesy.fsums.Fsum-class.html#cmp\npygeodesy.fsums.Fsum.toRepr\tpygeodesy.fsums.Fsum-class.html#toRepr\npygeodesy.fsums.Fsum._RESIDUAL\tpygeodesy.fsums.Fsum-class.html#_RESIDUAL\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.fsums.Fsum._truediv\tpygeodesy.fsums.Fsum-class.html#_truediv\npygeodesy.fsums.Fsum._ps_1sum\tpygeodesy.fsums.Fsum-class.html#_ps_1sum\npygeodesy.fsums.Fsum._pow\tpygeodesy.fsums.Fsum-class.html#_pow\npygeodesy.fsums.Fsum._fset\tpygeodesy.fsums.Fsum-class.html#_fset\npygeodesy.fsums.Fsum.__truediv__\tpygeodesy.fsums.Fsum-class.html#__truediv__\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.fsums.Fsum.__ceil__\tpygeodesy.fsums.Fsum-class.html#__ceil__\npygeodesy.fsums.Fsum.__rmod__\tpygeodesy.fsums.Fsum-class.html#__rmod__\npygeodesy.fsums.Fsum._ps_mul\tpygeodesy.fsums.Fsum-class.html#_ps_mul\npygeodesy.fsums.Fsum._facc_power\tpygeodesy.fsums.Fsum-class.html#_facc_power\npygeodesy.fsums.Fsum.as_integer_ratio\tpygeodesy.fsums.Fsum-class.html#as_integer_ratio\npygeodesy.fsums.Fsum.partials\tpygeodesy.fsums.Fsum-class.html#partials\npygeodesy.fsums.Fsum.is_math_fsum\tpygeodesy.fsums.Fsum-class.html#is_math_fsum\npygeodesy.fsums.Fsum.fsum_\tpygeodesy.fsums.Fsum-class.html#fsum_\npygeodesy.fsums.Fsum.as_iscalar\tpygeodesy.fsums.Fsum-class.html#as_iscalar\npygeodesy.fsums.Fsum.__ne__\tpygeodesy.fsums.Fsum-class.html#__ne__\npygeodesy.fsums.Fsum._pow_int\tpygeodesy.fsums.Fsum-class.html#_pow_int\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.fsums.Fsum.__ifloordiv__\tpygeodesy.fsums.Fsum-class.html#__ifloordiv__\npygeodesy.fsums.Fsum._ErrorXs\tpygeodesy.fsums.Fsum-class.html#_ErrorXs\npygeodesy.fsums.Fsum._fmul\tpygeodesy.fsums.Fsum-class.html#_fmul\npygeodesy.fsums.Fsum.residual\tpygeodesy.fsums.Fsum-class.html#residual\npygeodesy.fsums.Fsum.rdiv\tpygeodesy.fsums.Fsum-class.html#rdiv\npygeodesy.fsums.Fsum._facc_neg\tpygeodesy.fsums.Fsum-class.html#_facc_neg\npygeodesy.fsums.Fsum._f2product\tpygeodesy.fsums.Fsum-class.html#_f2product\npygeodesy.fsums.Fsum._mul_reduce\tpygeodesy.fsums.Fsum-class.html#_mul_reduce\npygeodesy.fsums.Fsum._fprs2\tpygeodesy.fsums.Fsum-class.html#_fprs2\npygeodesy.fsums.Fsum.__divmod__\tpygeodesy.fsums.Fsum-class.html#__divmod__\npygeodesy.fsums.Fsum._ErrorX\tpygeodesy.fsums.Fsum-class.html#_ErrorX\npygeodesy.fsums.Fsum._neg\tpygeodesy.fsums.Fsum-class.html#_neg\npygeodesy.fsums.Fsum.__rmatmul__\tpygeodesy.fsums.Fsum-class.html#__rmatmul__\npygeodesy.fsums.Fsum.fsum2\tpygeodesy.fsums.Fsum-class.html#fsum2\npygeodesy.fsums.Fsum._facc\tpygeodesy.fsums.Fsum-class.html#_facc\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.fsums.Fsum.fcopy\tpygeodesy.fsums.Fsum-class.html#fcopy\npygeodesy.fsums.Fsum.__imul__\tpygeodesy.fsums.Fsum-class.html#__imul__\npygeodesy.fsums.Fsum.__trunc__\tpygeodesy.fsums.Fsum-class.html#__trunc__\npygeodesy.fsums.Fsum.fma_\tpygeodesy.fsums.Fsum-class.html#fma_\npygeodesy.fsums.Fsum.__mul__\tpygeodesy.fsums.Fsum-class.html#__mul__\npygeodesy.fsums.Fsum._fpow\tpygeodesy.fsums.Fsum-class.html#_fpow\npygeodesy.fsums.Fsum.__matmul__\tpygeodesy.fsums.Fsum-class.html#__matmul__\npygeodesy.fsums.Fsum._fsub\tpygeodesy.fsums.Fsum-class.html#_fsub\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.fsums.Fsum.fadd_\tpygeodesy.fsums.Fsum-class.html#fadd_\npygeodesy.fsums.Fsum.fsub\tpygeodesy.fsums.Fsum-class.html#fsub\npygeodesy.fsums.Fsum.fset_\tpygeodesy.fsums.Fsum-class.html#fset_\npygeodesy.fsums.Fsum.pow\tpygeodesy.fsums.Fsum-class.html#pow\npygeodesy.fsums.Fsum.fsum\tpygeodesy.fsums.Fsum-class.html#fsum\npygeodesy.fsums.Fsum.fmul\tpygeodesy.fsums.Fsum-class.html#fmul\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.fsums.Fsum.__rtruediv__\tpygeodesy.fsums.Fsum-class.html#__rtruediv__\npygeodesy.fsums.Fsum.__rsub__\tpygeodesy.fsums.Fsum-class.html#__rsub__\npygeodesy.fsums.Fsum.divmod\tpygeodesy.fsums.Fsum-class.html#divmod\npygeodesy.fsums.Fsum.float_int\tpygeodesy.fsums.Fsum-class.html#float_int\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.fsums.Fsum.is_integer\tpygeodesy.fsums.Fsum-class.html#is_integer\npygeodesy.fsums.Fsum._copyd\tpygeodesy.fsums.Fsum-class.html#_copyd\npygeodesy.fsums.Fsum.__float__\tpygeodesy.fsums.Fsum-class.html#__float__\npygeodesy.fsums.Fsum.__rpow__\tpygeodesy.fsums.Fsum-class.html#__rpow__\npygeodesy.fsums.Fsum._fint2\tpygeodesy.fsums.Fsum-class.html#_fint2\npygeodesy.fsums.Fsum._fma\tpygeodesy.fsums.Fsum-class.html#_fma\npygeodesy.fsums.Fsum.fsum2f_\tpygeodesy.fsums.Fsum-class.html#fsum2f_\npygeodesy.fsums.Fsum._facc_xsum\tpygeodesy.fsums.Fsum-class.html#_facc_xsum\npygeodesy.fsums.Fsum.__abs__\tpygeodesy.fsums.Fsum-class.html#__abs__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.fsums.Fsum._cmp_0\tpygeodesy.fsums.Fsum-class.html#_cmp_0\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.fsums.Fsum.__itruediv__\tpygeodesy.fsums.Fsum-class.html#__itruediv__\npygeodesy.fsums.Fsum.fma\tpygeodesy.fsums.Fsum-class.html#fma\npygeodesy.fsums.Fsum.__isub__\tpygeodesy.fsums.Fsum-class.html#__isub__\npygeodesy.fsums.Fsum.__rdivmod__\tpygeodesy.fsums.Fsum-class.html#__rdivmod__\npygeodesy.fsums.Fsum._Error\tpygeodesy.fsums.Fsum-class.html#_Error\npygeodesy.fsums.Fsum.__invert__\tpygeodesy.fsums.Fsum-class.html#__invert__\npygeodesy.fsums.Fsum.is_math_fma\tpygeodesy.fsums.Fsum-class.html#is_math_fma\npygeodesy.fsums.Fsum.fpow\tpygeodesy.fsums.Fsum-class.html#fpow\npygeodesy.fsums.Fsum._facc_scalar\tpygeodesy.fsums.Fsum-class.html#_facc_scalar\npygeodesy.fsums.Fsum.imag\tpygeodesy.fsums.Fsum-class.html#imag\npygeodesy.fsums.Fsum._ps_neg\tpygeodesy.fsums.Fsum-class.html#_ps_neg\npygeodesy.fsums.Fsum._nonfiniteX\tpygeodesy.fsums.Fsum-class.html#_nonfiniteX\npygeodesy.fsums.Fsum.__iter__\tpygeodesy.fsums.Fsum-class.html#__iter__\npygeodesy.fsums.Fsum.Fsum2Tuple_\tpygeodesy.fsums.Fsum-class.html#Fsum2Tuple_\npygeodesy.fsums.Fsum._ftruediv\tpygeodesy.fsums.Fsum-class.html#_ftruediv\npygeodesy.fsums.Fsum.fsub_\tpygeodesy.fsums.Fsum-class.html#fsub_\npygeodesy.fsums.Fsum.copy\tpygeodesy.fsums.Fsum-class.html#copy\npygeodesy.fsums.Fsum.__eq__\tpygeodesy.fsums.Fsum-class.html#__eq__\npygeodesy.fsums.Fsum._facc_scalar_\tpygeodesy.fsums.Fsum-class.html#_facc_scalar_\npygeodesy.named._Named.__repr__\tpygeodesy.named._Named-class.html#__repr__\npygeodesy.fsums.Fsum.__round__\tpygeodesy.fsums.Fsum-class.html#__round__\npygeodesy.fsums.Fsum._fhorner\tpygeodesy.fsums.Fsum-class.html#_fhorner\npygeodesy.fsums.Fsum.__ipow__\tpygeodesy.fsums.Fsum-class.html#__ipow__\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.fsums.Fsum.__iadd__\tpygeodesy.fsums.Fsum-class.html#__iadd__\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.fsums.Fsum.fdiv\tpygeodesy.fsums.Fsum-class.html#fdiv\npygeodesy.fsums.Fsum.__len__\tpygeodesy.fsums.Fsum-class.html#__len__\npygeodesy.fsums.Fsum.__floordiv__\tpygeodesy.fsums.Fsum-class.html#__floordiv__\npygeodesy.fsums.Fsum.__hash__\tpygeodesy.fsums.Fsum-class.html#__hash__\npygeodesy.fsums.Fsum.__sub__\tpygeodesy.fsums.Fsum-class.html#__sub__\npygeodesy.fsums.Fsum.root\tpygeodesy.fsums.Fsum-class.html#root\npygeodesy.fsums.Fsum.__ge__\tpygeodesy.fsums.Fsum-class.html#__ge__\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.fsums.Fsum._update\tpygeodesy.fsums.Fsum-class.html#_update\npygeodesy.fsums.Fsum.fdivmod\tpygeodesy.fsums.Fsum-class.html#fdivmod\npygeodesy.fsums.Fsum._fdivmod2\tpygeodesy.fsums.Fsum-class.html#_fdivmod2\npygeodesy.fsums.Fsum._finite\tpygeodesy.fsums.Fsum-class.html#_finite\npygeodesy.fsums.Fsum.__radd__\tpygeodesy.fsums.Fsum-class.html#__radd__\npygeodesy.fsums.Fsum.__floor__\tpygeodesy.fsums.Fsum-class.html#__floor__\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.fmath.Fdot_.__init__\tpygeodesy.fmath.Fdot_-class.html#__init__\npygeodesy.fsums.Fsum._f2mul\tpygeodesy.fsums.Fsum-class.html#_f2mul\npygeodesy.fsums.Fsum.__imod__\tpygeodesy.fsums.Fsum-class.html#__imod__\npygeodesy.fsums.Fsum._fprs\tpygeodesy.fsums.Fsum-class.html#_fprs\npygeodesy.fsums.Fsum.floor\tpygeodesy.fsums.Fsum-class.html#floor\npygeodesy.fsums.Fsum._optionals\tpygeodesy.fsums.Fsum-class.html#_optionals\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.fsums.Fsum._fadd\tpygeodesy.fsums.Fsum-class.html#_fadd\npygeodesy.fsums.Fsum.__pos__\tpygeodesy.fsums.Fsum-class.html#__pos__\npygeodesy.fsums.Fsum._raiser\tpygeodesy.fsums.Fsum-class.html#_raiser\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.fsums.Fsum.f2mul\tpygeodesy.fsums.Fsum-class.html#f2mul\npygeodesy.fsums.Fsum._scalar\tpygeodesy.fsums.Fsum-class.html#_scalar\npygeodesy.fsums.Fsum.is_exact\tpygeodesy.fsums.Fsum-class.html#is_exact\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.fsums.Fsum.fsumf_\tpygeodesy.fsums.Fsum-class.html#fsumf_\npygeodesy.fsums.Fsum.__idiv__\tpygeodesy.fsums.Fsum-class.html#__idiv__\npygeodesy.fsums.Fsum.is_finite\tpygeodesy.fsums.Fsum-class.html#is_finite\npygeodesy.fsums.Fsum.RESIDUAL\tpygeodesy.fsums.Fsum-class.html#RESIDUAL\npygeodesy.fsums.Fsum._pow_Fsum\tpygeodesy.fsums.Fsum-class.html#_pow_Fsum\npygeodesy.fsums.Fsum.__add__\tpygeodesy.fsums.Fsum-class.html#__add__\npygeodesy.fsums.Fsum.nonfinitesOK\tpygeodesy.fsums.Fsum-class.html#nonfinitesOK\npygeodesy.fsums.Fsum._ps_other\tpygeodesy.fsums.Fsum-class.html#_ps_other\npygeodesy.fsums.Fsum._rcopyd\tpygeodesy.fsums.Fsum-class.html#_rcopyd\npygeodesy.fsums.Fsum.nonfinites\tpygeodesy.fsums.Fsum-class.html#nonfinites\npygeodesy.fsums.Fsum._pow_scalar\tpygeodesy.fsums.Fsum-class.html#_pow_scalar\npygeodesy.fsums.Fsum._ResidualError\tpygeodesy.fsums.Fsum-class.html#_ResidualError\npygeodesy.fsums.Fsum._Fsum\tpygeodesy.fsums.Fsum-class.html#_Fsum\npygeodesy.fsums.Fsum._fsum2\tpygeodesy.fsums.Fsum-class.html#_fsum2\npygeodesy.fsums.Fsum._floordiv\tpygeodesy.fsums.Fsum-class.html#_floordiv\npygeodesy.fsums.Fsum.__div__\tpygeodesy.fsums.Fsum-class.html#__div__\npygeodesy.fsums.Fsum.__neg__\tpygeodesy.fsums.Fsum-class.html#__neg__\npygeodesy.fsums.Fsum.f2mul_\tpygeodesy.fsums.Fsum-class.html#f2mul_\npygeodesy.fsums.Fsum.__le__\tpygeodesy.fsums.Fsum-class.html#__le__\npygeodesy.fmath.Fhorner\tpygeodesy.fmath.Fhorner-class.html\npygeodesy.fsums.Fsum.__int__\tpygeodesy.fsums.Fsum-class.html#__int__\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.fsums.Fsum._facc_dot\tpygeodesy.fsums.Fsum-class.html#_facc_dot\npygeodesy.fsums.Fsum.fsum2_\tpygeodesy.fsums.Fsum-class.html#fsum2_\npygeodesy.fsums.Fsum.__str__\tpygeodesy.fsums.Fsum-class.html#__str__\npygeodesy.fsums.Fsum.__gt__\tpygeodesy.fsums.Fsum-class.html#__gt__\npygeodesy.fsums.Fsum.fint\tpygeodesy.fsums.Fsum-class.html#fint\npygeodesy.fsums.Fsum.__imatmul__\tpygeodesy.fsums.Fsum-class.html#__imatmul__\npygeodesy.fsums.Fsum.__bool__\tpygeodesy.fsums.Fsum-class.html#__bool__\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.fsums.Fsum.__rdiv__\tpygeodesy.fsums.Fsum-class.html#__rdiv__\npygeodesy.fsums.Fsum.__rmul__\tpygeodesy.fsums.Fsum-class.html#__rmul__\npygeodesy.fsums.Fsum.__lt__\tpygeodesy.fsums.Fsum-class.html#__lt__\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.fsums.Fsum._Fsum_as\tpygeodesy.fsums.Fsum-class.html#_Fsum_as\npygeodesy.fsums.Fsum.fover\tpygeodesy.fsums.Fsum-class.html#fover\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.fsums.Fsum.__cmp__\tpygeodesy.fsums.Fsum-class.html#__cmp__\npygeodesy.fsums.Fsum._n\tpygeodesy.fsums.Fsum-class.html#_n\npygeodesy.fsums.Fsum.__rfloordiv__\tpygeodesy.fsums.Fsum-class.html#__rfloordiv__\npygeodesy.fsums.Fsum._ps_acc\tpygeodesy.fsums.Fsum-class.html#_ps_acc\npygeodesy.fsums.Fsum.is_scalar\tpygeodesy.fsums.Fsum-class.html#is_scalar\npygeodesy.fsums.Fsum.fadd\tpygeodesy.fsums.Fsum-class.html#fadd\npygeodesy.fsums.Fsum.__call__\tpygeodesy.fsums.Fsum-class.html#__call__\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.fsums.Fsum._mul_Fsum\tpygeodesy.fsums.Fsum-class.html#_mul_Fsum\npygeodesy.fsums.Fsum.real\tpygeodesy.fsums.Fsum-class.html#real\npygeodesy.fsums.Fsum.toStr\tpygeodesy.fsums.Fsum-class.html#toStr\npygeodesy.fsums.Fsum.f2product\tpygeodesy.fsums.Fsum-class.html#f2product\npygeodesy.fsums.Fsum.ceil\tpygeodesy.fsums.Fsum-class.html#ceil\npygeodesy.fsums.Fsum.__pow__\tpygeodesy.fsums.Fsum-class.html#__pow__\npygeodesy.fsums.Fsum._1_Over\tpygeodesy.fsums.Fsum-class.html#_1_Over\npygeodesy.fsums.Fsum.Fsum_\tpygeodesy.fsums.Fsum-class.html#Fsum_\npygeodesy.fsums.Fsum.Fsumf_\tpygeodesy.fsums.Fsum-class.html#Fsumf_\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.fsums.Fsum._isfine\tpygeodesy.fsums.Fsum-class.html#_isfine\npygeodesy.fsums.Fsum.int_float\tpygeodesy.fsums.Fsum-class.html#int_float\npygeodesy.fsums.Fsum._pow_2_3\tpygeodesy.fsums.Fsum-class.html#_pow_2_3\npygeodesy.fsums.Fsum.__nonzero__\tpygeodesy.fsums.Fsum-class.html#__nonzero__\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.fsums.Fsum._nfprs2\tpygeodesy.fsums.Fsum-class.html#_nfprs2\npygeodesy.fsums.Fsum.signOf\tpygeodesy.fsums.Fsum-class.html#signOf\npygeodesy.fsums.Fsum.__mod__\tpygeodesy.fsums.Fsum-class.html#__mod__\npygeodesy.fsums.Fsum.fint2\tpygeodesy.fsums.Fsum-class.html#fint2\npygeodesy.fsums.Fsum._mul_scalar\tpygeodesy.fsums.Fsum-class.html#_mul_scalar\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.fsums.Fsum._facc_args\tpygeodesy.fsums.Fsum-class.html#_facc_args\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.fsums.Fsum.__long__\tpygeodesy.fsums.Fsum-class.html#__long__\npygeodesy.fsums.Fsum._pow_0_1\tpygeodesy.fsums.Fsum-class.html#_pow_0_1\npygeodesy.fsums.Fsum.cmp\tpygeodesy.fsums.Fsum-class.html#cmp\npygeodesy.fsums.Fsum.toRepr\tpygeodesy.fsums.Fsum-class.html#toRepr\npygeodesy.fsums.Fsum._RESIDUAL\tpygeodesy.fsums.Fsum-class.html#_RESIDUAL\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.fsums.Fsum._truediv\tpygeodesy.fsums.Fsum-class.html#_truediv\npygeodesy.fsums.Fsum._ps_1sum\tpygeodesy.fsums.Fsum-class.html#_ps_1sum\npygeodesy.fsums.Fsum._pow\tpygeodesy.fsums.Fsum-class.html#_pow\npygeodesy.fsums.Fsum._fset\tpygeodesy.fsums.Fsum-class.html#_fset\npygeodesy.fsums.Fsum.__truediv__\tpygeodesy.fsums.Fsum-class.html#__truediv__\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.fsums.Fsum.__ceil__\tpygeodesy.fsums.Fsum-class.html#__ceil__\npygeodesy.fsums.Fsum.__rmod__\tpygeodesy.fsums.Fsum-class.html#__rmod__\npygeodesy.fsums.Fsum._ps_mul\tpygeodesy.fsums.Fsum-class.html#_ps_mul\npygeodesy.fsums.Fsum._facc_power\tpygeodesy.fsums.Fsum-class.html#_facc_power\npygeodesy.fsums.Fsum.as_integer_ratio\tpygeodesy.fsums.Fsum-class.html#as_integer_ratio\npygeodesy.fsums.Fsum.partials\tpygeodesy.fsums.Fsum-class.html#partials\npygeodesy.fsums.Fsum.is_math_fsum\tpygeodesy.fsums.Fsum-class.html#is_math_fsum\npygeodesy.fsums.Fsum.fsum_\tpygeodesy.fsums.Fsum-class.html#fsum_\npygeodesy.fsums.Fsum.as_iscalar\tpygeodesy.fsums.Fsum-class.html#as_iscalar\npygeodesy.fsums.Fsum.__ne__\tpygeodesy.fsums.Fsum-class.html#__ne__\npygeodesy.fsums.Fsum._pow_int\tpygeodesy.fsums.Fsum-class.html#_pow_int\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.fsums.Fsum.__ifloordiv__\tpygeodesy.fsums.Fsum-class.html#__ifloordiv__\npygeodesy.fsums.Fsum._ErrorXs\tpygeodesy.fsums.Fsum-class.html#_ErrorXs\npygeodesy.fsums.Fsum._fmul\tpygeodesy.fsums.Fsum-class.html#_fmul\npygeodesy.fsums.Fsum.residual\tpygeodesy.fsums.Fsum-class.html#residual\npygeodesy.fsums.Fsum.rdiv\tpygeodesy.fsums.Fsum-class.html#rdiv\npygeodesy.fsums.Fsum._facc_neg\tpygeodesy.fsums.Fsum-class.html#_facc_neg\npygeodesy.fsums.Fsum._f2product\tpygeodesy.fsums.Fsum-class.html#_f2product\npygeodesy.fsums.Fsum._mul_reduce\tpygeodesy.fsums.Fsum-class.html#_mul_reduce\npygeodesy.fsums.Fsum._fprs2\tpygeodesy.fsums.Fsum-class.html#_fprs2\npygeodesy.fsums.Fsum.__divmod__\tpygeodesy.fsums.Fsum-class.html#__divmod__\npygeodesy.fsums.Fsum._ErrorX\tpygeodesy.fsums.Fsum-class.html#_ErrorX\npygeodesy.fsums.Fsum._neg\tpygeodesy.fsums.Fsum-class.html#_neg\npygeodesy.fsums.Fsum.__rmatmul__\tpygeodesy.fsums.Fsum-class.html#__rmatmul__\npygeodesy.fsums.Fsum.fsum2\tpygeodesy.fsums.Fsum-class.html#fsum2\npygeodesy.fsums.Fsum._facc\tpygeodesy.fsums.Fsum-class.html#_facc\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.fsums.Fsum.fcopy\tpygeodesy.fsums.Fsum-class.html#fcopy\npygeodesy.fsums.Fsum.__imul__\tpygeodesy.fsums.Fsum-class.html#__imul__\npygeodesy.fsums.Fsum.__trunc__\tpygeodesy.fsums.Fsum-class.html#__trunc__\npygeodesy.fsums.Fsum.fma_\tpygeodesy.fsums.Fsum-class.html#fma_\npygeodesy.fsums.Fsum.__mul__\tpygeodesy.fsums.Fsum-class.html#__mul__\npygeodesy.fsums.Fsum._fpow\tpygeodesy.fsums.Fsum-class.html#_fpow\npygeodesy.fsums.Fsum.__matmul__\tpygeodesy.fsums.Fsum-class.html#__matmul__\npygeodesy.fsums.Fsum._fsub\tpygeodesy.fsums.Fsum-class.html#_fsub\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.fsums.Fsum.fadd_\tpygeodesy.fsums.Fsum-class.html#fadd_\npygeodesy.fsums.Fsum.fsub\tpygeodesy.fsums.Fsum-class.html#fsub\npygeodesy.fsums.Fsum.fset_\tpygeodesy.fsums.Fsum-class.html#fset_\npygeodesy.fsums.Fsum.pow\tpygeodesy.fsums.Fsum-class.html#pow\npygeodesy.fsums.Fsum.fsum\tpygeodesy.fsums.Fsum-class.html#fsum\npygeodesy.fsums.Fsum.fmul\tpygeodesy.fsums.Fsum-class.html#fmul\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.fsums.Fsum.__rtruediv__\tpygeodesy.fsums.Fsum-class.html#__rtruediv__\npygeodesy.fsums.Fsum.__rsub__\tpygeodesy.fsums.Fsum-class.html#__rsub__\npygeodesy.fsums.Fsum.divmod\tpygeodesy.fsums.Fsum-class.html#divmod\npygeodesy.fsums.Fsum.float_int\tpygeodesy.fsums.Fsum-class.html#float_int\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.fsums.Fsum.is_integer\tpygeodesy.fsums.Fsum-class.html#is_integer\npygeodesy.fsums.Fsum._copyd\tpygeodesy.fsums.Fsum-class.html#_copyd\npygeodesy.fsums.Fsum.__float__\tpygeodesy.fsums.Fsum-class.html#__float__\npygeodesy.fsums.Fsum.__rpow__\tpygeodesy.fsums.Fsum-class.html#__rpow__\npygeodesy.fsums.Fsum._fint2\tpygeodesy.fsums.Fsum-class.html#_fint2\npygeodesy.fsums.Fsum._fma\tpygeodesy.fsums.Fsum-class.html#_fma\npygeodesy.fsums.Fsum.fsum2f_\tpygeodesy.fsums.Fsum-class.html#fsum2f_\npygeodesy.fsums.Fsum._facc_xsum\tpygeodesy.fsums.Fsum-class.html#_facc_xsum\npygeodesy.fsums.Fsum.__abs__\tpygeodesy.fsums.Fsum-class.html#__abs__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.fsums.Fsum._cmp_0\tpygeodesy.fsums.Fsum-class.html#_cmp_0\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.fsums.Fsum.__itruediv__\tpygeodesy.fsums.Fsum-class.html#__itruediv__\npygeodesy.fsums.Fsum.fma\tpygeodesy.fsums.Fsum-class.html#fma\npygeodesy.fsums.Fsum.__isub__\tpygeodesy.fsums.Fsum-class.html#__isub__\npygeodesy.fsums.Fsum.__rdivmod__\tpygeodesy.fsums.Fsum-class.html#__rdivmod__\npygeodesy.fsums.Fsum._Error\tpygeodesy.fsums.Fsum-class.html#_Error\npygeodesy.fsums.Fsum.__invert__\tpygeodesy.fsums.Fsum-class.html#__invert__\npygeodesy.fsums.Fsum.is_math_fma\tpygeodesy.fsums.Fsum-class.html#is_math_fma\npygeodesy.fsums.Fsum.fpow\tpygeodesy.fsums.Fsum-class.html#fpow\npygeodesy.fsums.Fsum._facc_scalar\tpygeodesy.fsums.Fsum-class.html#_facc_scalar\npygeodesy.fsums.Fsum.imag\tpygeodesy.fsums.Fsum-class.html#imag\npygeodesy.fsums.Fsum._ps_neg\tpygeodesy.fsums.Fsum-class.html#_ps_neg\npygeodesy.fsums.Fsum._nonfiniteX\tpygeodesy.fsums.Fsum-class.html#_nonfiniteX\npygeodesy.fsums.Fsum.__iter__\tpygeodesy.fsums.Fsum-class.html#__iter__\npygeodesy.fsums.Fsum.Fsum2Tuple_\tpygeodesy.fsums.Fsum-class.html#Fsum2Tuple_\npygeodesy.fsums.Fsum._ftruediv\tpygeodesy.fsums.Fsum-class.html#_ftruediv\npygeodesy.fsums.Fsum.fsub_\tpygeodesy.fsums.Fsum-class.html#fsub_\npygeodesy.fsums.Fsum.copy\tpygeodesy.fsums.Fsum-class.html#copy\npygeodesy.fsums.Fsum.__eq__\tpygeodesy.fsums.Fsum-class.html#__eq__\npygeodesy.fsums.Fsum._facc_scalar_\tpygeodesy.fsums.Fsum-class.html#_facc_scalar_\npygeodesy.named._Named.__repr__\tpygeodesy.named._Named-class.html#__repr__\npygeodesy.fsums.Fsum.__round__\tpygeodesy.fsums.Fsum-class.html#__round__\npygeodesy.fsums.Fsum._fhorner\tpygeodesy.fsums.Fsum-class.html#_fhorner\npygeodesy.fsums.Fsum.__ipow__\tpygeodesy.fsums.Fsum-class.html#__ipow__\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.fsums.Fsum.__iadd__\tpygeodesy.fsums.Fsum-class.html#__iadd__\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.fsums.Fsum.fdiv\tpygeodesy.fsums.Fsum-class.html#fdiv\npygeodesy.fsums.Fsum.__len__\tpygeodesy.fsums.Fsum-class.html#__len__\npygeodesy.fsums.Fsum.__floordiv__\tpygeodesy.fsums.Fsum-class.html#__floordiv__\npygeodesy.fsums.Fsum.__hash__\tpygeodesy.fsums.Fsum-class.html#__hash__\npygeodesy.fsums.Fsum.__sub__\tpygeodesy.fsums.Fsum-class.html#__sub__\npygeodesy.fsums.Fsum.root\tpygeodesy.fsums.Fsum-class.html#root\npygeodesy.fsums.Fsum.__ge__\tpygeodesy.fsums.Fsum-class.html#__ge__\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.fsums.Fsum._update\tpygeodesy.fsums.Fsum-class.html#_update\npygeodesy.fsums.Fsum.fdivmod\tpygeodesy.fsums.Fsum-class.html#fdivmod\npygeodesy.fsums.Fsum._fdivmod2\tpygeodesy.fsums.Fsum-class.html#_fdivmod2\npygeodesy.fsums.Fsum._finite\tpygeodesy.fsums.Fsum-class.html#_finite\npygeodesy.fsums.Fsum.__radd__\tpygeodesy.fsums.Fsum-class.html#__radd__\npygeodesy.fsums.Fsum.__floor__\tpygeodesy.fsums.Fsum-class.html#__floor__\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.fmath.Fhorner.__init__\tpygeodesy.fmath.Fhorner-class.html#__init__\npygeodesy.fsums.Fsum._f2mul\tpygeodesy.fsums.Fsum-class.html#_f2mul\npygeodesy.fsums.Fsum.__imod__\tpygeodesy.fsums.Fsum-class.html#__imod__\npygeodesy.fsums.Fsum._fprs\tpygeodesy.fsums.Fsum-class.html#_fprs\npygeodesy.fsums.Fsum.floor\tpygeodesy.fsums.Fsum-class.html#floor\npygeodesy.fsums.Fsum._optionals\tpygeodesy.fsums.Fsum-class.html#_optionals\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.fsums.Fsum._fadd\tpygeodesy.fsums.Fsum-class.html#_fadd\npygeodesy.fsums.Fsum.__pos__\tpygeodesy.fsums.Fsum-class.html#__pos__\npygeodesy.fsums.Fsum._raiser\tpygeodesy.fsums.Fsum-class.html#_raiser\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.fsums.Fsum.f2mul\tpygeodesy.fsums.Fsum-class.html#f2mul\npygeodesy.fsums.Fsum._scalar\tpygeodesy.fsums.Fsum-class.html#_scalar\npygeodesy.fsums.Fsum.is_exact\tpygeodesy.fsums.Fsum-class.html#is_exact\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.fsums.Fsum.fsumf_\tpygeodesy.fsums.Fsum-class.html#fsumf_\npygeodesy.fsums.Fsum.__idiv__\tpygeodesy.fsums.Fsum-class.html#__idiv__\npygeodesy.fsums.Fsum.is_finite\tpygeodesy.fsums.Fsum-class.html#is_finite\npygeodesy.fsums.Fsum.RESIDUAL\tpygeodesy.fsums.Fsum-class.html#RESIDUAL\npygeodesy.fsums.Fsum._pow_Fsum\tpygeodesy.fsums.Fsum-class.html#_pow_Fsum\npygeodesy.fsums.Fsum.__add__\tpygeodesy.fsums.Fsum-class.html#__add__\npygeodesy.fsums.Fsum.nonfinitesOK\tpygeodesy.fsums.Fsum-class.html#nonfinitesOK\npygeodesy.fsums.Fsum._ps_other\tpygeodesy.fsums.Fsum-class.html#_ps_other\npygeodesy.fsums.Fsum._rcopyd\tpygeodesy.fsums.Fsum-class.html#_rcopyd\npygeodesy.fsums.Fsum.nonfinites\tpygeodesy.fsums.Fsum-class.html#nonfinites\npygeodesy.fsums.Fsum._pow_scalar\tpygeodesy.fsums.Fsum-class.html#_pow_scalar\npygeodesy.fsums.Fsum._ResidualError\tpygeodesy.fsums.Fsum-class.html#_ResidualError\npygeodesy.fsums.Fsum._Fsum\tpygeodesy.fsums.Fsum-class.html#_Fsum\npygeodesy.fsums.Fsum._fsum2\tpygeodesy.fsums.Fsum-class.html#_fsum2\npygeodesy.fsums.Fsum._floordiv\tpygeodesy.fsums.Fsum-class.html#_floordiv\npygeodesy.fsums.Fsum.__div__\tpygeodesy.fsums.Fsum-class.html#__div__\npygeodesy.fsums.Fsum.__neg__\tpygeodesy.fsums.Fsum-class.html#__neg__\npygeodesy.fsums.Fsum.f2mul_\tpygeodesy.fsums.Fsum-class.html#f2mul_\npygeodesy.fsums.Fsum.__le__\tpygeodesy.fsums.Fsum-class.html#__le__\npygeodesy.fmath.Fhypot\tpygeodesy.fmath.Fhypot-class.html\npygeodesy.fsums.Fsum.__int__\tpygeodesy.fsums.Fsum-class.html#__int__\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.fsums.Fsum._facc_dot\tpygeodesy.fsums.Fsum-class.html#_facc_dot\npygeodesy.fsums.Fsum.fsum2_\tpygeodesy.fsums.Fsum-class.html#fsum2_\npygeodesy.fsums.Fsum.__str__\tpygeodesy.fsums.Fsum-class.html#__str__\npygeodesy.fsums.Fsum.__gt__\tpygeodesy.fsums.Fsum-class.html#__gt__\npygeodesy.fsums.Fsum.fint\tpygeodesy.fsums.Fsum-class.html#fint\npygeodesy.fsums.Fsum.__imatmul__\tpygeodesy.fsums.Fsum-class.html#__imatmul__\npygeodesy.fsums.Fsum.__bool__\tpygeodesy.fsums.Fsum-class.html#__bool__\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.fsums.Fsum.__rdiv__\tpygeodesy.fsums.Fsum-class.html#__rdiv__\npygeodesy.fsums.Fsum.__rmul__\tpygeodesy.fsums.Fsum-class.html#__rmul__\npygeodesy.fsums.Fsum.__lt__\tpygeodesy.fsums.Fsum-class.html#__lt__\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.fsums.Fsum._Fsum_as\tpygeodesy.fsums.Fsum-class.html#_Fsum_as\npygeodesy.fsums.Fsum.fover\tpygeodesy.fsums.Fsum-class.html#fover\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.fsums.Fsum.__cmp__\tpygeodesy.fsums.Fsum-class.html#__cmp__\npygeodesy.fsums.Fsum._n\tpygeodesy.fsums.Fsum-class.html#_n\npygeodesy.fsums.Fsum.__rfloordiv__\tpygeodesy.fsums.Fsum-class.html#__rfloordiv__\npygeodesy.fsums.Fsum._ps_acc\tpygeodesy.fsums.Fsum-class.html#_ps_acc\npygeodesy.fsums.Fsum.is_scalar\tpygeodesy.fsums.Fsum-class.html#is_scalar\npygeodesy.fsums.Fsum.fadd\tpygeodesy.fsums.Fsum-class.html#fadd\npygeodesy.fsums.Fsum.__call__\tpygeodesy.fsums.Fsum-class.html#__call__\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.fsums.Fsum._mul_Fsum\tpygeodesy.fsums.Fsum-class.html#_mul_Fsum\npygeodesy.fsums.Fsum.real\tpygeodesy.fsums.Fsum-class.html#real\npygeodesy.fsums.Fsum.toStr\tpygeodesy.fsums.Fsum-class.html#toStr\npygeodesy.fsums.Fsum.f2product\tpygeodesy.fsums.Fsum-class.html#f2product\npygeodesy.fsums.Fsum.ceil\tpygeodesy.fsums.Fsum-class.html#ceil\npygeodesy.fsums.Fsum.__pow__\tpygeodesy.fsums.Fsum-class.html#__pow__\npygeodesy.fsums.Fsum._1_Over\tpygeodesy.fsums.Fsum-class.html#_1_Over\npygeodesy.fsums.Fsum.Fsum_\tpygeodesy.fsums.Fsum-class.html#Fsum_\npygeodesy.fsums.Fsum.Fsumf_\tpygeodesy.fsums.Fsum-class.html#Fsumf_\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.fsums.Fsum._isfine\tpygeodesy.fsums.Fsum-class.html#_isfine\npygeodesy.fsums.Fsum.int_float\tpygeodesy.fsums.Fsum-class.html#int_float\npygeodesy.fsums.Fsum._pow_2_3\tpygeodesy.fsums.Fsum-class.html#_pow_2_3\npygeodesy.fsums.Fsum.__nonzero__\tpygeodesy.fsums.Fsum-class.html#__nonzero__\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.fsums.Fsum._nfprs2\tpygeodesy.fsums.Fsum-class.html#_nfprs2\npygeodesy.fsums.Fsum.signOf\tpygeodesy.fsums.Fsum-class.html#signOf\npygeodesy.fsums.Fsum.__mod__\tpygeodesy.fsums.Fsum-class.html#__mod__\npygeodesy.fsums.Fsum.fint2\tpygeodesy.fsums.Fsum-class.html#fint2\npygeodesy.fsums.Fsum._mul_scalar\tpygeodesy.fsums.Fsum-class.html#_mul_scalar\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.fsums.Fsum._facc_args\tpygeodesy.fsums.Fsum-class.html#_facc_args\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.fsums.Fsum.__long__\tpygeodesy.fsums.Fsum-class.html#__long__\npygeodesy.fsums.Fsum._pow_0_1\tpygeodesy.fsums.Fsum-class.html#_pow_0_1\npygeodesy.fsums.Fsum.cmp\tpygeodesy.fsums.Fsum-class.html#cmp\npygeodesy.fsums.Fsum.toRepr\tpygeodesy.fsums.Fsum-class.html#toRepr\npygeodesy.fsums.Fsum._RESIDUAL\tpygeodesy.fsums.Fsum-class.html#_RESIDUAL\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.fsums.Fsum._truediv\tpygeodesy.fsums.Fsum-class.html#_truediv\npygeodesy.fsums.Fsum._ps_1sum\tpygeodesy.fsums.Fsum-class.html#_ps_1sum\npygeodesy.fsums.Fsum._pow\tpygeodesy.fsums.Fsum-class.html#_pow\npygeodesy.fsums.Fsum._fset\tpygeodesy.fsums.Fsum-class.html#_fset\npygeodesy.fsums.Fsum.__truediv__\tpygeodesy.fsums.Fsum-class.html#__truediv__\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.fsums.Fsum.__ceil__\tpygeodesy.fsums.Fsum-class.html#__ceil__\npygeodesy.fsums.Fsum.__rmod__\tpygeodesy.fsums.Fsum-class.html#__rmod__\npygeodesy.fsums.Fsum._ps_mul\tpygeodesy.fsums.Fsum-class.html#_ps_mul\npygeodesy.fsums.Fsum._facc_power\tpygeodesy.fsums.Fsum-class.html#_facc_power\npygeodesy.fsums.Fsum.as_integer_ratio\tpygeodesy.fsums.Fsum-class.html#as_integer_ratio\npygeodesy.fsums.Fsum.partials\tpygeodesy.fsums.Fsum-class.html#partials\npygeodesy.fsums.Fsum.is_math_fsum\tpygeodesy.fsums.Fsum-class.html#is_math_fsum\npygeodesy.fsums.Fsum.fsum_\tpygeodesy.fsums.Fsum-class.html#fsum_\npygeodesy.fsums.Fsum.as_iscalar\tpygeodesy.fsums.Fsum-class.html#as_iscalar\npygeodesy.fsums.Fsum.__ne__\tpygeodesy.fsums.Fsum-class.html#__ne__\npygeodesy.fsums.Fsum._pow_int\tpygeodesy.fsums.Fsum-class.html#_pow_int\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.fsums.Fsum.__ifloordiv__\tpygeodesy.fsums.Fsum-class.html#__ifloordiv__\npygeodesy.fsums.Fsum._ErrorXs\tpygeodesy.fsums.Fsum-class.html#_ErrorXs\npygeodesy.fsums.Fsum._fmul\tpygeodesy.fsums.Fsum-class.html#_fmul\npygeodesy.fsums.Fsum.residual\tpygeodesy.fsums.Fsum-class.html#residual\npygeodesy.fsums.Fsum.rdiv\tpygeodesy.fsums.Fsum-class.html#rdiv\npygeodesy.fsums.Fsum._facc_neg\tpygeodesy.fsums.Fsum-class.html#_facc_neg\npygeodesy.fsums.Fsum._f2product\tpygeodesy.fsums.Fsum-class.html#_f2product\npygeodesy.fsums.Fsum._mul_reduce\tpygeodesy.fsums.Fsum-class.html#_mul_reduce\npygeodesy.fsums.Fsum._fprs2\tpygeodesy.fsums.Fsum-class.html#_fprs2\npygeodesy.fsums.Fsum.__divmod__\tpygeodesy.fsums.Fsum-class.html#__divmod__\npygeodesy.fsums.Fsum._ErrorX\tpygeodesy.fsums.Fsum-class.html#_ErrorX\npygeodesy.fsums.Fsum._neg\tpygeodesy.fsums.Fsum-class.html#_neg\npygeodesy.fsums.Fsum.__rmatmul__\tpygeodesy.fsums.Fsum-class.html#__rmatmul__\npygeodesy.fsums.Fsum.fsum2\tpygeodesy.fsums.Fsum-class.html#fsum2\npygeodesy.fsums.Fsum._facc\tpygeodesy.fsums.Fsum-class.html#_facc\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.fsums.Fsum.fcopy\tpygeodesy.fsums.Fsum-class.html#fcopy\npygeodesy.fsums.Fsum.__imul__\tpygeodesy.fsums.Fsum-class.html#__imul__\npygeodesy.fsums.Fsum.__trunc__\tpygeodesy.fsums.Fsum-class.html#__trunc__\npygeodesy.fsums.Fsum.fma_\tpygeodesy.fsums.Fsum-class.html#fma_\npygeodesy.fsums.Fsum.__mul__\tpygeodesy.fsums.Fsum-class.html#__mul__\npygeodesy.fsums.Fsum._fpow\tpygeodesy.fsums.Fsum-class.html#_fpow\npygeodesy.fsums.Fsum.__matmul__\tpygeodesy.fsums.Fsum-class.html#__matmul__\npygeodesy.fsums.Fsum._fsub\tpygeodesy.fsums.Fsum-class.html#_fsub\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.fsums.Fsum.fadd_\tpygeodesy.fsums.Fsum-class.html#fadd_\npygeodesy.fsums.Fsum.fsub\tpygeodesy.fsums.Fsum-class.html#fsub\npygeodesy.fsums.Fsum.fset_\tpygeodesy.fsums.Fsum-class.html#fset_\npygeodesy.fsums.Fsum.pow\tpygeodesy.fsums.Fsum-class.html#pow\npygeodesy.fsums.Fsum.fsum\tpygeodesy.fsums.Fsum-class.html#fsum\npygeodesy.fsums.Fsum.fmul\tpygeodesy.fsums.Fsum-class.html#fmul\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.fsums.Fsum.__rtruediv__\tpygeodesy.fsums.Fsum-class.html#__rtruediv__\npygeodesy.fsums.Fsum.__rsub__\tpygeodesy.fsums.Fsum-class.html#__rsub__\npygeodesy.fsums.Fsum.divmod\tpygeodesy.fsums.Fsum-class.html#divmod\npygeodesy.fsums.Fsum.float_int\tpygeodesy.fsums.Fsum-class.html#float_int\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.fsums.Fsum.is_integer\tpygeodesy.fsums.Fsum-class.html#is_integer\npygeodesy.fsums.Fsum._copyd\tpygeodesy.fsums.Fsum-class.html#_copyd\npygeodesy.fsums.Fsum.__float__\tpygeodesy.fsums.Fsum-class.html#__float__\npygeodesy.fsums.Fsum.__rpow__\tpygeodesy.fsums.Fsum-class.html#__rpow__\npygeodesy.fsums.Fsum._fint2\tpygeodesy.fsums.Fsum-class.html#_fint2\npygeodesy.fsums.Fsum._fma\tpygeodesy.fsums.Fsum-class.html#_fma\npygeodesy.fsums.Fsum.fsum2f_\tpygeodesy.fsums.Fsum-class.html#fsum2f_\npygeodesy.fsums.Fsum._facc_xsum\tpygeodesy.fsums.Fsum-class.html#_facc_xsum\npygeodesy.fsums.Fsum.__abs__\tpygeodesy.fsums.Fsum-class.html#__abs__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.fsums.Fsum._cmp_0\tpygeodesy.fsums.Fsum-class.html#_cmp_0\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.fsums.Fsum.__itruediv__\tpygeodesy.fsums.Fsum-class.html#__itruediv__\npygeodesy.fsums.Fsum.fma\tpygeodesy.fsums.Fsum-class.html#fma\npygeodesy.fsums.Fsum.__isub__\tpygeodesy.fsums.Fsum-class.html#__isub__\npygeodesy.fsums.Fsum.__rdivmod__\tpygeodesy.fsums.Fsum-class.html#__rdivmod__\npygeodesy.fsums.Fsum._Error\tpygeodesy.fsums.Fsum-class.html#_Error\npygeodesy.fsums.Fsum.__invert__\tpygeodesy.fsums.Fsum-class.html#__invert__\npygeodesy.fsums.Fsum.is_math_fma\tpygeodesy.fsums.Fsum-class.html#is_math_fma\npygeodesy.fsums.Fsum.fpow\tpygeodesy.fsums.Fsum-class.html#fpow\npygeodesy.fsums.Fsum._facc_scalar\tpygeodesy.fsums.Fsum-class.html#_facc_scalar\npygeodesy.fsums.Fsum.imag\tpygeodesy.fsums.Fsum-class.html#imag\npygeodesy.fsums.Fsum._ps_neg\tpygeodesy.fsums.Fsum-class.html#_ps_neg\npygeodesy.fsums.Fsum._nonfiniteX\tpygeodesy.fsums.Fsum-class.html#_nonfiniteX\npygeodesy.fsums.Fsum.__iter__\tpygeodesy.fsums.Fsum-class.html#__iter__\npygeodesy.fsums.Fsum.Fsum2Tuple_\tpygeodesy.fsums.Fsum-class.html#Fsum2Tuple_\npygeodesy.fsums.Fsum._ftruediv\tpygeodesy.fsums.Fsum-class.html#_ftruediv\npygeodesy.fsums.Fsum.fsub_\tpygeodesy.fsums.Fsum-class.html#fsub_\npygeodesy.fsums.Fsum.copy\tpygeodesy.fsums.Fsum-class.html#copy\npygeodesy.fsums.Fsum.__eq__\tpygeodesy.fsums.Fsum-class.html#__eq__\npygeodesy.fsums.Fsum._facc_scalar_\tpygeodesy.fsums.Fsum-class.html#_facc_scalar_\npygeodesy.named._Named.__repr__\tpygeodesy.named._Named-class.html#__repr__\npygeodesy.fsums.Fsum.__round__\tpygeodesy.fsums.Fsum-class.html#__round__\npygeodesy.fsums.Fsum._fhorner\tpygeodesy.fsums.Fsum-class.html#_fhorner\npygeodesy.fsums.Fsum.__ipow__\tpygeodesy.fsums.Fsum-class.html#__ipow__\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.fsums.Fsum.__iadd__\tpygeodesy.fsums.Fsum-class.html#__iadd__\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.fsums.Fsum.fdiv\tpygeodesy.fsums.Fsum-class.html#fdiv\npygeodesy.fsums.Fsum.__len__\tpygeodesy.fsums.Fsum-class.html#__len__\npygeodesy.fsums.Fsum.__floordiv__\tpygeodesy.fsums.Fsum-class.html#__floordiv__\npygeodesy.fsums.Fsum.__hash__\tpygeodesy.fsums.Fsum-class.html#__hash__\npygeodesy.fsums.Fsum.__sub__\tpygeodesy.fsums.Fsum-class.html#__sub__\npygeodesy.fsums.Fsum.root\tpygeodesy.fsums.Fsum-class.html#root\npygeodesy.fsums.Fsum.__ge__\tpygeodesy.fsums.Fsum-class.html#__ge__\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.fsums.Fsum._update\tpygeodesy.fsums.Fsum-class.html#_update\npygeodesy.fsums.Fsum.fdivmod\tpygeodesy.fsums.Fsum-class.html#fdivmod\npygeodesy.fsums.Fsum._fdivmod2\tpygeodesy.fsums.Fsum-class.html#_fdivmod2\npygeodesy.fsums.Fsum._finite\tpygeodesy.fsums.Fsum-class.html#_finite\npygeodesy.fsums.Fsum.__radd__\tpygeodesy.fsums.Fsum-class.html#__radd__\npygeodesy.fsums.Fsum.__floor__\tpygeodesy.fsums.Fsum-class.html#__floor__\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.fmath.Fhypot.__init__\tpygeodesy.fmath.Fhypot-class.html#__init__\npygeodesy.fsums.Fsum._f2mul\tpygeodesy.fsums.Fsum-class.html#_f2mul\npygeodesy.fsums.Fsum.__imod__\tpygeodesy.fsums.Fsum-class.html#__imod__\npygeodesy.fsums.Fsum._fprs\tpygeodesy.fsums.Fsum-class.html#_fprs\npygeodesy.fsums.Fsum.floor\tpygeodesy.fsums.Fsum-class.html#floor\npygeodesy.fsums.Fsum._optionals\tpygeodesy.fsums.Fsum-class.html#_optionals\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.fsums.Fsum._fadd\tpygeodesy.fsums.Fsum-class.html#_fadd\npygeodesy.fsums.Fsum.__pos__\tpygeodesy.fsums.Fsum-class.html#__pos__\npygeodesy.fsums.Fsum._raiser\tpygeodesy.fsums.Fsum-class.html#_raiser\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.fsums.Fsum.f2mul\tpygeodesy.fsums.Fsum-class.html#f2mul\npygeodesy.fsums.Fsum._scalar\tpygeodesy.fsums.Fsum-class.html#_scalar\npygeodesy.fsums.Fsum.is_exact\tpygeodesy.fsums.Fsum-class.html#is_exact\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.fsums.Fsum.fsumf_\tpygeodesy.fsums.Fsum-class.html#fsumf_\npygeodesy.fsums.Fsum.__idiv__\tpygeodesy.fsums.Fsum-class.html#__idiv__\npygeodesy.fsums.Fsum.is_finite\tpygeodesy.fsums.Fsum-class.html#is_finite\npygeodesy.fsums.Fsum.RESIDUAL\tpygeodesy.fsums.Fsum-class.html#RESIDUAL\npygeodesy.fsums.Fsum._pow_Fsum\tpygeodesy.fsums.Fsum-class.html#_pow_Fsum\npygeodesy.fsums.Fsum.__add__\tpygeodesy.fsums.Fsum-class.html#__add__\npygeodesy.fsums.Fsum.nonfinitesOK\tpygeodesy.fsums.Fsum-class.html#nonfinitesOK\npygeodesy.fsums.Fsum._ps_other\tpygeodesy.fsums.Fsum-class.html#_ps_other\npygeodesy.fsums.Fsum._rcopyd\tpygeodesy.fsums.Fsum-class.html#_rcopyd\npygeodesy.fsums.Fsum.nonfinites\tpygeodesy.fsums.Fsum-class.html#nonfinites\npygeodesy.fsums.Fsum._pow_scalar\tpygeodesy.fsums.Fsum-class.html#_pow_scalar\npygeodesy.fsums.Fsum._ResidualError\tpygeodesy.fsums.Fsum-class.html#_ResidualError\npygeodesy.fsums.Fsum._Fsum\tpygeodesy.fsums.Fsum-class.html#_Fsum\npygeodesy.fsums.Fsum._fsum2\tpygeodesy.fsums.Fsum-class.html#_fsum2\npygeodesy.fsums.Fsum._floordiv\tpygeodesy.fsums.Fsum-class.html#_floordiv\npygeodesy.fsums.Fsum.__div__\tpygeodesy.fsums.Fsum-class.html#__div__\npygeodesy.fsums.Fsum.__neg__\tpygeodesy.fsums.Fsum-class.html#__neg__\npygeodesy.fsums.Fsum.f2mul_\tpygeodesy.fsums.Fsum-class.html#f2mul_\npygeodesy.fsums.Fsum.__le__\tpygeodesy.fsums.Fsum-class.html#__le__\npygeodesy.fmath.Fpolynomial\tpygeodesy.fmath.Fpolynomial-class.html\npygeodesy.fsums.Fsum.__int__\tpygeodesy.fsums.Fsum-class.html#__int__\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.fsums.Fsum._facc_dot\tpygeodesy.fsums.Fsum-class.html#_facc_dot\npygeodesy.fsums.Fsum.fsum2_\tpygeodesy.fsums.Fsum-class.html#fsum2_\npygeodesy.fsums.Fsum.__str__\tpygeodesy.fsums.Fsum-class.html#__str__\npygeodesy.fsums.Fsum.__gt__\tpygeodesy.fsums.Fsum-class.html#__gt__\npygeodesy.fsums.Fsum.fint\tpygeodesy.fsums.Fsum-class.html#fint\npygeodesy.fsums.Fsum.__imatmul__\tpygeodesy.fsums.Fsum-class.html#__imatmul__\npygeodesy.fsums.Fsum.__bool__\tpygeodesy.fsums.Fsum-class.html#__bool__\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.fsums.Fsum.__rdiv__\tpygeodesy.fsums.Fsum-class.html#__rdiv__\npygeodesy.fsums.Fsum.__rmul__\tpygeodesy.fsums.Fsum-class.html#__rmul__\npygeodesy.fsums.Fsum.__lt__\tpygeodesy.fsums.Fsum-class.html#__lt__\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.fsums.Fsum._Fsum_as\tpygeodesy.fsums.Fsum-class.html#_Fsum_as\npygeodesy.fsums.Fsum.fover\tpygeodesy.fsums.Fsum-class.html#fover\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.fsums.Fsum.__cmp__\tpygeodesy.fsums.Fsum-class.html#__cmp__\npygeodesy.fsums.Fsum._n\tpygeodesy.fsums.Fsum-class.html#_n\npygeodesy.fsums.Fsum.__rfloordiv__\tpygeodesy.fsums.Fsum-class.html#__rfloordiv__\npygeodesy.fsums.Fsum._ps_acc\tpygeodesy.fsums.Fsum-class.html#_ps_acc\npygeodesy.fsums.Fsum.is_scalar\tpygeodesy.fsums.Fsum-class.html#is_scalar\npygeodesy.fsums.Fsum.fadd\tpygeodesy.fsums.Fsum-class.html#fadd\npygeodesy.fsums.Fsum.__call__\tpygeodesy.fsums.Fsum-class.html#__call__\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.fsums.Fsum._mul_Fsum\tpygeodesy.fsums.Fsum-class.html#_mul_Fsum\npygeodesy.fsums.Fsum.real\tpygeodesy.fsums.Fsum-class.html#real\npygeodesy.fsums.Fsum.toStr\tpygeodesy.fsums.Fsum-class.html#toStr\npygeodesy.fsums.Fsum.f2product\tpygeodesy.fsums.Fsum-class.html#f2product\npygeodesy.fsums.Fsum.ceil\tpygeodesy.fsums.Fsum-class.html#ceil\npygeodesy.fsums.Fsum.__pow__\tpygeodesy.fsums.Fsum-class.html#__pow__\npygeodesy.fsums.Fsum._1_Over\tpygeodesy.fsums.Fsum-class.html#_1_Over\npygeodesy.fsums.Fsum.Fsum_\tpygeodesy.fsums.Fsum-class.html#Fsum_\npygeodesy.fsums.Fsum.Fsumf_\tpygeodesy.fsums.Fsum-class.html#Fsumf_\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.fsums.Fsum._isfine\tpygeodesy.fsums.Fsum-class.html#_isfine\npygeodesy.fsums.Fsum.int_float\tpygeodesy.fsums.Fsum-class.html#int_float\npygeodesy.fsums.Fsum._pow_2_3\tpygeodesy.fsums.Fsum-class.html#_pow_2_3\npygeodesy.fsums.Fsum.__nonzero__\tpygeodesy.fsums.Fsum-class.html#__nonzero__\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.fsums.Fsum._nfprs2\tpygeodesy.fsums.Fsum-class.html#_nfprs2\npygeodesy.fsums.Fsum.signOf\tpygeodesy.fsums.Fsum-class.html#signOf\npygeodesy.fsums.Fsum.__mod__\tpygeodesy.fsums.Fsum-class.html#__mod__\npygeodesy.fsums.Fsum.fint2\tpygeodesy.fsums.Fsum-class.html#fint2\npygeodesy.fsums.Fsum._mul_scalar\tpygeodesy.fsums.Fsum-class.html#_mul_scalar\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.fsums.Fsum._facc_args\tpygeodesy.fsums.Fsum-class.html#_facc_args\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.fsums.Fsum.__long__\tpygeodesy.fsums.Fsum-class.html#__long__\npygeodesy.fsums.Fsum._pow_0_1\tpygeodesy.fsums.Fsum-class.html#_pow_0_1\npygeodesy.fsums.Fsum.cmp\tpygeodesy.fsums.Fsum-class.html#cmp\npygeodesy.fsums.Fsum.toRepr\tpygeodesy.fsums.Fsum-class.html#toRepr\npygeodesy.fsums.Fsum._RESIDUAL\tpygeodesy.fsums.Fsum-class.html#_RESIDUAL\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.fsums.Fsum._truediv\tpygeodesy.fsums.Fsum-class.html#_truediv\npygeodesy.fsums.Fsum._ps_1sum\tpygeodesy.fsums.Fsum-class.html#_ps_1sum\npygeodesy.fsums.Fsum._pow\tpygeodesy.fsums.Fsum-class.html#_pow\npygeodesy.fsums.Fsum._fset\tpygeodesy.fsums.Fsum-class.html#_fset\npygeodesy.fsums.Fsum.__truediv__\tpygeodesy.fsums.Fsum-class.html#__truediv__\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.fsums.Fsum.__ceil__\tpygeodesy.fsums.Fsum-class.html#__ceil__\npygeodesy.fsums.Fsum.__rmod__\tpygeodesy.fsums.Fsum-class.html#__rmod__\npygeodesy.fsums.Fsum._ps_mul\tpygeodesy.fsums.Fsum-class.html#_ps_mul\npygeodesy.fsums.Fsum._facc_power\tpygeodesy.fsums.Fsum-class.html#_facc_power\npygeodesy.fsums.Fsum.as_integer_ratio\tpygeodesy.fsums.Fsum-class.html#as_integer_ratio\npygeodesy.fsums.Fsum.partials\tpygeodesy.fsums.Fsum-class.html#partials\npygeodesy.fsums.Fsum.is_math_fsum\tpygeodesy.fsums.Fsum-class.html#is_math_fsum\npygeodesy.fsums.Fsum.fsum_\tpygeodesy.fsums.Fsum-class.html#fsum_\npygeodesy.fsums.Fsum.as_iscalar\tpygeodesy.fsums.Fsum-class.html#as_iscalar\npygeodesy.fsums.Fsum.__ne__\tpygeodesy.fsums.Fsum-class.html#__ne__\npygeodesy.fsums.Fsum._pow_int\tpygeodesy.fsums.Fsum-class.html#_pow_int\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.fsums.Fsum.__ifloordiv__\tpygeodesy.fsums.Fsum-class.html#__ifloordiv__\npygeodesy.fsums.Fsum._ErrorXs\tpygeodesy.fsums.Fsum-class.html#_ErrorXs\npygeodesy.fsums.Fsum._fmul\tpygeodesy.fsums.Fsum-class.html#_fmul\npygeodesy.fsums.Fsum.residual\tpygeodesy.fsums.Fsum-class.html#residual\npygeodesy.fsums.Fsum.rdiv\tpygeodesy.fsums.Fsum-class.html#rdiv\npygeodesy.fsums.Fsum._facc_neg\tpygeodesy.fsums.Fsum-class.html#_facc_neg\npygeodesy.fsums.Fsum._f2product\tpygeodesy.fsums.Fsum-class.html#_f2product\npygeodesy.fsums.Fsum._mul_reduce\tpygeodesy.fsums.Fsum-class.html#_mul_reduce\npygeodesy.fsums.Fsum._fprs2\tpygeodesy.fsums.Fsum-class.html#_fprs2\npygeodesy.fsums.Fsum.__divmod__\tpygeodesy.fsums.Fsum-class.html#__divmod__\npygeodesy.fsums.Fsum._ErrorX\tpygeodesy.fsums.Fsum-class.html#_ErrorX\npygeodesy.fsums.Fsum._neg\tpygeodesy.fsums.Fsum-class.html#_neg\npygeodesy.fsums.Fsum.__rmatmul__\tpygeodesy.fsums.Fsum-class.html#__rmatmul__\npygeodesy.fsums.Fsum.fsum2\tpygeodesy.fsums.Fsum-class.html#fsum2\npygeodesy.fsums.Fsum._facc\tpygeodesy.fsums.Fsum-class.html#_facc\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.fsums.Fsum.fcopy\tpygeodesy.fsums.Fsum-class.html#fcopy\npygeodesy.fsums.Fsum.__imul__\tpygeodesy.fsums.Fsum-class.html#__imul__\npygeodesy.fsums.Fsum.__trunc__\tpygeodesy.fsums.Fsum-class.html#__trunc__\npygeodesy.fsums.Fsum.fma_\tpygeodesy.fsums.Fsum-class.html#fma_\npygeodesy.fsums.Fsum.__mul__\tpygeodesy.fsums.Fsum-class.html#__mul__\npygeodesy.fsums.Fsum._fpow\tpygeodesy.fsums.Fsum-class.html#_fpow\npygeodesy.fsums.Fsum.__matmul__\tpygeodesy.fsums.Fsum-class.html#__matmul__\npygeodesy.fsums.Fsum._fsub\tpygeodesy.fsums.Fsum-class.html#_fsub\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.fsums.Fsum.fadd_\tpygeodesy.fsums.Fsum-class.html#fadd_\npygeodesy.fsums.Fsum.fsub\tpygeodesy.fsums.Fsum-class.html#fsub\npygeodesy.fsums.Fsum.fset_\tpygeodesy.fsums.Fsum-class.html#fset_\npygeodesy.fsums.Fsum.pow\tpygeodesy.fsums.Fsum-class.html#pow\npygeodesy.fsums.Fsum.fsum\tpygeodesy.fsums.Fsum-class.html#fsum\npygeodesy.fsums.Fsum.fmul\tpygeodesy.fsums.Fsum-class.html#fmul\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.fsums.Fsum.__rtruediv__\tpygeodesy.fsums.Fsum-class.html#__rtruediv__\npygeodesy.fsums.Fsum.__rsub__\tpygeodesy.fsums.Fsum-class.html#__rsub__\npygeodesy.fsums.Fsum.divmod\tpygeodesy.fsums.Fsum-class.html#divmod\npygeodesy.fsums.Fsum.float_int\tpygeodesy.fsums.Fsum-class.html#float_int\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.fsums.Fsum.is_integer\tpygeodesy.fsums.Fsum-class.html#is_integer\npygeodesy.fsums.Fsum._copyd\tpygeodesy.fsums.Fsum-class.html#_copyd\npygeodesy.fsums.Fsum.__float__\tpygeodesy.fsums.Fsum-class.html#__float__\npygeodesy.fsums.Fsum.__rpow__\tpygeodesy.fsums.Fsum-class.html#__rpow__\npygeodesy.fsums.Fsum._fint2\tpygeodesy.fsums.Fsum-class.html#_fint2\npygeodesy.fsums.Fsum._fma\tpygeodesy.fsums.Fsum-class.html#_fma\npygeodesy.fsums.Fsum.fsum2f_\tpygeodesy.fsums.Fsum-class.html#fsum2f_\npygeodesy.fsums.Fsum._facc_xsum\tpygeodesy.fsums.Fsum-class.html#_facc_xsum\npygeodesy.fsums.Fsum.__abs__\tpygeodesy.fsums.Fsum-class.html#__abs__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.fsums.Fsum._cmp_0\tpygeodesy.fsums.Fsum-class.html#_cmp_0\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.fsums.Fsum.__itruediv__\tpygeodesy.fsums.Fsum-class.html#__itruediv__\npygeodesy.fsums.Fsum.fma\tpygeodesy.fsums.Fsum-class.html#fma\npygeodesy.fsums.Fsum.__isub__\tpygeodesy.fsums.Fsum-class.html#__isub__\npygeodesy.fsums.Fsum.__rdivmod__\tpygeodesy.fsums.Fsum-class.html#__rdivmod__\npygeodesy.fsums.Fsum._Error\tpygeodesy.fsums.Fsum-class.html#_Error\npygeodesy.fsums.Fsum.__invert__\tpygeodesy.fsums.Fsum-class.html#__invert__\npygeodesy.fsums.Fsum.is_math_fma\tpygeodesy.fsums.Fsum-class.html#is_math_fma\npygeodesy.fsums.Fsum.fpow\tpygeodesy.fsums.Fsum-class.html#fpow\npygeodesy.fsums.Fsum._facc_scalar\tpygeodesy.fsums.Fsum-class.html#_facc_scalar\npygeodesy.fsums.Fsum.imag\tpygeodesy.fsums.Fsum-class.html#imag\npygeodesy.fsums.Fsum._ps_neg\tpygeodesy.fsums.Fsum-class.html#_ps_neg\npygeodesy.fsums.Fsum._nonfiniteX\tpygeodesy.fsums.Fsum-class.html#_nonfiniteX\npygeodesy.fsums.Fsum.__iter__\tpygeodesy.fsums.Fsum-class.html#__iter__\npygeodesy.fsums.Fsum.Fsum2Tuple_\tpygeodesy.fsums.Fsum-class.html#Fsum2Tuple_\npygeodesy.fsums.Fsum._ftruediv\tpygeodesy.fsums.Fsum-class.html#_ftruediv\npygeodesy.fsums.Fsum.fsub_\tpygeodesy.fsums.Fsum-class.html#fsub_\npygeodesy.fsums.Fsum.copy\tpygeodesy.fsums.Fsum-class.html#copy\npygeodesy.fsums.Fsum.__eq__\tpygeodesy.fsums.Fsum-class.html#__eq__\npygeodesy.fsums.Fsum._facc_scalar_\tpygeodesy.fsums.Fsum-class.html#_facc_scalar_\npygeodesy.named._Named.__repr__\tpygeodesy.named._Named-class.html#__repr__\npygeodesy.fsums.Fsum.__round__\tpygeodesy.fsums.Fsum-class.html#__round__\npygeodesy.fsums.Fsum._fhorner\tpygeodesy.fsums.Fsum-class.html#_fhorner\npygeodesy.fsums.Fsum.__ipow__\tpygeodesy.fsums.Fsum-class.html#__ipow__\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.fsums.Fsum.__iadd__\tpygeodesy.fsums.Fsum-class.html#__iadd__\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.fsums.Fsum.fdiv\tpygeodesy.fsums.Fsum-class.html#fdiv\npygeodesy.fsums.Fsum.__len__\tpygeodesy.fsums.Fsum-class.html#__len__\npygeodesy.fsums.Fsum.__floordiv__\tpygeodesy.fsums.Fsum-class.html#__floordiv__\npygeodesy.fsums.Fsum.__hash__\tpygeodesy.fsums.Fsum-class.html#__hash__\npygeodesy.fsums.Fsum.__sub__\tpygeodesy.fsums.Fsum-class.html#__sub__\npygeodesy.fsums.Fsum.root\tpygeodesy.fsums.Fsum-class.html#root\npygeodesy.fsums.Fsum.__ge__\tpygeodesy.fsums.Fsum-class.html#__ge__\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.fsums.Fsum._update\tpygeodesy.fsums.Fsum-class.html#_update\npygeodesy.fsums.Fsum.fdivmod\tpygeodesy.fsums.Fsum-class.html#fdivmod\npygeodesy.fsums.Fsum._fdivmod2\tpygeodesy.fsums.Fsum-class.html#_fdivmod2\npygeodesy.fsums.Fsum._finite\tpygeodesy.fsums.Fsum-class.html#_finite\npygeodesy.fsums.Fsum.__radd__\tpygeodesy.fsums.Fsum-class.html#__radd__\npygeodesy.fsums.Fsum.__floor__\tpygeodesy.fsums.Fsum-class.html#__floor__\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.fmath.Fpolynomial.__init__\tpygeodesy.fmath.Fpolynomial-class.html#__init__\npygeodesy.fsums.Fsum._f2mul\tpygeodesy.fsums.Fsum-class.html#_f2mul\npygeodesy.fsums.Fsum.__imod__\tpygeodesy.fsums.Fsum-class.html#__imod__\npygeodesy.fsums.Fsum._fprs\tpygeodesy.fsums.Fsum-class.html#_fprs\npygeodesy.fsums.Fsum.floor\tpygeodesy.fsums.Fsum-class.html#floor\npygeodesy.fsums.Fsum._optionals\tpygeodesy.fsums.Fsum-class.html#_optionals\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.fsums.Fsum._fadd\tpygeodesy.fsums.Fsum-class.html#_fadd\npygeodesy.fsums.Fsum.__pos__\tpygeodesy.fsums.Fsum-class.html#__pos__\npygeodesy.fsums.Fsum._raiser\tpygeodesy.fsums.Fsum-class.html#_raiser\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.fsums.Fsum.f2mul\tpygeodesy.fsums.Fsum-class.html#f2mul\npygeodesy.fsums.Fsum._scalar\tpygeodesy.fsums.Fsum-class.html#_scalar\npygeodesy.fsums.Fsum.is_exact\tpygeodesy.fsums.Fsum-class.html#is_exact\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.fsums.Fsum.fsumf_\tpygeodesy.fsums.Fsum-class.html#fsumf_\npygeodesy.fsums.Fsum.__idiv__\tpygeodesy.fsums.Fsum-class.html#__idiv__\npygeodesy.fsums.Fsum.is_finite\tpygeodesy.fsums.Fsum-class.html#is_finite\npygeodesy.fsums.Fsum.RESIDUAL\tpygeodesy.fsums.Fsum-class.html#RESIDUAL\npygeodesy.fsums.Fsum._pow_Fsum\tpygeodesy.fsums.Fsum-class.html#_pow_Fsum\npygeodesy.fsums.Fsum.__add__\tpygeodesy.fsums.Fsum-class.html#__add__\npygeodesy.fsums.Fsum.nonfinitesOK\tpygeodesy.fsums.Fsum-class.html#nonfinitesOK\npygeodesy.fsums.Fsum._ps_other\tpygeodesy.fsums.Fsum-class.html#_ps_other\npygeodesy.fsums.Fsum._rcopyd\tpygeodesy.fsums.Fsum-class.html#_rcopyd\npygeodesy.fsums.Fsum.nonfinites\tpygeodesy.fsums.Fsum-class.html#nonfinites\npygeodesy.fsums.Fsum._pow_scalar\tpygeodesy.fsums.Fsum-class.html#_pow_scalar\npygeodesy.fsums.Fsum._ResidualError\tpygeodesy.fsums.Fsum-class.html#_ResidualError\npygeodesy.fsums.Fsum._Fsum\tpygeodesy.fsums.Fsum-class.html#_Fsum\npygeodesy.fsums.Fsum._fsum2\tpygeodesy.fsums.Fsum-class.html#_fsum2\npygeodesy.fsums.Fsum._floordiv\tpygeodesy.fsums.Fsum-class.html#_floordiv\npygeodesy.fsums.Fsum.__div__\tpygeodesy.fsums.Fsum-class.html#__div__\npygeodesy.fsums.Fsum.__neg__\tpygeodesy.fsums.Fsum-class.html#__neg__\npygeodesy.fsums.Fsum.f2mul_\tpygeodesy.fsums.Fsum-class.html#f2mul_\npygeodesy.fsums.Fsum.__le__\tpygeodesy.fsums.Fsum-class.html#__le__\npygeodesy.fmath.Fpowers\tpygeodesy.fmath.Fpowers-class.html\npygeodesy.fsums.Fsum.__int__\tpygeodesy.fsums.Fsum-class.html#__int__\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.fsums.Fsum._facc_dot\tpygeodesy.fsums.Fsum-class.html#_facc_dot\npygeodesy.fsums.Fsum.fsum2_\tpygeodesy.fsums.Fsum-class.html#fsum2_\npygeodesy.fsums.Fsum.__str__\tpygeodesy.fsums.Fsum-class.html#__str__\npygeodesy.fsums.Fsum.__gt__\tpygeodesy.fsums.Fsum-class.html#__gt__\npygeodesy.fsums.Fsum.fint\tpygeodesy.fsums.Fsum-class.html#fint\npygeodesy.fsums.Fsum.__imatmul__\tpygeodesy.fsums.Fsum-class.html#__imatmul__\npygeodesy.fsums.Fsum.__bool__\tpygeodesy.fsums.Fsum-class.html#__bool__\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.fsums.Fsum.__rdiv__\tpygeodesy.fsums.Fsum-class.html#__rdiv__\npygeodesy.fsums.Fsum.__rmul__\tpygeodesy.fsums.Fsum-class.html#__rmul__\npygeodesy.fsums.Fsum.__lt__\tpygeodesy.fsums.Fsum-class.html#__lt__\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.fsums.Fsum._Fsum_as\tpygeodesy.fsums.Fsum-class.html#_Fsum_as\npygeodesy.fsums.Fsum.fover\tpygeodesy.fsums.Fsum-class.html#fover\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.fsums.Fsum.__cmp__\tpygeodesy.fsums.Fsum-class.html#__cmp__\npygeodesy.fsums.Fsum._n\tpygeodesy.fsums.Fsum-class.html#_n\npygeodesy.fsums.Fsum.__rfloordiv__\tpygeodesy.fsums.Fsum-class.html#__rfloordiv__\npygeodesy.fsums.Fsum._ps_acc\tpygeodesy.fsums.Fsum-class.html#_ps_acc\npygeodesy.fsums.Fsum.is_scalar\tpygeodesy.fsums.Fsum-class.html#is_scalar\npygeodesy.fsums.Fsum.fadd\tpygeodesy.fsums.Fsum-class.html#fadd\npygeodesy.fsums.Fsum.__call__\tpygeodesy.fsums.Fsum-class.html#__call__\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.fsums.Fsum._mul_Fsum\tpygeodesy.fsums.Fsum-class.html#_mul_Fsum\npygeodesy.fsums.Fsum.real\tpygeodesy.fsums.Fsum-class.html#real\npygeodesy.fsums.Fsum.toStr\tpygeodesy.fsums.Fsum-class.html#toStr\npygeodesy.fsums.Fsum.f2product\tpygeodesy.fsums.Fsum-class.html#f2product\npygeodesy.fsums.Fsum.ceil\tpygeodesy.fsums.Fsum-class.html#ceil\npygeodesy.fsums.Fsum.__pow__\tpygeodesy.fsums.Fsum-class.html#__pow__\npygeodesy.fsums.Fsum._1_Over\tpygeodesy.fsums.Fsum-class.html#_1_Over\npygeodesy.fsums.Fsum.Fsum_\tpygeodesy.fsums.Fsum-class.html#Fsum_\npygeodesy.fsums.Fsum.Fsumf_\tpygeodesy.fsums.Fsum-class.html#Fsumf_\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.fsums.Fsum._isfine\tpygeodesy.fsums.Fsum-class.html#_isfine\npygeodesy.fsums.Fsum.int_float\tpygeodesy.fsums.Fsum-class.html#int_float\npygeodesy.fsums.Fsum._pow_2_3\tpygeodesy.fsums.Fsum-class.html#_pow_2_3\npygeodesy.fsums.Fsum.__nonzero__\tpygeodesy.fsums.Fsum-class.html#__nonzero__\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.fsums.Fsum._nfprs2\tpygeodesy.fsums.Fsum-class.html#_nfprs2\npygeodesy.fsums.Fsum.signOf\tpygeodesy.fsums.Fsum-class.html#signOf\npygeodesy.fsums.Fsum.__mod__\tpygeodesy.fsums.Fsum-class.html#__mod__\npygeodesy.fsums.Fsum.fint2\tpygeodesy.fsums.Fsum-class.html#fint2\npygeodesy.fsums.Fsum._mul_scalar\tpygeodesy.fsums.Fsum-class.html#_mul_scalar\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.fsums.Fsum._facc_args\tpygeodesy.fsums.Fsum-class.html#_facc_args\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.fsums.Fsum.__long__\tpygeodesy.fsums.Fsum-class.html#__long__\npygeodesy.fsums.Fsum._pow_0_1\tpygeodesy.fsums.Fsum-class.html#_pow_0_1\npygeodesy.fsums.Fsum.cmp\tpygeodesy.fsums.Fsum-class.html#cmp\npygeodesy.fsums.Fsum.toRepr\tpygeodesy.fsums.Fsum-class.html#toRepr\npygeodesy.fsums.Fsum._RESIDUAL\tpygeodesy.fsums.Fsum-class.html#_RESIDUAL\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.fsums.Fsum._truediv\tpygeodesy.fsums.Fsum-class.html#_truediv\npygeodesy.fsums.Fsum._ps_1sum\tpygeodesy.fsums.Fsum-class.html#_ps_1sum\npygeodesy.fsums.Fsum._pow\tpygeodesy.fsums.Fsum-class.html#_pow\npygeodesy.fsums.Fsum._fset\tpygeodesy.fsums.Fsum-class.html#_fset\npygeodesy.fsums.Fsum.__truediv__\tpygeodesy.fsums.Fsum-class.html#__truediv__\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.fsums.Fsum.__ceil__\tpygeodesy.fsums.Fsum-class.html#__ceil__\npygeodesy.fsums.Fsum.__rmod__\tpygeodesy.fsums.Fsum-class.html#__rmod__\npygeodesy.fsums.Fsum._ps_mul\tpygeodesy.fsums.Fsum-class.html#_ps_mul\npygeodesy.fsums.Fsum._facc_power\tpygeodesy.fsums.Fsum-class.html#_facc_power\npygeodesy.fsums.Fsum.as_integer_ratio\tpygeodesy.fsums.Fsum-class.html#as_integer_ratio\npygeodesy.fsums.Fsum.partials\tpygeodesy.fsums.Fsum-class.html#partials\npygeodesy.fsums.Fsum.is_math_fsum\tpygeodesy.fsums.Fsum-class.html#is_math_fsum\npygeodesy.fsums.Fsum.fsum_\tpygeodesy.fsums.Fsum-class.html#fsum_\npygeodesy.fsums.Fsum.as_iscalar\tpygeodesy.fsums.Fsum-class.html#as_iscalar\npygeodesy.fsums.Fsum.__ne__\tpygeodesy.fsums.Fsum-class.html#__ne__\npygeodesy.fsums.Fsum._pow_int\tpygeodesy.fsums.Fsum-class.html#_pow_int\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.fsums.Fsum.__ifloordiv__\tpygeodesy.fsums.Fsum-class.html#__ifloordiv__\npygeodesy.fsums.Fsum._ErrorXs\tpygeodesy.fsums.Fsum-class.html#_ErrorXs\npygeodesy.fsums.Fsum._fmul\tpygeodesy.fsums.Fsum-class.html#_fmul\npygeodesy.fsums.Fsum.residual\tpygeodesy.fsums.Fsum-class.html#residual\npygeodesy.fsums.Fsum.rdiv\tpygeodesy.fsums.Fsum-class.html#rdiv\npygeodesy.fsums.Fsum._facc_neg\tpygeodesy.fsums.Fsum-class.html#_facc_neg\npygeodesy.fsums.Fsum._f2product\tpygeodesy.fsums.Fsum-class.html#_f2product\npygeodesy.fsums.Fsum._mul_reduce\tpygeodesy.fsums.Fsum-class.html#_mul_reduce\npygeodesy.fsums.Fsum._fprs2\tpygeodesy.fsums.Fsum-class.html#_fprs2\npygeodesy.fsums.Fsum.__divmod__\tpygeodesy.fsums.Fsum-class.html#__divmod__\npygeodesy.fsums.Fsum._ErrorX\tpygeodesy.fsums.Fsum-class.html#_ErrorX\npygeodesy.fsums.Fsum._neg\tpygeodesy.fsums.Fsum-class.html#_neg\npygeodesy.fsums.Fsum.__rmatmul__\tpygeodesy.fsums.Fsum-class.html#__rmatmul__\npygeodesy.fsums.Fsum.fsum2\tpygeodesy.fsums.Fsum-class.html#fsum2\npygeodesy.fsums.Fsum._facc\tpygeodesy.fsums.Fsum-class.html#_facc\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.fsums.Fsum.fcopy\tpygeodesy.fsums.Fsum-class.html#fcopy\npygeodesy.fsums.Fsum.__imul__\tpygeodesy.fsums.Fsum-class.html#__imul__\npygeodesy.fsums.Fsum.__trunc__\tpygeodesy.fsums.Fsum-class.html#__trunc__\npygeodesy.fsums.Fsum.fma_\tpygeodesy.fsums.Fsum-class.html#fma_\npygeodesy.fsums.Fsum.__mul__\tpygeodesy.fsums.Fsum-class.html#__mul__\npygeodesy.fsums.Fsum._fpow\tpygeodesy.fsums.Fsum-class.html#_fpow\npygeodesy.fsums.Fsum.__matmul__\tpygeodesy.fsums.Fsum-class.html#__matmul__\npygeodesy.fsums.Fsum._fsub\tpygeodesy.fsums.Fsum-class.html#_fsub\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.fsums.Fsum.fadd_\tpygeodesy.fsums.Fsum-class.html#fadd_\npygeodesy.fsums.Fsum.fsub\tpygeodesy.fsums.Fsum-class.html#fsub\npygeodesy.fsums.Fsum.fset_\tpygeodesy.fsums.Fsum-class.html#fset_\npygeodesy.fsums.Fsum.pow\tpygeodesy.fsums.Fsum-class.html#pow\npygeodesy.fsums.Fsum.fsum\tpygeodesy.fsums.Fsum-class.html#fsum\npygeodesy.fsums.Fsum.fmul\tpygeodesy.fsums.Fsum-class.html#fmul\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.fsums.Fsum.__rtruediv__\tpygeodesy.fsums.Fsum-class.html#__rtruediv__\npygeodesy.fsums.Fsum.__rsub__\tpygeodesy.fsums.Fsum-class.html#__rsub__\npygeodesy.fsums.Fsum.divmod\tpygeodesy.fsums.Fsum-class.html#divmod\npygeodesy.fsums.Fsum.float_int\tpygeodesy.fsums.Fsum-class.html#float_int\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.fsums.Fsum.is_integer\tpygeodesy.fsums.Fsum-class.html#is_integer\npygeodesy.fsums.Fsum._copyd\tpygeodesy.fsums.Fsum-class.html#_copyd\npygeodesy.fsums.Fsum.__float__\tpygeodesy.fsums.Fsum-class.html#__float__\npygeodesy.fsums.Fsum.__rpow__\tpygeodesy.fsums.Fsum-class.html#__rpow__\npygeodesy.fsums.Fsum._fint2\tpygeodesy.fsums.Fsum-class.html#_fint2\npygeodesy.fsums.Fsum._fma\tpygeodesy.fsums.Fsum-class.html#_fma\npygeodesy.fsums.Fsum.fsum2f_\tpygeodesy.fsums.Fsum-class.html#fsum2f_\npygeodesy.fsums.Fsum._facc_xsum\tpygeodesy.fsums.Fsum-class.html#_facc_xsum\npygeodesy.fsums.Fsum.__abs__\tpygeodesy.fsums.Fsum-class.html#__abs__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.fsums.Fsum._cmp_0\tpygeodesy.fsums.Fsum-class.html#_cmp_0\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.fsums.Fsum.__itruediv__\tpygeodesy.fsums.Fsum-class.html#__itruediv__\npygeodesy.fsums.Fsum.fma\tpygeodesy.fsums.Fsum-class.html#fma\npygeodesy.fsums.Fsum.__isub__\tpygeodesy.fsums.Fsum-class.html#__isub__\npygeodesy.fsums.Fsum.__rdivmod__\tpygeodesy.fsums.Fsum-class.html#__rdivmod__\npygeodesy.fsums.Fsum._Error\tpygeodesy.fsums.Fsum-class.html#_Error\npygeodesy.fsums.Fsum.__invert__\tpygeodesy.fsums.Fsum-class.html#__invert__\npygeodesy.fsums.Fsum.is_math_fma\tpygeodesy.fsums.Fsum-class.html#is_math_fma\npygeodesy.fsums.Fsum.fpow\tpygeodesy.fsums.Fsum-class.html#fpow\npygeodesy.fsums.Fsum._facc_scalar\tpygeodesy.fsums.Fsum-class.html#_facc_scalar\npygeodesy.fsums.Fsum.imag\tpygeodesy.fsums.Fsum-class.html#imag\npygeodesy.fsums.Fsum._ps_neg\tpygeodesy.fsums.Fsum-class.html#_ps_neg\npygeodesy.fsums.Fsum._nonfiniteX\tpygeodesy.fsums.Fsum-class.html#_nonfiniteX\npygeodesy.fsums.Fsum.__iter__\tpygeodesy.fsums.Fsum-class.html#__iter__\npygeodesy.fsums.Fsum.Fsum2Tuple_\tpygeodesy.fsums.Fsum-class.html#Fsum2Tuple_\npygeodesy.fsums.Fsum._ftruediv\tpygeodesy.fsums.Fsum-class.html#_ftruediv\npygeodesy.fsums.Fsum.fsub_\tpygeodesy.fsums.Fsum-class.html#fsub_\npygeodesy.fsums.Fsum.copy\tpygeodesy.fsums.Fsum-class.html#copy\npygeodesy.fsums.Fsum.__eq__\tpygeodesy.fsums.Fsum-class.html#__eq__\npygeodesy.fsums.Fsum._facc_scalar_\tpygeodesy.fsums.Fsum-class.html#_facc_scalar_\npygeodesy.named._Named.__repr__\tpygeodesy.named._Named-class.html#__repr__\npygeodesy.fsums.Fsum.__round__\tpygeodesy.fsums.Fsum-class.html#__round__\npygeodesy.fsums.Fsum._fhorner\tpygeodesy.fsums.Fsum-class.html#_fhorner\npygeodesy.fsums.Fsum.__ipow__\tpygeodesy.fsums.Fsum-class.html#__ipow__\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.fsums.Fsum.__iadd__\tpygeodesy.fsums.Fsum-class.html#__iadd__\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.fsums.Fsum.fdiv\tpygeodesy.fsums.Fsum-class.html#fdiv\npygeodesy.fsums.Fsum.__len__\tpygeodesy.fsums.Fsum-class.html#__len__\npygeodesy.fsums.Fsum.__floordiv__\tpygeodesy.fsums.Fsum-class.html#__floordiv__\npygeodesy.fsums.Fsum.__hash__\tpygeodesy.fsums.Fsum-class.html#__hash__\npygeodesy.fsums.Fsum.__sub__\tpygeodesy.fsums.Fsum-class.html#__sub__\npygeodesy.fsums.Fsum.root\tpygeodesy.fsums.Fsum-class.html#root\npygeodesy.fsums.Fsum.__ge__\tpygeodesy.fsums.Fsum-class.html#__ge__\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.fsums.Fsum._update\tpygeodesy.fsums.Fsum-class.html#_update\npygeodesy.fsums.Fsum.fdivmod\tpygeodesy.fsums.Fsum-class.html#fdivmod\npygeodesy.fsums.Fsum._fdivmod2\tpygeodesy.fsums.Fsum-class.html#_fdivmod2\npygeodesy.fsums.Fsum._finite\tpygeodesy.fsums.Fsum-class.html#_finite\npygeodesy.fsums.Fsum.__radd__\tpygeodesy.fsums.Fsum-class.html#__radd__\npygeodesy.fsums.Fsum.__floor__\tpygeodesy.fsums.Fsum-class.html#__floor__\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.fmath.Fpowers.__init__\tpygeodesy.fmath.Fpowers-class.html#__init__\npygeodesy.fsums.Fsum._f2mul\tpygeodesy.fsums.Fsum-class.html#_f2mul\npygeodesy.fsums.Fsum.__imod__\tpygeodesy.fsums.Fsum-class.html#__imod__\npygeodesy.fsums.Fsum._fprs\tpygeodesy.fsums.Fsum-class.html#_fprs\npygeodesy.fsums.Fsum.floor\tpygeodesy.fsums.Fsum-class.html#floor\npygeodesy.fsums.Fsum._optionals\tpygeodesy.fsums.Fsum-class.html#_optionals\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.fsums.Fsum._fadd\tpygeodesy.fsums.Fsum-class.html#_fadd\npygeodesy.fsums.Fsum.__pos__\tpygeodesy.fsums.Fsum-class.html#__pos__\npygeodesy.fsums.Fsum._raiser\tpygeodesy.fsums.Fsum-class.html#_raiser\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.fsums.Fsum.f2mul\tpygeodesy.fsums.Fsum-class.html#f2mul\npygeodesy.fsums.Fsum._scalar\tpygeodesy.fsums.Fsum-class.html#_scalar\npygeodesy.fsums.Fsum.is_exact\tpygeodesy.fsums.Fsum-class.html#is_exact\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.fsums.Fsum.fsumf_\tpygeodesy.fsums.Fsum-class.html#fsumf_\npygeodesy.fsums.Fsum.__idiv__\tpygeodesy.fsums.Fsum-class.html#__idiv__\npygeodesy.fsums.Fsum.is_finite\tpygeodesy.fsums.Fsum-class.html#is_finite\npygeodesy.fsums.Fsum.RESIDUAL\tpygeodesy.fsums.Fsum-class.html#RESIDUAL\npygeodesy.fsums.Fsum._pow_Fsum\tpygeodesy.fsums.Fsum-class.html#_pow_Fsum\npygeodesy.fsums.Fsum.__add__\tpygeodesy.fsums.Fsum-class.html#__add__\npygeodesy.fsums.Fsum.nonfinitesOK\tpygeodesy.fsums.Fsum-class.html#nonfinitesOK\npygeodesy.fsums.Fsum._ps_other\tpygeodesy.fsums.Fsum-class.html#_ps_other\npygeodesy.fsums.Fsum._rcopyd\tpygeodesy.fsums.Fsum-class.html#_rcopyd\npygeodesy.fsums.Fsum.nonfinites\tpygeodesy.fsums.Fsum-class.html#nonfinites\npygeodesy.fsums.Fsum._pow_scalar\tpygeodesy.fsums.Fsum-class.html#_pow_scalar\npygeodesy.fsums.Fsum._ResidualError\tpygeodesy.fsums.Fsum-class.html#_ResidualError\npygeodesy.fsums.Fsum._Fsum\tpygeodesy.fsums.Fsum-class.html#_Fsum\npygeodesy.fsums.Fsum._fsum2\tpygeodesy.fsums.Fsum-class.html#_fsum2\npygeodesy.fsums.Fsum._floordiv\tpygeodesy.fsums.Fsum-class.html#_floordiv\npygeodesy.fsums.Fsum.__div__\tpygeodesy.fsums.Fsum-class.html#__div__\npygeodesy.fsums.Fsum.__neg__\tpygeodesy.fsums.Fsum-class.html#__neg__\npygeodesy.fsums.Fsum.f2mul_\tpygeodesy.fsums.Fsum-class.html#f2mul_\npygeodesy.fsums.Fsum.__le__\tpygeodesy.fsums.Fsum-class.html#__le__\npygeodesy.fmath.Froot\tpygeodesy.fmath.Froot-class.html\npygeodesy.fsums.Fsum.__int__\tpygeodesy.fsums.Fsum-class.html#__int__\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.fsums.Fsum._facc_dot\tpygeodesy.fsums.Fsum-class.html#_facc_dot\npygeodesy.fsums.Fsum.fsum2_\tpygeodesy.fsums.Fsum-class.html#fsum2_\npygeodesy.fsums.Fsum.__str__\tpygeodesy.fsums.Fsum-class.html#__str__\npygeodesy.fsums.Fsum.__gt__\tpygeodesy.fsums.Fsum-class.html#__gt__\npygeodesy.fsums.Fsum.fint\tpygeodesy.fsums.Fsum-class.html#fint\npygeodesy.fsums.Fsum.__imatmul__\tpygeodesy.fsums.Fsum-class.html#__imatmul__\npygeodesy.fsums.Fsum.__bool__\tpygeodesy.fsums.Fsum-class.html#__bool__\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.fsums.Fsum.__rdiv__\tpygeodesy.fsums.Fsum-class.html#__rdiv__\npygeodesy.fsums.Fsum.__rmul__\tpygeodesy.fsums.Fsum-class.html#__rmul__\npygeodesy.fsums.Fsum.__lt__\tpygeodesy.fsums.Fsum-class.html#__lt__\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.fsums.Fsum._Fsum_as\tpygeodesy.fsums.Fsum-class.html#_Fsum_as\npygeodesy.fsums.Fsum.fover\tpygeodesy.fsums.Fsum-class.html#fover\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.fsums.Fsum.__cmp__\tpygeodesy.fsums.Fsum-class.html#__cmp__\npygeodesy.fsums.Fsum._n\tpygeodesy.fsums.Fsum-class.html#_n\npygeodesy.fsums.Fsum.__rfloordiv__\tpygeodesy.fsums.Fsum-class.html#__rfloordiv__\npygeodesy.fsums.Fsum._ps_acc\tpygeodesy.fsums.Fsum-class.html#_ps_acc\npygeodesy.fsums.Fsum.is_scalar\tpygeodesy.fsums.Fsum-class.html#is_scalar\npygeodesy.fsums.Fsum.fadd\tpygeodesy.fsums.Fsum-class.html#fadd\npygeodesy.fsums.Fsum.__call__\tpygeodesy.fsums.Fsum-class.html#__call__\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.fsums.Fsum._mul_Fsum\tpygeodesy.fsums.Fsum-class.html#_mul_Fsum\npygeodesy.fsums.Fsum.real\tpygeodesy.fsums.Fsum-class.html#real\npygeodesy.fsums.Fsum.toStr\tpygeodesy.fsums.Fsum-class.html#toStr\npygeodesy.fsums.Fsum.f2product\tpygeodesy.fsums.Fsum-class.html#f2product\npygeodesy.fsums.Fsum.ceil\tpygeodesy.fsums.Fsum-class.html#ceil\npygeodesy.fsums.Fsum.__pow__\tpygeodesy.fsums.Fsum-class.html#__pow__\npygeodesy.fsums.Fsum._1_Over\tpygeodesy.fsums.Fsum-class.html#_1_Over\npygeodesy.fsums.Fsum.Fsum_\tpygeodesy.fsums.Fsum-class.html#Fsum_\npygeodesy.fsums.Fsum.Fsumf_\tpygeodesy.fsums.Fsum-class.html#Fsumf_\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.fsums.Fsum._isfine\tpygeodesy.fsums.Fsum-class.html#_isfine\npygeodesy.fsums.Fsum.int_float\tpygeodesy.fsums.Fsum-class.html#int_float\npygeodesy.fsums.Fsum._pow_2_3\tpygeodesy.fsums.Fsum-class.html#_pow_2_3\npygeodesy.fsums.Fsum.__nonzero__\tpygeodesy.fsums.Fsum-class.html#__nonzero__\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.fsums.Fsum._nfprs2\tpygeodesy.fsums.Fsum-class.html#_nfprs2\npygeodesy.fsums.Fsum.signOf\tpygeodesy.fsums.Fsum-class.html#signOf\npygeodesy.fsums.Fsum.__mod__\tpygeodesy.fsums.Fsum-class.html#__mod__\npygeodesy.fsums.Fsum.fint2\tpygeodesy.fsums.Fsum-class.html#fint2\npygeodesy.fsums.Fsum._mul_scalar\tpygeodesy.fsums.Fsum-class.html#_mul_scalar\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.fsums.Fsum._facc_args\tpygeodesy.fsums.Fsum-class.html#_facc_args\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.fsums.Fsum.__long__\tpygeodesy.fsums.Fsum-class.html#__long__\npygeodesy.fsums.Fsum._pow_0_1\tpygeodesy.fsums.Fsum-class.html#_pow_0_1\npygeodesy.fsums.Fsum.cmp\tpygeodesy.fsums.Fsum-class.html#cmp\npygeodesy.fsums.Fsum.toRepr\tpygeodesy.fsums.Fsum-class.html#toRepr\npygeodesy.fsums.Fsum._RESIDUAL\tpygeodesy.fsums.Fsum-class.html#_RESIDUAL\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.fsums.Fsum._truediv\tpygeodesy.fsums.Fsum-class.html#_truediv\npygeodesy.fsums.Fsum._ps_1sum\tpygeodesy.fsums.Fsum-class.html#_ps_1sum\npygeodesy.fsums.Fsum._pow\tpygeodesy.fsums.Fsum-class.html#_pow\npygeodesy.fsums.Fsum._fset\tpygeodesy.fsums.Fsum-class.html#_fset\npygeodesy.fsums.Fsum.__truediv__\tpygeodesy.fsums.Fsum-class.html#__truediv__\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.fsums.Fsum.__ceil__\tpygeodesy.fsums.Fsum-class.html#__ceil__\npygeodesy.fsums.Fsum.__rmod__\tpygeodesy.fsums.Fsum-class.html#__rmod__\npygeodesy.fsums.Fsum._ps_mul\tpygeodesy.fsums.Fsum-class.html#_ps_mul\npygeodesy.fsums.Fsum._facc_power\tpygeodesy.fsums.Fsum-class.html#_facc_power\npygeodesy.fsums.Fsum.as_integer_ratio\tpygeodesy.fsums.Fsum-class.html#as_integer_ratio\npygeodesy.fsums.Fsum.partials\tpygeodesy.fsums.Fsum-class.html#partials\npygeodesy.fsums.Fsum.is_math_fsum\tpygeodesy.fsums.Fsum-class.html#is_math_fsum\npygeodesy.fsums.Fsum.fsum_\tpygeodesy.fsums.Fsum-class.html#fsum_\npygeodesy.fsums.Fsum.as_iscalar\tpygeodesy.fsums.Fsum-class.html#as_iscalar\npygeodesy.fsums.Fsum.__ne__\tpygeodesy.fsums.Fsum-class.html#__ne__\npygeodesy.fsums.Fsum._pow_int\tpygeodesy.fsums.Fsum-class.html#_pow_int\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.fsums.Fsum.__ifloordiv__\tpygeodesy.fsums.Fsum-class.html#__ifloordiv__\npygeodesy.fsums.Fsum._ErrorXs\tpygeodesy.fsums.Fsum-class.html#_ErrorXs\npygeodesy.fsums.Fsum._fmul\tpygeodesy.fsums.Fsum-class.html#_fmul\npygeodesy.fsums.Fsum.residual\tpygeodesy.fsums.Fsum-class.html#residual\npygeodesy.fsums.Fsum.rdiv\tpygeodesy.fsums.Fsum-class.html#rdiv\npygeodesy.fsums.Fsum._facc_neg\tpygeodesy.fsums.Fsum-class.html#_facc_neg\npygeodesy.fsums.Fsum._f2product\tpygeodesy.fsums.Fsum-class.html#_f2product\npygeodesy.fsums.Fsum._mul_reduce\tpygeodesy.fsums.Fsum-class.html#_mul_reduce\npygeodesy.fsums.Fsum._fprs2\tpygeodesy.fsums.Fsum-class.html#_fprs2\npygeodesy.fsums.Fsum.__divmod__\tpygeodesy.fsums.Fsum-class.html#__divmod__\npygeodesy.fsums.Fsum._ErrorX\tpygeodesy.fsums.Fsum-class.html#_ErrorX\npygeodesy.fsums.Fsum._neg\tpygeodesy.fsums.Fsum-class.html#_neg\npygeodesy.fsums.Fsum.__rmatmul__\tpygeodesy.fsums.Fsum-class.html#__rmatmul__\npygeodesy.fsums.Fsum.fsum2\tpygeodesy.fsums.Fsum-class.html#fsum2\npygeodesy.fsums.Fsum._facc\tpygeodesy.fsums.Fsum-class.html#_facc\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.fsums.Fsum.fcopy\tpygeodesy.fsums.Fsum-class.html#fcopy\npygeodesy.fsums.Fsum.__imul__\tpygeodesy.fsums.Fsum-class.html#__imul__\npygeodesy.fsums.Fsum.__trunc__\tpygeodesy.fsums.Fsum-class.html#__trunc__\npygeodesy.fsums.Fsum.fma_\tpygeodesy.fsums.Fsum-class.html#fma_\npygeodesy.fsums.Fsum.__mul__\tpygeodesy.fsums.Fsum-class.html#__mul__\npygeodesy.fsums.Fsum._fpow\tpygeodesy.fsums.Fsum-class.html#_fpow\npygeodesy.fsums.Fsum.__matmul__\tpygeodesy.fsums.Fsum-class.html#__matmul__\npygeodesy.fsums.Fsum._fsub\tpygeodesy.fsums.Fsum-class.html#_fsub\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.fsums.Fsum.fadd_\tpygeodesy.fsums.Fsum-class.html#fadd_\npygeodesy.fsums.Fsum.fsub\tpygeodesy.fsums.Fsum-class.html#fsub\npygeodesy.fsums.Fsum.fset_\tpygeodesy.fsums.Fsum-class.html#fset_\npygeodesy.fsums.Fsum.pow\tpygeodesy.fsums.Fsum-class.html#pow\npygeodesy.fsums.Fsum.fsum\tpygeodesy.fsums.Fsum-class.html#fsum\npygeodesy.fsums.Fsum.fmul\tpygeodesy.fsums.Fsum-class.html#fmul\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.fsums.Fsum.__rtruediv__\tpygeodesy.fsums.Fsum-class.html#__rtruediv__\npygeodesy.fsums.Fsum.__rsub__\tpygeodesy.fsums.Fsum-class.html#__rsub__\npygeodesy.fsums.Fsum.divmod\tpygeodesy.fsums.Fsum-class.html#divmod\npygeodesy.fsums.Fsum.float_int\tpygeodesy.fsums.Fsum-class.html#float_int\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.fsums.Fsum.is_integer\tpygeodesy.fsums.Fsum-class.html#is_integer\npygeodesy.fsums.Fsum._copyd\tpygeodesy.fsums.Fsum-class.html#_copyd\npygeodesy.fsums.Fsum.__float__\tpygeodesy.fsums.Fsum-class.html#__float__\npygeodesy.fsums.Fsum.__rpow__\tpygeodesy.fsums.Fsum-class.html#__rpow__\npygeodesy.fsums.Fsum._fint2\tpygeodesy.fsums.Fsum-class.html#_fint2\npygeodesy.fsums.Fsum._fma\tpygeodesy.fsums.Fsum-class.html#_fma\npygeodesy.fsums.Fsum.fsum2f_\tpygeodesy.fsums.Fsum-class.html#fsum2f_\npygeodesy.fsums.Fsum._facc_xsum\tpygeodesy.fsums.Fsum-class.html#_facc_xsum\npygeodesy.fsums.Fsum.__abs__\tpygeodesy.fsums.Fsum-class.html#__abs__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.fsums.Fsum._cmp_0\tpygeodesy.fsums.Fsum-class.html#_cmp_0\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.fsums.Fsum.__itruediv__\tpygeodesy.fsums.Fsum-class.html#__itruediv__\npygeodesy.fsums.Fsum.fma\tpygeodesy.fsums.Fsum-class.html#fma\npygeodesy.fsums.Fsum.__isub__\tpygeodesy.fsums.Fsum-class.html#__isub__\npygeodesy.fsums.Fsum.__rdivmod__\tpygeodesy.fsums.Fsum-class.html#__rdivmod__\npygeodesy.fsums.Fsum._Error\tpygeodesy.fsums.Fsum-class.html#_Error\npygeodesy.fsums.Fsum.__invert__\tpygeodesy.fsums.Fsum-class.html#__invert__\npygeodesy.fsums.Fsum.is_math_fma\tpygeodesy.fsums.Fsum-class.html#is_math_fma\npygeodesy.fsums.Fsum.fpow\tpygeodesy.fsums.Fsum-class.html#fpow\npygeodesy.fsums.Fsum._facc_scalar\tpygeodesy.fsums.Fsum-class.html#_facc_scalar\npygeodesy.fsums.Fsum.imag\tpygeodesy.fsums.Fsum-class.html#imag\npygeodesy.fsums.Fsum._ps_neg\tpygeodesy.fsums.Fsum-class.html#_ps_neg\npygeodesy.fsums.Fsum._nonfiniteX\tpygeodesy.fsums.Fsum-class.html#_nonfiniteX\npygeodesy.fsums.Fsum.__iter__\tpygeodesy.fsums.Fsum-class.html#__iter__\npygeodesy.fsums.Fsum.Fsum2Tuple_\tpygeodesy.fsums.Fsum-class.html#Fsum2Tuple_\npygeodesy.fsums.Fsum._ftruediv\tpygeodesy.fsums.Fsum-class.html#_ftruediv\npygeodesy.fsums.Fsum.fsub_\tpygeodesy.fsums.Fsum-class.html#fsub_\npygeodesy.fsums.Fsum.copy\tpygeodesy.fsums.Fsum-class.html#copy\npygeodesy.fsums.Fsum.__eq__\tpygeodesy.fsums.Fsum-class.html#__eq__\npygeodesy.fsums.Fsum._facc_scalar_\tpygeodesy.fsums.Fsum-class.html#_facc_scalar_\npygeodesy.named._Named.__repr__\tpygeodesy.named._Named-class.html#__repr__\npygeodesy.fsums.Fsum.__round__\tpygeodesy.fsums.Fsum-class.html#__round__\npygeodesy.fsums.Fsum._fhorner\tpygeodesy.fsums.Fsum-class.html#_fhorner\npygeodesy.fsums.Fsum.__ipow__\tpygeodesy.fsums.Fsum-class.html#__ipow__\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.fsums.Fsum.__iadd__\tpygeodesy.fsums.Fsum-class.html#__iadd__\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.fsums.Fsum.fdiv\tpygeodesy.fsums.Fsum-class.html#fdiv\npygeodesy.fsums.Fsum.__len__\tpygeodesy.fsums.Fsum-class.html#__len__\npygeodesy.fsums.Fsum.__floordiv__\tpygeodesy.fsums.Fsum-class.html#__floordiv__\npygeodesy.fsums.Fsum.__hash__\tpygeodesy.fsums.Fsum-class.html#__hash__\npygeodesy.fsums.Fsum.__sub__\tpygeodesy.fsums.Fsum-class.html#__sub__\npygeodesy.fsums.Fsum.root\tpygeodesy.fsums.Fsum-class.html#root\npygeodesy.fsums.Fsum.__ge__\tpygeodesy.fsums.Fsum-class.html#__ge__\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.fsums.Fsum._update\tpygeodesy.fsums.Fsum-class.html#_update\npygeodesy.fsums.Fsum.fdivmod\tpygeodesy.fsums.Fsum-class.html#fdivmod\npygeodesy.fsums.Fsum._fdivmod2\tpygeodesy.fsums.Fsum-class.html#_fdivmod2\npygeodesy.fsums.Fsum._finite\tpygeodesy.fsums.Fsum-class.html#_finite\npygeodesy.fsums.Fsum.__radd__\tpygeodesy.fsums.Fsum-class.html#__radd__\npygeodesy.fsums.Fsum.__floor__\tpygeodesy.fsums.Fsum-class.html#__floor__\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.fmath.Froot.__init__\tpygeodesy.fmath.Froot-class.html#__init__\npygeodesy.fsums.Fsum._f2mul\tpygeodesy.fsums.Fsum-class.html#_f2mul\npygeodesy.fsums.Fsum.__imod__\tpygeodesy.fsums.Fsum-class.html#__imod__\npygeodesy.fsums.Fsum._fprs\tpygeodesy.fsums.Fsum-class.html#_fprs\npygeodesy.fsums.Fsum.floor\tpygeodesy.fsums.Fsum-class.html#floor\npygeodesy.fsums.Fsum._optionals\tpygeodesy.fsums.Fsum-class.html#_optionals\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.fsums.Fsum._fadd\tpygeodesy.fsums.Fsum-class.html#_fadd\npygeodesy.fsums.Fsum.__pos__\tpygeodesy.fsums.Fsum-class.html#__pos__\npygeodesy.fsums.Fsum._raiser\tpygeodesy.fsums.Fsum-class.html#_raiser\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.fsums.Fsum.f2mul\tpygeodesy.fsums.Fsum-class.html#f2mul\npygeodesy.fsums.Fsum._scalar\tpygeodesy.fsums.Fsum-class.html#_scalar\npygeodesy.fsums.Fsum.is_exact\tpygeodesy.fsums.Fsum-class.html#is_exact\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.fsums.Fsum.fsumf_\tpygeodesy.fsums.Fsum-class.html#fsumf_\npygeodesy.fsums.Fsum.__idiv__\tpygeodesy.fsums.Fsum-class.html#__idiv__\npygeodesy.fsums.Fsum.is_finite\tpygeodesy.fsums.Fsum-class.html#is_finite\npygeodesy.fsums.Fsum.RESIDUAL\tpygeodesy.fsums.Fsum-class.html#RESIDUAL\npygeodesy.fsums.Fsum._pow_Fsum\tpygeodesy.fsums.Fsum-class.html#_pow_Fsum\npygeodesy.fsums.Fsum.__add__\tpygeodesy.fsums.Fsum-class.html#__add__\npygeodesy.fsums.Fsum.nonfinitesOK\tpygeodesy.fsums.Fsum-class.html#nonfinitesOK\npygeodesy.fsums.Fsum._ps_other\tpygeodesy.fsums.Fsum-class.html#_ps_other\npygeodesy.fsums.Fsum._rcopyd\tpygeodesy.fsums.Fsum-class.html#_rcopyd\npygeodesy.fsums.Fsum.nonfinites\tpygeodesy.fsums.Fsum-class.html#nonfinites\npygeodesy.fsums.Fsum._pow_scalar\tpygeodesy.fsums.Fsum-class.html#_pow_scalar\npygeodesy.fsums.Fsum._ResidualError\tpygeodesy.fsums.Fsum-class.html#_ResidualError\npygeodesy.fsums.Fsum._Fsum\tpygeodesy.fsums.Fsum-class.html#_Fsum\npygeodesy.fsums.Fsum._fsum2\tpygeodesy.fsums.Fsum-class.html#_fsum2\npygeodesy.fsums.Fsum._floordiv\tpygeodesy.fsums.Fsum-class.html#_floordiv\npygeodesy.fsums.Fsum.__div__\tpygeodesy.fsums.Fsum-class.html#__div__\npygeodesy.fsums.Fsum.__neg__\tpygeodesy.fsums.Fsum-class.html#__neg__\npygeodesy.fsums.Fsum.f2mul_\tpygeodesy.fsums.Fsum-class.html#f2mul_\npygeodesy.fsums.Fsum.__le__\tpygeodesy.fsums.Fsum-class.html#__le__\npygeodesy.fmath.Fsqrt\tpygeodesy.fmath.Fsqrt-class.html\npygeodesy.fsums.Fsum.__int__\tpygeodesy.fsums.Fsum-class.html#__int__\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.fsums.Fsum._facc_dot\tpygeodesy.fsums.Fsum-class.html#_facc_dot\npygeodesy.fsums.Fsum.fsum2_\tpygeodesy.fsums.Fsum-class.html#fsum2_\npygeodesy.fsums.Fsum.__str__\tpygeodesy.fsums.Fsum-class.html#__str__\npygeodesy.fsums.Fsum.__gt__\tpygeodesy.fsums.Fsum-class.html#__gt__\npygeodesy.fsums.Fsum.fint\tpygeodesy.fsums.Fsum-class.html#fint\npygeodesy.fsums.Fsum.__imatmul__\tpygeodesy.fsums.Fsum-class.html#__imatmul__\npygeodesy.fsums.Fsum.__bool__\tpygeodesy.fsums.Fsum-class.html#__bool__\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.fsums.Fsum.__rdiv__\tpygeodesy.fsums.Fsum-class.html#__rdiv__\npygeodesy.fsums.Fsum.__rmul__\tpygeodesy.fsums.Fsum-class.html#__rmul__\npygeodesy.fsums.Fsum.__lt__\tpygeodesy.fsums.Fsum-class.html#__lt__\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.fsums.Fsum._Fsum_as\tpygeodesy.fsums.Fsum-class.html#_Fsum_as\npygeodesy.fsums.Fsum.fover\tpygeodesy.fsums.Fsum-class.html#fover\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.fsums.Fsum.__cmp__\tpygeodesy.fsums.Fsum-class.html#__cmp__\npygeodesy.fsums.Fsum._n\tpygeodesy.fsums.Fsum-class.html#_n\npygeodesy.fsums.Fsum.__rfloordiv__\tpygeodesy.fsums.Fsum-class.html#__rfloordiv__\npygeodesy.fsums.Fsum._ps_acc\tpygeodesy.fsums.Fsum-class.html#_ps_acc\npygeodesy.fsums.Fsum.is_scalar\tpygeodesy.fsums.Fsum-class.html#is_scalar\npygeodesy.fsums.Fsum.fadd\tpygeodesy.fsums.Fsum-class.html#fadd\npygeodesy.fsums.Fsum.__call__\tpygeodesy.fsums.Fsum-class.html#__call__\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.fsums.Fsum._mul_Fsum\tpygeodesy.fsums.Fsum-class.html#_mul_Fsum\npygeodesy.fsums.Fsum.real\tpygeodesy.fsums.Fsum-class.html#real\npygeodesy.fsums.Fsum.toStr\tpygeodesy.fsums.Fsum-class.html#toStr\npygeodesy.fsums.Fsum.f2product\tpygeodesy.fsums.Fsum-class.html#f2product\npygeodesy.fsums.Fsum.ceil\tpygeodesy.fsums.Fsum-class.html#ceil\npygeodesy.fsums.Fsum.__pow__\tpygeodesy.fsums.Fsum-class.html#__pow__\npygeodesy.fsums.Fsum._1_Over\tpygeodesy.fsums.Fsum-class.html#_1_Over\npygeodesy.fsums.Fsum.Fsum_\tpygeodesy.fsums.Fsum-class.html#Fsum_\npygeodesy.fsums.Fsum.Fsumf_\tpygeodesy.fsums.Fsum-class.html#Fsumf_\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.fsums.Fsum._isfine\tpygeodesy.fsums.Fsum-class.html#_isfine\npygeodesy.fsums.Fsum.int_float\tpygeodesy.fsums.Fsum-class.html#int_float\npygeodesy.fsums.Fsum._pow_2_3\tpygeodesy.fsums.Fsum-class.html#_pow_2_3\npygeodesy.fsums.Fsum.__nonzero__\tpygeodesy.fsums.Fsum-class.html#__nonzero__\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.fsums.Fsum._nfprs2\tpygeodesy.fsums.Fsum-class.html#_nfprs2\npygeodesy.fsums.Fsum.signOf\tpygeodesy.fsums.Fsum-class.html#signOf\npygeodesy.fsums.Fsum.__mod__\tpygeodesy.fsums.Fsum-class.html#__mod__\npygeodesy.fsums.Fsum.fint2\tpygeodesy.fsums.Fsum-class.html#fint2\npygeodesy.fsums.Fsum._mul_scalar\tpygeodesy.fsums.Fsum-class.html#_mul_scalar\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.fsums.Fsum._facc_args\tpygeodesy.fsums.Fsum-class.html#_facc_args\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.fsums.Fsum.__long__\tpygeodesy.fsums.Fsum-class.html#__long__\npygeodesy.fsums.Fsum._pow_0_1\tpygeodesy.fsums.Fsum-class.html#_pow_0_1\npygeodesy.fsums.Fsum.cmp\tpygeodesy.fsums.Fsum-class.html#cmp\npygeodesy.fsums.Fsum.toRepr\tpygeodesy.fsums.Fsum-class.html#toRepr\npygeodesy.fsums.Fsum._RESIDUAL\tpygeodesy.fsums.Fsum-class.html#_RESIDUAL\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.fsums.Fsum._truediv\tpygeodesy.fsums.Fsum-class.html#_truediv\npygeodesy.fsums.Fsum._ps_1sum\tpygeodesy.fsums.Fsum-class.html#_ps_1sum\npygeodesy.fsums.Fsum._pow\tpygeodesy.fsums.Fsum-class.html#_pow\npygeodesy.fsums.Fsum._fset\tpygeodesy.fsums.Fsum-class.html#_fset\npygeodesy.fsums.Fsum.__truediv__\tpygeodesy.fsums.Fsum-class.html#__truediv__\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.fsums.Fsum.__ceil__\tpygeodesy.fsums.Fsum-class.html#__ceil__\npygeodesy.fsums.Fsum.__rmod__\tpygeodesy.fsums.Fsum-class.html#__rmod__\npygeodesy.fsums.Fsum._ps_mul\tpygeodesy.fsums.Fsum-class.html#_ps_mul\npygeodesy.fsums.Fsum._facc_power\tpygeodesy.fsums.Fsum-class.html#_facc_power\npygeodesy.fsums.Fsum.as_integer_ratio\tpygeodesy.fsums.Fsum-class.html#as_integer_ratio\npygeodesy.fsums.Fsum.partials\tpygeodesy.fsums.Fsum-class.html#partials\npygeodesy.fsums.Fsum.is_math_fsum\tpygeodesy.fsums.Fsum-class.html#is_math_fsum\npygeodesy.fsums.Fsum.fsum_\tpygeodesy.fsums.Fsum-class.html#fsum_\npygeodesy.fsums.Fsum.as_iscalar\tpygeodesy.fsums.Fsum-class.html#as_iscalar\npygeodesy.fsums.Fsum.__ne__\tpygeodesy.fsums.Fsum-class.html#__ne__\npygeodesy.fsums.Fsum._pow_int\tpygeodesy.fsums.Fsum-class.html#_pow_int\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.fsums.Fsum.__ifloordiv__\tpygeodesy.fsums.Fsum-class.html#__ifloordiv__\npygeodesy.fsums.Fsum._ErrorXs\tpygeodesy.fsums.Fsum-class.html#_ErrorXs\npygeodesy.fsums.Fsum._fmul\tpygeodesy.fsums.Fsum-class.html#_fmul\npygeodesy.fsums.Fsum.residual\tpygeodesy.fsums.Fsum-class.html#residual\npygeodesy.fsums.Fsum.rdiv\tpygeodesy.fsums.Fsum-class.html#rdiv\npygeodesy.fsums.Fsum._facc_neg\tpygeodesy.fsums.Fsum-class.html#_facc_neg\npygeodesy.fsums.Fsum._f2product\tpygeodesy.fsums.Fsum-class.html#_f2product\npygeodesy.fsums.Fsum._mul_reduce\tpygeodesy.fsums.Fsum-class.html#_mul_reduce\npygeodesy.fsums.Fsum._fprs2\tpygeodesy.fsums.Fsum-class.html#_fprs2\npygeodesy.fsums.Fsum.__divmod__\tpygeodesy.fsums.Fsum-class.html#__divmod__\npygeodesy.fsums.Fsum._ErrorX\tpygeodesy.fsums.Fsum-class.html#_ErrorX\npygeodesy.fsums.Fsum._neg\tpygeodesy.fsums.Fsum-class.html#_neg\npygeodesy.fsums.Fsum.__rmatmul__\tpygeodesy.fsums.Fsum-class.html#__rmatmul__\npygeodesy.fsums.Fsum.fsum2\tpygeodesy.fsums.Fsum-class.html#fsum2\npygeodesy.fsums.Fsum._facc\tpygeodesy.fsums.Fsum-class.html#_facc\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.fsums.Fsum.fcopy\tpygeodesy.fsums.Fsum-class.html#fcopy\npygeodesy.fsums.Fsum.__imul__\tpygeodesy.fsums.Fsum-class.html#__imul__\npygeodesy.fsums.Fsum.__trunc__\tpygeodesy.fsums.Fsum-class.html#__trunc__\npygeodesy.fsums.Fsum.fma_\tpygeodesy.fsums.Fsum-class.html#fma_\npygeodesy.fsums.Fsum.__mul__\tpygeodesy.fsums.Fsum-class.html#__mul__\npygeodesy.fsums.Fsum._fpow\tpygeodesy.fsums.Fsum-class.html#_fpow\npygeodesy.fsums.Fsum.__matmul__\tpygeodesy.fsums.Fsum-class.html#__matmul__\npygeodesy.fsums.Fsum._fsub\tpygeodesy.fsums.Fsum-class.html#_fsub\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.fsums.Fsum.fadd_\tpygeodesy.fsums.Fsum-class.html#fadd_\npygeodesy.fsums.Fsum.fsub\tpygeodesy.fsums.Fsum-class.html#fsub\npygeodesy.fsums.Fsum.fset_\tpygeodesy.fsums.Fsum-class.html#fset_\npygeodesy.fsums.Fsum.pow\tpygeodesy.fsums.Fsum-class.html#pow\npygeodesy.fsums.Fsum.fsum\tpygeodesy.fsums.Fsum-class.html#fsum\npygeodesy.fsums.Fsum.fmul\tpygeodesy.fsums.Fsum-class.html#fmul\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.fsums.Fsum.__rtruediv__\tpygeodesy.fsums.Fsum-class.html#__rtruediv__\npygeodesy.fsums.Fsum.__rsub__\tpygeodesy.fsums.Fsum-class.html#__rsub__\npygeodesy.fsums.Fsum.divmod\tpygeodesy.fsums.Fsum-class.html#divmod\npygeodesy.fsums.Fsum.float_int\tpygeodesy.fsums.Fsum-class.html#float_int\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.fsums.Fsum.is_integer\tpygeodesy.fsums.Fsum-class.html#is_integer\npygeodesy.fsums.Fsum._copyd\tpygeodesy.fsums.Fsum-class.html#_copyd\npygeodesy.fsums.Fsum.__float__\tpygeodesy.fsums.Fsum-class.html#__float__\npygeodesy.fsums.Fsum.__rpow__\tpygeodesy.fsums.Fsum-class.html#__rpow__\npygeodesy.fsums.Fsum._fint2\tpygeodesy.fsums.Fsum-class.html#_fint2\npygeodesy.fsums.Fsum._fma\tpygeodesy.fsums.Fsum-class.html#_fma\npygeodesy.fsums.Fsum.fsum2f_\tpygeodesy.fsums.Fsum-class.html#fsum2f_\npygeodesy.fsums.Fsum._facc_xsum\tpygeodesy.fsums.Fsum-class.html#_facc_xsum\npygeodesy.fsums.Fsum.__abs__\tpygeodesy.fsums.Fsum-class.html#__abs__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.fsums.Fsum._cmp_0\tpygeodesy.fsums.Fsum-class.html#_cmp_0\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.fsums.Fsum.__itruediv__\tpygeodesy.fsums.Fsum-class.html#__itruediv__\npygeodesy.fsums.Fsum.fma\tpygeodesy.fsums.Fsum-class.html#fma\npygeodesy.fsums.Fsum.__isub__\tpygeodesy.fsums.Fsum-class.html#__isub__\npygeodesy.fsums.Fsum.__rdivmod__\tpygeodesy.fsums.Fsum-class.html#__rdivmod__\npygeodesy.fsums.Fsum._Error\tpygeodesy.fsums.Fsum-class.html#_Error\npygeodesy.fsums.Fsum.__invert__\tpygeodesy.fsums.Fsum-class.html#__invert__\npygeodesy.fsums.Fsum.is_math_fma\tpygeodesy.fsums.Fsum-class.html#is_math_fma\npygeodesy.fsums.Fsum.fpow\tpygeodesy.fsums.Fsum-class.html#fpow\npygeodesy.fsums.Fsum._facc_scalar\tpygeodesy.fsums.Fsum-class.html#_facc_scalar\npygeodesy.fsums.Fsum.imag\tpygeodesy.fsums.Fsum-class.html#imag\npygeodesy.fsums.Fsum._ps_neg\tpygeodesy.fsums.Fsum-class.html#_ps_neg\npygeodesy.fsums.Fsum._nonfiniteX\tpygeodesy.fsums.Fsum-class.html#_nonfiniteX\npygeodesy.fsums.Fsum.__iter__\tpygeodesy.fsums.Fsum-class.html#__iter__\npygeodesy.fsums.Fsum.Fsum2Tuple_\tpygeodesy.fsums.Fsum-class.html#Fsum2Tuple_\npygeodesy.fsums.Fsum._ftruediv\tpygeodesy.fsums.Fsum-class.html#_ftruediv\npygeodesy.fsums.Fsum.fsub_\tpygeodesy.fsums.Fsum-class.html#fsub_\npygeodesy.fsums.Fsum.copy\tpygeodesy.fsums.Fsum-class.html#copy\npygeodesy.fsums.Fsum.__eq__\tpygeodesy.fsums.Fsum-class.html#__eq__\npygeodesy.fsums.Fsum._facc_scalar_\tpygeodesy.fsums.Fsum-class.html#_facc_scalar_\npygeodesy.named._Named.__repr__\tpygeodesy.named._Named-class.html#__repr__\npygeodesy.fsums.Fsum.__round__\tpygeodesy.fsums.Fsum-class.html#__round__\npygeodesy.fsums.Fsum._fhorner\tpygeodesy.fsums.Fsum-class.html#_fhorner\npygeodesy.fsums.Fsum.__ipow__\tpygeodesy.fsums.Fsum-class.html#__ipow__\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.fsums.Fsum.__iadd__\tpygeodesy.fsums.Fsum-class.html#__iadd__\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.fsums.Fsum.fdiv\tpygeodesy.fsums.Fsum-class.html#fdiv\npygeodesy.fsums.Fsum.__len__\tpygeodesy.fsums.Fsum-class.html#__len__\npygeodesy.fsums.Fsum.__floordiv__\tpygeodesy.fsums.Fsum-class.html#__floordiv__\npygeodesy.fsums.Fsum.__hash__\tpygeodesy.fsums.Fsum-class.html#__hash__\npygeodesy.fsums.Fsum.__sub__\tpygeodesy.fsums.Fsum-class.html#__sub__\npygeodesy.fsums.Fsum.root\tpygeodesy.fsums.Fsum-class.html#root\npygeodesy.fsums.Fsum.__ge__\tpygeodesy.fsums.Fsum-class.html#__ge__\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.fsums.Fsum._update\tpygeodesy.fsums.Fsum-class.html#_update\npygeodesy.fsums.Fsum.fdivmod\tpygeodesy.fsums.Fsum-class.html#fdivmod\npygeodesy.fsums.Fsum._fdivmod2\tpygeodesy.fsums.Fsum-class.html#_fdivmod2\npygeodesy.fsums.Fsum._finite\tpygeodesy.fsums.Fsum-class.html#_finite\npygeodesy.fsums.Fsum.__radd__\tpygeodesy.fsums.Fsum-class.html#__radd__\npygeodesy.fsums.Fsum.__floor__\tpygeodesy.fsums.Fsum-class.html#__floor__\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.fmath.Fsqrt.__init__\tpygeodesy.fmath.Fsqrt-class.html#__init__\npygeodesy.fsums.Fsum._f2mul\tpygeodesy.fsums.Fsum-class.html#_f2mul\npygeodesy.fsums.Fsum.__imod__\tpygeodesy.fsums.Fsum-class.html#__imod__\npygeodesy.fsums.Fsum._fprs\tpygeodesy.fsums.Fsum-class.html#_fprs\npygeodesy.fsums.Fsum.floor\tpygeodesy.fsums.Fsum-class.html#floor\npygeodesy.fsums.Fsum._optionals\tpygeodesy.fsums.Fsum-class.html#_optionals\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.fsums.Fsum._fadd\tpygeodesy.fsums.Fsum-class.html#_fadd\npygeodesy.fsums.Fsum.__pos__\tpygeodesy.fsums.Fsum-class.html#__pos__\npygeodesy.fsums.Fsum._raiser\tpygeodesy.fsums.Fsum-class.html#_raiser\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.fsums.Fsum.f2mul\tpygeodesy.fsums.Fsum-class.html#f2mul\npygeodesy.fsums.Fsum._scalar\tpygeodesy.fsums.Fsum-class.html#_scalar\npygeodesy.fsums.Fsum.is_exact\tpygeodesy.fsums.Fsum-class.html#is_exact\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.fsums.Fsum.fsumf_\tpygeodesy.fsums.Fsum-class.html#fsumf_\npygeodesy.fsums.Fsum.__idiv__\tpygeodesy.fsums.Fsum-class.html#__idiv__\npygeodesy.fsums.Fsum.is_finite\tpygeodesy.fsums.Fsum-class.html#is_finite\npygeodesy.fsums.Fsum.RESIDUAL\tpygeodesy.fsums.Fsum-class.html#RESIDUAL\npygeodesy.fsums.Fsum._pow_Fsum\tpygeodesy.fsums.Fsum-class.html#_pow_Fsum\npygeodesy.fsums.Fsum.__add__\tpygeodesy.fsums.Fsum-class.html#__add__\npygeodesy.fsums.Fsum.nonfinitesOK\tpygeodesy.fsums.Fsum-class.html#nonfinitesOK\npygeodesy.fsums.Fsum._ps_other\tpygeodesy.fsums.Fsum-class.html#_ps_other\npygeodesy.fsums.Fsum._rcopyd\tpygeodesy.fsums.Fsum-class.html#_rcopyd\npygeodesy.fsums.Fsum.nonfinites\tpygeodesy.fsums.Fsum-class.html#nonfinites\npygeodesy.fsums.Fsum._pow_scalar\tpygeodesy.fsums.Fsum-class.html#_pow_scalar\npygeodesy.fsums.Fsum._ResidualError\tpygeodesy.fsums.Fsum-class.html#_ResidualError\npygeodesy.fsums.Fsum._Fsum\tpygeodesy.fsums.Fsum-class.html#_Fsum\npygeodesy.fsums.Fsum._fsum2\tpygeodesy.fsums.Fsum-class.html#_fsum2\npygeodesy.fsums.Fsum._floordiv\tpygeodesy.fsums.Fsum-class.html#_floordiv\npygeodesy.fsums.Fsum.__div__\tpygeodesy.fsums.Fsum-class.html#__div__\npygeodesy.fsums.Fsum.__neg__\tpygeodesy.fsums.Fsum-class.html#__neg__\npygeodesy.fsums.Fsum.f2mul_\tpygeodesy.fsums.Fsum-class.html#f2mul_\npygeodesy.fsums.Fsum.__le__\tpygeodesy.fsums.Fsum-class.html#__le__\npygeodesy.formy.Radical2Tuple\tpygeodesy.formy.Radical2Tuple-class.html\npygeodesy.named._NamedTuple.toRepr\tpygeodesy.named._NamedTuple-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._NamedTuple.toUnits\tpygeodesy.named._NamedTuple-class.html#toUnits\npygeodesy.named._NamedTuple._validate\tpygeodesy.named._NamedTuple-class.html#_validate\npygeodesy.named._NamedTuple.__str__\tpygeodesy.named._NamedTuple-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._NamedTuple._DOT_\tpygeodesy.named._NamedTuple-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._NamedTuple.reUnit\tpygeodesy.named._NamedTuple-class.html#reUnit\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.formy.Radical2Tuple._Names_\tpygeodesy.formy.Radical2Tuple-class.html#_Names_\npygeodesy.named._NamedTuple.__setattr__\tpygeodesy.named._NamedTuple-class.html#__setattr__\npygeodesy.named._NamedTuple.__new__\tpygeodesy.named._NamedTuple-class.html#__new__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._NamedTuple._validated\tpygeodesy.named._NamedTuple-class.html#_validated\npygeodesy.named._NamedTuple.__getattr__\tpygeodesy.named._NamedTuple-class.html#__getattr__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._NamedTuple._xtend\tpygeodesy.named._NamedTuple-class.html#_xtend\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._NamedTuple.dup\tpygeodesy.named._NamedTuple-class.html#dup\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedTuple.toStr\tpygeodesy.named._NamedTuple-class.html#toStr\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedTuple.units\tpygeodesy.named._NamedTuple-class.html#units\npygeodesy.named._NamedTuple.iterunits\tpygeodesy.named._NamedTuple-class.html#iterunits\npygeodesy.named._NamedTuple.iteritems\tpygeodesy.named._NamedTuple-class.html#iteritems\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._NamedTuple.items\tpygeodesy.named._NamedTuple-class.html#items\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedTuple.__delattr__\tpygeodesy.named._NamedTuple-class.html#__delattr__\npygeodesy.named._NamedTuple.__repr__\tpygeodesy.named._NamedTuple-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._NamedTuple.__hash__\tpygeodesy.named._NamedTuple-class.html#__hash__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.formy.Radical2Tuple._Units_\tpygeodesy.formy.Radical2Tuple-class.html#_Units_\npygeodesy.frechet.Frechet\tpygeodesy.frechet.Frechet-class.html\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.frechet.Frechet._kwds\tpygeodesy.frechet.Frechet-class.html#_kwds\npygeodesy.frechet.Frechet.point\tpygeodesy.frechet.Frechet-class.html#point\npygeodesy.named._Named.__str__\tpygeodesy.named._Named-class.html#__str__\npygeodesy.frechet.Frechet.datum\tpygeodesy.frechet.Frechet-class.html#datum\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.frechet.Frechet.wrap\tpygeodesy.frechet.Frechet-class.html#wrap\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.frechet.Frechet.__init__\tpygeodesy.frechet.Frechet-class.html#__init__\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.frechet.Frechet.points_fraction\tpygeodesy.frechet.Frechet-class.html#points_fraction\npygeodesy.frechet.Frechet._ps1\tpygeodesy.frechet.Frechet-class.html#_ps1\npygeodesy.frechet.Frechet._units\tpygeodesy.frechet.Frechet-class.html#_units\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.frechet.Frechet.fraction\tpygeodesy.frechet.Frechet-class.html#fraction\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.frechet.Frechet.units\tpygeodesy.frechet.Frechet-class.html#units\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.frechet.Frechet._func\tpygeodesy.frechet.Frechet-class.html#_func\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.frechet.Frechet._f1\tpygeodesy.frechet.Frechet-class.html#_f1\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.frechet.Frechet.points_\tpygeodesy.frechet.Frechet-class.html#points_\npygeodesy.named._Named.toStr\tpygeodesy.named._Named-class.html#toStr\npygeodesy.frechet.Frechet._datum\tpygeodesy.frechet.Frechet-class.html#_datum\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.named._Named.toRepr\tpygeodesy.named._Named-class.html#toRepr\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.frechet.Frechet._datum_setter\tpygeodesy.frechet.Frechet-class.html#_datum_setter\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.frechet.Frechet._discrete\tpygeodesy.frechet.Frechet-class.html#_discrete\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.frechet.Frechet.distance\tpygeodesy.frechet.Frechet-class.html#distance\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.frechet.Frechet.kwds\tpygeodesy.frechet.Frechet-class.html#kwds\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.frechet.Frechet._n1\tpygeodesy.frechet.Frechet-class.html#_n1\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.frechet.Frechet.discrete\tpygeodesy.frechet.Frechet-class.html#discrete\npygeodesy.frechet.Frechet.adjust\tpygeodesy.frechet.Frechet-class.html#adjust\npygeodesy.frechet.Frechet._points2\tpygeodesy.frechet.Frechet-class.html#_points2\npygeodesy.named._Named.__repr__\tpygeodesy.named._Named-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.frechet.Frechet6Tuple\tpygeodesy.frechet.Frechet6Tuple-class.html\npygeodesy.named._NamedTuple.toRepr\tpygeodesy.named._NamedTuple-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.frechet.Frechet6Tuple.toUnits\tpygeodesy.frechet.Frechet6Tuple-class.html#toUnits\npygeodesy.named._NamedTuple._validate\tpygeodesy.named._NamedTuple-class.html#_validate\npygeodesy.named._NamedTuple.__str__\tpygeodesy.named._NamedTuple-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._NamedTuple._DOT_\tpygeodesy.named._NamedTuple-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._NamedTuple.reUnit\tpygeodesy.named._NamedTuple-class.html#reUnit\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.frechet.Frechet6Tuple._Names_\tpygeodesy.frechet.Frechet6Tuple-class.html#_Names_\npygeodesy.named._NamedTuple.__setattr__\tpygeodesy.named._NamedTuple-class.html#__setattr__\npygeodesy.named._NamedTuple.__new__\tpygeodesy.named._NamedTuple-class.html#__new__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._NamedTuple._validated\tpygeodesy.named._NamedTuple-class.html#_validated\npygeodesy.named._NamedTuple.__getattr__\tpygeodesy.named._NamedTuple-class.html#__getattr__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._NamedTuple._xtend\tpygeodesy.named._NamedTuple-class.html#_xtend\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._NamedTuple.dup\tpygeodesy.named._NamedTuple-class.html#dup\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedTuple.toStr\tpygeodesy.named._NamedTuple-class.html#toStr\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedTuple.units\tpygeodesy.named._NamedTuple-class.html#units\npygeodesy.named._NamedTuple.iterunits\tpygeodesy.named._NamedTuple-class.html#iterunits\npygeodesy.named._NamedTuple.iteritems\tpygeodesy.named._NamedTuple-class.html#iteritems\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._NamedTuple.items\tpygeodesy.named._NamedTuple-class.html#items\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedTuple.__delattr__\tpygeodesy.named._NamedTuple-class.html#__delattr__\npygeodesy.named._NamedTuple.__repr__\tpygeodesy.named._NamedTuple-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._NamedTuple.__hash__\tpygeodesy.named._NamedTuple-class.html#__hash__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.frechet.Frechet6Tuple._Units_\tpygeodesy.frechet.Frechet6Tuple-class.html#_Units_\npygeodesy.frechet.FrechetCosineLaw\tpygeodesy.frechet.FrechetCosineLaw-class.html\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.frechet.Frechet.point\tpygeodesy.frechet.Frechet-class.html#point\npygeodesy.named._Named.__str__\tpygeodesy.named._Named-class.html#__str__\npygeodesy.frechet.Frechet.datum\tpygeodesy.frechet.Frechet-class.html#datum\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.frechet.Frechet.wrap\tpygeodesy.frechet.Frechet-class.html#wrap\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.frechet.FrechetCosineLaw.__init__\tpygeodesy.frechet.FrechetCosineLaw-class.html#__init__\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.frechet.Frechet._kwds\tpygeodesy.frechet.Frechet-class.html#_kwds\npygeodesy.frechet.Frechet._ps1\tpygeodesy.frechet.Frechet-class.html#_ps1\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.frechet.Frechet.fraction\tpygeodesy.frechet.Frechet-class.html#fraction\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.frechet.Frechet.units\tpygeodesy.frechet.Frechet-class.html#units\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.frechet.Frechet._func\tpygeodesy.frechet.Frechet-class.html#_func\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.frechet.Frechet._f1\tpygeodesy.frechet.Frechet-class.html#_f1\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.frechet.Frechet.points_\tpygeodesy.frechet.Frechet-class.html#points_\npygeodesy.named._Named.toStr\tpygeodesy.named._Named-class.html#toStr\npygeodesy.frechet.Frechet._datum\tpygeodesy.frechet.Frechet-class.html#_datum\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.named._Named.toRepr\tpygeodesy.named._Named-class.html#toRepr\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.frechet.Frechet._datum_setter\tpygeodesy.frechet.Frechet-class.html#_datum_setter\npygeodesy.frechet.Frechet._discrete\tpygeodesy.frechet.Frechet-class.html#_discrete\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.frechet.Frechet.distance\tpygeodesy.frechet.Frechet-class.html#distance\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.frechet.Frechet.kwds\tpygeodesy.frechet.Frechet-class.html#kwds\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.frechet.Frechet._n1\tpygeodesy.frechet.Frechet-class.html#_n1\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.frechet.FrechetCosineLaw.discrete\tpygeodesy.frechet.FrechetCosineLaw-class.html#discrete\npygeodesy.frechet.Frechet.adjust\tpygeodesy.frechet.Frechet-class.html#adjust\npygeodesy.frechet.Frechet._points2\tpygeodesy.frechet.Frechet-class.html#_points2\npygeodesy.named._Named.__repr__\tpygeodesy.named._Named-class.html#__repr__\npygeodesy.frechet.Frechet.points_fraction\tpygeodesy.frechet.Frechet-class.html#points_fraction\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.frechet.FrechetDegrees\tpygeodesy.frechet.FrechetDegrees-class.html\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.frechet.Frechet.point\tpygeodesy.frechet.Frechet-class.html#point\npygeodesy.named._Named.__str__\tpygeodesy.named._Named-class.html#__str__\npygeodesy.frechet.Frechet.datum\tpygeodesy.frechet.Frechet-class.html#datum\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.frechet.Frechet.wrap\tpygeodesy.frechet.Frechet-class.html#wrap\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.frechet.FrechetDegrees.__init__\tpygeodesy.frechet.FrechetDegrees-class.html#__init__\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.frechet.Frechet._kwds\tpygeodesy.frechet.Frechet-class.html#_kwds\npygeodesy.frechet.Frechet._ps1\tpygeodesy.frechet.Frechet-class.html#_ps1\npygeodesy.frechet.FrechetDegrees._units\tpygeodesy.frechet.FrechetDegrees-class.html#_units\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.frechet.Frechet.fraction\tpygeodesy.frechet.Frechet-class.html#fraction\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.frechet.Frechet.units\tpygeodesy.frechet.Frechet-class.html#units\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.frechet.Frechet._func\tpygeodesy.frechet.Frechet-class.html#_func\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.frechet.Frechet._f1\tpygeodesy.frechet.Frechet-class.html#_f1\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.frechet.Frechet.points_\tpygeodesy.frechet.Frechet-class.html#points_\npygeodesy.named._Named.toStr\tpygeodesy.named._Named-class.html#toStr\npygeodesy.frechet.Frechet._datum\tpygeodesy.frechet.Frechet-class.html#_datum\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.named._Named.toRepr\tpygeodesy.named._Named-class.html#toRepr\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.frechet.Frechet._datum_setter\tpygeodesy.frechet.Frechet-class.html#_datum_setter\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.frechet.Frechet._discrete\tpygeodesy.frechet.Frechet-class.html#_discrete\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.frechet.FrechetDegrees.distance\tpygeodesy.frechet.FrechetDegrees-class.html#distance\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.frechet.Frechet.kwds\tpygeodesy.frechet.Frechet-class.html#kwds\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.frechet.Frechet._n1\tpygeodesy.frechet.Frechet-class.html#_n1\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.frechet.FrechetDegrees.discrete\tpygeodesy.frechet.FrechetDegrees-class.html#discrete\npygeodesy.frechet.Frechet.adjust\tpygeodesy.frechet.Frechet-class.html#adjust\npygeodesy.frechet.Frechet._points2\tpygeodesy.frechet.Frechet-class.html#_points2\npygeodesy.named._Named.__repr__\tpygeodesy.named._Named-class.html#__repr__\npygeodesy.frechet.Frechet.points_fraction\tpygeodesy.frechet.Frechet-class.html#points_fraction\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.frechet.FrechetDistanceTo\tpygeodesy.frechet.FrechetDistanceTo-class.html\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.frechet.Frechet.point\tpygeodesy.frechet.Frechet-class.html#point\npygeodesy.named._Named.__str__\tpygeodesy.named._Named-class.html#__str__\npygeodesy.frechet.Frechet.datum\tpygeodesy.frechet.Frechet-class.html#datum\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.frechet.Frechet.wrap\tpygeodesy.frechet.Frechet-class.html#wrap\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.frechet.FrechetDistanceTo.__init__\tpygeodesy.frechet.FrechetDistanceTo-class.html#__init__\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.frechet.Frechet._kwds\tpygeodesy.frechet.Frechet-class.html#_kwds\npygeodesy.frechet.Frechet._ps1\tpygeodesy.frechet.Frechet-class.html#_ps1\npygeodesy.frechet.FrechetDistanceTo._units\tpygeodesy.frechet.FrechetDistanceTo-class.html#_units\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.frechet.Frechet.fraction\tpygeodesy.frechet.Frechet-class.html#fraction\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.frechet.Frechet.units\tpygeodesy.frechet.Frechet-class.html#units\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.frechet.Frechet._func\tpygeodesy.frechet.Frechet-class.html#_func\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.frechet.Frechet._f1\tpygeodesy.frechet.Frechet-class.html#_f1\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.frechet.Frechet.points_\tpygeodesy.frechet.Frechet-class.html#points_\npygeodesy.named._Named.toStr\tpygeodesy.named._Named-class.html#toStr\npygeodesy.frechet.Frechet._datum\tpygeodesy.frechet.Frechet-class.html#_datum\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.named._Named.toRepr\tpygeodesy.named._Named-class.html#toRepr\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.frechet.Frechet._datum_setter\tpygeodesy.frechet.Frechet-class.html#_datum_setter\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.frechet.Frechet._discrete\tpygeodesy.frechet.Frechet-class.html#_discrete\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.frechet.FrechetDistanceTo.distance\tpygeodesy.frechet.FrechetDistanceTo-class.html#distance\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.frechet.Frechet.kwds\tpygeodesy.frechet.Frechet-class.html#kwds\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.frechet.Frechet._n1\tpygeodesy.frechet.Frechet-class.html#_n1\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.frechet.FrechetDistanceTo.discrete\tpygeodesy.frechet.FrechetDistanceTo-class.html#discrete\npygeodesy.frechet.Frechet.adjust\tpygeodesy.frechet.Frechet-class.html#adjust\npygeodesy.frechet.FrechetDistanceTo._points2\tpygeodesy.frechet.FrechetDistanceTo-class.html#_points2\npygeodesy.named._Named.__repr__\tpygeodesy.named._Named-class.html#__repr__\npygeodesy.frechet.Frechet.points_fraction\tpygeodesy.frechet.Frechet-class.html#points_fraction\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.frechet.FrechetEquirectangular\tpygeodesy.frechet.FrechetEquirectangular-class.html\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.frechet.Frechet.point\tpygeodesy.frechet.Frechet-class.html#point\npygeodesy.named._Named.__str__\tpygeodesy.named._Named-class.html#__str__\npygeodesy.frechet.Frechet.datum\tpygeodesy.frechet.Frechet-class.html#datum\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.frechet.Frechet.wrap\tpygeodesy.frechet.Frechet-class.html#wrap\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.frechet.FrechetEquirectangular.__init__\tpygeodesy.frechet.FrechetEquirectangular-class.html#__init__\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.frechet.Frechet._kwds\tpygeodesy.frechet.Frechet-class.html#_kwds\npygeodesy.frechet.Frechet._ps1\tpygeodesy.frechet.Frechet-class.html#_ps1\npygeodesy.frechet.FrechetEquirectangular._units\tpygeodesy.frechet.FrechetEquirectangular-class.html#_units\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.frechet.Frechet.fraction\tpygeodesy.frechet.Frechet-class.html#fraction\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.frechet.Frechet.units\tpygeodesy.frechet.Frechet-class.html#units\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.frechet.Frechet._func\tpygeodesy.frechet.Frechet-class.html#_func\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.frechet.Frechet._f1\tpygeodesy.frechet.Frechet-class.html#_f1\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.frechet.Frechet.points_\tpygeodesy.frechet.Frechet-class.html#points_\npygeodesy.named._Named.toStr\tpygeodesy.named._Named-class.html#toStr\npygeodesy.frechet.Frechet._datum\tpygeodesy.frechet.Frechet-class.html#_datum\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.named._Named.toRepr\tpygeodesy.named._Named-class.html#toRepr\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.frechet.Frechet._datum_setter\tpygeodesy.frechet.Frechet-class.html#_datum_setter\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.frechet.Frechet._discrete\tpygeodesy.frechet.Frechet-class.html#_discrete\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.frechet.Frechet.distance\tpygeodesy.frechet.Frechet-class.html#distance\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.frechet.Frechet.kwds\tpygeodesy.frechet.Frechet-class.html#kwds\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.frechet.Frechet._n1\tpygeodesy.frechet.Frechet-class.html#_n1\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.frechet.FrechetEquirectangular.discrete\tpygeodesy.frechet.FrechetEquirectangular-class.html#discrete\npygeodesy.frechet.Frechet.adjust\tpygeodesy.frechet.Frechet-class.html#adjust\npygeodesy.frechet.Frechet._points2\tpygeodesy.frechet.Frechet-class.html#_points2\npygeodesy.named._Named.__repr__\tpygeodesy.named._Named-class.html#__repr__\npygeodesy.frechet.Frechet.points_fraction\tpygeodesy.frechet.Frechet-class.html#points_fraction\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.frechet.FrechetError\tpygeodesy.frechet.FrechetError-class.html\npygeodesy.frechet.FrechetEuclidean\tpygeodesy.frechet.FrechetEuclidean-class.html\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.frechet.Frechet.point\tpygeodesy.frechet.Frechet-class.html#point\npygeodesy.named._Named.__str__\tpygeodesy.named._Named-class.html#__str__\npygeodesy.frechet.Frechet.datum\tpygeodesy.frechet.Frechet-class.html#datum\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.frechet.Frechet.wrap\tpygeodesy.frechet.Frechet-class.html#wrap\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.frechet.FrechetEuclidean.__init__\tpygeodesy.frechet.FrechetEuclidean-class.html#__init__\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.frechet.Frechet._kwds\tpygeodesy.frechet.Frechet-class.html#_kwds\npygeodesy.frechet.Frechet._ps1\tpygeodesy.frechet.Frechet-class.html#_ps1\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.frechet.Frechet.fraction\tpygeodesy.frechet.Frechet-class.html#fraction\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.frechet.Frechet.units\tpygeodesy.frechet.Frechet-class.html#units\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.frechet.Frechet._func\tpygeodesy.frechet.Frechet-class.html#_func\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.frechet.Frechet._f1\tpygeodesy.frechet.Frechet-class.html#_f1\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.frechet.Frechet.points_\tpygeodesy.frechet.Frechet-class.html#points_\npygeodesy.named._Named.toStr\tpygeodesy.named._Named-class.html#toStr\npygeodesy.frechet.Frechet._datum\tpygeodesy.frechet.Frechet-class.html#_datum\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.named._Named.toRepr\tpygeodesy.named._Named-class.html#toRepr\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.frechet.Frechet._datum_setter\tpygeodesy.frechet.Frechet-class.html#_datum_setter\npygeodesy.frechet.Frechet._discrete\tpygeodesy.frechet.Frechet-class.html#_discrete\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.frechet.Frechet.distance\tpygeodesy.frechet.Frechet-class.html#distance\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.frechet.Frechet.kwds\tpygeodesy.frechet.Frechet-class.html#kwds\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.frechet.Frechet._n1\tpygeodesy.frechet.Frechet-class.html#_n1\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.frechet.FrechetEuclidean.discrete\tpygeodesy.frechet.FrechetEuclidean-class.html#discrete\npygeodesy.frechet.Frechet.adjust\tpygeodesy.frechet.Frechet-class.html#adjust\npygeodesy.frechet.Frechet._points2\tpygeodesy.frechet.Frechet-class.html#_points2\npygeodesy.named._Named.__repr__\tpygeodesy.named._Named-class.html#__repr__\npygeodesy.frechet.Frechet.points_fraction\tpygeodesy.frechet.Frechet-class.html#points_fraction\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.frechet.FrechetExact\tpygeodesy.frechet.FrechetExact-class.html\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.frechet.Frechet.point\tpygeodesy.frechet.Frechet-class.html#point\npygeodesy.named._Named.__str__\tpygeodesy.named._Named-class.html#__str__\npygeodesy.frechet.Frechet.datum\tpygeodesy.frechet.Frechet-class.html#datum\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.frechet.Frechet.wrap\tpygeodesy.frechet.Frechet-class.html#wrap\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.frechet.FrechetExact.__init__\tpygeodesy.frechet.FrechetExact-class.html#__init__\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.frechet.Frechet._kwds\tpygeodesy.frechet.Frechet-class.html#_kwds\npygeodesy.frechet.Frechet._ps1\tpygeodesy.frechet.Frechet-class.html#_ps1\npygeodesy.frechet.FrechetExact._units\tpygeodesy.frechet.FrechetExact-class.html#_units\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.frechet.Frechet.fraction\tpygeodesy.frechet.Frechet-class.html#fraction\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.frechet.Frechet.units\tpygeodesy.frechet.Frechet-class.html#units\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.frechet.Frechet._func\tpygeodesy.frechet.Frechet-class.html#_func\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.frechet.Frechet._f1\tpygeodesy.frechet.Frechet-class.html#_f1\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.frechet.Frechet.points_\tpygeodesy.frechet.Frechet-class.html#points_\npygeodesy.named._Named.toStr\tpygeodesy.named._Named-class.html#toStr\npygeodesy.frechet.Frechet._datum\tpygeodesy.frechet.Frechet-class.html#_datum\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.named._Named.toRepr\tpygeodesy.named._Named-class.html#toRepr\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.frechet.Frechet._datum_setter\tpygeodesy.frechet.Frechet-class.html#_datum_setter\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.frechet.Frechet._discrete\tpygeodesy.frechet.Frechet-class.html#_discrete\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.frechet.Frechet.distance\tpygeodesy.frechet.Frechet-class.html#distance\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.frechet.Frechet.kwds\tpygeodesy.frechet.Frechet-class.html#kwds\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.frechet.Frechet._n1\tpygeodesy.frechet.Frechet-class.html#_n1\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.frechet.FrechetExact.discrete\tpygeodesy.frechet.FrechetExact-class.html#discrete\npygeodesy.frechet.Frechet.adjust\tpygeodesy.frechet.Frechet-class.html#adjust\npygeodesy.frechet.Frechet._points2\tpygeodesy.frechet.Frechet-class.html#_points2\npygeodesy.named._Named.__repr__\tpygeodesy.named._Named-class.html#__repr__\npygeodesy.frechet.Frechet.points_fraction\tpygeodesy.frechet.Frechet-class.html#points_fraction\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.frechet.FrechetFlatLocal\tpygeodesy.frechet.FrechetFlatLocal-class.html\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.frechet.Frechet.point\tpygeodesy.frechet.Frechet-class.html#point\npygeodesy.named._Named.__str__\tpygeodesy.named._Named-class.html#__str__\npygeodesy.frechet.Frechet.datum\tpygeodesy.frechet.Frechet-class.html#datum\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.frechet.Frechet.wrap\tpygeodesy.frechet.Frechet-class.html#wrap\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.frechet.FrechetFlatLocal.__init__\tpygeodesy.frechet.FrechetFlatLocal-class.html#__init__\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.frechet.Frechet._kwds\tpygeodesy.frechet.Frechet-class.html#_kwds\npygeodesy.frechet.Frechet._ps1\tpygeodesy.frechet.Frechet-class.html#_ps1\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.frechet.Frechet.fraction\tpygeodesy.frechet.Frechet-class.html#fraction\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.frechet.Frechet.units\tpygeodesy.frechet.Frechet-class.html#units\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.frechet.Frechet._func\tpygeodesy.frechet.Frechet-class.html#_func\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.frechet.Frechet._f1\tpygeodesy.frechet.Frechet-class.html#_f1\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.frechet.Frechet.points_\tpygeodesy.frechet.Frechet-class.html#points_\npygeodesy.named._Named.toStr\tpygeodesy.named._Named-class.html#toStr\npygeodesy.frechet.Frechet._datum\tpygeodesy.frechet.Frechet-class.html#_datum\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.named._Named.toRepr\tpygeodesy.named._Named-class.html#toRepr\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.frechet.Frechet._datum_setter\tpygeodesy.frechet.Frechet-class.html#_datum_setter\npygeodesy.frechet.FrechetFlatLocal._units_\tpygeodesy.frechet.FrechetFlatLocal-class.html#_units_\npygeodesy.frechet.Frechet._discrete\tpygeodesy.frechet.Frechet-class.html#_discrete\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.frechet.Frechet.distance\tpygeodesy.frechet.Frechet-class.html#distance\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.frechet.Frechet.kwds\tpygeodesy.frechet.Frechet-class.html#kwds\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.frechet.Frechet._n1\tpygeodesy.frechet.Frechet-class.html#_n1\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.frechet.FrechetFlatLocal.discrete\tpygeodesy.frechet.FrechetFlatLocal-class.html#discrete\npygeodesy.frechet.Frechet.adjust\tpygeodesy.frechet.Frechet-class.html#adjust\npygeodesy.frechet.Frechet._points2\tpygeodesy.frechet.Frechet-class.html#_points2\npygeodesy.named._Named.__repr__\tpygeodesy.named._Named-class.html#__repr__\npygeodesy.frechet.Frechet.points_fraction\tpygeodesy.frechet.Frechet-class.html#points_fraction\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.frechet.FrechetFlatPolar\tpygeodesy.frechet.FrechetFlatPolar-class.html\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.frechet.Frechet.point\tpygeodesy.frechet.Frechet-class.html#point\npygeodesy.named._Named.__str__\tpygeodesy.named._Named-class.html#__str__\npygeodesy.frechet.Frechet.datum\tpygeodesy.frechet.Frechet-class.html#datum\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.frechet.Frechet.wrap\tpygeodesy.frechet.Frechet-class.html#wrap\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.frechet.FrechetFlatPolar.__init__\tpygeodesy.frechet.FrechetFlatPolar-class.html#__init__\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.frechet.Frechet._kwds\tpygeodesy.frechet.Frechet-class.html#_kwds\npygeodesy.frechet.Frechet._ps1\tpygeodesy.frechet.Frechet-class.html#_ps1\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.frechet.Frechet.fraction\tpygeodesy.frechet.Frechet-class.html#fraction\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.frechet.Frechet.units\tpygeodesy.frechet.Frechet-class.html#units\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.frechet.Frechet._func\tpygeodesy.frechet.Frechet-class.html#_func\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.frechet.Frechet._f1\tpygeodesy.frechet.Frechet-class.html#_f1\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.frechet.Frechet.points_\tpygeodesy.frechet.Frechet-class.html#points_\npygeodesy.named._Named.toStr\tpygeodesy.named._Named-class.html#toStr\npygeodesy.frechet.Frechet._datum\tpygeodesy.frechet.Frechet-class.html#_datum\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.named._Named.toRepr\tpygeodesy.named._Named-class.html#toRepr\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.frechet.Frechet._datum_setter\tpygeodesy.frechet.Frechet-class.html#_datum_setter\npygeodesy.frechet.Frechet._discrete\tpygeodesy.frechet.Frechet-class.html#_discrete\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.frechet.Frechet.distance\tpygeodesy.frechet.Frechet-class.html#distance\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.frechet.Frechet.kwds\tpygeodesy.frechet.Frechet-class.html#kwds\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.frechet.Frechet._n1\tpygeodesy.frechet.Frechet-class.html#_n1\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.frechet.FrechetFlatPolar.discrete\tpygeodesy.frechet.FrechetFlatPolar-class.html#discrete\npygeodesy.frechet.Frechet.adjust\tpygeodesy.frechet.Frechet-class.html#adjust\npygeodesy.frechet.Frechet._points2\tpygeodesy.frechet.Frechet-class.html#_points2\npygeodesy.named._Named.__repr__\tpygeodesy.named._Named-class.html#__repr__\npygeodesy.frechet.Frechet.points_fraction\tpygeodesy.frechet.Frechet-class.html#points_fraction\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.frechet.FrechetHaversine\tpygeodesy.frechet.FrechetHaversine-class.html\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.frechet.Frechet.point\tpygeodesy.frechet.Frechet-class.html#point\npygeodesy.named._Named.__str__\tpygeodesy.named._Named-class.html#__str__\npygeodesy.frechet.Frechet.datum\tpygeodesy.frechet.Frechet-class.html#datum\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.frechet.Frechet.wrap\tpygeodesy.frechet.Frechet-class.html#wrap\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.frechet.FrechetHaversine.__init__\tpygeodesy.frechet.FrechetHaversine-class.html#__init__\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.frechet.Frechet._kwds\tpygeodesy.frechet.Frechet-class.html#_kwds\npygeodesy.frechet.Frechet._ps1\tpygeodesy.frechet.Frechet-class.html#_ps1\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.frechet.Frechet.fraction\tpygeodesy.frechet.Frechet-class.html#fraction\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.frechet.Frechet.units\tpygeodesy.frechet.Frechet-class.html#units\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.frechet.Frechet._func\tpygeodesy.frechet.Frechet-class.html#_func\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.frechet.Frechet._f1\tpygeodesy.frechet.Frechet-class.html#_f1\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.frechet.Frechet.points_\tpygeodesy.frechet.Frechet-class.html#points_\npygeodesy.named._Named.toStr\tpygeodesy.named._Named-class.html#toStr\npygeodesy.frechet.Frechet._datum\tpygeodesy.frechet.Frechet-class.html#_datum\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.named._Named.toRepr\tpygeodesy.named._Named-class.html#toRepr\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.frechet.Frechet._datum_setter\tpygeodesy.frechet.Frechet-class.html#_datum_setter\npygeodesy.frechet.Frechet._discrete\tpygeodesy.frechet.Frechet-class.html#_discrete\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.frechet.Frechet.distance\tpygeodesy.frechet.Frechet-class.html#distance\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.frechet.Frechet.kwds\tpygeodesy.frechet.Frechet-class.html#kwds\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.frechet.Frechet._n1\tpygeodesy.frechet.Frechet-class.html#_n1\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.frechet.FrechetHaversine.discrete\tpygeodesy.frechet.FrechetHaversine-class.html#discrete\npygeodesy.frechet.Frechet.adjust\tpygeodesy.frechet.Frechet-class.html#adjust\npygeodesy.frechet.Frechet._points2\tpygeodesy.frechet.Frechet-class.html#_points2\npygeodesy.named._Named.__repr__\tpygeodesy.named._Named-class.html#__repr__\npygeodesy.frechet.Frechet.points_fraction\tpygeodesy.frechet.Frechet-class.html#points_fraction\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.frechet.FrechetHubeny\tpygeodesy.frechet.FrechetHubeny-class.html\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.frechet.Frechet.point\tpygeodesy.frechet.Frechet-class.html#point\npygeodesy.named._Named.__str__\tpygeodesy.named._Named-class.html#__str__\npygeodesy.frechet.Frechet.datum\tpygeodesy.frechet.Frechet-class.html#datum\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.frechet.Frechet.wrap\tpygeodesy.frechet.Frechet-class.html#wrap\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.frechet.FrechetHubeny.__init__\tpygeodesy.frechet.FrechetHubeny-class.html#__init__\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.frechet.Frechet._kwds\tpygeodesy.frechet.Frechet-class.html#_kwds\npygeodesy.frechet.Frechet._ps1\tpygeodesy.frechet.Frechet-class.html#_ps1\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.frechet.Frechet.fraction\tpygeodesy.frechet.Frechet-class.html#fraction\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.frechet.Frechet.units\tpygeodesy.frechet.Frechet-class.html#units\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.frechet.FrechetHubeny.__doc__\tpygeodesy.frechet.FrechetHubeny-class.html#__doc__\npygeodesy.frechet.Frechet._func\tpygeodesy.frechet.Frechet-class.html#_func\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.frechet.Frechet._f1\tpygeodesy.frechet.Frechet-class.html#_f1\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.frechet.Frechet.points_\tpygeodesy.frechet.Frechet-class.html#points_\npygeodesy.named._Named.toStr\tpygeodesy.named._Named-class.html#toStr\npygeodesy.frechet.Frechet._datum\tpygeodesy.frechet.Frechet-class.html#_datum\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.named._Named.toRepr\tpygeodesy.named._Named-class.html#toRepr\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.frechet.Frechet._datum_setter\tpygeodesy.frechet.Frechet-class.html#_datum_setter\npygeodesy.frechet.FrechetFlatLocal._units_\tpygeodesy.frechet.FrechetFlatLocal-class.html#_units_\npygeodesy.frechet.Frechet._discrete\tpygeodesy.frechet.Frechet-class.html#_discrete\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.frechet.FrechetHubeny.distance\tpygeodesy.frechet.FrechetHubeny-class.html#distance\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.frechet.Frechet.kwds\tpygeodesy.frechet.Frechet-class.html#kwds\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.frechet.Frechet._n1\tpygeodesy.frechet.Frechet-class.html#_n1\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.frechet.FrechetHubeny.discrete\tpygeodesy.frechet.FrechetHubeny-class.html#discrete\npygeodesy.frechet.Frechet.adjust\tpygeodesy.frechet.Frechet-class.html#adjust\npygeodesy.frechet.Frechet._points2\tpygeodesy.frechet.Frechet-class.html#_points2\npygeodesy.named._Named.__repr__\tpygeodesy.named._Named-class.html#__repr__\npygeodesy.frechet.Frechet.points_fraction\tpygeodesy.frechet.Frechet-class.html#points_fraction\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.frechet.FrechetKarney\tpygeodesy.frechet.FrechetKarney-class.html\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.frechet.Frechet.point\tpygeodesy.frechet.Frechet-class.html#point\npygeodesy.named._Named.__str__\tpygeodesy.named._Named-class.html#__str__\npygeodesy.frechet.Frechet.datum\tpygeodesy.frechet.Frechet-class.html#datum\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.frechet.Frechet.wrap\tpygeodesy.frechet.Frechet-class.html#wrap\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.frechet.FrechetKarney.__init__\tpygeodesy.frechet.FrechetKarney-class.html#__init__\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.frechet.Frechet._kwds\tpygeodesy.frechet.Frechet-class.html#_kwds\npygeodesy.frechet.Frechet._ps1\tpygeodesy.frechet.Frechet-class.html#_ps1\npygeodesy.frechet.FrechetKarney._units\tpygeodesy.frechet.FrechetKarney-class.html#_units\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.frechet.Frechet.fraction\tpygeodesy.frechet.Frechet-class.html#fraction\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.frechet.Frechet.units\tpygeodesy.frechet.Frechet-class.html#units\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.frechet.Frechet._func\tpygeodesy.frechet.Frechet-class.html#_func\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.frechet.Frechet._f1\tpygeodesy.frechet.Frechet-class.html#_f1\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.frechet.Frechet.points_\tpygeodesy.frechet.Frechet-class.html#points_\npygeodesy.named._Named.toStr\tpygeodesy.named._Named-class.html#toStr\npygeodesy.frechet.Frechet._datum\tpygeodesy.frechet.Frechet-class.html#_datum\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.named._Named.toRepr\tpygeodesy.named._Named-class.html#toRepr\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.frechet.Frechet._datum_setter\tpygeodesy.frechet.Frechet-class.html#_datum_setter\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.frechet.Frechet._discrete\tpygeodesy.frechet.Frechet-class.html#_discrete\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.frechet.Frechet.distance\tpygeodesy.frechet.Frechet-class.html#distance\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.frechet.Frechet.kwds\tpygeodesy.frechet.Frechet-class.html#kwds\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.frechet.Frechet._n1\tpygeodesy.frechet.Frechet-class.html#_n1\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.frechet.FrechetKarney.discrete\tpygeodesy.frechet.FrechetKarney-class.html#discrete\npygeodesy.frechet.Frechet.adjust\tpygeodesy.frechet.Frechet-class.html#adjust\npygeodesy.frechet.Frechet._points2\tpygeodesy.frechet.Frechet-class.html#_points2\npygeodesy.named._Named.__repr__\tpygeodesy.named._Named-class.html#__repr__\npygeodesy.frechet.Frechet.points_fraction\tpygeodesy.frechet.Frechet-class.html#points_fraction\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.frechet.FrechetRadians\tpygeodesy.frechet.FrechetRadians-class.html\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.frechet.FrechetRadians.point\tpygeodesy.frechet.FrechetRadians-class.html#point\npygeodesy.named._Named.__str__\tpygeodesy.named._Named-class.html#__str__\npygeodesy.frechet.Frechet.datum\tpygeodesy.frechet.Frechet-class.html#datum\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.frechet.Frechet.wrap\tpygeodesy.frechet.Frechet-class.html#wrap\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.frechet.FrechetRadians.__init__\tpygeodesy.frechet.FrechetRadians-class.html#__init__\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.frechet.Frechet._kwds\tpygeodesy.frechet.Frechet-class.html#_kwds\npygeodesy.frechet.Frechet._ps1\tpygeodesy.frechet.Frechet-class.html#_ps1\npygeodesy.frechet.FrechetRadians._units\tpygeodesy.frechet.FrechetRadians-class.html#_units\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.frechet.Frechet.fraction\tpygeodesy.frechet.Frechet-class.html#fraction\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.frechet.Frechet.units\tpygeodesy.frechet.Frechet-class.html#units\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.frechet.Frechet._func\tpygeodesy.frechet.Frechet-class.html#_func\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.frechet.Frechet._f1\tpygeodesy.frechet.Frechet-class.html#_f1\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.frechet.Frechet.points_\tpygeodesy.frechet.Frechet-class.html#points_\npygeodesy.named._Named.toStr\tpygeodesy.named._Named-class.html#toStr\npygeodesy.frechet.Frechet._datum\tpygeodesy.frechet.Frechet-class.html#_datum\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.named._Named.toRepr\tpygeodesy.named._Named-class.html#toRepr\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.frechet.Frechet._datum_setter\tpygeodesy.frechet.Frechet-class.html#_datum_setter\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.frechet.Frechet._discrete\tpygeodesy.frechet.Frechet-class.html#_discrete\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.frechet.FrechetRadians.distance\tpygeodesy.frechet.FrechetRadians-class.html#distance\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.frechet.Frechet.kwds\tpygeodesy.frechet.Frechet-class.html#kwds\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.frechet.Frechet._n1\tpygeodesy.frechet.Frechet-class.html#_n1\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.frechet.FrechetRadians.discrete\tpygeodesy.frechet.FrechetRadians-class.html#discrete\npygeodesy.frechet.Frechet.adjust\tpygeodesy.frechet.Frechet-class.html#adjust\npygeodesy.frechet.Frechet._points2\tpygeodesy.frechet.Frechet-class.html#_points2\npygeodesy.named._Named.__repr__\tpygeodesy.named._Named-class.html#__repr__\npygeodesy.frechet.Frechet.points_fraction\tpygeodesy.frechet.Frechet-class.html#points_fraction\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.frechet.FrechetThomas\tpygeodesy.frechet.FrechetThomas-class.html\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.frechet.Frechet.point\tpygeodesy.frechet.Frechet-class.html#point\npygeodesy.named._Named.__str__\tpygeodesy.named._Named-class.html#__str__\npygeodesy.frechet.Frechet.datum\tpygeodesy.frechet.Frechet-class.html#datum\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.frechet.Frechet.wrap\tpygeodesy.frechet.Frechet-class.html#wrap\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.frechet.FrechetThomas.__init__\tpygeodesy.frechet.FrechetThomas-class.html#__init__\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.frechet.Frechet._kwds\tpygeodesy.frechet.Frechet-class.html#_kwds\npygeodesy.frechet.Frechet._ps1\tpygeodesy.frechet.Frechet-class.html#_ps1\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.frechet.Frechet.fraction\tpygeodesy.frechet.Frechet-class.html#fraction\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.frechet.Frechet.units\tpygeodesy.frechet.Frechet-class.html#units\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.frechet.Frechet._func\tpygeodesy.frechet.Frechet-class.html#_func\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.frechet.Frechet._f1\tpygeodesy.frechet.Frechet-class.html#_f1\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.frechet.Frechet.points_\tpygeodesy.frechet.Frechet-class.html#points_\npygeodesy.named._Named.toStr\tpygeodesy.named._Named-class.html#toStr\npygeodesy.frechet.Frechet._datum\tpygeodesy.frechet.Frechet-class.html#_datum\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.named._Named.toRepr\tpygeodesy.named._Named-class.html#toRepr\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.frechet.Frechet._datum_setter\tpygeodesy.frechet.Frechet-class.html#_datum_setter\npygeodesy.frechet.Frechet._discrete\tpygeodesy.frechet.Frechet-class.html#_discrete\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.frechet.Frechet.distance\tpygeodesy.frechet.Frechet-class.html#distance\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.frechet.Frechet.kwds\tpygeodesy.frechet.Frechet-class.html#kwds\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.frechet.Frechet._n1\tpygeodesy.frechet.Frechet-class.html#_n1\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.frechet.FrechetThomas.discrete\tpygeodesy.frechet.FrechetThomas-class.html#discrete\npygeodesy.frechet.Frechet.adjust\tpygeodesy.frechet.Frechet-class.html#adjust\npygeodesy.frechet.Frechet._points2\tpygeodesy.frechet.Frechet-class.html#_points2\npygeodesy.named._Named.__repr__\tpygeodesy.named._Named-class.html#__repr__\npygeodesy.frechet.Frechet.points_fraction\tpygeodesy.frechet.Frechet-class.html#points_fraction\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.frechet.FrechetVincentys\tpygeodesy.frechet.FrechetVincentys-class.html\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.frechet.Frechet.point\tpygeodesy.frechet.Frechet-class.html#point\npygeodesy.named._Named.__str__\tpygeodesy.named._Named-class.html#__str__\npygeodesy.frechet.Frechet.datum\tpygeodesy.frechet.Frechet-class.html#datum\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.frechet.Frechet.wrap\tpygeodesy.frechet.Frechet-class.html#wrap\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.frechet.FrechetVincentys.__init__\tpygeodesy.frechet.FrechetVincentys-class.html#__init__\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.frechet.Frechet._kwds\tpygeodesy.frechet.Frechet-class.html#_kwds\npygeodesy.frechet.Frechet._ps1\tpygeodesy.frechet.Frechet-class.html#_ps1\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.frechet.Frechet.fraction\tpygeodesy.frechet.Frechet-class.html#fraction\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.frechet.Frechet.units\tpygeodesy.frechet.Frechet-class.html#units\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.frechet.Frechet._func\tpygeodesy.frechet.Frechet-class.html#_func\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.frechet.Frechet._f1\tpygeodesy.frechet.Frechet-class.html#_f1\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.frechet.Frechet.points_\tpygeodesy.frechet.Frechet-class.html#points_\npygeodesy.named._Named.toStr\tpygeodesy.named._Named-class.html#toStr\npygeodesy.frechet.Frechet._datum\tpygeodesy.frechet.Frechet-class.html#_datum\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.named._Named.toRepr\tpygeodesy.named._Named-class.html#toRepr\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.frechet.Frechet._datum_setter\tpygeodesy.frechet.Frechet-class.html#_datum_setter\npygeodesy.frechet.Frechet._discrete\tpygeodesy.frechet.Frechet-class.html#_discrete\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.frechet.Frechet.distance\tpygeodesy.frechet.Frechet-class.html#distance\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.frechet.Frechet.kwds\tpygeodesy.frechet.Frechet-class.html#kwds\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.frechet.Frechet._n1\tpygeodesy.frechet.Frechet-class.html#_n1\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.frechet.FrechetVincentys.discrete\tpygeodesy.frechet.FrechetVincentys-class.html#discrete\npygeodesy.frechet.Frechet.adjust\tpygeodesy.frechet.Frechet-class.html#adjust\npygeodesy.frechet.Frechet._points2\tpygeodesy.frechet.Frechet-class.html#_points2\npygeodesy.named._Named.__repr__\tpygeodesy.named._Named-class.html#__repr__\npygeodesy.frechet.Frechet.points_fraction\tpygeodesy.frechet.Frechet-class.html#points_fraction\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.fstats.Fcook\tpygeodesy.fstats.Fcook-class.html\npygeodesy.fstats._FstatsNamed.__int__\tpygeodesy.fstats._FstatsNamed-class.html#__int__\npygeodesy.fstats._FstatsBase._M2\tpygeodesy.fstats._FstatsBase-class.html#_M2\npygeodesy.fstats._FstatsBase._M1\tpygeodesy.fstats._FstatsBase-class.html#_M1\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.fstats._FstatsNamed.__str__\tpygeodesy.fstats._FstatsNamed-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.fstats.Fcook.toFwelford\tpygeodesy.fstats.Fcook-class.html#toFwelford\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.fstats._FstatsNamed._n\tpygeodesy.fstats._FstatsNamed-class.html#_n\npygeodesy.fstats.Fcook.fadd\tpygeodesy.fstats.Fcook-class.html#fadd\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.fstats._FstatsBase._Ms\tpygeodesy.fstats._FstatsBase-class.html#_Ms\npygeodesy.named._Named.toStr\tpygeodesy.named._Named-class.html#toStr\npygeodesy.fstats._FstatsBase._Variance\tpygeodesy.fstats._FstatsBase-class.html#_Variance\npygeodesy.fstats.Fcook._Kurtosis\tpygeodesy.fstats.Fcook-class.html#_Kurtosis\npygeodesy.fstats.Fcook.fjb_\tpygeodesy.fstats.Fcook-class.html#fjb_\npygeodesy.fstats.Fcook.fskewness\tpygeodesy.fstats.Fcook-class.html#fskewness\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.fstats.Fcook._Median\tpygeodesy.fstats.Fcook-class.html#_Median\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.toRepr\tpygeodesy.named._Named-class.html#toRepr\npygeodesy.fstats._FstatsBase.fstdev_\tpygeodesy.fstats._FstatsBase-class.html#fstdev_\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.fstats._FstatsBase.fvariance\tpygeodesy.fstats._FstatsBase-class.html#fvariance\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.fstats._FstatsBase._copy\tpygeodesy.fstats._FstatsBase-class.html#_copy\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.fstats._FstatsBase._iadd_other\tpygeodesy.fstats._FstatsBase-class.html#_iadd_other\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.fstats._FstatsBase._Stdev\tpygeodesy.fstats._FstatsBase-class.html#_Stdev\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.__repr__\tpygeodesy.named._Named-class.html#__repr__\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.fstats.Fcook.fmedian\tpygeodesy.fstats.Fcook-class.html#fmedian\npygeodesy.fstats.Fcook.fkurtosis_\tpygeodesy.fstats.Fcook-class.html#fkurtosis_\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.fstats._FstatsBase.fadd_\tpygeodesy.fstats._FstatsBase-class.html#fadd_\npygeodesy.fstats.Fcook.fkurtosis\tpygeodesy.fstats.Fcook-class.html#fkurtosis\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.fstats._FstatsNamed.__float__\tpygeodesy.fstats._FstatsNamed-class.html#__float__\npygeodesy.fstats.Fcook.fskewness_\tpygeodesy.fstats.Fcook-class.html#fskewness_\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.fstats._FstatsNamed.__len__\tpygeodesy.fstats._FstatsNamed-class.html#__len__\npygeodesy.fstats._FstatsBase.fstdev\tpygeodesy.fstats._FstatsBase-class.html#fstdev\npygeodesy.fstats._FstatsBase.fmean_\tpygeodesy.fstats._FstatsBase-class.html#fmean_\npygeodesy.fstats.Fcook._JarqueBera\tpygeodesy.fstats.Fcook-class.html#_JarqueBera\npygeodesy.fstats._FstatsNamed.copy\tpygeodesy.fstats._FstatsNamed-class.html#copy\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.fstats.Fcook.__iadd__\tpygeodesy.fstats.Fcook-class.html#__iadd__\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.fstats._FstatsNamed.__radd__\tpygeodesy.fstats._FstatsNamed-class.html#__radd__\npygeodesy.fstats.Fcook._Skewness\tpygeodesy.fstats.Fcook-class.html#_Skewness\npygeodesy.fstats.Fcook.__init__\tpygeodesy.fstats.Fcook-class.html#__init__\npygeodesy.fstats.Fcook.fmedian_\tpygeodesy.fstats.Fcook-class.html#fmedian_\npygeodesy.fstats._FstatsBase._Mean\tpygeodesy.fstats._FstatsBase-class.html#_Mean\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.fstats._FstatsNamed.fcopy\tpygeodesy.fstats._FstatsNamed-class.html#fcopy\npygeodesy.fstats._FstatsNamed.__add__\tpygeodesy.fstats._FstatsNamed-class.html#__add__\npygeodesy.fstats._FstatsBase.fvariance_\tpygeodesy.fstats._FstatsBase-class.html#fvariance_\npygeodesy.fstats.Fcook.fjb\tpygeodesy.fstats.Fcook-class.html#fjb\npygeodesy.fstats._FstatsBase.fmean\tpygeodesy.fstats._FstatsBase-class.html#fmean\npygeodesy.fstats._FstatsNamed.__neg__\tpygeodesy.fstats._FstatsNamed-class.html#__neg__\npygeodesy.fstats.Flinear\tpygeodesy.fstats.Flinear-class.html\npygeodesy.fstats._FstatsNamed.__int__\tpygeodesy.fstats._FstatsNamed-class.html#__int__\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.fstats.Flinear.fadd_\tpygeodesy.fstats.Flinear-class.html#fadd_\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.fstats._FstatsNamed.__str__\tpygeodesy.fstats._FstatsNamed-class.html#__str__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.fstats._FstatsNamed.__radd__\tpygeodesy.fstats._FstatsNamed-class.html#__radd__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.fstats.Flinear._Sampled\tpygeodesy.fstats.Flinear-class.html#_Sampled\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.fstats.Flinear.fintercept\tpygeodesy.fstats.Flinear-class.html#fintercept\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.fstats.Flinear.__init__\tpygeodesy.fstats.Flinear-class.html#__init__\npygeodesy.fstats._FstatsNamed.__float__\tpygeodesy.fstats._FstatsNamed-class.html#__float__\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.fstats._FstatsNamed._n\tpygeodesy.fstats._FstatsNamed-class.html#_n\npygeodesy.fstats.Flinear._Slope\tpygeodesy.fstats.Flinear-class.html#_Slope\npygeodesy.fstats.Flinear.fadd\tpygeodesy.fstats.Flinear-class.html#fadd\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.fstats._FstatsNamed.__len__\tpygeodesy.fstats._FstatsNamed-class.html#__len__\npygeodesy.named._Named.__repr__\tpygeodesy.named._Named-class.html#__repr__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.fstats.Flinear._Intercept\tpygeodesy.fstats.Flinear-class.html#_Intercept\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named.toStr\tpygeodesy.named._Named-class.html#toStr\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.fstats._FstatsNamed.fcopy\tpygeodesy.fstats._FstatsNamed-class.html#fcopy\npygeodesy.fstats.Flinear._Correlation\tpygeodesy.fstats.Flinear-class.html#_Correlation\npygeodesy.named._Named.toRepr\tpygeodesy.named._Named-class.html#toRepr\npygeodesy.fstats._FstatsNamed.__add__\tpygeodesy.fstats._FstatsNamed-class.html#__add__\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.fstats._FstatsNamed.copy\tpygeodesy.fstats._FstatsNamed-class.html#copy\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.fstats.Flinear.fslope\tpygeodesy.fstats.Flinear-class.html#fslope\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.fstats.Flinear._copy\tpygeodesy.fstats.Flinear-class.html#_copy\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.fstats.Flinear.__iadd__\tpygeodesy.fstats.Flinear-class.html#__iadd__\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.fstats._FstatsNamed.__neg__\tpygeodesy.fstats._FstatsNamed-class.html#__neg__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.fstats.Flinear.y\tpygeodesy.fstats.Flinear-class.html#y\npygeodesy.fstats.Flinear.x\tpygeodesy.fstats.Flinear-class.html#x\npygeodesy.fstats.Flinear.fcorrelation\tpygeodesy.fstats.Flinear-class.html#fcorrelation\npygeodesy.fstats.Fwelford\tpygeodesy.fstats.Fwelford-class.html\npygeodesy.fstats._FstatsNamed.__int__\tpygeodesy.fstats._FstatsNamed-class.html#__int__\npygeodesy.fstats._FstatsBase._M2\tpygeodesy.fstats._FstatsBase-class.html#_M2\npygeodesy.fstats._FstatsBase._M1\tpygeodesy.fstats._FstatsBase-class.html#_M1\npygeodesy.fstats._FstatsBase.fadd_\tpygeodesy.fstats._FstatsBase-class.html#fadd_\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.fstats._FstatsNamed.__str__\tpygeodesy.fstats._FstatsNamed-class.html#__str__\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.fstats._FstatsNamed.__radd__\tpygeodesy.fstats._FstatsNamed-class.html#__radd__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.fstats._FstatsBase.fstdev_\tpygeodesy.fstats._FstatsBase-class.html#fstdev_\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.fstats.Fwelford.__init__\tpygeodesy.fstats.Fwelford-class.html#__init__\npygeodesy.fstats._FstatsNamed.__float__\tpygeodesy.fstats._FstatsNamed-class.html#__float__\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.fstats._FstatsBase.fvariance\tpygeodesy.fstats._FstatsBase-class.html#fvariance\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.fstats._FstatsNamed._n\tpygeodesy.fstats._FstatsNamed-class.html#_n\npygeodesy.fstats.Fwelford.fadd\tpygeodesy.fstats.Fwelford-class.html#fadd\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.fstats._FstatsNamed.__len__\tpygeodesy.fstats._FstatsNamed-class.html#__len__\npygeodesy.named._Named.__repr__\tpygeodesy.named._Named-class.html#__repr__\npygeodesy.fstats._FstatsBase._Ms\tpygeodesy.fstats._FstatsBase-class.html#_Ms\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.fstats._FstatsBase.fstdev\tpygeodesy.fstats._FstatsBase-class.html#fstdev\npygeodesy.fstats._FstatsBase.fmean_\tpygeodesy.fstats._FstatsBase-class.html#fmean_\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named.toStr\tpygeodesy.named._Named-class.html#toStr\npygeodesy.fstats._FstatsBase._Variance\tpygeodesy.fstats._FstatsBase-class.html#_Variance\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.fstats._FstatsNamed.fcopy\tpygeodesy.fstats._FstatsNamed-class.html#fcopy\npygeodesy.fstats._FstatsBase._copy\tpygeodesy.fstats._FstatsBase-class.html#_copy\npygeodesy.named._Named.toRepr\tpygeodesy.named._Named-class.html#toRepr\npygeodesy.fstats._FstatsNamed.__add__\tpygeodesy.fstats._FstatsNamed-class.html#__add__\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.fstats._FstatsNamed.copy\tpygeodesy.fstats._FstatsNamed-class.html#copy\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.fstats._FstatsBase.fvariance_\tpygeodesy.fstats._FstatsBase-class.html#fvariance_\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.fstats._FstatsBase._iadd_other\tpygeodesy.fstats._FstatsBase-class.html#_iadd_other\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.fstats._FstatsBase._Stdev\tpygeodesy.fstats._FstatsBase-class.html#_Stdev\npygeodesy.fstats.Fwelford.__iadd__\tpygeodesy.fstats.Fwelford-class.html#__iadd__\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.fstats._FstatsBase.fmean\tpygeodesy.fstats._FstatsBase-class.html#fmean\npygeodesy.fstats._FstatsBase._Mean\tpygeodesy.fstats._FstatsBase-class.html#_Mean\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.fstats._FstatsNamed.__neg__\tpygeodesy.fstats._FstatsNamed-class.html#__neg__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.fstats._FstatsBase\tpygeodesy.fstats._FstatsBase-class.html\npygeodesy.fstats._FstatsNamed.__int__\tpygeodesy.fstats._FstatsNamed-class.html#__int__\npygeodesy.fstats._FstatsBase._M2\tpygeodesy.fstats._FstatsBase-class.html#_M2\npygeodesy.fstats._FstatsBase._M1\tpygeodesy.fstats._FstatsBase-class.html#_M1\npygeodesy.fstats._FstatsBase.fadd_\tpygeodesy.fstats._FstatsBase-class.html#fadd_\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.fstats._FstatsNamed.__str__\tpygeodesy.fstats._FstatsNamed-class.html#__str__\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.fstats._FstatsNamed.__radd__\tpygeodesy.fstats._FstatsNamed-class.html#__radd__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.fstats._FstatsBase.fstdev_\tpygeodesy.fstats._FstatsBase-class.html#fstdev_\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.fstats._FstatsNamed.__float__\tpygeodesy.fstats._FstatsNamed-class.html#__float__\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.fstats._FstatsBase.fvariance\tpygeodesy.fstats._FstatsBase-class.html#fvariance\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.fstats._FstatsNamed._n\tpygeodesy.fstats._FstatsNamed-class.html#_n\npygeodesy.fstats._FstatsBase.fadd\tpygeodesy.fstats._FstatsBase-class.html#fadd\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.fstats._FstatsNamed.__len__\tpygeodesy.fstats._FstatsNamed-class.html#__len__\npygeodesy.named._Named.__repr__\tpygeodesy.named._Named-class.html#__repr__\npygeodesy.fstats._FstatsBase._Ms\tpygeodesy.fstats._FstatsBase-class.html#_Ms\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.fstats._FstatsBase.fstdev\tpygeodesy.fstats._FstatsBase-class.html#fstdev\npygeodesy.fstats._FstatsBase.fmean_\tpygeodesy.fstats._FstatsBase-class.html#fmean_\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named.toStr\tpygeodesy.named._Named-class.html#toStr\npygeodesy.fstats._FstatsBase._Variance\tpygeodesy.fstats._FstatsBase-class.html#_Variance\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.fstats._FstatsNamed.fcopy\tpygeodesy.fstats._FstatsNamed-class.html#fcopy\npygeodesy.fstats._FstatsBase._copy\tpygeodesy.fstats._FstatsBase-class.html#_copy\npygeodesy.named._Named.toRepr\tpygeodesy.named._Named-class.html#toRepr\npygeodesy.fstats._FstatsNamed.__add__\tpygeodesy.fstats._FstatsNamed-class.html#__add__\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.fstats._FstatsNamed.copy\tpygeodesy.fstats._FstatsNamed-class.html#copy\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.fstats._FstatsBase.fvariance_\tpygeodesy.fstats._FstatsBase-class.html#fvariance_\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.fstats._FstatsBase._iadd_other\tpygeodesy.fstats._FstatsBase-class.html#_iadd_other\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.fstats._FstatsBase._Stdev\tpygeodesy.fstats._FstatsBase-class.html#_Stdev\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.fstats._FstatsBase.fmean\tpygeodesy.fstats._FstatsBase-class.html#fmean\npygeodesy.fstats._FstatsBase._Mean\tpygeodesy.fstats._FstatsBase-class.html#_Mean\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.fstats._FstatsNamed.__neg__\tpygeodesy.fstats._FstatsNamed-class.html#__neg__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.fstats._FstatsNamed\tpygeodesy.fstats._FstatsNamed-class.html\npygeodesy.fstats._FstatsNamed.__int__\tpygeodesy.fstats._FstatsNamed-class.html#__int__\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.fstats._FstatsNamed.__str__\tpygeodesy.fstats._FstatsNamed-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.fstats._FstatsNamed.__radd__\tpygeodesy.fstats._FstatsNamed-class.html#__radd__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.fstats._FstatsNamed._n\tpygeodesy.fstats._FstatsNamed-class.html#_n\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.fstats._FstatsNamed.__float__\tpygeodesy.fstats._FstatsNamed-class.html#__float__\npygeodesy.fstats._FstatsNamed.__len__\tpygeodesy.fstats._FstatsNamed-class.html#__len__\npygeodesy.named._Named.__repr__\tpygeodesy.named._Named-class.html#__repr__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named.toStr\tpygeodesy.named._Named-class.html#toStr\npygeodesy.fstats._FstatsNamed.fcopy\tpygeodesy.fstats._FstatsNamed-class.html#fcopy\npygeodesy.named._Named.toRepr\tpygeodesy.named._Named-class.html#toRepr\npygeodesy.fstats._FstatsNamed.__add__\tpygeodesy.fstats._FstatsNamed-class.html#__add__\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.fstats._FstatsNamed.copy\tpygeodesy.fstats._FstatsNamed-class.html#copy\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.fstats._FstatsNamed.__neg__\tpygeodesy.fstats._FstatsNamed-class.html#__neg__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.fsums.DivMod2Tuple\tpygeodesy.fsums.DivMod2Tuple-class.html\npygeodesy.named._NamedTuple.toRepr\tpygeodesy.named._NamedTuple-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._NamedTuple.toUnits\tpygeodesy.named._NamedTuple-class.html#toUnits\npygeodesy.named._NamedTuple._validate\tpygeodesy.named._NamedTuple-class.html#_validate\npygeodesy.named._NamedTuple.__str__\tpygeodesy.named._NamedTuple-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._NamedTuple._DOT_\tpygeodesy.named._NamedTuple-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._NamedTuple.reUnit\tpygeodesy.named._NamedTuple-class.html#reUnit\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.fsums.DivMod2Tuple._Names_\tpygeodesy.fsums.DivMod2Tuple-class.html#_Names_\npygeodesy.named._NamedTuple.__setattr__\tpygeodesy.named._NamedTuple-class.html#__setattr__\npygeodesy.named._NamedTuple.__new__\tpygeodesy.named._NamedTuple-class.html#__new__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._NamedTuple._validated\tpygeodesy.named._NamedTuple-class.html#_validated\npygeodesy.named._NamedTuple.__getattr__\tpygeodesy.named._NamedTuple-class.html#__getattr__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._NamedTuple._xtend\tpygeodesy.named._NamedTuple-class.html#_xtend\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._NamedTuple.dup\tpygeodesy.named._NamedTuple-class.html#dup\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedTuple.toStr\tpygeodesy.named._NamedTuple-class.html#toStr\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedTuple.units\tpygeodesy.named._NamedTuple-class.html#units\npygeodesy.named._NamedTuple.iterunits\tpygeodesy.named._NamedTuple-class.html#iterunits\npygeodesy.named._NamedTuple.iteritems\tpygeodesy.named._NamedTuple-class.html#iteritems\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._NamedTuple.items\tpygeodesy.named._NamedTuple-class.html#items\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedTuple.__delattr__\tpygeodesy.named._NamedTuple-class.html#__delattr__\npygeodesy.named._NamedTuple.__repr__\tpygeodesy.named._NamedTuple-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._NamedTuple.__hash__\tpygeodesy.named._NamedTuple-class.html#__hash__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.fsums.DivMod2Tuple._Units_\tpygeodesy.fsums.DivMod2Tuple-class.html#_Units_\npygeodesy.fsums.Fsum\tpygeodesy.fsums.Fsum-class.html\npygeodesy.fsums.Fsum.__int__\tpygeodesy.fsums.Fsum-class.html#__int__\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.fsums.Fsum._facc_dot\tpygeodesy.fsums.Fsum-class.html#_facc_dot\npygeodesy.fsums.Fsum.fsum2_\tpygeodesy.fsums.Fsum-class.html#fsum2_\npygeodesy.fsums.Fsum.__str__\tpygeodesy.fsums.Fsum-class.html#__str__\npygeodesy.fsums.Fsum.__gt__\tpygeodesy.fsums.Fsum-class.html#__gt__\npygeodesy.fsums.Fsum.fint\tpygeodesy.fsums.Fsum-class.html#fint\npygeodesy.fsums.Fsum.__imatmul__\tpygeodesy.fsums.Fsum-class.html#__imatmul__\npygeodesy.fsums.Fsum.__bool__\tpygeodesy.fsums.Fsum-class.html#__bool__\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.fsums.Fsum.__rdiv__\tpygeodesy.fsums.Fsum-class.html#__rdiv__\npygeodesy.fsums.Fsum.__rmul__\tpygeodesy.fsums.Fsum-class.html#__rmul__\npygeodesy.fsums.Fsum.__lt__\tpygeodesy.fsums.Fsum-class.html#__lt__\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.fsums.Fsum._Fsum_as\tpygeodesy.fsums.Fsum-class.html#_Fsum_as\npygeodesy.fsums.Fsum.fover\tpygeodesy.fsums.Fsum-class.html#fover\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.fsums.Fsum.__cmp__\tpygeodesy.fsums.Fsum-class.html#__cmp__\npygeodesy.fsums.Fsum._n\tpygeodesy.fsums.Fsum-class.html#_n\npygeodesy.fsums.Fsum.__rfloordiv__\tpygeodesy.fsums.Fsum-class.html#__rfloordiv__\npygeodesy.fsums.Fsum._ps_acc\tpygeodesy.fsums.Fsum-class.html#_ps_acc\npygeodesy.fsums.Fsum.is_scalar\tpygeodesy.fsums.Fsum-class.html#is_scalar\npygeodesy.fsums.Fsum.fadd\tpygeodesy.fsums.Fsum-class.html#fadd\npygeodesy.fsums.Fsum.__call__\tpygeodesy.fsums.Fsum-class.html#__call__\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.fsums.Fsum._mul_Fsum\tpygeodesy.fsums.Fsum-class.html#_mul_Fsum\npygeodesy.fsums.Fsum.real\tpygeodesy.fsums.Fsum-class.html#real\npygeodesy.fsums.Fsum.toStr\tpygeodesy.fsums.Fsum-class.html#toStr\npygeodesy.fsums.Fsum.f2product\tpygeodesy.fsums.Fsum-class.html#f2product\npygeodesy.fsums.Fsum.ceil\tpygeodesy.fsums.Fsum-class.html#ceil\npygeodesy.fsums.Fsum.__pow__\tpygeodesy.fsums.Fsum-class.html#__pow__\npygeodesy.fsums.Fsum._1_Over\tpygeodesy.fsums.Fsum-class.html#_1_Over\npygeodesy.fsums.Fsum.Fsum_\tpygeodesy.fsums.Fsum-class.html#Fsum_\npygeodesy.fsums.Fsum.Fsumf_\tpygeodesy.fsums.Fsum-class.html#Fsumf_\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.fsums.Fsum._isfine\tpygeodesy.fsums.Fsum-class.html#_isfine\npygeodesy.fsums.Fsum.int_float\tpygeodesy.fsums.Fsum-class.html#int_float\npygeodesy.fsums.Fsum._pow_2_3\tpygeodesy.fsums.Fsum-class.html#_pow_2_3\npygeodesy.fsums.Fsum.__nonzero__\tpygeodesy.fsums.Fsum-class.html#__nonzero__\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.fsums.Fsum._nfprs2\tpygeodesy.fsums.Fsum-class.html#_nfprs2\npygeodesy.fsums.Fsum.signOf\tpygeodesy.fsums.Fsum-class.html#signOf\npygeodesy.fsums.Fsum.fint2\tpygeodesy.fsums.Fsum-class.html#fint2\npygeodesy.fsums.Fsum._mul_scalar\tpygeodesy.fsums.Fsum-class.html#_mul_scalar\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.fsums.Fsum._floordiv\tpygeodesy.fsums.Fsum-class.html#_floordiv\npygeodesy.fsums.Fsum._facc_args\tpygeodesy.fsums.Fsum-class.html#_facc_args\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.fsums.Fsum.__long__\tpygeodesy.fsums.Fsum-class.html#__long__\npygeodesy.fsums.Fsum._pow_0_1\tpygeodesy.fsums.Fsum-class.html#_pow_0_1\npygeodesy.fsums.Fsum.cmp\tpygeodesy.fsums.Fsum-class.html#cmp\npygeodesy.fsums.Fsum.toRepr\tpygeodesy.fsums.Fsum-class.html#toRepr\npygeodesy.fsums.Fsum._RESIDUAL\tpygeodesy.fsums.Fsum-class.html#_RESIDUAL\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.fsums.Fsum._truediv\tpygeodesy.fsums.Fsum-class.html#_truediv\npygeodesy.fsums.Fsum._ps_1sum\tpygeodesy.fsums.Fsum-class.html#_ps_1sum\npygeodesy.fsums.Fsum._pow\tpygeodesy.fsums.Fsum-class.html#_pow\npygeodesy.fsums.Fsum._fset\tpygeodesy.fsums.Fsum-class.html#_fset\npygeodesy.fsums.Fsum.__truediv__\tpygeodesy.fsums.Fsum-class.html#__truediv__\npygeodesy.fsums.Fsum._fhorner\tpygeodesy.fsums.Fsum-class.html#_fhorner\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.fsums.Fsum.__ceil__\tpygeodesy.fsums.Fsum-class.html#__ceil__\npygeodesy.fsums.Fsum.__rmod__\tpygeodesy.fsums.Fsum-class.html#__rmod__\npygeodesy.fsums.Fsum._ps_mul\tpygeodesy.fsums.Fsum-class.html#_ps_mul\npygeodesy.fsums.Fsum._facc_power\tpygeodesy.fsums.Fsum-class.html#_facc_power\npygeodesy.fsums.Fsum.as_integer_ratio\tpygeodesy.fsums.Fsum-class.html#as_integer_ratio\npygeodesy.fsums.Fsum.partials\tpygeodesy.fsums.Fsum-class.html#partials\npygeodesy.fsums.Fsum.is_math_fsum\tpygeodesy.fsums.Fsum-class.html#is_math_fsum\npygeodesy.fsums.Fsum.fsum_\tpygeodesy.fsums.Fsum-class.html#fsum_\npygeodesy.fsums.Fsum.as_iscalar\tpygeodesy.fsums.Fsum-class.html#as_iscalar\npygeodesy.fsums.Fsum.__ne__\tpygeodesy.fsums.Fsum-class.html#__ne__\npygeodesy.fsums.Fsum._pow_int\tpygeodesy.fsums.Fsum-class.html#_pow_int\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.fsums.Fsum.__ifloordiv__\tpygeodesy.fsums.Fsum-class.html#__ifloordiv__\npygeodesy.fsums.Fsum._ErrorXs\tpygeodesy.fsums.Fsum-class.html#_ErrorXs\npygeodesy.fsums.Fsum._fmul\tpygeodesy.fsums.Fsum-class.html#_fmul\npygeodesy.fsums.Fsum.residual\tpygeodesy.fsums.Fsum-class.html#residual\npygeodesy.fsums.Fsum.rdiv\tpygeodesy.fsums.Fsum-class.html#rdiv\npygeodesy.fsums.Fsum.__hash__\tpygeodesy.fsums.Fsum-class.html#__hash__\npygeodesy.fsums.Fsum._f2product\tpygeodesy.fsums.Fsum-class.html#_f2product\npygeodesy.fsums.Fsum._mul_reduce\tpygeodesy.fsums.Fsum-class.html#_mul_reduce\npygeodesy.fsums.Fsum._fprs2\tpygeodesy.fsums.Fsum-class.html#_fprs2\npygeodesy.fsums.Fsum.__divmod__\tpygeodesy.fsums.Fsum-class.html#__divmod__\npygeodesy.fsums.Fsum._ErrorX\tpygeodesy.fsums.Fsum-class.html#_ErrorX\npygeodesy.fsums.Fsum._neg\tpygeodesy.fsums.Fsum-class.html#_neg\npygeodesy.fsums.Fsum.__rmatmul__\tpygeodesy.fsums.Fsum-class.html#__rmatmul__\npygeodesy.fsums.Fsum.fsum2\tpygeodesy.fsums.Fsum-class.html#fsum2\npygeodesy.fsums.Fsum._facc\tpygeodesy.fsums.Fsum-class.html#_facc\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.fsums.Fsum._pow_Fsum\tpygeodesy.fsums.Fsum-class.html#_pow_Fsum\npygeodesy.fsums.Fsum.__imul__\tpygeodesy.fsums.Fsum-class.html#__imul__\npygeodesy.fsums.Fsum.__trunc__\tpygeodesy.fsums.Fsum-class.html#__trunc__\npygeodesy.fsums.Fsum.fma_\tpygeodesy.fsums.Fsum-class.html#fma_\npygeodesy.fsums.Fsum.__mul__\tpygeodesy.fsums.Fsum-class.html#__mul__\npygeodesy.fsums.Fsum._fpow\tpygeodesy.fsums.Fsum-class.html#_fpow\npygeodesy.fsums.Fsum.__matmul__\tpygeodesy.fsums.Fsum-class.html#__matmul__\npygeodesy.fsums.Fsum._fsub\tpygeodesy.fsums.Fsum-class.html#_fsub\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.fsums.Fsum.fadd_\tpygeodesy.fsums.Fsum-class.html#fadd_\npygeodesy.fsums.Fsum.fsub\tpygeodesy.fsums.Fsum-class.html#fsub\npygeodesy.fsums.Fsum.fset_\tpygeodesy.fsums.Fsum-class.html#fset_\npygeodesy.fsums.Fsum.pow\tpygeodesy.fsums.Fsum-class.html#pow\npygeodesy.fsums.Fsum.fsum\tpygeodesy.fsums.Fsum-class.html#fsum\npygeodesy.fsums.Fsum.fmul\tpygeodesy.fsums.Fsum-class.html#fmul\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.fsums.Fsum._update\tpygeodesy.fsums.Fsum-class.html#_update\npygeodesy.fsums.Fsum.__rsub__\tpygeodesy.fsums.Fsum-class.html#__rsub__\npygeodesy.fsums.Fsum.divmod\tpygeodesy.fsums.Fsum-class.html#divmod\npygeodesy.fsums.Fsum.float_int\tpygeodesy.fsums.Fsum-class.html#float_int\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.fsums.Fsum.is_integer\tpygeodesy.fsums.Fsum-class.html#is_integer\npygeodesy.fsums.Fsum._copyd\tpygeodesy.fsums.Fsum-class.html#_copyd\npygeodesy.fsums.Fsum.__float__\tpygeodesy.fsums.Fsum-class.html#__float__\npygeodesy.fsums.Fsum.__rpow__\tpygeodesy.fsums.Fsum-class.html#__rpow__\npygeodesy.fsums.Fsum._fint2\tpygeodesy.fsums.Fsum-class.html#_fint2\npygeodesy.fsums.Fsum._fma\tpygeodesy.fsums.Fsum-class.html#_fma\npygeodesy.fsums.Fsum.fsum2f_\tpygeodesy.fsums.Fsum-class.html#fsum2f_\npygeodesy.fsums.Fsum._facc_xsum\tpygeodesy.fsums.Fsum-class.html#_facc_xsum\npygeodesy.fsums.Fsum.__abs__\tpygeodesy.fsums.Fsum-class.html#__abs__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.fsums.Fsum._cmp_0\tpygeodesy.fsums.Fsum-class.html#_cmp_0\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.fsums.Fsum.__itruediv__\tpygeodesy.fsums.Fsum-class.html#__itruediv__\npygeodesy.fsums.Fsum.fma\tpygeodesy.fsums.Fsum-class.html#fma\npygeodesy.fsums.Fsum.__isub__\tpygeodesy.fsums.Fsum-class.html#__isub__\npygeodesy.fsums.Fsum.__rdivmod__\tpygeodesy.fsums.Fsum-class.html#__rdivmod__\npygeodesy.fsums.Fsum._Error\tpygeodesy.fsums.Fsum-class.html#_Error\npygeodesy.fsums.Fsum.__invert__\tpygeodesy.fsums.Fsum-class.html#__invert__\npygeodesy.fsums.Fsum.is_math_fma\tpygeodesy.fsums.Fsum-class.html#is_math_fma\npygeodesy.fsums.Fsum.fpow\tpygeodesy.fsums.Fsum-class.html#fpow\npygeodesy.fsums.Fsum._facc_scalar\tpygeodesy.fsums.Fsum-class.html#_facc_scalar\npygeodesy.fsums.Fsum.imag\tpygeodesy.fsums.Fsum-class.html#imag\npygeodesy.fsums.Fsum._ps_neg\tpygeodesy.fsums.Fsum-class.html#_ps_neg\npygeodesy.fsums.Fsum._nonfiniteX\tpygeodesy.fsums.Fsum-class.html#_nonfiniteX\npygeodesy.fsums.Fsum.__iter__\tpygeodesy.fsums.Fsum-class.html#__iter__\npygeodesy.fsums.Fsum.Fsum2Tuple_\tpygeodesy.fsums.Fsum-class.html#Fsum2Tuple_\npygeodesy.fsums.Fsum._ftruediv\tpygeodesy.fsums.Fsum-class.html#_ftruediv\npygeodesy.fsums.Fsum.fsub_\tpygeodesy.fsums.Fsum-class.html#fsub_\npygeodesy.fsums.Fsum.copy\tpygeodesy.fsums.Fsum-class.html#copy\npygeodesy.fsums.Fsum.__eq__\tpygeodesy.fsums.Fsum-class.html#__eq__\npygeodesy.fsums.Fsum._facc_scalar_\tpygeodesy.fsums.Fsum-class.html#_facc_scalar_\npygeodesy.named._Named.__repr__\tpygeodesy.named._Named-class.html#__repr__\npygeodesy.fsums.Fsum.__round__\tpygeodesy.fsums.Fsum-class.html#__round__\npygeodesy.fsums.Fsum.__mod__\tpygeodesy.fsums.Fsum-class.html#__mod__\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.fsums.Fsum.__iadd__\tpygeodesy.fsums.Fsum-class.html#__iadd__\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.fsums.Fsum.fdiv\tpygeodesy.fsums.Fsum-class.html#fdiv\npygeodesy.fsums.Fsum.__len__\tpygeodesy.fsums.Fsum-class.html#__len__\npygeodesy.fsums.Fsum.__floordiv__\tpygeodesy.fsums.Fsum-class.html#__floordiv__\npygeodesy.fsums.Fsum._facc_neg\tpygeodesy.fsums.Fsum-class.html#_facc_neg\npygeodesy.fsums.Fsum.__sub__\tpygeodesy.fsums.Fsum-class.html#__sub__\npygeodesy.fsums.Fsum.root\tpygeodesy.fsums.Fsum-class.html#root\npygeodesy.fsums.Fsum.__ge__\tpygeodesy.fsums.Fsum-class.html#__ge__\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.fsums.Fsum.__rtruediv__\tpygeodesy.fsums.Fsum-class.html#__rtruediv__\npygeodesy.fsums.Fsum.fdivmod\tpygeodesy.fsums.Fsum-class.html#fdivmod\npygeodesy.fsums.Fsum._fdivmod2\tpygeodesy.fsums.Fsum-class.html#_fdivmod2\npygeodesy.fsums.Fsum._finite\tpygeodesy.fsums.Fsum-class.html#_finite\npygeodesy.fsums.Fsum.__radd__\tpygeodesy.fsums.Fsum-class.html#__radd__\npygeodesy.fsums.Fsum.__floor__\tpygeodesy.fsums.Fsum-class.html#__floor__\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.fsums.Fsum.__init__\tpygeodesy.fsums.Fsum-class.html#__init__\npygeodesy.fsums.Fsum._f2mul\tpygeodesy.fsums.Fsum-class.html#_f2mul\npygeodesy.fsums.Fsum.__imod__\tpygeodesy.fsums.Fsum-class.html#__imod__\npygeodesy.fsums.Fsum._fprs\tpygeodesy.fsums.Fsum-class.html#_fprs\npygeodesy.fsums.Fsum.floor\tpygeodesy.fsums.Fsum-class.html#floor\npygeodesy.fsums.Fsum._optionals\tpygeodesy.fsums.Fsum-class.html#_optionals\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.fsums.Fsum._fadd\tpygeodesy.fsums.Fsum-class.html#_fadd\npygeodesy.fsums.Fsum.__pos__\tpygeodesy.fsums.Fsum-class.html#__pos__\npygeodesy.fsums.Fsum._raiser\tpygeodesy.fsums.Fsum-class.html#_raiser\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.fsums.Fsum.f2mul\tpygeodesy.fsums.Fsum-class.html#f2mul\npygeodesy.fsums.Fsum._scalar\tpygeodesy.fsums.Fsum-class.html#_scalar\npygeodesy.fsums.Fsum.is_exact\tpygeodesy.fsums.Fsum-class.html#is_exact\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.fsums.Fsum.fsumf_\tpygeodesy.fsums.Fsum-class.html#fsumf_\npygeodesy.fsums.Fsum.__idiv__\tpygeodesy.fsums.Fsum-class.html#__idiv__\npygeodesy.fsums.Fsum.is_finite\tpygeodesy.fsums.Fsum-class.html#is_finite\npygeodesy.fsums.Fsum.RESIDUAL\tpygeodesy.fsums.Fsum-class.html#RESIDUAL\npygeodesy.fsums.Fsum.fcopy\tpygeodesy.fsums.Fsum-class.html#fcopy\npygeodesy.fsums.Fsum.__add__\tpygeodesy.fsums.Fsum-class.html#__add__\npygeodesy.fsums.Fsum.nonfinitesOK\tpygeodesy.fsums.Fsum-class.html#nonfinitesOK\npygeodesy.fsums.Fsum._ps_other\tpygeodesy.fsums.Fsum-class.html#_ps_other\npygeodesy.fsums.Fsum._rcopyd\tpygeodesy.fsums.Fsum-class.html#_rcopyd\npygeodesy.fsums.Fsum.nonfinites\tpygeodesy.fsums.Fsum-class.html#nonfinites\npygeodesy.fsums.Fsum._pow_scalar\tpygeodesy.fsums.Fsum-class.html#_pow_scalar\npygeodesy.fsums.Fsum._ResidualError\tpygeodesy.fsums.Fsum-class.html#_ResidualError\npygeodesy.fsums.Fsum._Fsum\tpygeodesy.fsums.Fsum-class.html#_Fsum\npygeodesy.fsums.Fsum._fsum2\tpygeodesy.fsums.Fsum-class.html#_fsum2\npygeodesy.fsums.Fsum.__ipow__\tpygeodesy.fsums.Fsum-class.html#__ipow__\npygeodesy.fsums.Fsum.__div__\tpygeodesy.fsums.Fsum-class.html#__div__\npygeodesy.fsums.Fsum.__neg__\tpygeodesy.fsums.Fsum-class.html#__neg__\npygeodesy.fsums.Fsum.f2mul_\tpygeodesy.fsums.Fsum-class.html#f2mul_\npygeodesy.fsums.Fsum.__le__\tpygeodesy.fsums.Fsum-class.html#__le__\npygeodesy.fsums.Fsum2Tuple\tpygeodesy.fsums.Fsum2Tuple-class.html\npygeodesy.fsums.Fsum2Tuple.__int__\tpygeodesy.fsums.Fsum2Tuple-class.html#__int__\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedTuple._validate\tpygeodesy.named._NamedTuple-class.html#_validate\npygeodesy.named._NamedTuple.__str__\tpygeodesy.named._NamedTuple-class.html#__str__\npygeodesy.named._NamedTuple.iteritems\tpygeodesy.named._NamedTuple-class.html#iteritems\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.fsums.Fsum2Tuple.__lt__\tpygeodesy.fsums.Fsum2Tuple-class.html#__lt__\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.fsums.Fsum2Tuple.__pos__\tpygeodesy.fsums.Fsum2Tuple-class.html#__pos__\npygeodesy.fsums.Fsum2Tuple._validated\tpygeodesy.fsums.Fsum2Tuple-class.html#_validated\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.fsums.Fsum2Tuple._n\tpygeodesy.fsums.Fsum2Tuple-class.html#_n\npygeodesy.named._NamedTuple._xtend\tpygeodesy.named._NamedTuple-class.html#_xtend\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.fsums.Fsum2Tuple.toStr\tpygeodesy.fsums.Fsum2Tuple-class.html#toStr\npygeodesy.fsums.Fsum2Tuple.Fsum_\tpygeodesy.fsums.Fsum2Tuple-class.html#Fsum_\npygeodesy.fsums.Fsum2Tuple.__bool__\tpygeodesy.fsums.Fsum2Tuple-class.html#__bool__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.fsums.Fsum2Tuple.__nonzero__\tpygeodesy.fsums.Fsum2Tuple-class.html#__nonzero__\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.fsums.Fsum2Tuple.signOf\tpygeodesy.fsums.Fsum2Tuple-class.html#signOf\npygeodesy.fsums.Fsum2Tuple._mul_scalar\tpygeodesy.fsums.Fsum2Tuple-class.html#_mul_scalar\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.fsums.Fsum2Tuple._Units_\tpygeodesy.fsums.Fsum2Tuple-class.html#_Units_\npygeodesy.named._NamedTuple.toRepr\tpygeodesy.named._NamedTuple-class.html#toRepr\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.fsums.Fsum2Tuple._Names_\tpygeodesy.fsums.Fsum2Tuple-class.html#_Names_\npygeodesy.named._NamedTuple.__setattr__\tpygeodesy.named._NamedTuple-class.html#__setattr__\npygeodesy.named._NamedTuple.__getattr__\tpygeodesy.named._NamedTuple-class.html#__getattr__\npygeodesy.fsums.Fsum2Tuple.as_integer_ratio\tpygeodesy.fsums.Fsum2Tuple-class.html#as_integer_ratio\npygeodesy.fsums.Fsum2Tuple.__ne__\tpygeodesy.fsums.Fsum2Tuple-class.html#__ne__\npygeodesy.fsums.Fsum2Tuple._fprs2\tpygeodesy.fsums.Fsum2Tuple-class.html#_fprs2\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._NamedTuple.items\tpygeodesy.named._NamedTuple-class.html#items\npygeodesy.fsums.Fsum2Tuple.__gt__\tpygeodesy.fsums.Fsum2Tuple-class.html#__gt__\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._NamedTuple.__delattr__\tpygeodesy.named._NamedTuple-class.html#__delattr__\npygeodesy.named._NamedTuple.__repr__\tpygeodesy.named._NamedTuple-class.html#__repr__\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._NamedTuple.toUnits\tpygeodesy.named._NamedTuple-class.html#toUnits\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._NamedTuple._DOT_\tpygeodesy.named._NamedTuple-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.fsums.Fsum2Tuple.is_integer\tpygeodesy.fsums.Fsum2Tuple-class.html#is_integer\npygeodesy.fsums.Fsum2Tuple.__float__\tpygeodesy.fsums.Fsum2Tuple-class.html#__float__\npygeodesy.fsums.Fsum2Tuple._fint2\tpygeodesy.fsums.Fsum2Tuple-class.html#_fint2\npygeodesy.fsums.Fsum2Tuple.__abs__\tpygeodesy.fsums.Fsum2Tuple-class.html#__abs__\npygeodesy.named._NamedTuple.dup\tpygeodesy.named._NamedTuple-class.html#dup\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.fsums.Fsum2Tuple._ps_neg\tpygeodesy.fsums.Fsum2Tuple-class.html#_ps_neg\npygeodesy.fsums.Fsum2Tuple._Fsum\tpygeodesy.fsums.Fsum2Tuple-class.html#_Fsum\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.fsums.Fsum2Tuple.__eq__\tpygeodesy.fsums.Fsum2Tuple-class.html#__eq__\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.fsums.Fsum2Tuple.__le__\tpygeodesy.fsums.Fsum2Tuple-class.html#__le__\npygeodesy.named._NamedTuple.__hash__\tpygeodesy.named._NamedTuple-class.html#__hash__\npygeodesy.fsums.Fsum2Tuple.__ge__\tpygeodesy.fsums.Fsum2Tuple-class.html#__ge__\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._NamedTuple.reUnit\tpygeodesy.named._NamedTuple-class.html#reUnit\npygeodesy.named._NamedTuple.__new__\tpygeodesy.named._NamedTuple-class.html#__new__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.fsums.Fsum2Tuple._ps\tpygeodesy.fsums.Fsum2Tuple-class.html#_ps\npygeodesy.named._NamedTuple.units\tpygeodesy.named._NamedTuple-class.html#units\npygeodesy.fsums.Fsum2Tuple._other_op\tpygeodesy.fsums.Fsum2Tuple-class.html#_other_op\npygeodesy.fsums.Fsum2Tuple.is_exact\tpygeodesy.fsums.Fsum2Tuple-class.html#is_exact\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.fsums.Fsum2Tuple.is_finite\tpygeodesy.fsums.Fsum2Tuple-class.html#is_finite\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedTuple.iterunits\tpygeodesy.named._NamedTuple-class.html#iterunits\npygeodesy.fsums.Fsum2Tuple.__neg__\tpygeodesy.fsums.Fsum2Tuple-class.html#__neg__\npygeodesy.fsums.ResidualError\tpygeodesy.fsums.ResidualError-class.html\npygeodesy.gars.GARSError\tpygeodesy.gars.GARSError-class.html\npygeodesy.gars.Garef\tpygeodesy.gars.Garef-class.html\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.unitsBase.Str.__str__\tpygeodesy.unitsBase.Str-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.gars.Garef.toLatLon\tpygeodesy.gars.Garef-class.html#toLatLon\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.unitsBase._NamedUnit._units\tpygeodesy.unitsBase._NamedUnit-class.html#_units\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.gars.Garef._decoded3\tpygeodesy.gars.Garef-class.html#_decoded3\npygeodesy.unitsBase.Str.__call__\tpygeodesy.unitsBase.Str-class.html#__call__\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.unitsBase.Str.toStr\tpygeodesy.unitsBase.Str-class.html#toStr\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.unitsBase.Str.join_\tpygeodesy.unitsBase.Str-class.html#join_\npygeodesy.unitsBase._NamedUnit._arg_name_arg2\tpygeodesy.unitsBase._NamedUnit-class.html#_arg_name_arg2\npygeodesy.unitsBase.Str.toRepr\tpygeodesy.unitsBase.Str-class.html#toRepr\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.gars.Garef.latlon\tpygeodesy.gars.Garef-class.html#latlon\npygeodesy.unitsBase._NamedUnit._toRepr\tpygeodesy.unitsBase._NamedUnit-class.html#_toRepr\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.unitsBase._NamedUnit._std_repr\tpygeodesy.unitsBase._NamedUnit-class.html#_std_repr\npygeodesy.unitsBase._NamedUnit._Error\tpygeodesy.unitsBase._NamedUnit-class.html#_Error\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.gars.Garef.precision\tpygeodesy.gars.Garef-class.html#precision\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.gars.Garef.decoded3\tpygeodesy.gars.Garef-class.html#decoded3\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.unitsBase._NamedUnit.std_repr\tpygeodesy.unitsBase._NamedUnit-class.html#std_repr\npygeodesy.gars.Garef.__new__\tpygeodesy.gars.Garef-class.html#__new__\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.unitsBase._NamedUnit.units\tpygeodesy.unitsBase._NamedUnit-class.html#units\npygeodesy.unitsBase.Str.__repr__\tpygeodesy.unitsBase.Str-class.html#__repr__\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.geod3solve.Geod3Solve8Tuple\tpygeodesy.geod3solve.Geod3Solve8Tuple-class.html\npygeodesy.named._NamedTuple.toRepr\tpygeodesy.named._NamedTuple-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._NamedTuple.toUnits\tpygeodesy.named._NamedTuple-class.html#toUnits\npygeodesy.named._NamedTuple._validate\tpygeodesy.named._NamedTuple-class.html#_validate\npygeodesy.named._NamedTuple.__str__\tpygeodesy.named._NamedTuple-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._NamedTuple._DOT_\tpygeodesy.named._NamedTuple-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._NamedTuple.reUnit\tpygeodesy.named._NamedTuple-class.html#reUnit\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.geod3solve.Geod3Solve8Tuple._Names_\tpygeodesy.geod3solve.Geod3Solve8Tuple-class.html#_Names_\npygeodesy.named._NamedTuple.__setattr__\tpygeodesy.named._NamedTuple-class.html#__setattr__\npygeodesy.named._NamedTuple.__new__\tpygeodesy.named._NamedTuple-class.html#__new__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._NamedTuple._validated\tpygeodesy.named._NamedTuple-class.html#_validated\npygeodesy.named._NamedTuple.__getattr__\tpygeodesy.named._NamedTuple-class.html#__getattr__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._NamedTuple._xtend\tpygeodesy.named._NamedTuple-class.html#_xtend\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._NamedTuple.units\tpygeodesy.named._NamedTuple-class.html#units\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedTuple.toStr\tpygeodesy.named._NamedTuple-class.html#toStr\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedTuple.dup\tpygeodesy.named._NamedTuple-class.html#dup\npygeodesy.named._NamedTuple.iterunits\tpygeodesy.named._NamedTuple-class.html#iterunits\npygeodesy.named._NamedTuple.iteritems\tpygeodesy.named._NamedTuple-class.html#iteritems\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._NamedTuple.items\tpygeodesy.named._NamedTuple-class.html#items\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedTuple.__delattr__\tpygeodesy.named._NamedTuple-class.html#__delattr__\npygeodesy.named._NamedTuple.__repr__\tpygeodesy.named._NamedTuple-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._NamedTuple.__hash__\tpygeodesy.named._NamedTuple-class.html#__hash__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.geod3solve.Geod3Solve8Tuple._Units_\tpygeodesy.geod3solve.Geod3Solve8Tuple-class.html#_Units_\npygeodesy.geod3solve.Geodesic3Error\tpygeodesy.geod3solve.Geodesic3Error-class.html\npygeodesy.geod3solve.Geodesic3Solve\tpygeodesy.geod3solve.Geodesic3Solve-class.html\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.geod3solve.Geodesic3Solve.Inverse\tpygeodesy.geod3solve.Geodesic3Solve-class.html#Inverse\npygeodesy.named._NamedBase.__str__\tpygeodesy.named._NamedBase-class.html#__str__\npygeodesy.geod3solve._Geodesic3SolveBase.datum\tpygeodesy.geod3solve._Geodesic3SolveBase-class.html#datum\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.karney._CapsBase.NONFINITONAN\tpygeodesy.karney._CapsBase-class.html#NONFINITONAN\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.solveBase._SolveCapsBase.invokation\tpygeodesy.solveBase._SolveCapsBase-class.html#invokation\npygeodesy.solveBase._SolveCapsBase._Exact\tpygeodesy.solveBase._SolveCapsBase-class.html#_Exact\npygeodesy.geod3solve._Geodesic3SolveBase._e_option\tpygeodesy.geod3solve._Geodesic3SolveBase-class.html#_e_option\npygeodesy.geod3solve._Geodesic3SolveBase.ellipsoid\tpygeodesy.geod3solve._Geodesic3SolveBase-class.html#ellipsoid\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.solveBase._SolveBase.unroll\tpygeodesy.solveBase._SolveBase-class.html#unroll\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.geod3solve._Geodesic3SolveBase._E_option\tpygeodesy.geod3solve._Geodesic3SolveBase-class.html#_E_option\npygeodesy.solveBase._SolveCapsBase.invoke\tpygeodesy.solveBase._SolveCapsBase-class.html#invoke\npygeodesy.geod3solve.Geodesic3Solve.toStr\tpygeodesy.geod3solve.Geodesic3Solve-class.html#toStr\npygeodesy.solveBase._SolveCapsBase._datum\tpygeodesy.solveBase._SolveCapsBase-class.html#_datum\npygeodesy.karney._CapsBase.LONGITUDE\tpygeodesy.karney._CapsBase-class.html#LONGITUDE\npygeodesy.karney._CapsBase.caps\tpygeodesy.karney._CapsBase-class.html#caps\npygeodesy.karney._CapsBase.STANDARD_LINE\tpygeodesy.karney._CapsBase-class.html#STANDARD_LINE\npygeodesy.geod3solve._Geodesic3SolveBase.Geod3Solve\tpygeodesy.geod3solve._Geodesic3SolveBase-class.html#Geod3Solve\npygeodesy.solveBase._SolveCapsBase._setXable\tpygeodesy.solveBase._SolveCapsBase-class.html#_setXable\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.solveBase._SolveCapsBase._invokat\tpygeodesy.solveBase._SolveCapsBase-class.html#_invokat\npygeodesy.karney._CapsBase._iter2tion\tpygeodesy.karney._CapsBase-class.html#_iter2tion\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.solveBase._SolveCapsBase._invoke\tpygeodesy.solveBase._SolveCapsBase-class.html#_invoke\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.karney._CapsBase.debug\tpygeodesy.karney._CapsBase-class.html#debug\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.karney._CapsBase.DISTANCE_IN\tpygeodesy.karney._CapsBase-class.html#DISTANCE_IN\npygeodesy.named._NamedBase.toRepr\tpygeodesy.named._NamedBase-class.html#toRepr\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.karney._CapsBase.EMPTY\tpygeodesy.karney._CapsBase-class.html#EMPTY\npygeodesy.geod3solve._Geodesic3SolveBase._Names_Inverse\tpygeodesy.geod3solve._Geodesic3SolveBase-class.html#_Names_Inverse\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.geod3solve._Geodesic3SolveBase._Names_Distance\tpygeodesy.geod3solve._Geodesic3SolveBase-class.html#_Names_Distance\npygeodesy.solveBase._SolveCapsBase.version\tpygeodesy.solveBase._SolveCapsBase-class.html#version\npygeodesy.geod3solve._Geodesic3SolveBase.flattening\tpygeodesy.geod3solve._Geodesic3SolveBase-class.html#flattening\npygeodesy.solveBase._SolveBase._reverse2\tpygeodesy.solveBase._SolveBase-class.html#_reverse2\npygeodesy.geod3solve.Geodesic3Solve.Line\tpygeodesy.geod3solve.Geodesic3Solve-class.html#Line\npygeodesy.geod3solve._Geodesic3SolveBase._mpd\tpygeodesy.geod3solve._Geodesic3SolveBase-class.html#_mpd\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.geod3solve._Geodesic3SolveBase._Xable_path\tpygeodesy.geod3solve._Geodesic3SolveBase-class.html#_Xable_path\npygeodesy.karney._CapsBase.AZIMUTH\tpygeodesy.karney._CapsBase-class.html#AZIMUTH\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.solveBase._SolveCapsBase._prec2stdin\tpygeodesy.solveBase._SolveCapsBase-class.html#_prec2stdin\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.karney._CapsBase.DISTANCE\tpygeodesy.karney._CapsBase-class.html#DISTANCE\npygeodesy.geod3solve._Geodesic3SolveBase.c\tpygeodesy.geod3solve._Geodesic3SolveBase-class.html#c\npygeodesy.geod3solve.Geodesic3Solve.DirectLine\tpygeodesy.geod3solve.Geodesic3Solve-class.html#DirectLine\npygeodesy.karney._CapsBase._debug\tpygeodesy.karney._CapsBase-class.html#_debug\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._NamedBase.__repr__\tpygeodesy.named._NamedBase-class.html#__repr__\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.geod3solve._Geodesic3SolveBase._Names_Direct\tpygeodesy.geod3solve._Geodesic3SolveBase-class.html#_Names_Direct\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.solveBase._SolveCapsBase.verbose\tpygeodesy.solveBase._SolveCapsBase-class.html#verbose\npygeodesy.named._NamedBase.others\tpygeodesy.named._NamedBase-class.html#others\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.solveBase._SolveCapsBase._p_option\tpygeodesy.solveBase._SolveCapsBase-class.html#_p_option\npygeodesy.solveBase._SolveCapsBase._linelimit\tpygeodesy.solveBase._SolveCapsBase-class.html#_linelimit\npygeodesy.solveBase._SolveBase.reverse2\tpygeodesy.solveBase._SolveBase-class.html#reverse2\npygeodesy.solveBase._SolveCapsBase.linelimit\tpygeodesy.solveBase._SolveCapsBase-class.html#linelimit\npygeodesy.karney._CapsBase.AREA\tpygeodesy.karney._CapsBase-class.html#AREA\npygeodesy.solveBase._SolveCapsBase.prec\tpygeodesy.solveBase._SolveCapsBase-class.html#prec\npygeodesy.karney._CapsBase.GEODESICSCALE\tpygeodesy.karney._CapsBase-class.html#GEODESICSCALE\npygeodesy.solveBase._SolveCapsBase._DictInvoke2\tpygeodesy.solveBase._SolveCapsBase-class.html#_DictInvoke2\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.solveBase._SolveCapsBase._status\tpygeodesy.solveBase._SolveCapsBase-class.html#_status\npygeodesy.solveBase._SolveCapsBase.Exact\tpygeodesy.solveBase._SolveCapsBase-class.html#Exact\npygeodesy.solveBase._SolveCapsBase._Dicts\tpygeodesy.solveBase._SolveCapsBase-class.html#_Dicts\npygeodesy.geod3solve._Geodesic3SolveBase._Error\tpygeodesy.geod3solve.Geodesic3Error-class.html\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.solveBase._SolveCapsBase._prec\tpygeodesy.solveBase._SolveCapsBase-class.html#_prec\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.karney._CapsBase.STANDARD\tpygeodesy.karney._CapsBase-class.html#STANDARD\npygeodesy.geod3solve.Geodesic3Solve.InverseLine\tpygeodesy.geod3solve.Geodesic3Solve-class.html#InverseLine\npygeodesy.karney._CapsBase._caps\tpygeodesy.karney._CapsBase-class.html#_caps\npygeodesy.geod3solve.Geodesic3Solve._a12d\tpygeodesy.geod3solve.Geodesic3Solve-class.html#_a12d\npygeodesy.solveBase._SolveBase._unroll\tpygeodesy.solveBase._SolveBase-class.html#_unroll\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.solveBase._SolveCapsBase._verbose\tpygeodesy.solveBase._SolveCapsBase-class.html#_verbose\npygeodesy.karney._CapsBase.ALL\tpygeodesy.karney._CapsBase-class.html#ALL\npygeodesy.geod3solve._Geodesic3SolveBase.b\tpygeodesy.geod3solve._Geodesic3SolveBase-class.html#b\npygeodesy.geod3solve._Geodesic3SolveBase.f\tpygeodesy.geod3solve._Geodesic3SolveBase-class.html#f\npygeodesy.solveBase._SolveCapsBase._toStdin\tpygeodesy.solveBase._SolveCapsBase-class.html#_toStdin\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.solveBase._SolveCapsBase._Dict\tpygeodesy.solveBase._SolveCapsBase-class.html#_Dict\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.geod3solve._Geodesic3SolveBase._Xable_name\tpygeodesy.geod3solve._Geodesic3SolveBase-class.html#_Xable_name\npygeodesy.geod3solve._Geodesic3SolveBase._cmdBasic\tpygeodesy.geod3solve._Geodesic3SolveBase-class.html#_cmdBasic\npygeodesy.geod3solve._Geodesic3SolveBase._triaxial3\tpygeodesy.geod3solve._Geodesic3SolveBase-class.html#_triaxial3\npygeodesy.solveBase._SolveCapsBase._print\tpygeodesy.solveBase._SolveCapsBase-class.html#_print\npygeodesy.karney._CapsBase.LINE_OFF\tpygeodesy.karney._CapsBase-class.html#LINE_OFF\npygeodesy.geod3solve.Geodesic3Solve.__init__\tpygeodesy.geod3solve.Geodesic3Solve-class.html#__init__\npygeodesy.karney._CapsBase.LINE_CAPS\tpygeodesy.karney._CapsBase-class.html#LINE_CAPS\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.geod3solve.Geodesic3Solve.triaxial3\tpygeodesy.geod3solve.Geodesic3Solve-class.html#triaxial3\npygeodesy.solveBase._SolveCapsBase.invokat\tpygeodesy.solveBase._SolveCapsBase-class.html#invokat\npygeodesy.solveBase._SolveCapsBase.status\tpygeodesy.solveBase._SolveCapsBase-class.html#status\npygeodesy.karney._CapsBase.LONG_UNROLL\tpygeodesy.karney._CapsBase-class.html#LONG_UNROLL\npygeodesy.solveBase._SolveCapsBase._invokation\tpygeodesy.solveBase._SolveCapsBase-class.html#_invokation\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.geod3solve._Geodesic3SolveBase._u_option\tpygeodesy.geod3solve._Geodesic3SolveBase-class.html#_u_option\npygeodesy.geod3solve._Geodesic3SolveBase.a\tpygeodesy.geod3solve._Geodesic3SolveBase-class.html#a\npygeodesy.karney._CapsBase.REDUCEDLENGTH\tpygeodesy.karney._CapsBase-class.html#REDUCEDLENGTH\npygeodesy.geod3solve.Geodesic3Solve.Direct\tpygeodesy.geod3solve.Geodesic3Solve-class.html#Direct\npygeodesy.karney._CapsBase.LATITUDE\tpygeodesy.karney._CapsBase-class.html#LATITUDE\npygeodesy.karney._CapsBase.caps_\tpygeodesy.karney._CapsBase-class.html#caps_\npygeodesy.geod3solve._Geodesic3SolveBase._t_option\tpygeodesy.geod3solve._Geodesic3SolveBase-class.html#_t_option\npygeodesy.geod3solve.GeodesicLine3Solve\tpygeodesy.geod3solve.GeodesicLine3Solve-class.html\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedBase.__str__\tpygeodesy.named._NamedBase-class.html#__str__\npygeodesy.geod3solve._Geodesic3SolveBase.datum\tpygeodesy.geod3solve._Geodesic3SolveBase-class.html#datum\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.karney._CapsBase.NONFINITONAN\tpygeodesy.karney._CapsBase-class.html#NONFINITONAN\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.geod3solve.GeodesicLine3Solve.omg1\tpygeodesy.geod3solve.GeodesicLine3Solve-class.html#omg1\npygeodesy.solveBase._SolveCapsBase._Exact\tpygeodesy.solveBase._SolveCapsBase-class.html#_Exact\npygeodesy.geod3solve._Geodesic3SolveBase._e_option\tpygeodesy.geod3solve._Geodesic3SolveBase-class.html#_e_option\npygeodesy.geod3solve._Geodesic3SolveBase.ellipsoid\tpygeodesy.geod3solve._Geodesic3SolveBase-class.html#ellipsoid\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.solveBase._SolveBase.unroll\tpygeodesy.solveBase._SolveBase-class.html#unroll\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.geod3solve._Geodesic3SolveBase._E_option\tpygeodesy.geod3solve._Geodesic3SolveBase-class.html#_E_option\npygeodesy.solveBase._SolveCapsBase.invoke\tpygeodesy.solveBase._SolveCapsBase-class.html#invoke\npygeodesy.geod3solve.GeodesicLine3Solve.toStr\tpygeodesy.geod3solve.GeodesicLine3Solve-class.html#toStr\npygeodesy.solveBase._SolveCapsBase._datum\tpygeodesy.solveBase._SolveCapsBase-class.html#_datum\npygeodesy.karney._CapsBase.LONGITUDE\tpygeodesy.karney._CapsBase-class.html#LONGITUDE\npygeodesy.karney._CapsBase.caps\tpygeodesy.karney._CapsBase-class.html#caps\npygeodesy.karney._CapsBase.STANDARD_LINE\tpygeodesy.karney._CapsBase-class.html#STANDARD_LINE\npygeodesy.geod3solve.GeodesicLine3Solve.Intersecant2\tpygeodesy.geod3solve.GeodesicLine3Solve-class.html#Intersecant2\npygeodesy.geod3solve._Geodesic3SolveBase.Geod3Solve\tpygeodesy.geod3solve._Geodesic3SolveBase-class.html#Geod3Solve\npygeodesy.geod3solve.GeodesicLine3Solve.Position\tpygeodesy.geod3solve.GeodesicLine3Solve-class.html#Position\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.solveBase._SolveCapsBase._invokat\tpygeodesy.solveBase._SolveCapsBase-class.html#_invokat\npygeodesy.karney._CapsBase._iter2tion\tpygeodesy.karney._CapsBase-class.html#_iter2tion\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.solveBase._SolveCapsBase._invoke\tpygeodesy.solveBase._SolveCapsBase-class.html#_invoke\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.geod3solve.GeodesicLine3Solve.geodesic3\tpygeodesy.geod3solve.GeodesicLine3Solve-class.html#geodesic3\npygeodesy.karney._CapsBase.debug\tpygeodesy.karney._CapsBase-class.html#debug\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.karney._CapsBase.DISTANCE_IN\tpygeodesy.karney._CapsBase-class.html#DISTANCE_IN\npygeodesy.named._NamedBase.toRepr\tpygeodesy.named._NamedBase-class.html#toRepr\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.geod3solve.GeodesicLine3Solve._cmdDistance\tpygeodesy.geod3solve.GeodesicLine3Solve-class.html#_cmdDistance\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.karney._CapsBase.EMPTY\tpygeodesy.karney._CapsBase-class.html#EMPTY\npygeodesy.geod3solve._Geodesic3SolveBase._Names_Inverse\tpygeodesy.geod3solve._Geodesic3SolveBase-class.html#_Names_Inverse\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.geod3solve._Geodesic3SolveBase._Names_Distance\tpygeodesy.geod3solve._Geodesic3SolveBase-class.html#_Names_Distance\npygeodesy.solveBase._SolveCapsBase.version\tpygeodesy.solveBase._SolveCapsBase-class.html#version\npygeodesy.geod3solve._Geodesic3SolveBase.flattening\tpygeodesy.geod3solve._Geodesic3SolveBase-class.html#flattening\npygeodesy.solveBase._SolveBase._reverse2\tpygeodesy.solveBase._SolveBase-class.html#_reverse2\npygeodesy.solveBase._SolveCapsBase._setXable\tpygeodesy.solveBase._SolveCapsBase-class.html#_setXable\npygeodesy.geod3solve._Geodesic3SolveBase._mpd\tpygeodesy.geod3solve._Geodesic3SolveBase-class.html#_mpd\npygeodesy.solveBase._SolveCapsBase.invokation\tpygeodesy.solveBase._SolveCapsBase-class.html#invokation\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.geod3solve._Geodesic3SolveBase._Xable_path\tpygeodesy.geod3solve._Geodesic3SolveBase-class.html#_Xable_path\npygeodesy.karney._CapsBase.AZIMUTH\tpygeodesy.karney._CapsBase-class.html#AZIMUTH\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.solveBase._SolveCapsBase._prec2stdin\tpygeodesy.solveBase._SolveCapsBase-class.html#_prec2stdin\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.karney._CapsBase.DISTANCE\tpygeodesy.karney._CapsBase-class.html#DISTANCE\npygeodesy.geod3solve._Geodesic3SolveBase.c\tpygeodesy.geod3solve._Geodesic3SolveBase-class.html#c\npygeodesy.karney._CapsBase._debug\tpygeodesy.karney._CapsBase-class.html#_debug\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._NamedBase.__repr__\tpygeodesy.named._NamedBase-class.html#__repr__\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.geod3solve._Geodesic3SolveBase._Names_Direct\tpygeodesy.geod3solve._Geodesic3SolveBase-class.html#_Names_Direct\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.solveBase._SolveCapsBase.verbose\tpygeodesy.solveBase._SolveCapsBase-class.html#verbose\npygeodesy.named._NamedBase.others\tpygeodesy.named._NamedBase-class.html#others\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.solveBase._SolveCapsBase._p_option\tpygeodesy.solveBase._SolveCapsBase-class.html#_p_option\npygeodesy.solveBase._SolveCapsBase._linelimit\tpygeodesy.solveBase._SolveCapsBase-class.html#_linelimit\npygeodesy.solveBase._SolveBase.reverse2\tpygeodesy.solveBase._SolveBase-class.html#reverse2\npygeodesy.solveBase._SolveCapsBase.linelimit\tpygeodesy.solveBase._SolveCapsBase-class.html#linelimit\npygeodesy.karney._CapsBase.AREA\tpygeodesy.karney._CapsBase-class.html#AREA\npygeodesy.solveBase._SolveCapsBase.prec\tpygeodesy.solveBase._SolveCapsBase-class.html#prec\npygeodesy.karney._CapsBase.GEODESICSCALE\tpygeodesy.karney._CapsBase-class.html#GEODESICSCALE\npygeodesy.solveBase._SolveCapsBase._DictInvoke2\tpygeodesy.solveBase._SolveCapsBase-class.html#_DictInvoke2\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.solveBase._SolveCapsBase._status\tpygeodesy.solveBase._SolveCapsBase-class.html#_status\npygeodesy.solveBase._SolveCapsBase.Exact\tpygeodesy.solveBase._SolveCapsBase-class.html#Exact\npygeodesy.solveBase._SolveCapsBase._Dicts\tpygeodesy.solveBase._SolveCapsBase-class.html#_Dicts\npygeodesy.geod3solve._Geodesic3SolveBase._Error\tpygeodesy.geod3solve.Geodesic3Error-class.html\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.solveBase._SolveCapsBase._prec\tpygeodesy.solveBase._SolveCapsBase-class.html#_prec\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.karney._CapsBase.STANDARD\tpygeodesy.karney._CapsBase-class.html#STANDARD\npygeodesy.karney._CapsBase._caps\tpygeodesy.karney._CapsBase-class.html#_caps\npygeodesy.solveBase._SolveBase._unroll\tpygeodesy.solveBase._SolveBase-class.html#_unroll\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.solveBase._SolveCapsBase._verbose\tpygeodesy.solveBase._SolveCapsBase-class.html#_verbose\npygeodesy.karney._CapsBase.ALL\tpygeodesy.karney._CapsBase-class.html#ALL\npygeodesy.geod3solve._Geodesic3SolveBase.b\tpygeodesy.geod3solve._Geodesic3SolveBase-class.html#b\npygeodesy.geod3solve._Geodesic3SolveBase.f\tpygeodesy.geod3solve._Geodesic3SolveBase-class.html#f\npygeodesy.solveBase._SolveCapsBase._toStdin\tpygeodesy.solveBase._SolveCapsBase-class.html#_toStdin\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.solveBase._SolveCapsBase._Dict\tpygeodesy.solveBase._SolveCapsBase-class.html#_Dict\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.geod3solve.GeodesicLine3Solve.bet1\tpygeodesy.geod3solve.GeodesicLine3Solve-class.html#bet1\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.geod3solve._Geodesic3SolveBase._Xable_name\tpygeodesy.geod3solve._Geodesic3SolveBase-class.html#_Xable_name\npygeodesy.geod3solve._Geodesic3SolveBase._cmdBasic\tpygeodesy.geod3solve._Geodesic3SolveBase-class.html#_cmdBasic\npygeodesy.geod3solve.GeodesicLine3Solve.PlumbTo\tpygeodesy.geod3solve.GeodesicLine3Solve-class.html#PlumbTo\npygeodesy.geod3solve._Geodesic3SolveBase._triaxial3\tpygeodesy.geod3solve._Geodesic3SolveBase-class.html#_triaxial3\npygeodesy.solveBase._SolveCapsBase._print\tpygeodesy.solveBase._SolveCapsBase-class.html#_print\npygeodesy.karney._CapsBase.LINE_OFF\tpygeodesy.karney._CapsBase-class.html#LINE_OFF\npygeodesy.geod3solve.GeodesicLine3Solve._solve\tpygeodesy.geod3solve.GeodesicLine3Solve-class.html#_solve\npygeodesy.geod3solve.GeodesicLine3Solve.alp1\tpygeodesy.geod3solve.GeodesicLine3Solve-class.html#alp1\npygeodesy.karney._CapsBase.LINE_CAPS\tpygeodesy.karney._CapsBase-class.html#LINE_CAPS\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.geod3solve.GeodesicLine3Solve.__init__\tpygeodesy.geod3solve.GeodesicLine3Solve-class.html#__init__\npygeodesy.geod3solve.GeodesicLine3Solve.triaxial3\tpygeodesy.geod3solve.GeodesicLine3Solve-class.html#triaxial3\npygeodesy.solveBase._SolveCapsBase.invokat\tpygeodesy.solveBase._SolveCapsBase-class.html#invokat\npygeodesy.solveBase._SolveCapsBase.status\tpygeodesy.solveBase._SolveCapsBase-class.html#status\npygeodesy.karney._CapsBase.LONG_UNROLL\tpygeodesy.karney._CapsBase-class.html#LONG_UNROLL\npygeodesy.solveBase._SolveCapsBase._invokation\tpygeodesy.solveBase._SolveCapsBase-class.html#_invokation\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.geod3solve._Geodesic3SolveBase._u_option\tpygeodesy.geod3solve._Geodesic3SolveBase-class.html#_u_option\npygeodesy.geod3solve._Geodesic3SolveBase.a\tpygeodesy.geod3solve._Geodesic3SolveBase-class.html#a\npygeodesy.karney._CapsBase.REDUCEDLENGTH\tpygeodesy.karney._CapsBase-class.html#REDUCEDLENGTH\npygeodesy.karney._CapsBase.LATITUDE\tpygeodesy.karney._CapsBase-class.html#LATITUDE\npygeodesy.karney._CapsBase.caps_\tpygeodesy.karney._CapsBase-class.html#caps_\npygeodesy.geod3solve._Geodesic3SolveBase._t_option\tpygeodesy.geod3solve._Geodesic3SolveBase-class.html#_t_option\npygeodesy.geod3solve._Geodesic3SolveBase\tpygeodesy.geod3solve._Geodesic3SolveBase-class.html\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedBase.__str__\tpygeodesy.named._NamedBase-class.html#__str__\npygeodesy.geod3solve._Geodesic3SolveBase.datum\tpygeodesy.geod3solve._Geodesic3SolveBase-class.html#datum\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.karney._CapsBase.NONFINITONAN\tpygeodesy.karney._CapsBase-class.html#NONFINITONAN\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.solveBase._SolveCapsBase.invokation\tpygeodesy.solveBase._SolveCapsBase-class.html#invokation\npygeodesy.solveBase._SolveCapsBase._Exact\tpygeodesy.solveBase._SolveCapsBase-class.html#_Exact\npygeodesy.geod3solve._Geodesic3SolveBase._e_option\tpygeodesy.geod3solve._Geodesic3SolveBase-class.html#_e_option\npygeodesy.geod3solve._Geodesic3SolveBase.ellipsoid\tpygeodesy.geod3solve._Geodesic3SolveBase-class.html#ellipsoid\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.solveBase._SolveBase.unroll\tpygeodesy.solveBase._SolveBase-class.html#unroll\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.geod3solve._Geodesic3SolveBase._E_option\tpygeodesy.geod3solve._Geodesic3SolveBase-class.html#_E_option\npygeodesy.solveBase._SolveCapsBase.invoke\tpygeodesy.solveBase._SolveCapsBase-class.html#invoke\npygeodesy.geod3solve._Geodesic3SolveBase.toStr\tpygeodesy.geod3solve._Geodesic3SolveBase-class.html#toStr\npygeodesy.solveBase._SolveCapsBase._datum\tpygeodesy.solveBase._SolveCapsBase-class.html#_datum\npygeodesy.karney._CapsBase.LONGITUDE\tpygeodesy.karney._CapsBase-class.html#LONGITUDE\npygeodesy.karney._CapsBase.caps\tpygeodesy.karney._CapsBase-class.html#caps\npygeodesy.karney._CapsBase.STANDARD_LINE\tpygeodesy.karney._CapsBase-class.html#STANDARD_LINE\npygeodesy.geod3solve._Geodesic3SolveBase.Geod3Solve\tpygeodesy.geod3solve._Geodesic3SolveBase-class.html#Geod3Solve\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.solveBase._SolveCapsBase._invokat\tpygeodesy.solveBase._SolveCapsBase-class.html#_invokat\npygeodesy.karney._CapsBase._iter2tion\tpygeodesy.karney._CapsBase-class.html#_iter2tion\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.solveBase._SolveCapsBase._invoke\tpygeodesy.solveBase._SolveCapsBase-class.html#_invoke\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.karney._CapsBase.debug\tpygeodesy.karney._CapsBase-class.html#debug\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.karney._CapsBase.DISTANCE_IN\tpygeodesy.karney._CapsBase-class.html#DISTANCE_IN\npygeodesy.named._NamedBase.toRepr\tpygeodesy.named._NamedBase-class.html#toRepr\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.karney._CapsBase.EMPTY\tpygeodesy.karney._CapsBase-class.html#EMPTY\npygeodesy.geod3solve._Geodesic3SolveBase._Names_Inverse\tpygeodesy.geod3solve._Geodesic3SolveBase-class.html#_Names_Inverse\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.geod3solve._Geodesic3SolveBase._Names_Distance\tpygeodesy.geod3solve._Geodesic3SolveBase-class.html#_Names_Distance\npygeodesy.solveBase._SolveCapsBase.version\tpygeodesy.solveBase._SolveCapsBase-class.html#version\npygeodesy.geod3solve._Geodesic3SolveBase.flattening\tpygeodesy.geod3solve._Geodesic3SolveBase-class.html#flattening\npygeodesy.solveBase._SolveBase._reverse2\tpygeodesy.solveBase._SolveBase-class.html#_reverse2\npygeodesy.solveBase._SolveCapsBase._setXable\tpygeodesy.solveBase._SolveCapsBase-class.html#_setXable\npygeodesy.geod3solve._Geodesic3SolveBase._mpd\tpygeodesy.geod3solve._Geodesic3SolveBase-class.html#_mpd\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.geod3solve._Geodesic3SolveBase._Xable_path\tpygeodesy.geod3solve._Geodesic3SolveBase-class.html#_Xable_path\npygeodesy.karney._CapsBase.AZIMUTH\tpygeodesy.karney._CapsBase-class.html#AZIMUTH\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.solveBase._SolveCapsBase._prec2stdin\tpygeodesy.solveBase._SolveCapsBase-class.html#_prec2stdin\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.karney._CapsBase.DISTANCE\tpygeodesy.karney._CapsBase-class.html#DISTANCE\npygeodesy.geod3solve._Geodesic3SolveBase.c\tpygeodesy.geod3solve._Geodesic3SolveBase-class.html#c\npygeodesy.karney._CapsBase._debug\tpygeodesy.karney._CapsBase-class.html#_debug\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._NamedBase.__repr__\tpygeodesy.named._NamedBase-class.html#__repr__\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.geod3solve._Geodesic3SolveBase._Names_Direct\tpygeodesy.geod3solve._Geodesic3SolveBase-class.html#_Names_Direct\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.solveBase._SolveCapsBase.verbose\tpygeodesy.solveBase._SolveCapsBase-class.html#verbose\npygeodesy.named._NamedBase.others\tpygeodesy.named._NamedBase-class.html#others\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.solveBase._SolveCapsBase._p_option\tpygeodesy.solveBase._SolveCapsBase-class.html#_p_option\npygeodesy.solveBase._SolveCapsBase._linelimit\tpygeodesy.solveBase._SolveCapsBase-class.html#_linelimit\npygeodesy.solveBase._SolveBase.reverse2\tpygeodesy.solveBase._SolveBase-class.html#reverse2\npygeodesy.solveBase._SolveCapsBase.linelimit\tpygeodesy.solveBase._SolveCapsBase-class.html#linelimit\npygeodesy.karney._CapsBase.AREA\tpygeodesy.karney._CapsBase-class.html#AREA\npygeodesy.solveBase._SolveCapsBase.prec\tpygeodesy.solveBase._SolveCapsBase-class.html#prec\npygeodesy.karney._CapsBase.GEODESICSCALE\tpygeodesy.karney._CapsBase-class.html#GEODESICSCALE\npygeodesy.solveBase._SolveCapsBase._DictInvoke2\tpygeodesy.solveBase._SolveCapsBase-class.html#_DictInvoke2\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.solveBase._SolveCapsBase._status\tpygeodesy.solveBase._SolveCapsBase-class.html#_status\npygeodesy.solveBase._SolveCapsBase.Exact\tpygeodesy.solveBase._SolveCapsBase-class.html#Exact\npygeodesy.solveBase._SolveCapsBase._Dicts\tpygeodesy.solveBase._SolveCapsBase-class.html#_Dicts\npygeodesy.geod3solve._Geodesic3SolveBase._Error\tpygeodesy.geod3solve.Geodesic3Error-class.html\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.solveBase._SolveCapsBase._prec\tpygeodesy.solveBase._SolveCapsBase-class.html#_prec\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.karney._CapsBase.STANDARD\tpygeodesy.karney._CapsBase-class.html#STANDARD\npygeodesy.karney._CapsBase._caps\tpygeodesy.karney._CapsBase-class.html#_caps\npygeodesy.solveBase._SolveBase._unroll\tpygeodesy.solveBase._SolveBase-class.html#_unroll\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.solveBase._SolveCapsBase._verbose\tpygeodesy.solveBase._SolveCapsBase-class.html#_verbose\npygeodesy.karney._CapsBase.ALL\tpygeodesy.karney._CapsBase-class.html#ALL\npygeodesy.geod3solve._Geodesic3SolveBase.b\tpygeodesy.geod3solve._Geodesic3SolveBase-class.html#b\npygeodesy.geod3solve._Geodesic3SolveBase.f\tpygeodesy.geod3solve._Geodesic3SolveBase-class.html#f\npygeodesy.solveBase._SolveCapsBase._toStdin\tpygeodesy.solveBase._SolveCapsBase-class.html#_toStdin\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.solveBase._SolveCapsBase._Dict\tpygeodesy.solveBase._SolveCapsBase-class.html#_Dict\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.geod3solve._Geodesic3SolveBase._Xable_name\tpygeodesy.geod3solve._Geodesic3SolveBase-class.html#_Xable_name\npygeodesy.geod3solve._Geodesic3SolveBase._cmdBasic\tpygeodesy.geod3solve._Geodesic3SolveBase-class.html#_cmdBasic\npygeodesy.geod3solve._Geodesic3SolveBase._triaxial3\tpygeodesy.geod3solve._Geodesic3SolveBase-class.html#_triaxial3\npygeodesy.solveBase._SolveCapsBase._print\tpygeodesy.solveBase._SolveCapsBase-class.html#_print\npygeodesy.karney._CapsBase.LINE_OFF\tpygeodesy.karney._CapsBase-class.html#LINE_OFF\npygeodesy.karney._CapsBase.LINE_CAPS\tpygeodesy.karney._CapsBase-class.html#LINE_CAPS\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.solveBase._SolveCapsBase.invokat\tpygeodesy.solveBase._SolveCapsBase-class.html#invokat\npygeodesy.solveBase._SolveCapsBase.status\tpygeodesy.solveBase._SolveCapsBase-class.html#status\npygeodesy.karney._CapsBase.LONG_UNROLL\tpygeodesy.karney._CapsBase-class.html#LONG_UNROLL\npygeodesy.solveBase._SolveCapsBase._invokation\tpygeodesy.solveBase._SolveCapsBase-class.html#_invokation\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.geod3solve._Geodesic3SolveBase._u_option\tpygeodesy.geod3solve._Geodesic3SolveBase-class.html#_u_option\npygeodesy.geod3solve._Geodesic3SolveBase.a\tpygeodesy.geod3solve._Geodesic3SolveBase-class.html#a\npygeodesy.karney._CapsBase.REDUCEDLENGTH\tpygeodesy.karney._CapsBase-class.html#REDUCEDLENGTH\npygeodesy.karney._CapsBase.LATITUDE\tpygeodesy.karney._CapsBase-class.html#LATITUDE\npygeodesy.karney._CapsBase.caps_\tpygeodesy.karney._CapsBase-class.html#caps_\npygeodesy.geod3solve._Geodesic3SolveBase._t_option\tpygeodesy.geod3solve._Geodesic3SolveBase-class.html#_t_option\npygeodesy.geodesici.Intersect7Tuple\tpygeodesy.geodesici.Intersect7Tuple-class.html\npygeodesy.named._NamedTuple.toRepr\tpygeodesy.named._NamedTuple-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._NamedTuple.toUnits\tpygeodesy.named._NamedTuple-class.html#toUnits\npygeodesy.named._NamedTuple._validate\tpygeodesy.named._NamedTuple-class.html#_validate\npygeodesy.named._NamedTuple.__str__\tpygeodesy.named._NamedTuple-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._NamedTuple._DOT_\tpygeodesy.named._NamedTuple-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._NamedTuple.reUnit\tpygeodesy.named._NamedTuple-class.html#reUnit\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.geodesici.Intersect7Tuple._Names_\tpygeodesy.geodesici.Intersect7Tuple-class.html#_Names_\npygeodesy.named._NamedTuple.__setattr__\tpygeodesy.named._NamedTuple-class.html#__setattr__\npygeodesy.named._NamedTuple.__new__\tpygeodesy.named._NamedTuple-class.html#__new__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._NamedTuple._validated\tpygeodesy.named._NamedTuple-class.html#_validated\npygeodesy.named._NamedTuple.__getattr__\tpygeodesy.named._NamedTuple-class.html#__getattr__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._NamedTuple._xtend\tpygeodesy.named._NamedTuple-class.html#_xtend\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._NamedTuple.dup\tpygeodesy.named._NamedTuple-class.html#dup\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedTuple.toStr\tpygeodesy.named._NamedTuple-class.html#toStr\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedTuple.units\tpygeodesy.named._NamedTuple-class.html#units\npygeodesy.named._NamedTuple.iterunits\tpygeodesy.named._NamedTuple-class.html#iterunits\npygeodesy.named._NamedTuple.iteritems\tpygeodesy.named._NamedTuple-class.html#iteritems\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._NamedTuple.items\tpygeodesy.named._NamedTuple-class.html#items\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedTuple.__delattr__\tpygeodesy.named._NamedTuple-class.html#__delattr__\npygeodesy.named._NamedTuple.__repr__\tpygeodesy.named._NamedTuple-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._NamedTuple.__hash__\tpygeodesy.named._NamedTuple-class.html#__hash__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.geodesici.Intersect7Tuple._Units_\tpygeodesy.geodesici.Intersect7Tuple-class.html#_Units_\npygeodesy.geodesici.Intersectool\tpygeodesy.geodesici.Intersectool-class.html\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedBase.__str__\tpygeodesy.named._NamedBase-class.html#__str__\npygeodesy.geodesici._IntersectBase.datum\tpygeodesy.geodesici._IntersectBase-class.html#datum\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.karney._CapsBase.NONFINITONAN\tpygeodesy.karney._CapsBase-class.html#NONFINITONAN\npygeodesy.geodesici.Intersectool.Closest5\tpygeodesy.geodesici.Intersectool-class.html#Closest5\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.solveBase._SolveCapsBase.invokation\tpygeodesy.solveBase._SolveCapsBase-class.html#invokation\npygeodesy.solveBase._SolveCapsBase._Exact\tpygeodesy.solveBase._SolveCapsBase-class.html#_Exact\npygeodesy.solveBase._SolveCapsBase._e_option\tpygeodesy.solveBase._SolveCapsBase-class.html#_e_option\npygeodesy.karney._CapsBase._debug\tpygeodesy.karney._CapsBase-class.html#_debug\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.solveBase._SolveCapsBase._E_option\tpygeodesy.solveBase._SolveCapsBase-class.html#_E_option\npygeodesy.solveBase._SolveCapsBase.invoke\tpygeodesy.solveBase._SolveCapsBase-class.html#invoke\npygeodesy.geodesici.Intersectool.toStr\tpygeodesy.geodesici.Intersectool-class.html#toStr\npygeodesy.solveBase._SolveCapsBase._datum\tpygeodesy.solveBase._SolveCapsBase-class.html#_datum\npygeodesy.karney._CapsBase.LONGITUDE\tpygeodesy.karney._CapsBase-class.html#LONGITUDE\npygeodesy.karney._CapsBase.caps\tpygeodesy.karney._CapsBase-class.html#caps\npygeodesy.geodesici.Intersectool.Next5\tpygeodesy.geodesici.Intersectool-class.html#Next5\npygeodesy.geodesici.Intersectool.Line\tpygeodesy.geodesici.Intersectool-class.html#Line\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.solveBase._SolveCapsBase._invokat\tpygeodesy.solveBase._SolveCapsBase-class.html#_invokat\npygeodesy.karney._CapsBase._iter2tion\tpygeodesy.karney._CapsBase-class.html#_iter2tion\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.solveBase._SolveCapsBase._invoke\tpygeodesy.solveBase._SolveCapsBase-class.html#_invoke\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.geodesici.Intersectool._Names_ABs\tpygeodesy.geodesici.Intersectool-class.html#_Names_ABs\npygeodesy.karney._CapsBase.debug\tpygeodesy.karney._CapsBase-class.html#debug\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.geodesici._IntersectBase._Inversa12\tpygeodesy.geodesici._IntersectBase-class.html#_Inversa12\npygeodesy.geodesici.Intersectool._All2\tpygeodesy.geodesici.Intersectool-class.html#_All2\npygeodesy.karney._CapsBase.DISTANCE_IN\tpygeodesy.karney._CapsBase-class.html#DISTANCE_IN\npygeodesy.named._NamedBase.toRepr\tpygeodesy.named._NamedBase-class.html#toRepr\npygeodesy.geodesici._IntersectBase.intersect7\tpygeodesy.geodesici._IntersectBase-class.html#intersect7\npygeodesy.geodesici.Intersectool._i_alt\tpygeodesy.geodesici.Intersectool-class.html#_i_alt\npygeodesy.geodesici.Intersectool.Next\tpygeodesy.geodesici.Intersectool-class.html#Next\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.karney._CapsBase.EMPTY\tpygeodesy.karney._CapsBase-class.html#EMPTY\npygeodesy.geodesici.Intersectool._c_alt\tpygeodesy.geodesici.Intersectool-class.html#_c_alt\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.geodesici.Intersectool.Closest\tpygeodesy.geodesici.Intersectool-class.html#Closest\npygeodesy.geodesici.Intersectool._Names_XDict\tpygeodesy.geodesici.Intersectool-class.html#_Names_XDict\npygeodesy.geodesici._IntersectBase._cMax\tpygeodesy.geodesici._IntersectBase-class.html#_cMax\npygeodesy.solveBase._SolveCapsBase.version\tpygeodesy.solveBase._SolveCapsBase-class.html#version\npygeodesy.geodesici._IntersectBase.flattening\tpygeodesy.geodesici._IntersectBase-class.html#flattening\npygeodesy.geodesici.Intersectool.IntersectTool\tpygeodesy.geodesici.Intersectool-class.html#IntersectTool\npygeodesy.solveBase._SolveCapsBase._setXable\tpygeodesy.solveBase._SolveCapsBase-class.html#_setXable\npygeodesy.solveBase._SolveCapsBase._mpd\tpygeodesy.solveBase._SolveCapsBase-class.html#_mpd\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.geodesici._IntersectBase._xNext\tpygeodesy.geodesici._IntersectBase-class.html#_xNext\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.geodesici.Intersectool._Xable_path\tpygeodesy.geodesici.Intersectool-class.html#_Xable_path\npygeodesy.karney._CapsBase.AZIMUTH\tpygeodesy.karney._CapsBase-class.html#AZIMUTH\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.solveBase._SolveCapsBase._prec2stdin\tpygeodesy.solveBase._SolveCapsBase-class.html#_prec2stdin\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.karney._CapsBase.DISTANCE\tpygeodesy.karney._CapsBase-class.html#DISTANCE\npygeodesy.geodesici._IntersectBase.ellipsoid\tpygeodesy.geodesici._IntersectBase-class.html#ellipsoid\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.karney._CapsBase.AREA\tpygeodesy.karney._CapsBase-class.html#AREA\npygeodesy.geodesici.Intersectool._middle5\tpygeodesy.geodesici.Intersectool-class.html#_middle5\npygeodesy.named._NamedBase.__repr__\tpygeodesy.named._NamedBase-class.html#__repr__\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.solveBase._SolveCapsBase.verbose\tpygeodesy.solveBase._SolveCapsBase-class.html#verbose\npygeodesy.named._NamedBase.others\tpygeodesy.named._NamedBase-class.html#others\npygeodesy.geodesici._IntersectBase.geodesic\tpygeodesy.geodesici._IntersectBase-class.html#geodesic\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.solveBase._SolveCapsBase._p_option\tpygeodesy.solveBase._SolveCapsBase-class.html#_p_option\npygeodesy.geodesici.Intersectool._linelimit\tpygeodesy.geodesici.Intersectool-class.html#_linelimit\npygeodesy.geodesici._IntersectBase.equatoradius\tpygeodesy.geodesici._IntersectBase-class.html#equatoradius\npygeodesy.geodesici.Intersectool._XDictInvoke\tpygeodesy.geodesici.Intersectool-class.html#_XDictInvoke\npygeodesy.solveBase._SolveCapsBase.linelimit\tpygeodesy.solveBase._SolveCapsBase-class.html#linelimit\npygeodesy.geodesici.Intersectool._C_option\tpygeodesy.geodesici.Intersectool-class.html#_C_option\npygeodesy.solveBase._SolveCapsBase.prec\tpygeodesy.solveBase._SolveCapsBase-class.html#prec\npygeodesy.geodesici.Intersectool._cmdBasic\tpygeodesy.geodesici.Intersectool-class.html#_cmdBasic\npygeodesy.solveBase._SolveCapsBase._DictInvoke2\tpygeodesy.solveBase._SolveCapsBase-class.html#_DictInvoke2\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.solveBase._SolveCapsBase._status\tpygeodesy.solveBase._SolveCapsBase-class.html#_status\npygeodesy.solveBase._SolveCapsBase.Exact\tpygeodesy.solveBase._SolveCapsBase-class.html#Exact\npygeodesy.solveBase._SolveCapsBase._Dicts\tpygeodesy.solveBase._SolveCapsBase-class.html#_Dicts\npygeodesy.geodesici.Intersectool._Error\tpygeodesy.errors.GeodesicError-class.html\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.solveBase._SolveCapsBase._prec\tpygeodesy.solveBase._SolveCapsBase-class.html#_prec\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.geodesici._IntersectBase.k2kAkB\tpygeodesy.geodesici._IntersectBase-class.html#k2kAkB\npygeodesy.karney._CapsBase.STANDARD\tpygeodesy.karney._CapsBase-class.html#STANDARD\npygeodesy.geodesici._IntersectBase.R\tpygeodesy.geodesici._IntersectBase-class.html#R\npygeodesy.karney._CapsBase._caps\tpygeodesy.karney._CapsBase-class.html#_caps\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.solveBase._SolveCapsBase._verbose\tpygeodesy.solveBase._SolveCapsBase-class.html#_verbose\npygeodesy.karney._CapsBase.ALL\tpygeodesy.karney._CapsBase-class.html#ALL\npygeodesy.solveBase._SolveCapsBase.b\tpygeodesy.solveBase._SolveCapsBase-class.html#b\npygeodesy.geodesici._IntersectBase.f\tpygeodesy.geodesici._IntersectBase-class.html#f\npygeodesy.solveBase._SolveCapsBase._toStdin\tpygeodesy.solveBase._SolveCapsBase-class.html#_toStdin\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.geodesici.Intersectool._n_alt\tpygeodesy.geodesici.Intersectool-class.html#_n_alt\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.geodesici.Intersectool._o_alt\tpygeodesy.geodesici.Intersectool-class.html#_o_alt\npygeodesy.geodesici._IntersectBase._sMaX0_C2\tpygeodesy.geodesici._IntersectBase-class.html#_sMaX0_C2\npygeodesy.solveBase._SolveCapsBase._Dict\tpygeodesy.solveBase._SolveCapsBase-class.html#_Dict\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.geodesici.Intersectool._Xable_name\tpygeodesy.geodesici.Intersectool-class.html#_Xable_name\npygeodesy.karney._CapsBase.GEODESICSCALE\tpygeodesy.karney._CapsBase-class.html#GEODESICSCALE\npygeodesy.geodesici._IntersectBase.Next5s\tpygeodesy.geodesici._IntersectBase-class.html#Next5s\npygeodesy.geodesici.Intersectool._R_option\tpygeodesy.geodesici.Intersectool-class.html#_R_option\npygeodesy.solveBase._SolveCapsBase._print\tpygeodesy.solveBase._SolveCapsBase-class.html#_print\npygeodesy.geodesici.Intersectool.Middle5\tpygeodesy.geodesici.Intersectool-class.html#Middle5\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.karney._CapsBase.LINE_OFF\tpygeodesy.karney._CapsBase-class.html#LINE_OFF\npygeodesy.geodesici.Intersectool.__init__\tpygeodesy.geodesici.Intersectool-class.html#__init__\npygeodesy.karney._CapsBase.LINE_CAPS\tpygeodesy.karney._CapsBase-class.html#LINE_CAPS\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.geodesici._IntersectBase._illz2G\tpygeodesy.geodesici._IntersectBase-class.html#_illz2G\npygeodesy.geodesici._IntersectBase._cHalf\tpygeodesy.geodesici._IntersectBase-class.html#_cHalf\npygeodesy.geodesici.Intersectool.Segment\tpygeodesy.geodesici.Intersectool-class.html#Segment\npygeodesy.solveBase._SolveCapsBase.invokat\tpygeodesy.solveBase._SolveCapsBase-class.html#invokat\npygeodesy.solveBase._SolveCapsBase.status\tpygeodesy.solveBase._SolveCapsBase-class.html#status\npygeodesy.geodesici._IntersectBase._ll3z4ll\tpygeodesy.geodesici._IntersectBase-class.html#_ll3z4ll\npygeodesy.karney._CapsBase.LONG_UNROLL\tpygeodesy.karney._CapsBase-class.html#LONG_UNROLL\npygeodesy.solveBase._SolveCapsBase._invokation\tpygeodesy.solveBase._SolveCapsBase-class.html#_invokation\npygeodesy.geodesici.Intersectool.Segment5\tpygeodesy.geodesici.Intersectool-class.html#Segment5\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.geodesici.Intersectool.All5\tpygeodesy.geodesici.Intersectool-class.html#All5\npygeodesy.geodesici.Intersectool._In5T\tpygeodesy.geodesici.Intersectool-class.html#_In5T\npygeodesy.geodesici._IntersectBase.a\tpygeodesy.geodesici._IntersectBase-class.html#a\npygeodesy.geodesici.Intersectool.All\tpygeodesy.geodesici.Intersectool-class.html#All\npygeodesy.karney._CapsBase.REDUCEDLENGTH\tpygeodesy.karney._CapsBase-class.html#REDUCEDLENGTH\npygeodesy.karney._CapsBase.STANDARD_LINE\tpygeodesy.karney._CapsBase-class.html#STANDARD_LINE\npygeodesy.geodesici.Intersectool._GeodesicExact\tpygeodesy.geodesici.Intersectool-class.html#_GeodesicExact\npygeodesy.geodesici.Intersectool.Middle\tpygeodesy.geodesici.Intersectool-class.html#Middle\npygeodesy.karney._CapsBase.LATITUDE\tpygeodesy.karney._CapsBase-class.html#LATITUDE\npygeodesy.karney._CapsBase.caps_\tpygeodesy.karney._CapsBase-class.html#caps_\npygeodesy.geodesici.Intersectool5Tuple\tpygeodesy.geodesici.Intersectool5Tuple-class.html\npygeodesy.named._NamedTuple.toRepr\tpygeodesy.named._NamedTuple-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._NamedTuple.toUnits\tpygeodesy.named._NamedTuple-class.html#toUnits\npygeodesy.named._NamedTuple._validate\tpygeodesy.named._NamedTuple-class.html#_validate\npygeodesy.named._NamedTuple.__str__\tpygeodesy.named._NamedTuple-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._NamedTuple._DOT_\tpygeodesy.named._NamedTuple-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._NamedTuple.reUnit\tpygeodesy.named._NamedTuple-class.html#reUnit\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.geodesici.Intersectool5Tuple._Names_\tpygeodesy.geodesici.Intersectool5Tuple-class.html#_Names_\npygeodesy.named._NamedTuple.__setattr__\tpygeodesy.named._NamedTuple-class.html#__setattr__\npygeodesy.named._NamedTuple.__new__\tpygeodesy.named._NamedTuple-class.html#__new__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._NamedTuple._validated\tpygeodesy.named._NamedTuple-class.html#_validated\npygeodesy.named._NamedTuple.__getattr__\tpygeodesy.named._NamedTuple-class.html#__getattr__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._NamedTuple._xtend\tpygeodesy.named._NamedTuple-class.html#_xtend\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._NamedTuple.dup\tpygeodesy.named._NamedTuple-class.html#dup\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedTuple.toStr\tpygeodesy.named._NamedTuple-class.html#toStr\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedTuple.units\tpygeodesy.named._NamedTuple-class.html#units\npygeodesy.named._NamedTuple.iterunits\tpygeodesy.named._NamedTuple-class.html#iterunits\npygeodesy.named._NamedTuple.iteritems\tpygeodesy.named._NamedTuple-class.html#iteritems\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._NamedTuple.items\tpygeodesy.named._NamedTuple-class.html#items\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedTuple.__delattr__\tpygeodesy.named._NamedTuple-class.html#__delattr__\npygeodesy.named._NamedTuple.__repr__\tpygeodesy.named._NamedTuple-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._NamedTuple.__hash__\tpygeodesy.named._NamedTuple-class.html#__hash__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.geodesici.Intersectool5Tuple._Units_\tpygeodesy.geodesici.Intersectool5Tuple-class.html#_Units_\npygeodesy.geodesici.Intersector\tpygeodesy.geodesici.Intersector-class.html\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.geodesici.Intersector._conjDist3Tt_\tpygeodesy.geodesici.Intersector-class.html#_conjDist3Tt_\npygeodesy.named._NamedBase.__str__\tpygeodesy.named._NamedBase-class.html#__str__\npygeodesy.geodesici._IntersectBase.datum\tpygeodesy.geodesici._IntersectBase-class.html#datum\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.geodesici.Intersector._C\tpygeodesy.geodesici.Intersector-class.html#_C\npygeodesy.geodesici.Intersector.Closest5\tpygeodesy.geodesici.Intersector-class.html#Closest5\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.geodesici._IntersectBase.ellipsoid\tpygeodesy.geodesici._IntersectBase-class.html#ellipsoid\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.geodesici.Intersector.toStr\tpygeodesy.geodesici.Intersector-class.html#toStr\npygeodesy.geodesici.Intersector.Next5\tpygeodesy.geodesici.Intersector-class.html#Next5\npygeodesy.geodesici.Intersector._Spherical\tpygeodesy.geodesici.Intersector-class.html#_Spherical\npygeodesy.geodesici.Intersector._faPI_4\tpygeodesy.geodesici.Intersector-class.html#_faPI_4\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.geodesici.Intersector._T2D1Delta\tpygeodesy.geodesici.Intersector-class.html#_T2D1Delta\npygeodesy.geodesici.Intersector._gl3\tpygeodesy.geodesici.Intersector-class.html#_gl3\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.geodesici._IntersectBase._Inversa12\tpygeodesy.geodesici._IntersectBase-class.html#_Inversa12\npygeodesy.geodesici.Intersector._Delto\tpygeodesy.geodesici.Intersector-class.html#_Delto\npygeodesy.geodesici.Intersector._conjDist3s\tpygeodesy.geodesici.Intersector-class.html#_conjDist3s\npygeodesy.geodesici.Intersector._conjDist\tpygeodesy.geodesici.Intersector-class.html#_conjDist\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.geodesici.Intersector._T2d3Delta\tpygeodesy.geodesici.Intersector-class.html#_T2d3Delta\npygeodesy.geodesici.Intersector.Next\tpygeodesy.geodesici.Intersector-class.html#Next\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.geodesici.Intersector.Closest\tpygeodesy.geodesici.Intersector-class.html#Closest\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.geodesici.Intersector._m12_M12_M21\tpygeodesy.geodesici.Intersector-class.html#_m12_M12_M21\npygeodesy.geodesici._IntersectBase._cMax\tpygeodesy.geodesici._IntersectBase-class.html#_cMax\npygeodesy.geodesici._IntersectBase.flattening\tpygeodesy.geodesici._IntersectBase-class.html#flattening\npygeodesy.geodesici.Intersector.Line\tpygeodesy.geodesici.Intersector-class.html#Line\npygeodesy.geodesici.Intersector._polarB3\tpygeodesy.geodesici.Intersector-class.html#_polarB3\npygeodesy.geodesici.Intersector._Inverse\tpygeodesy.geodesici.Intersector-class.html#_Inverse\npygeodesy.geodesici.Intersector.Segment5\tpygeodesy.geodesici.Intersector-class.html#Segment5\npygeodesy.named._NamedBase.others\tpygeodesy.named._NamedBase-class.html#others\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.geodesici.Intersector._T2D2Delta\tpygeodesy.geodesici.Intersector-class.html#_T2D2Delta\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.geodesici.Intersector._Basic2\tpygeodesy.geodesici.Intersector-class.html#_Basic2\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._NamedBase.__repr__\tpygeodesy.named._NamedBase-class.html#__repr__\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.geodesici.Intersector._Position\tpygeodesy.geodesici.Intersector-class.html#_Position\npygeodesy.named._NamedBase.toRepr\tpygeodesy.named._NamedBase-class.html#toRepr\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.geodesici._IntersectBase.geodesic\tpygeodesy.geodesici._IntersectBase-class.html#geodesic\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.geodesici._IntersectBase.equatoradius\tpygeodesy.geodesici._IntersectBase-class.html#equatoradius\npygeodesy.geodesici.Intersector._obliqDist4\tpygeodesy.geodesici.Intersector-class.html#_obliqDist4\npygeodesy.geodesici.Intersector.Delta\tpygeodesy.geodesici.Intersector-class.html#Delta\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.geodesici.Intersector._GeodesicLine\tpygeodesy.geodesici.Intersector-class.html#_GeodesicLine\npygeodesy.geodesici._IntersectBase._illz2G\tpygeodesy.geodesici._IntersectBase-class.html#_illz2G\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.geodesici._IntersectBase.k2kAkB\tpygeodesy.geodesici._IntersectBase-class.html#k2kAkB\npygeodesy.geodesici._IntersectBase.R\tpygeodesy.geodesici._IntersectBase-class.html#R\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.geodesici._IntersectBase.f\tpygeodesy.geodesici._IntersectBase-class.html#f\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.geodesici.Intersector._middle3\tpygeodesy.geodesici.Intersector-class.html#_middle3\npygeodesy.geodesici._IntersectBase._sMaX0_C2\tpygeodesy.geodesici._IntersectBase-class.html#_sMaX0_C2\npygeodesy.geodesici.Intersector._Line\tpygeodesy.geodesici.Intersector-class.html#_Line\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.geodesici.Intersector._polarDist2\tpygeodesy.geodesici.Intersector-class.html#_polarDist2\npygeodesy.geodesici._IntersectBase.Next5s\tpygeodesy.geodesici._IntersectBase-class.html#Next5s\npygeodesy.geodesici.Intersector.Middle5\tpygeodesy.geodesici.Intersector-class.html#Middle5\npygeodesy.geodesici.Intersector.__init__\tpygeodesy.geodesici.Intersector-class.html#__init__\npygeodesy.geodesici.Intersector._conjDist3\tpygeodesy.geodesici.Intersector-class.html#_conjDist3\npygeodesy.geodesici.Intersector._conjDist5\tpygeodesy.geodesici.Intersector-class.html#_conjDist5\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.geodesici.Intersector._EPS3R\tpygeodesy.geodesici.Intersector-class.html#_EPS3R\npygeodesy.geodesici.Intersector._xLines\tpygeodesy.geodesici.Intersector-class.html#_xLines\npygeodesy.geodesici._IntersectBase._cHalf\tpygeodesy.geodesici._IntersectBase-class.html#_cHalf\npygeodesy.geodesici.Intersector.Segment\tpygeodesy.geodesici.Intersector-class.html#Segment\npygeodesy.geodesici._IntersectBase.intersect7\tpygeodesy.geodesici._IntersectBase-class.html#intersect7\npygeodesy.geodesici._IntersectBase._ll3z4ll\tpygeodesy.geodesici._IntersectBase-class.html#_ll3z4ll\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.geodesici._IntersectBase._xNext\tpygeodesy.geodesici._IntersectBase-class.html#_xNext\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.geodesici.Intersector.All5\tpygeodesy.geodesici.Intersector-class.html#All5\npygeodesy.geodesici.Intersector._In5T\tpygeodesy.geodesici.Intersector-class.html#_In5T\npygeodesy.geodesici._IntersectBase.a\tpygeodesy.geodesici._IntersectBase-class.html#a\npygeodesy.geodesici.Intersector.All\tpygeodesy.geodesici.Intersector-class.html#All\npygeodesy.geodesici.Intersector.Middle\tpygeodesy.geodesici.Intersector-class.html#Middle\npygeodesy.geodesici.Intersector._Tol\tpygeodesy.geodesici.Intersector-class.html#_Tol\npygeodesy.geodesici.Intersector5Tuple\tpygeodesy.geodesici.Intersector5Tuple-class.html\npygeodesy.named._NamedTuple.toRepr\tpygeodesy.named._NamedTuple-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._NamedTuple.toUnits\tpygeodesy.named._NamedTuple-class.html#toUnits\npygeodesy.named._NamedTuple._validate\tpygeodesy.named._NamedTuple-class.html#_validate\npygeodesy.named._NamedTuple.__str__\tpygeodesy.named._NamedTuple-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._NamedTuple._DOT_\tpygeodesy.named._NamedTuple-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._NamedTuple.reUnit\tpygeodesy.named._NamedTuple-class.html#reUnit\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.geodesici.Intersector5Tuple._Names_\tpygeodesy.geodesici.Intersector5Tuple-class.html#_Names_\npygeodesy.named._NamedTuple.__setattr__\tpygeodesy.named._NamedTuple-class.html#__setattr__\npygeodesy.named._NamedTuple.__new__\tpygeodesy.named._NamedTuple-class.html#__new__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._NamedTuple._validated\tpygeodesy.named._NamedTuple-class.html#_validated\npygeodesy.named._NamedTuple.__getattr__\tpygeodesy.named._NamedTuple-class.html#__getattr__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._NamedTuple._xtend\tpygeodesy.named._NamedTuple-class.html#_xtend\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._NamedTuple.dup\tpygeodesy.named._NamedTuple-class.html#dup\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedTuple.toStr\tpygeodesy.named._NamedTuple-class.html#toStr\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedTuple.units\tpygeodesy.named._NamedTuple-class.html#units\npygeodesy.named._NamedTuple.iterunits\tpygeodesy.named._NamedTuple-class.html#iterunits\npygeodesy.named._NamedTuple.iteritems\tpygeodesy.named._NamedTuple-class.html#iteritems\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._NamedTuple.items\tpygeodesy.named._NamedTuple-class.html#items\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedTuple.__delattr__\tpygeodesy.named._NamedTuple-class.html#__delattr__\npygeodesy.named._NamedTuple.__repr__\tpygeodesy.named._NamedTuple-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._NamedTuple.__hash__\tpygeodesy.named._NamedTuple-class.html#__hash__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.geodesici.Intersectool5Tuple._Units_\tpygeodesy.geodesici.Intersectool5Tuple-class.html#_Units_\npygeodesy.geodesici.Middle5Tuple\tpygeodesy.geodesici.Middle5Tuple-class.html\npygeodesy.named._NamedTuple.toRepr\tpygeodesy.named._NamedTuple-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._NamedTuple.toUnits\tpygeodesy.named._NamedTuple-class.html#toUnits\npygeodesy.named._NamedTuple._validate\tpygeodesy.named._NamedTuple-class.html#_validate\npygeodesy.named._NamedTuple.__str__\tpygeodesy.named._NamedTuple-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._NamedTuple._DOT_\tpygeodesy.named._NamedTuple-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._NamedTuple.reUnit\tpygeodesy.named._NamedTuple-class.html#reUnit\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.geodesici.Middle5Tuple._Names_\tpygeodesy.geodesici.Middle5Tuple-class.html#_Names_\npygeodesy.named._NamedTuple.__setattr__\tpygeodesy.named._NamedTuple-class.html#__setattr__\npygeodesy.named._NamedTuple.__new__\tpygeodesy.named._NamedTuple-class.html#__new__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._NamedTuple._validated\tpygeodesy.named._NamedTuple-class.html#_validated\npygeodesy.named._NamedTuple.__getattr__\tpygeodesy.named._NamedTuple-class.html#__getattr__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._NamedTuple._xtend\tpygeodesy.named._NamedTuple-class.html#_xtend\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._NamedTuple.dup\tpygeodesy.named._NamedTuple-class.html#dup\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedTuple.toStr\tpygeodesy.named._NamedTuple-class.html#toStr\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedTuple.units\tpygeodesy.named._NamedTuple-class.html#units\npygeodesy.named._NamedTuple.iterunits\tpygeodesy.named._NamedTuple-class.html#iterunits\npygeodesy.named._NamedTuple.iteritems\tpygeodesy.named._NamedTuple-class.html#iteritems\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._NamedTuple.items\tpygeodesy.named._NamedTuple-class.html#items\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedTuple.__delattr__\tpygeodesy.named._NamedTuple-class.html#__delattr__\npygeodesy.named._NamedTuple.__repr__\tpygeodesy.named._NamedTuple-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._NamedTuple.__hash__\tpygeodesy.named._NamedTuple-class.html#__hash__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.geodesici.Intersectool5Tuple._Units_\tpygeodesy.geodesici.Intersectool5Tuple-class.html#_Units_\npygeodesy.geodesici.XDict\tpygeodesy.geodesici.XDict-class.html\npygeodesy.named.ADict.toRepr\tpygeodesy.named.ADict-class.html#toRepr\npygeodesy.geodesici.XDict._fixCoincident\tpygeodesy.geodesici.XDict-class.html#_fixCoincident\npygeodesy.named.ADict.__str__\tpygeodesy.named.ADict-class.html#__str__\npygeodesy.named.ADict._AttributeError\tpygeodesy.named.ADict-class.html#_AttributeError\npygeodesy.geodesici.XDict.__lt__\tpygeodesy.geodesici.XDict-class.html#__lt__\npygeodesy.geodesici.XDict._nD2\tpygeodesy.geodesici.XDict-class.html#_nD2\npygeodesy.named.ADict.__setattr__\tpygeodesy.named.ADict-class.html#__setattr__\npygeodesy.named.ADict._toT\tpygeodesy.named.ADict-class.html#_toT\npygeodesy.named.ADict.__getattr__\tpygeodesy.named.ADict-class.html#__getattr__\npygeodesy.named.ADict._toL\tpygeodesy.named.ADict-class.html#_toL\npygeodesy.geodesici.XDict._nmD3\tpygeodesy.geodesici.XDict-class.html#_nmD3\npygeodesy.named.ADict.__repr__\tpygeodesy.named.ADict-class.html#__repr__\npygeodesy.geodesici.XDict._fixSegment\tpygeodesy.geodesici.XDict-class.html#_fixSegment\npygeodesy.geodesici.XDict.__ne__\tpygeodesy.geodesici.XDict-class.html#__ne__\npygeodesy.geodesici.XDict._is00\tpygeodesy.geodesici.XDict-class.html#_is00\npygeodesy.named.ADict._iteration\tpygeodesy.named.ADict-class.html#_iteration\npygeodesy.named.ADict.toStr\tpygeodesy.named.ADict-class.html#toStr\npygeodesy.geodesici.XDict._outSide\tpygeodesy.geodesici.XDict-class.html#_outSide\npygeodesy.geodesici.XDict._nD1\tpygeodesy.geodesici.XDict-class.html#_nD1\npygeodesy.geodesici.XDict.__add__\tpygeodesy.geodesici.XDict-class.html#__add__\npygeodesy.geodesici.XDict.L1\tpygeodesy.geodesici.XDict-class.html#L1\npygeodesy.named.ADict.set_\tpygeodesy.named.ADict-class.html#set_\npygeodesy.geodesici.XDict.__eq__\tpygeodesy.geodesici.XDict-class.html#__eq__\npygeodesy.geodesici.XDict._corners\tpygeodesy.geodesici.XDict-class.html#_corners\npygeodesy.geodesici.XDict._skip\tpygeodesy.geodesici.XDict-class.html#_skip\npygeodesy.named.ADict.iteration\tpygeodesy.named.ADict-class.html#iteration\npygeodesy.geodesici.XDict.__iadd__\tpygeodesy.geodesici.XDict-class.html#__iadd__\npygeodesy.named.ADict.typename\tpygeodesy.named.ADict-class.html#typename\npygeodesy.geodesici.XDict.__le__\tpygeodesy.geodesici.XDict-class.html#__le__\npygeodesy.geodesici.XDict._Delta\tpygeodesy.geodesici.XDict-class.html#_Delta\npygeodesy.geodesici._IntersectBase\tpygeodesy.geodesici._IntersectBase-class.html\npygeodesy.named._NamedBase.toRepr\tpygeodesy.named._NamedBase-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.geodesici._IntersectBase.Next5s\tpygeodesy.geodesici._IntersectBase-class.html#Next5s\npygeodesy.named._NamedBase.__str__\tpygeodesy.named._NamedBase-class.html#__str__\npygeodesy.geodesici._IntersectBase.datum\tpygeodesy.geodesici._IntersectBase-class.html#datum\npygeodesy.geodesici._IntersectBase.geodesic\tpygeodesy.geodesici._IntersectBase-class.html#geodesic\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.geodesici._IntersectBase.equatoradius\tpygeodesy.geodesici._IntersectBase-class.html#equatoradius\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.geodesici._IntersectBase.__init__\tpygeodesy.geodesici._IntersectBase-class.html#__init__\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.geodesici._IntersectBase.ellipsoid\tpygeodesy.geodesici._IntersectBase-class.html#ellipsoid\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.geodesici._IntersectBase._cMax\tpygeodesy.geodesici._IntersectBase-class.html#_cMax\npygeodesy.geodesici._IntersectBase.flattening\tpygeodesy.geodesici._IntersectBase-class.html#flattening\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.geodesici._IntersectBase.Line\tpygeodesy.geodesici._IntersectBase-class.html#Line\npygeodesy.geodesici._IntersectBase._cHalf\tpygeodesy.geodesici._IntersectBase-class.html#_cHalf\npygeodesy.geodesici._IntersectBase.intersect7\tpygeodesy.geodesici._IntersectBase-class.html#intersect7\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.geodesici._IntersectBase._ll3z4ll\tpygeodesy.geodesici._IntersectBase-class.html#_ll3z4ll\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.geodesici._IntersectBase._illz2G\tpygeodesy.geodesici._IntersectBase-class.html#_illz2G\npygeodesy.named._NamedBase.toStr\tpygeodesy.named._NamedBase-class.html#toStr\npygeodesy.geodesici._IntersectBase._xNext\tpygeodesy.geodesici._IntersectBase-class.html#_xNext\npygeodesy.geodesici._IntersectBase.k2kAkB\tpygeodesy.geodesici._IntersectBase-class.html#k2kAkB\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.geodesici._IntersectBase.R\tpygeodesy.geodesici._IntersectBase-class.html#R\npygeodesy.named._NamedBase.others\tpygeodesy.named._NamedBase-class.html#others\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.geodesici._IntersectBase.a\tpygeodesy.geodesici._IntersectBase-class.html#a\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.geodesici._IntersectBase.All\tpygeodesy.geodesici._IntersectBase-class.html#All\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.geodesici._IntersectBase.f\tpygeodesy.geodesici._IntersectBase-class.html#f\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedBase.__repr__\tpygeodesy.named._NamedBase-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.geodesici._IntersectBase._Inversa12\tpygeodesy.geodesici._IntersectBase-class.html#_Inversa12\npygeodesy.geodesici._IntersectBase._sMaX0_C2\tpygeodesy.geodesici._IntersectBase-class.html#_sMaX0_C2\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.geodesicw.Geodesic\tpygeodesy.geodesicw.Geodesic-class.html\npygeodesy.named._NamedBase.toRepr\tpygeodesy.named._NamedBase-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.karney._CapsBase.GEODESICSCALE\tpygeodesy.karney._CapsBase-class.html#GEODESICSCALE\npygeodesy.named._NamedBase.__str__\tpygeodesy.named._NamedBase-class.html#__str__\npygeodesy.named._NamedBase.others\tpygeodesy.named._NamedBase-class.html#others\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.karney._CapsBase.LINE_OFF\tpygeodesy.karney._CapsBase-class.html#LINE_OFF\npygeodesy.karney._CapsBase.NONFINITONAN\tpygeodesy.karney._CapsBase-class.html#NONFINITONAN\npygeodesy.karney._CapsBase.EMPTY\tpygeodesy.karney._CapsBase-class.html#EMPTY\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.geodesicw.Geodesic.__new__\tpygeodesy.geodesicw.Geodesic-class.html#__new__\npygeodesy.karney._CapsBase._debug\tpygeodesy.karney._CapsBase-class.html#_debug\npygeodesy.karney._CapsBase.AREA\tpygeodesy.karney._CapsBase-class.html#AREA\npygeodesy.karney._CapsBase.debug\tpygeodesy.karney._CapsBase-class.html#debug\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.karney._CapsBase.LONG_UNROLL\tpygeodesy.karney._CapsBase-class.html#LONG_UNROLL\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._NamedBase.toStr\tpygeodesy.named._NamedBase-class.html#toStr\npygeodesy.karney._CapsBase.LONGITUDE\tpygeodesy.karney._CapsBase-class.html#LONGITUDE\npygeodesy.karney._CapsBase.caps\tpygeodesy.karney._CapsBase-class.html#caps\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.karney._CapsBase.STANDARD_LINE\tpygeodesy.karney._CapsBase-class.html#STANDARD_LINE\npygeodesy.karney._CapsBase.REDUCEDLENGTH\tpygeodesy.karney._CapsBase-class.html#REDUCEDLENGTH\npygeodesy.karney._CapsBase._caps\tpygeodesy.karney._CapsBase-class.html#_caps\npygeodesy.karney._CapsBase.AZIMUTH\tpygeodesy.karney._CapsBase-class.html#AZIMUTH\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.karney._CapsBase.STANDARD\tpygeodesy.karney._CapsBase-class.html#STANDARD\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.karney._CapsBase.DISTANCE\tpygeodesy.karney._CapsBase-class.html#DISTANCE\npygeodesy.karney._CapsBase.ALL\tpygeodesy.karney._CapsBase-class.html#ALL\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.karney._CapsBase._iter2tion\tpygeodesy.karney._CapsBase-class.html#_iter2tion\npygeodesy.karney._CapsBase.DISTANCE_IN\tpygeodesy.karney._CapsBase-class.html#DISTANCE_IN\npygeodesy.karney._CapsBase.LINE_CAPS\tpygeodesy.karney._CapsBase-class.html#LINE_CAPS\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedBase.__repr__\tpygeodesy.named._NamedBase-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.karney._CapsBase.LATITUDE\tpygeodesy.karney._CapsBase-class.html#LATITUDE\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.karney._CapsBase.caps_\tpygeodesy.karney._CapsBase-class.html#caps_\npygeodesy.geodesicw.GeodesicLine\tpygeodesy.geodesicw.GeodesicLine-class.html\npygeodesy.named._NamedBase.toRepr\tpygeodesy.named._NamedBase-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.karney._CapsBase.GEODESICSCALE\tpygeodesy.karney._CapsBase-class.html#GEODESICSCALE\npygeodesy.named._NamedBase.__str__\tpygeodesy.named._NamedBase-class.html#__str__\npygeodesy.named._NamedBase.others\tpygeodesy.named._NamedBase-class.html#others\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.karney._CapsBase.LINE_OFF\tpygeodesy.karney._CapsBase-class.html#LINE_OFF\npygeodesy.karney._CapsBase.NONFINITONAN\tpygeodesy.karney._CapsBase-class.html#NONFINITONAN\npygeodesy.karney._CapsBase.EMPTY\tpygeodesy.karney._CapsBase-class.html#EMPTY\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.geodesicw.GeodesicLine.__new__\tpygeodesy.geodesicw.GeodesicLine-class.html#__new__\npygeodesy.karney._CapsBase._debug\tpygeodesy.karney._CapsBase-class.html#_debug\npygeodesy.karney._CapsBase.AREA\tpygeodesy.karney._CapsBase-class.html#AREA\npygeodesy.karney._CapsBase.debug\tpygeodesy.karney._CapsBase-class.html#debug\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.karney._CapsBase.LONG_UNROLL\tpygeodesy.karney._CapsBase-class.html#LONG_UNROLL\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._NamedBase.toStr\tpygeodesy.named._NamedBase-class.html#toStr\npygeodesy.karney._CapsBase.LONGITUDE\tpygeodesy.karney._CapsBase-class.html#LONGITUDE\npygeodesy.karney._CapsBase.caps\tpygeodesy.karney._CapsBase-class.html#caps\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.karney._CapsBase.STANDARD_LINE\tpygeodesy.karney._CapsBase-class.html#STANDARD_LINE\npygeodesy.karney._CapsBase.REDUCEDLENGTH\tpygeodesy.karney._CapsBase-class.html#REDUCEDLENGTH\npygeodesy.karney._CapsBase._caps\tpygeodesy.karney._CapsBase-class.html#_caps\npygeodesy.karney._CapsBase.AZIMUTH\tpygeodesy.karney._CapsBase-class.html#AZIMUTH\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.karney._CapsBase.STANDARD\tpygeodesy.karney._CapsBase-class.html#STANDARD\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.karney._CapsBase.DISTANCE\tpygeodesy.karney._CapsBase-class.html#DISTANCE\npygeodesy.karney._CapsBase.ALL\tpygeodesy.karney._CapsBase-class.html#ALL\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.karney._CapsBase._iter2tion\tpygeodesy.karney._CapsBase-class.html#_iter2tion\npygeodesy.karney._CapsBase.DISTANCE_IN\tpygeodesy.karney._CapsBase-class.html#DISTANCE_IN\npygeodesy.karney._CapsBase.LINE_CAPS\tpygeodesy.karney._CapsBase-class.html#LINE_CAPS\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedBase.__repr__\tpygeodesy.named._NamedBase-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.karney._CapsBase.LATITUDE\tpygeodesy.karney._CapsBase-class.html#LATITUDE\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.karney._CapsBase.caps_\tpygeodesy.karney._CapsBase-class.html#caps_\npygeodesy.geodesicx.gx.GeodesicExact\tpygeodesy.geodesicx.gx.GeodesicExact-class.html\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.geodesicx.gx.GeodesicExact.Inverse\tpygeodesy.geodesicx.gx.GeodesicExact-class.html#Inverse\npygeodesy.named._NamedBase.__str__\tpygeodesy.named._NamedBase-class.html#__str__\npygeodesy.geodesicx.gx.GeodesicExact.datum\tpygeodesy.geodesicx.gx.GeodesicExact-class.html#datum\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.geodesicx.gx.GeodesicExact._GDictInverse\tpygeodesy.geodesicx.gx.GeodesicExact-class.html#_GDictInverse\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.geodesicx.gx.GeodesicExact._n6PI\tpygeodesy.geodesicx.gx.GeodesicExact-class.html#_n6PI\npygeodesy.karney._CapsBase.NONFINITONAN\tpygeodesy.karney._CapsBase-class.html#NONFINITONAN\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.geodesicx.gx.GeodesicExact.ellipsoid\tpygeodesy.geodesicx.gx.GeodesicExact-class.html#ellipsoid\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.geodesicx.gx.GeodesicExact._eTOL2\tpygeodesy.geodesicx.gx.GeodesicExact-class.html#_eTOL2\npygeodesy.geodesicx.gx.GeodesicExact.toStr\tpygeodesy.geodesicx.gx.GeodesicExact-class.html#toStr\npygeodesy.geodesicx.gx.GeodesicExact._datum\tpygeodesy.geodesicx.gx.GeodesicExact-class.html#_datum\npygeodesy.karney._CapsBase.LONGITUDE\tpygeodesy.karney._CapsBase-class.html#LONGITUDE\npygeodesy.karney._CapsBase.caps\tpygeodesy.karney._CapsBase-class.html#caps\npygeodesy.karney._CapsBase.STANDARD_LINE\tpygeodesy.karney._CapsBase-class.html#STANDARD_LINE\npygeodesy.geodesicx.gx.GeodesicExact._InverseLine\tpygeodesy.geodesicx.gx.GeodesicExact-class.html#_InverseLine\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.karney._CapsBase._iter2tion\tpygeodesy.karney._CapsBase-class.html#_iter2tion\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.geodesicx.gx.GeodesicExact._eF_reset_cHe2_f1\tpygeodesy.geodesicx.gx.GeodesicExact-class.html#_eF_reset_cHe2_f1\npygeodesy.karney._CapsBase.debug\tpygeodesy.karney._CapsBase-class.html#debug\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.geodesicx.gx.GeodesicExact._e2a2\tpygeodesy.geodesicx.gx.GeodesicExact-class.html#_e2a2\npygeodesy.geodesicx.gx.GeodesicExact._Lambda6\tpygeodesy.geodesicx.gx.GeodesicExact-class.html#_Lambda6\npygeodesy.named._NamedBase.toRepr\tpygeodesy.named._NamedBase-class.html#toRepr\npygeodesy.geodesicx.gx.GeodesicExact._dn\tpygeodesy.geodesicx.gx.GeodesicExact-class.html#_dn\npygeodesy.geodesicx.gx.GeodesicExact.Area\tpygeodesy.geodesicx.gx.GeodesicExact-class.html#Area\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.geodesicx.gx.GeodesicExact.C4f\tpygeodesy.geodesicx.gx.GeodesicExact-class.html#C4f\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.karney._CapsBase.EMPTY\tpygeodesy.karney._CapsBase-class.html#EMPTY\npygeodesy.geodesicx.gx.GeodesicExact._C4f_k2\tpygeodesy.geodesicx.gx.GeodesicExact-class.html#_C4f_k2\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.geodesicx.gx.GeodesicExact.c2x\tpygeodesy.geodesicx.gx.GeodesicExact-class.html#c2x\npygeodesy.geodesicx.gx.GeodesicExact.flattening\tpygeodesy.geodesicx.gx.GeodesicExact-class.html#flattening\npygeodesy.geodesicx.gx.GeodesicExact.Direct3\tpygeodesy.geodesicx.gx.GeodesicExact-class.html#Direct3\npygeodesy.geodesicx.gx.GeodesicExact.Line\tpygeodesy.geodesicx.gx.GeodesicExact-class.html#Line\npygeodesy.geodesicx.gx.GeodesicExact._Inverse\tpygeodesy.geodesicx.gx.GeodesicExact-class.html#_Inverse\npygeodesy.geodesicx.gx.GeodesicExact._InverseStart6\tpygeodesy.geodesicx.gx.GeodesicExact-class.html#_InverseStart6\npygeodesy.geodesicx.gx.GeodesicExact.ArcDirect\tpygeodesy.geodesicx.gx.GeodesicExact-class.html#ArcDirect\npygeodesy.karney._CapsBase.AZIMUTH\tpygeodesy.karney._CapsBase-class.html#AZIMUTH\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.geodesicx.gx.GeodesicExact._n_0_1\tpygeodesy.geodesicx.gx.GeodesicExact-class.html#_n_0_1\npygeodesy.geodesicx.gx.GeodesicExact._GDictDirect\tpygeodesy.geodesicx.gx.GeodesicExact-class.html#_GDictDirect\npygeodesy.geodesicx.gx.GeodesicExact.e2\tpygeodesy.geodesicx.gx.GeodesicExact-class.html#e2\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.karney._CapsBase.DISTANCE\tpygeodesy.karney._CapsBase-class.html#DISTANCE\npygeodesy.geodesicx.gx.GeodesicExact.DirectLine\tpygeodesy.geodesicx.gx.GeodesicExact-class.html#DirectLine\npygeodesy.karney._CapsBase._debug\tpygeodesy.karney._CapsBase-class.html#_debug\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.geodesicx.gx.GeodesicExact._eF\tpygeodesy.geodesicx.gx.GeodesicExact-class.html#_eF\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._NamedBase.__repr__\tpygeodesy.named._NamedBase-class.html#__repr__\npygeodesy.geodesicx.gx.GeodesicExact._GenInverse\tpygeodesy.geodesicx.gx.GeodesicExact-class.html#_GenInverse\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.geodesicx.gx.GeodesicExact._Length5\tpygeodesy.geodesicx.gx.GeodesicExact-class.html#_Length5\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._NamedBase.others\tpygeodesy.named._NamedBase-class.html#others\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.geodesicx.gx.GeodesicExact._InverseArea\tpygeodesy.geodesicx.gx.GeodesicExact-class.html#_InverseArea\npygeodesy.karney._CapsBase.AREA\tpygeodesy.karney._CapsBase-class.html#AREA\npygeodesy.geodesicx.gx.GeodesicExact.Inverse1\tpygeodesy.geodesicx.gx.GeodesicExact-class.html#Inverse1\npygeodesy.geodesicx.gx.GeodesicExact._C4x\tpygeodesy.geodesicx.gx.GeodesicExact-class.html#_C4x\npygeodesy.geodesicx.gx.GeodesicExact.Inverse3\tpygeodesy.geodesicx.gx.GeodesicExact-class.html#Inverse3\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.geodesicx.gx.GeodesicExact._e2_f1\tpygeodesy.geodesicx.gx.GeodesicExact-class.html#_e2_f1\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.karney._CapsBase.STANDARD\tpygeodesy.karney._CapsBase-class.html#STANDARD\npygeodesy.geodesicx.gx.GeodesicExact.InverseLine\tpygeodesy.geodesicx.gx.GeodesicExact-class.html#InverseLine\npygeodesy.geodesicx.gx.GeodesicExact.ArcDirectLine\tpygeodesy.geodesicx.gx.GeodesicExact-class.html#ArcDirectLine\npygeodesy.karney._CapsBase._caps\tpygeodesy.karney._CapsBase-class.html#_caps\npygeodesy.geodesicx.gx.GeodesicExact.c2\tpygeodesy.geodesicx.gx.GeodesicExact-class.html#c2\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.karney._CapsBase.ALL\tpygeodesy.karney._CapsBase-class.html#ALL\npygeodesy.geodesicx.gx.GeodesicExact.b\tpygeodesy.geodesicx.gx.GeodesicExact-class.html#b\npygeodesy.geodesicx.gx.GeodesicExact.f\tpygeodesy.geodesicx.gx.GeodesicExact-class.html#f\npygeodesy.karney._CapsBase.DISTANCE_IN\tpygeodesy.karney._CapsBase-class.html#DISTANCE_IN\npygeodesy.geodesicx.gx.GeodesicExact._Newton6\tpygeodesy.geodesicx.gx.GeodesicExact-class.html#_Newton6\npygeodesy.geodesicx.gx.GeodesicExact.n\tpygeodesy.geodesicx.gx.GeodesicExact-class.html#n\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.geodesicx.gx.GeodesicExact._eF_reset_k2\tpygeodesy.geodesicx.gx.GeodesicExact-class.html#_eF_reset_k2\npygeodesy.geodesicx.gx.GeodesicExact._DirectLine\tpygeodesy.geodesicx.gx.GeodesicExact-class.html#_DirectLine\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.geodesicx.gx.GeodesicExact.f1\tpygeodesy.geodesicx.gx.GeodesicExact-class.html#f1\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.geodesicx.gx.GeodesicExact.C4order\tpygeodesy.geodesicx.gx.GeodesicExact-class.html#C4order\npygeodesy.geodesicx.gx.GeodesicExact.Polygon\tpygeodesy.geodesicx.gx.GeodesicExact-class.html#Polygon\npygeodesy.karney._CapsBase.GEODESICSCALE\tpygeodesy.karney._CapsBase-class.html#GEODESICSCALE\npygeodesy.geodesicx.gx.GeodesicExact._GenDirect\tpygeodesy.geodesicx.gx.GeodesicExact-class.html#_GenDirect\npygeodesy.karney._CapsBase.LINE_OFF\tpygeodesy.karney._CapsBase-class.html#LINE_OFF\npygeodesy.geodesicx.gx.GeodesicExact.__init__\tpygeodesy.geodesicx.gx.GeodesicExact-class.html#__init__\npygeodesy.geodesicx.gx.GeodesicExact.C4Order\tpygeodesy.geodesicx.gx.GeodesicExact-class.html#C4Order\npygeodesy.karney._CapsBase.LINE_CAPS\tpygeodesy.karney._CapsBase-class.html#LINE_CAPS\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.geodesicx.gx.GeodesicExact.ep2\tpygeodesy.geodesicx.gx.GeodesicExact-class.html#ep2\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.karney._CapsBase.LONG_UNROLL\tpygeodesy.karney._CapsBase-class.html#LONG_UNROLL\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.geodesicx.gx.GeodesicExact._f180\tpygeodesy.geodesicx.gx.GeodesicExact-class.html#_f180\npygeodesy.geodesicx.gx.GeodesicExact.a\tpygeodesy.geodesicx.gx.GeodesicExact-class.html#a\npygeodesy.karney._CapsBase.REDUCEDLENGTH\tpygeodesy.karney._CapsBase-class.html#REDUCEDLENGTH\npygeodesy.geodesicx.gx.GeodesicExact.e22\tpygeodesy.geodesicx.gx.GeodesicExact-class.html#e22\npygeodesy.geodesicx.gx.GeodesicExact.Direct\tpygeodesy.geodesicx.gx.GeodesicExact-class.html#Direct\npygeodesy.karney._CapsBase.LATITUDE\tpygeodesy.karney._CapsBase-class.html#LATITUDE\npygeodesy.karney._CapsBase.caps_\tpygeodesy.karney._CapsBase-class.html#caps_\npygeodesy.geodesicx.gx.GeodesicExact._nC4\tpygeodesy.geodesicx.gx.GeodesicExact-class.html#_nC4\npygeodesy.geodesicx.gx.GeodesicLineExact\tpygeodesy.geodesicx.gx.GeodesicLineExact-class.html\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._NamedBase.__str__\tpygeodesy.named._NamedBase-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.karney._CapsBase.NONFINITONAN\tpygeodesy.karney._CapsBase-class.html#NONFINITONAN\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.karney._CapsBase._debug\tpygeodesy.karney._CapsBase-class.html#_debug\npygeodesy.geodesicx.gxline._GeodesicLineExact.azi1_sincos2\tpygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#azi1_sincos2\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.geodesicx.gxline._GeodesicLineExact.toStr\tpygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#toStr\npygeodesy.geodesicx.gxline._GeodesicLineExact.SetDistance\tpygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#SetDistance\npygeodesy.karney._CapsBase.LONGITUDE\tpygeodesy.karney._CapsBase-class.html#LONGITUDE\npygeodesy.karney._CapsBase.caps\tpygeodesy.karney._CapsBase-class.html#caps\npygeodesy.karney._CapsBase.STANDARD_LINE\tpygeodesy.karney._CapsBase-class.html#STANDARD_LINE\npygeodesy.geodesicx.gxline._GeodesicLineExact.Intersecant2\tpygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#Intersecant2\npygeodesy.geodesicx.gxline._GeodesicLineExact._GenSet\tpygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#_GenSet\npygeodesy.geodesicx.gxline._GeodesicLineExact.Position\tpygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#Position\npygeodesy.geodesicx.gxline._GeodesicLineExact.lat1\tpygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#lat1\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.karney._CapsBase._iter2tion\tpygeodesy.karney._CapsBase-class.html#_iter2tion\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.geodesicx.gxline._GeodesicLineExact.Arc\tpygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#Arc\npygeodesy.karney._CapsBase.debug\tpygeodesy.karney._CapsBase-class.html#debug\npygeodesy.geodesicx.gxline._GeodesicLineExact._D0k2\tpygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#_D0k2\npygeodesy.geodesicx.gxline._GeodesicLineExact._E1\tpygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#_E1\npygeodesy.named._NamedBase.toRepr\tpygeodesy.named._NamedBase-class.html#toRepr\npygeodesy.geodesicx.gxline._GeodesicLineExact._B41\tpygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#_B41\npygeodesy.geodesicx.gxline._GeodesicLineExact.azi0\tpygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#azi0\npygeodesy.geodesicx.gxline._GeodesicLineExact.azi1\tpygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#azi1\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.karney._CapsBase.EMPTY\tpygeodesy.karney._CapsBase-class.html#EMPTY\npygeodesy.geodesicx.gxline._GeodesicLineExact.a13\tpygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#a13\npygeodesy.geodesicx.gxline._GeodesicLineExact._GenPosition\tpygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#_GenPosition\npygeodesy.geodesicx.gxline._GeodesicLineExact._D1\tpygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#_D1\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.geodesicx.gxline._GeodesicLineExact.s13\tpygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#s13\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._NamedBase.others\tpygeodesy.named._NamedBase-class.html#others\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.geodesicx.gxline._GeodesicLineExact._caps_DISTANCE_IN\tpygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#_caps_DISTANCE_IN\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.karney._CapsBase.DISTANCE\tpygeodesy.karney._CapsBase-class.html#DISTANCE\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.geodesicx.gxline._GeodesicLineExact._eF\tpygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#_eF\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._NamedBase.__repr__\tpygeodesy.named._NamedBase-class.html#__repr__\npygeodesy.geodesicx.gxline._GeodesicLineExact._H0e2_f1\tpygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#_H0e2_f1\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.karney._CapsBase.AZIMUTH\tpygeodesy.karney._CapsBase-class.html#AZIMUTH\npygeodesy.geodesicx.gxline._GeodesicLineExact.geodesic\tpygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#geodesic\npygeodesy.geodesicx.gxline._GeodesicLineExact._E0b\tpygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#_E0b\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.geodesicx.gxline._GeodesicLineExact._GDictPosition\tpygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#_GDictPosition\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.geodesicx.gxline._GeodesicLineExact.SetArc\tpygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#SetArc\npygeodesy.karney._CapsBase.AREA\tpygeodesy.karney._CapsBase-class.html#AREA\npygeodesy.geodesicx.gxline._GeodesicLineExact._C4a\tpygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#_C4a\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.geodesicx.gxline._GeodesicLineExact.azi0_sincos2\tpygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#azi0_sincos2\npygeodesy.geodesicx.gxline._GeodesicLineExact._s13\tpygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#_s13\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.geodesicx.gxline._GeodesicLineExact.__del__\tpygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#__del__\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.geodesicx.gxline._GeodesicLineExact._H1\tpygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#_H1\npygeodesy.karney._CapsBase.STANDARD\tpygeodesy.karney._CapsBase-class.html#STANDARD\npygeodesy.geodesicx.gxline._GeodesicLineExact._caps\tpygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#_caps\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.karney._CapsBase.ALL\tpygeodesy.karney._CapsBase-class.html#ALL\npygeodesy.karney._CapsBase.DISTANCE_IN\tpygeodesy.karney._CapsBase-class.html#DISTANCE_IN\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.geodesicx.gxline._GeodesicLineExact._gX\tpygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#_gX\npygeodesy.geodesicx.gxline._GeodesicLineExact.lon1\tpygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#lon1\npygeodesy.geodesicx.gxline._GeodesicLineExact._stau1_ctau1\tpygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#_stau1_ctau1\npygeodesy.geodesicx.gxline._GeodesicLineExact._update\tpygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#_update\npygeodesy.karney._CapsBase.GEODESICSCALE\tpygeodesy.karney._CapsBase-class.html#GEODESICSCALE\npygeodesy.geodesicx.gxline._GeodesicLineExact.PlumbTo\tpygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#PlumbTo\npygeodesy.geodesicx.gxline._GeodesicLineExact._lon1_norm180\tpygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#_lon1_norm180\npygeodesy.karney._CapsBase.LINE_OFF\tpygeodesy.karney._CapsBase-class.html#LINE_OFF\npygeodesy.geodesicx.gx.GeodesicLineExact.__init__\tpygeodesy.geodesicx.gx.GeodesicLineExact-class.html#__init__\npygeodesy.karney._CapsBase.LINE_CAPS\tpygeodesy.karney._CapsBase-class.html#LINE_CAPS\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.geodesicx.gxline._GeodesicLineExact.Distance\tpygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#Distance\npygeodesy.karney._CapsBase.LONG_UNROLL\tpygeodesy.karney._CapsBase-class.html#LONG_UNROLL\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.geodesicx.gxline._GeodesicLineExact.equatorazimuth\tpygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#equatorazimuth\npygeodesy.geodesicx.gxline._GeodesicLineExact.a1\tpygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#a1\npygeodesy.geodesicx.gxline._GeodesicLineExact._a13\tpygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#_a13\npygeodesy.geodesicx.gxline._GeodesicLineExact._toProps7\tpygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#_toProps7\npygeodesy.karney._CapsBase.REDUCEDLENGTH\tpygeodesy.karney._CapsBase-class.html#REDUCEDLENGTH\npygeodesy.geodesicx.gxline._GeodesicLineExact.ArcPosition\tpygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#ArcPosition\npygeodesy.geodesicx.gxline._GeodesicLineExact.equatorarc\tpygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#equatorarc\npygeodesy.karney._CapsBase.LATITUDE\tpygeodesy.karney._CapsBase-class.html#LATITUDE\npygeodesy.karney._CapsBase.caps_\tpygeodesy.karney._CapsBase-class.html#caps_\npygeodesy.geodesicx.gxarea.GeodesicAreaExact\tpygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html\npygeodesy.named._NamedBase.toRepr\tpygeodesy.named._NamedBase-class.html#toRepr\npygeodesy.geodesicx.gxarea.GeodesicAreaExact._g_gX\tpygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#_g_gX\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.geodesicx.gxarea.GeodesicAreaExact.verbose\tpygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#verbose\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedBase.__str__\tpygeodesy.named._NamedBase-class.html#__str__\npygeodesy.geodesicx.gxarea.GeodesicAreaExact.geodesic\tpygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#geodesic\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.geodesicx.gxarea.GeodesicAreaExact._lat1\tpygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#_lat1\npygeodesy.geodesicx.gxarea.GeodesicAreaExact._lat0\tpygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#_lat0\npygeodesy.geodesicx.gxarea.GeodesicAreaExact.polyline\tpygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#polyline\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.geodesicx.gxarea.GeodesicAreaExact._print\tpygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#_print\npygeodesy.geodesicx.gxarea.GeodesicAreaExact.earth\tpygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#earth\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.geodesicx.gxarea.GeodesicAreaExact.area0\tpygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#area0\npygeodesy.geodesicx.gxarea.GeodesicAreaExact.__init__\tpygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#__init__\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.geodesicx.gxarea.GeodesicAreaExact.ellipsoid\tpygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#ellipsoid\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.geodesicx.gxarea.GeodesicAreaExact._Peri\tpygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#_Peri\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.geodesicx.gxarea.GeodesicAreaExact.TestPoint\tpygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#TestPoint\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.geodesicx.gxarea.GeodesicAreaExact._lon1\tpygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#_lon1\npygeodesy.geodesicx.gxarea.GeodesicAreaExact._lon0\tpygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#_lon0\npygeodesy.geodesicx.gxarea.GeodesicAreaExact.AddEdge\tpygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#AddEdge\npygeodesy.named._NamedBase.__repr__\tpygeodesy.named._NamedBase-class.html#__repr__\npygeodesy.geodesicx.gxarea.GeodesicAreaExact.Reset\tpygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#Reset\npygeodesy.geodesicx.gxarea.GeodesicAreaExact._Inverse\tpygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#_Inverse\npygeodesy.geodesicx.gxarea.GeodesicAreaExact._reduced\tpygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#_reduced\npygeodesy.geodesicx.gxarea.GeodesicAreaExact.Compute\tpygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#Compute\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.geodesicx.gxarea.GeodesicAreaExact.AddPoint\tpygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#AddPoint\npygeodesy.geodesicx.gxarea.GeodesicAreaExact.toStr\tpygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#toStr\npygeodesy.geodesicx.gxarea.GeodesicAreaExact.Clear\tpygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#Clear\npygeodesy.geodesicx.gxarea.GeodesicAreaExact._Direct\tpygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#_Direct\npygeodesy.geodesicx.gxarea.GeodesicAreaExact._xings\tpygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#_xings\npygeodesy.geodesicx.gxarea.GeodesicAreaExact._mask\tpygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#_mask\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.geodesicx.gxarea.GeodesicAreaExact.TestEdge\tpygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#TestEdge\npygeodesy.named._NamedBase.others\tpygeodesy.named._NamedBase-class.html#others\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.geodesicx.gxarea.GeodesicAreaExact._verbose\tpygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#_verbose\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.geodesicx.gxarea.GeodesicAreaExact._Area\tpygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#_Area\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.geodesicx.gxarea.GeodesicAreaExact.lat1\tpygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#lat1\npygeodesy.geodesicx.gxarea.GeodesicAreaExact.lat0\tpygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#lat0\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.geodesicx.gxarea.GeodesicAreaExact._num\tpygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#_num\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.geodesicx.gxarea.GeodesicAreaExact.num\tpygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#num\npygeodesy.geodesicx.gxarea.GeodesicAreaExact.area0x\tpygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#area0x\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.geodesicx.gxarea.GeodesicAreaExact.lon1\tpygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#lon1\npygeodesy.geodesicx.gxarea.GeodesicAreaExact.lon0\tpygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#lon0\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.geodesicx.gxarea.PolygonArea\tpygeodesy.geodesicx.gxarea.PolygonArea-class.html\npygeodesy.named._NamedBase.toRepr\tpygeodesy.named._NamedBase-class.html#toRepr\npygeodesy.geodesicx.gxarea.GeodesicAreaExact._g_gX\tpygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#_g_gX\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.geodesicx.gxarea.GeodesicAreaExact.verbose\tpygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#verbose\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedBase.__str__\tpygeodesy.named._NamedBase-class.html#__str__\npygeodesy.geodesicx.gxarea.GeodesicAreaExact.geodesic\tpygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#geodesic\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.geodesicx.gxarea.GeodesicAreaExact._lat1\tpygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#_lat1\npygeodesy.geodesicx.gxarea.GeodesicAreaExact._lat0\tpygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#_lat0\npygeodesy.geodesicx.gxarea.GeodesicAreaExact.polyline\tpygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#polyline\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.geodesicx.gxarea.GeodesicAreaExact._print\tpygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#_print\npygeodesy.geodesicx.gxarea.GeodesicAreaExact.earth\tpygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#earth\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.geodesicx.gxarea.GeodesicAreaExact.area0\tpygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#area0\npygeodesy.geodesicx.gxarea.PolygonArea.__init__\tpygeodesy.geodesicx.gxarea.PolygonArea-class.html#__init__\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.geodesicx.gxarea.GeodesicAreaExact.ellipsoid\tpygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#ellipsoid\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.geodesicx.gxarea.GeodesicAreaExact._Peri\tpygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#_Peri\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.geodesicx.gxarea.GeodesicAreaExact.TestPoint\tpygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#TestPoint\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.geodesicx.gxarea.GeodesicAreaExact._lon1\tpygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#_lon1\npygeodesy.geodesicx.gxarea.GeodesicAreaExact._lon0\tpygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#_lon0\npygeodesy.geodesicx.gxarea.GeodesicAreaExact.AddEdge\tpygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#AddEdge\npygeodesy.named._NamedBase.__repr__\tpygeodesy.named._NamedBase-class.html#__repr__\npygeodesy.geodesicx.gxarea.GeodesicAreaExact.Reset\tpygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#Reset\npygeodesy.geodesicx.gxarea.GeodesicAreaExact._Inverse\tpygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#_Inverse\npygeodesy.geodesicx.gxarea.GeodesicAreaExact._reduced\tpygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#_reduced\npygeodesy.geodesicx.gxarea.GeodesicAreaExact.Compute\tpygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#Compute\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.geodesicx.gxarea.GeodesicAreaExact._Area\tpygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#_Area\npygeodesy.geodesicx.gxarea.GeodesicAreaExact.toStr\tpygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#toStr\npygeodesy.geodesicx.gxarea.GeodesicAreaExact.Clear\tpygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#Clear\npygeodesy.geodesicx.gxarea.GeodesicAreaExact._Direct\tpygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#_Direct\npygeodesy.geodesicx.gxarea.GeodesicAreaExact._xings\tpygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#_xings\npygeodesy.geodesicx.gxarea.GeodesicAreaExact._mask\tpygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#_mask\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.geodesicx.gxarea.GeodesicAreaExact.TestEdge\tpygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#TestEdge\npygeodesy.named._NamedBase.others\tpygeodesy.named._NamedBase-class.html#others\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.geodesicx.gxarea.GeodesicAreaExact._verbose\tpygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#_verbose\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.geodesicx.gxarea.GeodesicAreaExact.AddPoint\tpygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#AddPoint\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.geodesicx.gxarea.GeodesicAreaExact.lat1\tpygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#lat1\npygeodesy.geodesicx.gxarea.GeodesicAreaExact.lat0\tpygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#lat0\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.geodesicx.gxarea.GeodesicAreaExact._num\tpygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#_num\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.geodesicx.gxarea.GeodesicAreaExact.num\tpygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#num\npygeodesy.geodesicx.gxarea.GeodesicAreaExact.area0x\tpygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#area0x\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.geodesicx.gxarea.GeodesicAreaExact.lon1\tpygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#lon1\npygeodesy.geodesicx.gxarea.GeodesicAreaExact.lon0\tpygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#lon0\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.geodesicx.gxline._GeodesicLineExact\tpygeodesy.geodesicx.gxline._GeodesicLineExact-class.html\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._NamedBase.__str__\tpygeodesy.named._NamedBase-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.karney._CapsBase.NONFINITONAN\tpygeodesy.karney._CapsBase-class.html#NONFINITONAN\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.karney._CapsBase._debug\tpygeodesy.karney._CapsBase-class.html#_debug\npygeodesy.geodesicx.gxline._GeodesicLineExact.azi1_sincos2\tpygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#azi1_sincos2\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.geodesicx.gxline._GeodesicLineExact.toStr\tpygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#toStr\npygeodesy.geodesicx.gxline._GeodesicLineExact.SetDistance\tpygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#SetDistance\npygeodesy.karney._CapsBase.LONGITUDE\tpygeodesy.karney._CapsBase-class.html#LONGITUDE\npygeodesy.karney._CapsBase.caps\tpygeodesy.karney._CapsBase-class.html#caps\npygeodesy.karney._CapsBase.STANDARD_LINE\tpygeodesy.karney._CapsBase-class.html#STANDARD_LINE\npygeodesy.geodesicx.gxline._GeodesicLineExact.Intersecant2\tpygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#Intersecant2\npygeodesy.geodesicx.gxline._GeodesicLineExact._GenSet\tpygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#_GenSet\npygeodesy.geodesicx.gxline._GeodesicLineExact.Position\tpygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#Position\npygeodesy.geodesicx.gxline._GeodesicLineExact.lat1\tpygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#lat1\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.karney._CapsBase._iter2tion\tpygeodesy.karney._CapsBase-class.html#_iter2tion\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.geodesicx.gxline._GeodesicLineExact.Arc\tpygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#Arc\npygeodesy.karney._CapsBase.debug\tpygeodesy.karney._CapsBase-class.html#debug\npygeodesy.geodesicx.gxline._GeodesicLineExact._D0k2\tpygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#_D0k2\npygeodesy.geodesicx.gxline._GeodesicLineExact._E1\tpygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#_E1\npygeodesy.named._NamedBase.toRepr\tpygeodesy.named._NamedBase-class.html#toRepr\npygeodesy.geodesicx.gxline._GeodesicLineExact._B41\tpygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#_B41\npygeodesy.geodesicx.gxline._GeodesicLineExact.azi0\tpygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#azi0\npygeodesy.geodesicx.gxline._GeodesicLineExact.azi1\tpygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#azi1\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.karney._CapsBase.EMPTY\tpygeodesy.karney._CapsBase-class.html#EMPTY\npygeodesy.geodesicx.gxline._GeodesicLineExact.a13\tpygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#a13\npygeodesy.geodesicx.gxline._GeodesicLineExact._GenPosition\tpygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#_GenPosition\npygeodesy.geodesicx.gxline._GeodesicLineExact._D1\tpygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#_D1\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.geodesicx.gxline._GeodesicLineExact.s13\tpygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#s13\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._NamedBase.others\tpygeodesy.named._NamedBase-class.html#others\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.geodesicx.gxline._GeodesicLineExact._caps_DISTANCE_IN\tpygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#_caps_DISTANCE_IN\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.karney._CapsBase.DISTANCE\tpygeodesy.karney._CapsBase-class.html#DISTANCE\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.geodesicx.gxline._GeodesicLineExact._eF\tpygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#_eF\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._NamedBase.__repr__\tpygeodesy.named._NamedBase-class.html#__repr__\npygeodesy.geodesicx.gxline._GeodesicLineExact._H0e2_f1\tpygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#_H0e2_f1\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.karney._CapsBase.AZIMUTH\tpygeodesy.karney._CapsBase-class.html#AZIMUTH\npygeodesy.geodesicx.gxline._GeodesicLineExact.geodesic\tpygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#geodesic\npygeodesy.geodesicx.gxline._GeodesicLineExact._E0b\tpygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#_E0b\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.geodesicx.gxline._GeodesicLineExact._GDictPosition\tpygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#_GDictPosition\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.geodesicx.gxline._GeodesicLineExact.SetArc\tpygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#SetArc\npygeodesy.karney._CapsBase.AREA\tpygeodesy.karney._CapsBase-class.html#AREA\npygeodesy.geodesicx.gxline._GeodesicLineExact._C4a\tpygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#_C4a\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.geodesicx.gxline._GeodesicLineExact.azi0_sincos2\tpygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#azi0_sincos2\npygeodesy.geodesicx.gxline._GeodesicLineExact._s13\tpygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#_s13\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.geodesicx.gxline._GeodesicLineExact.__del__\tpygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#__del__\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.geodesicx.gxline._GeodesicLineExact._H1\tpygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#_H1\npygeodesy.karney._CapsBase.STANDARD\tpygeodesy.karney._CapsBase-class.html#STANDARD\npygeodesy.geodesicx.gxline._GeodesicLineExact._caps\tpygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#_caps\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.karney._CapsBase.ALL\tpygeodesy.karney._CapsBase-class.html#ALL\npygeodesy.karney._CapsBase.DISTANCE_IN\tpygeodesy.karney._CapsBase-class.html#DISTANCE_IN\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.geodesicx.gxline._GeodesicLineExact._gX\tpygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#_gX\npygeodesy.geodesicx.gxline._GeodesicLineExact.lon1\tpygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#lon1\npygeodesy.geodesicx.gxline._GeodesicLineExact._stau1_ctau1\tpygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#_stau1_ctau1\npygeodesy.geodesicx.gxline._GeodesicLineExact._update\tpygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#_update\npygeodesy.karney._CapsBase.GEODESICSCALE\tpygeodesy.karney._CapsBase-class.html#GEODESICSCALE\npygeodesy.geodesicx.gxline._GeodesicLineExact.PlumbTo\tpygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#PlumbTo\npygeodesy.geodesicx.gxline._GeodesicLineExact._lon1_norm180\tpygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#_lon1_norm180\npygeodesy.karney._CapsBase.LINE_OFF\tpygeodesy.karney._CapsBase-class.html#LINE_OFF\npygeodesy.geodesicx.gxline._GeodesicLineExact.__init__\tpygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#__init__\npygeodesy.karney._CapsBase.LINE_CAPS\tpygeodesy.karney._CapsBase-class.html#LINE_CAPS\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.geodesicx.gxline._GeodesicLineExact.Distance\tpygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#Distance\npygeodesy.karney._CapsBase.LONG_UNROLL\tpygeodesy.karney._CapsBase-class.html#LONG_UNROLL\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.geodesicx.gxline._GeodesicLineExact.equatorazimuth\tpygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#equatorazimuth\npygeodesy.geodesicx.gxline._GeodesicLineExact.a1\tpygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#a1\npygeodesy.geodesicx.gxline._GeodesicLineExact._a13\tpygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#_a13\npygeodesy.geodesicx.gxline._GeodesicLineExact._toProps7\tpygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#_toProps7\npygeodesy.karney._CapsBase.REDUCEDLENGTH\tpygeodesy.karney._CapsBase-class.html#REDUCEDLENGTH\npygeodesy.geodesicx.gxline._GeodesicLineExact.ArcPosition\tpygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#ArcPosition\npygeodesy.geodesicx.gxline._GeodesicLineExact.equatorarc\tpygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#equatorarc\npygeodesy.karney._CapsBase.LATITUDE\tpygeodesy.karney._CapsBase-class.html#LATITUDE\npygeodesy.karney._CapsBase.caps_\tpygeodesy.karney._CapsBase-class.html#caps_\npygeodesy.geodsolve.GeodSolve12Tuple\tpygeodesy.geodsolve.GeodSolve12Tuple-class.html\npygeodesy.named._NamedTuple.toRepr\tpygeodesy.named._NamedTuple-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._NamedTuple.toUnits\tpygeodesy.named._NamedTuple-class.html#toUnits\npygeodesy.named._NamedTuple._validate\tpygeodesy.named._NamedTuple-class.html#_validate\npygeodesy.named._NamedTuple.__str__\tpygeodesy.named._NamedTuple-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._NamedTuple._DOT_\tpygeodesy.named._NamedTuple-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._NamedTuple.reUnit\tpygeodesy.named._NamedTuple-class.html#reUnit\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.geodsolve.GeodSolve12Tuple._Names_\tpygeodesy.geodsolve.GeodSolve12Tuple-class.html#_Names_\npygeodesy.named._NamedTuple.__setattr__\tpygeodesy.named._NamedTuple-class.html#__setattr__\npygeodesy.named._NamedTuple.__new__\tpygeodesy.named._NamedTuple-class.html#__new__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._NamedTuple._validated\tpygeodesy.named._NamedTuple-class.html#_validated\npygeodesy.named._NamedTuple.__getattr__\tpygeodesy.named._NamedTuple-class.html#__getattr__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._NamedTuple._xtend\tpygeodesy.named._NamedTuple-class.html#_xtend\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._NamedTuple.units\tpygeodesy.named._NamedTuple-class.html#units\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedTuple.toStr\tpygeodesy.named._NamedTuple-class.html#toStr\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedTuple.dup\tpygeodesy.named._NamedTuple-class.html#dup\npygeodesy.named._NamedTuple.iterunits\tpygeodesy.named._NamedTuple-class.html#iterunits\npygeodesy.named._NamedTuple.iteritems\tpygeodesy.named._NamedTuple-class.html#iteritems\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._NamedTuple.items\tpygeodesy.named._NamedTuple-class.html#items\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedTuple.__delattr__\tpygeodesy.named._NamedTuple-class.html#__delattr__\npygeodesy.named._NamedTuple.__repr__\tpygeodesy.named._NamedTuple-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._NamedTuple.__hash__\tpygeodesy.named._NamedTuple-class.html#__hash__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.geodsolve.GeodSolve12Tuple._Units_\tpygeodesy.geodsolve.GeodSolve12Tuple-class.html#_Units_\npygeodesy.geodsolve.GeodesicLineSolve\tpygeodesy.geodsolve.GeodesicLineSolve-class.html\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.solveBase._SolveGDictBase.Inverse\tpygeodesy.solveBase._SolveGDictBase-class.html#Inverse\npygeodesy.named._NamedBase.__str__\tpygeodesy.named._NamedBase-class.html#__str__\npygeodesy.solveBase._SolveGDictLineBase.datum\tpygeodesy.solveBase._SolveGDictLineBase-class.html#datum\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.geodsolve.GeodesicLineSolve._cmdArc\tpygeodesy.geodsolve.GeodesicLineSolve-class.html#_cmdArc\npygeodesy.karney._CapsBase.NONFINITONAN\tpygeodesy.karney._CapsBase-class.html#NONFINITONAN\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.solveBase._SolveCapsBase.invokation\tpygeodesy.solveBase._SolveCapsBase-class.html#invokation\npygeodesy.solveBase._SolveCapsBase._Exact\tpygeodesy.solveBase._SolveCapsBase-class.html#_Exact\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.solveBase._SolveCapsBase._e_option\tpygeodesy.solveBase._SolveCapsBase-class.html#_e_option\npygeodesy.solveBase._SolveGDictLineBase.ellipsoid\tpygeodesy.solveBase._SolveGDictLineBase-class.html#ellipsoid\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.solveBase._SolveBase.unroll\tpygeodesy.solveBase._SolveBase-class.html#unroll\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.geodsolve._GeodesicSolveBase._b_option\tpygeodesy.geodsolve._GeodesicSolveBase-class.html#_b_option\npygeodesy.solveBase._SolveCapsBase._E_option\tpygeodesy.solveBase._SolveCapsBase-class.html#_E_option\npygeodesy.solveBase._SolveCapsBase.invoke\tpygeodesy.solveBase._SolveCapsBase-class.html#invoke\npygeodesy.geodsolve.GeodesicLineSolve.toStr\tpygeodesy.geodsolve.GeodesicLineSolve-class.html#toStr\npygeodesy.solveBase._SolveCapsBase._datum\tpygeodesy.solveBase._SolveCapsBase-class.html#_datum\npygeodesy.karney._CapsBase.ALL\tpygeodesy.karney._CapsBase-class.html#ALL\npygeodesy.karney._CapsBase.LONGITUDE\tpygeodesy.karney._CapsBase-class.html#LONGITUDE\npygeodesy.karney._CapsBase.caps\tpygeodesy.karney._CapsBase-class.html#caps\npygeodesy.karney._CapsBase.STANDARD_LINE\tpygeodesy.karney._CapsBase-class.html#STANDARD_LINE\npygeodesy.geodsolve.GeodesicLineSolve.Intersecant2\tpygeodesy.geodsolve.GeodesicLineSolve-class.html#Intersecant2\npygeodesy.geodsolve.GeodesicLineSolve.Position\tpygeodesy.geodsolve.GeodesicLineSolve-class.html#Position\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.solveBase._SolveGDictLineBase.lat1\tpygeodesy.solveBase._SolveGDictLineBase-class.html#lat1\npygeodesy.solveBase._SolveCapsBase._invokat\tpygeodesy.solveBase._SolveCapsBase-class.html#_invokat\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.karney._CapsBase._iter2tion\tpygeodesy.karney._CapsBase-class.html#_iter2tion\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.solveBase._SolveCapsBase._invoke\tpygeodesy.solveBase._SolveCapsBase-class.html#_invoke\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.geodsolve.GeodesicLineSolve.Arc\tpygeodesy.geodsolve.GeodesicLineSolve-class.html#Arc\npygeodesy.karney._CapsBase.debug\tpygeodesy.karney._CapsBase-class.html#debug\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.karney._CapsBase.DISTANCE_IN\tpygeodesy.karney._CapsBase-class.html#DISTANCE_IN\npygeodesy.named._NamedBase.toRepr\tpygeodesy.named._NamedBase-class.html#toRepr\npygeodesy.geodsolve.GeodesicLineSolve.azi1\tpygeodesy.geodsolve.GeodesicLineSolve-class.html#azi1\npygeodesy.solveBase._SolveGDictLineBase._cmdDistance\tpygeodesy.solveBase._SolveGDictLineBase-class.html#_cmdDistance\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.karney._CapsBase.EMPTY\tpygeodesy.karney._CapsBase-class.html#EMPTY\npygeodesy.geodsolve._GeodesicSolveBase._Names_Inverse\tpygeodesy.geodsolve._GeodesicSolveBase-class.html#_Names_Inverse\npygeodesy.karney._CapsBase.LONG_UNROLL\tpygeodesy.karney._CapsBase-class.html#LONG_UNROLL\npygeodesy.geodsolve._GeodesicSolveBase._Names_Distance\tpygeodesy.geodsolve._GeodesicSolveBase-class.html#_Names_Distance\npygeodesy.solveBase._SolveCapsBase.version\tpygeodesy.solveBase._SolveCapsBase-class.html#version\npygeodesy.solveBase._SolveCapsBase.flattening\tpygeodesy.solveBase._SolveCapsBase-class.html#flattening\npygeodesy.solveBase._SolveBase._reverse2\tpygeodesy.solveBase._SolveBase-class.html#_reverse2\npygeodesy.solveBase._SolveCapsBase._setXable\tpygeodesy.solveBase._SolveCapsBase-class.html#_setXable\npygeodesy.solveBase._SolveCapsBase._mpd\tpygeodesy.solveBase._SolveCapsBase-class.html#_mpd\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.geodsolve.GeodesicLineSolve.s13\tpygeodesy.geodsolve.GeodesicLineSolve-class.html#s13\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.solveBase._SolveGDictBase.ArcDirect\tpygeodesy.solveBase._SolveGDictBase-class.html#ArcDirect\npygeodesy.karney._CapsBase.AZIMUTH\tpygeodesy.karney._CapsBase-class.html#AZIMUTH\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.solveBase._SolveCapsBase._prec2stdin\tpygeodesy.solveBase._SolveCapsBase-class.html#_prec2stdin\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.karney._CapsBase.DISTANCE\tpygeodesy.karney._CapsBase-class.html#DISTANCE\npygeodesy.karney._CapsBase._debug\tpygeodesy.karney._CapsBase-class.html#_debug\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.geodsolve._GeodesicSolveBase._Xable_path\tpygeodesy.geodsolve._GeodesicSolveBase-class.html#_Xable_path\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._NamedBase.__repr__\tpygeodesy.named._NamedBase-class.html#__repr__\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.geodsolve._GeodesicSolveBase._Names_Direct\tpygeodesy.geodsolve._GeodesicSolveBase-class.html#_Names_Direct\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.solveBase._SolveCapsBase.verbose\tpygeodesy.solveBase._SolveCapsBase-class.html#verbose\npygeodesy.named._NamedBase.others\tpygeodesy.named._NamedBase-class.html#others\npygeodesy.geodsolve.GeodesicLineSolve.geodesic\tpygeodesy.geodsolve.GeodesicLineSolve-class.html#geodesic\npygeodesy.geodsolve.GeodesicLineSolve.azi12_sincos2\tpygeodesy.geodsolve.GeodesicLineSolve-class.html#azi12_sincos2\npygeodesy.solveBase._SolveCapsBase._p_option\tpygeodesy.solveBase._SolveCapsBase-class.html#_p_option\npygeodesy.solveBase._SolveCapsBase._linelimit\tpygeodesy.solveBase._SolveCapsBase-class.html#_linelimit\npygeodesy.geodsolve.GeodesicLineSolve.SetArc\tpygeodesy.geodsolve.GeodesicLineSolve-class.html#SetArc\npygeodesy.solveBase._SolveBase.reverse2\tpygeodesy.solveBase._SolveBase-class.html#reverse2\npygeodesy.solveBase._SolveCapsBase.linelimit\tpygeodesy.solveBase._SolveCapsBase-class.html#linelimit\npygeodesy.karney._CapsBase.AREA\tpygeodesy.karney._CapsBase-class.html#AREA\npygeodesy.solveBase._SolveCapsBase.prec\tpygeodesy.solveBase._SolveCapsBase-class.html#prec\npygeodesy.geodsolve._GeodesicSolveBase._cmdBasic\tpygeodesy.geodsolve._GeodesicSolveBase-class.html#_cmdBasic\npygeodesy.solveBase._SolveGDictBase.Inverse1\tpygeodesy.solveBase._SolveGDictBase-class.html#Inverse1\npygeodesy.solveBase._SolveCapsBase._DictInvoke2\tpygeodesy.solveBase._SolveCapsBase-class.html#_DictInvoke2\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.solveBase._SolveCapsBase._status\tpygeodesy.solveBase._SolveCapsBase-class.html#_status\npygeodesy.solveBase._SolveCapsBase.Exact\tpygeodesy.solveBase._SolveCapsBase-class.html#Exact\npygeodesy.solveBase._SolveCapsBase._Dicts\tpygeodesy.solveBase._SolveCapsBase-class.html#_Dicts\npygeodesy.geodsolve._GeodesicSolveBase._Error\tpygeodesy.errors.GeodesicError-class.html\npygeodesy.geodsolve.GeodesicLineSolve._s13\tpygeodesy.geodsolve.GeodesicLineSolve-class.html#_s13\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.solveBase._SolveCapsBase._prec\tpygeodesy.solveBase._SolveCapsBase-class.html#_prec\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.karney._CapsBase.STANDARD\tpygeodesy.karney._CapsBase-class.html#STANDARD\npygeodesy.karney._CapsBase._caps\tpygeodesy.karney._CapsBase-class.html#_caps\npygeodesy.solveBase._SolveBase._unroll\tpygeodesy.solveBase._SolveBase-class.html#_unroll\npygeodesy.geodsolve._GeodesicSolveBase.GeodSolve\tpygeodesy.geodsolve._GeodesicSolveBase-class.html#GeodSolve\npygeodesy.solveBase._SolveCapsBase._verbose\tpygeodesy.solveBase._SolveCapsBase-class.html#_verbose\npygeodesy.geodsolve.GeodesicLineSolve.SetDistance\tpygeodesy.geodsolve.GeodesicLineSolve-class.html#SetDistance\npygeodesy.solveBase._SolveCapsBase.b\tpygeodesy.solveBase._SolveCapsBase-class.html#b\npygeodesy.solveBase._SolveCapsBase.f\tpygeodesy.solveBase._SolveCapsBase-class.html#f\npygeodesy.solveBase._SolveCapsBase._toStdin\tpygeodesy.solveBase._SolveCapsBase-class.html#_toStdin\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.solveBase._SolveGDictLineBase.lon1\tpygeodesy.solveBase._SolveGDictLineBase-class.html#lon1\npygeodesy.solveBase._SolveCapsBase._Dict\tpygeodesy.solveBase._SolveCapsBase-class.html#_Dict\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.solveBase._SolveCapsBase._print\tpygeodesy.solveBase._SolveCapsBase-class.html#_print\npygeodesy.karney._CapsBase.GEODESICSCALE\tpygeodesy.karney._CapsBase-class.html#GEODESICSCALE\npygeodesy.geodsolve.GeodesicLineSolve.PlumbTo\tpygeodesy.geodsolve.GeodesicLineSolve-class.html#PlumbTo\npygeodesy.geodsolve._GeodesicSolveBase._Xable_name\tpygeodesy.geodsolve._GeodesicSolveBase-class.html#_Xable_name\npygeodesy.karney._CapsBase.LINE_OFF\tpygeodesy.karney._CapsBase-class.html#LINE_OFF\npygeodesy.geodsolve.GeodesicLineSolve.__init__\tpygeodesy.geodsolve.GeodesicLineSolve-class.html#__init__\npygeodesy.karney._CapsBase.LINE_CAPS\tpygeodesy.karney._CapsBase-class.html#LINE_CAPS\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.geodsolve.GeodesicLineSolve.azi1_sincos2\tpygeodesy.geodsolve.GeodesicLineSolve-class.html#azi1_sincos2\npygeodesy.geodsolve.GeodesicLineSolve.azi12\tpygeodesy.geodsolve.GeodesicLineSolve-class.html#azi12\npygeodesy.solveBase._SolveGDictLineBase._solve\tpygeodesy.solveBase._SolveGDictLineBase-class.html#_solve\npygeodesy.solveBase._SolveCapsBase.invokat\tpygeodesy.solveBase._SolveCapsBase-class.html#invokat\npygeodesy.solveBase._SolveCapsBase.status\tpygeodesy.solveBase._SolveCapsBase-class.html#status\npygeodesy.geodsolve.GeodesicLineSolve.Distance\tpygeodesy.geodsolve.GeodesicLineSolve-class.html#Distance\npygeodesy.geodsolve.GeodesicLineSolve.a13\tpygeodesy.geodsolve.GeodesicLineSolve-class.html#a13\npygeodesy.solveBase._SolveCapsBase._invokation\tpygeodesy.solveBase._SolveCapsBase-class.html#_invokation\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.geodsolve.GeodesicLineSolve._a13\tpygeodesy.geodsolve.GeodesicLineSolve-class.html#_a13\npygeodesy.geodsolve._GeodesicSolveBase._u_option\tpygeodesy.geodsolve._GeodesicSolveBase-class.html#_u_option\npygeodesy.solveBase._SolveCapsBase.a\tpygeodesy.solveBase._SolveCapsBase-class.html#a\npygeodesy.karney._CapsBase.REDUCEDLENGTH\tpygeodesy.karney._CapsBase-class.html#REDUCEDLENGTH\npygeodesy.geodsolve.GeodesicLineSolve.ArcPosition\tpygeodesy.geodsolve.GeodesicLineSolve-class.html#ArcPosition\npygeodesy.solveBase._SolveGDictBase.Direct\tpygeodesy.solveBase._SolveGDictBase-class.html#Direct\npygeodesy.karney._CapsBase.LATITUDE\tpygeodesy.karney._CapsBase-class.html#LATITUDE\npygeodesy.karney._CapsBase.caps_\tpygeodesy.karney._CapsBase-class.html#caps_\npygeodesy.geodsolve.GeodesicSolve\tpygeodesy.geodsolve.GeodesicSolve-class.html\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.solveBase._SolveGDictBase.Inverse\tpygeodesy.solveBase._SolveGDictBase-class.html#Inverse\npygeodesy.named._NamedBase.__str__\tpygeodesy.named._NamedBase-class.html#__str__\npygeodesy.solveBase._SolveCapsBase.datum\tpygeodesy.solveBase._SolveCapsBase-class.html#datum\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.karney._CapsBase.NONFINITONAN\tpygeodesy.karney._CapsBase-class.html#NONFINITONAN\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.solveBase._SolveCapsBase.invokation\tpygeodesy.solveBase._SolveCapsBase-class.html#invokation\npygeodesy.solveBase._SolveCapsBase._Exact\tpygeodesy.solveBase._SolveCapsBase-class.html#_Exact\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.solveBase._SolveCapsBase._e_option\tpygeodesy.solveBase._SolveCapsBase-class.html#_e_option\npygeodesy.solveBase._SolveCapsBase.ellipsoid\tpygeodesy.solveBase._SolveCapsBase-class.html#ellipsoid\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.solveBase._SolveBase.unroll\tpygeodesy.solveBase._SolveBase-class.html#unroll\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.geodsolve._GeodesicSolveBase._b_option\tpygeodesy.geodsolve._GeodesicSolveBase-class.html#_b_option\npygeodesy.solveBase._SolveCapsBase._E_option\tpygeodesy.solveBase._SolveCapsBase-class.html#_E_option\npygeodesy.solveBase._SolveCapsBase.invoke\tpygeodesy.solveBase._SolveCapsBase-class.html#invoke\npygeodesy.geodsolve.GeodesicSolve.toStr\tpygeodesy.geodsolve.GeodesicSolve-class.html#toStr\npygeodesy.solveBase._SolveCapsBase._datum\tpygeodesy.solveBase._SolveCapsBase-class.html#_datum\npygeodesy.karney._CapsBase.LONGITUDE\tpygeodesy.karney._CapsBase-class.html#LONGITUDE\npygeodesy.karney._CapsBase.caps\tpygeodesy.karney._CapsBase-class.html#caps\npygeodesy.karney._CapsBase.STANDARD_LINE\tpygeodesy.karney._CapsBase-class.html#STANDARD_LINE\npygeodesy.geodsolve.GeodesicSolve._InverseLine\tpygeodesy.geodsolve.GeodesicSolve-class.html#_InverseLine\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.geodsolve.GeodesicSolve.Line\tpygeodesy.geodsolve.GeodesicSolve-class.html#Line\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.solveBase._SolveCapsBase._invokat\tpygeodesy.solveBase._SolveCapsBase-class.html#_invokat\npygeodesy.karney._CapsBase._iter2tion\tpygeodesy.karney._CapsBase-class.html#_iter2tion\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.solveBase._SolveCapsBase._invoke\tpygeodesy.solveBase._SolveCapsBase-class.html#_invoke\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.karney._CapsBase.debug\tpygeodesy.karney._CapsBase-class.html#debug\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.karney._CapsBase.DISTANCE_IN\tpygeodesy.karney._CapsBase-class.html#DISTANCE_IN\npygeodesy.named._NamedBase.toRepr\tpygeodesy.named._NamedBase-class.html#toRepr\npygeodesy.geodsolve.GeodesicSolve.Area\tpygeodesy.geodsolve.GeodesicSolve-class.html#Area\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.karney._CapsBase.EMPTY\tpygeodesy.karney._CapsBase-class.html#EMPTY\npygeodesy.geodsolve._GeodesicSolveBase._Names_Inverse\tpygeodesy.geodsolve._GeodesicSolveBase-class.html#_Names_Inverse\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.geodsolve._GeodesicSolveBase._Names_Distance\tpygeodesy.geodsolve._GeodesicSolveBase-class.html#_Names_Distance\npygeodesy.solveBase._SolveCapsBase.version\tpygeodesy.solveBase._SolveCapsBase-class.html#version\npygeodesy.solveBase._SolveCapsBase.flattening\tpygeodesy.solveBase._SolveCapsBase-class.html#flattening\npygeodesy.geodsolve.GeodesicSolve.Direct3\tpygeodesy.geodsolve.GeodesicSolve-class.html#Direct3\npygeodesy.solveBase._SolveBase._reverse2\tpygeodesy.solveBase._SolveBase-class.html#_reverse2\npygeodesy.solveBase._SolveCapsBase._setXable\tpygeodesy.solveBase._SolveCapsBase-class.html#_setXable\npygeodesy.solveBase._SolveCapsBase._mpd\tpygeodesy.solveBase._SolveCapsBase-class.html#_mpd\npygeodesy.geodsolve.GeodesicSolve._Inverse\tpygeodesy.geodsolve.GeodesicSolve-class.html#_Inverse\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.geodsolve._GeodesicSolveBase._Xable_path\tpygeodesy.geodsolve._GeodesicSolveBase-class.html#_Xable_path\npygeodesy.karney._CapsBase.AZIMUTH\tpygeodesy.karney._CapsBase-class.html#AZIMUTH\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.solveBase._SolveCapsBase._prec2stdin\tpygeodesy.solveBase._SolveCapsBase-class.html#_prec2stdin\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.karney._CapsBase.DISTANCE\tpygeodesy.karney._CapsBase-class.html#DISTANCE\npygeodesy.geodsolve.GeodesicSolve.DirectLine\tpygeodesy.geodsolve.GeodesicSolve-class.html#DirectLine\npygeodesy.karney._CapsBase._debug\tpygeodesy.karney._CapsBase-class.html#_debug\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.solveBase._SolveGDictBase.ArcDirect\tpygeodesy.solveBase._SolveGDictBase-class.html#ArcDirect\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._NamedBase.__repr__\tpygeodesy.named._NamedBase-class.html#__repr__\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.geodsolve._GeodesicSolveBase._Names_Direct\tpygeodesy.geodsolve._GeodesicSolveBase-class.html#_Names_Direct\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.solveBase._SolveCapsBase.verbose\tpygeodesy.solveBase._SolveCapsBase-class.html#verbose\npygeodesy.named._NamedBase.others\tpygeodesy.named._NamedBase-class.html#others\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.solveBase._SolveCapsBase._p_option\tpygeodesy.solveBase._SolveCapsBase-class.html#_p_option\npygeodesy.solveBase._SolveCapsBase._linelimit\tpygeodesy.solveBase._SolveCapsBase-class.html#_linelimit\npygeodesy.solveBase._SolveBase.reverse2\tpygeodesy.solveBase._SolveBase-class.html#reverse2\npygeodesy.solveBase._SolveCapsBase.linelimit\tpygeodesy.solveBase._SolveCapsBase-class.html#linelimit\npygeodesy.karney._CapsBase.AREA\tpygeodesy.karney._CapsBase-class.html#AREA\npygeodesy.solveBase._SolveCapsBase.prec\tpygeodesy.solveBase._SolveCapsBase-class.html#prec\npygeodesy.geodsolve._GeodesicSolveBase._cmdBasic\tpygeodesy.geodsolve._GeodesicSolveBase-class.html#_cmdBasic\npygeodesy.solveBase._SolveGDictBase.Inverse1\tpygeodesy.solveBase._SolveGDictBase-class.html#Inverse1\npygeodesy.geodsolve.GeodesicSolve.Inverse3\tpygeodesy.geodsolve.GeodesicSolve-class.html#Inverse3\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.solveBase._SolveCapsBase._status\tpygeodesy.solveBase._SolveCapsBase-class.html#_status\npygeodesy.solveBase._SolveCapsBase.Exact\tpygeodesy.solveBase._SolveCapsBase-class.html#Exact\npygeodesy.solveBase._SolveCapsBase._Dicts\tpygeodesy.solveBase._SolveCapsBase-class.html#_Dicts\npygeodesy.geodsolve._GeodesicSolveBase._Error\tpygeodesy.errors.GeodesicError-class.html\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.solveBase._SolveCapsBase._prec\tpygeodesy.solveBase._SolveCapsBase-class.html#_prec\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.solveBase._SolveCapsBase._DictInvoke2\tpygeodesy.solveBase._SolveCapsBase-class.html#_DictInvoke2\npygeodesy.karney._CapsBase.STANDARD\tpygeodesy.karney._CapsBase-class.html#STANDARD\npygeodesy.geodsolve.GeodesicSolve.InverseLine\tpygeodesy.geodsolve.GeodesicSolve-class.html#InverseLine\npygeodesy.geodsolve.GeodesicSolve.ArcDirectLine\tpygeodesy.geodsolve.GeodesicSolve-class.html#ArcDirectLine\npygeodesy.karney._CapsBase._caps\tpygeodesy.karney._CapsBase-class.html#_caps\npygeodesy.solveBase._SolveBase._unroll\tpygeodesy.solveBase._SolveBase-class.html#_unroll\npygeodesy.geodsolve._GeodesicSolveBase.GeodSolve\tpygeodesy.geodsolve._GeodesicSolveBase-class.html#GeodSolve\npygeodesy.solveBase._SolveCapsBase._verbose\tpygeodesy.solveBase._SolveCapsBase-class.html#_verbose\npygeodesy.karney._CapsBase.ALL\tpygeodesy.karney._CapsBase-class.html#ALL\npygeodesy.solveBase._SolveCapsBase.b\tpygeodesy.solveBase._SolveCapsBase-class.html#b\npygeodesy.solveBase._SolveCapsBase.f\tpygeodesy.solveBase._SolveCapsBase-class.html#f\npygeodesy.solveBase._SolveCapsBase._toStdin\tpygeodesy.solveBase._SolveCapsBase-class.html#_toStdin\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.geodsolve.GeodesicSolve._DirectLine\tpygeodesy.geodsolve.GeodesicSolve-class.html#_DirectLine\npygeodesy.solveBase._SolveCapsBase._Dict\tpygeodesy.solveBase._SolveCapsBase-class.html#_Dict\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.geodsolve.GeodesicSolve.Polygon\tpygeodesy.geodsolve.GeodesicSolve-class.html#Polygon\npygeodesy.karney._CapsBase.GEODESICSCALE\tpygeodesy.karney._CapsBase-class.html#GEODESICSCALE\npygeodesy.geodsolve._GeodesicSolveBase._Xable_name\tpygeodesy.geodsolve._GeodesicSolveBase-class.html#_Xable_name\npygeodesy.karney._CapsBase.LINE_OFF\tpygeodesy.karney._CapsBase-class.html#LINE_OFF\npygeodesy.solveBase._SolveGDictBase.__init__\tpygeodesy.solveBase._SolveGDictBase-class.html#__init__\npygeodesy.karney._CapsBase.LINE_CAPS\tpygeodesy.karney._CapsBase-class.html#LINE_CAPS\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.solveBase._SolveCapsBase._print\tpygeodesy.solveBase._SolveCapsBase-class.html#_print\npygeodesy.solveBase._SolveCapsBase.invokat\tpygeodesy.solveBase._SolveCapsBase-class.html#invokat\npygeodesy.solveBase._SolveCapsBase.status\tpygeodesy.solveBase._SolveCapsBase-class.html#status\npygeodesy.karney._CapsBase.LONG_UNROLL\tpygeodesy.karney._CapsBase-class.html#LONG_UNROLL\npygeodesy.solveBase._SolveCapsBase._invokation\tpygeodesy.solveBase._SolveCapsBase-class.html#_invokation\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.geodsolve._GeodesicSolveBase._u_option\tpygeodesy.geodsolve._GeodesicSolveBase-class.html#_u_option\npygeodesy.solveBase._SolveCapsBase.a\tpygeodesy.solveBase._SolveCapsBase-class.html#a\npygeodesy.karney._CapsBase.REDUCEDLENGTH\tpygeodesy.karney._CapsBase-class.html#REDUCEDLENGTH\npygeodesy.solveBase._SolveGDictBase.Direct\tpygeodesy.solveBase._SolveGDictBase-class.html#Direct\npygeodesy.karney._CapsBase.LATITUDE\tpygeodesy.karney._CapsBase-class.html#LATITUDE\npygeodesy.karney._CapsBase.caps_\tpygeodesy.karney._CapsBase-class.html#caps_\npygeodesy.geodsolve._GeodesicSolveBase\tpygeodesy.geodsolve._GeodesicSolveBase-class.html\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.solveBase._SolveGDictBase.Inverse\tpygeodesy.solveBase._SolveGDictBase-class.html#Inverse\npygeodesy.named._NamedBase.__str__\tpygeodesy.named._NamedBase-class.html#__str__\npygeodesy.solveBase._SolveCapsBase.datum\tpygeodesy.solveBase._SolveCapsBase-class.html#datum\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.karney._CapsBase.NONFINITONAN\tpygeodesy.karney._CapsBase-class.html#NONFINITONAN\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.solveBase._SolveCapsBase.invokation\tpygeodesy.solveBase._SolveCapsBase-class.html#invokation\npygeodesy.solveBase._SolveCapsBase._Exact\tpygeodesy.solveBase._SolveCapsBase-class.html#_Exact\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.solveBase._SolveCapsBase._e_option\tpygeodesy.solveBase._SolveCapsBase-class.html#_e_option\npygeodesy.solveBase._SolveCapsBase.ellipsoid\tpygeodesy.solveBase._SolveCapsBase-class.html#ellipsoid\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.solveBase._SolveBase.unroll\tpygeodesy.solveBase._SolveBase-class.html#unroll\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.geodsolve._GeodesicSolveBase._b_option\tpygeodesy.geodsolve._GeodesicSolveBase-class.html#_b_option\npygeodesy.solveBase._SolveCapsBase._E_option\tpygeodesy.solveBase._SolveCapsBase-class.html#_E_option\npygeodesy.solveBase._SolveCapsBase.invoke\tpygeodesy.solveBase._SolveCapsBase-class.html#invoke\npygeodesy.solveBase._SolveGDictBase.toStr\tpygeodesy.solveBase._SolveGDictBase-class.html#toStr\npygeodesy.solveBase._SolveCapsBase._datum\tpygeodesy.solveBase._SolveCapsBase-class.html#_datum\npygeodesy.karney._CapsBase.LONGITUDE\tpygeodesy.karney._CapsBase-class.html#LONGITUDE\npygeodesy.karney._CapsBase.caps\tpygeodesy.karney._CapsBase-class.html#caps\npygeodesy.karney._CapsBase.STANDARD_LINE\tpygeodesy.karney._CapsBase-class.html#STANDARD_LINE\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.solveBase._SolveCapsBase._invokat\tpygeodesy.solveBase._SolveCapsBase-class.html#_invokat\npygeodesy.karney._CapsBase._iter2tion\tpygeodesy.karney._CapsBase-class.html#_iter2tion\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.solveBase._SolveCapsBase._invoke\tpygeodesy.solveBase._SolveCapsBase-class.html#_invoke\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.karney._CapsBase.debug\tpygeodesy.karney._CapsBase-class.html#debug\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.karney._CapsBase.DISTANCE_IN\tpygeodesy.karney._CapsBase-class.html#DISTANCE_IN\npygeodesy.named._NamedBase.toRepr\tpygeodesy.named._NamedBase-class.html#toRepr\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.karney._CapsBase.EMPTY\tpygeodesy.karney._CapsBase-class.html#EMPTY\npygeodesy.geodsolve._GeodesicSolveBase._Names_Inverse\tpygeodesy.geodsolve._GeodesicSolveBase-class.html#_Names_Inverse\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.geodsolve._GeodesicSolveBase._Names_Distance\tpygeodesy.geodsolve._GeodesicSolveBase-class.html#_Names_Distance\npygeodesy.solveBase._SolveCapsBase.version\tpygeodesy.solveBase._SolveCapsBase-class.html#version\npygeodesy.solveBase._SolveCapsBase.flattening\tpygeodesy.solveBase._SolveCapsBase-class.html#flattening\npygeodesy.solveBase._SolveBase._reverse2\tpygeodesy.solveBase._SolveBase-class.html#_reverse2\npygeodesy.solveBase._SolveCapsBase._setXable\tpygeodesy.solveBase._SolveCapsBase-class.html#_setXable\npygeodesy.solveBase._SolveCapsBase._mpd\tpygeodesy.solveBase._SolveCapsBase-class.html#_mpd\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.geodsolve._GeodesicSolveBase._Xable_path\tpygeodesy.geodsolve._GeodesicSolveBase-class.html#_Xable_path\npygeodesy.karney._CapsBase.AZIMUTH\tpygeodesy.karney._CapsBase-class.html#AZIMUTH\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.solveBase._SolveCapsBase._prec2stdin\tpygeodesy.solveBase._SolveCapsBase-class.html#_prec2stdin\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.karney._CapsBase.DISTANCE\tpygeodesy.karney._CapsBase-class.html#DISTANCE\npygeodesy.karney._CapsBase._debug\tpygeodesy.karney._CapsBase-class.html#_debug\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.solveBase._SolveGDictBase.ArcDirect\tpygeodesy.solveBase._SolveGDictBase-class.html#ArcDirect\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._NamedBase.__repr__\tpygeodesy.named._NamedBase-class.html#__repr__\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.geodsolve._GeodesicSolveBase._Names_Direct\tpygeodesy.geodsolve._GeodesicSolveBase-class.html#_Names_Direct\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.solveBase._SolveCapsBase.verbose\tpygeodesy.solveBase._SolveCapsBase-class.html#verbose\npygeodesy.named._NamedBase.others\tpygeodesy.named._NamedBase-class.html#others\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.solveBase._SolveCapsBase._p_option\tpygeodesy.solveBase._SolveCapsBase-class.html#_p_option\npygeodesy.solveBase._SolveCapsBase._linelimit\tpygeodesy.solveBase._SolveCapsBase-class.html#_linelimit\npygeodesy.solveBase._SolveBase.reverse2\tpygeodesy.solveBase._SolveBase-class.html#reverse2\npygeodesy.solveBase._SolveCapsBase.linelimit\tpygeodesy.solveBase._SolveCapsBase-class.html#linelimit\npygeodesy.karney._CapsBase.AREA\tpygeodesy.karney._CapsBase-class.html#AREA\npygeodesy.solveBase._SolveCapsBase.prec\tpygeodesy.solveBase._SolveCapsBase-class.html#prec\npygeodesy.geodsolve._GeodesicSolveBase._cmdBasic\tpygeodesy.geodsolve._GeodesicSolveBase-class.html#_cmdBasic\npygeodesy.solveBase._SolveGDictBase.Inverse1\tpygeodesy.solveBase._SolveGDictBase-class.html#Inverse1\npygeodesy.solveBase._SolveCapsBase._DictInvoke2\tpygeodesy.solveBase._SolveCapsBase-class.html#_DictInvoke2\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.solveBase._SolveCapsBase._status\tpygeodesy.solveBase._SolveCapsBase-class.html#_status\npygeodesy.solveBase._SolveCapsBase.Exact\tpygeodesy.solveBase._SolveCapsBase-class.html#Exact\npygeodesy.solveBase._SolveCapsBase._Dicts\tpygeodesy.solveBase._SolveCapsBase-class.html#_Dicts\npygeodesy.geodsolve._GeodesicSolveBase._Error\tpygeodesy.errors.GeodesicError-class.html\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.solveBase._SolveCapsBase._prec\tpygeodesy.solveBase._SolveCapsBase-class.html#_prec\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.karney._CapsBase.STANDARD\tpygeodesy.karney._CapsBase-class.html#STANDARD\npygeodesy.karney._CapsBase._caps\tpygeodesy.karney._CapsBase-class.html#_caps\npygeodesy.solveBase._SolveBase._unroll\tpygeodesy.solveBase._SolveBase-class.html#_unroll\npygeodesy.geodsolve._GeodesicSolveBase.GeodSolve\tpygeodesy.geodsolve._GeodesicSolveBase-class.html#GeodSolve\npygeodesy.solveBase._SolveCapsBase._verbose\tpygeodesy.solveBase._SolveCapsBase-class.html#_verbose\npygeodesy.karney._CapsBase.ALL\tpygeodesy.karney._CapsBase-class.html#ALL\npygeodesy.solveBase._SolveCapsBase.b\tpygeodesy.solveBase._SolveCapsBase-class.html#b\npygeodesy.solveBase._SolveCapsBase.f\tpygeodesy.solveBase._SolveCapsBase-class.html#f\npygeodesy.solveBase._SolveCapsBase._toStdin\tpygeodesy.solveBase._SolveCapsBase-class.html#_toStdin\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.solveBase._SolveCapsBase._Dict\tpygeodesy.solveBase._SolveCapsBase-class.html#_Dict\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.geodsolve._GeodesicSolveBase._Xable_name\tpygeodesy.geodsolve._GeodesicSolveBase-class.html#_Xable_name\npygeodesy.karney._CapsBase.GEODESICSCALE\tpygeodesy.karney._CapsBase-class.html#GEODESICSCALE\npygeodesy.solveBase._SolveCapsBase._print\tpygeodesy.solveBase._SolveCapsBase-class.html#_print\npygeodesy.karney._CapsBase.LINE_OFF\tpygeodesy.karney._CapsBase-class.html#LINE_OFF\npygeodesy.solveBase._SolveGDictBase.__init__\tpygeodesy.solveBase._SolveGDictBase-class.html#__init__\npygeodesy.karney._CapsBase.LINE_CAPS\tpygeodesy.karney._CapsBase-class.html#LINE_CAPS\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.solveBase._SolveCapsBase.invokat\tpygeodesy.solveBase._SolveCapsBase-class.html#invokat\npygeodesy.solveBase._SolveCapsBase.status\tpygeodesy.solveBase._SolveCapsBase-class.html#status\npygeodesy.karney._CapsBase.LONG_UNROLL\tpygeodesy.karney._CapsBase-class.html#LONG_UNROLL\npygeodesy.solveBase._SolveCapsBase._invokation\tpygeodesy.solveBase._SolveCapsBase-class.html#_invokation\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.geodsolve._GeodesicSolveBase._u_option\tpygeodesy.geodsolve._GeodesicSolveBase-class.html#_u_option\npygeodesy.solveBase._SolveCapsBase.a\tpygeodesy.solveBase._SolveCapsBase-class.html#a\npygeodesy.karney._CapsBase.REDUCEDLENGTH\tpygeodesy.karney._CapsBase-class.html#REDUCEDLENGTH\npygeodesy.solveBase._SolveGDictBase.Direct\tpygeodesy.solveBase._SolveGDictBase-class.html#Direct\npygeodesy.karney._CapsBase.LATITUDE\tpygeodesy.karney._CapsBase-class.html#LATITUDE\npygeodesy.karney._CapsBase.caps_\tpygeodesy.karney._CapsBase-class.html#caps_\npygeodesy.geohash.Geohash\tpygeodesy.geohash.Geohash-class.html\npygeodesy.geohash.Geohash.neighbors\tpygeodesy.geohash.Geohash-class.html#neighbors\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.unitsBase.Str.__str__\tpygeodesy.unitsBase.Str-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.geohash.Geohash.toLatLon\tpygeodesy.geohash.Geohash-class.html#toLatLon\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.geohash.Geohash.distanceTo\tpygeodesy.geohash.Geohash-class.html#distanceTo\npygeodesy.unitsBase._NamedUnit._units\tpygeodesy.unitsBase._NamedUnit-class.html#_units\npygeodesy.geohash.Geohash._distanceTo\tpygeodesy.geohash.Geohash-class.html#_distanceTo\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.unitsBase.Str.__call__\tpygeodesy.unitsBase.Str-class.html#__call__\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.geohash.Geohash.distance2\tpygeodesy.geohash.Geohash-class.html#distance2\npygeodesy.geohash.Geohash.distance3\tpygeodesy.geohash.Geohash-class.html#distance3\npygeodesy.geohash.Geohash.distance1\tpygeodesy.geohash.Geohash-class.html#distance1\npygeodesy.unitsBase.Str.toStr\tpygeodesy.unitsBase.Str-class.html#toStr\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.geohash.Geohash.sizes\tpygeodesy.geohash.Geohash-class.html#sizes\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.unitsBase.Str.join_\tpygeodesy.unitsBase.Str-class.html#join_\npygeodesy.unitsBase._NamedUnit._arg_name_arg2\tpygeodesy.unitsBase._NamedUnit-class.html#_arg_name_arg2\npygeodesy.unitsBase.Str.toRepr\tpygeodesy.unitsBase.Str-class.html#toRepr\npygeodesy.geohash.Geohash._bounds\tpygeodesy.geohash.Geohash-class.html#_bounds\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.geohash.Geohash.latlon\tpygeodesy.geohash.Geohash-class.html#latlon\npygeodesy.geohash.Geohash.haversineTo\tpygeodesy.geohash.Geohash-class.html#haversineTo\npygeodesy.geohash.Geohash.philam\tpygeodesy.geohash.Geohash-class.html#philam\npygeodesy.geohash.Geohash.distance3To\tpygeodesy.geohash.Geohash-class.html#distance3To\npygeodesy.unitsBase._NamedUnit._toRepr\tpygeodesy.unitsBase._NamedUnit-class.html#_toRepr\npygeodesy.geohash.Geohash.S\tpygeodesy.geohash.Geohash-class.html#S\npygeodesy.geohash.Geohash.W\tpygeodesy.geohash.Geohash-class.html#W\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.unitsBase.Str.__repr__\tpygeodesy.unitsBase.Str-class.html#__repr__\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.geohash.Geohash.equirectangularTo\tpygeodesy.geohash.Geohash-class.html#equirectangularTo\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.unitsBase._NamedUnit._std_repr\tpygeodesy.unitsBase._NamedUnit-class.html#_std_repr\npygeodesy.geohash.Geohash.NE\tpygeodesy.geohash.Geohash-class.html#NE\npygeodesy.geohash.Geohash.NW\tpygeodesy.geohash.Geohash-class.html#NW\npygeodesy.unitsBase._NamedUnit._Error\tpygeodesy.unitsBase._NamedUnit-class.html#_Error\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.geohash.Geohash.precision\tpygeodesy.geohash.Geohash-class.html#precision\npygeodesy.geohash.Geohash.N\tpygeodesy.geohash.Geohash-class.html#N\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.geohash.Geohash.resolution2\tpygeodesy.geohash.Geohash-class.html#resolution2\npygeodesy.geohash.Geohash.SW\tpygeodesy.geohash.Geohash-class.html#SW\npygeodesy.geohash.Geohash.bounds\tpygeodesy.geohash.Geohash-class.html#bounds\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.geohash.Geohash.SE\tpygeodesy.geohash.Geohash-class.html#SE\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.geohash.Geohash.ab\tpygeodesy.geohash.Geohash-class.html#ab\npygeodesy.geohash.Geohash.sizes3\tpygeodesy.geohash.Geohash-class.html#sizes3\npygeodesy.unitsBase._NamedUnit.std_repr\tpygeodesy.unitsBase._NamedUnit-class.html#std_repr\npygeodesy.geohash.Geohash.__new__\tpygeodesy.geohash.Geohash-class.html#__new__\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.geohash.Geohash.adjacent\tpygeodesy.geohash.Geohash-class.html#adjacent\npygeodesy.unitsBase._NamedUnit.units\tpygeodesy.unitsBase._NamedUnit-class.html#units\npygeodesy.geohash.Geohash.vincentysTo\tpygeodesy.geohash.Geohash-class.html#vincentysTo\npygeodesy.geohash.Geohash.E\tpygeodesy.geohash.Geohash-class.html#E\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.geohash.Geohash.distance2To\tpygeodesy.geohash.Geohash-class.html#distance2To\npygeodesy.geohash.Geohash.euclideanTo\tpygeodesy.geohash.Geohash-class.html#euclideanTo\npygeodesy.geohash.Geohash.distance1To\tpygeodesy.geohash.Geohash-class.html#distance1To\npygeodesy.geohash.GeohashError\tpygeodesy.geohash.GeohashError-class.html\npygeodesy.geohash.Geohashed\tpygeodesy.geohash.Geohashed-class.html\npygeodesy.geohash.Geohashed._ab2round\tpygeodesy.geohash.Geohashed-class.html#_ab2round\npygeodesy.geohash.Geohashed.len2\tpygeodesy.geohash.Geohashed-class.html#len2\npygeodesy.geohash.Geohashed.__init__\tpygeodesy.geohash.Geohashed-class.html#__init__\npygeodesy.geohash.Geohashed._nn\tpygeodesy.geohash.Geohashed-class.html#_nn\npygeodesy.geohash.Geohashed._ab2float\tpygeodesy.geohash.Geohashed-class.html#_ab2float\npygeodesy.geohash.Geohashed._ab2\tpygeodesy.geohash.Geohashed-class.html#_ab2\npygeodesy.geohash.Geohashed.__len__\tpygeodesy.geohash.Geohashed-class.html#__len__\npygeodesy.geohash.Geohashed.decoded\tpygeodesy.geohash.Geohashed-class.html#decoded\npygeodesy.geohash.Geohashed.ndigits\tpygeodesy.geohash.Geohashed-class.html#ndigits\npygeodesy.geohash.Geohashed.precision\tpygeodesy.geohash.Geohashed-class.html#precision\npygeodesy.geohash.Geohashed.encoded\tpygeodesy.geohash.Geohashed-class.html#encoded\npygeodesy.geohash.Geohashed.clear\tpygeodesy.geohash.Geohashed-class.html#clear\npygeodesy.geohash.Neighbors8Dict\tpygeodesy.geohash.Neighbors8Dict-class.html\npygeodesy.named.ADict.toRepr\tpygeodesy.named.ADict-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named.ADict.__str__\tpygeodesy.named.ADict-class.html#__str__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.geohash.Neighbors8Dict.__init__\tpygeodesy.geohash.Neighbors8Dict-class.html#__init__\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named.ADict._toT\tpygeodesy.named.ADict-class.html#_toT\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named.ADict._toL\tpygeodesy.named.ADict-class.html#_toL\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named.ADict._AttributeError\tpygeodesy.named.ADict-class.html#_AttributeError\npygeodesy.named.ADict._iteration\tpygeodesy.named.ADict-class.html#_iteration\npygeodesy.named.ADict.toStr\tpygeodesy.named.ADict-class.html#toStr\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named.ADict.set_\tpygeodesy.named.ADict-class.html#set_\npygeodesy.geohash.Neighbors8Dict._Keys_\tpygeodesy.geohash.Neighbors8Dict-class.html#_Keys_\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named.ADict.iteration\tpygeodesy.named.ADict-class.html#iteration\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named.ADict.typename\tpygeodesy.named.ADict-class.html#typename\npygeodesy.named.ADict.__repr__\tpygeodesy.named.ADict-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.geohash.Resolutions2Tuple\tpygeodesy.geohash.Resolutions2Tuple-class.html\npygeodesy.named._NamedTuple.toRepr\tpygeodesy.named._NamedTuple-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._NamedTuple.toUnits\tpygeodesy.named._NamedTuple-class.html#toUnits\npygeodesy.named._NamedTuple._validate\tpygeodesy.named._NamedTuple-class.html#_validate\npygeodesy.named._NamedTuple.__str__\tpygeodesy.named._NamedTuple-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._NamedTuple._DOT_\tpygeodesy.named._NamedTuple-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._NamedTuple.reUnit\tpygeodesy.named._NamedTuple-class.html#reUnit\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.geohash.Resolutions2Tuple._Names_\tpygeodesy.geohash.Resolutions2Tuple-class.html#_Names_\npygeodesy.named._NamedTuple.__setattr__\tpygeodesy.named._NamedTuple-class.html#__setattr__\npygeodesy.named._NamedTuple.__new__\tpygeodesy.named._NamedTuple-class.html#__new__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.geohash.Resolutions2Tuple.lon\tpygeodesy.geohash.Resolutions2Tuple-class.html#lon\npygeodesy.named._NamedTuple._validated\tpygeodesy.named._NamedTuple-class.html#_validated\npygeodesy.named._NamedTuple.__getattr__\tpygeodesy.named._NamedTuple-class.html#__getattr__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._NamedTuple._xtend\tpygeodesy.named._NamedTuple-class.html#_xtend\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._NamedTuple.units\tpygeodesy.named._NamedTuple-class.html#units\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedTuple.toStr\tpygeodesy.named._NamedTuple-class.html#toStr\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedTuple.dup\tpygeodesy.named._NamedTuple-class.html#dup\npygeodesy.named._NamedTuple.iterunits\tpygeodesy.named._NamedTuple-class.html#iterunits\npygeodesy.named._NamedTuple.iteritems\tpygeodesy.named._NamedTuple-class.html#iteritems\npygeodesy.geohash.Resolutions2Tuple.lat\tpygeodesy.geohash.Resolutions2Tuple-class.html#lat\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._NamedTuple.items\tpygeodesy.named._NamedTuple-class.html#items\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedTuple.__delattr__\tpygeodesy.named._NamedTuple-class.html#__delattr__\npygeodesy.named._NamedTuple.__repr__\tpygeodesy.named._NamedTuple-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._NamedTuple.__hash__\tpygeodesy.named._NamedTuple-class.html#__hash__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.geohash.Resolutions2Tuple._Units_\tpygeodesy.geohash.Resolutions2Tuple-class.html#_Units_\npygeodesy.geohash.Sizes3Tuple\tpygeodesy.geohash.Sizes3Tuple-class.html\npygeodesy.named._NamedTuple.toRepr\tpygeodesy.named._NamedTuple-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._NamedTuple.toUnits\tpygeodesy.named._NamedTuple-class.html#toUnits\npygeodesy.named._NamedTuple._validate\tpygeodesy.named._NamedTuple-class.html#_validate\npygeodesy.named._NamedTuple.__str__\tpygeodesy.named._NamedTuple-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._NamedTuple._DOT_\tpygeodesy.named._NamedTuple-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._NamedTuple.reUnit\tpygeodesy.named._NamedTuple-class.html#reUnit\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.geohash.Sizes3Tuple._Names_\tpygeodesy.geohash.Sizes3Tuple-class.html#_Names_\npygeodesy.named._NamedTuple.__setattr__\tpygeodesy.named._NamedTuple-class.html#__setattr__\npygeodesy.named._NamedTuple.__new__\tpygeodesy.named._NamedTuple-class.html#__new__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._NamedTuple._validated\tpygeodesy.named._NamedTuple-class.html#_validated\npygeodesy.named._NamedTuple.__getattr__\tpygeodesy.named._NamedTuple-class.html#__getattr__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._NamedTuple._xtend\tpygeodesy.named._NamedTuple-class.html#_xtend\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._NamedTuple.dup\tpygeodesy.named._NamedTuple-class.html#dup\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedTuple.toStr\tpygeodesy.named._NamedTuple-class.html#toStr\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedTuple.units\tpygeodesy.named._NamedTuple-class.html#units\npygeodesy.named._NamedTuple.iterunits\tpygeodesy.named._NamedTuple-class.html#iterunits\npygeodesy.named._NamedTuple.iteritems\tpygeodesy.named._NamedTuple-class.html#iteritems\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._NamedTuple.items\tpygeodesy.named._NamedTuple-class.html#items\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedTuple.__delattr__\tpygeodesy.named._NamedTuple-class.html#__delattr__\npygeodesy.named._NamedTuple.__repr__\tpygeodesy.named._NamedTuple-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._NamedTuple.__hash__\tpygeodesy.named._NamedTuple-class.html#__hash__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.geohash.Sizes3Tuple._Units_\tpygeodesy.geohash.Sizes3Tuple-class.html#_Units_\npygeodesy.geoids.GeoidEGM96\tpygeodesy.geoids.GeoidEGM96-class.html\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.geoids._GeoidBase._knots\tpygeodesy.geoids._GeoidBase-class.html#_knots\npygeodesy.heights._HeightNamed.datum\tpygeodesy.heights._HeightNamed-class.html#datum\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.geoids._GeoidBase._sizeB\tpygeodesy.geoids._GeoidBase-class.html#_sizeB\npygeodesy.geoids._GeoidBase.loweright\tpygeodesy.geoids._GeoidBase-class.html#loweright\npygeodesy.heights._HeightBase._ev2d\tpygeodesy.heights._HeightBase-class.html#_ev2d\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.geoids._GeoidBase._smooth\tpygeodesy.geoids._GeoidBase-class.html#_smooth\npygeodesy.geoids._GeoidBase.__enter__\tpygeodesy.geoids._GeoidBase-class.html#__enter__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.geoids._GeoidBase._llh3LL\tpygeodesy.geoids._GeoidBase-class.html#_llh3LL\npygeodesy.geoids.GeoidEGM96.__call__\tpygeodesy.geoids.GeoidEGM96-class.html#__call__\npygeodesy.geoids._GeoidBase._LL3T\tpygeodesy.geoids._GeoidBase-class.html#_LL3T\npygeodesy.geoids._GeoidBase.__str__\tpygeodesy.geoids._GeoidBase-class.html#__str__\npygeodesy.geoids._GeoidBase._egm\tpygeodesy.geoids._GeoidBase-class.html#_egm\npygeodesy.geoids._GeoidBase.toStr\tpygeodesy.geoids._GeoidBase-class.html#toStr\npygeodesy.heights._HeightNamed._datum\tpygeodesy.heights._HeightNamed-class.html#_datum\npygeodesy.geoids._GeoidBase._gyx2g2\tpygeodesy.geoids._GeoidBase-class.html#_gyx2g2\npygeodesy.geoids._GeoidBase._loweright\tpygeodesy.geoids._GeoidBase-class.html#_loweright\npygeodesy.heights._HeightBase.scipy\tpygeodesy.heights._HeightBase-class.html#scipy\npygeodesy.geoids._GeoidBase.sizeB\tpygeodesy.geoids._GeoidBase-class.html#sizeB\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.geoids._GeoidBase.name\tpygeodesy.geoids._GeoidBase-class.html#name\npygeodesy.geoids._GeoidBase.upperright\tpygeodesy.geoids._GeoidBase-class.html#upperright\npygeodesy.geoids.GeoidEGM96._ll2g2\tpygeodesy.geoids.GeoidEGM96-class.html#_ll2g2\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.geoids._GeoidBase._heightOrthometric\tpygeodesy.geoids._GeoidBase-class.html#_heightOrthometric\npygeodesy.geoids._GeoidBase._cropped\tpygeodesy.geoids._GeoidBase-class.html#_cropped\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.geoids._GeoidBase.mean\tpygeodesy.geoids._GeoidBase-class.html#mean\npygeodesy.named._Named.toRepr\tpygeodesy.named._Named-class.html#toRepr\npygeodesy.geoids._GeoidBase._upperright\tpygeodesy.geoids._GeoidBase-class.html#_upperright\npygeodesy.geoids._GeoidBase.u2B\tpygeodesy.geoids._GeoidBase-class.html#u2B\npygeodesy.geoids._GeoidBase._pgm\tpygeodesy.geoids._GeoidBase-class.html#_pgm\npygeodesy.geoids._GeoidBase._mean\tpygeodesy.geoids._GeoidBase-class.html#_mean\npygeodesy.heights._HeightBase._kxky\tpygeodesy.heights._HeightBase-class.html#_kxky\npygeodesy.geoids._GeoidBase._lowest\tpygeodesy.geoids._GeoidBase-class.html#_lowest\npygeodesy.geoids._GeoidBase.close\tpygeodesy.geoids._GeoidBase-class.html#close\npygeodesy.heights._HeightNamed._as_lls\tpygeodesy.heights._HeightNamed-class.html#_as_lls\npygeodesy.geoids._GeoidBase._lowerleft\tpygeodesy.geoids._GeoidBase-class.html#_lowerleft\npygeodesy.geoids._GeoidBase._swne\tpygeodesy.geoids._GeoidBase-class.html#_swne\npygeodesy.geoids._GeoidBase.outside\tpygeodesy.geoids._GeoidBase-class.html#outside\npygeodesy.geoids._GeoidBase.closed\tpygeodesy.geoids._GeoidBase-class.html#closed\npygeodesy.heights._HeightBase._as_xyllis4\tpygeodesy.heights._HeightBase-class.html#_as_xyllis4\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.geoids._GeoidBase.lowerright\tpygeodesy.geoids._GeoidBase-class.html#lowerright\npygeodesy.geoids._GeoidBase.stdev\tpygeodesy.geoids._GeoidBase-class.html#stdev\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.heights._HeightBase._scipy_version\tpygeodesy.heights._HeightBase-class.html#_scipy_version\npygeodesy.geoids._GeoidBase._ev\tpygeodesy.geoids._GeoidBase-class.html#_ev\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.geoids._GeoidBase.hits\tpygeodesy.geoids._GeoidBase-class.html#hits\npygeodesy.geoids._GeoidBase._yx_hits\tpygeodesy.geoids._GeoidBase-class.html#_yx_hits\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.heights._HeightBase._ev_name\tpygeodesy.heights._HeightBase-class.html#_ev_name\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.geoids._GeoidBase._highest\tpygeodesy.geoids._GeoidBase-class.html#_highest\npygeodesy.geoids._GeoidBase.lowerleft\tpygeodesy.geoids._GeoidBase-class.html#lowerleft\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.heights._HeightBase._interp2d\tpygeodesy.heights._HeightBase-class.html#_interp2d\npygeodesy.geoids._GeoidBase.knots\tpygeodesy.geoids._GeoidBase-class.html#knots\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.geoids._GeoidBase.height_\tpygeodesy.geoids._GeoidBase-class.html#height_\npygeodesy.heights._HeightBase._evalls\tpygeodesy.heights._HeightBase-class.html#_evalls\npygeodesy.geoids._GeoidBase.dtype\tpygeodesy.geoids._GeoidBase-class.html#dtype\npygeodesy.geoids._GeoidBase.pgm\tpygeodesy.geoids._GeoidBase-class.html#pgm\npygeodesy.geoids._GeoidBase._stdev\tpygeodesy.geoids._GeoidBase-class.html#_stdev\npygeodesy.heights._HeightNamed.wrap\tpygeodesy.heights._HeightNamed-class.html#wrap\npygeodesy.geoids.GeoidEGM96.height\tpygeodesy.geoids.GeoidEGM96-class.html#height\npygeodesy.geoids._GeoidBase._hGeoid\tpygeodesy.geoids._GeoidBase-class.html#_hGeoid\npygeodesy.heights._HeightNamed._np_sp\tpygeodesy.heights._HeightNamed-class.html#_np_sp\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.geoids._GeoidBase._u2B\tpygeodesy.geoids._GeoidBase-class.html#_u2B\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.heights._HeightNamed._kmin\tpygeodesy.heights._HeightNamed-class.html#_kmin\npygeodesy.geoids._GeoidBase._geoid\tpygeodesy.geoids._GeoidBase-class.html#_geoid\npygeodesy.heights._HeightNamed.kmin\tpygeodesy.heights._HeightNamed-class.html#kmin\npygeodesy.geoids._GeoidBase._open\tpygeodesy.geoids._GeoidBase-class.html#_open\npygeodesy.geoids._GeoidBase._iscipy\tpygeodesy.geoids._GeoidBase-class.html#_iscipy\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.heights._HeightBase.numpy\tpygeodesy.heights._HeightBase-class.html#numpy\npygeodesy.geoids._GeoidBase._called\tpygeodesy.geoids._GeoidBase-class.html#_called\npygeodesy.geoids._GeoidBase.lowest\tpygeodesy.geoids._GeoidBase-class.html#lowest\npygeodesy.geoids._GeoidBase._Error\tpygeodesy.geoids.GeoidError-class.html\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.geoids._GeoidBase._kind\tpygeodesy.geoids._GeoidBase-class.html#_kind\npygeodesy.geoids._GeoidBase.highest\tpygeodesy.geoids._GeoidBase-class.html#highest\npygeodesy.geoids._GeoidBase._load\tpygeodesy.geoids._GeoidBase-class.html#_load\npygeodesy.geoids._GeoidBase.kind\tpygeodesy.geoids._GeoidBase-class.html#kind\npygeodesy.heights._HeightBase._k2interp2d\tpygeodesy.heights._HeightBase-class.html#_k2interp2d\npygeodesy.geoids._GeoidBase.smooth\tpygeodesy.geoids._GeoidBase-class.html#smooth\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.geoids._GeoidBase.endian\tpygeodesy.geoids._GeoidBase-class.html#endian\npygeodesy.geoids.GeoidEGM96._g2ll2\tpygeodesy.geoids.GeoidEGM96-class.html#_g2ll2\npygeodesy.geoids._GeoidBase._llh3minmax\tpygeodesy.geoids._GeoidBase-class.html#_llh3minmax\npygeodesy.heights._HeightNamed._LLiC\tpygeodesy.points.LatLon_-class.html\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.geoids._GeoidBase.upperleft\tpygeodesy.geoids._GeoidBase-class.html#upperleft\npygeodesy.heights._HeightBase._xyhs3\tpygeodesy.heights._HeightBase-class.html#_xyhs3\npygeodesy.geoids._GeoidBase._center\tpygeodesy.geoids._GeoidBase-class.html#_center\npygeodesy.geoids._GeoidBase._upperleft\tpygeodesy.geoids._GeoidBase-class.html#_upperleft\npygeodesy.geoids._GeoidBase.__exit__\tpygeodesy.geoids._GeoidBase-class.html#__exit__\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.geoids.GeoidEGM96.__init__\tpygeodesy.geoids.GeoidEGM96-class.html#__init__\npygeodesy.geoids._GeoidBase._gaxis2\tpygeodesy.geoids._GeoidBase-class.html#_gaxis2\npygeodesy.geoids._GeoidBase._endian\tpygeodesy.geoids._GeoidBase-class.html#_endian\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.geoids._GeoidBase.cropped\tpygeodesy.geoids._GeoidBase-class.html#cropped\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.geoids._GeoidBase._nBytes\tpygeodesy.geoids._GeoidBase-class.html#_nBytes\npygeodesy.heights._HeightBase.scipy_interpolate\tpygeodesy.heights._HeightBase-class.html#scipy_interpolate\npygeodesy.geoids._GeoidBase.__repr__\tpygeodesy.geoids._GeoidBase-class.html#__repr__\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.geoids._GeoidBase._llh3\tpygeodesy.geoids._GeoidBase-class.html#_llh3\npygeodesy.geoids._GeoidBase._hs_y_x\tpygeodesy.geoids._GeoidBase-class.html#_hs_y_x\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.geoids._GeoidBase.nBytes\tpygeodesy.geoids._GeoidBase-class.html#nBytes\npygeodesy.geoids._GeoidBase.center\tpygeodesy.geoids._GeoidBase-class.html#center\npygeodesy.heights._HeightBase._np_sp2\tpygeodesy.heights._HeightBase-class.html#_np_sp2\npygeodesy.heights._HeightNamed._wrap\tpygeodesy.heights._HeightNamed-class.html#_wrap\npygeodesy.geoids.GeoidError\tpygeodesy.geoids.GeoidError-class.html\npygeodesy.geoids.GeoidG2012B\tpygeodesy.geoids.GeoidG2012B-class.html\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.geoids._GeoidBase._knots\tpygeodesy.geoids._GeoidBase-class.html#_knots\npygeodesy.heights._HeightNamed.datum\tpygeodesy.heights._HeightNamed-class.html#datum\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.geoids._GeoidBase._sizeB\tpygeodesy.geoids._GeoidBase-class.html#_sizeB\npygeodesy.geoids._GeoidBase.loweright\tpygeodesy.geoids._GeoidBase-class.html#loweright\npygeodesy.heights._HeightBase._ev2d\tpygeodesy.heights._HeightBase-class.html#_ev2d\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.geoids._GeoidBase._smooth\tpygeodesy.geoids._GeoidBase-class.html#_smooth\npygeodesy.geoids._GeoidBase.__enter__\tpygeodesy.geoids._GeoidBase-class.html#__enter__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.geoids._GeoidBase._llh3LL\tpygeodesy.geoids._GeoidBase-class.html#_llh3LL\npygeodesy.geoids.GeoidG2012B.__call__\tpygeodesy.geoids.GeoidG2012B-class.html#__call__\npygeodesy.geoids._GeoidBase._LL3T\tpygeodesy.geoids._GeoidBase-class.html#_LL3T\npygeodesy.geoids._GeoidBase.__str__\tpygeodesy.geoids._GeoidBase-class.html#__str__\npygeodesy.geoids._GeoidBase._egm\tpygeodesy.geoids._GeoidBase-class.html#_egm\npygeodesy.geoids._GeoidBase.toStr\tpygeodesy.geoids._GeoidBase-class.html#toStr\npygeodesy.geoids.GeoidG2012B._datum\tpygeodesy.geoids.GeoidG2012B-class.html#_datum\npygeodesy.geoids._GeoidBase._gyx2g2\tpygeodesy.geoids._GeoidBase-class.html#_gyx2g2\npygeodesy.geoids._GeoidBase._loweright\tpygeodesy.geoids._GeoidBase-class.html#_loweright\npygeodesy.heights._HeightBase.scipy\tpygeodesy.heights._HeightBase-class.html#scipy\npygeodesy.geoids._GeoidBase.sizeB\tpygeodesy.geoids._GeoidBase-class.html#sizeB\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.geoids._GeoidBase.name\tpygeodesy.geoids._GeoidBase-class.html#name\npygeodesy.geoids._GeoidBase.upperright\tpygeodesy.geoids._GeoidBase-class.html#upperright\npygeodesy.geoids.GeoidG2012B._ll2g2\tpygeodesy.geoids.GeoidG2012B-class.html#_ll2g2\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.geoids._GeoidBase._heightOrthometric\tpygeodesy.geoids._GeoidBase-class.html#_heightOrthometric\npygeodesy.geoids._GeoidBase._cropped\tpygeodesy.geoids._GeoidBase-class.html#_cropped\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.geoids._GeoidBase.mean\tpygeodesy.geoids._GeoidBase-class.html#mean\npygeodesy.named._Named.toRepr\tpygeodesy.named._Named-class.html#toRepr\npygeodesy.geoids._GeoidBase._upperright\tpygeodesy.geoids._GeoidBase-class.html#_upperright\npygeodesy.geoids._GeoidBase.u2B\tpygeodesy.geoids._GeoidBase-class.html#u2B\npygeodesy.geoids._GeoidBase._pgm\tpygeodesy.geoids._GeoidBase-class.html#_pgm\npygeodesy.geoids._GeoidBase._mean\tpygeodesy.geoids._GeoidBase-class.html#_mean\npygeodesy.heights._HeightBase._kxky\tpygeodesy.heights._HeightBase-class.html#_kxky\npygeodesy.geoids._GeoidBase._lowest\tpygeodesy.geoids._GeoidBase-class.html#_lowest\npygeodesy.geoids._GeoidBase.close\tpygeodesy.geoids._GeoidBase-class.html#close\npygeodesy.heights._HeightNamed._as_lls\tpygeodesy.heights._HeightNamed-class.html#_as_lls\npygeodesy.geoids._GeoidBase._lowerleft\tpygeodesy.geoids._GeoidBase-class.html#_lowerleft\npygeodesy.geoids._GeoidBase._swne\tpygeodesy.geoids._GeoidBase-class.html#_swne\npygeodesy.geoids._GeoidBase.outside\tpygeodesy.geoids._GeoidBase-class.html#outside\npygeodesy.geoids._GeoidBase.closed\tpygeodesy.geoids._GeoidBase-class.html#closed\npygeodesy.heights._HeightBase._as_xyllis4\tpygeodesy.heights._HeightBase-class.html#_as_xyllis4\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.geoids._GeoidBase.lowerright\tpygeodesy.geoids._GeoidBase-class.html#lowerright\npygeodesy.geoids._GeoidBase.stdev\tpygeodesy.geoids._GeoidBase-class.html#stdev\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.heights._HeightBase._scipy_version\tpygeodesy.heights._HeightBase-class.html#_scipy_version\npygeodesy.geoids._GeoidBase._ev\tpygeodesy.geoids._GeoidBase-class.html#_ev\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.geoids._GeoidBase.hits\tpygeodesy.geoids._GeoidBase-class.html#hits\npygeodesy.geoids._GeoidBase._yx_hits\tpygeodesy.geoids._GeoidBase-class.html#_yx_hits\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.heights._HeightBase._ev_name\tpygeodesy.heights._HeightBase-class.html#_ev_name\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.geoids._GeoidBase._highest\tpygeodesy.geoids._GeoidBase-class.html#_highest\npygeodesy.geoids._GeoidBase.lowerleft\tpygeodesy.geoids._GeoidBase-class.html#lowerleft\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.heights._HeightBase._interp2d\tpygeodesy.heights._HeightBase-class.html#_interp2d\npygeodesy.geoids._GeoidBase.knots\tpygeodesy.geoids._GeoidBase-class.html#knots\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.geoids._GeoidBase.height_\tpygeodesy.geoids._GeoidBase-class.html#height_\npygeodesy.heights._HeightBase._evalls\tpygeodesy.heights._HeightBase-class.html#_evalls\npygeodesy.geoids._GeoidBase.dtype\tpygeodesy.geoids._GeoidBase-class.html#dtype\npygeodesy.geoids._GeoidBase.pgm\tpygeodesy.geoids._GeoidBase-class.html#pgm\npygeodesy.geoids._GeoidBase._stdev\tpygeodesy.geoids._GeoidBase-class.html#_stdev\npygeodesy.heights._HeightNamed.wrap\tpygeodesy.heights._HeightNamed-class.html#wrap\npygeodesy.geoids.GeoidG2012B.height\tpygeodesy.geoids.GeoidG2012B-class.html#height\npygeodesy.geoids._GeoidBase._hGeoid\tpygeodesy.geoids._GeoidBase-class.html#_hGeoid\npygeodesy.heights._HeightNamed._np_sp\tpygeodesy.heights._HeightNamed-class.html#_np_sp\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.geoids._GeoidBase._u2B\tpygeodesy.geoids._GeoidBase-class.html#_u2B\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.heights._HeightNamed._kmin\tpygeodesy.heights._HeightNamed-class.html#_kmin\npygeodesy.geoids._GeoidBase._geoid\tpygeodesy.geoids._GeoidBase-class.html#_geoid\npygeodesy.heights._HeightNamed.kmin\tpygeodesy.heights._HeightNamed-class.html#kmin\npygeodesy.geoids._GeoidBase._open\tpygeodesy.geoids._GeoidBase-class.html#_open\npygeodesy.geoids._GeoidBase._iscipy\tpygeodesy.geoids._GeoidBase-class.html#_iscipy\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.heights._HeightBase.numpy\tpygeodesy.heights._HeightBase-class.html#numpy\npygeodesy.geoids._GeoidBase._called\tpygeodesy.geoids._GeoidBase-class.html#_called\npygeodesy.geoids._GeoidBase.lowest\tpygeodesy.geoids._GeoidBase-class.html#lowest\npygeodesy.geoids._GeoidBase._Error\tpygeodesy.geoids.GeoidError-class.html\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.geoids._GeoidBase._kind\tpygeodesy.geoids._GeoidBase-class.html#_kind\npygeodesy.geoids._GeoidBase.highest\tpygeodesy.geoids._GeoidBase-class.html#highest\npygeodesy.geoids._GeoidBase._load\tpygeodesy.geoids._GeoidBase-class.html#_load\npygeodesy.geoids._GeoidBase.kind\tpygeodesy.geoids._GeoidBase-class.html#kind\npygeodesy.heights._HeightBase._k2interp2d\tpygeodesy.heights._HeightBase-class.html#_k2interp2d\npygeodesy.geoids._GeoidBase.smooth\tpygeodesy.geoids._GeoidBase-class.html#smooth\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.geoids._GeoidBase.endian\tpygeodesy.geoids._GeoidBase-class.html#endian\npygeodesy.geoids.GeoidG2012B._g2ll2\tpygeodesy.geoids.GeoidG2012B-class.html#_g2ll2\npygeodesy.geoids._GeoidBase._llh3minmax\tpygeodesy.geoids._GeoidBase-class.html#_llh3minmax\npygeodesy.heights._HeightNamed._LLiC\tpygeodesy.points.LatLon_-class.html\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.geoids._GeoidBase.upperleft\tpygeodesy.geoids._GeoidBase-class.html#upperleft\npygeodesy.heights._HeightBase._xyhs3\tpygeodesy.heights._HeightBase-class.html#_xyhs3\npygeodesy.geoids._GeoidBase._center\tpygeodesy.geoids._GeoidBase-class.html#_center\npygeodesy.geoids._GeoidBase._upperleft\tpygeodesy.geoids._GeoidBase-class.html#_upperleft\npygeodesy.geoids._GeoidBase.__exit__\tpygeodesy.geoids._GeoidBase-class.html#__exit__\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.geoids.GeoidG2012B.__init__\tpygeodesy.geoids.GeoidG2012B-class.html#__init__\npygeodesy.geoids._GeoidBase._gaxis2\tpygeodesy.geoids._GeoidBase-class.html#_gaxis2\npygeodesy.geoids._GeoidBase._endian\tpygeodesy.geoids._GeoidBase-class.html#_endian\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.geoids._GeoidBase.cropped\tpygeodesy.geoids._GeoidBase-class.html#cropped\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.geoids._GeoidBase._nBytes\tpygeodesy.geoids._GeoidBase-class.html#_nBytes\npygeodesy.heights._HeightBase.scipy_interpolate\tpygeodesy.heights._HeightBase-class.html#scipy_interpolate\npygeodesy.geoids._GeoidBase.__repr__\tpygeodesy.geoids._GeoidBase-class.html#__repr__\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.geoids._GeoidBase._llh3\tpygeodesy.geoids._GeoidBase-class.html#_llh3\npygeodesy.geoids._GeoidBase._hs_y_x\tpygeodesy.geoids._GeoidBase-class.html#_hs_y_x\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.geoids._GeoidBase.nBytes\tpygeodesy.geoids._GeoidBase-class.html#nBytes\npygeodesy.geoids._GeoidBase.center\tpygeodesy.geoids._GeoidBase-class.html#center\npygeodesy.heights._HeightBase._np_sp2\tpygeodesy.heights._HeightBase-class.html#_np_sp2\npygeodesy.heights._HeightNamed._wrap\tpygeodesy.heights._HeightNamed-class.html#_wrap\npygeodesy.geoids.GeoidHeight5Tuple\tpygeodesy.geoids.GeoidHeight5Tuple-class.html\npygeodesy.named._NamedTuple.toRepr\tpygeodesy.named._NamedTuple-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._NamedTuple.toUnits\tpygeodesy.named._NamedTuple-class.html#toUnits\npygeodesy.named._NamedTuple._validate\tpygeodesy.named._NamedTuple-class.html#_validate\npygeodesy.named._NamedTuple.__str__\tpygeodesy.named._NamedTuple-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._NamedTuple._DOT_\tpygeodesy.named._NamedTuple-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._NamedTuple.reUnit\tpygeodesy.named._NamedTuple-class.html#reUnit\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.geoids.GeoidHeight5Tuple._Names_\tpygeodesy.geoids.GeoidHeight5Tuple-class.html#_Names_\npygeodesy.named._NamedTuple.__setattr__\tpygeodesy.named._NamedTuple-class.html#__setattr__\npygeodesy.named._NamedTuple.__new__\tpygeodesy.named._NamedTuple-class.html#__new__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._NamedTuple._validated\tpygeodesy.named._NamedTuple-class.html#_validated\npygeodesy.named._NamedTuple.__getattr__\tpygeodesy.named._NamedTuple-class.html#__getattr__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._NamedTuple._xtend\tpygeodesy.named._NamedTuple-class.html#_xtend\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._NamedTuple.dup\tpygeodesy.named._NamedTuple-class.html#dup\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedTuple.toStr\tpygeodesy.named._NamedTuple-class.html#toStr\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedTuple.units\tpygeodesy.named._NamedTuple-class.html#units\npygeodesy.named._NamedTuple.iterunits\tpygeodesy.named._NamedTuple-class.html#iterunits\npygeodesy.named._NamedTuple.iteritems\tpygeodesy.named._NamedTuple-class.html#iteritems\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._NamedTuple.items\tpygeodesy.named._NamedTuple-class.html#items\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedTuple.__delattr__\tpygeodesy.named._NamedTuple-class.html#__delattr__\npygeodesy.named._NamedTuple.__repr__\tpygeodesy.named._NamedTuple-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._NamedTuple.__hash__\tpygeodesy.named._NamedTuple-class.html#__hash__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.geoids.GeoidHeight5Tuple._Units_\tpygeodesy.geoids.GeoidHeight5Tuple-class.html#_Units_\npygeodesy.geoids.GeoidKarney\tpygeodesy.geoids.GeoidKarney-class.html\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.geoids.GeoidKarney._seek\tpygeodesy.geoids.GeoidKarney-class.html#_seek\npygeodesy.geoids._GeoidBase._knots\tpygeodesy.geoids._GeoidBase-class.html#_knots\npygeodesy.heights._HeightNamed.datum\tpygeodesy.heights._HeightNamed-class.html#datum\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.geoids._GeoidBase._sizeB\tpygeodesy.geoids._GeoidBase-class.html#_sizeB\npygeodesy.geoids._GeoidBase.loweright\tpygeodesy.geoids._GeoidBase-class.html#loweright\npygeodesy.geoids.GeoidKarney._Rendian\tpygeodesy.geoids.GeoidKarney-class.html#_Rendian\npygeodesy.geoids.GeoidKarney._ev2d\tpygeodesy.geoids.GeoidKarney-class.html#_ev2d\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.geoids.GeoidKarney._smooth\tpygeodesy.geoids.GeoidKarney-class.html#_smooth\npygeodesy.geoids._GeoidBase.__enter__\tpygeodesy.geoids._GeoidBase-class.html#__enter__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.geoids._GeoidBase._llh3LL\tpygeodesy.geoids._GeoidBase-class.html#_llh3LL\npygeodesy.geoids._GeoidBase.__call__\tpygeodesy.geoids._GeoidBase-class.html#__call__\npygeodesy.geoids.GeoidKarney._lat2y2\tpygeodesy.geoids.GeoidKarney-class.html#_lat2y2\npygeodesy.geoids._GeoidBase._LL3T\tpygeodesy.geoids._GeoidBase-class.html#_LL3T\npygeodesy.geoids._GeoidBase.__str__\tpygeodesy.geoids._GeoidBase-class.html#__str__\npygeodesy.geoids._GeoidBase._egm\tpygeodesy.geoids._GeoidBase-class.html#_egm\npygeodesy.geoids.GeoidKarney._nterms\tpygeodesy.geoids.GeoidKarney-class.html#_nterms\npygeodesy.geoids._GeoidBase.toStr\tpygeodesy.geoids._GeoidBase-class.html#toStr\npygeodesy.geoids.GeoidKarney._BT\tpygeodesy.geoids.GeoidKarney-class.html#_BT\npygeodesy.geoids.GeoidKarney._gyx2g2\tpygeodesy.geoids.GeoidKarney-class.html#_gyx2g2\npygeodesy.geoids._GeoidBase._loweright\tpygeodesy.geoids._GeoidBase-class.html#_loweright\npygeodesy.heights._HeightBase.scipy\tpygeodesy.heights._HeightBase-class.html#scipy\npygeodesy.geoids._GeoidBase.sizeB\tpygeodesy.geoids._GeoidBase-class.html#sizeB\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.geoids._GeoidBase.name\tpygeodesy.geoids._GeoidBase-class.html#name\npygeodesy.geoids._GeoidBase.upperright\tpygeodesy.geoids._GeoidBase-class.html#upperright\npygeodesy.geoids.GeoidKarney._ll2g2\tpygeodesy.geoids.GeoidKarney-class.html#_ll2g2\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.geoids._GeoidBase._heightOrthometric\tpygeodesy.geoids._GeoidBase-class.html#_heightOrthometric\npygeodesy.geoids._GeoidBase._cropped\tpygeodesy.geoids._GeoidBase-class.html#_cropped\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.geoids._GeoidBase.mean\tpygeodesy.geoids._GeoidBase-class.html#mean\npygeodesy.geoids.GeoidKarney._4endian\tpygeodesy.geoids.GeoidKarney-class.html#_4endian\npygeodesy.geoids._GeoidBase._upperright\tpygeodesy.geoids._GeoidBase-class.html#_upperright\npygeodesy.geoids.GeoidKarney._ev2k\tpygeodesy.geoids.GeoidKarney-class.html#_ev2k\npygeodesy.geoids._GeoidBase.u2B\tpygeodesy.geoids._GeoidBase-class.html#u2B\npygeodesy.geoids._GeoidBase._pgm\tpygeodesy.geoids._GeoidBase-class.html#_pgm\npygeodesy.geoids.GeoidKarney._lowest_ltd\tpygeodesy.geoids.GeoidKarney-class.html#_lowest_ltd\npygeodesy.geoids.GeoidKarney._mean\tpygeodesy.geoids.GeoidKarney-class.html#_mean\npygeodesy.heights._HeightBase._kxky\tpygeodesy.heights._HeightBase-class.html#_kxky\npygeodesy.geoids._GeoidBase._lowest\tpygeodesy.geoids._GeoidBase-class.html#_lowest\npygeodesy.geoids._GeoidBase.close\tpygeodesy.geoids._GeoidBase-class.html#close\npygeodesy.heights._HeightNamed._as_lls\tpygeodesy.heights._HeightNamed-class.html#_as_lls\npygeodesy.geoids._GeoidBase._lowerleft\tpygeodesy.geoids._GeoidBase-class.html#_lowerleft\npygeodesy.geoids._GeoidBase._swne\tpygeodesy.geoids._GeoidBase-class.html#_swne\npygeodesy.geoids.GeoidKarney._raw2\tpygeodesy.geoids.GeoidKarney-class.html#_raw2\npygeodesy.geoids._GeoidBase.outside\tpygeodesy.geoids._GeoidBase-class.html#outside\npygeodesy.geoids._GeoidBase.closed\tpygeodesy.geoids._GeoidBase-class.html#closed\npygeodesy.heights._HeightBase._as_xyllis4\tpygeodesy.heights._HeightBase-class.html#_as_xyllis4\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.geoids.GeoidKarney._g2yx2\tpygeodesy.geoids.GeoidKarney-class.html#_g2yx2\npygeodesy.geoids._GeoidBase.lowerright\tpygeodesy.geoids._GeoidBase-class.html#lowerright\npygeodesy.geoids.GeoidKarney._ev3k\tpygeodesy.geoids.GeoidKarney-class.html#_ev3k\npygeodesy.geoids._GeoidBase.stdev\tpygeodesy.geoids._GeoidBase-class.html#stdev\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.heights._HeightBase._scipy_version\tpygeodesy.heights._HeightBase-class.html#_scipy_version\npygeodesy.geoids.GeoidKarney._ev\tpygeodesy.geoids.GeoidKarney-class.html#_ev\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.geoids._GeoidBase.hits\tpygeodesy.geoids._GeoidBase-class.html#hits\npygeodesy.geoids.GeoidKarney._yx_hits\tpygeodesy.geoids.GeoidKarney-class.html#_yx_hits\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.heights._HeightBase._ev_name\tpygeodesy.heights._HeightBase-class.html#_ev_name\npygeodesy.geoids.GeoidKarney._raws\tpygeodesy.geoids.GeoidKarney-class.html#_raws\npygeodesy.geoids._GeoidBase._highest\tpygeodesy.geoids._GeoidBase-class.html#_highest\npygeodesy.geoids._GeoidBase.lowerleft\tpygeodesy.geoids._GeoidBase-class.html#lowerleft\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.heights._HeightBase._interp2d\tpygeodesy.heights._HeightBase-class.html#_interp2d\npygeodesy.geoids._GeoidBase.knots\tpygeodesy.geoids._GeoidBase-class.html#knots\npygeodesy.named._Named.toRepr\tpygeodesy.named._Named-class.html#toRepr\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.geoids._GeoidBase.height_\tpygeodesy.geoids._GeoidBase-class.html#height_\npygeodesy.heights._HeightBase._evalls\tpygeodesy.heights._HeightBase-class.html#_evalls\npygeodesy.geoids.GeoidKarney.dtype\tpygeodesy.geoids.GeoidKarney-class.html#dtype\npygeodesy.geoids._GeoidBase.pgm\tpygeodesy.geoids._GeoidBase-class.html#pgm\npygeodesy.geoids.GeoidKarney._stdev\tpygeodesy.geoids.GeoidKarney-class.html#_stdev\npygeodesy.heights._HeightNamed.wrap\tpygeodesy.heights._HeightNamed-class.html#wrap\npygeodesy.geoids._GeoidBase.height\tpygeodesy.geoids._GeoidBase-class.html#height\npygeodesy.geoids._GeoidBase._hGeoid\tpygeodesy.geoids._GeoidBase-class.html#_hGeoid\npygeodesy.heights._HeightNamed._np_sp\tpygeodesy.heights._HeightNamed-class.html#_np_sp\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.geoids.GeoidKarney._u2B\tpygeodesy.geoids.GeoidKarney-class.html#_u2B\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.heights._HeightNamed._kmin\tpygeodesy.heights._HeightNamed-class.html#_kmin\npygeodesy.geoids.GeoidKarney._Ru2B\tpygeodesy.geoids.GeoidKarney-class.html#_Ru2B\npygeodesy.geoids._GeoidBase._geoid\tpygeodesy.geoids._GeoidBase-class.html#_geoid\npygeodesy.heights._HeightNamed.kmin\tpygeodesy.heights._HeightNamed-class.html#kmin\npygeodesy.geoids._GeoidBase._open\tpygeodesy.geoids._GeoidBase-class.html#_open\npygeodesy.geoids.GeoidKarney._iscipy\tpygeodesy.geoids.GeoidKarney-class.html#_iscipy\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.heights._HeightBase.numpy\tpygeodesy.heights._HeightBase-class.html#numpy\npygeodesy.geoids._GeoidBase._called\tpygeodesy.geoids._GeoidBase-class.html#_called\npygeodesy.geoids.GeoidKarney.lowest\tpygeodesy.geoids.GeoidKarney-class.html#lowest\npygeodesy.geoids._GeoidBase._Error\tpygeodesy.geoids.GeoidError-class.html\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.geoids._GeoidBase._kind\tpygeodesy.geoids._GeoidBase-class.html#_kind\npygeodesy.geoids.GeoidKarney.highest\tpygeodesy.geoids.GeoidKarney-class.html#highest\npygeodesy.geoids._GeoidBase._load\tpygeodesy.geoids._GeoidBase-class.html#_load\npygeodesy.geoids._GeoidBase.kind\tpygeodesy.geoids._GeoidBase-class.html#kind\npygeodesy.heights._HeightBase._k2interp2d\tpygeodesy.heights._HeightBase-class.html#_k2interp2d\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.geoids._GeoidBase.smooth\tpygeodesy.geoids._GeoidBase-class.html#smooth\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.geoids._GeoidBase.endian\tpygeodesy.geoids._GeoidBase-class.html#endian\npygeodesy.geoids.GeoidKarney._g2ll2\tpygeodesy.geoids.GeoidKarney-class.html#_g2ll2\npygeodesy.geoids.GeoidKarney._llh3minmax\tpygeodesy.geoids.GeoidKarney-class.html#_llh3minmax\npygeodesy.heights._HeightNamed._LLiC\tpygeodesy.points.LatLon_-class.html\npygeodesy.geoids.GeoidKarney._c0c3v\tpygeodesy.geoids.GeoidKarney-class.html#_c0c3v\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.geoids.GeoidKarney._yx_i\tpygeodesy.geoids.GeoidKarney-class.html#_yx_i\npygeodesy.geoids._GeoidBase.upperleft\tpygeodesy.geoids._GeoidBase-class.html#upperleft\npygeodesy.geoids.GeoidKarney._4u2B\tpygeodesy.geoids.GeoidKarney-class.html#_4u2B\npygeodesy.geoids._GeoidBase._upperleft\tpygeodesy.geoids._GeoidBase-class.html#_upperleft\npygeodesy.heights._HeightBase._xyhs3\tpygeodesy.heights._HeightBase-class.html#_xyhs3\npygeodesy.geoids._GeoidBase._center\tpygeodesy.geoids._GeoidBase-class.html#_center\npygeodesy.geoids.GeoidKarney._CM\tpygeodesy.geoids.GeoidKarney-class.html#_CM\npygeodesy.geoids.GeoidKarney._yx_t\tpygeodesy.geoids.GeoidKarney-class.html#_yx_t\npygeodesy.geoids._GeoidBase.__exit__\tpygeodesy.geoids._GeoidBase-class.html#__exit__\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.geoids.GeoidKarney.__init__\tpygeodesy.geoids.GeoidKarney-class.html#__init__\npygeodesy.geoids._GeoidBase._gaxis2\tpygeodesy.geoids._GeoidBase-class.html#_gaxis2\npygeodesy.geoids.GeoidKarney._endian\tpygeodesy.geoids.GeoidKarney-class.html#_endian\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.geoids._GeoidBase.cropped\tpygeodesy.geoids._GeoidBase-class.html#cropped\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.geoids.GeoidKarney._nBytes\tpygeodesy.geoids.GeoidKarney-class.html#_nBytes\npygeodesy.heights._HeightBase.scipy_interpolate\tpygeodesy.heights._HeightBase-class.html#scipy_interpolate\npygeodesy.heights._HeightNamed._datum\tpygeodesy.heights._HeightNamed-class.html#_datum\npygeodesy.geoids._GeoidBase.__repr__\tpygeodesy.geoids._GeoidBase-class.html#__repr__\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.geoids._GeoidBase._llh3\tpygeodesy.geoids._GeoidBase-class.html#_llh3\npygeodesy.geoids._GeoidBase._hs_y_x\tpygeodesy.geoids._GeoidBase-class.html#_hs_y_x\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.geoids._GeoidBase.nBytes\tpygeodesy.geoids._GeoidBase-class.html#nBytes\npygeodesy.geoids._GeoidBase.center\tpygeodesy.geoids._GeoidBase-class.html#center\npygeodesy.geoids.GeoidKarney._C0\tpygeodesy.geoids.GeoidKarney-class.html#_C0\npygeodesy.geoids.GeoidKarney._C3\tpygeodesy.geoids.GeoidKarney-class.html#_C3\npygeodesy.geoids.GeoidKarney._highest_ltd\tpygeodesy.geoids.GeoidKarney-class.html#_highest_ltd\npygeodesy.heights._HeightBase._np_sp2\tpygeodesy.heights._HeightBase-class.html#_np_sp2\npygeodesy.geoids.GeoidKarney._raw\tpygeodesy.geoids.GeoidKarney-class.html#_raw\npygeodesy.heights._HeightNamed._wrap\tpygeodesy.heights._HeightNamed-class.html#_wrap\npygeodesy.geoids.GeoidPGM\tpygeodesy.geoids.GeoidPGM-class.html\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.geoids._GeoidBase._knots\tpygeodesy.geoids._GeoidBase-class.html#_knots\npygeodesy.heights._HeightNamed.datum\tpygeodesy.heights._HeightNamed-class.html#datum\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.geoids._GeoidBase._sizeB\tpygeodesy.geoids._GeoidBase-class.html#_sizeB\npygeodesy.geoids._GeoidBase.loweright\tpygeodesy.geoids._GeoidBase-class.html#loweright\npygeodesy.heights._HeightBase._ev2d\tpygeodesy.heights._HeightBase-class.html#_ev2d\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.geoids._GeoidBase._smooth\tpygeodesy.geoids._GeoidBase-class.html#_smooth\npygeodesy.geoids._GeoidBase.__enter__\tpygeodesy.geoids._GeoidBase-class.html#__enter__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.geoids._GeoidBase._llh3LL\tpygeodesy.geoids._GeoidBase-class.html#_llh3LL\npygeodesy.geoids.GeoidPGM.__call__\tpygeodesy.geoids.GeoidPGM-class.html#__call__\npygeodesy.geoids._GeoidBase._LL3T\tpygeodesy.geoids._GeoidBase-class.html#_LL3T\npygeodesy.geoids._GeoidBase.__str__\tpygeodesy.geoids._GeoidBase-class.html#__str__\npygeodesy.geoids._GeoidBase._egm\tpygeodesy.geoids._GeoidBase-class.html#_egm\npygeodesy.geoids._GeoidBase.toStr\tpygeodesy.geoids._GeoidBase-class.html#toStr\npygeodesy.heights._HeightNamed._datum\tpygeodesy.heights._HeightNamed-class.html#_datum\npygeodesy.geoids._GeoidBase._gyx2g2\tpygeodesy.geoids._GeoidBase-class.html#_gyx2g2\npygeodesy.geoids._GeoidBase._loweright\tpygeodesy.geoids._GeoidBase-class.html#_loweright\npygeodesy.heights._HeightBase.scipy\tpygeodesy.heights._HeightBase-class.html#scipy\npygeodesy.geoids._GeoidBase.sizeB\tpygeodesy.geoids._GeoidBase-class.html#sizeB\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.geoids._GeoidBase.name\tpygeodesy.geoids._GeoidBase-class.html#name\npygeodesy.geoids._GeoidBase.upperright\tpygeodesy.geoids._GeoidBase-class.html#upperright\npygeodesy.geoids.GeoidPGM._ll2g2\tpygeodesy.geoids.GeoidPGM-class.html#_ll2g2\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.geoids._GeoidBase._heightOrthometric\tpygeodesy.geoids._GeoidBase-class.html#_heightOrthometric\npygeodesy.geoids.GeoidPGM._cropped\tpygeodesy.geoids.GeoidPGM-class.html#_cropped\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.geoids._GeoidBase.mean\tpygeodesy.geoids._GeoidBase-class.html#mean\npygeodesy.named._Named.toRepr\tpygeodesy.named._Named-class.html#toRepr\npygeodesy.geoids._GeoidBase._upperright\tpygeodesy.geoids._GeoidBase-class.html#_upperright\npygeodesy.geoids._GeoidBase.u2B\tpygeodesy.geoids._GeoidBase-class.html#u2B\npygeodesy.geoids._GeoidBase._pgm\tpygeodesy.geoids._GeoidBase-class.html#_pgm\npygeodesy.geoids._GeoidBase._mean\tpygeodesy.geoids._GeoidBase-class.html#_mean\npygeodesy.heights._HeightBase._kxky\tpygeodesy.heights._HeightBase-class.html#_kxky\npygeodesy.geoids._GeoidBase._lowest\tpygeodesy.geoids._GeoidBase-class.html#_lowest\npygeodesy.geoids._GeoidBase.close\tpygeodesy.geoids._GeoidBase-class.html#close\npygeodesy.heights._HeightNamed._as_lls\tpygeodesy.heights._HeightNamed-class.html#_as_lls\npygeodesy.geoids._GeoidBase._lowerleft\tpygeodesy.geoids._GeoidBase-class.html#_lowerleft\npygeodesy.geoids._GeoidBase._swne\tpygeodesy.geoids._GeoidBase-class.html#_swne\npygeodesy.geoids._GeoidBase.outside\tpygeodesy.geoids._GeoidBase-class.html#outside\npygeodesy.geoids._GeoidBase.closed\tpygeodesy.geoids._GeoidBase-class.html#closed\npygeodesy.heights._HeightBase._as_xyllis4\tpygeodesy.heights._HeightBase-class.html#_as_xyllis4\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.geoids._GeoidBase.lowerright\tpygeodesy.geoids._GeoidBase-class.html#lowerright\npygeodesy.geoids._GeoidBase.stdev\tpygeodesy.geoids._GeoidBase-class.html#stdev\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.heights._HeightBase._scipy_version\tpygeodesy.heights._HeightBase-class.html#_scipy_version\npygeodesy.geoids._GeoidBase._ev\tpygeodesy.geoids._GeoidBase-class.html#_ev\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.geoids._GeoidBase.hits\tpygeodesy.geoids._GeoidBase-class.html#hits\npygeodesy.geoids._GeoidBase._yx_hits\tpygeodesy.geoids._GeoidBase-class.html#_yx_hits\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.heights._HeightBase._ev_name\tpygeodesy.heights._HeightBase-class.html#_ev_name\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.geoids._GeoidBase._highest\tpygeodesy.geoids._GeoidBase-class.html#_highest\npygeodesy.geoids._GeoidBase.lowerleft\tpygeodesy.geoids._GeoidBase-class.html#lowerleft\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.heights._HeightBase._interp2d\tpygeodesy.heights._HeightBase-class.html#_interp2d\npygeodesy.geoids._GeoidBase.knots\tpygeodesy.geoids._GeoidBase-class.html#knots\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.geoids._GeoidBase.height_\tpygeodesy.geoids._GeoidBase-class.html#height_\npygeodesy.heights._HeightBase._evalls\tpygeodesy.heights._HeightBase-class.html#_evalls\npygeodesy.geoids._GeoidBase.dtype\tpygeodesy.geoids._GeoidBase-class.html#dtype\npygeodesy.geoids._GeoidBase.pgm\tpygeodesy.geoids._GeoidBase-class.html#pgm\npygeodesy.geoids._GeoidBase._stdev\tpygeodesy.geoids._GeoidBase-class.html#_stdev\npygeodesy.heights._HeightNamed.wrap\tpygeodesy.heights._HeightNamed-class.html#wrap\npygeodesy.geoids.GeoidPGM.height\tpygeodesy.geoids.GeoidPGM-class.html#height\npygeodesy.geoids._GeoidBase._hGeoid\tpygeodesy.geoids._GeoidBase-class.html#_hGeoid\npygeodesy.heights._HeightNamed._np_sp\tpygeodesy.heights._HeightNamed-class.html#_np_sp\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.geoids._GeoidBase._u2B\tpygeodesy.geoids._GeoidBase-class.html#_u2B\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.heights._HeightNamed._kmin\tpygeodesy.heights._HeightNamed-class.html#_kmin\npygeodesy.geoids._GeoidBase._geoid\tpygeodesy.geoids._GeoidBase-class.html#_geoid\npygeodesy.heights._HeightNamed.kmin\tpygeodesy.heights._HeightNamed-class.html#kmin\npygeodesy.geoids._GeoidBase._open\tpygeodesy.geoids._GeoidBase-class.html#_open\npygeodesy.geoids._GeoidBase._iscipy\tpygeodesy.geoids._GeoidBase-class.html#_iscipy\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.heights._HeightBase.numpy\tpygeodesy.heights._HeightBase-class.html#numpy\npygeodesy.geoids._GeoidBase._called\tpygeodesy.geoids._GeoidBase-class.html#_called\npygeodesy.geoids._GeoidBase.lowest\tpygeodesy.geoids._GeoidBase-class.html#lowest\npygeodesy.geoids._GeoidBase._Error\tpygeodesy.geoids.GeoidError-class.html\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.geoids._GeoidBase._kind\tpygeodesy.geoids._GeoidBase-class.html#_kind\npygeodesy.geoids._GeoidBase.highest\tpygeodesy.geoids._GeoidBase-class.html#highest\npygeodesy.geoids._GeoidBase._load\tpygeodesy.geoids._GeoidBase-class.html#_load\npygeodesy.geoids._GeoidBase.kind\tpygeodesy.geoids._GeoidBase-class.html#kind\npygeodesy.heights._HeightBase._k2interp2d\tpygeodesy.heights._HeightBase-class.html#_k2interp2d\npygeodesy.geoids._GeoidBase.smooth\tpygeodesy.geoids._GeoidBase-class.html#smooth\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.geoids._GeoidBase.endian\tpygeodesy.geoids._GeoidBase-class.html#endian\npygeodesy.geoids.GeoidPGM._g2ll2\tpygeodesy.geoids.GeoidPGM-class.html#_g2ll2\npygeodesy.geoids._GeoidBase._llh3minmax\tpygeodesy.geoids._GeoidBase-class.html#_llh3minmax\npygeodesy.heights._HeightNamed._LLiC\tpygeodesy.points.LatLon_-class.html\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.geoids._GeoidBase.upperleft\tpygeodesy.geoids._GeoidBase-class.html#upperleft\npygeodesy.heights._HeightBase._xyhs3\tpygeodesy.heights._HeightBase-class.html#_xyhs3\npygeodesy.geoids._GeoidBase._center\tpygeodesy.geoids._GeoidBase-class.html#_center\npygeodesy.geoids._GeoidBase._upperleft\tpygeodesy.geoids._GeoidBase-class.html#_upperleft\npygeodesy.geoids._GeoidBase.__exit__\tpygeodesy.geoids._GeoidBase-class.html#__exit__\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.geoids.GeoidPGM.__init__\tpygeodesy.geoids.GeoidPGM-class.html#__init__\npygeodesy.geoids._GeoidBase._gaxis2\tpygeodesy.geoids._GeoidBase-class.html#_gaxis2\npygeodesy.geoids.GeoidPGM._endian\tpygeodesy.geoids.GeoidPGM-class.html#_endian\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.geoids._GeoidBase.cropped\tpygeodesy.geoids._GeoidBase-class.html#cropped\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.geoids._GeoidBase._nBytes\tpygeodesy.geoids._GeoidBase-class.html#_nBytes\npygeodesy.heights._HeightBase.scipy_interpolate\tpygeodesy.heights._HeightBase-class.html#scipy_interpolate\npygeodesy.geoids._GeoidBase.__repr__\tpygeodesy.geoids._GeoidBase-class.html#__repr__\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.geoids._GeoidBase._llh3\tpygeodesy.geoids._GeoidBase-class.html#_llh3\npygeodesy.geoids._GeoidBase._hs_y_x\tpygeodesy.geoids._GeoidBase-class.html#_hs_y_x\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.geoids._GeoidBase.nBytes\tpygeodesy.geoids._GeoidBase-class.html#nBytes\npygeodesy.geoids._GeoidBase.center\tpygeodesy.geoids._GeoidBase-class.html#center\npygeodesy.heights._HeightBase._np_sp2\tpygeodesy.heights._HeightBase-class.html#_np_sp2\npygeodesy.heights._HeightNamed._wrap\tpygeodesy.heights._HeightNamed-class.html#_wrap\npygeodesy.geoids.PGMError\tpygeodesy.geoids.PGMError-class.html\npygeodesy.geoids._GeoidBase\tpygeodesy.geoids._GeoidBase-class.html\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.geoids._GeoidBase._knots\tpygeodesy.geoids._GeoidBase-class.html#_knots\npygeodesy.heights._HeightNamed.datum\tpygeodesy.heights._HeightNamed-class.html#datum\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.geoids._GeoidBase._sizeB\tpygeodesy.geoids._GeoidBase-class.html#_sizeB\npygeodesy.geoids._GeoidBase.loweright\tpygeodesy.geoids._GeoidBase-class.html#loweright\npygeodesy.heights._HeightBase._ev2d\tpygeodesy.heights._HeightBase-class.html#_ev2d\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.geoids._GeoidBase._smooth\tpygeodesy.geoids._GeoidBase-class.html#_smooth\npygeodesy.geoids._GeoidBase.__enter__\tpygeodesy.geoids._GeoidBase-class.html#__enter__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.geoids._GeoidBase._llh3LL\tpygeodesy.geoids._GeoidBase-class.html#_llh3LL\npygeodesy.geoids._GeoidBase.__call__\tpygeodesy.geoids._GeoidBase-class.html#__call__\npygeodesy.geoids._GeoidBase._LL3T\tpygeodesy.geoids._GeoidBase-class.html#_LL3T\npygeodesy.geoids._GeoidBase.__str__\tpygeodesy.geoids._GeoidBase-class.html#__str__\npygeodesy.geoids._GeoidBase._egm\tpygeodesy.geoids._GeoidBase-class.html#_egm\npygeodesy.geoids._GeoidBase.toStr\tpygeodesy.geoids._GeoidBase-class.html#toStr\npygeodesy.heights._HeightNamed._datum\tpygeodesy.heights._HeightNamed-class.html#_datum\npygeodesy.geoids._GeoidBase._gyx2g2\tpygeodesy.geoids._GeoidBase-class.html#_gyx2g2\npygeodesy.geoids._GeoidBase._loweright\tpygeodesy.geoids._GeoidBase-class.html#_loweright\npygeodesy.heights._HeightBase.scipy\tpygeodesy.heights._HeightBase-class.html#scipy\npygeodesy.geoids._GeoidBase.sizeB\tpygeodesy.geoids._GeoidBase-class.html#sizeB\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.geoids._GeoidBase.name\tpygeodesy.geoids._GeoidBase-class.html#name\npygeodesy.geoids._GeoidBase.upperright\tpygeodesy.geoids._GeoidBase-class.html#upperright\npygeodesy.geoids._GeoidBase._ll2g2\tpygeodesy.geoids._GeoidBase-class.html#_ll2g2\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.geoids._GeoidBase._heightOrthometric\tpygeodesy.geoids._GeoidBase-class.html#_heightOrthometric\npygeodesy.geoids._GeoidBase._cropped\tpygeodesy.geoids._GeoidBase-class.html#_cropped\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.geoids._GeoidBase.mean\tpygeodesy.geoids._GeoidBase-class.html#mean\npygeodesy.named._Named.toRepr\tpygeodesy.named._Named-class.html#toRepr\npygeodesy.geoids._GeoidBase._upperright\tpygeodesy.geoids._GeoidBase-class.html#_upperright\npygeodesy.geoids._GeoidBase.u2B\tpygeodesy.geoids._GeoidBase-class.html#u2B\npygeodesy.geoids._GeoidBase._pgm\tpygeodesy.geoids._GeoidBase-class.html#_pgm\npygeodesy.geoids._GeoidBase._mean\tpygeodesy.geoids._GeoidBase-class.html#_mean\npygeodesy.heights._HeightBase._kxky\tpygeodesy.heights._HeightBase-class.html#_kxky\npygeodesy.geoids._GeoidBase._lowest\tpygeodesy.geoids._GeoidBase-class.html#_lowest\npygeodesy.geoids._GeoidBase.close\tpygeodesy.geoids._GeoidBase-class.html#close\npygeodesy.heights._HeightNamed._as_lls\tpygeodesy.heights._HeightNamed-class.html#_as_lls\npygeodesy.geoids._GeoidBase._lowerleft\tpygeodesy.geoids._GeoidBase-class.html#_lowerleft\npygeodesy.geoids._GeoidBase._swne\tpygeodesy.geoids._GeoidBase-class.html#_swne\npygeodesy.geoids._GeoidBase.outside\tpygeodesy.geoids._GeoidBase-class.html#outside\npygeodesy.geoids._GeoidBase.closed\tpygeodesy.geoids._GeoidBase-class.html#closed\npygeodesy.heights._HeightBase._as_xyllis4\tpygeodesy.heights._HeightBase-class.html#_as_xyllis4\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.geoids._GeoidBase.lowerright\tpygeodesy.geoids._GeoidBase-class.html#lowerright\npygeodesy.geoids._GeoidBase.stdev\tpygeodesy.geoids._GeoidBase-class.html#stdev\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.heights._HeightBase._scipy_version\tpygeodesy.heights._HeightBase-class.html#_scipy_version\npygeodesy.geoids._GeoidBase._ev\tpygeodesy.geoids._GeoidBase-class.html#_ev\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.geoids._GeoidBase.hits\tpygeodesy.geoids._GeoidBase-class.html#hits\npygeodesy.geoids._GeoidBase._yx_hits\tpygeodesy.geoids._GeoidBase-class.html#_yx_hits\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.heights._HeightBase._ev_name\tpygeodesy.heights._HeightBase-class.html#_ev_name\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.geoids._GeoidBase._highest\tpygeodesy.geoids._GeoidBase-class.html#_highest\npygeodesy.geoids._GeoidBase.lowerleft\tpygeodesy.geoids._GeoidBase-class.html#lowerleft\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.heights._HeightBase._interp2d\tpygeodesy.heights._HeightBase-class.html#_interp2d\npygeodesy.geoids._GeoidBase.knots\tpygeodesy.geoids._GeoidBase-class.html#knots\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.geoids._GeoidBase.height_\tpygeodesy.geoids._GeoidBase-class.html#height_\npygeodesy.heights._HeightBase._evalls\tpygeodesy.heights._HeightBase-class.html#_evalls\npygeodesy.geoids._GeoidBase.dtype\tpygeodesy.geoids._GeoidBase-class.html#dtype\npygeodesy.geoids._GeoidBase.pgm\tpygeodesy.geoids._GeoidBase-class.html#pgm\npygeodesy.geoids._GeoidBase._stdev\tpygeodesy.geoids._GeoidBase-class.html#_stdev\npygeodesy.heights._HeightNamed.wrap\tpygeodesy.heights._HeightNamed-class.html#wrap\npygeodesy.geoids._GeoidBase.height\tpygeodesy.geoids._GeoidBase-class.html#height\npygeodesy.geoids._GeoidBase._hGeoid\tpygeodesy.geoids._GeoidBase-class.html#_hGeoid\npygeodesy.heights._HeightNamed._np_sp\tpygeodesy.heights._HeightNamed-class.html#_np_sp\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.geoids._GeoidBase._u2B\tpygeodesy.geoids._GeoidBase-class.html#_u2B\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.heights._HeightNamed._kmin\tpygeodesy.heights._HeightNamed-class.html#_kmin\npygeodesy.geoids._GeoidBase._geoid\tpygeodesy.geoids._GeoidBase-class.html#_geoid\npygeodesy.heights._HeightNamed.kmin\tpygeodesy.heights._HeightNamed-class.html#kmin\npygeodesy.geoids._GeoidBase._open\tpygeodesy.geoids._GeoidBase-class.html#_open\npygeodesy.geoids._GeoidBase._iscipy\tpygeodesy.geoids._GeoidBase-class.html#_iscipy\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.heights._HeightBase.numpy\tpygeodesy.heights._HeightBase-class.html#numpy\npygeodesy.geoids._GeoidBase._called\tpygeodesy.geoids._GeoidBase-class.html#_called\npygeodesy.geoids._GeoidBase.lowest\tpygeodesy.geoids._GeoidBase-class.html#lowest\npygeodesy.geoids._GeoidBase._Error\tpygeodesy.geoids.GeoidError-class.html\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.geoids._GeoidBase._kind\tpygeodesy.geoids._GeoidBase-class.html#_kind\npygeodesy.geoids._GeoidBase.highest\tpygeodesy.geoids._GeoidBase-class.html#highest\npygeodesy.geoids._GeoidBase._load\tpygeodesy.geoids._GeoidBase-class.html#_load\npygeodesy.geoids._GeoidBase.kind\tpygeodesy.geoids._GeoidBase-class.html#kind\npygeodesy.heights._HeightBase._k2interp2d\tpygeodesy.heights._HeightBase-class.html#_k2interp2d\npygeodesy.geoids._GeoidBase.smooth\tpygeodesy.geoids._GeoidBase-class.html#smooth\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.geoids._GeoidBase.endian\tpygeodesy.geoids._GeoidBase-class.html#endian\npygeodesy.geoids._GeoidBase._g2ll2\tpygeodesy.geoids._GeoidBase-class.html#_g2ll2\npygeodesy.geoids._GeoidBase._llh3minmax\tpygeodesy.geoids._GeoidBase-class.html#_llh3minmax\npygeodesy.heights._HeightNamed._LLiC\tpygeodesy.points.LatLon_-class.html\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.geoids._GeoidBase.upperleft\tpygeodesy.geoids._GeoidBase-class.html#upperleft\npygeodesy.heights._HeightBase._xyhs3\tpygeodesy.heights._HeightBase-class.html#_xyhs3\npygeodesy.geoids._GeoidBase._center\tpygeodesy.geoids._GeoidBase-class.html#_center\npygeodesy.geoids._GeoidBase._upperleft\tpygeodesy.geoids._GeoidBase-class.html#_upperleft\npygeodesy.geoids._GeoidBase.__exit__\tpygeodesy.geoids._GeoidBase-class.html#__exit__\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.geoids._GeoidBase.__init__\tpygeodesy.geoids._GeoidBase-class.html#__init__\npygeodesy.geoids._GeoidBase._gaxis2\tpygeodesy.geoids._GeoidBase-class.html#_gaxis2\npygeodesy.geoids._GeoidBase._endian\tpygeodesy.geoids._GeoidBase-class.html#_endian\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.geoids._GeoidBase.cropped\tpygeodesy.geoids._GeoidBase-class.html#cropped\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.geoids._GeoidBase._nBytes\tpygeodesy.geoids._GeoidBase-class.html#_nBytes\npygeodesy.heights._HeightBase.scipy_interpolate\tpygeodesy.heights._HeightBase-class.html#scipy_interpolate\npygeodesy.geoids._GeoidBase.__repr__\tpygeodesy.geoids._GeoidBase-class.html#__repr__\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.geoids._GeoidBase._llh3\tpygeodesy.geoids._GeoidBase-class.html#_llh3\npygeodesy.geoids._GeoidBase._hs_y_x\tpygeodesy.geoids._GeoidBase-class.html#_hs_y_x\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.geoids._GeoidBase.nBytes\tpygeodesy.geoids._GeoidBase-class.html#nBytes\npygeodesy.geoids._GeoidBase.center\tpygeodesy.geoids._GeoidBase-class.html#center\npygeodesy.heights._HeightBase._np_sp2\tpygeodesy.heights._HeightBase-class.html#_np_sp2\npygeodesy.heights._HeightNamed._wrap\tpygeodesy.heights._HeightNamed-class.html#_wrap\npygeodesy.hausdorff.Hausdorff\tpygeodesy.hausdorff.Hausdorff-class.html\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.hausdorff.Hausdorff.point\tpygeodesy.hausdorff.Hausdorff-class.html#point\npygeodesy.named._Named.__str__\tpygeodesy.named._Named-class.html#__str__\npygeodesy.hausdorff.Hausdorff.datum\tpygeodesy.hausdorff.Hausdorff-class.html#datum\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.hausdorff.Hausdorff.seed\tpygeodesy.hausdorff.Hausdorff-class.html#seed\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.hausdorff.Hausdorff.wrap\tpygeodesy.hausdorff.Hausdorff-class.html#wrap\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.hausdorff.Hausdorff.__init__\tpygeodesy.hausdorff.Hausdorff-class.html#__init__\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.hausdorff.Hausdorff._kwds\tpygeodesy.hausdorff.Hausdorff-class.html#_kwds\npygeodesy.hausdorff.Hausdorff._units\tpygeodesy.hausdorff.Hausdorff-class.html#_units\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.hausdorff.Hausdorff.symmetric\tpygeodesy.hausdorff.Hausdorff-class.html#symmetric\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.hausdorff.Hausdorff.units\tpygeodesy.hausdorff.Hausdorff-class.html#units\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.hausdorff.Hausdorff._func\tpygeodesy.hausdorff.Hausdorff-class.html#_func\npygeodesy.hausdorff.Hausdorff.directed\tpygeodesy.hausdorff.Hausdorff-class.html#directed\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named.toStr\tpygeodesy.named._Named-class.html#toStr\npygeodesy.hausdorff.Hausdorff._datum\tpygeodesy.hausdorff.Hausdorff-class.html#_datum\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.named._Named.toRepr\tpygeodesy.named._Named-class.html#toRepr\npygeodesy.hausdorff.Hausdorff._seed\tpygeodesy.hausdorff.Hausdorff-class.html#_seed\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.hausdorff.Hausdorff._datum_setter\tpygeodesy.hausdorff.Hausdorff-class.html#_datum_setter\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.hausdorff.Hausdorff._model\tpygeodesy.hausdorff.Hausdorff-class.html#_model\npygeodesy.hausdorff.Hausdorff.distance\tpygeodesy.hausdorff.Hausdorff-class.html#distance\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.hausdorff.Hausdorff.kwds\tpygeodesy.hausdorff.Hausdorff-class.html#kwds\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.hausdorff.Hausdorff.adjust\tpygeodesy.hausdorff.Hausdorff-class.html#adjust\npygeodesy.hausdorff.Hausdorff._points2\tpygeodesy.hausdorff.Hausdorff-class.html#_points2\npygeodesy.named._Named.__repr__\tpygeodesy.named._Named-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.hausdorff.Hausdorff._hausdorff_\tpygeodesy.hausdorff.Hausdorff-class.html#_hausdorff_\npygeodesy.hausdorff.Hausdorff6Tuple\tpygeodesy.hausdorff.Hausdorff6Tuple-class.html\npygeodesy.named._NamedTuple.toRepr\tpygeodesy.named._NamedTuple-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.hausdorff.Hausdorff6Tuple.toUnits\tpygeodesy.hausdorff.Hausdorff6Tuple-class.html#toUnits\npygeodesy.named._NamedTuple._validate\tpygeodesy.named._NamedTuple-class.html#_validate\npygeodesy.named._NamedTuple.__str__\tpygeodesy.named._NamedTuple-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._NamedTuple._DOT_\tpygeodesy.named._NamedTuple-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._NamedTuple.reUnit\tpygeodesy.named._NamedTuple-class.html#reUnit\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.hausdorff.Hausdorff6Tuple._Names_\tpygeodesy.hausdorff.Hausdorff6Tuple-class.html#_Names_\npygeodesy.named._NamedTuple.__setattr__\tpygeodesy.named._NamedTuple-class.html#__setattr__\npygeodesy.named._NamedTuple.__new__\tpygeodesy.named._NamedTuple-class.html#__new__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._NamedTuple._validated\tpygeodesy.named._NamedTuple-class.html#_validated\npygeodesy.named._NamedTuple.__getattr__\tpygeodesy.named._NamedTuple-class.html#__getattr__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._NamedTuple._xtend\tpygeodesy.named._NamedTuple-class.html#_xtend\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._NamedTuple.dup\tpygeodesy.named._NamedTuple-class.html#dup\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedTuple.toStr\tpygeodesy.named._NamedTuple-class.html#toStr\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedTuple.units\tpygeodesy.named._NamedTuple-class.html#units\npygeodesy.named._NamedTuple.iterunits\tpygeodesy.named._NamedTuple-class.html#iterunits\npygeodesy.named._NamedTuple.iteritems\tpygeodesy.named._NamedTuple-class.html#iteritems\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._NamedTuple.items\tpygeodesy.named._NamedTuple-class.html#items\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedTuple.__delattr__\tpygeodesy.named._NamedTuple-class.html#__delattr__\npygeodesy.named._NamedTuple.__repr__\tpygeodesy.named._NamedTuple-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._NamedTuple.__hash__\tpygeodesy.named._NamedTuple-class.html#__hash__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.hausdorff.Hausdorff6Tuple._Units_\tpygeodesy.hausdorff.Hausdorff6Tuple-class.html#_Units_\npygeodesy.hausdorff.HausdorffCosineLaw\tpygeodesy.hausdorff.HausdorffCosineLaw-class.html\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.hausdorff.Hausdorff.point\tpygeodesy.hausdorff.Hausdorff-class.html#point\npygeodesy.named._Named.__str__\tpygeodesy.named._Named-class.html#__str__\npygeodesy.hausdorff.Hausdorff.datum\tpygeodesy.hausdorff.Hausdorff-class.html#datum\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.hausdorff.Hausdorff.seed\tpygeodesy.hausdorff.Hausdorff-class.html#seed\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.hausdorff.Hausdorff.wrap\tpygeodesy.hausdorff.Hausdorff-class.html#wrap\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.hausdorff.HausdorffCosineLaw.__init__\tpygeodesy.hausdorff.HausdorffCosineLaw-class.html#__init__\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.hausdorff.Hausdorff._kwds\tpygeodesy.hausdorff.Hausdorff-class.html#_kwds\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.hausdorff.HausdorffCosineLaw.symmetric\tpygeodesy.hausdorff.HausdorffCosineLaw-class.html#symmetric\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.hausdorff.Hausdorff.units\tpygeodesy.hausdorff.Hausdorff-class.html#units\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.hausdorff.Hausdorff._func\tpygeodesy.hausdorff.Hausdorff-class.html#_func\npygeodesy.hausdorff.Hausdorff._model\tpygeodesy.hausdorff.Hausdorff-class.html#_model\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named.toStr\tpygeodesy.named._Named-class.html#toStr\npygeodesy.hausdorff.Hausdorff._datum\tpygeodesy.hausdorff.Hausdorff-class.html#_datum\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.named._Named.toRepr\tpygeodesy.named._Named-class.html#toRepr\npygeodesy.hausdorff.Hausdorff._seed\tpygeodesy.hausdorff.Hausdorff-class.html#_seed\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.hausdorff.Hausdorff._datum_setter\tpygeodesy.hausdorff.Hausdorff-class.html#_datum_setter\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.hausdorff.HausdorffCosineLaw.directed\tpygeodesy.hausdorff.HausdorffCosineLaw-class.html#directed\npygeodesy.hausdorff.Hausdorff.distance\tpygeodesy.hausdorff.Hausdorff-class.html#distance\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.hausdorff.Hausdorff.kwds\tpygeodesy.hausdorff.Hausdorff-class.html#kwds\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.hausdorff.Hausdorff.adjust\tpygeodesy.hausdorff.Hausdorff-class.html#adjust\npygeodesy.hausdorff.Hausdorff._points2\tpygeodesy.hausdorff.Hausdorff-class.html#_points2\npygeodesy.named._Named.__repr__\tpygeodesy.named._Named-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.hausdorff.Hausdorff._hausdorff_\tpygeodesy.hausdorff.Hausdorff-class.html#_hausdorff_\npygeodesy.hausdorff.HausdorffDegrees\tpygeodesy.hausdorff.HausdorffDegrees-class.html\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.hausdorff.Hausdorff.point\tpygeodesy.hausdorff.Hausdorff-class.html#point\npygeodesy.named._Named.__str__\tpygeodesy.named._Named-class.html#__str__\npygeodesy.hausdorff.Hausdorff.datum\tpygeodesy.hausdorff.Hausdorff-class.html#datum\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.hausdorff.Hausdorff.seed\tpygeodesy.hausdorff.Hausdorff-class.html#seed\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.hausdorff.Hausdorff.wrap\tpygeodesy.hausdorff.Hausdorff-class.html#wrap\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.hausdorff.HausdorffDegrees.__init__\tpygeodesy.hausdorff.HausdorffDegrees-class.html#__init__\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.hausdorff.Hausdorff._kwds\tpygeodesy.hausdorff.Hausdorff-class.html#_kwds\npygeodesy.hausdorff.HausdorffDegrees._units\tpygeodesy.hausdorff.HausdorffDegrees-class.html#_units\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.hausdorff.HausdorffDegrees.symmetric\tpygeodesy.hausdorff.HausdorffDegrees-class.html#symmetric\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.hausdorff.Hausdorff.units\tpygeodesy.hausdorff.Hausdorff-class.html#units\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.hausdorff.Hausdorff._func\tpygeodesy.hausdorff.Hausdorff-class.html#_func\npygeodesy.hausdorff.Hausdorff._model\tpygeodesy.hausdorff.Hausdorff-class.html#_model\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named.toStr\tpygeodesy.named._Named-class.html#toStr\npygeodesy.hausdorff.Hausdorff._datum\tpygeodesy.hausdorff.Hausdorff-class.html#_datum\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.named._Named.toRepr\tpygeodesy.named._Named-class.html#toRepr\npygeodesy.hausdorff.Hausdorff._seed\tpygeodesy.hausdorff.Hausdorff-class.html#_seed\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.hausdorff.Hausdorff._datum_setter\tpygeodesy.hausdorff.Hausdorff-class.html#_datum_setter\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.hausdorff.HausdorffDegrees.directed\tpygeodesy.hausdorff.HausdorffDegrees-class.html#directed\npygeodesy.hausdorff.HausdorffDegrees.distance\tpygeodesy.hausdorff.HausdorffDegrees-class.html#distance\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.hausdorff.Hausdorff.kwds\tpygeodesy.hausdorff.Hausdorff-class.html#kwds\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.hausdorff.Hausdorff.adjust\tpygeodesy.hausdorff.Hausdorff-class.html#adjust\npygeodesy.hausdorff.Hausdorff._points2\tpygeodesy.hausdorff.Hausdorff-class.html#_points2\npygeodesy.named._Named.__repr__\tpygeodesy.named._Named-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.hausdorff.Hausdorff._hausdorff_\tpygeodesy.hausdorff.Hausdorff-class.html#_hausdorff_\npygeodesy.hausdorff.HausdorffDistanceTo\tpygeodesy.hausdorff.HausdorffDistanceTo-class.html\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.hausdorff.Hausdorff.point\tpygeodesy.hausdorff.Hausdorff-class.html#point\npygeodesy.named._Named.__str__\tpygeodesy.named._Named-class.html#__str__\npygeodesy.hausdorff.Hausdorff.datum\tpygeodesy.hausdorff.Hausdorff-class.html#datum\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.hausdorff.Hausdorff.seed\tpygeodesy.hausdorff.Hausdorff-class.html#seed\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.hausdorff.Hausdorff.wrap\tpygeodesy.hausdorff.Hausdorff-class.html#wrap\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.hausdorff.HausdorffDistanceTo.__init__\tpygeodesy.hausdorff.HausdorffDistanceTo-class.html#__init__\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.hausdorff.Hausdorff._kwds\tpygeodesy.hausdorff.Hausdorff-class.html#_kwds\npygeodesy.hausdorff.HausdorffDistanceTo._units\tpygeodesy.hausdorff.HausdorffDistanceTo-class.html#_units\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.hausdorff.HausdorffDistanceTo.symmetric\tpygeodesy.hausdorff.HausdorffDistanceTo-class.html#symmetric\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.hausdorff.Hausdorff.units\tpygeodesy.hausdorff.Hausdorff-class.html#units\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.hausdorff.Hausdorff._func\tpygeodesy.hausdorff.Hausdorff-class.html#_func\npygeodesy.hausdorff.Hausdorff._model\tpygeodesy.hausdorff.Hausdorff-class.html#_model\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named.toStr\tpygeodesy.named._Named-class.html#toStr\npygeodesy.hausdorff.Hausdorff._datum\tpygeodesy.hausdorff.Hausdorff-class.html#_datum\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.named._Named.toRepr\tpygeodesy.named._Named-class.html#toRepr\npygeodesy.hausdorff.Hausdorff._seed\tpygeodesy.hausdorff.Hausdorff-class.html#_seed\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.hausdorff.Hausdorff._datum_setter\tpygeodesy.hausdorff.Hausdorff-class.html#_datum_setter\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.hausdorff.HausdorffDistanceTo.directed\tpygeodesy.hausdorff.HausdorffDistanceTo-class.html#directed\npygeodesy.hausdorff.HausdorffDistanceTo.distance\tpygeodesy.hausdorff.HausdorffDistanceTo-class.html#distance\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.hausdorff.Hausdorff.kwds\tpygeodesy.hausdorff.Hausdorff-class.html#kwds\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.hausdorff.Hausdorff.adjust\tpygeodesy.hausdorff.Hausdorff-class.html#adjust\npygeodesy.hausdorff.HausdorffDistanceTo._points2\tpygeodesy.hausdorff.HausdorffDistanceTo-class.html#_points2\npygeodesy.named._Named.__repr__\tpygeodesy.named._Named-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.hausdorff.Hausdorff._hausdorff_\tpygeodesy.hausdorff.Hausdorff-class.html#_hausdorff_\npygeodesy.hausdorff.HausdorffEquirectangular\tpygeodesy.hausdorff.HausdorffEquirectangular-class.html\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.hausdorff.Hausdorff.point\tpygeodesy.hausdorff.Hausdorff-class.html#point\npygeodesy.named._Named.__str__\tpygeodesy.named._Named-class.html#__str__\npygeodesy.hausdorff.Hausdorff.datum\tpygeodesy.hausdorff.Hausdorff-class.html#datum\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.hausdorff.Hausdorff.seed\tpygeodesy.hausdorff.Hausdorff-class.html#seed\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.hausdorff.Hausdorff.wrap\tpygeodesy.hausdorff.Hausdorff-class.html#wrap\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.hausdorff.HausdorffEquirectangular.__init__\tpygeodesy.hausdorff.HausdorffEquirectangular-class.html#__init__\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.hausdorff.Hausdorff._kwds\tpygeodesy.hausdorff.Hausdorff-class.html#_kwds\npygeodesy.hausdorff.HausdorffEquirectangular._units\tpygeodesy.hausdorff.HausdorffEquirectangular-class.html#_units\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.hausdorff.HausdorffEquirectangular.symmetric\tpygeodesy.hausdorff.HausdorffEquirectangular-class.html#symmetric\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.hausdorff.Hausdorff.units\tpygeodesy.hausdorff.Hausdorff-class.html#units\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.hausdorff.Hausdorff._func\tpygeodesy.hausdorff.Hausdorff-class.html#_func\npygeodesy.hausdorff.Hausdorff._model\tpygeodesy.hausdorff.Hausdorff-class.html#_model\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named.toStr\tpygeodesy.named._Named-class.html#toStr\npygeodesy.hausdorff.Hausdorff._datum\tpygeodesy.hausdorff.Hausdorff-class.html#_datum\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.named._Named.toRepr\tpygeodesy.named._Named-class.html#toRepr\npygeodesy.hausdorff.Hausdorff._seed\tpygeodesy.hausdorff.Hausdorff-class.html#_seed\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.hausdorff.Hausdorff._datum_setter\tpygeodesy.hausdorff.Hausdorff-class.html#_datum_setter\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.hausdorff.HausdorffEquirectangular.directed\tpygeodesy.hausdorff.HausdorffEquirectangular-class.html#directed\npygeodesy.hausdorff.Hausdorff.distance\tpygeodesy.hausdorff.Hausdorff-class.html#distance\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.hausdorff.Hausdorff.kwds\tpygeodesy.hausdorff.Hausdorff-class.html#kwds\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.hausdorff.Hausdorff.adjust\tpygeodesy.hausdorff.Hausdorff-class.html#adjust\npygeodesy.hausdorff.Hausdorff._points2\tpygeodesy.hausdorff.Hausdorff-class.html#_points2\npygeodesy.named._Named.__repr__\tpygeodesy.named._Named-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.hausdorff.Hausdorff._hausdorff_\tpygeodesy.hausdorff.Hausdorff-class.html#_hausdorff_\npygeodesy.hausdorff.HausdorffError\tpygeodesy.hausdorff.HausdorffError-class.html\npygeodesy.hausdorff.HausdorffEuclidean\tpygeodesy.hausdorff.HausdorffEuclidean-class.html\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.hausdorff.Hausdorff.point\tpygeodesy.hausdorff.Hausdorff-class.html#point\npygeodesy.named._Named.__str__\tpygeodesy.named._Named-class.html#__str__\npygeodesy.hausdorff.Hausdorff.datum\tpygeodesy.hausdorff.Hausdorff-class.html#datum\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.hausdorff.Hausdorff.seed\tpygeodesy.hausdorff.Hausdorff-class.html#seed\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.hausdorff.Hausdorff.wrap\tpygeodesy.hausdorff.Hausdorff-class.html#wrap\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.hausdorff.HausdorffEuclidean.__init__\tpygeodesy.hausdorff.HausdorffEuclidean-class.html#__init__\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.hausdorff.Hausdorff._kwds\tpygeodesy.hausdorff.Hausdorff-class.html#_kwds\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.hausdorff.HausdorffEuclidean.symmetric\tpygeodesy.hausdorff.HausdorffEuclidean-class.html#symmetric\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.hausdorff.Hausdorff.units\tpygeodesy.hausdorff.Hausdorff-class.html#units\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.hausdorff.Hausdorff._func\tpygeodesy.hausdorff.Hausdorff-class.html#_func\npygeodesy.hausdorff.Hausdorff._model\tpygeodesy.hausdorff.Hausdorff-class.html#_model\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named.toStr\tpygeodesy.named._Named-class.html#toStr\npygeodesy.hausdorff.Hausdorff._datum\tpygeodesy.hausdorff.Hausdorff-class.html#_datum\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.named._Named.toRepr\tpygeodesy.named._Named-class.html#toRepr\npygeodesy.hausdorff.Hausdorff._seed\tpygeodesy.hausdorff.Hausdorff-class.html#_seed\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.hausdorff.Hausdorff._datum_setter\tpygeodesy.hausdorff.Hausdorff-class.html#_datum_setter\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.hausdorff.HausdorffEuclidean.directed\tpygeodesy.hausdorff.HausdorffEuclidean-class.html#directed\npygeodesy.hausdorff.Hausdorff.distance\tpygeodesy.hausdorff.Hausdorff-class.html#distance\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.hausdorff.Hausdorff.kwds\tpygeodesy.hausdorff.Hausdorff-class.html#kwds\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.hausdorff.Hausdorff.adjust\tpygeodesy.hausdorff.Hausdorff-class.html#adjust\npygeodesy.hausdorff.Hausdorff._points2\tpygeodesy.hausdorff.Hausdorff-class.html#_points2\npygeodesy.named._Named.__repr__\tpygeodesy.named._Named-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.hausdorff.Hausdorff._hausdorff_\tpygeodesy.hausdorff.Hausdorff-class.html#_hausdorff_\npygeodesy.hausdorff.HausdorffExact\tpygeodesy.hausdorff.HausdorffExact-class.html\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.hausdorff.Hausdorff.point\tpygeodesy.hausdorff.Hausdorff-class.html#point\npygeodesy.named._Named.__str__\tpygeodesy.named._Named-class.html#__str__\npygeodesy.hausdorff.Hausdorff.datum\tpygeodesy.hausdorff.Hausdorff-class.html#datum\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.hausdorff.Hausdorff.seed\tpygeodesy.hausdorff.Hausdorff-class.html#seed\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.hausdorff.Hausdorff.wrap\tpygeodesy.hausdorff.Hausdorff-class.html#wrap\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.hausdorff.HausdorffExact.__init__\tpygeodesy.hausdorff.HausdorffExact-class.html#__init__\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.hausdorff.Hausdorff._kwds\tpygeodesy.hausdorff.Hausdorff-class.html#_kwds\npygeodesy.hausdorff.HausdorffExact._units\tpygeodesy.hausdorff.HausdorffExact-class.html#_units\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.hausdorff.HausdorffExact.symmetric\tpygeodesy.hausdorff.HausdorffExact-class.html#symmetric\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.hausdorff.Hausdorff.units\tpygeodesy.hausdorff.Hausdorff-class.html#units\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.hausdorff.Hausdorff._func\tpygeodesy.hausdorff.Hausdorff-class.html#_func\npygeodesy.hausdorff.Hausdorff._model\tpygeodesy.hausdorff.Hausdorff-class.html#_model\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named.toStr\tpygeodesy.named._Named-class.html#toStr\npygeodesy.hausdorff.Hausdorff._datum\tpygeodesy.hausdorff.Hausdorff-class.html#_datum\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.named._Named.toRepr\tpygeodesy.named._Named-class.html#toRepr\npygeodesy.hausdorff.Hausdorff._seed\tpygeodesy.hausdorff.Hausdorff-class.html#_seed\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.hausdorff.Hausdorff._datum_setter\tpygeodesy.hausdorff.Hausdorff-class.html#_datum_setter\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.hausdorff.HausdorffExact.directed\tpygeodesy.hausdorff.HausdorffExact-class.html#directed\npygeodesy.hausdorff.Hausdorff.distance\tpygeodesy.hausdorff.Hausdorff-class.html#distance\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.hausdorff.Hausdorff.kwds\tpygeodesy.hausdorff.Hausdorff-class.html#kwds\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.hausdorff.Hausdorff.adjust\tpygeodesy.hausdorff.Hausdorff-class.html#adjust\npygeodesy.hausdorff.Hausdorff._points2\tpygeodesy.hausdorff.Hausdorff-class.html#_points2\npygeodesy.named._Named.__repr__\tpygeodesy.named._Named-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.hausdorff.Hausdorff._hausdorff_\tpygeodesy.hausdorff.Hausdorff-class.html#_hausdorff_\npygeodesy.hausdorff.HausdorffFlatLocal\tpygeodesy.hausdorff.HausdorffFlatLocal-class.html\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.hausdorff.Hausdorff.point\tpygeodesy.hausdorff.Hausdorff-class.html#point\npygeodesy.named._Named.__str__\tpygeodesy.named._Named-class.html#__str__\npygeodesy.hausdorff.Hausdorff.datum\tpygeodesy.hausdorff.Hausdorff-class.html#datum\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.hausdorff.Hausdorff.seed\tpygeodesy.hausdorff.Hausdorff-class.html#seed\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.hausdorff.Hausdorff.wrap\tpygeodesy.hausdorff.Hausdorff-class.html#wrap\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.hausdorff.HausdorffFlatLocal.__init__\tpygeodesy.hausdorff.HausdorffFlatLocal-class.html#__init__\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.hausdorff.Hausdorff._kwds\tpygeodesy.hausdorff.Hausdorff-class.html#_kwds\npygeodesy.hausdorff.HausdorffFlatLocal._units\tpygeodesy.hausdorff.HausdorffFlatLocal-class.html#_units\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.hausdorff.HausdorffFlatLocal.symmetric\tpygeodesy.hausdorff.HausdorffFlatLocal-class.html#symmetric\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.hausdorff.Hausdorff.units\tpygeodesy.hausdorff.Hausdorff-class.html#units\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.hausdorff.Hausdorff._func\tpygeodesy.hausdorff.Hausdorff-class.html#_func\npygeodesy.hausdorff.Hausdorff._model\tpygeodesy.hausdorff.Hausdorff-class.html#_model\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named.toStr\tpygeodesy.named._Named-class.html#toStr\npygeodesy.hausdorff.Hausdorff._datum\tpygeodesy.hausdorff.Hausdorff-class.html#_datum\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.named._Named.toRepr\tpygeodesy.named._Named-class.html#toRepr\npygeodesy.hausdorff.Hausdorff._seed\tpygeodesy.hausdorff.Hausdorff-class.html#_seed\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.hausdorff.Hausdorff._datum_setter\tpygeodesy.hausdorff.Hausdorff-class.html#_datum_setter\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.hausdorff.HausdorffFlatLocal.directed\tpygeodesy.hausdorff.HausdorffFlatLocal-class.html#directed\npygeodesy.hausdorff.Hausdorff.distance\tpygeodesy.hausdorff.Hausdorff-class.html#distance\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.hausdorff.Hausdorff.kwds\tpygeodesy.hausdorff.Hausdorff-class.html#kwds\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.hausdorff.Hausdorff.adjust\tpygeodesy.hausdorff.Hausdorff-class.html#adjust\npygeodesy.hausdorff.Hausdorff._points2\tpygeodesy.hausdorff.Hausdorff-class.html#_points2\npygeodesy.named._Named.__repr__\tpygeodesy.named._Named-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.hausdorff.Hausdorff._hausdorff_\tpygeodesy.hausdorff.Hausdorff-class.html#_hausdorff_\npygeodesy.hausdorff.HausdorffFlatPolar\tpygeodesy.hausdorff.HausdorffFlatPolar-class.html\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.hausdorff.Hausdorff.point\tpygeodesy.hausdorff.Hausdorff-class.html#point\npygeodesy.named._Named.__str__\tpygeodesy.named._Named-class.html#__str__\npygeodesy.hausdorff.Hausdorff.datum\tpygeodesy.hausdorff.Hausdorff-class.html#datum\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.hausdorff.Hausdorff.seed\tpygeodesy.hausdorff.Hausdorff-class.html#seed\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.hausdorff.Hausdorff.wrap\tpygeodesy.hausdorff.Hausdorff-class.html#wrap\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.hausdorff.HausdorffFlatPolar.__init__\tpygeodesy.hausdorff.HausdorffFlatPolar-class.html#__init__\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.hausdorff.Hausdorff._kwds\tpygeodesy.hausdorff.Hausdorff-class.html#_kwds\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.hausdorff.HausdorffFlatPolar.symmetric\tpygeodesy.hausdorff.HausdorffFlatPolar-class.html#symmetric\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.hausdorff.Hausdorff.units\tpygeodesy.hausdorff.Hausdorff-class.html#units\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.hausdorff.Hausdorff._func\tpygeodesy.hausdorff.Hausdorff-class.html#_func\npygeodesy.hausdorff.Hausdorff._model\tpygeodesy.hausdorff.Hausdorff-class.html#_model\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named.toStr\tpygeodesy.named._Named-class.html#toStr\npygeodesy.hausdorff.Hausdorff._datum\tpygeodesy.hausdorff.Hausdorff-class.html#_datum\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.named._Named.toRepr\tpygeodesy.named._Named-class.html#toRepr\npygeodesy.hausdorff.Hausdorff._seed\tpygeodesy.hausdorff.Hausdorff-class.html#_seed\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.hausdorff.Hausdorff._datum_setter\tpygeodesy.hausdorff.Hausdorff-class.html#_datum_setter\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.hausdorff.HausdorffFlatPolar.directed\tpygeodesy.hausdorff.HausdorffFlatPolar-class.html#directed\npygeodesy.hausdorff.Hausdorff.distance\tpygeodesy.hausdorff.Hausdorff-class.html#distance\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.hausdorff.Hausdorff.kwds\tpygeodesy.hausdorff.Hausdorff-class.html#kwds\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.hausdorff.Hausdorff.adjust\tpygeodesy.hausdorff.Hausdorff-class.html#adjust\npygeodesy.hausdorff.Hausdorff._points2\tpygeodesy.hausdorff.Hausdorff-class.html#_points2\npygeodesy.named._Named.__repr__\tpygeodesy.named._Named-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.hausdorff.HausdorffFlatPolar._wrap\tpygeodesy.hausdorff.HausdorffFlatPolar-class.html#_wrap\npygeodesy.hausdorff.Hausdorff._hausdorff_\tpygeodesy.hausdorff.Hausdorff-class.html#_hausdorff_\npygeodesy.hausdorff.HausdorffHaversine\tpygeodesy.hausdorff.HausdorffHaversine-class.html\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.hausdorff.Hausdorff.point\tpygeodesy.hausdorff.Hausdorff-class.html#point\npygeodesy.named._Named.__str__\tpygeodesy.named._Named-class.html#__str__\npygeodesy.hausdorff.Hausdorff.datum\tpygeodesy.hausdorff.Hausdorff-class.html#datum\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.hausdorff.Hausdorff.seed\tpygeodesy.hausdorff.Hausdorff-class.html#seed\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.hausdorff.Hausdorff.wrap\tpygeodesy.hausdorff.Hausdorff-class.html#wrap\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.hausdorff.HausdorffHaversine.__init__\tpygeodesy.hausdorff.HausdorffHaversine-class.html#__init__\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.hausdorff.Hausdorff._kwds\tpygeodesy.hausdorff.Hausdorff-class.html#_kwds\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.hausdorff.HausdorffHaversine.symmetric\tpygeodesy.hausdorff.HausdorffHaversine-class.html#symmetric\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.hausdorff.Hausdorff.units\tpygeodesy.hausdorff.Hausdorff-class.html#units\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.hausdorff.Hausdorff._func\tpygeodesy.hausdorff.Hausdorff-class.html#_func\npygeodesy.hausdorff.Hausdorff._model\tpygeodesy.hausdorff.Hausdorff-class.html#_model\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named.toStr\tpygeodesy.named._Named-class.html#toStr\npygeodesy.hausdorff.Hausdorff._datum\tpygeodesy.hausdorff.Hausdorff-class.html#_datum\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.named._Named.toRepr\tpygeodesy.named._Named-class.html#toRepr\npygeodesy.hausdorff.Hausdorff._seed\tpygeodesy.hausdorff.Hausdorff-class.html#_seed\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.hausdorff.Hausdorff._datum_setter\tpygeodesy.hausdorff.Hausdorff-class.html#_datum_setter\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.hausdorff.HausdorffHaversine.directed\tpygeodesy.hausdorff.HausdorffHaversine-class.html#directed\npygeodesy.hausdorff.Hausdorff.distance\tpygeodesy.hausdorff.Hausdorff-class.html#distance\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.hausdorff.Hausdorff.kwds\tpygeodesy.hausdorff.Hausdorff-class.html#kwds\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.hausdorff.Hausdorff.adjust\tpygeodesy.hausdorff.Hausdorff-class.html#adjust\npygeodesy.hausdorff.Hausdorff._points2\tpygeodesy.hausdorff.Hausdorff-class.html#_points2\npygeodesy.named._Named.__repr__\tpygeodesy.named._Named-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.hausdorff.HausdorffHaversine._wrap\tpygeodesy.hausdorff.HausdorffHaversine-class.html#_wrap\npygeodesy.hausdorff.Hausdorff._hausdorff_\tpygeodesy.hausdorff.Hausdorff-class.html#_hausdorff_\npygeodesy.hausdorff.HausdorffHubeny\tpygeodesy.hausdorff.HausdorffHubeny-class.html\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.hausdorff.Hausdorff.point\tpygeodesy.hausdorff.Hausdorff-class.html#point\npygeodesy.named._Named.__str__\tpygeodesy.named._Named-class.html#__str__\npygeodesy.hausdorff.Hausdorff.datum\tpygeodesy.hausdorff.Hausdorff-class.html#datum\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.hausdorff.Hausdorff.seed\tpygeodesy.hausdorff.Hausdorff-class.html#seed\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.hausdorff.Hausdorff.wrap\tpygeodesy.hausdorff.Hausdorff-class.html#wrap\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.hausdorff.HausdorffHubeny.__init__\tpygeodesy.hausdorff.HausdorffHubeny-class.html#__init__\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.hausdorff.Hausdorff._kwds\tpygeodesy.hausdorff.Hausdorff-class.html#_kwds\npygeodesy.hausdorff.HausdorffFlatLocal._units\tpygeodesy.hausdorff.HausdorffFlatLocal-class.html#_units\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.hausdorff.HausdorffHubeny.symmetric\tpygeodesy.hausdorff.HausdorffHubeny-class.html#symmetric\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.hausdorff.Hausdorff.units\tpygeodesy.hausdorff.Hausdorff-class.html#units\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.hausdorff.HausdorffHubeny.__doc__\tpygeodesy.hausdorff.HausdorffHubeny-class.html#__doc__\npygeodesy.hausdorff.Hausdorff._func\tpygeodesy.hausdorff.Hausdorff-class.html#_func\npygeodesy.hausdorff.Hausdorff._model\tpygeodesy.hausdorff.Hausdorff-class.html#_model\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named.toStr\tpygeodesy.named._Named-class.html#toStr\npygeodesy.hausdorff.Hausdorff._datum\tpygeodesy.hausdorff.Hausdorff-class.html#_datum\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.named._Named.toRepr\tpygeodesy.named._Named-class.html#toRepr\npygeodesy.hausdorff.Hausdorff._seed\tpygeodesy.hausdorff.Hausdorff-class.html#_seed\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.hausdorff.Hausdorff._datum_setter\tpygeodesy.hausdorff.Hausdorff-class.html#_datum_setter\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.hausdorff.HausdorffHubeny.directed\tpygeodesy.hausdorff.HausdorffHubeny-class.html#directed\npygeodesy.hausdorff.HausdorffHubeny.distance\tpygeodesy.hausdorff.HausdorffHubeny-class.html#distance\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.hausdorff.Hausdorff.kwds\tpygeodesy.hausdorff.Hausdorff-class.html#kwds\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.hausdorff.Hausdorff.adjust\tpygeodesy.hausdorff.Hausdorff-class.html#adjust\npygeodesy.hausdorff.Hausdorff._points2\tpygeodesy.hausdorff.Hausdorff-class.html#_points2\npygeodesy.named._Named.__repr__\tpygeodesy.named._Named-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.hausdorff.Hausdorff._hausdorff_\tpygeodesy.hausdorff.Hausdorff-class.html#_hausdorff_\npygeodesy.hausdorff.HausdorffKarney\tpygeodesy.hausdorff.HausdorffKarney-class.html\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.hausdorff.Hausdorff.point\tpygeodesy.hausdorff.Hausdorff-class.html#point\npygeodesy.named._Named.__str__\tpygeodesy.named._Named-class.html#__str__\npygeodesy.hausdorff.Hausdorff.datum\tpygeodesy.hausdorff.Hausdorff-class.html#datum\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.hausdorff.Hausdorff.seed\tpygeodesy.hausdorff.Hausdorff-class.html#seed\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.hausdorff.Hausdorff.wrap\tpygeodesy.hausdorff.Hausdorff-class.html#wrap\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.hausdorff.HausdorffKarney.__init__\tpygeodesy.hausdorff.HausdorffKarney-class.html#__init__\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.hausdorff.Hausdorff._kwds\tpygeodesy.hausdorff.Hausdorff-class.html#_kwds\npygeodesy.hausdorff.HausdorffKarney._units\tpygeodesy.hausdorff.HausdorffKarney-class.html#_units\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.hausdorff.Hausdorff.symmetric\tpygeodesy.hausdorff.Hausdorff-class.html#symmetric\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.hausdorff.Hausdorff.units\tpygeodesy.hausdorff.Hausdorff-class.html#units\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.hausdorff.Hausdorff._func\tpygeodesy.hausdorff.Hausdorff-class.html#_func\npygeodesy.hausdorff.Hausdorff._model\tpygeodesy.hausdorff.Hausdorff-class.html#_model\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named.toStr\tpygeodesy.named._Named-class.html#toStr\npygeodesy.hausdorff.Hausdorff._datum\tpygeodesy.hausdorff.Hausdorff-class.html#_datum\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.named._Named.toRepr\tpygeodesy.named._Named-class.html#toRepr\npygeodesy.hausdorff.Hausdorff._seed\tpygeodesy.hausdorff.Hausdorff-class.html#_seed\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.hausdorff.Hausdorff._datum_setter\tpygeodesy.hausdorff.Hausdorff-class.html#_datum_setter\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.hausdorff.Hausdorff.directed\tpygeodesy.hausdorff.Hausdorff-class.html#directed\npygeodesy.hausdorff.Hausdorff.distance\tpygeodesy.hausdorff.Hausdorff-class.html#distance\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.hausdorff.Hausdorff.kwds\tpygeodesy.hausdorff.Hausdorff-class.html#kwds\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.hausdorff.Hausdorff.adjust\tpygeodesy.hausdorff.Hausdorff-class.html#adjust\npygeodesy.hausdorff.Hausdorff._points2\tpygeodesy.hausdorff.Hausdorff-class.html#_points2\npygeodesy.named._Named.__repr__\tpygeodesy.named._Named-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.hausdorff.Hausdorff._hausdorff_\tpygeodesy.hausdorff.Hausdorff-class.html#_hausdorff_\npygeodesy.hausdorff.HausdorffRadians\tpygeodesy.hausdorff.HausdorffRadians-class.html\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.hausdorff.HausdorffRadians.point\tpygeodesy.hausdorff.HausdorffRadians-class.html#point\npygeodesy.named._Named.__str__\tpygeodesy.named._Named-class.html#__str__\npygeodesy.hausdorff.Hausdorff.datum\tpygeodesy.hausdorff.Hausdorff-class.html#datum\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.hausdorff.Hausdorff.seed\tpygeodesy.hausdorff.Hausdorff-class.html#seed\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.hausdorff.Hausdorff.wrap\tpygeodesy.hausdorff.Hausdorff-class.html#wrap\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.hausdorff.HausdorffRadians.__init__\tpygeodesy.hausdorff.HausdorffRadians-class.html#__init__\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.hausdorff.Hausdorff._kwds\tpygeodesy.hausdorff.Hausdorff-class.html#_kwds\npygeodesy.hausdorff.HausdorffRadians._units\tpygeodesy.hausdorff.HausdorffRadians-class.html#_units\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.hausdorff.HausdorffRadians.symmetric\tpygeodesy.hausdorff.HausdorffRadians-class.html#symmetric\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.hausdorff.Hausdorff.units\tpygeodesy.hausdorff.Hausdorff-class.html#units\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.hausdorff.Hausdorff._func\tpygeodesy.hausdorff.Hausdorff-class.html#_func\npygeodesy.hausdorff.Hausdorff._model\tpygeodesy.hausdorff.Hausdorff-class.html#_model\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named.toStr\tpygeodesy.named._Named-class.html#toStr\npygeodesy.hausdorff.Hausdorff._datum\tpygeodesy.hausdorff.Hausdorff-class.html#_datum\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.named._Named.toRepr\tpygeodesy.named._Named-class.html#toRepr\npygeodesy.hausdorff.Hausdorff._seed\tpygeodesy.hausdorff.Hausdorff-class.html#_seed\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.hausdorff.Hausdorff._datum_setter\tpygeodesy.hausdorff.Hausdorff-class.html#_datum_setter\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.hausdorff.HausdorffRadians.directed\tpygeodesy.hausdorff.HausdorffRadians-class.html#directed\npygeodesy.hausdorff.HausdorffRadians.distance\tpygeodesy.hausdorff.HausdorffRadians-class.html#distance\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.hausdorff.Hausdorff.kwds\tpygeodesy.hausdorff.Hausdorff-class.html#kwds\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.hausdorff.Hausdorff.adjust\tpygeodesy.hausdorff.Hausdorff-class.html#adjust\npygeodesy.hausdorff.Hausdorff._points2\tpygeodesy.hausdorff.Hausdorff-class.html#_points2\npygeodesy.named._Named.__repr__\tpygeodesy.named._Named-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.hausdorff.Hausdorff._hausdorff_\tpygeodesy.hausdorff.Hausdorff-class.html#_hausdorff_\npygeodesy.hausdorff.HausdorffThomas\tpygeodesy.hausdorff.HausdorffThomas-class.html\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.hausdorff.Hausdorff.point\tpygeodesy.hausdorff.Hausdorff-class.html#point\npygeodesy.named._Named.__str__\tpygeodesy.named._Named-class.html#__str__\npygeodesy.hausdorff.Hausdorff.datum\tpygeodesy.hausdorff.Hausdorff-class.html#datum\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.hausdorff.Hausdorff.seed\tpygeodesy.hausdorff.Hausdorff-class.html#seed\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.hausdorff.Hausdorff.wrap\tpygeodesy.hausdorff.Hausdorff-class.html#wrap\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.hausdorff.HausdorffThomas.__init__\tpygeodesy.hausdorff.HausdorffThomas-class.html#__init__\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.hausdorff.Hausdorff._kwds\tpygeodesy.hausdorff.Hausdorff-class.html#_kwds\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.hausdorff.HausdorffThomas.symmetric\tpygeodesy.hausdorff.HausdorffThomas-class.html#symmetric\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.hausdorff.Hausdorff.units\tpygeodesy.hausdorff.Hausdorff-class.html#units\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.hausdorff.Hausdorff._func\tpygeodesy.hausdorff.Hausdorff-class.html#_func\npygeodesy.hausdorff.Hausdorff._model\tpygeodesy.hausdorff.Hausdorff-class.html#_model\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named.toStr\tpygeodesy.named._Named-class.html#toStr\npygeodesy.hausdorff.Hausdorff._datum\tpygeodesy.hausdorff.Hausdorff-class.html#_datum\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.named._Named.toRepr\tpygeodesy.named._Named-class.html#toRepr\npygeodesy.hausdorff.Hausdorff._seed\tpygeodesy.hausdorff.Hausdorff-class.html#_seed\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.hausdorff.Hausdorff._datum_setter\tpygeodesy.hausdorff.Hausdorff-class.html#_datum_setter\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.hausdorff.HausdorffThomas.directed\tpygeodesy.hausdorff.HausdorffThomas-class.html#directed\npygeodesy.hausdorff.Hausdorff.distance\tpygeodesy.hausdorff.Hausdorff-class.html#distance\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.hausdorff.Hausdorff.kwds\tpygeodesy.hausdorff.Hausdorff-class.html#kwds\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.hausdorff.Hausdorff.adjust\tpygeodesy.hausdorff.Hausdorff-class.html#adjust\npygeodesy.hausdorff.Hausdorff._points2\tpygeodesy.hausdorff.Hausdorff-class.html#_points2\npygeodesy.named._Named.__repr__\tpygeodesy.named._Named-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.hausdorff.Hausdorff._hausdorff_\tpygeodesy.hausdorff.Hausdorff-class.html#_hausdorff_\npygeodesy.hausdorff.HausdorffVincentys\tpygeodesy.hausdorff.HausdorffVincentys-class.html\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.hausdorff.Hausdorff.point\tpygeodesy.hausdorff.Hausdorff-class.html#point\npygeodesy.named._Named.__str__\tpygeodesy.named._Named-class.html#__str__\npygeodesy.hausdorff.Hausdorff.datum\tpygeodesy.hausdorff.Hausdorff-class.html#datum\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.hausdorff.Hausdorff.seed\tpygeodesy.hausdorff.Hausdorff-class.html#seed\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.hausdorff.Hausdorff.wrap\tpygeodesy.hausdorff.Hausdorff-class.html#wrap\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.hausdorff.HausdorffVincentys.__init__\tpygeodesy.hausdorff.HausdorffVincentys-class.html#__init__\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.hausdorff.Hausdorff._kwds\tpygeodesy.hausdorff.Hausdorff-class.html#_kwds\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.hausdorff.HausdorffVincentys.symmetric\tpygeodesy.hausdorff.HausdorffVincentys-class.html#symmetric\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.hausdorff.Hausdorff.units\tpygeodesy.hausdorff.Hausdorff-class.html#units\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.hausdorff.Hausdorff._func\tpygeodesy.hausdorff.Hausdorff-class.html#_func\npygeodesy.hausdorff.Hausdorff._model\tpygeodesy.hausdorff.Hausdorff-class.html#_model\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named.toStr\tpygeodesy.named._Named-class.html#toStr\npygeodesy.hausdorff.Hausdorff._datum\tpygeodesy.hausdorff.Hausdorff-class.html#_datum\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.named._Named.toRepr\tpygeodesy.named._Named-class.html#toRepr\npygeodesy.hausdorff.Hausdorff._seed\tpygeodesy.hausdorff.Hausdorff-class.html#_seed\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.hausdorff.Hausdorff._datum_setter\tpygeodesy.hausdorff.Hausdorff-class.html#_datum_setter\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.hausdorff.HausdorffVincentys.directed\tpygeodesy.hausdorff.HausdorffVincentys-class.html#directed\npygeodesy.hausdorff.Hausdorff.distance\tpygeodesy.hausdorff.Hausdorff-class.html#distance\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.hausdorff.Hausdorff.kwds\tpygeodesy.hausdorff.Hausdorff-class.html#kwds\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.hausdorff.Hausdorff.adjust\tpygeodesy.hausdorff.Hausdorff-class.html#adjust\npygeodesy.hausdorff.Hausdorff._points2\tpygeodesy.hausdorff.Hausdorff-class.html#_points2\npygeodesy.named._Named.__repr__\tpygeodesy.named._Named-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.hausdorff.HausdorffVincentys._wrap\tpygeodesy.hausdorff.HausdorffVincentys-class.html#_wrap\npygeodesy.hausdorff.Hausdorff._hausdorff_\tpygeodesy.hausdorff.Hausdorff-class.html#_hausdorff_\npygeodesy.heights.HeightCubic\tpygeodesy.heights.HeightCubic-class.html\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.heights._HeightNamed._wrap\tpygeodesy.heights._HeightNamed-class.html#_wrap\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.heights._HeightNamed.height_\tpygeodesy.heights._HeightNamed-class.html#height_\npygeodesy.heights._HeightBase._evalls\tpygeodesy.heights._HeightBase-class.html#_evalls\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.__str__\tpygeodesy.named._Named-class.html#__str__\npygeodesy.heights._HeightNamed.datum\tpygeodesy.heights._HeightNamed-class.html#datum\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.heights._HeightBase.height\tpygeodesy.heights._HeightBase-class.html#height\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.heights._HeightBase._xyhs3\tpygeodesy.heights._HeightBase-class.html#_xyhs3\npygeodesy.heights._HeightBase._kxky\tpygeodesy.heights._HeightBase-class.html#_kxky\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.heights._HeightNamed.wrap\tpygeodesy.heights._HeightNamed-class.html#wrap\npygeodesy.heights._HeightBase._ev2d\tpygeodesy.heights._HeightBase-class.html#_ev2d\npygeodesy.heights._HeightNamed._as_lls\tpygeodesy.heights._HeightNamed-class.html#_as_lls\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.heights.HeightCubic.__init__\tpygeodesy.heights.HeightCubic-class.html#__init__\npygeodesy.heights._HeightBase.scipy_interpolate\tpygeodesy.heights._HeightBase-class.html#scipy_interpolate\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.heights.HeightCubic._kmin\tpygeodesy.heights.HeightCubic-class.html#_kmin\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.heights._HeightNamed._np_sp\tpygeodesy.heights._HeightNamed-class.html#_np_sp\npygeodesy.heights._HeightNamed.kmin\tpygeodesy.heights._HeightNamed-class.html#kmin\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.heights.HeightCubic.__call__\tpygeodesy.heights.HeightCubic-class.html#__call__\npygeodesy.heights._HeightBase._k2interp2d\tpygeodesy.heights._HeightBase-class.html#_k2interp2d\npygeodesy.heights._HeightBase.numpy\tpygeodesy.heights._HeightBase-class.html#numpy\npygeodesy.heights._HeightBase._as_xyllis4\tpygeodesy.heights._HeightBase-class.html#_as_xyllis4\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.toRepr\tpygeodesy.named._Named-class.html#toRepr\npygeodesy.heights._HeightNamed._Error\tpygeodesy.heights.HeightError-class.html\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._Named.toStr\tpygeodesy.named._Named-class.html#toStr\npygeodesy.heights._HeightNamed._datum\tpygeodesy.heights._HeightNamed-class.html#_datum\npygeodesy.heights.HeightCubic._kind\tpygeodesy.heights.HeightCubic-class.html#_kind\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.heights._HeightBase.scipy\tpygeodesy.heights._HeightBase-class.html#scipy\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.heights._HeightBase._scipy_version\tpygeodesy.heights._HeightBase-class.html#_scipy_version\npygeodesy.heights.HeightCubic._ev\tpygeodesy.heights.HeightCubic-class.html#_ev\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.heights._HeightBase._ev_name\tpygeodesy.heights._HeightBase-class.html#_ev_name\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.heights._HeightBase._np_sp2\tpygeodesy.heights._HeightBase-class.html#_np_sp2\npygeodesy.named._Named.__repr__\tpygeodesy.named._Named-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.heights._HeightNamed._LLiC\tpygeodesy.points.LatLon_-class.html\npygeodesy.heights._HeightBase._interp2d\tpygeodesy.heights._HeightBase-class.html#_interp2d\npygeodesy.heights.HeightError\tpygeodesy.heights.HeightError-class.html\npygeodesy.heights.HeightIDWcosineLaw\tpygeodesy.heights.HeightIDWcosineLaw-class.html\npygeodesy.heights._HeightIDW.knots\tpygeodesy.heights._HeightIDW-class.html#knots\npygeodesy.heights._HeightIDW._hIDW\tpygeodesy.heights._HeightIDW-class.html#_hIDW\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.heights._HeightNamed.height_\tpygeodesy.heights._HeightNamed-class.html#height_\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.heights._HeightIDW._knots\tpygeodesy.heights._HeightIDW-class.html#_knots\npygeodesy.heights._HeightIDW.datum\tpygeodesy.heights._HeightIDW-class.html#datum\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.heights.HeightIDWcosineLaw.height\tpygeodesy.heights.HeightIDWcosineLaw-class.html#height\npygeodesy.heights._HeightIDW.scaled\tpygeodesy.heights._HeightIDW-class.html#scaled\npygeodesy.heights._HeightIDW._heights\tpygeodesy.heights._HeightIDW-class.html#_heights\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.heights._HeightIDW.hypot\tpygeodesy.heights._HeightIDW-class.html#hypot\npygeodesy.heights._HeightIDW.radius\tpygeodesy.heights._HeightIDW-class.html#radius\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.heights._HeightIDW.wrap\tpygeodesy.heights._HeightIDW-class.html#wrap\npygeodesy.heights._HeightNamed._as_lls\tpygeodesy.heights._HeightNamed-class.html#_as_lls\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.heights.HeightIDWcosineLaw.__init__\tpygeodesy.heights.HeightIDWcosineLaw-class.html#__init__\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.heights._HeightIDW._kwds\tpygeodesy.heights._HeightIDW-class.html#_kwds\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.heights._HeightNamed._np_sp\tpygeodesy.heights._HeightNamed-class.html#_np_sp\npygeodesy.heights._HeightNamed.kmin\tpygeodesy.heights._HeightNamed-class.html#kmin\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.heights.HeightIDWcosineLaw.__call__\tpygeodesy.heights.HeightIDWcosineLaw-class.html#__call__\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.__str__\tpygeodesy.named._Named-class.html#__str__\npygeodesy.heights._HeightIDW._func\tpygeodesy.heights._HeightIDW-class.html#_func\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.heights._HeightIDW._distances\tpygeodesy.heights._HeightIDW-class.html#_distances\npygeodesy.heights._HeightNamed._Error\tpygeodesy.heights.HeightError-class.html\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named.toStr\tpygeodesy.named._Named-class.html#toStr\npygeodesy.heights._HeightNamed._datum\tpygeodesy.heights._HeightNamed-class.html#_datum\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.heights._HeightIDW._distancesTo\tpygeodesy.heights._HeightIDW-class.html#_distancesTo\npygeodesy.heights._HeightIDW._beta\tpygeodesy.heights._HeightIDW-class.html#_beta\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.heights._HeightIDW.beta\tpygeodesy.heights._HeightIDW-class.html#beta\npygeodesy.named._Named.toRepr\tpygeodesy.named._Named-class.html#toRepr\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.heights._HeightIDW._datum_setter\tpygeodesy.heights._HeightIDW-class.html#_datum_setter\npygeodesy.heights._HeightNamed._wrap\tpygeodesy.heights._HeightNamed-class.html#_wrap\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.heights._HeightIDW.kwds\tpygeodesy.heights._HeightIDW-class.html#kwds\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.heights._HeightNamed._kmin\tpygeodesy.heights._HeightNamed-class.html#_kmin\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.heights._HeightIDW.adjust\tpygeodesy.heights._HeightIDW-class.html#adjust\npygeodesy.heights._HeightIDW.limit\tpygeodesy.heights._HeightIDW-class.html#limit\npygeodesy.named._Named.__repr__\tpygeodesy.named._Named-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.heights._HeightNamed._LLiC\tpygeodesy.points.LatLon_-class.html\npygeodesy.heights.HeightIDWdistanceTo\tpygeodesy.heights.HeightIDWdistanceTo-class.html\npygeodesy.heights._HeightIDW.knots\tpygeodesy.heights._HeightIDW-class.html#knots\npygeodesy.heights._HeightIDW._hIDW\tpygeodesy.heights._HeightIDW-class.html#_hIDW\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.heights._HeightNamed.height_\tpygeodesy.heights._HeightNamed-class.html#height_\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.heights._HeightIDW._knots\tpygeodesy.heights._HeightIDW-class.html#_knots\npygeodesy.heights._HeightIDW.datum\tpygeodesy.heights._HeightIDW-class.html#datum\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.heights.HeightIDWdistanceTo.height\tpygeodesy.heights.HeightIDWdistanceTo-class.html#height\npygeodesy.heights._HeightIDW.scaled\tpygeodesy.heights._HeightIDW-class.html#scaled\npygeodesy.heights._HeightIDW._heights\tpygeodesy.heights._HeightIDW-class.html#_heights\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.heights._HeightIDW.hypot\tpygeodesy.heights._HeightIDW-class.html#hypot\npygeodesy.heights._HeightIDW.radius\tpygeodesy.heights._HeightIDW-class.html#radius\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.heights._HeightIDW.wrap\tpygeodesy.heights._HeightIDW-class.html#wrap\npygeodesy.heights._HeightNamed._as_lls\tpygeodesy.heights._HeightNamed-class.html#_as_lls\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.heights.HeightIDWdistanceTo.__init__\tpygeodesy.heights.HeightIDWdistanceTo-class.html#__init__\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.heights._HeightIDW._kwds\tpygeodesy.heights._HeightIDW-class.html#_kwds\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.heights._HeightNamed._np_sp\tpygeodesy.heights._HeightNamed-class.html#_np_sp\npygeodesy.heights._HeightNamed.kmin\tpygeodesy.heights._HeightNamed-class.html#kmin\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.heights.HeightIDWdistanceTo.__call__\tpygeodesy.heights.HeightIDWdistanceTo-class.html#__call__\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.__str__\tpygeodesy.named._Named-class.html#__str__\npygeodesy.heights._HeightIDW._func\tpygeodesy.heights._HeightIDW-class.html#_func\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.heights.HeightIDWdistanceTo._distances\tpygeodesy.heights.HeightIDWdistanceTo-class.html#_distances\npygeodesy.heights._HeightNamed._Error\tpygeodesy.heights.HeightError-class.html\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named.toStr\tpygeodesy.named._Named-class.html#toStr\npygeodesy.heights._HeightNamed._datum\tpygeodesy.heights._HeightNamed-class.html#_datum\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.heights._HeightIDW._distancesTo\tpygeodesy.heights._HeightIDW-class.html#_distancesTo\npygeodesy.heights._HeightIDW._beta\tpygeodesy.heights._HeightIDW-class.html#_beta\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.heights._HeightIDW.beta\tpygeodesy.heights._HeightIDW-class.html#beta\npygeodesy.named._Named.toRepr\tpygeodesy.named._Named-class.html#toRepr\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.heights._HeightIDW._datum_setter\tpygeodesy.heights._HeightIDW-class.html#_datum_setter\npygeodesy.heights._HeightNamed._wrap\tpygeodesy.heights._HeightNamed-class.html#_wrap\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.heights._HeightIDW.kwds\tpygeodesy.heights._HeightIDW-class.html#kwds\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.heights._HeightNamed._kmin\tpygeodesy.heights._HeightNamed-class.html#_kmin\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.heights._HeightIDW.adjust\tpygeodesy.heights._HeightIDW-class.html#adjust\npygeodesy.heights._HeightIDW.limit\tpygeodesy.heights._HeightIDW-class.html#limit\npygeodesy.named._Named.__repr__\tpygeodesy.named._Named-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.heights._HeightNamed._LLiC\tpygeodesy.points.LatLon_-class.html\npygeodesy.heights.HeightIDWequirectangular\tpygeodesy.heights.HeightIDWequirectangular-class.html\npygeodesy.heights._HeightIDW.knots\tpygeodesy.heights._HeightIDW-class.html#knots\npygeodesy.heights._HeightIDW._hIDW\tpygeodesy.heights._HeightIDW-class.html#_hIDW\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.heights._HeightNamed.height_\tpygeodesy.heights._HeightNamed-class.html#height_\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.heights._HeightIDW._knots\tpygeodesy.heights._HeightIDW-class.html#_knots\npygeodesy.heights._HeightIDW.datum\tpygeodesy.heights._HeightIDW-class.html#datum\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.heights.HeightIDWequirectangular.height\tpygeodesy.heights.HeightIDWequirectangular-class.html#height\npygeodesy.heights._HeightIDW.scaled\tpygeodesy.heights._HeightIDW-class.html#scaled\npygeodesy.heights._HeightIDW._heights\tpygeodesy.heights._HeightIDW-class.html#_heights\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.heights._HeightIDW.hypot\tpygeodesy.heights._HeightIDW-class.html#hypot\npygeodesy.heights._HeightIDW.radius\tpygeodesy.heights._HeightIDW-class.html#radius\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.heights._HeightIDW.wrap\tpygeodesy.heights._HeightIDW-class.html#wrap\npygeodesy.heights._HeightNamed._as_lls\tpygeodesy.heights._HeightNamed-class.html#_as_lls\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.heights.HeightIDWequirectangular.__init__\tpygeodesy.heights.HeightIDWequirectangular-class.html#__init__\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.heights._HeightIDW._kwds\tpygeodesy.heights._HeightIDW-class.html#_kwds\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.heights._HeightNamed._np_sp\tpygeodesy.heights._HeightNamed-class.html#_np_sp\npygeodesy.heights._HeightNamed.kmin\tpygeodesy.heights._HeightNamed-class.html#kmin\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.heights.HeightIDWequirectangular.__call__\tpygeodesy.heights.HeightIDWequirectangular-class.html#__call__\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.__str__\tpygeodesy.named._Named-class.html#__str__\npygeodesy.heights._HeightIDW._func\tpygeodesy.heights._HeightIDW-class.html#_func\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.heights.HeightIDWequirectangular._distances\tpygeodesy.heights.HeightIDWequirectangular-class.html#_distances\npygeodesy.heights._HeightNamed._Error\tpygeodesy.heights.HeightError-class.html\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named.toStr\tpygeodesy.named._Named-class.html#toStr\npygeodesy.heights._HeightNamed._datum\tpygeodesy.heights._HeightNamed-class.html#_datum\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.heights._HeightIDW._distancesTo\tpygeodesy.heights._HeightIDW-class.html#_distancesTo\npygeodesy.heights._HeightIDW._beta\tpygeodesy.heights._HeightIDW-class.html#_beta\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.heights._HeightIDW.beta\tpygeodesy.heights._HeightIDW-class.html#beta\npygeodesy.named._Named.toRepr\tpygeodesy.named._Named-class.html#toRepr\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.heights._HeightIDW._datum_setter\tpygeodesy.heights._HeightIDW-class.html#_datum_setter\npygeodesy.heights._HeightNamed._wrap\tpygeodesy.heights._HeightNamed-class.html#_wrap\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.heights._HeightIDW.kwds\tpygeodesy.heights._HeightIDW-class.html#kwds\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.heights._HeightNamed._kmin\tpygeodesy.heights._HeightNamed-class.html#_kmin\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.heights._HeightIDW.adjust\tpygeodesy.heights._HeightIDW-class.html#adjust\npygeodesy.heights._HeightIDW.limit\tpygeodesy.heights._HeightIDW-class.html#limit\npygeodesy.named._Named.__repr__\tpygeodesy.named._Named-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.heights._HeightNamed._LLiC\tpygeodesy.points.LatLon_-class.html\npygeodesy.heights.HeightIDWeuclidean\tpygeodesy.heights.HeightIDWeuclidean-class.html\npygeodesy.heights._HeightIDW.knots\tpygeodesy.heights._HeightIDW-class.html#knots\npygeodesy.heights._HeightIDW._hIDW\tpygeodesy.heights._HeightIDW-class.html#_hIDW\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.heights._HeightNamed.height_\tpygeodesy.heights._HeightNamed-class.html#height_\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.heights._HeightIDW._knots\tpygeodesy.heights._HeightIDW-class.html#_knots\npygeodesy.heights._HeightIDW.datum\tpygeodesy.heights._HeightIDW-class.html#datum\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.heights.HeightIDWeuclidean.height\tpygeodesy.heights.HeightIDWeuclidean-class.html#height\npygeodesy.heights._HeightIDW.scaled\tpygeodesy.heights._HeightIDW-class.html#scaled\npygeodesy.heights._HeightIDW._heights\tpygeodesy.heights._HeightIDW-class.html#_heights\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.heights._HeightIDW.hypot\tpygeodesy.heights._HeightIDW-class.html#hypot\npygeodesy.heights._HeightIDW.radius\tpygeodesy.heights._HeightIDW-class.html#radius\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.heights._HeightIDW.wrap\tpygeodesy.heights._HeightIDW-class.html#wrap\npygeodesy.heights._HeightNamed._as_lls\tpygeodesy.heights._HeightNamed-class.html#_as_lls\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.heights.HeightIDWeuclidean.__init__\tpygeodesy.heights.HeightIDWeuclidean-class.html#__init__\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.heights._HeightIDW._kwds\tpygeodesy.heights._HeightIDW-class.html#_kwds\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.heights._HeightNamed._np_sp\tpygeodesy.heights._HeightNamed-class.html#_np_sp\npygeodesy.heights._HeightNamed.kmin\tpygeodesy.heights._HeightNamed-class.html#kmin\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.heights.HeightIDWeuclidean.__call__\tpygeodesy.heights.HeightIDWeuclidean-class.html#__call__\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.__str__\tpygeodesy.named._Named-class.html#__str__\npygeodesy.heights._HeightIDW._func\tpygeodesy.heights._HeightIDW-class.html#_func\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.heights._HeightIDW._distances\tpygeodesy.heights._HeightIDW-class.html#_distances\npygeodesy.heights._HeightNamed._Error\tpygeodesy.heights.HeightError-class.html\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named.toStr\tpygeodesy.named._Named-class.html#toStr\npygeodesy.heights._HeightNamed._datum\tpygeodesy.heights._HeightNamed-class.html#_datum\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.heights._HeightIDW._distancesTo\tpygeodesy.heights._HeightIDW-class.html#_distancesTo\npygeodesy.heights._HeightIDW._beta\tpygeodesy.heights._HeightIDW-class.html#_beta\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.heights._HeightIDW.beta\tpygeodesy.heights._HeightIDW-class.html#beta\npygeodesy.named._Named.toRepr\tpygeodesy.named._Named-class.html#toRepr\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.heights._HeightIDW._datum_setter\tpygeodesy.heights._HeightIDW-class.html#_datum_setter\npygeodesy.heights._HeightNamed._wrap\tpygeodesy.heights._HeightNamed-class.html#_wrap\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.heights._HeightIDW.kwds\tpygeodesy.heights._HeightIDW-class.html#kwds\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.heights._HeightNamed._kmin\tpygeodesy.heights._HeightNamed-class.html#_kmin\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.heights._HeightIDW.adjust\tpygeodesy.heights._HeightIDW-class.html#adjust\npygeodesy.heights._HeightIDW.limit\tpygeodesy.heights._HeightIDW-class.html#limit\npygeodesy.named._Named.__repr__\tpygeodesy.named._Named-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.heights._HeightNamed._LLiC\tpygeodesy.points.LatLon_-class.html\npygeodesy.heights.HeightIDWexact\tpygeodesy.heights.HeightIDWexact-class.html\npygeodesy.heights._HeightIDW.knots\tpygeodesy.heights._HeightIDW-class.html#knots\npygeodesy.heights._HeightIDW._hIDW\tpygeodesy.heights._HeightIDW-class.html#_hIDW\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.heights._HeightNamed.height_\tpygeodesy.heights._HeightNamed-class.html#height_\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.heights._HeightIDW._knots\tpygeodesy.heights._HeightIDW-class.html#_knots\npygeodesy.heights._HeightIDW.datum\tpygeodesy.heights._HeightIDW-class.html#datum\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.heights.HeightIDWexact.height\tpygeodesy.heights.HeightIDWexact-class.html#height\npygeodesy.heights._HeightIDW.scaled\tpygeodesy.heights._HeightIDW-class.html#scaled\npygeodesy.heights._HeightIDW._heights\tpygeodesy.heights._HeightIDW-class.html#_heights\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.heights._HeightIDW.hypot\tpygeodesy.heights._HeightIDW-class.html#hypot\npygeodesy.heights._HeightIDW.radius\tpygeodesy.heights._HeightIDW-class.html#radius\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.heights._HeightIDW.wrap\tpygeodesy.heights._HeightIDW-class.html#wrap\npygeodesy.heights._HeightNamed._as_lls\tpygeodesy.heights._HeightNamed-class.html#_as_lls\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.heights.HeightIDWexact.__init__\tpygeodesy.heights.HeightIDWexact-class.html#__init__\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.heights._HeightIDW._kwds\tpygeodesy.heights._HeightIDW-class.html#_kwds\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.heights._HeightNamed._np_sp\tpygeodesy.heights._HeightNamed-class.html#_np_sp\npygeodesy.heights._HeightNamed.kmin\tpygeodesy.heights._HeightNamed-class.html#kmin\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.heights.HeightIDWexact.__call__\tpygeodesy.heights.HeightIDWexact-class.html#__call__\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.__str__\tpygeodesy.named._Named-class.html#__str__\npygeodesy.heights._HeightIDW._func\tpygeodesy.heights._HeightIDW-class.html#_func\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.heights._HeightIDW._distances\tpygeodesy.heights._HeightIDW-class.html#_distances\npygeodesy.heights._HeightNamed._Error\tpygeodesy.heights.HeightError-class.html\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named.toStr\tpygeodesy.named._Named-class.html#toStr\npygeodesy.heights._HeightNamed._datum\tpygeodesy.heights._HeightNamed-class.html#_datum\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.heights._HeightIDW._distancesTo\tpygeodesy.heights._HeightIDW-class.html#_distancesTo\npygeodesy.heights._HeightIDW._beta\tpygeodesy.heights._HeightIDW-class.html#_beta\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.heights._HeightIDW.beta\tpygeodesy.heights._HeightIDW-class.html#beta\npygeodesy.named._Named.toRepr\tpygeodesy.named._Named-class.html#toRepr\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.heights._HeightIDW._datum_setter\tpygeodesy.heights._HeightIDW-class.html#_datum_setter\npygeodesy.heights._HeightNamed._wrap\tpygeodesy.heights._HeightNamed-class.html#_wrap\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.heights._HeightIDW.kwds\tpygeodesy.heights._HeightIDW-class.html#kwds\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.heights._HeightNamed._kmin\tpygeodesy.heights._HeightNamed-class.html#_kmin\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.heights._HeightIDW.adjust\tpygeodesy.heights._HeightIDW-class.html#adjust\npygeodesy.heights._HeightIDW.limit\tpygeodesy.heights._HeightIDW-class.html#limit\npygeodesy.named._Named.__repr__\tpygeodesy.named._Named-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.heights._HeightNamed._LLiC\tpygeodesy.points.LatLon_-class.html\npygeodesy.heights.HeightIDWflatLocal\tpygeodesy.heights.HeightIDWflatLocal-class.html\npygeodesy.heights._HeightIDW.knots\tpygeodesy.heights._HeightIDW-class.html#knots\npygeodesy.heights._HeightIDW._hIDW\tpygeodesy.heights._HeightIDW-class.html#_hIDW\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.heights._HeightNamed.height_\tpygeodesy.heights._HeightNamed-class.html#height_\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.heights._HeightIDW._knots\tpygeodesy.heights._HeightIDW-class.html#_knots\npygeodesy.heights._HeightIDW.datum\tpygeodesy.heights._HeightIDW-class.html#datum\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.heights.HeightIDWflatLocal.height\tpygeodesy.heights.HeightIDWflatLocal-class.html#height\npygeodesy.heights._HeightIDW.scaled\tpygeodesy.heights._HeightIDW-class.html#scaled\npygeodesy.heights._HeightIDW._heights\tpygeodesy.heights._HeightIDW-class.html#_heights\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.heights._HeightIDW.hypot\tpygeodesy.heights._HeightIDW-class.html#hypot\npygeodesy.heights._HeightIDW.radius\tpygeodesy.heights._HeightIDW-class.html#radius\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.heights._HeightIDW.wrap\tpygeodesy.heights._HeightIDW-class.html#wrap\npygeodesy.heights._HeightNamed._as_lls\tpygeodesy.heights._HeightNamed-class.html#_as_lls\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.heights.HeightIDWflatLocal.__init__\tpygeodesy.heights.HeightIDWflatLocal-class.html#__init__\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.heights._HeightIDW._kwds\tpygeodesy.heights._HeightIDW-class.html#_kwds\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.heights._HeightNamed._np_sp\tpygeodesy.heights._HeightNamed-class.html#_np_sp\npygeodesy.heights._HeightNamed.kmin\tpygeodesy.heights._HeightNamed-class.html#kmin\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.heights.HeightIDWflatLocal.__call__\tpygeodesy.heights.HeightIDWflatLocal-class.html#__call__\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.__str__\tpygeodesy.named._Named-class.html#__str__\npygeodesy.heights._HeightIDW._func\tpygeodesy.heights._HeightIDW-class.html#_func\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.heights._HeightIDW._distances\tpygeodesy.heights._HeightIDW-class.html#_distances\npygeodesy.heights._HeightNamed._Error\tpygeodesy.heights.HeightError-class.html\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named.toStr\tpygeodesy.named._Named-class.html#toStr\npygeodesy.heights._HeightNamed._datum\tpygeodesy.heights._HeightNamed-class.html#_datum\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.heights._HeightIDW._distancesTo\tpygeodesy.heights._HeightIDW-class.html#_distancesTo\npygeodesy.heights._HeightIDW._beta\tpygeodesy.heights._HeightIDW-class.html#_beta\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.heights._HeightIDW.beta\tpygeodesy.heights._HeightIDW-class.html#beta\npygeodesy.named._Named.toRepr\tpygeodesy.named._Named-class.html#toRepr\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.heights._HeightIDW._datum_setter\tpygeodesy.heights._HeightIDW-class.html#_datum_setter\npygeodesy.heights._HeightNamed._wrap\tpygeodesy.heights._HeightNamed-class.html#_wrap\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.heights._HeightIDW.kwds\tpygeodesy.heights._HeightIDW-class.html#kwds\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.heights._HeightNamed._kmin\tpygeodesy.heights._HeightNamed-class.html#_kmin\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.heights._HeightIDW.adjust\tpygeodesy.heights._HeightIDW-class.html#adjust\npygeodesy.heights._HeightIDW.limit\tpygeodesy.heights._HeightIDW-class.html#limit\npygeodesy.named._Named.__repr__\tpygeodesy.named._Named-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.heights._HeightNamed._LLiC\tpygeodesy.points.LatLon_-class.html\npygeodesy.heights.HeightIDWflatPolar\tpygeodesy.heights.HeightIDWflatPolar-class.html\npygeodesy.heights._HeightIDW.knots\tpygeodesy.heights._HeightIDW-class.html#knots\npygeodesy.heights._HeightIDW._hIDW\tpygeodesy.heights._HeightIDW-class.html#_hIDW\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.heights._HeightNamed.height_\tpygeodesy.heights._HeightNamed-class.html#height_\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.heights._HeightIDW._knots\tpygeodesy.heights._HeightIDW-class.html#_knots\npygeodesy.heights._HeightIDW.datum\tpygeodesy.heights._HeightIDW-class.html#datum\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.heights.HeightIDWflatPolar.height\tpygeodesy.heights.HeightIDWflatPolar-class.html#height\npygeodesy.heights._HeightIDW.scaled\tpygeodesy.heights._HeightIDW-class.html#scaled\npygeodesy.heights._HeightIDW._heights\tpygeodesy.heights._HeightIDW-class.html#_heights\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.heights._HeightIDW.hypot\tpygeodesy.heights._HeightIDW-class.html#hypot\npygeodesy.heights._HeightIDW.radius\tpygeodesy.heights._HeightIDW-class.html#radius\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.heights._HeightIDW.wrap\tpygeodesy.heights._HeightIDW-class.html#wrap\npygeodesy.heights._HeightNamed._as_lls\tpygeodesy.heights._HeightNamed-class.html#_as_lls\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.heights.HeightIDWflatPolar.__init__\tpygeodesy.heights.HeightIDWflatPolar-class.html#__init__\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.heights._HeightIDW._kwds\tpygeodesy.heights._HeightIDW-class.html#_kwds\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.heights._HeightNamed._np_sp\tpygeodesy.heights._HeightNamed-class.html#_np_sp\npygeodesy.heights._HeightNamed.kmin\tpygeodesy.heights._HeightNamed-class.html#kmin\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.heights.HeightIDWflatPolar.__call__\tpygeodesy.heights.HeightIDWflatPolar-class.html#__call__\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.__str__\tpygeodesy.named._Named-class.html#__str__\npygeodesy.heights._HeightIDW._func\tpygeodesy.heights._HeightIDW-class.html#_func\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.heights._HeightIDW._distances\tpygeodesy.heights._HeightIDW-class.html#_distances\npygeodesy.heights._HeightNamed._Error\tpygeodesy.heights.HeightError-class.html\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named.toStr\tpygeodesy.named._Named-class.html#toStr\npygeodesy.heights._HeightNamed._datum\tpygeodesy.heights._HeightNamed-class.html#_datum\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.heights._HeightIDW._distancesTo\tpygeodesy.heights._HeightIDW-class.html#_distancesTo\npygeodesy.heights._HeightIDW._beta\tpygeodesy.heights._HeightIDW-class.html#_beta\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.heights._HeightIDW.beta\tpygeodesy.heights._HeightIDW-class.html#beta\npygeodesy.named._Named.toRepr\tpygeodesy.named._Named-class.html#toRepr\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.heights._HeightIDW._datum_setter\tpygeodesy.heights._HeightIDW-class.html#_datum_setter\npygeodesy.heights._HeightNamed._wrap\tpygeodesy.heights._HeightNamed-class.html#_wrap\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.heights._HeightIDW.kwds\tpygeodesy.heights._HeightIDW-class.html#kwds\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.heights._HeightNamed._kmin\tpygeodesy.heights._HeightNamed-class.html#_kmin\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.heights._HeightIDW.adjust\tpygeodesy.heights._HeightIDW-class.html#adjust\npygeodesy.heights._HeightIDW.limit\tpygeodesy.heights._HeightIDW-class.html#limit\npygeodesy.named._Named.__repr__\tpygeodesy.named._Named-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.heights._HeightNamed._LLiC\tpygeodesy.points.LatLon_-class.html\npygeodesy.heights.HeightIDWhaversine\tpygeodesy.heights.HeightIDWhaversine-class.html\npygeodesy.heights._HeightIDW.knots\tpygeodesy.heights._HeightIDW-class.html#knots\npygeodesy.heights._HeightIDW._hIDW\tpygeodesy.heights._HeightIDW-class.html#_hIDW\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.heights._HeightNamed.height_\tpygeodesy.heights._HeightNamed-class.html#height_\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.heights._HeightIDW._knots\tpygeodesy.heights._HeightIDW-class.html#_knots\npygeodesy.heights._HeightIDW.datum\tpygeodesy.heights._HeightIDW-class.html#datum\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.heights.HeightIDWhaversine.height\tpygeodesy.heights.HeightIDWhaversine-class.html#height\npygeodesy.heights._HeightIDW.scaled\tpygeodesy.heights._HeightIDW-class.html#scaled\npygeodesy.heights._HeightIDW._heights\tpygeodesy.heights._HeightIDW-class.html#_heights\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.heights._HeightIDW.hypot\tpygeodesy.heights._HeightIDW-class.html#hypot\npygeodesy.heights._HeightIDW.radius\tpygeodesy.heights._HeightIDW-class.html#radius\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.heights._HeightIDW.wrap\tpygeodesy.heights._HeightIDW-class.html#wrap\npygeodesy.heights._HeightNamed._as_lls\tpygeodesy.heights._HeightNamed-class.html#_as_lls\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.heights.HeightIDWhaversine.__init__\tpygeodesy.heights.HeightIDWhaversine-class.html#__init__\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.heights._HeightIDW._kwds\tpygeodesy.heights._HeightIDW-class.html#_kwds\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.heights._HeightNamed._np_sp\tpygeodesy.heights._HeightNamed-class.html#_np_sp\npygeodesy.heights._HeightNamed.kmin\tpygeodesy.heights._HeightNamed-class.html#kmin\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.heights.HeightIDWhaversine.__call__\tpygeodesy.heights.HeightIDWhaversine-class.html#__call__\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.__str__\tpygeodesy.named._Named-class.html#__str__\npygeodesy.heights._HeightIDW._func\tpygeodesy.heights._HeightIDW-class.html#_func\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.heights._HeightIDW._distances\tpygeodesy.heights._HeightIDW-class.html#_distances\npygeodesy.heights._HeightNamed._Error\tpygeodesy.heights.HeightError-class.html\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named.toStr\tpygeodesy.named._Named-class.html#toStr\npygeodesy.heights._HeightNamed._datum\tpygeodesy.heights._HeightNamed-class.html#_datum\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.heights._HeightIDW._distancesTo\tpygeodesy.heights._HeightIDW-class.html#_distancesTo\npygeodesy.heights._HeightIDW._beta\tpygeodesy.heights._HeightIDW-class.html#_beta\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.heights._HeightIDW.beta\tpygeodesy.heights._HeightIDW-class.html#beta\npygeodesy.named._Named.toRepr\tpygeodesy.named._Named-class.html#toRepr\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.heights._HeightIDW._datum_setter\tpygeodesy.heights._HeightIDW-class.html#_datum_setter\npygeodesy.heights._HeightNamed._wrap\tpygeodesy.heights._HeightNamed-class.html#_wrap\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.heights._HeightIDW.kwds\tpygeodesy.heights._HeightIDW-class.html#kwds\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.heights._HeightNamed._kmin\tpygeodesy.heights._HeightNamed-class.html#_kmin\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.heights._HeightIDW.adjust\tpygeodesy.heights._HeightIDW-class.html#adjust\npygeodesy.heights._HeightIDW.limit\tpygeodesy.heights._HeightIDW-class.html#limit\npygeodesy.named._Named.__repr__\tpygeodesy.named._Named-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.heights._HeightNamed._LLiC\tpygeodesy.points.LatLon_-class.html\npygeodesy.heights.HeightIDWhubeny\tpygeodesy.heights.HeightIDWhubeny-class.html\npygeodesy.heights._HeightIDW.knots\tpygeodesy.heights._HeightIDW-class.html#knots\npygeodesy.heights._HeightIDW._hIDW\tpygeodesy.heights._HeightIDW-class.html#_hIDW\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.heights._HeightNamed.height_\tpygeodesy.heights._HeightNamed-class.html#height_\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.heights._HeightIDW._knots\tpygeodesy.heights._HeightIDW-class.html#_knots\npygeodesy.heights._HeightIDW.datum\tpygeodesy.heights._HeightIDW-class.html#datum\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.heights.HeightIDWhubeny.height\tpygeodesy.heights.HeightIDWhubeny-class.html#height\npygeodesy.heights._HeightIDW.scaled\tpygeodesy.heights._HeightIDW-class.html#scaled\npygeodesy.heights._HeightIDW._heights\tpygeodesy.heights._HeightIDW-class.html#_heights\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.heights._HeightIDW.hypot\tpygeodesy.heights._HeightIDW-class.html#hypot\npygeodesy.heights._HeightIDW.radius\tpygeodesy.heights._HeightIDW-class.html#radius\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.heights._HeightIDW.wrap\tpygeodesy.heights._HeightIDW-class.html#wrap\npygeodesy.heights._HeightNamed._as_lls\tpygeodesy.heights._HeightNamed-class.html#_as_lls\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.heights.HeightIDWhubeny.__init__\tpygeodesy.heights.HeightIDWhubeny-class.html#__init__\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.heights._HeightIDW._kwds\tpygeodesy.heights._HeightIDW-class.html#_kwds\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.heights._HeightNamed._np_sp\tpygeodesy.heights._HeightNamed-class.html#_np_sp\npygeodesy.heights._HeightNamed.kmin\tpygeodesy.heights._HeightNamed-class.html#kmin\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.heights.HeightIDWhubeny.__call__\tpygeodesy.heights.HeightIDWhubeny-class.html#__call__\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.heights.HeightIDWhubeny.__doc__\tpygeodesy.heights.HeightIDWhubeny-class.html#__doc__\npygeodesy.heights._HeightIDW._func\tpygeodesy.heights._HeightIDW-class.html#_func\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.heights._HeightIDW._distances\tpygeodesy.heights._HeightIDW-class.html#_distances\npygeodesy.heights._HeightNamed._Error\tpygeodesy.heights.HeightError-class.html\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named.toStr\tpygeodesy.named._Named-class.html#toStr\npygeodesy.heights._HeightNamed._datum\tpygeodesy.heights._HeightNamed-class.html#_datum\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.heights._HeightIDW._distancesTo\tpygeodesy.heights._HeightIDW-class.html#_distancesTo\npygeodesy.heights._HeightIDW._beta\tpygeodesy.heights._HeightIDW-class.html#_beta\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.heights._HeightIDW.beta\tpygeodesy.heights._HeightIDW-class.html#beta\npygeodesy.named._Named.toRepr\tpygeodesy.named._Named-class.html#toRepr\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.heights._HeightIDW._datum_setter\tpygeodesy.heights._HeightIDW-class.html#_datum_setter\npygeodesy.named._Named.__str__\tpygeodesy.named._Named-class.html#__str__\npygeodesy.heights._HeightNamed._wrap\tpygeodesy.heights._HeightNamed-class.html#_wrap\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.heights._HeightIDW.kwds\tpygeodesy.heights._HeightIDW-class.html#kwds\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.heights._HeightNamed._kmin\tpygeodesy.heights._HeightNamed-class.html#_kmin\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.heights._HeightIDW.adjust\tpygeodesy.heights._HeightIDW-class.html#adjust\npygeodesy.heights._HeightIDW.limit\tpygeodesy.heights._HeightIDW-class.html#limit\npygeodesy.named._Named.__repr__\tpygeodesy.named._Named-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.heights._HeightNamed._LLiC\tpygeodesy.points.LatLon_-class.html\npygeodesy.heights.HeightIDWkarney\tpygeodesy.heights.HeightIDWkarney-class.html\npygeodesy.heights._HeightIDW.knots\tpygeodesy.heights._HeightIDW-class.html#knots\npygeodesy.heights._HeightIDW._hIDW\tpygeodesy.heights._HeightIDW-class.html#_hIDW\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.heights._HeightNamed.height_\tpygeodesy.heights._HeightNamed-class.html#height_\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.heights._HeightIDW._knots\tpygeodesy.heights._HeightIDW-class.html#_knots\npygeodesy.heights._HeightIDW.datum\tpygeodesy.heights._HeightIDW-class.html#datum\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.heights.HeightIDWkarney.height\tpygeodesy.heights.HeightIDWkarney-class.html#height\npygeodesy.heights._HeightIDW.scaled\tpygeodesy.heights._HeightIDW-class.html#scaled\npygeodesy.heights._HeightIDW._heights\tpygeodesy.heights._HeightIDW-class.html#_heights\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.heights._HeightIDW.hypot\tpygeodesy.heights._HeightIDW-class.html#hypot\npygeodesy.heights._HeightIDW.radius\tpygeodesy.heights._HeightIDW-class.html#radius\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.heights._HeightIDW.wrap\tpygeodesy.heights._HeightIDW-class.html#wrap\npygeodesy.heights._HeightNamed._as_lls\tpygeodesy.heights._HeightNamed-class.html#_as_lls\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.heights.HeightIDWkarney.__init__\tpygeodesy.heights.HeightIDWkarney-class.html#__init__\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.heights._HeightIDW._kwds\tpygeodesy.heights._HeightIDW-class.html#_kwds\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.heights._HeightNamed._np_sp\tpygeodesy.heights._HeightNamed-class.html#_np_sp\npygeodesy.heights._HeightNamed.kmin\tpygeodesy.heights._HeightNamed-class.html#kmin\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.heights.HeightIDWkarney.__call__\tpygeodesy.heights.HeightIDWkarney-class.html#__call__\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.__str__\tpygeodesy.named._Named-class.html#__str__\npygeodesy.heights._HeightIDW._func\tpygeodesy.heights._HeightIDW-class.html#_func\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.heights._HeightIDW._distances\tpygeodesy.heights._HeightIDW-class.html#_distances\npygeodesy.heights._HeightNamed._Error\tpygeodesy.heights.HeightError-class.html\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named.toStr\tpygeodesy.named._Named-class.html#toStr\npygeodesy.heights._HeightNamed._datum\tpygeodesy.heights._HeightNamed-class.html#_datum\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.heights._HeightIDW._distancesTo\tpygeodesy.heights._HeightIDW-class.html#_distancesTo\npygeodesy.heights._HeightIDW._beta\tpygeodesy.heights._HeightIDW-class.html#_beta\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.heights._HeightIDW.beta\tpygeodesy.heights._HeightIDW-class.html#beta\npygeodesy.named._Named.toRepr\tpygeodesy.named._Named-class.html#toRepr\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.heights._HeightIDW._datum_setter\tpygeodesy.heights._HeightIDW-class.html#_datum_setter\npygeodesy.heights._HeightNamed._wrap\tpygeodesy.heights._HeightNamed-class.html#_wrap\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.heights._HeightIDW.kwds\tpygeodesy.heights._HeightIDW-class.html#kwds\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.heights._HeightNamed._kmin\tpygeodesy.heights._HeightNamed-class.html#_kmin\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.heights._HeightIDW.adjust\tpygeodesy.heights._HeightIDW-class.html#adjust\npygeodesy.heights._HeightIDW.limit\tpygeodesy.heights._HeightIDW-class.html#limit\npygeodesy.named._Named.__repr__\tpygeodesy.named._Named-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.heights._HeightNamed._LLiC\tpygeodesy.points.LatLon_-class.html\npygeodesy.heights.HeightIDWthomas\tpygeodesy.heights.HeightIDWthomas-class.html\npygeodesy.heights._HeightIDW.knots\tpygeodesy.heights._HeightIDW-class.html#knots\npygeodesy.heights._HeightIDW._hIDW\tpygeodesy.heights._HeightIDW-class.html#_hIDW\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.heights._HeightNamed.height_\tpygeodesy.heights._HeightNamed-class.html#height_\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.heights._HeightIDW._knots\tpygeodesy.heights._HeightIDW-class.html#_knots\npygeodesy.heights._HeightIDW.datum\tpygeodesy.heights._HeightIDW-class.html#datum\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.heights.HeightIDWthomas.height\tpygeodesy.heights.HeightIDWthomas-class.html#height\npygeodesy.heights._HeightIDW.scaled\tpygeodesy.heights._HeightIDW-class.html#scaled\npygeodesy.heights._HeightIDW._heights\tpygeodesy.heights._HeightIDW-class.html#_heights\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.heights._HeightIDW.hypot\tpygeodesy.heights._HeightIDW-class.html#hypot\npygeodesy.heights._HeightIDW.radius\tpygeodesy.heights._HeightIDW-class.html#radius\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.heights._HeightIDW.wrap\tpygeodesy.heights._HeightIDW-class.html#wrap\npygeodesy.heights._HeightNamed._as_lls\tpygeodesy.heights._HeightNamed-class.html#_as_lls\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.heights.HeightIDWthomas.__init__\tpygeodesy.heights.HeightIDWthomas-class.html#__init__\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.heights._HeightIDW._kwds\tpygeodesy.heights._HeightIDW-class.html#_kwds\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.heights._HeightNamed._np_sp\tpygeodesy.heights._HeightNamed-class.html#_np_sp\npygeodesy.heights._HeightNamed.kmin\tpygeodesy.heights._HeightNamed-class.html#kmin\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.heights.HeightIDWthomas.__call__\tpygeodesy.heights.HeightIDWthomas-class.html#__call__\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.__str__\tpygeodesy.named._Named-class.html#__str__\npygeodesy.heights._HeightIDW._func\tpygeodesy.heights._HeightIDW-class.html#_func\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.heights._HeightIDW._distances\tpygeodesy.heights._HeightIDW-class.html#_distances\npygeodesy.heights._HeightNamed._Error\tpygeodesy.heights.HeightError-class.html\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named.toStr\tpygeodesy.named._Named-class.html#toStr\npygeodesy.heights._HeightNamed._datum\tpygeodesy.heights._HeightNamed-class.html#_datum\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.heights._HeightIDW._distancesTo\tpygeodesy.heights._HeightIDW-class.html#_distancesTo\npygeodesy.heights._HeightIDW._beta\tpygeodesy.heights._HeightIDW-class.html#_beta\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.heights._HeightIDW.beta\tpygeodesy.heights._HeightIDW-class.html#beta\npygeodesy.named._Named.toRepr\tpygeodesy.named._Named-class.html#toRepr\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.heights._HeightIDW._datum_setter\tpygeodesy.heights._HeightIDW-class.html#_datum_setter\npygeodesy.heights._HeightNamed._wrap\tpygeodesy.heights._HeightNamed-class.html#_wrap\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.heights._HeightIDW.kwds\tpygeodesy.heights._HeightIDW-class.html#kwds\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.heights._HeightNamed._kmin\tpygeodesy.heights._HeightNamed-class.html#_kmin\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.heights._HeightIDW.adjust\tpygeodesy.heights._HeightIDW-class.html#adjust\npygeodesy.heights._HeightIDW.limit\tpygeodesy.heights._HeightIDW-class.html#limit\npygeodesy.named._Named.__repr__\tpygeodesy.named._Named-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.heights._HeightNamed._LLiC\tpygeodesy.points.LatLon_-class.html\npygeodesy.heights.HeightIDWvincentys\tpygeodesy.heights.HeightIDWvincentys-class.html\npygeodesy.heights._HeightIDW.knots\tpygeodesy.heights._HeightIDW-class.html#knots\npygeodesy.heights._HeightIDW._hIDW\tpygeodesy.heights._HeightIDW-class.html#_hIDW\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.heights._HeightNamed.height_\tpygeodesy.heights._HeightNamed-class.html#height_\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.heights._HeightIDW._knots\tpygeodesy.heights._HeightIDW-class.html#_knots\npygeodesy.heights._HeightIDW.datum\tpygeodesy.heights._HeightIDW-class.html#datum\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.heights.HeightIDWvincentys.height\tpygeodesy.heights.HeightIDWvincentys-class.html#height\npygeodesy.heights._HeightIDW.scaled\tpygeodesy.heights._HeightIDW-class.html#scaled\npygeodesy.heights._HeightIDW._heights\tpygeodesy.heights._HeightIDW-class.html#_heights\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.heights._HeightIDW.hypot\tpygeodesy.heights._HeightIDW-class.html#hypot\npygeodesy.heights._HeightIDW.radius\tpygeodesy.heights._HeightIDW-class.html#radius\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.heights._HeightIDW.wrap\tpygeodesy.heights._HeightIDW-class.html#wrap\npygeodesy.heights._HeightNamed._as_lls\tpygeodesy.heights._HeightNamed-class.html#_as_lls\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.heights.HeightIDWvincentys.__init__\tpygeodesy.heights.HeightIDWvincentys-class.html#__init__\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.heights._HeightIDW._kwds\tpygeodesy.heights._HeightIDW-class.html#_kwds\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.heights._HeightNamed._np_sp\tpygeodesy.heights._HeightNamed-class.html#_np_sp\npygeodesy.heights._HeightNamed.kmin\tpygeodesy.heights._HeightNamed-class.html#kmin\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.heights.HeightIDWvincentys.__call__\tpygeodesy.heights.HeightIDWvincentys-class.html#__call__\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.__str__\tpygeodesy.named._Named-class.html#__str__\npygeodesy.heights._HeightIDW._func\tpygeodesy.heights._HeightIDW-class.html#_func\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.heights._HeightIDW._distances\tpygeodesy.heights._HeightIDW-class.html#_distances\npygeodesy.heights._HeightNamed._Error\tpygeodesy.heights.HeightError-class.html\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named.toStr\tpygeodesy.named._Named-class.html#toStr\npygeodesy.heights._HeightNamed._datum\tpygeodesy.heights._HeightNamed-class.html#_datum\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.heights._HeightIDW._distancesTo\tpygeodesy.heights._HeightIDW-class.html#_distancesTo\npygeodesy.heights._HeightIDW._beta\tpygeodesy.heights._HeightIDW-class.html#_beta\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.heights._HeightIDW.beta\tpygeodesy.heights._HeightIDW-class.html#beta\npygeodesy.named._Named.toRepr\tpygeodesy.named._Named-class.html#toRepr\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.heights._HeightIDW._datum_setter\tpygeodesy.heights._HeightIDW-class.html#_datum_setter\npygeodesy.heights._HeightNamed._wrap\tpygeodesy.heights._HeightNamed-class.html#_wrap\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.heights._HeightIDW.kwds\tpygeodesy.heights._HeightIDW-class.html#kwds\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.heights._HeightNamed._kmin\tpygeodesy.heights._HeightNamed-class.html#_kmin\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.heights._HeightIDW.adjust\tpygeodesy.heights._HeightIDW-class.html#adjust\npygeodesy.heights._HeightIDW.limit\tpygeodesy.heights._HeightIDW-class.html#limit\npygeodesy.named._Named.__repr__\tpygeodesy.named._Named-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.heights._HeightNamed._LLiC\tpygeodesy.points.LatLon_-class.html\npygeodesy.heights.HeightLSQBiSpline\tpygeodesy.heights.HeightLSQBiSpline-class.html\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.heights._HeightNamed._wrap\tpygeodesy.heights._HeightNamed-class.html#_wrap\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.heights._HeightNamed.height_\tpygeodesy.heights._HeightNamed-class.html#height_\npygeodesy.heights._HeightBase._evalls\tpygeodesy.heights._HeightBase-class.html#_evalls\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.__str__\tpygeodesy.named._Named-class.html#__str__\npygeodesy.heights._HeightNamed.datum\tpygeodesy.heights._HeightNamed-class.html#datum\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.heights._HeightBase.height\tpygeodesy.heights._HeightBase-class.html#height\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.heights._HeightBase._xyhs3\tpygeodesy.heights._HeightBase-class.html#_xyhs3\npygeodesy.heights._HeightBase._kxky\tpygeodesy.heights._HeightBase-class.html#_kxky\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.heights._HeightNamed.wrap\tpygeodesy.heights._HeightNamed-class.html#wrap\npygeodesy.heights._HeightBase._ev2d\tpygeodesy.heights._HeightBase-class.html#_ev2d\npygeodesy.heights._HeightNamed._as_lls\tpygeodesy.heights._HeightNamed-class.html#_as_lls\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.heights.HeightLSQBiSpline.__init__\tpygeodesy.heights.HeightLSQBiSpline-class.html#__init__\npygeodesy.heights._HeightBase.scipy_interpolate\tpygeodesy.heights._HeightBase-class.html#scipy_interpolate\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.heights.HeightLSQBiSpline._kmin\tpygeodesy.heights.HeightLSQBiSpline-class.html#_kmin\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.heights._HeightNamed._np_sp\tpygeodesy.heights._HeightNamed-class.html#_np_sp\npygeodesy.heights._HeightNamed.kmin\tpygeodesy.heights._HeightNamed-class.html#kmin\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.heights.HeightLSQBiSpline.__call__\tpygeodesy.heights.HeightLSQBiSpline-class.html#__call__\npygeodesy.heights._HeightBase._k2interp2d\tpygeodesy.heights._HeightBase-class.html#_k2interp2d\npygeodesy.heights._HeightBase.numpy\tpygeodesy.heights._HeightBase-class.html#numpy\npygeodesy.heights._HeightBase._as_xyllis4\tpygeodesy.heights._HeightBase-class.html#_as_xyllis4\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.toRepr\tpygeodesy.named._Named-class.html#toRepr\npygeodesy.heights._HeightNamed._Error\tpygeodesy.heights.HeightError-class.html\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._Named.toStr\tpygeodesy.named._Named-class.html#toStr\npygeodesy.heights._HeightNamed._datum\tpygeodesy.heights._HeightNamed-class.html#_datum\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.heights._HeightBase.scipy\tpygeodesy.heights._HeightBase-class.html#scipy\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.heights._HeightBase._scipy_version\tpygeodesy.heights._HeightBase-class.html#_scipy_version\npygeodesy.heights._HeightBase._ev\tpygeodesy.heights._HeightBase-class.html#_ev\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.heights._HeightBase._ev_name\tpygeodesy.heights._HeightBase-class.html#_ev_name\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.heights._HeightBase._np_sp2\tpygeodesy.heights._HeightBase-class.html#_np_sp2\npygeodesy.named._Named.__repr__\tpygeodesy.named._Named-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.heights._HeightNamed._LLiC\tpygeodesy.points.LatLon_-class.html\npygeodesy.heights._HeightBase._interp2d\tpygeodesy.heights._HeightBase-class.html#_interp2d\npygeodesy.heights.HeightLinear\tpygeodesy.heights.HeightLinear-class.html\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.heights._HeightNamed._wrap\tpygeodesy.heights._HeightNamed-class.html#_wrap\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.heights._HeightNamed.height_\tpygeodesy.heights._HeightNamed-class.html#height_\npygeodesy.heights._HeightBase._evalls\tpygeodesy.heights._HeightBase-class.html#_evalls\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.__str__\tpygeodesy.named._Named-class.html#__str__\npygeodesy.heights._HeightNamed.datum\tpygeodesy.heights._HeightNamed-class.html#datum\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.heights.HeightLinear.height\tpygeodesy.heights.HeightLinear-class.html#height\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.heights._HeightBase._xyhs3\tpygeodesy.heights._HeightBase-class.html#_xyhs3\npygeodesy.heights._HeightBase._kxky\tpygeodesy.heights._HeightBase-class.html#_kxky\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.heights._HeightNamed.wrap\tpygeodesy.heights._HeightNamed-class.html#wrap\npygeodesy.heights._HeightBase._ev2d\tpygeodesy.heights._HeightBase-class.html#_ev2d\npygeodesy.heights._HeightNamed._as_lls\tpygeodesy.heights._HeightNamed-class.html#_as_lls\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.heights.HeightLinear.__init__\tpygeodesy.heights.HeightLinear-class.html#__init__\npygeodesy.heights._HeightBase.scipy_interpolate\tpygeodesy.heights._HeightBase-class.html#scipy_interpolate\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.heights.HeightLinear._kmin\tpygeodesy.heights.HeightLinear-class.html#_kmin\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.heights._HeightNamed._np_sp\tpygeodesy.heights._HeightNamed-class.html#_np_sp\npygeodesy.heights._HeightNamed.kmin\tpygeodesy.heights._HeightNamed-class.html#kmin\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.heights.HeightLinear.__call__\tpygeodesy.heights.HeightLinear-class.html#__call__\npygeodesy.heights._HeightBase._k2interp2d\tpygeodesy.heights._HeightBase-class.html#_k2interp2d\npygeodesy.heights._HeightBase.numpy\tpygeodesy.heights._HeightBase-class.html#numpy\npygeodesy.heights._HeightBase._as_xyllis4\tpygeodesy.heights._HeightBase-class.html#_as_xyllis4\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.toRepr\tpygeodesy.named._Named-class.html#toRepr\npygeodesy.heights._HeightNamed._Error\tpygeodesy.heights.HeightError-class.html\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._Named.toStr\tpygeodesy.named._Named-class.html#toStr\npygeodesy.heights._HeightNamed._datum\tpygeodesy.heights._HeightNamed-class.html#_datum\npygeodesy.heights.HeightLinear._kind\tpygeodesy.heights.HeightLinear-class.html#_kind\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.heights._HeightBase.scipy\tpygeodesy.heights._HeightBase-class.html#scipy\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.heights._HeightBase._scipy_version\tpygeodesy.heights._HeightBase-class.html#_scipy_version\npygeodesy.heights.HeightCubic._ev\tpygeodesy.heights.HeightCubic-class.html#_ev\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.heights._HeightBase._ev_name\tpygeodesy.heights._HeightBase-class.html#_ev_name\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.heights._HeightBase._np_sp2\tpygeodesy.heights._HeightBase-class.html#_np_sp2\npygeodesy.named._Named.__repr__\tpygeodesy.named._Named-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.heights._HeightNamed._LLiC\tpygeodesy.points.LatLon_-class.html\npygeodesy.heights._HeightBase._interp2d\tpygeodesy.heights._HeightBase-class.html#_interp2d\npygeodesy.heights.HeightSmoothBiSpline\tpygeodesy.heights.HeightSmoothBiSpline-class.html\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.heights._HeightNamed._wrap\tpygeodesy.heights._HeightNamed-class.html#_wrap\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.heights._HeightNamed.height_\tpygeodesy.heights._HeightNamed-class.html#height_\npygeodesy.heights._HeightBase._evalls\tpygeodesy.heights._HeightBase-class.html#_evalls\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.__str__\tpygeodesy.named._Named-class.html#__str__\npygeodesy.heights._HeightNamed.datum\tpygeodesy.heights._HeightNamed-class.html#datum\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.heights._HeightBase.height\tpygeodesy.heights._HeightBase-class.html#height\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.heights._HeightBase._xyhs3\tpygeodesy.heights._HeightBase-class.html#_xyhs3\npygeodesy.heights._HeightBase._kxky\tpygeodesy.heights._HeightBase-class.html#_kxky\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.heights._HeightNamed.wrap\tpygeodesy.heights._HeightNamed-class.html#wrap\npygeodesy.heights._HeightBase._ev2d\tpygeodesy.heights._HeightBase-class.html#_ev2d\npygeodesy.heights._HeightNamed._as_lls\tpygeodesy.heights._HeightNamed-class.html#_as_lls\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.heights.HeightSmoothBiSpline.__init__\tpygeodesy.heights.HeightSmoothBiSpline-class.html#__init__\npygeodesy.heights._HeightBase.scipy_interpolate\tpygeodesy.heights._HeightBase-class.html#scipy_interpolate\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.heights.HeightSmoothBiSpline._kmin\tpygeodesy.heights.HeightSmoothBiSpline-class.html#_kmin\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.heights._HeightNamed._np_sp\tpygeodesy.heights._HeightNamed-class.html#_np_sp\npygeodesy.heights._HeightNamed.kmin\tpygeodesy.heights._HeightNamed-class.html#kmin\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.heights.HeightSmoothBiSpline.__call__\tpygeodesy.heights.HeightSmoothBiSpline-class.html#__call__\npygeodesy.heights._HeightBase._k2interp2d\tpygeodesy.heights._HeightBase-class.html#_k2interp2d\npygeodesy.heights._HeightBase.numpy\tpygeodesy.heights._HeightBase-class.html#numpy\npygeodesy.heights._HeightBase._as_xyllis4\tpygeodesy.heights._HeightBase-class.html#_as_xyllis4\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.toRepr\tpygeodesy.named._Named-class.html#toRepr\npygeodesy.heights._HeightNamed._Error\tpygeodesy.heights.HeightError-class.html\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._Named.toStr\tpygeodesy.named._Named-class.html#toStr\npygeodesy.heights._HeightNamed._datum\tpygeodesy.heights._HeightNamed-class.html#_datum\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.heights._HeightBase.scipy\tpygeodesy.heights._HeightBase-class.html#scipy\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.heights._HeightBase._scipy_version\tpygeodesy.heights._HeightBase-class.html#_scipy_version\npygeodesy.heights._HeightBase._ev\tpygeodesy.heights._HeightBase-class.html#_ev\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.heights._HeightBase._ev_name\tpygeodesy.heights._HeightBase-class.html#_ev_name\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.heights._HeightBase._np_sp2\tpygeodesy.heights._HeightBase-class.html#_np_sp2\npygeodesy.named._Named.__repr__\tpygeodesy.named._Named-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.heights._HeightNamed._LLiC\tpygeodesy.points.LatLon_-class.html\npygeodesy.heights._HeightBase._interp2d\tpygeodesy.heights._HeightBase-class.html#_interp2d\npygeodesy.heights._HeightBase\tpygeodesy.heights._HeightBase-class.html\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.heights._HeightNamed._wrap\tpygeodesy.heights._HeightNamed-class.html#_wrap\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.heights._HeightNamed.height_\tpygeodesy.heights._HeightNamed-class.html#height_\npygeodesy.heights._HeightBase._evalls\tpygeodesy.heights._HeightBase-class.html#_evalls\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.__str__\tpygeodesy.named._Named-class.html#__str__\npygeodesy.heights._HeightNamed.datum\tpygeodesy.heights._HeightNamed-class.html#datum\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.heights._HeightBase.height\tpygeodesy.heights._HeightBase-class.html#height\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.heights._HeightBase._xyhs3\tpygeodesy.heights._HeightBase-class.html#_xyhs3\npygeodesy.heights._HeightBase._kxky\tpygeodesy.heights._HeightBase-class.html#_kxky\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.heights._HeightNamed.wrap\tpygeodesy.heights._HeightNamed-class.html#wrap\npygeodesy.heights._HeightBase._ev2d\tpygeodesy.heights._HeightBase-class.html#_ev2d\npygeodesy.heights._HeightNamed._as_lls\tpygeodesy.heights._HeightNamed-class.html#_as_lls\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.heights._HeightBase.scipy_interpolate\tpygeodesy.heights._HeightBase-class.html#scipy_interpolate\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.heights._HeightNamed._kmin\tpygeodesy.heights._HeightNamed-class.html#_kmin\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.heights._HeightNamed._np_sp\tpygeodesy.heights._HeightNamed-class.html#_np_sp\npygeodesy.heights._HeightNamed.kmin\tpygeodesy.heights._HeightNamed-class.html#kmin\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.heights._HeightNamed.__call__\tpygeodesy.heights._HeightNamed-class.html#__call__\npygeodesy.heights._HeightBase._k2interp2d\tpygeodesy.heights._HeightBase-class.html#_k2interp2d\npygeodesy.heights._HeightBase.numpy\tpygeodesy.heights._HeightBase-class.html#numpy\npygeodesy.heights._HeightBase._as_xyllis4\tpygeodesy.heights._HeightBase-class.html#_as_xyllis4\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.toRepr\tpygeodesy.named._Named-class.html#toRepr\npygeodesy.heights._HeightNamed._Error\tpygeodesy.heights.HeightError-class.html\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._Named.toStr\tpygeodesy.named._Named-class.html#toStr\npygeodesy.heights._HeightNamed._datum\tpygeodesy.heights._HeightNamed-class.html#_datum\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.heights._HeightBase.scipy\tpygeodesy.heights._HeightBase-class.html#scipy\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.heights._HeightBase._scipy_version\tpygeodesy.heights._HeightBase-class.html#_scipy_version\npygeodesy.heights._HeightBase._ev\tpygeodesy.heights._HeightBase-class.html#_ev\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.heights._HeightBase._ev_name\tpygeodesy.heights._HeightBase-class.html#_ev_name\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.heights._HeightBase._np_sp2\tpygeodesy.heights._HeightBase-class.html#_np_sp2\npygeodesy.named._Named.__repr__\tpygeodesy.named._Named-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.heights._HeightNamed._LLiC\tpygeodesy.points.LatLon_-class.html\npygeodesy.heights._HeightBase._interp2d\tpygeodesy.heights._HeightBase-class.html#_interp2d\npygeodesy.heights._HeightIDW\tpygeodesy.heights._HeightIDW-class.html\npygeodesy.heights._HeightIDW.knots\tpygeodesy.heights._HeightIDW-class.html#knots\npygeodesy.heights._HeightIDW._func\tpygeodesy.heights._HeightIDW-class.html#_func\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.heights._HeightNamed.height_\tpygeodesy.heights._HeightNamed-class.html#height_\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.heights._HeightIDW._knots\tpygeodesy.heights._HeightIDW-class.html#_knots\npygeodesy.heights._HeightIDW.datum\tpygeodesy.heights._HeightIDW-class.html#datum\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.heights._HeightIDW.height\tpygeodesy.heights._HeightIDW-class.html#height\npygeodesy.heights._HeightIDW.scaled\tpygeodesy.heights._HeightIDW-class.html#scaled\npygeodesy.heights._HeightIDW._heights\tpygeodesy.heights._HeightIDW-class.html#_heights\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.heights._HeightIDW.hypot\tpygeodesy.heights._HeightIDW-class.html#hypot\npygeodesy.heights._HeightIDW.radius\tpygeodesy.heights._HeightIDW-class.html#radius\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.heights._HeightIDW.wrap\tpygeodesy.heights._HeightIDW-class.html#wrap\npygeodesy.heights._HeightNamed._as_lls\tpygeodesy.heights._HeightNamed-class.html#_as_lls\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.heights._HeightIDW.__init__\tpygeodesy.heights._HeightIDW-class.html#__init__\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.heights._HeightIDW._kwds\tpygeodesy.heights._HeightIDW-class.html#_kwds\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.heights._HeightNamed._np_sp\tpygeodesy.heights._HeightNamed-class.html#_np_sp\npygeodesy.heights._HeightNamed.kmin\tpygeodesy.heights._HeightNamed-class.html#kmin\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.heights._HeightIDW.__call__\tpygeodesy.heights._HeightIDW-class.html#__call__\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.__str__\tpygeodesy.named._Named-class.html#__str__\npygeodesy.heights._HeightIDW._hIDW\tpygeodesy.heights._HeightIDW-class.html#_hIDW\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.heights._HeightIDW._distances\tpygeodesy.heights._HeightIDW-class.html#_distances\npygeodesy.heights._HeightNamed._Error\tpygeodesy.heights.HeightError-class.html\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named.toStr\tpygeodesy.named._Named-class.html#toStr\npygeodesy.heights._HeightNamed._datum\tpygeodesy.heights._HeightNamed-class.html#_datum\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.heights._HeightIDW._distancesTo\tpygeodesy.heights._HeightIDW-class.html#_distancesTo\npygeodesy.heights._HeightIDW._beta\tpygeodesy.heights._HeightIDW-class.html#_beta\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.heights._HeightIDW.beta\tpygeodesy.heights._HeightIDW-class.html#beta\npygeodesy.named._Named.toRepr\tpygeodesy.named._Named-class.html#toRepr\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.heights._HeightIDW._datum_setter\tpygeodesy.heights._HeightIDW-class.html#_datum_setter\npygeodesy.heights._HeightNamed._wrap\tpygeodesy.heights._HeightNamed-class.html#_wrap\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.heights._HeightIDW.kwds\tpygeodesy.heights._HeightIDW-class.html#kwds\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.heights._HeightNamed._kmin\tpygeodesy.heights._HeightNamed-class.html#_kmin\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.heights._HeightIDW.adjust\tpygeodesy.heights._HeightIDW-class.html#adjust\npygeodesy.heights._HeightIDW.limit\tpygeodesy.heights._HeightIDW-class.html#limit\npygeodesy.named._Named.__repr__\tpygeodesy.named._Named-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.heights._HeightNamed._LLiC\tpygeodesy.points.LatLon_-class.html\npygeodesy.heights._HeightNamed\tpygeodesy.heights._HeightNamed-class.html\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.heights._HeightNamed.height_\tpygeodesy.heights._HeightNamed-class.html#height_\npygeodesy.named._Named.__str__\tpygeodesy.named._Named-class.html#__str__\npygeodesy.heights._HeightNamed.datum\tpygeodesy.heights._HeightNamed-class.html#datum\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.heights._HeightNamed.height\tpygeodesy.heights._HeightNamed-class.html#height\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.heights._HeightNamed.wrap\tpygeodesy.heights._HeightNamed-class.html#wrap\npygeodesy.heights._HeightNamed._as_lls\tpygeodesy.heights._HeightNamed-class.html#_as_lls\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.heights._HeightNamed._kmin\tpygeodesy.heights._HeightNamed-class.html#_kmin\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.heights._HeightNamed._np_sp\tpygeodesy.heights._HeightNamed-class.html#_np_sp\npygeodesy.heights._HeightNamed.kmin\tpygeodesy.heights._HeightNamed-class.html#kmin\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.heights._HeightNamed.__call__\tpygeodesy.heights._HeightNamed-class.html#__call__\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.heights._HeightNamed._Error\tpygeodesy.heights.HeightError-class.html\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._Named.toStr\tpygeodesy.named._Named-class.html#toStr\npygeodesy.heights._HeightNamed._datum\tpygeodesy.heights._HeightNamed-class.html#_datum\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.named._Named.toRepr\tpygeodesy.named._Named-class.html#toRepr\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.heights._HeightNamed._wrap\tpygeodesy.heights._HeightNamed-class.html#_wrap\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._Named.__repr__\tpygeodesy.named._Named-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.heights._HeightNamed._LLiC\tpygeodesy.points.LatLon_-class.html\npygeodesy.interns.Str_\tpygeodesy.interns.Str_-class.html\npygeodesy.interns.Str_.__call__\tpygeodesy.interns.Str_-class.html#__call__\npygeodesy.interns.Str_.join_\tpygeodesy.interns.Str_-class.html#join_\npygeodesy.iters.LatLon2PsxyIter\tpygeodesy.iters.LatLon2PsxyIter-class.html\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.iters._BaseIter.looped\tpygeodesy.iters._BaseIter-class.html#looped\npygeodesy.iters._BaseIter._closed\tpygeodesy.iters._BaseIter-class.html#_closed\npygeodesy.named._Named.__str__\tpygeodesy.named._Named-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.iters._BaseIter.dedup\tpygeodesy.iters._BaseIter-class.html#dedup\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.iters.LatLon2PsxyIter._deg2m\tpygeodesy.iters.LatLon2PsxyIter-class.html#_deg2m\npygeodesy.iters._BaseIter._next\tpygeodesy.iters._BaseIter-class.html#_next\npygeodesy.iters.LatLon2PsxyIter.enumerate\tpygeodesy.iters.LatLon2PsxyIter-class.html#enumerate\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.iters._BaseIter.next_\tpygeodesy.iters._BaseIter-class.html#next_\npygeodesy.iters.LatLon2PsxyIter.__init__\tpygeodesy.iters.LatLon2PsxyIter-class.html#__init__\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.iters._BaseIter._loop\tpygeodesy.iters._BaseIter-class.html#_loop\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.iters._BaseIter.copies\tpygeodesy.iters._BaseIter-class.html#copies\npygeodesy.iters._BaseIter.next\tpygeodesy.iters._BaseIter-class.html#next\npygeodesy.iters._BaseIter._looped\tpygeodesy.iters._BaseIter-class.html#_looped\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.iters._BaseIter.__len__\tpygeodesy.iters._BaseIter-class.html#__len__\npygeodesy.named._Named.__repr__\tpygeodesy.named._Named-class.html#__repr__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.iters.PointsIter._Error\tpygeodesy.errors.PointsError-class.html\npygeodesy.iters.LatLon2PsxyIter.__getitem__\tpygeodesy.iters.LatLon2PsxyIter-class.html#__getitem__\npygeodesy.iters._BaseIter._len\tpygeodesy.iters._BaseIter-class.html#_len\npygeodesy.named._Named.toStr\tpygeodesy.named._Named-class.html#toStr\npygeodesy.iters._BaseIter._copies\tpygeodesy.iters._BaseIter-class.html#_copies\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.iters._BaseIter.__iter__\tpygeodesy.iters._BaseIter-class.html#__iter__\npygeodesy.named._Named.toRepr\tpygeodesy.named._Named-class.html#toRepr\npygeodesy.iters.PointsIter._base\tpygeodesy.iters.PointsIter-class.html#_base\npygeodesy.iters._BaseIter._next_dedup\tpygeodesy.iters._BaseIter-class.html#_next_dedup\npygeodesy.iters.LatLon2PsxyIter.iterate\tpygeodesy.iters.LatLon2PsxyIter-class.html#iterate\npygeodesy.iters._BaseIter._items\tpygeodesy.iters._BaseIter-class.html#_items\npygeodesy.iters._BaseIter._prev\tpygeodesy.iters._BaseIter-class.html#_prev\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.iters.LatLon2PsxyIter._point3Tuple\tpygeodesy.iters.LatLon2PsxyIter-class.html#_point3Tuple\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.iters._BaseIter._dedup\tpygeodesy.iters._BaseIter-class.html#_dedup\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.iters.LatLon2PsxyIter._name\tpygeodesy.iters.LatLon2PsxyIter-class.html#_name\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.iters.LatLon2PsxyIter._radius\tpygeodesy.iters.LatLon2PsxyIter-class.html#_radius\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.iters.LatLon2PsxyIter._wrap\tpygeodesy.iters.LatLon2PsxyIter-class.html#_wrap\npygeodesy.iters._BaseIter.loop\tpygeodesy.iters._BaseIter-class.html#loop\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.iters.PointsIter\tpygeodesy.iters.PointsIter-class.html\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.iters._BaseIter.looped\tpygeodesy.iters._BaseIter-class.html#looped\npygeodesy.iters._BaseIter._closed\tpygeodesy.iters._BaseIter-class.html#_closed\npygeodesy.named._Named.__str__\tpygeodesy.named._Named-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.iters._BaseIter.dedup\tpygeodesy.iters._BaseIter-class.html#dedup\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.iters._BaseIter._next\tpygeodesy.iters._BaseIter-class.html#_next\npygeodesy.iters.PointsIter.enumerate\tpygeodesy.iters.PointsIter-class.html#enumerate\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.iters._BaseIter.next_\tpygeodesy.iters._BaseIter-class.html#next_\npygeodesy.iters.PointsIter.__init__\tpygeodesy.iters.PointsIter-class.html#__init__\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.iters._BaseIter._loop\tpygeodesy.iters._BaseIter-class.html#_loop\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.iters._BaseIter.copies\tpygeodesy.iters._BaseIter-class.html#copies\npygeodesy.iters._BaseIter.next\tpygeodesy.iters._BaseIter-class.html#next\npygeodesy.iters._BaseIter._looped\tpygeodesy.iters._BaseIter-class.html#_looped\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.iters._BaseIter.__len__\tpygeodesy.iters._BaseIter-class.html#__len__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.iters.PointsIter._Error\tpygeodesy.errors.PointsError-class.html\npygeodesy.iters._BaseIter.__getitem__\tpygeodesy.iters._BaseIter-class.html#__getitem__\npygeodesy.iters._BaseIter._len\tpygeodesy.iters._BaseIter-class.html#_len\npygeodesy.named._Named.toStr\tpygeodesy.named._Named-class.html#toStr\npygeodesy.iters._BaseIter._copies\tpygeodesy.iters._BaseIter-class.html#_copies\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.iters._BaseIter.__iter__\tpygeodesy.iters._BaseIter-class.html#__iter__\npygeodesy.named._Named.toRepr\tpygeodesy.named._Named-class.html#toRepr\npygeodesy.iters.PointsIter._base\tpygeodesy.iters.PointsIter-class.html#_base\npygeodesy.iters._BaseIter._next_dedup\tpygeodesy.iters._BaseIter-class.html#_next_dedup\npygeodesy.iters.PointsIter.iterate\tpygeodesy.iters.PointsIter-class.html#iterate\npygeodesy.iters._BaseIter._items\tpygeodesy.iters._BaseIter-class.html#_items\npygeodesy.iters._BaseIter._prev\tpygeodesy.iters._BaseIter-class.html#_prev\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.iters._BaseIter._dedup\tpygeodesy.iters._BaseIter-class.html#_dedup\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.iters.PointsIter._name\tpygeodesy.iters.PointsIter-class.html#_name\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._Named.__repr__\tpygeodesy.named._Named-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.iters._BaseIter._wrap\tpygeodesy.iters._BaseIter-class.html#_wrap\npygeodesy.iters._BaseIter.loop\tpygeodesy.iters._BaseIter-class.html#loop\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.iters._BaseIter\tpygeodesy.iters._BaseIter-class.html\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.iters._BaseIter.looped\tpygeodesy.iters._BaseIter-class.html#looped\npygeodesy.iters._BaseIter._closed\tpygeodesy.iters._BaseIter-class.html#_closed\npygeodesy.named._Named.__str__\tpygeodesy.named._Named-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.iters._BaseIter.dedup\tpygeodesy.iters._BaseIter-class.html#dedup\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.iters._BaseIter._next\tpygeodesy.iters._BaseIter-class.html#_next\npygeodesy.iters._BaseIter.enumerate\tpygeodesy.iters._BaseIter-class.html#enumerate\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.iters._BaseIter.next_\tpygeodesy.iters._BaseIter-class.html#next_\npygeodesy.iters._BaseIter.__init__\tpygeodesy.iters._BaseIter-class.html#__init__\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.iters._BaseIter._loop\tpygeodesy.iters._BaseIter-class.html#_loop\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.iters._BaseIter.copies\tpygeodesy.iters._BaseIter-class.html#copies\npygeodesy.iters._BaseIter.next\tpygeodesy.iters._BaseIter-class.html#next\npygeodesy.iters._BaseIter._looped\tpygeodesy.iters._BaseIter-class.html#_looped\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.iters._BaseIter.__len__\tpygeodesy.iters._BaseIter-class.html#__len__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.iters._BaseIter._Error\tpygeodesy.errors.LenError-class.html\npygeodesy.iters._BaseIter.__getitem__\tpygeodesy.iters._BaseIter-class.html#__getitem__\npygeodesy.iters._BaseIter._len\tpygeodesy.iters._BaseIter-class.html#_len\npygeodesy.named._Named.toStr\tpygeodesy.named._Named-class.html#toStr\npygeodesy.iters._BaseIter._copies\tpygeodesy.iters._BaseIter-class.html#_copies\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.iters._BaseIter.__iter__\tpygeodesy.iters._BaseIter-class.html#__iter__\npygeodesy.named._Named.toRepr\tpygeodesy.named._Named-class.html#toRepr\npygeodesy.iters._BaseIter._next_dedup\tpygeodesy.iters._BaseIter-class.html#_next_dedup\npygeodesy.iters._BaseIter.iterate\tpygeodesy.iters._BaseIter-class.html#iterate\npygeodesy.iters._BaseIter._items\tpygeodesy.iters._BaseIter-class.html#_items\npygeodesy.iters._BaseIter._prev\tpygeodesy.iters._BaseIter-class.html#_prev\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.iters._BaseIter._dedup\tpygeodesy.iters._BaseIter-class.html#_dedup\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.iters._BaseIter._name\tpygeodesy.iters._BaseIter-class.html#_name\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._Named.__repr__\tpygeodesy.named._Named-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.iters._BaseIter._wrap\tpygeodesy.iters._BaseIter-class.html#_wrap\npygeodesy.iters._BaseIter.loop\tpygeodesy.iters._BaseIter-class.html#loop\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.karney.Area3Tuple\tpygeodesy.karney.Area3Tuple-class.html\npygeodesy.named._NamedTuple.toRepr\tpygeodesy.named._NamedTuple-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._NamedTuple.toUnits\tpygeodesy.named._NamedTuple-class.html#toUnits\npygeodesy.named._NamedTuple._validate\tpygeodesy.named._NamedTuple-class.html#_validate\npygeodesy.named._NamedTuple.__str__\tpygeodesy.named._NamedTuple-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._NamedTuple._DOT_\tpygeodesy.named._NamedTuple-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._NamedTuple.reUnit\tpygeodesy.named._NamedTuple-class.html#reUnit\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.karney.Area3Tuple._Names_\tpygeodesy.karney.Area3Tuple-class.html#_Names_\npygeodesy.named._NamedTuple.__setattr__\tpygeodesy.named._NamedTuple-class.html#__setattr__\npygeodesy.named._NamedTuple.__new__\tpygeodesy.named._NamedTuple-class.html#__new__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._NamedTuple._validated\tpygeodesy.named._NamedTuple-class.html#_validated\npygeodesy.named._NamedTuple.__getattr__\tpygeodesy.named._NamedTuple-class.html#__getattr__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._NamedTuple._xtend\tpygeodesy.named._NamedTuple-class.html#_xtend\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._NamedTuple.dup\tpygeodesy.named._NamedTuple-class.html#dup\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedTuple.toStr\tpygeodesy.named._NamedTuple-class.html#toStr\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedTuple.units\tpygeodesy.named._NamedTuple-class.html#units\npygeodesy.named._NamedTuple.iterunits\tpygeodesy.named._NamedTuple-class.html#iterunits\npygeodesy.named._NamedTuple.iteritems\tpygeodesy.named._NamedTuple-class.html#iteritems\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._NamedTuple.items\tpygeodesy.named._NamedTuple-class.html#items\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedTuple.__delattr__\tpygeodesy.named._NamedTuple-class.html#__delattr__\npygeodesy.named._NamedTuple.__repr__\tpygeodesy.named._NamedTuple-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._NamedTuple.__hash__\tpygeodesy.named._NamedTuple-class.html#__hash__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.karney.Area3Tuple._Units_\tpygeodesy.karney.Area3Tuple-class.html#_Units_\npygeodesy.karney.Caps\tpygeodesy.karney.Caps-class.html\npygeodesy.karney.Caps._DEBUG_DIRECT_LINE\tpygeodesy.karney.Caps-class.html#_DEBUG_DIRECT_LINE\npygeodesy.karney.Caps.GEODESICSCALE\tpygeodesy.karney.Caps-class.html#GEODESICSCALE\npygeodesy.karney.Caps._DEBUG_ALL\tpygeodesy.karney.Caps-class.html#_DEBUG_ALL\npygeodesy.karney.Caps._DEBUG_AREA\tpygeodesy.karney.Caps-class.html#_DEBUG_AREA\npygeodesy.karney.Caps._SALP_CALPs_\tpygeodesy.karney.Caps-class.html#_SALP_CALPs_\npygeodesy.karney.Caps._OUT_MASK\tpygeodesy.karney.Caps-class.html#_OUT_MASK\npygeodesy.karney.Caps.LINE_OFF\tpygeodesy.karney.Caps-class.html#LINE_OFF\npygeodesy.karney.Caps.NONFINITONAN\tpygeodesy.karney.Caps-class.html#NONFINITONAN\npygeodesy.karney.Caps.AZIMUTH_DISTANCE\tpygeodesy.karney.Caps-class.html#AZIMUTH_DISTANCE\npygeodesy.karney.Caps._CAP_2\tpygeodesy.karney.Caps-class.html#_CAP_2\npygeodesy.karney.Caps._CAP_3\tpygeodesy.karney.Caps-class.html#_CAP_3\npygeodesy.karney.Caps._CAP_1\tpygeodesy.karney.Caps-class.html#_CAP_1\npygeodesy.karney.Caps._CAP_4\tpygeodesy.karney.Caps-class.html#_CAP_4\npygeodesy.karney.Caps.AREA\tpygeodesy.karney.Caps-class.html#AREA\npygeodesy.karney.Caps.EMPTY\tpygeodesy.karney.Caps-class.html#EMPTY\npygeodesy.karney.Caps.REVERSE2\tpygeodesy.karney.Caps-class.html#REVERSE2\npygeodesy.karney.Caps._INVERSE3\tpygeodesy.karney.Caps-class.html#_INVERSE3\npygeodesy.karney.Caps.LATITUDE_LONGITUDE_AREA\tpygeodesy.karney.Caps-class.html#LATITUDE_LONGITUDE_AREA\npygeodesy.karney.Caps.AZIMUTH_DISTANCE_AREA\tpygeodesy.karney.Caps-class.html#AZIMUTH_DISTANCE_AREA\npygeodesy.karney.Caps.LONG_UNROLL\tpygeodesy.karney.Caps-class.html#LONG_UNROLL\npygeodesy.karney.Caps._DEBUG_INVERSE\tpygeodesy.karney.Caps-class.html#_DEBUG_INVERSE\npygeodesy.karney.Caps.toStr\tpygeodesy.karney.Caps-class.html#toStr\npygeodesy.karney.Caps._DEBUG_DIRECT\tpygeodesy.karney.Caps-class.html#_DEBUG_DIRECT\npygeodesy.karney.Caps._AZIMUTH_LATITUDE_LONG_UNROLL\tpygeodesy.karney.Caps-class.html#_AZIMUTH_LATITUDE_LONG_UNROLL\npygeodesy.karney.Caps.LONGITUDE\tpygeodesy.karney.Caps-class.html#LONGITUDE\npygeodesy.karney.Caps.STANDARD\tpygeodesy.karney.Caps-class.html#STANDARD\npygeodesy.karney.Caps.LATITUDE_LONGITUDE\tpygeodesy.karney.Caps-class.html#LATITUDE_LONGITUDE\npygeodesy.karney.Caps.STANDARD_LINE\tpygeodesy.karney.Caps-class.html#STANDARD_LINE\npygeodesy.karney.Caps._REDUCEDLENGTH_GEODESICSCALE\tpygeodesy.karney.Caps-class.html#_REDUCEDLENGTH_GEODESICSCALE\npygeodesy.karney.Caps.AZIMUTH\tpygeodesy.karney.Caps-class.html#AZIMUTH\npygeodesy.karney.Caps._CAP_1p\tpygeodesy.karney.Caps-class.html#_CAP_1p\npygeodesy.karney.Caps._AZIMUTH_LATITUDE_LONGITUDE\tpygeodesy.karney.Caps-class.html#_AZIMUTH_LATITUDE_LONGITUDE\npygeodesy.karney.Caps._CAP_ALL\tpygeodesy.karney.Caps-class.html#_CAP_ALL\npygeodesy.karney.Caps.DISTANCE\tpygeodesy.karney.Caps-class.html#DISTANCE\npygeodesy.karney.Caps.ALL\tpygeodesy.karney.Caps-class.html#ALL\npygeodesy.karney.Caps.REDUCEDLENGTH\tpygeodesy.karney.Caps-class.html#REDUCEDLENGTH\npygeodesy.karney.Caps.items\tpygeodesy.karney.Caps-class.html#items\npygeodesy.karney.Caps.DISTANCE_IN\tpygeodesy.karney.Caps-class.html#DISTANCE_IN\npygeodesy.karney.Caps.LINE_CAPS\tpygeodesy.karney.Caps-class.html#LINE_CAPS\npygeodesy.karney.Caps._DEBUG_LINE\tpygeodesy.karney.Caps-class.html#_DEBUG_LINE\npygeodesy.karney.Caps._OUT_ALL\tpygeodesy.karney.Caps-class.html#_OUT_ALL\npygeodesy.karney.Caps.LATITUDE\tpygeodesy.karney.Caps-class.html#LATITUDE\npygeodesy.karney.Caps._DIRECT3\tpygeodesy.karney.Caps-class.html#_DIRECT3\npygeodesy.karney.Direct9Tuple\tpygeodesy.karney.Direct9Tuple-class.html\npygeodesy.named._NamedTuple.toRepr\tpygeodesy.named._NamedTuple-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._NamedTuple.toUnits\tpygeodesy.named._NamedTuple-class.html#toUnits\npygeodesy.named._NamedTuple._validate\tpygeodesy.named._NamedTuple-class.html#_validate\npygeodesy.named._NamedTuple.__str__\tpygeodesy.named._NamedTuple-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._NamedTuple._DOT_\tpygeodesy.named._NamedTuple-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._NamedTuple.reUnit\tpygeodesy.named._NamedTuple-class.html#reUnit\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.karney.Direct9Tuple._Names_\tpygeodesy.karney.Direct9Tuple-class.html#_Names_\npygeodesy.named._NamedTuple.__setattr__\tpygeodesy.named._NamedTuple-class.html#__setattr__\npygeodesy.named._NamedTuple.__new__\tpygeodesy.named._NamedTuple-class.html#__new__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._NamedTuple._validated\tpygeodesy.named._NamedTuple-class.html#_validated\npygeodesy.named._NamedTuple.__getattr__\tpygeodesy.named._NamedTuple-class.html#__getattr__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._NamedTuple._xtend\tpygeodesy.named._NamedTuple-class.html#_xtend\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._NamedTuple.units\tpygeodesy.named._NamedTuple-class.html#units\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedTuple.toStr\tpygeodesy.named._NamedTuple-class.html#toStr\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedTuple.dup\tpygeodesy.named._NamedTuple-class.html#dup\npygeodesy.named._NamedTuple.iterunits\tpygeodesy.named._NamedTuple-class.html#iterunits\npygeodesy.named._NamedTuple.iteritems\tpygeodesy.named._NamedTuple-class.html#iteritems\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._NamedTuple.items\tpygeodesy.named._NamedTuple-class.html#items\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedTuple.__delattr__\tpygeodesy.named._NamedTuple-class.html#__delattr__\npygeodesy.named._NamedTuple.__repr__\tpygeodesy.named._NamedTuple-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._NamedTuple.__hash__\tpygeodesy.named._NamedTuple-class.html#__hash__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.karney.Direct9Tuple._Units_\tpygeodesy.karney.Direct9Tuple-class.html#_Units_\npygeodesy.karney.GDict\tpygeodesy.karney.GDict-class.html\npygeodesy.named.ADict.toRepr\tpygeodesy.named.ADict-class.html#toRepr\npygeodesy.karney.GDict.toRhumbSolve7Tuple\tpygeodesy.karney.GDict-class.html#toRhumbSolve7Tuple\npygeodesy.karney.GDict.toGeodSolve12Tuple\tpygeodesy.karney.GDict-class.html#toGeodSolve12Tuple\npygeodesy.karney.GDict._toNAN\tpygeodesy.karney.GDict-class.html#_toNAN\npygeodesy.karney.GDict._toTuple\tpygeodesy.karney.GDict-class.html#_toTuple\npygeodesy.named.ADict.__setattr__\tpygeodesy.named.ADict-class.html#__setattr__\npygeodesy.karney.GDict.toRhumb8Tuple\tpygeodesy.karney.GDict-class.html#toRhumb8Tuple\npygeodesy.karney.GDict.toInverse10Tuple\tpygeodesy.karney.GDict-class.html#toInverse10Tuple\npygeodesy.karney.GDict.toGeod3Solve8Tuple\tpygeodesy.karney.GDict-class.html#toGeod3Solve8Tuple\npygeodesy.named.ADict._toT\tpygeodesy.named.ADict-class.html#_toT\npygeodesy.karney.GDict.toRhumb7Tuple\tpygeodesy.karney.GDict-class.html#toRhumb7Tuple\npygeodesy.named.ADict.__getattr__\tpygeodesy.named.ADict-class.html#__getattr__\npygeodesy.karney.GDict.toDirect9Tuple\tpygeodesy.karney.GDict-class.html#toDirect9Tuple\npygeodesy.named.ADict._toL\tpygeodesy.named.ADict-class.html#_toL\npygeodesy.karney.GDict._unCaps\tpygeodesy.karney.GDict-class.html#_unCaps\npygeodesy.named.ADict.__str__\tpygeodesy.named.ADict-class.html#__str__\npygeodesy.named.ADict._AttributeError\tpygeodesy.named.ADict-class.html#_AttributeError\npygeodesy.named.ADict._iteration\tpygeodesy.named.ADict-class.html#_iteration\npygeodesy.named.ADict.toStr\tpygeodesy.named.ADict-class.html#toStr\npygeodesy.karney.GDict._2X\tpygeodesy.karney.GDict-class.html#_2X\npygeodesy.named.ADict.set_\tpygeodesy.named.ADict-class.html#set_\npygeodesy.named.ADict.iteration\tpygeodesy.named.ADict-class.html#iteration\npygeodesy.named.ADict.typename\tpygeodesy.named.ADict-class.html#typename\npygeodesy.named.ADict.__repr__\tpygeodesy.named.ADict-class.html#__repr__\npygeodesy.karney.Inverse10Tuple\tpygeodesy.karney.Inverse10Tuple-class.html\npygeodesy.named._NamedTuple.toRepr\tpygeodesy.named._NamedTuple-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._NamedTuple.toUnits\tpygeodesy.named._NamedTuple-class.html#toUnits\npygeodesy.named._NamedTuple._validate\tpygeodesy.named._NamedTuple-class.html#_validate\npygeodesy.named._NamedTuple.__str__\tpygeodesy.named._NamedTuple-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._NamedTuple._DOT_\tpygeodesy.named._NamedTuple-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._NamedTuple.reUnit\tpygeodesy.named._NamedTuple-class.html#reUnit\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.karney.Inverse10Tuple._Names_\tpygeodesy.karney.Inverse10Tuple-class.html#_Names_\npygeodesy.named._NamedTuple.__setattr__\tpygeodesy.named._NamedTuple-class.html#__setattr__\npygeodesy.named._NamedTuple.__new__\tpygeodesy.named._NamedTuple-class.html#__new__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._NamedTuple._validated\tpygeodesy.named._NamedTuple-class.html#_validated\npygeodesy.named._NamedTuple.__getattr__\tpygeodesy.named._NamedTuple-class.html#__getattr__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._NamedTuple._xtend\tpygeodesy.named._NamedTuple-class.html#_xtend\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._NamedTuple.units\tpygeodesy.named._NamedTuple-class.html#units\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedTuple.toStr\tpygeodesy.named._NamedTuple-class.html#toStr\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedTuple.dup\tpygeodesy.named._NamedTuple-class.html#dup\npygeodesy.named._NamedTuple.iterunits\tpygeodesy.named._NamedTuple-class.html#iterunits\npygeodesy.named._NamedTuple.iteritems\tpygeodesy.named._NamedTuple-class.html#iteritems\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.karney.Inverse10Tuple.toGDict\tpygeodesy.karney.Inverse10Tuple-class.html#toGDict\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._NamedTuple.items\tpygeodesy.named._NamedTuple-class.html#items\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedTuple.__delattr__\tpygeodesy.named._NamedTuple-class.html#__delattr__\npygeodesy.named._NamedTuple.__repr__\tpygeodesy.named._NamedTuple-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._NamedTuple.__hash__\tpygeodesy.named._NamedTuple-class.html#__hash__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.karney.Inverse10Tuple._Units_\tpygeodesy.karney.Inverse10Tuple-class.html#_Units_\npygeodesy.karney.Rhumb8Tuple\tpygeodesy.karney.Rhumb8Tuple-class.html\npygeodesy.named._NamedTuple.toRepr\tpygeodesy.named._NamedTuple-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._NamedTuple.toUnits\tpygeodesy.named._NamedTuple-class.html#toUnits\npygeodesy.named._NamedTuple._validate\tpygeodesy.named._NamedTuple-class.html#_validate\npygeodesy.named._NamedTuple.__str__\tpygeodesy.named._NamedTuple-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._NamedTuple._DOT_\tpygeodesy.named._NamedTuple-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._NamedTuple.reUnit\tpygeodesy.named._NamedTuple-class.html#reUnit\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.karney.Rhumb8Tuple._Names_\tpygeodesy.karney.Rhumb8Tuple-class.html#_Names_\npygeodesy.named._NamedTuple.__setattr__\tpygeodesy.named._NamedTuple-class.html#__setattr__\npygeodesy.named._NamedTuple.__new__\tpygeodesy.named._NamedTuple-class.html#__new__\npygeodesy.karney.Rhumb8Tuple.toInverse10Tuple\tpygeodesy.karney.Rhumb8Tuple-class.html#toInverse10Tuple\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._NamedTuple._validated\tpygeodesy.named._NamedTuple-class.html#_validated\npygeodesy.named._NamedTuple.__getattr__\tpygeodesy.named._NamedTuple-class.html#__getattr__\npygeodesy.karney.Rhumb8Tuple.toDirect9Tuple\tpygeodesy.karney.Rhumb8Tuple-class.html#toDirect9Tuple\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._NamedTuple._xtend\tpygeodesy.named._NamedTuple-class.html#_xtend\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._NamedTuple.units\tpygeodesy.named._NamedTuple-class.html#units\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedTuple.toStr\tpygeodesy.named._NamedTuple-class.html#toStr\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedTuple.dup\tpygeodesy.named._NamedTuple-class.html#dup\npygeodesy.named._NamedTuple.iterunits\tpygeodesy.named._NamedTuple-class.html#iterunits\npygeodesy.named._NamedTuple.iteritems\tpygeodesy.named._NamedTuple-class.html#iteritems\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._NamedTuple.items\tpygeodesy.named._NamedTuple-class.html#items\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedTuple.__delattr__\tpygeodesy.named._NamedTuple-class.html#__delattr__\npygeodesy.named._NamedTuple.__repr__\tpygeodesy.named._NamedTuple-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._NamedTuple.__hash__\tpygeodesy.named._NamedTuple-class.html#__hash__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.karney.Rhumb8Tuple._Units_\tpygeodesy.karney.Rhumb8Tuple-class.html#_Units_\npygeodesy.karney.Rhumb8Tuple._to7Tuple\tpygeodesy.karney.Rhumb8Tuple-class.html#_to7Tuple\npygeodesy.karney._CapsBase\tpygeodesy.karney._CapsBase-class.html\npygeodesy.named._NamedBase.toRepr\tpygeodesy.named._NamedBase-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.karney._CapsBase.GEODESICSCALE\tpygeodesy.karney._CapsBase-class.html#GEODESICSCALE\npygeodesy.named._NamedBase.__str__\tpygeodesy.named._NamedBase-class.html#__str__\npygeodesy.named._NamedBase.others\tpygeodesy.named._NamedBase-class.html#others\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.karney._CapsBase.LATITUDE\tpygeodesy.karney._CapsBase-class.html#LATITUDE\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.karney._CapsBase.LINE_OFF\tpygeodesy.karney._CapsBase-class.html#LINE_OFF\npygeodesy.karney._CapsBase.NONFINITONAN\tpygeodesy.karney._CapsBase-class.html#NONFINITONAN\npygeodesy.karney._CapsBase.EMPTY\tpygeodesy.karney._CapsBase-class.html#EMPTY\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.karney._CapsBase._debug\tpygeodesy.karney._CapsBase-class.html#_debug\npygeodesy.karney._CapsBase.AREA\tpygeodesy.karney._CapsBase-class.html#AREA\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.karney._CapsBase.LONG_UNROLL\tpygeodesy.karney._CapsBase-class.html#LONG_UNROLL\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._NamedBase.toStr\tpygeodesy.named._NamedBase-class.html#toStr\npygeodesy.karney._CapsBase.LONGITUDE\tpygeodesy.karney._CapsBase-class.html#LONGITUDE\npygeodesy.karney._CapsBase.caps\tpygeodesy.karney._CapsBase-class.html#caps\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.karney._CapsBase.STANDARD_LINE\tpygeodesy.karney._CapsBase-class.html#STANDARD_LINE\npygeodesy.karney._CapsBase._caps\tpygeodesy.karney._CapsBase-class.html#_caps\npygeodesy.karney._CapsBase.AZIMUTH\tpygeodesy.karney._CapsBase-class.html#AZIMUTH\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.karney._CapsBase.STANDARD\tpygeodesy.karney._CapsBase-class.html#STANDARD\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.karney._CapsBase.DISTANCE\tpygeodesy.karney._CapsBase-class.html#DISTANCE\npygeodesy.karney._CapsBase.ALL\tpygeodesy.karney._CapsBase-class.html#ALL\npygeodesy.karney._CapsBase.REDUCEDLENGTH\tpygeodesy.karney._CapsBase-class.html#REDUCEDLENGTH\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.karney._CapsBase._iter2tion\tpygeodesy.karney._CapsBase-class.html#_iter2tion\npygeodesy.karney._CapsBase.DISTANCE_IN\tpygeodesy.karney._CapsBase-class.html#DISTANCE_IN\npygeodesy.karney._CapsBase.LINE_CAPS\tpygeodesy.karney._CapsBase-class.html#LINE_CAPS\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedBase.__repr__\tpygeodesy.named._NamedBase-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.karney._CapsBase.debug\tpygeodesy.karney._CapsBase-class.html#debug\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.karney._CapsBase.caps_\tpygeodesy.karney._CapsBase-class.html#caps_\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.ktm.KTMError\tpygeodesy.ktm.KTMError-class.html\npygeodesy.ktm.KTransverseMercator\tpygeodesy.ktm.KTransverseMercator-class.html\npygeodesy.named._NamedBase.toRepr\tpygeodesy.named._NamedBase-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.ktm.KTransverseMercator._mTM\tpygeodesy.ktm.KTransverseMercator-class.html#_mTM\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedBase.__str__\tpygeodesy.named._NamedBase-class.html#__str__\npygeodesy.named._NamedBase.others\tpygeodesy.named._NamedBase-class.html#others\npygeodesy.ktm.KTransverseMercator.datum\tpygeodesy.ktm.KTransverseMercator-class.html#datum\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.ktm.KTransverseMercator._k0\tpygeodesy.ktm.KTransverseMercator-class.html#_k0\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.ktm.KTransverseMercator._lat0\tpygeodesy.ktm.KTransverseMercator-class.html#_lat0\npygeodesy.ktm.KTransverseMercator.raiser\tpygeodesy.ktm.KTransverseMercator-class.html#raiser\npygeodesy.ktm.KTransverseMercator.equatoradius\tpygeodesy.ktm.KTransverseMercator-class.html#equatoradius\npygeodesy.ktm.KTransverseMercator._Bet\tpygeodesy.ktm.KTransverseMercator-class.html#_Bet\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.ktm.KTransverseMercator._raiser\tpygeodesy.ktm.KTransverseMercator-class.html#_raiser\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.ktm.KTransverseMercator.ellipsoid\tpygeodesy.ktm.KTransverseMercator-class.html#ellipsoid\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.ktm.KTransverseMercator.TMorder\tpygeodesy.ktm.KTransverseMercator-class.html#TMorder\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.ktm.KTransverseMercator.k0\tpygeodesy.ktm.KTransverseMercator-class.html#k0\npygeodesy.ktm.KTransverseMercator.flattening\tpygeodesy.ktm.KTransverseMercator-class.html#flattening\npygeodesy.ktm.KTransverseMercator.__init__\tpygeodesy.ktm.KTransverseMercator-class.html#__init__\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.ktm.KTransverseMercator.forward\tpygeodesy.ktm.KTransverseMercator-class.html#forward\npygeodesy.ktm.KTransverseMercator._lon0\tpygeodesy.ktm.KTransverseMercator-class.html#_lon0\npygeodesy.ktm.KTransverseMercator._k0_b1\tpygeodesy.ktm.KTransverseMercator-class.html#_k0_b1\npygeodesy.ktm.KTransverseMercator.a\tpygeodesy.ktm.KTransverseMercator-class.html#a\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.ktm.KTransverseMercator.toStr\tpygeodesy.ktm.KTransverseMercator-class.html#toStr\npygeodesy.ktm.KTransverseMercator._datum\tpygeodesy.ktm.KTransverseMercator-class.html#_datum\npygeodesy.ktm.KTransverseMercator._b1\tpygeodesy.ktm.KTransverseMercator-class.html#_b1\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.ktm.KTransverseMercator.lon0\tpygeodesy.ktm.KTransverseMercator-class.html#lon0\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.ktm.KTransverseMercator._Alp\tpygeodesy.ktm.KTransverseMercator-class.html#_Alp\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.ktm.KTransverseMercator.reset\tpygeodesy.ktm.KTransverseMercator-class.html#reset\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.ktm.KTransverseMercator.reverse\tpygeodesy.ktm.KTransverseMercator-class.html#reverse\npygeodesy.ktm.KTransverseMercator.f\tpygeodesy.ktm.KTransverseMercator-class.html#f\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedBase.__repr__\tpygeodesy.named._NamedBase-class.html#__repr__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.ktm.KTransverseMercator._k0_a1\tpygeodesy.ktm.KTransverseMercator-class.html#_k0_a1\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.latlonBase.LatLonBase\tpygeodesy.latlonBase.LatLonBase-class.html\npygeodesy.latlonBase.LatLonBase.toCartesian\tpygeodesy.latlonBase.LatLonBase-class.html#toCartesian\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.latlonBase.LatLonBase.__str__\tpygeodesy.latlonBase.LatLonBase-class.html#__str__\npygeodesy.latlonBase.LatLonBase.datum\tpygeodesy.latlonBase.LatLonBase-class.html#datum\npygeodesy.latlonBase.LatLonBase.philam2\tpygeodesy.latlonBase.LatLonBase-class.html#philam2\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.latlonBase.LatLonBase.to3llh\tpygeodesy.latlonBase.LatLonBase-class.html#to3llh\npygeodesy.latlonBase.LatLonBase.isnormal\tpygeodesy.latlonBase.LatLonBase-class.html#isnormal\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.latlonBase.LatLonBase.flatLocalTo\tpygeodesy.latlonBase.LatLonBase-class.html#flatLocalTo\npygeodesy.latlonBase.LatLonBase._N_vector\tpygeodesy.latlonBase.LatLonBase-class.html#_N_vector\npygeodesy.latlonBase.LatLonBase._distanceTo\tpygeodesy.latlonBase.LatLonBase-class.html#_distanceTo\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.latlonBase.LatLonBase.isequalTo3\tpygeodesy.latlonBase.LatLonBase-class.html#isequalTo3\npygeodesy.latlonBase.LatLonBase.nearestTo\tpygeodesy.latlonBase.LatLonBase-class.html#nearestTo\npygeodesy.ecefLocals._EcefLocal.toEnu\tpygeodesy.ecefLocals._EcefLocal-class.html#toEnu\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.latlonBase.LatLonBase.isantipode\tpygeodesy.latlonBase.LatLonBase-class.html#isantipode\npygeodesy.latlonBase.LatLonBase._ecef9\tpygeodesy.latlonBase.LatLonBase-class.html#_ecef9\npygeodesy.latlonBase.LatLonBase._rhumb3dict\tpygeodesy.latlonBase.LatLonBase-class.html#_rhumb3dict\npygeodesy.latlonBase.LatLonBase.to2ab\tpygeodesy.latlonBase.LatLonBase-class.html#to2ab\npygeodesy.latlonBase.LatLonBase.toStr\tpygeodesy.latlonBase.LatLonBase-class.html#toStr\npygeodesy.latlonBase.LatLonBase._datum\tpygeodesy.latlonBase.LatLonBase-class.html#_datum\npygeodesy.latlonBase.LatLonBase.PointsIter\tpygeodesy.latlonBase.LatLonBase-class.html#PointsIter\npygeodesy.ecefLocals._EcefLocal.toXyz\tpygeodesy.ecefLocals._EcefLocal-class.html#toXyz\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.latlonBase.LatLonBase.antipode\tpygeodesy.latlonBase.LatLonBase-class.html#antipode\npygeodesy.latlonBase.LatLonBase.vincentysTo\tpygeodesy.latlonBase.LatLonBase-class.html#vincentysTo\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.latlonBase.LatLonBase.toEcef\tpygeodesy.latlonBase.LatLonBase-class.html#toEcef\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.latlonBase.LatLonBase.clipid\tpygeodesy.latlonBase.LatLonBase-class.html#clipid\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.latlonBase.LatLonBase._Ecef_forward\tpygeodesy.latlonBase.LatLonBase-class.html#_Ecef_forward\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._NamedBase.toRepr\tpygeodesy.named._NamedBase-class.html#toRepr\npygeodesy.latlonBase.LatLonBase.isantipodeTo\tpygeodesy.latlonBase.LatLonBase-class.html#isantipodeTo\npygeodesy.ecefLocals._EcefLocal._ltp\tpygeodesy.ecefLocals._EcefLocal-class.html#_ltp\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.latlonBase.LatLonBase.toDatum\tpygeodesy.latlonBase.LatLonBase-class.html#toDatum\npygeodesy.ecefLocals._EcefLocal.toLtp\tpygeodesy.ecefLocals._EcefLocal-class.html#toLtp\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.latlonBase.LatLonBase.thomasTo\tpygeodesy.latlonBase.LatLonBase-class.html#thomasTo\npygeodesy.latlonBase.LatLonBase.ellipsoidalLatLon\tpygeodesy.latlonBase.LatLonBase-class.html#ellipsoidalLatLon\npygeodesy.latlonBase.LatLonBase.latlon\tpygeodesy.latlonBase.LatLonBase-class.html#latlon\npygeodesy.latlonBase.LatLonBase.circum4_\tpygeodesy.latlonBase.LatLonBase-class.html#circum4_\npygeodesy.latlonBase.LatLonBase.haversineTo\tpygeodesy.latlonBase.LatLonBase-class.html#haversineTo\npygeodesy.latlonBase.LatLonBase.destinationXyz\tpygeodesy.latlonBase.LatLonBase-class.html#destinationXyz\npygeodesy.latlonBase.LatLonBase.philam\tpygeodesy.latlonBase.LatLonBase-class.html#philam\npygeodesy.ecefLocals._EcefLocal.toAer\tpygeodesy.ecefLocals._EcefLocal-class.html#toAer\npygeodesy.latlonBase.LatLonBase.chordTo\tpygeodesy.latlonBase.LatLonBase-class.html#chordTo\npygeodesy.latlonBase.LatLonBase.__ne__\tpygeodesy.latlonBase.LatLonBase-class.html#__ne__\npygeodesy.latlonBase.LatLonBase.toWm\tpygeodesy.latlonBase.LatLonBase-class.html#toWm\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.latlonBase.LatLonBase.sphericalLatLon\tpygeodesy.latlonBase.LatLonBase-class.html#sphericalLatLon\npygeodesy.latlonBase.LatLonBase.equals\tpygeodesy.latlonBase.LatLonBase-class.html#equals\npygeodesy.latlonBase.LatLonBase.circin6\tpygeodesy.latlonBase.LatLonBase-class.html#circin6\npygeodesy.latlonBase.LatLonBase.nearestOn6\tpygeodesy.latlonBase.LatLonBase-class.html#nearestOn6\npygeodesy.latlonBase.LatLonBase.rhumbIntersecant2\tpygeodesy.latlonBase.LatLonBase-class.html#rhumbIntersecant2\npygeodesy.latlonBase.LatLonBase.cosineLawTo\tpygeodesy.latlonBase.LatLonBase-class.html#cosineLawTo\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.latlonBase.LatLonBase.toVector3d\tpygeodesy.latlonBase.LatLonBase-class.html#toVector3d\npygeodesy.latlonBase.LatLonBase._lat\tpygeodesy.latlonBase.LatLonBase-class.html#_lat\npygeodesy.latlonBase.LatLonBase.cosineForsytheAndoyerLambertTo\tpygeodesy.latlonBase.LatLonBase-class.html#cosineForsytheAndoyerLambertTo\npygeodesy.latlonBase.LatLonBase.to3xyz\tpygeodesy.latlonBase.LatLonBase-class.html#to3xyz\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.latlonBase.LatLonBase.compassAngleTo\tpygeodesy.latlonBase.LatLonBase-class.html#compassAngleTo\npygeodesy.named._NamedBase.__repr__\tpygeodesy.named._NamedBase-class.html#__repr__\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.latlonBase.LatLonBase.latlon_\tpygeodesy.latlonBase.LatLonBase-class.html#latlon_\npygeodesy.latlonBase.LatLonBase.flatPolarTo\tpygeodesy.latlonBase.LatLonBase-class.html#flatPolarTo\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.latlonBase.LatLonBase.boundsOf\tpygeodesy.latlonBase.LatLonBase-class.html#boundsOf\npygeodesy.latlonBase.LatLonBase._havg\tpygeodesy.latlonBase.LatLonBase-class.html#_havg\npygeodesy.latlonBase.LatLonBase.xyz\tpygeodesy.latlonBase.LatLonBase-class.html#xyz\npygeodesy.named._NamedBase.others\tpygeodesy.named._NamedBase-class.html#others\npygeodesy.latlonBase.LatLonBase.isEllipsoidal\tpygeodesy.latlonBase.LatLonBase-class.html#isEllipsoidal\npygeodesy.latlonBase.LatLonBase.height\tpygeodesy.latlonBase.LatLonBase-class.html#height\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.latlonBase.LatLonBase.equals3\tpygeodesy.latlonBase.LatLonBase-class.html#equals3\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.latlonBase.LatLonBase.rhumbDestination\tpygeodesy.latlonBase.LatLonBase-class.html#rhumbDestination\npygeodesy.latlonBase.LatLonBase._heigHt\tpygeodesy.latlonBase.LatLonBase-class.html#_heigHt\npygeodesy.latlonBase.LatLonBase.points2\tpygeodesy.latlonBase.LatLonBase-class.html#points2\npygeodesy.latlonBase.LatLonBase.lon\tpygeodesy.latlonBase.LatLonBase-class.html#lon\npygeodesy.latlonBase.LatLonBase.xyzh\tpygeodesy.latlonBase.LatLonBase-class.html#xyzh\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.latlonBase.LatLonBase.hubenyTo\tpygeodesy.latlonBase.LatLonBase-class.html#hubenyTo\npygeodesy.latlonBase.LatLonBase.heightStr\tpygeodesy.latlonBase.LatLonBase-class.html#heightStr\npygeodesy.ecefLocals._EcefLocal.Ecef\tpygeodesy.ecefLocals._EcefLocal-class.html#Ecef\npygeodesy.latlonBase.LatLonBase.latlon2\tpygeodesy.latlonBase.LatLonBase-class.html#latlon2\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.latlonBase.LatLonBase.circum3\tpygeodesy.latlonBase.LatLonBase-class.html#circum3\npygeodesy.latlonBase.LatLonBase._rhumb3\tpygeodesy.latlonBase.LatLonBase-class.html#_rhumb3\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.latlonBase.LatLonBase.__eq__\tpygeodesy.latlonBase.LatLonBase-class.html#__eq__\npygeodesy.latlonBase.LatLonBase._lon\tpygeodesy.latlonBase.LatLonBase-class.html#_lon\npygeodesy.latlonBase.LatLonBase.latlonheight\tpygeodesy.latlonBase.LatLonBase-class.html#latlonheight\npygeodesy.latlonBase.LatLonBase.height4\tpygeodesy.latlonBase.LatLonBase-class.html#height4\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.latlonBase.LatLonBase.xyz3\tpygeodesy.latlonBase.LatLonBase-class.html#xyz3\npygeodesy.latlonBase.LatLonBase.bounds\tpygeodesy.latlonBase.LatLonBase-class.html#bounds\npygeodesy.latlonBase.LatLonBase.hartzell\tpygeodesy.latlonBase.LatLonBase-class.html#hartzell\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.latlonBase.LatLonBase.rhumbAzimuthTo\tpygeodesy.latlonBase.LatLonBase-class.html#rhumbAzimuthTo\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.ecefLocals._EcefLocal.toNed\tpygeodesy.ecefLocals._EcefLocal-class.html#toNed\npygeodesy.latlonBase.LatLonBase.cosineAndoyerLambertTo\tpygeodesy.latlonBase.LatLonBase-class.html#cosineAndoyerLambertTo\npygeodesy.latlonBase.LatLonBase.rhumbMidpointTo\tpygeodesy.latlonBase.LatLonBase-class.html#rhumbMidpointTo\npygeodesy.latlonBase.LatLonBase._clipid\tpygeodesy.latlonBase.LatLonBase-class.html#_clipid\npygeodesy.latlonBase.LatLonBase.toNvector\tpygeodesy.latlonBase.LatLonBase-class.html#toNvector\npygeodesy.latlonBase.LatLonBase.isSpherical\tpygeodesy.latlonBase.LatLonBase-class.html#isSpherical\npygeodesy.latlonBase.LatLonBase._wrap_name2\tpygeodesy.latlonBase.LatLonBase-class.html#_wrap_name2\npygeodesy.latlonBase.LatLonBase.__init__\tpygeodesy.latlonBase.LatLonBase-class.html#__init__\npygeodesy.latlonBase.LatLonBase.radii11\tpygeodesy.latlonBase.LatLonBase-class.html#radii11\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.latlonBase.LatLonBase.philamheight\tpygeodesy.latlonBase.LatLonBase-class.html#philamheight\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.latlonBase.LatLonBase.latlon2round\tpygeodesy.latlonBase.LatLonBase-class.html#latlon2round\npygeodesy.ecefLocals._EcefLocal._ltp_ecef2local\tpygeodesy.ecefLocals._EcefLocal-class.html#_ltp_ecef2local\npygeodesy.latlonBase.LatLonBase._n_xyz3\tpygeodesy.latlonBase.LatLonBase-class.html#_n_xyz3\npygeodesy.ecefLocals._EcefLocal._ecef9datum\tpygeodesy.ecefLocals._EcefLocal-class.html#_ecef9datum\npygeodesy.latlonBase.LatLonBase.toNormal\tpygeodesy.latlonBase.LatLonBase-class.html#toNormal\npygeodesy.latlonBase.LatLonBase.lam\tpygeodesy.latlonBase.LatLonBase-class.html#lam\npygeodesy.latlonBase.LatLonBase.phi\tpygeodesy.latlonBase.LatLonBase-class.html#phi\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.latlonBase.LatLonBase.normal\tpygeodesy.latlonBase.LatLonBase-class.html#normal\npygeodesy.latlonBase.LatLonBase._height\tpygeodesy.latlonBase.LatLonBase-class.html#_height\npygeodesy.latlonBase.LatLonBase.isequalTo\tpygeodesy.latlonBase.LatLonBase-class.html#isequalTo\npygeodesy.latlonBase.LatLonBase.euclideanTo\tpygeodesy.latlonBase.LatLonBase-class.html#euclideanTo\npygeodesy.latlonBase.LatLonBase._intersecend2\tpygeodesy.latlonBase.LatLonBase-class.html#_intersecend2\npygeodesy.latlonBase.LatLonBase.lat\tpygeodesy.latlonBase.LatLonBase-class.html#lat\npygeodesy.latlonBase.LatLonBase.toVector\tpygeodesy.latlonBase.LatLonBase-class.html#toVector\npygeodesy.latlonBase.LatLonBase.equirectangularTo\tpygeodesy.latlonBase.LatLonBase-class.html#equirectangularTo\npygeodesy.ecefLocals._EcefLocal.toLocal\tpygeodesy.ecefLocals._EcefLocal-class.html#toLocal\npygeodesy.latlonBase.LatLonBase.rhumbDistanceTo\tpygeodesy.latlonBase.LatLonBase-class.html#rhumbDistanceTo\npygeodesy.latlonBase.LatLonBase.rhumbLine\tpygeodesy.latlonBase.LatLonBase-class.html#rhumbLine\npygeodesy.latlonBase.LatLonBase.intersecant2\tpygeodesy.latlonBase.LatLonBase-class.html#intersecant2\npygeodesy.latlonBase.LatLonBase.points\tpygeodesy.latlonBase.LatLonBase-class.html#points\npygeodesy.latlonBase.LatLonBase._toCartesianEcef\tpygeodesy.latlonBase.LatLonBase-class.html#_toCartesianEcef\npygeodesy.latlonBase.LatLonBase._distanceTo_\tpygeodesy.latlonBase.LatLonBase-class.html#_distanceTo_\npygeodesy.latlonBase.LatLonBase.compassAngle\tpygeodesy.latlonBase.LatLonBase-class.html#compassAngle\npygeodesy.lazily.LazyAttributeError\tpygeodesy.lazily.LazyAttributeError-class.html\npygeodesy.lazily.LazyAttributeError.__init__\tpygeodesy.lazily.LazyAttributeError-class.html#__init__\npygeodesy.lazily.LazyImportError\tpygeodesy.lazily.LazyImportError-class.html\npygeodesy.lazily.LazyImportError.__init__\tpygeodesy.lazily.LazyImportError-class.html#__init__\npygeodesy.lcc.Conic\tpygeodesy.lcc.Conic-class.html\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.lcc.Conic._pdef\tpygeodesy.lcc.Conic-class.html#_pdef\npygeodesy.named._NamedBase.__str__\tpygeodesy.named._NamedBase-class.html#__str__\npygeodesy.lcc.Conic.datum\tpygeodesy.lcc.Conic-class.html#datum\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.lcc.Conic._k0\tpygeodesy.lcc.Conic-class.html#_k0\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.lcc.Conic._n\tpygeodesy.lcc.Conic-class.html#_n\npygeodesy.lcc.Conic._par1\tpygeodesy.lcc.Conic-class.html#_par1\npygeodesy.lcc.Conic._par2\tpygeodesy.lcc.Conic-class.html#_par2\npygeodesy.lcc.Conic._e\tpygeodesy.lcc.Conic-class.html#_e\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.lcc.Conic.philam0\tpygeodesy.lcc.Conic-class.html#philam0\npygeodesy.lcc.Conic._datum\tpygeodesy.lcc.Conic-class.html#_datum\npygeodesy.lcc.Conic.phi0\tpygeodesy.lcc.Conic-class.html#phi0\npygeodesy.lcc.Conic.auth\tpygeodesy.lcc.Conic-class.html#auth\npygeodesy.lcc.Conic.lat0\tpygeodesy.lcc.Conic-class.html#lat0\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._NamedEnumItem.name\tpygeodesy.named._NamedEnumItem-class.html#name\npygeodesy.named._NamedEnumItem.unregister\tpygeodesy.named._NamedEnumItem-class.html#unregister\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.lcc.Conic._rdef\tpygeodesy.lcc.Conic-class.html#_rdef\npygeodesy.lcc.Conic._E0\tpygeodesy.lcc.Conic-class.html#_E0\npygeodesy.lcc.Conic._r0\tpygeodesy.lcc.Conic-class.html#_r0\npygeodesy.named._NamedBase.toRepr\tpygeodesy.named._NamedBase-class.html#toRepr\npygeodesy.lcc.Conic.toDatum\tpygeodesy.lcc.Conic-class.html#toDatum\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.lcc.Conic.E0\tpygeodesy.lcc.Conic-class.html#E0\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.lcc.Conic._N0\tpygeodesy.lcc.Conic-class.html#_N0\npygeodesy.lcc.Conic._tdef\tpygeodesy.lcc.Conic-class.html#_tdef\npygeodesy.named._NamedBase.others\tpygeodesy.named._NamedBase-class.html#others\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._NamedEnumItem._enum\tpygeodesy.named._NamedEnumItem-class.html#_enum\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.lcc.Conic._opt3\tpygeodesy.lcc.Conic-class.html#_opt3\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.lcc.Conic._name\tpygeodesy.lcc.Conic-class.html#_name\npygeodesy.named._NamedBase.__repr__\tpygeodesy.named._NamedBase-class.html#__repr__\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.lcc.Conic._mdef\tpygeodesy.lcc.Conic-class.html#_mdef\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.lcc.Conic.par2\tpygeodesy.lcc.Conic-class.html#par2\npygeodesy.lcc.Conic.par1\tpygeodesy.lcc.Conic-class.html#par1\npygeodesy.lcc.Conic._phi0\tpygeodesy.lcc.Conic-class.html#_phi0\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.lcc.Conic.latlon0\tpygeodesy.lcc.Conic-class.html#latlon0\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._NamedEnumItem._register\tpygeodesy.named._NamedEnumItem-class.html#_register\npygeodesy.lcc.Conic.name2\tpygeodesy.lcc.Conic-class.html#name2\npygeodesy.lcc.Conic.N0\tpygeodesy.lcc.Conic-class.html#N0\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.lcc.Conic.SP\tpygeodesy.lcc.Conic-class.html#SP\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.lcc.Conic.lon0\tpygeodesy.lcc.Conic-class.html#lon0\npygeodesy.lcc.Conic._1_n\tpygeodesy.lcc.Conic-class.html#_1_n\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.lcc.Conic._lam0\tpygeodesy.lcc.Conic-class.html#_lam0\npygeodesy.lcc.Conic.__init__\tpygeodesy.lcc.Conic-class.html#__init__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.lcc.Conic._xdef\tpygeodesy.lcc.Conic-class.html#_xdef\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.lcc.Conic.k0\tpygeodesy.lcc.Conic-class.html#k0\npygeodesy.lcc.Conic.toStr\tpygeodesy.lcc.Conic-class.html#toStr\npygeodesy.lcc.Conic.opt3\tpygeodesy.lcc.Conic-class.html#opt3\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.lcc.Conic._auth\tpygeodesy.lcc.Conic-class.html#_auth\npygeodesy.lcc.Conic._dup2\tpygeodesy.lcc.Conic-class.html#_dup2\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.lcc.Conic.convertDatum\tpygeodesy.lcc.Conic-class.html#convertDatum\npygeodesy.lcc.Conic._aF\tpygeodesy.lcc.Conic-class.html#_aF\npygeodesy.lcc.Conic.lam0\tpygeodesy.lcc.Conic-class.html#lam0\npygeodesy.lcc.Conic._SP\tpygeodesy.lcc.Conic-class.html#_SP\npygeodesy.lcc.LCCError\tpygeodesy.lcc.LCCError-class.html\npygeodesy.lcc.Lcc\tpygeodesy.lcc.Lcc-class.html\npygeodesy.lcc.Lcc.toRepr\tpygeodesy.lcc.Lcc-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedBase.__str__\tpygeodesy.named._NamedBase-class.html#__str__\npygeodesy.lcc.Lcc._northing\tpygeodesy.lcc.Lcc-class.html#_northing\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.lcc.Lcc.height\tpygeodesy.lcc.Lcc-class.html#height\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.lcc.Lcc.toLatLon\tpygeodesy.lcc.Lcc-class.html#toLatLon\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.lcc.Lcc.easting\tpygeodesy.lcc.Lcc-class.html#easting\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.lcc.Lcc.philamheightdatum\tpygeodesy.lcc.Lcc-class.html#philamheightdatum\npygeodesy.lcc.Lcc.__init__\tpygeodesy.lcc.Lcc-class.html#__init__\npygeodesy.lcc.Lcc.northing\tpygeodesy.lcc.Lcc-class.html#northing\npygeodesy.lcc.Lcc.latlon\tpygeodesy.lcc.Lcc-class.html#latlon\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.lcc.Lcc.conic\tpygeodesy.lcc.Lcc-class.html#conic\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.lcc.Lcc.to3lld\tpygeodesy.lcc.Lcc-class.html#to3lld\npygeodesy.lcc.Lcc.philam\tpygeodesy.lcc.Lcc-class.html#philam\npygeodesy.lcc.Lcc.philamheight\tpygeodesy.lcc.Lcc-class.html#philamheight\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.lcc.Lcc._easting\tpygeodesy.lcc.Lcc-class.html#_easting\npygeodesy.lcc.Lcc._height\tpygeodesy.lcc.Lcc-class.html#_height\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.lcc.Lcc.toStr\tpygeodesy.lcc.Lcc-class.html#toStr\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedBase.others\tpygeodesy.named._NamedBase-class.html#others\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.lcc.Lcc.latlonheight\tpygeodesy.lcc.Lcc-class.html#latlonheight\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.lcc.Lcc._conic\tpygeodesy.lcc.Lcc-class.html#_conic\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.lcc.Lcc.latlonheightdatum\tpygeodesy.lcc.Lcc-class.html#latlonheightdatum\npygeodesy.named._NamedBase.__repr__\tpygeodesy.named._NamedBase-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.ltp.Attitude\tpygeodesy.ltp.Attitude-class.html\npygeodesy.named._NamedBase.toRepr\tpygeodesy.named._NamedBase-class.html#toRepr\npygeodesy.ltp.Attitude.bearing\tpygeodesy.ltp.Attitude-class.html#bearing\npygeodesy.ltp.Attitude.atyr\tpygeodesy.ltp.Attitude-class.html#atyr\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedBase.__str__\tpygeodesy.named._NamedBase-class.html#__str__\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.ltp.Attitude._yaw\tpygeodesy.ltp.Attitude-class.html#_yaw\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.ltp.Attitude.pitch\tpygeodesy.ltp.Attitude-class.html#pitch\npygeodesy.ltp.Attitude.alt\tpygeodesy.ltp.Attitude-class.html#alt\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.ltp.Attitude.__init__\tpygeodesy.ltp.Attitude-class.html#__init__\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.ltp.Attitude.matrix\tpygeodesy.ltp.Attitude-class.html#matrix\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.ltp.Attitude.tilt\tpygeodesy.ltp.Attitude-class.html#tilt\npygeodesy.ltp.Attitude.yaw\tpygeodesy.ltp.Attitude-class.html#yaw\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.ltp.Attitude.roll\tpygeodesy.ltp.Attitude-class.html#roll\npygeodesy.ltp.Attitude._tilt\tpygeodesy.ltp.Attitude-class.html#_tilt\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.ltp.Attitude.elevation\tpygeodesy.ltp.Attitude-class.html#elevation\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.ltp.Attitude.toStr\tpygeodesy.ltp.Attitude-class.html#toStr\npygeodesy.ltp.Attitude.tyr3d\tpygeodesy.ltp.Attitude-class.html#tyr3d\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._NamedBase.others\tpygeodesy.named._NamedBase-class.html#others\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.ltp.Attitude.bank\tpygeodesy.ltp.Attitude-class.html#bank\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.ltp.Attitude.rotate\tpygeodesy.ltp.Attitude-class.html#rotate\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.ltp.Attitude.heading\tpygeodesy.ltp.Attitude-class.html#heading\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._NamedBase.__repr__\tpygeodesy.named._NamedBase-class.html#__repr__\npygeodesy.ltp.Attitude._roll\tpygeodesy.ltp.Attitude-class.html#_roll\npygeodesy.ltp.Attitude._alt\tpygeodesy.ltp.Attitude-class.html#_alt\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.ltp.Attitude.altitude\tpygeodesy.ltp.Attitude-class.html#altitude\npygeodesy.ltp.AttitudeError\tpygeodesy.ltp.AttitudeError-class.html\npygeodesy.ltp.ChLV\tpygeodesy.ltp.ChLV-class.html\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedBase.__str__\tpygeodesy.named._NamedBase-class.html#__str__\npygeodesy.ltp.LocalCartesian.datum\tpygeodesy.ltp.LocalCartesian-class.html#datum\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.ltp.Ltp._Ecef\tpygeodesy.ecef._EcefBase-class.html\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.ltp.LocalCartesian.ellipsoid\tpygeodesy.ltp.LocalCartesian-class.html#ellipsoid\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.ltp.LocalCartesian.toStr\tpygeodesy.ltp.LocalCartesian-class.html#toStr\npygeodesy.ltp.ChLV._s_d\tpygeodesy.ltp.ChLV-class.html#_s_d\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.ltp.LocalCartesian.lat0\tpygeodesy.ltp.LocalCartesian-class.html#lat0\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._NamedBase.toRepr\tpygeodesy.named._NamedBase-class.html#toRepr\npygeodesy.ltp.LocalCartesian._t0\tpygeodesy.ltp.LocalCartesian-class.html#_t0\npygeodesy.ltp.LocalCartesian.height0\tpygeodesy.ltp.LocalCartesian-class.html#height0\npygeodesy.ltp.LocalCartesian._local2ecef\tpygeodesy.ltp.LocalCartesian-class.html#_local2ecef\npygeodesy.ltp.ChLV.unfalse2\tpygeodesy.ltp.ChLV-class.html#unfalse2\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.ltp.LocalCartesian._ecef\tpygeodesy.ltp.LocalCartesian-class.html#_ecef\npygeodesy.ltp.ChLV.Bern\tpygeodesy.ltp.ChLV-class.html#Bern\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._NamedBase.others\tpygeodesy.named._NamedBase-class.html#others\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.ltp.ChLV.isLV03\tpygeodesy.ltp.ChLV-class.html#isLV03\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.ltp.ChLV.reverse\tpygeodesy.ltp.ChLV-class.html#reverse\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.ltp.ChLV._9Tuple\tpygeodesy.ltpTuples.ChLV9Tuple-class.html\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._NamedBase.__repr__\tpygeodesy.named._NamedBase-class.html#__repr__\npygeodesy.ltp.ChLV.false2\tpygeodesy.ltp.ChLV-class.html#false2\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.ltp.ChLV._s_ab\tpygeodesy.ltp.ChLV-class.html#_s_ab\npygeodesy.ltp.LocalCartesian._t0_xyz\tpygeodesy.ltp.LocalCartesian-class.html#_t0_xyz\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.ltp.ChLV._ab_M\tpygeodesy.ltp.ChLV-class.html#_ab_M\npygeodesy.ltp.ChLV.isLV95\tpygeodesy.ltp.ChLV-class.html#isLV95\npygeodesy.ltp.ChLV._sLat\tpygeodesy.ltp.ChLV-class.html#_sLat\npygeodesy.ltp.ChLV._ab_d\tpygeodesy.ltp.ChLV-class.html#_ab_d\npygeodesy.ltp.ChLV.forward\tpygeodesy.ltp.ChLV-class.html#forward\npygeodesy.ltp.LocalCartesian.latlonheight0\tpygeodesy.ltp.LocalCartesian-class.html#latlonheight0\npygeodesy.ltp.ChLV._ab_m\tpygeodesy.ltp.ChLV-class.html#_ab_m\npygeodesy.ltp.Ltp.ecef\tpygeodesy.ltp.Ltp-class.html#ecef\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.ltp.LocalCartesian.__eq__\tpygeodesy.ltp.LocalCartesian-class.html#__eq__\npygeodesy.ltp.LocalCartesian.reset\tpygeodesy.ltp.LocalCartesian-class.html#reset\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.ltp.LocalCartesian.lon0\tpygeodesy.ltp.LocalCartesian-class.html#lon0\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.ltp.LocalCartesian.lon00\tpygeodesy.ltp.LocalCartesian-class.html#lon00\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.ltp.LocalCartesian._lon00\tpygeodesy.ltp.LocalCartesian-class.html#_lon00\npygeodesy.ltp.ChLV._sLon\tpygeodesy.ltp.ChLV-class.html#_sLon\npygeodesy.ltp.ChLV.__init__\tpygeodesy.ltp.ChLV-class.html#__init__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.ltp.LocalCartesian._ecef2local\tpygeodesy.ltp.LocalCartesian-class.html#_ecef2local\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.ltp.LocalCartesian.M\tpygeodesy.ltp.LocalCartesian-class.html#M\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.ltp.ChLVa\tpygeodesy.ltp.ChLVa-class.html\npygeodesy.ltp.LocalCartesian._t0_xyz\tpygeodesy.ltp.LocalCartesian-class.html#_t0_xyz\npygeodesy.named._NamedBase.toRepr\tpygeodesy.named._NamedBase-class.html#toRepr\npygeodesy.ltp.LocalCartesian.lon00\tpygeodesy.ltp.LocalCartesian-class.html#lon00\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.ltp.LocalCartesian._t0\tpygeodesy.ltp.LocalCartesian-class.html#_t0\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._NamedBase.__str__\tpygeodesy.named._NamedBase-class.html#__str__\npygeodesy.ltp.LocalCartesian.datum\tpygeodesy.ltp.LocalCartesian-class.html#datum\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.ltp.LocalCartesian._Ecef\tpygeodesy.ecef.EcefKarney-class.html\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.ltp.ChLVa.__init__\tpygeodesy.ltp.ChLVa-class.html#__init__\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.ltp.LocalCartesian.ellipsoid\tpygeodesy.ltp.LocalCartesian-class.html#ellipsoid\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.ltp.LocalCartesian.__eq__\tpygeodesy.ltp.LocalCartesian-class.html#__eq__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.ltp.LocalCartesian._ecef\tpygeodesy.ltp.LocalCartesian-class.html#_ecef\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.ltp.ChLVa.forward\tpygeodesy.ltp.ChLVa-class.html#forward\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.ltp.LocalCartesian.latlonheight0\tpygeodesy.ltp.LocalCartesian-class.html#latlonheight0\npygeodesy.ltp.LocalCartesian._ecef2local\tpygeodesy.ltp.LocalCartesian-class.html#_ecef2local\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.ltp.LocalCartesian.toStr\tpygeodesy.ltp.LocalCartesian-class.html#toStr\npygeodesy.ltp.LocalCartesian._lon00\tpygeodesy.ltp.LocalCartesian-class.html#_lon00\npygeodesy.ltp.LocalCartesian.M\tpygeodesy.ltp.LocalCartesian-class.html#M\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.ltp.LocalCartesian._local2ecef\tpygeodesy.ltp.LocalCartesian-class.html#_local2ecef\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._NamedBase.others\tpygeodesy.named._NamedBase-class.html#others\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.ltp.LocalCartesian.lat0\tpygeodesy.ltp.LocalCartesian-class.html#lat0\npygeodesy.ltp.LocalCartesian.reset\tpygeodesy.ltp.LocalCartesian-class.html#reset\npygeodesy.ltp.LocalCartesian.ecef\tpygeodesy.ltp.LocalCartesian-class.html#ecef\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.ltp.ChLVa.reverse\tpygeodesy.ltp.ChLVa-class.html#reverse\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.ltp.LocalCartesian._9Tuple\tpygeodesy.ltpTuples.Local9Tuple-class.html\npygeodesy.ltp.LocalCartesian.height0\tpygeodesy.ltp.LocalCartesian-class.html#height0\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._NamedBase.__repr__\tpygeodesy.named._NamedBase-class.html#__repr__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.ltp.LocalCartesian.lon0\tpygeodesy.ltp.LocalCartesian-class.html#lon0\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.ltp.ChLVe\tpygeodesy.ltp.ChLVe-class.html\npygeodesy.ltp.LocalCartesian._t0_xyz\tpygeodesy.ltp.LocalCartesian-class.html#_t0_xyz\npygeodesy.named._NamedBase.toRepr\tpygeodesy.named._NamedBase-class.html#toRepr\npygeodesy.ltp.LocalCartesian.lon00\tpygeodesy.ltp.LocalCartesian-class.html#lon00\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.ltp.LocalCartesian._t0\tpygeodesy.ltp.LocalCartesian-class.html#_t0\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._NamedBase.__str__\tpygeodesy.named._NamedBase-class.html#__str__\npygeodesy.ltp.LocalCartesian.datum\tpygeodesy.ltp.LocalCartesian-class.html#datum\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.ltp.LocalCartesian._Ecef\tpygeodesy.ecef.EcefKarney-class.html\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.ltp.ChLVe.__init__\tpygeodesy.ltp.ChLVe-class.html#__init__\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.ltp.LocalCartesian.ellipsoid\tpygeodesy.ltp.LocalCartesian-class.html#ellipsoid\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.ltp.LocalCartesian.__eq__\tpygeodesy.ltp.LocalCartesian-class.html#__eq__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.ltp.LocalCartesian._ecef\tpygeodesy.ltp.LocalCartesian-class.html#_ecef\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.ltp.ChLVe.forward\tpygeodesy.ltp.ChLVe-class.html#forward\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.ltp.LocalCartesian.latlonheight0\tpygeodesy.ltp.LocalCartesian-class.html#latlonheight0\npygeodesy.ltp.LocalCartesian._ecef2local\tpygeodesy.ltp.LocalCartesian-class.html#_ecef2local\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.ltp.LocalCartesian.toStr\tpygeodesy.ltp.LocalCartesian-class.html#toStr\npygeodesy.ltp.LocalCartesian._lon00\tpygeodesy.ltp.LocalCartesian-class.html#_lon00\npygeodesy.ltp.LocalCartesian.M\tpygeodesy.ltp.LocalCartesian-class.html#M\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.ltp.LocalCartesian._local2ecef\tpygeodesy.ltp.LocalCartesian-class.html#_local2ecef\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._NamedBase.others\tpygeodesy.named._NamedBase-class.html#others\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.ltp.LocalCartesian.lat0\tpygeodesy.ltp.LocalCartesian-class.html#lat0\npygeodesy.ltp.LocalCartesian.reset\tpygeodesy.ltp.LocalCartesian-class.html#reset\npygeodesy.ltp.LocalCartesian.ecef\tpygeodesy.ltp.LocalCartesian-class.html#ecef\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.ltp.ChLVe.reverse\tpygeodesy.ltp.ChLVe-class.html#reverse\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.ltp.LocalCartesian._9Tuple\tpygeodesy.ltpTuples.Local9Tuple-class.html\npygeodesy.ltp.LocalCartesian.height0\tpygeodesy.ltp.LocalCartesian-class.html#height0\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._NamedBase.__repr__\tpygeodesy.named._NamedBase-class.html#__repr__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.ltp.LocalCartesian.lon0\tpygeodesy.ltp.LocalCartesian-class.html#lon0\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.ltp.Frustum\tpygeodesy.ltp.Frustum-class.html\npygeodesy.named._NamedBase.toRepr\tpygeodesy.named._NamedBase-class.html#toRepr\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._NamedBase.__str__\tpygeodesy.named._NamedBase-class.html#__str__\npygeodesy.ltp.Frustum.footprint5\tpygeodesy.ltp.Frustum-class.html#footprint5\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.ltp.Frustum._tan_h_2\tpygeodesy.ltp.Frustum-class.html#_tan_h_2\npygeodesy.ltp.Frustum.vfov\tpygeodesy.ltp.Frustum-class.html#vfov\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.ltp.Frustum.__init__\tpygeodesy.ltp.Frustum-class.html#__init__\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.ltp.Frustum._h_2\tpygeodesy.ltp.Frustum-class.html#_h_2\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.ltp.Frustum._ltp\tpygeodesy.ltp.Frustum-class.html#_ltp\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.ltp.Frustum.toStr\tpygeodesy.ltp.Frustum-class.html#toStr\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedBase.others\tpygeodesy.named._NamedBase-class.html#others\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.ltp.Frustum.ltp\tpygeodesy.ltp.Frustum-class.html#ltp\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.ltp.Frustum._v_2\tpygeodesy.ltp.Frustum-class.html#_v_2\npygeodesy.ltp.Frustum.hfov\tpygeodesy.ltp.Frustum-class.html#hfov\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._NamedBase.__repr__\tpygeodesy.named._NamedBase-class.html#__repr__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.ltp.LocalCartesian\tpygeodesy.ltp.LocalCartesian-class.html\npygeodesy.ltp.LocalCartesian._t0_xyz\tpygeodesy.ltp.LocalCartesian-class.html#_t0_xyz\npygeodesy.named._NamedBase.toRepr\tpygeodesy.named._NamedBase-class.html#toRepr\npygeodesy.ltp.LocalCartesian.lon00\tpygeodesy.ltp.LocalCartesian-class.html#lon00\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.ltp.LocalCartesian._t0\tpygeodesy.ltp.LocalCartesian-class.html#_t0\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._NamedBase.__str__\tpygeodesy.named._NamedBase-class.html#__str__\npygeodesy.ltp.LocalCartesian._lon00\tpygeodesy.ltp.LocalCartesian-class.html#_lon00\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.ltp.LocalCartesian._Ecef\tpygeodesy.ecef.EcefKarney-class.html\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.ltp.LocalCartesian.__init__\tpygeodesy.ltp.LocalCartesian-class.html#__init__\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.ltp.LocalCartesian.ellipsoid\tpygeodesy.ltp.LocalCartesian-class.html#ellipsoid\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.ltp.LocalCartesian._ecef\tpygeodesy.ltp.LocalCartesian-class.html#_ecef\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.ltp.LocalCartesian.toStr\tpygeodesy.ltp.LocalCartesian-class.html#toStr\npygeodesy.ltp.LocalCartesian.forward\tpygeodesy.ltp.LocalCartesian-class.html#forward\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.ltp.LocalCartesian.latlonheight0\tpygeodesy.ltp.LocalCartesian-class.html#latlonheight0\npygeodesy.ltp.LocalCartesian._ecef2local\tpygeodesy.ltp.LocalCartesian-class.html#_ecef2local\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.ltp.LocalCartesian.datum\tpygeodesy.ltp.LocalCartesian-class.html#datum\npygeodesy.ltp.LocalCartesian.M\tpygeodesy.ltp.LocalCartesian-class.html#M\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.ltp.LocalCartesian._local2ecef\tpygeodesy.ltp.LocalCartesian-class.html#_local2ecef\npygeodesy.named._NamedBase.others\tpygeodesy.named._NamedBase-class.html#others\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.ltp.LocalCartesian.__eq__\tpygeodesy.ltp.LocalCartesian-class.html#__eq__\npygeodesy.ltp.LocalCartesian.reverse\tpygeodesy.ltp.LocalCartesian-class.html#reverse\npygeodesy.ltp.LocalCartesian.reset\tpygeodesy.ltp.LocalCartesian-class.html#reset\npygeodesy.ltp.LocalCartesian.ecef\tpygeodesy.ltp.LocalCartesian-class.html#ecef\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.ltp.LocalCartesian.lat0\tpygeodesy.ltp.LocalCartesian-class.html#lat0\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.ltp.LocalCartesian._9Tuple\tpygeodesy.ltpTuples.Local9Tuple-class.html\npygeodesy.ltp.LocalCartesian.height0\tpygeodesy.ltp.LocalCartesian-class.html#height0\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._NamedBase.__repr__\tpygeodesy.named._NamedBase-class.html#__repr__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.ltp.LocalCartesian.lon0\tpygeodesy.ltp.LocalCartesian-class.html#lon0\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.ltp.LocalError\tpygeodesy.ltp.LocalError-class.html\npygeodesy.ltp.Ltp\tpygeodesy.ltp.Ltp-class.html\npygeodesy.ltp.LocalCartesian._t0_xyz\tpygeodesy.ltp.LocalCartesian-class.html#_t0_xyz\npygeodesy.named._NamedBase.toRepr\tpygeodesy.named._NamedBase-class.html#toRepr\npygeodesy.ltp.LocalCartesian.lon00\tpygeodesy.ltp.LocalCartesian-class.html#lon00\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.ltp.LocalCartesian._t0\tpygeodesy.ltp.LocalCartesian-class.html#_t0\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._NamedBase.__str__\tpygeodesy.named._NamedBase-class.html#__str__\npygeodesy.ltp.LocalCartesian._lon00\tpygeodesy.ltp.LocalCartesian-class.html#_lon00\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.ltp.Ltp._Ecef\tpygeodesy.ecef._EcefBase-class.html\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.ltp.Ltp.__init__\tpygeodesy.ltp.Ltp-class.html#__init__\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.ltp.LocalCartesian.ellipsoid\tpygeodesy.ltp.LocalCartesian-class.html#ellipsoid\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.ltp.LocalCartesian.datum\tpygeodesy.ltp.LocalCartesian-class.html#datum\npygeodesy.ltp.LocalCartesian._ecef\tpygeodesy.ltp.LocalCartesian-class.html#_ecef\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.ltp.LocalCartesian.forward\tpygeodesy.ltp.LocalCartesian-class.html#forward\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.ltp.LocalCartesian.latlonheight0\tpygeodesy.ltp.LocalCartesian-class.html#latlonheight0\npygeodesy.ltp.LocalCartesian._ecef2local\tpygeodesy.ltp.LocalCartesian-class.html#_ecef2local\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.ltp.LocalCartesian.toStr\tpygeodesy.ltp.LocalCartesian-class.html#toStr\npygeodesy.ltp.LocalCartesian.M\tpygeodesy.ltp.LocalCartesian-class.html#M\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.ltp.LocalCartesian._local2ecef\tpygeodesy.ltp.LocalCartesian-class.html#_local2ecef\npygeodesy.named._NamedBase.others\tpygeodesy.named._NamedBase-class.html#others\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.ltp.LocalCartesian.__eq__\tpygeodesy.ltp.LocalCartesian-class.html#__eq__\npygeodesy.ltp.LocalCartesian.lat0\tpygeodesy.ltp.LocalCartesian-class.html#lat0\npygeodesy.ltp.LocalCartesian.reset\tpygeodesy.ltp.LocalCartesian-class.html#reset\npygeodesy.ltp.Ltp.ecef\tpygeodesy.ltp.Ltp-class.html#ecef\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.ltp.LocalCartesian.reverse\tpygeodesy.ltp.LocalCartesian-class.html#reverse\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.ltp.LocalCartesian._9Tuple\tpygeodesy.ltpTuples.Local9Tuple-class.html\npygeodesy.ltp.LocalCartesian.height0\tpygeodesy.ltp.LocalCartesian-class.html#height0\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._NamedBase.__repr__\tpygeodesy.named._NamedBase-class.html#__repr__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.ltp.LocalCartesian.lon0\tpygeodesy.ltp.LocalCartesian-class.html#lon0\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.ltpTuples.Aer\tpygeodesy.ltpTuples.Aer-class.html\npygeodesy.ltpTuples.Aer.toRepr\tpygeodesy.ltpTuples.Aer-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.ltpTuples._AbcBase.toNed\tpygeodesy.ltpTuples._AbcBase-class.html#toNed\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.ltpTuples._AbcBase.xyz\tpygeodesy.ltpTuples._AbcBase-class.html#xyz\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.ltpTuples.Aer.aer4\tpygeodesy.ltpTuples.Aer-class.html#aer4\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.ltpTuples.Aer.slantrange\tpygeodesy.ltpTuples.Aer-class.html#slantrange\npygeodesy.ltpTuples.Aer.elevation\tpygeodesy.ltpTuples.Aer-class.html#elevation\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.ltpTuples.Aer._elevation\tpygeodesy.ltpTuples.Aer-class.html#_elevation\npygeodesy.ltpTuples.Aer._toStr\tpygeodesy.ltpTuples.Aer-class.html#_toStr\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.ltpTuples._AbcBase.toAer\tpygeodesy.ltpTuples._AbcBase-class.html#toAer\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.ltpTuples.Aer.__init__\tpygeodesy.ltpTuples.Aer-class.html#__init__\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.ltpTuples.Aer.east\tpygeodesy.ltpTuples.Aer-class.html#east\npygeodesy.named._NamedBase.__str__\tpygeodesy.named._NamedBase-class.html#__str__\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.ltpTuples._AbcBase._ltp\tpygeodesy.ltpTuples._AbcBase-class.html#_ltp\npygeodesy.ltpTuples.Aer.north\tpygeodesy.ltpTuples.Aer-class.html#north\npygeodesy.ltpTuples._AbcBase.xyzLocal\tpygeodesy.ltpTuples._AbcBase-class.html#xyzLocal\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.ltpTuples.Aer.toStr\tpygeodesy.ltpTuples.Aer-class.html#toStr\npygeodesy.ltpTuples.Aer.groundrange\tpygeodesy.ltpTuples.Aer-class.html#groundrange\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.ltpTuples._AbcBase.toXyz\tpygeodesy.ltpTuples._AbcBase-class.html#toXyz\npygeodesy.named._NamedBase.others\tpygeodesy.named._NamedBase-class.html#others\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.ltpTuples.Aer._azimuth\tpygeodesy.ltpTuples.Aer-class.html#_azimuth\npygeodesy.ltpTuples._AbcBase.toEnu\tpygeodesy.ltpTuples._AbcBase-class.html#toEnu\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.ltpTuples.Aer.down\tpygeodesy.ltpTuples.Aer-class.html#down\npygeodesy.ltpTuples._AbcBase.ltp\tpygeodesy.ltpTuples._AbcBase-class.html#ltp\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.ltpTuples.Aer.xyz4\tpygeodesy.ltpTuples.Aer-class.html#xyz4\npygeodesy.ltpTuples._AbcBase.xyz3\tpygeodesy.ltpTuples._AbcBase-class.html#xyz3\npygeodesy.ltpTuples.Aer.up\tpygeodesy.ltpTuples.Aer-class.html#up\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.ltpTuples.Aer._slantrange\tpygeodesy.ltpTuples.Aer-class.html#_slantrange\npygeodesy.named._NamedBase.__repr__\tpygeodesy.named._NamedBase-class.html#__repr__\npygeodesy.ltpTuples.Aer.azimuth\tpygeodesy.ltpTuples.Aer-class.html#azimuth\npygeodesy.ltpTuples.Aer.y\tpygeodesy.ltpTuples.Aer-class.html#y\npygeodesy.ltpTuples.Aer.x\tpygeodesy.ltpTuples.Aer-class.html#x\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.ltpTuples.Aer.z\tpygeodesy.ltpTuples.Aer-class.html#z\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.ltpTuples.Aer4Tuple\tpygeodesy.ltpTuples.Aer4Tuple-class.html\npygeodesy.named._NamedTuple.toRepr\tpygeodesy.named._NamedTuple-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._NamedTuple.toUnits\tpygeodesy.named._NamedTuple-class.html#toUnits\npygeodesy.named._NamedTuple._validate\tpygeodesy.named._NamedTuple-class.html#_validate\npygeodesy.named._NamedTuple.__str__\tpygeodesy.named._NamedTuple-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._NamedTuple._DOT_\tpygeodesy.named._NamedTuple-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._NamedTuple.reUnit\tpygeodesy.named._NamedTuple-class.html#reUnit\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.ltpTuples.Aer4Tuple._Names_\tpygeodesy.ltpTuples.Aer4Tuple-class.html#_Names_\npygeodesy.named._NamedTuple.__setattr__\tpygeodesy.named._NamedTuple-class.html#__setattr__\npygeodesy.named._NamedTuple.__new__\tpygeodesy.named._NamedTuple-class.html#__new__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._NamedTuple._validated\tpygeodesy.named._NamedTuple-class.html#_validated\npygeodesy.named._NamedTuple.__getattr__\tpygeodesy.named._NamedTuple-class.html#__getattr__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._NamedTuple._xtend\tpygeodesy.named._NamedTuple-class.html#_xtend\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._NamedTuple.dup\tpygeodesy.named._NamedTuple-class.html#dup\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.ltpTuples.Aer4Tuple._toAer\tpygeodesy.ltpTuples.Aer4Tuple-class.html#_toAer\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.ltpTuples.Aer4Tuple.xyzLocal\tpygeodesy.ltpTuples.Aer4Tuple-class.html#xyzLocal\npygeodesy.named._NamedTuple.toStr\tpygeodesy.named._NamedTuple-class.html#toStr\npygeodesy.ltpTuples.Aer4Tuple.groundrange\tpygeodesy.ltpTuples.Aer4Tuple-class.html#groundrange\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedTuple.units\tpygeodesy.named._NamedTuple-class.html#units\npygeodesy.named._NamedTuple.iterunits\tpygeodesy.named._NamedTuple-class.html#iterunits\npygeodesy.named._NamedTuple.iteritems\tpygeodesy.named._NamedTuple-class.html#iteritems\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._NamedTuple.items\tpygeodesy.named._NamedTuple-class.html#items\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedTuple.__delattr__\tpygeodesy.named._NamedTuple-class.html#__delattr__\npygeodesy.named._NamedTuple.__repr__\tpygeodesy.named._NamedTuple-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._NamedTuple.__hash__\tpygeodesy.named._NamedTuple-class.html#__hash__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.ltpTuples.Aer4Tuple._Units_\tpygeodesy.ltpTuples.Aer4Tuple-class.html#_Units_\npygeodesy.ltpTuples.Attitude4Tuple\tpygeodesy.ltpTuples.Attitude4Tuple-class.html\npygeodesy.named._NamedTuple.toRepr\tpygeodesy.named._NamedTuple-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.ltpTuples.Attitude4Tuple.atyr\tpygeodesy.ltpTuples.Attitude4Tuple-class.html#atyr\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._NamedTuple.toUnits\tpygeodesy.named._NamedTuple-class.html#toUnits\npygeodesy.named._NamedTuple._validate\tpygeodesy.named._NamedTuple-class.html#_validate\npygeodesy.named._NamedTuple.__str__\tpygeodesy.named._NamedTuple-class.html#__str__\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._NamedTuple._DOT_\tpygeodesy.named._NamedTuple-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._NamedTuple.reUnit\tpygeodesy.named._NamedTuple-class.html#reUnit\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.ltpTuples.Attitude4Tuple._Names_\tpygeodesy.ltpTuples.Attitude4Tuple-class.html#_Names_\npygeodesy.named._NamedTuple.__setattr__\tpygeodesy.named._NamedTuple-class.html#__setattr__\npygeodesy.named._NamedTuple.__new__\tpygeodesy.named._NamedTuple-class.html#__new__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._NamedTuple._validated\tpygeodesy.named._NamedTuple-class.html#_validated\npygeodesy.named._NamedTuple.__getattr__\tpygeodesy.named._NamedTuple-class.html#__getattr__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._NamedTuple._xtend\tpygeodesy.named._NamedTuple-class.html#_xtend\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._NamedTuple.dup\tpygeodesy.named._NamedTuple-class.html#dup\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedTuple.toStr\tpygeodesy.named._NamedTuple-class.html#toStr\npygeodesy.ltpTuples.Attitude4Tuple.tyr3d\tpygeodesy.ltpTuples.Attitude4Tuple-class.html#tyr3d\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedTuple.units\tpygeodesy.named._NamedTuple-class.html#units\npygeodesy.named._NamedTuple.iterunits\tpygeodesy.named._NamedTuple-class.html#iterunits\npygeodesy.named._NamedTuple.iteritems\tpygeodesy.named._NamedTuple-class.html#iteritems\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._NamedTuple.items\tpygeodesy.named._NamedTuple-class.html#items\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedTuple.__delattr__\tpygeodesy.named._NamedTuple-class.html#__delattr__\npygeodesy.named._NamedTuple.__repr__\tpygeodesy.named._NamedTuple-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._NamedTuple.__hash__\tpygeodesy.named._NamedTuple-class.html#__hash__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.ltpTuples.Attitude4Tuple._Units_\tpygeodesy.ltpTuples.Attitude4Tuple-class.html#_Units_\npygeodesy.ltpTuples.ChLV9Tuple\tpygeodesy.ltpTuples.ChLV9Tuple-class.html\npygeodesy.ltpTuples.Local9Tuple.toCartesian\tpygeodesy.ltpTuples.Local9Tuple-class.html#toCartesian\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedTuple._validate\tpygeodesy.named._NamedTuple-class.html#_validate\npygeodesy.named._NamedTuple.__str__\tpygeodesy.named._NamedTuple-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.ltpTuples.Local9Tuple.toLatLon\tpygeodesy.ltpTuples.Local9Tuple-class.html#toLatLon\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.ltpTuples.ChLV9Tuple.h_LV03\tpygeodesy.ltpTuples.ChLV9Tuple-class.html#h_LV03\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._NamedTuple._validated\tpygeodesy.named._NamedTuple-class.html#_validated\npygeodesy.ltpTuples.ChLV9Tuple.E_LV95\tpygeodesy.ltpTuples.ChLV9Tuple-class.html#E_LV95\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.ltpTuples.ChLV9Tuple.y_LV03\tpygeodesy.ltpTuples.ChLV9Tuple-class.html#y_LV03\npygeodesy.named._NamedTuple._xtend\tpygeodesy.named._NamedTuple-class.html#_xtend\npygeodesy.ltpTuples.Local9Tuple.east\tpygeodesy.ltpTuples.Local9Tuple-class.html#east\npygeodesy.ltpTuples.Local9Tuple.toNed\tpygeodesy.ltpTuples.Local9Tuple-class.html#toNed\npygeodesy.ltpTuples.Local9Tuple.elevation\tpygeodesy.ltpTuples.Local9Tuple-class.html#elevation\npygeodesy.named._NamedTuple.toStr\tpygeodesy.named._NamedTuple-class.html#toStr\npygeodesy.ltpTuples.Local9Tuple.toXyz\tpygeodesy.ltpTuples.Local9Tuple-class.html#toXyz\npygeodesy.named._NamedTuple.iteritems\tpygeodesy.named._NamedTuple-class.html#iteritems\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.ltpTuples.ChLV9Tuple.N_LV95\tpygeodesy.ltpTuples.ChLV9Tuple-class.html#N_LV95\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.ltpTuples.ChLV9Tuple.x\tpygeodesy.ltpTuples.ChLV9Tuple-class.html#x\npygeodesy.ltpTuples.Local9Tuple._Units_\tpygeodesy.ltpTuples.Local9Tuple-class.html#_Units_\npygeodesy.named._NamedTuple.toRepr\tpygeodesy.named._NamedTuple-class.html#toRepr\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.ltpTuples.ChLV9Tuple._Names_\tpygeodesy.ltpTuples.ChLV9Tuple-class.html#_Names_\npygeodesy.ltpTuples.Local9Tuple.latlon\tpygeodesy.ltpTuples.Local9Tuple-class.html#latlon\npygeodesy.named._NamedTuple.__setattr__\tpygeodesy.named._NamedTuple-class.html#__setattr__\npygeodesy.named._NamedTuple.__getattr__\tpygeodesy.named._NamedTuple-class.html#__getattr__\npygeodesy.ltpTuples.Local9Tuple.philam\tpygeodesy.ltpTuples.Local9Tuple-class.html#philam\npygeodesy.ltpTuples.Local9Tuple.toAer\tpygeodesy.ltpTuples.Local9Tuple-class.html#toAer\npygeodesy.ltpTuples.Local9Tuple.xyzLocal\tpygeodesy.ltpTuples.Local9Tuple-class.html#xyzLocal\npygeodesy.ltpTuples.Local9Tuple.groundrange\tpygeodesy.ltpTuples.Local9Tuple-class.html#groundrange\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.ltpTuples.ChLV9Tuple.isChLV\tpygeodesy.ltpTuples.ChLV9Tuple-class.html#isChLV\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._NamedTuple.items\tpygeodesy.named._NamedTuple-class.html#items\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._NamedTuple.__delattr__\tpygeodesy.named._NamedTuple-class.html#__delattr__\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._NamedTuple.__repr__\tpygeodesy.named._NamedTuple-class.html#__repr__\npygeodesy.named._NamedTuple.toUnits\tpygeodesy.named._NamedTuple-class.html#toUnits\npygeodesy.ltpTuples.Local9Tuple.xyz\tpygeodesy.ltpTuples.Local9Tuple-class.html#xyz\npygeodesy.ltpTuples.ChLV9Tuple.isChLVe\tpygeodesy.ltpTuples.ChLV9Tuple-class.html#isChLVe\npygeodesy.ltpTuples.ChLV9Tuple.isChLVa\tpygeodesy.ltpTuples.ChLV9Tuple-class.html#isChLVa\npygeodesy.ltpTuples.Local9Tuple.down\tpygeodesy.ltpTuples.Local9Tuple-class.html#down\npygeodesy.named._NamedTuple._DOT_\tpygeodesy.named._NamedTuple-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.ltpTuples.Local9Tuple.slantrange\tpygeodesy.ltpTuples.Local9Tuple-class.html#slantrange\npygeodesy.named._NamedTuple.dup\tpygeodesy.named._NamedTuple-class.html#dup\npygeodesy.ltpTuples.Local9Tuple.north\tpygeodesy.ltpTuples.Local9Tuple-class.html#north\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.ltpTuples.ChLV9Tuple.x_LV03\tpygeodesy.ltpTuples.ChLV9Tuple-class.html#x_LV03\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.ltpTuples.Local9Tuple.toEnu\tpygeodesy.ltpTuples.Local9Tuple-class.html#toEnu\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.ltpTuples.Local9Tuple.latlonheight\tpygeodesy.ltpTuples.Local9Tuple-class.html#latlonheight\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.ltpTuples.Local9Tuple.up\tpygeodesy.ltpTuples.Local9Tuple-class.html#up\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedTuple.__hash__\tpygeodesy.named._NamedTuple-class.html#__hash__\npygeodesy.ltpTuples.ChLV9Tuple.z\tpygeodesy.ltpTuples.ChLV9Tuple-class.html#z\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.ltpTuples.ChLV9Tuple.YX\tpygeodesy.ltpTuples.ChLV9Tuple-class.html#YX\npygeodesy.named._NamedTuple.reUnit\tpygeodesy.named._NamedTuple-class.html#reUnit\npygeodesy.ltpTuples.ChLV9Tuple.EN2_LV95\tpygeodesy.ltpTuples.ChLV9Tuple-class.html#EN2_LV95\npygeodesy.named._NamedTuple.__new__\tpygeodesy.named._NamedTuple-class.html#__new__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.ltpTuples.Local9Tuple.philamheight\tpygeodesy.ltpTuples.Local9Tuple-class.html#philamheight\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._NamedTuple.units\tpygeodesy.named._NamedTuple-class.html#units\npygeodesy.ltpTuples.ChLV9Tuple.yx2_LV03\tpygeodesy.ltpTuples.ChLV9Tuple-class.html#yx2_LV03\npygeodesy.ltpTuples.Local9Tuple.lam\tpygeodesy.ltpTuples.Local9Tuple-class.html#lam\npygeodesy.ltpTuples.Local9Tuple.phi\tpygeodesy.ltpTuples.Local9Tuple-class.html#phi\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedTuple.iterunits\tpygeodesy.named._NamedTuple-class.html#iterunits\npygeodesy.ltpTuples.ChLV9Tuple.h_LV95\tpygeodesy.ltpTuples.ChLV9Tuple-class.html#h_LV95\npygeodesy.ltpTuples.Local9Tuple.azimuth\tpygeodesy.ltpTuples.Local9Tuple-class.html#azimuth\npygeodesy.ltpTuples.ChLV9Tuple.y\tpygeodesy.ltpTuples.ChLV9Tuple-class.html#y\npygeodesy.ltpTuples.ChLVEN2Tuple\tpygeodesy.ltpTuples.ChLVEN2Tuple-class.html\npygeodesy.named._NamedTuple.toRepr\tpygeodesy.named._NamedTuple-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._NamedTuple.toUnits\tpygeodesy.named._NamedTuple-class.html#toUnits\npygeodesy.named._NamedTuple._validate\tpygeodesy.named._NamedTuple-class.html#_validate\npygeodesy.named._NamedTuple.__str__\tpygeodesy.named._NamedTuple-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._NamedTuple._DOT_\tpygeodesy.named._NamedTuple-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._NamedTuple.reUnit\tpygeodesy.named._NamedTuple-class.html#reUnit\npygeodesy.ltpTuples.ChLVEN2Tuple.unfalse2\tpygeodesy.ltpTuples.ChLVEN2Tuple-class.html#unfalse2\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.ltpTuples.ChLVEN2Tuple._Names_\tpygeodesy.ltpTuples.ChLVEN2Tuple-class.html#_Names_\npygeodesy.named._NamedTuple.__setattr__\tpygeodesy.named._NamedTuple-class.html#__setattr__\npygeodesy.named._NamedTuple.__new__\tpygeodesy.named._NamedTuple-class.html#__new__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.ltpTuples.ChLVEN2Tuple._validated\tpygeodesy.ltpTuples.ChLVEN2Tuple-class.html#_validated\npygeodesy.named._NamedTuple.__getattr__\tpygeodesy.named._NamedTuple-class.html#__getattr__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._NamedTuple._xtend\tpygeodesy.named._NamedTuple-class.html#_xtend\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._NamedTuple.units\tpygeodesy.named._NamedTuple-class.html#units\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedTuple.toStr\tpygeodesy.named._NamedTuple-class.html#toStr\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedTuple.dup\tpygeodesy.named._NamedTuple-class.html#dup\npygeodesy.named._NamedTuple.iterunits\tpygeodesy.named._NamedTuple-class.html#iterunits\npygeodesy.named._NamedTuple.iteritems\tpygeodesy.named._NamedTuple-class.html#iteritems\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._NamedTuple.items\tpygeodesy.named._NamedTuple-class.html#items\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedTuple.__delattr__\tpygeodesy.named._NamedTuple-class.html#__delattr__\npygeodesy.named._NamedTuple.__repr__\tpygeodesy.named._NamedTuple-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._NamedTuple.__hash__\tpygeodesy.named._NamedTuple-class.html#__hash__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.ltpTuples.ChLVEN2Tuple._Units_\tpygeodesy.ltpTuples.ChLVEN2Tuple-class.html#_Units_\npygeodesy.ltpTuples.ChLVYX2Tuple\tpygeodesy.ltpTuples.ChLVYX2Tuple-class.html\npygeodesy.named._NamedTuple.toRepr\tpygeodesy.named._NamedTuple-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._NamedTuple.toUnits\tpygeodesy.named._NamedTuple-class.html#toUnits\npygeodesy.named._NamedTuple._validate\tpygeodesy.named._NamedTuple-class.html#_validate\npygeodesy.named._NamedTuple.__str__\tpygeodesy.named._NamedTuple-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._NamedTuple._DOT_\tpygeodesy.named._NamedTuple-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._NamedTuple.reUnit\tpygeodesy.named._NamedTuple-class.html#reUnit\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.ltpTuples.ChLVYX2Tuple._Names_\tpygeodesy.ltpTuples.ChLVYX2Tuple-class.html#_Names_\npygeodesy.named._NamedTuple.__setattr__\tpygeodesy.named._NamedTuple-class.html#__setattr__\npygeodesy.named._NamedTuple.__new__\tpygeodesy.named._NamedTuple-class.html#__new__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._NamedTuple._validated\tpygeodesy.named._NamedTuple-class.html#_validated\npygeodesy.named._NamedTuple.__getattr__\tpygeodesy.named._NamedTuple-class.html#__getattr__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._NamedTuple._xtend\tpygeodesy.named._NamedTuple-class.html#_xtend\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._NamedTuple.dup\tpygeodesy.named._NamedTuple-class.html#dup\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedTuple.toStr\tpygeodesy.named._NamedTuple-class.html#toStr\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedTuple.units\tpygeodesy.named._NamedTuple-class.html#units\npygeodesy.named._NamedTuple.iterunits\tpygeodesy.named._NamedTuple-class.html#iterunits\npygeodesy.named._NamedTuple.iteritems\tpygeodesy.named._NamedTuple-class.html#iteritems\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._NamedTuple.items\tpygeodesy.named._NamedTuple-class.html#items\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedTuple.__delattr__\tpygeodesy.named._NamedTuple-class.html#__delattr__\npygeodesy.named._NamedTuple.__repr__\tpygeodesy.named._NamedTuple-class.html#__repr__\npygeodesy.ltpTuples.ChLVYX2Tuple.false2\tpygeodesy.ltpTuples.ChLVYX2Tuple-class.html#false2\npygeodesy.named._NamedTuple.__hash__\tpygeodesy.named._NamedTuple-class.html#__hash__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.ltpTuples.ChLVYX2Tuple._Units_\tpygeodesy.ltpTuples.ChLVYX2Tuple-class.html#_Units_\npygeodesy.ltpTuples.ChLVyx2Tuple\tpygeodesy.ltpTuples.ChLVyx2Tuple-class.html\npygeodesy.named._NamedTuple.toRepr\tpygeodesy.named._NamedTuple-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._NamedTuple.toUnits\tpygeodesy.named._NamedTuple-class.html#toUnits\npygeodesy.named._NamedTuple._validate\tpygeodesy.named._NamedTuple-class.html#_validate\npygeodesy.named._NamedTuple.__str__\tpygeodesy.named._NamedTuple-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._NamedTuple._DOT_\tpygeodesy.named._NamedTuple-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._NamedTuple.reUnit\tpygeodesy.named._NamedTuple-class.html#reUnit\npygeodesy.ltpTuples.ChLVyx2Tuple.unfalse2\tpygeodesy.ltpTuples.ChLVyx2Tuple-class.html#unfalse2\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.ltpTuples.ChLVyx2Tuple._Names_\tpygeodesy.ltpTuples.ChLVyx2Tuple-class.html#_Names_\npygeodesy.named._NamedTuple.__setattr__\tpygeodesy.named._NamedTuple-class.html#__setattr__\npygeodesy.named._NamedTuple.__new__\tpygeodesy.named._NamedTuple-class.html#__new__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.ltpTuples.ChLVyx2Tuple._validated\tpygeodesy.ltpTuples.ChLVyx2Tuple-class.html#_validated\npygeodesy.named._NamedTuple.__getattr__\tpygeodesy.named._NamedTuple-class.html#__getattr__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._NamedTuple._xtend\tpygeodesy.named._NamedTuple-class.html#_xtend\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._NamedTuple.units\tpygeodesy.named._NamedTuple-class.html#units\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedTuple.toStr\tpygeodesy.named._NamedTuple-class.html#toStr\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedTuple.dup\tpygeodesy.named._NamedTuple-class.html#dup\npygeodesy.named._NamedTuple.iterunits\tpygeodesy.named._NamedTuple-class.html#iterunits\npygeodesy.named._NamedTuple.iteritems\tpygeodesy.named._NamedTuple-class.html#iteritems\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._NamedTuple.items\tpygeodesy.named._NamedTuple-class.html#items\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedTuple.__delattr__\tpygeodesy.named._NamedTuple-class.html#__delattr__\npygeodesy.named._NamedTuple.__repr__\tpygeodesy.named._NamedTuple-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._NamedTuple.__hash__\tpygeodesy.named._NamedTuple-class.html#__hash__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.ltpTuples.ChLVyx2Tuple._Units_\tpygeodesy.ltpTuples.ChLVyx2Tuple-class.html#_Units_\npygeodesy.ltpTuples.Enu\tpygeodesy.ltpTuples.Enu-class.html\npygeodesy.ltpTuples.XyzLocal.toCartesian\tpygeodesy.ltpTuples.XyzLocal-class.html#toCartesian\npygeodesy.vector3dBase.Vector3dBase.__int__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__int__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.vector3dBase.Vector3dBase.dividedBy_\tpygeodesy.vector3dBase.Vector3dBase-class.html#dividedBy_\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.ltpTuples.XyzLocal.__str__\tpygeodesy.ltpTuples.XyzLocal-class.html#__str__\npygeodesy.ltpTuples.XyzLocal.ned4\tpygeodesy.ltpTuples.XyzLocal-class.html#ned4\npygeodesy.vector3dBase.Vector3dBase.__imatmul__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__imatmul__\npygeodesy.ltpTuples.XyzLocal.toLatLon\tpygeodesy.ltpTuples.XyzLocal-class.html#toLatLon\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.vector3dBase.Vector3dBase.__rdiv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rdiv__\npygeodesy.vector3dBase.Vector3dBase.__rmul__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rmul__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.vector3dBase.Vector3dBase.__lt__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__lt__\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.vector3dBase.Vector3dBase.__cmp__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__cmp__\npygeodesy.vector3d.Vector3d.nearestOn\tpygeodesy.vector3d.Vector3d-class.html#nearestOn\npygeodesy.vector3dBase.Vector3dBase.minus_\tpygeodesy.vector3dBase.Vector3dBase-class.html#minus_\npygeodesy.vector3dBase.Vector3dBase.__rfloordiv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rfloordiv__\npygeodesy.vector3dBase.Vector3dBase.crosserrors\tpygeodesy.vector3dBase.Vector3dBase-class.html#crosserrors\npygeodesy.ltpTuples.XyzLocal.east\tpygeodesy.ltpTuples.XyzLocal-class.html#east\npygeodesy.ltpTuples.XyzLocal.toNed\tpygeodesy.ltpTuples.XyzLocal-class.html#toNed\npygeodesy.vector3dBase.Vector3dBase.rotateAround\tpygeodesy.vector3dBase.Vector3dBase-class.html#rotateAround\npygeodesy.ltpTuples.XyzLocal._ltp_kwds_name3\tpygeodesy.ltpTuples.XyzLocal-class.html#_ltp_kwds_name3\npygeodesy.ltpTuples.XyzLocal.elevation\tpygeodesy.ltpTuples.XyzLocal-class.html#elevation\npygeodesy.vector3dBase.Vector3dBase._roty\tpygeodesy.vector3dBase.Vector3dBase-class.html#_roty\npygeodesy.vector3dBase.Vector3dBase.angleTo\tpygeodesy.vector3dBase.Vector3dBase-class.html#angleTo\npygeodesy.ltpTuples.XyzLocal.toXyz\tpygeodesy.ltpTuples.XyzLocal-class.html#toXyz\npygeodesy.vector3dBase.Vector3dBase.__pow__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__pow__\npygeodesy.vector3dBase.Vector3dBase.__gt__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__gt__\npygeodesy.vector3dBase.Vector3dBase.__bool__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__bool__\npygeodesy.vector3dBase.Vector3dBase.x2y2z23\tpygeodesy.vector3dBase.Vector3dBase-class.html#x2y2z23\npygeodesy.ltpTuples.XyzLocal.down\tpygeodesy.ltpTuples.XyzLocal-class.html#down\npygeodesy.vector3dBase.Vector3dBase.rotate\tpygeodesy.vector3dBase.Vector3dBase-class.html#rotate\npygeodesy.vector3dBase.Vector3dBase.__nonzero__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__nonzero__\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.vector3dBase.Vector3dBase._other_cmp\tpygeodesy.vector3dBase.Vector3dBase-class.html#_other_cmp\npygeodesy.vector3dBase.Vector3dBase._plus\tpygeodesy.vector3dBase.Vector3dBase-class.html#_plus\npygeodesy.vector3dBase.Vector3dBase.times_\tpygeodesy.vector3dBase.Vector3dBase-class.html#times_\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.vector3dBase.Vector3dBase.x\tpygeodesy.vector3dBase.Vector3dBase-class.html#x\npygeodesy.vector3dBase.Vector3dBase.__long__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__long__\npygeodesy.vector3dBase.Vector3dBase.cmp\tpygeodesy.vector3dBase.Vector3dBase-class.html#cmp\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.vector3dBase.Vector3dBase.plus_\tpygeodesy.vector3dBase.Vector3dBase-class.html#plus_\npygeodesy.ltpTuples.XyzLocal.up\tpygeodesy.ltpTuples.XyzLocal-class.html#up\npygeodesy.ltpTuples.XyzLocal.enu4\tpygeodesy.ltpTuples.XyzLocal-class.html#enu4\npygeodesy.vector3d.Vector3d.trilaterate2d2\tpygeodesy.vector3d.Vector3d-class.html#trilaterate2d2\npygeodesy.vector3dBase.Vector3dBase.euclid\tpygeodesy.vector3dBase.Vector3dBase-class.html#euclid\npygeodesy.vector3dBase.Vector3dBase._minus\tpygeodesy.vector3dBase.Vector3dBase-class.html#_minus\npygeodesy.vector3d.Vector3d.trilaterate3d2\tpygeodesy.vector3d.Vector3d-class.html#trilaterate3d2\npygeodesy.vector3dBase.Vector3dBase.__rmod__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rmod__\npygeodesy.vector3dBase.Vector3dBase._crosserrors\tpygeodesy.vector3dBase.Vector3dBase-class.html#_crosserrors\npygeodesy.vector3dBase.Vector3dBase._mapped\tpygeodesy.vector3dBase.Vector3dBase-class.html#_mapped\npygeodesy.vector3dBase.Vector3dBase.sum\tpygeodesy.vector3dBase.Vector3dBase-class.html#sum\npygeodesy.ltpTuples.XyzLocal.toAer\tpygeodesy.ltpTuples.XyzLocal-class.html#toAer\npygeodesy.vector3dBase.Vector3dBase._ll\tpygeodesy.vector3dBase.Vector3dBase-class.html#_ll\npygeodesy.vector3dBase.Vector3dBase.isequalTo\tpygeodesy.vector3dBase.Vector3dBase-class.html#isequalTo\npygeodesy.vector3dBase.Vector3dBase.__ne__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__ne__\npygeodesy.ltpTuples.Enu.xyzLocal\tpygeodesy.ltpTuples.Enu-class.html#xyzLocal\npygeodesy.vector3dBase.Vector3dBase.__ifloordiv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__ifloordiv__\npygeodesy.ltpTuples.XyzLocal.groundrange\tpygeodesy.ltpTuples.XyzLocal-class.html#groundrange\npygeodesy.vector3dBase.Vector3dBase.equals\tpygeodesy.vector3dBase.Vector3dBase-class.html#equals\npygeodesy.vector3dBase.Vector3dBase.__divmod__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__divmod__\npygeodesy.vector3d.Vector3d.nearestOn6\tpygeodesy.vector3d.Vector3d-class.html#nearestOn6\npygeodesy.vector3dBase.Vector3dBase.__rmatmul__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rmatmul__\npygeodesy.vector3dBase.Vector3dBase.floats\tpygeodesy.vector3dBase.Vector3dBase-class.html#floats\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.vector3d.Vector3d.meeus2\tpygeodesy.vector3d.Vector3d-class.html#meeus2\npygeodesy.ltpTuples.XyzLocal.ltp\tpygeodesy.ltpTuples.XyzLocal-class.html#ltp\npygeodesy.vector3dBase.Vector3dBase.__imul__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__imul__\npygeodesy.vector3dBase.Vector3dBase.__trunc__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__trunc__\npygeodesy.vector3dBase.Vector3dBase.times\tpygeodesy.vector3dBase.Vector3dBase-class.html#times\npygeodesy.vector3dBase.Vector3dBase.length\tpygeodesy.vector3dBase.Vector3dBase-class.html#length\npygeodesy.vector3dBase.Vector3dBase.plus\tpygeodesy.vector3dBase.Vector3dBase-class.html#plus\npygeodesy.vector3dBase.Vector3dBase.__mul__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__mul__\npygeodesy.vector3dBase.Vector3dBase.__matmul__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__matmul__\npygeodesy.vector3d.Vector3d.circin6\tpygeodesy.vector3d.Vector3d-class.html#circin6\npygeodesy.vector3dBase.Vector3dBase.homogeneous\tpygeodesy.vector3dBase.Vector3dBase-class.html#homogeneous\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.ltpTuples.Enu.toUvw\tpygeodesy.ltpTuples.Enu-class.html#toUvw\npygeodesy.vector3dBase.Vector3dBase.__rsub__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rsub__\npygeodesy.vector3dBase.Vector3dBase.pow\tpygeodesy.vector3dBase.Vector3dBase-class.html#pow\npygeodesy.vector3dBase.Vector3dBase.xyz\tpygeodesy.vector3dBase.Vector3dBase-class.html#xyz\npygeodesy.vector3dBase.Vector3dBase.others\tpygeodesy.vector3dBase.Vector3dBase-class.html#others\npygeodesy.ltpTuples.XyzLocal.aer4\tpygeodesy.ltpTuples.XyzLocal-class.html#aer4\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.ltpTuples.XyzLocal.classof\tpygeodesy.ltpTuples.XyzLocal-class.html#classof\npygeodesy.ltpTuples.XyzLocal.slantrange\tpygeodesy.ltpTuples.XyzLocal-class.html#slantrange\npygeodesy.vector3dBase.Vector3dBase.ints\tpygeodesy.vector3dBase.Vector3dBase-class.html#ints\npygeodesy.vector3dBase.Vector3dBase.negate\tpygeodesy.vector3dBase.Vector3dBase-class.html#negate\npygeodesy.vector3dBase.Vector3dBase.apply\tpygeodesy.vector3dBase.Vector3dBase-class.html#apply\npygeodesy.vector3dBase.Vector3dBase.equirectangular\tpygeodesy.vector3dBase.Vector3dBase-class.html#equirectangular\npygeodesy.vector3dBase.Vector3dBase.unit\tpygeodesy.vector3dBase.Vector3dBase-class.html#unit\npygeodesy.vector3dBase.Vector3dBase.__float__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__float__\npygeodesy.vector3dBase.Vector3dBase.__rpow__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rpow__\npygeodesy.vector3d.Vector3d.soddy4\tpygeodesy.vector3d.Vector3d-class.html#soddy4\npygeodesy.vector3dBase.Vector3dBase._N_vector\tpygeodesy.vector3dBase.Vector3dBase-class.html#_N_vector\npygeodesy.vector3d.Vector3d.iscolinearWith\tpygeodesy.vector3d.Vector3d-class.html#iscolinearWith\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.vector3dBase.Vector3dBase.__itruediv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__itruediv__\npygeodesy.vector3dBase.Vector3dBase.dividedBy\tpygeodesy.vector3dBase.Vector3dBase-class.html#dividedBy\npygeodesy.vector3dBase.Vector3dBase.__isub__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__isub__\npygeodesy.vector3dBase.Vector3dBase.__rdivmod__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rdivmod__\npygeodesy.ltpTuples.XyzLocal.north\tpygeodesy.ltpTuples.XyzLocal-class.html#north\npygeodesy.ltpTuples.XyzLocal.ecef\tpygeodesy.ltpTuples.XyzLocal-class.html#ecef\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.vector3d.Vector3d.circum3\tpygeodesy.vector3d.Vector3d-class.html#circum3\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.vector3dBase.Vector3dBase.__eq__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__eq__\npygeodesy.ltpTuples.XyzLocal.toEnu\tpygeodesy.ltpTuples.XyzLocal-class.html#toEnu\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.vector3dBase.Vector3dBase.__round__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__round__\npygeodesy.vector3dBase.Vector3dBase.bools\tpygeodesy.vector3dBase.Vector3dBase-class.html#bools\npygeodesy.vector3dBase.Vector3dBase.__mod__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__mod__\npygeodesy.ltpTuples.XyzLocal.xyz4\tpygeodesy.ltpTuples.XyzLocal-class.html#xyz4\npygeodesy.vector3dBase.Vector3dBase.xyz3\tpygeodesy.vector3dBase.Vector3dBase-class.html#xyz3\npygeodesy.vector3dBase.Vector3dBase.__truediv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__truediv__\npygeodesy.vector3dBase.Vector3dBase.__iadd__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__iadd__\npygeodesy.vector3d.Vector3d.circum4_\tpygeodesy.vector3d.Vector3d-class.html#circum4_\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.vector3dBase.Vector3dBase.__le__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__le__\npygeodesy.vector3dBase.Vector3dBase.__floordiv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__floordiv__\npygeodesy.vector3dBase.Vector3dBase.__hash__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__hash__\npygeodesy.vector3dBase.Vector3dBase.__sub__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__sub__\npygeodesy.vector3dBase.Vector3dBase.z\tpygeodesy.vector3dBase.Vector3dBase-class.html#z\npygeodesy.vector3dBase.Vector3dBase._xyz\tpygeodesy.vector3dBase.Vector3dBase-class.html#_xyz\npygeodesy.vector3dBase.Vector3dBase.minus\tpygeodesy.vector3dBase.Vector3dBase-class.html#minus\npygeodesy.vector3dBase.Vector3dBase.__ge__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__ge__\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.vector3d.Vector3d.bearing\tpygeodesy.vector3d.Vector3d-class.html#bearing\npygeodesy.vector3dBase.Vector3dBase.__rtruediv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rtruediv__\npygeodesy.vector3dBase.Vector3dBase.floorDividedBy_\tpygeodesy.vector3dBase.Vector3dBase-class.html#floorDividedBy_\npygeodesy.vector3dBase.Vector3dBase.x2y2z2\tpygeodesy.vector3dBase.Vector3dBase-class.html#x2y2z2\npygeodesy.vector3dBase.Vector3dBase.__radd__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__radd__\npygeodesy.vector3d.Vector3d.parse\tpygeodesy.vector3d.Vector3d-class.html#parse\npygeodesy.vector3dBase.Vector3dBase.floorDividedBy\tpygeodesy.vector3dBase.Vector3dBase-class.html#floorDividedBy\npygeodesy.vector3dBase.Vector3dBase.__floor__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__floor__\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.ltpTuples.Enu.__init__\tpygeodesy.ltpTuples.Enu-class.html#__init__\npygeodesy.ltpTuples.Enu._toStr\tpygeodesy.ltpTuples.Enu-class.html#_toStr\npygeodesy.vector3dBase.Vector3dBase.__imod__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__imod__\npygeodesy.vector3dBase.Vector3dBase.fabs\tpygeodesy.vector3dBase.Vector3dBase-class.html#fabs\npygeodesy.vector3dBase.Vector3dBase._times\tpygeodesy.vector3dBase.Vector3dBase-class.html#_times\npygeodesy.vector3d.Vector3d.radii11\tpygeodesy.vector3d.Vector3d-class.html#radii11\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.vector3dBase.Vector3dBase.cross\tpygeodesy.vector3dBase.Vector3dBase-class.html#cross\npygeodesy.vector3dBase.Vector3dBase.__pos__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__pos__\npygeodesy.vector3dBase.Vector3dBase.__abs__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__abs__\npygeodesy.vector3dBase.Vector3dBase.to3xyz\tpygeodesy.vector3dBase.Vector3dBase-class.html#to3xyz\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._NamedBase.__repr__\tpygeodesy.named._NamedBase-class.html#__repr__\npygeodesy.ltpTuples.XyzLocal._ltp\tpygeodesy.ltpTuples.XyzLocal-class.html#_ltp\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.vector3dBase.Vector3dBase.__idiv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__idiv__\npygeodesy.vector3dBase.Vector3dBase._united\tpygeodesy.vector3dBase.Vector3dBase-class.html#_united\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.vector3dBase.Vector3dBase._fromll\tpygeodesy.vector3dBase.Vector3dBase-class.html#_fromll\npygeodesy.vector3dBase.Vector3dBase.__add__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__add__\npygeodesy.vector3dBase.Vector3dBase.intermediateTo\tpygeodesy.vector3dBase.Vector3dBase-class.html#intermediateTo\npygeodesy.vector3dBase.Vector3dBase.length2\tpygeodesy.vector3dBase.Vector3dBase-class.html#length2\npygeodesy.ltpTuples.XyzLocal.toLocal9Tuple\tpygeodesy.ltpTuples.XyzLocal-class.html#toLocal9Tuple\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.vector3dBase.Vector3dBase.isconjugateTo\tpygeodesy.vector3dBase.Vector3dBase-class.html#isconjugateTo\npygeodesy.vector3dBase.Vector3dBase.__ipow__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__ipow__\npygeodesy.vector3dBase.Vector3dBase.__div__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__div__\npygeodesy.vector3dBase.Vector3dBase.__ceil__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__ceil__\npygeodesy.vector3dBase.Vector3dBase.__neg__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__neg__\npygeodesy.ltpTuples.XyzLocal.azimuth\tpygeodesy.ltpTuples.XyzLocal-class.html#azimuth\npygeodesy.vector3dBase.Vector3dBase.y\tpygeodesy.vector3dBase.Vector3dBase-class.html#y\npygeodesy.vector3dBase.Vector3dBase.dot\tpygeodesy.vector3dBase.Vector3dBase-class.html#dot\npygeodesy.ltpTuples.Enu4Tuple\tpygeodesy.ltpTuples.Enu4Tuple-class.html\npygeodesy.named._NamedTuple.toRepr\tpygeodesy.named._NamedTuple-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._NamedTuple.toUnits\tpygeodesy.named._NamedTuple-class.html#toUnits\npygeodesy.named._NamedTuple._validate\tpygeodesy.named._NamedTuple-class.html#_validate\npygeodesy.named._NamedTuple.__str__\tpygeodesy.named._NamedTuple-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._NamedTuple._DOT_\tpygeodesy.named._NamedTuple-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._NamedTuple.reUnit\tpygeodesy.named._NamedTuple-class.html#reUnit\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.ltpTuples.Enu4Tuple._Names_\tpygeodesy.ltpTuples.Enu4Tuple-class.html#_Names_\npygeodesy.named._NamedTuple.__setattr__\tpygeodesy.named._NamedTuple-class.html#__setattr__\npygeodesy.named._NamedTuple.__new__\tpygeodesy.named._NamedTuple-class.html#__new__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._NamedTuple._validated\tpygeodesy.named._NamedTuple-class.html#_validated\npygeodesy.named._NamedTuple.__getattr__\tpygeodesy.named._NamedTuple-class.html#__getattr__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._NamedTuple._xtend\tpygeodesy.named._NamedTuple-class.html#_xtend\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._NamedTuple.dup\tpygeodesy.named._NamedTuple-class.html#dup\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.ltpTuples.Enu4Tuple._toEnu\tpygeodesy.ltpTuples.Enu4Tuple-class.html#_toEnu\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.ltpTuples.Enu4Tuple.xyzLocal\tpygeodesy.ltpTuples.Enu4Tuple-class.html#xyzLocal\npygeodesy.named._NamedTuple.toStr\tpygeodesy.named._NamedTuple-class.html#toStr\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedTuple.units\tpygeodesy.named._NamedTuple-class.html#units\npygeodesy.named._NamedTuple.iterunits\tpygeodesy.named._NamedTuple-class.html#iterunits\npygeodesy.named._NamedTuple.iteritems\tpygeodesy.named._NamedTuple-class.html#iteritems\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._NamedTuple.items\tpygeodesy.named._NamedTuple-class.html#items\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedTuple.__delattr__\tpygeodesy.named._NamedTuple-class.html#__delattr__\npygeodesy.named._NamedTuple.__repr__\tpygeodesy.named._NamedTuple-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._NamedTuple.__hash__\tpygeodesy.named._NamedTuple-class.html#__hash__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.ltpTuples.Enu4Tuple._Units_\tpygeodesy.ltpTuples.Enu4Tuple-class.html#_Units_\npygeodesy.ltpTuples.Footprint5Tuple\tpygeodesy.ltpTuples.Footprint5Tuple-class.html\npygeodesy.named._NamedTuple.toRepr\tpygeodesy.named._NamedTuple-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._NamedTuple.toUnits\tpygeodesy.named._NamedTuple-class.html#toUnits\npygeodesy.named._NamedTuple._validate\tpygeodesy.named._NamedTuple-class.html#_validate\npygeodesy.named._NamedTuple.__str__\tpygeodesy.named._NamedTuple-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._NamedTuple._DOT_\tpygeodesy.named._NamedTuple-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._NamedTuple.reUnit\tpygeodesy.named._NamedTuple-class.html#reUnit\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.ltpTuples.Footprint5Tuple._Names_\tpygeodesy.ltpTuples.Footprint5Tuple-class.html#_Names_\npygeodesy.named._NamedTuple.__setattr__\tpygeodesy.named._NamedTuple-class.html#__setattr__\npygeodesy.named._NamedTuple.__new__\tpygeodesy.named._NamedTuple-class.html#__new__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._NamedTuple._validated\tpygeodesy.named._NamedTuple-class.html#_validated\npygeodesy.named._NamedTuple.__getattr__\tpygeodesy.named._NamedTuple-class.html#__getattr__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._NamedTuple._xtend\tpygeodesy.named._NamedTuple-class.html#_xtend\npygeodesy.ltpTuples.Footprint5Tuple.toLatLon5\tpygeodesy.ltpTuples.Footprint5Tuple-class.html#toLatLon5\npygeodesy.named._NamedTuple.dup\tpygeodesy.named._NamedTuple-class.html#dup\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedTuple.toStr\tpygeodesy.named._NamedTuple-class.html#toStr\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedTuple.units\tpygeodesy.named._NamedTuple-class.html#units\npygeodesy.named._NamedTuple.iterunits\tpygeodesy.named._NamedTuple-class.html#iterunits\npygeodesy.ltpTuples.Footprint5Tuple.xyzLocal5\tpygeodesy.ltpTuples.Footprint5Tuple-class.html#xyzLocal5\npygeodesy.named._NamedTuple.iteritems\tpygeodesy.named._NamedTuple-class.html#iteritems\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._NamedTuple.items\tpygeodesy.named._NamedTuple-class.html#items\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedTuple.__delattr__\tpygeodesy.named._NamedTuple-class.html#__delattr__\npygeodesy.named._NamedTuple.__repr__\tpygeodesy.named._NamedTuple-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._NamedTuple.__hash__\tpygeodesy.named._NamedTuple-class.html#__hash__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.ltpTuples.Footprint5Tuple._Units_\tpygeodesy.ltpTuples.Footprint5Tuple-class.html#_Units_\npygeodesy.ltpTuples.Local9Tuple\tpygeodesy.ltpTuples.Local9Tuple-class.html\npygeodesy.ltpTuples.Local9Tuple.toCartesian\tpygeodesy.ltpTuples.Local9Tuple-class.html#toCartesian\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedTuple._validate\tpygeodesy.named._NamedTuple-class.html#_validate\npygeodesy.named._NamedTuple.__str__\tpygeodesy.named._NamedTuple-class.html#__str__\npygeodesy.named._NamedTuple.iteritems\tpygeodesy.named._NamedTuple-class.html#iteritems\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.ltpTuples.Local9Tuple.toLatLon\tpygeodesy.ltpTuples.Local9Tuple-class.html#toLatLon\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._NamedTuple._validated\tpygeodesy.named._NamedTuple-class.html#_validated\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._NamedTuple._xtend\tpygeodesy.named._NamedTuple-class.html#_xtend\npygeodesy.ltpTuples.Local9Tuple.east\tpygeodesy.ltpTuples.Local9Tuple-class.html#east\npygeodesy.ltpTuples.Local9Tuple.toNed\tpygeodesy.ltpTuples.Local9Tuple-class.html#toNed\npygeodesy.ltpTuples.Local9Tuple.elevation\tpygeodesy.ltpTuples.Local9Tuple-class.html#elevation\npygeodesy.named._NamedTuple.toStr\tpygeodesy.named._NamedTuple-class.html#toStr\npygeodesy.ltpTuples.Local9Tuple.toXyz\tpygeodesy.ltpTuples.Local9Tuple-class.html#toXyz\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.ltpTuples.Local9Tuple._Units_\tpygeodesy.ltpTuples.Local9Tuple-class.html#_Units_\npygeodesy.named._NamedTuple.toRepr\tpygeodesy.named._NamedTuple-class.html#toRepr\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.ltpTuples.Local9Tuple._Names_\tpygeodesy.ltpTuples.Local9Tuple-class.html#_Names_\npygeodesy.ltpTuples.Local9Tuple.latlon\tpygeodesy.ltpTuples.Local9Tuple-class.html#latlon\npygeodesy.named._NamedTuple.__setattr__\tpygeodesy.named._NamedTuple-class.html#__setattr__\npygeodesy.named._NamedTuple.__getattr__\tpygeodesy.named._NamedTuple-class.html#__getattr__\npygeodesy.ltpTuples.Local9Tuple.philam\tpygeodesy.ltpTuples.Local9Tuple-class.html#philam\npygeodesy.ltpTuples.Local9Tuple.toAer\tpygeodesy.ltpTuples.Local9Tuple-class.html#toAer\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.ltpTuples.Local9Tuple.xyzLocal\tpygeodesy.ltpTuples.Local9Tuple-class.html#xyzLocal\npygeodesy.ltpTuples.Local9Tuple.groundrange\tpygeodesy.ltpTuples.Local9Tuple-class.html#groundrange\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._NamedTuple.items\tpygeodesy.named._NamedTuple-class.html#items\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._NamedTuple.__delattr__\tpygeodesy.named._NamedTuple-class.html#__delattr__\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._NamedTuple.toUnits\tpygeodesy.named._NamedTuple-class.html#toUnits\npygeodesy.ltpTuples.Local9Tuple.xyz\tpygeodesy.ltpTuples.Local9Tuple-class.html#xyz\npygeodesy.ltpTuples.Local9Tuple.down\tpygeodesy.ltpTuples.Local9Tuple-class.html#down\npygeodesy.named._NamedTuple._DOT_\tpygeodesy.named._NamedTuple-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.ltpTuples.Local9Tuple.slantrange\tpygeodesy.ltpTuples.Local9Tuple-class.html#slantrange\npygeodesy.named._NamedTuple.dup\tpygeodesy.named._NamedTuple-class.html#dup\npygeodesy.ltpTuples.Local9Tuple.north\tpygeodesy.ltpTuples.Local9Tuple-class.html#north\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.ltpTuples.Local9Tuple.toEnu\tpygeodesy.ltpTuples.Local9Tuple-class.html#toEnu\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.ltpTuples.Local9Tuple.latlonheight\tpygeodesy.ltpTuples.Local9Tuple-class.html#latlonheight\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.ltpTuples.Local9Tuple.up\tpygeodesy.ltpTuples.Local9Tuple-class.html#up\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedTuple.__hash__\tpygeodesy.named._NamedTuple-class.html#__hash__\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._NamedTuple.reUnit\tpygeodesy.named._NamedTuple-class.html#reUnit\npygeodesy.named._NamedTuple.__new__\tpygeodesy.named._NamedTuple-class.html#__new__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.ltpTuples.Local9Tuple.philamheight\tpygeodesy.ltpTuples.Local9Tuple-class.html#philamheight\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._NamedTuple.units\tpygeodesy.named._NamedTuple-class.html#units\npygeodesy.named._NamedTuple.__repr__\tpygeodesy.named._NamedTuple-class.html#__repr__\npygeodesy.ltpTuples.Local9Tuple.lam\tpygeodesy.ltpTuples.Local9Tuple-class.html#lam\npygeodesy.ltpTuples.Local9Tuple.phi\tpygeodesy.ltpTuples.Local9Tuple-class.html#phi\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedTuple.iterunits\tpygeodesy.named._NamedTuple-class.html#iterunits\npygeodesy.ltpTuples.Local9Tuple.azimuth\tpygeodesy.ltpTuples.Local9Tuple-class.html#azimuth\npygeodesy.ltpTuples.Los\tpygeodesy.ltpTuples.Los-class.html\npygeodesy.ltpTuples.Aer.toRepr\tpygeodesy.ltpTuples.Aer-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.ltpTuples.Los.toUvw\tpygeodesy.ltpTuples.Los-class.html#toUvw\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.ltpTuples._AbcBase.toNed\tpygeodesy.ltpTuples._AbcBase-class.html#toNed\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.ltpTuples._AbcBase.xyz\tpygeodesy.ltpTuples._AbcBase-class.html#xyz\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.ltpTuples.Aer.down\tpygeodesy.ltpTuples.Aer-class.html#down\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.ltpTuples.Aer.slantrange\tpygeodesy.ltpTuples.Aer-class.html#slantrange\npygeodesy.ltpTuples.Aer.elevation\tpygeodesy.ltpTuples.Aer-class.html#elevation\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.ltpTuples.Los.__init__\tpygeodesy.ltpTuples.Los-class.html#__init__\npygeodesy.ltpTuples.Aer._toStr\tpygeodesy.ltpTuples.Aer-class.html#_toStr\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.ltpTuples._AbcBase.toAer\tpygeodesy.ltpTuples._AbcBase-class.html#toAer\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.ltpTuples.Aer._elevation\tpygeodesy.ltpTuples.Aer-class.html#_elevation\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.ltpTuples.Aer.east\tpygeodesy.ltpTuples.Aer-class.html#east\npygeodesy.named._NamedBase.__str__\tpygeodesy.named._NamedBase-class.html#__str__\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.ltpTuples._AbcBase._ltp\tpygeodesy.ltpTuples._AbcBase-class.html#_ltp\npygeodesy.ltpTuples.Aer.north\tpygeodesy.ltpTuples.Aer-class.html#north\npygeodesy.ltpTuples._AbcBase.xyzLocal\tpygeodesy.ltpTuples._AbcBase-class.html#xyzLocal\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.ltpTuples.Aer.toStr\tpygeodesy.ltpTuples.Aer-class.html#toStr\npygeodesy.ltpTuples.Aer.groundrange\tpygeodesy.ltpTuples.Aer-class.html#groundrange\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.ltpTuples._AbcBase.toXyz\tpygeodesy.ltpTuples._AbcBase-class.html#toXyz\npygeodesy.named._NamedBase.others\tpygeodesy.named._NamedBase-class.html#others\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.ltpTuples.Aer._azimuth\tpygeodesy.ltpTuples.Aer-class.html#_azimuth\npygeodesy.ltpTuples.Los.toEnu\tpygeodesy.ltpTuples.Los-class.html#toEnu\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.ltpTuples.Aer.aer4\tpygeodesy.ltpTuples.Aer-class.html#aer4\npygeodesy.ltpTuples._AbcBase.ltp\tpygeodesy.ltpTuples._AbcBase-class.html#ltp\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.ltpTuples.Aer.xyz4\tpygeodesy.ltpTuples.Aer-class.html#xyz4\npygeodesy.ltpTuples._AbcBase.xyz3\tpygeodesy.ltpTuples._AbcBase-class.html#xyz3\npygeodesy.ltpTuples.Aer.up\tpygeodesy.ltpTuples.Aer-class.html#up\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.ltpTuples.Aer._slantrange\tpygeodesy.ltpTuples.Aer-class.html#_slantrange\npygeodesy.named._NamedBase.__repr__\tpygeodesy.named._NamedBase-class.html#__repr__\npygeodesy.ltpTuples.Aer.azimuth\tpygeodesy.ltpTuples.Aer-class.html#azimuth\npygeodesy.ltpTuples.Aer.y\tpygeodesy.ltpTuples.Aer-class.html#y\npygeodesy.ltpTuples.Aer.x\tpygeodesy.ltpTuples.Aer-class.html#x\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.ltpTuples.Aer.z\tpygeodesy.ltpTuples.Aer-class.html#z\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.ltpTuples.Ned\tpygeodesy.ltpTuples.Ned-class.html\npygeodesy.ltpTuples.Ned.toRepr\tpygeodesy.ltpTuples.Ned-class.html#toRepr\npygeodesy.ltpTuples.Ned.bearing\tpygeodesy.ltpTuples.Ned-class.html#bearing\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.ltpTuples._AbcBase.toNed\tpygeodesy.ltpTuples._AbcBase-class.html#toNed\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.ltpTuples._AbcBase.xyz\tpygeodesy.ltpTuples._AbcBase-class.html#xyz\npygeodesy.ltpTuples.Ned.ned4\tpygeodesy.ltpTuples.Ned-class.html#ned4\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.ltpTuples.Ned.aer4\tpygeodesy.ltpTuples.Ned-class.html#aer4\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.ltpTuples.Ned.slantrange\tpygeodesy.ltpTuples.Ned-class.html#slantrange\npygeodesy.ltpTuples.Ned.elevation\tpygeodesy.ltpTuples.Ned-class.html#elevation\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.ltpTuples.Ned.to3ned\tpygeodesy.ltpTuples.Ned-class.html#to3ned\npygeodesy.ltpTuples.Ned.__init__\tpygeodesy.ltpTuples.Ned-class.html#__init__\npygeodesy.ltpTuples.Ned._toStr\tpygeodesy.ltpTuples.Ned-class.html#_toStr\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.ltpTuples.Ned.down\tpygeodesy.ltpTuples.Ned-class.html#down\npygeodesy.ltpTuples.Ned.ned\tpygeodesy.ltpTuples.Ned-class.html#ned\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.ltpTuples._AbcBase.toAer\tpygeodesy.ltpTuples._AbcBase-class.html#toAer\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.ltpTuples.Ned.toStr\tpygeodesy.ltpTuples.Ned-class.html#toStr\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.ltpTuples.Ned.east\tpygeodesy.ltpTuples.Ned-class.html#east\npygeodesy.named._NamedBase.__str__\tpygeodesy.named._NamedBase-class.html#__str__\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.ltpTuples._AbcBase._ltp\tpygeodesy.ltpTuples._AbcBase-class.html#_ltp\npygeodesy.ltpTuples.Ned.north\tpygeodesy.ltpTuples.Ned-class.html#north\npygeodesy.ltpTuples._AbcBase.xyzLocal\tpygeodesy.ltpTuples._AbcBase-class.html#xyzLocal\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.ltpTuples.Ned._east\tpygeodesy.ltpTuples.Ned-class.html#_east\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.ltpTuples.Ned.groundrange\tpygeodesy.ltpTuples.Ned-class.html#groundrange\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.ltpTuples._AbcBase.toXyz\tpygeodesy.ltpTuples._AbcBase-class.html#toXyz\npygeodesy.named._NamedBase.others\tpygeodesy.named._NamedBase-class.html#others\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.ltpTuples.Ned._down\tpygeodesy.ltpTuples.Ned-class.html#_down\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.ltpTuples._AbcBase.toEnu\tpygeodesy.ltpTuples._AbcBase-class.html#toEnu\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.ltpTuples.Ned.toVector3d\tpygeodesy.ltpTuples.Ned-class.html#toVector3d\npygeodesy.ltpTuples.Ned._north\tpygeodesy.ltpTuples.Ned-class.html#_north\npygeodesy.ltpTuples._AbcBase.ltp\tpygeodesy.ltpTuples._AbcBase-class.html#ltp\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.ltpTuples.Ned.xyz4\tpygeodesy.ltpTuples.Ned-class.html#xyz4\npygeodesy.ltpTuples._AbcBase.xyz3\tpygeodesy.ltpTuples._AbcBase-class.html#xyz3\npygeodesy.ltpTuples.Ned.up\tpygeodesy.ltpTuples.Ned-class.html#up\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.ltpTuples.Ned.length\tpygeodesy.ltpTuples.Ned-class.html#length\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.named._NamedBase.__repr__\tpygeodesy.named._NamedBase-class.html#__repr__\npygeodesy.ltpTuples.Ned.azimuth\tpygeodesy.ltpTuples.Ned-class.html#azimuth\npygeodesy.ltpTuples.Ned.y\tpygeodesy.ltpTuples.Ned-class.html#y\npygeodesy.ltpTuples.Ned.x\tpygeodesy.ltpTuples.Ned-class.html#x\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.ltpTuples.Ned.z\tpygeodesy.ltpTuples.Ned-class.html#z\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.ltpTuples.Ned4Tuple\tpygeodesy.ltpTuples.Ned4Tuple-class.html\npygeodesy.named._NamedTuple.toRepr\tpygeodesy.named._NamedTuple-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._NamedTuple.toUnits\tpygeodesy.named._NamedTuple-class.html#toUnits\npygeodesy.named._NamedTuple._validate\tpygeodesy.named._NamedTuple-class.html#_validate\npygeodesy.named._NamedTuple.__str__\tpygeodesy.named._NamedTuple-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._NamedTuple._DOT_\tpygeodesy.named._NamedTuple-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._NamedTuple.reUnit\tpygeodesy.named._NamedTuple-class.html#reUnit\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.ltpTuples.Ned4Tuple._Names_\tpygeodesy.ltpTuples.Ned4Tuple-class.html#_Names_\npygeodesy.named._NamedTuple.__setattr__\tpygeodesy.named._NamedTuple-class.html#__setattr__\npygeodesy.named._NamedTuple.__new__\tpygeodesy.named._NamedTuple-class.html#__new__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._NamedTuple._validated\tpygeodesy.named._NamedTuple-class.html#_validated\npygeodesy.named._NamedTuple.__getattr__\tpygeodesy.named._NamedTuple-class.html#__getattr__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._NamedTuple._xtend\tpygeodesy.named._NamedTuple-class.html#_xtend\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._NamedTuple.dup\tpygeodesy.named._NamedTuple-class.html#dup\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.ltpTuples.Ned4Tuple.xyzLocal\tpygeodesy.ltpTuples.Ned4Tuple-class.html#xyzLocal\npygeodesy.named._NamedTuple.toStr\tpygeodesy.named._NamedTuple-class.html#toStr\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedTuple.units\tpygeodesy.named._NamedTuple-class.html#units\npygeodesy.named._NamedTuple.iterunits\tpygeodesy.named._NamedTuple-class.html#iterunits\npygeodesy.named._NamedTuple.iteritems\tpygeodesy.named._NamedTuple-class.html#iteritems\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._NamedTuple.items\tpygeodesy.named._NamedTuple-class.html#items\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedTuple.__delattr__\tpygeodesy.named._NamedTuple-class.html#__delattr__\npygeodesy.named._NamedTuple.__repr__\tpygeodesy.named._NamedTuple-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._NamedTuple.__hash__\tpygeodesy.named._NamedTuple-class.html#__hash__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.ltpTuples.Ned4Tuple._toNed\tpygeodesy.ltpTuples.Ned4Tuple-class.html#_toNed\npygeodesy.ltpTuples.Ned4Tuple._Units_\tpygeodesy.ltpTuples.Ned4Tuple-class.html#_Units_\npygeodesy.ltpTuples.Uvw\tpygeodesy.ltpTuples.Uvw-class.html\npygeodesy.vector3d.Vector3d.toCartesian\tpygeodesy.vector3d.Vector3d-class.html#toCartesian\npygeodesy.vector3dBase.Vector3dBase.__int__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__int__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.vector3dBase.Vector3dBase.dividedBy_\tpygeodesy.vector3dBase.Vector3dBase-class.html#dividedBy_\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedBase.__str__\tpygeodesy.named._NamedBase-class.html#__str__\npygeodesy.vector3dBase.Vector3dBase.__imatmul__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__imatmul__\npygeodesy.ltpTuples.Uvw.uvw\tpygeodesy.ltpTuples.Uvw-class.html#uvw\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.vector3dBase.Vector3dBase.__rdiv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rdiv__\npygeodesy.vector3dBase.Vector3dBase.__rmul__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rmul__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.vector3dBase.Vector3dBase.__lt__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__lt__\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.vector3dBase.Vector3dBase.__cmp__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__cmp__\npygeodesy.vector3d.Vector3d.nearestOn\tpygeodesy.vector3d.Vector3d-class.html#nearestOn\npygeodesy.vector3dBase.Vector3dBase.minus_\tpygeodesy.vector3dBase.Vector3dBase-class.html#minus_\npygeodesy.vector3dBase.Vector3dBase.__rfloordiv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rfloordiv__\npygeodesy.vector3dBase.Vector3dBase.crosserrors\tpygeodesy.vector3dBase.Vector3dBase-class.html#crosserrors\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.vector3dBase.Vector3dBase.rotateAround\tpygeodesy.vector3dBase.Vector3dBase-class.html#rotateAround\npygeodesy.vector3dBase.Vector3dBase._roty\tpygeodesy.vector3dBase.Vector3dBase-class.html#_roty\npygeodesy.vector3dBase.Vector3dBase.angleTo\tpygeodesy.vector3dBase.Vector3dBase-class.html#angleTo\npygeodesy.vector3dBase.Vector3dBase.__pow__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__pow__\npygeodesy.vector3dBase.Vector3dBase.__gt__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__gt__\npygeodesy.vector3dBase.Vector3dBase.__bool__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__bool__\npygeodesy.vector3dBase.Vector3dBase.x2y2z23\tpygeodesy.vector3dBase.Vector3dBase-class.html#x2y2z23\npygeodesy.vector3dBase.Vector3dBase.rotate\tpygeodesy.vector3dBase.Vector3dBase-class.html#rotate\npygeodesy.vector3dBase.Vector3dBase.__nonzero__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__nonzero__\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.vector3dBase.Vector3dBase._ll\tpygeodesy.vector3dBase.Vector3dBase-class.html#_ll\npygeodesy.vector3dBase.Vector3dBase._plus\tpygeodesy.vector3dBase.Vector3dBase-class.html#_plus\npygeodesy.vector3dBase.Vector3dBase.times_\tpygeodesy.vector3dBase.Vector3dBase-class.html#times_\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.vector3dBase.Vector3dBase.x\tpygeodesy.vector3dBase.Vector3dBase-class.html#x\npygeodesy.vector3dBase.Vector3dBase.__long__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__long__\npygeodesy.vector3dBase.Vector3dBase.cmp\tpygeodesy.vector3dBase.Vector3dBase-class.html#cmp\npygeodesy.vector3dBase.Vector3dBase.__ceil__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__ceil__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.vector3dBase.Vector3dBase.plus_\tpygeodesy.vector3dBase.Vector3dBase-class.html#plus_\npygeodesy.vector3dBase.Vector3dBase.__truediv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__truediv__\npygeodesy.vector3d.Vector3d.trilaterate2d2\tpygeodesy.vector3d.Vector3d-class.html#trilaterate2d2\npygeodesy.vector3dBase.Vector3dBase.euclid\tpygeodesy.vector3dBase.Vector3dBase-class.html#euclid\npygeodesy.vector3dBase.Vector3dBase._minus\tpygeodesy.vector3dBase.Vector3dBase-class.html#_minus\npygeodesy.vector3d.Vector3d.trilaterate3d2\tpygeodesy.vector3d.Vector3d-class.html#trilaterate3d2\npygeodesy.vector3dBase.Vector3dBase.__rmod__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rmod__\npygeodesy.vector3dBase.Vector3dBase._crosserrors\tpygeodesy.vector3dBase.Vector3dBase-class.html#_crosserrors\npygeodesy.vector3dBase.Vector3dBase._mapped\tpygeodesy.vector3dBase.Vector3dBase-class.html#_mapped\npygeodesy.vector3dBase.Vector3dBase.sum\tpygeodesy.vector3dBase.Vector3dBase-class.html#sum\npygeodesy.vector3dBase.Vector3dBase._other_cmp\tpygeodesy.vector3dBase.Vector3dBase-class.html#_other_cmp\npygeodesy.vector3dBase.Vector3dBase.isequalTo\tpygeodesy.vector3dBase.Vector3dBase-class.html#isequalTo\npygeodesy.vector3dBase.Vector3dBase.__ne__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__ne__\npygeodesy.vector3dBase.Vector3dBase.__ifloordiv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__ifloordiv__\npygeodesy.ltpTuples.Uvw.v\tpygeodesy.ltpTuples.Uvw-class.html#v\npygeodesy.vector3dBase.Vector3dBase.equals\tpygeodesy.vector3dBase.Vector3dBase-class.html#equals\npygeodesy.vector3dBase.Vector3dBase.__divmod__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__divmod__\npygeodesy.vector3d.Vector3d.nearestOn6\tpygeodesy.vector3d.Vector3d-class.html#nearestOn6\npygeodesy.vector3dBase.Vector3dBase.__rmatmul__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rmatmul__\npygeodesy.vector3dBase.Vector3dBase.floats\tpygeodesy.vector3dBase.Vector3dBase-class.html#floats\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.vector3d.Vector3d.meeus2\tpygeodesy.vector3d.Vector3d-class.html#meeus2\npygeodesy.vector3dBase.Vector3dBase.__imul__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__imul__\npygeodesy.vector3dBase.Vector3dBase.__trunc__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__trunc__\npygeodesy.vector3dBase.Vector3dBase.times\tpygeodesy.vector3dBase.Vector3dBase-class.html#times\npygeodesy.vector3dBase.Vector3dBase.length\tpygeodesy.vector3dBase.Vector3dBase-class.html#length\npygeodesy.vector3dBase.Vector3dBase.plus\tpygeodesy.vector3dBase.Vector3dBase-class.html#plus\npygeodesy.vector3dBase.Vector3dBase.__mul__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__mul__\npygeodesy.ltpTuples.Uvw.w\tpygeodesy.ltpTuples.Uvw-class.html#w\npygeodesy.vector3dBase.Vector3dBase.__matmul__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__matmul__\npygeodesy.vector3d.Vector3d.circin6\tpygeodesy.vector3d.Vector3d-class.html#circin6\npygeodesy.vector3dBase.Vector3dBase.homogeneous\tpygeodesy.vector3dBase.Vector3dBase-class.html#homogeneous\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.vector3dBase.Vector3dBase.pow\tpygeodesy.vector3dBase.Vector3dBase-class.html#pow\npygeodesy.vector3dBase.Vector3dBase.xyz\tpygeodesy.vector3dBase.Vector3dBase-class.html#xyz\npygeodesy.vector3dBase.Vector3dBase.others\tpygeodesy.vector3dBase.Vector3dBase-class.html#others\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.vector3dBase.Vector3dBase.__rsub__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rsub__\npygeodesy.vector3dBase.Vector3dBase.ints\tpygeodesy.vector3dBase.Vector3dBase-class.html#ints\npygeodesy.vector3dBase.Vector3dBase.negate\tpygeodesy.vector3dBase.Vector3dBase-class.html#negate\npygeodesy.vector3dBase.Vector3dBase.apply\tpygeodesy.vector3dBase.Vector3dBase-class.html#apply\npygeodesy.vector3dBase.Vector3dBase.equirectangular\tpygeodesy.vector3dBase.Vector3dBase-class.html#equirectangular\npygeodesy.vector3dBase.Vector3dBase.unit\tpygeodesy.vector3dBase.Vector3dBase-class.html#unit\npygeodesy.vector3dBase.Vector3dBase.__float__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__float__\npygeodesy.vector3dBase.Vector3dBase.__rpow__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rpow__\npygeodesy.vector3d.Vector3d.soddy4\tpygeodesy.vector3d.Vector3d-class.html#soddy4\npygeodesy.vector3dBase.Vector3dBase._N_vector\tpygeodesy.vector3dBase.Vector3dBase-class.html#_N_vector\npygeodesy.vector3d.Vector3d.iscolinearWith\tpygeodesy.vector3d.Vector3d-class.html#iscolinearWith\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.vector3dBase.Vector3dBase.__itruediv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__itruediv__\npygeodesy.vector3dBase.Vector3dBase.dividedBy\tpygeodesy.vector3dBase.Vector3dBase-class.html#dividedBy\npygeodesy.vector3dBase.Vector3dBase.__isub__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__isub__\npygeodesy.vector3dBase.Vector3dBase.__rdivmod__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rdivmod__\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.vector3d.Vector3d.circum3\tpygeodesy.vector3d.Vector3d-class.html#circum3\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.vector3dBase.Vector3dBase.__eq__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__eq__\npygeodesy.ltpTuples.Uvw.toEnu\tpygeodesy.ltpTuples.Uvw-class.html#toEnu\npygeodesy.vector3dBase.Vector3dBase.__round__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__round__\npygeodesy.vector3dBase.Vector3dBase.bools\tpygeodesy.vector3dBase.Vector3dBase-class.html#bools\npygeodesy.vector3dBase.Vector3dBase.__mod__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__mod__\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.vector3dBase.Vector3dBase.xyz3\tpygeodesy.vector3dBase.Vector3dBase-class.html#xyz3\npygeodesy.vector3dBase.Vector3dBase.__iadd__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__iadd__\npygeodesy.vector3d.Vector3d.circum4_\tpygeodesy.vector3d.Vector3d-class.html#circum4_\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.vector3dBase.Vector3dBase.__le__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__le__\npygeodesy.vector3dBase.Vector3dBase.__floordiv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__floordiv__\npygeodesy.vector3dBase.Vector3dBase.__hash__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__hash__\npygeodesy.vector3dBase.Vector3dBase.__sub__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__sub__\npygeodesy.vector3dBase.Vector3dBase.z\tpygeodesy.vector3dBase.Vector3dBase-class.html#z\npygeodesy.vector3dBase.Vector3dBase._xyz\tpygeodesy.vector3dBase.Vector3dBase-class.html#_xyz\npygeodesy.vector3dBase.Vector3dBase.minus\tpygeodesy.vector3dBase.Vector3dBase-class.html#minus\npygeodesy.vector3dBase.Vector3dBase.__ge__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__ge__\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.vector3d.Vector3d.bearing\tpygeodesy.vector3d.Vector3d-class.html#bearing\npygeodesy.vector3dBase.Vector3dBase.__rtruediv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rtruediv__\npygeodesy.vector3dBase.Vector3dBase.floorDividedBy_\tpygeodesy.vector3dBase.Vector3dBase-class.html#floorDividedBy_\npygeodesy.vector3dBase.Vector3dBase.x2y2z2\tpygeodesy.vector3dBase.Vector3dBase-class.html#x2y2z2\npygeodesy.vector3dBase.Vector3dBase.__radd__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__radd__\npygeodesy.vector3d.Vector3d.parse\tpygeodesy.vector3d.Vector3d-class.html#parse\npygeodesy.vector3dBase.Vector3dBase.floorDividedBy\tpygeodesy.vector3dBase.Vector3dBase-class.html#floorDividedBy\npygeodesy.vector3dBase.Vector3dBase.__floor__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__floor__\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.ltpTuples.Uvw.__init__\tpygeodesy.ltpTuples.Uvw-class.html#__init__\npygeodesy.ltpTuples.Uvw._toStr\tpygeodesy.ltpTuples.Uvw-class.html#_toStr\npygeodesy.vector3dBase.Vector3dBase.__imod__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__imod__\npygeodesy.vector3dBase.Vector3dBase.fabs\tpygeodesy.vector3dBase.Vector3dBase-class.html#fabs\npygeodesy.vector3dBase.Vector3dBase._times\tpygeodesy.vector3dBase.Vector3dBase-class.html#_times\npygeodesy.vector3d.Vector3d.radii11\tpygeodesy.vector3d.Vector3d-class.html#radii11\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.vector3dBase.Vector3dBase.cross\tpygeodesy.vector3dBase.Vector3dBase-class.html#cross\npygeodesy.vector3dBase.Vector3dBase.__pos__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__pos__\npygeodesy.vector3dBase.Vector3dBase.__abs__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__abs__\npygeodesy.vector3dBase.Vector3dBase.to3xyz\tpygeodesy.vector3dBase.Vector3dBase-class.html#to3xyz\npygeodesy.named._NamedBase.__repr__\tpygeodesy.named._NamedBase-class.html#__repr__\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.vector3dBase.Vector3dBase.__idiv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__idiv__\npygeodesy.vector3dBase.Vector3dBase._united\tpygeodesy.vector3dBase.Vector3dBase-class.html#_united\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.vector3dBase.Vector3dBase._fromll\tpygeodesy.vector3dBase.Vector3dBase-class.html#_fromll\npygeodesy.vector3dBase.Vector3dBase.__add__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__add__\npygeodesy.vector3dBase.Vector3dBase.intermediateTo\tpygeodesy.vector3dBase.Vector3dBase-class.html#intermediateTo\npygeodesy.vector3dBase.Vector3dBase.length2\tpygeodesy.vector3dBase.Vector3dBase-class.html#length2\npygeodesy.vector3dBase.Vector3dBase.isconjugateTo\tpygeodesy.vector3dBase.Vector3dBase-class.html#isconjugateTo\npygeodesy.vector3dBase.Vector3dBase.__ipow__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__ipow__\npygeodesy.vector3dBase.Vector3dBase.__div__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__div__\npygeodesy.ltpTuples.Uvw.u\tpygeodesy.ltpTuples.Uvw-class.html#u\npygeodesy.vector3dBase.Vector3dBase.__neg__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__neg__\npygeodesy.vector3dBase.Vector3dBase.y\tpygeodesy.vector3dBase.Vector3dBase-class.html#y\npygeodesy.vector3dBase.Vector3dBase.dot\tpygeodesy.vector3dBase.Vector3dBase-class.html#dot\npygeodesy.ltpTuples.Uvw3Tuple\tpygeodesy.ltpTuples.Uvw3Tuple-class.html\npygeodesy.named._NamedTuple.toRepr\tpygeodesy.named._NamedTuple-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._NamedTuple.toUnits\tpygeodesy.named._NamedTuple-class.html#toUnits\npygeodesy.named._NamedTuple._validate\tpygeodesy.named._NamedTuple-class.html#_validate\npygeodesy.named._NamedTuple.__str__\tpygeodesy.named._NamedTuple-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._NamedTuple._DOT_\tpygeodesy.named._NamedTuple-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._NamedTuple.reUnit\tpygeodesy.named._NamedTuple-class.html#reUnit\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.ltpTuples.Uvw3Tuple._Names_\tpygeodesy.ltpTuples.Uvw3Tuple-class.html#_Names_\npygeodesy.named._NamedTuple.__setattr__\tpygeodesy.named._NamedTuple-class.html#__setattr__\npygeodesy.named._NamedTuple.__new__\tpygeodesy.named._NamedTuple-class.html#__new__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._NamedTuple._validated\tpygeodesy.named._NamedTuple-class.html#_validated\npygeodesy.named._NamedTuple.__getattr__\tpygeodesy.named._NamedTuple-class.html#__getattr__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._NamedTuple._xtend\tpygeodesy.named._NamedTuple-class.html#_xtend\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._NamedTuple.dup\tpygeodesy.named._NamedTuple-class.html#dup\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedTuple.toStr\tpygeodesy.named._NamedTuple-class.html#toStr\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedTuple.units\tpygeodesy.named._NamedTuple-class.html#units\npygeodesy.named._NamedTuple.iterunits\tpygeodesy.named._NamedTuple-class.html#iterunits\npygeodesy.named._NamedTuple.iteritems\tpygeodesy.named._NamedTuple-class.html#iteritems\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._NamedTuple.items\tpygeodesy.named._NamedTuple-class.html#items\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedTuple.__delattr__\tpygeodesy.named._NamedTuple-class.html#__delattr__\npygeodesy.named._NamedTuple.__repr__\tpygeodesy.named._NamedTuple-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._NamedTuple.__hash__\tpygeodesy.named._NamedTuple-class.html#__hash__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.ltpTuples.Uvw3Tuple._Units_\tpygeodesy.ltpTuples.Uvw3Tuple-class.html#_Units_\npygeodesy.ltpTuples.Xyz4Tuple\tpygeodesy.ltpTuples.Xyz4Tuple-class.html\npygeodesy.named._NamedTuple.toRepr\tpygeodesy.named._NamedTuple-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.ltpTuples.Xyz4Tuple._toXyz\tpygeodesy.ltpTuples.Xyz4Tuple-class.html#_toXyz\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._NamedTuple.toUnits\tpygeodesy.named._NamedTuple-class.html#toUnits\npygeodesy.named._NamedTuple._validate\tpygeodesy.named._NamedTuple-class.html#_validate\npygeodesy.named._NamedTuple.__str__\tpygeodesy.named._NamedTuple-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._NamedTuple._DOT_\tpygeodesy.named._NamedTuple-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._NamedTuple.reUnit\tpygeodesy.named._NamedTuple-class.html#reUnit\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.ltpTuples.Xyz4Tuple._Names_\tpygeodesy.ltpTuples.Xyz4Tuple-class.html#_Names_\npygeodesy.named._NamedTuple.__setattr__\tpygeodesy.named._NamedTuple-class.html#__setattr__\npygeodesy.named._NamedTuple.__new__\tpygeodesy.named._NamedTuple-class.html#__new__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._NamedTuple._validated\tpygeodesy.named._NamedTuple-class.html#_validated\npygeodesy.named._NamedTuple.__getattr__\tpygeodesy.named._NamedTuple-class.html#__getattr__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._NamedTuple._xtend\tpygeodesy.named._NamedTuple-class.html#_xtend\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._NamedTuple.dup\tpygeodesy.named._NamedTuple-class.html#dup\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.ltpTuples.Xyz4Tuple.xyzLocal\tpygeodesy.ltpTuples.Xyz4Tuple-class.html#xyzLocal\npygeodesy.named._NamedTuple.toStr\tpygeodesy.named._NamedTuple-class.html#toStr\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedTuple.units\tpygeodesy.named._NamedTuple-class.html#units\npygeodesy.named._NamedTuple.iterunits\tpygeodesy.named._NamedTuple-class.html#iterunits\npygeodesy.named._NamedTuple.iteritems\tpygeodesy.named._NamedTuple-class.html#iteritems\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._NamedTuple.items\tpygeodesy.named._NamedTuple-class.html#items\npygeodesy.ltpTuples.Xyz4Tuple.xyz4\tpygeodesy.ltpTuples.Xyz4Tuple-class.html#xyz4\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedTuple.__delattr__\tpygeodesy.named._NamedTuple-class.html#__delattr__\npygeodesy.named._NamedTuple.__repr__\tpygeodesy.named._NamedTuple-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._NamedTuple.__hash__\tpygeodesy.named._NamedTuple-class.html#__hash__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.ltpTuples.Xyz4Tuple._Units_\tpygeodesy.ltpTuples.Xyz4Tuple-class.html#_Units_\npygeodesy.ltpTuples.XyzLocal\tpygeodesy.ltpTuples.XyzLocal-class.html\npygeodesy.ltpTuples.XyzLocal.toCartesian\tpygeodesy.ltpTuples.XyzLocal-class.html#toCartesian\npygeodesy.vector3dBase.Vector3dBase.__int__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__int__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.vector3dBase.Vector3dBase.dividedBy_\tpygeodesy.vector3dBase.Vector3dBase-class.html#dividedBy_\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.ltpTuples.XyzLocal.__str__\tpygeodesy.ltpTuples.XyzLocal-class.html#__str__\npygeodesy.ltpTuples.XyzLocal.ned4\tpygeodesy.ltpTuples.XyzLocal-class.html#ned4\npygeodesy.vector3dBase.Vector3dBase.__imatmul__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__imatmul__\npygeodesy.ltpTuples.XyzLocal.toLatLon\tpygeodesy.ltpTuples.XyzLocal-class.html#toLatLon\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.vector3dBase.Vector3dBase.__rdiv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rdiv__\npygeodesy.vector3dBase.Vector3dBase.__rmul__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rmul__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.vector3dBase.Vector3dBase.__lt__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__lt__\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.vector3dBase.Vector3dBase.__cmp__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__cmp__\npygeodesy.vector3d.Vector3d.nearestOn\tpygeodesy.vector3d.Vector3d-class.html#nearestOn\npygeodesy.vector3dBase.Vector3dBase.minus_\tpygeodesy.vector3dBase.Vector3dBase-class.html#minus_\npygeodesy.vector3dBase.Vector3dBase.__rfloordiv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rfloordiv__\npygeodesy.vector3dBase.Vector3dBase.crosserrors\tpygeodesy.vector3dBase.Vector3dBase-class.html#crosserrors\npygeodesy.ltpTuples.XyzLocal.east\tpygeodesy.ltpTuples.XyzLocal-class.html#east\npygeodesy.ltpTuples.XyzLocal.toNed\tpygeodesy.ltpTuples.XyzLocal-class.html#toNed\npygeodesy.vector3dBase.Vector3dBase.rotateAround\tpygeodesy.vector3dBase.Vector3dBase-class.html#rotateAround\npygeodesy.ltpTuples.XyzLocal._ltp_kwds_name3\tpygeodesy.ltpTuples.XyzLocal-class.html#_ltp_kwds_name3\npygeodesy.ltpTuples.XyzLocal.elevation\tpygeodesy.ltpTuples.XyzLocal-class.html#elevation\npygeodesy.vector3dBase.Vector3dBase._roty\tpygeodesy.vector3dBase.Vector3dBase-class.html#_roty\npygeodesy.vector3dBase.Vector3dBase.angleTo\tpygeodesy.vector3dBase.Vector3dBase-class.html#angleTo\npygeodesy.ltpTuples.XyzLocal.toXyz\tpygeodesy.ltpTuples.XyzLocal-class.html#toXyz\npygeodesy.vector3dBase.Vector3dBase.__pow__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__pow__\npygeodesy.vector3dBase.Vector3dBase.__gt__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__gt__\npygeodesy.vector3dBase.Vector3dBase.__bool__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__bool__\npygeodesy.vector3dBase.Vector3dBase.x2y2z23\tpygeodesy.vector3dBase.Vector3dBase-class.html#x2y2z23\npygeodesy.ltpTuples.XyzLocal.down\tpygeodesy.ltpTuples.XyzLocal-class.html#down\npygeodesy.vector3dBase.Vector3dBase.rotate\tpygeodesy.vector3dBase.Vector3dBase-class.html#rotate\npygeodesy.vector3dBase.Vector3dBase.__nonzero__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__nonzero__\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.vector3dBase.Vector3dBase._other_cmp\tpygeodesy.vector3dBase.Vector3dBase-class.html#_other_cmp\npygeodesy.vector3dBase.Vector3dBase._plus\tpygeodesy.vector3dBase.Vector3dBase-class.html#_plus\npygeodesy.vector3dBase.Vector3dBase.times_\tpygeodesy.vector3dBase.Vector3dBase-class.html#times_\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.vector3dBase.Vector3dBase.x\tpygeodesy.vector3dBase.Vector3dBase-class.html#x\npygeodesy.vector3dBase.Vector3dBase.__long__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__long__\npygeodesy.vector3dBase.Vector3dBase.cmp\tpygeodesy.vector3dBase.Vector3dBase-class.html#cmp\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.vector3dBase.Vector3dBase.plus_\tpygeodesy.vector3dBase.Vector3dBase-class.html#plus_\npygeodesy.ltpTuples.XyzLocal.up\tpygeodesy.ltpTuples.XyzLocal-class.html#up\npygeodesy.ltpTuples.XyzLocal.enu4\tpygeodesy.ltpTuples.XyzLocal-class.html#enu4\npygeodesy.vector3d.Vector3d.trilaterate2d2\tpygeodesy.vector3d.Vector3d-class.html#trilaterate2d2\npygeodesy.vector3dBase.Vector3dBase.euclid\tpygeodesy.vector3dBase.Vector3dBase-class.html#euclid\npygeodesy.vector3dBase.Vector3dBase._minus\tpygeodesy.vector3dBase.Vector3dBase-class.html#_minus\npygeodesy.vector3d.Vector3d.trilaterate3d2\tpygeodesy.vector3d.Vector3d-class.html#trilaterate3d2\npygeodesy.vector3dBase.Vector3dBase.__rmod__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rmod__\npygeodesy.vector3dBase.Vector3dBase._crosserrors\tpygeodesy.vector3dBase.Vector3dBase-class.html#_crosserrors\npygeodesy.vector3dBase.Vector3dBase._mapped\tpygeodesy.vector3dBase.Vector3dBase-class.html#_mapped\npygeodesy.vector3dBase.Vector3dBase.sum\tpygeodesy.vector3dBase.Vector3dBase-class.html#sum\npygeodesy.ltpTuples.XyzLocal.toAer\tpygeodesy.ltpTuples.XyzLocal-class.html#toAer\npygeodesy.vector3dBase.Vector3dBase._ll\tpygeodesy.vector3dBase.Vector3dBase-class.html#_ll\npygeodesy.vector3dBase.Vector3dBase.isequalTo\tpygeodesy.vector3dBase.Vector3dBase-class.html#isequalTo\npygeodesy.vector3dBase.Vector3dBase.__ne__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__ne__\npygeodesy.ltpTuples.XyzLocal.xyzLocal\tpygeodesy.ltpTuples.XyzLocal-class.html#xyzLocal\npygeodesy.vector3dBase.Vector3dBase.__ifloordiv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__ifloordiv__\npygeodesy.ltpTuples.XyzLocal.groundrange\tpygeodesy.ltpTuples.XyzLocal-class.html#groundrange\npygeodesy.vector3dBase.Vector3dBase.equals\tpygeodesy.vector3dBase.Vector3dBase-class.html#equals\npygeodesy.vector3dBase.Vector3dBase.__divmod__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__divmod__\npygeodesy.vector3d.Vector3d.nearestOn6\tpygeodesy.vector3d.Vector3d-class.html#nearestOn6\npygeodesy.vector3dBase.Vector3dBase.__rmatmul__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rmatmul__\npygeodesy.vector3dBase.Vector3dBase.floats\tpygeodesy.vector3dBase.Vector3dBase-class.html#floats\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.vector3d.Vector3d.meeus2\tpygeodesy.vector3d.Vector3d-class.html#meeus2\npygeodesy.ltpTuples.XyzLocal.ltp\tpygeodesy.ltpTuples.XyzLocal-class.html#ltp\npygeodesy.vector3dBase.Vector3dBase.__imul__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__imul__\npygeodesy.vector3dBase.Vector3dBase.__trunc__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__trunc__\npygeodesy.vector3dBase.Vector3dBase.times\tpygeodesy.vector3dBase.Vector3dBase-class.html#times\npygeodesy.vector3dBase.Vector3dBase.length\tpygeodesy.vector3dBase.Vector3dBase-class.html#length\npygeodesy.vector3dBase.Vector3dBase.plus\tpygeodesy.vector3dBase.Vector3dBase-class.html#plus\npygeodesy.vector3dBase.Vector3dBase.__mul__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__mul__\npygeodesy.vector3dBase.Vector3dBase.__matmul__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__matmul__\npygeodesy.vector3d.Vector3d.circin6\tpygeodesy.vector3d.Vector3d-class.html#circin6\npygeodesy.vector3dBase.Vector3dBase.homogeneous\tpygeodesy.vector3dBase.Vector3dBase-class.html#homogeneous\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.vector3dBase.Vector3dBase.__rsub__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rsub__\npygeodesy.vector3dBase.Vector3dBase.pow\tpygeodesy.vector3dBase.Vector3dBase-class.html#pow\npygeodesy.vector3dBase.Vector3dBase.xyz\tpygeodesy.vector3dBase.Vector3dBase-class.html#xyz\npygeodesy.vector3dBase.Vector3dBase.others\tpygeodesy.vector3dBase.Vector3dBase-class.html#others\npygeodesy.ltpTuples.XyzLocal.aer4\tpygeodesy.ltpTuples.XyzLocal-class.html#aer4\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.ltpTuples.XyzLocal.classof\tpygeodesy.ltpTuples.XyzLocal-class.html#classof\npygeodesy.ltpTuples.XyzLocal.slantrange\tpygeodesy.ltpTuples.XyzLocal-class.html#slantrange\npygeodesy.vector3dBase.Vector3dBase.ints\tpygeodesy.vector3dBase.Vector3dBase-class.html#ints\npygeodesy.vector3dBase.Vector3dBase.negate\tpygeodesy.vector3dBase.Vector3dBase-class.html#negate\npygeodesy.vector3dBase.Vector3dBase.apply\tpygeodesy.vector3dBase.Vector3dBase-class.html#apply\npygeodesy.vector3dBase.Vector3dBase.equirectangular\tpygeodesy.vector3dBase.Vector3dBase-class.html#equirectangular\npygeodesy.vector3dBase.Vector3dBase.unit\tpygeodesy.vector3dBase.Vector3dBase-class.html#unit\npygeodesy.vector3dBase.Vector3dBase.__float__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__float__\npygeodesy.vector3dBase.Vector3dBase.__rpow__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rpow__\npygeodesy.vector3d.Vector3d.soddy4\tpygeodesy.vector3d.Vector3d-class.html#soddy4\npygeodesy.vector3dBase.Vector3dBase._N_vector\tpygeodesy.vector3dBase.Vector3dBase-class.html#_N_vector\npygeodesy.vector3d.Vector3d.iscolinearWith\tpygeodesy.vector3d.Vector3d-class.html#iscolinearWith\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.vector3dBase.Vector3dBase.__itruediv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__itruediv__\npygeodesy.vector3dBase.Vector3dBase.dividedBy\tpygeodesy.vector3dBase.Vector3dBase-class.html#dividedBy\npygeodesy.vector3dBase.Vector3dBase.__isub__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__isub__\npygeodesy.vector3dBase.Vector3dBase.__rdivmod__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rdivmod__\npygeodesy.ltpTuples.XyzLocal.north\tpygeodesy.ltpTuples.XyzLocal-class.html#north\npygeodesy.ltpTuples.XyzLocal.ecef\tpygeodesy.ltpTuples.XyzLocal-class.html#ecef\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.vector3d.Vector3d.circum3\tpygeodesy.vector3d.Vector3d-class.html#circum3\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.vector3dBase.Vector3dBase.__eq__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__eq__\npygeodesy.ltpTuples.XyzLocal.toEnu\tpygeodesy.ltpTuples.XyzLocal-class.html#toEnu\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.vector3dBase.Vector3dBase.__round__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__round__\npygeodesy.vector3dBase.Vector3dBase.bools\tpygeodesy.vector3dBase.Vector3dBase-class.html#bools\npygeodesy.vector3dBase.Vector3dBase.__mod__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__mod__\npygeodesy.ltpTuples.XyzLocal.xyz4\tpygeodesy.ltpTuples.XyzLocal-class.html#xyz4\npygeodesy.vector3dBase.Vector3dBase.xyz3\tpygeodesy.vector3dBase.Vector3dBase-class.html#xyz3\npygeodesy.vector3dBase.Vector3dBase.__truediv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__truediv__\npygeodesy.vector3dBase.Vector3dBase.__iadd__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__iadd__\npygeodesy.vector3d.Vector3d.circum4_\tpygeodesy.vector3d.Vector3d-class.html#circum4_\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.vector3dBase.Vector3dBase.__le__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__le__\npygeodesy.vector3dBase.Vector3dBase.__floordiv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__floordiv__\npygeodesy.vector3dBase.Vector3dBase.__hash__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__hash__\npygeodesy.vector3dBase.Vector3dBase.__sub__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__sub__\npygeodesy.vector3dBase.Vector3dBase.z\tpygeodesy.vector3dBase.Vector3dBase-class.html#z\npygeodesy.vector3dBase.Vector3dBase._xyz\tpygeodesy.vector3dBase.Vector3dBase-class.html#_xyz\npygeodesy.vector3dBase.Vector3dBase.minus\tpygeodesy.vector3dBase.Vector3dBase-class.html#minus\npygeodesy.vector3dBase.Vector3dBase.__ge__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__ge__\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.vector3d.Vector3d.bearing\tpygeodesy.vector3d.Vector3d-class.html#bearing\npygeodesy.vector3dBase.Vector3dBase.__rtruediv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rtruediv__\npygeodesy.vector3dBase.Vector3dBase.floorDividedBy_\tpygeodesy.vector3dBase.Vector3dBase-class.html#floorDividedBy_\npygeodesy.vector3dBase.Vector3dBase.x2y2z2\tpygeodesy.vector3dBase.Vector3dBase-class.html#x2y2z2\npygeodesy.vector3dBase.Vector3dBase.__radd__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__radd__\npygeodesy.vector3d.Vector3d.parse\tpygeodesy.vector3d.Vector3d-class.html#parse\npygeodesy.vector3dBase.Vector3dBase.floorDividedBy\tpygeodesy.vector3dBase.Vector3dBase-class.html#floorDividedBy\npygeodesy.vector3dBase.Vector3dBase.__floor__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__floor__\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.ltpTuples.XyzLocal.__init__\tpygeodesy.ltpTuples.XyzLocal-class.html#__init__\npygeodesy.vector3dBase.Vector3dBase.__imod__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__imod__\npygeodesy.vector3dBase.Vector3dBase.fabs\tpygeodesy.vector3dBase.Vector3dBase-class.html#fabs\npygeodesy.vector3dBase.Vector3dBase._times\tpygeodesy.vector3dBase.Vector3dBase-class.html#_times\npygeodesy.vector3d.Vector3d.radii11\tpygeodesy.vector3d.Vector3d-class.html#radii11\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.vector3dBase.Vector3dBase.cross\tpygeodesy.vector3dBase.Vector3dBase-class.html#cross\npygeodesy.vector3dBase.Vector3dBase.__pos__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__pos__\npygeodesy.vector3dBase.Vector3dBase.__abs__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__abs__\npygeodesy.vector3dBase.Vector3dBase.to3xyz\tpygeodesy.vector3dBase.Vector3dBase-class.html#to3xyz\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._NamedBase.__repr__\tpygeodesy.named._NamedBase-class.html#__repr__\npygeodesy.ltpTuples.XyzLocal._ltp\tpygeodesy.ltpTuples.XyzLocal-class.html#_ltp\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.vector3dBase.Vector3dBase.__idiv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__idiv__\npygeodesy.vector3dBase.Vector3dBase._united\tpygeodesy.vector3dBase.Vector3dBase-class.html#_united\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.vector3dBase.Vector3dBase._fromll\tpygeodesy.vector3dBase.Vector3dBase-class.html#_fromll\npygeodesy.vector3dBase.Vector3dBase.__add__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__add__\npygeodesy.vector3dBase.Vector3dBase.intermediateTo\tpygeodesy.vector3dBase.Vector3dBase-class.html#intermediateTo\npygeodesy.vector3dBase.Vector3dBase.length2\tpygeodesy.vector3dBase.Vector3dBase-class.html#length2\npygeodesy.ltpTuples.XyzLocal.toLocal9Tuple\tpygeodesy.ltpTuples.XyzLocal-class.html#toLocal9Tuple\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.vector3dBase.Vector3dBase.isconjugateTo\tpygeodesy.vector3dBase.Vector3dBase-class.html#isconjugateTo\npygeodesy.vector3dBase.Vector3dBase.__ipow__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__ipow__\npygeodesy.vector3dBase.Vector3dBase.__div__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__div__\npygeodesy.vector3dBase.Vector3dBase.__ceil__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__ceil__\npygeodesy.vector3dBase.Vector3dBase.__neg__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__neg__\npygeodesy.ltpTuples.XyzLocal.azimuth\tpygeodesy.ltpTuples.XyzLocal-class.html#azimuth\npygeodesy.vector3dBase.Vector3dBase.y\tpygeodesy.vector3dBase.Vector3dBase-class.html#y\npygeodesy.vector3dBase.Vector3dBase.dot\tpygeodesy.vector3dBase.Vector3dBase-class.html#dot\npygeodesy.ltpTuples._AbcBase\tpygeodesy.ltpTuples._AbcBase-class.html\npygeodesy.named._NamedBase.toRepr\tpygeodesy.named._NamedBase-class.html#toRepr\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.ltpTuples._AbcBase.toNed\tpygeodesy.ltpTuples._AbcBase-class.html#toNed\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.ltpTuples._AbcBase.xyz\tpygeodesy.ltpTuples._AbcBase-class.html#xyz\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.ltpTuples._AbcBase.toAer\tpygeodesy.ltpTuples._AbcBase-class.html#toAer\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._NamedBase.__str__\tpygeodesy.named._NamedBase-class.html#__str__\npygeodesy.ltpTuples._AbcBase._ltp\tpygeodesy.ltpTuples._AbcBase-class.html#_ltp\npygeodesy.ltpTuples._AbcBase.xyzLocal\tpygeodesy.ltpTuples._AbcBase-class.html#xyzLocal\npygeodesy.named._NamedBase.toStr\tpygeodesy.named._NamedBase-class.html#toStr\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.ltpTuples._AbcBase.toXyz\tpygeodesy.ltpTuples._AbcBase-class.html#toXyz\npygeodesy.named._NamedBase.others\tpygeodesy.named._NamedBase-class.html#others\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.ltpTuples._AbcBase.toEnu\tpygeodesy.ltpTuples._AbcBase-class.html#toEnu\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.ltpTuples._AbcBase.ltp\tpygeodesy.ltpTuples._AbcBase-class.html#ltp\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.ltpTuples._AbcBase.xyz4\tpygeodesy.ltpTuples._AbcBase-class.html#xyz4\npygeodesy.ltpTuples._AbcBase.xyz3\tpygeodesy.ltpTuples._AbcBase-class.html#xyz3\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._NamedBase.__repr__\tpygeodesy.named._NamedBase-class.html#__repr__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.mgrs.Mgrs\tpygeodesy.mgrs.Mgrs-class.html\npygeodesy.mgrs.Mgrs.toRepr\tpygeodesy.mgrs.Mgrs-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.mgrs.Mgrs._EN\tpygeodesy.mgrs.Mgrs-class.html#_EN\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.mgrs.Mgrs.digraph\tpygeodesy.mgrs.Mgrs-class.html#digraph\npygeodesy.mgrs.Mgrs.__str__\tpygeodesy.mgrs.Mgrs-class.html#__str__\npygeodesy.mgrs.Mgrs.datum\tpygeodesy.mgrs.Mgrs-class.html#datum\npygeodesy.mgrs.Mgrs._northing\tpygeodesy.mgrs.Mgrs-class.html#_northing\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.mgrs.Mgrs.parse\tpygeodesy.mgrs.Mgrs-class.html#parse\npygeodesy.mgrs.Mgrs.toLatLon\tpygeodesy.mgrs.Mgrs-class.html#toLatLon\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.mgrs.Mgrs.easting\tpygeodesy.mgrs.Mgrs-class.html#easting\npygeodesy.mgrs.Mgrs._toUtmUps\tpygeodesy.mgrs.Mgrs-class.html#_toUtmUps\npygeodesy.mgrs.Mgrs.toUtm\tpygeodesy.mgrs.Mgrs-class.html#toUtm\npygeodesy.mgrs.Mgrs.bandLatitude\tpygeodesy.mgrs.Mgrs-class.html#bandLatitude\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.mgrs.Mgrs.__init__\tpygeodesy.mgrs.Mgrs-class.html#__init__\npygeodesy.mgrs.Mgrs.northing\tpygeodesy.mgrs.Mgrs-class.html#northing\npygeodesy.mgrs.Mgrs.zoneB\tpygeodesy.mgrs.Mgrs-class.html#zoneB\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.mgrs.Mgrs.zone\tpygeodesy.mgrs.Mgrs-class.html#zone\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.mgrs.Mgrs._EN2m\tpygeodesy.mgrs.Mgrs-class.html#_EN2m\npygeodesy.mgrs.Mgrs._easting\tpygeodesy.mgrs.Mgrs-class.html#_easting\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.mgrs.Mgrs._bandLat\tpygeodesy.mgrs.Mgrs-class.html#_bandLat\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.mgrs.Mgrs.toUps\tpygeodesy.mgrs.Mgrs-class.html#toUps\npygeodesy.named._NamedBase.__repr__\tpygeodesy.named._NamedBase-class.html#__repr__\npygeodesy.mgrs.Mgrs._zone\tpygeodesy.mgrs.Mgrs-class.html#_zone\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.mgrs.Mgrs.EN\tpygeodesy.mgrs.Mgrs-class.html#EN\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.mgrs.Mgrs.tilesize\tpygeodesy.mgrs.Mgrs-class.html#tilesize\npygeodesy.mgrs.Mgrs.toStr\tpygeodesy.mgrs.Mgrs-class.html#toStr\npygeodesy.mgrs.Mgrs._datum\tpygeodesy.mgrs.Mgrs-class.html#_datum\npygeodesy.mgrs.Mgrs._band\tpygeodesy.mgrs.Mgrs-class.html#_band\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.mgrs.Mgrs.band\tpygeodesy.mgrs.Mgrs-class.html#band\npygeodesy.mgrs.Mgrs._resolution\tpygeodesy.mgrs.Mgrs-class.html#_resolution\npygeodesy.named._NamedBase.others\tpygeodesy.named._NamedBase-class.html#others\npygeodesy.mgrs.Mgrs.toUtmUps\tpygeodesy.mgrs.Mgrs-class.html#toUtmUps\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.mgrs.Mgrs.northingBottom\tpygeodesy.mgrs.Mgrs-class.html#northingBottom\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.mgrs.Mgrs.isUTM\tpygeodesy.mgrs.Mgrs-class.html#isUTM\npygeodesy.mgrs.Mgrs.en100k\tpygeodesy.mgrs.Mgrs-class.html#en100k\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.mgrs.Mgrs.isUPS\tpygeodesy.mgrs.Mgrs-class.html#isUPS\npygeodesy.mgrs.Mgrs.eastingnorthing\tpygeodesy.mgrs.Mgrs-class.html#eastingnorthing\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.mgrs.Mgrs.resolution\tpygeodesy.mgrs.Mgrs-class.html#resolution\npygeodesy.mgrs.Mgrs4Tuple\tpygeodesy.mgrs.Mgrs4Tuple-class.html\npygeodesy.named._NamedTuple.toRepr\tpygeodesy.named._NamedTuple-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._NamedTuple.toUnits\tpygeodesy.named._NamedTuple-class.html#toUnits\npygeodesy.mgrs.Mgrs4Tuple.digraph\tpygeodesy.mgrs.Mgrs4Tuple-class.html#digraph\npygeodesy.named._NamedTuple.__str__\tpygeodesy.named._NamedTuple-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._NamedTuple._DOT_\tpygeodesy.named._NamedTuple-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._NamedTuple.reUnit\tpygeodesy.named._NamedTuple-class.html#reUnit\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.mgrs.Mgrs4Tuple._Names_\tpygeodesy.mgrs.Mgrs4Tuple-class.html#_Names_\npygeodesy.named._NamedTuple.__setattr__\tpygeodesy.named._NamedTuple-class.html#__setattr__\npygeodesy.named._NamedTuple.__new__\tpygeodesy.named._NamedTuple-class.html#__new__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._NamedTuple._validated\tpygeodesy.named._NamedTuple-class.html#_validated\npygeodesy.named._NamedTuple.__getattr__\tpygeodesy.named._NamedTuple-class.html#__getattr__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._NamedTuple._validate\tpygeodesy.named._NamedTuple-class.html#_validate\npygeodesy.named._NamedTuple._xtend\tpygeodesy.named._NamedTuple-class.html#_xtend\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._NamedTuple.units\tpygeodesy.named._NamedTuple-class.html#units\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedTuple.toStr\tpygeodesy.named._NamedTuple-class.html#toStr\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedTuple.dup\tpygeodesy.named._NamedTuple-class.html#dup\npygeodesy.named._NamedTuple.iterunits\tpygeodesy.named._NamedTuple-class.html#iterunits\npygeodesy.named._NamedTuple.iteritems\tpygeodesy.named._NamedTuple-class.html#iteritems\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.mgrs.Mgrs4Tuple.toMgrs\tpygeodesy.mgrs.Mgrs4Tuple-class.html#toMgrs\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._NamedTuple.items\tpygeodesy.named._NamedTuple-class.html#items\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedTuple.__delattr__\tpygeodesy.named._NamedTuple-class.html#__delattr__\npygeodesy.named._NamedTuple.__repr__\tpygeodesy.named._NamedTuple-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._NamedTuple.__hash__\tpygeodesy.named._NamedTuple-class.html#__hash__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.mgrs.Mgrs4Tuple.to6Tuple\tpygeodesy.mgrs.Mgrs4Tuple-class.html#to6Tuple\npygeodesy.mgrs.Mgrs4Tuple._Units_\tpygeodesy.mgrs.Mgrs4Tuple-class.html#_Units_\npygeodesy.mgrs.Mgrs6Tuple\tpygeodesy.mgrs.Mgrs6Tuple-class.html\npygeodesy.named._NamedTuple.toRepr\tpygeodesy.named._NamedTuple-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._NamedTuple.toUnits\tpygeodesy.named._NamedTuple-class.html#toUnits\npygeodesy.mgrs.Mgrs6Tuple.digraph\tpygeodesy.mgrs.Mgrs6Tuple-class.html#digraph\npygeodesy.named._NamedTuple.__str__\tpygeodesy.named._NamedTuple-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._NamedTuple._DOT_\tpygeodesy.named._NamedTuple-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._NamedTuple.reUnit\tpygeodesy.named._NamedTuple-class.html#reUnit\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.mgrs.Mgrs6Tuple._Names_\tpygeodesy.mgrs.Mgrs6Tuple-class.html#_Names_\npygeodesy.named._NamedTuple.__setattr__\tpygeodesy.named._NamedTuple-class.html#__setattr__\npygeodesy.named._NamedTuple.__new__\tpygeodesy.named._NamedTuple-class.html#__new__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._NamedTuple._validated\tpygeodesy.named._NamedTuple-class.html#_validated\npygeodesy.named._NamedTuple.__getattr__\tpygeodesy.named._NamedTuple-class.html#__getattr__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._NamedTuple._validate\tpygeodesy.named._NamedTuple-class.html#_validate\npygeodesy.named._NamedTuple._xtend\tpygeodesy.named._NamedTuple-class.html#_xtend\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._NamedTuple.units\tpygeodesy.named._NamedTuple-class.html#units\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedTuple.toStr\tpygeodesy.named._NamedTuple-class.html#toStr\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedTuple.dup\tpygeodesy.named._NamedTuple-class.html#dup\npygeodesy.named._NamedTuple.iterunits\tpygeodesy.named._NamedTuple-class.html#iterunits\npygeodesy.named._NamedTuple.iteritems\tpygeodesy.named._NamedTuple-class.html#iteritems\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.mgrs.Mgrs6Tuple.toMgrs\tpygeodesy.mgrs.Mgrs6Tuple-class.html#toMgrs\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._NamedTuple.items\tpygeodesy.named._NamedTuple-class.html#items\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedTuple.__delattr__\tpygeodesy.named._NamedTuple-class.html#__delattr__\npygeodesy.named._NamedTuple.__repr__\tpygeodesy.named._NamedTuple-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._NamedTuple.__hash__\tpygeodesy.named._NamedTuple-class.html#__hash__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.mgrs.Mgrs6Tuple._Units_\tpygeodesy.mgrs.Mgrs6Tuple-class.html#_Units_\npygeodesy.named.ADict\tpygeodesy.named.ADict-class.html\npygeodesy.named.ADict.toRepr\tpygeodesy.named.ADict-class.html#toRepr\npygeodesy.named.ADict.__str__\tpygeodesy.named.ADict-class.html#__str__\npygeodesy.named.ADict.__setattr__\tpygeodesy.named.ADict-class.html#__setattr__\npygeodesy.named.ADict._toT\tpygeodesy.named.ADict-class.html#_toT\npygeodesy.named.ADict.__getattr__\tpygeodesy.named.ADict-class.html#__getattr__\npygeodesy.named.ADict._toL\tpygeodesy.named.ADict-class.html#_toL\npygeodesy.named.ADict._AttributeError\tpygeodesy.named.ADict-class.html#_AttributeError\npygeodesy.named.ADict._iteration\tpygeodesy.named.ADict-class.html#_iteration\npygeodesy.named.ADict.toStr\tpygeodesy.named.ADict-class.html#toStr\npygeodesy.named.ADict.set_\tpygeodesy.named.ADict-class.html#set_\npygeodesy.named.ADict.iteration\tpygeodesy.named.ADict-class.html#iteration\npygeodesy.named.ADict.typename\tpygeodesy.named.ADict-class.html#typename\npygeodesy.named.ADict.__repr__\tpygeodesy.named.ADict-class.html#__repr__\npygeodesy.named._Named\tpygeodesy.named._Named-class.html\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.__str__\tpygeodesy.named._Named-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._Named.toStr\tpygeodesy.named._Named-class.html#toStr\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._Named.toRepr\tpygeodesy.named._Named-class.html#toRepr\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named.__repr__\tpygeodesy.named._Named-class.html#__repr__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.named._NamedBase\tpygeodesy.named._NamedBase-class.html\npygeodesy.named._NamedBase.toRepr\tpygeodesy.named._NamedBase-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedBase.__str__\tpygeodesy.named._NamedBase-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._NamedBase.toStr\tpygeodesy.named._NamedBase-class.html#toStr\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedBase.others\tpygeodesy.named._NamedBase-class.html#others\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedBase.__repr__\tpygeodesy.named._NamedBase-class.html#__repr__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.named._NamedEnum\tpygeodesy.named._NamedEnum-class.html\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedEnum.__str__\tpygeodesy.named._NamedEnum-class.html#__str__\npygeodesy.named._NamedEnum.popitem\tpygeodesy.named._NamedEnum-class.html#popitem\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._NamedEnum.find\tpygeodesy.named._NamedEnum-class.html#find\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._NamedEnum.get\tpygeodesy.named._NamedEnum-class.html#get\npygeodesy.named._NamedEnum.toStr\tpygeodesy.named._NamedEnum-class.html#toStr\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._NamedEnum.unregister\tpygeodesy.named._NamedEnum-class.html#unregister\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._NamedEnum.toRepr\tpygeodesy.named._NamedEnum-class.html#toRepr\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.named._NamedEnum.__getattr__\tpygeodesy.named._NamedEnum-class.html#__getattr__\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._NamedEnum.items\tpygeodesy.named._NamedEnum-class.html#items\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._NamedEnum.__repr__\tpygeodesy.named._NamedEnum-class.html#__repr__\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._NamedEnum._asserts\tpygeodesy.named._NamedEnum-class.html#_asserts\npygeodesy.named._NamedEnum.pop\tpygeodesy.named._NamedEnum-class.html#pop\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._NamedEnum._assert\tpygeodesy.named._NamedEnum-class.html#_assert\npygeodesy.named.ADict._toT\tpygeodesy.named.ADict-class.html#_toT\npygeodesy.named.ADict._toL\tpygeodesy.named.ADict-class.html#_toL\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.named.ADict._AttributeError\tpygeodesy.named.ADict-class.html#_AttributeError\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named.ADict.iteration\tpygeodesy.named.ADict-class.html#iteration\npygeodesy.named.ADict.typename\tpygeodesy.named.ADict-class.html#typename\npygeodesy.named._NamedEnum.values\tpygeodesy.named._NamedEnum-class.html#values\npygeodesy.named._NamedEnum._item_Classes\tpygeodesy.named._NamedEnum-class.html#_item_Classes\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._NamedEnum._zapitem\tpygeodesy.named._NamedEnum-class.html#_zapitem\npygeodesy.named._NamedEnum.__init__\tpygeodesy.named._NamedEnum-class.html#__init__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named.ADict._iteration\tpygeodesy.named.ADict-class.html#_iteration\npygeodesy.named._NamedEnum.keys\tpygeodesy.named._NamedEnum-class.html#keys\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named.ADict.set_\tpygeodesy.named.ADict-class.html#set_\npygeodesy.named._NamedEnum.register\tpygeodesy.named._NamedEnum-class.html#register\npygeodesy.named._NamedEnumItem\tpygeodesy.named._NamedEnumItem-class.html\npygeodesy.named._NamedBase.toRepr\tpygeodesy.named._NamedBase-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedBase.__str__\tpygeodesy.named._NamedBase-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._NamedBase.toStr\tpygeodesy.named._NamedBase-class.html#toStr\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedEnumItem._register\tpygeodesy.named._NamedEnumItem-class.html#_register\npygeodesy.named._NamedBase.others\tpygeodesy.named._NamedBase-class.html#others\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._NamedEnumItem._enum\tpygeodesy.named._NamedEnumItem-class.html#_enum\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._NamedEnumItem.name\tpygeodesy.named._NamedEnumItem-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._NamedEnumItem.unregister\tpygeodesy.named._NamedEnumItem-class.html#unregister\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedBase.__repr__\tpygeodesy.named._NamedBase-class.html#__repr__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.named._NamedTuple\tpygeodesy.named._NamedTuple-class.html\npygeodesy.named._NamedTuple.toRepr\tpygeodesy.named._NamedTuple-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._NamedTuple.toUnits\tpygeodesy.named._NamedTuple-class.html#toUnits\npygeodesy.named._NamedTuple._validate\tpygeodesy.named._NamedTuple-class.html#_validate\npygeodesy.named._NamedTuple.__str__\tpygeodesy.named._NamedTuple-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._NamedTuple._DOT_\tpygeodesy.named._NamedTuple-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._NamedTuple.reUnit\tpygeodesy.named._NamedTuple-class.html#reUnit\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.named._NamedTuple._Names_\tpygeodesy.named._NamedTuple-class.html#_Names_\npygeodesy.named._NamedTuple.__setattr__\tpygeodesy.named._NamedTuple-class.html#__setattr__\npygeodesy.named._NamedTuple.__new__\tpygeodesy.named._NamedTuple-class.html#__new__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._NamedTuple._validated\tpygeodesy.named._NamedTuple-class.html#_validated\npygeodesy.named._NamedTuple.__getattr__\tpygeodesy.named._NamedTuple-class.html#__getattr__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._NamedTuple._xtend\tpygeodesy.named._NamedTuple-class.html#_xtend\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._NamedTuple.units\tpygeodesy.named._NamedTuple-class.html#units\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedTuple.toStr\tpygeodesy.named._NamedTuple-class.html#toStr\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedTuple.dup\tpygeodesy.named._NamedTuple-class.html#dup\npygeodesy.named._NamedTuple.iterunits\tpygeodesy.named._NamedTuple-class.html#iterunits\npygeodesy.named._NamedTuple.iteritems\tpygeodesy.named._NamedTuple-class.html#iteritems\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._NamedTuple.items\tpygeodesy.named._NamedTuple-class.html#items\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedTuple.__delattr__\tpygeodesy.named._NamedTuple-class.html#__delattr__\npygeodesy.named._NamedTuple.__repr__\tpygeodesy.named._NamedTuple-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._NamedTuple.__hash__\tpygeodesy.named._NamedTuple-class.html#__hash__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.named._NamedTuple._Units_\tpygeodesy.named._NamedTuple-class.html#_Units_\npygeodesy.namedTuples.Bearing2Tuple\tpygeodesy.namedTuples.Bearing2Tuple-class.html\npygeodesy.named._NamedTuple.toRepr\tpygeodesy.named._NamedTuple-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._NamedTuple.toUnits\tpygeodesy.named._NamedTuple-class.html#toUnits\npygeodesy.named._NamedTuple._validate\tpygeodesy.named._NamedTuple-class.html#_validate\npygeodesy.named._NamedTuple.__str__\tpygeodesy.named._NamedTuple-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._NamedTuple._DOT_\tpygeodesy.named._NamedTuple-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._NamedTuple.reUnit\tpygeodesy.named._NamedTuple-class.html#reUnit\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.namedTuples.Bearing2Tuple._Names_\tpygeodesy.namedTuples.Bearing2Tuple-class.html#_Names_\npygeodesy.named._NamedTuple.__setattr__\tpygeodesy.named._NamedTuple-class.html#__setattr__\npygeodesy.named._NamedTuple.__new__\tpygeodesy.named._NamedTuple-class.html#__new__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._NamedTuple._validated\tpygeodesy.named._NamedTuple-class.html#_validated\npygeodesy.named._NamedTuple.__getattr__\tpygeodesy.named._NamedTuple-class.html#__getattr__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._NamedTuple._xtend\tpygeodesy.named._NamedTuple-class.html#_xtend\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._NamedTuple.dup\tpygeodesy.named._NamedTuple-class.html#dup\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedTuple.toStr\tpygeodesy.named._NamedTuple-class.html#toStr\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedTuple.units\tpygeodesy.named._NamedTuple-class.html#units\npygeodesy.named._NamedTuple.iterunits\tpygeodesy.named._NamedTuple-class.html#iterunits\npygeodesy.named._NamedTuple.iteritems\tpygeodesy.named._NamedTuple-class.html#iteritems\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._NamedTuple.items\tpygeodesy.named._NamedTuple-class.html#items\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedTuple.__delattr__\tpygeodesy.named._NamedTuple-class.html#__delattr__\npygeodesy.named._NamedTuple.__repr__\tpygeodesy.named._NamedTuple-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._NamedTuple.__hash__\tpygeodesy.named._NamedTuple-class.html#__hash__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.namedTuples.Bearing2Tuple._Units_\tpygeodesy.namedTuples.Bearing2Tuple-class.html#_Units_\npygeodesy.namedTuples.Bounds2Tuple\tpygeodesy.namedTuples.Bounds2Tuple-class.html\npygeodesy.named._NamedTuple.toRepr\tpygeodesy.named._NamedTuple-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._NamedTuple.toUnits\tpygeodesy.named._NamedTuple-class.html#toUnits\npygeodesy.named._NamedTuple._validate\tpygeodesy.named._NamedTuple-class.html#_validate\npygeodesy.named._NamedTuple.__str__\tpygeodesy.named._NamedTuple-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._NamedTuple._DOT_\tpygeodesy.named._NamedTuple-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._NamedTuple.reUnit\tpygeodesy.named._NamedTuple-class.html#reUnit\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.namedTuples.Bounds2Tuple._Names_\tpygeodesy.namedTuples.Bounds2Tuple-class.html#_Names_\npygeodesy.named._NamedTuple.__setattr__\tpygeodesy.named._NamedTuple-class.html#__setattr__\npygeodesy.named._NamedTuple.__new__\tpygeodesy.named._NamedTuple-class.html#__new__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._NamedTuple._validated\tpygeodesy.named._NamedTuple-class.html#_validated\npygeodesy.named._NamedTuple.__getattr__\tpygeodesy.named._NamedTuple-class.html#__getattr__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._NamedTuple._xtend\tpygeodesy.named._NamedTuple-class.html#_xtend\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._NamedTuple.dup\tpygeodesy.named._NamedTuple-class.html#dup\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedTuple.toStr\tpygeodesy.named._NamedTuple-class.html#toStr\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedTuple.units\tpygeodesy.named._NamedTuple-class.html#units\npygeodesy.named._NamedTuple.iterunits\tpygeodesy.named._NamedTuple-class.html#iterunits\npygeodesy.named._NamedTuple.iteritems\tpygeodesy.named._NamedTuple-class.html#iteritems\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._NamedTuple.items\tpygeodesy.named._NamedTuple-class.html#items\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedTuple.__delattr__\tpygeodesy.named._NamedTuple-class.html#__delattr__\npygeodesy.named._NamedTuple.__repr__\tpygeodesy.named._NamedTuple-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._NamedTuple.__hash__\tpygeodesy.named._NamedTuple-class.html#__hash__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.namedTuples.Bounds2Tuple._Units_\tpygeodesy.namedTuples.Bounds2Tuple-class.html#_Units_\npygeodesy.namedTuples.Bounds4Tuple\tpygeodesy.namedTuples.Bounds4Tuple-class.html\npygeodesy.named._NamedTuple.toRepr\tpygeodesy.named._NamedTuple-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._NamedTuple.toUnits\tpygeodesy.named._NamedTuple-class.html#toUnits\npygeodesy.named._NamedTuple._validate\tpygeodesy.named._NamedTuple-class.html#_validate\npygeodesy.named._NamedTuple.__str__\tpygeodesy.named._NamedTuple-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._NamedTuple._DOT_\tpygeodesy.named._NamedTuple-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._NamedTuple.__getattr__\tpygeodesy.named._NamedTuple-class.html#__getattr__\npygeodesy.named._NamedTuple.reUnit\tpygeodesy.named._NamedTuple-class.html#reUnit\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.namedTuples.Bounds4Tuple._Names_\tpygeodesy.namedTuples.Bounds4Tuple-class.html#_Names_\npygeodesy.named._NamedTuple.__setattr__\tpygeodesy.named._NamedTuple-class.html#__setattr__\npygeodesy.named._NamedTuple.__new__\tpygeodesy.named._NamedTuple-class.html#__new__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._NamedTuple._validated\tpygeodesy.named._NamedTuple-class.html#_validated\npygeodesy.namedTuples.Bounds4Tuple.overlap\tpygeodesy.namedTuples.Bounds4Tuple-class.html#overlap\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._NamedTuple._xtend\tpygeodesy.named._NamedTuple-class.html#_xtend\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._NamedTuple.dup\tpygeodesy.named._NamedTuple-class.html#dup\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.namedTuples.Bounds4Tuple.enclosures\tpygeodesy.namedTuples.Bounds4Tuple-class.html#enclosures\npygeodesy.named._NamedTuple.toStr\tpygeodesy.named._NamedTuple-class.html#toStr\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedTuple.units\tpygeodesy.named._NamedTuple-class.html#units\npygeodesy.named._NamedTuple.iterunits\tpygeodesy.named._NamedTuple-class.html#iterunits\npygeodesy.named._NamedTuple.iteritems\tpygeodesy.named._NamedTuple-class.html#iteritems\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._NamedTuple.items\tpygeodesy.named._NamedTuple-class.html#items\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedTuple.__delattr__\tpygeodesy.named._NamedTuple-class.html#__delattr__\npygeodesy.named._NamedTuple.__repr__\tpygeodesy.named._NamedTuple-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._NamedTuple.__hash__\tpygeodesy.named._NamedTuple-class.html#__hash__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.namedTuples.Bounds4Tuple._Units_\tpygeodesy.namedTuples.Bounds4Tuple-class.html#_Units_\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.namedTuples.Circle4Tuple\tpygeodesy.namedTuples.Circle4Tuple-class.html\npygeodesy.named._NamedTuple.toRepr\tpygeodesy.named._NamedTuple-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._NamedTuple.toUnits\tpygeodesy.named._NamedTuple-class.html#toUnits\npygeodesy.named._NamedTuple._validate\tpygeodesy.named._NamedTuple-class.html#_validate\npygeodesy.named._NamedTuple.__str__\tpygeodesy.named._NamedTuple-class.html#__str__\npygeodesy.named._NamedTuple.iteritems\tpygeodesy.named._NamedTuple-class.html#iteritems\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._NamedTuple._DOT_\tpygeodesy.named._NamedTuple-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._NamedTuple.reUnit\tpygeodesy.named._NamedTuple-class.html#reUnit\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.namedTuples.Circle4Tuple._Names_\tpygeodesy.namedTuples.Circle4Tuple-class.html#_Names_\npygeodesy.named._NamedTuple.__setattr__\tpygeodesy.named._NamedTuple-class.html#__setattr__\npygeodesy.named._NamedTuple.__new__\tpygeodesy.named._NamedTuple-class.html#__new__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._NamedTuple._validated\tpygeodesy.named._NamedTuple-class.html#_validated\npygeodesy.named._NamedTuple.__getattr__\tpygeodesy.named._NamedTuple-class.html#__getattr__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._NamedTuple._xtend\tpygeodesy.named._NamedTuple-class.html#_xtend\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._NamedTuple.dup\tpygeodesy.named._NamedTuple-class.html#dup\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedTuple.toStr\tpygeodesy.named._NamedTuple-class.html#toStr\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedTuple.units\tpygeodesy.named._NamedTuple-class.html#units\npygeodesy.named._NamedTuple.iterunits\tpygeodesy.named._NamedTuple-class.html#iterunits\npygeodesy.namedTuples.Circle4Tuple.abc3\tpygeodesy.namedTuples.Circle4Tuple-class.html#abc3\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._NamedTuple.items\tpygeodesy.named._NamedTuple-class.html#items\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedTuple.__delattr__\tpygeodesy.named._NamedTuple-class.html#__delattr__\npygeodesy.named._NamedTuple.__repr__\tpygeodesy.named._NamedTuple-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._NamedTuple.__hash__\tpygeodesy.named._NamedTuple-class.html#__hash__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.namedTuples.Circle4Tuple._Units_\tpygeodesy.namedTuples.Circle4Tuple-class.html#_Units_\npygeodesy.namedTuples.Destination2Tuple\tpygeodesy.namedTuples.Destination2Tuple-class.html\npygeodesy.named._NamedTuple.toRepr\tpygeodesy.named._NamedTuple-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._NamedTuple.toUnits\tpygeodesy.named._NamedTuple-class.html#toUnits\npygeodesy.named._NamedTuple._validate\tpygeodesy.named._NamedTuple-class.html#_validate\npygeodesy.named._NamedTuple.__str__\tpygeodesy.named._NamedTuple-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._NamedTuple._DOT_\tpygeodesy.named._NamedTuple-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._NamedTuple.reUnit\tpygeodesy.named._NamedTuple-class.html#reUnit\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.namedTuples.Destination2Tuple._Names_\tpygeodesy.namedTuples.Destination2Tuple-class.html#_Names_\npygeodesy.named._NamedTuple.__setattr__\tpygeodesy.named._NamedTuple-class.html#__setattr__\npygeodesy.named._NamedTuple.__new__\tpygeodesy.named._NamedTuple-class.html#__new__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._NamedTuple._validated\tpygeodesy.named._NamedTuple-class.html#_validated\npygeodesy.named._NamedTuple.__getattr__\tpygeodesy.named._NamedTuple-class.html#__getattr__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._NamedTuple._xtend\tpygeodesy.named._NamedTuple-class.html#_xtend\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._NamedTuple.dup\tpygeodesy.named._NamedTuple-class.html#dup\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedTuple.toStr\tpygeodesy.named._NamedTuple-class.html#toStr\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedTuple.units\tpygeodesy.named._NamedTuple-class.html#units\npygeodesy.named._NamedTuple.iterunits\tpygeodesy.named._NamedTuple-class.html#iterunits\npygeodesy.named._NamedTuple.iteritems\tpygeodesy.named._NamedTuple-class.html#iteritems\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._NamedTuple.items\tpygeodesy.named._NamedTuple-class.html#items\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedTuple.__delattr__\tpygeodesy.named._NamedTuple-class.html#__delattr__\npygeodesy.named._NamedTuple.__repr__\tpygeodesy.named._NamedTuple-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._NamedTuple.__hash__\tpygeodesy.named._NamedTuple-class.html#__hash__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.namedTuples.Destination2Tuple._Units_\tpygeodesy.namedTuples.Destination2Tuple-class.html#_Units_\npygeodesy.namedTuples.Destination3Tuple\tpygeodesy.namedTuples.Destination3Tuple-class.html\npygeodesy.named._NamedTuple.toRepr\tpygeodesy.named._NamedTuple-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._NamedTuple.toUnits\tpygeodesy.named._NamedTuple-class.html#toUnits\npygeodesy.named._NamedTuple._validate\tpygeodesy.named._NamedTuple-class.html#_validate\npygeodesy.named._NamedTuple.__str__\tpygeodesy.named._NamedTuple-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._NamedTuple._DOT_\tpygeodesy.named._NamedTuple-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._NamedTuple.reUnit\tpygeodesy.named._NamedTuple-class.html#reUnit\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.namedTuples.Destination3Tuple._Names_\tpygeodesy.namedTuples.Destination3Tuple-class.html#_Names_\npygeodesy.named._NamedTuple.__setattr__\tpygeodesy.named._NamedTuple-class.html#__setattr__\npygeodesy.named._NamedTuple.__new__\tpygeodesy.named._NamedTuple-class.html#__new__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._NamedTuple._validated\tpygeodesy.named._NamedTuple-class.html#_validated\npygeodesy.named._NamedTuple.__getattr__\tpygeodesy.named._NamedTuple-class.html#__getattr__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._NamedTuple._xtend\tpygeodesy.named._NamedTuple-class.html#_xtend\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._NamedTuple.dup\tpygeodesy.named._NamedTuple-class.html#dup\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedTuple.toStr\tpygeodesy.named._NamedTuple-class.html#toStr\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedTuple.units\tpygeodesy.named._NamedTuple-class.html#units\npygeodesy.named._NamedTuple.iterunits\tpygeodesy.named._NamedTuple-class.html#iterunits\npygeodesy.named._NamedTuple.iteritems\tpygeodesy.named._NamedTuple-class.html#iteritems\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._NamedTuple.items\tpygeodesy.named._NamedTuple-class.html#items\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedTuple.__delattr__\tpygeodesy.named._NamedTuple-class.html#__delattr__\npygeodesy.named._NamedTuple.__repr__\tpygeodesy.named._NamedTuple-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._NamedTuple.__hash__\tpygeodesy.named._NamedTuple-class.html#__hash__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.namedTuples.Destination3Tuple._Units_\tpygeodesy.namedTuples.Destination3Tuple-class.html#_Units_\npygeodesy.namedTuples.Distance2Tuple\tpygeodesy.namedTuples.Distance2Tuple-class.html\npygeodesy.named._NamedTuple.toRepr\tpygeodesy.named._NamedTuple-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._NamedTuple.toUnits\tpygeodesy.named._NamedTuple-class.html#toUnits\npygeodesy.named._NamedTuple._validate\tpygeodesy.named._NamedTuple-class.html#_validate\npygeodesy.named._NamedTuple.__str__\tpygeodesy.named._NamedTuple-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._NamedTuple._DOT_\tpygeodesy.named._NamedTuple-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._NamedTuple.reUnit\tpygeodesy.named._NamedTuple-class.html#reUnit\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.namedTuples.Distance2Tuple._Names_\tpygeodesy.namedTuples.Distance2Tuple-class.html#_Names_\npygeodesy.named._NamedTuple.__setattr__\tpygeodesy.named._NamedTuple-class.html#__setattr__\npygeodesy.named._NamedTuple.__new__\tpygeodesy.named._NamedTuple-class.html#__new__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._NamedTuple._validated\tpygeodesy.named._NamedTuple-class.html#_validated\npygeodesy.named._NamedTuple.__getattr__\tpygeodesy.named._NamedTuple-class.html#__getattr__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._NamedTuple._xtend\tpygeodesy.named._NamedTuple-class.html#_xtend\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._NamedTuple.dup\tpygeodesy.named._NamedTuple-class.html#dup\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedTuple.toStr\tpygeodesy.named._NamedTuple-class.html#toStr\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedTuple.units\tpygeodesy.named._NamedTuple-class.html#units\npygeodesy.named._NamedTuple.iterunits\tpygeodesy.named._NamedTuple-class.html#iterunits\npygeodesy.named._NamedTuple.iteritems\tpygeodesy.named._NamedTuple-class.html#iteritems\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._NamedTuple.items\tpygeodesy.named._NamedTuple-class.html#items\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedTuple.__delattr__\tpygeodesy.named._NamedTuple-class.html#__delattr__\npygeodesy.named._NamedTuple.__repr__\tpygeodesy.named._NamedTuple-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._NamedTuple.__hash__\tpygeodesy.named._NamedTuple-class.html#__hash__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.namedTuples.Distance2Tuple._Units_\tpygeodesy.namedTuples.Distance2Tuple-class.html#_Units_\npygeodesy.namedTuples.Distance3Tuple\tpygeodesy.namedTuples.Distance3Tuple-class.html\npygeodesy.named._NamedTuple.toRepr\tpygeodesy.named._NamedTuple-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._NamedTuple.toUnits\tpygeodesy.named._NamedTuple-class.html#toUnits\npygeodesy.named._NamedTuple._validate\tpygeodesy.named._NamedTuple-class.html#_validate\npygeodesy.named._NamedTuple.__str__\tpygeodesy.named._NamedTuple-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._NamedTuple._DOT_\tpygeodesy.named._NamedTuple-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._NamedTuple.reUnit\tpygeodesy.named._NamedTuple-class.html#reUnit\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.namedTuples.Distance3Tuple._Names_\tpygeodesy.namedTuples.Distance3Tuple-class.html#_Names_\npygeodesy.named._NamedTuple.__setattr__\tpygeodesy.named._NamedTuple-class.html#__setattr__\npygeodesy.named._NamedTuple.__new__\tpygeodesy.named._NamedTuple-class.html#__new__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._NamedTuple._validated\tpygeodesy.named._NamedTuple-class.html#_validated\npygeodesy.named._NamedTuple.__getattr__\tpygeodesy.named._NamedTuple-class.html#__getattr__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._NamedTuple._xtend\tpygeodesy.named._NamedTuple-class.html#_xtend\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._NamedTuple.dup\tpygeodesy.named._NamedTuple-class.html#dup\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedTuple.toStr\tpygeodesy.named._NamedTuple-class.html#toStr\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedTuple.units\tpygeodesy.named._NamedTuple-class.html#units\npygeodesy.named._NamedTuple.iterunits\tpygeodesy.named._NamedTuple-class.html#iterunits\npygeodesy.named._NamedTuple.iteritems\tpygeodesy.named._NamedTuple-class.html#iteritems\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._NamedTuple.items\tpygeodesy.named._NamedTuple-class.html#items\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedTuple.__delattr__\tpygeodesy.named._NamedTuple-class.html#__delattr__\npygeodesy.named._NamedTuple.__repr__\tpygeodesy.named._NamedTuple-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._NamedTuple.__hash__\tpygeodesy.named._NamedTuple-class.html#__hash__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.namedTuples.Distance3Tuple._Units_\tpygeodesy.namedTuples.Distance3Tuple-class.html#_Units_\npygeodesy.namedTuples.Distance4Tuple\tpygeodesy.namedTuples.Distance4Tuple-class.html\npygeodesy.named._NamedTuple.toRepr\tpygeodesy.named._NamedTuple-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._NamedTuple.toUnits\tpygeodesy.named._NamedTuple-class.html#toUnits\npygeodesy.named._NamedTuple._validate\tpygeodesy.named._NamedTuple-class.html#_validate\npygeodesy.named._NamedTuple.__str__\tpygeodesy.named._NamedTuple-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._NamedTuple._DOT_\tpygeodesy.named._NamedTuple-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._NamedTuple.reUnit\tpygeodesy.named._NamedTuple-class.html#reUnit\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.namedTuples.Distance4Tuple._Names_\tpygeodesy.namedTuples.Distance4Tuple-class.html#_Names_\npygeodesy.named._NamedTuple.__setattr__\tpygeodesy.named._NamedTuple-class.html#__setattr__\npygeodesy.named._NamedTuple.__new__\tpygeodesy.named._NamedTuple-class.html#__new__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._NamedTuple._validated\tpygeodesy.named._NamedTuple-class.html#_validated\npygeodesy.named._NamedTuple.__getattr__\tpygeodesy.named._NamedTuple-class.html#__getattr__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._NamedTuple._xtend\tpygeodesy.named._NamedTuple-class.html#_xtend\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._NamedTuple.dup\tpygeodesy.named._NamedTuple-class.html#dup\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedTuple.toStr\tpygeodesy.named._NamedTuple-class.html#toStr\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedTuple.units\tpygeodesy.named._NamedTuple-class.html#units\npygeodesy.named._NamedTuple.iterunits\tpygeodesy.named._NamedTuple-class.html#iterunits\npygeodesy.named._NamedTuple.iteritems\tpygeodesy.named._NamedTuple-class.html#iteritems\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._NamedTuple.items\tpygeodesy.named._NamedTuple-class.html#items\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedTuple.__delattr__\tpygeodesy.named._NamedTuple-class.html#__delattr__\npygeodesy.named._NamedTuple.__repr__\tpygeodesy.named._NamedTuple-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._NamedTuple.__hash__\tpygeodesy.named._NamedTuple-class.html#__hash__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.namedTuples.Distance4Tuple._Units_\tpygeodesy.namedTuples.Distance4Tuple-class.html#_Units_\npygeodesy.namedTuples.EasNor2Tuple\tpygeodesy.namedTuples.EasNor2Tuple-class.html\npygeodesy.named._NamedTuple.toRepr\tpygeodesy.named._NamedTuple-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._NamedTuple.toUnits\tpygeodesy.named._NamedTuple-class.html#toUnits\npygeodesy.named._NamedTuple._validate\tpygeodesy.named._NamedTuple-class.html#_validate\npygeodesy.named._NamedTuple.__str__\tpygeodesy.named._NamedTuple-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._NamedTuple._DOT_\tpygeodesy.named._NamedTuple-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._NamedTuple.reUnit\tpygeodesy.named._NamedTuple-class.html#reUnit\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.namedTuples.EasNor2Tuple._Names_\tpygeodesy.namedTuples.EasNor2Tuple-class.html#_Names_\npygeodesy.named._NamedTuple.__setattr__\tpygeodesy.named._NamedTuple-class.html#__setattr__\npygeodesy.named._NamedTuple.__new__\tpygeodesy.named._NamedTuple-class.html#__new__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._NamedTuple._validated\tpygeodesy.named._NamedTuple-class.html#_validated\npygeodesy.named._NamedTuple.__getattr__\tpygeodesy.named._NamedTuple-class.html#__getattr__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._NamedTuple._xtend\tpygeodesy.named._NamedTuple-class.html#_xtend\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._NamedTuple.dup\tpygeodesy.named._NamedTuple-class.html#dup\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedTuple.toStr\tpygeodesy.named._NamedTuple-class.html#toStr\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedTuple.units\tpygeodesy.named._NamedTuple-class.html#units\npygeodesy.named._NamedTuple.iterunits\tpygeodesy.named._NamedTuple-class.html#iterunits\npygeodesy.named._NamedTuple.iteritems\tpygeodesy.named._NamedTuple-class.html#iteritems\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._NamedTuple.items\tpygeodesy.named._NamedTuple-class.html#items\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedTuple.__delattr__\tpygeodesy.named._NamedTuple-class.html#__delattr__\npygeodesy.named._NamedTuple.__repr__\tpygeodesy.named._NamedTuple-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._NamedTuple.__hash__\tpygeodesy.named._NamedTuple-class.html#__hash__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.namedTuples.EasNor2Tuple._Units_\tpygeodesy.namedTuples.EasNor2Tuple-class.html#_Units_\npygeodesy.namedTuples.EasNor3Tuple\tpygeodesy.namedTuples.EasNor3Tuple-class.html\npygeodesy.named._NamedTuple.toRepr\tpygeodesy.named._NamedTuple-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._NamedTuple.toUnits\tpygeodesy.named._NamedTuple-class.html#toUnits\npygeodesy.named._NamedTuple._validate\tpygeodesy.named._NamedTuple-class.html#_validate\npygeodesy.named._NamedTuple.__str__\tpygeodesy.named._NamedTuple-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._NamedTuple._DOT_\tpygeodesy.named._NamedTuple-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._NamedTuple.reUnit\tpygeodesy.named._NamedTuple-class.html#reUnit\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.namedTuples.EasNor3Tuple._Names_\tpygeodesy.namedTuples.EasNor3Tuple-class.html#_Names_\npygeodesy.named._NamedTuple.__setattr__\tpygeodesy.named._NamedTuple-class.html#__setattr__\npygeodesy.named._NamedTuple.__new__\tpygeodesy.named._NamedTuple-class.html#__new__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._NamedTuple._validated\tpygeodesy.named._NamedTuple-class.html#_validated\npygeodesy.named._NamedTuple.__getattr__\tpygeodesy.named._NamedTuple-class.html#__getattr__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._NamedTuple._xtend\tpygeodesy.named._NamedTuple-class.html#_xtend\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._NamedTuple.dup\tpygeodesy.named._NamedTuple-class.html#dup\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedTuple.toStr\tpygeodesy.named._NamedTuple-class.html#toStr\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedTuple.units\tpygeodesy.named._NamedTuple-class.html#units\npygeodesy.named._NamedTuple.iterunits\tpygeodesy.named._NamedTuple-class.html#iterunits\npygeodesy.named._NamedTuple.iteritems\tpygeodesy.named._NamedTuple-class.html#iteritems\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._NamedTuple.items\tpygeodesy.named._NamedTuple-class.html#items\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedTuple.__delattr__\tpygeodesy.named._NamedTuple-class.html#__delattr__\npygeodesy.named._NamedTuple.__repr__\tpygeodesy.named._NamedTuple-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._NamedTuple.__hash__\tpygeodesy.named._NamedTuple-class.html#__hash__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.namedTuples.EasNor3Tuple._Units_\tpygeodesy.namedTuples.EasNor3Tuple-class.html#_Units_\npygeodesy.namedTuples.Ellipse5Tuple\tpygeodesy.namedTuples.Ellipse5Tuple-class.html\npygeodesy.named._NamedTuple.toRepr\tpygeodesy.named._NamedTuple-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._NamedTuple.toUnits\tpygeodesy.named._NamedTuple-class.html#toUnits\npygeodesy.named._NamedTuple._validate\tpygeodesy.named._NamedTuple-class.html#_validate\npygeodesy.named._NamedTuple.__str__\tpygeodesy.named._NamedTuple-class.html#__str__\npygeodesy.named._NamedTuple.iteritems\tpygeodesy.named._NamedTuple-class.html#iteritems\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._NamedTuple._DOT_\tpygeodesy.named._NamedTuple-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._NamedTuple.reUnit\tpygeodesy.named._NamedTuple-class.html#reUnit\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.namedTuples.Ellipse5Tuple._Names_\tpygeodesy.namedTuples.Ellipse5Tuple-class.html#_Names_\npygeodesy.named._NamedTuple.__setattr__\tpygeodesy.named._NamedTuple-class.html#__setattr__\npygeodesy.named._NamedTuple.__new__\tpygeodesy.named._NamedTuple-class.html#__new__\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._NamedTuple._validated\tpygeodesy.named._NamedTuple-class.html#_validated\npygeodesy.named._NamedTuple.__getattr__\tpygeodesy.named._NamedTuple-class.html#__getattr__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._NamedTuple._xtend\tpygeodesy.named._NamedTuple-class.html#_xtend\npygeodesy.namedTuples.Ellipse5Tuple.toTriaxial_\tpygeodesy.namedTuples.Ellipse5Tuple-class.html#toTriaxial_\npygeodesy.named._NamedTuple.dup\tpygeodesy.named._NamedTuple-class.html#dup\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedTuple.toStr\tpygeodesy.named._NamedTuple-class.html#toStr\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedTuple.units\tpygeodesy.named._NamedTuple-class.html#units\npygeodesy.named._NamedTuple.iterunits\tpygeodesy.named._NamedTuple-class.html#iterunits\npygeodesy.namedTuples.Ellipse5Tuple.abc3\tpygeodesy.namedTuples.Ellipse5Tuple-class.html#abc3\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.namedTuples.Ellipse5Tuple.abc3ordered\tpygeodesy.namedTuples.Ellipse5Tuple-class.html#abc3ordered\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._NamedTuple.items\tpygeodesy.named._NamedTuple-class.html#items\npygeodesy.namedTuples.Ellipse5Tuple.toTriaxial\tpygeodesy.namedTuples.Ellipse5Tuple-class.html#toTriaxial\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedTuple.__delattr__\tpygeodesy.named._NamedTuple-class.html#__delattr__\npygeodesy.named._NamedTuple.__repr__\tpygeodesy.named._NamedTuple-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._NamedTuple.__hash__\tpygeodesy.named._NamedTuple-class.html#__hash__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.namedTuples.Ellipse5Tuple._Units_\tpygeodesy.namedTuples.Ellipse5Tuple-class.html#_Units_\npygeodesy.namedTuples.Forward4Tuple\tpygeodesy.namedTuples.Forward4Tuple-class.html\npygeodesy.named._NamedTuple.toRepr\tpygeodesy.named._NamedTuple-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._NamedTuple.toUnits\tpygeodesy.named._NamedTuple-class.html#toUnits\npygeodesy.named._NamedTuple._validate\tpygeodesy.named._NamedTuple-class.html#_validate\npygeodesy.named._NamedTuple.__str__\tpygeodesy.named._NamedTuple-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._NamedTuple._DOT_\tpygeodesy.named._NamedTuple-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._NamedTuple.reUnit\tpygeodesy.named._NamedTuple-class.html#reUnit\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.namedTuples.Forward4Tuple._Names_\tpygeodesy.namedTuples.Forward4Tuple-class.html#_Names_\npygeodesy.named._NamedTuple.__setattr__\tpygeodesy.named._NamedTuple-class.html#__setattr__\npygeodesy.named._NamedTuple.__new__\tpygeodesy.named._NamedTuple-class.html#__new__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._NamedTuple._validated\tpygeodesy.named._NamedTuple-class.html#_validated\npygeodesy.named._NamedTuple.__getattr__\tpygeodesy.named._NamedTuple-class.html#__getattr__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._NamedTuple._xtend\tpygeodesy.named._NamedTuple-class.html#_xtend\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._NamedTuple.dup\tpygeodesy.named._NamedTuple-class.html#dup\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedTuple.toStr\tpygeodesy.named._NamedTuple-class.html#toStr\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedTuple.units\tpygeodesy.named._NamedTuple-class.html#units\npygeodesy.named._NamedTuple.iterunits\tpygeodesy.named._NamedTuple-class.html#iterunits\npygeodesy.named._NamedTuple.iteritems\tpygeodesy.named._NamedTuple-class.html#iteritems\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._NamedTuple.items\tpygeodesy.named._NamedTuple-class.html#items\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedTuple.__delattr__\tpygeodesy.named._NamedTuple-class.html#__delattr__\npygeodesy.named._NamedTuple.__repr__\tpygeodesy.named._NamedTuple-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._NamedTuple.__hash__\tpygeodesy.named._NamedTuple-class.html#__hash__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.namedTuples.Forward4Tuple._Units_\tpygeodesy.namedTuples.Forward4Tuple-class.html#_Units_\npygeodesy.namedTuples.Intersection3Tuple\tpygeodesy.namedTuples.Intersection3Tuple-class.html\npygeodesy.named._NamedTuple.toRepr\tpygeodesy.named._NamedTuple-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._NamedTuple.toUnits\tpygeodesy.named._NamedTuple-class.html#toUnits\npygeodesy.named._NamedTuple._validate\tpygeodesy.named._NamedTuple-class.html#_validate\npygeodesy.named._NamedTuple.__str__\tpygeodesy.named._NamedTuple-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._NamedTuple._DOT_\tpygeodesy.named._NamedTuple-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._NamedTuple.reUnit\tpygeodesy.named._NamedTuple-class.html#reUnit\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.namedTuples.Intersection3Tuple._Names_\tpygeodesy.namedTuples.Intersection3Tuple-class.html#_Names_\npygeodesy.named._NamedTuple.__setattr__\tpygeodesy.named._NamedTuple-class.html#__setattr__\npygeodesy.named._NamedTuple.__new__\tpygeodesy.named._NamedTuple-class.html#__new__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._NamedTuple._validated\tpygeodesy.named._NamedTuple-class.html#_validated\npygeodesy.named._NamedTuple.__getattr__\tpygeodesy.named._NamedTuple-class.html#__getattr__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._NamedTuple._xtend\tpygeodesy.named._NamedTuple-class.html#_xtend\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._NamedTuple.dup\tpygeodesy.named._NamedTuple-class.html#dup\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedTuple.toStr\tpygeodesy.named._NamedTuple-class.html#toStr\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedTuple.units\tpygeodesy.named._NamedTuple-class.html#units\npygeodesy.named._NamedTuple.iterunits\tpygeodesy.named._NamedTuple-class.html#iterunits\npygeodesy.named._NamedTuple.iteritems\tpygeodesy.named._NamedTuple-class.html#iteritems\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._NamedTuple.items\tpygeodesy.named._NamedTuple-class.html#items\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedTuple.__delattr__\tpygeodesy.named._NamedTuple-class.html#__delattr__\npygeodesy.named._NamedTuple.__repr__\tpygeodesy.named._NamedTuple-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._NamedTuple.__hash__\tpygeodesy.named._NamedTuple-class.html#__hash__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.namedTuples.Intersection3Tuple._Units_\tpygeodesy.namedTuples.Intersection3Tuple-class.html#_Units_\npygeodesy.namedTuples.LatLon2Tuple\tpygeodesy.namedTuples.LatLon2Tuple-class.html\npygeodesy.named._NamedTuple.toRepr\tpygeodesy.named._NamedTuple-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._NamedTuple.toUnits\tpygeodesy.named._NamedTuple-class.html#toUnits\npygeodesy.named._NamedTuple._validate\tpygeodesy.named._NamedTuple-class.html#_validate\npygeodesy.named._NamedTuple.__str__\tpygeodesy.named._NamedTuple-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._NamedTuple._DOT_\tpygeodesy.named._NamedTuple-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._NamedTuple.reUnit\tpygeodesy.named._NamedTuple-class.html#reUnit\npygeodesy.namedTuples.LatLon2Tuple.to4Tuple\tpygeodesy.namedTuples.LatLon2Tuple-class.html#to4Tuple\npygeodesy.namedTuples.LatLon2Tuple._Names_\tpygeodesy.namedTuples.LatLon2Tuple-class.html#_Names_\npygeodesy.named._NamedTuple.__setattr__\tpygeodesy.named._NamedTuple-class.html#__setattr__\npygeodesy.named._NamedTuple.__new__\tpygeodesy.named._NamedTuple-class.html#__new__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.namedTuples.LatLon2Tuple._validated\tpygeodesy.namedTuples.LatLon2Tuple-class.html#_validated\npygeodesy.named._NamedTuple.__getattr__\tpygeodesy.named._NamedTuple-class.html#__getattr__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.namedTuples.LatLon2Tuple.to3Tuple\tpygeodesy.namedTuples.LatLon2Tuple-class.html#to3Tuple\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._NamedTuple._xtend\tpygeodesy.named._NamedTuple-class.html#_xtend\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._NamedTuple.dup\tpygeodesy.named._NamedTuple-class.html#dup\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedTuple.toStr\tpygeodesy.named._NamedTuple-class.html#toStr\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedTuple.units\tpygeodesy.named._NamedTuple-class.html#units\npygeodesy.named._NamedTuple.iterunits\tpygeodesy.named._NamedTuple-class.html#iterunits\npygeodesy.named._NamedTuple.iteritems\tpygeodesy.named._NamedTuple-class.html#iteritems\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._NamedTuple.items\tpygeodesy.named._NamedTuple-class.html#items\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedTuple.__delattr__\tpygeodesy.named._NamedTuple-class.html#__delattr__\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.named._NamedTuple.__repr__\tpygeodesy.named._NamedTuple-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._NamedTuple.__hash__\tpygeodesy.named._NamedTuple-class.html#__hash__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.namedTuples.LatLon2Tuple._Units_\tpygeodesy.namedTuples.LatLon2Tuple-class.html#_Units_\npygeodesy.namedTuples.LatLon3Tuple\tpygeodesy.namedTuples.LatLon3Tuple-class.html\npygeodesy.named._NamedTuple.toRepr\tpygeodesy.named._NamedTuple-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._NamedTuple.toUnits\tpygeodesy.named._NamedTuple-class.html#toUnits\npygeodesy.named._NamedTuple._validate\tpygeodesy.named._NamedTuple-class.html#_validate\npygeodesy.named._NamedTuple.__str__\tpygeodesy.named._NamedTuple-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._NamedTuple._DOT_\tpygeodesy.named._NamedTuple-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._NamedTuple.reUnit\tpygeodesy.named._NamedTuple-class.html#reUnit\npygeodesy.namedTuples.LatLon3Tuple.to4Tuple\tpygeodesy.namedTuples.LatLon3Tuple-class.html#to4Tuple\npygeodesy.namedTuples.LatLon3Tuple._Names_\tpygeodesy.namedTuples.LatLon3Tuple-class.html#_Names_\npygeodesy.named._NamedTuple.__setattr__\tpygeodesy.named._NamedTuple-class.html#__setattr__\npygeodesy.named._NamedTuple.__new__\tpygeodesy.named._NamedTuple-class.html#__new__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._NamedTuple._validated\tpygeodesy.named._NamedTuple-class.html#_validated\npygeodesy.named._NamedTuple.__getattr__\tpygeodesy.named._NamedTuple-class.html#__getattr__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._NamedTuple._xtend\tpygeodesy.named._NamedTuple-class.html#_xtend\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._NamedTuple.dup\tpygeodesy.named._NamedTuple-class.html#dup\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedTuple.toStr\tpygeodesy.named._NamedTuple-class.html#toStr\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedTuple.units\tpygeodesy.named._NamedTuple-class.html#units\npygeodesy.named._NamedTuple.iterunits\tpygeodesy.named._NamedTuple-class.html#iterunits\npygeodesy.named._NamedTuple.iteritems\tpygeodesy.named._NamedTuple-class.html#iteritems\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._NamedTuple.items\tpygeodesy.named._NamedTuple-class.html#items\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedTuple.__delattr__\tpygeodesy.named._NamedTuple-class.html#__delattr__\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.named._NamedTuple.__repr__\tpygeodesy.named._NamedTuple-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._NamedTuple.__hash__\tpygeodesy.named._NamedTuple-class.html#__hash__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.namedTuples.LatLon3Tuple._Units_\tpygeodesy.namedTuples.LatLon3Tuple-class.html#_Units_\npygeodesy.namedTuples.LatLon4Tuple\tpygeodesy.namedTuples.LatLon4Tuple-class.html\npygeodesy.named._NamedTuple.toRepr\tpygeodesy.named._NamedTuple-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._NamedTuple.toUnits\tpygeodesy.named._NamedTuple-class.html#toUnits\npygeodesy.named._NamedTuple._validate\tpygeodesy.named._NamedTuple-class.html#_validate\npygeodesy.named._NamedTuple.__str__\tpygeodesy.named._NamedTuple-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._NamedTuple._DOT_\tpygeodesy.named._NamedTuple-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._NamedTuple.reUnit\tpygeodesy.named._NamedTuple-class.html#reUnit\npygeodesy.namedTuples.LatLon3Tuple.to4Tuple\tpygeodesy.namedTuples.LatLon3Tuple-class.html#to4Tuple\npygeodesy.namedTuples.LatLon4Tuple._Names_\tpygeodesy.namedTuples.LatLon4Tuple-class.html#_Names_\npygeodesy.named._NamedTuple.__setattr__\tpygeodesy.named._NamedTuple-class.html#__setattr__\npygeodesy.named._NamedTuple.__new__\tpygeodesy.named._NamedTuple-class.html#__new__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.namedTuples.LatLon4Tuple._validated\tpygeodesy.namedTuples.LatLon4Tuple-class.html#_validated\npygeodesy.named._NamedTuple.__getattr__\tpygeodesy.named._NamedTuple-class.html#__getattr__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._NamedTuple._xtend\tpygeodesy.named._NamedTuple-class.html#_xtend\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._NamedTuple.dup\tpygeodesy.named._NamedTuple-class.html#dup\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedTuple.toStr\tpygeodesy.named._NamedTuple-class.html#toStr\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedTuple.units\tpygeodesy.named._NamedTuple-class.html#units\npygeodesy.named._NamedTuple.iterunits\tpygeodesy.named._NamedTuple-class.html#iterunits\npygeodesy.named._NamedTuple.iteritems\tpygeodesy.named._NamedTuple-class.html#iteritems\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._NamedTuple.items\tpygeodesy.named._NamedTuple-class.html#items\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedTuple.__delattr__\tpygeodesy.named._NamedTuple-class.html#__delattr__\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.named._NamedTuple.__repr__\tpygeodesy.named._NamedTuple-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._NamedTuple.__hash__\tpygeodesy.named._NamedTuple-class.html#__hash__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.namedTuples.LatLon4Tuple._Units_\tpygeodesy.namedTuples.LatLon4Tuple-class.html#_Units_\npygeodesy.namedTuples.LatLonDatum3Tuple\tpygeodesy.namedTuples.LatLonDatum3Tuple-class.html\npygeodesy.named._NamedTuple.toRepr\tpygeodesy.named._NamedTuple-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._NamedTuple.toUnits\tpygeodesy.named._NamedTuple-class.html#toUnits\npygeodesy.named._NamedTuple._validate\tpygeodesy.named._NamedTuple-class.html#_validate\npygeodesy.named._NamedTuple.__str__\tpygeodesy.named._NamedTuple-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._NamedTuple._DOT_\tpygeodesy.named._NamedTuple-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._NamedTuple.reUnit\tpygeodesy.named._NamedTuple-class.html#reUnit\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.namedTuples.LatLonDatum3Tuple._Names_\tpygeodesy.namedTuples.LatLonDatum3Tuple-class.html#_Names_\npygeodesy.named._NamedTuple.__setattr__\tpygeodesy.named._NamedTuple-class.html#__setattr__\npygeodesy.named._NamedTuple.__new__\tpygeodesy.named._NamedTuple-class.html#__new__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._NamedTuple._validated\tpygeodesy.named._NamedTuple-class.html#_validated\npygeodesy.named._NamedTuple.__getattr__\tpygeodesy.named._NamedTuple-class.html#__getattr__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._NamedTuple._xtend\tpygeodesy.named._NamedTuple-class.html#_xtend\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._NamedTuple.dup\tpygeodesy.named._NamedTuple-class.html#dup\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedTuple.toStr\tpygeodesy.named._NamedTuple-class.html#toStr\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedTuple.units\tpygeodesy.named._NamedTuple-class.html#units\npygeodesy.named._NamedTuple.iterunits\tpygeodesy.named._NamedTuple-class.html#iterunits\npygeodesy.named._NamedTuple.iteritems\tpygeodesy.named._NamedTuple-class.html#iteritems\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._NamedTuple.items\tpygeodesy.named._NamedTuple-class.html#items\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedTuple.__delattr__\tpygeodesy.named._NamedTuple-class.html#__delattr__\npygeodesy.named._NamedTuple.__repr__\tpygeodesy.named._NamedTuple-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._NamedTuple.__hash__\tpygeodesy.named._NamedTuple-class.html#__hash__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.namedTuples.LatLonDatum3Tuple._Units_\tpygeodesy.namedTuples.LatLonDatum3Tuple-class.html#_Units_\npygeodesy.namedTuples.LatLonDatum5Tuple\tpygeodesy.namedTuples.LatLonDatum5Tuple-class.html\npygeodesy.named._NamedTuple.toRepr\tpygeodesy.named._NamedTuple-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._NamedTuple.toUnits\tpygeodesy.named._NamedTuple-class.html#toUnits\npygeodesy.named._NamedTuple._validate\tpygeodesy.named._NamedTuple-class.html#_validate\npygeodesy.named._NamedTuple.__str__\tpygeodesy.named._NamedTuple-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._NamedTuple._DOT_\tpygeodesy.named._NamedTuple-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._NamedTuple.reUnit\tpygeodesy.named._NamedTuple-class.html#reUnit\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.namedTuples.LatLonDatum5Tuple._Names_\tpygeodesy.namedTuples.LatLonDatum5Tuple-class.html#_Names_\npygeodesy.named._NamedTuple.__setattr__\tpygeodesy.named._NamedTuple-class.html#__setattr__\npygeodesy.named._NamedTuple.__new__\tpygeodesy.named._NamedTuple-class.html#__new__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._NamedTuple._validated\tpygeodesy.named._NamedTuple-class.html#_validated\npygeodesy.named._NamedTuple.__getattr__\tpygeodesy.named._NamedTuple-class.html#__getattr__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._NamedTuple._xtend\tpygeodesy.named._NamedTuple-class.html#_xtend\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._NamedTuple.dup\tpygeodesy.named._NamedTuple-class.html#dup\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedTuple.toStr\tpygeodesy.named._NamedTuple-class.html#toStr\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedTuple.units\tpygeodesy.named._NamedTuple-class.html#units\npygeodesy.named._NamedTuple.iterunits\tpygeodesy.named._NamedTuple-class.html#iterunits\npygeodesy.named._NamedTuple.iteritems\tpygeodesy.named._NamedTuple-class.html#iteritems\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._NamedTuple.items\tpygeodesy.named._NamedTuple-class.html#items\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedTuple.__delattr__\tpygeodesy.named._NamedTuple-class.html#__delattr__\npygeodesy.named._NamedTuple.__repr__\tpygeodesy.named._NamedTuple-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._NamedTuple.__hash__\tpygeodesy.named._NamedTuple-class.html#__hash__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.namedTuples.LatLonDatum5Tuple._Units_\tpygeodesy.namedTuples.LatLonDatum5Tuple-class.html#_Units_\npygeodesy.namedTuples.LatLonPrec3Tuple\tpygeodesy.namedTuples.LatLonPrec3Tuple-class.html\npygeodesy.named._NamedTuple.toRepr\tpygeodesy.named._NamedTuple-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._NamedTuple.toUnits\tpygeodesy.named._NamedTuple-class.html#toUnits\npygeodesy.named._NamedTuple._validate\tpygeodesy.named._NamedTuple-class.html#_validate\npygeodesy.named._NamedTuple.__str__\tpygeodesy.named._NamedTuple-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._NamedTuple._DOT_\tpygeodesy.named._NamedTuple-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._NamedTuple.reUnit\tpygeodesy.named._NamedTuple-class.html#reUnit\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.namedTuples.LatLonPrec3Tuple._Names_\tpygeodesy.namedTuples.LatLonPrec3Tuple-class.html#_Names_\npygeodesy.named._NamedTuple.__setattr__\tpygeodesy.named._NamedTuple-class.html#__setattr__\npygeodesy.named._NamedTuple.__new__\tpygeodesy.named._NamedTuple-class.html#__new__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._NamedTuple._validated\tpygeodesy.named._NamedTuple-class.html#_validated\npygeodesy.named._NamedTuple.__getattr__\tpygeodesy.named._NamedTuple-class.html#__getattr__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._NamedTuple._xtend\tpygeodesy.named._NamedTuple-class.html#_xtend\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._NamedTuple.dup\tpygeodesy.named._NamedTuple-class.html#dup\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedTuple.toStr\tpygeodesy.named._NamedTuple-class.html#toStr\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedTuple.units\tpygeodesy.named._NamedTuple-class.html#units\npygeodesy.named._NamedTuple.iterunits\tpygeodesy.named._NamedTuple-class.html#iterunits\npygeodesy.named._NamedTuple.iteritems\tpygeodesy.named._NamedTuple-class.html#iteritems\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.namedTuples.LatLonPrec3Tuple.to5Tuple\tpygeodesy.namedTuples.LatLonPrec3Tuple-class.html#to5Tuple\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._NamedTuple.items\tpygeodesy.named._NamedTuple-class.html#items\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedTuple.__delattr__\tpygeodesy.named._NamedTuple-class.html#__delattr__\npygeodesy.named._NamedTuple.__repr__\tpygeodesy.named._NamedTuple-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._NamedTuple.__hash__\tpygeodesy.named._NamedTuple-class.html#__hash__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.namedTuples.LatLonPrec3Tuple._Units_\tpygeodesy.namedTuples.LatLonPrec3Tuple-class.html#_Units_\npygeodesy.namedTuples.LatLonPrec5Tuple\tpygeodesy.namedTuples.LatLonPrec5Tuple-class.html\npygeodesy.named._NamedTuple.toRepr\tpygeodesy.named._NamedTuple-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._NamedTuple.toUnits\tpygeodesy.named._NamedTuple-class.html#toUnits\npygeodesy.named._NamedTuple._validate\tpygeodesy.named._NamedTuple-class.html#_validate\npygeodesy.named._NamedTuple.__str__\tpygeodesy.named._NamedTuple-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._NamedTuple._DOT_\tpygeodesy.named._NamedTuple-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._NamedTuple.reUnit\tpygeodesy.named._NamedTuple-class.html#reUnit\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.namedTuples.LatLonPrec5Tuple._Names_\tpygeodesy.namedTuples.LatLonPrec5Tuple-class.html#_Names_\npygeodesy.named._NamedTuple.__setattr__\tpygeodesy.named._NamedTuple-class.html#__setattr__\npygeodesy.named._NamedTuple.__new__\tpygeodesy.named._NamedTuple-class.html#__new__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._NamedTuple._validated\tpygeodesy.named._NamedTuple-class.html#_validated\npygeodesy.named._NamedTuple.__getattr__\tpygeodesy.named._NamedTuple-class.html#__getattr__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._NamedTuple._xtend\tpygeodesy.named._NamedTuple-class.html#_xtend\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._NamedTuple.dup\tpygeodesy.named._NamedTuple-class.html#dup\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedTuple.toStr\tpygeodesy.named._NamedTuple-class.html#toStr\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedTuple.units\tpygeodesy.named._NamedTuple-class.html#units\npygeodesy.named._NamedTuple.iterunits\tpygeodesy.named._NamedTuple-class.html#iterunits\npygeodesy.named._NamedTuple.iteritems\tpygeodesy.named._NamedTuple-class.html#iteritems\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.namedTuples.LatLonPrec3Tuple.to5Tuple\tpygeodesy.namedTuples.LatLonPrec3Tuple-class.html#to5Tuple\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._NamedTuple.items\tpygeodesy.named._NamedTuple-class.html#items\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedTuple.__delattr__\tpygeodesy.named._NamedTuple-class.html#__delattr__\npygeodesy.named._NamedTuple.__repr__\tpygeodesy.named._NamedTuple-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._NamedTuple.__hash__\tpygeodesy.named._NamedTuple-class.html#__hash__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.namedTuples.LatLonPrec5Tuple._Units_\tpygeodesy.namedTuples.LatLonPrec5Tuple-class.html#_Units_\npygeodesy.namedTuples.NearestOn2Tuple\tpygeodesy.namedTuples.NearestOn2Tuple-class.html\npygeodesy.named._NamedTuple.toRepr\tpygeodesy.named._NamedTuple-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._NamedTuple.toUnits\tpygeodesy.named._NamedTuple-class.html#toUnits\npygeodesy.named._NamedTuple._validate\tpygeodesy.named._NamedTuple-class.html#_validate\npygeodesy.named._NamedTuple.__str__\tpygeodesy.named._NamedTuple-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._NamedTuple._DOT_\tpygeodesy.named._NamedTuple-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._NamedTuple.reUnit\tpygeodesy.named._NamedTuple-class.html#reUnit\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.namedTuples.NearestOn2Tuple._Names_\tpygeodesy.namedTuples.NearestOn2Tuple-class.html#_Names_\npygeodesy.named._NamedTuple.__setattr__\tpygeodesy.named._NamedTuple-class.html#__setattr__\npygeodesy.named._NamedTuple.__new__\tpygeodesy.named._NamedTuple-class.html#__new__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._NamedTuple._validated\tpygeodesy.named._NamedTuple-class.html#_validated\npygeodesy.named._NamedTuple.__getattr__\tpygeodesy.named._NamedTuple-class.html#__getattr__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._NamedTuple._xtend\tpygeodesy.named._NamedTuple-class.html#_xtend\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._NamedTuple.dup\tpygeodesy.named._NamedTuple-class.html#dup\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedTuple.toStr\tpygeodesy.named._NamedTuple-class.html#toStr\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedTuple.units\tpygeodesy.named._NamedTuple-class.html#units\npygeodesy.named._NamedTuple.iterunits\tpygeodesy.named._NamedTuple-class.html#iterunits\npygeodesy.named._NamedTuple.iteritems\tpygeodesy.named._NamedTuple-class.html#iteritems\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._NamedTuple.items\tpygeodesy.named._NamedTuple-class.html#items\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedTuple.__delattr__\tpygeodesy.named._NamedTuple-class.html#__delattr__\npygeodesy.named._NamedTuple.__repr__\tpygeodesy.named._NamedTuple-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._NamedTuple.__hash__\tpygeodesy.named._NamedTuple-class.html#__hash__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.namedTuples.NearestOn2Tuple._Units_\tpygeodesy.namedTuples.NearestOn2Tuple-class.html#_Units_\npygeodesy.namedTuples.NearestOn3Tuple\tpygeodesy.namedTuples.NearestOn3Tuple-class.html\npygeodesy.named._NamedTuple.toRepr\tpygeodesy.named._NamedTuple-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._NamedTuple.toUnits\tpygeodesy.named._NamedTuple-class.html#toUnits\npygeodesy.named._NamedTuple._validate\tpygeodesy.named._NamedTuple-class.html#_validate\npygeodesy.named._NamedTuple.__str__\tpygeodesy.named._NamedTuple-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._NamedTuple._DOT_\tpygeodesy.named._NamedTuple-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._NamedTuple.reUnit\tpygeodesy.named._NamedTuple-class.html#reUnit\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.namedTuples.NearestOn3Tuple._Names_\tpygeodesy.namedTuples.NearestOn3Tuple-class.html#_Names_\npygeodesy.named._NamedTuple.__setattr__\tpygeodesy.named._NamedTuple-class.html#__setattr__\npygeodesy.named._NamedTuple.__new__\tpygeodesy.named._NamedTuple-class.html#__new__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._NamedTuple._validated\tpygeodesy.named._NamedTuple-class.html#_validated\npygeodesy.named._NamedTuple.__getattr__\tpygeodesy.named._NamedTuple-class.html#__getattr__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._NamedTuple._xtend\tpygeodesy.named._NamedTuple-class.html#_xtend\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._NamedTuple.dup\tpygeodesy.named._NamedTuple-class.html#dup\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedTuple.toStr\tpygeodesy.named._NamedTuple-class.html#toStr\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedTuple.units\tpygeodesy.named._NamedTuple-class.html#units\npygeodesy.named._NamedTuple.iterunits\tpygeodesy.named._NamedTuple-class.html#iterunits\npygeodesy.named._NamedTuple.iteritems\tpygeodesy.named._NamedTuple-class.html#iteritems\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._NamedTuple.items\tpygeodesy.named._NamedTuple-class.html#items\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedTuple.__delattr__\tpygeodesy.named._NamedTuple-class.html#__delattr__\npygeodesy.named._NamedTuple.__repr__\tpygeodesy.named._NamedTuple-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._NamedTuple.__hash__\tpygeodesy.named._NamedTuple-class.html#__hash__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.namedTuples.NearestOn3Tuple._Units_\tpygeodesy.namedTuples.NearestOn3Tuple-class.html#_Units_\npygeodesy.namedTuples.NearestOn6Tuple\tpygeodesy.namedTuples.NearestOn6Tuple-class.html\npygeodesy.named._NamedTuple.toRepr\tpygeodesy.named._NamedTuple-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._NamedTuple.toUnits\tpygeodesy.named._NamedTuple-class.html#toUnits\npygeodesy.named._NamedTuple._validate\tpygeodesy.named._NamedTuple-class.html#_validate\npygeodesy.named._NamedTuple.__str__\tpygeodesy.named._NamedTuple-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._NamedTuple._DOT_\tpygeodesy.named._NamedTuple-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._NamedTuple.reUnit\tpygeodesy.named._NamedTuple-class.html#reUnit\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.namedTuples.NearestOn6Tuple._Names_\tpygeodesy.namedTuples.NearestOn6Tuple-class.html#_Names_\npygeodesy.named._NamedTuple.__setattr__\tpygeodesy.named._NamedTuple-class.html#__setattr__\npygeodesy.named._NamedTuple.__new__\tpygeodesy.named._NamedTuple-class.html#__new__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._NamedTuple._validated\tpygeodesy.named._NamedTuple-class.html#_validated\npygeodesy.named._NamedTuple.__getattr__\tpygeodesy.named._NamedTuple-class.html#__getattr__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._NamedTuple._xtend\tpygeodesy.named._NamedTuple-class.html#_xtend\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._NamedTuple.dup\tpygeodesy.named._NamedTuple-class.html#dup\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedTuple.toStr\tpygeodesy.named._NamedTuple-class.html#toStr\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedTuple.units\tpygeodesy.named._NamedTuple-class.html#units\npygeodesy.named._NamedTuple.iterunits\tpygeodesy.named._NamedTuple-class.html#iterunits\npygeodesy.named._NamedTuple.iteritems\tpygeodesy.named._NamedTuple-class.html#iteritems\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._NamedTuple.items\tpygeodesy.named._NamedTuple-class.html#items\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedTuple.__delattr__\tpygeodesy.named._NamedTuple-class.html#__delattr__\npygeodesy.named._NamedTuple.__repr__\tpygeodesy.named._NamedTuple-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._NamedTuple.__hash__\tpygeodesy.named._NamedTuple-class.html#__hash__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.namedTuples.NearestOn6Tuple._Units_\tpygeodesy.namedTuples.NearestOn6Tuple-class.html#_Units_\npygeodesy.namedTuples.NearestOn8Tuple\tpygeodesy.namedTuples.NearestOn8Tuple-class.html\npygeodesy.named._NamedTuple.toRepr\tpygeodesy.named._NamedTuple-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._NamedTuple.toUnits\tpygeodesy.named._NamedTuple-class.html#toUnits\npygeodesy.named._NamedTuple._validate\tpygeodesy.named._NamedTuple-class.html#_validate\npygeodesy.named._NamedTuple.__str__\tpygeodesy.named._NamedTuple-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._NamedTuple._DOT_\tpygeodesy.named._NamedTuple-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._NamedTuple.reUnit\tpygeodesy.named._NamedTuple-class.html#reUnit\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.namedTuples.NearestOn8Tuple._Names_\tpygeodesy.namedTuples.NearestOn8Tuple-class.html#_Names_\npygeodesy.named._NamedTuple.__setattr__\tpygeodesy.named._NamedTuple-class.html#__setattr__\npygeodesy.named._NamedTuple.__new__\tpygeodesy.named._NamedTuple-class.html#__new__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._NamedTuple._validated\tpygeodesy.named._NamedTuple-class.html#_validated\npygeodesy.named._NamedTuple.__getattr__\tpygeodesy.named._NamedTuple-class.html#__getattr__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._NamedTuple._xtend\tpygeodesy.named._NamedTuple-class.html#_xtend\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._NamedTuple.dup\tpygeodesy.named._NamedTuple-class.html#dup\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedTuple.toStr\tpygeodesy.named._NamedTuple-class.html#toStr\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedTuple.units\tpygeodesy.named._NamedTuple-class.html#units\npygeodesy.named._NamedTuple.iterunits\tpygeodesy.named._NamedTuple-class.html#iterunits\npygeodesy.named._NamedTuple.iteritems\tpygeodesy.named._NamedTuple-class.html#iteritems\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._NamedTuple.items\tpygeodesy.named._NamedTuple-class.html#items\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedTuple.__delattr__\tpygeodesy.named._NamedTuple-class.html#__delattr__\npygeodesy.named._NamedTuple.__repr__\tpygeodesy.named._NamedTuple-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._NamedTuple.__hash__\tpygeodesy.named._NamedTuple-class.html#__hash__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.namedTuples.NearestOn8Tuple._Units_\tpygeodesy.namedTuples.NearestOn8Tuple-class.html#_Units_\npygeodesy.namedTuples.PhiLam2Tuple\tpygeodesy.namedTuples.PhiLam2Tuple-class.html\npygeodesy.named._NamedTuple.toRepr\tpygeodesy.named._NamedTuple-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._NamedTuple.toUnits\tpygeodesy.named._NamedTuple-class.html#toUnits\npygeodesy.named._NamedTuple._validate\tpygeodesy.named._NamedTuple-class.html#_validate\npygeodesy.named._NamedTuple.__str__\tpygeodesy.named._NamedTuple-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._NamedTuple._DOT_\tpygeodesy.named._NamedTuple-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._NamedTuple.reUnit\tpygeodesy.named._NamedTuple-class.html#reUnit\npygeodesy.namedTuples.PhiLam2Tuple.to4Tuple\tpygeodesy.namedTuples.PhiLam2Tuple-class.html#to4Tuple\npygeodesy.namedTuples.PhiLam2Tuple._Names_\tpygeodesy.namedTuples.PhiLam2Tuple-class.html#_Names_\npygeodesy.named._NamedTuple.__setattr__\tpygeodesy.named._NamedTuple-class.html#__setattr__\npygeodesy.named._NamedTuple.__new__\tpygeodesy.named._NamedTuple-class.html#__new__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.namedTuples.PhiLam2Tuple._validated\tpygeodesy.namedTuples.PhiLam2Tuple-class.html#_validated\npygeodesy.named._NamedTuple.__getattr__\tpygeodesy.named._NamedTuple-class.html#__getattr__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.namedTuples.PhiLam2Tuple.to3Tuple\tpygeodesy.namedTuples.PhiLam2Tuple-class.html#to3Tuple\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._NamedTuple._xtend\tpygeodesy.named._NamedTuple-class.html#_xtend\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._NamedTuple.dup\tpygeodesy.named._NamedTuple-class.html#dup\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedTuple.toStr\tpygeodesy.named._NamedTuple-class.html#toStr\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedTuple.units\tpygeodesy.named._NamedTuple-class.html#units\npygeodesy.named._NamedTuple.iterunits\tpygeodesy.named._NamedTuple-class.html#iterunits\npygeodesy.named._NamedTuple.iteritems\tpygeodesy.named._NamedTuple-class.html#iteritems\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._NamedTuple.items\tpygeodesy.named._NamedTuple-class.html#items\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedTuple.__delattr__\tpygeodesy.named._NamedTuple-class.html#__delattr__\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.named._NamedTuple.__repr__\tpygeodesy.named._NamedTuple-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._NamedTuple.__hash__\tpygeodesy.named._NamedTuple-class.html#__hash__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.namedTuples.PhiLam2Tuple._Units_\tpygeodesy.namedTuples.PhiLam2Tuple-class.html#_Units_\npygeodesy.namedTuples.PhiLam3Tuple\tpygeodesy.namedTuples.PhiLam3Tuple-class.html\npygeodesy.named._NamedTuple.toRepr\tpygeodesy.named._NamedTuple-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._NamedTuple.toUnits\tpygeodesy.named._NamedTuple-class.html#toUnits\npygeodesy.named._NamedTuple._validate\tpygeodesy.named._NamedTuple-class.html#_validate\npygeodesy.named._NamedTuple.__str__\tpygeodesy.named._NamedTuple-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._NamedTuple._DOT_\tpygeodesy.named._NamedTuple-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._NamedTuple.reUnit\tpygeodesy.named._NamedTuple-class.html#reUnit\npygeodesy.namedTuples.PhiLam3Tuple.to4Tuple\tpygeodesy.namedTuples.PhiLam3Tuple-class.html#to4Tuple\npygeodesy.namedTuples.PhiLam3Tuple._Names_\tpygeodesy.namedTuples.PhiLam3Tuple-class.html#_Names_\npygeodesy.named._NamedTuple.__setattr__\tpygeodesy.named._NamedTuple-class.html#__setattr__\npygeodesy.named._NamedTuple.__new__\tpygeodesy.named._NamedTuple-class.html#__new__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._NamedTuple._validated\tpygeodesy.named._NamedTuple-class.html#_validated\npygeodesy.named._NamedTuple.__getattr__\tpygeodesy.named._NamedTuple-class.html#__getattr__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._NamedTuple._xtend\tpygeodesy.named._NamedTuple-class.html#_xtend\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._NamedTuple.dup\tpygeodesy.named._NamedTuple-class.html#dup\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedTuple.toStr\tpygeodesy.named._NamedTuple-class.html#toStr\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedTuple.units\tpygeodesy.named._NamedTuple-class.html#units\npygeodesy.named._NamedTuple.iterunits\tpygeodesy.named._NamedTuple-class.html#iterunits\npygeodesy.named._NamedTuple.iteritems\tpygeodesy.named._NamedTuple-class.html#iteritems\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._NamedTuple.items\tpygeodesy.named._NamedTuple-class.html#items\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedTuple.__delattr__\tpygeodesy.named._NamedTuple-class.html#__delattr__\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.named._NamedTuple.__repr__\tpygeodesy.named._NamedTuple-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._NamedTuple.__hash__\tpygeodesy.named._NamedTuple-class.html#__hash__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.namedTuples.PhiLam3Tuple._Units_\tpygeodesy.namedTuples.PhiLam3Tuple-class.html#_Units_\npygeodesy.namedTuples.PhiLam4Tuple\tpygeodesy.namedTuples.PhiLam4Tuple-class.html\npygeodesy.named._NamedTuple.toRepr\tpygeodesy.named._NamedTuple-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._NamedTuple.toUnits\tpygeodesy.named._NamedTuple-class.html#toUnits\npygeodesy.named._NamedTuple._validate\tpygeodesy.named._NamedTuple-class.html#_validate\npygeodesy.named._NamedTuple.__str__\tpygeodesy.named._NamedTuple-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._NamedTuple._DOT_\tpygeodesy.named._NamedTuple-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._NamedTuple.reUnit\tpygeodesy.named._NamedTuple-class.html#reUnit\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.namedTuples.PhiLam4Tuple._Names_\tpygeodesy.namedTuples.PhiLam4Tuple-class.html#_Names_\npygeodesy.named._NamedTuple.__setattr__\tpygeodesy.named._NamedTuple-class.html#__setattr__\npygeodesy.named._NamedTuple.__new__\tpygeodesy.named._NamedTuple-class.html#__new__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._NamedTuple._validated\tpygeodesy.named._NamedTuple-class.html#_validated\npygeodesy.named._NamedTuple.__getattr__\tpygeodesy.named._NamedTuple-class.html#__getattr__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._NamedTuple._xtend\tpygeodesy.named._NamedTuple-class.html#_xtend\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._NamedTuple.dup\tpygeodesy.named._NamedTuple-class.html#dup\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedTuple.toStr\tpygeodesy.named._NamedTuple-class.html#toStr\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedTuple.units\tpygeodesy.named._NamedTuple-class.html#units\npygeodesy.named._NamedTuple.iterunits\tpygeodesy.named._NamedTuple-class.html#iterunits\npygeodesy.named._NamedTuple.iteritems\tpygeodesy.named._NamedTuple-class.html#iteritems\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._NamedTuple.items\tpygeodesy.named._NamedTuple-class.html#items\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedTuple.__delattr__\tpygeodesy.named._NamedTuple-class.html#__delattr__\npygeodesy.named._NamedTuple.__repr__\tpygeodesy.named._NamedTuple-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._NamedTuple.__hash__\tpygeodesy.named._NamedTuple-class.html#__hash__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.namedTuples.PhiLam4Tuple._Units_\tpygeodesy.namedTuples.PhiLam4Tuple-class.html#_Units_\npygeodesy.namedTuples.Point3Tuple\tpygeodesy.namedTuples.Point3Tuple-class.html\npygeodesy.named._NamedTuple.toRepr\tpygeodesy.named._NamedTuple-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._NamedTuple.toUnits\tpygeodesy.named._NamedTuple-class.html#toUnits\npygeodesy.named._NamedTuple._validate\tpygeodesy.named._NamedTuple-class.html#_validate\npygeodesy.named._NamedTuple.__str__\tpygeodesy.named._NamedTuple-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._NamedTuple._DOT_\tpygeodesy.named._NamedTuple-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._NamedTuple.reUnit\tpygeodesy.named._NamedTuple-class.html#reUnit\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.namedTuples.Point3Tuple._Names_\tpygeodesy.namedTuples.Point3Tuple-class.html#_Names_\npygeodesy.named._NamedTuple.__setattr__\tpygeodesy.named._NamedTuple-class.html#__setattr__\npygeodesy.named._NamedTuple.__new__\tpygeodesy.named._NamedTuple-class.html#__new__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._NamedTuple._validated\tpygeodesy.named._NamedTuple-class.html#_validated\npygeodesy.named._NamedTuple.__getattr__\tpygeodesy.named._NamedTuple-class.html#__getattr__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._NamedTuple._xtend\tpygeodesy.named._NamedTuple-class.html#_xtend\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._NamedTuple.dup\tpygeodesy.named._NamedTuple-class.html#dup\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedTuple.toStr\tpygeodesy.named._NamedTuple-class.html#toStr\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedTuple.units\tpygeodesy.named._NamedTuple-class.html#units\npygeodesy.named._NamedTuple.iterunits\tpygeodesy.named._NamedTuple-class.html#iterunits\npygeodesy.named._NamedTuple.iteritems\tpygeodesy.named._NamedTuple-class.html#iteritems\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._NamedTuple.items\tpygeodesy.named._NamedTuple-class.html#items\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedTuple.__delattr__\tpygeodesy.named._NamedTuple-class.html#__delattr__\npygeodesy.named._NamedTuple.__repr__\tpygeodesy.named._NamedTuple-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._NamedTuple.__hash__\tpygeodesy.named._NamedTuple-class.html#__hash__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.namedTuples.Point3Tuple._Units_\tpygeodesy.namedTuples.Point3Tuple-class.html#_Units_\npygeodesy.namedTuples.Points2Tuple\tpygeodesy.namedTuples.Points2Tuple-class.html\npygeodesy.named._NamedTuple.toRepr\tpygeodesy.named._NamedTuple-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._NamedTuple.toUnits\tpygeodesy.named._NamedTuple-class.html#toUnits\npygeodesy.named._NamedTuple._validate\tpygeodesy.named._NamedTuple-class.html#_validate\npygeodesy.named._NamedTuple.__str__\tpygeodesy.named._NamedTuple-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._NamedTuple._DOT_\tpygeodesy.named._NamedTuple-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._NamedTuple.reUnit\tpygeodesy.named._NamedTuple-class.html#reUnit\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.namedTuples.Points2Tuple._Names_\tpygeodesy.namedTuples.Points2Tuple-class.html#_Names_\npygeodesy.named._NamedTuple.__setattr__\tpygeodesy.named._NamedTuple-class.html#__setattr__\npygeodesy.named._NamedTuple.__new__\tpygeodesy.named._NamedTuple-class.html#__new__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._NamedTuple._validated\tpygeodesy.named._NamedTuple-class.html#_validated\npygeodesy.named._NamedTuple.__getattr__\tpygeodesy.named._NamedTuple-class.html#__getattr__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._NamedTuple._xtend\tpygeodesy.named._NamedTuple-class.html#_xtend\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._NamedTuple.dup\tpygeodesy.named._NamedTuple-class.html#dup\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedTuple.toStr\tpygeodesy.named._NamedTuple-class.html#toStr\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedTuple.units\tpygeodesy.named._NamedTuple-class.html#units\npygeodesy.named._NamedTuple.iterunits\tpygeodesy.named._NamedTuple-class.html#iterunits\npygeodesy.named._NamedTuple.iteritems\tpygeodesy.named._NamedTuple-class.html#iteritems\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._NamedTuple.items\tpygeodesy.named._NamedTuple-class.html#items\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedTuple.__delattr__\tpygeodesy.named._NamedTuple-class.html#__delattr__\npygeodesy.named._NamedTuple.__repr__\tpygeodesy.named._NamedTuple-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._NamedTuple.__hash__\tpygeodesy.named._NamedTuple-class.html#__hash__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.namedTuples.Points2Tuple._Units_\tpygeodesy.namedTuples.Points2Tuple-class.html#_Units_\npygeodesy.namedTuples.Reverse4Tuple\tpygeodesy.namedTuples.Reverse4Tuple-class.html\npygeodesy.named._NamedTuple.toRepr\tpygeodesy.named._NamedTuple-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._NamedTuple.toUnits\tpygeodesy.named._NamedTuple-class.html#toUnits\npygeodesy.named._NamedTuple._validate\tpygeodesy.named._NamedTuple-class.html#_validate\npygeodesy.named._NamedTuple.__str__\tpygeodesy.named._NamedTuple-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._NamedTuple._DOT_\tpygeodesy.named._NamedTuple-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._NamedTuple.reUnit\tpygeodesy.named._NamedTuple-class.html#reUnit\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.namedTuples.Reverse4Tuple._Names_\tpygeodesy.namedTuples.Reverse4Tuple-class.html#_Names_\npygeodesy.named._NamedTuple.__setattr__\tpygeodesy.named._NamedTuple-class.html#__setattr__\npygeodesy.named._NamedTuple.__new__\tpygeodesy.named._NamedTuple-class.html#__new__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._NamedTuple._validated\tpygeodesy.named._NamedTuple-class.html#_validated\npygeodesy.named._NamedTuple.__getattr__\tpygeodesy.named._NamedTuple-class.html#__getattr__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._NamedTuple._xtend\tpygeodesy.named._NamedTuple-class.html#_xtend\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._NamedTuple.dup\tpygeodesy.named._NamedTuple-class.html#dup\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedTuple.toStr\tpygeodesy.named._NamedTuple-class.html#toStr\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedTuple.units\tpygeodesy.named._NamedTuple-class.html#units\npygeodesy.named._NamedTuple.iterunits\tpygeodesy.named._NamedTuple-class.html#iterunits\npygeodesy.named._NamedTuple.iteritems\tpygeodesy.named._NamedTuple-class.html#iteritems\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._NamedTuple.items\tpygeodesy.named._NamedTuple-class.html#items\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedTuple.__delattr__\tpygeodesy.named._NamedTuple-class.html#__delattr__\npygeodesy.named._NamedTuple.__repr__\tpygeodesy.named._NamedTuple-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._NamedTuple.__hash__\tpygeodesy.named._NamedTuple-class.html#__hash__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.namedTuples.Reverse4Tuple._Units_\tpygeodesy.namedTuples.Reverse4Tuple-class.html#_Units_\npygeodesy.namedTuples.Triangle7Tuple\tpygeodesy.namedTuples.Triangle7Tuple-class.html\npygeodesy.named._NamedTuple.toRepr\tpygeodesy.named._NamedTuple-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._NamedTuple.toUnits\tpygeodesy.named._NamedTuple-class.html#toUnits\npygeodesy.named._NamedTuple._validate\tpygeodesy.named._NamedTuple-class.html#_validate\npygeodesy.named._NamedTuple.__str__\tpygeodesy.named._NamedTuple-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._NamedTuple._DOT_\tpygeodesy.named._NamedTuple-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._NamedTuple.reUnit\tpygeodesy.named._NamedTuple-class.html#reUnit\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.namedTuples.Triangle7Tuple._Names_\tpygeodesy.namedTuples.Triangle7Tuple-class.html#_Names_\npygeodesy.named._NamedTuple.__setattr__\tpygeodesy.named._NamedTuple-class.html#__setattr__\npygeodesy.named._NamedTuple.__new__\tpygeodesy.named._NamedTuple-class.html#__new__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._NamedTuple._validated\tpygeodesy.named._NamedTuple-class.html#_validated\npygeodesy.named._NamedTuple.__getattr__\tpygeodesy.named._NamedTuple-class.html#__getattr__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._NamedTuple._xtend\tpygeodesy.named._NamedTuple-class.html#_xtend\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._NamedTuple.dup\tpygeodesy.named._NamedTuple-class.html#dup\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedTuple.toStr\tpygeodesy.named._NamedTuple-class.html#toStr\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedTuple.units\tpygeodesy.named._NamedTuple-class.html#units\npygeodesy.named._NamedTuple.iterunits\tpygeodesy.named._NamedTuple-class.html#iterunits\npygeodesy.named._NamedTuple.iteritems\tpygeodesy.named._NamedTuple-class.html#iteritems\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._NamedTuple.items\tpygeodesy.named._NamedTuple-class.html#items\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedTuple.__delattr__\tpygeodesy.named._NamedTuple-class.html#__delattr__\npygeodesy.named._NamedTuple.__repr__\tpygeodesy.named._NamedTuple-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._NamedTuple.__hash__\tpygeodesy.named._NamedTuple-class.html#__hash__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.namedTuples.Triangle7Tuple._Units_\tpygeodesy.namedTuples.Triangle7Tuple-class.html#_Units_\npygeodesy.namedTuples.Triangle8Tuple\tpygeodesy.namedTuples.Triangle8Tuple-class.html\npygeodesy.named._NamedTuple.toRepr\tpygeodesy.named._NamedTuple-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._NamedTuple.toUnits\tpygeodesy.named._NamedTuple-class.html#toUnits\npygeodesy.named._NamedTuple._validate\tpygeodesy.named._NamedTuple-class.html#_validate\npygeodesy.named._NamedTuple.__str__\tpygeodesy.named._NamedTuple-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._NamedTuple._DOT_\tpygeodesy.named._NamedTuple-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._NamedTuple.reUnit\tpygeodesy.named._NamedTuple-class.html#reUnit\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.namedTuples.Triangle8Tuple._Names_\tpygeodesy.namedTuples.Triangle8Tuple-class.html#_Names_\npygeodesy.named._NamedTuple.__setattr__\tpygeodesy.named._NamedTuple-class.html#__setattr__\npygeodesy.named._NamedTuple.__new__\tpygeodesy.named._NamedTuple-class.html#__new__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._NamedTuple._validated\tpygeodesy.named._NamedTuple-class.html#_validated\npygeodesy.named._NamedTuple.__getattr__\tpygeodesy.named._NamedTuple-class.html#__getattr__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._NamedTuple._xtend\tpygeodesy.named._NamedTuple-class.html#_xtend\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._NamedTuple.dup\tpygeodesy.named._NamedTuple-class.html#dup\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedTuple.toStr\tpygeodesy.named._NamedTuple-class.html#toStr\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedTuple.units\tpygeodesy.named._NamedTuple-class.html#units\npygeodesy.named._NamedTuple.iterunits\tpygeodesy.named._NamedTuple-class.html#iterunits\npygeodesy.named._NamedTuple.iteritems\tpygeodesy.named._NamedTuple-class.html#iteritems\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._NamedTuple.items\tpygeodesy.named._NamedTuple-class.html#items\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedTuple.__delattr__\tpygeodesy.named._NamedTuple-class.html#__delattr__\npygeodesy.named._NamedTuple.__repr__\tpygeodesy.named._NamedTuple-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._NamedTuple.__hash__\tpygeodesy.named._NamedTuple-class.html#__hash__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.namedTuples.Triangle8Tuple._Units_\tpygeodesy.namedTuples.Triangle8Tuple-class.html#_Units_\npygeodesy.namedTuples.Trilaterate5Tuple\tpygeodesy.namedTuples.Trilaterate5Tuple-class.html\npygeodesy.named._NamedTuple.toRepr\tpygeodesy.named._NamedTuple-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._NamedTuple.toUnits\tpygeodesy.named._NamedTuple-class.html#toUnits\npygeodesy.named._NamedTuple._validate\tpygeodesy.named._NamedTuple-class.html#_validate\npygeodesy.named._NamedTuple.__str__\tpygeodesy.named._NamedTuple-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._NamedTuple._DOT_\tpygeodesy.named._NamedTuple-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._NamedTuple.reUnit\tpygeodesy.named._NamedTuple-class.html#reUnit\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.namedTuples.Trilaterate5Tuple._Names_\tpygeodesy.namedTuples.Trilaterate5Tuple-class.html#_Names_\npygeodesy.named._NamedTuple.__setattr__\tpygeodesy.named._NamedTuple-class.html#__setattr__\npygeodesy.named._NamedTuple.__new__\tpygeodesy.named._NamedTuple-class.html#__new__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._NamedTuple._validated\tpygeodesy.named._NamedTuple-class.html#_validated\npygeodesy.named._NamedTuple.__getattr__\tpygeodesy.named._NamedTuple-class.html#__getattr__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._NamedTuple._xtend\tpygeodesy.named._NamedTuple-class.html#_xtend\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._NamedTuple.dup\tpygeodesy.named._NamedTuple-class.html#dup\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedTuple.toStr\tpygeodesy.named._NamedTuple-class.html#toStr\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedTuple.units\tpygeodesy.named._NamedTuple-class.html#units\npygeodesy.named._NamedTuple.iterunits\tpygeodesy.named._NamedTuple-class.html#iterunits\npygeodesy.named._NamedTuple.iteritems\tpygeodesy.named._NamedTuple-class.html#iteritems\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._NamedTuple.items\tpygeodesy.named._NamedTuple-class.html#items\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedTuple.__delattr__\tpygeodesy.named._NamedTuple-class.html#__delattr__\npygeodesy.named._NamedTuple.__repr__\tpygeodesy.named._NamedTuple-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._NamedTuple.__hash__\tpygeodesy.named._NamedTuple-class.html#__hash__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.namedTuples.Trilaterate5Tuple._Units_\tpygeodesy.namedTuples.Trilaterate5Tuple-class.html#_Units_\npygeodesy.namedTuples.UtmUps2Tuple\tpygeodesy.namedTuples.UtmUps2Tuple-class.html\npygeodesy.named._NamedTuple.toRepr\tpygeodesy.named._NamedTuple-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._NamedTuple.toUnits\tpygeodesy.named._NamedTuple-class.html#toUnits\npygeodesy.named._NamedTuple._validate\tpygeodesy.named._NamedTuple-class.html#_validate\npygeodesy.named._NamedTuple.__str__\tpygeodesy.named._NamedTuple-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._NamedTuple._DOT_\tpygeodesy.named._NamedTuple-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._NamedTuple.reUnit\tpygeodesy.named._NamedTuple-class.html#reUnit\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.namedTuples.UtmUps2Tuple._Names_\tpygeodesy.namedTuples.UtmUps2Tuple-class.html#_Names_\npygeodesy.named._NamedTuple.__setattr__\tpygeodesy.named._NamedTuple-class.html#__setattr__\npygeodesy.named._NamedTuple.__new__\tpygeodesy.named._NamedTuple-class.html#__new__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._NamedTuple._validated\tpygeodesy.named._NamedTuple-class.html#_validated\npygeodesy.named._NamedTuple.__getattr__\tpygeodesy.named._NamedTuple-class.html#__getattr__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._NamedTuple._xtend\tpygeodesy.named._NamedTuple-class.html#_xtend\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._NamedTuple.dup\tpygeodesy.named._NamedTuple-class.html#dup\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedTuple.toStr\tpygeodesy.named._NamedTuple-class.html#toStr\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedTuple.units\tpygeodesy.named._NamedTuple-class.html#units\npygeodesy.named._NamedTuple.iterunits\tpygeodesy.named._NamedTuple-class.html#iterunits\npygeodesy.named._NamedTuple.iteritems\tpygeodesy.named._NamedTuple-class.html#iteritems\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._NamedTuple.items\tpygeodesy.named._NamedTuple-class.html#items\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedTuple.__delattr__\tpygeodesy.named._NamedTuple-class.html#__delattr__\npygeodesy.named._NamedTuple.__repr__\tpygeodesy.named._NamedTuple-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._NamedTuple.__hash__\tpygeodesy.named._NamedTuple-class.html#__hash__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.namedTuples.UtmUps2Tuple._Units_\tpygeodesy.namedTuples.UtmUps2Tuple-class.html#_Units_\npygeodesy.namedTuples.UtmUps5Tuple\tpygeodesy.namedTuples.UtmUps5Tuple-class.html\npygeodesy.named._NamedTuple.toRepr\tpygeodesy.named._NamedTuple-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._NamedTuple.toUnits\tpygeodesy.named._NamedTuple-class.html#toUnits\npygeodesy.named._NamedTuple._validate\tpygeodesy.named._NamedTuple-class.html#_validate\npygeodesy.named._NamedTuple.__str__\tpygeodesy.named._NamedTuple-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._NamedTuple._DOT_\tpygeodesy.named._NamedTuple-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._NamedTuple.reUnit\tpygeodesy.named._NamedTuple-class.html#reUnit\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.namedTuples.UtmUps5Tuple._Names_\tpygeodesy.namedTuples.UtmUps5Tuple-class.html#_Names_\npygeodesy.named._NamedTuple.__setattr__\tpygeodesy.named._NamedTuple-class.html#__setattr__\npygeodesy.namedTuples.UtmUps5Tuple.__new__\tpygeodesy.namedTuples.UtmUps5Tuple-class.html#__new__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._NamedTuple._validated\tpygeodesy.named._NamedTuple-class.html#_validated\npygeodesy.named._NamedTuple.__getattr__\tpygeodesy.named._NamedTuple-class.html#__getattr__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._NamedTuple._xtend\tpygeodesy.named._NamedTuple-class.html#_xtend\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._NamedTuple.dup\tpygeodesy.named._NamedTuple-class.html#dup\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedTuple.toStr\tpygeodesy.named._NamedTuple-class.html#toStr\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedTuple.units\tpygeodesy.named._NamedTuple-class.html#units\npygeodesy.named._NamedTuple.iterunits\tpygeodesy.named._NamedTuple-class.html#iterunits\npygeodesy.named._NamedTuple.iteritems\tpygeodesy.named._NamedTuple-class.html#iteritems\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._NamedTuple.items\tpygeodesy.named._NamedTuple-class.html#items\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedTuple.__delattr__\tpygeodesy.named._NamedTuple-class.html#__delattr__\npygeodesy.named._NamedTuple.__repr__\tpygeodesy.named._NamedTuple-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._NamedTuple.__hash__\tpygeodesy.named._NamedTuple-class.html#__hash__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.namedTuples.UtmUps5Tuple._Units_\tpygeodesy.namedTuples.UtmUps5Tuple-class.html#_Units_\npygeodesy.namedTuples.UtmUps8Tuple\tpygeodesy.namedTuples.UtmUps8Tuple-class.html\npygeodesy.named._NamedTuple.toRepr\tpygeodesy.named._NamedTuple-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._NamedTuple.toUnits\tpygeodesy.named._NamedTuple-class.html#toUnits\npygeodesy.named._NamedTuple._validate\tpygeodesy.named._NamedTuple-class.html#_validate\npygeodesy.named._NamedTuple.__str__\tpygeodesy.named._NamedTuple-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._NamedTuple._DOT_\tpygeodesy.named._NamedTuple-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._NamedTuple.reUnit\tpygeodesy.named._NamedTuple-class.html#reUnit\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.namedTuples.UtmUps8Tuple._Names_\tpygeodesy.namedTuples.UtmUps8Tuple-class.html#_Names_\npygeodesy.named._NamedTuple.__setattr__\tpygeodesy.named._NamedTuple-class.html#__setattr__\npygeodesy.namedTuples.UtmUps8Tuple.__new__\tpygeodesy.namedTuples.UtmUps8Tuple-class.html#__new__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._NamedTuple._validated\tpygeodesy.named._NamedTuple-class.html#_validated\npygeodesy.named._NamedTuple.__getattr__\tpygeodesy.named._NamedTuple-class.html#__getattr__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._NamedTuple._xtend\tpygeodesy.named._NamedTuple-class.html#_xtend\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._NamedTuple.dup\tpygeodesy.named._NamedTuple-class.html#dup\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedTuple.toStr\tpygeodesy.named._NamedTuple-class.html#toStr\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedTuple.units\tpygeodesy.named._NamedTuple-class.html#units\npygeodesy.named._NamedTuple.iterunits\tpygeodesy.named._NamedTuple-class.html#iterunits\npygeodesy.named._NamedTuple.iteritems\tpygeodesy.named._NamedTuple-class.html#iteritems\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._NamedTuple.items\tpygeodesy.named._NamedTuple-class.html#items\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedTuple.__delattr__\tpygeodesy.named._NamedTuple-class.html#__delattr__\npygeodesy.named._NamedTuple.__repr__\tpygeodesy.named._NamedTuple-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._NamedTuple.__hash__\tpygeodesy.named._NamedTuple-class.html#__hash__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.namedTuples.UtmUps8Tuple._Units_\tpygeodesy.namedTuples.UtmUps8Tuple-class.html#_Units_\npygeodesy.namedTuples.UtmUpsLatLon5Tuple\tpygeodesy.namedTuples.UtmUpsLatLon5Tuple-class.html\npygeodesy.named._NamedTuple.toRepr\tpygeodesy.named._NamedTuple-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._NamedTuple.toUnits\tpygeodesy.named._NamedTuple-class.html#toUnits\npygeodesy.named._NamedTuple._validate\tpygeodesy.named._NamedTuple-class.html#_validate\npygeodesy.named._NamedTuple.__str__\tpygeodesy.named._NamedTuple-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._NamedTuple._DOT_\tpygeodesy.named._NamedTuple-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._NamedTuple.reUnit\tpygeodesy.named._NamedTuple-class.html#reUnit\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.namedTuples.UtmUpsLatLon5Tuple._Names_\tpygeodesy.namedTuples.UtmUpsLatLon5Tuple-class.html#_Names_\npygeodesy.named._NamedTuple.__setattr__\tpygeodesy.named._NamedTuple-class.html#__setattr__\npygeodesy.namedTuples.UtmUpsLatLon5Tuple.__new__\tpygeodesy.namedTuples.UtmUpsLatLon5Tuple-class.html#__new__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._NamedTuple._validated\tpygeodesy.named._NamedTuple-class.html#_validated\npygeodesy.named._NamedTuple.__getattr__\tpygeodesy.named._NamedTuple-class.html#__getattr__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._NamedTuple._xtend\tpygeodesy.named._NamedTuple-class.html#_xtend\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._NamedTuple.dup\tpygeodesy.named._NamedTuple-class.html#dup\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedTuple.toStr\tpygeodesy.named._NamedTuple-class.html#toStr\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedTuple.units\tpygeodesy.named._NamedTuple-class.html#units\npygeodesy.named._NamedTuple.iterunits\tpygeodesy.named._NamedTuple-class.html#iterunits\npygeodesy.named._NamedTuple.iteritems\tpygeodesy.named._NamedTuple-class.html#iteritems\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._NamedTuple.items\tpygeodesy.named._NamedTuple-class.html#items\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedTuple.__delattr__\tpygeodesy.named._NamedTuple-class.html#__delattr__\npygeodesy.named._NamedTuple.__repr__\tpygeodesy.named._NamedTuple-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._NamedTuple.__hash__\tpygeodesy.named._NamedTuple-class.html#__hash__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.namedTuples.UtmUpsLatLon5Tuple._Units_\tpygeodesy.namedTuples.UtmUpsLatLon5Tuple-class.html#_Units_\npygeodesy.namedTuples.Vector2Tuple\tpygeodesy.namedTuples.Vector2Tuple-class.html\npygeodesy.namedTuples.Vector2Tuple.toCartesian\tpygeodesy.namedTuples.Vector2Tuple-class.html#toCartesian\npygeodesy.named._NamedTuple.toRepr\tpygeodesy.named._NamedTuple-class.html#toRepr\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._NamedTuple.toUnits\tpygeodesy.named._NamedTuple-class.html#toUnits\npygeodesy.named._NamedTuple._validate\tpygeodesy.named._NamedTuple-class.html#_validate\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.namedTuples.Vector2Tuple.xyz\tpygeodesy.namedTuples.Vector2Tuple-class.html#xyz\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._NamedTuple._DOT_\tpygeodesy.named._NamedTuple-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._NamedTuple.reUnit\tpygeodesy.named._NamedTuple-class.html#reUnit\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.namedTuples.Vector2Tuple._Names_\tpygeodesy.namedTuples.Vector2Tuple-class.html#_Names_\npygeodesy.named._NamedTuple.__setattr__\tpygeodesy.named._NamedTuple-class.html#__setattr__\npygeodesy.named._NamedTuple.__new__\tpygeodesy.named._NamedTuple-class.html#__new__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._NamedTuple._validated\tpygeodesy.named._NamedTuple-class.html#_validated\npygeodesy.named._NamedTuple.__getattr__\tpygeodesy.named._NamedTuple-class.html#__getattr__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.namedTuples.Vector2Tuple.to3Tuple\tpygeodesy.namedTuples.Vector2Tuple-class.html#to3Tuple\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._NamedTuple._xtend\tpygeodesy.named._NamedTuple-class.html#_xtend\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._NamedTuple.dup\tpygeodesy.named._NamedTuple-class.html#dup\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._NamedTuple.__str__\tpygeodesy.named._NamedTuple-class.html#__str__\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedTuple.toStr\tpygeodesy.named._NamedTuple-class.html#toStr\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedTuple.units\tpygeodesy.named._NamedTuple-class.html#units\npygeodesy.named._NamedTuple.iterunits\tpygeodesy.named._NamedTuple-class.html#iterunits\npygeodesy.named._NamedTuple.iteritems\tpygeodesy.named._NamedTuple-class.html#iteritems\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._NamedTuple.items\tpygeodesy.named._NamedTuple-class.html#items\npygeodesy.namedTuples.Vector2Tuple.xyz3\tpygeodesy.namedTuples.Vector2Tuple-class.html#xyz3\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedTuple.__delattr__\tpygeodesy.named._NamedTuple-class.html#__delattr__\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._NamedTuple.__repr__\tpygeodesy.named._NamedTuple-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._NamedTuple.__hash__\tpygeodesy.named._NamedTuple-class.html#__hash__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.namedTuples.Vector2Tuple._Units_\tpygeodesy.namedTuples.Vector2Tuple-class.html#_Units_\npygeodesy.namedTuples.Vector3Tuple\tpygeodesy.namedTuples.Vector3Tuple-class.html\npygeodesy.namedTuples.Vector3Tuple.toCartesian\tpygeodesy.namedTuples.Vector3Tuple-class.html#toCartesian\npygeodesy.named._NamedTuple.toRepr\tpygeodesy.named._NamedTuple-class.html#toRepr\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._NamedTuple.toUnits\tpygeodesy.named._NamedTuple-class.html#toUnits\npygeodesy.named._NamedTuple._validate\tpygeodesy.named._NamedTuple-class.html#_validate\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.namedTuples.Vector3Tuple.xyz\tpygeodesy.namedTuples.Vector3Tuple-class.html#xyz\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._NamedTuple._DOT_\tpygeodesy.named._NamedTuple-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._NamedTuple.reUnit\tpygeodesy.named._NamedTuple-class.html#reUnit\npygeodesy.namedTuples.Vector3Tuple.to4Tuple\tpygeodesy.namedTuples.Vector3Tuple-class.html#to4Tuple\npygeodesy.namedTuples.Vector3Tuple._Names_\tpygeodesy.namedTuples.Vector3Tuple-class.html#_Names_\npygeodesy.named._NamedTuple.__setattr__\tpygeodesy.named._NamedTuple-class.html#__setattr__\npygeodesy.named._NamedTuple.__new__\tpygeodesy.named._NamedTuple-class.html#__new__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._NamedTuple._validated\tpygeodesy.named._NamedTuple-class.html#_validated\npygeodesy.named._NamedTuple.__getattr__\tpygeodesy.named._NamedTuple-class.html#__getattr__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._NamedTuple._xtend\tpygeodesy.named._NamedTuple-class.html#_xtend\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._NamedTuple.dup\tpygeodesy.named._NamedTuple-class.html#dup\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._NamedTuple.__str__\tpygeodesy.named._NamedTuple-class.html#__str__\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedTuple.toStr\tpygeodesy.named._NamedTuple-class.html#toStr\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedTuple.units\tpygeodesy.named._NamedTuple-class.html#units\npygeodesy.named._NamedTuple.iterunits\tpygeodesy.named._NamedTuple-class.html#iterunits\npygeodesy.named._NamedTuple.iteritems\tpygeodesy.named._NamedTuple-class.html#iteritems\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._NamedTuple.items\tpygeodesy.named._NamedTuple-class.html#items\npygeodesy.namedTuples.Vector3Tuple.xyz3\tpygeodesy.namedTuples.Vector3Tuple-class.html#xyz3\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedTuple.__delattr__\tpygeodesy.named._NamedTuple-class.html#__delattr__\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.named._NamedTuple.__repr__\tpygeodesy.named._NamedTuple-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._NamedTuple.__hash__\tpygeodesy.named._NamedTuple-class.html#__hash__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.namedTuples.Vector3Tuple._Units_\tpygeodesy.namedTuples.Vector3Tuple-class.html#_Units_\npygeodesy.namedTuples.Vector4Tuple\tpygeodesy.namedTuples.Vector4Tuple-class.html\npygeodesy.namedTuples.Vector4Tuple.toCartesian\tpygeodesy.namedTuples.Vector4Tuple-class.html#toCartesian\npygeodesy.named._NamedTuple.toRepr\tpygeodesy.named._NamedTuple-class.html#toRepr\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._NamedTuple.toUnits\tpygeodesy.named._NamedTuple-class.html#toUnits\npygeodesy.named._NamedTuple._validate\tpygeodesy.named._NamedTuple-class.html#_validate\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.namedTuples.Vector4Tuple.xyz\tpygeodesy.namedTuples.Vector4Tuple-class.html#xyz\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._NamedTuple._DOT_\tpygeodesy.named._NamedTuple-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._NamedTuple.reUnit\tpygeodesy.named._NamedTuple-class.html#reUnit\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.namedTuples.Vector4Tuple._Names_\tpygeodesy.namedTuples.Vector4Tuple-class.html#_Names_\npygeodesy.named._NamedTuple.__setattr__\tpygeodesy.named._NamedTuple-class.html#__setattr__\npygeodesy.named._NamedTuple.__new__\tpygeodesy.named._NamedTuple-class.html#__new__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._NamedTuple._validated\tpygeodesy.named._NamedTuple-class.html#_validated\npygeodesy.named._NamedTuple.__getattr__\tpygeodesy.named._NamedTuple-class.html#__getattr__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.namedTuples.Vector4Tuple.to3Tuple\tpygeodesy.namedTuples.Vector4Tuple-class.html#to3Tuple\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._NamedTuple._xtend\tpygeodesy.named._NamedTuple-class.html#_xtend\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._NamedTuple.dup\tpygeodesy.named._NamedTuple-class.html#dup\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._NamedTuple.__str__\tpygeodesy.named._NamedTuple-class.html#__str__\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedTuple.toStr\tpygeodesy.named._NamedTuple-class.html#toStr\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedTuple.units\tpygeodesy.named._NamedTuple-class.html#units\npygeodesy.named._NamedTuple.iterunits\tpygeodesy.named._NamedTuple-class.html#iterunits\npygeodesy.named._NamedTuple.iteritems\tpygeodesy.named._NamedTuple-class.html#iteritems\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._NamedTuple.items\tpygeodesy.named._NamedTuple-class.html#items\npygeodesy.namedTuples.Vector4Tuple.xyz3\tpygeodesy.namedTuples.Vector4Tuple-class.html#xyz3\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedTuple.__delattr__\tpygeodesy.named._NamedTuple-class.html#__delattr__\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._NamedTuple.__repr__\tpygeodesy.named._NamedTuple-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._NamedTuple.__hash__\tpygeodesy.named._NamedTuple-class.html#__hash__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.namedTuples.Vector4Tuple._Units_\tpygeodesy.namedTuples.Vector4Tuple-class.html#_Units_\npygeodesy.nvectorBase.LatLonNvectorBase\tpygeodesy.nvectorBase.LatLonNvectorBase-class.html\npygeodesy.latlonBase.LatLonBase.toCartesian\tpygeodesy.latlonBase.LatLonBase-class.html#toCartesian\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.latlonBase.LatLonBase.__str__\tpygeodesy.latlonBase.LatLonBase-class.html#__str__\npygeodesy.latlonBase.LatLonBase.datum\tpygeodesy.latlonBase.LatLonBase-class.html#datum\npygeodesy.latlonBase.LatLonBase.philam2\tpygeodesy.latlonBase.LatLonBase-class.html#philam2\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.latlonBase.LatLonBase.to3llh\tpygeodesy.latlonBase.LatLonBase-class.html#to3llh\npygeodesy.latlonBase.LatLonBase.isnormal\tpygeodesy.latlonBase.LatLonBase-class.html#isnormal\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.latlonBase.LatLonBase.flatLocalTo\tpygeodesy.latlonBase.LatLonBase-class.html#flatLocalTo\npygeodesy.latlonBase.LatLonBase._distanceTo\tpygeodesy.latlonBase.LatLonBase-class.html#_distanceTo\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.latlonBase.LatLonBase.isequalTo3\tpygeodesy.latlonBase.LatLonBase-class.html#isequalTo3\npygeodesy.latlonBase.LatLonBase.nearestTo\tpygeodesy.latlonBase.LatLonBase-class.html#nearestTo\npygeodesy.ecefLocals._EcefLocal.toEnu\tpygeodesy.ecefLocals._EcefLocal-class.html#toEnu\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.latlonBase.LatLonBase.isantipode\tpygeodesy.latlonBase.LatLonBase-class.html#isantipode\npygeodesy.latlonBase.LatLonBase._ecef9\tpygeodesy.latlonBase.LatLonBase-class.html#_ecef9\npygeodesy.latlonBase.LatLonBase._rhumb3dict\tpygeodesy.latlonBase.LatLonBase-class.html#_rhumb3dict\npygeodesy.latlonBase.LatLonBase.to2ab\tpygeodesy.latlonBase.LatLonBase-class.html#to2ab\npygeodesy.latlonBase.LatLonBase.toStr\tpygeodesy.latlonBase.LatLonBase-class.html#toStr\npygeodesy.latlonBase.LatLonBase._datum\tpygeodesy.latlonBase.LatLonBase-class.html#_datum\npygeodesy.latlonBase.LatLonBase.PointsIter\tpygeodesy.latlonBase.LatLonBase-class.html#PointsIter\npygeodesy.ecefLocals._EcefLocal.toXyz\tpygeodesy.ecefLocals._EcefLocal-class.html#toXyz\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.latlonBase.LatLonBase.antipode\tpygeodesy.latlonBase.LatLonBase-class.html#antipode\npygeodesy.latlonBase.LatLonBase._n_xyz3\tpygeodesy.latlonBase.LatLonBase-class.html#_n_xyz3\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.latlonBase.LatLonBase.toEcef\tpygeodesy.latlonBase.LatLonBase-class.html#toEcef\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.nvectorBase.LatLonNvectorBase.triangulate\tpygeodesy.nvectorBase.LatLonNvectorBase-class.html#triangulate\npygeodesy.latlonBase.LatLonBase.thomasTo\tpygeodesy.latlonBase.LatLonBase-class.html#thomasTo\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.latlonBase.LatLonBase._Ecef_forward\tpygeodesy.latlonBase.LatLonBase-class.html#_Ecef_forward\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._NamedBase.toRepr\tpygeodesy.named._NamedBase-class.html#toRepr\npygeodesy.latlonBase.LatLonBase.isantipodeTo\tpygeodesy.latlonBase.LatLonBase-class.html#isantipodeTo\npygeodesy.ecefLocals._EcefLocal._ltp\tpygeodesy.ecefLocals._EcefLocal-class.html#_ltp\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.latlonBase.LatLonBase.latlon_\tpygeodesy.latlonBase.LatLonBase-class.html#latlon_\npygeodesy.latlonBase.LatLonBase.toDatum\tpygeodesy.latlonBase.LatLonBase-class.html#toDatum\npygeodesy.ecefLocals._EcefLocal.toLtp\tpygeodesy.ecefLocals._EcefLocal-class.html#toLtp\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.latlonBase.LatLonBase.clipid\tpygeodesy.latlonBase.LatLonBase-class.html#clipid\npygeodesy.latlonBase.LatLonBase.ellipsoidalLatLon\tpygeodesy.latlonBase.LatLonBase-class.html#ellipsoidalLatLon\npygeodesy.latlonBase.LatLonBase.latlon\tpygeodesy.latlonBase.LatLonBase-class.html#latlon\npygeodesy.latlonBase.LatLonBase.circum4_\tpygeodesy.latlonBase.LatLonBase-class.html#circum4_\npygeodesy.latlonBase.LatLonBase.haversineTo\tpygeodesy.latlonBase.LatLonBase-class.html#haversineTo\npygeodesy.latlonBase.LatLonBase.normal\tpygeodesy.latlonBase.LatLonBase-class.html#normal\npygeodesy.latlonBase.LatLonBase.philam\tpygeodesy.latlonBase.LatLonBase-class.html#philam\npygeodesy.ecefLocals._EcefLocal.toAer\tpygeodesy.ecefLocals._EcefLocal-class.html#toAer\npygeodesy.latlonBase.LatLonBase.chordTo\tpygeodesy.latlonBase.LatLonBase-class.html#chordTo\npygeodesy.latlonBase.LatLonBase.__ne__\tpygeodesy.latlonBase.LatLonBase-class.html#__ne__\npygeodesy.latlonBase.LatLonBase.toWm\tpygeodesy.latlonBase.LatLonBase-class.html#toWm\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.latlonBase.LatLonBase.sphericalLatLon\tpygeodesy.latlonBase.LatLonBase-class.html#sphericalLatLon\npygeodesy.latlonBase.LatLonBase.equals\tpygeodesy.latlonBase.LatLonBase-class.html#equals\npygeodesy.latlonBase.LatLonBase.circin6\tpygeodesy.latlonBase.LatLonBase-class.html#circin6\npygeodesy.latlonBase.LatLonBase.nearestOn6\tpygeodesy.latlonBase.LatLonBase-class.html#nearestOn6\npygeodesy.latlonBase.LatLonBase.rhumbIntersecant2\tpygeodesy.latlonBase.LatLonBase-class.html#rhumbIntersecant2\npygeodesy.latlonBase.LatLonBase.cosineLawTo\tpygeodesy.latlonBase.LatLonBase-class.html#cosineLawTo\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.latlonBase.LatLonBase.toVector3d\tpygeodesy.latlonBase.LatLonBase-class.html#toVector3d\npygeodesy.latlonBase.LatLonBase._lat\tpygeodesy.latlonBase.LatLonBase-class.html#_lat\npygeodesy.latlonBase.LatLonBase.cosineForsytheAndoyerLambertTo\tpygeodesy.latlonBase.LatLonBase-class.html#cosineForsytheAndoyerLambertTo\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.latlonBase.LatLonBase.compassAngleTo\tpygeodesy.latlonBase.LatLonBase-class.html#compassAngleTo\npygeodesy.named._NamedBase.__repr__\tpygeodesy.named._NamedBase-class.html#__repr__\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.latlonBase.LatLonBase._N_vector\tpygeodesy.latlonBase.LatLonBase-class.html#_N_vector\npygeodesy.latlonBase.LatLonBase.flatPolarTo\tpygeodesy.latlonBase.LatLonBase-class.html#flatPolarTo\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.latlonBase.LatLonBase.boundsOf\tpygeodesy.latlonBase.LatLonBase-class.html#boundsOf\npygeodesy.latlonBase.LatLonBase._havg\tpygeodesy.latlonBase.LatLonBase-class.html#_havg\npygeodesy.latlonBase.LatLonBase.xyz\tpygeodesy.latlonBase.LatLonBase-class.html#xyz\npygeodesy.nvectorBase.LatLonNvectorBase.others\tpygeodesy.nvectorBase.LatLonNvectorBase-class.html#others\npygeodesy.latlonBase.LatLonBase.isEllipsoidal\tpygeodesy.latlonBase.LatLonBase-class.html#isEllipsoidal\npygeodesy.latlonBase.LatLonBase.height\tpygeodesy.latlonBase.LatLonBase-class.html#height\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.latlonBase.LatLonBase.equals3\tpygeodesy.latlonBase.LatLonBase-class.html#equals3\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.latlonBase.LatLonBase.rhumbDestination\tpygeodesy.latlonBase.LatLonBase-class.html#rhumbDestination\npygeodesy.nvectorBase.LatLonNvectorBase.trilaterate5\tpygeodesy.nvectorBase.LatLonNvectorBase-class.html#trilaterate5\npygeodesy.latlonBase.LatLonBase._heigHt\tpygeodesy.latlonBase.LatLonBase-class.html#_heigHt\npygeodesy.latlonBase.LatLonBase.points2\tpygeodesy.latlonBase.LatLonBase-class.html#points2\npygeodesy.latlonBase.LatLonBase.lon\tpygeodesy.latlonBase.LatLonBase-class.html#lon\npygeodesy.latlonBase.LatLonBase.xyzh\tpygeodesy.latlonBase.LatLonBase-class.html#xyzh\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.latlonBase.LatLonBase.hubenyTo\tpygeodesy.latlonBase.LatLonBase-class.html#hubenyTo\npygeodesy.latlonBase.LatLonBase.heightStr\tpygeodesy.latlonBase.LatLonBase-class.html#heightStr\npygeodesy.ecefLocals._EcefLocal.Ecef\tpygeodesy.ecefLocals._EcefLocal-class.html#Ecef\npygeodesy.latlonBase.LatLonBase.latlon2\tpygeodesy.latlonBase.LatLonBase-class.html#latlon2\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.latlonBase.LatLonBase.circum3\tpygeodesy.latlonBase.LatLonBase-class.html#circum3\npygeodesy.latlonBase.LatLonBase._rhumb3\tpygeodesy.latlonBase.LatLonBase-class.html#_rhumb3\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.latlonBase.LatLonBase.__eq__\tpygeodesy.latlonBase.LatLonBase-class.html#__eq__\npygeodesy.latlonBase.LatLonBase._lon\tpygeodesy.latlonBase.LatLonBase-class.html#_lon\npygeodesy.latlonBase.LatLonBase.toNormal\tpygeodesy.latlonBase.LatLonBase-class.html#toNormal\npygeodesy.latlonBase.LatLonBase.latlonheight\tpygeodesy.latlonBase.LatLonBase-class.html#latlonheight\npygeodesy.latlonBase.LatLonBase.height4\tpygeodesy.latlonBase.LatLonBase-class.html#height4\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.latlonBase.LatLonBase.xyz3\tpygeodesy.latlonBase.LatLonBase-class.html#xyz3\npygeodesy.latlonBase.LatLonBase.bounds\tpygeodesy.latlonBase.LatLonBase-class.html#bounds\npygeodesy.latlonBase.LatLonBase.hartzell\tpygeodesy.latlonBase.LatLonBase-class.html#hartzell\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.latlonBase.LatLonBase.rhumbAzimuthTo\tpygeodesy.latlonBase.LatLonBase-class.html#rhumbAzimuthTo\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.nvectorBase.LatLonNvectorBase._update\tpygeodesy.nvectorBase.LatLonNvectorBase-class.html#_update\npygeodesy.ecefLocals._EcefLocal.toNed\tpygeodesy.ecefLocals._EcefLocal-class.html#toNed\npygeodesy.latlonBase.LatLonBase.cosineAndoyerLambertTo\tpygeodesy.latlonBase.LatLonBase-class.html#cosineAndoyerLambertTo\npygeodesy.latlonBase.LatLonBase.rhumbMidpointTo\tpygeodesy.latlonBase.LatLonBase-class.html#rhumbMidpointTo\npygeodesy.latlonBase.LatLonBase._clipid\tpygeodesy.latlonBase.LatLonBase-class.html#_clipid\npygeodesy.nvectorBase.LatLonNvectorBase.toNvector\tpygeodesy.nvectorBase.LatLonNvectorBase-class.html#toNvector\npygeodesy.latlonBase.LatLonBase.isSpherical\tpygeodesy.latlonBase.LatLonBase-class.html#isSpherical\npygeodesy.latlonBase.LatLonBase._wrap_name2\tpygeodesy.latlonBase.LatLonBase-class.html#_wrap_name2\npygeodesy.latlonBase.LatLonBase.__init__\tpygeodesy.latlonBase.LatLonBase-class.html#__init__\npygeodesy.latlonBase.LatLonBase.radii11\tpygeodesy.latlonBase.LatLonBase-class.html#radii11\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.latlonBase.LatLonBase.philamheight\tpygeodesy.latlonBase.LatLonBase-class.html#philamheight\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.latlonBase.LatLonBase.latlon2round\tpygeodesy.latlonBase.LatLonBase-class.html#latlon2round\npygeodesy.nvectorBase.LatLonNvectorBase.intersections2\tpygeodesy.nvectorBase.LatLonNvectorBase-class.html#intersections2\npygeodesy.ecefLocals._EcefLocal._ltp_ecef2local\tpygeodesy.ecefLocals._EcefLocal-class.html#_ltp_ecef2local\npygeodesy.latlonBase.LatLonBase.vincentysTo\tpygeodesy.latlonBase.LatLonBase-class.html#vincentysTo\npygeodesy.ecefLocals._EcefLocal._ecef9datum\tpygeodesy.ecefLocals._EcefLocal-class.html#_ecef9datum\npygeodesy.latlonBase.LatLonBase.to3xyz\tpygeodesy.latlonBase.LatLonBase-class.html#to3xyz\npygeodesy.latlonBase.LatLonBase.lam\tpygeodesy.latlonBase.LatLonBase-class.html#lam\npygeodesy.latlonBase.LatLonBase.phi\tpygeodesy.latlonBase.LatLonBase-class.html#phi\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.latlonBase.LatLonBase.destinationXyz\tpygeodesy.latlonBase.LatLonBase-class.html#destinationXyz\npygeodesy.latlonBase.LatLonBase._height\tpygeodesy.latlonBase.LatLonBase-class.html#_height\npygeodesy.latlonBase.LatLonBase.isequalTo\tpygeodesy.latlonBase.LatLonBase-class.html#isequalTo\npygeodesy.latlonBase.LatLonBase.euclideanTo\tpygeodesy.latlonBase.LatLonBase-class.html#euclideanTo\npygeodesy.latlonBase.LatLonBase._intersecend2\tpygeodesy.latlonBase.LatLonBase-class.html#_intersecend2\npygeodesy.latlonBase.LatLonBase.lat\tpygeodesy.latlonBase.LatLonBase-class.html#lat\npygeodesy.latlonBase.LatLonBase.toVector\tpygeodesy.latlonBase.LatLonBase-class.html#toVector\npygeodesy.latlonBase.LatLonBase.equirectangularTo\tpygeodesy.latlonBase.LatLonBase-class.html#equirectangularTo\npygeodesy.ecefLocals._EcefLocal.toLocal\tpygeodesy.ecefLocals._EcefLocal-class.html#toLocal\npygeodesy.latlonBase.LatLonBase.rhumbDistanceTo\tpygeodesy.latlonBase.LatLonBase-class.html#rhumbDistanceTo\npygeodesy.latlonBase.LatLonBase.rhumbLine\tpygeodesy.latlonBase.LatLonBase-class.html#rhumbLine\npygeodesy.latlonBase.LatLonBase.intersecant2\tpygeodesy.latlonBase.LatLonBase-class.html#intersecant2\npygeodesy.latlonBase.LatLonBase.points\tpygeodesy.latlonBase.LatLonBase-class.html#points\npygeodesy.latlonBase.LatLonBase._toCartesianEcef\tpygeodesy.latlonBase.LatLonBase-class.html#_toCartesianEcef\npygeodesy.latlonBase.LatLonBase._distanceTo_\tpygeodesy.latlonBase.LatLonBase-class.html#_distanceTo_\npygeodesy.latlonBase.LatLonBase.compassAngle\tpygeodesy.latlonBase.LatLonBase-class.html#compassAngle\npygeodesy.nvectorBase.LatLonNvectorBase.trilaterate\tpygeodesy.nvectorBase.LatLonNvectorBase-class.html#trilaterate\npygeodesy.nvectorBase.NvectorBase\tpygeodesy.nvectorBase.NvectorBase-class.html\npygeodesy.nvectorBase.NvectorBase.toCartesian\tpygeodesy.nvectorBase.NvectorBase-class.html#toCartesian\npygeodesy.vector3dBase.Vector3dBase.__int__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__int__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedBase.__str__\tpygeodesy.named._NamedBase-class.html#__str__\npygeodesy.nvectorBase.NvectorBase.datum\tpygeodesy.nvectorBase.NvectorBase-class.html#datum\npygeodesy.vector3dBase.Vector3dBase.__imatmul__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__imatmul__\npygeodesy.nvectorBase.NvectorBase.toLatLon\tpygeodesy.nvectorBase.NvectorBase-class.html#toLatLon\npygeodesy.nvectorBase.NvectorBase.to3abh\tpygeodesy.nvectorBase.NvectorBase-class.html#to3abh\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.vector3dBase.Vector3dBase.__rdiv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rdiv__\npygeodesy.vector3dBase.Vector3dBase.__rmul__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rmul__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.vector3dBase.Vector3dBase.__lt__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__lt__\npygeodesy.nvectorBase.NvectorBase.philamheightdatum\tpygeodesy.nvectorBase.NvectorBase-class.html#philamheightdatum\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.nvectorBase.NvectorBase.to3llh\tpygeodesy.nvectorBase.NvectorBase-class.html#to3llh\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.vector3dBase.Vector3dBase.__cmp__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__cmp__\npygeodesy.vector3d.Vector3d.nearestOn\tpygeodesy.vector3d.Vector3d-class.html#nearestOn\npygeodesy.vector3dBase.Vector3dBase.minus_\tpygeodesy.vector3dBase.Vector3dBase-class.html#minus_\npygeodesy.vector3dBase.Vector3dBase.__rfloordiv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rfloordiv__\npygeodesy.vector3dBase.Vector3dBase.crosserrors\tpygeodesy.vector3dBase.Vector3dBase-class.html#crosserrors\npygeodesy.nvectorBase.NvectorBase._h\tpygeodesy.nvectorBase.NvectorBase-class.html#_h\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.vector3dBase.Vector3dBase.rotateAround\tpygeodesy.vector3dBase.Vector3dBase-class.html#rotateAround\npygeodesy.nvectorBase.NvectorBase.to2ab\tpygeodesy.nvectorBase.NvectorBase-class.html#to2ab\npygeodesy.nvectorBase.NvectorBase.toStr\tpygeodesy.nvectorBase.NvectorBase-class.html#toStr\npygeodesy.vector3dBase.Vector3dBase._roty\tpygeodesy.vector3dBase.Vector3dBase-class.html#_roty\npygeodesy.vector3dBase.Vector3dBase.angleTo\tpygeodesy.vector3dBase.Vector3dBase-class.html#angleTo\npygeodesy.vector3dBase.Vector3dBase.__pow__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__pow__\npygeodesy.vector3dBase.Vector3dBase.__gt__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__gt__\npygeodesy.vector3dBase.Vector3dBase.__bool__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__bool__\npygeodesy.vector3dBase.Vector3dBase.x2y2z23\tpygeodesy.vector3dBase.Vector3dBase-class.html#x2y2z23\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.nvectorBase.NvectorBase._toEcefDrv3\tpygeodesy.nvectorBase.NvectorBase-class.html#_toEcefDrv3\npygeodesy.vector3dBase.Vector3dBase.rotate\tpygeodesy.vector3dBase.Vector3dBase-class.html#rotate\npygeodesy.vector3dBase.Vector3dBase.__nonzero__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__nonzero__\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.vector3dBase.Vector3dBase._united\tpygeodesy.vector3dBase.Vector3dBase-class.html#_united\npygeodesy.vector3dBase.Vector3dBase._other_cmp\tpygeodesy.vector3dBase.Vector3dBase-class.html#_other_cmp\npygeodesy.vector3dBase.Vector3dBase._plus\tpygeodesy.vector3dBase.Vector3dBase-class.html#_plus\npygeodesy.vector3dBase.Vector3dBase.__mod__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__mod__\npygeodesy.vector3dBase.Vector3dBase.to3xyz\tpygeodesy.vector3dBase.Vector3dBase-class.html#to3xyz\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.nvectorBase.NvectorBase.h\tpygeodesy.nvectorBase.NvectorBase-class.html#h\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.vector3dBase.Vector3dBase.x\tpygeodesy.vector3dBase.Vector3dBase-class.html#x\npygeodesy.vector3dBase.Vector3dBase.__long__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__long__\npygeodesy.vector3dBase.Vector3dBase.cmp\tpygeodesy.vector3dBase.Vector3dBase-class.html#cmp\npygeodesy.vector3dBase.Vector3dBase.homogeneous\tpygeodesy.vector3dBase.Vector3dBase-class.html#homogeneous\npygeodesy.nvectorBase.NvectorBase.lam\tpygeodesy.nvectorBase.NvectorBase-class.html#lam\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.vector3dBase.Vector3dBase.plus_\tpygeodesy.vector3dBase.Vector3dBase-class.html#plus_\npygeodesy.nvectorBase.NvectorBase._H\tpygeodesy.nvectorBase.NvectorBase-class.html#_H\npygeodesy.vector3dBase.Vector3dBase.__truediv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__truediv__\npygeodesy.vector3d.Vector3d.trilaterate2d2\tpygeodesy.vector3d.Vector3d-class.html#trilaterate2d2\npygeodesy.vector3dBase.Vector3dBase.euclid\tpygeodesy.vector3dBase.Vector3dBase-class.html#euclid\npygeodesy.vector3dBase.Vector3dBase._minus\tpygeodesy.vector3dBase.Vector3dBase-class.html#_minus\npygeodesy.vector3d.Vector3d.trilaterate3d2\tpygeodesy.vector3d.Vector3d-class.html#trilaterate3d2\npygeodesy.vector3dBase.Vector3dBase.__rmod__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rmod__\npygeodesy.nvectorBase.NvectorBase.latlon\tpygeodesy.nvectorBase.NvectorBase-class.html#latlon\npygeodesy.vector3dBase.Vector3dBase._crosserrors\tpygeodesy.vector3dBase.Vector3dBase-class.html#_crosserrors\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.vector3dBase.Vector3dBase._mapped\tpygeodesy.vector3dBase.Vector3dBase-class.html#_mapped\npygeodesy.vector3dBase.Vector3dBase.sum\tpygeodesy.vector3dBase.Vector3dBase-class.html#sum\npygeodesy.nvectorBase.NvectorBase.philam\tpygeodesy.nvectorBase.NvectorBase-class.html#philam\npygeodesy.vector3dBase.Vector3dBase._ll\tpygeodesy.vector3dBase.Vector3dBase-class.html#_ll\npygeodesy.vector3dBase.Vector3dBase.isequalTo\tpygeodesy.vector3dBase.Vector3dBase-class.html#isequalTo\npygeodesy.vector3dBase.Vector3dBase.__ne__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__ne__\npygeodesy.vector3dBase.Vector3dBase.__ifloordiv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__ifloordiv__\npygeodesy.vector3dBase.Vector3dBase.dividedBy_\tpygeodesy.vector3dBase.Vector3dBase-class.html#dividedBy_\npygeodesy.vector3dBase.Vector3dBase.equals\tpygeodesy.vector3dBase.Vector3dBase-class.html#equals\npygeodesy.vector3dBase.Vector3dBase.times_\tpygeodesy.vector3dBase.Vector3dBase-class.html#times_\npygeodesy.nvectorBase.NvectorBase.sphericalNvector\tpygeodesy.nvectorBase.NvectorBase-class.html#sphericalNvector\npygeodesy.vector3d.Vector3d.circin6\tpygeodesy.vector3d.Vector3d-class.html#circin6\npygeodesy.vector3d.Vector3d.nearestOn6\tpygeodesy.vector3d.Vector3d-class.html#nearestOn6\npygeodesy.vector3dBase.Vector3dBase.__rmatmul__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rmatmul__\npygeodesy.vector3dBase.Vector3dBase.floats\tpygeodesy.vector3dBase.Vector3dBase-class.html#floats\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.vector3d.Vector3d.meeus2\tpygeodesy.vector3d.Vector3d-class.html#meeus2\npygeodesy.vector3dBase.Vector3dBase.__imul__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__imul__\npygeodesy.vector3dBase.Vector3dBase.__trunc__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__trunc__\npygeodesy.vector3dBase.Vector3dBase.times\tpygeodesy.vector3dBase.Vector3dBase-class.html#times\npygeodesy.vector3dBase.Vector3dBase.length\tpygeodesy.vector3dBase.Vector3dBase-class.html#length\npygeodesy.vector3dBase.Vector3dBase.plus\tpygeodesy.vector3dBase.Vector3dBase-class.html#plus\npygeodesy.vector3dBase.Vector3dBase.__mul__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__mul__\npygeodesy.vector3dBase.Vector3dBase.__matmul__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__matmul__\npygeodesy.vector3dBase.Vector3dBase.__divmod__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__divmod__\npygeodesy.named._NamedBase.toRepr\tpygeodesy.named._NamedBase-class.html#toRepr\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.vector3dBase.Vector3dBase.length2\tpygeodesy.vector3dBase.Vector3dBase-class.html#length2\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.vector3dBase.Vector3dBase.pow\tpygeodesy.vector3dBase.Vector3dBase-class.html#pow\npygeodesy.vector3dBase.Vector3dBase.xyz\tpygeodesy.vector3dBase.Vector3dBase-class.html#xyz\npygeodesy.vector3dBase.Vector3dBase.others\tpygeodesy.vector3dBase.Vector3dBase-class.html#others\npygeodesy.nvectorBase.NvectorBase.isEllipsoidal\tpygeodesy.nvectorBase.NvectorBase-class.html#isEllipsoidal\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.vector3dBase.Vector3dBase.__rsub__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rsub__\npygeodesy.vector3dBase.Vector3dBase.ints\tpygeodesy.vector3dBase.Vector3dBase-class.html#ints\npygeodesy.vector3dBase.Vector3dBase.negate\tpygeodesy.vector3dBase.Vector3dBase-class.html#negate\npygeodesy.vector3dBase.Vector3dBase.apply\tpygeodesy.vector3dBase.Vector3dBase-class.html#apply\npygeodesy.vector3dBase.Vector3dBase.equirectangular\tpygeodesy.vector3dBase.Vector3dBase-class.html#equirectangular\npygeodesy.nvectorBase.NvectorBase.unit\tpygeodesy.nvectorBase.NvectorBase-class.html#unit\npygeodesy.vector3dBase.Vector3dBase.__float__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__float__\npygeodesy.vector3dBase.Vector3dBase.__rpow__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rpow__\npygeodesy.vector3d.Vector3d.soddy4\tpygeodesy.vector3d.Vector3d-class.html#soddy4\npygeodesy.vector3dBase.Vector3dBase._N_vector\tpygeodesy.vector3dBase.Vector3dBase-class.html#_N_vector\npygeodesy.nvectorBase.NvectorBase.lon\tpygeodesy.nvectorBase.NvectorBase-class.html#lon\npygeodesy.vector3d.Vector3d.iscolinearWith\tpygeodesy.vector3d.Vector3d-class.html#iscolinearWith\npygeodesy.nvectorBase.NvectorBase.xyzh\tpygeodesy.nvectorBase.NvectorBase-class.html#xyzh\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.vector3dBase.Vector3dBase.__itruediv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__itruediv__\npygeodesy.vector3dBase.Vector3dBase.dividedBy\tpygeodesy.vector3dBase.Vector3dBase-class.html#dividedBy\npygeodesy.nvectorBase.NvectorBase.Ecef\tpygeodesy.nvectorBase.NvectorBase-class.html#Ecef\npygeodesy.vector3dBase.Vector3dBase.__rdivmod__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rdivmod__\npygeodesy.nvectorBase.NvectorBase.toVector3d\tpygeodesy.nvectorBase.NvectorBase-class.html#toVector3d\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.vector3d.Vector3d.circum3\tpygeodesy.vector3d.Vector3d-class.html#circum3\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.vector3dBase.Vector3dBase.__eq__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__eq__\npygeodesy.vector3dBase.Vector3dBase.__round__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__round__\npygeodesy.vector3dBase.Vector3dBase.bools\tpygeodesy.vector3dBase.Vector3dBase-class.html#bools\npygeodesy.nvectorBase.NvectorBase.latlonheight\tpygeodesy.nvectorBase.NvectorBase-class.html#latlonheight\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.vector3dBase.Vector3dBase.xyz3\tpygeodesy.vector3dBase.Vector3dBase-class.html#xyz3\npygeodesy.vector3dBase.Vector3dBase.__iadd__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__iadd__\npygeodesy.vector3d.Vector3d.circum4_\tpygeodesy.vector3d.Vector3d-class.html#circum4_\npygeodesy.nvectorBase.NvectorBase.latlonheightdatum\tpygeodesy.nvectorBase.NvectorBase-class.html#latlonheightdatum\npygeodesy.vector3dBase.Vector3dBase.__le__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__le__\npygeodesy.vector3dBase.Vector3dBase.__floordiv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__floordiv__\npygeodesy.vector3dBase.Vector3dBase.__hash__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__hash__\npygeodesy.vector3dBase.Vector3dBase.__sub__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__sub__\npygeodesy.vector3dBase.Vector3dBase.z\tpygeodesy.vector3dBase.Vector3dBase-class.html#z\npygeodesy.vector3dBase.Vector3dBase._xyz\tpygeodesy.vector3dBase.Vector3dBase-class.html#_xyz\npygeodesy.vector3dBase.Vector3dBase.minus\tpygeodesy.vector3dBase.Vector3dBase-class.html#minus\npygeodesy.vector3dBase.Vector3dBase.__ge__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__ge__\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.vector3d.Vector3d.bearing\tpygeodesy.vector3d.Vector3d-class.html#bearing\npygeodesy.vector3dBase.Vector3dBase.__rtruediv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rtruediv__\npygeodesy.vector3dBase.Vector3dBase.floorDividedBy_\tpygeodesy.vector3dBase.Vector3dBase-class.html#floorDividedBy_\npygeodesy.vector3dBase.Vector3dBase.__isub__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__isub__\npygeodesy.vector3dBase.Vector3dBase.x2y2z2\tpygeodesy.vector3dBase.Vector3dBase-class.html#x2y2z2\npygeodesy.vector3dBase.Vector3dBase.__radd__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__radd__\npygeodesy.vector3d.Vector3d.parse\tpygeodesy.vector3d.Vector3d-class.html#parse\npygeodesy.vector3dBase.Vector3dBase.floorDividedBy\tpygeodesy.vector3dBase.Vector3dBase-class.html#floorDividedBy\npygeodesy.vector3dBase.Vector3dBase.__floor__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__floor__\npygeodesy.nvectorBase.NvectorBase.isSpherical\tpygeodesy.nvectorBase.NvectorBase-class.html#isSpherical\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.nvectorBase.NvectorBase.__init__\tpygeodesy.nvectorBase.NvectorBase-class.html#__init__\npygeodesy.vector3dBase.Vector3dBase.__imod__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__imod__\npygeodesy.vector3dBase.Vector3dBase.fabs\tpygeodesy.vector3dBase.Vector3dBase-class.html#fabs\npygeodesy.vector3dBase.Vector3dBase._times\tpygeodesy.vector3dBase.Vector3dBase-class.html#_times\npygeodesy.vector3d.Vector3d.radii11\tpygeodesy.vector3d.Vector3d-class.html#radii11\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.vector3dBase.Vector3dBase.cross\tpygeodesy.vector3dBase.Vector3dBase-class.html#cross\npygeodesy.nvectorBase.NvectorBase.philamheight\tpygeodesy.nvectorBase.NvectorBase-class.html#philamheight\npygeodesy.vector3dBase.Vector3dBase.__pos__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__pos__\npygeodesy.nvectorBase.NvectorBase.H\tpygeodesy.nvectorBase.NvectorBase-class.html#H\npygeodesy.vector3dBase.Vector3dBase.__abs__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__abs__\npygeodesy.nvectorBase.NvectorBase._datum\tpygeodesy.nvectorBase.NvectorBase-class.html#_datum\npygeodesy.named._NamedBase.__repr__\tpygeodesy.named._NamedBase-class.html#__repr__\npygeodesy.nvectorBase.NvectorBase.ellipsoidalNvector\tpygeodesy.nvectorBase.NvectorBase-class.html#ellipsoidalNvector\npygeodesy.nvectorBase.NvectorBase.phi\tpygeodesy.nvectorBase.NvectorBase-class.html#phi\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.vector3dBase.Vector3dBase.__idiv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__idiv__\npygeodesy.nvectorBase.NvectorBase.to4xyzh\tpygeodesy.nvectorBase.NvectorBase-class.html#to4xyzh\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.vector3dBase.Vector3dBase._fromll\tpygeodesy.vector3dBase.Vector3dBase-class.html#_fromll\npygeodesy.vector3dBase.Vector3dBase.__add__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__add__\npygeodesy.nvectorBase.NvectorBase.lat\tpygeodesy.nvectorBase.NvectorBase-class.html#lat\npygeodesy.vector3dBase.Vector3dBase.intermediateTo\tpygeodesy.vector3dBase.Vector3dBase-class.html#intermediateTo\npygeodesy.nvectorBase.NvectorBase.hStr\tpygeodesy.nvectorBase.NvectorBase-class.html#hStr\npygeodesy.nvectorBase.NvectorBase.to2ll\tpygeodesy.nvectorBase.NvectorBase-class.html#to2ll\npygeodesy.vector3dBase.Vector3dBase.isconjugateTo\tpygeodesy.vector3dBase.Vector3dBase-class.html#isconjugateTo\npygeodesy.vector3dBase.Vector3dBase.__ipow__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__ipow__\npygeodesy.vector3dBase.Vector3dBase.__div__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__div__\npygeodesy.vector3dBase.Vector3dBase.__ceil__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__ceil__\npygeodesy.vector3dBase.Vector3dBase.__neg__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__neg__\npygeodesy.vector3dBase.Vector3dBase.y\tpygeodesy.vector3dBase.Vector3dBase-class.html#y\npygeodesy.vector3dBase.Vector3dBase.dot\tpygeodesy.vector3dBase.Vector3dBase-class.html#dot\npygeodesy.osgr.OSGRError\tpygeodesy.osgr.OSGRError-class.html\npygeodesy.osgr.Osgr\tpygeodesy.osgr.Osgr-class.html\npygeodesy.osgr.Osgr.toRepr\tpygeodesy.osgr.Osgr-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.osgr.Osgr.__str__\tpygeodesy.osgr.Osgr-class.html#__str__\npygeodesy.osgr.Osgr.datum\tpygeodesy.osgr.Osgr-class.html#datum\npygeodesy.osgr.Osgr._northing\tpygeodesy.osgr.Osgr-class.html#_northing\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.osgr.Osgr.parse\tpygeodesy.osgr.Osgr-class.html#parse\npygeodesy.osgr.Osgr.toLatLon\tpygeodesy.osgr.Osgr-class.html#toLatLon\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.osgr.Osgr.easting\tpygeodesy.osgr.Osgr-class.html#easting\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.osgr.Osgr.__init__\tpygeodesy.osgr.Osgr-class.html#__init__\npygeodesy.osgr.Osgr.northing\tpygeodesy.osgr.Osgr-class.html#northing\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.osgr.Osgr._easting\tpygeodesy.osgr.Osgr-class.html#_easting\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.osgr.Osgr._latlon\tpygeodesy.osgr.Osgr-class.html#_latlon\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.osgr.Osgr.scale0\tpygeodesy.osgr.Osgr-class.html#scale0\npygeodesy.osgr.Osgr.latlon0\tpygeodesy.osgr.Osgr-class.html#latlon0\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.osgr.Osgr.toStr\tpygeodesy.osgr.Osgr-class.html#toStr\npygeodesy.osgr.Osgr._datum\tpygeodesy.osgr.Osgr-class.html#_datum\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.osgr.Osgr._resolution\tpygeodesy.osgr.Osgr-class.html#_resolution\npygeodesy.named._NamedBase.others\tpygeodesy.named._NamedBase-class.html#others\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.osgr.Osgr.falsing0\tpygeodesy.osgr.Osgr-class.html#falsing0\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.osgr.Osgr.iteration\tpygeodesy.osgr.Osgr-class.html#iteration\npygeodesy.osgr.Osgr._latlonTM\tpygeodesy.osgr.Osgr-class.html#_latlonTM\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedBase.__repr__\tpygeodesy.named._NamedBase-class.html#__repr__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.osgr.Osgr.resolution\tpygeodesy.osgr.Osgr-class.html#resolution\npygeodesy.points.LatLon2psxy\tpygeodesy.points.LatLon2psxy-class.html\n_abcoll.Sized.__metaclass__\tabc.ABCMeta-class.html\npygeodesy.points._Basequence._itemname\tpygeodesy.points._Basequence-class.html#_itemname\npygeodesy.points.LatLon2psxy.point\tpygeodesy.points.LatLon2psxy-class.html#point\npygeodesy.points.LatLon2psxy._closed\tpygeodesy.points.LatLon2psxy-class.html#_closed\npygeodesy.points.LatLon2psxy.__str__\tpygeodesy.points.LatLon2psxy-class.html#__str__\npygeodesy.points._Basequence._find\tpygeodesy.points._Basequence-class.html#_find\npygeodesy.points.LatLon2psxy._deg2m\tpygeodesy.points.LatLon2psxy-class.html#_deg2m\npygeodesy.points._Basequence._epsilon\tpygeodesy.points._Basequence-class.html#_epsilon\npygeodesy.points.LatLon2psxy.find\tpygeodesy.points.LatLon2psxy-class.html#find\npygeodesy.points.LatLon2psxy.__init__\tpygeodesy.points.LatLon2psxy-class.html#__init__\npygeodesy.points._Basequence._rfind\tpygeodesy.points._Basequence-class.html#_rfind\npygeodesy.points.LatLon2psxy.index\tpygeodesy.points.LatLon2psxy-class.html#index\npygeodesy.points.LatLon2psxy.__contains__\tpygeodesy.points.LatLon2psxy-class.html#__contains__\npygeodesy.points._Basequence._range\tpygeodesy.points._Basequence-class.html#_range\npygeodesy.points._Basequence._contains\tpygeodesy.points._Basequence-class.html#_contains\npygeodesy.points.LatLon2psxy.__abstractmethods__\tpygeodesy.points.LatLon2psxy-class.html#__abstractmethods__\npygeodesy.points.LatLon2psxy.findall\tpygeodesy.points.LatLon2psxy-class.html#findall\npygeodesy.points._Basequence._getitem\tpygeodesy.points._Basequence-class.html#_getitem\npygeodesy.points._Basequence._abc_cache\tpygeodesy.points._Basequence-class.html#_abc_cache\npygeodesy.points._Basequence.dup\tpygeodesy.points._Basequence-class.html#dup\npygeodesy.points._Basequence._array\tpygeodesy.points._Basequence-class.html#_array\npygeodesy.points.LatLon2psxy._radius\tpygeodesy.points.LatLon2psxy-class.html#_radius\npygeodesy.points._Basequence._iter\tpygeodesy.points._Basequence-class.html#_iter\npygeodesy.points.LatLon2psxy.__getitem__\tpygeodesy.points.LatLon2psxy-class.html#__getitem__\npygeodesy.points.LatLon2psxy._len\tpygeodesy.points.LatLon2psxy-class.html#_len\npygeodesy.points._Basequence.epsilon\tpygeodesy.points._Basequence-class.html#epsilon\npygeodesy.points._Basequence._count\tpygeodesy.points._Basequence-class.html#_count\npygeodesy.points.LatLon2psxy.__iter__\tpygeodesy.points.LatLon2psxy-class.html#__iter__\npygeodesy.points._Basequence.copy\tpygeodesy.points._Basequence-class.html#copy\npygeodesy.points.LatLon2psxy.isPoints2\tpygeodesy.points.LatLon2psxy-class.html#isPoints2\npygeodesy.points.LatLon2psxy.count\tpygeodesy.points.LatLon2psxy-class.html#count\npygeodesy.points.LatLon2psxy.__reversed__\tpygeodesy.points.LatLon2psxy-class.html#__reversed__\npygeodesy.points._Basequence.isTuple2\tpygeodesy.points._Basequence-class.html#isTuple2\npygeodesy.points._Basequence._index\tpygeodesy.points._Basequence-class.html#_index\npygeodesy.points.LatLon2psxy._findall\tpygeodesy.points.LatLon2psxy-class.html#_findall\npygeodesy.points.LatLon2psxy._slicekwds\tpygeodesy.points.LatLon2psxy-class.html#_slicekwds\npygeodesy.points.LatLon2psxy.rfind\tpygeodesy.points.LatLon2psxy-class.html#rfind\npygeodesy.points._Basequence._repr\tpygeodesy.points._Basequence-class.html#_repr\npygeodesy.points.LatLon2psxy.__len__\tpygeodesy.points.LatLon2psxy-class.html#__len__\npygeodesy.points.LatLon2psxy.__repr__\tpygeodesy.points.LatLon2psxy-class.html#__repr__\npygeodesy.points._Basequence.isNumpy2\tpygeodesy.points._Basequence-class.html#isNumpy2\npygeodesy.points.LatLon2psxy._wrap\tpygeodesy.points.LatLon2psxy-class.html#_wrap\npygeodesy.points._Basequence._abc_registry\tpygeodesy.points._Basequence-class.html#_abc_registry\npygeodesy.points._Basequence._reversed\tpygeodesy.points._Basequence-class.html#_reversed\npygeodesy.points.LatLon_\tpygeodesy.points.LatLon_-class.html\npygeodesy.latlonBase.LatLonBase.toCartesian\tpygeodesy.latlonBase.LatLonBase-class.html#toCartesian\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.latlonBase.LatLonBase.__str__\tpygeodesy.latlonBase.LatLonBase-class.html#__str__\npygeodesy.points.LatLon_.datum\tpygeodesy.points.LatLon_-class.html#datum\npygeodesy.latlonBase.LatLonBase.philam2\tpygeodesy.latlonBase.LatLonBase-class.html#philam2\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.latlonBase.LatLonBase.to3llh\tpygeodesy.latlonBase.LatLonBase-class.html#to3llh\npygeodesy.latlonBase.LatLonBase.isnormal\tpygeodesy.latlonBase.LatLonBase-class.html#isnormal\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.latlonBase.LatLonBase.flatLocalTo\tpygeodesy.latlonBase.LatLonBase-class.html#flatLocalTo\npygeodesy.latlonBase.LatLonBase._N_vector\tpygeodesy.latlonBase.LatLonBase-class.html#_N_vector\npygeodesy.latlonBase.LatLonBase._distanceTo\tpygeodesy.latlonBase.LatLonBase-class.html#_distanceTo\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.latlonBase.LatLonBase.isequalTo3\tpygeodesy.latlonBase.LatLonBase-class.html#isequalTo3\npygeodesy.latlonBase.LatLonBase.nearestTo\tpygeodesy.latlonBase.LatLonBase-class.html#nearestTo\npygeodesy.ecefLocals._EcefLocal.toEnu\tpygeodesy.ecefLocals._EcefLocal-class.html#toEnu\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.latlonBase.LatLonBase.isantipode\tpygeodesy.latlonBase.LatLonBase-class.html#isantipode\npygeodesy.latlonBase.LatLonBase._ecef9\tpygeodesy.latlonBase.LatLonBase-class.html#_ecef9\npygeodesy.latlonBase.LatLonBase._rhumb3dict\tpygeodesy.latlonBase.LatLonBase-class.html#_rhumb3dict\npygeodesy.latlonBase.LatLonBase.to2ab\tpygeodesy.latlonBase.LatLonBase-class.html#to2ab\npygeodesy.points.LatLon_.toStr\tpygeodesy.points.LatLon_-class.html#toStr\npygeodesy.latlonBase.LatLonBase._datum\tpygeodesy.latlonBase.LatLonBase-class.html#_datum\npygeodesy.latlonBase.LatLonBase.PointsIter\tpygeodesy.latlonBase.LatLonBase-class.html#PointsIter\npygeodesy.ecefLocals._EcefLocal.toXyz\tpygeodesy.ecefLocals._EcefLocal-class.html#toXyz\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.latlonBase.LatLonBase.antipode\tpygeodesy.latlonBase.LatLonBase-class.html#antipode\npygeodesy.latlonBase.LatLonBase._n_xyz3\tpygeodesy.latlonBase.LatLonBase-class.html#_n_xyz3\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.latlonBase.LatLonBase.toEcef\tpygeodesy.latlonBase.LatLonBase-class.html#toEcef\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.latlonBase.LatLonBase.thomasTo\tpygeodesy.latlonBase.LatLonBase-class.html#thomasTo\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.latlonBase.LatLonBase._Ecef_forward\tpygeodesy.latlonBase.LatLonBase-class.html#_Ecef_forward\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.points.LatLon_.toRepr\tpygeodesy.points.LatLon_-class.html#toRepr\npygeodesy.latlonBase.LatLonBase.isantipodeTo\tpygeodesy.latlonBase.LatLonBase-class.html#isantipodeTo\npygeodesy.ecefLocals._EcefLocal._ltp\tpygeodesy.ecefLocals._EcefLocal-class.html#_ltp\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.latlonBase.LatLonBase.toDatum\tpygeodesy.latlonBase.LatLonBase-class.html#toDatum\npygeodesy.ecefLocals._EcefLocal.toLtp\tpygeodesy.ecefLocals._EcefLocal-class.html#toLtp\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.latlonBase.LatLonBase.clipid\tpygeodesy.latlonBase.LatLonBase-class.html#clipid\npygeodesy.latlonBase.LatLonBase.ellipsoidalLatLon\tpygeodesy.latlonBase.LatLonBase-class.html#ellipsoidalLatLon\npygeodesy.latlonBase.LatLonBase.latlon\tpygeodesy.latlonBase.LatLonBase-class.html#latlon\npygeodesy.latlonBase.LatLonBase.circum4_\tpygeodesy.latlonBase.LatLonBase-class.html#circum4_\npygeodesy.latlonBase.LatLonBase.haversineTo\tpygeodesy.latlonBase.LatLonBase-class.html#haversineTo\npygeodesy.latlonBase.LatLonBase.normal\tpygeodesy.latlonBase.LatLonBase-class.html#normal\npygeodesy.latlonBase.LatLonBase.philam\tpygeodesy.latlonBase.LatLonBase-class.html#philam\npygeodesy.ecefLocals._EcefLocal.toAer\tpygeodesy.ecefLocals._EcefLocal-class.html#toAer\npygeodesy.latlonBase.LatLonBase.chordTo\tpygeodesy.latlonBase.LatLonBase-class.html#chordTo\npygeodesy.points.LatLon_.__ne__\tpygeodesy.points.LatLon_-class.html#__ne__\npygeodesy.latlonBase.LatLonBase.toWm\tpygeodesy.latlonBase.LatLonBase-class.html#toWm\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.latlonBase.LatLonBase.sphericalLatLon\tpygeodesy.latlonBase.LatLonBase-class.html#sphericalLatLon\npygeodesy.latlonBase.LatLonBase.equals\tpygeodesy.latlonBase.LatLonBase-class.html#equals\npygeodesy.latlonBase.LatLonBase.circin6\tpygeodesy.latlonBase.LatLonBase-class.html#circin6\npygeodesy.latlonBase.LatLonBase.nearestOn6\tpygeodesy.latlonBase.LatLonBase-class.html#nearestOn6\npygeodesy.latlonBase.LatLonBase.rhumbIntersecant2\tpygeodesy.latlonBase.LatLonBase-class.html#rhumbIntersecant2\npygeodesy.latlonBase.LatLonBase.cosineLawTo\tpygeodesy.latlonBase.LatLonBase-class.html#cosineLawTo\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.latlonBase.LatLonBase.toVector3d\tpygeodesy.latlonBase.LatLonBase-class.html#toVector3d\npygeodesy.latlonBase.LatLonBase._lat\tpygeodesy.latlonBase.LatLonBase-class.html#_lat\npygeodesy.latlonBase.LatLonBase.cosineForsytheAndoyerLambertTo\tpygeodesy.latlonBase.LatLonBase-class.html#cosineForsytheAndoyerLambertTo\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.latlonBase.LatLonBase.compassAngleTo\tpygeodesy.latlonBase.LatLonBase-class.html#compassAngleTo\npygeodesy.named._NamedBase.__repr__\tpygeodesy.named._NamedBase-class.html#__repr__\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.latlonBase.LatLonBase.points2\tpygeodesy.latlonBase.LatLonBase-class.html#points2\npygeodesy.latlonBase.LatLonBase.flatPolarTo\tpygeodesy.latlonBase.LatLonBase-class.html#flatPolarTo\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.latlonBase.LatLonBase.boundsOf\tpygeodesy.latlonBase.LatLonBase-class.html#boundsOf\npygeodesy.latlonBase.LatLonBase._havg\tpygeodesy.latlonBase.LatLonBase-class.html#_havg\npygeodesy.latlonBase.LatLonBase.xyz\tpygeodesy.latlonBase.LatLonBase-class.html#xyz\npygeodesy.named._NamedBase.others\tpygeodesy.named._NamedBase-class.html#others\npygeodesy.latlonBase.LatLonBase.isEllipsoidal\tpygeodesy.latlonBase.LatLonBase-class.html#isEllipsoidal\npygeodesy.latlonBase.LatLonBase.height\tpygeodesy.latlonBase.LatLonBase-class.html#height\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.latlonBase.LatLonBase.equals3\tpygeodesy.latlonBase.LatLonBase-class.html#equals3\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.latlonBase.LatLonBase.toVector\tpygeodesy.latlonBase.LatLonBase-class.html#toVector\npygeodesy.latlonBase.LatLonBase.rhumbDestination\tpygeodesy.latlonBase.LatLonBase-class.html#rhumbDestination\npygeodesy.latlonBase.LatLonBase._heigHt\tpygeodesy.latlonBase.LatLonBase-class.html#_heigHt\npygeodesy.latlonBase.LatLonBase.latlon_\tpygeodesy.latlonBase.LatLonBase-class.html#latlon_\npygeodesy.latlonBase.LatLonBase.lon\tpygeodesy.latlonBase.LatLonBase-class.html#lon\npygeodesy.latlonBase.LatLonBase.xyzh\tpygeodesy.latlonBase.LatLonBase-class.html#xyzh\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.latlonBase.LatLonBase.hubenyTo\tpygeodesy.latlonBase.LatLonBase-class.html#hubenyTo\npygeodesy.latlonBase.LatLonBase.heightStr\tpygeodesy.latlonBase.LatLonBase-class.html#heightStr\npygeodesy.ecefLocals._EcefLocal.Ecef\tpygeodesy.ecefLocals._EcefLocal-class.html#Ecef\npygeodesy.latlonBase.LatLonBase.latlon2\tpygeodesy.latlonBase.LatLonBase-class.html#latlon2\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.latlonBase.LatLonBase.circum3\tpygeodesy.latlonBase.LatLonBase-class.html#circum3\npygeodesy.latlonBase.LatLonBase._rhumb3\tpygeodesy.latlonBase.LatLonBase-class.html#_rhumb3\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.points.LatLon_.__eq__\tpygeodesy.points.LatLon_-class.html#__eq__\npygeodesy.latlonBase.LatLonBase._lon\tpygeodesy.latlonBase.LatLonBase-class.html#_lon\npygeodesy.latlonBase.LatLonBase.toNormal\tpygeodesy.latlonBase.LatLonBase-class.html#toNormal\npygeodesy.latlonBase.LatLonBase.latlonheight\tpygeodesy.latlonBase.LatLonBase-class.html#latlonheight\npygeodesy.latlonBase.LatLonBase.height4\tpygeodesy.latlonBase.LatLonBase-class.html#height4\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.latlonBase.LatLonBase.xyz3\tpygeodesy.latlonBase.LatLonBase-class.html#xyz3\npygeodesy.latlonBase.LatLonBase.bounds\tpygeodesy.latlonBase.LatLonBase-class.html#bounds\npygeodesy.latlonBase.LatLonBase.hartzell\tpygeodesy.latlonBase.LatLonBase-class.html#hartzell\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.latlonBase.LatLonBase.rhumbAzimuthTo\tpygeodesy.latlonBase.LatLonBase-class.html#rhumbAzimuthTo\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.ecefLocals._EcefLocal.toNed\tpygeodesy.ecefLocals._EcefLocal-class.html#toNed\npygeodesy.latlonBase.LatLonBase.cosineAndoyerLambertTo\tpygeodesy.latlonBase.LatLonBase-class.html#cosineAndoyerLambertTo\npygeodesy.latlonBase.LatLonBase.rhumbMidpointTo\tpygeodesy.latlonBase.LatLonBase-class.html#rhumbMidpointTo\npygeodesy.latlonBase.LatLonBase._clipid\tpygeodesy.latlonBase.LatLonBase-class.html#_clipid\npygeodesy.latlonBase.LatLonBase.toNvector\tpygeodesy.latlonBase.LatLonBase-class.html#toNvector\npygeodesy.latlonBase.LatLonBase.isSpherical\tpygeodesy.latlonBase.LatLonBase-class.html#isSpherical\npygeodesy.latlonBase.LatLonBase._wrap_name2\tpygeodesy.latlonBase.LatLonBase-class.html#_wrap_name2\npygeodesy.points.LatLon_.__init__\tpygeodesy.points.LatLon_-class.html#__init__\npygeodesy.latlonBase.LatLonBase.radii11\tpygeodesy.latlonBase.LatLonBase-class.html#radii11\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.latlonBase.LatLonBase.philamheight\tpygeodesy.latlonBase.LatLonBase-class.html#philamheight\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.latlonBase.LatLonBase.latlon2round\tpygeodesy.latlonBase.LatLonBase-class.html#latlon2round\npygeodesy.ecefLocals._EcefLocal._ltp_ecef2local\tpygeodesy.ecefLocals._EcefLocal-class.html#_ltp_ecef2local\npygeodesy.latlonBase.LatLonBase.vincentysTo\tpygeodesy.latlonBase.LatLonBase-class.html#vincentysTo\npygeodesy.ecefLocals._EcefLocal._ecef9datum\tpygeodesy.ecefLocals._EcefLocal-class.html#_ecef9datum\npygeodesy.latlonBase.LatLonBase.to3xyz\tpygeodesy.latlonBase.LatLonBase-class.html#to3xyz\npygeodesy.latlonBase.LatLonBase.lam\tpygeodesy.latlonBase.LatLonBase-class.html#lam\npygeodesy.latlonBase.LatLonBase.phi\tpygeodesy.latlonBase.LatLonBase-class.html#phi\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.latlonBase.LatLonBase.destinationXyz\tpygeodesy.latlonBase.LatLonBase-class.html#destinationXyz\npygeodesy.latlonBase.LatLonBase._height\tpygeodesy.latlonBase.LatLonBase-class.html#_height\npygeodesy.latlonBase.LatLonBase.isequalTo\tpygeodesy.latlonBase.LatLonBase-class.html#isequalTo\npygeodesy.latlonBase.LatLonBase.euclideanTo\tpygeodesy.latlonBase.LatLonBase-class.html#euclideanTo\npygeodesy.latlonBase.LatLonBase._intersecend2\tpygeodesy.latlonBase.LatLonBase-class.html#_intersecend2\npygeodesy.latlonBase.LatLonBase.lat\tpygeodesy.latlonBase.LatLonBase-class.html#lat\npygeodesy.points.LatLon_.intermediateTo\tpygeodesy.points.LatLon_-class.html#intermediateTo\npygeodesy.latlonBase.LatLonBase.equirectangularTo\tpygeodesy.latlonBase.LatLonBase-class.html#equirectangularTo\npygeodesy.ecefLocals._EcefLocal.toLocal\tpygeodesy.ecefLocals._EcefLocal-class.html#toLocal\npygeodesy.latlonBase.LatLonBase.rhumbDistanceTo\tpygeodesy.latlonBase.LatLonBase-class.html#rhumbDistanceTo\npygeodesy.latlonBase.LatLonBase.rhumbLine\tpygeodesy.latlonBase.LatLonBase-class.html#rhumbLine\npygeodesy.latlonBase.LatLonBase.intersecant2\tpygeodesy.latlonBase.LatLonBase-class.html#intersecant2\npygeodesy.latlonBase.LatLonBase.points\tpygeodesy.latlonBase.LatLonBase-class.html#points\npygeodesy.latlonBase.LatLonBase._toCartesianEcef\tpygeodesy.latlonBase.LatLonBase-class.html#_toCartesianEcef\npygeodesy.latlonBase.LatLonBase._distanceTo_\tpygeodesy.latlonBase.LatLonBase-class.html#_distanceTo_\npygeodesy.latlonBase.LatLonBase.compassAngle\tpygeodesy.latlonBase.LatLonBase-class.html#compassAngle\npygeodesy.points.Numpy2LatLon\tpygeodesy.points.Numpy2LatLon-class.html\npygeodesy.points._Array2LatLon.subset\tpygeodesy.points._Array2LatLon-class.html#subset\n_abcoll.Sized.__metaclass__\tabc.ABCMeta-class.html\npygeodesy.points._Basequence._itemname\tpygeodesy.points._Basequence-class.html#_itemname\npygeodesy.points._Array2LatLon.point\tpygeodesy.points._Array2LatLon-class.html#point\npygeodesy.points._Array2LatLon.__str__\tpygeodesy.points._Array2LatLon-class.html#__str__\npygeodesy.points._Array2LatLon._shape\tpygeodesy.points._Array2LatLon-class.html#_shape\npygeodesy.points._Array2LatLon.shape\tpygeodesy.points._Array2LatLon-class.html#shape\npygeodesy.points._Basequence._find\tpygeodesy.points._Basequence-class.html#_find\npygeodesy.points._Array2LatLon._ilon\tpygeodesy.points._Array2LatLon-class.html#_ilon\npygeodesy.points._Basequence._epsilon\tpygeodesy.points._Basequence-class.html#_epsilon\npygeodesy.points._Array2LatLon.findall\tpygeodesy.points._Array2LatLon-class.html#findall\npygeodesy.points.Numpy2LatLon.__init__\tpygeodesy.points.Numpy2LatLon-class.html#__init__\npygeodesy.points._Basequence._rfind\tpygeodesy.points._Basequence-class.html#_rfind\npygeodesy.points._Array2LatLon.index\tpygeodesy.points._Array2LatLon-class.html#index\npygeodesy.points._Array2LatLon._ilat\tpygeodesy.points._Array2LatLon-class.html#_ilat\npygeodesy.points._Basequence.isPoints2\tpygeodesy.points._Basequence-class.html#isPoints2\npygeodesy.points._Array2LatLon.__contains__\tpygeodesy.points._Array2LatLon-class.html#__contains__\npygeodesy.points._Basequence._range\tpygeodesy.points._Basequence-class.html#_range\npygeodesy.points._Basequence._contains\tpygeodesy.points._Basequence-class.html#_contains\npygeodesy.points._Array2LatLon.__abstractmethods__\tpygeodesy.points._Array2LatLon-class.html#__abstractmethods__\npygeodesy.points._Array2LatLon.find\tpygeodesy.points._Array2LatLon-class.html#find\npygeodesy.points._Basequence._getitem\tpygeodesy.points._Basequence-class.html#_getitem\npygeodesy.points._Basequence.dup\tpygeodesy.points._Basequence-class.html#dup\npygeodesy.points._Array2LatLon._array\tpygeodesy.points._Array2LatLon-class.html#_array\npygeodesy.points._Array2LatLon.__len__\tpygeodesy.points._Array2LatLon-class.html#__len__\npygeodesy.points._Basequence._iter\tpygeodesy.points._Basequence-class.html#_iter\npygeodesy.points._Array2LatLon.__getitem__\tpygeodesy.points._Array2LatLon-class.html#__getitem__\npygeodesy.points._Basequence.epsilon\tpygeodesy.points._Basequence-class.html#epsilon\npygeodesy.points._Basequence._count\tpygeodesy.points._Basequence-class.html#_count\npygeodesy.points._Array2LatLon.__iter__\tpygeodesy.points._Array2LatLon-class.html#__iter__\npygeodesy.points._Array2LatLon.ilon\tpygeodesy.points._Array2LatLon-class.html#ilon\npygeodesy.points._Basequence.copy\tpygeodesy.points._Basequence-class.html#copy\npygeodesy.points._Array2LatLon.ilat\tpygeodesy.points._Array2LatLon-class.html#ilat\npygeodesy.points._Array2LatLon.count\tpygeodesy.points._Array2LatLon-class.html#count\npygeodesy.points._Array2LatLon.__reversed__\tpygeodesy.points._Array2LatLon-class.html#__reversed__\npygeodesy.points._Basequence.isTuple2\tpygeodesy.points._Basequence-class.html#isTuple2\npygeodesy.points._Basequence._index\tpygeodesy.points._Basequence-class.html#_index\npygeodesy.points._Array2LatLon._findall\tpygeodesy.points._Array2LatLon-class.html#_findall\npygeodesy.points._Array2LatLon._slicekwds\tpygeodesy.points._Array2LatLon-class.html#_slicekwds\npygeodesy.points._Array2LatLon.rfind\tpygeodesy.points._Array2LatLon-class.html#rfind\npygeodesy.points._Basequence._repr\tpygeodesy.points._Basequence-class.html#_repr\npygeodesy.points._Basequence._abc_cache\tpygeodesy.points._Basequence-class.html#_abc_cache\npygeodesy.points._Array2LatLon.__repr__\tpygeodesy.points._Array2LatLon-class.html#__repr__\npygeodesy.points.Numpy2LatLon.isNumpy2\tpygeodesy.points.Numpy2LatLon-class.html#isNumpy2\npygeodesy.points._Array2LatLon._LatLon\tpygeodesy.points.LatLon_-class.html\npygeodesy.points._Basequence._abc_registry\tpygeodesy.points._Basequence-class.html#_abc_registry\npygeodesy.points._Basequence._reversed\tpygeodesy.points._Basequence-class.html#_reversed\npygeodesy.points.Numpy2LatLon._subset\tpygeodesy.points.Numpy2LatLon-class.html#_subset\npygeodesy.points.Shape2Tuple\tpygeodesy.points.Shape2Tuple-class.html\npygeodesy.named._NamedTuple.toRepr\tpygeodesy.named._NamedTuple-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._NamedTuple.toUnits\tpygeodesy.named._NamedTuple-class.html#toUnits\npygeodesy.named._NamedTuple._validate\tpygeodesy.named._NamedTuple-class.html#_validate\npygeodesy.named._NamedTuple.__str__\tpygeodesy.named._NamedTuple-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._NamedTuple._DOT_\tpygeodesy.named._NamedTuple-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._NamedTuple.reUnit\tpygeodesy.named._NamedTuple-class.html#reUnit\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.points.Shape2Tuple._Names_\tpygeodesy.points.Shape2Tuple-class.html#_Names_\npygeodesy.named._NamedTuple.__setattr__\tpygeodesy.named._NamedTuple-class.html#__setattr__\npygeodesy.named._NamedTuple.__new__\tpygeodesy.named._NamedTuple-class.html#__new__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._NamedTuple._validated\tpygeodesy.named._NamedTuple-class.html#_validated\npygeodesy.named._NamedTuple.__getattr__\tpygeodesy.named._NamedTuple-class.html#__getattr__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._NamedTuple._xtend\tpygeodesy.named._NamedTuple-class.html#_xtend\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._NamedTuple.dup\tpygeodesy.named._NamedTuple-class.html#dup\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedTuple.toStr\tpygeodesy.named._NamedTuple-class.html#toStr\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedTuple.units\tpygeodesy.named._NamedTuple-class.html#units\npygeodesy.named._NamedTuple.iterunits\tpygeodesy.named._NamedTuple-class.html#iterunits\npygeodesy.named._NamedTuple.iteritems\tpygeodesy.named._NamedTuple-class.html#iteritems\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._NamedTuple.items\tpygeodesy.named._NamedTuple-class.html#items\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedTuple.__delattr__\tpygeodesy.named._NamedTuple-class.html#__delattr__\npygeodesy.named._NamedTuple.__repr__\tpygeodesy.named._NamedTuple-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._NamedTuple.__hash__\tpygeodesy.named._NamedTuple-class.html#__hash__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.points.Shape2Tuple._Units_\tpygeodesy.points.Shape2Tuple-class.html#_Units_\npygeodesy.points.Tuple2LatLon\tpygeodesy.points.Tuple2LatLon-class.html\npygeodesy.points._Array2LatLon.subset\tpygeodesy.points._Array2LatLon-class.html#subset\n_abcoll.Sized.__metaclass__\tabc.ABCMeta-class.html\npygeodesy.points._Basequence._itemname\tpygeodesy.points._Basequence-class.html#_itemname\npygeodesy.points._Array2LatLon.point\tpygeodesy.points._Array2LatLon-class.html#point\npygeodesy.points._Array2LatLon.__str__\tpygeodesy.points._Array2LatLon-class.html#__str__\npygeodesy.points._Array2LatLon._shape\tpygeodesy.points._Array2LatLon-class.html#_shape\npygeodesy.points._Array2LatLon.shape\tpygeodesy.points._Array2LatLon-class.html#shape\npygeodesy.points._Basequence._find\tpygeodesy.points._Basequence-class.html#_find\npygeodesy.points._Array2LatLon._ilon\tpygeodesy.points._Array2LatLon-class.html#_ilon\npygeodesy.points._Basequence._epsilon\tpygeodesy.points._Basequence-class.html#_epsilon\npygeodesy.points._Array2LatLon.findall\tpygeodesy.points._Array2LatLon-class.html#findall\npygeodesy.points.Tuple2LatLon.__init__\tpygeodesy.points.Tuple2LatLon-class.html#__init__\npygeodesy.points._Basequence._rfind\tpygeodesy.points._Basequence-class.html#_rfind\npygeodesy.points._Array2LatLon.index\tpygeodesy.points._Array2LatLon-class.html#index\npygeodesy.points._Array2LatLon._ilat\tpygeodesy.points._Array2LatLon-class.html#_ilat\npygeodesy.points._Basequence.isPoints2\tpygeodesy.points._Basequence-class.html#isPoints2\npygeodesy.points._Array2LatLon.__contains__\tpygeodesy.points._Array2LatLon-class.html#__contains__\npygeodesy.points._Basequence._range\tpygeodesy.points._Basequence-class.html#_range\npygeodesy.points._Basequence._contains\tpygeodesy.points._Basequence-class.html#_contains\npygeodesy.points._Array2LatLon.__abstractmethods__\tpygeodesy.points._Array2LatLon-class.html#__abstractmethods__\npygeodesy.points._Array2LatLon.find\tpygeodesy.points._Array2LatLon-class.html#find\npygeodesy.points._Basequence._getitem\tpygeodesy.points._Basequence-class.html#_getitem\npygeodesy.points._Basequence.dup\tpygeodesy.points._Basequence-class.html#dup\npygeodesy.points._Array2LatLon._array\tpygeodesy.points._Array2LatLon-class.html#_array\npygeodesy.points._Array2LatLon.__len__\tpygeodesy.points._Array2LatLon-class.html#__len__\npygeodesy.points._Basequence._iter\tpygeodesy.points._Basequence-class.html#_iter\npygeodesy.points._Array2LatLon.__getitem__\tpygeodesy.points._Array2LatLon-class.html#__getitem__\npygeodesy.points._Basequence.epsilon\tpygeodesy.points._Basequence-class.html#epsilon\npygeodesy.points._Basequence._count\tpygeodesy.points._Basequence-class.html#_count\npygeodesy.points._Array2LatLon.__iter__\tpygeodesy.points._Array2LatLon-class.html#__iter__\npygeodesy.points._Array2LatLon.ilon\tpygeodesy.points._Array2LatLon-class.html#ilon\npygeodesy.points._Basequence.copy\tpygeodesy.points._Basequence-class.html#copy\npygeodesy.points._Array2LatLon.ilat\tpygeodesy.points._Array2LatLon-class.html#ilat\npygeodesy.points._Array2LatLon.count\tpygeodesy.points._Array2LatLon-class.html#count\npygeodesy.points._Array2LatLon.__reversed__\tpygeodesy.points._Array2LatLon-class.html#__reversed__\npygeodesy.points.Tuple2LatLon.isTuple2\tpygeodesy.points.Tuple2LatLon-class.html#isTuple2\npygeodesy.points._Basequence._index\tpygeodesy.points._Basequence-class.html#_index\npygeodesy.points._Array2LatLon._findall\tpygeodesy.points._Array2LatLon-class.html#_findall\npygeodesy.points._Array2LatLon._slicekwds\tpygeodesy.points._Array2LatLon-class.html#_slicekwds\npygeodesy.points._Array2LatLon.rfind\tpygeodesy.points._Array2LatLon-class.html#rfind\npygeodesy.points._Basequence._repr\tpygeodesy.points._Basequence-class.html#_repr\npygeodesy.points._Basequence._abc_cache\tpygeodesy.points._Basequence-class.html#_abc_cache\npygeodesy.points._Array2LatLon.__repr__\tpygeodesy.points._Array2LatLon-class.html#__repr__\npygeodesy.points._Basequence.isNumpy2\tpygeodesy.points._Basequence-class.html#isNumpy2\npygeodesy.points._Array2LatLon._LatLon\tpygeodesy.points.LatLon_-class.html\npygeodesy.points._Basequence._abc_registry\tpygeodesy.points._Basequence-class.html#_abc_registry\npygeodesy.points._Basequence._reversed\tpygeodesy.points._Basequence-class.html#_reversed\npygeodesy.points.Tuple2LatLon._subset\tpygeodesy.points.Tuple2LatLon-class.html#_subset\npygeodesy.points._Array2LatLon\tpygeodesy.points._Array2LatLon-class.html\npygeodesy.points._Array2LatLon.subset\tpygeodesy.points._Array2LatLon-class.html#subset\n_abcoll.Sized.__metaclass__\tabc.ABCMeta-class.html\npygeodesy.points._Basequence._itemname\tpygeodesy.points._Basequence-class.html#_itemname\npygeodesy.points._Array2LatLon.point\tpygeodesy.points._Array2LatLon-class.html#point\npygeodesy.points._Array2LatLon.__str__\tpygeodesy.points._Array2LatLon-class.html#__str__\npygeodesy.points._Array2LatLon._shape\tpygeodesy.points._Array2LatLon-class.html#_shape\npygeodesy.points._Array2LatLon.shape\tpygeodesy.points._Array2LatLon-class.html#shape\npygeodesy.points._Basequence._find\tpygeodesy.points._Basequence-class.html#_find\npygeodesy.points._Array2LatLon._ilon\tpygeodesy.points._Array2LatLon-class.html#_ilon\npygeodesy.points._Basequence._epsilon\tpygeodesy.points._Basequence-class.html#_epsilon\npygeodesy.points._Array2LatLon.find\tpygeodesy.points._Array2LatLon-class.html#find\npygeodesy.points._Array2LatLon.__init__\tpygeodesy.points._Array2LatLon-class.html#__init__\npygeodesy.points._Basequence._rfind\tpygeodesy.points._Basequence-class.html#_rfind\npygeodesy.points._Array2LatLon.index\tpygeodesy.points._Array2LatLon-class.html#index\npygeodesy.points._Array2LatLon._ilat\tpygeodesy.points._Array2LatLon-class.html#_ilat\npygeodesy.points._Basequence.isPoints2\tpygeodesy.points._Basequence-class.html#isPoints2\npygeodesy.points._Array2LatLon.__contains__\tpygeodesy.points._Array2LatLon-class.html#__contains__\npygeodesy.points._Basequence._range\tpygeodesy.points._Basequence-class.html#_range\npygeodesy.points._Basequence._contains\tpygeodesy.points._Basequence-class.html#_contains\npygeodesy.points._Array2LatLon.__abstractmethods__\tpygeodesy.points._Array2LatLon-class.html#__abstractmethods__\npygeodesy.points._Array2LatLon.findall\tpygeodesy.points._Array2LatLon-class.html#findall\npygeodesy.points._Basequence._getitem\tpygeodesy.points._Basequence-class.html#_getitem\npygeodesy.points._Basequence.dup\tpygeodesy.points._Basequence-class.html#dup\npygeodesy.points._Array2LatLon._array\tpygeodesy.points._Array2LatLon-class.html#_array\npygeodesy.points._Array2LatLon.__len__\tpygeodesy.points._Array2LatLon-class.html#__len__\npygeodesy.points._Basequence._iter\tpygeodesy.points._Basequence-class.html#_iter\npygeodesy.points._Array2LatLon.__getitem__\tpygeodesy.points._Array2LatLon-class.html#__getitem__\npygeodesy.points._Basequence.epsilon\tpygeodesy.points._Basequence-class.html#epsilon\npygeodesy.points._Basequence._count\tpygeodesy.points._Basequence-class.html#_count\npygeodesy.points._Array2LatLon.__iter__\tpygeodesy.points._Array2LatLon-class.html#__iter__\npygeodesy.points._Array2LatLon.ilon\tpygeodesy.points._Array2LatLon-class.html#ilon\npygeodesy.points._Basequence.copy\tpygeodesy.points._Basequence-class.html#copy\npygeodesy.points._Array2LatLon.ilat\tpygeodesy.points._Array2LatLon-class.html#ilat\npygeodesy.points._Array2LatLon.count\tpygeodesy.points._Array2LatLon-class.html#count\npygeodesy.points._Array2LatLon.__reversed__\tpygeodesy.points._Array2LatLon-class.html#__reversed__\npygeodesy.points._Basequence.isTuple2\tpygeodesy.points._Basequence-class.html#isTuple2\npygeodesy.points._Basequence._index\tpygeodesy.points._Basequence-class.html#_index\npygeodesy.points._Array2LatLon._findall\tpygeodesy.points._Array2LatLon-class.html#_findall\npygeodesy.points._Array2LatLon._slicekwds\tpygeodesy.points._Array2LatLon-class.html#_slicekwds\npygeodesy.points._Array2LatLon.rfind\tpygeodesy.points._Array2LatLon-class.html#rfind\npygeodesy.points._Basequence._repr\tpygeodesy.points._Basequence-class.html#_repr\npygeodesy.points._Basequence._abc_cache\tpygeodesy.points._Basequence-class.html#_abc_cache\npygeodesy.points._Array2LatLon.__repr__\tpygeodesy.points._Array2LatLon-class.html#__repr__\npygeodesy.points._Basequence.isNumpy2\tpygeodesy.points._Basequence-class.html#isNumpy2\npygeodesy.points._Array2LatLon._LatLon\tpygeodesy.points.LatLon_-class.html\npygeodesy.points._Basequence._abc_registry\tpygeodesy.points._Basequence-class.html#_abc_registry\npygeodesy.points._Basequence._reversed\tpygeodesy.points._Basequence-class.html#_reversed\npygeodesy.points._Array2LatLon._subset\tpygeodesy.points._Array2LatLon-class.html#_subset\npygeodesy.points._Basequence\tpygeodesy.points._Basequence-class.html\n_abcoll.Sized.__metaclass__\tabc.ABCMeta-class.html\npygeodesy.points._Basequence._itemname\tpygeodesy.points._Basequence-class.html#_itemname\npygeodesy.points._Basequence.point\tpygeodesy.points._Basequence-class.html#point\npygeodesy.points._Basequence._find\tpygeodesy.points._Basequence-class.html#_find\npygeodesy.points._Basequence._repr\tpygeodesy.points._Basequence-class.html#_repr\npygeodesy.points._Basequence._rfind\tpygeodesy.points._Basequence-class.html#_rfind\npygeodesy.points._Basequence._range\tpygeodesy.points._Basequence-class.html#_range\npygeodesy.points._Basequence._contains\tpygeodesy.points._Basequence-class.html#_contains\npygeodesy.points._Basequence._getitem\tpygeodesy.points._Basequence-class.html#_getitem\npygeodesy.points._Basequence.dup\tpygeodesy.points._Basequence-class.html#dup\npygeodesy.points._Basequence._array\tpygeodesy.points._Basequence-class.html#_array\npygeodesy.points._Basequence._iter\tpygeodesy.points._Basequence-class.html#_iter\npygeodesy.points._Basequence.epsilon\tpygeodesy.points._Basequence-class.html#epsilon\npygeodesy.points._Basequence.copy\tpygeodesy.points._Basequence-class.html#copy\npygeodesy.points._Basequence.isPoints2\tpygeodesy.points._Basequence-class.html#isPoints2\npygeodesy.points._Basequence._reversed\tpygeodesy.points._Basequence-class.html#_reversed\npygeodesy.points._Basequence._count\tpygeodesy.points._Basequence-class.html#_count\npygeodesy.points._Basequence.isTuple2\tpygeodesy.points._Basequence-class.html#isTuple2\npygeodesy.points._Basequence._index\tpygeodesy.points._Basequence-class.html#_index\npygeodesy.points._Basequence._findall\tpygeodesy.points._Basequence-class.html#_findall\npygeodesy.points._Basequence._slicekwds\tpygeodesy.points._Basequence-class.html#_slicekwds\npygeodesy.points._Basequence._epsilon\tpygeodesy.points._Basequence-class.html#_epsilon\npygeodesy.points._Basequence._abc_cache\tpygeodesy.points._Basequence-class.html#_abc_cache\npygeodesy.points._Basequence.isNumpy2\tpygeodesy.points._Basequence-class.html#isNumpy2\npygeodesy.points._Basequence._abc_registry\tpygeodesy.points._Basequence-class.html#_abc_registry\npygeodesy.props.DeprecationWarnings\tpygeodesy.props.DeprecationWarnings-class.html\npygeodesy.props.DeprecationWarnings._Fmt\tpygeodesy.props.DeprecationWarnings-class.html#_Fmt\npygeodesy.props.DeprecationWarnings._warn\tpygeodesy.props.DeprecationWarnings-class.html#_warn\npygeodesy.props.DeprecationWarnings.Warnings\tpygeodesy.props.DeprecationWarnings-class.html#Warnings\npygeodesy.props.DeprecationWarnings._stacklevel3\tpygeodesy.props.DeprecationWarnings-class.html#_stacklevel3\npygeodesy.props.DeprecationWarnings._Warnings\tpygeodesy.props.DeprecationWarnings-class.html#_Warnings\npygeodesy.props.DeprecationWarnings.__call__\tpygeodesy.props.DeprecationWarnings-class.html#__call__\npygeodesy.props.DeprecationWarnings.throw\tpygeodesy.props.DeprecationWarnings-class.html#throw\npygeodesy.props.Property\tpygeodesy.props.Property-class.html\npygeodesy.props.Property.__init__\tpygeodesy.props.Property-class.html#__init__\npygeodesy.props.Property.setter\tpygeodesy.props.Property-class.html#setter\npygeodesy.props.Property.setter_\tpygeodesy.props.Property-class.html#setter_\npygeodesy.props.Property_RO.__get__\tpygeodesy.props.Property_RO-class.html#__get__\npygeodesy.props.Property._setters\tpygeodesy.props.Property-class.html#_setters\npygeodesy.props.Property_RO\tpygeodesy.props.Property_RO-class.html\npygeodesy.props.Property_RO.__init__\tpygeodesy.props.Property_RO-class.html#__init__\npygeodesy.props.Property_RO.__get__\tpygeodesy.props.Property_RO-class.html#__get__\npygeodesy.props.property_RO\tpygeodesy.props.property_RO-class.html\npygeodesy.props.property_RO._update\tpygeodesy.props.property_RO-class.html#_update\npygeodesy.props.property_RO.__init__\tpygeodesy.props.property_RO-class.html#__init__\npygeodesy.props.property_RO._uname\tpygeodesy.props.property_RO-class.html#_uname\npygeodesy.props.property_ROnce\tpygeodesy.props.property_ROnce-class.html\npygeodesy.props.property_ROnce._fget\tpygeodesy.props.property_ROnce-class.html#_fget\npygeodesy.props.property_ROver\tpygeodesy.props.property_ROver-class.html\npygeodesy.props.property_ROver._fget\tpygeodesy.props.property_ROver-class.html#_fget\npygeodesy.resections.Collins5Tuple\tpygeodesy.resections.Collins5Tuple-class.html\npygeodesy.named._NamedTuple.toRepr\tpygeodesy.named._NamedTuple-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._NamedTuple.toUnits\tpygeodesy.named._NamedTuple-class.html#toUnits\npygeodesy.named._NamedTuple._validate\tpygeodesy.named._NamedTuple-class.html#_validate\npygeodesy.named._NamedTuple.__str__\tpygeodesy.named._NamedTuple-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._NamedTuple._DOT_\tpygeodesy.named._NamedTuple-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._NamedTuple.reUnit\tpygeodesy.named._NamedTuple-class.html#reUnit\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.resections.Collins5Tuple._Names_\tpygeodesy.resections.Collins5Tuple-class.html#_Names_\npygeodesy.named._NamedTuple.__setattr__\tpygeodesy.named._NamedTuple-class.html#__setattr__\npygeodesy.named._NamedTuple.__new__\tpygeodesy.named._NamedTuple-class.html#__new__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._NamedTuple._validated\tpygeodesy.named._NamedTuple-class.html#_validated\npygeodesy.named._NamedTuple.__getattr__\tpygeodesy.named._NamedTuple-class.html#__getattr__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._NamedTuple._xtend\tpygeodesy.named._NamedTuple-class.html#_xtend\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._NamedTuple.dup\tpygeodesy.named._NamedTuple-class.html#dup\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedTuple.toStr\tpygeodesy.named._NamedTuple-class.html#toStr\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedTuple.units\tpygeodesy.named._NamedTuple-class.html#units\npygeodesy.named._NamedTuple.iterunits\tpygeodesy.named._NamedTuple-class.html#iterunits\npygeodesy.named._NamedTuple.iteritems\tpygeodesy.named._NamedTuple-class.html#iteritems\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._NamedTuple.items\tpygeodesy.named._NamedTuple-class.html#items\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedTuple.__delattr__\tpygeodesy.named._NamedTuple-class.html#__delattr__\npygeodesy.named._NamedTuple.__repr__\tpygeodesy.named._NamedTuple-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._NamedTuple.__hash__\tpygeodesy.named._NamedTuple-class.html#__hash__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.resections.Collins5Tuple._Units_\tpygeodesy.resections.Collins5Tuple-class.html#_Units_\npygeodesy.resections.ResectionError\tpygeodesy.resections.ResectionError-class.html\npygeodesy.resections.Survey3Tuple\tpygeodesy.resections.Survey3Tuple-class.html\npygeodesy.named._NamedTuple.toRepr\tpygeodesy.named._NamedTuple-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._NamedTuple.toUnits\tpygeodesy.named._NamedTuple-class.html#toUnits\npygeodesy.named._NamedTuple._validate\tpygeodesy.named._NamedTuple-class.html#_validate\npygeodesy.named._NamedTuple.__str__\tpygeodesy.named._NamedTuple-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._NamedTuple._DOT_\tpygeodesy.named._NamedTuple-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._NamedTuple.reUnit\tpygeodesy.named._NamedTuple-class.html#reUnit\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.resections.Survey3Tuple._Names_\tpygeodesy.resections.Survey3Tuple-class.html#_Names_\npygeodesy.named._NamedTuple.__setattr__\tpygeodesy.named._NamedTuple-class.html#__setattr__\npygeodesy.named._NamedTuple.__new__\tpygeodesy.named._NamedTuple-class.html#__new__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._NamedTuple._validated\tpygeodesy.named._NamedTuple-class.html#_validated\npygeodesy.named._NamedTuple.__getattr__\tpygeodesy.named._NamedTuple-class.html#__getattr__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._NamedTuple._xtend\tpygeodesy.named._NamedTuple-class.html#_xtend\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._NamedTuple.dup\tpygeodesy.named._NamedTuple-class.html#dup\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedTuple.toStr\tpygeodesy.named._NamedTuple-class.html#toStr\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedTuple.units\tpygeodesy.named._NamedTuple-class.html#units\npygeodesy.named._NamedTuple.iterunits\tpygeodesy.named._NamedTuple-class.html#iterunits\npygeodesy.named._NamedTuple.iteritems\tpygeodesy.named._NamedTuple-class.html#iteritems\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._NamedTuple.items\tpygeodesy.named._NamedTuple-class.html#items\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedTuple.__delattr__\tpygeodesy.named._NamedTuple-class.html#__delattr__\npygeodesy.named._NamedTuple.__repr__\tpygeodesy.named._NamedTuple-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._NamedTuple.__hash__\tpygeodesy.named._NamedTuple-class.html#__hash__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.resections.Survey3Tuple._Units_\tpygeodesy.resections.Survey3Tuple-class.html#_Units_\npygeodesy.resections.Tienstra7Tuple\tpygeodesy.resections.Tienstra7Tuple-class.html\npygeodesy.named._NamedTuple.toRepr\tpygeodesy.named._NamedTuple-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._NamedTuple.toUnits\tpygeodesy.named._NamedTuple-class.html#toUnits\npygeodesy.named._NamedTuple._validate\tpygeodesy.named._NamedTuple-class.html#_validate\npygeodesy.named._NamedTuple.__str__\tpygeodesy.named._NamedTuple-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._NamedTuple._DOT_\tpygeodesy.named._NamedTuple-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._NamedTuple.reUnit\tpygeodesy.named._NamedTuple-class.html#reUnit\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.resections.Tienstra7Tuple._Names_\tpygeodesy.resections.Tienstra7Tuple-class.html#_Names_\npygeodesy.named._NamedTuple.__setattr__\tpygeodesy.named._NamedTuple-class.html#__setattr__\npygeodesy.named._NamedTuple.__new__\tpygeodesy.named._NamedTuple-class.html#__new__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._NamedTuple._validated\tpygeodesy.named._NamedTuple-class.html#_validated\npygeodesy.named._NamedTuple.__getattr__\tpygeodesy.named._NamedTuple-class.html#__getattr__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._NamedTuple._xtend\tpygeodesy.named._NamedTuple-class.html#_xtend\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._NamedTuple.dup\tpygeodesy.named._NamedTuple-class.html#dup\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedTuple.toStr\tpygeodesy.named._NamedTuple-class.html#toStr\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedTuple.units\tpygeodesy.named._NamedTuple-class.html#units\npygeodesy.named._NamedTuple.iterunits\tpygeodesy.named._NamedTuple-class.html#iterunits\npygeodesy.named._NamedTuple.iteritems\tpygeodesy.named._NamedTuple-class.html#iteritems\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._NamedTuple.items\tpygeodesy.named._NamedTuple-class.html#items\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedTuple.__delattr__\tpygeodesy.named._NamedTuple-class.html#__delattr__\npygeodesy.named._NamedTuple.__repr__\tpygeodesy.named._NamedTuple-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._NamedTuple.__hash__\tpygeodesy.named._NamedTuple-class.html#__hash__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.resections.Tienstra7Tuple._Units_\tpygeodesy.resections.Tienstra7Tuple-class.html#_Units_\npygeodesy.resections.TriAngle5Tuple\tpygeodesy.resections.TriAngle5Tuple-class.html\npygeodesy.named._NamedTuple.toRepr\tpygeodesy.named._NamedTuple-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._NamedTuple.toUnits\tpygeodesy.named._NamedTuple-class.html#toUnits\npygeodesy.named._NamedTuple._validate\tpygeodesy.named._NamedTuple-class.html#_validate\npygeodesy.named._NamedTuple.__str__\tpygeodesy.named._NamedTuple-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._NamedTuple._DOT_\tpygeodesy.named._NamedTuple-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._NamedTuple.reUnit\tpygeodesy.named._NamedTuple-class.html#reUnit\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.resections.TriAngle5Tuple._Names_\tpygeodesy.resections.TriAngle5Tuple-class.html#_Names_\npygeodesy.named._NamedTuple.__setattr__\tpygeodesy.named._NamedTuple-class.html#__setattr__\npygeodesy.named._NamedTuple.__new__\tpygeodesy.named._NamedTuple-class.html#__new__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._NamedTuple._validated\tpygeodesy.named._NamedTuple-class.html#_validated\npygeodesy.named._NamedTuple.__getattr__\tpygeodesy.named._NamedTuple-class.html#__getattr__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._NamedTuple._xtend\tpygeodesy.named._NamedTuple-class.html#_xtend\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._NamedTuple.dup\tpygeodesy.named._NamedTuple-class.html#dup\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedTuple.toStr\tpygeodesy.named._NamedTuple-class.html#toStr\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedTuple.units\tpygeodesy.named._NamedTuple-class.html#units\npygeodesy.named._NamedTuple.iterunits\tpygeodesy.named._NamedTuple-class.html#iterunits\npygeodesy.named._NamedTuple.iteritems\tpygeodesy.named._NamedTuple-class.html#iteritems\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._NamedTuple.items\tpygeodesy.named._NamedTuple-class.html#items\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedTuple.__delattr__\tpygeodesy.named._NamedTuple-class.html#__delattr__\npygeodesy.named._NamedTuple.__repr__\tpygeodesy.named._NamedTuple-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._NamedTuple.__hash__\tpygeodesy.named._NamedTuple-class.html#__hash__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.resections.TriAngle5Tuple._Units_\tpygeodesy.resections.TriAngle5Tuple-class.html#_Units_\npygeodesy.resections.TriSide2Tuple\tpygeodesy.resections.TriSide2Tuple-class.html\npygeodesy.named._NamedTuple.toRepr\tpygeodesy.named._NamedTuple-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._NamedTuple.toUnits\tpygeodesy.named._NamedTuple-class.html#toUnits\npygeodesy.named._NamedTuple._validate\tpygeodesy.named._NamedTuple-class.html#_validate\npygeodesy.named._NamedTuple.__str__\tpygeodesy.named._NamedTuple-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._NamedTuple._DOT_\tpygeodesy.named._NamedTuple-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._NamedTuple.reUnit\tpygeodesy.named._NamedTuple-class.html#reUnit\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.resections.TriSide2Tuple._Names_\tpygeodesy.resections.TriSide2Tuple-class.html#_Names_\npygeodesy.named._NamedTuple.__setattr__\tpygeodesy.named._NamedTuple-class.html#__setattr__\npygeodesy.named._NamedTuple.__new__\tpygeodesy.named._NamedTuple-class.html#__new__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._NamedTuple._validated\tpygeodesy.named._NamedTuple-class.html#_validated\npygeodesy.named._NamedTuple.__getattr__\tpygeodesy.named._NamedTuple-class.html#__getattr__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._NamedTuple._xtend\tpygeodesy.named._NamedTuple-class.html#_xtend\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._NamedTuple.dup\tpygeodesy.named._NamedTuple-class.html#dup\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedTuple.toStr\tpygeodesy.named._NamedTuple-class.html#toStr\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedTuple.units\tpygeodesy.named._NamedTuple-class.html#units\npygeodesy.named._NamedTuple.iterunits\tpygeodesy.named._NamedTuple-class.html#iterunits\npygeodesy.named._NamedTuple.iteritems\tpygeodesy.named._NamedTuple-class.html#iteritems\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._NamedTuple.items\tpygeodesy.named._NamedTuple-class.html#items\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedTuple.__delattr__\tpygeodesy.named._NamedTuple-class.html#__delattr__\npygeodesy.named._NamedTuple.__repr__\tpygeodesy.named._NamedTuple-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._NamedTuple.__hash__\tpygeodesy.named._NamedTuple-class.html#__hash__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.resections.TriSide2Tuple._Units_\tpygeodesy.resections.TriSide2Tuple-class.html#_Units_\npygeodesy.resections.TriSide4Tuple\tpygeodesy.resections.TriSide4Tuple-class.html\npygeodesy.named._NamedTuple.toRepr\tpygeodesy.named._NamedTuple-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._NamedTuple.toUnits\tpygeodesy.named._NamedTuple-class.html#toUnits\npygeodesy.named._NamedTuple._validate\tpygeodesy.named._NamedTuple-class.html#_validate\npygeodesy.named._NamedTuple.__str__\tpygeodesy.named._NamedTuple-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._NamedTuple._DOT_\tpygeodesy.named._NamedTuple-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._NamedTuple.reUnit\tpygeodesy.named._NamedTuple-class.html#reUnit\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.resections.TriSide4Tuple._Names_\tpygeodesy.resections.TriSide4Tuple-class.html#_Names_\npygeodesy.named._NamedTuple.__setattr__\tpygeodesy.named._NamedTuple-class.html#__setattr__\npygeodesy.named._NamedTuple.__new__\tpygeodesy.named._NamedTuple-class.html#__new__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._NamedTuple._validated\tpygeodesy.named._NamedTuple-class.html#_validated\npygeodesy.named._NamedTuple.__getattr__\tpygeodesy.named._NamedTuple-class.html#__getattr__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._NamedTuple._xtend\tpygeodesy.named._NamedTuple-class.html#_xtend\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._NamedTuple.dup\tpygeodesy.named._NamedTuple-class.html#dup\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedTuple.toStr\tpygeodesy.named._NamedTuple-class.html#toStr\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedTuple.units\tpygeodesy.named._NamedTuple-class.html#units\npygeodesy.named._NamedTuple.iterunits\tpygeodesy.named._NamedTuple-class.html#iterunits\npygeodesy.named._NamedTuple.iteritems\tpygeodesy.named._NamedTuple-class.html#iteritems\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._NamedTuple.items\tpygeodesy.named._NamedTuple-class.html#items\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedTuple.__delattr__\tpygeodesy.named._NamedTuple-class.html#__delattr__\npygeodesy.named._NamedTuple.__repr__\tpygeodesy.named._NamedTuple-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._NamedTuple.__hash__\tpygeodesy.named._NamedTuple-class.html#__hash__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.resections.TriSide4Tuple._Units_\tpygeodesy.resections.TriSide4Tuple-class.html#_Units_\npygeodesy.rhumb.aux_.RhumbAux\tpygeodesy.rhumb.aux_.RhumbAux-class.html\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.rhumb.bases.RhumbBase.Inverse\tpygeodesy.rhumb.bases.RhumbBase-class.html#Inverse\npygeodesy.named._NamedBase.__str__\tpygeodesy.named._NamedBase-class.html#__str__\npygeodesy.rhumb.aux_.RhumbAux._c2\tpygeodesy.rhumb.aux_.RhumbAux-class.html#_c2\npygeodesy.rhumb.bases.RhumbBase.datum\tpygeodesy.rhumb.bases.RhumbBase-class.html#datum\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.rhumb.aux_.RhumbAux._rrm\tpygeodesy.rhumb.aux_.RhumbAux-class.html#_rrm\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.karney._CapsBase.NONFINITONAN\tpygeodesy.karney._CapsBase-class.html#NONFINITONAN\npygeodesy.rhumb.aux_.RhumbAux._latPhi2\tpygeodesy.rhumb.aux_.RhumbAux-class.html#_latPhi2\npygeodesy.rhumb.bases.RhumbBase.f_max\tpygeodesy.rhumb.bases.RhumbBase-class.html#f_max\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.karney._CapsBase._debug\tpygeodesy.karney._CapsBase-class.html#_debug\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.rhumb.bases.RhumbBase._exact\tpygeodesy.rhumb.bases.RhumbBase-class.html#_exact\npygeodesy.rhumb.bases.RhumbBase.toStr\tpygeodesy.rhumb.bases.RhumbBase-class.html#toStr\npygeodesy.rhumb.bases.RhumbBase._datum\tpygeodesy.rhumb.bases.RhumbBase-class.html#_datum\npygeodesy.karney._CapsBase.LONGITUDE\tpygeodesy.karney._CapsBase-class.html#LONGITUDE\npygeodesy.karney._CapsBase.caps\tpygeodesy.karney._CapsBase-class.html#caps\npygeodesy.karney._CapsBase.STANDARD_LINE\tpygeodesy.karney._CapsBase-class.html#STANDARD_LINE\npygeodesy.rhumb.aux_.RhumbAux._RhumbLine\tpygeodesy.rhumb.aux_.RhumbLineAux-class.html\npygeodesy.rhumb.bases.RhumbBase._InverseLine\tpygeodesy.rhumb.bases.RhumbBase-class.html#_InverseLine\npygeodesy.rhumb.bases.RhumbBase.exact\tpygeodesy.rhumb.bases.RhumbBase-class.html#exact\npygeodesy.rhumb.bases.RhumbBase.RAorder\tpygeodesy.rhumb.bases.RhumbBase-class.html#RAorder\npygeodesy.rhumb.bases.RhumbBase.TMorder\tpygeodesy.rhumb.bases.RhumbBase-class.html#TMorder\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.karney._CapsBase._iter2tion\tpygeodesy.karney._CapsBase-class.html#_iter2tion\npygeodesy.rhumb.aux_.RhumbAux.areaux\tpygeodesy.rhumb.aux_.RhumbAux-class.html#areaux\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.karney._CapsBase.debug\tpygeodesy.karney._CapsBase-class.html#debug\npygeodesy.rhumb.bases.RhumbBase._DirectRhumb\tpygeodesy.rhumb.bases.RhumbBase-class.html#_DirectRhumb\npygeodesy.named._NamedBase.toRepr\tpygeodesy.named._NamedBase-class.html#toRepr\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.karney._CapsBase.EMPTY\tpygeodesy.karney._CapsBase-class.html#EMPTY\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.rhumb.aux_.RhumbAux._Inverse4\tpygeodesy.rhumb.aux_.RhumbAux-class.html#_Inverse4\npygeodesy.rhumb.aux_.RhumbAux._DMu_DPsi\tpygeodesy.rhumb.aux_.RhumbAux-class.html#_DMu_DPsi\npygeodesy.rhumb.bases.RhumbBase.flattening\tpygeodesy.rhumb.bases.RhumbBase-class.html#flattening\npygeodesy.rhumb.bases.RhumbBase.Line\tpygeodesy.rhumb.bases.RhumbBase-class.html#Line\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.rhumb.bases.RhumbBase.Direct8\tpygeodesy.rhumb.bases.RhumbBase-class.html#Direct8\npygeodesy.rhumb.aux_.RhumbAux._mpd\tpygeodesy.rhumb.aux_.RhumbAux-class.html#_mpd\npygeodesy.rhumb.bases.RhumbBase._Inverse\tpygeodesy.rhumb.bases.RhumbBase-class.html#_Inverse\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.rhumb.bases.RhumbBase.ArcDirect\tpygeodesy.rhumb.bases.RhumbBase-class.html#ArcDirect\npygeodesy.rhumb.aux_.RhumbAux._mpr\tpygeodesy.rhumb.aux_.RhumbAux-class.html#_mpr\npygeodesy.karney._CapsBase.AZIMUTH\tpygeodesy.karney._CapsBase-class.html#AZIMUTH\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.karney._CapsBase.DISTANCE\tpygeodesy.karney._CapsBase-class.html#DISTANCE\npygeodesy.rhumb.bases.RhumbBase.DirectLine\tpygeodesy.rhumb.bases.RhumbBase-class.html#DirectLine\npygeodesy.rhumb.bases.RhumbBase.ellipsoid\tpygeodesy.rhumb.bases.RhumbBase-class.html#ellipsoid\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.rhumb.aux_.RhumbAux._auxD\tpygeodesy.rhumb.aux_.RhumbAux-class.html#_auxD\npygeodesy.named._NamedBase.__repr__\tpygeodesy.named._NamedBase-class.html#__repr__\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.rhumb.bases.RhumbBase._mTM\tpygeodesy.rhumb.bases.RhumbBase-class.html#_mTM\npygeodesy.named._NamedBase.others\tpygeodesy.named._NamedBase-class.html#others\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.rhumb.bases.RhumbBase.equatoradius\tpygeodesy.rhumb.bases.RhumbBase-class.html#equatoradius\npygeodesy.karney._CapsBase.AREA\tpygeodesy.karney._CapsBase-class.html#AREA\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.rhumb.bases.RhumbBase.Inverse8\tpygeodesy.rhumb.bases.RhumbBase-class.html#Inverse8\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.rhumb.bases.RhumbBase._Direct\tpygeodesy.rhumb.bases.RhumbBase-class.html#_Direct\npygeodesy.karney._CapsBase.STANDARD\tpygeodesy.karney._CapsBase-class.html#STANDARD\npygeodesy.rhumb.bases.RhumbBase.InverseLine\tpygeodesy.rhumb.bases.RhumbBase-class.html#InverseLine\npygeodesy.karney._CapsBase._caps\tpygeodesy.karney._CapsBase-class.html#_caps\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.karney._CapsBase.ALL\tpygeodesy.karney._CapsBase-class.html#ALL\npygeodesy.rhumb.bases.RhumbBase.b\tpygeodesy.rhumb.bases.RhumbBase-class.html#b\npygeodesy.rhumb.bases.RhumbBase.f\tpygeodesy.rhumb.bases.RhumbBase-class.html#f\npygeodesy.karney._CapsBase.DISTANCE_IN\tpygeodesy.karney._CapsBase-class.html#DISTANCE_IN\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.rhumb.bases.RhumbBase._DirectLine\tpygeodesy.rhumb.bases.RhumbBase-class.html#_DirectLine\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.karney._CapsBase.GEODESICSCALE\tpygeodesy.karney._CapsBase-class.html#GEODESICSCALE\npygeodesy.karney._CapsBase.LINE_OFF\tpygeodesy.karney._CapsBase-class.html#LINE_OFF\npygeodesy.rhumb.aux_.RhumbAux.__init__\tpygeodesy.rhumb.aux_.RhumbAux-class.html#__init__\npygeodesy.rhumb.aux_.RhumbAux._psiChiPhi3\tpygeodesy.rhumb.aux_.RhumbAux-class.html#_psiChiPhi3\npygeodesy.rhumb.bases.RhumbBase._exactest\tpygeodesy.rhumb.bases.RhumbBase-class.html#_exactest\npygeodesy.karney._CapsBase.LINE_CAPS\tpygeodesy.karney._CapsBase-class.html#LINE_CAPS\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.rhumb.aux_.RhumbAux._RA\tpygeodesy.rhumb.aux_.RhumbAux-class.html#_RA\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.rhumb.bases.RhumbBase._f_max\tpygeodesy.rhumb.bases.RhumbBase-class.html#_f_max\npygeodesy.karney._CapsBase.LONG_UNROLL\tpygeodesy.karney._CapsBase-class.html#LONG_UNROLL\npygeodesy.rhumb.aux_.RhumbAux._S12d\tpygeodesy.rhumb.aux_.RhumbAux-class.html#_S12d\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.rhumb.bases.RhumbBase.a\tpygeodesy.rhumb.bases.RhumbBase-class.html#a\npygeodesy.karney._CapsBase.REDUCEDLENGTH\tpygeodesy.karney._CapsBase-class.html#REDUCEDLENGTH\npygeodesy.rhumb.bases.RhumbBase.polaradius\tpygeodesy.rhumb.bases.RhumbBase-class.html#polaradius\npygeodesy.rhumb.bases.RhumbBase.Direct\tpygeodesy.rhumb.bases.RhumbBase-class.html#Direct\npygeodesy.karney._CapsBase.LATITUDE\tpygeodesy.karney._CapsBase-class.html#LATITUDE\npygeodesy.karney._CapsBase.caps_\tpygeodesy.karney._CapsBase-class.html#caps_\npygeodesy.rhumb.aux_.RhumbLineAux\tpygeodesy.rhumb.aux_.RhumbLineAux-class.html\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.rhumb.bases.RhumbLineBase._calp\tpygeodesy.rhumb.bases.RhumbLineBase-class.html#_calp\npygeodesy.rhumb.bases.RhumbLineBase.Inverse\tpygeodesy.rhumb.bases.RhumbLineBase-class.html#Inverse\npygeodesy.named._NamedBase.__str__\tpygeodesy.named._NamedBase-class.html#__str__\npygeodesy.rhumb.bases.RhumbLineBase.datum\tpygeodesy.rhumb.bases.RhumbLineBase-class.html#datum\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.karney._CapsBase.NONFINITONAN\tpygeodesy.karney._CapsBase-class.html#NONFINITONAN\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.rhumb.bases.RhumbLineBase.ellipsoid\tpygeodesy.rhumb.bases.RhumbLineBase-class.html#ellipsoid\npygeodesy.rhumb.aux_.RhumbLineAux._Position4\tpygeodesy.rhumb.aux_.RhumbLineAux-class.html#_Position4\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.rhumb.bases.RhumbLineBase.distance2\tpygeodesy.rhumb.bases.RhumbLineBase-class.html#distance2\npygeodesy.rhumb.bases.RhumbLineBase.toStr\tpygeodesy.rhumb.bases.RhumbLineBase-class.html#toStr\npygeodesy.karney._CapsBase.LONGITUDE\tpygeodesy.karney._CapsBase-class.html#LONGITUDE\npygeodesy.karney._CapsBase.caps\tpygeodesy.karney._CapsBase-class.html#caps\npygeodesy.karney._CapsBase.STANDARD_LINE\tpygeodesy.karney._CapsBase-class.html#STANDARD_LINE\npygeodesy.rhumb.bases.RhumbLineBase.Intersecant2\tpygeodesy.rhumb.bases.RhumbLineBase-class.html#Intersecant2\npygeodesy.rhumb.bases.RhumbLineBase.Position\tpygeodesy.rhumb.bases.RhumbLineBase-class.html#Position\npygeodesy.rhumb.bases.RhumbLineBase.exact\tpygeodesy.rhumb.bases.RhumbLineBase-class.html#exact\npygeodesy.rhumb.bases.RhumbLineBase.TMorder\tpygeodesy.rhumb.bases.RhumbLineBase-class.html#TMorder\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.rhumb.bases.RhumbLineBase.lat1\tpygeodesy.rhumb.bases.RhumbLineBase-class.html#lat1\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.karney._CapsBase._iter2tion\tpygeodesy.karney._CapsBase-class.html#_iter2tion\npygeodesy.rhumb.aux_.RhumbLineAux._Rhumb\tpygeodesy.rhumb.aux_.RhumbAux-class.html\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.karney._CapsBase.debug\tpygeodesy.karney._CapsBase-class.html#debug\npygeodesy.named._NamedBase.toRepr\tpygeodesy.named._NamedBase-class.html#toRepr\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.karney._CapsBase.EMPTY\tpygeodesy.karney._CapsBase-class.html#EMPTY\npygeodesy.karney._CapsBase.LONG_UNROLL\tpygeodesy.karney._CapsBase-class.html#LONG_UNROLL\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.rhumb.aux_.RhumbLineAux._Phi1\tpygeodesy.rhumb.aux_.RhumbLineAux-class.html#_Phi1\npygeodesy.rhumb.bases.RhumbLineBase.m2degrees\tpygeodesy.rhumb.bases.RhumbLineBase-class.html#m2degrees\npygeodesy.rhumb.bases.RhumbLineBase.Intersection\tpygeodesy.rhumb.bases.RhumbLineBase-class.html#Intersection\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.rhumb.bases.RhumbLineBase._talp\tpygeodesy.rhumb.bases.RhumbLineBase-class.html#_talp\npygeodesy.rhumb.bases.RhumbLineBase.nearestOn4\tpygeodesy.rhumb.bases.RhumbLineBase-class.html#nearestOn4\npygeodesy.named._NamedBase.others\tpygeodesy.named._NamedBase-class.html#others\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.karney._CapsBase.DISTANCE\tpygeodesy.karney._CapsBase-class.html#DISTANCE\npygeodesy.karney._CapsBase._debug\tpygeodesy.karney._CapsBase-class.html#_debug\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.rhumb.bases.RhumbLineBase._salp\tpygeodesy.rhumb.bases.RhumbLineBase-class.html#_salp\npygeodesy.named._NamedBase.__repr__\tpygeodesy.named._NamedBase-class.html#__repr__\npygeodesy.rhumb.bases.RhumbLineBase.intersection2\tpygeodesy.rhumb.bases.RhumbLineBase-class.html#intersection2\npygeodesy.rhumb.bases.RhumbLineBase._Position\tpygeodesy.rhumb.bases.RhumbLineBase-class.html#_Position\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.karney._CapsBase.AZIMUTH\tpygeodesy.karney._CapsBase-class.html#AZIMUTH\npygeodesy.rhumb.bases.RhumbLineBase.azi12_sincos2\tpygeodesy.rhumb.bases.RhumbLineBase-class.html#azi12_sincos2\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.karney._CapsBase.AREA\tpygeodesy.karney._CapsBase-class.html#AREA\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.rhumb.bases.RhumbLineBase.latlon1\tpygeodesy.rhumb.bases.RhumbLineBase-class.html#latlon1\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.rhumb.bases.RhumbLineBase.__del__\tpygeodesy.rhumb.bases.RhumbLineBase-class.html#__del__\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.karney._CapsBase.STANDARD\tpygeodesy.karney._CapsBase-class.html#STANDARD\npygeodesy.rhumb.bases.RhumbLineBase.NearestOn\tpygeodesy.rhumb.bases.RhumbLineBase-class.html#NearestOn\npygeodesy.karney._CapsBase._caps\tpygeodesy.karney._CapsBase-class.html#_caps\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.rhumb.bases.RhumbLineBase._azi12\tpygeodesy.rhumb.bases.RhumbLineBase-class.html#_azi12\npygeodesy.karney._CapsBase.ALL\tpygeodesy.karney._CapsBase-class.html#ALL\npygeodesy.rhumb.bases.RhumbLineBase.degrees2m\tpygeodesy.rhumb.bases.RhumbLineBase-class.html#degrees2m\npygeodesy.rhumb.bases.RhumbLineBase.isLoxodrome\tpygeodesy.rhumb.bases.RhumbLineBase-class.html#isLoxodrome\npygeodesy.karney._CapsBase.DISTANCE_IN\tpygeodesy.karney._CapsBase-class.html#DISTANCE_IN\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.rhumb.bases.RhumbLineBase._xTM3d\tpygeodesy.rhumb.bases.RhumbLineBase-class.html#_xTM3d\npygeodesy.rhumb.bases.RhumbLineBase.lon1\tpygeodesy.rhumb.bases.RhumbLineBase-class.html#lon1\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.karney._CapsBase.GEODESICSCALE\tpygeodesy.karney._CapsBase-class.html#GEODESICSCALE\npygeodesy.rhumb.aux_.RhumbLineAux._Chi1\tpygeodesy.rhumb.aux_.RhumbLineAux-class.html#_Chi1\npygeodesy.rhumb.bases.RhumbLineBase.PlumbTo\tpygeodesy.rhumb.bases.RhumbLineBase-class.html#PlumbTo\npygeodesy.rhumb.bases.RhumbLineBase._rhumb\tpygeodesy.rhumb.bases.RhumbLineBase-class.html#_rhumb\npygeodesy.karney._CapsBase.LINE_OFF\tpygeodesy.karney._CapsBase-class.html#LINE_OFF\npygeodesy.rhumb.aux_.RhumbLineAux.__init__\tpygeodesy.rhumb.aux_.RhumbLineAux-class.html#__init__\npygeodesy.rhumb.bases.RhumbLineBase.rhumb\tpygeodesy.rhumb.bases.RhumbLineBase-class.html#rhumb\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.rhumb.bases.RhumbLineBase.azi12\tpygeodesy.rhumb.bases.RhumbLineBase-class.html#azi12\npygeodesy.rhumb.aux_.RhumbLineAux._mu2lat\tpygeodesy.rhumb.aux_.RhumbLineAux-class.html#_mu2lat\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.rhumb.aux_.RhumbLineAux._mu1\tpygeodesy.rhumb.aux_.RhumbLineAux-class.html#_mu1\npygeodesy.rhumb.bases.RhumbLineBase.xTM\tpygeodesy.rhumb.bases.RhumbLineBase-class.html#xTM\npygeodesy.karney._CapsBase.REDUCEDLENGTH\tpygeodesy.karney._CapsBase-class.html#REDUCEDLENGTH\npygeodesy.rhumb.bases.RhumbLineBase.ArcPosition\tpygeodesy.rhumb.bases.RhumbLineBase-class.html#ArcPosition\npygeodesy.karney._CapsBase.LINE_CAPS\tpygeodesy.karney._CapsBase-class.html#LINE_CAPS\npygeodesy.karney._CapsBase.LATITUDE\tpygeodesy.karney._CapsBase-class.html#LATITUDE\npygeodesy.karney._CapsBase.caps_\tpygeodesy.karney._CapsBase-class.html#caps_\npygeodesy.rhumb.bases.RhumbBase\tpygeodesy.rhumb.bases.RhumbBase-class.html\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.rhumb.bases.RhumbBase.Inverse\tpygeodesy.rhumb.bases.RhumbBase-class.html#Inverse\npygeodesy.named._NamedBase.__str__\tpygeodesy.named._NamedBase-class.html#__str__\npygeodesy.rhumb.bases.RhumbBase.datum\tpygeodesy.rhumb.bases.RhumbBase-class.html#datum\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.karney._CapsBase.NONFINITONAN\tpygeodesy.karney._CapsBase-class.html#NONFINITONAN\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.rhumb.bases.RhumbBase.f_max\tpygeodesy.rhumb.bases.RhumbBase-class.html#f_max\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.rhumb.bases.RhumbBase.ellipsoid\tpygeodesy.rhumb.bases.RhumbBase-class.html#ellipsoid\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.rhumb.bases.RhumbBase._exact\tpygeodesy.rhumb.bases.RhumbBase-class.html#_exact\npygeodesy.rhumb.bases.RhumbBase.toStr\tpygeodesy.rhumb.bases.RhumbBase-class.html#toStr\npygeodesy.rhumb.bases.RhumbBase._datum\tpygeodesy.rhumb.bases.RhumbBase-class.html#_datum\npygeodesy.karney._CapsBase.LONGITUDE\tpygeodesy.karney._CapsBase-class.html#LONGITUDE\npygeodesy.karney._CapsBase.caps\tpygeodesy.karney._CapsBase-class.html#caps\npygeodesy.karney._CapsBase.STANDARD_LINE\tpygeodesy.karney._CapsBase-class.html#STANDARD_LINE\npygeodesy.rhumb.bases.RhumbBase._RhumbLine\tpygeodesy.rhumb.bases.RhumbBase-class.html#_RhumbLine\npygeodesy.rhumb.bases.RhumbBase._InverseLine\tpygeodesy.rhumb.bases.RhumbBase-class.html#_InverseLine\npygeodesy.rhumb.bases.RhumbBase.exact\tpygeodesy.rhumb.bases.RhumbBase-class.html#exact\npygeodesy.rhumb.bases.RhumbBase.RAorder\tpygeodesy.rhumb.bases.RhumbBase-class.html#RAorder\npygeodesy.rhumb.bases.RhumbBase.TMorder\tpygeodesy.rhumb.bases.RhumbBase-class.html#TMorder\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.karney._CapsBase._iter2tion\tpygeodesy.karney._CapsBase-class.html#_iter2tion\npygeodesy.rhumb.bases.RhumbBase._DirectRhumb\tpygeodesy.rhumb.bases.RhumbBase-class.html#_DirectRhumb\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.karney._CapsBase.debug\tpygeodesy.karney._CapsBase-class.html#debug\npygeodesy.named._NamedBase.toRepr\tpygeodesy.named._NamedBase-class.html#toRepr\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.karney._CapsBase.EMPTY\tpygeodesy.karney._CapsBase-class.html#EMPTY\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.rhumb.bases.RhumbBase._Inverse4\tpygeodesy.rhumb.bases.RhumbBase-class.html#_Inverse4\npygeodesy.rhumb.bases.RhumbBase.flattening\tpygeodesy.rhumb.bases.RhumbBase-class.html#flattening\npygeodesy.rhumb.bases.RhumbBase.Line\tpygeodesy.rhumb.bases.RhumbBase-class.html#Line\npygeodesy.rhumb.bases.RhumbBase.Direct8\tpygeodesy.rhumb.bases.RhumbBase-class.html#Direct8\npygeodesy.rhumb.bases.RhumbBase._mpd\tpygeodesy.rhumb.bases.RhumbBase-class.html#_mpd\npygeodesy.rhumb.bases.RhumbBase._Inverse\tpygeodesy.rhumb.bases.RhumbBase-class.html#_Inverse\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.rhumb.bases.RhumbBase.ArcDirect\tpygeodesy.rhumb.bases.RhumbBase-class.html#ArcDirect\npygeodesy.karney._CapsBase.AZIMUTH\tpygeodesy.karney._CapsBase-class.html#AZIMUTH\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.karney._CapsBase.DISTANCE\tpygeodesy.karney._CapsBase-class.html#DISTANCE\npygeodesy.rhumb.bases.RhumbBase.DirectLine\tpygeodesy.rhumb.bases.RhumbBase-class.html#DirectLine\npygeodesy.karney._CapsBase._debug\tpygeodesy.karney._CapsBase-class.html#_debug\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._NamedBase.__repr__\tpygeodesy.named._NamedBase-class.html#__repr__\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.rhumb.bases.RhumbBase._mTM\tpygeodesy.rhumb.bases.RhumbBase-class.html#_mTM\npygeodesy.named._NamedBase.others\tpygeodesy.named._NamedBase-class.html#others\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.rhumb.bases.RhumbBase.equatoradius\tpygeodesy.rhumb.bases.RhumbBase-class.html#equatoradius\npygeodesy.karney._CapsBase.AREA\tpygeodesy.karney._CapsBase-class.html#AREA\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.rhumb.bases.RhumbBase.Inverse8\tpygeodesy.rhumb.bases.RhumbBase-class.html#Inverse8\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.rhumb.bases.RhumbBase._Direct\tpygeodesy.rhumb.bases.RhumbBase-class.html#_Direct\npygeodesy.karney._CapsBase.STANDARD\tpygeodesy.karney._CapsBase-class.html#STANDARD\npygeodesy.rhumb.bases.RhumbBase.InverseLine\tpygeodesy.rhumb.bases.RhumbBase-class.html#InverseLine\npygeodesy.karney._CapsBase._caps\tpygeodesy.karney._CapsBase-class.html#_caps\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.karney._CapsBase.ALL\tpygeodesy.karney._CapsBase-class.html#ALL\npygeodesy.rhumb.bases.RhumbBase.b\tpygeodesy.rhumb.bases.RhumbBase-class.html#b\npygeodesy.rhumb.bases.RhumbBase.f\tpygeodesy.rhumb.bases.RhumbBase-class.html#f\npygeodesy.karney._CapsBase.DISTANCE_IN\tpygeodesy.karney._CapsBase-class.html#DISTANCE_IN\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.rhumb.bases.RhumbBase._DirectLine\tpygeodesy.rhumb.bases.RhumbBase-class.html#_DirectLine\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.karney._CapsBase.GEODESICSCALE\tpygeodesy.karney._CapsBase-class.html#GEODESICSCALE\npygeodesy.karney._CapsBase.LINE_OFF\tpygeodesy.karney._CapsBase-class.html#LINE_OFF\npygeodesy.rhumb.bases.RhumbBase.__init__\tpygeodesy.rhumb.bases.RhumbBase-class.html#__init__\npygeodesy.rhumb.bases.RhumbBase._exactest\tpygeodesy.rhumb.bases.RhumbBase-class.html#_exactest\npygeodesy.karney._CapsBase.LINE_CAPS\tpygeodesy.karney._CapsBase-class.html#LINE_CAPS\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.rhumb.bases.RhumbBase._f_max\tpygeodesy.rhumb.bases.RhumbBase-class.html#_f_max\npygeodesy.karney._CapsBase.LONG_UNROLL\tpygeodesy.karney._CapsBase-class.html#LONG_UNROLL\npygeodesy.rhumb.bases.RhumbBase._S12d\tpygeodesy.rhumb.bases.RhumbBase-class.html#_S12d\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.rhumb.bases.RhumbBase.a\tpygeodesy.rhumb.bases.RhumbBase-class.html#a\npygeodesy.karney._CapsBase.REDUCEDLENGTH\tpygeodesy.karney._CapsBase-class.html#REDUCEDLENGTH\npygeodesy.rhumb.bases.RhumbBase.polaradius\tpygeodesy.rhumb.bases.RhumbBase-class.html#polaradius\npygeodesy.rhumb.bases.RhumbBase.Direct\tpygeodesy.rhumb.bases.RhumbBase-class.html#Direct\npygeodesy.karney._CapsBase.LATITUDE\tpygeodesy.karney._CapsBase-class.html#LATITUDE\npygeodesy.karney._CapsBase.caps_\tpygeodesy.karney._CapsBase-class.html#caps_\npygeodesy.rhumb.bases.RhumbLineBase\tpygeodesy.rhumb.bases.RhumbLineBase-class.html\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.rhumb.bases.RhumbLineBase._calp\tpygeodesy.rhumb.bases.RhumbLineBase-class.html#_calp\npygeodesy.rhumb.bases.RhumbLineBase.Inverse\tpygeodesy.rhumb.bases.RhumbLineBase-class.html#Inverse\npygeodesy.named._NamedBase.__str__\tpygeodesy.named._NamedBase-class.html#__str__\npygeodesy.rhumb.bases.RhumbLineBase.datum\tpygeodesy.rhumb.bases.RhumbLineBase-class.html#datum\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.karney._CapsBase.NONFINITONAN\tpygeodesy.karney._CapsBase-class.html#NONFINITONAN\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.rhumb.bases.RhumbLineBase.ellipsoid\tpygeodesy.rhumb.bases.RhumbLineBase-class.html#ellipsoid\npygeodesy.rhumb.bases.RhumbLineBase.exact\tpygeodesy.rhumb.bases.RhumbLineBase-class.html#exact\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.rhumb.bases.RhumbLineBase.distance2\tpygeodesy.rhumb.bases.RhumbLineBase-class.html#distance2\npygeodesy.rhumb.bases.RhumbLineBase.toStr\tpygeodesy.rhumb.bases.RhumbLineBase-class.html#toStr\npygeodesy.karney._CapsBase.LONGITUDE\tpygeodesy.karney._CapsBase-class.html#LONGITUDE\npygeodesy.karney._CapsBase.caps\tpygeodesy.karney._CapsBase-class.html#caps\npygeodesy.karney._CapsBase.STANDARD_LINE\tpygeodesy.karney._CapsBase-class.html#STANDARD_LINE\npygeodesy.rhumb.bases.RhumbLineBase.Intersecant2\tpygeodesy.rhumb.bases.RhumbLineBase-class.html#Intersecant2\npygeodesy.rhumb.bases.RhumbLineBase.Position\tpygeodesy.rhumb.bases.RhumbLineBase-class.html#Position\npygeodesy.rhumb.bases.RhumbLineBase._Position4\tpygeodesy.rhumb.bases.RhumbLineBase-class.html#_Position4\npygeodesy.rhumb.bases.RhumbLineBase.TMorder\tpygeodesy.rhumb.bases.RhumbLineBase-class.html#TMorder\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.rhumb.bases.RhumbLineBase.lat1\tpygeodesy.rhumb.bases.RhumbLineBase-class.html#lat1\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.karney._CapsBase._iter2tion\tpygeodesy.karney._CapsBase-class.html#_iter2tion\npygeodesy.rhumb.bases.RhumbLineBase._Rhumb\tpygeodesy.rhumb.bases.RhumbBase-class.html\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.karney._CapsBase.debug\tpygeodesy.karney._CapsBase-class.html#debug\npygeodesy.named._NamedBase.toRepr\tpygeodesy.named._NamedBase-class.html#toRepr\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.karney._CapsBase.EMPTY\tpygeodesy.karney._CapsBase-class.html#EMPTY\npygeodesy.karney._CapsBase.LONG_UNROLL\tpygeodesy.karney._CapsBase-class.html#LONG_UNROLL\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.rhumb.bases.RhumbLineBase.m2degrees\tpygeodesy.rhumb.bases.RhumbLineBase-class.html#m2degrees\npygeodesy.rhumb.bases.RhumbLineBase.Intersection\tpygeodesy.rhumb.bases.RhumbLineBase-class.html#Intersection\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.rhumb.bases.RhumbLineBase._talp\tpygeodesy.rhumb.bases.RhumbLineBase-class.html#_talp\npygeodesy.rhumb.bases.RhumbLineBase.nearestOn4\tpygeodesy.rhumb.bases.RhumbLineBase-class.html#nearestOn4\npygeodesy.named._NamedBase.others\tpygeodesy.named._NamedBase-class.html#others\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.karney._CapsBase.DISTANCE\tpygeodesy.karney._CapsBase-class.html#DISTANCE\npygeodesy.karney._CapsBase._debug\tpygeodesy.karney._CapsBase-class.html#_debug\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.rhumb.bases.RhumbLineBase._salp\tpygeodesy.rhumb.bases.RhumbLineBase-class.html#_salp\npygeodesy.named._NamedBase.__repr__\tpygeodesy.named._NamedBase-class.html#__repr__\npygeodesy.rhumb.bases.RhumbLineBase.xTM\tpygeodesy.rhumb.bases.RhumbLineBase-class.html#xTM\npygeodesy.rhumb.bases.RhumbLineBase._Position\tpygeodesy.rhumb.bases.RhumbLineBase-class.html#_Position\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.karney._CapsBase.AZIMUTH\tpygeodesy.karney._CapsBase-class.html#AZIMUTH\npygeodesy.rhumb.bases.RhumbLineBase.azi12_sincos2\tpygeodesy.rhumb.bases.RhumbLineBase-class.html#azi12_sincos2\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.karney._CapsBase.AREA\tpygeodesy.karney._CapsBase-class.html#AREA\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.rhumb.bases.RhumbLineBase.latlon1\tpygeodesy.rhumb.bases.RhumbLineBase-class.html#latlon1\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.rhumb.bases.RhumbLineBase.__del__\tpygeodesy.rhumb.bases.RhumbLineBase-class.html#__del__\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.karney._CapsBase.STANDARD\tpygeodesy.karney._CapsBase-class.html#STANDARD\npygeodesy.rhumb.bases.RhumbLineBase.NearestOn\tpygeodesy.rhumb.bases.RhumbLineBase-class.html#NearestOn\npygeodesy.karney._CapsBase._caps\tpygeodesy.karney._CapsBase-class.html#_caps\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.rhumb.bases.RhumbLineBase._azi12\tpygeodesy.rhumb.bases.RhumbLineBase-class.html#_azi12\npygeodesy.karney._CapsBase.ALL\tpygeodesy.karney._CapsBase-class.html#ALL\npygeodesy.rhumb.bases.RhumbLineBase.degrees2m\tpygeodesy.rhumb.bases.RhumbLineBase-class.html#degrees2m\npygeodesy.rhumb.bases.RhumbLineBase.isLoxodrome\tpygeodesy.rhumb.bases.RhumbLineBase-class.html#isLoxodrome\npygeodesy.karney._CapsBase.DISTANCE_IN\tpygeodesy.karney._CapsBase-class.html#DISTANCE_IN\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.rhumb.bases.RhumbLineBase._xTM3d\tpygeodesy.rhumb.bases.RhumbLineBase-class.html#_xTM3d\npygeodesy.rhumb.bases.RhumbLineBase.lon1\tpygeodesy.rhumb.bases.RhumbLineBase-class.html#lon1\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.karney._CapsBase.GEODESICSCALE\tpygeodesy.karney._CapsBase-class.html#GEODESICSCALE\npygeodesy.rhumb.bases.RhumbLineBase.PlumbTo\tpygeodesy.rhumb.bases.RhumbLineBase-class.html#PlumbTo\npygeodesy.rhumb.bases.RhumbLineBase._rhumb\tpygeodesy.rhumb.bases.RhumbLineBase-class.html#_rhumb\npygeodesy.karney._CapsBase.LINE_OFF\tpygeodesy.karney._CapsBase-class.html#LINE_OFF\npygeodesy.rhumb.bases.RhumbLineBase.__init__\tpygeodesy.rhumb.bases.RhumbLineBase-class.html#__init__\npygeodesy.rhumb.bases.RhumbLineBase.rhumb\tpygeodesy.rhumb.bases.RhumbLineBase-class.html#rhumb\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.rhumb.bases.RhumbLineBase.azi12\tpygeodesy.rhumb.bases.RhumbLineBase-class.html#azi12\npygeodesy.rhumb.bases.RhumbLineBase._mu2lat\tpygeodesy.rhumb.bases.RhumbLineBase-class.html#_mu2lat\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.rhumb.bases.RhumbLineBase._mu1\tpygeodesy.rhumb.bases.RhumbLineBase-class.html#_mu1\npygeodesy.rhumb.bases.RhumbLineBase.intersection2\tpygeodesy.rhumb.bases.RhumbLineBase-class.html#intersection2\npygeodesy.karney._CapsBase.REDUCEDLENGTH\tpygeodesy.karney._CapsBase-class.html#REDUCEDLENGTH\npygeodesy.rhumb.bases.RhumbLineBase.ArcPosition\tpygeodesy.rhumb.bases.RhumbLineBase-class.html#ArcPosition\npygeodesy.karney._CapsBase.LINE_CAPS\tpygeodesy.karney._CapsBase-class.html#LINE_CAPS\npygeodesy.karney._CapsBase.LATITUDE\tpygeodesy.karney._CapsBase-class.html#LATITUDE\npygeodesy.karney._CapsBase.caps_\tpygeodesy.karney._CapsBase-class.html#caps_\npygeodesy.rhumb.ekx.Rhumb\tpygeodesy.rhumb.ekx.Rhumb-class.html\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.rhumb.bases.RhumbBase.Inverse\tpygeodesy.rhumb.bases.RhumbBase-class.html#Inverse\npygeodesy.named._NamedBase.__str__\tpygeodesy.named._NamedBase-class.html#__str__\npygeodesy.rhumb.bases.RhumbBase.datum\tpygeodesy.rhumb.bases.RhumbBase-class.html#datum\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.karney._CapsBase.NONFINITONAN\tpygeodesy.karney._CapsBase-class.html#NONFINITONAN\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.rhumb.bases.RhumbBase.f_max\tpygeodesy.rhumb.bases.RhumbBase-class.html#f_max\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.rhumb.bases.RhumbBase.ellipsoid\tpygeodesy.rhumb.bases.RhumbBase-class.html#ellipsoid\npygeodesy.rhumb.ekx.Rhumb._B2\tpygeodesy.rhumb.ekx.Rhumb-class.html#_B2\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.rhumb.ekx.Rhumb._RA2\tpygeodesy.rhumb.ekx.Rhumb-class.html#_RA2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.rhumb.bases.RhumbBase._exact\tpygeodesy.rhumb.bases.RhumbBase-class.html#_exact\npygeodesy.rhumb.bases.RhumbBase.toStr\tpygeodesy.rhumb.bases.RhumbBase-class.html#toStr\npygeodesy.rhumb.bases.RhumbBase._datum\tpygeodesy.rhumb.bases.RhumbBase-class.html#_datum\npygeodesy.rhumb.ekx.Rhumb._DConformal2Rectifying\tpygeodesy.rhumb.ekx.Rhumb-class.html#_DConformal2Rectifying\npygeodesy.karney._CapsBase.LONGITUDE\tpygeodesy.karney._CapsBase-class.html#LONGITUDE\npygeodesy.karney._CapsBase.caps\tpygeodesy.karney._CapsBase-class.html#caps\npygeodesy.karney._CapsBase.STANDARD_LINE\tpygeodesy.karney._CapsBase-class.html#STANDARD_LINE\npygeodesy.rhumb.ekx.Rhumb._RhumbLine\tpygeodesy.rhumb.ekx.RhumbLine-class.html\npygeodesy.rhumb.bases.RhumbBase._InverseLine\tpygeodesy.rhumb.bases.RhumbBase-class.html#_InverseLine\npygeodesy.rhumb.bases.RhumbBase.exact\tpygeodesy.rhumb.bases.RhumbBase-class.html#exact\npygeodesy.rhumb.bases.RhumbBase.Line\tpygeodesy.rhumb.bases.RhumbBase-class.html#Line\npygeodesy.rhumb.bases.RhumbBase.TMorder\tpygeodesy.rhumb.bases.RhumbBase-class.html#TMorder\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.karney._CapsBase._iter2tion\tpygeodesy.karney._CapsBase-class.html#_iter2tion\npygeodesy.rhumb.bases.RhumbBase._DirectRhumb\tpygeodesy.rhumb.bases.RhumbBase-class.html#_DirectRhumb\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.karney._CapsBase.debug\tpygeodesy.karney._CapsBase-class.html#debug\npygeodesy.named._NamedBase.toRepr\tpygeodesy.named._NamedBase-class.html#toRepr\npygeodesy.rhumb.ekx.Rhumb._mRA\tpygeodesy.rhumb.ekx.Rhumb-class.html#_mRA\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.karney._CapsBase.EMPTY\tpygeodesy.karney._CapsBase-class.html#EMPTY\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.rhumb.ekx.Rhumb._Inverse4\tpygeodesy.rhumb.ekx.Rhumb-class.html#_Inverse4\npygeodesy.rhumb.ekx.Rhumb.Direct7\tpygeodesy.rhumb.ekx.Rhumb-class.html#Direct7\npygeodesy.rhumb.bases.RhumbBase.flattening\tpygeodesy.rhumb.bases.RhumbBase-class.html#flattening\npygeodesy.rhumb.ekx.Rhumb.RAorder\tpygeodesy.rhumb.ekx.Rhumb-class.html#RAorder\npygeodesy.rhumb.bases.RhumbBase.Direct8\tpygeodesy.rhumb.bases.RhumbBase-class.html#Direct8\npygeodesy.rhumb.ekx.Rhumb._mpd\tpygeodesy.rhumb.ekx.Rhumb-class.html#_mpd\npygeodesy.rhumb.bases.RhumbBase._Inverse\tpygeodesy.rhumb.bases.RhumbBase-class.html#_Inverse\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.rhumb.bases.RhumbBase.ArcDirect\tpygeodesy.rhumb.bases.RhumbBase-class.html#ArcDirect\npygeodesy.rhumb.ekx.Rhumb._mpr\tpygeodesy.rhumb.ekx.Rhumb-class.html#_mpr\npygeodesy.karney._CapsBase.AZIMUTH\tpygeodesy.karney._CapsBase-class.html#AZIMUTH\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.karney._CapsBase.DISTANCE\tpygeodesy.karney._CapsBase-class.html#DISTANCE\npygeodesy.rhumb.bases.RhumbBase.DirectLine\tpygeodesy.rhumb.bases.RhumbBase-class.html#DirectLine\npygeodesy.karney._CapsBase._debug\tpygeodesy.karney._CapsBase-class.html#_debug\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.rhumb.ekx.Rhumb._eF\tpygeodesy.rhumb.ekx.Rhumb-class.html#_eF\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._NamedBase.__repr__\tpygeodesy.named._NamedBase-class.html#__repr__\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.rhumb.bases.RhumbBase._mTM\tpygeodesy.rhumb.bases.RhumbBase-class.html#_mTM\npygeodesy.named._NamedBase.others\tpygeodesy.named._NamedBase-class.html#others\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.rhumb.bases.RhumbBase.equatoradius\tpygeodesy.rhumb.bases.RhumbBase-class.html#equatoradius\npygeodesy.karney._CapsBase.AREA\tpygeodesy.karney._CapsBase-class.html#AREA\npygeodesy.rhumb.ekx.Rhumb.Inverse7\tpygeodesy.rhumb.ekx.Rhumb-class.html#Inverse7\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.rhumb.bases.RhumbBase.Inverse8\tpygeodesy.rhumb.bases.RhumbBase-class.html#Inverse8\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.rhumb.bases.RhumbBase._Direct\tpygeodesy.rhumb.bases.RhumbBase-class.html#_Direct\npygeodesy.karney._CapsBase.STANDARD\tpygeodesy.karney._CapsBase-class.html#STANDARD\npygeodesy.rhumb.bases.RhumbBase.InverseLine\tpygeodesy.rhumb.bases.RhumbBase-class.html#InverseLine\npygeodesy.karney._CapsBase._caps\tpygeodesy.karney._CapsBase-class.html#_caps\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.karney._CapsBase.ALL\tpygeodesy.karney._CapsBase-class.html#ALL\npygeodesy.rhumb.bases.RhumbBase.b\tpygeodesy.rhumb.bases.RhumbBase-class.html#b\npygeodesy.rhumb.ekx.Rhumb._A2\tpygeodesy.rhumb.ekx.Rhumb-class.html#_A2\npygeodesy.rhumb.bases.RhumbBase.f\tpygeodesy.rhumb.bases.RhumbBase-class.html#f\npygeodesy.karney._CapsBase.DISTANCE_IN\tpygeodesy.karney._CapsBase-class.html#DISTANCE_IN\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.rhumb.ekx.Rhumb._DRectifying2Conformal\tpygeodesy.rhumb.ekx.Rhumb-class.html#_DRectifying2Conformal\npygeodesy.rhumb.bases.RhumbBase._DirectLine\tpygeodesy.rhumb.bases.RhumbBase-class.html#_DirectLine\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.karney._CapsBase.GEODESICSCALE\tpygeodesy.karney._CapsBase-class.html#GEODESICSCALE\npygeodesy.rhumb.ekx.Rhumb._DRectifyingt\tpygeodesy.rhumb.ekx.Rhumb-class.html#_DRectifyingt\npygeodesy.rhumb.ekx.Rhumb._DIsometric2Rectifyingd\tpygeodesy.rhumb.ekx.Rhumb-class.html#_DIsometric2Rectifyingd\npygeodesy.karney._CapsBase.LINE_OFF\tpygeodesy.karney._CapsBase-class.html#LINE_OFF\npygeodesy.rhumb.ekx.Rhumb.orders\tpygeodesy.rhumb.ekx.Rhumb-class.html#orders\npygeodesy.rhumb.ekx.Rhumb.__init__\tpygeodesy.rhumb.ekx.Rhumb-class.html#__init__\npygeodesy.rhumb.bases.RhumbBase._exactest\tpygeodesy.rhumb.bases.RhumbBase-class.html#_exactest\npygeodesy.karney._CapsBase.LINE_CAPS\tpygeodesy.karney._CapsBase-class.html#LINE_CAPS\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.rhumb.ekx.Rhumb._DRectifying2Isometricd\tpygeodesy.rhumb.ekx.Rhumb-class.html#_DRectifying2Isometricd\npygeodesy.rhumb.bases.RhumbBase._f_max\tpygeodesy.rhumb.bases.RhumbBase-class.html#_f_max\npygeodesy.karney._CapsBase.LONG_UNROLL\tpygeodesy.karney._CapsBase-class.html#LONG_UNROLL\npygeodesy.rhumb.ekx.Rhumb._S12d\tpygeodesy.rhumb.ekx.Rhumb-class.html#_S12d\npygeodesy.rhumb.ekx.Rhumb._DIsometrict\tpygeodesy.rhumb.ekx.Rhumb-class.html#_DIsometrict\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.rhumb.bases.RhumbBase.a\tpygeodesy.rhumb.bases.RhumbBase-class.html#a\npygeodesy.karney._CapsBase.REDUCEDLENGTH\tpygeodesy.karney._CapsBase-class.html#REDUCEDLENGTH\npygeodesy.rhumb.bases.RhumbBase.polaradius\tpygeodesy.rhumb.bases.RhumbBase-class.html#polaradius\npygeodesy.rhumb.bases.RhumbBase.Direct\tpygeodesy.rhumb.bases.RhumbBase-class.html#Direct\npygeodesy.karney._CapsBase.LATITUDE\tpygeodesy.karney._CapsBase-class.html#LATITUDE\npygeodesy.karney._CapsBase.caps_\tpygeodesy.karney._CapsBase-class.html#caps_\npygeodesy.rhumb.ekx.RhumbLine\tpygeodesy.rhumb.ekx.RhumbLine-class.html\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.rhumb.bases.RhumbLineBase._calp\tpygeodesy.rhumb.bases.RhumbLineBase-class.html#_calp\npygeodesy.rhumb.bases.RhumbLineBase.Inverse\tpygeodesy.rhumb.bases.RhumbLineBase-class.html#Inverse\npygeodesy.named._NamedBase.__str__\tpygeodesy.named._NamedBase-class.html#__str__\npygeodesy.rhumb.bases.RhumbLineBase.datum\tpygeodesy.rhumb.bases.RhumbLineBase-class.html#datum\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.karney._CapsBase.NONFINITONAN\tpygeodesy.karney._CapsBase-class.html#NONFINITONAN\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.rhumb.bases.RhumbLineBase.ellipsoid\tpygeodesy.rhumb.bases.RhumbLineBase-class.html#ellipsoid\npygeodesy.rhumb.bases.RhumbLineBase.exact\tpygeodesy.rhumb.bases.RhumbLineBase-class.html#exact\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.rhumb.bases.RhumbLineBase.distance2\tpygeodesy.rhumb.bases.RhumbLineBase-class.html#distance2\npygeodesy.rhumb.bases.RhumbLineBase.toStr\tpygeodesy.rhumb.bases.RhumbLineBase-class.html#toStr\npygeodesy.karney._CapsBase.LONGITUDE\tpygeodesy.karney._CapsBase-class.html#LONGITUDE\npygeodesy.karney._CapsBase.caps\tpygeodesy.karney._CapsBase-class.html#caps\npygeodesy.karney._CapsBase.STANDARD_LINE\tpygeodesy.karney._CapsBase-class.html#STANDARD_LINE\npygeodesy.rhumb.bases.RhumbLineBase.Intersecant2\tpygeodesy.rhumb.bases.RhumbLineBase-class.html#Intersecant2\npygeodesy.rhumb.bases.RhumbLineBase.Position\tpygeodesy.rhumb.bases.RhumbLineBase-class.html#Position\npygeodesy.rhumb.ekx.RhumbLine._Position4\tpygeodesy.rhumb.ekx.RhumbLine-class.html#_Position4\npygeodesy.rhumb.bases.RhumbLineBase.TMorder\tpygeodesy.rhumb.bases.RhumbLineBase-class.html#TMorder\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.rhumb.ekx.RhumbLine._dpm12\tpygeodesy.rhumb.ekx.RhumbLine-class.html#_dpm12\npygeodesy.rhumb.bases.RhumbLineBase.lat1\tpygeodesy.rhumb.bases.RhumbLineBase-class.html#lat1\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.karney._CapsBase._iter2tion\tpygeodesy.karney._CapsBase-class.html#_iter2tion\npygeodesy.rhumb.ekx.RhumbLine._Rhumb\tpygeodesy.rhumb.ekx.Rhumb-class.html\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.karney._CapsBase.debug\tpygeodesy.karney._CapsBase-class.html#debug\npygeodesy.named._NamedBase.toRepr\tpygeodesy.named._NamedBase-class.html#toRepr\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.karney._CapsBase.EMPTY\tpygeodesy.karney._CapsBase-class.html#EMPTY\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.rhumb.ekx.RhumbLine._psi1\tpygeodesy.rhumb.ekx.RhumbLine-class.html#_psi1\npygeodesy.rhumb.bases.RhumbLineBase.m2degrees\tpygeodesy.rhumb.bases.RhumbLineBase-class.html#m2degrees\npygeodesy.rhumb.ekx.RhumbLine.RAorder\tpygeodesy.rhumb.ekx.RhumbLine-class.html#RAorder\npygeodesy.rhumb.bases.RhumbLineBase.Intersection\tpygeodesy.rhumb.bases.RhumbLineBase-class.html#Intersection\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.rhumb.bases.RhumbLineBase._talp\tpygeodesy.rhumb.bases.RhumbLineBase-class.html#_talp\npygeodesy.rhumb.bases.RhumbLineBase.nearestOn4\tpygeodesy.rhumb.bases.RhumbLineBase-class.html#nearestOn4\npygeodesy.named._NamedBase.others\tpygeodesy.named._NamedBase-class.html#others\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.karney._CapsBase.DISTANCE\tpygeodesy.karney._CapsBase-class.html#DISTANCE\npygeodesy.karney._CapsBase._debug\tpygeodesy.karney._CapsBase-class.html#_debug\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.rhumb.bases.RhumbLineBase._salp\tpygeodesy.rhumb.bases.RhumbLineBase-class.html#_salp\npygeodesy.named._NamedBase.__repr__\tpygeodesy.named._NamedBase-class.html#__repr__\npygeodesy.rhumb.bases.RhumbLineBase.intersection2\tpygeodesy.rhumb.bases.RhumbLineBase-class.html#intersection2\npygeodesy.rhumb.bases.RhumbLineBase._Position\tpygeodesy.rhumb.bases.RhumbLineBase-class.html#_Position\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.karney._CapsBase.AZIMUTH\tpygeodesy.karney._CapsBase-class.html#AZIMUTH\npygeodesy.rhumb.bases.RhumbLineBase.azi12_sincos2\tpygeodesy.rhumb.bases.RhumbLineBase-class.html#azi12_sincos2\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.karney._CapsBase.AREA\tpygeodesy.karney._CapsBase-class.html#AREA\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.rhumb.bases.RhumbLineBase.latlon1\tpygeodesy.rhumb.bases.RhumbLineBase-class.html#latlon1\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.rhumb.bases.RhumbLineBase.__del__\tpygeodesy.rhumb.bases.RhumbLineBase-class.html#__del__\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.karney._CapsBase.STANDARD\tpygeodesy.karney._CapsBase-class.html#STANDARD\npygeodesy.rhumb.bases.RhumbLineBase.NearestOn\tpygeodesy.rhumb.bases.RhumbLineBase-class.html#NearestOn\npygeodesy.karney._CapsBase._caps\tpygeodesy.karney._CapsBase-class.html#_caps\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.rhumb.bases.RhumbLineBase._azi12\tpygeodesy.rhumb.bases.RhumbLineBase-class.html#_azi12\npygeodesy.karney._CapsBase.ALL\tpygeodesy.karney._CapsBase-class.html#ALL\npygeodesy.rhumb.bases.RhumbLineBase.degrees2m\tpygeodesy.rhumb.bases.RhumbLineBase-class.html#degrees2m\npygeodesy.rhumb.bases.RhumbLineBase.isLoxodrome\tpygeodesy.rhumb.bases.RhumbLineBase-class.html#isLoxodrome\npygeodesy.karney._CapsBase.DISTANCE_IN\tpygeodesy.karney._CapsBase-class.html#DISTANCE_IN\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.rhumb.bases.RhumbLineBase._xTM3d\tpygeodesy.rhumb.bases.RhumbLineBase-class.html#_xTM3d\npygeodesy.rhumb.bases.RhumbLineBase.lon1\tpygeodesy.rhumb.bases.RhumbLineBase-class.html#lon1\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.karney._CapsBase.GEODESICSCALE\tpygeodesy.karney._CapsBase-class.html#GEODESICSCALE\npygeodesy.rhumb.bases.RhumbLineBase.PlumbTo\tpygeodesy.rhumb.bases.RhumbLineBase-class.html#PlumbTo\npygeodesy.rhumb.bases.RhumbLineBase._rhumb\tpygeodesy.rhumb.bases.RhumbLineBase-class.html#_rhumb\npygeodesy.karney._CapsBase.LINE_OFF\tpygeodesy.karney._CapsBase-class.html#LINE_OFF\npygeodesy.rhumb.ekx.RhumbLine.__init__\tpygeodesy.rhumb.ekx.RhumbLine-class.html#__init__\npygeodesy.rhumb.bases.RhumbLineBase.rhumb\tpygeodesy.rhumb.bases.RhumbLineBase-class.html#rhumb\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.rhumb.bases.RhumbLineBase.azi12\tpygeodesy.rhumb.bases.RhumbLineBase-class.html#azi12\npygeodesy.rhumb.ekx.RhumbLine._mu2lat\tpygeodesy.rhumb.ekx.RhumbLine-class.html#_mu2lat\npygeodesy.karney._CapsBase.LONG_UNROLL\tpygeodesy.karney._CapsBase-class.html#LONG_UNROLL\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.rhumb.ekx.RhumbLine._mu1\tpygeodesy.rhumb.ekx.RhumbLine-class.html#_mu1\npygeodesy.rhumb.bases.RhumbLineBase.xTM\tpygeodesy.rhumb.bases.RhumbLineBase-class.html#xTM\npygeodesy.karney._CapsBase.REDUCEDLENGTH\tpygeodesy.karney._CapsBase-class.html#REDUCEDLENGTH\npygeodesy.rhumb.bases.RhumbLineBase.ArcPosition\tpygeodesy.rhumb.bases.RhumbLineBase-class.html#ArcPosition\npygeodesy.karney._CapsBase.LINE_CAPS\tpygeodesy.karney._CapsBase-class.html#LINE_CAPS\npygeodesy.karney._CapsBase.LATITUDE\tpygeodesy.karney._CapsBase-class.html#LATITUDE\npygeodesy.karney._CapsBase.caps_\tpygeodesy.karney._CapsBase-class.html#caps_\npygeodesy.rhumb.solve.RhumbLineSolve\tpygeodesy.rhumb.solve.RhumbLineSolve-class.html\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.solveBase._SolveGDictBase.Inverse\tpygeodesy.solveBase._SolveGDictBase-class.html#Inverse\npygeodesy.named._NamedBase.__str__\tpygeodesy.named._NamedBase-class.html#__str__\npygeodesy.solveBase._SolveGDictLineBase.datum\tpygeodesy.solveBase._SolveGDictLineBase-class.html#datum\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.karney._CapsBase.NONFINITONAN\tpygeodesy.karney._CapsBase-class.html#NONFINITONAN\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.solveBase._SolveCapsBase.invokation\tpygeodesy.solveBase._SolveCapsBase-class.html#invokation\npygeodesy.solveBase._SolveCapsBase._Exact\tpygeodesy.solveBase._SolveCapsBase-class.html#_Exact\npygeodesy.solveBase._SolveCapsBase._e_option\tpygeodesy.solveBase._SolveCapsBase-class.html#_e_option\npygeodesy.solveBase._SolveGDictLineBase.ellipsoid\tpygeodesy.solveBase._SolveGDictLineBase-class.html#ellipsoid\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.solveBase._SolveBase.unroll\tpygeodesy.solveBase._SolveBase-class.html#unroll\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.solveBase._SolveCapsBase._E_option\tpygeodesy.solveBase._SolveCapsBase-class.html#_E_option\npygeodesy.solveBase._SolveCapsBase.invoke\tpygeodesy.solveBase._SolveCapsBase-class.html#invoke\npygeodesy.rhumb.solve.RhumbLineSolve.toStr\tpygeodesy.rhumb.solve.RhumbLineSolve-class.html#toStr\npygeodesy.solveBase._SolveCapsBase._datum\tpygeodesy.solveBase._SolveCapsBase-class.html#_datum\npygeodesy.karney._CapsBase.LONGITUDE\tpygeodesy.karney._CapsBase-class.html#LONGITUDE\npygeodesy.karney._CapsBase.caps\tpygeodesy.karney._CapsBase-class.html#caps\npygeodesy.karney._CapsBase.STANDARD_LINE\tpygeodesy.karney._CapsBase-class.html#STANDARD_LINE\npygeodesy.rhumb.solve.RhumbLineSolve.Position\tpygeodesy.rhumb.solve.RhumbLineSolve-class.html#Position\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.solveBase._SolveGDictLineBase.lat1\tpygeodesy.solveBase._SolveGDictLineBase-class.html#lat1\npygeodesy.solveBase._SolveCapsBase._invokat\tpygeodesy.solveBase._SolveCapsBase-class.html#_invokat\npygeodesy.karney._CapsBase._iter2tion\tpygeodesy.karney._CapsBase-class.html#_iter2tion\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.solveBase._SolveCapsBase._invoke\tpygeodesy.solveBase._SolveCapsBase-class.html#_invoke\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.karney._CapsBase.debug\tpygeodesy.karney._CapsBase-class.html#debug\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.karney._CapsBase.DISTANCE_IN\tpygeodesy.karney._CapsBase-class.html#DISTANCE_IN\npygeodesy.named._NamedBase.toRepr\tpygeodesy.named._NamedBase-class.html#toRepr\npygeodesy.rhumb.solve.RhumbLineSolve.azi1\tpygeodesy.rhumb.solve.RhumbLineSolve-class.html#azi1\npygeodesy.solveBase._SolveGDictLineBase._cmdDistance\tpygeodesy.solveBase._SolveGDictLineBase-class.html#_cmdDistance\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.karney._CapsBase.EMPTY\tpygeodesy.karney._CapsBase-class.html#EMPTY\npygeodesy.rhumb.solve._RhumbSolveBase._Names_Inverse\tpygeodesy.rhumb.solve._RhumbSolveBase-class.html#_Names_Inverse\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.rhumb.solve._RhumbSolveBase._Names_Distance\tpygeodesy.rhumb.solve._RhumbSolveBase-class.html#_Names_Distance\npygeodesy.solveBase._SolveCapsBase.version\tpygeodesy.solveBase._SolveCapsBase-class.html#version\npygeodesy.solveBase._SolveCapsBase.flattening\tpygeodesy.solveBase._SolveCapsBase-class.html#flattening\npygeodesy.solveBase._SolveBase._reverse2\tpygeodesy.solveBase._SolveBase-class.html#_reverse2\npygeodesy.solveBase._SolveCapsBase._setXable\tpygeodesy.solveBase._SolveCapsBase-class.html#_setXable\npygeodesy.solveBase._SolveCapsBase._mpd\tpygeodesy.solveBase._SolveCapsBase-class.html#_mpd\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.rhumb.solve._RhumbSolveBase._Xable_path\tpygeodesy.rhumb.solve._RhumbSolveBase-class.html#_Xable_path\npygeodesy.karney._CapsBase.AZIMUTH\tpygeodesy.karney._CapsBase-class.html#AZIMUTH\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.solveBase._SolveCapsBase._prec2stdin\tpygeodesy.solveBase._SolveCapsBase-class.html#_prec2stdin\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.karney._CapsBase.DISTANCE\tpygeodesy.karney._CapsBase-class.html#DISTANCE\npygeodesy.karney._CapsBase._debug\tpygeodesy.karney._CapsBase-class.html#_debug\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.solveBase._SolveGDictBase.ArcDirect\tpygeodesy.solveBase._SolveGDictBase-class.html#ArcDirect\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._NamedBase.__repr__\tpygeodesy.named._NamedBase-class.html#__repr__\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.rhumb.solve._RhumbSolveBase._Names_Direct\tpygeodesy.rhumb.solve._RhumbSolveBase-class.html#_Names_Direct\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.solveBase._SolveCapsBase.verbose\tpygeodesy.solveBase._SolveCapsBase-class.html#verbose\npygeodesy.rhumb.solve._RhumbSolveBase.RhumbSolve\tpygeodesy.rhumb.solve._RhumbSolveBase-class.html#RhumbSolve\npygeodesy.named._NamedBase.others\tpygeodesy.named._NamedBase-class.html#others\npygeodesy.rhumb.solve.RhumbLineSolve.azi12_sincos2\tpygeodesy.rhumb.solve.RhumbLineSolve-class.html#azi12_sincos2\npygeodesy.solveBase._SolveCapsBase._p_option\tpygeodesy.solveBase._SolveCapsBase-class.html#_p_option\npygeodesy.solveBase._SolveCapsBase._linelimit\tpygeodesy.solveBase._SolveCapsBase-class.html#_linelimit\npygeodesy.solveBase._SolveBase.reverse2\tpygeodesy.solveBase._SolveBase-class.html#reverse2\npygeodesy.solveBase._SolveCapsBase.linelimit\tpygeodesy.solveBase._SolveCapsBase-class.html#linelimit\npygeodesy.karney._CapsBase.AREA\tpygeodesy.karney._CapsBase-class.html#AREA\npygeodesy.solveBase._SolveCapsBase.prec\tpygeodesy.solveBase._SolveCapsBase-class.html#prec\npygeodesy.rhumb.solve._RhumbSolveBase._cmdBasic\tpygeodesy.rhumb.solve._RhumbSolveBase-class.html#_cmdBasic\npygeodesy.solveBase._SolveGDictBase.Inverse1\tpygeodesy.solveBase._SolveGDictBase-class.html#Inverse1\npygeodesy.solveBase._SolveCapsBase._DictInvoke2\tpygeodesy.solveBase._SolveCapsBase-class.html#_DictInvoke2\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.solveBase._SolveCapsBase._status\tpygeodesy.solveBase._SolveCapsBase-class.html#_status\npygeodesy.solveBase._SolveCapsBase.Exact\tpygeodesy.solveBase._SolveCapsBase-class.html#Exact\npygeodesy.solveBase._SolveCapsBase._Dicts\tpygeodesy.solveBase._SolveCapsBase-class.html#_Dicts\npygeodesy.rhumb.solve._RhumbSolveBase._Error\tpygeodesy.errors.RhumbError-class.html\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.solveBase._SolveCapsBase._prec\tpygeodesy.solveBase._SolveCapsBase-class.html#_prec\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.karney._CapsBase.STANDARD\tpygeodesy.karney._CapsBase-class.html#STANDARD\npygeodesy.karney._CapsBase._caps\tpygeodesy.karney._CapsBase-class.html#_caps\npygeodesy.solveBase._SolveBase._unroll\tpygeodesy.solveBase._SolveBase-class.html#_unroll\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.solveBase._SolveCapsBase._verbose\tpygeodesy.solveBase._SolveCapsBase-class.html#_verbose\npygeodesy.karney._CapsBase.ALL\tpygeodesy.karney._CapsBase-class.html#ALL\npygeodesy.solveBase._SolveCapsBase.b\tpygeodesy.solveBase._SolveCapsBase-class.html#b\npygeodesy.solveBase._SolveCapsBase.f\tpygeodesy.solveBase._SolveCapsBase-class.html#f\npygeodesy.solveBase._SolveCapsBase._toStdin\tpygeodesy.solveBase._SolveCapsBase-class.html#_toStdin\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.solveBase._SolveGDictLineBase.lon1\tpygeodesy.solveBase._SolveGDictLineBase-class.html#lon1\npygeodesy.solveBase._SolveCapsBase._Dict\tpygeodesy.solveBase._SolveCapsBase-class.html#_Dict\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.rhumb.solve._RhumbSolveBase._Xable_name\tpygeodesy.rhumb.solve._RhumbSolveBase-class.html#_Xable_name\npygeodesy.karney._CapsBase.GEODESICSCALE\tpygeodesy.karney._CapsBase-class.html#GEODESICSCALE\npygeodesy.solveBase._SolveCapsBase._print\tpygeodesy.solveBase._SolveCapsBase-class.html#_print\npygeodesy.karney._CapsBase.LINE_OFF\tpygeodesy.karney._CapsBase-class.html#LINE_OFF\npygeodesy.solveBase._SolveGDictLineBase._solve\tpygeodesy.solveBase._SolveGDictLineBase-class.html#_solve\npygeodesy.karney._CapsBase.LINE_CAPS\tpygeodesy.karney._CapsBase-class.html#LINE_CAPS\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.rhumb.solve.RhumbLineSolve.azi1_sincos2\tpygeodesy.rhumb.solve.RhumbLineSolve-class.html#azi1_sincos2\npygeodesy.rhumb.solve.RhumbLineSolve.azi12\tpygeodesy.rhumb.solve.RhumbLineSolve-class.html#azi12\npygeodesy.rhumb.solve.RhumbLineSolve.__init__\tpygeodesy.rhumb.solve.RhumbLineSolve-class.html#__init__\npygeodesy.solveBase._SolveCapsBase.invokat\tpygeodesy.solveBase._SolveCapsBase-class.html#invokat\npygeodesy.solveBase._SolveCapsBase.status\tpygeodesy.solveBase._SolveCapsBase-class.html#status\npygeodesy.karney._CapsBase.LONG_UNROLL\tpygeodesy.karney._CapsBase-class.html#LONG_UNROLL\npygeodesy.solveBase._SolveCapsBase._invokation\tpygeodesy.solveBase._SolveCapsBase-class.html#_invokation\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.solveBase._SolveCapsBase.a\tpygeodesy.solveBase._SolveCapsBase-class.html#a\npygeodesy.karney._CapsBase.REDUCEDLENGTH\tpygeodesy.karney._CapsBase-class.html#REDUCEDLENGTH\npygeodesy.solveBase._SolveGDictBase.Direct\tpygeodesy.solveBase._SolveGDictBase-class.html#Direct\npygeodesy.rhumb.solve._RhumbSolveBase._s_option\tpygeodesy.rhumb.solve._RhumbSolveBase-class.html#_s_option\npygeodesy.karney._CapsBase.LATITUDE\tpygeodesy.karney._CapsBase-class.html#LATITUDE\npygeodesy.karney._CapsBase.caps_\tpygeodesy.karney._CapsBase-class.html#caps_\npygeodesy.rhumb.solve.RhumbSolve\tpygeodesy.rhumb.solve.RhumbSolve-class.html\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.solveBase._SolveGDictBase.Inverse\tpygeodesy.solveBase._SolveGDictBase-class.html#Inverse\npygeodesy.named._NamedBase.__str__\tpygeodesy.named._NamedBase-class.html#__str__\npygeodesy.solveBase._SolveCapsBase.datum\tpygeodesy.solveBase._SolveCapsBase-class.html#datum\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.rhumb.solve.RhumbSolve._GDictInverse\tpygeodesy.rhumb.solve.RhumbSolve-class.html#_GDictInverse\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.karney._CapsBase.NONFINITONAN\tpygeodesy.karney._CapsBase-class.html#NONFINITONAN\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.solveBase._SolveCapsBase.invokation\tpygeodesy.solveBase._SolveCapsBase-class.html#invokation\npygeodesy.solveBase._SolveCapsBase._Exact\tpygeodesy.solveBase._SolveCapsBase-class.html#_Exact\npygeodesy.solveBase._SolveCapsBase._e_option\tpygeodesy.solveBase._SolveCapsBase-class.html#_e_option\npygeodesy.solveBase._SolveCapsBase.ellipsoid\tpygeodesy.solveBase._SolveCapsBase-class.html#ellipsoid\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.solveBase._SolveBase.unroll\tpygeodesy.solveBase._SolveBase-class.html#unroll\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.solveBase._SolveCapsBase._E_option\tpygeodesy.solveBase._SolveCapsBase-class.html#_E_option\npygeodesy.solveBase._SolveCapsBase.invoke\tpygeodesy.solveBase._SolveCapsBase-class.html#invoke\npygeodesy.rhumb.solve.RhumbSolve.toStr\tpygeodesy.rhumb.solve.RhumbSolve-class.html#toStr\npygeodesy.solveBase._SolveCapsBase._datum\tpygeodesy.solveBase._SolveCapsBase-class.html#_datum\npygeodesy.karney._CapsBase.LONGITUDE\tpygeodesy.karney._CapsBase-class.html#LONGITUDE\npygeodesy.karney._CapsBase.caps\tpygeodesy.karney._CapsBase-class.html#caps\npygeodesy.karney._CapsBase.STANDARD_LINE\tpygeodesy.karney._CapsBase-class.html#STANDARD_LINE\npygeodesy.rhumb.solve.RhumbSolve._InverseLine\tpygeodesy.rhumb.solve.RhumbSolve-class.html#_InverseLine\npygeodesy.rhumb.solve.RhumbSolve.Line\tpygeodesy.rhumb.solve.RhumbSolve-class.html#Line\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.solveBase._SolveCapsBase._invokat\tpygeodesy.solveBase._SolveCapsBase-class.html#_invokat\npygeodesy.karney._CapsBase._iter2tion\tpygeodesy.karney._CapsBase-class.html#_iter2tion\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.solveBase._SolveCapsBase._invoke\tpygeodesy.solveBase._SolveCapsBase-class.html#_invoke\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.karney._CapsBase.debug\tpygeodesy.karney._CapsBase-class.html#debug\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.karney._CapsBase.DISTANCE_IN\tpygeodesy.karney._CapsBase-class.html#DISTANCE_IN\npygeodesy.named._NamedBase.toRepr\tpygeodesy.named._NamedBase-class.html#toRepr\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.karney._CapsBase.EMPTY\tpygeodesy.karney._CapsBase-class.html#EMPTY\npygeodesy.rhumb.solve._RhumbSolveBase._Names_Inverse\tpygeodesy.rhumb.solve._RhumbSolveBase-class.html#_Names_Inverse\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.rhumb.solve._RhumbSolveBase._Names_Distance\tpygeodesy.rhumb.solve._RhumbSolveBase-class.html#_Names_Distance\npygeodesy.solveBase._SolveCapsBase.version\tpygeodesy.solveBase._SolveCapsBase-class.html#version\npygeodesy.solveBase._SolveCapsBase.flattening\tpygeodesy.solveBase._SolveCapsBase-class.html#flattening\npygeodesy.rhumb.solve.RhumbSolve.Direct3\tpygeodesy.rhumb.solve.RhumbSolve-class.html#Direct3\npygeodesy.solveBase._SolveBase._reverse2\tpygeodesy.solveBase._SolveBase-class.html#_reverse2\npygeodesy.solveBase._SolveCapsBase._setXable\tpygeodesy.solveBase._SolveCapsBase-class.html#_setXable\npygeodesy.solveBase._SolveCapsBase._mpd\tpygeodesy.solveBase._SolveCapsBase-class.html#_mpd\npygeodesy.rhumb.solve.RhumbSolve._Inverse\tpygeodesy.rhumb.solve.RhumbSolve-class.html#_Inverse\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.rhumb.solve._RhumbSolveBase._Xable_path\tpygeodesy.rhumb.solve._RhumbSolveBase-class.html#_Xable_path\npygeodesy.karney._CapsBase.AZIMUTH\tpygeodesy.karney._CapsBase-class.html#AZIMUTH\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.solveBase._SolveCapsBase._prec2stdin\tpygeodesy.solveBase._SolveCapsBase-class.html#_prec2stdin\npygeodesy.rhumb.solve.RhumbSolve._GDictDirect\tpygeodesy.rhumb.solve.RhumbSolve-class.html#_GDictDirect\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.karney._CapsBase.DISTANCE\tpygeodesy.karney._CapsBase-class.html#DISTANCE\npygeodesy.rhumb.solve.RhumbSolve.DirectLine\tpygeodesy.rhumb.solve.RhumbSolve-class.html#DirectLine\npygeodesy.karney._CapsBase._debug\tpygeodesy.karney._CapsBase-class.html#_debug\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.solveBase._SolveGDictBase.ArcDirect\tpygeodesy.solveBase._SolveGDictBase-class.html#ArcDirect\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._NamedBase.__repr__\tpygeodesy.named._NamedBase-class.html#__repr__\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.rhumb.solve._RhumbSolveBase._Names_Direct\tpygeodesy.rhumb.solve._RhumbSolveBase-class.html#_Names_Direct\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.solveBase._SolveCapsBase.verbose\tpygeodesy.solveBase._SolveCapsBase-class.html#verbose\npygeodesy.rhumb.solve._RhumbSolveBase.RhumbSolve\tpygeodesy.rhumb.solve._RhumbSolveBase-class.html#RhumbSolve\npygeodesy.named._NamedBase.others\tpygeodesy.named._NamedBase-class.html#others\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.solveBase._SolveCapsBase._p_option\tpygeodesy.solveBase._SolveCapsBase-class.html#_p_option\npygeodesy.solveBase._SolveCapsBase._linelimit\tpygeodesy.solveBase._SolveCapsBase-class.html#_linelimit\npygeodesy.solveBase._SolveBase.reverse2\tpygeodesy.solveBase._SolveBase-class.html#reverse2\npygeodesy.solveBase._SolveCapsBase.linelimit\tpygeodesy.solveBase._SolveCapsBase-class.html#linelimit\npygeodesy.karney._CapsBase.AREA\tpygeodesy.karney._CapsBase-class.html#AREA\npygeodesy.solveBase._SolveCapsBase.prec\tpygeodesy.solveBase._SolveCapsBase-class.html#prec\npygeodesy.karney._CapsBase.GEODESICSCALE\tpygeodesy.karney._CapsBase-class.html#GEODESICSCALE\npygeodesy.solveBase._SolveGDictBase.Inverse1\tpygeodesy.solveBase._SolveGDictBase-class.html#Inverse1\npygeodesy.rhumb.solve.RhumbSolve.Inverse3\tpygeodesy.rhumb.solve.RhumbSolve-class.html#Inverse3\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.solveBase._SolveCapsBase._status\tpygeodesy.solveBase._SolveCapsBase-class.html#_status\npygeodesy.solveBase._SolveCapsBase.Exact\tpygeodesy.solveBase._SolveCapsBase-class.html#Exact\npygeodesy.solveBase._SolveCapsBase._Dicts\tpygeodesy.solveBase._SolveCapsBase-class.html#_Dicts\npygeodesy.rhumb.solve._RhumbSolveBase._Error\tpygeodesy.errors.RhumbError-class.html\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.solveBase._SolveCapsBase._prec\tpygeodesy.solveBase._SolveCapsBase-class.html#_prec\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.rhumb.solve.RhumbSolve._Direct\tpygeodesy.rhumb.solve.RhumbSolve-class.html#_Direct\npygeodesy.karney._CapsBase.STANDARD\tpygeodesy.karney._CapsBase-class.html#STANDARD\npygeodesy.rhumb.solve.RhumbSolve.InverseLine\tpygeodesy.rhumb.solve.RhumbSolve-class.html#InverseLine\npygeodesy.rhumb.solve.RhumbSolve._azimuth_reverse\tpygeodesy.rhumb.solve.RhumbSolve-class.html#_azimuth_reverse\npygeodesy.karney._CapsBase._caps\tpygeodesy.karney._CapsBase-class.html#_caps\npygeodesy.solveBase._SolveBase._unroll\tpygeodesy.solveBase._SolveBase-class.html#_unroll\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.solveBase._SolveCapsBase._verbose\tpygeodesy.solveBase._SolveCapsBase-class.html#_verbose\npygeodesy.karney._CapsBase.ALL\tpygeodesy.karney._CapsBase-class.html#ALL\npygeodesy.solveBase._SolveCapsBase.b\tpygeodesy.solveBase._SolveCapsBase-class.html#b\npygeodesy.solveBase._SolveCapsBase.f\tpygeodesy.solveBase._SolveCapsBase-class.html#f\npygeodesy.solveBase._SolveCapsBase._toStdin\tpygeodesy.solveBase._SolveCapsBase-class.html#_toStdin\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.rhumb.solve.RhumbSolve._DirectLine\tpygeodesy.rhumb.solve.RhumbSolve-class.html#_DirectLine\npygeodesy.solveBase._SolveCapsBase._Dict\tpygeodesy.solveBase._SolveCapsBase-class.html#_Dict\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.rhumb.solve._RhumbSolveBase._Xable_name\tpygeodesy.rhumb.solve._RhumbSolveBase-class.html#_Xable_name\npygeodesy.rhumb.solve._RhumbSolveBase._cmdBasic\tpygeodesy.rhumb.solve._RhumbSolveBase-class.html#_cmdBasic\npygeodesy.solveBase._SolveCapsBase._print\tpygeodesy.solveBase._SolveCapsBase-class.html#_print\npygeodesy.karney._CapsBase.LINE_OFF\tpygeodesy.karney._CapsBase-class.html#LINE_OFF\npygeodesy.solveBase._SolveGDictBase.__init__\tpygeodesy.solveBase._SolveGDictBase-class.html#__init__\npygeodesy.karney._CapsBase.LINE_CAPS\tpygeodesy.karney._CapsBase-class.html#LINE_CAPS\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.solveBase._SolveCapsBase.invokat\tpygeodesy.solveBase._SolveCapsBase-class.html#invokat\npygeodesy.solveBase._SolveCapsBase.status\tpygeodesy.solveBase._SolveCapsBase-class.html#status\npygeodesy.karney._CapsBase.LONG_UNROLL\tpygeodesy.karney._CapsBase-class.html#LONG_UNROLL\npygeodesy.solveBase._SolveCapsBase._invokation\tpygeodesy.solveBase._SolveCapsBase-class.html#_invokation\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.solveBase._SolveCapsBase.a\tpygeodesy.solveBase._SolveCapsBase-class.html#a\npygeodesy.karney._CapsBase.REDUCEDLENGTH\tpygeodesy.karney._CapsBase-class.html#REDUCEDLENGTH\npygeodesy.solveBase._SolveGDictBase.Direct\tpygeodesy.solveBase._SolveGDictBase-class.html#Direct\npygeodesy.solveBase._SolveCapsBase._DictInvoke2\tpygeodesy.solveBase._SolveCapsBase-class.html#_DictInvoke2\npygeodesy.rhumb.solve._RhumbSolveBase._s_option\tpygeodesy.rhumb.solve._RhumbSolveBase-class.html#_s_option\npygeodesy.karney._CapsBase.LATITUDE\tpygeodesy.karney._CapsBase-class.html#LATITUDE\npygeodesy.karney._CapsBase.caps_\tpygeodesy.karney._CapsBase-class.html#caps_\npygeodesy.rhumb.solve.RhumbSolve7Tuple\tpygeodesy.rhumb.solve.RhumbSolve7Tuple-class.html\npygeodesy.named._NamedTuple.toRepr\tpygeodesy.named._NamedTuple-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._NamedTuple.toUnits\tpygeodesy.named._NamedTuple-class.html#toUnits\npygeodesy.named._NamedTuple._validate\tpygeodesy.named._NamedTuple-class.html#_validate\npygeodesy.named._NamedTuple.__str__\tpygeodesy.named._NamedTuple-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._NamedTuple._DOT_\tpygeodesy.named._NamedTuple-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._NamedTuple.reUnit\tpygeodesy.named._NamedTuple-class.html#reUnit\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.rhumb.solve.RhumbSolve7Tuple._Names_\tpygeodesy.rhumb.solve.RhumbSolve7Tuple-class.html#_Names_\npygeodesy.named._NamedTuple.__setattr__\tpygeodesy.named._NamedTuple-class.html#__setattr__\npygeodesy.named._NamedTuple.__new__\tpygeodesy.named._NamedTuple-class.html#__new__\npygeodesy.karney.Rhumb8Tuple.toInverse10Tuple\tpygeodesy.karney.Rhumb8Tuple-class.html#toInverse10Tuple\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._NamedTuple._validated\tpygeodesy.named._NamedTuple-class.html#_validated\npygeodesy.named._NamedTuple.__getattr__\tpygeodesy.named._NamedTuple-class.html#__getattr__\npygeodesy.karney.Rhumb8Tuple.toDirect9Tuple\tpygeodesy.karney.Rhumb8Tuple-class.html#toDirect9Tuple\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._NamedTuple._xtend\tpygeodesy.named._NamedTuple-class.html#_xtend\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._NamedTuple.units\tpygeodesy.named._NamedTuple-class.html#units\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedTuple.toStr\tpygeodesy.named._NamedTuple-class.html#toStr\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedTuple.dup\tpygeodesy.named._NamedTuple-class.html#dup\npygeodesy.named._NamedTuple.iterunits\tpygeodesy.named._NamedTuple-class.html#iterunits\npygeodesy.named._NamedTuple.iteritems\tpygeodesy.named._NamedTuple-class.html#iteritems\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._NamedTuple.items\tpygeodesy.named._NamedTuple-class.html#items\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedTuple.__delattr__\tpygeodesy.named._NamedTuple-class.html#__delattr__\npygeodesy.named._NamedTuple.__repr__\tpygeodesy.named._NamedTuple-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._NamedTuple.__hash__\tpygeodesy.named._NamedTuple-class.html#__hash__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.rhumb.solve.RhumbSolve7Tuple._Units_\tpygeodesy.rhumb.solve.RhumbSolve7Tuple-class.html#_Units_\npygeodesy.karney.Rhumb8Tuple._to7Tuple\tpygeodesy.karney.Rhumb8Tuple-class.html#_to7Tuple\npygeodesy.rhumb.solve._RhumbSolveBase\tpygeodesy.rhumb.solve._RhumbSolveBase-class.html\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.solveBase._SolveGDictBase.Inverse\tpygeodesy.solveBase._SolveGDictBase-class.html#Inverse\npygeodesy.named._NamedBase.__str__\tpygeodesy.named._NamedBase-class.html#__str__\npygeodesy.solveBase._SolveCapsBase.datum\tpygeodesy.solveBase._SolveCapsBase-class.html#datum\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.karney._CapsBase.NONFINITONAN\tpygeodesy.karney._CapsBase-class.html#NONFINITONAN\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.solveBase._SolveCapsBase.invokation\tpygeodesy.solveBase._SolveCapsBase-class.html#invokation\npygeodesy.solveBase._SolveCapsBase._Exact\tpygeodesy.solveBase._SolveCapsBase-class.html#_Exact\npygeodesy.solveBase._SolveCapsBase._e_option\tpygeodesy.solveBase._SolveCapsBase-class.html#_e_option\npygeodesy.solveBase._SolveCapsBase.ellipsoid\tpygeodesy.solveBase._SolveCapsBase-class.html#ellipsoid\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.solveBase._SolveBase.unroll\tpygeodesy.solveBase._SolveBase-class.html#unroll\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.solveBase._SolveCapsBase._E_option\tpygeodesy.solveBase._SolveCapsBase-class.html#_E_option\npygeodesy.solveBase._SolveCapsBase.invoke\tpygeodesy.solveBase._SolveCapsBase-class.html#invoke\npygeodesy.solveBase._SolveGDictBase.toStr\tpygeodesy.solveBase._SolveGDictBase-class.html#toStr\npygeodesy.solveBase._SolveCapsBase._datum\tpygeodesy.solveBase._SolveCapsBase-class.html#_datum\npygeodesy.karney._CapsBase.LONGITUDE\tpygeodesy.karney._CapsBase-class.html#LONGITUDE\npygeodesy.karney._CapsBase.caps\tpygeodesy.karney._CapsBase-class.html#caps\npygeodesy.karney._CapsBase.STANDARD_LINE\tpygeodesy.karney._CapsBase-class.html#STANDARD_LINE\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.solveBase._SolveCapsBase._invokat\tpygeodesy.solveBase._SolveCapsBase-class.html#_invokat\npygeodesy.karney._CapsBase._iter2tion\tpygeodesy.karney._CapsBase-class.html#_iter2tion\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.solveBase._SolveCapsBase._invoke\tpygeodesy.solveBase._SolveCapsBase-class.html#_invoke\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.karney._CapsBase.debug\tpygeodesy.karney._CapsBase-class.html#debug\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.karney._CapsBase.DISTANCE_IN\tpygeodesy.karney._CapsBase-class.html#DISTANCE_IN\npygeodesy.named._NamedBase.toRepr\tpygeodesy.named._NamedBase-class.html#toRepr\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.karney._CapsBase.EMPTY\tpygeodesy.karney._CapsBase-class.html#EMPTY\npygeodesy.rhumb.solve._RhumbSolveBase._Names_Inverse\tpygeodesy.rhumb.solve._RhumbSolveBase-class.html#_Names_Inverse\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.rhumb.solve._RhumbSolveBase._Names_Distance\tpygeodesy.rhumb.solve._RhumbSolveBase-class.html#_Names_Distance\npygeodesy.solveBase._SolveCapsBase.version\tpygeodesy.solveBase._SolveCapsBase-class.html#version\npygeodesy.solveBase._SolveCapsBase.flattening\tpygeodesy.solveBase._SolveCapsBase-class.html#flattening\npygeodesy.solveBase._SolveBase._reverse2\tpygeodesy.solveBase._SolveBase-class.html#_reverse2\npygeodesy.solveBase._SolveCapsBase._setXable\tpygeodesy.solveBase._SolveCapsBase-class.html#_setXable\npygeodesy.solveBase._SolveCapsBase._mpd\tpygeodesy.solveBase._SolveCapsBase-class.html#_mpd\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.rhumb.solve._RhumbSolveBase._Xable_path\tpygeodesy.rhumb.solve._RhumbSolveBase-class.html#_Xable_path\npygeodesy.karney._CapsBase.AZIMUTH\tpygeodesy.karney._CapsBase-class.html#AZIMUTH\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.solveBase._SolveCapsBase._prec2stdin\tpygeodesy.solveBase._SolveCapsBase-class.html#_prec2stdin\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.karney._CapsBase.DISTANCE\tpygeodesy.karney._CapsBase-class.html#DISTANCE\npygeodesy.karney._CapsBase._debug\tpygeodesy.karney._CapsBase-class.html#_debug\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.solveBase._SolveGDictBase.ArcDirect\tpygeodesy.solveBase._SolveGDictBase-class.html#ArcDirect\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._NamedBase.__repr__\tpygeodesy.named._NamedBase-class.html#__repr__\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.rhumb.solve._RhumbSolveBase._Names_Direct\tpygeodesy.rhumb.solve._RhumbSolveBase-class.html#_Names_Direct\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.solveBase._SolveCapsBase.verbose\tpygeodesy.solveBase._SolveCapsBase-class.html#verbose\npygeodesy.rhumb.solve._RhumbSolveBase.RhumbSolve\tpygeodesy.rhumb.solve._RhumbSolveBase-class.html#RhumbSolve\npygeodesy.named._NamedBase.others\tpygeodesy.named._NamedBase-class.html#others\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.solveBase._SolveCapsBase._p_option\tpygeodesy.solveBase._SolveCapsBase-class.html#_p_option\npygeodesy.solveBase._SolveCapsBase._linelimit\tpygeodesy.solveBase._SolveCapsBase-class.html#_linelimit\npygeodesy.solveBase._SolveBase.reverse2\tpygeodesy.solveBase._SolveBase-class.html#reverse2\npygeodesy.solveBase._SolveCapsBase.linelimit\tpygeodesy.solveBase._SolveCapsBase-class.html#linelimit\npygeodesy.karney._CapsBase.AREA\tpygeodesy.karney._CapsBase-class.html#AREA\npygeodesy.solveBase._SolveCapsBase.prec\tpygeodesy.solveBase._SolveCapsBase-class.html#prec\npygeodesy.karney._CapsBase.GEODESICSCALE\tpygeodesy.karney._CapsBase-class.html#GEODESICSCALE\npygeodesy.solveBase._SolveGDictBase.Inverse1\tpygeodesy.solveBase._SolveGDictBase-class.html#Inverse1\npygeodesy.solveBase._SolveCapsBase._DictInvoke2\tpygeodesy.solveBase._SolveCapsBase-class.html#_DictInvoke2\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.solveBase._SolveCapsBase._status\tpygeodesy.solveBase._SolveCapsBase-class.html#_status\npygeodesy.solveBase._SolveCapsBase.Exact\tpygeodesy.solveBase._SolveCapsBase-class.html#Exact\npygeodesy.solveBase._SolveCapsBase._Dicts\tpygeodesy.solveBase._SolveCapsBase-class.html#_Dicts\npygeodesy.rhumb.solve._RhumbSolveBase._Error\tpygeodesy.errors.RhumbError-class.html\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.solveBase._SolveCapsBase._prec\tpygeodesy.solveBase._SolveCapsBase-class.html#_prec\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.karney._CapsBase.STANDARD\tpygeodesy.karney._CapsBase-class.html#STANDARD\npygeodesy.karney._CapsBase._caps\tpygeodesy.karney._CapsBase-class.html#_caps\npygeodesy.solveBase._SolveBase._unroll\tpygeodesy.solveBase._SolveBase-class.html#_unroll\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.solveBase._SolveCapsBase._verbose\tpygeodesy.solveBase._SolveCapsBase-class.html#_verbose\npygeodesy.karney._CapsBase.ALL\tpygeodesy.karney._CapsBase-class.html#ALL\npygeodesy.solveBase._SolveCapsBase.b\tpygeodesy.solveBase._SolveCapsBase-class.html#b\npygeodesy.solveBase._SolveCapsBase.f\tpygeodesy.solveBase._SolveCapsBase-class.html#f\npygeodesy.solveBase._SolveCapsBase._toStdin\tpygeodesy.solveBase._SolveCapsBase-class.html#_toStdin\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.solveBase._SolveCapsBase._Dict\tpygeodesy.solveBase._SolveCapsBase-class.html#_Dict\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.rhumb.solve._RhumbSolveBase._Xable_name\tpygeodesy.rhumb.solve._RhumbSolveBase-class.html#_Xable_name\npygeodesy.rhumb.solve._RhumbSolveBase._cmdBasic\tpygeodesy.rhumb.solve._RhumbSolveBase-class.html#_cmdBasic\npygeodesy.solveBase._SolveCapsBase._print\tpygeodesy.solveBase._SolveCapsBase-class.html#_print\npygeodesy.karney._CapsBase.LINE_OFF\tpygeodesy.karney._CapsBase-class.html#LINE_OFF\npygeodesy.solveBase._SolveGDictBase.__init__\tpygeodesy.solveBase._SolveGDictBase-class.html#__init__\npygeodesy.karney._CapsBase.LINE_CAPS\tpygeodesy.karney._CapsBase-class.html#LINE_CAPS\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.solveBase._SolveCapsBase.invokat\tpygeodesy.solveBase._SolveCapsBase-class.html#invokat\npygeodesy.solveBase._SolveCapsBase.status\tpygeodesy.solveBase._SolveCapsBase-class.html#status\npygeodesy.karney._CapsBase.LONG_UNROLL\tpygeodesy.karney._CapsBase-class.html#LONG_UNROLL\npygeodesy.solveBase._SolveCapsBase._invokation\tpygeodesy.solveBase._SolveCapsBase-class.html#_invokation\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.solveBase._SolveCapsBase.a\tpygeodesy.solveBase._SolveCapsBase-class.html#a\npygeodesy.karney._CapsBase.REDUCEDLENGTH\tpygeodesy.karney._CapsBase-class.html#REDUCEDLENGTH\npygeodesy.solveBase._SolveGDictBase.Direct\tpygeodesy.solveBase._SolveGDictBase-class.html#Direct\npygeodesy.rhumb.solve._RhumbSolveBase._s_option\tpygeodesy.rhumb.solve._RhumbSolveBase-class.html#_s_option\npygeodesy.karney._CapsBase.LATITUDE\tpygeodesy.karney._CapsBase-class.html#LATITUDE\npygeodesy.karney._CapsBase.caps_\tpygeodesy.karney._CapsBase-class.html#caps_\npygeodesy.solveBase._SolveBase\tpygeodesy.solveBase._SolveBase-class.html\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedBase.__str__\tpygeodesy.named._NamedBase-class.html#__str__\npygeodesy.solveBase._SolveCapsBase.datum\tpygeodesy.solveBase._SolveCapsBase-class.html#datum\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.karney._CapsBase.NONFINITONAN\tpygeodesy.karney._CapsBase-class.html#NONFINITONAN\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.solveBase._SolveCapsBase.invokation\tpygeodesy.solveBase._SolveCapsBase-class.html#invokation\npygeodesy.solveBase._SolveCapsBase._Exact\tpygeodesy.solveBase._SolveCapsBase-class.html#_Exact\npygeodesy.solveBase._SolveCapsBase._e_option\tpygeodesy.solveBase._SolveCapsBase-class.html#_e_option\npygeodesy.solveBase._SolveCapsBase.ellipsoid\tpygeodesy.solveBase._SolveCapsBase-class.html#ellipsoid\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.solveBase._SolveBase.unroll\tpygeodesy.solveBase._SolveBase-class.html#unroll\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.solveBase._SolveCapsBase._E_option\tpygeodesy.solveBase._SolveCapsBase-class.html#_E_option\npygeodesy.solveBase._SolveCapsBase.invoke\tpygeodesy.solveBase._SolveCapsBase-class.html#invoke\npygeodesy.solveBase._SolveBase.toStr\tpygeodesy.solveBase._SolveBase-class.html#toStr\npygeodesy.solveBase._SolveCapsBase._datum\tpygeodesy.solveBase._SolveCapsBase-class.html#_datum\npygeodesy.karney._CapsBase.LONGITUDE\tpygeodesy.karney._CapsBase-class.html#LONGITUDE\npygeodesy.karney._CapsBase.caps\tpygeodesy.karney._CapsBase-class.html#caps\npygeodesy.karney._CapsBase.STANDARD_LINE\tpygeodesy.karney._CapsBase-class.html#STANDARD_LINE\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.solveBase._SolveCapsBase._invokat\tpygeodesy.solveBase._SolveCapsBase-class.html#_invokat\npygeodesy.karney._CapsBase._iter2tion\tpygeodesy.karney._CapsBase-class.html#_iter2tion\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.solveBase._SolveCapsBase._invoke\tpygeodesy.solveBase._SolveCapsBase-class.html#_invoke\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.karney._CapsBase.debug\tpygeodesy.karney._CapsBase-class.html#debug\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.karney._CapsBase.DISTANCE_IN\tpygeodesy.karney._CapsBase-class.html#DISTANCE_IN\npygeodesy.named._NamedBase.toRepr\tpygeodesy.named._NamedBase-class.html#toRepr\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.karney._CapsBase.EMPTY\tpygeodesy.karney._CapsBase-class.html#EMPTY\npygeodesy.solveBase._SolveBase._Names_Inverse\tpygeodesy.solveBase._SolveBase-class.html#_Names_Inverse\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.solveBase._SolveCapsBase.version\tpygeodesy.solveBase._SolveCapsBase-class.html#version\npygeodesy.solveBase._SolveCapsBase.flattening\tpygeodesy.solveBase._SolveCapsBase-class.html#flattening\npygeodesy.solveBase._SolveBase._reverse2\tpygeodesy.solveBase._SolveBase-class.html#_reverse2\npygeodesy.solveBase._SolveCapsBase._setXable\tpygeodesy.solveBase._SolveCapsBase-class.html#_setXable\npygeodesy.solveBase._SolveCapsBase._mpd\tpygeodesy.solveBase._SolveCapsBase-class.html#_mpd\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.solveBase._SolveCapsBase._Xable_path\tpygeodesy.solveBase._SolveCapsBase-class.html#_Xable_path\npygeodesy.karney._CapsBase.AZIMUTH\tpygeodesy.karney._CapsBase-class.html#AZIMUTH\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.solveBase._SolveCapsBase._prec2stdin\tpygeodesy.solveBase._SolveCapsBase-class.html#_prec2stdin\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.karney._CapsBase.DISTANCE\tpygeodesy.karney._CapsBase-class.html#DISTANCE\npygeodesy.karney._CapsBase._debug\tpygeodesy.karney._CapsBase-class.html#_debug\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._NamedBase.__repr__\tpygeodesy.named._NamedBase-class.html#__repr__\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.solveBase._SolveBase._Names_Direct\tpygeodesy.solveBase._SolveBase-class.html#_Names_Direct\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.solveBase._SolveCapsBase.verbose\tpygeodesy.solveBase._SolveCapsBase-class.html#verbose\npygeodesy.named._NamedBase.others\tpygeodesy.named._NamedBase-class.html#others\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.solveBase._SolveCapsBase._p_option\tpygeodesy.solveBase._SolveCapsBase-class.html#_p_option\npygeodesy.solveBase._SolveCapsBase._linelimit\tpygeodesy.solveBase._SolveCapsBase-class.html#_linelimit\npygeodesy.solveBase._SolveBase.reverse2\tpygeodesy.solveBase._SolveBase-class.html#reverse2\npygeodesy.solveBase._SolveCapsBase.linelimit\tpygeodesy.solveBase._SolveCapsBase-class.html#linelimit\npygeodesy.karney._CapsBase.AREA\tpygeodesy.karney._CapsBase-class.html#AREA\npygeodesy.solveBase._SolveCapsBase.prec\tpygeodesy.solveBase._SolveCapsBase-class.html#prec\npygeodesy.karney._CapsBase.GEODESICSCALE\tpygeodesy.karney._CapsBase-class.html#GEODESICSCALE\npygeodesy.solveBase._SolveCapsBase._DictInvoke2\tpygeodesy.solveBase._SolveCapsBase-class.html#_DictInvoke2\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.solveBase._SolveCapsBase._status\tpygeodesy.solveBase._SolveCapsBase-class.html#_status\npygeodesy.solveBase._SolveCapsBase.Exact\tpygeodesy.solveBase._SolveCapsBase-class.html#Exact\npygeodesy.solveBase._SolveCapsBase._Dicts\tpygeodesy.solveBase._SolveCapsBase-class.html#_Dicts\npygeodesy.solveBase._SolveCapsBase._Error\tpygeodesy.solveBase._SolveCapsBase-class.html#_Error\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.solveBase._SolveCapsBase._prec\tpygeodesy.solveBase._SolveCapsBase-class.html#_prec\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.karney._CapsBase.STANDARD\tpygeodesy.karney._CapsBase-class.html#STANDARD\npygeodesy.karney._CapsBase._caps\tpygeodesy.karney._CapsBase-class.html#_caps\npygeodesy.solveBase._SolveBase._unroll\tpygeodesy.solveBase._SolveBase-class.html#_unroll\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.solveBase._SolveCapsBase._verbose\tpygeodesy.solveBase._SolveCapsBase-class.html#_verbose\npygeodesy.karney._CapsBase.ALL\tpygeodesy.karney._CapsBase-class.html#ALL\npygeodesy.solveBase._SolveCapsBase.b\tpygeodesy.solveBase._SolveCapsBase-class.html#b\npygeodesy.solveBase._SolveCapsBase.f\tpygeodesy.solveBase._SolveCapsBase-class.html#f\npygeodesy.solveBase._SolveCapsBase._toStdin\tpygeodesy.solveBase._SolveCapsBase-class.html#_toStdin\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.solveBase._SolveCapsBase._Dict\tpygeodesy.solveBase._SolveCapsBase-class.html#_Dict\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.solveBase._SolveCapsBase._Xable_name\tpygeodesy.solveBase._SolveCapsBase-class.html#_Xable_name\npygeodesy.solveBase._SolveCapsBase._cmdBasic\tpygeodesy.solveBase._SolveCapsBase-class.html#_cmdBasic\npygeodesy.solveBase._SolveCapsBase._print\tpygeodesy.solveBase._SolveCapsBase-class.html#_print\npygeodesy.karney._CapsBase.LINE_OFF\tpygeodesy.karney._CapsBase-class.html#LINE_OFF\npygeodesy.karney._CapsBase.LINE_CAPS\tpygeodesy.karney._CapsBase-class.html#LINE_CAPS\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.solveBase._SolveCapsBase.invokat\tpygeodesy.solveBase._SolveCapsBase-class.html#invokat\npygeodesy.solveBase._SolveCapsBase.status\tpygeodesy.solveBase._SolveCapsBase-class.html#status\npygeodesy.karney._CapsBase.LONG_UNROLL\tpygeodesy.karney._CapsBase-class.html#LONG_UNROLL\npygeodesy.solveBase._SolveCapsBase._invokation\tpygeodesy.solveBase._SolveCapsBase-class.html#_invokation\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.solveBase._SolveCapsBase.a\tpygeodesy.solveBase._SolveCapsBase-class.html#a\npygeodesy.karney._CapsBase.REDUCEDLENGTH\tpygeodesy.karney._CapsBase-class.html#REDUCEDLENGTH\npygeodesy.karney._CapsBase.LATITUDE\tpygeodesy.karney._CapsBase-class.html#LATITUDE\npygeodesy.karney._CapsBase.caps_\tpygeodesy.karney._CapsBase-class.html#caps_\npygeodesy.solveBase._SolveCapsBase\tpygeodesy.solveBase._SolveCapsBase-class.html\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedBase.__str__\tpygeodesy.named._NamedBase-class.html#__str__\npygeodesy.solveBase._SolveCapsBase.datum\tpygeodesy.solveBase._SolveCapsBase-class.html#datum\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.karney._CapsBase.NONFINITONAN\tpygeodesy.karney._CapsBase-class.html#NONFINITONAN\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.solveBase._SolveCapsBase.invokation\tpygeodesy.solveBase._SolveCapsBase-class.html#invokation\npygeodesy.solveBase._SolveCapsBase._Exact\tpygeodesy.solveBase._SolveCapsBase-class.html#_Exact\npygeodesy.solveBase._SolveCapsBase._e_option\tpygeodesy.solveBase._SolveCapsBase-class.html#_e_option\npygeodesy.solveBase._SolveCapsBase.ellipsoid\tpygeodesy.solveBase._SolveCapsBase-class.html#ellipsoid\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.solveBase._SolveCapsBase._E_option\tpygeodesy.solveBase._SolveCapsBase-class.html#_E_option\npygeodesy.solveBase._SolveCapsBase.invoke\tpygeodesy.solveBase._SolveCapsBase-class.html#invoke\npygeodesy.named._NamedBase.toStr\tpygeodesy.named._NamedBase-class.html#toStr\npygeodesy.solveBase._SolveCapsBase._datum\tpygeodesy.solveBase._SolveCapsBase-class.html#_datum\npygeodesy.karney._CapsBase.LONGITUDE\tpygeodesy.karney._CapsBase-class.html#LONGITUDE\npygeodesy.karney._CapsBase.caps\tpygeodesy.karney._CapsBase-class.html#caps\npygeodesy.karney._CapsBase.STANDARD_LINE\tpygeodesy.karney._CapsBase-class.html#STANDARD_LINE\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.solveBase._SolveCapsBase._invokat\tpygeodesy.solveBase._SolveCapsBase-class.html#_invokat\npygeodesy.karney._CapsBase._iter2tion\tpygeodesy.karney._CapsBase-class.html#_iter2tion\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.solveBase._SolveCapsBase._invoke\tpygeodesy.solveBase._SolveCapsBase-class.html#_invoke\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.karney._CapsBase.debug\tpygeodesy.karney._CapsBase-class.html#debug\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.karney._CapsBase.DISTANCE_IN\tpygeodesy.karney._CapsBase-class.html#DISTANCE_IN\npygeodesy.named._NamedBase.toRepr\tpygeodesy.named._NamedBase-class.html#toRepr\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.karney._CapsBase.EMPTY\tpygeodesy.karney._CapsBase-class.html#EMPTY\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.solveBase._SolveCapsBase.version\tpygeodesy.solveBase._SolveCapsBase-class.html#version\npygeodesy.solveBase._SolveCapsBase.flattening\tpygeodesy.solveBase._SolveCapsBase-class.html#flattening\npygeodesy.solveBase._SolveCapsBase._setXable\tpygeodesy.solveBase._SolveCapsBase-class.html#_setXable\npygeodesy.solveBase._SolveCapsBase._mpd\tpygeodesy.solveBase._SolveCapsBase-class.html#_mpd\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.solveBase._SolveCapsBase._Xable_path\tpygeodesy.solveBase._SolveCapsBase-class.html#_Xable_path\npygeodesy.karney._CapsBase.AZIMUTH\tpygeodesy.karney._CapsBase-class.html#AZIMUTH\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.solveBase._SolveCapsBase.linelimit\tpygeodesy.solveBase._SolveCapsBase-class.html#linelimit\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.karney._CapsBase.DISTANCE\tpygeodesy.karney._CapsBase-class.html#DISTANCE\npygeodesy.karney._CapsBase._debug\tpygeodesy.karney._CapsBase-class.html#_debug\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._NamedBase.__repr__\tpygeodesy.named._NamedBase-class.html#__repr__\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.solveBase._SolveCapsBase.verbose\tpygeodesy.solveBase._SolveCapsBase-class.html#verbose\npygeodesy.named._NamedBase.others\tpygeodesy.named._NamedBase-class.html#others\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.solveBase._SolveCapsBase._p_option\tpygeodesy.solveBase._SolveCapsBase-class.html#_p_option\npygeodesy.solveBase._SolveCapsBase._linelimit\tpygeodesy.solveBase._SolveCapsBase-class.html#_linelimit\npygeodesy.solveBase._SolveCapsBase._prec2stdin\tpygeodesy.solveBase._SolveCapsBase-class.html#_prec2stdin\npygeodesy.karney._CapsBase.AREA\tpygeodesy.karney._CapsBase-class.html#AREA\npygeodesy.solveBase._SolveCapsBase.prec\tpygeodesy.solveBase._SolveCapsBase-class.html#prec\npygeodesy.karney._CapsBase.GEODESICSCALE\tpygeodesy.karney._CapsBase-class.html#GEODESICSCALE\npygeodesy.solveBase._SolveCapsBase._DictInvoke2\tpygeodesy.solveBase._SolveCapsBase-class.html#_DictInvoke2\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.solveBase._SolveCapsBase._status\tpygeodesy.solveBase._SolveCapsBase-class.html#_status\npygeodesy.solveBase._SolveCapsBase.Exact\tpygeodesy.solveBase._SolveCapsBase-class.html#Exact\npygeodesy.solveBase._SolveCapsBase._Dicts\tpygeodesy.solveBase._SolveCapsBase-class.html#_Dicts\npygeodesy.solveBase._SolveCapsBase._Error\tpygeodesy.solveBase._SolveCapsBase-class.html#_Error\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.solveBase._SolveCapsBase._prec\tpygeodesy.solveBase._SolveCapsBase-class.html#_prec\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.karney._CapsBase.STANDARD\tpygeodesy.karney._CapsBase-class.html#STANDARD\npygeodesy.karney._CapsBase._caps\tpygeodesy.karney._CapsBase-class.html#_caps\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.solveBase._SolveCapsBase._verbose\tpygeodesy.solveBase._SolveCapsBase-class.html#_verbose\npygeodesy.karney._CapsBase.ALL\tpygeodesy.karney._CapsBase-class.html#ALL\npygeodesy.solveBase._SolveCapsBase.b\tpygeodesy.solveBase._SolveCapsBase-class.html#b\npygeodesy.solveBase._SolveCapsBase.f\tpygeodesy.solveBase._SolveCapsBase-class.html#f\npygeodesy.solveBase._SolveCapsBase._toStdin\tpygeodesy.solveBase._SolveCapsBase-class.html#_toStdin\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.solveBase._SolveCapsBase._Dict\tpygeodesy.solveBase._SolveCapsBase-class.html#_Dict\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.solveBase._SolveCapsBase._print\tpygeodesy.solveBase._SolveCapsBase-class.html#_print\npygeodesy.solveBase._SolveCapsBase._cmdBasic\tpygeodesy.solveBase._SolveCapsBase-class.html#_cmdBasic\npygeodesy.solveBase._SolveCapsBase._Xable_name\tpygeodesy.solveBase._SolveCapsBase-class.html#_Xable_name\npygeodesy.karney._CapsBase.LINE_OFF\tpygeodesy.karney._CapsBase-class.html#LINE_OFF\npygeodesy.karney._CapsBase.LINE_CAPS\tpygeodesy.karney._CapsBase-class.html#LINE_CAPS\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.solveBase._SolveCapsBase.invokat\tpygeodesy.solveBase._SolveCapsBase-class.html#invokat\npygeodesy.solveBase._SolveCapsBase.status\tpygeodesy.solveBase._SolveCapsBase-class.html#status\npygeodesy.karney._CapsBase.LONG_UNROLL\tpygeodesy.karney._CapsBase-class.html#LONG_UNROLL\npygeodesy.solveBase._SolveCapsBase._invokation\tpygeodesy.solveBase._SolveCapsBase-class.html#_invokation\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.solveBase._SolveCapsBase.a\tpygeodesy.solveBase._SolveCapsBase-class.html#a\npygeodesy.karney._CapsBase.REDUCEDLENGTH\tpygeodesy.karney._CapsBase-class.html#REDUCEDLENGTH\npygeodesy.karney._CapsBase.LATITUDE\tpygeodesy.karney._CapsBase-class.html#LATITUDE\npygeodesy.karney._CapsBase.caps_\tpygeodesy.karney._CapsBase-class.html#caps_\npygeodesy.solveBase._SolveGDictBase\tpygeodesy.solveBase._SolveGDictBase-class.html\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.solveBase._SolveGDictBase.Inverse\tpygeodesy.solveBase._SolveGDictBase-class.html#Inverse\npygeodesy.named._NamedBase.__str__\tpygeodesy.named._NamedBase-class.html#__str__\npygeodesy.solveBase._SolveCapsBase.datum\tpygeodesy.solveBase._SolveCapsBase-class.html#datum\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.karney._CapsBase.NONFINITONAN\tpygeodesy.karney._CapsBase-class.html#NONFINITONAN\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.solveBase._SolveCapsBase.invokation\tpygeodesy.solveBase._SolveCapsBase-class.html#invokation\npygeodesy.solveBase._SolveCapsBase._Exact\tpygeodesy.solveBase._SolveCapsBase-class.html#_Exact\npygeodesy.solveBase._SolveCapsBase._e_option\tpygeodesy.solveBase._SolveCapsBase-class.html#_e_option\npygeodesy.solveBase._SolveCapsBase.ellipsoid\tpygeodesy.solveBase._SolveCapsBase-class.html#ellipsoid\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.solveBase._SolveBase.unroll\tpygeodesy.solveBase._SolveBase-class.html#unroll\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.solveBase._SolveCapsBase._E_option\tpygeodesy.solveBase._SolveCapsBase-class.html#_E_option\npygeodesy.solveBase._SolveCapsBase.invoke\tpygeodesy.solveBase._SolveCapsBase-class.html#invoke\npygeodesy.solveBase._SolveGDictBase.toStr\tpygeodesy.solveBase._SolveGDictBase-class.html#toStr\npygeodesy.solveBase._SolveCapsBase._datum\tpygeodesy.solveBase._SolveCapsBase-class.html#_datum\npygeodesy.karney._CapsBase.LONGITUDE\tpygeodesy.karney._CapsBase-class.html#LONGITUDE\npygeodesy.karney._CapsBase.caps\tpygeodesy.karney._CapsBase-class.html#caps\npygeodesy.karney._CapsBase.STANDARD_LINE\tpygeodesy.karney._CapsBase-class.html#STANDARD_LINE\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.solveBase._SolveCapsBase._invokat\tpygeodesy.solveBase._SolveCapsBase-class.html#_invokat\npygeodesy.karney._CapsBase._iter2tion\tpygeodesy.karney._CapsBase-class.html#_iter2tion\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.solveBase._SolveCapsBase._invoke\tpygeodesy.solveBase._SolveCapsBase-class.html#_invoke\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.karney._CapsBase.debug\tpygeodesy.karney._CapsBase-class.html#debug\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.karney._CapsBase.DISTANCE_IN\tpygeodesy.karney._CapsBase-class.html#DISTANCE_IN\npygeodesy.named._NamedBase.toRepr\tpygeodesy.named._NamedBase-class.html#toRepr\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.karney._CapsBase.EMPTY\tpygeodesy.karney._CapsBase-class.html#EMPTY\npygeodesy.solveBase._SolveBase._Names_Inverse\tpygeodesy.solveBase._SolveBase-class.html#_Names_Inverse\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.solveBase._SolveCapsBase.version\tpygeodesy.solveBase._SolveCapsBase-class.html#version\npygeodesy.solveBase._SolveCapsBase.flattening\tpygeodesy.solveBase._SolveCapsBase-class.html#flattening\npygeodesy.solveBase._SolveBase._reverse2\tpygeodesy.solveBase._SolveBase-class.html#_reverse2\npygeodesy.solveBase._SolveCapsBase._setXable\tpygeodesy.solveBase._SolveCapsBase-class.html#_setXable\npygeodesy.solveBase._SolveCapsBase._mpd\tpygeodesy.solveBase._SolveCapsBase-class.html#_mpd\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.solveBase._SolveGDictBase.ArcDirect\tpygeodesy.solveBase._SolveGDictBase-class.html#ArcDirect\npygeodesy.named._NamedBase.others\tpygeodesy.named._NamedBase-class.html#others\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.solveBase._SolveCapsBase._prec2stdin\tpygeodesy.solveBase._SolveCapsBase-class.html#_prec2stdin\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.karney._CapsBase.DISTANCE\tpygeodesy.karney._CapsBase-class.html#DISTANCE\npygeodesy.karney._CapsBase._debug\tpygeodesy.karney._CapsBase-class.html#_debug\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.solveBase._SolveCapsBase._Xable_path\tpygeodesy.solveBase._SolveCapsBase-class.html#_Xable_path\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._NamedBase.__repr__\tpygeodesy.named._NamedBase-class.html#__repr__\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.solveBase._SolveBase._Names_Direct\tpygeodesy.solveBase._SolveBase-class.html#_Names_Direct\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.solveBase._SolveCapsBase.verbose\tpygeodesy.solveBase._SolveCapsBase-class.html#verbose\npygeodesy.karney._CapsBase.AZIMUTH\tpygeodesy.karney._CapsBase-class.html#AZIMUTH\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.solveBase._SolveCapsBase._p_option\tpygeodesy.solveBase._SolveCapsBase-class.html#_p_option\npygeodesy.solveBase._SolveCapsBase._linelimit\tpygeodesy.solveBase._SolveCapsBase-class.html#_linelimit\npygeodesy.solveBase._SolveBase.reverse2\tpygeodesy.solveBase._SolveBase-class.html#reverse2\npygeodesy.solveBase._SolveCapsBase.linelimit\tpygeodesy.solveBase._SolveCapsBase-class.html#linelimit\npygeodesy.karney._CapsBase.AREA\tpygeodesy.karney._CapsBase-class.html#AREA\npygeodesy.solveBase._SolveCapsBase.prec\tpygeodesy.solveBase._SolveCapsBase-class.html#prec\npygeodesy.karney._CapsBase.GEODESICSCALE\tpygeodesy.karney._CapsBase-class.html#GEODESICSCALE\npygeodesy.solveBase._SolveGDictBase.Inverse1\tpygeodesy.solveBase._SolveGDictBase-class.html#Inverse1\npygeodesy.solveBase._SolveCapsBase._DictInvoke2\tpygeodesy.solveBase._SolveCapsBase-class.html#_DictInvoke2\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.solveBase._SolveCapsBase._status\tpygeodesy.solveBase._SolveCapsBase-class.html#_status\npygeodesy.solveBase._SolveCapsBase.Exact\tpygeodesy.solveBase._SolveCapsBase-class.html#Exact\npygeodesy.solveBase._SolveCapsBase._Dicts\tpygeodesy.solveBase._SolveCapsBase-class.html#_Dicts\npygeodesy.solveBase._SolveCapsBase._Error\tpygeodesy.solveBase._SolveCapsBase-class.html#_Error\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.solveBase._SolveCapsBase._prec\tpygeodesy.solveBase._SolveCapsBase-class.html#_prec\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.karney._CapsBase.STANDARD\tpygeodesy.karney._CapsBase-class.html#STANDARD\npygeodesy.karney._CapsBase._caps\tpygeodesy.karney._CapsBase-class.html#_caps\npygeodesy.solveBase._SolveBase._unroll\tpygeodesy.solveBase._SolveBase-class.html#_unroll\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.solveBase._SolveCapsBase._verbose\tpygeodesy.solveBase._SolveCapsBase-class.html#_verbose\npygeodesy.karney._CapsBase.ALL\tpygeodesy.karney._CapsBase-class.html#ALL\npygeodesy.solveBase._SolveCapsBase.b\tpygeodesy.solveBase._SolveCapsBase-class.html#b\npygeodesy.solveBase._SolveCapsBase.f\tpygeodesy.solveBase._SolveCapsBase-class.html#f\npygeodesy.solveBase._SolveCapsBase._toStdin\tpygeodesy.solveBase._SolveCapsBase-class.html#_toStdin\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.solveBase._SolveCapsBase._Dict\tpygeodesy.solveBase._SolveCapsBase-class.html#_Dict\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.solveBase._SolveCapsBase._print\tpygeodesy.solveBase._SolveCapsBase-class.html#_print\npygeodesy.solveBase._SolveCapsBase._cmdBasic\tpygeodesy.solveBase._SolveCapsBase-class.html#_cmdBasic\npygeodesy.solveBase._SolveCapsBase._Xable_name\tpygeodesy.solveBase._SolveCapsBase-class.html#_Xable_name\npygeodesy.karney._CapsBase.LINE_OFF\tpygeodesy.karney._CapsBase-class.html#LINE_OFF\npygeodesy.solveBase._SolveGDictBase.__init__\tpygeodesy.solveBase._SolveGDictBase-class.html#__init__\npygeodesy.karney._CapsBase.LINE_CAPS\tpygeodesy.karney._CapsBase-class.html#LINE_CAPS\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.solveBase._SolveCapsBase.invokat\tpygeodesy.solveBase._SolveCapsBase-class.html#invokat\npygeodesy.solveBase._SolveCapsBase.status\tpygeodesy.solveBase._SolveCapsBase-class.html#status\npygeodesy.karney._CapsBase.LONG_UNROLL\tpygeodesy.karney._CapsBase-class.html#LONG_UNROLL\npygeodesy.solveBase._SolveCapsBase._invokation\tpygeodesy.solveBase._SolveCapsBase-class.html#_invokation\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.solveBase._SolveCapsBase.a\tpygeodesy.solveBase._SolveCapsBase-class.html#a\npygeodesy.karney._CapsBase.REDUCEDLENGTH\tpygeodesy.karney._CapsBase-class.html#REDUCEDLENGTH\npygeodesy.solveBase._SolveGDictBase.Direct\tpygeodesy.solveBase._SolveGDictBase-class.html#Direct\npygeodesy.karney._CapsBase.LATITUDE\tpygeodesy.karney._CapsBase-class.html#LATITUDE\npygeodesy.karney._CapsBase.caps_\tpygeodesy.karney._CapsBase-class.html#caps_\npygeodesy.solveBase._SolveGDictLineBase\tpygeodesy.solveBase._SolveGDictLineBase-class.html\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.solveBase._SolveGDictBase.Inverse\tpygeodesy.solveBase._SolveGDictBase-class.html#Inverse\npygeodesy.named._NamedBase.__str__\tpygeodesy.named._NamedBase-class.html#__str__\npygeodesy.solveBase._SolveGDictLineBase.datum\tpygeodesy.solveBase._SolveGDictLineBase-class.html#datum\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.karney._CapsBase.NONFINITONAN\tpygeodesy.karney._CapsBase-class.html#NONFINITONAN\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.solveBase._SolveCapsBase.invokation\tpygeodesy.solveBase._SolveCapsBase-class.html#invokation\npygeodesy.solveBase._SolveCapsBase._Exact\tpygeodesy.solveBase._SolveCapsBase-class.html#_Exact\npygeodesy.solveBase._SolveCapsBase._e_option\tpygeodesy.solveBase._SolveCapsBase-class.html#_e_option\npygeodesy.solveBase._SolveGDictLineBase.ellipsoid\tpygeodesy.solveBase._SolveGDictLineBase-class.html#ellipsoid\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.solveBase._SolveBase.unroll\tpygeodesy.solveBase._SolveBase-class.html#unroll\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.solveBase._SolveCapsBase._E_option\tpygeodesy.solveBase._SolveCapsBase-class.html#_E_option\npygeodesy.solveBase._SolveCapsBase.invoke\tpygeodesy.solveBase._SolveCapsBase-class.html#invoke\npygeodesy.solveBase._SolveGDictLineBase.toStr\tpygeodesy.solveBase._SolveGDictLineBase-class.html#toStr\npygeodesy.solveBase._SolveCapsBase._datum\tpygeodesy.solveBase._SolveCapsBase-class.html#_datum\npygeodesy.karney._CapsBase.LONGITUDE\tpygeodesy.karney._CapsBase-class.html#LONGITUDE\npygeodesy.karney._CapsBase.caps\tpygeodesy.karney._CapsBase-class.html#caps\npygeodesy.karney._CapsBase.STANDARD_LINE\tpygeodesy.karney._CapsBase-class.html#STANDARD_LINE\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.solveBase._SolveGDictLineBase.lat1\tpygeodesy.solveBase._SolveGDictLineBase-class.html#lat1\npygeodesy.solveBase._SolveCapsBase._invokat\tpygeodesy.solveBase._SolveCapsBase-class.html#_invokat\npygeodesy.karney._CapsBase._iter2tion\tpygeodesy.karney._CapsBase-class.html#_iter2tion\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.solveBase._SolveCapsBase._invoke\tpygeodesy.solveBase._SolveCapsBase-class.html#_invoke\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.karney._CapsBase.debug\tpygeodesy.karney._CapsBase-class.html#debug\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.karney._CapsBase.DISTANCE_IN\tpygeodesy.karney._CapsBase-class.html#DISTANCE_IN\npygeodesy.named._NamedBase.toRepr\tpygeodesy.named._NamedBase-class.html#toRepr\npygeodesy.solveBase._SolveGDictLineBase._cmdDistance\tpygeodesy.solveBase._SolveGDictLineBase-class.html#_cmdDistance\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.karney._CapsBase.EMPTY\tpygeodesy.karney._CapsBase-class.html#EMPTY\npygeodesy.solveBase._SolveBase._Names_Inverse\tpygeodesy.solveBase._SolveBase-class.html#_Names_Inverse\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.solveBase._SolveCapsBase.version\tpygeodesy.solveBase._SolveCapsBase-class.html#version\npygeodesy.solveBase._SolveCapsBase.flattening\tpygeodesy.solveBase._SolveCapsBase-class.html#flattening\npygeodesy.solveBase._SolveBase._reverse2\tpygeodesy.solveBase._SolveBase-class.html#_reverse2\npygeodesy.solveBase._SolveCapsBase._setXable\tpygeodesy.solveBase._SolveCapsBase-class.html#_setXable\npygeodesy.solveBase._SolveCapsBase._mpd\tpygeodesy.solveBase._SolveCapsBase-class.html#_mpd\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.solveBase._SolveGDictBase.ArcDirect\tpygeodesy.solveBase._SolveGDictBase-class.html#ArcDirect\npygeodesy.named._NamedBase.others\tpygeodesy.named._NamedBase-class.html#others\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.solveBase._SolveCapsBase._prec2stdin\tpygeodesy.solveBase._SolveCapsBase-class.html#_prec2stdin\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.karney._CapsBase.DISTANCE\tpygeodesy.karney._CapsBase-class.html#DISTANCE\npygeodesy.karney._CapsBase._debug\tpygeodesy.karney._CapsBase-class.html#_debug\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.solveBase._SolveCapsBase._Xable_path\tpygeodesy.solveBase._SolveCapsBase-class.html#_Xable_path\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._NamedBase.__repr__\tpygeodesy.named._NamedBase-class.html#__repr__\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.solveBase._SolveBase._Names_Direct\tpygeodesy.solveBase._SolveBase-class.html#_Names_Direct\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.solveBase._SolveCapsBase.verbose\tpygeodesy.solveBase._SolveCapsBase-class.html#verbose\npygeodesy.karney._CapsBase.AZIMUTH\tpygeodesy.karney._CapsBase-class.html#AZIMUTH\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.solveBase._SolveCapsBase._p_option\tpygeodesy.solveBase._SolveCapsBase-class.html#_p_option\npygeodesy.solveBase._SolveCapsBase._linelimit\tpygeodesy.solveBase._SolveCapsBase-class.html#_linelimit\npygeodesy.solveBase._SolveBase.reverse2\tpygeodesy.solveBase._SolveBase-class.html#reverse2\npygeodesy.solveBase._SolveCapsBase.linelimit\tpygeodesy.solveBase._SolveCapsBase-class.html#linelimit\npygeodesy.karney._CapsBase.AREA\tpygeodesy.karney._CapsBase-class.html#AREA\npygeodesy.solveBase._SolveCapsBase.prec\tpygeodesy.solveBase._SolveCapsBase-class.html#prec\npygeodesy.karney._CapsBase.GEODESICSCALE\tpygeodesy.karney._CapsBase-class.html#GEODESICSCALE\npygeodesy.solveBase._SolveGDictBase.Inverse1\tpygeodesy.solveBase._SolveGDictBase-class.html#Inverse1\npygeodesy.solveBase._SolveCapsBase._DictInvoke2\tpygeodesy.solveBase._SolveCapsBase-class.html#_DictInvoke2\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.solveBase._SolveCapsBase._status\tpygeodesy.solveBase._SolveCapsBase-class.html#_status\npygeodesy.solveBase._SolveCapsBase.Exact\tpygeodesy.solveBase._SolveCapsBase-class.html#Exact\npygeodesy.solveBase._SolveCapsBase._Dicts\tpygeodesy.solveBase._SolveCapsBase-class.html#_Dicts\npygeodesy.solveBase._SolveCapsBase._Error\tpygeodesy.solveBase._SolveCapsBase-class.html#_Error\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.solveBase._SolveCapsBase._prec\tpygeodesy.solveBase._SolveCapsBase-class.html#_prec\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.karney._CapsBase.STANDARD\tpygeodesy.karney._CapsBase-class.html#STANDARD\npygeodesy.karney._CapsBase._caps\tpygeodesy.karney._CapsBase-class.html#_caps\npygeodesy.solveBase._SolveBase._unroll\tpygeodesy.solveBase._SolveBase-class.html#_unroll\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.solveBase._SolveCapsBase._verbose\tpygeodesy.solveBase._SolveCapsBase-class.html#_verbose\npygeodesy.karney._CapsBase.ALL\tpygeodesy.karney._CapsBase-class.html#ALL\npygeodesy.solveBase._SolveCapsBase.b\tpygeodesy.solveBase._SolveCapsBase-class.html#b\npygeodesy.solveBase._SolveCapsBase.f\tpygeodesy.solveBase._SolveCapsBase-class.html#f\npygeodesy.solveBase._SolveCapsBase._toStdin\tpygeodesy.solveBase._SolveCapsBase-class.html#_toStdin\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.solveBase._SolveGDictLineBase.lon1\tpygeodesy.solveBase._SolveGDictLineBase-class.html#lon1\npygeodesy.solveBase._SolveCapsBase._Dict\tpygeodesy.solveBase._SolveCapsBase-class.html#_Dict\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.solveBase._SolveCapsBase._print\tpygeodesy.solveBase._SolveCapsBase-class.html#_print\npygeodesy.solveBase._SolveCapsBase._cmdBasic\tpygeodesy.solveBase._SolveCapsBase-class.html#_cmdBasic\npygeodesy.solveBase._SolveCapsBase._Xable_name\tpygeodesy.solveBase._SolveCapsBase-class.html#_Xable_name\npygeodesy.karney._CapsBase.LINE_OFF\tpygeodesy.karney._CapsBase-class.html#LINE_OFF\npygeodesy.solveBase._SolveGDictLineBase._solve\tpygeodesy.solveBase._SolveGDictLineBase-class.html#_solve\npygeodesy.karney._CapsBase.LINE_CAPS\tpygeodesy.karney._CapsBase-class.html#LINE_CAPS\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.solveBase._SolveGDictLineBase.__init__\tpygeodesy.solveBase._SolveGDictLineBase-class.html#__init__\npygeodesy.solveBase._SolveCapsBase.invokat\tpygeodesy.solveBase._SolveCapsBase-class.html#invokat\npygeodesy.solveBase._SolveCapsBase.status\tpygeodesy.solveBase._SolveCapsBase-class.html#status\npygeodesy.karney._CapsBase.LONG_UNROLL\tpygeodesy.karney._CapsBase-class.html#LONG_UNROLL\npygeodesy.solveBase._SolveCapsBase._invokation\tpygeodesy.solveBase._SolveCapsBase-class.html#_invokation\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.solveBase._SolveCapsBase.a\tpygeodesy.solveBase._SolveCapsBase-class.html#a\npygeodesy.karney._CapsBase.REDUCEDLENGTH\tpygeodesy.karney._CapsBase-class.html#REDUCEDLENGTH\npygeodesy.solveBase._SolveGDictBase.Direct\tpygeodesy.solveBase._SolveGDictBase-class.html#Direct\npygeodesy.karney._CapsBase.LATITUDE\tpygeodesy.karney._CapsBase-class.html#LATITUDE\npygeodesy.karney._CapsBase.caps_\tpygeodesy.karney._CapsBase-class.html#caps_\npygeodesy.sphericalBase.CartesianSphericalBase\tpygeodesy.sphericalBase.CartesianSphericalBase-class.html\npygeodesy.vector3d.Vector3d.toCartesian\tpygeodesy.vector3d.Vector3d-class.html#toCartesian\npygeodesy.vector3dBase.Vector3dBase.__int__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__int__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.cartesianBase.CartesianBase.tienstra7\tpygeodesy.cartesianBase.CartesianBase-class.html#tienstra7\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedBase.__str__\tpygeodesy.named._NamedBase-class.html#__str__\npygeodesy.cartesianBase.CartesianBase.datum\tpygeodesy.cartesianBase.CartesianBase-class.html#datum\npygeodesy.vector3dBase.Vector3dBase.__imatmul__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__imatmul__\npygeodesy.cartesianBase.CartesianBase.toLatLon\tpygeodesy.cartesianBase.CartesianBase-class.html#toLatLon\npygeodesy.vector3dBase.Vector3dBase.times_\tpygeodesy.vector3dBase.Vector3dBase-class.html#times_\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.vector3dBase.Vector3dBase.__rdiv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rdiv__\npygeodesy.vector3dBase.Vector3dBase.__rmul__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rmul__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.vector3dBase.Vector3dBase.__lt__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__lt__\npygeodesy.cartesianBase.CartesianBase.philamheightdatum\tpygeodesy.cartesianBase.CartesianBase-class.html#philamheightdatum\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.cartesianBase.CartesianBase.to3llh\tpygeodesy.cartesianBase.CartesianBase-class.html#to3llh\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.vector3dBase.Vector3dBase.__cmp__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__cmp__\npygeodesy.vector3d.Vector3d.nearestOn\tpygeodesy.vector3d.Vector3d-class.html#nearestOn\npygeodesy.vector3dBase.Vector3dBase.minus_\tpygeodesy.vector3dBase.Vector3dBase-class.html#minus_\npygeodesy.vector3dBase.Vector3dBase.__rfloordiv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rfloordiv__\npygeodesy.cartesianBase.CartesianBase.tienstra\tpygeodesy.cartesianBase.CartesianBase-class.html#tienstra\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.cartesianBase.CartesianBase._ecef9\tpygeodesy.cartesianBase.CartesianBase-class.html#_ecef9\npygeodesy.vector3dBase.Vector3dBase.rotateAround\tpygeodesy.vector3dBase.Vector3dBase-class.html#rotateAround\npygeodesy.cartesianBase.CartesianBase.to2ab\tpygeodesy.cartesianBase.CartesianBase-class.html#to2ab\npygeodesy.cartesianBase.CartesianBase.toStr\tpygeodesy.cartesianBase.CartesianBase-class.html#toStr\npygeodesy.vector3dBase.Vector3dBase._roty\tpygeodesy.vector3dBase.Vector3dBase-class.html#_roty\npygeodesy.vector3dBase.Vector3dBase.angleTo\tpygeodesy.vector3dBase.Vector3dBase-class.html#angleTo\npygeodesy.cartesianBase.CartesianBase.toTransform\tpygeodesy.cartesianBase.CartesianBase-class.html#toTransform\npygeodesy.ecefLocals._EcefLocal.toXyz\tpygeodesy.ecefLocals._EcefLocal-class.html#toXyz\npygeodesy.vector3dBase.Vector3dBase.__pow__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__pow__\npygeodesy.vector3dBase.Vector3dBase.__gt__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__gt__\npygeodesy.vector3dBase.Vector3dBase.__bool__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__bool__\npygeodesy.vector3dBase.Vector3dBase.x2y2z23\tpygeodesy.vector3dBase.Vector3dBase-class.html#x2y2z23\npygeodesy.cartesianBase.CartesianBase.toEcef\tpygeodesy.cartesianBase.CartesianBase-class.html#toEcef\npygeodesy.vector3dBase.Vector3dBase.rotate\tpygeodesy.vector3dBase.Vector3dBase-class.html#rotate\npygeodesy.vector3dBase.Vector3dBase.__nonzero__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__nonzero__\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.vector3dBase.Vector3dBase._ll\tpygeodesy.vector3dBase.Vector3dBase-class.html#_ll\npygeodesy.vector3dBase.Vector3dBase._plus\tpygeodesy.vector3dBase.Vector3dBase-class.html#_plus\npygeodesy.cartesianBase.CartesianBase.latlonheight\tpygeodesy.cartesianBase.CartesianBase-class.html#latlonheight\npygeodesy.vector3dBase.Vector3dBase.to3xyz\tpygeodesy.vector3dBase.Vector3dBase-class.html#to3xyz\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.vector3dBase.Vector3dBase.x\tpygeodesy.vector3dBase.Vector3dBase-class.html#x\npygeodesy.vector3dBase.Vector3dBase.__long__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__long__\npygeodesy.vector3dBase.Vector3dBase.cmp\tpygeodesy.vector3dBase.Vector3dBase-class.html#cmp\npygeodesy.vector3dBase.Vector3dBase.homogeneous\tpygeodesy.vector3dBase.Vector3dBase-class.html#homogeneous\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.vector3dBase.Vector3dBase.plus_\tpygeodesy.vector3dBase.Vector3dBase-class.html#plus_\npygeodesy.sphericalBase.CartesianSphericalBase.sphericalCartesian\tpygeodesy.sphericalBase.CartesianSphericalBase-class.html#sphericalCartesian\npygeodesy.cartesianBase.CartesianBase.Roc2\tpygeodesy.cartesianBase.CartesianBase-class.html#Roc2\npygeodesy.cartesianBase.CartesianBase.toDatum\tpygeodesy.cartesianBase.CartesianBase-class.html#toDatum\npygeodesy.vector3dBase.Vector3dBase.__truediv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__truediv__\npygeodesy.ecefLocals._EcefLocal.toLtp\tpygeodesy.ecefLocals._EcefLocal-class.html#toLtp\npygeodesy.vector3d.Vector3d.trilaterate2d2\tpygeodesy.vector3d.Vector3d-class.html#trilaterate2d2\npygeodesy.vector3dBase.Vector3dBase.__matmul__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__matmul__\npygeodesy.vector3dBase.Vector3dBase.euclid\tpygeodesy.vector3dBase.Vector3dBase-class.html#euclid\npygeodesy.vector3dBase.Vector3dBase._minus\tpygeodesy.vector3dBase.Vector3dBase-class.html#_minus\npygeodesy.vector3d.Vector3d.trilaterate3d2\tpygeodesy.vector3d.Vector3d-class.html#trilaterate3d2\npygeodesy.vector3dBase.Vector3dBase.__rmod__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rmod__\npygeodesy.ecefLocals._EcefLocal._ecef9datum\tpygeodesy.ecefLocals._EcefLocal-class.html#_ecef9datum\npygeodesy.cartesianBase.CartesianBase.latlon\tpygeodesy.cartesianBase.CartesianBase-class.html#latlon\npygeodesy.cartesianBase.CartesianBase.hartzell\tpygeodesy.cartesianBase.CartesianBase-class.html#hartzell\npygeodesy.vector3dBase.Vector3dBase._crosserrors\tpygeodesy.vector3dBase.Vector3dBase-class.html#_crosserrors\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.vector3dBase.Vector3dBase._mapped\tpygeodesy.vector3dBase.Vector3dBase-class.html#_mapped\npygeodesy.vector3dBase.Vector3dBase.sum\tpygeodesy.vector3dBase.Vector3dBase-class.html#sum\npygeodesy.cartesianBase.CartesianBase.philam\tpygeodesy.cartesianBase.CartesianBase-class.html#philam\npygeodesy.ecefLocals._EcefLocal.toAer\tpygeodesy.ecefLocals._EcefLocal-class.html#toAer\npygeodesy.cartesianBase.CartesianBase.collins\tpygeodesy.cartesianBase.CartesianBase-class.html#collins\npygeodesy.vector3dBase.Vector3dBase._other_cmp\tpygeodesy.vector3dBase.Vector3dBase-class.html#_other_cmp\npygeodesy.vector3dBase.Vector3dBase.isequalTo\tpygeodesy.vector3dBase.Vector3dBase-class.html#isequalTo\npygeodesy.vector3dBase.Vector3dBase.__ne__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__ne__\npygeodesy.cartesianBase.CartesianBase._height2C\tpygeodesy.cartesianBase.CartesianBase-class.html#_height2C\npygeodesy.vector3dBase.Vector3dBase.__ifloordiv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__ifloordiv__\npygeodesy.vector3dBase.Vector3dBase.dividedBy_\tpygeodesy.vector3dBase.Vector3dBase-class.html#dividedBy_\npygeodesy.vector3dBase.Vector3dBase.equals\tpygeodesy.vector3dBase.Vector3dBase-class.html#equals\npygeodesy.cartesianBase.CartesianBase._n_xyzh4\tpygeodesy.cartesianBase.CartesianBase-class.html#_n_xyzh4\npygeodesy.vector3d.Vector3d.circin6\tpygeodesy.vector3d.Vector3d-class.html#circin6\npygeodesy.cartesianBase.CartesianBase._height4\tpygeodesy.cartesianBase.CartesianBase-class.html#_height4\npygeodesy.vector3d.Vector3d.nearestOn6\tpygeodesy.vector3d.Vector3d-class.html#nearestOn6\npygeodesy.vector3dBase.Vector3dBase.__rmatmul__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rmatmul__\npygeodesy.vector3dBase.Vector3dBase.floats\tpygeodesy.vector3dBase.Vector3dBase-class.html#floats\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.vector3d.Vector3d.meeus2\tpygeodesy.vector3d.Vector3d-class.html#meeus2\npygeodesy.vector3dBase.Vector3dBase.__imul__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__imul__\npygeodesy.vector3dBase.Vector3dBase.__trunc__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__trunc__\npygeodesy.vector3dBase.Vector3dBase.times\tpygeodesy.vector3dBase.Vector3dBase-class.html#times\npygeodesy.vector3dBase.Vector3dBase.length\tpygeodesy.vector3dBase.Vector3dBase-class.html#length\npygeodesy.vector3dBase.Vector3dBase.plus\tpygeodesy.vector3dBase.Vector3dBase-class.html#plus\npygeodesy.vector3dBase.Vector3dBase.__mul__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__mul__\npygeodesy.cartesianBase.CartesianBase.convertDatum\tpygeodesy.cartesianBase.CartesianBase-class.html#convertDatum\npygeodesy.vector3dBase.Vector3dBase.__divmod__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__divmod__\npygeodesy.named._NamedBase.toRepr\tpygeodesy.named._NamedBase-class.html#toRepr\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.cartesianBase.CartesianBase.ellipsoidalCartesian\tpygeodesy.cartesianBase.CartesianBase-class.html#ellipsoidalCartesian\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.vector3dBase.Vector3dBase.pow\tpygeodesy.vector3dBase.Vector3dBase-class.html#pow\npygeodesy.vector3dBase.Vector3dBase.xyz\tpygeodesy.vector3dBase.Vector3dBase-class.html#xyz\npygeodesy.vector3dBase.Vector3dBase.others\tpygeodesy.vector3dBase.Vector3dBase-class.html#others\npygeodesy.cartesianBase.CartesianBase.isEllipsoidal\tpygeodesy.cartesianBase.CartesianBase-class.html#isEllipsoidal\npygeodesy.cartesianBase.CartesianBase.height\tpygeodesy.cartesianBase.CartesianBase-class.html#height\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.vector3dBase.Vector3dBase.__rsub__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rsub__\npygeodesy.vector3dBase.Vector3dBase.ints\tpygeodesy.vector3dBase.Vector3dBase-class.html#ints\npygeodesy.cartesianBase.CartesianBase.cassini\tpygeodesy.cartesianBase.CartesianBase-class.html#cassini\npygeodesy.vector3dBase.Vector3dBase.negate\tpygeodesy.vector3dBase.Vector3dBase-class.html#negate\npygeodesy.vector3dBase.Vector3dBase.apply\tpygeodesy.vector3dBase.Vector3dBase-class.html#apply\npygeodesy.vector3dBase.Vector3dBase.equirectangular\tpygeodesy.vector3dBase.Vector3dBase-class.html#equirectangular\npygeodesy.vector3dBase.Vector3dBase.intermediateTo\tpygeodesy.vector3dBase.Vector3dBase-class.html#intermediateTo\npygeodesy.vector3dBase.Vector3dBase.unit\tpygeodesy.vector3dBase.Vector3dBase-class.html#unit\npygeodesy.vector3dBase.Vector3dBase.__float__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__float__\npygeodesy.vector3dBase.Vector3dBase.__rpow__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rpow__\npygeodesy.vector3d.Vector3d.soddy4\tpygeodesy.vector3d.Vector3d-class.html#soddy4\npygeodesy.ecefLocals._EcefLocal.toNed\tpygeodesy.ecefLocals._EcefLocal-class.html#toNed\npygeodesy.cartesianBase.CartesianBase._N_vector\tpygeodesy.cartesianBase.CartesianBase-class.html#_N_vector\npygeodesy.vector3d.Vector3d.iscolinearWith\tpygeodesy.vector3d.Vector3d-class.html#iscolinearWith\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.vector3dBase.Vector3dBase.__itruediv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__itruediv__\npygeodesy.vector3dBase.Vector3dBase.dividedBy\tpygeodesy.vector3dBase.Vector3dBase-class.html#dividedBy\npygeodesy.vector3dBase.Vector3dBase.__isub__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__isub__\npygeodesy.vector3dBase.Vector3dBase.__rdivmod__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rdivmod__\npygeodesy.vector3dBase.Vector3dBase.crosserrors\tpygeodesy.vector3dBase.Vector3dBase-class.html#crosserrors\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.vector3d.Vector3d.circum3\tpygeodesy.vector3d.Vector3d-class.html#circum3\npygeodesy.vector3dBase.Vector3dBase.__radd__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__radd__\npygeodesy.vector3dBase.Vector3dBase.__eq__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__eq__\npygeodesy.ecefLocals._EcefLocal.toEnu\tpygeodesy.ecefLocals._EcefLocal-class.html#toEnu\npygeodesy.vector3dBase.Vector3dBase.__round__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__round__\npygeodesy.vector3dBase.Vector3dBase.bools\tpygeodesy.vector3dBase.Vector3dBase-class.html#bools\npygeodesy.vector3dBase.Vector3dBase.__mod__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__mod__\npygeodesy.cartesianBase.CartesianBase.height4\tpygeodesy.cartesianBase.CartesianBase-class.html#height4\npygeodesy.ecefLocals._EcefLocal.Ecef\tpygeodesy.ecefLocals._EcefLocal-class.html#Ecef\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.vector3dBase.Vector3dBase.xyz3\tpygeodesy.vector3dBase.Vector3dBase-class.html#xyz3\npygeodesy.ecefLocals._EcefLocal._ltp_ecef2local\tpygeodesy.ecefLocals._EcefLocal-class.html#_ltp_ecef2local\npygeodesy.vector3dBase.Vector3dBase.__iadd__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__iadd__\npygeodesy.cartesianBase.CartesianBase.height3\tpygeodesy.cartesianBase.CartesianBase-class.html#height3\npygeodesy.vector3d.Vector3d.circum4_\tpygeodesy.vector3d.Vector3d-class.html#circum4_\npygeodesy.cartesianBase.CartesianBase.latlonheightdatum\tpygeodesy.cartesianBase.CartesianBase-class.html#latlonheightdatum\npygeodesy.vector3dBase.Vector3dBase.__le__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__le__\npygeodesy.vector3dBase.Vector3dBase.__floordiv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__floordiv__\npygeodesy.vector3dBase.Vector3dBase.__hash__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__hash__\npygeodesy.vector3dBase.Vector3dBase.__sub__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__sub__\npygeodesy.vector3dBase.Vector3dBase.z\tpygeodesy.vector3dBase.Vector3dBase-class.html#z\npygeodesy.vector3dBase.Vector3dBase._xyz\tpygeodesy.vector3dBase.Vector3dBase-class.html#_xyz\npygeodesy.vector3dBase.Vector3dBase.minus\tpygeodesy.vector3dBase.Vector3dBase-class.html#minus\npygeodesy.vector3dBase.Vector3dBase.__ge__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__ge__\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.vector3d.Vector3d.bearing\tpygeodesy.vector3d.Vector3d-class.html#bearing\npygeodesy.vector3dBase.Vector3dBase.__rtruediv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rtruediv__\npygeodesy.vector3dBase.Vector3dBase.floorDividedBy_\tpygeodesy.vector3dBase.Vector3dBase-class.html#floorDividedBy_\npygeodesy.cartesianBase.CartesianBase.collins5\tpygeodesy.cartesianBase.CartesianBase-class.html#collins5\npygeodesy.vector3dBase.Vector3dBase.x2y2z2\tpygeodesy.vector3dBase.Vector3dBase-class.html#x2y2z2\npygeodesy.cartesianBase.CartesianBase.toRtp\tpygeodesy.cartesianBase.CartesianBase-class.html#toRtp\npygeodesy.cartesianBase.CartesianBase.toNvector\tpygeodesy.cartesianBase.CartesianBase-class.html#toNvector\npygeodesy.vector3d.Vector3d.parse\tpygeodesy.vector3d.Vector3d-class.html#parse\npygeodesy.vector3dBase.Vector3dBase.floorDividedBy\tpygeodesy.vector3dBase.Vector3dBase-class.html#floorDividedBy\npygeodesy.vector3dBase.Vector3dBase.__floor__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__floor__\npygeodesy.cartesianBase.CartesianBase.isSpherical\tpygeodesy.cartesianBase.CartesianBase-class.html#isSpherical\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.sphericalBase.CartesianSphericalBase.intersections2\tpygeodesy.sphericalBase.CartesianSphericalBase-class.html#intersections2\npygeodesy.vector3dBase.Vector3dBase.__imod__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__imod__\npygeodesy.vector3dBase.Vector3dBase.fabs\tpygeodesy.vector3dBase.Vector3dBase-class.html#fabs\npygeodesy.vector3dBase.Vector3dBase._times\tpygeodesy.vector3dBase.Vector3dBase-class.html#_times\npygeodesy.vector3d.Vector3d.radii11\tpygeodesy.vector3d.Vector3d-class.html#radii11\npygeodesy.cartesianBase.CartesianBase.pierlotx\tpygeodesy.cartesianBase.CartesianBase-class.html#pierlotx\npygeodesy.vector3dBase.Vector3dBase.cross\tpygeodesy.vector3dBase.Vector3dBase-class.html#cross\npygeodesy.cartesianBase.CartesianBase.philamheight\tpygeodesy.cartesianBase.CartesianBase-class.html#philamheight\npygeodesy.vector3dBase.Vector3dBase.__pos__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__pos__\npygeodesy.cartesianBase.CartesianBase.__init__\tpygeodesy.cartesianBase.CartesianBase-class.html#__init__\npygeodesy.vector3dBase.Vector3dBase.__abs__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__abs__\npygeodesy.sphericalBase.CartesianSphericalBase._datum\tpygeodesy.sphericalBase.CartesianSphericalBase-class.html#_datum\npygeodesy.named._NamedBase.__repr__\tpygeodesy.named._NamedBase-class.html#__repr__\npygeodesy.ecefLocals._EcefLocal._ltp\tpygeodesy.ecefLocals._EcefLocal-class.html#_ltp\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.cartesianBase.CartesianBase.destinationXyz\tpygeodesy.cartesianBase.CartesianBase-class.html#destinationXyz\npygeodesy.cartesianBase.CartesianBase._height\tpygeodesy.cartesianBase.CartesianBase-class.html#_height\npygeodesy.vector3dBase.Vector3dBase.__idiv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__idiv__\npygeodesy.vector3dBase.Vector3dBase._united\tpygeodesy.vector3dBase.Vector3dBase-class.html#_united\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.vector3dBase.Vector3dBase._fromll\tpygeodesy.vector3dBase.Vector3dBase-class.html#_fromll\npygeodesy.vector3dBase.Vector3dBase.__add__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__add__\npygeodesy.cartesianBase.CartesianBase.toVector\tpygeodesy.cartesianBase.CartesianBase-class.html#toVector\npygeodesy.cartesianBase.CartesianBase.pierlot\tpygeodesy.cartesianBase.CartesianBase-class.html#pierlot\npygeodesy.ecefLocals._EcefLocal.toLocal\tpygeodesy.ecefLocals._EcefLocal-class.html#toLocal\npygeodesy.vector3dBase.Vector3dBase.length2\tpygeodesy.vector3dBase.Vector3dBase-class.html#length2\npygeodesy.cartesianBase.CartesianBase.to2ll\tpygeodesy.cartesianBase.CartesianBase-class.html#to2ll\npygeodesy.vector3dBase.Vector3dBase.isconjugateTo\tpygeodesy.vector3dBase.Vector3dBase-class.html#isconjugateTo\npygeodesy.vector3dBase.Vector3dBase.__ipow__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__ipow__\npygeodesy.vector3dBase.Vector3dBase.__div__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__div__\npygeodesy.vector3dBase.Vector3dBase.__ceil__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__ceil__\npygeodesy.vector3dBase.Vector3dBase.__neg__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__neg__\npygeodesy.vector3dBase.Vector3dBase.y\tpygeodesy.vector3dBase.Vector3dBase-class.html#y\npygeodesy.vector3dBase.Vector3dBase.dot\tpygeodesy.vector3dBase.Vector3dBase-class.html#dot\npygeodesy.sphericalBase.LatLonSphericalBase\tpygeodesy.sphericalBase.LatLonSphericalBase-class.html\npygeodesy.latlonBase.LatLonBase.toCartesian\tpygeodesy.latlonBase.LatLonBase-class.html#toCartesian\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.latlonBase.LatLonBase.__str__\tpygeodesy.latlonBase.LatLonBase-class.html#__str__\npygeodesy.sphericalBase.LatLonSphericalBase.datum\tpygeodesy.sphericalBase.LatLonSphericalBase-class.html#datum\npygeodesy.latlonBase.LatLonBase.philam2\tpygeodesy.latlonBase.LatLonBase-class.html#philam2\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.latlonBase.LatLonBase.to3llh\tpygeodesy.latlonBase.LatLonBase-class.html#to3llh\npygeodesy.latlonBase.LatLonBase.isnormal\tpygeodesy.latlonBase.LatLonBase-class.html#isnormal\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.latlonBase.LatLonBase.flatLocalTo\tpygeodesy.latlonBase.LatLonBase-class.html#flatLocalTo\npygeodesy.latlonBase.LatLonBase._N_vector\tpygeodesy.latlonBase.LatLonBase-class.html#_N_vector\npygeodesy.latlonBase.LatLonBase._distanceTo\tpygeodesy.latlonBase.LatLonBase-class.html#_distanceTo\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.latlonBase.LatLonBase.isequalTo3\tpygeodesy.latlonBase.LatLonBase-class.html#isequalTo3\npygeodesy.latlonBase.LatLonBase.nearestTo\tpygeodesy.latlonBase.LatLonBase-class.html#nearestTo\npygeodesy.ecefLocals._EcefLocal.toEnu\tpygeodesy.ecefLocals._EcefLocal-class.html#toEnu\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.latlonBase.LatLonBase.isantipode\tpygeodesy.latlonBase.LatLonBase-class.html#isantipode\npygeodesy.latlonBase.LatLonBase._ecef9\tpygeodesy.latlonBase.LatLonBase-class.html#_ecef9\npygeodesy.latlonBase.LatLonBase._rhumb3dict\tpygeodesy.latlonBase.LatLonBase-class.html#_rhumb3dict\npygeodesy.latlonBase.LatLonBase.to2ab\tpygeodesy.latlonBase.LatLonBase-class.html#to2ab\npygeodesy.latlonBase.LatLonBase.toStr\tpygeodesy.latlonBase.LatLonBase-class.html#toStr\npygeodesy.sphericalBase.LatLonSphericalBase._datum\tpygeodesy.sphericalBase.LatLonSphericalBase-class.html#_datum\npygeodesy.latlonBase.LatLonBase.PointsIter\tpygeodesy.latlonBase.LatLonBase-class.html#PointsIter\npygeodesy.ecefLocals._EcefLocal.toXyz\tpygeodesy.ecefLocals._EcefLocal-class.html#toXyz\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.latlonBase.LatLonBase.antipode\tpygeodesy.latlonBase.LatLonBase-class.html#antipode\npygeodesy.latlonBase.LatLonBase._n_xyz3\tpygeodesy.latlonBase.LatLonBase-class.html#_n_xyz3\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.sphericalBase.LatLonSphericalBase._napieradius\tpygeodesy.sphericalBase.LatLonSphericalBase-class.html#_napieradius\npygeodesy.latlonBase.LatLonBase.toEcef\tpygeodesy.latlonBase.LatLonBase-class.html#toEcef\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.latlonBase.LatLonBase.thomasTo\tpygeodesy.latlonBase.LatLonBase-class.html#thomasTo\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.latlonBase.LatLonBase._Ecef_forward\tpygeodesy.latlonBase.LatLonBase-class.html#_Ecef_forward\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._NamedBase.toRepr\tpygeodesy.named._NamedBase-class.html#toRepr\npygeodesy.latlonBase.LatLonBase.isantipodeTo\tpygeodesy.latlonBase.LatLonBase-class.html#isantipodeTo\npygeodesy.ecefLocals._EcefLocal._ltp\tpygeodesy.ecefLocals._EcefLocal-class.html#_ltp\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.latlonBase.LatLonBase.toDatum\tpygeodesy.latlonBase.LatLonBase-class.html#toDatum\npygeodesy.sphericalBase.LatLonSphericalBase.rhumbBearingTo\tpygeodesy.sphericalBase.LatLonSphericalBase-class.html#rhumbBearingTo\npygeodesy.ecefLocals._EcefLocal.toLtp\tpygeodesy.ecefLocals._EcefLocal-class.html#toLtp\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.latlonBase.LatLonBase.clipid\tpygeodesy.latlonBase.LatLonBase-class.html#clipid\npygeodesy.latlonBase.LatLonBase.ellipsoidalLatLon\tpygeodesy.latlonBase.LatLonBase-class.html#ellipsoidalLatLon\npygeodesy.latlonBase.LatLonBase.latlon\tpygeodesy.latlonBase.LatLonBase-class.html#latlon\npygeodesy.latlonBase.LatLonBase.hartzell\tpygeodesy.latlonBase.LatLonBase-class.html#hartzell\npygeodesy.latlonBase.LatLonBase.haversineTo\tpygeodesy.latlonBase.LatLonBase-class.html#haversineTo\npygeodesy.latlonBase.LatLonBase.normal\tpygeodesy.latlonBase.LatLonBase-class.html#normal\npygeodesy.latlonBase.LatLonBase.philam\tpygeodesy.latlonBase.LatLonBase-class.html#philam\npygeodesy.ecefLocals._EcefLocal.toAer\tpygeodesy.ecefLocals._EcefLocal-class.html#toAer\npygeodesy.latlonBase.LatLonBase.chordTo\tpygeodesy.latlonBase.LatLonBase-class.html#chordTo\npygeodesy.sphericalBase.LatLonSphericalBase.finalBearingTo\tpygeodesy.sphericalBase.LatLonSphericalBase-class.html#finalBearingTo\npygeodesy.latlonBase.LatLonBase.__ne__\tpygeodesy.latlonBase.LatLonBase-class.html#__ne__\npygeodesy.latlonBase.LatLonBase.toWm\tpygeodesy.latlonBase.LatLonBase-class.html#toWm\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.sphericalBase.LatLonSphericalBase.sphericalLatLon\tpygeodesy.sphericalBase.LatLonSphericalBase-class.html#sphericalLatLon\npygeodesy.latlonBase.LatLonBase.equals\tpygeodesy.latlonBase.LatLonBase-class.html#equals\npygeodesy.latlonBase.LatLonBase.circin6\tpygeodesy.latlonBase.LatLonBase-class.html#circin6\npygeodesy.sphericalBase.LatLonSphericalBase._mpr\tpygeodesy.sphericalBase.LatLonSphericalBase-class.html#_mpr\npygeodesy.latlonBase.LatLonBase.nearestOn6\tpygeodesy.latlonBase.LatLonBase-class.html#nearestOn6\npygeodesy.sphericalBase.LatLonSphericalBase.rhumbIntersecant2\tpygeodesy.sphericalBase.LatLonSphericalBase-class.html#rhumbIntersecant2\npygeodesy.latlonBase.LatLonBase.cosineLawTo\tpygeodesy.latlonBase.LatLonBase-class.html#cosineLawTo\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.latlonBase.LatLonBase.toVector3d\tpygeodesy.latlonBase.LatLonBase-class.html#toVector3d\npygeodesy.latlonBase.LatLonBase._lat\tpygeodesy.latlonBase.LatLonBase-class.html#_lat\npygeodesy.latlonBase.LatLonBase.cosineForsytheAndoyerLambertTo\tpygeodesy.latlonBase.LatLonBase-class.html#cosineForsytheAndoyerLambertTo\npygeodesy.sphericalBase.LatLonSphericalBase.napieradius\tpygeodesy.sphericalBase.LatLonSphericalBase-class.html#napieradius\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.latlonBase.LatLonBase.compassAngleTo\tpygeodesy.latlonBase.LatLonBase-class.html#compassAngleTo\npygeodesy.named._NamedBase.__repr__\tpygeodesy.named._NamedBase-class.html#__repr__\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.latlonBase.LatLonBase.points2\tpygeodesy.latlonBase.LatLonBase-class.html#points2\npygeodesy.latlonBase.LatLonBase.flatPolarTo\tpygeodesy.latlonBase.LatLonBase-class.html#flatPolarTo\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.latlonBase.LatLonBase.boundsOf\tpygeodesy.latlonBase.LatLonBase-class.html#boundsOf\npygeodesy.latlonBase.LatLonBase._havg\tpygeodesy.latlonBase.LatLonBase-class.html#_havg\npygeodesy.latlonBase.LatLonBase.xyz\tpygeodesy.latlonBase.LatLonBase-class.html#xyz\npygeodesy.named._NamedBase.others\tpygeodesy.named._NamedBase-class.html#others\npygeodesy.latlonBase.LatLonBase.isEllipsoidal\tpygeodesy.latlonBase.LatLonBase-class.html#isEllipsoidal\npygeodesy.latlonBase.LatLonBase.height\tpygeodesy.latlonBase.LatLonBase-class.html#height\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.latlonBase.LatLonBase.equals3\tpygeodesy.latlonBase.LatLonBase-class.html#equals3\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.sphericalBase.LatLonSphericalBase.rhumbDestination\tpygeodesy.sphericalBase.LatLonSphericalBase-class.html#rhumbDestination\npygeodesy.latlonBase.LatLonBase._heigHt\tpygeodesy.latlonBase.LatLonBase-class.html#_heigHt\npygeodesy.latlonBase.LatLonBase.latlon_\tpygeodesy.latlonBase.LatLonBase-class.html#latlon_\npygeodesy.latlonBase.LatLonBase.lon\tpygeodesy.latlonBase.LatLonBase-class.html#lon\npygeodesy.latlonBase.LatLonBase.xyzh\tpygeodesy.latlonBase.LatLonBase-class.html#xyzh\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.latlonBase.LatLonBase.hubenyTo\tpygeodesy.latlonBase.LatLonBase-class.html#hubenyTo\npygeodesy.sphericalBase.LatLonSphericalBase._radius\tpygeodesy.sphericalBase.LatLonSphericalBase-class.html#_radius\npygeodesy.sphericalBase.LatLonSphericalBase.rhumbAzimuthTo\tpygeodesy.sphericalBase.LatLonSphericalBase-class.html#rhumbAzimuthTo\npygeodesy.ecefLocals._EcefLocal.Ecef\tpygeodesy.ecefLocals._EcefLocal-class.html#Ecef\npygeodesy.latlonBase.LatLonBase.latlon2\tpygeodesy.latlonBase.LatLonBase-class.html#latlon2\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.latlonBase.LatLonBase.circum3\tpygeodesy.latlonBase.LatLonBase-class.html#circum3\npygeodesy.latlonBase.LatLonBase._clipid\tpygeodesy.latlonBase.LatLonBase-class.html#_clipid\npygeodesy.latlonBase.LatLonBase._rhumb3\tpygeodesy.latlonBase.LatLonBase-class.html#_rhumb3\npygeodesy.ecefLocals._EcefLocal._ltp_ecef2local\tpygeodesy.ecefLocals._EcefLocal-class.html#_ltp_ecef2local\npygeodesy.latlonBase.LatLonBase.__eq__\tpygeodesy.latlonBase.LatLonBase-class.html#__eq__\npygeodesy.latlonBase.LatLonBase._lon\tpygeodesy.latlonBase.LatLonBase-class.html#_lon\npygeodesy.latlonBase.LatLonBase.toNormal\tpygeodesy.latlonBase.LatLonBase-class.html#toNormal\npygeodesy.latlonBase.LatLonBase.latlonheight\tpygeodesy.latlonBase.LatLonBase-class.html#latlonheight\npygeodesy.latlonBase.LatLonBase.height4\tpygeodesy.latlonBase.LatLonBase-class.html#height4\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.latlonBase.LatLonBase.xyz3\tpygeodesy.latlonBase.LatLonBase-class.html#xyz3\npygeodesy.latlonBase.LatLonBase.bounds\tpygeodesy.latlonBase.LatLonBase-class.html#bounds\npygeodesy.latlonBase.LatLonBase.circum4_\tpygeodesy.latlonBase.LatLonBase-class.html#circum4_\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.latlonBase.LatLonBase.heightStr\tpygeodesy.latlonBase.LatLonBase-class.html#heightStr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.ecefLocals._EcefLocal.toNed\tpygeodesy.ecefLocals._EcefLocal-class.html#toNed\npygeodesy.latlonBase.LatLonBase.cosineAndoyerLambertTo\tpygeodesy.latlonBase.LatLonBase-class.html#cosineAndoyerLambertTo\npygeodesy.sphericalBase.LatLonSphericalBase.rhumbMidpointTo\tpygeodesy.sphericalBase.LatLonSphericalBase-class.html#rhumbMidpointTo\npygeodesy.sphericalBase.LatLonSphericalBase._rhumbs3\tpygeodesy.sphericalBase.LatLonSphericalBase-class.html#_rhumbs3\npygeodesy.sphericalBase.LatLonSphericalBase.toNvector\tpygeodesy.sphericalBase.LatLonSphericalBase-class.html#toNvector\npygeodesy.sphericalBase.LatLonSphericalBase.parse\tpygeodesy.sphericalBase.LatLonSphericalBase-class.html#parse\npygeodesy.latlonBase.LatLonBase.isSpherical\tpygeodesy.latlonBase.LatLonBase-class.html#isSpherical\npygeodesy.latlonBase.LatLonBase._wrap_name2\tpygeodesy.latlonBase.LatLonBase-class.html#_wrap_name2\npygeodesy.sphericalBase.LatLonSphericalBase.__init__\tpygeodesy.sphericalBase.LatLonSphericalBase-class.html#__init__\npygeodesy.latlonBase.LatLonBase.radii11\tpygeodesy.latlonBase.LatLonBase-class.html#radii11\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.latlonBase.LatLonBase.philamheight\tpygeodesy.latlonBase.LatLonBase-class.html#philamheight\npygeodesy.sphericalBase.LatLonSphericalBase.minLat\tpygeodesy.sphericalBase.LatLonSphericalBase-class.html#minLat\npygeodesy.latlonBase.LatLonBase.latlon2round\tpygeodesy.latlonBase.LatLonBase-class.html#latlon2round\npygeodesy.sphericalBase.LatLonSphericalBase.maxLat\tpygeodesy.sphericalBase.LatLonSphericalBase-class.html#maxLat\npygeodesy.latlonBase.LatLonBase.vincentysTo\tpygeodesy.latlonBase.LatLonBase-class.html#vincentysTo\npygeodesy.ecefLocals._EcefLocal._ecef9datum\tpygeodesy.ecefLocals._EcefLocal-class.html#_ecef9datum\npygeodesy.latlonBase.LatLonBase.to3xyz\tpygeodesy.latlonBase.LatLonBase-class.html#to3xyz\npygeodesy.latlonBase.LatLonBase.lam\tpygeodesy.latlonBase.LatLonBase-class.html#lam\npygeodesy.latlonBase.LatLonBase.phi\tpygeodesy.latlonBase.LatLonBase-class.html#phi\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.latlonBase.LatLonBase.destinationXyz\tpygeodesy.latlonBase.LatLonBase-class.html#destinationXyz\npygeodesy.latlonBase.LatLonBase._height\tpygeodesy.latlonBase.LatLonBase-class.html#_height\npygeodesy.latlonBase.LatLonBase.isequalTo\tpygeodesy.latlonBase.LatLonBase-class.html#isequalTo\npygeodesy.sphericalBase.LatLonSphericalBase.bearingTo2\tpygeodesy.sphericalBase.LatLonSphericalBase-class.html#bearingTo2\npygeodesy.latlonBase.LatLonBase.euclideanTo\tpygeodesy.latlonBase.LatLonBase-class.html#euclideanTo\npygeodesy.latlonBase.LatLonBase._intersecend2\tpygeodesy.latlonBase.LatLonBase-class.html#_intersecend2\npygeodesy.latlonBase.LatLonBase.lat\tpygeodesy.latlonBase.LatLonBase-class.html#lat\npygeodesy.latlonBase.LatLonBase.toVector\tpygeodesy.latlonBase.LatLonBase-class.html#toVector\npygeodesy.latlonBase.LatLonBase.equirectangularTo\tpygeodesy.latlonBase.LatLonBase-class.html#equirectangularTo\npygeodesy.ecefLocals._EcefLocal.toLocal\tpygeodesy.ecefLocals._EcefLocal-class.html#toLocal\npygeodesy.sphericalBase.LatLonSphericalBase.rhumbDistanceTo\tpygeodesy.sphericalBase.LatLonSphericalBase-class.html#rhumbDistanceTo\npygeodesy.latlonBase.LatLonBase.rhumbLine\tpygeodesy.latlonBase.LatLonBase-class.html#rhumbLine\npygeodesy.sphericalBase.LatLonSphericalBase.intersecant2\tpygeodesy.sphericalBase.LatLonSphericalBase-class.html#intersecant2\npygeodesy.latlonBase.LatLonBase.points\tpygeodesy.latlonBase.LatLonBase-class.html#points\npygeodesy.latlonBase.LatLonBase._toCartesianEcef\tpygeodesy.latlonBase.LatLonBase-class.html#_toCartesianEcef\npygeodesy.latlonBase.LatLonBase._distanceTo_\tpygeodesy.latlonBase.LatLonBase-class.html#_distanceTo_\npygeodesy.latlonBase.LatLonBase.compassAngle\tpygeodesy.latlonBase.LatLonBase-class.html#compassAngle\npygeodesy.sphericalNvector.Cartesian\tpygeodesy.sphericalNvector.Cartesian-class.html\npygeodesy.vector3d.Vector3d.toCartesian\tpygeodesy.vector3d.Vector3d-class.html#toCartesian\npygeodesy.vector3dBase.Vector3dBase.__int__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__int__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.cartesianBase.CartesianBase.tienstra7\tpygeodesy.cartesianBase.CartesianBase-class.html#tienstra7\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedBase.__str__\tpygeodesy.named._NamedBase-class.html#__str__\npygeodesy.cartesianBase.CartesianBase.datum\tpygeodesy.cartesianBase.CartesianBase-class.html#datum\npygeodesy.vector3dBase.Vector3dBase.__imatmul__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__imatmul__\npygeodesy.sphericalNvector.Cartesian.toLatLon\tpygeodesy.sphericalNvector.Cartesian-class.html#toLatLon\npygeodesy.vector3dBase.Vector3dBase.times_\tpygeodesy.vector3dBase.Vector3dBase-class.html#times_\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.vector3dBase.Vector3dBase.__rdiv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rdiv__\npygeodesy.vector3dBase.Vector3dBase.__rmul__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rmul__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.vector3dBase.Vector3dBase.__lt__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__lt__\npygeodesy.cartesianBase.CartesianBase.philamheightdatum\tpygeodesy.cartesianBase.CartesianBase-class.html#philamheightdatum\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.cartesianBase.CartesianBase.to3llh\tpygeodesy.cartesianBase.CartesianBase-class.html#to3llh\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.vector3dBase.Vector3dBase.__cmp__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__cmp__\npygeodesy.vector3d.Vector3d.nearestOn\tpygeodesy.vector3d.Vector3d-class.html#nearestOn\npygeodesy.vector3dBase.Vector3dBase.minus_\tpygeodesy.vector3dBase.Vector3dBase-class.html#minus_\npygeodesy.vector3dBase.Vector3dBase.__rfloordiv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rfloordiv__\npygeodesy.cartesianBase.CartesianBase.tienstra\tpygeodesy.cartesianBase.CartesianBase-class.html#tienstra\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.cartesianBase.CartesianBase._ecef9\tpygeodesy.cartesianBase.CartesianBase-class.html#_ecef9\npygeodesy.vector3dBase.Vector3dBase.rotateAround\tpygeodesy.vector3dBase.Vector3dBase-class.html#rotateAround\npygeodesy.cartesianBase.CartesianBase.to2ab\tpygeodesy.cartesianBase.CartesianBase-class.html#to2ab\npygeodesy.cartesianBase.CartesianBase.toStr\tpygeodesy.cartesianBase.CartesianBase-class.html#toStr\npygeodesy.vector3dBase.Vector3dBase._roty\tpygeodesy.vector3dBase.Vector3dBase-class.html#_roty\npygeodesy.vector3dBase.Vector3dBase.angleTo\tpygeodesy.vector3dBase.Vector3dBase-class.html#angleTo\npygeodesy.cartesianBase.CartesianBase.toTransform\tpygeodesy.cartesianBase.CartesianBase-class.html#toTransform\npygeodesy.ecefLocals._EcefLocal.toXyz\tpygeodesy.ecefLocals._EcefLocal-class.html#toXyz\npygeodesy.vector3dBase.Vector3dBase.__pow__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__pow__\npygeodesy.vector3dBase.Vector3dBase.__gt__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__gt__\npygeodesy.vector3dBase.Vector3dBase.__bool__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__bool__\npygeodesy.vector3dBase.Vector3dBase.x2y2z23\tpygeodesy.vector3dBase.Vector3dBase-class.html#x2y2z23\npygeodesy.cartesianBase.CartesianBase.toEcef\tpygeodesy.cartesianBase.CartesianBase-class.html#toEcef\npygeodesy.vector3dBase.Vector3dBase.rotate\tpygeodesy.vector3dBase.Vector3dBase-class.html#rotate\npygeodesy.vector3dBase.Vector3dBase.__nonzero__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__nonzero__\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.vector3dBase.Vector3dBase._ll\tpygeodesy.vector3dBase.Vector3dBase-class.html#_ll\npygeodesy.vector3dBase.Vector3dBase._plus\tpygeodesy.vector3dBase.Vector3dBase-class.html#_plus\npygeodesy.cartesianBase.CartesianBase.latlonheight\tpygeodesy.cartesianBase.CartesianBase-class.html#latlonheight\npygeodesy.vector3dBase.Vector3dBase.to3xyz\tpygeodesy.vector3dBase.Vector3dBase-class.html#to3xyz\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.vector3dBase.Vector3dBase.x\tpygeodesy.vector3dBase.Vector3dBase-class.html#x\npygeodesy.vector3dBase.Vector3dBase.__long__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__long__\npygeodesy.vector3dBase.Vector3dBase.cmp\tpygeodesy.vector3dBase.Vector3dBase-class.html#cmp\npygeodesy.vector3dBase.Vector3dBase.homogeneous\tpygeodesy.vector3dBase.Vector3dBase-class.html#homogeneous\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.vector3dBase.Vector3dBase.plus_\tpygeodesy.vector3dBase.Vector3dBase-class.html#plus_\npygeodesy.sphericalBase.CartesianSphericalBase.sphericalCartesian\tpygeodesy.sphericalBase.CartesianSphericalBase-class.html#sphericalCartesian\npygeodesy.cartesianBase.CartesianBase.Roc2\tpygeodesy.cartesianBase.CartesianBase-class.html#Roc2\npygeodesy.cartesianBase.CartesianBase.toDatum\tpygeodesy.cartesianBase.CartesianBase-class.html#toDatum\npygeodesy.vector3dBase.Vector3dBase.__truediv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__truediv__\npygeodesy.ecefLocals._EcefLocal.toLtp\tpygeodesy.ecefLocals._EcefLocal-class.html#toLtp\npygeodesy.vector3d.Vector3d.trilaterate2d2\tpygeodesy.vector3d.Vector3d-class.html#trilaterate2d2\npygeodesy.vector3dBase.Vector3dBase.__matmul__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__matmul__\npygeodesy.vector3dBase.Vector3dBase.euclid\tpygeodesy.vector3dBase.Vector3dBase-class.html#euclid\npygeodesy.vector3dBase.Vector3dBase._minus\tpygeodesy.vector3dBase.Vector3dBase-class.html#_minus\npygeodesy.vector3d.Vector3d.trilaterate3d2\tpygeodesy.vector3d.Vector3d-class.html#trilaterate3d2\npygeodesy.vector3dBase.Vector3dBase.__rmod__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rmod__\npygeodesy.ecefLocals._EcefLocal._ecef9datum\tpygeodesy.ecefLocals._EcefLocal-class.html#_ecef9datum\npygeodesy.cartesianBase.CartesianBase.latlon\tpygeodesy.cartesianBase.CartesianBase-class.html#latlon\npygeodesy.cartesianBase.CartesianBase.hartzell\tpygeodesy.cartesianBase.CartesianBase-class.html#hartzell\npygeodesy.vector3dBase.Vector3dBase._crosserrors\tpygeodesy.vector3dBase.Vector3dBase-class.html#_crosserrors\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.vector3dBase.Vector3dBase._mapped\tpygeodesy.vector3dBase.Vector3dBase-class.html#_mapped\npygeodesy.vector3dBase.Vector3dBase.sum\tpygeodesy.vector3dBase.Vector3dBase-class.html#sum\npygeodesy.cartesianBase.CartesianBase.philam\tpygeodesy.cartesianBase.CartesianBase-class.html#philam\npygeodesy.ecefLocals._EcefLocal.toAer\tpygeodesy.ecefLocals._EcefLocal-class.html#toAer\npygeodesy.cartesianBase.CartesianBase.collins\tpygeodesy.cartesianBase.CartesianBase-class.html#collins\npygeodesy.vector3dBase.Vector3dBase._other_cmp\tpygeodesy.vector3dBase.Vector3dBase-class.html#_other_cmp\npygeodesy.vector3dBase.Vector3dBase.isequalTo\tpygeodesy.vector3dBase.Vector3dBase-class.html#isequalTo\npygeodesy.vector3dBase.Vector3dBase.__ne__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__ne__\npygeodesy.cartesianBase.CartesianBase._height2C\tpygeodesy.cartesianBase.CartesianBase-class.html#_height2C\npygeodesy.vector3dBase.Vector3dBase.__ifloordiv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__ifloordiv__\npygeodesy.vector3dBase.Vector3dBase.dividedBy_\tpygeodesy.vector3dBase.Vector3dBase-class.html#dividedBy_\npygeodesy.vector3dBase.Vector3dBase.equals\tpygeodesy.vector3dBase.Vector3dBase-class.html#equals\npygeodesy.cartesianBase.CartesianBase._n_xyzh4\tpygeodesy.cartesianBase.CartesianBase-class.html#_n_xyzh4\npygeodesy.vector3d.Vector3d.circin6\tpygeodesy.vector3d.Vector3d-class.html#circin6\npygeodesy.cartesianBase.CartesianBase._height4\tpygeodesy.cartesianBase.CartesianBase-class.html#_height4\npygeodesy.vector3d.Vector3d.nearestOn6\tpygeodesy.vector3d.Vector3d-class.html#nearestOn6\npygeodesy.vector3dBase.Vector3dBase.__rmatmul__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rmatmul__\npygeodesy.vector3dBase.Vector3dBase.floats\tpygeodesy.vector3dBase.Vector3dBase-class.html#floats\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.vector3d.Vector3d.meeus2\tpygeodesy.vector3d.Vector3d-class.html#meeus2\npygeodesy.vector3dBase.Vector3dBase.__imul__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__imul__\npygeodesy.vector3dBase.Vector3dBase.__trunc__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__trunc__\npygeodesy.vector3dBase.Vector3dBase.times\tpygeodesy.vector3dBase.Vector3dBase-class.html#times\npygeodesy.vector3dBase.Vector3dBase.length\tpygeodesy.vector3dBase.Vector3dBase-class.html#length\npygeodesy.vector3dBase.Vector3dBase.plus\tpygeodesy.vector3dBase.Vector3dBase-class.html#plus\npygeodesy.vector3dBase.Vector3dBase.__mul__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__mul__\npygeodesy.cartesianBase.CartesianBase.convertDatum\tpygeodesy.cartesianBase.CartesianBase-class.html#convertDatum\npygeodesy.vector3dBase.Vector3dBase.__divmod__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__divmod__\npygeodesy.named._NamedBase.toRepr\tpygeodesy.named._NamedBase-class.html#toRepr\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.cartesianBase.CartesianBase.ellipsoidalCartesian\tpygeodesy.cartesianBase.CartesianBase-class.html#ellipsoidalCartesian\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.vector3dBase.Vector3dBase.pow\tpygeodesy.vector3dBase.Vector3dBase-class.html#pow\npygeodesy.vector3dBase.Vector3dBase.xyz\tpygeodesy.vector3dBase.Vector3dBase-class.html#xyz\npygeodesy.vector3dBase.Vector3dBase.others\tpygeodesy.vector3dBase.Vector3dBase-class.html#others\npygeodesy.cartesianBase.CartesianBase.isEllipsoidal\tpygeodesy.cartesianBase.CartesianBase-class.html#isEllipsoidal\npygeodesy.cartesianBase.CartesianBase.height\tpygeodesy.cartesianBase.CartesianBase-class.html#height\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.vector3dBase.Vector3dBase.__rsub__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rsub__\npygeodesy.vector3dBase.Vector3dBase.ints\tpygeodesy.vector3dBase.Vector3dBase-class.html#ints\npygeodesy.cartesianBase.CartesianBase.cassini\tpygeodesy.cartesianBase.CartesianBase-class.html#cassini\npygeodesy.vector3dBase.Vector3dBase.negate\tpygeodesy.vector3dBase.Vector3dBase-class.html#negate\npygeodesy.vector3dBase.Vector3dBase.apply\tpygeodesy.vector3dBase.Vector3dBase-class.html#apply\npygeodesy.vector3dBase.Vector3dBase.equirectangular\tpygeodesy.vector3dBase.Vector3dBase-class.html#equirectangular\npygeodesy.vector3dBase.Vector3dBase.intermediateTo\tpygeodesy.vector3dBase.Vector3dBase-class.html#intermediateTo\npygeodesy.vector3dBase.Vector3dBase.unit\tpygeodesy.vector3dBase.Vector3dBase-class.html#unit\npygeodesy.vector3dBase.Vector3dBase.__float__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__float__\npygeodesy.vector3dBase.Vector3dBase.__rpow__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rpow__\npygeodesy.vector3d.Vector3d.soddy4\tpygeodesy.vector3d.Vector3d-class.html#soddy4\npygeodesy.ecefLocals._EcefLocal.toNed\tpygeodesy.ecefLocals._EcefLocal-class.html#toNed\npygeodesy.cartesianBase.CartesianBase._N_vector\tpygeodesy.cartesianBase.CartesianBase-class.html#_N_vector\npygeodesy.vector3d.Vector3d.iscolinearWith\tpygeodesy.vector3d.Vector3d-class.html#iscolinearWith\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.vector3dBase.Vector3dBase.__itruediv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__itruediv__\npygeodesy.vector3dBase.Vector3dBase.dividedBy\tpygeodesy.vector3dBase.Vector3dBase-class.html#dividedBy\npygeodesy.vector3dBase.Vector3dBase.__isub__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__isub__\npygeodesy.vector3dBase.Vector3dBase.__rdivmod__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rdivmod__\npygeodesy.vector3dBase.Vector3dBase.crosserrors\tpygeodesy.vector3dBase.Vector3dBase-class.html#crosserrors\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.vector3d.Vector3d.circum3\tpygeodesy.vector3d.Vector3d-class.html#circum3\npygeodesy.vector3dBase.Vector3dBase.__radd__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__radd__\npygeodesy.vector3dBase.Vector3dBase.__eq__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__eq__\npygeodesy.ecefLocals._EcefLocal.toEnu\tpygeodesy.ecefLocals._EcefLocal-class.html#toEnu\npygeodesy.vector3dBase.Vector3dBase.__round__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__round__\npygeodesy.vector3dBase.Vector3dBase.bools\tpygeodesy.vector3dBase.Vector3dBase-class.html#bools\npygeodesy.vector3dBase.Vector3dBase.__mod__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__mod__\npygeodesy.cartesianBase.CartesianBase.height4\tpygeodesy.cartesianBase.CartesianBase-class.html#height4\npygeodesy.ecefLocals._EcefLocal.Ecef\tpygeodesy.ecefLocals._EcefLocal-class.html#Ecef\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.vector3dBase.Vector3dBase.xyz3\tpygeodesy.vector3dBase.Vector3dBase-class.html#xyz3\npygeodesy.ecefLocals._EcefLocal._ltp_ecef2local\tpygeodesy.ecefLocals._EcefLocal-class.html#_ltp_ecef2local\npygeodesy.vector3dBase.Vector3dBase.__iadd__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__iadd__\npygeodesy.cartesianBase.CartesianBase.height3\tpygeodesy.cartesianBase.CartesianBase-class.html#height3\npygeodesy.vector3d.Vector3d.circum4_\tpygeodesy.vector3d.Vector3d-class.html#circum4_\npygeodesy.cartesianBase.CartesianBase.latlonheightdatum\tpygeodesy.cartesianBase.CartesianBase-class.html#latlonheightdatum\npygeodesy.vector3dBase.Vector3dBase.__le__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__le__\npygeodesy.vector3dBase.Vector3dBase.__floordiv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__floordiv__\npygeodesy.vector3dBase.Vector3dBase.__hash__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__hash__\npygeodesy.vector3dBase.Vector3dBase.__sub__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__sub__\npygeodesy.vector3dBase.Vector3dBase.z\tpygeodesy.vector3dBase.Vector3dBase-class.html#z\npygeodesy.vector3dBase.Vector3dBase._xyz\tpygeodesy.vector3dBase.Vector3dBase-class.html#_xyz\npygeodesy.vector3dBase.Vector3dBase.minus\tpygeodesy.vector3dBase.Vector3dBase-class.html#minus\npygeodesy.vector3dBase.Vector3dBase.__ge__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__ge__\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.vector3d.Vector3d.bearing\tpygeodesy.vector3d.Vector3d-class.html#bearing\npygeodesy.vector3dBase.Vector3dBase.__rtruediv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rtruediv__\npygeodesy.vector3dBase.Vector3dBase.floorDividedBy_\tpygeodesy.vector3dBase.Vector3dBase-class.html#floorDividedBy_\npygeodesy.cartesianBase.CartesianBase.collins5\tpygeodesy.cartesianBase.CartesianBase-class.html#collins5\npygeodesy.vector3dBase.Vector3dBase.x2y2z2\tpygeodesy.vector3dBase.Vector3dBase-class.html#x2y2z2\npygeodesy.cartesianBase.CartesianBase.toRtp\tpygeodesy.cartesianBase.CartesianBase-class.html#toRtp\npygeodesy.sphericalNvector.Cartesian.toNvector\tpygeodesy.sphericalNvector.Cartesian-class.html#toNvector\npygeodesy.vector3d.Vector3d.parse\tpygeodesy.vector3d.Vector3d-class.html#parse\npygeodesy.vector3dBase.Vector3dBase.floorDividedBy\tpygeodesy.vector3dBase.Vector3dBase-class.html#floorDividedBy\npygeodesy.vector3dBase.Vector3dBase.__floor__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__floor__\npygeodesy.cartesianBase.CartesianBase.isSpherical\tpygeodesy.cartesianBase.CartesianBase-class.html#isSpherical\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.sphericalBase.CartesianSphericalBase.intersections2\tpygeodesy.sphericalBase.CartesianSphericalBase-class.html#intersections2\npygeodesy.vector3dBase.Vector3dBase.__imod__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__imod__\npygeodesy.vector3dBase.Vector3dBase.fabs\tpygeodesy.vector3dBase.Vector3dBase-class.html#fabs\npygeodesy.vector3dBase.Vector3dBase._times\tpygeodesy.vector3dBase.Vector3dBase-class.html#_times\npygeodesy.vector3d.Vector3d.radii11\tpygeodesy.vector3d.Vector3d-class.html#radii11\npygeodesy.cartesianBase.CartesianBase.pierlotx\tpygeodesy.cartesianBase.CartesianBase-class.html#pierlotx\npygeodesy.vector3dBase.Vector3dBase.cross\tpygeodesy.vector3dBase.Vector3dBase-class.html#cross\npygeodesy.cartesianBase.CartesianBase.philamheight\tpygeodesy.cartesianBase.CartesianBase-class.html#philamheight\npygeodesy.vector3dBase.Vector3dBase.__pos__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__pos__\npygeodesy.cartesianBase.CartesianBase.__init__\tpygeodesy.cartesianBase.CartesianBase-class.html#__init__\npygeodesy.vector3dBase.Vector3dBase.__abs__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__abs__\npygeodesy.sphericalBase.CartesianSphericalBase._datum\tpygeodesy.sphericalBase.CartesianSphericalBase-class.html#_datum\npygeodesy.named._NamedBase.__repr__\tpygeodesy.named._NamedBase-class.html#__repr__\npygeodesy.ecefLocals._EcefLocal._ltp\tpygeodesy.ecefLocals._EcefLocal-class.html#_ltp\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.cartesianBase.CartesianBase.destinationXyz\tpygeodesy.cartesianBase.CartesianBase-class.html#destinationXyz\npygeodesy.cartesianBase.CartesianBase._height\tpygeodesy.cartesianBase.CartesianBase-class.html#_height\npygeodesy.vector3dBase.Vector3dBase.__idiv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__idiv__\npygeodesy.vector3dBase.Vector3dBase._united\tpygeodesy.vector3dBase.Vector3dBase-class.html#_united\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.vector3dBase.Vector3dBase._fromll\tpygeodesy.vector3dBase.Vector3dBase-class.html#_fromll\npygeodesy.vector3dBase.Vector3dBase.__add__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__add__\npygeodesy.cartesianBase.CartesianBase.toVector\tpygeodesy.cartesianBase.CartesianBase-class.html#toVector\npygeodesy.cartesianBase.CartesianBase.pierlot\tpygeodesy.cartesianBase.CartesianBase-class.html#pierlot\npygeodesy.ecefLocals._EcefLocal.toLocal\tpygeodesy.ecefLocals._EcefLocal-class.html#toLocal\npygeodesy.vector3dBase.Vector3dBase.length2\tpygeodesy.vector3dBase.Vector3dBase-class.html#length2\npygeodesy.cartesianBase.CartesianBase.to2ll\tpygeodesy.cartesianBase.CartesianBase-class.html#to2ll\npygeodesy.vector3dBase.Vector3dBase.isconjugateTo\tpygeodesy.vector3dBase.Vector3dBase-class.html#isconjugateTo\npygeodesy.vector3dBase.Vector3dBase.__ipow__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__ipow__\npygeodesy.vector3dBase.Vector3dBase.__div__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__div__\npygeodesy.vector3dBase.Vector3dBase.__ceil__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__ceil__\npygeodesy.vector3dBase.Vector3dBase.__neg__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__neg__\npygeodesy.vector3dBase.Vector3dBase.y\tpygeodesy.vector3dBase.Vector3dBase-class.html#y\npygeodesy.vector3dBase.Vector3dBase.dot\tpygeodesy.vector3dBase.Vector3dBase-class.html#dot\npygeodesy.sphericalNvector.LatLon\tpygeodesy.sphericalNvector.LatLon-class.html\npygeodesy.sphericalNvector.LatLon.toCartesian\tpygeodesy.sphericalNvector.LatLon-class.html#toCartesian\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.sphericalNvector.LatLon.isenclosedBy\tpygeodesy.sphericalNvector.LatLon-class.html#isenclosedBy\npygeodesy.latlonBase.LatLonBase.__str__\tpygeodesy.latlonBase.LatLonBase-class.html#__str__\npygeodesy.sphericalBase.LatLonSphericalBase.datum\tpygeodesy.sphericalBase.LatLonSphericalBase-class.html#datum\npygeodesy.latlonBase.LatLonBase.philam2\tpygeodesy.latlonBase.LatLonBase-class.html#philam2\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.latlonBase.LatLonBase.to3llh\tpygeodesy.latlonBase.LatLonBase-class.html#to3llh\npygeodesy.latlonBase.LatLonBase.isnormal\tpygeodesy.latlonBase.LatLonBase-class.html#isnormal\npygeodesy.sphericalNvector.LatLon.isEnclosedBy\tpygeodesy.sphericalNvector.LatLon-class.html#isEnclosedBy\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.sphericalNvector.LatLon.distanceTo\tpygeodesy.sphericalNvector.LatLon-class.html#distanceTo\npygeodesy.latlonBase.LatLonBase.flatLocalTo\tpygeodesy.latlonBase.LatLonBase-class.html#flatLocalTo\npygeodesy.latlonBase.LatLonBase._distanceTo\tpygeodesy.latlonBase.LatLonBase-class.html#_distanceTo\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.sphericalNvector.LatLon.nearestOn\tpygeodesy.sphericalNvector.LatLon-class.html#nearestOn\npygeodesy.sphericalNvector.LatLon.bearingTo\tpygeodesy.sphericalNvector.LatLon-class.html#bearingTo\npygeodesy.ecefLocals._EcefLocal.toEnu\tpygeodesy.ecefLocals._EcefLocal-class.html#toEnu\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.latlonBase.LatLonBase.isantipode\tpygeodesy.latlonBase.LatLonBase-class.html#isantipode\npygeodesy.latlonBase.LatLonBase._ecef9\tpygeodesy.latlonBase.LatLonBase-class.html#_ecef9\npygeodesy.latlonBase.LatLonBase._rhumb3dict\tpygeodesy.latlonBase.LatLonBase-class.html#_rhumb3dict\npygeodesy.latlonBase.LatLonBase.to2ab\tpygeodesy.latlonBase.LatLonBase-class.html#to2ab\npygeodesy.sphericalNvector.LatLon.greatCircle\tpygeodesy.sphericalNvector.LatLon-class.html#greatCircle\npygeodesy.latlonBase.LatLonBase.toStr\tpygeodesy.latlonBase.LatLonBase-class.html#toStr\npygeodesy.sphericalBase.LatLonSphericalBase._datum\tpygeodesy.sphericalBase.LatLonSphericalBase-class.html#_datum\npygeodesy.latlonBase.LatLonBase.PointsIter\tpygeodesy.latlonBase.LatLonBase-class.html#PointsIter\npygeodesy.ecefLocals._EcefLocal.toXyz\tpygeodesy.ecefLocals._EcefLocal-class.html#toXyz\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.latlonBase.LatLonBase.antipode\tpygeodesy.latlonBase.LatLonBase-class.html#antipode\npygeodesy.sphericalNvector.LatLon.intermediateChordTo\tpygeodesy.sphericalNvector.LatLon-class.html#intermediateChordTo\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.sphericalNvector.LatLon.intersection\tpygeodesy.sphericalNvector.LatLon-class.html#intersection\npygeodesy.sphericalBase.LatLonSphericalBase._napieradius\tpygeodesy.sphericalBase.LatLonSphericalBase-class.html#_napieradius\npygeodesy.latlonBase.LatLonBase.toEcef\tpygeodesy.latlonBase.LatLonBase-class.html#toEcef\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.nvectorBase.LatLonNvectorBase.triangulate\tpygeodesy.nvectorBase.LatLonNvectorBase-class.html#triangulate\npygeodesy.latlonBase.LatLonBase.thomasTo\tpygeodesy.latlonBase.LatLonBase-class.html#thomasTo\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.latlonBase.LatLonBase._Ecef_forward\tpygeodesy.latlonBase.LatLonBase-class.html#_Ecef_forward\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._NamedBase.toRepr\tpygeodesy.named._NamedBase-class.html#toRepr\npygeodesy.latlonBase.LatLonBase.isantipodeTo\tpygeodesy.latlonBase.LatLonBase-class.html#isantipodeTo\npygeodesy.ecefLocals._EcefLocal._ltp\tpygeodesy.ecefLocals._EcefLocal-class.html#_ltp\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.latlonBase.LatLonBase.points2\tpygeodesy.latlonBase.LatLonBase-class.html#points2\npygeodesy.sphericalNvector.LatLon._Nv\tpygeodesy.sphericalNvector.LatLon-class.html#_Nv\npygeodesy.latlonBase.LatLonBase.toDatum\tpygeodesy.latlonBase.LatLonBase-class.html#toDatum\npygeodesy.sphericalBase.LatLonSphericalBase.rhumbBearingTo\tpygeodesy.sphericalBase.LatLonSphericalBase-class.html#rhumbBearingTo\npygeodesy.ecefLocals._EcefLocal.toLtp\tpygeodesy.ecefLocals._EcefLocal-class.html#toLtp\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.latlonBase.LatLonBase.clipid\tpygeodesy.latlonBase.LatLonBase-class.html#clipid\npygeodesy.latlonBase.LatLonBase.ellipsoidalLatLon\tpygeodesy.latlonBase.LatLonBase-class.html#ellipsoidalLatLon\npygeodesy.latlonBase.LatLonBase.latlon\tpygeodesy.latlonBase.LatLonBase-class.html#latlon\npygeodesy.latlonBase.LatLonBase.hartzell\tpygeodesy.latlonBase.LatLonBase-class.html#hartzell\npygeodesy.latlonBase.LatLonBase.haversineTo\tpygeodesy.latlonBase.LatLonBase-class.html#haversineTo\npygeodesy.latlonBase.LatLonBase.normal\tpygeodesy.latlonBase.LatLonBase-class.html#normal\npygeodesy.latlonBase.LatLonBase.philam\tpygeodesy.latlonBase.LatLonBase-class.html#philam\npygeodesy.ecefLocals._EcefLocal.toAer\tpygeodesy.ecefLocals._EcefLocal-class.html#toAer\npygeodesy.sphericalNvector.LatLon.greatCircleTo\tpygeodesy.sphericalNvector.LatLon-class.html#greatCircleTo\npygeodesy.latlonBase.LatLonBase.chordTo\tpygeodesy.latlonBase.LatLonBase-class.html#chordTo\npygeodesy.sphericalBase.LatLonSphericalBase.finalBearingTo\tpygeodesy.sphericalBase.LatLonSphericalBase-class.html#finalBearingTo\npygeodesy.latlonBase.LatLonBase.__ne__\tpygeodesy.latlonBase.LatLonBase-class.html#__ne__\npygeodesy.latlonBase.LatLonBase.toWm\tpygeodesy.latlonBase.LatLonBase-class.html#toWm\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.sphericalBase.LatLonSphericalBase.sphericalLatLon\tpygeodesy.sphericalBase.LatLonSphericalBase-class.html#sphericalLatLon\npygeodesy.latlonBase.LatLonBase.equals\tpygeodesy.latlonBase.LatLonBase-class.html#equals\npygeodesy.sphericalNvector.LatLon.nearestOn3\tpygeodesy.sphericalNvector.LatLon-class.html#nearestOn3\npygeodesy.sphericalNvector.LatLon.nearestOn2\tpygeodesy.sphericalNvector.LatLon-class.html#nearestOn2\npygeodesy.latlonBase.LatLonBase.circin6\tpygeodesy.latlonBase.LatLonBase-class.html#circin6\npygeodesy.sphericalBase.LatLonSphericalBase._mpr\tpygeodesy.sphericalBase.LatLonSphericalBase-class.html#_mpr\npygeodesy.nvectorBase.LatLonNvectorBase.others\tpygeodesy.nvectorBase.LatLonNvectorBase-class.html#others\npygeodesy.sphericalBase.LatLonSphericalBase.rhumbIntersecant2\tpygeodesy.sphericalBase.LatLonSphericalBase-class.html#rhumbIntersecant2\npygeodesy.sphericalNvector.LatLon.crossTrackDistanceTo\tpygeodesy.sphericalNvector.LatLon-class.html#crossTrackDistanceTo\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.latlonBase.LatLonBase.toVector3d\tpygeodesy.latlonBase.LatLonBase-class.html#toVector3d\npygeodesy.latlonBase.LatLonBase._lat\tpygeodesy.latlonBase.LatLonBase-class.html#_lat\npygeodesy.latlonBase.LatLonBase.cosineForsytheAndoyerLambertTo\tpygeodesy.latlonBase.LatLonBase-class.html#cosineForsytheAndoyerLambertTo\npygeodesy.sphericalBase.LatLonSphericalBase.napieradius\tpygeodesy.sphericalBase.LatLonSphericalBase-class.html#napieradius\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.latlonBase.LatLonBase.compassAngleTo\tpygeodesy.latlonBase.LatLonBase-class.html#compassAngleTo\npygeodesy.named._NamedBase.__repr__\tpygeodesy.named._NamedBase-class.html#__repr__\npygeodesy.sphericalNvector.LatLon.intersection2\tpygeodesy.sphericalNvector.LatLon-class.html#intersection2\npygeodesy.latlonBase.LatLonBase.latlon_\tpygeodesy.latlonBase.LatLonBase-class.html#latlon_\npygeodesy.latlonBase.LatLonBase.flatPolarTo\tpygeodesy.latlonBase.LatLonBase-class.html#flatPolarTo\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.latlonBase.LatLonBase.boundsOf\tpygeodesy.latlonBase.LatLonBase-class.html#boundsOf\npygeodesy.latlonBase.LatLonBase._havg\tpygeodesy.latlonBase.LatLonBase-class.html#_havg\npygeodesy.latlonBase.LatLonBase.xyz\tpygeodesy.latlonBase.LatLonBase-class.html#xyz\npygeodesy.latlonBase.LatLonBase.nearestOn6\tpygeodesy.latlonBase.LatLonBase-class.html#nearestOn6\npygeodesy.latlonBase.LatLonBase.isEllipsoidal\tpygeodesy.latlonBase.LatLonBase-class.html#isEllipsoidal\npygeodesy.latlonBase.LatLonBase.height\tpygeodesy.latlonBase.LatLonBase-class.html#height\npygeodesy.sphericalNvector.LatLon._gc3\tpygeodesy.sphericalNvector.LatLon-class.html#_gc3\npygeodesy.latlonBase.LatLonBase.radii11\tpygeodesy.latlonBase.LatLonBase-class.html#radii11\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.latlonBase.LatLonBase.equals3\tpygeodesy.latlonBase.LatLonBase-class.html#equals3\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.latlonBase.LatLonBase.toVector\tpygeodesy.latlonBase.LatLonBase-class.html#toVector\npygeodesy.sphericalBase.LatLonSphericalBase.rhumbDestination\tpygeodesy.sphericalBase.LatLonSphericalBase-class.html#rhumbDestination\npygeodesy.latlonBase.LatLonBase.isequalTo3\tpygeodesy.latlonBase.LatLonBase-class.html#isequalTo3\npygeodesy.nvectorBase.LatLonNvectorBase.trilaterate5\tpygeodesy.nvectorBase.LatLonNvectorBase-class.html#trilaterate5\npygeodesy.latlonBase.LatLonBase._heigHt\tpygeodesy.latlonBase.LatLonBase-class.html#_heigHt\npygeodesy.latlonBase.LatLonBase._N_vector\tpygeodesy.latlonBase.LatLonBase-class.html#_N_vector\npygeodesy.sphericalNvector.LatLon.destination\tpygeodesy.sphericalNvector.LatLon-class.html#destination\npygeodesy.latlonBase.LatLonBase.lon\tpygeodesy.latlonBase.LatLonBase-class.html#lon\npygeodesy.sphericalNvector.LatLon.midpointTo\tpygeodesy.sphericalNvector.LatLon-class.html#midpointTo\npygeodesy.latlonBase.LatLonBase.xyzh\tpygeodesy.latlonBase.LatLonBase-class.html#xyzh\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.latlonBase.LatLonBase.nearestTo\tpygeodesy.latlonBase.LatLonBase-class.html#nearestTo\npygeodesy.latlonBase.LatLonBase.cosineLawTo\tpygeodesy.latlonBase.LatLonBase-class.html#cosineLawTo\npygeodesy.latlonBase.LatLonBase.hubenyTo\tpygeodesy.latlonBase.LatLonBase-class.html#hubenyTo\npygeodesy.sphericalBase.LatLonSphericalBase._radius\tpygeodesy.sphericalBase.LatLonSphericalBase-class.html#_radius\npygeodesy.sphericalBase.LatLonSphericalBase.rhumbAzimuthTo\tpygeodesy.sphericalBase.LatLonSphericalBase-class.html#rhumbAzimuthTo\npygeodesy.ecefLocals._EcefLocal.Ecef\tpygeodesy.ecefLocals._EcefLocal-class.html#Ecef\npygeodesy.latlonBase.LatLonBase.latlon2\tpygeodesy.latlonBase.LatLonBase-class.html#latlon2\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.latlonBase.LatLonBase.circum3\tpygeodesy.latlonBase.LatLonBase-class.html#circum3\npygeodesy.latlonBase.LatLonBase._clipid\tpygeodesy.latlonBase.LatLonBase-class.html#_clipid\npygeodesy.latlonBase.LatLonBase._rhumb3\tpygeodesy.latlonBase.LatLonBase-class.html#_rhumb3\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.ecefLocals._EcefLocal._ltp_ecef2local\tpygeodesy.ecefLocals._EcefLocal-class.html#_ltp_ecef2local\npygeodesy.latlonBase.LatLonBase.__eq__\tpygeodesy.latlonBase.LatLonBase-class.html#__eq__\npygeodesy.sphericalNvector.LatLon.isWithin\tpygeodesy.sphericalNvector.LatLon-class.html#isWithin\npygeodesy.latlonBase.LatLonBase._lon\tpygeodesy.latlonBase.LatLonBase-class.html#_lon\npygeodesy.latlonBase.LatLonBase.toNormal\tpygeodesy.latlonBase.LatLonBase-class.html#toNormal\npygeodesy.latlonBase.LatLonBase.latlonheight\tpygeodesy.latlonBase.LatLonBase-class.html#latlonheight\npygeodesy.latlonBase.LatLonBase.height4\tpygeodesy.latlonBase.LatLonBase-class.html#height4\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.latlonBase.LatLonBase.xyz3\tpygeodesy.latlonBase.LatLonBase-class.html#xyz3\npygeodesy.latlonBase.LatLonBase.bounds\tpygeodesy.latlonBase.LatLonBase-class.html#bounds\npygeodesy.latlonBase.LatLonBase.circum4_\tpygeodesy.latlonBase.LatLonBase-class.html#circum4_\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.latlonBase.LatLonBase.heightStr\tpygeodesy.latlonBase.LatLonBase-class.html#heightStr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.sphericalNvector.LatLon._update\tpygeodesy.sphericalNvector.LatLon-class.html#_update\npygeodesy.ecefLocals._EcefLocal.toNed\tpygeodesy.ecefLocals._EcefLocal-class.html#toNed\npygeodesy.latlonBase.LatLonBase.cosineAndoyerLambertTo\tpygeodesy.latlonBase.LatLonBase-class.html#cosineAndoyerLambertTo\npygeodesy.sphericalBase.LatLonSphericalBase.rhumbMidpointTo\tpygeodesy.sphericalBase.LatLonSphericalBase-class.html#rhumbMidpointTo\npygeodesy.sphericalBase.LatLonSphericalBase._rhumbs3\tpygeodesy.sphericalBase.LatLonSphericalBase-class.html#_rhumbs3\npygeodesy.sphericalNvector.LatLon.toNvector\tpygeodesy.sphericalNvector.LatLon-class.html#toNvector\npygeodesy.sphericalBase.LatLonSphericalBase.parse\tpygeodesy.sphericalBase.LatLonSphericalBase-class.html#parse\npygeodesy.latlonBase.LatLonBase.isSpherical\tpygeodesy.latlonBase.LatLonBase-class.html#isSpherical\npygeodesy.latlonBase.LatLonBase._wrap_name2\tpygeodesy.latlonBase.LatLonBase-class.html#_wrap_name2\npygeodesy.nvectorBase.LatLonNvectorBase.intersections2\tpygeodesy.nvectorBase.LatLonNvectorBase-class.html#intersections2\npygeodesy.latlonBase.LatLonBase._n_xyz3\tpygeodesy.latlonBase.LatLonBase-class.html#_n_xyz3\npygeodesy.sphericalNvector.LatLon.initialBearingTo\tpygeodesy.sphericalNvector.LatLon-class.html#initialBearingTo\npygeodesy.sphericalNvector.LatLon.alongTrackDistanceTo\tpygeodesy.sphericalNvector.LatLon-class.html#alongTrackDistanceTo\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.latlonBase.LatLonBase.philamheight\tpygeodesy.latlonBase.LatLonBase-class.html#philamheight\npygeodesy.sphericalBase.LatLonSphericalBase.minLat\tpygeodesy.sphericalBase.LatLonSphericalBase-class.html#minLat\npygeodesy.latlonBase.LatLonBase.latlon2round\tpygeodesy.latlonBase.LatLonBase-class.html#latlon2round\npygeodesy.sphericalBase.LatLonSphericalBase.__init__\tpygeodesy.sphericalBase.LatLonSphericalBase-class.html#__init__\npygeodesy.sphericalBase.LatLonSphericalBase.maxLat\tpygeodesy.sphericalBase.LatLonSphericalBase-class.html#maxLat\npygeodesy.latlonBase.LatLonBase.vincentysTo\tpygeodesy.latlonBase.LatLonBase-class.html#vincentysTo\npygeodesy.ecefLocals._EcefLocal._ecef9datum\tpygeodesy.ecefLocals._EcefLocal-class.html#_ecef9datum\npygeodesy.latlonBase.LatLonBase.to3xyz\tpygeodesy.latlonBase.LatLonBase-class.html#to3xyz\npygeodesy.latlonBase.LatLonBase.lam\tpygeodesy.latlonBase.LatLonBase-class.html#lam\npygeodesy.latlonBase.LatLonBase.phi\tpygeodesy.latlonBase.LatLonBase-class.html#phi\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.latlonBase.LatLonBase.destinationXyz\tpygeodesy.latlonBase.LatLonBase-class.html#destinationXyz\npygeodesy.latlonBase.LatLonBase._height\tpygeodesy.latlonBase.LatLonBase-class.html#_height\npygeodesy.latlonBase.LatLonBase.isequalTo\tpygeodesy.latlonBase.LatLonBase-class.html#isequalTo\npygeodesy.sphericalBase.LatLonSphericalBase.bearingTo2\tpygeodesy.sphericalBase.LatLonSphericalBase-class.html#bearingTo2\npygeodesy.latlonBase.LatLonBase.euclideanTo\tpygeodesy.latlonBase.LatLonBase-class.html#euclideanTo\npygeodesy.latlonBase.LatLonBase._intersecend2\tpygeodesy.latlonBase.LatLonBase-class.html#_intersecend2\npygeodesy.latlonBase.LatLonBase.lat\tpygeodesy.latlonBase.LatLonBase-class.html#lat\npygeodesy.sphericalNvector.LatLon.intermediateTo\tpygeodesy.sphericalNvector.LatLon-class.html#intermediateTo\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.latlonBase.LatLonBase.equirectangularTo\tpygeodesy.latlonBase.LatLonBase-class.html#equirectangularTo\npygeodesy.ecefLocals._EcefLocal.toLocal\tpygeodesy.ecefLocals._EcefLocal-class.html#toLocal\npygeodesy.sphericalBase.LatLonSphericalBase.rhumbDistanceTo\tpygeodesy.sphericalBase.LatLonSphericalBase-class.html#rhumbDistanceTo\npygeodesy.latlonBase.LatLonBase.rhumbLine\tpygeodesy.latlonBase.LatLonBase-class.html#rhumbLine\npygeodesy.latlonBase.LatLonBase.compassAngle\tpygeodesy.latlonBase.LatLonBase-class.html#compassAngle\npygeodesy.sphericalBase.LatLonSphericalBase.intersecant2\tpygeodesy.sphericalBase.LatLonSphericalBase-class.html#intersecant2\npygeodesy.latlonBase.LatLonBase.points\tpygeodesy.latlonBase.LatLonBase-class.html#points\npygeodesy.latlonBase.LatLonBase._toCartesianEcef\tpygeodesy.latlonBase.LatLonBase-class.html#_toCartesianEcef\npygeodesy.latlonBase.LatLonBase._distanceTo_\tpygeodesy.latlonBase.LatLonBase-class.html#_distanceTo_\npygeodesy.sphericalNvector.LatLon.iswithin\tpygeodesy.sphericalNvector.LatLon-class.html#iswithin\npygeodesy.nvectorBase.LatLonNvectorBase.trilaterate\tpygeodesy.nvectorBase.LatLonNvectorBase-class.html#trilaterate\npygeodesy.sphericalNvector.Nvector\tpygeodesy.sphericalNvector.Nvector-class.html\npygeodesy.sphericalNvector.Nvector.toCartesian\tpygeodesy.sphericalNvector.Nvector-class.html#toCartesian\npygeodesy.vector3dBase.Vector3dBase.__int__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__int__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedBase.__str__\tpygeodesy.named._NamedBase-class.html#__str__\npygeodesy.nvectorBase.NvectorBase.datum\tpygeodesy.nvectorBase.NvectorBase-class.html#datum\npygeodesy.vector3dBase.Vector3dBase.__imatmul__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__imatmul__\npygeodesy.sphericalNvector.Nvector.toLatLon\tpygeodesy.sphericalNvector.Nvector-class.html#toLatLon\npygeodesy.nvectorBase.NvectorBase.to3abh\tpygeodesy.nvectorBase.NvectorBase-class.html#to3abh\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.vector3dBase.Vector3dBase.__rdiv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rdiv__\npygeodesy.vector3dBase.Vector3dBase.__rmul__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rmul__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.vector3dBase.Vector3dBase.__lt__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__lt__\npygeodesy.nvectorBase.NvectorBase.philamheightdatum\tpygeodesy.nvectorBase.NvectorBase-class.html#philamheightdatum\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.nvectorBase.NvectorBase.to3llh\tpygeodesy.nvectorBase.NvectorBase-class.html#to3llh\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.vector3dBase.Vector3dBase.__cmp__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__cmp__\npygeodesy.vector3d.Vector3d.nearestOn\tpygeodesy.vector3d.Vector3d-class.html#nearestOn\npygeodesy.vector3dBase.Vector3dBase.minus_\tpygeodesy.vector3dBase.Vector3dBase-class.html#minus_\npygeodesy.vector3dBase.Vector3dBase.__rfloordiv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rfloordiv__\npygeodesy.vector3dBase.Vector3dBase.crosserrors\tpygeodesy.vector3dBase.Vector3dBase-class.html#crosserrors\npygeodesy.nvectorBase.NvectorBase._h\tpygeodesy.nvectorBase.NvectorBase-class.html#_h\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.vector3dBase.Vector3dBase.rotateAround\tpygeodesy.vector3dBase.Vector3dBase-class.html#rotateAround\npygeodesy.nvectorBase.NvectorBase.to2ab\tpygeodesy.nvectorBase.NvectorBase-class.html#to2ab\npygeodesy.sphericalNvector.Nvector.greatCircle\tpygeodesy.sphericalNvector.Nvector-class.html#greatCircle\npygeodesy.nvectorBase.NvectorBase.toStr\tpygeodesy.nvectorBase.NvectorBase-class.html#toStr\npygeodesy.vector3dBase.Vector3dBase._roty\tpygeodesy.vector3dBase.Vector3dBase-class.html#_roty\npygeodesy.vector3dBase.Vector3dBase.angleTo\tpygeodesy.vector3dBase.Vector3dBase-class.html#angleTo\npygeodesy.vector3dBase.Vector3dBase.__pow__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__pow__\npygeodesy.vector3dBase.Vector3dBase.__gt__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__gt__\npygeodesy.vector3dBase.Vector3dBase.__bool__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__bool__\npygeodesy.vector3dBase.Vector3dBase.x2y2z23\tpygeodesy.vector3dBase.Vector3dBase-class.html#x2y2z23\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.nvectorBase.NvectorBase._toEcefDrv3\tpygeodesy.nvectorBase.NvectorBase-class.html#_toEcefDrv3\npygeodesy.vector3dBase.Vector3dBase.rotate\tpygeodesy.vector3dBase.Vector3dBase-class.html#rotate\npygeodesy.vector3dBase.Vector3dBase.__nonzero__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__nonzero__\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.vector3dBase.Vector3dBase._united\tpygeodesy.vector3dBase.Vector3dBase-class.html#_united\npygeodesy.vector3dBase.Vector3dBase._other_cmp\tpygeodesy.vector3dBase.Vector3dBase-class.html#_other_cmp\npygeodesy.vector3dBase.Vector3dBase._plus\tpygeodesy.vector3dBase.Vector3dBase-class.html#_plus\npygeodesy.nvectorBase.NvectorBase.latlonheight\tpygeodesy.nvectorBase.NvectorBase-class.html#latlonheight\npygeodesy.vector3dBase.Vector3dBase.to3xyz\tpygeodesy.vector3dBase.Vector3dBase-class.html#to3xyz\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.nvectorBase.NvectorBase.h\tpygeodesy.nvectorBase.NvectorBase-class.html#h\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.vector3dBase.Vector3dBase.x\tpygeodesy.vector3dBase.Vector3dBase-class.html#x\npygeodesy.vector3dBase.Vector3dBase.__long__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__long__\npygeodesy.vector3dBase.Vector3dBase.cmp\tpygeodesy.vector3dBase.Vector3dBase-class.html#cmp\npygeodesy.vector3dBase.Vector3dBase.homogeneous\tpygeodesy.vector3dBase.Vector3dBase-class.html#homogeneous\npygeodesy.nvectorBase.NvectorBase.lam\tpygeodesy.nvectorBase.NvectorBase-class.html#lam\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.vector3dBase.Vector3dBase.plus_\tpygeodesy.vector3dBase.Vector3dBase-class.html#plus_\npygeodesy.nvectorBase.NvectorBase._H\tpygeodesy.nvectorBase.NvectorBase-class.html#_H\npygeodesy.vector3dBase.Vector3dBase.__truediv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__truediv__\npygeodesy.vector3d.Vector3d.trilaterate2d2\tpygeodesy.vector3d.Vector3d-class.html#trilaterate2d2\npygeodesy.vector3dBase.Vector3dBase.euclid\tpygeodesy.vector3dBase.Vector3dBase-class.html#euclid\npygeodesy.vector3dBase.Vector3dBase._minus\tpygeodesy.vector3dBase.Vector3dBase-class.html#_minus\npygeodesy.vector3d.Vector3d.trilaterate3d2\tpygeodesy.vector3d.Vector3d-class.html#trilaterate3d2\npygeodesy.vector3dBase.Vector3dBase.__rmod__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rmod__\npygeodesy.nvectorBase.NvectorBase.latlon\tpygeodesy.nvectorBase.NvectorBase-class.html#latlon\npygeodesy.vector3dBase.Vector3dBase._crosserrors\tpygeodesy.vector3dBase.Vector3dBase-class.html#_crosserrors\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.vector3dBase.Vector3dBase._mapped\tpygeodesy.vector3dBase.Vector3dBase-class.html#_mapped\npygeodesy.vector3dBase.Vector3dBase.sum\tpygeodesy.vector3dBase.Vector3dBase-class.html#sum\npygeodesy.nvectorBase.NvectorBase.philam\tpygeodesy.nvectorBase.NvectorBase-class.html#philam\npygeodesy.vector3dBase.Vector3dBase._ll\tpygeodesy.vector3dBase.Vector3dBase-class.html#_ll\npygeodesy.vector3dBase.Vector3dBase.isequalTo\tpygeodesy.vector3dBase.Vector3dBase-class.html#isequalTo\npygeodesy.vector3dBase.Vector3dBase.__ne__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__ne__\npygeodesy.vector3dBase.Vector3dBase.__ifloordiv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__ifloordiv__\npygeodesy.vector3dBase.Vector3dBase.dividedBy_\tpygeodesy.vector3dBase.Vector3dBase-class.html#dividedBy_\npygeodesy.vector3dBase.Vector3dBase.equals\tpygeodesy.vector3dBase.Vector3dBase-class.html#equals\npygeodesy.vector3dBase.Vector3dBase.times_\tpygeodesy.vector3dBase.Vector3dBase-class.html#times_\npygeodesy.sphericalNvector.Nvector.sphericalNvector\tpygeodesy.sphericalNvector.Nvector-class.html#sphericalNvector\npygeodesy.vector3d.Vector3d.circin6\tpygeodesy.vector3d.Vector3d-class.html#circin6\npygeodesy.vector3d.Vector3d.nearestOn6\tpygeodesy.vector3d.Vector3d-class.html#nearestOn6\npygeodesy.vector3dBase.Vector3dBase.__rmatmul__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rmatmul__\npygeodesy.vector3dBase.Vector3dBase.floats\tpygeodesy.vector3dBase.Vector3dBase-class.html#floats\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.vector3d.Vector3d.meeus2\tpygeodesy.vector3d.Vector3d-class.html#meeus2\npygeodesy.vector3dBase.Vector3dBase.__imul__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__imul__\npygeodesy.vector3dBase.Vector3dBase.__trunc__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__trunc__\npygeodesy.vector3dBase.Vector3dBase.times\tpygeodesy.vector3dBase.Vector3dBase-class.html#times\npygeodesy.vector3dBase.Vector3dBase.length\tpygeodesy.vector3dBase.Vector3dBase-class.html#length\npygeodesy.vector3dBase.Vector3dBase.plus\tpygeodesy.vector3dBase.Vector3dBase-class.html#plus\npygeodesy.vector3dBase.Vector3dBase.__mul__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__mul__\npygeodesy.vector3dBase.Vector3dBase.__matmul__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__matmul__\npygeodesy.vector3dBase.Vector3dBase.__divmod__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__divmod__\npygeodesy.named._NamedBase.toRepr\tpygeodesy.named._NamedBase-class.html#toRepr\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.vector3dBase.Vector3dBase.length2\tpygeodesy.vector3dBase.Vector3dBase-class.html#length2\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.vector3dBase.Vector3dBase.pow\tpygeodesy.vector3dBase.Vector3dBase-class.html#pow\npygeodesy.vector3dBase.Vector3dBase.xyz\tpygeodesy.vector3dBase.Vector3dBase-class.html#xyz\npygeodesy.vector3dBase.Vector3dBase.others\tpygeodesy.vector3dBase.Vector3dBase-class.html#others\npygeodesy.nvectorBase.NvectorBase.isEllipsoidal\tpygeodesy.nvectorBase.NvectorBase-class.html#isEllipsoidal\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.vector3dBase.Vector3dBase.__rsub__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rsub__\npygeodesy.vector3dBase.Vector3dBase.ints\tpygeodesy.vector3dBase.Vector3dBase-class.html#ints\npygeodesy.vector3dBase.Vector3dBase.negate\tpygeodesy.vector3dBase.Vector3dBase-class.html#negate\npygeodesy.vector3dBase.Vector3dBase.apply\tpygeodesy.vector3dBase.Vector3dBase-class.html#apply\npygeodesy.vector3dBase.Vector3dBase.equirectangular\tpygeodesy.vector3dBase.Vector3dBase-class.html#equirectangular\npygeodesy.nvectorBase.NvectorBase.unit\tpygeodesy.nvectorBase.NvectorBase-class.html#unit\npygeodesy.vector3dBase.Vector3dBase.__float__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__float__\npygeodesy.vector3dBase.Vector3dBase.__rpow__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rpow__\npygeodesy.vector3d.Vector3d.soddy4\tpygeodesy.vector3d.Vector3d-class.html#soddy4\npygeodesy.vector3dBase.Vector3dBase._N_vector\tpygeodesy.vector3dBase.Vector3dBase-class.html#_N_vector\npygeodesy.nvectorBase.NvectorBase.lon\tpygeodesy.nvectorBase.NvectorBase-class.html#lon\npygeodesy.vector3d.Vector3d.iscolinearWith\tpygeodesy.vector3d.Vector3d-class.html#iscolinearWith\npygeodesy.nvectorBase.NvectorBase.xyzh\tpygeodesy.nvectorBase.NvectorBase-class.html#xyzh\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.vector3dBase.Vector3dBase.__itruediv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__itruediv__\npygeodesy.vector3dBase.Vector3dBase.dividedBy\tpygeodesy.vector3dBase.Vector3dBase-class.html#dividedBy\npygeodesy.nvectorBase.NvectorBase.Ecef\tpygeodesy.nvectorBase.NvectorBase-class.html#Ecef\npygeodesy.vector3dBase.Vector3dBase.__rdivmod__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rdivmod__\npygeodesy.nvectorBase.NvectorBase.toVector3d\tpygeodesy.nvectorBase.NvectorBase-class.html#toVector3d\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.vector3d.Vector3d.circum3\tpygeodesy.vector3d.Vector3d-class.html#circum3\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.vector3dBase.Vector3dBase.__eq__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__eq__\npygeodesy.vector3dBase.Vector3dBase.__round__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__round__\npygeodesy.vector3dBase.Vector3dBase.bools\tpygeodesy.vector3dBase.Vector3dBase-class.html#bools\npygeodesy.vector3dBase.Vector3dBase.__mod__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__mod__\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.vector3dBase.Vector3dBase.xyz3\tpygeodesy.vector3dBase.Vector3dBase-class.html#xyz3\npygeodesy.vector3dBase.Vector3dBase.__iadd__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__iadd__\npygeodesy.vector3d.Vector3d.circum4_\tpygeodesy.vector3d.Vector3d-class.html#circum4_\npygeodesy.nvectorBase.NvectorBase.latlonheightdatum\tpygeodesy.nvectorBase.NvectorBase-class.html#latlonheightdatum\npygeodesy.vector3dBase.Vector3dBase.__le__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__le__\npygeodesy.vector3dBase.Vector3dBase.__floordiv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__floordiv__\npygeodesy.vector3dBase.Vector3dBase.__hash__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__hash__\npygeodesy.vector3dBase.Vector3dBase.__sub__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__sub__\npygeodesy.vector3dBase.Vector3dBase.z\tpygeodesy.vector3dBase.Vector3dBase-class.html#z\npygeodesy.vector3dBase.Vector3dBase._xyz\tpygeodesy.vector3dBase.Vector3dBase-class.html#_xyz\npygeodesy.vector3dBase.Vector3dBase.minus\tpygeodesy.vector3dBase.Vector3dBase-class.html#minus\npygeodesy.vector3dBase.Vector3dBase.__ge__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__ge__\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.vector3d.Vector3d.bearing\tpygeodesy.vector3d.Vector3d-class.html#bearing\npygeodesy.vector3dBase.Vector3dBase.__rtruediv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rtruediv__\npygeodesy.vector3dBase.Vector3dBase.floorDividedBy_\tpygeodesy.vector3dBase.Vector3dBase-class.html#floorDividedBy_\npygeodesy.vector3dBase.Vector3dBase.__isub__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__isub__\npygeodesy.vector3dBase.Vector3dBase.x2y2z2\tpygeodesy.vector3dBase.Vector3dBase-class.html#x2y2z2\npygeodesy.vector3dBase.Vector3dBase.__radd__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__radd__\npygeodesy.vector3d.Vector3d.parse\tpygeodesy.vector3d.Vector3d-class.html#parse\npygeodesy.vector3dBase.Vector3dBase.floorDividedBy\tpygeodesy.vector3dBase.Vector3dBase-class.html#floorDividedBy\npygeodesy.vector3dBase.Vector3dBase.__floor__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__floor__\npygeodesy.nvectorBase.NvectorBase.isSpherical\tpygeodesy.nvectorBase.NvectorBase-class.html#isSpherical\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.nvectorBase.NvectorBase.__init__\tpygeodesy.nvectorBase.NvectorBase-class.html#__init__\npygeodesy.vector3dBase.Vector3dBase.__imod__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__imod__\npygeodesy.vector3dBase.Vector3dBase.fabs\tpygeodesy.vector3dBase.Vector3dBase-class.html#fabs\npygeodesy.vector3dBase.Vector3dBase._times\tpygeodesy.vector3dBase.Vector3dBase-class.html#_times\npygeodesy.vector3d.Vector3d.radii11\tpygeodesy.vector3d.Vector3d-class.html#radii11\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.vector3dBase.Vector3dBase.cross\tpygeodesy.vector3dBase.Vector3dBase-class.html#cross\npygeodesy.nvectorBase.NvectorBase.philamheight\tpygeodesy.nvectorBase.NvectorBase-class.html#philamheight\npygeodesy.vector3dBase.Vector3dBase.__pos__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__pos__\npygeodesy.nvectorBase.NvectorBase.H\tpygeodesy.nvectorBase.NvectorBase-class.html#H\npygeodesy.vector3dBase.Vector3dBase.__abs__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__abs__\npygeodesy.sphericalNvector.Nvector._datum\tpygeodesy.sphericalNvector.Nvector-class.html#_datum\npygeodesy.named._NamedBase.__repr__\tpygeodesy.named._NamedBase-class.html#__repr__\npygeodesy.nvectorBase.NvectorBase.ellipsoidalNvector\tpygeodesy.nvectorBase.NvectorBase-class.html#ellipsoidalNvector\npygeodesy.nvectorBase.NvectorBase.phi\tpygeodesy.nvectorBase.NvectorBase-class.html#phi\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.vector3dBase.Vector3dBase.__idiv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__idiv__\npygeodesy.nvectorBase.NvectorBase.to4xyzh\tpygeodesy.nvectorBase.NvectorBase-class.html#to4xyzh\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.vector3dBase.Vector3dBase._fromll\tpygeodesy.vector3dBase.Vector3dBase-class.html#_fromll\npygeodesy.vector3dBase.Vector3dBase.__add__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__add__\npygeodesy.nvectorBase.NvectorBase.lat\tpygeodesy.nvectorBase.NvectorBase-class.html#lat\npygeodesy.vector3dBase.Vector3dBase.intermediateTo\tpygeodesy.vector3dBase.Vector3dBase-class.html#intermediateTo\npygeodesy.nvectorBase.NvectorBase.hStr\tpygeodesy.nvectorBase.NvectorBase-class.html#hStr\npygeodesy.nvectorBase.NvectorBase.to2ll\tpygeodesy.nvectorBase.NvectorBase-class.html#to2ll\npygeodesy.vector3dBase.Vector3dBase.isconjugateTo\tpygeodesy.vector3dBase.Vector3dBase-class.html#isconjugateTo\npygeodesy.vector3dBase.Vector3dBase.__ipow__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__ipow__\npygeodesy.vector3dBase.Vector3dBase.__div__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__div__\npygeodesy.vector3dBase.Vector3dBase.__ceil__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__ceil__\npygeodesy.vector3dBase.Vector3dBase.__neg__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__neg__\npygeodesy.vector3dBase.Vector3dBase.y\tpygeodesy.vector3dBase.Vector3dBase-class.html#y\npygeodesy.vector3dBase.Vector3dBase.dot\tpygeodesy.vector3dBase.Vector3dBase-class.html#dot\npygeodesy.sphericalTrigonometry.Cartesian\tpygeodesy.sphericalTrigonometry.Cartesian-class.html\npygeodesy.vector3d.Vector3d.toCartesian\tpygeodesy.vector3d.Vector3d-class.html#toCartesian\npygeodesy.vector3dBase.Vector3dBase.__int__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__int__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.cartesianBase.CartesianBase.tienstra7\tpygeodesy.cartesianBase.CartesianBase-class.html#tienstra7\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedBase.__str__\tpygeodesy.named._NamedBase-class.html#__str__\npygeodesy.cartesianBase.CartesianBase.datum\tpygeodesy.cartesianBase.CartesianBase-class.html#datum\npygeodesy.vector3dBase.Vector3dBase.__imatmul__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__imatmul__\npygeodesy.sphericalTrigonometry.Cartesian.toLatLon\tpygeodesy.sphericalTrigonometry.Cartesian-class.html#toLatLon\npygeodesy.vector3dBase.Vector3dBase.times_\tpygeodesy.vector3dBase.Vector3dBase-class.html#times_\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.vector3dBase.Vector3dBase.__rdiv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rdiv__\npygeodesy.vector3dBase.Vector3dBase.__rmul__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rmul__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.vector3dBase.Vector3dBase.__lt__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__lt__\npygeodesy.cartesianBase.CartesianBase.philamheightdatum\tpygeodesy.cartesianBase.CartesianBase-class.html#philamheightdatum\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.cartesianBase.CartesianBase.to3llh\tpygeodesy.cartesianBase.CartesianBase-class.html#to3llh\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.vector3dBase.Vector3dBase.__cmp__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__cmp__\npygeodesy.vector3d.Vector3d.nearestOn\tpygeodesy.vector3d.Vector3d-class.html#nearestOn\npygeodesy.vector3dBase.Vector3dBase.minus_\tpygeodesy.vector3dBase.Vector3dBase-class.html#minus_\npygeodesy.vector3dBase.Vector3dBase.__rfloordiv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rfloordiv__\npygeodesy.cartesianBase.CartesianBase.tienstra\tpygeodesy.cartesianBase.CartesianBase-class.html#tienstra\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.cartesianBase.CartesianBase._ecef9\tpygeodesy.cartesianBase.CartesianBase-class.html#_ecef9\npygeodesy.vector3dBase.Vector3dBase.rotateAround\tpygeodesy.vector3dBase.Vector3dBase-class.html#rotateAround\npygeodesy.cartesianBase.CartesianBase.to2ab\tpygeodesy.cartesianBase.CartesianBase-class.html#to2ab\npygeodesy.cartesianBase.CartesianBase.toStr\tpygeodesy.cartesianBase.CartesianBase-class.html#toStr\npygeodesy.vector3dBase.Vector3dBase._roty\tpygeodesy.vector3dBase.Vector3dBase-class.html#_roty\npygeodesy.vector3dBase.Vector3dBase.angleTo\tpygeodesy.vector3dBase.Vector3dBase-class.html#angleTo\npygeodesy.cartesianBase.CartesianBase.toTransform\tpygeodesy.cartesianBase.CartesianBase-class.html#toTransform\npygeodesy.ecefLocals._EcefLocal.toXyz\tpygeodesy.ecefLocals._EcefLocal-class.html#toXyz\npygeodesy.vector3dBase.Vector3dBase.__pow__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__pow__\npygeodesy.vector3dBase.Vector3dBase.__gt__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__gt__\npygeodesy.vector3dBase.Vector3dBase.__bool__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__bool__\npygeodesy.vector3dBase.Vector3dBase.x2y2z23\tpygeodesy.vector3dBase.Vector3dBase-class.html#x2y2z23\npygeodesy.cartesianBase.CartesianBase.toEcef\tpygeodesy.cartesianBase.CartesianBase-class.html#toEcef\npygeodesy.vector3dBase.Vector3dBase.rotate\tpygeodesy.vector3dBase.Vector3dBase-class.html#rotate\npygeodesy.vector3dBase.Vector3dBase.__nonzero__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__nonzero__\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.vector3dBase.Vector3dBase._ll\tpygeodesy.vector3dBase.Vector3dBase-class.html#_ll\npygeodesy.vector3dBase.Vector3dBase._plus\tpygeodesy.vector3dBase.Vector3dBase-class.html#_plus\npygeodesy.cartesianBase.CartesianBase.latlonheight\tpygeodesy.cartesianBase.CartesianBase-class.html#latlonheight\npygeodesy.vector3dBase.Vector3dBase.to3xyz\tpygeodesy.vector3dBase.Vector3dBase-class.html#to3xyz\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.vector3dBase.Vector3dBase.x\tpygeodesy.vector3dBase.Vector3dBase-class.html#x\npygeodesy.vector3dBase.Vector3dBase.__long__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__long__\npygeodesy.vector3dBase.Vector3dBase.cmp\tpygeodesy.vector3dBase.Vector3dBase-class.html#cmp\npygeodesy.vector3dBase.Vector3dBase.homogeneous\tpygeodesy.vector3dBase.Vector3dBase-class.html#homogeneous\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.vector3dBase.Vector3dBase.plus_\tpygeodesy.vector3dBase.Vector3dBase-class.html#plus_\npygeodesy.sphericalBase.CartesianSphericalBase.sphericalCartesian\tpygeodesy.sphericalBase.CartesianSphericalBase-class.html#sphericalCartesian\npygeodesy.cartesianBase.CartesianBase.Roc2\tpygeodesy.cartesianBase.CartesianBase-class.html#Roc2\npygeodesy.cartesianBase.CartesianBase.toDatum\tpygeodesy.cartesianBase.CartesianBase-class.html#toDatum\npygeodesy.vector3dBase.Vector3dBase.__truediv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__truediv__\npygeodesy.ecefLocals._EcefLocal.toLtp\tpygeodesy.ecefLocals._EcefLocal-class.html#toLtp\npygeodesy.vector3d.Vector3d.trilaterate2d2\tpygeodesy.vector3d.Vector3d-class.html#trilaterate2d2\npygeodesy.vector3dBase.Vector3dBase.__matmul__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__matmul__\npygeodesy.vector3dBase.Vector3dBase.euclid\tpygeodesy.vector3dBase.Vector3dBase-class.html#euclid\npygeodesy.vector3dBase.Vector3dBase._minus\tpygeodesy.vector3dBase.Vector3dBase-class.html#_minus\npygeodesy.vector3d.Vector3d.trilaterate3d2\tpygeodesy.vector3d.Vector3d-class.html#trilaterate3d2\npygeodesy.vector3dBase.Vector3dBase.__rmod__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rmod__\npygeodesy.ecefLocals._EcefLocal._ecef9datum\tpygeodesy.ecefLocals._EcefLocal-class.html#_ecef9datum\npygeodesy.cartesianBase.CartesianBase.latlon\tpygeodesy.cartesianBase.CartesianBase-class.html#latlon\npygeodesy.cartesianBase.CartesianBase.hartzell\tpygeodesy.cartesianBase.CartesianBase-class.html#hartzell\npygeodesy.vector3dBase.Vector3dBase._crosserrors\tpygeodesy.vector3dBase.Vector3dBase-class.html#_crosserrors\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.vector3dBase.Vector3dBase._mapped\tpygeodesy.vector3dBase.Vector3dBase-class.html#_mapped\npygeodesy.vector3dBase.Vector3dBase.sum\tpygeodesy.vector3dBase.Vector3dBase-class.html#sum\npygeodesy.cartesianBase.CartesianBase.philam\tpygeodesy.cartesianBase.CartesianBase-class.html#philam\npygeodesy.ecefLocals._EcefLocal.toAer\tpygeodesy.ecefLocals._EcefLocal-class.html#toAer\npygeodesy.cartesianBase.CartesianBase.collins\tpygeodesy.cartesianBase.CartesianBase-class.html#collins\npygeodesy.vector3dBase.Vector3dBase._other_cmp\tpygeodesy.vector3dBase.Vector3dBase-class.html#_other_cmp\npygeodesy.vector3dBase.Vector3dBase.isequalTo\tpygeodesy.vector3dBase.Vector3dBase-class.html#isequalTo\npygeodesy.vector3dBase.Vector3dBase.__ne__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__ne__\npygeodesy.cartesianBase.CartesianBase._height2C\tpygeodesy.cartesianBase.CartesianBase-class.html#_height2C\npygeodesy.vector3dBase.Vector3dBase.__ifloordiv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__ifloordiv__\npygeodesy.vector3dBase.Vector3dBase.dividedBy_\tpygeodesy.vector3dBase.Vector3dBase-class.html#dividedBy_\npygeodesy.vector3dBase.Vector3dBase.equals\tpygeodesy.vector3dBase.Vector3dBase-class.html#equals\npygeodesy.cartesianBase.CartesianBase._n_xyzh4\tpygeodesy.cartesianBase.CartesianBase-class.html#_n_xyzh4\npygeodesy.vector3d.Vector3d.circin6\tpygeodesy.vector3d.Vector3d-class.html#circin6\npygeodesy.cartesianBase.CartesianBase._height4\tpygeodesy.cartesianBase.CartesianBase-class.html#_height4\npygeodesy.vector3d.Vector3d.nearestOn6\tpygeodesy.vector3d.Vector3d-class.html#nearestOn6\npygeodesy.vector3dBase.Vector3dBase.__rmatmul__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rmatmul__\npygeodesy.vector3dBase.Vector3dBase.floats\tpygeodesy.vector3dBase.Vector3dBase-class.html#floats\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.vector3d.Vector3d.meeus2\tpygeodesy.vector3d.Vector3d-class.html#meeus2\npygeodesy.vector3dBase.Vector3dBase.__imul__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__imul__\npygeodesy.vector3dBase.Vector3dBase.__trunc__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__trunc__\npygeodesy.vector3dBase.Vector3dBase.times\tpygeodesy.vector3dBase.Vector3dBase-class.html#times\npygeodesy.vector3dBase.Vector3dBase.length\tpygeodesy.vector3dBase.Vector3dBase-class.html#length\npygeodesy.vector3dBase.Vector3dBase.plus\tpygeodesy.vector3dBase.Vector3dBase-class.html#plus\npygeodesy.vector3dBase.Vector3dBase.__mul__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__mul__\npygeodesy.cartesianBase.CartesianBase.convertDatum\tpygeodesy.cartesianBase.CartesianBase-class.html#convertDatum\npygeodesy.vector3dBase.Vector3dBase.__divmod__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__divmod__\npygeodesy.named._NamedBase.toRepr\tpygeodesy.named._NamedBase-class.html#toRepr\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.cartesianBase.CartesianBase.ellipsoidalCartesian\tpygeodesy.cartesianBase.CartesianBase-class.html#ellipsoidalCartesian\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.vector3dBase.Vector3dBase.pow\tpygeodesy.vector3dBase.Vector3dBase-class.html#pow\npygeodesy.vector3dBase.Vector3dBase.xyz\tpygeodesy.vector3dBase.Vector3dBase-class.html#xyz\npygeodesy.vector3dBase.Vector3dBase.others\tpygeodesy.vector3dBase.Vector3dBase-class.html#others\npygeodesy.cartesianBase.CartesianBase.isEllipsoidal\tpygeodesy.cartesianBase.CartesianBase-class.html#isEllipsoidal\npygeodesy.cartesianBase.CartesianBase.height\tpygeodesy.cartesianBase.CartesianBase-class.html#height\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.vector3dBase.Vector3dBase.__rsub__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rsub__\npygeodesy.vector3dBase.Vector3dBase.ints\tpygeodesy.vector3dBase.Vector3dBase-class.html#ints\npygeodesy.cartesianBase.CartesianBase.cassini\tpygeodesy.cartesianBase.CartesianBase-class.html#cassini\npygeodesy.vector3dBase.Vector3dBase.negate\tpygeodesy.vector3dBase.Vector3dBase-class.html#negate\npygeodesy.vector3dBase.Vector3dBase.apply\tpygeodesy.vector3dBase.Vector3dBase-class.html#apply\npygeodesy.vector3dBase.Vector3dBase.equirectangular\tpygeodesy.vector3dBase.Vector3dBase-class.html#equirectangular\npygeodesy.vector3dBase.Vector3dBase.intermediateTo\tpygeodesy.vector3dBase.Vector3dBase-class.html#intermediateTo\npygeodesy.vector3dBase.Vector3dBase.unit\tpygeodesy.vector3dBase.Vector3dBase-class.html#unit\npygeodesy.vector3dBase.Vector3dBase.__float__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__float__\npygeodesy.vector3dBase.Vector3dBase.__rpow__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rpow__\npygeodesy.vector3d.Vector3d.soddy4\tpygeodesy.vector3d.Vector3d-class.html#soddy4\npygeodesy.ecefLocals._EcefLocal.toNed\tpygeodesy.ecefLocals._EcefLocal-class.html#toNed\npygeodesy.cartesianBase.CartesianBase._N_vector\tpygeodesy.cartesianBase.CartesianBase-class.html#_N_vector\npygeodesy.vector3d.Vector3d.iscolinearWith\tpygeodesy.vector3d.Vector3d-class.html#iscolinearWith\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.vector3dBase.Vector3dBase.__itruediv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__itruediv__\npygeodesy.vector3dBase.Vector3dBase.dividedBy\tpygeodesy.vector3dBase.Vector3dBase-class.html#dividedBy\npygeodesy.vector3dBase.Vector3dBase.__isub__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__isub__\npygeodesy.vector3dBase.Vector3dBase.__rdivmod__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rdivmod__\npygeodesy.vector3dBase.Vector3dBase.crosserrors\tpygeodesy.vector3dBase.Vector3dBase-class.html#crosserrors\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.vector3d.Vector3d.circum3\tpygeodesy.vector3d.Vector3d-class.html#circum3\npygeodesy.vector3dBase.Vector3dBase.__radd__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__radd__\npygeodesy.vector3dBase.Vector3dBase.__eq__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__eq__\npygeodesy.ecefLocals._EcefLocal.toEnu\tpygeodesy.ecefLocals._EcefLocal-class.html#toEnu\npygeodesy.vector3dBase.Vector3dBase.__round__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__round__\npygeodesy.vector3dBase.Vector3dBase.bools\tpygeodesy.vector3dBase.Vector3dBase-class.html#bools\npygeodesy.vector3dBase.Vector3dBase.__mod__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__mod__\npygeodesy.cartesianBase.CartesianBase.height4\tpygeodesy.cartesianBase.CartesianBase-class.html#height4\npygeodesy.ecefLocals._EcefLocal.Ecef\tpygeodesy.ecefLocals._EcefLocal-class.html#Ecef\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.vector3dBase.Vector3dBase.xyz3\tpygeodesy.vector3dBase.Vector3dBase-class.html#xyz3\npygeodesy.ecefLocals._EcefLocal._ltp_ecef2local\tpygeodesy.ecefLocals._EcefLocal-class.html#_ltp_ecef2local\npygeodesy.vector3dBase.Vector3dBase.__iadd__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__iadd__\npygeodesy.cartesianBase.CartesianBase.height3\tpygeodesy.cartesianBase.CartesianBase-class.html#height3\npygeodesy.vector3d.Vector3d.circum4_\tpygeodesy.vector3d.Vector3d-class.html#circum4_\npygeodesy.cartesianBase.CartesianBase.latlonheightdatum\tpygeodesy.cartesianBase.CartesianBase-class.html#latlonheightdatum\npygeodesy.vector3dBase.Vector3dBase.__le__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__le__\npygeodesy.vector3dBase.Vector3dBase.__floordiv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__floordiv__\npygeodesy.vector3dBase.Vector3dBase.__hash__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__hash__\npygeodesy.vector3dBase.Vector3dBase.__sub__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__sub__\npygeodesy.vector3dBase.Vector3dBase.z\tpygeodesy.vector3dBase.Vector3dBase-class.html#z\npygeodesy.vector3dBase.Vector3dBase._xyz\tpygeodesy.vector3dBase.Vector3dBase-class.html#_xyz\npygeodesy.vector3dBase.Vector3dBase.minus\tpygeodesy.vector3dBase.Vector3dBase-class.html#minus\npygeodesy.vector3dBase.Vector3dBase.__ge__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__ge__\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.vector3d.Vector3d.bearing\tpygeodesy.vector3d.Vector3d-class.html#bearing\npygeodesy.vector3dBase.Vector3dBase.__rtruediv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rtruediv__\npygeodesy.vector3dBase.Vector3dBase.floorDividedBy_\tpygeodesy.vector3dBase.Vector3dBase-class.html#floorDividedBy_\npygeodesy.cartesianBase.CartesianBase.collins5\tpygeodesy.cartesianBase.CartesianBase-class.html#collins5\npygeodesy.vector3dBase.Vector3dBase.x2y2z2\tpygeodesy.vector3dBase.Vector3dBase-class.html#x2y2z2\npygeodesy.cartesianBase.CartesianBase.toRtp\tpygeodesy.cartesianBase.CartesianBase-class.html#toRtp\npygeodesy.cartesianBase.CartesianBase.toNvector\tpygeodesy.cartesianBase.CartesianBase-class.html#toNvector\npygeodesy.vector3d.Vector3d.parse\tpygeodesy.vector3d.Vector3d-class.html#parse\npygeodesy.vector3dBase.Vector3dBase.floorDividedBy\tpygeodesy.vector3dBase.Vector3dBase-class.html#floorDividedBy\npygeodesy.vector3dBase.Vector3dBase.__floor__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__floor__\npygeodesy.cartesianBase.CartesianBase.isSpherical\tpygeodesy.cartesianBase.CartesianBase-class.html#isSpherical\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.sphericalBase.CartesianSphericalBase.intersections2\tpygeodesy.sphericalBase.CartesianSphericalBase-class.html#intersections2\npygeodesy.vector3dBase.Vector3dBase.__imod__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__imod__\npygeodesy.vector3dBase.Vector3dBase.fabs\tpygeodesy.vector3dBase.Vector3dBase-class.html#fabs\npygeodesy.vector3dBase.Vector3dBase._times\tpygeodesy.vector3dBase.Vector3dBase-class.html#_times\npygeodesy.vector3d.Vector3d.radii11\tpygeodesy.vector3d.Vector3d-class.html#radii11\npygeodesy.cartesianBase.CartesianBase.pierlotx\tpygeodesy.cartesianBase.CartesianBase-class.html#pierlotx\npygeodesy.vector3dBase.Vector3dBase.cross\tpygeodesy.vector3dBase.Vector3dBase-class.html#cross\npygeodesy.cartesianBase.CartesianBase.philamheight\tpygeodesy.cartesianBase.CartesianBase-class.html#philamheight\npygeodesy.vector3dBase.Vector3dBase.__pos__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__pos__\npygeodesy.cartesianBase.CartesianBase.__init__\tpygeodesy.cartesianBase.CartesianBase-class.html#__init__\npygeodesy.vector3dBase.Vector3dBase.__abs__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__abs__\npygeodesy.sphericalBase.CartesianSphericalBase._datum\tpygeodesy.sphericalBase.CartesianSphericalBase-class.html#_datum\npygeodesy.named._NamedBase.__repr__\tpygeodesy.named._NamedBase-class.html#__repr__\npygeodesy.ecefLocals._EcefLocal._ltp\tpygeodesy.ecefLocals._EcefLocal-class.html#_ltp\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.cartesianBase.CartesianBase.destinationXyz\tpygeodesy.cartesianBase.CartesianBase-class.html#destinationXyz\npygeodesy.cartesianBase.CartesianBase._height\tpygeodesy.cartesianBase.CartesianBase-class.html#_height\npygeodesy.vector3dBase.Vector3dBase.__idiv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__idiv__\npygeodesy.vector3dBase.Vector3dBase._united\tpygeodesy.vector3dBase.Vector3dBase-class.html#_united\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.vector3dBase.Vector3dBase._fromll\tpygeodesy.vector3dBase.Vector3dBase-class.html#_fromll\npygeodesy.vector3dBase.Vector3dBase.__add__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__add__\npygeodesy.cartesianBase.CartesianBase.toVector\tpygeodesy.cartesianBase.CartesianBase-class.html#toVector\npygeodesy.cartesianBase.CartesianBase.pierlot\tpygeodesy.cartesianBase.CartesianBase-class.html#pierlot\npygeodesy.ecefLocals._EcefLocal.toLocal\tpygeodesy.ecefLocals._EcefLocal-class.html#toLocal\npygeodesy.vector3dBase.Vector3dBase.length2\tpygeodesy.vector3dBase.Vector3dBase-class.html#length2\npygeodesy.cartesianBase.CartesianBase.to2ll\tpygeodesy.cartesianBase.CartesianBase-class.html#to2ll\npygeodesy.vector3dBase.Vector3dBase.isconjugateTo\tpygeodesy.vector3dBase.Vector3dBase-class.html#isconjugateTo\npygeodesy.vector3dBase.Vector3dBase.__ipow__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__ipow__\npygeodesy.vector3dBase.Vector3dBase.__div__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__div__\npygeodesy.vector3dBase.Vector3dBase.__ceil__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__ceil__\npygeodesy.vector3dBase.Vector3dBase.__neg__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__neg__\npygeodesy.vector3dBase.Vector3dBase.y\tpygeodesy.vector3dBase.Vector3dBase-class.html#y\npygeodesy.vector3dBase.Vector3dBase.dot\tpygeodesy.vector3dBase.Vector3dBase-class.html#dot\npygeodesy.sphericalTrigonometry.LatLon\tpygeodesy.sphericalTrigonometry.LatLon-class.html\npygeodesy.sphericalTrigonometry.LatLon.toCartesian\tpygeodesy.sphericalTrigonometry.LatLon-class.html#toCartesian\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.sphericalTrigonometry.LatLon.isenclosedBy\tpygeodesy.sphericalTrigonometry.LatLon-class.html#isenclosedBy\npygeodesy.latlonBase.LatLonBase.__str__\tpygeodesy.latlonBase.LatLonBase-class.html#__str__\npygeodesy.sphericalBase.LatLonSphericalBase.datum\tpygeodesy.sphericalBase.LatLonSphericalBase-class.html#datum\npygeodesy.latlonBase.LatLonBase.philam2\tpygeodesy.latlonBase.LatLonBase-class.html#philam2\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.latlonBase.LatLonBase.to3llh\tpygeodesy.latlonBase.LatLonBase-class.html#to3llh\npygeodesy.latlonBase.LatLonBase.isnormal\tpygeodesy.latlonBase.LatLonBase-class.html#isnormal\npygeodesy.sphericalTrigonometry.LatLon.isEnclosedBy\tpygeodesy.sphericalTrigonometry.LatLon-class.html#isEnclosedBy\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.sphericalTrigonometry.LatLon.distanceTo\tpygeodesy.sphericalTrigonometry.LatLon-class.html#distanceTo\npygeodesy.latlonBase.LatLonBase.flatLocalTo\tpygeodesy.latlonBase.LatLonBase-class.html#flatLocalTo\npygeodesy.latlonBase.LatLonBase._distanceTo\tpygeodesy.latlonBase.LatLonBase-class.html#_distanceTo\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.sphericalTrigonometry.LatLon.nearestOn\tpygeodesy.sphericalTrigonometry.LatLon-class.html#nearestOn\npygeodesy.sphericalTrigonometry.LatLon.bearingTo\tpygeodesy.sphericalTrigonometry.LatLon-class.html#bearingTo\npygeodesy.ecefLocals._EcefLocal.toEnu\tpygeodesy.ecefLocals._EcefLocal-class.html#toEnu\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.latlonBase.LatLonBase.isantipode\tpygeodesy.latlonBase.LatLonBase-class.html#isantipode\npygeodesy.latlonBase.LatLonBase._ecef9\tpygeodesy.latlonBase.LatLonBase-class.html#_ecef9\npygeodesy.latlonBase.LatLonBase._rhumb3dict\tpygeodesy.latlonBase.LatLonBase-class.html#_rhumb3dict\npygeodesy.latlonBase.LatLonBase.to2ab\tpygeodesy.latlonBase.LatLonBase-class.html#to2ab\npygeodesy.sphericalTrigonometry.LatLon.greatCircle\tpygeodesy.sphericalTrigonometry.LatLon-class.html#greatCircle\npygeodesy.latlonBase.LatLonBase.toStr\tpygeodesy.latlonBase.LatLonBase-class.html#toStr\npygeodesy.sphericalBase.LatLonSphericalBase._datum\tpygeodesy.sphericalBase.LatLonSphericalBase-class.html#_datum\npygeodesy.latlonBase.LatLonBase.PointsIter\tpygeodesy.latlonBase.LatLonBase-class.html#PointsIter\npygeodesy.latlonBase.LatLonBase.isEllipsoidal\tpygeodesy.latlonBase.LatLonBase-class.html#isEllipsoidal\npygeodesy.ecefLocals._EcefLocal.toXyz\tpygeodesy.ecefLocals._EcefLocal-class.html#toXyz\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.latlonBase.LatLonBase.antipode\tpygeodesy.latlonBase.LatLonBase-class.html#antipode\npygeodesy.latlonBase.LatLonBase._n_xyz3\tpygeodesy.latlonBase.LatLonBase-class.html#_n_xyz3\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.sphericalTrigonometry.LatLon.intersection\tpygeodesy.sphericalTrigonometry.LatLon-class.html#intersection\npygeodesy.sphericalBase.LatLonSphericalBase._napieradius\tpygeodesy.sphericalBase.LatLonSphericalBase-class.html#_napieradius\npygeodesy.latlonBase.LatLonBase.toEcef\tpygeodesy.latlonBase.LatLonBase-class.html#toEcef\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.sphericalTrigonometry.LatLon.triangulate\tpygeodesy.sphericalTrigonometry.LatLon-class.html#triangulate\npygeodesy.latlonBase.LatLonBase.thomasTo\tpygeodesy.latlonBase.LatLonBase-class.html#thomasTo\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.latlonBase.LatLonBase._Ecef_forward\tpygeodesy.latlonBase.LatLonBase-class.html#_Ecef_forward\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._NamedBase.toRepr\tpygeodesy.named._NamedBase-class.html#toRepr\npygeodesy.latlonBase.LatLonBase.isantipodeTo\tpygeodesy.latlonBase.LatLonBase-class.html#isantipodeTo\npygeodesy.ecefLocals._EcefLocal._ltp\tpygeodesy.ecefLocals._EcefLocal-class.html#_ltp\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.latlonBase.LatLonBase.points2\tpygeodesy.latlonBase.LatLonBase-class.html#points2\npygeodesy.latlonBase.LatLonBase.toDatum\tpygeodesy.latlonBase.LatLonBase-class.html#toDatum\npygeodesy.sphericalBase.LatLonSphericalBase.rhumbBearingTo\tpygeodesy.sphericalBase.LatLonSphericalBase-class.html#rhumbBearingTo\npygeodesy.ecefLocals._EcefLocal.toLtp\tpygeodesy.ecefLocals._EcefLocal-class.html#toLtp\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.latlonBase.LatLonBase.clipid\tpygeodesy.latlonBase.LatLonBase-class.html#clipid\npygeodesy.latlonBase.LatLonBase.ellipsoidalLatLon\tpygeodesy.latlonBase.LatLonBase-class.html#ellipsoidalLatLon\npygeodesy.latlonBase.LatLonBase.latlon\tpygeodesy.latlonBase.LatLonBase-class.html#latlon\npygeodesy.latlonBase.LatLonBase.hartzell\tpygeodesy.latlonBase.LatLonBase-class.html#hartzell\npygeodesy.latlonBase.LatLonBase.haversineTo\tpygeodesy.latlonBase.LatLonBase-class.html#haversineTo\npygeodesy.latlonBase.LatLonBase.normal\tpygeodesy.latlonBase.LatLonBase-class.html#normal\npygeodesy.latlonBase.LatLonBase.philam\tpygeodesy.latlonBase.LatLonBase-class.html#philam\npygeodesy.ecefLocals._EcefLocal.toAer\tpygeodesy.ecefLocals._EcefLocal-class.html#toAer\npygeodesy.latlonBase.LatLonBase.chordTo\tpygeodesy.latlonBase.LatLonBase-class.html#chordTo\npygeodesy.sphericalBase.LatLonSphericalBase.finalBearingTo\tpygeodesy.sphericalBase.LatLonSphericalBase-class.html#finalBearingTo\npygeodesy.latlonBase.LatLonBase.__ne__\tpygeodesy.latlonBase.LatLonBase-class.html#__ne__\npygeodesy.latlonBase.LatLonBase.toWm\tpygeodesy.latlonBase.LatLonBase-class.html#toWm\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.sphericalBase.LatLonSphericalBase.sphericalLatLon\tpygeodesy.sphericalBase.LatLonSphericalBase-class.html#sphericalLatLon\npygeodesy.latlonBase.LatLonBase.equals\tpygeodesy.latlonBase.LatLonBase-class.html#equals\npygeodesy.sphericalTrigonometry.LatLon.nearestOn3\tpygeodesy.sphericalTrigonometry.LatLon-class.html#nearestOn3\npygeodesy.sphericalTrigonometry.LatLon.nearestOn2\tpygeodesy.sphericalTrigonometry.LatLon-class.html#nearestOn2\npygeodesy.latlonBase.LatLonBase.circin6\tpygeodesy.latlonBase.LatLonBase-class.html#circin6\npygeodesy.sphericalBase.LatLonSphericalBase._mpr\tpygeodesy.sphericalBase.LatLonSphericalBase-class.html#_mpr\npygeodesy.latlonBase.LatLonBase.nearestOn6\tpygeodesy.latlonBase.LatLonBase-class.html#nearestOn6\npygeodesy.sphericalBase.LatLonSphericalBase.rhumbIntersecant2\tpygeodesy.sphericalBase.LatLonSphericalBase-class.html#rhumbIntersecant2\npygeodesy.sphericalTrigonometry.LatLon.crossTrackDistanceTo\tpygeodesy.sphericalTrigonometry.LatLon-class.html#crossTrackDistanceTo\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.latlonBase.LatLonBase.toVector3d\tpygeodesy.latlonBase.LatLonBase-class.html#toVector3d\npygeodesy.latlonBase.LatLonBase._lat\tpygeodesy.latlonBase.LatLonBase-class.html#_lat\npygeodesy.latlonBase.LatLonBase.cosineForsytheAndoyerLambertTo\tpygeodesy.latlonBase.LatLonBase-class.html#cosineForsytheAndoyerLambertTo\npygeodesy.sphericalBase.LatLonSphericalBase.napieradius\tpygeodesy.sphericalBase.LatLonSphericalBase-class.html#napieradius\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.latlonBase.LatLonBase.toVector\tpygeodesy.latlonBase.LatLonBase-class.html#toVector\npygeodesy.latlonBase.LatLonBase.compassAngleTo\tpygeodesy.latlonBase.LatLonBase-class.html#compassAngleTo\npygeodesy.named._NamedBase.__repr__\tpygeodesy.named._NamedBase-class.html#__repr__\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.latlonBase.LatLonBase.latlon_\tpygeodesy.latlonBase.LatLonBase-class.html#latlon_\npygeodesy.latlonBase.LatLonBase.flatPolarTo\tpygeodesy.latlonBase.LatLonBase-class.html#flatPolarTo\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.latlonBase.LatLonBase.boundsOf\tpygeodesy.latlonBase.LatLonBase-class.html#boundsOf\npygeodesy.latlonBase.LatLonBase._havg\tpygeodesy.latlonBase.LatLonBase-class.html#_havg\npygeodesy.sphericalTrigonometry.LatLon._ab1_ab2_db5\tpygeodesy.sphericalTrigonometry.LatLon-class.html#_ab1_ab2_db5\npygeodesy.latlonBase.LatLonBase.xyz\tpygeodesy.latlonBase.LatLonBase-class.html#xyz\npygeodesy.named._NamedBase.others\tpygeodesy.named._NamedBase-class.html#others\npygeodesy.sphericalTrigonometry.LatLon.crossingParallels\tpygeodesy.sphericalTrigonometry.LatLon-class.html#crossingParallels\npygeodesy.sphericalTrigonometry.LatLon._a_x_b3\tpygeodesy.sphericalTrigonometry.LatLon-class.html#_a_x_b3\npygeodesy.latlonBase.LatLonBase.height\tpygeodesy.latlonBase.LatLonBase-class.html#height\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.latlonBase.LatLonBase.equals3\tpygeodesy.latlonBase.LatLonBase-class.html#equals3\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.sphericalTrigonometry.LatLon.triangle7\tpygeodesy.sphericalTrigonometry.LatLon-class.html#triangle7\npygeodesy.sphericalBase.LatLonSphericalBase.rhumbDestination\tpygeodesy.sphericalBase.LatLonSphericalBase-class.html#rhumbDestination\npygeodesy.latlonBase.LatLonBase.isequalTo3\tpygeodesy.latlonBase.LatLonBase-class.html#isequalTo3\npygeodesy.sphericalTrigonometry.LatLon.trilaterate5\tpygeodesy.sphericalTrigonometry.LatLon-class.html#trilaterate5\npygeodesy.latlonBase.LatLonBase._heigHt\tpygeodesy.latlonBase.LatLonBase-class.html#_heigHt\npygeodesy.latlonBase.LatLonBase._N_vector\tpygeodesy.latlonBase.LatLonBase-class.html#_N_vector\npygeodesy.sphericalTrigonometry.LatLon.destination\tpygeodesy.sphericalTrigonometry.LatLon-class.html#destination\npygeodesy.latlonBase.LatLonBase.lon\tpygeodesy.latlonBase.LatLonBase-class.html#lon\npygeodesy.sphericalTrigonometry.LatLon.midpointTo\tpygeodesy.sphericalTrigonometry.LatLon-class.html#midpointTo\npygeodesy.latlonBase.LatLonBase.xyzh\tpygeodesy.latlonBase.LatLonBase-class.html#xyzh\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.latlonBase.LatLonBase.nearestTo\tpygeodesy.latlonBase.LatLonBase-class.html#nearestTo\npygeodesy.latlonBase.LatLonBase.cosineLawTo\tpygeodesy.latlonBase.LatLonBase-class.html#cosineLawTo\npygeodesy.latlonBase.LatLonBase.hubenyTo\tpygeodesy.latlonBase.LatLonBase-class.html#hubenyTo\npygeodesy.sphericalBase.LatLonSphericalBase._radius\tpygeodesy.sphericalBase.LatLonSphericalBase-class.html#_radius\npygeodesy.sphericalBase.LatLonSphericalBase.rhumbAzimuthTo\tpygeodesy.sphericalBase.LatLonSphericalBase-class.html#rhumbAzimuthTo\npygeodesy.ecefLocals._EcefLocal.Ecef\tpygeodesy.ecefLocals._EcefLocal-class.html#Ecef\npygeodesy.latlonBase.LatLonBase.latlon2\tpygeodesy.latlonBase.LatLonBase-class.html#latlon2\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.latlonBase.LatLonBase.circum3\tpygeodesy.latlonBase.LatLonBase-class.html#circum3\npygeodesy.latlonBase.LatLonBase._clipid\tpygeodesy.latlonBase.LatLonBase-class.html#_clipid\npygeodesy.latlonBase.LatLonBase._rhumb3\tpygeodesy.latlonBase.LatLonBase-class.html#_rhumb3\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.ecefLocals._EcefLocal._ltp_ecef2local\tpygeodesy.ecefLocals._EcefLocal-class.html#_ltp_ecef2local\npygeodesy.latlonBase.LatLonBase.__eq__\tpygeodesy.latlonBase.LatLonBase-class.html#__eq__\npygeodesy.latlonBase.LatLonBase._lon\tpygeodesy.latlonBase.LatLonBase-class.html#_lon\npygeodesy.latlonBase.LatLonBase.toNormal\tpygeodesy.latlonBase.LatLonBase-class.html#toNormal\npygeodesy.latlonBase.LatLonBase.latlonheight\tpygeodesy.latlonBase.LatLonBase-class.html#latlonheight\npygeodesy.latlonBase.LatLonBase.height4\tpygeodesy.latlonBase.LatLonBase-class.html#height4\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.latlonBase.LatLonBase.xyz3\tpygeodesy.latlonBase.LatLonBase-class.html#xyz3\npygeodesy.latlonBase.LatLonBase.bounds\tpygeodesy.latlonBase.LatLonBase-class.html#bounds\npygeodesy.latlonBase.LatLonBase.circum4_\tpygeodesy.latlonBase.LatLonBase-class.html#circum4_\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.latlonBase.LatLonBase.heightStr\tpygeodesy.latlonBase.LatLonBase-class.html#heightStr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.ecefLocals._EcefLocal.toNed\tpygeodesy.ecefLocals._EcefLocal-class.html#toNed\npygeodesy.latlonBase.LatLonBase.cosineAndoyerLambertTo\tpygeodesy.latlonBase.LatLonBase-class.html#cosineAndoyerLambertTo\npygeodesy.sphericalBase.LatLonSphericalBase.rhumbMidpointTo\tpygeodesy.sphericalBase.LatLonSphericalBase-class.html#rhumbMidpointTo\npygeodesy.sphericalBase.LatLonSphericalBase._rhumbs3\tpygeodesy.sphericalBase.LatLonSphericalBase-class.html#_rhumbs3\npygeodesy.sphericalBase.LatLonSphericalBase.toNvector\tpygeodesy.sphericalBase.LatLonSphericalBase-class.html#toNvector\npygeodesy.sphericalBase.LatLonSphericalBase.parse\tpygeodesy.sphericalBase.LatLonSphericalBase-class.html#parse\npygeodesy.latlonBase.LatLonBase.isSpherical\tpygeodesy.latlonBase.LatLonBase-class.html#isSpherical\npygeodesy.latlonBase.LatLonBase._wrap_name2\tpygeodesy.latlonBase.LatLonBase-class.html#_wrap_name2\npygeodesy.sphericalTrigonometry.LatLon.intersections2\tpygeodesy.sphericalTrigonometry.LatLon-class.html#intersections2\npygeodesy.sphericalTrigonometry.LatLon.initialBearingTo\tpygeodesy.sphericalTrigonometry.LatLon-class.html#initialBearingTo\npygeodesy.sphericalTrigonometry.LatLon.alongTrackDistanceTo\tpygeodesy.sphericalTrigonometry.LatLon-class.html#alongTrackDistanceTo\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.latlonBase.LatLonBase.philamheight\tpygeodesy.latlonBase.LatLonBase-class.html#philamheight\npygeodesy.sphericalBase.LatLonSphericalBase.minLat\tpygeodesy.sphericalBase.LatLonSphericalBase-class.html#minLat\npygeodesy.latlonBase.LatLonBase.latlon2round\tpygeodesy.latlonBase.LatLonBase-class.html#latlon2round\npygeodesy.sphericalBase.LatLonSphericalBase.__init__\tpygeodesy.sphericalBase.LatLonSphericalBase-class.html#__init__\npygeodesy.sphericalBase.LatLonSphericalBase.maxLat\tpygeodesy.sphericalBase.LatLonSphericalBase-class.html#maxLat\npygeodesy.latlonBase.LatLonBase.vincentysTo\tpygeodesy.latlonBase.LatLonBase-class.html#vincentysTo\npygeodesy.ecefLocals._EcefLocal._ecef9datum\tpygeodesy.ecefLocals._EcefLocal-class.html#_ecef9datum\npygeodesy.latlonBase.LatLonBase.to3xyz\tpygeodesy.latlonBase.LatLonBase-class.html#to3xyz\npygeodesy.latlonBase.LatLonBase.lam\tpygeodesy.latlonBase.LatLonBase-class.html#lam\npygeodesy.latlonBase.LatLonBase.phi\tpygeodesy.latlonBase.LatLonBase-class.html#phi\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.latlonBase.LatLonBase.destinationXyz\tpygeodesy.latlonBase.LatLonBase-class.html#destinationXyz\npygeodesy.latlonBase.LatLonBase._height\tpygeodesy.latlonBase.LatLonBase-class.html#_height\npygeodesy.latlonBase.LatLonBase.isequalTo\tpygeodesy.latlonBase.LatLonBase-class.html#isequalTo\npygeodesy.sphericalBase.LatLonSphericalBase.bearingTo2\tpygeodesy.sphericalBase.LatLonSphericalBase-class.html#bearingTo2\npygeodesy.latlonBase.LatLonBase.euclideanTo\tpygeodesy.latlonBase.LatLonBase-class.html#euclideanTo\npygeodesy.latlonBase.LatLonBase._intersecend2\tpygeodesy.latlonBase.LatLonBase-class.html#_intersecend2\npygeodesy.latlonBase.LatLonBase.lat\tpygeodesy.latlonBase.LatLonBase-class.html#lat\npygeodesy.sphericalTrigonometry.LatLon.intermediateTo\tpygeodesy.sphericalTrigonometry.LatLon-class.html#intermediateTo\npygeodesy.latlonBase.LatLonBase.equirectangularTo\tpygeodesy.latlonBase.LatLonBase-class.html#equirectangularTo\npygeodesy.ecefLocals._EcefLocal.toLocal\tpygeodesy.ecefLocals._EcefLocal-class.html#toLocal\npygeodesy.sphericalBase.LatLonSphericalBase.rhumbDistanceTo\tpygeodesy.sphericalBase.LatLonSphericalBase-class.html#rhumbDistanceTo\npygeodesy.latlonBase.LatLonBase.rhumbLine\tpygeodesy.latlonBase.LatLonBase-class.html#rhumbLine\npygeodesy.latlonBase.LatLonBase.compassAngle\tpygeodesy.latlonBase.LatLonBase-class.html#compassAngle\npygeodesy.sphericalBase.LatLonSphericalBase.intersecant2\tpygeodesy.sphericalBase.LatLonSphericalBase-class.html#intersecant2\npygeodesy.latlonBase.LatLonBase.points\tpygeodesy.latlonBase.LatLonBase-class.html#points\npygeodesy.latlonBase.LatLonBase._toCartesianEcef\tpygeodesy.latlonBase.LatLonBase-class.html#_toCartesianEcef\npygeodesy.latlonBase.LatLonBase._distanceTo_\tpygeodesy.latlonBase.LatLonBase-class.html#_distanceTo_\npygeodesy.latlonBase.LatLonBase.radii11\tpygeodesy.latlonBase.LatLonBase-class.html#radii11\npygeodesy.trf.RefFrame\tpygeodesy.trf.RefFrame-class.html\npygeodesy.named._NamedBase.toRepr\tpygeodesy.named._NamedBase-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.trf.RefFrame._Xitems\tpygeodesy.trf.RefFrame-class.html#_Xitems\npygeodesy.named._NamedBase.__str__\tpygeodesy.named._NamedBase-class.html#__str__\npygeodesy.trf.RefFrame.datum\tpygeodesy.trf.RefFrame-class.html#datum\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.trf.RefFrame.toRefFrame\tpygeodesy.trf.RefFrame-class.html#toRefFrame\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.trf.RefFrame.__lt__\tpygeodesy.trf.RefFrame-class.html#__lt__\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.trf.RefFrame.__init__\tpygeodesy.trf.RefFrame-class.html#__init__\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.trf.RefFrame.ellipsoid\tpygeodesy.trf.RefFrame-class.html#ellipsoid\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.trf.RefFrame._epoch\tpygeodesy.trf.RefFrame-class.html#_epoch\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.trf.RefFrame.epoch\tpygeodesy.trf.RefFrame-class.html#epoch\npygeodesy.trf.RefFrame._Xfrom\tpygeodesy.trf.RefFrame-class.html#_Xfrom\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.trf.RefFrame.Xform\tpygeodesy.trf.RefFrame-class.html#Xform\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.trf.RefFrame.toStr\tpygeodesy.trf.RefFrame-class.html#toStr\npygeodesy.trf.RefFrame._datum\tpygeodesy.trf.RefFrame-class.html#_datum\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedEnumItem._register\tpygeodesy.named._NamedEnumItem-class.html#_register\npygeodesy.named._NamedBase.others\tpygeodesy.named._NamedBase-class.html#others\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.trf.RefFrame.Xforms\tpygeodesy.trf.RefFrame-class.html#Xforms\npygeodesy.trf.RefFrame.__eq__\tpygeodesy.trf.RefFrame-class.html#__eq__\npygeodesy.named._NamedEnumItem._enum\tpygeodesy.named._NamedEnumItem-class.html#_enum\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._NamedEnumItem.name\tpygeodesy.named._NamedEnumItem-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._NamedEnumItem.unregister\tpygeodesy.named._NamedEnumItem-class.html#unregister\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedBase.__repr__\tpygeodesy.named._NamedBase-class.html#__repr__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.trf.RefFrame.__matmul__\tpygeodesy.trf.RefFrame-class.html#__matmul__\npygeodesy.trf.TRFXform\tpygeodesy.trf.TRFXform-class.html\npygeodesy.trf.TRFXform.inversed\tpygeodesy.trf.TRFXform-class.html#inversed\npygeodesy.trf.TRFXform.rename\tpygeodesy.trf.TRFXform-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.trf.TRFXform.refName2\tpygeodesy.trf.TRFXform-class.html#refName2\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.trf.TRFXform.refName1\tpygeodesy.trf.TRFXform-class.html#refName1\npygeodesy.trf.TRFXform.__str__\tpygeodesy.trf.TRFXform-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.trf.TRFXform.toRefFrame\tpygeodesy.trf.TRFXform-class.html#toRefFrame\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.trf.TRFXform.toEpoch\tpygeodesy.trf.TRFXform-class.html#toEpoch\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.trf.TRFXform.reframe1\tpygeodesy.trf.TRFXform-class.html#reframe1\npygeodesy.trf.TRFXform._inver_d\tpygeodesy.trf.TRFXform-class.html#_inver_d\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.trf.TRFXform.__lt__\tpygeodesy.trf.TRFXform-class.html#__lt__\npygeodesy.trf.TRFXform._add_sub\tpygeodesy.trf.TRFXform-class.html#_add_sub\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.trf.TRFXform.__init__\tpygeodesy.trf.TRFXform-class.html#__init__\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.trf.TRFXform.inverse\tpygeodesy.trf.TRFXform-class.html#inverse\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.trf.TRFXform._epoch\tpygeodesy.trf.TRFXform-class.html#_epoch\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.trf.TRFXform.epoch\tpygeodesy.trf.TRFXform-class.html#epoch\npygeodesy.trf.TRFXform.rates\tpygeodesy.trf.TRFXform-class.html#rates\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.trf.TRFXform._indir_d\tpygeodesy.trf.TRFXform-class.html#_indir_d\npygeodesy.trf.TRFXform.toHelmert\tpygeodesy.trf.TRFXform-class.html#toHelmert\npygeodesy.trf.TRFXform._reframe\tpygeodesy.trf.TRFXform-class.html#_reframe\npygeodesy.trf.TRFXform.__neg__\tpygeodesy.trf.TRFXform-class.html#__neg__\npygeodesy.trf.TRFXform.reframe2\tpygeodesy.trf.TRFXform-class.html#reframe2\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.trf.TRFXform._at\tpygeodesy.trf.TRFXform-class.html#_at\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.trf.TRFXform.toStr\tpygeodesy.trf.TRFXform-class.html#toStr\npygeodesy.trf.TRFXform.toTransform\tpygeodesy.trf.TRFXform-class.html#toTransform\npygeodesy.trf.TRFXform._epoch_d\tpygeodesy.trf.TRFXform-class.html#_epoch_d\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.trf.TRFXform.toRepr\tpygeodesy.trf.TRFXform-class.html#toRepr\npygeodesy.trf.TRFXform.__add__\tpygeodesy.trf.TRFXform-class.html#__add__\npygeodesy.trf.TRFXform.indirected\tpygeodesy.trf.TRFXform-class.html#indirected\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.trf.TRFXform.__eq__\tpygeodesy.trf.TRFXform-class.html#__eq__\npygeodesy.trf.TRFXform.xform\tpygeodesy.trf.TRFXform-class.html#xform\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.trf.TRFXform.epoched\tpygeodesy.trf.TRFXform-class.html#epoched\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.trf.TRFXform.__repr__\tpygeodesy.trf.TRFXform-class.html#__repr__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.trf.TRFXform.__sub__\tpygeodesy.trf.TRFXform-class.html#__sub__\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.trf.TRFXform7Tuple\tpygeodesy.trf.TRFXform7Tuple-class.html\npygeodesy.named._NamedTuple.toRepr\tpygeodesy.named._NamedTuple-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._NamedTuple.__repr__\tpygeodesy.named._NamedTuple-class.html#__repr__\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._NamedTuple.toUnits\tpygeodesy.named._NamedTuple-class.html#toUnits\npygeodesy.named._NamedTuple._validate\tpygeodesy.named._NamedTuple-class.html#_validate\npygeodesy.named._NamedTuple.__str__\tpygeodesy.named._NamedTuple-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._NamedTuple._DOT_\tpygeodesy.named._NamedTuple-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._NamedTuple.reUnit\tpygeodesy.named._NamedTuple-class.html#reUnit\npygeodesy.trf.TRFXform7Tuple._add_sub\tpygeodesy.trf.TRFXform7Tuple-class.html#_add_sub\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.trf.TRFXform7Tuple._Names_\tpygeodesy.trf.TRFXform7Tuple-class.html#_Names_\npygeodesy.named._NamedTuple.__setattr__\tpygeodesy.named._NamedTuple-class.html#__setattr__\npygeodesy.trf.TRFXform7Tuple.inverse\tpygeodesy.trf.TRFXform7Tuple-class.html#inverse\npygeodesy.named._NamedTuple.__new__\tpygeodesy.named._NamedTuple-class.html#__new__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.trf.TRFXform7Tuple._validated\tpygeodesy.trf.TRFXform7Tuple-class.html#_validated\npygeodesy.named._NamedTuple.__getattr__\tpygeodesy.named._NamedTuple-class.html#__getattr__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._NamedTuple._xtend\tpygeodesy.named._NamedTuple-class.html#_xtend\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.trf.TRFXform7Tuple.isunity\tpygeodesy.trf.TRFXform7Tuple-class.html#isunity\npygeodesy.named._NamedTuple.dup\tpygeodesy.named._NamedTuple-class.html#dup\npygeodesy.trf.TRFXform7Tuple.__neg__\tpygeodesy.trf.TRFXform7Tuple-class.html#__neg__\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedTuple.toStr\tpygeodesy.named._NamedTuple-class.html#toStr\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedTuple.units\tpygeodesy.named._NamedTuple-class.html#units\npygeodesy.named._NamedTuple.iterunits\tpygeodesy.named._NamedTuple-class.html#iterunits\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.trf.TRFXform7Tuple.__add__\tpygeodesy.trf.TRFXform7Tuple-class.html#__add__\npygeodesy.named._NamedTuple.iteritems\tpygeodesy.named._NamedTuple-class.html#iteritems\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.trf.TRFXform7Tuple.__eq__\tpygeodesy.trf.TRFXform7Tuple-class.html#__eq__\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._NamedTuple.items\tpygeodesy.named._NamedTuple-class.html#items\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedTuple.__delattr__\tpygeodesy.named._NamedTuple-class.html#__delattr__\npygeodesy.trf.TRFXform7Tuple.__mul__\tpygeodesy.trf.TRFXform7Tuple-class.html#__mul__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.trf.TRFXform7Tuple.__hash__\tpygeodesy.trf.TRFXform7Tuple-class.html#__hash__\npygeodesy.trf.TRFXform7Tuple.__sub__\tpygeodesy.trf.TRFXform7Tuple-class.html#__sub__\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.trf.TRFXform7Tuple._Units_\tpygeodesy.trf.TRFXform7Tuple-class.html#_Units_\npygeodesy.trf.TransformXform\tpygeodesy.trf.TransformXform-class.html\npygeodesy.trf.TransformXform.rename\tpygeodesy.trf.TransformXform-class.html#rename\npygeodesy.named._NamedBase.toRepr\tpygeodesy.named._NamedBase-class.html#toRepr\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedBase.__str__\tpygeodesy.named._NamedBase-class.html#__str__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.trf.TransformXform.toRefFrame\tpygeodesy.trf.TransformXform-class.html#toRefFrame\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.trf.TransformXform.__init__\tpygeodesy.trf.TransformXform-class.html#__init__\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.trf.TransformXform.inverse\tpygeodesy.trf.TransformXform-class.html#inverse\npygeodesy.datums.Transform.tz\tpygeodesy.datums.Transform-class.html#tz\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.datums.Transform.tx\tpygeodesy.datums.Transform-class.html#tx\npygeodesy.datums.Transform.ty\tpygeodesy.datums.Transform-class.html#ty\npygeodesy.datums.Transform.s1\tpygeodesy.datums.Transform-class.html#s1\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.datums.Transform.rx\tpygeodesy.datums.Transform-class.html#rx\npygeodesy.datums.Transform.transform\tpygeodesy.datums.Transform-class.html#transform\npygeodesy.datums.Transform.rz\tpygeodesy.datums.Transform-class.html#rz\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.datums.Transform.isunity\tpygeodesy.datums.Transform-class.html#isunity\npygeodesy.datums.Transform._rps2\tpygeodesy.datums.Transform-class.html#_rps2\npygeodesy.trf.TransformXform.Xform\tpygeodesy.trf.TransformXform-class.html#Xform\npygeodesy.trf.TransformXform._Xform\tpygeodesy.trf.TransformXform-class.html#_Xform\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.datums.Transform.sz\tpygeodesy.datums.Transform-class.html#sz\npygeodesy.datums.Transform.toStr\tpygeodesy.datums.Transform-class.html#toStr\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.trf.TransformXform.toTransform\tpygeodesy.trf.TransformXform-class.html#toTransform\npygeodesy.datums.Transform._s_s1\tpygeodesy.datums.Transform-class.html#_s_s1\npygeodesy.named._NamedEnumItem._register\tpygeodesy.named._NamedEnumItem-class.html#_register\npygeodesy.datums.Transform.__iter__\tpygeodesy.datums.Transform-class.html#__iter__\npygeodesy.trf.TransformXform.transform2\tpygeodesy.trf.TransformXform-class.html#transform2\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._NamedBase.others\tpygeodesy.named._NamedBase-class.html#others\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.trf.TransformXform.__eq__\tpygeodesy.trf.TransformXform-class.html#__eq__\npygeodesy.named._NamedEnumItem._enum\tpygeodesy.named._NamedEnumItem-class.html#_enum\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.datums.Transform.ry\tpygeodesy.datums.Transform-class.html#ry\npygeodesy.datums.Transform.sy\tpygeodesy.datums.Transform-class.html#sy\npygeodesy.datums.Transform.sx\tpygeodesy.datums.Transform-class.html#sx\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._NamedEnumItem.name\tpygeodesy.named._NamedEnumItem-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._NamedEnumItem.unregister\tpygeodesy.named._NamedEnumItem-class.html#unregister\npygeodesy.datums.Transform.items\tpygeodesy.datums.Transform-class.html#items\npygeodesy.trf.TransformXform.velocities\tpygeodesy.trf.TransformXform-class.html#velocities\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.datums.Transform.s\tpygeodesy.datums.Transform-class.html#s\npygeodesy.datums.Transform.__neg__\tpygeodesy.datums.Transform-class.html#__neg__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.trf.TransformXform.__hash__\tpygeodesy.trf.TransformXform-class.html#__hash__\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.datums.Transform.__matmul__\tpygeodesy.datums.Transform-class.html#__matmul__\npygeodesy.named._NamedBase.__repr__\tpygeodesy.named._NamedBase-class.html#__repr__\npygeodesy.triaxials.bases.Conformal5Tuple\tpygeodesy.triaxials.bases.Conformal5Tuple-class.html\npygeodesy.named._NamedTuple.toRepr\tpygeodesy.named._NamedTuple-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._NamedTuple.toUnits\tpygeodesy.named._NamedTuple-class.html#toUnits\npygeodesy.named._NamedTuple._validate\tpygeodesy.named._NamedTuple-class.html#_validate\npygeodesy.named._NamedTuple.__str__\tpygeodesy.named._NamedTuple-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._NamedTuple._DOT_\tpygeodesy.named._NamedTuple-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._NamedTuple.reUnit\tpygeodesy.named._NamedTuple-class.html#reUnit\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.triaxials.bases.Conformal5Tuple._Names_\tpygeodesy.triaxials.bases.Conformal5Tuple-class.html#_Names_\npygeodesy.named._NamedTuple.__setattr__\tpygeodesy.named._NamedTuple-class.html#__setattr__\npygeodesy.triaxials.bases.Conformal5Tuple.__new__\tpygeodesy.triaxials.bases.Conformal5Tuple-class.html#__new__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._NamedTuple._validated\tpygeodesy.named._NamedTuple-class.html#_validated\npygeodesy.named._NamedTuple.__getattr__\tpygeodesy.named._NamedTuple-class.html#__getattr__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._NamedTuple._xtend\tpygeodesy.named._NamedTuple-class.html#_xtend\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._NamedTuple.dup\tpygeodesy.named._NamedTuple-class.html#dup\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedTuple.toStr\tpygeodesy.named._NamedTuple-class.html#toStr\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedTuple.units\tpygeodesy.named._NamedTuple-class.html#units\npygeodesy.named._NamedTuple.iterunits\tpygeodesy.named._NamedTuple-class.html#iterunits\npygeodesy.named._NamedTuple.iteritems\tpygeodesy.named._NamedTuple-class.html#iteritems\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._NamedTuple.items\tpygeodesy.named._NamedTuple-class.html#items\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedTuple.__delattr__\tpygeodesy.named._NamedTuple-class.html#__delattr__\npygeodesy.named._NamedTuple.__repr__\tpygeodesy.named._NamedTuple-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._NamedTuple.__hash__\tpygeodesy.named._NamedTuple-class.html#__hash__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.triaxials.bases.Conformal5Tuple._Units_\tpygeodesy.triaxials.bases.Conformal5Tuple-class.html#_Units_\npygeodesy.triaxials.bases.LLK\tpygeodesy.triaxials.bases.LLK-class.html\npygeodesy.triaxials.bases.LLK.GEODETIC_X\tpygeodesy.triaxials.bases.LLK-class.html#GEODETIC_X\npygeodesy.triaxials.bases.LLK._METRICS\tpygeodesy.triaxials.bases.LLK-class.html#_METRICS\npygeodesy.triaxials.bases.LLK.ELLIPSOIDAL\tpygeodesy.triaxials.bases.LLK-class.html#ELLIPSOIDAL\npygeodesy.triaxials.bases.LLK.PLANETODETIC\tpygeodesy.triaxials.bases.LLK-class.html#PLANETODETIC\npygeodesy.triaxials.bases.LLK.GEODETIC_LON0\tpygeodesy.triaxials.bases.LLK-class.html#GEODETIC_LON0\npygeodesy.triaxials.bases.LLK._NOIDAL\tpygeodesy.triaxials.bases.LLK-class.html#_NOIDAL\npygeodesy.triaxials.bases.LLK.PARAMETRIC\tpygeodesy.triaxials.bases.LLK-class.html#PARAMETRIC\npygeodesy.triaxials.bases.LLK.GEOCENTRIC_X\tpygeodesy.triaxials.bases.LLK-class.html#GEOCENTRIC_X\npygeodesy.triaxials.bases.LLK.__getitem__\tpygeodesy.triaxials.bases.LLK-class.html#__getitem__\npygeodesy.triaxials.bases.LLK.get\tpygeodesy.triaxials.bases.LLK-class.html#get\npygeodesy.triaxials.bases.LLK.keys\tpygeodesy.triaxials.bases.LLK-class.html#keys\npygeodesy.triaxials.bases.LLK.GEOCENTRIC\tpygeodesy.triaxials.bases.LLK-class.html#GEOCENTRIC\npygeodesy.triaxials.bases.LLK._DETICS\tpygeodesy.triaxials.bases.LLK-class.html#_DETICS\npygeodesy.triaxials.bases.LLK.CONFORMAL\tpygeodesy.triaxials.bases.LLK-class.html#CONFORMAL\npygeodesy.triaxials.bases.LLK.PLANETOCENTRIC\tpygeodesy.triaxials.bases.LLK-class.html#PLANETOCENTRIC\npygeodesy.triaxials.bases.LLK.PARAMETRIC_X\tpygeodesy.triaxials.bases.LLK-class.html#PARAMETRIC_X\npygeodesy.triaxials.bases.LLK.items\tpygeodesy.triaxials.bases.LLK-class.html#items\npygeodesy.triaxials.bases.LLK.GEODETIC\tpygeodesy.triaxials.bases.LLK-class.html#GEODETIC\npygeodesy.triaxials.bases.LLK.values\tpygeodesy.triaxials.bases.LLK-class.html#values\npygeodesy.triaxials.bases.LLK._CENTRICS\tpygeodesy.triaxials.bases.LLK-class.html#_CENTRICS\npygeodesy.triaxials.bases.LLK.GEOGRAPHIC\tpygeodesy.triaxials.bases.LLK-class.html#GEOGRAPHIC\npygeodesy.triaxials.bases.TriaxialError\tpygeodesy.triaxials.bases.TriaxialError-class.html\npygeodesy.triaxials.bases._OrderedTriaxialBase\tpygeodesy.triaxials.bases._OrderedTriaxialBase-class.html\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedBase.__str__\tpygeodesy.named._NamedBase-class.html#__str__\npygeodesy.triaxials.bases._OrderedTriaxialBase._a2b2_a2c2\tpygeodesy.triaxials.bases._OrderedTriaxialBase-class.html#_a2b2_a2c2\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._norm2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_norm2\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.triaxials.bases._OrderedTriaxialBase._radialTo3\tpygeodesy.triaxials.bases._OrderedTriaxialBase-class.html#_radialTo3\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.e2bc\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#e2bc\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.R2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#R2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.R3\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#R3\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.toStr\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#toStr\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._a2b2c23\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_a2b2c23\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._a2_b2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_a2_b2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.b\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#b\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.hartzell4\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#hartzell4\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._NamedEnumItem.name\tpygeodesy.named._NamedEnumItem-class.html#name\npygeodesy.named._NamedEnumItem.unregister\tpygeodesy.named._NamedEnumItem-class.html#unregister\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._a2b2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_a2b2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.areaRG\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#areaRG\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._sideOn\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_sideOn\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.unOrdered\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#unOrdered\npygeodesy.named._NamedBase.toRepr\tpygeodesy.named._NamedBase-class.html#toRepr\npygeodesy.triaxials.bases._OrderedTriaxialBase._k2_kp2E\tpygeodesy.triaxials.bases._OrderedTriaxialBase-class.html#_k2_kp2E\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.area_p\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#area_p\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.b2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#b2\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.isOblate\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#isOblate\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._kji\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_kji\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._order_ijk\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_order_ijk\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.e2ab\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#e2ab\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.e2ac\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#e2ac\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.sideOf\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#sideOf\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.Rauthalic\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#Rauthalic\npygeodesy.named._NamedBase.others\tpygeodesy.named._NamedBase-class.html#others\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._NamedEnumItem._enum\tpygeodesy.named._NamedEnumItem-class.html#_enum\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.c\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#c\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.isProlate\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#isProlate\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.__repr__\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#__repr__\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.triaxials.bases._OrderedTriaxialBase._unordered\tpygeodesy.triaxials.bases._OrderedTriaxialBase-class.html#_unordered\npygeodesy.triaxials.bases._OrderedTriaxialBase.area21k\tpygeodesy.triaxials.bases._OrderedTriaxialBase-class.html#area21k\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._ijk\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_ijk\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._order3d\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_order3d\npygeodesy.triaxials.bases._OrderedTriaxialBase.area\tpygeodesy.triaxials.bases._OrderedTriaxialBase-class.html#area\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.volume\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#volume\npygeodesy.named._NamedEnumItem._register\tpygeodesy.named._NamedEnumItem-class.html#_register\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.c2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#c2\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.isFlat\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#isFlat\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._c2_b2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_c2_b2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.height4\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#height4\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.Rvolumetric\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#Rvolumetric\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.perimeter4ab\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#perimeter4ab\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.perimeter4ac\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#perimeter4ac\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._ordered4\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_ordered4\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._order3\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_order3\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.normal3d\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#normal3d\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.isOrdered\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#isOrdered\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.isSpherical\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#isSpherical\npygeodesy.triaxials.bases._OrderedTriaxialBase.__init__\tpygeodesy.triaxials.bases._OrderedTriaxialBase-class.html#__init__\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.perimeter4bc\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#perimeter4bc\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._a2c2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_a2c2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.toBiaxial\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#toBiaxial\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.normal4\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#normal4\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.a2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#a2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.abc3\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#abc3\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._b2c2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_b2c2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.a\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#a\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._b2_a2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_b2_a2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._c2_a2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_c2_a2\npygeodesy.triaxials.bases._OrderedTriaxialBase._areax\tpygeodesy.triaxials.bases._OrderedTriaxialBase-class.html#_areax\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.ellipse5\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#ellipse5\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.areaKT\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#areaKT\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.toEllipsoid\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#toEllipsoid\npygeodesy.triaxials.bases._Triaxial3Base\tpygeodesy.triaxials.bases._Triaxial3Base-class.html\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedBase.__str__\tpygeodesy.named._NamedBase-class.html#__str__\npygeodesy.triaxials.bases._OrderedTriaxialBase._a2b2_a2c2\tpygeodesy.triaxials.bases._OrderedTriaxialBase-class.html#_a2b2_a2c2\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.triaxials.bases._Triaxial3Base._Lon0\tpygeodesy.triaxials.bases._Triaxial3Base-class.html#_Lon0\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.triaxials.bases._Triaxial3Base._e2_k2_kp2\tpygeodesy.triaxials.bases._Triaxial3Base-class.html#_e2_k2_kp2\npygeodesy.triaxials.bases._Triaxial3Base.kp2\tpygeodesy.triaxials.bases._Triaxial3Base-class.html#kp2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._norm2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_norm2\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.triaxials.bases._OrderedTriaxialBase._radialTo3\tpygeodesy.triaxials.bases._OrderedTriaxialBase-class.html#_radialTo3\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.e2bc\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#e2bc\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.isFlat\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#isFlat\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.R2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#R2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.R3\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#R3\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.toStr\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#toStr\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._a2b2c23\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_a2b2c23\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._a2_b2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_a2_b2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.hartzell4\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#hartzell4\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._NamedEnumItem.name\tpygeodesy.named._NamedEnumItem-class.html#name\npygeodesy.named._NamedEnumItem.unregister\tpygeodesy.named._NamedEnumItem-class.html#unregister\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._a2b2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_a2b2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.areaRG\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#areaRG\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._sideOn\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_sideOn\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.unOrdered\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#unOrdered\npygeodesy.named._NamedBase.toRepr\tpygeodesy.named._NamedBase-class.html#toRepr\npygeodesy.triaxials.bases._Triaxial3Base.isBiaxial\tpygeodesy.triaxials.bases._Triaxial3Base-class.html#isBiaxial\npygeodesy.triaxials.bases._OrderedTriaxialBase._k2_kp2E\tpygeodesy.triaxials.bases._OrderedTriaxialBase-class.html#_k2_kp2E\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.area_p\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#area_p\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.b2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#b2\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._ordered4\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_ordered4\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._kji\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_kji\npygeodesy.triaxials.bases._Triaxial3Base._init_abc3_e2_k2_kp2\tpygeodesy.triaxials.bases._Triaxial3Base-class.html#_init_abc3_e2_k2_kp2\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._order_ijk\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_order_ijk\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.e2ab\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#e2ab\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.e2ac\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#e2ac\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.sideOf\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#sideOf\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.Rauthalic\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#Rauthalic\npygeodesy.named._NamedBase.others\tpygeodesy.named._NamedBase-class.html#others\npygeodesy.triaxials.bases._Triaxial3Base.Lon0\tpygeodesy.triaxials.bases._Triaxial3Base-class.html#Lon0\npygeodesy.named._NamedEnumItem._enum\tpygeodesy.named._NamedEnumItem-class.html#_enum\npygeodesy.triaxials.bases._Triaxial3Base.e2\tpygeodesy.triaxials.bases._Triaxial3Base-class.html#e2\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.c\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#c\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.triaxials.bases._Triaxial3Base.isProlate\tpygeodesy.triaxials.bases._Triaxial3Base-class.html#isProlate\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.__repr__\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#__repr__\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.triaxials.bases._OrderedTriaxialBase._unordered\tpygeodesy.triaxials.bases._OrderedTriaxialBase-class.html#_unordered\npygeodesy.triaxials.bases._OrderedTriaxialBase.area21k\tpygeodesy.triaxials.bases._OrderedTriaxialBase-class.html#area21k\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._ijk\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_ijk\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._order3d\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_order3d\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.triaxials.bases._OrderedTriaxialBase.area\tpygeodesy.triaxials.bases._OrderedTriaxialBase-class.html#area\npygeodesy.triaxials.bases._Triaxial3Base._yE\tpygeodesy.triaxials.bases._Triaxial3Base-class.html#_yE\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.triaxials.bases._Triaxial3Base._xyE\tpygeodesy.triaxials.bases._Triaxial3Base-class.html#_xyE\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.volume\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#volume\npygeodesy.named._NamedEnumItem._register\tpygeodesy.named._NamedEnumItem-class.html#_register\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.c2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#c2\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.b\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#b\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._c2_b2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_c2_b2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.height4\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#height4\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.Rvolumetric\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#Rvolumetric\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.perimeter4ab\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#perimeter4ab\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.perimeter4ac\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#perimeter4ac\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.triaxials.bases._Triaxial3Base.isOblate\tpygeodesy.triaxials.bases._Triaxial3Base-class.html#isOblate\npygeodesy.triaxials.bases._Triaxial3Base._lcc23\tpygeodesy.triaxials.bases._Triaxial3Base-class.html#_lcc23\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._order3\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_order3\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.normal3d\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#normal3d\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.isOrdered\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#isOrdered\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.isSpherical\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#isSpherical\npygeodesy.triaxials.bases._OrderedTriaxialBase.__init__\tpygeodesy.triaxials.bases._OrderedTriaxialBase-class.html#__init__\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.perimeter4bc\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#perimeter4bc\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._a2c2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_a2c2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.toBiaxial\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#toBiaxial\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.normal4\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#normal4\npygeodesy.triaxials.bases._Triaxial3Base.k2\tpygeodesy.triaxials.bases._Triaxial3Base-class.html#k2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.ellipse5\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#ellipse5\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.a2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#a2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.abc3\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#abc3\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._b2c2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_b2c2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.a\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#a\npygeodesy.triaxials.bases._Triaxial3Base._k_kp\tpygeodesy.triaxials.bases._Triaxial3Base-class.html#_k_kp\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._b2_a2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_b2_a2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._c2_a2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_c2_a2\npygeodesy.triaxials.bases._Triaxial3Base._xE\tpygeodesy.triaxials.bases._Triaxial3Base-class.html#_xE\npygeodesy.triaxials.bases._OrderedTriaxialBase._areax\tpygeodesy.triaxials.bases._OrderedTriaxialBase-class.html#_areax\npygeodesy.triaxials.bases._Triaxial3Base._k2_kp2\tpygeodesy.triaxials.bases._Triaxial3Base-class.html#_k2_kp2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.areaKT\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#areaKT\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.toEllipsoid\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#toEllipsoid\npygeodesy.triaxials.bases._UnOrderedTriaxialBase\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedBase.__str__\tpygeodesy.named._NamedBase-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._norm2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_norm2\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._radialTo3\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_radialTo3\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.e2bc\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#e2bc\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.toBiaxial\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#toBiaxial\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.R3\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#R3\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.toStr\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#toStr\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._a2b2c23\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_a2b2c23\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._a2_b2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_a2_b2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.b\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#b\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.hartzell4\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#hartzell4\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._NamedEnumItem.name\tpygeodesy.named._NamedEnumItem-class.html#name\npygeodesy.named._NamedEnumItem.unregister\tpygeodesy.named._NamedEnumItem-class.html#unregister\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.areaRG\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#areaRG\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._sideOn\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_sideOn\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.unOrdered\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#unOrdered\npygeodesy.named._NamedBase.toRepr\tpygeodesy.named._NamedBase-class.html#toRepr\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._c2_b2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_c2_b2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.area_p\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#area_p\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.b2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#b2\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._ordered4\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_ordered4\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._kji\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_kji\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._order_ijk\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_order_ijk\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.e2ab\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#e2ab\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.e2ac\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#e2ac\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.sideOf\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#sideOf\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.Rauthalic\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#Rauthalic\npygeodesy.named._NamedBase.others\tpygeodesy.named._NamedBase-class.html#others\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._NamedEnumItem._enum\tpygeodesy.named._NamedEnumItem-class.html#_enum\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.c\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#c\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.isProlate\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#isProlate\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.__repr__\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#__repr__\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._unordered\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_unordered\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._ijk\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_ijk\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._order3d\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_order3d\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.area\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#area\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.volume\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#volume\npygeodesy.named._NamedEnumItem._register\tpygeodesy.named._NamedEnumItem-class.html#_register\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.c2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#c2\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.isFlat\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#isFlat\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._a2b2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_a2b2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.height4\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#height4\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.Rvolumetric\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#Rvolumetric\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.perimeter4ab\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#perimeter4ab\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.perimeter4ac\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#perimeter4ac\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.isOblate\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#isOblate\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._order3\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_order3\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.normal3d\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#normal3d\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.isOrdered\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#isOrdered\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.isSpherical\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#isSpherical\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.__init__\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#__init__\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.perimeter4bc\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#perimeter4bc\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._a2c2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_a2c2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.R2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#R2\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.normal4\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#normal4\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.a2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#a2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.abc3\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#abc3\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._b2c2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_b2c2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.a\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#a\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._b2_a2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_b2_a2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._c2_a2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_c2_a2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.ellipse5\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#ellipse5\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.areaKT\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#areaKT\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.toEllipsoid\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#toEllipsoid\npygeodesy.triaxials.conformal3.BetOmgGam5Tuple\tpygeodesy.triaxials.conformal3.BetOmgGam5Tuple-class.html\npygeodesy.named._NamedTuple.toRepr\tpygeodesy.named._NamedTuple-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._NamedTuple.toUnits\tpygeodesy.named._NamedTuple-class.html#toUnits\npygeodesy.named._NamedTuple._validate\tpygeodesy.named._NamedTuple-class.html#_validate\npygeodesy.named._NamedTuple.__str__\tpygeodesy.named._NamedTuple-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._NamedTuple._DOT_\tpygeodesy.named._NamedTuple-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._NamedTuple.reUnit\tpygeodesy.named._NamedTuple-class.html#reUnit\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.named._NamedTuple.__setattr__\tpygeodesy.named._NamedTuple-class.html#__setattr__\npygeodesy.triaxials.conformal3.BetOmgGam5Tuple.__new__\tpygeodesy.triaxials.conformal3.BetOmgGam5Tuple-class.html#__new__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._NamedTuple._validated\tpygeodesy.named._NamedTuple-class.html#_validated\npygeodesy.named._NamedTuple.__getattr__\tpygeodesy.named._NamedTuple-class.html#__getattr__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._NamedTuple._xtend\tpygeodesy.named._NamedTuple-class.html#_xtend\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._NamedTuple.dup\tpygeodesy.named._NamedTuple-class.html#dup\npygeodesy.triaxials.conformal3.BetOmgGam5Tuple._Names_\tpygeodesy.triaxials.conformal3.BetOmgGam5Tuple-class.html#_Names_\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedTuple.toStr\tpygeodesy.named._NamedTuple-class.html#toStr\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedTuple.units\tpygeodesy.named._NamedTuple-class.html#units\npygeodesy.named._NamedTuple.iterunits\tpygeodesy.named._NamedTuple-class.html#iterunits\npygeodesy.named._NamedTuple.iteritems\tpygeodesy.named._NamedTuple-class.html#iteritems\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._NamedTuple.items\tpygeodesy.named._NamedTuple-class.html#items\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedTuple.__delattr__\tpygeodesy.named._NamedTuple-class.html#__delattr__\npygeodesy.named._NamedTuple.__repr__\tpygeodesy.named._NamedTuple-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._NamedTuple.__hash__\tpygeodesy.named._NamedTuple-class.html#__hash__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.triaxials.conformal3.BetOmgGam5Tuple._Units_\tpygeodesy.triaxials.conformal3.BetOmgGam5Tuple-class.html#_Units_\npygeodesy.triaxials.conformal3.Conformal3\tpygeodesy.triaxials.conformal3.Conformal3-class.html\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.triaxials.conformal3.Conformal3._c_b\tpygeodesy.triaxials.conformal3.Conformal3-class.html#_c_b\npygeodesy.named._NamedBase.__str__\tpygeodesy.named._NamedBase-class.html#__str__\npygeodesy.triaxials.bases._OrderedTriaxialBase._a2b2_a2c2\tpygeodesy.triaxials.bases._OrderedTriaxialBase-class.html#_a2b2_a2c2\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.triaxials.bases._Triaxial3Base._Lon0\tpygeodesy.triaxials.bases._Triaxial3Base-class.html#_Lon0\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.triaxials.bases._Triaxial3Base._e2_k2_kp2\tpygeodesy.triaxials.bases._Triaxial3Base-class.html#_e2_k2_kp2\npygeodesy.triaxials.bases._Triaxial3Base.kp2\tpygeodesy.triaxials.bases._Triaxial3Base-class.html#kp2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._norm2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_norm2\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.triaxials.conformal3.Conformal3._y\tpygeodesy.triaxials.conformal3.Conformal3-class.html#_y\npygeodesy.triaxials.conformal3.Conformal3._x\tpygeodesy.triaxials.conformal3.Conformal3-class.html#_x\npygeodesy.triaxials.conformal3.Conformal3.reverseSphere\tpygeodesy.triaxials.conformal3.Conformal3-class.html#reverseSphere\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.triaxials.bases._OrderedTriaxialBase._radialTo3\tpygeodesy.triaxials.bases._OrderedTriaxialBase-class.html#_radialTo3\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.e2bc\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#e2bc\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._a2_b2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_a2_b2\npygeodesy.triaxials.conformal3.Conformal3._a2_b\tpygeodesy.triaxials.conformal3.Conformal3-class.html#_a2_b\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.R2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#R2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.R3\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#R3\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.toStr\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#toStr\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._a2b2c23\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_a2b2c23\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.b\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#b\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.hartzell4\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#hartzell4\npygeodesy.triaxials.conformal3.Conformal3._sphScale\tpygeodesy.triaxials.conformal3.Conformal3-class.html#_sphScale\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._NamedEnumItem.name\tpygeodesy.named._NamedEnumItem-class.html#name\npygeodesy.named._NamedEnumItem.unregister\tpygeodesy.named._NamedEnumItem-class.html#unregister\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.areaRG\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#areaRG\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._sideOn\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_sideOn\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.unOrdered\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#unOrdered\npygeodesy.named._NamedBase.toRepr\tpygeodesy.named._NamedBase-class.html#toRepr\npygeodesy.triaxials.conformal3.Conformal3._b_c\tpygeodesy.triaxials.conformal3.Conformal3-class.html#_b_c\npygeodesy.triaxials.conformal3.Conformal3._b_a\tpygeodesy.triaxials.conformal3.Conformal3-class.html#_b_a\npygeodesy.triaxials.bases._Triaxial3Base.isBiaxial\tpygeodesy.triaxials.bases._Triaxial3Base-class.html#isBiaxial\npygeodesy.triaxials.bases._OrderedTriaxialBase._k2_kp2E\tpygeodesy.triaxials.bases._OrderedTriaxialBase-class.html#_k2_kp2E\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.area_p\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#area_p\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.b2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#b2\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._ordered4\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_ordered4\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._kji\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_kji\npygeodesy.triaxials.bases._Triaxial3Base._init_abc3_e2_k2_kp2\tpygeodesy.triaxials.bases._Triaxial3Base-class.html#_init_abc3_e2_k2_kp2\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._order_ijk\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_order_ijk\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.e2ab\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#e2ab\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.e2ac\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#e2ac\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.sideOf\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#sideOf\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.Rauthalic\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#Rauthalic\npygeodesy.named._NamedBase.others\tpygeodesy.named._NamedBase-class.html#others\npygeodesy.triaxials.bases._Triaxial3Base.Lon0\tpygeodesy.triaxials.bases._Triaxial3Base-class.html#Lon0\npygeodesy.named._NamedEnumItem._enum\tpygeodesy.named._NamedEnumItem-class.html#_enum\npygeodesy.triaxials.bases._Triaxial3Base.e2\tpygeodesy.triaxials.bases._Triaxial3Base-class.html#e2\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.c\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#c\npygeodesy.triaxials.conformal3.Conformal3._a_b\tpygeodesy.triaxials.conformal3.Conformal3-class.html#_a_b\npygeodesy.triaxials.bases._Triaxial3Base.isProlate\tpygeodesy.triaxials.bases._Triaxial3Base-class.html#isProlate\npygeodesy.triaxials.conformal3.Conformal3._invScale\tpygeodesy.triaxials.conformal3.Conformal3-class.html#_invScale\npygeodesy.triaxials.conformal3.Conformal3._c2_b\tpygeodesy.triaxials.conformal3.Conformal3-class.html#_c2_b\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.__repr__\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#__repr__\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.triaxials.conformal3.Conformal3.forwardBetOmg\tpygeodesy.triaxials.conformal3.Conformal3-class.html#forwardBetOmg\npygeodesy.triaxials.conformal3.Conformal3.reverseOther\tpygeodesy.triaxials.conformal3.Conformal3-class.html#reverseOther\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.triaxials.bases._OrderedTriaxialBase._unordered\tpygeodesy.triaxials.bases._OrderedTriaxialBase-class.html#_unordered\npygeodesy.triaxials.bases._OrderedTriaxialBase.area21k\tpygeodesy.triaxials.bases._OrderedTriaxialBase-class.html#area21k\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._ijk\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_ijk\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.triaxials.conformal3.Conformal3.forwardOther\tpygeodesy.triaxials.conformal3.Conformal3-class.html#forwardOther\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._order3d\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_order3d\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.triaxials.bases._OrderedTriaxialBase.area\tpygeodesy.triaxials.bases._OrderedTriaxialBase-class.html#area\npygeodesy.triaxials.bases._Triaxial3Base._yE\tpygeodesy.triaxials.bases._Triaxial3Base-class.html#_yE\npygeodesy.triaxials.conformal3.Conformal3.reverseBetOmg\tpygeodesy.triaxials.conformal3.Conformal3-class.html#reverseBetOmg\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._b2c2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_b2c2\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.triaxials.bases._Triaxial3Base._xyE\tpygeodesy.triaxials.bases._Triaxial3Base-class.html#_xyE\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.volume\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#volume\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._b2_a2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_b2_a2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.c2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#c2\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.isFlat\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#isFlat\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._a2b2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_a2b2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.height4\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#height4\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.Rvolumetric\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#Rvolumetric\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.perimeter4ab\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#perimeter4ab\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.perimeter4ac\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#perimeter4ac\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.triaxials.bases._Triaxial3Base.isOblate\tpygeodesy.triaxials.bases._Triaxial3Base-class.html#isOblate\npygeodesy.triaxials.bases._Triaxial3Base._lcc23\tpygeodesy.triaxials.bases._Triaxial3Base-class.html#_lcc23\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._order3\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_order3\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.normal3d\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#normal3d\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.isOrdered\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#isOrdered\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.triaxials.conformal3.Conformal3.equi3Sphere\tpygeodesy.triaxials.conformal3.Conformal3-class.html#equi3Sphere\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.triaxials.conformal3.Conformal3._sphScale_m\tpygeodesy.triaxials.conformal3.Conformal3-class.html#_sphScale_m\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.isSpherical\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#isSpherical\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.triaxials.bases._OrderedTriaxialBase.__init__\tpygeodesy.triaxials.bases._OrderedTriaxialBase-class.html#__init__\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.perimeter4bc\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#perimeter4bc\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._a2c2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_a2c2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.toBiaxial\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#toBiaxial\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.triaxials.conformal3.Conformal3._C3S\tpygeodesy.triaxials.conformal3.Conformal3-class.html#_C3S\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.normal4\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#normal4\npygeodesy.triaxials.bases._Triaxial3Base.k2\tpygeodesy.triaxials.bases._Triaxial3Base-class.html#k2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.ellipse5\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#ellipse5\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._c2_b2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_c2_b2\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.triaxials.conformal3.Conformal3.xyQ2\tpygeodesy.triaxials.conformal3.Conformal3-class.html#xyQ2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.a2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#a2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.abc3\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#abc3\npygeodesy.triaxials.conformal3.Conformal3.forwardSphere3\tpygeodesy.triaxials.conformal3.Conformal3-class.html#forwardSphere3\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.a\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#a\npygeodesy.triaxials.bases._Triaxial3Base._k_kp\tpygeodesy.triaxials.bases._Triaxial3Base-class.html#_k_kp\npygeodesy.named._NamedEnumItem._register\tpygeodesy.named._NamedEnumItem-class.html#_register\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._c2_a2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_c2_a2\npygeodesy.triaxials.bases._Triaxial3Base._xE\tpygeodesy.triaxials.bases._Triaxial3Base-class.html#_xE\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.triaxials.bases._OrderedTriaxialBase._areax\tpygeodesy.triaxials.bases._OrderedTriaxialBase-class.html#_areax\npygeodesy.triaxials.bases._Triaxial3Base._k2_kp2\tpygeodesy.triaxials.bases._Triaxial3Base-class.html#_k2_kp2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.areaKT\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#areaKT\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.toEllipsoid\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#toEllipsoid\npygeodesy.triaxials.conformal3.Conformal3B\tpygeodesy.triaxials.conformal3.Conformal3B-class.html\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.triaxials.conformal3.Conformal3._c_b\tpygeodesy.triaxials.conformal3.Conformal3-class.html#_c_b\npygeodesy.named._NamedBase.__str__\tpygeodesy.named._NamedBase-class.html#__str__\npygeodesy.triaxials.bases._OrderedTriaxialBase._a2b2_a2c2\tpygeodesy.triaxials.bases._OrderedTriaxialBase-class.html#_a2b2_a2c2\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.triaxials.bases._Triaxial3Base._Lon0\tpygeodesy.triaxials.bases._Triaxial3Base-class.html#_Lon0\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.triaxials.bases._Triaxial3Base._e2_k2_kp2\tpygeodesy.triaxials.bases._Triaxial3Base-class.html#_e2_k2_kp2\npygeodesy.triaxials.bases._Triaxial3Base.kp2\tpygeodesy.triaxials.bases._Triaxial3Base-class.html#kp2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._norm2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_norm2\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.triaxials.conformal3.Conformal3._y\tpygeodesy.triaxials.conformal3.Conformal3-class.html#_y\npygeodesy.triaxials.conformal3.Conformal3._x\tpygeodesy.triaxials.conformal3.Conformal3-class.html#_x\npygeodesy.triaxials.conformal3.Conformal3.reverseSphere\tpygeodesy.triaxials.conformal3.Conformal3-class.html#reverseSphere\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.triaxials.bases._OrderedTriaxialBase._radialTo3\tpygeodesy.triaxials.bases._OrderedTriaxialBase-class.html#_radialTo3\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.e2bc\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#e2bc\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._a2_b2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_a2_b2\npygeodesy.triaxials.conformal3.Conformal3._a2_b\tpygeodesy.triaxials.conformal3.Conformal3-class.html#_a2_b\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.R2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#R2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.R3\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#R3\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.toStr\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#toStr\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._a2b2c23\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_a2b2c23\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.b\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#b\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.hartzell4\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#hartzell4\npygeodesy.triaxials.conformal3.Conformal3._sphScale\tpygeodesy.triaxials.conformal3.Conformal3-class.html#_sphScale\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._NamedEnumItem.name\tpygeodesy.named._NamedEnumItem-class.html#name\npygeodesy.named._NamedEnumItem.unregister\tpygeodesy.named._NamedEnumItem-class.html#unregister\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.areaRG\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#areaRG\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._sideOn\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_sideOn\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.unOrdered\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#unOrdered\npygeodesy.named._NamedBase.toRepr\tpygeodesy.named._NamedBase-class.html#toRepr\npygeodesy.triaxials.conformal3.Conformal3._b_c\tpygeodesy.triaxials.conformal3.Conformal3-class.html#_b_c\npygeodesy.triaxials.conformal3.Conformal3._b_a\tpygeodesy.triaxials.conformal3.Conformal3-class.html#_b_a\npygeodesy.triaxials.bases._Triaxial3Base.isBiaxial\tpygeodesy.triaxials.bases._Triaxial3Base-class.html#isBiaxial\npygeodesy.triaxials.bases._OrderedTriaxialBase._k2_kp2E\tpygeodesy.triaxials.bases._OrderedTriaxialBase-class.html#_k2_kp2E\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.area_p\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#area_p\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.b2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#b2\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._ordered4\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_ordered4\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._kji\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_kji\npygeodesy.triaxials.bases._Triaxial3Base._init_abc3_e2_k2_kp2\tpygeodesy.triaxials.bases._Triaxial3Base-class.html#_init_abc3_e2_k2_kp2\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._order_ijk\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_order_ijk\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.e2ab\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#e2ab\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.e2ac\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#e2ac\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.sideOf\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#sideOf\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.Rauthalic\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#Rauthalic\npygeodesy.named._NamedBase.others\tpygeodesy.named._NamedBase-class.html#others\npygeodesy.triaxials.bases._Triaxial3Base.Lon0\tpygeodesy.triaxials.bases._Triaxial3Base-class.html#Lon0\npygeodesy.named._NamedEnumItem._enum\tpygeodesy.named._NamedEnumItem-class.html#_enum\npygeodesy.triaxials.bases._Triaxial3Base.e2\tpygeodesy.triaxials.bases._Triaxial3Base-class.html#e2\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.c\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#c\npygeodesy.triaxials.conformal3.Conformal3._a_b\tpygeodesy.triaxials.conformal3.Conformal3-class.html#_a_b\npygeodesy.triaxials.bases._Triaxial3Base.isProlate\tpygeodesy.triaxials.bases._Triaxial3Base-class.html#isProlate\npygeodesy.triaxials.conformal3.Conformal3._invScale\tpygeodesy.triaxials.conformal3.Conformal3-class.html#_invScale\npygeodesy.triaxials.conformal3.Conformal3._c2_b\tpygeodesy.triaxials.conformal3.Conformal3-class.html#_c2_b\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.__repr__\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#__repr__\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.triaxials.conformal3.Conformal3.forwardBetOmg\tpygeodesy.triaxials.conformal3.Conformal3-class.html#forwardBetOmg\npygeodesy.triaxials.conformal3.Conformal3.reverseOther\tpygeodesy.triaxials.conformal3.Conformal3-class.html#reverseOther\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.triaxials.bases._OrderedTriaxialBase._unordered\tpygeodesy.triaxials.bases._OrderedTriaxialBase-class.html#_unordered\npygeodesy.triaxials.bases._OrderedTriaxialBase.area21k\tpygeodesy.triaxials.bases._OrderedTriaxialBase-class.html#area21k\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._ijk\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_ijk\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.triaxials.conformal3.Conformal3.forwardOther\tpygeodesy.triaxials.conformal3.Conformal3-class.html#forwardOther\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._order3d\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_order3d\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.triaxials.bases._OrderedTriaxialBase.area\tpygeodesy.triaxials.bases._OrderedTriaxialBase-class.html#area\npygeodesy.triaxials.bases._Triaxial3Base._yE\tpygeodesy.triaxials.bases._Triaxial3Base-class.html#_yE\npygeodesy.triaxials.conformal3.Conformal3.reverseBetOmg\tpygeodesy.triaxials.conformal3.Conformal3-class.html#reverseBetOmg\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._b2c2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_b2c2\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.triaxials.bases._Triaxial3Base._xyE\tpygeodesy.triaxials.bases._Triaxial3Base-class.html#_xyE\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.volume\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#volume\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._b2_a2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_b2_a2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.c2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#c2\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.isFlat\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#isFlat\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._a2b2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_a2b2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.height4\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#height4\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.Rvolumetric\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#Rvolumetric\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.perimeter4ab\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#perimeter4ab\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.perimeter4ac\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#perimeter4ac\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.triaxials.bases._Triaxial3Base.isOblate\tpygeodesy.triaxials.bases._Triaxial3Base-class.html#isOblate\npygeodesy.triaxials.bases._Triaxial3Base._lcc23\tpygeodesy.triaxials.bases._Triaxial3Base-class.html#_lcc23\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._order3\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_order3\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.normal3d\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#normal3d\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.isOrdered\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#isOrdered\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.triaxials.conformal3.Conformal3.equi3Sphere\tpygeodesy.triaxials.conformal3.Conformal3-class.html#equi3Sphere\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.triaxials.conformal3.Conformal3._sphScale_m\tpygeodesy.triaxials.conformal3.Conformal3-class.html#_sphScale_m\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.isSpherical\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#isSpherical\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.triaxials.conformal3.Conformal3B.__init__\tpygeodesy.triaxials.conformal3.Conformal3B-class.html#__init__\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.perimeter4bc\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#perimeter4bc\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._a2c2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_a2c2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.toBiaxial\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#toBiaxial\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.triaxials.conformal3.Conformal3._C3S\tpygeodesy.triaxials.conformal3.Conformal3-class.html#_C3S\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.normal4\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#normal4\npygeodesy.triaxials.bases._Triaxial3Base.k2\tpygeodesy.triaxials.bases._Triaxial3Base-class.html#k2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.ellipse5\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#ellipse5\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._c2_b2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_c2_b2\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.triaxials.conformal3.Conformal3.xyQ2\tpygeodesy.triaxials.conformal3.Conformal3-class.html#xyQ2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.a2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#a2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.abc3\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#abc3\npygeodesy.triaxials.conformal3.Conformal3.forwardSphere3\tpygeodesy.triaxials.conformal3.Conformal3-class.html#forwardSphere3\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.a\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#a\npygeodesy.triaxials.bases._Triaxial3Base._k_kp\tpygeodesy.triaxials.bases._Triaxial3Base-class.html#_k_kp\npygeodesy.named._NamedEnumItem._register\tpygeodesy.named._NamedEnumItem-class.html#_register\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._c2_a2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_c2_a2\npygeodesy.triaxials.bases._Triaxial3Base._xE\tpygeodesy.triaxials.bases._Triaxial3Base-class.html#_xE\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.triaxials.bases._OrderedTriaxialBase._areax\tpygeodesy.triaxials.bases._OrderedTriaxialBase-class.html#_areax\npygeodesy.triaxials.bases._Triaxial3Base._k2_kp2\tpygeodesy.triaxials.bases._Triaxial3Base-class.html#_k2_kp2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.areaKT\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#areaKT\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.toEllipsoid\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#toEllipsoid\npygeodesy.triaxials.conformal3.Conformal3Sphere\tpygeodesy.triaxials.conformal3.Conformal3Sphere-class.html\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedBase.__str__\tpygeodesy.named._NamedBase-class.html#__str__\npygeodesy.triaxials.bases._OrderedTriaxialBase._a2b2_a2c2\tpygeodesy.triaxials.bases._OrderedTriaxialBase-class.html#_a2b2_a2c2\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._a2b2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_a2b2\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.triaxials.bases._Triaxial3Base._Lon0\tpygeodesy.triaxials.bases._Triaxial3Base-class.html#_Lon0\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.normal4\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#normal4\npygeodesy.triaxials.bases._Triaxial3Base.kp2\tpygeodesy.triaxials.bases._Triaxial3Base-class.html#kp2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._norm2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_norm2\npygeodesy.triaxials.triaxial3.Triaxial3._reverseBetOmgAlp3\tpygeodesy.triaxials.triaxial3.Triaxial3-class.html#_reverseBetOmgAlp3\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.triaxials.bases._OrderedTriaxialBase._radialTo3\tpygeodesy.triaxials.bases._OrderedTriaxialBase-class.html#_radialTo3\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.e2bc\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#e2bc\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.isFlat\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#isFlat\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.toBiaxial\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#toBiaxial\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.R3\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#R3\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.toStr\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#toStr\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._a2b2c23\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_a2b2c23\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.b\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#b\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.hartzell4\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#hartzell4\npygeodesy.triaxials.triaxial3.Triaxial3._meridian2\tpygeodesy.triaxials.triaxial3.Triaxial3-class.html#_meridian2\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._NamedEnumItem.name\tpygeodesy.named._NamedEnumItem-class.html#name\npygeodesy.named._NamedEnumItem.unregister\tpygeodesy.named._NamedEnumItem-class.html#unregister\npygeodesy.triaxials.triaxial3.Triaxial3.forwardCartesian\tpygeodesy.triaxials.triaxial3.Triaxial3-class.html#forwardCartesian\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.areaRG\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#areaRG\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._sideOn\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_sideOn\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.unOrdered\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#unOrdered\npygeodesy.named._NamedBase.toRepr\tpygeodesy.named._NamedBase-class.html#toRepr\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._order_ijk\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_order_ijk\npygeodesy.triaxials.bases._Triaxial3Base.isBiaxial\tpygeodesy.triaxials.bases._Triaxial3Base-class.html#isBiaxial\npygeodesy.triaxials.bases._OrderedTriaxialBase._k2_kp2E\tpygeodesy.triaxials.bases._OrderedTriaxialBase-class.html#_k2_kp2E\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.area_p\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#area_p\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.b2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#b2\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.triaxials.bases._Triaxial3Base.isOblate\tpygeodesy.triaxials.bases._Triaxial3Base-class.html#isOblate\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._kji\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_kji\npygeodesy.triaxials.triaxial3.Triaxial3.forwardBetaOmega_\tpygeodesy.triaxials.triaxial3.Triaxial3-class.html#forwardBetaOmega_\npygeodesy.triaxials.bases._Triaxial3Base._init_abc3_e2_k2_kp2\tpygeodesy.triaxials.bases._Triaxial3Base-class.html#_init_abc3_e2_k2_kp2\npygeodesy.triaxials.triaxial3.Triaxial3.reverseLatLon\tpygeodesy.triaxials.triaxial3.Triaxial3-class.html#reverseLatLon\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.triaxials.triaxial3.Triaxial3.forwardBetaOmega\tpygeodesy.triaxials.triaxial3.Triaxial3-class.html#forwardBetaOmega\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.e2ab\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#e2ab\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.e2ac\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#e2ac\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.sideOf\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#sideOf\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.Rauthalic\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#Rauthalic\npygeodesy.named._NamedBase.others\tpygeodesy.named._NamedBase-class.html#others\npygeodesy.triaxials.bases._Triaxial3Base.Lon0\tpygeodesy.triaxials.bases._Triaxial3Base-class.html#Lon0\npygeodesy.triaxials.triaxial3.Triaxial3.reverseBetaOmega\tpygeodesy.triaxials.triaxial3.Triaxial3-class.html#reverseBetaOmega\npygeodesy.triaxials.bases._Triaxial3Base.e2\tpygeodesy.triaxials.bases._Triaxial3Base-class.html#e2\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.c\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#c\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.triaxials.bases._Triaxial3Base.isProlate\tpygeodesy.triaxials.bases._Triaxial3Base-class.html#isProlate\npygeodesy.triaxials.triaxial3.Triaxial3._ZTOL\tpygeodesy.triaxials.triaxial3.Triaxial3-class.html#_ZTOL\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.__repr__\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#__repr__\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.triaxials.triaxial3.Triaxial3.forwardBetOmg\tpygeodesy.triaxials.triaxial3.Triaxial3-class.html#forwardBetOmg\npygeodesy.triaxials.triaxial3.Triaxial3._meridian\tpygeodesy.triaxials.triaxial3.Triaxial3-class.html#_meridian\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.triaxials.bases._OrderedTriaxialBase._unordered\tpygeodesy.triaxials.bases._OrderedTriaxialBase-class.html#_unordered\npygeodesy.triaxials.triaxial3.Triaxial3._toHeight2\tpygeodesy.triaxials.triaxial3.Triaxial3-class.html#_toHeight2\npygeodesy.triaxials.bases._OrderedTriaxialBase.area21k\tpygeodesy.triaxials.bases._OrderedTriaxialBase-class.html#area21k\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._ijk\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_ijk\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._order3d\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_order3d\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.triaxials.bases._OrderedTriaxialBase.area\tpygeodesy.triaxials.bases._OrderedTriaxialBase-class.html#area\npygeodesy.triaxials.bases._Triaxial3Base._yE\tpygeodesy.triaxials.bases._Triaxial3Base-class.html#_yE\npygeodesy.triaxials.triaxial3.Triaxial3.reverseBetOmg\tpygeodesy.triaxials.triaxial3.Triaxial3-class.html#reverseBetOmg\npygeodesy.triaxials.triaxial3.Triaxial3._ztol\tpygeodesy.triaxials.triaxial3.Triaxial3-class.html#_ztol\npygeodesy.named._NamedEnumItem._enum\tpygeodesy.named._NamedEnumItem-class.html#_enum\npygeodesy.triaxials.triaxial3.Triaxial3.reverseCartesian\tpygeodesy.triaxials.triaxial3.Triaxial3-class.html#reverseCartesian\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.triaxials.triaxial3.Triaxial3._cardinal2\tpygeodesy.triaxials.triaxial3.Triaxial3-class.html#_cardinal2\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.triaxials.triaxial3.Triaxial3.reverseBetOmgAlp\tpygeodesy.triaxials.triaxial3.Triaxial3-class.html#reverseBetOmgAlp\npygeodesy.triaxials.bases._Triaxial3Base._xyE\tpygeodesy.triaxials.bases._Triaxial3Base-class.html#_xyE\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.volume\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#volume\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._b2_a2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_b2_a2\npygeodesy.triaxials.triaxial3.Triaxial3.random2\tpygeodesy.triaxials.triaxial3.Triaxial3-class.html#random2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.c2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#c2\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.triaxials.triaxial3.Triaxial3.toTriaxial5\tpygeodesy.triaxials.triaxial3.Triaxial3-class.html#toTriaxial5\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._a2_b2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_a2_b2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._c2_b2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_c2_b2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.height4\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#height4\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.Rvolumetric\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#Rvolumetric\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.perimeter4ab\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#perimeter4ab\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.perimeter4ac\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#perimeter4ac\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._ordered4\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_ordered4\npygeodesy.triaxials.bases._Triaxial3Base._lcc23\tpygeodesy.triaxials.bases._Triaxial3Base-class.html#_lcc23\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._order3\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_order3\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.normal3d\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#normal3d\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.isOrdered\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#isOrdered\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.triaxials.triaxial3.Triaxial3.toOther\tpygeodesy.triaxials.triaxial3.Triaxial3-class.html#toOther\npygeodesy.triaxials.triaxial3.Triaxial3.reversePhiLamZet\tpygeodesy.triaxials.triaxial3.Triaxial3-class.html#reversePhiLamZet\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.isSpherical\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#isSpherical\npygeodesy.triaxials.conformal3.Conformal3Sphere.__init__\tpygeodesy.triaxials.conformal3.Conformal3Sphere-class.html#__init__\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.perimeter4bc\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#perimeter4bc\npygeodesy.triaxials.triaxial3.Triaxial3.forwardPhiLam\tpygeodesy.triaxials.triaxial3.Triaxial3-class.html#forwardPhiLam\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._a2c2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_a2c2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.R2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#R2\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.triaxials.triaxial3.Triaxial3.reversePhiLam\tpygeodesy.triaxials.triaxial3.Triaxial3-class.html#reversePhiLam\npygeodesy.triaxials.bases._Triaxial3Base._e2_k2_kp2\tpygeodesy.triaxials.bases._Triaxial3Base-class.html#_e2_k2_kp2\npygeodesy.triaxials.bases._Triaxial3Base.k2\tpygeodesy.triaxials.bases._Triaxial3Base-class.html#k2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.ellipse5\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#ellipse5\npygeodesy.triaxials.triaxial3.Triaxial3.forwardBetOmgAlp2\tpygeodesy.triaxials.triaxial3.Triaxial3-class.html#forwardBetOmgAlp2\npygeodesy.triaxials.triaxial3.Triaxial3.normed2\tpygeodesy.triaxials.triaxial3.Triaxial3-class.html#normed2\npygeodesy.triaxials.triaxial3.Triaxial3.forwardPhiLamZet2\tpygeodesy.triaxials.triaxial3.Triaxial3-class.html#forwardPhiLamZet2\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.triaxials.triaxial3.Triaxial3.forwardLatLon\tpygeodesy.triaxials.triaxial3.Triaxial3-class.html#forwardLatLon\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.a2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#a2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.abc3\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#abc3\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._b2c2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_b2c2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.a\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#a\npygeodesy.triaxials.bases._Triaxial3Base._k_kp\tpygeodesy.triaxials.bases._Triaxial3Base-class.html#_k_kp\npygeodesy.named._NamedEnumItem._register\tpygeodesy.named._NamedEnumItem-class.html#_register\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._c2_a2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_c2_a2\npygeodesy.triaxials.bases._Triaxial3Base._xE\tpygeodesy.triaxials.bases._Triaxial3Base-class.html#_xE\npygeodesy.triaxials.bases._OrderedTriaxialBase._areax\tpygeodesy.triaxials.bases._OrderedTriaxialBase-class.html#_areax\npygeodesy.triaxials.bases._Triaxial3Base._k2_kp2\tpygeodesy.triaxials.bases._Triaxial3Base-class.html#_k2_kp2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.areaKT\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#areaKT\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.toEllipsoid\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#toEllipsoid\npygeodesy.triaxials.triaxial3.BetOmgAlp5Tuple\tpygeodesy.triaxials.triaxial3.BetOmgAlp5Tuple-class.html\npygeodesy.named._NamedTuple.toRepr\tpygeodesy.named._NamedTuple-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._NamedTuple.toUnits\tpygeodesy.named._NamedTuple-class.html#toUnits\npygeodesy.named._NamedTuple._validate\tpygeodesy.named._NamedTuple-class.html#_validate\npygeodesy.named._NamedTuple.__str__\tpygeodesy.named._NamedTuple-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._NamedTuple._DOT_\tpygeodesy.named._NamedTuple-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._NamedTuple.reUnit\tpygeodesy.named._NamedTuple-class.html#reUnit\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.triaxials.triaxial3.BetOmgAlp5Tuple._Names_\tpygeodesy.triaxials.triaxial3.BetOmgAlp5Tuple-class.html#_Names_\npygeodesy.named._NamedTuple.__setattr__\tpygeodesy.named._NamedTuple-class.html#__setattr__\npygeodesy.named._NamedTuple.__new__\tpygeodesy.named._NamedTuple-class.html#__new__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._NamedTuple._validated\tpygeodesy.named._NamedTuple-class.html#_validated\npygeodesy.named._NamedTuple.__getattr__\tpygeodesy.named._NamedTuple-class.html#__getattr__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._NamedTuple._xtend\tpygeodesy.named._NamedTuple-class.html#_xtend\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._NamedTuple.dup\tpygeodesy.named._NamedTuple-class.html#dup\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedTuple.toStr\tpygeodesy.named._NamedTuple-class.html#toStr\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedTuple.units\tpygeodesy.named._NamedTuple-class.html#units\npygeodesy.named._NamedTuple.iterunits\tpygeodesy.named._NamedTuple-class.html#iterunits\npygeodesy.named._NamedTuple.iteritems\tpygeodesy.named._NamedTuple-class.html#iteritems\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._NamedTuple.items\tpygeodesy.named._NamedTuple-class.html#items\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedTuple.__delattr__\tpygeodesy.named._NamedTuple-class.html#__delattr__\npygeodesy.named._NamedTuple.__repr__\tpygeodesy.named._NamedTuple-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._NamedTuple.__hash__\tpygeodesy.named._NamedTuple-class.html#__hash__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.triaxials.triaxial3.BetOmgAlp5Tuple._Units_\tpygeodesy.triaxials.triaxial3.BetOmgAlp5Tuple-class.html#_Units_\npygeodesy.triaxials.triaxial3.Cartesian5Tuple\tpygeodesy.triaxials.triaxial3.Cartesian5Tuple-class.html\npygeodesy.namedTuples.Vector4Tuple.toCartesian\tpygeodesy.namedTuples.Vector4Tuple-class.html#toCartesian\npygeodesy.named._NamedTuple.toRepr\tpygeodesy.named._NamedTuple-class.html#toRepr\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._NamedTuple.toUnits\tpygeodesy.named._NamedTuple-class.html#toUnits\npygeodesy.named._NamedTuple._validate\tpygeodesy.named._NamedTuple-class.html#_validate\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.namedTuples.Vector4Tuple.xyz\tpygeodesy.namedTuples.Vector4Tuple-class.html#xyz\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._NamedTuple._DOT_\tpygeodesy.named._NamedTuple-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._NamedTuple.reUnit\tpygeodesy.named._NamedTuple-class.html#reUnit\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.triaxials.triaxial3.Cartesian5Tuple._Names_\tpygeodesy.triaxials.triaxial3.Cartesian5Tuple-class.html#_Names_\npygeodesy.named._NamedTuple.__setattr__\tpygeodesy.named._NamedTuple-class.html#__setattr__\npygeodesy.triaxials.triaxial3.Cartesian5Tuple.__new__\tpygeodesy.triaxials.triaxial3.Cartesian5Tuple-class.html#__new__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._NamedTuple._validated\tpygeodesy.named._NamedTuple-class.html#_validated\npygeodesy.named._NamedTuple.__getattr__\tpygeodesy.named._NamedTuple-class.html#__getattr__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.namedTuples.Vector4Tuple.to3Tuple\tpygeodesy.namedTuples.Vector4Tuple-class.html#to3Tuple\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._NamedTuple._xtend\tpygeodesy.named._NamedTuple-class.html#_xtend\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._NamedTuple.dup\tpygeodesy.named._NamedTuple-class.html#dup\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._NamedTuple.__str__\tpygeodesy.named._NamedTuple-class.html#__str__\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedTuple.toStr\tpygeodesy.named._NamedTuple-class.html#toStr\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedTuple.units\tpygeodesy.named._NamedTuple-class.html#units\npygeodesy.named._NamedTuple.iterunits\tpygeodesy.named._NamedTuple-class.html#iterunits\npygeodesy.named._NamedTuple.iteritems\tpygeodesy.named._NamedTuple-class.html#iteritems\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._NamedTuple.items\tpygeodesy.named._NamedTuple-class.html#items\npygeodesy.namedTuples.Vector4Tuple.xyz3\tpygeodesy.namedTuples.Vector4Tuple-class.html#xyz3\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedTuple.__delattr__\tpygeodesy.named._NamedTuple-class.html#__delattr__\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._NamedTuple.__repr__\tpygeodesy.named._NamedTuple-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._NamedTuple.__hash__\tpygeodesy.named._NamedTuple-class.html#__hash__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.triaxials.triaxial3.Cartesian5Tuple._Units_\tpygeodesy.triaxials.triaxial3.Cartesian5Tuple-class.html#_Units_\npygeodesy.triaxials.triaxial3.PhiLamZet5Tuple\tpygeodesy.triaxials.triaxial3.PhiLamZet5Tuple-class.html\npygeodesy.named._NamedTuple.toRepr\tpygeodesy.named._NamedTuple-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._NamedTuple.toUnits\tpygeodesy.named._NamedTuple-class.html#toUnits\npygeodesy.named._NamedTuple._validate\tpygeodesy.named._NamedTuple-class.html#_validate\npygeodesy.named._NamedTuple.__str__\tpygeodesy.named._NamedTuple-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._NamedTuple._DOT_\tpygeodesy.named._NamedTuple-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._NamedTuple.reUnit\tpygeodesy.named._NamedTuple-class.html#reUnit\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.triaxials.triaxial3.PhiLamZet5Tuple._Names_\tpygeodesy.triaxials.triaxial3.PhiLamZet5Tuple-class.html#_Names_\npygeodesy.named._NamedTuple.__setattr__\tpygeodesy.named._NamedTuple-class.html#__setattr__\npygeodesy.named._NamedTuple.__new__\tpygeodesy.named._NamedTuple-class.html#__new__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._NamedTuple._validated\tpygeodesy.named._NamedTuple-class.html#_validated\npygeodesy.named._NamedTuple.__getattr__\tpygeodesy.named._NamedTuple-class.html#__getattr__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._NamedTuple._xtend\tpygeodesy.named._NamedTuple-class.html#_xtend\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._NamedTuple.dup\tpygeodesy.named._NamedTuple-class.html#dup\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedTuple.toStr\tpygeodesy.named._NamedTuple-class.html#toStr\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedTuple.units\tpygeodesy.named._NamedTuple-class.html#units\npygeodesy.named._NamedTuple.iterunits\tpygeodesy.named._NamedTuple-class.html#iterunits\npygeodesy.named._NamedTuple.iteritems\tpygeodesy.named._NamedTuple-class.html#iteritems\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._NamedTuple.items\tpygeodesy.named._NamedTuple-class.html#items\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedTuple.__delattr__\tpygeodesy.named._NamedTuple-class.html#__delattr__\npygeodesy.named._NamedTuple.__repr__\tpygeodesy.named._NamedTuple-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._NamedTuple.__hash__\tpygeodesy.named._NamedTuple-class.html#__hash__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.triaxials.triaxial3.PhiLamZet5Tuple._Units_\tpygeodesy.triaxials.triaxial3.PhiLamZet5Tuple-class.html#_Units_\npygeodesy.triaxials.triaxial3.Triaxial3\tpygeodesy.triaxials.triaxial3.Triaxial3-class.html\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedBase.__str__\tpygeodesy.named._NamedBase-class.html#__str__\npygeodesy.triaxials.bases._OrderedTriaxialBase._a2b2_a2c2\tpygeodesy.triaxials.bases._OrderedTriaxialBase-class.html#_a2b2_a2c2\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._a2b2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_a2b2\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.triaxials.bases._Triaxial3Base._Lon0\tpygeodesy.triaxials.bases._Triaxial3Base-class.html#_Lon0\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.normal4\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#normal4\npygeodesy.triaxials.bases._Triaxial3Base.kp2\tpygeodesy.triaxials.bases._Triaxial3Base-class.html#kp2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._norm2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_norm2\npygeodesy.triaxials.triaxial3.Triaxial3._reverseBetOmgAlp3\tpygeodesy.triaxials.triaxial3.Triaxial3-class.html#_reverseBetOmgAlp3\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.triaxials.bases._OrderedTriaxialBase._radialTo3\tpygeodesy.triaxials.bases._OrderedTriaxialBase-class.html#_radialTo3\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.e2bc\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#e2bc\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.isFlat\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#isFlat\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.toBiaxial\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#toBiaxial\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.R3\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#R3\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.toStr\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#toStr\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._a2b2c23\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_a2b2c23\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.b\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#b\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.hartzell4\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#hartzell4\npygeodesy.triaxials.triaxial3.Triaxial3._meridian2\tpygeodesy.triaxials.triaxial3.Triaxial3-class.html#_meridian2\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._NamedEnumItem.name\tpygeodesy.named._NamedEnumItem-class.html#name\npygeodesy.named._NamedEnumItem.unregister\tpygeodesy.named._NamedEnumItem-class.html#unregister\npygeodesy.triaxials.triaxial3.Triaxial3.forwardCartesian\tpygeodesy.triaxials.triaxial3.Triaxial3-class.html#forwardCartesian\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.areaRG\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#areaRG\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._sideOn\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_sideOn\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.unOrdered\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#unOrdered\npygeodesy.named._NamedBase.toRepr\tpygeodesy.named._NamedBase-class.html#toRepr\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._order_ijk\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_order_ijk\npygeodesy.triaxials.bases._Triaxial3Base.isBiaxial\tpygeodesy.triaxials.bases._Triaxial3Base-class.html#isBiaxial\npygeodesy.triaxials.bases._OrderedTriaxialBase._k2_kp2E\tpygeodesy.triaxials.bases._OrderedTriaxialBase-class.html#_k2_kp2E\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.area_p\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#area_p\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.b2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#b2\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.triaxials.bases._Triaxial3Base.isOblate\tpygeodesy.triaxials.bases._Triaxial3Base-class.html#isOblate\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._kji\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_kji\npygeodesy.triaxials.triaxial3.Triaxial3.forwardBetaOmega_\tpygeodesy.triaxials.triaxial3.Triaxial3-class.html#forwardBetaOmega_\npygeodesy.triaxials.bases._Triaxial3Base._init_abc3_e2_k2_kp2\tpygeodesy.triaxials.bases._Triaxial3Base-class.html#_init_abc3_e2_k2_kp2\npygeodesy.triaxials.triaxial3.Triaxial3.reverseLatLon\tpygeodesy.triaxials.triaxial3.Triaxial3-class.html#reverseLatLon\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.triaxials.triaxial3.Triaxial3.forwardBetaOmega\tpygeodesy.triaxials.triaxial3.Triaxial3-class.html#forwardBetaOmega\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.e2ab\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#e2ab\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.e2ac\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#e2ac\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.sideOf\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#sideOf\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.Rauthalic\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#Rauthalic\npygeodesy.named._NamedBase.others\tpygeodesy.named._NamedBase-class.html#others\npygeodesy.triaxials.bases._Triaxial3Base.Lon0\tpygeodesy.triaxials.bases._Triaxial3Base-class.html#Lon0\npygeodesy.triaxials.triaxial3.Triaxial3.reverseBetaOmega\tpygeodesy.triaxials.triaxial3.Triaxial3-class.html#reverseBetaOmega\npygeodesy.triaxials.bases._Triaxial3Base.e2\tpygeodesy.triaxials.bases._Triaxial3Base-class.html#e2\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.c\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#c\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.triaxials.bases._Triaxial3Base.isProlate\tpygeodesy.triaxials.bases._Triaxial3Base-class.html#isProlate\npygeodesy.triaxials.triaxial3.Triaxial3._ZTOL\tpygeodesy.triaxials.triaxial3.Triaxial3-class.html#_ZTOL\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.__repr__\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#__repr__\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.triaxials.triaxial3.Triaxial3.forwardBetOmg\tpygeodesy.triaxials.triaxial3.Triaxial3-class.html#forwardBetOmg\npygeodesy.triaxials.triaxial3.Triaxial3._meridian\tpygeodesy.triaxials.triaxial3.Triaxial3-class.html#_meridian\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.triaxials.bases._OrderedTriaxialBase._unordered\tpygeodesy.triaxials.bases._OrderedTriaxialBase-class.html#_unordered\npygeodesy.triaxials.triaxial3.Triaxial3._toHeight2\tpygeodesy.triaxials.triaxial3.Triaxial3-class.html#_toHeight2\npygeodesy.triaxials.bases._OrderedTriaxialBase.area21k\tpygeodesy.triaxials.bases._OrderedTriaxialBase-class.html#area21k\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._ijk\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_ijk\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._order3d\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_order3d\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.triaxials.bases._OrderedTriaxialBase.area\tpygeodesy.triaxials.bases._OrderedTriaxialBase-class.html#area\npygeodesy.triaxials.bases._Triaxial3Base._yE\tpygeodesy.triaxials.bases._Triaxial3Base-class.html#_yE\npygeodesy.triaxials.triaxial3.Triaxial3.reverseBetOmg\tpygeodesy.triaxials.triaxial3.Triaxial3-class.html#reverseBetOmg\npygeodesy.triaxials.triaxial3.Triaxial3._ztol\tpygeodesy.triaxials.triaxial3.Triaxial3-class.html#_ztol\npygeodesy.named._NamedEnumItem._enum\tpygeodesy.named._NamedEnumItem-class.html#_enum\npygeodesy.triaxials.triaxial3.Triaxial3.reverseCartesian\tpygeodesy.triaxials.triaxial3.Triaxial3-class.html#reverseCartesian\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.triaxials.triaxial3.Triaxial3._cardinal2\tpygeodesy.triaxials.triaxial3.Triaxial3-class.html#_cardinal2\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.triaxials.triaxial3.Triaxial3.reverseBetOmgAlp\tpygeodesy.triaxials.triaxial3.Triaxial3-class.html#reverseBetOmgAlp\npygeodesy.triaxials.bases._Triaxial3Base._xyE\tpygeodesy.triaxials.bases._Triaxial3Base-class.html#_xyE\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.volume\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#volume\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._b2_a2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_b2_a2\npygeodesy.triaxials.triaxial3.Triaxial3.random2\tpygeodesy.triaxials.triaxial3.Triaxial3-class.html#random2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.c2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#c2\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.triaxials.triaxial3.Triaxial3.toTriaxial5\tpygeodesy.triaxials.triaxial3.Triaxial3-class.html#toTriaxial5\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._a2_b2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_a2_b2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._c2_b2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_c2_b2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.height4\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#height4\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.Rvolumetric\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#Rvolumetric\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.perimeter4ab\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#perimeter4ab\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.perimeter4ac\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#perimeter4ac\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._ordered4\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_ordered4\npygeodesy.triaxials.bases._Triaxial3Base._lcc23\tpygeodesy.triaxials.bases._Triaxial3Base-class.html#_lcc23\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._order3\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_order3\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.normal3d\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#normal3d\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.isOrdered\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#isOrdered\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.triaxials.triaxial3.Triaxial3.toOther\tpygeodesy.triaxials.triaxial3.Triaxial3-class.html#toOther\npygeodesy.triaxials.triaxial3.Triaxial3.reversePhiLamZet\tpygeodesy.triaxials.triaxial3.Triaxial3-class.html#reversePhiLamZet\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.isSpherical\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#isSpherical\npygeodesy.triaxials.bases._OrderedTriaxialBase.__init__\tpygeodesy.triaxials.bases._OrderedTriaxialBase-class.html#__init__\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.perimeter4bc\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#perimeter4bc\npygeodesy.triaxials.triaxial3.Triaxial3.forwardPhiLam\tpygeodesy.triaxials.triaxial3.Triaxial3-class.html#forwardPhiLam\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._a2c2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_a2c2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.R2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#R2\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.triaxials.triaxial3.Triaxial3.reversePhiLam\tpygeodesy.triaxials.triaxial3.Triaxial3-class.html#reversePhiLam\npygeodesy.triaxials.bases._Triaxial3Base._e2_k2_kp2\tpygeodesy.triaxials.bases._Triaxial3Base-class.html#_e2_k2_kp2\npygeodesy.triaxials.bases._Triaxial3Base.k2\tpygeodesy.triaxials.bases._Triaxial3Base-class.html#k2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.ellipse5\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#ellipse5\npygeodesy.triaxials.triaxial3.Triaxial3.forwardBetOmgAlp2\tpygeodesy.triaxials.triaxial3.Triaxial3-class.html#forwardBetOmgAlp2\npygeodesy.triaxials.triaxial3.Triaxial3.normed2\tpygeodesy.triaxials.triaxial3.Triaxial3-class.html#normed2\npygeodesy.triaxials.triaxial3.Triaxial3.forwardPhiLamZet2\tpygeodesy.triaxials.triaxial3.Triaxial3-class.html#forwardPhiLamZet2\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.triaxials.triaxial3.Triaxial3.forwardLatLon\tpygeodesy.triaxials.triaxial3.Triaxial3-class.html#forwardLatLon\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.a2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#a2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.abc3\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#abc3\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._b2c2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_b2c2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.a\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#a\npygeodesy.triaxials.bases._Triaxial3Base._k_kp\tpygeodesy.triaxials.bases._Triaxial3Base-class.html#_k_kp\npygeodesy.named._NamedEnumItem._register\tpygeodesy.named._NamedEnumItem-class.html#_register\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._c2_a2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_c2_a2\npygeodesy.triaxials.bases._Triaxial3Base._xE\tpygeodesy.triaxials.bases._Triaxial3Base-class.html#_xE\npygeodesy.triaxials.bases._OrderedTriaxialBase._areax\tpygeodesy.triaxials.bases._OrderedTriaxialBase-class.html#_areax\npygeodesy.triaxials.bases._Triaxial3Base._k2_kp2\tpygeodesy.triaxials.bases._Triaxial3Base-class.html#_k2_kp2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.areaKT\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#areaKT\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.toEllipsoid\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#toEllipsoid\npygeodesy.triaxials.triaxial3.Triaxial3B\tpygeodesy.triaxials.triaxial3.Triaxial3B-class.html\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedBase.__str__\tpygeodesy.named._NamedBase-class.html#__str__\npygeodesy.triaxials.bases._OrderedTriaxialBase._a2b2_a2c2\tpygeodesy.triaxials.bases._OrderedTriaxialBase-class.html#_a2b2_a2c2\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._a2b2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_a2b2\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.triaxials.bases._Triaxial3Base._Lon0\tpygeodesy.triaxials.bases._Triaxial3Base-class.html#_Lon0\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.normal4\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#normal4\npygeodesy.triaxials.bases._Triaxial3Base.kp2\tpygeodesy.triaxials.bases._Triaxial3Base-class.html#kp2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._norm2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_norm2\npygeodesy.triaxials.triaxial3.Triaxial3._reverseBetOmgAlp3\tpygeodesy.triaxials.triaxial3.Triaxial3-class.html#_reverseBetOmgAlp3\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.triaxials.bases._OrderedTriaxialBase._radialTo3\tpygeodesy.triaxials.bases._OrderedTriaxialBase-class.html#_radialTo3\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.e2bc\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#e2bc\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.isFlat\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#isFlat\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.toBiaxial\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#toBiaxial\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.R3\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#R3\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.toStr\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#toStr\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._a2b2c23\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_a2b2c23\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.b\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#b\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.hartzell4\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#hartzell4\npygeodesy.triaxials.triaxial3.Triaxial3._meridian2\tpygeodesy.triaxials.triaxial3.Triaxial3-class.html#_meridian2\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._NamedEnumItem.name\tpygeodesy.named._NamedEnumItem-class.html#name\npygeodesy.named._NamedEnumItem.unregister\tpygeodesy.named._NamedEnumItem-class.html#unregister\npygeodesy.triaxials.triaxial3.Triaxial3.forwardCartesian\tpygeodesy.triaxials.triaxial3.Triaxial3-class.html#forwardCartesian\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.areaRG\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#areaRG\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._sideOn\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_sideOn\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.unOrdered\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#unOrdered\npygeodesy.named._NamedBase.toRepr\tpygeodesy.named._NamedBase-class.html#toRepr\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._order_ijk\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_order_ijk\npygeodesy.triaxials.bases._Triaxial3Base.isBiaxial\tpygeodesy.triaxials.bases._Triaxial3Base-class.html#isBiaxial\npygeodesy.triaxials.bases._OrderedTriaxialBase._k2_kp2E\tpygeodesy.triaxials.bases._OrderedTriaxialBase-class.html#_k2_kp2E\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.area_p\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#area_p\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.b2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#b2\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.triaxials.bases._Triaxial3Base.isOblate\tpygeodesy.triaxials.bases._Triaxial3Base-class.html#isOblate\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._kji\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_kji\npygeodesy.triaxials.triaxial3.Triaxial3.forwardBetaOmega_\tpygeodesy.triaxials.triaxial3.Triaxial3-class.html#forwardBetaOmega_\npygeodesy.triaxials.bases._Triaxial3Base._init_abc3_e2_k2_kp2\tpygeodesy.triaxials.bases._Triaxial3Base-class.html#_init_abc3_e2_k2_kp2\npygeodesy.triaxials.triaxial3.Triaxial3.reverseLatLon\tpygeodesy.triaxials.triaxial3.Triaxial3-class.html#reverseLatLon\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.triaxials.triaxial3.Triaxial3.forwardBetaOmega\tpygeodesy.triaxials.triaxial3.Triaxial3-class.html#forwardBetaOmega\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.e2ab\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#e2ab\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.e2ac\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#e2ac\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.sideOf\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#sideOf\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.Rauthalic\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#Rauthalic\npygeodesy.named._NamedBase.others\tpygeodesy.named._NamedBase-class.html#others\npygeodesy.triaxials.bases._Triaxial3Base.Lon0\tpygeodesy.triaxials.bases._Triaxial3Base-class.html#Lon0\npygeodesy.triaxials.triaxial3.Triaxial3.reverseBetaOmega\tpygeodesy.triaxials.triaxial3.Triaxial3-class.html#reverseBetaOmega\npygeodesy.triaxials.bases._Triaxial3Base.e2\tpygeodesy.triaxials.bases._Triaxial3Base-class.html#e2\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.c\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#c\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.triaxials.bases._Triaxial3Base.isProlate\tpygeodesy.triaxials.bases._Triaxial3Base-class.html#isProlate\npygeodesy.triaxials.triaxial3.Triaxial3._ZTOL\tpygeodesy.triaxials.triaxial3.Triaxial3-class.html#_ZTOL\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.__repr__\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#__repr__\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.triaxials.triaxial3.Triaxial3.forwardBetOmg\tpygeodesy.triaxials.triaxial3.Triaxial3-class.html#forwardBetOmg\npygeodesy.triaxials.triaxial3.Triaxial3._meridian\tpygeodesy.triaxials.triaxial3.Triaxial3-class.html#_meridian\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.triaxials.bases._OrderedTriaxialBase._unordered\tpygeodesy.triaxials.bases._OrderedTriaxialBase-class.html#_unordered\npygeodesy.triaxials.triaxial3.Triaxial3._toHeight2\tpygeodesy.triaxials.triaxial3.Triaxial3-class.html#_toHeight2\npygeodesy.triaxials.bases._OrderedTriaxialBase.area21k\tpygeodesy.triaxials.bases._OrderedTriaxialBase-class.html#area21k\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._ijk\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_ijk\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._order3d\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_order3d\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.triaxials.bases._OrderedTriaxialBase.area\tpygeodesy.triaxials.bases._OrderedTriaxialBase-class.html#area\npygeodesy.triaxials.bases._Triaxial3Base._yE\tpygeodesy.triaxials.bases._Triaxial3Base-class.html#_yE\npygeodesy.triaxials.triaxial3.Triaxial3.reverseBetOmg\tpygeodesy.triaxials.triaxial3.Triaxial3-class.html#reverseBetOmg\npygeodesy.triaxials.triaxial3.Triaxial3._ztol\tpygeodesy.triaxials.triaxial3.Triaxial3-class.html#_ztol\npygeodesy.named._NamedEnumItem._enum\tpygeodesy.named._NamedEnumItem-class.html#_enum\npygeodesy.triaxials.triaxial3.Triaxial3.reverseCartesian\tpygeodesy.triaxials.triaxial3.Triaxial3-class.html#reverseCartesian\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.triaxials.triaxial3.Triaxial3._cardinal2\tpygeodesy.triaxials.triaxial3.Triaxial3-class.html#_cardinal2\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.triaxials.triaxial3.Triaxial3.reverseBetOmgAlp\tpygeodesy.triaxials.triaxial3.Triaxial3-class.html#reverseBetOmgAlp\npygeodesy.triaxials.bases._Triaxial3Base._xyE\tpygeodesy.triaxials.bases._Triaxial3Base-class.html#_xyE\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.volume\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#volume\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._b2_a2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_b2_a2\npygeodesy.triaxials.triaxial3.Triaxial3.random2\tpygeodesy.triaxials.triaxial3.Triaxial3-class.html#random2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.c2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#c2\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.triaxials.triaxial3.Triaxial3.toTriaxial5\tpygeodesy.triaxials.triaxial3.Triaxial3-class.html#toTriaxial5\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._a2_b2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_a2_b2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._c2_b2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_c2_b2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.height4\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#height4\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.Rvolumetric\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#Rvolumetric\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.perimeter4ab\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#perimeter4ab\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.perimeter4ac\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#perimeter4ac\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._ordered4\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_ordered4\npygeodesy.triaxials.bases._Triaxial3Base._lcc23\tpygeodesy.triaxials.bases._Triaxial3Base-class.html#_lcc23\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._order3\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_order3\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.normal3d\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#normal3d\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.isOrdered\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#isOrdered\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.triaxials.triaxial3.Triaxial3.toOther\tpygeodesy.triaxials.triaxial3.Triaxial3-class.html#toOther\npygeodesy.triaxials.triaxial3.Triaxial3.reversePhiLamZet\tpygeodesy.triaxials.triaxial3.Triaxial3-class.html#reversePhiLamZet\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.isSpherical\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#isSpherical\npygeodesy.triaxials.triaxial3.Triaxial3B.__init__\tpygeodesy.triaxials.triaxial3.Triaxial3B-class.html#__init__\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.perimeter4bc\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#perimeter4bc\npygeodesy.triaxials.triaxial3.Triaxial3.forwardPhiLam\tpygeodesy.triaxials.triaxial3.Triaxial3-class.html#forwardPhiLam\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._a2c2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_a2c2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.R2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#R2\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.triaxials.triaxial3.Triaxial3.reversePhiLam\tpygeodesy.triaxials.triaxial3.Triaxial3-class.html#reversePhiLam\npygeodesy.triaxials.bases._Triaxial3Base._e2_k2_kp2\tpygeodesy.triaxials.bases._Triaxial3Base-class.html#_e2_k2_kp2\npygeodesy.triaxials.bases._Triaxial3Base.k2\tpygeodesy.triaxials.bases._Triaxial3Base-class.html#k2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.ellipse5\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#ellipse5\npygeodesy.triaxials.triaxial3.Triaxial3.forwardBetOmgAlp2\tpygeodesy.triaxials.triaxial3.Triaxial3-class.html#forwardBetOmgAlp2\npygeodesy.triaxials.triaxial3.Triaxial3.normed2\tpygeodesy.triaxials.triaxial3.Triaxial3-class.html#normed2\npygeodesy.triaxials.triaxial3.Triaxial3.forwardPhiLamZet2\tpygeodesy.triaxials.triaxial3.Triaxial3-class.html#forwardPhiLamZet2\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.triaxials.triaxial3.Triaxial3.forwardLatLon\tpygeodesy.triaxials.triaxial3.Triaxial3-class.html#forwardLatLon\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.a2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#a2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.abc3\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#abc3\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._b2c2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_b2c2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.a\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#a\npygeodesy.triaxials.bases._Triaxial3Base._k_kp\tpygeodesy.triaxials.bases._Triaxial3Base-class.html#_k_kp\npygeodesy.named._NamedEnumItem._register\tpygeodesy.named._NamedEnumItem-class.html#_register\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._c2_a2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_c2_a2\npygeodesy.triaxials.bases._Triaxial3Base._xE\tpygeodesy.triaxials.bases._Triaxial3Base-class.html#_xE\npygeodesy.triaxials.bases._OrderedTriaxialBase._areax\tpygeodesy.triaxials.bases._OrderedTriaxialBase-class.html#_areax\npygeodesy.triaxials.bases._Triaxial3Base._k2_kp2\tpygeodesy.triaxials.bases._Triaxial3Base-class.html#_k2_kp2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.areaKT\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#areaKT\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.toEllipsoid\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#toEllipsoid\npygeodesy.triaxials.triaxial5.BetaOmega2Tuple\tpygeodesy.triaxials.triaxial5.BetaOmega2Tuple-class.html\npygeodesy.named._NamedTuple.toRepr\tpygeodesy.named._NamedTuple-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._NamedTuple.toUnits\tpygeodesy.named._NamedTuple-class.html#toUnits\npygeodesy.named._NamedTuple._validate\tpygeodesy.named._NamedTuple-class.html#_validate\npygeodesy.named._NamedTuple.__str__\tpygeodesy.named._NamedTuple-class.html#__str__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._NamedTuple._DOT_\tpygeodesy.named._NamedTuple-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.triaxials.triaxial5.BetaOmega2Tuple.toRadians\tpygeodesy.triaxials.triaxial5.BetaOmega2Tuple-class.html#toRadians\npygeodesy.named._NamedTuple.reUnit\tpygeodesy.named._NamedTuple-class.html#reUnit\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.triaxials.triaxial5.BetaOmega2Tuple.toDegrees\tpygeodesy.triaxials.triaxial5.BetaOmega2Tuple-class.html#toDegrees\npygeodesy.named._NamedTuple.__setattr__\tpygeodesy.named._NamedTuple-class.html#__setattr__\npygeodesy.named._NamedTuple.__new__\tpygeodesy.named._NamedTuple-class.html#__new__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._NamedTuple._validated\tpygeodesy.named._NamedTuple-class.html#_validated\npygeodesy.named._NamedTuple.__getattr__\tpygeodesy.named._NamedTuple-class.html#__getattr__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._NamedTuple._xtend\tpygeodesy.named._NamedTuple-class.html#_xtend\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._NamedTuple.units\tpygeodesy.named._NamedTuple-class.html#units\npygeodesy.triaxials.triaxial5.BetaOmega2Tuple._Names_\tpygeodesy.triaxials.triaxial5.BetaOmega2Tuple-class.html#_Names_\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedTuple.toStr\tpygeodesy.named._NamedTuple-class.html#toStr\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedTuple.dup\tpygeodesy.named._NamedTuple-class.html#dup\npygeodesy.named._NamedTuple.iterunits\tpygeodesy.named._NamedTuple-class.html#iterunits\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._NamedTuple.iteritems\tpygeodesy.named._NamedTuple-class.html#iteritems\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._NamedTuple.items\tpygeodesy.named._NamedTuple-class.html#items\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedTuple.__delattr__\tpygeodesy.named._NamedTuple-class.html#__delattr__\npygeodesy.named._NamedTuple.__repr__\tpygeodesy.named._NamedTuple-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._NamedTuple.__hash__\tpygeodesy.named._NamedTuple-class.html#__hash__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.triaxials.triaxial5.BetaOmega2Tuple._Units_\tpygeodesy.triaxials.triaxial5.BetaOmega2Tuple-class.html#_Units_\npygeodesy.triaxials.triaxial5.BetaOmega3Tuple\tpygeodesy.triaxials.triaxial5.BetaOmega3Tuple-class.html\npygeodesy.named._NamedTuple.toRepr\tpygeodesy.named._NamedTuple-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._NamedTuple.toUnits\tpygeodesy.named._NamedTuple-class.html#toUnits\npygeodesy.named._NamedTuple._validate\tpygeodesy.named._NamedTuple-class.html#_validate\npygeodesy.named._NamedTuple.__str__\tpygeodesy.named._NamedTuple-class.html#__str__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._NamedTuple._DOT_\tpygeodesy.named._NamedTuple-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.triaxials.triaxial5.BetaOmega3Tuple.toRadians\tpygeodesy.triaxials.triaxial5.BetaOmega3Tuple-class.html#toRadians\npygeodesy.named._NamedTuple.reUnit\tpygeodesy.named._NamedTuple-class.html#reUnit\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.triaxials.triaxial5.BetaOmega3Tuple.toDegrees\tpygeodesy.triaxials.triaxial5.BetaOmega3Tuple-class.html#toDegrees\npygeodesy.named._NamedTuple.__setattr__\tpygeodesy.named._NamedTuple-class.html#__setattr__\npygeodesy.named._NamedTuple.__new__\tpygeodesy.named._NamedTuple-class.html#__new__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._NamedTuple._validated\tpygeodesy.named._NamedTuple-class.html#_validated\npygeodesy.named._NamedTuple.__getattr__\tpygeodesy.named._NamedTuple-class.html#__getattr__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._NamedTuple._xtend\tpygeodesy.named._NamedTuple-class.html#_xtend\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._NamedTuple.units\tpygeodesy.named._NamedTuple-class.html#units\npygeodesy.triaxials.triaxial5.BetaOmega3Tuple._Names_\tpygeodesy.triaxials.triaxial5.BetaOmega3Tuple-class.html#_Names_\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedTuple.toStr\tpygeodesy.named._NamedTuple-class.html#toStr\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedTuple.dup\tpygeodesy.named._NamedTuple-class.html#dup\npygeodesy.named._NamedTuple.iterunits\tpygeodesy.named._NamedTuple-class.html#iterunits\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._NamedTuple.iteritems\tpygeodesy.named._NamedTuple-class.html#iteritems\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.triaxials.triaxial5.BetaOmega3Tuple.to2Tuple\tpygeodesy.triaxials.triaxial5.BetaOmega3Tuple-class.html#to2Tuple\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._NamedTuple.items\tpygeodesy.named._NamedTuple-class.html#items\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedTuple.__delattr__\tpygeodesy.named._NamedTuple-class.html#__delattr__\npygeodesy.named._NamedTuple.__repr__\tpygeodesy.named._NamedTuple-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._NamedTuple.__hash__\tpygeodesy.named._NamedTuple-class.html#__hash__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.triaxials.triaxial5.BetaOmega3Tuple._Units_\tpygeodesy.triaxials.triaxial5.BetaOmega3Tuple-class.html#_Units_\npygeodesy.triaxials.triaxial5.Conformal\tpygeodesy.triaxials.triaxial5.Conformal-class.html\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.triaxials.triaxial5.Triaxial._forwardLatLon3\tpygeodesy.triaxials.triaxial5.Triaxial-class.html#_forwardLatLon3\npygeodesy.named._NamedBase.__str__\tpygeodesy.named._NamedBase-class.html#__str__\npygeodesy.triaxials.bases._OrderedTriaxialBase._a2b2_a2c2\tpygeodesy.triaxials.bases._OrderedTriaxialBase-class.html#_a2b2_a2c2\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._norm2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_norm2\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.triaxials.triaxial5.Conformal._y\tpygeodesy.triaxials.triaxial5.Conformal-class.html#_y\npygeodesy.triaxials.triaxial5.Conformal._x\tpygeodesy.triaxials.triaxial5.Conformal-class.html#_x\npygeodesy.triaxials.triaxial5.Conformal.xyQR2\tpygeodesy.triaxials.triaxial5.Conformal-class.html#xyQR2\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.triaxials.bases._OrderedTriaxialBase._radialTo3\tpygeodesy.triaxials.bases._OrderedTriaxialBase-class.html#_radialTo3\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.e2bc\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#e2bc\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.isFlat\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#isFlat\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.triaxials.triaxial5.Conformal._a2_b\tpygeodesy.triaxials.triaxial5.Conformal-class.html#_a2_b\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.R2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#R2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.R3\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#R3\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.toStr\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#toStr\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._a2b2c23\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_a2b2c23\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.b\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#b\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.hartzell4\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#hartzell4\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._NamedEnumItem.name\tpygeodesy.named._NamedEnumItem-class.html#name\npygeodesy.named._NamedEnumItem.unregister\tpygeodesy.named._NamedEnumItem-class.html#unregister\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._a2b2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_a2b2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.areaRG\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#areaRG\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._sideOn\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_sideOn\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.triaxials.triaxial5.Conformal.x\tpygeodesy.triaxials.triaxial5.Conformal-class.html#x\npygeodesy.triaxials.triaxial5.Conformal.yR\tpygeodesy.triaxials.triaxial5.Conformal-class.html#yR\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.unOrdered\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#unOrdered\npygeodesy.named._NamedBase.toRepr\tpygeodesy.named._NamedBase-class.html#toRepr\npygeodesy.triaxials.triaxial5.Triaxial.forwardLatLon_\tpygeodesy.triaxials.triaxial5.Triaxial-class.html#forwardLatLon_\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._order_ijk\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_order_ijk\npygeodesy.triaxials.bases._OrderedTriaxialBase._k2_kp2E\tpygeodesy.triaxials.bases._OrderedTriaxialBase-class.html#_k2_kp2E\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.area_p\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#area_p\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.b2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#b2\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.triaxials.triaxial5.Conformal.xyR2_\tpygeodesy.triaxials.triaxial5.Conformal-class.html#xyR2_\npygeodesy.triaxials.triaxial5.Conformal.xR_\tpygeodesy.triaxials.triaxial5.Conformal-class.html#xR_\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._ordered4\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_ordered4\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._kji\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_kji\npygeodesy.triaxials.triaxial5.Triaxial.forwardBetaOmega_\tpygeodesy.triaxials.triaxial5.Triaxial-class.html#forwardBetaOmega_\npygeodesy.triaxials.triaxial5.Triaxial.reverseLatLon\tpygeodesy.triaxials.triaxial5.Triaxial-class.html#reverseLatLon\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.triaxials.triaxial5.Triaxial.forwardBetaOmega\tpygeodesy.triaxials.triaxial5.Triaxial-class.html#forwardBetaOmega\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.e2ab\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#e2ab\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.e2ac\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#e2ac\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.sideOf\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#sideOf\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.Rauthalic\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#Rauthalic\npygeodesy.named._NamedBase.others\tpygeodesy.named._NamedBase-class.html#others\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.triaxials.triaxial5.Triaxial.reverseBetaOmega\tpygeodesy.triaxials.triaxial5.Triaxial-class.html#reverseBetaOmega\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.triaxials.triaxial5.Triaxial.forwardLatLon\tpygeodesy.triaxials.triaxial5.Triaxial-class.html#forwardLatLon\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.c\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#c\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.isProlate\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#isProlate\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.triaxials.triaxial5.Conformal._c2_b\tpygeodesy.triaxials.triaxial5.Conformal-class.html#_c2_b\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.__repr__\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#__repr__\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.triaxials.bases._OrderedTriaxialBase._unordered\tpygeodesy.triaxials.bases._OrderedTriaxialBase-class.html#_unordered\npygeodesy.triaxials.bases._OrderedTriaxialBase.area21k\tpygeodesy.triaxials.bases._OrderedTriaxialBase-class.html#area21k\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._ijk\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_ijk\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.triaxials.triaxial5.Conformal.xy\tpygeodesy.triaxials.triaxial5.Conformal-class.html#xy\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._order3d\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_order3d\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.triaxials.bases._OrderedTriaxialBase.area\tpygeodesy.triaxials.bases._OrderedTriaxialBase-class.html#area\npygeodesy.triaxials.triaxial5.Triaxial._Height\tpygeodesy.triaxials.triaxial5.Triaxial-class.html#_Height\npygeodesy.triaxials.triaxial5.Conformal._yE\tpygeodesy.triaxials.triaxial5.Conformal-class.html#_yE\npygeodesy.named._NamedEnumItem._enum\tpygeodesy.named._NamedEnumItem-class.html#_enum\npygeodesy.triaxials.triaxial5.Triaxial.reverseCartesian\tpygeodesy.triaxials.triaxial5.Triaxial-class.html#reverseCartesian\npygeodesy.triaxials.triaxial5.Conformal.xR\tpygeodesy.triaxials.triaxial5.Conformal-class.html#xR\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.volume\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#volume\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._b2_a2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_b2_a2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.c2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#c2\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._a2_b2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_a2_b2\npygeodesy.triaxials.triaxial5.Triaxial.forwardCartesian\tpygeodesy.triaxials.triaxial5.Triaxial-class.html#forwardCartesian\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.height4\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#height4\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.Rvolumetric\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#Rvolumetric\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.perimeter4ab\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#perimeter4ab\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.perimeter4ac\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#perimeter4ac\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.isOblate\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#isOblate\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._order3\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_order3\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.normal3d\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#normal3d\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.isOrdered\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#isOrdered\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.triaxials.triaxial5.Conformal.xyR2\tpygeodesy.triaxials.triaxial5.Conformal-class.html#xyR2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.isSpherical\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#isSpherical\npygeodesy.triaxials.triaxial5.Conformal.__init__\tpygeodesy.triaxials.triaxial5.Conformal-class.html#__init__\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.perimeter4bc\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#perimeter4bc\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._a2c2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_a2c2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.toBiaxial\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#toBiaxial\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.normal4\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#normal4\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._c2_b2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_c2_b2\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.triaxials.triaxial5.Conformal.xyQ2\tpygeodesy.triaxials.triaxial5.Conformal-class.html#xyQ2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.a2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#a2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.abc3\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#abc3\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._b2c2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_b2c2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.a\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#a\npygeodesy.named._NamedEnumItem._register\tpygeodesy.named._NamedEnumItem-class.html#_register\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._c2_a2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_c2_a2\npygeodesy.triaxials.triaxial5.Conformal._xE\tpygeodesy.triaxials.triaxial5.Conformal-class.html#_xE\npygeodesy.triaxials.bases._OrderedTriaxialBase._areax\tpygeodesy.triaxials.bases._OrderedTriaxialBase-class.html#_areax\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.ellipse5\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#ellipse5\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.areaKT\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#areaKT\npygeodesy.triaxials.triaxial5.Conformal.yR_\tpygeodesy.triaxials.triaxial5.Conformal-class.html#yR_\npygeodesy.triaxials.triaxial5.Conformal.y\tpygeodesy.triaxials.triaxial5.Conformal-class.html#y\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.toEllipsoid\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#toEllipsoid\npygeodesy.triaxials.triaxial5.Conformal2Tuple\tpygeodesy.triaxials.triaxial5.Conformal2Tuple-class.html\npygeodesy.named._NamedTuple.toRepr\tpygeodesy.named._NamedTuple-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._NamedTuple.toUnits\tpygeodesy.named._NamedTuple-class.html#toUnits\npygeodesy.named._NamedTuple._validate\tpygeodesy.named._NamedTuple-class.html#_validate\npygeodesy.named._NamedTuple.__str__\tpygeodesy.named._NamedTuple-class.html#__str__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._NamedTuple._DOT_\tpygeodesy.named._NamedTuple-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.triaxials.triaxial5.Conformal2Tuple.toRadians\tpygeodesy.triaxials.triaxial5.Conformal2Tuple-class.html#toRadians\npygeodesy.named._NamedTuple.reUnit\tpygeodesy.named._NamedTuple-class.html#reUnit\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.triaxials.triaxial5.Conformal2Tuple.toDegrees\tpygeodesy.triaxials.triaxial5.Conformal2Tuple-class.html#toDegrees\npygeodesy.named._NamedTuple.__setattr__\tpygeodesy.named._NamedTuple-class.html#__setattr__\npygeodesy.named._NamedTuple.__new__\tpygeodesy.named._NamedTuple-class.html#__new__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._NamedTuple._validated\tpygeodesy.named._NamedTuple-class.html#_validated\npygeodesy.named._NamedTuple.__getattr__\tpygeodesy.named._NamedTuple-class.html#__getattr__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._NamedTuple._xtend\tpygeodesy.named._NamedTuple-class.html#_xtend\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._NamedTuple.units\tpygeodesy.named._NamedTuple-class.html#units\npygeodesy.triaxials.triaxial5.Conformal2Tuple._Names_\tpygeodesy.triaxials.triaxial5.Conformal2Tuple-class.html#_Names_\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedTuple.toStr\tpygeodesy.named._NamedTuple-class.html#toStr\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedTuple.dup\tpygeodesy.named._NamedTuple-class.html#dup\npygeodesy.named._NamedTuple.iterunits\tpygeodesy.named._NamedTuple-class.html#iterunits\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._NamedTuple.iteritems\tpygeodesy.named._NamedTuple-class.html#iteritems\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.triaxials.triaxial5.Conformal2Tuple.to5Tuple\tpygeodesy.triaxials.triaxial5.Conformal2Tuple-class.html#to5Tuple\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._NamedTuple.items\tpygeodesy.named._NamedTuple-class.html#items\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedTuple.__delattr__\tpygeodesy.named._NamedTuple-class.html#__delattr__\npygeodesy.named._NamedTuple.__repr__\tpygeodesy.named._NamedTuple-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._NamedTuple.__hash__\tpygeodesy.named._NamedTuple-class.html#__hash__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.triaxials.triaxial5.Conformal2Tuple._Units_\tpygeodesy.triaxials.triaxial5.Conformal2Tuple-class.html#_Units_\npygeodesy.triaxials.triaxial5.ConformalSphere\tpygeodesy.triaxials.triaxial5.ConformalSphere-class.html\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.triaxials.triaxial5.Triaxial._forwardLatLon3\tpygeodesy.triaxials.triaxial5.Triaxial-class.html#_forwardLatLon3\npygeodesy.named._NamedBase.__str__\tpygeodesy.named._NamedBase-class.html#__str__\npygeodesy.triaxials.bases._OrderedTriaxialBase._a2b2_a2c2\tpygeodesy.triaxials.bases._OrderedTriaxialBase-class.html#_a2b2_a2c2\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.triaxials.triaxial5.ConformalSphere._bc\tpygeodesy.triaxials.triaxial5.ConformalSphere-class.html#_bc\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._norm2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_norm2\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.triaxials.triaxial5.Conformal._y\tpygeodesy.triaxials.triaxial5.Conformal-class.html#_y\npygeodesy.triaxials.triaxial5.Conformal._x\tpygeodesy.triaxials.triaxial5.Conformal-class.html#_x\npygeodesy.triaxials.triaxial5.Conformal.xyQR2\tpygeodesy.triaxials.triaxial5.Conformal-class.html#xyQR2\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.triaxials.bases._OrderedTriaxialBase._radialTo3\tpygeodesy.triaxials.bases._OrderedTriaxialBase-class.html#_radialTo3\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.e2bc\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#e2bc\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.isFlat\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#isFlat\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.triaxials.triaxial5.Conformal._a2_b\tpygeodesy.triaxials.triaxial5.Conformal-class.html#_a2_b\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.R2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#R2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.R3\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#R3\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.toStr\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#toStr\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._a2b2c23\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_a2b2c23\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.b\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#b\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.hartzell4\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#hartzell4\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._NamedEnumItem.name\tpygeodesy.named._NamedEnumItem-class.html#name\npygeodesy.named._NamedEnumItem.unregister\tpygeodesy.named._NamedEnumItem-class.html#unregister\npygeodesy.triaxials.triaxial5.ConformalSphere._a2b2\tpygeodesy.triaxials.triaxial5.ConformalSphere-class.html#_a2b2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.areaRG\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#areaRG\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._sideOn\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_sideOn\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.triaxials.triaxial5.Conformal.x\tpygeodesy.triaxials.triaxial5.Conformal-class.html#x\npygeodesy.triaxials.triaxial5.Conformal.yR\tpygeodesy.triaxials.triaxial5.Conformal-class.html#yR\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.unOrdered\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#unOrdered\npygeodesy.named._NamedBase.toRepr\tpygeodesy.named._NamedBase-class.html#toRepr\npygeodesy.triaxials.triaxial5.Triaxial.forwardLatLon_\tpygeodesy.triaxials.triaxial5.Triaxial-class.html#forwardLatLon_\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._order_ijk\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_order_ijk\npygeodesy.triaxials.bases._OrderedTriaxialBase._k2_kp2E\tpygeodesy.triaxials.bases._OrderedTriaxialBase-class.html#_k2_kp2E\npygeodesy.triaxials.triaxial5.ConformalSphere.radius\tpygeodesy.triaxials.triaxial5.ConformalSphere-class.html#radius\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.b2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#b2\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.triaxials.triaxial5.Conformal.xyR2_\tpygeodesy.triaxials.triaxial5.Conformal-class.html#xyR2_\npygeodesy.triaxials.triaxial5.Conformal.xR_\tpygeodesy.triaxials.triaxial5.Conformal-class.html#xR_\npygeodesy.triaxials.triaxial5.Triaxial.forwardCartesian\tpygeodesy.triaxials.triaxial5.Triaxial-class.html#forwardCartesian\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._kji\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_kji\npygeodesy.triaxials.triaxial5.Triaxial.forwardBetaOmega_\tpygeodesy.triaxials.triaxial5.Triaxial-class.html#forwardBetaOmega_\npygeodesy.triaxials.triaxial5.Triaxial.reverseLatLon\tpygeodesy.triaxials.triaxial5.Triaxial-class.html#reverseLatLon\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.triaxials.triaxial5.Triaxial.forwardBetaOmega\tpygeodesy.triaxials.triaxial5.Triaxial-class.html#forwardBetaOmega\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.e2ab\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#e2ab\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.e2ac\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#e2ac\npygeodesy.triaxials.triaxial5.ConformalSphere.bc\tpygeodesy.triaxials.triaxial5.ConformalSphere-class.html#bc\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.sideOf\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#sideOf\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.Rauthalic\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#Rauthalic\npygeodesy.named._NamedBase.others\tpygeodesy.named._NamedBase-class.html#others\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.triaxials.triaxial5.Triaxial.reverseBetaOmega\tpygeodesy.triaxials.triaxial5.Triaxial-class.html#reverseBetaOmega\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.triaxials.triaxial5.Triaxial.forwardLatLon\tpygeodesy.triaxials.triaxial5.Triaxial-class.html#forwardLatLon\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.c\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#c\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.isProlate\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#isProlate\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.triaxials.triaxial5.Conformal._c2_b\tpygeodesy.triaxials.triaxial5.Conformal-class.html#_c2_b\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.__repr__\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#__repr__\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.triaxials.bases._OrderedTriaxialBase._unordered\tpygeodesy.triaxials.bases._OrderedTriaxialBase-class.html#_unordered\npygeodesy.triaxials.bases._OrderedTriaxialBase.area21k\tpygeodesy.triaxials.bases._OrderedTriaxialBase-class.html#area21k\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._ijk\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_ijk\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.triaxials.triaxial5.Conformal.xy\tpygeodesy.triaxials.triaxial5.Conformal-class.html#xy\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._order3d\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_order3d\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.triaxials.bases._OrderedTriaxialBase.area\tpygeodesy.triaxials.bases._OrderedTriaxialBase-class.html#area\npygeodesy.triaxials.triaxial5.Triaxial._Height\tpygeodesy.triaxials.triaxial5.Triaxial-class.html#_Height\npygeodesy.triaxials.triaxial5.Conformal._yE\tpygeodesy.triaxials.triaxial5.Conformal-class.html#_yE\npygeodesy.named._NamedEnumItem._enum\tpygeodesy.named._NamedEnumItem-class.html#_enum\npygeodesy.triaxials.triaxial5.Triaxial.reverseCartesian\tpygeodesy.triaxials.triaxial5.Triaxial-class.html#reverseCartesian\npygeodesy.triaxials.triaxial5.Conformal.xR\tpygeodesy.triaxials.triaxial5.Conformal-class.html#xR\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.volume\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#volume\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._b2_a2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_b2_a2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.c2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#c2\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._a2_b2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_a2_b2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._c2_b2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_c2_b2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.height4\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#height4\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.Rvolumetric\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#Rvolumetric\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.perimeter4ab\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#perimeter4ab\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.perimeter4ac\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#perimeter4ac\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._ordered4\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_ordered4\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.area_p\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#area_p\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._order3\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_order3\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.normal3d\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#normal3d\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.isOrdered\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#isOrdered\npygeodesy.triaxials.triaxial5.ConformalSphere.ab\tpygeodesy.triaxials.triaxial5.ConformalSphere-class.html#ab\npygeodesy.triaxials.triaxial5.Conformal.xyR2\tpygeodesy.triaxials.triaxial5.Conformal-class.html#xyR2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.isSpherical\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#isSpherical\npygeodesy.triaxials.triaxial5.ConformalSphere.__init__\tpygeodesy.triaxials.triaxial5.ConformalSphere-class.html#__init__\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.perimeter4bc\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#perimeter4bc\npygeodesy.triaxials.triaxial5.ConformalSphere._a2c2\tpygeodesy.triaxials.triaxial5.ConformalSphere-class.html#_a2c2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.toBiaxial\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#toBiaxial\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.normal4\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#normal4\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.isOblate\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#isOblate\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.triaxials.triaxial5.Conformal.xyQ2\tpygeodesy.triaxials.triaxial5.Conformal-class.html#xyQ2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.a2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#a2\npygeodesy.triaxials.triaxial5.ConformalSphere._ab\tpygeodesy.triaxials.triaxial5.ConformalSphere-class.html#_ab\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.abc3\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#abc3\npygeodesy.triaxials.triaxial5.ConformalSphere._b2c2\tpygeodesy.triaxials.triaxial5.ConformalSphere-class.html#_b2c2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.a\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#a\npygeodesy.named._NamedEnumItem._register\tpygeodesy.named._NamedEnumItem-class.html#_register\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._c2_a2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_c2_a2\npygeodesy.triaxials.triaxial5.Conformal._xE\tpygeodesy.triaxials.triaxial5.Conformal-class.html#_xE\npygeodesy.triaxials.bases._OrderedTriaxialBase._areax\tpygeodesy.triaxials.bases._OrderedTriaxialBase-class.html#_areax\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.ellipse5\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#ellipse5\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.areaKT\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#areaKT\npygeodesy.triaxials.triaxial5.Conformal.yR_\tpygeodesy.triaxials.triaxial5.Conformal-class.html#yR_\npygeodesy.triaxials.triaxial5.Conformal.y\tpygeodesy.triaxials.triaxial5.Conformal-class.html#y\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.toEllipsoid\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#toEllipsoid\npygeodesy.triaxials.triaxial5.Triaxial\tpygeodesy.triaxials.triaxial5.Triaxial-class.html\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.triaxials.triaxial5.Triaxial._forwardLatLon3\tpygeodesy.triaxials.triaxial5.Triaxial-class.html#_forwardLatLon3\npygeodesy.named._NamedBase.__str__\tpygeodesy.named._NamedBase-class.html#__str__\npygeodesy.triaxials.bases._OrderedTriaxialBase._a2b2_a2c2\tpygeodesy.triaxials.bases._OrderedTriaxialBase-class.html#_a2b2_a2c2\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._norm2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_norm2\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.triaxials.bases._OrderedTriaxialBase._radialTo3\tpygeodesy.triaxials.bases._OrderedTriaxialBase-class.html#_radialTo3\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.e2bc\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#e2bc\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.isFlat\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#isFlat\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.R2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#R2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.R3\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#R3\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.toStr\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#toStr\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._a2b2c23\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_a2b2c23\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.b\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#b\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.hartzell4\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#hartzell4\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._NamedEnumItem.name\tpygeodesy.named._NamedEnumItem-class.html#name\npygeodesy.named._NamedEnumItem.unregister\tpygeodesy.named._NamedEnumItem-class.html#unregister\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._a2b2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_a2b2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.areaRG\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#areaRG\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._sideOn\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_sideOn\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.unOrdered\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#unOrdered\npygeodesy.named._NamedBase.toRepr\tpygeodesy.named._NamedBase-class.html#toRepr\npygeodesy.triaxials.triaxial5.Triaxial.forwardLatLon_\tpygeodesy.triaxials.triaxial5.Triaxial-class.html#forwardLatLon_\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._order_ijk\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_order_ijk\npygeodesy.triaxials.bases._OrderedTriaxialBase._k2_kp2E\tpygeodesy.triaxials.bases._OrderedTriaxialBase-class.html#_k2_kp2E\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.area_p\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#area_p\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.b2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#b2\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._ordered4\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_ordered4\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._kji\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_kji\npygeodesy.triaxials.triaxial5.Triaxial.forwardBetaOmega_\tpygeodesy.triaxials.triaxial5.Triaxial-class.html#forwardBetaOmega_\npygeodesy.triaxials.triaxial5.Triaxial.reverseLatLon\tpygeodesy.triaxials.triaxial5.Triaxial-class.html#reverseLatLon\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.triaxials.triaxial5.Triaxial.forwardBetaOmega\tpygeodesy.triaxials.triaxial5.Triaxial-class.html#forwardBetaOmega\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.e2ab\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#e2ab\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.e2ac\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#e2ac\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.sideOf\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#sideOf\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.Rauthalic\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#Rauthalic\npygeodesy.named._NamedBase.others\tpygeodesy.named._NamedBase-class.html#others\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.triaxials.triaxial5.Triaxial.reverseBetaOmega\tpygeodesy.triaxials.triaxial5.Triaxial-class.html#reverseBetaOmega\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.c\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#c\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.isProlate\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#isProlate\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.__repr__\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#__repr__\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.triaxials.bases._OrderedTriaxialBase._unordered\tpygeodesy.triaxials.bases._OrderedTriaxialBase-class.html#_unordered\npygeodesy.triaxials.bases._OrderedTriaxialBase.area21k\tpygeodesy.triaxials.bases._OrderedTriaxialBase-class.html#area21k\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._ijk\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_ijk\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._order3d\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_order3d\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.triaxials.bases._OrderedTriaxialBase.area\tpygeodesy.triaxials.bases._OrderedTriaxialBase-class.html#area\npygeodesy.triaxials.triaxial5.Triaxial._Height\tpygeodesy.triaxials.triaxial5.Triaxial-class.html#_Height\npygeodesy.named._NamedEnumItem._enum\tpygeodesy.named._NamedEnumItem-class.html#_enum\npygeodesy.triaxials.triaxial5.Triaxial.reverseCartesian\tpygeodesy.triaxials.triaxial5.Triaxial-class.html#reverseCartesian\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.volume\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#volume\npygeodesy.named._NamedEnumItem._register\tpygeodesy.named._NamedEnumItem-class.html#_register\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.c2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#c2\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._a2_b2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_a2_b2\npygeodesy.triaxials.triaxial5.Triaxial.forwardCartesian\tpygeodesy.triaxials.triaxial5.Triaxial-class.html#forwardCartesian\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.height4\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#height4\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.Rvolumetric\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#Rvolumetric\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.perimeter4ab\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#perimeter4ab\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.perimeter4ac\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#perimeter4ac\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.isOblate\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#isOblate\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._order3\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_order3\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.normal3d\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#normal3d\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.isOrdered\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#isOrdered\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.isSpherical\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#isSpherical\npygeodesy.triaxials.triaxial5.Triaxial.__init__\tpygeodesy.triaxials.triaxial5.Triaxial-class.html#__init__\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.perimeter4bc\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#perimeter4bc\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._a2c2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_a2c2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.toBiaxial\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#toBiaxial\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.normal4\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#normal4\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._c2_b2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_c2_b2\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.triaxials.triaxial5.Triaxial.forwardLatLon\tpygeodesy.triaxials.triaxial5.Triaxial-class.html#forwardLatLon\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.a2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#a2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.abc3\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#abc3\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._b2c2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_b2c2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.a\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#a\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._b2_a2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_b2_a2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._c2_a2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_c2_a2\npygeodesy.triaxials.bases._OrderedTriaxialBase._areax\tpygeodesy.triaxials.bases._OrderedTriaxialBase-class.html#_areax\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.ellipse5\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#ellipse5\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.areaKT\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#areaKT\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.toEllipsoid\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#toEllipsoid\npygeodesy.triaxials.triaxial5.Triaxial_\tpygeodesy.triaxials.triaxial5.Triaxial_-class.html\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedBase.__str__\tpygeodesy.named._NamedBase-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._norm2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_norm2\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._radialTo3\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_radialTo3\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.e2bc\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#e2bc\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.isFlat\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#isFlat\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.R2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#R2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.R3\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#R3\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.toStr\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#toStr\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._a2b2c23\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_a2b2c23\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._a2_b2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_a2_b2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.b\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#b\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.hartzell4\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#hartzell4\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._NamedEnumItem.name\tpygeodesy.named._NamedEnumItem-class.html#name\npygeodesy.named._NamedEnumItem.unregister\tpygeodesy.named._NamedEnumItem-class.html#unregister\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.areaRG\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#areaRG\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._sideOn\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_sideOn\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.unOrdered\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#unOrdered\npygeodesy.named._NamedBase.toRepr\tpygeodesy.named._NamedBase-class.html#toRepr\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._c2_b2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_c2_b2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.area_p\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#area_p\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.b2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#b2\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._ordered4\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_ordered4\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._kji\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_kji\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._order_ijk\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_order_ijk\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.e2ab\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#e2ab\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.e2ac\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#e2ac\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.sideOf\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#sideOf\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.Rauthalic\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#Rauthalic\npygeodesy.named._NamedBase.others\tpygeodesy.named._NamedBase-class.html#others\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._NamedEnumItem._enum\tpygeodesy.named._NamedEnumItem-class.html#_enum\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.c\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#c\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.isProlate\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#isProlate\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.__repr__\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#__repr__\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._unordered\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_unordered\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._ijk\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_ijk\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._order3d\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_order3d\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.area\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#area\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.volume\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#volume\npygeodesy.named._NamedEnumItem._register\tpygeodesy.named._NamedEnumItem-class.html#_register\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.c2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#c2\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._a2b2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_a2b2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.height4\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#height4\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.Rvolumetric\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#Rvolumetric\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.perimeter4ab\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#perimeter4ab\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.perimeter4ac\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#perimeter4ac\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.isOblate\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#isOblate\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._order3\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_order3\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.normal3d\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#normal3d\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.isOrdered\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#isOrdered\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.isSpherical\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#isSpherical\npygeodesy.triaxials.triaxial5.Triaxial_.__init__\tpygeodesy.triaxials.triaxial5.Triaxial_-class.html#__init__\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.perimeter4bc\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#perimeter4bc\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._a2c2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_a2c2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.toBiaxial\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#toBiaxial\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.normal4\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#normal4\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.a2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#a2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.abc3\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#abc3\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._b2c2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_b2c2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.a\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#a\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._b2_a2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_b2_a2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase._c2_a2\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_c2_a2\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.ellipse5\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#ellipse5\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.areaKT\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#areaKT\npygeodesy.triaxials.bases._UnOrderedTriaxialBase.toEllipsoid\tpygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#toEllipsoid\npygeodesy.units.Azimuth\tpygeodesy.units.Azimuth-class.html\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.unitsBase.Float.__str__\tpygeodesy.unitsBase.Float-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.unitsBase._NamedUnit._units\tpygeodesy.unitsBase._NamedUnit-class.html#_units\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.units.Degrees.toStr\tpygeodesy.units.Degrees-class.html#toStr\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.unitsBase._NamedUnit._arg_name_arg2\tpygeodesy.unitsBase._NamedUnit-class.html#_arg_name_arg2\npygeodesy.units.Degrees.toRepr\tpygeodesy.units.Degrees-class.html#toRepr\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.units.Azimuth._suf_\tpygeodesy.units.Azimuth-class.html#_suf_\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.unitsBase._NamedUnit._toRepr\tpygeodesy.unitsBase._NamedUnit-class.html#_toRepr\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.units.Azimuth._ddd_\tpygeodesy.units.Azimuth-class.html#_ddd_\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.units.Degrees.toRadians\tpygeodesy.units.Degrees-class.html#toRadians\npygeodesy.units.Degrees.toDegrees\tpygeodesy.units.Degrees-class.html#toDegrees\npygeodesy.unitsBase._NamedUnit._std_repr\tpygeodesy.unitsBase._NamedUnit-class.html#_std_repr\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.unitsBase._NamedUnit._Error\tpygeodesy.unitsBase._NamedUnit-class.html#_Error\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.unitsBase._NamedUnit.std_repr\tpygeodesy.unitsBase._NamedUnit-class.html#std_repr\npygeodesy.unitsBase.Float.isneg0\tpygeodesy.unitsBase.Float-class.html#isneg0\npygeodesy.units.Azimuth.__new__\tpygeodesy.units.Azimuth-class.html#__new__\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.unitsBase._NamedUnit.units\tpygeodesy.unitsBase._NamedUnit-class.html#units\npygeodesy.unitsBase.Float.__repr__\tpygeodesy.unitsBase.Float-class.html#__repr__\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.units.Degrees._sep_\tpygeodesy.units.Degrees-class.html#_sep_\npygeodesy.units.Band\tpygeodesy.units.Band-class.html\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.unitsBase.Str.__str__\tpygeodesy.unitsBase.Str-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.unitsBase._NamedUnit._units\tpygeodesy.unitsBase._NamedUnit-class.html#_units\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.unitsBase.Str.__call__\tpygeodesy.unitsBase.Str-class.html#__call__\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.unitsBase.Str.toStr\tpygeodesy.unitsBase.Str-class.html#toStr\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.unitsBase.Str.join_\tpygeodesy.unitsBase.Str-class.html#join_\npygeodesy.unitsBase._NamedUnit._arg_name_arg2\tpygeodesy.unitsBase._NamedUnit-class.html#_arg_name_arg2\npygeodesy.unitsBase.Str.toRepr\tpygeodesy.unitsBase.Str-class.html#toRepr\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.unitsBase._NamedUnit._toRepr\tpygeodesy.unitsBase._NamedUnit-class.html#_toRepr\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.unitsBase._NamedUnit._std_repr\tpygeodesy.unitsBase._NamedUnit-class.html#_std_repr\npygeodesy.unitsBase._NamedUnit._Error\tpygeodesy.unitsBase._NamedUnit-class.html#_Error\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.unitsBase._NamedUnit.std_repr\tpygeodesy.unitsBase._NamedUnit-class.html#std_repr\npygeodesy.units.Band.__new__\tpygeodesy.units.Band-class.html#__new__\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.unitsBase._NamedUnit.units\tpygeodesy.unitsBase._NamedUnit-class.html#units\npygeodesy.unitsBase.Str.__repr__\tpygeodesy.unitsBase.Str-class.html#__repr__\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.units.Bearing\tpygeodesy.units.Bearing-class.html\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.unitsBase.Float.__str__\tpygeodesy.unitsBase.Float-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.unitsBase._NamedUnit._units\tpygeodesy.unitsBase._NamedUnit-class.html#_units\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.units.Degrees.toStr\tpygeodesy.units.Degrees-class.html#toStr\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.unitsBase._NamedUnit._arg_name_arg2\tpygeodesy.unitsBase._NamedUnit-class.html#_arg_name_arg2\npygeodesy.units.Degrees.toRepr\tpygeodesy.units.Degrees-class.html#toRepr\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.units.Bearing._suf_\tpygeodesy.units.Bearing-class.html#_suf_\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.unitsBase._NamedUnit._toRepr\tpygeodesy.unitsBase._NamedUnit-class.html#_toRepr\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.units.Bearing._ddd_\tpygeodesy.units.Bearing-class.html#_ddd_\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.units.Degrees.toRadians\tpygeodesy.units.Degrees-class.html#toRadians\npygeodesy.units.Degrees.toDegrees\tpygeodesy.units.Degrees-class.html#toDegrees\npygeodesy.unitsBase._NamedUnit._std_repr\tpygeodesy.unitsBase._NamedUnit-class.html#_std_repr\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.unitsBase._NamedUnit._Error\tpygeodesy.unitsBase._NamedUnit-class.html#_Error\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.unitsBase._NamedUnit.std_repr\tpygeodesy.unitsBase._NamedUnit-class.html#std_repr\npygeodesy.unitsBase.Float.isneg0\tpygeodesy.unitsBase.Float-class.html#isneg0\npygeodesy.units.Bearing.__new__\tpygeodesy.units.Bearing-class.html#__new__\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.unitsBase._NamedUnit.units\tpygeodesy.unitsBase._NamedUnit-class.html#units\npygeodesy.unitsBase.Float.__repr__\tpygeodesy.unitsBase.Float-class.html#__repr__\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.units.Degrees._sep_\tpygeodesy.units.Degrees-class.html#_sep_\npygeodesy.units.Bearing_\tpygeodesy.units.Bearing_-class.html\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.unitsBase.Float.__str__\tpygeodesy.unitsBase.Float-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.unitsBase._NamedUnit._units\tpygeodesy.unitsBase._NamedUnit-class.html#_units\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.units.Radians.toStr\tpygeodesy.units.Radians-class.html#toStr\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.unitsBase._NamedUnit._arg_name_arg2\tpygeodesy.unitsBase._NamedUnit-class.html#_arg_name_arg2\npygeodesy.units.Radians.toRepr\tpygeodesy.units.Radians-class.html#toRepr\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.units.Radians.toDegrees\tpygeodesy.units.Radians-class.html#toDegrees\npygeodesy.unitsBase._NamedUnit._toRepr\tpygeodesy.unitsBase._NamedUnit-class.html#_toRepr\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.units.Radians.toRadians\tpygeodesy.units.Radians-class.html#toRadians\npygeodesy.unitsBase._NamedUnit._std_repr\tpygeodesy.unitsBase._NamedUnit-class.html#_std_repr\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.unitsBase._NamedUnit._Error\tpygeodesy.unitsBase._NamedUnit-class.html#_Error\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.unitsBase._NamedUnit.std_repr\tpygeodesy.unitsBase._NamedUnit-class.html#std_repr\npygeodesy.unitsBase.Float.isneg0\tpygeodesy.unitsBase.Float-class.html#isneg0\npygeodesy.units.Bearing_.__new__\tpygeodesy.units.Bearing_-class.html#__new__\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.unitsBase._NamedUnit.units\tpygeodesy.unitsBase._NamedUnit-class.html#units\npygeodesy.unitsBase.Float.__repr__\tpygeodesy.unitsBase.Float-class.html#__repr__\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.units.Bool\tpygeodesy.units.Bool-class.html\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.unitsBase.Int.__str__\tpygeodesy.unitsBase.Int-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.unitsBase._NamedUnit._units\tpygeodesy.unitsBase._NamedUnit-class.html#_units\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.units.Bool.toStr\tpygeodesy.units.Bool-class.html#toStr\npygeodesy.units.Bool.__bool__\tpygeodesy.units.Bool-class.html#__bool__\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.units.Bool.__nonzero__\tpygeodesy.units.Bool-class.html#__nonzero__\npygeodesy.units.Bool._bool_True_or_False\tpygeodesy.units.Bool-class.html#_bool_True_or_False\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.unitsBase._NamedUnit._arg_name_arg2\tpygeodesy.unitsBase._NamedUnit-class.html#_arg_name_arg2\npygeodesy.units.Bool.toRepr\tpygeodesy.units.Bool-class.html#toRepr\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.unitsBase._NamedUnit._toRepr\tpygeodesy.unitsBase._NamedUnit-class.html#_toRepr\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.unitsBase.Int.__repr__\tpygeodesy.unitsBase.Int-class.html#__repr__\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.unitsBase._NamedUnit._std_repr\tpygeodesy.unitsBase._NamedUnit-class.html#_std_repr\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.unitsBase._NamedUnit._Error\tpygeodesy.unitsBase._NamedUnit-class.html#_Error\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.unitsBase._NamedUnit.std_repr\tpygeodesy.unitsBase._NamedUnit-class.html#std_repr\npygeodesy.units.Bool.__new__\tpygeodesy.units.Bool-class.html#__new__\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.unitsBase._NamedUnit.units\tpygeodesy.unitsBase._NamedUnit-class.html#units\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.units.Degrees\tpygeodesy.units.Degrees-class.html\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.unitsBase.Float.__str__\tpygeodesy.unitsBase.Float-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.unitsBase._NamedUnit._units\tpygeodesy.unitsBase._NamedUnit-class.html#_units\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.units.Degrees.toStr\tpygeodesy.units.Degrees-class.html#toStr\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.unitsBase._NamedUnit._arg_name_arg2\tpygeodesy.unitsBase._NamedUnit-class.html#_arg_name_arg2\npygeodesy.units.Degrees.toRepr\tpygeodesy.units.Degrees-class.html#toRepr\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.units.Degrees._suf_\tpygeodesy.units.Degrees-class.html#_suf_\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.unitsBase._NamedUnit._toRepr\tpygeodesy.unitsBase._NamedUnit-class.html#_toRepr\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.units.Degrees._ddd_\tpygeodesy.units.Degrees-class.html#_ddd_\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.units.Degrees.toRadians\tpygeodesy.units.Degrees-class.html#toRadians\npygeodesy.units.Degrees.toDegrees\tpygeodesy.units.Degrees-class.html#toDegrees\npygeodesy.unitsBase._NamedUnit._std_repr\tpygeodesy.unitsBase._NamedUnit-class.html#_std_repr\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.unitsBase._NamedUnit._Error\tpygeodesy.unitsBase._NamedUnit-class.html#_Error\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.unitsBase._NamedUnit.std_repr\tpygeodesy.unitsBase._NamedUnit-class.html#std_repr\npygeodesy.unitsBase.Float.isneg0\tpygeodesy.unitsBase.Float-class.html#isneg0\npygeodesy.units.Degrees.__new__\tpygeodesy.units.Degrees-class.html#__new__\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.unitsBase._NamedUnit.units\tpygeodesy.unitsBase._NamedUnit-class.html#units\npygeodesy.unitsBase.Float.__repr__\tpygeodesy.unitsBase.Float-class.html#__repr__\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.units.Degrees._sep_\tpygeodesy.units.Degrees-class.html#_sep_\npygeodesy.units.Degrees2\tpygeodesy.units.Degrees2-class.html\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.unitsBase.Float.__str__\tpygeodesy.unitsBase.Float-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.unitsBase._NamedUnit._units\tpygeodesy.unitsBase._NamedUnit-class.html#_units\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.unitsBase.Float.toStr\tpygeodesy.unitsBase.Float-class.html#toStr\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.unitsBase._NamedUnit._arg_name_arg2\tpygeodesy.unitsBase._NamedUnit-class.html#_arg_name_arg2\npygeodesy.unitsBase.Float.toRepr\tpygeodesy.unitsBase.Float-class.html#toRepr\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.unitsBase._NamedUnit._toRepr\tpygeodesy.unitsBase._NamedUnit-class.html#_toRepr\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.unitsBase._NamedUnit._std_repr\tpygeodesy.unitsBase._NamedUnit-class.html#_std_repr\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.unitsBase._NamedUnit._Error\tpygeodesy.unitsBase._NamedUnit-class.html#_Error\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.unitsBase._NamedUnit.std_repr\tpygeodesy.unitsBase._NamedUnit-class.html#std_repr\npygeodesy.unitsBase.Float.isneg0\tpygeodesy.unitsBase.Float-class.html#isneg0\npygeodesy.units.Degrees2.__new__\tpygeodesy.units.Degrees2-class.html#__new__\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.unitsBase._NamedUnit.units\tpygeodesy.unitsBase._NamedUnit-class.html#units\npygeodesy.unitsBase.Float.__repr__\tpygeodesy.unitsBase.Float-class.html#__repr__\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.units.Degrees_\tpygeodesy.units.Degrees_-class.html\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.unitsBase.Float.__str__\tpygeodesy.unitsBase.Float-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.unitsBase._NamedUnit._units\tpygeodesy.unitsBase._NamedUnit-class.html#_units\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.units.Degrees.toStr\tpygeodesy.units.Degrees-class.html#toStr\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.unitsBase._NamedUnit._arg_name_arg2\tpygeodesy.unitsBase._NamedUnit-class.html#_arg_name_arg2\npygeodesy.units.Degrees.toRepr\tpygeodesy.units.Degrees-class.html#toRepr\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.units.Degrees._suf_\tpygeodesy.units.Degrees-class.html#_suf_\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.unitsBase._NamedUnit._toRepr\tpygeodesy.unitsBase._NamedUnit-class.html#_toRepr\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.units.Degrees._ddd_\tpygeodesy.units.Degrees-class.html#_ddd_\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.units.Degrees.toRadians\tpygeodesy.units.Degrees-class.html#toRadians\npygeodesy.units.Degrees.toDegrees\tpygeodesy.units.Degrees-class.html#toDegrees\npygeodesy.unitsBase._NamedUnit._std_repr\tpygeodesy.unitsBase._NamedUnit-class.html#_std_repr\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.unitsBase._NamedUnit._Error\tpygeodesy.unitsBase._NamedUnit-class.html#_Error\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.unitsBase._NamedUnit.std_repr\tpygeodesy.unitsBase._NamedUnit-class.html#std_repr\npygeodesy.unitsBase.Float.isneg0\tpygeodesy.unitsBase.Float-class.html#isneg0\npygeodesy.units.Degrees_.__new__\tpygeodesy.units.Degrees_-class.html#__new__\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.unitsBase._NamedUnit.units\tpygeodesy.unitsBase._NamedUnit-class.html#units\npygeodesy.unitsBase.Float.__repr__\tpygeodesy.unitsBase.Float-class.html#__repr__\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.units.Degrees._sep_\tpygeodesy.units.Degrees-class.html#_sep_\npygeodesy.units.Distance\tpygeodesy.units.Distance-class.html\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.unitsBase.Float.__str__\tpygeodesy.unitsBase.Float-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.unitsBase._NamedUnit._units\tpygeodesy.unitsBase._NamedUnit-class.html#_units\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.unitsBase.Float.toStr\tpygeodesy.unitsBase.Float-class.html#toStr\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.unitsBase._NamedUnit._arg_name_arg2\tpygeodesy.unitsBase._NamedUnit-class.html#_arg_name_arg2\npygeodesy.unitsBase.Float.toRepr\tpygeodesy.unitsBase.Float-class.html#toRepr\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.unitsBase._NamedUnit._toRepr\tpygeodesy.unitsBase._NamedUnit-class.html#_toRepr\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.unitsBase._NamedUnit._std_repr\tpygeodesy.unitsBase._NamedUnit-class.html#_std_repr\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.unitsBase._NamedUnit._Error\tpygeodesy.unitsBase._NamedUnit-class.html#_Error\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.unitsBase._NamedUnit.std_repr\tpygeodesy.unitsBase._NamedUnit-class.html#std_repr\npygeodesy.unitsBase.Float.isneg0\tpygeodesy.unitsBase.Float-class.html#isneg0\npygeodesy.units.Distance.__new__\tpygeodesy.units.Distance-class.html#__new__\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.unitsBase._NamedUnit.units\tpygeodesy.unitsBase._NamedUnit-class.html#units\npygeodesy.unitsBase.Float.__repr__\tpygeodesy.unitsBase.Float-class.html#__repr__\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.units.Distance_\tpygeodesy.units.Distance_-class.html\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.unitsBase.Float.__str__\tpygeodesy.unitsBase.Float-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.unitsBase._NamedUnit._units\tpygeodesy.unitsBase._NamedUnit-class.html#_units\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.unitsBase.Float.toStr\tpygeodesy.unitsBase.Float-class.html#toStr\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.unitsBase._NamedUnit._arg_name_arg2\tpygeodesy.unitsBase._NamedUnit-class.html#_arg_name_arg2\npygeodesy.unitsBase.Float.toRepr\tpygeodesy.unitsBase.Float-class.html#toRepr\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.unitsBase._NamedUnit._toRepr\tpygeodesy.unitsBase._NamedUnit-class.html#_toRepr\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.unitsBase._NamedUnit._std_repr\tpygeodesy.unitsBase._NamedUnit-class.html#_std_repr\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.unitsBase._NamedUnit._Error\tpygeodesy.unitsBase._NamedUnit-class.html#_Error\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.unitsBase._NamedUnit.std_repr\tpygeodesy.unitsBase._NamedUnit-class.html#std_repr\npygeodesy.unitsBase.Float.isneg0\tpygeodesy.unitsBase.Float-class.html#isneg0\npygeodesy.units.Distance_.__new__\tpygeodesy.units.Distance_-class.html#__new__\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.unitsBase._NamedUnit.units\tpygeodesy.unitsBase._NamedUnit-class.html#units\npygeodesy.unitsBase.Float.__repr__\tpygeodesy.unitsBase.Float-class.html#__repr__\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.units.Easting\tpygeodesy.units.Easting-class.html\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.unitsBase.Float.__str__\tpygeodesy.unitsBase.Float-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.unitsBase._NamedUnit._units\tpygeodesy.unitsBase._NamedUnit-class.html#_units\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.unitsBase.Float.toStr\tpygeodesy.unitsBase.Float-class.html#toStr\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.unitsBase._NamedUnit._arg_name_arg2\tpygeodesy.unitsBase._NamedUnit-class.html#_arg_name_arg2\npygeodesy.unitsBase.Float.toRepr\tpygeodesy.unitsBase.Float-class.html#toRepr\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.unitsBase._NamedUnit._toRepr\tpygeodesy.unitsBase._NamedUnit-class.html#_toRepr\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.unitsBase._NamedUnit._std_repr\tpygeodesy.unitsBase._NamedUnit-class.html#_std_repr\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.unitsBase._NamedUnit._Error\tpygeodesy.unitsBase._NamedUnit-class.html#_Error\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.unitsBase._NamedUnit.std_repr\tpygeodesy.unitsBase._NamedUnit-class.html#std_repr\npygeodesy.unitsBase.Float.isneg0\tpygeodesy.unitsBase.Float-class.html#isneg0\npygeodesy.units.Easting.__new__\tpygeodesy.units.Easting-class.html#__new__\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.unitsBase._NamedUnit.units\tpygeodesy.unitsBase._NamedUnit-class.html#units\npygeodesy.unitsBase.Float.__repr__\tpygeodesy.unitsBase.Float-class.html#__repr__\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.units.Epoch\tpygeodesy.units.Epoch-class.html\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.units.Epoch.__str__\tpygeodesy.units.Epoch-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.unitsBase._NamedUnit._units\tpygeodesy.unitsBase._NamedUnit-class.html#_units\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.units.Epoch.toStr\tpygeodesy.units.Epoch-class.html#toStr\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.unitsBase._NamedUnit._arg_name_arg2\tpygeodesy.unitsBase._NamedUnit-class.html#_arg_name_arg2\npygeodesy.units.Epoch.toRepr\tpygeodesy.units.Epoch-class.html#toRepr\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.unitsBase._NamedUnit._toRepr\tpygeodesy.unitsBase._NamedUnit-class.html#_toRepr\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.units.Epoch._std_repr\tpygeodesy.units.Epoch-class.html#_std_repr\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.unitsBase._NamedUnit._Error\tpygeodesy.unitsBase._NamedUnit-class.html#_Error\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.unitsBase._NamedUnit.std_repr\tpygeodesy.unitsBase._NamedUnit-class.html#std_repr\npygeodesy.unitsBase.Float.isneg0\tpygeodesy.unitsBase.Float-class.html#isneg0\npygeodesy.units.Epoch.__new__\tpygeodesy.units.Epoch-class.html#__new__\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.unitsBase._NamedUnit.units\tpygeodesy.unitsBase._NamedUnit-class.html#units\npygeodesy.unitsBase.Float.__repr__\tpygeodesy.unitsBase.Float-class.html#__repr__\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.units.FIx\tpygeodesy.units.FIx-class.html\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.unitsBase.Float.__str__\tpygeodesy.unitsBase.Float-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.unitsBase._NamedUnit._units\tpygeodesy.unitsBase._NamedUnit-class.html#_units\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.units.FIx.fin\tpygeodesy.units.FIx-class.html#fin\npygeodesy.unitsBase.Float.toStr\tpygeodesy.unitsBase.Float-class.html#toStr\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.unitsBase._NamedUnit._arg_name_arg2\tpygeodesy.unitsBase._NamedUnit-class.html#_arg_name_arg2\npygeodesy.unitsBase.Float.toRepr\tpygeodesy.unitsBase.Float-class.html#toRepr\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.units.FIx.fractional\tpygeodesy.units.FIx-class.html#fractional\npygeodesy.unitsBase._NamedUnit._toRepr\tpygeodesy.unitsBase._NamedUnit-class.html#_toRepr\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.units.FIx._fin\tpygeodesy.units.FIx-class.html#_fin\npygeodesy.unitsBase._NamedUnit._std_repr\tpygeodesy.unitsBase._NamedUnit-class.html#_std_repr\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.unitsBase._NamedUnit._Error\tpygeodesy.unitsBase._NamedUnit-class.html#_Error\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.unitsBase._NamedUnit.std_repr\tpygeodesy.unitsBase._NamedUnit-class.html#std_repr\npygeodesy.unitsBase.Float.isneg0\tpygeodesy.unitsBase.Float-class.html#isneg0\npygeodesy.units.FIx.__new__\tpygeodesy.units.FIx-class.html#__new__\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.unitsBase._NamedUnit.units\tpygeodesy.unitsBase._NamedUnit-class.html#units\npygeodesy.unitsBase.Float.__repr__\tpygeodesy.unitsBase.Float-class.html#__repr__\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.units.Feet\tpygeodesy.units.Feet-class.html\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.unitsBase.Float.__str__\tpygeodesy.unitsBase.Float-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.unitsBase._NamedUnit._units\tpygeodesy.unitsBase._NamedUnit-class.html#_units\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.unitsBase.Float.toStr\tpygeodesy.unitsBase.Float-class.html#toStr\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.unitsBase._NamedUnit._arg_name_arg2\tpygeodesy.unitsBase._NamedUnit-class.html#_arg_name_arg2\npygeodesy.unitsBase.Float.toRepr\tpygeodesy.unitsBase.Float-class.html#toRepr\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.unitsBase._NamedUnit._toRepr\tpygeodesy.unitsBase._NamedUnit-class.html#_toRepr\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.unitsBase._NamedUnit._std_repr\tpygeodesy.unitsBase._NamedUnit-class.html#_std_repr\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.unitsBase._NamedUnit._Error\tpygeodesy.unitsBase._NamedUnit-class.html#_Error\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.unitsBase._NamedUnit.std_repr\tpygeodesy.unitsBase._NamedUnit-class.html#std_repr\npygeodesy.unitsBase.Float.isneg0\tpygeodesy.unitsBase.Float-class.html#isneg0\npygeodesy.units.Feet.__new__\tpygeodesy.units.Feet-class.html#__new__\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.unitsBase._NamedUnit.units\tpygeodesy.unitsBase._NamedUnit-class.html#units\npygeodesy.unitsBase.Float.__repr__\tpygeodesy.unitsBase.Float-class.html#__repr__\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.units.Float_\tpygeodesy.units.Float_-class.html\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.unitsBase.Float.__str__\tpygeodesy.unitsBase.Float-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.unitsBase._NamedUnit._units\tpygeodesy.unitsBase._NamedUnit-class.html#_units\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.unitsBase.Float.toStr\tpygeodesy.unitsBase.Float-class.html#toStr\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.unitsBase._NamedUnit._arg_name_arg2\tpygeodesy.unitsBase._NamedUnit-class.html#_arg_name_arg2\npygeodesy.unitsBase.Float.toRepr\tpygeodesy.unitsBase.Float-class.html#toRepr\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.unitsBase._NamedUnit._toRepr\tpygeodesy.unitsBase._NamedUnit-class.html#_toRepr\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.unitsBase._NamedUnit._std_repr\tpygeodesy.unitsBase._NamedUnit-class.html#_std_repr\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.unitsBase._NamedUnit._Error\tpygeodesy.unitsBase._NamedUnit-class.html#_Error\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.unitsBase._NamedUnit.std_repr\tpygeodesy.unitsBase._NamedUnit-class.html#std_repr\npygeodesy.unitsBase.Float.isneg0\tpygeodesy.unitsBase.Float-class.html#isneg0\npygeodesy.units.Float_.__new__\tpygeodesy.units.Float_-class.html#__new__\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.unitsBase._NamedUnit.units\tpygeodesy.unitsBase._NamedUnit-class.html#units\npygeodesy.unitsBase.Float.__repr__\tpygeodesy.unitsBase.Float-class.html#__repr__\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.units.Height\tpygeodesy.units.Height-class.html\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.unitsBase.Float.__str__\tpygeodesy.unitsBase.Float-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.unitsBase._NamedUnit._units\tpygeodesy.unitsBase._NamedUnit-class.html#_units\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.unitsBase.Float.toStr\tpygeodesy.unitsBase.Float-class.html#toStr\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.unitsBase._NamedUnit._arg_name_arg2\tpygeodesy.unitsBase._NamedUnit-class.html#_arg_name_arg2\npygeodesy.unitsBase.Float.toRepr\tpygeodesy.unitsBase.Float-class.html#toRepr\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.unitsBase._NamedUnit._toRepr\tpygeodesy.unitsBase._NamedUnit-class.html#_toRepr\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.unitsBase._NamedUnit._std_repr\tpygeodesy.unitsBase._NamedUnit-class.html#_std_repr\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.unitsBase._NamedUnit._Error\tpygeodesy.unitsBase._NamedUnit-class.html#_Error\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.unitsBase._NamedUnit.std_repr\tpygeodesy.unitsBase._NamedUnit-class.html#std_repr\npygeodesy.unitsBase.Float.isneg0\tpygeodesy.unitsBase.Float-class.html#isneg0\npygeodesy.units.Height.__new__\tpygeodesy.units.Height-class.html#__new__\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.unitsBase._NamedUnit.units\tpygeodesy.unitsBase._NamedUnit-class.html#units\npygeodesy.unitsBase.Float.__repr__\tpygeodesy.unitsBase.Float-class.html#__repr__\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.units.HeightX\tpygeodesy.units.HeightX-class.html\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.unitsBase.Float.__str__\tpygeodesy.unitsBase.Float-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.unitsBase._NamedUnit._units\tpygeodesy.unitsBase._NamedUnit-class.html#_units\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.unitsBase.Float.toStr\tpygeodesy.unitsBase.Float-class.html#toStr\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.unitsBase._NamedUnit._arg_name_arg2\tpygeodesy.unitsBase._NamedUnit-class.html#_arg_name_arg2\npygeodesy.unitsBase.Float.toRepr\tpygeodesy.unitsBase.Float-class.html#toRepr\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.unitsBase._NamedUnit._toRepr\tpygeodesy.unitsBase._NamedUnit-class.html#_toRepr\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.unitsBase._NamedUnit._std_repr\tpygeodesy.unitsBase._NamedUnit-class.html#_std_repr\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.unitsBase._NamedUnit._Error\tpygeodesy.unitsBase._NamedUnit-class.html#_Error\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.unitsBase._NamedUnit.std_repr\tpygeodesy.unitsBase._NamedUnit-class.html#std_repr\npygeodesy.unitsBase.Float.isneg0\tpygeodesy.unitsBase.Float-class.html#isneg0\npygeodesy.units.Height.__new__\tpygeodesy.units.Height-class.html#__new__\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.unitsBase._NamedUnit.units\tpygeodesy.unitsBase._NamedUnit-class.html#units\npygeodesy.unitsBase.Float.__repr__\tpygeodesy.unitsBase.Float-class.html#__repr__\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.units.Height_\tpygeodesy.units.Height_-class.html\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.unitsBase.Float.__str__\tpygeodesy.unitsBase.Float-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.unitsBase._NamedUnit._units\tpygeodesy.unitsBase._NamedUnit-class.html#_units\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.unitsBase.Float.toStr\tpygeodesy.unitsBase.Float-class.html#toStr\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.unitsBase._NamedUnit._arg_name_arg2\tpygeodesy.unitsBase._NamedUnit-class.html#_arg_name_arg2\npygeodesy.unitsBase.Float.toRepr\tpygeodesy.unitsBase.Float-class.html#toRepr\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.unitsBase._NamedUnit._toRepr\tpygeodesy.unitsBase._NamedUnit-class.html#_toRepr\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.unitsBase._NamedUnit._std_repr\tpygeodesy.unitsBase._NamedUnit-class.html#_std_repr\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.unitsBase._NamedUnit._Error\tpygeodesy.unitsBase._NamedUnit-class.html#_Error\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.unitsBase._NamedUnit.std_repr\tpygeodesy.unitsBase._NamedUnit-class.html#std_repr\npygeodesy.unitsBase.Float.isneg0\tpygeodesy.unitsBase.Float-class.html#isneg0\npygeodesy.units.Height_.__new__\tpygeodesy.units.Height_-class.html#__new__\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.unitsBase._NamedUnit.units\tpygeodesy.unitsBase._NamedUnit-class.html#units\npygeodesy.unitsBase.Float.__repr__\tpygeodesy.unitsBase.Float-class.html#__repr__\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.units.Int_\tpygeodesy.units.Int_-class.html\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.unitsBase.Int.__str__\tpygeodesy.unitsBase.Int-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.unitsBase._NamedUnit._units\tpygeodesy.unitsBase._NamedUnit-class.html#_units\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.unitsBase.Int.toStr\tpygeodesy.unitsBase.Int-class.html#toStr\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.unitsBase._NamedUnit._arg_name_arg2\tpygeodesy.unitsBase._NamedUnit-class.html#_arg_name_arg2\npygeodesy.unitsBase.Int.toRepr\tpygeodesy.unitsBase.Int-class.html#toRepr\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.unitsBase._NamedUnit._toRepr\tpygeodesy.unitsBase._NamedUnit-class.html#_toRepr\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.unitsBase._NamedUnit._std_repr\tpygeodesy.unitsBase._NamedUnit-class.html#_std_repr\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.unitsBase._NamedUnit._Error\tpygeodesy.unitsBase._NamedUnit-class.html#_Error\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.unitsBase._NamedUnit.std_repr\tpygeodesy.unitsBase._NamedUnit-class.html#std_repr\npygeodesy.units.Int_.__new__\tpygeodesy.units.Int_-class.html#__new__\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.unitsBase._NamedUnit.units\tpygeodesy.unitsBase._NamedUnit-class.html#units\npygeodesy.unitsBase.Int.__repr__\tpygeodesy.unitsBase.Int-class.html#__repr__\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.units.Lam\tpygeodesy.units.Lam-class.html\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.unitsBase.Float.__str__\tpygeodesy.unitsBase.Float-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.unitsBase._NamedUnit._units\tpygeodesy.unitsBase._NamedUnit-class.html#_units\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.units.Radians.toStr\tpygeodesy.units.Radians-class.html#toStr\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.unitsBase._NamedUnit._arg_name_arg2\tpygeodesy.unitsBase._NamedUnit-class.html#_arg_name_arg2\npygeodesy.units.Radians.toRepr\tpygeodesy.units.Radians-class.html#toRepr\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.units.Radians.toDegrees\tpygeodesy.units.Radians-class.html#toDegrees\npygeodesy.unitsBase._NamedUnit._toRepr\tpygeodesy.unitsBase._NamedUnit-class.html#_toRepr\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.units.Radians.toRadians\tpygeodesy.units.Radians-class.html#toRadians\npygeodesy.unitsBase._NamedUnit._std_repr\tpygeodesy.unitsBase._NamedUnit-class.html#_std_repr\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.unitsBase._NamedUnit._Error\tpygeodesy.unitsBase._NamedUnit-class.html#_Error\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.unitsBase._NamedUnit.std_repr\tpygeodesy.unitsBase._NamedUnit-class.html#std_repr\npygeodesy.unitsBase.Float.isneg0\tpygeodesy.unitsBase.Float-class.html#isneg0\npygeodesy.units.Lam.__new__\tpygeodesy.units.Lam-class.html#__new__\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.unitsBase._NamedUnit.units\tpygeodesy.unitsBase._NamedUnit-class.html#units\npygeodesy.unitsBase.Float.__repr__\tpygeodesy.unitsBase.Float-class.html#__repr__\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.units.Lamd\tpygeodesy.units.Lamd-class.html\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.unitsBase.Float.__str__\tpygeodesy.unitsBase.Float-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.unitsBase._NamedUnit._units\tpygeodesy.unitsBase._NamedUnit-class.html#_units\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.units.Radians.toStr\tpygeodesy.units.Radians-class.html#toStr\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.unitsBase._NamedUnit._arg_name_arg2\tpygeodesy.unitsBase._NamedUnit-class.html#_arg_name_arg2\npygeodesy.units.Radians.toRepr\tpygeodesy.units.Radians-class.html#toRepr\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.units.Radians.toDegrees\tpygeodesy.units.Radians-class.html#toDegrees\npygeodesy.unitsBase._NamedUnit._toRepr\tpygeodesy.unitsBase._NamedUnit-class.html#_toRepr\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.units.Radians.toRadians\tpygeodesy.units.Radians-class.html#toRadians\npygeodesy.unitsBase._NamedUnit._std_repr\tpygeodesy.unitsBase._NamedUnit-class.html#_std_repr\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.unitsBase._NamedUnit._Error\tpygeodesy.unitsBase._NamedUnit-class.html#_Error\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.unitsBase._NamedUnit.std_repr\tpygeodesy.unitsBase._NamedUnit-class.html#std_repr\npygeodesy.unitsBase.Float.isneg0\tpygeodesy.unitsBase.Float-class.html#isneg0\npygeodesy.units.Lamd.__new__\tpygeodesy.units.Lamd-class.html#__new__\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.unitsBase._NamedUnit.units\tpygeodesy.unitsBase._NamedUnit-class.html#units\npygeodesy.unitsBase.Float.__repr__\tpygeodesy.unitsBase.Float-class.html#__repr__\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.units.Lat\tpygeodesy.units.Lat-class.html\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.unitsBase.Float.__str__\tpygeodesy.unitsBase.Float-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.unitsBase._NamedUnit._units\tpygeodesy.unitsBase._NamedUnit-class.html#_units\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.units.Degrees.toStr\tpygeodesy.units.Degrees-class.html#toStr\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.unitsBase._NamedUnit._arg_name_arg2\tpygeodesy.unitsBase._NamedUnit-class.html#_arg_name_arg2\npygeodesy.units.Degrees.toRepr\tpygeodesy.units.Degrees-class.html#toRepr\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.units.Lat._suf_\tpygeodesy.units.Lat-class.html#_suf_\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.unitsBase._NamedUnit._toRepr\tpygeodesy.unitsBase._NamedUnit-class.html#_toRepr\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.units.Lat._ddd_\tpygeodesy.units.Lat-class.html#_ddd_\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.units.Degrees.toRadians\tpygeodesy.units.Degrees-class.html#toRadians\npygeodesy.units.Degrees.toDegrees\tpygeodesy.units.Degrees-class.html#toDegrees\npygeodesy.unitsBase._NamedUnit._std_repr\tpygeodesy.unitsBase._NamedUnit-class.html#_std_repr\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.unitsBase._NamedUnit._Error\tpygeodesy.unitsBase._NamedUnit-class.html#_Error\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.unitsBase._NamedUnit.std_repr\tpygeodesy.unitsBase._NamedUnit-class.html#std_repr\npygeodesy.unitsBase.Float.isneg0\tpygeodesy.unitsBase.Float-class.html#isneg0\npygeodesy.units.Lat.__new__\tpygeodesy.units.Lat-class.html#__new__\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.unitsBase._NamedUnit.units\tpygeodesy.unitsBase._NamedUnit-class.html#units\npygeodesy.unitsBase.Float.__repr__\tpygeodesy.unitsBase.Float-class.html#__repr__\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.units.Degrees._sep_\tpygeodesy.units.Degrees-class.html#_sep_\npygeodesy.units.Lat_\tpygeodesy.units.Lat_-class.html\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.unitsBase.Float.__str__\tpygeodesy.unitsBase.Float-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.unitsBase._NamedUnit._units\tpygeodesy.unitsBase._NamedUnit-class.html#_units\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.units.Degrees.toStr\tpygeodesy.units.Degrees-class.html#toStr\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.unitsBase._NamedUnit._arg_name_arg2\tpygeodesy.unitsBase._NamedUnit-class.html#_arg_name_arg2\npygeodesy.units.Degrees.toRepr\tpygeodesy.units.Degrees-class.html#toRepr\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.units.Lat_._suf_\tpygeodesy.units.Lat_-class.html#_suf_\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.unitsBase._NamedUnit._toRepr\tpygeodesy.unitsBase._NamedUnit-class.html#_toRepr\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.units.Lat_._ddd_\tpygeodesy.units.Lat_-class.html#_ddd_\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.units.Degrees.toRadians\tpygeodesy.units.Degrees-class.html#toRadians\npygeodesy.units.Degrees.toDegrees\tpygeodesy.units.Degrees-class.html#toDegrees\npygeodesy.unitsBase._NamedUnit._std_repr\tpygeodesy.unitsBase._NamedUnit-class.html#_std_repr\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.unitsBase._NamedUnit._Error\tpygeodesy.unitsBase._NamedUnit-class.html#_Error\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.unitsBase._NamedUnit.std_repr\tpygeodesy.unitsBase._NamedUnit-class.html#std_repr\npygeodesy.unitsBase.Float.isneg0\tpygeodesy.unitsBase.Float-class.html#isneg0\npygeodesy.units.Lat_.__new__\tpygeodesy.units.Lat_-class.html#__new__\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.unitsBase._NamedUnit.units\tpygeodesy.unitsBase._NamedUnit-class.html#units\npygeodesy.unitsBase.Float.__repr__\tpygeodesy.unitsBase.Float-class.html#__repr__\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.units.Degrees._sep_\tpygeodesy.units.Degrees-class.html#_sep_\npygeodesy.units.Lon\tpygeodesy.units.Lon-class.html\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.unitsBase.Float.__str__\tpygeodesy.unitsBase.Float-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.unitsBase._NamedUnit._units\tpygeodesy.unitsBase._NamedUnit-class.html#_units\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.units.Degrees.toStr\tpygeodesy.units.Degrees-class.html#toStr\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.unitsBase._NamedUnit._arg_name_arg2\tpygeodesy.unitsBase._NamedUnit-class.html#_arg_name_arg2\npygeodesy.units.Degrees.toRepr\tpygeodesy.units.Degrees-class.html#toRepr\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.units.Lon._suf_\tpygeodesy.units.Lon-class.html#_suf_\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.unitsBase._NamedUnit._toRepr\tpygeodesy.unitsBase._NamedUnit-class.html#_toRepr\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.units.Lon._ddd_\tpygeodesy.units.Lon-class.html#_ddd_\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.units.Degrees.toRadians\tpygeodesy.units.Degrees-class.html#toRadians\npygeodesy.units.Degrees.toDegrees\tpygeodesy.units.Degrees-class.html#toDegrees\npygeodesy.unitsBase._NamedUnit._std_repr\tpygeodesy.unitsBase._NamedUnit-class.html#_std_repr\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.unitsBase._NamedUnit._Error\tpygeodesy.unitsBase._NamedUnit-class.html#_Error\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.unitsBase._NamedUnit.std_repr\tpygeodesy.unitsBase._NamedUnit-class.html#std_repr\npygeodesy.unitsBase.Float.isneg0\tpygeodesy.unitsBase.Float-class.html#isneg0\npygeodesy.units.Lon.__new__\tpygeodesy.units.Lon-class.html#__new__\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.unitsBase._NamedUnit.units\tpygeodesy.unitsBase._NamedUnit-class.html#units\npygeodesy.unitsBase.Float.__repr__\tpygeodesy.unitsBase.Float-class.html#__repr__\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.units.Degrees._sep_\tpygeodesy.units.Degrees-class.html#_sep_\npygeodesy.units.Lon_\tpygeodesy.units.Lon_-class.html\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.unitsBase.Float.__str__\tpygeodesy.unitsBase.Float-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.unitsBase._NamedUnit._units\tpygeodesy.unitsBase._NamedUnit-class.html#_units\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.units.Degrees.toStr\tpygeodesy.units.Degrees-class.html#toStr\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.unitsBase._NamedUnit._arg_name_arg2\tpygeodesy.unitsBase._NamedUnit-class.html#_arg_name_arg2\npygeodesy.units.Degrees.toRepr\tpygeodesy.units.Degrees-class.html#toRepr\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.units.Lon_._suf_\tpygeodesy.units.Lon_-class.html#_suf_\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.unitsBase._NamedUnit._toRepr\tpygeodesy.unitsBase._NamedUnit-class.html#_toRepr\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.units.Lon_._ddd_\tpygeodesy.units.Lon_-class.html#_ddd_\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.units.Degrees.toRadians\tpygeodesy.units.Degrees-class.html#toRadians\npygeodesy.units.Degrees.toDegrees\tpygeodesy.units.Degrees-class.html#toDegrees\npygeodesy.unitsBase._NamedUnit._std_repr\tpygeodesy.unitsBase._NamedUnit-class.html#_std_repr\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.unitsBase._NamedUnit._Error\tpygeodesy.unitsBase._NamedUnit-class.html#_Error\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.unitsBase._NamedUnit.std_repr\tpygeodesy.unitsBase._NamedUnit-class.html#std_repr\npygeodesy.unitsBase.Float.isneg0\tpygeodesy.unitsBase.Float-class.html#isneg0\npygeodesy.units.Lon_.__new__\tpygeodesy.units.Lon_-class.html#__new__\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.unitsBase._NamedUnit.units\tpygeodesy.unitsBase._NamedUnit-class.html#units\npygeodesy.unitsBase.Float.__repr__\tpygeodesy.unitsBase.Float-class.html#__repr__\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.units.Degrees._sep_\tpygeodesy.units.Degrees-class.html#_sep_\npygeodesy.units.Meter\tpygeodesy.units.Meter-class.html\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.unitsBase.Float.__str__\tpygeodesy.unitsBase.Float-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.unitsBase._NamedUnit._units\tpygeodesy.unitsBase._NamedUnit-class.html#_units\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.unitsBase.Float.toStr\tpygeodesy.unitsBase.Float-class.html#toStr\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.unitsBase._NamedUnit._arg_name_arg2\tpygeodesy.unitsBase._NamedUnit-class.html#_arg_name_arg2\npygeodesy.unitsBase.Float.toRepr\tpygeodesy.unitsBase.Float-class.html#toRepr\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.unitsBase._NamedUnit._toRepr\tpygeodesy.unitsBase._NamedUnit-class.html#_toRepr\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.unitsBase._NamedUnit._std_repr\tpygeodesy.unitsBase._NamedUnit-class.html#_std_repr\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.unitsBase._NamedUnit._Error\tpygeodesy.unitsBase._NamedUnit-class.html#_Error\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.unitsBase._NamedUnit.std_repr\tpygeodesy.unitsBase._NamedUnit-class.html#std_repr\npygeodesy.unitsBase.Float.isneg0\tpygeodesy.unitsBase.Float-class.html#isneg0\npygeodesy.units.Meter.__new__\tpygeodesy.units.Meter-class.html#__new__\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.unitsBase._NamedUnit.units\tpygeodesy.unitsBase._NamedUnit-class.html#units\npygeodesy.units.Meter.__repr__\tpygeodesy.units.Meter-class.html#__repr__\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.units.Meter2\tpygeodesy.units.Meter2-class.html\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.unitsBase.Float.__str__\tpygeodesy.unitsBase.Float-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.unitsBase._NamedUnit._units\tpygeodesy.unitsBase._NamedUnit-class.html#_units\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.unitsBase.Float.toStr\tpygeodesy.unitsBase.Float-class.html#toStr\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.unitsBase._NamedUnit._arg_name_arg2\tpygeodesy.unitsBase._NamedUnit-class.html#_arg_name_arg2\npygeodesy.unitsBase.Float.toRepr\tpygeodesy.unitsBase.Float-class.html#toRepr\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.unitsBase._NamedUnit._toRepr\tpygeodesy.unitsBase._NamedUnit-class.html#_toRepr\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.unitsBase._NamedUnit._std_repr\tpygeodesy.unitsBase._NamedUnit-class.html#_std_repr\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.unitsBase._NamedUnit._Error\tpygeodesy.unitsBase._NamedUnit-class.html#_Error\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.unitsBase._NamedUnit.std_repr\tpygeodesy.unitsBase._NamedUnit-class.html#std_repr\npygeodesy.unitsBase.Float.isneg0\tpygeodesy.unitsBase.Float-class.html#isneg0\npygeodesy.units.Meter2.__new__\tpygeodesy.units.Meter2-class.html#__new__\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.unitsBase._NamedUnit.units\tpygeodesy.unitsBase._NamedUnit-class.html#units\npygeodesy.unitsBase.Float.__repr__\tpygeodesy.unitsBase.Float-class.html#__repr__\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.units.Meter3\tpygeodesy.units.Meter3-class.html\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.unitsBase.Float.__str__\tpygeodesy.unitsBase.Float-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.unitsBase._NamedUnit._units\tpygeodesy.unitsBase._NamedUnit-class.html#_units\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.unitsBase.Float.toStr\tpygeodesy.unitsBase.Float-class.html#toStr\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.unitsBase._NamedUnit._arg_name_arg2\tpygeodesy.unitsBase._NamedUnit-class.html#_arg_name_arg2\npygeodesy.unitsBase.Float.toRepr\tpygeodesy.unitsBase.Float-class.html#toRepr\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.unitsBase._NamedUnit._toRepr\tpygeodesy.unitsBase._NamedUnit-class.html#_toRepr\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.unitsBase._NamedUnit._std_repr\tpygeodesy.unitsBase._NamedUnit-class.html#_std_repr\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.unitsBase._NamedUnit._Error\tpygeodesy.unitsBase._NamedUnit-class.html#_Error\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.unitsBase._NamedUnit.std_repr\tpygeodesy.unitsBase._NamedUnit-class.html#std_repr\npygeodesy.unitsBase.Float.isneg0\tpygeodesy.unitsBase.Float-class.html#isneg0\npygeodesy.units.Meter3.__new__\tpygeodesy.units.Meter3-class.html#__new__\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.unitsBase._NamedUnit.units\tpygeodesy.unitsBase._NamedUnit-class.html#units\npygeodesy.unitsBase.Float.__repr__\tpygeodesy.unitsBase.Float-class.html#__repr__\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.units.Meter_\tpygeodesy.units.Meter_-class.html\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.unitsBase.Float.__str__\tpygeodesy.unitsBase.Float-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.unitsBase._NamedUnit._units\tpygeodesy.unitsBase._NamedUnit-class.html#_units\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.unitsBase.Float.toStr\tpygeodesy.unitsBase.Float-class.html#toStr\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.unitsBase._NamedUnit._arg_name_arg2\tpygeodesy.unitsBase._NamedUnit-class.html#_arg_name_arg2\npygeodesy.unitsBase.Float.toRepr\tpygeodesy.unitsBase.Float-class.html#toRepr\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.unitsBase._NamedUnit._toRepr\tpygeodesy.unitsBase._NamedUnit-class.html#_toRepr\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.unitsBase._NamedUnit._std_repr\tpygeodesy.unitsBase._NamedUnit-class.html#_std_repr\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.unitsBase._NamedUnit._Error\tpygeodesy.unitsBase._NamedUnit-class.html#_Error\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.unitsBase._NamedUnit.std_repr\tpygeodesy.unitsBase._NamedUnit-class.html#std_repr\npygeodesy.unitsBase.Float.isneg0\tpygeodesy.unitsBase.Float-class.html#isneg0\npygeodesy.units.Meter_.__new__\tpygeodesy.units.Meter_-class.html#__new__\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.unitsBase._NamedUnit.units\tpygeodesy.unitsBase._NamedUnit-class.html#units\npygeodesy.unitsBase.Float.__repr__\tpygeodesy.unitsBase.Float-class.html#__repr__\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.units.Northing\tpygeodesy.units.Northing-class.html\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.unitsBase.Float.__str__\tpygeodesy.unitsBase.Float-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.unitsBase._NamedUnit._units\tpygeodesy.unitsBase._NamedUnit-class.html#_units\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.unitsBase.Float.toStr\tpygeodesy.unitsBase.Float-class.html#toStr\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.unitsBase._NamedUnit._arg_name_arg2\tpygeodesy.unitsBase._NamedUnit-class.html#_arg_name_arg2\npygeodesy.unitsBase.Float.toRepr\tpygeodesy.unitsBase.Float-class.html#toRepr\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.unitsBase._NamedUnit._toRepr\tpygeodesy.unitsBase._NamedUnit-class.html#_toRepr\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.unitsBase._NamedUnit._std_repr\tpygeodesy.unitsBase._NamedUnit-class.html#_std_repr\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.unitsBase._NamedUnit._Error\tpygeodesy.unitsBase._NamedUnit-class.html#_Error\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.unitsBase._NamedUnit.std_repr\tpygeodesy.unitsBase._NamedUnit-class.html#std_repr\npygeodesy.unitsBase.Float.isneg0\tpygeodesy.unitsBase.Float-class.html#isneg0\npygeodesy.units.Northing.__new__\tpygeodesy.units.Northing-class.html#__new__\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.unitsBase._NamedUnit.units\tpygeodesy.unitsBase._NamedUnit-class.html#units\npygeodesy.unitsBase.Float.__repr__\tpygeodesy.unitsBase.Float-class.html#__repr__\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.units.Number_\tpygeodesy.units.Number_-class.html\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.unitsBase.Int.__str__\tpygeodesy.unitsBase.Int-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.unitsBase._NamedUnit._units\tpygeodesy.unitsBase._NamedUnit-class.html#_units\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.unitsBase.Int.toStr\tpygeodesy.unitsBase.Int-class.html#toStr\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.unitsBase._NamedUnit._arg_name_arg2\tpygeodesy.unitsBase._NamedUnit-class.html#_arg_name_arg2\npygeodesy.unitsBase.Int.toRepr\tpygeodesy.unitsBase.Int-class.html#toRepr\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.unitsBase._NamedUnit._toRepr\tpygeodesy.unitsBase._NamedUnit-class.html#_toRepr\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.unitsBase._NamedUnit._std_repr\tpygeodesy.unitsBase._NamedUnit-class.html#_std_repr\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.unitsBase._NamedUnit._Error\tpygeodesy.unitsBase._NamedUnit-class.html#_Error\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.unitsBase._NamedUnit.std_repr\tpygeodesy.unitsBase._NamedUnit-class.html#std_repr\npygeodesy.units.Number_.__new__\tpygeodesy.units.Number_-class.html#__new__\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.unitsBase._NamedUnit.units\tpygeodesy.unitsBase._NamedUnit-class.html#units\npygeodesy.unitsBase.Int.__repr__\tpygeodesy.unitsBase.Int-class.html#__repr__\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.units.Phi\tpygeodesy.units.Phi-class.html\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.unitsBase.Float.__str__\tpygeodesy.unitsBase.Float-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.unitsBase._NamedUnit._units\tpygeodesy.unitsBase._NamedUnit-class.html#_units\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.units.Radians.toStr\tpygeodesy.units.Radians-class.html#toStr\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.unitsBase._NamedUnit._arg_name_arg2\tpygeodesy.unitsBase._NamedUnit-class.html#_arg_name_arg2\npygeodesy.units.Radians.toRepr\tpygeodesy.units.Radians-class.html#toRepr\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.units.Radians.toDegrees\tpygeodesy.units.Radians-class.html#toDegrees\npygeodesy.unitsBase._NamedUnit._toRepr\tpygeodesy.unitsBase._NamedUnit-class.html#_toRepr\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.units.Radians.toRadians\tpygeodesy.units.Radians-class.html#toRadians\npygeodesy.unitsBase._NamedUnit._std_repr\tpygeodesy.unitsBase._NamedUnit-class.html#_std_repr\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.unitsBase._NamedUnit._Error\tpygeodesy.unitsBase._NamedUnit-class.html#_Error\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.unitsBase._NamedUnit.std_repr\tpygeodesy.unitsBase._NamedUnit-class.html#std_repr\npygeodesy.unitsBase.Float.isneg0\tpygeodesy.unitsBase.Float-class.html#isneg0\npygeodesy.units.Phi.__new__\tpygeodesy.units.Phi-class.html#__new__\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.unitsBase._NamedUnit.units\tpygeodesy.unitsBase._NamedUnit-class.html#units\npygeodesy.unitsBase.Float.__repr__\tpygeodesy.unitsBase.Float-class.html#__repr__\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.units.Phid\tpygeodesy.units.Phid-class.html\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.unitsBase.Float.__str__\tpygeodesy.unitsBase.Float-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.unitsBase._NamedUnit._units\tpygeodesy.unitsBase._NamedUnit-class.html#_units\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.units.Radians.toStr\tpygeodesy.units.Radians-class.html#toStr\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.unitsBase._NamedUnit._arg_name_arg2\tpygeodesy.unitsBase._NamedUnit-class.html#_arg_name_arg2\npygeodesy.units.Radians.toRepr\tpygeodesy.units.Radians-class.html#toRepr\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.units.Radians.toDegrees\tpygeodesy.units.Radians-class.html#toDegrees\npygeodesy.unitsBase._NamedUnit._toRepr\tpygeodesy.unitsBase._NamedUnit-class.html#_toRepr\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.units.Radians.toRadians\tpygeodesy.units.Radians-class.html#toRadians\npygeodesy.unitsBase._NamedUnit._std_repr\tpygeodesy.unitsBase._NamedUnit-class.html#_std_repr\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.unitsBase._NamedUnit._Error\tpygeodesy.unitsBase._NamedUnit-class.html#_Error\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.unitsBase._NamedUnit.std_repr\tpygeodesy.unitsBase._NamedUnit-class.html#std_repr\npygeodesy.unitsBase.Float.isneg0\tpygeodesy.unitsBase.Float-class.html#isneg0\npygeodesy.units.Phid.__new__\tpygeodesy.units.Phid-class.html#__new__\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.unitsBase._NamedUnit.units\tpygeodesy.unitsBase._NamedUnit-class.html#units\npygeodesy.unitsBase.Float.__repr__\tpygeodesy.unitsBase.Float-class.html#__repr__\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.units.Precision_\tpygeodesy.units.Precision_-class.html\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.unitsBase.Int.__str__\tpygeodesy.unitsBase.Int-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.unitsBase._NamedUnit._units\tpygeodesy.unitsBase._NamedUnit-class.html#_units\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.unitsBase.Int.toStr\tpygeodesy.unitsBase.Int-class.html#toStr\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.unitsBase._NamedUnit._arg_name_arg2\tpygeodesy.unitsBase._NamedUnit-class.html#_arg_name_arg2\npygeodesy.unitsBase.Int.toRepr\tpygeodesy.unitsBase.Int-class.html#toRepr\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.unitsBase._NamedUnit._toRepr\tpygeodesy.unitsBase._NamedUnit-class.html#_toRepr\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.unitsBase._NamedUnit._std_repr\tpygeodesy.unitsBase._NamedUnit-class.html#_std_repr\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.unitsBase._NamedUnit._Error\tpygeodesy.unitsBase._NamedUnit-class.html#_Error\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.unitsBase._NamedUnit.std_repr\tpygeodesy.unitsBase._NamedUnit-class.html#std_repr\npygeodesy.units.Precision_.__new__\tpygeodesy.units.Precision_-class.html#__new__\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.unitsBase._NamedUnit.units\tpygeodesy.unitsBase._NamedUnit-class.html#units\npygeodesy.unitsBase.Int.__repr__\tpygeodesy.unitsBase.Int-class.html#__repr__\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.units.Radians\tpygeodesy.units.Radians-class.html\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.unitsBase.Float.__str__\tpygeodesy.unitsBase.Float-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.unitsBase._NamedUnit._units\tpygeodesy.unitsBase._NamedUnit-class.html#_units\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.units.Radians.toStr\tpygeodesy.units.Radians-class.html#toStr\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.unitsBase._NamedUnit._arg_name_arg2\tpygeodesy.unitsBase._NamedUnit-class.html#_arg_name_arg2\npygeodesy.units.Radians.toRepr\tpygeodesy.units.Radians-class.html#toRepr\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.units.Radians.toDegrees\tpygeodesy.units.Radians-class.html#toDegrees\npygeodesy.unitsBase._NamedUnit._toRepr\tpygeodesy.unitsBase._NamedUnit-class.html#_toRepr\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.units.Radians.toRadians\tpygeodesy.units.Radians-class.html#toRadians\npygeodesy.unitsBase._NamedUnit._std_repr\tpygeodesy.unitsBase._NamedUnit-class.html#_std_repr\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.unitsBase._NamedUnit._Error\tpygeodesy.unitsBase._NamedUnit-class.html#_Error\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.unitsBase._NamedUnit.std_repr\tpygeodesy.unitsBase._NamedUnit-class.html#std_repr\npygeodesy.unitsBase.Float.isneg0\tpygeodesy.unitsBase.Float-class.html#isneg0\npygeodesy.units.Radians.__new__\tpygeodesy.units.Radians-class.html#__new__\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.unitsBase._NamedUnit.units\tpygeodesy.unitsBase._NamedUnit-class.html#units\npygeodesy.unitsBase.Float.__repr__\tpygeodesy.unitsBase.Float-class.html#__repr__\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.units.Radians2\tpygeodesy.units.Radians2-class.html\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.unitsBase.Float.__str__\tpygeodesy.unitsBase.Float-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.unitsBase._NamedUnit._units\tpygeodesy.unitsBase._NamedUnit-class.html#_units\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.unitsBase.Float.toStr\tpygeodesy.unitsBase.Float-class.html#toStr\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.unitsBase._NamedUnit._arg_name_arg2\tpygeodesy.unitsBase._NamedUnit-class.html#_arg_name_arg2\npygeodesy.unitsBase.Float.toRepr\tpygeodesy.unitsBase.Float-class.html#toRepr\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.unitsBase._NamedUnit._toRepr\tpygeodesy.unitsBase._NamedUnit-class.html#_toRepr\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.unitsBase._NamedUnit._std_repr\tpygeodesy.unitsBase._NamedUnit-class.html#_std_repr\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.unitsBase._NamedUnit._Error\tpygeodesy.unitsBase._NamedUnit-class.html#_Error\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.unitsBase._NamedUnit.std_repr\tpygeodesy.unitsBase._NamedUnit-class.html#std_repr\npygeodesy.unitsBase.Float.isneg0\tpygeodesy.unitsBase.Float-class.html#isneg0\npygeodesy.units.Radians2.__new__\tpygeodesy.units.Radians2-class.html#__new__\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.unitsBase._NamedUnit.units\tpygeodesy.unitsBase._NamedUnit-class.html#units\npygeodesy.unitsBase.Float.__repr__\tpygeodesy.unitsBase.Float-class.html#__repr__\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.units.Radians_\tpygeodesy.units.Radians_-class.html\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.unitsBase.Float.__str__\tpygeodesy.unitsBase.Float-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.unitsBase._NamedUnit._units\tpygeodesy.unitsBase._NamedUnit-class.html#_units\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.units.Radians.toStr\tpygeodesy.units.Radians-class.html#toStr\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.unitsBase._NamedUnit._arg_name_arg2\tpygeodesy.unitsBase._NamedUnit-class.html#_arg_name_arg2\npygeodesy.units.Radians.toRepr\tpygeodesy.units.Radians-class.html#toRepr\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.units.Radians.toDegrees\tpygeodesy.units.Radians-class.html#toDegrees\npygeodesy.unitsBase._NamedUnit._toRepr\tpygeodesy.unitsBase._NamedUnit-class.html#_toRepr\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.units.Radians.toRadians\tpygeodesy.units.Radians-class.html#toRadians\npygeodesy.unitsBase._NamedUnit._std_repr\tpygeodesy.unitsBase._NamedUnit-class.html#_std_repr\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.unitsBase._NamedUnit._Error\tpygeodesy.unitsBase._NamedUnit-class.html#_Error\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.unitsBase._NamedUnit.std_repr\tpygeodesy.unitsBase._NamedUnit-class.html#std_repr\npygeodesy.unitsBase.Float.isneg0\tpygeodesy.unitsBase.Float-class.html#isneg0\npygeodesy.units.Radians_.__new__\tpygeodesy.units.Radians_-class.html#__new__\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.unitsBase._NamedUnit.units\tpygeodesy.unitsBase._NamedUnit-class.html#units\npygeodesy.unitsBase.Float.__repr__\tpygeodesy.unitsBase.Float-class.html#__repr__\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.units.Radius_\tpygeodesy.units.Radius_-class.html\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.unitsBase.Float.__str__\tpygeodesy.unitsBase.Float-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.unitsBase._NamedUnit._units\tpygeodesy.unitsBase._NamedUnit-class.html#_units\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.unitsBase.Float.toStr\tpygeodesy.unitsBase.Float-class.html#toStr\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.unitsBase._NamedUnit._arg_name_arg2\tpygeodesy.unitsBase._NamedUnit-class.html#_arg_name_arg2\npygeodesy.unitsBase.Float.toRepr\tpygeodesy.unitsBase.Float-class.html#toRepr\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.unitsBase._NamedUnit._toRepr\tpygeodesy.unitsBase._NamedUnit-class.html#_toRepr\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.unitsBase._NamedUnit._std_repr\tpygeodesy.unitsBase._NamedUnit-class.html#_std_repr\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.unitsBase._NamedUnit._Error\tpygeodesy.unitsBase._NamedUnit-class.html#_Error\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.unitsBase._NamedUnit.std_repr\tpygeodesy.unitsBase._NamedUnit-class.html#std_repr\npygeodesy.unitsBase.Float.isneg0\tpygeodesy.unitsBase.Float-class.html#isneg0\npygeodesy.units.Radius_.__new__\tpygeodesy.units.Radius_-class.html#__new__\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.unitsBase._NamedUnit.units\tpygeodesy.unitsBase._NamedUnit-class.html#units\npygeodesy.unitsBase.Float.__repr__\tpygeodesy.unitsBase.Float-class.html#__repr__\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.units.Scalar\tpygeodesy.units.Scalar-class.html\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.unitsBase.Float.__str__\tpygeodesy.unitsBase.Float-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.unitsBase._NamedUnit._units\tpygeodesy.unitsBase._NamedUnit-class.html#_units\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.unitsBase.Float.toStr\tpygeodesy.unitsBase.Float-class.html#toStr\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.unitsBase._NamedUnit._arg_name_arg2\tpygeodesy.unitsBase._NamedUnit-class.html#_arg_name_arg2\npygeodesy.unitsBase.Float.toRepr\tpygeodesy.unitsBase.Float-class.html#toRepr\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.unitsBase._NamedUnit._toRepr\tpygeodesy.unitsBase._NamedUnit-class.html#_toRepr\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.unitsBase._NamedUnit._std_repr\tpygeodesy.unitsBase._NamedUnit-class.html#_std_repr\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.unitsBase._NamedUnit._Error\tpygeodesy.unitsBase._NamedUnit-class.html#_Error\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.unitsBase._NamedUnit.std_repr\tpygeodesy.unitsBase._NamedUnit-class.html#std_repr\npygeodesy.unitsBase.Float.isneg0\tpygeodesy.unitsBase.Float-class.html#isneg0\npygeodesy.units.Scalar.__new__\tpygeodesy.units.Scalar-class.html#__new__\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.unitsBase._NamedUnit.units\tpygeodesy.unitsBase._NamedUnit-class.html#units\npygeodesy.unitsBase.Float.__repr__\tpygeodesy.unitsBase.Float-class.html#__repr__\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.units.Scalar_\tpygeodesy.units.Scalar_-class.html\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.unitsBase.Float.__str__\tpygeodesy.unitsBase.Float-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.unitsBase._NamedUnit._units\tpygeodesy.unitsBase._NamedUnit-class.html#_units\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.unitsBase.Float.toStr\tpygeodesy.unitsBase.Float-class.html#toStr\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.unitsBase._NamedUnit._arg_name_arg2\tpygeodesy.unitsBase._NamedUnit-class.html#_arg_name_arg2\npygeodesy.unitsBase.Float.toRepr\tpygeodesy.unitsBase.Float-class.html#toRepr\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.unitsBase._NamedUnit._toRepr\tpygeodesy.unitsBase._NamedUnit-class.html#_toRepr\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.unitsBase._NamedUnit._std_repr\tpygeodesy.unitsBase._NamedUnit-class.html#_std_repr\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.unitsBase._NamedUnit._Error\tpygeodesy.unitsBase._NamedUnit-class.html#_Error\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.unitsBase._NamedUnit.std_repr\tpygeodesy.unitsBase._NamedUnit-class.html#std_repr\npygeodesy.unitsBase.Float.isneg0\tpygeodesy.unitsBase.Float-class.html#isneg0\npygeodesy.units.Scalar_.__new__\tpygeodesy.units.Scalar_-class.html#__new__\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.unitsBase._NamedUnit.units\tpygeodesy.unitsBase._NamedUnit-class.html#units\npygeodesy.unitsBase.Float.__repr__\tpygeodesy.unitsBase.Float-class.html#__repr__\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.units.Zone\tpygeodesy.units.Zone-class.html\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.unitsBase.Int.__str__\tpygeodesy.unitsBase.Int-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.unitsBase._NamedUnit._units\tpygeodesy.unitsBase._NamedUnit-class.html#_units\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.unitsBase.Int.toStr\tpygeodesy.unitsBase.Int-class.html#toStr\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.unitsBase._NamedUnit._arg_name_arg2\tpygeodesy.unitsBase._NamedUnit-class.html#_arg_name_arg2\npygeodesy.unitsBase.Int.toRepr\tpygeodesy.unitsBase.Int-class.html#toRepr\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.unitsBase._NamedUnit._toRepr\tpygeodesy.unitsBase._NamedUnit-class.html#_toRepr\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.unitsBase._NamedUnit._std_repr\tpygeodesy.unitsBase._NamedUnit-class.html#_std_repr\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.unitsBase._NamedUnit._Error\tpygeodesy.unitsBase._NamedUnit-class.html#_Error\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.unitsBase._NamedUnit.std_repr\tpygeodesy.unitsBase._NamedUnit-class.html#std_repr\npygeodesy.units.Zone.__new__\tpygeodesy.units.Zone-class.html#__new__\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.unitsBase._NamedUnit.units\tpygeodesy.unitsBase._NamedUnit-class.html#units\npygeodesy.unitsBase.Int.__repr__\tpygeodesy.unitsBase.Int-class.html#__repr__\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.unitsBase.Float\tpygeodesy.unitsBase.Float-class.html\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.unitsBase.Float.__str__\tpygeodesy.unitsBase.Float-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.unitsBase._NamedUnit._units\tpygeodesy.unitsBase._NamedUnit-class.html#_units\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.unitsBase.Float.toStr\tpygeodesy.unitsBase.Float-class.html#toStr\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.unitsBase._NamedUnit._arg_name_arg2\tpygeodesy.unitsBase._NamedUnit-class.html#_arg_name_arg2\npygeodesy.unitsBase.Float.toRepr\tpygeodesy.unitsBase.Float-class.html#toRepr\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.unitsBase._NamedUnit._toRepr\tpygeodesy.unitsBase._NamedUnit-class.html#_toRepr\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.unitsBase._NamedUnit._std_repr\tpygeodesy.unitsBase._NamedUnit-class.html#_std_repr\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.unitsBase._NamedUnit._Error\tpygeodesy.unitsBase._NamedUnit-class.html#_Error\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.unitsBase._NamedUnit.std_repr\tpygeodesy.unitsBase._NamedUnit-class.html#std_repr\npygeodesy.unitsBase.Float.isneg0\tpygeodesy.unitsBase.Float-class.html#isneg0\npygeodesy.unitsBase.Float.__new__\tpygeodesy.unitsBase.Float-class.html#__new__\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.unitsBase._NamedUnit.units\tpygeodesy.unitsBase._NamedUnit-class.html#units\npygeodesy.unitsBase.Float.__repr__\tpygeodesy.unitsBase.Float-class.html#__repr__\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.unitsBase.Int\tpygeodesy.unitsBase.Int-class.html\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.unitsBase.Int.__str__\tpygeodesy.unitsBase.Int-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.unitsBase._NamedUnit._units\tpygeodesy.unitsBase._NamedUnit-class.html#_units\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.unitsBase.Int.toStr\tpygeodesy.unitsBase.Int-class.html#toStr\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.unitsBase._NamedUnit._arg_name_arg2\tpygeodesy.unitsBase._NamedUnit-class.html#_arg_name_arg2\npygeodesy.unitsBase.Int.toRepr\tpygeodesy.unitsBase.Int-class.html#toRepr\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.unitsBase._NamedUnit._toRepr\tpygeodesy.unitsBase._NamedUnit-class.html#_toRepr\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.unitsBase._NamedUnit._std_repr\tpygeodesy.unitsBase._NamedUnit-class.html#_std_repr\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.unitsBase._NamedUnit._Error\tpygeodesy.unitsBase._NamedUnit-class.html#_Error\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.unitsBase._NamedUnit.std_repr\tpygeodesy.unitsBase._NamedUnit-class.html#std_repr\npygeodesy.unitsBase.Int.__new__\tpygeodesy.unitsBase.Int-class.html#__new__\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.unitsBase._NamedUnit.units\tpygeodesy.unitsBase._NamedUnit-class.html#units\npygeodesy.unitsBase.Int.__repr__\tpygeodesy.unitsBase.Int-class.html#__repr__\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.unitsBase.Radius\tpygeodesy.unitsBase.Radius-class.html\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.unitsBase.Float.__str__\tpygeodesy.unitsBase.Float-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.unitsBase._NamedUnit._units\tpygeodesy.unitsBase._NamedUnit-class.html#_units\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.unitsBase.Float.toStr\tpygeodesy.unitsBase.Float-class.html#toStr\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.unitsBase._NamedUnit._arg_name_arg2\tpygeodesy.unitsBase._NamedUnit-class.html#_arg_name_arg2\npygeodesy.unitsBase.Float.toRepr\tpygeodesy.unitsBase.Float-class.html#toRepr\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.unitsBase._NamedUnit._toRepr\tpygeodesy.unitsBase._NamedUnit-class.html#_toRepr\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.unitsBase._NamedUnit._std_repr\tpygeodesy.unitsBase._NamedUnit-class.html#_std_repr\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.unitsBase._NamedUnit._Error\tpygeodesy.unitsBase._NamedUnit-class.html#_Error\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.unitsBase._NamedUnit.std_repr\tpygeodesy.unitsBase._NamedUnit-class.html#std_repr\npygeodesy.unitsBase.Float.isneg0\tpygeodesy.unitsBase.Float-class.html#isneg0\npygeodesy.unitsBase.Radius.__new__\tpygeodesy.unitsBase.Radius-class.html#__new__\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.unitsBase._NamedUnit.units\tpygeodesy.unitsBase._NamedUnit-class.html#units\npygeodesy.unitsBase.Float.__repr__\tpygeodesy.unitsBase.Float-class.html#__repr__\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.unitsBase.Str\tpygeodesy.unitsBase.Str-class.html\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.unitsBase.Str.__str__\tpygeodesy.unitsBase.Str-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.unitsBase._NamedUnit._units\tpygeodesy.unitsBase._NamedUnit-class.html#_units\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.unitsBase.Str.__call__\tpygeodesy.unitsBase.Str-class.html#__call__\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.unitsBase.Str.toStr\tpygeodesy.unitsBase.Str-class.html#toStr\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.unitsBase.Str.join_\tpygeodesy.unitsBase.Str-class.html#join_\npygeodesy.unitsBase._NamedUnit._arg_name_arg2\tpygeodesy.unitsBase._NamedUnit-class.html#_arg_name_arg2\npygeodesy.unitsBase.Str.toRepr\tpygeodesy.unitsBase.Str-class.html#toRepr\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.unitsBase._NamedUnit._toRepr\tpygeodesy.unitsBase._NamedUnit-class.html#_toRepr\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.unitsBase._NamedUnit._std_repr\tpygeodesy.unitsBase._NamedUnit-class.html#_std_repr\npygeodesy.unitsBase._NamedUnit._Error\tpygeodesy.unitsBase._NamedUnit-class.html#_Error\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.unitsBase._NamedUnit.std_repr\tpygeodesy.unitsBase._NamedUnit-class.html#std_repr\npygeodesy.unitsBase.Str.__new__\tpygeodesy.unitsBase.Str-class.html#__new__\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.unitsBase._NamedUnit.units\tpygeodesy.unitsBase._NamedUnit-class.html#units\npygeodesy.unitsBase.Str.__repr__\tpygeodesy.unitsBase.Str-class.html#__repr__\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.unitsBase._NamedUnit\tpygeodesy.unitsBase._NamedUnit-class.html\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.__str__\tpygeodesy.named._Named-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.unitsBase._NamedUnit.std_repr\tpygeodesy.unitsBase._NamedUnit-class.html#std_repr\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.unitsBase._NamedUnit.__new__\tpygeodesy.unitsBase._NamedUnit-class.html#__new__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.unitsBase._NamedUnit._std_repr\tpygeodesy.unitsBase._NamedUnit-class.html#_std_repr\npygeodesy.unitsBase._NamedUnit._units\tpygeodesy.unitsBase._NamedUnit-class.html#_units\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.unitsBase._NamedUnit.units\tpygeodesy.unitsBase._NamedUnit-class.html#units\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.unitsBase._NamedUnit._toRepr\tpygeodesy.unitsBase._NamedUnit-class.html#_toRepr\npygeodesy.unitsBase._NamedUnit._Error\tpygeodesy.unitsBase._NamedUnit-class.html#_Error\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._Named.toStr\tpygeodesy.named._Named-class.html#toStr\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.named._Named.toRepr\tpygeodesy.named._Named-class.html#toRepr\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._Named.__repr__\tpygeodesy.named._Named-class.html#__repr__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.unitsBase._NamedUnit._arg_name_arg2\tpygeodesy.unitsBase._NamedUnit-class.html#_arg_name_arg2\npygeodesy.ups.UPSError\tpygeodesy.ups.UPSError-class.html\npygeodesy.ups.Ups\tpygeodesy.ups.Ups-class.html\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.utmupsBase.UtmUpsBase.__str__\tpygeodesy.utmupsBase.UtmUpsBase-class.html#__str__\npygeodesy.ups.Ups._Bands\tpygeodesy.ups.Ups-class.html#_Bands\npygeodesy.utmupsBase.UtmUpsBase.datum\tpygeodesy.utmupsBase.UtmUpsBase-class.html#datum\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.ups.Ups.toLatLon\tpygeodesy.ups.Ups-class.html#toLatLon\npygeodesy.ups.Ups.rescale0\tpygeodesy.ups.Ups-class.html#rescale0\npygeodesy.utmupsBase.UtmUpsBase.easting\tpygeodesy.utmupsBase.UtmUpsBase-class.html#easting\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.ups.Ups.zone\tpygeodesy.ups.Ups-class.html#zone\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.utmupsBase.UtmUpsBase._mgrs\tpygeodesy.utmupsBase.UtmUpsBase-class.html#_mgrs\npygeodesy.utmupsBase.UtmUpsBase._easting\tpygeodesy.utmupsBase.UtmUpsBase-class.html#_easting\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.ups.Ups.toStr\tpygeodesy.ups.Ups-class.html#toStr\npygeodesy.utmupsBase.UtmUpsBase._datum\tpygeodesy.utmupsBase.UtmUpsBase-class.html#_datum\npygeodesy.utmupsBase.UtmUpsBase._band\tpygeodesy.utmupsBase.UtmUpsBase-class.html#_band\npygeodesy.ups.Ups.band\tpygeodesy.ups.Ups-class.html#band\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.utmupsBase.UtmUpsBase._ups\tpygeodesy.utmupsBase.UtmUpsBase-class.html#_ups\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.utmupsBase.UtmUpsBase.phiFootPoint\tpygeodesy.utmupsBase.UtmUpsBase-class.html#phiFootPoint\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.ups.Ups.toRepr\tpygeodesy.ups.Ups-class.html#toRepr\npygeodesy.utmupsBase.UtmUpsBase._mgrs_lowerleft\tpygeodesy.utmupsBase.UtmUpsBase-class.html#_mgrs_lowerleft\npygeodesy.ups.Ups.toUtm\tpygeodesy.ups.Ups-class.html#toUtm\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.utmupsBase.UtmUpsBase._lowerleft\tpygeodesy.utmupsBase.UtmUpsBase-class.html#_lowerleft\npygeodesy.utmupsBase.UtmUpsBase._gamma\tpygeodesy.utmupsBase.UtmUpsBase-class.html#_gamma\npygeodesy.utmupsBase.UtmUpsBase.falsed\tpygeodesy.utmupsBase.UtmUpsBase-class.html#falsed\npygeodesy.utmupsBase.UtmUpsBase.scale\tpygeodesy.utmupsBase.UtmUpsBase-class.html#scale\npygeodesy.utmupsBase.UtmUpsBase._latlon\tpygeodesy.utmupsBase.UtmUpsBase-class.html#_latlon\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.utmupsBase.UtmUpsBase._toRepr\tpygeodesy.utmupsBase.UtmUpsBase-class.html#_toRepr\npygeodesy.utmupsBase.UtmUpsBase.eastingnorthing2\tpygeodesy.utmupsBase.UtmUpsBase-class.html#eastingnorthing2\npygeodesy.utmupsBase.UtmUpsBase._falsed\tpygeodesy.utmupsBase.UtmUpsBase-class.html#_falsed\npygeodesy.named._NamedBase.others\tpygeodesy.named._NamedBase-class.html#others\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.ups.Ups._pole\tpygeodesy.ups.Ups-class.html#_pole\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.utmupsBase.UtmUpsBase.toEpsg\tpygeodesy.utmupsBase.UtmUpsBase-class.html#toEpsg\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.utmupsBase.UtmUpsBase.__repr__\tpygeodesy.utmupsBase.UtmUpsBase-class.html#__repr__\npygeodesy.ups.Ups._toLLEB\tpygeodesy.ups.Ups-class.html#_toLLEB\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.utmupsBase.UtmUpsBase.gamma\tpygeodesy.utmupsBase.UtmUpsBase-class.html#gamma\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.utmupsBase.UtmUpsBase._scale\tpygeodesy.utmupsBase.UtmUpsBase-class.html#_scale\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.ups.Ups.pole\tpygeodesy.ups.Ups-class.html#pole\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.utmupsBase.UtmUpsBase.northing\tpygeodesy.utmupsBase.UtmUpsBase-class.html#northing\npygeodesy.utmupsBase.UtmUpsBase._latlon5args\tpygeodesy.utmupsBase.UtmUpsBase-class.html#_latlon5args\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.utmupsBase.UtmUpsBase.scale0\tpygeodesy.utmupsBase.UtmUpsBase-class.html#scale0\npygeodesy.ups.Ups._Error\tpygeodesy.ups.UPSError-class.html\npygeodesy.utmupsBase.UtmUpsBase.to2en\tpygeodesy.utmupsBase.UtmUpsBase-class.html#to2en\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.utmupsBase.UtmUpsBase._latlon5\tpygeodesy.utmupsBase.UtmUpsBase-class.html#_latlon5\npygeodesy.utmupsBase.UtmUpsBase._utm\tpygeodesy.utmupsBase.UtmUpsBase-class.html#_utm\npygeodesy.ups.Ups.parseUPS\tpygeodesy.ups.Ups-class.html#parseUPS\npygeodesy.utmupsBase.UtmUpsBase.hemisphere\tpygeodesy.utmupsBase.UtmUpsBase-class.html#hemisphere\npygeodesy.utmupsBase.UtmUpsBase.convergence\tpygeodesy.utmupsBase.UtmUpsBase-class.html#convergence\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.ups.Ups.__eq__\tpygeodesy.ups.Ups-class.html#__eq__\npygeodesy.utmupsBase.UtmUpsBase._band1\tpygeodesy.utmupsBase.UtmUpsBase-class.html#_band1\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.utmupsBase.UtmUpsBase.eastingnorthing\tpygeodesy.utmupsBase.UtmUpsBase-class.html#eastingnorthing\npygeodesy.utmupsBase.UtmUpsBase._hemisphere\tpygeodesy.utmupsBase.UtmUpsBase-class.html#_hemisphere\npygeodesy.ups.Ups.falsed2\tpygeodesy.ups.Ups-class.html#falsed2\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.ups.Ups.toUps\tpygeodesy.ups.Ups-class.html#toUps\npygeodesy.utmupsBase.UtmUpsBase._northing\tpygeodesy.utmupsBase.UtmUpsBase-class.html#_northing\npygeodesy.ups.Ups.parse\tpygeodesy.ups.Ups-class.html#parse\npygeodesy.utmupsBase.UtmUpsBase._footpoint\tpygeodesy.utmupsBase.UtmUpsBase-class.html#_footpoint\npygeodesy.ups.Ups.__init__\tpygeodesy.ups.Ups-class.html#__init__\npygeodesy.utmupsBase.UtmUpsBase._toStr\tpygeodesy.utmupsBase.UtmUpsBase-class.html#_toStr\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.utmupsBase.UtmUpsBase._epsg\tpygeodesy.utmupsBase.UtmUpsBase-class.html#_epsg\npygeodesy.utmupsBase.UtmUpsBase.toMgrs\tpygeodesy.utmupsBase.UtmUpsBase-class.html#toMgrs\npygeodesy.utmupsBase.UtmUpsBase.latFootPoint\tpygeodesy.utmupsBase.UtmUpsBase-class.html#latFootPoint\npygeodesy.ups.Ups._scale0\tpygeodesy.ups.Ups-class.html#_scale0\npygeodesy.utm.UTMError\tpygeodesy.utm.UTMError-class.html\npygeodesy.utm.Utm\tpygeodesy.utm.Utm-class.html\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.utm.Utm.toEtm\tpygeodesy.utm.Utm-class.html#toEtm\npygeodesy.utm.Utm.__str__\tpygeodesy.utm.Utm-class.html#__str__\npygeodesy.utm.Utm._Bands\tpygeodesy.utm.Utm-class.html#_Bands\npygeodesy.utmupsBase.UtmUpsBase.datum\tpygeodesy.utmupsBase.UtmUpsBase-class.html#datum\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.utm.Utm.toLatLon\tpygeodesy.utm.Utm-class.html#toLatLon\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.utmupsBase.UtmUpsBase.easting\tpygeodesy.utmupsBase.UtmUpsBase-class.html#easting\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.utm.Utm.zone\tpygeodesy.utm.Utm-class.html#zone\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.utmupsBase.UtmUpsBase._mgrs\tpygeodesy.utmupsBase.UtmUpsBase-class.html#_mgrs\npygeodesy.utmupsBase.UtmUpsBase._easting\tpygeodesy.utmupsBase.UtmUpsBase-class.html#_easting\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.utm.Utm.toStr\tpygeodesy.utm.Utm-class.html#toStr\npygeodesy.utmupsBase.UtmUpsBase._datum\tpygeodesy.utmupsBase.UtmUpsBase-class.html#_datum\npygeodesy.utmupsBase.UtmUpsBase._band\tpygeodesy.utmupsBase.UtmUpsBase-class.html#_band\npygeodesy.utm.Utm.band\tpygeodesy.utm.Utm-class.html#band\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.utmupsBase.UtmUpsBase._ups\tpygeodesy.utmupsBase.UtmUpsBase-class.html#_ups\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.utmupsBase.UtmUpsBase.phiFootPoint\tpygeodesy.utmupsBase.UtmUpsBase-class.html#phiFootPoint\npygeodesy.utm.Utm.toRepr\tpygeodesy.utm.Utm-class.html#toRepr\npygeodesy.utmupsBase.UtmUpsBase._mgrs_lowerleft\tpygeodesy.utmupsBase.UtmUpsBase-class.html#_mgrs_lowerleft\npygeodesy.utm.Utm.toUtm\tpygeodesy.utm.Utm-class.html#toUtm\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.utmupsBase.UtmUpsBase._lowerleft\tpygeodesy.utmupsBase.UtmUpsBase-class.html#_lowerleft\npygeodesy.utmupsBase.UtmUpsBase._gamma\tpygeodesy.utmupsBase.UtmUpsBase-class.html#_gamma\npygeodesy.utmupsBase.UtmUpsBase.falsed\tpygeodesy.utmupsBase.UtmUpsBase-class.html#falsed\npygeodesy.utmupsBase.UtmUpsBase.scale\tpygeodesy.utmupsBase.UtmUpsBase-class.html#scale\npygeodesy.utmupsBase.UtmUpsBase._latlon\tpygeodesy.utmupsBase.UtmUpsBase-class.html#_latlon\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.utmupsBase.UtmUpsBase._toRepr\tpygeodesy.utmupsBase.UtmUpsBase-class.html#_toRepr\npygeodesy.utmupsBase.UtmUpsBase.eastingnorthing2\tpygeodesy.utmupsBase.UtmUpsBase-class.html#eastingnorthing2\npygeodesy.utmupsBase.UtmUpsBase._falsed\tpygeodesy.utmupsBase.UtmUpsBase-class.html#_falsed\npygeodesy.named._NamedBase.others\tpygeodesy.named._NamedBase-class.html#others\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.utmupsBase.UtmUpsBase.toEpsg\tpygeodesy.utmupsBase.UtmUpsBase-class.html#toEpsg\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.utm.Utm.__repr__\tpygeodesy.utm.Utm-class.html#__repr__\npygeodesy.utm.Utm._toLLEB\tpygeodesy.utm.Utm-class.html#_toLLEB\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.utmupsBase.UtmUpsBase.gamma\tpygeodesy.utmupsBase.UtmUpsBase-class.html#gamma\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.utmupsBase.UtmUpsBase._scale\tpygeodesy.utmupsBase.UtmUpsBase-class.html#_scale\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.utm.Utm.pole\tpygeodesy.utm.Utm-class.html#pole\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.utmupsBase.UtmUpsBase.northing\tpygeodesy.utmupsBase.UtmUpsBase-class.html#northing\npygeodesy.utmupsBase.UtmUpsBase._latlon5args\tpygeodesy.utmupsBase.UtmUpsBase-class.html#_latlon5args\npygeodesy.utm.Utm._xcopy2\tpygeodesy.utm.Utm-class.html#_xcopy2\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.utmupsBase.UtmUpsBase.scale0\tpygeodesy.utmupsBase.UtmUpsBase-class.html#scale0\npygeodesy.utm.Utm._Error\tpygeodesy.utm.UTMError-class.html\npygeodesy.utmupsBase.UtmUpsBase.to2en\tpygeodesy.utmupsBase.UtmUpsBase-class.html#to2en\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.utmupsBase.UtmUpsBase._latlon5\tpygeodesy.utmupsBase.UtmUpsBase-class.html#_latlon5\npygeodesy.utmupsBase.UtmUpsBase._utm\tpygeodesy.utmupsBase.UtmUpsBase-class.html#_utm\npygeodesy.utmupsBase.UtmUpsBase.hemisphere\tpygeodesy.utmupsBase.UtmUpsBase-class.html#hemisphere\npygeodesy.utmupsBase.UtmUpsBase.convergence\tpygeodesy.utmupsBase.UtmUpsBase-class.html#convergence\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.utm.Utm.__eq__\tpygeodesy.utm.Utm-class.html#__eq__\npygeodesy.utmupsBase.UtmUpsBase._band1\tpygeodesy.utmupsBase.UtmUpsBase-class.html#_band1\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.utmupsBase.UtmUpsBase.eastingnorthing\tpygeodesy.utmupsBase.UtmUpsBase-class.html#eastingnorthing\npygeodesy.utmupsBase.UtmUpsBase._hemisphere\tpygeodesy.utmupsBase.UtmUpsBase-class.html#_hemisphere\npygeodesy.utm.Utm.falsed2\tpygeodesy.utm.Utm-class.html#falsed2\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.utm.Utm.toUps\tpygeodesy.utm.Utm-class.html#toUps\npygeodesy.utmupsBase.UtmUpsBase._northing\tpygeodesy.utmupsBase.UtmUpsBase-class.html#_northing\npygeodesy.utm.Utm.parse\tpygeodesy.utm.Utm-class.html#parse\npygeodesy.utmupsBase.UtmUpsBase._footpoint\tpygeodesy.utmupsBase.UtmUpsBase-class.html#_footpoint\npygeodesy.utm.Utm.__init__\tpygeodesy.utm.Utm-class.html#__init__\npygeodesy.utmupsBase.UtmUpsBase._toStr\tpygeodesy.utmupsBase.UtmUpsBase-class.html#_toStr\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.utm.Utm.parseUTM\tpygeodesy.utm.Utm-class.html#parseUTM\npygeodesy.utm.Utm._zone\tpygeodesy.utm.Utm-class.html#_zone\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.utmupsBase.UtmUpsBase._epsg\tpygeodesy.utmupsBase.UtmUpsBase-class.html#_epsg\npygeodesy.utmupsBase.UtmUpsBase.toMgrs\tpygeodesy.utmupsBase.UtmUpsBase-class.html#toMgrs\npygeodesy.utmupsBase.UtmUpsBase.latFootPoint\tpygeodesy.utmupsBase.UtmUpsBase-class.html#latFootPoint\npygeodesy.utm.Utm._etm\tpygeodesy.utm.Utm-class.html#_etm\npygeodesy.utm.Utm._scale0\tpygeodesy.utm.Utm-class.html#_scale0\npygeodesy.utmups.UTMUPSError\tpygeodesy.utmups.UTMUPSError-class.html\npygeodesy.utmupsBase.UtmUpsBase\tpygeodesy.utmupsBase.UtmUpsBase-class.html\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.utmupsBase.UtmUpsBase.__str__\tpygeodesy.utmupsBase.UtmUpsBase-class.html#__str__\npygeodesy.utmupsBase.UtmUpsBase._Bands\tpygeodesy.utmupsBase.UtmUpsBase-class.html#_Bands\npygeodesy.utmupsBase.UtmUpsBase.datum\tpygeodesy.utmupsBase.UtmUpsBase-class.html#datum\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.utmupsBase.UtmUpsBase.easting\tpygeodesy.utmupsBase.UtmUpsBase-class.html#easting\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.utmupsBase.UtmUpsBase._mgrs\tpygeodesy.utmupsBase.UtmUpsBase-class.html#_mgrs\npygeodesy.utmupsBase.UtmUpsBase._easting\tpygeodesy.utmupsBase.UtmUpsBase-class.html#_easting\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._NamedBase.toStr\tpygeodesy.named._NamedBase-class.html#toStr\npygeodesy.utmupsBase.UtmUpsBase._datum\tpygeodesy.utmupsBase.UtmUpsBase-class.html#_datum\npygeodesy.utmupsBase.UtmUpsBase._band\tpygeodesy.utmupsBase.UtmUpsBase-class.html#_band\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.utmupsBase.UtmUpsBase._ups\tpygeodesy.utmupsBase.UtmUpsBase-class.html#_ups\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.utmupsBase.UtmUpsBase.phiFootPoint\tpygeodesy.utmupsBase.UtmUpsBase-class.html#phiFootPoint\npygeodesy.named._NamedBase.toRepr\tpygeodesy.named._NamedBase-class.html#toRepr\npygeodesy.utmupsBase.UtmUpsBase._mgrs_lowerleft\tpygeodesy.utmupsBase.UtmUpsBase-class.html#_mgrs_lowerleft\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.utmupsBase.UtmUpsBase._lowerleft\tpygeodesy.utmupsBase.UtmUpsBase-class.html#_lowerleft\npygeodesy.utmupsBase.UtmUpsBase._gamma\tpygeodesy.utmupsBase.UtmUpsBase-class.html#_gamma\npygeodesy.utmupsBase.UtmUpsBase.falsed\tpygeodesy.utmupsBase.UtmUpsBase-class.html#falsed\npygeodesy.utmupsBase.UtmUpsBase.scale\tpygeodesy.utmupsBase.UtmUpsBase-class.html#scale\npygeodesy.utmupsBase.UtmUpsBase._latlon\tpygeodesy.utmupsBase.UtmUpsBase-class.html#_latlon\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.utmupsBase.UtmUpsBase._toRepr\tpygeodesy.utmupsBase.UtmUpsBase-class.html#_toRepr\npygeodesy.utmupsBase.UtmUpsBase.eastingnorthing2\tpygeodesy.utmupsBase.UtmUpsBase-class.html#eastingnorthing2\npygeodesy.utmupsBase.UtmUpsBase._falsed\tpygeodesy.utmupsBase.UtmUpsBase-class.html#_falsed\npygeodesy.named._NamedBase.others\tpygeodesy.named._NamedBase-class.html#others\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.utmupsBase.UtmUpsBase._hemisphere\tpygeodesy.utmupsBase.UtmUpsBase-class.html#_hemisphere\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.utmupsBase.UtmUpsBase.__repr__\tpygeodesy.utmupsBase.UtmUpsBase-class.html#__repr__\npygeodesy.utmupsBase.UtmUpsBase._toLLEB\tpygeodesy.utmupsBase.UtmUpsBase-class.html#_toLLEB\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.utmupsBase.UtmUpsBase.gamma\tpygeodesy.utmupsBase.UtmUpsBase-class.html#gamma\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.utmupsBase.UtmUpsBase._scale\tpygeodesy.utmupsBase.UtmUpsBase-class.html#_scale\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.utmupsBase.UtmUpsBase.northing\tpygeodesy.utmupsBase.UtmUpsBase-class.html#northing\npygeodesy.utmupsBase.UtmUpsBase._latlon5args\tpygeodesy.utmupsBase.UtmUpsBase-class.html#_latlon5args\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.utmupsBase.UtmUpsBase.scale0\tpygeodesy.utmupsBase.UtmUpsBase-class.html#scale0\npygeodesy.utmupsBase.UtmUpsBase._Error\tpygeodesy.utmupsBase.UtmUpsBase-class.html#_Error\npygeodesy.utmupsBase.UtmUpsBase.to2en\tpygeodesy.utmupsBase.UtmUpsBase-class.html#to2en\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.utmupsBase.UtmUpsBase._latlon5\tpygeodesy.utmupsBase.UtmUpsBase-class.html#_latlon5\npygeodesy.utmupsBase.UtmUpsBase._utm\tpygeodesy.utmupsBase.UtmUpsBase-class.html#_utm\npygeodesy.utmupsBase.UtmUpsBase.hemisphere\tpygeodesy.utmupsBase.UtmUpsBase-class.html#hemisphere\npygeodesy.utmupsBase.UtmUpsBase.convergence\tpygeodesy.utmupsBase.UtmUpsBase-class.html#convergence\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.utmupsBase.UtmUpsBase._band1\tpygeodesy.utmupsBase.UtmUpsBase-class.html#_band1\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.utmupsBase.UtmUpsBase.eastingnorthing\tpygeodesy.utmupsBase.UtmUpsBase-class.html#eastingnorthing\npygeodesy.utmupsBase.UtmUpsBase.toEpsg\tpygeodesy.utmupsBase.UtmUpsBase-class.html#toEpsg\npygeodesy.utmupsBase.UtmUpsBase.falsed2\tpygeodesy.utmupsBase.UtmUpsBase-class.html#falsed2\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.utmupsBase.UtmUpsBase._northing\tpygeodesy.utmupsBase.UtmUpsBase-class.html#_northing\npygeodesy.utmupsBase.UtmUpsBase._footpoint\tpygeodesy.utmupsBase.UtmUpsBase-class.html#_footpoint\npygeodesy.utmupsBase.UtmUpsBase.__init__\tpygeodesy.utmupsBase.UtmUpsBase-class.html#__init__\npygeodesy.utmupsBase.UtmUpsBase._toStr\tpygeodesy.utmupsBase.UtmUpsBase-class.html#_toStr\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.utmupsBase.UtmUpsBase._epsg\tpygeodesy.utmupsBase.UtmUpsBase-class.html#_epsg\npygeodesy.utmupsBase.UtmUpsBase.toMgrs\tpygeodesy.utmupsBase.UtmUpsBase-class.html#toMgrs\npygeodesy.utmupsBase.UtmUpsBase.latFootPoint\tpygeodesy.utmupsBase.UtmUpsBase-class.html#latFootPoint\npygeodesy.vector2d.Circin6Tuple\tpygeodesy.vector2d.Circin6Tuple-class.html\npygeodesy.named._NamedTuple.toRepr\tpygeodesy.named._NamedTuple-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._NamedTuple.toUnits\tpygeodesy.named._NamedTuple-class.html#toUnits\npygeodesy.named._NamedTuple._validate\tpygeodesy.named._NamedTuple-class.html#_validate\npygeodesy.named._NamedTuple.__str__\tpygeodesy.named._NamedTuple-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._NamedTuple._DOT_\tpygeodesy.named._NamedTuple-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._NamedTuple.reUnit\tpygeodesy.named._NamedTuple-class.html#reUnit\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.vector2d.Circin6Tuple._Names_\tpygeodesy.vector2d.Circin6Tuple-class.html#_Names_\npygeodesy.named._NamedTuple.__setattr__\tpygeodesy.named._NamedTuple-class.html#__setattr__\npygeodesy.named._NamedTuple.__new__\tpygeodesy.named._NamedTuple-class.html#__new__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._NamedTuple._validated\tpygeodesy.named._NamedTuple-class.html#_validated\npygeodesy.named._NamedTuple.__getattr__\tpygeodesy.named._NamedTuple-class.html#__getattr__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._NamedTuple._xtend\tpygeodesy.named._NamedTuple-class.html#_xtend\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._NamedTuple.dup\tpygeodesy.named._NamedTuple-class.html#dup\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedTuple.toStr\tpygeodesy.named._NamedTuple-class.html#toStr\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedTuple.units\tpygeodesy.named._NamedTuple-class.html#units\npygeodesy.named._NamedTuple.iterunits\tpygeodesy.named._NamedTuple-class.html#iterunits\npygeodesy.named._NamedTuple.iteritems\tpygeodesy.named._NamedTuple-class.html#iteritems\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._NamedTuple.items\tpygeodesy.named._NamedTuple-class.html#items\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedTuple.__delattr__\tpygeodesy.named._NamedTuple-class.html#__delattr__\npygeodesy.named._NamedTuple.__repr__\tpygeodesy.named._NamedTuple-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._NamedTuple.__hash__\tpygeodesy.named._NamedTuple-class.html#__hash__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.vector2d.Circin6Tuple._Units_\tpygeodesy.vector2d.Circin6Tuple-class.html#_Units_\npygeodesy.vector2d.Circum3Tuple\tpygeodesy.vector2d.Circum3Tuple-class.html\npygeodesy.named._NamedTuple.toRepr\tpygeodesy.named._NamedTuple-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._NamedTuple.toUnits\tpygeodesy.named._NamedTuple-class.html#toUnits\npygeodesy.named._NamedTuple._validate\tpygeodesy.named._NamedTuple-class.html#_validate\npygeodesy.named._NamedTuple.__str__\tpygeodesy.named._NamedTuple-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._NamedTuple._DOT_\tpygeodesy.named._NamedTuple-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._NamedTuple.reUnit\tpygeodesy.named._NamedTuple-class.html#reUnit\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.vector2d.Circum3Tuple._Names_\tpygeodesy.vector2d.Circum3Tuple-class.html#_Names_\npygeodesy.named._NamedTuple.__setattr__\tpygeodesy.named._NamedTuple-class.html#__setattr__\npygeodesy.named._NamedTuple.__new__\tpygeodesy.named._NamedTuple-class.html#__new__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._NamedTuple._validated\tpygeodesy.named._NamedTuple-class.html#_validated\npygeodesy.named._NamedTuple.__getattr__\tpygeodesy.named._NamedTuple-class.html#__getattr__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._NamedTuple._xtend\tpygeodesy.named._NamedTuple-class.html#_xtend\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._NamedTuple.dup\tpygeodesy.named._NamedTuple-class.html#dup\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedTuple.toStr\tpygeodesy.named._NamedTuple-class.html#toStr\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedTuple.units\tpygeodesy.named._NamedTuple-class.html#units\npygeodesy.named._NamedTuple.iterunits\tpygeodesy.named._NamedTuple-class.html#iterunits\npygeodesy.named._NamedTuple.iteritems\tpygeodesy.named._NamedTuple-class.html#iteritems\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._NamedTuple.items\tpygeodesy.named._NamedTuple-class.html#items\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedTuple.__delattr__\tpygeodesy.named._NamedTuple-class.html#__delattr__\npygeodesy.named._NamedTuple.__repr__\tpygeodesy.named._NamedTuple-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._NamedTuple.__hash__\tpygeodesy.named._NamedTuple-class.html#__hash__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.vector2d.Circum3Tuple._Units_\tpygeodesy.vector2d.Circum3Tuple-class.html#_Units_\npygeodesy.vector2d.Circum4Tuple\tpygeodesy.vector2d.Circum4Tuple-class.html\npygeodesy.named._NamedTuple.toRepr\tpygeodesy.named._NamedTuple-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._NamedTuple.toUnits\tpygeodesy.named._NamedTuple-class.html#toUnits\npygeodesy.named._NamedTuple._validate\tpygeodesy.named._NamedTuple-class.html#_validate\npygeodesy.named._NamedTuple.__str__\tpygeodesy.named._NamedTuple-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._NamedTuple._DOT_\tpygeodesy.named._NamedTuple-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._NamedTuple.reUnit\tpygeodesy.named._NamedTuple-class.html#reUnit\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.vector2d.Circum4Tuple._Names_\tpygeodesy.vector2d.Circum4Tuple-class.html#_Names_\npygeodesy.named._NamedTuple.__setattr__\tpygeodesy.named._NamedTuple-class.html#__setattr__\npygeodesy.named._NamedTuple.__new__\tpygeodesy.named._NamedTuple-class.html#__new__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._NamedTuple._validated\tpygeodesy.named._NamedTuple-class.html#_validated\npygeodesy.named._NamedTuple.__getattr__\tpygeodesy.named._NamedTuple-class.html#__getattr__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._NamedTuple._xtend\tpygeodesy.named._NamedTuple-class.html#_xtend\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._NamedTuple.dup\tpygeodesy.named._NamedTuple-class.html#dup\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedTuple.toStr\tpygeodesy.named._NamedTuple-class.html#toStr\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedTuple.units\tpygeodesy.named._NamedTuple-class.html#units\npygeodesy.named._NamedTuple.iterunits\tpygeodesy.named._NamedTuple-class.html#iterunits\npygeodesy.named._NamedTuple.iteritems\tpygeodesy.named._NamedTuple-class.html#iteritems\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._NamedTuple.items\tpygeodesy.named._NamedTuple-class.html#items\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedTuple.__delattr__\tpygeodesy.named._NamedTuple-class.html#__delattr__\npygeodesy.named._NamedTuple.__repr__\tpygeodesy.named._NamedTuple-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._NamedTuple.__hash__\tpygeodesy.named._NamedTuple-class.html#__hash__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.vector2d.Circum4Tuple._Units_\tpygeodesy.vector2d.Circum4Tuple-class.html#_Units_\npygeodesy.vector2d.Meeus2Tuple\tpygeodesy.vector2d.Meeus2Tuple-class.html\npygeodesy.named._NamedTuple.toRepr\tpygeodesy.named._NamedTuple-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._NamedTuple.toUnits\tpygeodesy.named._NamedTuple-class.html#toUnits\npygeodesy.named._NamedTuple._validate\tpygeodesy.named._NamedTuple-class.html#_validate\npygeodesy.named._NamedTuple.__str__\tpygeodesy.named._NamedTuple-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._NamedTuple._DOT_\tpygeodesy.named._NamedTuple-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._NamedTuple.reUnit\tpygeodesy.named._NamedTuple-class.html#reUnit\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.vector2d.Meeus2Tuple._Names_\tpygeodesy.vector2d.Meeus2Tuple-class.html#_Names_\npygeodesy.named._NamedTuple.__setattr__\tpygeodesy.named._NamedTuple-class.html#__setattr__\npygeodesy.named._NamedTuple.__new__\tpygeodesy.named._NamedTuple-class.html#__new__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._NamedTuple._validated\tpygeodesy.named._NamedTuple-class.html#_validated\npygeodesy.named._NamedTuple.__getattr__\tpygeodesy.named._NamedTuple-class.html#__getattr__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._NamedTuple._xtend\tpygeodesy.named._NamedTuple-class.html#_xtend\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._NamedTuple.dup\tpygeodesy.named._NamedTuple-class.html#dup\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedTuple.toStr\tpygeodesy.named._NamedTuple-class.html#toStr\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedTuple.units\tpygeodesy.named._NamedTuple-class.html#units\npygeodesy.named._NamedTuple.iterunits\tpygeodesy.named._NamedTuple-class.html#iterunits\npygeodesy.named._NamedTuple.iteritems\tpygeodesy.named._NamedTuple-class.html#iteritems\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._NamedTuple.items\tpygeodesy.named._NamedTuple-class.html#items\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedTuple.__delattr__\tpygeodesy.named._NamedTuple-class.html#__delattr__\npygeodesy.named._NamedTuple.__repr__\tpygeodesy.named._NamedTuple-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._NamedTuple.__hash__\tpygeodesy.named._NamedTuple-class.html#__hash__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.vector2d.Meeus2Tuple._Units_\tpygeodesy.vector2d.Meeus2Tuple-class.html#_Units_\npygeodesy.vector2d.Radii11Tuple\tpygeodesy.vector2d.Radii11Tuple-class.html\npygeodesy.named._NamedTuple.toRepr\tpygeodesy.named._NamedTuple-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._NamedTuple.toUnits\tpygeodesy.named._NamedTuple-class.html#toUnits\npygeodesy.named._NamedTuple._validate\tpygeodesy.named._NamedTuple-class.html#_validate\npygeodesy.named._NamedTuple.__str__\tpygeodesy.named._NamedTuple-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._NamedTuple._DOT_\tpygeodesy.named._NamedTuple-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._NamedTuple.reUnit\tpygeodesy.named._NamedTuple-class.html#reUnit\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.vector2d.Radii11Tuple._Names_\tpygeodesy.vector2d.Radii11Tuple-class.html#_Names_\npygeodesy.named._NamedTuple.__setattr__\tpygeodesy.named._NamedTuple-class.html#__setattr__\npygeodesy.named._NamedTuple.__new__\tpygeodesy.named._NamedTuple-class.html#__new__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._NamedTuple._validated\tpygeodesy.named._NamedTuple-class.html#_validated\npygeodesy.named._NamedTuple.__getattr__\tpygeodesy.named._NamedTuple-class.html#__getattr__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._NamedTuple._xtend\tpygeodesy.named._NamedTuple-class.html#_xtend\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._NamedTuple.dup\tpygeodesy.named._NamedTuple-class.html#dup\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedTuple.toStr\tpygeodesy.named._NamedTuple-class.html#toStr\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedTuple.units\tpygeodesy.named._NamedTuple-class.html#units\npygeodesy.named._NamedTuple.iterunits\tpygeodesy.named._NamedTuple-class.html#iterunits\npygeodesy.named._NamedTuple.iteritems\tpygeodesy.named._NamedTuple-class.html#iteritems\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._NamedTuple.items\tpygeodesy.named._NamedTuple-class.html#items\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedTuple.__delattr__\tpygeodesy.named._NamedTuple-class.html#__delattr__\npygeodesy.named._NamedTuple.__repr__\tpygeodesy.named._NamedTuple-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._NamedTuple.__hash__\tpygeodesy.named._NamedTuple-class.html#__hash__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.vector2d.Radii11Tuple._Units_\tpygeodesy.vector2d.Radii11Tuple-class.html#_Units_\npygeodesy.vector2d.Soddy4Tuple\tpygeodesy.vector2d.Soddy4Tuple-class.html\npygeodesy.named._NamedTuple.toRepr\tpygeodesy.named._NamedTuple-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._NamedTuple.toUnits\tpygeodesy.named._NamedTuple-class.html#toUnits\npygeodesy.named._NamedTuple._validate\tpygeodesy.named._NamedTuple-class.html#_validate\npygeodesy.named._NamedTuple.__str__\tpygeodesy.named._NamedTuple-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._NamedTuple._DOT_\tpygeodesy.named._NamedTuple-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._NamedTuple.reUnit\tpygeodesy.named._NamedTuple-class.html#reUnit\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.vector2d.Soddy4Tuple._Names_\tpygeodesy.vector2d.Soddy4Tuple-class.html#_Names_\npygeodesy.named._NamedTuple.__setattr__\tpygeodesy.named._NamedTuple-class.html#__setattr__\npygeodesy.named._NamedTuple.__new__\tpygeodesy.named._NamedTuple-class.html#__new__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._NamedTuple._validated\tpygeodesy.named._NamedTuple-class.html#_validated\npygeodesy.named._NamedTuple.__getattr__\tpygeodesy.named._NamedTuple-class.html#__getattr__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._NamedTuple._xtend\tpygeodesy.named._NamedTuple-class.html#_xtend\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._NamedTuple.dup\tpygeodesy.named._NamedTuple-class.html#dup\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedTuple.toStr\tpygeodesy.named._NamedTuple-class.html#toStr\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedTuple.units\tpygeodesy.named._NamedTuple-class.html#units\npygeodesy.named._NamedTuple.iterunits\tpygeodesy.named._NamedTuple-class.html#iterunits\npygeodesy.named._NamedTuple.iteritems\tpygeodesy.named._NamedTuple-class.html#iteritems\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._NamedTuple.items\tpygeodesy.named._NamedTuple-class.html#items\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedTuple.__delattr__\tpygeodesy.named._NamedTuple-class.html#__delattr__\npygeodesy.named._NamedTuple.__repr__\tpygeodesy.named._NamedTuple-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._NamedTuple.__hash__\tpygeodesy.named._NamedTuple-class.html#__hash__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.vector2d.Soddy4Tuple._Units_\tpygeodesy.vector2d.Soddy4Tuple-class.html#_Units_\npygeodesy.vector2d.Triaxum5Tuple\tpygeodesy.vector2d.Triaxum5Tuple-class.html\npygeodesy.named._NamedTuple.toRepr\tpygeodesy.named._NamedTuple-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._NamedTuple.toUnits\tpygeodesy.named._NamedTuple-class.html#toUnits\npygeodesy.named._NamedTuple._validate\tpygeodesy.named._NamedTuple-class.html#_validate\npygeodesy.named._NamedTuple.__str__\tpygeodesy.named._NamedTuple-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._NamedTuple._DOT_\tpygeodesy.named._NamedTuple-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._NamedTuple.reUnit\tpygeodesy.named._NamedTuple-class.html#reUnit\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.vector2d.Triaxum5Tuple._Names_\tpygeodesy.vector2d.Triaxum5Tuple-class.html#_Names_\npygeodesy.named._NamedTuple.__setattr__\tpygeodesy.named._NamedTuple-class.html#__setattr__\npygeodesy.named._NamedTuple.__new__\tpygeodesy.named._NamedTuple-class.html#__new__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._NamedTuple._validated\tpygeodesy.named._NamedTuple-class.html#_validated\npygeodesy.named._NamedTuple.__getattr__\tpygeodesy.named._NamedTuple-class.html#__getattr__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._NamedTuple._xtend\tpygeodesy.named._NamedTuple-class.html#_xtend\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._NamedTuple.dup\tpygeodesy.named._NamedTuple-class.html#dup\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedTuple.toStr\tpygeodesy.named._NamedTuple-class.html#toStr\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedTuple.units\tpygeodesy.named._NamedTuple-class.html#units\npygeodesy.named._NamedTuple.iterunits\tpygeodesy.named._NamedTuple-class.html#iterunits\npygeodesy.named._NamedTuple.iteritems\tpygeodesy.named._NamedTuple-class.html#iteritems\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._NamedTuple.items\tpygeodesy.named._NamedTuple-class.html#items\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedTuple.__delattr__\tpygeodesy.named._NamedTuple-class.html#__delattr__\npygeodesy.named._NamedTuple.__repr__\tpygeodesy.named._NamedTuple-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._NamedTuple.__hash__\tpygeodesy.named._NamedTuple-class.html#__hash__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.vector2d.Triaxum5Tuple._Units_\tpygeodesy.vector2d.Triaxum5Tuple-class.html#_Units_\npygeodesy.vector3d.Vector3d\tpygeodesy.vector3d.Vector3d-class.html\npygeodesy.vector3d.Vector3d.toCartesian\tpygeodesy.vector3d.Vector3d-class.html#toCartesian\npygeodesy.vector3dBase.Vector3dBase.__int__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__int__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedBase.__str__\tpygeodesy.named._NamedBase-class.html#__str__\npygeodesy.vector3dBase.Vector3dBase.__imatmul__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__imatmul__\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.vector3dBase.Vector3dBase.__rdiv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rdiv__\npygeodesy.vector3dBase.Vector3dBase.__rmul__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rmul__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.vector3dBase.Vector3dBase.__lt__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__lt__\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.vector3dBase.Vector3dBase.__cmp__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__cmp__\npygeodesy.vector3d.Vector3d.nearestOn\tpygeodesy.vector3d.Vector3d-class.html#nearestOn\npygeodesy.vector3dBase.Vector3dBase.minus_\tpygeodesy.vector3dBase.Vector3dBase-class.html#minus_\npygeodesy.vector3dBase.Vector3dBase.__rfloordiv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rfloordiv__\npygeodesy.vector3dBase.Vector3dBase.crosserrors\tpygeodesy.vector3dBase.Vector3dBase-class.html#crosserrors\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.vector3dBase.Vector3dBase.rotateAround\tpygeodesy.vector3dBase.Vector3dBase-class.html#rotateAround\npygeodesy.vector3dBase.Vector3dBase.toStr\tpygeodesy.vector3dBase.Vector3dBase-class.html#toStr\npygeodesy.vector3dBase.Vector3dBase._roty\tpygeodesy.vector3dBase.Vector3dBase-class.html#_roty\npygeodesy.vector3dBase.Vector3dBase.angleTo\tpygeodesy.vector3dBase.Vector3dBase-class.html#angleTo\npygeodesy.vector3dBase.Vector3dBase.__pow__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__pow__\npygeodesy.vector3dBase.Vector3dBase.__gt__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__gt__\npygeodesy.vector3dBase.Vector3dBase.__bool__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__bool__\npygeodesy.vector3dBase.Vector3dBase.x2y2z23\tpygeodesy.vector3dBase.Vector3dBase-class.html#x2y2z23\npygeodesy.vector3dBase.Vector3dBase.rotate\tpygeodesy.vector3dBase.Vector3dBase-class.html#rotate\npygeodesy.vector3dBase.Vector3dBase.__nonzero__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__nonzero__\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.vector3dBase.Vector3dBase._ll\tpygeodesy.vector3dBase.Vector3dBase-class.html#_ll\npygeodesy.vector3dBase.Vector3dBase._plus\tpygeodesy.vector3dBase.Vector3dBase-class.html#_plus\npygeodesy.vector3dBase.Vector3dBase.__mod__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__mod__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.vector3dBase.Vector3dBase.x\tpygeodesy.vector3dBase.Vector3dBase-class.html#x\npygeodesy.vector3dBase.Vector3dBase.__long__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__long__\npygeodesy.vector3dBase.Vector3dBase.cmp\tpygeodesy.vector3dBase.Vector3dBase-class.html#cmp\npygeodesy.vector3dBase.Vector3dBase.homogeneous\tpygeodesy.vector3dBase.Vector3dBase-class.html#homogeneous\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.vector3dBase.Vector3dBase.plus_\tpygeodesy.vector3dBase.Vector3dBase-class.html#plus_\npygeodesy.vector3dBase.Vector3dBase.__truediv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__truediv__\npygeodesy.vector3d.Vector3d.trilaterate2d2\tpygeodesy.vector3d.Vector3d-class.html#trilaterate2d2\npygeodesy.vector3dBase.Vector3dBase.euclid\tpygeodesy.vector3dBase.Vector3dBase-class.html#euclid\npygeodesy.vector3dBase.Vector3dBase._minus\tpygeodesy.vector3dBase.Vector3dBase-class.html#_minus\npygeodesy.vector3d.Vector3d.trilaterate3d2\tpygeodesy.vector3d.Vector3d-class.html#trilaterate3d2\npygeodesy.vector3dBase.Vector3dBase.__rmod__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rmod__\npygeodesy.vector3dBase.Vector3dBase._crosserrors\tpygeodesy.vector3dBase.Vector3dBase-class.html#_crosserrors\npygeodesy.vector3dBase.Vector3dBase._mapped\tpygeodesy.vector3dBase.Vector3dBase-class.html#_mapped\npygeodesy.vector3dBase.Vector3dBase.sum\tpygeodesy.vector3dBase.Vector3dBase-class.html#sum\npygeodesy.vector3dBase.Vector3dBase._other_cmp\tpygeodesy.vector3dBase.Vector3dBase-class.html#_other_cmp\npygeodesy.vector3dBase.Vector3dBase.isequalTo\tpygeodesy.vector3dBase.Vector3dBase-class.html#isequalTo\npygeodesy.vector3dBase.Vector3dBase.__ne__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__ne__\npygeodesy.vector3dBase.Vector3dBase.__ifloordiv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__ifloordiv__\npygeodesy.vector3dBase.Vector3dBase.dividedBy_\tpygeodesy.vector3dBase.Vector3dBase-class.html#dividedBy_\npygeodesy.vector3dBase.Vector3dBase.equals\tpygeodesy.vector3dBase.Vector3dBase-class.html#equals\npygeodesy.vector3dBase.Vector3dBase.__divmod__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__divmod__\npygeodesy.vector3d.Vector3d.nearestOn6\tpygeodesy.vector3d.Vector3d-class.html#nearestOn6\npygeodesy.vector3dBase.Vector3dBase.__rmatmul__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rmatmul__\npygeodesy.vector3dBase.Vector3dBase.floats\tpygeodesy.vector3dBase.Vector3dBase-class.html#floats\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.vector3d.Vector3d.meeus2\tpygeodesy.vector3d.Vector3d-class.html#meeus2\npygeodesy.vector3dBase.Vector3dBase.__imul__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__imul__\npygeodesy.vector3dBase.Vector3dBase.__trunc__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__trunc__\npygeodesy.vector3dBase.Vector3dBase.times\tpygeodesy.vector3dBase.Vector3dBase-class.html#times\npygeodesy.vector3dBase.Vector3dBase.length\tpygeodesy.vector3dBase.Vector3dBase-class.html#length\npygeodesy.vector3dBase.Vector3dBase.plus\tpygeodesy.vector3dBase.Vector3dBase-class.html#plus\npygeodesy.vector3dBase.Vector3dBase.__mul__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__mul__\npygeodesy.vector3dBase.Vector3dBase.__matmul__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__matmul__\npygeodesy.vector3d.Vector3d.circin6\tpygeodesy.vector3d.Vector3d-class.html#circin6\npygeodesy.named._NamedBase.toRepr\tpygeodesy.named._NamedBase-class.html#toRepr\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.vector3dBase.Vector3dBase.pow\tpygeodesy.vector3dBase.Vector3dBase-class.html#pow\npygeodesy.vector3dBase.Vector3dBase.xyz\tpygeodesy.vector3dBase.Vector3dBase-class.html#xyz\npygeodesy.vector3dBase.Vector3dBase.others\tpygeodesy.vector3dBase.Vector3dBase-class.html#others\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.vector3dBase.Vector3dBase.__rsub__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rsub__\npygeodesy.vector3dBase.Vector3dBase.ints\tpygeodesy.vector3dBase.Vector3dBase-class.html#ints\npygeodesy.vector3dBase.Vector3dBase.negate\tpygeodesy.vector3dBase.Vector3dBase-class.html#negate\npygeodesy.vector3dBase.Vector3dBase.apply\tpygeodesy.vector3dBase.Vector3dBase-class.html#apply\npygeodesy.vector3dBase.Vector3dBase.equirectangular\tpygeodesy.vector3dBase.Vector3dBase-class.html#equirectangular\npygeodesy.vector3dBase.Vector3dBase.unit\tpygeodesy.vector3dBase.Vector3dBase-class.html#unit\npygeodesy.vector3dBase.Vector3dBase.__float__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__float__\npygeodesy.vector3dBase.Vector3dBase.__rpow__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rpow__\npygeodesy.vector3d.Vector3d.soddy4\tpygeodesy.vector3d.Vector3d-class.html#soddy4\npygeodesy.vector3dBase.Vector3dBase._N_vector\tpygeodesy.vector3dBase.Vector3dBase-class.html#_N_vector\npygeodesy.vector3d.Vector3d.iscolinearWith\tpygeodesy.vector3d.Vector3d-class.html#iscolinearWith\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.vector3dBase.Vector3dBase.__itruediv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__itruediv__\npygeodesy.vector3dBase.Vector3dBase.dividedBy\tpygeodesy.vector3dBase.Vector3dBase-class.html#dividedBy\npygeodesy.vector3dBase.Vector3dBase.__isub__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__isub__\npygeodesy.vector3dBase.Vector3dBase.__rdivmod__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rdivmod__\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.vector3d.Vector3d.circum3\tpygeodesy.vector3d.Vector3d-class.html#circum3\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.vector3dBase.Vector3dBase.__eq__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__eq__\npygeodesy.vector3dBase.Vector3dBase.__round__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__round__\npygeodesy.vector3dBase.Vector3dBase.bools\tpygeodesy.vector3dBase.Vector3dBase-class.html#bools\npygeodesy.vector3dBase.Vector3dBase.times_\tpygeodesy.vector3dBase.Vector3dBase-class.html#times_\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.vector3dBase.Vector3dBase.xyz3\tpygeodesy.vector3dBase.Vector3dBase-class.html#xyz3\npygeodesy.vector3dBase.Vector3dBase.__iadd__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__iadd__\npygeodesy.vector3d.Vector3d.circum4_\tpygeodesy.vector3d.Vector3d-class.html#circum4_\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.vector3dBase.Vector3dBase.__le__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__le__\npygeodesy.vector3dBase.Vector3dBase.__floordiv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__floordiv__\npygeodesy.vector3dBase.Vector3dBase.__hash__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__hash__\npygeodesy.vector3dBase.Vector3dBase.__sub__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__sub__\npygeodesy.vector3dBase.Vector3dBase.z\tpygeodesy.vector3dBase.Vector3dBase-class.html#z\npygeodesy.vector3dBase.Vector3dBase._xyz\tpygeodesy.vector3dBase.Vector3dBase-class.html#_xyz\npygeodesy.vector3dBase.Vector3dBase.minus\tpygeodesy.vector3dBase.Vector3dBase-class.html#minus\npygeodesy.vector3dBase.Vector3dBase.__ge__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__ge__\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.vector3d.Vector3d.bearing\tpygeodesy.vector3d.Vector3d-class.html#bearing\npygeodesy.vector3dBase.Vector3dBase.__rtruediv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rtruediv__\npygeodesy.vector3dBase.Vector3dBase.floorDividedBy_\tpygeodesy.vector3dBase.Vector3dBase-class.html#floorDividedBy_\npygeodesy.vector3dBase.Vector3dBase.x2y2z2\tpygeodesy.vector3dBase.Vector3dBase-class.html#x2y2z2\npygeodesy.vector3dBase.Vector3dBase.__radd__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__radd__\npygeodesy.vector3d.Vector3d.parse\tpygeodesy.vector3d.Vector3d-class.html#parse\npygeodesy.vector3dBase.Vector3dBase.floorDividedBy\tpygeodesy.vector3dBase.Vector3dBase-class.html#floorDividedBy\npygeodesy.vector3dBase.Vector3dBase.__floor__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__floor__\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.vector3dBase.Vector3dBase.__init__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__init__\npygeodesy.vector3dBase.Vector3dBase.__imod__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__imod__\npygeodesy.vector3dBase.Vector3dBase.fabs\tpygeodesy.vector3dBase.Vector3dBase-class.html#fabs\npygeodesy.vector3dBase.Vector3dBase._times\tpygeodesy.vector3dBase.Vector3dBase-class.html#_times\npygeodesy.vector3d.Vector3d.radii11\tpygeodesy.vector3d.Vector3d-class.html#radii11\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.vector3dBase.Vector3dBase.cross\tpygeodesy.vector3dBase.Vector3dBase-class.html#cross\npygeodesy.vector3dBase.Vector3dBase.__pos__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__pos__\npygeodesy.vector3dBase.Vector3dBase.__abs__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__abs__\npygeodesy.vector3dBase.Vector3dBase.to3xyz\tpygeodesy.vector3dBase.Vector3dBase-class.html#to3xyz\npygeodesy.named._NamedBase.__repr__\tpygeodesy.named._NamedBase-class.html#__repr__\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.vector3dBase.Vector3dBase.__idiv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__idiv__\npygeodesy.vector3dBase.Vector3dBase._united\tpygeodesy.vector3dBase.Vector3dBase-class.html#_united\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.vector3dBase.Vector3dBase._fromll\tpygeodesy.vector3dBase.Vector3dBase-class.html#_fromll\npygeodesy.vector3dBase.Vector3dBase.__add__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__add__\npygeodesy.vector3dBase.Vector3dBase.intermediateTo\tpygeodesy.vector3dBase.Vector3dBase-class.html#intermediateTo\npygeodesy.vector3dBase.Vector3dBase.length2\tpygeodesy.vector3dBase.Vector3dBase-class.html#length2\npygeodesy.vector3dBase.Vector3dBase.isconjugateTo\tpygeodesy.vector3dBase.Vector3dBase-class.html#isconjugateTo\npygeodesy.vector3dBase.Vector3dBase.__ipow__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__ipow__\npygeodesy.vector3dBase.Vector3dBase.__div__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__div__\npygeodesy.vector3dBase.Vector3dBase.__ceil__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__ceil__\npygeodesy.vector3dBase.Vector3dBase.__neg__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__neg__\npygeodesy.vector3dBase.Vector3dBase.y\tpygeodesy.vector3dBase.Vector3dBase-class.html#y\npygeodesy.vector3dBase.Vector3dBase.dot\tpygeodesy.vector3dBase.Vector3dBase-class.html#dot\npygeodesy.vector3dBase.Vector3dBase\tpygeodesy.vector3dBase.Vector3dBase-class.html\npygeodesy.vector3dBase.Vector3dBase.__int__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__int__\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._NamedBase.__str__\tpygeodesy.named._NamedBase-class.html#__str__\npygeodesy.vector3dBase.Vector3dBase.__imatmul__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__imatmul__\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.vector3dBase.Vector3dBase.__rdiv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rdiv__\npygeodesy.vector3dBase.Vector3dBase.__rmul__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rmul__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.vector3dBase.Vector3dBase.__lt__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__lt__\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.vector3dBase.Vector3dBase.__cmp__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__cmp__\npygeodesy.vector3dBase.Vector3dBase.minus_\tpygeodesy.vector3dBase.Vector3dBase-class.html#minus_\npygeodesy.vector3dBase.Vector3dBase.__rfloordiv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rfloordiv__\npygeodesy.vector3dBase.Vector3dBase.crosserrors\tpygeodesy.vector3dBase.Vector3dBase-class.html#crosserrors\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.vector3dBase.Vector3dBase.rotateAround\tpygeodesy.vector3dBase.Vector3dBase-class.html#rotateAround\npygeodesy.vector3dBase.Vector3dBase.toStr\tpygeodesy.vector3dBase.Vector3dBase-class.html#toStr\npygeodesy.vector3dBase.Vector3dBase._roty\tpygeodesy.vector3dBase.Vector3dBase-class.html#_roty\npygeodesy.vector3dBase.Vector3dBase.angleTo\tpygeodesy.vector3dBase.Vector3dBase-class.html#angleTo\npygeodesy.vector3dBase.Vector3dBase.__pow__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__pow__\npygeodesy.vector3dBase.Vector3dBase.__gt__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__gt__\npygeodesy.vector3dBase.Vector3dBase.__bool__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__bool__\npygeodesy.vector3dBase.Vector3dBase.x2y2z23\tpygeodesy.vector3dBase.Vector3dBase-class.html#x2y2z23\npygeodesy.vector3dBase.Vector3dBase.rotate\tpygeodesy.vector3dBase.Vector3dBase-class.html#rotate\npygeodesy.vector3dBase.Vector3dBase.__nonzero__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__nonzero__\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.vector3dBase.Vector3dBase._other_cmp\tpygeodesy.vector3dBase.Vector3dBase-class.html#_other_cmp\npygeodesy.vector3dBase.Vector3dBase._plus\tpygeodesy.vector3dBase.Vector3dBase-class.html#_plus\npygeodesy.vector3dBase.Vector3dBase.__mod__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__mod__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.vector3dBase.Vector3dBase.x\tpygeodesy.vector3dBase.Vector3dBase-class.html#x\npygeodesy.vector3dBase.Vector3dBase.__long__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__long__\npygeodesy.vector3dBase.Vector3dBase.cmp\tpygeodesy.vector3dBase.Vector3dBase-class.html#cmp\npygeodesy.vector3dBase.Vector3dBase.homogeneous\tpygeodesy.vector3dBase.Vector3dBase-class.html#homogeneous\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.vector3dBase.Vector3dBase.plus_\tpygeodesy.vector3dBase.Vector3dBase-class.html#plus_\npygeodesy.vector3dBase.Vector3dBase.__truediv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__truediv__\npygeodesy.vector3dBase.Vector3dBase.euclid\tpygeodesy.vector3dBase.Vector3dBase-class.html#euclid\npygeodesy.vector3dBase.Vector3dBase._minus\tpygeodesy.vector3dBase.Vector3dBase-class.html#_minus\npygeodesy.vector3dBase.Vector3dBase.__rmod__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rmod__\npygeodesy.vector3dBase.Vector3dBase._crosserrors\tpygeodesy.vector3dBase.Vector3dBase-class.html#_crosserrors\npygeodesy.vector3dBase.Vector3dBase._mapped\tpygeodesy.vector3dBase.Vector3dBase-class.html#_mapped\npygeodesy.vector3dBase.Vector3dBase.sum\tpygeodesy.vector3dBase.Vector3dBase-class.html#sum\npygeodesy.vector3dBase.Vector3dBase._ll\tpygeodesy.vector3dBase.Vector3dBase-class.html#_ll\npygeodesy.vector3dBase.Vector3dBase.__idiv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__idiv__\npygeodesy.vector3dBase.Vector3dBase.__ne__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__ne__\npygeodesy.vector3dBase.Vector3dBase.__ifloordiv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__ifloordiv__\npygeodesy.vector3dBase.Vector3dBase.__floordiv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__floordiv__\npygeodesy.vector3dBase.Vector3dBase.equals\tpygeodesy.vector3dBase.Vector3dBase-class.html#equals\npygeodesy.vector3dBase.Vector3dBase.__divmod__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__divmod__\npygeodesy.vector3dBase.Vector3dBase.others\tpygeodesy.vector3dBase.Vector3dBase-class.html#others\npygeodesy.vector3dBase.Vector3dBase.__rmatmul__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rmatmul__\npygeodesy.vector3dBase.Vector3dBase.floats\tpygeodesy.vector3dBase.Vector3dBase-class.html#floats\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.vector3dBase.Vector3dBase.__imul__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__imul__\npygeodesy.vector3dBase.Vector3dBase.__trunc__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__trunc__\npygeodesy.vector3dBase.Vector3dBase.times\tpygeodesy.vector3dBase.Vector3dBase-class.html#times\npygeodesy.vector3dBase.Vector3dBase.length\tpygeodesy.vector3dBase.Vector3dBase-class.html#length\npygeodesy.vector3dBase.Vector3dBase.plus\tpygeodesy.vector3dBase.Vector3dBase-class.html#plus\npygeodesy.vector3dBase.Vector3dBase.__mul__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__mul__\npygeodesy.vector3dBase.Vector3dBase.__matmul__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__matmul__\npygeodesy.named._NamedBase.toRepr\tpygeodesy.named._NamedBase-class.html#toRepr\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.vector3dBase.Vector3dBase.pow\tpygeodesy.vector3dBase.Vector3dBase-class.html#pow\npygeodesy.vector3dBase.Vector3dBase.xyz\tpygeodesy.vector3dBase.Vector3dBase-class.html#xyz\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.vector3dBase.Vector3dBase.__rsub__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rsub__\npygeodesy.vector3dBase.Vector3dBase.ints\tpygeodesy.vector3dBase.Vector3dBase-class.html#ints\npygeodesy.vector3dBase.Vector3dBase.negate\tpygeodesy.vector3dBase.Vector3dBase-class.html#negate\npygeodesy.vector3dBase.Vector3dBase.apply\tpygeodesy.vector3dBase.Vector3dBase-class.html#apply\npygeodesy.vector3dBase.Vector3dBase.equirectangular\tpygeodesy.vector3dBase.Vector3dBase-class.html#equirectangular\npygeodesy.vector3dBase.Vector3dBase.unit\tpygeodesy.vector3dBase.Vector3dBase-class.html#unit\npygeodesy.vector3dBase.Vector3dBase.__float__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__float__\npygeodesy.vector3dBase.Vector3dBase.__rpow__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rpow__\npygeodesy.vector3dBase.Vector3dBase._N_vector\tpygeodesy.vector3dBase.Vector3dBase-class.html#_N_vector\npygeodesy.vector3dBase.Vector3dBase.__abs__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__abs__\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.vector3dBase.Vector3dBase.__itruediv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__itruediv__\npygeodesy.vector3dBase.Vector3dBase.dividedBy\tpygeodesy.vector3dBase.Vector3dBase-class.html#dividedBy\npygeodesy.vector3dBase.Vector3dBase.__isub__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__isub__\npygeodesy.vector3dBase.Vector3dBase.__rdivmod__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rdivmod__\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.vector3dBase.Vector3dBase._united\tpygeodesy.vector3dBase.Vector3dBase-class.html#_united\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.vector3dBase.Vector3dBase.__eq__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__eq__\npygeodesy.vector3dBase.Vector3dBase.__round__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__round__\npygeodesy.vector3dBase.Vector3dBase.bools\tpygeodesy.vector3dBase.Vector3dBase-class.html#bools\npygeodesy.vector3dBase.Vector3dBase.times_\tpygeodesy.vector3dBase.Vector3dBase-class.html#times_\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.vector3dBase.Vector3dBase.xyz3\tpygeodesy.vector3dBase.Vector3dBase-class.html#xyz3\npygeodesy.vector3dBase.Vector3dBase.__iadd__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__iadd__\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.vector3dBase.Vector3dBase.__le__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__le__\npygeodesy.vector3dBase.Vector3dBase.dividedBy_\tpygeodesy.vector3dBase.Vector3dBase-class.html#dividedBy_\npygeodesy.vector3dBase.Vector3dBase.__hash__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__hash__\npygeodesy.vector3dBase.Vector3dBase.__sub__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__sub__\npygeodesy.vector3dBase.Vector3dBase.z\tpygeodesy.vector3dBase.Vector3dBase-class.html#z\npygeodesy.vector3dBase.Vector3dBase._xyz\tpygeodesy.vector3dBase.Vector3dBase-class.html#_xyz\npygeodesy.vector3dBase.Vector3dBase.minus\tpygeodesy.vector3dBase.Vector3dBase-class.html#minus\npygeodesy.vector3dBase.Vector3dBase.__ge__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__ge__\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.vector3dBase.Vector3dBase.__rtruediv__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__rtruediv__\npygeodesy.vector3dBase.Vector3dBase.floorDividedBy_\tpygeodesy.vector3dBase.Vector3dBase-class.html#floorDividedBy_\npygeodesy.vector3dBase.Vector3dBase.x2y2z2\tpygeodesy.vector3dBase.Vector3dBase-class.html#x2y2z2\npygeodesy.vector3dBase.Vector3dBase.__radd__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__radd__\npygeodesy.vector3dBase.Vector3dBase.floorDividedBy\tpygeodesy.vector3dBase.Vector3dBase-class.html#floorDividedBy\npygeodesy.vector3dBase.Vector3dBase.__floor__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__floor__\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.vector3dBase.Vector3dBase.__init__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__init__\npygeodesy.vector3dBase.Vector3dBase.__imod__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__imod__\npygeodesy.vector3dBase.Vector3dBase.fabs\tpygeodesy.vector3dBase.Vector3dBase-class.html#fabs\npygeodesy.vector3dBase.Vector3dBase._times\tpygeodesy.vector3dBase.Vector3dBase-class.html#_times\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.vector3dBase.Vector3dBase.cross\tpygeodesy.vector3dBase.Vector3dBase-class.html#cross\npygeodesy.vector3dBase.Vector3dBase.__pos__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__pos__\npygeodesy.vector3dBase.Vector3dBase.to3xyz\tpygeodesy.vector3dBase.Vector3dBase-class.html#to3xyz\npygeodesy.named._NamedBase.__repr__\tpygeodesy.named._NamedBase-class.html#__repr__\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.vector3dBase.Vector3dBase.isequalTo\tpygeodesy.vector3dBase.Vector3dBase-class.html#isequalTo\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.vector3dBase.Vector3dBase.y\tpygeodesy.vector3dBase.Vector3dBase-class.html#y\npygeodesy.vector3dBase.Vector3dBase.__add__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__add__\npygeodesy.vector3dBase.Vector3dBase.intermediateTo\tpygeodesy.vector3dBase.Vector3dBase-class.html#intermediateTo\npygeodesy.vector3dBase.Vector3dBase.length2\tpygeodesy.vector3dBase.Vector3dBase-class.html#length2\npygeodesy.vector3dBase.Vector3dBase.isconjugateTo\tpygeodesy.vector3dBase.Vector3dBase-class.html#isconjugateTo\npygeodesy.vector3dBase.Vector3dBase.__ipow__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__ipow__\npygeodesy.vector3dBase.Vector3dBase.__div__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__div__\npygeodesy.vector3dBase.Vector3dBase.__ceil__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__ceil__\npygeodesy.vector3dBase.Vector3dBase.__neg__\tpygeodesy.vector3dBase.Vector3dBase-class.html#__neg__\npygeodesy.vector3dBase.Vector3dBase._fromll\tpygeodesy.vector3dBase.Vector3dBase-class.html#_fromll\npygeodesy.vector3dBase.Vector3dBase.dot\tpygeodesy.vector3dBase.Vector3dBase-class.html#dot\npygeodesy.webmercator.EasNorRadius3Tuple\tpygeodesy.webmercator.EasNorRadius3Tuple-class.html\npygeodesy.named._NamedTuple.toRepr\tpygeodesy.named._NamedTuple-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._NamedTuple.toUnits\tpygeodesy.named._NamedTuple-class.html#toUnits\npygeodesy.named._NamedTuple._validate\tpygeodesy.named._NamedTuple-class.html#_validate\npygeodesy.named._NamedTuple.__str__\tpygeodesy.named._NamedTuple-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._NamedTuple._DOT_\tpygeodesy.named._NamedTuple-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._NamedTuple.reUnit\tpygeodesy.named._NamedTuple-class.html#reUnit\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.webmercator.EasNorRadius3Tuple._Names_\tpygeodesy.webmercator.EasNorRadius3Tuple-class.html#_Names_\npygeodesy.named._NamedTuple.__setattr__\tpygeodesy.named._NamedTuple-class.html#__setattr__\npygeodesy.named._NamedTuple.__new__\tpygeodesy.named._NamedTuple-class.html#__new__\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.named._NamedTuple._validated\tpygeodesy.named._NamedTuple-class.html#_validated\npygeodesy.named._NamedTuple.__getattr__\tpygeodesy.named._NamedTuple-class.html#__getattr__\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.named._NamedTuple._xtend\tpygeodesy.named._NamedTuple-class.html#_xtend\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._NamedTuple.dup\tpygeodesy.named._NamedTuple-class.html#dup\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedTuple.toStr\tpygeodesy.named._NamedTuple-class.html#toStr\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._NamedTuple.units\tpygeodesy.named._NamedTuple-class.html#units\npygeodesy.named._NamedTuple.iterunits\tpygeodesy.named._NamedTuple-class.html#iterunits\npygeodesy.named._NamedTuple.iteritems\tpygeodesy.named._NamedTuple-class.html#iteritems\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._NamedTuple.items\tpygeodesy.named._NamedTuple-class.html#items\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedTuple.__delattr__\tpygeodesy.named._NamedTuple-class.html#__delattr__\npygeodesy.named._NamedTuple.__repr__\tpygeodesy.named._NamedTuple-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._NamedTuple.__hash__\tpygeodesy.named._NamedTuple-class.html#__hash__\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.webmercator.EasNorRadius3Tuple._Units_\tpygeodesy.webmercator.EasNorRadius3Tuple-class.html#_Units_\npygeodesy.webmercator.WebMercatorError\tpygeodesy.webmercator.WebMercatorError-class.html\npygeodesy.webmercator.Wm\tpygeodesy.webmercator.Wm-class.html\npygeodesy.webmercator.Wm.toRepr\tpygeodesy.webmercator.Wm-class.html#toRepr\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.named._NamedBase._update\tpygeodesy.named._NamedBase-class.html#_update\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.named._NamedBase.__str__\tpygeodesy.named._NamedBase-class.html#__str__\npygeodesy.webmercator.Wm.datum\tpygeodesy.webmercator.Wm-class.html#datum\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.webmercator.Wm.parse\tpygeodesy.webmercator.Wm-class.html#parse\npygeodesy.webmercator.Wm.toLatLon\tpygeodesy.webmercator.Wm-class.html#toLatLon\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.webmercator.Wm.radius\tpygeodesy.webmercator.Wm-class.html#radius\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.webmercator.Wm.__init__\tpygeodesy.webmercator.Wm-class.html#__init__\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.webmercator.Wm.latlon\tpygeodesy.webmercator.Wm-class.html#latlon\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.webmercator.Wm.ellipsoid\tpygeodesy.webmercator.Wm-class.html#ellipsoid\npygeodesy.webmercator.Wm._x\tpygeodesy.webmercator.Wm-class.html#_x\npygeodesy.named._Named.__format__\tpygeodesy.named._Named-class.html#__format__\npygeodesy.webmercator.Wm.philam\tpygeodesy.webmercator.Wm-class.html#philam\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.webmercator.Wm.parseWM\tpygeodesy.webmercator.Wm-class.html#parseWM\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.webmercator.Wm._earths\tpygeodesy.webmercator.Wm-class.html#_earths\npygeodesy.webmercator.Wm._radius\tpygeodesy.webmercator.Wm-class.html#_radius\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.webmercator.Wm.latlon2\tpygeodesy.webmercator.Wm-class.html#latlon2\npygeodesy.webmercator.Wm.toStr\tpygeodesy.webmercator.Wm-class.html#toStr\npygeodesy.webmercator.Wm._datum\tpygeodesy.webmercator.Wm-class.html#_datum\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._NamedBase.others\tpygeodesy.named._NamedBase-class.html#others\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.webmercator.Wm._y\tpygeodesy.webmercator.Wm-class.html#_y\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.webmercator.Wm.to2ll\tpygeodesy.webmercator.Wm-class.html#to2ll\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._NamedBase.__repr__\tpygeodesy.named._NamedBase-class.html#__repr__\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.webmercator.Wm.y\tpygeodesy.webmercator.Wm-class.html#y\npygeodesy.webmercator.Wm.x\tpygeodesy.webmercator.Wm-class.html#x\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.wgrs.Georef\tpygeodesy.wgrs.Georef-class.html\npygeodesy.named._Named._notOverloaded\tpygeodesy.named._Named-class.html#_notOverloaded\npygeodesy.unitsBase.Str.__str__\tpygeodesy.unitsBase.Str-class.html#__str__\npygeodesy.named._Named.__imatmul__\tpygeodesy.named._Named-class.html#__imatmul__\npygeodesy.wgrs.Georef.toLatLon\tpygeodesy.wgrs.Georef-class.html#toLatLon\npygeodesy.named._Named.attrs\tpygeodesy.named._Named-class.html#attrs\npygeodesy.named._Named.classnaming\tpygeodesy.named._Named-class.html#classnaming\npygeodesy.named._Named._instr\tpygeodesy.named._Named-class.html#_instr\npygeodesy.unitsBase._NamedUnit._units\tpygeodesy.unitsBase._NamedUnit-class.html#_units\npygeodesy.named._Named._xnamed\tpygeodesy.named._Named-class.html#_xnamed\npygeodesy.wgrs.Georef._decoded5\tpygeodesy.wgrs.Georef-class.html#_decoded5\npygeodesy.unitsBase.Str.__call__\tpygeodesy.unitsBase.Str-class.html#__call__\npygeodesy.named._Named._name__\tpygeodesy.named._Named-class.html#_name__\npygeodesy.unitsBase.Str.toStr\tpygeodesy.unitsBase.Str-class.html#toStr\npygeodesy.named._Named.methodname\tpygeodesy.named._Named-class.html#methodname\npygeodesy.named._Named.name\tpygeodesy.named._Named-class.html#name\npygeodesy.named._Named.renamed\tpygeodesy.named._Named-class.html#renamed\npygeodesy.named._Named._xrenamed\tpygeodesy.named._Named-class.html#_xrenamed\npygeodesy.unitsBase.Str.join_\tpygeodesy.unitsBase.Str-class.html#join_\npygeodesy.unitsBase._NamedUnit._arg_name_arg2\tpygeodesy.unitsBase._NamedUnit-class.html#_arg_name_arg2\npygeodesy.unitsBase.Str.toRepr\tpygeodesy.unitsBase.Str-class.html#toRepr\npygeodesy.named._Named._name1__\tpygeodesy.named._Named-class.html#_name1__\npygeodesy.wgrs.Georef.radius\tpygeodesy.wgrs.Georef-class.html#radius\npygeodesy.named._Named.sizeof\tpygeodesy.named._Named-class.html#sizeof\npygeodesy.wgrs.Georef.latlon\tpygeodesy.wgrs.Georef-class.html#latlon\npygeodesy.unitsBase._NamedUnit._toRepr\tpygeodesy.unitsBase._NamedUnit-class.html#_toRepr\npygeodesy.named._Named.__rmatmul__\tpygeodesy.named._Named-class.html#__rmatmul__\npygeodesy.named._Named.named3\tpygeodesy.named._Named-class.html#named3\npygeodesy.named._Named.named2\tpygeodesy.named._Named-class.html#named2\npygeodesy.named._Named.named4\tpygeodesy.named._Named-class.html#named4\npygeodesy.named._Named._name\tpygeodesy.named._Named-class.html#_name\npygeodesy.named._Named.__matmul__\tpygeodesy.named._Named-class.html#__matmul__\npygeodesy.named._Named.named\tpygeodesy.named._Named-class.html#named\npygeodesy.wgrs.Georef.height\tpygeodesy.wgrs.Georef-class.html#height\npygeodesy.named._Named.classname\tpygeodesy.named._Named-class.html#classname\npygeodesy.named._Named._DOT_\tpygeodesy.named._Named-class.html#_DOT_\npygeodesy.named._Named.classof\tpygeodesy.named._Named-class.html#classof\npygeodesy.unitsBase._NamedUnit._std_repr\tpygeodesy.unitsBase._NamedUnit-class.html#_std_repr\npygeodesy.unitsBase._NamedUnit._Error\tpygeodesy.unitsBase._NamedUnit-class.html#_Error\npygeodesy.named._Named._notImplemented\tpygeodesy.named._Named-class.html#_notImplemented\npygeodesy.wgrs.Georef.precision\tpygeodesy.wgrs.Georef-class.html#precision\npygeodesy.named._Named.dup\tpygeodesy.named._Named-class.html#dup\npygeodesy.named._Named.copy\tpygeodesy.named._Named-class.html#copy\npygeodesy.wgrs.Georef.latlonheight\tpygeodesy.wgrs.Georef-class.html#latlonheight\npygeodesy.wgrs.Georef.decoded3\tpygeodesy.wgrs.Georef-class.html#decoded3\npygeodesy.named._Named.iteration\tpygeodesy.named._Named-class.html#iteration\npygeodesy.wgrs.Georef.decoded5\tpygeodesy.wgrs.Georef-class.html#decoded5\npygeodesy.named._Named.typename\tpygeodesy.named._Named-class.html#typename\npygeodesy.named._Named.rename\tpygeodesy.named._Named-class.html#rename\npygeodesy.unitsBase._NamedUnit.std_repr\tpygeodesy.unitsBase._NamedUnit-class.html#std_repr\npygeodesy.wgrs.Georef.__new__\tpygeodesy.wgrs.Georef-class.html#__new__\npygeodesy.named._Named._classnaming\tpygeodesy.named._Named-class.html#_classnaming\npygeodesy.unitsBase._NamedUnit.units\tpygeodesy.unitsBase._NamedUnit-class.html#units\npygeodesy.unitsBase.Str.__repr__\tpygeodesy.unitsBase.Str-class.html#__repr__\npygeodesy.named._Named._iteration\tpygeodesy.named._Named-class.html#_iteration\npygeodesy.named._Named.toStr2\tpygeodesy.named._Named-class.html#toStr2\npygeodesy.wgrs.WGRSError\tpygeodesy.wgrs.WGRSError-class.html\n"
  },
  {
    "path": "docs/class-tree.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>Class Hierarchy</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th bgcolor=\"#70b0f0\" class=\"navbar-select\"\n          >&nbsp;&nbsp;&nbsp;Trees&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">&nbsp;</td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"class-tree.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<center><b>\n [ <a href=\"module-tree.html\">Module Hierarchy</a>\n | <a href=\"class-tree.html\">Class Hierarchy</a> ]\n</b></center><br />\n<h1 class=\"epydoc\">Class Hierarchy</h1>\n<ul class=\"nomargin-top\">\n    <li> <strong class=\"uidlink\">object</strong>:\n      <em class=\"summary\">The most base type</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.auxilats.auxDST.AuxDST-class.html\">pygeodesy.auxilats.auxDST.AuxDST</a></strong>:\n      <em class=\"summary\">Discrete Sine Transforms (DST) for <i>Auxiliary</i> latitudes.</em>\n    </li>\n    <li> <strong class=\"uidlink\">exceptions.BaseException</strong>:\n      <em class=\"summary\">Common base class for all exceptions</em>\n    <ul>\n    <li> <strong class=\"uidlink\">exceptions.Exception</strong>:\n      <em class=\"summary\">Common base class for all non-exit exceptions.</em>\n    <ul>\n    <li> <strong class=\"uidlink\">exceptions.StandardError</strong>:\n      <em class=\"summary\">Base class for all standard Python exceptions that do not represent\n        interpreter exiting.</em>\n    <ul>\n    <li> <strong class=\"uidlink\">exceptions.AttributeError</strong>:\n      <em class=\"summary\">Attribute not found.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.lazily.LazyAttributeError-class.html\">pygeodesy.lazily.LazyAttributeError</a></strong>:\n      <em class=\"summary\">Raised if a <code>lazily imported</code> attribute is missing or \n        invalid.</em>\n    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\">exceptions.ImportError</strong>:\n      <em class=\"summary\">Import can't find module, or can't find name in module.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.lazily.LazyImportError-class.html\">pygeodesy.lazily.LazyImportError</a></strong>:\n      <em class=\"summary\">Raised if <code>lazy import</code> is not supported, disabled or \n        failed.</em>\n    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\">exceptions.ValueError</strong>:\n      <em class=\"summary\">Inappropriate argument value (of correct type).</em>\n    <ul>\n    <li> <strong class=\"uidlink\">pygeodesy.errors._ValueError</strong>:\n      <em class=\"summary\">(INTERNAL) Format a <code>ValueError</code> with/-out exception \n        chaining.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.albers.AlbersError-class.html\">pygeodesy.albers.AlbersError</a></strong>:\n      <em class=\"summary\">An <a href=\"pygeodesy.albers.AlbersEqualArea-class.html\" \n        class=\"link\">AlbersEqualArea</a>, <a \n        href=\"pygeodesy.albers.AlbersEqualArea2-class.html\" \n        class=\"link\">AlbersEqualArea2</a>, <a \n        href=\"pygeodesy.albers.AlbersEqualArea4-class.html\" \n        class=\"link\">AlbersEqualArea4</a>, <a \n        href=\"pygeodesy.albers.AlbersEqualAreaCylindrical-class.html\" \n        class=\"link\">AlbersEqualAreaCylindrical</a>, <a \n        href=\"pygeodesy.albers.AlbersEqualAreaNorth-class.html\" \n        class=\"link\">AlbersEqualAreaNorth</a>, <a \n        href=\"pygeodesy.albers.AlbersEqualAreaSouth-class.html\" \n        class=\"link\">AlbersEqualAreaSouth</a> or <a \n        href=\"pygeodesy.albers.Albers7Tuple-class.html\" \n        class=\"link\">Albers7Tuple</a> issue.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.ltp.AttitudeError-class.html\">pygeodesy.ltp.AttitudeError</a></strong>:\n      <em class=\"summary\">An <a href=\"pygeodesy.ltp.Attitude-class.html\" \n        class=\"link\">Attitude</a> or <a \n        href=\"pygeodesy.ltpTuples.Attitude4Tuple-class.html\" \n        class=\"link\">Attitude4Tuple</a> issue.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.errors.AuxError-class.html\">pygeodesy.errors.AuxError</a></strong>:\n      <em class=\"summary\">Error raised for a <a href=\"pygeodesy.rhumb.aux_-module.html\" \n        class=\"link\" onclick=\"show_private();\">rhumb.aux_</a>, \n        <code>Aux</code>, <code>AuxDLat</code> or <code>AuxLat</code> \n        issue.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.azimuthal.AzimuthalError-class.html\">pygeodesy.azimuthal.AzimuthalError</a></strong>:\n      <em class=\"summary\">An azimuthal <a href=\"pygeodesy.azimuthal.Equidistant-class.html\" \n        class=\"link\">Equidistant</a>, <a \n        href=\"pygeodesy.azimuthal.EquidistantKarney-class.html\" \n        class=\"link\">EquidistantKarney</a>, <a \n        href=\"pygeodesy.azimuthal.Gnomonic-class.html\" \n        class=\"link\">Gnomonic</a>, <a \n        href=\"pygeodesy.azimuthal.LambertEqualArea-class.html\" \n        class=\"link\">LambertEqualArea</a>, <a \n        href=\"pygeodesy.azimuthal.Orthographic-class.html\" \n        class=\"link\">Orthographic</a>, <a \n        href=\"pygeodesy.azimuthal.Stereographic-class.html\" \n        class=\"link\">Stereographic</a> or <a \n        href=\"pygeodesy.azimuthal.Azimuthal7Tuple-class.html\" \n        class=\"link\">Azimuthal7Tuple</a> issue.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.css.CSSError-class.html\">pygeodesy.css.CSSError</a></strong>:\n      <em class=\"summary\">Cassini-Soldner (CSS) conversion or other <a \n        href=\"pygeodesy.css.Css-class.html\" class=\"link\">Css</a> issue.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.errors.ClipError-class.html\">pygeodesy.errors.ClipError</a></strong>:\n      <em class=\"summary\">Clip box or clip region issue.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.errors.CrossError-class.html\">pygeodesy.errors.CrossError</a></strong>:\n      <em class=\"summary\">Error raised for zero or near-zero vectorial cross products, \n        occurring for coincident or colinear points, lines or bearings.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.epsg.EPSGError-class.html\">pygeodesy.epsg.EPSGError</a></strong>:\n      <em class=\"summary\">EPSG encode, decode or other <a \n        href=\"pygeodesy.epsg.Epsg-class.html\" class=\"link\">Epsg</a> issue.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.ecef.EcefError-class.html\">pygeodesy.ecef.EcefError</a></strong>:\n      <em class=\"summary\">An ECEF or <code>Ecef*</code> related issue.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.ellipses.EllipseError-class.html\">pygeodesy.ellipses.EllipseError</a></strong>:\n      <em class=\"summary\">Raised for any <a href=\"pygeodesy.ellipses.Ellipse-class.html\" \n        class=\"link\">Ellipse</a> or <code>ellipses</code> issue.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.elliptic.EllipticError-class.html\">pygeodesy.elliptic.EllipticError</a></strong>:\n      <em class=\"summary\">Elliptic function, integral, convergence or other <a \n        href=\"pygeodesy.elliptic.Elliptic-class.html\" \n        class=\"link\">Elliptic</a> issue.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.gars.GARSError-class.html\">pygeodesy.gars.GARSError</a></strong>:\n      <em class=\"summary\">Global Area Reference System (GARS) encode, decode or other <a \n        href=\"pygeodesy.gars.Garef-class.html\" class=\"link\">Garef</a> \n        issue.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.errors.GeodesicError-class.html\">pygeodesy.errors.GeodesicError</a></strong>:\n      <em class=\"summary\">Error raised for convergence or other issues in <a \n        href=\"pygeodesy.geodesicx-module.html\" class=\"link\">geodesicx</a>, \n        <a href=\"pygeodesy.geodesicw-module.html\" \n        class=\"link\">geodesicw</a>, <a \n        href=\"pygeodesy.geodsolve-module.html\" class=\"link\">geodsolve</a> \n        or <a href=\"pygeodesy.karney-module.html\" class=\"link\">karney</a>.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.geod3solve.Geodesic3Error-class.html\">pygeodesy.geod3solve.Geodesic3Error</a></strong>:\n      <em class=\"summary\">Error raised for issues in <a \n        href=\"pygeodesy.geod3solve-module.html\" \n        class=\"link\">geod3solve</a>.</em>\n    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.geohash.GeohashError-class.html\">pygeodesy.geohash.GeohashError</a></strong>:\n      <em class=\"summary\">Geohash encode, decode or other <a \n        href=\"pygeodesy.geohash.Geohash-class.html\" \n        class=\"link\">Geohash</a> issue.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.errors.IntersectionError-class.html\">pygeodesy.errors.IntersectionError</a></strong>:\n      <em class=\"summary\">Error raised for line or circle intersection issues.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.ktm.KTMError-class.html\">pygeodesy.ktm.KTMError</a></strong>:\n      <em class=\"summary\">Error raised for <a \n        href=\"pygeodesy.ktm.KTransverseMercator-class.html\" \n        class=\"link\">KTransverseMercator</a> and <a \n        href=\"pygeodesy.ktm.KTransverseMercator-class.html#forward\" \n        class=\"link\">KTransverseMercator.forward</a> issues.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.lcc.LCCError-class.html\">pygeodesy.lcc.LCCError</a></strong>:\n      <em class=\"summary\">Lambert Conformal Conic <code>LCC</code> or other <a \n        href=\"pygeodesy.lcc.Lcc-class.html\" class=\"link\">Lcc</a> issue.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.errors.LenError-class.html\">pygeodesy.errors.LenError</a></strong>:\n      <em class=\"summary\">Error raised for mis-matching <code>len</code> values.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.errors.LimitError-class.html\">pygeodesy.errors.LimitError</a></strong>:\n      <em class=\"summary\">Error raised for lat- or longitudinal values or deltas exceeding \n        the given <b><code>limit</code></b> in functions <a \n        href=\"pygeodesy.formy-module.html#equirectangular\" \n        class=\"link\">equirectangular</a>, <a \n        href=\"pygeodesy.geohash-module.html#equirectangular4\" \n        class=\"link\">equirectangular4</a>, <code>nearestOn*</code> and \n        <code>simplify*</code> or methods with <code>limit</code> or \n        <code>options</code> keyword arguments.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.errors.UnitError-class.html\">pygeodesy.errors.UnitError</a></strong>:\n      <em class=\"summary\">Default exception for <a href=\"pygeodesy.units-module.html\" \n        class=\"link\">units</a> issues for a value exceeding the \n        <code>low</code> or <code>high</code> limit.</em>\n    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.ltp.LocalError-class.html\">pygeodesy.ltp.LocalError</a></strong>:\n      <em class=\"summary\">A <a href=\"pygeodesy.ltp.LocalCartesian-class.html\" \n        class=\"link\">LocalCartesian</a> or <a \n        href=\"pygeodesy.ltp.Ltp-class.html\" class=\"link\">Ltp</a> related \n        issue.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.errors.MGRSError-class.html\">pygeodesy.errors.MGRSError</a></strong>:\n      <em class=\"summary\">Military Grid Reference System (MGRS) parse or other <a \n        href=\"pygeodesy.mgrs.Mgrs-class.html\" class=\"link\">Mgrs</a> issue.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.errors.NumPyError-class.html\">pygeodesy.errors.NumPyError</a></strong>:\n      <em class=\"summary\">Error raised for <code>NumPy</code> issues.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.osgr.OSGRError-class.html\">pygeodesy.osgr.OSGRError</a></strong>:\n      <em class=\"summary\">Error raised for a <a href=\"pygeodesy.osgr-module.html#parseOSGR\" \n        class=\"link\">parseOSGR</a>, <a \n        href=\"pygeodesy.osgr.Osgr-class.html\" class=\"link\">Osgr</a> or \n        other OSGR issue.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.errors.ParseError-class.html\">pygeodesy.errors.ParseError</a></strong>:\n      <em class=\"summary\">Error parsing degrees, radians or several other formats.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.errors.PointsError-class.html\">pygeodesy.errors.PointsError</a></strong>:\n      <em class=\"summary\">Error for an insufficient number of points.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.frechet.FrechetError-class.html\">pygeodesy.frechet.FrechetError</a></strong>:\n      <em class=\"summary\">Fr&#233;chet issue.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.hausdorff.HausdorffError-class.html\">pygeodesy.hausdorff.HausdorffError</a></strong>:\n      <em class=\"summary\">Hausdorff issue.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.heights.HeightError-class.html\">pygeodesy.heights.HeightError</a></strong>:\n      <em class=\"summary\">Height interpolator <code>Height...</code> or interpolation issue.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.geoids.GeoidError-class.html\">pygeodesy.geoids.GeoidError</a></strong>:\n      <em class=\"summary\">Geoid interpolator <code>Geoid...</code> or interpolation issue.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.geoids.PGMError-class.html\">pygeodesy.geoids.PGMError</a></strong>:\n      <em class=\"summary\">An issue while parsing or cropping an <code>egm*.pgm</code> geoid \n        dataset.</em>\n    </li>\n    </ul>\n    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.errors.SciPyError-class.html\">pygeodesy.errors.SciPyError</a></strong>:\n      <em class=\"summary\">Error raised for <code>SciPy</code> issues.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.errors.SciPyWarning-class.html\">pygeodesy.errors.SciPyWarning</a></strong>:\n      <em class=\"summary\">Error thrown for <code>SciPy</code> warnings.</em>\n    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.errors.RangeError-class.html\">pygeodesy.errors.RangeError</a></strong>:\n      <em class=\"summary\">Error raised for lat- or longitude values outside the \n        <b><code>clip</code></b>, <b><code>clipLat</code></b>, \n        <b><code>clipLon</code></b> in functions <a \n        href=\"pygeodesy.dms-module.html#parse3llh\" \n        class=\"link\">parse3llh</a>, <a \n        href=\"pygeodesy.dms-module.html#parseDMS\" \n        class=\"link\">parseDMS</a>, <a \n        href=\"pygeodesy.dms-module.html#parseDMS2\" \n        class=\"link\">parseDMS2</a> and <a \n        href=\"pygeodesy.dms-module.html#parseRad\" class=\"link\">parseRad</a>\n        or the <b><code>limit</code></b> set with functions <a \n        href=\"pygeodesy.dms-module.html#clipDegrees\" \n        class=\"link\">clipDegrees</a> and <a \n        href=\"pygeodesy.dms-module.html#clipRadians\" \n        class=\"link\">clipRadians</a>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.resections.ResectionError-class.html\">pygeodesy.resections.ResectionError</a></strong>:\n      <em class=\"summary\">Error raised for issues in <a \n        href=\"pygeodesy.resections-module.html\" \n        class=\"link\">pygeodesy.resections</a>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.fsums.ResidualError-class.html\">pygeodesy.fsums.ResidualError</a></strong>:\n      <em class=\"summary\">Error raised for a division, power or root operation of an <a \n        href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> \n        instance with a <code>residual</code> <i>ratio</i> exceeding the <a\n        href=\"pygeodesy.fsums.Fsum-class.html#RESIDUAL\" \n        class=\"link\">RESIDUAL</a> threshold.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.errors.RhumbError-class.html\">pygeodesy.errors.RhumbError</a></strong>:\n      <em class=\"summary\">Error raised for a rhumb <a href=\"pygeodesy.rhumb.aux_-module.html\"\n        class=\"link\" onclick=\"show_private();\">aux_</a>, <a \n        href=\"pygeodesy.rhumb.ekx-module.html\" class=\"link\" \n        onclick=\"show_private();\">ekx</a> or <a \n        href=\"pygeodesy.rhumb.solve-module.html\" class=\"link\" \n        onclick=\"show_private();\">solve</a> issue.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.errors.TRFError-class.html\">pygeodesy.errors.TRFError</a></strong>:\n      <em class=\"summary\">Terrestrial Reference Frame (TRF), <a \n        href=\"pygeodesy.units.Epoch-class.html\" class=\"link\">Epoch</a>, <a \n        href=\"pygeodesy.trf.RefFrame-class.html\" class=\"link\">RefFrame</a> \n        or <a href=\"pygeodesy.trf.RefFrame-class.html\" \n        class=\"link\">RefFrame</a> conversion issue.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.errors.TriangleError-class.html\">pygeodesy.errors.TriangleError</a></strong>:\n      <em class=\"summary\">Error raised for triangle, intersection or resection issues.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.triaxials.bases.TriaxialError-class.html\">pygeodesy.triaxials.bases.TriaxialError</a></strong>:\n      <em class=\"summary\">Raised for any triaxial issue.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.ups.UPSError-class.html\">pygeodesy.ups.UPSError</a></strong>:\n      <em class=\"summary\">Universal Polar Stereographic (UPS) parse or other <a \n        href=\"pygeodesy.ups.Ups-class.html\" class=\"link\">Ups</a> issue.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.utm.UTMError-class.html\">pygeodesy.utm.UTMError</a></strong>:\n      <em class=\"summary\">Universal Transverse Mercator (UTM parse or other <a \n        href=\"pygeodesy.utm.Utm-class.html\" class=\"link\">Utm</a> issue.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.etm.ETMError-class.html\">pygeodesy.etm.ETMError</a></strong>:\n      <em class=\"summary\">Exact Transverse Mercator (ETM) parse, projection or other <a \n        href=\"pygeodesy.etm.Etm-class.html\" class=\"link\">Etm</a> issue or \n        <a href=\"pygeodesy.etm.ExactTransverseMercator-class.html\" \n        class=\"link\">ExactTransverseMercator</a> conversion failure.</em>\n    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.utmups.UTMUPSError-class.html\">pygeodesy.utmups.UTMUPSError</a></strong>:\n      <em class=\"summary\">Universal Transverse Mercator/Universal Polar Stereographic \n        (UTM/UPS) parse, validate or other issue.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.errors.VectorError-class.html\">pygeodesy.errors.VectorError</a></strong>:\n      <em class=\"summary\"><a href=\"pygeodesy.vector3d.Vector3d-class.html\" \n        class=\"link\">Vector3d</a>, <code>Cartesian*</code> or \n        <code>*Nvector</code> issues.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.ellipsoidalVincenty.VincentyError-class.html\">pygeodesy.ellipsoidalVincenty.VincentyError</a></strong>:\n      <em class=\"summary\">Error raised by <i>Vincenty</i>'s <code>Direct</code> and \n        <code>Inverse</code> methods for coincident points or lack of \n        convergence.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.wgrs.WGRSError-class.html\">pygeodesy.wgrs.WGRSError</a></strong>:\n      <em class=\"summary\">World Geographic Reference System (WGRS) encode, decode or other <a\n        href=\"pygeodesy.wgrs.Georef-class.html\" class=\"link\">Georef</a> \n        issue.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.webmercator.WebMercatorError-class.html\">pygeodesy.webmercator.WebMercatorError</a></strong>:\n      <em class=\"summary\">Web Mercator (WM) parser or <a \n        href=\"pygeodesy.webmercator.Wm-class.html\" class=\"link\">Wm</a> \n        issue.</em>\n    </li>\n    </ul>\n    </li>\n    </ul>\n    </li>\n    </ul>\n    </li>\n    </ul>\n    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.karney.Caps-class.html\">pygeodesy.karney.Caps</a></strong>:\n      <em class=\"summary\"><i>Enum</i>-style masks to be bit-<code>or</code>'ed to specify \n        <code>geodesic</code>, <code>rhumb</code> or <code>-lines</code> \n        capabilities (<code>caps</code>) and method results \n        (<code>outmask</code>).</em>\n    </li>\n    <li> <strong class=\"uidlink\">_abcoll.Container</strong>\n    <ul>\n    <li> <strong class=\"uidlink\">_abcoll.Sequence</strong>:\n      <em class=\"summary\">All the operations on a read-only sequence.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.points._Basequence-class.html\">pygeodesy.points._Basequence</a></strong>:\n      <em class=\"summary\">(INTERNAL) Base class.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.points.LatLon2psxy-class.html\">pygeodesy.points.LatLon2psxy</a></strong>:\n      <em class=\"summary\">Wrapper for <code>LatLon</code> points as &quot;on-the-fly&quot; \n        pseudo-xy coordinates.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.points._Array2LatLon-class.html\">pygeodesy.points._Array2LatLon</a></strong>:\n      <em class=\"summary\">(INTERNAL) Base class for Numpy2LatLon or Tuple2LatLon.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.points.Numpy2LatLon-class.html\">pygeodesy.points.Numpy2LatLon</a></strong>:\n      <em class=\"summary\">Wrapper for <code>NumPy</code> arrays as &quot;on-the-fly&quot; \n        <code>LatLon</code> points.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.points.Tuple2LatLon-class.html\">pygeodesy.points.Tuple2LatLon</a></strong>:\n      <em class=\"summary\">Wrapper for tuple sequences as &quot;on-the-fly&quot; \n        <code>LatLon</code> points.</em>\n    </li>\n    </ul>\n    </li>\n    </ul>\n    </li>\n    </ul>\n    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.props.DeprecationWarnings-class.html\">pygeodesy.props.DeprecationWarnings</a></strong>:\n      <em class=\"summary\">(INTERNAL) Handle <code>DeprecationWaring</code>s.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.deprecated.consterns.Elliperim-class.html\">pygeodesy.deprecated.consterns.Elliperim</a></strong>:\n      <em class=\"summary\">DEPRECATED on 2026.02.06, use class <a \n        href=\"pygeodesy.ellipses.Ellipse-class.html\" \n        class=\"link\">Ellipse</a>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.geohash.Geohashed-class.html\">pygeodesy.geohash.Geohashed</a></strong>:\n      <em class=\"summary\">A cache of en- and decoded geohashes of one precision.</em>\n    </li>\n    <li> <strong class=\"uidlink\">_abcoll.Iterable</strong>\n    <ul>\n    <li> <strong class=\"uidlink\">_abcoll.Sequence</strong>:\n      <em class=\"summary\">All the operations on a read-only sequence.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.points._Basequence-class.html\">pygeodesy.points._Basequence</a></strong>:\n      <em class=\"summary\">(INTERNAL) Base class.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.points.LatLon2psxy-class.html\">pygeodesy.points.LatLon2psxy</a></strong>:\n      <em class=\"summary\">Wrapper for <code>LatLon</code> points as &quot;on-the-fly&quot; \n        pseudo-xy coordinates.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.points._Array2LatLon-class.html\">pygeodesy.points._Array2LatLon</a></strong>:\n      <em class=\"summary\">(INTERNAL) Base class for Numpy2LatLon or Tuple2LatLon.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.points.Numpy2LatLon-class.html\">pygeodesy.points.Numpy2LatLon</a></strong>:\n      <em class=\"summary\">Wrapper for <code>NumPy</code> arrays as &quot;on-the-fly&quot; \n        <code>LatLon</code> points.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.points.Tuple2LatLon-class.html\">pygeodesy.points.Tuple2LatLon</a></strong>:\n      <em class=\"summary\">Wrapper for tuple sequences as &quot;on-the-fly&quot; \n        <code>LatLon</code> points.</em>\n    </li>\n    </ul>\n    </li>\n    </ul>\n    </li>\n    </ul>\n    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.triaxials.bases.LLK-class.html\">pygeodesy.triaxials.bases.LLK</a></strong>:\n      <em class=\"summary\">Enum-like <code>Lat-/Longitude Kinds (LLK)</code>, see <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Triaxial_1_1Cartesian3.html\"\n        target=\"_top\">coord</a>.</em>\n    </li>\n    <li> <strong class=\"uidlink\">_abcoll.Sized</strong>\n    <ul>\n    <li> <strong class=\"uidlink\">_abcoll.Sequence</strong>:\n      <em class=\"summary\">All the operations on a read-only sequence.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.points._Basequence-class.html\">pygeodesy.points._Basequence</a></strong>:\n      <em class=\"summary\">(INTERNAL) Base class.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.points.LatLon2psxy-class.html\">pygeodesy.points.LatLon2psxy</a></strong>:\n      <em class=\"summary\">Wrapper for <code>LatLon</code> points as &quot;on-the-fly&quot; \n        pseudo-xy coordinates.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.points._Array2LatLon-class.html\">pygeodesy.points._Array2LatLon</a></strong>:\n      <em class=\"summary\">(INTERNAL) Base class for Numpy2LatLon or Tuple2LatLon.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.points.Numpy2LatLon-class.html\">pygeodesy.points.Numpy2LatLon</a></strong>:\n      <em class=\"summary\">Wrapper for <code>NumPy</code> arrays as &quot;on-the-fly&quot; \n        <code>LatLon</code> points.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.points.Tuple2LatLon-class.html\">pygeodesy.points.Tuple2LatLon</a></strong>:\n      <em class=\"summary\">Wrapper for tuple sequences as &quot;on-the-fly&quot; \n        <code>LatLon</code> points.</em>\n    </li>\n    </ul>\n    </li>\n    </ul>\n    </li>\n    </ul>\n    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.booleans._BooleanBase-class.html\">pygeodesy.booleans._BooleanBase</a></strong>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.booleans.BooleanFHP-class.html\">pygeodesy.booleans.BooleanFHP</a></strong>:\n      <em class=\"summary\"><i>Composite</i> class providing <i>boolean</i> operations between \n        two <i>composites</i> using <a \n        href=\"https://www.ScienceDirect.com/science/article/pii/S259014861930007X\"\n        target=\"_top\">Forster-Hormann-Popa</a>'s C++ implementation, \n        transcoded to pure Python.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.booleans.BooleanGH-class.html\">pygeodesy.booleans.BooleanGH</a></strong>:\n      <em class=\"summary\"><i>Composite</i> class providing <i>boolean</i> operations between \n        two <i>composites</i> using the <a \n        href=\"http://www.Inf.USI.CH/hormann/papers/Greiner.1998.ECO.pdf\" \n        target=\"_top\">Greiner-Hormann</a> algorithm, extended.</em>\n    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\">pygeodesy.ltp._ChLV</strong>:\n      <em class=\"summary\">(INTERNAL) Base class for <code>ChLV*</code> classes.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.ltp.ChLV-class.html\">pygeodesy.ltp.ChLV</a></strong>:\n      <em class=\"summary\">Conversion between <i>WGS84 geodetic</i> and <i>Swiss</i> \n        projection coordinates using <a \n        href=\"pygeodesy.ecef.EcefKarney-class.html\" \n        class=\"link\">pygeodesy.EcefKarney</a>'s Earth-Centered, Earth-Fixed\n        (ECEF) methods.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.ltp.ChLVa-class.html\">pygeodesy.ltp.ChLVa</a></strong>:\n      <em class=\"summary\">Conversion between <i>WGS84 geodetic</i> and <i>Swiss</i> \n        projection coordinates using the <a \n        href=\"https://www.SwissTopo.admin.CH/en/maps-data-online/calculation-services.html\"\n        target=\"_top\">Approximate</a> formulas, page 13.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.ltp.ChLVe-class.html\">pygeodesy.ltp.ChLVe</a></strong>:\n      <em class=\"summary\">Conversion between <i>WGS84 geodetic</i> and <i>Swiss</i> \n        projection coordinates using the <a \n        href=\"https://www.SwissTopo.admin.CH/en/maps-data-online/calculation-services.html\"\n        target=\"_top\">Ellipsoidal approximate</a> formulas, pp 10-11 and <a\n        \n        href=\"https://eMuseum.GGGS.CH/literatur-lv/liste-Dateien/1967_Bolliger_a.pdf\"\n        target=\"_top\">Bolliger, J.</a> pp 148-151 (also <a \n        href=\"https://eMuseum.GGGS.CH/literatur-lv/liste.htm\" \n        target=\"_top\">GGGS</a>).</em>\n    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\">pygeodesy.namedTuples._Convergence</strong>:\n      <em class=\"summary\">(INTERNAL) DEPRECATED Property <code>convergence</code>, use \n        property <code>gamma</code>.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.namedTuples.Forward4Tuple-class.html\">pygeodesy.namedTuples.Forward4Tuple</a></strong>:\n      <em class=\"summary\">4-Tuple <code>(easting, northing, gamma, scale)</code> in \n        <code>meter</code>, <code>meter</code>, meridian convergence \n        <code>gamma</code> at point in <code>degrees</code> and the \n        <code>scale</code> of projection at point <code>scalar</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.namedTuples.LatLonDatum5Tuple-class.html\">pygeodesy.namedTuples.LatLonDatum5Tuple</a></strong>:\n      <em class=\"summary\">5-Tuple <code>(lat, lon, datum, gamma, scale)</code> in \n        <code>degrees90</code>, <code>degrees180</code>, <a \n        href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>, \n        <code>degrees</code> and <code>float</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.namedTuples.Reverse4Tuple-class.html\">pygeodesy.namedTuples.Reverse4Tuple</a></strong>:\n      <em class=\"summary\">4-Tuple <code>(lat, lon, gamma, scale)</code> with \n        <code>lat</code>- and <code>lon</code>gitude in \n        <code>degrees</code>, meridian convergence <code>gamma</code> at \n        point in <code>degrees</code> and the <code>scale</code> of \n        projection at point <code>scalar</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.namedTuples.UtmUps8Tuple-class.html\">pygeodesy.namedTuples.UtmUps8Tuple</a></strong>:\n      <em class=\"summary\">8-Tuple <code>(zone, hemipole, easting, northing, band, datum, \n        gamma, scale)</code> as <code>int</code>, <code>str</code>, \n        <code>meter</code>, <code>meter</code>, <code>band</code> letter, \n        <code>Datum</code>, <code>degrees</code> and <code>scalar</code>, \n        where <code>zone</code> is <code>1..60</code> for UTM or \n        <code>0</code> for UPS, <code>hemipole</code> <code>'N'|'S'</code> \n        is the UTM hemisphere or the UPS pole and <code>band</code> is \n        <code>&quot;&quot;</code> or the <i>longitudinal</i> UTM band \n        <code>'C'|'D'|..|'W'|'X'</code> or <i>polar</i> UPS band \n        <code>'A'|'B'|'Y'|'Z'</code>.</em>\n    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.named._Named-class.html\">pygeodesy.named._Named</a></strong>:\n      <em class=\"summary\">(INTERNAL) Root class for named objects.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.angles.Ang-class.html\">pygeodesy.angles.Ang</a></strong>:\n      <em class=\"summary\">An accurate representation of angles, as 3-tuple <code>(s, c, \n        n)</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html\">pygeodesy.auxilats.auxAngle.AuxAngle</a></strong>:\n      <em class=\"summary\"><a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1AuxAngle.html\"\n        target=\"_top\">An accurate representation of angles</a></em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.auxilats.auxAngle.AuxBeta-class.html\">pygeodesy.auxilats.auxAngle.AuxBeta</a></strong>:\n      <em class=\"summary\">A <i>Parametric, Auxiliary</i> latitude.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.auxilats.auxAngle.AuxChi-class.html\">pygeodesy.auxilats.auxAngle.AuxChi</a></strong>:\n      <em class=\"summary\">A <i>Conformal, Auxiliary</i> latitude.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.auxilats.auxLat.AuxLat-class.html\">pygeodesy.auxilats.auxLat.AuxLat</a></strong>:\n      <em class=\"summary\">Base class for accurate conversion between <i>Auxiliary</i> \n        latitudes on an ellipsoid.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.auxilats.auxDLat.AuxDLat-class.html\">pygeodesy.auxilats.auxDLat.AuxDLat</a></strong>:\n      <em class=\"summary\">Class to compute <code>Divided Differences</code> of \n        <i>Auxiliary</i> latitudes and other <code>Divided \n        Differences</code> needed for <a \n        href=\"pygeodesy.rhumb.aux_.RhumbAux-class.html\" \n        class=\"link\">RhumbAux</a> and <a \n        href=\"pygeodesy.rhumb.aux_.RhumbLineAux-class.html\" \n        class=\"link\">RhumbLineAux</a> calculations.</em>\n    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.auxilats.auxAngle.AuxMu-class.html\">pygeodesy.auxilats.auxAngle.AuxMu</a></strong>:\n      <em class=\"summary\">A <i>Rectifying, Auxiliary</i> latitude.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.auxilats.auxAngle.AuxPhi-class.html\">pygeodesy.auxilats.auxAngle.AuxPhi</a></strong>:\n      <em class=\"summary\">A <i>Geodetic or Geographic, Auxiliary</i> latitude.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.auxilats.auxAngle.AuxTheta-class.html\">pygeodesy.auxilats.auxAngle.AuxTheta</a></strong>:\n      <em class=\"summary\">A <i>Geocentric, Auxiliary</i> latitude.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.auxilats.auxAngle.AuxXi-class.html\">pygeodesy.auxilats.auxAngle.AuxXi</a></strong>:\n      <em class=\"summary\">An <i>Authalic, Auxiliary</i> latitude.</em>\n    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.elliptic.Elliptic-class.html\">pygeodesy.elliptic.Elliptic</a></strong>:\n      <em class=\"summary\">Elliptic integrals and functions.</em>\n    <ul>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.frechet.Frechet-class.html\">pygeodesy.frechet.Frechet</a></strong>:\n      <em class=\"summary\">Frechet base class, requires method <a \n        href=\"pygeodesy.frechet.Frechet-class.html#distance\" \n        class=\"link\">Frechet.distance</a> to be overloaded.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.frechet.FrechetDegrees-class.html\">pygeodesy.frechet.FrechetDegrees</a></strong>:\n      <em class=\"summary\">DEPRECATED, use an other <code>Frechet*</code> class.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.frechet.FrechetDistanceTo-class.html\">pygeodesy.frechet.FrechetDistanceTo</a></strong>:\n      <em class=\"summary\">Compute the <code>Frechet</code> distance with the point1s' \n        <code>LatLon.distanceTo</code> method.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.frechet.FrechetEquirectangular-class.html\">pygeodesy.frechet.FrechetEquirectangular</a></strong>:\n      <em class=\"summary\">Compute the <code>Frechet</code> distance with function <a \n        href=\"pygeodesy.formy-module.html#equirectangular\" \n        class=\"link\">pygeodesy.equirectangular</a>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.frechet.FrechetExact-class.html\">pygeodesy.frechet.FrechetExact</a></strong>:\n      <em class=\"summary\">Compute the <code>Frechet</code> distance with method <a \n        href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html\" \n        class=\"link\">GeodesicExact</a><code>.Inverse</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.frechet.FrechetKarney-class.html\">pygeodesy.frechet.FrechetKarney</a></strong>:\n      <em class=\"summary\">Compute the <code>Frechet</code> distance with <i>Karney</i>'s <a \n        href=\"https://PyPI.org/project/geographiclib\" \n        target=\"_top\">geographiclib</a> <a \n        href=\"https://GeographicLib.SourceForge.io/Python/doc/code.html\" \n        target=\"_top\">geodesic.Geodesic</a><code>.Inverse</code> method.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.frechet.FrechetRadians-class.html\">pygeodesy.frechet.FrechetRadians</a></strong>:\n      <em class=\"summary\">DEPRECATED, use an other <code>Frechet*</code> class.</em>\n    </li>\n    <li> <strong class=\"uidlink\">pygeodesy.frechet._FrechetMeterRadians</strong>:\n      <em class=\"summary\">(INTERNAL) Returning <code>meter</code> or <code>radians</code> \n        depending on the optional keyword arguments supplied at \n        instantiation of the <code>Frechet*</code> sub-class.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.frechet.FrechetCosineLaw-class.html\">pygeodesy.frechet.FrechetCosineLaw</a></strong>:\n      <em class=\"summary\">Compute the <code>Frechet</code> distance with functionn <a \n        href=\"pygeodesy.formy-module.html#cosineLaw\" \n        class=\"link\">pygeodesy.cosineLaw</a>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.frechet.FrechetEuclidean-class.html\">pygeodesy.frechet.FrechetEuclidean</a></strong>:\n      <em class=\"summary\">Compute the <code>Frechet</code> distance with function <a \n        href=\"pygeodesy.formy-module.html#euclidean\" \n        class=\"link\">pygeodesy.euclidean</a>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.frechet.FrechetFlatLocal-class.html\">pygeodesy.frechet.FrechetFlatLocal</a></strong>:\n      <em class=\"summary\">Compute the <code>Frechet</code> distance with function <a \n        href=\"pygeodesy.formy-module.html#flatLocal_\" \n        class=\"link\">pygeodesy.flatLocal_</a>/<a \n        href=\"pygeodesy.formy-module.html#flatLocal\" \n        class=\"link\">pygeodesy.hubeny</a>.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.frechet.FrechetHubeny-class.html\">pygeodesy.frechet.FrechetHubeny</a></strong>:\n      <em class=\"summary\">Compute the <code>Frechet</code> distance with function <a \n        href=\"pygeodesy.formy-module.html#flatLocal_\" \n        class=\"link\">pygeodesy.flatLocal_</a>/<a \n        href=\"pygeodesy.formy-module.html#flatLocal\" \n        class=\"link\">pygeodesy.hubeny</a>.</em>\n    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.frechet.FrechetFlatPolar-class.html\">pygeodesy.frechet.FrechetFlatPolar</a></strong>:\n      <em class=\"summary\">Compute the <code>Frechet</code> distance with function <a \n        href=\"pygeodesy.formy-module.html#flatPolar_\" \n        class=\"link\">flatPolar_</a>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.frechet.FrechetHaversine-class.html\">pygeodesy.frechet.FrechetHaversine</a></strong>:\n      <em class=\"summary\">Compute the <code>Frechet</code> distance with function <a \n        href=\"pygeodesy.geohash-module.html#haversine_\" \n        class=\"link\">pygeodesy.haversine_</a>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.frechet.FrechetThomas-class.html\">pygeodesy.frechet.FrechetThomas</a></strong>:\n      <em class=\"summary\">Compute the <code>Frechet</code> distance with function <a \n        href=\"pygeodesy.formy-module.html#thomas_\" \n        class=\"link\">pygeodesy.thomas_</a>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.frechet.FrechetVincentys-class.html\">pygeodesy.frechet.FrechetVincentys</a></strong>:\n      <em class=\"summary\">Compute the <code>Frechet</code> distance with function <a \n        href=\"pygeodesy.geohash-module.html#vincentys_\" \n        class=\"link\">pygeodesy.vincentys_</a>.</em>\n    </li>\n    </ul>\n    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.fsums.Fsum-class.html\">pygeodesy.fsums.Fsum</a></strong>:\n      <em class=\"summary\">Precision floating point summation, <i>running</i> summation and \n        accurate multiplication.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.fmath.Fdot-class.html\">pygeodesy.fmath.Fdot</a></strong>:\n      <em class=\"summary\">Precision dot product.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.fmath.Fdot_-class.html\">pygeodesy.fmath.Fdot_</a></strong>:\n      <em class=\"summary\">Precision dot product.</em>\n    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.fmath.Fhorner-class.html\">pygeodesy.fmath.Fhorner</a></strong>:\n      <em class=\"summary\">Precision polynomial evaluation using the Horner form.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.fmath.Fhypot-class.html\">pygeodesy.fmath.Fhypot</a></strong>:\n      <em class=\"summary\">Precision summation and hypotenuse, default <code>root=2</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.fmath.Fpolynomial-class.html\">pygeodesy.fmath.Fpolynomial</a></strong>:\n      <em class=\"summary\">Precision polynomial evaluation.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.fmath.Fpowers-class.html\">pygeodesy.fmath.Fpowers</a></strong>:\n      <em class=\"summary\">Precision summation of powers, optimized for <code>power=2, 3 and \n        4</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.fmath.Froot-class.html\">pygeodesy.fmath.Froot</a></strong>:\n      <em class=\"summary\">The root of a precision summation.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.fmath.Fcbrt-class.html\">pygeodesy.fmath.Fcbrt</a></strong>:\n      <em class=\"summary\">Cubic root of a precision summation.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.fmath.Fsqrt-class.html\">pygeodesy.fmath.Fsqrt</a></strong>:\n      <em class=\"summary\">Square root of a precision summation.</em>\n    </li>\n    </ul>\n    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.hausdorff.Hausdorff-class.html\">pygeodesy.hausdorff.Hausdorff</a></strong>:\n      <em class=\"summary\">Hausdorff base class, requires method <a \n        href=\"pygeodesy.hausdorff.Hausdorff-class.html#distance\" \n        class=\"link\">Hausdorff.distance</a> to be overloaded.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.hausdorff.HausdorffDegrees-class.html\">pygeodesy.hausdorff.HausdorffDegrees</a></strong>:\n      <em class=\"summary\"><a href=\"pygeodesy.hausdorff.Hausdorff-class.html\" \n        class=\"link\">Hausdorff</a> base class for distances from \n        <code>LatLon</code> points in <code>degrees</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.hausdorff.HausdorffDistanceTo-class.html\">pygeodesy.hausdorff.HausdorffDistanceTo</a></strong>:\n      <em class=\"summary\">Compute the <code>Hausdorff</code> distance the points' \n        <code>LatLon.distanceTo</code> method.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.hausdorff.HausdorffEquirectangular-class.html\">pygeodesy.hausdorff.HausdorffEquirectangular</a></strong>:\n      <em class=\"summary\">Compute the <code>Hausdorff</code> distance with function <a \n        href=\"pygeodesy.formy-module.html#equirectangular\" \n        class=\"link\">pygeodesy.equirectangular</a>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.hausdorff.HausdorffExact-class.html\">pygeodesy.hausdorff.HausdorffExact</a></strong>:\n      <em class=\"summary\">Compute the <code>Hausdorff</code> distance with method <a \n        href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html\" \n        class=\"link\">GeodesicExact</a><code>.Inverse</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.hausdorff.HausdorffKarney-class.html\">pygeodesy.hausdorff.HausdorffKarney</a></strong>:\n      <em class=\"summary\">Compute the <code>Hausdorff</code> distance with <i>Karney</i>'s <a\n        href=\"https://PyPI.org/project/geographiclib\" \n        target=\"_top\">geographiclib</a> <a \n        href=\"https://GeographicLib.SourceForge.io/Python/doc/code.html\" \n        target=\"_top\">geodesic.Geodesic</a><code>.Inverse</code> method.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.hausdorff.HausdorffRadians-class.html\">pygeodesy.hausdorff.HausdorffRadians</a></strong>:\n      <em class=\"summary\"><a href=\"pygeodesy.hausdorff.Hausdorff-class.html\" \n        class=\"link\">Hausdorff</a> base class for distances from \n        <code>LatLon</code> points converted from <code>degrees</code> to \n        <code>radians</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\">pygeodesy.hausdorff._HausdorffMeterRadians</strong>:\n      <em class=\"summary\">(INTERNAL) Returning <code>meter</code> or <code>radians</code> \n        depending on the optional keyword arguments supplied at \n        instantiation of the <code>Hausdorff*</code> sub-class.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.hausdorff.HausdorffCosineLaw-class.html\">pygeodesy.hausdorff.HausdorffCosineLaw</a></strong>:\n      <em class=\"summary\">Compute the <code>Hausdorff</code> distance with function <a \n        href=\"pygeodesy.formy-module.html#cosineLaw_\" \n        class=\"link\">pygeodesy.cosineLaw_</a>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.hausdorff.HausdorffEuclidean-class.html\">pygeodesy.hausdorff.HausdorffEuclidean</a></strong>:\n      <em class=\"summary\">Compute the <code>Hausdorff</code> distance with function <a \n        href=\"pygeodesy.geohash-module.html#euclidean_\" \n        class=\"link\">pygeodesy.euclidean_</a>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.hausdorff.HausdorffFlatLocal-class.html\">pygeodesy.hausdorff.HausdorffFlatLocal</a></strong>:\n      <em class=\"summary\">Compute the <code>Hausdorff</code> distance with function <a \n        href=\"pygeodesy.formy-module.html#flatLocal_\" \n        class=\"link\">pygeodesy.flatLocal_</a>/<a \n        href=\"pygeodesy.formy-module.html#flatLocal_\" \n        class=\"link\">pygeodesy.hubeny_</a>.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.hausdorff.HausdorffHubeny-class.html\">pygeodesy.hausdorff.HausdorffHubeny</a></strong>:\n      <em class=\"summary\">Compute the <code>Hausdorff</code> distance with function <a \n        href=\"pygeodesy.formy-module.html#flatLocal_\" \n        class=\"link\">pygeodesy.flatLocal_</a>/<a \n        href=\"pygeodesy.formy-module.html#flatLocal_\" \n        class=\"link\">pygeodesy.hubeny_</a>.</em>\n    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.hausdorff.HausdorffFlatPolar-class.html\">pygeodesy.hausdorff.HausdorffFlatPolar</a></strong>:\n      <em class=\"summary\">Compute the <code>Hausdorff</code> distance with function <a \n        href=\"pygeodesy.formy-module.html#flatPolar_\" \n        class=\"link\">pygeodesy.flatPolar_</a>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.hausdorff.HausdorffHaversine-class.html\">pygeodesy.hausdorff.HausdorffHaversine</a></strong>:\n      <em class=\"summary\">Compute the <code>Hausdorff</code> distance with function <a \n        href=\"pygeodesy.geohash-module.html#haversine_\" \n        class=\"link\">pygeodesy.haversine_</a>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.hausdorff.HausdorffThomas-class.html\">pygeodesy.hausdorff.HausdorffThomas</a></strong>:\n      <em class=\"summary\">Compute the <code>Hausdorff</code> distance with function <a \n        href=\"pygeodesy.formy-module.html#thomas_\" \n        class=\"link\">pygeodesy.thomas_</a>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.hausdorff.HausdorffVincentys-class.html\">pygeodesy.hausdorff.HausdorffVincentys</a></strong>:\n      <em class=\"summary\">Compute the <code>Hausdorff</code> distance with function <a \n        href=\"pygeodesy.geohash-module.html#vincentys_\" \n        class=\"link\">pygeodesy.vincentys_</a>.</em>\n    </li>\n    </ul>\n    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.trf.TRFXform-class.html\">pygeodesy.trf.TRFXform</a></strong>:\n      <em class=\"summary\">A Terrestrial Reference Frame (TRF) converter between two reference\n        frames observed at an <code>epoch</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.iters._BaseIter-class.html\">pygeodesy.iters._BaseIter</a></strong>:\n      <em class=\"summary\">(INTERNAL) Iterator over items with loop-back and de-duplication.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.iters.PointsIter-class.html\">pygeodesy.iters.PointsIter</a></strong>:\n      <em class=\"summary\">Iterator for <code>points</code> with optional loop-back and \n        copies.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.iters.LatLon2PsxyIter-class.html\">pygeodesy.iters.LatLon2PsxyIter</a></strong>:\n      <em class=\"summary\">Iterate and convert for <code>points</code> with optional loop-back\n        and copies.</em>\n    </li>\n    </ul>\n    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.booleans._Clip-class.html\">pygeodesy.booleans._Clip</a></strong>:\n      <em class=\"summary\">(INTERNAL) A <i>doubly-linked</i> list representing a <i>closed</i>\n        polygon of <a href=\"pygeodesy.booleans.LatLonFHP-class.html\" \n        class=\"link\">LatLonFHP</a> or <a \n        href=\"pygeodesy.booleans.LatLonGH-class.html\" \n        class=\"link\">LatLonGH</a> points, duplicates and intersections with\n        other clips.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.booleans._CompositeBase-class.html\">pygeodesy.booleans._CompositeBase</a></strong>:\n      <em class=\"summary\">(INTERNAL) Base class for <a \n        href=\"pygeodesy.booleans.BooleanFHP-class.html\" \n        class=\"link\">BooleanFHP</a> and <a \n        href=\"pygeodesy.booleans.BooleanGH-class.html\" \n        class=\"link\">BooleanGH</a> (<code>_CompositeFHP</code> and \n        <code>_CompositeGH</code>).</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.booleans._CompositeFHP-class.html\">pygeodesy.booleans._CompositeFHP</a></strong>:\n      <em class=\"summary\">(INTERNAL) A list of clips representing a <i>composite</i> of <a \n        href=\"pygeodesy.booleans.LatLonFHP-class.html\" \n        class=\"link\">LatLonFHP</a> points, duplicates and intersections \n        with an other <i>composite</i>.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.booleans.BooleanFHP-class.html\">pygeodesy.booleans.BooleanFHP</a></strong>:\n      <em class=\"summary\"><i>Composite</i> class providing <i>boolean</i> operations between \n        two <i>composites</i> using <a \n        href=\"https://www.ScienceDirect.com/science/article/pii/S259014861930007X\"\n        target=\"_top\">Forster-Hormann-Popa</a>'s C++ implementation, \n        transcoded to pure Python.</em>\n    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.booleans._CompositeGH-class.html\">pygeodesy.booleans._CompositeGH</a></strong>:\n      <em class=\"summary\">(INTERNAL) A list of clips representing a <i>composite</i> of <a \n        href=\"pygeodesy.booleans.LatLonGH-class.html\" \n        class=\"link\">LatLonGH</a> points, duplicates and intersections with\n        an other <i>composite</i>.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.booleans.BooleanGH-class.html\">pygeodesy.booleans.BooleanGH</a></strong>:\n      <em class=\"summary\"><i>Composite</i> class providing <i>boolean</i> operations between \n        two <i>composites</i> using the <a \n        href=\"http://www.Inf.USI.CH/hormann/papers/Greiner.1998.ECO.pdf\" \n        target=\"_top\">Greiner-Hormann</a> algorithm, extended.</em>\n    </li>\n    </ul>\n    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html\">pygeodesy.ecefLocals._EcefLocal</a></strong>:\n      <em class=\"summary\">(INTERNAL) Base class for <code>CartesianBase</code>, \n        <code>Ecef9Tuple</code> and <code>LatLonBase</code>, providing ECEF\n        to local coordinate conversions.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html\">pygeodesy.cartesianBase.CartesianBase</a></strong>:\n      <em class=\"summary\">(INTERNAL) Base class for ellipsoidal and spherical \n        <code>Cartesian</code>.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html\">pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase</a></strong>:\n      <em class=\"summary\">(INTERNAL) Base class for ellipsoidal <code>Cartesian</code>s.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.ellipsoidalExact.Cartesian-class.html\">pygeodesy.ellipsoidalExact.Cartesian</a></strong>:\n      <em class=\"summary\">Extended to convert exact <a \n        href=\"pygeodesy.ellipsoidalExact.Cartesian-class.html\" \n        class=\"link\">Cartesian</a> to exact <a \n        href=\"pygeodesy.ellipsoidalExact.LatLon-class.html\" \n        class=\"link\">LatLon</a> points.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.ellipsoidalGeodSolve.Cartesian-class.html\">pygeodesy.ellipsoidalGeodSolve.Cartesian</a></strong>:\n      <em class=\"summary\">Extended to convert exact <a \n        href=\"pygeodesy.ellipsoidalGeodSolve.Cartesian-class.html\" \n        class=\"link\">Cartesian</a> to exact <a \n        href=\"pygeodesy.ellipsoidalGeodSolve.LatLon-class.html\" \n        class=\"link\">LatLon</a> points.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.ellipsoidalVincenty.Cartesian-class.html\">pygeodesy.ellipsoidalVincenty.Cartesian</a></strong>:\n      <em class=\"summary\">Extended to convert geocentric, <a \n        href=\"pygeodesy.ellipsoidalVincenty.Cartesian-class.html\" \n        class=\"link\">Cartesian</a> points to Vincenty-based, ellipsoidal, \n        geodetic <a href=\"pygeodesy.ellipsoidalVincenty.LatLon-class.html\" \n        class=\"link\">LatLon</a>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.ellipsoidalNvector.Cartesian-class.html\">pygeodesy.ellipsoidalNvector.Cartesian</a></strong>:\n      <em class=\"summary\">Extended to convert geocentric, <a \n        href=\"pygeodesy.ellipsoidalNvector.Cartesian-class.html\" \n        class=\"link\">Cartesian</a> points to <code>Nvector</code> and \n        n-vector-based, geodetic <a \n        href=\"pygeodesy.ellipsoidalNvector.LatLon-class.html\" \n        class=\"link\">LatLon</a>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.ellipsoidalKarney.Cartesian-class.html\">pygeodesy.ellipsoidalKarney.Cartesian</a></strong>:\n      <em class=\"summary\">Extended to convert <code>Karney</code>-based <a \n        href=\"pygeodesy.ellipsoidalKarney.Cartesian-class.html\" \n        class=\"link\">Cartesian</a> to <code>Karney</code>-based <a \n        href=\"pygeodesy.ellipsoidalKarney.LatLon-class.html\" \n        class=\"link\">LatLon</a> points.</em>\n    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.sphericalBase.CartesianSphericalBase-class.html\">pygeodesy.sphericalBase.CartesianSphericalBase</a></strong>:\n      <em class=\"summary\">(INTERNAL) Base class for spherical <code>Cartesian</code>s.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.sphericalNvector.Cartesian-class.html\">pygeodesy.sphericalNvector.Cartesian</a></strong>:\n      <em class=\"summary\">Extended to convert geocentric, <a \n        href=\"pygeodesy.sphericalNvector.Cartesian-class.html\" \n        class=\"link\">Cartesian</a> points to <code>Nvector</code> and \n        n-vector-based, spherical <a \n        href=\"pygeodesy.sphericalNvector.LatLon-class.html\" \n        class=\"link\">LatLon</a>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.sphericalTrigonometry.Cartesian-class.html\">pygeodesy.sphericalTrigonometry.Cartesian</a></strong>:\n      <em class=\"summary\">Extended to convert geocentric, <a \n        href=\"pygeodesy.sphericalTrigonometry.Cartesian-class.html\" \n        class=\"link\">Cartesian</a> points to spherical, geodetic <a \n        href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html\" \n        class=\"link\">LatLon</a>.</em>\n    </li>\n    </ul>\n    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.ecef.Ecef9Tuple-class.html\">pygeodesy.ecef.Ecef9Tuple</a></strong>:\n      <em class=\"summary\">9-Tuple <code>(x, y, z, lat, lon, height, C, M, datum)</code> with \n        <i>geocentric</i> <code>x</code>, <code>y</code> and <code>z</code>\n        plus <i>geodetic</i> <code>lat</code>, <code>lon</code> and \n        <code>height</code>, case <code>C</code> and optionally, rotation \n        matrix <code>M</code> (<a \n        href=\"pygeodesy.ecef.EcefMatrix-class.html\" \n        class=\"link\">EcefMatrix</a>) and <code>datum</code>, with \n        <code>lat</code> and <code>lon</code> in <code>degrees</code> and \n        <code>x</code>, <code>y</code>, <code>z</code> and \n        <code>height</code> in <code>meter</code>, conventionally.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">pygeodesy.latlonBase.LatLonBase</a></strong>:\n      <em class=\"summary\">(INTERNAL) Base class for ellipsoidal and spherical \n        <code>satLon</code>s.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html\">pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase</a></strong>:\n      <em class=\"summary\">(INTERNAL) Base class for ellipsoidal <code>LatLon</code>s.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.ellipsoidalNvector.LatLon-class.html\">pygeodesy.ellipsoidalNvector.LatLon</a></strong>:\n      <em class=\"summary\">An n-vector-based, ellipsoidal <a \n        href=\"pygeodesy.ellipsoidalNvector.LatLon-class.html\" \n        class=\"link\">LatLon</a> point.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html\">pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI</a></strong>:\n      <em class=\"summary\">(INTERNAL) Base class for <code>ellipsoidal*.LatLon</code> classes \n        with <i>overloaded</i> <code>Direct</code> and <code>Inverse</code>\n        methods.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.ellipsoidalExact.LatLon-class.html\">pygeodesy.ellipsoidalExact.LatLon</a></strong>:\n      <em class=\"summary\">An ellipsoidal <a \n        href=\"pygeodesy.ellipsoidalExact.LatLon-class.html\" \n        class=\"link\">LatLon</a> like <a \n        href=\"pygeodesy.ellipsoidalKarney.LatLon-class.html\" \n        class=\"link\">ellipsoidalKarney.LatLon</a> but using exact geodesic \n        classes <a href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html\" \n        class=\"link\">GeodesicExact</a> and <a \n        href=\"pygeodesy.geodesicx.gx.GeodesicLineExact-class.html\" \n        class=\"link\">GeodesicLineExact</a> to compute geodesic distances, \n        bearings (azimuths), etc.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.ellipsoidalGeodSolve.LatLon-class.html\">pygeodesy.ellipsoidalGeodSolve.LatLon</a></strong>:\n      <em class=\"summary\">An ellipsoidal <a \n        href=\"pygeodesy.ellipsoidalGeodSolve.LatLon-class.html\" \n        class=\"link\">LatLon</a> like <a \n        href=\"pygeodesy.ellipsoidalKarney.LatLon-class.html\" \n        class=\"link\">ellipsoidalKarney.LatLon</a> but using (exact) \n        geodesic <i>wrapper</i> <a \n        href=\"pygeodesy.geodsolve.GeodesicSolve-class.html\" \n        class=\"link\">GeodesicSolve</a> to compute the geodesic distance, \n        initial and final bearing (azimuths) between two given points or \n        the destination point given a start point and an (initial) bearing.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.ellipsoidalKarney.LatLon-class.html\">pygeodesy.ellipsoidalKarney.LatLon</a></strong>:\n      <em class=\"summary\">An ellipsoidal <a \n        href=\"pygeodesy.ellipsoidalKarney.LatLon-class.html\" \n        class=\"link\">LatLon</a> similar to <a \n        href=\"pygeodesy.ellipsoidalVincenty.LatLon-class.html\" \n        class=\"link\">ellipsoidalVincenty.LatLon</a> but using \n        <i>Karney</i>'s Python <a \n        href=\"https://PyPI.org/project/geographiclib\" \n        target=\"_top\">geographiclib</a> to compute geodesic distances, \n        bearings (azimuths), etc.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.ellipsoidalVincenty.LatLon-class.html\">pygeodesy.ellipsoidalVincenty.LatLon</a></strong>:\n      <em class=\"summary\">New point on an (oblate) ellipsoidal earth model, using the \n        formulae devised by <a \n        href=\"https://WikiPedia.org/wiki/Vincenty's_formulae\" \n        target=\"_top\"><i>Thaddeus Vincenty</i></a> (1975) to compute \n        geodesic distances, bearings (azimuths), etc.</em>\n    </li>\n    </ul>\n    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.deprecated.bases.LatLonHeightBase-class.html\">pygeodesy.deprecated.bases.LatLonHeightBase</a></strong>:\n      <em class=\"summary\">DEPRECATED on 2021.02.10, use (INTERNAL) class <a \n        href=\"pygeodesy.latlonBase.LatLonBase-class.html\" \n        class=\"link\">pygeodesy.latlonBase.LatLonBase</a>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.nvectorBase.LatLonNvectorBase-class.html\">pygeodesy.nvectorBase.LatLonNvectorBase</a></strong>:\n      <em class=\"summary\">(INTERNAL) Base class for n-vector-based ellipsoidal and spherical \n        <code>LatLon</code>s.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.ellipsoidalNvector.LatLon-class.html\">pygeodesy.ellipsoidalNvector.LatLon</a></strong>:\n      <em class=\"summary\">An n-vector-based, ellipsoidal <a \n        href=\"pygeodesy.ellipsoidalNvector.LatLon-class.html\" \n        class=\"link\">LatLon</a> point.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.sphericalNvector.LatLon-class.html\">pygeodesy.sphericalNvector.LatLon</a></strong>:\n      <em class=\"summary\">New n-vector-based point on a spherical earth model.</em>\n    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html\">pygeodesy.sphericalBase.LatLonSphericalBase</a></strong>:\n      <em class=\"summary\">(INTERNAL) Base class for spherical <code>LatLon</code>s.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.sphericalNvector.LatLon-class.html\">pygeodesy.sphericalNvector.LatLon</a></strong>:\n      <em class=\"summary\">New n-vector-based point on a spherical earth model.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html\">pygeodesy.sphericalTrigonometry.LatLon</a></strong>:\n      <em class=\"summary\">New point on a spherical earth model, based on trigonometry \n        formulae.</em>\n    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.points.LatLon_-class.html\">pygeodesy.points.LatLon_</a></strong>:\n      <em class=\"summary\">Low-overhead <code>LatLon</code> class, mainly for <a \n        href=\"pygeodesy.points.Numpy2LatLon-class.html\" \n        class=\"link\">Numpy2LatLon</a> and <a \n        href=\"pygeodesy.points.Tuple2LatLon-class.html\" \n        class=\"link\">Tuple2LatLon</a>.</em>\n    <ul>\n    </ul>\n    </li>\n    </ul>\n    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.fstats._FstatsNamed-class.html\">pygeodesy.fstats._FstatsNamed</a></strong>:\n      <em class=\"summary\">(INTERNAL) Base class.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.fstats.Flinear-class.html\">pygeodesy.fstats.Flinear</a></strong>:\n      <em class=\"summary\"><a href=\"https://www.JohnDCook.com/blog/running_regression\" \n        target=\"_top\">Cook</a>'s <code>RunningRegression</code> computing \n        the running slope, intercept and correlation of a linear \n        regression.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.fstats._FstatsBase-class.html\">pygeodesy.fstats._FstatsBase</a></strong>:\n      <em class=\"summary\">(INTERNAL) Base running stats class.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.fstats.Fcook-class.html\">pygeodesy.fstats.Fcook</a></strong>:\n      <em class=\"summary\"><a href=\"https://www.JohnDCook.com/blog/skewness_kurtosis\" \n        target=\"_top\">Cook</a>'s <code>RunningStats</code> computing the \n        running mean, median and (sample) kurtosis, skewness, variance, \n        standard deviation and Jarque-Bera normality.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.fstats.Fwelford-class.html\">pygeodesy.fstats.Fwelford</a></strong>:\n      <em class=\"summary\"><a \n        href=\"https://WikiPedia.org/wiki/Algorithms_for_calculating_variance\"\n        target=\"_top\">Welford</a>'s accumulator computing the running mean,\n        (sample) variance and standard deviation.</em>\n    </li>\n    </ul>\n    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.heights._HeightNamed-class.html\">pygeodesy.heights._HeightNamed</a></strong>:\n      <em class=\"summary\">(INTERNAL) Interpolator base class.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.heights._HeightBase-class.html\">pygeodesy.heights._HeightBase</a></strong>:\n      <em class=\"summary\">(INTERNAL) Interpolator base class.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.heights.HeightCubic-class.html\">pygeodesy.heights.HeightCubic</a></strong>:\n      <em class=\"summary\">Height interpolator based on <code>SciPy</code> <a \n        href=\"https://docs.SciPy.org/doc/scipy/reference/generated/scipy.interpolate.interp2d.html\"\n        target=\"_top\">interp2d</a> <code>kind='cubic'</code> or <a \n        href=\"https://docs.SciPy.org/doc/scipy/reference/generated/scipy.interpolate.interp2d.html\"\n        target=\"_top\">bisplrep/-ev</a> <code>kx=ky=3</code>.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.heights.HeightLinear-class.html\">pygeodesy.heights.HeightLinear</a></strong>:\n      <em class=\"summary\">Height interpolator based on <code>SciPy</code> <a \n        href=\"https://docs.SciPy.org/doc/scipy/reference/generated/scipy.interpolate.interp2d.html\"\n        target=\"_top\">interp2d</a> <code>kind='linear'</code> or <a \n        href=\"https://docs.SciPy.org/doc/scipy/reference/generated/scipy.interpolate.interp2d.html\"\n        target=\"_top\">bisplrep/-ev</a> <code>kx=ky=1</code>.</em>\n    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.heights.HeightLSQBiSpline-class.html\">pygeodesy.heights.HeightLSQBiSpline</a></strong>:\n      <em class=\"summary\">Height interpolator using <code>SciPy</code> <a \n        href=\"https://docs.SciPy.org/doc/scipy/reference/generated/scipy.interpolate.LSQSphereBivariateSpline.html\"\n        target=\"_top\">LSQSphereBivariateSpline</a>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.heights.HeightSmoothBiSpline-class.html\">pygeodesy.heights.HeightSmoothBiSpline</a></strong>:\n      <em class=\"summary\">Height interpolator using <code>SciPy</code> <a \n        href=\"https://docs.SciPy.org/doc/scipy/reference/generated/scipy.interpolate.SmoothSphereBivariateSpline.html\"\n        target=\"_top\">SmoothSphereBivariateSpline</a>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.geoids._GeoidBase-class.html\">pygeodesy.geoids._GeoidBase</a></strong>:\n      <em class=\"summary\">(INTERNAL) Base class for <code>Geoid...</code>s.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.geoids.GeoidEGM96-class.html\">pygeodesy.geoids.GeoidEGM96</a></strong>:\n      <em class=\"summary\">Geoid height interpolator for the EGM96 <a \n        href=\"https://earth-info.NGA.mil\" target=\"_top\">15 Minute \n        Interpolation Grid</a> based on <code>SciPy</code> interpolation <a\n        \n        href=\"https://docs.SciPy.org/doc/scipy/reference/generated/scipy.interpolate.RectBivariateSpline.html\"\n        target=\"_top\">RectBivariateSpline</a>, <a \n        href=\"https://docs.SciPy.org/doc/scipy/reference/generated/scipy.interpolate.interp2d.html\"\n        target=\"_top\">interp2d</a> or <a \n        href=\"https://docs.scipy.org/doc/scipy/reference/generated/scipy.interpolate.bisplrep.html\"\n        target=\"_top\">bisplrep/-ev</a>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.geoids.GeoidG2012B-class.html\">pygeodesy.geoids.GeoidG2012B</a></strong>:\n      <em class=\"summary\">Geoid height interpolator for <a \n        href=\"https://Geodesy.NOAA.gov/GEOID/GEOID12B/\" \n        target=\"_top\">GEOID12B Model</a> grids <a \n        href=\"https://Geodesy.NOAA.gov/GEOID/GEOID12B/GEOID12B_CONUS.shtml\"\n        target=\"_top\">CONUS</a>, <a \n        href=\"https://Geodesy.NOAA.gov/GEOID/GEOID12B/GEOID12B_AK.shtml\" \n        target=\"_top\">Alaska</a>, <a \n        href=\"https://Geodesy.NOAA.gov/GEOID/GEOID12B/GEOID12B_HI.shtml\" \n        target=\"_top\">Hawaii</a>, <a \n        href=\"https://Geodesy.NOAA.gov/GEOID/GEOID12B/GEOID12B_GMNI.shtml\" \n        target=\"_top\">Guam and Northern Mariana Islands</a>, <a \n        href=\"https://Geodesy.NOAA.gov/GEOID/GEOID12B/GEOID12B_PRVI.shtml\" \n        target=\"_top\">Puerto Rico and U.S. Virgin Islands</a> and <a \n        href=\"https://Geodesy.NOAA.gov/GEOID/GEOID12B/GEOID12B_AS.shtml\" \n        target=\"_top\">American Samoa</a> based on <code>SciPy</code> \n        interpolation <a \n        href=\"https://docs.SciPy.org/doc/scipy/reference/generated/scipy.interpolate.RectBivariateSpline.html\"\n        target=\"_top\">RectBivariateSpline</a>, <a \n        href=\"https://docs.SciPy.org/doc/scipy/reference/generated/scipy.interpolate.interp2d.html\"\n        target=\"_top\">interp2d</a> or <a \n        href=\"https://docs.scipy.org/doc/scipy/reference/generated/scipy.interpolate.bisplrep.html\"\n        target=\"_top\">bisplrep/-ev</a>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.geoids.GeoidKarney-class.html\">pygeodesy.geoids.GeoidKarney</a></strong>:\n      <em class=\"summary\">Geoid height interpolator for <i>Karney</i>'s <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/geoid.html\" \n        target=\"_top\">GeographicLib Earth Gravitational Model (EGM)</a> \n        geoid <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/geoid.html#geoidinst\"\n        target=\"_top\">egm*.pgm</a> datasets using bilinear or <a \n        href=\"https://dl.ACM.org/citation.cfm?id=368443\" \n        target=\"_top\">cubic</a> interpolation and <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/geoid.html#geoidcache\"\n        target=\"_top\">caching</a> in pure Python, transcoded from \n        <i>Karney</i>'s <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/geoid.html#geoidinterp\"\n        target=\"_top\">C++ class Geoid</a>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.geoids.GeoidPGM-class.html\">pygeodesy.geoids.GeoidPGM</a></strong>:\n      <em class=\"summary\">Geoid height interpolator for <i>Karney</i>'s <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/geoid.html\" \n        target=\"_top\">GeographicLib Earth Gravitational Model (EGM)</a> \n        geoid <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/geoid.html#geoidinst\"\n        target=\"_top\">egm*.pgm</a> datasets but based on <code>SciPy</code>\n        <a \n        href=\"https://docs.SciPy.org/doc/scipy/reference/generated/scipy.interpolate.RectBivariateSpline.html\"\n        target=\"_top\">RectBivariateSpline</a>, <a \n        href=\"https://docs.SciPy.org/doc/scipy/reference/generated/scipy.interpolate.bisplrep.html\"\n        target=\"_top\">bisplrep/-ev</a> or <a \n        href=\"https://docs.SciPy.org/doc/scipy/reference/generated/scipy.interpolate.interp2d.html\"\n        target=\"_top\">interp2d</a> interpolation.</em>\n    </li>\n    </ul>\n    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.heights._HeightIDW-class.html\">pygeodesy.heights._HeightIDW</a></strong>:\n      <em class=\"summary\">(INTERNAL) Base class for <a \n        href=\"https://WikiPedia.org/wiki/Inverse_distance_weighting\" \n        target=\"_top\">Inverse Distance Weighting</a> (IDW) height \n        interpolators.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.heights.HeightIDWcosineLaw-class.html\">pygeodesy.heights.HeightIDWcosineLaw</a></strong>:\n      <em class=\"summary\">Height interpolator using <a \n        href=\"https://WikiPedia.org/wiki/Inverse_distance_weighting\" \n        target=\"_top\">Inverse Distance Weighting</a> (IDW) and function <a \n        href=\"pygeodesy.formy-module.html#cosineLaw\" \n        class=\"link\">pygeodesy.cosineLaw</a>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.heights.HeightIDWdistanceTo-class.html\">pygeodesy.heights.HeightIDWdistanceTo</a></strong>:\n      <em class=\"summary\">Height interpolator using <a \n        href=\"https://WikiPedia.org/wiki/Inverse_distance_weighting\" \n        target=\"_top\">Inverse Distance Weighting</a> (IDW) and the points' \n        <code>LatLon.distanceTo</code> method.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.heights.HeightIDWequirectangular-class.html\">pygeodesy.heights.HeightIDWequirectangular</a></strong>:\n      <em class=\"summary\">Height interpolator using <a \n        href=\"https://WikiPedia.org/wiki/Inverse_distance_weighting\" \n        target=\"_top\">Inverse Distance Weighting</a> (IDW) and function <a \n        href=\"pygeodesy.geohash-module.html#equirectangular4\" \n        class=\"link\">pygeodesy.equirectangular4</a>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.heights.HeightIDWeuclidean-class.html\">pygeodesy.heights.HeightIDWeuclidean</a></strong>:\n      <em class=\"summary\">Height interpolator using <a \n        href=\"https://WikiPedia.org/wiki/Inverse_distance_weighting\" \n        target=\"_top\">Inverse Distance Weighting</a> (IDW) and function <a \n        href=\"pygeodesy.geohash-module.html#euclidean_\" \n        class=\"link\">pygeodesy.euclidean_</a>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.heights.HeightIDWexact-class.html\">pygeodesy.heights.HeightIDWexact</a></strong>:\n      <em class=\"summary\">Height interpolator using <a \n        href=\"https://WikiPedia.org/wiki/Inverse_distance_weighting\" \n        target=\"_top\">Inverse Distance Weighting</a> (IDW) and method <a \n        href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html#Inverse\" \n        class=\"link\">GeodesicExact.Inverse</a>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.heights.HeightIDWflatLocal-class.html\">pygeodesy.heights.HeightIDWflatLocal</a></strong>:\n      <em class=\"summary\">Height interpolator using <a \n        href=\"https://WikiPedia.org/wiki/Inverse_distance_weighting\" \n        target=\"_top\">Inverse Distance Weighting</a> (IDW) and the function\n        <a href=\"pygeodesy.formy-module.html#flatLocal_\" \n        class=\"link\">pygeodesy.flatLocal_</a>/<a \n        href=\"pygeodesy.formy-module.html#flatLocal_\" \n        class=\"link\">pygeodesy.hubeny_</a>.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.heights.HeightIDWhubeny-class.html\">pygeodesy.heights.HeightIDWhubeny</a></strong>:\n      <em class=\"summary\">Height interpolator using <a \n        href=\"https://WikiPedia.org/wiki/Inverse_distance_weighting\" \n        target=\"_top\">Inverse Distance Weighting</a> (IDW) and the function\n        <a href=\"pygeodesy.formy-module.html#flatLocal_\" \n        class=\"link\">pygeodesy.flatLocal_</a>/<a \n        href=\"pygeodesy.formy-module.html#flatLocal_\" \n        class=\"link\">pygeodesy.hubeny_</a>.</em>\n    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.heights.HeightIDWflatPolar-class.html\">pygeodesy.heights.HeightIDWflatPolar</a></strong>:\n      <em class=\"summary\">Height interpolator using <a \n        href=\"https://WikiPedia.org/wiki/Inverse_distance_weighting\" \n        target=\"_top\">Inverse Distance Weighting</a> (IDW) and function <a \n        href=\"pygeodesy.formy-module.html#flatPolar_\" \n        class=\"link\">pygeodesy.flatPolar_</a>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.heights.HeightIDWhaversine-class.html\">pygeodesy.heights.HeightIDWhaversine</a></strong>:\n      <em class=\"summary\">Height interpolator using <a \n        href=\"https://WikiPedia.org/wiki/Inverse_distance_weighting\" \n        target=\"_top\">Inverse Distance Weighting</a> (IDW) and function <a \n        href=\"pygeodesy.geohash-module.html#haversine_\" \n        class=\"link\">pygeodesy.haversine_</a>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.heights.HeightIDWkarney-class.html\">pygeodesy.heights.HeightIDWkarney</a></strong>:\n      <em class=\"summary\">Height interpolator using <a \n        href=\"https://WikiPedia.org/wiki/Inverse_distance_weighting\" \n        target=\"_top\">Inverse Distance Weighting</a> (IDW) and \n        <i>Karney</i>'s <a href=\"https://PyPI.org/project/geographiclib\" \n        target=\"_top\">geographiclib</a> method <a \n        href=\"https://GeographicLib.SourceForge.io/Python/doc/code.html#geographiclib.geodesic.Geodesic.Inverse\"\n        target=\"_top\">geodesic.Geodesic.Inverse</a>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.heights.HeightIDWthomas-class.html\">pygeodesy.heights.HeightIDWthomas</a></strong>:\n      <em class=\"summary\">Height interpolator using <a \n        href=\"https://WikiPedia.org/wiki/Inverse_distance_weighting\" \n        target=\"_top\">Inverse Distance Weighting</a> (IDW) and function <a \n        href=\"pygeodesy.formy-module.html#thomas_\" \n        class=\"link\">pygeodesy.thomas_</a>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.heights.HeightIDWvincentys-class.html\">pygeodesy.heights.HeightIDWvincentys</a></strong>:\n      <em class=\"summary\">Height interpolator using <a \n        href=\"https://WikiPedia.org/wiki/Inverse_distance_weighting\" \n        target=\"_top\">Inverse Distance Weighting</a> (IDW) and function <a \n        href=\"pygeodesy.geohash-module.html#vincentys_\" \n        class=\"link\">pygeodesy.vincentys_</a>.</em>\n    </li>\n    </ul>\n    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.booleans._LatLonBool-class.html\">pygeodesy.booleans._LatLonBool</a></strong>:\n      <em class=\"summary\">(INTERNAL) Base class for <a \n        href=\"pygeodesy.booleans.LatLonFHP-class.html\" \n        class=\"link\">LatLonFHP</a> and <a \n        href=\"pygeodesy.booleans.LatLonGH-class.html\" \n        class=\"link\">LatLonGH</a>.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.booleans.LatLonFHP-class.html\">pygeodesy.booleans.LatLonFHP</a></strong>:\n      <em class=\"summary\">A point or intersection in a <a \n        href=\"pygeodesy.booleans.BooleanFHP-class.html\" \n        class=\"link\">BooleanFHP</a> clip or composite.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.booleans.LatLonGH-class.html\">pygeodesy.booleans.LatLonGH</a></strong>:\n      <em class=\"summary\">A point or intersection in a <a \n        href=\"pygeodesy.booleans.BooleanGH-class.html\" \n        class=\"link\">BooleanGH</a> clip or composite.</em>\n    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.named._NamedBase-class.html\">pygeodesy.named._NamedBase</a></strong>:\n      <em class=\"summary\">(INTERNAL) Base class with name.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.ltp.Attitude-class.html\">pygeodesy.ltp.Attitude</a></strong>:\n      <em class=\"summary\">The pose of a plane or camera in space.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.css.CassiniSoldner-class.html\">pygeodesy.css.CassiniSoldner</a></strong>:\n      <em class=\"summary\">Cassini-Soldner projection, a Python version of <i>Karney</i>'s C++\n        class <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1CassiniSoldner.html\"\n        target=\"_top\">CassiniSoldner</a>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.css.Css-class.html\">pygeodesy.css.Css</a></strong>:\n      <em class=\"summary\">Cassini-Soldner East-/Northing location.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.ellipses.Ellipse-class.html\">pygeodesy.ellipses.Ellipse</a></strong>:\n      <em class=\"summary\">Class to compute various attributes of a 2-D ellipse.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.etm.ExactTransverseMercator-class.html\">pygeodesy.etm.ExactTransverseMercator</a></strong>:\n      <em class=\"summary\">Pure Python version of Karney's C++ class <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/TransverseMercatorExact_8cpp_source.html\"\n        target=\"_top\">TransverseMercatorExact</a>, a numerically exact \n        transverse Mercator projection, abbreviated as \n        <code>TMExact</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.ltp.Frustum-class.html\">pygeodesy.ltp.Frustum</a></strong>:\n      <em class=\"summary\">A rectangular pyramid, typically representing a camera's \n        <i>field-of-view</i> (fov) and the intersection with (or projection\n        to) a <i>local tangent plane</i>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html\">pygeodesy.geodesicx.gxarea.GeodesicAreaExact</a></strong>:\n      <em class=\"summary\">Area and perimeter of a geodesic polygon, an enhanced version of \n        <i>Karney</i>'s Python class <a \n        href=\"https://GeographicLib.SourceForge.io/html/python/code.html#module-geographiclib.polygonarea\"\n        target=\"_top\">PolygonArea</a> using the more accurate surface area.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.geodesicx.gxarea.PolygonArea-class.html\">pygeodesy.geodesicx.gxarea.PolygonArea</a></strong>:\n      <em class=\"summary\">For <code>geographiclib</code> compatibility, sub-class of <a \n        href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html\" \n        class=\"link\">GeodesicAreaExact</a>.</em>\n    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.ktm.KTransverseMercator-class.html\">pygeodesy.ktm.KTransverseMercator</a></strong>:\n      <em class=\"summary\"><i>Karney</i>'s C++ class <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1TransverseMercator.html\"\n        target=\"_top\">TransverseMercator</a> transcoded to pure Python, \n        following is a partial copy of <i>Karney</i>'s documentation.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">pygeodesy.latlonBase.LatLonBase</a></strong>:\n      <em class=\"summary\">(INTERNAL) Base class for ellipsoidal and spherical \n        <code>satLon</code>s.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html\">pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase</a></strong>:\n      <em class=\"summary\">(INTERNAL) Base class for ellipsoidal <code>LatLon</code>s.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.ellipsoidalNvector.LatLon-class.html\">pygeodesy.ellipsoidalNvector.LatLon</a></strong>:\n      <em class=\"summary\">An n-vector-based, ellipsoidal <a \n        href=\"pygeodesy.ellipsoidalNvector.LatLon-class.html\" \n        class=\"link\">LatLon</a> point.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html\">pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI</a></strong>:\n      <em class=\"summary\">(INTERNAL) Base class for <code>ellipsoidal*.LatLon</code> classes \n        with <i>overloaded</i> <code>Direct</code> and <code>Inverse</code>\n        methods.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.ellipsoidalExact.LatLon-class.html\">pygeodesy.ellipsoidalExact.LatLon</a></strong>:\n      <em class=\"summary\">An ellipsoidal <a \n        href=\"pygeodesy.ellipsoidalExact.LatLon-class.html\" \n        class=\"link\">LatLon</a> like <a \n        href=\"pygeodesy.ellipsoidalKarney.LatLon-class.html\" \n        class=\"link\">ellipsoidalKarney.LatLon</a> but using exact geodesic \n        classes <a href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html\" \n        class=\"link\">GeodesicExact</a> and <a \n        href=\"pygeodesy.geodesicx.gx.GeodesicLineExact-class.html\" \n        class=\"link\">GeodesicLineExact</a> to compute geodesic distances, \n        bearings (azimuths), etc.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.ellipsoidalGeodSolve.LatLon-class.html\">pygeodesy.ellipsoidalGeodSolve.LatLon</a></strong>:\n      <em class=\"summary\">An ellipsoidal <a \n        href=\"pygeodesy.ellipsoidalGeodSolve.LatLon-class.html\" \n        class=\"link\">LatLon</a> like <a \n        href=\"pygeodesy.ellipsoidalKarney.LatLon-class.html\" \n        class=\"link\">ellipsoidalKarney.LatLon</a> but using (exact) \n        geodesic <i>wrapper</i> <a \n        href=\"pygeodesy.geodsolve.GeodesicSolve-class.html\" \n        class=\"link\">GeodesicSolve</a> to compute the geodesic distance, \n        initial and final bearing (azimuths) between two given points or \n        the destination point given a start point and an (initial) bearing.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.ellipsoidalKarney.LatLon-class.html\">pygeodesy.ellipsoidalKarney.LatLon</a></strong>:\n      <em class=\"summary\">An ellipsoidal <a \n        href=\"pygeodesy.ellipsoidalKarney.LatLon-class.html\" \n        class=\"link\">LatLon</a> similar to <a \n        href=\"pygeodesy.ellipsoidalVincenty.LatLon-class.html\" \n        class=\"link\">ellipsoidalVincenty.LatLon</a> but using \n        <i>Karney</i>'s Python <a \n        href=\"https://PyPI.org/project/geographiclib\" \n        target=\"_top\">geographiclib</a> to compute geodesic distances, \n        bearings (azimuths), etc.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.ellipsoidalVincenty.LatLon-class.html\">pygeodesy.ellipsoidalVincenty.LatLon</a></strong>:\n      <em class=\"summary\">New point on an (oblate) ellipsoidal earth model, using the \n        formulae devised by <a \n        href=\"https://WikiPedia.org/wiki/Vincenty's_formulae\" \n        target=\"_top\"><i>Thaddeus Vincenty</i></a> (1975) to compute \n        geodesic distances, bearings (azimuths), etc.</em>\n    </li>\n    </ul>\n    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.deprecated.bases.LatLonHeightBase-class.html\">pygeodesy.deprecated.bases.LatLonHeightBase</a></strong>:\n      <em class=\"summary\">DEPRECATED on 2021.02.10, use (INTERNAL) class <a \n        href=\"pygeodesy.latlonBase.LatLonBase-class.html\" \n        class=\"link\">pygeodesy.latlonBase.LatLonBase</a>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.nvectorBase.LatLonNvectorBase-class.html\">pygeodesy.nvectorBase.LatLonNvectorBase</a></strong>:\n      <em class=\"summary\">(INTERNAL) Base class for n-vector-based ellipsoidal and spherical \n        <code>LatLon</code>s.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.ellipsoidalNvector.LatLon-class.html\">pygeodesy.ellipsoidalNvector.LatLon</a></strong>:\n      <em class=\"summary\">An n-vector-based, ellipsoidal <a \n        href=\"pygeodesy.ellipsoidalNvector.LatLon-class.html\" \n        class=\"link\">LatLon</a> point.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.sphericalNvector.LatLon-class.html\">pygeodesy.sphericalNvector.LatLon</a></strong>:\n      <em class=\"summary\">New n-vector-based point on a spherical earth model.</em>\n    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html\">pygeodesy.sphericalBase.LatLonSphericalBase</a></strong>:\n      <em class=\"summary\">(INTERNAL) Base class for spherical <code>LatLon</code>s.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.sphericalNvector.LatLon-class.html\">pygeodesy.sphericalNvector.LatLon</a></strong>:\n      <em class=\"summary\">New n-vector-based point on a spherical earth model.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html\">pygeodesy.sphericalTrigonometry.LatLon</a></strong>:\n      <em class=\"summary\">New point on a spherical earth model, based on trigonometry \n        formulae.</em>\n    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.points.LatLon_-class.html\">pygeodesy.points.LatLon_</a></strong>:\n      <em class=\"summary\">Low-overhead <code>LatLon</code> class, mainly for <a \n        href=\"pygeodesy.points.Numpy2LatLon-class.html\" \n        class=\"link\">Numpy2LatLon</a> and <a \n        href=\"pygeodesy.points.Tuple2LatLon-class.html\" \n        class=\"link\">Tuple2LatLon</a>.</em>\n    <ul>\n    </ul>\n    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.lcc.Lcc-class.html\">pygeodesy.lcc.Lcc</a></strong>:\n      <em class=\"summary\">Lambert conformal conic East-/Northing location.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.ltp.LocalCartesian-class.html\">pygeodesy.ltp.LocalCartesian</a></strong>:\n      <em class=\"summary\">Conversion between geodetic <code>(lat, lon, height)</code> and \n        <i>local cartesian</i> <code>(x, y, z)</code> coordinates with \n        <i>geodetic</i> origin <code>(lat0, lon0, height0)</code>, \n        transcoded from <i>Karney</i>'s C++ class <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1LocalCartesian.html\"\n        target=\"_top\">LocalCartesian</a>.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.ltp.ChLVa-class.html\">pygeodesy.ltp.ChLVa</a></strong>:\n      <em class=\"summary\">Conversion between <i>WGS84 geodetic</i> and <i>Swiss</i> \n        projection coordinates using the <a \n        href=\"https://www.SwissTopo.admin.CH/en/maps-data-online/calculation-services.html\"\n        target=\"_top\">Approximate</a> formulas, page 13.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.ltp.ChLVe-class.html\">pygeodesy.ltp.ChLVe</a></strong>:\n      <em class=\"summary\">Conversion between <i>WGS84 geodetic</i> and <i>Swiss</i> \n        projection coordinates using the <a \n        href=\"https://www.SwissTopo.admin.CH/en/maps-data-online/calculation-services.html\"\n        target=\"_top\">Ellipsoidal approximate</a> formulas, pp 10-11 and <a\n        \n        href=\"https://eMuseum.GGGS.CH/literatur-lv/liste-Dateien/1967_Bolliger_a.pdf\"\n        target=\"_top\">Bolliger, J.</a> pp 148-151 (also <a \n        href=\"https://eMuseum.GGGS.CH/literatur-lv/liste.htm\" \n        target=\"_top\">GGGS</a>).</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.ltp.Ltp-class.html\">pygeodesy.ltp.Ltp</a></strong>:\n      <em class=\"summary\">A <i>local tangent plan</i> (LTP), a sub-class of \n        <code>LocalCartesian</code> with (re-)configurable ECEF converter.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.ltp.ChLV-class.html\">pygeodesy.ltp.ChLV</a></strong>:\n      <em class=\"summary\">Conversion between <i>WGS84 geodetic</i> and <i>Swiss</i> \n        projection coordinates using <a \n        href=\"pygeodesy.ecef.EcefKarney-class.html\" \n        class=\"link\">pygeodesy.EcefKarney</a>'s Earth-Centered, Earth-Fixed\n        (ECEF) methods.</em>\n    </li>\n    </ul>\n    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.mgrs.Mgrs-class.html\">pygeodesy.mgrs.Mgrs</a></strong>:\n      <em class=\"summary\">Military Grid Reference System (MGRS/NATO) references, with method \n        to convert to UTM coordinates.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.osgr.Osgr-class.html\">pygeodesy.osgr.Osgr</a></strong>:\n      <em class=\"summary\">Ordnance Survey Grid References (OSGR) coordinates on the <a \n        href=\"https://www.OrdnanceSurvey.co.UK/documents/resources/guide-to-nationalgrid.pdf\"\n        target=\"_top\">National Grid</a>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html\">pygeodesy.utmupsBase.UtmUpsBase</a></strong>:\n      <em class=\"summary\">(INTERNAL) Base class for <a href=\"pygeodesy.utm.Utm-class.html\" \n        class=\"link\">Utm</a> and <a href=\"pygeodesy.ups.Ups-class.html\" \n        class=\"link\">Ups</a> coordinates.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.ups.Ups-class.html\">pygeodesy.ups.Ups</a></strong>:\n      <em class=\"summary\">Universal Polar Stereographic (UPS) coordinate.</em>\n    <ul>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.utm.Utm-class.html\">pygeodesy.utm.Utm</a></strong>:\n      <em class=\"summary\">Universal Transverse Mercator (UTM) coordinate.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.etm.Etm-class.html\">pygeodesy.etm.Etm</a></strong>:\n      <em class=\"summary\">Exact Transverse Mercator (ETM) coordinate, a sub-class of <a \n        href=\"pygeodesy.utm.Utm-class.html\" class=\"link\">Utm</a>, a \n        Universal Transverse Mercator (UTM) coordinate using the <a \n        href=\"pygeodesy.etm.ExactTransverseMercator-class.html\" \n        class=\"link\">ExactTransverseMercator</a> projection for highest \n        accuracy.</em>\n    </li>\n    </ul>\n    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">pygeodesy.vector3dBase.Vector3dBase</a></strong>:\n      <em class=\"summary\">(INTERNAL) Generic 3-D vector base class.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.vector3d.Vector3d-class.html\">pygeodesy.vector3d.Vector3d</a></strong>:\n      <em class=\"summary\">Extended 3-D vector.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html\">pygeodesy.cartesianBase.CartesianBase</a></strong>:\n      <em class=\"summary\">(INTERNAL) Base class for ellipsoidal and spherical \n        <code>Cartesian</code>.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html\">pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase</a></strong>:\n      <em class=\"summary\">(INTERNAL) Base class for ellipsoidal <code>Cartesian</code>s.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.ellipsoidalExact.Cartesian-class.html\">pygeodesy.ellipsoidalExact.Cartesian</a></strong>:\n      <em class=\"summary\">Extended to convert exact <a \n        href=\"pygeodesy.ellipsoidalExact.Cartesian-class.html\" \n        class=\"link\">Cartesian</a> to exact <a \n        href=\"pygeodesy.ellipsoidalExact.LatLon-class.html\" \n        class=\"link\">LatLon</a> points.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.ellipsoidalGeodSolve.Cartesian-class.html\">pygeodesy.ellipsoidalGeodSolve.Cartesian</a></strong>:\n      <em class=\"summary\">Extended to convert exact <a \n        href=\"pygeodesy.ellipsoidalGeodSolve.Cartesian-class.html\" \n        class=\"link\">Cartesian</a> to exact <a \n        href=\"pygeodesy.ellipsoidalGeodSolve.LatLon-class.html\" \n        class=\"link\">LatLon</a> points.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.ellipsoidalVincenty.Cartesian-class.html\">pygeodesy.ellipsoidalVincenty.Cartesian</a></strong>:\n      <em class=\"summary\">Extended to convert geocentric, <a \n        href=\"pygeodesy.ellipsoidalVincenty.Cartesian-class.html\" \n        class=\"link\">Cartesian</a> points to Vincenty-based, ellipsoidal, \n        geodetic <a href=\"pygeodesy.ellipsoidalVincenty.LatLon-class.html\" \n        class=\"link\">LatLon</a>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.ellipsoidalNvector.Cartesian-class.html\">pygeodesy.ellipsoidalNvector.Cartesian</a></strong>:\n      <em class=\"summary\">Extended to convert geocentric, <a \n        href=\"pygeodesy.ellipsoidalNvector.Cartesian-class.html\" \n        class=\"link\">Cartesian</a> points to <code>Nvector</code> and \n        n-vector-based, geodetic <a \n        href=\"pygeodesy.ellipsoidalNvector.LatLon-class.html\" \n        class=\"link\">LatLon</a>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.ellipsoidalKarney.Cartesian-class.html\">pygeodesy.ellipsoidalKarney.Cartesian</a></strong>:\n      <em class=\"summary\">Extended to convert <code>Karney</code>-based <a \n        href=\"pygeodesy.ellipsoidalKarney.Cartesian-class.html\" \n        class=\"link\">Cartesian</a> to <code>Karney</code>-based <a \n        href=\"pygeodesy.ellipsoidalKarney.LatLon-class.html\" \n        class=\"link\">LatLon</a> points.</em>\n    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.sphericalBase.CartesianSphericalBase-class.html\">pygeodesy.sphericalBase.CartesianSphericalBase</a></strong>:\n      <em class=\"summary\">(INTERNAL) Base class for spherical <code>Cartesian</code>s.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.sphericalNvector.Cartesian-class.html\">pygeodesy.sphericalNvector.Cartesian</a></strong>:\n      <em class=\"summary\">Extended to convert geocentric, <a \n        href=\"pygeodesy.sphericalNvector.Cartesian-class.html\" \n        class=\"link\">Cartesian</a> points to <code>Nvector</code> and \n        n-vector-based, spherical <a \n        href=\"pygeodesy.sphericalNvector.LatLon-class.html\" \n        class=\"link\">LatLon</a>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.sphericalTrigonometry.Cartesian-class.html\">pygeodesy.sphericalTrigonometry.Cartesian</a></strong>:\n      <em class=\"summary\">Extended to convert geocentric, <a \n        href=\"pygeodesy.sphericalTrigonometry.Cartesian-class.html\" \n        class=\"link\">Cartesian</a> points to spherical, geodetic <a \n        href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html\" \n        class=\"link\">LatLon</a>.</em>\n    </li>\n    </ul>\n    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html\">pygeodesy.nvectorBase.NvectorBase</a></strong>:\n      <em class=\"summary\">(INTERNAL) Base class for ellipsoidal and spherical \n        <code>Nvector</code>s.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.deprecated.nvector.Nvector-class.html\">pygeodesy.deprecated.nvector.Nvector</a></strong>:\n      <em class=\"summary\">DEPRECATED on 2021.05.20, see (INTERNAL) class <a \n        href=\"pygeodesy.nvectorBase.NvectorBase-class.html\" \n        class=\"link\">pygeodesy.nvectorBase.NvectorBase</a>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.ellipsoidalNvector.Nvector-class.html\">pygeodesy.ellipsoidalNvector.Nvector</a></strong>:\n      <em class=\"summary\">An n-vector is a position representation using a (unit) vector \n        normal to the earth ellipsoid.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.sphericalNvector.Nvector-class.html\">pygeodesy.sphericalNvector.Nvector</a></strong>:\n      <em class=\"summary\">An n-vector is a position representation using a (unit) vector \n        normal to the earth's surface.</em>\n    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\">pygeodesy.ltpTuples._Vector3d</strong>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.ltpTuples.Uvw-class.html\">pygeodesy.ltpTuples.Uvw</a></strong>:\n      <em class=\"summary\">3-D <code>u-v-w</code> (UVW) components.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.ltpTuples.XyzLocal-class.html\">pygeodesy.ltpTuples.XyzLocal</a></strong>:\n      <em class=\"summary\">Local <code>(x, y, z)</code> in a <i>local tangent plane</i> (LTP),\n        also base class for local <a \n        href=\"pygeodesy.ltpTuples.Enu-class.html\" class=\"link\">Enu</a>.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.ltpTuples.Enu-class.html\">pygeodesy.ltpTuples.Enu</a></strong>:\n      <em class=\"summary\">Local <code>Eeast-North-Up</code> (ENU) location in a <i>local \n        tangent plane</i>.</em>\n    </li>\n    </ul>\n    </li>\n    </ul>\n    </li>\n    </ul>\n    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.webmercator.Wm-class.html\">pygeodesy.webmercator.Wm</a></strong>:\n      <em class=\"summary\">Web Mercator (WM) coordinate.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.ltpTuples._AbcBase-class.html\">pygeodesy.ltpTuples._AbcBase</a></strong>:\n      <em class=\"summary\">(INTERNAL) Base class for classes <code>Aer</code> and \n        <code>Ned</code>.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.ltpTuples.Aer-class.html\">pygeodesy.ltpTuples.Aer</a></strong>:\n      <em class=\"summary\">Local <code>Azimuth-Elevation-Range</code> (AER) in a <i>local \n        tangent plane</i>.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.ltpTuples.Los-class.html\">pygeodesy.ltpTuples.Los</a></strong>:\n      <em class=\"summary\">A Line-Of-Sight (LOS) from a <code>LatLon</code> or \n        <code>Cartesian</code> location.</em>\n    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.ltpTuples.Ned-class.html\">pygeodesy.ltpTuples.Ned</a></strong>:\n      <em class=\"summary\">Local <code>North-Eeast-Down</code> (NED) location in a <i>local \n        tangent plane</i>.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.ellipsoidalNvector.Ned-class.html\">pygeodesy.ellipsoidalNvector.Ned</a></strong>:\n      <em class=\"summary\">DEPRECATED on 2024.02.04, use class <a \n        href=\"pygeodesy.ltpTuples.Ned-class.html\" \n        class=\"link\">pygeodesy.Ned</a>.</em>\n    </li>\n    </ul>\n    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.albers._AlbersBase-class.html\">pygeodesy.albers._AlbersBase</a></strong>:\n      <em class=\"summary\">(INTERNAL) Base class for <code>AlbersEqualArea...</code> \n        projections.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.albers.AlbersEqualArea-class.html\">pygeodesy.albers.AlbersEqualArea</a></strong>:\n      <em class=\"summary\">An Albers equal-area (authalic) projection with a single standard \n        parallel.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.albers.AlbersEqualArea2-class.html\">pygeodesy.albers.AlbersEqualArea2</a></strong>:\n      <em class=\"summary\">An Albers equal-area (authalic) projection with two standard \n        parallels.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.albers.AlbersEqualArea4-class.html\">pygeodesy.albers.AlbersEqualArea4</a></strong>:\n      <em class=\"summary\">An Albers equal-area (authalic) projection specified by the \n        <code>sin</code> and <code>cos</code> of both standard parallels.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.albers.AlbersEqualAreaCylindrical-class.html\">pygeodesy.albers.AlbersEqualAreaCylindrical</a></strong>:\n      <em class=\"summary\">An <a href=\"pygeodesy.albers.AlbersEqualArea-class.html\" \n        class=\"link\">AlbersEqualArea</a> projection at <code>lat=0</code> \n        and <code>k0=1</code> degenerating to the cylindrical-equal-area \n        projection.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.albers.AlbersEqualAreaNorth-class.html\">pygeodesy.albers.AlbersEqualAreaNorth</a></strong>:\n      <em class=\"summary\">An azimuthal <a href=\"pygeodesy.albers.AlbersEqualArea-class.html\" \n        class=\"link\">AlbersEqualArea</a> projection at <code>lat=90</code> \n        and <code>k0=1</code> degenerating to the <a \n        href=\"pygeodesy.azimuthal-module.html\" class=\"link\">azimuthal</a> \n        <a href=\"pygeodesy.azimuthal.LambertEqualArea-class.html\" \n        class=\"link\">LambertEqualArea</a> projection.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.albers.AlbersEqualAreaSouth-class.html\">pygeodesy.albers.AlbersEqualAreaSouth</a></strong>:\n      <em class=\"summary\">An azimuthal <a href=\"pygeodesy.albers.AlbersEqualArea-class.html\" \n        class=\"link\">AlbersEqualArea</a> projection at <code>lat=-90</code>\n        and <code>k0=1</code> degenerating to the <a \n        href=\"pygeodesy.azimuthal-module.html\" class=\"link\">azimuthal</a> \n        <a href=\"pygeodesy.azimuthal.LambertEqualArea-class.html\" \n        class=\"link\">LambertEqualArea</a> projection.</em>\n    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html\">pygeodesy.azimuthal._AzimuthalBase</a></strong>:\n      <em class=\"summary\">(INTERNAL) Base class for azimuthal projections.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.azimuthal.Equidistant-class.html\">pygeodesy.azimuthal.Equidistant</a></strong>:\n      <em class=\"summary\">Azimuthal equidistant projection for the sphere***, see <a \n        href=\"https://Pubs.USGS.gov/pp/1395/report.pdf\" \n        target=\"_top\">Snyder, pp 195-197</a> and <a \n        href=\"https://MathWorld.Wolfram.com/AzimuthalEquidistantProjection.html\"\n        target=\"_top\">MathWorld-Wolfram</a>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.azimuthal.Gnomonic-class.html\">pygeodesy.azimuthal.Gnomonic</a></strong>:\n      <em class=\"summary\">Azimuthal gnomonic projection for the sphere***, see <a \n        href=\"https://Pubs.USGS.gov/pp/1395/report.pdf\" \n        target=\"_top\">Snyder, pp 164-168</a> and <a \n        href=\"https://MathWorld.Wolfram.com/GnomonicProjection.html\" \n        target=\"_top\">MathWorld-Wolfram</a>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.azimuthal.LambertEqualArea-class.html\">pygeodesy.azimuthal.LambertEqualArea</a></strong>:\n      <em class=\"summary\">Lambert-equal-area projection for the sphere*** (aka <a \n        href=\"https://WikiPedia.org/wiki/Lambert_azimuthal_equal-area_projection\"\n        target=\"_top\">Lambert zenithal equal-area projection</a>, see <a \n        href=\"https://Pubs.USGS.gov/pp/1395/report.pdf\" \n        target=\"_top\">Snyder, pp 185-187</a> and <a \n        href=\"https://MathWorld.Wolfram.com/LambertAzimuthalEqual-AreaProjection.html\"\n        target=\"_top\">MathWorld-Wolfram</a>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.azimuthal.Orthographic-class.html\">pygeodesy.azimuthal.Orthographic</a></strong>:\n      <em class=\"summary\">Orthographic projection for the sphere***, see <a \n        href=\"https://Pubs.USGS.gov/pp/1395/report.pdf\" \n        target=\"_top\">Snyder, pp 148-153</a> and <a \n        href=\"https://MathWorld.Wolfram.com/OrthographicProjection.html\" \n        target=\"_top\">MathWorld-Wolfram</a>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.azimuthal.Stereographic-class.html\">pygeodesy.azimuthal.Stereographic</a></strong>:\n      <em class=\"summary\">Stereographic projection for the sphere***, see <a \n        href=\"https://Pubs.USGS.gov/pp/1395/report.pdf\" \n        target=\"_top\">Snyder, pp 157-160</a> and <a \n        href=\"https://MathWorld.Wolfram.com/StereographicProjection.html\" \n        target=\"_top\">MathWorld-Wolfram</a>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.azimuthal._AzimuthalGeodesic-class.html\">pygeodesy.azimuthal._AzimuthalGeodesic</a></strong>:\n      <em class=\"summary\">(INTERNAL) Base class for azimuthal projections using the \n        <i>wrapped</i> <a \n        href=\"https://GeographicLib.SourceForge.io/Python/doc/code.html\" \n        target=\"_top\">geodesic.Geodesic and geodesicline.GeodesicLine</a> \n        or the <i>exact</i> geodesic classes <a \n        href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html\" \n        class=\"link\">GeodesicExact</a> and <a \n        href=\"pygeodesy.geodesicx.gx.GeodesicLineExact-class.html\" \n        class=\"link\">GeodesicLineExact</a>.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.azimuthal._EquidistantBase-class.html\">pygeodesy.azimuthal._EquidistantBase</a></strong>:\n      <em class=\"summary\">(INTERNAL) Base for classes <a \n        href=\"pygeodesy.azimuthal.EquidistantExact-class.html\" \n        class=\"link\">EquidistantExact</a>, <a \n        href=\"pygeodesy.azimuthal.EquidistantGeodSolve-class.html\" \n        class=\"link\">EquidistantGeodSolve</a> and <a \n        href=\"pygeodesy.azimuthal.EquidistantKarney-class.html\" \n        class=\"link\">EquidistantKarney</a>.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.azimuthal.EquidistantExact-class.html\">pygeodesy.azimuthal.EquidistantExact</a></strong>:\n      <em class=\"summary\">Azimuthal equidistant projection, a Python version of \n        <i>Karney</i>'s C++ class <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1AzimuthalEquidistant.html\"\n        target=\"_top\">AzimuthalEquidistant</a>, based on exact geodesic \n        classes <a href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html\" \n        class=\"link\">GeodesicExact</a> and <a \n        href=\"pygeodesy.geodesicx.gx.GeodesicLineExact-class.html\" \n        class=\"link\">GeodesicLineExact</a>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.azimuthal.EquidistantGeodSolve-class.html\">pygeodesy.azimuthal.EquidistantGeodSolve</a></strong>:\n      <em class=\"summary\">Azimuthal equidistant projection, a Python version of \n        <i>Karney</i>'s C++ class <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1AzimuthalEquidistant.html\"\n        target=\"_top\">AzimuthalEquidistant</a>, based on (exact) geodesic \n        <i>wrappers</i> <a \n        href=\"pygeodesy.geodsolve.GeodesicSolve-class.html\" \n        class=\"link\">GeodesicSolve</a> and <a \n        href=\"pygeodesy.geodsolve.GeodesicLineSolve-class.html\" \n        class=\"link\">GeodesicLineSolve</a> and intended <i>for testing \n        purposes only</i>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.azimuthal.EquidistantKarney-class.html\">pygeodesy.azimuthal.EquidistantKarney</a></strong>:\n      <em class=\"summary\">Azimuthal equidistant projection, a Python version of \n        <i>Karney</i>'s C++ class <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1AzimuthalEquidistant.html\"\n        target=\"_top\">AzimuthalEquidistant</a>, requiring package <a \n        href=\"https://PyPI.org/project/geographiclib\" \n        target=\"_top\">geographiclib</a> to be installed.</em>\n    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.azimuthal._GnomonicBase-class.html\">pygeodesy.azimuthal._GnomonicBase</a></strong>:\n      <em class=\"summary\">(INTERNAL) Base for classes <a \n        href=\"pygeodesy.azimuthal.GnomonicExact-class.html\" \n        class=\"link\">GnomonicExact</a>, <a \n        href=\"pygeodesy.azimuthal.GnomonicGeodSolve-class.html\" \n        class=\"link\">GnomonicGeodSolve</a> and <a \n        href=\"pygeodesy.azimuthal.GnomonicKarney-class.html\" \n        class=\"link\">GnomonicKarney</a>.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.azimuthal.GnomonicExact-class.html\">pygeodesy.azimuthal.GnomonicExact</a></strong>:\n      <em class=\"summary\">Azimuthal gnomonic projection, a Python version of <i>Karney</i>'s \n        C++ class <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Gnomonic.html\"\n        target=\"_top\">Gnomonic</a>, based on exact geodesic classes <a \n        href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html\" \n        class=\"link\">GeodesicExact</a> and <a \n        href=\"pygeodesy.geodesicx.gx.GeodesicLineExact-class.html\" \n        class=\"link\">GeodesicLineExact</a>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.azimuthal.GnomonicGeodSolve-class.html\">pygeodesy.azimuthal.GnomonicGeodSolve</a></strong>:\n      <em class=\"summary\">Azimuthal gnomonic projection, a Python version of <i>Karney</i>'s \n        C++ class <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Gnomonic.html\"\n        target=\"_top\">Gnomonic</a>, based on (exact) geodesic \n        <i>wrappers</i> <a \n        href=\"pygeodesy.geodsolve.GeodesicSolve-class.html\" \n        class=\"link\">GeodesicSolve</a> and <a \n        href=\"pygeodesy.geodsolve.GeodesicLineSolve-class.html\" \n        class=\"link\">GeodesicLineSolve</a> and intended <i>for testing \n        purposes only</i>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.azimuthal.GnomonicKarney-class.html\">pygeodesy.azimuthal.GnomonicKarney</a></strong>:\n      <em class=\"summary\">Azimuthal gnomonic projection, a Python version of <i>Karney</i>'s \n        C++ class <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Gnomonic.html\"\n        target=\"_top\">Gnomonic</a>, requiring package <a \n        href=\"https://PyPI.org/project/geographiclib\" \n        target=\"_top\">geographiclib</a> to be installed.</em>\n    </li>\n    </ul>\n    </li>\n    </ul>\n    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.karney._CapsBase-class.html\">pygeodesy.karney._CapsBase</a></strong>:\n      <em class=\"summary\">(INTERNAL) Base class for <code>Geodesic*</code>, \n        <code>Geodesic*Exact</code>, <code>Intersectool</code> and \n        <code>Rhumb*Base</code>.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.rhumb.bases.RhumbBase-class.html\">pygeodesy.rhumb.bases.RhumbBase</a></strong>:\n      <em class=\"summary\">(INTERNAL) Base class for <code>rhumb.aux_.RhumbAux</code> and \n        <code>rhumb.ekx.Rhumb</code>.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.rhumb.ekx.Rhumb-class.html\">pygeodesy.rhumb.ekx.Rhumb</a></strong>:\n      <em class=\"summary\">Class to solve the <i>direct</i> and <i>inverse rhumb</i> problems,\n        based on <i>elliptic functions</i> or <i>Kr&#252;ger series \n        expansion</i></em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.rhumb.aux_.RhumbAux-class.html\">pygeodesy.rhumb.aux_.RhumbAux</a></strong>:\n      <em class=\"summary\">Class to solve the <i>direct</i> and <i>inverse rhumb</i> problems,\n        based on <i>Auxiliary Latitudes</i> for accuracy near the poles.</em>\n    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html\">pygeodesy.rhumb.bases.RhumbLineBase</a></strong>:\n      <em class=\"summary\">(INTERNAL) Base class for <code>rhumb.aux_.RhumbLineAux</code> and \n        <code>rhumb.ekx.RhumbLine</code>.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.rhumb.ekx.RhumbLine-class.html\">pygeodesy.rhumb.ekx.RhumbLine</a></strong>:\n      <em class=\"summary\">Compute one or several points on a single rhumb line.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.rhumb.aux_.RhumbLineAux-class.html\">pygeodesy.rhumb.aux_.RhumbLineAux</a></strong>:\n      <em class=\"summary\">Compute one or several points on a single rhumb line.</em>\n    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\">pygeodesy.geodesicx.gxbases._GeodesicBase</strong>:\n      <em class=\"summary\">(INTERNAL) Base class for <code>[_]Geodesic*Exact</code>.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html\">pygeodesy.geodesicx.gx.GeodesicExact</a></strong>:\n      <em class=\"summary\">A pure Python version of <i>Karney</i>'s C++ class <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1GeodesicExact.html\"\n        target=\"_top\">GeodesicExact</a>, modeled after <i>Karney</i>'s \n        Python class <a \n        href=\"https://GitHub.com/geographiclib/geographiclib-python\" \n        target=\"_top\">geodesic.Geodesic</a>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html\">pygeodesy.geodesicx.gxline._GeodesicLineExact</a></strong>:\n      <em class=\"summary\">(INTERNAL) Base class for <a \n        href=\"pygeodesy.geodesicx.gx.GeodesicLineExact-class.html\" \n        class=\"link\">GeodesicLineExact</a>.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.geodesicx.gx.GeodesicLineExact-class.html\">pygeodesy.geodesicx.gx.GeodesicLineExact</a></strong>:\n      <em class=\"summary\">A pure Python version of <i>Karney</i>'s C++ class <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1GeodesicLineExact.html\"\n        target=\"_top\">GeodesicLineExact</a>, modeled after <i>Karney</i>'s \n        Python class <a \n        href=\"https://GitHub.com/geographiclib/geographiclib-python\" \n        target=\"_top\">geodesicline.GeodesicLine</a>.</em>\n    </li>\n    </ul>\n    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html\">pygeodesy.solveBase._SolveCapsBase</a></strong>:\n      <em class=\"summary\">(NTERNAL) Base class for <code>_SolveBase</code> and \n        <code>_LineSolveBase</code>.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.geodesici.Intersectool-class.html\">pygeodesy.geodesici.Intersectool</a></strong>:\n      <em class=\"summary\">Wrapper to invoke <i>Karney</i>'s utility <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/IntersectTool.1.html\"\n        target=\"_top\">IntersectTool</a> similar to class <a \n        href=\"pygeodesy.geodesici.Intersector-class.html\" \n        class=\"link\">Intersector</a>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.solveBase._SolveBase-class.html\">pygeodesy.solveBase._SolveBase</a></strong>:\n      <em class=\"summary\">(INTERNAL) Base class for <code>_SolveBase</code> and \n        <code>_SolveLineBase</code>.</em>\n    <ul>\n    <li> <strong class=\"uidlink\">pygeodesy.solveBase._Solve3Base</strong>:\n      <em class=\"summary\">(NTERNAL) Base class for <code>_Geodesic[3]SolveBase</code>.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.geod3solve._Geodesic3SolveBase-class.html\">pygeodesy.geod3solve._Geodesic3SolveBase</a></strong>:\n      <em class=\"summary\">(INTERNAL) Base class for <a \n        href=\"pygeodesy.geod3solve.Geodesic3Solve-class.html\" \n        class=\"link\">Geodesic3Solve</a> and <a \n        href=\"pygeodesy.geod3solve.GeodesicLine3Solve-class.html\" \n        class=\"link\">GeodesicLine3Solve</a>.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.geod3solve.Geodesic3Solve-class.html\">pygeodesy.geod3solve.Geodesic3Solve</a></strong>:\n      <em class=\"summary\">Wrapper to invoke <i>Karney</i>'s <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/Geod3Solve.1.html\"\n        target=\"_top\">Geod3Solve</a> as a <code>triaxial</code> version of \n        <i>Karney</i>'s Python class <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/python/code.html#geographiclib.geodesic.Geodesic\"\n        target=\"_top\">Geodesic</a>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.geod3solve.GeodesicLine3Solve-class.html\">pygeodesy.geod3solve.GeodesicLine3Solve</a></strong>:\n      <em class=\"summary\">Wrapper to invoke <i>Karney</i>'s <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/GeodSolve.3.html\"\n        target=\"_top\">Geod3Solve</a> as a <code>triaxial</code> version of \n        <i>Karney</i>'s Python class <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/python/code.html#geographiclib.geodesicline.GeodesicLine\"\n        target=\"_top\">GeodesicLine</a>.</em>\n    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.solveBase._SolveGDictBase-class.html\">pygeodesy.solveBase._SolveGDictBase</a></strong>:\n      <em class=\"summary\">(NTERNAL) Base class for <code>_GeodesicSolveBase</code> and \n        <code>_RhumbSolveBase</code>.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.geodsolve._GeodesicSolveBase-class.html\">pygeodesy.geodsolve._GeodesicSolveBase</a></strong>:\n      <em class=\"summary\">(INTERNAL) Base class for <a \n        href=\"pygeodesy.geodsolve.GeodesicSolve-class.html\" \n        class=\"link\">GeodesicSolve</a> and <a \n        href=\"pygeodesy.geodsolve.GeodesicLineSolve-class.html\" \n        class=\"link\">GeodesicLineSolve</a>.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.geodsolve.GeodesicLineSolve-class.html\">pygeodesy.geodsolve.GeodesicLineSolve</a></strong>:\n      <em class=\"summary\">Wrapper to invoke <i>Karney</i>'s <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/GeodSolve.1.html\"\n        target=\"_top\">GeodSolve</a> as an <code>Exact</code> version of \n        <i>Karney</i>'s Python class <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/python/code.html#geographiclib.geodesicline.GeodesicLine\"\n        target=\"_top\">GeodesicLine</a>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.geodsolve.GeodesicSolve-class.html\">pygeodesy.geodsolve.GeodesicSolve</a></strong>:\n      <em class=\"summary\">Wrapper to invoke <i>Karney</i>'s <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/GeodSolve.1.html\"\n        target=\"_top\">GeodSolve</a> as an <code>Exact</code> version of \n        <i>Karney</i>'s Python class <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/python/code.html#geographiclib.geodesic.Geodesic\"\n        target=\"_top\">Geodesic</a>.</em>\n    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.rhumb.solve._RhumbSolveBase-class.html\">pygeodesy.rhumb.solve._RhumbSolveBase</a></strong>:\n      <em class=\"summary\">(INTERNAL) Base class for <a \n        href=\"pygeodesy.rhumb.solve._RhumbSolveBase-class.html#RhumbSolve\" \n        class=\"link\">RhumbSolve</a> and <a \n        href=\"pygeodesy.rhumb.solve.RhumbLineSolve-class.html\" \n        class=\"link\">RhumbLineSolve</a>.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.rhumb.solve.RhumbLineSolve-class.html\">pygeodesy.rhumb.solve.RhumbLineSolve</a></strong>:\n      <em class=\"summary\">Wrapper to invoke <i>Karney</i>'s <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/RhumbSolve.1.html\"\n        target=\"_top\">RhumbSolve</a> like a class, similar to <a \n        href=\"pygeodesy.rhumb.ekx.RhumbLine-class.html\" \n        class=\"link\">pygeodesy.RhumbLine</a> and <a \n        href=\"pygeodesy.rhumb.aux_.RhumbLineAux-class.html\" \n        class=\"link\">pygeodesy.RhumbLineAux</a>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.rhumb.solve.RhumbSolve-class.html\">pygeodesy.rhumb.solve.RhumbSolve</a></strong>:\n      <em class=\"summary\">Wrapper to invoke <i>Karney</i>'s <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/RhumbSolve.1.html\"\n        target=\"_top\">RhumbSolve</a> like a class, similar to <a \n        href=\"pygeodesy.rhumb.ekx.Rhumb-class.html\" \n        class=\"link\">pygeodesy.Rhumb</a> and <a \n        href=\"pygeodesy.rhumb.aux_.RhumbAux-class.html\" \n        class=\"link\">pygeodesy.RhumbAux</a>.</em>\n    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.solveBase._SolveGDictLineBase-class.html\">pygeodesy.solveBase._SolveGDictLineBase</a></strong>:\n      <em class=\"summary\">(NTERNAL) Base class for <code>GeodesicLineSolve</code> and \n        <code>RhumbLineSolve</code>.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.geodsolve.GeodesicLineSolve-class.html\">pygeodesy.geodsolve.GeodesicLineSolve</a></strong>:\n      <em class=\"summary\">Wrapper to invoke <i>Karney</i>'s <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/GeodSolve.1.html\"\n        target=\"_top\">GeodSolve</a> as an <code>Exact</code> version of \n        <i>Karney</i>'s Python class <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/python/code.html#geographiclib.geodesicline.GeodesicLine\"\n        target=\"_top\">GeodesicLine</a>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.rhumb.solve.RhumbLineSolve-class.html\">pygeodesy.rhumb.solve.RhumbLineSolve</a></strong>:\n      <em class=\"summary\">Wrapper to invoke <i>Karney</i>'s <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/RhumbSolve.1.html\"\n        target=\"_top\">RhumbSolve</a> like a class, similar to <a \n        href=\"pygeodesy.rhumb.ekx.RhumbLine-class.html\" \n        class=\"link\">pygeodesy.RhumbLine</a> and <a \n        href=\"pygeodesy.rhumb.aux_.RhumbLineAux-class.html\" \n        class=\"link\">pygeodesy.RhumbLineAux</a>.</em>\n    </li>\n    </ul>\n    </li>\n    </ul>\n    </li>\n    </ul>\n    </li>\n    </ul>\n    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\">pygeodesy.karney._kWrapped</strong>:\n      <em class=\"summary\">(INTERNAL) Wrapper for some of <i>Karney</i>'s <a \n        href=\"https://PyPI.org/project/geographiclib\" \n        target=\"_top\">geographiclib</a> classes.</em>\n    <ul>\n    <li> <strong class=\"uidlink\">pygeodesy.geodesicw._gWrapped</strong>:\n      <em class=\"summary\">(INTERNAL) Wrapper for some of <i>Karney</i>'s <a \n        href=\"https://PyPI.org/project/geographiclib\" \n        target=\"_top\">geographiclib</a> classes.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.geodesicw.Geodesic-class.html\">pygeodesy.geodesicw.Geodesic</a></strong>:\n      <em class=\"summary\"><i>Wrapper</i> around <i>Karney</i>'s class <a \n        href=\"https://GeographicLib.SourceForge.io/Python/doc/code.html\" \n        target=\"_top\">geographiclib.geodesic.Geodesic</a>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.geodesicw.GeodesicLine-class.html\">pygeodesy.geodesicw.GeodesicLine</a></strong>:\n      <em class=\"summary\"><i>Wrapper</i> around <i>Karney</i>'s class <a \n        href=\"https://GeographicLib.SourceForge.io/Python/doc/code.html\" \n        target=\"_top\">geographiclib.geodesicline.GeodesicLine</a>.</em>\n    </li>\n    </ul>\n    </li>\n    </ul>\n    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.ecef._EcefBase-class.html\">pygeodesy.ecef._EcefBase</a></strong>:\n      <em class=\"summary\">(INTERNAL) Base class for <code>Ecef*</code> conversion classes.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.ecef.EcefFarrell21-class.html\">pygeodesy.ecef.EcefFarrell21</a></strong>:\n      <em class=\"summary\">Conversion between geodetic and geocentric, <i>Earth-Centered, \n        Earth-Fixed</i> (ECEF) coordinates based on <i>Jay A. Farrell</i>'s\n        <a href=\"https://Books.Google.com/books?id=fW4foWASY6wC\" \n        target=\"_top\">Table 2.1</a>, page 29.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.ecef.EcefFarrell22-class.html\">pygeodesy.ecef.EcefFarrell22</a></strong>:\n      <em class=\"summary\">Conversion between geodetic and geocentric, <i>Earth-Centered, \n        Earth-Fixed</i> (ECEF) coordinates based on <i>Jay A. Farrell</i>'s\n        <a href=\"https://Books.Google.com/books?id=fW4foWASY6wC\" \n        target=\"_top\">Table 2.2</a>, page 30.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.ecef.EcefKarney-class.html\">pygeodesy.ecef.EcefKarney</a></strong>:\n      <em class=\"summary\">Conversion between geodetic and geocentric, <i>Earth-Centered, \n        Earth-Fixed</i> (ECEF) coordinates transcoded from <i>Karney</i>'s \n        C++ <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Geocentric.html\"\n        target=\"_top\">Geocentric</a> methods.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.ecef.EcefSudano-class.html\">pygeodesy.ecef.EcefSudano</a></strong>:\n      <em class=\"summary\">Conversion between geodetic and geocentric, <i>Earth-Centered, \n        Earth-Fixed</i> (ECEF) coordinates based on <i>John J. Sudano</i>'s\n        <a href=\"https://www.ResearchGate.net/publication/3709199\" \n        target=\"_top\">paper</a>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.ecef.EcefUPC-class.html\">pygeodesy.ecef.EcefUPC</a></strong>:\n      <em class=\"summary\">Conversion between geodetic and geocentric, <i>Earth-Centered, \n        Earth-Fixed</i> (ECEF) coordinates based on <i>UPC</i>'s <a \n        href=\"https://GSSC.ESA.int/navipedia/index.php/Ellipsoidal_and_Cartesian_Coordinates_Conversion\"\n        target=\"_top\">method</a>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.ecef.EcefVeness-class.html\">pygeodesy.ecef.EcefVeness</a></strong>:\n      <em class=\"summary\">Conversion between geodetic and geocentric, <i>Earth-Centered, \n        Earth-Fixed</i> (ECEF) coordinates transcoded from <i>Chris \n        Veness</i>' JavaScript classes <a \n        href=\"https://www.Movable-Type.co.UK/scripts/geodesy/docs/latlon-ellipsoidal.js.html\"\n        target=\"_top\">LatLonEllipsoidal, Cartesian</a>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.ecef.EcefYou-class.html\">pygeodesy.ecef.EcefYou</a></strong>:\n      <em class=\"summary\">Conversion between geodetic and geocentric, <i>Earth-Centered, \n        Earth-Fixed</i> (ECEF) coordinates using <i>Rey-Jer You</i>'s <a \n        href=\"https://www.ResearchGate.net/publication/240359424\" \n        target=\"_top\">transformation</a> for <i>non-prolate</i> ellipsoids.</em>\n    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.geodesici._IntersectBase-class.html\">pygeodesy.geodesici._IntersectBase</a></strong>:\n      <em class=\"summary\">(INTERNAL) Base class for <a \n        href=\"pygeodesy.geodesici.Intersectool-class.html\" \n        class=\"link\">Intersectool</a> and <a \n        href=\"pygeodesy.geodesici.Intersector-class.html\" \n        class=\"link\">Intersector</a>.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.geodesici.Intersectool-class.html\">pygeodesy.geodesici.Intersectool</a></strong>:\n      <em class=\"summary\">Wrapper to invoke <i>Karney</i>'s utility <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/IntersectTool.1.html\"\n        target=\"_top\">IntersectTool</a> similar to class <a \n        href=\"pygeodesy.geodesici.Intersector-class.html\" \n        class=\"link\">Intersector</a>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.geodesici.Intersector-class.html\">pygeodesy.geodesici.Intersector</a></strong>:\n      <em class=\"summary\">Finder of intersections between two goedesic lines, each an \n        instance of <a \n        href=\"pygeodesy.geodesicx.gx.GeodesicLineExact-class.html\" \n        class=\"link\">GeodesicLineExact</a>, wrapped <a \n        href=\"pygeodesy.geodesicw.GeodesicLine-class.html\" \n        class=\"link\">GeodesicLine</a> or <a \n        href=\"pygeodesy.geodsolve.GeodesicLineSolve-class.html\" \n        class=\"link\">GeodesicLineSolve</a>.</em>\n    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.named._NamedEnumItem-class.html\">pygeodesy.named._NamedEnumItem</a></strong>:\n      <em class=\"summary\">(INTERNAL) Base class for items in a <code>_NamedEnum</code> \n        registry.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.lcc.Conic-class.html\">pygeodesy.lcc.Conic</a></strong>:\n      <em class=\"summary\">Lambert conformal conic projection (1- or 2-SP).</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.datums.Datum-class.html\">pygeodesy.datums.Datum</a></strong>:\n      <em class=\"summary\">Ellipsoid and transform parameters for an earth model.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">pygeodesy.ellipsoids.Ellipsoid</a></strong>:\n      <em class=\"summary\">Ellipsoid with <i>equatorial</i> and <i>polar</i> radii, \n        <i>flattening</i>, <i>inverse flattening</i> and other, often used,\n        <i>cached</i> attributes, supporting <i>oblate</i> and \n        <i>prolate</i> ellipsoidal and <i>spherical</i> earth models.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\">pygeodesy.ellipsoids.Ellipsoid2</a></strong>:\n      <em class=\"summary\">An <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n        class=\"link\">Ellipsoid</a> specified by <i>equatorial</i> radius \n        and <i>flattening</i>.</em>\n    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.trf.RefFrame-class.html\">pygeodesy.trf.RefFrame</a></strong>:\n      <em class=\"summary\">Terrestrial Reference Frame (TRF) parameters.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.datums.Transform-class.html\">pygeodesy.datums.Transform</a></strong>:\n      <em class=\"summary\">Helmert <i>datum</i> transformation.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.trf.TransformXform-class.html\">pygeodesy.trf.TransformXform</a></strong>:\n      <em class=\"summary\">Helmert transformation, extended with an <code>Xform</code> TRF \n        converter.</em>\n    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html\">pygeodesy.triaxials.bases._UnOrderedTriaxialBase</a></strong>:\n      <em class=\"summary\">(INTERNAL) Base class for all <i>unordered</i> triaxial classes.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.triaxials.triaxial5.Triaxial_-class.html\">pygeodesy.triaxials.triaxial5.Triaxial_</a></strong>:\n      <em class=\"summary\"><i>Unordered</i> triaxial ellipsoid.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.triaxials.bases._OrderedTriaxialBase-class.html\">pygeodesy.triaxials.bases._OrderedTriaxialBase</a></strong>:\n      <em class=\"summary\">(INTERNAL) Base class for all <i>ordered</i> triaxial classes.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.triaxials.triaxial5.Triaxial-class.html\">pygeodesy.triaxials.triaxial5.Triaxial</a></strong>:\n      <em class=\"summary\"><i>Ordered</i> triaxial ellipsoid.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.triaxials.triaxial5.Conformal-class.html\">pygeodesy.triaxials.triaxial5.Conformal</a></strong>:\n      <em class=\"summary\">This is a <i>Jacobi Conformal</i> projection of a triaxial \n        ellipsoid to a plane where the <code>X</code> and <code>Y</code> \n        grid lines are straight.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.triaxials.triaxial5.ConformalSphere-class.html\">pygeodesy.triaxials.triaxial5.ConformalSphere</a></strong>:\n      <em class=\"summary\">Alternate, <i>Jacobi Conformal projection</i> on a <i>spherical</i>\n        triaxial.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.deprecated.classes.JacobiConformalSpherical-class.html\">pygeodesy.deprecated.classes.JacobiConformalSpherical</a></strong>:\n      <em class=\"summary\">DEPRECATED on 2025.10.25, use class <a \n        href=\"pygeodesy.triaxials.triaxial5.ConformalSphere-class.html\" \n        class=\"link\">ConformalSphere</a>.</em>\n    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.deprecated.classes.JacobiConformal-class.html\">pygeodesy.deprecated.classes.JacobiConformal</a></strong>:\n      <em class=\"summary\">DEPRECATED on 2025.10.25, use class <a \n        href=\"pygeodesy.triaxials.triaxial5.Conformal-class.html\" \n        class=\"link\">Conformal</a>.</em>\n    </li>\n    </ul>\n    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.triaxials.bases._Triaxial3Base-class.html\">pygeodesy.triaxials.bases._Triaxial3Base</a></strong>:\n      <em class=\"summary\">(INTERNAL) Base class for <i>unordered</i> triaxial<code>3</code> \n        classes.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.triaxials.conformal3.Conformal3-class.html\">pygeodesy.triaxials.conformal3.Conformal3</a></strong>:\n      <em class=\"summary\"><i>Jacobi Conformal</i> projection of triaxial ellipsoid using \n        class <a href=\"pygeodesy.angles.Ang-class.html\" \n        class=\"link\">Ang</a> lat- and longitudes.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.triaxials.conformal3.Conformal3B-class.html\">pygeodesy.triaxials.conformal3.Conformal3B</a></strong>:\n      <em class=\"summary\"><i>Jacobi Conformal projection</i> on a triaxial ellipsoid \n        specified by its middle semi-axis and shape.</em>\n    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html\">pygeodesy.triaxials.triaxial3.Triaxial3</a></strong>:\n      <em class=\"summary\"><i>Ordered</i> triaxial ellipsoid convering between cartesian and \n        lat-/longitudes using using class <a \n        href=\"pygeodesy.angles.Ang-class.html\" class=\"link\">Ang</a>.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.triaxials.triaxial3.Triaxial3B-class.html\">pygeodesy.triaxials.triaxial3.Triaxial3B</a></strong>:\n      <em class=\"summary\">Triaxial ellipsoid specified by its middle semi-axis and shape.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.triaxials.conformal3.Conformal3Sphere-class.html\">pygeodesy.triaxials.conformal3.Conformal3Sphere</a></strong>:\n      <em class=\"summary\"><i>Jacobi Conformal projection</i> on a <i>spherical</i> triaxial.</em>\n    </li>\n    </ul>\n    </li>\n    </ul>\n    </li>\n    </ul>\n    </li>\n    </ul>\n    </li>\n    </ul>\n    </li>\n    </ul>\n    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\">pygeodesy.named._NamedDict</strong>:\n      <em class=\"summary\">(INTERNAL) Named <code>dict</code> with key <i>and</i> attribute \n        access to the items.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.geohash.Neighbors8Dict-class.html\">pygeodesy.geohash.Neighbors8Dict</a></strong>:\n      <em class=\"summary\">8-Dict <code>(N, NE, E, SE, S, SW, W, NW)</code> of <a \n        href=\"pygeodesy.geohash.Geohash-class.html\" \n        class=\"link\">Geohash</a>es, providing key <i>and</i> attribute \n        access to the items.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.named._NamedEnum-class.html\">pygeodesy.named._NamedEnum</a></strong>:\n      <em class=\"summary\">(INTERNAL) Enum-like <code>_NamedDict</code> with attribute access \n        restricted to valid keys.</em>\n    <ul>\n    </ul>\n    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.named._NamedTuple-class.html\">pygeodesy.named._NamedTuple</a></strong>:\n      <em class=\"summary\">(INTERNAL) Base for named <code>tuple</code>s with both index \n        <i>and</i> attribute name access to the items.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.albers.Albers7Tuple-class.html\">pygeodesy.albers.Albers7Tuple</a></strong>:\n      <em class=\"summary\">7-Tuple <code>(x, y, lat, lon, gamma, scale, datum)</code>, in \n        <code>meter</code>, <code>meter</code>, <code>degrees90</code>, \n        <code>degrees180</code>, <code>degrees360</code>, \n        <code>scalar</code> and <code>Datum</code> where <code>(x, \n        y)</code> is the projected, <code>(lat, lon)</code> the geodetic \n        location, <code>gamma</code> the meridian convergence at point, the\n        bearing of the y-axis measured clockwise from true North and \n        <code>scale</code> is the azimuthal scale of the projection at \n        point.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.karney.Area3Tuple-class.html\">pygeodesy.karney.Area3Tuple</a></strong>:\n      <em class=\"summary\">3-Tuple <code>(number, perimeter, area)</code> with the \n        <code>number</code> of points of the polygon or polyline, the \n        <code>perimeter</code> in <code>meter</code> and the \n        <code>area</code> in <code>meter</code> <i>squared</i>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.ltpTuples.Attitude4Tuple-class.html\">pygeodesy.ltpTuples.Attitude4Tuple</a></strong>:\n      <em class=\"summary\">4-Tuple <code>(alt, tilt, yaw, roll)</code> with \n        <code>altitude</code> in (positive) <code>meter</code> and \n        <code>tilt</code>, <code>yaw</code> and <code>roll</code> in \n        <code>degrees</code> representing the attitude of a plane or \n        camera.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.azimuthal.Azimuthal7Tuple-class.html\">pygeodesy.azimuthal.Azimuthal7Tuple</a></strong>:\n      <em class=\"summary\">7-Tuple <code>(x, y, lat, lon, azimuth, scale, datum)</code>, in \n        <code>meter</code>, <code>meter</code>, <code>degrees90</code>, \n        <code>degrees180</code>, compass <code>degrees</code>, \n        <code>scalar</code> and <code>Datum</code> where <code>(x, \n        y)</code> is the easting and northing of a projected point, \n        <code>(lat, lon)</code> the geodetic location, <code>azimuth</code>\n        the azimuth, clockwise from true North and <code>scale</code> is \n        the projection scale, either <code>1 / reciprocal</code> or \n        <code>1</code> or <code>-1</code> in the <a \n        href=\"pygeodesy.azimuthal.Equidistant-class.html\" \n        class=\"link\">Equidistant</a> case.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.namedTuples.Bearing2Tuple-class.html\">pygeodesy.namedTuples.Bearing2Tuple</a></strong>:\n      <em class=\"summary\">2-Tuple <code>(initial, final)</code> bearings, both in compass \n        <code>degrees360</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.namedTuples.Bounds2Tuple-class.html\">pygeodesy.namedTuples.Bounds2Tuple</a></strong>:\n      <em class=\"summary\">2-Tuple <code>(latlonSW, latlonNE)</code> with the bounds' \n        lower-left and upper-right corner as <code>LatLon</code> instance.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.namedTuples.Bounds4Tuple-class.html\">pygeodesy.namedTuples.Bounds4Tuple</a></strong>:\n      <em class=\"summary\">4-Tuple <code>(latS, lonW, latN, lonE)</code> with the bounds' \n        lower-left <code>(LatS, LowW)</code> and upper-right <code>(latN, \n        lonE)</code> corner lat- and longitudes.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.ltpTuples.ChLVEN2Tuple-class.html\">pygeodesy.ltpTuples.ChLVEN2Tuple</a></strong>:\n      <em class=\"summary\">2-Tuple <code>(E_LV95, N_LV95)</code> with <b>falsed</b> <i>Swiss \n        LV95</i> easting and norting in <code>meter (2_600_000, \n        1_200_000)</code> and origin at <code>Bern, Ch</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.ltpTuples.ChLVYX2Tuple-class.html\">pygeodesy.ltpTuples.ChLVYX2Tuple</a></strong>:\n      <em class=\"summary\">2-Tuple <code>(Y, X)</code> with <b>unfalsed</b> <i>Swiss LV95</i> \n        easting and norting in <code>meter</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.ltpTuples.ChLVyx2Tuple-class.html\">pygeodesy.ltpTuples.ChLVyx2Tuple</a></strong>:\n      <em class=\"summary\">2-Tuple <code>(y_LV03, x_LV03)</code> with <b>falsed</b> <i>Swiss \n        LV03</i> easting and norting in <code>meter (600_000, \n        200_000)</code> and origin at <code>Bern, Ch</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.vector2d.Circin6Tuple-class.html\">pygeodesy.vector2d.Circin6Tuple</a></strong>:\n      <em class=\"summary\">6-Tuple <code>(radius, center, deltas, cA, cB, cC)</code> with the \n        <code>radius</code>, the trilaterated <code>center</code> and \n        contact points of the <i>inscribed</i> aka <i>In- circle</i> of a \n        triangle.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.namedTuples.Circle4Tuple-class.html\">pygeodesy.namedTuples.Circle4Tuple</a></strong>:\n      <em class=\"summary\">4-Tuple <code>(radius, height, lat, beta)</code> with the \n        <code>radius</code> and <code>height</code> of a parallel <i>circle\n        of latitude</i> at (geodetic) latitude <code>lat</code> and \n        <i>parametric (or reduced) auxiliary latitude</i> <code>beta</code>\n        on a <i>biaxial ellipsoid</i>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.vector2d.Circum3Tuple-class.html\">pygeodesy.vector2d.Circum3Tuple</a></strong>:\n      <em class=\"summary\">3-Tuple <code>(radius, center, deltas)</code> with the \n        <code>circumradius</code> and trilaterated \n        <code>circumcenter</code> of the <code>circumcircle</code> through \n        3 points (aka {Meeus}' Type II circle) or the <code>radius</code> \n        and <code>center</code> of the smallest <i>Meeus</i>' Type I \n        circle.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.vector2d.Circum4Tuple-class.html\">pygeodesy.vector2d.Circum4Tuple</a></strong>:\n      <em class=\"summary\">4-Tuple <code>(radius, center, rank, residuals)</code> with \n        <code>radius</code> and <code>center</code> of a sphere \n        <i>least-squares</i> fitted through given points and the \n        <code>rank</code> and <code>residuals</code> -if any- from <a \n        href=\"https://NumPy.org/doc/stable/reference/generated/numpy.linalg.lstsq.html\"\n        target=\"_top\">numpy.linalg.lstsq</a>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.clipy.ClipCS4Tuple-class.html\">pygeodesy.clipy.ClipCS4Tuple</a></strong>:\n      <em class=\"summary\">4-Tuple <code>(start, end, i, j)</code> for each edge of a \n        <i>clipped</i> path with the <code>start</code> and \n        <code>end</code> points (<code>LatLon</code>) of the portion of the\n        edge inside or on the clip box and the indices <code>i</code> and \n        <code>j</code> (<code>int</code>) of the edge start and end points \n        in the original path.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.clipy.ClipFHP4Tuple-class.html\">pygeodesy.clipy.ClipFHP4Tuple</a></strong>:\n      <em class=\"summary\">4-Tuple <code>(lat, lon, height, clipid)</code> for each point of \n        the <a href=\"pygeodesy.clipy-module.html#clipFHP4\" \n        class=\"link\">clipFHP4</a> result with the <code>lat</code>-, \n        <code>lon</code>gitude, <code>height</code> and <code>clipid</code>\n        of the polygon or clip.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.clipy.ClipGH4Tuple-class.html\">pygeodesy.clipy.ClipGH4Tuple</a></strong>:\n      <em class=\"summary\">4-Tuple <code>(lat, lon, height, clipid)</code> for each point of \n        the <a href=\"pygeodesy.clipy-module.html#clipGH4\" \n        class=\"link\">clipGH4</a> result with the <code>lat</code>-, \n        <code>lon</code>gitude, <code>height</code> and <code>clipid</code>\n        of the polygon or clip.</em>\n    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.clipy.ClipLB6Tuple-class.html\">pygeodesy.clipy.ClipLB6Tuple</a></strong>:\n      <em class=\"summary\">6-Tuple <code>(start, end, i, fi, fj, j)</code> for each edge of \n        the <i>clipped</i> path with the <code>start</code> and \n        <code>end</code> points (<code>LatLon</code>) of the portion of the\n        edge inside or on the clip box, indices <code>i</code> and \n        <code>j</code> (both <code>int</code>) of the original path edge \n        start and end points and <i>fractional</i> indices <code>fi</code> \n        and <code>fj</code> (both <a href=\"pygeodesy.units.FIx-class.html\" \n        class=\"link\">FIx</a>) of the <code>start</code> and \n        <code>end</code> points along the edge of the original path.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.clipy.ClipSH3Tuple-class.html\">pygeodesy.clipy.ClipSH3Tuple</a></strong>:\n      <em class=\"summary\">3-Tuple <code>(start, end, original)</code> for each edge of a \n        <i>clipped</i> polygon, the <code>start</code> and <code>end</code>\n        points (<code>LatLon</code>) of the portion of the edge inside or \n        on the clip region and <code>original</code> indicates whether the \n        edge is part of the original polygon or part of the clip region \n        (<code>bool</code>).</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.resections.Collins5Tuple-class.html\">pygeodesy.resections.Collins5Tuple</a></strong>:\n      <em class=\"summary\">5-Tuple <code>(pointP, pointH, a, b, c)</code> with survey \n        <code>pointP</code>, auxiliary <code>pointH</code>, each an \n        instance of <b><code>pointA</code></b>'s (sub-)class and triangle \n        sides <code>a</code>, <code>b</code> and <code>c</code> in \n        <code>meter</code>, conventionally.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.triaxials.bases.Conformal5Tuple-class.html\" onclick=\"show_private();\">pygeodesy.triaxials.bases.Conformal5Tuple</a></strong>:\n      <em class=\"summary\">5-Tuple <code>(x, y, z, scale, llk)</code> with the easting \n        <code>x</code> and northing <code>y</code> projection, \n        <code>scale</code> or <code>NAN</code> <i>but with</i> \n        <code>z=INT0</code> <i>and kind</i> <code>llk=LLK.CONFORMAL</code> \n        <i>always</i>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.ellipsoids.Curvature2Tuple-class.html\">pygeodesy.ellipsoids.Curvature2Tuple</a></strong>:\n      <em class=\"summary\">2-Tuple <code>(meridional, prime_vertical)</code> of radii of \n        curvature, both in <code>meter</code>, conventionally.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.namedTuples.Destination2Tuple-class.html\">pygeodesy.namedTuples.Destination2Tuple</a></strong>:\n      <em class=\"summary\">2-Tuple <code>(destination, final)</code>, <code>destination</code>\n        in <code>LatLon</code> and <code>final</code> bearing in compass \n        <code>degrees360</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.namedTuples.Destination3Tuple-class.html\">pygeodesy.namedTuples.Destination3Tuple</a></strong>:\n      <em class=\"summary\">3-Tuple <code>(lat, lon, final)</code>, destination \n        <code>lat</code>, <code>lon</code> in <code>degrees90</code> \n        respectively <code>degrees180</code> and <code>final</code> bearing\n        in compass <code>degrees360</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.namedTuples.Distance2Tuple-class.html\">pygeodesy.namedTuples.Distance2Tuple</a></strong>:\n      <em class=\"summary\">2-Tuple <code>(distance, initial)</code>, <code>distance</code> in \n        <code>meter</code> and <code>initial</code> bearing in compass \n        <code>degrees360</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.namedTuples.Distance3Tuple-class.html\">pygeodesy.namedTuples.Distance3Tuple</a></strong>:\n      <em class=\"summary\">3-Tuple <code>(distance, initial, final)</code>, \n        <code>distance</code> in <code>meter</code> and \n        <code>initial</code> and <code>final</code> bearing, both in \n        compass <code>degrees360</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.namedTuples.Distance4Tuple-class.html\">pygeodesy.namedTuples.Distance4Tuple</a></strong>:\n      <em class=\"summary\">4-Tuple <code>(distance2, delta_lat, delta_lon, unroll_lon2)</code>\n        with the distance in <code>degrees squared</code>, the latitudinal \n        <code>delta_lat = <b>lat2</b> - <b>lat1</b></code>, the wrapped, \n        unrolled and adjusted longitudinal <code>delta_lon = <b>lon2</b> - \n        <b>lon1</b></code> and <code>unroll_lon2</code>, the unrolled or \n        original <b><code>lon2</code></b>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.fsums.DivMod2Tuple-class.html\">pygeodesy.fsums.DivMod2Tuple</a></strong>:\n      <em class=\"summary\">2-Tuple <code>(div, mod)</code> with the quotient <code>div</code> \n        and remainder <code>mod</code> results of a <code>divmod</code> \n        operation.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.namedTuples.EasNor2Tuple-class.html\">pygeodesy.namedTuples.EasNor2Tuple</a></strong>:\n      <em class=\"summary\">2-Tuple <code>(easting, northing)</code>, both in \n        <code>meter</code>, conventionally.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.namedTuples.EasNor3Tuple-class.html\">pygeodesy.namedTuples.EasNor3Tuple</a></strong>:\n      <em class=\"summary\">3-Tuple <code>(easting, northing, height)</code>, all in \n        <code>meter</code>, conventionally.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.css.EasNorAziRk4Tuple-class.html\">pygeodesy.css.EasNorAziRk4Tuple</a></strong>:\n      <em class=\"summary\">4-Tuple <code>(easting, northing, azimuth, reciprocal)</code> for \n        the Cassini-Soldner location with <code>easting</code> and \n        <code>northing</code> in <code>meters</code> and the \n        <code>azimuth</code> of easting direction and \n        <code>reciprocal</code> of azimuthal northing scale, both in \n        <code>degrees</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.css.EasNorAziRkEqu6Tuple-class.html\">pygeodesy.css.EasNorAziRkEqu6Tuple</a></strong>:\n      <em class=\"summary\">6-Tuple <code>(easting, northing, azimuth, reciprocal, equatorarc, \n        equatorazimuth)</code> for the Cassini-Soldner location with \n        <code>easting</code> and <code>northing</code> in \n        <code>meters</code> and the <code>azimuth</code> of easting \n        direction, <code>reciprocal</code> of azimuthal northing scale, \n        <code>equatorarc</code> and <code>equatorazimuth</code>, all in \n        <code>degrees</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.webmercator.EasNorRadius3Tuple-class.html\">pygeodesy.webmercator.EasNorRadius3Tuple</a></strong>:\n      <em class=\"summary\">3-Tuple <code>(easting, northing, radius)</code>, all in \n        <code>meter</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.ecef.Ecef9Tuple-class.html\">pygeodesy.ecef.Ecef9Tuple</a></strong>:\n      <em class=\"summary\">9-Tuple <code>(x, y, z, lat, lon, height, C, M, datum)</code> with \n        <i>geocentric</i> <code>x</code>, <code>y</code> and <code>z</code>\n        plus <i>geodetic</i> <code>lat</code>, <code>lon</code> and \n        <code>height</code>, case <code>C</code> and optionally, rotation \n        matrix <code>M</code> (<a \n        href=\"pygeodesy.ecef.EcefMatrix-class.html\" \n        class=\"link\">EcefMatrix</a>) and <code>datum</code>, with \n        <code>lat</code> and <code>lon</code> in <code>degrees</code> and \n        <code>x</code>, <code>y</code>, <code>z</code> and \n        <code>height</code> in <code>meter</code>, conventionally.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.ecef.EcefMatrix-class.html\">pygeodesy.ecef.EcefMatrix</a></strong>:\n      <em class=\"summary\">A rotation matrix known as <i>East-North-Up (ENU) to ECEF</i>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.elevations.Elevation2Tuple-class.html\">pygeodesy.elevations.Elevation2Tuple</a></strong>:\n      <em class=\"summary\">2-Tuple <code>(elevation, data_source)</code> in <code>meter</code>\n        and <code>str</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.namedTuples.Ellipse5Tuple-class.html\">pygeodesy.namedTuples.Ellipse5Tuple</a></strong>:\n      <em class=\"summary\">5-Tuple <code>(a, b, height, lat, beta)</code> with semi-axes \n        <code>a</code> and <code>b</code> of a parallel <i>ellipse of \n        latitude</i> at (geodetic) latitude <code>lat</code> and \n        <i>parametric (or reduced) auxiliary latitude</i> <code>beta</code>\n        of a <i>triaxial ellipsoid</i>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.elliptic.Elliptic3Tuple-class.html\">pygeodesy.elliptic.Elliptic3Tuple</a></strong>:\n      <em class=\"summary\">3-Tuple <code>(sn, cn, dn)</code> all <code>scalar</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.ltpTuples.Footprint5Tuple-class.html\">pygeodesy.ltpTuples.Footprint5Tuple</a></strong>:\n      <em class=\"summary\">5-Tuple <code>(center, upperleft, upperight, loweright, \n        lowerleft)</code> with the <code>center</code> and 4 corners of the\n        <i>local</i> projection of a <code>Frustum</code>, each an <a \n        href=\"pygeodesy.ltpTuples.Xyz4Tuple-class.html\" \n        class=\"link\">Xyz4Tuple</a>, <a \n        href=\"pygeodesy.ltpTuples.XyzLocal-class.html\" \n        class=\"link\">XyzLocal</a>, <code>LatLon</code>, etc.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.namedTuples.Forward4Tuple-class.html\">pygeodesy.namedTuples.Forward4Tuple</a></strong>:\n      <em class=\"summary\">4-Tuple <code>(easting, northing, gamma, scale)</code> in \n        <code>meter</code>, <code>meter</code>, meridian convergence \n        <code>gamma</code> at point in <code>degrees</code> and the \n        <code>scale</code> of projection at point <code>scalar</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.frechet.Frechet6Tuple-class.html\">pygeodesy.frechet.Frechet6Tuple</a></strong>:\n      <em class=\"summary\">6-Tuple <code>(fd, fi1, fi2, r, n, units)</code> with the \n        <i>discrete</i> <a \n        href=\"https://WikiPedia.org/wiki/Frechet_distance\" \n        target=\"_top\">Fr&#233;chet</a> distance <code>fd</code>, \n        <i>fractional</i> indices <code>fi1</code> and <code>fi2</code> as \n        <code>FIx</code>, the recursion depth <code>r</code>, the number of\n        distances computed <code>n</code> and the <a \n        href=\"pygeodesy.named._NamedTuple-class.html#units\" \n        class=\"link\">units</a> class or name of the distance \n        <code>units</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\">pygeodesy.fsums.Fsum2Tuple</a></strong>:\n      <em class=\"summary\">2-Tuple <code>(fsum, residual)</code> with the precision running \n        <code>fsum</code> and the <code>residual</code>, the sum of the \n        remaining partials.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.elevations.GeoidHeight2Tuple-class.html\">pygeodesy.elevations.GeoidHeight2Tuple</a></strong>:\n      <em class=\"summary\">2-Tuple <code>(height, model_name)</code>, geoid \n        <code>height</code> in <code>meter</code> and \n        <code>model_name</code> as <code>str</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.geoids.GeoidHeight5Tuple-class.html\">pygeodesy.geoids.GeoidHeight5Tuple</a></strong>:\n      <em class=\"summary\">5-Tuple <code>(lat, lon, egm84, egm96, egm2008)</code> for <a \n        href=\"https://SourceForge.net/projects/geographiclib/files/testdata/\"\n        target=\"_top\">GeoidHeights.dat</a> tests with the heights for 3 \n        different EGM grids at <code>degrees90</code> and \n        <code>degrees180</code> degrees (after converting <code>lon</code> \n        from original <code>0 &lt;= EasterLon &lt;= 360</code>).</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.hausdorff.Hausdorff6Tuple-class.html\">pygeodesy.hausdorff.Hausdorff6Tuple</a></strong>:\n      <em class=\"summary\">6-Tuple <code>(hd, i, j, mn, md, units)</code> with the <a \n        href=\"https://WikiPedia.org/wiki/Hausdorff_distance\" \n        target=\"_top\">Hausdorff</a> distance <code>hd</code>, indices \n        <code>i</code> and <code>j</code>, the total count <code>mn</code>,\n        the <code><i>mean</i> Hausdorff</code> distance <code>md</code> and\n        the class or name of both distance <code>units</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.geodesici.Intersect7Tuple-class.html\">pygeodesy.geodesici.Intersect7Tuple</a></strong>:\n      <em class=\"summary\">7-Tuple <code>(A, B, sAB, aAB, c, kA, kB)</code> with \n        <code>A</code> and <code>B</code> each a <code>LatLon</code> or <a \n        href=\"pygeodesy.namedTuples.LatLon4Tuple-class.html\" \n        class=\"link\">LatLon4Tuple</a><code>(lat, lon, height, datum)</code>\n        of the intersection on each geodesic line, the distance \n        <code>sAB</code> in in <code>meter</code> and angular distance \n        <code>aAB</code> in <code>degrees</code> between <code>A</code> and\n        <code>B</code>, coincidence indicator <code>c</code> and segment \n        indicators <code>kA</code> and <code>kB</code> all \n        <code>int</code>, see <a \n        href=\"pygeodesy.geodesici.XDict-class.html\" class=\"link\">XDict</a> \n        and method <a href=\"https://_IntersectBase.intersect7\" \n        target=\"_top\">intersect7</a>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.namedTuples.Intersection3Tuple-class.html\">pygeodesy.namedTuples.Intersection3Tuple</a></strong>:\n      <em class=\"summary\">3-Tuple <code>(point, outside1, outside2)</code> of an intersection\n        <code>point</code> and <code>outside1</code>, the position of the \n        <code>point</code>, <code>-1</code> if before the start, \n        <code>+1</code> if after the end and <code>0</code> if on or \n        between the start and end point of the first line.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.geodesici.Intersectool5Tuple-class.html\">pygeodesy.geodesici.Intersectool5Tuple</a></strong>:\n      <em class=\"summary\">5-Tuple <code>(A, B, sAB, aAB, c)</code> with <code>A</code> and \n        <code>B</code> the <code>Position</code> of the intersection on \n        each geodesic line, the distance <code>sAB</code> between \n        <code>A</code> and <code>B</code> in <code>meter</code>, the \n        angular distance <code>aAB</code> in <code>degrees</code> and \n        coincidence indicator <code>c</code> (<code>int</code>), see <a \n        href=\"pygeodesy.geodesici.XDict-class.html\" class=\"link\">XDict</a>.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.geodesici.Intersector5Tuple-class.html\">pygeodesy.geodesici.Intersector5Tuple</a></strong>:\n      <em class=\"summary\">5-Tuple <code>(A, B, sAB, aAB, c)</code> with <code>A</code> and \n        <code>B</code> the <code>Position</code> of the intersection on \n        each geodesic line, the distance <code>sAB</code> between \n        <code>A</code> and <code>B</code> in <code>meter</code>, angular \n        distance <code>aAB</code> in <code>degrees</code> and coincidence \n        indicator <code>c</code> (<code>int</code>), see <a \n        href=\"pygeodesy.geodesici.XDict-class.html\" class=\"link\">XDict</a>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.geodesici.Middle5Tuple-class.html\">pygeodesy.geodesici.Middle5Tuple</a></strong>:\n      <em class=\"summary\">5-Tuple <code>(A, B, sMM, aMM, c)</code> with <code>A</code> and \n        <code>B</code> the <i>line segments</i> including the mid-point \n        location in <code>latM</code>, <code>lonM</code>, distance \n        <code>s1M</code> in <code>meter</code> and angular distance \n        <code>a1M</code> in <code>degrees</code>, the distance between both\n        mid-points <code>sMM</code> in <code>meter</code> and angular \n        distance <code>aMM</code> in <code>degrees</code> and coincidence \n        indicator <code>c</code> (<code>int</code>).</em>\n    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.namedTuples.LatLon2Tuple-class.html\">pygeodesy.namedTuples.LatLon2Tuple</a></strong>:\n      <em class=\"summary\">2-Tuple <code>(lat, lon)</code> in <code>degrees90</code> and \n        <code>degrees180</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.namedTuples.LatLon3Tuple-class.html\">pygeodesy.namedTuples.LatLon3Tuple</a></strong>:\n      <em class=\"summary\">3-Tuple <code>(lat, lon, height)</code> in <code>degrees90</code>, \n        <code>degrees180</code> and <code>meter</code>, conventionally.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.namedTuples.LatLon4Tuple-class.html\">pygeodesy.namedTuples.LatLon4Tuple</a></strong>:\n      <em class=\"summary\">4-Tuple <code>(lat, lon, height, datum)</code> in \n        <code>degrees90</code>, <code>degrees180</code>, <code>meter</code>\n        and <a href=\"pygeodesy.datums.Datum-class.html\" \n        class=\"link\">Datum</a>.</em>\n    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.css.LatLonAziRk4Tuple-class.html\">pygeodesy.css.LatLonAziRk4Tuple</a></strong>:\n      <em class=\"summary\">4-Tuple <code>(lat, lon, azimuth, reciprocal)</code>, all in \n        <code>degrees</code> where <code>azimuth</code> is the azimuth of \n        easting direction and <code>reciprocal</code> the reciprocal of \n        azimuthal northing scale.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.namedTuples.LatLonDatum3Tuple-class.html\">pygeodesy.namedTuples.LatLonDatum3Tuple</a></strong>:\n      <em class=\"summary\">3-Tuple <code>(lat, lon, datum)</code> in <code>degrees90</code>, \n        <code>degrees180</code> and <a \n        href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.namedTuples.LatLonDatum5Tuple-class.html\">pygeodesy.namedTuples.LatLonDatum5Tuple</a></strong>:\n      <em class=\"summary\">5-Tuple <code>(lat, lon, datum, gamma, scale)</code> in \n        <code>degrees90</code>, <code>degrees180</code>, <a \n        href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>, \n        <code>degrees</code> and <code>float</code>.</em>\n    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.namedTuples.LatLonPrec3Tuple-class.html\">pygeodesy.namedTuples.LatLonPrec3Tuple</a></strong>:\n      <em class=\"summary\">3-Tuple <code>(lat, lon, precision)</code> in <code>degrees</code>,\n        <code>degrees</code> and <code>int</code>.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.namedTuples.LatLonPrec5Tuple-class.html\">pygeodesy.namedTuples.LatLonPrec5Tuple</a></strong>:\n      <em class=\"summary\">5-Tuple <code>(lat, lon, precision, height, radius)</code> in \n        <code>degrees</code>, <code>degrees</code>, <code>int</code> and \n        <code>height</code> or <code>radius</code> in <code>meter</code> \n        (or <code>None</code> if missing).</em>\n    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.ltpTuples.Local9Tuple-class.html\">pygeodesy.ltpTuples.Local9Tuple</a></strong>:\n      <em class=\"summary\">9-Tuple <code>(x, y, z, lat, lon, height, ltp, ecef, M)</code> with\n        <i>local</i> <code>x</code>, <code>y</code>, <code>z</code> all in \n        <code>meter</code>, <i>geodetic</i> <code>lat</code>, \n        <code>lon</code>, <code>height</code>, <i>local tangent plane</i> \n        <code>ltp</code> (<a href=\"pygeodesy.ltp.Ltp-class.html\" \n        class=\"link\">Ltp</a>), <code>ecef</code> (<a \n        href=\"pygeodesy.ecef.Ecef9Tuple-class.html\" \n        class=\"link\">Ecef9Tuple</a>) with <i>geocentric</i> <code>x</code>,\n        <code>y</code>, <code>z</code>, <i>geodetic</i> <code>lat</code>, \n        <code>lon</code>, <code>height</code> and <i>concatenated</i> \n        rotation matrix <code>M</code> (<a \n        href=\"pygeodesy.ecef.EcefMatrix-class.html\" \n        class=\"link\">EcefMatrix</a>) or <code>None</code>.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.ltpTuples.ChLV9Tuple-class.html\">pygeodesy.ltpTuples.ChLV9Tuple</a></strong>:\n      <em class=\"summary\">9-Tuple <code>(Y, X, h_, lat, lon, height, ltp, ecef, M)</code> \n        with <i><b>unfalsed</b> Swiss (Y, X, h_)</i> coordinates and \n        height, all in <code>meter</code>, <code>ltp</code> either a <a \n        href=\"pygeodesy.ltp.ChLV-class.html\" class=\"link\">ChLV</a>, <a \n        href=\"pygeodesy.ltp.ChLVa-class.html\" class=\"link\">ChLVa</a> or <a \n        href=\"pygeodesy.ltp.ChLVe-class.html\" class=\"link\">ChLVe</a> \n        instance and <code>ecef</code> (<a \n        href=\"pygeodesy.ecef.EcefKarney-class.html\" \n        class=\"link\">EcefKarney</a> <i>at Bern, Ch</i>), otherwise like <a \n        href=\"pygeodesy.ltpTuples.Local9Tuple-class.html\" \n        class=\"link\">Local9Tuple</a>.</em>\n    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.vector2d.Meeus2Tuple-class.html\">pygeodesy.vector2d.Meeus2Tuple</a></strong>:\n      <em class=\"summary\">2-Tuple <code>(radius, Type)</code> with <code>radius</code> and \n        <i>Meeus</i>' <code>Type</code> of the smallest circle \n        <i>containing</i> 3 points.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.mgrs.Mgrs4Tuple-class.html\">pygeodesy.mgrs.Mgrs4Tuple</a></strong>:\n      <em class=\"summary\">4-Tuple <code>(zone, EN, easting, northing)</code>, \n        <code>zone</code> and grid tile <code>EN</code> as \n        <code>str</code>, <code>easting</code> and <code>northing</code> in\n        <code>meter</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.mgrs.Mgrs6Tuple-class.html\">pygeodesy.mgrs.Mgrs6Tuple</a></strong>:\n      <em class=\"summary\">6-Tuple <code>(zone, EN, easting, northing, band, datum)</code>, \n        with <code>zone</code>, grid tile <code>EN</code> and \n        <code>band</code> as <code>str</code>, <code>easting</code> and \n        <code>northing</code> in <code>meter</code> and <code>datum</code> \n        a <a href=\"pygeodesy.datums.Datum-class.html\" \n        class=\"link\">Datum</a>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.namedTuples.NearestOn2Tuple-class.html\">pygeodesy.namedTuples.NearestOn2Tuple</a></strong>:\n      <em class=\"summary\">2-Tuple <code>(closest, fraction)</code> of the \n        <code>closest</code> point on and <code>fraction</code> along a \n        line (segment) between two points.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.namedTuples.NearestOn3Tuple-class.html\">pygeodesy.namedTuples.NearestOn3Tuple</a></strong>:\n      <em class=\"summary\">3-Tuple <code>(closest, distance, angle)</code> of the \n        <code>closest</code> point on the polygon, either a \n        <code>LatLon</code> instance or a <a \n        href=\"pygeodesy.namedTuples.LatLon3Tuple-class.html\" \n        class=\"link\">LatLon3Tuple</a><code>(lat, lon, height)</code> and \n        the <code>distance</code> and <code>angle</code> to the \n        <code>closest</code> point are in <code>meter</code> respectively \n        compass <code>degrees360</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.namedTuples.NearestOn6Tuple-class.html\">pygeodesy.namedTuples.NearestOn6Tuple</a></strong>:\n      <em class=\"summary\">6-Tuple <code>(closest, distance, fi, j, start, end)</code> with \n        the <code>closest</code> point, the <code>distance</code> in \n        <code>meter</code>, conventionally and the <code>start</code> and \n        <code>end</code> point of the path or polygon edge.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.namedTuples.NearestOn8Tuple-class.html\">pygeodesy.namedTuples.NearestOn8Tuple</a></strong>:\n      <em class=\"summary\">8-Tuple <code>(closest, distance, fi, j, start, end, initial, \n        final)</code>, like <a \n        href=\"pygeodesy.namedTuples.NearestOn6Tuple-class.html\" \n        class=\"link\">NearestOn6Tuple</a> but extended with the \n        <code>initial</code> and the <code>final</code> bearing at the \n        reference respectively the <code>closest</code> point, both in \n        compass <code>degrees</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.namedTuples.PhiLam2Tuple-class.html\">pygeodesy.namedTuples.PhiLam2Tuple</a></strong>:\n      <em class=\"summary\">2-Tuple <code>(phi, lam)</code> with latitude <code>phi</code> in \n        <code>radians[PI_2]</code> and longitude <code>lam</code> in \n        <code>radians[PI]</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.namedTuples.PhiLam3Tuple-class.html\">pygeodesy.namedTuples.PhiLam3Tuple</a></strong>:\n      <em class=\"summary\">3-Tuple <code>(phi, lam, height)</code> with latitude \n        <code>phi</code> in <code>radians[PI_2]</code>, longitude \n        <code>lam</code> in <code>radians[PI]</code> and \n        <code>height</code> in <code>meter</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.namedTuples.PhiLam4Tuple-class.html\">pygeodesy.namedTuples.PhiLam4Tuple</a></strong>:\n      <em class=\"summary\">4-Tuple <code>(phi, lam, height, datum)</code> with latitude \n        <code>phi</code> in <code>radians[PI_2]</code>, longitude \n        <code>lam</code> in <code>radians[PI]</code>, <code>height</code> \n        in <code>meter</code> and <a \n        href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.namedTuples.Point3Tuple-class.html\">pygeodesy.namedTuples.Point3Tuple</a></strong>:\n      <em class=\"summary\">3-Tuple <code>(x, y, ll)</code> in <code>meter</code>, \n        <code>meter</code> and <code>LatLon</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.namedTuples.Points2Tuple-class.html\">pygeodesy.namedTuples.Points2Tuple</a></strong>:\n      <em class=\"summary\">2-Tuple <code>(number, points)</code> with the <code>number</code> \n        of points and -possible reduced- <code>list</code> or \n        <code>tuple</code> of <code>points</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.formy.Radical2Tuple-class.html\">pygeodesy.formy.Radical2Tuple</a></strong>:\n      <em class=\"summary\">2-Tuple <code>(ratio, xline)</code> of the <i>radical</i> \n        <code>ratio</code> and <i>radical</i> <code>xline</code>, both \n        <code>scalar</code> and <code>0.0 &lt;= ratio &lt;= 1.0</code></em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.vector2d.Radii11Tuple-class.html\">pygeodesy.vector2d.Radii11Tuple</a></strong>:\n      <em class=\"summary\">11-Tuple <code>(rA, rB, rC, cR, rIn, riS, roS, a, b, c, s)</code> \n        with the <code>Tangent</code> circle radii <code>rA</code>, \n        <code>rB</code> and <code>rC</code>, the <code>circumradius</code> \n        <code>cR</code>, the <code>Incircle</code> radius <code>rIn</code> \n        aka <code>inradius</code>, the inner and outer <i>Soddy</i> circle \n        radii <code>riS</code> and <code>roS</code>, the sides \n        <code>a</code>, <code>b</code> and <code>c</code> and \n        semi-perimeter <code>s</code> of a triangle, all in \n        <code>meter</code> conventionally.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.geohash.Resolutions2Tuple-class.html\">pygeodesy.geohash.Resolutions2Tuple</a></strong>:\n      <em class=\"summary\">2-Tuple <code>(res1, res2)</code> with the primary \n        <i>(longitudinal)</i> and secondary <i>(latitudinal)</i> \n        resolution, both in <code>degrees</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.namedTuples.Reverse4Tuple-class.html\">pygeodesy.namedTuples.Reverse4Tuple</a></strong>:\n      <em class=\"summary\">4-Tuple <code>(lat, lon, gamma, scale)</code> with \n        <code>lat</code>- and <code>lon</code>gitude in \n        <code>degrees</code>, meridian convergence <code>gamma</code> at \n        point in <code>degrees</code> and the <code>scale</code> of \n        projection at point <code>scalar</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.points.Shape2Tuple-class.html\">pygeodesy.points.Shape2Tuple</a></strong>:\n      <em class=\"summary\">2-Tuple <code>(nrows, ncols)</code>, the number of rows and \n        columns, both <code>int</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.geohash.Sizes3Tuple-class.html\">pygeodesy.geohash.Sizes3Tuple</a></strong>:\n      <em class=\"summary\">3-Tuple <code>(height, width, radius)</code> with latitudinal \n        <code>height</code>, longitudinal <code>width</code> and area \n        <code>radius</code>, all in <code>meter</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.vector2d.Soddy4Tuple-class.html\">pygeodesy.vector2d.Soddy4Tuple</a></strong>:\n      <em class=\"summary\">4-Tuple <code>(radius, center, deltas, outer)</code> with \n        <code>radius</code> and (trilaterated) <code>center</code> of the \n        <i>inner</i> <i>Soddy</i> circle and the radius of the \n        <code>outer</code> <i>Soddy</i> circle.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.resections.Survey3Tuple-class.html\">pygeodesy.resections.Survey3Tuple</a></strong>:\n      <em class=\"summary\">3-Tuple <code>(PA, PB, PC)</code> with distance from survey point \n        <code>P</code> to each of the triangle corners <code>A</code>, \n        <code>B</code> and <code>C</code> in <code>meter</code>, \n        conventionally.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.trf.TRFXform7Tuple-class.html\">pygeodesy.trf.TRFXform7Tuple</a></strong>:\n      <em class=\"summary\">7-Tuple <code>(tx, ty, tz, s, sx, sy, sz)</code> of conversion \n        parameters with translations <code>tx</code>, <code>ty</code> and \n        <code>tz</code> in <code>milli-meter</code>, scale <code>s</code> \n        in <code>ppB</code> and rotations <code>sx</code>, <code>sy</code> \n        and <code>sz</code> in <code>milli-arc-seconds</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.resections.Tienstra7Tuple-class.html\">pygeodesy.resections.Tienstra7Tuple</a></strong>:\n      <em class=\"summary\">7-Tuple <code>(pointP, A, B, C, a, b, c)</code> with survey \n        <code>pointP</code>, interior triangle angles <code>A</code>, \n        <code>B</code> and <code>C</code> in <code>degrees</code> and \n        triangle sides <code>a</code>, <code>b</code> and <code>c</code> in\n        <code>meter</code>, conventionally.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.resections.TriAngle5Tuple-class.html\">pygeodesy.resections.TriAngle5Tuple</a></strong>:\n      <em class=\"summary\">5-Tuple <code>(radA, radB, radC, rIn, area)</code> with the \n        interior angles at triangle corners <code>A</code>, <code>B</code> \n        and <code>C</code> in <code>radians</code>, the \n        <code>InCircle</code> radius <code>rIn</code> aka \n        <code>inradius</code> in <code>meter</code> and the triangle \n        <code>area</code> in <code>meter</code> <i>squared</i>, \n        conventionally.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.resections.TriSide2Tuple-class.html\">pygeodesy.resections.TriSide2Tuple</a></strong>:\n      <em class=\"summary\">2-Tuple <code>(a, radA)</code> with triangle side <code>a</code> in\n        <code>meter</code>, conventionally and angle <code>radA</code> at \n        the opposite triangle corner in <code>radians</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.resections.TriSide4Tuple-class.html\">pygeodesy.resections.TriSide4Tuple</a></strong>:\n      <em class=\"summary\">4-Tuple <code>(a, b, radC, d)</code> with interior angle \n        <code>radC</code> at triangle corner <code>C</code> in \n        <code>radians</code>with the length of triangle sides \n        <code>a</code> and <code>b</code> and with triangle height \n        <code>d</code> perpendicular to triangle side <code>c</code>, in \n        the same units as triangle sides <code>a</code> and <code>b</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.namedTuples.Triangle7Tuple-class.html\">pygeodesy.namedTuples.Triangle7Tuple</a></strong>:\n      <em class=\"summary\">7-Tuple <code>(A, a, B, b, C, c, area)</code> with interior angles \n        <code>A</code>, <code>B</code> and <code>C</code> in \n        <code>degrees</code>, spherical sides <code>a</code>, \n        <code>b</code> and <code>c</code> in <code>meter</code> \n        conventionally and the <code>area</code> of a (spherical) triangle \n        in <i>square</i> <code>meter</code> conventionally.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.namedTuples.Triangle8Tuple-class.html\">pygeodesy.namedTuples.Triangle8Tuple</a></strong>:\n      <em class=\"summary\">8-Tuple <code>(A, a, B, b, C, c, D, E)</code> with interior angles \n        <code>A</code>, <code>B</code> and <code>C</code>, spherical sides \n        <code>a</code>, <code>b</code> and <code>c</code>, the <i>spherical\n        deficit</i> <code>D</code> and the <i>spherical excess</i> \n        <code>E</code> of a (spherical) triangle, all in \n        <code>radians</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.vector2d.Triaxum5Tuple-class.html\">pygeodesy.vector2d.Triaxum5Tuple</a></strong>:\n      <em class=\"summary\">5-Tuple <code>(a, b, c, rank, residuals)</code> with the \n        (unordered) triaxial radii <code>a</code>, <code>b</code> and \n        <code>c</code> of an ellipsoid <i>least-squares</i> fitted through \n        given points and the <code>rank</code> and <code>residuals</code> \n        -if any- from <a \n        href=\"https://NumPy.org/doc/stable/reference/generated/numpy.linalg.lstsq.html\"\n        target=\"_top\">numpy.linalg.lstsq</a>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.namedTuples.Trilaterate5Tuple-class.html\">pygeodesy.namedTuples.Trilaterate5Tuple</a></strong>:\n      <em class=\"summary\">5-Tuple <code>(min, minPoint, max, maxPoint, n)</code> with \n        <code>min</code> and <code>max</code> in <code>meter</code>, the \n        corresponding trilaterated <code>minPoint</code> and \n        <code>maxPoint</code> as <code>LatLon</code> and the number \n        <code>n</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.namedTuples.UtmUps2Tuple-class.html\">pygeodesy.namedTuples.UtmUps2Tuple</a></strong>:\n      <em class=\"summary\">2-Tuple <code>(zone, hemipole)</code> as <code>int</code> and \n        <code>str</code>, where <code>zone</code> is <code>1..60</code> for\n        UTM or <code>0</code> for UPS and <code>hemipole</code> \n        <code>'N'|'S'</code> is the UTM hemisphere or the UPS pole.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.namedTuples.UtmUps5Tuple-class.html\">pygeodesy.namedTuples.UtmUps5Tuple</a></strong>:\n      <em class=\"summary\">5-Tuple <code>(zone, hemipole, easting, northing, band)</code> as \n        <code>int</code>, <code>str</code>, <code>meter</code>, \n        <code>meter</code> and <code>band</code> letter, where \n        <code>zone</code> is <code>1..60</code> for UTM or <code>0</code> \n        for UPS, <code>hemipole</code> <code>'N'|'S'</code> is the UTM \n        hemisphere or the UPS pole and <code>band</code> is \n        <code>&quot;&quot;</code> or the <i>longitudinal</i> UTM band \n        <code>'C'|'D'|..|'W'|'X'</code> or <i>polar</i> UPS band \n        <code>'A'|'B'|'Y'|'Z'</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.namedTuples.UtmUps8Tuple-class.html\">pygeodesy.namedTuples.UtmUps8Tuple</a></strong>:\n      <em class=\"summary\">8-Tuple <code>(zone, hemipole, easting, northing, band, datum, \n        gamma, scale)</code> as <code>int</code>, <code>str</code>, \n        <code>meter</code>, <code>meter</code>, <code>band</code> letter, \n        <code>Datum</code>, <code>degrees</code> and <code>scalar</code>, \n        where <code>zone</code> is <code>1..60</code> for UTM or \n        <code>0</code> for UPS, <code>hemipole</code> <code>'N'|'S'</code> \n        is the UTM hemisphere or the UPS pole and <code>band</code> is \n        <code>&quot;&quot;</code> or the <i>longitudinal</i> UTM band \n        <code>'C'|'D'|..|'W'|'X'</code> or <i>polar</i> UPS band \n        <code>'A'|'B'|'Y'|'Z'</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.namedTuples.UtmUpsLatLon5Tuple-class.html\">pygeodesy.namedTuples.UtmUpsLatLon5Tuple</a></strong>:\n      <em class=\"summary\">5-Tuple <code>(zone, band, hemipole, lat, lon)</code> as \n        <code>int</code>, <code>str</code>, <code>str</code>, \n        <code>degrees90</code> and <code>degrees180</code>, where \n        <code>zone</code> is <code>1..60</code> for UTM or <code>0</code> \n        for UPS, <code>band</code> is <code>&quot;&quot;</code> or the \n        <i>longitudinal</i> UTM band <code>'C'|'D'|..|'W'|'X'</code> or \n        <i>polar</i> UPS band <code>'A'|'B'|'Y'|'Z'</code> and \n        <code>hemipole</code> <code>'N'|'S'</code> is the UTM hemisphere or\n        the UPS pole.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.ltpTuples.Uvw3Tuple-class.html\">pygeodesy.ltpTuples.Uvw3Tuple</a></strong>:\n      <em class=\"summary\">3-Tuple <code>(u, v, w)</code>, in <code>meter</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.namedTuples.Vector2Tuple-class.html\">pygeodesy.namedTuples.Vector2Tuple</a></strong>:\n      <em class=\"summary\">2-Tuple <code>(x, y)</code> of (geocentric) components, each in \n        <code>meter</code> or the same <code>units</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.namedTuples.Vector3Tuple-class.html\">pygeodesy.namedTuples.Vector3Tuple</a></strong>:\n      <em class=\"summary\">3-Tuple <code>(x, y, z)</code> of (geocentric) components, all in \n        <code>meter</code> or the same <code>units</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.namedTuples.Vector4Tuple-class.html\">pygeodesy.namedTuples.Vector4Tuple</a></strong>:\n      <em class=\"summary\">4-Tuple <code>(x, y, z, h)</code> of (geocentric) components, all \n        in <code>meter</code> or the same <code>units</code>.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.triaxials.triaxial3.Cartesian5Tuple-class.html\">pygeodesy.triaxials.triaxial3.Cartesian5Tuple</a></strong>:\n      <em class=\"summary\">5-Tuple <code>(x, y, z, h, llk)</code> with <i>cartesian</i> \n        <code>x</code>, <code>y</code> and <code>z</code> coordinates on \n        and height <code>h</code> above or below the triaxial's surface and\n        kind <code>llk</code> set to the original <code>LLK</code> or \n        <code>None</code>.</em>\n    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\">pygeodesy.ltpTuples._Abc4Tuple</strong>:\n      <em class=\"summary\">(INTERNAL) Base class for <code>Aer4Tuple</code>, \n        <code>Enu4Tuple</code>, <code>Ned4Tuple</code> and \n        <code>Xyz4Tuple</code>.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.ltpTuples.Aer4Tuple-class.html\">pygeodesy.ltpTuples.Aer4Tuple</a></strong>:\n      <em class=\"summary\">4-Tuple <code>(azimuth, elevation, slantrange, ltp)</code>, all in \n        <code>meter</code> except <code>ltp</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.ltpTuples.Enu4Tuple-class.html\">pygeodesy.ltpTuples.Enu4Tuple</a></strong>:\n      <em class=\"summary\">4-Tuple <code>(east, north, up, ltp)</code>, in <code>meter</code> \n        except <code>ltp</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.ltpTuples.Ned4Tuple-class.html\">pygeodesy.ltpTuples.Ned4Tuple</a></strong>:\n      <em class=\"summary\">4-Tuple <code>(north, east, down, ltp)</code>, all in \n        <code>meter</code> except <code>ltp</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.ltpTuples.Xyz4Tuple-class.html\">pygeodesy.ltpTuples.Xyz4Tuple</a></strong>:\n      <em class=\"summary\">4-Tuple <code>(x, y, z, ltp)</code>, all in <code>meter</code> \n        except <code>ltp</code>.</em>\n    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\">pygeodesy.angles._Ang3Tuple</strong>:\n      <em class=\"summary\">(INTERNAL) Methods <code>.toDegrees</code>, \n        <code>.toLambertian</code>, <code>.toRadians</code> and \n        <code>.toUnit</code>.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.triaxials.triaxial3.BetOmgAlp5Tuple-class.html\">pygeodesy.triaxials.triaxial3.BetOmgAlp5Tuple</a></strong>:\n      <em class=\"summary\">5-Tuple <code>(bet, omg, alp, h, llk)</code> with \n        <i>ellipsoidal</i> lat- <code>bet</code>, longitude \n        <code>omg</code> and azimuth <code>alp</code>, all in <a \n        href=\"pygeodesy.angles.Ang-class.html\" class=\"link\">Ang</a>les on \n        and height <code>h</code> off the triaxial's surface and kind \n        <code>llk</code> set to <code>LLK.ELLIPSOIDAL</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.triaxials.conformal3.BetOmgGam5Tuple-class.html\">pygeodesy.triaxials.conformal3.BetOmgGam5Tuple</a></strong>:\n      <em class=\"summary\">5-Tuple <code>(bet, omg, gam, scale, llk)</code> with \n        <i>ellipsoidal</i> lat- <code>bet</code>, longitude \n        <code>omg</code> and meridian convergence <code>gam</code> all <a \n        href=\"pygeodesy.angles.Ang-class.html\" class=\"link\">Ang</a>les, \n        <code>scale</code> <i>and kind</i> <code>llk</code> <i>set to</i> \n        <code>LLK.CONFORMAL</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.triaxials.triaxial3.PhiLamZet5Tuple-class.html\">pygeodesy.triaxials.triaxial3.PhiLamZet5Tuple</a></strong>:\n      <em class=\"summary\">5-Tuple <code>(phi, lam, zet, h, llk)</code> with trixial lat- lat-\n        <code>phi</code>, longitude <code>lam</code> and azimuth \n        <code>zet</code>, all in <a href=\"pygeodesy.angles.Ang-class.html\" \n        class=\"link\">Ang</a>les on and height <code>h</code> off the \n        triaxial's surface and kind <code>llk</code> set to an \n        <code>LLK</code>.</em>\n    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.deprecated.classes._Deprecated_NamedTuple-class.html\">pygeodesy.deprecated.classes._Deprecated_NamedTuple</a></strong>:\n      <em class=\"summary\">DEPRECATED, <code>_NamedTuple</code> base.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.deprecated.classes.ClipCS3Tuple-class.html\">pygeodesy.deprecated.classes.ClipCS3Tuple</a></strong>:\n      <em class=\"summary\">DEPRECATED, see <i>DEPRECATED</i> function <a \n        href=\"pygeodesy.deprecated.functions-module.html#clipCS3\" \n        class=\"link\">pygeodesy.deprecated.clipCS3</a>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.deprecated.classes.EasNorExact4Tuple-class.html\">pygeodesy.deprecated.classes.EasNorExact4Tuple</a></strong>:\n      <em class=\"summary\">DEPRECATED, use class <a \n        href=\"pygeodesy.namedTuples.Forward4Tuple-class.html\" \n        class=\"link\">Forward4Tuple</a>, item <code>gamma</code> for \n        <code>convergence</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.deprecated.classes.LatLonExact4Tuple-class.html\">pygeodesy.deprecated.classes.LatLonExact4Tuple</a></strong>:\n      <em class=\"summary\">DEPRECATED, use class <a \n        href=\"pygeodesy.namedTuples.Reverse4Tuple-class.html\" \n        class=\"link\">Reverse4Tuple</a>, item <code>gamma</code> for \n        <code>convergence</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.deprecated.classes.NearestOn4Tuple-class.html\">pygeodesy.deprecated.classes.NearestOn4Tuple</a></strong>:\n      <em class=\"summary\">DEPRECATED on 2023.10.10, see methods <a \n        href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#nearestOn4\" \n        class=\"link\">RhumbLine.nearestOn4</a> and <a \n        href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#nearestOn4\" \n        class=\"link\">RhumbLineAux.nearestOn4</a>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.deprecated.classes.Ned3Tuple-class.html\">pygeodesy.deprecated.classes.Ned3Tuple</a></strong>:\n      <em class=\"summary\">DEPRECATED, use class <a \n        href=\"pygeodesy.ltpTuples.Ned4Tuple-class.html\" \n        class=\"link\">Ned4Tuple</a>, ignoring item <code>ltp</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.deprecated.classes.Rhumb7Tuple-class.html\">pygeodesy.deprecated.classes.Rhumb7Tuple</a></strong>:\n      <em class=\"summary\">DEPRECATED, use class <a \n        href=\"pygeodesy.karney.Rhumb8Tuple-class.html\" class=\"link\" \n        onclick=\"show_private();\">Rhumb8Tuple</a>, ignoring item \n        <code>a12</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.deprecated.classes.RhumbOrder2Tuple-class.html\">pygeodesy.deprecated.classes.RhumbOrder2Tuple</a></strong>:\n      <em class=\"summary\">DEPRECATED, see deprecated method <a \n        href=\"pygeodesy.rhumb.ekx.Rhumb-class.html#orders\" \n        class=\"link\">Rhumb.orders</a>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.deprecated.classes.Transform7Tuple-class.html\">pygeodesy.deprecated.classes.Transform7Tuple</a></strong>:\n      <em class=\"summary\">DEPRECATED on 2024.02.02, use class <a \n        href=\"pygeodesy.trf.TRFXform7Tuple-class.html\" \n        class=\"link\">TRFXform7Tuple</a>, <i>without</i> keyword arguments.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.deprecated.classes.TriAngle4Tuple-class.html\">pygeodesy.deprecated.classes.TriAngle4Tuple</a></strong>:\n      <em class=\"summary\">DEPRECATED on 2023.09.14, use class <a \n        href=\"pygeodesy.resections.TriAngle5Tuple-class.html\" \n        class=\"link\">TriAngle5Tuple</a>, ignoring item <code>area</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.deprecated.classes.UtmUps4Tuple-class.html\">pygeodesy.deprecated.classes.UtmUps4Tuple</a></strong>:\n      <em class=\"summary\">DEPRECATED and OBSOLETE, expect a <a \n        href=\"pygeodesy.namedTuples.UtmUps5Tuple-class.html\" \n        class=\"link\">UtmUps5Tuple</a> from method \n        <code>pygeodesy.Mgrs.toUtm(utm=None)</code>.</em>\n    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\">pygeodesy.karney._GTuple</strong>:\n      <em class=\"summary\">(INTERNAL) Helper.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.karney.Direct9Tuple-class.html\">pygeodesy.karney.Direct9Tuple</a></strong>:\n      <em class=\"summary\">9-Tuple <code>(a12, lat2, lon2, azi2, s12, m12, M12, M21, \n        S12)</code> with arc length <code>a12</code>, angles \n        <code>lat2</code>, <code>lon2</code> and azimuth <code>azi2</code> \n        in <code>degrees</code>, distance <code>s12</code> and reduced \n        length <code>m12</code> in <code>meter</code> and area \n        <code>S12</code> in <code>meter</code> <i>squared</i>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.geod3solve.Geod3Solve8Tuple-class.html\">pygeodesy.geod3solve.Geod3Solve8Tuple</a></strong>:\n      <em class=\"summary\">8-Tuple <code>(bet1, omg1, alp1, bet2, omg2, alp2, s12, a12)</code>\n        with <code>ellipsoidal</code> latitudes <code>bet1</code> and \n        <code>bet2</code>, <code>ellipsoidal</code> longitudes \n        <code>omg1</code> and <code>omg2</code>, forward azimuths \n        <code>alp1</code> and <code>alp2</code> in bearings from North, \n        distance <code>s12</code> in <code>meter</code>, conventionally and\n        <i>approximate</i> arc length <code>a12</code> in degrees, see <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/Geod3Solve.1.html\"\n        target=\"_top\">Geod3Solve</a>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.geodsolve.GeodSolve12Tuple-class.html\">pygeodesy.geodsolve.GeodSolve12Tuple</a></strong>:\n      <em class=\"summary\">12-Tuple <code>(lat1, lon1, azi1, lat2, lon2, azi2, s12, a12, m12, \n        M12, M21, S12)</code> with angles <code>lat1</code>, \n        <code>lon1</code>, <code>azi1</code>, <code>lat2</code>, \n        <code>lon2</code> and <code>azi2</code> and arc <code>a12</code> \n        all in <code>degrees</code>, initial <code>azi1</code> and final \n        <code>azi2</code> forward azimuths in bearings, degrees from North,\n        distance <code>s12</code> and reduced length <code>m12</code> in \n        <code>meter</code>, area <code>S12</code> in <code>meter</code> \n        <i>squared</i> and geodesic scale factors <code>M12</code> and \n        <code>M21</code>, both <code>scalar</code>, see <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/GeodSolve.1.html\"\n        target=\"_top\">GeodSolve</a>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.karney.Inverse10Tuple-class.html\">pygeodesy.karney.Inverse10Tuple</a></strong>:\n      <em class=\"summary\">10-Tuple <code>(a12, s12, salp1, calp1, salp2, calp2, m12, M12, \n        M21, S12)</code> with arc length <code>a12</code> in \n        <code>degrees</code>, distance <code>s12</code> and reduced length \n        <code>m12</code> in <code>meter</code>, area <code>S12</code> in \n        <code>meter</code> <i>squared</i> and the sines <code>salp1</code>,\n        <code>salp2</code> and cosines <code>calp1</code>, \n        <code>calp2</code> of the initial <code>1</code> and final \n        <code>2</code> (forward) azimuths.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.karney.Rhumb8Tuple-class.html\" onclick=\"show_private();\">pygeodesy.karney.Rhumb8Tuple</a></strong>:\n      <em class=\"summary\">8-Tuple <code>(lat1, lon1, lat2, lon2, azi12, s12, S12, a12)</code>\n        with lat- <code>lat1</code>, <code>lat2</code> and longitudes \n        <code>lon1</code>, <code>lon2</code> of both points, the azimuth of\n        the rhumb line <code>azi12</code>, the distance <code>s12</code>, \n        the area <code>S12</code> under the rhumb line and the angular \n        distance <code>a12</code> between both points.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.rhumb.solve.RhumbSolve7Tuple-class.html\">pygeodesy.rhumb.solve.RhumbSolve7Tuple</a></strong>:\n      <em class=\"summary\">7-Tuple <code>(lat1, lon1, lat2, lon2, azi12, s12, S12)</code> with\n        lat- <code>lat1</code>, <code>lat2</code> and longitudes \n        <code>lon1</code>, <code>lon2</code> of both points, the azimuth of\n        the rhumb line <code>azi12</code>, the distance <code>s12</code> \n        and the area <code>S12</code> under the rhumb line between both \n        points.</em>\n    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.deprecated.classes.RhumbOrder2Tuple-class.html\">pygeodesy.deprecated.classes.RhumbOrder2Tuple</a></strong>:\n      <em class=\"summary\">DEPRECATED, see deprecated method <a \n        href=\"pygeodesy.rhumb.ekx.Rhumb-class.html#orders\" \n        class=\"link\">Rhumb.orders</a>.</em>\n    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\">pygeodesy.namedTuples._NamedTupleTo</strong>:\n      <em class=\"summary\">(INTERNAL) Base for <code>-.toDegrees</code>, \n        <code>-.toRadians</code>.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.cartesianBase.RadiusThetaPhi3Tuple-class.html\">pygeodesy.cartesianBase.RadiusThetaPhi3Tuple</a></strong>:\n      <em class=\"summary\">3-Tuple <code>(r, theta, phi)</code> with radial distance \n        <code>r</code> in <code>meter</code>, inclination \n        <code>theta</code> (with respect to the positive z-axis) and \n        azimuthal angle <code>phi</code> in <a \n        href=\"pygeodesy.units.Degrees-class.html\" class=\"link\">Degrees</a> \n        <i>or</i> <a href=\"pygeodesy.units.Radians-class.html\" \n        class=\"link\">Radians</a> representing a <a \n        href=\"https://WikiPedia.org/wiki/Spherical_coordinate_system\" \n        target=\"_top\">spherical, polar position</a>.</em>\n    </li>\n    <li> <strong class=\"uidlink\">pygeodesy.triaxials.triaxial5._NamedTupleToX</strong>:\n      <em class=\"summary\">(INTERNAL) Base class for <a \n        href=\"pygeodesy.triaxials.triaxial5.BetaOmega2Tuple-class.html\" \n        class=\"link\">BetaOmega2Tuple</a>, <a \n        href=\"pygeodesy.triaxials.triaxial5.BetaOmega3Tuple-class.html\" \n        class=\"link\">BetaOmega3Tuple</a> and <a \n        href=\"pygeodesy.triaxials.triaxial5.Conformal2Tuple-class.html\" \n        class=\"link\">Conformal2Tuple</a>.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.triaxials.triaxial5.BetaOmega2Tuple-class.html\">pygeodesy.triaxials.triaxial5.BetaOmega2Tuple</a></strong>:\n      <em class=\"summary\">2-Tuple <code>(beta, omega)</code> with <i>ellipsoidal</i> lat- and\n        longitude <code>beta</code> and <code>omega</code> both in <a \n        href=\"pygeodesy.units.Radians-class.html\" class=\"link\">Radians</a> \n        (or <a href=\"pygeodesy.units.Degrees-class.html\" \n        class=\"link\">Degrees</a>).</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.triaxials.triaxial5.BetaOmega3Tuple-class.html\">pygeodesy.triaxials.triaxial5.BetaOmega3Tuple</a></strong>:\n      <em class=\"summary\">3-Tuple <code>(beta, omega, height)</code> with <i>ellipsoidal</i> \n        lat- and longitude <code>beta</code> and <code>omega</code> both in\n        <a href=\"pygeodesy.units.Radians-class.html\" \n        class=\"link\">Radians</a> (or <a \n        href=\"pygeodesy.units.Degrees-class.html\" class=\"link\">Degrees</a>)\n        and the <code>height</code>, rather the (signed) <i>distance</i> to\n        the triaxial's surface (measured along the radial line to the \n        triaxial's center) in <code>meter</code>, conventionally.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.triaxials.triaxial5.Conformal2Tuple-class.html\">pygeodesy.triaxials.triaxial5.Conformal2Tuple</a></strong>:\n      <em class=\"summary\">2-Tuple <code>(x, y)</code> with a <i>Jacobi Conformal</i> \n        <code>x</code> and <code>y</code> projection, both in <a \n        href=\"pygeodesy.units.Radians-class.html\" class=\"link\">Radians</a> \n        (or <a href=\"pygeodesy.units.Degrees-class.html\" \n        class=\"link\">Degrees</a>).</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.deprecated.classes.Jacobi2Tuple-class.html\">pygeodesy.deprecated.classes.Jacobi2Tuple</a></strong>:\n      <em class=\"summary\">DEPRECATED on 25.11.11, use class <a \n        href=\"pygeodesy.triaxials.triaxial5.Conformal2Tuple-class.html\" \n        class=\"link\">Conformal2Tuple</a>.</em>\n    </li>\n    </ul>\n    </li>\n    </ul>\n    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\">pygeodesy.ellipsoids.a_f2Tuple</a></strong>:\n      <em class=\"summary\">2-Tuple <code>(a, f)</code> specifying an ellipsoid by \n        <i>equatorial</i> radius <code>a</code> in <code>meter</code> and \n        scalar <i>flattening</i> <code>f</code>.</em>\n    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.unitsBase._NamedUnit-class.html\">pygeodesy.unitsBase._NamedUnit</a></strong>:\n      <em class=\"summary\">(INTERNAL) Base class for <code>units</code>.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.units.Bool-class.html\">pygeodesy.units.Bool</a></strong>:\n      <em class=\"summary\">Named <code>bool</code>, a sub-class of <code>int</code> like \n        Python's <code>bool</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.unitsBase.Float-class.html\">pygeodesy.unitsBase.Float</a></strong>:\n      <em class=\"summary\">Named <code>float</code>.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.units.Degrees-class.html\">pygeodesy.units.Degrees</a></strong>:\n      <em class=\"summary\">Named <code>float</code> representing a coordinate in \n        <code>degrees</code>, optionally clipped.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.units.Azimuth-class.html\">pygeodesy.units.Azimuth</a></strong>:\n      <em class=\"summary\">Named <code>float</code> representing an azimuth in compass \n        <code>degrees</code> from (true) North.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.units.Bearing-class.html\">pygeodesy.units.Bearing</a></strong>:\n      <em class=\"summary\">Named <code>float</code> representing a bearing in compass \n        <code>degrees</code> from (true) North.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.units.Degrees_-class.html\">pygeodesy.units.Degrees_</a></strong>:\n      <em class=\"summary\">Named <code>Degrees</code> representing a coordinate in \n        <code>degrees</code> with optional limits <code>low</code> and \n        <code>high</code>.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.units.Lat_-class.html\">pygeodesy.units.Lat_</a></strong>:\n      <em class=\"summary\">Named <code>float</code> representing a latitude in \n        <code>degrees</code> within limits <code>low</code> and \n        <code>high</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.units.Lon_-class.html\">pygeodesy.units.Lon_</a></strong>:\n      <em class=\"summary\">Named <code>float</code> representing a longitude in \n        <code>degrees</code> within limits <code>low</code> and \n        <code>high</code>.</em>\n    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.units.Lat-class.html\">pygeodesy.units.Lat</a></strong>:\n      <em class=\"summary\">Named <code>float</code> representing a latitude in \n        <code>degrees</code>.</em>\n    <ul>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.units.Lon-class.html\">pygeodesy.units.Lon</a></strong>:\n      <em class=\"summary\">Named <code>float</code> representing a longitude in \n        <code>degrees</code>.</em>\n    <ul>\n    </ul>\n    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.units.Degrees2-class.html\">pygeodesy.units.Degrees2</a></strong>:\n      <em class=\"summary\">Named <code>float</code> representing a distance in <code>degrees \n        squared</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.units.Distance-class.html\">pygeodesy.units.Distance</a></strong>:\n      <em class=\"summary\">Named <code>float</code> representing a distance, conventionally in\n        <code>meter</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.units.Feet-class.html\">pygeodesy.units.Feet</a></strong>:\n      <em class=\"summary\">Named <code>float</code> representing a distance or length in \n        <code>feet</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.units.Float_-class.html\">pygeodesy.units.Float_</a></strong>:\n      <em class=\"summary\">Named <code>float</code> with optional <code>low</code> and \n        <code>high</code> limit.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.units.Distance_-class.html\">pygeodesy.units.Distance_</a></strong>:\n      <em class=\"summary\">Named <code>float</code> with optional <code>low</code> and \n        <code>high</code> limits representing a distance, conventionally in\n        <code>meter</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.units.Epoch-class.html\">pygeodesy.units.Epoch</a></strong>:\n      <em class=\"summary\">Named <code>epoch</code> with optional <code>low</code> and \n        <code>high</code> limits representing a fractional calendar year.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.units.FIx-class.html\">pygeodesy.units.FIx</a></strong>:\n      <em class=\"summary\">A named <i>Fractional Index</i>, an <code>int</code> or \n        <code>float</code> index into a <code>list</code> or \n        <code>tuple</code> of <code>points</code>, typically.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.units.Height_-class.html\">pygeodesy.units.Height_</a></strong>:\n      <em class=\"summary\">Named <code>float</code> with optional <code>low</code> and \n        <code>high</code> limits representing a height, conventionally in \n        <code>meter</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.units.Meter2-class.html\">pygeodesy.units.Meter2</a></strong>:\n      <em class=\"summary\">Named <code>float</code> representing an area in <code>meter \n        squared</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.units.Meter3-class.html\">pygeodesy.units.Meter3</a></strong>:\n      <em class=\"summary\">Named <code>float</code> representing a volume in <code>meter \n        cubed</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.units.Meter_-class.html\">pygeodesy.units.Meter_</a></strong>:\n      <em class=\"summary\">Named <code>float</code> representing a distance or length in \n        <code>meter</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.units.Radians2-class.html\">pygeodesy.units.Radians2</a></strong>:\n      <em class=\"summary\">Named <code>float</code> representing a distance in <code>radians \n        squared</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.units.Radius_-class.html\">pygeodesy.units.Radius_</a></strong>:\n      <em class=\"summary\">Named <code>float</code> with optional <code>low</code> and \n        <code>high</code> limits representing a radius, conventionally in \n        <code>meter</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.units.Scalar_-class.html\">pygeodesy.units.Scalar_</a></strong>:\n      <em class=\"summary\">Named <code>float</code> with optional <code>low</code> and \n        <code>high</code> limits representing a factor, fraction, scale, \n        etc.</em>\n    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.units.Height-class.html\">pygeodesy.units.Height</a></strong>:\n      <em class=\"summary\">Named <code>float</code> representing a height, conventionally in \n        <code>meter</code>.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.units.HeightX-class.html\">pygeodesy.units.HeightX</a></strong>:\n      <em class=\"summary\">Like <a href=\"pygeodesy.units.Height-class.html\" \n        class=\"link\">Height</a>, used to distinguish the interpolated \n        height from an original <a href=\"pygeodesy.units.Height-class.html\"\n        class=\"link\">Height</a> at a clip intersection.</em>\n    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.units.Meter-class.html\">pygeodesy.units.Meter</a></strong>:\n      <em class=\"summary\">Named <code>float</code> representing a distance or length in \n        <code>meter</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.units.Radians-class.html\">pygeodesy.units.Radians</a></strong>:\n      <em class=\"summary\">Named <code>float</code> representing a coordinate in \n        <code>radians</code>, optionally clipped.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.units.Bearing_-class.html\">pygeodesy.units.Bearing_</a></strong>:\n      <em class=\"summary\">Named <code>float</code> representing a bearing in \n        <code>radians</code> from compass <code>degrees</code> from (true) \n        North.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.units.Lam-class.html\">pygeodesy.units.Lam</a></strong>:\n      <em class=\"summary\">Named <code>float</code> representing a longitude in \n        <code>radians</code>.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.units.Lamd-class.html\">pygeodesy.units.Lamd</a></strong>:\n      <em class=\"summary\">Named <code>float</code> representing a longitude in \n        <code>radians</code> converted from <code>degrees</code>.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.deprecated.classes.Lam_-class.html\">pygeodesy.deprecated.classes.Lam_</a></strong>:\n      <em class=\"summary\">DEPRECATED on 2024.06.15, use class <a \n        href=\"pygeodesy.units.Lamd-class.html\" class=\"link\">Lamd</a>.</em>\n    </li>\n    </ul>\n    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.angles.Lambertian-class.html\">pygeodesy.angles.Lambertian</a></strong>:\n      <em class=\"summary\">A <code>Lambertian</code> in <code>radians</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.units.Phi-class.html\">pygeodesy.units.Phi</a></strong>:\n      <em class=\"summary\">Named <code>float</code> representing a latitude in \n        <code>radians</code>.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.units.Phid-class.html\">pygeodesy.units.Phid</a></strong>:\n      <em class=\"summary\">Named <code>float</code> representing a latitude in \n        <code>radians</code> converted from <code>degrees</code>.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.deprecated.classes.Phi_-class.html\">pygeodesy.deprecated.classes.Phi_</a></strong>:\n      <em class=\"summary\">DEPRECATED on 2024.06.15, use class <a \n        href=\"pygeodesy.units.Phid-class.html\" class=\"link\">Phid</a>.</em>\n    </li>\n    </ul>\n    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.units.Radians_-class.html\">pygeodesy.units.Radians_</a></strong>:\n      <em class=\"summary\">Named <code>float</code> representing a coordinate in \n        <code>radians</code> with optional limits <code>low</code> and \n        <code>high</code>.</em>\n    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.unitsBase.Radius-class.html\">pygeodesy.unitsBase.Radius</a></strong>:\n      <em class=\"summary\">Named <code>float</code> representing a radius, conventionally in \n        <code>meter</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.units.Scalar-class.html\">pygeodesy.units.Scalar</a></strong>:\n      <em class=\"summary\">Named <code>float</code> representing a factor, fraction, scale, \n        etc.</em>\n    </li>\n    <li> <strong class=\"uidlink\">pygeodesy.units._EasNorBase</strong>:\n      <em class=\"summary\">(INTERNAL) <a href=\"pygeodesy.units.Easting-class.html\" \n        class=\"link\">Easting</a> and <a \n        href=\"pygeodesy.units.Northing-class.html\" \n        class=\"link\">Northing</a> base class.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.units.Easting-class.html\">pygeodesy.units.Easting</a></strong>:\n      <em class=\"summary\">Named <code>float</code> representing an easting, conventionally in\n        <code>meter</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.units.Northing-class.html\">pygeodesy.units.Northing</a></strong>:\n      <em class=\"summary\">Named <code>float</code> representing a northing, conventionally in\n        <code>meter</code>.</em>\n    </li>\n    </ul>\n    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.unitsBase.Int-class.html\">pygeodesy.unitsBase.Int</a></strong>:\n      <em class=\"summary\">Named <code>int</code>.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.units.Bool-class.html\">pygeodesy.units.Bool</a></strong>:\n      <em class=\"summary\">Named <code>bool</code>, a sub-class of <code>int</code> like \n        Python's <code>bool</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.epsg.Epsg-class.html\">pygeodesy.epsg.Epsg</a></strong>:\n      <em class=\"summary\"><a href=\"https://EPSG.org\" target=\"_top\">EPSG</a> class, a named \n        <code>int</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.units.Int_-class.html\">pygeodesy.units.Int_</a></strong>:\n      <em class=\"summary\">Named <code>int</code> with optional limits <code>low</code> and \n        <code>high</code>.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.units.Number_-class.html\">pygeodesy.units.Number_</a></strong>:\n      <em class=\"summary\">Named <code>int</code> representing a non-negative number.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.units.Precision_-class.html\">pygeodesy.units.Precision_</a></strong>:\n      <em class=\"summary\">Named <code>int</code> with optional <code>low</code> and \n        <code>high</code> limits representing a precision.</em>\n    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.units.Zone-class.html\">pygeodesy.units.Zone</a></strong>:\n      <em class=\"summary\">Named <code>int</code> representing a UTM/UPS zone number.</em>\n    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.unitsBase.Str-class.html\">pygeodesy.unitsBase.Str</a></strong>:\n      <em class=\"summary\">Named, callable <code>str</code>.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.units.Band-class.html\">pygeodesy.units.Band</a></strong>:\n      <em class=\"summary\">Named <code>str</code> representing a UTM/UPS band letter, \n        unchecked.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.gars.Garef-class.html\">pygeodesy.gars.Garef</a></strong>:\n      <em class=\"summary\">Garef class, a named <code>str</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.geohash.Geohash-class.html\">pygeodesy.geohash.Geohash</a></strong>:\n      <em class=\"summary\">Geohash class, a named <code>str</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.wgrs.Georef-class.html\">pygeodesy.wgrs.Georef</a></strong>:\n      <em class=\"summary\">Georef class, a named <code>str</code>.</em>\n    </li>\n    </ul>\n    </li>\n    </ul>\n    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\">basestring</strong>:\n      <em class=\"summary\">Type basestring cannot be instantiated; it is the base for str and \n        unicode.</em>\n    <ul>\n    <li> <strong class=\"uidlink\">str</strong>:\n      <em class=\"summary\">str(object='') -&gt; string</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.unitsBase.Str-class.html\">pygeodesy.unitsBase.Str</a></strong>:\n      <em class=\"summary\">Named, callable <code>str</code>.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.units.Band-class.html\">pygeodesy.units.Band</a></strong>:\n      <em class=\"summary\">Named <code>str</code> representing a UTM/UPS band letter, \n        unchecked.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.gars.Garef-class.html\">pygeodesy.gars.Garef</a></strong>:\n      <em class=\"summary\">Garef class, a named <code>str</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.geohash.Geohash-class.html\">pygeodesy.geohash.Geohash</a></strong>:\n      <em class=\"summary\">Geohash class, a named <code>str</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.wgrs.Georef-class.html\">pygeodesy.wgrs.Georef</a></strong>:\n      <em class=\"summary\">Georef class, a named <code>str</code>.</em>\n    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.interns.Str_-class.html\">pygeodesy.interns.Str_</a></strong>:\n      <em class=\"summary\">Extended, <i>callable</i> <code>str</code> class, not nameable.</em>\n    <ul>\n    </ul>\n    </li>\n    </ul>\n    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\">dict</strong>:\n      <em class=\"summary\">dict() -&gt; new empty dictionary\ndict(mapping) -&gt; new dictionary initialized from a mapping object's\n    (key, value) pairs\ndict(iterable) -&gt; new dictionary initialized as if via:\n    d = {}\n    for k, v in iterable:\n        d[k] = v\ndict(**kwargs) -&gt; new dictionary initialized with the name=value pairs\n    in the keyword argument list.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.named.ADict-class.html\">pygeodesy.named.ADict</a></strong>:\n      <em class=\"summary\">A <code>dict</code> with both key <i>and</i> attribute access to \n        the <code>dict</code> items.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.karney.GDict-class.html\">pygeodesy.karney.GDict</a></strong>:\n      <em class=\"summary\">A <code>dict</code> with both <code>key</code> <i>and</i> \n        <code>attribute</code> access to the <code>dict</code> items.</em>\n    <ul>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.geodesici.XDict-class.html\">pygeodesy.geodesici.XDict</a></strong>:\n      <em class=\"summary\">4+Item result from <a \n        href=\"pygeodesy.geodesici.Intersectool-class.html\" \n        class=\"link\">Intersectool</a> and <a \n        href=\"pygeodesy.geodesici.Intersector-class.html\" \n        class=\"link\">Intersector</a> methods <code>All</code>, \n        <code>Closest</code>, <code>Next</code> and <code>Segment</code> \n        with the intersection offsets <code>sA</code>, <code>sB</code> and \n        <code>sX0</code> in <code>meter</code> and the coincidence \n        indicator <code>c</code>, an <code>int</code>, +1 for parallel, -1 \n        for anti-parallel or 0 otherwise.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.deprecated.classes.XDist-class.html\">pygeodesy.deprecated.classes.XDist</a></strong>:\n      <em class=\"summary\">DEPRECATED on 2024.07.02, use class <a \n        href=\"pygeodesy.named.ADict-class.html\" class=\"link\">ADict</a>.</em>\n    </li>\n    <li> <strong class=\"uidlink\">pygeodesy.named._NamedDict</strong>:\n      <em class=\"summary\">(INTERNAL) Named <code>dict</code> with key <i>and</i> attribute \n        access to the items.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.geohash.Neighbors8Dict-class.html\">pygeodesy.geohash.Neighbors8Dict</a></strong>:\n      <em class=\"summary\">8-Dict <code>(N, NE, E, SE, S, SW, W, NW)</code> of <a \n        href=\"pygeodesy.geohash.Geohash-class.html\" \n        class=\"link\">Geohash</a>es, providing key <i>and</i> attribute \n        access to the items.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.named._NamedEnum-class.html\">pygeodesy.named._NamedEnum</a></strong>:\n      <em class=\"summary\">(INTERNAL) Enum-like <code>_NamedDict</code> with attribute access \n        restricted to valid keys.</em>\n    <ul>\n    </ul>\n    </li>\n    </ul>\n    </li>\n    </ul>\n    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\">float</strong>:\n      <em class=\"summary\">float(x) -&gt; floating point number</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.unitsBase.Float-class.html\">pygeodesy.unitsBase.Float</a></strong>:\n      <em class=\"summary\">Named <code>float</code>.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.units.Degrees-class.html\">pygeodesy.units.Degrees</a></strong>:\n      <em class=\"summary\">Named <code>float</code> representing a coordinate in \n        <code>degrees</code>, optionally clipped.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.units.Azimuth-class.html\">pygeodesy.units.Azimuth</a></strong>:\n      <em class=\"summary\">Named <code>float</code> representing an azimuth in compass \n        <code>degrees</code> from (true) North.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.units.Bearing-class.html\">pygeodesy.units.Bearing</a></strong>:\n      <em class=\"summary\">Named <code>float</code> representing a bearing in compass \n        <code>degrees</code> from (true) North.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.units.Degrees_-class.html\">pygeodesy.units.Degrees_</a></strong>:\n      <em class=\"summary\">Named <code>Degrees</code> representing a coordinate in \n        <code>degrees</code> with optional limits <code>low</code> and \n        <code>high</code>.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.units.Lat_-class.html\">pygeodesy.units.Lat_</a></strong>:\n      <em class=\"summary\">Named <code>float</code> representing a latitude in \n        <code>degrees</code> within limits <code>low</code> and \n        <code>high</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.units.Lon_-class.html\">pygeodesy.units.Lon_</a></strong>:\n      <em class=\"summary\">Named <code>float</code> representing a longitude in \n        <code>degrees</code> within limits <code>low</code> and \n        <code>high</code>.</em>\n    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.units.Lat-class.html\">pygeodesy.units.Lat</a></strong>:\n      <em class=\"summary\">Named <code>float</code> representing a latitude in \n        <code>degrees</code>.</em>\n    <ul>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.units.Lon-class.html\">pygeodesy.units.Lon</a></strong>:\n      <em class=\"summary\">Named <code>float</code> representing a longitude in \n        <code>degrees</code>.</em>\n    <ul>\n    </ul>\n    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.units.Degrees2-class.html\">pygeodesy.units.Degrees2</a></strong>:\n      <em class=\"summary\">Named <code>float</code> representing a distance in <code>degrees \n        squared</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.units.Distance-class.html\">pygeodesy.units.Distance</a></strong>:\n      <em class=\"summary\">Named <code>float</code> representing a distance, conventionally in\n        <code>meter</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.units.Feet-class.html\">pygeodesy.units.Feet</a></strong>:\n      <em class=\"summary\">Named <code>float</code> representing a distance or length in \n        <code>feet</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.units.Float_-class.html\">pygeodesy.units.Float_</a></strong>:\n      <em class=\"summary\">Named <code>float</code> with optional <code>low</code> and \n        <code>high</code> limit.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.units.Distance_-class.html\">pygeodesy.units.Distance_</a></strong>:\n      <em class=\"summary\">Named <code>float</code> with optional <code>low</code> and \n        <code>high</code> limits representing a distance, conventionally in\n        <code>meter</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.units.Epoch-class.html\">pygeodesy.units.Epoch</a></strong>:\n      <em class=\"summary\">Named <code>epoch</code> with optional <code>low</code> and \n        <code>high</code> limits representing a fractional calendar year.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.units.FIx-class.html\">pygeodesy.units.FIx</a></strong>:\n      <em class=\"summary\">A named <i>Fractional Index</i>, an <code>int</code> or \n        <code>float</code> index into a <code>list</code> or \n        <code>tuple</code> of <code>points</code>, typically.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.units.Height_-class.html\">pygeodesy.units.Height_</a></strong>:\n      <em class=\"summary\">Named <code>float</code> with optional <code>low</code> and \n        <code>high</code> limits representing a height, conventionally in \n        <code>meter</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.units.Meter2-class.html\">pygeodesy.units.Meter2</a></strong>:\n      <em class=\"summary\">Named <code>float</code> representing an area in <code>meter \n        squared</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.units.Meter3-class.html\">pygeodesy.units.Meter3</a></strong>:\n      <em class=\"summary\">Named <code>float</code> representing a volume in <code>meter \n        cubed</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.units.Meter_-class.html\">pygeodesy.units.Meter_</a></strong>:\n      <em class=\"summary\">Named <code>float</code> representing a distance or length in \n        <code>meter</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.units.Radians2-class.html\">pygeodesy.units.Radians2</a></strong>:\n      <em class=\"summary\">Named <code>float</code> representing a distance in <code>radians \n        squared</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.units.Radius_-class.html\">pygeodesy.units.Radius_</a></strong>:\n      <em class=\"summary\">Named <code>float</code> with optional <code>low</code> and \n        <code>high</code> limits representing a radius, conventionally in \n        <code>meter</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.units.Scalar_-class.html\">pygeodesy.units.Scalar_</a></strong>:\n      <em class=\"summary\">Named <code>float</code> with optional <code>low</code> and \n        <code>high</code> limits representing a factor, fraction, scale, \n        etc.</em>\n    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.units.Height-class.html\">pygeodesy.units.Height</a></strong>:\n      <em class=\"summary\">Named <code>float</code> representing a height, conventionally in \n        <code>meter</code>.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.units.HeightX-class.html\">pygeodesy.units.HeightX</a></strong>:\n      <em class=\"summary\">Like <a href=\"pygeodesy.units.Height-class.html\" \n        class=\"link\">Height</a>, used to distinguish the interpolated \n        height from an original <a href=\"pygeodesy.units.Height-class.html\"\n        class=\"link\">Height</a> at a clip intersection.</em>\n    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.units.Meter-class.html\">pygeodesy.units.Meter</a></strong>:\n      <em class=\"summary\">Named <code>float</code> representing a distance or length in \n        <code>meter</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.units.Radians-class.html\">pygeodesy.units.Radians</a></strong>:\n      <em class=\"summary\">Named <code>float</code> representing a coordinate in \n        <code>radians</code>, optionally clipped.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.units.Bearing_-class.html\">pygeodesy.units.Bearing_</a></strong>:\n      <em class=\"summary\">Named <code>float</code> representing a bearing in \n        <code>radians</code> from compass <code>degrees</code> from (true) \n        North.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.units.Lam-class.html\">pygeodesy.units.Lam</a></strong>:\n      <em class=\"summary\">Named <code>float</code> representing a longitude in \n        <code>radians</code>.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.units.Lamd-class.html\">pygeodesy.units.Lamd</a></strong>:\n      <em class=\"summary\">Named <code>float</code> representing a longitude in \n        <code>radians</code> converted from <code>degrees</code>.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.deprecated.classes.Lam_-class.html\">pygeodesy.deprecated.classes.Lam_</a></strong>:\n      <em class=\"summary\">DEPRECATED on 2024.06.15, use class <a \n        href=\"pygeodesy.units.Lamd-class.html\" class=\"link\">Lamd</a>.</em>\n    </li>\n    </ul>\n    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.angles.Lambertian-class.html\">pygeodesy.angles.Lambertian</a></strong>:\n      <em class=\"summary\">A <code>Lambertian</code> in <code>radians</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.units.Phi-class.html\">pygeodesy.units.Phi</a></strong>:\n      <em class=\"summary\">Named <code>float</code> representing a latitude in \n        <code>radians</code>.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.units.Phid-class.html\">pygeodesy.units.Phid</a></strong>:\n      <em class=\"summary\">Named <code>float</code> representing a latitude in \n        <code>radians</code> converted from <code>degrees</code>.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.deprecated.classes.Phi_-class.html\">pygeodesy.deprecated.classes.Phi_</a></strong>:\n      <em class=\"summary\">DEPRECATED on 2024.06.15, use class <a \n        href=\"pygeodesy.units.Phid-class.html\" class=\"link\">Phid</a>.</em>\n    </li>\n    </ul>\n    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.units.Radians_-class.html\">pygeodesy.units.Radians_</a></strong>:\n      <em class=\"summary\">Named <code>float</code> representing a coordinate in \n        <code>radians</code> with optional limits <code>low</code> and \n        <code>high</code>.</em>\n    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.unitsBase.Radius-class.html\">pygeodesy.unitsBase.Radius</a></strong>:\n      <em class=\"summary\">Named <code>float</code> representing a radius, conventionally in \n        <code>meter</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.units.Scalar-class.html\">pygeodesy.units.Scalar</a></strong>:\n      <em class=\"summary\">Named <code>float</code> representing a factor, fraction, scale, \n        etc.</em>\n    </li>\n    <li> <strong class=\"uidlink\">pygeodesy.units._EasNorBase</strong>:\n      <em class=\"summary\">(INTERNAL) <a href=\"pygeodesy.units.Easting-class.html\" \n        class=\"link\">Easting</a> and <a \n        href=\"pygeodesy.units.Northing-class.html\" \n        class=\"link\">Northing</a> base class.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.units.Easting-class.html\">pygeodesy.units.Easting</a></strong>:\n      <em class=\"summary\">Named <code>float</code> representing an easting, conventionally in\n        <code>meter</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.units.Northing-class.html\">pygeodesy.units.Northing</a></strong>:\n      <em class=\"summary\">Named <code>float</code> representing a northing, conventionally in\n        <code>meter</code>.</em>\n    </li>\n    </ul>\n    </li>\n    </ul>\n    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\">int</strong>:\n      <em class=\"summary\">int(x=0) -&gt; int or long int(x, base=10) -&gt; int or long</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.unitsBase.Int-class.html\">pygeodesy.unitsBase.Int</a></strong>:\n      <em class=\"summary\">Named <code>int</code>.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.units.Bool-class.html\">pygeodesy.units.Bool</a></strong>:\n      <em class=\"summary\">Named <code>bool</code>, a sub-class of <code>int</code> like \n        Python's <code>bool</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.epsg.Epsg-class.html\">pygeodesy.epsg.Epsg</a></strong>:\n      <em class=\"summary\"><a href=\"https://EPSG.org\" target=\"_top\">EPSG</a> class, a named \n        <code>int</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.units.Int_-class.html\">pygeodesy.units.Int_</a></strong>:\n      <em class=\"summary\">Named <code>int</code> with optional limits <code>low</code> and \n        <code>high</code>.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.units.Number_-class.html\">pygeodesy.units.Number_</a></strong>:\n      <em class=\"summary\">Named <code>int</code> representing a non-negative number.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.units.Precision_-class.html\">pygeodesy.units.Precision_</a></strong>:\n      <em class=\"summary\">Named <code>int</code> with optional <code>low</code> and \n        <code>high</code> limits representing a precision.</em>\n    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.units.Zone-class.html\">pygeodesy.units.Zone</a></strong>:\n      <em class=\"summary\">Named <code>int</code> representing a UTM/UPS zone number.</em>\n    </li>\n    </ul>\n    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\">property</strong>:\n      <em class=\"summary\">property(fget=None, fset=None, fdel=None, doc=None) -&gt; property attribute</em>\n    <ul>\n    <li> <strong class=\"uidlink\">pygeodesy.props._PropertyBase</strong>:\n      <em class=\"summary\">(INTERNAL) Base class for <code>P/property/_RO</code>.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.props.Property_RO-class.html\">pygeodesy.props.Property_RO</a></strong>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.props.Property-class.html\">pygeodesy.props.Property</a></strong>\n    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\">pygeodesy.props._property_RO___</strong>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.props.property_ROnce-class.html\">pygeodesy.props.property_ROnce</a></strong>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.props.property_ROver-class.html\">pygeodesy.props.property_ROver</a></strong>\n    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.props.property_RO-class.html\">pygeodesy.props.property_RO</a></strong>\n    <ul>\n    </ul>\n    </li>\n    </ul>\n    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\">tuple</strong>:\n      <em class=\"summary\">tuple() -&gt; empty tuple tuple(iterable) -&gt; tuple initialized \n        from iterable's items</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.named._NamedTuple-class.html\">pygeodesy.named._NamedTuple</a></strong>:\n      <em class=\"summary\">(INTERNAL) Base for named <code>tuple</code>s with both index \n        <i>and</i> attribute name access to the items.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.albers.Albers7Tuple-class.html\">pygeodesy.albers.Albers7Tuple</a></strong>:\n      <em class=\"summary\">7-Tuple <code>(x, y, lat, lon, gamma, scale, datum)</code>, in \n        <code>meter</code>, <code>meter</code>, <code>degrees90</code>, \n        <code>degrees180</code>, <code>degrees360</code>, \n        <code>scalar</code> and <code>Datum</code> where <code>(x, \n        y)</code> is the projected, <code>(lat, lon)</code> the geodetic \n        location, <code>gamma</code> the meridian convergence at point, the\n        bearing of the y-axis measured clockwise from true North and \n        <code>scale</code> is the azimuthal scale of the projection at \n        point.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.karney.Area3Tuple-class.html\">pygeodesy.karney.Area3Tuple</a></strong>:\n      <em class=\"summary\">3-Tuple <code>(number, perimeter, area)</code> with the \n        <code>number</code> of points of the polygon or polyline, the \n        <code>perimeter</code> in <code>meter</code> and the \n        <code>area</code> in <code>meter</code> <i>squared</i>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.ltpTuples.Attitude4Tuple-class.html\">pygeodesy.ltpTuples.Attitude4Tuple</a></strong>:\n      <em class=\"summary\">4-Tuple <code>(alt, tilt, yaw, roll)</code> with \n        <code>altitude</code> in (positive) <code>meter</code> and \n        <code>tilt</code>, <code>yaw</code> and <code>roll</code> in \n        <code>degrees</code> representing the attitude of a plane or \n        camera.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.azimuthal.Azimuthal7Tuple-class.html\">pygeodesy.azimuthal.Azimuthal7Tuple</a></strong>:\n      <em class=\"summary\">7-Tuple <code>(x, y, lat, lon, azimuth, scale, datum)</code>, in \n        <code>meter</code>, <code>meter</code>, <code>degrees90</code>, \n        <code>degrees180</code>, compass <code>degrees</code>, \n        <code>scalar</code> and <code>Datum</code> where <code>(x, \n        y)</code> is the easting and northing of a projected point, \n        <code>(lat, lon)</code> the geodetic location, <code>azimuth</code>\n        the azimuth, clockwise from true North and <code>scale</code> is \n        the projection scale, either <code>1 / reciprocal</code> or \n        <code>1</code> or <code>-1</code> in the <a \n        href=\"pygeodesy.azimuthal.Equidistant-class.html\" \n        class=\"link\">Equidistant</a> case.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.namedTuples.Bearing2Tuple-class.html\">pygeodesy.namedTuples.Bearing2Tuple</a></strong>:\n      <em class=\"summary\">2-Tuple <code>(initial, final)</code> bearings, both in compass \n        <code>degrees360</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.namedTuples.Bounds2Tuple-class.html\">pygeodesy.namedTuples.Bounds2Tuple</a></strong>:\n      <em class=\"summary\">2-Tuple <code>(latlonSW, latlonNE)</code> with the bounds' \n        lower-left and upper-right corner as <code>LatLon</code> instance.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.namedTuples.Bounds4Tuple-class.html\">pygeodesy.namedTuples.Bounds4Tuple</a></strong>:\n      <em class=\"summary\">4-Tuple <code>(latS, lonW, latN, lonE)</code> with the bounds' \n        lower-left <code>(LatS, LowW)</code> and upper-right <code>(latN, \n        lonE)</code> corner lat- and longitudes.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.ltpTuples.ChLVEN2Tuple-class.html\">pygeodesy.ltpTuples.ChLVEN2Tuple</a></strong>:\n      <em class=\"summary\">2-Tuple <code>(E_LV95, N_LV95)</code> with <b>falsed</b> <i>Swiss \n        LV95</i> easting and norting in <code>meter (2_600_000, \n        1_200_000)</code> and origin at <code>Bern, Ch</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.ltpTuples.ChLVYX2Tuple-class.html\">pygeodesy.ltpTuples.ChLVYX2Tuple</a></strong>:\n      <em class=\"summary\">2-Tuple <code>(Y, X)</code> with <b>unfalsed</b> <i>Swiss LV95</i> \n        easting and norting in <code>meter</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.ltpTuples.ChLVyx2Tuple-class.html\">pygeodesy.ltpTuples.ChLVyx2Tuple</a></strong>:\n      <em class=\"summary\">2-Tuple <code>(y_LV03, x_LV03)</code> with <b>falsed</b> <i>Swiss \n        LV03</i> easting and norting in <code>meter (600_000, \n        200_000)</code> and origin at <code>Bern, Ch</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.vector2d.Circin6Tuple-class.html\">pygeodesy.vector2d.Circin6Tuple</a></strong>:\n      <em class=\"summary\">6-Tuple <code>(radius, center, deltas, cA, cB, cC)</code> with the \n        <code>radius</code>, the trilaterated <code>center</code> and \n        contact points of the <i>inscribed</i> aka <i>In- circle</i> of a \n        triangle.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.namedTuples.Circle4Tuple-class.html\">pygeodesy.namedTuples.Circle4Tuple</a></strong>:\n      <em class=\"summary\">4-Tuple <code>(radius, height, lat, beta)</code> with the \n        <code>radius</code> and <code>height</code> of a parallel <i>circle\n        of latitude</i> at (geodetic) latitude <code>lat</code> and \n        <i>parametric (or reduced) auxiliary latitude</i> <code>beta</code>\n        on a <i>biaxial ellipsoid</i>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.vector2d.Circum3Tuple-class.html\">pygeodesy.vector2d.Circum3Tuple</a></strong>:\n      <em class=\"summary\">3-Tuple <code>(radius, center, deltas)</code> with the \n        <code>circumradius</code> and trilaterated \n        <code>circumcenter</code> of the <code>circumcircle</code> through \n        3 points (aka {Meeus}' Type II circle) or the <code>radius</code> \n        and <code>center</code> of the smallest <i>Meeus</i>' Type I \n        circle.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.vector2d.Circum4Tuple-class.html\">pygeodesy.vector2d.Circum4Tuple</a></strong>:\n      <em class=\"summary\">4-Tuple <code>(radius, center, rank, residuals)</code> with \n        <code>radius</code> and <code>center</code> of a sphere \n        <i>least-squares</i> fitted through given points and the \n        <code>rank</code> and <code>residuals</code> -if any- from <a \n        href=\"https://NumPy.org/doc/stable/reference/generated/numpy.linalg.lstsq.html\"\n        target=\"_top\">numpy.linalg.lstsq</a>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.clipy.ClipCS4Tuple-class.html\">pygeodesy.clipy.ClipCS4Tuple</a></strong>:\n      <em class=\"summary\">4-Tuple <code>(start, end, i, j)</code> for each edge of a \n        <i>clipped</i> path with the <code>start</code> and \n        <code>end</code> points (<code>LatLon</code>) of the portion of the\n        edge inside or on the clip box and the indices <code>i</code> and \n        <code>j</code> (<code>int</code>) of the edge start and end points \n        in the original path.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.clipy.ClipFHP4Tuple-class.html\">pygeodesy.clipy.ClipFHP4Tuple</a></strong>:\n      <em class=\"summary\">4-Tuple <code>(lat, lon, height, clipid)</code> for each point of \n        the <a href=\"pygeodesy.clipy-module.html#clipFHP4\" \n        class=\"link\">clipFHP4</a> result with the <code>lat</code>-, \n        <code>lon</code>gitude, <code>height</code> and <code>clipid</code>\n        of the polygon or clip.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.clipy.ClipGH4Tuple-class.html\">pygeodesy.clipy.ClipGH4Tuple</a></strong>:\n      <em class=\"summary\">4-Tuple <code>(lat, lon, height, clipid)</code> for each point of \n        the <a href=\"pygeodesy.clipy-module.html#clipGH4\" \n        class=\"link\">clipGH4</a> result with the <code>lat</code>-, \n        <code>lon</code>gitude, <code>height</code> and <code>clipid</code>\n        of the polygon or clip.</em>\n    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.clipy.ClipLB6Tuple-class.html\">pygeodesy.clipy.ClipLB6Tuple</a></strong>:\n      <em class=\"summary\">6-Tuple <code>(start, end, i, fi, fj, j)</code> for each edge of \n        the <i>clipped</i> path with the <code>start</code> and \n        <code>end</code> points (<code>LatLon</code>) of the portion of the\n        edge inside or on the clip box, indices <code>i</code> and \n        <code>j</code> (both <code>int</code>) of the original path edge \n        start and end points and <i>fractional</i> indices <code>fi</code> \n        and <code>fj</code> (both <a href=\"pygeodesy.units.FIx-class.html\" \n        class=\"link\">FIx</a>) of the <code>start</code> and \n        <code>end</code> points along the edge of the original path.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.clipy.ClipSH3Tuple-class.html\">pygeodesy.clipy.ClipSH3Tuple</a></strong>:\n      <em class=\"summary\">3-Tuple <code>(start, end, original)</code> for each edge of a \n        <i>clipped</i> polygon, the <code>start</code> and <code>end</code>\n        points (<code>LatLon</code>) of the portion of the edge inside or \n        on the clip region and <code>original</code> indicates whether the \n        edge is part of the original polygon or part of the clip region \n        (<code>bool</code>).</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.resections.Collins5Tuple-class.html\">pygeodesy.resections.Collins5Tuple</a></strong>:\n      <em class=\"summary\">5-Tuple <code>(pointP, pointH, a, b, c)</code> with survey \n        <code>pointP</code>, auxiliary <code>pointH</code>, each an \n        instance of <b><code>pointA</code></b>'s (sub-)class and triangle \n        sides <code>a</code>, <code>b</code> and <code>c</code> in \n        <code>meter</code>, conventionally.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.triaxials.bases.Conformal5Tuple-class.html\" onclick=\"show_private();\">pygeodesy.triaxials.bases.Conformal5Tuple</a></strong>:\n      <em class=\"summary\">5-Tuple <code>(x, y, z, scale, llk)</code> with the easting \n        <code>x</code> and northing <code>y</code> projection, \n        <code>scale</code> or <code>NAN</code> <i>but with</i> \n        <code>z=INT0</code> <i>and kind</i> <code>llk=LLK.CONFORMAL</code> \n        <i>always</i>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.ellipsoids.Curvature2Tuple-class.html\">pygeodesy.ellipsoids.Curvature2Tuple</a></strong>:\n      <em class=\"summary\">2-Tuple <code>(meridional, prime_vertical)</code> of radii of \n        curvature, both in <code>meter</code>, conventionally.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.namedTuples.Destination2Tuple-class.html\">pygeodesy.namedTuples.Destination2Tuple</a></strong>:\n      <em class=\"summary\">2-Tuple <code>(destination, final)</code>, <code>destination</code>\n        in <code>LatLon</code> and <code>final</code> bearing in compass \n        <code>degrees360</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.namedTuples.Destination3Tuple-class.html\">pygeodesy.namedTuples.Destination3Tuple</a></strong>:\n      <em class=\"summary\">3-Tuple <code>(lat, lon, final)</code>, destination \n        <code>lat</code>, <code>lon</code> in <code>degrees90</code> \n        respectively <code>degrees180</code> and <code>final</code> bearing\n        in compass <code>degrees360</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.namedTuples.Distance2Tuple-class.html\">pygeodesy.namedTuples.Distance2Tuple</a></strong>:\n      <em class=\"summary\">2-Tuple <code>(distance, initial)</code>, <code>distance</code> in \n        <code>meter</code> and <code>initial</code> bearing in compass \n        <code>degrees360</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.namedTuples.Distance3Tuple-class.html\">pygeodesy.namedTuples.Distance3Tuple</a></strong>:\n      <em class=\"summary\">3-Tuple <code>(distance, initial, final)</code>, \n        <code>distance</code> in <code>meter</code> and \n        <code>initial</code> and <code>final</code> bearing, both in \n        compass <code>degrees360</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.namedTuples.Distance4Tuple-class.html\">pygeodesy.namedTuples.Distance4Tuple</a></strong>:\n      <em class=\"summary\">4-Tuple <code>(distance2, delta_lat, delta_lon, unroll_lon2)</code>\n        with the distance in <code>degrees squared</code>, the latitudinal \n        <code>delta_lat = <b>lat2</b> - <b>lat1</b></code>, the wrapped, \n        unrolled and adjusted longitudinal <code>delta_lon = <b>lon2</b> - \n        <b>lon1</b></code> and <code>unroll_lon2</code>, the unrolled or \n        original <b><code>lon2</code></b>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.fsums.DivMod2Tuple-class.html\">pygeodesy.fsums.DivMod2Tuple</a></strong>:\n      <em class=\"summary\">2-Tuple <code>(div, mod)</code> with the quotient <code>div</code> \n        and remainder <code>mod</code> results of a <code>divmod</code> \n        operation.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.namedTuples.EasNor2Tuple-class.html\">pygeodesy.namedTuples.EasNor2Tuple</a></strong>:\n      <em class=\"summary\">2-Tuple <code>(easting, northing)</code>, both in \n        <code>meter</code>, conventionally.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.namedTuples.EasNor3Tuple-class.html\">pygeodesy.namedTuples.EasNor3Tuple</a></strong>:\n      <em class=\"summary\">3-Tuple <code>(easting, northing, height)</code>, all in \n        <code>meter</code>, conventionally.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.css.EasNorAziRk4Tuple-class.html\">pygeodesy.css.EasNorAziRk4Tuple</a></strong>:\n      <em class=\"summary\">4-Tuple <code>(easting, northing, azimuth, reciprocal)</code> for \n        the Cassini-Soldner location with <code>easting</code> and \n        <code>northing</code> in <code>meters</code> and the \n        <code>azimuth</code> of easting direction and \n        <code>reciprocal</code> of azimuthal northing scale, both in \n        <code>degrees</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.css.EasNorAziRkEqu6Tuple-class.html\">pygeodesy.css.EasNorAziRkEqu6Tuple</a></strong>:\n      <em class=\"summary\">6-Tuple <code>(easting, northing, azimuth, reciprocal, equatorarc, \n        equatorazimuth)</code> for the Cassini-Soldner location with \n        <code>easting</code> and <code>northing</code> in \n        <code>meters</code> and the <code>azimuth</code> of easting \n        direction, <code>reciprocal</code> of azimuthal northing scale, \n        <code>equatorarc</code> and <code>equatorazimuth</code>, all in \n        <code>degrees</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.webmercator.EasNorRadius3Tuple-class.html\">pygeodesy.webmercator.EasNorRadius3Tuple</a></strong>:\n      <em class=\"summary\">3-Tuple <code>(easting, northing, radius)</code>, all in \n        <code>meter</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.ecef.Ecef9Tuple-class.html\">pygeodesy.ecef.Ecef9Tuple</a></strong>:\n      <em class=\"summary\">9-Tuple <code>(x, y, z, lat, lon, height, C, M, datum)</code> with \n        <i>geocentric</i> <code>x</code>, <code>y</code> and <code>z</code>\n        plus <i>geodetic</i> <code>lat</code>, <code>lon</code> and \n        <code>height</code>, case <code>C</code> and optionally, rotation \n        matrix <code>M</code> (<a \n        href=\"pygeodesy.ecef.EcefMatrix-class.html\" \n        class=\"link\">EcefMatrix</a>) and <code>datum</code>, with \n        <code>lat</code> and <code>lon</code> in <code>degrees</code> and \n        <code>x</code>, <code>y</code>, <code>z</code> and \n        <code>height</code> in <code>meter</code>, conventionally.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.ecef.EcefMatrix-class.html\">pygeodesy.ecef.EcefMatrix</a></strong>:\n      <em class=\"summary\">A rotation matrix known as <i>East-North-Up (ENU) to ECEF</i>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.elevations.Elevation2Tuple-class.html\">pygeodesy.elevations.Elevation2Tuple</a></strong>:\n      <em class=\"summary\">2-Tuple <code>(elevation, data_source)</code> in <code>meter</code>\n        and <code>str</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.namedTuples.Ellipse5Tuple-class.html\">pygeodesy.namedTuples.Ellipse5Tuple</a></strong>:\n      <em class=\"summary\">5-Tuple <code>(a, b, height, lat, beta)</code> with semi-axes \n        <code>a</code> and <code>b</code> of a parallel <i>ellipse of \n        latitude</i> at (geodetic) latitude <code>lat</code> and \n        <i>parametric (or reduced) auxiliary latitude</i> <code>beta</code>\n        of a <i>triaxial ellipsoid</i>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.elliptic.Elliptic3Tuple-class.html\">pygeodesy.elliptic.Elliptic3Tuple</a></strong>:\n      <em class=\"summary\">3-Tuple <code>(sn, cn, dn)</code> all <code>scalar</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.ltpTuples.Footprint5Tuple-class.html\">pygeodesy.ltpTuples.Footprint5Tuple</a></strong>:\n      <em class=\"summary\">5-Tuple <code>(center, upperleft, upperight, loweright, \n        lowerleft)</code> with the <code>center</code> and 4 corners of the\n        <i>local</i> projection of a <code>Frustum</code>, each an <a \n        href=\"pygeodesy.ltpTuples.Xyz4Tuple-class.html\" \n        class=\"link\">Xyz4Tuple</a>, <a \n        href=\"pygeodesy.ltpTuples.XyzLocal-class.html\" \n        class=\"link\">XyzLocal</a>, <code>LatLon</code>, etc.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.namedTuples.Forward4Tuple-class.html\">pygeodesy.namedTuples.Forward4Tuple</a></strong>:\n      <em class=\"summary\">4-Tuple <code>(easting, northing, gamma, scale)</code> in \n        <code>meter</code>, <code>meter</code>, meridian convergence \n        <code>gamma</code> at point in <code>degrees</code> and the \n        <code>scale</code> of projection at point <code>scalar</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.frechet.Frechet6Tuple-class.html\">pygeodesy.frechet.Frechet6Tuple</a></strong>:\n      <em class=\"summary\">6-Tuple <code>(fd, fi1, fi2, r, n, units)</code> with the \n        <i>discrete</i> <a \n        href=\"https://WikiPedia.org/wiki/Frechet_distance\" \n        target=\"_top\">Fr&#233;chet</a> distance <code>fd</code>, \n        <i>fractional</i> indices <code>fi1</code> and <code>fi2</code> as \n        <code>FIx</code>, the recursion depth <code>r</code>, the number of\n        distances computed <code>n</code> and the <a \n        href=\"pygeodesy.named._NamedTuple-class.html#units\" \n        class=\"link\">units</a> class or name of the distance \n        <code>units</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\">pygeodesy.fsums.Fsum2Tuple</a></strong>:\n      <em class=\"summary\">2-Tuple <code>(fsum, residual)</code> with the precision running \n        <code>fsum</code> and the <code>residual</code>, the sum of the \n        remaining partials.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.elevations.GeoidHeight2Tuple-class.html\">pygeodesy.elevations.GeoidHeight2Tuple</a></strong>:\n      <em class=\"summary\">2-Tuple <code>(height, model_name)</code>, geoid \n        <code>height</code> in <code>meter</code> and \n        <code>model_name</code> as <code>str</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.geoids.GeoidHeight5Tuple-class.html\">pygeodesy.geoids.GeoidHeight5Tuple</a></strong>:\n      <em class=\"summary\">5-Tuple <code>(lat, lon, egm84, egm96, egm2008)</code> for <a \n        href=\"https://SourceForge.net/projects/geographiclib/files/testdata/\"\n        target=\"_top\">GeoidHeights.dat</a> tests with the heights for 3 \n        different EGM grids at <code>degrees90</code> and \n        <code>degrees180</code> degrees (after converting <code>lon</code> \n        from original <code>0 &lt;= EasterLon &lt;= 360</code>).</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.hausdorff.Hausdorff6Tuple-class.html\">pygeodesy.hausdorff.Hausdorff6Tuple</a></strong>:\n      <em class=\"summary\">6-Tuple <code>(hd, i, j, mn, md, units)</code> with the <a \n        href=\"https://WikiPedia.org/wiki/Hausdorff_distance\" \n        target=\"_top\">Hausdorff</a> distance <code>hd</code>, indices \n        <code>i</code> and <code>j</code>, the total count <code>mn</code>,\n        the <code><i>mean</i> Hausdorff</code> distance <code>md</code> and\n        the class or name of both distance <code>units</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.geodesici.Intersect7Tuple-class.html\">pygeodesy.geodesici.Intersect7Tuple</a></strong>:\n      <em class=\"summary\">7-Tuple <code>(A, B, sAB, aAB, c, kA, kB)</code> with \n        <code>A</code> and <code>B</code> each a <code>LatLon</code> or <a \n        href=\"pygeodesy.namedTuples.LatLon4Tuple-class.html\" \n        class=\"link\">LatLon4Tuple</a><code>(lat, lon, height, datum)</code>\n        of the intersection on each geodesic line, the distance \n        <code>sAB</code> in in <code>meter</code> and angular distance \n        <code>aAB</code> in <code>degrees</code> between <code>A</code> and\n        <code>B</code>, coincidence indicator <code>c</code> and segment \n        indicators <code>kA</code> and <code>kB</code> all \n        <code>int</code>, see <a \n        href=\"pygeodesy.geodesici.XDict-class.html\" class=\"link\">XDict</a> \n        and method <a href=\"https://_IntersectBase.intersect7\" \n        target=\"_top\">intersect7</a>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.namedTuples.Intersection3Tuple-class.html\">pygeodesy.namedTuples.Intersection3Tuple</a></strong>:\n      <em class=\"summary\">3-Tuple <code>(point, outside1, outside2)</code> of an intersection\n        <code>point</code> and <code>outside1</code>, the position of the \n        <code>point</code>, <code>-1</code> if before the start, \n        <code>+1</code> if after the end and <code>0</code> if on or \n        between the start and end point of the first line.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.geodesici.Intersectool5Tuple-class.html\">pygeodesy.geodesici.Intersectool5Tuple</a></strong>:\n      <em class=\"summary\">5-Tuple <code>(A, B, sAB, aAB, c)</code> with <code>A</code> and \n        <code>B</code> the <code>Position</code> of the intersection on \n        each geodesic line, the distance <code>sAB</code> between \n        <code>A</code> and <code>B</code> in <code>meter</code>, the \n        angular distance <code>aAB</code> in <code>degrees</code> and \n        coincidence indicator <code>c</code> (<code>int</code>), see <a \n        href=\"pygeodesy.geodesici.XDict-class.html\" class=\"link\">XDict</a>.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.geodesici.Intersector5Tuple-class.html\">pygeodesy.geodesici.Intersector5Tuple</a></strong>:\n      <em class=\"summary\">5-Tuple <code>(A, B, sAB, aAB, c)</code> with <code>A</code> and \n        <code>B</code> the <code>Position</code> of the intersection on \n        each geodesic line, the distance <code>sAB</code> between \n        <code>A</code> and <code>B</code> in <code>meter</code>, angular \n        distance <code>aAB</code> in <code>degrees</code> and coincidence \n        indicator <code>c</code> (<code>int</code>), see <a \n        href=\"pygeodesy.geodesici.XDict-class.html\" class=\"link\">XDict</a>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.geodesici.Middle5Tuple-class.html\">pygeodesy.geodesici.Middle5Tuple</a></strong>:\n      <em class=\"summary\">5-Tuple <code>(A, B, sMM, aMM, c)</code> with <code>A</code> and \n        <code>B</code> the <i>line segments</i> including the mid-point \n        location in <code>latM</code>, <code>lonM</code>, distance \n        <code>s1M</code> in <code>meter</code> and angular distance \n        <code>a1M</code> in <code>degrees</code>, the distance between both\n        mid-points <code>sMM</code> in <code>meter</code> and angular \n        distance <code>aMM</code> in <code>degrees</code> and coincidence \n        indicator <code>c</code> (<code>int</code>).</em>\n    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.namedTuples.LatLon2Tuple-class.html\">pygeodesy.namedTuples.LatLon2Tuple</a></strong>:\n      <em class=\"summary\">2-Tuple <code>(lat, lon)</code> in <code>degrees90</code> and \n        <code>degrees180</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.namedTuples.LatLon3Tuple-class.html\">pygeodesy.namedTuples.LatLon3Tuple</a></strong>:\n      <em class=\"summary\">3-Tuple <code>(lat, lon, height)</code> in <code>degrees90</code>, \n        <code>degrees180</code> and <code>meter</code>, conventionally.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.namedTuples.LatLon4Tuple-class.html\">pygeodesy.namedTuples.LatLon4Tuple</a></strong>:\n      <em class=\"summary\">4-Tuple <code>(lat, lon, height, datum)</code> in \n        <code>degrees90</code>, <code>degrees180</code>, <code>meter</code>\n        and <a href=\"pygeodesy.datums.Datum-class.html\" \n        class=\"link\">Datum</a>.</em>\n    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.css.LatLonAziRk4Tuple-class.html\">pygeodesy.css.LatLonAziRk4Tuple</a></strong>:\n      <em class=\"summary\">4-Tuple <code>(lat, lon, azimuth, reciprocal)</code>, all in \n        <code>degrees</code> where <code>azimuth</code> is the azimuth of \n        easting direction and <code>reciprocal</code> the reciprocal of \n        azimuthal northing scale.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.namedTuples.LatLonDatum3Tuple-class.html\">pygeodesy.namedTuples.LatLonDatum3Tuple</a></strong>:\n      <em class=\"summary\">3-Tuple <code>(lat, lon, datum)</code> in <code>degrees90</code>, \n        <code>degrees180</code> and <a \n        href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.namedTuples.LatLonDatum5Tuple-class.html\">pygeodesy.namedTuples.LatLonDatum5Tuple</a></strong>:\n      <em class=\"summary\">5-Tuple <code>(lat, lon, datum, gamma, scale)</code> in \n        <code>degrees90</code>, <code>degrees180</code>, <a \n        href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>, \n        <code>degrees</code> and <code>float</code>.</em>\n    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.namedTuples.LatLonPrec3Tuple-class.html\">pygeodesy.namedTuples.LatLonPrec3Tuple</a></strong>:\n      <em class=\"summary\">3-Tuple <code>(lat, lon, precision)</code> in <code>degrees</code>,\n        <code>degrees</code> and <code>int</code>.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.namedTuples.LatLonPrec5Tuple-class.html\">pygeodesy.namedTuples.LatLonPrec5Tuple</a></strong>:\n      <em class=\"summary\">5-Tuple <code>(lat, lon, precision, height, radius)</code> in \n        <code>degrees</code>, <code>degrees</code>, <code>int</code> and \n        <code>height</code> or <code>radius</code> in <code>meter</code> \n        (or <code>None</code> if missing).</em>\n    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.ltpTuples.Local9Tuple-class.html\">pygeodesy.ltpTuples.Local9Tuple</a></strong>:\n      <em class=\"summary\">9-Tuple <code>(x, y, z, lat, lon, height, ltp, ecef, M)</code> with\n        <i>local</i> <code>x</code>, <code>y</code>, <code>z</code> all in \n        <code>meter</code>, <i>geodetic</i> <code>lat</code>, \n        <code>lon</code>, <code>height</code>, <i>local tangent plane</i> \n        <code>ltp</code> (<a href=\"pygeodesy.ltp.Ltp-class.html\" \n        class=\"link\">Ltp</a>), <code>ecef</code> (<a \n        href=\"pygeodesy.ecef.Ecef9Tuple-class.html\" \n        class=\"link\">Ecef9Tuple</a>) with <i>geocentric</i> <code>x</code>,\n        <code>y</code>, <code>z</code>, <i>geodetic</i> <code>lat</code>, \n        <code>lon</code>, <code>height</code> and <i>concatenated</i> \n        rotation matrix <code>M</code> (<a \n        href=\"pygeodesy.ecef.EcefMatrix-class.html\" \n        class=\"link\">EcefMatrix</a>) or <code>None</code>.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.ltpTuples.ChLV9Tuple-class.html\">pygeodesy.ltpTuples.ChLV9Tuple</a></strong>:\n      <em class=\"summary\">9-Tuple <code>(Y, X, h_, lat, lon, height, ltp, ecef, M)</code> \n        with <i><b>unfalsed</b> Swiss (Y, X, h_)</i> coordinates and \n        height, all in <code>meter</code>, <code>ltp</code> either a <a \n        href=\"pygeodesy.ltp.ChLV-class.html\" class=\"link\">ChLV</a>, <a \n        href=\"pygeodesy.ltp.ChLVa-class.html\" class=\"link\">ChLVa</a> or <a \n        href=\"pygeodesy.ltp.ChLVe-class.html\" class=\"link\">ChLVe</a> \n        instance and <code>ecef</code> (<a \n        href=\"pygeodesy.ecef.EcefKarney-class.html\" \n        class=\"link\">EcefKarney</a> <i>at Bern, Ch</i>), otherwise like <a \n        href=\"pygeodesy.ltpTuples.Local9Tuple-class.html\" \n        class=\"link\">Local9Tuple</a>.</em>\n    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.vector2d.Meeus2Tuple-class.html\">pygeodesy.vector2d.Meeus2Tuple</a></strong>:\n      <em class=\"summary\">2-Tuple <code>(radius, Type)</code> with <code>radius</code> and \n        <i>Meeus</i>' <code>Type</code> of the smallest circle \n        <i>containing</i> 3 points.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.mgrs.Mgrs4Tuple-class.html\">pygeodesy.mgrs.Mgrs4Tuple</a></strong>:\n      <em class=\"summary\">4-Tuple <code>(zone, EN, easting, northing)</code>, \n        <code>zone</code> and grid tile <code>EN</code> as \n        <code>str</code>, <code>easting</code> and <code>northing</code> in\n        <code>meter</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.mgrs.Mgrs6Tuple-class.html\">pygeodesy.mgrs.Mgrs6Tuple</a></strong>:\n      <em class=\"summary\">6-Tuple <code>(zone, EN, easting, northing, band, datum)</code>, \n        with <code>zone</code>, grid tile <code>EN</code> and \n        <code>band</code> as <code>str</code>, <code>easting</code> and \n        <code>northing</code> in <code>meter</code> and <code>datum</code> \n        a <a href=\"pygeodesy.datums.Datum-class.html\" \n        class=\"link\">Datum</a>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.namedTuples.NearestOn2Tuple-class.html\">pygeodesy.namedTuples.NearestOn2Tuple</a></strong>:\n      <em class=\"summary\">2-Tuple <code>(closest, fraction)</code> of the \n        <code>closest</code> point on and <code>fraction</code> along a \n        line (segment) between two points.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.namedTuples.NearestOn3Tuple-class.html\">pygeodesy.namedTuples.NearestOn3Tuple</a></strong>:\n      <em class=\"summary\">3-Tuple <code>(closest, distance, angle)</code> of the \n        <code>closest</code> point on the polygon, either a \n        <code>LatLon</code> instance or a <a \n        href=\"pygeodesy.namedTuples.LatLon3Tuple-class.html\" \n        class=\"link\">LatLon3Tuple</a><code>(lat, lon, height)</code> and \n        the <code>distance</code> and <code>angle</code> to the \n        <code>closest</code> point are in <code>meter</code> respectively \n        compass <code>degrees360</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.namedTuples.NearestOn6Tuple-class.html\">pygeodesy.namedTuples.NearestOn6Tuple</a></strong>:\n      <em class=\"summary\">6-Tuple <code>(closest, distance, fi, j, start, end)</code> with \n        the <code>closest</code> point, the <code>distance</code> in \n        <code>meter</code>, conventionally and the <code>start</code> and \n        <code>end</code> point of the path or polygon edge.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.namedTuples.NearestOn8Tuple-class.html\">pygeodesy.namedTuples.NearestOn8Tuple</a></strong>:\n      <em class=\"summary\">8-Tuple <code>(closest, distance, fi, j, start, end, initial, \n        final)</code>, like <a \n        href=\"pygeodesy.namedTuples.NearestOn6Tuple-class.html\" \n        class=\"link\">NearestOn6Tuple</a> but extended with the \n        <code>initial</code> and the <code>final</code> bearing at the \n        reference respectively the <code>closest</code> point, both in \n        compass <code>degrees</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.namedTuples.PhiLam2Tuple-class.html\">pygeodesy.namedTuples.PhiLam2Tuple</a></strong>:\n      <em class=\"summary\">2-Tuple <code>(phi, lam)</code> with latitude <code>phi</code> in \n        <code>radians[PI_2]</code> and longitude <code>lam</code> in \n        <code>radians[PI]</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.namedTuples.PhiLam3Tuple-class.html\">pygeodesy.namedTuples.PhiLam3Tuple</a></strong>:\n      <em class=\"summary\">3-Tuple <code>(phi, lam, height)</code> with latitude \n        <code>phi</code> in <code>radians[PI_2]</code>, longitude \n        <code>lam</code> in <code>radians[PI]</code> and \n        <code>height</code> in <code>meter</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.namedTuples.PhiLam4Tuple-class.html\">pygeodesy.namedTuples.PhiLam4Tuple</a></strong>:\n      <em class=\"summary\">4-Tuple <code>(phi, lam, height, datum)</code> with latitude \n        <code>phi</code> in <code>radians[PI_2]</code>, longitude \n        <code>lam</code> in <code>radians[PI]</code>, <code>height</code> \n        in <code>meter</code> and <a \n        href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.namedTuples.Point3Tuple-class.html\">pygeodesy.namedTuples.Point3Tuple</a></strong>:\n      <em class=\"summary\">3-Tuple <code>(x, y, ll)</code> in <code>meter</code>, \n        <code>meter</code> and <code>LatLon</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.namedTuples.Points2Tuple-class.html\">pygeodesy.namedTuples.Points2Tuple</a></strong>:\n      <em class=\"summary\">2-Tuple <code>(number, points)</code> with the <code>number</code> \n        of points and -possible reduced- <code>list</code> or \n        <code>tuple</code> of <code>points</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.formy.Radical2Tuple-class.html\">pygeodesy.formy.Radical2Tuple</a></strong>:\n      <em class=\"summary\">2-Tuple <code>(ratio, xline)</code> of the <i>radical</i> \n        <code>ratio</code> and <i>radical</i> <code>xline</code>, both \n        <code>scalar</code> and <code>0.0 &lt;= ratio &lt;= 1.0</code></em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.vector2d.Radii11Tuple-class.html\">pygeodesy.vector2d.Radii11Tuple</a></strong>:\n      <em class=\"summary\">11-Tuple <code>(rA, rB, rC, cR, rIn, riS, roS, a, b, c, s)</code> \n        with the <code>Tangent</code> circle radii <code>rA</code>, \n        <code>rB</code> and <code>rC</code>, the <code>circumradius</code> \n        <code>cR</code>, the <code>Incircle</code> radius <code>rIn</code> \n        aka <code>inradius</code>, the inner and outer <i>Soddy</i> circle \n        radii <code>riS</code> and <code>roS</code>, the sides \n        <code>a</code>, <code>b</code> and <code>c</code> and \n        semi-perimeter <code>s</code> of a triangle, all in \n        <code>meter</code> conventionally.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.geohash.Resolutions2Tuple-class.html\">pygeodesy.geohash.Resolutions2Tuple</a></strong>:\n      <em class=\"summary\">2-Tuple <code>(res1, res2)</code> with the primary \n        <i>(longitudinal)</i> and secondary <i>(latitudinal)</i> \n        resolution, both in <code>degrees</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.namedTuples.Reverse4Tuple-class.html\">pygeodesy.namedTuples.Reverse4Tuple</a></strong>:\n      <em class=\"summary\">4-Tuple <code>(lat, lon, gamma, scale)</code> with \n        <code>lat</code>- and <code>lon</code>gitude in \n        <code>degrees</code>, meridian convergence <code>gamma</code> at \n        point in <code>degrees</code> and the <code>scale</code> of \n        projection at point <code>scalar</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.points.Shape2Tuple-class.html\">pygeodesy.points.Shape2Tuple</a></strong>:\n      <em class=\"summary\">2-Tuple <code>(nrows, ncols)</code>, the number of rows and \n        columns, both <code>int</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.geohash.Sizes3Tuple-class.html\">pygeodesy.geohash.Sizes3Tuple</a></strong>:\n      <em class=\"summary\">3-Tuple <code>(height, width, radius)</code> with latitudinal \n        <code>height</code>, longitudinal <code>width</code> and area \n        <code>radius</code>, all in <code>meter</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.vector2d.Soddy4Tuple-class.html\">pygeodesy.vector2d.Soddy4Tuple</a></strong>:\n      <em class=\"summary\">4-Tuple <code>(radius, center, deltas, outer)</code> with \n        <code>radius</code> and (trilaterated) <code>center</code> of the \n        <i>inner</i> <i>Soddy</i> circle and the radius of the \n        <code>outer</code> <i>Soddy</i> circle.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.resections.Survey3Tuple-class.html\">pygeodesy.resections.Survey3Tuple</a></strong>:\n      <em class=\"summary\">3-Tuple <code>(PA, PB, PC)</code> with distance from survey point \n        <code>P</code> to each of the triangle corners <code>A</code>, \n        <code>B</code> and <code>C</code> in <code>meter</code>, \n        conventionally.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.trf.TRFXform7Tuple-class.html\">pygeodesy.trf.TRFXform7Tuple</a></strong>:\n      <em class=\"summary\">7-Tuple <code>(tx, ty, tz, s, sx, sy, sz)</code> of conversion \n        parameters with translations <code>tx</code>, <code>ty</code> and \n        <code>tz</code> in <code>milli-meter</code>, scale <code>s</code> \n        in <code>ppB</code> and rotations <code>sx</code>, <code>sy</code> \n        and <code>sz</code> in <code>milli-arc-seconds</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.resections.Tienstra7Tuple-class.html\">pygeodesy.resections.Tienstra7Tuple</a></strong>:\n      <em class=\"summary\">7-Tuple <code>(pointP, A, B, C, a, b, c)</code> with survey \n        <code>pointP</code>, interior triangle angles <code>A</code>, \n        <code>B</code> and <code>C</code> in <code>degrees</code> and \n        triangle sides <code>a</code>, <code>b</code> and <code>c</code> in\n        <code>meter</code>, conventionally.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.resections.TriAngle5Tuple-class.html\">pygeodesy.resections.TriAngle5Tuple</a></strong>:\n      <em class=\"summary\">5-Tuple <code>(radA, radB, radC, rIn, area)</code> with the \n        interior angles at triangle corners <code>A</code>, <code>B</code> \n        and <code>C</code> in <code>radians</code>, the \n        <code>InCircle</code> radius <code>rIn</code> aka \n        <code>inradius</code> in <code>meter</code> and the triangle \n        <code>area</code> in <code>meter</code> <i>squared</i>, \n        conventionally.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.resections.TriSide2Tuple-class.html\">pygeodesy.resections.TriSide2Tuple</a></strong>:\n      <em class=\"summary\">2-Tuple <code>(a, radA)</code> with triangle side <code>a</code> in\n        <code>meter</code>, conventionally and angle <code>radA</code> at \n        the opposite triangle corner in <code>radians</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.resections.TriSide4Tuple-class.html\">pygeodesy.resections.TriSide4Tuple</a></strong>:\n      <em class=\"summary\">4-Tuple <code>(a, b, radC, d)</code> with interior angle \n        <code>radC</code> at triangle corner <code>C</code> in \n        <code>radians</code>with the length of triangle sides \n        <code>a</code> and <code>b</code> and with triangle height \n        <code>d</code> perpendicular to triangle side <code>c</code>, in \n        the same units as triangle sides <code>a</code> and <code>b</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.namedTuples.Triangle7Tuple-class.html\">pygeodesy.namedTuples.Triangle7Tuple</a></strong>:\n      <em class=\"summary\">7-Tuple <code>(A, a, B, b, C, c, area)</code> with interior angles \n        <code>A</code>, <code>B</code> and <code>C</code> in \n        <code>degrees</code>, spherical sides <code>a</code>, \n        <code>b</code> and <code>c</code> in <code>meter</code> \n        conventionally and the <code>area</code> of a (spherical) triangle \n        in <i>square</i> <code>meter</code> conventionally.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.namedTuples.Triangle8Tuple-class.html\">pygeodesy.namedTuples.Triangle8Tuple</a></strong>:\n      <em class=\"summary\">8-Tuple <code>(A, a, B, b, C, c, D, E)</code> with interior angles \n        <code>A</code>, <code>B</code> and <code>C</code>, spherical sides \n        <code>a</code>, <code>b</code> and <code>c</code>, the <i>spherical\n        deficit</i> <code>D</code> and the <i>spherical excess</i> \n        <code>E</code> of a (spherical) triangle, all in \n        <code>radians</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.vector2d.Triaxum5Tuple-class.html\">pygeodesy.vector2d.Triaxum5Tuple</a></strong>:\n      <em class=\"summary\">5-Tuple <code>(a, b, c, rank, residuals)</code> with the \n        (unordered) triaxial radii <code>a</code>, <code>b</code> and \n        <code>c</code> of an ellipsoid <i>least-squares</i> fitted through \n        given points and the <code>rank</code> and <code>residuals</code> \n        -if any- from <a \n        href=\"https://NumPy.org/doc/stable/reference/generated/numpy.linalg.lstsq.html\"\n        target=\"_top\">numpy.linalg.lstsq</a>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.namedTuples.Trilaterate5Tuple-class.html\">pygeodesy.namedTuples.Trilaterate5Tuple</a></strong>:\n      <em class=\"summary\">5-Tuple <code>(min, minPoint, max, maxPoint, n)</code> with \n        <code>min</code> and <code>max</code> in <code>meter</code>, the \n        corresponding trilaterated <code>minPoint</code> and \n        <code>maxPoint</code> as <code>LatLon</code> and the number \n        <code>n</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.namedTuples.UtmUps2Tuple-class.html\">pygeodesy.namedTuples.UtmUps2Tuple</a></strong>:\n      <em class=\"summary\">2-Tuple <code>(zone, hemipole)</code> as <code>int</code> and \n        <code>str</code>, where <code>zone</code> is <code>1..60</code> for\n        UTM or <code>0</code> for UPS and <code>hemipole</code> \n        <code>'N'|'S'</code> is the UTM hemisphere or the UPS pole.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.namedTuples.UtmUps5Tuple-class.html\">pygeodesy.namedTuples.UtmUps5Tuple</a></strong>:\n      <em class=\"summary\">5-Tuple <code>(zone, hemipole, easting, northing, band)</code> as \n        <code>int</code>, <code>str</code>, <code>meter</code>, \n        <code>meter</code> and <code>band</code> letter, where \n        <code>zone</code> is <code>1..60</code> for UTM or <code>0</code> \n        for UPS, <code>hemipole</code> <code>'N'|'S'</code> is the UTM \n        hemisphere or the UPS pole and <code>band</code> is \n        <code>&quot;&quot;</code> or the <i>longitudinal</i> UTM band \n        <code>'C'|'D'|..|'W'|'X'</code> or <i>polar</i> UPS band \n        <code>'A'|'B'|'Y'|'Z'</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.namedTuples.UtmUps8Tuple-class.html\">pygeodesy.namedTuples.UtmUps8Tuple</a></strong>:\n      <em class=\"summary\">8-Tuple <code>(zone, hemipole, easting, northing, band, datum, \n        gamma, scale)</code> as <code>int</code>, <code>str</code>, \n        <code>meter</code>, <code>meter</code>, <code>band</code> letter, \n        <code>Datum</code>, <code>degrees</code> and <code>scalar</code>, \n        where <code>zone</code> is <code>1..60</code> for UTM or \n        <code>0</code> for UPS, <code>hemipole</code> <code>'N'|'S'</code> \n        is the UTM hemisphere or the UPS pole and <code>band</code> is \n        <code>&quot;&quot;</code> or the <i>longitudinal</i> UTM band \n        <code>'C'|'D'|..|'W'|'X'</code> or <i>polar</i> UPS band \n        <code>'A'|'B'|'Y'|'Z'</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.namedTuples.UtmUpsLatLon5Tuple-class.html\">pygeodesy.namedTuples.UtmUpsLatLon5Tuple</a></strong>:\n      <em class=\"summary\">5-Tuple <code>(zone, band, hemipole, lat, lon)</code> as \n        <code>int</code>, <code>str</code>, <code>str</code>, \n        <code>degrees90</code> and <code>degrees180</code>, where \n        <code>zone</code> is <code>1..60</code> for UTM or <code>0</code> \n        for UPS, <code>band</code> is <code>&quot;&quot;</code> or the \n        <i>longitudinal</i> UTM band <code>'C'|'D'|..|'W'|'X'</code> or \n        <i>polar</i> UPS band <code>'A'|'B'|'Y'|'Z'</code> and \n        <code>hemipole</code> <code>'N'|'S'</code> is the UTM hemisphere or\n        the UPS pole.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.ltpTuples.Uvw3Tuple-class.html\">pygeodesy.ltpTuples.Uvw3Tuple</a></strong>:\n      <em class=\"summary\">3-Tuple <code>(u, v, w)</code>, in <code>meter</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.namedTuples.Vector2Tuple-class.html\">pygeodesy.namedTuples.Vector2Tuple</a></strong>:\n      <em class=\"summary\">2-Tuple <code>(x, y)</code> of (geocentric) components, each in \n        <code>meter</code> or the same <code>units</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.namedTuples.Vector3Tuple-class.html\">pygeodesy.namedTuples.Vector3Tuple</a></strong>:\n      <em class=\"summary\">3-Tuple <code>(x, y, z)</code> of (geocentric) components, all in \n        <code>meter</code> or the same <code>units</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.namedTuples.Vector4Tuple-class.html\">pygeodesy.namedTuples.Vector4Tuple</a></strong>:\n      <em class=\"summary\">4-Tuple <code>(x, y, z, h)</code> of (geocentric) components, all \n        in <code>meter</code> or the same <code>units</code>.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.triaxials.triaxial3.Cartesian5Tuple-class.html\">pygeodesy.triaxials.triaxial3.Cartesian5Tuple</a></strong>:\n      <em class=\"summary\">5-Tuple <code>(x, y, z, h, llk)</code> with <i>cartesian</i> \n        <code>x</code>, <code>y</code> and <code>z</code> coordinates on \n        and height <code>h</code> above or below the triaxial's surface and\n        kind <code>llk</code> set to the original <code>LLK</code> or \n        <code>None</code>.</em>\n    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\">pygeodesy.ltpTuples._Abc4Tuple</strong>:\n      <em class=\"summary\">(INTERNAL) Base class for <code>Aer4Tuple</code>, \n        <code>Enu4Tuple</code>, <code>Ned4Tuple</code> and \n        <code>Xyz4Tuple</code>.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.ltpTuples.Aer4Tuple-class.html\">pygeodesy.ltpTuples.Aer4Tuple</a></strong>:\n      <em class=\"summary\">4-Tuple <code>(azimuth, elevation, slantrange, ltp)</code>, all in \n        <code>meter</code> except <code>ltp</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.ltpTuples.Enu4Tuple-class.html\">pygeodesy.ltpTuples.Enu4Tuple</a></strong>:\n      <em class=\"summary\">4-Tuple <code>(east, north, up, ltp)</code>, in <code>meter</code> \n        except <code>ltp</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.ltpTuples.Ned4Tuple-class.html\">pygeodesy.ltpTuples.Ned4Tuple</a></strong>:\n      <em class=\"summary\">4-Tuple <code>(north, east, down, ltp)</code>, all in \n        <code>meter</code> except <code>ltp</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.ltpTuples.Xyz4Tuple-class.html\">pygeodesy.ltpTuples.Xyz4Tuple</a></strong>:\n      <em class=\"summary\">4-Tuple <code>(x, y, z, ltp)</code>, all in <code>meter</code> \n        except <code>ltp</code>.</em>\n    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\">pygeodesy.angles._Ang3Tuple</strong>:\n      <em class=\"summary\">(INTERNAL) Methods <code>.toDegrees</code>, \n        <code>.toLambertian</code>, <code>.toRadians</code> and \n        <code>.toUnit</code>.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.triaxials.triaxial3.BetOmgAlp5Tuple-class.html\">pygeodesy.triaxials.triaxial3.BetOmgAlp5Tuple</a></strong>:\n      <em class=\"summary\">5-Tuple <code>(bet, omg, alp, h, llk)</code> with \n        <i>ellipsoidal</i> lat- <code>bet</code>, longitude \n        <code>omg</code> and azimuth <code>alp</code>, all in <a \n        href=\"pygeodesy.angles.Ang-class.html\" class=\"link\">Ang</a>les on \n        and height <code>h</code> off the triaxial's surface and kind \n        <code>llk</code> set to <code>LLK.ELLIPSOIDAL</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.triaxials.conformal3.BetOmgGam5Tuple-class.html\">pygeodesy.triaxials.conformal3.BetOmgGam5Tuple</a></strong>:\n      <em class=\"summary\">5-Tuple <code>(bet, omg, gam, scale, llk)</code> with \n        <i>ellipsoidal</i> lat- <code>bet</code>, longitude \n        <code>omg</code> and meridian convergence <code>gam</code> all <a \n        href=\"pygeodesy.angles.Ang-class.html\" class=\"link\">Ang</a>les, \n        <code>scale</code> <i>and kind</i> <code>llk</code> <i>set to</i> \n        <code>LLK.CONFORMAL</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.triaxials.triaxial3.PhiLamZet5Tuple-class.html\">pygeodesy.triaxials.triaxial3.PhiLamZet5Tuple</a></strong>:\n      <em class=\"summary\">5-Tuple <code>(phi, lam, zet, h, llk)</code> with trixial lat- lat-\n        <code>phi</code>, longitude <code>lam</code> and azimuth \n        <code>zet</code>, all in <a href=\"pygeodesy.angles.Ang-class.html\" \n        class=\"link\">Ang</a>les on and height <code>h</code> off the \n        triaxial's surface and kind <code>llk</code> set to an \n        <code>LLK</code>.</em>\n    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.deprecated.classes._Deprecated_NamedTuple-class.html\">pygeodesy.deprecated.classes._Deprecated_NamedTuple</a></strong>:\n      <em class=\"summary\">DEPRECATED, <code>_NamedTuple</code> base.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.deprecated.classes.ClipCS3Tuple-class.html\">pygeodesy.deprecated.classes.ClipCS3Tuple</a></strong>:\n      <em class=\"summary\">DEPRECATED, see <i>DEPRECATED</i> function <a \n        href=\"pygeodesy.deprecated.functions-module.html#clipCS3\" \n        class=\"link\">pygeodesy.deprecated.clipCS3</a>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.deprecated.classes.EasNorExact4Tuple-class.html\">pygeodesy.deprecated.classes.EasNorExact4Tuple</a></strong>:\n      <em class=\"summary\">DEPRECATED, use class <a \n        href=\"pygeodesy.namedTuples.Forward4Tuple-class.html\" \n        class=\"link\">Forward4Tuple</a>, item <code>gamma</code> for \n        <code>convergence</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.deprecated.classes.LatLonExact4Tuple-class.html\">pygeodesy.deprecated.classes.LatLonExact4Tuple</a></strong>:\n      <em class=\"summary\">DEPRECATED, use class <a \n        href=\"pygeodesy.namedTuples.Reverse4Tuple-class.html\" \n        class=\"link\">Reverse4Tuple</a>, item <code>gamma</code> for \n        <code>convergence</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.deprecated.classes.NearestOn4Tuple-class.html\">pygeodesy.deprecated.classes.NearestOn4Tuple</a></strong>:\n      <em class=\"summary\">DEPRECATED on 2023.10.10, see methods <a \n        href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#nearestOn4\" \n        class=\"link\">RhumbLine.nearestOn4</a> and <a \n        href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#nearestOn4\" \n        class=\"link\">RhumbLineAux.nearestOn4</a>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.deprecated.classes.Ned3Tuple-class.html\">pygeodesy.deprecated.classes.Ned3Tuple</a></strong>:\n      <em class=\"summary\">DEPRECATED, use class <a \n        href=\"pygeodesy.ltpTuples.Ned4Tuple-class.html\" \n        class=\"link\">Ned4Tuple</a>, ignoring item <code>ltp</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.deprecated.classes.Rhumb7Tuple-class.html\">pygeodesy.deprecated.classes.Rhumb7Tuple</a></strong>:\n      <em class=\"summary\">DEPRECATED, use class <a \n        href=\"pygeodesy.karney.Rhumb8Tuple-class.html\" class=\"link\" \n        onclick=\"show_private();\">Rhumb8Tuple</a>, ignoring item \n        <code>a12</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.deprecated.classes.RhumbOrder2Tuple-class.html\">pygeodesy.deprecated.classes.RhumbOrder2Tuple</a></strong>:\n      <em class=\"summary\">DEPRECATED, see deprecated method <a \n        href=\"pygeodesy.rhumb.ekx.Rhumb-class.html#orders\" \n        class=\"link\">Rhumb.orders</a>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.deprecated.classes.Transform7Tuple-class.html\">pygeodesy.deprecated.classes.Transform7Tuple</a></strong>:\n      <em class=\"summary\">DEPRECATED on 2024.02.02, use class <a \n        href=\"pygeodesy.trf.TRFXform7Tuple-class.html\" \n        class=\"link\">TRFXform7Tuple</a>, <i>without</i> keyword arguments.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.deprecated.classes.TriAngle4Tuple-class.html\">pygeodesy.deprecated.classes.TriAngle4Tuple</a></strong>:\n      <em class=\"summary\">DEPRECATED on 2023.09.14, use class <a \n        href=\"pygeodesy.resections.TriAngle5Tuple-class.html\" \n        class=\"link\">TriAngle5Tuple</a>, ignoring item <code>area</code>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.deprecated.classes.UtmUps4Tuple-class.html\">pygeodesy.deprecated.classes.UtmUps4Tuple</a></strong>:\n      <em class=\"summary\">DEPRECATED and OBSOLETE, expect a <a \n        href=\"pygeodesy.namedTuples.UtmUps5Tuple-class.html\" \n        class=\"link\">UtmUps5Tuple</a> from method \n        <code>pygeodesy.Mgrs.toUtm(utm=None)</code>.</em>\n    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\">pygeodesy.karney._GTuple</strong>:\n      <em class=\"summary\">(INTERNAL) Helper.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.karney.Direct9Tuple-class.html\">pygeodesy.karney.Direct9Tuple</a></strong>:\n      <em class=\"summary\">9-Tuple <code>(a12, lat2, lon2, azi2, s12, m12, M12, M21, \n        S12)</code> with arc length <code>a12</code>, angles \n        <code>lat2</code>, <code>lon2</code> and azimuth <code>azi2</code> \n        in <code>degrees</code>, distance <code>s12</code> and reduced \n        length <code>m12</code> in <code>meter</code> and area \n        <code>S12</code> in <code>meter</code> <i>squared</i>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.geod3solve.Geod3Solve8Tuple-class.html\">pygeodesy.geod3solve.Geod3Solve8Tuple</a></strong>:\n      <em class=\"summary\">8-Tuple <code>(bet1, omg1, alp1, bet2, omg2, alp2, s12, a12)</code>\n        with <code>ellipsoidal</code> latitudes <code>bet1</code> and \n        <code>bet2</code>, <code>ellipsoidal</code> longitudes \n        <code>omg1</code> and <code>omg2</code>, forward azimuths \n        <code>alp1</code> and <code>alp2</code> in bearings from North, \n        distance <code>s12</code> in <code>meter</code>, conventionally and\n        <i>approximate</i> arc length <code>a12</code> in degrees, see <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/Geod3Solve.1.html\"\n        target=\"_top\">Geod3Solve</a>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.geodsolve.GeodSolve12Tuple-class.html\">pygeodesy.geodsolve.GeodSolve12Tuple</a></strong>:\n      <em class=\"summary\">12-Tuple <code>(lat1, lon1, azi1, lat2, lon2, azi2, s12, a12, m12, \n        M12, M21, S12)</code> with angles <code>lat1</code>, \n        <code>lon1</code>, <code>azi1</code>, <code>lat2</code>, \n        <code>lon2</code> and <code>azi2</code> and arc <code>a12</code> \n        all in <code>degrees</code>, initial <code>azi1</code> and final \n        <code>azi2</code> forward azimuths in bearings, degrees from North,\n        distance <code>s12</code> and reduced length <code>m12</code> in \n        <code>meter</code>, area <code>S12</code> in <code>meter</code> \n        <i>squared</i> and geodesic scale factors <code>M12</code> and \n        <code>M21</code>, both <code>scalar</code>, see <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/GeodSolve.1.html\"\n        target=\"_top\">GeodSolve</a>.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.karney.Inverse10Tuple-class.html\">pygeodesy.karney.Inverse10Tuple</a></strong>:\n      <em class=\"summary\">10-Tuple <code>(a12, s12, salp1, calp1, salp2, calp2, m12, M12, \n        M21, S12)</code> with arc length <code>a12</code> in \n        <code>degrees</code>, distance <code>s12</code> and reduced length \n        <code>m12</code> in <code>meter</code>, area <code>S12</code> in \n        <code>meter</code> <i>squared</i> and the sines <code>salp1</code>,\n        <code>salp2</code> and cosines <code>calp1</code>, \n        <code>calp2</code> of the initial <code>1</code> and final \n        <code>2</code> (forward) azimuths.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.karney.Rhumb8Tuple-class.html\" onclick=\"show_private();\">pygeodesy.karney.Rhumb8Tuple</a></strong>:\n      <em class=\"summary\">8-Tuple <code>(lat1, lon1, lat2, lon2, azi12, s12, S12, a12)</code>\n        with lat- <code>lat1</code>, <code>lat2</code> and longitudes \n        <code>lon1</code>, <code>lon2</code> of both points, the azimuth of\n        the rhumb line <code>azi12</code>, the distance <code>s12</code>, \n        the area <code>S12</code> under the rhumb line and the angular \n        distance <code>a12</code> between both points.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.rhumb.solve.RhumbSolve7Tuple-class.html\">pygeodesy.rhumb.solve.RhumbSolve7Tuple</a></strong>:\n      <em class=\"summary\">7-Tuple <code>(lat1, lon1, lat2, lon2, azi12, s12, S12)</code> with\n        lat- <code>lat1</code>, <code>lat2</code> and longitudes \n        <code>lon1</code>, <code>lon2</code> of both points, the azimuth of\n        the rhumb line <code>azi12</code>, the distance <code>s12</code> \n        and the area <code>S12</code> under the rhumb line between both \n        points.</em>\n    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.deprecated.classes.RhumbOrder2Tuple-class.html\">pygeodesy.deprecated.classes.RhumbOrder2Tuple</a></strong>:\n      <em class=\"summary\">DEPRECATED, see deprecated method <a \n        href=\"pygeodesy.rhumb.ekx.Rhumb-class.html#orders\" \n        class=\"link\">Rhumb.orders</a>.</em>\n    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\">pygeodesy.namedTuples._NamedTupleTo</strong>:\n      <em class=\"summary\">(INTERNAL) Base for <code>-.toDegrees</code>, \n        <code>-.toRadians</code>.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.cartesianBase.RadiusThetaPhi3Tuple-class.html\">pygeodesy.cartesianBase.RadiusThetaPhi3Tuple</a></strong>:\n      <em class=\"summary\">3-Tuple <code>(r, theta, phi)</code> with radial distance \n        <code>r</code> in <code>meter</code>, inclination \n        <code>theta</code> (with respect to the positive z-axis) and \n        azimuthal angle <code>phi</code> in <a \n        href=\"pygeodesy.units.Degrees-class.html\" class=\"link\">Degrees</a> \n        <i>or</i> <a href=\"pygeodesy.units.Radians-class.html\" \n        class=\"link\">Radians</a> representing a <a \n        href=\"https://WikiPedia.org/wiki/Spherical_coordinate_system\" \n        target=\"_top\">spherical, polar position</a>.</em>\n    </li>\n    <li> <strong class=\"uidlink\">pygeodesy.triaxials.triaxial5._NamedTupleToX</strong>:\n      <em class=\"summary\">(INTERNAL) Base class for <a \n        href=\"pygeodesy.triaxials.triaxial5.BetaOmega2Tuple-class.html\" \n        class=\"link\">BetaOmega2Tuple</a>, <a \n        href=\"pygeodesy.triaxials.triaxial5.BetaOmega3Tuple-class.html\" \n        class=\"link\">BetaOmega3Tuple</a> and <a \n        href=\"pygeodesy.triaxials.triaxial5.Conformal2Tuple-class.html\" \n        class=\"link\">Conformal2Tuple</a>.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.triaxials.triaxial5.BetaOmega2Tuple-class.html\">pygeodesy.triaxials.triaxial5.BetaOmega2Tuple</a></strong>:\n      <em class=\"summary\">2-Tuple <code>(beta, omega)</code> with <i>ellipsoidal</i> lat- and\n        longitude <code>beta</code> and <code>omega</code> both in <a \n        href=\"pygeodesy.units.Radians-class.html\" class=\"link\">Radians</a> \n        (or <a href=\"pygeodesy.units.Degrees-class.html\" \n        class=\"link\">Degrees</a>).</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.triaxials.triaxial5.BetaOmega3Tuple-class.html\">pygeodesy.triaxials.triaxial5.BetaOmega3Tuple</a></strong>:\n      <em class=\"summary\">3-Tuple <code>(beta, omega, height)</code> with <i>ellipsoidal</i> \n        lat- and longitude <code>beta</code> and <code>omega</code> both in\n        <a href=\"pygeodesy.units.Radians-class.html\" \n        class=\"link\">Radians</a> (or <a \n        href=\"pygeodesy.units.Degrees-class.html\" class=\"link\">Degrees</a>)\n        and the <code>height</code>, rather the (signed) <i>distance</i> to\n        the triaxial's surface (measured along the radial line to the \n        triaxial's center) in <code>meter</code>, conventionally.</em>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.triaxials.triaxial5.Conformal2Tuple-class.html\">pygeodesy.triaxials.triaxial5.Conformal2Tuple</a></strong>:\n      <em class=\"summary\">2-Tuple <code>(x, y)</code> with a <i>Jacobi Conformal</i> \n        <code>x</code> and <code>y</code> projection, both in <a \n        href=\"pygeodesy.units.Radians-class.html\" class=\"link\">Radians</a> \n        (or <a href=\"pygeodesy.units.Degrees-class.html\" \n        class=\"link\">Degrees</a>).</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.deprecated.classes.Jacobi2Tuple-class.html\">pygeodesy.deprecated.classes.Jacobi2Tuple</a></strong>:\n      <em class=\"summary\">DEPRECATED on 25.11.11, use class <a \n        href=\"pygeodesy.triaxials.triaxial5.Conformal2Tuple-class.html\" \n        class=\"link\">Conformal2Tuple</a>.</em>\n    </li>\n    </ul>\n    </li>\n    </ul>\n    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\">pygeodesy.ellipsoids.a_f2Tuple</a></strong>:\n      <em class=\"summary\">2-Tuple <code>(a, f)</code> specifying an ellipsoid by \n        <i>equatorial</i> radius <code>a</code> in <code>meter</code> and \n        scalar <i>flattening</i> <code>f</code>.</em>\n    </li>\n    </ul>\n    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\">type</strong>:\n      <em class=\"summary\">type(object) -&gt; the object's type type(name, bases, dict) -&gt; \n        a new type</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"abc.ABCMeta-class.html\">abc.ABCMeta</a></strong>:\n      <em class=\"summary\">Metaclass for defining Abstract Base Classes (ABCs).</em>\n    </li>\n    </ul>\n    </li>\n    </ul>\n    </li>\n</ul>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th bgcolor=\"#70b0f0\" class=\"navbar-select\"\n          >&nbsp;&nbsp;&nbsp;Trees&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:17 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/epydoc.css",
    "content": "\n\n/* Epydoc CSS Stylesheet\n *\n * This stylesheet can be used to customize the appearance of epydoc's\n * HTML output.\n *\n */\n\n/* Default Colors & Styles\n *   - Set the default foreground & background color with 'body'; and \n *     link colors with 'a:link' and 'a:visited'.\n *   - Use bold for decision list terms.\n *   - The heading styles defined here are used for headings *within*\n *     docstring descriptions.  All headings used by epydoc itself use\n *     either class='epydoc' or class='toc' (CSS styles for both\n *     defined below).\n */\nbody                        { background: #ffffff; color: #000000; }\np                           { margin-top: 0.5em; margin-bottom: 0.5em; }\na:link                      { color: #0000ff; }\na:visited                   { color: #204080; }\ndt                          { font-weight: bold; }\nh1                          { font-size: +140%; font-style: italic;\n                              font-weight: bold; }\nh2                          { font-size: +125%; font-style: italic;\n                              font-weight: bold; }\nh3                          { font-size: +110%;\n                              font-weight: normal; }\ncode                        { font-size: 100%; }\n/* N.B.: class, not pseudoclass */\na.link                      { font-family: monospace; }\n \n/* Page Header & Footer\n *   - The standard page header consists of a navigation bar (with\n *     pointers to standard pages such as 'home' and 'trees'); a\n *     breadcrumbs list, which can be used to navigate to containing\n *     classes or modules; options links, to show/hide private\n *     variables and to show/hide frames; and a page title (using\n *     <h1>).  The page title may be followed by a link to the\n *     corresponding source code (using 'span.codelink').\n *   - The footer consists of a navigation bar, a timestamp, and a\n *     pointer to epydoc's homepage.\n */ \nh1.epydoc                   { margin: 0; font-size: +140%; font-weight: bold; }\nh2.epydoc                   { font-size: +130%; font-weight: bold; }\nh3.epydoc                   { font-size: +115%; font-weight: bold;\n                              margin-top: 0.2em; }\ntd h3.epydoc                { font-size: +115%; font-weight: bold;\n                              margin-bottom: 0; }\ntable.navbar                { background: #a0c0ff; color: #000000;\n                              border: 2px groove #c0d0d0; }\ntable.navbar table          { color: #000000; }\nth.navbar-select            { background: #70b0ff;\n                              color: #000000; } \ntable.navbar a              { text-decoration: none; }  \ntable.navbar a:link         { color: #0000ff; }\ntable.navbar a:visited      { color: #204080; }\nspan.breadcrumbs            { font-size: 85%; font-weight: bold; }\nspan.options                { font-size: 70%; }\nspan.codelink               { font-size: 85%; }\ntd.footer                   { font-size: 85%; }\n\n/* Table Headers\n *   - Each summary table and details section begins with a 'header'\n *     row.  This row contains a section title (marked by\n *     'span.table-header') as well as a show/hide private link\n *     (marked by 'span.options', defined above).\n *   - Summary tables that contain user-defined groups mark those\n *     groups using 'group header' rows.\n */\ntd.table-header             { background: #70b0ff; color: #000000;\n                              border: 1px solid #608090; }\ntd.table-header table       { color: #000000; }\ntd.table-header table a:link      { color: #0000ff; }\ntd.table-header table a:visited   { color: #204080; }\nspan.table-header           { font-size: 120%; font-weight: bold; }\nth.group-header             { background: #c0e0f8; color: #000000;\n                              text-align: left; font-style: italic; \n                              font-size: 115%; \n                              border: 1px solid #608090; }\n\n/* Summary Tables (functions, variables, etc)\n *   - Each object is described by a single row of the table with\n *     two cells.  The left cell gives the object's type, and is\n *     marked with 'code.summary-type'.  The right cell gives the\n *     object's name and a summary description.\n *   - CSS styles for the table's header and group headers are\n *     defined above, under 'Table Headers'\n */\ntable.summary               { border-collapse: collapse;\n                              background: #e8f0f8; color: #000000;\n                              border: 1px solid #608090;\n                              margin-bottom: 0.5em; }\ntd.summary                  { border: 1px solid #608090; }\ncode.summary-type           { font-size: 85%; }\ntable.summary a:link        { color: #0000ff; }\ntable.summary a:visited     { color: #204080; }\n\n\n/* Details Tables (functions, variables, etc)\n *   - Each object is described in its own div.\n *   - A single-row summary table w/ table-header is used as\n *     a header for each details section (CSS style for table-header\n *     is defined above, under 'Table Headers').\n */\ntable.details               { border-collapse: collapse;\n                              background: #e8f0f8; color: #000000;\n                              border: 1px solid #608090;\n                              margin: .2em 0 0 0; }\ntable.details table         { color: #000000; }\ntable.details a:link        { color: #0000ff; }\ntable.details a:visited     { color: #204080; }\n\n/* Fields */\ndl.fields                   { margin-left: 2em; margin-top: 1em;\n                              margin-bottom: 1em; }\ndl.fields dd ul             { margin-left: 0em; padding-left: 0em; }\ndl.fields dd ul li ul       { margin-left: 2em; padding-left: 0em; }\ndiv.fields                  { margin-left: 2em; }\ndiv.fields p                { margin-bottom: 0.5em; }\n\n/* Index tables (identifier index, term index, etc)\n *   - link-index is used for indices containing lists of links\n *     (namely, the identifier index & term index).\n *   - index-where is used in link indices for the text indicating\n *     the container/source for each link.\n *   - metadata-index is used for indices containing metadata\n *     extracted from fields (namely, the bug index & todo index).\n */\ntable.link-index            { border-collapse: collapse;\n                              background: #e8f0f8; color: #000000;\n                              border: 1px solid #608090; }\ntd.link-index               { border-width: 0px; }\ntable.link-index a:link     { color: #0000ff; }\ntable.link-index a:visited  { color: #204080; }\nspan.index-where            { font-size: 70%; }\ntable.metadata-index        { border-collapse: collapse;\n                              background: #e8f0f8; color: #000000;\n                              border: 1px solid #608090; \n                              margin: .2em 0 0 0; }\ntd.metadata-index           { border-width: 1px; border-style: solid; }\ntable.metadata-index a:link { color: #0000ff; }\ntable.metadata-index a:visited  { color: #204080; }\n\n/* Function signatures\n *   - sig* is used for the signature in the details section.\n *   - .summary-sig* is used for the signature in the summary \n *     table, and when listing property accessor functions.\n * */\n.sig-name                   { color: #006080; }\n.sig-arg                    { color: #008060; }\n.sig-default                { color: #602000; }\n.summary-sig                { font-family: monospace; }\n.summary-sig-name           { color: #006080; font-weight: bold; }\ntable.summary a.summary-sig-name:link\n                            { color: #006080; font-weight: bold; }\ntable.summary a.summary-sig-name:visited\n                            { color: #006080; font-weight: bold; }\n.summary-sig-arg            { color: #006040; }\n.summary-sig-default        { color: #501800; }\n\n/* Subclass list\n */\nul.subclass-list { display: inline; }\nul.subclass-list li { display: inline; }\n\n/* To render variables, classes etc. like functions */\ntable.summary .summary-name { color: #006080; font-weight: bold;\n                              font-family: monospace; }\ntable.summary\n     a.summary-name:link    { color: #006080; font-weight: bold;\n                              font-family: monospace; }\ntable.summary\n    a.summary-name:visited  { color: #006080; font-weight: bold;\n                              font-family: monospace; }\n\n/* Variable values\n *   - In the 'variable details' sections, each varaible's value is\n *     listed in a 'pre.variable' box.  The width of this box is\n *     restricted to 80 chars; if the value's repr is longer than\n *     this it will be wrapped, using a backslash marked with\n *     class 'variable-linewrap'.  If the value's repr is longer\n *     than 3 lines, the rest will be ellided; and an ellipsis\n *     marker ('...' marked with 'variable-ellipsis') will be used.\n *   - If the value is a string, its quote marks will be marked\n *     with 'variable-quote'.\n *   - If the variable is a regexp, it is syntax-highlighted using\n *     the re* CSS classes.\n */\npre.variable                { padding: .5em; margin: 0;\n                              background: #dce4ec; color: #000000;\n                              border: 1px solid #708890; }\n.variable-linewrap          { color: #604000; font-weight: bold; }\n.variable-ellipsis          { color: #604000; font-weight: bold; }\n.variable-quote             { color: #604000; font-weight: bold; }\n.variable-group             { color: #008000; font-weight: bold; }\n.variable-op                { color: #604000; font-weight: bold; }\n.variable-string            { color: #006030; }\n.variable-unknown           { color: #a00000; font-weight: bold; }\n.re                         { color: #000000; }\n.re-char                    { color: #006030; }\n.re-op                      { color: #600000; }\n.re-group                   { color: #003060; }\n.re-ref                     { color: #404040; }\n\n/* Base tree\n *   - Used by class pages to display the base class hierarchy.\n */\npre.base-tree               { font-size: 80%; margin: 0; }\n\n/* Frames-based table of contents headers\n *   - Consists of two frames: one for selecting modules; and\n *     the other listing the contents of the selected module.\n *   - h1.toc is used for each frame's heading\n *   - h2.toc is used for subheadings within each frame.\n */\nh1.toc                      { text-align: center; font-size: 105%;\n                              margin: 0; font-weight: bold;\n                              padding: 0; }\nh2.toc                      { font-size: 100%; font-weight: bold; \n                              margin: 0.5em 0 0 -0.3em; }\n\n/* Syntax Highlighting for Source Code\n *   - doctest examples are displayed in a 'pre.py-doctest' block.\n *     If the example is in a details table entry, then it will use\n *     the colors specified by the 'table pre.py-doctest' line.\n *   - Source code listings are displayed in a 'pre.py-src' block.\n *     Each line is marked with 'span.py-line' (used to draw a line\n *     down the left margin, separating the code from the line\n *     numbers).  Line numbers are displayed with 'span.py-lineno'.\n *     The expand/collapse block toggle button is displayed with\n *     'a.py-toggle' (Note: the CSS style for 'a.py-toggle' should not\n *     modify the font size of the text.)\n *   - If a source code page is opened with an anchor, then the\n *     corresponding code block will be highlighted.  The code\n *     block's header is highlighted with 'py-highlight-hdr'; and\n *     the code block's body is highlighted with 'py-highlight'.\n *   - The remaining py-* classes are used to perform syntax\n *     highlighting (py-string for string literals, py-name for names,\n *     etc.)\n */\npre.py-doctest              { padding: .5em; margin: 1em;\n                              background: #e8f0f8; color: #000000;\n                              border: 1px solid #708890; }\ntable pre.py-doctest        { background: #dce4ec;\n                              color: #000000; }\npre.py-src                  { border: 2px solid #000000; \n                              background: #f0f0f0; color: #000000; }\n.py-line                    { border-left: 2px solid #000000; \n                              margin-left: .2em; padding-left: .4em; }\n.py-lineno                  { font-style: italic; font-size: 90%;\n                              padding-left: .5em; }\na.py-toggle                 { text-decoration: none; }\ndiv.py-highlight-hdr        { border-top: 2px solid #000000;\n                              border-bottom: 2px solid #000000;\n                              background: #d8e8e8; }\ndiv.py-highlight            { border-bottom: 2px solid #000000;\n                              background: #d0e0e0; }\n.py-prompt                  { color: #005050; font-weight: bold;}\n.py-more                    { color: #005050; font-weight: bold;}\n.py-string                  { color: #006030; }\n.py-comment                 { color: #003060; }\n.py-keyword                 { color: #600000; }\n.py-output                  { color: #404040; }\n.py-name                    { color: #000050; }\n.py-name:link               { color: #000050 !important; }\n.py-name:visited            { color: #000050 !important; }\n.py-number                  { color: #005000; }\n.py-defname                 { color: #000060; font-weight: bold; }\n.py-def-name                { color: #000060; font-weight: bold; }\n.py-base-class              { color: #000060; }\n.py-param                   { color: #000060; }\n.py-docstring               { color: #006030; }\n.py-decorator               { color: #804020; }\n/* Use this if you don't want links to names underlined: */\n/*a.py-name                   { text-decoration: none; }*/\n\n/* Graphs & Diagrams\n *   - These CSS styles are used for graphs & diagrams generated using\n *     Graphviz dot.  'img.graph-without-title' is used for bare\n *     diagrams (to remove the border created by making the image\n *     clickable).\n */\nimg.graph-without-title     { border: none; }\nimg.graph-with-title        { border: 1px solid #000000; }\nspan.graph-title            { font-weight: bold; }\nspan.graph-caption          { }\n\n/* General-purpose classes\n *   - 'p.indent-wrapped-lines' defines a paragraph whose first line\n *     is not indented, but whose subsequent lines are.\n *   - The 'nomargin-top' class is used to remove the top margin (e.g.\n *     from lists).  The 'nomargin' class is used to remove both the\n *     top and bottom margin (but not the left or right margin --\n *     for lists, that would cause the bullets to disappear.)\n */\np.indent-wrapped-lines      { padding: 0 0 0 7em; text-indent: -7em; \n                              margin: 0; }\n.nomargin-top               { margin-top: 0; }\n.nomargin                   { margin-top: 0; margin-bottom: 0; }\n\n/* HTML Log */\ndiv.log-block               { padding: 0; margin: .5em 0 .5em 0;\n                              background: #e8f0f8; color: #000000;\n                              border: 1px solid #000000; }\ndiv.log-error               { padding: .1em .3em .1em .3em; margin: 4px;\n                              background: #ffb0b0; color: #000000;\n                              border: 1px solid #000000; }\ndiv.log-warning             { padding: .1em .3em .1em .3em; margin: 4px;\n                              background: #ffffb0; color: #000000;\n                              border: 1px solid #000000; }\ndiv.log-info               { padding: .1em .3em .1em .3em; margin: 4px;\n                              background: #b0ffb0; color: #000000;\n                              border: 1px solid #000000; }\nh2.log-hdr                  { background: #70b0ff; color: #000000;\n                              margin: 0; padding: 0em 0.5em 0em 0.5em;\n                              border-bottom: 1px solid #000000; font-size: 110%; }\np.log                       { font-weight: bold; margin: .5em 0 .5em 0; }\ntr.opt-changed              { color: #000000; font-weight: bold; }\ntr.opt-default              { color: #606060; }\npre.log                     { margin: 0; padding: 0; padding-left: 1em; }\n"
  },
  {
    "path": "docs/epydoc.js",
    "content": "function toggle_private() {\n        // Search for any private/public links on this page.  Store\n        // their old text in \"cmd,\" so we will know what action to\n        // take; and change their text to the opposite action.\n        var cmd = \"?\";\n        var elts = document.getElementsByTagName(\"a\");\n        for(var i=0; i<elts.length; i++) {\n          if (elts[i].className == \"privatelink\") {\n            cmd = elts[i].innerHTML;\n            elts[i].innerHTML = ((cmd && cmd.substr(0,4)==\"show\")?\n                                    \"hide&nbsp;private\":\"show&nbsp;private\");\n          }\n        }\n        // Update all DIVs containing private objects.\n        var elts = document.getElementsByTagName(\"div\");\n        for(var i=0; i<elts.length; i++) {\n          if (elts[i].className == \"private\") {\n            elts[i].style.display = ((cmd && cmd.substr(0,4)==\"hide\")?\"none\":\"block\");\n          }\n          else if (elts[i].className == \"public\") {\n            elts[i].style.display = ((cmd && cmd.substr(0,4)==\"hide\")?\"block\":\"none\");\n          }\n        }\n        // Update all table rows containing private objects.  Note, we\n        // use \"\" instead of \"block\" becaue IE & firefox disagree on what\n        // this should be (block vs table-row), and \"\" just gives the\n        // default for both browsers.\n        var elts = document.getElementsByTagName(\"tr\");\n        for(var i=0; i<elts.length; i++) {\n          if (elts[i].className == \"private\") {\n            elts[i].style.display = ((cmd && cmd.substr(0,4)==\"hide\")?\"none\":\"\");\n          }\n        }\n        // Update all list items containing private objects.\n        var elts = document.getElementsByTagName(\"li\");\n        for(var i=0; i<elts.length; i++) {\n          if (elts[i].className == \"private\") {\n            elts[i].style.display = ((cmd && cmd.substr(0,4)==\"hide\")?\n                                        \"none\":\"\");\n          }\n        }\n        // Update all list items containing private objects.\n        var elts = document.getElementsByTagName(\"ul\");\n        for(var i=0; i<elts.length; i++) {\n          if (elts[i].className == \"private\") {\n            elts[i].style.display = ((cmd && cmd.substr(0,4)==\"hide\")?\"none\":\"block\");\n          }\n        }\n        // Set a cookie to remember the current option.\n        document.cookie = \"EpydocPrivate=\"+cmd;\n      }\nfunction show_private() {\n        var elts = document.getElementsByTagName(\"a\");\n        for(var i=0; i<elts.length; i++) {\n          if (elts[i].className == \"privatelink\") {\n            cmd = elts[i].innerHTML;\n            if (cmd && cmd.substr(0,4)==\"show\")\n                toggle_private();\n          }\n        }\n      }\nfunction getCookie(name) {\n        var dc = document.cookie;\n        var prefix = name + \"=\";\n        var begin = dc.indexOf(\"; \" + prefix);\n        if (begin == -1) {\n          begin = dc.indexOf(prefix);\n          if (begin != 0) return null;\n        } else\n        { begin += 2; }\n        var end = document.cookie.indexOf(\";\", begin);\n        if (end == -1)\n        { end = dc.length; }\n        return unescape(dc.substring(begin + prefix.length, end));\n      }\nfunction setFrame(url1, url2) {\n          parent.frames[1].location.href = url1;\n          parent.frames[2].location.href = url2;\n      }\nfunction checkCookie() {\n        var cmd=getCookie(\"EpydocPrivate\");\n        if (cmd && cmd.substr(0,4)!=\"show\" && location.href.indexOf(\"#_\") < 0)\n            toggle_private();\n      }\nfunction toggleCallGraph(id) {\n        var elt = document.getElementById(id);\n        if (elt.style.display == \"none\")\n            elt.style.display = \"block\";\n        else\n            elt.style.display = \"none\";\n      }\nfunction expand(id) {\n  var elt = document.getElementById(id+\"-expanded\");\n  if (elt) elt.style.display = \"block\";\n  var elt = document.getElementById(id+\"-expanded-linenums\");\n  if (elt) elt.style.display = \"block\";\n  var elt = document.getElementById(id+\"-collapsed\");\n  if (elt) { elt.innerHTML = \"\"; elt.style.display = \"none\"; }\n  var elt = document.getElementById(id+\"-collapsed-linenums\");\n  if (elt) { elt.innerHTML = \"\"; elt.style.display = \"none\"; }\n  var elt = document.getElementById(id+\"-toggle\");\n  if (elt) { elt.innerHTML = \"-\"; }\n}\n\nfunction collapse(id) {\n  var elt = document.getElementById(id+\"-expanded\");\n  if (elt) elt.style.display = \"none\";\n  var elt = document.getElementById(id+\"-expanded-linenums\");\n  if (elt) elt.style.display = \"none\";\n  var elt = document.getElementById(id+\"-collapsed-linenums\");\n  if (elt) { elt.innerHTML = \"<br />\"; elt.style.display=\"block\"; }\n  var elt = document.getElementById(id+\"-toggle\");\n  if (elt) { elt.innerHTML = \"+\"; }\n  var elt = document.getElementById(id+\"-collapsed\");\n  if (elt) {\n    elt.style.display = \"block\";\n    \n    var indent = elt.getAttribute(\"indent\");\n    var pad = elt.getAttribute(\"pad\");\n    var s = \"<tt class='py-lineno'>\";\n    for (var i=0; i<pad.length; i++) { s += \"&nbsp;\" }\n    s += \"</tt>\";\n    s += \"&nbsp;&nbsp;<tt class='py-line'>\";\n    for (var i=0; i<indent.length; i++) { s += \"&nbsp;\" }\n    s += \"<a href='#' onclick='expand(\\\"\" + id;\n    s += \"\\\");return false'>...</a></tt><br />\";\n    elt.innerHTML = s;\n  }\n}\n\nfunction toggle(id) {\n  elt = document.getElementById(id+\"-toggle\");\n  if (elt.innerHTML == \"-\")\n      collapse(id); \n  else\n      expand(id);\n  return false;\n}\n\nfunction highlight(id) {\n  var elt = document.getElementById(id+\"-def\");\n  if (elt) elt.className = \"py-highlight-hdr\";\n  var elt = document.getElementById(id+\"-expanded\");\n  if (elt) elt.className = \"py-highlight\";\n  var elt = document.getElementById(id+\"-collapsed\");\n  if (elt) elt.className = \"py-highlight\";\n}\n\nfunction num_lines(s) {\n  var n = 1;\n  var pos = s.indexOf(\"\\n\");\n  while ( pos > 0) {\n    n += 1;\n    pos = s.indexOf(\"\\n\", pos+1);\n  }\n  return n;\n}\n\n// Collapse all blocks that mave more than `min_lines` lines.\nfunction collapse_all(min_lines) {\n  var elts = document.getElementsByTagName(\"div\");\n  for (var i=0; i<elts.length; i++) {\n    var elt = elts[i];\n    var split = elt.id.indexOf(\"-\");\n    if (split > 0)\n      if (elt.id.substring(split, elt.id.length) == \"-expanded\")\n        if (num_lines(elt.innerHTML) > min_lines)\n          collapse(elt.id.substring(0, split));\n  }\n}\n\nfunction expandto(href) {\n  var start = href.indexOf(\"#\")+1;\n  if (start != 0 && start != href.length) {\n    if (href.substring(start, href.length) != \"-\") {\n      collapse_all(4);\n      pos = href.indexOf(\".\", start);\n      while (pos != -1) {\n        var id = href.substring(start, pos);\n        expand(id);\n        pos = href.indexOf(\".\", pos+1);\n      }\n      var id = href.substring(start, href.length);\n      expand(id);\n      highlight(id);\n    }\n  }\n}\n\nfunction kill_doclink(id) {\n  var parent = document.getElementById(id);\n  parent.removeChild(parent.childNodes.item(0));\n}\nfunction auto_kill_doclink(ev) {\n  if (!ev) var ev = window.event;\n  if (!this.contains(ev.toElement)) {\n    var parent = document.getElementById(this.parentID);\n    parent.removeChild(parent.childNodes.item(0));\n  }\n}\n\nfunction doclink(id, name, targets_id) {\n  var elt = document.getElementById(id);\n\n  // If we already opened the box, then destroy it.\n  // (This case should never occur, but leave it in just in case.)\n  if (elt.childNodes.length > 1) {\n    elt.removeChild(elt.childNodes.item(0));\n  }\n  else {\n    // The outer box: relative + inline positioning.\n    var box1 = document.createElement(\"div\");\n    box1.style.position = \"relative\";\n    box1.style.display = \"inline\";\n    box1.style.top = 0;\n    box1.style.left = 0;\n  \n    // A shadow for fun\n    var shadow = document.createElement(\"div\");\n    shadow.style.position = \"absolute\";\n    shadow.style.left = \"-1.3em\";\n    shadow.style.top = \"-1.3em\";\n    shadow.style.background = \"#404040\";\n    \n    // The inner box: absolute positioning.\n    var box2 = document.createElement(\"div\");\n    box2.style.position = \"relative\";\n    box2.style.border = \"1px solid #a0a0a0\";\n    box2.style.left = \"-.2em\";\n    box2.style.top = \"-.2em\";\n    box2.style.background = \"white\";\n    box2.style.padding = \".3em .4em .3em .4em\";\n    box2.style.fontStyle = \"normal\";\n    box2.onmouseout=auto_kill_doclink;\n    box2.parentID = id;\n\n    // Get the targets\n    var targets_elt = document.getElementById(targets_id);\n    var targets = targets_elt.getAttribute(\"targets\");\n    var links = \"\";\n    target_list = targets.split(\",\");\n    for (var i=0; i<target_list.length; i++) {\n        var target = target_list[i].split(\"=\");\n        links += \"<li><a href='\" + target[1] + \n               \"' style='text-decoration:none'>\" +\n               target[0] + \"</a></li>\";\n    }\n  \n    // Put it all together.\n    elt.insertBefore(box1, elt.childNodes.item(0));\n    //box1.appendChild(box2);\n    box1.appendChild(shadow);\n    shadow.appendChild(box2);\n    box2.innerHTML =\n        \"Which <b>\"+name+\"</b> do you want to see documentation for?\" +\n        \"<ul style='margin-bottom: 0;'>\" +\n        links + \n        \"<li><a href='#' style='text-decoration:none' \" +\n        \"onclick='kill_doclink(\\\"\"+id+\"\\\");return false;'>\"+\n        \"<i>None of the above</i></a></li></ul>\";\n  }\n  return false;\n}\n\nfunction get_anchor() {\n          var href = location.href;\n          var start = href.indexOf(\"#\")+1;\n          if ((start != 0) && (start != href.length))\n              return href.substring(start, href.length);\n      }\nfunction redirect_url(dottedName) {\n          // Scan through each element of the \"pages\" list, and check\n          // if \"name\" matches with any of them.\n          for (var i=0; i<pages.length; i++) {\n\n              // Each page has the form \"<pagename>-m\" or \"<pagename>-c\";\n              // extract the <pagename> portion & compare it to dottedName.\n              var pagename = pages[i].substring(0, pages[i].length-2);\n              if (pagename == dottedName.substring(0,pagename.length)) {\n\n                  // We've found a page that matches `dottedName`;\n                  // construct its URL, using leftover `dottedName`\n                  // content to form an anchor.\n                  var pagetype = pages[i].charAt(pages[i].length-1);\n                  var url = pagename + ((pagetype==\"m\")?\"-module.html\":\n                                                        \"-class.html\");\n                  if (dottedName.length > pagename.length)\n                      url += \"#\" + dottedName.substring(pagename.length+1,\n                                                        dottedName.length);\n                  return url;\n              }\n          }\n      }\n"
  },
  {
    "path": "docs/frames.html",
    "content": "<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Frameset//EN\"\n          \"DTD/xhtml1-frameset.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title> pygeodesy </title>\n</head>\n<frameset cols=\"20%,80%\">\n  <frameset rows=\"30%,70%\">\n    <frame src=\"toc.html\" name=\"moduleListFrame\"\n           id=\"moduleListFrame\" />\n    <frame src=\"toc-everything.html\" name=\"moduleFrame\"\n           id=\"moduleFrame\" />\n  </frameset>\n  <frame src=\"pygeodesy-module.html\" name=\"mainFrame\" id=\"mainFrame\" />\n</frameset>\n</html>\n"
  },
  {
    "path": "docs/help.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>Help</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th bgcolor=\"#70b0f0\" class=\"navbar-select\"\n          >&nbsp;&nbsp;&nbsp;Help&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">&nbsp;</td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"help.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n\n<h1 class=\"epydoc\"> API Documentation </h1>\n\n<p> This document contains the API (Application Programming Interface)\ndocumentation for pygeodesy.  Documentation for the Python\nobjects defined by the project is divided into separate pages for each\npackage, module, and class.  The API documentation also includes two\npages containing information about the project as a whole: a trees\npage, and an index page.  </p>\n\n<h2> Object Documentation </h2>\n\n  <p>Each <strong>Package Documentation</strong> page contains: </p>\n  <ul>\n    <li> A description of the package. </li>\n    <li> A list of the modules and sub-packages contained by the\n    package.  </li>\n    <li> A summary of the classes defined by the package. </li>\n    <li> A summary of the functions defined by the package. </li>\n    <li> A summary of the variables defined by the package. </li>\n    <li> A detailed description of each function defined by the\n    package. </li>\n    <li> A detailed description of each variable defined by the\n    package. </li>\n  </ul>\n  \n  <p>Each <strong>Module Documentation</strong> page contains:</p>\n  <ul>\n    <li> A description of the module. </li>\n    <li> A summary of the classes defined by the module. </li>\n    <li> A summary of the functions defined by the module. </li>\n    <li> A summary of the variables defined by the module. </li>\n    <li> A detailed description of each function defined by the\n    module. </li>\n    <li> A detailed description of each variable defined by the\n    module. </li>\n  </ul>\n  \n  <p>Each <strong>Class Documentation</strong> page contains: </p>\n  <ul>\n    <li> A class inheritance diagram. </li>\n    <li> A list of known subclasses. </li>\n    <li> A description of the class. </li>\n    <li> A summary of the methods defined by the class. </li>\n    <li> A summary of the instance variables defined by the class. </li>\n    <li> A summary of the class (static) variables defined by the\n    class. </li> \n    <li> A detailed description of each method defined by the\n    class. </li>\n    <li> A detailed description of each instance variable defined by the\n    class. </li> \n    <li> A detailed description of each class (static) variable defined\n    by the class. </li> \n  </ul>\n\n<h2> Project Documentation </h2>\n\n  <p> The <strong>Trees</strong> page contains the module and class hierarchies: </p>\n  <ul>\n    <li> The <em>module hierarchy</em> lists every package and module, with\n    modules grouped into packages.  At the top level, and within each\n    package, modules and sub-packages are listed alphabetically. </li>\n    <li> The <em>class hierarchy</em> lists every class, grouped by base\n    class.  If a class has more than one base class, then it will be\n    listed under each base class.  At the top level, and under each base\n    class, classes are listed alphabetically. </li>\n  </ul>\n  \n  <p> The <strong>Index</strong> page contains indices of terms and\n  identifiers: </p>\n  <ul>\n    <li> The <em>term index</em> lists every term indexed by any object's\n    documentation.  For each term, the index provides links to each\n    place where the term is indexed. </li>\n    <li> The <em>identifier index</em> lists the (short) name of every package,\n    module, class, method, function, variable, and parameter.  For each\n    identifier, the index provides a short description, and a link to\n    its documentation. </li>\n  </ul>\n\n<h2> The Table of Contents </h2>\n\n<p> The table of contents occupies the two frames on the left side of\nthe window.  The upper-left frame displays the <em>project\ncontents</em>, and the lower-left frame displays the <em>module\ncontents</em>: </p>\n\n<table class=\"help summary\" border=\"1\" cellspacing=\"0\" cellpadding=\"3\">\n  <tr style=\"height: 30%\">\n    <td align=\"center\" style=\"font-size: small\">\n       Project<br />Contents<hr />...</td>\n    <td align=\"center\" style=\"font-size: small\" rowspan=\"2\" width=\"70%\">\n      API<br />Documentation<br />Frame<br /><br /><br />\n    </td>\n  </tr>\n  <tr>\n    <td align=\"center\" style=\"font-size: small\">\n      Module<br />Contents<hr />&nbsp;<br />...<br />&nbsp;\n    </td>\n  </tr>\n</table><br />\n\n<p> The <strong>project contents frame</strong> contains a list of all packages\nand modules that are defined by the project.  Clicking on an entry\nwill display its contents in the module contents frame.  Clicking on a\nspecial entry, labeled \"Everything,\" will display the contents of\nthe entire project. </p>\n\n<p> The <strong>module contents frame</strong> contains a list of every\nsubmodule, class, type, exception, function, and variable defined by a\nmodule or package.  Clicking on an entry will display its\ndocumentation in the API documentation frame.  Clicking on the name of\nthe module, at the top of the frame, will display the documentation\nfor the module itself. </p>\n\n<p> The \"<strong>frames</strong>\" and \"<strong>no frames</strong>\" buttons below the top\nnavigation bar can be used to control whether the table of contents is\ndisplayed or not. </p>\n\n<h2> The Navigation Bar </h2>\n\n<p> A navigation bar is located at the top and bottom of every page.\nIt indicates what type of page you are currently viewing, and allows\nyou to go to related pages.  The following table describes the labels\non the navigation bar.  Note that not some labels (such as\n[Parent]) are not displayed on all pages. </p>\n\n<table class=\"summary\" border=\"1\" cellspacing=\"0\" cellpadding=\"3\" width=\"100%\">\n<tr class=\"summary\">\n  <th>Label</th>\n  <th>Highlighted when...</th>\n  <th>Links to...</th>\n</tr>\n  <tr><td valign=\"top\"><strong>[Parent]</strong></td>\n      <td valign=\"top\"><em>(never highlighted)</em></td>\n      <td valign=\"top\"> the parent of the current package </td></tr>\n  <tr><td valign=\"top\"><strong>[Package]</strong></td>\n      <td valign=\"top\">viewing a package</td>\n      <td valign=\"top\">the package containing the current object\n      </td></tr>\n  <tr><td valign=\"top\"><strong>[Module]</strong></td>\n      <td valign=\"top\">viewing a module</td>\n      <td valign=\"top\">the module containing the current object\n      </td></tr> \n  <tr><td valign=\"top\"><strong>[Class]</strong></td>\n      <td valign=\"top\">viewing a class </td>\n      <td valign=\"top\">the class containing the current object</td></tr>\n  <tr><td valign=\"top\"><strong>[Trees]</strong></td>\n      <td valign=\"top\">viewing the trees page</td>\n      <td valign=\"top\"> the trees page </td></tr>\n  <tr><td valign=\"top\"><strong>[Index]</strong></td>\n      <td valign=\"top\">viewing the index page</td>\n      <td valign=\"top\"> the index page </td></tr>\n  <tr><td valign=\"top\"><strong>[Help]</strong></td>\n      <td valign=\"top\">viewing the help page</td>\n      <td valign=\"top\"> the help page </td></tr>\n</table>\n\n<p> The \"<strong>show private</strong>\" and \"<strong>hide private</strong>\" buttons below\nthe top navigation bar can be used to control whether documentation\nfor private objects is displayed.  Private objects are usually defined\nas objects whose (short) names begin with a single underscore, but do\nnot end with an underscore.  For example, \"<code>_x</code>\",\n\"<code>__pprint</code>\", and \"<code>epydoc.epytext._tokenize</code>\"\nare private objects; but \"<code>re.sub</code>\",\n\"<code>__init__</code>\", and \"<code>type_</code>\" are not.  However,\nif a module defines the \"<code>__all__</code>\" variable, then its\ncontents are used to decide which objects are private. </p>\n\n<p> A timestamp below the bottom navigation bar indicates when each\npage was last updated. </p>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th bgcolor=\"#70b0f0\" class=\"navbar-select\"\n          >&nbsp;&nbsp;&nbsp;Help&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:17 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/identifier-index-A.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>Identifier Index</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th bgcolor=\"#70b0f0\" class=\"navbar-select\"\n          >&nbsp;&nbsp;&nbsp;Indices&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">&nbsp;</td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"identifier-index-A.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<center><b>[\n <a href=\"identifier-index.html\">Identifiers</a>\n| <a href=\"term-index.html\">Term Definitions</a>\n]</b></center><br />\n<table border=\"0\" width=\"100%\">\n<tr valign=\"bottom\"><td>\n<h1 class=\"epydoc\">Identifier Index</h1>\n</td><td>\n[\n <a href=\"identifier-index-A.html\">A</a>\n <a href=\"identifier-index-B.html\">B</a>\n <a href=\"identifier-index-C.html\">C</a>\n <a href=\"identifier-index-D.html\">D</a>\n <a href=\"identifier-index-E.html\">E</a>\n <a href=\"identifier-index-F.html\">F</a>\n <a href=\"identifier-index-G.html\">G</a>\n <a href=\"identifier-index-H.html\">H</a>\n <a href=\"identifier-index-I.html\">I</a>\n <a href=\"identifier-index-J.html\">J</a>\n <a href=\"identifier-index-K.html\">K</a>\n <a href=\"identifier-index-L.html\">L</a>\n <a href=\"identifier-index-M.html\">M</a>\n <a href=\"identifier-index-N.html\">N</a>\n <a href=\"identifier-index-O.html\">O</a>\n <a href=\"identifier-index-P.html\">P</a>\n <a href=\"identifier-index-Q.html\">Q</a>\n <a href=\"identifier-index-R.html\">R</a>\n <a href=\"identifier-index-S.html\">S</a>\n <a href=\"identifier-index-T.html\">T</a>\n <a href=\"identifier-index-U.html\">U</a>\n <a href=\"identifier-index-V.html\">V</a>\n <a href=\"identifier-index-W.html\">W</a>\n <a href=\"identifier-index-X.html\">X</a>\n <a href=\"identifier-index-Y.html\">Y</a>\n <a href=\"identifier-index-Z.html\">Z</a>\n <a href=\"identifier-index-_.html\">_</a>\n]\n</td></table>\n<table border=\"0\" width=\"100%\">\n<tr valign=\"top\"><td valign=\"top\" width=\"1%\"><h2 class=\"epydoc\"><a name=\"A\">A</a></h2></td>\n<td valign=\"top\">\n<table class=\"link-index\" width=\"100%\" border=\"1\">\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxLat.AuxLat-class.html#a\">a</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats.auxLat.AuxLat-class.html\">AuxLat</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesici.Intersectool-class.html#All\">All()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesici.Intersectool-class.html\">Intersectool</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utily-module.html#atan1d\">atan1d()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utily-module.html\">pygeodesy.utily</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipses.Ellipse-class.html#a\">a</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipses.Ellipse-class.html\">Ellipse</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesici.Intersector-class.html#All\">All()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesici.Intersector-class.html\">Intersector</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utily-module.html#atan2\">atan2()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utily-module.html\">pygeodesy.utily</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#A\">A</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesici._IntersectBase-class.html#All\">All()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesici._IntersectBase-class.html\">_IntersectBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utily-module.html#atan2b\">atan2b()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utily-module.html\">pygeodesy.utily</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#a\">a</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesici.Intersectool-class.html#All5\">All5()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesici.Intersectool-class.html\">Intersectool</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utily-module.html#atan2d\">atan2d()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utily-module.html\">pygeodesy.utily</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geod3solve._Geodesic3SolveBase-class.html#a\">a</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geod3solve._Geodesic3SolveBase-class.html\">_Geodesic3SolveBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesici.Intersector-class.html#All5\">All5()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesici.Intersector-class.html\">Intersector</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utily-module.html#atan2p\">atan2p()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utily-module.html\">pygeodesy.utily</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesici._IntersectBase-class.html#a\">a</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesici._IntersectBase-class.html\">_IntersectBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.sphericalNvector.LatLon-class.html#alongTrackDistanceTo\">alongTrackDistanceTo()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.sphericalNvector.LatLon-class.html\">LatLon</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.functions-module.html#atand\">atand()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.functions-module.html\" onclick=\"show_private();\">pygeodesy.deprecated.functions</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html#a\">a</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html\">GeodesicExact</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html#alongTrackDistanceTo\">alongTrackDistanceTo()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html\">LatLon</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltp.Attitude-class.html\">Attitude</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltp-module.html\">pygeodesy.ltp</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb.bases.RhumbBase-class.html#a\">a</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb.bases.RhumbBase-class.html\">RhumbBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxLat.AuxLat-class.html#ALorder\">ALorder</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats.auxLat.AuxLat-class.html\">AuxLat</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.Attitude4Tuple-class.html\">Attitude4Tuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples-module.html\">pygeodesy.ltpTuples</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#a\">a</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.solveBase._SolveCapsBase-class.html\">_SolveCapsBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geod3solve.GeodesicLine3Solve-class.html#alp1\">alp1</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geod3solve.GeodesicLine3Solve-class.html\">GeodesicLine3Solve</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltp.AttitudeError-class.html\">AttitudeError</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltp-module.html\">pygeodesy.ltp</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#a\">a</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html\">_UnOrderedTriaxialBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.elliptic.Elliptic-class.html#alpha2\">alpha2</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.elliptic.Elliptic-class.html\">Elliptic</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.named._Named-class.html\">_Named</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#a1\">a1</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html\">_GeodesicLineExact</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#AlphaKs\">AlphaKs</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.streprs-module.html#attrs\">attrs()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.streprs-module.html\">pygeodesy.streprs</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#a13\">a13</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html\">_GeodesicLineExact</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.elliptic.Elliptic-class.html#alphap2\">alphap2</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.elliptic.Elliptic-class.html\">Elliptic</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltp.Attitude-class.html#atyr\">atyr</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltp.Attitude-class.html\">Attitude</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodsolve.GeodesicLineSolve-class.html#a13\">a13</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodsolve.GeodesicLineSolve-class.html\">GeodesicLineSolve</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltp.Attitude-class.html#alt\">alt</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltp.Attitude-class.html\">Attitude</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.Attitude4Tuple-class.html#atyr\">atyr</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.Attitude4Tuple-class.html\">Attitude4Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#a2\">a2</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.angles.Ang-class.html\">Ang</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.angles-module.html\">pygeodesy.angles</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.lcc.Conic-class.html#auth\">auth</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.lcc.Conic-class.html\">Conic</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#a2\">a2</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html\">_UnOrderedTriaxialBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.formy-module.html#angle2chord\">angle2chord()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.formy-module.html\">pygeodesy.formy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxLat.AuxLat-class.html#Authalic\">Authalic()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats.auxLat.AuxLat-class.html\">AuxLat</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#a2_\">a2_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.angles-module.html\">angles</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxLat.AuxLat-class.html#AuthalicRadius2\">AuthalicRadius2()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats.auxLat.AuxLat-class.html\">AuxLat</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#a2_b\">a2_b</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#angleTo\">angleTo()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">Vector3dBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats-module.html#Aux\">Aux</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats-module.html\">pygeodesy.auxilats</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#a2_b2\">a2_b2</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.functions-module.html#anStr\">anStr()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.functions-module.html\" onclick=\"show_private();\">pygeodesy.deprecated.functions</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxily-module.html#Aux\">Aux</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats.auxily-module.html\" onclick=\"show_private();\">pygeodesy.auxilats.auxily</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#a_b\">a_b</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.streprs-module.html#anstr\">anstr()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.streprs-module.html\">pygeodesy.streprs</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb.aux_-module.html\">aux_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb-module.html\">pygeodesy.rhumb</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids-module.html#a_b2e\">a_b2e()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids-module.html\">pygeodesy.ellipsoids</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.azimuthal.Azimuthal7Tuple-class.html#antipodal\">antipodal()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.azimuthal.Azimuthal7Tuple-class.html\">Azimuthal7Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxAngle-module.html\">auxAngle</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats-module.html\">pygeodesy.auxilats</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids-module.html#a_b2e2\">a_b2e2()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids-module.html\">pygeodesy.ellipsoids</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#antipode\">antipode()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html\">LatLonEllipsoidalBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html\">AuxAngle</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats.auxAngle-module.html\" onclick=\"show_private();\">pygeodesy.auxilats.auxAngle</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids-module.html#a_b2e22\">a_b2e22()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids-module.html\">pygeodesy.ellipsoids</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.formy-module.html#antipode\">antipode()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.formy-module.html\">pygeodesy.formy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#auxAuthalic\">auxAuthalic()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids-module.html#a_b2e32\">a_b2e32()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids-module.html\">pygeodesy.ellipsoids</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#antipode\">antipode()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">LatLonBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxAngle.AuxBeta-class.html\">AuxBeta</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats.auxAngle-module.html\" onclick=\"show_private();\">pygeodesy.auxilats.auxAngle</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids-module.html#a_b2f\">a_b2f()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids-module.html\">pygeodesy.ellipsoids</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.formy-module.html#antipode_\">antipode_()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.formy-module.html\">pygeodesy.formy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxAngle.AuxChi-class.html\">AuxChi</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats.auxAngle-module.html\" onclick=\"show_private();\">pygeodesy.auxilats.auxAngle</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids-module.html#a_b2f2\">a_b2f2()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids-module.html\">pygeodesy.ellipsoids</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#apply\">apply()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">Vector3dBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#auxConformal\">auxConformal()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids-module.html#a_b2f_\">a_b2f_()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids-module.html\">pygeodesy.ellipsoids</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipses.Ellipse-class.html#apses2\">apses2</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipses.Ellipse-class.html\">Ellipse</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxDLat-module.html\">auxDLat</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats-module.html\">pygeodesy.auxilats</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids-module.html#a_b2n\">a_b2n()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids-module.html\">pygeodesy.ellipsoids</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipses.Ellipse-class.html#arc\">arc()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipses.Ellipse-class.html\">Ellipse</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxDLat.AuxDLat-class.html\">AuxDLat</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats.auxDLat-module.html\" onclick=\"show_private();\">pygeodesy.auxilats.auxDLat</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#a_f\">a_f</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#Arc\">Arc()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html\">_GeodesicLineExact</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxDST-module.html\">auxDST</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats-module.html\">pygeodesy.auxilats</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids-module.html#a_f2b\">a_f2b()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids-module.html\">pygeodesy.ellipsoids</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodsolve.GeodesicLineSolve-class.html#Arc\">Arc()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodsolve.GeodesicLineSolve-class.html\">GeodesicLineSolve</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxDST.AuxDST-class.html\">AuxDST</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats.auxDST-module.html\" onclick=\"show_private();\">pygeodesy.auxilats.auxDST</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\">a_f2Tuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids-module.html\">pygeodesy.ellipsoids</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.consterns.Elliperim-class.html#Arc43\">Arc43()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.consterns.Elliperim-class.html\">Elliperim</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.errors.AuxError-class.html\">AuxError</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.errors-module.html\">pygeodesy.errors</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids-module.html#a_f_2b\">a_f_2b()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids-module.html\">pygeodesy.ellipsoids</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipses.Ellipse-class.html#arc_\">arc_()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipses.Ellipse-class.html\">Ellipse</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#auxGeocentric\">auxGeocentric()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geohash.Geohash-class.html#ab\">ab</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geohash.Geohash-class.html\">Geohash</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html#ArcDirect\">ArcDirect()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html\">GeodesicExact</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats-module.html\">auxilats</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.triaxial5.ConformalSphere-class.html#ab\">ab</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.triaxial5.ConformalSphere-class.html\">ConformalSphere</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb.bases.RhumbBase-class.html#ArcDirect\">ArcDirect()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb.bases.RhumbBase-class.html\">RhumbBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxily-module.html\">auxily</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats-module.html\">pygeodesy.auxilats</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.Circle4Tuple-class.html#abc3\">abc3</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples.Circle4Tuple-class.html\">Circle4Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.solveBase._SolveGDictBase-class.html#ArcDirect\">ArcDirect()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.solveBase._SolveGDictBase-class.html\">_SolveGDictBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#auxIsometric\">auxIsometric()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.Ellipse5Tuple-class.html#abc3\">abc3</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples.Ellipse5Tuple-class.html\">Ellipse5Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html#ArcDirectLine\">ArcDirectLine()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html\">GeodesicExact</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxLat-module.html\">auxLat</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats-module.html\">pygeodesy.auxilats</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#abc3\">abc3</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html\">_UnOrderedTriaxialBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#ArcPosition\">ArcPosition()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html\">_GeodesicLineExact</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxLat.AuxLat-class.html\">AuxLat</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats.auxLat-module.html\" onclick=\"show_private();\">pygeodesy.auxilats.auxLat</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.Ellipse5Tuple-class.html#abc3ordered\">abc3ordered</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples.Ellipse5Tuple-class.html\">Ellipse5Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodsolve.GeodesicLineSolve-class.html#ArcPosition\">ArcPosition()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodsolve.GeodesicLineSolve-class.html\">GeodesicLineSolve</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxAngle.AuxMu-class.html\">AuxMu</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats.auxAngle-module.html\" onclick=\"show_private();\">pygeodesy.auxilats.auxAngle</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"abc.ABCMeta-class.html\">ABCMeta</a></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#ArcPosition\">ArcPosition()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html\">RhumbLineBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#auxParametric\">auxParametric()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utily-module.html#acos1\">acos1()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utily-module.html\">pygeodesy.utily</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipses.Ellipse-class.html#area\">area</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipses.Ellipse-class.html\">Ellipse</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxAngle.AuxPhi-class.html\">AuxPhi</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats.auxAngle-module.html\" onclick=\"show_private();\">pygeodesy.auxilats.auxAngle</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utily-module.html#acre2ha\">acre2ha()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utily-module.html\">pygeodesy.utily</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#area\">area</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#auxRectifying\">auxRectifying()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utily-module.html#acre2m2\">acre2m2()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utily-module.html\">pygeodesy.utily</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.karney.Caps-class.html#AREA\">AREA</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.karney.Caps-class.html\">Caps</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxAngle.AuxTheta-class.html\">AuxTheta</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats.auxAngle-module.html\" onclick=\"show_private();\">pygeodesy.auxilats.auxAngle</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#AddEdge\">AddEdge()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html\">GeodesicAreaExact</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.karney._CapsBase-class.html#AREA\">AREA</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.karney._CapsBase-class.html\">_CapsBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxAngle.AuxXi-class.html\">AuxXi</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats.auxAngle-module.html\" onclick=\"show_private();\">pygeodesy.auxilats.auxAngle</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#AddPoint\">AddPoint()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html\">GeodesicAreaExact</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.bases._OrderedTriaxialBase-class.html#area\">area</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.bases._OrderedTriaxialBase-class.html\">_OrderedTriaxialBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.css.Css-class.html#azi\">azi</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.css.Css-class.html\">Css</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.named.ADict-class.html\">ADict</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.named-module.html\">pygeodesy.named</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#area\">area</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html\">_UnOrderedTriaxialBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#azi0\">azi0</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html\">_GeodesicLineExact</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geohash.Geohash-class.html#adjacent\">adjacent()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geohash.Geohash-class.html\">Geohash</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html#Area\">Area()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html\">GeodesicExact</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#azi0_sincos2\">azi0_sincos2</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html\">_GeodesicLineExact</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.frechet.Frechet-class.html#adjust\">adjust</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.frechet.Frechet-class.html\">Frechet</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodsolve.GeodesicSolve-class.html#Area\">Area()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodsolve.GeodesicSolve-class.html\">GeodesicSolve</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#azi1\">azi1</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html\">_GeodesicLineExact</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.hausdorff.Hausdorff-class.html#adjust\">adjust</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.hausdorff.Hausdorff-class.html\">Hausdorff</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#area0x\">area0x</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html\">GeodesicAreaExact</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodsolve.GeodesicLineSolve-class.html#azi1\">azi1</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodsolve.GeodesicLineSolve-class.html\">GeodesicLineSolve</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.heights._HeightIDW-class.html#adjust\">adjust</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.heights._HeightIDW-class.html\">_HeightIDW</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.bases._OrderedTriaxialBase-class.html#area21k\">area21k</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.bases._OrderedTriaxialBase-class.html\">_OrderedTriaxialBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#azi12\">azi12</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html\">RhumbLineBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.Aer-class.html\">Aer</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples-module.html\">pygeodesy.ltpTuples</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.karney.Area3Tuple-class.html\">Area3Tuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.karney-module.html\">pygeodesy.karney</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb.solve.RhumbLineSolve-class.html#azi12\">azi12</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb.solve.RhumbLineSolve-class.html\">RhumbLineSolve</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.Aer-class.html#aer4\">aer4</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.Aer-class.html\">Aer</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#area_p\">area_p()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html\">_UnOrderedTriaxialBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#azi12_sincos2\">azi12_sincos2</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html\">RhumbLineBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.Ned-class.html#aer4\">aer4</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.Ned-class.html\">Ned</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#areaKT\">areaKT()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html\">_UnOrderedTriaxialBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb.solve.RhumbLineSolve-class.html#azi12_sincos2\">azi12_sincos2</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb.solve.RhumbLineSolve-class.html\">RhumbLineSolve</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.XyzLocal-class.html#aer4\">aer4</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.XyzLocal-class.html\">XyzLocal</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.functions-module.html#areaof\">areaof()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.functions-module.html\" onclick=\"show_private();\">pygeodesy.deprecated.functions</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#azi1_sincos2\">azi1_sincos2</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html\">_GeodesicLineExact</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.Aer4Tuple-class.html\">Aer4Tuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples-module.html\">pygeodesy.ltpTuples</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalExact-module.html#areaOf\">areaOf()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalExact-module.html\">pygeodesy.ellipsoidalExact</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodsolve.GeodesicLineSolve-class.html#azi1_sincos2\">azi1_sincos2</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodsolve.GeodesicLineSolve-class.html\">GeodesicLineSolve</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utily-module.html#agdf\">agdf()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utily-module.html\">pygeodesy.utily</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalGeodSolve-module.html#areaOf\">areaOf()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalGeodSolve-module.html\">pygeodesy.ellipsoidalGeodSolve</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.karney.Caps-class.html#AZIMUTH\">AZIMUTH</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.karney.Caps-class.html\">Caps</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.consterns.Elliperim-class.html#AGM\">AGM()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.consterns.Elliperim-class.html\">Elliperim</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalKarney-module.html#areaOf\">areaOf()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalKarney-module.html\">pygeodesy.ellipsoidalKarney</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.karney._CapsBase-class.html#AZIMUTH\">AZIMUTH</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.karney._CapsBase-class.html\">_CapsBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb.bases-module.html#Al\">Al</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb.bases-module.html\">pygeodesy.rhumb.bases</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalVincenty-module.html#areaOf\">areaOf()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalVincenty-module.html\">pygeodesy.ellipsoidalVincenty</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.Aer-class.html#azimuth\">azimuth</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.Aer-class.html\">Aer</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.albers-module.html\">albers</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.points-module.html#areaOf\">areaOf()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.points-module.html\">pygeodesy.points</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.Local9Tuple-class.html#azimuth\">azimuth</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.Local9Tuple-class.html\">Local9Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.albers.Albers7Tuple-class.html\">Albers7Tuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.albers-module.html\">pygeodesy.albers</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.sphericalNvector-module.html#areaOf\">areaOf()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.sphericalNvector-module.html\">pygeodesy.sphericalNvector</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.Ned-class.html#azimuth\">azimuth</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.Ned-class.html\">Ned</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.albers.AlbersEqualArea-class.html\">AlbersEqualArea</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.albers-module.html\">pygeodesy.albers</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.sphericalTrigonometry-module.html#areaOf\">areaOf()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.sphericalTrigonometry-module.html\">pygeodesy.sphericalTrigonometry</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.XyzLocal-class.html#azimuth\">azimuth</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.XyzLocal-class.html\">XyzLocal</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.albers.AlbersEqualArea2-class.html\">AlbersEqualArea2</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.albers-module.html\">pygeodesy.albers</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#areaRG\">areaRG</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html\">_UnOrderedTriaxialBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.units.Azimuth-class.html\">Azimuth</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.units-module.html\">pygeodesy.units</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.albers.AlbersEqualArea4-class.html\">AlbersEqualArea4</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.albers-module.html\">pygeodesy.albers</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb.aux_.RhumbAux-class.html#areaux\">areaux()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb.aux_.RhumbAux-class.html\">RhumbAux</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.karney.Caps-class.html#AZIMUTH_DISTANCE\">AZIMUTH_DISTANCE</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.karney.Caps-class.html\">Caps</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.albers.AlbersEqualAreaCylindrical-class.html\">AlbersEqualAreaCylindrical</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.albers-module.html\">pygeodesy.albers</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#areax\">areax</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.karney.Caps-class.html#AZIMUTH_DISTANCE_AREA\">AZIMUTH_DISTANCE_AREA</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.karney.Caps-class.html\">Caps</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.albers.AlbersEqualAreaNorth-class.html\">AlbersEqualAreaNorth</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.albers-module.html\">pygeodesy.albers</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums.Fsum-class.html#as_integer_ratio\">as_integer_ratio()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums.Fsum-class.html\">Fsum</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.azimuthal-module.html\">azimuthal</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.albers.AlbersEqualAreaSouth-class.html\">AlbersEqualAreaSouth</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.albers-module.html\">pygeodesy.albers</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums.Fsum2Tuple-class.html#as_integer_ratio\">as_integer_ratio()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\">Fsum2Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.azimuthal.Azimuthal7Tuple-class.html\">Azimuthal7Tuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.azimuthal-module.html\">pygeodesy.azimuthal</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.albers.AlbersError-class.html\">AlbersError</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.albers-module.html\">pygeodesy.albers</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums.Fsum-class.html#as_iscalar\">as_iscalar</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums.Fsum-class.html\">Fsum</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.azimuthal.AzimuthalError-class.html\">AzimuthalError</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.azimuthal-module.html\">pygeodesy.azimuthal</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.karney.Caps-class.html#ALL\">ALL</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.karney.Caps-class.html\">Caps</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utily-module.html#asin1\">asin1()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utily-module.html\">pygeodesy.utily</a>)</span></td>\n<td width=\"33%\" class=\"link-index\">&nbsp;</td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.karney._CapsBase-class.html#ALL\">ALL</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.karney._CapsBase-class.html\">_CapsBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utily-module.html#atan1\">atan1()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utily-module.html\">pygeodesy.utily</a>)</span></td>\n<td width=\"33%\" class=\"link-index\">&nbsp;</td>\n</tr>\n</table>\n</td></tr>\n</table>\n<br /><br /><!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th bgcolor=\"#70b0f0\" class=\"navbar-select\"\n          >&nbsp;&nbsp;&nbsp;Indices&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:16 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/identifier-index-B.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>Identifier Index</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th bgcolor=\"#70b0f0\" class=\"navbar-select\"\n          >&nbsp;&nbsp;&nbsp;Indices&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">&nbsp;</td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"identifier-index-B.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<center><b>[\n <a href=\"identifier-index.html\">Identifiers</a>\n| <a href=\"term-index.html\">Term Definitions</a>\n]</b></center><br />\n<table border=\"0\" width=\"100%\">\n<tr valign=\"bottom\"><td>\n<h1 class=\"epydoc\">Identifier Index</h1>\n</td><td>\n[\n <a href=\"identifier-index-A.html\">A</a>\n <a href=\"identifier-index-B.html\">B</a>\n <a href=\"identifier-index-C.html\">C</a>\n <a href=\"identifier-index-D.html\">D</a>\n <a href=\"identifier-index-E.html\">E</a>\n <a href=\"identifier-index-F.html\">F</a>\n <a href=\"identifier-index-G.html\">G</a>\n <a href=\"identifier-index-H.html\">H</a>\n <a href=\"identifier-index-I.html\">I</a>\n <a href=\"identifier-index-J.html\">J</a>\n <a href=\"identifier-index-K.html\">K</a>\n <a href=\"identifier-index-L.html\">L</a>\n <a href=\"identifier-index-M.html\">M</a>\n <a href=\"identifier-index-N.html\">N</a>\n <a href=\"identifier-index-O.html\">O</a>\n <a href=\"identifier-index-P.html\">P</a>\n <a href=\"identifier-index-Q.html\">Q</a>\n <a href=\"identifier-index-R.html\">R</a>\n <a href=\"identifier-index-S.html\">S</a>\n <a href=\"identifier-index-T.html\">T</a>\n <a href=\"identifier-index-U.html\">U</a>\n <a href=\"identifier-index-V.html\">V</a>\n <a href=\"identifier-index-W.html\">W</a>\n <a href=\"identifier-index-X.html\">X</a>\n <a href=\"identifier-index-Y.html\">Y</a>\n <a href=\"identifier-index-Z.html\">Z</a>\n <a href=\"identifier-index-_.html\">_</a>\n]\n</td></table>\n<table border=\"0\" width=\"100%\">\n<tr valign=\"top\"><td valign=\"top\" width=\"1%\"><h2 class=\"epydoc\"><a name=\"B\">B</a></h2></td>\n<td valign=\"top\">\n<table class=\"link-index\" width=\"100%\" border=\"1\">\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxLat.AuxLat-class.html#b\">b</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats.auxLat.AuxLat-class.html\">AuxLat</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.angles.Ang-class.html#base\">base()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.angles.Ang-class.html\">Ang</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.heights._HeightIDW-class.html#beta\">beta</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.heights._HeightIDW-class.html\">_HeightIDW</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipses.Ellipse-class.html#b\">b</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipses.Ellipse-class.html\">Ellipse</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.bases-module.html\">bases</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated-module.html\">pygeodesy.deprecated</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#BetaKs\">BetaKs</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#b\">b</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb.bases-module.html\">bases</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb-module.html\">pygeodesy.rhumb</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.triaxial5.BetaOmega2Tuple-class.html\">BetaOmega2Tuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.triaxial5-module.html\" onclick=\"show_private();\">pygeodesy.triaxials.triaxial5</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html#b\">b</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\">a_f2Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.bases-module.html\">bases</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials-module.html\">pygeodesy.triaxials</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.triaxial5.BetaOmega3Tuple-class.html\">BetaOmega3Tuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.triaxial5-module.html\" onclick=\"show_private();\">pygeodesy.triaxials.triaxial5</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geod3solve._Geodesic3SolveBase-class.html#b\">b</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geod3solve._Geodesic3SolveBase-class.html\">_Geodesic3SolveBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.basics-module.html\">basics</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.triaxial3.BetOmgAlp5Tuple-class.html\">BetOmgAlp5Tuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.triaxial3-module.html\" onclick=\"show_private();\">pygeodesy.triaxials.triaxial3</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html#b\">b</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html\">GeodesicExact</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.triaxial5.ConformalSphere-class.html#bc\">bc</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.triaxial5.ConformalSphere-class.html\">ConformalSphere</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.conformal3.BetOmgGam5Tuple-class.html\">BetOmgGam5Tuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.conformal3-module.html\" onclick=\"show_private();\">pygeodesy.triaxials.conformal3</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb.bases.RhumbBase-class.html#b\">b</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb.bases.RhumbBase-class.html\">RhumbBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.Ned-class.html#bearing\">bearing</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.Ned-class.html\">Ned</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.units.Bool-class.html\">Bool</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.units-module.html\">pygeodesy.units</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#b\">b</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.solveBase._SolveCapsBase-class.html\">_SolveCapsBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.units.Bearing-class.html\">Bearing</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.units-module.html\">pygeodesy.units</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.booleans.BooleanFHP-class.html\">BooleanFHP</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.booleans-module.html\">pygeodesy.booleans</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#b\">b</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html\">_UnOrderedTriaxialBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.formy-module.html#bearing\">bearing()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.formy-module.html\">pygeodesy.formy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.booleans.BooleanGH-class.html\">BooleanGH</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.booleans-module.html\">pygeodesy.booleans</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#b2\">b2</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector3d.Vector3d-class.html#bearing\">bearing()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector3d.Vector3d-class.html\">Vector3d</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.booleans-module.html\">booleans</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#b2\">b2</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html\">_UnOrderedTriaxialBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.Bearing2Tuple-class.html\">Bearing2Tuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples-module.html\">pygeodesy.namedTuples</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#bools\">bools()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">Vector3dBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#b2_a\">b2_a</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.units.Bearing_-class.html\">Bearing_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.units-module.html\">pygeodesy.units</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.functions-module.html#bounds\">bounds()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.functions-module.html\" onclick=\"show_private();\">pygeodesy.deprecated.functions</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#b2_a2\">b2_a2</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.formy-module.html#bearing_\">bearing_()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.formy-module.html\">pygeodesy.formy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geohash.Geohash-class.html#bounds\">bounds()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geohash.Geohash-class.html\">Geohash</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#b_a\">b_a</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.dms-module.html#bearingDMS\">bearingDMS()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.dms-module.html\">pygeodesy.dms</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geohash-module.html#bounds\">bounds()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geohash-module.html\">pygeodesy.geohash</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids-module.html#b_f2a\">b_f2a()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids-module.html\">pygeodesy.ellipsoids</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalKarney.LatLon-class.html#bearingTo\">bearingTo()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalKarney.LatLon-class.html\">LatLon</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#bounds\">bounds()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">LatLonBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids-module.html#b_f_2a\">b_f_2a()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids-module.html\">pygeodesy.ellipsoids</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalVincenty.LatLon-class.html#bearingTo\">bearingTo()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalVincenty.LatLon-class.html\">LatLon</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.Bounds2Tuple-class.html\">Bounds2Tuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples-module.html\">pygeodesy.namedTuples</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.epsg.Epsg-class.html#band\">band</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.epsg.Epsg-class.html\">Epsg</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.sphericalNvector.LatLon-class.html#bearingTo\">bearingTo()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.sphericalNvector.LatLon-class.html\">LatLon</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.Bounds4Tuple-class.html\">Bounds4Tuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples-module.html\">pygeodesy.namedTuples</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.mgrs.Mgrs-class.html#band\">band</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.mgrs.Mgrs-class.html\">Mgrs</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html#bearingTo\">bearingTo()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html\">LatLon</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#boundsOf\">boundsOf()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">LatLonBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.units.Band-class.html\">Band</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.units-module.html\">pygeodesy.units</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#bearingTo2\">bearingTo2()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html\">LatLonEllipsoidalBaseDI</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.points-module.html#boundsOf\">boundsOf()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.points-module.html\">pygeodesy.points</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ups.Ups-class.html#band\">band</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ups.Ups-class.html\">Ups</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html#bearingTo2\">bearingTo2()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html\">LatLonSphericalBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fmath-module.html#bqrt\">bqrt()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fmath-module.html\">pygeodesy.fmath</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utm.Utm-class.html#band\">band</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utm.Utm-class.html\">Utm</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltp.ChLV-class.html#Bern\">Bern</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltp.ChLV-class.html\">ChLV</a>)</span></td>\n<td width=\"33%\" class=\"link-index\">&nbsp;</td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.mgrs.Mgrs-class.html#bandLatitude\">bandLatitude</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.mgrs.Mgrs-class.html\">Mgrs</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geod3solve.GeodesicLine3Solve-class.html#bet1\">bet1</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geod3solve.GeodesicLine3Solve-class.html\">GeodesicLine3Solve</a>)</span></td>\n<td width=\"33%\" class=\"link-index\">&nbsp;</td>\n</tr>\n</table>\n</td></tr>\n</table>\n<br /><br /><!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th bgcolor=\"#70b0f0\" class=\"navbar-select\"\n          >&nbsp;&nbsp;&nbsp;Indices&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:16 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/identifier-index-C.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>Identifier Index</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th bgcolor=\"#70b0f0\" class=\"navbar-select\"\n          >&nbsp;&nbsp;&nbsp;Indices&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">&nbsp;</td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"identifier-index-C.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<center><b>[\n <a href=\"identifier-index.html\">Identifiers</a>\n| <a href=\"term-index.html\">Term Definitions</a>\n]</b></center><br />\n<table border=\"0\" width=\"100%\">\n<tr valign=\"bottom\"><td>\n<h1 class=\"epydoc\">Identifier Index</h1>\n</td><td>\n[\n <a href=\"identifier-index-A.html\">A</a>\n <a href=\"identifier-index-B.html\">B</a>\n <a href=\"identifier-index-C.html\">C</a>\n <a href=\"identifier-index-D.html\">D</a>\n <a href=\"identifier-index-E.html\">E</a>\n <a href=\"identifier-index-F.html\">F</a>\n <a href=\"identifier-index-G.html\">G</a>\n <a href=\"identifier-index-H.html\">H</a>\n <a href=\"identifier-index-I.html\">I</a>\n <a href=\"identifier-index-J.html\">J</a>\n <a href=\"identifier-index-K.html\">K</a>\n <a href=\"identifier-index-L.html\">L</a>\n <a href=\"identifier-index-M.html\">M</a>\n <a href=\"identifier-index-N.html\">N</a>\n <a href=\"identifier-index-O.html\">O</a>\n <a href=\"identifier-index-P.html\">P</a>\n <a href=\"identifier-index-Q.html\">Q</a>\n <a href=\"identifier-index-R.html\">R</a>\n <a href=\"identifier-index-S.html\">S</a>\n <a href=\"identifier-index-T.html\">T</a>\n <a href=\"identifier-index-U.html\">U</a>\n <a href=\"identifier-index-V.html\">V</a>\n <a href=\"identifier-index-W.html\">W</a>\n <a href=\"identifier-index-X.html\">X</a>\n <a href=\"identifier-index-Y.html\">Y</a>\n <a href=\"identifier-index-Z.html\">Z</a>\n <a href=\"identifier-index-_.html\">_</a>\n]\n</td></table>\n<table border=\"0\" width=\"100%\">\n<tr valign=\"top\"><td valign=\"top\" width=\"1%\"><h2 class=\"epydoc\"><a name=\"C\">C</a></h2></td>\n<td valign=\"top\">\n<table class=\"link-index\" width=\"100%\" border=\"1\">\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.angles.Ang-class.html#c\">c</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.angles.Ang-class.html\">Ang</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector2d.Circum3Tuple-class.html\">Circum3Tuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector2d-module.html\">pygeodesy.vector2d</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.conformal3.Conformal3-class.html\">Conformal3</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.conformal3-module.html\" onclick=\"show_private();\">pygeodesy.triaxials.conformal3</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipses.Ellipse-class.html#c\">c</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipses.Ellipse-class.html\">Ellipse</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector2d-module.html#circum4\">circum4()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector2d-module.html\">pygeodesy.vector2d</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.conformal3.Conformal3B-class.html\">Conformal3B</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.conformal3-module.html\" onclick=\"show_private();\">pygeodesy.triaxials.conformal3</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#c\">c</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#circum4_\">circum4_()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">LatLonBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.conformal3.Conformal3Sphere-class.html\">Conformal3Sphere</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.conformal3-module.html\" onclick=\"show_private();\">pygeodesy.triaxials.conformal3</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geod3solve._Geodesic3SolveBase-class.html#c\">c</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geod3solve._Geodesic3SolveBase-class.html\">_Geodesic3SolveBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector2d-module.html#circum4_\">circum4_()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector2d-module.html\">pygeodesy.vector2d</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.bases.Conformal5Tuple-class.html\">Conformal5Tuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.bases-module.html\" onclick=\"show_private();\">pygeodesy.triaxials.bases</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#c\">c</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html\">_UnOrderedTriaxialBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector3d.Vector3d-class.html#circum4_\">circum4_()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector3d.Vector3d-class.html\">Vector3d</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.triaxial5.ConformalSphere-class.html\">ConformalSphere</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.triaxial5-module.html\" onclick=\"show_private();\">pygeodesy.triaxials.triaxial5</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.conformal3-module.html#c\">c</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.conformal3-module.html\">pygeodesy.triaxials.conformal3</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector2d.Circum4Tuple-class.html\">Circum4Tuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector2d-module.html\">pygeodesy.vector2d</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.lcc.Conic-class.html\">Conic</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.lcc-module.html\">pygeodesy.lcc</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#c2\">c2</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.elliptic.Elliptic-class.html#cK\">cK</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.elliptic.Elliptic-class.html\">Elliptic</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.lcc.Lcc-class.html#conic\">conic</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.lcc.Lcc-class.html\">Lcc</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#c2\">c2</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html\">_UnOrderedTriaxialBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.elliptic.Elliptic-class.html#cKE\">cKE</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.elliptic.Elliptic-class.html\">Elliptic</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy-module.html#Conics\">Conics</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#c2x\">c2x</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.classes-module.html\">classes</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated-module.html\">pygeodesy.deprecated</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.lcc-module.html#Conics\">Conics</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.lcc-module.html\">pygeodesy.lcc</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html#c2x\">c2x</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html\">GeodesicExact</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.named._Named-class.html\">_Named</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.constants-module.html\">constants</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html#C4f\">C4f()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html\">GeodesicExact</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.named-module.html#classname\">classname()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.named-module.html\">pygeodesy.named</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.consterns-module.html\">consterns</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated-module.html\">pygeodesy.deprecated</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html#C4Order\">C4Order</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html\">GeodesicExact</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.named._Named-class.html\">_Named</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#convergence\">convergence</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html\">LatLonEllipsoidalBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html#C4order\">C4order</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html\">GeodesicExact</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.named-module.html#classnaming\">classnaming()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.named-module.html\">pygeodesy.named</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html#convergence\">convergence</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html\">UtmUpsBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.named-module.html#callername\">callername()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.named-module.html\">pygeodesy.named</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.XyzLocal-class.html#classof\">classof()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.XyzLocal-class.html\">XyzLocal</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxLat.AuxLat-class.html#convert\">convert()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats.auxLat.AuxLat-class.html\">AuxLat</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.karney.Caps-class.html\">Caps</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.karney-module.html\">pygeodesy.karney</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.named._Named-class.html#classof\">classof()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.named._Named-class.html\">_Named</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#convertDatum\">convertDatum()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.cartesianBase.CartesianBase-class.html\">CartesianBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.karney._CapsBase-class.html#caps\">caps</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.karney._CapsBase-class.html\">_CapsBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geohash.Geohashed-class.html#clear\">clear()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geohash.Geohashed-class.html\">Geohashed</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ecef.Ecef9Tuple-class.html#convertDatum\">convertDatum()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ecef.Ecef9Tuple-class.html\">Ecef9Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.karney._CapsBase-class.html#caps_\">caps_()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.karney._CapsBase-class.html\">_CapsBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.functions-module.html#clipCS3\">clipCS3()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.functions-module.html\" onclick=\"show_private();\">pygeodesy.deprecated.functions</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#convertDatum\">convertDatum()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html\">LatLonEllipsoidalBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.angles.Ang-class.html#cardinal\">cardinal()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.angles.Ang-class.html\">Ang</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.classes.ClipCS3Tuple-class.html\">ClipCS3Tuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.classes-module.html\" onclick=\"show_private();\">pygeodesy.deprecated.classes</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.lcc.Conic-class.html#convertDatum\">convertDatum()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.lcc.Conic-class.html\">Conic</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalExact.Cartesian-class.html\">Cartesian</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalExact-module.html\">pygeodesy.ellipsoidalExact</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.clipy-module.html#clipCS4\">clipCS4()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.clipy-module.html\">pygeodesy.clipy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#convertRefFrame\">convertRefFrame()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html\">CartesianEllipsoidalBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalGeodSolve.Cartesian-class.html\">Cartesian</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalGeodSolve-module.html\">pygeodesy.ellipsoidalGeodSolve</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.clipy.ClipCS4Tuple-class.html\">ClipCS4Tuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.clipy-module.html\">pygeodesy.clipy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#convertRefFrame\">convertRefFrame()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html\">LatLonEllipsoidalBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalKarney.Cartesian-class.html\">Cartesian</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalKarney-module.html\">pygeodesy.ellipsoidalKarney</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.dms-module.html#clipDegrees\">clipDegrees()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.dms-module.html\">pygeodesy.dms</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.iters._BaseIter-class.html#copies\">copies</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.iters._BaseIter-class.html\">_BaseIter</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalNvector.Cartesian-class.html\">Cartesian</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalNvector-module.html\">pygeodesy.ellipsoidalNvector</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.functions-module.html#clipDMS\">clipDMS()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.functions-module.html\" onclick=\"show_private();\">pygeodesy.deprecated.functions</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.angles.Ang-class.html#copy\">copy()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.angles.Ang-class.html\">Ang</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalVincenty.Cartesian-class.html\">Cartesian</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalVincenty-module.html\">pygeodesy.ellipsoidalVincenty</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.errors.ClipError-class.html\">ClipError</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.errors-module.html\">pygeodesy.errors</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ecef.EcefMatrix-class.html#copy\">copy()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ecef.EcefMatrix-class.html\">EcefMatrix</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.sphericalNvector.Cartesian-class.html\">Cartesian</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.sphericalNvector-module.html\">pygeodesy.sphericalNvector</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.clipy-module.html#clipFHP4\">clipFHP4()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.clipy-module.html\">pygeodesy.clipy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fstats._FstatsNamed-class.html#copy\">copy()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fstats._FstatsNamed-class.html\">_FstatsNamed</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.sphericalTrigonometry.Cartesian-class.html\">Cartesian</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.sphericalTrigonometry-module.html\">pygeodesy.sphericalTrigonometry</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.clipy.ClipFHP4Tuple-class.html\">ClipFHP4Tuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.clipy-module.html\">pygeodesy.clipy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums.Fsum-class.html#copy\">copy()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums.Fsum-class.html\">Fsum</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.triaxial3.Cartesian5Tuple-class.html\">Cartesian5Tuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.triaxial3-module.html\" onclick=\"show_private();\">pygeodesy.triaxials.triaxial3</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.clipy-module.html#clipGH4\">clipGH4()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.clipy-module.html\">pygeodesy.clipy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.named._Named-class.html#copy\">copy()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.named._Named-class.html\">_Named</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.cartesianBase-module.html\">cartesianBase</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.clipy.ClipGH4Tuple-class.html\">ClipGH4Tuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.clipy-module.html\">pygeodesy.clipy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.points._Basequence-class.html#copy\">copy()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.points._Basequence-class.html\">_Basequence</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html\">CartesianBase</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.cartesianBase-module.html\">pygeodesy.cartesianBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.booleans._LatLonBool-class.html#clipid\">clipid</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.booleans._LatLonBool-class.html\">_LatLonBool</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#copyquadrant\">copyquadrant()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html\">AuxAngle</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html\">CartesianEllipsoidalBase</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalBase-module.html\">pygeodesy.ellipsoidalBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#clipid\">clipid</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">LatLonBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.functions-module.html#copysign\">copysign()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.functions-module.html\" onclick=\"show_private();\">pygeodesy.deprecated.functions</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.sphericalBase.CartesianSphericalBase-class.html\">CartesianSphericalBase</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.sphericalBase-module.html\">pygeodesy.sphericalBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.booleans._CompositeBase-class.html#clipids\">clipids()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.booleans._CompositeBase-class.html\">_CompositeBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.basics-module.html#copysign0\">copysign0()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.basics-module.html\">pygeodesy.basics</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#cassini\">cassini()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.cartesianBase.CartesianBase-class.html\">CartesianBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.clipy-module.html#clipLB6\">clipLB6()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.clipy-module.html\">pygeodesy.clipy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.basics-module.html#copytype\">copytype()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.basics-module.html\">pygeodesy.basics</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.resections-module.html#cassini\">cassini()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.resections-module.html\">pygeodesy.resections</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.clipy.ClipLB6Tuple-class.html\">ClipLB6Tuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.clipy-module.html\">pygeodesy.clipy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.functions-module.html#cosineAndoyerLambert\">cosineAndoyerLambert()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.functions-module.html\" onclick=\"show_private();\">pygeodesy.deprecated.functions</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.css.CassiniSoldner-class.html\">CassiniSoldner</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.css-module.html\">pygeodesy.css</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.dms-module.html#clipRadians\">clipRadians()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.dms-module.html\">pygeodesy.dms</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.functions-module.html#cosineAndoyerLambert_\">cosineAndoyerLambert_()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.functions-module.html\" onclick=\"show_private();\">pygeodesy.deprecated.functions</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fmath-module.html#cbrt\">cbrt()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fmath-module.html\">pygeodesy.fmath</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.basics-module.html#clips\">clips()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.basics-module.html\">pygeodesy.basics</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#cosineAndoyerLambertTo\">cosineAndoyerLambertTo()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">LatLonBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fmath-module.html#cbrt2\">cbrt2()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fmath-module.html\">pygeodesy.fmath</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.clipy-module.html#clipSH\">clipSH()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.clipy-module.html\">pygeodesy.clipy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.functions-module.html#cosineForsytheAndoyerLambert\">cosineForsytheAndoyerLambert()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.functions-module.html\" onclick=\"show_private();\">pygeodesy.deprecated.functions</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.elliptic.Elliptic-class.html#cD\">cD</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.elliptic.Elliptic-class.html\">Elliptic</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.clipy-module.html#clipSH3\">clipSH3()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.clipy-module.html\">pygeodesy.clipy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.functions-module.html#cosineForsytheAndoyerLambert_\">cosineForsytheAndoyerLambert_()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.functions-module.html\" onclick=\"show_private();\">pygeodesy.deprecated.functions</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.elliptic.Elliptic-class.html#cE\">cE</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.elliptic.Elliptic-class.html\">Elliptic</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.clipy.ClipSH3Tuple-class.html\">ClipSH3Tuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.clipy-module.html\">pygeodesy.clipy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#cosineForsytheAndoyerLambertTo\">cosineForsytheAndoyerLambertTo()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">LatLonBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums.Fsum-class.html#ceil\">ceil</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums.Fsum-class.html\">Fsum</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.functions-module.html#clipStr\">clipStr()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.functions-module.html\" onclick=\"show_private();\">pygeodesy.deprecated.functions</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.formy-module.html#cosineLaw\">cosineLaw()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.formy-module.html\">pygeodesy.formy</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geoids._GeoidBase-class.html#center\">center()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geoids._GeoidBase-class.html\">_GeoidBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.clipy-module.html\">clipy</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.formy-module.html#cosineLaw_\">cosineLaw_()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.formy-module.html\">pygeodesy.formy</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.points-module.html#centroidOf\">centroidOf()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.points-module.html\">pygeodesy.points</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geoids._GeoidBase-class.html#close\">close()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geoids._GeoidBase-class.html\">_GeoidBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#cosineLawTo\">cosineLawTo()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">LatLonBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.elliptic.Elliptic-class.html#cG\">cG</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.elliptic.Elliptic-class.html\">Elliptic</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geoids._GeoidBase-class.html#closed\">closed</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geoids._GeoidBase-class.html\">_GeoidBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utily-module.html#cot\">cot()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utily-module.html\">pygeodesy.utily</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.elliptic.Elliptic-class.html#cH\">cH</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.elliptic.Elliptic-class.html\">Elliptic</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesici.Intersectool-class.html#Closest\">Closest()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesici.Intersectool-class.html\">Intersectool</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utily-module.html#cot_\">cot_()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utily-module.html\">pygeodesy.utily</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utily-module.html#chain2m\">chain2m()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utily-module.html\">pygeodesy.utily</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesici.Intersector-class.html#Closest\">Closest()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesici.Intersector-class.html\">Intersector</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utily-module.html#cotd\">cotd()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utily-module.html\">pygeodesy.utily</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltp.ChLV-class.html\">ChLV</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltp-module.html\">pygeodesy.ltp</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesici.Intersectool-class.html#Closest5\">Closest5()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesici.Intersectool-class.html\">Intersectool</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utily-module.html#cotd_\">cotd_()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utily-module.html\">pygeodesy.utily</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.ChLV9Tuple-class.html\">ChLV9Tuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples-module.html\">pygeodesy.ltpTuples</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesici.Intersector-class.html#Closest5\">Closest5()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesici.Intersector-class.html\">Intersector</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.points.LatLon2psxy-class.html#count\">count()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.points.LatLon2psxy-class.html\">LatLon2psxy</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltp.ChLVa-class.html\">ChLVa</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltp-module.html\">pygeodesy.ltp</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#collins\">collins()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.cartesianBase.CartesianBase-class.html\">CartesianBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.points._Array2LatLon-class.html#count\">count()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.points._Array2LatLon-class.html\">_Array2LatLon</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltp.ChLVe-class.html\">ChLVe</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltp-module.html\">pygeodesy.ltp</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.functions-module.html#collins\">collins()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.functions-module.html\" onclick=\"show_private();\">pygeodesy.deprecated.functions</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxDLat.AuxDLat-class.html#CParametric\">CParametric()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats.auxDLat.AuxDLat-class.html\">AuxDLat</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.ChLVEN2Tuple-class.html\">ChLVEN2Tuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples-module.html\">pygeodesy.ltpTuples</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#collins5\">collins5()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.cartesianBase.CartesianBase-class.html\">CartesianBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.elliptic.Elliptic-class.html#cPi\">cPi</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.elliptic.Elliptic-class.html\">Elliptic</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.ChLVYX2Tuple-class.html\">ChLVYX2Tuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples-module.html\">pygeodesy.ltpTuples</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.resections-module.html#collins5\">collins5()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.resections-module.html\">pygeodesy.resections</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxDLat.AuxDLat-class.html#CRectifying\">CRectifying()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats.auxDLat.AuxDLat-class.html\">AuxDLat</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.ChLVyx2Tuple-class.html\">ChLVyx2Tuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples-module.html\">pygeodesy.ltpTuples</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.resections.Collins5Tuple-class.html\">Collins5Tuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.resections-module.html\">pygeodesy.resections</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geoids._GeoidBase-class.html#cropped\">cropped</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geoids._GeoidBase-class.html\">_GeoidBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.formy-module.html#chord2angle\">chord2angle()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.formy-module.html\">pygeodesy.formy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ecef.EcefMatrix-class.html#column\">column()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ecef.EcefMatrix-class.html\">EcefMatrix</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#cross\">cross()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">Vector3dBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#chordTo\">chordTo()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">LatLonBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.formy-module.html#compassAngle\">compassAngle()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.formy-module.html\">pygeodesy.formy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.errors.CrossError-class.html\">CrossError</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.errors-module.html\">pygeodesy.errors</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#circin6\">circin6()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">LatLonBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#compassAngle\">compassAngle()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">LatLonBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#crosserrors\">crosserrors</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">Vector3dBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector2d-module.html#circin6\">circin6()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector2d-module.html\">pygeodesy.vector2d</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#compassAngleTo\">compassAngleTo()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">LatLonBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.errors-module.html#crosserrors\">crosserrors()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.errors-module.html\">pygeodesy.errors</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector3d.Vector3d-class.html#circin6\">circin6()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector3d.Vector3d-class.html\">Vector3d</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.dms-module.html#compassDMS\">compassDMS()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.dms-module.html\">pygeodesy.dms</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html#crossingParallels\">crossingParallels()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html\">LatLon</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector2d.Circin6Tuple-class.html\">Circin6Tuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector2d-module.html\">pygeodesy.vector2d</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.dms-module.html#compassPoint\">compassPoint()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.dms-module.html\">pygeodesy.dms</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.sphericalNvector.LatLon-class.html#crossTrackDistanceTo\">crossTrackDistanceTo()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.sphericalNvector.LatLon-class.html\">LatLon</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#circle4\">circle4()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#Compute\">Compute()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html\">GeodesicAreaExact</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html#crossTrackDistanceTo\">crossTrackDistanceTo()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html\">LatLon</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utily-module.html#circle4\">circle4()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utily-module.html\">pygeodesy.utily</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.bases.LLK-class.html#CONFORMAL\">CONFORMAL</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.bases.LLK-class.html\">LLK</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.css.Css-class.html#cs0\">cs0</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.css.Css-class.html\">Css</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.Circle4Tuple-class.html\">Circle4Tuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples-module.html\">pygeodesy.namedTuples</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.triaxial5.Conformal-class.html\">Conformal</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.triaxial5-module.html\" onclick=\"show_private();\">pygeodesy.triaxials.triaxial5</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.css-module.html\">css</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#circum3\">circum3()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">LatLonBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxLat.AuxLat-class.html#Conformal\">Conformal()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats.auxLat.AuxLat-class.html\">AuxLat</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.css.Css-class.html\">Css</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.css-module.html\">pygeodesy.css</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector2d-module.html#circum3\">circum3()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector2d-module.html\">pygeodesy.vector2d</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.triaxial5.Conformal2Tuple-class.html\">Conformal2Tuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.triaxial5-module.html\" onclick=\"show_private();\">pygeodesy.triaxials.triaxial5</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.css.CSSError-class.html\">CSSError</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.css-module.html\">pygeodesy.css</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector3d.Vector3d-class.html#circum3\">circum3()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector3d.Vector3d-class.html\">Vector3d</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.conformal3-module.html\">conformal3</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials-module.html\">pygeodesy.triaxials</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Curvature2Tuple-class.html\">Curvature2Tuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids-module.html\">pygeodesy.ellipsoids</a>)</span></td>\n</tr>\n</table>\n</td></tr>\n</table>\n<br /><br /><!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th bgcolor=\"#70b0f0\" class=\"navbar-select\"\n          >&nbsp;&nbsp;&nbsp;Indices&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:16 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/identifier-index-D.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>Identifier Index</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th bgcolor=\"#70b0f0\" class=\"navbar-select\"\n          >&nbsp;&nbsp;&nbsp;Indices&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">&nbsp;</td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"identifier-index-D.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<center><b>[\n <a href=\"identifier-index.html\">Identifiers</a>\n| <a href=\"term-index.html\">Term Definitions</a>\n]</b></center><br />\n<table border=\"0\" width=\"100%\">\n<tr valign=\"bottom\"><td>\n<h1 class=\"epydoc\">Identifier Index</h1>\n</td><td>\n[\n <a href=\"identifier-index-A.html\">A</a>\n <a href=\"identifier-index-B.html\">B</a>\n <a href=\"identifier-index-C.html\">C</a>\n <a href=\"identifier-index-D.html\">D</a>\n <a href=\"identifier-index-E.html\">E</a>\n <a href=\"identifier-index-F.html\">F</a>\n <a href=\"identifier-index-G.html\">G</a>\n <a href=\"identifier-index-H.html\">H</a>\n <a href=\"identifier-index-I.html\">I</a>\n <a href=\"identifier-index-J.html\">J</a>\n <a href=\"identifier-index-K.html\">K</a>\n <a href=\"identifier-index-L.html\">L</a>\n <a href=\"identifier-index-M.html\">M</a>\n <a href=\"identifier-index-N.html\">N</a>\n <a href=\"identifier-index-O.html\">O</a>\n <a href=\"identifier-index-P.html\">P</a>\n <a href=\"identifier-index-Q.html\">Q</a>\n <a href=\"identifier-index-R.html\">R</a>\n <a href=\"identifier-index-S.html\">S</a>\n <a href=\"identifier-index-T.html\">T</a>\n <a href=\"identifier-index-U.html\">U</a>\n <a href=\"identifier-index-V.html\">V</a>\n <a href=\"identifier-index-W.html\">W</a>\n <a href=\"identifier-index-X.html\">X</a>\n <a href=\"identifier-index-Y.html\">Y</a>\n <a href=\"identifier-index-Z.html\">Z</a>\n <a href=\"identifier-index-_.html\">_</a>\n]\n</td></table>\n<table border=\"0\" width=\"100%\">\n<tr valign=\"top\"><td valign=\"top\" width=\"1%\"><h2 class=\"epydoc\"><a name=\"D\">D</a></h2></td>\n<td valign=\"top\">\n<table class=\"link-index\" width=\"100%\" border=\"1\">\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.osgr-module.html#D\">D</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.osgr-module.html\">pygeodesy.osgr</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#degrees2m\">degrees2m()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.frechet.Frechet-class.html#discrete\">discrete()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.frechet.Frechet-class.html\">Frechet</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.trf-module.html#date2epoch\">date2epoch()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.trf-module.html\">pygeodesy.trf</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#degrees2m\">degrees2m()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html\">RhumbLineBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.frechet.FrechetCosineLaw-class.html#discrete\">discrete()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.frechet.FrechetCosineLaw-class.html\">FrechetCosineLaw</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.albers._AlbersBase-class.html#datum\">datum</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.albers._AlbersBase-class.html\">_AlbersBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utily-module.html#degrees2m\">degrees2m()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utily-module.html\">pygeodesy.utily</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.frechet.FrechetDegrees-class.html#discrete\">discrete()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.frechet.FrechetDegrees-class.html\">FrechetDegrees</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#datum\">datum</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html\">_AzimuthalBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utily-module.html#degrees360\">degrees360()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utily-module.html\">pygeodesy.utily</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.frechet.FrechetDistanceTo-class.html#discrete\">discrete()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.frechet.FrechetDistanceTo-class.html\">FrechetDistanceTo</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#datum\">datum</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.cartesianBase.CartesianBase-class.html\">CartesianBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utily-module.html#degrees90\">degrees90()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utily-module.html\">pygeodesy.utily</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.frechet.FrechetEquirectangular-class.html#discrete\">discrete()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.frechet.FrechetEquirectangular-class.html\">FrechetEquirectangular</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.css.CassiniSoldner-class.html#datum\">datum</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.css.CassiniSoldner-class.html\">CassiniSoldner</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.units.Degrees_-class.html\">Degrees_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.units-module.html\">pygeodesy.units</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.frechet.FrechetEuclidean-class.html#discrete\">discrete()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.frechet.FrechetEuclidean-class.html\">FrechetEuclidean</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.datums.Datum-class.html\">Datum</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.datums-module.html\">pygeodesy.datums</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesici.Intersector-class.html#Delta\">Delta</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesici.Intersector-class.html\">Intersector</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.frechet.FrechetExact-class.html#discrete\">discrete()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.frechet.FrechetExact-class.html\">FrechetExact</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.datum-module.html\">datum</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated-module.html\">pygeodesy.deprecated</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.elliptic.Elliptic-class.html#deltaD\">deltaD()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.elliptic.Elliptic-class.html\">Elliptic</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.frechet.FrechetFlatLocal-class.html#discrete\">discrete()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.frechet.FrechetFlatLocal-class.html\">FrechetFlatLocal</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ecef._EcefBase-class.html#datum\">datum</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ecef._EcefBase-class.html\">_EcefBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.elliptic.Elliptic-class.html#deltaE\">deltaE()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.elliptic.Elliptic-class.html\">Elliptic</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.frechet.FrechetFlatPolar-class.html#discrete\">discrete()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.frechet.FrechetFlatPolar-class.html\">FrechetFlatPolar</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#datum\">datum</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html\">LatLonEllipsoidalBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.elliptic.Elliptic-class.html#deltaEinv\">deltaEinv()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.elliptic.Elliptic-class.html\">Elliptic</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.frechet.FrechetHaversine-class.html#discrete\">discrete()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.frechet.FrechetHaversine-class.html\">FrechetHaversine</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalNvector.Nvector-class.html#datum\">datum</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalNvector.Nvector-class.html\">Nvector</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.elliptic.Elliptic-class.html#deltaF\">deltaF()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.elliptic.Elliptic-class.html\">Elliptic</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.frechet.FrechetKarney-class.html#discrete\">discrete()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.frechet.FrechetKarney-class.html\">FrechetKarney</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.etm.ExactTransverseMercator-class.html#datum\">datum</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.etm.ExactTransverseMercator-class.html\">ExactTransverseMercator</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.elliptic.Elliptic-class.html#deltaG\">deltaG()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.elliptic.Elliptic-class.html\">Elliptic</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.frechet.FrechetRadians-class.html#discrete\">discrete()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.frechet.FrechetRadians-class.html\">FrechetRadians</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.frechet.Frechet-class.html#datum\">datum</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.frechet.Frechet-class.html\">Frechet</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.elliptic.Elliptic-class.html#deltaH\">deltaH()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.elliptic.Elliptic-class.html\">Elliptic</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.frechet.FrechetThomas-class.html#discrete\">discrete()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.frechet.FrechetThomas-class.html\">FrechetThomas</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geod3solve._Geodesic3SolveBase-class.html#datum\">datum</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geod3solve._Geodesic3SolveBase-class.html\">_Geodesic3SolveBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.elliptic.Elliptic-class.html#deltaPi\">deltaPi()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.elliptic.Elliptic-class.html\">Elliptic</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxDLat.AuxDLat-class.html#DIsometric\">DIsometric()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats.auxDLat.AuxDLat-class.html\">AuxDLat</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesici._IntersectBase-class.html#datum\">datum</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesici._IntersectBase-class.html\">_IntersectBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalNvector.LatLon-class.html#deltaTo\">deltaTo()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalNvector.LatLon-class.html\">LatLon</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.karney.Caps-class.html#DISTANCE\">DISTANCE</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.karney.Caps-class.html\">Caps</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html#datum\">datum</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html\">GeodesicExact</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated-module.html\">deprecated</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.karney._CapsBase-class.html#DISTANCE\">DISTANCE</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.karney._CapsBase-class.html\">_CapsBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.hausdorff.Hausdorff-class.html#datum\">datum</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.hausdorff.Hausdorff-class.html\">Hausdorff</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.props-module.html#deprecated_class\">deprecated_class()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.props-module.html\">pygeodesy.props</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.units.Distance-class.html\">Distance</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.units-module.html\">pygeodesy.units</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.heights._HeightIDW-class.html#datum\">datum</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.heights._HeightIDW-class.html\">_HeightIDW</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.props-module.html#deprecated_function\">deprecated_function()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.props-module.html\">pygeodesy.props</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.frechet.Frechet-class.html#distance\">distance()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.frechet.Frechet-class.html\">Frechet</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.heights._HeightNamed-class.html#datum\">datum</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.heights._HeightNamed-class.html\">_HeightNamed</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.props-module.html#deprecated_method\">deprecated_method()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.props-module.html\">pygeodesy.props</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.frechet.FrechetDegrees-class.html#distance\">distance()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.frechet.FrechetDegrees-class.html\">FrechetDegrees</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ktm.KTransverseMercator-class.html#datum\">datum</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ktm.KTransverseMercator-class.html\">KTransverseMercator</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.props-module.html#deprecated_Property_RO\">deprecated_Property_RO()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.props-module.html\">pygeodesy.props</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.frechet.FrechetDistanceTo-class.html#distance\">distance()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.frechet.FrechetDistanceTo-class.html\">FrechetDistanceTo</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#datum\">datum</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">LatLonBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.props-module.html#deprecated_property_RO\">deprecated_property_RO()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.props-module.html\">pygeodesy.props</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.frechet.FrechetHubeny-class.html#distance\">distance()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.frechet.FrechetHubeny-class.html\">FrechetHubeny</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.lcc.Conic-class.html#datum\">datum</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.lcc.Conic-class.html\">Conic</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.props.DeprecationWarnings-class.html\">DeprecationWarnings</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.props-module.html\">pygeodesy.props</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.frechet.FrechetRadians-class.html#distance\">distance()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.frechet.FrechetRadians-class.html\">FrechetRadians</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltp.LocalCartesian-class.html#datum\">datum</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltp.LocalCartesian-class.html\">LocalCartesian</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#destination\">destination()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html\">LatLonEllipsoidalBaseDI</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#Distance\">Distance()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html\">_GeodesicLineExact</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.mgrs.Mgrs-class.html#datum\">datum</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.mgrs.Mgrs-class.html\">Mgrs</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.sphericalNvector.LatLon-class.html#destination\">destination()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.sphericalNvector.LatLon-class.html\">LatLon</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodsolve.GeodesicLineSolve-class.html#Distance\">Distance()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodsolve.GeodesicLineSolve-class.html\">GeodesicLineSolve</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#datum\">datum</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.nvectorBase.NvectorBase-class.html\">NvectorBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html#destination\">destination()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html\">LatLon</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.hausdorff.Hausdorff-class.html#distance\">distance()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.hausdorff.Hausdorff-class.html\">Hausdorff</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.osgr.Osgr-class.html#datum\">datum</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.osgr.Osgr-class.html\">Osgr</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#destination2\">destination2()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html\">LatLonEllipsoidalBaseDI</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.hausdorff.HausdorffDegrees-class.html#distance\">distance()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.hausdorff.HausdorffDegrees-class.html\">HausdorffDegrees</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.points.LatLon_-class.html#datum\">datum</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.points.LatLon_-class.html\">LatLon_</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.Destination2Tuple-class.html\">Destination2Tuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples-module.html\">pygeodesy.namedTuples</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.hausdorff.HausdorffDistanceTo-class.html#distance\">distance()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.hausdorff.HausdorffDistanceTo-class.html\">HausdorffDistanceTo</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb.bases.RhumbBase-class.html#datum\">datum</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb.bases.RhumbBase-class.html\">RhumbBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.Destination3Tuple-class.html\">Destination3Tuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples-module.html\">pygeodesy.namedTuples</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.hausdorff.HausdorffHubeny-class.html#distance\">distance()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.hausdorff.HausdorffHubeny-class.html\">HausdorffHubeny</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#datum\">datum</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html\">RhumbLineBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalNvector.LatLon-class.html#destinationNed\">destinationNed()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalNvector.LatLon-class.html\">LatLon</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.hausdorff.HausdorffRadians-class.html#distance\">distance()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.hausdorff.HausdorffRadians-class.html\">HausdorffRadians</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#datum\">datum</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.solveBase._SolveCapsBase-class.html\">_SolveCapsBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#destinationXyz\">destinationXyz()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.cartesianBase.CartesianBase-class.html\">CartesianBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geohash.Geohash-class.html#distance1To\">distance1To()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geohash.Geohash-class.html\">Geohash</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.solveBase._SolveGDictLineBase-class.html#datum\">datum</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.solveBase._SolveGDictLineBase-class.html\">_SolveGDictLineBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#destinationXyz\">destinationXyz()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">LatLonBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#distance2\">distance2()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html#datum\">datum</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html\">LatLonSphericalBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#diff\">diff</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html\">AuxAngle</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#distance2\">distance2()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html\">RhumbLineBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.trf.RefFrame-class.html#datum\">datum</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.trf.RefFrame-class.html\">RefFrame</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy-module.html#DIG\">DIG</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geohash.Geohash-class.html#distance2To\">distance2To()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geohash.Geohash-class.html\">Geohash</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html#datum\">datum</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html\">UtmUpsBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.constants-module.html#DIG\">DIG</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.constants-module.html\">pygeodesy.constants</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.Distance2Tuple-class.html\">Distance2Tuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples-module.html\">pygeodesy.namedTuples</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.webmercator.Wm-class.html#datum\">datum</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.webmercator.Wm-class.html\">Wm</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.mgrs.Mgrs-class.html#digraph\">digraph</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.mgrs.Mgrs-class.html\">Mgrs</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geohash.Geohash-class.html#distance3To\">distance3To()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geohash.Geohash-class.html\">Geohash</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy-module.html#Datums\">Datums</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.mgrs.Mgrs4Tuple-class.html#digraph\">digraph</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.mgrs.Mgrs4Tuple-class.html\">Mgrs4Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.Distance3Tuple-class.html\">Distance3Tuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples-module.html\">pygeodesy.namedTuples</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.datums-module.html\">datums</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.mgrs.Mgrs6Tuple-class.html#digraph\">digraph</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.mgrs.Mgrs6Tuple-class.html\">Mgrs6Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.Distance4Tuple-class.html\">Distance4Tuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples-module.html\">pygeodesy.namedTuples</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.datums-module.html#Datums\">Datums</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.datums-module.html\">pygeodesy.datums</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geod3solve.Geodesic3Solve-class.html#Direct\">Direct()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geod3solve.Geodesic3Solve-class.html\">Geodesic3Solve</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.units.Distance_-class.html\">Distance_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.units-module.html\">pygeodesy.units</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated-module.html#Datums\">Datums</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated-module.html\">pygeodesy.deprecated</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html#Direct\">Direct()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html\">GeodesicExact</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geohash-module.html#distance_\">distance_()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geohash-module.html\">pygeodesy.geohash</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.datum-module.html#Datums\">Datums</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.datum-module.html\">pygeodesy.deprecated.datum</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb.bases.RhumbBase-class.html#Direct\">Direct()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb.bases.RhumbBase-class.html\">RhumbBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.karney.Caps-class.html#DISTANCE_IN\">DISTANCE_IN</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.karney.Caps-class.html\">Caps</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxDLat.AuxDLat-class.html#Dconvert\">Dconvert()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats.auxDLat.AuxDLat-class.html\">AuxDLat</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.solveBase._SolveGDictBase-class.html#Direct\">Direct()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.solveBase._SolveGDictBase-class.html\">_SolveGDictBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.karney._CapsBase-class.html#DISTANCE_IN\">DISTANCE_IN</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.karney._CapsBase-class.html\">_CapsBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxDLat.AuxDLat-class.html#DE\">DE()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats.auxDLat.AuxDLat-class.html\">AuxDLat</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html#Direct3\">Direct3()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html\">GeodesicExact</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#distanceTo\">distanceTo()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html\">LatLonEllipsoidalBaseDI</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.karney._CapsBase-class.html#debug\">debug</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.karney._CapsBase-class.html\">_CapsBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodsolve.GeodesicSolve-class.html#Direct3\">Direct3()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodsolve.GeodesicSolve-class.html\">GeodesicSolve</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalNvector.LatLon-class.html#distanceTo\">distanceTo()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalNvector.LatLon-class.html\">LatLon</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geohash-module.html#decode\">decode()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geohash-module.html\">pygeodesy.geohash</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb.solve.RhumbSolve-class.html#Direct3\">Direct3()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb.solve.RhumbSolve-class.html\">RhumbSolve</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geohash.Geohash-class.html#distanceTo\">distanceTo()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geohash.Geohash-class.html\">Geohash</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.epsg-module.html#decode2\">decode2()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.epsg-module.html\">pygeodesy.epsg</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb.ekx.Rhumb-class.html#Direct7\">Direct7()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb.ekx.Rhumb-class.html\">Rhumb</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.sphericalNvector.LatLon-class.html#distanceTo\">distanceTo()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.sphericalNvector.LatLon-class.html\">LatLon</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geohash-module.html#decode2\">decode2()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geohash-module.html\">pygeodesy.geohash</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb.bases.RhumbBase-class.html#Direct8\">Direct8()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb.bases.RhumbBase-class.html\">RhumbBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html#distanceTo\">distanceTo()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html\">LatLon</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.gars-module.html#decode3\">decode3()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.gars-module.html\">pygeodesy.gars</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.karney.Direct9Tuple-class.html\">Direct9Tuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.karney-module.html\">pygeodesy.karney</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#distanceTo2\">distanceTo2()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html\">LatLonEllipsoidalBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.wgrs-module.html#decode3\">decode3()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.wgrs-module.html\">pygeodesy.wgrs</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.hausdorff.Hausdorff-class.html#directed\">directed()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.hausdorff.Hausdorff-class.html\">Hausdorff</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#distanceTo3\">distanceTo3()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html\">LatLonEllipsoidalBaseDI</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.wgrs-module.html#decode5\">decode5()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.wgrs-module.html\">pygeodesy.wgrs</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.hausdorff.Hausdorff-class.html#directed\">directed()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.hausdorff.Hausdorff-class.html\">Hausdorff</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#dividedBy\">dividedBy()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">Vector3dBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geohash-module.html#decode_error\">decode_error()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geohash-module.html\">pygeodesy.geohash</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.hausdorff.HausdorffCosineLaw-class.html#directed\">directed()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.hausdorff.HausdorffCosineLaw-class.html\">HausdorffCosineLaw</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#dividedBy_\">dividedBy_()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">Vector3dBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geohash-module.html#decode_error2\">decode_error2()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geohash-module.html\">pygeodesy.geohash</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.hausdorff.HausdorffDegrees-class.html#directed\">directed()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.hausdorff.HausdorffDegrees-class.html\">HausdorffDegrees</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums.DivMod2Tuple-class.html\">DivMod2Tuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums-module.html\">pygeodesy.fsums</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geohash.Geohashed-class.html#decoded\">decoded()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geohash.Geohashed-class.html\">Geohashed</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.hausdorff.HausdorffDistanceTo-class.html#directed\">directed()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.hausdorff.HausdorffDistanceTo-class.html\">HausdorffDistanceTo</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.dms-module.html\">dms</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.gars.Garef-class.html#decoded3\">decoded3</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.gars.Garef-class.html\">Garef</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.hausdorff.HausdorffEquirectangular-class.html#directed\">directed()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.hausdorff.HausdorffEquirectangular-class.html\">HausdorffEquirectangular</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#dot\">dot()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">Vector3dBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.wgrs.Georef-class.html#decoded3\">decoded3</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.wgrs.Georef-class.html\">Georef</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.hausdorff.HausdorffEuclidean-class.html#directed\">directed()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.hausdorff.HausdorffEuclidean-class.html\">HausdorffEuclidean</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.Aer-class.html#down\">down</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.Aer-class.html\">Aer</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.wgrs.Georef-class.html#decoded5\">decoded5</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.wgrs.Georef-class.html\">Georef</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.hausdorff.HausdorffExact-class.html#directed\">directed()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.hausdorff.HausdorffExact-class.html\">HausdorffExact</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.Local9Tuple-class.html#down\">down</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.Local9Tuple-class.html\">Local9Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.functions-module.html#decodeEPSG2\">decodeEPSG2()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.functions-module.html\" onclick=\"show_private();\">pygeodesy.deprecated.functions</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.hausdorff.HausdorffFlatLocal-class.html#directed\">directed()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.hausdorff.HausdorffFlatLocal-class.html\">HausdorffFlatLocal</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.Ned-class.html#down\">down</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.Ned-class.html\">Ned</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.iters._BaseIter-class.html#dedup\">dedup</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.iters._BaseIter-class.html\">_BaseIter</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.hausdorff.HausdorffHaversine-class.html#directed\">directed()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.hausdorff.HausdorffHaversine-class.html\">HausdorffHaversine</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.XyzLocal-class.html#down\">down</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.XyzLocal-class.html\">XyzLocal</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.angles-module.html#Deg\">Deg()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.angles-module.html\">pygeodesy.angles</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.hausdorff.HausdorffRadians-class.html#directed\">directed()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.hausdorff.HausdorffRadians-class.html\">HausdorffRadians</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxDLat.AuxDLat-class.html#DParametric\">DParametric()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats.auxDLat.AuxDLat-class.html\">AuxDLat</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.dms-module.html#degDMS\">degDMS()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.dms-module.html\">pygeodesy.dms</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.hausdorff.HausdorffThomas-class.html#directed\">directed()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.hausdorff.HausdorffThomas-class.html\">HausdorffThomas</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxDLat.AuxDLat-class.html#DRectifying\">DRectifying()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats.auxDLat.AuxDLat-class.html\">AuxDLat</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.angles.Ang-class.html#degrees\">degrees</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.angles.Ang-class.html\">Ang</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.hausdorff.HausdorffVincentys-class.html#directed\">directed()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.hausdorff.HausdorffVincentys-class.html\">HausdorffVincentys</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geoids.GeoidKarney-class.html#dtype\">dtype</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geoids.GeoidKarney-class.html\">GeoidKarney</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.units.Degrees-class.html\">Degrees</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.units-module.html\">pygeodesy.units</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geod3solve.Geodesic3Solve-class.html#DirectLine\">DirectLine()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geod3solve.Geodesic3Solve-class.html\">Geodesic3Solve</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geoids._GeoidBase-class.html#dtype\">dtype</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geoids._GeoidBase-class.html\">_GeoidBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utily-module.html#degrees\">degrees()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utily-module.html\">pygeodesy.utily</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html#DirectLine\">DirectLine()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html\">GeodesicExact</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.named._Named-class.html#dup\">dup()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.named._Named-class.html\">_Named</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.angles.Ang-class.html#degrees0\">degrees0</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.angles.Ang-class.html\">Ang</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodsolve.GeodesicSolve-class.html#DirectLine\">DirectLine()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodsolve.GeodesicSolve-class.html\">GeodesicSolve</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.named._NamedTuple-class.html#dup\">dup()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.named._NamedTuple-class.html\">_NamedTuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utily-module.html#degrees180\">degrees180()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utily-module.html\">pygeodesy.utily</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb.bases.RhumbBase-class.html#DirectLine\">DirectLine()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb.bases.RhumbBase-class.html\">RhumbBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.points._Basequence-class.html#dup\">dup()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.points._Basequence-class.html\">_Basequence</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.units.Degrees2-class.html\">Degrees2</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.units-module.html\">pygeodesy.units</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb.solve.RhumbSolve-class.html#DirectLine\">DirectLine()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb.solve.RhumbSolve-class.html\">RhumbSolve</a>)</span></td>\n<td width=\"33%\" class=\"link-index\">&nbsp;</td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utily-module.html#degrees2grades\">degrees2grades()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utily-module.html\">pygeodesy.utily</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.frechet.Frechet-class.html#discrete\">discrete()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.frechet.Frechet-class.html\">Frechet</a>)</span></td>\n<td width=\"33%\" class=\"link-index\">&nbsp;</td>\n</tr>\n</table>\n</td></tr>\n</table>\n<br /><br /><!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th bgcolor=\"#70b0f0\" class=\"navbar-select\"\n          >&nbsp;&nbsp;&nbsp;Indices&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:16 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/identifier-index-E.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>Identifier Index</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th bgcolor=\"#70b0f0\" class=\"navbar-select\"\n          >&nbsp;&nbsp;&nbsp;Indices&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">&nbsp;</td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"identifier-index-E.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<center><b>[\n <a href=\"identifier-index.html\">Identifiers</a>\n| <a href=\"term-index.html\">Term Definitions</a>\n]</b></center><br />\n<table border=\"0\" width=\"100%\">\n<tr valign=\"bottom\"><td>\n<h1 class=\"epydoc\">Identifier Index</h1>\n</td><td>\n[\n <a href=\"identifier-index-A.html\">A</a>\n <a href=\"identifier-index-B.html\">B</a>\n <a href=\"identifier-index-C.html\">C</a>\n <a href=\"identifier-index-D.html\">D</a>\n <a href=\"identifier-index-E.html\">E</a>\n <a href=\"identifier-index-F.html\">F</a>\n <a href=\"identifier-index-G.html\">G</a>\n <a href=\"identifier-index-H.html\">H</a>\n <a href=\"identifier-index-I.html\">I</a>\n <a href=\"identifier-index-J.html\">J</a>\n <a href=\"identifier-index-K.html\">K</a>\n <a href=\"identifier-index-L.html\">L</a>\n <a href=\"identifier-index-M.html\">M</a>\n <a href=\"identifier-index-N.html\">N</a>\n <a href=\"identifier-index-O.html\">O</a>\n <a href=\"identifier-index-P.html\">P</a>\n <a href=\"identifier-index-Q.html\">Q</a>\n <a href=\"identifier-index-R.html\">R</a>\n <a href=\"identifier-index-S.html\">S</a>\n <a href=\"identifier-index-T.html\">T</a>\n <a href=\"identifier-index-U.html\">U</a>\n <a href=\"identifier-index-V.html\">V</a>\n <a href=\"identifier-index-W.html\">W</a>\n <a href=\"identifier-index-X.html\">X</a>\n <a href=\"identifier-index-Y.html\">Y</a>\n <a href=\"identifier-index-Z.html\">Z</a>\n <a href=\"identifier-index-_.html\">_</a>\n]\n</td></table>\n<table border=\"0\" width=\"100%\">\n<tr valign=\"top\"><td valign=\"top\" width=\"1%\"><h2 class=\"epydoc\"><a name=\"E\">E</a></h2></td>\n<td valign=\"top\">\n<table class=\"link-index\" width=\"100%\" border=\"1\">\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipses.Ellipse-class.html#e\">e</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipses.Ellipse-class.html\">Ellipse</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipses.EllipseError-class.html\">EllipseError</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipses-module.html\">pygeodesy.ellipses</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.constants-module.html#EPS02\">EPS02</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.constants-module.html\">pygeodesy.constants</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#e\">e</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipses-module.html\">ellipses</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy-module.html#EPS1\">EPS1</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geohash.Geohash-class.html#E\">E</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geohash.Geohash-class.html\">Geohash</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.albers._AlbersBase-class.html#ellipsoid\">ellipsoid</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.albers._AlbersBase-class.html\">_AlbersBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.constants-module.html#EPS1\">EPS1</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.constants-module.html\">pygeodesy.constants</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.lcc.Conic-class.html#E0\">E0</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.lcc.Conic-class.html\">Conic</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxLat.AuxLat-class.html#ellipsoid\">ellipsoid</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats.auxLat.AuxLat-class.html\">AuxLat</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy-module.html#EPS1_2\">EPS1_2</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#e12\">e12</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.datums.Datum-class.html#ellipsoid\">ellipsoid</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.datums.Datum-class.html\">Datum</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated-module.html#EPS1_2\">EPS1_2</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated-module.html\">pygeodesy.deprecated</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipses.Ellipse-class.html#e2\">e2</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipses.Ellipse-class.html\">Ellipse</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ecef.Ecef9Tuple-class.html#ellipsoid\">ellipsoid</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ecef.Ecef9Tuple-class.html\">Ecef9Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.consterns-module.html#EPS1_2\">EPS1_2</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.consterns-module.html\" onclick=\"show_private();\">pygeodesy.deprecated.consterns</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#e2\">e2</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ecef._EcefBase-class.html#ellipsoid\">ellipsoid</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ecef._EcefBase-class.html\">_EcefBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy-module.html#EPS2\">EPS2</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html#e2\">e2</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html\">GeodesicExact</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids-module.html\">pygeodesy.ellipsoids</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.constants-module.html#EPS2\">EPS2</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.constants-module.html\">pygeodesy.constants</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.bases._Triaxial3Base-class.html#e2\">e2</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.bases._Triaxial3Base-class.html\">_Triaxial3Base</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.etm.ExactTransverseMercator-class.html#ellipsoid\">ellipsoid</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.etm.ExactTransverseMercator-class.html\">ExactTransverseMercator</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy-module.html#EPS4\">EPS4</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#e21\">e21</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geod3solve._Geodesic3SolveBase-class.html#ellipsoid\">ellipsoid</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geod3solve._Geodesic3SolveBase-class.html\">_Geodesic3SolveBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.constants-module.html#EPS4\">EPS4</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.constants-module.html\">pygeodesy.constants</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#e22\">e22</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesici._IntersectBase-class.html#ellipsoid\">ellipsoid</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesici._IntersectBase-class.html\">_IntersectBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy-module.html#EPS8\">EPS8</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#e22abs\">e22abs</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html#ellipsoid\">ellipsoid</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html\">GeodesicExact</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.constants-module.html#EPS8\">EPS8</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.constants-module.html\">pygeodesy.constants</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids-module.html#e22f\">e22f()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids-module.html\">pygeodesy.ellipsoids</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#ellipsoid\">ellipsoid</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html\">GeodesicAreaExact</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy-module.html#EPS_2\">EPS_2</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#e2ab\">e2ab</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html\">_UnOrderedTriaxialBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ktm.KTransverseMercator-class.html#ellipsoid\">ellipsoid</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ktm.KTransverseMercator-class.html\">KTransverseMercator</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.constants-module.html#EPS_2\">EPS_2</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.constants-module.html\">pygeodesy.constants</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#e2abs\">e2abs</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltp.LocalCartesian-class.html#ellipsoid\">ellipsoid</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltp.LocalCartesian-class.html\">LocalCartesian</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.epsg-module.html\">epsg</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#e2ac\">e2ac</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html\">_UnOrderedTriaxialBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb.bases.RhumbBase-class.html#ellipsoid\">ellipsoid</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb.bases.RhumbBase-class.html\">RhumbBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.epsg.Epsg-class.html\">Epsg</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.epsg-module.html\">pygeodesy.epsg</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#e2bc\">e2bc</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html\">_UnOrderedTriaxialBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#ellipsoid\">ellipsoid</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html\">RhumbLineBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.epsg.EPSGError-class.html\">EPSGError</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.epsg-module.html\">pygeodesy.epsg</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids-module.html#e2f\">e2f()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids-module.html\">pygeodesy.ellipsoids</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#ellipsoid\">ellipsoid</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.solveBase._SolveCapsBase-class.html\">_SolveCapsBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalVincenty.LatLon-class.html#epsilon\">epsilon</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalVincenty.LatLon-class.html\">LatLon</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.consterns.Elliperim-class.html#E2k\">E2k()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.consterns.Elliperim-class.html\">Elliperim</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.solveBase._SolveGDictLineBase-class.html#ellipsoid\">ellipsoid</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.solveBase._SolveGDictLineBase-class.html\">_SolveGDictLineBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.points._Basequence-class.html#epsilon\">epsilon</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.points._Basequence-class.html\">_Basequence</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.consterns.Elliperim-class.html#e2k\">e2k()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.consterns.Elliperim-class.html\">Elliperim</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.trf.RefFrame-class.html#ellipsoid\">ellipsoid</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.trf.RefFrame-class.html\">RefFrame</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalNvector.LatLon-class.html#equals\">equals()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalNvector.LatLon-class.html\">LatLon</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#e2s\">e2s()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.webmercator.Wm-class.html#ellipsoid\">ellipsoid</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.webmercator.Wm-class.html\">Wm</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#equals\">equals()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">LatLonBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#e2s2\">e2s2()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#ellipsoid\">ellipsoid()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html\">LatLonEllipsoidalBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#equals\">equals()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">Vector3dBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#e32\">e32</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html#ellipsoid\">ellipsoid()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\">a_f2Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#equals3\">equals3()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">LatLonBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#e32abs\">e32abs</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\">Ellipsoid2</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids-module.html\">pygeodesy.ellipsoids</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.albers._AlbersBase-class.html#equatoradius\">equatoradius</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.albers._AlbersBase-class.html\">_AlbersBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#e4\">e4</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.bases.LLK-class.html#ELLIPSOIDAL\">ELLIPSOIDAL</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.bases.LLK-class.html\">LLK</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#equatoradius\">equatoradius</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html\">_AzimuthalBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.ChLV9Tuple-class.html#E_LV95\">E_LV95</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.ChLV9Tuple-class.html\">ChLV9Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalBase-module.html\">ellipsoidalBase</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.css.CassiniSoldner-class.html#equatoradius\">equatoradius</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.css.CassiniSoldner-class.html\">CassiniSoldner</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.EasNor2Tuple-class.html\">EasNor2Tuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples-module.html\">pygeodesy.namedTuples</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalBaseDI-module.html\">ellipsoidalBaseDI</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ecef._EcefBase-class.html#equatoradius\">equatoradius</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ecef._EcefBase-class.html\">_EcefBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.EasNor3Tuple-class.html\">EasNor3Tuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples-module.html\">pygeodesy.namedTuples</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#ellipsoidalCartesian\">ellipsoidalCartesian</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.cartesianBase.CartesianBase-class.html\">CartesianBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.etm.ExactTransverseMercator-class.html#equatoradius\">equatoradius</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.etm.ExactTransverseMercator-class.html\">ExactTransverseMercator</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.css.EasNorAziRk4Tuple-class.html\">EasNorAziRk4Tuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.css-module.html\">pygeodesy.css</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#ellipsoidalCartesian\">ellipsoidalCartesian</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html\">CartesianEllipsoidalBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ktm.KTransverseMercator-class.html#equatoradius\">equatoradius</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ktm.KTransverseMercator-class.html\">KTransverseMercator</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.css.EasNorAziRkEqu6Tuple-class.html\">EasNorAziRkEqu6Tuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.css-module.html\">pygeodesy.css</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalExact-module.html\">ellipsoidalExact</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#equatorimeter\">equatorimeter</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.classes.EasNorExact4Tuple-class.html\">EasNorExact4Tuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.classes-module.html\" onclick=\"show_private();\">pygeodesy.deprecated.classes</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalGeodSolve-module.html\">ellipsoidalGeodSolve</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.conformal3.Conformal3-class.html#equi3Sphere\">equi3Sphere()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.conformal3.Conformal3-class.html\">Conformal3</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.webmercator.EasNorRadius3Tuple-class.html\">EasNorRadius3Tuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.webmercator-module.html\">pygeodesy.webmercator</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalKarney-module.html\">ellipsoidalKarney</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.azimuthal.Equidistant-class.html\">Equidistant</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.azimuthal-module.html\">pygeodesy.azimuthal</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.Aer-class.html#east\">east</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.Aer-class.html\">Aer</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#ellipsoidalLatLon\">ellipsoidalLatLon</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html\">LatLonEllipsoidalBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#Equidistant\">Equidistant</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html\">LatLonEllipsoidalBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.Local9Tuple-class.html#east\">east</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.Local9Tuple-class.html\">Local9Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#ellipsoidalLatLon\">ellipsoidalLatLon</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">LatLonBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalExact.LatLon-class.html#Equidistant\">Equidistant</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalExact.LatLon-class.html\">LatLon</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.Ned-class.html#east\">east</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.Ned-class.html\">Ned</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalNvector-module.html\">ellipsoidalNvector</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalGeodSolve.LatLon-class.html#Equidistant\">Equidistant</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalGeodSolve.LatLon-class.html\">LatLon</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.XyzLocal-class.html#east\">east</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.XyzLocal-class.html\">XyzLocal</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalNvector.Nvector-class.html#ellipsoidalNvector\">ellipsoidalNvector</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalNvector.Nvector-class.html\">Nvector</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalKarney.LatLon-class.html#Equidistant\">Equidistant</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalKarney.LatLon-class.html\">LatLon</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.css.Css-class.html#easting\">easting</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.css.Css-class.html\">Css</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#ellipsoidalNvector\">ellipsoidalNvector</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.nvectorBase.NvectorBase-class.html\">NvectorBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.azimuthal-module.html#equidistant\">equidistant()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.azimuthal-module.html\">pygeodesy.azimuthal</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.lcc.Lcc-class.html#easting\">easting</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.lcc.Lcc-class.html\">Lcc</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalVincenty-module.html\">ellipsoidalVincenty</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.azimuthal.EquidistantExact-class.html\">EquidistantExact</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.azimuthal-module.html\">pygeodesy.azimuthal</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.mgrs.Mgrs-class.html#easting\">easting</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.mgrs.Mgrs-class.html\">Mgrs</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy-module.html#Ellipsoids\">Ellipsoids</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.azimuthal.EquidistantGeodSolve-class.html\">EquidistantGeodSolve</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.azimuthal-module.html\">pygeodesy.azimuthal</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.osgr.Osgr-class.html#easting\">easting</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.osgr.Osgr-class.html\">Osgr</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated-module.html#Ellipsoids\">Ellipsoids</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated-module.html\">pygeodesy.deprecated</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.azimuthal.EquidistantKarney-class.html\">EquidistantKarney</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.azimuthal-module.html\">pygeodesy.azimuthal</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.units.Easting-class.html\">Easting</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.units-module.html\">pygeodesy.units</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.datum-module.html#Ellipsoids\">Ellipsoids</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.datum-module.html\">pygeodesy.deprecated.datum</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.formy-module.html#equirectangular\">equirectangular()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.formy-module.html\">pygeodesy.formy</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html#easting\">easting</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html\">UtmUpsBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids-module.html\">ellipsoids</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#equirectangular\">equirectangular()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">Vector3dBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.mgrs.Mgrs-class.html#eastingnorthing\">eastingnorthing</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.mgrs.Mgrs-class.html\">Mgrs</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids-module.html#Ellipsoids\">Ellipsoids</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids-module.html\">pygeodesy.ellipsoids</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.functions-module.html#equirectangular3\">equirectangular3()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.functions-module.html\" onclick=\"show_private();\">pygeodesy.deprecated.functions</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html#eastingnorthing\">eastingnorthing</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html\">UtmUpsBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#ellipsoids\">ellipsoids()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html\">LatLonEllipsoidalBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.formy-module.html#equirectangular4\">equirectangular4()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.formy-module.html\">pygeodesy.formy</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html#eastingnorthing2\">eastingnorthing2()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html\">UtmUpsBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.elliptic-module.html\">elliptic</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geohash-module.html#equirectangular4\">equirectangular4()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geohash-module.html\">pygeodesy.geohash</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ecef-module.html\">ecef</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.elliptic.Elliptic-class.html\">Elliptic</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.elliptic-module.html\">pygeodesy.elliptic</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.functions-module.html#equirectangular_\">equirectangular_()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.functions-module.html\" onclick=\"show_private();\">pygeodesy.deprecated.functions</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#Ecef\">Ecef</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ecefLocals._EcefLocal-class.html\">_EcefLocal</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.elliptic.Elliptic3Tuple-class.html\">Elliptic3Tuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.elliptic-module.html\">pygeodesy.elliptic</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geohash.Geohash-class.html#equirectangularTo\">equirectangularTo()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geohash.Geohash-class.html\">Geohash</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalNvector.Cartesian-class.html#Ecef\">Ecef</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalNvector.Cartesian-class.html\">Cartesian</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.elliptic.EllipticError-class.html\">EllipticError</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.elliptic-module.html\">pygeodesy.elliptic</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#equirectangularTo\">equirectangularTo()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">LatLonBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalNvector.LatLon-class.html#Ecef\">Ecef</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalNvector.LatLon-class.html\">LatLon</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.karney.Caps-class.html#EMPTY\">EMPTY</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.karney.Caps-class.html\">Caps</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.errors-module.html\">errors</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalVincenty.Cartesian-class.html#Ecef\">Ecef</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalVincenty.Cartesian-class.html\">Cartesian</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.karney._CapsBase-class.html#EMPTY\">EMPTY</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.karney._CapsBase-class.html\">_CapsBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#es\">es</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalVincenty.LatLon-class.html#Ecef\">Ecef</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalVincenty.LatLon-class.html\">LatLon</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.mgrs.Mgrs-class.html#EN\">EN</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.mgrs.Mgrs-class.html\">Mgrs</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#es_atanh\">es_atanh()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltp.LocalCartesian-class.html#ecef\">ecef</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltp.LocalCartesian-class.html\">LocalCartesian</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.mgrs.Mgrs-class.html#en100k\">en100k</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.mgrs.Mgrs-class.html\">Mgrs</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#es_c\">es_c</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltp.Ltp-class.html#ecef\">ecef</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltp.Ltp-class.html\">Ltp</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.ChLV9Tuple-class.html#EN2_LV95\">EN2_LV95</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.ChLV9Tuple-class.html\">ChLV9Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#es_tauf\">es_tauf()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.XyzLocal-class.html#ecef\">ecef</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.XyzLocal-class.html\">XyzLocal</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.Bounds4Tuple-class.html#enclosures\">enclosures()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples.Bounds4Tuple-class.html\">Bounds4Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#es_taupf\">es_taupf()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#Ecef\">Ecef</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.nvectorBase.NvectorBase-class.html\">NvectorBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.epsg-module.html#encode\">encode()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.epsg-module.html\">pygeodesy.epsg</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.etm-module.html\">etm</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.datums.Datum-class.html#ecef\">ecef()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.datums.Datum-class.html\">Datum</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.gars-module.html#encode\">encode()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.gars-module.html\">pygeodesy.gars</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.etm.Etm-class.html\">Etm</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.etm-module.html\">pygeodesy.etm</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#ecef\">ecef()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geohash-module.html#encode\">encode()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geohash-module.html\">pygeodesy.geohash</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.etm.ETMError-class.html\">ETMError</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.etm-module.html\">pygeodesy.etm</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ecef.Ecef9Tuple-class.html\">Ecef9Tuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ecef-module.html\">pygeodesy.ecef</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.wgrs-module.html#encode\">encode()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.wgrs-module.html\">pygeodesy.wgrs</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#euclid\">euclid</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">Vector3dBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.classes-module.html#EcefCartesian\">EcefCartesian()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.classes-module.html\" onclick=\"show_private();\">pygeodesy.deprecated.classes</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geohash.Geohashed-class.html#encoded\">encoded()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geohash.Geohashed-class.html\">Geohashed</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fmath-module.html#euclid\">euclid()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fmath-module.html\">pygeodesy.fmath</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ecef.EcefError-class.html\">EcefError</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ecef-module.html\">pygeodesy.ecef</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.functions-module.html#encodeEPSG\">encodeEPSG()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.functions-module.html\" onclick=\"show_private();\">pygeodesy.deprecated.functions</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fmath-module.html#euclid_\">euclid_()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fmath-module.html\">pygeodesy.fmath</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ecef.EcefFarrell21-class.html\">EcefFarrell21</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ecef-module.html\">pygeodesy.ecef</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geoids._GeoidBase-class.html#endian\">endian</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geoids._GeoidBase-class.html\">_GeoidBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.formy-module.html#euclidean\">euclidean()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.formy-module.html\">pygeodesy.formy</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ecef.EcefFarrell22-class.html\">EcefFarrell22</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ecef-module.html\">pygeodesy.ecef</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.functions-module.html#enStr2\">enStr2()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.functions-module.html\" onclick=\"show_private();\">pygeodesy.deprecated.functions</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.formy-module.html#euclidean_\">euclidean_()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.formy-module.html\">pygeodesy.formy</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ecef.EcefKarney-class.html\">EcefKarney</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ecef-module.html\">pygeodesy.ecef</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.streprs-module.html#enstr2\">enstr2()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.streprs-module.html\">pygeodesy.streprs</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geohash-module.html#euclidean_\">euclidean_()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geohash-module.html\">pygeodesy.geohash</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ecefLocals-module.html\">ecefLocals</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.Enu-class.html\">Enu</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples-module.html\">pygeodesy.ltpTuples</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geohash.Geohash-class.html#euclideanTo\">euclideanTo()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geohash.Geohash-class.html\">Geohash</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ecef.EcefMatrix-class.html\">EcefMatrix</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ecef-module.html\">pygeodesy.ecef</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.XyzLocal-class.html#enu4\">enu4</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.XyzLocal-class.html\">XyzLocal</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#euclideanTo\">euclideanTo()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">LatLonBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ecef.EcefSudano-class.html\">EcefSudano</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ecef-module.html\">pygeodesy.ecef</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.Enu4Tuple-class.html\">Enu4Tuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples-module.html\">pygeodesy.ltpTuples</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxDST.AuxDST-class.html#evaluate\">evaluate()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats.auxDST.AuxDST-class.html\">AuxDST</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ecef.EcefUPC-class.html\">EcefUPC</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ecef-module.html\">pygeodesy.ecef</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.iters.LatLon2PsxyIter-class.html#enumerate\">enumerate()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.iters.LatLon2PsxyIter-class.html\">LatLon2PsxyIter</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb.bases.RhumbBase-class.html#exact\">exact</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb.bases.RhumbBase-class.html\">RhumbBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ecef.EcefVeness-class.html\">EcefVeness</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ecef-module.html\">pygeodesy.ecef</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.iters.PointsIter-class.html#enumerate\">enumerate()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.iters.PointsIter-class.html\">PointsIter</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#exact\">exact</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html\">RhumbLineBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ecef.EcefYou-class.html\">EcefYou</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ecef-module.html\">pygeodesy.ecef</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.iters._BaseIter-class.html#enumerate\">enumerate()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.iters._BaseIter-class.html\">_BaseIter</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#Exact\">Exact</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.solveBase._SolveCapsBase-class.html\">_SolveCapsBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geoids-module.html#egmGeoidHeights\">egmGeoidHeights()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geoids-module.html\">pygeodesy.geoids</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html#ep2\">ep2</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html\">GeodesicExact</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.datums.Datum-class.html#exactTM\">exactTM</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.datums.Datum-class.html\">Datum</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb.ekx-module.html\">ekx</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb-module.html\">pygeodesy.rhumb</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#epoch\">epoch</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html\">CartesianEllipsoidalBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.etm.Etm-class.html#exactTM\">exactTM</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.etm.Etm-class.html\">Etm</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.Aer-class.html#elevation\">elevation</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.Aer-class.html\">Aer</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#epoch\">epoch</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html\">LatLonEllipsoidalBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.etm.ExactTransverseMercator-class.html\">ExactTransverseMercator</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.etm-module.html\">pygeodesy.etm</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.Local9Tuple-class.html#elevation\">elevation</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.Local9Tuple-class.html\">Local9Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.trf.RefFrame-class.html#epoch\">epoch</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.trf.RefFrame-class.html\">RefFrame</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.errors-module.html#exception_chaining\">exception_chaining()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.errors-module.html\">pygeodesy.errors</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.Ned-class.html#elevation\">elevation</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.Ned-class.html\">Ned</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.trf.TRFXform-class.html#epoch\">epoch</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.trf.TRFXform-class.html\">TRFXform</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.functions-module.html#excessAbc\">excessAbc()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.functions-module.html\" onclick=\"show_private();\">pygeodesy.deprecated.functions</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.XyzLocal-class.html#elevation\">elevation</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.XyzLocal-class.html\">XyzLocal</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.units.Epoch-class.html\">Epoch</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.units-module.html\">pygeodesy.units</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.formy-module.html#excessAbc_\">excessAbc_()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.formy-module.html\">pygeodesy.formy</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.elevations-module.html#elevation2\">elevation2()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.elevations-module.html\">pygeodesy.elevations</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.trf-module.html#epoch2date\">epoch2date()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.trf-module.html\">pygeodesy.trf</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.formy-module.html#excessCagnoli_\">excessCagnoli_()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.formy-module.html\">pygeodesy.formy</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#elevation2\">elevation2()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html\">LatLonEllipsoidalBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.trf.TRFXform-class.html#epoched\">epoched</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.trf.TRFXform-class.html\">TRFXform</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.functions-module.html#excessGirard\">excessGirard()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.functions-module.html\" onclick=\"show_private();\">pygeodesy.deprecated.functions</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.elevations.Elevation2Tuple-class.html\">Elevation2Tuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.elevations-module.html\">pygeodesy.elevations</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy-module.html#EPS\">EPS</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.formy-module.html#excessGirard_\">excessGirard_()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.formy-module.html\">pygeodesy.formy</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.elevations-module.html\">elevations</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.booleans._CompositeBase-class.html#eps\">eps</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.booleans._CompositeBase-class.html\">_CompositeBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.formy-module.html#excessKarney\">excessKarney()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.formy-module.html\">pygeodesy.formy</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.consterns.Elliperim-class.html\">Elliperim</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.consterns-module.html\" onclick=\"show_private();\">pygeodesy.deprecated.consterns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.constants-module.html#EPS\">EPS</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.constants-module.html\">pygeodesy.constants</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.formy-module.html#excessKarney_\">excessKarney_()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.formy-module.html\">pygeodesy.formy</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.functions-module.html#elliperim\">elliperim()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.functions-module.html\" onclick=\"show_private();\">pygeodesy.deprecated.functions</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.elliptic.Elliptic-class.html#eps\">eps</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.elliptic.Elliptic-class.html\">Elliptic</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.functions-module.html#excessLHuilier\">excessLHuilier()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.functions-module.html\" onclick=\"show_private();\">pygeodesy.deprecated.functions</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.functions-module.html#elliperim_\">elliperim_()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.functions-module.html\" onclick=\"show_private();\">pygeodesy.deprecated.functions</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy-module.html#EPS0\">EPS0</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.formy-module.html#excessLHuilier_\">excessLHuilier_()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.formy-module.html\">pygeodesy.formy</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipses.Ellipse-class.html\">Ellipse</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipses-module.html\">pygeodesy.ellipses</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.constants-module.html#EPS0\">EPS0</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.constants-module.html\">pygeodesy.constants</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.formy-module.html#excessQuad\">excessQuad()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.formy-module.html\">pygeodesy.formy</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#ellipse5\">ellipse5()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html\">_UnOrderedTriaxialBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.angles.Ang-class.html#EPS0\">EPS0()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.angles.Ang-class.html\">Ang</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.formy-module.html#excessQuad_\">excessQuad_()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.formy-module.html\">pygeodesy.formy</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.Ellipse5Tuple-class.html\">Ellipse5Tuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples-module.html\">pygeodesy.namedTuples</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy-module.html#EPS02\">EPS02</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.etm.ExactTransverseMercator-class.html#extendp\">extendp</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.etm.ExactTransverseMercator-class.html\">ExactTransverseMercator</a>)</span></td>\n</tr>\n</table>\n</td></tr>\n</table>\n<br /><br /><!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th bgcolor=\"#70b0f0\" class=\"navbar-select\"\n          >&nbsp;&nbsp;&nbsp;Indices&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:16 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/identifier-index-F.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>Identifier Index</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th bgcolor=\"#70b0f0\" class=\"navbar-select\"\n          >&nbsp;&nbsp;&nbsp;Indices&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">&nbsp;</td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"identifier-index-F.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<center><b>[\n <a href=\"identifier-index.html\">Identifiers</a>\n| <a href=\"term-index.html\">Term Definitions</a>\n]</b></center><br />\n<table border=\"0\" width=\"100%\">\n<tr valign=\"bottom\"><td>\n<h1 class=\"epydoc\">Identifier Index</h1>\n</td><td>\n[\n <a href=\"identifier-index-A.html\">A</a>\n <a href=\"identifier-index-B.html\">B</a>\n <a href=\"identifier-index-C.html\">C</a>\n <a href=\"identifier-index-D.html\">D</a>\n <a href=\"identifier-index-E.html\">E</a>\n <a href=\"identifier-index-F.html\">F</a>\n <a href=\"identifier-index-G.html\">G</a>\n <a href=\"identifier-index-H.html\">H</a>\n <a href=\"identifier-index-I.html\">I</a>\n <a href=\"identifier-index-J.html\">J</a>\n <a href=\"identifier-index-K.html\">K</a>\n <a href=\"identifier-index-L.html\">L</a>\n <a href=\"identifier-index-M.html\">M</a>\n <a href=\"identifier-index-N.html\">N</a>\n <a href=\"identifier-index-O.html\">O</a>\n <a href=\"identifier-index-P.html\">P</a>\n <a href=\"identifier-index-Q.html\">Q</a>\n <a href=\"identifier-index-R.html\">R</a>\n <a href=\"identifier-index-S.html\">S</a>\n <a href=\"identifier-index-T.html\">T</a>\n <a href=\"identifier-index-U.html\">U</a>\n <a href=\"identifier-index-V.html\">V</a>\n <a href=\"identifier-index-W.html\">W</a>\n <a href=\"identifier-index-X.html\">X</a>\n <a href=\"identifier-index-Y.html\">Y</a>\n <a href=\"identifier-index-Z.html\">Z</a>\n <a href=\"identifier-index-_.html\">_</a>\n]\n</td></table>\n<table border=\"0\" width=\"100%\">\n<tr valign=\"top\"><td valign=\"top\" width=\"1%\"><h2 class=\"epydoc\"><a name=\"F\">F</a></h2></td>\n<td valign=\"top\">\n<table class=\"link-index\" width=\"100%\" border=\"1\">\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxLat.AuxLat-class.html#f\">f</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats.auxLat.AuxLat-class.html\">AuxLat</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utily-module.html#fathom2m\">fathom2m()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utily-module.html\">pygeodesy.utily</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html#forwardBetaOmega_\">forwardBetaOmega_()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html\">Triaxial3</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#f\">f</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fmath-module.html#favg\">favg()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fmath-module.html\">pygeodesy.fmath</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.triaxial5.Triaxial-class.html#forwardBetaOmega_\">forwardBetaOmega_()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.triaxial5.Triaxial-class.html\">Triaxial</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geod3solve._Geodesic3SolveBase-class.html#f\">f</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geod3solve._Geodesic3SolveBase-class.html\">_Geodesic3SolveBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fmath.Fcbrt-class.html\">Fcbrt</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fmath-module.html\">pygeodesy.fmath</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.conformal3.Conformal3-class.html#forwardBetOmg\">forwardBetOmg()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.conformal3.Conformal3-class.html\">Conformal3</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesici._IntersectBase-class.html#f\">f</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesici._IntersectBase-class.html\">_IntersectBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fstats.Fcook-class.html\">Fcook</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fstats-module.html\">pygeodesy.fstats</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html#forwardBetOmg\">forwardBetOmg()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html\">Triaxial3</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb.bases.RhumbBase-class.html#f\">f</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb.bases.RhumbBase-class.html\">RhumbBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fstats.Flinear-class.html#fcorrelation\">fcorrelation()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fstats.Flinear-class.html\">Flinear</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html#forwardBetOmgAlp2\">forwardBetOmgAlp2()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html\">Triaxial3</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#f1\">f1</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.elliptic.Elliptic-class.html#fD\">fD()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.elliptic.Elliptic-class.html\">Elliptic</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html#forwardCartesian\">forwardCartesian()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html\">Triaxial3</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html#f1\">f1</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html\">GeodesicExact</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.elliptic.Elliptic-class.html#fDelta\">fDelta()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.elliptic.Elliptic-class.html\">Elliptic</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.triaxial5.Triaxial-class.html#forwardCartesian\">forwardCartesian()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.triaxial5.Triaxial-class.html\">Triaxial</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#f2\">f2</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fmath.Fdot-class.html\">Fdot</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fmath-module.html\">pygeodesy.fmath</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html#forwardLatLon\">forwardLatLon()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html\">Triaxial3</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids-module.html#f2e2\">f2e2()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids-module.html\">pygeodesy.ellipsoids</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fmath-module.html#fdot\">fdot()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fmath-module.html\">pygeodesy.fmath</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.triaxial5.Triaxial-class.html#forwardLatLon\">forwardLatLon()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.triaxial5.Triaxial-class.html\">Triaxial</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids-module.html#f2e22\">f2e22()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids-module.html\">pygeodesy.ellipsoids</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fmath-module.html#fdot3\">fdot3()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fmath-module.html\">pygeodesy.fmath</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.triaxial5.Triaxial-class.html#forwardLatLon_\">forwardLatLon_()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.triaxial5.Triaxial-class.html\">Triaxial</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids-module.html#f2e32\">f2e32()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids-module.html\">pygeodesy.ellipsoids</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fmath.Fdot_-class.html\">Fdot_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fmath-module.html\">pygeodesy.fmath</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.conformal3.Conformal3-class.html#forwardOther\">forwardOther()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.conformal3.Conformal3-class.html\">Conformal3</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids-module.html#f2f2\">f2f2()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids-module.html\">pygeodesy.ellipsoids</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fmath-module.html#fdot_\">fdot_()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fmath-module.html\">pygeodesy.fmath</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html#forwardPhiLam\">forwardPhiLam()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html\">Triaxial3</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids-module.html#f2f_\">f2f_()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids-module.html\">pygeodesy.ellipsoids</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.elliptic.Elliptic-class.html#fE\">fE()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.elliptic.Elliptic-class.html\">Elliptic</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html#forwardPhiLamZet2\">forwardPhiLamZet2()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html\">Triaxial3</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums.Fsum-class.html#f2mul\">f2mul()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums.Fsum-class.html\">Fsum</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.elliptic.Elliptic-class.html#fEd\">fEd()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.elliptic.Elliptic-class.html\">Elliptic</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.conformal3.Conformal3-class.html#forwardSphere3\">forwardSphere3()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.conformal3.Conformal3-class.html\">Conformal3</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fmath-module.html#f2mul_\">f2mul_()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fmath-module.html\">pygeodesy.fmath</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.units.Feet-class.html\">Feet</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.units-module.html\">pygeodesy.units</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums.Fsum-class.html#fover\">fover()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums.Fsum-class.html\">Fsum</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums.Fsum-class.html#f2mul_\">f2mul_()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums.Fsum-class.html\">Fsum</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.elliptic.Elliptic-class.html#fEinv\">fEinv()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.elliptic.Elliptic-class.html\">Elliptic</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.elliptic.Elliptic-class.html#fPi\">fPi()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.elliptic.Elliptic-class.html\">Elliptic</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids-module.html#f2n\">f2n()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids-module.html\">pygeodesy.ellipsoids</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.elliptic.Elliptic-class.html#fF\">fF()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.elliptic.Elliptic-class.html\">Elliptic</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fmath.Fpolynomial-class.html\">Fpolynomial</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fmath-module.html\">pygeodesy.fmath</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums.Fsum-class.html#f2product\">f2product()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums.Fsum-class.html\">Fsum</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.elliptic.Elliptic-class.html#fG\">fG()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.elliptic.Elliptic-class.html\">Elliptic</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fmath-module.html#fpolynomial\">fpolynomial()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fmath-module.html\">pygeodesy.fmath</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums-module.html#f2product\">f2product()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums-module.html\">pygeodesy.fsums</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.elliptic.Elliptic-class.html#fH\">fH()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.elliptic.Elliptic-class.html\">Elliptic</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fmath.Fpowers-class.html\">Fpowers</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fmath-module.html\">pygeodesy.fmath</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#f_\">f_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fmath.Fhorner-class.html\">Fhorner</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fmath-module.html\">pygeodesy.fmath</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fmath-module.html#fpowers\">fpowers()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fmath-module.html\">pygeodesy.fmath</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html#f_\">f_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\">a_f2Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fmath-module.html#fhorner\">fhorner()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fmath-module.html\">pygeodesy.fmath</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fmath-module.html#fprod\">fprod()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fmath-module.html\">pygeodesy.fmath</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids-module.html#f_2f\">f_2f()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids-module.html\">pygeodesy.ellipsoids</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fmath.Fhypot-class.html\">Fhypot</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fmath-module.html\">pygeodesy.fmath</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.frechet.Frechet-class.html#fraction\">fraction</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.frechet.Frechet-class.html\">Frechet</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy-module.html#F__E\">F__E</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fmath-module.html#fidw\">fidw()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fmath-module.html\">pygeodesy.fmath</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.points-module.html#fractional\">fractional()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.points-module.html\">pygeodesy.points</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.dms-module.html#F__E\">F__E</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.dms-module.html\">pygeodesy.dms</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.units.FIx-class.html#fin\">fin</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.units.FIx-class.html\">FIx</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.units.FIx-class.html#fractional\">fractional()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.units.FIx-class.html\">FIx</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy-module.html#F__E_\">F__E_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#finalBearingOn\">finalBearingOn()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html\">LatLonEllipsoidalBaseDI</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fmath-module.html#frandoms\">frandoms()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fmath-module.html\">pygeodesy.fmath</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.dms-module.html#F__E_\">F__E_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.dms-module.html\">pygeodesy.dms</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#finalBearingTo\">finalBearingTo()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html\">LatLonEllipsoidalBaseDI</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fmath-module.html#frange\">frange()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fmath-module.html\">pygeodesy.fmath</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy-module.html#F__E__\">F__E__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html#finalBearingTo\">finalBearingTo()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html\">LatLonSphericalBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.elliptic.Elliptic-class.html#fRC\">fRC()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.elliptic.Elliptic-class.html\">Elliptic</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.dms-module.html#F__E__\">F__E__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.dms-module.html\">pygeodesy.dms</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.named._NamedEnum-class.html#find\">find()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.named._NamedEnum-class.html\">_NamedEnum</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.elliptic.Elliptic-class.html#fRD\">fRD()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.elliptic.Elliptic-class.html\">Elliptic</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy-module.html#F__F\">F__F</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.points.LatLon2psxy-class.html#find\">find()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.points.LatLon2psxy-class.html\">LatLon2psxy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.frechet-module.html\">frechet</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.dms-module.html#F__F\">F__F</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.dms-module.html\">pygeodesy.dms</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.points._Array2LatLon-class.html#find\">find()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.points._Array2LatLon-class.html\">_Array2LatLon</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.frechet.Frechet-class.html\">Frechet</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.frechet-module.html\">pygeodesy.frechet</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy-module.html#F__F_\">F__F_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.points.LatLon2psxy-class.html#findall\">findall()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.points.LatLon2psxy-class.html\">LatLon2psxy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.frechet.Frechet6Tuple-class.html\">Frechet6Tuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.frechet-module.html\">pygeodesy.frechet</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.dms-module.html#F__F_\">F__F_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.dms-module.html\">pygeodesy.dms</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.points._Array2LatLon-class.html#findall\">findall()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.points._Array2LatLon-class.html\">_Array2LatLon</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.frechet-module.html#frechet_\">frechet_()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.frechet-module.html\">pygeodesy.frechet</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy-module.html#F__F__\">F__F__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums.Fsum-class.html#fint\">fint()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums.Fsum-class.html\">Fsum</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.classes-module.html#FrechetCosineAndoyerLambert\">FrechetCosineAndoyerLambert()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.classes-module.html\" onclick=\"show_private();\">pygeodesy.deprecated.classes</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.dms-module.html#F__F__\">F__F__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.dms-module.html\">pygeodesy.dms</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums.Fsum-class.html#fint2\">fint2()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums.Fsum-class.html\">Fsum</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.classes-module.html#FrechetCosineForsytheAndoyerLambert\">FrechetCosineForsytheAndoyerLambert()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.classes-module.html\" onclick=\"show_private();\">pygeodesy.deprecated.classes</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy-module.html#F__G\">F__G</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fstats.Flinear-class.html#fintercept\">fintercept()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fstats.Flinear-class.html\">Flinear</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.frechet.FrechetCosineLaw-class.html\">FrechetCosineLaw</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.frechet-module.html\">pygeodesy.frechet</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.dms-module.html#F__G\">F__G</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.dms-module.html\">pygeodesy.dms</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.units.FIx-class.html\">FIx</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.units-module.html\">pygeodesy.units</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.frechet.FrechetDegrees-class.html\">FrechetDegrees</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.frechet-module.html\">pygeodesy.frechet</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy-module.html#F__G_\">F__G_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fstats.Fcook-class.html#fjb\">fjb()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fstats.Fcook-class.html\">Fcook</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.frechet.FrechetDistanceTo-class.html\">FrechetDistanceTo</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.frechet-module.html\">pygeodesy.frechet</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.dms-module.html#F__G_\">F__G_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.dms-module.html\">pygeodesy.dms</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fstats.Fcook-class.html#fjb_\">fjb_()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fstats.Fcook-class.html\">Fcook</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.frechet.FrechetEquirectangular-class.html\">FrechetEquirectangular</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.frechet-module.html\">pygeodesy.frechet</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy-module.html#F__G__\">F__G__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fstats.Fcook-class.html#fkurtosis\">fkurtosis()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fstats.Fcook-class.html\">Fcook</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.frechet.FrechetError-class.html\">FrechetError</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.frechet-module.html\">pygeodesy.frechet</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.dms-module.html#F__G__\">F__G__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.dms-module.html\">pygeodesy.dms</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fstats.Fcook-class.html#fkurtosis_\">fkurtosis_()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fstats.Fcook-class.html\">Fcook</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.frechet.FrechetEuclidean-class.html\">FrechetEuclidean</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.frechet-module.html\">pygeodesy.frechet</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy-module.html#F_D\">F_D</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.formy-module.html#flatLocal\">flatLocal()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.formy-module.html\">pygeodesy.formy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.frechet.FrechetExact-class.html\">FrechetExact</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.frechet-module.html\">pygeodesy.frechet</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.dms-module.html#F_D\">F_D</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.dms-module.html\">pygeodesy.dms</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.formy-module.html#flatLocal_\">flatLocal_()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.formy-module.html\">pygeodesy.formy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.frechet.FrechetFlatLocal-class.html\">FrechetFlatLocal</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.frechet-module.html\">pygeodesy.frechet</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy-module.html#F_D60\">F_D60</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#flatLocalTo\">flatLocalTo()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">LatLonBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.frechet.FrechetFlatPolar-class.html\">FrechetFlatPolar</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.frechet-module.html\">pygeodesy.frechet</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.dms-module.html#F_D60\">F_D60</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.dms-module.html\">pygeodesy.dms</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.formy-module.html#flatPolar\">flatPolar()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.formy-module.html\">pygeodesy.formy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.frechet.FrechetHaversine-class.html\">FrechetHaversine</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.frechet-module.html\">pygeodesy.frechet</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy-module.html#F_D60_\">F_D60_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.formy-module.html#flatPolar_\">flatPolar_()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.formy-module.html\">pygeodesy.formy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.frechet.FrechetHubeny-class.html\">FrechetHubeny</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.frechet-module.html\">pygeodesy.frechet</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.dms-module.html#F_D60_\">F_D60_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.dms-module.html\">pygeodesy.dms</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#flatPolarTo\">flatPolarTo()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">LatLonBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.frechet.FrechetKarney-class.html\">FrechetKarney</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.frechet-module.html\">pygeodesy.frechet</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy-module.html#F_D60__\">F_D60__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.albers._AlbersBase-class.html#flattening\">flattening</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.albers._AlbersBase-class.html\">_AlbersBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.frechet.FrechetRadians-class.html\">FrechetRadians</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.frechet-module.html\">pygeodesy.frechet</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.dms-module.html#F_D60__\">F_D60__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.dms-module.html\">pygeodesy.dms</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#flattening\">flattening</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html\">_AzimuthalBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.frechet.FrechetThomas-class.html\">FrechetThomas</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.frechet-module.html\">pygeodesy.frechet</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy-module.html#F_D_\">F_D_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.css.CassiniSoldner-class.html#flattening\">flattening</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.css.CassiniSoldner-class.html\">CassiniSoldner</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.frechet.FrechetVincentys-class.html\">FrechetVincentys</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.frechet-module.html\">pygeodesy.frechet</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.dms-module.html#F_D_\">F_D_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.dms-module.html\">pygeodesy.dms</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ecef._EcefBase-class.html#flattening\">flattening</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ecef._EcefBase-class.html\">_EcefBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fmath-module.html#freduce\">freduce()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fmath-module.html\">pygeodesy.fmath</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy-module.html#F_D__\">F_D__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.etm.ExactTransverseMercator-class.html#flattening\">flattening</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.etm.ExactTransverseMercator-class.html\">ExactTransverseMercator</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fmath-module.html#fremainder\">fremainder()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fmath-module.html\">pygeodesy.fmath</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.dms-module.html#F_D__\">F_D__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.dms-module.html\">pygeodesy.dms</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geod3solve._Geodesic3SolveBase-class.html#flattening\">flattening</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geod3solve._Geodesic3SolveBase-class.html\">_Geodesic3SolveBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.elliptic.Elliptic-class.html#fRF\">fRF()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.elliptic.Elliptic-class.html\">Elliptic</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy-module.html#F_DEG\">F_DEG</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html#flattening\">flattening</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html\">GeodesicExact</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.elliptic.Elliptic-class.html#fRG\">fRG()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.elliptic.Elliptic-class.html\">Elliptic</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.dms-module.html#F_DEG\">F_DEG</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.dms-module.html\">pygeodesy.dms</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ktm.KTransverseMercator-class.html#flattening\">flattening</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ktm.KTransverseMercator-class.html\">KTransverseMercator</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.elliptic.Elliptic-class.html#fRJ\">fRJ()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.elliptic.Elliptic-class.html\">Elliptic</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy-module.html#F_DEG_\">F_DEG_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#flattening\">flattening</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.solveBase._SolveCapsBase-class.html\">_SolveCapsBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.angles.Ang-class.html#fromDegrees\">fromDegrees()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.angles.Ang-class.html\">Ang</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.dms-module.html#F_DEG_\">F_DEG_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.dms-module.html\">pygeodesy.dms</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fstats.Flinear-class.html\">Flinear</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fstats-module.html\">pygeodesy.fstats</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#fromDegrees\">fromDegrees()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html\">AuxAngle</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy-module.html#F_DEG__\">F_DEG__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.angles.Ang-class.html#flipsign\">flipsign()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.angles.Ang-class.html\">Ang</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxAngle.AuxBeta-class.html#fromDegrees\">fromDegrees()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats.auxAngle.AuxBeta-class.html\">AuxBeta</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.dms-module.html#F_DEG__\">F_DEG__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.dms-module.html\">pygeodesy.dms</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.unitsBase.Float-class.html\">Float</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.unitsBase-module.html\">pygeodesy.unitsBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxAngle.AuxChi-class.html#fromDegrees\">fromDegrees()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats.auxAngle.AuxChi-class.html\">AuxChi</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy-module.html#F_DM\">F_DM</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.functions-module.html#float0\">float0()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.functions-module.html\" onclick=\"show_private();\">pygeodesy.deprecated.functions</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxAngle.AuxMu-class.html#fromDegrees\">fromDegrees()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats.auxAngle.AuxMu-class.html\">AuxMu</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.dms-module.html#F_DM\">F_DM</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.dms-module.html\">pygeodesy.dms</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.constants-module.html#float0_\">float0_()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.constants-module.html\">pygeodesy.constants</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxAngle.AuxPhi-class.html#fromDegrees\">fromDegrees()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats.auxAngle.AuxPhi-class.html\">AuxPhi</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy-module.html#F_DM_\">F_DM_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.units.Float_-class.html\">Float_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.units-module.html\">pygeodesy.units</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxAngle.AuxTheta-class.html#fromDegrees\">fromDegrees()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats.auxAngle.AuxTheta-class.html\">AuxTheta</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.dms-module.html#F_DM_\">F_DM_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.dms-module.html\">pygeodesy.dms</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.constants-module.html#float_\">float_()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.constants-module.html\">pygeodesy.constants</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxAngle.AuxXi-class.html#fromDegrees\">fromDegrees()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats.auxAngle.AuxXi-class.html\">AuxXi</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy-module.html#F_DM__\">F_DM__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums.Fsum-class.html#float_int\">float_int</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums.Fsum-class.html\">Fsum</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.angles.Ang-class.html#fromLambertian\">fromLambertian()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.angles.Ang-class.html\">Ang</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.dms-module.html#F_DM__\">F_DM__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.dms-module.html\">pygeodesy.dms</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#floats\">floats()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">Vector3dBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#fromLambertianDegrees\">fromLambertianDegrees()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html\">AuxAngle</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy-module.html#F_DMS\">F_DMS</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.constants-module.html#floats_\">floats_()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.constants-module.html\">pygeodesy.constants</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#fromLambertianRadians\">fromLambertianRadians()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html\">AuxAngle</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.dms-module.html#F_DMS\">F_DMS</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.dms-module.html\">pygeodesy.dms</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums.Fsum-class.html#floor\">floor</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums.Fsum-class.html\">Fsum</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.angles.Ang-class.html#fromRadians\">fromRadians()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.angles.Ang-class.html\">Ang</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy-module.html#F_DMS_\">F_DMS_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#floorDividedBy\">floorDividedBy()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">Vector3dBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#fromRadians\">fromRadians()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html\">AuxAngle</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.dms-module.html#F_DMS_\">F_DMS_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.dms-module.html\">pygeodesy.dms</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#floorDividedBy_\">floorDividedBy_()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">Vector3dBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxAngle.AuxBeta-class.html#fromRadians\">fromRadians()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats.auxAngle.AuxBeta-class.html\">AuxBeta</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy-module.html#F_DMS__\">F_DMS__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fmath-module.html#fma\">fma()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fmath-module.html\">pygeodesy.fmath</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.angles.Ang-class.html#fromScalar\">fromScalar()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.angles.Ang-class.html\">Ang</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.dms-module.html#F_DMS__\">F_DMS__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.dms-module.html\">pygeodesy.dms</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums.Fsum-class.html#fma\">fma()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums.Fsum-class.html\">Fsum</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fmath.Froot-class.html\">Froot</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fmath-module.html\">pygeodesy.fmath</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb.bases.RhumbBase-class.html#f_max\">f_max</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb.bases.RhumbBase-class.html\">RhumbBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums.Fsum-class.html#fma_\">fma_()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums.Fsum-class.html\">Fsum</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltp.Frustum-class.html\">Frustum</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltp-module.html\">pygeodesy.ltp</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy-module.html#F_MIN\">F_MIN</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fmath-module.html\">fmath</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums.Fsum-class.html#fset_\">fset_()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums.Fsum-class.html\">Fsum</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.dms-module.html#F_MIN\">F_MIN</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.dms-module.html\">pygeodesy.dms</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fmath-module.html#fmean\">fmean()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fmath-module.html\">pygeodesy.fmath</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fstats.Fcook-class.html#fskewness\">fskewness()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fstats.Fcook-class.html\">Fcook</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy-module.html#F_MIN_\">F_MIN_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fstats._FstatsBase-class.html#fmean\">fmean()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fstats._FstatsBase-class.html\">_FstatsBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fstats.Fcook-class.html#fskewness_\">fskewness_()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fstats.Fcook-class.html\">Fcook</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.dms-module.html#F_MIN_\">F_MIN_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.dms-module.html\">pygeodesy.dms</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fmath-module.html#fmean_\">fmean_()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fmath-module.html\">pygeodesy.fmath</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fstats.Flinear-class.html#fslope\">fslope()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fstats.Flinear-class.html\">Flinear</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy-module.html#F_MIN__\">F_MIN__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fstats._FstatsBase-class.html#fmean_\">fmean_()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fstats._FstatsBase-class.html\">_FstatsBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fmath.Fsqrt-class.html\">Fsqrt</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fmath-module.html\">pygeodesy.fmath</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.dms-module.html#F_MIN__\">F_MIN__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.dms-module.html\">pygeodesy.dms</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fstats.Fcook-class.html#fmedian\">fmedian()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fstats.Fcook-class.html\">Fcook</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fstats-module.html\">fstats</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy-module.html#F_RAD\">F_RAD</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fstats.Fcook-class.html#fmedian_\">fmedian_()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fstats.Fcook-class.html\">Fcook</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fstats._FstatsBase-class.html#fstdev\">fstdev()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fstats._FstatsBase-class.html\">_FstatsBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.dms-module.html#F_RAD\">F_RAD</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.dms-module.html\">pygeodesy.dms</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.streprs-module.html#Fmt\">Fmt</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.streprs-module.html\">pygeodesy.streprs</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fstats._FstatsBase-class.html#fstdev_\">fstdev_()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fstats._FstatsBase-class.html\">_FstatsBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy-module.html#F_RAD_\">F_RAD_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.classes-module.html#Fn_rt\">Fn_rt()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.classes-module.html\" onclick=\"show_private();\">pygeodesy.deprecated.classes</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.functions-module.html#fStr\">fStr()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.functions-module.html\" onclick=\"show_private();\">pygeodesy.deprecated.functions</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.dms-module.html#F_RAD_\">F_RAD_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.dms-module.html\">pygeodesy.dms</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipses.Ellipse-class.html#foci\">foci</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipses.Ellipse-class.html\">Ellipse</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.streprs-module.html#fstr\">fstr()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.streprs-module.html\">pygeodesy.streprs</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy-module.html#F_RAD__\">F_RAD__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltp.Frustum-class.html#footprint5\">footprint5()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltp.Frustum-class.html\">Frustum</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.functions-module.html#fStrzs\">fStrzs()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.functions-module.html\" onclick=\"show_private();\">pygeodesy.deprecated.functions</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.dms-module.html#F_RAD__\">F_RAD__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.dms-module.html\">pygeodesy.dms</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.Footprint5Tuple-class.html\">Footprint5Tuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples-module.html\">pygeodesy.ltpTuples</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.streprs-module.html#fstrzs\">fstrzs()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.streprs-module.html\">pygeodesy.streprs</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy-module.html#F_SEC\">F_SEC</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.formy-module.html\">formy</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums.Fsum-class.html#fsub\">fsub()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums.Fsum-class.html\">Fsum</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.dms-module.html#F_SEC\">F_SEC</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.dms-module.html\">pygeodesy.dms</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.albers._AlbersBase-class.html#forward\">forward()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.albers._AlbersBase-class.html\">_AlbersBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums.Fsum-class.html#fsub_\">fsub_()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums.Fsum-class.html\">Fsum</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy-module.html#F_SEC_\">F_SEC_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.azimuthal.Equidistant-class.html#forward\">forward()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.azimuthal.Equidistant-class.html\">Equidistant</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums.Fsum-class.html\">Fsum</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums-module.html\">pygeodesy.fsums</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.dms-module.html#F_SEC_\">F_SEC_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.dms-module.html\">pygeodesy.dms</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.azimuthal.EquidistantExact-class.html#forward\">forward()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.azimuthal.EquidistantExact-class.html\">EquidistantExact</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums.Fsum-class.html#fsum\">fsum()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums.Fsum-class.html\">Fsum</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy-module.html#F_SEC__\">F_SEC__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.azimuthal.EquidistantGeodSolve-class.html#forward\">forward()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.azimuthal.EquidistantGeodSolve-class.html\">EquidistantGeodSolve</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums-module.html#fsum\">fsum()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums-module.html\">pygeodesy.fsums</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.dms-module.html#F_SEC__\">F_SEC__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.dms-module.html\">pygeodesy.dms</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.azimuthal.Gnomonic-class.html#forward\">forward()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.azimuthal.Gnomonic-class.html\">Gnomonic</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums-module.html#fsum1\">fsum1()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums-module.html\">pygeodesy.fsums</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#fabs\">fabs()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">Vector3dBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.azimuthal.GnomonicExact-class.html#forward\">forward()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.azimuthal.GnomonicExact-class.html\">GnomonicExact</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums-module.html#fsum1_\">fsum1_()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums-module.html\">pygeodesy.fsums</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fmath-module.html#facos1\">facos1()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fmath-module.html\">pygeodesy.fmath</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.azimuthal.GnomonicKarney-class.html#forward\">forward()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.azimuthal.GnomonicKarney-class.html\">GnomonicKarney</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums-module.html#fsum1f_\">fsum1f_()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums-module.html\">pygeodesy.fsums</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fstats.Fcook-class.html#fadd\">fadd()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fstats.Fcook-class.html\">Fcook</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.azimuthal.LambertEqualArea-class.html#forward\">forward()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.azimuthal.LambertEqualArea-class.html\">LambertEqualArea</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums.Fsum-class.html#fsum2\">fsum2()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums.Fsum-class.html\">Fsum</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fstats.Flinear-class.html#fadd\">fadd()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fstats.Flinear-class.html\">Flinear</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.azimuthal.Orthographic-class.html#forward\">forward()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.azimuthal.Orthographic-class.html\">Orthographic</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums.Fsum-class.html#fsum2_\">fsum2_()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums.Fsum-class.html\">Fsum</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fstats.Fwelford-class.html#fadd\">fadd()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fstats.Fwelford-class.html\">Fwelford</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.azimuthal.Stereographic-class.html#forward\">forward()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.azimuthal.Stereographic-class.html\">Stereographic</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums.Fsum-class.html#fsum2f_\">fsum2f_()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums.Fsum-class.html\">Fsum</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fstats._FstatsBase-class.html#fadd\">fadd()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fstats._FstatsBase-class.html\">_FstatsBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#forward\">forward()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html\">_AzimuthalBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.functions-module.html#Fsum2product\">Fsum2product()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.functions-module.html\" onclick=\"show_private();\">pygeodesy.deprecated.functions</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums.Fsum-class.html#fadd\">fadd()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums.Fsum-class.html\">Fsum</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.azimuthal._EquidistantBase-class.html#forward\">forward()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.azimuthal._EquidistantBase-class.html\">_EquidistantBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\">Fsum2Tuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums-module.html\">pygeodesy.fsums</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fstats.Flinear-class.html#fadd_\">fadd_()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fstats.Flinear-class.html\">Flinear</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.azimuthal._EquidistantBase-class.html#forward\">forward()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.azimuthal._EquidistantBase-class.html\">_EquidistantBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums.Fsum-class.html#Fsum2Tuple_\">Fsum2Tuple_()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums.Fsum-class.html\">Fsum</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fstats._FstatsBase-class.html#fadd_\">fadd_()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fstats._FstatsBase-class.html\">_FstatsBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.azimuthal._GnomonicBase-class.html#forward\">forward()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.azimuthal._GnomonicBase-class.html\">_GnomonicBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums.Fsum-class.html#Fsum_\">Fsum_()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums.Fsum-class.html\">Fsum</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums.Fsum-class.html#fadd_\">fadd_()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums.Fsum-class.html\">Fsum</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.azimuthal._GnomonicBase-class.html#forward\">forward()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.azimuthal._GnomonicBase-class.html\">_GnomonicBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums.Fsum-class.html#fsum_\">fsum_()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums.Fsum-class.html\">Fsum</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltp.ChLV-class.html#false2\">false2()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltp.ChLV-class.html\">ChLV</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.css.CassiniSoldner-class.html#forward\">forward()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.css.CassiniSoldner-class.html\">CassiniSoldner</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums.Fsum2Tuple-class.html#Fsum_\">Fsum_()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\">Fsum2Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.ChLVYX2Tuple-class.html#false2\">false2()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.ChLVYX2Tuple-class.html\">ChLVYX2Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ecef._EcefBase-class.html#forward\">forward()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ecef._EcefBase-class.html\">_EcefBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums-module.html#fsum_\">fsum_()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums-module.html\">pygeodesy.fsums</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.functions-module.html#false2f\">false2f()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.functions-module.html\" onclick=\"show_private();\">pygeodesy.deprecated.functions</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.etm.ExactTransverseMercator-class.html#forward\">forward()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.etm.ExactTransverseMercator-class.html\">ExactTransverseMercator</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums.Fsum-class.html#Fsumf_\">Fsumf_()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums.Fsum-class.html\">Fsum</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html#falsed\">falsed</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html\">UtmUpsBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ktm.KTransverseMercator-class.html#forward\">forward()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ktm.KTransverseMercator-class.html\">KTransverseMercator</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums.Fsum-class.html#fsumf_\">fsumf_()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums.Fsum-class.html\">Fsum</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ups.Ups-class.html#falsed2\">falsed2</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ups.Ups-class.html\">Ups</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltp.ChLV-class.html#forward\">forward()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltp.ChLV-class.html\">ChLV</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums-module.html#fsumf_\">fsumf_()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums-module.html\">pygeodesy.fsums</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utm.Utm-class.html#falsed2\">falsed2</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utm.Utm-class.html\">Utm</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltp.ChLVa-class.html#forward\">forward()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltp.ChLVa-class.html\">ChLVa</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums-module.html\">fsums</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html#falsed2\">falsed2</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html\">UtmUpsBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltp.ChLVe-class.html#forward\">forward()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltp.ChLVe-class.html\">ChLVe</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utily-module.html#ft2m\">ft2m()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utily-module.html\">pygeodesy.utily</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.functions-module.html#falsed2f\">falsed2f()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.functions-module.html\" onclick=\"show_private();\">pygeodesy.deprecated.functions</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltp.LocalCartesian-class.html#forward\">forward()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltp.LocalCartesian-class.html\">LocalCartesian</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.functions-module.html\">functions</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated-module.html\">pygeodesy.deprecated</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.osgr.Osgr-class.html#falsing0\">falsing0</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.osgr.Osgr-class.html\">Osgr</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.css.CassiniSoldner-class.html#forward4\">forward4()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.css.CassiniSoldner-class.html\">CassiniSoldner</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utily-module.html#furlong2m\">furlong2m()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utily-module.html\">pygeodesy.utily</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fmath-module.html#fasin1\">fasin1()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fmath-module.html\">pygeodesy.fmath</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.Forward4Tuple-class.html\">Forward4Tuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples-module.html\">pygeodesy.namedTuples</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fstats._FstatsBase-class.html#fvariance\">fvariance()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fstats._FstatsBase-class.html\">_FstatsBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fmath-module.html#fatan\">fatan()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fmath-module.html\">pygeodesy.fmath</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.css.CassiniSoldner-class.html#forward6\">forward6()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.css.CassiniSoldner-class.html\">CassiniSoldner</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fstats._FstatsBase-class.html#fvariance_\">fvariance_()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fstats._FstatsBase-class.html\">_FstatsBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fmath-module.html#fatan1\">fatan1()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fmath-module.html\">pygeodesy.fmath</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ecef._EcefBase-class.html#forward_\">forward_()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ecef._EcefBase-class.html\">_EcefBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fstats.Fwelford-class.html\">Fwelford</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fstats-module.html\">pygeodesy.fstats</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fmath-module.html#fatan2\">fatan2()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fmath-module.html\">pygeodesy.fmath</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.triaxial5.Triaxial-class.html#forwardBetaOmega\">forwardBetaOmega()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.triaxial5.Triaxial-class.html\">Triaxial</a>)</span></td>\n<td width=\"33%\" class=\"link-index\">&nbsp;</td>\n</tr>\n</table>\n</td></tr>\n</table>\n<br /><br /><!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th bgcolor=\"#70b0f0\" class=\"navbar-select\"\n          >&nbsp;&nbsp;&nbsp;Indices&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:16 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/identifier-index-G.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>Identifier Index</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th bgcolor=\"#70b0f0\" class=\"navbar-select\"\n          >&nbsp;&nbsp;&nbsp;Indices&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">&nbsp;</td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"identifier-index-G.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<center><b>[\n <a href=\"identifier-index.html\">Identifiers</a>\n| <a href=\"term-index.html\">Term Definitions</a>\n]</b></center><br />\n<table border=\"0\" width=\"100%\">\n<tr valign=\"bottom\"><td>\n<h1 class=\"epydoc\">Identifier Index</h1>\n</td><td>\n[\n <a href=\"identifier-index-A.html\">A</a>\n <a href=\"identifier-index-B.html\">B</a>\n <a href=\"identifier-index-C.html\">C</a>\n <a href=\"identifier-index-D.html\">D</a>\n <a href=\"identifier-index-E.html\">E</a>\n <a href=\"identifier-index-F.html\">F</a>\n <a href=\"identifier-index-G.html\">G</a>\n <a href=\"identifier-index-H.html\">H</a>\n <a href=\"identifier-index-I.html\">I</a>\n <a href=\"identifier-index-J.html\">J</a>\n <a href=\"identifier-index-K.html\">K</a>\n <a href=\"identifier-index-L.html\">L</a>\n <a href=\"identifier-index-M.html\">M</a>\n <a href=\"identifier-index-N.html\">N</a>\n <a href=\"identifier-index-O.html\">O</a>\n <a href=\"identifier-index-P.html\">P</a>\n <a href=\"identifier-index-Q.html\">Q</a>\n <a href=\"identifier-index-R.html\">R</a>\n <a href=\"identifier-index-S.html\">S</a>\n <a href=\"identifier-index-T.html\">T</a>\n <a href=\"identifier-index-U.html\">U</a>\n <a href=\"identifier-index-V.html\">V</a>\n <a href=\"identifier-index-W.html\">W</a>\n <a href=\"identifier-index-X.html\">X</a>\n <a href=\"identifier-index-Y.html\">Y</a>\n <a href=\"identifier-index-Z.html\">Z</a>\n <a href=\"identifier-index-_.html\">_</a>\n]\n</td></table>\n<table border=\"0\" width=\"100%\">\n<tr valign=\"top\"><td valign=\"top\" width=\"1%\"><h2 class=\"epydoc\"><a name=\"G\">G</a></h2></td>\n<td valign=\"top\">\n<table class=\"link-index\" width=\"100%\" border=\"1\">\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#gamma\">gamma</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html\">LatLonEllipsoidalBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html\">GeodesicAreaExact</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx.gxarea-module.html\">pygeodesy.geodesicx.gxarea</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#geoidHeight2\">geoidHeight2()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html\">LatLonEllipsoidalBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html#gamma\">gamma</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html\">UtmUpsBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.errors.GeodesicError-class.html\">GeodesicError</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.errors-module.html\">pygeodesy.errors</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.elevations.GeoidHeight2Tuple-class.html\">GeoidHeight2Tuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.elevations-module.html\">pygeodesy.elevations</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.gars.Garef-class.html\">Garef</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.gars-module.html\">pygeodesy.gars</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html\">GeodesicExact</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx.gx-module.html\">pygeodesy.geodesicx.gx</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geoids.GeoidHeight5Tuple-class.html\">GeoidHeight5Tuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geoids-module.html\">pygeodesy.geoids</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.gars-module.html\">gars</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesici-module.html\">geodesici</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geoids.GeoidKarney-class.html\">GeoidKarney</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geoids-module.html\">pygeodesy.geoids</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.gars.GARSError-class.html\">GARSError</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.gars-module.html\">pygeodesy.gars</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicw.GeodesicLine-class.html\">GeodesicLine</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicw-module.html\">pygeodesy.geodesicw</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geoids.GeoidPGM-class.html\">GeoidPGM</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geoids-module.html\">pygeodesy.geoids</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utily-module.html#gdf\">gdf()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utily-module.html\">pygeodesy.utily</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geod3solve.GeodesicLine3Solve-class.html\">GeodesicLine3Solve</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geod3solve-module.html\">pygeodesy.geod3solve</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geoids-module.html\">geoids</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.karney.GDict-class.html\">GDict</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.karney-module.html\">pygeodesy.karney</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx.gx.GeodesicLineExact-class.html\">GeodesicLineExact</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx.gx-module.html\">pygeodesy.geodesicx.gx</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geoids-module.html#geoids\">geoids</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geoids-module.html\">pygeodesy.geoids</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.bases.LLK-class.html#GEOCENTRIC\">GEOCENTRIC</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.bases.LLK-class.html\">LLK</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodsolve.GeodesicLineSolve-class.html\">GeodesicLineSolve</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodsolve-module.html\">pygeodesy.geodsolve</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.wgrs.Georef-class.html\">Georef</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.wgrs-module.html\">pygeodesy.wgrs</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxLat.AuxLat-class.html#Geocentric\">Geocentric()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats.auxLat.AuxLat-class.html\">AuxLat</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.karney.Caps-class.html#GEODESICSCALE\">GEODESICSCALE</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.karney.Caps-class.html\">Caps</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.named._NamedEnum-class.html#get\">get()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.named._NamedEnum-class.html\">_NamedEnum</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.bases.LLK-class.html#GEOCENTRIC_X\">GEOCENTRIC_X</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.bases.LLK-class.html\">LLK</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.karney._CapsBase-class.html#GEODESICSCALE\">GEODESICSCALE</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.karney._CapsBase-class.html\">_CapsBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.bases.LLK-class.html#get\">get()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.bases.LLK-class.html\">LLK</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geod3solve-module.html\">geod3solve</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodsolve.GeodesicSolve-class.html\">GeodesicSolve</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodsolve-module.html\">pygeodesy.geodsolve</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.consterns.Elliperim-class.html#GK\">GK()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.consterns.Elliperim-class.html\">Elliperim</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geod3solve._Geodesic3SolveBase-class.html#Geod3Solve\">Geod3Solve</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geod3solve._Geodesic3SolveBase-class.html\">_Geodesic3SolveBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#geodesicw\">geodesicw</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.azimuthal.Gnomonic-class.html\">Gnomonic</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.azimuthal-module.html\">pygeodesy.azimuthal</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geod3solve.Geod3Solve8Tuple-class.html\">Geod3Solve8Tuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geod3solve-module.html\">pygeodesy.geod3solve</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicw-module.html\">geodesicw</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.azimuthal-module.html#gnomonic\">gnomonic()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.azimuthal-module.html\">pygeodesy.azimuthal</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.azimuthal.EquidistantExact-class.html#geodesic\">geodesic</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.azimuthal.EquidistantExact-class.html\">EquidistantExact</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalExact.LatLon-class.html#geodesicx\">geodesicx</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalExact.LatLon-class.html\">LatLon</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.azimuthal.GnomonicExact-class.html\">GnomonicExact</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.azimuthal-module.html\">pygeodesy.azimuthal</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.azimuthal.EquidistantGeodSolve-class.html#geodesic\">geodesic</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.azimuthal.EquidistantGeodSolve-class.html\">EquidistantGeodSolve</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalGeodSolve.LatLon-class.html#geodesicx\">geodesicx</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalGeodSolve.LatLon-class.html\">LatLon</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.azimuthal.GnomonicGeodSolve-class.html\">GnomonicGeodSolve</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.azimuthal-module.html\">pygeodesy.azimuthal</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.azimuthal.EquidistantKarney-class.html#geodesic\">geodesic</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.azimuthal.EquidistantKarney-class.html\">EquidistantKarney</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#geodesicx\">geodesicx</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.azimuthal.GnomonicKarney-class.html\">GnomonicKarney</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.azimuthal-module.html\">pygeodesy.azimuthal</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.azimuthal.GnomonicExact-class.html#geodesic\">geodesic</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.azimuthal.GnomonicExact-class.html\">GnomonicExact</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx-module.html\">geodesicx</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utily-module.html#grades\">grades()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utily-module.html\">pygeodesy.utily</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.azimuthal.GnomonicGeodSolve-class.html#geodesic\">geodesic</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.azimuthal.GnomonicGeodSolve-class.html\">GnomonicGeodSolve</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.bases.LLK-class.html#GEODETIC\">GEODETIC</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.bases.LLK-class.html\">LLK</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utily-module.html#grades2degrees\">grades2degrees()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utily-module.html\">pygeodesy.utily</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.azimuthal.GnomonicKarney-class.html#geodesic\">geodesic</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.azimuthal.GnomonicKarney-class.html\">GnomonicKarney</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxLat.AuxLat-class.html#Geodetic\">Geodetic()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats.auxLat.AuxLat-class.html\">AuxLat</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utily-module.html#grades2radians\">grades2radians()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utily-module.html\">pygeodesy.utily</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.azimuthal._AzimuthalGeodesic-class.html#geodesic\">geodesic</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.azimuthal._AzimuthalGeodesic-class.html\">_AzimuthalGeodesic</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.bases.LLK-class.html#GEODETIC_LON0\">GEODETIC_LON0</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.bases.LLK-class.html\">LLK</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utily-module.html#grades400\">grades400()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utily-module.html\">pygeodesy.utily</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.css.CassiniSoldner-class.html#geodesic\">geodesic</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.css.CassiniSoldner-class.html\">CassiniSoldner</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.bases.LLK-class.html#GEODETIC_X\">GEODETIC_X</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.bases.LLK-class.html\">LLK</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.sphericalNvector.LatLon-class.html#greatCircle\">greatCircle()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.sphericalNvector.LatLon-class.html\">LatLon</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#geodesic\">geodesic</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html\">LatLonEllipsoidalBaseDI</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#geodsolve\">geodsolve</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.sphericalNvector.Nvector-class.html#greatCircle\">greatCircle()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.sphericalNvector.Nvector-class.html\">Nvector</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalKarney.LatLon-class.html#geodesic\">geodesic</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalKarney.LatLon-class.html\">LatLon</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodsolve-module.html\">geodsolve</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html#greatCircle\">greatCircle()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html\">LatLon</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#geodesic\">geodesic</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodsolve._GeodesicSolveBase-class.html#GeodSolve\">GeodSolve</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodsolve._GeodesicSolveBase-class.html\">_GeodesicSolveBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.sphericalNvector.LatLon-class.html#greatCircleTo\">greatCircleTo()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.sphericalNvector.LatLon-class.html\">LatLon</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesici._IntersectBase-class.html#geodesic\">geodesic</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesici._IntersectBase-class.html\">_IntersectBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodsolve.GeodSolve12Tuple-class.html\">GeodSolve12Tuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodsolve-module.html\">pygeodesy.geodsolve</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.Aer-class.html#groundrange\">groundrange</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.Aer-class.html\">Aer</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicw.Geodesic-class.html\">Geodesic</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicw-module.html\">pygeodesy.geodesicw</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.bases.LLK-class.html#GEOGRAPHIC\">GEOGRAPHIC</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.bases.LLK-class.html\">LLK</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.Aer4Tuple-class.html#groundrange\">groundrange</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.Aer4Tuple-class.html\">Aer4Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#geodesic\">geodesic</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html\">GeodesicAreaExact</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geohash-module.html\">geohash</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.Local9Tuple-class.html#groundrange\">groundrange</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.Local9Tuple-class.html\">Local9Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#geodesic\">geodesic</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html\">_GeodesicLineExact</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geohash.Geohash-class.html\">Geohash</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geohash-module.html\">pygeodesy.geohash</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.Ned-class.html#groundrange\">groundrange</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.Ned-class.html\">Ned</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodsolve.GeodesicLineSolve-class.html#geodesic\">geodesic</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodsolve.GeodesicLineSolve-class.html\">GeodesicLineSolve</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geohash.Geohashed-class.html\">Geohashed</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geohash-module.html\">pygeodesy.geohash</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.XyzLocal-class.html#groundrange\">groundrange</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.XyzLocal-class.html\">XyzLocal</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geod3solve.GeodesicLine3Solve-class.html#geodesic3\">geodesic3</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geod3solve.GeodesicLine3Solve-class.html\">GeodesicLine3Solve</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geohash.GeohashError-class.html\">GeohashError</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geohash-module.html\">pygeodesy.geohash</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx.gx-module.html\">gx</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx-module.html\">pygeodesy.geodesicx</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geod3solve.Geodesic3Error-class.html\">Geodesic3Error</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geod3solve-module.html\">pygeodesy.geod3solve</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geoids.GeoidEGM96-class.html\">GeoidEGM96</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geoids-module.html\">pygeodesy.geoids</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx.gxarea-module.html\">gxarea</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx-module.html\">pygeodesy.geodesicx</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geod3solve.Geodesic3Solve-class.html\">Geodesic3Solve</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geod3solve-module.html\">pygeodesy.geod3solve</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geoids.GeoidError-class.html\">GeoidError</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geoids-module.html\">pygeodesy.geoids</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx.gxbases-module.html\">gxbases</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx-module.html\">pygeodesy.geodesicx</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#geodesic_\">geodesic_()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geoids.GeoidG2012B-class.html\">GeoidG2012B</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geoids-module.html\">pygeodesy.geoids</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx.gxline-module.html\">gxline</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx-module.html\">pygeodesy.geodesicx</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicw-module.html#Geodesic_WGS84\">Geodesic_WGS84()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicw-module.html\">pygeodesy.geodesicw</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.elevations-module.html#geoidHeight2\">geoidHeight2()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.elevations-module.html\">pygeodesy.elevations</a>)</span></td>\n<td width=\"33%\" class=\"link-index\">&nbsp;</td>\n</tr>\n</table>\n</td></tr>\n</table>\n<br /><br /><!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th bgcolor=\"#70b0f0\" class=\"navbar-select\"\n          >&nbsp;&nbsp;&nbsp;Indices&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:16 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/identifier-index-H.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>Identifier Index</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th bgcolor=\"#70b0f0\" class=\"navbar-select\"\n          >&nbsp;&nbsp;&nbsp;Indices&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">&nbsp;</td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"identifier-index-H.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<center><b>[\n <a href=\"identifier-index.html\">Identifiers</a>\n| <a href=\"term-index.html\">Term Definitions</a>\n]</b></center><br />\n<table border=\"0\" width=\"100%\">\n<tr valign=\"bottom\"><td>\n<h1 class=\"epydoc\">Identifier Index</h1>\n</td><td>\n[\n <a href=\"identifier-index-A.html\">A</a>\n <a href=\"identifier-index-B.html\">B</a>\n <a href=\"identifier-index-C.html\">C</a>\n <a href=\"identifier-index-D.html\">D</a>\n <a href=\"identifier-index-E.html\">E</a>\n <a href=\"identifier-index-F.html\">F</a>\n <a href=\"identifier-index-G.html\">G</a>\n <a href=\"identifier-index-H.html\">H</a>\n <a href=\"identifier-index-I.html\">I</a>\n <a href=\"identifier-index-J.html\">J</a>\n <a href=\"identifier-index-K.html\">K</a>\n <a href=\"identifier-index-L.html\">L</a>\n <a href=\"identifier-index-M.html\">M</a>\n <a href=\"identifier-index-N.html\">N</a>\n <a href=\"identifier-index-O.html\">O</a>\n <a href=\"identifier-index-P.html\">P</a>\n <a href=\"identifier-index-Q.html\">Q</a>\n <a href=\"identifier-index-R.html\">R</a>\n <a href=\"identifier-index-S.html\">S</a>\n <a href=\"identifier-index-T.html\">T</a>\n <a href=\"identifier-index-U.html\">U</a>\n <a href=\"identifier-index-V.html\">V</a>\n <a href=\"identifier-index-W.html\">W</a>\n <a href=\"identifier-index-X.html\">X</a>\n <a href=\"identifier-index-Y.html\">Y</a>\n <a href=\"identifier-index-Z.html\">Z</a>\n <a href=\"identifier-index-_.html\">_</a>\n]\n</td></table>\n<table border=\"0\" width=\"100%\">\n<tr valign=\"top\"><td valign=\"top\" width=\"1%\"><h2 class=\"epydoc\"><a name=\"H\">H</a></h2></td>\n<td valign=\"top\">\n<table class=\"link-index\" width=\"100%\" border=\"1\">\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#H\">H</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.nvectorBase.NvectorBase-class.html\">NvectorBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.booleans._LatLonBool-class.html#height\">height</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.booleans._LatLonBool-class.html\">_LatLonBool</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.classes-module.html#HeightIDW3\">HeightIDW3()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.classes-module.html\" onclick=\"show_private();\">pygeodesy.deprecated.classes</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#h\">h</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.nvectorBase.NvectorBase-class.html\">NvectorBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#height\">height</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.cartesianBase.CartesianBase-class.html\">CartesianBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.classes-module.html#HeightIDWcosineAndoyerLambert\">HeightIDWcosineAndoyerLambert()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.classes-module.html\" onclick=\"show_private();\">pygeodesy.deprecated.classes</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.ChLV9Tuple-class.html#h_LV03\">h_LV03</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.ChLV9Tuple-class.html\">ChLV9Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.css.Css-class.html#height\">height</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.css.Css-class.html\">Css</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.classes-module.html#HeightIDWcosineForsytheAndoyerLambert\">HeightIDWcosineForsytheAndoyerLambert()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.classes-module.html\" onclick=\"show_private();\">pygeodesy.deprecated.classes</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.ChLV9Tuple-class.html#h_LV95\">h_LV95</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.ChLV9Tuple-class.html\">ChLV9Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#height\">height</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">LatLonBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.heights.HeightIDWcosineLaw-class.html\">HeightIDWcosineLaw</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.heights-module.html\">pygeodesy.heights</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utily-module.html#ha2acre\">ha2acre()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utily-module.html\">pygeodesy.utily</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.lcc.Lcc-class.html#height\">height</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.lcc.Lcc-class.html\">Lcc</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.heights.HeightIDWdistanceTo-class.html\">HeightIDWdistanceTo</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.heights-module.html\">pygeodesy.heights</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utily-module.html#ha2m2\">ha2m2()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utily-module.html\">pygeodesy.utily</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.units.Height-class.html\">Height</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.units-module.html\">pygeodesy.units</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.heights.HeightIDWequirectangular-class.html\">HeightIDWequirectangular</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.heights-module.html\">pygeodesy.heights</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.basics-module.html#halfs2\">halfs2()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.basics-module.html\">pygeodesy.basics</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.wgrs.Georef-class.html#height\">height</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.wgrs.Georef-class.html\">Georef</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.heights.HeightIDWeuclidean-class.html\">HeightIDWeuclidean</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.heights-module.html\">pygeodesy.heights</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#hartzell\">hartzell()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.cartesianBase.CartesianBase-class.html\">CartesianBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geoids.GeoidEGM96-class.html#height\">height()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geoids.GeoidEGM96-class.html\">GeoidEGM96</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.heights.HeightIDWexact-class.html\">HeightIDWexact</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.heights-module.html\">pygeodesy.heights</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.formy-module.html#hartzell\">hartzell()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.formy-module.html\">pygeodesy.formy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geoids.GeoidG2012B-class.html#height\">height()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geoids.GeoidG2012B-class.html\">GeoidG2012B</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.heights.HeightIDWflatLocal-class.html\">HeightIDWflatLocal</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.heights-module.html\">pygeodesy.heights</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#hartzell\">hartzell()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">LatLonBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geoids._GeoidBase-class.html#height\">height()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geoids._GeoidBase-class.html\">_GeoidBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.heights.HeightIDWflatPolar-class.html\">HeightIDWflatPolar</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.heights-module.html\">pygeodesy.heights</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipses.Ellipse-class.html#hartzell4\">hartzell4()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipses.Ellipse-class.html\">Ellipse</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geoids._GeoidBase-class.html#height\">height()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geoids._GeoidBase-class.html\">_GeoidBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.heights.HeightIDWhaversine-class.html\">HeightIDWhaversine</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.heights-module.html\">pygeodesy.heights</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#hartzell4\">hartzell4()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.heights.HeightIDWcosineLaw-class.html#height\">height()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.heights.HeightIDWcosineLaw-class.html\">HeightIDWcosineLaw</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.heights.HeightIDWhubeny-class.html\">HeightIDWhubeny</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.heights-module.html\">pygeodesy.heights</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#hartzell4\">hartzell4()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html\">_UnOrderedTriaxialBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.heights.HeightIDWdistanceTo-class.html#height\">height()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.heights.HeightIDWdistanceTo-class.html\">HeightIDWdistanceTo</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.heights.HeightIDWkarney-class.html\">HeightIDWkarney</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.heights-module.html\">pygeodesy.heights</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.triaxial5-module.html#hartzell4\">hartzell4()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.triaxial5-module.html\" onclick=\"show_private();\">pygeodesy.triaxials.triaxial5</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.heights.HeightIDWequirectangular-class.html#height\">height()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.heights.HeightIDWequirectangular-class.html\">HeightIDWequirectangular</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.heights.HeightIDWthomas-class.html\">HeightIDWthomas</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.heights-module.html\">pygeodesy.heights</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.hausdorff-module.html\">hausdorff</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.heights.HeightIDWeuclidean-class.html#height\">height()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.heights.HeightIDWeuclidean-class.html\">HeightIDWeuclidean</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.heights.HeightIDWvincentys-class.html\">HeightIDWvincentys</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.heights-module.html\">pygeodesy.heights</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.hausdorff.Hausdorff-class.html\">Hausdorff</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.hausdorff-module.html\">pygeodesy.hausdorff</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.heights.HeightIDWflatLocal-class.html#height\">height()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.heights.HeightIDWflatLocal-class.html\">HeightIDWflatLocal</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.heights.HeightLinear-class.html\">HeightLinear</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.heights-module.html\">pygeodesy.heights</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.hausdorff.Hausdorff6Tuple-class.html\">Hausdorff6Tuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.hausdorff-module.html\">pygeodesy.hausdorff</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.heights.HeightIDWflatPolar-class.html#height\">height()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.heights.HeightIDWflatPolar-class.html\">HeightIDWflatPolar</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.heights.HeightLSQBiSpline-class.html\">HeightLSQBiSpline</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.heights-module.html\">pygeodesy.heights</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.hausdorff-module.html#hausdorff_\">hausdorff_()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.hausdorff-module.html\">pygeodesy.hausdorff</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.heights.HeightIDWhaversine-class.html#height\">height()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.heights.HeightIDWhaversine-class.html\">HeightIDWhaversine</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.formy-module.html#heightOf\">heightOf()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.formy-module.html\">pygeodesy.formy</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.classes-module.html#HausdorffCosineAndoyerLambert\">HausdorffCosineAndoyerLambert()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.classes-module.html\" onclick=\"show_private();\">pygeodesy.deprecated.classes</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.heights.HeightIDWkarney-class.html#height\">height()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.heights.HeightIDWkarney-class.html\">HeightIDWkarney</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.formy-module.html#heightOrthometric\">heightOrthometric()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.formy-module.html\">pygeodesy.formy</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.classes-module.html#HausdorffCosineForsytheAndoyerLambert\">HausdorffCosineForsytheAndoyerLambert()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.classes-module.html\" onclick=\"show_private();\">pygeodesy.deprecated.classes</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.heights.HeightIDWthomas-class.html#height\">height()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.heights.HeightIDWthomas-class.html\">HeightIDWthomas</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.heights-module.html\">heights</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.hausdorff.HausdorffCosineLaw-class.html\">HausdorffCosineLaw</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.hausdorff-module.html\">pygeodesy.hausdorff</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.heights.HeightIDWvincentys-class.html#height\">height()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.heights.HeightIDWvincentys-class.html\">HeightIDWvincentys</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.heights.HeightSmoothBiSpline-class.html\">HeightSmoothBiSpline</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.heights-module.html\">pygeodesy.heights</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.hausdorff.HausdorffDegrees-class.html\">HausdorffDegrees</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.hausdorff-module.html\">pygeodesy.hausdorff</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.heights.HeightLinear-class.html#height\">height()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.heights.HeightLinear-class.html\">HeightLinear</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#heightStr\">heightStr()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">LatLonBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.hausdorff.HausdorffDistanceTo-class.html\">HausdorffDistanceTo</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.hausdorff-module.html\">pygeodesy.hausdorff</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.heights._HeightBase-class.html#height\">height()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.heights._HeightBase-class.html\">_HeightBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.units.HeightX-class.html\">HeightX</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.units-module.html\">pygeodesy.units</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.hausdorff.HausdorffEquirectangular-class.html\">HausdorffEquirectangular</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.hausdorff-module.html\">pygeodesy.hausdorff</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.heights._HeightIDW-class.html#height\">height()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.heights._HeightIDW-class.html\">_HeightIDW</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.epsg.Epsg-class.html#hemisphere\">hemisphere</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.epsg.Epsg-class.html\">Epsg</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.hausdorff.HausdorffError-class.html\">HausdorffError</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.hausdorff-module.html\">pygeodesy.hausdorff</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.heights._HeightIDW-class.html#height\">height()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.heights._HeightIDW-class.html\">_HeightIDW</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html#hemisphere\">hemisphere</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html\">UtmUpsBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.hausdorff.HausdorffEuclidean-class.html\">HausdorffEuclidean</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.hausdorff-module.html\">pygeodesy.hausdorff</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.heights._HeightNamed-class.html#height\">height()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.heights._HeightNamed-class.html\">_HeightNamed</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltp.Frustum-class.html#hfov\">hfov</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltp.Frustum-class.html\">Frustum</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.hausdorff.HausdorffExact-class.html\">HausdorffExact</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.hausdorff-module.html\">pygeodesy.hausdorff</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltp.LocalCartesian-class.html#height0\">height0</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltp.LocalCartesian-class.html\">LocalCartesian</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.consterns.Elliperim-class.html#HG\">HG()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.consterns.Elliperim-class.html\">Elliperim</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.hausdorff.HausdorffFlatLocal-class.html\">HausdorffFlatLocal</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.hausdorff-module.html\">pygeodesy.hausdorff</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#height3\">height3()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.cartesianBase.CartesianBase-class.html\">CartesianBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geoids.GeoidKarney-class.html#highest\">highest()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geoids.GeoidKarney-class.html\">GeoidKarney</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.hausdorff.HausdorffFlatPolar-class.html\">HausdorffFlatPolar</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.hausdorff-module.html\">pygeodesy.hausdorff</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#height4\">height4()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.cartesianBase.CartesianBase-class.html\">CartesianBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geoids._GeoidBase-class.html#highest\">highest()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geoids._GeoidBase-class.html\">_GeoidBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.hausdorff.HausdorffHaversine-class.html\">HausdorffHaversine</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.hausdorff-module.html\">pygeodesy.hausdorff</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipses.Ellipse-class.html#height4\">height4()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipses.Ellipse-class.html\">Ellipse</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geoids._GeoidBase-class.html#hits\">hits</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geoids._GeoidBase-class.html\">_GeoidBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.hausdorff.HausdorffHubeny-class.html\">HausdorffHubeny</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.hausdorff-module.html\">pygeodesy.hausdorff</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#height4\">height4()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#homogeneous\">homogeneous</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">Vector3dBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.hausdorff.HausdorffKarney-class.html\">HausdorffKarney</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.hausdorff-module.html\">pygeodesy.hausdorff</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#height4\">height4()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">LatLonBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.formy-module.html#horizon\">horizon()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.formy-module.html\">pygeodesy.formy</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.hausdorff.HausdorffRadians-class.html\">HausdorffRadians</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.hausdorff-module.html\">pygeodesy.hausdorff</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#height4\">height4()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html\">_UnOrderedTriaxialBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#hStr\">hStr()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.nvectorBase.NvectorBase-class.html\">NvectorBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.hausdorff.HausdorffThomas-class.html\">HausdorffThomas</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.hausdorff-module.html\">pygeodesy.hausdorff</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.triaxial5-module.html#height4\">height4()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.triaxial5-module.html\" onclick=\"show_private();\">pygeodesy.triaxials.triaxial5</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.streprs-module.html#hstr\">hstr()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.streprs-module.html\">pygeodesy.streprs</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.hausdorff.HausdorffVincentys-class.html\">HausdorffVincentys</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.hausdorff-module.html\">pygeodesy.hausdorff</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.units.Height_-class.html\">Height_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.units-module.html\">pygeodesy.units</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.heights._HeightIDW-class.html#hypot\">hypot</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.heights._HeightIDW-class.html\">_HeightIDW</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utily-module.html#hav\">hav()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utily-module.html\">pygeodesy.utily</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geoids._GeoidBase-class.html#height_\">height_()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geoids._GeoidBase-class.html\">_GeoidBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fmath-module.html#hypot\">hypot()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fmath-module.html\">pygeodesy.fmath</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.formy-module.html#haversine\">haversine()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.formy-module.html\">pygeodesy.formy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.heights._HeightNamed-class.html#height_\">height_()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.heights._HeightNamed-class.html\">_HeightNamed</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fmath-module.html#hypot1\">hypot1()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fmath-module.html\">pygeodesy.fmath</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.formy-module.html#haversine_\">haversine_()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.formy-module.html\">pygeodesy.formy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.heights.HeightCubic-class.html\">HeightCubic</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.heights-module.html\">pygeodesy.heights</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fmath-module.html#hypot2\">hypot2()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fmath-module.html\">pygeodesy.fmath</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geohash-module.html#haversine_\">haversine_()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geohash-module.html\">pygeodesy.geohash</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.heights.HeightError-class.html\">HeightError</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.heights-module.html\">pygeodesy.heights</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fmath-module.html#hypot2_\">hypot2_()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fmath-module.html\">pygeodesy.fmath</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geohash.Geohash-class.html#haversineTo\">haversineTo()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geohash.Geohash-class.html\">Geohash</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.classes-module.html#HeightIDW\">HeightIDW()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.classes-module.html\" onclick=\"show_private();\">pygeodesy.deprecated.classes</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.functions-module.html#hypot3\">hypot3()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.functions-module.html\" onclick=\"show_private();\">pygeodesy.deprecated.functions</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#haversineTo\">haversineTo()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">LatLonBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.classes-module.html#HeightIDW2\">HeightIDW2()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.classes-module.html\" onclick=\"show_private();\">pygeodesy.deprecated.classes</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fmath-module.html#hypot_\">hypot_()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fmath-module.html\">pygeodesy.fmath</a>)</span></td>\n</tr>\n</table>\n</td></tr>\n</table>\n<br /><br /><!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th bgcolor=\"#70b0f0\" class=\"navbar-select\"\n          >&nbsp;&nbsp;&nbsp;Indices&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:16 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/identifier-index-I.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>Identifier Index</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th bgcolor=\"#70b0f0\" class=\"navbar-select\"\n          >&nbsp;&nbsp;&nbsp;Indices&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">&nbsp;</td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"identifier-index-I.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<center><b>[\n <a href=\"identifier-index.html\">Identifiers</a>\n| <a href=\"term-index.html\">Term Definitions</a>\n]</b></center><br />\n<table border=\"0\" width=\"100%\">\n<tr valign=\"bottom\"><td>\n<h1 class=\"epydoc\">Identifier Index</h1>\n</td><td>\n[\n <a href=\"identifier-index-A.html\">A</a>\n <a href=\"identifier-index-B.html\">B</a>\n <a href=\"identifier-index-C.html\">C</a>\n <a href=\"identifier-index-D.html\">D</a>\n <a href=\"identifier-index-E.html\">E</a>\n <a href=\"identifier-index-F.html\">F</a>\n <a href=\"identifier-index-G.html\">G</a>\n <a href=\"identifier-index-H.html\">H</a>\n <a href=\"identifier-index-I.html\">I</a>\n <a href=\"identifier-index-J.html\">J</a>\n <a href=\"identifier-index-K.html\">K</a>\n <a href=\"identifier-index-L.html\">L</a>\n <a href=\"identifier-index-M.html\">M</a>\n <a href=\"identifier-index-N.html\">N</a>\n <a href=\"identifier-index-O.html\">O</a>\n <a href=\"identifier-index-P.html\">P</a>\n <a href=\"identifier-index-Q.html\">Q</a>\n <a href=\"identifier-index-R.html\">R</a>\n <a href=\"identifier-index-S.html\">S</a>\n <a href=\"identifier-index-T.html\">T</a>\n <a href=\"identifier-index-U.html\">U</a>\n <a href=\"identifier-index-V.html\">V</a>\n <a href=\"identifier-index-W.html\">W</a>\n <a href=\"identifier-index-X.html\">X</a>\n <a href=\"identifier-index-Y.html\">Y</a>\n <a href=\"identifier-index-Z.html\">Z</a>\n <a href=\"identifier-index-_.html\">_</a>\n]\n</td></table>\n<table border=\"0\" width=\"100%\">\n<tr valign=\"top\"><td valign=\"top\" width=\"1%\"><h2 class=\"epydoc\"><a name=\"I\">I</a></h2></td>\n<td valign=\"top\">\n<table class=\"link-index\" width=\"100%\" border=\"1\">\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.osgr-module.html#i\">i</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.osgr-module.html\">pygeodesy.osgr</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.trf.TransformXform-class.html#inverse\">inverse()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.trf.TransformXform-class.html\">TransformXform</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.basics-module.html#isiterable\">isiterable()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.basics-module.html\">pygeodesy.basics</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.points._Array2LatLon-class.html#ilat\">ilat</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.points._Array2LatLon-class.html\">_Array2LatLon</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html#Inverse1\">Inverse1()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html\">GeodesicExact</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.basics-module.html#isiterablen\">isiterablen()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.basics-module.html\">pygeodesy.basics</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.points._Array2LatLon-class.html#ilon\">ilon</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.points._Array2LatLon-class.html\">_Array2LatLon</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.solveBase._SolveGDictBase-class.html#Inverse1\">Inverse1()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.solveBase._SolveGDictBase-class.html\">_SolveGDictBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.basics-module.html#isiterabletype\">isiterabletype()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.basics-module.html\">pygeodesy.basics</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums.Fsum-class.html#imag\">imag</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums.Fsum-class.html\">Fsum</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.karney.Inverse10Tuple-class.html\">Inverse10Tuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.karney-module.html\">pygeodesy.karney</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.basics-module.html#iskeyword\">iskeyword()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.basics-module.html\">pygeodesy.basics</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.points.LatLon2psxy-class.html#index\">index()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.points.LatLon2psxy-class.html\">LatLon2psxy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html#Inverse3\">Inverse3()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html\">GeodesicExact</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.basics-module.html#isLatLon\">isLatLon()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.basics-module.html\">pygeodesy.basics</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.points._Array2LatLon-class.html#index\">index()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.points._Array2LatLon-class.html\">_Array2LatLon</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodsolve.GeodesicSolve-class.html#Inverse3\">Inverse3()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodsolve.GeodesicSolve-class.html\">GeodesicSolve</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy-module.html#isLazy\">isLazy</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.trf.TRFXform-class.html#indirected\">indirected</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.trf.TRFXform-class.html\">TRFXform</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb.solve.RhumbSolve-class.html#Inverse3\">Inverse3()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb.solve.RhumbSolve-class.html\">RhumbSolve</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.lazily-module.html#isLazy\">isLazy</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.lazily-module.html\">pygeodesy.lazily</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy-module.html#INF\">INF</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb.ekx.Rhumb-class.html#Inverse7\">Inverse7()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb.ekx.Rhumb-class.html\">Rhumb</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.basics-module.html#islistuple\">islistuple()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.basics-module.html\">pygeodesy.basics</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.constants-module.html#INF\">INF</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.constants-module.html\">pygeodesy.constants</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb.bases.RhumbBase-class.html#Inverse8\">Inverse8()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb.bases.RhumbBase-class.html\">RhumbBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#isLoxodrome\">isLoxodrome</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html\">RhumbLineBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#initialBearingTo\">initialBearingTo()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html\">LatLonEllipsoidalBaseDI</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.trf.TRFXform-class.html#inversed\">inversed</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.trf.TRFXform-class.html\">TRFXform</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltp.ChLV-class.html#isLV03\">isLV03()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltp.ChLV-class.html\">ChLV</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.sphericalNvector.LatLon-class.html#initialBearingTo\">initialBearingTo()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.sphericalNvector.LatLon-class.html\">LatLon</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geod3solve.Geodesic3Solve-class.html#InverseLine\">InverseLine()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geod3solve.Geodesic3Solve-class.html\">Geodesic3Solve</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltp.ChLV-class.html#isLV95\">isLV95()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltp.ChLV-class.html\">ChLV</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html#initialBearingTo\">initialBearingTo()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html\">LatLon</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html#InverseLine\">InverseLine()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html\">GeodesicExact</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.constants-module.html#isnan\">isnan()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.constants-module.html\">pygeodesy.constants</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.functions-module.html#inStr\">inStr()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.functions-module.html\" onclick=\"show_private();\">pygeodesy.deprecated.functions</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodsolve.GeodesicSolve-class.html#InverseLine\">InverseLine()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodsolve.GeodesicSolve-class.html\">GeodesicSolve</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.angles.Ang-class.html#isnear0\">isnear0()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.angles.Ang-class.html\">Ang</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.streprs-module.html#instr\">instr()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.streprs-module.html\">pygeodesy.streprs</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb.bases.RhumbBase-class.html#InverseLine\">InverseLine()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb.bases.RhumbBase-class.html\">RhumbBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.constants-module.html#isnear0\">isnear0()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.constants-module.html\">pygeodesy.constants</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.unitsBase.Int-class.html\">Int</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.unitsBase-module.html\">pygeodesy.unitsBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb.solve.RhumbSolve-class.html#InverseLine\">InverseLine()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb.solve.RhumbSolve-class.html\">RhumbSolve</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.constants-module.html#isnear1\">isnear1()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.constants-module.html\">pygeodesy.constants</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy-module.html#INT0\">INT0</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#invokat\">invokat()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.solveBase._SolveCapsBase-class.html\">_SolveCapsBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.constants-module.html#isnear90\">isnear90()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.constants-module.html\">pygeodesy.constants</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.constants-module.html#INT0\">INT0</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.constants-module.html\">pygeodesy.constants</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#invokation\">invokation</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.solveBase._SolveCapsBase-class.html\">_SolveCapsBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.constants-module.html#isneg\">isneg()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.constants-module.html\">pygeodesy.constants</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.basics-module.html#int1s\">int1s()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.basics-module.html\">pygeodesy.basics</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#invoke\">invoke()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.solveBase._SolveCapsBase-class.html\">_SolveCapsBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.unitsBase.Float-class.html#isneg0\">isneg0</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.unitsBase.Float-class.html\">Float</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.units.Int_-class.html\">Int_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.units-module.html\">pygeodesy.units</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums.Fsum-class.html#is_exact\">is_exact()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums.Fsum-class.html\">Fsum</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.constants-module.html#isneg0\">isneg0()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.constants-module.html\">pygeodesy.constants</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums.Fsum-class.html#int_float\">int_float()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums.Fsum-class.html\">Fsum</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums.Fsum2Tuple-class.html#is_exact\">is_exact()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\">Fsum2Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.constants-module.html#isninf\">isninf()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.constants-module.html\">pygeodesy.constants</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxDST.AuxDST-class.html#integral\">integral()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats.auxDST.AuxDST-class.html\">AuxDST</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums.Fsum-class.html#is_finite\">is_finite()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums.Fsum-class.html\">Fsum</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.constants-module.html#isnon0\">isnon0()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.constants-module.html\">pygeodesy.constants</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxDST.AuxDST-class.html#integral2\">integral2()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats.auxDST.AuxDST-class.html\">AuxDST</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums.Fsum2Tuple-class.html#is_finite\">is_finite()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\">Fsum2Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isnormal\">isnormal</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">LatLonBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.sphericalNvector.LatLon-class.html#intermediateChordTo\">intermediateChordTo()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.sphericalNvector.LatLon-class.html\">LatLon</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.angles.Ang-class.html#is_integer\">is_integer()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.angles.Ang-class.html\">Ang</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.formy-module.html#isnormal\">isnormal()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.formy-module.html\">pygeodesy.formy</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#intermediateTo\">intermediateTo()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html\">LatLonEllipsoidalBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums.Fsum-class.html#is_integer\">is_integer()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums.Fsum-class.html\">Fsum</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.formy-module.html#isnormal_\">isnormal_()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.formy-module.html\">pygeodesy.formy</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#intermediateTo\">intermediateTo()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html\">LatLonEllipsoidalBaseDI</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums.Fsum2Tuple-class.html#is_integer\">is_integer()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\">Fsum2Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.points.Numpy2LatLon-class.html#isNumpy2\">isNumpy2</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.points.Numpy2LatLon-class.html\">Numpy2LatLon</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalNvector.LatLon-class.html#intermediateTo\">intermediateTo()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalNvector.LatLon-class.html\">LatLon</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums.Fsum-class.html#is_math_fma\">is_math_fma()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums.Fsum-class.html\">Fsum</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.points._Basequence-class.html#isNumpy2\">isNumpy2</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.points._Basequence-class.html\">_Basequence</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.points.LatLon_-class.html#intermediateTo\">intermediateTo()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.points.LatLon_-class.html\">LatLon_</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums.Fsum-class.html#is_math_fsum\">is_math_fsum()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums.Fsum-class.html\">Fsum</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.iters-module.html#isNumpy2\">isNumpy2()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.iters-module.html\">pygeodesy.iters</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.sphericalNvector.LatLon-class.html#intermediateTo\">intermediateTo()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.sphericalNvector.LatLon-class.html\">LatLon</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums.Fsum-class.html#is_scalar\">is_scalar()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums.Fsum-class.html\">Fsum</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.basics-module.html#isNvector\">isNvector()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.basics-module.html\">pygeodesy.basics</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html#intermediateTo\">intermediateTo()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html\">LatLon</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.angles-module.html#isAng\">isAng()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.angles-module.html\">pygeodesy.angles</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.datums.Datum-class.html#isOblate\">isOblate</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.datums.Datum-class.html\">Datum</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#intermediateTo\">intermediateTo()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">Vector3dBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.formy-module.html#isantipode\">isantipode()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.formy-module.html\">pygeodesy.formy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipses.Ellipse-class.html#isOblate\">isOblate</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipses.Ellipse-class.html\">Ellipse</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.internals-module.html\">internals</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isantipode\">isantipode()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">LatLonBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#isOblate\">isOblate</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html\">interns</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.formy-module.html#isantipode_\">isantipode_()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.formy-module.html\">pygeodesy.formy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.bases._Triaxial3Base-class.html#isOblate\">isOblate</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.bases._Triaxial3Base-class.html\">_Triaxial3Base</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#intersecant2\">intersecant2()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html\">LatLonEllipsoidalBaseDI</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isantipodeTo\">isantipodeTo()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">LatLonBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#isOblate\">isOblate</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html\">_UnOrderedTriaxialBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalBaseDI-module.html#intersecant2\">intersecant2()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalBaseDI-module.html\">pygeodesy.ellipsoidalBaseDI</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.bases._Triaxial3Base-class.html#isBiaxial\">isBiaxial</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.bases._Triaxial3Base-class.html\">_Triaxial3Base</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.basics-module.html#isodd\">isodd()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.basics-module.html\">pygeodesy.basics</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geod3solve.GeodesicLine3Solve-class.html#Intersecant2\">Intersecant2()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geod3solve.GeodesicLine3Solve-class.html\">GeodesicLine3Solve</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.basics-module.html#isbool\">isbool()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.basics-module.html\">pygeodesy.basics</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#isOrdered\">isOrdered</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html\">_UnOrderedTriaxialBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#Intersecant2\">Intersecant2()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html\">_GeodesicLineExact</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.booleans-module.html#isBoolean\">isBoolean()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.booleans-module.html\">pygeodesy.booleans</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.booleans._LatLonBool-class.html#ispoint\">ispoint</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.booleans._LatLonBool-class.html\">_LatLonBool</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodsolve.GeodesicLineSolve-class.html#Intersecant2\">Intersecant2()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodsolve.GeodesicLineSolve-class.html\">GeodesicLineSolve</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.basics-module.html#isCartesian\">isCartesian()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.basics-module.html\">pygeodesy.basics</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.clipy.ClipFHP4Tuple-class.html#ispoint\">ispoint</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.clipy.ClipFHP4Tuple-class.html\">ClipFHP4Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#intersecant2\">intersecant2()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">LatLonBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.ChLV9Tuple-class.html#isChLV\">isChLV</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.ChLV9Tuple-class.html\">ChLV9Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.points.LatLon2psxy-class.html#isPoints2\">isPoints2</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.points.LatLon2psxy-class.html\">LatLon2psxy</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#Intersecant2\">Intersecant2()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html\">RhumbLineBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.ChLV9Tuple-class.html#isChLVa\">isChLVa</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.ChLV9Tuple-class.html\">ChLV9Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.points._Basequence-class.html#isPoints2\">isPoints2</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.points._Basequence-class.html\">_Basequence</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html#intersecant2\">intersecant2()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html\">LatLonSphericalBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.ChLV9Tuple-class.html#isChLVe\">isChLVe</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.ChLV9Tuple-class.html\">ChLV9Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.iters-module.html#isPoints2\">isPoints2()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.iters-module.html\">pygeodesy.iters</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.sphericalNvector-module.html#intersecant2\">intersecant2()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.sphericalNvector-module.html\">pygeodesy.sphericalNvector</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipses.Ellipse-class.html#isCircular\">isCircular</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipses.Ellipse-class.html\">Ellipse</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.albers._AlbersBase-class.html#ispolar\">ispolar</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.albers._AlbersBase-class.html\">_AlbersBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.sphericalTrigonometry-module.html#intersecant2\">intersecant2()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.sphericalTrigonometry-module.html\">pygeodesy.sphericalTrigonometry</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.basics-module.html#isclass\">isclass()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.basics-module.html\">pygeodesy.basics</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.points-module.html#ispolar\">ispolar()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.points-module.html\">pygeodesy.points</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesici._IntersectBase-class.html#intersect7\">intersect7()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesici._IntersectBase-class.html\">_IntersectBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalExact-module.html#isclockwise\">isclockwise()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalExact-module.html\">pygeodesy.ellipsoidalExact</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.sphericalTrigonometry-module.html#isPoleEnclosedBy\">isPoleEnclosedBy()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.sphericalTrigonometry-module.html\">pygeodesy.sphericalTrigonometry</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesici.Intersect7Tuple-class.html\">Intersect7Tuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesici-module.html\">pygeodesy.geodesici</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalGeodSolve-module.html#isclockwise\">isclockwise()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalGeodSolve-module.html\">pygeodesy.ellipsoidalGeodSolve</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.datums.Datum-class.html#isProlate\">isProlate</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.datums.Datum-class.html\">Datum</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#Intersection\">Intersection()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html\">RhumbLineBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalKarney-module.html#isclockwise\">isclockwise()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalKarney-module.html\">pygeodesy.ellipsoidalKarney</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipses.Ellipse-class.html#isProlate\">isProlate</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipses.Ellipse-class.html\">Ellipse</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.sphericalNvector.LatLon-class.html#intersection\">intersection()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.sphericalNvector.LatLon-class.html\">LatLon</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.points-module.html#isclockwise\">isclockwise()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.points-module.html\">pygeodesy.points</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#isProlate\">isProlate</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.sphericalNvector-module.html#intersection\">intersection()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.sphericalNvector-module.html\">pygeodesy.sphericalNvector</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.constants-module.html#isclose\">isclose()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.constants-module.html\">pygeodesy.constants</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.bases._Triaxial3Base-class.html#isProlate\">isProlate</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.bases._Triaxial3Base-class.html\">_Triaxial3Base</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html#intersection\">intersection()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html\">LatLon</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector3d.Vector3d-class.html#iscolinearWith\">iscolinearWith()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector3d.Vector3d-class.html\">Vector3d</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#isProlate\">isProlate</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html\">_UnOrderedTriaxialBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.sphericalTrigonometry-module.html#intersection\">intersection()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.sphericalTrigonometry-module.html\">pygeodesy.sphericalTrigonometry</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector3d-module.html#iscolinearWith\">iscolinearWith()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector3d-module.html\">pygeodesy.vector3d</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.basics-module.html#isscalar\">isscalar()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.basics-module.html\">pygeodesy.basics</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.formy-module.html#intersection2\">intersection2()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.formy-module.html\">pygeodesy.formy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.basics-module.html#iscomplex\">iscomplex()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.basics-module.html\">pygeodesy.basics</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.basics-module.html#issequence\">issequence()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.basics-module.html\">pygeodesy.basics</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#intersection2\">intersection2()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html\">RhumbLineBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#isconjugateTo\">isconjugateTo()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">Vector3dBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#isSpherical\">isSpherical</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.cartesianBase.CartesianBase-class.html\">CartesianBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.sphericalNvector.LatLon-class.html#intersection2\">intersection2()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.sphericalNvector.LatLon-class.html\">LatLon</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.points-module.html#isconvex\">isconvex()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.points-module.html\">pygeodesy.points</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.datums.Datum-class.html#isSpherical\">isSpherical</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.datums.Datum-class.html\">Datum</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.sphericalNvector-module.html#intersection2\">intersection2()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.sphericalNvector-module.html\">pygeodesy.sphericalNvector</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.points-module.html#isconvex_\">isconvex_()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.points-module.html\">pygeodesy.points</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#isSpherical\">isSpherical</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#intersection3\">intersection3()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html\">LatLonEllipsoidalBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.basics-module.html#isDEPRECATED\">isDEPRECATED()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.basics-module.html\">pygeodesy.basics</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isSpherical\">isSpherical</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">LatLonBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalExact-module.html#intersection3\">intersection3()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalExact-module.html\">pygeodesy.ellipsoidalExact</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#isEllipsoidal\">isEllipsoidal</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.cartesianBase.CartesianBase-class.html\">CartesianBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#isSpherical\">isSpherical</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.nvectorBase.NvectorBase-class.html\">NvectorBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalGeodSolve-module.html#intersection3\">intersection3()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalGeodSolve-module.html\">pygeodesy.ellipsoidalGeodSolve</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.datums.Datum-class.html#isEllipsoidal\">isEllipsoidal</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.datums.Datum-class.html\">Datum</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#isSpherical\">isSpherical</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html\">_UnOrderedTriaxialBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalKarney-module.html#intersection3\">intersection3()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalKarney-module.html\">pygeodesy.ellipsoidalKarney</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#isEllipsoidal\">isEllipsoidal</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.basics-module.html#isstr\">isstr()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.basics-module.html\">pygeodesy.basics</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalVincenty-module.html#intersection3\">intersection3()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalVincenty-module.html\">pygeodesy.ellipsoidalVincenty</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isEllipsoidal\">isEllipsoidal</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">LatLonBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.basics-module.html#issubclassof\">issubclassof()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.basics-module.html\">pygeodesy.basics</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector3d-module.html#intersection3d3\">intersection3d3()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector3d-module.html\">pygeodesy.vector3d</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#isEllipsoidal\">isEllipsoidal</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.nvectorBase.NvectorBase-class.html\">NvectorBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.points.Tuple2LatLon-class.html#isTuple2\">isTuple2</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.points.Tuple2LatLon-class.html\">Tuple2LatLon</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.Intersection3Tuple-class.html\">Intersection3Tuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples-module.html\">pygeodesy.namedTuples</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.booleans.LatLonFHP-class.html#isenclosedBy\">isenclosedBy()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.booleans.LatLonFHP-class.html\">LatLonFHP</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.points._Basequence-class.html#isTuple2\">isTuple2</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.points._Basequence-class.html\">_Basequence</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.errors.IntersectionError-class.html\">IntersectionError</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.errors-module.html\">pygeodesy.errors</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.booleans.LatLonGH-class.html#isenclosedBy\">isenclosedBy()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.booleans.LatLonGH-class.html\">LatLonGH</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.iters-module.html#isTuple2\">isTuple2()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.iters-module.html\">pygeodesy.iters</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#intersections2\">intersections2()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html\">CartesianEllipsoidalBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.functions-module.html#isenclosedby\">isenclosedby()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.functions-module.html\" onclick=\"show_private();\">pygeodesy.deprecated.functions</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.functions-module.html#istuplist\">istuplist()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.functions-module.html\" onclick=\"show_private();\">pygeodesy.deprecated.functions</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#intersections2\">intersections2()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html\">LatLonEllipsoidalBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#isenclosedBy\">isenclosedBy()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html\">LatLonEllipsoidalBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.datums.Transform-class.html#isunity\">isunity</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.datums.Transform-class.html\">Transform</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalExact-module.html#intersections2\">intersections2()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalExact-module.html\">pygeodesy.ellipsoidalExact</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.points-module.html#isenclosedBy\">isenclosedBy()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.points-module.html\">pygeodesy.points</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.trf.TRFXform7Tuple-class.html#isunity\">isunity</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.trf.TRFXform7Tuple-class.html\">TRFXform7Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalGeodSolve-module.html#intersections2\">intersections2()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalGeodSolve-module.html\">pygeodesy.ellipsoidalGeodSolve</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.sphericalNvector.LatLon-class.html#isEnclosedBy\">isEnclosedBy()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.sphericalNvector.LatLon-class.html\">LatLon</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.mgrs.Mgrs-class.html#isUPS\">isUPS</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.mgrs.Mgrs-class.html\">Mgrs</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalKarney-module.html#intersections2\">intersections2()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalKarney-module.html\">pygeodesy.ellipsoidalKarney</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.sphericalNvector.LatLon-class.html#isenclosedBy\">isenclosedBy()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.sphericalNvector.LatLon-class.html\">LatLon</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.mgrs.Mgrs-class.html#isUTM\">isUTM</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.mgrs.Mgrs-class.html\">Mgrs</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalVincenty-module.html#intersections2\">intersections2()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalVincenty-module.html\">pygeodesy.ellipsoidalVincenty</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html#isEnclosedBy\">isEnclosedBy()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html\">LatLon</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.sphericalNvector.LatLon-class.html#isWithin\">isWithin()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.sphericalNvector.LatLon-class.html\">LatLon</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.formy-module.html#intersections2\">intersections2()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.formy-module.html\">pygeodesy.formy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html#isenclosedBy\">isenclosedBy()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html\">LatLon</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.sphericalNvector.LatLon-class.html#iswithin\">iswithin()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.sphericalNvector.LatLon-class.html\">LatLon</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.nvectorBase.LatLonNvectorBase-class.html#intersections2\">intersections2()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.nvectorBase.LatLonNvectorBase-class.html\">LatLonNvectorBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.booleans._CompositeBase-class.html#isequalTo\">isequalTo()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.booleans._CompositeBase-class.html\">_CompositeBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.datums.Transform-class.html#items\">items()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.datums.Transform-class.html\">Transform</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.sphericalBase.CartesianSphericalBase-class.html#intersections2\">intersections2()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.sphericalBase.CartesianSphericalBase-class.html\">CartesianSphericalBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.booleans._LatLonBool-class.html#isequalTo\">isequalTo()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.booleans._LatLonBool-class.html\">_LatLonBool</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.karney.Caps-class.html#items\">items()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.karney.Caps-class.html\">Caps</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html#intersections2\">intersections2()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html\">LatLon</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalNvector.LatLon-class.html#isequalTo\">isequalTo()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalNvector.LatLon-class.html\">LatLon</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.named._NamedEnum-class.html#items\">items()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.named._NamedEnum-class.html\">_NamedEnum</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.sphericalTrigonometry-module.html#intersections2\">intersections2()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.sphericalTrigonometry-module.html\">pygeodesy.sphericalTrigonometry</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isequalTo\">isequalTo()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">LatLonBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.named._NamedTuple-class.html#items\">items()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.named._NamedTuple-class.html\">_NamedTuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector3d-module.html#intersections2\">intersections2()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector3d-module.html\">pygeodesy.vector3d</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#isequalTo\">isequalTo()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">Vector3dBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.bases.LLK-class.html#items\">items()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.bases.LLK-class.html\">LLK</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesici.Intersectool-class.html\">Intersectool</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesici-module.html\">pygeodesy.geodesici</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isequalTo3\">isequalTo3()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">LatLonBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.basics-module.html#itemsorted\">itemsorted()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.basics-module.html\">pygeodesy.basics</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesici.Intersectool5Tuple-class.html\">Intersectool5Tuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesici-module.html\">pygeodesy.geodesici</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.errors-module.html#isError\">isError()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.errors-module.html\">pygeodesy.errors</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.iters.LatLon2PsxyIter-class.html#iterate\">iterate()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.iters.LatLon2PsxyIter-class.html\">LatLon2PsxyIter</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesici.Intersector-class.html\">Intersector</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesici-module.html\">pygeodesy.geodesici</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.css.CassiniSoldner-class.html#isExact\">isExact</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.css.CassiniSoldner-class.html\">CassiniSoldner</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.iters.PointsIter-class.html#iterate\">iterate()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.iters.PointsIter-class.html\">PointsIter</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesici.Intersector5Tuple-class.html\">Intersector5Tuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesici-module.html\">pygeodesy.geodesici</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.constants-module.html#isfinite\">isfinite()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.constants-module.html\">pygeodesy.constants</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.iters._BaseIter-class.html#iterate\">iterate()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.iters._BaseIter-class.html\">_BaseIter</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesici.Intersectool-class.html#IntersectTool\">IntersectTool</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesici.Intersectool-class.html\">Intersectool</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipses.Ellipse-class.html#isFlat\">isFlat</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipses.Ellipse-class.html\">Ellipse</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#iteration\">iteration</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html\">AuxAngle</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#ints\">ints()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">Vector3dBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#isFlat\">isFlat</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html\">_UnOrderedTriaxialBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#iteration\">iteration</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html\">LatLonEllipsoidalBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.datums.Transform-class.html#inverse\">inverse()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.datums.Transform-class.html\">Transform</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.basics-module.html#isfloat\">isfloat()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.basics-module.html\">pygeodesy.basics</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.etm.ExactTransverseMercator-class.html#iteration\">iteration</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.etm.ExactTransverseMercator-class.html\">ExactTransverseMercator</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geod3solve.Geodesic3Solve-class.html#Inverse\">Inverse()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geod3solve.Geodesic3Solve-class.html\">Geodesic3Solve</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.basics-module.html#isidentifier\">isidentifier()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.basics-module.html\">pygeodesy.basics</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.named.ADict-class.html#iteration\">iteration</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.named.ADict-class.html\">ADict</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html#Inverse\">Inverse()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html\">GeodesicExact</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.constants-module.html#isinf\">isinf()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.constants-module.html\">pygeodesy.constants</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.named._Named-class.html\">_Named</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb.bases.RhumbBase-class.html#Inverse\">Inverse()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb.bases.RhumbBase-class.html\">RhumbBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.basics-module.html#isinstanceof\">isinstanceof()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.basics-module.html\">pygeodesy.basics</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.osgr.Osgr-class.html#iteration\">iteration</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.osgr.Osgr-class.html\">Osgr</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#Inverse\">Inverse()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html\">RhumbLineBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.basics-module.html#isint\">isint()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.basics-module.html\">pygeodesy.basics</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalVincenty.LatLon-class.html#iterations\">iterations</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalVincenty.LatLon-class.html\">LatLon</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.solveBase._SolveGDictBase-class.html#Inverse\">Inverse()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.solveBase._SolveGDictBase-class.html\">_SolveGDictBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.constants-module.html#isint0\">isint0()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.constants-module.html\">pygeodesy.constants</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.iters-module.html#iterNumpy2\">iterNumpy2()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.iters-module.html\">pygeodesy.iters</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.trf.TRFXform-class.html#inverse\">inverse()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.trf.TRFXform-class.html\">TRFXform</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.booleans._LatLonBool-class.html#isintersection\">isintersection</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.booleans._LatLonBool-class.html\">_LatLonBool</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.iters-module.html#iterNumpy2over\">iterNumpy2over()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.iters-module.html\">pygeodesy.iters</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.trf.TRFXform7Tuple-class.html#inverse\">inverse()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.trf.TRFXform7Tuple-class.html\">TRFXform7Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.clipy.ClipFHP4Tuple-class.html#isintersection\">isintersection</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.clipy.ClipFHP4Tuple-class.html\">ClipFHP4Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.iters-module.html\">iters</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n</tr>\n</table>\n</td></tr>\n</table>\n<br /><br /><!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th bgcolor=\"#70b0f0\" class=\"navbar-select\"\n          >&nbsp;&nbsp;&nbsp;Indices&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:16 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/identifier-index-J.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>Identifier Index</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th bgcolor=\"#70b0f0\" class=\"navbar-select\"\n          >&nbsp;&nbsp;&nbsp;Indices&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">&nbsp;</td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"identifier-index-J.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<center><b>[\n <a href=\"identifier-index.html\">Identifiers</a>\n| <a href=\"term-index.html\">Term Definitions</a>\n]</b></center><br />\n<table border=\"0\" width=\"100%\">\n<tr valign=\"bottom\"><td>\n<h1 class=\"epydoc\">Identifier Index</h1>\n</td><td>\n[\n <a href=\"identifier-index-A.html\">A</a>\n <a href=\"identifier-index-B.html\">B</a>\n <a href=\"identifier-index-C.html\">C</a>\n <a href=\"identifier-index-D.html\">D</a>\n <a href=\"identifier-index-E.html\">E</a>\n <a href=\"identifier-index-F.html\">F</a>\n <a href=\"identifier-index-G.html\">G</a>\n <a href=\"identifier-index-H.html\">H</a>\n <a href=\"identifier-index-I.html\">I</a>\n <a href=\"identifier-index-J.html\">J</a>\n <a href=\"identifier-index-K.html\">K</a>\n <a href=\"identifier-index-L.html\">L</a>\n <a href=\"identifier-index-M.html\">M</a>\n <a href=\"identifier-index-N.html\">N</a>\n <a href=\"identifier-index-O.html\">O</a>\n <a href=\"identifier-index-P.html\">P</a>\n <a href=\"identifier-index-Q.html\">Q</a>\n <a href=\"identifier-index-R.html\">R</a>\n <a href=\"identifier-index-S.html\">S</a>\n <a href=\"identifier-index-T.html\">T</a>\n <a href=\"identifier-index-U.html\">U</a>\n <a href=\"identifier-index-V.html\">V</a>\n <a href=\"identifier-index-W.html\">W</a>\n <a href=\"identifier-index-X.html\">X</a>\n <a href=\"identifier-index-Y.html\">Y</a>\n <a href=\"identifier-index-Z.html\">Z</a>\n <a href=\"identifier-index-_.html\">_</a>\n]\n</td></table>\n<table border=\"0\" width=\"100%\">\n<tr valign=\"top\"><td valign=\"top\" width=\"1%\"><h2 class=\"epydoc\"><a name=\"J\">J</a></h2></td>\n<td valign=\"top\">\n<table class=\"link-index\" width=\"100%\" border=\"1\">\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.classes.Jacobi2Tuple-class.html\">Jacobi2Tuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.classes-module.html\" onclick=\"show_private();\">pygeodesy.deprecated.classes</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns.Str_-class.html#join_\">join_()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns.Str_-class.html\">Str_</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.functions-module.html#joined_\">joined_()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.functions-module.html\" onclick=\"show_private();\">pygeodesy.deprecated.functions</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.classes.JacobiConformal-class.html\">JacobiConformal</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.classes-module.html\" onclick=\"show_private();\">pygeodesy.deprecated.classes</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.unitsBase.Str-class.html#join_\">join_()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.unitsBase.Str-class.html\">Str</a>)</span></td>\n<td width=\"33%\" class=\"link-index\">&nbsp;</td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.classes.JacobiConformalSpherical-class.html\">JacobiConformalSpherical</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.classes-module.html\" onclick=\"show_private();\">pygeodesy.deprecated.classes</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.functions-module.html#joined\">joined()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.functions-module.html\" onclick=\"show_private();\">pygeodesy.deprecated.functions</a>)</span></td>\n<td width=\"33%\" class=\"link-index\">&nbsp;</td>\n</tr>\n</table>\n</td></tr>\n</table>\n<br /><br /><!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th bgcolor=\"#70b0f0\" class=\"navbar-select\"\n          >&nbsp;&nbsp;&nbsp;Indices&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:16 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/identifier-index-K.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>Identifier Index</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th bgcolor=\"#70b0f0\" class=\"navbar-select\"\n          >&nbsp;&nbsp;&nbsp;Indices&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">&nbsp;</td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"identifier-index-K.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<center><b>[\n <a href=\"identifier-index.html\">Identifiers</a>\n| <a href=\"term-index.html\">Term Definitions</a>\n]</b></center><br />\n<table border=\"0\" width=\"100%\">\n<tr valign=\"bottom\"><td>\n<h1 class=\"epydoc\">Identifier Index</h1>\n</td><td>\n[\n <a href=\"identifier-index-A.html\">A</a>\n <a href=\"identifier-index-B.html\">B</a>\n <a href=\"identifier-index-C.html\">C</a>\n <a href=\"identifier-index-D.html\">D</a>\n <a href=\"identifier-index-E.html\">E</a>\n <a href=\"identifier-index-F.html\">F</a>\n <a href=\"identifier-index-G.html\">G</a>\n <a href=\"identifier-index-H.html\">H</a>\n <a href=\"identifier-index-I.html\">I</a>\n <a href=\"identifier-index-J.html\">J</a>\n <a href=\"identifier-index-K.html\">K</a>\n <a href=\"identifier-index-L.html\">L</a>\n <a href=\"identifier-index-M.html\">M</a>\n <a href=\"identifier-index-N.html\">N</a>\n <a href=\"identifier-index-O.html\">O</a>\n <a href=\"identifier-index-P.html\">P</a>\n <a href=\"identifier-index-Q.html\">Q</a>\n <a href=\"identifier-index-R.html\">R</a>\n <a href=\"identifier-index-S.html\">S</a>\n <a href=\"identifier-index-T.html\">T</a>\n <a href=\"identifier-index-U.html\">U</a>\n <a href=\"identifier-index-V.html\">V</a>\n <a href=\"identifier-index-W.html\">W</a>\n <a href=\"identifier-index-X.html\">X</a>\n <a href=\"identifier-index-Y.html\">Y</a>\n <a href=\"identifier-index-Z.html\">Z</a>\n <a href=\"identifier-index-_.html\">_</a>\n]\n</td></table>\n<table border=\"0\" width=\"100%\">\n<tr valign=\"top\"><td valign=\"top\" width=\"1%\"><h2 class=\"epydoc\"><a name=\"K\">K</a></h2></td>\n<td valign=\"top\">\n<table class=\"link-index\" width=\"100%\" border=\"1\">\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.azimuthal.Stereographic-class.html#k0\">k0</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.azimuthal.Stereographic-class.html\">Stereographic</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.named._NamedEnum-class.html#keys\">keys()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.named._NamedEnum-class.html\">_NamedEnum</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.bases._Triaxial3Base-class.html#kp2\">kp2</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.bases._Triaxial3Base-class.html\">_Triaxial3Base</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.etm.ExactTransverseMercator-class.html#k0\">k0</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.etm.ExactTransverseMercator-class.html\">ExactTransverseMercator</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.bases.LLK-class.html#keys\">keys()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.bases.LLK-class.html\">LLK</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#KsOrder\">KsOrder</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ktm.KTransverseMercator-class.html#k0\">k0</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ktm.KTransverseMercator-class.html\">KTransverseMercator</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geoids._GeoidBase-class.html#kind\">kind</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geoids._GeoidBase-class.html\">_GeoidBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ktm-module.html\">ktm</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.lcc.Conic-class.html#k0\">k0</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.lcc.Conic-class.html\">Conic</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utily-module.html#km2m\">km2m()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utily-module.html\">pygeodesy.utily</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ktm.KTMError-class.html\">KTMError</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ktm-module.html\">pygeodesy.ktm</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.elliptic.Elliptic-class.html#k2\">k2</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.elliptic.Elliptic-class.html\">Elliptic</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.heights._HeightNamed-class.html#kmin\">kmin</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.heights._HeightNamed-class.html\">_HeightNamed</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ktm.KTransverseMercator-class.html\">KTransverseMercator</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ktm-module.html\">pygeodesy.ktm</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.bases._Triaxial3Base-class.html#k2\">k2</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.bases._Triaxial3Base-class.html\">_Triaxial3Base</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geoids._GeoidBase-class.html#knots\">knots</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geoids._GeoidBase-class.html\">_GeoidBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.frechet.Frechet-class.html#kwds\">kwds</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.frechet.Frechet-class.html\">Frechet</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesici._IntersectBase-class.html#k2kAkB\">k2kAkB()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesici._IntersectBase-class.html\">_IntersectBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.heights._HeightIDW-class.html#knots\">knots</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.heights._HeightIDW-class.html\">_HeightIDW</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.hausdorff.Hausdorff-class.html#kwds\">kwds</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.hausdorff.Hausdorff-class.html\">Hausdorff</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.karney-module.html\">karney</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.elliptic.Elliptic-class.html#kp2\">kp2</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.elliptic.Elliptic-class.html\">Elliptic</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.heights._HeightIDW-class.html#kwds\">kwds</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.heights._HeightIDW-class.html\">_HeightIDW</a>)</span></td>\n</tr>\n</table>\n</td></tr>\n</table>\n<br /><br /><!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th bgcolor=\"#70b0f0\" class=\"navbar-select\"\n          >&nbsp;&nbsp;&nbsp;Indices&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:16 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/identifier-index-L.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>Identifier Index</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th bgcolor=\"#70b0f0\" class=\"navbar-select\"\n          >&nbsp;&nbsp;&nbsp;Indices&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">&nbsp;</td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"identifier-index-L.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<center><b>[\n <a href=\"identifier-index.html\">Identifiers</a>\n| <a href=\"term-index.html\">Term Definitions</a>\n]</b></center><br />\n<table border=\"0\" width=\"100%\">\n<tr valign=\"bottom\"><td>\n<h1 class=\"epydoc\">Identifier Index</h1>\n</td><td>\n[\n <a href=\"identifier-index-A.html\">A</a>\n <a href=\"identifier-index-B.html\">B</a>\n <a href=\"identifier-index-C.html\">C</a>\n <a href=\"identifier-index-D.html\">D</a>\n <a href=\"identifier-index-E.html\">E</a>\n <a href=\"identifier-index-F.html\">F</a>\n <a href=\"identifier-index-G.html\">G</a>\n <a href=\"identifier-index-H.html\">H</a>\n <a href=\"identifier-index-I.html\">I</a>\n <a href=\"identifier-index-J.html\">J</a>\n <a href=\"identifier-index-K.html\">K</a>\n <a href=\"identifier-index-L.html\">L</a>\n <a href=\"identifier-index-M.html\">M</a>\n <a href=\"identifier-index-N.html\">N</a>\n <a href=\"identifier-index-O.html\">O</a>\n <a href=\"identifier-index-P.html\">P</a>\n <a href=\"identifier-index-Q.html\">Q</a>\n <a href=\"identifier-index-R.html\">R</a>\n <a href=\"identifier-index-S.html\">S</a>\n <a href=\"identifier-index-T.html\">T</a>\n <a href=\"identifier-index-U.html\">U</a>\n <a href=\"identifier-index-V.html\">V</a>\n <a href=\"identifier-index-W.html\">W</a>\n <a href=\"identifier-index-X.html\">X</a>\n <a href=\"identifier-index-Y.html\">Y</a>\n <a href=\"identifier-index-Z.html\">Z</a>\n <a href=\"identifier-index-_.html\">_</a>\n]\n</td></table>\n<table border=\"0\" width=\"100%\">\n<tr valign=\"top\"><td valign=\"top\" width=\"1%\"><h2 class=\"epydoc\"><a name=\"L\">L</a></h2></td>\n<td valign=\"top\">\n<table class=\"link-index\" width=\"100%\" border=\"1\">\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#L\">L</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#latlon0\">latlon0</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html\">_AzimuthalBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.heights._HeightIDW-class.html#limit\">limit</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.heights._HeightIDW-class.html\">_HeightIDW</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesici.XDict-class.html#L1\">L1()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesici.XDict-class.html\">XDict</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.css.CassiniSoldner-class.html#latlon0\">latlon0</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.css.CassiniSoldner-class.html\">CassiniSoldner</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.errors.LimitError-class.html\">LimitError</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.errors-module.html\">pygeodesy.errors</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ecef.Ecef9Tuple-class.html#lam\">lam</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ecef.Ecef9Tuple-class.html\">Ecef9Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.lcc.Conic-class.html#latlon0\">latlon0</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.lcc.Conic-class.html\">Conic</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.errors-module.html#limiterrors\">limiterrors()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.errors-module.html\">pygeodesy.errors</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#lam\">lam</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">LatLonBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.osgr.Osgr-class.html#latlon0\">latlon0</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.osgr.Osgr-class.html\">Osgr</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesici.Intersectool-class.html#Line\">Line()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesici.Intersectool-class.html\">Intersectool</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.Local9Tuple-class.html#lam\">lam</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.Local9Tuple-class.html\">Local9Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#latlon1\">latlon1</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html\">RhumbLineBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesici.Intersector-class.html#Line\">Line()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesici.Intersector-class.html\">Intersector</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#lam\">lam</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.nvectorBase.NvectorBase-class.html\">NvectorBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#latlon2\">latlon2()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">LatLonBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesici._IntersectBase-class.html#Line\">Line()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesici._IntersectBase-class.html\">_IntersectBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.units.Lam-class.html\">Lam</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.units-module.html\">pygeodesy.units</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.webmercator.Wm-class.html#latlon2\">latlon2()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.webmercator.Wm-class.html\">Wm</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html#Line\">Line()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html\">GeodesicExact</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.lcc.Conic-class.html#lam0\">lam0</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.lcc.Conic-class.html\">Conic</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.latlonBase-module.html#latlon2n_xyz\">latlon2n_xyz()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.latlonBase-module.html\">pygeodesy.latlonBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.karney.Caps-class.html#LINE_CAPS\">LINE_CAPS</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.karney.Caps-class.html\">Caps</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.classes.Lam_-class.html\">Lam_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.classes-module.html\" onclick=\"show_private();\">pygeodesy.deprecated.classes</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.points.LatLon2psxy-class.html\">LatLon2psxy</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.points-module.html\">pygeodesy.points</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.karney._CapsBase-class.html#LINE_CAPS\">LINE_CAPS</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.karney._CapsBase-class.html\">_CapsBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.azimuthal.LambertEqualArea-class.html\">LambertEqualArea</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.azimuthal-module.html\">pygeodesy.azimuthal</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.iters.LatLon2PsxyIter-class.html\">LatLon2PsxyIter</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.iters-module.html\">pygeodesy.iters</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.karney.Caps-class.html#LINE_OFF\">LINE_OFF</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.karney.Caps-class.html\">Caps</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.angles.Ang-class.html#lambertian\">lambertian</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.angles.Ang-class.html\">Ang</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.LatLon2Tuple-class.html\">LatLon2Tuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples-module.html\">pygeodesy.namedTuples</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.karney._CapsBase-class.html#LINE_OFF\">LINE_OFF</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.karney._CapsBase-class.html\">_CapsBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.angles.Lambertian-class.html\">Lambertian</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.angles-module.html\">pygeodesy.angles</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.LatLon3Tuple-class.html\">LatLon3Tuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples-module.html\">pygeodesy.namedTuples</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#linelimit\">linelimit()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.solveBase._SolveCapsBase-class.html\">_SolveCapsBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.units.Lamd-class.html\">Lamd</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.units-module.html\">pygeodesy.units</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.LatLon4Tuple-class.html\">LatLon4Tuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples-module.html\">pygeodesy.namedTuples</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#Llat\">Llat()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ecef.Ecef9Tuple-class.html#lamVermeille\">lamVermeille</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ecef.Ecef9Tuple-class.html\">Ecef9Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.points.LatLon_-class.html\">LatLon_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.points-module.html\">pygeodesy.points</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.bases.LLK-class.html\">LLK</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.bases-module.html\" onclick=\"show_private();\">pygeodesy.triaxials.bases</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.booleans._LatLonBool-class.html#lat\">lat</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.booleans._LatLonBool-class.html\">_LatLonBool</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#latlon_\">latlon_()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">LatLonBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.Local9Tuple-class.html\">Local9Tuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples-module.html\">pygeodesy.ltpTuples</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geohash.Resolutions2Tuple-class.html#lat\">lat</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geohash.Resolutions2Tuple-class.html\">Resolutions2Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.css.LatLonAziRk4Tuple-class.html\">LatLonAziRk4Tuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.css-module.html\">pygeodesy.css</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltp.LocalCartesian-class.html\">LocalCartesian</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltp-module.html\">pygeodesy.ltp</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#lat\">lat</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">LatLonBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.latlonBase-module.html\">latlonBase</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltp.LocalError-class.html\">LocalError</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltp-module.html\">pygeodesy.ltp</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#lat\">lat</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.nvectorBase.NvectorBase-class.html\">NvectorBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">LatLonBase</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.latlonBase-module.html\">pygeodesy.latlonBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.booleans._LatLonBool-class.html#lon\">lon</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.booleans._LatLonBool-class.html\">_LatLonBool</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.units.Lat-class.html\">Lat</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.units-module.html\">pygeodesy.units</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.LatLonDatum3Tuple-class.html\">LatLonDatum3Tuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples-module.html\">pygeodesy.namedTuples</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geohash.Resolutions2Tuple-class.html#lon\">lon</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geohash.Resolutions2Tuple-class.html\">Resolutions2Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.albers._AlbersBase-class.html#lat0\">lat0</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.albers._AlbersBase-class.html\">_AlbersBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.LatLonDatum5Tuple-class.html\">LatLonDatum5Tuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples-module.html\">pygeodesy.namedTuples</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#lon\">lon</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">LatLonBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#lat0\">lat0</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html\">_AzimuthalBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.dms-module.html#latlonDMS\">latlonDMS()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.dms-module.html\">pygeodesy.dms</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#lon\">lon</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.nvectorBase.NvectorBase-class.html\">NvectorBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.css.CassiniSoldner-class.html#lat0\">lat0</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.css.CassiniSoldner-class.html\">CassiniSoldner</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.dms-module.html#latlonDMS_\">latlonDMS_()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.dms-module.html\">pygeodesy.dms</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.units.Lon-class.html\">Lon</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.units-module.html\">pygeodesy.units</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#lat0\">lat0</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html\">GeodesicAreaExact</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html\">LatLonEllipsoidalBase</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalBase-module.html\">pygeodesy.ellipsoidalBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#lon0\">lon0</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html\">_AzimuthalBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.lcc.Conic-class.html#lat0\">lat0</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.lcc.Conic-class.html\">Conic</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html\">LatLonEllipsoidalBaseDI</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalBaseDI-module.html\">pygeodesy.ellipsoidalBaseDI</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.css.CassiniSoldner-class.html#lon0\">lon0</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.css.CassiniSoldner-class.html\">CassiniSoldner</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltp.LocalCartesian-class.html#lat0\">lat0</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltp.LocalCartesian-class.html\">LocalCartesian</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.classes.LatLonExact4Tuple-class.html\">LatLonExact4Tuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.classes-module.html\" onclick=\"show_private();\">pygeodesy.deprecated.classes</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.etm.ExactTransverseMercator-class.html#lon0\">lon0</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.etm.ExactTransverseMercator-class.html\">ExactTransverseMercator</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.albers._AlbersBase-class.html#lat1\">lat1</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.albers._AlbersBase-class.html\">_AlbersBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.booleans.LatLonFHP-class.html\">LatLonFHP</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.booleans-module.html\">pygeodesy.booleans</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#lon0\">lon0</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html\">GeodesicAreaExact</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#lat1\">lat1</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html\">GeodesicAreaExact</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.booleans.LatLonGH-class.html\">LatLonGH</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.booleans-module.html\">pygeodesy.booleans</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ktm.KTransverseMercator-class.html#lon0\">lon0</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ktm.KTransverseMercator-class.html\">KTransverseMercator</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#lat1\">lat1</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html\">_GeodesicLineExact</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#latlonheight\">latlonheight</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.cartesianBase.CartesianBase-class.html\">CartesianBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.lcc.Conic-class.html#lon0\">lon0</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.lcc.Conic-class.html\">Conic</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#lat1\">lat1</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html\">RhumbLineBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ecef.Ecef9Tuple-class.html#latlonheight\">latlonheight</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ecef.Ecef9Tuple-class.html\">Ecef9Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltp.LocalCartesian-class.html#lon0\">lon0</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltp.LocalCartesian-class.html\">LocalCartesian</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.solveBase._SolveGDictLineBase-class.html#lat1\">lat1</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.solveBase._SolveGDictLineBase-class.html\">_SolveGDictLineBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#latlonheight\">latlonheight</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">LatLonBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.bases._Triaxial3Base-class.html#Lon0\">Lon0</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.bases._Triaxial3Base-class.html\">_Triaxial3Base</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.albers._AlbersBase-class.html#lat2\">lat2</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.albers._AlbersBase-class.html\">_AlbersBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.lcc.Lcc-class.html#latlonheight\">latlonheight</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.lcc.Lcc-class.html\">Lcc</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ecef._EcefBase-class.html#lon00\">lon00</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ecef._EcefBase-class.html\">_EcefBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.units.Lat_-class.html\">Lat_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.units-module.html\">pygeodesy.units</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.Local9Tuple-class.html#latlonheight\">latlonheight</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.Local9Tuple-class.html\">Local9Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltp.LocalCartesian-class.html#lon00\">lon00</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltp.LocalCartesian-class.html\">LocalCartesian</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.dms-module.html#latDMS\">latDMS()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.dms-module.html\">pygeodesy.dms</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#latlonheight\">latlonheight</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.nvectorBase.NvectorBase-class.html\">NvectorBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#lon1\">lon1</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html\">GeodesicAreaExact</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html#latFootPoint\">latFootPoint()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html\">UtmUpsBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.wgrs.Georef-class.html#latlonheight\">latlonheight</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.wgrs.Georef-class.html\">Georef</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#lon1\">lon1</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html\">_GeodesicLineExact</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipses.Ellipse-class.html#lati\">lati</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipses.Ellipse-class.html\">Ellipse</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltp.LocalCartesian-class.html#latlonheight0\">latlonheight0</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltp.LocalCartesian-class.html\">LocalCartesian</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#lon1\">lon1</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html\">RhumbLineBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.karney.Caps-class.html#LATITUDE\">LATITUDE</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.karney.Caps-class.html\">Caps</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.bases.LatLonHeightBase-class.html\">LatLonHeightBase</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.bases-module.html\">pygeodesy.deprecated.bases</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.solveBase._SolveGDictLineBase-class.html#lon1\">lon1</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.solveBase._SolveGDictLineBase-class.html\">_SolveGDictLineBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.karney._CapsBase-class.html#LATITUDE\">LATITUDE</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.karney._CapsBase-class.html\">_CapsBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#latlonheightdatum\">latlonheightdatum</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.cartesianBase.CartesianBase-class.html\">CartesianBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.units.Lon_-class.html\">Lon_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.units-module.html\">pygeodesy.units</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.karney.Caps-class.html#LATITUDE_LONGITUDE\">LATITUDE_LONGITUDE</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.karney.Caps-class.html\">Caps</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ecef.Ecef9Tuple-class.html#latlonheightdatum\">latlonheightdatum</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ecef.Ecef9Tuple-class.html\">Ecef9Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.dms-module.html#lonDMS\">lonDMS()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.dms-module.html\">pygeodesy.dms</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.karney.Caps-class.html#LATITUDE_LONGITUDE_AREA\">LATITUDE_LONGITUDE_AREA</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.karney.Caps-class.html\">Caps</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.lcc.Lcc-class.html#latlonheightdatum\">latlonheightdatum</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.lcc.Lcc-class.html\">Lcc</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.karney.Caps-class.html#LONG_UNROLL\">LONG_UNROLL</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.karney.Caps-class.html\">Caps</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.booleans._LatLonBool-class.html#latlon\">latlon</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.booleans._LatLonBool-class.html\">_LatLonBool</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#latlonheightdatum\">latlonheightdatum</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.nvectorBase.NvectorBase-class.html\">NvectorBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.karney._CapsBase-class.html#LONG_UNROLL\">LONG_UNROLL</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.karney._CapsBase-class.html\">_CapsBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#latlon\">latlon</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.cartesianBase.CartesianBase-class.html\">CartesianBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.nvectorBase.LatLonNvectorBase-class.html\">LatLonNvectorBase</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.nvectorBase-module.html\">pygeodesy.nvectorBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.karney.Caps-class.html#LONGITUDE\">LONGITUDE</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.karney.Caps-class.html\">Caps</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.css.Css-class.html#latlon\">latlon</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.css.Css-class.html\">Css</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.LatLonPrec3Tuple-class.html\">LatLonPrec3Tuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples-module.html\">pygeodesy.namedTuples</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.karney._CapsBase-class.html#LONGITUDE\">LONGITUDE</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.karney._CapsBase-class.html\">_CapsBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ecef.Ecef9Tuple-class.html#latlon\">latlon</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ecef.Ecef9Tuple-class.html\">Ecef9Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.LatLonPrec5Tuple-class.html\">LatLonPrec5Tuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples-module.html\">pygeodesy.namedTuples</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ecef.Ecef9Tuple-class.html#lonVermeille\">lonVermeille</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ecef.Ecef9Tuple-class.html\">Ecef9Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalExact.LatLon-class.html\">LatLon</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalExact-module.html\">pygeodesy.ellipsoidalExact</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html\">LatLonSphericalBase</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.sphericalBase-module.html\">pygeodesy.sphericalBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.iters._BaseIter-class.html#loop\">loop</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.iters._BaseIter-class.html\">_BaseIter</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalGeodSolve.LatLon-class.html\">LatLon</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalGeodSolve-module.html\">pygeodesy.ellipsoidalGeodSolve</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ecef.Ecef9Tuple-class.html#latlonVermeille\">latlonVermeille</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ecef.Ecef9Tuple-class.html\">Ecef9Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.iters._BaseIter-class.html#looped\">looped</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.iters._BaseIter-class.html\">_BaseIter</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalKarney.LatLon-class.html\">LatLon</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalKarney-module.html\">pygeodesy.ellipsoidalKarney</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.lazily-module.html\">lazily</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.Los-class.html\">Los</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples-module.html\">pygeodesy.ltpTuples</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalNvector.LatLon-class.html\">LatLon</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalNvector-module.html\">pygeodesy.ellipsoidalNvector</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.lazily.LazyAttributeError-class.html\">LazyAttributeError</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.lazily-module.html\">pygeodesy.lazily</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geoids._GeoidBase-class.html#loweright\">loweright()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geoids._GeoidBase-class.html\">_GeoidBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalVincenty.LatLon-class.html\">LatLon</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalVincenty-module.html\">pygeodesy.ellipsoidalVincenty</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.lazily.LazyImportError-class.html\">LazyImportError</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.lazily-module.html\">pygeodesy.lazily</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geoids._GeoidBase-class.html#lowerleft\">lowerleft()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geoids._GeoidBase-class.html\">_GeoidBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.gars.Garef-class.html#latlon\">latlon</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.gars.Garef-class.html\">Garef</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.lcc-module.html\">lcc</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geoids.GeoidKarney-class.html#lowest\">lowest()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geoids.GeoidKarney-class.html\">GeoidKarney</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geohash.Geohash-class.html#latlon\">latlon</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geohash.Geohash-class.html\">Geohash</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.lcc.Lcc-class.html\">Lcc</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.lcc-module.html\">pygeodesy.lcc</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geoids._GeoidBase-class.html#lowest\">lowest()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geoids._GeoidBase-class.html\">_GeoidBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#latlon\">latlon</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">LatLonBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.lcc.LCCError-class.html\">LCCError</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.lcc-module.html\">pygeodesy.lcc</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.streprs-module.html#lrstrip\">lrstrip()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.streprs-module.html\">pygeodesy.streprs</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.lcc.Lcc-class.html#latlon\">latlon</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.lcc.Lcc-class.html\">Lcc</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geohash.Geohashed-class.html#len2\">len2</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geohash.Geohashed-class.html\">Geohashed</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltp-module.html\">ltp</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.Local9Tuple-class.html#latlon\">latlon</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.Local9Tuple-class.html\">Local9Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.basics-module.html#len2\">len2()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.basics-module.html\">pygeodesy.basics</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltp.Frustum-class.html#ltp\">ltp</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltp.Frustum-class.html\">Frustum</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#latlon\">latlon</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.nvectorBase.NvectorBase-class.html\">NvectorBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.errors.LenError-class.html\">LenError</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.errors-module.html\">pygeodesy.errors</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltp.Ltp-class.html\">Ltp</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltp-module.html\">pygeodesy.ltp</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.sphericalNvector.LatLon-class.html\">LatLon</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.sphericalNvector-module.html\">pygeodesy.sphericalNvector</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.Ned-class.html#length\">length</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.Ned-class.html\">Ned</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.XyzLocal-class.html#ltp\">ltp</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.XyzLocal-class.html\">XyzLocal</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html\">LatLon</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.sphericalTrigonometry-module.html\">pygeodesy.sphericalTrigonometry</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#length\">length</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">Vector3dBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples._AbcBase-class.html#ltp\">ltp</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples._AbcBase-class.html\">_AbcBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.webmercator.Wm-class.html#latlon\">latlon</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.webmercator.Wm-class.html\">Wm</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#length2\">length2</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">Vector3dBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples-module.html\">ltpTuples</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.wgrs.Georef-class.html#latlon\">latlon</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.wgrs.Georef-class.html\">Georef</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb.bases-module.html#LHR\">LHR</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb.bases-module.html\">pygeodesy.rhumb.bases</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.points-module.html#luneOf\">luneOf()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.points-module.html\">pygeodesy.points</a>)</span></td>\n</tr>\n</table>\n</td></tr>\n</table>\n<br /><br /><!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th bgcolor=\"#70b0f0\" class=\"navbar-select\"\n          >&nbsp;&nbsp;&nbsp;Indices&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:16 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/identifier-index-M.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>Identifier Index</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th bgcolor=\"#70b0f0\" class=\"navbar-select\"\n          >&nbsp;&nbsp;&nbsp;Indices&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">&nbsp;</td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"identifier-index-M.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<center><b>[\n <a href=\"identifier-index.html\">Identifiers</a>\n| <a href=\"term-index.html\">Term Definitions</a>\n]</b></center><br />\n<table border=\"0\" width=\"100%\">\n<tr valign=\"bottom\"><td>\n<h1 class=\"epydoc\">Identifier Index</h1>\n</td><td>\n[\n <a href=\"identifier-index-A.html\">A</a>\n <a href=\"identifier-index-B.html\">B</a>\n <a href=\"identifier-index-C.html\">C</a>\n <a href=\"identifier-index-D.html\">D</a>\n <a href=\"identifier-index-E.html\">E</a>\n <a href=\"identifier-index-F.html\">F</a>\n <a href=\"identifier-index-G.html\">G</a>\n <a href=\"identifier-index-H.html\">H</a>\n <a href=\"identifier-index-I.html\">I</a>\n <a href=\"identifier-index-J.html\">J</a>\n <a href=\"identifier-index-K.html\">K</a>\n <a href=\"identifier-index-L.html\">L</a>\n <a href=\"identifier-index-M.html\">M</a>\n <a href=\"identifier-index-N.html\">N</a>\n <a href=\"identifier-index-O.html\">O</a>\n <a href=\"identifier-index-P.html\">P</a>\n <a href=\"identifier-index-Q.html\">Q</a>\n <a href=\"identifier-index-R.html\">R</a>\n <a href=\"identifier-index-S.html\">S</a>\n <a href=\"identifier-index-T.html\">T</a>\n <a href=\"identifier-index-U.html\">U</a>\n <a href=\"identifier-index-V.html\">V</a>\n <a href=\"identifier-index-W.html\">W</a>\n <a href=\"identifier-index-X.html\">X</a>\n <a href=\"identifier-index-Y.html\">Y</a>\n <a href=\"identifier-index-Z.html\">Z</a>\n <a href=\"identifier-index-_.html\">_</a>\n]\n</td></table>\n<table border=\"0\" width=\"100%\">\n<tr valign=\"top\"><td valign=\"top\" width=\"1%\"><h2 class=\"epydoc\"><a name=\"M\">M</a></h2></td>\n<td valign=\"top\">\n<table class=\"link-index\" width=\"100%\" border=\"1\">\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltp.LocalCartesian-class.html#M\">M</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltp.LocalCartesian-class.html\">LocalCartesian</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated-module.html#MANTIS\">MANTIS</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated-module.html\">pygeodesy.deprecated</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.mgrs.Mgrs-class.html\">Mgrs</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.mgrs-module.html\">pygeodesy.mgrs</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utily-module.html#m2acre\">m2acre()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utily-module.html\">pygeodesy.utily</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.consterns-module.html#MANTIS\">MANTIS</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.consterns-module.html\" onclick=\"show_private();\">pygeodesy.deprecated.consterns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.mgrs.Mgrs4Tuple-class.html\">Mgrs4Tuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.mgrs-module.html\">pygeodesy.mgrs</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utily-module.html#m2chain\">m2chain()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utily-module.html\">pygeodesy.utily</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.basics-module.html#map1\">map1()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.basics-module.html\">pygeodesy.basics</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.mgrs.Mgrs6Tuple-class.html\">Mgrs6Tuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.mgrs-module.html\">pygeodesy.mgrs</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#m2degrees\">m2degrees()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.basics-module.html#map2\">map2()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.basics-module.html\">pygeodesy.basics</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.errors.MGRSError-class.html\">MGRSError</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.errors-module.html\">pygeodesy.errors</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#m2degrees\">m2degrees()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html\">RhumbLineBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltp.Attitude-class.html#matrix\">matrix</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltp.Attitude-class.html\">Attitude</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesici.Intersectool-class.html#Middle\">Middle()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesici.Intersectool-class.html\">Intersectool</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utily-module.html#m2degrees\">m2degrees()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utily-module.html\">pygeodesy.utily</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ecef.EcefMatrix-class.html#matrix3\">matrix3</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ecef.EcefMatrix-class.html\">EcefMatrix</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesici.Intersector-class.html#Middle\">Middle()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesici.Intersector-class.html\">Intersector</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utily-module.html#m2fathom\">m2fathom()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utily-module.html\">pygeodesy.utily</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ecef.EcefMatrix-class.html#matrixTransposed3\">matrixTransposed3</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ecef.EcefMatrix-class.html\">EcefMatrix</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesici.Intersectool-class.html#Middle5\">Middle5()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesici.Intersectool-class.html\">Intersectool</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utily-module.html#m2ft\">m2ft()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utily-module.html\">pygeodesy.utily</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy-module.html#MAX\">MAX</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesici.Intersector-class.html#Middle5\">Middle5()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesici.Intersector-class.html\">Intersector</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utily-module.html#m2furlong\">m2furlong()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utily-module.html\">pygeodesy.utily</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.constants-module.html#MAX\">MAX</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.constants-module.html\">pygeodesy.constants</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesici.Middle5Tuple-class.html\">Middle5Tuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesici-module.html\">pygeodesy.geodesici</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utily-module.html#m2ha\">m2ha()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utily-module.html\">pygeodesy.utily</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.basics-module.html#max2\">max2()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.basics-module.html\">pygeodesy.basics</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#midpointTo\">midpointTo()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html\">LatLonEllipsoidalBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utily-module.html#m2km\">m2km()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utily-module.html\">pygeodesy.utily</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy-module.html#MAX_EXP\">MAX_EXP</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.sphericalNvector.LatLon-class.html#midpointTo\">midpointTo()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.sphericalNvector.LatLon-class.html\">LatLon</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utily-module.html#m2NM\">m2NM()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utily-module.html\">pygeodesy.utily</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.constants-module.html#MAX_EXP\">MAX_EXP</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.constants-module.html\">pygeodesy.constants</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html#midpointTo\">midpointTo()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html\">LatLon</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#m2radians\">m2radians()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html#maxLat\">maxLat()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html\">LatLonSphericalBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy-module.html#MIN\">MIN</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utily-module.html#m2radians\">m2radians()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utily-module.html\">pygeodesy.utily</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geoids._GeoidBase-class.html#mean\">mean</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geoids._GeoidBase-class.html\">_GeoidBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.constants-module.html#MIN\">MIN</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.constants-module.html\">pygeodesy.constants</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utily-module.html#m2SM\">m2SM()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utily-module.html\">pygeodesy.utily</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalNvector-module.html#meanOf\">meanOf()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalNvector-module.html\">pygeodesy.ellipsoidalNvector</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.basics-module.html#min2\">min2()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.basics-module.html\">pygeodesy.basics</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utily-module.html#m2toise\">m2toise()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utily-module.html\">pygeodesy.utily</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.sphericalNvector-module.html#meanOf\">meanOf()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.sphericalNvector-module.html\">pygeodesy.sphericalNvector</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy-module.html#MIN_EXP\">MIN_EXP</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utily-module.html#m2yard\">m2yard()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utily-module.html\">pygeodesy.utily</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.sphericalTrigonometry-module.html#meanOf\">meanOf()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.sphericalTrigonometry-module.html\">pygeodesy.sphericalTrigonometry</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.constants-module.html#MIN_EXP\">MIN_EXP</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.constants-module.html\">pygeodesy.constants</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.internals-module.html#machine\">machine()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.internals-module.html\">pygeodesy.internals</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector2d-module.html#meeus2\">meeus2()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector2d-module.html\">pygeodesy.vector2d</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html#minLat\">minLat()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html\">LatLonSphericalBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.albers._AlbersBase-class.html#majoradius\">majoradius</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.albers._AlbersBase-class.html\">_AlbersBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector3d.Vector3d-class.html#meeus2\">meeus2()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector3d.Vector3d-class.html\">Vector3d</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#minoradius\">minoradius</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#majoradius\">majoradius</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html\">_AzimuthalBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector2d.Meeus2Tuple-class.html\">Meeus2Tuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector2d-module.html\">pygeodesy.vector2d</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#minus\">minus()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">Vector3dBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.css.CassiniSoldner-class.html#majoradius\">majoradius</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.css.CassiniSoldner-class.html\">CassiniSoldner</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.units.Meter-class.html\">Meter</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.units-module.html\">pygeodesy.units</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#minus_\">minus_()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">Vector3dBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#majoradius\">majoradius</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.units.Meter2-class.html\">Meter2</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.units-module.html\">pygeodesy.units</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#MISSING\">MISSING</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.etm.ExactTransverseMercator-class.html#majoradius\">majoradius</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.etm.ExactTransverseMercator-class.html\">ExactTransverseMercator</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.units.Meter3-class.html\">Meter3</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.units-module.html\">pygeodesy.units</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.angles.Ang-class.html#mod\">mod()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.angles.Ang-class.html\">Ang</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy-module.html#MANT_DIG\">MANT_DIG</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.units.Meter_-class.html\">Meter_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.units-module.html\">pygeodesy.units</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.named-module.html#modulename\">modulename()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.named-module.html\">pygeodesy.named</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.constants-module.html#MANT_DIG\">MANT_DIG</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.constants-module.html\">pygeodesy.constants</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.named._Named-class.html\">_Named</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ecef.EcefMatrix-class.html#multiply\">multiply()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ecef.EcefMatrix-class.html\">EcefMatrix</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy-module.html#MANTIS\">MANTIS</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.mgrs-module.html\">mgrs</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ecef.Ecef9Tuple-class.html#Mx\">Mx</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ecef.Ecef9Tuple-class.html\">Ecef9Tuple</a>)</span></td>\n</tr>\n</table>\n</td></tr>\n</table>\n<br /><br /><!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th bgcolor=\"#70b0f0\" class=\"navbar-select\"\n          >&nbsp;&nbsp;&nbsp;Indices&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:16 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/identifier-index-N.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>Identifier Index</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th bgcolor=\"#70b0f0\" class=\"navbar-select\"\n          >&nbsp;&nbsp;&nbsp;Indices&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">&nbsp;</td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"identifier-index-N.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<center><b>[\n <a href=\"identifier-index.html\">Identifiers</a>\n| <a href=\"term-index.html\">Term Definitions</a>\n]</b></center><br />\n<table border=\"0\" width=\"100%\">\n<tr valign=\"bottom\"><td>\n<h1 class=\"epydoc\">Identifier Index</h1>\n</td><td>\n[\n <a href=\"identifier-index-A.html\">A</a>\n <a href=\"identifier-index-B.html\">B</a>\n <a href=\"identifier-index-C.html\">C</a>\n <a href=\"identifier-index-D.html\">D</a>\n <a href=\"identifier-index-E.html\">E</a>\n <a href=\"identifier-index-F.html\">F</a>\n <a href=\"identifier-index-G.html\">G</a>\n <a href=\"identifier-index-H.html\">H</a>\n <a href=\"identifier-index-I.html\">I</a>\n <a href=\"identifier-index-J.html\">J</a>\n <a href=\"identifier-index-K.html\">K</a>\n <a href=\"identifier-index-L.html\">L</a>\n <a href=\"identifier-index-M.html\">M</a>\n <a href=\"identifier-index-N.html\">N</a>\n <a href=\"identifier-index-O.html\">O</a>\n <a href=\"identifier-index-P.html\">P</a>\n <a href=\"identifier-index-Q.html\">Q</a>\n <a href=\"identifier-index-R.html\">R</a>\n <a href=\"identifier-index-S.html\">S</a>\n <a href=\"identifier-index-T.html\">T</a>\n <a href=\"identifier-index-U.html\">U</a>\n <a href=\"identifier-index-V.html\">V</a>\n <a href=\"identifier-index-W.html\">W</a>\n <a href=\"identifier-index-X.html\">X</a>\n <a href=\"identifier-index-Y.html\">Y</a>\n <a href=\"identifier-index-Z.html\">Z</a>\n <a href=\"identifier-index-_.html\">_</a>\n]\n</td></table>\n<table border=\"0\" width=\"100%\">\n<tr valign=\"top\"><td valign=\"top\" width=\"1%\"><h2 class=\"epydoc\"><a name=\"N\">N</a></h2></td>\n<td valign=\"top\">\n<table class=\"link-index\" width=\"100%\" border=\"1\">\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.angles.Ang-class.html#n\">n</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.angles.Ang-class.html\">Ang</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.NearestOn2Tuple-class.html\">NearestOn2Tuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples-module.html\">pygeodesy.namedTuples</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums.Fsum-class.html#nonfinitesOK\">nonfinitesOK</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums.Fsum-class.html\">Fsum</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxDST.AuxDST-class.html#N\">N</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats.auxDST.AuxDST-class.html\">AuxDST</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.functions-module.html#nearestOn3\">nearestOn3()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.functions-module.html\" onclick=\"show_private();\">pygeodesy.deprecated.functions</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.karney.Caps-class.html#NONFINITONAN\">NONFINITONAN</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.karney.Caps-class.html\">Caps</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#n\">n</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.sphericalNvector.LatLon-class.html#nearestOn3\">nearestOn3()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.sphericalNvector.LatLon-class.html\">LatLon</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.karney._CapsBase-class.html#NONFINITONAN\">NONFINITONAN</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.karney._CapsBase-class.html\">_CapsBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html#n\">n</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html\">GeodesicExact</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.sphericalNvector-module.html#nearestOn3\">nearestOn3()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.sphericalNvector-module.html\">pygeodesy.sphericalNvector</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fmath-module.html#norm2\">norm2()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fmath-module.html\">pygeodesy.fmath</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geohash.Geohash-class.html#N\">N</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geohash.Geohash-class.html\">Geohash</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html#nearestOn3\">nearestOn3()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html\">LatLon</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fmath-module.html#norm_\">norm_()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fmath-module.html\">pygeodesy.fmath</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.angles.Ang-class.html#N\">N()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.angles.Ang-class.html\">Ang</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.sphericalTrigonometry-module.html#nearestOn3\">nearestOn3()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.sphericalTrigonometry-module.html\">pygeodesy.sphericalTrigonometry</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#normal\">normal()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html\">AuxAngle</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.angles.Ang-class.html#n0\">n0</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.angles.Ang-class.html\">Ang</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.NearestOn3Tuple-class.html\">NearestOn3Tuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples-module.html\">pygeodesy.namedTuples</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.formy-module.html#normal\">normal()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.formy-module.html\">pygeodesy.formy</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.lcc.Conic-class.html#N0\">N0</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.lcc.Conic-class.html\">Conic</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.functions-module.html#nearestOn4\">nearestOn4()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.functions-module.html\" onclick=\"show_private();\">pygeodesy.deprecated.functions</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#normal\">normal()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">LatLonBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids-module.html#n2e2\">n2e2()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids-module.html\">pygeodesy.ellipsoids</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#nearestOn4\">nearestOn4()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html\">RhumbLineBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipses.Ellipse-class.html#normal3d\">normal3d()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipses.Ellipse-class.html\">Ellipse</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids-module.html#n2f\">n2f()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids-module.html\">pygeodesy.ellipsoids</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.classes.NearestOn4Tuple-class.html\">NearestOn4Tuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.classes-module.html\" onclick=\"show_private();\">pygeodesy.deprecated.classes</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#normal3d\">normal3d()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html\">_UnOrderedTriaxialBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids-module.html#n2f_\">n2f_()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids-module.html\">pygeodesy.ellipsoids</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.points-module.html#nearestOn5\">nearestOn5()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.points-module.html\">pygeodesy.points</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipses.Ellipse-class.html#normal4\">normal4()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipses.Ellipse-class.html\">Ellipse</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.ChLV9Tuple-class.html#N_LV95\">N_LV95</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.ChLV9Tuple-class.html\">ChLV9Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#nearestOn6\">nearestOn6()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">LatLonBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#normal4\">normal4()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html\">_UnOrderedTriaxialBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.nvectorBase-module.html#n_xyz2latlon\">n_xyz2latlon()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.nvectorBase-module.html\">pygeodesy.nvectorBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector3d.Vector3d-class.html#nearestOn6\">nearestOn6()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector3d.Vector3d-class.html\">Vector3d</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.formy-module.html#normal_\">normal_()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.formy-module.html\">pygeodesy.formy</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.nvectorBase-module.html#n_xyz2philam\">n_xyz2philam()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.nvectorBase-module.html\">pygeodesy.nvectorBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector3d-module.html#nearestOn6\">nearestOn6()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector3d-module.html\">pygeodesy.vector3d</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.angles.Ang-class.html#normalize\">normalize()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.angles.Ang-class.html\">Ang</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geoids._GeoidBase-class.html#name\">name</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geoids._GeoidBase-class.html\">_GeoidBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.NearestOn6Tuple-class.html\">NearestOn6Tuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples-module.html\">pygeodesy.namedTuples</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#normalized\">normalized</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html\">AuxAngle</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.named._Named-class.html#name\">name</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.named._Named-class.html\">_Named</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#nearestOn8\">nearestOn8()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html\">LatLonEllipsoidalBaseDI</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.dms-module.html#normDMS\">normDMS()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.dms-module.html\">pygeodesy.dms</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.named._NamedEnumItem-class.html#name\">name</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.named._NamedEnumItem-class.html\">_NamedEnumItem</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.NearestOn8Tuple-class.html\">NearestOn8Tuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples-module.html\">pygeodesy.namedTuples</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html#normed2\">normed2()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html\">Triaxial3</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.lcc.Conic-class.html#name2\">name2</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.lcc.Conic-class.html\">Conic</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#nearestTo\">nearestTo()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">LatLonBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.Aer-class.html#north\">north</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.Aer-class.html\">Aer</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.named-module.html\">named</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalNvector.Ned-class.html\">Ned</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalNvector-module.html\">pygeodesy.ellipsoidalNvector</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.Local9Tuple-class.html#north\">north</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.Local9Tuple-class.html\">Local9Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.named._Named-class.html#named\">named</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.named._Named-class.html\">_Named</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.Ned-class.html\">Ned</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples-module.html\">pygeodesy.ltpTuples</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.Ned-class.html#north\">north</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.Ned-class.html\">Ned</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.named._Named-class.html\">_Named</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.Ned-class.html#ned\">ned</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.Ned-class.html\">Ned</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.XyzLocal-class.html#north\">north</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.XyzLocal-class.html\">XyzLocal</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.named._Named-class.html\">_Named</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.classes.Ned3Tuple-class.html\">Ned3Tuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.classes-module.html\" onclick=\"show_private();\">pygeodesy.deprecated.classes</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.css.Css-class.html#northing\">northing</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.css.Css-class.html\">Css</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.named._Named-class.html\">_Named</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.Ned-class.html#ned4\">ned4</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.Ned-class.html\">Ned</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.lcc.Lcc-class.html#northing\">northing</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.lcc.Lcc-class.html\">Lcc</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples-module.html\">namedTuples</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.XyzLocal-class.html#ned4\">ned4</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.XyzLocal-class.html\">XyzLocal</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.mgrs.Mgrs-class.html#northing\">northing</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.mgrs.Mgrs-class.html\">Mgrs</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.named-module.html#nameof\">nameof()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.named-module.html\">pygeodesy.named</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.Ned4Tuple-class.html\">Ned4Tuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples-module.html\">pygeodesy.ltpTuples</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.osgr.Osgr-class.html#northing\">northing</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.osgr.Osgr-class.html\">Osgr</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy-module.html#NAN\">NAN</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.basics-module.html#neg\">neg()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.basics-module.html\">pygeodesy.basics</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.units.Northing-class.html\">Northing</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.units-module.html\">pygeodesy.units</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.constants-module.html#NAN\">NAN</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.constants-module.html\">pygeodesy.constants</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy-module.html#NEG0\">NEG0</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html#northing\">northing</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html\">UtmUpsBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.angles.Ang-class.html#NAN\">NAN()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.angles.Ang-class.html\">Ang</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.constants-module.html#NEG0\">NEG0</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.constants-module.html\">pygeodesy.constants</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.mgrs.Mgrs-class.html#northingBottom\">northingBottom</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.mgrs.Mgrs-class.html\">Mgrs</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html#napieradius\">napieradius</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html\">LatLonSphericalBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.basics-module.html#neg_\">neg_()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.basics-module.html\">pygeodesy.basics</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy-module.html#NorthPole\">NorthPole</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geoids._GeoidBase-class.html#nBytes\">nBytes</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geoids._GeoidBase-class.html\">_GeoidBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#negate\">negate()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">Vector3dBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated-module.html#NorthPole\">NorthPole</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated-module.html\">pygeodesy.deprecated</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.angles.Ang-class.html#ncardinal\">ncardinal</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.angles.Ang-class.html\">Ang</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geohash.Geohash-class.html#neighbors\">neighbors</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geohash.Geohash-class.html\">Geohash</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.nvector-module.html#NorthPole\">NorthPole</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.nvector-module.html\">pygeodesy.deprecated.nvector</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geohash.Geohashed-class.html#ndigits\">ndigits</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geohash.Geohashed-class.html\">Geohashed</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geohash-module.html#neighbors\">neighbors()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geohash-module.html\">pygeodesy.geohash</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.nvectorBase-module.html#NorthPole\">NorthPole</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.nvectorBase-module.html\">pygeodesy.nvectorBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geohash.Geohash-class.html#NE\">NE</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geohash.Geohash-class.html\">Geohash</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geohash.Neighbors8Dict-class.html\">Neighbors8Dict</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geohash-module.html\">pygeodesy.geohash</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.named-module.html#notImplemented\">notImplemented()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.named-module.html\">pygeodesy.named</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb.bases-module.html#NE_\">NE_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb.bases-module.html\">pygeodesy.rhumb.bases</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.iters._BaseIter-class.html#next\">next</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.iters._BaseIter-class.html\">_BaseIter</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.named-module.html#notOverloaded\">notOverloaded()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.named-module.html\">pygeodesy.named</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.angles.Ang-class.html#nearest\">nearest()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.angles.Ang-class.html\">Ang</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesici.Intersectool-class.html#Next\">Next()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesici.Intersectool-class.html\">Intersectool</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb.bases-module.html#NRT\">NRT</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb.bases-module.html\">pygeodesy.rhumb.bases</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#nearestOn\">nearestOn()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html\">LatLonEllipsoidalBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesici.Intersector-class.html#Next\">Next()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesici.Intersector-class.html\">Intersector</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#num\">num</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html\">GeodesicAreaExact</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalExact-module.html#nearestOn\">nearestOn()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalExact-module.html\">pygeodesy.ellipsoidalExact</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesici.Intersectool-class.html#Next5\">Next5()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesici.Intersectool-class.html\">Intersectool</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.units.Number_-class.html\">Number_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.units-module.html\">pygeodesy.units</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalGeodSolve-module.html#nearestOn\">nearestOn()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalGeodSolve-module.html\">pygeodesy.ellipsoidalGeodSolve</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesici.Intersector-class.html#Next5\">Next5()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesici.Intersector-class.html\">Intersector</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.heights._HeightBase-class.html#numpy\">numpy</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.heights._HeightBase-class.html\">_HeightBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalKarney-module.html#nearestOn\">nearestOn()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalKarney-module.html\">pygeodesy.ellipsoidalKarney</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesici._IntersectBase-class.html#Next5s\">Next5s()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesici._IntersectBase-class.html\">_IntersectBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.points.Numpy2LatLon-class.html\">Numpy2LatLon</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.points-module.html\">pygeodesy.points</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalVincenty-module.html#nearestOn\">nearestOn()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalVincenty-module.html\">pygeodesy.ellipsoidalVincenty</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.iters._BaseIter-class.html#next_\">next_()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.iters._BaseIter-class.html\">_BaseIter</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.errors.NumPyError-class.html\">NumPyError</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.errors-module.html\">pygeodesy.errors</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#NearestOn\">NearestOn()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html\">RhumbLineBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy-module.html#NINF\">NINF</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.nvector-module.html\">nvector</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated-module.html\">pygeodesy.deprecated</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.sphericalNvector.LatLon-class.html#nearestOn\">nearestOn()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.sphericalNvector.LatLon-class.html\">LatLon</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.constants-module.html#NINF\">NINF</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.constants-module.html\">pygeodesy.constants</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.nvector.Nvector-class.html\">Nvector</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.nvector-module.html\">pygeodesy.deprecated.nvector</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html#nearestOn\">nearestOn()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html\">LatLon</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utily-module.html#NM2m\">NM2m()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utily-module.html\">pygeodesy.utily</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalNvector.Nvector-class.html\">Nvector</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalNvector-module.html\">pygeodesy.ellipsoidalNvector</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector3d.Vector3d-class.html#nearestOn\">nearestOn()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector3d.Vector3d-class.html\">Vector3d</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy-module.html#NN\">NN</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.sphericalNvector.Nvector-class.html\">Nvector</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.sphericalNvector-module.html\">pygeodesy.sphericalNvector</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector3d-module.html#nearestOn\">nearestOn()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector3d-module.html\">pygeodesy.vector3d</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.internals-module.html#NN\">NN</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.internals-module.html\">pygeodesy.internals</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.nvectorBase-module.html\">nvectorBase</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.sphericalNvector.LatLon-class.html#nearestOn2\">nearestOn2()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.sphericalNvector.LatLon-class.html\">LatLon</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#NN\">NN</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html\">NvectorBase</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.nvectorBase-module.html\">pygeodesy.nvectorBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.sphericalNvector-module.html#nearestOn2\">nearestOn2()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.sphericalNvector-module.html\">pygeodesy.sphericalNvector</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.lazily-module.html#NN\">NN</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.lazily-module.html\">pygeodesy.lazily</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geohash.Geohash-class.html#NW\">NW</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geohash.Geohash-class.html\">Geohash</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html#nearestOn2\">nearestOn2()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html\">LatLon</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums-module.html#nonfiniterrors\">nonfiniterrors()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums-module.html\">pygeodesy.fsums</a>)</span></td>\n<td width=\"33%\" class=\"link-index\">&nbsp;</td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.sphericalTrigonometry-module.html#nearestOn2\">nearestOn2()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.sphericalTrigonometry-module.html\">pygeodesy.sphericalTrigonometry</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums.Fsum-class.html#nonfinites\">nonfinites()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums.Fsum-class.html\">Fsum</a>)</span></td>\n<td width=\"33%\" class=\"link-index\">&nbsp;</td>\n</tr>\n</table>\n</td></tr>\n</table>\n<br /><br /><!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th bgcolor=\"#70b0f0\" class=\"navbar-select\"\n          >&nbsp;&nbsp;&nbsp;Indices&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:16 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/identifier-index-O.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>Identifier Index</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th bgcolor=\"#70b0f0\" class=\"navbar-select\"\n          >&nbsp;&nbsp;&nbsp;Indices&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">&nbsp;</td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"identifier-index-O.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<center><b>[\n <a href=\"identifier-index.html\">Identifiers</a>\n| <a href=\"term-index.html\">Term Definitions</a>\n]</b></center><br />\n<table border=\"0\" width=\"100%\">\n<tr valign=\"bottom\"><td>\n<h1 class=\"epydoc\">Identifier Index</h1>\n</td><td>\n[\n <a href=\"identifier-index-A.html\">A</a>\n <a href=\"identifier-index-B.html\">B</a>\n <a href=\"identifier-index-C.html\">C</a>\n <a href=\"identifier-index-D.html\">D</a>\n <a href=\"identifier-index-E.html\">E</a>\n <a href=\"identifier-index-F.html\">F</a>\n <a href=\"identifier-index-G.html\">G</a>\n <a href=\"identifier-index-H.html\">H</a>\n <a href=\"identifier-index-I.html\">I</a>\n <a href=\"identifier-index-J.html\">J</a>\n <a href=\"identifier-index-K.html\">K</a>\n <a href=\"identifier-index-L.html\">L</a>\n <a href=\"identifier-index-M.html\">M</a>\n <a href=\"identifier-index-N.html\">N</a>\n <a href=\"identifier-index-O.html\">O</a>\n <a href=\"identifier-index-P.html\">P</a>\n <a href=\"identifier-index-Q.html\">Q</a>\n <a href=\"identifier-index-R.html\">R</a>\n <a href=\"identifier-index-S.html\">S</a>\n <a href=\"identifier-index-T.html\">T</a>\n <a href=\"identifier-index-U.html\">U</a>\n <a href=\"identifier-index-V.html\">V</a>\n <a href=\"identifier-index-W.html\">W</a>\n <a href=\"identifier-index-X.html\">X</a>\n <a href=\"identifier-index-Y.html\">Y</a>\n <a href=\"identifier-index-Z.html\">Z</a>\n <a href=\"identifier-index-_.html\">_</a>\n]\n</td></table>\n<table border=\"0\" width=\"100%\">\n<tr valign=\"top\"><td valign=\"top\" width=\"1%\"><h2 class=\"epydoc\"><a name=\"O\">O</a></h2></td>\n<td valign=\"top\">\n<table class=\"link-index\" width=\"100%\" border=\"1\">\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy-module.html#OK\">OK</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb.ekx.Rhumb-class.html#orders\">orders()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb.ekx.Rhumb-class.html\">Rhumb</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#others\">others()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">Vector3dBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated-module.html#OK\">OK</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated-module.html\">pygeodesy.deprecated</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.azimuthal.Orthographic-class.html\">Orthographic</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.azimuthal-module.html\">pygeodesy.azimuthal</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geoids._GeoidBase-class.html#outside\">outside()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geoids._GeoidBase-class.html\">_GeoidBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.consterns-module.html#OK\">OK</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.consterns-module.html\" onclick=\"show_private();\">pygeodesy.deprecated.consterns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.osgr-module.html\">osgr</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy-module.html#OVERFLOW\">OVERFLOW</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geod3solve.GeodesicLine3Solve-class.html#omg1\">omg1</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geod3solve.GeodesicLine3Solve-class.html\">GeodesicLine3Solve</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.osgr.Osgr-class.html\">Osgr</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.osgr-module.html\">pygeodesy.osgr</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.constants-module.html#OVERFLOW\">OVERFLOW</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.constants-module.html\">pygeodesy.constants</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.formy-module.html#opposing\">opposing()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.formy-module.html\">pygeodesy.formy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.osgr.OSGRError-class.html\">OSGRError</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.osgr-module.html\">pygeodesy.osgr</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.Bounds4Tuple-class.html#overlap\">overlap()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples.Bounds4Tuple-class.html\">Bounds4Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.formy-module.html#opposing_\">opposing_()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.formy-module.html\">pygeodesy.formy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.named._NamedBase-class.html#others\">others()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.named._NamedBase-class.html\">_NamedBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\">&nbsp;</td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.lcc.Conic-class.html#opt3\">opt3</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.lcc.Conic-class.html\">Conic</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.nvectorBase.LatLonNvectorBase-class.html#others\">others()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.nvectorBase.LatLonNvectorBase-class.html\">LatLonNvectorBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\">&nbsp;</td>\n</tr>\n</table>\n</td></tr>\n</table>\n<br /><br /><!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th bgcolor=\"#70b0f0\" class=\"navbar-select\"\n          >&nbsp;&nbsp;&nbsp;Indices&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:16 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/identifier-index-P.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>Identifier Index</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th bgcolor=\"#70b0f0\" class=\"navbar-select\"\n          >&nbsp;&nbsp;&nbsp;Indices&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">&nbsp;</td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"identifier-index-P.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<center><b>[\n <a href=\"identifier-index.html\">Identifiers</a>\n| <a href=\"term-index.html\">Term Definitions</a>\n]</b></center><br />\n<table border=\"0\" width=\"100%\">\n<tr valign=\"bottom\"><td>\n<h1 class=\"epydoc\">Identifier Index</h1>\n</td><td>\n[\n <a href=\"identifier-index-A.html\">A</a>\n <a href=\"identifier-index-B.html\">B</a>\n <a href=\"identifier-index-C.html\">C</a>\n <a href=\"identifier-index-D.html\">D</a>\n <a href=\"identifier-index-E.html\">E</a>\n <a href=\"identifier-index-F.html\">F</a>\n <a href=\"identifier-index-G.html\">G</a>\n <a href=\"identifier-index-H.html\">H</a>\n <a href=\"identifier-index-I.html\">I</a>\n <a href=\"identifier-index-J.html\">J</a>\n <a href=\"identifier-index-K.html\">K</a>\n <a href=\"identifier-index-L.html\">L</a>\n <a href=\"identifier-index-M.html\">M</a>\n <a href=\"identifier-index-N.html\">N</a>\n <a href=\"identifier-index-O.html\">O</a>\n <a href=\"identifier-index-P.html\">P</a>\n <a href=\"identifier-index-Q.html\">Q</a>\n <a href=\"identifier-index-R.html\">R</a>\n <a href=\"identifier-index-S.html\">S</a>\n <a href=\"identifier-index-T.html\">T</a>\n <a href=\"identifier-index-U.html\">U</a>\n <a href=\"identifier-index-V.html\">V</a>\n <a href=\"identifier-index-W.html\">W</a>\n <a href=\"identifier-index-X.html\">X</a>\n <a href=\"identifier-index-Y.html\">Y</a>\n <a href=\"identifier-index-Z.html\">Z</a>\n <a href=\"identifier-index-_.html\">_</a>\n]\n</td></table>\n<table border=\"0\" width=\"100%\">\n<tr valign=\"top\"><td valign=\"top\" width=\"1%\"><h2 class=\"epydoc\"><a name=\"P\">P</a></h2></td>\n<td valign=\"top\">\n<table class=\"link-index\" width=\"100%\" border=\"1\">\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipses.Ellipse-class.html#p\">p</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipses.Ellipse-class.html\">Ellipse</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.Local9Tuple-class.html#phi\">phi</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.Local9Tuple-class.html\">Local9Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#PlumbTo\">PlumbTo()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html\">RhumbLineBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb.solve-module.html#p\">p</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb.solve-module.html\">pygeodesy.rhumb.solve</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#phi\">phi</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.nvectorBase.NvectorBase-class.html\">NvectorBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#plus\">plus()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">Vector3dBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.streprs-module.html#pairs\">pairs()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.streprs-module.html\">pygeodesy.streprs</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.units.Phi-class.html\">Phi</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.units-module.html\">pygeodesy.units</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#plus_\">plus_()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">Vector3dBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.lcc.Conic-class.html#par1\">par1</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.lcc.Conic-class.html\">Conic</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.lcc.Conic-class.html#phi0\">phi0</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.lcc.Conic-class.html\">Conic</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipses.Ellipse-class.html#point\">point()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipses.Ellipse-class.html\">Ellipse</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.lcc.Conic-class.html#par2\">par2</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.lcc.Conic-class.html\">Conic</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.classes.Phi_-class.html\">Phi_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.classes-module.html\" onclick=\"show_private();\">pygeodesy.deprecated.classes</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.frechet.Frechet-class.html#point\">point()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.frechet.Frechet-class.html\">Frechet</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.bases.LLK-class.html#PARAMETRIC\">PARAMETRIC</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.bases.LLK-class.html\">LLK</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.units.Phid-class.html\">Phid</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.units-module.html\">pygeodesy.units</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.frechet.FrechetRadians-class.html#point\">point()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.frechet.FrechetRadians-class.html\">FrechetRadians</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxLat.AuxLat-class.html#Parametric\">Parametric()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats.auxLat.AuxLat-class.html\">AuxLat</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html#phiFootPoint\">phiFootPoint()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html\">UtmUpsBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.hausdorff.Hausdorff-class.html#point\">point()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.hausdorff.Hausdorff-class.html\">Hausdorff</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.bases.LLK-class.html#PARAMETRIC_X\">PARAMETRIC_X</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.bases.LLK-class.html\">LLK</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#philam\">philam</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.cartesianBase.CartesianBase-class.html\">CartesianBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.hausdorff.HausdorffRadians-class.html#point\">point()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.hausdorff.HausdorffRadians-class.html\">HausdorffRadians</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#parse\">parse()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html\">LatLonEllipsoidalBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ecef.Ecef9Tuple-class.html#philam\">philam</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ecef.Ecef9Tuple-class.html\">Ecef9Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.points.LatLon2psxy-class.html#point\">point()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.points.LatLon2psxy-class.html\">LatLon2psxy</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.etm.Etm-class.html#parse\">parse()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.etm.Etm-class.html\">Etm</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geohash.Geohash-class.html#philam\">philam</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geohash.Geohash-class.html\">Geohash</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.points._Array2LatLon-class.html#point\">point()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.points._Array2LatLon-class.html\">_Array2LatLon</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.mgrs.Mgrs-class.html#parse\">parse()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.mgrs.Mgrs-class.html\">Mgrs</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#philam\">philam</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">LatLonBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.points._Basequence-class.html#point\">point()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.points._Basequence-class.html\">_Basequence</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.osgr.Osgr-class.html#parse\">parse()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.osgr.Osgr-class.html\">Osgr</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.lcc.Lcc-class.html#philam\">philam</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.lcc.Lcc-class.html\">Lcc</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.Point3Tuple-class.html\">Point3Tuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples-module.html\">pygeodesy.namedTuples</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html#parse\">parse()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html\">LatLonSphericalBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.Local9Tuple-class.html#philam\">philam</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.Local9Tuple-class.html\">Local9Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.points-module.html\">points</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ups.Ups-class.html#parse\">parse()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ups.Ups-class.html\">Ups</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#philam\">philam</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.nvectorBase.NvectorBase-class.html\">NvectorBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipses.Ellipse-class.html#points\">points()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipses.Ellipse-class.html\">Ellipse</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utm.Utm-class.html#parse\">parse()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utm.Utm-class.html\">Utm</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.webmercator.Wm-class.html#philam\">philam</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.webmercator.Wm-class.html\">Wm</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#points\">points()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">LatLonBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector3d.Vector3d-class.html#parse\">parse()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector3d.Vector3d-class.html\">Vector3d</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.lcc.Conic-class.html#philam0\">philam0</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.lcc.Conic-class.html\">Conic</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.iters-module.html#points2\">points2()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.iters-module.html\">pygeodesy.iters</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.webmercator.Wm-class.html#parse\">parse()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.webmercator.Wm-class.html\">Wm</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#philam2\">philam2()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">LatLonBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#points2\">points2()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">LatLonBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector3d-module.html#parse3d\">parse3d()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector3d-module.html\">pygeodesy.vector3d</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.latlonBase-module.html#philam2n_xyz\">philam2n_xyz()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.latlonBase-module.html\">pygeodesy.latlonBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.Points2Tuple-class.html\">Points2Tuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples-module.html\">pygeodesy.namedTuples</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.dms-module.html#parse3llh\">parse3llh()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.dms-module.html\">pygeodesy.dms</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.PhiLam2Tuple-class.html\">PhiLam2Tuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples-module.html\">pygeodesy.namedTuples</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.frechet.Frechet-class.html#points_\">points_()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.frechet.Frechet-class.html\">Frechet</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.dms-module.html#parseDDDMMSS\">parseDDDMMSS()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.dms-module.html\">pygeodesy.dms</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.PhiLam3Tuple-class.html\">PhiLam3Tuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples-module.html\">pygeodesy.namedTuples</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.frechet.Frechet-class.html#points_fraction\">points_fraction()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.frechet.Frechet-class.html\">Frechet</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.dms-module.html#parseDMS\">parseDMS()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.dms-module.html\">pygeodesy.dms</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.PhiLam4Tuple-class.html\">PhiLam4Tuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples-module.html\">pygeodesy.namedTuples</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.errors.PointsError-class.html\">PointsError</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.errors-module.html\">pygeodesy.errors</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.dms-module.html#parseDMS2\">parseDMS2()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.dms-module.html\">pygeodesy.dms</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#philamheight\">philamheight</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.cartesianBase.CartesianBase-class.html\">CartesianBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.iters.PointsIter-class.html\">PointsIter</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.iters-module.html\">pygeodesy.iters</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.errors.ParseError-class.html\">ParseError</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.errors-module.html\">pygeodesy.errors</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ecef.Ecef9Tuple-class.html#philamheight\">philamheight</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ecef.Ecef9Tuple-class.html\">Ecef9Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#PointsIter\">PointsIter()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">LatLonBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.etm.Etm-class.html#parseETM\">parseETM()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.etm.Etm-class.html\">Etm</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#philamheight\">philamheight</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">LatLonBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fmath-module.html#polar2\">polar2()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fmath-module.html\">pygeodesy.fmath</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.etm-module.html#parseETM5\">parseETM5()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.etm-module.html\">pygeodesy.etm</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.lcc.Lcc-class.html#philamheight\">philamheight</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.lcc.Lcc-class.html\">Lcc</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipses.Ellipse-class.html#polar2d\">polar2d()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipses.Ellipse-class.html\">Ellipse</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.mgrs-module.html#parseMGRS\">parseMGRS()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.mgrs-module.html\">pygeodesy.mgrs</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.Local9Tuple-class.html#philamheight\">philamheight</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.Local9Tuple-class.html\">Local9Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fmath-module.html#polar2d\">polar2d()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fmath-module.html\">pygeodesy.fmath</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.osgr-module.html#parseOSGR\">parseOSGR()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.osgr-module.html\">pygeodesy.osgr</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#philamheight\">philamheight</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.nvectorBase.NvectorBase-class.html\">NvectorBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#polarimeter\">polarimeter</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.dms-module.html#parseRad\">parseRad()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.dms-module.html\">pygeodesy.dms</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#philamheightdatum\">philamheightdatum</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.cartesianBase.CartesianBase-class.html\">CartesianBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ups.Ups-class.html#pole\">pole</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ups.Ups-class.html\">Ups</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ups.Ups-class.html#parseUPS\">parseUPS()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ups.Ups-class.html\">Ups</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ecef.Ecef9Tuple-class.html#philamheightdatum\">philamheightdatum</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ecef.Ecef9Tuple-class.html\">Ecef9Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utm.Utm-class.html#pole\">pole</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utm.Utm-class.html\">Utm</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ups-module.html#parseUPS5\">parseUPS5()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ups-module.html\">pygeodesy.ups</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.lcc.Lcc-class.html#philamheightdatum\">philamheightdatum</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.lcc.Lcc-class.html\">Lcc</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.functions-module.html#polygon\">polygon()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.functions-module.html\" onclick=\"show_private();\">pygeodesy.deprecated.functions</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.functions-module.html#parseUTM\">parseUTM()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.functions-module.html\" onclick=\"show_private();\">pygeodesy.deprecated.functions</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#philamheightdatum\">philamheightdatum</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.nvectorBase.NvectorBase-class.html\">NvectorBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx.gxarea.PolygonArea-class.html\">PolygonArea</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx.gxarea-module.html\">pygeodesy.geodesicx.gxarea</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utm.Utm-class.html#parseUTM\">parseUTM()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utm.Utm-class.html\">Utm</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ecef.Ecef9Tuple-class.html#philamVermeille\">philamVermeille</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ecef.Ecef9Tuple-class.html\">Ecef9Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#polyline\">polyline</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html\">GeodesicAreaExact</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utm-module.html#parseUTM5\">parseUTM5()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utm-module.html\">pygeodesy.utm</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.triaxial3.PhiLamZet5Tuple-class.html\">PhiLamZet5Tuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.triaxial3-module.html\" onclick=\"show_private();\">pygeodesy.triaxials.triaxial3</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.named._NamedEnum-class.html#popitem\">popitem()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.named._NamedEnum-class.html\">_NamedEnum</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utmups-module.html#parseUTMUPS5\">parseUTMUPS5()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utmups-module.html\">pygeodesy.utmups</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy-module.html#PI\">PI</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geod3solve.GeodesicLine3Solve-class.html#Position\">Position()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geod3solve.GeodesicLine3Solve-class.html\">GeodesicLine3Solve</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.webmercator.Wm-class.html#parseWM\">parseWM()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.webmercator.Wm-class.html\">Wm</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.constants-module.html#PI\">PI</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.constants-module.html\">pygeodesy.constants</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#Position\">Position()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html\">_GeodesicLineExact</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.webmercator-module.html#parseWM\">parseWM()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.webmercator-module.html\">pygeodesy.webmercator</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy-module.html#PI2\">PI2</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodsolve.GeodesicLineSolve-class.html#Position\">Position()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodsolve.GeodesicLineSolve-class.html\">GeodesicLineSolve</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums.Fsum-class.html#partials\">partials</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums.Fsum-class.html\">Fsum</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.constants-module.html#PI2\">PI2</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.constants-module.html\">pygeodesy.constants</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#Position\">Position()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html\">RhumbLineBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipses.Ellipse-class.html#perimeter2k\">perimeter2k</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipses.Ellipse-class.html\">Ellipse</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy-module.html#PI3\">PI3</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb.solve.RhumbLineSolve-class.html#Position\">Position()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb.solve.RhumbLineSolve-class.html\">RhumbLineSolve</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipses.Ellipse-class.html#perimeter2k_\">perimeter2k_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipses.Ellipse-class.html\">Ellipse</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.constants-module.html#PI3\">PI3</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.constants-module.html\">pygeodesy.constants</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums.Fsum-class.html#pow\">pow()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums.Fsum-class.html\">Fsum</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipses.Ellipse-class.html#perimeter2R\">perimeter2R</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipses.Ellipse-class.html\">Ellipse</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy-module.html#PI3_2\">PI3_2</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#pow\">pow()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">Vector3dBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipses.Ellipse-class.html#perimeter2RC\">perimeter2RC</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipses.Ellipse-class.html\">Ellipse</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.constants-module.html#PI3_2\">PI3_2</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.constants-module.html\">pygeodesy.constants</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#prec\">prec</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.solveBase._SolveCapsBase-class.html\">_SolveCapsBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#perimeter4ab\">perimeter4ab</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html\">_UnOrderedTriaxialBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy-module.html#PI4\">PI4</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.gars.Garef-class.html#precision\">precision</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.gars.Garef-class.html\">Garef</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#perimeter4ac\">perimeter4ac</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html\">_UnOrderedTriaxialBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.constants-module.html#PI4\">PI4</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.constants-module.html\">pygeodesy.constants</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geohash.Geohash-class.html#precision\">precision</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geohash.Geohash-class.html\">Geohash</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipses.Ellipse-class.html#perimeter4Arc3\">perimeter4Arc3</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipses.Ellipse-class.html\">Ellipse</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy-module.html#PI_2\">PI_2</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geohash.Geohashed-class.html#precision\">precision</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geohash.Geohashed-class.html\">Geohashed</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#perimeter4bc\">perimeter4bc</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html\">_UnOrderedTriaxialBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.constants-module.html#PI_2\">PI_2</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.constants-module.html\">pygeodesy.constants</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.wgrs.Georef-class.html#precision\">precision</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.wgrs.Georef-class.html\">Georef</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipses.Ellipse-class.html#perimeterAGM\">perimeterAGM</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipses.Ellipse-class.html\">Ellipse</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy-module.html#PI_3\">PI_3</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.dms-module.html#precision\">precision()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.dms-module.html\">pygeodesy.dms</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipses.Ellipse-class.html#perimeterCR\">perimeterCR</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipses.Ellipse-class.html\">Ellipse</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.constants-module.html#PI_3\">PI_3</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.constants-module.html\">pygeodesy.constants</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.gars-module.html#precision\">precision()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.gars-module.html\">pygeodesy.gars</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipses.Ellipse-class.html#perimeterGK\">perimeterGK</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipses.Ellipse-class.html\">Ellipse</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy-module.html#PI_4\">PI_4</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geohash-module.html#precision\">precision()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geohash-module.html\">pygeodesy.geohash</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipses.Ellipse-class.html#perimeterHGK\">perimeterHGK</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipses.Ellipse-class.html\">Ellipse</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.constants-module.html#PI_4\">PI_4</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.constants-module.html\">pygeodesy.constants</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.wgrs-module.html#precision\">precision()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.wgrs-module.html\">pygeodesy.wgrs</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.functions-module.html#perimeterof\">perimeterof()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.functions-module.html\" onclick=\"show_private();\">pygeodesy.deprecated.functions</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy-module.html#PI_6\">PI_6</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.units.Precision_-class.html\">Precision_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.units-module.html\">pygeodesy.units</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalExact-module.html#perimeterOf\">perimeterOf()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalExact-module.html\">pygeodesy.ellipsoidalExact</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.constants-module.html#PI_6\">PI_6</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.constants-module.html\">pygeodesy.constants</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.internals-module.html#print_\">print_()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.internals-module.html\">pygeodesy.internals</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalGeodSolve-module.html#perimeterOf\">perimeterOf()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalGeodSolve-module.html\">pygeodesy.ellipsoidalGeodSolve</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#pierlot\">pierlot()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.cartesianBase.CartesianBase-class.html\">CartesianBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.internals-module.html#printf\">printf()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.internals-module.html\">pygeodesy.internals</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalKarney-module.html#perimeterOf\">perimeterOf()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalKarney-module.html\">pygeodesy.ellipsoidalKarney</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.resections-module.html#pierlot\">pierlot()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.resections-module.html\">pygeodesy.resections</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.props.Property-class.html\">Property</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.props-module.html\">pygeodesy.props</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalVincenty-module.html#perimeterOf\">perimeterOf()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalVincenty-module.html\">pygeodesy.ellipsoidalVincenty</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#pierlotx\">pierlotx()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.cartesianBase.CartesianBase-class.html\">CartesianBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.props-module.html#property_doc_\">property_doc_()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.props-module.html\">pygeodesy.props</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.points-module.html#perimeterOf\">perimeterOf()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.points-module.html\">pygeodesy.points</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.resections-module.html#pierlotx\">pierlotx()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.resections-module.html\">pygeodesy.resections</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.props.Property_RO-class.html\">Property_RO</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.props-module.html\">pygeodesy.props</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.sphericalNvector-module.html#perimeterOf\">perimeterOf()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.sphericalNvector-module.html\">pygeodesy.sphericalNvector</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.bases.LLK-class.html#PLANETOCENTRIC\">PLANETOCENTRIC</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.bases.LLK-class.html\">LLK</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.props.property_RO-class.html\">property_RO</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.props-module.html\">pygeodesy.props</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.sphericalTrigonometry-module.html#perimeterOf\">perimeterOf()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.sphericalTrigonometry-module.html\">pygeodesy.sphericalTrigonometry</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.bases.LLK-class.html#PLANETODETIC\">PLANETODETIC</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.bases.LLK-class.html\">LLK</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.props.property_ROnce-class.html\">property_ROnce</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.props-module.html\">pygeodesy.props</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geoids._GeoidBase-class.html#pgm\">pgm</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geoids._GeoidBase-class.html\">_GeoidBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#plumbTo\">plumbTo()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html\">LatLonEllipsoidalBaseDI</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.props.property_ROver-class.html\">property_ROver</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.props-module.html\">pygeodesy.props</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geoids.PGMError-class.html\">PGMError</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geoids-module.html\">pygeodesy.geoids</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geod3solve.GeodesicLine3Solve-class.html#PlumbTo\">PlumbTo()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geod3solve.GeodesicLine3Solve-class.html\">GeodesicLine3Solve</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.props-module.html\">props</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ecef.Ecef9Tuple-class.html#phi\">phi</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ecef.Ecef9Tuple-class.html\">Ecef9Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#PlumbTo\">PlumbTo()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html\">_GeodesicLineExact</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy-module.html\">pygeodesy</a></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#phi\">phi</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">LatLonBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodsolve.GeodesicLineSolve-class.html#PlumbTo\">PlumbTo()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodsolve.GeodesicLineSolve-class.html\">GeodesicLineSolve</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy-module.html#pygeodesy_abspath\">pygeodesy_abspath</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n</tr>\n</table>\n</td></tr>\n</table>\n<br /><br /><!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th bgcolor=\"#70b0f0\" class=\"navbar-select\"\n          >&nbsp;&nbsp;&nbsp;Indices&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:16 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/identifier-index-Q.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>Identifier Index</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th bgcolor=\"#70b0f0\" class=\"navbar-select\"\n          >&nbsp;&nbsp;&nbsp;Indices&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">&nbsp;</td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"identifier-index-Q.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<center><b>[\n <a href=\"identifier-index.html\">Identifiers</a>\n| <a href=\"term-index.html\">Term Definitions</a>\n]</b></center><br />\n<table border=\"0\" width=\"100%\">\n<tr valign=\"bottom\"><td>\n<h1 class=\"epydoc\">Identifier Index</h1>\n</td><td>\n[\n <a href=\"identifier-index-A.html\">A</a>\n <a href=\"identifier-index-B.html\">B</a>\n <a href=\"identifier-index-C.html\">C</a>\n <a href=\"identifier-index-D.html\">D</a>\n <a href=\"identifier-index-E.html\">E</a>\n <a href=\"identifier-index-F.html\">F</a>\n <a href=\"identifier-index-G.html\">G</a>\n <a href=\"identifier-index-H.html\">H</a>\n <a href=\"identifier-index-I.html\">I</a>\n <a href=\"identifier-index-J.html\">J</a>\n <a href=\"identifier-index-K.html\">K</a>\n <a href=\"identifier-index-L.html\">L</a>\n <a href=\"identifier-index-M.html\">M</a>\n <a href=\"identifier-index-N.html\">N</a>\n <a href=\"identifier-index-O.html\">O</a>\n <a href=\"identifier-index-P.html\">P</a>\n <a href=\"identifier-index-Q.html\">Q</a>\n <a href=\"identifier-index-R.html\">R</a>\n <a href=\"identifier-index-S.html\">S</a>\n <a href=\"identifier-index-T.html\">T</a>\n <a href=\"identifier-index-U.html\">U</a>\n <a href=\"identifier-index-V.html\">V</a>\n <a href=\"identifier-index-W.html\">W</a>\n <a href=\"identifier-index-X.html\">X</a>\n <a href=\"identifier-index-Y.html\">Y</a>\n <a href=\"identifier-index-Z.html\">Z</a>\n <a href=\"identifier-index-_.html\">_</a>\n]\n</td></table>\n<table border=\"0\" width=\"100%\">\n<tr valign=\"top\"><td valign=\"top\" width=\"1%\"><h2 class=\"epydoc\"><a name=\"Q\">Q</a></h2></td>\n<td valign=\"top\">\n<table class=\"link-index\" width=\"100%\" border=\"1\">\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.points-module.html#quadOf\">quadOf()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.points-module.html\">pygeodesy.points</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.angles.Ang-class.html#quadrant\">quadrant</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.angles.Ang-class.html\">Ang</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#quarteradius\">quarteradius</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n</tr>\n<tr><td class=\"link-index\">&nbsp;</td><td class=\"link-index\">&nbsp;</td><td class=\"link-index\">&nbsp;</td></tr>\n</table>\n</td></tr>\n</table>\n<br /><br /><!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th bgcolor=\"#70b0f0\" class=\"navbar-select\"\n          >&nbsp;&nbsp;&nbsp;Indices&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:16 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/identifier-index-R.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>Identifier Index</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th bgcolor=\"#70b0f0\" class=\"navbar-select\"\n          >&nbsp;&nbsp;&nbsp;Indices&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">&nbsp;</td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"identifier-index-R.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<center><b>[\n <a href=\"identifier-index.html\">Identifiers</a>\n| <a href=\"term-index.html\">Term Definitions</a>\n]</b></center><br />\n<table border=\"0\" width=\"100%\">\n<tr valign=\"bottom\"><td>\n<h1 class=\"epydoc\">Identifier Index</h1>\n</td><td>\n[\n <a href=\"identifier-index-A.html\">A</a>\n <a href=\"identifier-index-B.html\">B</a>\n <a href=\"identifier-index-C.html\">C</a>\n <a href=\"identifier-index-D.html\">D</a>\n <a href=\"identifier-index-E.html\">E</a>\n <a href=\"identifier-index-F.html\">F</a>\n <a href=\"identifier-index-G.html\">G</a>\n <a href=\"identifier-index-H.html\">H</a>\n <a href=\"identifier-index-I.html\">I</a>\n <a href=\"identifier-index-J.html\">J</a>\n <a href=\"identifier-index-K.html\">K</a>\n <a href=\"identifier-index-L.html\">L</a>\n <a href=\"identifier-index-M.html\">M</a>\n <a href=\"identifier-index-N.html\">N</a>\n <a href=\"identifier-index-O.html\">O</a>\n <a href=\"identifier-index-P.html\">P</a>\n <a href=\"identifier-index-Q.html\">Q</a>\n <a href=\"identifier-index-R.html\">R</a>\n <a href=\"identifier-index-S.html\">S</a>\n <a href=\"identifier-index-T.html\">T</a>\n <a href=\"identifier-index-U.html\">U</a>\n <a href=\"identifier-index-V.html\">V</a>\n <a href=\"identifier-index-W.html\">W</a>\n <a href=\"identifier-index-X.html\">X</a>\n <a href=\"identifier-index-Y.html\">Y</a>\n <a href=\"identifier-index-Z.html\">Z</a>\n <a href=\"identifier-index-_.html\">_</a>\n]\n</td></table>\n<table border=\"0\" width=\"100%\">\n<tr valign=\"top\"><td valign=\"top\" width=\"1%\"><h2 class=\"epydoc\"><a name=\"R\">R</a></h2></td>\n<td valign=\"top\">\n<table class=\"link-index\" width=\"100%\" border=\"1\">\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesici._IntersectBase-class.html#R\">R</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesici._IntersectBase-class.html\">_IntersectBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxLat.AuxLat-class.html#Rectifying\">Rectifying()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats.auxLat.AuxLat-class.html\">AuxLat</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.triaxial5.Triaxial-class.html#reverseCartesian\">reverseCartesian()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.triaxial5.Triaxial-class.html\">Triaxial</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb.solve-module.html#r\">r</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb.solve-module.html\">pygeodesy.rhumb.solve</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxLat.AuxLat-class.html#RectifyingRadius\">RectifyingRadius()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats.auxLat.AuxLat-class.html\">AuxLat</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html#reverseLatLon\">reverseLatLon()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html\">Triaxial3</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipses.Ellipse-class.html#R1\">R1</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipses.Ellipse-class.html\">Ellipse</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.karney.Caps-class.html#REDUCEDLENGTH\">REDUCEDLENGTH</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.karney.Caps-class.html\">Caps</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.triaxial5.Triaxial-class.html#reverseLatLon\">reverseLatLon()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.triaxial5.Triaxial-class.html\">Triaxial</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#R1\">R1</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.karney._CapsBase-class.html#REDUCEDLENGTH\">REDUCEDLENGTH</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.karney._CapsBase-class.html\">_CapsBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.conformal3.Conformal3-class.html#reverseOther\">reverseOther()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.conformal3.Conformal3-class.html\">Conformal3</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipses.Ellipse-class.html#R2\">R2</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipses.Ellipse-class.html\">Ellipse</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.trf.RefFrame-class.html\">RefFrame</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.trf-module.html\">pygeodesy.trf</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html#reversePhiLam\">reversePhiLam()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html\">Triaxial3</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#R2\">R2</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.classes-module.html#RefFrameError\">RefFrameError()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.classes-module.html\" onclick=\"show_private();\">pygeodesy.deprecated.classes</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html#reversePhiLamZet\">reversePhiLamZet()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html\">Triaxial3</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#R2\">R2</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html\">_UnOrderedTriaxialBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy-module.html#RefFrames\">RefFrames</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.conformal3.Conformal3-class.html#reverseSphere\">reverseSphere()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.conformal3.Conformal3-class.html\">Conformal3</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.consterns.Elliperim-class.html#R2\">R2()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.consterns.Elliperim-class.html\">Elliperim</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.trf-module.html#RefFrames\">RefFrames</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.trf-module.html\">pygeodesy.trf</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.points.LatLon2psxy-class.html#rfind\">rfind()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.points.LatLon2psxy-class.html\">LatLon2psxy</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#R2x\">R2x</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxDST.AuxDST-class.html#refine\">refine()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats.auxDST.AuxDST-class.html\">AuxDST</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.points._Array2LatLon-class.html#rfind\">rfind()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.points._Array2LatLon-class.html\">_Array2LatLon</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#R3\">R3</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.angles.Ang-class.html#reflect\">reflect()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.angles.Ang-class.html\">Ang</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#Rgeocentric\">Rgeocentric()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#R3\">R3</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html\">_UnOrderedTriaxialBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.trf.TRFXform-class.html#refName1\">refName1</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.trf.TRFXform-class.html\">TRFXform</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#Rgeometric\">Rgeometric</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy-module.html#R_FM\">R_FM</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.trf.TRFXform-class.html#refName2\">refName2</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.trf.TRFXform-class.html\">TRFXform</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb-module.html\">rhumb</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.constants-module.html#R_FM\">R_FM</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.constants-module.html\">pygeodesy.constants</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#reframe\">reframe</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html\">CartesianEllipsoidalBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#rhumb\">rhumb</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html\">RhumbLineBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated-module.html#R_FM\">R_FM</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated-module.html\">pygeodesy.deprecated</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#reframe\">reframe</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html\">LatLonEllipsoidalBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb.ekx.Rhumb-class.html\">Rhumb</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb.ekx-module.html\" onclick=\"show_private();\">pygeodesy.rhumb.ekx</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.datum-module.html#R_FM\">R_FM</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.datum-module.html\">pygeodesy.deprecated.datum</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.trf.TRFXform-class.html#reframe1\">reframe1</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.trf.TRFXform-class.html\">TRFXform</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.classes.Rhumb7Tuple-class.html\">Rhumb7Tuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.classes-module.html\" onclick=\"show_private();\">pygeodesy.deprecated.classes</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy-module.html#R_GM\">R_GM</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.trf.TRFXform-class.html#reframe2\">reframe2</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.trf.TRFXform-class.html\">TRFXform</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.karney.Rhumb8Tuple-class.html\">Rhumb8Tuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.karney-module.html\">pygeodesy.karney</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.constants-module.html#R_GM\">R_GM</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.constants-module.html\">pygeodesy.constants</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.named._NamedEnum-class.html#register\">register()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.named._NamedEnum-class.html\">_NamedEnum</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#rhumb_\">rhumb_()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy-module.html#R_KM\">R_KM</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.constants-module.html#remainder\">remainder()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.constants-module.html\">pygeodesy.constants</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb.solve-module.html#rhumb_intercept\">rhumb_intercept()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb.solve-module.html\" onclick=\"show_private();\">pygeodesy.rhumb.solve</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.constants-module.html#R_KM\">R_KM</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.constants-module.html\">pygeodesy.constants</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.named._Named-class.html#rename\">rename()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.named._Named-class.html\">_Named</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.rhumbaux-module.html\">rhumbaux</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated-module.html\">pygeodesy.deprecated</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated-module.html#R_KM\">R_KM</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated-module.html\">pygeodesy.deprecated</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.trf.TRFXform-class.html#rename\">rename()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.trf.TRFXform-class.html\">TRFXform</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#rhumbaux\">rhumbaux</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.datum-module.html#R_KM\">R_KM</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.datum-module.html\">pygeodesy.deprecated.datum</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.trf.TransformXform-class.html#rename\">rename()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.trf.TransformXform-class.html\">TransformXform</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb.aux_.RhumbAux-class.html\">RhumbAux</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb.aux_-module.html\" onclick=\"show_private();\">pygeodesy.rhumb.aux_</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy-module.html#R_M\">R_M</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.named._Named-class.html\">_Named</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#rhumbAzimuthTo\">rhumbAzimuthTo()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">LatLonBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.constants-module.html#R_M\">R_M</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.constants-module.html\">pygeodesy.constants</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.streprs-module.html#reprs\">reprs()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.streprs-module.html\">pygeodesy.streprs</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html#rhumbAzimuthTo\">rhumbAzimuthTo()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html\">LatLonSphericalBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated-module.html#R_M\">R_M</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated-module.html\">pygeodesy.deprecated</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.albers._AlbersBase-class.html#rescale0\">rescale0()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.albers._AlbersBase-class.html\">_AlbersBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.rhumbBase-module.html\">rhumbBase</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated-module.html\">pygeodesy.deprecated</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.datum-module.html#R_M\">R_M</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.datum-module.html\">pygeodesy.deprecated.datum</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ups.Ups-class.html#rescale0\">rescale0()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ups.Ups-class.html\">Ups</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb.bases.RhumbBase-class.html\">RhumbBase</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb.bases-module.html\" onclick=\"show_private();\">pygeodesy.rhumb.bases</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy-module.html#R_MA\">R_MA</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.resections.ResectionError-class.html\">ResectionError</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.resections-module.html\">pygeodesy.resections</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html#rhumbBearingTo\">rhumbBearingTo()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html\">LatLonSphericalBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.constants-module.html#R_MA\">R_MA</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.constants-module.html\">pygeodesy.constants</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.resections-module.html\">resections</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#rhumbDestination\">rhumbDestination()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">LatLonBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated-module.html#R_MA\">R_MA</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated-module.html\">pygeodesy.deprecated</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxDST.AuxDST-class.html#reset\">reset()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats.auxDST.AuxDST-class.html\">AuxDST</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html#rhumbDestination\">rhumbDestination()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html\">LatLonSphericalBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.datum-module.html#R_MA\">R_MA</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.datum-module.html\">pygeodesy.deprecated.datum</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#reset\">reset()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html\">_AzimuthalBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#rhumbDistanceTo\">rhumbDistanceTo()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">LatLonBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy-module.html#R_MB\">R_MB</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.css.CassiniSoldner-class.html#reset\">reset()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.css.CassiniSoldner-class.html\">CassiniSoldner</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html#rhumbDistanceTo\">rhumbDistanceTo()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html\">LatLonSphericalBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.constants-module.html#R_MB\">R_MB</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.constants-module.html\">pygeodesy.constants</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.elliptic.Elliptic-class.html#reset\">reset()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.elliptic.Elliptic-class.html\">Elliptic</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#rhumbekx\">rhumbekx</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated-module.html#R_MB\">R_MB</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated-module.html\">pygeodesy.deprecated</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.etm.ExactTransverseMercator-class.html#reset\">reset()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.etm.ExactTransverseMercator-class.html\">ExactTransverseMercator</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.errors.RhumbError-class.html\">RhumbError</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.errors-module.html\">pygeodesy.errors</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.datum-module.html#R_MB\">R_MB</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.datum-module.html\">pygeodesy.deprecated.datum</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#Reset\">Reset()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html\">GeodesicAreaExact</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#rhumbIntersecant2\">rhumbIntersecant2()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">LatLonBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy-module.html#R_NM\">R_NM</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ktm.KTransverseMercator-class.html#reset\">reset()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ktm.KTransverseMercator-class.html\">KTransverseMercator</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html#rhumbIntersecant2\">rhumbIntersecant2()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html\">LatLonSphericalBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.constants-module.html#R_NM\">R_NM</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.constants-module.html\">pygeodesy.constants</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltp.LocalCartesian-class.html#reset\">reset()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltp.LocalCartesian-class.html\">LocalCartesian</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb.ekx.RhumbLine-class.html\">RhumbLine</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb.ekx-module.html\" onclick=\"show_private();\">pygeodesy.rhumb.ekx</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated-module.html#R_NM\">R_NM</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated-module.html\">pygeodesy.deprecated</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums.Fsum-class.html#residual\">residual</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums.Fsum-class.html\">Fsum</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#rhumbLine\">rhumbLine()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">LatLonBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.datum-module.html#R_NM\">R_NM</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.datum-module.html\">pygeodesy.deprecated.datum</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums.Fsum-class.html#RESIDUAL\">RESIDUAL()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums.Fsum-class.html\">Fsum</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb.aux_.RhumbLineAux-class.html\">RhumbLineAux</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb.aux_-module.html\" onclick=\"show_private();\">pygeodesy.rhumb.aux_</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy-module.html#R_QM\">R_QM</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums.ResidualError-class.html\">ResidualError</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums-module.html\">pygeodesy.fsums</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html\">RhumbLineBase</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb.bases-module.html\" onclick=\"show_private();\">pygeodesy.rhumb.bases</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.constants-module.html#R_QM\">R_QM</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.constants-module.html\">pygeodesy.constants</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.mgrs.Mgrs-class.html#resolution\">resolution</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.mgrs.Mgrs-class.html\">Mgrs</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb.solve.RhumbLineSolve-class.html\">RhumbLineSolve</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb.solve-module.html\" onclick=\"show_private();\">pygeodesy.rhumb.solve</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy-module.html#R_SM\">R_SM</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.osgr.Osgr-class.html#resolution\">resolution</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.osgr.Osgr-class.html\">Osgr</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#rhumbMidpointTo\">rhumbMidpointTo()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">LatLonBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.constants-module.html#R_SM\">R_SM</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.constants-module.html\">pygeodesy.constants</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.gars-module.html#resolution\">resolution()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.gars-module.html\">pygeodesy.gars</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html#rhumbMidpointTo\">rhumbMidpointTo()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html\">LatLonSphericalBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated-module.html#R_SM\">R_SM</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated-module.html\">pygeodesy.deprecated</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.wgrs-module.html#resolution\">resolution()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.wgrs-module.html\">pygeodesy.wgrs</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.classes.RhumbOrder2Tuple-class.html\">RhumbOrder2Tuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.classes-module.html\" onclick=\"show_private();\">pygeodesy.deprecated.classes</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.datum-module.html#R_SM\">R_SM</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.datum-module.html\">pygeodesy.deprecated.datum</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geohash.Geohash-class.html#resolution2\">resolution2</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geohash.Geohash-class.html\">Geohash</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.rhumbsolve-module.html\">rhumbsolve</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated-module.html\">pygeodesy.deprecated</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy-module.html#R_VM\">R_VM</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geohash-module.html#resolution2\">resolution2()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geohash-module.html\">pygeodesy.geohash</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#rhumbsolve\">rhumbsolve</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.constants-module.html#R_VM\">R_VM</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.constants-module.html\">pygeodesy.constants</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geohash.Resolutions2Tuple-class.html\">Resolutions2Tuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geohash-module.html\">pygeodesy.geohash</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb.solve.RhumbSolve-class.html\">RhumbSolve</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb.solve-module.html\" onclick=\"show_private();\">pygeodesy.rhumb.solve</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated-module.html#R_VM\">R_VM</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated-module.html\">pygeodesy.deprecated</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.named._NamedTuple-class.html#reUnit\">reUnit()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.named._NamedTuple-class.html\">_NamedTuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb.solve._RhumbSolveBase-class.html#RhumbSolve\">RhumbSolve</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb.solve._RhumbSolveBase-class.html\">_RhumbSolveBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.datum-module.html#R_VM\">R_VM</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.datum-module.html\">pygeodesy.deprecated.datum</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.albers._AlbersBase-class.html#reverse\">reverse()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.albers._AlbersBase-class.html\">_AlbersBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb.solve.RhumbSolve7Tuple-class.html\">RhumbSolve7Tuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb.solve-module.html\" onclick=\"show_private();\">pygeodesy.rhumb.solve</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.angles-module.html#Rad\">Rad()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.angles-module.html\">pygeodesy.angles</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.azimuthal.Equidistant-class.html#reverse\">reverse()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.azimuthal.Equidistant-class.html\">Equidistant</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.rhumbx-module.html\">rhumbx</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated-module.html\">pygeodesy.deprecated</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.angles.Ang-class.html#radians\">radians</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.angles.Ang-class.html\">Ang</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.azimuthal.EquidistantExact-class.html#reverse\">reverse()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.azimuthal.EquidistantExact-class.html\">EquidistantExact</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#rhumbx\">rhumbx</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.units.Radians-class.html\">Radians</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.units-module.html\">pygeodesy.units</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.azimuthal.EquidistantGeodSolve-class.html#reverse\">reverse()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.azimuthal.EquidistantGeodSolve-class.html\">EquidistantGeodSolve</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.css.Css-class.html#rk\">rk</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.css.Css-class.html\">Css</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utily-module.html#radians\">radians()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utily-module.html\">pygeodesy.utily</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.azimuthal.Gnomonic-class.html#reverse\">reverse()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.azimuthal.Gnomonic-class.html\">Gnomonic</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb.bases-module.html#Rl\">Rl</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb.bases-module.html\">pygeodesy.rhumb.bases</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.angles.Ang-class.html#radians0\">radians0</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.angles.Ang-class.html\">Ang</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.azimuthal.GnomonicExact-class.html#reverse\">reverse()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.azimuthal.GnomonicExact-class.html\">GnomonicExact</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#Rlat\">Rlat()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.units.Radians2-class.html\">Radians2</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.units-module.html\">pygeodesy.units</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.azimuthal.GnomonicKarney-class.html#reverse\">reverse()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.azimuthal.GnomonicKarney-class.html\">GnomonicKarney</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb.solve-module.html#rlS\">rlS</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb.solve-module.html\">pygeodesy.rhumb.solve</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#radians2m\">radians2m()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.azimuthal.LambertEqualArea-class.html#reverse\">reverse()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.azimuthal.LambertEqualArea-class.html\">LambertEqualArea</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipses.Ellipse-class.html#Roc\">Roc()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipses.Ellipse-class.html\">Ellipse</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utily-module.html#radians2m\">radians2m()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utily-module.html\">pygeodesy.utily</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.azimuthal.Orthographic-class.html#reverse\">reverse()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.azimuthal.Orthographic-class.html\">Orthographic</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#roc1_\">roc1_()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.units.Radians_-class.html\">Radians_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.units-module.html\">pygeodesy.units</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.azimuthal.Stereographic-class.html#reverse\">reverse()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.azimuthal.Stereographic-class.html\">Stereographic</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#Roc2\">Roc2()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.cartesianBase.CartesianBase-class.html\">CartesianBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utily-module.html#radiansPI\">radiansPI()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utily-module.html\">pygeodesy.utily</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#reverse\">reverse()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html\">_AzimuthalBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#roc2\">roc2()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utily-module.html#radiansPI2\">radiansPI2()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utily-module.html\">pygeodesy.utily</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.azimuthal._EquidistantBase-class.html#reverse\">reverse()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.azimuthal._EquidistantBase-class.html\">_EquidistantBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#roc2_\">roc2_()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utily-module.html#radiansPI_2\">radiansPI_2()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utily-module.html\">pygeodesy.utily</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.azimuthal._EquidistantBase-class.html#reverse\">reverse()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.azimuthal._EquidistantBase-class.html\">_EquidistantBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipses.Ellipse-class.html#Roc_\">Roc_()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipses.Ellipse-class.html\">Ellipse</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.formy-module.html#radical2\">radical2()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.formy-module.html\">pygeodesy.formy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.azimuthal._GnomonicBase-class.html#reverse\">reverse()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.azimuthal._GnomonicBase-class.html\">_GnomonicBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#rocAzimuth\">rocAzimuth()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.formy.Radical2Tuple-class.html\">Radical2Tuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.formy-module.html\">pygeodesy.formy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.azimuthal._GnomonicBase-class.html#reverse\">reverse()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.azimuthal._GnomonicBase-class.html\">_GnomonicBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#rocBearing\">rocBearing()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#radii11\">radii11()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">LatLonBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.css.CassiniSoldner-class.html#reverse\">reverse()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.css.CassiniSoldner-class.html\">CassiniSoldner</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#rocEquatorial2\">rocEquatorial2</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector2d-module.html#radii11\">radii11()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector2d-module.html\">pygeodesy.vector2d</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ecef.EcefFarrell21-class.html#reverse\">reverse()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ecef.EcefFarrell21-class.html\">EcefFarrell21</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#rocGauss\">rocGauss()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector3d.Vector3d-class.html#radii11\">radii11()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector3d.Vector3d-class.html\">Vector3d</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ecef.EcefFarrell22-class.html#reverse\">reverse()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ecef.EcefFarrell22-class.html\">EcefFarrell22</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#rocMean\">rocMean()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector2d.Radii11Tuple-class.html\">Radii11Tuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector2d-module.html\">pygeodesy.vector2d</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ecef.EcefKarney-class.html#reverse\">reverse()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ecef.EcefKarney-class.html\">EcefKarney</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#rocMeridional\">rocMeridional()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#radius\">radius</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html\">_AzimuthalBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ecef.EcefSudano-class.html#reverse\">reverse()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ecef.EcefSudano-class.html\">EcefSudano</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#rocPrimeVertical\">rocPrimeVertical()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.heights._HeightIDW-class.html#radius\">radius</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.heights._HeightIDW-class.html\">_HeightIDW</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ecef.EcefUPC-class.html#reverse\">reverse()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ecef.EcefUPC-class.html\">EcefUPC</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltp.Attitude-class.html#roll\">roll</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltp.Attitude-class.html\">Attitude</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.triaxial5.ConformalSphere-class.html#radius\">radius</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.triaxial5.ConformalSphere-class.html\">ConformalSphere</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ecef.EcefVeness-class.html#reverse\">reverse()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ecef.EcefVeness-class.html\">EcefVeness</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums.Fsum-class.html#root\">root()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums.Fsum-class.html\">Fsum</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.unitsBase.Radius-class.html\">Radius</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.unitsBase-module.html\">pygeodesy.unitsBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ecef.EcefYou-class.html#reverse\">reverse()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ecef.EcefYou-class.html\">EcefYou</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ecef.EcefMatrix-class.html#rotate\">rotate()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ecef.EcefMatrix-class.html\">EcefMatrix</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.webmercator.Wm-class.html#radius\">radius</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.webmercator.Wm-class.html\">Wm</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ecef._EcefBase-class.html#reverse\">reverse()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ecef._EcefBase-class.html\">_EcefBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltp.Attitude-class.html#rotate\">rotate()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltp.Attitude-class.html\">Attitude</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.wgrs.Georef-class.html#radius\">radius</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.wgrs.Georef-class.html\">Georef</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.etm.ExactTransverseMercator-class.html#reverse\">reverse()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.etm.ExactTransverseMercator-class.html\">ExactTransverseMercator</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#rotate\">rotate()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">Vector3dBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.units.Radius_-class.html\">Radius_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.units-module.html\">pygeodesy.units</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ktm.KTransverseMercator-class.html#reverse\">reverse()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ktm.KTransverseMercator-class.html\">KTransverseMercator</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#rotateAround\">rotateAround()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">Vector3dBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.cartesianBase.RadiusThetaPhi3Tuple-class.html\">RadiusThetaPhi3Tuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.cartesianBase-module.html\">pygeodesy.cartesianBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltp.ChLV-class.html#reverse\">reverse()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltp.ChLV-class.html\">ChLV</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.angles.Ang-class.html#round\">round()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.angles.Ang-class.html\">Ang</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.booleans._CompositeBase-class.html#raiser\">raiser</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.booleans._CompositeBase-class.html\">_CompositeBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltp.ChLVa-class.html#reverse\">reverse()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltp.ChLVa-class.html\">ChLVa</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ecef.EcefMatrix-class.html#row\">row()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ecef.EcefMatrix-class.html\">EcefMatrix</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.etm.ExactTransverseMercator-class.html#raiser\">raiser</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.etm.ExactTransverseMercator-class.html\">ExactTransverseMercator</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltp.ChLVe-class.html#reverse\">reverse()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltp.ChLVe-class.html\">ChLVe</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#Rquadratic\">Rquadratic</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ktm.KTransverseMercator-class.html#raiser\">raiser</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ktm.KTransverseMercator-class.html\">KTransverseMercator</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltp.LocalCartesian-class.html#reverse\">reverse()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltp.LocalCartesian-class.html\">LocalCartesian</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#Rr\">Rr</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html#random2\">random2()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html\">Triaxial3</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.karney.Caps-class.html#REVERSE2\">REVERSE2</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.karney.Caps-class.html\">Caps</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipses.Ellipse-class.html#Rrectifying\">Rrectifying</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipses.Ellipse-class.html\">Ellipse</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.hausdorff-module.html#randomrangenerator\">randomrangenerator()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.hausdorff-module.html\">pygeodesy.hausdorff</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.solveBase._SolveBase-class.html#reverse2\">reverse2</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.solveBase._SolveBase-class.html\">_SolveBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#Rrectifying\">Rrectifying</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.errors.RangeError-class.html\">RangeError</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.errors-module.html\">pygeodesy.errors</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.css.Css-class.html#reverse4\">reverse4</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.css.Css-class.html\">Css</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#Rs\">Rs</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.errors-module.html#rangerrors\">rangerrors()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.errors-module.html\">pygeodesy.errors</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.css.CassiniSoldner-class.html#reverse4\">reverse4()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.css.CassiniSoldner-class.html\">CassiniSoldner</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb.solve-module.html#rS\">rS</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb.solve-module.html\">pygeodesy.rhumb.solve</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb.bases.RhumbBase-class.html#RAorder\">RAorder</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb.bases.RhumbBase-class.html\">RhumbBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.Reverse4Tuple-class.html\">Reverse4Tuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples-module.html\">pygeodesy.namedTuples</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.cartesianBase-module.html#rtp2xyz\">rtp2xyz()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.cartesianBase-module.html\">pygeodesy.cartesianBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb.ekx.Rhumb-class.html#RAorder\">RAorder</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb.ekx.Rhumb-class.html\">Rhumb</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.triaxial5.Triaxial-class.html#reverseBetaOmega\">reverseBetaOmega()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.triaxial5.Triaxial-class.html\">Triaxial</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.cartesianBase-module.html#rtp2xyz_\">rtp2xyz_()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.cartesianBase-module.html\">pygeodesy.cartesianBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb.ekx.RhumbLine-class.html#RAorder\">RAorder</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb.ekx.RhumbLine-class.html\">RhumbLine</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.conformal3.Conformal3-class.html#reverseBetOmg\">reverseBetOmg()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.conformal3.Conformal3-class.html\">Conformal3</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#Rtriaxial\">Rtriaxial</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.trf.TRFXform-class.html#rates\">rates</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.trf.TRFXform-class.html\">TRFXform</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html#reverseBetOmg\">reverseBetOmg()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html\">Triaxial3</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.datums.Transform-class.html#rx\">rx</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.datums.Transform-class.html\">Transform</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#Rbiaxial\">Rbiaxial</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html#reverseBetOmgAlp\">reverseBetOmgAlp()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html\">Triaxial3</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.datums.Transform-class.html#ry\">ry</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.datums.Transform-class.html\">Transform</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums.Fsum-class.html#real\">real</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums.Fsum-class.html\">Fsum</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html#reverseCartesian\">reverseCartesian()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html\">Triaxial3</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.datums.Transform-class.html#rz\">rz</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.datums.Transform-class.html\">Transform</a>)</span></td>\n</tr>\n</table>\n</td></tr>\n</table>\n<br /><br /><!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th bgcolor=\"#70b0f0\" class=\"navbar-select\"\n          >&nbsp;&nbsp;&nbsp;Indices&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:16 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/identifier-index-S.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>Identifier Index</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th bgcolor=\"#70b0f0\" class=\"navbar-select\"\n          >&nbsp;&nbsp;&nbsp;Indices&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">&nbsp;</td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"identifier-index-S.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<center><b>[\n <a href=\"identifier-index.html\">Identifiers</a>\n| <a href=\"term-index.html\">Term Definitions</a>\n]</b></center><br />\n<table border=\"0\" width=\"100%\">\n<tr valign=\"bottom\"><td>\n<h1 class=\"epydoc\">Identifier Index</h1>\n</td><td>\n[\n <a href=\"identifier-index-A.html\">A</a>\n <a href=\"identifier-index-B.html\">B</a>\n <a href=\"identifier-index-C.html\">C</a>\n <a href=\"identifier-index-D.html\">D</a>\n <a href=\"identifier-index-E.html\">E</a>\n <a href=\"identifier-index-F.html\">F</a>\n <a href=\"identifier-index-G.html\">G</a>\n <a href=\"identifier-index-H.html\">H</a>\n <a href=\"identifier-index-I.html\">I</a>\n <a href=\"identifier-index-J.html\">J</a>\n <a href=\"identifier-index-K.html\">K</a>\n <a href=\"identifier-index-L.html\">L</a>\n <a href=\"identifier-index-M.html\">M</a>\n <a href=\"identifier-index-N.html\">N</a>\n <a href=\"identifier-index-O.html\">O</a>\n <a href=\"identifier-index-P.html\">P</a>\n <a href=\"identifier-index-Q.html\">Q</a>\n <a href=\"identifier-index-R.html\">R</a>\n <a href=\"identifier-index-S.html\">S</a>\n <a href=\"identifier-index-T.html\">T</a>\n <a href=\"identifier-index-U.html\">U</a>\n <a href=\"identifier-index-V.html\">V</a>\n <a href=\"identifier-index-W.html\">W</a>\n <a href=\"identifier-index-X.html\">X</a>\n <a href=\"identifier-index-Y.html\">Y</a>\n <a href=\"identifier-index-Z.html\">Z</a>\n <a href=\"identifier-index-_.html\">_</a>\n]\n</td></table>\n<table border=\"0\" width=\"100%\">\n<tr valign=\"top\"><td valign=\"top\" width=\"1%\"><h2 class=\"epydoc\"><a name=\"S\">S</a></h2></td>\n<td valign=\"top\">\n<table class=\"link-index\" width=\"100%\" border=\"1\">\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.angles.Ang-class.html#s\">s</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.angles.Ang-class.html\">Ang</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.angles.Ang-class.html#shift\">shift()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.angles.Ang-class.html\">Ang</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.sphericalBase-module.html\">sphericalBase</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.datums.Transform-class.html#s\">s</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.datums.Transform-class.html\">Transform</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipses.Ellipse-class.html#sideOf\">sideOf()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipses.Ellipse-class.html\">Ellipse</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#sphericalCartesian\">sphericalCartesian</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.cartesianBase.CartesianBase-class.html\">CartesianBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geohash.Geohash-class.html#S\">S</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geohash.Geohash-class.html\">Geohash</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#sideOf\">sideOf()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html\">_UnOrderedTriaxialBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.sphericalBase.CartesianSphericalBase-class.html#sphericalCartesian\">sphericalCartesian</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.sphericalBase.CartesianSphericalBase-class.html\">CartesianSphericalBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.datums.Transform-class.html#s1\">s1</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.datums.Transform-class.html\">Transform</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.basics-module.html#signBit\">signBit()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.basics-module.html\">pygeodesy.basics</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#sphericalLatLon\">sphericalLatLon</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">LatLonBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#s13\">s13</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html\">_GeodesicLineExact</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.angles.Ang-class.html#signOf\">signOf()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.angles.Ang-class.html\">Ang</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html#sphericalLatLon\">sphericalLatLon</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html\">LatLonSphericalBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodsolve.GeodesicLineSolve-class.html#s13\">s13</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodsolve.GeodesicLineSolve-class.html\">GeodesicLineSolve</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.basics-module.html#signOf\">signOf()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.basics-module.html\">pygeodesy.basics</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#sphericalNvector\">sphericalNvector</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.nvectorBase.NvectorBase-class.html\">NvectorBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy-module.html#S_DEG\">S_DEG</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums.Fsum-class.html#signOf\">signOf()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums.Fsum-class.html\">Fsum</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.sphericalNvector-module.html\">sphericalNvector</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.dms-module.html#S_DEG\">S_DEG</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.dms-module.html\">pygeodesy.dms</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums.Fsum2Tuple-class.html#signOf\">signOf()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\">Fsum2Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.sphericalNvector.Nvector-class.html#sphericalNvector\">sphericalNvector</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.sphericalNvector.Nvector-class.html\">Nvector</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy-module.html#S_DMS\">S_DMS</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.simplify-module.html\">simplify</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.sphericalTrigonometry-module.html\">sphericalTrigonometry</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.dms-module.html#S_DMS\">S_DMS</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.dms-module.html\">pygeodesy.dms</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.simplify-module.html#simplify1\">simplify1()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.simplify-module.html\">pygeodesy.simplify</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.basics-module.html#splice\">splice()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.basics-module.html\">pygeodesy.basics</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy-module.html#S_MIN\">S_MIN</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.functions-module.html#simplify2\">simplify2()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.functions-module.html\" onclick=\"show_private();\">pygeodesy.deprecated.functions</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fmath-module.html#sqrt0\">sqrt0()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fmath-module.html\">pygeodesy.fmath</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.dms-module.html#S_MIN\">S_MIN</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.dms-module.html\">pygeodesy.dms</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.simplify-module.html#simplifyRDP\">simplifyRDP()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.simplify-module.html\">pygeodesy.simplify</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fmath-module.html#sqrt3\">sqrt3()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fmath-module.html\">pygeodesy.fmath</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.dms-module.html#S_NUL\">S_NUL</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.dms-module.html\">pygeodesy.dms</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.functions-module.html#simplifyRDPm\">simplifyRDPm()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.functions-module.html\" onclick=\"show_private();\">pygeodesy.deprecated.functions</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fmath-module.html#sqrt_a\">sqrt_a()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fmath-module.html\">pygeodesy.fmath</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy-module.html#S_RAD\">S_RAD</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.simplify-module.html#simplifyRW\">simplifyRW()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.simplify-module.html\">pygeodesy.simplify</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.karney.Caps-class.html#STANDARD\">STANDARD</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.karney.Caps-class.html\">Caps</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.dms-module.html#S_RAD\">S_RAD</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.dms-module.html\">pygeodesy.dms</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.simplify-module.html#simplifyVW\">simplifyVW()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.simplify-module.html\">pygeodesy.simplify</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.karney._CapsBase-class.html#STANDARD\">STANDARD</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.karney._CapsBase-class.html\">_CapsBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy-module.html#S_SEC\">S_SEC</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.functions-module.html#simplifyVWm\">simplifyVWm()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.functions-module.html\" onclick=\"show_private();\">pygeodesy.deprecated.functions</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.karney.Caps-class.html#STANDARD_LINE\">STANDARD_LINE</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.karney.Caps-class.html\">Caps</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.dms-module.html#S_SEC\">S_SEC</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.dms-module.html\">pygeodesy.dms</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utily-module.html#SinCos2\">SinCos2()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utily-module.html\">pygeodesy.utily</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.karney._CapsBase-class.html#STANDARD_LINE\">STANDARD_LINE</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.karney._CapsBase-class.html\">_CapsBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy-module.html#S_SEP\">S_SEP</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utily-module.html#sincos2\">sincos2()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utily-module.html\">pygeodesy.utily</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#status\">status</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.solveBase._SolveCapsBase-class.html\">_SolveCapsBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.dms-module.html#S_SEP\">S_SEP</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.dms-module.html\">pygeodesy.dms</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utily-module.html#sincos2_\">sincos2_()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utily-module.html\">pygeodesy.utily</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.unitsBase._NamedUnit-class.html#std_repr\">std_repr</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.unitsBase._NamedUnit-class.html\">_NamedUnit</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.angles.Ang-class.html#sc2\">sc2</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.angles.Ang-class.html\">Ang</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utily-module.html#sincos2d\">sincos2d()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utily-module.html\">pygeodesy.utily</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geoids._GeoidBase-class.html#stdev\">stdev</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geoids._GeoidBase-class.html\">_GeoidBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.units.Scalar-class.html\">Scalar</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.units-module.html\">pygeodesy.units</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utily-module.html#sincos2d_\">sincos2d_()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utily-module.html\">pygeodesy.utily</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.azimuthal.Stereographic-class.html\">Stereographic</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.azimuthal-module.html\">pygeodesy.azimuthal</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.functions-module.html#scalar\">scalar()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.functions-module.html\" onclick=\"show_private();\">pygeodesy.deprecated.functions</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utily-module.html#sincostan3\">sincostan3()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utily-module.html\">pygeodesy.utily</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.unitsBase.Str-class.html\">Str</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.unitsBase-module.html\">pygeodesy.unitsBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.units.Scalar_-class.html\">Scalar_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.units-module.html\">pygeodesy.units</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utily-module.html#sincostan3d\">sincostan3d()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utily-module.html\">pygeodesy.utily</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns.Str_-class.html\">Str_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#scale\">scale</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html\">LatLonEllipsoidalBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geoids._GeoidBase-class.html#sizeB\">sizeB</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geoids._GeoidBase-class.html\">_GeoidBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.streprs-module.html\">streprs</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html#scale\">scale</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html\">UtmUpsBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.named._Named-class.html\">_Named</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.streprs-module.html#strs\">strs()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.streprs-module.html\">pygeodesy.streprs</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.albers._AlbersBase-class.html#scale0\">scale0</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.albers._AlbersBase-class.html\">_AlbersBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geohash.Geohash-class.html#sizes\">sizes</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geohash.Geohash-class.html\">Geohash</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.points._Array2LatLon-class.html#subset\">subset()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.points._Array2LatLon-class.html\">_Array2LatLon</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.osgr.Osgr-class.html#scale0\">scale0</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.osgr.Osgr-class.html\">Osgr</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geohash-module.html#sizes\">sizes()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geohash-module.html\">pygeodesy.geohash</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalNvector-module.html#sumOf\">sumOf()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalNvector-module.html\">pygeodesy.ellipsoidalNvector</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html#scale0\">scale0</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html\">UtmUpsBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geohash.Geohash-class.html#sizes3\">sizes3</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geohash.Geohash-class.html\">Geohash</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.nvectorBase-module.html#sumOf\">sumOf()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.nvectorBase-module.html\">pygeodesy.nvectorBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.heights._HeightIDW-class.html#scaled\">scaled</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.heights._HeightIDW-class.html\">_HeightIDW</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geohash-module.html#sizes3\">sizes3()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geohash-module.html\">pygeodesy.geohash</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.sphericalNvector-module.html#sumOf\">sumOf()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.sphericalNvector-module.html\">pygeodesy.sphericalNvector</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.heights._HeightBase-class.html#scipy\">scipy</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.heights._HeightBase-class.html\">_HeightBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geohash.Sizes3Tuple-class.html\">Sizes3Tuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geohash-module.html\">pygeodesy.geohash</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector3d-module.html#sumOf\">sumOf()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector3d-module.html\">pygeodesy.vector3d</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.heights._HeightBase-class.html#scipy_interpolate\">scipy_interpolate</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.heights._HeightBase-class.html\">_HeightBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.Aer-class.html#slantrange\">slantrange</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.Aer-class.html\">Aer</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.resections.Survey3Tuple-class.html\">Survey3Tuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.resections-module.html\">pygeodesy.resections</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.errors.SciPyError-class.html\">SciPyError</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.errors-module.html\">pygeodesy.errors</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.Local9Tuple-class.html#slantrange\">slantrange</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.Local9Tuple-class.html\">Local9Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geohash.Geohash-class.html#SW\">SW</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geohash.Geohash-class.html\">Geohash</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.errors.SciPyWarning-class.html\">SciPyWarning</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.errors-module.html\">pygeodesy.errors</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.Ned-class.html#slantrange\">slantrange</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.Ned-class.html\">Ned</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.datums.Transform-class.html#sx\">sx</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.datums.Transform-class.html\">Transform</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.angles.Ang-class.html#scn3\">scn3</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.angles.Ang-class.html\">Ang</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.XyzLocal-class.html#slantrange\">slantrange</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.XyzLocal-class.html\">XyzLocal</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.datums.Transform-class.html#sy\">sy</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.datums.Transform-class.html\">Transform</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.angles.Ang-class.html#scnu4\">scnu4</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.angles.Ang-class.html\">Ang</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipses.Ellipse-class.html#slope\">slope()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipses.Ellipse-class.html\">Ellipse</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.hausdorff.Hausdorff-class.html#symmetric\">symmetric()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.hausdorff.Hausdorff-class.html\">Hausdorff</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geohash.Geohash-class.html#SE\">SE</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geohash.Geohash-class.html\">Geohash</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipses.Ellipse-class.html#slope_\">slope_()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipses.Ellipse-class.html\">Ellipse</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.hausdorff.Hausdorff-class.html#symmetric\">symmetric()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.hausdorff.Hausdorff-class.html\">Hausdorff</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.hausdorff.Hausdorff-class.html#seed\">seed</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.hausdorff.Hausdorff-class.html\">Hausdorff</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utily-module.html#SM2m\">SM2m()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utily-module.html\">pygeodesy.utily</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.hausdorff.HausdorffCosineLaw-class.html#symmetric\">symmetric()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.hausdorff.HausdorffCosineLaw-class.html\">HausdorffCosineLaw</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesici.Intersectool-class.html#Segment\">Segment()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesici.Intersectool-class.html\">Intersectool</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geoids._GeoidBase-class.html#smooth\">smooth</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geoids._GeoidBase-class.html\">_GeoidBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.hausdorff.HausdorffDegrees-class.html#symmetric\">symmetric()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.hausdorff.HausdorffDegrees-class.html\">HausdorffDegrees</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesici.Intersector-class.html#Segment\">Segment()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesici.Intersector-class.html\">Intersector</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.elliptic.Elliptic-class.html#sncndn\">sncndn()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.elliptic.Elliptic-class.html\">Elliptic</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.hausdorff.HausdorffDistanceTo-class.html#symmetric\">symmetric()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.hausdorff.HausdorffDistanceTo-class.html\">HausdorffDistanceTo</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesici.Intersectool-class.html#Segment5\">Segment5()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesici.Intersectool-class.html\">Intersectool</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.resections-module.html#snellius3\">snellius3()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.resections-module.html\">pygeodesy.resections</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.hausdorff.HausdorffEquirectangular-class.html#symmetric\">symmetric()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.hausdorff.HausdorffEquirectangular-class.html\">HausdorffEquirectangular</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesici.Intersector-class.html#Segment5\">Segment5()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesici.Intersector-class.html\">Intersector</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector2d-module.html#soddy4\">soddy4()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector2d-module.html\">pygeodesy.vector2d</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.hausdorff.HausdorffEuclidean-class.html#symmetric\">symmetric()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.hausdorff.HausdorffEuclidean-class.html\">HausdorffEuclidean</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.named.ADict-class.html#set_\">set_()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.named.ADict-class.html\">ADict</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector3d.Vector3d-class.html#soddy4\">soddy4()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector3d.Vector3d-class.html\">Vector3d</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.hausdorff.HausdorffExact-class.html#symmetric\">symmetric()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.hausdorff.HausdorffExact-class.html\">HausdorffExact</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#SetArc\">SetArc()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html\">_GeodesicLineExact</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector2d.Soddy4Tuple-class.html\">Soddy4Tuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector2d-module.html\">pygeodesy.vector2d</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.hausdorff.HausdorffFlatLocal-class.html#symmetric\">symmetric()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.hausdorff.HausdorffFlatLocal-class.html\">HausdorffFlatLocal</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodsolve.GeodesicLineSolve-class.html#SetArc\">SetArc()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodsolve.GeodesicLineSolve-class.html\">GeodesicLineSolve</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb.solve-module.html\">solve</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb-module.html\">pygeodesy.rhumb</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.hausdorff.HausdorffHaversine-class.html#symmetric\">symmetric()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.hausdorff.HausdorffHaversine-class.html\">HausdorffHaversine</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#SetDistance\">SetDistance()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html\">_GeodesicLineExact</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.solveBase-module.html\">solveBase</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.hausdorff.HausdorffRadians-class.html#symmetric\">symmetric()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.hausdorff.HausdorffRadians-class.html\">HausdorffRadians</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodsolve.GeodesicLineSolve-class.html#SetDistance\">SetDistance()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodsolve.GeodesicLineSolve-class.html\">GeodesicLineSolve</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy-module.html#SouthPole\">SouthPole</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.hausdorff.HausdorffThomas-class.html#symmetric\">symmetric()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.hausdorff.HausdorffThomas-class.html\">HausdorffThomas</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.props.Property-class.html#setter\">setter()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.props.Property-class.html\">Property</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated-module.html#SouthPole\">SouthPole</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated-module.html\">pygeodesy.deprecated</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.hausdorff.HausdorffVincentys-class.html#symmetric\">symmetric()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.hausdorff.HausdorffVincentys-class.html\">HausdorffVincentys</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.props.Property-class.html#setter_\">setter_()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.props.Property-class.html\">Property</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.nvector-module.html#SouthPole\">SouthPole</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.nvector-module.html\">pygeodesy.deprecated.nvector</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.datums.Transform-class.html#sz\">sz</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.datums.Transform-class.html\">Transform</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.points._Array2LatLon-class.html#shape\">shape</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.points._Array2LatLon-class.html\">_Array2LatLon</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.nvectorBase-module.html#SouthPole\">SouthPole</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.nvectorBase-module.html\">pygeodesy.nvectorBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\">&nbsp;</td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.points.Shape2Tuple-class.html\">Shape2Tuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.points-module.html\">pygeodesy.points</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.lcc.Conic-class.html#SP\">SP</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.lcc.Conic-class.html\">Conic</a>)</span></td>\n<td width=\"33%\" class=\"link-index\">&nbsp;</td>\n</tr>\n</table>\n</td></tr>\n</table>\n<br /><br /><!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th bgcolor=\"#70b0f0\" class=\"navbar-select\"\n          >&nbsp;&nbsp;&nbsp;Indices&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:16 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/identifier-index-T.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>Identifier Index</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th bgcolor=\"#70b0f0\" class=\"navbar-select\"\n          >&nbsp;&nbsp;&nbsp;Indices&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">&nbsp;</td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"identifier-index-T.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<center><b>[\n <a href=\"identifier-index.html\">Identifiers</a>\n| <a href=\"term-index.html\">Term Definitions</a>\n]</b></center><br />\n<table border=\"0\" width=\"100%\">\n<tr valign=\"bottom\"><td>\n<h1 class=\"epydoc\">Identifier Index</h1>\n</td><td>\n[\n <a href=\"identifier-index-A.html\">A</a>\n <a href=\"identifier-index-B.html\">B</a>\n <a href=\"identifier-index-C.html\">C</a>\n <a href=\"identifier-index-D.html\">D</a>\n <a href=\"identifier-index-E.html\">E</a>\n <a href=\"identifier-index-F.html\">F</a>\n <a href=\"identifier-index-G.html\">G</a>\n <a href=\"identifier-index-H.html\">H</a>\n <a href=\"identifier-index-I.html\">I</a>\n <a href=\"identifier-index-J.html\">J</a>\n <a href=\"identifier-index-K.html\">K</a>\n <a href=\"identifier-index-L.html\">L</a>\n <a href=\"identifier-index-M.html\">M</a>\n <a href=\"identifier-index-N.html\">N</a>\n <a href=\"identifier-index-O.html\">O</a>\n <a href=\"identifier-index-P.html\">P</a>\n <a href=\"identifier-index-Q.html\">Q</a>\n <a href=\"identifier-index-R.html\">R</a>\n <a href=\"identifier-index-S.html\">S</a>\n <a href=\"identifier-index-T.html\">T</a>\n <a href=\"identifier-index-U.html\">U</a>\n <a href=\"identifier-index-V.html\">V</a>\n <a href=\"identifier-index-W.html\">W</a>\n <a href=\"identifier-index-X.html\">X</a>\n <a href=\"identifier-index-Y.html\">Y</a>\n <a href=\"identifier-index-Z.html\">Z</a>\n <a href=\"identifier-index-_.html\">_</a>\n]\n</td></table>\n<table border=\"0\" width=\"100%\">\n<tr valign=\"top\"><td valign=\"top\" width=\"1%\"><h2 class=\"epydoc\"><a name=\"T\">T</a></h2></td>\n<td valign=\"top\">\n<table class=\"link-index\" width=\"100%\" border=\"1\">\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.__main__-module.html#t\">t</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.__main__-module.html\">pygeodesy.__main__</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalExact.Cartesian-class.html#toLatLon\">toLatLon()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalExact.Cartesian-class.html\">Cartesian</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#toStr\">toStr()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html\">RhumbLineBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.angles.Ang-class.html#t\">t</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.angles.Ang-class.html\">Ang</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalGeodSolve.Cartesian-class.html#toLatLon\">toLatLon()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalGeodSolve.Cartesian-class.html\">Cartesian</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb.solve.RhumbLineSolve-class.html#toStr\">toStr()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb.solve.RhumbLineSolve-class.html\">RhumbLineSolve</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.osgr-module.html#t\">t</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.osgr-module.html\">pygeodesy.osgr</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalKarney.Cartesian-class.html#toLatLon\">toLatLon()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalKarney.Cartesian-class.html\">Cartesian</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb.solve.RhumbSolve-class.html#toStr\">toStr()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb.solve.RhumbSolve-class.html\">RhumbSolve</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb.solve-module.html#t\">t</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb.solve-module.html\">pygeodesy.rhumb.solve</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalNvector.Cartesian-class.html#toLatLon\">toLatLon()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalNvector.Cartesian-class.html\">Cartesian</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.solveBase._SolveBase-class.html#toStr\">toStr()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.solveBase._SolveBase-class.html\">_SolveBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.conformal3-module.html#T\">T</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.conformal3-module.html\">pygeodesy.triaxials.conformal3</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalNvector.Nvector-class.html#toLatLon\">toLatLon()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalNvector.Nvector-class.html\">Nvector</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.solveBase._SolveGDictBase-class.html#toStr\">toStr()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.solveBase._SolveGDictBase-class.html\">_SolveGDictBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.conformal3-module.html#t\">t</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.conformal3-module.html\">pygeodesy.triaxials.conformal3</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalVincenty.Cartesian-class.html#toLatLon\">toLatLon()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalVincenty.Cartesian-class.html\">Cartesian</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.solveBase._SolveGDictLineBase-class.html#toStr\">toStr()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.solveBase._SolveGDictLineBase-class.html\">_SolveGDictLineBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.triaxial5-module.html#T\">T</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.triaxial5-module.html\">pygeodesy.triaxials.triaxial5</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.etm.Etm-class.html#toLatLon\">toLatLon()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.etm.Etm-class.html\">Etm</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.trf.RefFrame-class.html#toStr\">toStr()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.trf.RefFrame-class.html\">RefFrame</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.triaxial5-module.html#t\">t</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.triaxial5-module.html\">pygeodesy.triaxials.triaxial5</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.gars.Garef-class.html#toLatLon\">toLatLon()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.gars.Garef-class.html\">Garef</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.trf.TRFXform-class.html#toStr\">toStr()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.trf.TRFXform-class.html\">TRFXform</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.osgr-module.html#t1\">t1</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.osgr-module.html\">pygeodesy.osgr</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geohash.Geohash-class.html#toLatLon\">toLatLon()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geohash.Geohash-class.html\">Geohash</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#toStr\">toStr()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html\">_UnOrderedTriaxialBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.osgr-module.html#t2\">t2</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.osgr-module.html\">pygeodesy.osgr</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.lcc.Lcc-class.html#toLatLon\">toLatLon()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.lcc.Lcc-class.html\">Lcc</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.units.Bool-class.html#toStr\">toStr()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.units.Bool-class.html\">Bool</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#tan\">tan</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html\">AuxAngle</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.Local9Tuple-class.html#toLatLon\">toLatLon()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.Local9Tuple-class.html\">Local9Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.units.Degrees-class.html#toStr\">toStr()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.units.Degrees-class.html\">Degrees</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utily-module.html#tan\">tan()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utily-module.html\">pygeodesy.utily</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.XyzLocal-class.html#toLatLon\">toLatLon()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.XyzLocal-class.html\">XyzLocal</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.units.Epoch-class.html#toStr\">toStr()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.units.Epoch-class.html\">Epoch</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utily-module.html#tan_\">tan_()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utily-module.html\">pygeodesy.utily</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.mgrs.Mgrs-class.html#toLatLon\">toLatLon()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.mgrs.Mgrs-class.html\">Mgrs</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.units.Radians-class.html#toStr\">toStr()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.units.Radians-class.html\">Radians</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utily-module.html#tan_2\">tan_2()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utily-module.html\">pygeodesy.utily</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#toLatLon\">toLatLon()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.nvectorBase.NvectorBase-class.html\">NvectorBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.unitsBase.Float-class.html#toStr\">toStr()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.unitsBase.Float-class.html\">Float</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utily-module.html#tand\">tand()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utily-module.html\">pygeodesy.utily</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.osgr.Osgr-class.html#toLatLon\">toLatLon()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.osgr.Osgr-class.html\">Osgr</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.unitsBase.Int-class.html#toStr\">toStr()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.unitsBase.Int-class.html\">Int</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utily-module.html#tand_\">tand_()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utily-module.html\">pygeodesy.utily</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.sphericalNvector.Cartesian-class.html#toLatLon\">toLatLon()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.sphericalNvector.Cartesian-class.html\">Cartesian</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.unitsBase.Str-class.html#toStr\">toStr()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.unitsBase.Str-class.html\">Str</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utily-module.html#tanPI_2_2\">tanPI_2_2()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utily-module.html\">pygeodesy.utily</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.sphericalNvector.Nvector-class.html#toLatLon\">toLatLon()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.sphericalNvector.Nvector-class.html\">Nvector</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ups.Ups-class.html#toStr\">toStr()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ups.Ups-class.html\">Ups</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#TestEdge\">TestEdge()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html\">GeodesicAreaExact</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.sphericalTrigonometry.Cartesian-class.html#toLatLon\">toLatLon()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.sphericalTrigonometry.Cartesian-class.html\">Cartesian</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utm.Utm-class.html#toStr\">toStr()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utm.Utm-class.html\">Utm</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#TestPoint\">TestPoint()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html\">GeodesicAreaExact</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ups.Ups-class.html#toLatLon\">toLatLon()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ups.Ups-class.html\">Ups</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#toStr\">toStr()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">Vector3dBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.formy-module.html#thomas\">thomas()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.formy-module.html\">pygeodesy.formy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utm.Utm-class.html#toLatLon\">toLatLon()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utm.Utm-class.html\">Utm</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.webmercator.Wm-class.html#toStr\">toStr()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.webmercator.Wm-class.html\">Wm</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.formy-module.html#thomas_\">thomas_()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.formy-module.html\">pygeodesy.formy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.webmercator.Wm-class.html#toLatLon\">toLatLon()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.webmercator.Wm-class.html\">Wm</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.named._Named-class.html\">_Named</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#thomasTo\">thomasTo()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">LatLonBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.wgrs.Georef-class.html#toLatLon\">toLatLon()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.wgrs.Georef-class.html\">Georef</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#toTransform\">toTransform()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.cartesianBase.CartesianBase-class.html\">CartesianBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.props.DeprecationWarnings-class.html#throw\">throw()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.props.DeprecationWarnings-class.html\">DeprecationWarnings</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.Footprint5Tuple-class.html#toLatLon5\">toLatLon5()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.Footprint5Tuple-class.html\">Footprint5Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toTransform\">toTransform()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html\">LatLonEllipsoidalBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#tienstra\">tienstra()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.cartesianBase.CartesianBase-class.html\">CartesianBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toLcc\">toLcc()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html\">LatLonEllipsoidalBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.trf.TRFXform-class.html#toTransform\">toTransform()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.trf.TRFXform-class.html\">TRFXform</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.functions-module.html#tienstra\">tienstra()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.functions-module.html\" onclick=\"show_private();\">pygeodesy.deprecated.functions</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.lcc-module.html#toLcc\">toLcc()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.lcc-module.html\">pygeodesy.lcc</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.trf.TransformXform-class.html#toTransform\">toTransform()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.trf.TransformXform-class.html\">TransformXform</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#tienstra7\">tienstra7()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.cartesianBase.CartesianBase-class.html\">CartesianBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ecef.EcefSudano-class.html#tolerance\">tolerance</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ecef.EcefSudano-class.html\">EcefSudano</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#toTransforms_\">toTransforms_()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html\">CartesianEllipsoidalBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.resections-module.html#tienstra7\">tienstra7()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.resections-module.html\">pygeodesy.resections</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toLocal\">toLocal()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ecefLocals._EcefLocal-class.html\">_EcefLocal</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#toTriaxial\">toTriaxial()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.resections.Tienstra7Tuple-class.html\">Tienstra7Tuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.resections-module.html\">pygeodesy.resections</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.XyzLocal-class.html#toLocal9Tuple\">toLocal9Tuple()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.XyzLocal-class.html\">XyzLocal</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.Ellipse5Tuple-class.html#toTriaxial\">toTriaxial()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples.Ellipse5Tuple-class.html\">Ellipse5Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.mgrs.Mgrs-class.html#tilesize\">tilesize</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.mgrs.Mgrs-class.html\">Mgrs</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toLtp\">toLtp()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ecefLocals._EcefLocal-class.html\">_EcefLocal</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html#toTriaxial5\">toTriaxial5()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html\">Triaxial3</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltp.Attitude-class.html#tilt\">tilt</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltp.Attitude-class.html\">Attitude</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toMgrs\">toMgrs()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html\">LatLonEllipsoidalBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipses.Ellipse-class.html#toTriaxial_\">toTriaxial_()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipses.Ellipse-class.html\">Ellipse</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#times\">times()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">Vector3dBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.mgrs.Mgrs4Tuple-class.html#toMgrs\">toMgrs()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.mgrs.Mgrs4Tuple-class.html\">Mgrs4Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.Ellipse5Tuple-class.html#toTriaxial_\">toTriaxial_()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples.Ellipse5Tuple-class.html\">Ellipse5Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#times_\">times_()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">Vector3dBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.mgrs.Mgrs6Tuple-class.html#toMgrs\">toMgrs()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.mgrs.Mgrs6Tuple-class.html\">Mgrs6Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.angles.Ang-class.html#toTuple\">toTuple()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.angles.Ang-class.html\">Ang</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ktm.KTransverseMercator-class.html#TMorder\">TMorder</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ktm.KTransverseMercator-class.html\">KTransverseMercator</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.mgrs-module.html#toMgrs\">toMgrs()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.mgrs-module.html\">pygeodesy.mgrs</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.angles.Ang-class.html#toUnit\">toUnit()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.angles.Ang-class.html\">Ang</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb.bases.RhumbBase-class.html#TMorder\">TMorder</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb.bases.RhumbBase-class.html\">RhumbBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html#toMgrs\">toMgrs()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html\">UtmUpsBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.frechet.Frechet6Tuple-class.html#toUnits\">toUnits()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.frechet.Frechet6Tuple-class.html\">Frechet6Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#TMorder\">TMorder</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html\">RhumbLineBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#toMu\">toMu()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html\">AuxAngle</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.hausdorff.Hausdorff6Tuple-class.html#toUnits\">toUnits()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.hausdorff.Hausdorff6Tuple-class.html\">Hausdorff6Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#to2ab\">to2ab()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.cartesianBase.CartesianBase-class.html\">CartesianBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toNed\">toNed()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ecefLocals._EcefLocal-class.html\">_EcefLocal</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.named._NamedTuple-class.html#toUnits\">toUnits()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.named._NamedTuple-class.html\">_NamedTuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#to2ab\">to2ab()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">LatLonBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalNvector-module.html#toNed\">toNed()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalNvector-module.html\">pygeodesy.ellipsoidalNvector</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toUps\">toUps()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html\">LatLonEllipsoidalBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#to2ab\">to2ab()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.nvectorBase.NvectorBase-class.html\">NvectorBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.Local9Tuple-class.html#toNed\">toNed()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.Local9Tuple-class.html\">Local9Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.mgrs.Mgrs-class.html#toUps\">toUps()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.mgrs.Mgrs-class.html\">Mgrs</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html#to2en\">to2en()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html\">UtmUpsBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.XyzLocal-class.html#toNed\">toNed()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.XyzLocal-class.html\">XyzLocal</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ups.Ups-class.html#toUps\">toUps()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ups.Ups-class.html\">Ups</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#to2ll\">to2ll()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.cartesianBase.CartesianBase-class.html\">CartesianBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples._AbcBase-class.html#toNed\">toNed()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples._AbcBase-class.html\">_AbcBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utm.Utm-class.html#toUps\">toUps()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utm.Utm-class.html\">Utm</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#to2ll\">to2ll()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.nvectorBase.NvectorBase-class.html\">NvectorBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toNormal\">toNormal()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">LatLonBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ups-module.html#toUps8\">toUps8()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ups-module.html\">pygeodesy.ups</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.webmercator.Wm-class.html#to2ll\">to2ll()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.webmercator.Wm-class.html\">Wm</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#toNvector\">toNvector()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.cartesianBase.CartesianBase-class.html\">CartesianBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.functions-module.html#toUtm\">toUtm()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.functions-module.html\" onclick=\"show_private();\">pygeodesy.deprecated.functions</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.triaxial5.BetaOmega3Tuple-class.html#to2Tuple\">to2Tuple()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.triaxial5.BetaOmega3Tuple-class.html\">BetaOmega3Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalNvector.Cartesian-class.html#toNvector\">toNvector()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalNvector.Cartesian-class.html\">Cartesian</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toUtm\">toUtm()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html\">LatLonEllipsoidalBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#to3abh\">to3abh()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.nvectorBase.NvectorBase-class.html\">NvectorBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalNvector.LatLon-class.html#toNvector\">toNvector()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalNvector.LatLon-class.html\">LatLon</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.etm.Etm-class.html#toUtm\">toUtm()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.etm.Etm-class.html\">Etm</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.lcc.Lcc-class.html#to3lld\">to3lld()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.lcc.Lcc-class.html\">Lcc</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toNvector\">toNvector()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">LatLonBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.mgrs.Mgrs-class.html#toUtm\">toUtm()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.mgrs.Mgrs-class.html\">Mgrs</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#to3llh\">to3llh()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.cartesianBase.CartesianBase-class.html\">CartesianBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.nvectorBase.LatLonNvectorBase-class.html#toNvector\">toNvector()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.nvectorBase.LatLonNvectorBase-class.html\">LatLonNvectorBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ups.Ups-class.html#toUtm\">toUtm()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ups.Ups-class.html\">Ups</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#to3llh\">to3llh()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">LatLonBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html#toNvector\">toNvector()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html\">LatLonSphericalBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utm.Utm-class.html#toUtm\">toUtm()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utm.Utm-class.html\">Utm</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#to3llh\">to3llh()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.nvectorBase.NvectorBase-class.html\">NvectorBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.sphericalNvector.Cartesian-class.html#toNvector\">toNvector()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.sphericalNvector.Cartesian-class.html\">Cartesian</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utm-module.html#toUtm8\">toUtm8()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utm-module.html\">pygeodesy.utm</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.Ned-class.html#to3ned\">to3ned()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.Ned-class.html\">Ned</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.sphericalNvector.LatLon-class.html#toNvector\">toNvector()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.sphericalNvector.LatLon-class.html\">LatLon</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toUtmUps\">toUtmUps()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html\">LatLonEllipsoidalBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.LatLon2Tuple-class.html#to3Tuple\">to3Tuple()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples.LatLon2Tuple-class.html\">LatLon2Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toOsgr\">toOsgr()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html\">LatLonEllipsoidalBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.mgrs.Mgrs-class.html#toUtmUps\">toUtmUps()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.mgrs.Mgrs-class.html\">Mgrs</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.PhiLam2Tuple-class.html#to3Tuple\">to3Tuple()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples.PhiLam2Tuple-class.html\">PhiLam2Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.osgr-module.html#toOsgr\">toOsgr()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.osgr-module.html\">pygeodesy.osgr</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utmups-module.html#toUtmUps8\">toUtmUps8()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utmups-module.html\">pygeodesy.utmups</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.Vector2Tuple-class.html#to3Tuple\">to3Tuple()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples.Vector2Tuple-class.html\">Vector2Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html#toOther\">toOther()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html\">Triaxial3</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.Enu-class.html#toUvw\">toUvw()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.Enu-class.html\">Enu</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.Vector4Tuple-class.html#to3Tuple\">to3Tuple()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples.Vector4Tuple-class.html\">Vector4Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#toPhi\">toPhi()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html\">AuxAngle</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.Los-class.html#toUvw\">toUvw()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.Los-class.html\">Los</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#to3xyz\">to3xyz()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html\">LatLonEllipsoidalBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#toRadians\">toRadians</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html\">AuxAngle</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#toVector\">toVector()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.cartesianBase.CartesianBase-class.html\">CartesianBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#to3xyz\">to3xyz()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">LatLonBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.angles.Ang-class.html#toRadians\">toRadians()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.angles.Ang-class.html\">Ang</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ecef.Ecef9Tuple-class.html#toVector\">toVector()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ecef.Ecef9Tuple-class.html\">Ecef9Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#to3xyz\">to3xyz()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">Vector3dBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.cartesianBase.RadiusThetaPhi3Tuple-class.html#toRadians\">toRadians()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.cartesianBase.RadiusThetaPhi3Tuple-class.html\">RadiusThetaPhi3Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toVector\">toVector()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">LatLonBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.LatLon2Tuple-class.html#to4Tuple\">to4Tuple()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples.LatLon2Tuple-class.html\">LatLon2Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.triaxial5.BetaOmega2Tuple-class.html#toRadians\">toRadians()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.triaxial5.BetaOmega2Tuple-class.html\">BetaOmega2Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toVector3d\">toVector3d()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">LatLonBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.LatLon3Tuple-class.html#to4Tuple\">to4Tuple()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples.LatLon3Tuple-class.html\">LatLon3Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.triaxial5.BetaOmega3Tuple-class.html#toRadians\">toRadians()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.triaxial5.BetaOmega3Tuple-class.html\">BetaOmega3Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.Ned-class.html#toVector3d\">toVector3d()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.Ned-class.html\">Ned</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.PhiLam2Tuple-class.html#to4Tuple\">to4Tuple()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples.PhiLam2Tuple-class.html\">PhiLam2Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.triaxial5.Conformal2Tuple-class.html#toRadians\">toRadians()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.triaxial5.Conformal2Tuple-class.html\">Conformal2Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#toVector3d\">toVector3d()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.nvectorBase.NvectorBase-class.html\">NvectorBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.PhiLam3Tuple-class.html#to4Tuple\">to4Tuple()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples.PhiLam3Tuple-class.html\">PhiLam3Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.units.Degrees-class.html#toRadians\">toRadians()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.units.Degrees-class.html\">Degrees</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toWm\">toWm()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">LatLonBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.Vector3Tuple-class.html#to4Tuple\">to4Tuple()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples.Vector3Tuple-class.html\">Vector3Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.units.Radians-class.html#toRadians\">toRadians()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.units.Radians-class.html\">Radians</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.webmercator-module.html#toWm\">toWm()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.webmercator-module.html\">pygeodesy.webmercator</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#to4xyzh\">to4xyzh()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.nvectorBase.NvectorBase-class.html\">NvectorBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#toRefFrame\">toRefFrame()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html\">CartesianEllipsoidalBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toXyz\">toXyz()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ecefLocals._EcefLocal-class.html\">_EcefLocal</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.LatLonPrec3Tuple-class.html#to5Tuple\">to5Tuple()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples.LatLonPrec3Tuple-class.html\">LatLonPrec3Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toRefFrame\">toRefFrame()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html\">LatLonEllipsoidalBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.Local9Tuple-class.html#toXyz\">toXyz()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.Local9Tuple-class.html\">Local9Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.triaxial5.Conformal2Tuple-class.html#to5Tuple\">to5Tuple()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.triaxial5.Conformal2Tuple-class.html\">Conformal2Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.trf.RefFrame-class.html#toRefFrame\">toRefFrame()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.trf.RefFrame-class.html\">RefFrame</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.XyzLocal-class.html#toXyz\">toXyz()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.XyzLocal-class.html\">XyzLocal</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.mgrs.Mgrs4Tuple-class.html#to6Tuple\">to6Tuple()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.mgrs.Mgrs4Tuple-class.html\">Mgrs4Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.trf.TRFXform-class.html#toRefFrame\">toRefFrame()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.trf.TRFXform-class.html\">TRFXform</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples._AbcBase-class.html#toXyz\">toXyz()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples._AbcBase-class.html\">_AbcBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toAer\">toAer()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ecefLocals._EcefLocal-class.html\">_EcefLocal</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.trf.TransformXform-class.html#toRefFrame\">toRefFrame()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.trf.TransformXform-class.html\">TransformXform</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.datums.Datum-class.html#transform\">transform</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.datums.Datum-class.html\">Datum</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.Local9Tuple-class.html#toAer\">toAer()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.Local9Tuple-class.html\">Local9Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.albers._AlbersBase-class.html#toRepr\">toRepr()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.albers._AlbersBase-class.html\">_AlbersBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.datums.Transform-class.html\">Transform</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.datums-module.html\">pygeodesy.datums</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.XyzLocal-class.html#toAer\">toAer()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.XyzLocal-class.html\">XyzLocal</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.angles.Ang-class.html#toRepr\">toRepr()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.angles.Ang-class.html\">Ang</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxDST.AuxDST-class.html#transform\">transform()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats.auxDST.AuxDST-class.html\">AuxDST</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples._AbcBase-class.html#toAer\">toAer()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples._AbcBase-class.html\">_AbcBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#toRepr\">toRepr()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html\">_AzimuthalBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.datums.Transform-class.html#transform\">transform()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.datums.Transform-class.html\">Transform</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#toBeta\">toBeta()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html\">AuxAngle</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.css.CassiniSoldner-class.html#toRepr\">toRepr()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.css.CassiniSoldner-class.html\">CassiniSoldner</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.trf.TransformXform-class.html#transform2\">transform2()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.trf.TransformXform-class.html\">TransformXform</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.cartesianBase.RadiusThetaPhi3Tuple-class.html#toCartesian\">toCartesian()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.cartesianBase.RadiusThetaPhi3Tuple-class.html\">RadiusThetaPhi3Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.css.Css-class.html#toRepr\">toRepr()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.css.Css-class.html\">Css</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.classes.Transform7Tuple-class.html\">Transform7Tuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.classes-module.html\" onclick=\"show_private();\">pygeodesy.deprecated.classes</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ecef.Ecef9Tuple-class.html#toCartesian\">toCartesian()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ecef.Ecef9Tuple-class.html\">Ecef9Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalNvector.Ned-class.html#toRepr\">toRepr()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalNvector.Ned-class.html\">Ned</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy-module.html#Transforms\">Transforms</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toCartesian\">toCartesian()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html\">LatLonEllipsoidalBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums.Fsum-class.html#toRepr\">toRepr()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums.Fsum-class.html\">Fsum</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.datums-module.html#Transforms\">Transforms</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.datums-module.html\">pygeodesy.datums</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalExact.LatLon-class.html#toCartesian\">toCartesian()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalExact.LatLon-class.html\">LatLon</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.lcc.Lcc-class.html#toRepr\">toRepr()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.lcc.Lcc-class.html\">Lcc</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated-module.html#Transforms\">Transforms</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated-module.html\">pygeodesy.deprecated</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalGeodSolve.LatLon-class.html#toCartesian\">toCartesian()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalGeodSolve.LatLon-class.html\">LatLon</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.Aer-class.html#toRepr\">toRepr()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.Aer-class.html\">Aer</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.datum-module.html#Transforms\">Transforms</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.datum-module.html\">pygeodesy.deprecated.datum</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalKarney.LatLon-class.html#toCartesian\">toCartesian()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalKarney.LatLon-class.html\">LatLon</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.Ned-class.html#toRepr\">toRepr()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.Ned-class.html\">Ned</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.trf.TransformXform-class.html\">TransformXform</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.trf-module.html\">pygeodesy.trf</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalNvector.LatLon-class.html#toCartesian\">toCartesian()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalNvector.LatLon-class.html\">LatLon</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.mgrs.Mgrs-class.html#toRepr\">toRepr()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.mgrs.Mgrs-class.html\">Mgrs</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Curvature2Tuple-class.html#transverse\">transverse</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Curvature2Tuple-class.html\">Curvature2Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalNvector.Nvector-class.html#toCartesian\">toCartesian()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalNvector.Nvector-class.html\">Nvector</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.named.ADict-class.html#toRepr\">toRepr()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.named.ADict-class.html\">ADict</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.trf-module.html\">trf</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalVincenty.LatLon-class.html#toCartesian\">toCartesian()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalVincenty.LatLon-class.html\">LatLon</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.named._Named-class.html#toRepr\">toRepr()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.named._Named-class.html\">_Named</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.errors.TRFError-class.html\">TRFError</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.errors-module.html\">pygeodesy.errors</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toCartesian\">toCartesian()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">LatLonBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.named._NamedBase-class.html#toRepr\">toRepr()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.named._NamedBase-class.html\">_NamedBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.trf-module.html#trfTransform0\">trfTransform0()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.trf-module.html\">pygeodesy.trf</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.Local9Tuple-class.html#toCartesian\">toCartesian()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.Local9Tuple-class.html\">Local9Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.named._NamedEnum-class.html#toRepr\">toRepr()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.named._NamedEnum-class.html\">_NamedEnum</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.trf-module.html#trfTransforms\">trfTransforms()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.trf-module.html\">pygeodesy.trf</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.XyzLocal-class.html#toCartesian\">toCartesian()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.XyzLocal-class.html\">XyzLocal</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.named._NamedTuple-class.html#toRepr\">toRepr()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.named._NamedTuple-class.html\">_NamedTuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.trf.TRFXform-class.html\">TRFXform</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.trf-module.html\">pygeodesy.trf</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.Vector2Tuple-class.html#toCartesian\">toCartesian()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples.Vector2Tuple-class.html\">Vector2Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.osgr.Osgr-class.html#toRepr\">toRepr()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.osgr.Osgr-class.html\">Osgr</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.trf-module.html#trfXform\">trfXform()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.trf-module.html\">pygeodesy.trf</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.Vector3Tuple-class.html#toCartesian\">toCartesian()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples.Vector3Tuple-class.html\">Vector3Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.points.LatLon_-class.html#toRepr\">toRepr()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.points.LatLon_-class.html\">LatLon_</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.trf.TRFXform7Tuple-class.html\">TRFXform7Tuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.trf-module.html\">pygeodesy.trf</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.Vector4Tuple-class.html#toCartesian\">toCartesian()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples.Vector4Tuple-class.html\">Vector4Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.trf.TRFXform-class.html#toRepr\">toRepr()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.trf.TRFXform-class.html\">TRFXform</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.resections-module.html#triAngle\">triAngle()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.resections-module.html\">pygeodesy.resections</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#toCartesian\">toCartesian()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.nvectorBase.NvectorBase-class.html\">NvectorBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.units.Bool-class.html#toRepr\">toRepr()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.units.Bool-class.html\">Bool</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.functions-module.html#triAngle4\">triAngle4()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.functions-module.html\" onclick=\"show_private();\">pygeodesy.deprecated.functions</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.sphericalNvector.LatLon-class.html#toCartesian\">toCartesian()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.sphericalNvector.LatLon-class.html\">LatLon</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.units.Degrees-class.html#toRepr\">toRepr()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.units.Degrees-class.html\">Degrees</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.classes.TriAngle4Tuple-class.html\">TriAngle4Tuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.classes-module.html\" onclick=\"show_private();\">pygeodesy.deprecated.classes</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.sphericalNvector.Nvector-class.html#toCartesian\">toCartesian()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.sphericalNvector.Nvector-class.html\">Nvector</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.units.Epoch-class.html#toRepr\">toRepr()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.units.Epoch-class.html\">Epoch</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.resections-module.html#triAngle5\">triAngle5()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.resections-module.html\">pygeodesy.resections</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html#toCartesian\">toCartesian()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html\">LatLon</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.units.Radians-class.html#toRepr\">toRepr()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.units.Radians-class.html\">Radians</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.resections.TriAngle5Tuple-class.html\">TriAngle5Tuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.resections-module.html\">pygeodesy.resections</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector3d.Vector3d-class.html#toCartesian\">toCartesian()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector3d.Vector3d-class.html\">Vector3d</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.unitsBase.Float-class.html#toRepr\">toRepr()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.unitsBase.Float-class.html\">Float</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html#triangle7\">triangle7()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html\">LatLon</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#toChi\">toChi()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html\">AuxAngle</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.unitsBase.Int-class.html#toRepr\">toRepr()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.unitsBase.Int-class.html\">Int</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.sphericalTrigonometry-module.html#triangle7\">triangle7()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.sphericalTrigonometry-module.html\">pygeodesy.sphericalTrigonometry</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.css-module.html#toCss\">toCss()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.css-module.html\">pygeodesy.css</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.unitsBase.Str-class.html#toRepr\">toRepr()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.unitsBase.Str-class.html\">Str</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.Triangle7Tuple-class.html\">Triangle7Tuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples-module.html\">pygeodesy.namedTuples</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toCss\">toCss()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html\">LatLonEllipsoidalBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ups.Ups-class.html#toRepr\">toRepr()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ups.Ups-class.html\">Ups</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.sphericalTrigonometry-module.html#triangle8_\">triangle8_()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.sphericalTrigonometry-module.html\">pygeodesy.sphericalTrigonometry</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#toDatum\">toDatum()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.cartesianBase.CartesianBase-class.html\">CartesianBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utm.Utm-class.html#toRepr\">toRepr()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utm.Utm-class.html\">Utm</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.Triangle8Tuple-class.html\">Triangle8Tuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples-module.html\">pygeodesy.namedTuples</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ecef.Ecef9Tuple-class.html#toDatum\">toDatum()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ecef.Ecef9Tuple-class.html\">Ecef9Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.webmercator.Wm-class.html#toRepr\">toRepr()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.webmercator.Wm-class.html\">Wm</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.errors.TriangleError-class.html\">TriangleError</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.errors-module.html\">pygeodesy.errors</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toDatum\">toDatum()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html\">LatLonEllipsoidalBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.karney.GDict-class.html#toRhumb7Tuple\">toRhumb7Tuple()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.karney.GDict-class.html\">GDict</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#triangulate\">triangulate()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html\">LatLonEllipsoidalBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toDatum\">toDatum()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">LatLonBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.classes.Rhumb7Tuple-class.html#toRhumb8Tuple\">toRhumb8Tuple()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.classes.Rhumb7Tuple-class.html\">Rhumb7Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.nvectorBase.LatLonNvectorBase-class.html#triangulate\">triangulate()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.nvectorBase.LatLonNvectorBase-class.html\">LatLonNvectorBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.lcc.Conic-class.html#toDatum\">toDatum()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.lcc.Conic-class.html\">Conic</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.karney.GDict-class.html#toRhumb8Tuple\">toRhumb8Tuple()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.karney.GDict-class.html\">GDict</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.sphericalNvector-module.html#triangulate\">triangulate()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.sphericalNvector-module.html\">pygeodesy.sphericalNvector</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#toDegrees\">toDegrees</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html\">AuxAngle</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.karney.GDict-class.html#toRhumbSolve7Tuple\">toRhumbSolve7Tuple()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.karney.GDict-class.html\">GDict</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html#triangulate\">triangulate()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html\">LatLon</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.angles.Ang-class.html#toDegrees\">toDegrees()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.angles.Ang-class.html\">Ang</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#toRtp\">toRtp()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.cartesianBase.CartesianBase-class.html\">CartesianBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.resections-module.html#triArea\">triArea()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.resections-module.html\">pygeodesy.resections</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.cartesianBase.RadiusThetaPhi3Tuple-class.html#toDegrees\">toDegrees()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.cartesianBase.RadiusThetaPhi3Tuple-class.html\">RadiusThetaPhi3Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.albers._AlbersBase-class.html#toStr\">toStr()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.albers._AlbersBase-class.html\">_AlbersBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.triaxial5.Triaxial-class.html\">Triaxial</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.triaxial5-module.html\" onclick=\"show_private();\">pygeodesy.triaxials.triaxial5</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.triaxial5.BetaOmega2Tuple-class.html#toDegrees\">toDegrees()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.triaxial5.BetaOmega2Tuple-class.html\">BetaOmega2Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.angles.Ang-class.html#toStr\">toStr()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.angles.Ang-class.html\">Ang</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geod3solve.Geodesic3Solve-class.html#triaxial3\">triaxial3</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geod3solve.Geodesic3Solve-class.html\">Geodesic3Solve</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.triaxial5.BetaOmega3Tuple-class.html#toDegrees\">toDegrees()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.triaxial5.BetaOmega3Tuple-class.html\">BetaOmega3Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#toStr\">toStr()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html\">_AzimuthalBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geod3solve.GeodesicLine3Solve-class.html#triaxial3\">triaxial3</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geod3solve.GeodesicLine3Solve-class.html\">GeodesicLine3Solve</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.triaxial5.Conformal2Tuple-class.html#toDegrees\">toDegrees()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.triaxial5.Conformal2Tuple-class.html\">Conformal2Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#toStr\">toStr()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.cartesianBase.CartesianBase-class.html\">CartesianBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.triaxial3-module.html\">triaxial3</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials-module.html\">pygeodesy.triaxials</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.units.Degrees-class.html#toDegrees\">toDegrees()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.units.Degrees-class.html\">Degrees</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.css.CassiniSoldner-class.html#toStr\">toStr()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.css.CassiniSoldner-class.html\">CassiniSoldner</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html\">Triaxial3</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.triaxial3-module.html\" onclick=\"show_private();\">pygeodesy.triaxials.triaxial3</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.units.Radians-class.html#toDegrees\">toDegrees()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.units.Radians-class.html\">Radians</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.css.Css-class.html#toStr\">toStr()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.css.Css-class.html\">Css</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.triaxial3.Triaxial3B-class.html\">Triaxial3B</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.triaxial3-module.html\" onclick=\"show_private();\">pygeodesy.triaxials.triaxial3</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.classes.Rhumb7Tuple-class.html#toDirect9Tuple\">toDirect9Tuple()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.classes.Rhumb7Tuple-class.html\">Rhumb7Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.datums.Datum-class.html#toStr\">toStr()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.datums.Datum-class.html\">Datum</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy-module.html#Triaxial3s\">Triaxial3s</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.karney.GDict-class.html#toDirect9Tuple\">toDirect9Tuple()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.karney.GDict-class.html\">GDict</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.datums.Transform-class.html#toStr\">toStr()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.datums.Transform-class.html\">Transform</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials-module.html#Triaxial3s\">Triaxial3s</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials-module.html\">pygeodesy.triaxials</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.karney.Rhumb8Tuple-class.html#toDirect9Tuple\">toDirect9Tuple()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.karney.Rhumb8Tuple-class.html\" onclick=\"show_private();\">Rhumb8Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ecef._EcefBase-class.html#toStr\">toStr()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ecef._EcefBase-class.html\">_EcefBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.triaxial3-module.html#Triaxial3s\">Triaxial3s</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.triaxial3-module.html\" onclick=\"show_private();\">pygeodesy.triaxials.triaxial3</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.dms-module.html#toDMS\">toDMS()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.dms-module.html\">pygeodesy.dms</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipses.Ellipse-class.html#toStr\">toStr()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipses.Ellipse-class.html\">Ellipse</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.triaxial5-module.html\">triaxial5</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials-module.html\">pygeodesy.triaxials</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#toEcef\">toEcef()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.cartesianBase.CartesianBase-class.html\">CartesianBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#toStr\">toStr()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.triaxial5.Triaxial_-class.html\">Triaxial_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.triaxial5-module.html\" onclick=\"show_private();\">pygeodesy.triaxials.triaxial5</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toEcef\">toEcef()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">LatLonBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.etm.ExactTransverseMercator-class.html#toStr\">toStr()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.etm.ExactTransverseMercator-class.html\">ExactTransverseMercator</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.bases.TriaxialError-class.html\">TriaxialError</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.bases-module.html\" onclick=\"show_private();\">pygeodesy.triaxials.bases</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#toEllipse\">toEllipse()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums.Fsum-class.html#toStr\">toStr()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums.Fsum-class.html\">Fsum</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy-module.html#Triaxials\">Triaxials</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipses.Ellipse-class.html#toEllipsoid\">toEllipsoid()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipses.Ellipse-class.html\">Ellipse</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums.Fsum2Tuple-class.html#toStr\">toStr()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\">Fsum2Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials-module.html\">triaxials</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#toEllipsoid\">toEllipsoid()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html\">_UnOrderedTriaxialBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geod3solve.Geodesic3Solve-class.html#toStr\">toStr()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geod3solve.Geodesic3Solve-class.html\">Geodesic3Solve</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials-module.html#Triaxials\">Triaxials</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials-module.html\">pygeodesy.triaxials</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#toEllipsoid2\">toEllipsoid2()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geod3solve.GeodesicLine3Solve-class.html#toStr\">toStr()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geod3solve.GeodesicLine3Solve-class.html\">GeodesicLine3Solve</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.triaxial5-module.html#Triaxials\">Triaxials</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.triaxial5-module.html\" onclick=\"show_private();\">pygeodesy.triaxials.triaxial5</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toEnu\">toEnu()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ecefLocals._EcefLocal-class.html\">_EcefLocal</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geod3solve._Geodesic3SolveBase-class.html#toStr\">toStr()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geod3solve._Geodesic3SolveBase-class.html\">_Geodesic3SolveBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector2d-module.html#triaxum5\">triaxum5()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector2d-module.html\">pygeodesy.vector2d</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.Local9Tuple-class.html#toEnu\">toEnu()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.Local9Tuple-class.html\">Local9Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesici.Intersectool-class.html#toStr\">toStr()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesici.Intersectool-class.html\">Intersectool</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector2d.Triaxum5Tuple-class.html\">Triaxum5Tuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector2d-module.html\">pygeodesy.vector2d</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.Los-class.html#toEnu\">toEnu()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.Los-class.html\">Los</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesici.Intersector-class.html#toStr\">toStr()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesici.Intersector-class.html\">Intersector</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.nvectorBase.LatLonNvectorBase-class.html#trilaterate\">trilaterate()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.nvectorBase.LatLonNvectorBase-class.html\">LatLonNvectorBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.Uvw-class.html#toEnu\">toEnu()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.Uvw-class.html\">Uvw</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html#toStr\">toStr()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html\">GeodesicExact</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.sphericalNvector-module.html#trilaterate\">trilaterate()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.sphericalNvector-module.html\">pygeodesy.sphericalNvector</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.XyzLocal-class.html#toEnu\">toEnu()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.XyzLocal-class.html\">XyzLocal</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#toStr\">toStr()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html\">GeodesicAreaExact</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector2d-module.html#trilaterate2d2\">trilaterate2d2()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector2d-module.html\">pygeodesy.vector2d</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples._AbcBase-class.html#toEnu\">toEnu()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples._AbcBase-class.html\">_AbcBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#toStr\">toStr()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html\">_GeodesicLineExact</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector3d.Vector3d-class.html#trilaterate2d2\">trilaterate2d2()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector3d.Vector3d-class.html\">Vector3d</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.trf.TRFXform-class.html#toEpoch\">toEpoch()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.trf.TRFXform-class.html\">TRFXform</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodsolve.GeodesicLineSolve-class.html#toStr\">toStr()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodsolve.GeodesicLineSolve-class.html\">GeodesicLineSolve</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector3d.Vector3d-class.html#trilaterate3d2\">trilaterate3d2()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector3d.Vector3d-class.html\">Vector3d</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html#toEpsg\">toEpsg()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html\">UtmUpsBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodsolve.GeodesicSolve-class.html#toStr\">toStr()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodsolve.GeodesicSolve-class.html\">GeodesicSolve</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector3d-module.html#trilaterate3d2\">trilaterate3d2()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector3d-module.html\">pygeodesy.vector3d</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toEtm\">toEtm()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html\">LatLonEllipsoidalBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geoids._GeoidBase-class.html#toStr\">toStr()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geoids._GeoidBase-class.html\">_GeoidBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#trilaterate5\">trilaterate5()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html\">LatLonEllipsoidalBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utm.Utm-class.html#toEtm\">toEtm()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utm.Utm-class.html\">Utm</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.karney.Caps-class.html#toStr\">toStr()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.karney.Caps-class.html\">Caps</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.nvectorBase.LatLonNvectorBase-class.html#trilaterate5\">trilaterate5()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.nvectorBase.LatLonNvectorBase-class.html\">LatLonNvectorBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.etm-module.html#toEtm8\">toEtm8()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.etm-module.html\">pygeodesy.etm</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ktm.KTransverseMercator-class.html#toStr\">toStr()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ktm.KTransverseMercator-class.html\">KTransverseMercator</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html#trilaterate5\">trilaterate5()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html\">LatLon</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fstats.Fcook-class.html#toFwelford\">toFwelford()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fstats.Fcook-class.html\">Fcook</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toStr\">toStr()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">LatLonBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.Trilaterate5Tuple-class.html\">Trilaterate5Tuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples-module.html\">pygeodesy.namedTuples</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.classes.Rhumb7Tuple-class.html#toGDict\">toGDict()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.classes.Rhumb7Tuple-class.html\">Rhumb7Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.lcc.Conic-class.html#toStr\">toStr()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.lcc.Conic-class.html\">Conic</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.resections-module.html#triSide\">triSide()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.resections-module.html\">pygeodesy.resections</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.karney.Inverse10Tuple-class.html#toGDict\">toGDict()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.karney.Inverse10Tuple-class.html\">Inverse10Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.lcc.Lcc-class.html#toStr\">toStr()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.lcc.Lcc-class.html\">Lcc</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.resections-module.html#triSide2\">triSide2()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.resections-module.html\">pygeodesy.resections</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.karney.GDict-class.html#toGeod3Solve8Tuple\">toGeod3Solve8Tuple()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.karney.GDict-class.html\">GDict</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltp.Attitude-class.html#toStr\">toStr()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltp.Attitude-class.html\">Attitude</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.resections.TriSide2Tuple-class.html\">TriSide2Tuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.resections-module.html\">pygeodesy.resections</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.karney.GDict-class.html#toGeodSolve12Tuple\">toGeodSolve12Tuple()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.karney.GDict-class.html\">GDict</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltp.Frustum-class.html#toStr\">toStr()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltp.Frustum-class.html\">Frustum</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.resections-module.html#triSide4\">triSide4()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.resections-module.html\">pygeodesy.resections</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.trf.TRFXform-class.html#toHelmert\">toHelmert()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.trf.TRFXform-class.html\">TRFXform</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltp.LocalCartesian-class.html#toStr\">toStr()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltp.LocalCartesian-class.html\">LocalCartesian</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.resections.TriSide4Tuple-class.html\">TriSide4Tuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.resections-module.html\">pygeodesy.resections</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.classes.Rhumb7Tuple-class.html#toInverse10Tuple\">toInverse10Tuple()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.classes.Rhumb7Tuple-class.html\">Rhumb7Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.Aer-class.html#toStr\">toStr()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.Aer-class.html\">Aer</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utily-module.html#truncate\">truncate()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utily-module.html\">pygeodesy.utily</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.karney.GDict-class.html#toInverse10Tuple\">toInverse10Tuple()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.karney.GDict-class.html\">GDict</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.Ned-class.html#toStr\">toStr()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.Ned-class.html\">Ned</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.points.Tuple2LatLon-class.html\">Tuple2LatLon</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.points-module.html\">pygeodesy.points</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.karney.Rhumb8Tuple-class.html#toInverse10Tuple\">toInverse10Tuple()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.karney.Rhumb8Tuple-class.html\" onclick=\"show_private();\">Rhumb8Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.mgrs.Mgrs-class.html#toStr\">toStr()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.mgrs.Mgrs-class.html\">Mgrs</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.datums.Transform-class.html#tx\">tx</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.datums.Transform-class.html\">Transform</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utily-module.html#toise2m\">toise2m()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utily-module.html\">pygeodesy.utily</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.named.ADict-class.html#toStr\">toStr()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.named.ADict-class.html\">ADict</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.datums.Transform-class.html#ty\">ty</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.datums.Transform-class.html\">Transform</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.angles.Ang-class.html#toLambertian\">toLambertian()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.angles.Ang-class.html\">Ang</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.named._Named-class.html#toStr\">toStr()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.named._Named-class.html\">_Named</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.named.ADict-class.html#typename\">typename</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.named.ADict-class.html\">ADict</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#toLambertianDegrees\">toLambertianDegrees</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html\">AuxAngle</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.named._NamedBase-class.html#toStr\">toStr()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.named._NamedBase-class.html\">_NamedBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.named._Named-class.html\">_Named</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#toLambertianRadians\">toLambertianRadians</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html\">AuxAngle</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.named._NamedEnum-class.html#toStr\">toStr()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.named._NamedEnum-class.html\">_NamedEnum</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.internals-module.html#typename\">typename()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.internals-module.html\">pygeodesy.internals</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.booleans._CompositeBase-class.html#toLatLon\">toLatLon()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.booleans._CompositeBase-class.html\">_CompositeBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.named._NamedTuple-class.html#toStr\">toStr()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.named._NamedTuple-class.html\">_NamedTuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltp.Attitude-class.html#tyr3d\">tyr3d</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltp.Attitude-class.html\">Attitude</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#toLatLon\">toLatLon()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.cartesianBase.CartesianBase-class.html\">CartesianBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#toStr\">toStr()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.nvectorBase.NvectorBase-class.html\">NvectorBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.Attitude4Tuple-class.html#tyr3d\">tyr3d</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.Attitude4Tuple-class.html\">Attitude4Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.css.Css-class.html#toLatLon\">toLatLon()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.css.Css-class.html\">Css</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.osgr.Osgr-class.html#toStr\">toStr()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.osgr.Osgr-class.html\">Osgr</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltp-module.html#tyr3d\">tyr3d()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltp-module.html\">pygeodesy.ltp</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ecef.Ecef9Tuple-class.html#toLatLon\">toLatLon()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ecef.Ecef9Tuple-class.html\">Ecef9Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.points.LatLon_-class.html#toStr\">toStr()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.points.LatLon_-class.html\">LatLon_</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.datums.Transform-class.html#tz\">tz</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.datums.Transform-class.html\">Transform</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#toLatLon\">toLatLon()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html\">CartesianEllipsoidalBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb.bases.RhumbBase-class.html#toStr\">toStr()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb.bases.RhumbBase-class.html\">RhumbBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\">&nbsp;</td>\n</tr>\n</table>\n</td></tr>\n</table>\n<br /><br /><!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th bgcolor=\"#70b0f0\" class=\"navbar-select\"\n          >&nbsp;&nbsp;&nbsp;Indices&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:16 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/identifier-index-U.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>Identifier Index</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th bgcolor=\"#70b0f0\" class=\"navbar-select\"\n          >&nbsp;&nbsp;&nbsp;Indices&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">&nbsp;</td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"identifier-index-U.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<center><b>[\n <a href=\"identifier-index.html\">Identifiers</a>\n| <a href=\"term-index.html\">Term Definitions</a>\n]</b></center><br />\n<table border=\"0\" width=\"100%\">\n<tr valign=\"bottom\"><td>\n<h1 class=\"epydoc\">Identifier Index</h1>\n</td><td>\n[\n <a href=\"identifier-index-A.html\">A</a>\n <a href=\"identifier-index-B.html\">B</a>\n <a href=\"identifier-index-C.html\">C</a>\n <a href=\"identifier-index-D.html\">D</a>\n <a href=\"identifier-index-E.html\">E</a>\n <a href=\"identifier-index-F.html\">F</a>\n <a href=\"identifier-index-G.html\">G</a>\n <a href=\"identifier-index-H.html\">H</a>\n <a href=\"identifier-index-I.html\">I</a>\n <a href=\"identifier-index-J.html\">J</a>\n <a href=\"identifier-index-K.html\">K</a>\n <a href=\"identifier-index-L.html\">L</a>\n <a href=\"identifier-index-M.html\">M</a>\n <a href=\"identifier-index-N.html\">N</a>\n <a href=\"identifier-index-O.html\">O</a>\n <a href=\"identifier-index-P.html\">P</a>\n <a href=\"identifier-index-Q.html\">Q</a>\n <a href=\"identifier-index-R.html\">R</a>\n <a href=\"identifier-index-S.html\">S</a>\n <a href=\"identifier-index-T.html\">T</a>\n <a href=\"identifier-index-U.html\">U</a>\n <a href=\"identifier-index-V.html\">V</a>\n <a href=\"identifier-index-W.html\">W</a>\n <a href=\"identifier-index-X.html\">X</a>\n <a href=\"identifier-index-Y.html\">Y</a>\n <a href=\"identifier-index-Z.html\">Z</a>\n <a href=\"identifier-index-_.html\">_</a>\n]\n</td></table>\n<table border=\"0\" width=\"100%\">\n<tr valign=\"top\"><td valign=\"top\" width=\"1%\"><h2 class=\"epydoc\"><a name=\"U\">U</a></h2></td>\n<td valign=\"top\">\n<table class=\"link-index\" width=\"100%\" border=\"1\">\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geoids._GeoidBase-class.html#u2B\">u2B</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geoids._GeoidBase-class.html\">_GeoidBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utily-module.html#unrollPI\">unrollPI()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utily-module.html\">pygeodesy.utily</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.epsg.Epsg-class.html#utmups\">utmups</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.epsg.Epsg-class.html\">Epsg</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltp.ChLV-class.html#unfalse2\">unfalse2()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltp.ChLV-class.html\">ChLV</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ecef.EcefMatrix-class.html#unrotate\">unrotate()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ecef.EcefMatrix-class.html\">EcefMatrix</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utmups-module.html\">utmups</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.ChLVEN2Tuple-class.html#unfalse2\">unfalse2()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.ChLVEN2Tuple-class.html\">ChLVEN2Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.functions-module.html#unsign0\">unsign0()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.functions-module.html\" onclick=\"show_private();\">pygeodesy.deprecated.functions</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utmups-module.html#UtmUps\">UtmUps()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utmups-module.html\">pygeodesy.utmups</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.ChLVyx2Tuple-class.html#unfalse2\">unfalse2()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.ChLVyx2Tuple-class.html\">ChLVyx2Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.basics-module.html#unsigned0\">unsigned0()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.basics-module.html\">pygeodesy.basics</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.UtmUps2Tuple-class.html\">UtmUps2Tuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples-module.html\">pygeodesy.namedTuples</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.angles.Ang-class.html#unit\">unit</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.angles.Ang-class.html\">Ang</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.functions-module.html#unStr\">unStr()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.functions-module.html\" onclick=\"show_private();\">pygeodesy.deprecated.functions</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.classes.UtmUps4Tuple-class.html\">UtmUps4Tuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.classes-module.html\" onclick=\"show_private();\">pygeodesy.deprecated.classes</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalNvector.Nvector-class.html#unit\">unit()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalNvector.Nvector-class.html\">Nvector</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.streprs-module.html#unstr\">unstr()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.streprs-module.html\">pygeodesy.streprs</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.UtmUps5Tuple-class.html\">UtmUps5Tuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples-module.html\">pygeodesy.namedTuples</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#unit\">unit()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.nvectorBase.NvectorBase-class.html\">NvectorBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.Aer-class.html#up\">up</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.Aer-class.html\">Aer</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.UtmUps8Tuple-class.html\">UtmUps8Tuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples-module.html\">pygeodesy.namedTuples</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#unit\">unit()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">Vector3dBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.Local9Tuple-class.html#up\">up</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.Local9Tuple-class.html\">Local9Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utmupsBase-module.html\">utmupsBase</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.errors.UnitError-class.html\">UnitError</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.errors-module.html\">pygeodesy.errors</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.Ned-class.html#up\">up</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.Ned-class.html\">Ned</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html\">UtmUpsBase</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utmupsBase-module.html\">pygeodesy.utmupsBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.frechet.Frechet-class.html#units\">units</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.frechet.Frechet-class.html\">Frechet</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.XyzLocal-class.html#up\">up</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.XyzLocal-class.html\">XyzLocal</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utmups.UTMUPSError-class.html\">UTMUPSError</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utmups-module.html\">pygeodesy.utmups</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.hausdorff.Hausdorff-class.html#units\">units</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.hausdorff.Hausdorff-class.html\">Hausdorff</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geoids._GeoidBase-class.html#upperleft\">upperleft()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geoids._GeoidBase-class.html\">_GeoidBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.UtmUpsLatLon5Tuple-class.html\">UtmUpsLatLon5Tuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples-module.html\">pygeodesy.namedTuples</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.units-module.html\">units</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geoids._GeoidBase-class.html#upperright\">upperright()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geoids._GeoidBase-class.html\">_GeoidBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.epsg.Epsg-class.html#utmupsStr\">utmupsStr()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.epsg.Epsg-class.html\">Epsg</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.unitsBase._NamedUnit-class.html#units\">units</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.unitsBase._NamedUnit-class.html\">_NamedUnit</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ups-module.html\">ups</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utmups-module.html#utmupsValidate\">utmupsValidate()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utmups-module.html\">pygeodesy.utmups</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.named._NamedTuple-class.html#units\">units()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.named._NamedTuple-class.html\">_NamedTuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ups.Ups-class.html\">Ups</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ups-module.html\">pygeodesy.ups</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utmups-module.html#utmupsValidateOK\">utmupsValidateOK()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utmups-module.html\">pygeodesy.utmups</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.unitsBase-module.html\">unitsBase</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ups.UPSError-class.html\">UPSError</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ups-module.html\">pygeodesy.ups</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utmups-module.html#utmupsZoneBand5\">utmupsZoneBand5()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utmups-module.html\">pygeodesy.utmups</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#unOrdered\">unOrdered</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html\">_UnOrderedTriaxialBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ups-module.html#upsZoneBand5\">upsZoneBand5()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ups-module.html\">pygeodesy.ups</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.functions-module.html#utmZoneBand2\">utmZoneBand2()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.functions-module.html\" onclick=\"show_private();\">pygeodesy.deprecated.functions</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.named._NamedEnum-class.html#unregister\">unregister()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.named._NamedEnum-class.html\">_NamedEnum</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utily-module.html\">utily</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utm-module.html#utmZoneBand5\">utmZoneBand5()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utm-module.html\">pygeodesy.utm</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.named._NamedEnumItem-class.html#unregister\">unregister()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.named._NamedEnumItem-class.html\">_NamedEnumItem</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utm-module.html\">utm</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.Uvw-class.html\">Uvw</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples-module.html\">pygeodesy.ltpTuples</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.solveBase._SolveBase-class.html#unroll\">unroll</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.solveBase._SolveBase-class.html\">_SolveBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utm.Utm-class.html\">Utm</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utm-module.html\">pygeodesy.utm</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.Uvw-class.html#uvw\">uvw</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.Uvw-class.html\">Uvw</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utily-module.html#unroll180\">unroll180()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utily-module.html\">pygeodesy.utily</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utm.UTMError-class.html\">UTMError</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utm-module.html\">pygeodesy.utm</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.Uvw3Tuple-class.html\">Uvw3Tuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples-module.html\">pygeodesy.ltpTuples</a>)</span></td>\n</tr>\n</table>\n</td></tr>\n</table>\n<br /><br /><!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th bgcolor=\"#70b0f0\" class=\"navbar-select\"\n          >&nbsp;&nbsp;&nbsp;Indices&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:16 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/identifier-index-V.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>Identifier Index</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th bgcolor=\"#70b0f0\" class=\"navbar-select\"\n          >&nbsp;&nbsp;&nbsp;Indices&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">&nbsp;</td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"identifier-index-V.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<center><b>[\n <a href=\"identifier-index.html\">Identifiers</a>\n| <a href=\"term-index.html\">Term Definitions</a>\n]</b></center><br />\n<table border=\"0\" width=\"100%\">\n<tr valign=\"bottom\"><td>\n<h1 class=\"epydoc\">Identifier Index</h1>\n</td><td>\n[\n <a href=\"identifier-index-A.html\">A</a>\n <a href=\"identifier-index-B.html\">B</a>\n <a href=\"identifier-index-C.html\">C</a>\n <a href=\"identifier-index-D.html\">D</a>\n <a href=\"identifier-index-E.html\">E</a>\n <a href=\"identifier-index-F.html\">F</a>\n <a href=\"identifier-index-G.html\">G</a>\n <a href=\"identifier-index-H.html\">H</a>\n <a href=\"identifier-index-I.html\">I</a>\n <a href=\"identifier-index-J.html\">J</a>\n <a href=\"identifier-index-K.html\">K</a>\n <a href=\"identifier-index-L.html\">L</a>\n <a href=\"identifier-index-M.html\">M</a>\n <a href=\"identifier-index-N.html\">N</a>\n <a href=\"identifier-index-O.html\">O</a>\n <a href=\"identifier-index-P.html\">P</a>\n <a href=\"identifier-index-Q.html\">Q</a>\n <a href=\"identifier-index-R.html\">R</a>\n <a href=\"identifier-index-S.html\">S</a>\n <a href=\"identifier-index-T.html\">T</a>\n <a href=\"identifier-index-U.html\">U</a>\n <a href=\"identifier-index-V.html\">V</a>\n <a href=\"identifier-index-W.html\">W</a>\n <a href=\"identifier-index-X.html\">X</a>\n <a href=\"identifier-index-Y.html\">Y</a>\n <a href=\"identifier-index-Z.html\">Z</a>\n <a href=\"identifier-index-_.html\">_</a>\n]\n</td></table>\n<table border=\"0\" width=\"100%\">\n<tr valign=\"top\"><td valign=\"top\" width=\"1%\"><h2 class=\"epydoc\"><a name=\"V\">V</a></h2></td>\n<td valign=\"top\">\n<table class=\"link-index\" width=\"100%\" border=\"1\">\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb.solve-module.html#v\">v</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb.solve-module.html\">pygeodesy.rhumb.solve</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.Vector3Tuple-class.html\">Vector3Tuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples-module.html\">pygeodesy.namedTuples</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalVincenty.VincentyError-class.html\">VincentyError</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalVincenty-module.html\">pygeodesy.ellipsoidalVincenty</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.named._NamedEnum-class.html#values\">values()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.named._NamedEnum-class.html\">_NamedEnum</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.Vector4Tuple-class.html\">Vector4Tuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples-module.html\">pygeodesy.namedTuples</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.formy-module.html#vincentys\">vincentys()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.formy-module.html\">pygeodesy.formy</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.bases.LLK-class.html#values\">values()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.bases.LLK-class.html\">LLK</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.errors.VectorError-class.html\">VectorError</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.errors-module.html\">pygeodesy.errors</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.formy-module.html#vincentys_\">vincentys_()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.formy-module.html\">pygeodesy.formy</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector2d-module.html\">vector2d</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.trf.TransformXform-class.html#velocities\">velocities()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.trf.TransformXform-class.html\">TransformXform</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geohash-module.html#vincentys_\">vincentys_()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geohash-module.html\">pygeodesy.geohash</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.Vector2Tuple-class.html\">Vector2Tuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples-module.html\">pygeodesy.namedTuples</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#verbose\">verbose</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html\">GeodesicAreaExact</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geohash.Geohash-class.html#vincentysTo\">vincentysTo()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geohash.Geohash-class.html\">Geohash</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector3d-module.html\">vector3d</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#verbose\">verbose</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.solveBase._SolveCapsBase-class.html\">_SolveCapsBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#vincentysTo\">vincentysTo()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">LatLonBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector3d.Vector3d-class.html\">Vector3d</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector3d-module.html\">pygeodesy.vector3d</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#version\">version</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.solveBase._SolveCapsBase-class.html\">_SolveCapsBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#volume\">volume</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector3dBase-module.html\">vector3dBase</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy-module.html#version\">version</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#volume\">volume</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html\">_UnOrderedTriaxialBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">Vector3dBase</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector3dBase-module.html\">pygeodesy.vector3dBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltp.Frustum-class.html#vfov\">vfov</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltp.Frustum-class.html\">Frustum</a>)</span></td>\n<td width=\"33%\" class=\"link-index\">&nbsp;</td>\n</tr>\n</table>\n</td></tr>\n</table>\n<br /><br /><!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th bgcolor=\"#70b0f0\" class=\"navbar-select\"\n          >&nbsp;&nbsp;&nbsp;Indices&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:16 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/identifier-index-W.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>Identifier Index</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th bgcolor=\"#70b0f0\" class=\"navbar-select\"\n          >&nbsp;&nbsp;&nbsp;Indices&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">&nbsp;</td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"identifier-index-W.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<center><b>[\n <a href=\"identifier-index.html\">Identifiers</a>\n| <a href=\"term-index.html\">Term Definitions</a>\n]</b></center><br />\n<table border=\"0\" width=\"100%\">\n<tr valign=\"bottom\"><td>\n<h1 class=\"epydoc\">Identifier Index</h1>\n</td><td>\n[\n <a href=\"identifier-index-A.html\">A</a>\n <a href=\"identifier-index-B.html\">B</a>\n <a href=\"identifier-index-C.html\">C</a>\n <a href=\"identifier-index-D.html\">D</a>\n <a href=\"identifier-index-E.html\">E</a>\n <a href=\"identifier-index-F.html\">F</a>\n <a href=\"identifier-index-G.html\">G</a>\n <a href=\"identifier-index-H.html\">H</a>\n <a href=\"identifier-index-I.html\">I</a>\n <a href=\"identifier-index-J.html\">J</a>\n <a href=\"identifier-index-K.html\">K</a>\n <a href=\"identifier-index-L.html\">L</a>\n <a href=\"identifier-index-M.html\">M</a>\n <a href=\"identifier-index-N.html\">N</a>\n <a href=\"identifier-index-O.html\">O</a>\n <a href=\"identifier-index-P.html\">P</a>\n <a href=\"identifier-index-Q.html\">Q</a>\n <a href=\"identifier-index-R.html\">R</a>\n <a href=\"identifier-index-S.html\">S</a>\n <a href=\"identifier-index-T.html\">T</a>\n <a href=\"identifier-index-U.html\">U</a>\n <a href=\"identifier-index-V.html\">V</a>\n <a href=\"identifier-index-W.html\">W</a>\n <a href=\"identifier-index-X.html\">X</a>\n <a href=\"identifier-index-Y.html\">Y</a>\n <a href=\"identifier-index-Z.html\">Z</a>\n <a href=\"identifier-index-_.html\">_</a>\n]\n</td></table>\n<table border=\"0\" width=\"100%\">\n<tr valign=\"top\"><td valign=\"top\" width=\"1%\"><h2 class=\"epydoc\"><a name=\"W\">W</a></h2></td>\n<td valign=\"top\">\n<table class=\"link-index\" width=\"100%\" border=\"1\">\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geohash.Geohash-class.html#W\">W</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geohash.Geohash-class.html\">Geohash</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.webmercator.Wm-class.html\">Wm</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.webmercator-module.html\">pygeodesy.webmercator</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utily-module.html#wrap90\">wrap90()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utily-module.html\">pygeodesy.utily</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.props.DeprecationWarnings-class.html#Warnings\">Warnings</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.props.DeprecationWarnings-class.html\">DeprecationWarnings</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.frechet.Frechet-class.html#wrap\">wrap</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.frechet.Frechet-class.html\">Frechet</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utily-module.html#wrap_normal\">wrap_normal()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utily-module.html\">pygeodesy.utily</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.webmercator-module.html\">webmercator</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.hausdorff.Hausdorff-class.html#wrap\">wrap</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.hausdorff.Hausdorff-class.html\">Hausdorff</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utily-module.html#wrapPI\">wrapPI()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utily-module.html\">pygeodesy.utily</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.webmercator.WebMercatorError-class.html\">WebMercatorError</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.webmercator-module.html\">pygeodesy.webmercator</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.heights._HeightIDW-class.html#wrap\">wrap</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.heights._HeightIDW-class.html\">_HeightIDW</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utily-module.html#wrapPI2\">wrapPI2()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utily-module.html\">pygeodesy.utily</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.wgrs-module.html\">wgrs</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.heights._HeightNamed-class.html#wrap\">wrap</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.heights._HeightNamed-class.html\">_HeightNamed</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utily-module.html#wrapPI_2\">wrapPI_2()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utily-module.html\">pygeodesy.utily</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.wgrs.WGRSError-class.html\">WGRSError</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.wgrs-module.html\">pygeodesy.wgrs</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utily-module.html#wrap180\">wrap180()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utily-module.html\">pygeodesy.utily</a>)</span></td>\n<td width=\"33%\" class=\"link-index\">&nbsp;</td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.resections-module.html#wildberger3\">wildberger3()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.resections-module.html\">pygeodesy.resections</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utily-module.html#wrap360\">wrap360()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utily-module.html\">pygeodesy.utily</a>)</span></td>\n<td width=\"33%\" class=\"link-index\">&nbsp;</td>\n</tr>\n</table>\n</td></tr>\n</table>\n<br /><br /><!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th bgcolor=\"#70b0f0\" class=\"navbar-select\"\n          >&nbsp;&nbsp;&nbsp;Indices&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:16 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/identifier-index-X.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>Identifier Index</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th bgcolor=\"#70b0f0\" class=\"navbar-select\"\n          >&nbsp;&nbsp;&nbsp;Indices&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">&nbsp;</td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"identifier-index-X.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<center><b>[\n <a href=\"identifier-index.html\">Identifiers</a>\n| <a href=\"term-index.html\">Term Definitions</a>\n]</b></center><br />\n<table border=\"0\" width=\"100%\">\n<tr valign=\"bottom\"><td>\n<h1 class=\"epydoc\">Identifier Index</h1>\n</td><td>\n[\n <a href=\"identifier-index-A.html\">A</a>\n <a href=\"identifier-index-B.html\">B</a>\n <a href=\"identifier-index-C.html\">C</a>\n <a href=\"identifier-index-D.html\">D</a>\n <a href=\"identifier-index-E.html\">E</a>\n <a href=\"identifier-index-F.html\">F</a>\n <a href=\"identifier-index-G.html\">G</a>\n <a href=\"identifier-index-H.html\">H</a>\n <a href=\"identifier-index-I.html\">I</a>\n <a href=\"identifier-index-J.html\">J</a>\n <a href=\"identifier-index-K.html\">K</a>\n <a href=\"identifier-index-L.html\">L</a>\n <a href=\"identifier-index-M.html\">M</a>\n <a href=\"identifier-index-N.html\">N</a>\n <a href=\"identifier-index-O.html\">O</a>\n <a href=\"identifier-index-P.html\">P</a>\n <a href=\"identifier-index-Q.html\">Q</a>\n <a href=\"identifier-index-R.html\">R</a>\n <a href=\"identifier-index-S.html\">S</a>\n <a href=\"identifier-index-T.html\">T</a>\n <a href=\"identifier-index-U.html\">U</a>\n <a href=\"identifier-index-V.html\">V</a>\n <a href=\"identifier-index-W.html\">W</a>\n <a href=\"identifier-index-X.html\">X</a>\n <a href=\"identifier-index-Y.html\">Y</a>\n <a href=\"identifier-index-Z.html\">Z</a>\n <a href=\"identifier-index-_.html\">_</a>\n]\n</td></table>\n<table border=\"0\" width=\"100%\">\n<tr valign=\"top\"><td valign=\"top\" width=\"1%\"><h2 class=\"epydoc\"><a name=\"X\">X</a></h2></td>\n<td valign=\"top\">\n<table class=\"link-index\" width=\"100%\" border=\"1\">\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#x\">x</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html\">AuxAngle</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#xTM\">xTM</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html\">RhumbLineBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.Vector4Tuple-class.html#xyz3\">xyz3</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples.Vector4Tuple-class.html\">Vector4Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fstats.Flinear-class.html#x\">x</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fstats.Flinear-class.html\">Flinear</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.triaxial5.Conformal-class.html#xy\">xy()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.triaxial5.Conformal-class.html\">Conformal</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#xyz3\">xyz3</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">Vector3dBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesici-module.html#x\">x</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesici-module.html\">pygeodesy.geodesici</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.conformal3.Conformal3-class.html#xyQ2\">xyQ2</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.conformal3.Conformal3-class.html\">Conformal3</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.Aer-class.html#xyz4\">xyz4</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.Aer-class.html\">Aer</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.Aer-class.html#x\">x</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.Aer-class.html\">Aer</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.triaxial5.Conformal-class.html#xyQ2\">xyQ2</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.triaxial5.Conformal-class.html\">Conformal</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.Ned-class.html#xyz4\">xyz4</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.Ned-class.html\">Ned</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.ChLV9Tuple-class.html#x\">x</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.ChLV9Tuple-class.html\">ChLV9Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.triaxial5.Conformal-class.html#xyQR2\">xyQR2</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.triaxial5.Conformal-class.html\">Conformal</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.Xyz4Tuple-class.html#xyz4\">xyz4</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.Xyz4Tuple-class.html\">Xyz4Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.Ned-class.html#x\">x</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.Ned-class.html\">Ned</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.triaxial5.Conformal-class.html#xyR2\">xyR2()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.triaxial5.Conformal-class.html\">Conformal</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.XyzLocal-class.html#xyz4\">xyz4</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.XyzLocal-class.html\">XyzLocal</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#x\">x</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">Vector3dBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.triaxial5.Conformal-class.html#xyR2_\">xyR2_()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.triaxial5.Conformal-class.html\">Conformal</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples._AbcBase-class.html#xyz4\">xyz4</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples._AbcBase-class.html\">_AbcBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.webmercator.Wm-class.html#x\">x</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.webmercator.Wm-class.html\">Wm</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ecef.Ecef9Tuple-class.html#xyz\">xyz</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ecef.Ecef9Tuple-class.html\">Ecef9Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.Xyz4Tuple-class.html\">Xyz4Tuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples-module.html\">pygeodesy.ltpTuples</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.triaxial5.Conformal-class.html#x\">x()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.triaxial5.Conformal-class.html\">Conformal</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#xyz\">xyz</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">LatLonBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ecef.Ecef9Tuple-class.html#xyzh\">xyzh</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ecef.Ecef9Tuple-class.html\">Ecef9Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#x2y2z2\">x2y2z2</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">Vector3dBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.Local9Tuple-class.html#xyz\">xyz</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.Local9Tuple-class.html\">Local9Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#xyzh\">xyzh</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">LatLonBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#x2y2z23\">x2y2z23</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">Vector3dBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples._AbcBase-class.html#xyz\">xyz</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples._AbcBase-class.html\">_AbcBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#xyzh\">xyzh</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.nvectorBase.NvectorBase-class.html\">NvectorBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.ChLV9Tuple-class.html#x_LV03\">x_LV03</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.ChLV9Tuple-class.html\">ChLV9Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.Vector2Tuple-class.html#xyz\">xyz</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples.Vector2Tuple-class.html\">Vector2Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.Aer4Tuple-class.html#xyzLocal\">xyzLocal</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.Aer4Tuple-class.html\">Aer4Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesici.XDict-class.html\">XDict</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesici-module.html\">pygeodesy.geodesici</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.Vector3Tuple-class.html#xyz\">xyz</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples.Vector3Tuple-class.html\">Vector3Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.Enu-class.html#xyzLocal\">xyzLocal</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.Enu-class.html\">Enu</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.classes.XDist-class.html\">XDist</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.classes-module.html\" onclick=\"show_private();\">pygeodesy.deprecated.classes</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.Vector4Tuple-class.html#xyz\">xyz</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples.Vector4Tuple-class.html\">Vector4Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.Enu4Tuple-class.html#xyzLocal\">xyzLocal</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.Enu4Tuple-class.html\">Enu4Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.trf.TRFXform-class.html#xform\">xform</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.trf.TRFXform-class.html\">TRFXform</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#xyz\">xyz</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">Vector3dBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.Local9Tuple-class.html#xyzLocal\">xyzLocal</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.Local9Tuple-class.html\">Local9Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.trf.TransformXform-class.html#Xform\">Xform</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.trf.TransformXform-class.html\">TransformXform</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.cartesianBase-module.html#xyz2rtp\">xyz2rtp()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.cartesianBase-module.html\">pygeodesy.cartesianBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.Ned4Tuple-class.html#xyzLocal\">xyzLocal</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.Ned4Tuple-class.html\">Ned4Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.trf.RefFrame-class.html#Xform\">Xform()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.trf.RefFrame-class.html\">RefFrame</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.cartesianBase-module.html#xyz2rtp_\">xyz2rtp_()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.cartesianBase-module.html\">pygeodesy.cartesianBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.Xyz4Tuple-class.html#xyzLocal\">xyzLocal</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.Xyz4Tuple-class.html\">Xyz4Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.trf.RefFrame-class.html#Xforms\">Xforms()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.trf.RefFrame-class.html\">RefFrame</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#xyz3\">xyz3</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">LatLonBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.XyzLocal-class.html\">XyzLocal</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples-module.html\">pygeodesy.ltpTuples</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.triaxial5.Conformal-class.html#xR\">xR()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.triaxial5.Conformal-class.html\">Conformal</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples._AbcBase-class.html#xyz3\">xyz3</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples._AbcBase-class.html\">_AbcBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.XyzLocal-class.html#xyzLocal\">xyzLocal</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.XyzLocal-class.html\">XyzLocal</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.triaxial5.Conformal-class.html#xR_\">xR_()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.triaxial5.Conformal-class.html\">Conformal</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.Vector2Tuple-class.html#xyz3\">xyz3</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples.Vector2Tuple-class.html\">Vector2Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples._AbcBase-class.html#xyzLocal\">xyzLocal</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples._AbcBase-class.html\">_AbcBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.booleans._CompositeGH-class.html#xtend\">xtend</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.booleans._CompositeGH-class.html\">_CompositeGH</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.Vector3Tuple-class.html#xyz3\">xyz3</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples.Vector3Tuple-class.html\">Vector3Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.Footprint5Tuple-class.html#xyzLocal5\">xyzLocal5()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.Footprint5Tuple-class.html\">Footprint5Tuple</a>)</span></td>\n</tr>\n</table>\n</td></tr>\n</table>\n<br /><br /><!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th bgcolor=\"#70b0f0\" class=\"navbar-select\"\n          >&nbsp;&nbsp;&nbsp;Indices&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:16 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/identifier-index-Y.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>Identifier Index</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th bgcolor=\"#70b0f0\" class=\"navbar-select\"\n          >&nbsp;&nbsp;&nbsp;Indices&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">&nbsp;</td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"identifier-index-Y.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<center><b>[\n <a href=\"identifier-index.html\">Identifiers</a>\n| <a href=\"term-index.html\">Term Definitions</a>\n]</b></center><br />\n<table border=\"0\" width=\"100%\">\n<tr valign=\"bottom\"><td>\n<h1 class=\"epydoc\">Identifier Index</h1>\n</td><td>\n[\n <a href=\"identifier-index-A.html\">A</a>\n <a href=\"identifier-index-B.html\">B</a>\n <a href=\"identifier-index-C.html\">C</a>\n <a href=\"identifier-index-D.html\">D</a>\n <a href=\"identifier-index-E.html\">E</a>\n <a href=\"identifier-index-F.html\">F</a>\n <a href=\"identifier-index-G.html\">G</a>\n <a href=\"identifier-index-H.html\">H</a>\n <a href=\"identifier-index-I.html\">I</a>\n <a href=\"identifier-index-J.html\">J</a>\n <a href=\"identifier-index-K.html\">K</a>\n <a href=\"identifier-index-L.html\">L</a>\n <a href=\"identifier-index-M.html\">M</a>\n <a href=\"identifier-index-N.html\">N</a>\n <a href=\"identifier-index-O.html\">O</a>\n <a href=\"identifier-index-P.html\">P</a>\n <a href=\"identifier-index-Q.html\">Q</a>\n <a href=\"identifier-index-R.html\">R</a>\n <a href=\"identifier-index-S.html\">S</a>\n <a href=\"identifier-index-T.html\">T</a>\n <a href=\"identifier-index-U.html\">U</a>\n <a href=\"identifier-index-V.html\">V</a>\n <a href=\"identifier-index-W.html\">W</a>\n <a href=\"identifier-index-X.html\">X</a>\n <a href=\"identifier-index-Y.html\">Y</a>\n <a href=\"identifier-index-Z.html\">Z</a>\n <a href=\"identifier-index-_.html\">_</a>\n]\n</td></table>\n<table border=\"0\" width=\"100%\">\n<tr valign=\"top\"><td valign=\"top\" width=\"1%\"><h2 class=\"epydoc\"><a name=\"Y\">Y</a></h2></td>\n<td valign=\"top\">\n<table class=\"link-index\" width=\"100%\" border=\"1\">\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#y\">y</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html\">AuxAngle</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#y\">y</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">Vector3dBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltp.Attitude-class.html#yaw\">yaw</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltp.Attitude-class.html\">Attitude</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fstats.Flinear-class.html#y\">y</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fstats.Flinear-class.html\">Flinear</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.webmercator.Wm-class.html#y\">y</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.webmercator.Wm-class.html\">Wm</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.triaxial5.Conformal-class.html#yR\">yR()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.triaxial5.Conformal-class.html\">Conformal</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.Aer-class.html#y\">y</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.Aer-class.html\">Aer</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.triaxial5.Conformal-class.html#y\">y()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.triaxial5.Conformal-class.html\">Conformal</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.triaxial5.Conformal-class.html#yR_\">yR_()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.triaxial5.Conformal-class.html\">Conformal</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.ChLV9Tuple-class.html#y\">y</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.ChLV9Tuple-class.html\">ChLV9Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.ChLV9Tuple-class.html#y_LV03\">y_LV03</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.ChLV9Tuple-class.html\">ChLV9Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.ChLV9Tuple-class.html#YX\">YX</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.ChLV9Tuple-class.html\">ChLV9Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.Ned-class.html#y\">y</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.Ned-class.html\">Ned</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utily-module.html#yard2m\">yard2m()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utily-module.html\">pygeodesy.utily</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.ChLV9Tuple-class.html#yx2_LV03\">yx2_LV03</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.ChLV9Tuple-class.html\">ChLV9Tuple</a>)</span></td>\n</tr>\n</table>\n</td></tr>\n</table>\n<br /><br /><!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th bgcolor=\"#70b0f0\" class=\"navbar-select\"\n          >&nbsp;&nbsp;&nbsp;Indices&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:16 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/identifier-index-Z.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>Identifier Index</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th bgcolor=\"#70b0f0\" class=\"navbar-select\"\n          >&nbsp;&nbsp;&nbsp;Indices&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">&nbsp;</td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"identifier-index-Z.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<center><b>[\n <a href=\"identifier-index.html\">Identifiers</a>\n| <a href=\"term-index.html\">Term Definitions</a>\n]</b></center><br />\n<table border=\"0\" width=\"100%\">\n<tr valign=\"bottom\"><td>\n<h1 class=\"epydoc\">Identifier Index</h1>\n</td><td>\n[\n <a href=\"identifier-index-A.html\">A</a>\n <a href=\"identifier-index-B.html\">B</a>\n <a href=\"identifier-index-C.html\">C</a>\n <a href=\"identifier-index-D.html\">D</a>\n <a href=\"identifier-index-E.html\">E</a>\n <a href=\"identifier-index-F.html\">F</a>\n <a href=\"identifier-index-G.html\">G</a>\n <a href=\"identifier-index-H.html\">H</a>\n <a href=\"identifier-index-I.html\">I</a>\n <a href=\"identifier-index-J.html\">J</a>\n <a href=\"identifier-index-K.html\">K</a>\n <a href=\"identifier-index-L.html\">L</a>\n <a href=\"identifier-index-M.html\">M</a>\n <a href=\"identifier-index-N.html\">N</a>\n <a href=\"identifier-index-O.html\">O</a>\n <a href=\"identifier-index-P.html\">P</a>\n <a href=\"identifier-index-Q.html\">Q</a>\n <a href=\"identifier-index-R.html\">R</a>\n <a href=\"identifier-index-S.html\">S</a>\n <a href=\"identifier-index-T.html\">T</a>\n <a href=\"identifier-index-U.html\">U</a>\n <a href=\"identifier-index-V.html\">V</a>\n <a href=\"identifier-index-W.html\">W</a>\n <a href=\"identifier-index-X.html\">X</a>\n <a href=\"identifier-index-Y.html\">Y</a>\n <a href=\"identifier-index-Z.html\">Z</a>\n <a href=\"identifier-index-_.html\">_</a>\n]\n</td></table>\n<table border=\"0\" width=\"100%\">\n<tr valign=\"top\"><td valign=\"top\" width=\"1%\"><h2 class=\"epydoc\"><a name=\"Z\">Z</a></h2></td>\n<td valign=\"top\">\n<table class=\"link-index\" width=\"100%\" border=\"1\">\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.Aer-class.html#z\">z</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.Aer-class.html\">Aer</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fmath-module.html#zcrt\">zcrt()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fmath-module.html\">pygeodesy.fmath</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ups.Ups-class.html#zone\">zone</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ups.Ups-class.html\">Ups</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.ChLV9Tuple-class.html#z\">z</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.ChLV9Tuple-class.html\">ChLV9Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.epsg.Epsg-class.html#zone\">zone</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.epsg.Epsg-class.html\">Epsg</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utm.Utm-class.html#zone\">zone</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utm.Utm-class.html\">Utm</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.Ned-class.html#z\">z</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.Ned-class.html\">Ned</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.mgrs.Mgrs-class.html#zone\">zone</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.mgrs.Mgrs-class.html\">Mgrs</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.mgrs.Mgrs-class.html#zoneB\">zoneB</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.mgrs.Mgrs-class.html\">Mgrs</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#z\">z</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">Vector3dBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.units.Zone-class.html\">Zone</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.units-module.html\">pygeodesy.units</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fmath-module.html#zqrt\">zqrt()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fmath-module.html\">pygeodesy.fmath</a>)</span></td>\n</tr>\n</table>\n</td></tr>\n</table>\n<br /><br /><!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th bgcolor=\"#70b0f0\" class=\"navbar-select\"\n          >&nbsp;&nbsp;&nbsp;Indices&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:16 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/identifier-index-_.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>Identifier Index</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th bgcolor=\"#70b0f0\" class=\"navbar-select\"\n          >&nbsp;&nbsp;&nbsp;Indices&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">&nbsp;</td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"identifier-index-_.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<center><b>[\n <a href=\"identifier-index.html\">Identifiers</a>\n| <a href=\"term-index.html\">Term Definitions</a>\n]</b></center><br />\n<table border=\"0\" width=\"100%\">\n<tr valign=\"bottom\"><td>\n<h1 class=\"epydoc\">Identifier Index</h1>\n</td><td>\n[\n <a href=\"identifier-index-A.html\">A</a>\n <a href=\"identifier-index-B.html\">B</a>\n <a href=\"identifier-index-C.html\">C</a>\n <a href=\"identifier-index-D.html\">D</a>\n <a href=\"identifier-index-E.html\">E</a>\n <a href=\"identifier-index-F.html\">F</a>\n <a href=\"identifier-index-G.html\">G</a>\n <a href=\"identifier-index-H.html\">H</a>\n <a href=\"identifier-index-I.html\">I</a>\n <a href=\"identifier-index-J.html\">J</a>\n <a href=\"identifier-index-K.html\">K</a>\n <a href=\"identifier-index-L.html\">L</a>\n <a href=\"identifier-index-M.html\">M</a>\n <a href=\"identifier-index-N.html\">N</a>\n <a href=\"identifier-index-O.html\">O</a>\n <a href=\"identifier-index-P.html\">P</a>\n <a href=\"identifier-index-Q.html\">Q</a>\n <a href=\"identifier-index-R.html\">R</a>\n <a href=\"identifier-index-S.html\">S</a>\n <a href=\"identifier-index-T.html\">T</a>\n <a href=\"identifier-index-U.html\">U</a>\n <a href=\"identifier-index-V.html\">V</a>\n <a href=\"identifier-index-W.html\">W</a>\n <a href=\"identifier-index-X.html\">X</a>\n <a href=\"identifier-index-Y.html\">Y</a>\n <a href=\"identifier-index-Z.html\">Z</a>\n <a href=\"identifier-index-_.html\">_</a>\n]\n</td></table>\n<table border=\"0\" width=\"100%\">\n<tr valign=\"top\"><td valign=\"top\" width=\"1%\"><h2 class=\"epydoc\"><a name=\"_\">_</a></h2></td>\n<td valign=\"top\">\n<table class=\"link-index\" width=\"100%\" border=\"1\">\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.errors-module.html#_\">_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.errors-module.html\">pygeodesy.errors</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__rsub__\">__rsub__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html\">AuxAngle</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.lazily-module.html#_module_\">_module_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.lazily-module.html\">pygeodesy.lazily</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums-module.html#_\">_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums-module.html\">pygeodesy.fsums</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.booleans.BooleanFHP-class.html#__rsub__\">__rsub__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.booleans.BooleanFHP-class.html\">BooleanFHP</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb.ekx.Rhumb-class.html#_mRA\">_mRA</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb.ekx.Rhumb-class.html\">Rhumb</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_0_\">_0_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.booleans.BooleanGH-class.html#__rsub__\">__rsub__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.booleans.BooleanGH-class.html\">BooleanGH</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.named-module.html#_MRO_\">_MRO_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.named-module.html\">pygeodesy.named</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.constants-module.html#_0_0\">_0_0</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.constants-module.html\">pygeodesy.constants</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums.Fsum-class.html#__rsub__\">__rsub__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums.Fsum-class.html\">Fsum</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fstats._FstatsBase-class.html#_Ms\">_Ms</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fstats._FstatsBase-class.html\">_FstatsBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.internals-module.html#_0_0\">_0_0</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.internals-module.html\">pygeodesy.internals</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rsub__\">__rsub__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">Vector3dBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ktm.KTransverseMercator-class.html#_mTM\">_mTM</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ktm.KTransverseMercator-class.html\">KTransverseMercator</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.constants-module.html#_0_0001\">_0_0001</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.constants-module.html\">pygeodesy.constants</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.angles.Ang-class.html#__rtruediv__\">__rtruediv__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.angles.Ang-class.html\">Ang</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb.bases.RhumbBase-class.html#_mTM\">_mTM</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb.bases.RhumbBase-class.html\">RhumbBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.constants-module.html#_0_001\">_0_001</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.constants-module.html\">pygeodesy.constants</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums.Fsum-class.html#__rtruediv__\">__rtruediv__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums.Fsum-class.html\">Fsum</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.etm.ExactTransverseMercator-class.html#_mu\">_mu</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.etm.ExactTransverseMercator-class.html\">ExactTransverseMercator</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.constants-module.html#_0_01\">_0_01</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.constants-module.html\">pygeodesy.constants</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rtruediv__\">__rtruediv__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">Vector3dBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.etm.ExactTransverseMercator-class.html#_mv\">_mv</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.etm.ExactTransverseMercator-class.html\">ExactTransverseMercator</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.constants-module.html#_0_0_1T\">_0_0_1T</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.constants-module.html\">pygeodesy.constants</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.named.ADict-class.html#__setattr__\">__setattr__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.named.ADict-class.html\">ADict</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxDST.AuxDST-class.html#_N\">_N</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats.auxDST.AuxDST-class.html\">AuxDST</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.constants-module.html#_0_0_9T\">_0_0_9T</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.constants-module.html\">pygeodesy.constants</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.named._NamedTuple-class.html#__setattr__\">__setattr__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.named._NamedTuple-class.html\">_NamedTuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fstats._FstatsNamed-class.html#_n\">_n</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fstats._FstatsNamed-class.html\">_FstatsNamed</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.constants-module.html#_0_1\">_0_1</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.constants-module.html\">pygeodesy.constants</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.angles.Ang-class.html#__str__\">__str__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.angles.Ang-class.html\">Ang</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums.Fsum-class.html#_n\">_n</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums.Fsum-class.html\">Fsum</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.constants-module.html#_0_125\">_0_125</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.constants-module.html\">pygeodesy.constants</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__str__\">__str__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html\">AuxAngle</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.lcc.Conic-class.html#_n\">_n</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.lcc.Conic-class.html\">Conic</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.constants-module.html#_0_25\">_0_25</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.constants-module.html\">pygeodesy.constants</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.booleans._CompositeBase-class.html#__str__\">__str__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.booleans._CompositeBase-class.html\">_CompositeBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.lcc.Conic-class.html#_N0\">_N0</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.lcc.Conic-class.html\">Conic</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fmath-module.html#_0_4142\">_0_4142</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fmath-module.html\">pygeodesy.fmath</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.booleans._LatLonBool-class.html#__str__\">__str__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.booleans._LatLonBool-class.html\">_LatLonBool</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.lcc-module.html#_N0_\">_N0_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.lcc-module.html\">pygeodesy.lcc</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.constants-module.html#_0_5\">_0_5</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.constants-module.html\">pygeodesy.constants</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.epsg.Epsg-class.html#__str__\">__str__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.epsg.Epsg-class.html\">Epsg</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.frechet.Frechet-class.html#_n1\">_n1</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.frechet.Frechet-class.html\">Frechet</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.constants-module.html#_0_75\">_0_75</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.constants-module.html\">pygeodesy.constants</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fstats._FstatsNamed-class.html#__str__\">__str__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fstats._FstatsNamed-class.html\">_FstatsNamed</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_N_\">_N_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.booleans-module.html#_0EPS\">_0EPS</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.booleans-module.html\">pygeodesy.booleans</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums.Fsum-class.html#__str__\">__str__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums.Fsum-class.html\">Fsum</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_n_\">_n_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesici-module.html#_0t\">_0t</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesici-module.html\">pygeodesy.geodesici</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geoids._GeoidBase-class.html#__str__\">__str__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geoids._GeoidBase-class.html\">_GeoidBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.constants-module.html#_N_0_0\">_N_0_0</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.constants-module.html\">pygeodesy.constants</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_0to9_\">_0to9_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#__str__\">__str__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">LatLonBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.constants-module.html#_N_0_5\">_N_0_5</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.constants-module.html\">pygeodesy.constants</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.constants-module.html#_1000_0\">_1000_0</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.constants-module.html\">pygeodesy.constants</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.XyzLocal-class.html#__str__\">__str__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.XyzLocal-class.html\">XyzLocal</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.constants-module.html#_N_180_0\">_N_180_0</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.constants-module.html\">pygeodesy.constants</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.constants-module.html#_100_0\">_100_0</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.constants-module.html\">pygeodesy.constants</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.mgrs.Mgrs-class.html#__str__\">__str__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.mgrs.Mgrs-class.html\">Mgrs</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.constants-module.html#_N_1_0\">_N_1_0</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.constants-module.html\">pygeodesy.constants</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.internals-module.html#_100_0\">_100_0</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.internals-module.html\">pygeodesy.internals</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.named.ADict-class.html#__str__\">__str__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.named.ADict-class.html\">ADict</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.constants-module.html#_N_2_0\">_N_2_0</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.constants-module.html\">pygeodesy.constants</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.units-module.html#_100km\">_100km</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.units-module.html\">pygeodesy.units</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.named._Named-class.html#__str__\">__str__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.named._Named-class.html\">_Named</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.constants-module.html#_N_90_0\">_N_90_0</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.constants-module.html\">pygeodesy.constants</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.constants-module.html#_10_0\">_10_0</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.constants-module.html\">pygeodesy.constants</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.named._NamedBase-class.html#__str__\">__str__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.named._NamedBase-class.html\">_NamedBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesici-module.html#_n__\">_n__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesici-module.html\">pygeodesy.geodesici</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.booleans-module.html#_10EPS\">_10EPS</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.booleans-module.html\">pygeodesy.booleans</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.named._NamedEnum-class.html#__str__\">__str__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.named._NamedEnum-class.html\">_NamedEnum</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_N_A_\">_N_A_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.units-module.html#_10um\">_10um</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.units-module.html\">pygeodesy.units</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.named._NamedTuple-class.html#__str__\">__str__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.named._NamedTuple-class.html\">_NamedTuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_n_a_\">_n_a_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.constants-module.html#_16_0\">_16_0</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.constants-module.html\">pygeodesy.constants</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.osgr.Osgr-class.html#__str__\">__str__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.osgr.Osgr-class.html\">Osgr</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesici.Intersectool-class.html#_n_alt\">_n_alt</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesici.Intersectool-class.html\">Intersectool</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.constants-module.html#_180_0\">_180_0</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.constants-module.html\">pygeodesy.constants</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.trf.TRFXform-class.html#__str__\">__str__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.trf.TRFXform-class.html\">TRFXform</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_NAD27_\">_NAD27_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_1_\">_1_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.unitsBase.Float-class.html#__str__\">__str__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.unitsBase.Float-class.html\">Float</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_NAD83_\">_NAD83_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.constants-module.html#_1_0\">_1_0</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.constants-module.html\">pygeodesy.constants</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.unitsBase.Int-class.html#__str__\">__str__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.unitsBase.Int-class.html\">Int</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.trf-module.html#_NAD83cors96_\">_NAD83cors96_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.trf-module.html\">pygeodesy.trf</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.constants-module.html#_1_0_1T\">_1_0_1T</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.constants-module.html\">pygeodesy.constants</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.unitsBase.Str-class.html#__str__\">__str__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.unitsBase.Str-class.html\">Str</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.iters.LatLon2PsxyIter-class.html#_name\">_name</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.iters.LatLon2PsxyIter-class.html\">LatLon2PsxyIter</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesici-module.html#_1_0_1t\">_1_0_1t</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesici-module.html\">pygeodesy.geodesici</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utm.Utm-class.html#__str__\">__str__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utm.Utm-class.html\">Utm</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.iters.PointsIter-class.html#_name\">_name</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.iters.PointsIter-class.html\">PointsIter</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.karney-module.html#_1_16th\">_1_16th</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.karney-module.html\">pygeodesy.karney</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html#__str__\">__str__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html\">UtmUpsBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.iters._BaseIter-class.html#_name\">_name</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.iters._BaseIter-class.html\">_BaseIter</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesici-module.html#_1_1t\">_1_1t</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesici-module.html\">pygeodesy.geodesici</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.angles.Ang-class.html#__sub__\">__sub__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.angles.Ang-class.html\">Ang</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.lcc.Conic-class.html#_name\">_name</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.lcc.Conic-class.html\">Conic</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.constants-module.html#_1_3rd\">_1_3rd</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.constants-module.html\">pygeodesy.constants</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__sub__\">__sub__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html\">AuxAngle</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.named._Named-class.html#_name\">_name</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.named._Named-class.html\">_Named</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.constants-module.html#_1_5\">_1_5</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.constants-module.html\">pygeodesy.constants</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.booleans.BooleanFHP-class.html#__sub__\">__sub__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.booleans.BooleanFHP-class.html\">BooleanFHP</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.named-module.html#_name\">_name</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.named-module.html\">pygeodesy.named</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fmath-module.html#_1_6th\">_1_6th</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fmath-module.html\">pygeodesy.fmath</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.booleans.BooleanGH-class.html#__sub__\">__sub__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.booleans.BooleanGH-class.html\">BooleanGH</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_name_\">_name_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.constants-module.html#_1_75\">_1_75</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.constants-module.html\">pygeodesy.constants</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.booleans._LatLonBool-class.html#__sub__\">__sub__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.booleans._LatLonBool-class.html\">_LatLonBool</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.errors-module.html#_name_value_\">_name_value_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.errors-module.html\">pygeodesy.errors</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.constants-module.html#_1_EPS\">_1_EPS</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.constants-module.html\">pygeodesy.constants</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums.Fsum-class.html#__sub__\">__sub__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums.Fsum-class.html\">Fsum</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.named._Named-class.html\">_Named</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.named-module.html\">pygeodesy.named</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.lcc.Conic-class.html#_1_n\">_1_n</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.lcc.Conic-class.html\">Conic</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.trf.TRFXform-class.html#__sub__\">__sub__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.trf.TRFXform-class.html\">TRFXform</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.named-module.html#_Named_Property_ROs\">_Named_Property_ROs</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.named-module.html\">pygeodesy.named</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.booleans-module.html#_1EPS\">_1EPS</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.booleans-module.html\">pygeodesy.booleans</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.trf.TRFXform7Tuple-class.html#__sub__\">__sub__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.trf.TRFXform7Tuple-class.html\">TRFXform7Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.named._NamedBase-class.html\">_NamedBase</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.named-module.html\">pygeodesy.named</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.units-module.html#_1mm\">_1mm</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.units-module.html\">pygeodesy.units</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__sub__\">__sub__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">Vector3dBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.named._NamedEnum-class.html\">_NamedEnum</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.named-module.html\">pygeodesy.named</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.units-module.html#_1um\">_1um</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.units-module.html\">pygeodesy.units</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.angles.Ang-class.html#__truediv__\">__truediv__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.angles.Ang-class.html\">Ang</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.named._NamedEnumItem-class.html\">_NamedEnumItem</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.named-module.html\">pygeodesy.named</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.units-module.html#_2000km\">_2000km</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.units-module.html\">pygeodesy.units</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums.Fsum-class.html#__truediv__\">__truediv__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums.Fsum-class.html\">Fsum</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.named._NamedTuple-class.html\">_NamedTuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.named-module.html\">pygeodesy.named</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.constants-module.html#_270_0\">_270_0</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.constants-module.html\">pygeodesy.constants</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__truediv__\">__truediv__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">Vector3dBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.unitsBase._NamedUnit-class.html\">_NamedUnit</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.unitsBase-module.html\">pygeodesy.unitsBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.triaxial3-module.html#_27_0\">_27_0</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.triaxial3-module.html\" onclick=\"show_private();\">pygeodesy.triaxials.triaxial3</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__trunc__\">__trunc__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">Vector3dBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.datums-module.html#_Names11\">_Names11</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.datums-module.html\">pygeodesy.datums</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_2_\">_2_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#_a\">_a</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.datums-module.html#_Names7\">_Names7</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.datums-module.html\">pygeodesy.datums</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.constants-module.html#_2_0\">_2_0</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.constants-module.html\">pygeodesy.constants</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.lazily-module.html#_a0\">_a0</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.lazily-module.html\">pygeodesy.lazily</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.albers.Albers7Tuple-class.html#_Names_\">_Names_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.albers.Albers7Tuple-class.html\">Albers7Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.constants-module.html#_2_3rd\">_2_3rd</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.constants-module.html\">pygeodesy.constants</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_a12_\">_a12_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.azimuthal.Azimuthal7Tuple-class.html#_Names_\">_Names_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.azimuthal.Azimuthal7Tuple-class.html\">Azimuthal7Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.karney-module.html#_2_4_\">_2_4_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.karney-module.html\">pygeodesy.karney</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#_a13\">_a13</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html\">_GeodesicLineExact</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.cartesianBase.RadiusThetaPhi3Tuple-class.html#_Names_\">_Names_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.cartesianBase.RadiusThetaPhi3Tuple-class.html\">RadiusThetaPhi3Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.constants-module.html#_2__PI\">_2__PI</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.constants-module.html\">pygeodesy.constants</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodsolve.GeodesicLineSolve-class.html#_a13\">_a13</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodsolve.GeodesicLineSolve-class.html\">GeodesicLineSolve</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.clipy.ClipCS4Tuple-class.html#_Names_\">_Names_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.clipy.ClipCS4Tuple-class.html\">ClipCS4Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums-module.html#_2FACTOR\">_2FACTOR</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums-module.html\">pygeodesy.fsums</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_A_\">_A_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.clipy.ClipFHP4Tuple-class.html#_Names_\">_Names_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.clipy.ClipFHP4Tuple-class.html\">ClipFHP4Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.booleans.LatLonFHP-class.html#_2split\">_2split</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.booleans.LatLonFHP-class.html\">LatLonFHP</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_a_\">_a_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.clipy.ClipGH4Tuple-class.html#_Names_\">_Names_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.clipy.ClipGH4Tuple-class.html\">ClipGH4Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.booleans.LatLonFHP-class.html#_2xing\">_2xing</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.booleans.LatLonFHP-class.html\">LatLonFHP</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.datums-module.html#_a_ellipsoid_\">_a_ellipsoid_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.datums-module.html\">pygeodesy.datums</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.clipy.ClipLB6Tuple-class.html#_Names_\">_Names_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.clipy.ClipLB6Tuple-class.html\">ClipLB6Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.constants-module.html#_32_0\">_32_0</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.constants-module.html\">pygeodesy.constants</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesici-module.html#_aAB_\">_aAB_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesici-module.html\">pygeodesy.geodesici</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.clipy.ClipSH3Tuple-class.html#_Names_\">_Names_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.clipy.ClipSH3Tuple-class.html\">ClipSH3Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.constants-module.html#_3600_0\">_3600_0</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.constants-module.html\">pygeodesy.constants</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.triaxial5.ConformalSphere-class.html#_ab\">_ab</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.triaxial5.ConformalSphere-class.html\">ConformalSphere</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.css.EasNorAziRk4Tuple-class.html#_Names_\">_Names_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.css.EasNorAziRk4Tuple-class.html\">EasNorAziRk4Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.constants-module.html#_360_0\">_360_0</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.constants-module.html\">pygeodesy.constants</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltp.ChLV-class.html#_ab_d\">_ab_d</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltp.ChLV-class.html\">ChLV</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.css.EasNorAziRkEqu6Tuple-class.html#_Names_\">_Names_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.css.EasNorAziRkEqu6Tuple-class.html\">EasNorAziRkEqu6Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.trf-module.html#_366_0\">_366_0</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.trf-module.html\">pygeodesy.trf</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltp.ChLV-class.html#_ab_M\">_ab_M</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltp.ChLV-class.html\">ChLV</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.css.LatLonAziRk4Tuple-class.html#_Names_\">_Names_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.css.LatLonAziRk4Tuple-class.html\">LatLonAziRk4Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_3_\">_3_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltp.ChLV-class.html#_ab_m\">_ab_m</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltp.ChLV-class.html\">ChLV</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.classes.ClipCS3Tuple-class.html#_Names_\">_Names_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.classes.ClipCS3Tuple-class.html\">ClipCS3Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.constants-module.html#_3_0\">_3_0</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.constants-module.html\">pygeodesy.constants</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.points._Basequence-class.html#_abc_cache\">_abc_cache</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.points._Basequence-class.html\">_Basequence</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.classes.EasNorExact4Tuple-class.html#_Names_\">_Names_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.classes.EasNorExact4Tuple-class.html\">EasNorExact4Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.constants-module.html#_45_0\">_45_0</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.constants-module.html\">pygeodesy.constants</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"abc.ABCMeta-class.html#_abc_invalidation_counter\">_abc_invalidation_counter</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"abc.ABCMeta-class.html\">ABCMeta</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.classes.LatLonExact4Tuple-class.html#_Names_\">_Names_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.classes.LatLonExact4Tuple-class.html\">LatLonExact4Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_4_\">_4_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.points._Basequence-class.html#_abc_registry\">_abc_registry</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.points._Basequence-class.html\">_Basequence</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.classes.NearestOn4Tuple-class.html#_Names_\">_Names_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.classes.NearestOn4Tuple-class.html\">NearestOn4Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.constants-module.html#_4_0\">_4_0</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.constants-module.html\">pygeodesy.constants</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples._AbcBase-class.html\">_AbcBase</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples-module.html\">pygeodesy.ltpTuples</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.classes.Ned3Tuple-class.html#_Names_\">_Names_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.classes.Ned3Tuple-class.html\">Ned3Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipses.Ellipse-class.html#_4_PI_\">_4_PI_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipses.Ellipse-class.html\">Ellipse</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples-module.html#_aer_\">_aer_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples-module.html\">pygeodesy.ltpTuples</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.classes.Rhumb7Tuple-class.html#_Names_\">_Names_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.classes.Rhumb7Tuple-class.html\">Rhumb7Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geoids.GeoidKarney-class.html#_4endian\">_4endian</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geoids.GeoidKarney-class.html\">GeoidKarney</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.lcc.Conic-class.html#_aF\">_aF</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.lcc.Conic-class.html\">Conic</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.classes.RhumbOrder2Tuple-class.html#_Names_\">_Names_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.classes.RhumbOrder2Tuple-class.html\">RhumbOrder2Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geoids.GeoidKarney-class.html#_4u2B\">_4u2B</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geoids.GeoidKarney-class.html\">GeoidKarney</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_Airy1830_\">_Airy1830_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.classes.Transform7Tuple-class.html#_Names_\">_Names_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.classes.Transform7Tuple-class.html\">Transform7Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.constants-module.html#_5_0\">_5_0</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.constants-module.html\">pygeodesy.constants</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_AiryModified_\">_AiryModified_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.classes.TriAngle4Tuple-class.html#_Names_\">_Names_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.classes.TriAngle4Tuple-class.html\">TriAngle4Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.constants-module.html#_60_0\">_60_0</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.constants-module.html\">pygeodesy.constants</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.albers._AlbersBase-class.html\">_AlbersBase</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.albers-module.html\">pygeodesy.albers</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.classes.UtmUps4Tuple-class.html#_Names_\">_Names_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.classes.UtmUps4Tuple-class.html\">UtmUps4Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.wgrs-module.html#_60B\">_60B</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.wgrs-module.html\">pygeodesy.wgrs</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated-module.html#_ALL_DEPRECATED\">_ALL_DEPRECATED</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated-module.html\">pygeodesy.deprecated</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ecef.Ecef9Tuple-class.html#_Names_\">_Names_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ecef.Ecef9Tuple-class.html\">Ecef9Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.constants-module.html#_64_0\">_64_0</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.constants-module.html\">pygeodesy.constants</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.lazily-module.html#_ALL_DEPRECATED\">_ALL_DEPRECATED</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.lazily-module.html\">pygeodesy.lazily</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ecef.EcefMatrix-class.html#_Names_\">_Names_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ecef.EcefMatrix-class.html\">EcefMatrix</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.constants-module.html#_6_0\">_6_0</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.constants-module.html\">pygeodesy.constants</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.lazily-module.html#_ALL_DEPRECATES\">_ALL_DEPRECATES</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.lazily-module.html\">pygeodesy.lazily</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.elevations.Elevation2Tuple-class.html#_Names_\">_Names_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.elevations.Elevation2Tuple-class.html\">Elevation2Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.constants-module.html#_720_0\">_720_0</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.constants-module.html\">pygeodesy.constants</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.lazily-module.html#_ALL_IMPORTS\">_ALL_IMPORTS</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.lazily-module.html\">pygeodesy.lazily</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.elevations.GeoidHeight2Tuple-class.html#_Names_\">_Names_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.elevations.GeoidHeight2Tuple-class.html\">GeoidHeight2Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.constants-module.html#_89_999\">_89_999</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.constants-module.html\">pygeodesy.constants</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.lazily-module.html#_ALL_INIT\">_ALL_INIT</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.lazily-module.html\">pygeodesy.lazily</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Curvature2Tuple-class.html#_Names_\">_Names_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Curvature2Tuple-class.html\">Curvature2Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.constants-module.html#_8_0\">_8_0</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.constants-module.html\">pygeodesy.constants</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx-module.html#_ALL_LAZY\">_ALL_LAZY</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx-module.html\">pygeodesy.geodesicx</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html#_Names_\">_Names_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\">a_f2Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.constants-module.html#_90_0\">_90_0</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.constants-module.html\">pygeodesy.constants</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.lazily-module.html#_ALL_LAZY\">_ALL_LAZY</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.lazily-module.html\">pygeodesy.lazily</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.elliptic.Elliptic3Tuple-class.html#_Names_\">_Names_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.elliptic.Elliptic3Tuple-class.html\">Elliptic3Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.constants-module.html#_9_0\">_9_0</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.constants-module.html\">pygeodesy.constants</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.lazily-module.html#_ALL_MODS\">_ALL_MODS</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.lazily-module.html\">pygeodesy.lazily</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.formy.Radical2Tuple-class.html#_Names_\">_Names_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.formy.Radical2Tuple-class.html\">Radical2Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.angles.Ang-class.html#__abs__\">__abs__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.angles.Ang-class.html\">Ang</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.triaxial3-module.html#_alp_\">_alp_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.triaxial3-module.html\" onclick=\"show_private();\">pygeodesy.triaxials.triaxial3</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.frechet.Frechet6Tuple-class.html#_Names_\">_Names_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.frechet.Frechet6Tuple-class.html\">Frechet6Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__abs__\">__abs__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html\">AuxAngle</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ktm-module.html#_AlpCoeffs\">_AlpCoeffs</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ktm-module.html\">pygeodesy.ktm</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums.DivMod2Tuple-class.html#_Names_\">_Names_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums.DivMod2Tuple-class.html\">DivMod2Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.booleans._LatLonBool-class.html#__abs__\">__abs__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.booleans._LatLonBool-class.html\">_LatLonBool</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.booleans._LatLonBool-class.html#_alpha\">_alpha</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.booleans._LatLonBool-class.html\">_LatLonBool</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums.Fsum2Tuple-class.html#_Names_\">_Names_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\">Fsum2Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums.Fsum-class.html#__abs__\">__abs__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums.Fsum-class.html\">Fsum</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.booleans-module.html#_alpha_\">_alpha_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.booleans-module.html\">pygeodesy.booleans</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geod3solve.Geod3Solve8Tuple-class.html#_Names_\">_Names_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geod3solve.Geod3Solve8Tuple-class.html\">Geod3Solve8Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums.Fsum2Tuple-class.html#__abs__\">__abs__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\">Fsum2Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltp.Attitude-class.html#_alt\">_alt</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltp.Attitude-class.html\">Attitude</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesici.Intersect7Tuple-class.html#_Names_\">_Names_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesici.Intersect7Tuple-class.html\">Intersect7Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__abs__\">__abs__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">Vector3dBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples-module.html#_alt_\">_alt_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples-module.html\">pygeodesy.ltpTuples</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesici.Intersectool5Tuple-class.html#_Names_\">_Names_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesici.Intersectool5Tuple-class.html\">Intersectool5Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.points.LatLon2psxy-class.html#__abstractmethods__\">__abstractmethods__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.points.LatLon2psxy-class.html\">LatLon2psxy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_ambiguous_\">_ambiguous_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesici.Intersector5Tuple-class.html#_Names_\">_Names_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesici.Intersector5Tuple-class.html\">Intersector5Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.points._Array2LatLon-class.html#__abstractmethods__\">__abstractmethods__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.points._Array2LatLon-class.html\">_Array2LatLon</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_AMPERSAND_\">_AMPERSAND_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesici.Middle5Tuple-class.html#_Names_\">_Names_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesici.Middle5Tuple-class.html\">Middle5Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.angles.Ang-class.html#__add__\">__add__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.angles.Ang-class.html\">Ang</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_an_\">_an_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodsolve.GeodSolve12Tuple-class.html#_Names_\">_Names_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodsolve.GeodSolve12Tuple-class.html\">GeodSolve12Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__add__\">__add__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html\">AuxAngle</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.mgrs-module.html#_AN_\">_AN_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.mgrs-module.html\">pygeodesy.mgrs</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geohash.Resolutions2Tuple-class.html#_Names_\">_Names_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geohash.Resolutions2Tuple-class.html\">Resolutions2Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.booleans.LatLonFHP-class.html#__add__\">__add__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.booleans.LatLonFHP-class.html\">LatLonFHP</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_and_\">_and_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geohash.Sizes3Tuple-class.html#_Names_\">_Names_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geohash.Sizes3Tuple-class.html\">Sizes3Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.booleans._BooleanBase-class.html#__add__\">__add__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.booleans._BooleanBase-class.html\">_BooleanBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.angles-module.html#_Ang_from\">_Ang_from</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.angles-module.html\">pygeodesy.angles</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geoids.GeoidHeight5Tuple-class.html#_Names_\">_Names_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geoids.GeoidHeight5Tuple-class.html\">GeoidHeight5Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fstats._FstatsNamed-class.html#__add__\">__add__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fstats._FstatsNamed-class.html\">_FstatsNamed</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.angles-module.html#_Ang_types\">_Ang_types</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.angles-module.html\">pygeodesy.angles</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.hausdorff.Hausdorff6Tuple-class.html#_Names_\">_Names_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.hausdorff.Hausdorff6Tuple-class.html\">Hausdorff6Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums.Fsum-class.html#__add__\">__add__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums.Fsum-class.html\">Fsum</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_angle_\">_angle_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.karney.Area3Tuple-class.html#_Names_\">_Names_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.karney.Area3Tuple-class.html\">Area3Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesici.XDict-class.html#__add__\">__add__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesici.XDict-class.html\">XDict</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb.bases-module.html#_anti_\">_anti_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb.bases-module.html\" onclick=\"show_private();\">pygeodesy.rhumb.bases</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.karney.Direct9Tuple-class.html#_Names_\">_Names_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.karney.Direct9Tuple-class.html\">Direct9Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.trf.TRFXform-class.html#__add__\">__add__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.trf.TRFXform-class.html\">TRFXform</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_antipodal_\">_antipodal_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.karney.Inverse10Tuple-class.html#_Names_\">_Names_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.karney.Inverse10Tuple-class.html\">Inverse10Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.trf.TRFXform7Tuple-class.html#__add__\">__add__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.trf.TRFXform7Tuple-class.html\">TRFXform7Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalVincenty-module.html#_antipodal_to_\">_antipodal_to_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalVincenty-module.html\">pygeodesy.ellipsoidalVincenty</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.karney.Rhumb8Tuple-class.html#_Names_\">_Names_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.karney.Rhumb8Tuple-class.html\" onclick=\"show_private();\">Rhumb8Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__add__\">__add__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">Vector3dBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxLat-module.html#_AR2Coeffs\">_AR2Coeffs</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats.auxLat-module.html\" onclick=\"show_private();\">pygeodesy.auxilats.auxLat</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.Aer4Tuple-class.html#_Names_\">_Names_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.Aer4Tuple-class.html\">Aer4Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.albers-module.html#__all__\">__all__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.albers-module.html\">pygeodesy.albers</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#_Area\">_Area</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html\">GeodesicAreaExact</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.Attitude4Tuple-class.html#_Names_\">_Names_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.Attitude4Tuple-class.html\">Attitude4Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.angles-module.html#__all__\">__all__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.angles-module.html\">pygeodesy.angles</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_area_\">_area_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.ChLV9Tuple-class.html#_Names_\">_Names_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.ChLV9Tuple-class.html\">ChLV9Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.azimuthal-module.html#__all__\">__all__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.azimuthal-module.html\">pygeodesy.azimuthal</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_arg_\">_arg_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.ChLVEN2Tuple-class.html#_Names_\">_Names_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.ChLVEN2Tuple-class.html\">ChLVEN2Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.basics-module.html#__all__\">__all__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.basics-module.html\">pygeodesy.basics</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.errors-module.html#_argument_\">_argument_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.errors-module.html\">pygeodesy.errors</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.ChLVYX2Tuple-class.html#_Names_\">_Names_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.ChLVYX2Tuple-class.html\">ChLVYX2Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.booleans-module.html#__all__\">__all__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.booleans-module.html\">pygeodesy.booleans</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.internals-module.html#_arm64_\">_arm64_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.internals-module.html\">pygeodesy.internals</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.ChLVyx2Tuple-class.html#_Names_\">_Names_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.ChLVyx2Tuple-class.html\">ChLVyx2Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.cartesianBase-module.html#__all__\">__all__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.cartesianBase-module.html\">pygeodesy.cartesianBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.points._Array2LatLon-class.html#_array\">_array</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.points._Array2LatLon-class.html\">_Array2LatLon</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.Enu4Tuple-class.html#_Names_\">_Names_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.Enu4Tuple-class.html\">Enu4Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.clipy-module.html#__all__\">__all__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.clipy-module.html\">pygeodesy.clipy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.points._Basequence-class.html#_array\">_array</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.points._Basequence-class.html\">_Basequence</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.Footprint5Tuple-class.html#_Names_\">_Names_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.Footprint5Tuple-class.html\">Footprint5Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.constants-module.html#__all__\">__all__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.constants-module.html\">pygeodesy.constants</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.points._Array2LatLon-class.html\">_Array2LatLon</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.points-module.html\">pygeodesy.points</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.Local9Tuple-class.html#_Names_\">_Names_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.Local9Tuple-class.html\">Local9Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.css-module.html#__all__\">__all__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.css-module.html\">pygeodesy.css</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geoids-module.html#_assert_\">_assert_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geoids-module.html\">pygeodesy.geoids</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.Ned4Tuple-class.html#_Names_\">_Names_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.Ned4Tuple-class.html\">Ned4Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.datums-module.html#__all__\">__all__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.datums-module.html\">pygeodesy.datums</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.lazily-module.html#_asSPACED_\">_asSPACED_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.lazily-module.html\">pygeodesy.lazily</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.Uvw3Tuple-class.html#_Names_\">_Names_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.Uvw3Tuple-class.html\">Uvw3Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.bases-module.html#__all__\">__all__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.bases-module.html\">pygeodesy.deprecated.bases</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_AT_\">_AT_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.Xyz4Tuple-class.html#_Names_\">_Names_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.Xyz4Tuple-class.html\">Xyz4Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.classes-module.html#__all__\">__all__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.classes-module.html\">pygeodesy.deprecated.classes</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.streprs-module.html#_at_\">_at_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.streprs-module.html\">pygeodesy.streprs</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.mgrs.Mgrs4Tuple-class.html#_Names_\">_Names_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.mgrs.Mgrs4Tuple-class.html\">Mgrs4Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.consterns-module.html#__all__\">__all__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.consterns-module.html\">pygeodesy.deprecated.consterns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.mgrs-module.html#_AtoPx_\">_AtoPx_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.mgrs-module.html\">pygeodesy.mgrs</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.mgrs.Mgrs6Tuple-class.html#_Names_\">_Names_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.mgrs.Mgrs6Tuple-class.html\">Mgrs6Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.datum-module.html#__all__\">__all__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.datum-module.html\">pygeodesy.deprecated.datum</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_AtoZnoIO_\">_AtoZnoIO_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.named._NamedTuple-class.html#_Names_\">_Names_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.named._NamedTuple-class.html\">_NamedTuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.functions-module.html#__all__\">__all__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.functions-module.html\">pygeodesy.deprecated.functions</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_attribute_\">_attribute_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.named-module.html#_Names_\">_Names_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.named-module.html\">pygeodesy.named</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.nvector-module.html#__all__\">__all__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.nvector-module.html\">pygeodesy.deprecated.nvector</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.lazily-module.html#_attribute_\">_attribute_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.lazily-module.html\">pygeodesy.lazily</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.Bearing2Tuple-class.html#_Names_\">_Names_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples.Bearing2Tuple-class.html\">Bearing2Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.rhumbaux-module.html#__all__\">__all__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.rhumbaux-module.html\">pygeodesy.deprecated.rhumbaux</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.lcc.Conic-class.html#_auth\">_auth</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.lcc.Conic-class.html\">Conic</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.Bounds2Tuple-class.html#_Names_\">_Names_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples.Bounds2Tuple-class.html\">Bounds2Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.rhumbsolve-module.html#__all__\">__all__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.rhumbsolve-module.html\">pygeodesy.deprecated.rhumbsolve</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#_AUX\">_AUX</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html\">AuxAngle</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.Bounds4Tuple-class.html#_Names_\">_Names_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples.Bounds4Tuple-class.html\">Bounds4Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.rhumbx-module.html#__all__\">__all__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.rhumbx-module.html\">pygeodesy.deprecated.rhumbx</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxAngle.AuxBeta-class.html#_AUX\">_AUX</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats.auxAngle.AuxBeta-class.html\">AuxBeta</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.Circle4Tuple-class.html#_Names_\">_Names_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples.Circle4Tuple-class.html\">Circle4Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.dms-module.html#__all__\">__all__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.dms-module.html\">pygeodesy.dms</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxAngle.AuxChi-class.html#_AUX\">_AUX</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats.auxAngle.AuxChi-class.html\">AuxChi</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.Destination2Tuple-class.html#_Names_\">_Names_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples.Destination2Tuple-class.html\">Destination2Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ecef-module.html#__all__\">__all__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ecef-module.html\">pygeodesy.ecef</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxAngle.AuxMu-class.html#_AUX\">_AUX</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats.auxAngle.AuxMu-class.html\">AuxMu</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.Destination3Tuple-class.html#_Names_\">_Names_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples.Destination3Tuple-class.html\">Destination3Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ecefLocals-module.html#__all__\">__all__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ecefLocals-module.html\">pygeodesy.ecefLocals</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxAngle.AuxPhi-class.html#_AUX\">_AUX</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats.auxAngle.AuxPhi-class.html\">AuxPhi</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.Distance2Tuple-class.html#_Names_\">_Names_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples.Distance2Tuple-class.html\">Distance2Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.elevations-module.html#__all__\">__all__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.elevations-module.html\">pygeodesy.elevations</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxAngle.AuxTheta-class.html#_AUX\">_AUX</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats.auxAngle.AuxTheta-class.html\">AuxTheta</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.Distance3Tuple-class.html#_Names_\">_Names_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples.Distance3Tuple-class.html\">Distance3Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipses-module.html#__all__\">__all__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipses-module.html\">pygeodesy.ellipses</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxAngle.AuxXi-class.html#_AUX\">_AUX</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats.auxAngle.AuxXi-class.html\">AuxXi</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.Distance4Tuple-class.html#_Names_\">_Names_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples.Distance4Tuple-class.html\">Distance4Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalBase-module.html#__all__\">__all__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalBase-module.html\">pygeodesy.ellipsoidalBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxily-module.html#_Aux2Greek\">_Aux2Greek</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats.auxily-module.html\" onclick=\"show_private();\">pygeodesy.auxilats.auxily</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.EasNor2Tuple-class.html#_Names_\">_Names_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples.EasNor2Tuple-class.html\">EasNor2Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalBaseDI-module.html#__all__\">__all__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalBaseDI-module.html\">pygeodesy.ellipsoidalBaseDI</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxAngle-module.html#_AUXClass\">_AUXClass</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats.auxAngle-module.html\" onclick=\"show_private();\">pygeodesy.auxilats.auxAngle</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.EasNor3Tuple-class.html#_Names_\">_Names_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples.EasNor3Tuple-class.html\">EasNor3Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalExact-module.html#__all__\">__all__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalExact-module.html\">pygeodesy.ellipsoidalExact</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#_azi12\">_azi12</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html\">RhumbLineBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.Ellipse5Tuple-class.html#_Names_\">_Names_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples.Ellipse5Tuple-class.html\">Ellipse5Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalGeodSolve-module.html#__all__\">__all__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalGeodSolve-module.html\">pygeodesy.ellipsoidalGeodSolve</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_azi12_\">_azi12_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.Forward4Tuple-class.html#_Names_\">_Names_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples.Forward4Tuple-class.html\">Forward4Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalKarney-module.html#__all__\">__all__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalKarney-module.html\">pygeodesy.ellipsoidalKarney</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_azi1_\">_azi1_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.Intersection3Tuple-class.html#_Names_\">_Names_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples.Intersection3Tuple-class.html\">Intersection3Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalNvector-module.html#__all__\">__all__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalNvector-module.html\">pygeodesy.ellipsoidalNvector</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_azi2_\">_azi2_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.LatLon2Tuple-class.html#_Names_\">_Names_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples.LatLon2Tuple-class.html\">LatLon2Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalVincenty-module.html#__all__\">__all__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalVincenty-module.html\">pygeodesy.ellipsoidalVincenty</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.Aer-class.html#_azimuth\">_azimuth</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.Aer-class.html\">Aer</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.LatLon3Tuple-class.html#_Names_\">_Names_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples.LatLon3Tuple-class.html\">LatLon3Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids-module.html#__all__\">__all__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids-module.html\">pygeodesy.ellipsoids</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_azimuth_\">_azimuth_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.LatLon4Tuple-class.html#_Names_\">_Names_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples.LatLon4Tuple-class.html\">LatLon4Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.elliptic-module.html#__all__\">__all__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.elliptic-module.html\">pygeodesy.elliptic</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.karney.Caps-class.html#_AZIMUTH_LATITUDE_LONG_UNROLL\">_AZIMUTH_LATITUDE_LONG_UNROLL</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.karney.Caps-class.html\">Caps</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.LatLonDatum3Tuple-class.html#_Names_\">_Names_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples.LatLonDatum3Tuple-class.html\">LatLonDatum3Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.epsg-module.html#__all__\">__all__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.epsg-module.html\">pygeodesy.epsg</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.karney.Caps-class.html#_AZIMUTH_LATITUDE_LONGITUDE\">_AZIMUTH_LATITUDE_LONGITUDE</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.karney.Caps-class.html\">Caps</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.LatLonDatum5Tuple-class.html#_Names_\">_Names_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples.LatLonDatum5Tuple-class.html\">LatLonDatum5Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.errors-module.html#__all__\">__all__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.errors-module.html\">pygeodesy.errors</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html\">_AzimuthalBase</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.azimuthal-module.html\">pygeodesy.azimuthal</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.LatLonPrec3Tuple-class.html#_Names_\">_Names_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples.LatLonPrec3Tuple-class.html\">LatLonPrec3Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.etm-module.html#__all__\">__all__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.etm-module.html\">pygeodesy.etm</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.azimuthal._AzimuthalGeodesic-class.html\">_AzimuthalGeodesic</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.azimuthal-module.html\">pygeodesy.azimuthal</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.LatLonPrec5Tuple-class.html#_Names_\">_Names_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples.LatLonPrec5Tuple-class.html\">LatLonPrec5Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fmath-module.html#__all__\">__all__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fmath-module.html\">pygeodesy.fmath</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#_b\">_b</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.NearestOn2Tuple-class.html#_Names_\">_Names_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples.NearestOn2Tuple-class.html\">NearestOn2Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.formy-module.html#__all__\">__all__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.formy-module.html\">pygeodesy.formy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ktm-module.html#_B1Coeffs\">_B1Coeffs</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ktm-module.html\">pygeodesy.ktm</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.NearestOn3Tuple-class.html#_Names_\">_Names_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples.NearestOn3Tuple-class.html\">NearestOn3Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.frechet-module.html#__all__\">__all__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.frechet-module.html\">pygeodesy.frechet</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_B_\">_B_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.NearestOn6Tuple-class.html#_Names_\">_Names_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples.NearestOn6Tuple-class.html\">NearestOn6Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fstats-module.html#__all__\">__all__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fstats-module.html\">pygeodesy.fstats</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_b_\">_b_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.NearestOn8Tuple-class.html#_Names_\">_Names_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples.NearestOn8Tuple-class.html\">NearestOn8Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums-module.html#__all__\">__all__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums-module.html\">pygeodesy.fsums</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_BACKSLASH_\">_BACKSLASH_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.PhiLam2Tuple-class.html#_Names_\">_Names_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples.PhiLam2Tuple-class.html\">PhiLam2Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.gars-module.html#__all__\">__all__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.gars-module.html\">pygeodesy.gars</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.epsg.Epsg-class.html#_band\">_band</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.epsg.Epsg-class.html\">Epsg</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.PhiLam3Tuple-class.html#_Names_\">_Names_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples.PhiLam3Tuple-class.html\">PhiLam3Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geod3solve-module.html#__all__\">__all__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geod3solve-module.html\">pygeodesy.geod3solve</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.mgrs.Mgrs-class.html#_band\">_band</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.mgrs.Mgrs-class.html\">Mgrs</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.PhiLam4Tuple-class.html#_Names_\">_Names_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples.PhiLam4Tuple-class.html\">PhiLam4Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesici-module.html#__all__\">__all__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesici-module.html\">pygeodesy.geodesici</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html#_band\">_band</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html\">UtmUpsBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.Point3Tuple-class.html#_Names_\">_Names_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples.Point3Tuple-class.html\">Point3Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicw-module.html#__all__\">__all__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicw-module.html\">pygeodesy.geodesicw</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_band_\">_band_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.Points2Tuple-class.html#_Names_\">_Names_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples.Points2Tuple-class.html\">Points2Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodsolve-module.html#__all__\">__all__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodsolve-module.html\">pygeodesy.geodsolve</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.mgrs.Mgrs-class.html#_bandLat\">_bandLat</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.mgrs.Mgrs-class.html\">Mgrs</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.Reverse4Tuple-class.html#_Names_\">_Names_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples.Reverse4Tuple-class.html\">Reverse4Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geohash-module.html#__all__\">__all__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geohash-module.html\">pygeodesy.geohash</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utm-module.html#_bandLat_\">_bandLat_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utm-module.html\">pygeodesy.utm</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.Triangle7Tuple-class.html#_Names_\">_Names_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples.Triangle7Tuple-class.html\">Triangle7Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geoids-module.html#__all__\">__all__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geoids-module.html\">pygeodesy.geoids</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ups.Ups-class.html#_Bands\">_Bands</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ups.Ups-class.html\">Ups</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.Triangle8Tuple-class.html#_Names_\">_Names_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples.Triangle8Tuple-class.html\">Triangle8Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.hausdorff-module.html#__all__\">__all__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.hausdorff-module.html\">pygeodesy.hausdorff</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utm.Utm-class.html#_Bands\">_Bands</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utm.Utm-class.html\">Utm</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.Trilaterate5Tuple-class.html#_Names_\">_Names_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples.Trilaterate5Tuple-class.html\">Trilaterate5Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.heights-module.html#__all__\">__all__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.heights-module.html\">pygeodesy.heights</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utm-module.html#_Bands\">_Bands</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utm-module.html\">pygeodesy.utm</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.UtmUps2Tuple-class.html#_Names_\">_Names_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples.UtmUps2Tuple-class.html\">UtmUps2Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.iters-module.html#__all__\">__all__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.iters-module.html\">pygeodesy.iters</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html#_Bands\">_Bands</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html\">UtmUpsBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.UtmUps5Tuple-class.html#_Names_\">_Names_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples.UtmUps5Tuple-class.html\">UtmUps5Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.karney-module.html#__all__\">__all__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.karney-module.html\">pygeodesy.karney</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_BANG_\">_BANG_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.UtmUps8Tuple-class.html#_Names_\">_Names_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples.UtmUps8Tuple-class.html\">UtmUps8Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ktm-module.html#__all__\">__all__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ktm-module.html\">pygeodesy.ktm</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.internals-module.html#_BAR_\">_BAR_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.internals-module.html\">pygeodesy.internals</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.UtmUpsLatLon5Tuple-class.html#_Names_\">_Names_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples.UtmUpsLatLon5Tuple-class.html\">UtmUpsLatLon5Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.latlonBase-module.html#__all__\">__all__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.latlonBase-module.html\">pygeodesy.latlonBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_BAR_\">_BAR_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.Vector2Tuple-class.html#_Names_\">_Names_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples.Vector2Tuple-class.html\">Vector2Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.lcc-module.html#__all__\">__all__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.lcc-module.html\">pygeodesy.lcc</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.iters.PointsIter-class.html#_base\">_base</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.iters.PointsIter-class.html\">PointsIter</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.Vector3Tuple-class.html#_Names_\">_Names_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples.Vector3Tuple-class.html\">Vector3Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltp-module.html#__all__\">__all__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltp-module.html\">pygeodesy.ltp</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.wgrs-module.html#_Base\">_Base</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.wgrs-module.html\">pygeodesy.wgrs</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.Vector4Tuple-class.html#_Names_\">_Names_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples.Vector4Tuple-class.html\">Vector4Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples-module.html#__all__\">__all__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples-module.html\">pygeodesy.ltpTuples</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.iters._BaseIter-class.html\">_BaseIter</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.iters-module.html\">pygeodesy.iters</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.points.Shape2Tuple-class.html#_Names_\">_Names_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.points.Shape2Tuple-class.html\">Shape2Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.mgrs-module.html#__all__\">__all__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.mgrs-module.html\">pygeodesy.mgrs</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.wgrs-module.html#_BaseLen\">_BaseLen</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.wgrs-module.html\">pygeodesy.wgrs</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.resections.Collins5Tuple-class.html#_Names_\">_Names_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.resections.Collins5Tuple-class.html\">Collins5Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.named-module.html#__all__\">__all__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.named-module.html\">pygeodesy.named</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.points._Basequence-class.html\">_Basequence</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.points-module.html\">pygeodesy.points</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.resections.Survey3Tuple-class.html#_Names_\">_Names_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.resections.Survey3Tuple-class.html\">Survey3Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples-module.html#__all__\">__all__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples-module.html\">pygeodesy.namedTuples</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.triaxial5.ConformalSphere-class.html#_bc\">_bc</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.triaxial5.ConformalSphere-class.html\">ConformalSphere</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.resections.Tienstra7Tuple-class.html#_Names_\">_Names_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.resections.Tienstra7Tuple-class.html\">Tienstra7Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.nvectorBase-module.html#__all__\">__all__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.nvectorBase-module.html\">pygeodesy.nvectorBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.datums-module.html#_BD72_\">_BD72_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.datums-module.html\">pygeodesy.datums</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.resections.TriAngle5Tuple-class.html#_Names_\">_Names_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.resections.TriAngle5Tuple-class.html\">TriAngle5Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.osgr-module.html#__all__\">__all__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.osgr-module.html\">pygeodesy.osgr</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_bearing_\">_bearing_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.resections.TriSide2Tuple-class.html#_Names_\">_Names_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.resections.TriSide2Tuple-class.html\">TriSide2Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.points-module.html#__all__\">__all__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.points-module.html\">pygeodesy.points</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.basics-module.html#_below_\">_below_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.basics-module.html\">pygeodesy.basics</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.resections.TriSide4Tuple-class.html#_Names_\">_Names_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.resections.TriSide4Tuple-class.html\">TriSide4Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.props-module.html#__all__\">__all__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.props-module.html\">pygeodesy.props</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_Bessel1841_\">_Bessel1841_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb.solve.RhumbSolve7Tuple-class.html#_Names_\">_Names_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb.solve.RhumbSolve7Tuple-class.html\">RhumbSolve7Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.resections-module.html#__all__\">__all__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.resections-module.html\">pygeodesy.resections</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.bases-module.html#_bet_\">_bet_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.bases-module.html\" onclick=\"show_private();\">pygeodesy.triaxials.bases</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.trf.TRFXform7Tuple-class.html#_Names_\">_Names_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.trf.TRFXform7Tuple-class.html\">TRFXform7Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb-module.html#__all__\">__all__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb-module.html\">pygeodesy.rhumb</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.heights._HeightIDW-class.html#_beta\">_beta</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.heights._HeightIDW-class.html\">_HeightIDW</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.bases.Conformal5Tuple-class.html#_Names_\">_Names_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.bases.Conformal5Tuple-class.html\" onclick=\"show_private();\">Conformal5Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb.aux_-module.html#__all__\">__all__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb.aux_-module.html\">pygeodesy.rhumb.aux_</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_beta_\">_beta_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.conformal3.BetOmgGam5Tuple-class.html#_Names_\">_Names_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.conformal3.BetOmgGam5Tuple-class.html\">BetOmgGam5Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb.ekx-module.html#__all__\">__all__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb.ekx-module.html\">pygeodesy.rhumb.ekx</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ktm-module.html#_BetCoeffs\">_BetCoeffs</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ktm-module.html\">pygeodesy.ktm</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.triaxial3.BetOmgAlp5Tuple-class.html#_Names_\">_Names_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.triaxial3.BetOmgAlp5Tuple-class.html\">BetOmgAlp5Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb.solve-module.html#__all__\">__all__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb.solve-module.html\">pygeodesy.rhumb.solve</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.dms-module.html#_beyond_\">_beyond_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.dms-module.html\">pygeodesy.dms</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.triaxial3.Cartesian5Tuple-class.html#_Names_\">_Names_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.triaxial3.Cartesian5Tuple-class.html\">Cartesian5Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.simplify-module.html#__all__\">__all__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.simplify-module.html\">pygeodesy.simplify</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geoids-module.html#_bHASH_\">_bHASH_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geoids-module.html\">pygeodesy.geoids</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.triaxial3.PhiLamZet5Tuple-class.html#_Names_\">_Names_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.triaxial3.PhiLamZet5Tuple-class.html\">PhiLamZet5Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.solveBase-module.html#__all__\">__all__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.solveBase-module.html\">pygeodesy.solveBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.units.Bool-class.html#_bool_True_or_False\">_bool_True_or_False</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.units.Bool-class.html\">Bool</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.triaxial5.BetaOmega2Tuple-class.html#_Names_\">_Names_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.triaxial5.BetaOmega2Tuple-class.html\">BetaOmega2Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.sphericalBase-module.html#__all__\">__all__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.sphericalBase-module.html\">pygeodesy.sphericalBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.booleans-module.html#_boolean_\">_boolean_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.booleans-module.html\">pygeodesy.booleans</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.triaxial5.BetaOmega3Tuple-class.html#_Names_\">_Names_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.triaxial5.BetaOmega3Tuple-class.html\">BetaOmega3Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.sphericalNvector-module.html#__all__\">__all__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.sphericalNvector-module.html\">pygeodesy.sphericalNvector</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.booleans._BooleanBase-class.html\">_BooleanBase</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.booleans-module.html\">pygeodesy.booleans</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.triaxial5.Conformal2Tuple-class.html#_Names_\">_Names_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.triaxial5.Conformal2Tuple-class.html\">Conformal2Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.sphericalTrigonometry-module.html#__all__\">__all__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.sphericalTrigonometry-module.html\">pygeodesy.sphericalTrigonometry</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.errors-module.html#_box_\">_box_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.errors-module.html\">pygeodesy.errors</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector2d.Circin6Tuple-class.html#_Names_\">_Names_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector2d.Circin6Tuple-class.html\">Circin6Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.streprs-module.html#__all__\">__all__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.streprs-module.html\">pygeodesy.streprs</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geoids.GeoidKarney-class.html#_BT\">_BT</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geoids.GeoidKarney-class.html\">GeoidKarney</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector2d.Circum3Tuple-class.html#_Names_\">_Names_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector2d.Circum3Tuple-class.html\">Circum3Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.trf-module.html#__all__\">__all__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.trf-module.html\">pygeodesy.trf</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_by_\">_by_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector2d.Circum4Tuple-class.html#_Names_\">_Names_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector2d.Circum4Tuple-class.html\">Circum4Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials-module.html#__all__\">__all__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials-module.html\">pygeodesy.triaxials</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.lazily-module.html#_by_\">_by_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.lazily-module.html\">pygeodesy.lazily</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector2d.Meeus2Tuple-class.html#_Names_\">_Names_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector2d.Meeus2Tuple-class.html\">Meeus2Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.bases-module.html#__all__\">__all__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.bases-module.html\">pygeodesy.triaxials.bases</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.basics-module.html#_Bytes\">_Bytes</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.basics-module.html\">pygeodesy.basics</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector2d.Radii11Tuple-class.html#_Names_\">_Names_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector2d.Radii11Tuple-class.html\">Radii11Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.conformal3-module.html#__all__\">__all__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.conformal3-module.html\">pygeodesy.triaxials.conformal3</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ups-module.html#_BZ_UPS\">_BZ_UPS</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ups-module.html\">pygeodesy.ups</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector2d.Soddy4Tuple-class.html#_Names_\">_Names_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector2d.Soddy4Tuple-class.html\">Soddy4Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.triaxial3-module.html#__all__\">__all__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.triaxial3-module.html\">pygeodesy.triaxials.triaxial3</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geoids.GeoidKarney-class.html#_C0\">_C0</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geoids.GeoidKarney-class.html\">GeoidKarney</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector2d.Triaxum5Tuple-class.html#_Names_\">_Names_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector2d.Triaxum5Tuple-class.html\">Triaxum5Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.triaxial5-module.html#__all__\">__all__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.triaxial5-module.html\">pygeodesy.triaxials.triaxial5</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geoids.GeoidKarney-class.html#_C3\">_C3</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geoids.GeoidKarney-class.html\">GeoidKarney</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.webmercator.EasNorRadius3Tuple-class.html#_Names_\">_Names_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.webmercator.EasNorRadius3Tuple-class.html\">EasNorRadius3Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.units-module.html#__all__\">__all__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.units-module.html\">pygeodesy.units</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx._C4_24-module.html\">_C4_24</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx-module.html\">pygeodesy.geodesicx</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesici.Intersectool-class.html#_Names_ABs\">_Names_ABs</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesici.Intersectool-class.html\">Intersectool</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.unitsBase-module.html#__all__\">__all__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.unitsBase-module.html\">pygeodesy.unitsBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx._C4_27-module.html\">_C4_27</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx-module.html\">pygeodesy.geodesicx</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geod3solve._Geodesic3SolveBase-class.html#_Names_Direct\">_Names_Direct</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geod3solve._Geodesic3SolveBase-class.html\">_Geodesic3SolveBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ups-module.html#__all__\">__all__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ups-module.html\">pygeodesy.ups</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx._C4_30-module.html\">_C4_30</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx-module.html\">pygeodesy.geodesicx</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodsolve._GeodesicSolveBase-class.html#_Names_Direct\">_Names_Direct</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodsolve._GeodesicSolveBase-class.html\">_GeodesicSolveBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utily-module.html#__all__\">__all__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utily-module.html\">pygeodesy.utily</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_C_\">_C_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb.solve._RhumbSolveBase-class.html#_Names_Direct\">_Names_Direct</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb.solve._RhumbSolveBase-class.html\">_RhumbSolveBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utm-module.html#__all__\">__all__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utm-module.html\">pygeodesy.utm</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_c_\">_c_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.solveBase._SolveBase-class.html#_Names_Direct\">_Names_Direct</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.solveBase._SolveBase-class.html\">_SolveBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utmups-module.html#__all__\">__all__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utmups-module.html\">pygeodesy.utmups</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesici-module.html#_c__\">_c__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesici-module.html\">pygeodesy.geodesici</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geod3solve._Geodesic3SolveBase-class.html#_Names_Distance\">_Names_Distance</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geod3solve._Geodesic3SolveBase-class.html\">_Geodesic3SolveBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utmupsBase-module.html#__all__\">__all__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utmupsBase-module.html\">pygeodesy.utmupsBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesici.Intersectool-class.html#_c_alt\">_c_alt</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesici.Intersectool-class.html\">Intersectool</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodsolve._GeodesicSolveBase-class.html#_Names_Distance\">_Names_Distance</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodsolve._GeodesicSolveBase-class.html\">_GeodesicSolveBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector2d-module.html#__all__\">__all__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector2d-module.html\">pygeodesy.vector2d</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesici.Intersectool-class.html#_C_option\">_C_option</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesici.Intersectool-class.html\">Intersectool</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb.solve._RhumbSolveBase-class.html#_Names_Distance\">_Names_Distance</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb.solve._RhumbSolveBase-class.html\">_RhumbSolveBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector3d-module.html#__all__\">__all__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector3d-module.html\">pygeodesy.vector3d</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector2d-module.html#_cA_\">_cA_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector2d-module.html\">pygeodesy.vector2d</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geod3solve._Geodesic3SolveBase-class.html#_Names_Inverse\">_Names_Inverse</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geod3solve._Geodesic3SolveBase-class.html\">_Geodesic3SolveBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector3dBase-module.html#__all__\">__all__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector3dBase-module.html\">pygeodesy.vector3dBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#_calp\">_calp</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html\">RhumbLineBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodsolve._GeodesicSolveBase-class.html#_Names_Inverse\">_Names_Inverse</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodsolve._GeodesicSolveBase-class.html\">_GeodesicSolveBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.webmercator-module.html#__all__\">__all__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.webmercator-module.html\">pygeodesy.webmercator</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.karney.Caps-class.html#_CAP_1\">_CAP_1</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.karney.Caps-class.html\">Caps</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb.solve._RhumbSolveBase-class.html#_Names_Inverse\">_Names_Inverse</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb.solve._RhumbSolveBase-class.html\">_RhumbSolveBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.wgrs-module.html#__all__\">__all__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.wgrs-module.html\">pygeodesy.wgrs</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.karney.Caps-class.html#_CAP_1p\">_CAP_1p</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.karney.Caps-class.html\">Caps</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.solveBase._SolveBase-class.html#_Names_Inverse\">_Names_Inverse</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.solveBase._SolveBase-class.html\">_SolveBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.booleans._BooleanBase-class.html#__and__\">__and__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.booleans._BooleanBase-class.html\">_BooleanBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.karney.Caps-class.html#_CAP_2\">_CAP_2</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.karney.Caps-class.html\">Caps</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesici.Intersectool-class.html#_Names_XDict\">_Names_XDict</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesici.Intersectool-class.html\">Intersectool</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.angles.Ang-class.html#__bool__\">__bool__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.angles.Ang-class.html\">Ang</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.karney.Caps-class.html#_CAP_3\">_CAP_3</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.karney.Caps-class.html\">Caps</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.triaxial3-module.html#_NAN3d\">_NAN3d</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.triaxial3-module.html\" onclick=\"show_private();\">pygeodesy.triaxials.triaxial3</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__bool__\">__bool__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html\">AuxAngle</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.karney.Caps-class.html#_CAP_4\">_CAP_4</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.karney.Caps-class.html\">Caps</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_NAN_\">_NAN_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums.Fsum-class.html#__bool__\">__bool__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums.Fsum-class.html\">Fsum</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.karney.Caps-class.html#_CAP_ALL\">_CAP_ALL</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.karney.Caps-class.html\">Caps</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html#_napieradius\">_napieradius</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html\">LatLonSphericalBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums.Fsum2Tuple-class.html#__bool__\">__bool__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\">Fsum2Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#_caps\">_caps</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html\">_GeodesicLineExact</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltp-module.html#_narrow_\">_narrow_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltp-module.html\">pygeodesy.ltp</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.units.Bool-class.html#__bool__\">__bool__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.units.Bool-class.html\">Bool</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.karney._CapsBase-class.html#_caps\">_caps</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.karney._CapsBase-class.html\">_CapsBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geoids.GeoidKarney-class.html#_nBytes\">_nBytes</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geoids.GeoidKarney-class.html\">GeoidKarney</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__bool__\">__bool__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">Vector3dBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.karney._CapsBase-class.html\">_CapsBase</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.karney-module.html\">pygeodesy.karney</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geoids._GeoidBase-class.html#_nBytes\">_nBytes</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geoids._GeoidBase-class.html\">_GeoidBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums.Fsum-class.html#__call__\">__call__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums.Fsum-class.html\">Fsum</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_cartesian_\">_cartesian_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html#_nC4\">_nC4</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html\">GeodesicExact</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geoids.GeoidEGM96-class.html#__call__\">__call__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geoids.GeoidEGM96-class.html\">GeoidEGM96</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.booleans-module.html#_case_\">_case_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.booleans-module.html\">pygeodesy.booleans</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx.gxbases-module.html#_nC4s\">_nC4s</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx.gxbases-module.html\">pygeodesy.geodesicx.gxbases</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geoids.GeoidG2012B-class.html#__call__\">__call__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geoids.GeoidG2012B-class.html\">GeoidG2012B</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.css.CassiniSoldner-class.html#_cb0\">_cb0</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.css.CassiniSoldner-class.html\">CassiniSoldner</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.points-module.html#_ncols_\">_ncols_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.points-module.html\">pygeodesy.points</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geoids._GeoidBase-class.html#__call__\">__call__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geoids._GeoidBase-class.html\">_GeoidBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector2d-module.html#_cB_\">_cB_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector2d-module.html\">pygeodesy.vector2d</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_NE_\">_NE_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geoids._GeoidBase-class.html#__call__\">__call__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geoids._GeoidBase-class.html\">_GeoidBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector2d-module.html#_cC_\">_cC_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector2d-module.html\">pygeodesy.vector2d</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_near_\">_near_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.heights.HeightCubic-class.html#__call__\">__call__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.heights.HeightCubic-class.html\">HeightCubic</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_center_\">_center_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_nearestOn2_\">_nearestOn2_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.heights.HeightIDWcosineLaw-class.html#__call__\">__call__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.heights.HeightIDWcosineLaw-class.html\">HeightIDWcosineLaw</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.bases.LLK-class.html#_CENTRICS\">_CENTRICS</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.bases.LLK-class.html\">LLK</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples-module.html#_ned_\">_ned_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples-module.html\">pygeodesy.ltpTuples</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.heights.HeightIDWdistanceTo-class.html#__call__\">__call__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.heights.HeightIDWdistanceTo-class.html\">HeightIDWdistanceTo</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.booleans._LatLonBool-class.html#_checked\">_checked</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.booleans._LatLonBool-class.html\">_LatLonBool</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_negative_\">_negative_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.heights.HeightIDWequirectangular-class.html#__call__\">__call__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.heights.HeightIDWequirectangular-class.html\">HeightIDWequirectangular</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_Clarke1866_\">_Clarke1866_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geohash-module.html#_Neighbors8Defaults\">_Neighbors8Defaults</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geohash-module.html\">pygeodesy.geohash</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.heights.HeightIDWeuclidean-class.html#__call__\">__call__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.heights.HeightIDWeuclidean-class.html\">HeightIDWeuclidean</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_Clarke1880IGN_\">_Clarke1880IGN_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.booleans._LatLonBool-class.html#_next\">_next</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.booleans._LatLonBool-class.html\">_LatLonBool</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.heights.HeightIDWflatLocal-class.html#__call__\">__call__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.heights.HeightIDWflatLocal-class.html\">HeightIDWflatLocal</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.props-module.html#_class_\">_class_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.props-module.html\">pygeodesy.props</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.osgr-module.html#_NG\">_NG</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.osgr-module.html\">pygeodesy.osgr</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.heights.HeightIDWflatPolar-class.html#__call__\">__call__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.heights.HeightIDWflatPolar-class.html\">HeightIDWflatPolar</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.named._Named-class.html#_classnaming\">_classnaming</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.named._Named-class.html\">_Named</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.internals-module.html#_NL_\">_NL_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.internals-module.html\">pygeodesy.internals</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.heights.HeightIDWhaversine-class.html#__call__\">__call__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.heights.HeightIDWhaversine-class.html\">HeightIDWhaversine</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.booleans._Clip-class.html\">_Clip</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.booleans-module.html\">pygeodesy.booleans</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_NL_\">_NL_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.heights.HeightIDWkarney-class.html#__call__\">__call__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.heights.HeightIDWkarney-class.html\">HeightIDWkarney</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_clip_\">_clip_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.internals-module.html#_NLATvar_\">_NLATvar_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.internals-module.html\">pygeodesy.internals</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.heights.HeightIDWthomas-class.html#__call__\">__call__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.heights.HeightIDWthomas-class.html\">HeightIDWthomas</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.booleans._LatLonBool-class.html#_clipid\">_clipid</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.booleans._LatLonBool-class.html\">_LatLonBool</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_NLATvar_\">_NLATvar_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.heights.HeightIDWvincentys-class.html#__call__\">__call__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.heights.HeightIDWvincentys-class.html\">HeightIDWvincentys</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#_clipid\">_clipid</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">LatLonBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_NLHASH_\">_NLHASH_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.heights.HeightLSQBiSpline-class.html#__call__\">__call__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.heights.HeightLSQBiSpline-class.html\">HeightLSQBiSpline</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_clipid_\">_clipid_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.conformal3-module.html#_NLOG2\">_NLOG2</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.conformal3-module.html\" onclick=\"show_private();\">pygeodesy.triaxials.conformal3</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.heights.HeightLinear-class.html#__call__\">__call__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.heights.HeightLinear-class.html\">HeightLinear</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.booleans._CompositeBase-class.html#_clips\">_clips</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.booleans._CompositeBase-class.html\">_CompositeBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geohash.Geohashed-class.html#_nn\">_nn</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geohash.Geohashed-class.html\">Geohashed</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.heights.HeightSmoothBiSpline-class.html#__call__\">__call__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.heights.HeightSmoothBiSpline-class.html\">HeightSmoothBiSpline</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.iters._BaseIter-class.html#_closed\">_closed</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.iters._BaseIter-class.html\">_BaseIter</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_NN_\">_NN_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.heights._HeightIDW-class.html#__call__\">__call__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.heights._HeightIDW-class.html\">_HeightIDW</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.points.LatLon2psxy-class.html#_closed\">_closed</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.points.LatLon2psxy-class.html\">LatLon2psxy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_no_\">_no_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.heights._HeightIDW-class.html#__call__\">__call__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.heights._HeightIDW-class.html\">_HeightIDW</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples-module.html#_closest_\">_closest_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples-module.html\">pygeodesy.namedTuples</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.lazily-module.html#_no_\">_no_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.lazily-module.html\">pygeodesy.lazily</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.heights._HeightNamed-class.html#__call__\">__call__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.heights._HeightNamed-class.html\">_HeightNamed</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geoids.GeoidKarney-class.html#_CM\">_CM</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geoids.GeoidKarney-class.html\">GeoidKarney</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.bases.LLK-class.html#_NOIDAL\">_NOIDAL</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.bases.LLK-class.html\">LLK</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.props.DeprecationWarnings-class.html#__call__\">__call__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.props.DeprecationWarnings-class.html\">DeprecationWarnings</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx._C4_24-module.html#_coeffs_24\">_coeffs_24</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx._C4_24-module.html\">pygeodesy.geodesicx._C4_24</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.booleans._Clip-class.html#_noInters\">_noInters</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.booleans._Clip-class.html\">_Clip</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.angles.Ang-class.html#__ceil__\">__ceil__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.angles.Ang-class.html\">Ang</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx._C4_27-module.html#_coeffs_27\">_coeffs_27</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx._C4_27-module.html\">pygeodesy.geodesicx._C4_27</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums-module.html#_non_zero_\">_non_zero_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums-module.html\">pygeodesy.fsums</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums.Fsum-class.html#__ceil__\">__ceil__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums.Fsum-class.html\">Fsum</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx._C4_30-module.html#_coeffs_30\">_coeffs_30</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx._C4_30-module.html\">pygeodesy.geodesicx._C4_30</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums-module.html#_NONFINITEr\">_NONFINITEr</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums-module.html\">pygeodesy.fsums</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__ceil__\">__ceil__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">Vector3dBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats._CX_4-module.html#_coeffs_4\">_coeffs_4</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats._CX_4-module.html\">pygeodesy.auxilats._CX_4</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums-module.html#_nonfinites_isfine_kwds\">_nonfinites_isfine_kwds</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums-module.html\">pygeodesy.fsums</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.angles.Ang-class.html#__cmp__\">__cmp__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.angles.Ang-class.html\">Ang</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats._CX_6-module.html#_coeffs_6\">_coeffs_6</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats._CX_6-module.html\">pygeodesy.auxilats._CX_6</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.Ned-class.html#_north\">_north</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.Ned-class.html\">Ned</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums.Fsum-class.html#__cmp__\">__cmp__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums.Fsum-class.html\">Fsum</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats._CX_8-module.html#_coeffs_8\">_coeffs_8</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats._CX_8-module.html\">pygeodesy.auxilats._CX_8</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples-module.html#_north_\">_north_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples-module.html\">pygeodesy.ltpTuples</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__cmp__\">__cmp__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">Vector3dBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_coincident_\">_coincident_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.css.Css-class.html#_northing\">_northing</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.css.Css-class.html\">Css</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.booleans._Clip-class.html#__contains__\">__contains__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.booleans._Clip-class.html\">_Clip</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_colinear_\">_colinear_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.lcc.Lcc-class.html#_northing\">_northing</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.lcc.Lcc-class.html\">Lcc</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.booleans._CompositeBase-class.html#__contains__\">__contains__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.booleans._CompositeBase-class.html\">_CompositeBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.internals-module.html#_COLON_\">_COLON_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.internals-module.html\">pygeodesy.internals</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.mgrs.Mgrs-class.html#_northing\">_northing</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.mgrs.Mgrs-class.html\">Mgrs</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.points.LatLon2psxy-class.html#__contains__\">__contains__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.points.LatLon2psxy-class.html\">LatLon2psxy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_COLON_\">_COLON_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.osgr.Osgr-class.html#_northing\">_northing</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.osgr.Osgr-class.html\">Osgr</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.points._Array2LatLon-class.html#__contains__\">__contains__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.points._Array2LatLon-class.html\">_Array2LatLon</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_COLONSPACE_\">_COLONSPACE_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html#_northing\">_northing</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html\">UtmUpsBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#__del__\">__del__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html\">_GeodesicLineExact</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.lazily-module.html#_COLONSPACE_\">_COLONSPACE_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.lazily-module.html\">pygeodesy.lazily</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_northing_\">_northing_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#__del__\">__del__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html\">RhumbLineBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.internals-module.html#_COMMA_\">_COMMA_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.internals-module.html\">pygeodesy.internals</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_not_\">_not_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.named._NamedTuple-class.html#__delattr__\">__delattr__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.named._NamedTuple-class.html\">_NamedTuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_COMMA_\">_COMMA_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.lazily-module.html#_not_\">_not_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.lazily-module.html\">pygeodesy.lazily</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.angles.Ang-class.html#__divmod__\">__divmod__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.angles.Ang-class.html\">Ang</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.named-module.html#_COMMANL_\">_COMMANL_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.named-module.html\">pygeodesy.named</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.props-module.html#_not_an_inst_\">_not_an_inst_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.props-module.html\">pygeodesy.props</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums.Fsum-class.html#__divmod__\">__divmod__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums.Fsum-class.html\">Fsum</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_COMMASPACE_\">_COMMASPACE_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_not_finite_\">_not_finite_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__divmod__\">__divmod__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">Vector3dBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.lazily-module.html#_COMMASPACE_\">_COMMASPACE_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.lazily-module.html\">pygeodesy.lazily</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.bases-module.html#_not_ordered_\">_not_ordered_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.bases-module.html\" onclick=\"show_private();\">pygeodesy.triaxials.bases</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.frechet.FrechetHubeny-class.html#__doc__\">__doc__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.frechet.FrechetHubeny-class.html\">FrechetHubeny</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.named-module.html#_COMMASPACEDOT_\">_COMMASPACEDOT_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.named-module.html\">pygeodesy.named</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_not_scalar_\">_not_scalar_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.hausdorff.HausdorffHubeny-class.html#__doc__\">__doc__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.hausdorff.HausdorffHubeny-class.html\">HausdorffHubeny</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.booleans._Clip-class.html#_composite\">_composite</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.booleans._Clip-class.html\">_Clip</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_NOTEQUAL_\">_NOTEQUAL_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.heights.HeightIDWhubeny-class.html#__doc__\">__doc__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.heights.HeightIDWhubeny-class.html\">HeightIDWhubeny</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_composite_\">_composite_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.iters-module.html#_NOTHING\">_NOTHING</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.iters-module.html\">pygeodesy.iters</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geoids._GeoidBase-class.html#__enter__\">__enter__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geoids._GeoidBase-class.html\">_GeoidBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.booleans._CompositeBase-class.html\">_CompositeBase</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.booleans-module.html\">pygeodesy.booleans</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.heights._HeightNamed-class.html#_np_sp\">_np_sp</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.heights._HeightNamed-class.html\">_HeightNamed</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.angles.Ang-class.html#__eq__\">__eq__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.angles.Ang-class.html\">Ang</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.booleans._CompositeFHP-class.html\">_CompositeFHP</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.booleans-module.html\">pygeodesy.booleans</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.albers._AlbersBase-class.html#_nrho0\">_nrho0</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.albers._AlbersBase-class.html\">_AlbersBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__eq__\">__eq__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html\">AuxAngle</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.booleans._CompositeGH-class.html\">_CompositeGH</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.booleans-module.html\">pygeodesy.booleans</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.points-module.html#_nrows_\">_nrows_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.points-module.html\">pygeodesy.points</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.booleans._Clip-class.html#__eq__\">__eq__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.booleans._Clip-class.html\">_Clip</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_concentric_\">_concentric_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_NS_\">_NS_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.booleans._CompositeBase-class.html#__eq__\">__eq__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.booleans._CompositeBase-class.html\">_CompositeBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.resections-module.html#_concyclic_\">_concyclic_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.resections-module.html\">pygeodesy.resections</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_NSEW_\">_NSEW_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.booleans._LatLonBool-class.html#__eq__\">__eq__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.booleans._LatLonBool-class.html\">_LatLonBool</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.lcc.Lcc-class.html#_conic\">_conic</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.lcc.Lcc-class.html\">Lcc</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geoids.GeoidKarney-class.html#_nterms\">_nterms</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geoids.GeoidKarney-class.html\">GeoidKarney</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.datums.Datum-class.html#__eq__\">__eq__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.datums.Datum-class.html\">Datum</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_convergence_\">_convergence_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.datums-module.html#_NTF_\">_NTF_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.datums-module.html\">pygeodesy.datums</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.datums.Transform-class.html#__eq__\">__eq__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.datums.Transform-class.html\">Transform</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_conversion_\">_conversion_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_NTF_\">_NTF_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ecef._EcefBase-class.html#__eq__\">__eq__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ecef._EcefBase-class.html\">_EcefBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_convex_\">_convex_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_null_\">_null_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#__eq__\">__eq__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.iters._BaseIter-class.html#_copies\">_copies</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.iters._BaseIter-class.html\">_BaseIter</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#_num\">_num</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html\">GeodesicAreaExact</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums.Fsum-class.html#__eq__\">__eq__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums.Fsum-class.html\">Fsum</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.booleans-module.html#_corners_\">_corners_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.booleans-module.html\">pygeodesy.booleans</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_number_\">_number_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums.Fsum2Tuple-class.html#__eq__\">__eq__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\">Fsum2Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geoids-module.html#_crop\">_crop</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geoids-module.html\">pygeodesy.geoids</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector2d-module.html#_numpy\">_numpy</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector2d-module.html\">pygeodesy.vector2d</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesici.XDict-class.html#__eq__\">__eq__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesici.XDict-class.html\">XDict</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geoids.GeoidPGM-class.html#_cropped\">_cropped</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geoids.GeoidPGM-class.html\">GeoidPGM</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_numpy_\">_numpy_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#__eq__\">__eq__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">LatLonBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geoids._GeoidBase-class.html#_cropped\">_cropped</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geoids._GeoidBase-class.html\">_GeoidBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalNvector.LatLon-class.html#_Nv\">_Nv</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalNvector.LatLon-class.html\">LatLon</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltp.LocalCartesian-class.html#__eq__\">__eq__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltp.LocalCartesian-class.html\">LocalCartesian</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#_crosserrors\">_crosserrors</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">Vector3dBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.sphericalNvector.LatLon-class.html#_Nv\">_Nv</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.sphericalNvector.LatLon-class.html\">LatLon</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.points.LatLon_-class.html#__eq__\">__eq__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.points.LatLon_-class.html\">LatLon_</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.css.Css-class.html#_CS0\">_CS0</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.css.Css-class.html\">Css</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalNvector-module.html#_Nv00\">_Nv00</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalNvector-module.html\">pygeodesy.ellipsoidalNvector</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.trf.RefFrame-class.html#__eq__\">__eq__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.trf.RefFrame-class.html\">RefFrame</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.css.Css-class.html#_cs0\">_cs0</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.css.Css-class.html\">Css</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.sphericalNvector-module.html#_Nv00\">_Nv00</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.sphericalNvector-module.html\">pygeodesy.sphericalNvector</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.trf.TRFXform-class.html#__eq__\">__eq__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.trf.TRFXform-class.html\">TRFXform</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxLat.AuxLat-class.html#_csc\">_csc</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats.auxLat.AuxLat-class.html\">AuxLat</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_Nv00_\">_Nv00_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.trf.TRFXform7Tuple-class.html#__eq__\">__eq__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.trf.TRFXform7Tuple-class.html\">TRFXform7Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesici-module.html#_cWGS84\">_cWGS84</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesici-module.html\">pygeodesy.geodesici</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_NW_\">_NW_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.trf.TransformXform-class.html#__eq__\">__eq__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.trf.TransformXform-class.html\">TransformXform</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats._CX_4-module.html\">_CX_4</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats-module.html\">pygeodesy.auxilats</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesici-module.html#_o__\">_o__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesici-module.html\">pygeodesy.geodesici</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ups.Ups-class.html#__eq__\">__eq__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ups.Ups-class.html\">Ups</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats._CX_6-module.html\">_CX_6</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats-module.html\">pygeodesy.auxilats</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesici.Intersectool-class.html#_o_alt\">_o_alt</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesici.Intersectool-class.html\">Intersectool</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utm.Utm-class.html#__eq__\">__eq__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utm.Utm-class.html\">Utm</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats._CX_8-module.html\">_CX_8</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats-module.html\">pygeodesy.auxilats</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_odd_\">_odd_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__eq__\">__eq__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">Vector3dBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats._CX_Rs-module.html\">_CX_Rs</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats-module.html\">pygeodesy.auxilats</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_of_\">_of_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geoids._GeoidBase-class.html#__exit__\">__exit__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geoids._GeoidBase-class.html\">_GeoidBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_D_\">_D_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.streprs-module.html#_OKd_\">_OKd_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.streprs-module.html\">pygeodesy.streprs</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.angles.Ang-class.html#__float__\">__float__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.angles.Ang-class.html\">Ang</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_d_\">_d_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.triaxial5-module.html#_omega_\">_omega_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.triaxial5-module.html\" onclick=\"show_private();\">pygeodesy.triaxials.triaxial5</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__float__\">__float__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html\">AuxAngle</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_DALL_\">_DALL_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.bases-module.html#_omg_\">_omg_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.bases-module.html\" onclick=\"show_private();\">pygeodesy.triaxials.bases</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fstats._FstatsNamed-class.html#__float__\">__float__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fstats._FstatsNamed-class.html\">_FstatsNamed</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.lazily-module.html#_DALL_\">_DALL_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.lazily-module.html\">pygeodesy.lazily</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_on_\">_on_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums.Fsum-class.html#__float__\">__float__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums.Fsum-class.html\">Fsum</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.internals-module.html#_DASH_\">_DASH_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.internals-module.html\">pygeodesy.internals</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.booleans-module.html#_open_\">_open_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.booleans-module.html\">pygeodesy.booleans</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums.Fsum2Tuple-class.html#__float__\">__float__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\">Fsum2Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_DASH_\">_DASH_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_opposite_\">_opposite_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__float__\">__float__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">Vector3dBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.albers._AlbersBase-class.html#_datum\">_datum</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.albers._AlbersBase-class.html\">_AlbersBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.lcc.Conic-class.html#_opt3\">_opt3</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.lcc.Conic-class.html\">Conic</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.angles.Ang-class.html#__floor__\">__floor__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.angles.Ang-class.html\">Ang</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#_datum\">_datum</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html\">_AzimuthalBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_or_\">_or_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums.Fsum-class.html#__floor__\">__floor__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums.Fsum-class.html\">Fsum</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#_datum\">_datum</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.cartesianBase.CartesianBase-class.html\">CartesianBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.lazily-module.html#_or_\">_or_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.lazily-module.html\">pygeodesy.lazily</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__floor__\">__floor__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">Vector3dBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.css.CassiniSoldner-class.html#_datum\">_datum</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.css.CassiniSoldner-class.html\">CassiniSoldner</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.osgr-module.html#_ord_A\">_ord_A</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.osgr-module.html\">pygeodesy.osgr</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.angles.Ang-class.html#__floordiv__\">__floordiv__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.angles.Ang-class.html\">Ang</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ecef._EcefBase-class.html#_datum\">_datum</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ecef._EcefBase-class.html\">_EcefBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.bases._OrderedTriaxialBase-class.html\">_OrderedTriaxialBase</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.bases-module.html\" onclick=\"show_private();\">pygeodesy.triaxials.bases</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums.Fsum-class.html#__floordiv__\">__floordiv__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums.Fsum-class.html\">Fsum</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#_datum\">_datum</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html\">CartesianEllipsoidalBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.clipy-module.html#_original_\">_original_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.clipy-module.html\">pygeodesy.clipy</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__floordiv__\">__floordiv__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">Vector3dBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#_datum\">_datum</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html\">LatLonEllipsoidalBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.datums-module.html#_OSGB36_\">_OSGB36_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.datums-module.html\">pygeodesy.datums</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.named._Named-class.html\">_Named</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalNvector.Nvector-class.html#_datum\">_datum</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalNvector.Nvector-class.html\">Nvector</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.osgr-module.html#_OSGR_\">_OSGR_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.osgr-module.html\">pygeodesy.osgr</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.angles.Ang-class.html#__ge__\">__ge__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.angles.Ang-class.html\">Ang</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.etm.ExactTransverseMercator-class.html#_datum\">_datum</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.etm.ExactTransverseMercator-class.html\">ExactTransverseMercator</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_other_\">_other_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.booleans._Clip-class.html#__ge__\">__ge__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.booleans._Clip-class.html\">_Clip</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.frechet.Frechet-class.html#_datum\">_datum</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.frechet.Frechet-class.html\">Frechet</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.karney.Caps-class.html#_OUT_ALL\">_OUT_ALL</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.karney.Caps-class.html\">Caps</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums.Fsum-class.html#__ge__\">__ge__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums.Fsum-class.html\">Fsum</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html#_datum\">_datum</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html\">GeodesicExact</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.karney.Caps-class.html#_OUT_MASK\">_OUT_MASK</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.karney.Caps-class.html\">Caps</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums.Fsum2Tuple-class.html#__ge__\">__ge__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\">Fsum2Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geoids.GeoidG2012B-class.html#_datum\">_datum</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geoids.GeoidG2012B-class.html\">GeoidG2012B</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector2d-module.html#_outer_\">_outer_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector2d-module.html\">pygeodesy.vector2d</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__ge__\">__ge__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">Vector3dBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.hausdorff.Hausdorff-class.html#_datum\">_datum</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.hausdorff.Hausdorff-class.html\">Hausdorff</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_outside_\">_outside_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.props.Property_RO-class.html#__get__\">__get__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.props.Property_RO-class.html\">Property_RO</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.heights._HeightNamed-class.html#_datum\">_datum</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.heights._HeightNamed-class.html\">_HeightNamed</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.azimuthal-module.html#_over_horizon_\">_over_horizon_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.azimuthal-module.html\">pygeodesy.azimuthal</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated-module.html#__getattr__\">__getattr__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated-module.html\">pygeodesy.deprecated</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ktm.KTransverseMercator-class.html#_datum\">_datum</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ktm.KTransverseMercator-class.html\">KTransverseMercator</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.etm-module.html#_OVERFLOW\">_OVERFLOW</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.etm-module.html\">pygeodesy.etm</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb-module.html#__getattr__\">__getattr__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb-module.html\">pygeodesy.rhumb</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#_datum\">_datum</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">LatLonBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_overlap_\">_overlap_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials-module.html#__getattr__\">__getattr__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials-module.html\">pygeodesy.triaxials</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.lcc.Conic-class.html#_datum\">_datum</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.lcc.Conic-class.html\">Conic</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.resections-module.html#_PA_\">_PA_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.resections-module.html\">pygeodesy.resections</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.named.ADict-class.html#__getattr__\">__getattr__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.named.ADict-class.html\">ADict</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.mgrs.Mgrs-class.html#_datum\">_datum</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.mgrs.Mgrs-class.html\">Mgrs</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.lcc.Conic-class.html#_par1\">_par1</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.lcc.Conic-class.html\">Conic</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.named._NamedEnum-class.html#__getattr__\">__getattr__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.named._NamedEnum-class.html\">_NamedEnum</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#_datum\">_datum</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.nvectorBase.NvectorBase-class.html\">NvectorBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.lcc-module.html#_par1_\">_par1_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.lcc-module.html\">pygeodesy.lcc</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.named._NamedTuple-class.html#__getattr__\">__getattr__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.named._NamedTuple-class.html\">_NamedTuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.osgr.Osgr-class.html#_datum\">_datum</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.osgr.Osgr-class.html\">Osgr</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.lcc.Conic-class.html#_par2\">_par2</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.lcc.Conic-class.html\">Conic</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.iters.LatLon2PsxyIter-class.html#__getitem__\">__getitem__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.iters.LatLon2PsxyIter-class.html\">LatLon2PsxyIter</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb.bases.RhumbBase-class.html#_datum\">_datum</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb.bases.RhumbBase-class.html\">RhumbBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.lcc-module.html#_par2_\">_par2_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.lcc-module.html\">pygeodesy.lcc</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.iters._BaseIter-class.html#__getitem__\">__getitem__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.iters._BaseIter-class.html\">_BaseIter</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#_datum\">_datum</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.solveBase._SolveCapsBase-class.html\">_SolveCapsBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_parallel_\">_parallel_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.points.LatLon2psxy-class.html#__getitem__\">__getitem__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.points.LatLon2psxy-class.html\">LatLon2psxy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.sphericalBase.CartesianSphericalBase-class.html#_datum\">_datum</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.sphericalBase.CartesianSphericalBase-class.html\">CartesianSphericalBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.internals-module.html#_passarg\">_passarg()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.internals-module.html\">pygeodesy.internals</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.points._Array2LatLon-class.html#__getitem__\">__getitem__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.points._Array2LatLon-class.html\">_Array2LatLon</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html#_datum\">_datum</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html\">LatLonSphericalBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.resections-module.html#_PB_\">_PB_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.resections-module.html\">pygeodesy.resections</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.bases.LLK-class.html#__getitem__\">__getitem__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.bases.LLK-class.html\">LLK</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.sphericalNvector.Nvector-class.html#_datum\">_datum</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.sphericalNvector.Nvector-class.html\">Nvector</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.resections-module.html#_PC_\">_PC_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.resections-module.html\">pygeodesy.resections</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.angles.Ang-class.html#__gt__\">__gt__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.angles.Ang-class.html\">Ang</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.trf.RefFrame-class.html#_datum\">_datum</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.trf.RefFrame-class.html\">RefFrame</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_PERCENT_\">_PERCENT_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.booleans._Clip-class.html#__gt__\">__gt__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.booleans._Clip-class.html\">_Clip</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html#_datum\">_datum</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html\">UtmUpsBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_PERCENTDOTSTAR_\">_PERCENTDOTSTAR_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums.Fsum-class.html#__gt__\">__gt__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums.Fsum-class.html\">Fsum</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.webmercator.Wm-class.html#_datum\">_datum</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.webmercator.Wm-class.html\">Wm</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#_Peri\">_Peri</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html\">GeodesicAreaExact</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums.Fsum2Tuple-class.html#__gt__\">__gt__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\">Fsum2Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_datum_\">_datum_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.karney-module.html#_perimeter_\">_perimeter_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.karney-module.html\">pygeodesy.karney</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__gt__\">__gt__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">Vector3dBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.units.Azimuth-class.html#_ddd_\">_ddd_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.units.Azimuth-class.html\">Azimuth</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geoids._GeoidBase-class.html#_pgm\">_pgm</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geoids._GeoidBase-class.html\">_GeoidBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.angles.Ang-class.html#__hash__\">__hash__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.angles.Ang-class.html\">Ang</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.units.Bearing-class.html#_ddd_\">_ddd_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.units.Bearing-class.html\">Bearing</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.lcc.Conic-class.html#_phi0\">_phi0</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.lcc.Conic-class.html\">Conic</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.booleans._Clip-class.html#__hash__\">__hash__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.booleans._Clip-class.html\">_Clip</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.units.Degrees-class.html#_ddd_\">_ddd_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.units.Degrees-class.html\">Degrees</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_phi_\">_phi_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.datums.Datum-class.html#__hash__\">__hash__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.datums.Datum-class.html\">Datum</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.units.Lat-class.html#_ddd_\">_ddd_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.units.Lat-class.html\">Lat</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.sphericalTrigonometry-module.html#_PI_EPS4\">_PI_EPS4</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.sphericalTrigonometry-module.html\">pygeodesy.sphericalTrigonometry</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.datums.Transform-class.html#__hash__\">__hash__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.datums.Transform-class.html\">Transform</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.units.Lat_-class.html#_ddd_\">_ddd_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.units.Lat_-class.html\">Lat_</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicw-module.html#_plumb_\">_plumb_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicw-module.html\">pygeodesy.geodesicw</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#__hash__\">__hash__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.units.Lon-class.html#_ddd_\">_ddd_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.units.Lon-class.html\">Lon</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_PLUS_\">_PLUS_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums.Fsum-class.html#__hash__\">__hash__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums.Fsum-class.html\">Fsum</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.units.Lon_-class.html#_ddd_\">_ddd_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.units.Lon_-class.html\">Lon_</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_PLUSMINUS_\">_PLUSMINUS_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.named._NamedTuple-class.html#__hash__\">__hash__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.named._NamedTuple-class.html\">_NamedTuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_DDOT_\">_DDOT_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_point_\">_point_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.trf.TRFXform7Tuple-class.html#__hash__\">__hash__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.trf.TRFXform7Tuple-class.html\">TRFXform7Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.karney._CapsBase-class.html#_debug\">_debug</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.karney._CapsBase-class.html\">_CapsBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.resections-module.html#_pointH_\">_pointH_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.resections-module.html\">pygeodesy.resections</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.trf.TransformXform-class.html#__hash__\">__hash__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.trf.TransformXform-class.html\">TransformXform</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.karney.Caps-class.html#_DEBUG_ALL\">_DEBUG_ALL</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.karney.Caps-class.html\">Caps</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.resections-module.html#_pointP_\">_pointP_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.resections-module.html\">pygeodesy.resections</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__hash__\">__hash__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">Vector3dBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.karney.Caps-class.html#_DEBUG_AREA\">_DEBUG_AREA</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.karney.Caps-class.html\">Caps</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_points_\">_points_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesici-module.html#__help_\">__help_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesici-module.html\">pygeodesy.geodesici</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.karney.Caps-class.html#_DEBUG_DIRECT\">_DEBUG_DIRECT</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.karney.Caps-class.html\">Caps</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.albers._AlbersBase-class.html#_polar\">_polar</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.albers._AlbersBase-class.html\">_AlbersBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.angles.Ang-class.html#__iadd__\">__iadd__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.angles.Ang-class.html\">Ang</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.karney.Caps-class.html#_DEBUG_DIRECT_LINE\">_DEBUG_DIRECT_LINE</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.karney.Caps-class.html\">Caps</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.mgrs-module.html#_polar_\">_polar_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.mgrs-module.html\">pygeodesy.mgrs</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__iadd__\">__iadd__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html\">AuxAngle</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.karney.Caps-class.html#_DEBUG_INVERSE\">_DEBUG_INVERSE</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.karney.Caps-class.html\">Caps</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalBaseDI-module.html#_polar__\">_polar__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalBaseDI-module.html\">pygeodesy.ellipsoidalBaseDI</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.booleans._BooleanBase-class.html#__iadd__\">__iadd__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.booleans._BooleanBase-class.html\">_BooleanBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.karney.Caps-class.html#_DEBUG_LINE\">_DEBUG_LINE</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.karney.Caps-class.html\">Caps</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ups.Ups-class.html#_pole\">_pole</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ups.Ups-class.html\">Ups</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fstats.Fcook-class.html#__iadd__\">__iadd__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fstats.Fcook-class.html\">Fcook</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_decode3_\">_decode3_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_pole_\">_pole_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fstats.Flinear-class.html#__iadd__\">__iadd__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fstats.Flinear-class.html\">Flinear</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.iters._BaseIter-class.html#_dedup\">_dedup</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.iters._BaseIter-class.html\">_BaseIter</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.constants-module.html#_pos_self\">_pos_self</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.constants-module.html\">pygeodesy.constants</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fstats.Fwelford-class.html#__iadd__\">__iadd__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fstats.Fwelford-class.html\">Fwelford</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.iters.LatLon2PsxyIter-class.html#_deg2m\">_deg2m</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.iters.LatLon2PsxyIter-class.html\">LatLon2PsxyIter</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.datums-module.html#_Potsdam_\">_Potsdam_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.datums-module.html\">pygeodesy.datums</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums.Fsum-class.html#__iadd__\">__iadd__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums.Fsum-class.html\">Fsum</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.points.LatLon2psxy-class.html#_deg2m\">_deg2m</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.points.LatLon2psxy-class.html\">LatLon2psxy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#_prec\">_prec</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.solveBase._SolveCapsBase-class.html\">_SolveCapsBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesici.XDict-class.html#__iadd__\">__iadd__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesici.XDict-class.html\">XDict</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_deg_\">_deg_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#_prec2stdin\">_prec2stdin</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.solveBase._SolveCapsBase-class.html\">_SolveCapsBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__iadd__\">__iadd__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">Vector3dBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.dms-module.html#_deg_min_\">_deg_min_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.dms-module.html\">pygeodesy.dms</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_precision_\">_precision_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.booleans._BooleanBase-class.html#__iand__\">__iand__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.booleans._BooleanBase-class.html\">_BooleanBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.wgrs-module.html#_DegChar\">_DegChar</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.wgrs-module.html\">pygeodesy.wgrs</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.booleans._LatLonBool-class.html#_prev\">_prev</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.booleans._LatLonBool-class.html\">_LatLonBool</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.angles.Ang-class.html#__ifloordiv__\">__ifloordiv__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.angles.Ang-class.html\">Ang</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.units-module.html#_Degrees\">_Degrees</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.units-module.html\">pygeodesy.units</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.iters._BaseIter-class.html#_prev\">_prev</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.iters._BaseIter-class.html\">_BaseIter</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums.Fsum-class.html#__ifloordiv__\">__ifloordiv__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums.Fsum-class.html\">Fsum</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_degrees2_\">_degrees2_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_prime_vertical_\">_prime_vertical_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__ifloordiv__\">__ifloordiv__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">Vector3dBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.dms-module.html#_DEGREES_\">_DEGREES_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.dms-module.html\">pygeodesy.dms</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ecef-module.html#_prolate_\">_prolate_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ecef-module.html\">pygeodesy.ecef</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.angles.Ang-class.html#__imatmul__\">__imatmul__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.angles.Ang-class.html\">Ang</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_degrees_\">_degrees_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.frechet.Frechet-class.html#_ps1\">_ps1</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.frechet.Frechet-class.html\">Frechet</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums.Fsum-class.html#__imatmul__\">__imatmul__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums.Fsum-class.html\">Fsum</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.errors-module.html#_del_\">_del_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.errors-module.html\">pygeodesy.errors</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.booleans._Clip-class.html#_pushback\">_pushback</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.booleans._Clip-class.html\">_Clip</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.named._Named-class.html\">_Named</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesici.XDict-class.html#_Delta\">_Delta</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesici.XDict-class.html\">XDict</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy-module.html#_pygeodesy_\">_pygeodesy_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__imatmul__\">__imatmul__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">Vector3dBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_delta_\">_delta_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.internals-module.html#_pygeodesy_\">_pygeodesy_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.internals-module.html\">pygeodesy.internals</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.angles.Ang-class.html#__imod__\">__imod__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.angles.Ang-class.html\">Ang</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector2d-module.html#_deltas_\">_deltas_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector2d-module.html\">pygeodesy.vector2d</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_pygeodesy_\">_pygeodesy_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums.Fsum-class.html#__imod__\">__imod__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums.Fsum-class.html\">Fsum</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_DEPRECATED_\">_DEPRECATED_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.lazily-module.html#_pygeodesy_\">_pygeodesy_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.lazily-module.html\">pygeodesy.lazily</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__imod__\">__imod__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">Vector3dBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.classes._Deprecated_NamedTuple-class.html\">_Deprecated_NamedTuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.classes-module.html\" onclick=\"show_private();\">pygeodesy.deprecated.classes</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_pygeodesy_abspath_\">_pygeodesy_abspath_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.angles.Ang-class.html#__imul__\">__imul__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.angles.Ang-class.html\">Ang</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_DEQUALSPACED_\">_DEQUALSPACED_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.lazily-module.html#_pygeodesy_abspath_\">_pygeodesy_abspath_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.lazily-module.html\">pygeodesy.lazily</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums.Fsum-class.html#__imul__\">__imul__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums.Fsum-class.html\">Fsum</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples-module.html#_destination_\">_destination_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples-module.html\">pygeodesy.namedTuples</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.internals-module.html#_PyPy__\">_PyPy__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.internals-module.html\">pygeodesy.internals</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__imul__\">__imul__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">Vector3dBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.bases.LLK-class.html#_DETICS\">_DETICS</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.bases.LLK-class.html\">LLK</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_PyPy__\">_PyPy__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.albers.AlbersEqualArea-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.albers.AlbersEqualArea-class.html\">AlbersEqualArea</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.datums-module.html#_DHDN_\">_DHDN_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.datums-module.html\">pygeodesy.datums</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.internals-module.html#_Python_\">_Python_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.internals-module.html\">pygeodesy.internals</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.albers.AlbersEqualArea2-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.albers.AlbersEqualArea2-class.html\">AlbersEqualArea2</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.datums-module.html#_DHDNE_\">_DHDNE_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.datums-module.html\">pygeodesy.datums</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.internals-module.html#_python_\">_python_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.internals-module.html\">pygeodesy.internals</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.albers.AlbersEqualArea4-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.albers.AlbersEqualArea4-class.html\">AlbersEqualArea4</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.datums-module.html#_DHDNW_\">_DHDNW_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.datums-module.html\">pygeodesy.datums</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_Python_\">_Python_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.albers.AlbersEqualAreaCylindrical-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.albers.AlbersEqualAreaCylindrical-class.html\">AlbersEqualAreaCylindrical</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#_diff\">_diff</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html\">AuxAngle</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_python_\">_python_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.albers.AlbersEqualAreaNorth-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.albers.AlbersEqualAreaNorth-class.html\">AlbersEqualAreaNorth</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxAngle.AuxPhi-class.html#_diff\">_diff</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats.auxAngle.AuxPhi-class.html\">AuxPhi</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.lazily-module.html#_PYTHON_X_DEV\">_PYTHON_X_DEV</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.lazily-module.html\">pygeodesy.lazily</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.albers.AlbersEqualAreaSouth-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.albers.AlbersEqualAreaSouth-class.html\">AlbersEqualAreaSouth</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.gars-module.html#_Digits\">_Digits</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.gars-module.html\">pygeodesy.gars</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.elevations-module.html#_QUESTION_\">_QUESTION_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.elevations-module.html\">pygeodesy.elevations</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.albers._AlbersBase-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.albers._AlbersBase-class.html\">_AlbersBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.wgrs-module.html#_Digits\">_Digits</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.wgrs-module.html\">pygeodesy.wgrs</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.internals-module.html#_QUOTE1_\">_QUOTE1_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.internals-module.html\">pygeodesy.internals</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.angles.Ang-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.angles.Ang-class.html\">Ang</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.karney.Caps-class.html#_DIRECT3\">_DIRECT3</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.karney.Caps-class.html\">Caps</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_QUOTE1_\">_QUOTE1_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html\">AuxAngle</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_distance_\">_distance_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.internals-module.html#_QUOTE2_\">_QUOTE2_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.internals-module.html\">pygeodesy.internals</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxDST.AuxDST-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats.auxDST.AuxDST-class.html\">AuxDST</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_distant_\">_distant_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_QUOTE2_\">_QUOTE2_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxLat.AuxLat-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats.auxLat.AuxLat-class.html\">AuxLat</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums-module.html#_divmod_op_\">_divmod_op_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums-module.html\">pygeodesy.fsums</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.elevations-module.html#_QUOTE2COLONSPACE_\">_QUOTE2COLONSPACE_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.elevations-module.html\">pygeodesy.elevations</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.azimuthal.Equidistant-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.azimuthal.Equidistant-class.html\">Equidistant</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.internals-module.html#_DMAIN_\">_DMAIN_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.internals-module.html\">pygeodesy.internals</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_QUOTE3_\">_QUOTE3_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.azimuthal.EquidistantExact-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.azimuthal.EquidistantExact-class.html\">EquidistantExact</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_DMAIN_\">_DMAIN_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.albers._AlbersBase-class.html#_qx\">_qx</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.albers._AlbersBase-class.html\">_AlbersBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.azimuthal.EquidistantGeodSolve-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.azimuthal.EquidistantGeodSolve-class.html\">EquidistantGeodSolve</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.lazily-module.html#_DMAIN_\">_DMAIN_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.lazily-module.html\">pygeodesy.lazily</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.albers._AlbersBase-class.html#_qZ\">_qZ</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.albers._AlbersBase-class.html\">_AlbersBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.azimuthal.EquidistantKarney-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.azimuthal.EquidistantKarney-class.html\">EquidistantKarney</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_DNAME_\">_DNAME_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.lcc.Conic-class.html#_r0\">_r0</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.lcc.Conic-class.html\">Conic</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.azimuthal.Gnomonic-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.azimuthal.Gnomonic-class.html\">Gnomonic</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.props-module.html#_DNL_\">_DNL_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.props-module.html\">pygeodesy.props</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.cartesianBase-module.html#_r_\">_r_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.cartesianBase-module.html\">pygeodesy.cartesianBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.azimuthal.GnomonicExact-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.azimuthal.GnomonicExact-class.html\">GnomonicExact</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_doesn_t_exist_\">_doesn_t_exist_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_R_\">_R_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.azimuthal.GnomonicGeodSolve-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.azimuthal.GnomonicGeodSolve-class.html\">GnomonicGeodSolve</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.lazily-module.html#_doesn_t_exist_\">_doesn_t_exist_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.lazily-module.html\">pygeodesy.lazily</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesici-module.html#_R__\">_R__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesici-module.html\">pygeodesy.geodesici</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.azimuthal.GnomonicKarney-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.azimuthal.GnomonicKarney-class.html\">GnomonicKarney</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.props-module.html#_dont_use_\">_dont_use_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.props-module.html\">pygeodesy.props</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb.aux_-module.html#_RACoeffs\">_RACoeffs</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb.aux_-module.html\" onclick=\"show_private();\">pygeodesy.rhumb.aux_</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.azimuthal.LambertEqualArea-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.azimuthal.LambertEqualArea-class.html\">LambertEqualArea</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.internals-module.html#_DOT_\">_DOT_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.internals-module.html\">pygeodesy.internals</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb.ekx-module.html#_RACoeffs\">_RACoeffs</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb.ekx-module.html\" onclick=\"show_private();\">pygeodesy.rhumb.ekx</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.azimuthal.Orthographic-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.azimuthal.Orthographic-class.html\">Orthographic</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_DOT_\">_DOT_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.resections-module.html#_radA_\">_radA_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.resections-module.html\">pygeodesy.resections</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.azimuthal.Stereographic-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.azimuthal.Stereographic-class.html\">Stereographic</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.lazily-module.html#_DOT_\">_DOT_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.lazily-module.html\">pygeodesy.lazily</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.resections-module.html#_radB_\">_radB_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.resections-module.html\">pygeodesy.resections</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html\">_AzimuthalBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.streprs-module.html#_DOTSTAR_\">_DOTSTAR_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.streprs-module.html\">pygeodesy.streprs</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.resections-module.html#_radC_\">_radC_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.resections-module.html\">pygeodesy.resections</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.azimuthal._EquidistantBase-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.azimuthal._EquidistantBase-class.html\">_EquidistantBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.Ned-class.html#_down\">_down</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.Ned-class.html\">Ned</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.units-module.html#_Radians\">_Radians</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.units-module.html\">pygeodesy.units</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.azimuthal._GnomonicBase-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.azimuthal._GnomonicBase-class.html\">_GnomonicBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples-module.html#_down_\">_down_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples-module.html\">pygeodesy.ltpTuples</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.formy-module.html#_RADIANS2\">_RADIANS2</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.formy-module.html\">pygeodesy.formy</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.booleans.BooleanFHP-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.booleans.BooleanFHP-class.html\">BooleanFHP</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_DSLASH_\">_DSLASH_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_radians2_\">_radians2_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.booleans.BooleanGH-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.booleans.BooleanGH-class.html\">BooleanGH</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_DSTAR_\">_DSTAR_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.dms-module.html#_RADIANS_\">_RADIANS_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.dms-module.html\">pygeodesy.dms</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.booleans.LatLonFHP-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.booleans.LatLonFHP-class.html\">LatLonFHP</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_DUNDER_\">_DUNDER_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_radians_\">_radians_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.booleans.LatLonGH-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.booleans.LatLonGH-class.html\">LatLonGH</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_duplicate_\">_duplicate_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.units-module.html#_Radii\">_Radii</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.units-module.html\">pygeodesy.units</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.booleans._Clip-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.booleans._Clip-class.html\">_Clip</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.booleans._LatLonBool-class.html#_dupof\">_dupof</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.booleans._LatLonBool-class.html\">_LatLonBool</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.iters.LatLon2PsxyIter-class.html#_radius\">_radius</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.iters.LatLon2PsxyIter-class.html\">LatLon2PsxyIter</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.booleans._CompositeBase-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.booleans._CompositeBase-class.html\">_CompositeBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.booleans._Clip-class.html#_dups\">_dups</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.booleans._Clip-class.html\">_Clip</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.points.LatLon2psxy-class.html#_radius\">_radius</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.points.LatLon2psxy-class.html\">LatLon2psxy</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.booleans._CompositeFHP-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.booleans._CompositeFHP-class.html\">_CompositeFHP</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxLat.AuxLat-class.html#_E\">_E</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats.auxLat.AuxLat-class.html\">AuxLat</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.webmercator.Wm-class.html#_radius\">_radius</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.webmercator.Wm-class.html\">Wm</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.booleans._CompositeGH-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.booleans._CompositeGH-class.html\">_CompositeGH</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ecef._EcefBase-class.html#_E\">_E</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ecef._EcefBase-class.html\">_EcefBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_radius1_\">_radius1_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.booleans._LatLonBool-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.booleans._LatLonBool-class.html\">_LatLonBool</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.etm.ExactTransverseMercator-class.html#_E\">_E</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.etm.ExactTransverseMercator-class.html\">ExactTransverseMercator</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_radius2_\">_radius2_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.cartesianBase.CartesianBase-class.html\">CartesianBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.lcc.Conic-class.html#_e\">_e</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.lcc.Conic-class.html\">Conic</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_radius_\">_radius_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.css.CassiniSoldner-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.css.CassiniSoldner-class.html\">CassiniSoldner</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.lcc.Conic-class.html#_E0\">_E0</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.lcc.Conic-class.html\">Conic</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector2d-module.html#_raise_\">_raise_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector2d-module.html\">pygeodesy.vector2d</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.css.Css-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.css.Css-class.html\">Css</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.lcc-module.html#_E0_\">_E0_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.lcc-module.html\">pygeodesy.lcc</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.booleans._CompositeBase-class.html#_raiser\">_raiser</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.booleans._CompositeBase-class.html\">_CompositeBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.datums.Datum-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.datums.Datum-class.html\">Datum</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.bases._Triaxial3Base-class.html#_e2_k2_kp2\">_e2_k2_kp2</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.bases._Triaxial3Base-class.html\">_Triaxial3Base</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.etm.ExactTransverseMercator-class.html#_raiser\">_raiser</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.etm.ExactTransverseMercator-class.html\">ExactTransverseMercator</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.datums.Transform-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.datums.Transform-class.html\">Transform</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_E_\">_E_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ktm.KTransverseMercator-class.html#_raiser\">_raiser</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ktm.KTransverseMercator-class.html\">KTransverseMercator</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.classes.JacobiConformal-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.classes.JacobiConformal-class.html\">JacobiConformal</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_e_\">_e_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_range_\">_range_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.classes.JacobiConformalSpherical-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.classes.JacobiConformalSpherical-class.html\">JacobiConformalSpherical</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_earth_\">_earth_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.errors-module.html#_rangerrors\">_rangerrors</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.errors-module.html\">pygeodesy.errors</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.classes.Lam_-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.classes.Lam_-class.html\">Lam_</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.webmercator.Wm-class.html#_earths\">_earths</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.webmercator.Wm-class.html\">Wm</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_RANGLE_\">_RANGLE_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.classes.Phi_-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.classes.Phi_-class.html\">Phi_</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.Ned-class.html#_east\">_east</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.Ned-class.html\">Ned</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector2d-module.html#_rank_\">_rank_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector2d-module.html\">pygeodesy.vector2d</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.classes.XDist-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.classes.XDist-class.html\">XDist</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples-module.html#_east_\">_east_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples-module.html\">pygeodesy.ltpTuples</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.trf-module.html#_rates_\">_rates_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.trf-module.html\">pygeodesy.trf</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.nvector.Nvector-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.nvector.Nvector-class.html\">Nvector</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.css.Css-class.html#_easting\">_easting</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.css.Css-class.html\">Css</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.formy-module.html#_ratio_\">_ratio_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.formy-module.html\">pygeodesy.formy</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ecef.EcefYou-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ecef.EcefYou-class.html\">EcefYou</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.lcc.Lcc-class.html#_easting\">_easting</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.lcc.Lcc-class.html\">Lcc</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geoids-module.html#_rb_\">_rb_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geoids-module.html\">pygeodesy.geoids</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ecef._EcefBase-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ecef._EcefBase-class.html\">_EcefBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.mgrs.Mgrs-class.html#_easting\">_easting</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.mgrs.Mgrs-class.html\">Mgrs</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_RCURLY_\">_RCURLY_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipses.Ellipse-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipses.Ellipse-class.html\">Ellipse</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.osgr.Osgr-class.html#_easting\">_easting</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.osgr.Osgr-class.html\">Osgr</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.mgrs-module.html#_RE\">_RE</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.mgrs-module.html\">pygeodesy.mgrs</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html\">CartesianEllipsoidalBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html#_easting\">_easting</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html\">UtmUpsBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_reciprocal_\">_reciprocal_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html\">LatLonEllipsoidalBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_easting_\">_easting_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.karney.Caps-class.html#_REDUCEDLENGTH_GEODESICSCALE\">_REDUCEDLENGTH_GEODESICSCALE</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.karney.Caps-class.html\">Caps</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalNvector.Ned-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalNvector.Ned-class.html\">Ned</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltp.LocalCartesian-class.html#_ecef\">_ecef</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltp.LocalCartesian-class.html\">LocalCartesian</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#_reframe\">_reframe</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html\">CartesianEllipsoidalBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalNvector.Nvector-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalNvector.Nvector-class.html\">Nvector</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ecef-module.html#_Ecef_\">_Ecef_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ecef-module.html\">pygeodesy.ecef</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#_reframe\">_reframe</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html\">LatLonEllipsoidalBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_ecef_\">_ecef_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_reframe_\">_reframe_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\">Ellipsoid2</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ecef._EcefBase-class.html\">_EcefBase</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ecef-module.html\">pygeodesy.ecef</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.errors-module.html#_region_\">_region_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.errors-module.html\">pygeodesy.errors</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.elliptic.Elliptic-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.elliptic.Elliptic-class.html\">Elliptic</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html\">_EcefLocal</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ecefLocals-module.html\">pygeodesy.ecefLocals</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.named-module.html#_registered_\">_registered_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.named-module.html\">pygeodesy.named</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.errors.ClipError-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.errors.ClipError-class.html\">ClipError</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ecef-module.html#_Ecefs\">_Ecefs</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ecef-module.html\">pygeodesy.ecef</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geoids.GeoidKarney-class.html#_Rendian\">_Rendian</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geoids.GeoidKarney-class.html\">GeoidKarney</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.errors.IntersectionError-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.errors.IntersectionError-class.html\">IntersectionError</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.datums-module.html#_ED50_\">_ED50_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.datums-module.html\">pygeodesy.datums</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.basics-module.html#_required_\">_required_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.basics-module.html\">pygeodesy.basics</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.errors.LenError-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.errors.LenError-class.html\">LenError</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_edge_\">_edge_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.cartesianBase-module.html#_resections\">_resections</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.cartesianBase-module.html\">pygeodesy.cartesianBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.etm.Etm-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.etm.Etm-class.html\">Etm</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geoids._GeoidBase-class.html#_egm\">_egm</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geoids._GeoidBase-class.html\">_GeoidBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums.Fsum-class.html#_RESIDUAL\">_RESIDUAL</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums.Fsum-class.html\">Fsum</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.etm.ExactTransverseMercator-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.etm.ExactTransverseMercator-class.html\">ExactTransverseMercator</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples-module.html#_elel_\">_elel_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples-module.html\">pygeodesy.namedTuples</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector2d-module.html#_residuals_\">_residuals_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector2d-module.html\">pygeodesy.vector2d</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fmath.Fcbrt-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fmath.Fcbrt-class.html\">Fcbrt</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.Aer-class.html#_elevation\">_elevation</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.Aer-class.html\">Aer</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.mgrs.Mgrs-class.html#_resolution\">_resolution</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.mgrs.Mgrs-class.html\">Mgrs</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fmath.Fdot-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fmath.Fdot-class.html\">Fdot</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#_elevation2to\">_elevation2to</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html\">LatLonEllipsoidalBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.osgr.Osgr-class.html#_resolution\">_resolution</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.osgr.Osgr-class.html\">Osgr</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fmath.Fdot_-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fmath.Fdot_-class.html\">Fdot_</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_elevation_\">_elevation_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_resolution_\">_resolution_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fmath.Fhorner-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fmath.Fhorner-class.html\">Fhorner</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_ELLIPSIS4_\">_ELLIPSIS4_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.gars-module.html#_Resolutions\">_Resolutions</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.gars-module.html\">pygeodesy.gars</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fmath.Fhypot-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fmath.Fhypot-class.html\">Fhypot</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.internals-module.html#_ELLIPSIS_\">_ELLIPSIS_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.internals-module.html\">pygeodesy.internals</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.solveBase._SolveBase-class.html#_reverse2\">_reverse2</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.solveBase._SolveBase-class.html\">_SolveBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fmath.Fpolynomial-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fmath.Fpolynomial-class.html\">Fpolynomial</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_ELLIPSIS_\">_ELLIPSIS_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#_rhumb\">_rhumb</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html\">RhumbLineBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fmath.Fpowers-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fmath.Fpowers-class.html\">Fpowers</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.datums.Datum-class.html#_ellipsoid\">_ellipsoid</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.datums.Datum-class.html\">Datum</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#_rhumbsolve\">_rhumbsolve</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fmath.Froot-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fmath.Froot-class.html\">Froot</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_ellipsoid_\">_ellipsoid_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb.solve._RhumbSolveBase-class.html\">_RhumbSolveBase</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb.solve-module.html\" onclick=\"show_private();\">pygeodesy.rhumb.solve</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fmath.Fsqrt-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fmath.Fsqrt-class.html\">Fsqrt</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_ellipsoidal_\">_ellipsoidal_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_rIn_\">_rIn_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.frechet.Frechet-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.frechet.Frechet-class.html\">Frechet</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.mgrs.Mgrs-class.html#_EN\">_EN</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.mgrs.Mgrs-class.html\">Mgrs</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb.bases-module.html#_rls\">_rls</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb.bases-module.html\" onclick=\"show_private();\">pygeodesy.rhumb.bases</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.frechet.FrechetCosineLaw-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.frechet.FrechetCosineLaw-class.html\">FrechetCosineLaw</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.booleans.LatLonFHP-class.html#_en_ex\">_en_ex</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.booleans.LatLonFHP-class.html\">LatLonFHP</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltp.Attitude-class.html#_roll\">_roll</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltp.Attitude-class.html\">Attitude</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.frechet.FrechetDegrees-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.frechet.FrechetDegrees-class.html\">FrechetDegrees</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.streprs-module.html#_EN_PREC\">_EN_PREC</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.streprs-module.html\">pygeodesy.streprs</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples-module.html#_roll_\">_roll_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples-module.html\">pygeodesy.ltpTuples</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.frechet.FrechetDistanceTo-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.frechet.FrechetDistanceTo-class.html\">FrechetDistanceTo</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.streprs-module.html#_EN_WIDE\">_EN_WIDE</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.streprs-module.html\">pygeodesy.streprs</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums-module.html#_ROs\">_ROs</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums-module.html\">pygeodesy.fsums</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.frechet.FrechetEquirectangular-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.frechet.FrechetEquirectangular-class.html\">FrechetEquirectangular</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_encode_\">_encode_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.booleans-module.html#_RP\">_RP</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.booleans-module.html\">pygeodesy.booleans</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.frechet.FrechetEuclidean-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.frechet.FrechetEuclidean-class.html\">FrechetEuclidean</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_end_\">_end_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.booleans-module.html#_RP2L\">_RP2L</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.booleans-module.html\">pygeodesy.booleans</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.frechet.FrechetExact-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.frechet.FrechetExact-class.html\">FrechetExact</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geoids.GeoidKarney-class.html#_endian\">_endian</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geoids.GeoidKarney-class.html\">GeoidKarney</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_RPAREN_\">_RPAREN_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.frechet.FrechetFlatLocal-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.frechet.FrechetFlatLocal-class.html\">FrechetFlatLocal</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geoids.GeoidPGM-class.html#_endian\">_endian</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geoids.GeoidPGM-class.html\">GeoidPGM</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.datums-module.html#_RPS\">_RPS</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.datums-module.html\">pygeodesy.datums</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.frechet.FrechetFlatLocal-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.frechet.FrechetFlatLocal-class.html\">FrechetFlatLocal</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geoids._GeoidBase-class.html#_endian\">_endian</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geoids._GeoidBase-class.html\">_GeoidBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxLat-module.html#_RRCoeffs\">_RRCoeffs</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats.auxLat-module.html\" onclick=\"show_private();\">pygeodesy.auxilats.auxLat</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.frechet.FrechetFlatPolar-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.frechet.FrechetFlatPolar-class.html\">FrechetFlatPolar</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geoids-module.html#_endian_\">_endian_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geoids-module.html\">pygeodesy.geoids</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_RSQUARE_\">_RSQUARE_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.frechet.FrechetHaversine-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.frechet.FrechetHaversine-class.html\">FrechetHaversine</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.booleans.LatLonGH-class.html#_entry\">_entry</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.booleans.LatLonGH-class.html\">LatLonGH</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geoids.GeoidKarney-class.html#_Ru2B\">_Ru2B</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geoids.GeoidKarney-class.html\">GeoidKarney</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.frechet.FrechetKarney-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.frechet.FrechetKarney-class.html\">FrechetKarney</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples-module.html#_enu_\">_enu_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples-module.html\">pygeodesy.ltpTuples</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_S12_\">_S12_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.frechet.FrechetRadians-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.frechet.FrechetRadians-class.html\">FrechetRadians</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.named._NamedEnumItem-class.html#_enum\">_enum</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.named._NamedEnumItem-class.html\">_NamedEnumItem</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_s12_\">_s12_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.frechet.FrechetThomas-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.frechet.FrechetThomas-class.html\">FrechetThomas</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.trf-module.html#_EP0CH\">_EP0CH</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.trf-module.html\">pygeodesy.trf</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#_s13\">_s13</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html\">_GeodesicLineExact</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.frechet.FrechetVincentys-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.frechet.FrechetVincentys-class.html\">FrechetVincentys</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#_epoch\">_epoch</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html\">CartesianEllipsoidalBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodsolve.GeodesicLineSolve-class.html#_s13\">_s13</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodsolve.GeodesicLineSolve-class.html\">GeodesicLineSolve</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fstats.Fcook-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fstats.Fcook-class.html\">Fcook</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#_epoch\">_epoch</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html\">LatLonEllipsoidalBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.datums-module.html#_S1_S\">_S1_S</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.datums-module.html\">pygeodesy.datums</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fstats.Flinear-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fstats.Flinear-class.html\">Flinear</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.trf.RefFrame-class.html#_epoch\">_epoch</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.trf.RefFrame-class.html\">RefFrame</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.internals-module.html#_s_\">_s_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.internals-module.html\">pygeodesy.internals</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fstats.Fwelford-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fstats.Fwelford-class.html\">Fwelford</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.trf.TRFXform-class.html#_epoch\">_epoch</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.trf.TRFXform-class.html\">TRFXform</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_S_\">_S_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums.Fsum-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums.Fsum-class.html\">Fsum</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_epoch_\">_epoch_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_s_\">_s_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geod3solve.Geodesic3Solve-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geod3solve.Geodesic3Solve-class.html\">Geodesic3Solve</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.trf.TRFXform-class.html#_epoch_d\">_epoch_d</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.trf.TRFXform-class.html\">TRFXform</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltp.ChLV-class.html#_s_ab\">_s_ab</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltp.ChLV-class.html\">ChLV</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geod3solve.GeodesicLine3Solve-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geod3solve.GeodesicLine3Solve-class.html\">GeodesicLine3Solve</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.booleans._CompositeBase-class.html#_eps\">_eps</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.booleans._CompositeBase-class.html\">_CompositeBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltp.ChLV-class.html#_s_d\">_s_d</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltp.ChLV-class.html\">ChLV</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesici.Intersectool-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesici.Intersectool-class.html\">Intersectool</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.booleans-module.html#_EPS0\">_EPS0</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.booleans-module.html\">pygeodesy.booleans</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.dms-module.html#_S_norm\">_S_norm</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.dms-module.html\">pygeodesy.dms</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesici.Intersector-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesici.Intersector-class.html\">Intersector</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.angles-module.html#_EPS03\">_EPS03</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.angles-module.html\">pygeodesy.angles</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesici-module.html#_sAB_\">_sAB_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesici-module.html\">pygeodesy.geodesici</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesici._IntersectBase-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesici._IntersectBase-class.html\">_IntersectBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.booleans-module.html#_EPS1\">_EPS1</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.booleans-module.html\">pygeodesy.booleans</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#_salp\">_salp</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html\">RhumbLineBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html\">GeodesicExact</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.constants-module.html#_EPS2e4\">_EPS2e4</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.constants-module.html\">pygeodesy.constants</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.karney.Caps-class.html#_SALP_CALPs_\">_SALP_CALPs_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.karney.Caps-class.html\">Caps</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx.gx.GeodesicLineExact-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx.gx.GeodesicLineExact-class.html\">GeodesicLineExact</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesici-module.html#_EPS3\">_EPS3</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesici-module.html\">pygeodesy.geodesici</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.css.CassiniSoldner-class.html#_sb0\">_sb0</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.css.CassiniSoldner-class.html\">CassiniSoldner</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html\">GeodesicAreaExact</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.constants-module.html#_EPS4e8\">_EPS4e8</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.constants-module.html\">pygeodesy.constants</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#_sc0\">_sc0</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html\">_AzimuthalBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx.gxarea.PolygonArea-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx.gxarea.PolygonArea-class.html\">PolygonArea</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.azimuthal-module.html#_EPS_K\">_EPS_K</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.azimuthal-module.html\">pygeodesy.azimuthal</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_scalar_\">_scalar_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html\">_GeodesicLineExact</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.epsg.Epsg-class.html#_epsg\">_epsg</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.epsg.Epsg-class.html\">Epsg</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.units-module.html#_ScalarU\">_ScalarU</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.units-module.html\">pygeodesy.units</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodsolve.GeodesicLineSolve-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodsolve.GeodesicLineSolve-class.html\">GeodesicLineSolve</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.epsg-module.html#_EPSG_N\">_EPSG_N</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.epsg-module.html\">pygeodesy.epsg</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#_scale\">_scale</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html\">LatLonEllipsoidalBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geohash.Geohashed-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geohash.Geohashed-class.html\">Geohashed</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.epsg-module.html#_EPSG_N_01\">_EPSG_N_01</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.epsg-module.html\">pygeodesy.epsg</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html#_scale\">_scale</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html\">UtmUpsBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geohash.Neighbors8Dict-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geohash.Neighbors8Dict-class.html\">Neighbors8Dict</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.epsg-module.html#_EPSG_N_60\">_EPSG_N_60</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.epsg-module.html\">pygeodesy.epsg</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ups.Ups-class.html#_scale0\">_scale0</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ups.Ups-class.html\">Ups</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geoids.GeoidEGM96-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geoids.GeoidEGM96-class.html\">GeoidEGM96</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.epsg-module.html#_EPSG_S\">_EPSG_S</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.epsg-module.html\">pygeodesy.epsg</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utm.Utm-class.html#_scale0\">_scale0</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utm.Utm-class.html\">Utm</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geoids.GeoidG2012B-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geoids.GeoidG2012B-class.html\">GeoidG2012B</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.epsg-module.html#_EPSG_S_01\">_EPSG_S_01</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.epsg-module.html\">pygeodesy.epsg</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_scale0_\">_scale0_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geoids.GeoidKarney-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geoids.GeoidKarney-class.html\">GeoidKarney</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.epsg-module.html#_EPSG_S_60\">_EPSG_S_60</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.epsg-module.html\">pygeodesy.epsg</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_scale_\">_scale_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geoids.GeoidPGM-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geoids.GeoidPGM-class.html\">GeoidPGM</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalVincenty.LatLon-class.html#_epsilon\">_epsilon</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalVincenty.LatLon-class.html\">LatLon</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_scipy_\">_scipy_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geoids._GeoidBase-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geoids._GeoidBase-class.html\">_GeoidBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.points._Basequence-class.html#_epsilon\">_epsilon</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.points._Basequence-class.html\">_Basequence</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_SE_\">_SE_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.hausdorff.Hausdorff-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.hausdorff.Hausdorff-class.html\">Hausdorff</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.constants-module.html#_EPSjam\">_EPSjam</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.constants-module.html\">pygeodesy.constants</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.dms-module.html#_SECONDS_\">_SECONDS_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.dms-module.html\">pygeodesy.dms</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.hausdorff.HausdorffCosineLaw-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.hausdorff.HausdorffCosineLaw-class.html\">HausdorffCosineLaw</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.constants-module.html#_EPSmin\">_EPSmin</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.constants-module.html\">pygeodesy.constants</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.hausdorff.Hausdorff-class.html#_seed\">_seed</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.hausdorff.Hausdorff-class.html\">Hausdorff</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.hausdorff.HausdorffDegrees-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.hausdorff.HausdorffDegrees-class.html\">HausdorffDegrees</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.constants-module.html#_EPSqrt\">_EPSqrt</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.constants-module.html\">pygeodesy.constants</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_semi_circular_\">_semi_circular_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.hausdorff.HausdorffDistanceTo-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.hausdorff.HausdorffDistanceTo-class.html\">HausdorffDistanceTo</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesici-module.html#_EPSr5\">_EPSr5</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesici-module.html\">pygeodesy.geodesici</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_sep_\">_sep_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.hausdorff.HausdorffEquirectangular-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.hausdorff.HausdorffEquirectangular-class.html\">HausdorffEquirectangular</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.constants-module.html#_EPStol\">_EPStol</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.constants-module.html\">pygeodesy.constants</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.units.Degrees-class.html#_sep_\">_sep_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.units.Degrees-class.html\">Degrees</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.hausdorff.HausdorffEuclidean-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.hausdorff.HausdorffEuclidean-class.html\">HausdorffEuclidean</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_EQUAL_\">_EQUAL_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.dms-module.html#_sexagecimal_\">_sexagecimal_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.dms-module.html\">pygeodesy.dms</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.hausdorff.HausdorffExact-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.hausdorff.HausdorffExact-class.html\">HausdorffExact</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_EQUALSPACED_\">_EQUALSPACED_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.dms-module.html#_SEXAGECIMUL\">_SEXAGECIMUL</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.dms-module.html\">pygeodesy.dms</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.hausdorff.HausdorffFlatLocal-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.hausdorff.HausdorffFlatLocal-class.html\">HausdorffFlatLocal</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.lazily-module.html#_EQUALSPACED_\">_EQUALSPACED_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.lazily-module.html\">pygeodesy.lazily</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.points._Array2LatLon-class.html#_shape\">_shape</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.points._Array2LatLon-class.html\">_Array2LatLon</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.hausdorff.HausdorffFlatLocal-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.hausdorff.HausdorffFlatLocal-class.html\">HausdorffFlatLocal</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.azimuthal._EquidistantBase-class.html\">_EquidistantBase</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.azimuthal-module.html\">pygeodesy.azimuthal</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.etm.ExactTransverseMercator-class.html#_sigmaC\">_sigmaC</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.etm.ExactTransverseMercator-class.html\">ExactTransverseMercator</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.hausdorff.HausdorffFlatPolar-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.hausdorff.HausdorffFlatPolar-class.html\">HausdorffFlatPolar</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.azimuthal-module.html#_Equidistants\">_Equidistants</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.azimuthal-module.html\">pygeodesy.azimuthal</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.albers._AlbersBase-class.html#_sign\">_sign</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.albers._AlbersBase-class.html\">_AlbersBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.hausdorff.HausdorffHaversine-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.hausdorff.HausdorffHaversine-class.html\">HausdorffHaversine</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.osgr-module.html#_equivalent_\">_equivalent_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.osgr-module.html\">pygeodesy.osgr</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums-module.html#_significant_\">_significant_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums-module.html\">pygeodesy.fsums</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.hausdorff.HausdorffKarney-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.hausdorff.HausdorffKarney-class.html\">HausdorffKarney</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#_Error\">_Error</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.solveBase._SolveCapsBase-class.html\">_SolveCapsBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utily-module.html#_SIN_30\">_SIN_30</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utily-module.html\">pygeodesy.utily</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.hausdorff.HausdorffRadians-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.hausdorff.HausdorffRadians-class.html\">HausdorffRadians</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html#_Error\">_Error</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html\">UtmUpsBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utily-module.html#_SIN_45\">_SIN_45</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utily-module.html\">pygeodesy.utily</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.hausdorff.HausdorffThomas-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.hausdorff.HausdorffThomas-class.html\">HausdorffThomas</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.heights-module.html#_error_\">_error_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.heights-module.html\">pygeodesy.heights</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_singular_\">_singular_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.hausdorff.HausdorffVincentys-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.hausdorff.HausdorffVincentys-class.html\">HausdorffVincentys</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_Error_\">_Error_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.internals-module.html#_SIsecs\">_SIsecs</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.internals-module.html\">pygeodesy.internals</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.heights.HeightCubic-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.heights.HeightCubic-class.html\">HeightCubic</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.solveBase-module.html#_ERROR_\">_ERROR_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.solveBase-module.html\">pygeodesy.solveBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geoids._GeoidBase-class.html#_sizeB\">_sizeB</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geoids._GeoidBase-class.html\">_GeoidBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.heights.HeightIDWcosineLaw-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.heights.HeightIDWcosineLaw-class.html\">HeightIDWcosineLaw</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.trf-module.html#_ETRF2000_\">_ETRF2000_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.trf-module.html\">pygeodesy.trf</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.Aer-class.html#_slantrange\">_slantrange</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.Aer-class.html\">Aer</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.heights.HeightIDWdistanceTo-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.heights.HeightIDWdistanceTo-class.html\">HeightIDWdistanceTo</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.trf-module.html#_ETRF2005_\">_ETRF2005_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.trf-module.html\">pygeodesy.trf</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples-module.html#_slantrange_\">_slantrange_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples-module.html\">pygeodesy.ltpTuples</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.heights.HeightIDWequirectangular-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.heights.HeightIDWequirectangular-class.html\">HeightIDWequirectangular</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.trf-module.html#_ETRF2008_\">_ETRF2008_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.trf-module.html\">pygeodesy.trf</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_SLASH_\">_SLASH_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.heights.HeightIDWeuclidean-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.heights.HeightIDWeuclidean-class.html\">HeightIDWeuclidean</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.trf-module.html#_ETRF2014_\">_ETRF2014_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.trf-module.html\">pygeodesy.trf</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltp.ChLV-class.html#_sLat\">_sLat</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltp.ChLV-class.html\">ChLV</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.heights.HeightIDWexact-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.heights.HeightIDWexact-class.html\">HeightIDWexact</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.trf-module.html#_ETRF2020_\">_ETRF2020_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.trf-module.html\">pygeodesy.trf</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltp.ChLV-class.html#_sLon\">_sLon</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltp.ChLV-class.html\">ChLV</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.heights.HeightIDWflatLocal-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.heights.HeightIDWflatLocal-class.html\">HeightIDWflatLocal</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.trf-module.html#_ETRF88_\">_ETRF88_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.trf-module.html\">pygeodesy.trf</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_small_\">_small_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.heights.HeightIDWflatLocal-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.heights.HeightIDWflatLocal-class.html\">HeightIDWflatLocal</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.trf-module.html#_ETRF89_\">_ETRF89_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.trf-module.html\">pygeodesy.trf</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geoids.GeoidKarney-class.html#_smooth\">_smooth</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geoids.GeoidKarney-class.html\">GeoidKarney</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.heights.HeightIDWflatPolar-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.heights.HeightIDWflatPolar-class.html\">HeightIDWflatPolar</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.trf-module.html#_ETRF90_\">_ETRF90_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.trf-module.html\">pygeodesy.trf</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geoids._GeoidBase-class.html#_smooth\">_smooth</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geoids._GeoidBase-class.html\">_GeoidBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.heights.HeightIDWhaversine-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.heights.HeightIDWhaversine-class.html\">HeightIDWhaversine</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.trf-module.html#_ETRF91_\">_ETRF91_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.trf-module.html\">pygeodesy.trf</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geod3solve.GeodesicLine3Solve-class.html#_solve\">_solve</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geod3solve.GeodesicLine3Solve-class.html\">GeodesicLine3Solve</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.heights.HeightIDWkarney-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.heights.HeightIDWkarney-class.html\">HeightIDWkarney</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.trf-module.html#_ETRF92_\">_ETRF92_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.trf-module.html\">pygeodesy.trf</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.solveBase._SolveGDictLineBase-class.html#_solve\">_solve</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.solveBase._SolveGDictLineBase-class.html\">_SolveGDictLineBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.heights.HeightIDWthomas-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.heights.HeightIDWthomas-class.html\">HeightIDWthomas</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.trf-module.html#_ETRF93_\">_ETRF93_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.trf-module.html\">pygeodesy.trf</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.solveBase._SolveBase-class.html\">_SolveBase</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.solveBase-module.html\">pygeodesy.solveBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.heights.HeightIDWvincentys-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.heights.HeightIDWvincentys-class.html\">HeightIDWvincentys</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.trf-module.html#_ETRF94_\">_ETRF94_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.trf-module.html\">pygeodesy.trf</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html\">_SolveCapsBase</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.solveBase-module.html\">pygeodesy.solveBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.heights.HeightLSQBiSpline-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.heights.HeightLSQBiSpline-class.html\">HeightLSQBiSpline</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.trf-module.html#_ETRF96_\">_ETRF96_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.trf-module.html\">pygeodesy.trf</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.solveBase._SolveGDictBase-class.html\">_SolveGDictBase</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.solveBase-module.html\">pygeodesy.solveBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.heights.HeightLinear-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.heights.HeightLinear-class.html\">HeightLinear</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.trf-module.html#_ETRF97_\">_ETRF97_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.trf-module.html\">pygeodesy.trf</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.solveBase._SolveGDictLineBase-class.html\">_SolveGDictLineBase</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.solveBase-module.html\">pygeodesy.solveBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.heights.HeightSmoothBiSpline-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.heights.HeightSmoothBiSpline-class.html\">HeightSmoothBiSpline</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_EW_\">_EW_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.lcc.Conic-class.html#_SP\">_SP</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.lcc.Conic-class.html\">Conic</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.heights._HeightIDW-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.heights._HeightIDW-class.html\">_HeightIDW</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids-module.html#_EWGS84\">_EWGS84</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids-module.html\">pygeodesy.ellipsoids</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.lcc-module.html#_SP_\">_SP_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.lcc-module.html\">pygeodesy.lcc</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.iters.LatLon2PsxyIter-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.iters.LatLon2PsxyIter-class.html\">LatLon2PsxyIter</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb.bases.RhumbBase-class.html#_exact\">_exact</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb.bases.RhumbBase-class.html\">RhumbBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.internals-module.html#_SPACE_\">_SPACE_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.internals-module.html\">pygeodesy.internals</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.iters.PointsIter-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.iters.PointsIter-class.html\">PointsIter</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#_Exact\">_Exact</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.solveBase._SolveCapsBase-class.html\">_SolveCapsBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_SPACE_\">_SPACE_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.iters._BaseIter-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.iters._BaseIter-class.html\">_BaseIter</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.etm.Etm-class.html#_exactTM\">_exactTM</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.etm.Etm-class.html\">Etm</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.lazily-module.html#_SPACE_\">_SPACE_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.lazily-module.html\">pygeodesy.lazily</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ktm.KTransverseMercator-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ktm.KTransverseMercator-class.html\">KTransverseMercator</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_exceed_PI_radians_\">_exceed_PI_radians_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_specified_\">_specified_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">LatLonBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_exceeds_\">_exceeds_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_Sphere_\">_Sphere_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.lazily.LazyAttributeError-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.lazily.LazyAttributeError-class.html\">LazyAttributeError</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.errors-module.html#_exception_chaining\">_exception_chaining</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.errors-module.html\">pygeodesy.errors</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_spherical_\">_spherical_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.lazily.LazyImportError-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.lazily.LazyImportError-class.html\">LazyImportError</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_exists_\">_exists_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.constants-module.html#_SQRT2\">_SQRT2</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.constants-module.html\">pygeodesy.constants</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.lcc.Conic-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.lcc.Conic-class.html\">Conic</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.errors-module.html#_expected_\">_expected_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.errors-module.html\">pygeodesy.errors</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.constants-module.html#_SQRT2_2\">_SQRT2_2</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.constants-module.html\">pygeodesy.constants</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.lcc.Lcc-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.lcc.Lcc-class.html\">Lcc</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.etm.ExactTransverseMercator-class.html#_extendp\">_extendp</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.etm.ExactTransverseMercator-class.html\">ExactTransverseMercator</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.constants-module.html#_SQRT3\">_SQRT3</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.constants-module.html\">pygeodesy.constants</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltp.Attitude-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltp.Attitude-class.html\">Attitude</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#_f\">_f</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.constants-module.html#_SQRT3_2\">_SQRT3_2</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.constants-module.html\">pygeodesy.constants</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltp.ChLV-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltp.ChLV-class.html\">ChLV</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.frechet.Frechet-class.html#_f1\">_f1</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.frechet.Frechet-class.html\">Frechet</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_STAR_\">_STAR_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltp.ChLVa-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltp.ChLVa-class.html\">ChLVa</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums.Fsum-class.html#_f2product\">_f2product</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums.Fsum-class.html\">Fsum</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_start_\">_start_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltp.ChLVe-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltp.ChLVe-class.html\">ChLVe</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#_f_\">_f_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#_status\">_status</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.solveBase._SolveCapsBase-class.html\">_SolveCapsBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltp.Frustum-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltp.Frustum-class.html\">Frustum</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_F_\">_F_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_std_\">_std_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltp.LocalCartesian-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltp.LocalCartesian-class.html\">LocalCartesian</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_f_\">_f_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.named-module.html#_std_NotImplemented\">_std_NotImplemented</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.named-module.html\">pygeodesy.named</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltp.Ltp-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltp.Ltp-class.html\">Ltp</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids-module.html#_f_0_0\">_f_0_0</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids-module.html\">pygeodesy.ellipsoids</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.units.Epoch-class.html#_std_repr\">_std_repr</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.units.Epoch-class.html\">Epoch</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.Aer-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.Aer-class.html\">Aer</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids-module.html#_f__0_0\">_f__0_0</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids-module.html\">pygeodesy.ellipsoids</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.unitsBase._NamedUnit-class.html#_std_repr\">_std_repr</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.unitsBase._NamedUnit-class.html\">_NamedUnit</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.Enu-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.Enu-class.html\">Enu</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids-module.html#_f__WGS84\">_f__WGS84</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids-module.html\">pygeodesy.ellipsoids</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geoids.GeoidKarney-class.html#_stdev\">_stdev</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geoids.GeoidKarney-class.html\">GeoidKarney</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.Los-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.Los-class.html\">Los</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.dms-module.html#_F_case\">_F_case</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.dms-module.html\">pygeodesy.dms</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geoids._GeoidBase-class.html#_stdev\">_stdev</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geoids._GeoidBase-class.html\">_GeoidBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.Ned-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.Ned-class.html\">Ned</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.dms-module.html#_F_DMS\">_F_DMS</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.dms-module.html\">pygeodesy.dms</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_stdev_\">_stdev_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.Uvw-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.Uvw-class.html\">Uvw</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb.bases.RhumbBase-class.html#_f_max\">_f_max</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb.bases.RhumbBase-class.html\">RhumbBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.unitsBase-module.html#_Str_degrees\">_Str_degrees</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.unitsBase-module.html\">pygeodesy.unitsBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.XyzLocal-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.XyzLocal-class.html\">XyzLocal</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.dms-module.html#_F_prec\">_F_prec</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.dms-module.html\">pygeodesy.dms</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.unitsBase-module.html#_Str_degrees2\">_Str_degrees2</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.unitsBase-module.html\">pygeodesy.unitsBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.mgrs.Mgrs-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.mgrs.Mgrs-class.html\">Mgrs</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.dms-module.html#_F_symb\">_F_symb</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.dms-module.html\">pygeodesy.dms</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.unitsBase-module.html#_Str_meter\">_Str_meter</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.unitsBase-module.html\">pygeodesy.unitsBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.named._NamedEnum-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.named._NamedEnum-class.html\">_NamedEnum</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html#_falsed\">_falsed</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html\">UtmUpsBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.unitsBase-module.html#_Str_NN\">_Str_NN</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.unitsBase-module.html\">pygeodesy.unitsBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.nvectorBase.NvectorBase-class.html\">NvectorBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utm-module.html#_FalseEasting\">_FalseEasting</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utm-module.html\">pygeodesy.utm</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.unitsBase-module.html#_Str_radians\">_Str_radians</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.unitsBase-module.html\">pygeodesy.unitsBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.osgr.Osgr-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.osgr.Osgr-class.html\">Osgr</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utm-module.html#_FalseNorthing\">_FalseNorthing</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utm-module.html\">pygeodesy.utm</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.unitsBase-module.html#_Str_radians2\">_Str_radians2</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.unitsBase-module.html\">pygeodesy.unitsBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.points.LatLon2psxy-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.points.LatLon2psxy-class.html\">LatLon2psxy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ups-module.html#_Falsing\">_Falsing</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ups-module.html\">pygeodesy.ups</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.errors-module.html#_streprs\">_streprs</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.errors-module.html\">pygeodesy.errors</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.points.LatLon_-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.points.LatLon_-class.html\">LatLon_</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_feet_\">_feet_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.basics-module.html#_Strs\">_Strs</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.basics-module.html\">pygeodesy.basics</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.points.Numpy2LatLon-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.points.Numpy2LatLon-class.html\">Numpy2LatLon</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.mgrs-module.html#_FeUPS\">_FeUPS</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.mgrs-module.html\">pygeodesy.mgrs</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_SUB_PACKAGES\">_SUB_PACKAGES</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.points.Tuple2LatLon-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.points.Tuple2LatLon-class.html\">Tuple2LatLon</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_few_\">_few_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.lazily-module.html#_SUB_PACKAGES\">_SUB_PACKAGES</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.lazily-module.html\">pygeodesy.lazily</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.points._Array2LatLon-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.points._Array2LatLon-class.html\">_Array2LatLon</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.streprs-module.html#_FfEeGg\">_FfEeGg</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.streprs-module.html\">pygeodesy.streprs</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.named-module.html#_such_\">_such_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.named-module.html\">pygeodesy.named</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.props.Property_RO-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.props.Property_RO-class.html\">Property_RO</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_fi_\">_fi_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.units.Azimuth-class.html#_suf_\">_suf_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.units.Azimuth-class.html\">Azimuth</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.props.Property_RO-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.props.Property_RO-class.html\">Property_RO</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.units.FIx-class.html#_fin\">_fin</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.units.FIx-class.html\">FIx</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.units.Bearing-class.html#_suf_\">_suf_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.units.Bearing-class.html\">Bearing</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.props.property_RO-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.props.property_RO-class.html\">property_RO</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples-module.html#_final_\">_final_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples-module.html\">pygeodesy.namedTuples</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.units.Degrees-class.html#_suf_\">_suf_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.units.Degrees-class.html\">Degrees</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb.aux_.RhumbAux-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb.aux_.RhumbAux-class.html\">RhumbAux</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_finite_\">_finite_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.units.Lat-class.html#_suf_\">_suf_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.units.Lat-class.html\">Lat</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb.aux_.RhumbLineAux-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb.aux_.RhumbLineAux-class.html\">RhumbLineAux</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.booleans._Clip-class.html#_first\">_first</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.booleans._Clip-class.html\">_Clip</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.units.Lat_-class.html#_suf_\">_suf_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.units.Lat_-class.html\">Lat_</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb.bases.RhumbBase-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb.bases.RhumbBase-class.html\">RhumbBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.clipy-module.html#_fj_\">_fj_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.clipy-module.html\">pygeodesy.clipy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.units.Lon-class.html#_suf_\">_suf_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.units.Lon-class.html\">Lon</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html\">RhumbLineBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipses.Ellipse-class.html#_flat\">_flat</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipses.Ellipse-class.html\">Ellipse</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.units.Lon_-class.html#_suf_\">_suf_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.units.Lon_-class.html\">Lon_</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb.ekx.Rhumb-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb.ekx.Rhumb-class.html\">Rhumb</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.wgrs-module.html#_float_Tile\">_float_Tile</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.wgrs-module.html\">pygeodesy.wgrs</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geoids-module.html#_supported_\">_supported_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geoids-module.html\">pygeodesy.geoids</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb.ekx.RhumbLine-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb.ekx.RhumbLine-class.html\">RhumbLine</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.constants-module.html#_floats\">_floats</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.constants-module.html\">pygeodesy.constants</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utm-module.html#_SvalbardXzone\">_SvalbardXzone</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utm-module.html\">pygeodesy.utm</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb.solve.RhumbLineSolve-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb.solve.RhumbLineSolve-class.html\">RhumbLineSolve</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.mgrs-module.html#_FnUPS\">_FnUPS</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.mgrs-module.html\">pygeodesy.mgrs</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_SW_\">_SW_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.solveBase._SolveGDictBase-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.solveBase._SolveGDictBase-class.html\">_SolveGDictBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.lazily-module.html#_FOR_DOCS\">_FOR_DOCS</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.lazily-module.html\">pygeodesy.lazily</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesici-module.html#_sX0_\">_sX0_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesici-module.html\">pygeodesy.geodesici</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.solveBase._SolveGDictLineBase-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.solveBase._SolveGDictLineBase-class.html\">_SolveGDictLineBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geoids-module.html#_format_\">_format_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geoids-module.html\">pygeodesy.geoids</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltp.LocalCartesian-class.html#_t0\">_t0</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltp.LocalCartesian-class.html\">LocalCartesian</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html\">LatLonSphericalBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.frechet-module.html#_formy\">_formy</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.frechet-module.html\">pygeodesy.frechet</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.sphericalTrigonometry-module.html#_T00\">_T00</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.sphericalTrigonometry-module.html\">pygeodesy.sphericalTrigonometry</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.trf.RefFrame-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.trf.RefFrame-class.html\">RefFrame</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geohash-module.html#_formy\">_formy</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geohash-module.html\">pygeodesy.geohash</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#_talp\">_talp</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html\">RhumbLineBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.trf.TRFXform-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.trf.TRFXform-class.html\">TRFXform</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.hausdorff-module.html#_formy\">_formy</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.hausdorff-module.html\">pygeodesy.hausdorff</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltp.Frustum-class.html#_tan_h_2\">_tan_h_2</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltp.Frustum-class.html\">Frustum</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.trf.TransformXform-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.trf.TransformXform-class.html\">TransformXform</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.heights-module.html#_formy\">_formy</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.heights-module.html\">pygeodesy.heights</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.etm-module.html#_TAYTOL\">_TAYTOL</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.etm-module.html\">pygeodesy.etm</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.bases._OrderedTriaxialBase-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.bases._OrderedTriaxialBase-class.html\">_OrderedTriaxialBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.latlonBase-module.html#_formy\">_formy</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.latlonBase-module.html\">pygeodesy.latlonBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.etm-module.html#_TAYTOL2\">_TAYTOL2</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.etm-module.html\">pygeodesy.etm</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html\">_UnOrderedTriaxialBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples-module.html#_fraction_\">_fraction_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples-module.html\">pygeodesy.namedTuples</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_tbd_\">_tbd_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.conformal3.Conformal3B-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.conformal3.Conformal3B-class.html\">Conformal3B</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_from_\">_from_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipses.Ellipse-class.html#_tEPS\">_tEPS</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipses.Ellipse-class.html\">Ellipse</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.conformal3.Conformal3Sphere-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.conformal3.Conformal3Sphere-class.html\">Conformal3Sphere</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.lazily-module.html#_from_\">_from_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.lazily-module.html\">pygeodesy.lazily</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.albers-module.html#_TERMS\">_TERMS</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.albers-module.html\">pygeodesy.albers</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.triaxial3.Triaxial3B-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.triaxial3.Triaxial3B-class.html\">Triaxial3B</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.streprs-module.html#_Fspec_\">_Fspec_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.streprs-module.html\">pygeodesy.streprs</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.cartesianBase-module.html#_theta_\">_theta_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.cartesianBase-module.html\">pygeodesy.cartesianBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.triaxial5.ConformalSphere-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.triaxial5.ConformalSphere-class.html\">ConformalSphere</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fstats._FstatsBase-class.html\">_FstatsBase</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fstats-module.html\">pygeodesy.fstats</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx.gx-module.html#_THR1\">_THR1</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx.gx-module.html\">pygeodesy.geodesicx.gx</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.triaxial5.Triaxial-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.triaxial5.Triaxial-class.html\">Triaxial</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fstats._FstatsNamed-class.html\">_FstatsNamed</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fstats-module.html\">pygeodesy.fstats</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums-module.html#_threshold_\">_threshold_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums-module.html\">pygeodesy.fsums</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.triaxial5.Triaxial_-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.triaxial5.Triaxial_-class.html\">Triaxial_</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums-module.html#_Fsum_2Tuple_types\">_Fsum_2Tuple_types</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums-module.html\">pygeodesy.fsums</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.streprs-module.html#_threshold_\">_threshold_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.streprs-module.html\">pygeodesy.streprs</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ups.Ups-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ups.Ups-class.html\">Ups</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.heights._HeightIDW-class.html#_func\">_func</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.heights._HeightIDW-class.html\">_HeightIDW</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.props-module.html#_throwarning\">_throwarning</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.props-module.html\">pygeodesy.props</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utm.Utm-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utm.Utm-class.html\">Utm</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.props-module.html#_function_\">_function_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.props-module.html\">pygeodesy.props</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_TILDE_\">_TILDE_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html\">UtmUpsBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utily-module.html#_G\">_G</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utily-module.html\">pygeodesy.utily</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.wgrs-module.html#_Tile\">_Tile</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.wgrs-module.html\">pygeodesy.wgrs</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">Vector3dBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_g_\">_g_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltp.Attitude-class.html#_tilt\">_tilt</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltp.Attitude-class.html\">Attitude</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.webmercator.Wm-class.html#__init__\">__init__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.webmercator.Wm-class.html\">Wm</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#_g_gX\">_g_gX</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html\">GeodesicAreaExact</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples-module.html#_tilt_\">_tilt_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples-module.html\">pygeodesy.ltpTuples</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.angles.Ang-class.html#__int__\">__int__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.angles.Ang-class.html\">Ang</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.conformal3-module.html#_gam_\">_gam_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.conformal3-module.html\" onclick=\"show_private();\">pygeodesy.triaxials.conformal3</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx.gx-module.html#_TINY3\">_TINY3</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx.gx-module.html\">pygeodesy.geodesicx.gx</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fstats._FstatsNamed-class.html#__int__\">__int__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fstats._FstatsNamed-class.html\">_FstatsNamed</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#_gamma\">_gamma</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html\">LatLonEllipsoidalBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_to_\">_to_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums.Fsum-class.html#__int__\">__int__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums.Fsum-class.html\">Fsum</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html#_gamma\">_gamma</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html\">UtmUpsBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxLat-module.html#_toAuxCase\">_toAuxCase</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats.auxLat-module.html\" onclick=\"show_private();\">pygeodesy.auxilats.auxLat</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums.Fsum2Tuple-class.html#__int__\">__int__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\">Fsum2Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_gamma_\">_gamma_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.latlonBase-module.html#_toCartesian3\">_toCartesian3</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.latlonBase-module.html\">pygeodesy.latlonBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__int__\">__int__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">Vector3dBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.datums-module.html#_GDA2020_\">_GDA2020_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.datums-module.html\">pygeodesy.datums</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.datums-module.html#_TokyoJapan_\">_TokyoJapan_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.datums-module.html\">pygeodesy.datums</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.angles.Ang-class.html#__invert__\">__invert__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.angles.Ang-class.html\">Ang</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.trf-module.html#_GDA94_\">_GDA94_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.trf-module.html\">pygeodesy.trf</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ecef.EcefSudano-class.html#_tol\">_tol</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ecef.EcefSudano-class.html\">EcefSudano</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums.Fsum-class.html#__invert__\">__invert__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums.Fsum-class.html\">Fsum</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.css.CassiniSoldner-class.html#_geodesic\">_geodesic</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.css.CassiniSoldner-class.html\">CassiniSoldner</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.triaxial3-module.html#_TOL\">_TOL</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.triaxial3-module.html\" onclick=\"show_private();\">pygeodesy.triaxials.triaxial3</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.booleans._BooleanBase-class.html#__ior__\">__ior__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.booleans._BooleanBase-class.html\">_BooleanBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geod3solve._Geodesic3SolveBase-class.html\">_Geodesic3SolveBase</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geod3solve-module.html\">pygeodesy.geod3solve</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.albers-module.html#_TOL0\">_TOL0</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.albers-module.html\">pygeodesy.albers</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.angles.Ang-class.html#__ipow__\">__ipow__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.angles.Ang-class.html\">Ang</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html\">_GeodesicLineExact</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx.gxline-module.html\">pygeodesy.geodesicx.gxline</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx.gx-module.html#_TOL0\">_TOL0</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx.gx-module.html\">pygeodesy.geodesicx.gx</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums.Fsum-class.html#__ipow__\">__ipow__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums.Fsum-class.html\">Fsum</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodsolve._GeodesicSolveBase-class.html\">_GeodesicSolveBase</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodsolve-module.html\">pygeodesy.geodsolve</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx.gx-module.html#_TOL016\">_TOL016</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx.gx-module.html\">pygeodesy.geodesicx.gx</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__ipow__\">__ipow__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">Vector3dBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#_geodsolve\">_geodsolve</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx.gx-module.html#_TOL08\">_TOL08</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx.gx-module.html\">pygeodesy.geodesicx.gx</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.angles.Ang-class.html#__isub__\">__isub__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.angles.Ang-class.html\">Ang</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geoids._GeoidBase-class.html#_geoid\">_geoid</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geoids._GeoidBase-class.html\">_GeoidBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx.gx-module.html#_TOL1\">_TOL1</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx.gx-module.html\">pygeodesy.geodesicx.gx</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__isub__\">__isub__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html\">AuxAngle</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geoids._GeoidBase-class.html\">_GeoidBase</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geoids-module.html\">pygeodesy.geoids</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx.gx-module.html#_TOL2\">_TOL2</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx.gx-module.html\">pygeodesy.geodesicx.gx</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.booleans.BooleanFHP-class.html#__isub__\">__isub__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.booleans.BooleanFHP-class.html\">BooleanFHP</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#_geoidHeight2to\">_geoidHeight2to</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html\">LatLonEllipsoidalBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.triaxial3-module.html#_TOL2\">_TOL2</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.triaxial3-module.html\" onclick=\"show_private();\">pygeodesy.triaxials.triaxial3</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.booleans.BooleanGH-class.html#__isub__\">__isub__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.booleans.BooleanGH-class.html\">BooleanGH</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.streprs-module.html#_Gg\">_Gg</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.streprs-module.html\">pygeodesy.streprs</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx.gx-module.html#_TOL3\">_TOL3</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx.gx-module.html\">pygeodesy.geodesicx.gx</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums.Fsum-class.html#__isub__\">__isub__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums.Fsum-class.html\">Fsum</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geohash-module.html#_GH\">_GH</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geohash-module.html\">pygeodesy.geohash</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipses-module.html#_TOL53\">_TOL53</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipses-module.html\">pygeodesy.ellipses</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__isub__\">__isub__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">Vector3dBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesici.Intersector-class.html#_gl3\">_gl3</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesici.Intersector-class.html\">Intersector</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipses-module.html#_TOL53_53\">_TOL53_53</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipses-module.html\">pygeodesy.ellipses</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.booleans._Clip-class.html#__iter__\">__iter__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.booleans._Clip-class.html\">_Clip</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx.gxline-module.html#_glXs\">_glXs</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx.gxline-module.html\">pygeodesy.geodesicx.gxline</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.etm-module.html#_TOL_10\">_TOL_10</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.etm-module.html\">pygeodesy.etm</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.booleans._CompositeBase-class.html#__iter__\">__iter__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.booleans._CompositeBase-class.html\">_CompositeBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.azimuthal._GnomonicBase-class.html\">_GnomonicBase</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.azimuthal-module.html\">pygeodesy.azimuthal</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx.gx-module.html#_TOLb\">_TOLb</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx.gx-module.html\">pygeodesy.geodesicx.gx</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.datums.Transform-class.html#__iter__\">__iter__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.datums.Transform-class.html\">Transform</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxily-module.html#_Greek2Aux\">_Greek2Aux</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats.auxily-module.html\" onclick=\"show_private();\">pygeodesy.auxilats.auxily</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_tolerance_\">_tolerance_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums.Fsum-class.html#__iter__\">__iter__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums.Fsum-class.html\">Fsum</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.trf-module.html#_GRS80\">_GRS80</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.trf-module.html\">pygeodesy.trf</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#_toLLEB_args\">_toLLEB_args</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html\">LatLonEllipsoidalBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.iters._BaseIter-class.html#__iter__\">__iter__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.iters._BaseIter-class.html\">_BaseIter</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_GRS80_\">_GRS80_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.elliptic-module.html#_TolRD\">_TolRD</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.elliptic-module.html\">pygeodesy.elliptic</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.points.LatLon2psxy-class.html#__iter__\">__iter__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.points.LatLon2psxy-class.html\">LatLon2psxy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#_gX\">_gX</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html\">_GeodesicLineExact</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.elliptic-module.html#_TolRF\">_TolRF</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.elliptic-module.html\">pygeodesy.elliptic</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.points._Array2LatLon-class.html#__iter__\">__iter__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.points._Array2LatLon-class.html\">_Array2LatLon</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#_H\">_H</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.nvectorBase.NvectorBase-class.html\">NvectorBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.elliptic-module.html#_TolRG0\">_TolRG0</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.elliptic-module.html\">pygeodesy.elliptic</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.angles.Ang-class.html#__itruediv__\">__itruediv__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.angles.Ang-class.html\">Ang</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#_h\">_h</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.nvectorBase.NvectorBase-class.html\">NvectorBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_too_\">_too_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums.Fsum-class.html#__itruediv__\">__itruediv__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums.Fsum-class.html\">Fsum</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_H_\">_H_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.Aer-class.html#_toStr\">_toStr</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.Aer-class.html\">Aer</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__itruediv__\">__itruediv__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">Vector3dBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_h_\">_h_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.Enu-class.html#_toStr\">_toStr</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.Enu-class.html\">Enu</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.angles.Ang-class.html#__le__\">__le__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.angles.Ang-class.html\">Ang</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltp.Frustum-class.html#_h_2\">_h_2</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltp.Frustum-class.html\">Frustum</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.Ned-class.html#_toStr\">_toStr</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.Ned-class.html\">Ned</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.booleans._Clip-class.html#__le__\">__le__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.booleans._Clip-class.html\">_Clip</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples-module.html#_h__\">_h__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples-module.html\">pygeodesy.ltpTuples</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.Uvw-class.html#_toStr\">_toStr</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.Uvw-class.html\">Uvw</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums.Fsum-class.html#__le__\">__le__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums.Fsum-class.html\">Fsum</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fmath-module.html#_h_lt_b_\">_h_lt_b_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fmath-module.html\">pygeodesy.fmath</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.datums.Datum-class.html#_transform\">_transform</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.datums.Datum-class.html\">Datum</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums.Fsum2Tuple-class.html#__le__\">__le__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\">Fsum2Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.props-module.html#_has_been_\">_has_been_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.props-module.html\">pygeodesy.props</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_transform_\">_transform_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesici.XDict-class.html#__le__\">__le__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesici.XDict-class.html\">XDict</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_HASH_\">_HASH_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geod3solve._Geodesic3SolveBase-class.html#_triaxial3\">_triaxial3</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geod3solve._Geodesic3SolveBase-class.html\">_Geodesic3SolveBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__le__\">__le__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">Vector3dBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.lazily-module.html#_HASH_\">_HASH_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.lazily-module.html\">pygeodesy.lazily</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geod3solve-module.html#_Triaxial3_WGS84\">_Triaxial3_WGS84</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geod3solve-module.html\">pygeodesy.geod3solve</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.booleans._Clip-class.html#__len__\">__len__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.booleans._Clip-class.html\">_Clip</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.elliptic-module.html#_Hdot\">_Hdot</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.elliptic-module.html\">pygeodesy.elliptic</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.bases._Triaxial3Base-class.html\">_Triaxial3Base</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.bases-module.html\" onclick=\"show_private();\">pygeodesy.triaxials.bases</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.booleans._CompositeBase-class.html#__len__\">__len__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.booleans._CompositeBase-class.html\">_CompositeBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geoids-module.html#_header_\">_header_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geoids-module.html\">pygeodesy.geoids</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxLat-module.html#_TRIPS\">_TRIPS</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats.auxLat-module.html\" onclick=\"show_private();\">pygeodesy.auxilats.auxLat</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fstats._FstatsNamed-class.html#__len__\">__len__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fstats._FstatsNamed-class.html\">_FstatsNamed</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.booleans._LatLonBool-class.html#_height\">_height</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.booleans._LatLonBool-class.html\">_LatLonBool</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.azimuthal-module.html#_TRIPS\">_TRIPS</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.azimuthal-module.html\">pygeodesy.azimuthal</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums.Fsum-class.html#__len__\">__len__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums.Fsum-class.html\">Fsum</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#_height\">_height</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.cartesianBase.CartesianBase-class.html\">CartesianBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ecef-module.html#_TRIPS\">_TRIPS</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ecef-module.html\">pygeodesy.ecef</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geohash.Geohashed-class.html#__len__\">__len__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geohash.Geohashed-class.html\">Geohashed</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.css.Css-class.html#_height\">_height</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.css.Css-class.html\">Css</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalBaseDI-module.html#_TRIPS\">_TRIPS</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalBaseDI-module.html\">pygeodesy.ellipsoidalBaseDI</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.iters._BaseIter-class.html#__len__\">__len__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.iters._BaseIter-class.html\">_BaseIter</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#_height\">_height</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">LatLonBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.etm-module.html#_TRIPS\">_TRIPS</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.etm-module.html\">pygeodesy.etm</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.points.LatLon2psxy-class.html#__len__\">__len__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.points.LatLon2psxy-class.html\">LatLon2psxy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.lcc.Lcc-class.html#_height\">_height</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.lcc.Lcc-class.html\">Lcc</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesici-module.html#_TRIPS\">_TRIPS</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesici-module.html\">pygeodesy.geodesici</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.points._Array2LatLon-class.html#__len__\">__len__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.points._Array2LatLon-class.html\">_Array2LatLon</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltp-module.html#_height0_\">_height0_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltp-module.html\">pygeodesy.ltp</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicw-module.html#_TRIPS\">_TRIPS</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicw-module.html\">pygeodesy.geodesicw</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.angles.Ang-class.html#__lt__\">__lt__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.angles.Ang-class.html\">Ang</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_height_\">_height_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.osgr-module.html#_TRIPS\">_TRIPS</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.osgr-module.html\">pygeodesy.osgr</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.booleans._Clip-class.html#__lt__\">__lt__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.booleans._Clip-class.html\">_Clip</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.heights._HeightBase-class.html\">_HeightBase</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.heights-module.html\">pygeodesy.heights</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb.bases-module.html#_TRIPS\">_TRIPS</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb.bases-module.html\" onclick=\"show_private();\">pygeodesy.rhumb.bases</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums.Fsum-class.html#__lt__\">__lt__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums.Fsum-class.html\">Fsum</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.heights._HeightIDW-class.html\">_HeightIDW</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.heights-module.html\">pygeodesy.heights</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.triaxial5-module.html#_TRIPS\">_TRIPS</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.triaxial5-module.html\" onclick=\"show_private();\">pygeodesy.triaxials.triaxial5</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums.Fsum2Tuple-class.html#__lt__\">__lt__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\">Fsum2Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.heights._HeightNamed-class.html\">_HeightNamed</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.heights-module.html\">pygeodesy.heights</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector2d-module.html#_Type_\">_Type_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector2d-module.html\">pygeodesy.vector2d</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesici.XDict-class.html#__lt__\">__lt__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesici.XDict-class.html\">XDict</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_hemipole_\">_hemipole_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geoids.GeoidKarney-class.html#_u2B\">_u2B</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geoids.GeoidKarney-class.html\">GeoidKarney</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.trf.RefFrame-class.html#__lt__\">__lt__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.trf.RefFrame-class.html\">RefFrame</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.epsg.Epsg-class.html#_hemisphere\">_hemisphere</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.epsg.Epsg-class.html\">Epsg</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geoids._GeoidBase-class.html#_u2B\">_u2B</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geoids._GeoidBase-class.html\">_GeoidBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.trf.TRFXform-class.html#__lt__\">__lt__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.trf.TRFXform-class.html\">TRFXform</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html#_hemisphere\">_hemisphere</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html\">UtmUpsBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.props.property_RO-class.html#_uname\">_uname</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.props.property_RO-class.html\">property_RO</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__lt__\">__lt__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">Vector3dBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geoids._GeoidBase-class.html#_hs_y_x\">_hs_y_x</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geoids._GeoidBase-class.html\">_GeoidBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.internals-module.html#_UNDER_\">_UNDER_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.internals-module.html\">pygeodesy.internals</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.__main__-module.html\">__main__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_i_\">_i_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_UNDER_\">_UNDER_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.__main__-module.html\">__main__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats-module.html\">pygeodesy.auxilats</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesici-module.html#_i__\">_i__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesici-module.html\">pygeodesy.geodesici</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.lazily-module.html#_UNDER_\">_UNDER_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.lazily-module.html\">pygeodesy.lazily</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx.__main__-module.html\">__main__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx-module.html\">pygeodesy.geodesicx</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesici.Intersectool-class.html#_i_alt\">_i_alt</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesici.Intersectool-class.html\">Intersectool</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.booleans._CompositeFHP-class.html#_Union\">_Union</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.booleans._CompositeFHP-class.html\">_CompositeFHP</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.angles.Ang-class.html#__matmul__\">__matmul__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.angles.Ang-class.html\">Ang</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums-module.html#_iadd_op_\">_iadd_op_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums-module.html\">pygeodesy.fsums</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.frechet.Frechet-class.html#_units\">_units</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.frechet.Frechet-class.html\">Frechet</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.datums.Datum-class.html#__matmul__\">__matmul__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.datums.Datum-class.html\">Datum</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.booleans._Clip-class.html#_id\">_id</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.booleans._Clip-class.html\">_Clip</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.frechet.FrechetDegrees-class.html#_units\">_units</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.frechet.FrechetDegrees-class.html\">FrechetDegrees</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.datums.Transform-class.html#__matmul__\">__matmul__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.datums.Transform-class.html\">Transform</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.booleans._Clip-class.html#_identical\">_identical</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.booleans._Clip-class.html\">_Clip</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.frechet.FrechetDistanceTo-class.html#_units\">_units</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.frechet.FrechetDistanceTo-class.html\">FrechetDistanceTo</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums.Fsum-class.html#__matmul__\">__matmul__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums.Fsum-class.html\">Fsum</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.datums-module.html#_Identity_\">_Identity_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.datums-module.html\">pygeodesy.datums</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.frechet.FrechetEquirectangular-class.html#_units\">_units</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.frechet.FrechetEquirectangular-class.html\">FrechetEquirectangular</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.named._Named-class.html\">_Named</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.formy-module.html#_idllmn6\">_idllmn6</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.formy-module.html\">pygeodesy.formy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.frechet.FrechetExact-class.html#_units\">_units</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.frechet.FrechetExact-class.html\">FrechetExact</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.trf.RefFrame-class.html#__matmul__\">__matmul__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.trf.RefFrame-class.html\">RefFrame</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_ijk\">_ijk</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html\">_UnOrderedTriaxialBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.frechet.FrechetKarney-class.html#_units\">_units</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.frechet.FrechetKarney-class.html\">FrechetKarney</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__matmul__\">__matmul__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">Vector3dBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.points._Array2LatLon-class.html#_ilat\">_ilat</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.points._Array2LatLon-class.html\">_Array2LatLon</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.frechet.FrechetRadians-class.html#_units\">_units</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.frechet.FrechetRadians-class.html\">FrechetRadians</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.angles.Ang-class.html#__mod__\">__mod__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.angles.Ang-class.html\">Ang</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.points-module.html#_ilat_\">_ilat_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.points-module.html\">pygeodesy.points</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.hausdorff.Hausdorff-class.html#_units\">_units</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.hausdorff.Hausdorff-class.html\">Hausdorff</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.booleans.LatLonFHP-class.html#__mod__\">__mod__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.booleans.LatLonFHP-class.html\">LatLonFHP</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.points._Array2LatLon-class.html#_ilon\">_ilon</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.points._Array2LatLon-class.html\">_Array2LatLon</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.hausdorff.HausdorffDegrees-class.html#_units\">_units</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.hausdorff.HausdorffDegrees-class.html\">HausdorffDegrees</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums.Fsum-class.html#__mod__\">__mod__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums.Fsum-class.html\">Fsum</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.points-module.html#_ilon_\">_ilon_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.points-module.html\">pygeodesy.points</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.hausdorff.HausdorffDistanceTo-class.html#_units\">_units</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.hausdorff.HausdorffDistanceTo-class.html\">HausdorffDistanceTo</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__mod__\">__mod__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">Vector3dBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_immutable_\">_immutable_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.hausdorff.HausdorffEquirectangular-class.html#_units\">_units</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.hausdorff.HausdorffEquirectangular-class.html\">HausdorffEquirectangular</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.angles.Ang-class.html#__mul__\">__mul__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.angles.Ang-class.html\">Ang</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.lazily-module.html#_imported_\">_imported_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.lazily-module.html\">pygeodesy.lazily</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.hausdorff.HausdorffExact-class.html#_units\">_units</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.hausdorff.HausdorffExact-class.html\">HausdorffExact</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.booleans.LatLonFHP-class.html#__mul__\">__mul__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.booleans.LatLonFHP-class.html\">LatLonFHP</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_in_\">_in_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.hausdorff.HausdorffFlatLocal-class.html#_units\">_units</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.hausdorff.HausdorffFlatLocal-class.html\">HausdorffFlatLocal</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums.Fsum-class.html#__mul__\">__mul__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums.Fsum-class.html\">Fsum</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_incompatible_\">_incompatible_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.hausdorff.HausdorffKarney-class.html#_units\">_units</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.hausdorff.HausdorffKarney-class.html\">HausdorffKarney</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.trf.TRFXform7Tuple-class.html#__mul__\">__mul__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.trf.TRFXform7Tuple-class.html\">TRFXform7Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.trf.TRFXform-class.html#_indir_d\">_indir_d</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.trf.TRFXform-class.html\">TRFXform</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.hausdorff.HausdorffRadians-class.html#_units\">_units</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.hausdorff.HausdorffRadians-class.html\">HausdorffRadians</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__mul__\">__mul__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">Vector3dBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_INF_\">_INF_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.unitsBase._NamedUnit-class.html#_units\">_units</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.unitsBase._NamedUnit-class.html\">_NamedUnit</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.angles.Ang-class.html#__ne__\">__ne__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.angles.Ang-class.html\">Ang</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.constants-module.html#_INF_NAN_NINF\">_INF_NAN_NINF</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.constants-module.html\">pygeodesy.constants</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.albers.Albers7Tuple-class.html#_Units_\">_Units_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.albers.Albers7Tuple-class.html\">Albers7Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__ne__\">__ne__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html\">AuxAngle</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_infinite_\">_infinite_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.azimuthal.Azimuthal7Tuple-class.html#_Units_\">_Units_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.azimuthal.Azimuthal7Tuple-class.html\">Azimuthal7Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.booleans._Clip-class.html#__ne__\">__ne__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.booleans._Clip-class.html\">_Clip</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy-module.html#_init__all__\">_init__all__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.cartesianBase.RadiusThetaPhi3Tuple-class.html#_Units_\">_Units_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.cartesianBase.RadiusThetaPhi3Tuple-class.html\">RadiusThetaPhi3Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.booleans._CompositeBase-class.html#__ne__\">__ne__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.booleans._CompositeBase-class.html\">_CompositeBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.lazily-module.html#_init__all__\">_init__all__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.lazily-module.html\">pygeodesy.lazily</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.clipy.ClipCS4Tuple-class.html#_Units_\">_Units_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.clipy.ClipCS4Tuple-class.html\">ClipCS4Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.booleans._LatLonBool-class.html#__ne__\">__ne__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.booleans._LatLonBool-class.html\">_LatLonBool</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_initial_\">_initial_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.clipy.ClipFHP4Tuple-class.html#_Units_\">_Units_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.clipy.ClipFHP4Tuple-class.html\">ClipFHP4Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums.Fsum-class.html#__ne__\">__ne__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums.Fsum-class.html\">Fsum</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_inside_\">_inside_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.clipy.ClipGH4Tuple-class.html#_Units_\">_Units_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.clipy.ClipGH4Tuple-class.html\">ClipGH4Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums.Fsum2Tuple-class.html#__ne__\">__ne__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\">Fsum2Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_insufficient_\">_insufficient_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.clipy.ClipLB6Tuple-class.html#_Units_\">_Units_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.clipy.ClipLB6Tuple-class.html\">ClipLB6Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesici.XDict-class.html#__ne__\">__ne__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesici.XDict-class.html\">XDict</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums-module.html#_integer_\">_integer_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums-module.html\">pygeodesy.fsums</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.clipy.ClipSH3Tuple-class.html#_Units_\">_Units_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.clipy.ClipSH3Tuple-class.html\">ClipSH3Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#__ne__\">__ne__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">LatLonBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums-module.html#_integer_ratio2\">_integer_ratio2</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums-module.html\">pygeodesy.fsums</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.css.EasNorAziRk4Tuple-class.html#_Units_\">_Units_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.css.EasNorAziRk4Tuple-class.html\">EasNorAziRk4Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.points.LatLon_-class.html#__ne__\">__ne__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.points.LatLon_-class.html\">LatLon_</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesici._IntersectBase-class.html\">_IntersectBase</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesici-module.html\">pygeodesy.geodesici</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.css.EasNorAziRkEqu6Tuple-class.html#_Units_\">_Units_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.css.EasNorAziRkEqu6Tuple-class.html\">EasNorAziRkEqu6Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__ne__\">__ne__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">Vector3dBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_intersection_\">_intersection_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.css.LatLonAziRk4Tuple-class.html#_Units_\">_Units_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.css.LatLonAziRk4Tuple-class.html\">LatLonAziRk4Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.angles.Ang-class.html#__neg__\">__neg__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.angles.Ang-class.html\">Ang</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_Intl1924_\">_Intl1924_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.classes.ClipCS3Tuple-class.html#_Units_\">_Units_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.classes.ClipCS3Tuple-class.html\">ClipCS3Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__neg__\">__neg__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html\">AuxAngle</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_INV_\">_INV_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.classes.EasNorExact4Tuple-class.html#_Units_\">_Units_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.classes.EasNorExact4Tuple-class.html\">EasNorExact4Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.datums.Transform-class.html#__neg__\">__neg__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.datums.Transform-class.html\">Transform</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_invalid_\">_invalid_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.classes.LatLonExact4Tuple-class.html#_Units_\">_Units_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.classes.LatLonExact4Tuple-class.html\">LatLonExact4Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fstats._FstatsNamed-class.html#__neg__\">__neg__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fstats._FstatsNamed-class.html\">_FstatsNamed</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.trf.TRFXform-class.html#_inver_d\">_inver_d</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.trf.TRFXform-class.html\">TRFXform</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.classes.NearestOn4Tuple-class.html#_Units_\">_Units_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.classes.NearestOn4Tuple-class.html\">NearestOn4Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums.Fsum-class.html#__neg__\">__neg__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums.Fsum-class.html\">Fsum</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.karney.Caps-class.html#_INVERSE3\">_INVERSE3</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.karney.Caps-class.html\">Caps</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.classes.Ned3Tuple-class.html#_Units_\">_Units_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.classes.Ned3Tuple-class.html\">Ned3Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums.Fsum2Tuple-class.html#__neg__\">__neg__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\">Fsum2Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.trf-module.html#_inverse_\">_inverse_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.trf-module.html\">pygeodesy.trf</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.classes.Rhumb7Tuple-class.html#_Units_\">_Units_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.classes.Rhumb7Tuple-class.html\">Rhumb7Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.trf.TRFXform-class.html#__neg__\">__neg__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.trf.TRFXform-class.html\">TRFXform</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#_invokat\">_invokat</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.solveBase._SolveCapsBase-class.html\">_SolveCapsBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.classes.RhumbOrder2Tuple-class.html#_Units_\">_Units_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.classes.RhumbOrder2Tuple-class.html\">RhumbOrder2Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.trf.TRFXform7Tuple-class.html#__neg__\">__neg__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.trf.TRFXform7Tuple-class.html\">TRFXform7Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#_invokation\">_invokation</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.solveBase._SolveCapsBase-class.html\">_SolveCapsBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.classes.Transform7Tuple-class.html#_Units_\">_Units_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.classes.Transform7Tuple-class.html\">Transform7Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__neg__\">__neg__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">Vector3dBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_invokation_\">_invokation_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.classes.TriAngle4Tuple-class.html#_Units_\">_Units_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.classes.TriAngle4Tuple-class.html\">TriAngle4Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.angles.Lambertian-class.html#__new__\">__new__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.angles.Lambertian-class.html\">Lambertian</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.internals-module.html#_iOS_\">_iOS_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.internals-module.html\">pygeodesy.internals</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.classes.UtmUps4Tuple-class.html#_Units_\">_Units_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.classes.UtmUps4Tuple-class.html\">UtmUps4Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.classes.Jacobi2Tuple-class.html#__new__\">__new__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.classes.Jacobi2Tuple-class.html\">Jacobi2Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.datums-module.html#_Irl1965_\">_Irl1965_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.datums-module.html\">pygeodesy.datums</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ecef.Ecef9Tuple-class.html#_Units_\">_Units_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ecef.Ecef9Tuple-class.html\">Ecef9Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.classes.Transform7Tuple-class.html#__new__\">__new__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.classes.Transform7Tuple-class.html\">Transform7Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.datums-module.html#_Irl1975_\">_Irl1975_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.datums-module.html\">pygeodesy.datums</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ecef.EcefMatrix-class.html#_Units_\">_Units_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ecef.EcefMatrix-class.html\">EcefMatrix</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.classes._Deprecated_NamedTuple-class.html#__new__\">__new__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.classes._Deprecated_NamedTuple-class.html\">_Deprecated_NamedTuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geoids.GeoidKarney-class.html#_iscipy\">_iscipy</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geoids.GeoidKarney-class.html\">GeoidKarney</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.elevations.Elevation2Tuple-class.html#_Units_\">_Units_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.elevations.Elevation2Tuple-class.html\">Elevation2Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ecef.EcefMatrix-class.html#__new__\">__new__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ecef.EcefMatrix-class.html\">EcefMatrix</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geoids._GeoidBase-class.html#_iscipy\">_iscipy</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geoids._GeoidBase-class.html\">_GeoidBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.elevations.GeoidHeight2Tuple-class.html#_Units_\">_Units_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.elevations.GeoidHeight2Tuple-class.html\">GeoidHeight2Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html#__new__\">__new__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\">a_f2Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums.Fsum-class.html#_isfine\">_isfine</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums.Fsum-class.html\">Fsum</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Curvature2Tuple-class.html#_Units_\">_Units_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Curvature2Tuple-class.html\">Curvature2Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.epsg.Epsg-class.html#__new__\">__new__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.epsg.Epsg-class.html\">Epsg</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy-module.html#_isfrozen\">_isfrozen</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html#_Units_\">_Units_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\">a_f2Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.gars.Garef-class.html#__new__\">__new__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.gars.Garef-class.html\">Garef</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.lazily-module.html#_isfrozen\">_isfrozen</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.lazily-module.html\">pygeodesy.lazily</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.elliptic.Elliptic3Tuple-class.html#_Units_\">_Units_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.elliptic.Elliptic3Tuple-class.html\">Elliptic3Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicw.Geodesic-class.html#__new__\">__new__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicw.Geodesic-class.html\">Geodesic</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums-module.html#_isub_op_\">_isub_op_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums-module.html\">pygeodesy.fsums</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.formy.Radical2Tuple-class.html#_Units_\">_Units_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.formy.Radical2Tuple-class.html\">Radical2Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicw.GeodesicLine-class.html#__new__\">__new__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicw.GeodesicLine-class.html\">GeodesicLine</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ecef.EcefYou-class.html#_isYou\">_isYou</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ecef.EcefYou-class.html\">EcefYou</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.frechet.Frechet6Tuple-class.html#_Units_\">_Units_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.frechet.Frechet6Tuple-class.html\">Frechet6Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geohash.Geohash-class.html#__new__\">__new__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geohash.Geohash-class.html\">Geohash</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ecef._EcefBase-class.html#_isYou\">_isYou</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ecef._EcefBase-class.html\">_EcefBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.frechet.FrechetFlatLocal-class.html#_units_\">_units_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.frechet.FrechetFlatLocal-class.html\">FrechetFlatLocal</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.named._NamedTuple-class.html#__new__\">__new__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.named._NamedTuple-class.html\">_NamedTuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.named-module.html#_item_\">_item_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.named-module.html\">pygeodesy.named</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums.DivMod2Tuple-class.html#_Units_\">_Units_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums.DivMod2Tuple-class.html\">DivMod2Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.UtmUps5Tuple-class.html#__new__\">__new__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples.UtmUps5Tuple-class.html\">UtmUps5Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.named._NamedEnum-class.html#_item_Classes\">_item_Classes</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.named._NamedEnum-class.html\">_NamedEnum</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums.Fsum2Tuple-class.html#_Units_\">_Units_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\">Fsum2Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.UtmUps8Tuple-class.html#__new__\">__new__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples.UtmUps8Tuple-class.html\">UtmUps8Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.points._Basequence-class.html#_itemname\">_itemname</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.points._Basequence-class.html\">_Basequence</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geod3solve.Geod3Solve8Tuple-class.html#_Units_\">_Units_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geod3solve.Geod3Solve8Tuple-class.html\">Geod3Solve8Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.UtmUpsLatLon5Tuple-class.html#__new__\">__new__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples.UtmUpsLatLon5Tuple-class.html\">UtmUpsLatLon5Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.iters._BaseIter-class.html#_items\">_items</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.iters._BaseIter-class.html\">_BaseIter</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesici.Intersect7Tuple-class.html#_Units_\">_Units_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesici.Intersect7Tuple-class.html\">Intersect7Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.bases.Conformal5Tuple-class.html#__new__\">__new__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.bases.Conformal5Tuple-class.html\" onclick=\"show_private();\">Conformal5Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.iters-module.html#_items_\">_items_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.iters-module.html\">pygeodesy.iters</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesici.Intersectool5Tuple-class.html#_Units_\">_Units_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesici.Intersectool5Tuple-class.html\">Intersectool5Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.conformal3.BetOmgGam5Tuple-class.html#__new__\">__new__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.conformal3.BetOmgGam5Tuple-class.html\">BetOmgGam5Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#_iter\">_iter</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html\">AuxAngle</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodsolve.GeodSolve12Tuple-class.html#_Units_\">_Units_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodsolve.GeodSolve12Tuple-class.html\">GeodSolve12Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.triaxial3.Cartesian5Tuple-class.html#__new__\">__new__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.triaxial3.Cartesian5Tuple-class.html\">Cartesian5Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.named.ADict-class.html#_iteration\">_iteration</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.named.ADict-class.html\">ADict</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geohash.Resolutions2Tuple-class.html#_Units_\">_Units_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geohash.Resolutions2Tuple-class.html\">Resolutions2Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.units.Azimuth-class.html#__new__\">__new__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.units.Azimuth-class.html\">Azimuth</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.named._Named-class.html#_iteration\">_iteration</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.named._Named-class.html\">_Named</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geohash.Sizes3Tuple-class.html#_Units_\">_Units_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geohash.Sizes3Tuple-class.html\">Sizes3Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.units.Band-class.html#__new__\">__new__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.units.Band-class.html\">Band</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalVincenty.LatLon-class.html#_iterations\">_iterations</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalVincenty.LatLon-class.html\">LatLon</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geoids.GeoidHeight5Tuple-class.html#_Units_\">_Units_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geoids.GeoidHeight5Tuple-class.html\">GeoidHeight5Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.units.Bearing-class.html#__new__\">__new__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.units.Bearing-class.html\">Bearing</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.iters-module.html#_iterNumpy2len\">_iterNumpy2len</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.iters-module.html\">pygeodesy.iters</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.hausdorff.Hausdorff6Tuple-class.html#_Units_\">_Units_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.hausdorff.Hausdorff6Tuple-class.html\">Hausdorff6Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.units.Bearing_-class.html#__new__\">__new__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.units.Bearing_-class.html\">Bearing_</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.trf-module.html#_ITRF2000_\">_ITRF2000_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.trf-module.html\">pygeodesy.trf</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_units_\">_units_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.units.Bool-class.html#__new__\">__new__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.units.Bool-class.html\">Bool</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.trf-module.html#_ITRF2005_\">_ITRF2005_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.trf-module.html\">pygeodesy.trf</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.karney.Area3Tuple-class.html#_Units_\">_Units_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.karney.Area3Tuple-class.html\">Area3Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.units.Degrees-class.html#__new__\">__new__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.units.Degrees-class.html\">Degrees</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.trf-module.html#_ITRF2008_\">_ITRF2008_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.trf-module.html\">pygeodesy.trf</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.karney.Direct9Tuple-class.html#_Units_\">_Units_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.karney.Direct9Tuple-class.html\">Direct9Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.units.Degrees2-class.html#__new__\">__new__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.units.Degrees2-class.html\">Degrees2</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.trf-module.html#_ITRF2014_\">_ITRF2014_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.trf-module.html\">pygeodesy.trf</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.karney.Inverse10Tuple-class.html#_Units_\">_Units_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.karney.Inverse10Tuple-class.html\">Inverse10Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.units.Degrees_-class.html#__new__\">__new__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.units.Degrees_-class.html\">Degrees_</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.trf-module.html#_ITRF2020_\">_ITRF2020_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.trf-module.html\">pygeodesy.trf</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.karney.Rhumb8Tuple-class.html#_Units_\">_Units_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.karney.Rhumb8Tuple-class.html\" onclick=\"show_private();\">Rhumb8Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.units.Distance-class.html#__new__\">__new__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.units.Distance-class.html\">Distance</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.trf-module.html#_ITRF88_\">_ITRF88_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.trf-module.html\">pygeodesy.trf</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.Aer4Tuple-class.html#_Units_\">_Units_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.Aer4Tuple-class.html\">Aer4Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.units.Distance_-class.html#__new__\">__new__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.units.Distance_-class.html\">Distance_</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.trf-module.html#_ITRF89_\">_ITRF89_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.trf-module.html\">pygeodesy.trf</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.Attitude4Tuple-class.html#_Units_\">_Units_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.Attitude4Tuple-class.html\">Attitude4Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.units.Easting-class.html#__new__\">__new__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.units.Easting-class.html\">Easting</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.trf-module.html#_ITRF90_\">_ITRF90_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.trf-module.html\">pygeodesy.trf</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.ChLVEN2Tuple-class.html#_Units_\">_Units_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.ChLVEN2Tuple-class.html\">ChLVEN2Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.units.Epoch-class.html#__new__\">__new__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.units.Epoch-class.html\">Epoch</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.trf-module.html#_ITRF91_\">_ITRF91_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.trf-module.html\">pygeodesy.trf</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.ChLVYX2Tuple-class.html#_Units_\">_Units_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.ChLVYX2Tuple-class.html\">ChLVYX2Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.units.FIx-class.html#__new__\">__new__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.units.FIx-class.html\">FIx</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.trf-module.html#_ITRF92_\">_ITRF92_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.trf-module.html\">pygeodesy.trf</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.ChLVyx2Tuple-class.html#_Units_\">_Units_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.ChLVyx2Tuple-class.html\">ChLVyx2Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.units.Feet-class.html#__new__\">__new__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.units.Feet-class.html\">Feet</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.trf-module.html#_ITRF93_\">_ITRF93_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.trf-module.html\">pygeodesy.trf</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.Enu4Tuple-class.html#_Units_\">_Units_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.Enu4Tuple-class.html\">Enu4Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.units.Float_-class.html#__new__\">__new__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.units.Float_-class.html\">Float_</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.trf-module.html#_ITRF94_\">_ITRF94_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.trf-module.html\">pygeodesy.trf</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.Footprint5Tuple-class.html#_Units_\">_Units_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.Footprint5Tuple-class.html\">Footprint5Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.units.Height-class.html#__new__\">__new__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.units.Height-class.html\">Height</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.trf-module.html#_ITRF96_\">_ITRF96_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.trf-module.html\">pygeodesy.trf</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.Local9Tuple-class.html#_Units_\">_Units_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.Local9Tuple-class.html\">Local9Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.units.Height_-class.html#__new__\">__new__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.units.Height_-class.html\">Height_</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.trf-module.html#_ITRF97_\">_ITRF97_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.trf-module.html\">pygeodesy.trf</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.Ned4Tuple-class.html#_Units_\">_Units_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.Ned4Tuple-class.html\">Ned4Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.units.Int_-class.html#__new__\">__new__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.units.Int_-class.html\">Int_</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.trf-module.html#_ITRF_\">_ITRF_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.trf-module.html\">pygeodesy.trf</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.Uvw3Tuple-class.html#_Units_\">_Units_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.Uvw3Tuple-class.html\">Uvw3Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.units.Lam-class.html#__new__\">__new__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.units.Lam-class.html\">Lam</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_j_\">_j_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.Xyz4Tuple-class.html#_Units_\">_Units_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.Xyz4Tuple-class.html\">Xyz4Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.units.Lamd-class.html#__new__\">__new__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.units.Lamd-class.html\">Lamd</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.elevations-module.html#_JSON_\">_JSON_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.elevations-module.html\">pygeodesy.elevations</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.mgrs.Mgrs4Tuple-class.html#_Units_\">_Units_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.mgrs.Mgrs4Tuple-class.html\">Mgrs4Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.units.Lat-class.html#__new__\">__new__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.units.Lat-class.html\">Lat</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.mgrs-module.html#_JtoZx_\">_JtoZx_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.mgrs-module.html\">pygeodesy.mgrs</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.mgrs.Mgrs6Tuple-class.html#_Units_\">_Units_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.mgrs.Mgrs6Tuple-class.html\">Mgrs6Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.units.Lat_-class.html#__new__\">__new__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.units.Lat_-class.html\">Lat_</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.albers.AlbersEqualArea-class.html#_k\">_k</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.albers.AlbersEqualArea-class.html\">AlbersEqualArea</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.named._NamedTuple-class.html#_Units_\">_Units_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.named._NamedTuple-class.html\">_NamedTuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.units.Lon-class.html#__new__\">__new__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.units.Lon-class.html\">Lon</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.albers.AlbersEqualArea2-class.html#_k\">_k</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.albers.AlbersEqualArea2-class.html\">AlbersEqualArea2</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.named-module.html#_Units_\">_Units_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.named-module.html\">pygeodesy.named</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.units.Lon_-class.html#__new__\">__new__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.units.Lon_-class.html\">Lon_</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.albers.AlbersEqualArea4-class.html#_k\">_k</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.albers.AlbersEqualArea4-class.html\">AlbersEqualArea4</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.Bearing2Tuple-class.html#_Units_\">_Units_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples.Bearing2Tuple-class.html\">Bearing2Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.units.Meter-class.html#__new__\">__new__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.units.Meter-class.html\">Meter</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.albers._AlbersBase-class.html#_k\">_k</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.albers._AlbersBase-class.html\">_AlbersBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.Bounds2Tuple-class.html#_Units_\">_Units_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples.Bounds2Tuple-class.html\">Bounds2Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.units.Meter2-class.html#__new__\">__new__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.units.Meter2-class.html\">Meter2</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.albers._AlbersBase-class.html#_k0\">_k0</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.albers._AlbersBase-class.html\">_AlbersBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.Bounds4Tuple-class.html#_Units_\">_Units_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples.Bounds4Tuple-class.html\">Bounds4Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.units.Meter3-class.html#__new__\">__new__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.units.Meter3-class.html\">Meter3</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.azimuthal.Stereographic-class.html#_k0\">_k0</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.azimuthal.Stereographic-class.html\">Stereographic</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.Circle4Tuple-class.html#_Units_\">_Units_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples.Circle4Tuple-class.html\">Circle4Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.units.Meter_-class.html#__new__\">__new__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.units.Meter_-class.html\">Meter_</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.etm.ExactTransverseMercator-class.html#_k0\">_k0</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.etm.ExactTransverseMercator-class.html\">ExactTransverseMercator</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.Destination2Tuple-class.html#_Units_\">_Units_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples.Destination2Tuple-class.html\">Destination2Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.units.Northing-class.html#__new__\">__new__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.units.Northing-class.html\">Northing</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ktm.KTransverseMercator-class.html#_k0\">_k0</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ktm.KTransverseMercator-class.html\">KTransverseMercator</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.Destination3Tuple-class.html#_Units_\">_Units_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples.Destination3Tuple-class.html\">Destination3Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.units.Number_-class.html#__new__\">__new__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.units.Number_-class.html\">Number_</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.lcc.Conic-class.html#_k0\">_k0</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.lcc.Conic-class.html\">Conic</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.Distance2Tuple-class.html#_Units_\">_Units_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples.Distance2Tuple-class.html\">Distance2Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.units.Phi-class.html#__new__\">__new__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.units.Phi-class.html\">Phi</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.albers._AlbersBase-class.html#_k02\">_k02</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.albers._AlbersBase-class.html\">_AlbersBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.Distance3Tuple-class.html#_Units_\">_Units_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples.Distance3Tuple-class.html\">Distance3Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.units.Phid-class.html#__new__\">__new__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.units.Phid-class.html\">Phid</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.azimuthal.Stereographic-class.html#_k02\">_k02</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.azimuthal.Stereographic-class.html\">Stereographic</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.Distance4Tuple-class.html#_Units_\">_Units_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples.Distance4Tuple-class.html\">Distance4Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.units.Precision_-class.html#__new__\">__new__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.units.Precision_-class.html\">Precision_</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_k0_\">_k0_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.EasNor2Tuple-class.html#_Units_\">_Units_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples.EasNor2Tuple-class.html\">EasNor2Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.units.Radians-class.html#__new__\">__new__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.units.Radians-class.html\">Radians</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.constants-module.html#_K0_UPS\">_K0_UPS</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.constants-module.html\">pygeodesy.constants</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.EasNor3Tuple-class.html#_Units_\">_Units_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples.EasNor3Tuple-class.html\">EasNor3Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.units.Radians2-class.html#__new__\">__new__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.units.Radians2-class.html\">Radians2</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.constants-module.html#_K0_UTM\">_K0_UTM</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.constants-module.html\">pygeodesy.constants</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.Ellipse5Tuple-class.html#_Units_\">_Units_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples.Ellipse5Tuple-class.html\">Ellipse5Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.units.Radians_-class.html#__new__\">__new__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.units.Radians_-class.html\">Radians_</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.albers-module.html#_k1_\">_k1_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.albers-module.html\">pygeodesy.albers</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.Forward4Tuple-class.html#_Units_\">_Units_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples.Forward4Tuple-class.html\">Forward4Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.units.Radius_-class.html#__new__\">__new__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.units.Radius_-class.html\">Radius_</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ups-module.html#_K1_UPS\">_K1_UPS</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ups-module.html\">pygeodesy.ups</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.Intersection3Tuple-class.html#_Units_\">_Units_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples.Intersection3Tuple-class.html\">Intersection3Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.units.Scalar-class.html#__new__\">__new__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.units.Scalar-class.html\">Scalar</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.heights._HeightBase-class.html#_k2interp2d\">_k2interp2d</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.heights._HeightBase-class.html\">_HeightBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.LatLon2Tuple-class.html#_Units_\">_Units_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples.LatLon2Tuple-class.html\">LatLon2Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.units.Scalar_-class.html#__new__\">__new__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.units.Scalar_-class.html\">Scalar_</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.karney-module.html#_K_2_0\">_K_2_0</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.karney-module.html\">pygeodesy.karney</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.LatLon3Tuple-class.html#_Units_\">_Units_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples.LatLon3Tuple-class.html\">LatLon3Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.units.Zone-class.html#__new__\">__new__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.units.Zone-class.html\">Zone</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.karney-module.html#_K_2_4\">_K_2_4</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.karney-module.html\">pygeodesy.karney</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.LatLon4Tuple-class.html#_Units_\">_Units_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples.LatLon4Tuple-class.html\">LatLon4Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.unitsBase.Float-class.html#__new__\">__new__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.unitsBase.Float-class.html\">Float</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.karney-module.html#_key2Caps\">_key2Caps</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.karney-module.html\">pygeodesy.karney</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.LatLonDatum3Tuple-class.html#_Units_\">_Units_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples.LatLonDatum3Tuple-class.html\">LatLonDatum3Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.unitsBase.Int-class.html#__new__\">__new__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.unitsBase.Int-class.html\">Int</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geohash.Neighbors8Dict-class.html#_Keys_\">_Keys_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geohash.Neighbors8Dict-class.html\">Neighbors8Dict</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.LatLonDatum5Tuple-class.html#_Units_\">_Units_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples.LatLonDatum5Tuple-class.html\">LatLonDatum5Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.unitsBase.Radius-class.html#__new__\">__new__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.unitsBase.Radius-class.html\">Radius</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_keyword_\">_keyword_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.LatLonPrec3Tuple-class.html#_Units_\">_Units_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples.LatLonPrec3Tuple-class.html\">LatLonPrec3Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.unitsBase.Str-class.html#__new__\">__new__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.unitsBase.Str-class.html\">Str</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.booleans.BooleanFHP-class.html#_kind\">_kind</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.booleans.BooleanFHP-class.html\">BooleanFHP</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.LatLonPrec5Tuple-class.html#_Units_\">_Units_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples.LatLonPrec5Tuple-class.html\">LatLonPrec5Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.unitsBase._NamedUnit-class.html#__new__\">__new__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.unitsBase._NamedUnit-class.html\">_NamedUnit</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.booleans.BooleanGH-class.html#_kind\">_kind</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.booleans.BooleanGH-class.html\">BooleanGH</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.NearestOn2Tuple-class.html#_Units_\">_Units_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples.NearestOn2Tuple-class.html\">NearestOn2Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.wgrs.Georef-class.html#__new__\">__new__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.wgrs.Georef-class.html\">Georef</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.booleans._CompositeBase-class.html#_kind\">_kind</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.booleans._CompositeBase-class.html\">_CompositeBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.NearestOn3Tuple-class.html#_Units_\">_Units_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples.NearestOn3Tuple-class.html\">NearestOn3Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.booleans._BooleanBase-class.html#__or__\">__or__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.booleans._BooleanBase-class.html\">_BooleanBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geoids._GeoidBase-class.html#_kind\">_kind</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geoids._GeoidBase-class.html\">_GeoidBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.NearestOn6Tuple-class.html#_Units_\">_Units_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples.NearestOn6Tuple-class.html\">NearestOn6Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.__main__-module.html#__package__\">__package__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.__main__-module.html\">pygeodesy.__main__</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geoids-module.html#_kind\">_kind</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geoids-module.html\">pygeodesy.geoids</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.NearestOn8Tuple-class.html#_Units_\">_Units_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples.NearestOn8Tuple-class.html\">NearestOn8Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy-module.html#__package__\">__package__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.heights.HeightCubic-class.html#_kind\">_kind</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.heights.HeightCubic-class.html\">HeightCubic</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.PhiLam2Tuple-class.html#_Units_\">_Units_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples.PhiLam2Tuple-class.html\">PhiLam2Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.albers-module.html#__package__\">__package__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.albers-module.html\">pygeodesy.albers</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.heights.HeightLinear-class.html#_kind\">_kind</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.heights.HeightLinear-class.html\">HeightLinear</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.PhiLam3Tuple-class.html#_Units_\">_Units_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples.PhiLam3Tuple-class.html\">PhiLam3Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.angles-module.html#__package__\">__package__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.angles-module.html\">pygeodesy.angles</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_kind_\">_kind_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.PhiLam4Tuple-class.html#_Units_\">_Units_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples.PhiLam4Tuple-class.html\">PhiLam4Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats._CX_4-module.html#__package__\">__package__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats._CX_4-module.html\">pygeodesy.auxilats._CX_4</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_kji\">_kji</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html\">_UnOrderedTriaxialBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.Point3Tuple-class.html#_Units_\">_Units_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples.Point3Tuple-class.html\">Point3Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats._CX_6-module.html#__package__\">__package__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats._CX_6-module.html\">pygeodesy.auxilats._CX_6</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.heights.HeightCubic-class.html#_kmin\">_kmin</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.heights.HeightCubic-class.html\">HeightCubic</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.Points2Tuple-class.html#_Units_\">_Units_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples.Points2Tuple-class.html\">Points2Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats._CX_8-module.html#__package__\">__package__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats._CX_8-module.html\">pygeodesy.auxilats._CX_8</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.heights.HeightLSQBiSpline-class.html#_kmin\">_kmin</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.heights.HeightLSQBiSpline-class.html\">HeightLSQBiSpline</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.Reverse4Tuple-class.html#_Units_\">_Units_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples.Reverse4Tuple-class.html\">Reverse4Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats._CX_Rs-module.html#__package__\">__package__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats._CX_Rs-module.html\" onclick=\"show_private();\">pygeodesy.auxilats._CX_Rs</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.heights.HeightLinear-class.html#_kmin\">_kmin</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.heights.HeightLinear-class.html\">HeightLinear</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.Triangle7Tuple-class.html#_Units_\">_Units_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples.Triangle7Tuple-class.html\">Triangle7Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.__main__-module.html#__package__\">__package__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats.__main__-module.html\">pygeodesy.auxilats.__main__</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.heights.HeightSmoothBiSpline-class.html#_kmin\">_kmin</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.heights.HeightSmoothBiSpline-class.html\">HeightSmoothBiSpline</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.Triangle8Tuple-class.html#_Units_\">_Units_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples.Triangle8Tuple-class.html\">Triangle8Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats-module.html#__package__\">__package__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats-module.html\">pygeodesy.auxilats</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.heights._HeightNamed-class.html#_kmin\">_kmin</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.heights._HeightNamed-class.html\">_HeightNamed</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.Trilaterate5Tuple-class.html#_Units_\">_Units_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples.Trilaterate5Tuple-class.html\">Trilaterate5Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxAngle-module.html#__package__\">__package__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats.auxAngle-module.html\" onclick=\"show_private();\">pygeodesy.auxilats.auxAngle</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geoids._GeoidBase-class.html#_knots\">_knots</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geoids._GeoidBase-class.html\">_GeoidBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.UtmUps2Tuple-class.html#_Units_\">_Units_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples.UtmUps2Tuple-class.html\">UtmUps2Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxDLat-module.html#__package__\">__package__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats.auxDLat-module.html\" onclick=\"show_private();\">pygeodesy.auxilats.auxDLat</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.heights._HeightIDW-class.html#_knots\">_knots</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.heights._HeightIDW-class.html\">_HeightIDW</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.UtmUps5Tuple-class.html#_Units_\">_Units_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples.UtmUps5Tuple-class.html\">UtmUps5Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxDST-module.html#__package__\">__package__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats.auxDST-module.html\" onclick=\"show_private();\">pygeodesy.auxilats.auxDST</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_Krassovski1940_\">_Krassovski1940_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.UtmUps8Tuple-class.html#_Units_\">_Units_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples.UtmUps8Tuple-class.html\">UtmUps8Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxLat-module.html#__package__\">__package__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats.auxLat-module.html\" onclick=\"show_private();\">pygeodesy.auxilats.auxLat</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_Krassowsky1940_\">_Krassowsky1940_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.UtmUpsLatLon5Tuple-class.html#_Units_\">_Units_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples.UtmUpsLatLon5Tuple-class.html\">UtmUpsLatLon5Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxily-module.html#__package__\">__package__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats.auxily-module.html\" onclick=\"show_private();\">pygeodesy.auxilats.auxily</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#_KsOrder\">_KsOrder</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.Vector2Tuple-class.html#_Units_\">_Units_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples.Vector2Tuple-class.html\">Vector2Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.azimuthal-module.html#__package__\">__package__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.azimuthal-module.html\">pygeodesy.azimuthal</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.bases-module.html#_KTpFlat\">_KTpFlat</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.bases-module.html\" onclick=\"show_private();\">pygeodesy.triaxials.bases</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.Vector3Tuple-class.html#_Units_\">_Units_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples.Vector3Tuple-class.html\">Vector3Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.basics-module.html#__package__\">__package__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.basics-module.html\">pygeodesy.basics</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.frechet.Frechet-class.html#_kwds\">_kwds</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.frechet.Frechet-class.html\">Frechet</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.Vector4Tuple-class.html#_Units_\">_Units_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples.Vector4Tuple-class.html\">Vector4Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.booleans-module.html#__package__\">__package__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.booleans-module.html\">pygeodesy.booleans</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.hausdorff.Hausdorff-class.html#_kwds\">_kwds</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.hausdorff.Hausdorff-class.html\">Hausdorff</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.points.Shape2Tuple-class.html#_Units_\">_Units_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.points.Shape2Tuple-class.html\">Shape2Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.cartesianBase-module.html#__package__\">__package__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.cartesianBase-module.html\">pygeodesy.cartesianBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.heights._HeightIDW-class.html#_kwds\">_kwds</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.heights._HeightIDW-class.html\">_HeightIDW</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.resections.Collins5Tuple-class.html#_Units_\">_Units_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.resections.Collins5Tuple-class.html\">Collins5Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.clipy-module.html#__package__\">__package__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.clipy-module.html\">pygeodesy.clipy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.booleans-module.html#_L\">_L</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.booleans-module.html\">pygeodesy.booleans</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.resections.Survey3Tuple-class.html#_Units_\">_Units_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.resections.Survey3Tuple-class.html\">Survey3Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.constants-module.html#__package__\">__package__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.constants-module.html\">pygeodesy.constants</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.booleans.LatLonFHP-class.html#_label\">_label</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.booleans.LatLonFHP-class.html\">LatLonFHP</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.resections.Tienstra7Tuple-class.html#_Units_\">_Units_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.resections.Tienstra7Tuple-class.html\">Tienstra7Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.css-module.html#__package__\">__package__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.css-module.html\">pygeodesy.css</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.lcc.Conic-class.html#_lam0\">_lam0</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.lcc.Conic-class.html\">Conic</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.resections.TriAngle5Tuple-class.html#_Units_\">_Units_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.resections.TriAngle5Tuple-class.html\">TriAngle5Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.datums-module.html#__package__\">__package__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.datums-module.html\">pygeodesy.datums</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_lam_\">_lam_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.resections.TriSide2Tuple-class.html#_Units_\">_Units_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.resections.TriSide2Tuple-class.html\">TriSide2Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated-module.html#__package__\">__package__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated-module.html\">pygeodesy.deprecated</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_LANGLE_\">_LANGLE_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.resections.TriSide4Tuple-class.html#_Units_\">_Units_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.resections.TriSide4Tuple-class.html\">TriSide4Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.bases-module.html#__package__\">__package__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.bases-module.html\">pygeodesy.deprecated.bases</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.booleans._Clip-class.html#_last\">_last</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.booleans._Clip-class.html\">_Clip</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb.solve.RhumbSolve7Tuple-class.html#_Units_\">_Units_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb.solve.RhumbSolve7Tuple-class.html\">RhumbSolve7Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.classes-module.html#__package__\">__package__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.classes-module.html\" onclick=\"show_private();\">pygeodesy.deprecated.classes</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#_lat\">_lat</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">LatLonBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.trf.TRFXform7Tuple-class.html#_Units_\">_Units_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.trf.TRFXform7Tuple-class.html\">TRFXform7Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.consterns-module.html#__package__\">__package__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.consterns-module.html\" onclick=\"show_private();\">pygeodesy.deprecated.consterns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.etm.ExactTransverseMercator-class.html#_lat0\">_lat0</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.etm.ExactTransverseMercator-class.html\">ExactTransverseMercator</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.bases.Conformal5Tuple-class.html#_Units_\">_Units_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.bases.Conformal5Tuple-class.html\" onclick=\"show_private();\">Conformal5Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.datum-module.html#__package__\">__package__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.datum-module.html\">pygeodesy.deprecated.datum</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#_lat0\">_lat0</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html\">GeodesicAreaExact</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.conformal3.BetOmgGam5Tuple-class.html#_Units_\">_Units_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.conformal3.BetOmgGam5Tuple-class.html\">BetOmgGam5Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.functions-module.html#__package__\">__package__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.functions-module.html\" onclick=\"show_private();\">pygeodesy.deprecated.functions</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ktm.KTransverseMercator-class.html#_lat0\">_lat0</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ktm.KTransverseMercator-class.html\">KTransverseMercator</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.triaxial3.BetOmgAlp5Tuple-class.html#_Units_\">_Units_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.triaxial3.BetOmgAlp5Tuple-class.html\">BetOmgAlp5Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.nvector-module.html#__package__\">__package__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.nvector-module.html\">pygeodesy.deprecated.nvector</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_lat0_\">_lat0_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.triaxial3.Cartesian5Tuple-class.html#_Units_\">_Units_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.triaxial3.Cartesian5Tuple-class.html\">Cartesian5Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.rhumbBase-module.html#__package__\">__package__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.rhumbBase-module.html\">pygeodesy.deprecated.rhumbBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.albers.AlbersEqualAreaCylindrical-class.html#_lat1\">_lat1</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.albers.AlbersEqualAreaCylindrical-class.html\">AlbersEqualAreaCylindrical</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.triaxial3.PhiLamZet5Tuple-class.html#_Units_\">_Units_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.triaxial3.PhiLamZet5Tuple-class.html\">PhiLamZet5Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.rhumbaux-module.html#__package__\">__package__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.rhumbaux-module.html\">pygeodesy.deprecated.rhumbaux</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.albers.AlbersEqualAreaNorth-class.html#_lat1\">_lat1</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.albers.AlbersEqualAreaNorth-class.html\">AlbersEqualAreaNorth</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.triaxial5.BetaOmega2Tuple-class.html#_Units_\">_Units_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.triaxial5.BetaOmega2Tuple-class.html\">BetaOmega2Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.rhumbsolve-module.html#__package__\">__package__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.rhumbsolve-module.html\">pygeodesy.deprecated.rhumbsolve</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.albers.AlbersEqualAreaSouth-class.html#_lat1\">_lat1</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.albers.AlbersEqualAreaSouth-class.html\">AlbersEqualAreaSouth</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.triaxial5.BetaOmega3Tuple-class.html#_Units_\">_Units_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.triaxial5.BetaOmega3Tuple-class.html\">BetaOmega3Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.rhumbx-module.html#__package__\">__package__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.rhumbx-module.html\">pygeodesy.deprecated.rhumbx</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.albers._AlbersBase-class.html#_lat1\">_lat1</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.albers._AlbersBase-class.html\">_AlbersBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.triaxial5.Conformal2Tuple-class.html#_Units_\">_Units_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.triaxial5.Conformal2Tuple-class.html\">Conformal2Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.dms-module.html#__package__\">__package__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.dms-module.html\">pygeodesy.dms</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#_lat1\">_lat1</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html\">GeodesicAreaExact</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector2d.Circin6Tuple-class.html#_Units_\">_Units_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector2d.Circin6Tuple-class.html\">Circin6Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ecef-module.html#__package__\">__package__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ecef-module.html\">pygeodesy.ecef</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_lat1_\">_lat1_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector2d.Circum3Tuple-class.html#_Units_\">_Units_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector2d.Circum3Tuple-class.html\">Circum3Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ecefLocals-module.html#__package__\">__package__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ecefLocals-module.html\">pygeodesy.ecefLocals</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.albers.AlbersEqualAreaCylindrical-class.html#_lat2\">_lat2</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.albers.AlbersEqualAreaCylindrical-class.html\">AlbersEqualAreaCylindrical</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector2d.Circum4Tuple-class.html#_Units_\">_Units_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector2d.Circum4Tuple-class.html\">Circum4Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.elevations-module.html#__package__\">__package__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.elevations-module.html\">pygeodesy.elevations</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.albers.AlbersEqualAreaNorth-class.html#_lat2\">_lat2</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.albers.AlbersEqualAreaNorth-class.html\">AlbersEqualAreaNorth</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector2d.Meeus2Tuple-class.html#_Units_\">_Units_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector2d.Meeus2Tuple-class.html\">Meeus2Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipses-module.html#__package__\">__package__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipses-module.html\">pygeodesy.ellipses</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.albers.AlbersEqualAreaSouth-class.html#_lat2\">_lat2</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.albers.AlbersEqualAreaSouth-class.html\">AlbersEqualAreaSouth</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector2d.Radii11Tuple-class.html#_Units_\">_Units_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector2d.Radii11Tuple-class.html\">Radii11Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalBase-module.html#__package__\">__package__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalBase-module.html\">pygeodesy.ellipsoidalBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.albers._AlbersBase-class.html#_lat2\">_lat2</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.albers._AlbersBase-class.html\">_AlbersBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector2d.Soddy4Tuple-class.html#_Units_\">_Units_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector2d.Soddy4Tuple-class.html\">Soddy4Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalBaseDI-module.html#__package__\">__package__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalBaseDI-module.html\">pygeodesy.ellipsoidalBaseDI</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_lat2_\">_lat2_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector2d.Triaxum5Tuple-class.html#_Units_\">_Units_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector2d.Triaxum5Tuple-class.html\">Triaxum5Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalExact-module.html#__package__\">__package__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalExact-module.html\">pygeodesy.ellipsoidalExact</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_lat_\">_lat_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.webmercator.EasNorRadius3Tuple-class.html#_Units_\">_Units_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.webmercator.EasNorRadius3Tuple-class.html\">EasNorRadius3Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalGeodSolve-module.html#__package__\">__package__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalGeodSolve-module.html\">pygeodesy.ellipsoidalGeodSolve</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesici-module.html#_latA_\">_latA_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesici-module.html\">pygeodesy.geodesici</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.lazily-module.html#_unlazy\">_unlazy</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.lazily-module.html\">pygeodesy.lazily</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalKarney-module.html#__package__\">__package__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalKarney-module.html\">pygeodesy.ellipsoidalKarney</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.gars-module.html#_LatLen\">_LatLen</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.gars-module.html\">pygeodesy.gars</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated-module.html#_unLazy0\">_unLazy0</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated-module.html\">pygeodesy.deprecated</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalNvector-module.html#__package__\">__package__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalNvector-module.html\">pygeodesy.ellipsoidalNvector</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.webmercator-module.html#_LatLimit\">_LatLimit</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.webmercator-module.html\">pygeodesy.webmercator</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.lazily-module.html#_unLazy0\">_unLazy0</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.lazily-module.html\">pygeodesy.lazily</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalVincenty-module.html#__package__\">__package__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalVincenty-module.html\">pygeodesy.ellipsoidalVincenty</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.osgr.Osgr-class.html#_latlon\">_latlon</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.osgr.Osgr-class.html\">Osgr</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.bases._OrderedTriaxialBase-class.html#_unordered\">_unordered</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.bases._OrderedTriaxialBase-class.html\">_OrderedTriaxialBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids-module.html#__package__\">__package__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids-module.html\">pygeodesy.ellipsoids</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html#_latlon\">_latlon</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html\">UtmUpsBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#_unordered\">_unordered</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html\">_UnOrderedTriaxialBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.elliptic-module.html#__package__\">__package__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.elliptic-module.html\">pygeodesy.elliptic</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#_latlon0\">_latlon0</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html\">_AzimuthalBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html\">_UnOrderedTriaxialBase</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.bases-module.html\" onclick=\"show_private();\">pygeodesy.triaxials.bases</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.epsg-module.html#__package__\">__package__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.epsg-module.html\">pygeodesy.epsg</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.css.CassiniSoldner-class.html#_latlon0\">_latlon0</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.css.CassiniSoldner-class.html\">CassiniSoldner</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.solveBase._SolveBase-class.html#_unroll\">_unroll</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.solveBase._SolveBase-class.html\">_SolveBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.errors-module.html#__package__\">__package__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.errors-module.html\">pygeodesy.errors</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_LatLon_\">_LatLon_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_UNUSED_\">_UNUSED_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.etm-module.html#__package__\">__package__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.etm-module.html\">pygeodesy.etm</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_latlon_\">_latlon_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.named-module.html#_UP\">_UP</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.named-module.html\">pygeodesy.named</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fmath-module.html#__package__\">__package__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fmath-module.html\">pygeodesy.fmath</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.booleans._LatLonBool-class.html\">_LatLonBool</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.booleans-module.html\">pygeodesy.booleans</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_up_\">_up_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.formy-module.html#__package__\">__package__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.formy-module.html\">pygeodesy.formy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.osgr.Osgr-class.html#_latlonTM\">_latlonTM</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.osgr.Osgr-class.html\">Osgr</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html#_ups\">_ups</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html\">UtmUpsBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.frechet-module.html#__package__\">__package__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.frechet-module.html\">pygeodesy.frechet</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.gars-module.html#_LatOrig\">_LatOrig</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.gars-module.html\">pygeodesy.gars</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_UPS_\">_UPS_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fstats-module.html#__package__\">__package__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fstats-module.html\">pygeodesy.fstats</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.wgrs-module.html#_LatOrig\">_LatOrig</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.wgrs-module.html\">pygeodesy.wgrs</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utmupsBase-module.html#_UPS_BANDS\">_UPS_BANDS</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utmupsBase-module.html\">pygeodesy.utmupsBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums-module.html#__package__\">__package__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums-module.html\">pygeodesy.fsums</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.wgrs-module.html#_LatOrig_60B\">_LatOrig_60B</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.wgrs-module.html\">pygeodesy.wgrs</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utmupsBase-module.html#_UPS_LAT_MAX\">_UPS_LAT_MAX</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utmupsBase-module.html\">pygeodesy.utmupsBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.gars-module.html#__package__\">__package__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.gars-module.html\">pygeodesy.gars</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.gars-module.html#_LatOrig_M1\">_LatOrig_M1</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.gars-module.html\">pygeodesy.gars</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utmupsBase-module.html#_UPS_LAT_MIN\">_UPS_LAT_MIN</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utmupsBase-module.html\">pygeodesy.utmupsBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geod3solve-module.html#__package__\">__package__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geod3solve-module.html\">pygeodesy.geod3solve</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.gars-module.html#_LatOrig_M4\">_LatOrig_M4</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.gars-module.html\">pygeodesy.gars</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utmupsBase-module.html#_UPS_LATS\">_UPS_LATS</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utmupsBase-module.html\">pygeodesy.utmupsBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesici-module.html#__package__\">__package__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesici-module.html\">pygeodesy.geodesici</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.wgrs-module.html#_LatOrig_Tile\">_LatOrig_Tile</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.wgrs-module.html\">pygeodesy.wgrs</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utmups-module.html#_UPS_N_MAX\">_UPS_N_MAX</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utmups-module.html\">pygeodesy.utmups</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicw-module.html#__package__\">__package__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicw-module.html\">pygeodesy.geodesicw</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.wgrs-module.html#_LatTile\">_LatTile</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.wgrs-module.html\">pygeodesy.wgrs</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utmups-module.html#_UPS_N_MIN\">_UPS_N_MIN</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utmups-module.html\">pygeodesy.utmups</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx._C4_24-module.html#__package__\">__package__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx._C4_24-module.html\">pygeodesy.geodesicx._C4_24</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.lazily-module.html#_lazily_\">_lazily_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.lazily-module.html\">pygeodesy.lazily</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utmups-module.html#_UPS_S_MAX\">_UPS_S_MAX</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utmups-module.html\">pygeodesy.utmups</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx._C4_27-module.html#__package__\">__package__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx._C4_27-module.html\">pygeodesy.geodesicx._C4_27</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.lazily-module.html#_lazy_dict\">_lazy_dict</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.lazily-module.html\">pygeodesy.lazily</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utmups-module.html#_UPS_S_MIN\">_UPS_S_MIN</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utmups-module.html\">pygeodesy.utmups</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx._C4_30-module.html#__package__\">__package__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx._C4_30-module.html\">pygeodesy.geodesicx._C4_30</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb.aux_-module.html#_Lbits\">_Lbits</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb.aux_-module.html\" onclick=\"show_private();\">pygeodesy.rhumb.aux_</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utmupsBase-module.html#_UPS_ZONE\">_UPS_ZONE</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utmupsBase-module.html\">pygeodesy.utmupsBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx.__main__-module.html#__package__\">__package__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx.__main__-module.html\">pygeodesy.geodesicx.__main__</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_LCURLY_\">_LCURLY_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utmupsBase-module.html#_UPS_ZONE_STR\">_UPS_ZONE_STR</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utmupsBase-module.html\">pygeodesy.utmupsBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx-module.html#__package__\">__package__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx-module.html\">pygeodesy.geodesicx</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.booleans._Clip-class.html#_len\">_len</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.booleans._Clip-class.html\">_Clip</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_utf_8_\">_utf_8_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx.gx-module.html#__package__\">__package__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx.gx-module.html\">pygeodesy.geodesicx.gx</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.iters._BaseIter-class.html#_len\">_len</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.iters._BaseIter-class.html\">_BaseIter</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.functions-module.html#_UTM\">_UTM</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.functions-module.html\" onclick=\"show_private();\">pygeodesy.deprecated.functions</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx.gxarea-module.html#__package__\">__package__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx.gxarea-module.html\">pygeodesy.geodesicx.gxarea</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.points.LatLon2psxy-class.html#_len\">_len</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.points.LatLon2psxy-class.html\">LatLon2psxy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html#_utm\">_utm</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html\">UtmUpsBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx.gxbases-module.html#__package__\">__package__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx.gxbases-module.html\">pygeodesy.geodesicx.gxbases</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_len_\">_len_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_UTM_\">_UTM_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx.gxline-module.html#__package__\">__package__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx.gxline-module.html\">pygeodesy.geodesicx.gxline</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.gars-module.html#_Letters\">_Letters</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.gars-module.html\">pygeodesy.gars</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utmups-module.html#_UTM_C_MAX\">_UTM_C_MAX</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utmups-module.html\">pygeodesy.utmups</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodsolve-module.html#__package__\">__package__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodsolve-module.html\">pygeodesy.geodsolve</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.mgrs-module.html#_LeUPS\">_LeUPS</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.mgrs-module.html\">pygeodesy.mgrs</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utmups-module.html#_UTM_C_MIN\">_UTM_C_MIN</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utmups-module.html\">pygeodesy.utmups</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geohash-module.html#__package__\">__package__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geohash-module.html\">pygeodesy.geohash</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.mgrs-module.html#_LeUTM\">_LeUTM</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.mgrs-module.html\">pygeodesy.mgrs</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utmupsBase-module.html#_UTM_LAT_MAX\">_UTM_LAT_MAX</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utmupsBase-module.html\">pygeodesy.utmupsBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geoids-module.html#__package__\">__package__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geoids-module.html\">pygeodesy.geoids</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_limit_\">_limit_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utmupsBase-module.html#_UTM_LAT_MIN\">_UTM_LAT_MIN</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utmupsBase-module.html\">pygeodesy.utmupsBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.hausdorff-module.html#__package__\">__package__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.hausdorff-module.html\">pygeodesy.hausdorff</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.errors-module.html#_limiterrors\">_limiterrors</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.errors-module.html\">pygeodesy.errors</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utmups-module.html#_UTM_N_MAX\">_UTM_N_MAX</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utmups-module.html\">pygeodesy.utmups</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.heights-module.html#__package__\">__package__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.heights-module.html\">pygeodesy.heights</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_line_\">_line_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utmups-module.html#_UTM_N_MIN\">_UTM_N_MIN</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utmups-module.html\">pygeodesy.utmups</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.internals-module.html#__package__\">__package__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.internals-module.html\">pygeodesy.internals</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.lazily-module.html#_line_\">_line_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.lazily-module.html\">pygeodesy.lazily</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utmups-module.html#_UTM_N_SHIFT\">_UTM_N_SHIFT</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utmups-module.html\">pygeodesy.utmups</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#__package__\">__package__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.heights-module.html#_linear_\">_linear_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.heights-module.html\">pygeodesy.heights</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utmups-module.html#_UTM_S_MAX\">_UTM_S_MAX</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utmups-module.html\">pygeodesy.utmups</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.iters-module.html#__package__\">__package__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.iters-module.html\">pygeodesy.iters</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesici.Intersectool-class.html#_linelimit\">_linelimit</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesici.Intersectool-class.html\">Intersectool</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utmups-module.html#_UTM_S_MIN\">_UTM_S_MIN</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utmups-module.html\">pygeodesy.utmups</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.karney-module.html#__package__\">__package__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.karney-module.html\">pygeodesy.karney</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#_linelimit\">_linelimit</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.solveBase._SolveCapsBase-class.html\">_SolveCapsBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utmupsBase-module.html#_UTM_ZONE_MAX\">_UTM_ZONE_MAX</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utmupsBase-module.html\">pygeodesy.utmupsBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ktm-module.html#__package__\">__package__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ktm-module.html\">pygeodesy.ktm</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.sphericalNvector-module.html#_lines_\">_lines_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.sphericalNvector-module.html\">pygeodesy.sphericalNvector</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utmupsBase-module.html#_UTM_ZONE_MIN\">_UTM_ZONE_MIN</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utmupsBase-module.html\">pygeodesy.utmupsBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.latlonBase-module.html#__package__\">__package__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.latlonBase-module.html\">pygeodesy.latlonBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.booleans._LatLonBool-class.html#_linked\">_linked</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.booleans._LatLonBool-class.html\">_LatLonBool</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utmupsBase-module.html#_UTM_ZONE_OFF_MAX\">_UTM_ZONE_OFF_MAX</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utmupsBase-module.html\">pygeodesy.utmupsBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.lazily-module.html#__package__\">__package__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.lazily-module.html\">pygeodesy.lazily</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.basics-module.html#_list_tuple_types\">_list_tuple_types</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.basics-module.html\">pygeodesy.basics</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.epsg.Epsg-class.html#_utmups\">_utmups</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.epsg.Epsg-class.html\">Epsg</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.lcc-module.html#__package__\">__package__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.lcc-module.html\">pygeodesy.lcc</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.booleans._Clip-class.html#_LL\">_LL</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.booleans._Clip-class.html\">_Clip</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utmupsBase-module.html#_UTMUPS_ZONE_INVALID\">_UTMUPS_ZONE_INVALID</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utmupsBase-module.html\">pygeodesy.utmupsBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltp-module.html#__package__\">__package__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltp-module.html\">pygeodesy.ltp</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#_ll\">_ll</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">Vector3dBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utmupsBase-module.html#_UTMUPS_ZONE_MAX\">_UTMUPS_ZONE_MAX</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utmupsBase-module.html\">pygeodesy.utmupsBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples-module.html#__package__\">__package__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples-module.html\">pygeodesy.ltpTuples</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geoids-module.html#_lli_\">_lli_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geoids-module.html\">pygeodesy.geoids</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utmupsBase-module.html#_UTMUPS_ZONE_MIN\">_UTMUPS_ZONE_MIN</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utmupsBase-module.html\">pygeodesy.utmupsBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.mgrs-module.html#__package__\">__package__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.mgrs-module.html\">pygeodesy.mgrs</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.heights-module.html#_llis_\">_llis_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.heights-module.html\">pygeodesy.heights</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples-module.html#_uvw_\">_uvw_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples-module.html\">pygeodesy.ltpTuples</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.named-module.html#__package__\">__package__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.named-module.html\">pygeodesy.named</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.bases-module.html#_llk_\">_llk_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.bases-module.html\" onclick=\"show_private();\">pygeodesy.triaxials.bases</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_V_\">_V_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples-module.html#__package__\">__package__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples-module.html\">pygeodesy.namedTuples</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.mgrs-module.html#_LnUPS\">_LnUPS</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.mgrs-module.html\">pygeodesy.mgrs</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltp.Frustum-class.html#_v_2\">_v_2</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltp.Frustum-class.html\">Frustum</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.nvectorBase-module.html#__package__\">__package__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.nvectorBase-module.html\">pygeodesy.nvectorBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.mgrs-module.html#_LnUTM\">_LnUTM</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.mgrs-module.html\">pygeodesy.mgrs</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_valid_\">_valid_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.osgr-module.html#__package__\">__package__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.osgr-module.html\">pygeodesy.osgr</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples-module.html#_local_\">_local_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples-module.html\">pygeodesy.ltpTuples</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums.Fsum2Tuple-class.html#_validated\">_validated</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\">Fsum2Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.points-module.html#__package__\">__package__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.points-module.html\">pygeodesy.points</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.conformal3-module.html#_LOG2MIN\">_LOG2MIN</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.conformal3-module.html\" onclick=\"show_private();\">pygeodesy.triaxials.conformal3</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.ChLVEN2Tuple-class.html#_validated\">_validated</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.ChLVEN2Tuple-class.html\">ChLVEN2Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.props-module.html#__package__\">__package__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.props-module.html\">pygeodesy.props</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#_lon\">_lon</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">LatLonBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.ChLVyx2Tuple-class.html#_validated\">_validated</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.ChLVyx2Tuple-class.html\">ChLVyx2Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.resections-module.html#__package__\">__package__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.resections-module.html\">pygeodesy.resections</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.etm.ExactTransverseMercator-class.html#_lon0\">_lon0</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.etm.ExactTransverseMercator-class.html\">ExactTransverseMercator</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.named._NamedTuple-class.html#_validated\">_validated</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.named._NamedTuple-class.html\">_NamedTuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb-module.html#__package__\">__package__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb-module.html\">pygeodesy.rhumb</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#_lon0\">_lon0</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html\">GeodesicAreaExact</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.LatLon2Tuple-class.html#_validated\">_validated</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples.LatLon2Tuple-class.html\">LatLon2Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb.aux_-module.html#__package__\">__package__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb.aux_-module.html\" onclick=\"show_private();\">pygeodesy.rhumb.aux_</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ktm.KTransverseMercator-class.html#_lon0\">_lon0</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ktm.KTransverseMercator-class.html\">KTransverseMercator</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.LatLon4Tuple-class.html#_validated\">_validated</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples.LatLon4Tuple-class.html\">LatLon4Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb.bases-module.html#__package__\">__package__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb.bases-module.html\" onclick=\"show_private();\">pygeodesy.rhumb.bases</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.bases._Triaxial3Base-class.html#_Lon0\">_Lon0</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.bases._Triaxial3Base-class.html\">_Triaxial3Base</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.PhiLam2Tuple-class.html#_validated\">_validated</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples.PhiLam2Tuple-class.html\">PhiLam2Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb.ekx-module.html#__package__\">__package__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb.ekx-module.html\" onclick=\"show_private();\">pygeodesy.rhumb.ekx</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ecef._EcefBase-class.html#_lon00\">_lon00</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ecef._EcefBase-class.html\">_EcefBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.trf.TRFXform7Tuple-class.html#_validated\">_validated</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.trf.TRFXform7Tuple-class.html\">TRFXform7Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb.solve-module.html#__package__\">__package__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb.solve-module.html\" onclick=\"show_private();\">pygeodesy.rhumb.solve</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltp.LocalCartesian-class.html#_lon00\">_lon00</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltp.LocalCartesian-class.html\">LocalCartesian</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_value_\">_value_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.simplify-module.html#__package__\">__package__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.simplify-module.html\">pygeodesy.simplify</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_lon0_\">_lon0_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector3d-module.html#_vector2d\">_vector2d</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector3d-module.html\">pygeodesy.vector3d</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.solveBase-module.html#__package__\">__package__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.solveBase-module.html\">pygeodesy.solveBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#_lon1\">_lon1</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html\">GeodesicAreaExact</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#_verbose\">_verbose</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html\">GeodesicAreaExact</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.sphericalBase-module.html#__package__\">__package__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.sphericalBase-module.html\">pygeodesy.sphericalBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_lon1_\">_lon1_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#_verbose\">_verbose</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.solveBase._SolveCapsBase-class.html\">_SolveCapsBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.sphericalNvector-module.html#__package__\">__package__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.sphericalNvector-module.html\">pygeodesy.sphericalNvector</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_lon2_\">_lon2_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_version_\">_version_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.sphericalTrigonometry-module.html#__package__\">__package__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.sphericalTrigonometry-module.html\">pygeodesy.sphericalTrigonometry</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_lon_\">_lon_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.lazily-module.html#_version_\">_version_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.lazily-module.html\">pygeodesy.lazily</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.streprs-module.html#__package__\">__package__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.streprs-module.html\">pygeodesy.streprs</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesici-module.html#_lonA_\">_lonA_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesici-module.html\">pygeodesy.geodesici</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_vs_\">_vs_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.trf-module.html#__package__\">__package__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.trf-module.html\">pygeodesy.trf</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.gars-module.html#_LonLen\">_LonLen</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.gars-module.html\">pygeodesy.gars</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.errors-module.html#_vs__\">_vs__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.errors-module.html\">pygeodesy.errors</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials-module.html#__package__\">__package__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials-module.html\">pygeodesy.triaxials</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.gars-module.html#_LonOrig\">_LonOrig</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.gars-module.html\">pygeodesy.gars</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_W_\">_W_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.bases-module.html#__package__\">__package__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.bases-module.html\" onclick=\"show_private();\">pygeodesy.triaxials.bases</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.wgrs-module.html#_LonOrig\">_LonOrig</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.wgrs-module.html\">pygeodesy.wgrs</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicw-module.html#_wargs\">_wargs</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicw-module.html\">pygeodesy.geodesicw</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.conformal3-module.html#__package__\">__package__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.conformal3-module.html\" onclick=\"show_private();\">pygeodesy.triaxials.conformal3</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.wgrs-module.html#_LonOrig_60B\">_LonOrig_60B</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.wgrs-module.html\">pygeodesy.wgrs</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.props.DeprecationWarnings-class.html#_Warnings\">_Warnings</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.props.DeprecationWarnings-class.html\">DeprecationWarnings</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.triaxial3-module.html#__package__\">__package__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.triaxial3-module.html\" onclick=\"show_private();\">pygeodesy.triaxials.triaxial3</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.gars-module.html#_LonOrig_M1_1\">_LonOrig_M1_1</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.gars-module.html\">pygeodesy.gars</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.lazily-module.html#_WARNINGS_X_DEV\">_WARNINGS_X_DEV</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.lazily-module.html\">pygeodesy.lazily</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.triaxial5-module.html#__package__\">__package__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.triaxial5-module.html\" onclick=\"show_private();\">pygeodesy.triaxials.triaxial5</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.gars-module.html#_LonOrig_M4\">_LonOrig_M4</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.gars-module.html\">pygeodesy.gars</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_WGS72_\">_WGS72_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.units-module.html#__package__\">__package__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.units-module.html\">pygeodesy.units</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.wgrs-module.html#_LonOrig_Tile\">_LonOrig_Tile</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.wgrs-module.html\">pygeodesy.wgrs</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.datums-module.html#_WGS84\">_WGS84</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.datums-module.html\">pygeodesy.datums</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.unitsBase-module.html#__package__\">__package__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.unitsBase-module.html\">pygeodesy.unitsBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.wgrs-module.html#_LonTile\">_LonTile</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.wgrs-module.html\">pygeodesy.wgrs</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.functions-module.html#_WGS84\">_WGS84</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.functions-module.html\" onclick=\"show_private();\">pygeodesy.deprecated.functions</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ups-module.html#__package__\">__package__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ups-module.html\">pygeodesy.ups</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.iters._BaseIter-class.html#_loop\">_loop</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.iters._BaseIter-class.html\">_BaseIter</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_WGS84_\">_WGS84_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utily-module.html#__package__\">__package__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utily-module.html\">pygeodesy.utily</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.iters._BaseIter-class.html#_looped\">_looped</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.iters._BaseIter-class.html\">_BaseIter</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.trf-module.html#_WGS84g1150_\">_WGS84g1150_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.trf-module.html\">pygeodesy.trf</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utm-module.html#__package__\">__package__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utm-module.html\">pygeodesy.utm</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_low_\">_low_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.trf-module.html#_WGS84g1674_\">_WGS84g1674_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.trf-module.html\">pygeodesy.trf</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utmups-module.html#__package__\">__package__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utmups-module.html\">pygeodesy.utmups</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_LPAREN_\">_LPAREN_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.trf-module.html#_WGS84g1762_\">_WGS84g1762_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.trf-module.html\">pygeodesy.trf</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utmupsBase-module.html#__package__\">__package__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utmupsBase-module.html\">pygeodesy.utmupsBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_LR_PAIRS\">_LR_PAIRS</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltp-module.html#_wide_\">_wide_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltp-module.html\">pygeodesy.ltp</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector2d-module.html#__package__\">__package__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector2d-module.html\">pygeodesy.vector2d</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_LSQUARE_\">_LSQUARE_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_width_\">_width_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector3d-module.html#__package__\">__package__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector3d-module.html\">pygeodesy.vector3d</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ecefLocals-module.html#_ltp\">_ltp</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ecefLocals-module.html\">pygeodesy.ecefLocals</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.internals-module.html#_Windows_\">_Windows_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.internals-module.html\">pygeodesy.internals</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector3dBase-module.html#__package__\">__package__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector3dBase-module.html\">pygeodesy.vector3dBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltp.Frustum-class.html#_ltp\">_ltp</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltp.Frustum-class.html\">Frustum</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.dms-module.html#_WINDS\">_WINDS</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.dms-module.html\">pygeodesy.dms</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.webmercator-module.html#__package__\">__package__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.webmercator-module.html\">pygeodesy.webmercator</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.XyzLocal-class.html#_ltp\">_ltp</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.XyzLocal-class.html\">XyzLocal</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_with_\">_with_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.wgrs-module.html#__package__\">__package__</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.wgrs-module.html\">pygeodesy.wgrs</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples._AbcBase-class.html#_ltp\">_ltp</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples._AbcBase-class.html\">_AbcBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.hausdorff.HausdorffFlatPolar-class.html#_wrap\">_wrap</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.hausdorff.HausdorffFlatPolar-class.html\">HausdorffFlatPolar</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.angles.Ang-class.html#__pos__\">__pos__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.angles.Ang-class.html\">Ang</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples-module.html#_ltp\">_ltp</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples-module.html\">pygeodesy.ltpTuples</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.hausdorff.HausdorffHaversine-class.html#_wrap\">_wrap</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.hausdorff.HausdorffHaversine-class.html\">HausdorffHaversine</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__pos__\">__pos__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html\">AuxAngle</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_ltp_\">_ltp_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.hausdorff.HausdorffVincentys-class.html#_wrap\">_wrap</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.hausdorff.HausdorffVincentys-class.html\">HausdorffVincentys</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums.Fsum-class.html#__pos__\">__pos__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums.Fsum-class.html\">Fsum</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ecefLocals-module.html#_ltpTuples\">_ltpTuples</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ecefLocals-module.html\">pygeodesy.ecefLocals</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.heights._HeightNamed-class.html#_wrap\">_wrap</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.heights._HeightNamed-class.html\">_HeightNamed</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums.Fsum2Tuple-class.html#__pos__\">__pos__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\">Fsum2Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utily-module.html#_M\">_M</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utily-module.html\">pygeodesy.utily</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.iters.LatLon2PsxyIter-class.html#_wrap\">_wrap</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.iters.LatLon2PsxyIter-class.html\">LatLon2PsxyIter</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__pos__\">__pos__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">Vector3dBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.albers._AlbersBase-class.html#_m0\">_m0</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.albers._AlbersBase-class.html\">_AlbersBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.iters._BaseIter-class.html#_wrap\">_wrap</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.iters._BaseIter-class.html\">_BaseIter</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.angles.Ang-class.html#__pow__\">__pow__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.angles.Ang-class.html\">Ang</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.gars-module.html#_M1\">_M1</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.gars-module.html\">pygeodesy.gars</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.points.LatLon2psxy-class.html#_wrap\">_wrap</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.points.LatLon2psxy-class.html\">LatLon2psxy</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums.Fsum-class.html#__pow__\">__pow__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums.Fsum-class.html\">Fsum</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_M12_\">_M12_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utily-module.html#_Wrap\">_Wrap</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utily-module.html\">pygeodesy.utily</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__pow__\">__pow__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">Vector3dBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_m12_\">_m12_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicw-module.html#_wrapped\">_wrapped</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicw-module.html\">pygeodesy.geodesicw</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.angles.Ang-class.html#__radd__\">__radd__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.angles.Ang-class.html\">Ang</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.gars-module.html#_M2\">_M2</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.gars-module.html\">pygeodesy.gars</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.karney-module.html#_wrapped\">_wrapped</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.karney-module.html\">pygeodesy.karney</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__radd__\">__radd__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html\">AuxAngle</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_M21_\">_M21_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#_x\">_x</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html\">AuxAngle</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.booleans._BooleanBase-class.html#__radd__\">__radd__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.booleans._BooleanBase-class.html\">_BooleanBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.gars-module.html#_M3\">_M3</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.gars-module.html\">pygeodesy.gars</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.webmercator.Wm-class.html#_x\">_x</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.webmercator.Wm-class.html\">Wm</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fstats._FstatsNamed-class.html#__radd__\">__radd__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fstats._FstatsNamed-class.html\">_FstatsNamed</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.gars-module.html#_M4\">_M4</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.gars-module.html\">pygeodesy.gars</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesici-module.html#_X000\">_X000</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesici-module.html\">pygeodesy.geodesici</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums.Fsum-class.html#__radd__\">__radd__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums.Fsum-class.html\">Fsum</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_M_\">_M_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_X_\">_X_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__radd__\">__radd__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">Vector3dBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_m_\">_m_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_x_\">_x_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.booleans._BooleanBase-class.html#__rand__\">__rand__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.booleans._BooleanBase-class.html\">_BooleanBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.constants-module.html#_M_KM\">_M_KM</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.constants-module.html\">pygeodesy.constants</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geod3solve._Geodesic3SolveBase-class.html#_Xable_name\">_Xable_name</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geod3solve._Geodesic3SolveBase-class.html\">_Geodesic3SolveBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.angles.Ang-class.html#__rdivmod__\">__rdivmod__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.angles.Ang-class.html\">Ang</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.constants-module.html#_M_NM\">_M_NM</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.constants-module.html\">pygeodesy.constants</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesici.Intersectool-class.html#_Xable_name\">_Xable_name</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesici.Intersectool-class.html\">Intersectool</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums.Fsum-class.html#__rdivmod__\">__rdivmod__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums.Fsum-class.html\">Fsum</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.constants-module.html#_M_SM\">_M_SM</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.constants-module.html\">pygeodesy.constants</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodsolve._GeodesicSolveBase-class.html#_Xable_name\">_Xable_name</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodsolve._GeodesicSolveBase-class.html\">_GeodesicSolveBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rdivmod__\">__rdivmod__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">Vector3dBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.internals-module.html#_macOS_\">_macOS_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.internals-module.html\">pygeodesy.internals</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb.solve._RhumbSolveBase-class.html#_Xable_name\">_Xable_name</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb.solve._RhumbSolveBase-class.html\">_RhumbSolveBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.angles.Ang-class.html#__repr__\">__repr__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.angles.Ang-class.html\">Ang</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxLat.AuxLat-class.html#_mAL\">_mAL</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats.auxLat.AuxLat-class.html\">AuxLat</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#_Xable_name\">_Xable_name</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.solveBase._SolveCapsBase-class.html\">_SolveCapsBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.booleans._CompositeBase-class.html#__repr__\">__repr__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.booleans._CompositeBase-class.html\">_CompositeBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_MANT_DIG_\">_MANT_DIG_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geod3solve._Geodesic3SolveBase-class.html#_Xable_path\">_Xable_path</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geod3solve._Geodesic3SolveBase-class.html\">_Geodesic3SolveBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.booleans._LatLonBool-class.html#__repr__\">__repr__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.booleans._LatLonBool-class.html\">_LatLonBool</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.azimuthal._AzimuthalGeodesic-class.html#_mask\">_mask</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.azimuthal._AzimuthalGeodesic-class.html\">_AzimuthalGeodesic</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesici.Intersectool-class.html#_Xable_path\">_Xable_path</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesici.Intersectool-class.html\">Intersectool</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.epsg.Epsg-class.html#__repr__\">__repr__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.epsg.Epsg-class.html\">Epsg</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#_mask\">_mask</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html\">GeodesicAreaExact</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodsolve._GeodesicSolveBase-class.html#_Xable_path\">_Xable_path</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodsolve._GeodesicSolveBase-class.html\">_GeodesicSolveBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geoids._GeoidBase-class.html#__repr__\">__repr__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geoids._GeoidBase-class.html\">_GeoidBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geohash-module.html#_MASK5\">_MASK5</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geohash-module.html\">pygeodesy.geohash</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb.solve._RhumbSolveBase-class.html#_Xable_path\">_Xable_path</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb.solve._RhumbSolveBase-class.html\">_RhumbSolveBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.named.ADict-class.html#__repr__\">__repr__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.named.ADict-class.html\">ADict</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_MAX_\">_MAX_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#_Xable_path\">_Xable_path</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.solveBase._SolveCapsBase-class.html\">_SolveCapsBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.named._Named-class.html#__repr__\">__repr__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.named._Named-class.html\">_Named</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxAngle-module.html#_MAX_2\">_MAX_2</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats.auxAngle-module.html\" onclick=\"show_private();\">pygeodesy.auxilats.auxAngle</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.karney-module.html#_Xables\">_Xables</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.karney-module.html\">pygeodesy.karney</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.named._NamedBase-class.html#__repr__\">__repr__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.named._NamedBase-class.html\">_NamedBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.albers-module.html#_MAXIT\">_MAXIT</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.albers-module.html\">pygeodesy.albers</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.errors-module.html#_XErrors\">_XErrors</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.errors-module.html\">pygeodesy.errors</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.named._NamedEnum-class.html#__repr__\">__repr__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.named._NamedEnum-class.html\">_NamedEnum</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipses.Ellipse-class.html#_maxit\">_maxit</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipses.Ellipse-class.html\">Ellipse</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.trf.TransformXform-class.html#_Xform\">_Xform</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.trf.TransformXform-class.html\">TransformXform</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.named._NamedTuple-class.html#__repr__\">__repr__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.named._NamedTuple-class.html\">_NamedTuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.elliptic-module.html#_MAXIT\">_MAXIT</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.elliptic-module.html\">pygeodesy.elliptic</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.trf-module.html#_xform_\">_xform_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.trf-module.html\">pygeodesy.trf</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.points.LatLon2psxy-class.html#__repr__\">__repr__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.points.LatLon2psxy-class.html\">LatLon2psxy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.bases-module.html#_MAXIT\">_MAXIT</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.bases-module.html\" onclick=\"show_private();\">pygeodesy.triaxials.bases</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesici-module.html#_XINF\">_XINF</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesici-module.html\">pygeodesy.geodesici</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.points._Array2LatLon-class.html#__repr__\">__repr__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.points._Array2LatLon-class.html\">_Array2LatLon</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.albers-module.html#_MAXIT0\">_MAXIT0</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.albers-module.html\">pygeodesy.albers</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#_xings\">_xings</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html\">GeodesicAreaExact</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.trf.TRFXform-class.html#__repr__\">__repr__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.trf.TRFXform-class.html\">TRFXform</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx.gx-module.html#_MAXIT1\">_MAXIT1</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx.gx-module.html\">pygeodesy.geodesicx.gx</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.formy-module.html#_xline_\">_xline_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.formy-module.html\">pygeodesy.formy</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#__repr__\">__repr__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html\">_UnOrderedTriaxialBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx.gx-module.html#_MAXIT2\">_MAXIT2</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx.gx-module.html\">pygeodesy.geodesicx.gx</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.elevations-module.html#_XML_\">_XML_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.elevations-module.html\">pygeodesy.elevations</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.units.Meter-class.html#__repr__\">__repr__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.units.Meter-class.html\">Meter</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.gars-module.html#_MaxLen\">_MaxLen</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.gars-module.html\">pygeodesy.gars</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.basics-module.html#_XPACKAGES\">_XPACKAGES</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.basics-module.html\">pygeodesy.basics</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.unitsBase.Float-class.html#__repr__\">__repr__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.unitsBase.Float-class.html\">Float</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.wgrs-module.html#_MaxLen\">_MaxLen</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.wgrs-module.html\">pygeodesy.wgrs</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.basics-module.html#_xpackages_\">_xpackages_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.basics-module.html\">pygeodesy.basics</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.unitsBase.Int-class.html#__repr__\">__repr__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.unitsBase.Int-class.html\">Int</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.gars-module.html#_MaxPrec\">_MaxPrec</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.gars-module.html\">pygeodesy.gars</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.booleans._CompositeBase-class.html#_xtend\">_xtend</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.booleans._CompositeBase-class.html\">_CompositeBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.unitsBase.Str-class.html#__repr__\">__repr__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.unitsBase.Str-class.html\">Str</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geohash-module.html#_MaxPrec\">_MaxPrec</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geohash-module.html\">pygeodesy.geohash</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.booleans._CompositeGH-class.html#_xtend\">_xtend</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.booleans._CompositeGH-class.html\">_CompositeGH</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utm.Utm-class.html#__repr__\">__repr__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utm.Utm-class.html\">Utm</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.wgrs-module.html#_MaxPrec\">_MaxPrec</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.wgrs-module.html\">pygeodesy.wgrs</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_xyz_\">_xyz_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html#__repr__\">__repr__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html\">UtmUpsBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.trf-module.html#_mDays\">_mDays</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.trf-module.html\">pygeodesy.trf</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ecef-module.html#_xyz_y_z\">_xyz_y_z</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ecef-module.html\">pygeodesy.ecef</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.points.LatLon2psxy-class.html#__reversed__\">__reversed__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.points.LatLon2psxy-class.html\">LatLon2psxy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geoids.GeoidKarney-class.html#_mean\">_mean</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geoids.GeoidKarney-class.html\">GeoidKarney</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples-module.html#_XyzLocals4\">_XyzLocals4</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples-module.html\">pygeodesy.ltpTuples</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.points._Array2LatLon-class.html#__reversed__\">__reversed__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.points._Array2LatLon-class.html\">_Array2LatLon</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geoids._GeoidBase-class.html#_mean\">_mean</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geoids._GeoidBase-class.html\">_GeoidBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples-module.html#_XyzLocals5\">_XyzLocals5</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples-module.html\">pygeodesy.ltpTuples</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.angles.Ang-class.html#__rfloordiv__\">__rfloordiv__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.angles.Ang-class.html\">Ang</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_mean_\">_mean_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#_y\">_y</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html\">AuxAngle</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums.Fsum-class.html#__rfloordiv__\">__rfloordiv__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums.Fsum-class.html\">Fsum</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_meanOf_\">_meanOf_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.webmercator.Wm-class.html#_y\">_y</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.webmercator.Wm-class.html\">Wm</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rfloordiv__\">__rfloordiv__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">Vector3dBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.css.CassiniSoldner-class.html#_meridian\">_meridian</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.css.CassiniSoldner-class.html\">CassiniSoldner</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_Y_\">_Y_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.angles.Ang-class.html#__rmatmul__\">__rmatmul__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.angles.Ang-class.html\">Ang</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_meridional_\">_meridional_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_y_\">_y_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums.Fsum-class.html#__rmatmul__\">__rmatmul__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums.Fsum-class.html\">Fsum</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_meter2_\">_meter2_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltp.Attitude-class.html#_yaw\">_yaw</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltp.Attitude-class.html\">Attitude</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.named._Named-class.html\">_Named</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_meter_\">_meter_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples-module.html#_yaw_\">_yaw_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples-module.html\">pygeodesy.ltpTuples</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rmatmul__\">__rmatmul__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">Vector3dBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.units-module.html#_Meters\">_Meters</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.units-module.html\">pygeodesy.units</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geoids.GeoidKarney-class.html#_yx_hits\">_yx_hits</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geoids.GeoidKarney-class.html\">GeoidKarney</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.angles.Ang-class.html#__rmod__\">__rmod__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.angles.Ang-class.html\">Ang</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.props-module.html#_method_\">_method_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.props-module.html\">pygeodesy.props</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geoids._GeoidBase-class.html#_yx_hits\">_yx_hits</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geoids._GeoidBase-class.html\">_GeoidBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums.Fsum-class.html#__rmod__\">__rmod__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums.Fsum-class.html\">Fsum</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.bases.LLK-class.html#_METRICS\">_METRICS</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.bases.LLK-class.html\">LLK</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geoids.GeoidKarney-class.html#_yx_i\">_yx_i</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geoids.GeoidKarney-class.html\">GeoidKarney</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rmod__\">__rmod__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">Vector3dBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.datums-module.html#_MGI_\">_MGI_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.datums-module.html\">pygeodesy.datums</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geoids.GeoidKarney-class.html#_yx_t\">_yx_t</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geoids.GeoidKarney-class.html\">GeoidKarney</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.angles.Ang-class.html#__rmul__\">__rmul__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.angles.Ang-class.html\">Ang</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_MGRS_\">_MGRS_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_Z_\">_Z_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.booleans.LatLonFHP-class.html#__rmul__\">__rmul__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.booleans.LatLonFHP-class.html\">LatLonFHP</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utmups-module.html#_MGRS_TILE\">_MGRS_TILE</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utmups-module.html\">pygeodesy.utmups</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_z_\">_z_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums.Fsum-class.html#__rmul__\">__rmul__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums.Fsum-class.html\">Fsum</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_MIN_\">_MIN_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.triaxial3-module.html#_zet_\">_zet_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.triaxial3-module.html\" onclick=\"show_private();\">pygeodesy.triaxials.triaxial3</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.booleans._BooleanBase-class.html#__ror__\">__ror__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.booleans._BooleanBase-class.html\">_BooleanBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.gars-module.html#_MinLen\">_MinLen</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.gars-module.html\">pygeodesy.gars</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.etm.ExactTransverseMercator-class.html#_zetaC\">_zetaC</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.etm.ExactTransverseMercator-class.html\">ExactTransverseMercator</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.angles.Ang-class.html#__round__\">__round__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.angles.Ang-class.html\">Ang</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.wgrs-module.html#_MinLen\">_MinLen</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.wgrs-module.html\">pygeodesy.wgrs</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.epsg.Epsg-class.html#_zone\">_zone</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.epsg.Epsg-class.html\">Epsg</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums.Fsum-class.html#__round__\">__round__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums.Fsum-class.html\">Fsum</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_MINUS_\">_MINUS_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.mgrs.Mgrs-class.html#_zone\">_zone</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.mgrs.Mgrs-class.html\">Mgrs</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__round__\">__round__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">Vector3dBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.dms-module.html#_MINUTES_\">_MINUTES_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.dms-module.html\">pygeodesy.dms</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utm.Utm-class.html#_zone\">_zone</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utm.Utm-class.html\">Utm</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.angles.Ang-class.html#__rpow__\">__rpow__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.angles.Ang-class.html\">Ang</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.trf-module.html#_MM2M\">_MM2M</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.trf-module.html\">pygeodesy.trf</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_zone_\">_zone_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums.Fsum-class.html#__rpow__\">__rpow__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums.Fsum-class.html\">Fsum</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.hausdorff.Hausdorff-class.html#_model\">_model</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.hausdorff.Hausdorff-class.html\">Hausdorff</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.angles-module.html#_ZRND\">_ZRND</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.angles-module.html\">pygeodesy.angles</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rpow__\">__rpow__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">Vector3dBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.internals-module.html#_MODS\">_MODS</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.internals-module.html\">pygeodesy.internals</a>)</span></td>\n<td width=\"33%\" class=\"link-index\">&nbsp;</td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.angles.Ang-class.html#__rsub__\">__rsub__()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.angles.Ang-class.html\">Ang</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.interns-module.html#_module_\">_module_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a>)</span></td>\n<td width=\"33%\" class=\"link-index\">&nbsp;</td>\n</tr>\n</table>\n</td></tr>\n</table>\n<br /><br /><!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th bgcolor=\"#70b0f0\" class=\"navbar-select\"\n          >&nbsp;&nbsp;&nbsp;Indices&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:17 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/identifier-index.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>Identifier Index</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th bgcolor=\"#70b0f0\" class=\"navbar-select\"\n          >&nbsp;&nbsp;&nbsp;Indices&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">&nbsp;</td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"identifier-index.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<center><b>[\n <a href=\"identifier-index.html\">Identifiers</a>\n| <a href=\"term-index.html\">Term Definitions</a>\n]</b></center><br />\n<table border=\"0\" width=\"100%\">\n<tr valign=\"bottom\"><td>\n<h1 class=\"epydoc\">Identifier Index</h1>\n</td><td>\n[\n <a href=\"identifier-index-A.html\">A</a>\n <a href=\"identifier-index-B.html\">B</a>\n <a href=\"identifier-index-C.html\">C</a>\n <a href=\"identifier-index-D.html\">D</a>\n <a href=\"identifier-index-E.html\">E</a>\n <a href=\"identifier-index-F.html\">F</a>\n <a href=\"identifier-index-G.html\">G</a>\n <a href=\"identifier-index-H.html\">H</a>\n <a href=\"identifier-index-I.html\">I</a>\n <a href=\"identifier-index-J.html\">J</a>\n <a href=\"identifier-index-K.html\">K</a>\n <a href=\"identifier-index-L.html\">L</a>\n <a href=\"identifier-index-M.html\">M</a>\n <a href=\"identifier-index-N.html\">N</a>\n <a href=\"identifier-index-O.html\">O</a>\n <a href=\"identifier-index-P.html\">P</a>\n <a href=\"identifier-index-Q.html\">Q</a>\n <a href=\"identifier-index-R.html\">R</a>\n <a href=\"identifier-index-S.html\">S</a>\n <a href=\"identifier-index-T.html\">T</a>\n <a href=\"identifier-index-U.html\">U</a>\n <a href=\"identifier-index-V.html\">V</a>\n <a href=\"identifier-index-W.html\">W</a>\n <a href=\"identifier-index-X.html\">X</a>\n <a href=\"identifier-index-Y.html\">Y</a>\n <a href=\"identifier-index-Z.html\">Z</a>\n <a href=\"identifier-index-_.html\">_</a>\n]\n</td></table>\n<table border=\"0\" width=\"100%\">\n<tr valign=\"top\"><td valign=\"top\" width=\"1%\"><h2 class=\"epydoc\"><a name=\"A\">A</a></h2></td>\n<td valign=\"top\">\n<table class=\"link-index\" width=\"100%\" border=\"1\">\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxLat.AuxLat-class.html#a\">a</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats.auxLat.AuxLat-class.html\">AuxLat</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesici.Intersectool-class.html#All\">All()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesici.Intersectool-class.html\">Intersectool</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utily-module.html#atan1d\">atan1d()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utily-module.html\">pygeodesy.utily</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipses.Ellipse-class.html#a\">a</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipses.Ellipse-class.html\">Ellipse</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesici.Intersector-class.html#All\">All()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesici.Intersector-class.html\">Intersector</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utily-module.html#atan2\">atan2()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utily-module.html\">pygeodesy.utily</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#A\">A</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesici._IntersectBase-class.html#All\">All()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesici._IntersectBase-class.html\">_IntersectBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utily-module.html#atan2b\">atan2b()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utily-module.html\">pygeodesy.utily</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#a\">a</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesici.Intersectool-class.html#All5\">All5()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesici.Intersectool-class.html\">Intersectool</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utily-module.html#atan2d\">atan2d()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utily-module.html\">pygeodesy.utily</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geod3solve._Geodesic3SolveBase-class.html#a\">a</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geod3solve._Geodesic3SolveBase-class.html\">_Geodesic3SolveBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesici.Intersector-class.html#All5\">All5()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesici.Intersector-class.html\">Intersector</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utily-module.html#atan2p\">atan2p()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utily-module.html\">pygeodesy.utily</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesici._IntersectBase-class.html#a\">a</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesici._IntersectBase-class.html\">_IntersectBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.sphericalNvector.LatLon-class.html#alongTrackDistanceTo\">alongTrackDistanceTo()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.sphericalNvector.LatLon-class.html\">LatLon</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.functions-module.html#atand\">atand()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.functions-module.html\" onclick=\"show_private();\">pygeodesy.deprecated.functions</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html#a\">a</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html\">GeodesicExact</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html#alongTrackDistanceTo\">alongTrackDistanceTo()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html\">LatLon</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltp.Attitude-class.html\">Attitude</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltp-module.html\">pygeodesy.ltp</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb.bases.RhumbBase-class.html#a\">a</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb.bases.RhumbBase-class.html\">RhumbBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxLat.AuxLat-class.html#ALorder\">ALorder</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats.auxLat.AuxLat-class.html\">AuxLat</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.Attitude4Tuple-class.html\">Attitude4Tuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples-module.html\">pygeodesy.ltpTuples</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#a\">a</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.solveBase._SolveCapsBase-class.html\">_SolveCapsBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geod3solve.GeodesicLine3Solve-class.html#alp1\">alp1</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geod3solve.GeodesicLine3Solve-class.html\">GeodesicLine3Solve</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltp.AttitudeError-class.html\">AttitudeError</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltp-module.html\">pygeodesy.ltp</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#a\">a</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html\">_UnOrderedTriaxialBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.elliptic.Elliptic-class.html#alpha2\">alpha2</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.elliptic.Elliptic-class.html\">Elliptic</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.named._Named-class.html\">_Named</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#a1\">a1</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html\">_GeodesicLineExact</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#AlphaKs\">AlphaKs</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.streprs-module.html#attrs\">attrs()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.streprs-module.html\">pygeodesy.streprs</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#a13\">a13</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html\">_GeodesicLineExact</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.elliptic.Elliptic-class.html#alphap2\">alphap2</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.elliptic.Elliptic-class.html\">Elliptic</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltp.Attitude-class.html#atyr\">atyr</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltp.Attitude-class.html\">Attitude</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodsolve.GeodesicLineSolve-class.html#a13\">a13</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodsolve.GeodesicLineSolve-class.html\">GeodesicLineSolve</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltp.Attitude-class.html#alt\">alt</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltp.Attitude-class.html\">Attitude</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.Attitude4Tuple-class.html#atyr\">atyr</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.Attitude4Tuple-class.html\">Attitude4Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#a2\">a2</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.angles.Ang-class.html\">Ang</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.angles-module.html\">pygeodesy.angles</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.lcc.Conic-class.html#auth\">auth</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.lcc.Conic-class.html\">Conic</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#a2\">a2</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html\">_UnOrderedTriaxialBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.formy-module.html#angle2chord\">angle2chord()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.formy-module.html\">pygeodesy.formy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxLat.AuxLat-class.html#Authalic\">Authalic()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats.auxLat.AuxLat-class.html\">AuxLat</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#a2_\">a2_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.angles-module.html\">angles</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxLat.AuxLat-class.html#AuthalicRadius2\">AuthalicRadius2()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats.auxLat.AuxLat-class.html\">AuxLat</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#a2_b\">a2_b</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#angleTo\">angleTo()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">Vector3dBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats-module.html#Aux\">Aux</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats-module.html\">pygeodesy.auxilats</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#a2_b2\">a2_b2</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.functions-module.html#anStr\">anStr()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.functions-module.html\" onclick=\"show_private();\">pygeodesy.deprecated.functions</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxily-module.html#Aux\">Aux</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats.auxily-module.html\" onclick=\"show_private();\">pygeodesy.auxilats.auxily</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#a_b\">a_b</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.streprs-module.html#anstr\">anstr()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.streprs-module.html\">pygeodesy.streprs</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb.aux_-module.html\">aux_</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb-module.html\">pygeodesy.rhumb</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids-module.html#a_b2e\">a_b2e()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids-module.html\">pygeodesy.ellipsoids</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.azimuthal.Azimuthal7Tuple-class.html#antipodal\">antipodal()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.azimuthal.Azimuthal7Tuple-class.html\">Azimuthal7Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxAngle-module.html\">auxAngle</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats-module.html\">pygeodesy.auxilats</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids-module.html#a_b2e2\">a_b2e2()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids-module.html\">pygeodesy.ellipsoids</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#antipode\">antipode()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html\">LatLonEllipsoidalBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html\">AuxAngle</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats.auxAngle-module.html\" onclick=\"show_private();\">pygeodesy.auxilats.auxAngle</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids-module.html#a_b2e22\">a_b2e22()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids-module.html\">pygeodesy.ellipsoids</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.formy-module.html#antipode\">antipode()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.formy-module.html\">pygeodesy.formy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#auxAuthalic\">auxAuthalic()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids-module.html#a_b2e32\">a_b2e32()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids-module.html\">pygeodesy.ellipsoids</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#antipode\">antipode()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">LatLonBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxAngle.AuxBeta-class.html\">AuxBeta</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats.auxAngle-module.html\" onclick=\"show_private();\">pygeodesy.auxilats.auxAngle</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids-module.html#a_b2f\">a_b2f()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids-module.html\">pygeodesy.ellipsoids</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.formy-module.html#antipode_\">antipode_()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.formy-module.html\">pygeodesy.formy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxAngle.AuxChi-class.html\">AuxChi</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats.auxAngle-module.html\" onclick=\"show_private();\">pygeodesy.auxilats.auxAngle</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids-module.html#a_b2f2\">a_b2f2()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids-module.html\">pygeodesy.ellipsoids</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#apply\">apply()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">Vector3dBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#auxConformal\">auxConformal()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids-module.html#a_b2f_\">a_b2f_()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids-module.html\">pygeodesy.ellipsoids</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipses.Ellipse-class.html#apses2\">apses2</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipses.Ellipse-class.html\">Ellipse</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxDLat-module.html\">auxDLat</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats-module.html\">pygeodesy.auxilats</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids-module.html#a_b2n\">a_b2n()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids-module.html\">pygeodesy.ellipsoids</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipses.Ellipse-class.html#arc\">arc()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipses.Ellipse-class.html\">Ellipse</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxDLat.AuxDLat-class.html\">AuxDLat</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats.auxDLat-module.html\" onclick=\"show_private();\">pygeodesy.auxilats.auxDLat</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#a_f\">a_f</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#Arc\">Arc()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html\">_GeodesicLineExact</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxDST-module.html\">auxDST</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats-module.html\">pygeodesy.auxilats</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids-module.html#a_f2b\">a_f2b()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids-module.html\">pygeodesy.ellipsoids</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodsolve.GeodesicLineSolve-class.html#Arc\">Arc()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodsolve.GeodesicLineSolve-class.html\">GeodesicLineSolve</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxDST.AuxDST-class.html\">AuxDST</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats.auxDST-module.html\" onclick=\"show_private();\">pygeodesy.auxilats.auxDST</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\">a_f2Tuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids-module.html\">pygeodesy.ellipsoids</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.consterns.Elliperim-class.html#Arc43\">Arc43()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.consterns.Elliperim-class.html\">Elliperim</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.errors.AuxError-class.html\">AuxError</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.errors-module.html\">pygeodesy.errors</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids-module.html#a_f_2b\">a_f_2b()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids-module.html\">pygeodesy.ellipsoids</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipses.Ellipse-class.html#arc_\">arc_()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipses.Ellipse-class.html\">Ellipse</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#auxGeocentric\">auxGeocentric()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geohash.Geohash-class.html#ab\">ab</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geohash.Geohash-class.html\">Geohash</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html#ArcDirect\">ArcDirect()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html\">GeodesicExact</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats-module.html\">auxilats</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.triaxial5.ConformalSphere-class.html#ab\">ab</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.triaxial5.ConformalSphere-class.html\">ConformalSphere</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb.bases.RhumbBase-class.html#ArcDirect\">ArcDirect()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb.bases.RhumbBase-class.html\">RhumbBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxily-module.html\">auxily</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats-module.html\">pygeodesy.auxilats</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.Circle4Tuple-class.html#abc3\">abc3</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples.Circle4Tuple-class.html\">Circle4Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.solveBase._SolveGDictBase-class.html#ArcDirect\">ArcDirect()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.solveBase._SolveGDictBase-class.html\">_SolveGDictBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#auxIsometric\">auxIsometric()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.Ellipse5Tuple-class.html#abc3\">abc3</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples.Ellipse5Tuple-class.html\">Ellipse5Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html#ArcDirectLine\">ArcDirectLine()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html\">GeodesicExact</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxLat-module.html\">auxLat</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats-module.html\">pygeodesy.auxilats</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#abc3\">abc3</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html\">_UnOrderedTriaxialBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#ArcPosition\">ArcPosition()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html\">_GeodesicLineExact</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxLat.AuxLat-class.html\">AuxLat</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats.auxLat-module.html\" onclick=\"show_private();\">pygeodesy.auxilats.auxLat</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.namedTuples.Ellipse5Tuple-class.html#abc3ordered\">abc3ordered</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.namedTuples.Ellipse5Tuple-class.html\">Ellipse5Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodsolve.GeodesicLineSolve-class.html#ArcPosition\">ArcPosition()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodsolve.GeodesicLineSolve-class.html\">GeodesicLineSolve</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxAngle.AuxMu-class.html\">AuxMu</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats.auxAngle-module.html\" onclick=\"show_private();\">pygeodesy.auxilats.auxAngle</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"abc.ABCMeta-class.html\">ABCMeta</a></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#ArcPosition\">ArcPosition()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html\">RhumbLineBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#auxParametric\">auxParametric()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utily-module.html#acos1\">acos1()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utily-module.html\">pygeodesy.utily</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipses.Ellipse-class.html#area\">area</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipses.Ellipse-class.html\">Ellipse</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxAngle.AuxPhi-class.html\">AuxPhi</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats.auxAngle-module.html\" onclick=\"show_private();\">pygeodesy.auxilats.auxAngle</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utily-module.html#acre2ha\">acre2ha()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utily-module.html\">pygeodesy.utily</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#area\">area</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#auxRectifying\">auxRectifying()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utily-module.html#acre2m2\">acre2m2()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utily-module.html\">pygeodesy.utily</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.karney.Caps-class.html#AREA\">AREA</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.karney.Caps-class.html\">Caps</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxAngle.AuxTheta-class.html\">AuxTheta</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats.auxAngle-module.html\" onclick=\"show_private();\">pygeodesy.auxilats.auxAngle</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#AddEdge\">AddEdge()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html\">GeodesicAreaExact</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.karney._CapsBase-class.html#AREA\">AREA</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.karney._CapsBase-class.html\">_CapsBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.auxilats.auxAngle.AuxXi-class.html\">AuxXi</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.auxilats.auxAngle-module.html\" onclick=\"show_private();\">pygeodesy.auxilats.auxAngle</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#AddPoint\">AddPoint()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html\">GeodesicAreaExact</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.bases._OrderedTriaxialBase-class.html#area\">area</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.bases._OrderedTriaxialBase-class.html\">_OrderedTriaxialBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.css.Css-class.html#azi\">azi</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.css.Css-class.html\">Css</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.named.ADict-class.html\">ADict</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.named-module.html\">pygeodesy.named</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#area\">area</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html\">_UnOrderedTriaxialBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#azi0\">azi0</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html\">_GeodesicLineExact</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geohash.Geohash-class.html#adjacent\">adjacent()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geohash.Geohash-class.html\">Geohash</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html#Area\">Area()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html\">GeodesicExact</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#azi0_sincos2\">azi0_sincos2</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html\">_GeodesicLineExact</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.frechet.Frechet-class.html#adjust\">adjust</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.frechet.Frechet-class.html\">Frechet</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodsolve.GeodesicSolve-class.html#Area\">Area()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodsolve.GeodesicSolve-class.html\">GeodesicSolve</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#azi1\">azi1</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html\">_GeodesicLineExact</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.hausdorff.Hausdorff-class.html#adjust\">adjust</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.hausdorff.Hausdorff-class.html\">Hausdorff</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#area0x\">area0x</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html\">GeodesicAreaExact</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodsolve.GeodesicLineSolve-class.html#azi1\">azi1</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodsolve.GeodesicLineSolve-class.html\">GeodesicLineSolve</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.heights._HeightIDW-class.html#adjust\">adjust</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.heights._HeightIDW-class.html\">_HeightIDW</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.bases._OrderedTriaxialBase-class.html#area21k\">area21k</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.bases._OrderedTriaxialBase-class.html\">_OrderedTriaxialBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#azi12\">azi12</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html\">RhumbLineBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.Aer-class.html\">Aer</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples-module.html\">pygeodesy.ltpTuples</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.karney.Area3Tuple-class.html\">Area3Tuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.karney-module.html\">pygeodesy.karney</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb.solve.RhumbLineSolve-class.html#azi12\">azi12</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb.solve.RhumbLineSolve-class.html\">RhumbLineSolve</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.Aer-class.html#aer4\">aer4</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.Aer-class.html\">Aer</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#area_p\">area_p()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html\">_UnOrderedTriaxialBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#azi12_sincos2\">azi12_sincos2</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html\">RhumbLineBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.Ned-class.html#aer4\">aer4</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.Ned-class.html\">Ned</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#areaKT\">areaKT()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html\">_UnOrderedTriaxialBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb.solve.RhumbLineSolve-class.html#azi12_sincos2\">azi12_sincos2</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb.solve.RhumbLineSolve-class.html\">RhumbLineSolve</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.XyzLocal-class.html#aer4\">aer4</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.XyzLocal-class.html\">XyzLocal</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.functions-module.html#areaof\">areaof()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.functions-module.html\" onclick=\"show_private();\">pygeodesy.deprecated.functions</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#azi1_sincos2\">azi1_sincos2</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html\">_GeodesicLineExact</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.Aer4Tuple-class.html\">Aer4Tuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples-module.html\">pygeodesy.ltpTuples</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalExact-module.html#areaOf\">areaOf()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalExact-module.html\">pygeodesy.ellipsoidalExact</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.geodsolve.GeodesicLineSolve-class.html#azi1_sincos2\">azi1_sincos2</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.geodsolve.GeodesicLineSolve-class.html\">GeodesicLineSolve</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utily-module.html#agdf\">agdf()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utily-module.html\">pygeodesy.utily</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalGeodSolve-module.html#areaOf\">areaOf()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalGeodSolve-module.html\">pygeodesy.ellipsoidalGeodSolve</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.karney.Caps-class.html#AZIMUTH\">AZIMUTH</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.karney.Caps-class.html\">Caps</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.deprecated.consterns.Elliperim-class.html#AGM\">AGM()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.deprecated.consterns.Elliperim-class.html\">Elliperim</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalKarney-module.html#areaOf\">areaOf()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalKarney-module.html\">pygeodesy.ellipsoidalKarney</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.karney._CapsBase-class.html#AZIMUTH\">AZIMUTH</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.karney._CapsBase-class.html\">_CapsBase</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb.bases-module.html#Al\">Al</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb.bases-module.html\">pygeodesy.rhumb.bases</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoidalVincenty-module.html#areaOf\">areaOf()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoidalVincenty-module.html\">pygeodesy.ellipsoidalVincenty</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.Aer-class.html#azimuth\">azimuth</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.Aer-class.html\">Aer</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.albers-module.html\">albers</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.points-module.html#areaOf\">areaOf()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.points-module.html\">pygeodesy.points</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.Local9Tuple-class.html#azimuth\">azimuth</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.Local9Tuple-class.html\">Local9Tuple</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.albers.Albers7Tuple-class.html\">Albers7Tuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.albers-module.html\">pygeodesy.albers</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.sphericalNvector-module.html#areaOf\">areaOf()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.sphericalNvector-module.html\">pygeodesy.sphericalNvector</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.Ned-class.html#azimuth\">azimuth</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.Ned-class.html\">Ned</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.albers.AlbersEqualArea-class.html\">AlbersEqualArea</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.albers-module.html\">pygeodesy.albers</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.sphericalTrigonometry-module.html#areaOf\">areaOf()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.sphericalTrigonometry-module.html\">pygeodesy.sphericalTrigonometry</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ltpTuples.XyzLocal-class.html#azimuth\">azimuth</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ltpTuples.XyzLocal-class.html\">XyzLocal</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.albers.AlbersEqualArea2-class.html\">AlbersEqualArea2</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.albers-module.html\">pygeodesy.albers</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#areaRG\">areaRG</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html\">_UnOrderedTriaxialBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.units.Azimuth-class.html\">Azimuth</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.units-module.html\">pygeodesy.units</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.albers.AlbersEqualArea4-class.html\">AlbersEqualArea4</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.albers-module.html\">pygeodesy.albers</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.rhumb.aux_.RhumbAux-class.html#areaux\">areaux()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.rhumb.aux_.RhumbAux-class.html\">RhumbAux</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.karney.Caps-class.html#AZIMUTH_DISTANCE\">AZIMUTH_DISTANCE</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.karney.Caps-class.html\">Caps</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.albers.AlbersEqualAreaCylindrical-class.html\">AlbersEqualAreaCylindrical</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.albers-module.html\">pygeodesy.albers</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#areax\">areax</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.karney.Caps-class.html#AZIMUTH_DISTANCE_AREA\">AZIMUTH_DISTANCE_AREA</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.karney.Caps-class.html\">Caps</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.albers.AlbersEqualAreaNorth-class.html\">AlbersEqualAreaNorth</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.albers-module.html\">pygeodesy.albers</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums.Fsum-class.html#as_integer_ratio\">as_integer_ratio()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums.Fsum-class.html\">Fsum</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.azimuthal-module.html\">azimuthal</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy-module.html\">pygeodesy</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.albers.AlbersEqualAreaSouth-class.html\">AlbersEqualAreaSouth</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.albers-module.html\">pygeodesy.albers</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums.Fsum2Tuple-class.html#as_integer_ratio\">as_integer_ratio()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\">Fsum2Tuple</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.azimuthal.Azimuthal7Tuple-class.html\">Azimuthal7Tuple</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.azimuthal-module.html\">pygeodesy.azimuthal</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.albers.AlbersError-class.html\">AlbersError</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.albers-module.html\">pygeodesy.albers</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.fsums.Fsum-class.html#as_iscalar\">as_iscalar</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.fsums.Fsum-class.html\">Fsum</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.azimuthal.AzimuthalError-class.html\">AzimuthalError</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.azimuthal-module.html\">pygeodesy.azimuthal</a>)</span></td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.karney.Caps-class.html#ALL\">ALL</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.karney.Caps-class.html\">Caps</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utily-module.html#asin1\">asin1()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utily-module.html\">pygeodesy.utily</a>)</span></td>\n<td width=\"33%\" class=\"link-index\">&nbsp;</td>\n</tr>\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.karney._CapsBase-class.html#ALL\">ALL</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.karney._CapsBase-class.html\">_CapsBase</a>)</span></td>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.utily-module.html#atan1\">atan1()</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.utily-module.html\">pygeodesy.utily</a>)</span></td>\n<td width=\"33%\" class=\"link-index\">&nbsp;</td>\n</tr>\n</table>\n</td></tr>\n</table>\n<br /><br /><!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th bgcolor=\"#70b0f0\" class=\"navbar-select\"\n          >&nbsp;&nbsp;&nbsp;Indices&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:17 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/index.html",
    "content": "<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Frameset//EN\"\n          \"DTD/xhtml1-frameset.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title> pygeodesy </title>\n</head>\n<frameset cols=\"20%,80%\">\n  <frameset rows=\"30%,70%\">\n    <frame src=\"toc.html\" name=\"moduleListFrame\"\n           id=\"moduleListFrame\" />\n    <frame src=\"toc-everything.html\" name=\"moduleFrame\"\n           id=\"moduleFrame\" />\n  </frameset>\n  <frame src=\"pygeodesy-module.html\" name=\"mainFrame\" id=\"mainFrame\" />\n</frameset>\n</html>\n"
  },
  {
    "path": "docs/module-tree.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>Module Hierarchy</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th bgcolor=\"#70b0f0\" class=\"navbar-select\"\n          >&nbsp;&nbsp;&nbsp;Trees&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">&nbsp;</td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"module-tree.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<center><b>\n [ <a href=\"module-tree.html\">Module Hierarchy</a>\n | <a href=\"class-tree.html\">Class Hierarchy</a> ]\n</b></center><br />\n<h1 class=\"epydoc\">Module Hierarchy</h1>\n<ul class=\"nomargin-top\">\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy-module.html\">pygeodesy</a></strong>: <em class=\"summary\">A pure Python implementation of geodesy tools for various \n        ellipsoidal and spherical earth models using precision exact, \n        elliptic, trigonometric, vector-based, iterative and approximate \n        methods for geodetic (lat-/longitude), geocentric (<a \n        href=\"https://WikiPedia.org/wiki/ECEF\" target=\"_top\">ECEF</a> \n        cartesian), local (<a \n        href=\"https://WikiPedia.org/wiki/Local_tangent_plane_coordinates\" \n        target=\"_top\">LTP</a>) and certain <a \n        href=\"https://GeographicLib.SourceForge.io/1.44/triaxial.html\" \n        target=\"_top\">triaxial ellipsoidal</a> coordinates.</em>\n    <ul>\n    <li class=\"private\"> <strong class=\"uidlink\"><a href=\"pygeodesy.__main__-module.html\">pygeodesy.__main__</a></strong>: <em class=\"summary\">Print <a href=\"pygeodesy-module.html\" class=\"link\">pygeodesy</a> \n        version, etc.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.albers-module.html\">pygeodesy.albers</a></strong>: <em class=\"summary\">Albers Equal-Area projections.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.angles-module.html\">pygeodesy.angles</a></strong>: <em class=\"summary\">Classes <a href=\"pygeodesy.angles.Ang-class.html\" \n        class=\"link\">Ang</a>, <a href=\"pygeodesy.angles-module.html#Deg\" \n        class=\"link\">Deg</a>, <a href=\"pygeodesy.angles-module.html#Rad\" \n        class=\"link\">Rad</a> and <a \n        href=\"pygeodesy.angles.Lambertian-class.html\" \n        class=\"link\">Lambertian</a> accurately representing an angle as a \n        3-tuple <code>(sine, cosine, turns)</code>, with <code>turns</code>\n        the number of full turns.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.auxilats-module.html\">pygeodesy.auxilats</a></strong>: <em class=\"summary\">Classes <a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html\" \n        class=\"link\">AuxAngle</a>, <a \n        href=\"pygeodesy.auxilats.auxDLat.AuxDLat-class.html\" \n        class=\"link\">AuxDLat</a>, <a \n        href=\"pygeodesy.auxilats.auxDST.AuxDST-class.html\" \n        class=\"link\">AuxDST</a> and <a \n        href=\"pygeodesy.auxilats.auxLat.AuxLat-class.html\" \n        class=\"link\">AuxLat</a> transcoded to Python from <i>Karney</i>'s \n        C++ class <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1AuxAngle.html\"\n        target=\"_top\">AuxAngle</a>, <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1DAuxLatitude.html\"\n        target=\"_top\">DAuxLatitude</a>, <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1DST.html\"\n        target=\"_top\">DST</a>, repectively <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1AuxLatitude.html\"\n        target=\"_top\">AuxLatitude</a> all in <i>GeographicLib version \n        2.2+</i>.</em>\n    <ul>\n    <li class=\"private\"> <strong class=\"uidlink\"><a href=\"pygeodesy.auxilats._CX_4-module.html\">pygeodesy.auxilats._CX_4</a></strong>: <em class=\"summary\">Coefficients for <code>_AUXLATITUDE_ORDER</code> 4 from \n        <i>Karney</i>'s C++ class <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1AuxLatitude.html\"\n        target=\"_top\">AuxLatitude</a> transcoded to a Python \n        <code>_Rdict[auxout][auxin]</code> of <code>_Rtuple</code>s.</em>    </li>\n    <li class=\"private\"> <strong class=\"uidlink\"><a href=\"pygeodesy.auxilats._CX_6-module.html\">pygeodesy.auxilats._CX_6</a></strong>: <em class=\"summary\">Coefficients for <code>_AUXLATITUDE_ORDER</code> 6 from \n        <i>Karney</i>'s C++ class <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1AuxLatitude.html\"\n        target=\"_top\">AuxLatitude</a> transcoded to a Python \n        <code>_Rdict[auxout][auxin]</code> of <code>_Rtuple</code>s.</em>    </li>\n    <li class=\"private\"> <strong class=\"uidlink\"><a href=\"pygeodesy.auxilats._CX_8-module.html\">pygeodesy.auxilats._CX_8</a></strong>: <em class=\"summary\">Coefficients for <code>_AUXLATITUDE_ORDER</code> 8 from \n        <i>Karney</i>'s C++ class <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1AuxLatitude.html\"\n        target=\"_top\">AuxLatitude</a> transcoded to a Python \n        <code>_Rdict[auxout][auxin]</code> of <code>_Rtuple</code>s.</em>    </li>\n    <li class=\"private\"> <strong class=\"uidlink\"><a href=\"pygeodesy.auxilats._CX_Rs-module.html\" onclick=\"show_private();\">pygeodesy.auxilats._CX_Rs</a></strong>: <em class=\"summary\">(INTERNAL) Classes <code>_Rcoeffs</code>, <code>_Rdict</code> and \n        <code>_Rtuple</code> to store the deferred Python versions of \n        coefficients from <i>Karney</i>'s C++ class <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1AuxLatitude.html\"\n        target=\"_top\">AuxLatitude</a>.</em>    </li>\n    <li class=\"private\"> <strong class=\"uidlink\"><a href=\"pygeodesy.auxilats.__main__-module.html\">pygeodesy.auxilats.__main__</a></strong>: <em class=\"summary\">Print <a href=\"pygeodesy.auxilats-module.html\" \n        class=\"link\">auxilats</a> version, etc.</em>    </li>\n    <li class=\"private\"> <strong class=\"uidlink\"><a href=\"pygeodesy.auxilats.auxAngle-module.html\" onclick=\"show_private();\">pygeodesy.auxilats.auxAngle</a></strong>: <em class=\"summary\">(INTERNAL) <i>Auxiliary</i> latitudes' base classes, constants and \n        functions.</em>    </li>\n    <li class=\"private\"> <strong class=\"uidlink\"><a href=\"pygeodesy.auxilats.auxDLat-module.html\" onclick=\"show_private();\">pygeodesy.auxilats.auxDLat</a></strong>: <em class=\"summary\">Class <a href=\"pygeodesy.auxilats.auxDLat.AuxDLat-class.html\" \n        class=\"link\">AuxDLat</a> transcoded to Python from <i>Karney</i>'s \n        C++ class <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1DAuxLatitude.html\"\n        target=\"_top\">DAuxLatitude</a> in <i>GeographicLib version \n        2.2+</i>.</em>    </li>\n    <li class=\"private\"> <strong class=\"uidlink\"><a href=\"pygeodesy.auxilats.auxDST-module.html\" onclick=\"show_private();\">pygeodesy.auxilats.auxDST</a></strong>: <em class=\"summary\">Discrete Sine Transforms (AuxDST) in Python, transcoded from \n        <i>Karney</i>'s C++ class <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1DST.html\"\n        target=\"_top\">DST</a> in <i>GeographicLib version 2.2+</i>.</em>    </li>\n    <li class=\"private\"> <strong class=\"uidlink\"><a href=\"pygeodesy.auxilats.auxLat-module.html\" onclick=\"show_private();\">pygeodesy.auxilats.auxLat</a></strong>: <em class=\"summary\">Class <a href=\"pygeodesy.auxilats.auxLat.AuxLat-class.html\" \n        class=\"link\">AuxLat</a> transcoded to Python from <i>Karney</i>'s \n        C++ class <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1AuxLatitude.html\"\n        target=\"_top\">AuxLatitude</a> in <i>GeographicLib version 2.2+</i>.</em>    </li>\n    <li class=\"private\"> <strong class=\"uidlink\"><a href=\"pygeodesy.auxilats.auxily-module.html\" onclick=\"show_private();\">pygeodesy.auxilats.auxily</a></strong>: <em class=\"summary\">(INTERNAL) <i>Auxiliary</i> latitudes' classes, constants and \n        functions.</em>    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.azimuthal-module.html\">pygeodesy.azimuthal</a></strong>: <em class=\"summary\">Equidistant, Equal-Area, and other Azimuthal projections.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.basics-module.html\">pygeodesy.basics</a></strong>: <em class=\"summary\">Some, basic definitions, functions and dependencies.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.booleans-module.html\">pygeodesy.booleans</a></strong>: <em class=\"summary\"><i>Boolean</i> operations on <i>composite</i> polygons and \n        <i>clip</i>s.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.cartesianBase-module.html\">pygeodesy.cartesianBase</a></strong>: <em class=\"summary\">(INTERNAL) Private <code>CartesianBase</code> class for \n        elliposiodal, spherical and N-/vectorial <code>Cartesian</code>s \n        and public functions <a \n        href=\"pygeodesy.cartesianBase-module.html#rtp2xyz\" \n        class=\"link\">rtp2xyz</a>, <a \n        href=\"pygeodesy.cartesianBase-module.html#rtp2xyz_\" \n        class=\"link\">rtp2xyz_</a>, <a \n        href=\"pygeodesy.cartesianBase-module.html#xyz2rtp\" \n        class=\"link\">xyz2rtp</a> and <a \n        href=\"pygeodesy.cartesianBase-module.html#xyz2rtp_\" \n        class=\"link\">xyz2rtp_</a>.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.clipy-module.html\">pygeodesy.clipy</a></strong>: <em class=\"summary\">Clip a path or polygon of <code>LatLon</code> points against a \n        rectangular box or an arbitrary (convex) region.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.constants-module.html\">pygeodesy.constants</a></strong>: <em class=\"summary\">Single-instance <code>float</code> and <code>int</code> constants \n        across <code>pygeodesy</code> modules and related functions <a \n        href=\"pygeodesy.constants-module.html#float_\" \n        class=\"link\">pygeodesy.float_</a>, <a \n        href=\"pygeodesy.constants-module.html#float0_\" \n        class=\"link\">pygeodesy.float0_</a>, <a \n        href=\"pygeodesy.constants-module.html#isclose\" \n        class=\"link\">pygeodesy.isclose</a>, <a \n        href=\"pygeodesy.constants-module.html#isfinite\" \n        class=\"link\">pygeodesy.isfinite</a>, <a \n        href=\"pygeodesy.constants-module.html#isinf\" \n        class=\"link\">pygeodesy.isinf</a>, <a \n        href=\"pygeodesy.constants-module.html#isint0\" \n        class=\"link\">pygeodesy.isint0</a>, <a \n        href=\"pygeodesy.constants-module.html#isnan\" \n        class=\"link\">pygeodesy.isnan</a>, <a \n        href=\"pygeodesy.constants-module.html#isnear0\" \n        class=\"link\">pygeodesy.isnear0</a>, <a \n        href=\"pygeodesy.constants-module.html#isnear1\" \n        class=\"link\">pygeodesy.isnear1</a>, <a \n        href=\"pygeodesy.constants-module.html#isnear90\" \n        class=\"link\">pygeodesy.isnear90</a>, <a \n        href=\"pygeodesy.constants-module.html#isneg0\" \n        class=\"link\">pygeodesy.isneg0</a>, <a \n        href=\"pygeodesy.constants-module.html#isninf\" \n        class=\"link\">pygeodesy.isninf</a>, <a \n        href=\"pygeodesy.constants-module.html#isnon0\" \n        class=\"link\">pygeodesy.isnon0</a> and <a \n        href=\"pygeodesy.constants-module.html#remainder\" \n        class=\"link\">pygeodesy.remainder</a>.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.css-module.html\">pygeodesy.css</a></strong>: <em class=\"summary\">Cassini-Soldner (CSS) projection.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.datums-module.html\">pygeodesy.datums</a></strong>: <em class=\"summary\">Datums and transformations thereof.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.deprecated-module.html\">pygeodesy.deprecated</a></strong>: <em class=\"summary\">DEPRECATED classes, constants, functions, interns, methods, etc.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.deprecated.bases-module.html\">pygeodesy.deprecated.bases</a></strong>: <em class=\"summary\">DEPRECATED on 2021.02.10, use (INTERNAL) module <a \n        href=\"pygeodesy.latlonBase-module.html\" \n        class=\"link\">pygeodesy.latlonBase</a> instead.</em>    </li>\n    <li class=\"private\"> <strong class=\"uidlink\"><a href=\"pygeodesy.deprecated.classes-module.html\" onclick=\"show_private();\">pygeodesy.deprecated.classes</a></strong>: <em class=\"summary\">DEPRECATED classes kept for backward compatibility.</em>    </li>\n    <li class=\"private\"> <strong class=\"uidlink\"><a href=\"pygeodesy.deprecated.consterns-module.html\" onclick=\"show_private();\">pygeodesy.deprecated.consterns</a></strong>: <em class=\"summary\">DEPRECATED constants, interns and singletons kept for backward \n        compatibility.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.deprecated.datum-module.html\">pygeodesy.deprecated.datum</a></strong>: <em class=\"summary\">DEPRECATED on 2022.09.12, use module <a \n        href=\"pygeodesy.datums-module.html\" \n        class=\"link\">pygeodesy.datums</a> or <a \n        href=\"pygeodesy.ellipsoids-module.html\" \n        class=\"link\">pygeodesy.ellipsoids</a> instead.</em>    </li>\n    <li class=\"private\"> <strong class=\"uidlink\"><a href=\"pygeodesy.deprecated.functions-module.html\" onclick=\"show_private();\">pygeodesy.deprecated.functions</a></strong>: <em class=\"summary\">DEPRECATED functions kept for backward compatibility.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.deprecated.nvector-module.html\">pygeodesy.deprecated.nvector</a></strong>: <em class=\"summary\">DEPRECATED on 2021.05.20, use (INTERNAL) module <a \n        href=\"pygeodesy.nvectorBase-module.html\" \n        class=\"link\">pygeodesy.nvectorBase</a> instead.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.deprecated.rhumbBase-module.html\">pygeodesy.deprecated.rhumbBase</a></strong>: <em class=\"summary\">DEPRECATED on 2023.11.26, use module <a \n        href=\"pygeodesy.rhumb.bases-module.html\" class=\"link\" \n        onclick=\"show_private();\">pygeodesy.rhumb.bases</a> instead.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.deprecated.rhumbaux-module.html\">pygeodesy.deprecated.rhumbaux</a></strong>: <em class=\"summary\">DEPRECATED on 2023.11.26, use module <a \n        href=\"pygeodesy.rhumb.aux_-module.html\" class=\"link\" \n        onclick=\"show_private();\">pygeodesy.rhumb.aux_</a> instead.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.deprecated.rhumbsolve-module.html\">pygeodesy.deprecated.rhumbsolve</a></strong>: <em class=\"summary\">DEPRECATED on 2023.11.26, use module <a \n        href=\"pygeodesy.rhumb.solve-module.html\" class=\"link\" \n        onclick=\"show_private();\">pygeodesy.rhumb.solve</a> instead.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.deprecated.rhumbx-module.html\">pygeodesy.deprecated.rhumbx</a></strong>: <em class=\"summary\">DEPRECATED on 2023.11.26, use module <a \n        href=\"pygeodesy.rhumb.ekx-module.html\" class=\"link\" \n        onclick=\"show_private();\">pygeodesy.rhumb.ekx</a> instead.</em>    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.dms-module.html\">pygeodesy.dms</a></strong>: <em class=\"summary\">Parsers and formatters of angles in degrees, minutes and seconds or\n        radians.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.ecef-module.html\">pygeodesy.ecef</a></strong>: <em class=\"summary\"><i>Geocentric</i> Earth-Centered, Earth-Fixed (ECEF) coordinates.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.ecefLocals-module.html\">pygeodesy.ecefLocals</a></strong>: <em class=\"summary\">(INTERNAL) ECEF to local coodinate conversions, separated from \n        module <code>ecef</code> to defer importing the latter into \n        <code>CartesianBase</code> and <code>LatLonBase</code>.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.elevations-module.html\">pygeodesy.elevations</a></strong>: <em class=\"summary\">Web-services-based elevations and <code>CONUS</code> geoid heights.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.ellipses-module.html\">pygeodesy.ellipses</a></strong>: <em class=\"summary\">Class <code>Ellipse</code> for 2-D ellipse attributes, like \n        perimeter, area, etc.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.ellipsoidalBase-module.html\">pygeodesy.ellipsoidalBase</a></strong>: <em class=\"summary\">(INTERNAL) Private ellipsoidal base classes \n        <code>CartesianEllipsoidalBase</code> and \n        <code>LatLonEllipsoidalBase</code>.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.ellipsoidalBaseDI-module.html\">pygeodesy.ellipsoidalBaseDI</a></strong>: <em class=\"summary\">(INTERNAL) Private, ellipsoidal Direct/Inverse geodesy base class \n        <code>LatLonEllipsoidalBaseDI</code> and functions.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.ellipsoidalExact-module.html\">pygeodesy.ellipsoidalExact</a></strong>: <em class=\"summary\">Exact ellipsoidal geodesy using <i>Karney</i>'s Exact Geodesic.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.ellipsoidalGeodSolve-module.html\">pygeodesy.ellipsoidalGeodSolve</a></strong>: <em class=\"summary\">Exact ellipsoidal geodesy, intended <i>for testing purposes \n        only</i>.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.ellipsoidalKarney-module.html\">pygeodesy.ellipsoidalKarney</a></strong>: <em class=\"summary\">Ellipsoidal, <i>Karney</i>-based geodesy.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.ellipsoidalNvector-module.html\">pygeodesy.ellipsoidalNvector</a></strong>: <em class=\"summary\">Ellipsoidal, <code>N-vector</code>-based geodesy.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.ellipsoidalVincenty-module.html\">pygeodesy.ellipsoidalVincenty</a></strong>: <em class=\"summary\">Ellipsoidal, <i>Vincenty</i>-based geodesy.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.ellipsoids-module.html\">pygeodesy.ellipsoids</a></strong>: <em class=\"summary\">Ellipsoidal and spherical earth models.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.elliptic-module.html\">pygeodesy.elliptic</a></strong>: <em class=\"summary\"><i>Karney</i>'s elliptic integrals and elliptic functions in pure \n        Python.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.epsg-module.html\">pygeodesy.epsg</a></strong>: <em class=\"summary\">European Petroleum Survey Group (EPSG) en-/decoding.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.errors-module.html\">pygeodesy.errors</a></strong>: <em class=\"summary\">Errors, exceptions, exception formatting and exception chaining.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.etm-module.html\">pygeodesy.etm</a></strong>: <em class=\"summary\">A pure Python version of <i>Karney</i>'s <code>Exact Transverse \n        Mercator</code> (ETM) projection.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.fmath-module.html\">pygeodesy.fmath</a></strong>: <em class=\"summary\">Utilities for precision floating point summation, multiplication, \n        <code>fused-multiply-add</code>, polynomials, roots, etc.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.formy-module.html\">pygeodesy.formy</a></strong>: <em class=\"summary\">Formulary of basic geodesy functions and approximations.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.frechet-module.html\">pygeodesy.frechet</a></strong>: <em class=\"summary\">Fr&#233;chet distances.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.fstats-module.html\">pygeodesy.fstats</a></strong>: <em class=\"summary\">Classes for <i>running</i> statistics and regressions based on <a \n        href=\"pygeodesy.fsums.Fsum-class.html\" \n        class=\"link\">pygeodesy.Fsum</a>, precision floating point summation\n        and accurate multiplication.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.fsums-module.html\">pygeodesy.fsums</a></strong>: <em class=\"summary\">Class <a href=\"pygeodesy.fsums.Fsum-class.html\" \n        class=\"link\">Fsum</a> for precision floating point summation \n        similar to Python's <code>math.fsum</code>, but enhanced with \n        <i>precision running</i> summation plus optionally, accurate \n        <i>TwoProduct</i> multiplication.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.gars-module.html\">pygeodesy.gars</a></strong>: <em class=\"summary\"><i>Global Area Reference System</i> (GARS) en-/decoding.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.geod3solve-module.html\">pygeodesy.geod3solve</a></strong>: <em class=\"summary\">Wrapper to invoke <i>Karney</i>'s <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/Geod3Solve.1.html\"\n        target=\"_top\">Geod3Solve</a> utility as a <code>triaxial</code> \n        geodesic, but intended <i>mainly for testing purposes</i>.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.geodesici-module.html\">pygeodesy.geodesici</a></strong>: <em class=\"summary\">Classes <a href=\"pygeodesy.geodesici.Intersectool-class.html\" \n        class=\"link\">Intersectool</a> and <a \n        href=\"pygeodesy.geodesici.Intersector-class.html\" \n        class=\"link\">Intersector</a> to find the intersections of two \n        geodesic lines or line segments.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.geodesicw-module.html\">pygeodesy.geodesicw</a></strong>: <em class=\"summary\">Wrapper around Python classes <code>geodesic.Geodesic</code> and \n        <code>geodesicline.GeodesicLine</code> from <i>Karney</i>'s Python \n        package <a href=\"https://PyPI.org/project/geographiclib\" \n        target=\"_top\">geographiclib</a>, provided that package is \n        installed.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.geodesicx-module.html\">pygeodesy.geodesicx</a></strong>: <em class=\"summary\">A pure Python version of <i>Karney</i>'s C++ classes <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1GeodesicExact.html\"\n        target=\"_top\">GeodesicExact</a> and <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1GeodesicLine.html\"\n        target=\"_top\">GeodesicLineExact</a>.</em>\n    <ul>\n    <li class=\"private\"> <strong class=\"uidlink\"><a href=\"pygeodesy.geodesicx._C4_24-module.html\">pygeodesy.geodesicx._C4_24</a></strong>: <em class=\"summary\">A Python version of part of <i>Karney</i>'s C++ module <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1GeodesicExactC4.html\"\n        target=\"_top\">GeodesicExactC4</a>.</em>    </li>\n    <li class=\"private\"> <strong class=\"uidlink\"><a href=\"pygeodesy.geodesicx._C4_27-module.html\">pygeodesy.geodesicx._C4_27</a></strong>: <em class=\"summary\">A Python version of part of <i>Karney</i>'s C++ module <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1GeodesicExactC4.html\"\n        target=\"_top\">GeodesicExactC4</a>.</em>    </li>\n    <li class=\"private\"> <strong class=\"uidlink\"><a href=\"pygeodesy.geodesicx._C4_30-module.html\">pygeodesy.geodesicx._C4_30</a></strong>: <em class=\"summary\">A Python version of part of <i>Karney</i>'s C++ module <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1GeodesicExactC4.html\"\n        target=\"_top\">GeodesicExactC4</a>.</em>    </li>\n    <li class=\"private\"> <strong class=\"uidlink\"><a href=\"pygeodesy.geodesicx.__main__-module.html\">pygeodesy.geodesicx.__main__</a></strong>: <em class=\"summary\">Print <a href=\"pygeodesy.geodesicx-module.html\" \n        class=\"link\">geodesicx</a> version, etc.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.geodesicx.gx-module.html\">pygeodesy.geodesicx.gx</a></strong>: <em class=\"summary\">A pure Python version of <i>Karney</i>'s C++ class <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1GeodesicExact.html\"\n        target=\"_top\">GeodesicExact</a>.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.geodesicx.gxarea-module.html\">pygeodesy.geodesicx.gxarea</a></strong>: <em class=\"summary\">Slightly enhanced versions of classes <a \n        href=\"https://GeographicLib.SourceForge.io/1.52/python/code.html#module-geographiclib.polygonarea\"\n        target=\"_top\">PolygonArea</a> and <code>Accumulator</code> from \n        <i>Karney</i>'s Python <a \n        href=\"https://GeographicLib.SourceForge.io/1.52/python/index.html\" \n        target=\"_top\">geographiclib</a>.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.geodesicx.gxbases-module.html\">pygeodesy.geodesicx.gxbases</a></strong>: <em class=\"summary\">(INTERNAL) Private <a href=\"pygeodesy.geodesicx-module.html\" \n        class=\"link\">geodesicx</a> base class, functions and constants.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.geodesicx.gxline-module.html\">pygeodesy.geodesicx.gxline</a></strong>: <em class=\"summary\">A pure Python version of <i>Karney</i>'s C++ class <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1GeodesicLineExact.html\"\n        target=\"_top\">GeodesicLineExact</a>.</em>    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.geodsolve-module.html\">pygeodesy.geodsolve</a></strong>: <em class=\"summary\">Wrapper to invoke <i>Karney</i>'s <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/GeodSolve.1.html\"\n        target=\"_top\">GeodSolve</a> utility as an (exact) geodesic, but \n        intended <i>mainly for testing purposes</i>.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.geohash-module.html\">pygeodesy.geohash</a></strong>: <em class=\"summary\"><i>Gustavo Niemeyer</i>&#8217;s <a \n        href=\"https://WikiPedia.org/wiki/Geohash\" \n        target=\"_top\">Geohash</a>.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.geoids-module.html\">pygeodesy.geoids</a></strong>: <em class=\"summary\">Geoid models and geoid height interpolations.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.hausdorff-module.html\">pygeodesy.hausdorff</a></strong>: <em class=\"summary\">Hausdorff distances.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.heights-module.html\">pygeodesy.heights</a></strong>: <em class=\"summary\">Height interpolations at <code>LatLon</code> points from known \n        <code>knots</code>.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.internals-module.html\">pygeodesy.internals</a></strong>: <em class=\"summary\">Mostly INTERNAL functions, except <a \n        href=\"pygeodesy.internals-module.html#machine\" \n        class=\"link\">machine</a>, <a \n        href=\"pygeodesy.internals-module.html#print_\" \n        class=\"link\">print_</a> and <a \n        href=\"pygeodesy.internals-module.html#printf\" \n        class=\"link\">printf</a>.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a></strong>: <em class=\"summary\">Single <code>str</code>ing constants, <code>intern</code>'ed across\n        <code>pygeodesy</code> modules and function <a \n        href=\"pygeodesy.internals-module.html#machine\" \n        class=\"link\">pygeodesy.machine</a>.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.iters-module.html\">pygeodesy.iters</a></strong>: <em class=\"summary\">Iterators with options.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.karney-module.html\">pygeodesy.karney</a></strong>: <em class=\"summary\">Wrapper around several <code>geomath.Math</code> functions from \n        <i>Karney</i>'s Python package <a \n        href=\"https://PyPI.org/project/geographiclib\" \n        target=\"_top\">geographiclib</a>, provided that package is \n        installed.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.ktm-module.html\">pygeodesy.ktm</a></strong>: <em class=\"summary\">A pure Python version of <i>Karney</i>'s C++ class <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1TransverseMercator.html\"\n        target=\"_top\">TransverseMercator</a> based on <i>Kr&#252;ger</i> series.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.latlonBase-module.html\">pygeodesy.latlonBase</a></strong>: <em class=\"summary\">(INTERNAL) Base class <a \n        href=\"pygeodesy.latlonBase.LatLonBase-class.html\" \n        class=\"link\">LatLonBase</a> for all elliposiodal, spherical and \n        N-vectorial <code>LatLon</code> classes.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.lazily-module.html\">pygeodesy.lazily</a></strong>: <em class=\"summary\">Lazily import <code>pygeodesy</code> modules and attributes, based \n        on <a href=\"https://modutil.ReadTheDocs.io/en/latest/#lazy_import\" \n        target=\"_top\">lazy_import</a> from <i>Brett Cannon</i>'s <a \n        href=\"https://PyPI.org/project/modutil\" target=\"_top\">modutil</a>.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.lcc-module.html\">pygeodesy.lcc</a></strong>: <em class=\"summary\">Lambert Conformal Conic (LCC) projection.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.ltp-module.html\">pygeodesy.ltp</a></strong>: <em class=\"summary\"><i>Local Tangent Plane</i> (LTP) and <i>local</i> cartesian \n        coordinates.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.ltpTuples-module.html\">pygeodesy.ltpTuples</a></strong>: <em class=\"summary\">Named, <i>Local Tangent Plane</i> (LTP) tuples.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.mgrs-module.html\">pygeodesy.mgrs</a></strong>: <em class=\"summary\">Military Grid Reference System (MGRS/NATO) references.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.named-module.html\">pygeodesy.named</a></strong>: <em class=\"summary\">(INTERNAL) Nameable class instances.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.namedTuples-module.html\">pygeodesy.namedTuples</a></strong>: <em class=\"summary\">Named tuples.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.nvectorBase-module.html\">pygeodesy.nvectorBase</a></strong>: <em class=\"summary\">(INTERNAL) Private elliposiodal and spherical <code>Nvector</code> \n        base classes <a \n        href=\"pygeodesy.nvectorBase.LatLonNvectorBase-class.html\" \n        class=\"link\">LatLonNvectorBase</a> and <a \n        href=\"pygeodesy.nvectorBase.NvectorBase-class.html\" \n        class=\"link\">NvectorBase</a> and function <a \n        href=\"pygeodesy.nvectorBase-module.html#sumOf\" \n        class=\"link\">sumOf</a>.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.osgr-module.html\">pygeodesy.osgr</a></strong>: <em class=\"summary\">Ordnance Survey Grid References (OSGR) references on the UK <a \n        href=\"https://www.OrdnanceSurvey.co.UK/documents/resources/guide-to-nationalgrid.pdf\"\n        target=\"_top\">National Grid</a>.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.points-module.html\">pygeodesy.points</a></strong>: <em class=\"summary\">Utilities for point lists, tuples, etc.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.props-module.html\">pygeodesy.props</a></strong>: <em class=\"summary\">Mutable, immutable and caching/memoizing properties and deprecation\n        decorators.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.resections-module.html\">pygeodesy.resections</a></strong>: <em class=\"summary\">3-Point resection functions <a \n        href=\"pygeodesy.resections-module.html#cassini\" \n        class=\"link\">cassini</a>, <a \n        href=\"pygeodesy.resections-module.html#collins5\" \n        class=\"link\">collins5</a>, <a \n        href=\"pygeodesy.resections-module.html#pierlot\" \n        class=\"link\">pierlot</a>, <a \n        href=\"pygeodesy.resections-module.html#pierlotx\" \n        class=\"link\">pierlotx</a> and <a \n        href=\"pygeodesy.resections-module.html#tienstra7\" \n        class=\"link\">tienstra7</a>, survey functions <a \n        href=\"pygeodesy.resections-module.html#snellius3\" \n        class=\"link\">snellius3</a> and <a \n        href=\"pygeodesy.resections-module.html#wildberger3\" \n        class=\"link\">wildberger3</a> and triangle functions <a \n        href=\"pygeodesy.resections-module.html#triAngle\" \n        class=\"link\">triAngle</a>, <a \n        href=\"pygeodesy.resections-module.html#triAngle5\" \n        class=\"link\">triAngle5</a>, <a \n        href=\"pygeodesy.resections-module.html#triSide\" \n        class=\"link\">triSide</a>, <a \n        href=\"pygeodesy.resections-module.html#triSide2\" \n        class=\"link\">triSide2</a> and <a \n        href=\"pygeodesy.resections-module.html#triSide4\" \n        class=\"link\">triSide4</a>.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.rhumb-module.html\">pygeodesy.rhumb</a></strong>: <em class=\"summary\">Package of lazily imported <code>rhumb</code> modules <a \n        href=\"pygeodesy.rhumb.aux_-module.html\" class=\"link\" \n        onclick=\"show_private();\">rhumb.aux_</a>, <a \n        href=\"pygeodesy.rhumb.ekx-module.html\" class=\"link\" \n        onclick=\"show_private();\">rhumb.ekx</a> and <a \n        href=\"pygeodesy.rhumb.solve-module.html\" class=\"link\" \n        onclick=\"show_private();\">rhumb.solve</a>.</em>\n    <ul>\n    <li class=\"private\"> <strong class=\"uidlink\"><a href=\"pygeodesy.rhumb.aux_-module.html\" onclick=\"show_private();\">pygeodesy.rhumb.aux_</a></strong>: <em class=\"summary\">A pure Python version of <i>Karney</i>'s <i>Auxiliary \n        Latitudes</i>, C++ classes <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Rhumb.html\"\n        target=\"_top\">Rhumb</a> and <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1RhumbLine.html\"\n        target=\"_top\">RhumbLine</a> from <i>GeographicLib version 2.2+</i> \n        renamed to <a href=\"pygeodesy.rhumb.aux_.RhumbAux-class.html\" \n        class=\"link\">RhumbAux</a> respectively <a \n        href=\"pygeodesy.rhumb.aux_.RhumbLineAux-class.html\" \n        class=\"link\">RhumbLineAux</a>.</em>    </li>\n    <li class=\"private\"> <strong class=\"uidlink\"><a href=\"pygeodesy.rhumb.bases-module.html\" onclick=\"show_private();\">pygeodesy.rhumb.bases</a></strong>: <em class=\"summary\">(INTERNAL) base classes <code>RhumbBase</code> and \n        <code>RhumbLineBase</code>, pure Python version of <i>Karney</i>'s \n        C++ classes <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Rhumb.html\"\n        target=\"_top\">Rhumb</a> and <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1RhumbLine.html\"\n        target=\"_top\">RhumbLine</a> from <i>GeographicLib versions 2.0</i> \n        and <i>2.2</i> and <i>Karney</i>'s C++ example <a \n        href=\"https://SourceForge.net/p/geographiclib/discussion/1026620/thread/2ddc295e/\"\n        target=\"_top\">Rhumb intersect</a>.</em>    </li>\n    <li class=\"private\"> <strong class=\"uidlink\"><a href=\"pygeodesy.rhumb.ekx-module.html\" onclick=\"show_private();\">pygeodesy.rhumb.ekx</a></strong>: <em class=\"summary\">A pure Python version of <i>Karney</i>'s <i>elliptic functions</i>,\n        <i>Kr&#252;ger series expansion</i>, C++ classes <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Rhumb.html\"\n        target=\"_top\">Rhumb</a> and and <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1RhumbLine.html\"\n        target=\"_top\">RhumbLine</a> from <i>GeographicLib version 2.0</i>, \n        kept for backward compatibility.</em>    </li>\n    <li class=\"private\"> <strong class=\"uidlink\"><a href=\"pygeodesy.rhumb.solve-module.html\" onclick=\"show_private();\">pygeodesy.rhumb.solve</a></strong>: <em class=\"summary\">Wrapper to invoke <i>Karney</i>'s <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/RhumbSolve.1.html\"\n        target=\"_top\">RhumbSolve</a> utility as an (exact) rhumb or rhumb \n        line from <i>either GeographicLib 2.0 or 2.2+</i>.</em>    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.simplify-module.html\">pygeodesy.simplify</a></strong>: <em class=\"summary\">Simplify or linearize a path of <code>LatLon</code> points.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.solveBase-module.html\">pygeodesy.solveBase</a></strong>: <em class=\"summary\">(INTERNAL) Private base classes for <a \n        href=\"pygeodesy.geodsolve-module.html\" \n        class=\"link\">pygeodesy.geodsolve</a> and <a \n        href=\"pygeodesy.rhumb.solve-module.html\" class=\"link\" \n        onclick=\"show_private();\">pygeodesy.rhumb.solve</a>.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.sphericalBase-module.html\">pygeodesy.sphericalBase</a></strong>: <em class=\"summary\">(INTERNAL) Private spherical base classes \n        <code>CartesianSphericalBase</code> and \n        <code>LatLonSphericalBase</code> for <a \n        href=\"pygeodesy.sphericalNvector-module.html\" \n        class=\"link\">sphericalNvector</a> and <a \n        href=\"pygeodesy.sphericalTrigonometry-module.html\" \n        class=\"link\">sphericalTrigonometry</a>.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.sphericalNvector-module.html\">pygeodesy.sphericalNvector</a></strong>: <em class=\"summary\">Spherical, <code>N-vector</code>-based geodesy.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.sphericalTrigonometry-module.html\">pygeodesy.sphericalTrigonometry</a></strong>: <em class=\"summary\">Spherical, <code>trigonometry</code>-based geodesy.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.streprs-module.html\">pygeodesy.streprs</a></strong>: <em class=\"summary\">Floating point and other formatting utilities.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.trf-module.html\">pygeodesy.trf</a></strong>: <em class=\"summary\"><i>Veness</i>' Terrestrial Reference Frames (TRF), classes <a \n        href=\"pygeodesy.trf.RefFrame-class.html\" class=\"link\">RefFrame</a>,\n        registry <a href=\"pygeodesy.trf-module.html#RefFrames\" \n        class=\"link\">RefFrames</a> and <a \n        href=\"pygeodesy.errors.TRFError-class.html\" \n        class=\"link\">TRFError</a>.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.triaxials-module.html\">pygeodesy.triaxials</a></strong>: <em class=\"summary\">Package of lazily imported modules <a \n        href=\"pygeodesy.triaxials.conformal3-module.html\" class=\"link\" \n        onclick=\"show_private();\">triaxials.conformal3</a>, <a \n        href=\"pygeodesy.triaxials.triaxial3-module.html\" class=\"link\" \n        onclick=\"show_private();\">triaxials.triaxial3</a> and <a \n        href=\"pygeodesy.triaxials.triaxial5-module.html\" class=\"link\" \n        onclick=\"show_private();\">triaxials.triaxial5</a> for triaxial \n        ellipsoids.</em>\n    <ul>\n    <li class=\"private\"> <strong class=\"uidlink\"><a href=\"pygeodesy.triaxials.bases-module.html\" onclick=\"show_private();\">pygeodesy.triaxials.bases</a></strong>: <em class=\"summary\">(INTERNAL) Base classes for <i>ordered</i> triaxial ellipsoid \n        classes <a \n        href=\"pygeodesy.triaxials.triaxial5.Conformal-class.html\" \n        class=\"link\">Conformal</a>, <a \n        href=\"pygeodesy.triaxials.conformal3.Conformal3-class.html\" \n        class=\"link\">Conformal3</a>, <a \n        href=\"pygeodesy.triaxials.triaxial5.Triaxial-class.html\" \n        class=\"link\">Triaxial</a>, <a \n        href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html\" \n        class=\"link\">Triaxial3</a> and <i>unordered</i> <a \n        href=\"pygeodesy.triaxials.triaxial5.Triaxial_-class.html\" \n        class=\"link\">Triaxial_</a>.</em>    </li>\n    <li class=\"private\"> <strong class=\"uidlink\"><a href=\"pygeodesy.triaxials.conformal3-module.html\" onclick=\"show_private();\">pygeodesy.triaxials.conformal3</a></strong>: <em class=\"summary\"><i>Jacobi Conformal projection</i> classes <a \n        href=\"pygeodesy.triaxials.conformal3.Conformal3-class.html\" \n        class=\"link\">Conformal3</a>, <a \n        href=\"pygeodesy.triaxials.conformal3.Conformal3B-class.html\" \n        class=\"link\">Conformal3B</a> and <a \n        href=\"pygeodesy.triaxials.conformal3.Conformal3Sphere-class.html\" \n        class=\"link\">Conformal3Sphere</a> on triaxial ellipsoids and \n        spheres using <a href=\"pygeodesy.angles.Ang-class.html\" \n        class=\"link\">Ang</a>, <a href=\"pygeodesy.angles-module.html#Deg\" \n        class=\"link\">Deg</a>, <a href=\"pygeodesy.angles-module.html#Rad\" \n        class=\"link\">Rad</a> lat-, longitude, heading and meridian \n        (convergence) angles.</em>    </li>\n    <li class=\"private\"> <strong class=\"uidlink\"><a href=\"pygeodesy.triaxials.triaxial3-module.html\" onclick=\"show_private();\">pygeodesy.triaxials.triaxial3</a></strong>: <em class=\"summary\"><i>Ordered</i> triaxial ellipsoid classes <a \n        href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html\" \n        class=\"link\">Triaxial3</a> and <a \n        href=\"pygeodesy.triaxials.triaxial3.Triaxial3B-class.html\" \n        class=\"link\">Triaxial3B</a> for conversion between variuos \n        lat-/longitudal and cartesian coordinates on a triaxial ellipsoid \n        using <a href=\"pygeodesy.angles.Ang-class.html\" \n        class=\"link\">Ang</a>, <a href=\"pygeodesy.angles-module.html#Deg\" \n        class=\"link\">Deg</a>, <a href=\"pygeodesy.angles-module.html#Rad\" \n        class=\"link\">Rad</a> lat-, longitude and heading angles.</em>    </li>\n    <li class=\"private\"> <strong class=\"uidlink\"><a href=\"pygeodesy.triaxials.triaxial5-module.html\" onclick=\"show_private();\">pygeodesy.triaxials.triaxial5</a></strong>: <em class=\"summary\">Triaxal ellipsoid classes <a \n        href=\"pygeodesy.triaxials.triaxial5.Triaxial-class.html\" \n        class=\"link\">Triaxial</a> and <i>unordered</i> <a \n        href=\"pygeodesy.triaxials.triaxial5.Triaxial_-class.html\" \n        class=\"link\">Triaxial_</a> and Jacobi conformal projections <a \n        href=\"pygeodesy.triaxials.triaxial5.Conformal-class.html\" \n        class=\"link\">Conformal</a> and <a \n        href=\"pygeodesy.triaxials.triaxial5.ConformalSphere-class.html\" \n        class=\"link\">ConformalSphere</a>, transcoded from <i>Karney</i>'s \n        GeographicLib 2.5.2 C++ class <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1JacobiConformal.html#details\"\n        target=\"_top\">JacobiConformal</a> to pure Python and miscellaneous \n        classes <a \n        href=\"pygeodesy.triaxials.triaxial5.BetaOmega2Tuple-class.html\" \n        class=\"link\">BetaOmega2Tuple</a>, <a \n        href=\"pygeodesy.triaxials.triaxial5.BetaOmega3Tuple-class.html\" \n        class=\"link\">BetaOmega3Tuple</a> and <a \n        href=\"pygeodesy.triaxials.triaxial5.Conformal2Tuple-class.html\" \n        class=\"link\">Conformal2Tuple</a>, <i>all kept for backward \n        copability</i>.</em>    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.units-module.html\">pygeodesy.units</a></strong>: <em class=\"summary\">Various named units, all sub-classes of <code>Float</code>, \n        <code>Int</code> or <code>Str</code> from basic <code>float</code>,\n        <code>int</code> respectively <code>str</code> to named units as <a\n        href=\"pygeodesy.units.Degrees-class.html\" class=\"link\">Degrees</a>,\n        <a href=\"pygeodesy.units.Feet-class.html\" class=\"link\">Feet</a>, <a\n        href=\"pygeodesy.units.Meter-class.html\" class=\"link\">Meter</a>, <a \n        href=\"pygeodesy.units.Radians-class.html\" class=\"link\">Radians</a>,\n        etc.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.unitsBase-module.html\">pygeodesy.unitsBase</a></strong>: <em class=\"summary\">Basic <code>Float</code>, <code>Int</code> and <code>Str</code>ing \n        units classes.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.ups-module.html\">pygeodesy.ups</a></strong>: <em class=\"summary\"><i>Karney</i>'s Universal Polar Stereographic (UPS) projection.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.utily-module.html\">pygeodesy.utily</a></strong>: <em class=\"summary\">Various utility functions.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.utm-module.html\">pygeodesy.utm</a></strong>: <em class=\"summary\"><i>Veness</i>' Universal Transverse Mercator (UTM) projection.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.utmups-module.html\">pygeodesy.utmups</a></strong>: <em class=\"summary\"><i>Karney</i>'s UTM and UPS utilities.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.utmupsBase-module.html\">pygeodesy.utmupsBase</a></strong>: <em class=\"summary\">(INTERNAL) Private class <code>UtmUpsBase</code>, functions and \n        constants for modules <a href=\"pygeodesy.epsg-module.html\" \n        class=\"link\">epsg</a>, <a href=\"pygeodesy.etm-module.html\" \n        class=\"link\">etm</a>, <a href=\"pygeodesy.mgrs-module.html\" \n        class=\"link\">mgrs</a>, <a href=\"pygeodesy.ups-module.html\" \n        class=\"link\">ups</a> and <a href=\"pygeodesy.utm-module.html\" \n        class=\"link\">utm</a>.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.vector2d-module.html\">pygeodesy.vector2d</a></strong>: <em class=\"summary\">2- or 3-D vectorial functions <a \n        href=\"pygeodesy.vector2d-module.html#circin6\" \n        class=\"link\">circin6</a>, <a \n        href=\"pygeodesy.vector2d-module.html#circum3\" \n        class=\"link\">circum3</a>, <a \n        href=\"pygeodesy.vector2d-module.html#circum4_\" \n        class=\"link\">circum4_</a>, <a \n        href=\"pygeodesy.vector3d-module.html#iscolinearWith\" \n        class=\"link\">iscolinearWith</a>, <a \n        href=\"pygeodesy.vector2d-module.html#meeus2\" \n        class=\"link\">meeus2</a>, <a \n        href=\"pygeodesy.vector2d-module.html#radii11\" \n        class=\"link\">radii11</a>, <a \n        href=\"pygeodesy.vector2d-module.html#soddy4\" \n        class=\"link\">soddy4</a>, <a \n        href=\"pygeodesy.vector2d-module.html#triaxum5\" \n        class=\"link\">triaxum5</a> and <a \n        href=\"pygeodesy.vector2d-module.html#trilaterate2d2\" \n        class=\"link\">trilaterate2d2</a>.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.vector3d-module.html\">pygeodesy.vector3d</a></strong>: <em class=\"summary\">Extended 3-D vector class <a \n        href=\"pygeodesy.vector3d.Vector3d-class.html\" \n        class=\"link\">Vector3d</a> and functions.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.vector3dBase-module.html\">pygeodesy.vector3dBase</a></strong>: <em class=\"summary\">(INTERNAL) Private, 3-D vector base class \n        <code>Vector3dBase</code>.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.webmercator-module.html\">pygeodesy.webmercator</a></strong>: <em class=\"summary\">Web Mercator (WM) projection.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.wgrs-module.html\">pygeodesy.wgrs</a></strong>: <em class=\"summary\">World Geographic Reference System (WGRS) en-/decoding, aka GEOREF.</em>    </li>\n    </ul>\n    </li>\n</ul>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th bgcolor=\"#70b0f0\" class=\"navbar-select\"\n          >&nbsp;&nbsp;&nbsp;Trees&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:17 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy-Cartesian-attributes-table.html",
    "content": "\n<html>\n  <head>\n    <meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\">\n    <title>Attributes of Cartesian classes</title>\n    <style>body,div,table,thead,tbody,tfoot,tr,th,td,p {\n             font-family: \"Arial\";\n             font-size: small;\n             border: 1px solid black}\n    </style>\n  </head>\n\n  <table frame=void cellspacing=0 cols=8 rules=none>\n    <colgroup><col width=150 align=left><col width=80 align=center>\n              <col width=80 align=center><col width=80 align=center>\n              <col width=80 align=center><col width=80 align=center>\n              <col width=80 align=center><col width=110 align=center></colgroup>\n    <tbody>\n      <tr>\n        <td height=17 align=center>PyGeodesy</td>\n        <td align=center>26.3.26</td>\n        <th align=center colspan=6><b>class Cartesian in module</b></th>\n      </tr>\n      <tr>\n        <td height=17 align=center> </td>\n        <td align=center> </td>\n        <th align=center colspan=4><b>pygeodesy.ellipsoidal-</b></th>\n        <th align=center colspan=2><b>pygeodesy.spherical-</b></th>\n      </tr>\n      <tr>\n        <td height=17 align=center><b>attribute</b></td>\n        <td align=center><b>type</b></td>\n        <td align=center><b>&nbsp;-Exact&nbsp;</b></td>\n        <td align=center><b>&nbsp;-Karney&nbsp;</b></td>\n        <td align=center><b>&nbsp;-Nvector&nbsp;</b></td>\n        <td align=center><b>&nbsp;-Vincenty&nbsp;</b></td>\n        <td align=center><b>&nbsp;-Nvector&nbsp;</b></td>\n        <td align=center><b>&nbsp;-Trigonometry&nbsp;</b></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;angleTo&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#angleTo\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#angleTo\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#angleTo\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#angleTo\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#angleTo\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#angleTo\"><b>E</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;apply&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#apply\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#apply\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#apply\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#apply\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#apply\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#apply\"><b>E</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;attrs&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#attrs\"><b>H</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#attrs\"><b>H</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#attrs\"><b>H</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#attrs\"><b>H</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#attrs\"><b>H</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#attrs\"><b>H</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;bearing&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.vector3d.Vector3d-class.html#bearing\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3d.Vector3d-class.html#bearing\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3d.Vector3d-class.html#bearing\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3d.Vector3d-class.html#bearing\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3d.Vector3d-class.html#bearing\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3d.Vector3d-class.html#bearing\"><b>D</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;bools&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#bools\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#bools\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#bools\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#bools\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#bools\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#bools\"><b>E</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;cassini&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#cassini\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#cassini\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#cassini\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#cassini\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#cassini\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#cassini\"><b>C</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;circin6&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.vector3d.Vector3d-class.html#circin6\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3d.Vector3d-class.html#circin6\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3d.Vector3d-class.html#circin6\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3d.Vector3d-class.html#circin6\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3d.Vector3d-class.html#circin6\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3d.Vector3d-class.html#circin6\"><b>D</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;circum3&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.vector3d.Vector3d-class.html#circum3\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3d.Vector3d-class.html#circum3\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3d.Vector3d-class.html#circum3\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3d.Vector3d-class.html#circum3\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3d.Vector3d-class.html#circum3\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3d.Vector3d-class.html#circum3\"><b>D</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;circum4_&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.vector3d.Vector3d-class.html#circum4_\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3d.Vector3d-class.html#circum4_\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3d.Vector3d-class.html#circum4_\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3d.Vector3d-class.html#circum4_\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3d.Vector3d-class.html#circum4_\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3d.Vector3d-class.html#circum4_\"><b>D</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;classname&nbsp;</td>\n        <td align=center>Property*</td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#classname\"><b>H</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#classname\"><b>H</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#classname\"><b>H</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#classname\"><b>H</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#classname\"><b>H</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#classname\"><b>H</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;classnaming&nbsp;</td>\n        <td align=center>property</td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#classnaming\"><b>H</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#classnaming\"><b>H</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#classnaming\"><b>H</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#classnaming\"><b>H</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#classnaming\"><b>H</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#classnaming\"><b>H</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;classof&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#classof\"><b>H</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#classof\"><b>H</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#classof\"><b>H</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#classof\"><b>H</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#classof\"><b>H</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#classof\"><b>H</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;cmp&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#cmp\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#cmp\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#cmp\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#cmp\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#cmp\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#cmp\"><b>E</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;collins**&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#collins\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#collins\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#collins\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#collins\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#collins\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#collins\"><b>C</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;collins5&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#collins5\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#collins5\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#collins5\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#collins5\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#collins5\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#collins5\"><b>C</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;convertDatum**&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#convertDatum\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#convertDatum\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#convertDatum\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#convertDatum\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#convertDatum\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#convertDatum\"><b>C</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;convertRefFrame**&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#convertRefFrame\"><b>B</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#convertRefFrame\"><b>B</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#convertRefFrame\"><b>B</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#convertRefFrame\"><b>B</b></a></td>\n        <td align=center>-</td>\n        <td align=center>-</td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;copy&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#copy\"><b>H</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#copy\"><b>H</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#copy\"><b>H</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#copy\"><b>H</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#copy\"><b>H</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#copy\"><b>H</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;cross&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#cross\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#cross\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#cross\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#cross\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#cross\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#cross\"><b>E</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;crosserrors&nbsp;</td>\n        <td align=center>property</td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#crosserrors\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#crosserrors\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#crosserrors\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#crosserrors\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#crosserrors\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#crosserrors\"><b>E</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;datum&nbsp;</td>\n        <td align=center>property</td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#datum\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#datum\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#datum\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#datum\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#datum\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#datum\"><b>C</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;destinationXyz&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#destinationXyz\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#destinationXyz\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#destinationXyz\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#destinationXyz\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#destinationXyz\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#destinationXyz\"><b>C</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;dividedBy&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#dividedBy\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#dividedBy\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#dividedBy\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#dividedBy\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#dividedBy\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#dividedBy\"><b>E</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;dividedBy_&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#dividedBy_\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#dividedBy_\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#dividedBy_\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#dividedBy_\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#dividedBy_\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#dividedBy_\"><b>E</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;dot&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#dot\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#dot\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#dot\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#dot\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#dot\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#dot\"><b>E</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;dup&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#dup\"><b>H</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#dup\"><b>H</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#dup\"><b>H</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#dup\"><b>H</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#dup\"><b>H</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#dup\"><b>H</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;Ecef&nbsp;</td>\n        <td align=center>property*</td>\n        <td align=center><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#Ecef\"><b>G</b></a></td>\n        <td align=center><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#Ecef\"><b>G</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalNvector.Cartesian-class.html#Ecef\"><b>A</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalVincenty.Cartesian-class.html#Ecef\"><b>A</b></a></td>\n        <td align=center><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#Ecef\"><b>G</b></a></td>\n        <td align=center><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#Ecef\"><b>G</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;ellipsoidalCartesian&nbsp;</td>\n        <td align=center>property*</td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#ellipsoidalCartesian\"><b>B</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#ellipsoidalCartesian\"><b>B</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#ellipsoidalCartesian\"><b>B</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#ellipsoidalCartesian\"><b>B</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#ellipsoidalCartesian\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#ellipsoidalCartesian\"><b>C</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;epoch&nbsp;</td>\n        <td align=center>property</td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#epoch\"><b>B</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#epoch\"><b>B</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#epoch\"><b>B</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#epoch\"><b>B</b></a></td>\n        <td align=center>-</td>\n        <td align=center>-</td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;equals**&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#equals\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#equals\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#equals\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#equals\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#equals\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#equals\"><b>E</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;equirectangular&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#equirectangular\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#equirectangular\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#equirectangular\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#equirectangular\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#equirectangular\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#equirectangular\"><b>E</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;euclid&nbsp;</td>\n        <td align=center>Property*</td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#euclid\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#euclid\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#euclid\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#euclid\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#euclid\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#euclid\"><b>E</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;fabs&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#fabs\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#fabs\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#fabs\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#fabs\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#fabs\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#fabs\"><b>E</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;floats&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#floats\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#floats\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#floats\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#floats\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#floats\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#floats\"><b>E</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;floorDividedBy&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#floorDividedBy\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#floorDividedBy\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#floorDividedBy\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#floorDividedBy\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#floorDividedBy\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#floorDividedBy\"><b>E</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;floorDividedBy_&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#floorDividedBy_\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#floorDividedBy_\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#floorDividedBy_\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#floorDividedBy_\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#floorDividedBy_\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#floorDividedBy_\"><b>E</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;hartzell&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#hartzell\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#hartzell\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#hartzell\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#hartzell\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#hartzell\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#hartzell\"><b>C</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;height&nbsp;</td>\n        <td align=center>Property</td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#height\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#height\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#height\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#height\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#height\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#height\"><b>C</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;height3&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#height3\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#height3\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#height3\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#height3\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#height3\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#height3\"><b>C</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;height4&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#height4\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#height4\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#height4\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#height4\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#height4\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#height4\"><b>C</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;homogeneous&nbsp;</td>\n        <td align=center>property*</td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#homogeneous\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#homogeneous\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#homogeneous\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#homogeneous\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#homogeneous\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#homogeneous\"><b>E</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;intermediateTo&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#intermediateTo\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#intermediateTo\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#intermediateTo\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#intermediateTo\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#intermediateTo\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#intermediateTo\"><b>E</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;intersections2&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#intersections2\"><b>B</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#intersections2\"><b>B</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#intersections2\"><b>B</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#intersections2\"><b>B</b></a></td>\n        <td align=center><a href=\"pygeodesy.sphericalBase.CartesianSphericalBase-class.html#intersections2\"><b>B</b></a></td>\n        <td align=center><a href=\"pygeodesy.sphericalBase.CartesianSphericalBase-class.html#intersections2\"><b>B</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;ints&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#ints\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#ints\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#ints\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#ints\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#ints\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#ints\"><b>E</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;iscolinearWith&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.vector3d.Vector3d-class.html#iscolinearWith\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3d.Vector3d-class.html#iscolinearWith\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3d.Vector3d-class.html#iscolinearWith\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3d.Vector3d-class.html#iscolinearWith\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3d.Vector3d-class.html#iscolinearWith\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3d.Vector3d-class.html#iscolinearWith\"><b>D</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;isconjugateTo&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#isconjugateTo\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#isconjugateTo\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#isconjugateTo\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#isconjugateTo\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#isconjugateTo\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#isconjugateTo\"><b>E</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;isEllipsoidal&nbsp;</td>\n        <td align=center>Property*</td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#isEllipsoidal\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#isEllipsoidal\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#isEllipsoidal\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#isEllipsoidal\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#isEllipsoidal\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#isEllipsoidal\"><b>C</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;isequalTo&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#isequalTo\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#isequalTo\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#isequalTo\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#isequalTo\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#isequalTo\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#isequalTo\"><b>E</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;isSpherical&nbsp;</td>\n        <td align=center>Property*</td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#isSpherical\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#isSpherical\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#isSpherical\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#isSpherical\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#isSpherical\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#isSpherical\"><b>C</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;iteration&nbsp;</td>\n        <td align=center>property*</td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#iteration\"><b>H</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#iteration\"><b>H</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#iteration\"><b>H</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#iteration\"><b>H</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#iteration\"><b>H</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#iteration\"><b>H</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;latlon&nbsp;</td>\n        <td align=center>Property*</td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#latlon\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#latlon\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#latlon\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#latlon\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#latlon\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#latlon\"><b>C</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;latlonheight&nbsp;</td>\n        <td align=center>Property*</td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#latlonheight\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#latlonheight\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#latlonheight\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#latlonheight\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#latlonheight\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#latlonheight\"><b>C</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;latlonheightdatum&nbsp;</td>\n        <td align=center>Property*</td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#latlonheightdatum\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#latlonheightdatum\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#latlonheightdatum\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#latlonheightdatum\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#latlonheightdatum\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#latlonheightdatum\"><b>C</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;length&nbsp;</td>\n        <td align=center>Property*</td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#length\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#length\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#length\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#length\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#length\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#length\"><b>E</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;length2&nbsp;</td>\n        <td align=center>Property*</td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#length2\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#length2\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#length2\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#length2\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#length2\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#length2\"><b>E</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;meeus2&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.vector3d.Vector3d-class.html#meeus2\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3d.Vector3d-class.html#meeus2\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3d.Vector3d-class.html#meeus2\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3d.Vector3d-class.html#meeus2\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3d.Vector3d-class.html#meeus2\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3d.Vector3d-class.html#meeus2\"><b>D</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;methodname&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#methodname\"><b>H</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#methodname\"><b>H</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#methodname\"><b>H</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#methodname\"><b>H</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#methodname\"><b>H</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#methodname\"><b>H</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;minus&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#minus\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#minus\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#minus\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#minus\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#minus\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#minus\"><b>E</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;minus_&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#minus_\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#minus_\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#minus_\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#minus_\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#minus_\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#minus_\"><b>E</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;name&nbsp;</td>\n        <td align=center>property</td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#name\"><b>H</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#name\"><b>H</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#name\"><b>H</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#name\"><b>H</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#name\"><b>H</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#name\"><b>H</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;named&nbsp;</td>\n        <td align=center>Property*</td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#named\"><b>H</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#named\"><b>H</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#named\"><b>H</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#named\"><b>H</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#named\"><b>H</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#named\"><b>H</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;named2&nbsp;</td>\n        <td align=center>Property*</td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#named2\"><b>H</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#named2\"><b>H</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#named2\"><b>H</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#named2\"><b>H</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#named2\"><b>H</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#named2\"><b>H</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;named3&nbsp;</td>\n        <td align=center>Property*</td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#named3\"><b>H</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#named3\"><b>H</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#named3\"><b>H</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#named3\"><b>H</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#named3\"><b>H</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#named3\"><b>H</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;named4&nbsp;</td>\n        <td align=center>Property*</td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#named4\"><b>H</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#named4\"><b>H</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#named4\"><b>H</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#named4\"><b>H</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#named4\"><b>H</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#named4\"><b>H</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;nearestOn&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.vector3d.Vector3d-class.html#nearestOn\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3d.Vector3d-class.html#nearestOn\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3d.Vector3d-class.html#nearestOn\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3d.Vector3d-class.html#nearestOn\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3d.Vector3d-class.html#nearestOn\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3d.Vector3d-class.html#nearestOn\"><b>D</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;nearestOn6&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.vector3d.Vector3d-class.html#nearestOn6\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3d.Vector3d-class.html#nearestOn6\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3d.Vector3d-class.html#nearestOn6\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3d.Vector3d-class.html#nearestOn6\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3d.Vector3d-class.html#nearestOn6\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3d.Vector3d-class.html#nearestOn6\"><b>D</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;negate&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#negate\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#negate\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#negate\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#negate\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#negate\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#negate\"><b>E</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;others&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#others\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#others\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#others\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#others\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#others\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#others\"><b>E</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;parse&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.vector3d.Vector3d-class.html#parse\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3d.Vector3d-class.html#parse\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3d.Vector3d-class.html#parse\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3d.Vector3d-class.html#parse\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3d.Vector3d-class.html#parse\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3d.Vector3d-class.html#parse\"><b>D</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;philam&nbsp;</td>\n        <td align=center>Property*</td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#philam\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#philam\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#philam\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#philam\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#philam\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#philam\"><b>C</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;philamheight&nbsp;</td>\n        <td align=center>Property*</td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#philamheight\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#philamheight\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#philamheight\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#philamheight\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#philamheight\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#philamheight\"><b>C</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;philamheightdatum&nbsp;</td>\n        <td align=center>Property*</td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#philamheightdatum\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#philamheightdatum\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#philamheightdatum\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#philamheightdatum\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#philamheightdatum\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#philamheightdatum\"><b>C</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;pierlot&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#pierlot\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#pierlot\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#pierlot\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#pierlot\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#pierlot\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#pierlot\"><b>C</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;pierlotx&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#pierlotx\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#pierlotx\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#pierlotx\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#pierlotx\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#pierlotx\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#pierlotx\"><b>C</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;plus&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#plus\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#plus\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#plus\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#plus\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#plus\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#plus\"><b>E</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;plus_&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#plus_\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#plus_\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#plus_\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#plus_\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#plus_\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#plus_\"><b>E</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;pow&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#pow\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#pow\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#pow\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#pow\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#pow\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#pow\"><b>E</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;radii11&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.vector3d.Vector3d-class.html#radii11\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3d.Vector3d-class.html#radii11\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3d.Vector3d-class.html#radii11\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3d.Vector3d-class.html#radii11\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3d.Vector3d-class.html#radii11\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3d.Vector3d-class.html#radii11\"><b>D</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;reframe&nbsp;</td>\n        <td align=center>property</td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#reframe\"><b>B</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#reframe\"><b>B</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#reframe\"><b>B</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#reframe\"><b>B</b></a></td>\n        <td align=center>-</td>\n        <td align=center>-</td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;rename&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#rename\"><b>H</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#rename\"><b>H</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#rename\"><b>H</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#rename\"><b>H</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#rename\"><b>H</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#rename\"><b>H</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;renamed&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#renamed\"><b>H</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#renamed\"><b>H</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#renamed\"><b>H</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#renamed\"><b>H</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#renamed\"><b>H</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#renamed\"><b>H</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;Roc2&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#Roc2\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#Roc2\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#Roc2\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#Roc2\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#Roc2\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#Roc2\"><b>C</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;rotate&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#rotate\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#rotate\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#rotate\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#rotate\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#rotate\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#rotate\"><b>E</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;rotateAround**&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#rotateAround\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#rotateAround\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#rotateAround\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#rotateAround\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#rotateAround\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#rotateAround\"><b>E</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;sizeof&nbsp;</td>\n        <td align=center>property*</td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#sizeof\"><b>H</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#sizeof\"><b>H</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#sizeof\"><b>H</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#sizeof\"><b>H</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#sizeof\"><b>H</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#sizeof\"><b>H</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;soddy4&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.vector3d.Vector3d-class.html#soddy4\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3d.Vector3d-class.html#soddy4\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3d.Vector3d-class.html#soddy4\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3d.Vector3d-class.html#soddy4\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3d.Vector3d-class.html#soddy4\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3d.Vector3d-class.html#soddy4\"><b>D</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;sphericalCartesian&nbsp;</td>\n        <td align=center>property*</td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#sphericalCartesian\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#sphericalCartesian\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#sphericalCartesian\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#sphericalCartesian\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.sphericalBase.CartesianSphericalBase-class.html#sphericalCartesian\"><b>B</b></a></td>\n        <td align=center><a href=\"pygeodesy.sphericalBase.CartesianSphericalBase-class.html#sphericalCartesian\"><b>B</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;sum&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#sum\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#sum\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#sum\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#sum\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#sum\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#sum\"><b>E</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;tienstra**&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#tienstra\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#tienstra\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#tienstra\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#tienstra\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#tienstra\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#tienstra\"><b>C</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;tienstra7&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#tienstra7\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#tienstra7\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#tienstra7\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#tienstra7\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#tienstra7\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#tienstra7\"><b>C</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;times&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#times\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#times\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#times\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#times\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#times\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#times\"><b>E</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;times_&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#times_\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#times_\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#times_\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#times_\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#times_\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#times_\"><b>E</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;to2ab**&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#to2ab\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#to2ab\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#to2ab\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#to2ab\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#to2ab\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#to2ab\"><b>C</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;to2ll**&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#to2ll\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#to2ll\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#to2ll\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#to2ll\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#to2ll\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#to2ll\"><b>C</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;to3llh**&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#to3llh\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#to3llh\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#to3llh\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#to3llh\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#to3llh\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#to3llh\"><b>C</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;to3xyz**&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#to3xyz\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#to3xyz\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#to3xyz\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#to3xyz\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#to3xyz\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#to3xyz\"><b>E</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;toAer&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toAer\"><b>G</b></a></td>\n        <td align=center><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toAer\"><b>G</b></a></td>\n        <td align=center><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toAer\"><b>G</b></a></td>\n        <td align=center><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toAer\"><b>G</b></a></td>\n        <td align=center><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toAer\"><b>G</b></a></td>\n        <td align=center><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toAer\"><b>G</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;toCartesian&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.vector3d.Vector3d-class.html#toCartesian\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3d.Vector3d-class.html#toCartesian\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3d.Vector3d-class.html#toCartesian\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3d.Vector3d-class.html#toCartesian\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3d.Vector3d-class.html#toCartesian\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3d.Vector3d-class.html#toCartesian\"><b>D</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;toDatum&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#toDatum\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#toDatum\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#toDatum\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#toDatum\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#toDatum\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#toDatum\"><b>C</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;toEcef&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#toEcef\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#toEcef\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#toEcef\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#toEcef\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#toEcef\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#toEcef\"><b>C</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;toEnu&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toEnu\"><b>G</b></a></td>\n        <td align=center><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toEnu\"><b>G</b></a></td>\n        <td align=center><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toEnu\"><b>G</b></a></td>\n        <td align=center><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toEnu\"><b>G</b></a></td>\n        <td align=center><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toEnu\"><b>G</b></a></td>\n        <td align=center><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toEnu\"><b>G</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;toLatLon&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalExact.Cartesian-class.html#toLatLon\"><b>A</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalKarney.Cartesian-class.html#toLatLon\"><b>A</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalNvector.Cartesian-class.html#toLatLon\"><b>A</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalVincenty.Cartesian-class.html#toLatLon\"><b>A</b></a></td>\n        <td align=center><a href=\"pygeodesy.sphericalNvector.Cartesian-class.html#toLatLon\"><b>A</b></a></td>\n        <td align=center><a href=\"pygeodesy.sphericalTrigonometry.Cartesian-class.html#toLatLon\"><b>A</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;toLocal&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toLocal\"><b>G</b></a></td>\n        <td align=center><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toLocal\"><b>G</b></a></td>\n        <td align=center><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toLocal\"><b>G</b></a></td>\n        <td align=center><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toLocal\"><b>G</b></a></td>\n        <td align=center><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toLocal\"><b>G</b></a></td>\n        <td align=center><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toLocal\"><b>G</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;toLtp&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toLtp\"><b>G</b></a></td>\n        <td align=center><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toLtp\"><b>G</b></a></td>\n        <td align=center><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toLtp\"><b>G</b></a></td>\n        <td align=center><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toLtp\"><b>G</b></a></td>\n        <td align=center><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toLtp\"><b>G</b></a></td>\n        <td align=center><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toLtp\"><b>G</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;toNed&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toNed\"><b>G</b></a></td>\n        <td align=center><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toNed\"><b>G</b></a></td>\n        <td align=center><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toNed\"><b>G</b></a></td>\n        <td align=center><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toNed\"><b>G</b></a></td>\n        <td align=center><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toNed\"><b>G</b></a></td>\n        <td align=center><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toNed\"><b>G</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;toNvector&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#toNvector\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#toNvector\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalNvector.Cartesian-class.html#toNvector\"><b>A</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#toNvector\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.sphericalNvector.Cartesian-class.html#toNvector\"><b>A</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#toNvector\"><b>C</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;toRefFrame&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#toRefFrame\"><b>B</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#toRefFrame\"><b>B</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#toRefFrame\"><b>B</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#toRefFrame\"><b>B</b></a></td>\n        <td align=center>-</td>\n        <td align=center>-</td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;toRepr&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.named._NamedBase-class.html#toRepr\"><b>F</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._NamedBase-class.html#toRepr\"><b>F</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._NamedBase-class.html#toRepr\"><b>F</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._NamedBase-class.html#toRepr\"><b>F</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._NamedBase-class.html#toRepr\"><b>F</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._NamedBase-class.html#toRepr\"><b>F</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;toRtp&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#toRtp\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#toRtp\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#toRtp\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#toRtp\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#toRtp\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#toRtp\"><b>C</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;toStr&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#toStr\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#toStr\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#toStr\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#toStr\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#toStr\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#toStr\"><b>C</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;toStr2**&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#toStr2\"><b>H</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#toStr2\"><b>H</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#toStr2\"><b>H</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#toStr2\"><b>H</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#toStr2\"><b>H</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#toStr2\"><b>H</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;toTransform&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#toTransform\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#toTransform\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#toTransform\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#toTransform\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#toTransform\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#toTransform\"><b>C</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;toTransforms_**&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#toTransforms_\"><b>B</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#toTransforms_\"><b>B</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#toTransforms_\"><b>B</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#toTransforms_\"><b>B</b></a></td>\n        <td align=center>-</td>\n        <td align=center>-</td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;toVector&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#toVector\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#toVector\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#toVector\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#toVector\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#toVector\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#toVector\"><b>C</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;toXyz&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toXyz\"><b>G</b></a></td>\n        <td align=center><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toXyz\"><b>G</b></a></td>\n        <td align=center><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toXyz\"><b>G</b></a></td>\n        <td align=center><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toXyz\"><b>G</b></a></td>\n        <td align=center><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toXyz\"><b>G</b></a></td>\n        <td align=center><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toXyz\"><b>G</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;trilaterate2d2&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.vector3d.Vector3d-class.html#trilaterate2d2\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3d.Vector3d-class.html#trilaterate2d2\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3d.Vector3d-class.html#trilaterate2d2\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3d.Vector3d-class.html#trilaterate2d2\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3d.Vector3d-class.html#trilaterate2d2\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3d.Vector3d-class.html#trilaterate2d2\"><b>D</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;trilaterate3d2&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.vector3d.Vector3d-class.html#trilaterate3d2\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3d.Vector3d-class.html#trilaterate3d2\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3d.Vector3d-class.html#trilaterate3d2\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3d.Vector3d-class.html#trilaterate3d2\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3d.Vector3d-class.html#trilaterate3d2\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3d.Vector3d-class.html#trilaterate3d2\"><b>D</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;typename&nbsp;</td>\n        <td align=center>property*</td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#typename\"><b>H</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#typename\"><b>H</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#typename\"><b>H</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#typename\"><b>H</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#typename\"><b>H</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#typename\"><b>H</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;unit&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#unit\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#unit\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#unit\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#unit\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#unit\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#unit\"><b>E</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;x&nbsp;</td>\n        <td align=center>Property</td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#x\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#x\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#x\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#x\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#x\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#x\"><b>E</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;x2y2z2&nbsp;</td>\n        <td align=center>Property*</td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#x2y2z2\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#x2y2z2\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#x2y2z2\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#x2y2z2\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#x2y2z2\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#x2y2z2\"><b>E</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;x2y2z23&nbsp;</td>\n        <td align=center>property*</td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#x2y2z23\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#x2y2z23\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#x2y2z23\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#x2y2z23\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#x2y2z23\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#x2y2z23\"><b>E</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;xyz&nbsp;</td>\n        <td align=center>Property</td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#xyz\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#xyz\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#xyz\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#xyz\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#xyz\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#xyz\"><b>E</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;xyz3&nbsp;</td>\n        <td align=center>property*</td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#xyz3\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#xyz3\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#xyz3\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#xyz3\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#xyz3\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#xyz3\"><b>E</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;y&nbsp;</td>\n        <td align=center>Property</td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#y\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#y\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#y\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#y\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#y\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#y\"><b>E</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;z&nbsp;</td>\n        <td align=center>Property</td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#z\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#z\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#z\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#z\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#z\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#z\"><b>E</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=right> </td>\n        <td align=center> </td>\n        <th align=left colspan=6> </th>\n      </tr>\n      <tr>\n        <td height=17 align=left>&nbsp;**)&nbsp;DEPRECATED</td>\n        <td align=center>*)&nbsp;immutable</td>\n        <th align=center colspan=3>&nbsp;A:&nbsp;class attribute</th>\n        <th align=center colspan=3>&nbsp;B,&nbsp;C,&nbsp;...:&nbsp;attribute of a super class</th>\n      </tr>\n    </tbody>\n  </table>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy-LatLon-attributes-table.html",
    "content": "\n<html>\n  <head>\n    <meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\">\n    <title>Attributes of LatLon classes</title>\n    <style>body,div,table,thead,tbody,tfoot,tr,th,td,p {\n             font-family: \"Arial\";\n             font-size: small;\n             border: 1px solid black}\n    </style>\n  </head>\n\n  <table frame=void cellspacing=0 cols=8 rules=none>\n    <colgroup><col width=150 align=left><col width=80 align=center>\n              <col width=80 align=center><col width=80 align=center>\n              <col width=80 align=center><col width=80 align=center>\n              <col width=80 align=center><col width=110 align=center></colgroup>\n    <tbody>\n      <tr>\n        <td height=17 align=center>PyGeodesy</td>\n        <td align=center>26.3.26</td>\n        <th align=center colspan=6><b>class LatLon in module</b></th>\n      </tr>\n      <tr>\n        <td height=17 align=center> </td>\n        <td align=center> </td>\n        <th align=center colspan=4><b>pygeodesy.ellipsoidal-</b></th>\n        <th align=center colspan=2><b>pygeodesy.spherical-</b></th>\n      </tr>\n      <tr>\n        <td height=17 align=center><b>attribute</b></td>\n        <td align=center><b>type</b></td>\n        <td align=center><b>&nbsp;-Exact&nbsp;</b></td>\n        <td align=center><b>&nbsp;-Karney&nbsp;</b></td>\n        <td align=center><b>&nbsp;-Nvector&nbsp;</b></td>\n        <td align=center><b>&nbsp;-Vincenty&nbsp;</b></td>\n        <td align=center><b>&nbsp;-Nvector&nbsp;</b></td>\n        <td align=center><b>&nbsp;-Trigonometry&nbsp;</b></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;alongTrackDistanceTo&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center>-</td>\n        <td align=center>-</td>\n        <td align=center>-</td>\n        <td align=center>-</td>\n        <td align=center><a href=\"pygeodesy.sphericalNvector.LatLon-class.html#alongTrackDistanceTo\"><b>A</b></a></td>\n        <td align=center><a href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html#alongTrackDistanceTo\"><b>A</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;antipode&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#antipode\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#antipode\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#antipode\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#antipode\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#antipode\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#antipode\"><b>C</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;attrs&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#attrs\"><b>G</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#attrs\"><b>G</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#attrs\"><b>G</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#attrs\"><b>G</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#attrs\"><b>G</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#attrs\"><b>F</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;bearingTo**&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center>-</td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalKarney.LatLon-class.html#bearingTo\"><b>A</b></a></td>\n        <td align=center>-</td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalVincenty.LatLon-class.html#bearingTo\"><b>A</b></a></td>\n        <td align=center><a href=\"pygeodesy.sphericalNvector.LatLon-class.html#bearingTo\"><b>A</b></a></td>\n        <td align=center><a href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html#bearingTo\"><b>A</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;bearingTo2&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#bearingTo2\"><b>B</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#bearingTo2\"><b>B</b></a></td>\n        <td align=center>-</td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#bearingTo2\"><b>B</b></a></td>\n        <td align=center><a href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html#bearingTo2\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html#bearingTo2\"><b>B</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;bounds**&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#bounds\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#bounds\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#bounds\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#bounds\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#bounds\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#bounds\"><b>C</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;boundsOf&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#boundsOf\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#boundsOf\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#boundsOf\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#boundsOf\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#boundsOf\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#boundsOf\"><b>C</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;chordTo&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#chordTo\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#chordTo\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#chordTo\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#chordTo\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#chordTo\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#chordTo\"><b>C</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;circin6&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#circin6\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#circin6\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#circin6\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#circin6\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#circin6\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#circin6\"><b>C</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;circum3&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#circum3\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#circum3\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#circum3\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#circum3\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#circum3\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#circum3\"><b>C</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;circum4_&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#circum4_\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#circum4_\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#circum4_\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#circum4_\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#circum4_\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#circum4_\"><b>C</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;classname&nbsp;</td>\n        <td align=center>Property*</td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#classname\"><b>G</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#classname\"><b>G</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#classname\"><b>G</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#classname\"><b>G</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#classname\"><b>G</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#classname\"><b>F</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;classnaming&nbsp;</td>\n        <td align=center>property</td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#classnaming\"><b>G</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#classnaming\"><b>G</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#classnaming\"><b>G</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#classnaming\"><b>G</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#classnaming\"><b>G</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#classnaming\"><b>F</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;classof&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#classof\"><b>G</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#classof\"><b>G</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#classof\"><b>G</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#classof\"><b>G</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#classof\"><b>G</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#classof\"><b>F</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;clipid&nbsp;</td>\n        <td align=center>property</td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#clipid\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#clipid\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#clipid\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#clipid\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#clipid\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#clipid\"><b>C</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;compassAngle**&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#compassAngle\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#compassAngle\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#compassAngle\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#compassAngle\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#compassAngle\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#compassAngle\"><b>C</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;compassAngleTo&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#compassAngleTo\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#compassAngleTo\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#compassAngleTo\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#compassAngleTo\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#compassAngleTo\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#compassAngleTo\"><b>C</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;convergence**&nbsp;</td>\n        <td align=center>property*</td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#convergence\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#convergence\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#convergence\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#convergence\"><b>C</b></a></td>\n        <td align=center>-</td>\n        <td align=center>-</td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;convertDatum**&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#convertDatum\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#convertDatum\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#convertDatum\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#convertDatum\"><b>C</b></a></td>\n        <td align=center>-</td>\n        <td align=center>-</td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;convertRefFrame**&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#convertRefFrame\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#convertRefFrame\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#convertRefFrame\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#convertRefFrame\"><b>C</b></a></td>\n        <td align=center>-</td>\n        <td align=center>-</td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;copy&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#copy\"><b>G</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#copy\"><b>G</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#copy\"><b>G</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#copy\"><b>G</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#copy\"><b>G</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#copy\"><b>F</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;cosineAndoyerLambertTo**&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#cosineAndoyerLambertTo\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#cosineAndoyerLambertTo\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#cosineAndoyerLambertTo\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#cosineAndoyerLambertTo\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#cosineAndoyerLambertTo\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#cosineAndoyerLambertTo\"><b>C</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;cosineForsytheAndoyerLambertTo**&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#cosineForsytheAndoyerLambertTo\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#cosineForsytheAndoyerLambertTo\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#cosineForsytheAndoyerLambertTo\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#cosineForsytheAndoyerLambertTo\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#cosineForsytheAndoyerLambertTo\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#cosineForsytheAndoyerLambertTo\"><b>C</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;cosineLawTo&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#cosineLawTo\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#cosineLawTo\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#cosineLawTo\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#cosineLawTo\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#cosineLawTo\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#cosineLawTo\"><b>C</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;crossingParallels&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center>-</td>\n        <td align=center>-</td>\n        <td align=center>-</td>\n        <td align=center>-</td>\n        <td align=center>-</td>\n        <td align=center><a href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html#crossingParallels\"><b>A</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;crossTrackDistanceTo&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center>-</td>\n        <td align=center>-</td>\n        <td align=center>-</td>\n        <td align=center>-</td>\n        <td align=center><a href=\"pygeodesy.sphericalNvector.LatLon-class.html#crossTrackDistanceTo\"><b>A</b></a></td>\n        <td align=center><a href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html#crossTrackDistanceTo\"><b>A</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;datum&nbsp;</td>\n        <td align=center>property</td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#datum\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#datum\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#datum\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#datum\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html#datum\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html#datum\"><b>B</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;deltaTo&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center>-</td>\n        <td align=center>-</td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalNvector.LatLon-class.html#deltaTo\"><b>A</b></a></td>\n        <td align=center>-</td>\n        <td align=center>-</td>\n        <td align=center>-</td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;destination&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#destination\"><b>B</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#destination\"><b>B</b></a></td>\n        <td align=center>-</td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#destination\"><b>B</b></a></td>\n        <td align=center><a href=\"pygeodesy.sphericalNvector.LatLon-class.html#destination\"><b>A</b></a></td>\n        <td align=center><a href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html#destination\"><b>A</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;destination2&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#destination2\"><b>B</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#destination2\"><b>B</b></a></td>\n        <td align=center>-</td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#destination2\"><b>B</b></a></td>\n        <td align=center>-</td>\n        <td align=center>-</td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;destinationNed&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center>-</td>\n        <td align=center>-</td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalNvector.LatLon-class.html#destinationNed\"><b>A</b></a></td>\n        <td align=center>-</td>\n        <td align=center>-</td>\n        <td align=center>-</td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;destinationXyz&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#destinationXyz\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#destinationXyz\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#destinationXyz\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#destinationXyz\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#destinationXyz\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#destinationXyz\"><b>C</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;distanceTo&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#distanceTo\"><b>B</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#distanceTo\"><b>B</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalNvector.LatLon-class.html#distanceTo\"><b>A</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#distanceTo\"><b>B</b></a></td>\n        <td align=center><a href=\"pygeodesy.sphericalNvector.LatLon-class.html#distanceTo\"><b>A</b></a></td>\n        <td align=center><a href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html#distanceTo\"><b>A</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;distanceTo2&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#distanceTo2\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#distanceTo2\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#distanceTo2\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#distanceTo2\"><b>C</b></a></td>\n        <td align=center>-</td>\n        <td align=center>-</td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;distanceTo3&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#distanceTo3\"><b>B</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#distanceTo3\"><b>B</b></a></td>\n        <td align=center>-</td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#distanceTo3\"><b>B</b></a></td>\n        <td align=center>-</td>\n        <td align=center>-</td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;dup&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#dup\"><b>G</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#dup\"><b>G</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#dup\"><b>G</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#dup\"><b>G</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#dup\"><b>G</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#dup\"><b>F</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;Ecef&nbsp;</td>\n        <td align=center>property*</td>\n        <td align=center><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#Ecef\"><b>F</b></a></td>\n        <td align=center><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#Ecef\"><b>F</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalNvector.LatLon-class.html#Ecef\"><b>A</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalVincenty.LatLon-class.html#Ecef\"><b>A</b></a></td>\n        <td align=center><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#Ecef\"><b>F</b></a></td>\n        <td align=center><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#Ecef\"><b>E</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;elevation2&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#elevation2\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#elevation2\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#elevation2\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#elevation2\"><b>C</b></a></td>\n        <td align=center>-</td>\n        <td align=center>-</td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;ellipsoid&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#ellipsoid\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#ellipsoid\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#ellipsoid\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#ellipsoid\"><b>C</b></a></td>\n        <td align=center>-</td>\n        <td align=center>-</td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;ellipsoidalLatLon&nbsp;</td>\n        <td align=center>property*</td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#ellipsoidalLatLon\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#ellipsoidalLatLon\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#ellipsoidalLatLon\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#ellipsoidalLatLon\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#ellipsoidalLatLon\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#ellipsoidalLatLon\"><b>C</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;ellipsoids&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#ellipsoids\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#ellipsoids\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#ellipsoids\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#ellipsoids\"><b>C</b></a></td>\n        <td align=center>-</td>\n        <td align=center>-</td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;epoch&nbsp;</td>\n        <td align=center>property</td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#epoch\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#epoch\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#epoch\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#epoch\"><b>C</b></a></td>\n        <td align=center>-</td>\n        <td align=center>-</td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;epsilon&nbsp;</td>\n        <td align=center>property</td>\n        <td align=center>-</td>\n        <td align=center>-</td>\n        <td align=center>-</td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalVincenty.LatLon-class.html#epsilon\"><b>A</b></a></td>\n        <td align=center>-</td>\n        <td align=center>-</td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;equals**&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#equals\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#equals\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalNvector.LatLon-class.html#equals\"><b>A</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#equals\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#equals\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#equals\"><b>C</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;equals3**&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#equals3\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#equals3\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#equals3\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#equals3\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#equals3\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#equals3\"><b>C</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;Equidistant&nbsp;</td>\n        <td align=center>Property*</td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalExact.LatLon-class.html#Equidistant\"><b>A</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalKarney.LatLon-class.html#Equidistant\"><b>A</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#Equidistant\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#Equidistant\"><b>C</b></a></td>\n        <td align=center>-</td>\n        <td align=center>-</td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;equirectangularTo&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#equirectangularTo\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#equirectangularTo\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#equirectangularTo\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#equirectangularTo\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#equirectangularTo\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#equirectangularTo\"><b>C</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;euclideanTo&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#euclideanTo\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#euclideanTo\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#euclideanTo\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#euclideanTo\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#euclideanTo\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#euclideanTo\"><b>C</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;finalBearingOn&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#finalBearingOn\"><b>B</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#finalBearingOn\"><b>B</b></a></td>\n        <td align=center>-</td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#finalBearingOn\"><b>B</b></a></td>\n        <td align=center>-</td>\n        <td align=center>-</td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;finalBearingTo&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#finalBearingTo\"><b>B</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#finalBearingTo\"><b>B</b></a></td>\n        <td align=center>-</td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#finalBearingTo\"><b>B</b></a></td>\n        <td align=center><a href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html#finalBearingTo\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html#finalBearingTo\"><b>B</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;flatLocalTo&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#flatLocalTo\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#flatLocalTo\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#flatLocalTo\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#flatLocalTo\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#flatLocalTo\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#flatLocalTo\"><b>C</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;flatPolarTo&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#flatPolarTo\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#flatPolarTo\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#flatPolarTo\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#flatPolarTo\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#flatPolarTo\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#flatPolarTo\"><b>C</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;gamma&nbsp;</td>\n        <td align=center>property*</td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#gamma\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#gamma\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#gamma\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#gamma\"><b>C</b></a></td>\n        <td align=center>-</td>\n        <td align=center>-</td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;geodesic&nbsp;</td>\n        <td align=center>Property*</td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalExact.LatLon-class.html#geodesic\"><b>A</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalKarney.LatLon-class.html#geodesic\"><b>A</b></a></td>\n        <td align=center>-</td>\n        <td align=center>-</td>\n        <td align=center>-</td>\n        <td align=center>-</td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;geodesic&nbsp;</td>\n        <td align=center>property*</td>\n        <td align=center>-</td>\n        <td align=center>-</td>\n        <td align=center>-</td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#geodesic\"><b>B</b></a></td>\n        <td align=center>-</td>\n        <td align=center>-</td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;geodesicx&nbsp;</td>\n        <td align=center>Property*</td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalExact.LatLon-class.html#geodesicx\"><b>A</b></a></td>\n        <td align=center>-</td>\n        <td align=center>-</td>\n        <td align=center>-</td>\n        <td align=center>-</td>\n        <td align=center>-</td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;geoidHeight2&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#geoidHeight2\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#geoidHeight2\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#geoidHeight2\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#geoidHeight2\"><b>C</b></a></td>\n        <td align=center>-</td>\n        <td align=center>-</td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;greatCircle&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center>-</td>\n        <td align=center>-</td>\n        <td align=center>-</td>\n        <td align=center>-</td>\n        <td align=center><a href=\"pygeodesy.sphericalNvector.LatLon-class.html#greatCircle\"><b>A</b></a></td>\n        <td align=center><a href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html#greatCircle\"><b>A</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;greatCircleTo&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center>-</td>\n        <td align=center>-</td>\n        <td align=center>-</td>\n        <td align=center>-</td>\n        <td align=center><a href=\"pygeodesy.sphericalNvector.LatLon-class.html#greatCircleTo\"><b>A</b></a></td>\n        <td align=center>-</td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;hartzell&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#hartzell\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#hartzell\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#hartzell\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#hartzell\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#hartzell\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#hartzell\"><b>C</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;haversineTo&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#haversineTo\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#haversineTo\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#haversineTo\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#haversineTo\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#haversineTo\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#haversineTo\"><b>C</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;height&nbsp;</td>\n        <td align=center>Property</td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#height\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#height\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#height\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#height\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#height\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#height\"><b>C</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;height4&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#height4\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#height4\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#height4\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#height4\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#height4\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#height4\"><b>C</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;heightStr&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#heightStr\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#heightStr\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#heightStr\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#heightStr\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#heightStr\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#heightStr\"><b>C</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;hubenyTo&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#hubenyTo\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#hubenyTo\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#hubenyTo\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#hubenyTo\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#hubenyTo\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#hubenyTo\"><b>C</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;initialBearingTo&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#initialBearingTo\"><b>B</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#initialBearingTo\"><b>B</b></a></td>\n        <td align=center>-</td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#initialBearingTo\"><b>B</b></a></td>\n        <td align=center><a href=\"pygeodesy.sphericalNvector.LatLon-class.html#initialBearingTo\"><b>A</b></a></td>\n        <td align=center><a href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html#initialBearingTo\"><b>A</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;intermediateChordTo&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center>-</td>\n        <td align=center>-</td>\n        <td align=center>-</td>\n        <td align=center>-</td>\n        <td align=center><a href=\"pygeodesy.sphericalNvector.LatLon-class.html#intermediateChordTo\"><b>A</b></a></td>\n        <td align=center>-</td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;intermediateTo&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#intermediateTo\"><b>B</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#intermediateTo\"><b>B</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalNvector.LatLon-class.html#intermediateTo\"><b>A</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#intermediateTo\"><b>B</b></a></td>\n        <td align=center><a href=\"pygeodesy.sphericalNvector.LatLon-class.html#intermediateTo\"><b>A</b></a></td>\n        <td align=center><a href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html#intermediateTo\"><b>A</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;intersecant2&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#intersecant2\"><b>B</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#intersecant2\"><b>B</b></a></td>\n        <td align=center>-</td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#intersecant2\"><b>B</b></a></td>\n        <td align=center><a href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html#intersecant2\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html#intersecant2\"><b>B</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;intersection&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center>-</td>\n        <td align=center>-</td>\n        <td align=center>-</td>\n        <td align=center>-</td>\n        <td align=center><a href=\"pygeodesy.sphericalNvector.LatLon-class.html#intersection\"><b>A</b></a></td>\n        <td align=center><a href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html#intersection\"><b>A</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;intersection2&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center>-</td>\n        <td align=center>-</td>\n        <td align=center>-</td>\n        <td align=center>-</td>\n        <td align=center><a href=\"pygeodesy.sphericalNvector.LatLon-class.html#intersection2\"><b>A</b></a></td>\n        <td align=center>-</td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;intersection3&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#intersection3\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#intersection3\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#intersection3\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#intersection3\"><b>C</b></a></td>\n        <td align=center>-</td>\n        <td align=center>-</td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;intersections2&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#intersections2\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#intersections2\"><b>C</b></a></td>\n        <td align=center>-</td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#intersections2\"><b>C</b></a></td>\n        <td align=center>-</td>\n        <td align=center><a href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html#intersections2\"><b>A</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;isantipode**&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isantipode\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isantipode\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isantipode\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isantipode\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isantipode\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isantipode\"><b>C</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;isantipodeTo&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isantipodeTo\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isantipodeTo\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isantipodeTo\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isantipodeTo\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isantipodeTo\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isantipodeTo\"><b>C</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;isEllipsoidal&nbsp;</td>\n        <td align=center>Property*</td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isEllipsoidal\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isEllipsoidal\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isEllipsoidal\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isEllipsoidal\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isEllipsoidal\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isEllipsoidal\"><b>C</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;isenclosedBy&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#isenclosedBy\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#isenclosedBy\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#isenclosedBy\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#isenclosedBy\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.sphericalNvector.LatLon-class.html#isenclosedBy\"><b>A</b></a></td>\n        <td align=center><a href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html#isenclosedBy\"><b>A</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;isEnclosedBy**&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center>-</td>\n        <td align=center>-</td>\n        <td align=center>-</td>\n        <td align=center>-</td>\n        <td align=center><a href=\"pygeodesy.sphericalNvector.LatLon-class.html#isEnclosedBy\"><b>A</b></a></td>\n        <td align=center><a href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html#isEnclosedBy\"><b>A</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;isequalTo&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isequalTo\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isequalTo\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalNvector.LatLon-class.html#isequalTo\"><b>A</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isequalTo\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isequalTo\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isequalTo\"><b>C</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;isequalTo3&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isequalTo3\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isequalTo3\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isequalTo3\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isequalTo3\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isequalTo3\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isequalTo3\"><b>C</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;isnormal&nbsp;</td>\n        <td align=center>Property*</td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isnormal\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isnormal\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isnormal\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isnormal\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isnormal\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isnormal\"><b>C</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;isSpherical&nbsp;</td>\n        <td align=center>Property*</td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isSpherical\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isSpherical\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isSpherical\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isSpherical\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isSpherical\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isSpherical\"><b>C</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;iswithin&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center>-</td>\n        <td align=center>-</td>\n        <td align=center>-</td>\n        <td align=center>-</td>\n        <td align=center><a href=\"pygeodesy.sphericalNvector.LatLon-class.html#iswithin\"><b>A</b></a></td>\n        <td align=center>-</td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;isWithin**&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center>-</td>\n        <td align=center>-</td>\n        <td align=center>-</td>\n        <td align=center>-</td>\n        <td align=center><a href=\"pygeodesy.sphericalNvector.LatLon-class.html#isWithin\"><b>A</b></a></td>\n        <td align=center>-</td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;iteration&nbsp;</td>\n        <td align=center>property*</td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#iteration\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#iteration\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#iteration\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#iteration\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#iteration\"><b>G</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#iteration\"><b>F</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;iterations&nbsp;</td>\n        <td align=center>property</td>\n        <td align=center>-</td>\n        <td align=center>-</td>\n        <td align=center>-</td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalVincenty.LatLon-class.html#iterations\"><b>A</b></a></td>\n        <td align=center>-</td>\n        <td align=center>-</td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;lam&nbsp;</td>\n        <td align=center>Property*</td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#lam\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#lam\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#lam\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#lam\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#lam\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#lam\"><b>C</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;lat&nbsp;</td>\n        <td align=center>Property</td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#lat\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#lat\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#lat\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#lat\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#lat\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#lat\"><b>C</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;latlon&nbsp;</td>\n        <td align=center>Property</td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#latlon\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#latlon\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#latlon\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#latlon\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#latlon\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#latlon\"><b>C</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;latlon2&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#latlon2\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#latlon2\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#latlon2\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#latlon2\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#latlon2\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#latlon2\"><b>C</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;latlon2round**&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#latlon2round\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#latlon2round\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#latlon2round\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#latlon2round\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#latlon2round\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#latlon2round\"><b>C</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;latlon_**&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#latlon_\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#latlon_\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#latlon_\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#latlon_\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#latlon_\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#latlon_\"><b>C</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;latlonheight&nbsp;</td>\n        <td align=center>Property</td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#latlonheight\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#latlonheight\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#latlonheight\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#latlonheight\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#latlonheight\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#latlonheight\"><b>C</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;lon&nbsp;</td>\n        <td align=center>Property</td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#lon\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#lon\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#lon\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#lon\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#lon\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#lon\"><b>C</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;maxLat&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center>-</td>\n        <td align=center>-</td>\n        <td align=center>-</td>\n        <td align=center>-</td>\n        <td align=center><a href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html#maxLat\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html#maxLat\"><b>B</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;methodname&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#methodname\"><b>G</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#methodname\"><b>G</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#methodname\"><b>G</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#methodname\"><b>G</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#methodname\"><b>G</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#methodname\"><b>F</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;midpointTo&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#midpointTo\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#midpointTo\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#midpointTo\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#midpointTo\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.sphericalNvector.LatLon-class.html#midpointTo\"><b>A</b></a></td>\n        <td align=center><a href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html#midpointTo\"><b>A</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;minLat&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center>-</td>\n        <td align=center>-</td>\n        <td align=center>-</td>\n        <td align=center>-</td>\n        <td align=center><a href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html#minLat\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html#minLat\"><b>B</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;name&nbsp;</td>\n        <td align=center>property</td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#name\"><b>G</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#name\"><b>G</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#name\"><b>G</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#name\"><b>G</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#name\"><b>G</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#name\"><b>F</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;named&nbsp;</td>\n        <td align=center>Property*</td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#named\"><b>G</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#named\"><b>G</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#named\"><b>G</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#named\"><b>G</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#named\"><b>G</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#named\"><b>F</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;named2&nbsp;</td>\n        <td align=center>Property*</td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#named2\"><b>G</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#named2\"><b>G</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#named2\"><b>G</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#named2\"><b>G</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#named2\"><b>G</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#named2\"><b>F</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;named3&nbsp;</td>\n        <td align=center>Property*</td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#named3\"><b>G</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#named3\"><b>G</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#named3\"><b>G</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#named3\"><b>G</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#named3\"><b>G</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#named3\"><b>F</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;named4&nbsp;</td>\n        <td align=center>Property*</td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#named4\"><b>G</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#named4\"><b>G</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#named4\"><b>G</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#named4\"><b>G</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#named4\"><b>G</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#named4\"><b>F</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;napieradius&nbsp;</td>\n        <td align=center>property</td>\n        <td align=center>-</td>\n        <td align=center>-</td>\n        <td align=center>-</td>\n        <td align=center>-</td>\n        <td align=center><a href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html#napieradius\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html#napieradius\"><b>B</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;nearestOn&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#nearestOn\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#nearestOn\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#nearestOn\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#nearestOn\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.sphericalNvector.LatLon-class.html#nearestOn\"><b>A</b></a></td>\n        <td align=center><a href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html#nearestOn\"><b>A</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;nearestOn2**&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center>-</td>\n        <td align=center>-</td>\n        <td align=center>-</td>\n        <td align=center>-</td>\n        <td align=center><a href=\"pygeodesy.sphericalNvector.LatLon-class.html#nearestOn2\"><b>A</b></a></td>\n        <td align=center><a href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html#nearestOn2\"><b>A</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;nearestOn3&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center>-</td>\n        <td align=center>-</td>\n        <td align=center>-</td>\n        <td align=center>-</td>\n        <td align=center><a href=\"pygeodesy.sphericalNvector.LatLon-class.html#nearestOn3\"><b>A</b></a></td>\n        <td align=center><a href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html#nearestOn3\"><b>A</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;nearestOn6&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#nearestOn6\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#nearestOn6\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#nearestOn6\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#nearestOn6\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#nearestOn6\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#nearestOn6\"><b>C</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;nearestOn8&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#nearestOn8\"><b>B</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#nearestOn8\"><b>B</b></a></td>\n        <td align=center>-</td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#nearestOn8\"><b>B</b></a></td>\n        <td align=center>-</td>\n        <td align=center>-</td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;normal&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#normal\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#normal\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#normal\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#normal\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#normal\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#normal\"><b>C</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;others&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.named._NamedBase-class.html#others\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._NamedBase-class.html#others\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.nvectorBase.LatLonNvectorBase-class.html#others\"><b>B</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._NamedBase-class.html#others\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.nvectorBase.LatLonNvectorBase-class.html#others\"><b>B</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._NamedBase-class.html#others\"><b>D</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;parse&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#parse\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#parse\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#parse\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#parse\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html#parse\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html#parse\"><b>B</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;phi&nbsp;</td>\n        <td align=center>Property*</td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#phi\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#phi\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#phi\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#phi\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#phi\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#phi\"><b>C</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;philam&nbsp;</td>\n        <td align=center>Property*</td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#philam\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#philam\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#philam\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#philam\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#philam\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#philam\"><b>C</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;philam2&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#philam2\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#philam2\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#philam2\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#philam2\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#philam2\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#philam2\"><b>C</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;philamheight&nbsp;</td>\n        <td align=center>Property*</td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#philamheight\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#philamheight\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#philamheight\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#philamheight\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#philamheight\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#philamheight\"><b>C</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;plumbTo&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#plumbTo\"><b>B</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#plumbTo\"><b>B</b></a></td>\n        <td align=center>-</td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#plumbTo\"><b>B</b></a></td>\n        <td align=center>-</td>\n        <td align=center>-</td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;points**&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#points\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#points\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#points\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#points\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#points\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#points\"><b>C</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;points2&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#points2\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#points2\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#points2\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#points2\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#points2\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#points2\"><b>C</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;PointsIter&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#PointsIter\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#PointsIter\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#PointsIter\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#PointsIter\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#PointsIter\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#PointsIter\"><b>C</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;radii11&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#radii11\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#radii11\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#radii11\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#radii11\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#radii11\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#radii11\"><b>C</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;reframe&nbsp;</td>\n        <td align=center>property</td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#reframe\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#reframe\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#reframe\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#reframe\"><b>C</b></a></td>\n        <td align=center>-</td>\n        <td align=center>-</td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;rename&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#rename\"><b>G</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#rename\"><b>G</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#rename\"><b>G</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#rename\"><b>G</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#rename\"><b>G</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#rename\"><b>F</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;renamed&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#renamed\"><b>G</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#renamed\"><b>G</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#renamed\"><b>G</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#renamed\"><b>G</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#renamed\"><b>G</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#renamed\"><b>F</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;rhumbAzimuthTo&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#rhumbAzimuthTo\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#rhumbAzimuthTo\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#rhumbAzimuthTo\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#rhumbAzimuthTo\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html#rhumbAzimuthTo\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html#rhumbAzimuthTo\"><b>B</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;rhumbBearingTo**&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center>-</td>\n        <td align=center>-</td>\n        <td align=center>-</td>\n        <td align=center>-</td>\n        <td align=center><a href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html#rhumbBearingTo\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html#rhumbBearingTo\"><b>B</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;rhumbDestination&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#rhumbDestination\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#rhumbDestination\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#rhumbDestination\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#rhumbDestination\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html#rhumbDestination\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html#rhumbDestination\"><b>B</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;rhumbDistanceTo&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#rhumbDistanceTo\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#rhumbDistanceTo\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#rhumbDistanceTo\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#rhumbDistanceTo\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html#rhumbDistanceTo\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html#rhumbDistanceTo\"><b>B</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;rhumbIntersecant2&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#rhumbIntersecant2\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#rhumbIntersecant2\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#rhumbIntersecant2\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#rhumbIntersecant2\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html#rhumbIntersecant2\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html#rhumbIntersecant2\"><b>B</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;rhumbLine&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#rhumbLine\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#rhumbLine\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#rhumbLine\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#rhumbLine\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#rhumbLine\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#rhumbLine\"><b>C</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;rhumbMidpointTo&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#rhumbMidpointTo\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#rhumbMidpointTo\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#rhumbMidpointTo\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#rhumbMidpointTo\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html#rhumbMidpointTo\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html#rhumbMidpointTo\"><b>B</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;scale&nbsp;</td>\n        <td align=center>Property*</td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#scale\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#scale\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#scale\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#scale\"><b>C</b></a></td>\n        <td align=center>-</td>\n        <td align=center>-</td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;sizeof&nbsp;</td>\n        <td align=center>property*</td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#sizeof\"><b>G</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#sizeof\"><b>G</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#sizeof\"><b>G</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#sizeof\"><b>G</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#sizeof\"><b>G</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#sizeof\"><b>F</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;sphericalLatLon&nbsp;</td>\n        <td align=center>property*</td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#sphericalLatLon\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#sphericalLatLon\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#sphericalLatLon\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#sphericalLatLon\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html#sphericalLatLon\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html#sphericalLatLon\"><b>B</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;thomasTo&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#thomasTo\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#thomasTo\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#thomasTo\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#thomasTo\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#thomasTo\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#thomasTo\"><b>C</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;to2ab**&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#to2ab\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#to2ab\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#to2ab\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#to2ab\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#to2ab\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#to2ab\"><b>C</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;to3llh**&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#to3llh\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#to3llh\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#to3llh\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#to3llh\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#to3llh\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#to3llh\"><b>C</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;to3xyz**&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#to3xyz\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#to3xyz\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#to3xyz\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#to3xyz\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#to3xyz\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#to3xyz\"><b>C</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;toAer&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toAer\"><b>F</b></a></td>\n        <td align=center><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toAer\"><b>F</b></a></td>\n        <td align=center><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toAer\"><b>F</b></a></td>\n        <td align=center><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toAer\"><b>F</b></a></td>\n        <td align=center><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toAer\"><b>F</b></a></td>\n        <td align=center><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toAer\"><b>E</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;toCartesian&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalExact.LatLon-class.html#toCartesian\"><b>A</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalKarney.LatLon-class.html#toCartesian\"><b>A</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalNvector.LatLon-class.html#toCartesian\"><b>A</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalVincenty.LatLon-class.html#toCartesian\"><b>A</b></a></td>\n        <td align=center><a href=\"pygeodesy.sphericalNvector.LatLon-class.html#toCartesian\"><b>A</b></a></td>\n        <td align=center><a href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html#toCartesian\"><b>A</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;toCss&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toCss\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toCss\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toCss\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toCss\"><b>C</b></a></td>\n        <td align=center>-</td>\n        <td align=center>-</td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;toDatum&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toDatum\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toDatum\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toDatum\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toDatum\"><b>C</b></a></td>\n        <td align=center>-</td>\n        <td align=center>-</td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;toEcef&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toEcef\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toEcef\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toEcef\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toEcef\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toEcef\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toEcef\"><b>C</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;toEnu&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toEnu\"><b>F</b></a></td>\n        <td align=center><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toEnu\"><b>F</b></a></td>\n        <td align=center><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toEnu\"><b>F</b></a></td>\n        <td align=center><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toEnu\"><b>F</b></a></td>\n        <td align=center><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toEnu\"><b>F</b></a></td>\n        <td align=center><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toEnu\"><b>E</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;toEtm&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toEtm\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toEtm\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toEtm\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toEtm\"><b>C</b></a></td>\n        <td align=center>-</td>\n        <td align=center>-</td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;toLcc&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toLcc\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toLcc\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toLcc\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toLcc\"><b>C</b></a></td>\n        <td align=center>-</td>\n        <td align=center>-</td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;toLocal&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toLocal\"><b>F</b></a></td>\n        <td align=center><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toLocal\"><b>F</b></a></td>\n        <td align=center><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toLocal\"><b>F</b></a></td>\n        <td align=center><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toLocal\"><b>F</b></a></td>\n        <td align=center><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toLocal\"><b>F</b></a></td>\n        <td align=center><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toLocal\"><b>E</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;toLtp&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toLtp\"><b>F</b></a></td>\n        <td align=center><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toLtp\"><b>F</b></a></td>\n        <td align=center><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toLtp\"><b>F</b></a></td>\n        <td align=center><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toLtp\"><b>F</b></a></td>\n        <td align=center><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toLtp\"><b>F</b></a></td>\n        <td align=center><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toLtp\"><b>E</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;toMgrs&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toMgrs\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toMgrs\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toMgrs\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toMgrs\"><b>C</b></a></td>\n        <td align=center>-</td>\n        <td align=center>-</td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;toNed&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toNed\"><b>F</b></a></td>\n        <td align=center><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toNed\"><b>F</b></a></td>\n        <td align=center><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toNed\"><b>F</b></a></td>\n        <td align=center><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toNed\"><b>F</b></a></td>\n        <td align=center><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toNed\"><b>F</b></a></td>\n        <td align=center><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toNed\"><b>E</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;toNormal&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toNormal\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toNormal\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toNormal\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toNormal\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toNormal\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toNormal\"><b>C</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;toNvector&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toNvector\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toNvector\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalNvector.LatLon-class.html#toNvector\"><b>A</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toNvector\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.sphericalNvector.LatLon-class.html#toNvector\"><b>A</b></a></td>\n        <td align=center><a href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html#toNvector\"><b>B</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;toOsgr&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toOsgr\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toOsgr\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toOsgr\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toOsgr\"><b>C</b></a></td>\n        <td align=center>-</td>\n        <td align=center>-</td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;toRefFrame&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toRefFrame\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toRefFrame\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toRefFrame\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toRefFrame\"><b>C</b></a></td>\n        <td align=center>-</td>\n        <td align=center>-</td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;toRepr&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.named._NamedBase-class.html#toRepr\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._NamedBase-class.html#toRepr\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._NamedBase-class.html#toRepr\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._NamedBase-class.html#toRepr\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._NamedBase-class.html#toRepr\"><b>E</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._NamedBase-class.html#toRepr\"><b>D</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;toStr&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toStr\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toStr\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toStr\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toStr\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toStr\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toStr\"><b>C</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;toStr2**&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#toStr2\"><b>G</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#toStr2\"><b>G</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#toStr2\"><b>G</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#toStr2\"><b>G</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#toStr2\"><b>G</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#toStr2\"><b>F</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;toTransform&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toTransform\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toTransform\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toTransform\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toTransform\"><b>C</b></a></td>\n        <td align=center>-</td>\n        <td align=center>-</td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;toUps&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toUps\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toUps\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toUps\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toUps\"><b>C</b></a></td>\n        <td align=center>-</td>\n        <td align=center>-</td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;toUtm&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toUtm\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toUtm\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toUtm\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toUtm\"><b>C</b></a></td>\n        <td align=center>-</td>\n        <td align=center>-</td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;toUtmUps&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toUtmUps\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toUtmUps\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toUtmUps\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toUtmUps\"><b>C</b></a></td>\n        <td align=center>-</td>\n        <td align=center>-</td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;toVector&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toVector\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toVector\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toVector\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toVector\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toVector\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toVector\"><b>C</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;toVector3d&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toVector3d\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toVector3d\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toVector3d\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toVector3d\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toVector3d\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toVector3d\"><b>C</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;toWm&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toWm\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toWm\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toWm\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toWm\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toWm\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toWm\"><b>C</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;toXyz&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toXyz\"><b>F</b></a></td>\n        <td align=center><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toXyz\"><b>F</b></a></td>\n        <td align=center><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toXyz\"><b>F</b></a></td>\n        <td align=center><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toXyz\"><b>F</b></a></td>\n        <td align=center><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toXyz\"><b>F</b></a></td>\n        <td align=center><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toXyz\"><b>E</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;triangle7&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center>-</td>\n        <td align=center>-</td>\n        <td align=center>-</td>\n        <td align=center>-</td>\n        <td align=center>-</td>\n        <td align=center><a href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html#triangle7\"><b>A</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;triangulate&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#triangulate\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#triangulate\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.nvectorBase.LatLonNvectorBase-class.html#triangulate\"><b>B</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#triangulate\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.nvectorBase.LatLonNvectorBase-class.html#triangulate\"><b>B</b></a></td>\n        <td align=center><a href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html#triangulate\"><b>A</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;trilaterate&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center>-</td>\n        <td align=center>-</td>\n        <td align=center><a href=\"pygeodesy.nvectorBase.LatLonNvectorBase-class.html#trilaterate\"><b>B</b></a></td>\n        <td align=center>-</td>\n        <td align=center><a href=\"pygeodesy.nvectorBase.LatLonNvectorBase-class.html#trilaterate\"><b>B</b></a></td>\n        <td align=center>-</td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;trilaterate5&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#trilaterate5\"><b>C</b></a></td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#trilaterate5\"><b>C</b></a></td>\n        <td align=center>-</td>\n        <td align=center><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#trilaterate5\"><b>C</b></a></td>\n        <td align=center>-</td>\n        <td align=center><a href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html#trilaterate5\"><b>A</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;typename&nbsp;</td>\n        <td align=center>property*</td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#typename\"><b>G</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#typename\"><b>G</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#typename\"><b>G</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#typename\"><b>G</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#typename\"><b>G</b></a></td>\n        <td align=center><a href=\"pygeodesy.named._Named-class.html#typename\"><b>F</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;vincentysTo&nbsp;</td>\n        <td align=center>method</td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#vincentysTo\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#vincentysTo\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#vincentysTo\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#vincentysTo\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#vincentysTo\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#vincentysTo\"><b>C</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;xyz&nbsp;</td>\n        <td align=center>property*</td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#xyz\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#xyz\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#xyz\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#xyz\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#xyz\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#xyz\"><b>C</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;xyz3&nbsp;</td>\n        <td align=center>property*</td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#xyz3\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#xyz3\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#xyz3\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#xyz3\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#xyz3\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#xyz3\"><b>C</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=left>&nbsp;xyzh&nbsp;</td>\n        <td align=center>Property*</td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#xyzh\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#xyzh\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#xyzh\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#xyzh\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#xyzh\"><b>D</b></a></td>\n        <td align=center><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#xyzh\"><b>C</b></a></td>\n      </tr>\n\n      <tr>\n        <td height=17 align=right> </td>\n        <td align=center> </td>\n        <th align=left colspan=6> </th>\n      </tr>\n      <tr>\n        <td height=17 align=left>&nbsp;**)&nbsp;DEPRECATED</td>\n        <td align=center>*)&nbsp;immutable</td>\n        <th align=center colspan=3>&nbsp;A:&nbsp;class attribute</th>\n        <th align=center colspan=3>&nbsp;B,&nbsp;C,&nbsp;...:&nbsp;attribute of a super class</th>\n      </tr>\n    </tbody>\n  </table>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th bgcolor=\"#70b0f0\" class=\"navbar-select\"\n          >&nbsp;&nbsp;&nbsp;Home&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        Package&nbsp;pygeodesy\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy-module.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PACKAGE DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Package pygeodesy</h1><p class=\"nomargin-top\"></p>\n<p>A pure Python implementation of geodesy tools for various ellipsoidal \n  and spherical earth models using precision exact, elliptic, \n  trigonometric, vector-based, iterative and approximate methods for \n  geodetic (lat-/longitude), geocentric (<a \n  href=\"https://WikiPedia.org/wiki/ECEF\" target=\"_top\">ECEF</a> cartesian),\n  local (<a \n  href=\"https://WikiPedia.org/wiki/Local_tangent_plane_coordinates\" \n  target=\"_top\">LTP</a>) and certain <a \n  href=\"https://GeographicLib.SourceForge.io/1.44/triaxial.html\" \n  target=\"_top\">triaxial ellipsoidal</a> coordinates.</p>\n  <p>Transcoded in part from <a \n  href=\"https://GitHub.com/ChrisVeness/geodesy\" target=\"_top\">JavaScript \n  originals</a> by <i>Chris Veness (C) 2005-2025</i> and from several <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/annotated.html\" \n  target=\"_top\">C++ classes</a> by <i>Charles F. F. Karney (C) \n  2008-2025</i> and published under the same <a \n  href=\"https://OpenSource.org/licenses/MIT\" target=\"_top\">MIT \n  License</a>**.</p>\n  <p>There are four modules for ellipsoidal earth models, \n  <code>ellipsoidalExact</code>, <code>-Karney</code>, \n  <code>-Vincenty</code> and <code>-Nvector</code> and two for spherical \n  ones, <code>sphericalTrigonometry</code> and <code>-Nvector</code>.  Each\n  module provides a geodetic <a href=pygeodesy-LatLon-attributes-table.html><b><code>LatLon</code></b></a> and a geocentric \n  <a href=pygeodesy-Cartesian-attributes-table.html><b><code>Cartesian</code></b></a> class with methods and functions to compute\n  distance, surface area, perimeter, forward and reverse azimuth, initial \n  and final bearing, intermediate and nearest points, intersections of \n  geodesic, great circle and rhumb lines, circle intersections and secants,\n  <a href=\"https://WikiPedia.org/wiki/Position_resection_and_intersection\" \n  target=\"_top\">3-point resections</a>, triangulation, trilateration (by \n  intersection, by overlap and in 3-D), among other things.</p>\n  <p>Also included are modules for conversions to and from <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1CassiniSoldner.html\"\n  target=\"_top\">Cassini-Soldner</a>, <a \n  href=\"https://WikiPedia.org/wiki/ECEF\" target=\"_top\">ECEF</a> \n  (Earth-Centered, Earth-Fixed cartesian), <a \n  href=\"https://www.Movable-Type.co.UK/scripts/latlong-utm-mgrs.html\" \n  target=\"_top\">UTM</a> (Universal Transverse Mercator and <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1TransverseMercatorExact.html\"\n  target=\"_top\">Exact</a>), <a \n  href=\"https://WikiPedia.org/wiki/Universal_polar_stereographic_coordinate_system\"\n  target=\"_top\">UPS</a> (Universal Polar Stereographic) and <a \n  href=\"https://WikiPedia.org/wiki/Web_Mercator\" target=\"_top\">Web \n  Mercator</a> (Pseudo-Mercator) coordinates, <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1MGRS.html\"\n  target=\"_top\">MGRS</a> (Military Grid Reference System, UTM <i>and</i> \n  UPS) and <a \n  href=\"https://www.Movable-Type.co.UK/scripts/latlong-os-gridref.html\" \n  target=\"_top\">OSGR</a> (British Ordinance Survery Grid Reference) grid \n  references, <a href=\"http://ITRF.ENSG.IGN.Fr\" target=\"_top\">TRF</a> \n  (Terrestrial Reference Frames) and modules to encode and decode <a \n  href=\"https://EPSG.org\" target=\"_top\">EPSG</a>, <a \n  href=\"https://www.Movable-Type.co.UK/scripts/geohash.html\" \n  target=\"_top\">Geohashes</a>, <a \n  href=\"https://WikiPedia.org/wiki/World_Geographic_Reference_System\" \n  target=\"_top\">Georefs (WGRS)</a> and <a \n  href=\"https://WikiPedia.org/wiki/Global_Area_Reference_System\" \n  target=\"_top\">Garefs (GARS)</a>.</p>\n  <p>Other modules provide <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1AlbersEqualArea.html\"\n  target=\"_top\">Albers equal-area</a> projections, <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1AzimuthalEquidistant.html\"\n  target=\"_top\">equidistant</a> and other <i>azimuthal</i> projections, \n  Lambert <i>conformal conic</i> projections and positions, functions to \n  clip paths or polygons of <code>LatLon</code> points using the <a \n  href=\"https://WikiPedia.org/wiki/Cohen-Sutherland_algorithm\" \n  target=\"_top\">Cohen-Sutherland</a>, <a \n  href=\"https://www.ScienceDirect.com/science/article/pii/S259014861930007X\"\n  target=\"_top\">Forster-Hormann-Popa</a>, <a \n  href=\"http://www.inf.USI.CH/hormann/papers/Greiner.1998.ECO.pdf\" \n  target=\"_top\">Greiner-Hormann</a>, <a \n  href=\"https://www.CS.Helsinki.FI/group/goa/viewing/leikkaus/intro.html\" \n  target=\"_top\">Liang-Barsky</a> and <a \n  href=\"https://WikiPedia.org/wiki/Sutherland-Hodgman_algorithm\" \n  target=\"_top\">Sutherland-Hodgman</a> methods, functions to <a \n  href=\"https://Bost.Ocks.org/mike/simplify\" target=\"_top\">simplify</a> or \n  linearize a path of <code>LatLon</code> points (or a <a \n  href=\"https://docs.SciPy.org/doc/numpy/reference/generated/numpy.array.html\"\n  target=\"_top\">NumPy array</a>), including implementations of the <a \n  href=\"https://WikiPedia.org/wiki/Ramer-Douglas-Peucker_algorithm\" \n  target=\"_top\">Ramer-Douglas-Peucker</a>, the <a \n  href=\"https://hydra.Hull.ac.UK/resources/hull:8338\" \n  target=\"_top\">Visvalingam-Whyatt</a> and the <a \n  href=\"https://psimpl.SourceForge.net/reumann-witkam.html\" \n  target=\"_top\">Reumann-Witkam</a> algorithms and modified versions of the \n  former.</p>\n  <p>Plus modules and classes to <a \n  href=\"https://docs.SciPy.org/doc/scipy/reference/interpolate.html\" \n  target=\"_top\">interpolate</a> the <a href=\"pygeodesy.heights-module.html\"\n  class=\"link\">height</a> of <code>LatLon</code> points and <a \n  href=\"pygeodesy.geoids-module.html\" class=\"link\">Geoid</a> models, to \n  compute various <a href=\"https://WikiPedia.org/wiki/Frechet_distance\" \n  target=\"_top\">Fr&#233;chet</a> or <a \n  href=\"https://WikiPedia.org/wiki/Hausdorff_distance\" \n  target=\"_top\">Hausdorff</a> distances or to perform <i>boolean</i> \n  operations between (composite) polygons of <code>LatLon</code> \n  points.</p>\n  <p>For further details see the <a \n  href=\"https://mrJean1.GitHub.io/PyGeodesy\" \n  target=\"_top\">documentation</a>, the descriptions of <a \n  href=\"https://www.Movable-Type.co.UK/scripts/latlong.html\" \n  target=\"_top\">Latitude/Longitude</a>, <a \n  href=\"https://www.Movable-Type.co.UK/scripts/latlong-vincenty.html\" \n  target=\"_top\">Vincenty</a> and <a \n  href=\"https://www.Movable-Type.co.UK/scripts/latlong-vectors.html\" \n  target=\"_top\">Vector-based</a> geodesy, the original <a \n  href=\"https://GitHub.com/ChrisVeness/geodesy\" target=\"_top\">JavaScript \n  source</a> or <a \n  href=\"https://www.Movable-Type.co.UK/scripts/geodesy/docs\" \n  target=\"_top\">docs</a> and <i>Karney</i>'s Python <a \n  href=\"https://PyPI.org/project/geographiclib\" \n  target=\"_top\">geographiclib</a> and C++ <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/index.html\" \n  target=\"_top\">GeographicLib</a>.</p>\n  <h1 class=\"heading\">Installation</h1>\n    <p>To install <code>pygeodesy</code>, type <code>python[3] -m pip \n    install pygeodesy</code> or <code>python[3] -m easy_install \n    pygeodesy</code> in a terminal or command window.</p>\n    <p>If the wheel <code>pygeodesy-yy.m.d-py2.py3-none-any.whl</code> is \n    missing in <a href=\"https://PyPI.org/project/pygeodesy/#files\" \n    target=\"_top\">PyPI Download files</a>, download the file from <a \n    href=\"https://GitHub.com/mrJean1/PyGeodesy/tree/master/dist\" \n    target=\"_top\">GitHub/dist</a>.  Install that with <code>python[3] -m \n    pip install &lt;path-to-downloaded-wheel&gt;</code> and verify with \n    <code>python[3] -m pygeodesy</code>.</p>\n    <p>Alternatively, download <code>pygeodesy-yy.m.d.tar.gz</code> from <a\n    href=\"https://PyPI.org/project/pygeodesy\" target=\"_top\">PyPI</a> or <a \n    href=\"https://GitHub.com/mrJean1/PyGeodesy\" target=\"_top\">GitHub</a>, \n    <code>unzip</code> the downloaded file, <code>cd</code> to directory \n    <code>pygeodesy-yy.m.d</code> and type <code>python[3] setup.py \n    install</code>.</p>\n    <p>To run all <code>pygeodesy</code> tests, type <code>python[3] \n    test/run.py</code> or type <code>python[3] test/unitTestSuite.py</code>\n    before or after installation.</p>\n  <h1 class=\"heading\">Dependencies</h1>\n    <p>Installation of <i>Karney</i>'s Python package <a \n    href=\"https://PyPI.org/project/geographiclib\" \n    target=\"_top\">geographiclib</a> is optional, but required for module <a\n    href=\"pygeodesy.ellipsoidalKarney-module.html\" \n    class=\"link\">ellipsoidalKarney</a>, <a \n    href=\"pygeodesy.azimuthal-module.html\" class=\"link\">azimuthal</a> \n    classes <a href=\"pygeodesy.azimuthal.EquidistantKarney-class.html\" \n    class=\"link\">EquidistantKarney</a> and <a \n    href=\"pygeodesy.azimuthal.GnomonicKarney-class.html\" \n    class=\"link\">GnomonicKarney</a> and the <a \n    href=\"pygeodesy.heights.HeightIDWkarney-class.html\" \n    class=\"link\">HeightIDWkarney</a> interpolator.</p>\n    <p>Both <a href=\"https://PyPI.org/project/numpy\" \n    target=\"_top\">numpy</a> and <a href=\"https://PyPI.org/project/scipy\" \n    target=\"_top\">scipy</a> must be installed for most <a \n    href=\"pygeodesy.geoids-module.html\" class=\"link\">Geoid...</a> and <a \n    href=\"pygeodesy.heights-module.html\" class=\"link\">Height...</a> \n    interpolators, except <a href=\"pygeodesy.geoids.GeoidKarney-class.html\"\n    class=\"link\">GeoidKarney</a> and the <a \n    href=\"pygeodesy.heights-module.html\" class=\"link\">HeightIDW...</a> \n    ones.</p>\n    <p>Functions and <code>LatLon</code> methods <a \n    href=\"pygeodesy.vector2d-module.html#circin6\" class=\"link\">circin6</a>,\n    <a href=\"pygeodesy.vector2d-module.html#circum3\" \n    class=\"link\">circum3</a>, <a \n    href=\"pygeodesy.vector2d-module.html#circum4_\" \n    class=\"link\">circum4_</a> and <a \n    href=\"pygeodesy.vector2d-module.html#soddy4\" class=\"link\">soddy4</a> \n    and functions <a href=\"pygeodesy.vector2d-module.html#triaxum5\" \n    class=\"link\">triaxum5</a> and <a \n    href=\"pygeodesy.vector3d-module.html#trilaterate3d2\" \n    class=\"link\">trilaterate3d2</a> require <a \n    href=\"https://PyPI.org/project/numpy\" target=\"_top\">numpy</a> to be \n    installed, modules <a href=\"pygeodesy.auxilats-module.html\" \n    class=\"link\">auxilats</a> and <a href=\"pygeodesy.rhumb-module.html\" \n    class=\"link\">rhumb</a> may need <a \n    href=\"https://PyPI.org/project/numpy\" target=\"_top\">numpy</a>.</p>\n    <p>Modules <a href=\"pygeodesy.ellipsoidalGeodSolve-module.html\" \n    class=\"link\">ellipsoidalGeodSolve</a> and <a \n    href=\"pygeodesy.geodsolve-module.html\" class=\"link\">geodsolve</a> and \n    <a href=\"pygeodesy.azimuthal-module.html\" class=\"link\">azimuthal</a> \n    classes <a href=\"pygeodesy.azimuthal.EquidistantGeodSolve-class.html\" \n    class=\"link\">EquidistantGeodSolve</a> and <a \n    href=\"pygeodesy.azimuthal.GnomonicGeodSolve-class.html\" \n    class=\"link\">GnomonicGeodSolve</a> depend on <i>Karney</i>'s C++ \n    utility <a \n    href=\"https://GeographicLib.SourceForge.io/C++/doc/GeodSolve.1.html\" \n    target=\"_top\">GeodSolve</a> to be executable and set with env variable \n    <code>PYGEODESY_GEODSOLVE</code> or with property <a \n    href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#geodsolve\" \n    class=\"link\">Ellipsoid.geodsolve</a>.</p>\n    <p>Triaxial geodesic classes <a \n    href=\"pygeodesy.geod3solve.Geodesic3Solve-class.html\" \n    class=\"link\">Geodesic3Solve</a> and <a \n    href=\"pygeodesy.geod3solve.GeodesicLine3Solve-class.html\" \n    class=\"link\">GeodesicLine3Solve</a> in module <a \n    href=\"pygeodesy.geod3solve-module.html\" class=\"link\">geod3solve</a> \n    need <i>Karney</i>'s C++ utility <a \n    href=\"https://GeographicLib.SourceForge.io/C++/doc/Geod3Solve.1.html\" \n    target=\"_top\">Geod3Solve</a> to be executable and set with env variable\n    <code>PYGEODESY_GEOD3SOLVE</code> or with property <a \n    href=\"pygeodesy.geod3solve._Geodesic3SolveBase-class.html#Geod3Solve\" \n    class=\"link\">Geodesic3Solve.Geod3Solve</a>.</p>\n    <p>Class <a href=\"pygeodesy.geodesici.Intersectool-class.html\" \n    class=\"link\">Intersectool</a> in module <a \n    href=\"pygeodesy.geodesici-module.html\" class=\"link\">geodesici</a> needs\n    <i>Karney</i>'s C++ utility <a \n    href=\"https://GeographicLib.SourceForge.io/C++/doc/IntersectTool.1.html\"\n    target=\"_top\">IntersectTool</a> to be executable and set with env \n    variable <code>PYGEODESY_INTERSECTTOOL</code> or with property <a \n    href=\"pygeodesy.geodesici.Intersectool-class.html#IntersectTool\" \n    class=\"link\">Intersectool.IntersectTool</a>.</p>\n    <p>To compare <code>MGRS</code> results from modules <a \n    href=\"pygeodesy.mgrs-module.html\" class=\"link\">mgrs</a> and \n    <code>testMgrs</code> with <i>Karney</i>'s C++ utility <a \n    href=\"https://GeographicLib.SourceForge.io/C++/doc/GeoConvert.1.html\" \n    target=\"_top\">GeoConvert</a>, the latter must be executable and set \n    with env variable <code>PYGEODESY_GEOCONVERT</code>.</p>\n    <p>Module <a href=\"pygeodesy.rhumb.solve-module.html\" class=\"link\" \n    onclick=\"show_private();\">rhumb.solve</a> needs <i>Karney</i>'s C++ \n    utility <a \n    href=\"https://GeographicLib.SourceForge.io/C++/doc/RhumbSolve.1.html\" \n    target=\"_top\">RhumbSolve</a> to be executable and set with env variable\n    <code>PYGEODESY_RHUMBSOLVE</code> or with property <a \n    href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#rhumbsolve\" \n    class=\"link\">Ellipsoid.rhumbsolve</a>.</p>\n  <h1 class=\"heading\">Documentation</h1>\n    <p>In addition to the <code>pygeodesy</code> package, the <a \n    href=\"https://PyPI.org/project/pygeodesy\" target=\"_top\">pygeodesy</a> \n    <a href=\"https://GitHub.com/mrJean1/PyGeodesy/tree/master/dist\" \n    target=\"_top\">distribution files</a> contain the tests, the test \n    results (on macOS only) and the complete <a \n    href=\"https://mrJean1.GitHub.io/PyGeodesy\" \n    target=\"_top\">documentation</a> (generated by <a \n    href=\"https://PyPI.org/project/epydoc\" target=\"_top\">Epydoc</a> using \n    command line: <code>epydoc --html --no-private --no-source \n    --name=pygeodesy --url=... -v pygeodesy</code>).</p>\n  <h1 class=\"heading\">Tests</h1>\n    <p>The tests ran with Python 3.14.3 (with <a \n    href=\"https://PyPI.org/project/geographiclib\" \n    target=\"_top\">geographiclib</a> 2.1), Python 3.13.12 (with <a \n    href=\"https://PyPI.org/project/geographiclib\" \n    target=\"_top\">geographiclib</a> 2.1), <a \n    href=\"https://PyPI.org/project/numpy\" target=\"_top\">numpy</a> 2.3.3, <a\n    href=\"https://PyPI.org/project/scipy\" target=\"_top\">scipy</a> 1.16.2, \n    <a href=\"https://GeographicLib.SourceForge.io/C++/doc/utilities.html\" \n    target=\"_top\">GeoConvert</a> 2.7 and <a \n    href=\"https://GeographicLib.SourceForge.io/C++/doc/utilities.html\" \n    target=\"_top\">GeodSolve</a> 2.7), Python 3.12.10 (with <a \n    href=\"https://PyPI.org/project/geographiclib\" \n    target=\"_top\">geographiclib</a> 2.0, <a \n    href=\"https://PyPI.org/project/numpy\" target=\"_top\">numpy</a> 2.1.0, <a\n    href=\"https://PyPI.org/project/scipy\" target=\"_top\">scipy</a> 1.14.1, \n    <a href=\"https://GeographicLib.SourceForge.io/C++/doc/utilities.html\" \n    target=\"_top\">GeodSolve</a> 2.7, <a \n    href=\"https://GeographicLib.SourceForge.io/C++/doc/utilities.html\" \n    target=\"_top\">GeodS3olve</a> 2.7, <a \n    href=\"https://GeographicLib.SourceForge.io/C++/doc/utilities.html\" \n    target=\"_top\">IntersectTool</a> 2.7 and <a \n    href=\"https://GeographicLib.SourceForge.io/C++/doc/utilities.html\" \n    target=\"_top\">RhumbSolve</a> 2.7), Python 3.11.9 (with <a \n    href=\"https://PyPI.org/project/geographiclib\" \n    target=\"_top\">geographiclib</a> 2.0, <a \n    href=\"https://PyPI.org/project/numpy\" target=\"_top\">numpy</a> 1.24.2 \n    and <a href=\"https://PyPI.org/project/scipy\" target=\"_top\">scipy</a> \n    1.10.1), and with Python 2.7.18 (with <a \n    href=\"https://PyPI.org/project/geographiclib\" \n    target=\"_top\">geographiclib</a> 1.50, <a \n    href=\"https://PyPI.org/project/numpy\" target=\"_top\">numpy</a> 1.16.6, \n    <a href=\"https://PyPI.org/project/scipy\" target=\"_top\">scipy</a> 1.2.2,\n    <a href=\"https://GeographicLib.SourceForge.io/C++/doc/utilities.html\" \n    target=\"_top\">GeoConvert</a> 2.7, <a \n    href=\"https://GeographicLib.SourceForge.io/C++/doc/utilities.html\" \n    target=\"_top\">GeodSolve</a> 2.7, <a \n    href=\"https://GeographicLib.SourceForge.io/C++/doc/utilities.html\" \n    target=\"_top\">Geod3Solve</a> 2.7, <a \n    href=\"https://GeographicLib.SourceForge.io/C++/doc/utilities.html\" \n    target=\"_top\">IntersectTool</a> 2.7 and <a \n    href=\"https://GeographicLib.SourceForge.io/C++/doc/utilities.html\" \n    target=\"_top\">RhumbSolve</a> 2.7), all in 64-bit on macOS 26.3 \n    Tahoe.</p>\n    <p>All tests ran with and without <code>lazy import</code> for Python 3\n    and with command line option <code>-W default</code> and env variable \n    <code>PYGEODESY_WARNINGS=on</code> for all Python versions.  The \n    results of those tests are included in the distribution files.</p>\n    <p>Test coverage has been measured with <a \n    href=\"https://PyPI.org/project/coverage\" target=\"_top\">coverage</a> \n    7.10.7 using Python 3.14.3, 3.13.12 and 3.12.10.  The complete coverage\n    report in HTML and a PDF summary are included in the distribution \n    files.</p>\n    <p>Python 3.14.3, 3.13.12, 3.12.10 and 3.11.9 run on Apple Si M4 \n    (<code>arm64</code>), <i>natively</i>.  Python 2.7.18 runs on Intel \n    (<code>x86_64</code>) or Intel <i>emulation</i> \n    (&quot;<code>arm64_x86_64</code>&quot;, see function <a \n    href=\"pygeodesy.internals-module.html#machine\" \n    class=\"link\">machine</a>).</p>\n    <p>The tests also ran with Python 3.14.3 (and <a \n    href=\"https://PyPI.org/project/geographiclib\" \n    target=\"_top\">geographiclib</a> 2.1) on <a \n    href=\"https://Cirrus-CI.com/github/mrJean1/PyGeodesy/master\" \n    target=\"_top\">Debian 12</a> in 64-bit only, with Python 3.13.12 (and <a\n    href=\"https://PyPI.org/project/geographiclib\" \n    target=\"_top\">geographiclib</a> 2.0) on <a \n    href=\"https://CI.AppVeyor.com/project/mrJean1/pygeodesy\" \n    target=\"_top\">Windows 2019Server</a> in 64-bit only and with Python \n    2.7.18 (and <a href=\"https://PyPI.org/project/geographiclib\" \n    target=\"_top\">geographiclib</a> 1.52) on <a \n    href=\"https://CI.AppVeyor.com/project/mrJean1/pygeodesy\" \n    target=\"_top\">Windows 10</a> in 64- and 32-bit.</p>\n    <p>A single-File and single-Directory application with \n    <code>pygeodesy</code> has been bundled using <a \n    href=\"https://PyPI.org/project/pyinstaller\" \n    target=\"_top\">PyInstaller</a> 3.4 and 64-bit Python 3.7.3 on macOS \n    10.13.6 High Sierra.</p>\n    <p>Previously, the tests were run with Python 3.13.0-9, 3.12.0-7, \n    3.11.2-5, 3.10.1-7, 3.9.6, 3.9.1, 3.8.7, 3.7.1, 2.7.15, <a \n    href=\"https://PyPy.org\" target=\"_top\">PyPy</a> 7.3.12 (Python 3.10.12),\n    7.3.1 (Python 3.6.9) and <a href=\"https://PyPy.org\" \n    target=\"_top\">PyPy</a> 7.1.1 (Python 2.7.13) (and <a \n    href=\"https://PyPI.org/project/geographiclib\" \n    target=\"_top\">geographiclib</a> 1.52, <a \n    href=\"https://PyPI.org/project/numpy\" target=\"_top\">numpy</a> 1.16.3, \n    1.16.4, 1.16.6, 1.19.0, 1.19.4, 1.19.5 or 1.22.4 and <a \n    href=\"https://PyPI.org/project/scipy\" target=\"_top\">scipy</a> 1.2.1, \n    1.4.1, 1.5.2 or 1.8.1) on <a \n    href=\"https://Travis-CI.com/mrJean1/PyGeodesy\" target=\"_top\">Ubuntu \n    16.04</a>, with Python 3.10.0-1, 3.9.0-5, 3.8.0-6, 3.7.2-6, 3.7.0, \n    3.6.2-5, 3.5.3, 2.7.13-17, 2.7.10 and 2.6.9 (and <a \n    href=\"https://PyPI.org/project/numpy\" target=\"_top\">numpy</a> 1.19.0, \n    1.16.5, 1.16.2, 1.15.2, 1.14.0, 1.13.1, 1.8.0rc1 or 1.6.2 and <a \n    href=\"https://PyPI.org/project/scipy\" target=\"_top\">scipy</a> 1.5.0), \n    <a href=\"https://PyPy.org\" target=\"_top\">PyPy</a> 7.3.0 (Python 2.7.13 \n    and 3.6.9), <a href=\"https://PyPy.org\" target=\"_top\">PyPy</a> 6.0.0 \n    (Python 2.7.13 and 3.5.3) and <a \n    href=\"https://software.Intel.com/en-us/distribution-for-python\" \n    target=\"_top\">Intel-Python</a> 3.5.3 (and <a \n    href=\"https://PyPI.org/project/numpy\" target=\"_top\">numpy</a> 1.11.3) \n    on macOS 15.0-6 Sequoia, 14.0-6.1 Sonoma, 13.0-5.2 Ventura, 12.1-6 \n    Monterey, 11.0-5.2-6.1 Big Sur (aka 10.16), 10.15.3, 10.15.5-7 \n    Catalina, 10.14 Mojave, 10.13.6 High Sierra and 10.12 Sierra, MacOS X \n    10.11 El Capitan and/or MacOS X 10.10 Yosemite, with <a \n    href=\"https://OMZ-Software.com/pythonista\" \n    target=\"_top\">Pythonista</a>3.2 (with geographiclib 1.50 or 1.49 and \n    numpy 1.8.0) on iOS 14.4.2, 11.4.1, 12.0-3 on iPad4, iPhone6, iPhone10 \n    and/or iPhone12, with <a href=\"https://OMZ-Software.com/pythonista\" \n    target=\"_top\">Pythonista</a> 3.1 on iOS 10.3.3, 11.0.3, 11.1.2 and 11.3\n    on iPad4, all in 64-bit only and with 32-bit Python 2.7.14 on Windows \n    Server 2012R2, Windows 10 Pro and with 32-bit Python 2.6.6 on Windows \n    XP SP3.</p>\n  <h1 class=\"heading\">Notes</h1>\n    <p>All Python source code has been statically <a \n    href=\"https://GitHub.com/ActiveState/code/tree/master/recipes/Python/546532_PyChecker_postprocessor\"\n    target=\"_top\">checked</a> with <a \n    href=\"https://GitHub.com/astral-sh/ruff\" target=\"_top\">Ruff</a> using \n    Python 3.13.12 and with <a href=\"https://PyPI.org/project/pychecker\" \n    target=\"_top\">PyChecker</a>, <a \n    href=\"https://PyPI.org/project/pyflakes\" target=\"_top\">PyFlakes</a>, <a\n    href=\"https://PyPI.org/project/pycodestyle\" \n    target=\"_top\">PyCodeStyle</a> (formerly Pep8) and <a \n    href=\"https://PyPI.org/project/mccabe\" target=\"_top\">McCabe</a> using \n    Python 2.7.18, both in 64-bit on macOS 26.3 Tahoe.</p>\n    <p>For a summary of all <i>Karney</i>-based functionality in \n    <code>pygeodesy</code>, see module <a \n    href=\"https://mrJean1.GitHub.io/PyGeodesy/docs/pygeodesy.karney-module.html\"\n    target=\"_top\">karney</a>.</p>\n    <p>In Python 2, symbols <a href=\"pygeodesy-module.html#S_DEG\" \n    class=\"link\">S_DEG</a>, <a href=\"pygeodesy-module.html#S_MIN\" \n    class=\"link\">S_MIN</a>, <a href=\"pygeodesy-module.html#S_SEC\" \n    class=\"link\">S_SEC</a>, <a href=\"pygeodesy-module.html#S_RAD\" \n    class=\"link\">S_RAD</a> and <a href=\"pygeodesy-module.html#S_SEP\" \n    class=\"link\">S_SEP</a> may be multi-byte, non-ascii characters and if \n    so, <i>not</i> <code>unicode</code>.</p>\n  <h1 class=\"heading\">Env variables</h1>\n    <p>The following environment variables are observed by \n    <code>pygeodesy</code>:</p>\n    <ul>\n      <li>\n        <code>PYGEODESY_EXCEPTION_CHAINING</code> - see module <a \n        href=\"pygeodesy.errors-module.html\" class=\"link\">errors</a>.\n      </li>\n      <li>\n        <code>PYGEODESY_FMT_FORM</code> - see module <a \n        href=\"pygeodesy.dms-module.html\" class=\"link\">dms</a>.\n      </li>\n      <li>\n        <code>PYGEODESY_FSUM_F2PRODUCT</code> - see module <a \n        href=\"pygeodesy.fsums-module.html\" class=\"link\">fsums</a> and \n        method <a href=\"pygeodesy.fsums.Fsum-class.html#f2product\" \n        class=\"link\">f2product</a>.\n      </li>\n      <li>\n        <code>PYGEODESY_FSUM_NONFINITES</code> - see module <a \n        href=\"pygeodesy.fsums-module.html\" class=\"link\">fsums</a> and \n        method <a href=\"pygeodesy.fsums.Fsum-class.html#nonfinites\" \n        class=\"link\">nonfinites</a>.\n      </li>\n      <li>\n        <code>PYGEODESY_FSUM_RESIDUAL</code> - see module <a \n        href=\"pygeodesy.fsums-module.html\" class=\"link\">fsums</a> and \n        method <a href=\"pygeodesy.fsums.Fsum-class.html#RESIDUAL\" \n        class=\"link\">RESIDUAL</a>.\n      </li>\n      <li>\n        <code>PYGEODESY_GEOCONVERT</code> - see module <a \n        href=\"pygeodesy.mgrs-module.html\" class=\"link\">mgrs</a>.\n      </li>\n      <li>\n        <code>PYGEODESY_GEODSOLVE</code> - see module <a \n        href=\"pygeodesy.geodsolve-module.html\" class=\"link\">geodsolve</a>.\n      </li>\n      <li>\n        <code>PYGEODESY_GEOD3SOLVE</code> - see module <a \n        href=\"pygeodesy.geod3solve-module.html\" \n        class=\"link\">geod3solve</a>.\n      </li>\n      <li>\n        <code>PYGEODESY_INTERSECTTOOL</code> - see module <a \n        href=\"pygeodesy.geodesici-module.html\" class=\"link\">geodesici</a>.\n      </li>\n      <li>\n        <code>PYGEODESY_LAZY_IMPORT</code> - see module <a \n        href=\"pygeodesy.lazily-module.html\" class=\"link\">lazily</a> and \n        variable <a href=\"pygeodesy-module.html#isLazy\" \n        class=\"link\">isLazy</a>.\n      </li>\n      <li>\n        <code>PYGEODESY_NOTIMPLEMENTED</code> - <code>__special__</code> \n        methods return <code>NotImplemented</code> if set to \n        &quot;std&quot;.\n      </li>\n      <li>\n        <code>PYGEODESY_RHUMBSOLVE</code> - see module <a \n        href=\"pygeodesy.rhumb.solve-module.html\" class=\"link\" \n        onclick=\"show_private();\">rhumb.solve</a>.\n      </li>\n      <li>\n        <code>PYGEODESY_UPS_POLES</code> - see modules <a \n        href=\"pygeodesy.ups-module.html\" class=\"link\">ups</a> and <a \n        href=\"pygeodesy.mgrs-module.html\" class=\"link\">mgrs</a>.\n      </li>\n    </ul>\n    <p>and these to specify standard or <i>named</i> \n    <code>repr</code>esentations:</p>\n    <ul>\n      <li>\n        <code>PYGEODESY_AZIMUTH_STD_REPR</code> - see method <a \n        href=\"pygeodesy.units.Azimuth-class.html\" \n        class=\"link\">Azimuth</a><code>.__repr__</code>.\n      </li>\n      <li>\n        <code>PYGEODESY_BEARING_STD_REPR</code> - see method <a \n        href=\"pygeodesy.units.Bearing-class.html\" \n        class=\"link\">Bearing</a><code>.__repr__</code>.\n      </li>\n      <li>\n        <code>PYGEODESY_BOOL_STD_REPR</code> - see method <a \n        href=\"pygeodesy.units.Bool-class.html\" \n        class=\"link\">Bool</a><code>.__repr__</code>.\n      </li>\n      <li>\n        <code>PYGEODESY_DEGREES_STD_REPR</code> - see method <a \n        href=\"pygeodesy.units.Degrees-class.html\" \n        class=\"link\">Degrees</a><code>.__repr__</code>.\n      </li>\n      <li>\n        <code>PYGEODESY_EPOCH_STD_REPR</code> - see method <a \n        href=\"pygeodesy.units.Epoch-class.html\" \n        class=\"link\">Float</a><code>.__repr__</code>.\n      </li>\n      <li>\n        <code>PYGEODESY_FLOAT_STD_REPR</code> - see method <a \n        href=\"pygeodesy.unitsBase.Float-class.html\" \n        class=\"link\">Float</a><code>.__repr__</code>.\n      </li>\n      <li>\n        <code>PYGEODESY_INT_STD_REPR</code> - see method <a \n        href=\"pygeodesy.unitsBase.Int-class.html\" \n        class=\"link\">Int</a><code>.__repr__</code>.\n      </li>\n      <li>\n        <code>PYGEODESY_METER_STD_REPR</code> - see method <a \n        href=\"pygeodesy.units.Meter-class.html\" \n        class=\"link\">Meter</a><code>.__repr__</code>.\n      </li>\n      <li>\n        <code>PYGEODESY_RADIANS_STD_REPR</code> - see method <a \n        href=\"pygeodesy.units.Radians-class.html\" \n        class=\"link\">Radians</a><code>.__repr__</code>.\n      </li>\n      <li>\n        <code>PYGEODESY_STR_STD_REPR</code> - see method <a \n        href=\"pygeodesy.unitsBase.Str-class.html\" \n        class=\"link\">Str</a><code>.__repr__</code>.\n      </li>\n    </ul>\n    <p>plus during development:</p>\n    <ul>\n      <li>\n        <code>PYGEODESY_FOR_DOCS</code> - for extended documentation by \n        <code>epydoc</code>.\n      </li>\n      <li>\n        <code>PYGEODESY_GEOGRAPHICLIB</code> - see module <a \n        href=\"pygeodesy.karney-module.html\" class=\"link\">karney</a>.\n      </li>\n      <li>\n        <code>PYGEODESY_WARNINGS</code> - see module <a \n        href=\"pygeodesy.props-module.html\" class=\"link\">props</a> and \n        function <a href=\"pygeodesy.props.DeprecationWarnings-class.html\" \n        class=\"link\">DeprecationWarnings</a>.\n      </li>\n      <li>\n        <code>PYGEODESY_XPACKAGES</code> - see module <a \n        href=\"pygeodesy.basics-module.html\" class=\"link\">basics</a>.\n      </li>\n      <li>\n        <code>PYTHONDEVMODE</code> - see modules <a \n        href=\"pygeodesy.errors-module.html\" class=\"link\">errors</a> and <a \n        href=\"pygeodesy.props-module.html\" class=\"link\">props</a>.\n      </li>\n    </ul>\n    <p>and:</p>\n    <ul>\n      <li>\n        <code>PYGEODESY_INIT__ALL__</code> - Set env variable \n        <code>PYGEODESY_INIT__ALL__</code> to anything other than \n        <code>&quot;__all__&quot;</code> to avoid importing all \n        <code>pygeodesy</code> modules unnecessarily (in Python 2 or with \n        <code>PYGEODESY_LAZY_IMPORT</code> turned off in Python 3).  \n        However, to import a <code>pygeodesy</code> item, the item name \n        must be qualified with the <code>module</code> name, for example \n        <code> from pygeodesy.ellipsoidalExact import LatLon </code> or \n        <code> from pygeodesy.deprecated import collins </code>\n      </li>\n    </ul>\n  <h1 class=\"heading\">License</h1>\n    <p>**) <a href=\"https://OpenSource.org/licenses/MIT\" \n    target=\"_top\">Copyright (C) 2016-2026 -- mrJean1 at Gmail -- All Rights\n    Reserved.</a></p>\n    <p><code>Permission is hereby granted, free of charge, to any person \n    obtaining a copy of this software and associated documentation files \n    (the &quot;Software&quot;), to deal in the Software without \n    restriction, including without limitation the rights to use, copy, \n    modify, merge, publish, distribute, sublicense, and/or sell copies of \n    the Software, and to permit persons to whom the Software is furnished \n    to do so, subject to the following conditions:</code></p>\n    <p><code>The above copyright notice and this permission notice shall be\n    included in all copies or substantial portions of the \n    Software.</code></p>\n    <p><code>THE SOFTWARE IS PROVIDED &quot;AS IS&quot;, WITHOUT WARRANTY \n    OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE \n    WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND \n    NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE \n    LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION \n    OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION \n    WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE \n    SOFTWARE.</code></p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Version:</strong>\n        26.03.26\n      </p>\n</div><!-- ==================== SUBMODULES ==================== -->\n<a name=\"section-Submodules\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Submodules</span></td>\n</tr>\n  <tr><td class=\"summary\">\n  <ul class=\"nomargin\">\n    <li class=\"private\"> <strong class=\"uidlink\"><a href=\"pygeodesy.__main__-module.html\">pygeodesy.__main__</a></strong>: <em class=\"summary\">Print <a href=\"pygeodesy-module.html\" class=\"link\">pygeodesy</a> \n        version, etc.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.albers-module.html\">pygeodesy.albers</a></strong>: <em class=\"summary\">Albers Equal-Area projections.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.angles-module.html\">pygeodesy.angles</a></strong>: <em class=\"summary\">Classes <a href=\"pygeodesy.angles.Ang-class.html\" \n        class=\"link\">Ang</a>, <a href=\"pygeodesy.angles-module.html#Deg\" \n        class=\"link\">Deg</a>, <a href=\"pygeodesy.angles-module.html#Rad\" \n        class=\"link\">Rad</a> and <a \n        href=\"pygeodesy.angles.Lambertian-class.html\" \n        class=\"link\">Lambertian</a> accurately representing an angle as a \n        3-tuple <code>(sine, cosine, turns)</code>, with <code>turns</code>\n        the number of full turns.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.auxilats-module.html\">pygeodesy.auxilats</a></strong>: <em class=\"summary\">Classes <a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html\" \n        class=\"link\">AuxAngle</a>, <a \n        href=\"pygeodesy.auxilats.auxDLat.AuxDLat-class.html\" \n        class=\"link\">AuxDLat</a>, <a \n        href=\"pygeodesy.auxilats.auxDST.AuxDST-class.html\" \n        class=\"link\">AuxDST</a> and <a \n        href=\"pygeodesy.auxilats.auxLat.AuxLat-class.html\" \n        class=\"link\">AuxLat</a> transcoded to Python from <i>Karney</i>'s \n        C++ class <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1AuxAngle.html\"\n        target=\"_top\">AuxAngle</a>, <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1DAuxLatitude.html\"\n        target=\"_top\">DAuxLatitude</a>, <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1DST.html\"\n        target=\"_top\">DST</a>, repectively <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1AuxLatitude.html\"\n        target=\"_top\">AuxLatitude</a> all in <i>GeographicLib version \n        2.2+</i>.</em>\n    <ul>\n    <li class=\"private\"> <strong class=\"uidlink\"><a href=\"pygeodesy.auxilats._CX_4-module.html\">pygeodesy.auxilats._CX_4</a></strong>: <em class=\"summary\">Coefficients for <code>_AUXLATITUDE_ORDER</code> 4 from \n        <i>Karney</i>'s C++ class <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1AuxLatitude.html\"\n        target=\"_top\">AuxLatitude</a> transcoded to a Python \n        <code>_Rdict[auxout][auxin]</code> of <code>_Rtuple</code>s.</em>    </li>\n    <li class=\"private\"> <strong class=\"uidlink\"><a href=\"pygeodesy.auxilats._CX_6-module.html\">pygeodesy.auxilats._CX_6</a></strong>: <em class=\"summary\">Coefficients for <code>_AUXLATITUDE_ORDER</code> 6 from \n        <i>Karney</i>'s C++ class <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1AuxLatitude.html\"\n        target=\"_top\">AuxLatitude</a> transcoded to a Python \n        <code>_Rdict[auxout][auxin]</code> of <code>_Rtuple</code>s.</em>    </li>\n    <li class=\"private\"> <strong class=\"uidlink\"><a href=\"pygeodesy.auxilats._CX_8-module.html\">pygeodesy.auxilats._CX_8</a></strong>: <em class=\"summary\">Coefficients for <code>_AUXLATITUDE_ORDER</code> 8 from \n        <i>Karney</i>'s C++ class <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1AuxLatitude.html\"\n        target=\"_top\">AuxLatitude</a> transcoded to a Python \n        <code>_Rdict[auxout][auxin]</code> of <code>_Rtuple</code>s.</em>    </li>\n    <li class=\"private\"> <strong class=\"uidlink\"><a href=\"pygeodesy.auxilats._CX_Rs-module.html\" onclick=\"show_private();\">pygeodesy.auxilats._CX_Rs</a></strong>: <em class=\"summary\">(INTERNAL) Classes <code>_Rcoeffs</code>, <code>_Rdict</code> and \n        <code>_Rtuple</code> to store the deferred Python versions of \n        coefficients from <i>Karney</i>'s C++ class <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1AuxLatitude.html\"\n        target=\"_top\">AuxLatitude</a>.</em>    </li>\n    <li class=\"private\"> <strong class=\"uidlink\"><a href=\"pygeodesy.auxilats.__main__-module.html\">pygeodesy.auxilats.__main__</a></strong>: <em class=\"summary\">Print <a href=\"pygeodesy.auxilats-module.html\" \n        class=\"link\">auxilats</a> version, etc.</em>    </li>\n    <li class=\"private\"> <strong class=\"uidlink\"><a href=\"pygeodesy.auxilats.auxAngle-module.html\" onclick=\"show_private();\">pygeodesy.auxilats.auxAngle</a></strong>: <em class=\"summary\">(INTERNAL) <i>Auxiliary</i> latitudes' base classes, constants and \n        functions.</em>    </li>\n    <li class=\"private\"> <strong class=\"uidlink\"><a href=\"pygeodesy.auxilats.auxDLat-module.html\" onclick=\"show_private();\">pygeodesy.auxilats.auxDLat</a></strong>: <em class=\"summary\">Class <a href=\"pygeodesy.auxilats.auxDLat.AuxDLat-class.html\" \n        class=\"link\">AuxDLat</a> transcoded to Python from <i>Karney</i>'s \n        C++ class <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1DAuxLatitude.html\"\n        target=\"_top\">DAuxLatitude</a> in <i>GeographicLib version \n        2.2+</i>.</em>    </li>\n    <li class=\"private\"> <strong class=\"uidlink\"><a href=\"pygeodesy.auxilats.auxDST-module.html\" onclick=\"show_private();\">pygeodesy.auxilats.auxDST</a></strong>: <em class=\"summary\">Discrete Sine Transforms (AuxDST) in Python, transcoded from \n        <i>Karney</i>'s C++ class <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1DST.html\"\n        target=\"_top\">DST</a> in <i>GeographicLib version 2.2+</i>.</em>    </li>\n    <li class=\"private\"> <strong class=\"uidlink\"><a href=\"pygeodesy.auxilats.auxLat-module.html\" onclick=\"show_private();\">pygeodesy.auxilats.auxLat</a></strong>: <em class=\"summary\">Class <a href=\"pygeodesy.auxilats.auxLat.AuxLat-class.html\" \n        class=\"link\">AuxLat</a> transcoded to Python from <i>Karney</i>'s \n        C++ class <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1AuxLatitude.html\"\n        target=\"_top\">AuxLatitude</a> in <i>GeographicLib version 2.2+</i>.</em>    </li>\n    <li class=\"private\"> <strong class=\"uidlink\"><a href=\"pygeodesy.auxilats.auxily-module.html\" onclick=\"show_private();\">pygeodesy.auxilats.auxily</a></strong>: <em class=\"summary\">(INTERNAL) <i>Auxiliary</i> latitudes' classes, constants and \n        functions.</em>    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.azimuthal-module.html\">pygeodesy.azimuthal</a></strong>: <em class=\"summary\">Equidistant, Equal-Area, and other Azimuthal projections.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.basics-module.html\">pygeodesy.basics</a></strong>: <em class=\"summary\">Some, basic definitions, functions and dependencies.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.booleans-module.html\">pygeodesy.booleans</a></strong>: <em class=\"summary\"><i>Boolean</i> operations on <i>composite</i> polygons and \n        <i>clip</i>s.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.cartesianBase-module.html\">pygeodesy.cartesianBase</a></strong>: <em class=\"summary\">(INTERNAL) Private <code>CartesianBase</code> class for \n        elliposiodal, spherical and N-/vectorial <code>Cartesian</code>s \n        and public functions <a \n        href=\"pygeodesy.cartesianBase-module.html#rtp2xyz\" \n        class=\"link\">rtp2xyz</a>, <a \n        href=\"pygeodesy.cartesianBase-module.html#rtp2xyz_\" \n        class=\"link\">rtp2xyz_</a>, <a \n        href=\"pygeodesy.cartesianBase-module.html#xyz2rtp\" \n        class=\"link\">xyz2rtp</a> and <a \n        href=\"pygeodesy.cartesianBase-module.html#xyz2rtp_\" \n        class=\"link\">xyz2rtp_</a>.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.clipy-module.html\">pygeodesy.clipy</a></strong>: <em class=\"summary\">Clip a path or polygon of <code>LatLon</code> points against a \n        rectangular box or an arbitrary (convex) region.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.constants-module.html\">pygeodesy.constants</a></strong>: <em class=\"summary\">Single-instance <code>float</code> and <code>int</code> constants \n        across <code>pygeodesy</code> modules and related functions <a \n        href=\"pygeodesy.constants-module.html#float_\" \n        class=\"link\">pygeodesy.float_</a>, <a \n        href=\"pygeodesy.constants-module.html#float0_\" \n        class=\"link\">pygeodesy.float0_</a>, <a \n        href=\"pygeodesy.constants-module.html#isclose\" \n        class=\"link\">pygeodesy.isclose</a>, <a \n        href=\"pygeodesy.constants-module.html#isfinite\" \n        class=\"link\">pygeodesy.isfinite</a>, <a \n        href=\"pygeodesy.constants-module.html#isinf\" \n        class=\"link\">pygeodesy.isinf</a>, <a \n        href=\"pygeodesy.constants-module.html#isint0\" \n        class=\"link\">pygeodesy.isint0</a>, <a \n        href=\"pygeodesy.constants-module.html#isnan\" \n        class=\"link\">pygeodesy.isnan</a>, <a \n        href=\"pygeodesy.constants-module.html#isnear0\" \n        class=\"link\">pygeodesy.isnear0</a>, <a \n        href=\"pygeodesy.constants-module.html#isnear1\" \n        class=\"link\">pygeodesy.isnear1</a>, <a \n        href=\"pygeodesy.constants-module.html#isnear90\" \n        class=\"link\">pygeodesy.isnear90</a>, <a \n        href=\"pygeodesy.constants-module.html#isneg0\" \n        class=\"link\">pygeodesy.isneg0</a>, <a \n        href=\"pygeodesy.constants-module.html#isninf\" \n        class=\"link\">pygeodesy.isninf</a>, <a \n        href=\"pygeodesy.constants-module.html#isnon0\" \n        class=\"link\">pygeodesy.isnon0</a> and <a \n        href=\"pygeodesy.constants-module.html#remainder\" \n        class=\"link\">pygeodesy.remainder</a>.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.css-module.html\">pygeodesy.css</a></strong>: <em class=\"summary\">Cassini-Soldner (CSS) projection.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.datums-module.html\">pygeodesy.datums</a></strong>: <em class=\"summary\">Datums and transformations thereof.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.deprecated-module.html\">pygeodesy.deprecated</a></strong>: <em class=\"summary\">DEPRECATED classes, constants, functions, interns, methods, etc.</em>\n    <ul>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.deprecated.bases-module.html\">pygeodesy.deprecated.bases</a></strong>: <em class=\"summary\">DEPRECATED on 2021.02.10, use (INTERNAL) module <a \n        href=\"pygeodesy.latlonBase-module.html\" \n        class=\"link\">pygeodesy.latlonBase</a> instead.</em>    </li>\n    <li class=\"private\"> <strong class=\"uidlink\"><a href=\"pygeodesy.deprecated.classes-module.html\" onclick=\"show_private();\">pygeodesy.deprecated.classes</a></strong>: <em class=\"summary\">DEPRECATED classes kept for backward compatibility.</em>    </li>\n    <li class=\"private\"> <strong class=\"uidlink\"><a href=\"pygeodesy.deprecated.consterns-module.html\" onclick=\"show_private();\">pygeodesy.deprecated.consterns</a></strong>: <em class=\"summary\">DEPRECATED constants, interns and singletons kept for backward \n        compatibility.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.deprecated.datum-module.html\">pygeodesy.deprecated.datum</a></strong>: <em class=\"summary\">DEPRECATED on 2022.09.12, use module <a \n        href=\"pygeodesy.datums-module.html\" \n        class=\"link\">pygeodesy.datums</a> or <a \n        href=\"pygeodesy.ellipsoids-module.html\" \n        class=\"link\">pygeodesy.ellipsoids</a> instead.</em>    </li>\n    <li class=\"private\"> <strong class=\"uidlink\"><a href=\"pygeodesy.deprecated.functions-module.html\" onclick=\"show_private();\">pygeodesy.deprecated.functions</a></strong>: <em class=\"summary\">DEPRECATED functions kept for backward compatibility.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.deprecated.nvector-module.html\">pygeodesy.deprecated.nvector</a></strong>: <em class=\"summary\">DEPRECATED on 2021.05.20, use (INTERNAL) module <a \n        href=\"pygeodesy.nvectorBase-module.html\" \n        class=\"link\">pygeodesy.nvectorBase</a> instead.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.deprecated.rhumbBase-module.html\">pygeodesy.deprecated.rhumbBase</a></strong>: <em class=\"summary\">DEPRECATED on 2023.11.26, use module <a \n        href=\"pygeodesy.rhumb.bases-module.html\" class=\"link\" \n        onclick=\"show_private();\">pygeodesy.rhumb.bases</a> instead.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.deprecated.rhumbaux-module.html\">pygeodesy.deprecated.rhumbaux</a></strong>: <em class=\"summary\">DEPRECATED on 2023.11.26, use module <a \n        href=\"pygeodesy.rhumb.aux_-module.html\" class=\"link\" \n        onclick=\"show_private();\">pygeodesy.rhumb.aux_</a> instead.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.deprecated.rhumbsolve-module.html\">pygeodesy.deprecated.rhumbsolve</a></strong>: <em class=\"summary\">DEPRECATED on 2023.11.26, use module <a \n        href=\"pygeodesy.rhumb.solve-module.html\" class=\"link\" \n        onclick=\"show_private();\">pygeodesy.rhumb.solve</a> instead.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.deprecated.rhumbx-module.html\">pygeodesy.deprecated.rhumbx</a></strong>: <em class=\"summary\">DEPRECATED on 2023.11.26, use module <a \n        href=\"pygeodesy.rhumb.ekx-module.html\" class=\"link\" \n        onclick=\"show_private();\">pygeodesy.rhumb.ekx</a> instead.</em>    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.dms-module.html\">pygeodesy.dms</a></strong>: <em class=\"summary\">Parsers and formatters of angles in degrees, minutes and seconds or\n        radians.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.ecef-module.html\">pygeodesy.ecef</a></strong>: <em class=\"summary\"><i>Geocentric</i> Earth-Centered, Earth-Fixed (ECEF) coordinates.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.ecefLocals-module.html\">pygeodesy.ecefLocals</a></strong>: <em class=\"summary\">(INTERNAL) ECEF to local coodinate conversions, separated from \n        module <code>ecef</code> to defer importing the latter into \n        <code>CartesianBase</code> and <code>LatLonBase</code>.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.elevations-module.html\">pygeodesy.elevations</a></strong>: <em class=\"summary\">Web-services-based elevations and <code>CONUS</code> geoid heights.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.ellipses-module.html\">pygeodesy.ellipses</a></strong>: <em class=\"summary\">Class <code>Ellipse</code> for 2-D ellipse attributes, like \n        perimeter, area, etc.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.ellipsoidalBase-module.html\">pygeodesy.ellipsoidalBase</a></strong>: <em class=\"summary\">(INTERNAL) Private ellipsoidal base classes \n        <code>CartesianEllipsoidalBase</code> and \n        <code>LatLonEllipsoidalBase</code>.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.ellipsoidalBaseDI-module.html\">pygeodesy.ellipsoidalBaseDI</a></strong>: <em class=\"summary\">(INTERNAL) Private, ellipsoidal Direct/Inverse geodesy base class \n        <code>LatLonEllipsoidalBaseDI</code> and functions.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.ellipsoidalExact-module.html\">pygeodesy.ellipsoidalExact</a></strong>: <em class=\"summary\">Exact ellipsoidal geodesy using <i>Karney</i>'s Exact Geodesic.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.ellipsoidalGeodSolve-module.html\">pygeodesy.ellipsoidalGeodSolve</a></strong>: <em class=\"summary\">Exact ellipsoidal geodesy, intended <i>for testing purposes \n        only</i>.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.ellipsoidalKarney-module.html\">pygeodesy.ellipsoidalKarney</a></strong>: <em class=\"summary\">Ellipsoidal, <i>Karney</i>-based geodesy.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.ellipsoidalNvector-module.html\">pygeodesy.ellipsoidalNvector</a></strong>: <em class=\"summary\">Ellipsoidal, <code>N-vector</code>-based geodesy.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.ellipsoidalVincenty-module.html\">pygeodesy.ellipsoidalVincenty</a></strong>: <em class=\"summary\">Ellipsoidal, <i>Vincenty</i>-based geodesy.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.ellipsoids-module.html\">pygeodesy.ellipsoids</a></strong>: <em class=\"summary\">Ellipsoidal and spherical earth models.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.elliptic-module.html\">pygeodesy.elliptic</a></strong>: <em class=\"summary\"><i>Karney</i>'s elliptic integrals and elliptic functions in pure \n        Python.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.epsg-module.html\">pygeodesy.epsg</a></strong>: <em class=\"summary\">European Petroleum Survey Group (EPSG) en-/decoding.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.errors-module.html\">pygeodesy.errors</a></strong>: <em class=\"summary\">Errors, exceptions, exception formatting and exception chaining.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.etm-module.html\">pygeodesy.etm</a></strong>: <em class=\"summary\">A pure Python version of <i>Karney</i>'s <code>Exact Transverse \n        Mercator</code> (ETM) projection.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.fmath-module.html\">pygeodesy.fmath</a></strong>: <em class=\"summary\">Utilities for precision floating point summation, multiplication, \n        <code>fused-multiply-add</code>, polynomials, roots, etc.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.formy-module.html\">pygeodesy.formy</a></strong>: <em class=\"summary\">Formulary of basic geodesy functions and approximations.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.frechet-module.html\">pygeodesy.frechet</a></strong>: <em class=\"summary\">Fr&#233;chet distances.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.fstats-module.html\">pygeodesy.fstats</a></strong>: <em class=\"summary\">Classes for <i>running</i> statistics and regressions based on <a \n        href=\"pygeodesy.fsums.Fsum-class.html\" \n        class=\"link\">pygeodesy.Fsum</a>, precision floating point summation\n        and accurate multiplication.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.fsums-module.html\">pygeodesy.fsums</a></strong>: <em class=\"summary\">Class <a href=\"pygeodesy.fsums.Fsum-class.html\" \n        class=\"link\">Fsum</a> for precision floating point summation \n        similar to Python's <code>math.fsum</code>, but enhanced with \n        <i>precision running</i> summation plus optionally, accurate \n        <i>TwoProduct</i> multiplication.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.gars-module.html\">pygeodesy.gars</a></strong>: <em class=\"summary\"><i>Global Area Reference System</i> (GARS) en-/decoding.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.geod3solve-module.html\">pygeodesy.geod3solve</a></strong>: <em class=\"summary\">Wrapper to invoke <i>Karney</i>'s <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/Geod3Solve.1.html\"\n        target=\"_top\">Geod3Solve</a> utility as a <code>triaxial</code> \n        geodesic, but intended <i>mainly for testing purposes</i>.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.geodesici-module.html\">pygeodesy.geodesici</a></strong>: <em class=\"summary\">Classes <a href=\"pygeodesy.geodesici.Intersectool-class.html\" \n        class=\"link\">Intersectool</a> and <a \n        href=\"pygeodesy.geodesici.Intersector-class.html\" \n        class=\"link\">Intersector</a> to find the intersections of two \n        geodesic lines or line segments.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.geodesicw-module.html\">pygeodesy.geodesicw</a></strong>: <em class=\"summary\">Wrapper around Python classes <code>geodesic.Geodesic</code> and \n        <code>geodesicline.GeodesicLine</code> from <i>Karney</i>'s Python \n        package <a href=\"https://PyPI.org/project/geographiclib\" \n        target=\"_top\">geographiclib</a>, provided that package is \n        installed.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.geodesicx-module.html\">pygeodesy.geodesicx</a></strong>: <em class=\"summary\">A pure Python version of <i>Karney</i>'s C++ classes <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1GeodesicExact.html\"\n        target=\"_top\">GeodesicExact</a> and <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1GeodesicLine.html\"\n        target=\"_top\">GeodesicLineExact</a>.</em>\n    <ul>\n    <li class=\"private\"> <strong class=\"uidlink\"><a href=\"pygeodesy.geodesicx._C4_24-module.html\">pygeodesy.geodesicx._C4_24</a></strong>: <em class=\"summary\">A Python version of part of <i>Karney</i>'s C++ module <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1GeodesicExactC4.html\"\n        target=\"_top\">GeodesicExactC4</a>.</em>    </li>\n    <li class=\"private\"> <strong class=\"uidlink\"><a href=\"pygeodesy.geodesicx._C4_27-module.html\">pygeodesy.geodesicx._C4_27</a></strong>: <em class=\"summary\">A Python version of part of <i>Karney</i>'s C++ module <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1GeodesicExactC4.html\"\n        target=\"_top\">GeodesicExactC4</a>.</em>    </li>\n    <li class=\"private\"> <strong class=\"uidlink\"><a href=\"pygeodesy.geodesicx._C4_30-module.html\">pygeodesy.geodesicx._C4_30</a></strong>: <em class=\"summary\">A Python version of part of <i>Karney</i>'s C++ module <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1GeodesicExactC4.html\"\n        target=\"_top\">GeodesicExactC4</a>.</em>    </li>\n    <li class=\"private\"> <strong class=\"uidlink\"><a href=\"pygeodesy.geodesicx.__main__-module.html\">pygeodesy.geodesicx.__main__</a></strong>: <em class=\"summary\">Print <a href=\"pygeodesy.geodesicx-module.html\" \n        class=\"link\">geodesicx</a> version, etc.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.geodesicx.gx-module.html\">pygeodesy.geodesicx.gx</a></strong>: <em class=\"summary\">A pure Python version of <i>Karney</i>'s C++ class <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1GeodesicExact.html\"\n        target=\"_top\">GeodesicExact</a>.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.geodesicx.gxarea-module.html\">pygeodesy.geodesicx.gxarea</a></strong>: <em class=\"summary\">Slightly enhanced versions of classes <a \n        href=\"https://GeographicLib.SourceForge.io/1.52/python/code.html#module-geographiclib.polygonarea\"\n        target=\"_top\">PolygonArea</a> and <code>Accumulator</code> from \n        <i>Karney</i>'s Python <a \n        href=\"https://GeographicLib.SourceForge.io/1.52/python/index.html\" \n        target=\"_top\">geographiclib</a>.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.geodesicx.gxbases-module.html\">pygeodesy.geodesicx.gxbases</a></strong>: <em class=\"summary\">(INTERNAL) Private <a href=\"pygeodesy.geodesicx-module.html\" \n        class=\"link\">geodesicx</a> base class, functions and constants.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.geodesicx.gxline-module.html\">pygeodesy.geodesicx.gxline</a></strong>: <em class=\"summary\">A pure Python version of <i>Karney</i>'s C++ class <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1GeodesicLineExact.html\"\n        target=\"_top\">GeodesicLineExact</a>.</em>    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.geodsolve-module.html\">pygeodesy.geodsolve</a></strong>: <em class=\"summary\">Wrapper to invoke <i>Karney</i>'s <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/GeodSolve.1.html\"\n        target=\"_top\">GeodSolve</a> utility as an (exact) geodesic, but \n        intended <i>mainly for testing purposes</i>.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.geohash-module.html\">pygeodesy.geohash</a></strong>: <em class=\"summary\"><i>Gustavo Niemeyer</i>&#8217;s <a \n        href=\"https://WikiPedia.org/wiki/Geohash\" \n        target=\"_top\">Geohash</a>.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.geoids-module.html\">pygeodesy.geoids</a></strong>: <em class=\"summary\">Geoid models and geoid height interpolations.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.hausdorff-module.html\">pygeodesy.hausdorff</a></strong>: <em class=\"summary\">Hausdorff distances.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.heights-module.html\">pygeodesy.heights</a></strong>: <em class=\"summary\">Height interpolations at <code>LatLon</code> points from known \n        <code>knots</code>.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.internals-module.html\">pygeodesy.internals</a></strong>: <em class=\"summary\">Mostly INTERNAL functions, except <a \n        href=\"pygeodesy.internals-module.html#machine\" \n        class=\"link\">machine</a>, <a \n        href=\"pygeodesy.internals-module.html#print_\" \n        class=\"link\">print_</a> and <a \n        href=\"pygeodesy.internals-module.html#printf\" \n        class=\"link\">printf</a>.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.interns-module.html\">pygeodesy.interns</a></strong>: <em class=\"summary\">Single <code>str</code>ing constants, <code>intern</code>'ed across\n        <code>pygeodesy</code> modules and function <a \n        href=\"pygeodesy.internals-module.html#machine\" \n        class=\"link\">pygeodesy.machine</a>.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.iters-module.html\">pygeodesy.iters</a></strong>: <em class=\"summary\">Iterators with options.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.karney-module.html\">pygeodesy.karney</a></strong>: <em class=\"summary\">Wrapper around several <code>geomath.Math</code> functions from \n        <i>Karney</i>'s Python package <a \n        href=\"https://PyPI.org/project/geographiclib\" \n        target=\"_top\">geographiclib</a>, provided that package is \n        installed.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.ktm-module.html\">pygeodesy.ktm</a></strong>: <em class=\"summary\">A pure Python version of <i>Karney</i>'s C++ class <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1TransverseMercator.html\"\n        target=\"_top\">TransverseMercator</a> based on <i>Kr&#252;ger</i> series.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.latlonBase-module.html\">pygeodesy.latlonBase</a></strong>: <em class=\"summary\">(INTERNAL) Base class <a \n        href=\"pygeodesy.latlonBase.LatLonBase-class.html\" \n        class=\"link\">LatLonBase</a> for all elliposiodal, spherical and \n        N-vectorial <code>LatLon</code> classes.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.lazily-module.html\">pygeodesy.lazily</a></strong>: <em class=\"summary\">Lazily import <code>pygeodesy</code> modules and attributes, based \n        on <a href=\"https://modutil.ReadTheDocs.io/en/latest/#lazy_import\" \n        target=\"_top\">lazy_import</a> from <i>Brett Cannon</i>'s <a \n        href=\"https://PyPI.org/project/modutil\" target=\"_top\">modutil</a>.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.lcc-module.html\">pygeodesy.lcc</a></strong>: <em class=\"summary\">Lambert Conformal Conic (LCC) projection.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.ltp-module.html\">pygeodesy.ltp</a></strong>: <em class=\"summary\"><i>Local Tangent Plane</i> (LTP) and <i>local</i> cartesian \n        coordinates.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.ltpTuples-module.html\">pygeodesy.ltpTuples</a></strong>: <em class=\"summary\">Named, <i>Local Tangent Plane</i> (LTP) tuples.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.mgrs-module.html\">pygeodesy.mgrs</a></strong>: <em class=\"summary\">Military Grid Reference System (MGRS/NATO) references.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.named-module.html\">pygeodesy.named</a></strong>: <em class=\"summary\">(INTERNAL) Nameable class instances.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.namedTuples-module.html\">pygeodesy.namedTuples</a></strong>: <em class=\"summary\">Named tuples.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.nvectorBase-module.html\">pygeodesy.nvectorBase</a></strong>: <em class=\"summary\">(INTERNAL) Private elliposiodal and spherical <code>Nvector</code> \n        base classes <a \n        href=\"pygeodesy.nvectorBase.LatLonNvectorBase-class.html\" \n        class=\"link\">LatLonNvectorBase</a> and <a \n        href=\"pygeodesy.nvectorBase.NvectorBase-class.html\" \n        class=\"link\">NvectorBase</a> and function <a \n        href=\"pygeodesy.nvectorBase-module.html#sumOf\" \n        class=\"link\">sumOf</a>.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.osgr-module.html\">pygeodesy.osgr</a></strong>: <em class=\"summary\">Ordnance Survey Grid References (OSGR) references on the UK <a \n        href=\"https://www.OrdnanceSurvey.co.UK/documents/resources/guide-to-nationalgrid.pdf\"\n        target=\"_top\">National Grid</a>.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.points-module.html\">pygeodesy.points</a></strong>: <em class=\"summary\">Utilities for point lists, tuples, etc.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.props-module.html\">pygeodesy.props</a></strong>: <em class=\"summary\">Mutable, immutable and caching/memoizing properties and deprecation\n        decorators.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.resections-module.html\">pygeodesy.resections</a></strong>: <em class=\"summary\">3-Point resection functions <a \n        href=\"pygeodesy.resections-module.html#cassini\" \n        class=\"link\">cassini</a>, <a \n        href=\"pygeodesy.resections-module.html#collins5\" \n        class=\"link\">collins5</a>, <a \n        href=\"pygeodesy.resections-module.html#pierlot\" \n        class=\"link\">pierlot</a>, <a \n        href=\"pygeodesy.resections-module.html#pierlotx\" \n        class=\"link\">pierlotx</a> and <a \n        href=\"pygeodesy.resections-module.html#tienstra7\" \n        class=\"link\">tienstra7</a>, survey functions <a \n        href=\"pygeodesy.resections-module.html#snellius3\" \n        class=\"link\">snellius3</a> and <a \n        href=\"pygeodesy.resections-module.html#wildberger3\" \n        class=\"link\">wildberger3</a> and triangle functions <a \n        href=\"pygeodesy.resections-module.html#triAngle\" \n        class=\"link\">triAngle</a>, <a \n        href=\"pygeodesy.resections-module.html#triAngle5\" \n        class=\"link\">triAngle5</a>, <a \n        href=\"pygeodesy.resections-module.html#triSide\" \n        class=\"link\">triSide</a>, <a \n        href=\"pygeodesy.resections-module.html#triSide2\" \n        class=\"link\">triSide2</a> and <a \n        href=\"pygeodesy.resections-module.html#triSide4\" \n        class=\"link\">triSide4</a>.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.rhumb-module.html\">pygeodesy.rhumb</a></strong>: <em class=\"summary\">Package of lazily imported <code>rhumb</code> modules <a \n        href=\"pygeodesy.rhumb.aux_-module.html\" class=\"link\" \n        onclick=\"show_private();\">rhumb.aux_</a>, <a \n        href=\"pygeodesy.rhumb.ekx-module.html\" class=\"link\" \n        onclick=\"show_private();\">rhumb.ekx</a> and <a \n        href=\"pygeodesy.rhumb.solve-module.html\" class=\"link\" \n        onclick=\"show_private();\">rhumb.solve</a>.</em>\n    <ul>\n    <li class=\"private\"> <strong class=\"uidlink\"><a href=\"pygeodesy.rhumb.aux_-module.html\" onclick=\"show_private();\">pygeodesy.rhumb.aux_</a></strong>: <em class=\"summary\">A pure Python version of <i>Karney</i>'s <i>Auxiliary \n        Latitudes</i>, C++ classes <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Rhumb.html\"\n        target=\"_top\">Rhumb</a> and <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1RhumbLine.html\"\n        target=\"_top\">RhumbLine</a> from <i>GeographicLib version 2.2+</i> \n        renamed to <a href=\"pygeodesy.rhumb.aux_.RhumbAux-class.html\" \n        class=\"link\">RhumbAux</a> respectively <a \n        href=\"pygeodesy.rhumb.aux_.RhumbLineAux-class.html\" \n        class=\"link\">RhumbLineAux</a>.</em>    </li>\n    <li class=\"private\"> <strong class=\"uidlink\"><a href=\"pygeodesy.rhumb.bases-module.html\" onclick=\"show_private();\">pygeodesy.rhumb.bases</a></strong>: <em class=\"summary\">(INTERNAL) base classes <code>RhumbBase</code> and \n        <code>RhumbLineBase</code>, pure Python version of <i>Karney</i>'s \n        C++ classes <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Rhumb.html\"\n        target=\"_top\">Rhumb</a> and <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1RhumbLine.html\"\n        target=\"_top\">RhumbLine</a> from <i>GeographicLib versions 2.0</i> \n        and <i>2.2</i> and <i>Karney</i>'s C++ example <a \n        href=\"https://SourceForge.net/p/geographiclib/discussion/1026620/thread/2ddc295e/\"\n        target=\"_top\">Rhumb intersect</a>.</em>    </li>\n    <li class=\"private\"> <strong class=\"uidlink\"><a href=\"pygeodesy.rhumb.ekx-module.html\" onclick=\"show_private();\">pygeodesy.rhumb.ekx</a></strong>: <em class=\"summary\">A pure Python version of <i>Karney</i>'s <i>elliptic functions</i>,\n        <i>Kr&#252;ger series expansion</i>, C++ classes <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Rhumb.html\"\n        target=\"_top\">Rhumb</a> and and <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1RhumbLine.html\"\n        target=\"_top\">RhumbLine</a> from <i>GeographicLib version 2.0</i>, \n        kept for backward compatibility.</em>    </li>\n    <li class=\"private\"> <strong class=\"uidlink\"><a href=\"pygeodesy.rhumb.solve-module.html\" onclick=\"show_private();\">pygeodesy.rhumb.solve</a></strong>: <em class=\"summary\">Wrapper to invoke <i>Karney</i>'s <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/RhumbSolve.1.html\"\n        target=\"_top\">RhumbSolve</a> utility as an (exact) rhumb or rhumb \n        line from <i>either GeographicLib 2.0 or 2.2+</i>.</em>    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.simplify-module.html\">pygeodesy.simplify</a></strong>: <em class=\"summary\">Simplify or linearize a path of <code>LatLon</code> points.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.solveBase-module.html\">pygeodesy.solveBase</a></strong>: <em class=\"summary\">(INTERNAL) Private base classes for <a \n        href=\"pygeodesy.geodsolve-module.html\" \n        class=\"link\">pygeodesy.geodsolve</a> and <a \n        href=\"pygeodesy.rhumb.solve-module.html\" class=\"link\" \n        onclick=\"show_private();\">pygeodesy.rhumb.solve</a>.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.sphericalBase-module.html\">pygeodesy.sphericalBase</a></strong>: <em class=\"summary\">(INTERNAL) Private spherical base classes \n        <code>CartesianSphericalBase</code> and \n        <code>LatLonSphericalBase</code> for <a \n        href=\"pygeodesy.sphericalNvector-module.html\" \n        class=\"link\">sphericalNvector</a> and <a \n        href=\"pygeodesy.sphericalTrigonometry-module.html\" \n        class=\"link\">sphericalTrigonometry</a>.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.sphericalNvector-module.html\">pygeodesy.sphericalNvector</a></strong>: <em class=\"summary\">Spherical, <code>N-vector</code>-based geodesy.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.sphericalTrigonometry-module.html\">pygeodesy.sphericalTrigonometry</a></strong>: <em class=\"summary\">Spherical, <code>trigonometry</code>-based geodesy.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.streprs-module.html\">pygeodesy.streprs</a></strong>: <em class=\"summary\">Floating point and other formatting utilities.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.trf-module.html\">pygeodesy.trf</a></strong>: <em class=\"summary\"><i>Veness</i>' Terrestrial Reference Frames (TRF), classes <a \n        href=\"pygeodesy.trf.RefFrame-class.html\" class=\"link\">RefFrame</a>,\n        registry <a href=\"pygeodesy.trf-module.html#RefFrames\" \n        class=\"link\">RefFrames</a> and <a \n        href=\"pygeodesy.errors.TRFError-class.html\" \n        class=\"link\">TRFError</a>.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.triaxials-module.html\">pygeodesy.triaxials</a></strong>: <em class=\"summary\">Package of lazily imported modules <a \n        href=\"pygeodesy.triaxials.conformal3-module.html\" class=\"link\" \n        onclick=\"show_private();\">triaxials.conformal3</a>, <a \n        href=\"pygeodesy.triaxials.triaxial3-module.html\" class=\"link\" \n        onclick=\"show_private();\">triaxials.triaxial3</a> and <a \n        href=\"pygeodesy.triaxials.triaxial5-module.html\" class=\"link\" \n        onclick=\"show_private();\">triaxials.triaxial5</a> for triaxial \n        ellipsoids.</em>\n    <ul>\n    <li class=\"private\"> <strong class=\"uidlink\"><a href=\"pygeodesy.triaxials.bases-module.html\" onclick=\"show_private();\">pygeodesy.triaxials.bases</a></strong>: <em class=\"summary\">(INTERNAL) Base classes for <i>ordered</i> triaxial ellipsoid \n        classes <a \n        href=\"pygeodesy.triaxials.triaxial5.Conformal-class.html\" \n        class=\"link\">Conformal</a>, <a \n        href=\"pygeodesy.triaxials.conformal3.Conformal3-class.html\" \n        class=\"link\">Conformal3</a>, <a \n        href=\"pygeodesy.triaxials.triaxial5.Triaxial-class.html\" \n        class=\"link\">Triaxial</a>, <a \n        href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html\" \n        class=\"link\">Triaxial3</a> and <i>unordered</i> <a \n        href=\"pygeodesy.triaxials.triaxial5.Triaxial_-class.html\" \n        class=\"link\">Triaxial_</a>.</em>    </li>\n    <li class=\"private\"> <strong class=\"uidlink\"><a href=\"pygeodesy.triaxials.conformal3-module.html\" onclick=\"show_private();\">pygeodesy.triaxials.conformal3</a></strong>: <em class=\"summary\"><i>Jacobi Conformal projection</i> classes <a \n        href=\"pygeodesy.triaxials.conformal3.Conformal3-class.html\" \n        class=\"link\">Conformal3</a>, <a \n        href=\"pygeodesy.triaxials.conformal3.Conformal3B-class.html\" \n        class=\"link\">Conformal3B</a> and <a \n        href=\"pygeodesy.triaxials.conformal3.Conformal3Sphere-class.html\" \n        class=\"link\">Conformal3Sphere</a> on triaxial ellipsoids and \n        spheres using <a href=\"pygeodesy.angles.Ang-class.html\" \n        class=\"link\">Ang</a>, <a href=\"pygeodesy.angles-module.html#Deg\" \n        class=\"link\">Deg</a>, <a href=\"pygeodesy.angles-module.html#Rad\" \n        class=\"link\">Rad</a> lat-, longitude, heading and meridian \n        (convergence) angles.</em>    </li>\n    <li class=\"private\"> <strong class=\"uidlink\"><a href=\"pygeodesy.triaxials.triaxial3-module.html\" onclick=\"show_private();\">pygeodesy.triaxials.triaxial3</a></strong>: <em class=\"summary\"><i>Ordered</i> triaxial ellipsoid classes <a \n        href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html\" \n        class=\"link\">Triaxial3</a> and <a \n        href=\"pygeodesy.triaxials.triaxial3.Triaxial3B-class.html\" \n        class=\"link\">Triaxial3B</a> for conversion between variuos \n        lat-/longitudal and cartesian coordinates on a triaxial ellipsoid \n        using <a href=\"pygeodesy.angles.Ang-class.html\" \n        class=\"link\">Ang</a>, <a href=\"pygeodesy.angles-module.html#Deg\" \n        class=\"link\">Deg</a>, <a href=\"pygeodesy.angles-module.html#Rad\" \n        class=\"link\">Rad</a> lat-, longitude and heading angles.</em>    </li>\n    <li class=\"private\"> <strong class=\"uidlink\"><a href=\"pygeodesy.triaxials.triaxial5-module.html\" onclick=\"show_private();\">pygeodesy.triaxials.triaxial5</a></strong>: <em class=\"summary\">Triaxal ellipsoid classes <a \n        href=\"pygeodesy.triaxials.triaxial5.Triaxial-class.html\" \n        class=\"link\">Triaxial</a> and <i>unordered</i> <a \n        href=\"pygeodesy.triaxials.triaxial5.Triaxial_-class.html\" \n        class=\"link\">Triaxial_</a> and Jacobi conformal projections <a \n        href=\"pygeodesy.triaxials.triaxial5.Conformal-class.html\" \n        class=\"link\">Conformal</a> and <a \n        href=\"pygeodesy.triaxials.triaxial5.ConformalSphere-class.html\" \n        class=\"link\">ConformalSphere</a>, transcoded from <i>Karney</i>'s \n        GeographicLib 2.5.2 C++ class <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1JacobiConformal.html#details\"\n        target=\"_top\">JacobiConformal</a> to pure Python and miscellaneous \n        classes <a \n        href=\"pygeodesy.triaxials.triaxial5.BetaOmega2Tuple-class.html\" \n        class=\"link\">BetaOmega2Tuple</a>, <a \n        href=\"pygeodesy.triaxials.triaxial5.BetaOmega3Tuple-class.html\" \n        class=\"link\">BetaOmega3Tuple</a> and <a \n        href=\"pygeodesy.triaxials.triaxial5.Conformal2Tuple-class.html\" \n        class=\"link\">Conformal2Tuple</a>, <i>all kept for backward \n        copability</i>.</em>    </li>\n    </ul>\n    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.units-module.html\">pygeodesy.units</a></strong>: <em class=\"summary\">Various named units, all sub-classes of <code>Float</code>, \n        <code>Int</code> or <code>Str</code> from basic <code>float</code>,\n        <code>int</code> respectively <code>str</code> to named units as <a\n        href=\"pygeodesy.units.Degrees-class.html\" class=\"link\">Degrees</a>,\n        <a href=\"pygeodesy.units.Feet-class.html\" class=\"link\">Feet</a>, <a\n        href=\"pygeodesy.units.Meter-class.html\" class=\"link\">Meter</a>, <a \n        href=\"pygeodesy.units.Radians-class.html\" class=\"link\">Radians</a>,\n        etc.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.unitsBase-module.html\">pygeodesy.unitsBase</a></strong>: <em class=\"summary\">Basic <code>Float</code>, <code>Int</code> and <code>Str</code>ing \n        units classes.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.ups-module.html\">pygeodesy.ups</a></strong>: <em class=\"summary\"><i>Karney</i>'s Universal Polar Stereographic (UPS) projection.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.utily-module.html\">pygeodesy.utily</a></strong>: <em class=\"summary\">Various utility functions.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.utm-module.html\">pygeodesy.utm</a></strong>: <em class=\"summary\"><i>Veness</i>' Universal Transverse Mercator (UTM) projection.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.utmups-module.html\">pygeodesy.utmups</a></strong>: <em class=\"summary\"><i>Karney</i>'s UTM and UPS utilities.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.utmupsBase-module.html\">pygeodesy.utmupsBase</a></strong>: <em class=\"summary\">(INTERNAL) Private class <code>UtmUpsBase</code>, functions and \n        constants for modules <a href=\"pygeodesy.epsg-module.html\" \n        class=\"link\">epsg</a>, <a href=\"pygeodesy.etm-module.html\" \n        class=\"link\">etm</a>, <a href=\"pygeodesy.mgrs-module.html\" \n        class=\"link\">mgrs</a>, <a href=\"pygeodesy.ups-module.html\" \n        class=\"link\">ups</a> and <a href=\"pygeodesy.utm-module.html\" \n        class=\"link\">utm</a>.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.vector2d-module.html\">pygeodesy.vector2d</a></strong>: <em class=\"summary\">2- or 3-D vectorial functions <a \n        href=\"pygeodesy.vector2d-module.html#circin6\" \n        class=\"link\">circin6</a>, <a \n        href=\"pygeodesy.vector2d-module.html#circum3\" \n        class=\"link\">circum3</a>, <a \n        href=\"pygeodesy.vector2d-module.html#circum4_\" \n        class=\"link\">circum4_</a>, <a \n        href=\"pygeodesy.vector3d-module.html#iscolinearWith\" \n        class=\"link\">iscolinearWith</a>, <a \n        href=\"pygeodesy.vector2d-module.html#meeus2\" \n        class=\"link\">meeus2</a>, <a \n        href=\"pygeodesy.vector2d-module.html#radii11\" \n        class=\"link\">radii11</a>, <a \n        href=\"pygeodesy.vector2d-module.html#soddy4\" \n        class=\"link\">soddy4</a>, <a \n        href=\"pygeodesy.vector2d-module.html#triaxum5\" \n        class=\"link\">triaxum5</a> and <a \n        href=\"pygeodesy.vector2d-module.html#trilaterate2d2\" \n        class=\"link\">trilaterate2d2</a>.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.vector3d-module.html\">pygeodesy.vector3d</a></strong>: <em class=\"summary\">Extended 3-D vector class <a \n        href=\"pygeodesy.vector3d.Vector3d-class.html\" \n        class=\"link\">Vector3d</a> and functions.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.vector3dBase-module.html\">pygeodesy.vector3dBase</a></strong>: <em class=\"summary\">(INTERNAL) Private, 3-D vector base class \n        <code>Vector3dBase</code>.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.webmercator-module.html\">pygeodesy.webmercator</a></strong>: <em class=\"summary\">Web Mercator (WM) projection.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.wgrs-module.html\">pygeodesy.wgrs</a></strong>: <em class=\"summary\">World Geographic Reference System (WGRS) en-/decoding, aka GEOREF.</em>    </li>\n  </ul></td></tr>\n</table>\n\n<br />\n<!-- ==================== CLASSES ==================== -->\n<a name=\"section-Classes\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Classes</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.named.ADict-class.html\" class=\"summary-name\">ADict</a><br />\n      A <code>dict</code> with both key <i>and</i> attribute access to \n        the <code>dict</code> items.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltpTuples.Aer-class.html\" class=\"summary-name\">Aer</a><br />\n      Local <code>Azimuth-Elevation-Range</code> (AER) in a <i>local \n        tangent plane</i>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltpTuples.Aer4Tuple-class.html\" class=\"summary-name\">Aer4Tuple</a><br />\n      4-Tuple <code>(azimuth, elevation, slantrange, ltp)</code>, all in \n        <code>meter</code> except <code>ltp</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.albers.Albers7Tuple-class.html\" class=\"summary-name\">Albers7Tuple</a><br />\n      7-Tuple <code>(x, y, lat, lon, gamma, scale, datum)</code>, in \n        <code>meter</code>, <code>meter</code>, <code>degrees90</code>, \n        <code>degrees180</code>, <code>degrees360</code>, \n        <code>scalar</code> and <code>Datum</code> where <code>(x, \n        y)</code> is the projected, <code>(lat, lon)</code> the geodetic \n        location, <code>gamma</code> the meridian convergence at point, the\n        bearing of the y-axis measured clockwise from true North and \n        <code>scale</code> is the azimuthal scale of the projection at \n        point.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.albers.AlbersEqualArea-class.html\" class=\"summary-name\">AlbersEqualArea</a><br />\n      An Albers equal-area (authalic) projection with a single standard \n        parallel.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.albers.AlbersEqualArea2-class.html\" class=\"summary-name\">AlbersEqualArea2</a><br />\n      An Albers equal-area (authalic) projection with two standard \n        parallels.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.albers.AlbersEqualArea4-class.html\" class=\"summary-name\">AlbersEqualArea4</a><br />\n      An Albers equal-area (authalic) projection specified by the \n        <code>sin</code> and <code>cos</code> of both standard parallels.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.albers.AlbersEqualAreaCylindrical-class.html\" class=\"summary-name\">AlbersEqualAreaCylindrical</a><br />\n      An <a href=\"pygeodesy.albers.AlbersEqualArea-class.html\" \n        class=\"link\">AlbersEqualArea</a> projection at <code>lat=0</code> \n        and <code>k0=1</code> degenerating to the cylindrical-equal-area \n        projection.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.albers.AlbersEqualAreaNorth-class.html\" class=\"summary-name\">AlbersEqualAreaNorth</a><br />\n      An azimuthal <a href=\"pygeodesy.albers.AlbersEqualArea-class.html\" \n        class=\"link\">AlbersEqualArea</a> projection at <code>lat=90</code> \n        and <code>k0=1</code> degenerating to the <a \n        href=\"pygeodesy.azimuthal-module.html\" class=\"link\">azimuthal</a> \n        <a href=\"pygeodesy.azimuthal.LambertEqualArea-class.html\" \n        class=\"link\">LambertEqualArea</a> projection.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.albers.AlbersEqualAreaSouth-class.html\" class=\"summary-name\">AlbersEqualAreaSouth</a><br />\n      An azimuthal <a href=\"pygeodesy.albers.AlbersEqualArea-class.html\" \n        class=\"link\">AlbersEqualArea</a> projection at <code>lat=-90</code>\n        and <code>k0=1</code> degenerating to the <a \n        href=\"pygeodesy.azimuthal-module.html\" class=\"link\">azimuthal</a> \n        <a href=\"pygeodesy.azimuthal.LambertEqualArea-class.html\" \n        class=\"link\">LambertEqualArea</a> projection.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.albers.AlbersError-class.html\" class=\"summary-name\">AlbersError</a><br />\n      An <a href=\"pygeodesy.albers.AlbersEqualArea-class.html\" \n        class=\"link\">AlbersEqualArea</a>, <a \n        href=\"pygeodesy.albers.AlbersEqualArea2-class.html\" \n        class=\"link\">AlbersEqualArea2</a>, <a \n        href=\"pygeodesy.albers.AlbersEqualArea4-class.html\" \n        class=\"link\">AlbersEqualArea4</a>, <a \n        href=\"pygeodesy.albers.AlbersEqualAreaCylindrical-class.html\" \n        class=\"link\">AlbersEqualAreaCylindrical</a>, <a \n        href=\"pygeodesy.albers.AlbersEqualAreaNorth-class.html\" \n        class=\"link\">AlbersEqualAreaNorth</a>, <a \n        href=\"pygeodesy.albers.AlbersEqualAreaSouth-class.html\" \n        class=\"link\">AlbersEqualAreaSouth</a> or <a \n        href=\"pygeodesy.albers.Albers7Tuple-class.html\" \n        class=\"link\">Albers7Tuple</a> issue.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.angles.Ang-class.html\" class=\"summary-name\">Ang</a><br />\n      An accurate representation of angles, as 3-tuple <code>(s, c, \n        n)</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.karney.Area3Tuple-class.html\" class=\"summary-name\">Area3Tuple</a><br />\n      3-Tuple <code>(number, perimeter, area)</code> with the \n        <code>number</code> of points of the polygon or polyline, the \n        <code>perimeter</code> in <code>meter</code> and the \n        <code>area</code> in <code>meter</code> <i>squared</i>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltp.Attitude-class.html\" class=\"summary-name\">Attitude</a><br />\n      The pose of a plane or camera in space.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltpTuples.Attitude4Tuple-class.html\" class=\"summary-name\">Attitude4Tuple</a><br />\n      4-Tuple <code>(alt, tilt, yaw, roll)</code> with \n        <code>altitude</code> in (positive) <code>meter</code> and \n        <code>tilt</code>, <code>yaw</code> and <code>roll</code> in \n        <code>degrees</code> representing the attitude of a plane or \n        camera.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltp.AttitudeError-class.html\" class=\"summary-name\">AttitudeError</a><br />\n      An <a href=\"pygeodesy.ltp.Attitude-class.html\" \n        class=\"link\">Attitude</a> or <a \n        href=\"pygeodesy.ltpTuples.Attitude4Tuple-class.html\" \n        class=\"link\">Attitude4Tuple</a> issue.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.errors.AuxError-class.html\" class=\"summary-name\">AuxError</a><br />\n      Error raised for a <a href=\"pygeodesy.rhumb.aux_-module.html\" \n        class=\"link\" onclick=\"show_private();\">rhumb.aux_</a>, \n        <code>Aux</code>, <code>AuxDLat</code> or <code>AuxLat</code> \n        issue.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.units.Azimuth-class.html\" class=\"summary-name\">Azimuth</a><br />\n      Named <code>float</code> representing an azimuth in compass \n        <code>degrees</code> from (true) North.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.azimuthal.Azimuthal7Tuple-class.html\" class=\"summary-name\">Azimuthal7Tuple</a><br />\n      7-Tuple <code>(x, y, lat, lon, azimuth, scale, datum)</code>, in \n        <code>meter</code>, <code>meter</code>, <code>degrees90</code>, \n        <code>degrees180</code>, compass <code>degrees</code>, \n        <code>scalar</code> and <code>Datum</code> where <code>(x, \n        y)</code> is the easting and northing of a projected point, \n        <code>(lat, lon)</code> the geodetic location, <code>azimuth</code>\n        the azimuth, clockwise from true North and <code>scale</code> is \n        the projection scale, either <code>1 / reciprocal</code> or \n        <code>1</code> or <code>-1</code> in the <a \n        href=\"pygeodesy.azimuthal.Equidistant-class.html\" \n        class=\"link\">Equidistant</a> case.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.azimuthal.AzimuthalError-class.html\" class=\"summary-name\">AzimuthalError</a><br />\n      An azimuthal <a href=\"pygeodesy.azimuthal.Equidistant-class.html\" \n        class=\"link\">Equidistant</a>, <a \n        href=\"pygeodesy.azimuthal.EquidistantKarney-class.html\" \n        class=\"link\">EquidistantKarney</a>, <a \n        href=\"pygeodesy.azimuthal.Gnomonic-class.html\" \n        class=\"link\">Gnomonic</a>, <a \n        href=\"pygeodesy.azimuthal.LambertEqualArea-class.html\" \n        class=\"link\">LambertEqualArea</a>, <a \n        href=\"pygeodesy.azimuthal.Orthographic-class.html\" \n        class=\"link\">Orthographic</a>, <a \n        href=\"pygeodesy.azimuthal.Stereographic-class.html\" \n        class=\"link\">Stereographic</a> or <a \n        href=\"pygeodesy.azimuthal.Azimuthal7Tuple-class.html\" \n        class=\"link\">Azimuthal7Tuple</a> issue.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.units.Band-class.html\" class=\"summary-name\">Band</a><br />\n      Named <code>str</code> representing a UTM/UPS band letter, \n        unchecked.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.units.Bearing-class.html\" class=\"summary-name\">Bearing</a><br />\n      Named <code>float</code> representing a bearing in compass \n        <code>degrees</code> from (true) North.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.namedTuples.Bearing2Tuple-class.html\" class=\"summary-name\">Bearing2Tuple</a><br />\n      2-Tuple <code>(initial, final)</code> bearings, both in compass \n        <code>degrees360</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.units.Bearing_-class.html\" class=\"summary-name\">Bearing_</a><br />\n      Named <code>float</code> representing a bearing in \n        <code>radians</code> from compass <code>degrees</code> from (true) \n        North.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.triaxials.triaxial3.BetOmgAlp5Tuple-class.html\" class=\"summary-name\">BetOmgAlp5Tuple</a><br />\n      5-Tuple <code>(bet, omg, alp, h, llk)</code> with \n        <i>ellipsoidal</i> lat- <code>bet</code>, longitude \n        <code>omg</code> and azimuth <code>alp</code>, all in <a \n        href=\"pygeodesy.angles.Ang-class.html\" class=\"link\">Ang</a>les on \n        and height <code>h</code> off the triaxial's surface and kind \n        <code>llk</code> set to <code>LLK.ELLIPSOIDAL</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.triaxials.conformal3.BetOmgGam5Tuple-class.html\" class=\"summary-name\">BetOmgGam5Tuple</a><br />\n      5-Tuple <code>(bet, omg, gam, scale, llk)</code> with \n        <i>ellipsoidal</i> lat- <code>bet</code>, longitude \n        <code>omg</code> and meridian convergence <code>gam</code> all <a \n        href=\"pygeodesy.angles.Ang-class.html\" class=\"link\">Ang</a>les, \n        <code>scale</code> <i>and kind</i> <code>llk</code> <i>set to</i> \n        <code>LLK.CONFORMAL</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.triaxials.triaxial5.BetaOmega2Tuple-class.html\" class=\"summary-name\">BetaOmega2Tuple</a><br />\n      2-Tuple <code>(beta, omega)</code> with <i>ellipsoidal</i> lat- and\n        longitude <code>beta</code> and <code>omega</code> both in <a \n        href=\"pygeodesy.units.Radians-class.html\" class=\"link\">Radians</a> \n        (or <a href=\"pygeodesy.units.Degrees-class.html\" \n        class=\"link\">Degrees</a>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.triaxials.triaxial5.BetaOmega3Tuple-class.html\" class=\"summary-name\">BetaOmega3Tuple</a><br />\n      3-Tuple <code>(beta, omega, height)</code> with <i>ellipsoidal</i> \n        lat- and longitude <code>beta</code> and <code>omega</code> both in\n        <a href=\"pygeodesy.units.Radians-class.html\" \n        class=\"link\">Radians</a> (or <a \n        href=\"pygeodesy.units.Degrees-class.html\" class=\"link\">Degrees</a>)\n        and the <a href=pygeodesy.heights-module.html><code>height</code></a>, rather the (signed) <i>distance</i> to\n        the triaxial's surface (measured along the radial line to the \n        triaxial's center) in <code>meter</code>, conventionally.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.units.Bool-class.html\" class=\"summary-name\">Bool</a><br />\n      Named <code>bool</code>, a sub-class of <code>int</code> like \n        Python's <code>bool</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.booleans.BooleanFHP-class.html\" class=\"summary-name\">BooleanFHP</a><br />\n      <i>Composite</i> class providing <i>boolean</i> operations between \n        two <i>composites</i> using <a \n        href=\"https://www.ScienceDirect.com/science/article/pii/S259014861930007X\"\n        target=\"_top\">Forster-Hormann-Popa</a>'s C++ implementation, \n        transcoded to pure Python.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.booleans.BooleanGH-class.html\" class=\"summary-name\">BooleanGH</a><br />\n      <i>Composite</i> class providing <i>boolean</i> operations between \n        two <i>composites</i> using the <a \n        href=\"http://www.Inf.USI.CH/hormann/papers/Greiner.1998.ECO.pdf\" \n        target=\"_top\">Greiner-Hormann</a> algorithm, extended.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.namedTuples.Bounds2Tuple-class.html\" class=\"summary-name\">Bounds2Tuple</a><br />\n      2-Tuple <code>(latlonSW, latlonNE)</code> with the bounds' \n        lower-left and upper-right corner as <code>LatLon</code> instance.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.namedTuples.Bounds4Tuple-class.html\" class=\"summary-name\">Bounds4Tuple</a><br />\n      4-Tuple <code>(latS, lonW, latN, lonE)</code> with the bounds' \n        lower-left <code>(LatS, LowW)</code> and upper-right <code>(latN, \n        lonE)</code> corner lat- and longitudes.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.css.CSSError-class.html\" class=\"summary-name\">CSSError</a><br />\n      Cassini-Soldner (CSS) conversion or other <a \n        href=\"pygeodesy.css.Css-class.html\" class=\"link\">Css</a> issue.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.karney.Caps-class.html\" class=\"summary-name\">Caps</a><br />\n      <i>Enum</i>-style masks to be bit-<code>or</code>'ed to specify \n        <code>geodesic</code>, <code>rhumb</code> or <code>-lines</code> \n        capabilities (<code>caps</code>) and method results \n        (<code>outmask</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.triaxials.triaxial3.Cartesian5Tuple-class.html\" class=\"summary-name\">Cartesian5Tuple</a><br />\n      5-Tuple <code>(x, y, z, h, llk)</code> with <i>cartesian</i> \n        <code>x</code>, <code>y</code> and <code>z</code> coordinates on \n        and height <code>h</code> above or below the triaxial's surface and\n        kind <code>llk</code> set to the original <code>LLK</code> or \n        <code>None</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.css.CassiniSoldner-class.html\" class=\"summary-name\">CassiniSoldner</a><br />\n      Cassini-Soldner projection, a Python version of <i>Karney</i>'s C++\n        class <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1CassiniSoldner.html\"\n        target=\"_top\">CassiniSoldner</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltp.ChLV-class.html\" class=\"summary-name\">ChLV</a><br />\n      Conversion between <i>WGS84 geodetic</i> and <i>Swiss</i> \n        projection coordinates using <a \n        href=\"pygeodesy.ecef.EcefKarney-class.html\" \n        class=\"link\">pygeodesy.EcefKarney</a>'s Earth-Centered, Earth-Fixed\n        (ECEF) methods.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltpTuples.ChLV9Tuple-class.html\" class=\"summary-name\">ChLV9Tuple</a><br />\n      9-Tuple <code>(Y, X, h_, lat, lon, height, ltp, ecef, M)</code> \n        with <i><b>unfalsed</b> Swiss (Y, X, h_)</i> coordinates and \n        height, all in <code>meter</code>, <code>ltp</code> either a <a \n        href=\"pygeodesy.ltp.ChLV-class.html\" class=\"link\">ChLV</a>, <a \n        href=\"pygeodesy.ltp.ChLVa-class.html\" class=\"link\">ChLVa</a> or <a \n        href=\"pygeodesy.ltp.ChLVe-class.html\" class=\"link\">ChLVe</a> \n        instance and <code>ecef</code> (<a \n        href=\"pygeodesy.ecef.EcefKarney-class.html\" \n        class=\"link\">EcefKarney</a> <i>at Bern, Ch</i>), otherwise like <a \n        href=\"pygeodesy.ltpTuples.Local9Tuple-class.html\" \n        class=\"link\">Local9Tuple</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltpTuples.ChLVEN2Tuple-class.html\" class=\"summary-name\">ChLVEN2Tuple</a><br />\n      2-Tuple <code>(E_LV95, N_LV95)</code> with <b>falsed</b> <i>Swiss \n        LV95</i> easting and norting in <code>meter (2_600_000, \n        1_200_000)</code> and origin at <code>Bern, Ch</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltpTuples.ChLVYX2Tuple-class.html\" class=\"summary-name\">ChLVYX2Tuple</a><br />\n      2-Tuple <code>(Y, X)</code> with <b>unfalsed</b> <i>Swiss LV95</i> \n        easting and norting in <code>meter</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltp.ChLVa-class.html\" class=\"summary-name\">ChLVa</a><br />\n      Conversion between <i>WGS84 geodetic</i> and <i>Swiss</i> \n        projection coordinates using the <a \n        href=\"https://www.SwissTopo.admin.CH/en/maps-data-online/calculation-services.html\"\n        target=\"_top\">Approximate</a> formulas, page 13.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltp.ChLVe-class.html\" class=\"summary-name\">ChLVe</a><br />\n      Conversion between <i>WGS84 geodetic</i> and <i>Swiss</i> \n        projection coordinates using the <a \n        href=\"https://www.SwissTopo.admin.CH/en/maps-data-online/calculation-services.html\"\n        target=\"_top\">Ellipsoidal approximate</a> formulas, pp 10-11 and <a\n        \n        href=\"https://eMuseum.GGGS.CH/literatur-lv/liste-Dateien/1967_Bolliger_a.pdf\"\n        target=\"_top\">Bolliger, J.</a> pp 148-151 (also <a \n        href=\"https://eMuseum.GGGS.CH/literatur-lv/liste.htm\" \n        target=\"_top\">GGGS</a>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltpTuples.ChLVyx2Tuple-class.html\" class=\"summary-name\">ChLVyx2Tuple</a><br />\n      2-Tuple <code>(y_LV03, x_LV03)</code> with <b>falsed</b> <i>Swiss \n        LV03</i> easting and norting in <code>meter (600_000, \n        200_000)</code> and origin at <code>Bern, Ch</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.vector2d.Circin6Tuple-class.html\" class=\"summary-name\">Circin6Tuple</a><br />\n      6-Tuple <code>(radius, center, deltas, cA, cB, cC)</code> with the \n        <code>radius</code>, the trilaterated <code>center</code> and \n        contact points of the <i>inscribed</i> aka <i>In- circle</i> of a \n        triangle.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.namedTuples.Circle4Tuple-class.html\" class=\"summary-name\">Circle4Tuple</a><br />\n      4-Tuple <code>(radius, height, lat, beta)</code> with the \n        <code>radius</code> and <a href=pygeodesy.heights-module.html><code>height</code></a> of a parallel <i>circle\n        of latitude</i> at (geodetic) latitude <code>lat</code> and \n        <i>parametric (or reduced) auxiliary latitude</i> <code>beta</code>\n        on a <i>biaxial ellipsoid</i>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.vector2d.Circum3Tuple-class.html\" class=\"summary-name\">Circum3Tuple</a><br />\n      3-Tuple <code>(radius, center, deltas)</code> with the \n        <code>circumradius</code> and trilaterated \n        <code>circumcenter</code> of the <code>circumcircle</code> through \n        3 points (aka {Meeus}' Type II circle) or the <code>radius</code> \n        and <code>center</code> of the smallest <i>Meeus</i>' Type I \n        circle.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.vector2d.Circum4Tuple-class.html\" class=\"summary-name\">Circum4Tuple</a><br />\n      4-Tuple <code>(radius, center, rank, residuals)</code> with \n        <code>radius</code> and <code>center</code> of a sphere \n        <i>least-squares</i> fitted through given points and the \n        <code>rank</code> and <code>residuals</code> -if any- from <a \n        href=\"https://NumPy.org/doc/stable/reference/generated/numpy.linalg.lstsq.html\"\n        target=\"_top\">numpy.linalg.lstsq</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.deprecated.classes.ClipCS3Tuple-class.html\" class=\"summary-name\">ClipCS3Tuple</a><br />\n      DEPRECATED, see <i>DEPRECATED</i> function <a \n        href=\"pygeodesy.deprecated.functions-module.html#clipCS3\" \n        class=\"link\">pygeodesy.deprecated.clipCS3</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.clipy.ClipCS4Tuple-class.html\" class=\"summary-name\">ClipCS4Tuple</a><br />\n      4-Tuple <code>(start, end, i, j)</code> for each edge of a \n        <i>clipped</i> path with the <code>start</code> and \n        <code>end</code> points (<code>LatLon</code>) of the portion of the\n        edge inside or on the clip box and the indices <code>i</code> and \n        <code>j</code> (<code>int</code>) of the edge start and end points \n        in the original path.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.errors.ClipError-class.html\" class=\"summary-name\">ClipError</a><br />\n      Clip box or clip region issue.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.clipy.ClipFHP4Tuple-class.html\" class=\"summary-name\">ClipFHP4Tuple</a><br />\n      4-Tuple <code>(lat, lon, height, clipid)</code> for each point of \n        the <a href=\"pygeodesy.clipy-module.html#clipFHP4\" \n        class=\"link\">clipFHP4</a> result with the <code>lat</code>-, \n        <code>lon</code>gitude, <a href=pygeodesy.heights-module.html><code>height</code></a> and <code>clipid</code>\n        of the polygon or clip.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.clipy.ClipGH4Tuple-class.html\" class=\"summary-name\">ClipGH4Tuple</a><br />\n      4-Tuple <code>(lat, lon, height, clipid)</code> for each point of \n        the <a href=\"pygeodesy.clipy-module.html#clipGH4\" \n        class=\"link\">clipGH4</a> result with the <code>lat</code>-, \n        <code>lon</code>gitude, <a href=pygeodesy.heights-module.html><code>height</code></a> and <code>clipid</code>\n        of the polygon or clip.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.clipy.ClipLB6Tuple-class.html\" class=\"summary-name\">ClipLB6Tuple</a><br />\n      6-Tuple <code>(start, end, i, fi, fj, j)</code> for each edge of \n        the <i>clipped</i> path with the <code>start</code> and \n        <code>end</code> points (<code>LatLon</code>) of the portion of the\n        edge inside or on the clip box, indices <code>i</code> and \n        <code>j</code> (both <code>int</code>) of the original path edge \n        start and end points and <i>fractional</i> indices <code>fi</code> \n        and <code>fj</code> (both <a href=\"pygeodesy.units.FIx-class.html\" \n        class=\"link\">FIx</a>) of the <code>start</code> and \n        <code>end</code> points along the edge of the original path.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.clipy.ClipSH3Tuple-class.html\" class=\"summary-name\">ClipSH3Tuple</a><br />\n      3-Tuple <code>(start, end, original)</code> for each edge of a \n        <i>clipped</i> polygon, the <code>start</code> and <code>end</code>\n        points (<code>LatLon</code>) of the portion of the edge inside or \n        on the clip region and <code>original</code> indicates whether the \n        edge is part of the original polygon or part of the clip region \n        (<code>bool</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.resections.Collins5Tuple-class.html\" class=\"summary-name\">Collins5Tuple</a><br />\n      5-Tuple <code>(pointP, pointH, a, b, c)</code> with survey \n        <code>pointP</code>, auxiliary <code>pointH</code>, each an \n        instance of <b><code>pointA</code></b>'s (sub-)class and triangle \n        sides <code>a</code>, <code>b</code> and <code>c</code> in \n        <code>meter</code>, conventionally.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.triaxials.triaxial5.Conformal-class.html\" class=\"summary-name\">Conformal</a><br />\n      This is a <i>Jacobi Conformal</i> projection of a triaxial \n        ellipsoid to a plane where the <code>X</code> and <code>Y</code> \n        grid lines are straight.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.triaxials.triaxial5.Conformal2Tuple-class.html\" class=\"summary-name\">Conformal2Tuple</a><br />\n      2-Tuple <code>(x, y)</code> with a <i>Jacobi Conformal</i> \n        <code>x</code> and <code>y</code> projection, both in <a \n        href=\"pygeodesy.units.Radians-class.html\" class=\"link\">Radians</a> \n        (or <a href=\"pygeodesy.units.Degrees-class.html\" \n        class=\"link\">Degrees</a>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.triaxials.conformal3.Conformal3-class.html\" class=\"summary-name\">Conformal3</a><br />\n      <i>Jacobi Conformal</i> projection of triaxial ellipsoid using \n        class <a href=\"pygeodesy.angles.Ang-class.html\" \n        class=\"link\">Ang</a> lat- and longitudes.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.triaxials.conformal3.Conformal3B-class.html\" class=\"summary-name\">Conformal3B</a><br />\n      <i>Jacobi Conformal projection</i> on a triaxial ellipsoid \n        specified by its middle semi-axis and shape.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.triaxials.conformal3.Conformal3Sphere-class.html\" class=\"summary-name\">Conformal3Sphere</a><br />\n      <i>Jacobi Conformal projection</i> on a <i>spherical</i> triaxial.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.triaxials.bases.Conformal5Tuple-class.html\" class=\"summary-name\">Conformal5Tuple</a><br />\n      5-Tuple <code>(x, y, z, scale, llk)</code> with the easting \n        <code>x</code> and northing <code>y</code> projection, \n        <code>scale</code> or <code>NAN</code> <i>but with</i> \n        <code>z=INT0</code> <i>and kind</i> <code>llk=LLK.CONFORMAL</code> \n        <i>always</i>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.triaxials.triaxial5.ConformalSphere-class.html\" class=\"summary-name\">ConformalSphere</a><br />\n      Alternate, <i>Jacobi Conformal projection</i> on a <i>spherical</i>\n        triaxial.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.lcc.Conic-class.html\" class=\"summary-name\">Conic</a><br />\n      Lambert conformal conic projection (1- or 2-SP).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.errors.CrossError-class.html\" class=\"summary-name\">CrossError</a><br />\n      Error raised for zero or near-zero vectorial cross products, \n        occurring for coincident or colinear points, lines or bearings.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.css.Css-class.html\" class=\"summary-name\">Css</a><br />\n      Cassini-Soldner East-/Northing location.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoids.Curvature2Tuple-class.html\" class=\"summary-name\">Curvature2Tuple</a><br />\n      2-Tuple <code>(meridional, prime_vertical)</code> of radii of \n        curvature, both in <code>meter</code>, conventionally.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.datums.Datum-class.html\" class=\"summary-name\">Datum</a><br />\n      Ellipsoid and transform parameters for an earth model.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.units.Degrees-class.html\" class=\"summary-name\">Degrees</a><br />\n      Named <code>float</code> representing a coordinate in \n        <code>degrees</code>, optionally clipped.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.units.Degrees2-class.html\" class=\"summary-name\">Degrees2</a><br />\n      Named <code>float</code> representing a distance in <code>degrees \n        squared</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.units.Degrees_-class.html\" class=\"summary-name\">Degrees_</a><br />\n      Named <code>Degrees</code> representing a coordinate in \n        <code>degrees</code> with optional limits <code>low</code> and \n        <code>high</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.props.DeprecationWarnings-class.html\" class=\"summary-name\">DeprecationWarnings</a><br />\n      (INTERNAL) Handle <code>DeprecationWaring</code>s.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.namedTuples.Destination2Tuple-class.html\" class=\"summary-name\">Destination2Tuple</a><br />\n      2-Tuple <code>(destination, final)</code>, <code>destination</code>\n        in <code>LatLon</code> and <code>final</code> bearing in compass \n        <code>degrees360</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.namedTuples.Destination3Tuple-class.html\" class=\"summary-name\">Destination3Tuple</a><br />\n      3-Tuple <code>(lat, lon, final)</code>, destination \n        <code>lat</code>, <code>lon</code> in <code>degrees90</code> \n        respectively <code>degrees180</code> and <code>final</code> bearing\n        in compass <code>degrees360</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.karney.Direct9Tuple-class.html\" class=\"summary-name\">Direct9Tuple</a><br />\n      9-Tuple <code>(a12, lat2, lon2, azi2, s12, m12, M12, M21, \n        S12)</code> with arc length <code>a12</code>, angles \n        <code>lat2</code>, <code>lon2</code> and azimuth <code>azi2</code> \n        in <code>degrees</code>, distance <code>s12</code> and reduced \n        length <code>m12</code> in <code>meter</code> and area \n        <code>S12</code> in <code>meter</code> <i>squared</i>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.units.Distance-class.html\" class=\"summary-name\">Distance</a><br />\n      Named <code>float</code> representing a distance, conventionally in\n        <code>meter</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.namedTuples.Distance2Tuple-class.html\" class=\"summary-name\">Distance2Tuple</a><br />\n      2-Tuple <code>(distance, initial)</code>, <code>distance</code> in \n        <code>meter</code> and <code>initial</code> bearing in compass \n        <code>degrees360</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.namedTuples.Distance3Tuple-class.html\" class=\"summary-name\">Distance3Tuple</a><br />\n      3-Tuple <code>(distance, initial, final)</code>, \n        <code>distance</code> in <code>meter</code> and \n        <code>initial</code> and <code>final</code> bearing, both in \n        compass <code>degrees360</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.namedTuples.Distance4Tuple-class.html\" class=\"summary-name\">Distance4Tuple</a><br />\n      4-Tuple <code>(distance2, delta_lat, delta_lon, unroll_lon2)</code>\n        with the distance in <code>degrees squared</code>, the latitudinal \n        <code>delta_lat = <b>lat2</b> - <b>lat1</b></code>, the wrapped, \n        unrolled and adjusted longitudinal <code>delta_lon = <b>lon2</b> - \n        <b>lon1</b></code> and <code>unroll_lon2</code>, the unrolled or \n        original <b><code>lon2</code></b>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.units.Distance_-class.html\" class=\"summary-name\">Distance_</a><br />\n      Named <code>float</code> with optional <code>low</code> and \n        <code>high</code> limits representing a distance, conventionally in\n        <code>meter</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.fsums.DivMod2Tuple-class.html\" class=\"summary-name\">DivMod2Tuple</a><br />\n      2-Tuple <code>(div, mod)</code> with the quotient <code>div</code> \n        and remainder <code>mod</code> results of a <code>divmod</code> \n        operation.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.epsg.EPSGError-class.html\" class=\"summary-name\">EPSGError</a><br />\n      EPSG encode, decode or other <a \n        href=\"pygeodesy.epsg.Epsg-class.html\" class=\"link\">Epsg</a> issue.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.etm.ETMError-class.html\" class=\"summary-name\">ETMError</a><br />\n      Exact Transverse Mercator (ETM) parse, projection or other <a \n        href=\"pygeodesy.etm.Etm-class.html\" class=\"link\">Etm</a> issue or \n        <a href=\"pygeodesy.etm.ExactTransverseMercator-class.html\" \n        class=\"link\">ExactTransverseMercator</a> conversion failure.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.namedTuples.EasNor2Tuple-class.html\" class=\"summary-name\">EasNor2Tuple</a><br />\n      2-Tuple <code>(easting, northing)</code>, both in \n        <code>meter</code>, conventionally.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.namedTuples.EasNor3Tuple-class.html\" class=\"summary-name\">EasNor3Tuple</a><br />\n      3-Tuple <code>(easting, northing, height)</code>, all in \n        <code>meter</code>, conventionally.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.css.EasNorAziRk4Tuple-class.html\" class=\"summary-name\">EasNorAziRk4Tuple</a><br />\n      4-Tuple <code>(easting, northing, azimuth, reciprocal)</code> for \n        the Cassini-Soldner location with <code>easting</code> and \n        <code>northing</code> in <code>meters</code> and the \n        <code>azimuth</code> of easting direction and \n        <code>reciprocal</code> of azimuthal northing scale, both in \n        <code>degrees</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.css.EasNorAziRkEqu6Tuple-class.html\" class=\"summary-name\">EasNorAziRkEqu6Tuple</a><br />\n      6-Tuple <code>(easting, northing, azimuth, reciprocal, equatorarc, \n        equatorazimuth)</code> for the Cassini-Soldner location with \n        <code>easting</code> and <code>northing</code> in \n        <code>meters</code> and the <code>azimuth</code> of easting \n        direction, <code>reciprocal</code> of azimuthal northing scale, \n        <code>equatorarc</code> and <code>equatorazimuth</code>, all in \n        <code>degrees</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.deprecated.classes.EasNorExact4Tuple-class.html\" class=\"summary-name\">EasNorExact4Tuple</a><br />\n      DEPRECATED, use class <a \n        href=\"pygeodesy.namedTuples.Forward4Tuple-class.html\" \n        class=\"link\">Forward4Tuple</a>, item <code>gamma</code> for \n        <code>convergence</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.webmercator.EasNorRadius3Tuple-class.html\" class=\"summary-name\">EasNorRadius3Tuple</a><br />\n      3-Tuple <code>(easting, northing, radius)</code>, all in \n        <code>meter</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.units.Easting-class.html\" class=\"summary-name\">Easting</a><br />\n      Named <code>float</code> representing an easting, conventionally in\n        <code>meter</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ecef.Ecef9Tuple-class.html\" class=\"summary-name\">Ecef9Tuple</a><br />\n      9-Tuple <code>(x, y, z, lat, lon, height, C, M, datum)</code> with \n        <i>geocentric</i> <code>x</code>, <code>y</code> and <code>z</code>\n        plus <i>geodetic</i> <code>lat</code>, <code>lon</code> and \n        <a href=pygeodesy.heights-module.html><code>height</code></a>, case <code>C</code> and optionally, rotation \n        matrix <code>M</code> (<a \n        href=\"pygeodesy.ecef.EcefMatrix-class.html\" \n        class=\"link\">EcefMatrix</a>) and <code>datum</code>, with \n        <code>lat</code> and <code>lon</code> in <code>degrees</code> and \n        <code>x</code>, <code>y</code>, <code>z</code> and \n        <a href=pygeodesy.heights-module.html><code>height</code></a> in <code>meter</code>, conventionally.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ecef.EcefError-class.html\" class=\"summary-name\">EcefError</a><br />\n      An ECEF or <code>Ecef*</code> related issue.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ecef.EcefFarrell21-class.html\" class=\"summary-name\">EcefFarrell21</a><br />\n      Conversion between geodetic and geocentric, <i>Earth-Centered, \n        Earth-Fixed</i> (ECEF) coordinates based on <i>Jay A. Farrell</i>'s\n        <a href=\"https://Books.Google.com/books?id=fW4foWASY6wC\" \n        target=\"_top\">Table 2.1</a>, page 29.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ecef.EcefFarrell22-class.html\" class=\"summary-name\">EcefFarrell22</a><br />\n      Conversion between geodetic and geocentric, <i>Earth-Centered, \n        Earth-Fixed</i> (ECEF) coordinates based on <i>Jay A. Farrell</i>'s\n        <a href=\"https://Books.Google.com/books?id=fW4foWASY6wC\" \n        target=\"_top\">Table 2.2</a>, page 30.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ecef.EcefKarney-class.html\" class=\"summary-name\">EcefKarney</a><br />\n      Conversion between geodetic and geocentric, <i>Earth-Centered, \n        Earth-Fixed</i> (ECEF) coordinates transcoded from <i>Karney</i>'s \n        C++ <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Geocentric.html\"\n        target=\"_top\">Geocentric</a> methods.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ecef.EcefMatrix-class.html\" class=\"summary-name\">EcefMatrix</a><br />\n      A rotation matrix known as <i>East-North-Up (ENU) to ECEF</i>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ecef.EcefSudano-class.html\" class=\"summary-name\">EcefSudano</a><br />\n      Conversion between geodetic and geocentric, <i>Earth-Centered, \n        Earth-Fixed</i> (ECEF) coordinates based on <i>John J. Sudano</i>'s\n        <a href=\"https://www.ResearchGate.net/publication/3709199\" \n        target=\"_top\">paper</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ecef.EcefUPC-class.html\" class=\"summary-name\">EcefUPC</a><br />\n      Conversion between geodetic and geocentric, <i>Earth-Centered, \n        Earth-Fixed</i> (ECEF) coordinates based on <i>UPC</i>'s <a \n        href=\"https://GSSC.ESA.int/navipedia/index.php/Ellipsoidal_and_Cartesian_Coordinates_Conversion\"\n        target=\"_top\">method</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ecef.EcefVeness-class.html\" class=\"summary-name\">EcefVeness</a><br />\n      Conversion between geodetic and geocentric, <i>Earth-Centered, \n        Earth-Fixed</i> (ECEF) coordinates transcoded from <i>Chris \n        Veness</i>' JavaScript classes <a \n        href=\"https://www.Movable-Type.co.UK/scripts/geodesy/docs/latlon-ellipsoidal.js.html\"\n        target=\"_top\">LatLonEllipsoidal, Cartesian</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ecef.EcefYou-class.html\" class=\"summary-name\">EcefYou</a><br />\n      Conversion between geodetic and geocentric, <i>Earth-Centered, \n        Earth-Fixed</i> (ECEF) coordinates using <i>Rey-Jer You</i>'s <a \n        href=\"https://www.ResearchGate.net/publication/240359424\" \n        target=\"_top\">transformation</a> for <i>non-prolate</i> ellipsoids.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.elevations.Elevation2Tuple-class.html\" class=\"summary-name\">Elevation2Tuple</a><br />\n      2-Tuple <code>(elevation, data_source)</code> in <code>meter</code>\n        and <code>str</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.deprecated.consterns.Elliperim-class.html\" class=\"summary-name\">Elliperim</a><br />\n      DEPRECATED on 2026.02.06, use class <a \n        href=\"pygeodesy.ellipses.Ellipse-class.html\" \n        class=\"link\">Ellipse</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipses.Ellipse-class.html\" class=\"summary-name\">Ellipse</a><br />\n      Class to compute various attributes of a 2-D ellipse.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.namedTuples.Ellipse5Tuple-class.html\" class=\"summary-name\">Ellipse5Tuple</a><br />\n      5-Tuple <code>(a, b, height, lat, beta)</code> with semi-axes \n        <code>a</code> and <code>b</code> of a parallel <i>ellipse of \n        latitude</i> at (geodetic) latitude <code>lat</code> and \n        <i>parametric (or reduced) auxiliary latitude</i> <code>beta</code>\n        of a <i>triaxial ellipsoid</i>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipses.EllipseError-class.html\" class=\"summary-name\">EllipseError</a><br />\n      Raised for any <a href=\"pygeodesy.ellipses.Ellipse-class.html\" \n        class=\"link\">Ellipse</a> or <code>ellipses</code> issue.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" class=\"summary-name\">Ellipsoid</a><br />\n      Ellipsoid with <i>equatorial</i> and <i>polar</i> radii, \n        <i>flattening</i>, <i>inverse flattening</i> and other, often used,\n        <i>cached</i> attributes, supporting <i>oblate</i> and \n        <i>prolate</i> ellipsoidal and <i>spherical</i> earth models.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" class=\"summary-name\">Ellipsoid2</a><br />\n      An <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n        class=\"link\">Ellipsoid</a> specified by <i>equatorial</i> radius \n        and <i>flattening</i>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.elliptic.Elliptic-class.html\" class=\"summary-name\">Elliptic</a><br />\n      Elliptic integrals and functions.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.elliptic.Elliptic3Tuple-class.html\" class=\"summary-name\">Elliptic3Tuple</a><br />\n      3-Tuple <code>(sn, cn, dn)</code> all <code>scalar</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.elliptic.EllipticError-class.html\" class=\"summary-name\">EllipticError</a><br />\n      Elliptic function, integral, convergence or other <a \n        href=\"pygeodesy.elliptic.Elliptic-class.html\" \n        class=\"link\">Elliptic</a> issue.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltpTuples.Enu-class.html\" class=\"summary-name\">Enu</a><br />\n      Local <code>Eeast-North-Up</code> (ENU) location in a <i>local \n        tangent plane</i>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltpTuples.Enu4Tuple-class.html\" class=\"summary-name\">Enu4Tuple</a><br />\n      4-Tuple <code>(east, north, up, ltp)</code>, in <code>meter</code> \n        except <code>ltp</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.units.Epoch-class.html\" class=\"summary-name\">Epoch</a><br />\n      Named <code>epoch</code> with optional <code>low</code> and \n        <code>high</code> limits representing a fractional calendar year.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.epsg.Epsg-class.html\" class=\"summary-name\">Epsg</a><br />\n      <a href=\"https://EPSG.org\" target=\"_top\">EPSG</a> class, a named \n        <code>int</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.azimuthal.Equidistant-class.html\" class=\"summary-name\">Equidistant</a><br />\n      Azimuthal equidistant projection for the sphere***, see <a \n        href=\"https://Pubs.USGS.gov/pp/1395/report.pdf\" \n        target=\"_top\">Snyder, pp 195-197</a> and <a \n        href=\"https://MathWorld.Wolfram.com/AzimuthalEquidistantProjection.html\"\n        target=\"_top\">MathWorld-Wolfram</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.azimuthal.EquidistantExact-class.html\" class=\"summary-name\">EquidistantExact</a><br />\n      Azimuthal equidistant projection, a Python version of \n        <i>Karney</i>'s C++ class <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1AzimuthalEquidistant.html\"\n        target=\"_top\">AzimuthalEquidistant</a>, based on exact geodesic \n        classes <a href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html\" \n        class=\"link\">GeodesicExact</a> and <a \n        href=\"pygeodesy.geodesicx.gx.GeodesicLineExact-class.html\" \n        class=\"link\">GeodesicLineExact</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.azimuthal.EquidistantGeodSolve-class.html\" class=\"summary-name\">EquidistantGeodSolve</a><br />\n      Azimuthal equidistant projection, a Python version of \n        <i>Karney</i>'s C++ class <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1AzimuthalEquidistant.html\"\n        target=\"_top\">AzimuthalEquidistant</a>, based on (exact) geodesic \n        <i>wrappers</i> <a \n        href=\"pygeodesy.geodsolve.GeodesicSolve-class.html\" \n        class=\"link\">GeodesicSolve</a> and <a \n        href=\"pygeodesy.geodsolve.GeodesicLineSolve-class.html\" \n        class=\"link\">GeodesicLineSolve</a> and intended <i>for testing \n        purposes only</i>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.azimuthal.EquidistantKarney-class.html\" class=\"summary-name\">EquidistantKarney</a><br />\n      Azimuthal equidistant projection, a Python version of \n        <i>Karney</i>'s C++ class <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1AzimuthalEquidistant.html\"\n        target=\"_top\">AzimuthalEquidistant</a>, requiring package <a \n        href=\"https://PyPI.org/project/geographiclib\" \n        target=\"_top\">geographiclib</a> to be installed.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.etm.Etm-class.html\" class=\"summary-name\">Etm</a><br />\n      Exact Transverse Mercator (ETM) coordinate, a sub-class of <a \n        href=\"pygeodesy.utm.Utm-class.html\" class=\"link\">Utm</a>, a \n        Universal Transverse Mercator (UTM) coordinate using the <a \n        href=\"pygeodesy.etm.ExactTransverseMercator-class.html\" \n        class=\"link\">ExactTransverseMercator</a> projection for highest \n        accuracy.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.etm.ExactTransverseMercator-class.html\" class=\"summary-name\">ExactTransverseMercator</a><br />\n      Pure Python version of Karney's C++ class <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/TransverseMercatorExact_8cpp_source.html\"\n        target=\"_top\">TransverseMercatorExact</a>, a numerically exact \n        transverse Mercator projection, abbreviated as \n        <code>TMExact</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.units.FIx-class.html\" class=\"summary-name\">FIx</a><br />\n      A named <i>Fractional Index</i>, an <code>int</code> or \n        <code>float</code> index into a <code>list</code> or \n        <code>tuple</code> of <code>points</code>, typically.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.fmath.Fcbrt-class.html\" class=\"summary-name\">Fcbrt</a><br />\n      Cubic root of a precision summation.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.fstats.Fcook-class.html\" class=\"summary-name\">Fcook</a><br />\n      <a href=\"https://www.JohnDCook.com/blog/skewness_kurtosis\" \n        target=\"_top\">Cook</a>'s <code>RunningStats</code> computing the \n        running mean, median and (sample) kurtosis, skewness, variance, \n        standard deviation and Jarque-Bera normality.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.fmath.Fdot-class.html\" class=\"summary-name\">Fdot</a><br />\n      Precision dot product.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.fmath.Fdot_-class.html\" class=\"summary-name\">Fdot_</a><br />\n      Precision dot product.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.units.Feet-class.html\" class=\"summary-name\">Feet</a><br />\n      Named <code>float</code> representing a distance or length in \n        <code>feet</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.fmath.Fhorner-class.html\" class=\"summary-name\">Fhorner</a><br />\n      Precision polynomial evaluation using the Horner form.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.fmath.Fhypot-class.html\" class=\"summary-name\">Fhypot</a><br />\n      Precision summation and hypotenuse, default <code>root=2</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.fstats.Flinear-class.html\" class=\"summary-name\">Flinear</a><br />\n      <a href=\"https://www.JohnDCook.com/blog/running_regression\" \n        target=\"_top\">Cook</a>'s <code>RunningRegression</code> computing \n        the running slope, intercept and correlation of a linear \n        regression.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.unitsBase.Float-class.html\" class=\"summary-name\">Float</a><br />\n      Named <code>float</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.units.Float_-class.html\" class=\"summary-name\">Float_</a><br />\n      Named <code>float</code> with optional <code>low</code> and \n        <code>high</code> limit.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltpTuples.Footprint5Tuple-class.html\" class=\"summary-name\">Footprint5Tuple</a><br />\n      5-Tuple <code>(center, upperleft, upperight, loweright, \n        lowerleft)</code> with the <code>center</code> and 4 corners of the\n        <i>local</i> projection of a <code>Frustum</code>, each an <a \n        href=\"pygeodesy.ltpTuples.Xyz4Tuple-class.html\" \n        class=\"link\">Xyz4Tuple</a>, <a \n        href=\"pygeodesy.ltpTuples.XyzLocal-class.html\" \n        class=\"link\">XyzLocal</a>, <code>LatLon</code>, etc.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.namedTuples.Forward4Tuple-class.html\" class=\"summary-name\">Forward4Tuple</a><br />\n      4-Tuple <code>(easting, northing, gamma, scale)</code> in \n        <code>meter</code>, <code>meter</code>, meridian convergence \n        <code>gamma</code> at point in <code>degrees</code> and the \n        <code>scale</code> of projection at point <code>scalar</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.fmath.Fpolynomial-class.html\" class=\"summary-name\">Fpolynomial</a><br />\n      Precision polynomial evaluation.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.fmath.Fpowers-class.html\" class=\"summary-name\">Fpowers</a><br />\n      Precision summation of powers, optimized for <code>power=2, 3 and \n        4</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.frechet.Frechet-class.html\" class=\"summary-name\">Frechet</a><br />\n      Frechet base class, requires method <a \n        href=\"pygeodesy.frechet.Frechet-class.html#distance\" \n        class=\"link\">Frechet.distance</a> to be overloaded.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.frechet.Frechet6Tuple-class.html\" class=\"summary-name\">Frechet6Tuple</a><br />\n      6-Tuple <code>(fd, fi1, fi2, r, n, units)</code> with the \n        <i>discrete</i> <a \n        href=\"https://WikiPedia.org/wiki/Frechet_distance\" \n        target=\"_top\">Fr&#233;chet</a> distance <code>fd</code>, \n        <i>fractional</i> indices <code>fi1</code> and <code>fi2</code> as \n        <code>FIx</code>, the recursion depth <code>r</code>, the number of\n        distances computed <code>n</code> and the <a \n        href=\"pygeodesy.named._NamedTuple-class.html#units\" \n        class=\"link\">units</a> class or name of the distance \n        <code>units</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.frechet.FrechetCosineLaw-class.html\" class=\"summary-name\">FrechetCosineLaw</a><br />\n      Compute the <code>Frechet</code> distance with functionn <a \n        href=\"pygeodesy.formy-module.html#cosineLaw\" \n        class=\"link\">pygeodesy.cosineLaw</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.frechet.FrechetDegrees-class.html\" class=\"summary-name\">FrechetDegrees</a><br />\n      DEPRECATED, use an other <code>Frechet*</code> class.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.frechet.FrechetDistanceTo-class.html\" class=\"summary-name\">FrechetDistanceTo</a><br />\n      Compute the <code>Frechet</code> distance with the point1s' \n        <code>LatLon.distanceTo</code> method.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.frechet.FrechetEquirectangular-class.html\" class=\"summary-name\">FrechetEquirectangular</a><br />\n      Compute the <code>Frechet</code> distance with function <a \n        href=\"pygeodesy.formy-module.html#equirectangular\" \n        class=\"link\">pygeodesy.equirectangular</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.frechet.FrechetError-class.html\" class=\"summary-name\">FrechetError</a><br />\n      Fr&#233;chet issue.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.frechet.FrechetEuclidean-class.html\" class=\"summary-name\">FrechetEuclidean</a><br />\n      Compute the <code>Frechet</code> distance with function <a \n        href=\"pygeodesy.formy-module.html#euclidean\" \n        class=\"link\">pygeodesy.euclidean</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.frechet.FrechetExact-class.html\" class=\"summary-name\">FrechetExact</a><br />\n      Compute the <code>Frechet</code> distance with method <a \n        href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html\" \n        class=\"link\">GeodesicExact</a><code>.Inverse</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.frechet.FrechetFlatLocal-class.html\" class=\"summary-name\">FrechetFlatLocal</a><br />\n      Compute the <code>Frechet</code> distance with function <a \n        href=\"pygeodesy.formy-module.html#flatLocal_\" \n        class=\"link\">pygeodesy.flatLocal_</a>/<a \n        href=\"pygeodesy.formy-module.html#flatLocal\" \n        class=\"link\">pygeodesy.hubeny</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.frechet.FrechetFlatPolar-class.html\" class=\"summary-name\">FrechetFlatPolar</a><br />\n      Compute the <code>Frechet</code> distance with function <a \n        href=\"pygeodesy.formy-module.html#flatPolar_\" \n        class=\"link\">flatPolar_</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.frechet.FrechetHaversine-class.html\" class=\"summary-name\">FrechetHaversine</a><br />\n      Compute the <code>Frechet</code> distance with function <a \n        href=\"pygeodesy.geohash-module.html#haversine_\" \n        class=\"link\">pygeodesy.haversine_</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.frechet.FrechetHubeny-class.html\" class=\"summary-name\">FrechetHubeny</a><br />\n      Compute the <code>Frechet</code> distance with function <a \n        href=\"pygeodesy.formy-module.html#flatLocal_\" \n        class=\"link\">pygeodesy.flatLocal_</a>/<a \n        href=\"pygeodesy.formy-module.html#flatLocal\" \n        class=\"link\">pygeodesy.hubeny</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.frechet.FrechetKarney-class.html\" class=\"summary-name\">FrechetKarney</a><br />\n      Compute the <code>Frechet</code> distance with <i>Karney</i>'s <a \n        href=\"https://PyPI.org/project/geographiclib\" \n        target=\"_top\">geographiclib</a> <a \n        href=\"https://GeographicLib.SourceForge.io/Python/doc/code.html\" \n        target=\"_top\">geodesic.Geodesic</a><code>.Inverse</code> method.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.frechet.FrechetRadians-class.html\" class=\"summary-name\">FrechetRadians</a><br />\n      DEPRECATED, use an other <code>Frechet*</code> class.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.frechet.FrechetThomas-class.html\" class=\"summary-name\">FrechetThomas</a><br />\n      Compute the <code>Frechet</code> distance with function <a \n        href=\"pygeodesy.formy-module.html#thomas_\" \n        class=\"link\">pygeodesy.thomas_</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.frechet.FrechetVincentys-class.html\" class=\"summary-name\">FrechetVincentys</a><br />\n      Compute the <code>Frechet</code> distance with function <a \n        href=\"pygeodesy.geohash-module.html#vincentys_\" \n        class=\"link\">pygeodesy.vincentys_</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.fmath.Froot-class.html\" class=\"summary-name\">Froot</a><br />\n      The root of a precision summation.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltp.Frustum-class.html\" class=\"summary-name\">Frustum</a><br />\n      A rectangular pyramid, typically representing a camera's \n        <i>field-of-view</i> (fov) and the intersection with (or projection\n        to) a <i>local tangent plane</i>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.fmath.Fsqrt-class.html\" class=\"summary-name\">Fsqrt</a><br />\n      Square root of a precision summation.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.fsums.Fsum-class.html\" class=\"summary-name\">Fsum</a><br />\n      Precision floating point summation, <i>running</i> summation and \n        accurate multiplication.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" class=\"summary-name\">Fsum2Tuple</a><br />\n      2-Tuple <code>(fsum, residual)</code> with the precision running \n        <code>fsum</code> and the <code>residual</code>, the sum of the \n        remaining partials.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.fstats.Fwelford-class.html\" class=\"summary-name\">Fwelford</a><br />\n      <a \n        href=\"https://WikiPedia.org/wiki/Algorithms_for_calculating_variance\"\n        target=\"_top\">Welford</a>'s accumulator computing the running mean,\n        (sample) variance and standard deviation.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.gars.GARSError-class.html\" class=\"summary-name\">GARSError</a><br />\n      Global Area Reference System (GARS) encode, decode or other <a \n        href=\"pygeodesy.gars.Garef-class.html\" class=\"link\">Garef</a> \n        issue.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.karney.GDict-class.html\" class=\"summary-name\">GDict</a><br />\n      A <code>dict</code> with both <code>key</code> <i>and</i> \n        <code>attribute</code> access to the <code>dict</code> items.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.gars.Garef-class.html\" class=\"summary-name\">Garef</a><br />\n      Garef class, a named <code>str</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geod3solve.Geod3Solve8Tuple-class.html\" class=\"summary-name\">Geod3Solve8Tuple</a><br />\n      8-Tuple <code>(bet1, omg1, alp1, bet2, omg2, alp2, s12, a12)</code>\n        with <code>ellipsoidal</code> latitudes <code>bet1</code> and \n        <code>bet2</code>, <code>ellipsoidal</code> longitudes \n        <code>omg1</code> and <code>omg2</code>, forward azimuths \n        <code>alp1</code> and <code>alp2</code> in bearings from North, \n        distance <code>s12</code> in <code>meter</code>, conventionally and\n        <i>approximate</i> arc length <code>a12</code> in degrees, see <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/Geod3Solve.1.html\"\n        target=\"_top\">Geod3Solve</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geodsolve.GeodSolve12Tuple-class.html\" class=\"summary-name\">GeodSolve12Tuple</a><br />\n      12-Tuple <code>(lat1, lon1, azi1, lat2, lon2, azi2, s12, a12, m12, \n        M12, M21, S12)</code> with angles <code>lat1</code>, \n        <code>lon1</code>, <code>azi1</code>, <code>lat2</code>, \n        <code>lon2</code> and <code>azi2</code> and arc <code>a12</code> \n        all in <code>degrees</code>, initial <code>azi1</code> and final \n        <code>azi2</code> forward azimuths in bearings, degrees from North,\n        distance <code>s12</code> and reduced length <code>m12</code> in \n        <code>meter</code>, area <code>S12</code> in <code>meter</code> \n        <i>squared</i> and geodesic scale factors <code>M12</code> and \n        <code>M21</code>, both <code>scalar</code>, see <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/GeodSolve.1.html\"\n        target=\"_top\">GeodSolve</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geodesicw.Geodesic-class.html\" class=\"summary-name\">Geodesic</a><br />\n      <i>Wrapper</i> around <i>Karney</i>'s class <a \n        href=\"https://GeographicLib.SourceForge.io/Python/doc/code.html\" \n        target=\"_top\">geographiclib.geodesic.Geodesic</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geod3solve.Geodesic3Error-class.html\" class=\"summary-name\">Geodesic3Error</a><br />\n      Error raised for issues in <a \n        href=\"pygeodesy.geod3solve-module.html\" \n        class=\"link\">geod3solve</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geod3solve.Geodesic3Solve-class.html\" class=\"summary-name\">Geodesic3Solve</a><br />\n      Wrapper to invoke <i>Karney</i>'s <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/Geod3Solve.1.html\"\n        target=\"_top\">Geod3Solve</a> as a <code>triaxial</code> version of \n        <i>Karney</i>'s Python class <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/python/code.html#geographiclib.geodesic.Geodesic\"\n        target=\"_top\">Geodesic</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html\" class=\"summary-name\">GeodesicAreaExact</a><br />\n      Area and perimeter of a geodesic polygon, an enhanced version of \n        <i>Karney</i>'s Python class <a \n        href=\"https://GeographicLib.SourceForge.io/html/python/code.html#module-geographiclib.polygonarea\"\n        target=\"_top\">PolygonArea</a> using the more accurate surface area.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.errors.GeodesicError-class.html\" class=\"summary-name\">GeodesicError</a><br />\n      Error raised for convergence or other issues in <a \n        href=\"pygeodesy.geodesicx-module.html\" class=\"link\">geodesicx</a>, \n        <a href=\"pygeodesy.geodesicw-module.html\" \n        class=\"link\">geodesicw</a>, <a \n        href=\"pygeodesy.geodsolve-module.html\" class=\"link\">geodsolve</a> \n        or <a href=\"pygeodesy.karney-module.html\" class=\"link\">karney</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html\" class=\"summary-name\">GeodesicExact</a><br />\n      A pure Python version of <i>Karney</i>'s C++ class <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1GeodesicExact.html\"\n        target=\"_top\">GeodesicExact</a>, modeled after <i>Karney</i>'s \n        Python class <a \n        href=\"https://GitHub.com/geographiclib/geographiclib-python\" \n        target=\"_top\">geodesic.Geodesic</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geodesicw.GeodesicLine-class.html\" class=\"summary-name\">GeodesicLine</a><br />\n      <i>Wrapper</i> around <i>Karney</i>'s class <a \n        href=\"https://GeographicLib.SourceForge.io/Python/doc/code.html\" \n        target=\"_top\">geographiclib.geodesicline.GeodesicLine</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geod3solve.GeodesicLine3Solve-class.html\" class=\"summary-name\">GeodesicLine3Solve</a><br />\n      Wrapper to invoke <i>Karney</i>'s <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/GeodSolve.3.html\"\n        target=\"_top\">Geod3Solve</a> as a <code>triaxial</code> version of \n        <i>Karney</i>'s Python class <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/python/code.html#geographiclib.geodesicline.GeodesicLine\"\n        target=\"_top\">GeodesicLine</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geodesicx.gx.GeodesicLineExact-class.html\" class=\"summary-name\">GeodesicLineExact</a><br />\n      A pure Python version of <i>Karney</i>'s C++ class <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1GeodesicLineExact.html\"\n        target=\"_top\">GeodesicLineExact</a>, modeled after <i>Karney</i>'s \n        Python class <a \n        href=\"https://GitHub.com/geographiclib/geographiclib-python\" \n        target=\"_top\">geodesicline.GeodesicLine</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geodsolve.GeodesicLineSolve-class.html\" class=\"summary-name\">GeodesicLineSolve</a><br />\n      Wrapper to invoke <i>Karney</i>'s <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/GeodSolve.1.html\"\n        target=\"_top\">GeodSolve</a> as an <code>Exact</code> version of \n        <i>Karney</i>'s Python class <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/python/code.html#geographiclib.geodesicline.GeodesicLine\"\n        target=\"_top\">GeodesicLine</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geodsolve.GeodesicSolve-class.html\" class=\"summary-name\">GeodesicSolve</a><br />\n      Wrapper to invoke <i>Karney</i>'s <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/GeodSolve.1.html\"\n        target=\"_top\">GeodSolve</a> as an <code>Exact</code> version of \n        <i>Karney</i>'s Python class <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/python/code.html#geographiclib.geodesic.Geodesic\"\n        target=\"_top\">Geodesic</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geohash.Geohash-class.html\" class=\"summary-name\">Geohash</a><br />\n      Geohash class, a named <code>str</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geohash.GeohashError-class.html\" class=\"summary-name\">GeohashError</a><br />\n      Geohash encode, decode or other <a \n        href=\"pygeodesy.geohash.Geohash-class.html\" \n        class=\"link\">Geohash</a> issue.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geohash.Geohashed-class.html\" class=\"summary-name\">Geohashed</a><br />\n      A cache of en- and decoded geohashes of one precision.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geoids.GeoidEGM96-class.html\" class=\"summary-name\">GeoidEGM96</a><br />\n      Geoid height interpolator for the EGM96 <a \n        href=\"https://earth-info.NGA.mil\" target=\"_top\">15 Minute \n        Interpolation Grid</a> based on <code>SciPy</code> interpolation <a\n        \n        href=\"https://docs.SciPy.org/doc/scipy/reference/generated/scipy.interpolate.RectBivariateSpline.html\"\n        target=\"_top\">RectBivariateSpline</a>, <a \n        href=\"https://docs.SciPy.org/doc/scipy/reference/generated/scipy.interpolate.interp2d.html\"\n        target=\"_top\">interp2d</a> or <a \n        href=\"https://docs.scipy.org/doc/scipy/reference/generated/scipy.interpolate.bisplrep.html\"\n        target=\"_top\">bisplrep/-ev</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geoids.GeoidError-class.html\" class=\"summary-name\">GeoidError</a><br />\n      Geoid interpolator <code>Geoid...</code> or interpolation issue.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geoids.GeoidG2012B-class.html\" class=\"summary-name\">GeoidG2012B</a><br />\n      Geoid height interpolator for <a \n        href=\"https://Geodesy.NOAA.gov/GEOID/GEOID12B/\" \n        target=\"_top\">GEOID12B Model</a> grids <a \n        href=\"https://Geodesy.NOAA.gov/GEOID/GEOID12B/GEOID12B_CONUS.shtml\"\n        target=\"_top\">CONUS</a>, <a \n        href=\"https://Geodesy.NOAA.gov/GEOID/GEOID12B/GEOID12B_AK.shtml\" \n        target=\"_top\">Alaska</a>, <a \n        href=\"https://Geodesy.NOAA.gov/GEOID/GEOID12B/GEOID12B_HI.shtml\" \n        target=\"_top\">Hawaii</a>, <a \n        href=\"https://Geodesy.NOAA.gov/GEOID/GEOID12B/GEOID12B_GMNI.shtml\" \n        target=\"_top\">Guam and Northern Mariana Islands</a>, <a \n        href=\"https://Geodesy.NOAA.gov/GEOID/GEOID12B/GEOID12B_PRVI.shtml\" \n        target=\"_top\">Puerto Rico and U.S. Virgin Islands</a> and <a \n        href=\"https://Geodesy.NOAA.gov/GEOID/GEOID12B/GEOID12B_AS.shtml\" \n        target=\"_top\">American Samoa</a> based on <code>SciPy</code> \n        interpolation <a \n        href=\"https://docs.SciPy.org/doc/scipy/reference/generated/scipy.interpolate.RectBivariateSpline.html\"\n        target=\"_top\">RectBivariateSpline</a>, <a \n        href=\"https://docs.SciPy.org/doc/scipy/reference/generated/scipy.interpolate.interp2d.html\"\n        target=\"_top\">interp2d</a> or <a \n        href=\"https://docs.scipy.org/doc/scipy/reference/generated/scipy.interpolate.bisplrep.html\"\n        target=\"_top\">bisplrep/-ev</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.elevations.GeoidHeight2Tuple-class.html\" class=\"summary-name\">GeoidHeight2Tuple</a><br />\n      2-Tuple <code>(height, model_name)</code>, geoid \n        <a href=pygeodesy.heights-module.html><code>height</code></a> in <code>meter</code> and \n        <code>model_name</code> as <code>str</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geoids.GeoidHeight5Tuple-class.html\" class=\"summary-name\">GeoidHeight5Tuple</a><br />\n      5-Tuple <code>(lat, lon, egm84, egm96, egm2008)</code> for <a \n        href=\"https://SourceForge.net/projects/geographiclib/files/testdata/\"\n        target=\"_top\">GeoidHeights.dat</a> tests with the heights for 3 \n        different EGM grids at <code>degrees90</code> and \n        <code>degrees180</code> degrees (after converting <code>lon</code> \n        from original <code>0 &lt;= EasterLon &lt;= 360</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geoids.GeoidKarney-class.html\" class=\"summary-name\">GeoidKarney</a><br />\n      Geoid height interpolator for <i>Karney</i>'s <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/geoid.html\" \n        target=\"_top\">GeographicLib Earth Gravitational Model (EGM)</a> \n        geoid <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/geoid.html#geoidinst\"\n        target=\"_top\">egm*.pgm</a> datasets using bilinear or <a \n        href=\"https://dl.ACM.org/citation.cfm?id=368443\" \n        target=\"_top\">cubic</a> interpolation and <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/geoid.html#geoidcache\"\n        target=\"_top\">caching</a> in pure Python, transcoded from \n        <i>Karney</i>'s <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/geoid.html#geoidinterp\"\n        target=\"_top\">C++ class Geoid</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geoids.GeoidPGM-class.html\" class=\"summary-name\">GeoidPGM</a><br />\n      Geoid height interpolator for <i>Karney</i>'s <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/geoid.html\" \n        target=\"_top\">GeographicLib Earth Gravitational Model (EGM)</a> \n        geoid <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/geoid.html#geoidinst\"\n        target=\"_top\">egm*.pgm</a> datasets but based on <code>SciPy</code>\n        <a \n        href=\"https://docs.SciPy.org/doc/scipy/reference/generated/scipy.interpolate.RectBivariateSpline.html\"\n        target=\"_top\">RectBivariateSpline</a>, <a \n        href=\"https://docs.SciPy.org/doc/scipy/reference/generated/scipy.interpolate.bisplrep.html\"\n        target=\"_top\">bisplrep/-ev</a> or <a \n        href=\"https://docs.SciPy.org/doc/scipy/reference/generated/scipy.interpolate.interp2d.html\"\n        target=\"_top\">interp2d</a> interpolation.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.wgrs.Georef-class.html\" class=\"summary-name\">Georef</a><br />\n      Georef class, a named <code>str</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.azimuthal.Gnomonic-class.html\" class=\"summary-name\">Gnomonic</a><br />\n      Azimuthal gnomonic projection for the sphere***, see <a \n        href=\"https://Pubs.USGS.gov/pp/1395/report.pdf\" \n        target=\"_top\">Snyder, pp 164-168</a> and <a \n        href=\"https://MathWorld.Wolfram.com/GnomonicProjection.html\" \n        target=\"_top\">MathWorld-Wolfram</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.azimuthal.GnomonicExact-class.html\" class=\"summary-name\">GnomonicExact</a><br />\n      Azimuthal gnomonic projection, a Python version of <i>Karney</i>'s \n        C++ class <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Gnomonic.html\"\n        target=\"_top\">Gnomonic</a>, based on exact geodesic classes <a \n        href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html\" \n        class=\"link\">GeodesicExact</a> and <a \n        href=\"pygeodesy.geodesicx.gx.GeodesicLineExact-class.html\" \n        class=\"link\">GeodesicLineExact</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.azimuthal.GnomonicGeodSolve-class.html\" class=\"summary-name\">GnomonicGeodSolve</a><br />\n      Azimuthal gnomonic projection, a Python version of <i>Karney</i>'s \n        C++ class <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Gnomonic.html\"\n        target=\"_top\">Gnomonic</a>, based on (exact) geodesic \n        <i>wrappers</i> <a \n        href=\"pygeodesy.geodsolve.GeodesicSolve-class.html\" \n        class=\"link\">GeodesicSolve</a> and <a \n        href=\"pygeodesy.geodsolve.GeodesicLineSolve-class.html\" \n        class=\"link\">GeodesicLineSolve</a> and intended <i>for testing \n        purposes only</i>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.azimuthal.GnomonicKarney-class.html\" class=\"summary-name\">GnomonicKarney</a><br />\n      Azimuthal gnomonic projection, a Python version of <i>Karney</i>'s \n        C++ class <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Gnomonic.html\"\n        target=\"_top\">Gnomonic</a>, requiring package <a \n        href=\"https://PyPI.org/project/geographiclib\" \n        target=\"_top\">geographiclib</a> to be installed.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.hausdorff.Hausdorff-class.html\" class=\"summary-name\">Hausdorff</a><br />\n      Hausdorff base class, requires method <a \n        href=\"pygeodesy.hausdorff.Hausdorff-class.html#distance\" \n        class=\"link\">Hausdorff.distance</a> to be overloaded.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.hausdorff.Hausdorff6Tuple-class.html\" class=\"summary-name\">Hausdorff6Tuple</a><br />\n      6-Tuple <code>(hd, i, j, mn, md, units)</code> with the <a \n        href=\"https://WikiPedia.org/wiki/Hausdorff_distance\" \n        target=\"_top\">Hausdorff</a> distance <code>hd</code>, indices \n        <code>i</code> and <code>j</code>, the total count <code>mn</code>,\n        the <code><i>mean</i> Hausdorff</code> distance <code>md</code> and\n        the class or name of both distance <code>units</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.hausdorff.HausdorffCosineLaw-class.html\" class=\"summary-name\">HausdorffCosineLaw</a><br />\n      Compute the <code>Hausdorff</code> distance with function <a \n        href=\"pygeodesy.formy-module.html#cosineLaw_\" \n        class=\"link\">pygeodesy.cosineLaw_</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.hausdorff.HausdorffDegrees-class.html\" class=\"summary-name\">HausdorffDegrees</a><br />\n      <a href=\"pygeodesy.hausdorff.Hausdorff-class.html\" \n        class=\"link\">Hausdorff</a> base class for distances from \n        <code>LatLon</code> points in <code>degrees</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.hausdorff.HausdorffDistanceTo-class.html\" class=\"summary-name\">HausdorffDistanceTo</a><br />\n      Compute the <code>Hausdorff</code> distance the points' \n        <code>LatLon.distanceTo</code> method.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.hausdorff.HausdorffEquirectangular-class.html\" class=\"summary-name\">HausdorffEquirectangular</a><br />\n      Compute the <code>Hausdorff</code> distance with function <a \n        href=\"pygeodesy.formy-module.html#equirectangular\" \n        class=\"link\">pygeodesy.equirectangular</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.hausdorff.HausdorffError-class.html\" class=\"summary-name\">HausdorffError</a><br />\n      Hausdorff issue.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.hausdorff.HausdorffEuclidean-class.html\" class=\"summary-name\">HausdorffEuclidean</a><br />\n      Compute the <code>Hausdorff</code> distance with function <a \n        href=\"pygeodesy.geohash-module.html#euclidean_\" \n        class=\"link\">pygeodesy.euclidean_</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.hausdorff.HausdorffExact-class.html\" class=\"summary-name\">HausdorffExact</a><br />\n      Compute the <code>Hausdorff</code> distance with method <a \n        href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html\" \n        class=\"link\">GeodesicExact</a><code>.Inverse</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.hausdorff.HausdorffFlatLocal-class.html\" class=\"summary-name\">HausdorffFlatLocal</a><br />\n      Compute the <code>Hausdorff</code> distance with function <a \n        href=\"pygeodesy.formy-module.html#flatLocal_\" \n        class=\"link\">pygeodesy.flatLocal_</a>/<a \n        href=\"pygeodesy.formy-module.html#flatLocal_\" \n        class=\"link\">pygeodesy.hubeny_</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.hausdorff.HausdorffFlatPolar-class.html\" class=\"summary-name\">HausdorffFlatPolar</a><br />\n      Compute the <code>Hausdorff</code> distance with function <a \n        href=\"pygeodesy.formy-module.html#flatPolar_\" \n        class=\"link\">pygeodesy.flatPolar_</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.hausdorff.HausdorffHaversine-class.html\" class=\"summary-name\">HausdorffHaversine</a><br />\n      Compute the <code>Hausdorff</code> distance with function <a \n        href=\"pygeodesy.geohash-module.html#haversine_\" \n        class=\"link\">pygeodesy.haversine_</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.hausdorff.HausdorffHubeny-class.html\" class=\"summary-name\">HausdorffHubeny</a><br />\n      Compute the <code>Hausdorff</code> distance with function <a \n        href=\"pygeodesy.formy-module.html#flatLocal_\" \n        class=\"link\">pygeodesy.flatLocal_</a>/<a \n        href=\"pygeodesy.formy-module.html#flatLocal_\" \n        class=\"link\">pygeodesy.hubeny_</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.hausdorff.HausdorffKarney-class.html\" class=\"summary-name\">HausdorffKarney</a><br />\n      Compute the <code>Hausdorff</code> distance with <i>Karney</i>'s <a\n        href=\"https://PyPI.org/project/geographiclib\" \n        target=\"_top\">geographiclib</a> <a \n        href=\"https://GeographicLib.SourceForge.io/Python/doc/code.html\" \n        target=\"_top\">geodesic.Geodesic</a><code>.Inverse</code> method.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.hausdorff.HausdorffRadians-class.html\" class=\"summary-name\">HausdorffRadians</a><br />\n      <a href=\"pygeodesy.hausdorff.Hausdorff-class.html\" \n        class=\"link\">Hausdorff</a> base class for distances from \n        <code>LatLon</code> points converted from <code>degrees</code> to \n        <code>radians</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.hausdorff.HausdorffThomas-class.html\" class=\"summary-name\">HausdorffThomas</a><br />\n      Compute the <code>Hausdorff</code> distance with function <a \n        href=\"pygeodesy.formy-module.html#thomas_\" \n        class=\"link\">pygeodesy.thomas_</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.hausdorff.HausdorffVincentys-class.html\" class=\"summary-name\">HausdorffVincentys</a><br />\n      Compute the <code>Hausdorff</code> distance with function <a \n        href=\"pygeodesy.geohash-module.html#vincentys_\" \n        class=\"link\">pygeodesy.vincentys_</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.units.Height-class.html\" class=\"summary-name\">Height</a><br />\n      Named <code>float</code> representing a height, conventionally in \n        <code>meter</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.heights.HeightCubic-class.html\" class=\"summary-name\">HeightCubic</a><br />\n      Height interpolator based on <code>SciPy</code> <a \n        href=\"https://docs.SciPy.org/doc/scipy/reference/generated/scipy.interpolate.interp2d.html\"\n        target=\"_top\">interp2d</a> <code>kind='cubic'</code> or <a \n        href=\"https://docs.SciPy.org/doc/scipy/reference/generated/scipy.interpolate.interp2d.html\"\n        target=\"_top\">bisplrep/-ev</a> <code>kx=ky=3</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.heights.HeightError-class.html\" class=\"summary-name\">HeightError</a><br />\n      Height interpolator <code>Height...</code> or interpolation issue.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.heights.HeightIDWcosineLaw-class.html\" class=\"summary-name\">HeightIDWcosineLaw</a><br />\n      Height interpolator using <a \n        href=\"https://WikiPedia.org/wiki/Inverse_distance_weighting\" \n        target=\"_top\">Inverse Distance Weighting</a> (IDW) and function <a \n        href=\"pygeodesy.formy-module.html#cosineLaw\" \n        class=\"link\">pygeodesy.cosineLaw</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.heights.HeightIDWdistanceTo-class.html\" class=\"summary-name\">HeightIDWdistanceTo</a><br />\n      Height interpolator using <a \n        href=\"https://WikiPedia.org/wiki/Inverse_distance_weighting\" \n        target=\"_top\">Inverse Distance Weighting</a> (IDW) and the points' \n        <code>LatLon.distanceTo</code> method.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.heights.HeightIDWequirectangular-class.html\" class=\"summary-name\">HeightIDWequirectangular</a><br />\n      Height interpolator using <a \n        href=\"https://WikiPedia.org/wiki/Inverse_distance_weighting\" \n        target=\"_top\">Inverse Distance Weighting</a> (IDW) and function <a \n        href=\"pygeodesy.geohash-module.html#equirectangular4\" \n        class=\"link\">pygeodesy.equirectangular4</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.heights.HeightIDWeuclidean-class.html\" class=\"summary-name\">HeightIDWeuclidean</a><br />\n      Height interpolator using <a \n        href=\"https://WikiPedia.org/wiki/Inverse_distance_weighting\" \n        target=\"_top\">Inverse Distance Weighting</a> (IDW) and function <a \n        href=\"pygeodesy.geohash-module.html#euclidean_\" \n        class=\"link\">pygeodesy.euclidean_</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.heights.HeightIDWexact-class.html\" class=\"summary-name\">HeightIDWexact</a><br />\n      Height interpolator using <a \n        href=\"https://WikiPedia.org/wiki/Inverse_distance_weighting\" \n        target=\"_top\">Inverse Distance Weighting</a> (IDW) and method <a \n        href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html#Inverse\" \n        class=\"link\">GeodesicExact.Inverse</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.heights.HeightIDWflatLocal-class.html\" class=\"summary-name\">HeightIDWflatLocal</a><br />\n      Height interpolator using <a \n        href=\"https://WikiPedia.org/wiki/Inverse_distance_weighting\" \n        target=\"_top\">Inverse Distance Weighting</a> (IDW) and the function\n        <a href=\"pygeodesy.formy-module.html#flatLocal_\" \n        class=\"link\">pygeodesy.flatLocal_</a>/<a \n        href=\"pygeodesy.formy-module.html#flatLocal_\" \n        class=\"link\">pygeodesy.hubeny_</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.heights.HeightIDWflatPolar-class.html\" class=\"summary-name\">HeightIDWflatPolar</a><br />\n      Height interpolator using <a \n        href=\"https://WikiPedia.org/wiki/Inverse_distance_weighting\" \n        target=\"_top\">Inverse Distance Weighting</a> (IDW) and function <a \n        href=\"pygeodesy.formy-module.html#flatPolar_\" \n        class=\"link\">pygeodesy.flatPolar_</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.heights.HeightIDWhaversine-class.html\" class=\"summary-name\">HeightIDWhaversine</a><br />\n      Height interpolator using <a \n        href=\"https://WikiPedia.org/wiki/Inverse_distance_weighting\" \n        target=\"_top\">Inverse Distance Weighting</a> (IDW) and function <a \n        href=\"pygeodesy.geohash-module.html#haversine_\" \n        class=\"link\">pygeodesy.haversine_</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.heights.HeightIDWhubeny-class.html\" class=\"summary-name\">HeightIDWhubeny</a><br />\n      Height interpolator using <a \n        href=\"https://WikiPedia.org/wiki/Inverse_distance_weighting\" \n        target=\"_top\">Inverse Distance Weighting</a> (IDW) and the function\n        <a href=\"pygeodesy.formy-module.html#flatLocal_\" \n        class=\"link\">pygeodesy.flatLocal_</a>/<a \n        href=\"pygeodesy.formy-module.html#flatLocal_\" \n        class=\"link\">pygeodesy.hubeny_</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.heights.HeightIDWkarney-class.html\" class=\"summary-name\">HeightIDWkarney</a><br />\n      Height interpolator using <a \n        href=\"https://WikiPedia.org/wiki/Inverse_distance_weighting\" \n        target=\"_top\">Inverse Distance Weighting</a> (IDW) and \n        <i>Karney</i>'s <a href=\"https://PyPI.org/project/geographiclib\" \n        target=\"_top\">geographiclib</a> method <a \n        href=\"https://GeographicLib.SourceForge.io/Python/doc/code.html#geographiclib.geodesic.Geodesic.Inverse\"\n        target=\"_top\">geodesic.Geodesic.Inverse</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.heights.HeightIDWthomas-class.html\" class=\"summary-name\">HeightIDWthomas</a><br />\n      Height interpolator using <a \n        href=\"https://WikiPedia.org/wiki/Inverse_distance_weighting\" \n        target=\"_top\">Inverse Distance Weighting</a> (IDW) and function <a \n        href=\"pygeodesy.formy-module.html#thomas_\" \n        class=\"link\">pygeodesy.thomas_</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.heights.HeightIDWvincentys-class.html\" class=\"summary-name\">HeightIDWvincentys</a><br />\n      Height interpolator using <a \n        href=\"https://WikiPedia.org/wiki/Inverse_distance_weighting\" \n        target=\"_top\">Inverse Distance Weighting</a> (IDW) and function <a \n        href=\"pygeodesy.geohash-module.html#vincentys_\" \n        class=\"link\">pygeodesy.vincentys_</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.heights.HeightLSQBiSpline-class.html\" class=\"summary-name\">HeightLSQBiSpline</a><br />\n      Height interpolator using <code>SciPy</code> <a \n        href=\"https://docs.SciPy.org/doc/scipy/reference/generated/scipy.interpolate.LSQSphereBivariateSpline.html\"\n        target=\"_top\">LSQSphereBivariateSpline</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.heights.HeightLinear-class.html\" class=\"summary-name\">HeightLinear</a><br />\n      Height interpolator based on <code>SciPy</code> <a \n        href=\"https://docs.SciPy.org/doc/scipy/reference/generated/scipy.interpolate.interp2d.html\"\n        target=\"_top\">interp2d</a> <code>kind='linear'</code> or <a \n        href=\"https://docs.SciPy.org/doc/scipy/reference/generated/scipy.interpolate.interp2d.html\"\n        target=\"_top\">bisplrep/-ev</a> <code>kx=ky=1</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.heights.HeightSmoothBiSpline-class.html\" class=\"summary-name\">HeightSmoothBiSpline</a><br />\n      Height interpolator using <code>SciPy</code> <a \n        href=\"https://docs.SciPy.org/doc/scipy/reference/generated/scipy.interpolate.SmoothSphereBivariateSpline.html\"\n        target=\"_top\">SmoothSphereBivariateSpline</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.units.HeightX-class.html\" class=\"summary-name\">HeightX</a><br />\n      Like <a href=\"pygeodesy.units.Height-class.html\" \n        class=\"link\">Height</a>, used to distinguish the interpolated \n        height from an original <a href=\"pygeodesy.units.Height-class.html\"\n        class=\"link\">Height</a> at a clip intersection.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.units.Height_-class.html\" class=\"summary-name\">Height_</a><br />\n      Named <code>float</code> with optional <code>low</code> and \n        <code>high</code> limits representing a height, conventionally in \n        <code>meter</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.deprecated.classes.Transform7Tuple-class.html\" class=\"summary-name\">Helmert7Tuple</a><br />\n      DEPRECATED on 2024.02.02, use class <a \n        href=\"pygeodesy.trf.TRFXform7Tuple-class.html\" \n        class=\"link\">TRFXform7Tuple</a>, <i>without</i> keyword arguments.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.unitsBase.Int-class.html\" class=\"summary-name\">Int</a><br />\n      Named <code>int</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.units.Int_-class.html\" class=\"summary-name\">Int_</a><br />\n      Named <code>int</code> with optional limits <code>low</code> and \n        <code>high</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geodesici.Intersect7Tuple-class.html\" class=\"summary-name\">Intersect7Tuple</a><br />\n      7-Tuple <code>(A, B, sAB, aAB, c, kA, kB)</code> with \n        <code>A</code> and <code>B</code> each a <code>LatLon</code> or <a \n        href=\"pygeodesy.namedTuples.LatLon4Tuple-class.html\" \n        class=\"link\">LatLon4Tuple</a><code>(lat, lon, height, datum)</code>\n        of the intersection on each geodesic line, the distance \n        <code>sAB</code> in in <code>meter</code> and angular distance \n        <code>aAB</code> in <code>degrees</code> between <code>A</code> and\n        <code>B</code>, coincidence indicator <code>c</code> and segment \n        indicators <code>kA</code> and <code>kB</code> all \n        <code>int</code>, see <a \n        href=\"pygeodesy.geodesici.XDict-class.html\" class=\"link\">XDict</a> \n        and method <a href=\"https://_IntersectBase.intersect7\" \n        target=\"_top\">intersect7</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.namedTuples.Intersection3Tuple-class.html\" class=\"summary-name\">Intersection3Tuple</a><br />\n      3-Tuple <code>(point, outside1, outside2)</code> of an intersection\n        <code>point</code> and <code>outside1</code>, the position of the \n        <code>point</code>, <code>-1</code> if before the start, \n        <code>+1</code> if after the end and <code>0</code> if on or \n        between the start and end point of the first line.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.errors.IntersectionError-class.html\" class=\"summary-name\">IntersectionError</a><br />\n      Error raised for line or circle intersection issues.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geodesici.Intersectool-class.html\" class=\"summary-name\">Intersectool</a><br />\n      Wrapper to invoke <i>Karney</i>'s utility <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/IntersectTool.1.html\"\n        target=\"_top\">IntersectTool</a> similar to class <a \n        href=\"pygeodesy.geodesici.Intersector-class.html\" \n        class=\"link\">Intersector</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geodesici.Intersectool5Tuple-class.html\" class=\"summary-name\">Intersectool5Tuple</a><br />\n      5-Tuple <code>(A, B, sAB, aAB, c)</code> with <code>A</code> and \n        <code>B</code> the <code>Position</code> of the intersection on \n        each geodesic line, the distance <code>sAB</code> between \n        <code>A</code> and <code>B</code> in <code>meter</code>, the \n        angular distance <code>aAB</code> in <code>degrees</code> and \n        coincidence indicator <code>c</code> (<code>int</code>), see <a \n        href=\"pygeodesy.geodesici.XDict-class.html\" class=\"link\">XDict</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geodesici.Intersector-class.html\" class=\"summary-name\">Intersector</a><br />\n      Finder of intersections between two goedesic lines, each an \n        instance of <a \n        href=\"pygeodesy.geodesicx.gx.GeodesicLineExact-class.html\" \n        class=\"link\">GeodesicLineExact</a>, wrapped <a \n        href=\"pygeodesy.geodesicw.GeodesicLine-class.html\" \n        class=\"link\">GeodesicLine</a> or <a \n        href=\"pygeodesy.geodsolve.GeodesicLineSolve-class.html\" \n        class=\"link\">GeodesicLineSolve</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geodesici.Intersector5Tuple-class.html\" class=\"summary-name\">Intersector5Tuple</a><br />\n      5-Tuple <code>(A, B, sAB, aAB, c)</code> with <code>A</code> and \n        <code>B</code> the <code>Position</code> of the intersection on \n        each geodesic line, the distance <code>sAB</code> between \n        <code>A</code> and <code>B</code> in <code>meter</code>, angular \n        distance <code>aAB</code> in <code>degrees</code> and coincidence \n        indicator <code>c</code> (<code>int</code>), see <a \n        href=\"pygeodesy.geodesici.XDict-class.html\" class=\"link\">XDict</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.karney.Inverse10Tuple-class.html\" class=\"summary-name\">Inverse10Tuple</a><br />\n      10-Tuple <code>(a12, s12, salp1, calp1, salp2, calp2, m12, M12, \n        M21, S12)</code> with arc length <code>a12</code> in \n        <code>degrees</code>, distance <code>s12</code> and reduced length \n        <code>m12</code> in <code>meter</code>, area <code>S12</code> in \n        <code>meter</code> <i>squared</i> and the sines <code>salp1</code>,\n        <code>salp2</code> and cosines <code>calp1</code>, \n        <code>calp2</code> of the initial <code>1</code> and final \n        <code>2</code> (forward) azimuths.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.deprecated.classes.Jacobi2Tuple-class.html\" class=\"summary-name\">Jacobi2Tuple</a><br />\n      DEPRECATED on 25.11.11, use class <a \n        href=\"pygeodesy.triaxials.triaxial5.Conformal2Tuple-class.html\" \n        class=\"link\">Conformal2Tuple</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.deprecated.classes.JacobiConformal-class.html\" class=\"summary-name\">JacobiConformal</a><br />\n      DEPRECATED on 2025.10.25, use class <a \n        href=\"pygeodesy.triaxials.triaxial5.Conformal-class.html\" \n        class=\"link\">Conformal</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.deprecated.classes.JacobiConformalSpherical-class.html\" class=\"summary-name\">JacobiConformalSpherical</a><br />\n      DEPRECATED on 2025.10.25, use class <a \n        href=\"pygeodesy.triaxials.triaxial5.ConformalSphere-class.html\" \n        class=\"link\">ConformalSphere</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ktm.KTMError-class.html\" class=\"summary-name\">KTMError</a><br />\n      Error raised for <a \n        href=\"pygeodesy.ktm.KTransverseMercator-class.html\" \n        class=\"link\">KTransverseMercator</a> and <a \n        href=\"pygeodesy.ktm.KTransverseMercator-class.html#forward\" \n        class=\"link\">KTransverseMercator.forward</a> issues.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ktm.KTransverseMercator-class.html\" class=\"summary-name\">KTransverseMercator</a><br />\n      <i>Karney</i>'s C++ class <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1TransverseMercator.html\"\n        target=\"_top\">TransverseMercator</a> transcoded to pure Python, \n        following is a partial copy of <i>Karney</i>'s documentation.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.lcc.LCCError-class.html\" class=\"summary-name\">LCCError</a><br />\n      Lambert Conformal Conic <code>LCC</code> or other <a \n        href=\"pygeodesy.lcc.Lcc-class.html\" class=\"link\">Lcc</a> issue.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.triaxials.bases.LLK-class.html\" class=\"summary-name\">LLK</a><br />\n      Enum-like <code>Lat-/Longitude Kinds (LLK)</code>, see <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Triaxial_1_1Cartesian3.html\"\n        target=\"_top\">coord</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.units.Lam-class.html\" class=\"summary-name\">Lam</a><br />\n      Named <code>float</code> representing a longitude in \n        <code>radians</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.deprecated.classes.Lam_-class.html\" class=\"summary-name\">Lam_</a><br />\n      DEPRECATED on 2024.06.15, use class <a \n        href=\"pygeodesy.units.Lamd-class.html\" class=\"link\">Lamd</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.azimuthal.LambertEqualArea-class.html\" class=\"summary-name\">LambertEqualArea</a><br />\n      Lambert-equal-area projection for the sphere*** (aka <a \n        href=\"https://WikiPedia.org/wiki/Lambert_azimuthal_equal-area_projection\"\n        target=\"_top\">Lambert zenithal equal-area projection</a>, see <a \n        href=\"https://Pubs.USGS.gov/pp/1395/report.pdf\" \n        target=\"_top\">Snyder, pp 185-187</a> and <a \n        href=\"https://MathWorld.Wolfram.com/LambertAzimuthalEqual-AreaProjection.html\"\n        target=\"_top\">MathWorld-Wolfram</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.angles.Lambertian-class.html\" class=\"summary-name\">Lambertian</a><br />\n      A <code>Lambertian</code> in <code>radians</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.units.Lamd-class.html\" class=\"summary-name\">Lamd</a><br />\n      Named <code>float</code> representing a longitude in \n        <code>radians</code> converted from <code>degrees</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.units.Lat-class.html\" class=\"summary-name\">Lat</a><br />\n      Named <code>float</code> representing a latitude in \n        <code>degrees</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.iters.LatLon2PsxyIter-class.html\" class=\"summary-name\">LatLon2PsxyIter</a><br />\n      Iterate and convert for <code>points</code> with optional loop-back\n        and copies.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.namedTuples.LatLon2Tuple-class.html\" class=\"summary-name\">LatLon2Tuple</a><br />\n      2-Tuple <code>(lat, lon)</code> in <code>degrees90</code> and \n        <code>degrees180</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.points.LatLon2psxy-class.html\" class=\"summary-name\">LatLon2psxy</a><br />\n      Wrapper for <code>LatLon</code> points as &quot;on-the-fly&quot; \n        pseudo-xy coordinates.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.namedTuples.LatLon3Tuple-class.html\" class=\"summary-name\">LatLon3Tuple</a><br />\n      3-Tuple <code>(lat, lon, height)</code> in <code>degrees90</code>, \n        <code>degrees180</code> and <code>meter</code>, conventionally.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.namedTuples.LatLon4Tuple-class.html\" class=\"summary-name\">LatLon4Tuple</a><br />\n      4-Tuple <code>(lat, lon, height, datum)</code> in \n        <code>degrees90</code>, <code>degrees180</code>, <code>meter</code>\n        and <a href=\"pygeodesy.datums.Datum-class.html\" \n        class=\"link\">Datum</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.css.LatLonAziRk4Tuple-class.html\" class=\"summary-name\">LatLonAziRk4Tuple</a><br />\n      4-Tuple <code>(lat, lon, azimuth, reciprocal)</code>, all in \n        <code>degrees</code> where <code>azimuth</code> is the azimuth of \n        easting direction and <code>reciprocal</code> the reciprocal of \n        azimuthal northing scale.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.namedTuples.LatLonDatum3Tuple-class.html\" class=\"summary-name\">LatLonDatum3Tuple</a><br />\n      3-Tuple <code>(lat, lon, datum)</code> in <code>degrees90</code>, \n        <code>degrees180</code> and <a \n        href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.namedTuples.LatLonDatum5Tuple-class.html\" class=\"summary-name\">LatLonDatum5Tuple</a><br />\n      5-Tuple <code>(lat, lon, datum, gamma, scale)</code> in \n        <code>degrees90</code>, <code>degrees180</code>, <a \n        href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>, \n        <code>degrees</code> and <code>float</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.deprecated.classes.LatLonExact4Tuple-class.html\" class=\"summary-name\">LatLonExact4Tuple</a><br />\n      DEPRECATED, use class <a \n        href=\"pygeodesy.namedTuples.Reverse4Tuple-class.html\" \n        class=\"link\">Reverse4Tuple</a>, item <code>gamma</code> for \n        <code>convergence</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.booleans.LatLonFHP-class.html\" class=\"summary-name\">LatLonFHP</a><br />\n      A point or intersection in a <a \n        href=\"pygeodesy.booleans.BooleanFHP-class.html\" \n        class=\"link\">BooleanFHP</a> clip or composite.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.booleans.LatLonGH-class.html\" class=\"summary-name\">LatLonGH</a><br />\n      A point or intersection in a <a \n        href=\"pygeodesy.booleans.BooleanGH-class.html\" \n        class=\"link\">BooleanGH</a> clip or composite.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.deprecated.bases.LatLonHeightBase-class.html\" class=\"summary-name\">LatLonHeightBase</a><br />\n      DEPRECATED on 2021.02.10, use (INTERNAL) class <a \n        href=\"pygeodesy.latlonBase.LatLonBase-class.html\" \n        class=\"link\">pygeodesy.latlonBase.LatLonBase</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.nvectorBase.LatLonNvectorBase-class.html\" class=\"summary-name\">LatLonNvectorBase</a><br />\n      (INTERNAL) Base class for n-vector-based ellipsoidal and spherical \n        <code>LatLon</code>s.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.namedTuples.LatLonPrec3Tuple-class.html\" class=\"summary-name\">LatLonPrec3Tuple</a><br />\n      3-Tuple <code>(lat, lon, precision)</code> in <code>degrees</code>,\n        <code>degrees</code> and <code>int</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.namedTuples.LatLonPrec5Tuple-class.html\" class=\"summary-name\">LatLonPrec5Tuple</a><br />\n      5-Tuple <code>(lat, lon, precision, height, radius)</code> in \n        <code>degrees</code>, <code>degrees</code>, <code>int</code> and \n        <a href=pygeodesy.heights-module.html><code>height</code></a> or <code>radius</code> in <code>meter</code> \n        (or <code>None</code> if missing).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.points.LatLon_-class.html\" class=\"summary-name\">LatLon_</a><br />\n      Low-overhead <code>LatLon</code> class, mainly for <a \n        href=\"pygeodesy.points.Numpy2LatLon-class.html\" \n        class=\"link\">Numpy2LatLon</a> and <a \n        href=\"pygeodesy.points.Tuple2LatLon-class.html\" \n        class=\"link\">Tuple2LatLon</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.units.Lat_-class.html\" class=\"summary-name\">Lat_</a><br />\n      Named <code>float</code> representing a latitude in \n        <code>degrees</code> within limits <code>low</code> and \n        <code>high</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.lazily.LazyAttributeError-class.html\" class=\"summary-name\">LazyAttributeError</a><br />\n      Raised if a <code>lazily imported</code> attribute is missing or \n        invalid.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.lazily.LazyImportError-class.html\" class=\"summary-name\">LazyImportError</a><br />\n      Raised if <code>lazy import</code> is not supported, disabled or \n        failed.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.lcc.Lcc-class.html\" class=\"summary-name\">Lcc</a><br />\n      Lambert conformal conic East-/Northing location.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.errors.LenError-class.html\" class=\"summary-name\">LenError</a><br />\n      Error raised for mis-matching <code>len</code> values.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.errors.LimitError-class.html\" class=\"summary-name\">LimitError</a><br />\n      Error raised for lat- or longitudinal values or deltas exceeding \n        the given <b><code>limit</code></b> in functions <a \n        href=\"pygeodesy.formy-module.html#equirectangular\" \n        class=\"link\">equirectangular</a>, <a \n        href=\"pygeodesy.geohash-module.html#equirectangular4\" \n        class=\"link\">equirectangular4</a>, <code>nearestOn*</code> and \n        <code>simplify*</code> or methods with <code>limit</code> or \n        <code>options</code> keyword arguments.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltpTuples.Local9Tuple-class.html\" class=\"summary-name\">Local9Tuple</a><br />\n      9-Tuple <code>(x, y, z, lat, lon, height, ltp, ecef, M)</code> with\n        <i>local</i> <code>x</code>, <code>y</code>, <code>z</code> all in \n        <code>meter</code>, <i>geodetic</i> <code>lat</code>, \n        <code>lon</code>, <a href=pygeodesy.heights-module.html><code>height</code></a>, <i>local tangent plane</i> \n        <code>ltp</code> (<a href=\"pygeodesy.ltp.Ltp-class.html\" \n        class=\"link\">Ltp</a>), <code>ecef</code> (<a \n        href=\"pygeodesy.ecef.Ecef9Tuple-class.html\" \n        class=\"link\">Ecef9Tuple</a>) with <i>geocentric</i> <code>x</code>,\n        <code>y</code>, <code>z</code>, <i>geodetic</i> <code>lat</code>, \n        <code>lon</code>, <a href=pygeodesy.heights-module.html><code>height</code></a> and <i>concatenated</i> \n        rotation matrix <code>M</code> (<a \n        href=\"pygeodesy.ecef.EcefMatrix-class.html\" \n        class=\"link\">EcefMatrix</a>) or <code>None</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltp.LocalCartesian-class.html\" class=\"summary-name\">LocalCartesian</a><br />\n      Conversion between geodetic <code>(lat, lon, height)</code> and \n        <i>local cartesian</i> <code>(x, y, z)</code> coordinates with \n        <i>geodetic</i> origin <code>(lat0, lon0, height0)</code>, \n        transcoded from <i>Karney</i>'s C++ class <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1LocalCartesian.html\"\n        target=\"_top\">LocalCartesian</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltp.LocalError-class.html\" class=\"summary-name\">LocalError</a><br />\n      A <a href=\"pygeodesy.ltp.LocalCartesian-class.html\" \n        class=\"link\">LocalCartesian</a> or <a \n        href=\"pygeodesy.ltp.Ltp-class.html\" class=\"link\">Ltp</a> related \n        issue.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.units.Lon-class.html\" class=\"summary-name\">Lon</a><br />\n      Named <code>float</code> representing a longitude in \n        <code>degrees</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.units.Lon_-class.html\" class=\"summary-name\">Lon_</a><br />\n      Named <code>float</code> representing a longitude in \n        <code>degrees</code> within limits <code>low</code> and \n        <code>high</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltpTuples.Los-class.html\" class=\"summary-name\">Los</a><br />\n      A Line-Of-Sight (LOS) from a <code>LatLon</code> or \n        <code>Cartesian</code> location.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltp.Ltp-class.html\" class=\"summary-name\">Ltp</a><br />\n      A <i>local tangent plan</i> (LTP), a sub-class of \n        <code>LocalCartesian</code> with (re-)configurable ECEF converter.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.errors.MGRSError-class.html\" class=\"summary-name\">MGRSError</a><br />\n      Military Grid Reference System (MGRS) parse or other <a \n        href=\"pygeodesy.mgrs.Mgrs-class.html\" class=\"link\">Mgrs</a> issue.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.vector2d.Meeus2Tuple-class.html\" class=\"summary-name\">Meeus2Tuple</a><br />\n      2-Tuple <code>(radius, Type)</code> with <code>radius</code> and \n        <i>Meeus</i>' <code>Type</code> of the smallest circle \n        <i>containing</i> 3 points.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.units.Meter-class.html\" class=\"summary-name\">Meter</a><br />\n      Named <code>float</code> representing a distance or length in \n        <code>meter</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.units.Meter2-class.html\" class=\"summary-name\">Meter2</a><br />\n      Named <code>float</code> representing an area in <code>meter \n        squared</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.units.Meter3-class.html\" class=\"summary-name\">Meter3</a><br />\n      Named <code>float</code> representing a volume in <code>meter \n        cubed</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.units.Meter_-class.html\" class=\"summary-name\">Meter_</a><br />\n      Named <code>float</code> representing a distance or length in \n        <code>meter</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.mgrs.Mgrs-class.html\" class=\"summary-name\">Mgrs</a><br />\n      Military Grid Reference System (MGRS/NATO) references, with method \n        to convert to UTM coordinates.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.mgrs.Mgrs4Tuple-class.html\" class=\"summary-name\">Mgrs4Tuple</a><br />\n      4-Tuple <code>(zone, EN, easting, northing)</code>, \n        <code>zone</code> and grid tile <code>EN</code> as \n        <code>str</code>, <code>easting</code> and <code>northing</code> in\n        <code>meter</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.mgrs.Mgrs6Tuple-class.html\" class=\"summary-name\">Mgrs6Tuple</a><br />\n      6-Tuple <code>(zone, EN, easting, northing, band, datum)</code>, \n        with <code>zone</code>, grid tile <code>EN</code> and \n        <code>band</code> as <code>str</code>, <code>easting</code> and \n        <code>northing</code> in <code>meter</code> and <code>datum</code> \n        a <a href=\"pygeodesy.datums.Datum-class.html\" \n        class=\"link\">Datum</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geodesici.Middle5Tuple-class.html\" class=\"summary-name\">Middle5Tuple</a><br />\n      5-Tuple <code>(A, B, sMM, aMM, c)</code> with <code>A</code> and \n        <code>B</code> the <i>line segments</i> including the mid-point \n        location in <code>latM</code>, <code>lonM</code>, distance \n        <code>s1M</code> in <code>meter</code> and angular distance \n        <code>a1M</code> in <code>degrees</code>, the distance between both\n        mid-points <code>sMM</code> in <code>meter</code> and angular \n        distance <code>aMM</code> in <code>degrees</code> and coincidence \n        indicator <code>c</code> (<code>int</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.namedTuples.NearestOn2Tuple-class.html\" class=\"summary-name\">NearestOn2Tuple</a><br />\n      2-Tuple <code>(closest, fraction)</code> of the \n        <code>closest</code> point on and <code>fraction</code> along a \n        line (segment) between two points.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.namedTuples.NearestOn3Tuple-class.html\" class=\"summary-name\">NearestOn3Tuple</a><br />\n      3-Tuple <code>(closest, distance, angle)</code> of the \n        <code>closest</code> point on the polygon, either a \n        <code>LatLon</code> instance or a <a \n        href=\"pygeodesy.namedTuples.LatLon3Tuple-class.html\" \n        class=\"link\">LatLon3Tuple</a><code>(lat, lon, height)</code> and \n        the <code>distance</code> and <code>angle</code> to the \n        <code>closest</code> point are in <code>meter</code> respectively \n        compass <code>degrees360</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.deprecated.classes.NearestOn4Tuple-class.html\" class=\"summary-name\">NearestOn4Tuple</a><br />\n      DEPRECATED on 2023.10.10, see methods <a \n        href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#nearestOn4\" \n        class=\"link\">RhumbLine.nearestOn4</a> and <a \n        href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#nearestOn4\" \n        class=\"link\">RhumbLineAux.nearestOn4</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.namedTuples.NearestOn6Tuple-class.html\" class=\"summary-name\">NearestOn6Tuple</a><br />\n      6-Tuple <code>(closest, distance, fi, j, start, end)</code> with \n        the <code>closest</code> point, the <code>distance</code> in \n        <code>meter</code>, conventionally and the <code>start</code> and \n        <code>end</code> point of the path or polygon edge.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.namedTuples.NearestOn8Tuple-class.html\" class=\"summary-name\">NearestOn8Tuple</a><br />\n      8-Tuple <code>(closest, distance, fi, j, start, end, initial, \n        final)</code>, like <a \n        href=\"pygeodesy.namedTuples.NearestOn6Tuple-class.html\" \n        class=\"link\">NearestOn6Tuple</a> but extended with the \n        <code>initial</code> and the <code>final</code> bearing at the \n        reference respectively the <code>closest</code> point, both in \n        compass <code>degrees</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltpTuples.Ned-class.html\" class=\"summary-name\">Ned</a><br />\n      Local <code>North-Eeast-Down</code> (NED) location in a <i>local \n        tangent plane</i>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.deprecated.classes.Ned3Tuple-class.html\" class=\"summary-name\">Ned3Tuple</a><br />\n      DEPRECATED, use class <a \n        href=\"pygeodesy.ltpTuples.Ned4Tuple-class.html\" \n        class=\"link\">Ned4Tuple</a>, ignoring item <code>ltp</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltpTuples.Ned4Tuple-class.html\" class=\"summary-name\">Ned4Tuple</a><br />\n      4-Tuple <code>(north, east, down, ltp)</code>, all in \n        <code>meter</code> except <code>ltp</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geohash.Neighbors8Dict-class.html\" class=\"summary-name\">Neighbors8Dict</a><br />\n      8-Dict <code>(N, NE, E, SE, S, SW, W, NW)</code> of <a \n        href=\"pygeodesy.geohash.Geohash-class.html\" \n        class=\"link\">Geohash</a>es, providing key <i>and</i> attribute \n        access to the items.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.units.Northing-class.html\" class=\"summary-name\">Northing</a><br />\n      Named <code>float</code> representing a northing, conventionally in\n        <code>meter</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.errors.NumPyError-class.html\" class=\"summary-name\">NumPyError</a><br />\n      Error raised for <code>NumPy</code> issues.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.units.Number_-class.html\" class=\"summary-name\">Number_</a><br />\n      Named <code>int</code> representing a non-negative number.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.points.Numpy2LatLon-class.html\" class=\"summary-name\">Numpy2LatLon</a><br />\n      Wrapper for <code>NumPy</code> arrays as &quot;on-the-fly&quot; \n        <code>LatLon</code> points.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.deprecated.nvector.Nvector-class.html\" class=\"summary-name\">Nvector</a><br />\n      DEPRECATED on 2021.05.20, see (INTERNAL) class <a \n        href=\"pygeodesy.nvectorBase.NvectorBase-class.html\" \n        class=\"link\">pygeodesy.nvectorBase.NvectorBase</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.osgr.OSGRError-class.html\" class=\"summary-name\">OSGRError</a><br />\n      Error raised for a <a href=\"pygeodesy.osgr-module.html#parseOSGR\" \n        class=\"link\">parseOSGR</a>, <a \n        href=\"pygeodesy.osgr.Osgr-class.html\" class=\"link\">Osgr</a> or \n        other OSGR issue.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.azimuthal.Orthographic-class.html\" class=\"summary-name\">Orthographic</a><br />\n      Orthographic projection for the sphere***, see <a \n        href=\"https://Pubs.USGS.gov/pp/1395/report.pdf\" \n        target=\"_top\">Snyder, pp 148-153</a> and <a \n        href=\"https://MathWorld.Wolfram.com/OrthographicProjection.html\" \n        target=\"_top\">MathWorld-Wolfram</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.osgr.Osgr-class.html\" class=\"summary-name\">Osgr</a><br />\n      Ordnance Survey Grid References (OSGR) coordinates on the <a \n        href=\"https://www.OrdnanceSurvey.co.UK/documents/resources/guide-to-nationalgrid.pdf\"\n        target=\"_top\">National Grid</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geoids.PGMError-class.html\" class=\"summary-name\">PGMError</a><br />\n      An issue while parsing or cropping an <code>egm*.pgm</code> geoid \n        dataset.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.errors.ParseError-class.html\" class=\"summary-name\">ParseError</a><br />\n      Error parsing degrees, radians or several other formats.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.units.Phi-class.html\" class=\"summary-name\">Phi</a><br />\n      Named <code>float</code> representing a latitude in \n        <code>radians</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.namedTuples.PhiLam2Tuple-class.html\" class=\"summary-name\">PhiLam2Tuple</a><br />\n      2-Tuple <code>(phi, lam)</code> with latitude <code>phi</code> in \n        <code>radians[PI_2]</code> and longitude <code>lam</code> in \n        <code>radians[PI]</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.namedTuples.PhiLam3Tuple-class.html\" class=\"summary-name\">PhiLam3Tuple</a><br />\n      3-Tuple <code>(phi, lam, height)</code> with latitude \n        <code>phi</code> in <code>radians[PI_2]</code>, longitude \n        <code>lam</code> in <code>radians[PI]</code> and \n        <a href=pygeodesy.heights-module.html><code>height</code></a> in <code>meter</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.namedTuples.PhiLam4Tuple-class.html\" class=\"summary-name\">PhiLam4Tuple</a><br />\n      4-Tuple <code>(phi, lam, height, datum)</code> with latitude \n        <code>phi</code> in <code>radians[PI_2]</code>, longitude \n        <code>lam</code> in <code>radians[PI]</code>, <a href=pygeodesy.heights-module.html><code>height</code></a> \n        in <code>meter</code> and <a \n        href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.triaxials.triaxial3.PhiLamZet5Tuple-class.html\" class=\"summary-name\">PhiLamZet5Tuple</a><br />\n      5-Tuple <code>(phi, lam, zet, h, llk)</code> with trixial lat- lat-\n        <code>phi</code>, longitude <code>lam</code> and azimuth \n        <code>zet</code>, all in <a href=\"pygeodesy.angles.Ang-class.html\" \n        class=\"link\">Ang</a>les on and height <code>h</code> off the \n        triaxial's surface and kind <code>llk</code> set to an \n        <code>LLK</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.deprecated.classes.Phi_-class.html\" class=\"summary-name\">Phi_</a><br />\n      DEPRECATED on 2024.06.15, use class <a \n        href=\"pygeodesy.units.Phid-class.html\" class=\"link\">Phid</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.units.Phid-class.html\" class=\"summary-name\">Phid</a><br />\n      Named <code>float</code> representing a latitude in \n        <code>radians</code> converted from <code>degrees</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.namedTuples.Point3Tuple-class.html\" class=\"summary-name\">Point3Tuple</a><br />\n      3-Tuple <code>(x, y, ll)</code> in <code>meter</code>, \n        <code>meter</code> and <code>LatLon</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.namedTuples.Points2Tuple-class.html\" class=\"summary-name\">Points2Tuple</a><br />\n      2-Tuple <code>(number, points)</code> with the <code>number</code> \n        of points and -possible reduced- <code>list</code> or \n        <code>tuple</code> of <code>points</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.errors.PointsError-class.html\" class=\"summary-name\">PointsError</a><br />\n      Error for an insufficient number of points.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.iters.PointsIter-class.html\" class=\"summary-name\">PointsIter</a><br />\n      Iterator for <code>points</code> with optional loop-back and \n        copies.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geodesicx.gxarea.PolygonArea-class.html\" class=\"summary-name\">PolygonArea</a><br />\n      For <code>geographiclib</code> compatibility, sub-class of <a \n        href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html\" \n        class=\"link\">GeodesicAreaExact</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.units.Precision_-class.html\" class=\"summary-name\">Precision_</a><br />\n      Named <code>int</code> with optional <code>low</code> and \n        <code>high</code> limits representing a precision.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.props.Property-class.html\" class=\"summary-name\">Property</a>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.props.Property_RO-class.html\" class=\"summary-name\">Property_RO</a>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.units.Radians-class.html\" class=\"summary-name\">Radians</a><br />\n      Named <code>float</code> representing a coordinate in \n        <code>radians</code>, optionally clipped.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.units.Radians2-class.html\" class=\"summary-name\">Radians2</a><br />\n      Named <code>float</code> representing a distance in <code>radians \n        squared</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.units.Radians_-class.html\" class=\"summary-name\">Radians_</a><br />\n      Named <code>float</code> representing a coordinate in \n        <code>radians</code> with optional limits <code>low</code> and \n        <code>high</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.formy.Radical2Tuple-class.html\" class=\"summary-name\">Radical2Tuple</a><br />\n      2-Tuple <code>(ratio, xline)</code> of the <i>radical</i> \n        <code>ratio</code> and <i>radical</i> <code>xline</code>, both \n        <code>scalar</code> and <code>0.0 &lt;= ratio &lt;= 1.0</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.vector2d.Radii11Tuple-class.html\" class=\"summary-name\">Radii11Tuple</a><br />\n      11-Tuple <code>(rA, rB, rC, cR, rIn, riS, roS, a, b, c, s)</code> \n        with the <code>Tangent</code> circle radii <code>rA</code>, \n        <code>rB</code> and <code>rC</code>, the <code>circumradius</code> \n        <code>cR</code>, the <code>Incircle</code> radius <code>rIn</code> \n        aka <code>inradius</code>, the inner and outer <i>Soddy</i> circle \n        radii <code>riS</code> and <code>roS</code>, the sides \n        <code>a</code>, <code>b</code> and <code>c</code> and \n        semi-perimeter <code>s</code> of a triangle, all in \n        <code>meter</code> conventionally.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.unitsBase.Radius-class.html\" class=\"summary-name\">Radius</a><br />\n      Named <code>float</code> representing a radius, conventionally in \n        <code>meter</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.cartesianBase.RadiusThetaPhi3Tuple-class.html\" class=\"summary-name\">RadiusThetaPhi3Tuple</a><br />\n      3-Tuple <code>(r, theta, phi)</code> with radial distance \n        <code>r</code> in <code>meter</code>, inclination \n        <code>theta</code> (with respect to the positive z-axis) and \n        azimuthal angle <code>phi</code> in <a \n        href=\"pygeodesy.units.Degrees-class.html\" class=\"link\">Degrees</a> \n        <i>or</i> <a href=\"pygeodesy.units.Radians-class.html\" \n        class=\"link\">Radians</a> representing a <a \n        href=\"https://WikiPedia.org/wiki/Spherical_coordinate_system\" \n        target=\"_top\">spherical, polar position</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.units.Radius_-class.html\" class=\"summary-name\">Radius_</a><br />\n      Named <code>float</code> with optional <code>low</code> and \n        <code>high</code> limits representing a radius, conventionally in \n        <code>meter</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.errors.RangeError-class.html\" class=\"summary-name\">RangeError</a><br />\n      Error raised for lat- or longitude values outside the \n        <b><code>clip</code></b>, <b><code>clipLat</code></b>, \n        <b><code>clipLon</code></b> in functions <a \n        href=\"pygeodesy.dms-module.html#parse3llh\" \n        class=\"link\">parse3llh</a>, <a \n        href=\"pygeodesy.dms-module.html#parseDMS\" \n        class=\"link\">parseDMS</a>, <a \n        href=\"pygeodesy.dms-module.html#parseDMS2\" \n        class=\"link\">parseDMS2</a> and <a \n        href=\"pygeodesy.dms-module.html#parseRad\" class=\"link\">parseRad</a>\n        or the <b><code>limit</code></b> set with functions <a \n        href=\"pygeodesy.dms-module.html#clipDegrees\" \n        class=\"link\">clipDegrees</a> and <a \n        href=\"pygeodesy.dms-module.html#clipRadians\" \n        class=\"link\">clipRadians</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.trf.RefFrame-class.html\" class=\"summary-name\">RefFrame</a><br />\n      Terrestrial Reference Frame (TRF) parameters.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.resections.ResectionError-class.html\" class=\"summary-name\">ResectionError</a><br />\n      Error raised for issues in <a \n        href=\"pygeodesy.resections-module.html\" \n        class=\"link\">pygeodesy.resections</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.fsums.ResidualError-class.html\" class=\"summary-name\">ResidualError</a><br />\n      Error raised for a division, power or root operation of an <a \n        href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> \n        instance with a <code>residual</code> <i>ratio</i> exceeding the <a\n        href=\"pygeodesy.fsums.Fsum-class.html#RESIDUAL\" \n        class=\"link\">RESIDUAL</a> threshold.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geohash.Resolutions2Tuple-class.html\" class=\"summary-name\">Resolutions2Tuple</a><br />\n      2-Tuple <code>(res1, res2)</code> with the primary \n        <i>(longitudinal)</i> and secondary <i>(latitudinal)</i> \n        resolution, both in <code>degrees</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.namedTuples.Reverse4Tuple-class.html\" class=\"summary-name\">Reverse4Tuple</a><br />\n      4-Tuple <code>(lat, lon, gamma, scale)</code> with \n        <code>lat</code>- and <code>lon</code>gitude in \n        <code>degrees</code>, meridian convergence <code>gamma</code> at \n        point in <code>degrees</code> and the <code>scale</code> of \n        projection at point <code>scalar</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.rhumb.ekx.Rhumb-class.html\" class=\"summary-name\">Rhumb</a><br />\n      Class to solve the <i>direct</i> and <i>inverse rhumb</i> problems,\n        based on <i>elliptic functions</i> or <i>Kr&#252;ger series \n        expansion</i>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.deprecated.classes.Rhumb7Tuple-class.html\" class=\"summary-name\">Rhumb7Tuple</a><br />\n      DEPRECATED, use class <a \n        href=\"pygeodesy.karney.Rhumb8Tuple-class.html\" class=\"link\" \n        onclick=\"show_private();\">Rhumb8Tuple</a>, ignoring item \n        <code>a12</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.karney.Rhumb8Tuple-class.html\" class=\"summary-name\">Rhumb8Tuple</a><br />\n      8-Tuple <code>(lat1, lon1, lat2, lon2, azi12, s12, S12, a12)</code>\n        with lat- <code>lat1</code>, <code>lat2</code> and longitudes \n        <code>lon1</code>, <code>lon2</code> of both points, the azimuth of\n        the rhumb line <code>azi12</code>, the distance <code>s12</code>, \n        the area <code>S12</code> under the rhumb line and the angular \n        distance <code>a12</code> between both points.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.rhumb.aux_.RhumbAux-class.html\" class=\"summary-name\">RhumbAux</a><br />\n      Class to solve the <i>direct</i> and <i>inverse rhumb</i> problems,\n        based on <i>Auxiliary Latitudes</i> for accuracy near the poles.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.errors.RhumbError-class.html\" class=\"summary-name\">RhumbError</a><br />\n      Error raised for a rhumb <a href=\"pygeodesy.rhumb.aux_-module.html\"\n        class=\"link\" onclick=\"show_private();\">aux_</a>, <a \n        href=\"pygeodesy.rhumb.ekx-module.html\" class=\"link\" \n        onclick=\"show_private();\">ekx</a> or <a \n        href=\"pygeodesy.rhumb.solve-module.html\" class=\"link\" \n        onclick=\"show_private();\">solve</a> issue.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.rhumb.ekx.RhumbLine-class.html\" class=\"summary-name\">RhumbLine</a><br />\n      Compute one or several points on a single rhumb line.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.rhumb.aux_.RhumbLineAux-class.html\" class=\"summary-name\">RhumbLineAux</a><br />\n      Compute one or several points on a single rhumb line.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.rhumb.solve.RhumbLineSolve-class.html\" class=\"summary-name\">RhumbLineSolve</a><br />\n      Wrapper to invoke <i>Karney</i>'s <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/RhumbSolve.1.html\"\n        target=\"_top\">RhumbSolve</a> like a class, similar to <a \n        href=\"pygeodesy.rhumb.ekx.RhumbLine-class.html\" \n        class=\"link\">pygeodesy.RhumbLine</a> and <a \n        href=\"pygeodesy.rhumb.aux_.RhumbLineAux-class.html\" \n        class=\"link\">pygeodesy.RhumbLineAux</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.deprecated.classes.RhumbOrder2Tuple-class.html\" class=\"summary-name\">RhumbOrder2Tuple</a><br />\n      DEPRECATED, see deprecated method <a \n        href=\"pygeodesy.rhumb.ekx.Rhumb-class.html#orders\" \n        class=\"link\">Rhumb.orders</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.rhumb.solve.RhumbSolve-class.html\" class=\"summary-name\">RhumbSolve</a><br />\n      Wrapper to invoke <i>Karney</i>'s <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/RhumbSolve.1.html\"\n        target=\"_top\">RhumbSolve</a> like a class, similar to <a \n        href=\"pygeodesy.rhumb.ekx.Rhumb-class.html\" \n        class=\"link\">pygeodesy.Rhumb</a> and <a \n        href=\"pygeodesy.rhumb.aux_.RhumbAux-class.html\" \n        class=\"link\">pygeodesy.RhumbAux</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.rhumb.solve.RhumbSolve7Tuple-class.html\" class=\"summary-name\">RhumbSolve7Tuple</a><br />\n      7-Tuple <code>(lat1, lon1, lat2, lon2, azi12, s12, S12)</code> with\n        lat- <code>lat1</code>, <code>lat2</code> and longitudes \n        <code>lon1</code>, <code>lon2</code> of both points, the azimuth of\n        the rhumb line <code>azi12</code>, the distance <code>s12</code> \n        and the area <code>S12</code> under the rhumb line between both \n        points.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.units.Scalar-class.html\" class=\"summary-name\">Scalar</a><br />\n      Named <code>float</code> representing a factor, fraction, scale, \n        etc.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.units.Scalar_-class.html\" class=\"summary-name\">Scalar_</a><br />\n      Named <code>float</code> with optional <code>low</code> and \n        <code>high</code> limits representing a factor, fraction, scale, \n        etc.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.errors.SciPyError-class.html\" class=\"summary-name\">SciPyError</a><br />\n      Error raised for <code>SciPy</code> issues.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.errors.SciPyWarning-class.html\" class=\"summary-name\">SciPyWarning</a><br />\n      Error thrown for <code>SciPy</code> warnings.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.points.Shape2Tuple-class.html\" class=\"summary-name\">Shape2Tuple</a><br />\n      2-Tuple <code>(nrows, ncols)</code>, the number of rows and \n        columns, both <code>int</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geohash.Sizes3Tuple-class.html\" class=\"summary-name\">Sizes3Tuple</a><br />\n      3-Tuple <code>(height, width, radius)</code> with latitudinal \n        <a href=pygeodesy.heights-module.html><code>height</code></a>, longitudinal <code>width</code> and area \n        <code>radius</code>, all in <code>meter</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.vector2d.Soddy4Tuple-class.html\" class=\"summary-name\">Soddy4Tuple</a><br />\n      4-Tuple <code>(radius, center, deltas, outer)</code> with \n        <code>radius</code> and (trilaterated) <code>center</code> of the \n        <i>inner</i> <i>Soddy</i> circle and the radius of the \n        <code>outer</code> <i>Soddy</i> circle.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.azimuthal.Stereographic-class.html\" class=\"summary-name\">Stereographic</a><br />\n      Stereographic projection for the sphere***, see <a \n        href=\"https://Pubs.USGS.gov/pp/1395/report.pdf\" \n        target=\"_top\">Snyder, pp 157-160</a> and <a \n        href=\"https://MathWorld.Wolfram.com/StereographicProjection.html\" \n        target=\"_top\">MathWorld-Wolfram</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.unitsBase.Str-class.html\" class=\"summary-name\">Str</a><br />\n      Named, callable <code>str</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.interns.Str_-class.html\" class=\"summary-name\">Str_</a><br />\n      Extended, <i>callable</i> <code>str</code> class, not nameable.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.resections.Survey3Tuple-class.html\" class=\"summary-name\">Survey3Tuple</a><br />\n      3-Tuple <code>(PA, PB, PC)</code> with distance from survey point \n        <code>P</code> to each of the triangle corners <code>A</code>, \n        <code>B</code> and <code>C</code> in <code>meter</code>, \n        conventionally.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.errors.TRFError-class.html\" class=\"summary-name\">TRFError</a><br />\n      Terrestrial Reference Frame (TRF), <a \n        href=\"pygeodesy.units.Epoch-class.html\" class=\"link\">Epoch</a>, <a \n        href=\"pygeodesy.trf.RefFrame-class.html\" class=\"link\">RefFrame</a> \n        or <a href=\"pygeodesy.trf.RefFrame-class.html\" \n        class=\"link\">RefFrame</a> conversion issue.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.trf.TRFXform-class.html\" class=\"summary-name\">TRFXform</a><br />\n      A Terrestrial Reference Frame (TRF) converter between two reference\n        frames observed at an <code>epoch</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.trf.TRFXform7Tuple-class.html\" class=\"summary-name\">TRFXform7Tuple</a><br />\n      7-Tuple <code>(tx, ty, tz, s, sx, sy, sz)</code> of conversion \n        parameters with translations <code>tx</code>, <code>ty</code> and \n        <code>tz</code> in <code>milli-meter</code>, scale <code>s</code> \n        in <code>ppB</code> and rotations <code>sx</code>, <code>sy</code> \n        and <code>sz</code> in <code>milli-arc-seconds</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.resections.Tienstra7Tuple-class.html\" class=\"summary-name\">Tienstra7Tuple</a><br />\n      7-Tuple <code>(pointP, A, B, C, a, b, c)</code> with survey \n        <code>pointP</code>, interior triangle angles <code>A</code>, \n        <code>B</code> and <code>C</code> in <code>degrees</code> and \n        triangle sides <code>a</code>, <code>b</code> and <code>c</code> in\n        <code>meter</code>, conventionally.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.datums.Transform-class.html\" class=\"summary-name\">Transform</a><br />\n      Helmert <i>datum</i> transformation.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.deprecated.classes.Transform7Tuple-class.html\" class=\"summary-name\">Transform7Tuple</a><br />\n      DEPRECATED on 2024.02.02, use class <a \n        href=\"pygeodesy.trf.TRFXform7Tuple-class.html\" \n        class=\"link\">TRFXform7Tuple</a>, <i>without</i> keyword arguments.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.trf.TransformXform-class.html\" class=\"summary-name\">TransformXform</a><br />\n      Helmert transformation, extended with an <code>Xform</code> TRF \n        converter.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.deprecated.classes.TriAngle4Tuple-class.html\" class=\"summary-name\">TriAngle4Tuple</a><br />\n      DEPRECATED on 2023.09.14, use class <a \n        href=\"pygeodesy.resections.TriAngle5Tuple-class.html\" \n        class=\"link\">TriAngle5Tuple</a>, ignoring item <code>area</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.resections.TriAngle5Tuple-class.html\" class=\"summary-name\">TriAngle5Tuple</a><br />\n      5-Tuple <code>(radA, radB, radC, rIn, area)</code> with the \n        interior angles at triangle corners <code>A</code>, <code>B</code> \n        and <code>C</code> in <code>radians</code>, the \n        <code>InCircle</code> radius <code>rIn</code> aka \n        <code>inradius</code> in <code>meter</code> and the triangle \n        <code>area</code> in <code>meter</code> <i>squared</i>, \n        conventionally.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.resections.TriSide2Tuple-class.html\" class=\"summary-name\">TriSide2Tuple</a><br />\n      2-Tuple <code>(a, radA)</code> with triangle side <code>a</code> in\n        <code>meter</code>, conventionally and angle <code>radA</code> at \n        the opposite triangle corner in <code>radians</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.resections.TriSide4Tuple-class.html\" class=\"summary-name\">TriSide4Tuple</a><br />\n      4-Tuple <code>(a, b, radC, d)</code> with interior angle \n        <code>radC</code> at triangle corner <code>C</code> in \n        <code>radians</code>with the length of triangle sides \n        <code>a</code> and <code>b</code> and with triangle height \n        <code>d</code> perpendicular to triangle side <code>c</code>, in \n        the same units as triangle sides <code>a</code> and <code>b</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.namedTuples.Triangle7Tuple-class.html\" class=\"summary-name\">Triangle7Tuple</a><br />\n      7-Tuple <code>(A, a, B, b, C, c, area)</code> with interior angles \n        <code>A</code>, <code>B</code> and <code>C</code> in \n        <code>degrees</code>, spherical sides <code>a</code>, \n        <code>b</code> and <code>c</code> in <code>meter</code> \n        conventionally and the <code>area</code> of a (spherical) triangle \n        in <i>square</i> <code>meter</code> conventionally.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.namedTuples.Triangle8Tuple-class.html\" class=\"summary-name\">Triangle8Tuple</a><br />\n      8-Tuple <code>(A, a, B, b, C, c, D, E)</code> with interior angles \n        <code>A</code>, <code>B</code> and <code>C</code>, spherical sides \n        <code>a</code>, <code>b</code> and <code>c</code>, the <i>spherical\n        deficit</i> <code>D</code> and the <i>spherical excess</i> \n        <code>E</code> of a (spherical) triangle, all in \n        <code>radians</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.errors.TriangleError-class.html\" class=\"summary-name\">TriangleError</a><br />\n      Error raised for triangle, intersection or resection issues.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.triaxials.triaxial5.Triaxial-class.html\" class=\"summary-name\">Triaxial</a><br />\n      <i>Ordered</i> triaxial ellipsoid.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html\" class=\"summary-name\">Triaxial3</a><br />\n      <i>Ordered</i> triaxial ellipsoid convering between cartesian and \n        lat-/longitudes using using class <a \n        href=\"pygeodesy.angles.Ang-class.html\" class=\"link\">Ang</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.triaxials.triaxial3.Triaxial3B-class.html\" class=\"summary-name\">Triaxial3B</a><br />\n      Triaxial ellipsoid specified by its middle semi-axis and shape.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.triaxials.bases.TriaxialError-class.html\" class=\"summary-name\">TriaxialError</a><br />\n      Raised for any triaxial issue.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.triaxials.triaxial5.Triaxial_-class.html\" class=\"summary-name\">Triaxial_</a><br />\n      <i>Unordered</i> triaxial ellipsoid.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.vector2d.Triaxum5Tuple-class.html\" class=\"summary-name\">Triaxum5Tuple</a><br />\n      5-Tuple <code>(a, b, c, rank, residuals)</code> with the \n        (unordered) triaxial radii <code>a</code>, <code>b</code> and \n        <code>c</code> of an ellipsoid <i>least-squares</i> fitted through \n        given points and the <code>rank</code> and <code>residuals</code> \n        -if any- from <a \n        href=\"https://NumPy.org/doc/stable/reference/generated/numpy.linalg.lstsq.html\"\n        target=\"_top\">numpy.linalg.lstsq</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.namedTuples.Trilaterate5Tuple-class.html\" class=\"summary-name\">Trilaterate5Tuple</a><br />\n      5-Tuple <code>(min, minPoint, max, maxPoint, n)</code> with \n        <code>min</code> and <code>max</code> in <code>meter</code>, the \n        corresponding trilaterated <code>minPoint</code> and \n        <code>maxPoint</code> as <code>LatLon</code> and the number \n        <code>n</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.points.Tuple2LatLon-class.html\" class=\"summary-name\">Tuple2LatLon</a><br />\n      Wrapper for tuple sequences as &quot;on-the-fly&quot; \n        <code>LatLon</code> points.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ups.UPSError-class.html\" class=\"summary-name\">UPSError</a><br />\n      Universal Polar Stereographic (UPS) parse or other <a \n        href=\"pygeodesy.ups.Ups-class.html\" class=\"link\">Ups</a> issue.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.utm.UTMError-class.html\" class=\"summary-name\">UTMError</a><br />\n      Universal Transverse Mercator (UTM parse or other <a \n        href=\"pygeodesy.utm.Utm-class.html\" class=\"link\">Utm</a> issue.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.utmups.UTMUPSError-class.html\" class=\"summary-name\">UTMUPSError</a><br />\n      Universal Transverse Mercator/Universal Polar Stereographic \n        (UTM/UPS) parse, validate or other issue.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.errors.UnitError-class.html\" class=\"summary-name\">UnitError</a><br />\n      Default exception for <a href=\"pygeodesy.units-module.html\" \n        class=\"link\">units</a> issues for a value exceeding the \n        <code>low</code> or <code>high</code> limit.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ups.Ups-class.html\" class=\"summary-name\">Ups</a><br />\n      Universal Polar Stereographic (UPS) coordinate.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.utm.Utm-class.html\" class=\"summary-name\">Utm</a><br />\n      Universal Transverse Mercator (UTM) coordinate.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.namedTuples.UtmUps2Tuple-class.html\" class=\"summary-name\">UtmUps2Tuple</a><br />\n      2-Tuple <code>(zone, hemipole)</code> as <code>int</code> and \n        <code>str</code>, where <code>zone</code> is <code>1..60</code> for\n        UTM or <code>0</code> for UPS and <code>hemipole</code> \n        <code>'N'|'S'</code> is the UTM hemisphere or the UPS pole.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.deprecated.classes.UtmUps4Tuple-class.html\" class=\"summary-name\">UtmUps4Tuple</a><br />\n      DEPRECATED and OBSOLETE, expect a <a \n        href=\"pygeodesy.namedTuples.UtmUps5Tuple-class.html\" \n        class=\"link\">UtmUps5Tuple</a> from method \n        <code>pygeodesy.Mgrs.toUtm(utm=None)</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.namedTuples.UtmUps5Tuple-class.html\" class=\"summary-name\">UtmUps5Tuple</a><br />\n      5-Tuple <code>(zone, hemipole, easting, northing, band)</code> as \n        <code>int</code>, <code>str</code>, <code>meter</code>, \n        <code>meter</code> and <code>band</code> letter, where \n        <code>zone</code> is <code>1..60</code> for UTM or <code>0</code> \n        for UPS, <code>hemipole</code> <code>'N'|'S'</code> is the UTM \n        hemisphere or the UPS pole and <code>band</code> is \n        <code>&quot;&quot;</code> or the <i>longitudinal</i> UTM band \n        <code>'C'|'D'|..|'W'|'X'</code> or <i>polar</i> UPS band \n        <code>'A'|'B'|'Y'|'Z'</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.namedTuples.UtmUps8Tuple-class.html\" class=\"summary-name\">UtmUps8Tuple</a><br />\n      8-Tuple <code>(zone, hemipole, easting, northing, band, datum, \n        gamma, scale)</code> as <code>int</code>, <code>str</code>, \n        <code>meter</code>, <code>meter</code>, <code>band</code> letter, \n        <code>Datum</code>, <code>degrees</code> and <code>scalar</code>, \n        where <code>zone</code> is <code>1..60</code> for UTM or \n        <code>0</code> for UPS, <code>hemipole</code> <code>'N'|'S'</code> \n        is the UTM hemisphere or the UPS pole and <code>band</code> is \n        <code>&quot;&quot;</code> or the <i>longitudinal</i> UTM band \n        <code>'C'|'D'|..|'W'|'X'</code> or <i>polar</i> UPS band \n        <code>'A'|'B'|'Y'|'Z'</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.namedTuples.UtmUpsLatLon5Tuple-class.html\" class=\"summary-name\">UtmUpsLatLon5Tuple</a><br />\n      5-Tuple <code>(zone, band, hemipole, lat, lon)</code> as \n        <code>int</code>, <code>str</code>, <code>str</code>, \n        <code>degrees90</code> and <code>degrees180</code>, where \n        <code>zone</code> is <code>1..60</code> for UTM or <code>0</code> \n        for UPS, <code>band</code> is <code>&quot;&quot;</code> or the \n        <i>longitudinal</i> UTM band <code>'C'|'D'|..|'W'|'X'</code> or \n        <i>polar</i> UPS band <code>'A'|'B'|'Y'|'Z'</code> and \n        <code>hemipole</code> <code>'N'|'S'</code> is the UTM hemisphere or\n        the UPS pole.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltpTuples.Uvw-class.html\" class=\"summary-name\">Uvw</a><br />\n      3-D <code>u-v-w</code> (UVW) components.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltpTuples.Uvw3Tuple-class.html\" class=\"summary-name\">Uvw3Tuple</a><br />\n      3-Tuple <code>(u, v, w)</code>, in <code>meter</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.namedTuples.Vector2Tuple-class.html\" class=\"summary-name\">Vector2Tuple</a><br />\n      2-Tuple <code>(x, y)</code> of (geocentric) components, each in \n        <code>meter</code> or the same <code>units</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.namedTuples.Vector3Tuple-class.html\" class=\"summary-name\">Vector3Tuple</a><br />\n      3-Tuple <code>(x, y, z)</code> of (geocentric) components, all in \n        <code>meter</code> or the same <code>units</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.vector3d.Vector3d-class.html\" class=\"summary-name\">Vector3d</a><br />\n      Extended 3-D vector.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.namedTuples.Vector4Tuple-class.html\" class=\"summary-name\">Vector4Tuple</a><br />\n      4-Tuple <code>(x, y, z, h)</code> of (geocentric) components, all \n        in <code>meter</code> or the same <code>units</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.errors.VectorError-class.html\" class=\"summary-name\">VectorError</a><br />\n      <a href=\"pygeodesy.vector3d.Vector3d-class.html\" \n        class=\"link\">Vector3d</a>, <code>Cartesian*</code> or \n        <code>*Nvector</code> issues.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoidalVincenty.VincentyError-class.html\" class=\"summary-name\">VincentyError</a><br />\n      Error raised by <i>Vincenty</i>'s <code>Direct</code> and \n        <code>Inverse</code> methods for coincident points or lack of \n        convergence.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.wgrs.WGRSError-class.html\" class=\"summary-name\">WGRSError</a><br />\n      World Geographic Reference System (WGRS) encode, decode or other <a\n        href=\"pygeodesy.wgrs.Georef-class.html\" class=\"link\">Georef</a> \n        issue.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.webmercator.WebMercatorError-class.html\" class=\"summary-name\">WebMercatorError</a><br />\n      Web Mercator (WM) parser or <a \n        href=\"pygeodesy.webmercator.Wm-class.html\" class=\"link\">Wm</a> \n        issue.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.webmercator.Wm-class.html\" class=\"summary-name\">Wm</a><br />\n      Web Mercator (WM) coordinate.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geodesici.XDict-class.html\" class=\"summary-name\">XDict</a><br />\n      4+Item result from <a \n        href=\"pygeodesy.geodesici.Intersectool-class.html\" \n        class=\"link\">Intersectool</a> and <a \n        href=\"pygeodesy.geodesici.Intersector-class.html\" \n        class=\"link\">Intersector</a> methods <code>All</code>, \n        <code>Closest</code>, <code>Next</code> and <code>Segment</code> \n        with the intersection offsets <code>sA</code>, <code>sB</code> and \n        <code>sX0</code> in <code>meter</code> and the coincidence \n        indicator <code>c</code>, an <code>int</code>, +1 for parallel, -1 \n        for anti-parallel or 0 otherwise.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.deprecated.classes.XDist-class.html\" class=\"summary-name\">XDist</a><br />\n      DEPRECATED on 2024.07.02, use class <a \n        href=\"pygeodesy.named.ADict-class.html\" class=\"link\">ADict</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltpTuples.Xyz4Tuple-class.html\" class=\"summary-name\">Xyz4Tuple</a><br />\n      4-Tuple <code>(x, y, z, ltp)</code>, all in <code>meter</code> \n        except <code>ltp</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltpTuples.XyzLocal-class.html\" class=\"summary-name\">XyzLocal</a><br />\n      Local <code>(x, y, z)</code> in a <i>local tangent plane</i> (LTP),\n        also base class for local <a \n        href=\"pygeodesy.ltpTuples.Enu-class.html\" class=\"link\">Enu</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.units.Zone-class.html\" class=\"summary-name\">Zone</a><br />\n      Named <code>int</code> representing a UTM/UPS zone number.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" class=\"summary-name\">a_f2Tuple</a><br />\n      2-Tuple <code>(a, f)</code> specifying an ellipsoid by \n        <i>equatorial</i> radius <code>a</code> in <code>meter</code> and \n        scalar <i>flattening</i> <code>f</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.props.property_RO-class.html\" class=\"summary-name\">property_RO</a>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.props.property_ROnce-class.html\" class=\"summary-name\">property_ROnce</a>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.props.property_ROver-class.html\" class=\"summary-name\">property_ROver</a>\n    </td>\n  </tr>\n</table>\n<!-- ==================== FUNCTIONS ==================== -->\n<a name=\"section-Functions\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Functions</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"Deg\"></a><span class=\"summary-sig-name\">Deg</span>(<span class=\"summary-sig-arg\">deg</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Return an <a href=\"pygeodesy.angles.Ang-class.html\" \n      class=\"link\">Ang</a> from <code>deg</code> degrees or an other <a \n      href=\"pygeodesy.angles.Ang-class.html\" class=\"link\">Ang</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"EcefCartesian\"></a><span class=\"summary-sig-name\">EcefCartesian</span>(<span class=\"summary-sig-arg\">*args</span>,\n        <span class=\"summary-sig-arg\">**kwds</span>)</span><br />\n      DEPRECATED, use class <a \n      href=\"pygeodesy.ltp.LocalCartesian-class.html\" \n      class=\"link\">LocalCartesian</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"Fn_rt\"></a><span class=\"summary-sig-name\">Fn_rt</span>(<span class=\"summary-sig-arg\">root</span>,\n        <span class=\"summary-sig-arg\">*xs</span>,\n        <span class=\"summary-sig-arg\">**name_RESIDUAL_raiser</span>)</span><br />\n      DEPRECATED on 2024.04.17, use class <a \n      href=\"pygeodesy.fmath.Froot-class.html\" class=\"link\">Froot</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"FrechetCosineAndoyerLambert\"></a><span class=\"summary-sig-name\">FrechetCosineAndoyerLambert</span>(<span class=\"summary-sig-arg\">point1s</span>,\n        <span class=\"summary-sig-arg\">**kwds</span>)</span><br />\n      DEPRECATED on 2024.12.31, use class <a \n      href=\"pygeodesy.frechet.FrechetCosineLaw-class.html\" \n      class=\"link\">FrechetCosineLaw</a> with <code><b>corr</b>=1</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"FrechetCosineForsytheAndoyerLambert\"></a><span class=\"summary-sig-name\">FrechetCosineForsytheAndoyerLambert</span>(<span class=\"summary-sig-arg\">point1s</span>,\n        <span class=\"summary-sig-arg\">**kwds</span>)</span><br />\n      DEPRECATED on 2024.12.31, use class <a \n      href=\"pygeodesy.frechet.FrechetCosineLaw-class.html\" \n      class=\"link\">FrechetCosineLaw</a> with <code><b>corr</b>=2</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#Fsum2product\" class=\"summary-sig-name\">Fsum2product</a>(<span class=\"summary-sig-arg\">*xs</span>,\n        <span class=\"summary-sig-arg\">**kwds</span>)</span><br />\n      DEPRECATED on 2024.09.19, use <a \n      href=\"pygeodesy.fsums.Fsum-class.html\" \n      class=\"link\">Fsum</a><code>(*<b>xs</b>, <b>f2product</b>=True, \n      ...)</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"Geodesic_WGS84\"></a><span class=\"summary-sig-name\">Geodesic_WGS84</span>()</span><br />\n      Get the <i>wrapped</i> <a \n      href=\"pygeodesy.geodesicw.Geodesic-class.html\" \n      class=\"link\">Geodesic</a><code>(WGS84)</code> singleton, provided <a \n      href=\"https://PyPI.org/project/geographiclib\" \n      target=\"_top\">geographiclib</a> is installed, otherwise an \n      <code>ImportError</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"HausdorffCosineAndoyerLambert\"></a><span class=\"summary-sig-name\">HausdorffCosineAndoyerLambert</span>(<span class=\"summary-sig-arg\">point1s</span>,\n        <span class=\"summary-sig-arg\">**kwds</span>)</span><br />\n      DEPRECATED on 2024.12.31, use class <a \n      href=\"pygeodesy.hausdorff.HausdorffCosineLaw-class.html\" \n      class=\"link\">HausdorffCosineLaw</a> with <code><b>corr</b>=1</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"HausdorffCosineForsytheAndoyerLambert\"></a><span class=\"summary-sig-name\">HausdorffCosineForsytheAndoyerLambert</span>(<span class=\"summary-sig-arg\">point1s</span>,\n        <span class=\"summary-sig-arg\">**kwds</span>)</span><br />\n      DEPRECATED on 2024.12.31, use class <a \n      href=\"pygeodesy.hausdorff.HausdorffCosineLaw-class.html\" \n      class=\"link\">HausdorffCosineLaw</a> with <code><b>corr</b>=2</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"HeightIDW\"></a><span class=\"summary-sig-name\">HeightIDW</span>(<span class=\"summary-sig-arg\">knots</span>,\n        <span class=\"summary-sig-arg\">**kwds</span>)</span><br />\n      DEPRECATED, use class <a \n      href=\"pygeodesy.heights.HeightIDWeuclidean-class.html\" \n      class=\"link\">HeightIDWeuclidean</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"HeightIDW2\"></a><span class=\"summary-sig-name\">HeightIDW2</span>(<span class=\"summary-sig-arg\">knots</span>,\n        <span class=\"summary-sig-arg\">**kwds</span>)</span><br />\n      DEPRECATED, use class <a \n      href=\"pygeodesy.heights.HeightIDWequirectangular-class.html\" \n      class=\"link\">HeightIDWequirectangular</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"HeightIDW3\"></a><span class=\"summary-sig-name\">HeightIDW3</span>(<span class=\"summary-sig-arg\">knots</span>,\n        <span class=\"summary-sig-arg\">**kwds</span>)</span><br />\n      DEPRECATED, use class <a \n      href=\"pygeodesy.heights.HeightIDWhaversine-class.html\" \n      class=\"link\">HeightIDWhaversine</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"HeightIDWcosineAndoyerLambert\"></a><span class=\"summary-sig-name\">HeightIDWcosineAndoyerLambert</span>(<span class=\"summary-sig-arg\">knots</span>,\n        <span class=\"summary-sig-arg\">**kwds</span>)</span><br />\n      DEPRECATED on 2024.12.31, use class <a \n      href=\"pygeodesy.heights.HeightIDWcosineLaw-class.html\" \n      class=\"link\">HeightIDWcosineLaw</a> with <code><b>corr</b>=1</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"HeightIDWcosineForsytheAndoyerLambert\"></a><span class=\"summary-sig-name\">HeightIDWcosineForsytheAndoyerLambert</span>(<span class=\"summary-sig-arg\">knots</span>,\n        <span class=\"summary-sig-arg\">**kwds</span>)</span><br />\n      DEPRECATED on 2024.12.31, use class <a \n      href=\"pygeodesy.heights.HeightIDWcosineLaw-class.html\" \n      class=\"link\">HeightIDWcosineLaw</a> with <code><b>corr</b>=2</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#NM2m\" class=\"summary-sig-name\">NM2m</a>(<span class=\"summary-sig-arg\">nm</span>)</span><br />\n      Convert a length in nautical miles to meter (<code>m</code>).</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"Rad\"></a><span class=\"summary-sig-name\">Rad</span>(<span class=\"summary-sig-arg\">rad</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Return an <a href=\"pygeodesy.angles.Ang-class.html\" \n      class=\"link\">Ang</a> from <code>rad</code> radians or an other <a \n      href=\"pygeodesy.angles.Ang-class.html\" class=\"link\">Ang</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"RefFrameError\"></a><span class=\"summary-sig-name\">RefFrameError</span>(<span class=\"summary-sig-arg\">*args</span>,\n        <span class=\"summary-sig-arg\">**kwds</span>)</span><br />\n      DEPRECATED, use class <a href=\"pygeodesy.errors.TRFError-class.html\" \n      class=\"link\">TRFError</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#SM2m\" class=\"summary-sig-name\">SM2m</a>(<span class=\"summary-sig-arg\">sm</span>)</span><br />\n      Convert a length in statute miles to meter (<code>m</code>).</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#SinCos2\" class=\"summary-sig-name\">SinCos2</a>(<span class=\"summary-sig-arg\">x</span>,\n        <span class=\"summary-sig-arg\">unit</span>=<span class=\"summary-sig-default\">&lt;class 'pygeodesy.units.Radians'&gt;</span>)</span><br />\n      Get <code>sin</code> and <code>cos</code> of <i>typed</i> angle.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#UtmUps\" class=\"summary-sig-name\">UtmUps</a>(<span class=\"summary-sig-arg\">zone</span>,\n        <span class=\"summary-sig-arg\">hemipole</span>,\n        <span class=\"summary-sig-arg\">easting</span>,\n        <span class=\"summary-sig-arg\">northing</span>,\n        <span class=\"summary-sig-arg\">band</span>=<span class=\"summary-sig-default\">''</span>,\n        <span class=\"summary-sig-arg\">datum</span>=<span class=\"summary-sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"summary-sig-arg\">falsed</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Class-like function to create a UTM/UPS coordinate.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#a_b2e\" class=\"summary-sig-name\">a_b2e</a>(<span class=\"summary-sig-arg\">a</span>,\n        <span class=\"summary-sig-arg\">b</span>)</span><br />\n      Return <code>e</code>, the <i>1st eccentricity</i> for a given \n      <i>equatorial</i> and <i>polar</i> radius.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#a_b2e2\" class=\"summary-sig-name\">a_b2e2</a>(<span class=\"summary-sig-arg\">a</span>,\n        <span class=\"summary-sig-arg\">b</span>)</span><br />\n      Return <code>e2</code>, the <i>1st eccentricity squared</i> for a \n      given <i>equatorial</i> and <i>polar</i> radius.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#a_b2e22\" class=\"summary-sig-name\">a_b2e22</a>(<span class=\"summary-sig-arg\">a</span>,\n        <span class=\"summary-sig-arg\">b</span>)</span><br />\n      Return <code>e22</code>, the <i>2nd eccentricity squared</i> for a \n      given <i>equatorial</i> and <i>polar</i> radius.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#a_b2e32\" class=\"summary-sig-name\">a_b2e32</a>(<span class=\"summary-sig-arg\">a</span>,\n        <span class=\"summary-sig-arg\">b</span>)</span><br />\n      Return <code>e32</code>, the <i>3rd eccentricity squared</i> for a \n      given <i>equatorial</i> and <i>polar</i> radius.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#a_b2f\" class=\"summary-sig-name\">a_b2f</a>(<span class=\"summary-sig-arg\">a</span>,\n        <span class=\"summary-sig-arg\">b</span>)</span><br />\n      Return <code>f</code>, the <i>flattening</i> for a given \n      <i>equatorial</i> and <i>polar</i> radius.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#a_b2f2\" class=\"summary-sig-name\">a_b2f2</a>(<span class=\"summary-sig-arg\">a</span>,\n        <span class=\"summary-sig-arg\">b</span>)</span><br />\n      Return <code>f2</code>, the <i>2nd flattening</i> for a given \n      <i>equatorial</i> and <i>polar</i> radius.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#a_b2f_\" class=\"summary-sig-name\">a_b2f_</a>(<span class=\"summary-sig-arg\">a</span>,\n        <span class=\"summary-sig-arg\">b</span>)</span><br />\n      Return <code>f_</code>, the <i>inverse flattening</i> for a given \n      <i>equatorial</i> and <i>polar</i> radius.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#a_b2n\" class=\"summary-sig-name\">a_b2n</a>(<span class=\"summary-sig-arg\">a</span>,\n        <span class=\"summary-sig-arg\">b</span>)</span><br />\n      Return <code>n</code>, the <i>3rd flattening</i> for a given \n      <i>equatorial</i> and <i>polar</i> radius.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#a_f2b\" class=\"summary-sig-name\">a_f2b</a>(<span class=\"summary-sig-arg\">a</span>,\n        <span class=\"summary-sig-arg\">f</span>)</span><br />\n      Return <code>b</code>, the <i>polar</i> radius for a given \n      <i>equatorial</i> radius and <i>flattening</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#a_f_2b\" class=\"summary-sig-name\">a_f_2b</a>(<span class=\"summary-sig-arg\">a</span>,\n        <span class=\"summary-sig-arg\">f_</span>)</span><br />\n      Return <code>b</code>, the <i>polar</i> radius for a given \n      <i>equatorial</i> radius and <i>inverse flattening</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"acos1\"></a><span class=\"summary-sig-name\">acos1</span>(<span class=\"summary-sig-arg\">x</span>)</span><br />\n      Return <code>math.acos(max(-1, min(1, <b>x</b>)))</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#acre2ha\" class=\"summary-sig-name\">acre2ha</a>(<span class=\"summary-sig-arg\">acres</span>)</span><br />\n      Convert an area in <i>acres</i> to <i>hectares</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#acre2m2\" class=\"summary-sig-name\">acre2m2</a>(<span class=\"summary-sig-arg\">acres</span>)</span><br />\n      Convert an area in <i>acres</i> to <i>square</i> meter.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#agdf\" class=\"summary-sig-name\">agdf</a>(<span class=\"summary-sig-arg\">phi</span>)</span><br />\n      Inverse <a href=\"https://WikiPedia.org/wiki/Gudermannian_function\" \n      target=\"_top\">Gudermannian function</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#anStr\" class=\"summary-sig-name\">anStr</a>(<span class=\"summary-sig-arg\">name</span>,\n        <span class=\"summary-sig-arg\">OKd</span>=<span class=\"summary-sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">._-</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"summary-sig-arg\">sub</span>=<span class=\"summary-sig-default\">'_'</span>)</span><br />\n      DEPRECATED, use function <a \n      href=\"pygeodesy.streprs-module.html#anstr\" \n      class=\"link\">pygeodesy.anstr</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#angle2chord\" class=\"summary-sig-name\">angle2chord</a>(<span class=\"summary-sig-arg\">rad</span>,\n        <span class=\"summary-sig-arg\">radius</span>=<span class=\"summary-sig-default\">6371008.771415</span>)</span><br />\n      Get the chord length of a (central) angle or <i>angular</i> distance.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#anstr\" class=\"summary-sig-name\">anstr</a>(<span class=\"summary-sig-arg\">name</span>,\n        <span class=\"summary-sig-arg\">OKd</span>=<span class=\"summary-sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">._-</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"summary-sig-arg\">sub</span>=<span class=\"summary-sig-default\">'_'</span>)</span><br />\n      Make a valid name of alphanumeric and OKd characters.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#antipode\" class=\"summary-sig-name\">antipode</a>(<span class=\"summary-sig-arg\">lat</span>,\n        <span class=\"summary-sig-arg\">lon</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Return the antipode, the point diametrically opposite to a given \n      point in <code>degrees</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#antipode_\" class=\"summary-sig-name\">antipode_</a>(<span class=\"summary-sig-arg\">phi</span>,\n        <span class=\"summary-sig-arg\">lam</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Return the antipode, the point diametrically opposite to a given \n      point in <code>radians</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#areaOf\" class=\"summary-sig-name\">areaOf</a>(<span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">adjust</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">radius</span>=<span class=\"summary-sig-default\">6371008.771415</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">True</span>)</span><br />\n      Approximate the area of a polygon or composite.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#areaof\" class=\"summary-sig-name\">areaof</a>(<span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">adjust</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">radius</span>=<span class=\"summary-sig-default\">6371008.771415</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">True</span>)</span><br />\n      DEPRECATED, use function <a \n      href=\"pygeodesy.points-module.html#areaOf\" \n      class=\"link\">pygeodesy.areaOf</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"asin1\"></a><span class=\"summary-sig-name\">asin1</span>(<span class=\"summary-sig-arg\">x</span>)</span><br />\n      Return <code>math.asin(max(-1, min(1, <b>x</b>)))</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"atan1\"></a><span class=\"summary-sig-name\">atan1</span>(<span class=\"summary-sig-arg\">y</span>,\n        <span class=\"summary-sig-arg\">x</span>=<span class=\"summary-sig-default\">1.0</span>)</span><br />\n      Return <code>atan(<b>y</b> / <b>x</b>)</code> angle in \n      <code>radians</code> <i class=\"math\">[-PI/2..+PI/2]</i> using \n      <code>atan2</code> for consistency and to avoid \n      <code>ZeroDivisionError</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#atan1d\" class=\"summary-sig-name\">atan1d</a>(<span class=\"summary-sig-arg\">y</span>,\n        <span class=\"summary-sig-arg\">x</span>=<span class=\"summary-sig-default\">1.0</span>)</span><br />\n      Return <code>atan(<b>y</b> / <b>x</b>)</code> angle in \n      <code>degrees</code> <i class=\"math\">[-90..+90]</i> using \n      <code>atan2d</code> for consistency and to avoid \n      <code>ZeroDivisionError</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#atan2\" class=\"summary-sig-name\">atan2</a>(<span class=\"summary-sig-arg\">y</span>,\n        <span class=\"summary-sig-arg\">x</span>)</span><br />\n      Return the arc tangent (measured in radians) of y/x.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#atan2b\" class=\"summary-sig-name\">atan2b</a>(<span class=\"summary-sig-arg\">y</span>,\n        <span class=\"summary-sig-arg\">x</span>)</span><br />\n      Return <code>atan2(<b>y</b>, <b>x</b>)</code> in degrees <i \n      class=\"math\">[0..+360), counter-clockwise</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#atan2d\" class=\"summary-sig-name\">atan2d</a>(<span class=\"summary-sig-arg\">y</span>,\n        <span class=\"summary-sig-arg\">x</span>,\n        <span class=\"summary-sig-arg\">reverse</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Return <code>atan2(<b>y</b>, <b>x</b>)</code> in degrees <i \n      class=\"math\">[-180..+180]</i>, optionally <i>reversed</i> (by 180 \n      degrees for <code>azimuth</code>s).</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#atan2p\" class=\"summary-sig-name\">atan2p</a>(<span class=\"summary-sig-arg\">y</span>,\n        <span class=\"summary-sig-arg\">x</span>)</span><br />\n      Return <code>atan2(<b>y</b>, <b>x</b>)</code> in radians <i \n      class=\"math\">[0..+PI2), counter-clockwise</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#atand\" class=\"summary-sig-name\">atand</a>(<span class=\"summary-sig-arg\">x</span>)</span><br />\n      DEPRECATED on 2023.09.28, use function <a \n      href=\"pygeodesy.utily-module.html#atan1d\" \n      class=\"link\">pygeodesy.atan1d</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#attrs\" class=\"summary-sig-name\">attrs</a>(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">*names</span>,\n        <span class=\"summary-sig-arg\">**Nones_True__pairs_kwds</span>)</span><br />\n      Get instance attributes as <i>name=value</i> strings, with \n      <code>float</code>s formatted by function <a \n      href=\"pygeodesy.streprs-module.html#fstr\" class=\"link\">fstr</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#b_f2a\" class=\"summary-sig-name\">b_f2a</a>(<span class=\"summary-sig-arg\">b</span>,\n        <span class=\"summary-sig-arg\">f</span>)</span><br />\n      Return <code>a</code>, the <i>equatorial</i> radius for a given \n      <i>polar</i> radius and <i>flattening</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#b_f_2a\" class=\"summary-sig-name\">b_f_2a</a>(<span class=\"summary-sig-arg\">b</span>,\n        <span class=\"summary-sig-arg\">f_</span>)</span><br />\n      Return <code>a</code>, the <i>equatorial</i> radius for a given \n      <i>polar</i> radius and <i>inverse flattening</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#bearing\" class=\"summary-sig-name\">bearing</a>(<span class=\"summary-sig-arg\">lat1</span>,\n        <span class=\"summary-sig-arg\">lon1</span>,\n        <span class=\"summary-sig-arg\">lat2</span>,\n        <span class=\"summary-sig-arg\">lon2</span>,\n        <span class=\"summary-sig-arg\">**final_wrap</span>)</span><br />\n      Compute the initial or final bearing (forward or reverse azimuth) \n      between two (spherical) points.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#bearingDMS\" class=\"summary-sig-name\">bearingDMS</a>(<span class=\"summary-sig-arg\">bearing</span>,\n        <span class=\"summary-sig-arg\">form</span>=<span class=\"summary-sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">d</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"summary-sig-arg\">prec</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">sep</span>=<span class=\"summary-sig-default\">''</span>,\n        <span class=\"summary-sig-arg\">**s_D_M_S</span>)</span><br />\n      Convert bearing to a string (without compass point suffix).</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#bearing_\" class=\"summary-sig-name\">bearing_</a>(<span class=\"summary-sig-arg\">phi1</span>,\n        <span class=\"summary-sig-arg\">lam1</span>,\n        <span class=\"summary-sig-arg\">phi2</span>,\n        <span class=\"summary-sig-arg\">lam2</span>,\n        <span class=\"summary-sig-arg\">final</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Compute the initial or final bearing (forward or reverse azimuth) \n      between two (spherical) points.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#bounds\" class=\"summary-sig-name\">bounds</a>(<span class=\"summary-sig-arg\">geohash</span>,\n        <span class=\"summary-sig-arg\">LatLon</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**LatLon_kwds</span>)</span><br />\n      Returns the lower-left SW and upper-right NE corners of a geohash.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#boundsOf\" class=\"summary-sig-name\">boundsOf</a>(<span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">LatLon</span>=<span class=\"summary-sig-default\">None</span>)</span><br />\n      Determine the bottom-left SW and top-right NE corners of a path or \n      polygon.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#bqrt\" class=\"summary-sig-name\">bqrt</a>(<span class=\"summary-sig-arg\">x</span>)</span><br />\n      Return the 4-th, <i>bi-quadratic</i> or <i>quartic</i> root, <i \n      class=\"math\">x**(1 / 4)</i>, preserving <code>type(<b>x</b>)</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#callername\" class=\"summary-sig-name\">callername</a>(<span class=\"summary-sig-arg\">up</span>=<span class=\"summary-sig-default\">1</span>,\n        <span class=\"summary-sig-arg\">dflt</span>=<span class=\"summary-sig-default\">''</span>,\n        <span class=\"summary-sig-arg\">source</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">underOK</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Get the name of the invoking callable.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#cassini\" class=\"summary-sig-name\">cassini</a>(<span class=\"summary-sig-arg\">pointA</span>,\n        <span class=\"summary-sig-arg\">pointB</span>,\n        <span class=\"summary-sig-arg\">pointC</span>,\n        <span class=\"summary-sig-arg\">alpha</span>,\n        <span class=\"summary-sig-arg\">beta</span>,\n        <span class=\"summary-sig-arg\">useZ</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">**Clas_and_kwds</span>)</span><br />\n      3-Point resection using <a \n      href=\"https://NL.WikiPedia.org/wiki/Achterwaartse_insnijding\" \n      target=\"_top\">Cassini</a>'s method.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#cbrt\" class=\"summary-sig-name\">cbrt</a>(<span class=\"summary-sig-arg\">x</span>)</span><br />\n      Compute the cube root <i class=\"math\">x**(1/3)</i>, preserving \n      <code>type(<b>x</b>)</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#cbrt2\" class=\"summary-sig-name\">cbrt2</a>(<span class=\"summary-sig-arg\">x</span>)</span><br />\n      Compute the cube root <i>squared</i> <i class=\"math\">x**(2/3)</i>, \n      preserving <code>type(<b>x</b>)</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#centroidOf\" class=\"summary-sig-name\">centroidOf</a>(<span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">LatLon</span>=<span class=\"summary-sig-default\">None</span>)</span><br />\n      Determine the centroid of a polygon.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#chain2m\" class=\"summary-sig-name\">chain2m</a>(<span class=\"summary-sig-arg\">chains</span>)</span><br />\n      Convert a length in <i>UK</i> chains to meter.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#chord2angle\" class=\"summary-sig-name\">chord2angle</a>(<span class=\"summary-sig-arg\">chord</span>,\n        <span class=\"summary-sig-arg\">radius</span>=<span class=\"summary-sig-default\">6371008.771415</span>)</span><br />\n      Get the (central) angle from a chord length or distance.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#circin6\" class=\"summary-sig-name\">circin6</a>(<span class=\"summary-sig-arg\">point1</span>,\n        <span class=\"summary-sig-arg\">point2</span>,\n        <span class=\"summary-sig-arg\">point3</span>,\n        <span class=\"summary-sig-arg\">eps</span>=<span class=\"summary-sig-default\">8.881784197001252e-16</span>,\n        <span class=\"summary-sig-arg\">useZ</span>=<span class=\"summary-sig-default\">True</span>)</span><br />\n      Return the radius and center of the <i>inscribed</i> aka \n      <i>Incircle</i> of a (2- or 3-D) triangle.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#circle4\" class=\"summary-sig-name\">circle4</a>(<span class=\"summary-sig-arg\">earth</span>,\n        <span class=\"summary-sig-arg\">lat</span>)</span><br />\n      Get the equatorial or a parallel <i>circle of latitude</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#circum3\" class=\"summary-sig-name\">circum3</a>(<span class=\"summary-sig-arg\">point1</span>,\n        <span class=\"summary-sig-arg\">point2</span>,\n        <span class=\"summary-sig-arg\">point3</span>,\n        <span class=\"summary-sig-arg\">circum</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">eps</span>=<span class=\"summary-sig-default\">8.881784197001252e-16</span>,\n        <span class=\"summary-sig-arg\">useZ</span>=<span class=\"summary-sig-default\">True</span>)</span><br />\n      Return the radius and center of the smallest circle <i>through</i> or\n      <i>containing</i> three (2- or 3-D) points.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#circum4\" class=\"summary-sig-name\">circum4</a>(<span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">useZ</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">**Vector_and_kwds</span>)</span><br />\n      Best-fit a sphere through three or more (3-D) points.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#circum4_\" class=\"summary-sig-name\">circum4_</a>(<span class=\"summary-sig-arg\">*points</span>,\n        <span class=\"summary-sig-arg\">**useZ_Vector_and_kwds</span>)</span><br />\n      Best-fit a sphere through three or more (3-D) positional points.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#classname\" class=\"summary-sig-name\">classname</a>(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">prefixed</span>=<span class=\"summary-sig-default\">None</span>)</span><br />\n      Return the instance' class name optionally prefixed with the module \n      name.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#classnaming\" class=\"summary-sig-name\">classnaming</a>(<span class=\"summary-sig-arg\">prefixed</span>=<span class=\"summary-sig-default\">None</span>)</span><br />\n      Get/set the default class naming for <code>[module.]class</code> \n      names.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#clipCS3\" class=\"summary-sig-name\">clipCS3</a>(<span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">lowerleft</span>,\n        <span class=\"summary-sig-arg\">upperright</span>,\n        <span class=\"summary-sig-arg\">closed</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">inull</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      DEPRECATED, use function <a \n      href=\"pygeodesy.clipy-module.html#clipCS4\" \n      class=\"link\">pygeodesy.clipCS4</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#clipCS4\" class=\"summary-sig-name\">clipCS4</a>(<span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">lowerleft</span>,\n        <span class=\"summary-sig-arg\">upperight</span>,\n        <span class=\"summary-sig-arg\">closed</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">inull</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Clip a path against a rectangular clip box using the <a \n      href=\"https://WikiPedia.org/wiki/Cohen-Sutherland_algorithm\" \n      target=\"_top\">Cohen-Sutherland</a> algorithm.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#clipDMS\" class=\"summary-sig-name\">clipDMS</a>(<span class=\"summary-sig-arg\">deg</span>,\n        <span class=\"summary-sig-arg\">limit</span>)</span><br />\n      DEPRECATED, use function <a \n      href=\"pygeodesy.dms-module.html#clipDegrees\" \n      class=\"link\">pygeodesy.clipDegrees</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#clipDegrees\" class=\"summary-sig-name\">clipDegrees</a>(<span class=\"summary-sig-arg\">deg</span>,\n        <span class=\"summary-sig-arg\">limit</span>)</span><br />\n      Clip a lat- or longitude to the given range.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#clipFHP4\" class=\"summary-sig-name\">clipFHP4</a>(<span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">corners</span>,\n        <span class=\"summary-sig-arg\">closed</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">inull</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">raiser</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">eps</span>=<span class=\"summary-sig-default\">2.220446049250313e-16</span>)</span><br />\n      Clip one or more polygons against a clip region or box using <a \n      href=\"https://www.ScienceDirect.com/science/article/pii/S259014861930007X\"\n      target=\"_top\">Forster-Hormann-Popa</a>'s C++ implementation \n      transcoded to pure Python.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#clipGH4\" class=\"summary-sig-name\">clipGH4</a>(<span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">corners</span>,\n        <span class=\"summary-sig-arg\">closed</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">inull</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">raiser</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">xtend</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">eps</span>=<span class=\"summary-sig-default\">2.220446049250313e-16</span>)</span><br />\n      Clip one or more polygons against a clip region or box using the <a \n      href=\"http://www.Inf.USI.CH/hormann/papers/Greiner.1998.ECO.pdf\" \n      target=\"_top\">Greiner-Hormann</a> algorithm, extended.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#clipLB6\" class=\"summary-sig-name\">clipLB6</a>(<span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">lowerleft</span>,\n        <span class=\"summary-sig-arg\">upperight</span>,\n        <span class=\"summary-sig-arg\">closed</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">inull</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Clip a path against a rectangular clip box using the <a \n      href=\"https://www.CSE.UNT.edu/~renka/4230/LineClipping.pdf\" \n      target=\"_top\">Liang-Barsky</a> algorithm.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#clipRadians\" class=\"summary-sig-name\">clipRadians</a>(<span class=\"summary-sig-arg\">rad</span>,\n        <span class=\"summary-sig-arg\">limit</span>)</span><br />\n      Clip a lat- or longitude to the given range.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#clipSH\" class=\"summary-sig-name\">clipSH</a>(<span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">corners</span>,\n        <span class=\"summary-sig-arg\">closed</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">inull</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Clip a polygon against a clip region or box using the <a \n      href=\"https://WikiPedia.org/wiki/Sutherland-Hodgman_algorithm\" \n      target=\"_top\">Sutherland-Hodgman</a> algorithm.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#clipSH3\" class=\"summary-sig-name\">clipSH3</a>(<span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">corners</span>,\n        <span class=\"summary-sig-arg\">closed</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">inull</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Clip a polygon against a clip region or box using the <a \n      href=\"https://WikiPedia.org/wiki/Sutherland-Hodgman_algorithm\" \n      target=\"_top\">Sutherland-Hodgman</a> algorithm.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#clipStr\" class=\"summary-sig-name\">clipStr</a>(<span class=\"summary-sig-arg\">bstr</span>,\n        <span class=\"summary-sig-arg\">limit</span>=<span class=\"summary-sig-default\">50</span>,\n        <span class=\"summary-sig-arg\">white</span>=<span class=\"summary-sig-default\">''</span>)</span><br />\n      DEPRECATED, use function <a href=\"pygeodesy.basics-module.html#clips\"\n      class=\"link\">pygeodesy.clips</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#clips\" class=\"summary-sig-name\">clips</a>(<span class=\"summary-sig-arg\">sb</span>,\n        <span class=\"summary-sig-arg\">limit</span>=<span class=\"summary-sig-default\">50</span>,\n        <span class=\"summary-sig-arg\">white</span>=<span class=\"summary-sig-default\">''</span>,\n        <span class=\"summary-sig-arg\">length</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Clip a string to the given length limit.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#collins\" class=\"summary-sig-name\">collins</a>(<span class=\"summary-sig-arg\">pointA</span>,\n        <span class=\"summary-sig-arg\">pointB</span>,\n        <span class=\"summary-sig-arg\">pointC</span>,\n        <span class=\"summary-sig-arg\">alpha</span>,\n        <span class=\"summary-sig-arg\">beta</span>,\n        <span class=\"summary-sig-arg\">**useZ_Clas_and_kwds</span>)</span><br />\n      DEPRECATED, use function <a \n      href=\"pygeodesy.resections-module.html#collins5\" \n      class=\"link\">pygeodesy.collins5</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#collins5\" class=\"summary-sig-name\">collins5</a>(<span class=\"summary-sig-arg\">pointA</span>,\n        <span class=\"summary-sig-arg\">pointB</span>,\n        <span class=\"summary-sig-arg\">pointC</span>,\n        <span class=\"summary-sig-arg\">alpha</span>,\n        <span class=\"summary-sig-arg\">beta</span>,\n        <span class=\"summary-sig-arg\">useZ</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">**Clas_and_kwds</span>)</span><br />\n      3-Point resection using <a \n      href=\"https://Dokumen.tips/documents/three-point-resection-problem-introduction-kaestner-burkhardt-method.html\"\n      target=\"_top\">Collins</a>' method.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#compassAngle\" class=\"summary-sig-name\">compassAngle</a>(<span class=\"summary-sig-arg\">lat1</span>,\n        <span class=\"summary-sig-arg\">lon1</span>,\n        <span class=\"summary-sig-arg\">lat2</span>,\n        <span class=\"summary-sig-arg\">lon2</span>,\n        <span class=\"summary-sig-arg\">adjust</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Return the angle from North for the direction vector <i \n      class=\"math\">(lon2 - lon1, lat2 - lat1)</i> between two points.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#compassDMS\" class=\"summary-sig-name\">compassDMS</a>(<span class=\"summary-sig-arg\">bearing</span>,\n        <span class=\"summary-sig-arg\">form</span>=<span class=\"summary-sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">d</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"summary-sig-arg\">prec</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">sep</span>=<span class=\"summary-sig-default\">''</span>,\n        <span class=\"summary-sig-arg\">**s_D_M_S</span>)</span><br />\n      Convert bearing to a string suffixed with compass point.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#compassPoint\" class=\"summary-sig-name\">compassPoint</a>(<span class=\"summary-sig-arg\">bearing</span>,\n        <span class=\"summary-sig-arg\">prec</span>=<span class=\"summary-sig-default\">3</span>)</span><br />\n      Convert a <code>bearing</code> from North to a compass point.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#copysign\" class=\"summary-sig-name\">copysign</a>(<span class=\"summary-sig-arg\">x</span>,\n        <span class=\"summary-sig-arg\">y</span>)</span><br />\n      DEPRECATED, use function <a \n      href=\"pygeodesy.basics-module.html#copysign0\" \n      class=\"link\">pygeodesy.copysign0</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#copysign0\" class=\"summary-sig-name\">copysign0</a>(<span class=\"summary-sig-arg\">x</span>,\n        <span class=\"summary-sig-arg\">y</span>)</span><br />\n      Like <code>math.copysign(x, y)</code> except <code>zero</code>, \n      <i>unsigned</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#copytype\" class=\"summary-sig-name\">copytype</a>(<span class=\"summary-sig-arg\">x</span>,\n        <span class=\"summary-sig-arg\">y</span>)</span><br />\n      Return the value of <b>x</b> as <code>type</code> of <code>y</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#cosineAndoyerLambert\" class=\"summary-sig-name\">cosineAndoyerLambert</a>(<span class=\"summary-sig-arg\">lat1</span>,\n        <span class=\"summary-sig-arg\">lon1</span>,\n        <span class=\"summary-sig-arg\">lat2</span>,\n        <span class=\"summary-sig-arg\">lon2</span>,\n        <span class=\"summary-sig-arg\">**datum_wrap</span>)</span><br />\n      DEPRECATED on 2024.12.31, use function <a \n      href=\"pygeodesy.formy-module.html#cosineLaw\" \n      class=\"link\">pygeodesy.cosineLaw</a> with <code><b>corr</b>=1</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#cosineAndoyerLambert_\" class=\"summary-sig-name\">cosineAndoyerLambert_</a>(<span class=\"summary-sig-arg\">phi2</span>,\n        <span class=\"summary-sig-arg\">phi1</span>,\n        <span class=\"summary-sig-arg\">lam21</span>,\n        <span class=\"summary-sig-arg\">**datum</span>)</span><br />\n      DEPRECATED on 2024.12.31, use function <a \n      href=\"pygeodesy.formy-module.html#cosineLaw_\" \n      class=\"link\">pygeodesy.cosineLaw_</a> with \n      <code><b>corr</b>=1</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#cosineForsytheAndoyerLambert\" class=\"summary-sig-name\">cosineForsytheAndoyerLambert</a>(<span class=\"summary-sig-arg\">lat1</span>,\n        <span class=\"summary-sig-arg\">lon1</span>,\n        <span class=\"summary-sig-arg\">lat2</span>,\n        <span class=\"summary-sig-arg\">lon2</span>,\n        <span class=\"summary-sig-arg\">**datum_wrap</span>)</span><br />\n      DEPRECATED on 2024.12.31, use function <a \n      href=\"pygeodesy.formy-module.html#cosineLaw\" \n      class=\"link\">pygeodesy.cosineLaw</a> with <code><b>corr</b>=2</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#cosineForsytheAndoyerLambert_\" class=\"summary-sig-name\">cosineForsytheAndoyerLambert_</a>(<span class=\"summary-sig-arg\">phi2</span>,\n        <span class=\"summary-sig-arg\">phi1</span>,\n        <span class=\"summary-sig-arg\">lam21</span>,\n        <span class=\"summary-sig-arg\">**datum</span>)</span><br />\n      DEPRECATED on 2024.12.31, use function <a \n      href=\"pygeodesy.formy-module.html#cosineLaw_\" \n      class=\"link\">pygeodesy.cosineLaw_</a> with \n      <code><b>corr</b>=2</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#cosineLaw\" class=\"summary-sig-name\">cosineLaw</a>(<span class=\"summary-sig-arg\">lat1</span>,\n        <span class=\"summary-sig-arg\">lon1</span>,\n        <span class=\"summary-sig-arg\">lat2</span>,\n        <span class=\"summary-sig-arg\">lon2</span>,\n        <span class=\"summary-sig-arg\">corr</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">earth</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">datum</span>=<span class=\"summary-sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"summary-sig-arg\">radius</span>=<span class=\"summary-sig-default\">6371008.771415</span>)</span><br />\n      Compute the distance between two points using the <a \n      href=\"https://www.Movable-Type.co.UK/scripts/latlong.html#cosine-law\"\n      target=\"_top\">Law of Cosines</a> formula, optionally corrected.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#cosineLaw_\" class=\"summary-sig-name\">cosineLaw_</a>(<span class=\"summary-sig-arg\">phi2</span>,\n        <span class=\"summary-sig-arg\">phi1</span>,\n        <span class=\"summary-sig-arg\">lam21</span>,\n        <span class=\"summary-sig-arg\">corr</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">earth</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">datum</span>=<span class=\"summary-sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>)</span><br />\n      Compute the <i>angular</i> distance between two points using the <a \n      href=\"https://www.Movable-Type.co.UK/scripts/latlong.html#cosine-law\"\n      target=\"_top\">Law of Cosines</a> formula, optionally corrected.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#cot\" class=\"summary-sig-name\">cot</a>(<span class=\"summary-sig-arg\">rad</span>,\n        <span class=\"summary-sig-arg\">**raiser_kwds</span>)</span><br />\n      Return the <code>cotangent</code> of an angle in \n      <code>radians</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#cot_\" class=\"summary-sig-name\">cot_</a>(<span class=\"summary-sig-arg\">*rads</span>,\n        <span class=\"summary-sig-arg\">**raiser_kwds</span>)</span><br />\n      Yield the <code>cotangent</code> of angle(s) in <code>radians</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#cotd\" class=\"summary-sig-name\">cotd</a>(<span class=\"summary-sig-arg\">deg</span>,\n        <span class=\"summary-sig-arg\">**raiser_kwds</span>)</span><br />\n      Return the <code>cotangent</code> of an angle in \n      <code>degrees</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#cotd_\" class=\"summary-sig-name\">cotd_</a>(<span class=\"summary-sig-arg\">*degs</span>,\n        <span class=\"summary-sig-arg\">**raiser_kwds</span>)</span><br />\n      Yield the <code>cotangent</code> of angle(s) in <code>degrees</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#crosserrors\" class=\"summary-sig-name\">crosserrors</a>(<span class=\"summary-sig-arg\">raiser</span>=<span class=\"summary-sig-default\">None</span>)</span><br />\n      Report or ignore vectorial cross product errors.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#date2epoch\" class=\"summary-sig-name\">date2epoch</a>(<span class=\"summary-sig-arg\">year</span>,\n        <span class=\"summary-sig-arg\">month</span>,\n        <span class=\"summary-sig-arg\">day</span>)</span><br />\n      Return the <code>epoch</code> for a calendar day.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#decodeEPSG2\" class=\"summary-sig-name\">decodeEPSG2</a>(<span class=\"summary-sig-arg\">arg</span>)</span><br />\n      DEPRECATED, use function <a href=\"pygeodesy.epsg-module.html#decode2\"\n      class=\"link\">epsg.decode2</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#degDMS\" class=\"summary-sig-name\">degDMS</a>(<span class=\"summary-sig-arg\">deg</span>,\n        <span class=\"summary-sig-arg\">prec</span>=<span class=\"summary-sig-default\">6</span>,\n        <span class=\"summary-sig-arg\">s_D</span>=<span class=\"summary-sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">&deg;</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"summary-sig-arg\">s_M</span>=<span class=\"summary-sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">\\xe2\\x80\\xb2</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"summary-sig-arg\">s_S</span>=<span class=\"summary-sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">&Prime;</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"summary-sig-arg\">neg</span>=<span class=\"summary-sig-default\">'-'</span>,\n        <span class=\"summary-sig-arg\">pos</span>=<span class=\"summary-sig-default\">''</span>)</span><br />\n      Convert degrees to a string in degrees, minutes <i>or</i> seconds.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"degrees\"></a><span class=\"summary-sig-name\">degrees</span>(<span class=\"summary-sig-arg\">x</span>)</span><br />\n      Convert angle x from radians to degrees.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#degrees180\" class=\"summary-sig-name\">degrees180</a>(<span class=\"summary-sig-arg\">rad</span>)</span><br />\n      Convert radians to degrees and wrap <i class=\"math\">[-180..+180)</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#degrees2grades\" class=\"summary-sig-name\">degrees2grades</a>(<span class=\"summary-sig-arg\">deg</span>)</span><br />\n      Convert degrees to <i>grades</i> (aka <i>gons</i> or \n      <i>gradians</i>).</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#degrees2m\" class=\"summary-sig-name\">degrees2m</a>(<span class=\"summary-sig-arg\">deg</span>,\n        <span class=\"summary-sig-arg\">earth</span>=<span class=\"summary-sig-default\">6371008.771415</span>,\n        <span class=\"summary-sig-arg\">lat</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">**radius</span>)</span><br />\n      Convert an arc in degrees to a distance along the equator or along a \n      parallel at (geodetic) latitude.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#degrees360\" class=\"summary-sig-name\">degrees360</a>(<span class=\"summary-sig-arg\">rad</span>)</span><br />\n      Convert radians to degrees and wrap <i class=\"math\">[0..+360)</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#degrees90\" class=\"summary-sig-name\">degrees90</a>(<span class=\"summary-sig-arg\">rad</span>)</span><br />\n      Convert radians to degrees and wrap <i class=\"math\">[-90..+90)</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#deprecated_Property_RO\" class=\"summary-sig-name\">deprecated_Property_RO</a>(<span class=\"summary-sig-arg\">method</span>)</span><br />\n      Decorator for a DEPRECATED <a \n      href=\"pygeodesy.props.Property_RO-class.html\" \n      class=\"link\">Property_RO</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#deprecated_class\" class=\"summary-sig-name\">deprecated_class</a>(<span class=\"summary-sig-arg\">cls_or_class</span>)</span><br />\n      Use inside __new__ or __init__ of a DEPRECATED class.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#deprecated_function\" class=\"summary-sig-name\">deprecated_function</a>(<span class=\"summary-sig-arg\">call</span>)</span><br />\n      Decorator for a DEPRECATED function.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#deprecated_method\" class=\"summary-sig-name\">deprecated_method</a>(<span class=\"summary-sig-arg\">call</span>)</span><br />\n      Decorator for a DEPRECATED method.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#deprecated_property_RO\" class=\"summary-sig-name\">deprecated_property_RO</a>(<span class=\"summary-sig-arg\">method</span>)</span><br />\n      Decorator for a DEPRECATED <a \n      href=\"pygeodesy.props.property_RO-class.html\" \n      class=\"link\">property_RO</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#e22f\" class=\"summary-sig-name\">e22f</a>(<span class=\"summary-sig-arg\">e2</span>)</span><br />\n      Return <code>f</code>, the <i>flattening</i> for a given <i>1st \n      eccentricity squared</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#e2f\" class=\"summary-sig-name\">e2f</a>(<span class=\"summary-sig-arg\">e</span>)</span><br />\n      Return <code>f</code>, the <i>flattening</i> for a given <i>1st \n      eccentricity</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#egmGeoidHeights\" class=\"summary-sig-name\">egmGeoidHeights</a>(<span class=\"summary-sig-arg\">GeoidHeights_dat</span>)</span><br />\n      Generate geoid <a \n      href=\"https://GeographicLib.SourceForge.io/C++/doc/geoid.html#geoidinst\"\n      target=\"_top\">egm*.pgm</a> height tests from <a \n      href=\"https://SourceForge.net/projects/geographiclib/files/testdata/\"\n      target=\"_top\">GeoidHeights.dat</a> <a \n      href=\"https://GeographicLib.SourceForge.io/C++/doc/geoid.html#testgeoid\"\n      target=\"_top\">Test data for Geoids</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#elevation2\" class=\"summary-sig-name\">elevation2</a>(<span class=\"summary-sig-arg\">lat</span>,\n        <span class=\"summary-sig-arg\">lon</span>,\n        <span class=\"summary-sig-arg\">timeout</span>=<span class=\"summary-sig-default\">2.0</span>)</span><br />\n      Get the geoid elevation at an <code>NAD83</code> to \n      <code>NAVD88</code> location.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#elliperim\" class=\"summary-sig-name\">elliperim</a>(<span class=\"summary-sig-arg\">a</span>,\n        <span class=\"summary-sig-arg\">b</span>,\n        <span class=\"summary-sig-arg\">*deg2_1</span>)</span><br />\n      DEPRECATED on 2026.02.12, use method <a \n      href=\"pygeodesy.ellipses.Ellipse-class.html#arc\" \n      class=\"link\">pygeodesy.Ellipse.arc</a> or property <a \n      href=\"pygeodesy.ellipses.Ellipse-class.html#perimeter2k_\" \n      class=\"link\">pygeodesy.Ellipse.perimeter2k_</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#elliperim_\" class=\"summary-sig-name\">elliperim_</a>(<span class=\"summary-sig-arg\">a</span>,\n        <span class=\"summary-sig-arg\">b</span>,\n        <span class=\"summary-sig-arg\">*rad2_1</span>)</span><br />\n      DEPRECATED on 2026.02.12, use method <a \n      href=\"pygeodesy.ellipses.Ellipse-class.html#arc_\" \n      class=\"link\">pygeodesy.Ellipse.arc_</a> or property <a \n      href=\"pygeodesy.ellipses.Ellipse-class.html#perimeter2k_\" \n      class=\"link\">pygeodesy.Ellipse.perimeter2k_</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#enStr2\" class=\"summary-sig-name\">enStr2</a>(<span class=\"summary-sig-arg\">easting</span>,\n        <span class=\"summary-sig-arg\">northing</span>,\n        <span class=\"summary-sig-arg\">prec</span>,\n        <span class=\"summary-sig-arg\">*extras</span>)</span><br />\n      DEPRECATED, use function <a \n      href=\"pygeodesy.streprs-module.html#enstr2\" \n      class=\"link\">pygeodesy.enstr2</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#encodeEPSG\" class=\"summary-sig-name\">encodeEPSG</a>(<span class=\"summary-sig-arg\">zone</span>,\n        <span class=\"summary-sig-arg\">hemipole</span>=<span class=\"summary-sig-default\">''</span>,\n        <span class=\"summary-sig-arg\">band</span>=<span class=\"summary-sig-default\">''</span>)</span><br />\n      DEPRECATED, use function <a href=\"pygeodesy.epsg-module.html#encode\" \n      class=\"link\">epsg.encode</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#enstr2\" class=\"summary-sig-name\">enstr2</a>(<span class=\"summary-sig-arg\">easting</span>,\n        <span class=\"summary-sig-arg\">northing</span>,\n        <span class=\"summary-sig-arg\">prec</span>,\n        <span class=\"summary-sig-arg\">*extras</span>,\n        <span class=\"summary-sig-arg\">**wide_dot</span>)</span><br />\n      Return an MGRS/OSGR easting, northing string representations.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#epoch2date\" class=\"summary-sig-name\">epoch2date</a>(<span class=\"summary-sig-arg\">epoch</span>)</span><br />\n      Return the date for a reference frame <code>epoch</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#equidistant\" class=\"summary-sig-name\">equidistant</a>(<span class=\"summary-sig-arg\">lat0</span>,\n        <span class=\"summary-sig-arg\">lon0</span>,\n        <span class=\"summary-sig-arg\">datum</span>=<span class=\"summary-sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"summary-sig-arg\">exact</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">geodsolve</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Return an <a href=\"pygeodesy.azimuthal.EquidistantExact-class.html\" \n      class=\"link\">EquidistantExact</a>, <a \n      href=\"pygeodesy.azimuthal.EquidistantGeodSolve-class.html\" \n      class=\"link\">EquidistantGeodSolve</a> or (if <i>Karney</i>'s <a \n      href=\"https://PyPI.org/project/geographiclib\" \n      target=\"_top\">geographiclib</a> package is installed) an <a \n      href=\"pygeodesy.azimuthal.EquidistantKarney-class.html\" \n      class=\"link\">EquidistantKarney</a>, otherwise an <a \n      href=\"pygeodesy.azimuthal.Equidistant-class.html\" \n      class=\"link\">Equidistant</a> instance.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#equirectangular\" class=\"summary-sig-name\">equirectangular</a>(<span class=\"summary-sig-arg\">lat1</span>,\n        <span class=\"summary-sig-arg\">lon1</span>,\n        <span class=\"summary-sig-arg\">lat2</span>,\n        <span class=\"summary-sig-arg\">lon2</span>,\n        <span class=\"summary-sig-arg\">radius</span>=<span class=\"summary-sig-default\">6371008.771415</span>,\n        <span class=\"summary-sig-arg\">**adjust_limit_wrap</span>)</span><br />\n      Approximate the distance between two points using the <a \n      href=\"https://www.Movable-Type.co.UK/scripts/latlong.html#equirectangular\"\n      target=\"_top\">Equirectangular Approximation / Projection</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#equirectangular3\" class=\"summary-sig-name\">equirectangular3</a>(<span class=\"summary-sig-arg\">lat1</span>,\n        <span class=\"summary-sig-arg\">lon1</span>,\n        <span class=\"summary-sig-arg\">lat2</span>,\n        <span class=\"summary-sig-arg\">lon2</span>,\n        <span class=\"summary-sig-arg\">**options</span>)</span><br />\n      DEPRECATED, use function <a \n      href=\"pygeodesy.geohash-module.html#equirectangular4\" \n      class=\"link\">pygeodesy.equirectangular4</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#equirectangular4\" class=\"summary-sig-name\">equirectangular4</a>(<span class=\"summary-sig-arg\">geohash1</span>,\n        <span class=\"summary-sig-arg\">geohash2</span>,\n        <span class=\"summary-sig-arg\">radius</span>=<span class=\"summary-sig-default\">6371008.771415</span>)</span><br />\n      Approximate the distance between two geohashes using the <a \n      href=\"pygeodesy.formy-module.html#equirectangular\" \n      class=\"link\">pygeodesy.equirectangular</a> formula.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#equirectangular_\" class=\"summary-sig-name\">equirectangular_</a>(<span class=\"summary-sig-arg\">lat1</span>,\n        <span class=\"summary-sig-arg\">lon1</span>,\n        <span class=\"summary-sig-arg\">lat2</span>,\n        <span class=\"summary-sig-arg\">lon2</span>,\n        <span class=\"summary-sig-arg\">**options</span>)</span><br />\n      DEPRECATED on 2024.05.25, use function <a \n      href=\"pygeodesy.geohash-module.html#equirectangular4\" \n      class=\"link\">pygeodesy.equirectangular4</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#euclid\" class=\"summary-sig-name\">euclid</a>(<span class=\"summary-sig-arg\">x</span>,\n        <span class=\"summary-sig-arg\">y</span>,\n        <span class=\"summary-sig-arg\">*xy0</span>)</span><br />\n      <i>Appoximate</i> the norm <i class=\"math\">hypot(<b>x</b>, \n      <b>y</b>)</i> by <i class=\"math\">max(abs(<b>x</b>), abs(<b>y</b>)) + \n      min(abs(<b>x</b>), abs(<b>y</b>)) * 0.4142...</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#euclid_\" class=\"summary-sig-name\">euclid_</a>(<span class=\"summary-sig-arg\">*xs</span>)</span><br />\n      <i>Appoximate</i> the norm <i class=\"math\">sqrt(sum(x**2 for x in \n      xs))</i> by cascaded <a href=\"pygeodesy.fmath-module.html#euclid\" \n      class=\"link\">euclid</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#euclidean\" class=\"summary-sig-name\">euclidean</a>(<span class=\"summary-sig-arg\">lat1</span>,\n        <span class=\"summary-sig-arg\">lon1</span>,\n        <span class=\"summary-sig-arg\">lat2</span>,\n        <span class=\"summary-sig-arg\">lon2</span>,\n        <span class=\"summary-sig-arg\">radius</span>=<span class=\"summary-sig-default\">6371008.771415</span>,\n        <span class=\"summary-sig-arg\">adjust</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Approximate the <code>Euclidean</code> distance between two \n      (spherical) points.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#euclidean_\" class=\"summary-sig-name\">euclidean_</a>(<span class=\"summary-sig-arg\">geohash1</span>,\n        <span class=\"summary-sig-arg\">geohash2</span>,\n        <span class=\"summary-sig-arg\">**radius_adjust_wrap</span>)</span><br />\n      Approximate the distance between two geohashes using the <a \n      href=\"pygeodesy.formy-module.html#euclidean\" \n      class=\"link\">pygeodesy.euclidean</a> formula.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#exception_chaining\" class=\"summary-sig-name\">exception_chaining</a>(<span class=\"summary-sig-arg\">exc</span>=<span class=\"summary-sig-default\">None</span>)</span><br />\n      Get an error's <i>cause</i> or the exception chaining setting.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#excessAbc\" class=\"summary-sig-name\">excessAbc</a>(<span class=\"summary-sig-arg\">A</span>,\n        <span class=\"summary-sig-arg\">b</span>,\n        <span class=\"summary-sig-arg\">c</span>)</span><br />\n      DEPRECATED on 2023.04.04, use function <a \n      href=\"pygeodesy.formy-module.html#excessAbc_\" \n      class=\"link\">pygeodesy.excessAbc_</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#excessAbc_\" class=\"summary-sig-name\">excessAbc_</a>(<span class=\"summary-sig-arg\">A</span>,\n        <span class=\"summary-sig-arg\">b</span>,\n        <span class=\"summary-sig-arg\">c</span>)</span><br />\n      Compute the <i>spherical excess</i> <code>E</code> of a (spherical) \n      triangle from two sides and the included (small) angle.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#excessCagnoli_\" class=\"summary-sig-name\">excessCagnoli_</a>(<span class=\"summary-sig-arg\">a</span>,\n        <span class=\"summary-sig-arg\">b</span>,\n        <span class=\"summary-sig-arg\">c</span>)</span><br />\n      Compute the <i>spherical excess</i> <code>E</code> of a (spherical) \n      triangle using <a href=\"https://Zenodo.org/record/35392\" \n      target=\"_top\">Cagnoli's</a> (D.34) formula.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#excessGirard\" class=\"summary-sig-name\">excessGirard</a>(<span class=\"summary-sig-arg\">A</span>,\n        <span class=\"summary-sig-arg\">B</span>,\n        <span class=\"summary-sig-arg\">C</span>)</span><br />\n      DEPRECATED on 2023.04.04, use function <a \n      href=\"pygeodesy.formy-module.html#excessGirard_\" \n      class=\"link\">pygeodesy.excessGirard_</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#excessGirard_\" class=\"summary-sig-name\">excessGirard_</a>(<span class=\"summary-sig-arg\">A</span>,\n        <span class=\"summary-sig-arg\">B</span>,\n        <span class=\"summary-sig-arg\">C</span>)</span><br />\n      Compute the <i>spherical excess</i> <code>E</code> of a (spherical) \n      triangle using <a \n      href=\"https://MathWorld.Wolfram.com/GirardsSphericalExcessFormula.html\"\n      target=\"_top\">Girard's</a> formula.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#excessKarney\" class=\"summary-sig-name\">excessKarney</a>(<span class=\"summary-sig-arg\">lat1</span>,\n        <span class=\"summary-sig-arg\">lon1</span>,\n        <span class=\"summary-sig-arg\">lat2</span>,\n        <span class=\"summary-sig-arg\">lon2</span>,\n        <span class=\"summary-sig-arg\">radius</span>=<span class=\"summary-sig-default\">6371008.771415</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Compute the surface area of a (spherical) quadrilateral bounded by a \n      segment of a great circle, two meridians and the equator using <a \n      href=\"https://MathOverflow.net/questions/97711/the-area-of-spherical-polygons\"\n      target=\"_top\">Karney's</a> method.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#excessKarney_\" class=\"summary-sig-name\">excessKarney_</a>(<span class=\"summary-sig-arg\">phi2</span>,\n        <span class=\"summary-sig-arg\">phi1</span>,\n        <span class=\"summary-sig-arg\">lam21</span>)</span><br />\n      Compute the <i>spherical excess</i> <code>E</code> of a (spherical) \n      quadrilateral bounded by a segment of a great circle, two meridians \n      and the equator using <a \n      href=\"https://MathOverflow.net/questions/97711/the-area-of-spherical-polygons\"\n      target=\"_top\">Karney's</a> method.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#excessLHuilier\" class=\"summary-sig-name\">excessLHuilier</a>(<span class=\"summary-sig-arg\">a</span>,\n        <span class=\"summary-sig-arg\">b</span>,\n        <span class=\"summary-sig-arg\">c</span>)</span><br />\n      DEPRECATED on 2023.04.04, use function <a \n      href=\"pygeodesy.formy-module.html#excessLHuilier_\" \n      class=\"link\">pygeodesy.excessLHuilier_</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#excessLHuilier_\" class=\"summary-sig-name\">excessLHuilier_</a>(<span class=\"summary-sig-arg\">a</span>,\n        <span class=\"summary-sig-arg\">b</span>,\n        <span class=\"summary-sig-arg\">c</span>)</span><br />\n      Compute the <i>spherical excess</i> <code>E</code> of a (spherical) \n      triangle using <a \n      href=\"https://MathWorld.Wolfram.com/LHuiliersTheorem.html\" \n      target=\"_top\">L'Huilier's</a>'s Theorem.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#excessQuad\" class=\"summary-sig-name\">excessQuad</a>(<span class=\"summary-sig-arg\">lat1</span>,\n        <span class=\"summary-sig-arg\">lon1</span>,\n        <span class=\"summary-sig-arg\">lat2</span>,\n        <span class=\"summary-sig-arg\">lon2</span>,\n        <span class=\"summary-sig-arg\">radius</span>=<span class=\"summary-sig-default\">6371008.771415</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Compute the surface area of a (spherical) quadrilateral bounded by a \n      segment of a great circle, two meridians and the equator.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#excessQuad_\" class=\"summary-sig-name\">excessQuad_</a>(<span class=\"summary-sig-arg\">phi2</span>,\n        <span class=\"summary-sig-arg\">phi1</span>,\n        <span class=\"summary-sig-arg\">lam21</span>)</span><br />\n      Compute the <i>spherical excess</i> <code>E</code> of a (spherical) \n      quadrilateral bounded by a segment of a great circle, two meridians \n      and the equator.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#f2e2\" class=\"summary-sig-name\">f2e2</a>(<span class=\"summary-sig-arg\">f</span>)</span><br />\n      Return <code>e2</code>, the <i>1st eccentricity squared</i> for a \n      given <i>flattening</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#f2e22\" class=\"summary-sig-name\">f2e22</a>(<span class=\"summary-sig-arg\">f</span>)</span><br />\n      Return <code>e22</code>, the <i>2nd eccentricity squared</i> for a \n      given <i>flattening</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#f2e32\" class=\"summary-sig-name\">f2e32</a>(<span class=\"summary-sig-arg\">f</span>)</span><br />\n      Return <code>e32</code>, the <i>3rd eccentricity squared</i> for a \n      given <i>flattening</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#f2f2\" class=\"summary-sig-name\">f2f2</a>(<span class=\"summary-sig-arg\">f</span>)</span><br />\n      Return <code>f2</code>, the <i>2nd flattening</i> for a given \n      <i>flattening</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#f2f_\" class=\"summary-sig-name\">f2f_</a>(<span class=\"summary-sig-arg\">f</span>)</span><br />\n      Return <code>f_</code>, the <i>inverse flattening</i> for a given \n      <i>flattening</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#f2mul_\" class=\"summary-sig-name\">f2mul_</a>(<span class=\"summary-sig-arg\">x</span>,\n        <span class=\"summary-sig-arg\">*ys</span>,\n        <span class=\"summary-sig-arg\">**nonfinites</span>)</span><br />\n      Cascaded, accurate multiplication <code><b>x</b> * <b>y</b> * \n      <b>y</b> ...</code> for all <b><code>ys</code></b>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#f2n\" class=\"summary-sig-name\">f2n</a>(<span class=\"summary-sig-arg\">f</span>)</span><br />\n      Return <code>n</code>, the <i>3rd flattening</i> for a given \n      <i>flattening</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#f2product\" class=\"summary-sig-name\">f2product</a>(<span class=\"summary-sig-arg\">two</span>=<span class=\"summary-sig-default\">None</span>)</span><br />\n      Turn accurate <i>TwoProduct</i> multiplication on or off.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#fStr\" class=\"summary-sig-name\">fStr</a>(<span class=\"summary-sig-arg\">floats</span>,\n        <span class=\"summary-sig-arg\">prec</span>=<span class=\"summary-sig-default\">6</span>,\n        <span class=\"summary-sig-arg\">fmt</span>=<span class=\"summary-sig-default\">'f'</span>,\n        <span class=\"summary-sig-arg\">ints</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">sep</span>=<span class=\"summary-sig-default\">', '</span>)</span><br />\n      DEPRECATED, use function <a href=\"pygeodesy.streprs-module.html#fstr\"\n      class=\"link\">fstr</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#fStrzs\" class=\"summary-sig-name\">fStrzs</a>(<span class=\"summary-sig-arg\">floatstr</span>)</span><br />\n      DEPRECATED, use function <a \n      href=\"pygeodesy.streprs-module.html#fstrzs\" \n      class=\"link\">pygeodesy.fstrzs</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#f_2f\" class=\"summary-sig-name\">f_2f</a>(<span class=\"summary-sig-arg\">f_</span>)</span><br />\n      Return <code>f</code>, the <i>flattening</i> for a given <i>inverse \n      flattening</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#facos1\" class=\"summary-sig-name\">facos1</a>(<span class=\"summary-sig-arg\">x</span>)</span><br />\n      Fast approximation of <a href=\"pygeodesy.utily-module.html#acos1\" \n      class=\"link\">pygeodesy.acos1</a><code>(<b>x</b>)</code>, scalar.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#false2f\" class=\"summary-sig-name\">false2f</a>(<span class=\"summary-sig-arg\">value</span>,\n        <span class=\"summary-sig-arg\">name</span>=<span class=\"summary-sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">value</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"summary-sig-arg\">false</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">Error</span>=<span class=\"summary-sig-default\">&lt;type 'exceptions.ValueError'&gt;</span>)</span><br />\n      DEPRECATED, use class <a href=\"pygeodesy.units.Easting-class.html\" \n      class=\"link\">Easting</a> or <a \n      href=\"pygeodesy.units.Northing-class.html\" class=\"link\">Northing</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#falsed2f\" class=\"summary-sig-name\">falsed2f</a>(<span class=\"summary-sig-arg\">falsed</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">Error</span>=<span class=\"summary-sig-default\">&lt;type 'exceptions.ValueError'&gt;</span>,\n        <span class=\"summary-sig-arg\">**name_value</span>)</span><br />\n      DEPRECATED, use class <a href=\"pygeodesy.units.Easting-class.html\" \n      class=\"link\">Easting</a> or <a \n      href=\"pygeodesy.units.Northing-class.html\" class=\"link\">Northing</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#fasin1\" class=\"summary-sig-name\">fasin1</a>(<span class=\"summary-sig-arg\">x</span>)</span><br />\n      Fast approximation of <a href=\"pygeodesy.utily-module.html#asin1\" \n      class=\"link\">pygeodesy.asin1</a><code>(<b>x</b>)</code>, scalar.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"fatan\"></a><span class=\"summary-sig-name\">fatan</span>(<span class=\"summary-sig-arg\">x</span>)</span><br />\n      Fast approximation of <code>atan(<b>x</b>)</code>, scalar.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#fatan1\" class=\"summary-sig-name\">fatan1</a>(<span class=\"summary-sig-arg\">x</span>)</span><br />\n      Fast approximation of <code>atan(<b>x</b>)</code> for <code>0 &lt;= \n      <b>x</b> &lt; 1</code>, <i>unchecked</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#fatan2\" class=\"summary-sig-name\">fatan2</a>(<span class=\"summary-sig-arg\">y</span>,\n        <span class=\"summary-sig-arg\">x</span>)</span><br />\n      Fast approximation of <code>atan2(<b>y</b>, <b>x</b>)</code>, scalar.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#fathom2m\" class=\"summary-sig-name\">fathom2m</a>(<span class=\"summary-sig-arg\">fathoms</span>)</span><br />\n      Convert a length in <i>Imperial</i> fathoms to meter.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#favg\" class=\"summary-sig-name\">favg</a>(<span class=\"summary-sig-arg\">a</span>,\n        <span class=\"summary-sig-arg\">b</span>,\n        <span class=\"summary-sig-arg\">f</span>=<span class=\"summary-sig-default\">0.5</span>,\n        <span class=\"summary-sig-arg\">nonfinites</span>=<span class=\"summary-sig-default\">True</span>)</span><br />\n      Return the precise average of two values.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#fdot\" class=\"summary-sig-name\">fdot</a>(<span class=\"summary-sig-arg\">xs</span>,\n        <span class=\"summary-sig-arg\">*ys</span>,\n        <span class=\"summary-sig-arg\">**start_f2product_nonfinites</span>)</span><br />\n      Return the precision dot product <i class=\"math\">start + sum(xs[i] * \n      ys[i] for i in range(len(xs)))</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#fdot3\" class=\"summary-sig-name\">fdot3</a>(<span class=\"summary-sig-arg\">xs</span>,\n        <span class=\"summary-sig-arg\">ys</span>,\n        <span class=\"summary-sig-arg\">zs</span>,\n        <span class=\"summary-sig-arg\">**start_f2product_nonfinites</span>)</span><br />\n      Return the (precision) dot product <i class=\"math\">start + sum(xs[i] \n      * ys[i] * zs[i] for i in range(len(xs)))</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#fdot_\" class=\"summary-sig-name\">fdot_</a>(<span class=\"summary-sig-arg\">*xys</span>,\n        <span class=\"summary-sig-arg\">**start_f2product_nonfinites</span>)</span><br />\n      Return the (precision) dot product <i class=\"math\">start + sum(xys[i]\n      * xys[i+1] for i in range(0, len(xys), <b>2</b>))</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#fhorner\" class=\"summary-sig-name\">fhorner</a>(<span class=\"summary-sig-arg\">x</span>,\n        <span class=\"summary-sig-arg\">*cs</span>,\n        <span class=\"summary-sig-arg\">**incx</span>)</span><br />\n      Horner form evaluation of polynomial <i class=\"math\">sum(cs[i] * x**i\n      for i=0..n)</i> as in- or decreasing exponent <i class=\"math\">sum(...\n      i=n..0)</i>, where <code>n = len(cs) - 1</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#fidw\" class=\"summary-sig-name\">fidw</a>(<span class=\"summary-sig-arg\">xs</span>,\n        <span class=\"summary-sig-arg\">ds</span>,\n        <span class=\"summary-sig-arg\">beta</span>=<span class=\"summary-sig-default\">2</span>)</span><br />\n      Interpolate using <a \n      href=\"https://WikiPedia.org/wiki/Inverse_distance_weighting\" \n      target=\"_top\">Inverse Distance Weighting</a> (IDW).</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#flatLocal\" class=\"summary-sig-name\">flatLocal</a>(<span class=\"summary-sig-arg\">lat1</span>,\n        <span class=\"summary-sig-arg\">lon1</span>,\n        <span class=\"summary-sig-arg\">lat2</span>,\n        <span class=\"summary-sig-arg\">lon2</span>,\n        <span class=\"summary-sig-arg\">datum</span>=<span class=\"summary-sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"summary-sig-arg\">scaled</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Compute the distance between two (ellipsoidal) points using the <a \n      href=\"https://WikiPedia.org/wiki/Geographical_distance#Ellipsoidal_Earth_projected_to_a_plane\"\n      target=\"_top\">ellipsoidal Earth to plane projection</a> aka <a \n      href=\"https://www.OVG.AT/de/vgi/files/pdf/3781/\" \n      target=\"_top\">Hubeny</a> formula.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#flatLocal_\" class=\"summary-sig-name\">flatLocal_</a>(<span class=\"summary-sig-arg\">phi2</span>,\n        <span class=\"summary-sig-arg\">phi1</span>,\n        <span class=\"summary-sig-arg\">lam21</span>,\n        <span class=\"summary-sig-arg\">datum</span>=<span class=\"summary-sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"summary-sig-arg\">scaled</span>=<span class=\"summary-sig-default\">True</span>)</span><br />\n      Compute the <i>angular</i> distance between two (ellipsoidal) points \n      using the <a \n      href=\"https://WikiPedia.org/wiki/Geographical_distance#Ellipsoidal_Earth_projected_to_a_plane\"\n      target=\"_top\">ellipsoidal Earth to plane projection</a> aka <a \n      href=\"https://www.OVG.AT/de/vgi/files/pdf/3781/\" \n      target=\"_top\">Hubeny</a> formula.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#flatPolar\" class=\"summary-sig-name\">flatPolar</a>(<span class=\"summary-sig-arg\">lat1</span>,\n        <span class=\"summary-sig-arg\">lon1</span>,\n        <span class=\"summary-sig-arg\">lat2</span>,\n        <span class=\"summary-sig-arg\">lon2</span>,\n        <span class=\"summary-sig-arg\">radius</span>=<span class=\"summary-sig-default\">6371008.771415</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Compute the distance between two (spherical) points using the <a \n      href=\"https://WikiPedia.org/wiki/Geographical_distance#Polar_coordinate_flat-Earth_formula\"\n      target=\"_top\">polar coordinate flat-Earth</a> formula.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#flatPolar_\" class=\"summary-sig-name\">flatPolar_</a>(<span class=\"summary-sig-arg\">phi2</span>,\n        <span class=\"summary-sig-arg\">phi1</span>,\n        <span class=\"summary-sig-arg\">lam21</span>)</span><br />\n      Compute the <i>angular</i> distance between two (spherical) points \n      using the <a \n      href=\"https://WikiPedia.org/wiki/Geographical_distance#Polar_coordinate_flat-Earth_formula\"\n      target=\"_top\">polar coordinate flat-Earth</a> formula.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#float0\" class=\"summary-sig-name\">float0</a>(<span class=\"summary-sig-arg\">*xs</span>)</span><br />\n      DEPRECATED on 2023.04.21, use function <a \n      href=\"pygeodesy.constants-module.html#float0_\" \n      class=\"link\">pygeodesy.float0_</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"float0_\"></a><span class=\"summary-sig-name\">float0_</span>(<span class=\"summary-sig-arg\">*xs</span>)</span><br />\n      Yield <code><b>x</b>s</code> as a non-NEG0 <code>float</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#float_\" class=\"summary-sig-name\">float_</a>(<span class=\"summary-sig-arg\">x</span>,\n        <span class=\"summary-sig-arg\">sets</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Get scalar as <code>float</code> or <i>intern</i>'ed \n      <code>float</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#floats_\" class=\"summary-sig-name\">floats_</a>(<span class=\"summary-sig-arg\">*xs</span>,\n        <span class=\"summary-sig-arg\">**sets</span>)</span><br />\n      Yield each scalar as <code>float</code> or <i>intern</i>'ed \n      <code>float</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#fma\" class=\"summary-sig-name\">fma</a>(<span class=\"summary-sig-arg\">x</span>,\n        <span class=\"summary-sig-arg\">y</span>,\n        <span class=\"summary-sig-arg\">z</span>,\n        <span class=\"summary-sig-arg\">**nonfinites</span>)</span><br />\n      Fused-multiply-add, using <code>math.fma(x, y, z)</code> in Python \n      3.13+ or an equivalent implementation.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#fmean\" class=\"summary-sig-name\">fmean</a>(<span class=\"summary-sig-arg\">xs</span>,\n        <span class=\"summary-sig-arg\">nonfinites</span>=<span class=\"summary-sig-default\">True</span>)</span><br />\n      Compute the accurate mean <i class=\"math\">sum(xs) / len(xs)</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#fmean_\" class=\"summary-sig-name\">fmean_</a>(<span class=\"summary-sig-arg\">*xs</span>,\n        <span class=\"summary-sig-arg\">**nonfinites</span>)</span><br />\n      Compute the accurate mean <i class=\"math\">sum(xs) / len(xs)</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#fpolynomial\" class=\"summary-sig-name\">fpolynomial</a>(<span class=\"summary-sig-arg\">x</span>,\n        <span class=\"summary-sig-arg\">*cs</span>,\n        <span class=\"summary-sig-arg\">**over_f2product_nonfinites</span>)</span><br />\n      Evaluate the polynomial <i class=\"math\">sum(cs[i] * x**i for \n      i=0..len(cs)) [/ over]</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#fpowers\" class=\"summary-sig-name\">fpowers</a>(<span class=\"summary-sig-arg\">x</span>,\n        <span class=\"summary-sig-arg\">n</span>,\n        <span class=\"summary-sig-arg\">alts</span>=<span class=\"summary-sig-default\">0</span>)</span><br />\n      Return a series of powers <i class=\"math\">[x**i for i=1..n]</i>, note\n      <i>1..!</i></td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#fprod\" class=\"summary-sig-name\">fprod</a>(<span class=\"summary-sig-arg\">xs</span>,\n        <span class=\"summary-sig-arg\">start</span>=<span class=\"summary-sig-default\">1</span>)</span><br />\n      Iterable product, like <code>math.prod</code> or \n      <code>numpy.prod</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#fractional\" class=\"summary-sig-name\">fractional</a>(<span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">fi</span>,\n        <span class=\"summary-sig-arg\">j</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">LatLon</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">Vector</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**kwds</span>)</span><br />\n      Return the point at a given <i>fractional</i> index.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#frandoms\" class=\"summary-sig-name\">frandoms</a>(<span class=\"summary-sig-arg\">n</span>,\n        <span class=\"summary-sig-arg\">seeded</span>=<span class=\"summary-sig-default\">None</span>)</span><br />\n      Generate <code>n</code> (long) lists of random <code>floats</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#frange\" class=\"summary-sig-name\">frange</a>(<span class=\"summary-sig-arg\">start</span>,\n        <span class=\"summary-sig-arg\">number</span>,\n        <span class=\"summary-sig-arg\">step</span>=<span class=\"summary-sig-default\">1</span>)</span><br />\n      Generate a range of <code>float</code>s.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#frechet_\" class=\"summary-sig-name\">frechet_</a>(<span class=\"summary-sig-arg\">point1s</span>,\n        <span class=\"summary-sig-arg\">point2s</span>,\n        <span class=\"summary-sig-arg\">distance</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">units</span>=<span class=\"summary-sig-default\">''</span>,\n        <span class=\"summary-sig-arg\">recursive</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Compute the <i>discrete</i> <a \n      href=\"https://WikiPedia.org/wiki/Frechet_distance\" \n      target=\"_top\">Fr&#233;chet</a> distance between two paths, each given as a\n      set of points.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">value</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#freduce\" class=\"summary-sig-name\">freduce</a>(<span class=\"summary-sig-arg\">function</span>,\n        <span class=\"summary-sig-arg\">sequence</span>,\n        <span class=\"summary-sig-arg\">initial</span>=<span class=\"summary-sig-default\">...</span>)</span><br />\n      Apply a function of two arguments cumulatively to the items of a \n      sequence, from left to right, so as to reduce the sequence to a \n      single value.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#fremainder\" class=\"summary-sig-name\">fremainder</a>(<span class=\"summary-sig-arg\">x</span>,\n        <span class=\"summary-sig-arg\">y</span>)</span><br />\n      Remainder in range <code>[-<b>y / 2</b>, <b>y / 2</b>]</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#fstr\" class=\"summary-sig-name\">fstr</a>(<span class=\"summary-sig-arg\">floats</span>,\n        <span class=\"summary-sig-arg\">prec</span>=<span class=\"summary-sig-default\">6</span>,\n        <span class=\"summary-sig-arg\">fmt</span>=<span class=\"summary-sig-default\">'F'</span>,\n        <span class=\"summary-sig-arg\">ints</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">sep</span>=<span class=\"summary-sig-default\">', '</span>,\n        <span class=\"summary-sig-arg\">strepr</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">force</span>=<span class=\"summary-sig-default\">True</span>)</span><br />\n      Convert one or more floats to string, optionally stripped of trailing\n      zero decimals.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#fstrzs\" class=\"summary-sig-name\">fstrzs</a>(<span class=\"summary-sig-arg\">efstr</span>,\n        <span class=\"summary-sig-arg\">ap1z</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Strip trailing zero decimals from a <code>float</code> string.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#fsum\" class=\"summary-sig-name\">fsum</a>(<span class=\"summary-sig-arg\">xs</span>,\n        <span class=\"summary-sig-arg\">nonfinites</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**floats</span>)</span><br />\n      Precision floating point summation from Python's \n      <code>math.fsum</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#fsum1\" class=\"summary-sig-name\">fsum1</a>(<span class=\"summary-sig-arg\">xs</span>,\n        <span class=\"summary-sig-arg\">**nonfinites</span>)</span><br />\n      Precision floating point summation, 1-primed.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#fsum1_\" class=\"summary-sig-name\">fsum1_</a>(<span class=\"summary-sig-arg\">*xs</span>,\n        <span class=\"summary-sig-arg\">**nonfinites</span>)</span><br />\n      Precision floating point summation of all positional items, 1-primed.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#fsum1f_\" class=\"summary-sig-name\">fsum1f_</a>(<span class=\"summary-sig-arg\">*xs</span>)</span><br />\n      Precision floating point summation of all positional items, 1-primed \n      and with <i>non-finites</i> <code>OK</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#fsum_\" class=\"summary-sig-name\">fsum_</a>(<span class=\"summary-sig-arg\">*xs</span>,\n        <span class=\"summary-sig-arg\">**nonfinites</span>)</span><br />\n      Precision floating point summation of all positional items.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#fsumf_\" class=\"summary-sig-name\">fsumf_</a>(<span class=\"summary-sig-arg\">*xs</span>)</span><br />\n      Precision floating point summation of all positional items with \n      <i>non-finites</i> <code>OK</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#ft2m\" class=\"summary-sig-name\">ft2m</a>(<span class=\"summary-sig-arg\">feet</span>,\n        <span class=\"summary-sig-arg\">usurvey</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">pied</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">india</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">fuss</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Convert a length in <i>International</i>, <i>US Survey</i>, \n      <i>French</i>, <i>Indian</i> or <i>German</i> feet to meter.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#furlong2m\" class=\"summary-sig-name\">furlong2m</a>(<span class=\"summary-sig-arg\">furlongs</span>)</span><br />\n      Convert a length in <i>furlongs</i> to meter.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#gdf\" class=\"summary-sig-name\">gdf</a>(<span class=\"summary-sig-arg\">psi</span>)</span><br />\n      <a href=\"https://WikiPedia.org/wiki/Gudermannian_function\" \n      target=\"_top\">Gudermannian function</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#geoidHeight2\" class=\"summary-sig-name\">geoidHeight2</a>(<span class=\"summary-sig-arg\">lat</span>,\n        <span class=\"summary-sig-arg\">lon</span>,\n        <span class=\"summary-sig-arg\">model</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">timeout</span>=<span class=\"summary-sig-default\">2.0</span>)</span><br />\n      Get the <code>NAVD88</code> geoid height at an <code>NAD83</code> \n      location.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#gnomonic\" class=\"summary-sig-name\">gnomonic</a>(<span class=\"summary-sig-arg\">lat0</span>,\n        <span class=\"summary-sig-arg\">lon0</span>,\n        <span class=\"summary-sig-arg\">datum</span>=<span class=\"summary-sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"summary-sig-arg\">exact</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">geodsolve</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Return a <a href=\"pygeodesy.azimuthal.GnomonicExact-class.html\" \n      class=\"link\">GnomonicExact</a> or (if <i>Karney</i>'s <a \n      href=\"https://PyPI.org/project/geographiclib\" \n      target=\"_top\">geographiclib</a> package is installed) a <a \n      href=\"pygeodesy.azimuthal.GnomonicKarney-class.html\" \n      class=\"link\">GnomonicKarney</a>, otherwise a <a \n      href=\"pygeodesy.azimuthal.Gnomonic-class.html\" \n      class=\"link\">Gnomonic</a> instance.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#grades\" class=\"summary-sig-name\">grades</a>(<span class=\"summary-sig-arg\">rad</span>)</span><br />\n      Convert radians to <i>grades</i> (aka <i>gons</i> or \n      <i>gradians</i>).</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#grades2degrees\" class=\"summary-sig-name\">grades2degrees</a>(<span class=\"summary-sig-arg\">gon</span>)</span><br />\n      Convert <i>grades</i> (aka <i>gons</i> or <i>gradians</i>) to \n      <code>degrees</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#grades2radians\" class=\"summary-sig-name\">grades2radians</a>(<span class=\"summary-sig-arg\">gon</span>)</span><br />\n      Convert <i>grades</i> (aka <i>gons</i> or <i>gradians</i>) to \n      <code>radians</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#grades400\" class=\"summary-sig-name\">grades400</a>(<span class=\"summary-sig-arg\">rad</span>)</span><br />\n      Convert radians to <i>grades</i> (aka <i>gons</i> or <i>gradians</i>)\n      and wrap <i class=\"math\">[0..+400)</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#ha2acre\" class=\"summary-sig-name\">ha2acre</a>(<span class=\"summary-sig-arg\">ha</span>)</span><br />\n      Convert an area in <i>hectares</i> to <i>acres</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#ha2m2\" class=\"summary-sig-name\">ha2m2</a>(<span class=\"summary-sig-arg\">ha</span>)</span><br />\n      Convert an area in <i>hectares</i> to <i>square</i> meter.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#halfs2\" class=\"summary-sig-name\">halfs2</a>(<span class=\"summary-sig-arg\">str2</span>)</span><br />\n      Split a string in 2 halfs.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#hartzell\" class=\"summary-sig-name\">hartzell</a>(<span class=\"summary-sig-arg\">pov</span>,\n        <span class=\"summary-sig-arg\">los</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">earth</span>=<span class=\"summary-sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"summary-sig-arg\">**name_LatLon_and_kwds</span>)</span><br />\n      Compute the intersection of the earth's surface and a Line-Of-Sight \n      from a Point-Of-View in space.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#hartzell4\" class=\"summary-sig-name\">hartzell4</a>(<span class=\"summary-sig-arg\">pov</span>,\n        <span class=\"summary-sig-arg\">los</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">tri_biax</span>=<span class=\"summary-sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Compute the intersection of a tri-/biaxial ellipsoid and a \n      Line-Of-Sight from a Point-Of-View outside.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#hausdorff_\" class=\"summary-sig-name\">hausdorff_</a>(<span class=\"summary-sig-arg\">model</span>,\n        <span class=\"summary-sig-arg\">target</span>,\n        <span class=\"summary-sig-arg\">both</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">early</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">seed</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">units</span>=<span class=\"summary-sig-default\">''</span>,\n        <span class=\"summary-sig-arg\">distance</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">point</span>=<span class=\"summary-sig-default\">&lt;function _point at 0x7fc1d033fed0&gt;</span>)</span><br />\n      Compute the <code>directed</code> or <code>symmetric</code> <a \n      href=\"https://WikiPedia.org/wiki/Hausdorff_distance\" \n      target=\"_top\">Hausdorff</a> distance between 2 sets of points with or\n      without <a href=\"https://Publik.TUWien.ac.AT/files/PubDat_247739.pdf\"\n      target=\"_top\">early breaking</a> and <a \n      href=\"https://Publik.TUWien.ac.AT/files/PubDat_247739.pdf\" \n      target=\"_top\">random sampling</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#hav\" class=\"summary-sig-name\">hav</a>(<span class=\"summary-sig-arg\">rad</span>)</span><br />\n      Return the <a href=\"https://WikiPedia.org/wiki/Haversine_formula\" \n      target=\"_top\">haversine</a> of an angle.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#haversine\" class=\"summary-sig-name\">haversine</a>(<span class=\"summary-sig-arg\">lat1</span>,\n        <span class=\"summary-sig-arg\">lon1</span>,\n        <span class=\"summary-sig-arg\">lat2</span>,\n        <span class=\"summary-sig-arg\">lon2</span>,\n        <span class=\"summary-sig-arg\">radius</span>=<span class=\"summary-sig-default\">6371008.771415</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Compute the distance between two (spherical) points using the <a \n      href=\"https://www.Movable-Type.co.UK/scripts/latlong.html\" \n      target=\"_top\">Haversine</a> formula.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#haversine_\" class=\"summary-sig-name\">haversine_</a>(<span class=\"summary-sig-arg\">geohash1</span>,\n        <span class=\"summary-sig-arg\">geohash2</span>,\n        <span class=\"summary-sig-arg\">**radius_wrap</span>)</span><br />\n      Compute the great-circle distance between two geohashes using the <a \n      href=\"pygeodesy.formy-module.html#haversine\" \n      class=\"link\">pygeodesy.haversine</a> formula.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#height4\" class=\"summary-sig-name\">height4</a>(<span class=\"summary-sig-arg\">x_xyz</span>,\n        <span class=\"summary-sig-arg\">y</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">z</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">tri_biax</span>=<span class=\"summary-sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"summary-sig-arg\">normal</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">eps</span>=<span class=\"summary-sig-default\">2.220446049250313e-16</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Compute the projection on and the height above or below a \n      tri-/biaxial ellipsoid's surface.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#heightOf\" class=\"summary-sig-name\">heightOf</a>(<span class=\"summary-sig-arg\">angle</span>,\n        <span class=\"summary-sig-arg\">distance</span>,\n        <span class=\"summary-sig-arg\">radius</span>=<span class=\"summary-sig-default\">6371008.771415</span>)</span><br />\n      Determine the height above the (spherical) earth' surface after \n      traveling along a straight line at a given tilt.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#heightOrthometric\" class=\"summary-sig-name\">heightOrthometric</a>(<span class=\"summary-sig-arg\">h_loc</span>,\n        <span class=\"summary-sig-arg\">N</span>)</span><br />\n      Get the <i>orthometric</i> height <b>H</b>, the height above the \n      geoid, earth surface.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#horizon\" class=\"summary-sig-name\">horizon</a>(<span class=\"summary-sig-arg\">height</span>,\n        <span class=\"summary-sig-arg\">radius</span>=<span class=\"summary-sig-default\">6371008.771415</span>,\n        <span class=\"summary-sig-arg\">refraction</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Determine the distance to the horizon from a given altitude above the\n      (spherical) earth.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#hstr\" class=\"summary-sig-name\">hstr</a>(<span class=\"summary-sig-arg\">height</span>,\n        <span class=\"summary-sig-arg\">prec</span>=<span class=\"summary-sig-default\">2</span>,\n        <span class=\"summary-sig-arg\">fmt</span>=<span class=\"summary-sig-default\">'%+.*f'</span>,\n        <span class=\"summary-sig-arg\">ints</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">m</span>=<span class=\"summary-sig-default\">''</span>)</span><br />\n      Return a string for the height value.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#hubeny\" class=\"summary-sig-name\">hubeny</a>(<span class=\"summary-sig-arg\">lat1</span>,\n        <span class=\"summary-sig-arg\">lon1</span>,\n        <span class=\"summary-sig-arg\">lat2</span>,\n        <span class=\"summary-sig-arg\">lon2</span>,\n        <span class=\"summary-sig-arg\">datum</span>=<span class=\"summary-sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"summary-sig-arg\">scaled</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Compute the distance between two (ellipsoidal) points using the <a \n      href=\"https://WikiPedia.org/wiki/Geographical_distance#Ellipsoidal_Earth_projected_to_a_plane\"\n      target=\"_top\">ellipsoidal Earth to plane projection</a> aka <a \n      href=\"https://www.OVG.AT/de/vgi/files/pdf/3781/\" \n      target=\"_top\">Hubeny</a> formula.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#hubeny_\" class=\"summary-sig-name\">hubeny_</a>(<span class=\"summary-sig-arg\">phi2</span>,\n        <span class=\"summary-sig-arg\">phi1</span>,\n        <span class=\"summary-sig-arg\">lam21</span>,\n        <span class=\"summary-sig-arg\">datum</span>=<span class=\"summary-sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"summary-sig-arg\">scaled</span>=<span class=\"summary-sig-default\">True</span>)</span><br />\n      Compute the <i>angular</i> distance between two (ellipsoidal) points \n      using the <a \n      href=\"https://WikiPedia.org/wiki/Geographical_distance#Ellipsoidal_Earth_projected_to_a_plane\"\n      target=\"_top\">ellipsoidal Earth to plane projection</a> aka <a \n      href=\"https://www.OVG.AT/de/vgi/files/pdf/3781/\" \n      target=\"_top\">Hubeny</a> formula.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"hypot\"></a><span class=\"summary-sig-name\">hypot</span>(<span class=\"summary-sig-arg\">x</span>,\n        <span class=\"summary-sig-arg\">y</span>)</span><br />\n      Return the Euclidean distance, sqrt(x*x + y*y).</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#hypot1\" class=\"summary-sig-name\">hypot1</a>(<span class=\"summary-sig-arg\">x</span>)</span><br />\n      Compute the norm <i class=\"math\">sqrt(1 + x**2)</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#hypot2\" class=\"summary-sig-name\">hypot2</a>(<span class=\"summary-sig-arg\">x</span>,\n        <span class=\"summary-sig-arg\">y</span>,\n        <span class=\"summary-sig-arg\">*xy0</span>)</span><br />\n      Compute the <i>squared</i> norm <i class=\"math\">x**2 + y**2</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#hypot2_\" class=\"summary-sig-name\">hypot2_</a>(<span class=\"summary-sig-arg\">*xs</span>)</span><br />\n      Compute the <i>squared</i> norm <code>fsum(x**2 for x in \n      <b>xs</b>)</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#hypot3\" class=\"summary-sig-name\">hypot3</a>(<span class=\"summary-sig-arg\">x</span>,\n        <span class=\"summary-sig-arg\">y</span>,\n        <span class=\"summary-sig-arg\">z</span>)</span><br />\n      DEPRECATED, use function <a href=\"pygeodesy.fmath-module.html#hypot_\"\n      class=\"link\">pygeodesy.hypot_</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#hypot_\" class=\"summary-sig-name\">hypot_</a>(<span class=\"summary-sig-arg\">*xs</span>)</span><br />\n      Compute the norm <i class=\"math\">sqrt(sum(x**2 for x in xs))</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#inStr\" class=\"summary-sig-name\">inStr</a>(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">*args</span>,\n        <span class=\"summary-sig-arg\">**kwds</span>)</span><br />\n      DEPRECATED, use function <a \n      href=\"pygeodesy.streprs-module.html#instr\" \n      class=\"link\">pygeodesy.instr</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#instr\" class=\"summary-sig-name\">instr</a>(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">*args</span>,\n        <span class=\"summary-sig-arg\">**kwds</span>)</span><br />\n      Return the string representation of an instantiation.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#int1s\" class=\"summary-sig-name\">int1s</a>(<span class=\"summary-sig-arg\">x</span>)</span><br />\n      Count the number of 1-bits in an <code>int</code>, <i>unsigned</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#intersection2\" class=\"summary-sig-name\">intersection2</a>(<span class=\"summary-sig-arg\">lat1</span>,\n        <span class=\"summary-sig-arg\">lon1</span>,\n        <span class=\"summary-sig-arg\">bearing1</span>,\n        <span class=\"summary-sig-arg\">lat2</span>,\n        <span class=\"summary-sig-arg\">lon2</span>,\n        <span class=\"summary-sig-arg\">bearing2</span>,\n        <span class=\"summary-sig-arg\">datum</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">small</span>=<span class=\"summary-sig-default\">100000.0</span>)</span><br />\n      <i>Conveniently</i> compute the intersection of two lines each \n      defined by a (geodetic) point and a bearing from North, using either \n      ...</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#intersection3d3\" class=\"summary-sig-name\">intersection3d3</a>(<span class=\"summary-sig-arg\">start1</span>,\n        <span class=\"summary-sig-arg\">end1</span>,\n        <span class=\"summary-sig-arg\">start2</span>,\n        <span class=\"summary-sig-arg\">end2</span>,\n        <span class=\"summary-sig-arg\">eps</span>=<span class=\"summary-sig-default\">2.220446049250313e-16</span>,\n        <span class=\"summary-sig-arg\">useZ</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">**Vector_and_kwds</span>)</span><br />\n      Compute the intersection point of two (2- or 3-D) lines, each defined\n      by two points or by a point and a bearing.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#intersections2\" class=\"summary-sig-name\">intersections2</a>(<span class=\"summary-sig-arg\">center1</span>,\n        <span class=\"summary-sig-arg\">radius1</span>,\n        <span class=\"summary-sig-arg\">center2</span>,\n        <span class=\"summary-sig-arg\">radius2</span>,\n        <span class=\"summary-sig-arg\">sphere</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">**Vector_and_kwds</span>)</span><br />\n      Compute the intersection of two spheres or circles, each defined by a\n      (3-D) center point and a radius.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"isAng\"></a><span class=\"summary-sig-name\">isAng</span>(<span class=\"summary-sig-arg\">ang</span>)</span><br />\n      Is <code>ang</code> an <a href=\"pygeodesy.angles.Ang-class.html\" \n      class=\"link\">Ang</a> instance?</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#isBoolean\" class=\"summary-sig-name\">isBoolean</a>(<span class=\"summary-sig-arg\">obj</span>)</span><br />\n      Check for <code>Boolean</code> composites.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#isCartesian\" class=\"summary-sig-name\">isCartesian</a>(<span class=\"summary-sig-arg\">obj</span>,\n        <span class=\"summary-sig-arg\">ellipsoidal</span>=<span class=\"summary-sig-default\">None</span>)</span><br />\n      Is <b><code>obj</code></b>ect some <code>Cartesian</code>?</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#isDEPRECATED\" class=\"summary-sig-name\">isDEPRECATED</a>(<span class=\"summary-sig-arg\">obj</span>,\n        <span class=\"summary-sig-arg\">outer</span>=<span class=\"summary-sig-default\">1</span>)</span><br />\n      Is <b><code>obj</code></b>ect or its outer <code>type</code> a \n      <code>DEPRECATED</code> class, constant, method or function?</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#isError\" class=\"summary-sig-name\">isError</a>(<span class=\"summary-sig-arg\">exc</span>)</span><br />\n      Check a (caught) exception.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#isLatLon\" class=\"summary-sig-name\">isLatLon</a>(<span class=\"summary-sig-arg\">obj</span>,\n        <span class=\"summary-sig-arg\">ellipsoidal</span>=<span class=\"summary-sig-default\">None</span>)</span><br />\n      Is <b><code>obj</code></b>ect some <code>LatLon</code>?</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#isNumpy2\" class=\"summary-sig-name\">isNumpy2</a>(<span class=\"summary-sig-arg\">obj</span>)</span><br />\n      Check for a <b><code>Numpy2LatLon</code></b> points wrapper.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#isNvector\" class=\"summary-sig-name\">isNvector</a>(<span class=\"summary-sig-arg\">obj</span>,\n        <span class=\"summary-sig-arg\">ellipsoidal</span>=<span class=\"summary-sig-default\">None</span>)</span><br />\n      Is <b><code>obj</code></b>ect some <code>Nvector</code>?</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#isPoints2\" class=\"summary-sig-name\">isPoints2</a>(<span class=\"summary-sig-arg\">obj</span>)</span><br />\n      Check for a <b><code>LatLon2psxy</code></b> points wrapper.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#isTuple2\" class=\"summary-sig-name\">isTuple2</a>(<span class=\"summary-sig-arg\">obj</span>)</span><br />\n      Check for a <b><code>Tuple2LatLon</code></b> points wrapper.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#isantipode\" class=\"summary-sig-name\">isantipode</a>(<span class=\"summary-sig-arg\">lat1</span>,\n        <span class=\"summary-sig-arg\">lon1</span>,\n        <span class=\"summary-sig-arg\">lat2</span>,\n        <span class=\"summary-sig-arg\">lon2</span>,\n        <span class=\"summary-sig-arg\">eps</span>=<span class=\"summary-sig-default\">2.220446049250313e-16</span>)</span><br />\n      Check whether two points are <i>antipodal</i>, on diametrically \n      opposite sides of the earth.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#isantipode_\" class=\"summary-sig-name\">isantipode_</a>(<span class=\"summary-sig-arg\">phi1</span>,\n        <span class=\"summary-sig-arg\">lam1</span>,\n        <span class=\"summary-sig-arg\">phi2</span>,\n        <span class=\"summary-sig-arg\">lam2</span>,\n        <span class=\"summary-sig-arg\">eps</span>=<span class=\"summary-sig-default\">2.220446049250313e-16</span>)</span><br />\n      Check whether two points are <i>antipodal</i>, on diametrically \n      opposite sides of the earth.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#isbool\" class=\"summary-sig-name\">isbool</a>(<span class=\"summary-sig-arg\">obj</span>)</span><br />\n      Is <b><code>obj</code></b>ect a <code>bool</code>ean?</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"isclass\"></a><span class=\"summary-sig-name\">isclass</span>(<span class=\"summary-sig-arg\">obj</span>)</span><br />\n      Is <b><code>obj</code></b>ect a <code>Class</code> or \n      <code>type</code>?</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#isclockwise\" class=\"summary-sig-name\">isclockwise</a>(<span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">adjust</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">True</span>)</span><br />\n      Determine the direction of a path or polygon.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"isclose\"></a><span class=\"summary-sig-name\">isclose</span>(<span class=\"summary-sig-arg\">a</span>,\n        <span class=\"summary-sig-arg\">b</span>,\n        <span class=\"summary-sig-arg\">rel_tol</span>=<span class=\"summary-sig-default\">1e-12</span>,\n        <span class=\"summary-sig-arg\">abs_tol</span>=<span class=\"summary-sig-default\">4.930380657631324e-32</span>)</span><br />\n      Like <code>math.isclose</code>, but with defaults such that \n      <code>isclose(0, EPS0)</code> is <code>True</code> by default.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#iscolinearWith\" class=\"summary-sig-name\">iscolinearWith</a>(<span class=\"summary-sig-arg\">point</span>,\n        <span class=\"summary-sig-arg\">point1</span>,\n        <span class=\"summary-sig-arg\">point2</span>,\n        <span class=\"summary-sig-arg\">eps</span>=<span class=\"summary-sig-default\">2.220446049250313e-16</span>,\n        <span class=\"summary-sig-arg\">useZ</span>=<span class=\"summary-sig-default\">True</span>)</span><br />\n      Check whether a point is colinear with two other (2- or 3-D) points.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#iscomplex\" class=\"summary-sig-name\">iscomplex</a>(<span class=\"summary-sig-arg\">obj</span>,\n        <span class=\"summary-sig-arg\">both</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Is <b><code>obj</code></b>ect a <code>complex</code> or complex \n      literal <code>str</code>?</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#isconvex\" class=\"summary-sig-name\">isconvex</a>(<span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">adjust</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Determine whether a polygon is convex.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#isconvex_\" class=\"summary-sig-name\">isconvex_</a>(<span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">adjust</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Determine whether a polygon is convex <i>and clockwise</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#isenclosedBy\" class=\"summary-sig-name\">isenclosedBy</a>(<span class=\"summary-sig-arg\">point</span>,\n        <span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Determine whether a point is enclosed by a polygon or composite.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#isenclosedby\" class=\"summary-sig-name\">isenclosedby</a>(<span class=\"summary-sig-arg\">point</span>,\n        <span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      DEPRECATED, use function <a \n      href=\"pygeodesy.points-module.html#isenclosedBy\" \n      class=\"link\">pygeodesy.isenclosedBy</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#isfinite\" class=\"summary-sig-name\">isfinite</a>(<span class=\"summary-sig-arg\">obj</span>)</span><br />\n      Check a finite <code>scalar</code>, <code>complex</code>, ...</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#isfloat\" class=\"summary-sig-name\">isfloat</a>(<span class=\"summary-sig-arg\">obj</span>,\n        <span class=\"summary-sig-arg\">both</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Is <b><code>obj</code></b>ect a <code>float</code> or float literal \n      <code>str</code>?</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"isidentifier\"></a><span class=\"summary-sig-name\">isidentifier</span>(<span class=\"summary-sig-arg\">obj</span>)</span><br />\n      Is <b><code>obj</code></b>ect a Python identifier?</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">bool</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"isinf\"></a><span class=\"summary-sig-name\">isinf</span>(<span class=\"summary-sig-arg\">x</span>)</span><br />\n      Check if float x is infinite (positive or negative).</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#isinstanceof\" class=\"summary-sig-name\">isinstanceof</a>(<span class=\"summary-sig-arg\">obj</span>,\n        <span class=\"summary-sig-arg\">*Classes</span>)</span><br />\n      Is <b><code>obj</code></b>ect an instance of one of the \n      <code>Classes</code>?</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#isint\" class=\"summary-sig-name\">isint</a>(<span class=\"summary-sig-arg\">obj</span>,\n        <span class=\"summary-sig-arg\">both</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Is <b><code>obj</code></b>ect an <code>int</code> or integer \n      <code>float</code> value?</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#isint0\" class=\"summary-sig-name\">isint0</a>(<span class=\"summary-sig-arg\">obj</span>,\n        <span class=\"summary-sig-arg\">both</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Check for <a href=\"pygeodesy.constants-module.html#INT0\" \n      class=\"link\">INT0</a> or <code>int(0)</code> value.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#isiterable\" class=\"summary-sig-name\">isiterable</a>(<span class=\"summary-sig-arg\">obj</span>,\n        <span class=\"summary-sig-arg\">strict</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Is <b><code>obj</code></b>ect <code>iterable</code>?</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#isiterablen\" class=\"summary-sig-name\">isiterablen</a>(<span class=\"summary-sig-arg\">obj</span>,\n        <span class=\"summary-sig-arg\">strict</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Is <b><code>obj</code></b>ect <code>iterable</code> and has \n      <code>len</code>gth?</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#isiterabletype\" class=\"summary-sig-name\">isiterabletype</a>(<span class=\"summary-sig-arg\">obj</span>,\n        <span class=\"summary-sig-arg\">method</span>=<span class=\"summary-sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">__iter__</code><code class=\"variable-quote\">'</code></span>)</span><br />\n      Is <b><code>obj</code></b>ect an instance of an <code>iterable</code>\n      class or type?</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"iskeyword\"></a><span class=\"summary-sig-name\">iskeyword</span>(<span class=\"summary-sig-arg\">x</span>,\n        <span class=\"summary-sig-arg\">y</span>)</span><br />\n      y in x.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#islistuple\" class=\"summary-sig-name\">islistuple</a>(<span class=\"summary-sig-arg\">obj</span>,\n        <span class=\"summary-sig-arg\">minum</span>=<span class=\"summary-sig-default\">0</span>)</span><br />\n      Is <b><code>obj</code></b>ect a <code>list</code> or \n      <code>tuple</code> with non-zero length?</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">bool</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"isnan\"></a><span class=\"summary-sig-name\">isnan</span>(<span class=\"summary-sig-arg\">x</span>)</span><br />\n      Check if float x is not a number (NaN).</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#isnear0\" class=\"summary-sig-name\">isnear0</a>(<span class=\"summary-sig-arg\">x</span>,\n        <span class=\"summary-sig-arg\">eps0</span>=<span class=\"summary-sig-default\">4.930380657631324e-32</span>)</span><br />\n      Is <b><code>x</code></b> near <i>zero</i> within a tolerance?</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#isnear1\" class=\"summary-sig-name\">isnear1</a>(<span class=\"summary-sig-arg\">x</span>,\n        <span class=\"summary-sig-arg\">eps1</span>=<span class=\"summary-sig-default\">4.930380657631324e-32</span>)</span><br />\n      Is <b><code>x</code></b> near <i>one</i> within a tolerance?</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#isnear90\" class=\"summary-sig-name\">isnear90</a>(<span class=\"summary-sig-arg\">x</span>,\n        <span class=\"summary-sig-arg\">eps90</span>=<span class=\"summary-sig-default\">4.930380657631324e-32</span>)</span><br />\n      Is <b><code>x</code></b> near <i>90</i> within a tolerance?</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#isneg\" class=\"summary-sig-name\">isneg</a>(<span class=\"summary-sig-arg\">x</span>)</span><br />\n      Check for negative <code>x</code>, including <a \n      href=\"pygeodesy.constants-module.html#NEG0\" class=\"link\">NEG0</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#isneg0\" class=\"summary-sig-name\">isneg0</a>(<span class=\"summary-sig-arg\">x</span>)</span><br />\n      Check for <a href=\"pygeodesy.constants-module.html#NEG0\" \n      class=\"link\">NEG0</a>, negative <code>0.0</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#isninf\" class=\"summary-sig-name\">isninf</a>(<span class=\"summary-sig-arg\">x</span>)</span><br />\n      Check for <a href=\"pygeodesy.constants-module.html#NINF\" \n      class=\"link\">NINF</a>, negative <code>INF</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#isnon0\" class=\"summary-sig-name\">isnon0</a>(<span class=\"summary-sig-arg\">x</span>,\n        <span class=\"summary-sig-arg\">eps0</span>=<span class=\"summary-sig-default\">4.930380657631324e-32</span>)</span><br />\n      Is <b><code>x</code></b> non-zero with a tolerance?</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#isnormal\" class=\"summary-sig-name\">isnormal</a>(<span class=\"summary-sig-arg\">lat</span>,\n        <span class=\"summary-sig-arg\">lon</span>,\n        <span class=\"summary-sig-arg\">eps</span>=<span class=\"summary-sig-default\">0</span>)</span><br />\n      Check whether <b><code>lat</code></b> <i>and</i> \n      <b><code>lon</code></b> are within their respective <i>normal</i> \n      range in <code>degrees</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#isnormal_\" class=\"summary-sig-name\">isnormal_</a>(<span class=\"summary-sig-arg\">phi</span>,\n        <span class=\"summary-sig-arg\">lam</span>,\n        <span class=\"summary-sig-arg\">eps</span>=<span class=\"summary-sig-default\">0</span>)</span><br />\n      Check whether <b><code>phi</code></b> <i>and</i> \n      <b><code>lam</code></b> are within their respective <i>normal</i> \n      range in <code>radians</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#isodd\" class=\"summary-sig-name\">isodd</a>(<span class=\"summary-sig-arg\">x</span>)</span><br />\n      Is <b><code>x</code></b> odd?</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#ispolar\" class=\"summary-sig-name\">ispolar</a>(<span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Check whether a polygon encloses a pole.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#isscalar\" class=\"summary-sig-name\">isscalar</a>(<span class=\"summary-sig-arg\">obj</span>,\n        <span class=\"summary-sig-arg\">both</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Is <b><code>obj</code></b>ect an <code>int</code> or integer \n      <code>float</code> value?</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#issequence\" class=\"summary-sig-name\">issequence</a>(<span class=\"summary-sig-arg\">obj</span>,\n        <span class=\"summary-sig-arg\">*excls</span>)</span><br />\n      Is <b><code>obj</code></b>ect some sequence type?</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#isstr\" class=\"summary-sig-name\">isstr</a>(<span class=\"summary-sig-arg\">obj</span>)</span><br />\n      Is <b><code>obj</code></b>ect some string type?</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#issubclassof\" class=\"summary-sig-name\">issubclassof</a>(<span class=\"summary-sig-arg\">Sub</span>,\n        <span class=\"summary-sig-arg\">*Supers</span>)</span><br />\n      Is <b><code>Sub</code></b> a class and sub-class of some other \n      class(es)?</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#istuplist\" class=\"summary-sig-name\">istuplist</a>(<span class=\"summary-sig-arg\">obj</span>,\n        <span class=\"summary-sig-arg\">minum</span>=<span class=\"summary-sig-default\">0</span>)</span><br />\n      DEPRECATED on 2023.03.31, use function <a \n      href=\"pygeodesy.basics-module.html#islistuple\" \n      class=\"link\">pygeodesy.islistuple</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#itemsorted\" class=\"summary-sig-name\">itemsorted</a>(<span class=\"summary-sig-arg\">adict</span>,\n        <span class=\"summary-sig-arg\">*items_args</span>,\n        <span class=\"summary-sig-arg\">**asorted_reverse</span>)</span><br />\n      Return the items of <code><b>adict</b></code> sorted \n      <i>alphabetically, case-insensitively</i> and in <i>ascending</i> \n      order.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#iterNumpy2\" class=\"summary-sig-name\">iterNumpy2</a>(<span class=\"summary-sig-arg\">obj</span>)</span><br />\n      Iterate over Numpy2 wrappers or other sequences exceeding the \n      threshold.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#iterNumpy2over\" class=\"summary-sig-name\">iterNumpy2over</a>(<span class=\"summary-sig-arg\">n</span>=<span class=\"summary-sig-default\">None</span>)</span><br />\n      Get or set the <a href=\"pygeodesy.iters-module.html#iterNumpy2\" \n      class=\"link\">iterNumpy2</a> threshold.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#joined\" class=\"summary-sig-name\">joined</a>(<span class=\"summary-sig-arg\">*words</span>,\n        <span class=\"summary-sig-arg\">**sep</span>)</span><br />\n      DEPRECATED, use <code>NN(...)</code>, <code>NN.join_</code> or \n      <code><b>sep</b>.join</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#joined_\" class=\"summary-sig-name\">joined_</a>(<span class=\"summary-sig-arg\">*words</span>,\n        <span class=\"summary-sig-arg\">**sep</span>)</span><br />\n      DEPRECATED, use <code>_SPACE_(...)</code>, <code>_SPACE_.join_</code>\n      or <code><b>sep</b>.join</code>, sep=&quot; &quot;.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#km2m\" class=\"summary-sig-name\">km2m</a>(<span class=\"summary-sig-arg\">km</span>)</span><br />\n      Convert a length in <i>kilo meter</i> to meter (<code>m</code>).</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#latDMS\" class=\"summary-sig-name\">latDMS</a>(<span class=\"summary-sig-arg\">deg</span>,\n        <span class=\"summary-sig-arg\">form</span>=<span class=\"summary-sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">dms</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"summary-sig-arg\">prec</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">sep</span>=<span class=\"summary-sig-default\">''</span>,\n        <span class=\"summary-sig-arg\">**s_D_M_S</span>)</span><br />\n      Convert latitude to a string, optionally suffixed with N or S.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#latlon2n_xyz\" class=\"summary-sig-name\">latlon2n_xyz</a>(<span class=\"summary-sig-arg\">lat_ll</span>,\n        <span class=\"summary-sig-arg\">lon</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Convert lat-, longitude to <code>n-vector</code> (<i>normal</i> to \n      the earth's surface) X, Y and Z components.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#latlonDMS\" class=\"summary-sig-name\">latlonDMS</a>(<span class=\"summary-sig-arg\">lls</span>,\n        <span class=\"summary-sig-arg\">**m_form_prec_sep_s_D_M_S</span>)</span><br />\n      Convert one or more <code>LatLon</code> instances to strings.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#latlonDMS_\" class=\"summary-sig-name\">latlonDMS_</a>(<span class=\"summary-sig-arg\">*lls</span>,\n        <span class=\"summary-sig-arg\">**m_form_prec_sep_s_D_M_S</span>)</span><br />\n      Convert one or more <code>LatLon</code> instances to strings.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#len2\" class=\"summary-sig-name\">len2</a>(<span class=\"summary-sig-arg\">items</span>)</span><br />\n      Make built-in function <code class=\"link\">len</code> work for \n      generators, iterators, etc.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#limiterrors\" class=\"summary-sig-name\">limiterrors</a>(<span class=\"summary-sig-arg\">raiser</span>=<span class=\"summary-sig-default\">None</span>)</span><br />\n      Get/set the throwing of <a \n      href=\"pygeodesy.errors.LimitError-class.html\" \n      class=\"link\">LimitError</a>s.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#lonDMS\" class=\"summary-sig-name\">lonDMS</a>(<span class=\"summary-sig-arg\">deg</span>,\n        <span class=\"summary-sig-arg\">form</span>=<span class=\"summary-sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">dms</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"summary-sig-arg\">prec</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">sep</span>=<span class=\"summary-sig-default\">''</span>,\n        <span class=\"summary-sig-arg\">**s_D_M_S</span>)</span><br />\n      Convert longitude to a string, optionally suffixed with E or W.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#lrstrip\" class=\"summary-sig-name\">lrstrip</a>(<span class=\"summary-sig-arg\">txt</span>,\n        <span class=\"summary-sig-arg\">lrpairs</span>=<span class=\"summary-sig-default\"><code class=\"variable-group\">{</code><code class=\"variable-quote\">'</code><code class=\"variable-string\">(</code><code class=\"variable-quote\">'</code><code class=\"variable-op\">: </code><code class=\"variable-quote\">'</code><code class=\"variable-string\">)</code><code class=\"variable-quote\">'</code><code class=\"variable-op\">, </code><code class=\"variable-quote\">'</code><code class=\"variable-string\">&lt;</code><code class=\"variable-quote\">'</code><code class=\"variable-op\">: </code><code class=\"variable-quote\">'</code><code class=\"variable-string\">&gt;</code><code class=\"variable-quote\">'</code><code class=\"variable-op\">, </code><code class=\"variable-quote\">'</code><code class=\"variable-string\">[</code><code class=\"variable-quote\">'</code><code class=\"variable-op\">: </code><code class=\"variable-quote\">'</code><code class=\"variable-string\">]</code><code class=\"variable-quote\">'</code><code class=\"variable-op\">, </code><code class=\"variable-quote\">'</code><code class=\"variable-string\">{</code><code class=\"variable-quote\">'</code><code class=\"variable-op\">: </code><code class=\"variable-quote\">'</code><code class=\"variable-string\">}</code><code class=\"variable-quote\">'</code><code class=\"variable-group\">}</code></span>)</span><br />\n      Left- <i>and</i> right-strip parentheses, brackets, etc.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#luneOf\" class=\"summary-sig-name\">luneOf</a>(<span class=\"summary-sig-arg\">lon1</span>,\n        <span class=\"summary-sig-arg\">lon2</span>,\n        <span class=\"summary-sig-arg\">closed</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">LatLon</span>=<span class=\"summary-sig-default\">&lt;class 'pygeodesy.points.LatLon_'&gt;</span>,\n        <span class=\"summary-sig-arg\">**LatLon_kwds</span>)</span><br />\n      Generate an ellipsoidal or spherical <a \n      href=\"https://WikiPedia.org/wiki/Spherical_lune\" \n      target=\"_top\">lune</a>-shaped path or polygon.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#m2NM\" class=\"summary-sig-name\">m2NM</a>(<span class=\"summary-sig-arg\">meter</span>)</span><br />\n      Convert a length in meter to nautical miles (<code>NM</code>).</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#m2SM\" class=\"summary-sig-name\">m2SM</a>(<span class=\"summary-sig-arg\">meter</span>)</span><br />\n      Convert a length in meter to statute miles (SM).</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#m2acre\" class=\"summary-sig-name\">m2acre</a>(<span class=\"summary-sig-arg\">meter2</span>)</span><br />\n      Convert an area in <i>square</i> meter to <i>acres</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#m2chain\" class=\"summary-sig-name\">m2chain</a>(<span class=\"summary-sig-arg\">meter</span>)</span><br />\n      Convert a length in meter to <i>UK</i> chains.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#m2degrees\" class=\"summary-sig-name\">m2degrees</a>(<span class=\"summary-sig-arg\">distance</span>,\n        <span class=\"summary-sig-arg\">earth</span>=<span class=\"summary-sig-default\">6371008.771415</span>,\n        <span class=\"summary-sig-arg\">lat</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">**radius</span>)</span><br />\n      Convert a distance to an arc in degrees along the equator or along a \n      parallel at (geodetic) latitude.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#m2fathom\" class=\"summary-sig-name\">m2fathom</a>(<span class=\"summary-sig-arg\">meter</span>)</span><br />\n      Convert a length in meter to <i>Imperial</i> fathoms.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#m2ft\" class=\"summary-sig-name\">m2ft</a>(<span class=\"summary-sig-arg\">meter</span>,\n        <span class=\"summary-sig-arg\">usurvey</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">pied</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">india</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">fuss</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Convert a length in meter to <i>International</i>, <i>US Survey</i>, \n      <i>French</i>, <i>Indian</i> or <i>German</i> feet (<code>ft</code>).</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#m2furlong\" class=\"summary-sig-name\">m2furlong</a>(<span class=\"summary-sig-arg\">meter</span>)</span><br />\n      Convert a length in meter to furlongs.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#m2ha\" class=\"summary-sig-name\">m2ha</a>(<span class=\"summary-sig-arg\">meter2</span>)</span><br />\n      Convert an area in <i>square</i> meter to <i>hectares</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#m2km\" class=\"summary-sig-name\">m2km</a>(<span class=\"summary-sig-arg\">meter</span>)</span><br />\n      Convert a length in meter to kilo meter (<code>Km</code>).</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#m2radians\" class=\"summary-sig-name\">m2radians</a>(<span class=\"summary-sig-arg\">distance</span>,\n        <span class=\"summary-sig-arg\">earth</span>=<span class=\"summary-sig-default\">6371008.771415</span>,\n        <span class=\"summary-sig-arg\">lat</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">**radius</span>)</span><br />\n      Convert a distance to an arc in radians along the equator or along a \n      parallel at (geodetic) latitude.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#m2toise\" class=\"summary-sig-name\">m2toise</a>(<span class=\"summary-sig-arg\">meter</span>)</span><br />\n      Convert a length in meter to French <a \n      href=\"https://WikiPedia.org/wiki/Toise\" target=\"_top\">toises</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#m2yard\" class=\"summary-sig-name\">m2yard</a>(<span class=\"summary-sig-arg\">meter</span>,\n        <span class=\"summary-sig-arg\">imperial</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Convert a length in meter to <i>International</i> or <a \n      href=\"https://WikiPedia.org/wiki/Imperial_units\" \n      target=\"_top\">Imperial Standard</a> yards.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#machine\" class=\"summary-sig-name\">machine</a>()</span><br />\n      Return standard <code>platform.machine</code>, but distinguishing \n      Intel <i>native</i> from Intel <i>emulation</i> on Apple Silicon (on \n      macOS only).</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#map1\" class=\"summary-sig-name\">map1</a>(<span class=\"summary-sig-arg\">fun1</span>,\n        <span class=\"summary-sig-arg\">*xs</span>)</span><br />\n      Call a single-argument function to each <b><code>xs</code></b> and \n      return a <code>tuple</code> of results.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#map2\" class=\"summary-sig-name\">map2</a>(<span class=\"summary-sig-arg\">fun</span>,\n        <span class=\"summary-sig-arg\">*xs</span>,\n        <span class=\"summary-sig-arg\">**strict</span>)</span><br />\n      Like Python's <b><code>map</code></b> but returning a \n      <code>tuple</code> of results.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"max2\"></a><span class=\"summary-sig-name\">max2</span>(<span class=\"summary-sig-arg\">*xs</span>)</span><br />\n      Return 2-tuple <code>(max(xs), xs.index(max(xs)))</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#meeus2\" class=\"summary-sig-name\">meeus2</a>(<span class=\"summary-sig-arg\">point1</span>,\n        <span class=\"summary-sig-arg\">point2</span>,\n        <span class=\"summary-sig-arg\">point3</span>,\n        <span class=\"summary-sig-arg\">circum</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">useZ</span>=<span class=\"summary-sig-default\">True</span>)</span><br />\n      Return the radius and <i>Meeus</i>' Type of the smallest circle \n      <i>through</i> or <i>containing</i> three (2- or 3-D) points.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"min2\"></a><span class=\"summary-sig-name\">min2</span>(<span class=\"summary-sig-arg\">*xs</span>)</span><br />\n      Return 2-tuple <code>(min(xs), xs.index(min(xs)))</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#modulename\" class=\"summary-sig-name\">modulename</a>(<span class=\"summary-sig-arg\">clas</span>,\n        <span class=\"summary-sig-arg\">prefixed</span>=<span class=\"summary-sig-default\">None</span>)</span><br />\n      Return the class name optionally prefixed with the module name.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#n2e2\" class=\"summary-sig-name\">n2e2</a>(<span class=\"summary-sig-arg\">n</span>)</span><br />\n      Return <code>e2</code>, the <i>1st eccentricity squared</i> for a \n      given <i>3rd flattening</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#n2f\" class=\"summary-sig-name\">n2f</a>(<span class=\"summary-sig-arg\">n</span>)</span><br />\n      Return <code>f</code>, the <i>flattening</i> for a given <i>3rd \n      flattening</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#n2f_\" class=\"summary-sig-name\">n2f_</a>(<span class=\"summary-sig-arg\">n</span>)</span><br />\n      Return <code>f_</code>, the <i>inverse flattening</i> for a given \n      <i>3rd flattening</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#n_xyz2latlon\" class=\"summary-sig-name\">n_xyz2latlon</a>(<span class=\"summary-sig-arg\">x_xyz</span>,\n        <span class=\"summary-sig-arg\">y</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">z</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Convert <code>n-vector</code> to (geodetic) lat- and longitude in \n      <code>degrees</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#n_xyz2philam\" class=\"summary-sig-name\">n_xyz2philam</a>(<span class=\"summary-sig-arg\">x_xyz</span>,\n        <span class=\"summary-sig-arg\">y</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">z</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Convert <code>n-vector</code> to (geodetic) lat- and longitude in \n      <code>radians</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#nameof\" class=\"summary-sig-name\">nameof</a>(<span class=\"summary-sig-arg\">inst</span>)</span><br />\n      Get the name of an instance.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#nearestOn\" class=\"summary-sig-name\">nearestOn</a>(<span class=\"summary-sig-arg\">point</span>,\n        <span class=\"summary-sig-arg\">point1</span>,\n        <span class=\"summary-sig-arg\">point2</span>,\n        <span class=\"summary-sig-arg\">within</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">useZ</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">Vector</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**Vector_kwds</span>)</span><br />\n      Locate the point between two points closest to a reference (2- or \n      3-D).</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#nearestOn3\" class=\"summary-sig-name\">nearestOn3</a>(<span class=\"summary-sig-arg\">point</span>,\n        <span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">closed</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">**options</span>)</span><br />\n      DEPRECATED, use function <a \n      href=\"pygeodesy.points-module.html#nearestOn5\" \n      class=\"link\">pygeodesy.nearestOn5</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#nearestOn4\" class=\"summary-sig-name\">nearestOn4</a>(<span class=\"summary-sig-arg\">point</span>,\n        <span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">closed</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">**options</span>)</span><br />\n      DEPRECATED, use function <a \n      href=\"pygeodesy.points-module.html#nearestOn5\" \n      class=\"link\">pygeodesy.nearestOn5</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#nearestOn5\" class=\"summary-sig-name\">nearestOn5</a>(<span class=\"summary-sig-arg\">point</span>,\n        <span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">closed</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">adjust</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">limit</span>=<span class=\"summary-sig-default\">9</span>,\n        <span class=\"summary-sig-arg\">**LatLon_and_kwds</span>)</span><br />\n      Locate the point on a path or polygon closest to a reference point.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#nearestOn6\" class=\"summary-sig-name\">nearestOn6</a>(<span class=\"summary-sig-arg\">point</span>,\n        <span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">closed</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">useZ</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">**Vector_and_kwds</span>)</span><br />\n      Locate the point on a path or polygon closest to a reference point.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#neg\" class=\"summary-sig-name\">neg</a>(<span class=\"summary-sig-arg\">x</span>,\n        <span class=\"summary-sig-arg\">neg0</span>=<span class=\"summary-sig-default\">None</span>)</span><br />\n      Negate <code>x</code> and optionally, negate <code>0.0</code> and \n      <code>-0.0</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#neg_\" class=\"summary-sig-name\">neg_</a>(<span class=\"summary-sig-arg\">*xs</span>)</span><br />\n      Negate all <code>xs</code> with <a \n      href=\"pygeodesy.basics-module.html#neg\" class=\"link\">neg</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#nonfiniterrors\" class=\"summary-sig-name\">nonfiniterrors</a>(<span class=\"summary-sig-arg\">raiser</span>=<span class=\"summary-sig-default\">None</span>)</span><br />\n      Throw <code>OverflowError</code> and <code>ValueError</code> \n      exceptions for or handle <i>non-finite</i> <code>float</code>s as \n      <code>inf</code>, <code>INF</code>, <code>NINF</code>, \n      <code>nan</code> and <code>NAN</code> in summations and \n      multiplications.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#norm2\" class=\"summary-sig-name\">norm2</a>(<span class=\"summary-sig-arg\">x</span>,\n        <span class=\"summary-sig-arg\">y</span>,\n        <span class=\"summary-sig-arg\">*xy0</span>)</span><br />\n      Normalize a 2-dimensional vector.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#normDMS\" class=\"summary-sig-name\">normDMS</a>(<span class=\"summary-sig-arg\">strDMS</span>,\n        <span class=\"summary-sig-arg\">norm</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**s_D_M_S</span>)</span><br />\n      Normalize all degrees, minutes and seconds (DMS) <i>symbol</i> \n      suffixes in a string to the default symbols <a \n      href=\"pygeodesy.dms-module.html#S_DEG\" class=\"link\">S_DEG</a>, <a \n      href=\"pygeodesy.dms-module.html#S_MIN\" class=\"link\">S_MIN</a>, <a \n      href=\"pygeodesy.dms-module.html#S_SEC\" class=\"link\">S_SEC</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#norm_\" class=\"summary-sig-name\">norm_</a>(<span class=\"summary-sig-arg\">*xs</span>)</span><br />\n      Normalize the components of an n-dimensional vector.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#normal\" class=\"summary-sig-name\">normal</a>(<span class=\"summary-sig-arg\">lat</span>,\n        <span class=\"summary-sig-arg\">lon</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Normalize a lat- <i>and</i> longitude pair in <code>degrees</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#normal_\" class=\"summary-sig-name\">normal_</a>(<span class=\"summary-sig-arg\">phi</span>,\n        <span class=\"summary-sig-arg\">lam</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Normalize a lat- <i>and</i> longitude pair in <code>radians</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#notImplemented\" class=\"summary-sig-name\">notImplemented</a>(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">*args</span>,\n        <span class=\"summary-sig-arg\">**kwds</span>)</span><br />\n      Raise a <code>NotImplementedError</code> for a missing instance \n      method or property or for a missing caller feature.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#notOverloaded\" class=\"summary-sig-name\">notOverloaded</a>(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">*args</span>,\n        <span class=\"summary-sig-arg\">**kwds</span>)</span><br />\n      Raise an <code>AssertionError</code> for a method or property not \n      overloaded.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#opposing\" class=\"summary-sig-name\">opposing</a>(<span class=\"summary-sig-arg\">bearing1</span>,\n        <span class=\"summary-sig-arg\">bearing2</span>,\n        <span class=\"summary-sig-arg\">margin</span>=<span class=\"summary-sig-default\">90.0</span>)</span><br />\n      Compare the direction of two bearings given in <code>degrees</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#opposing_\" class=\"summary-sig-name\">opposing_</a>(<span class=\"summary-sig-arg\">radians1</span>,\n        <span class=\"summary-sig-arg\">radians2</span>,\n        <span class=\"summary-sig-arg\">margin</span>=<span class=\"summary-sig-default\">1.5707963267948966</span>)</span><br />\n      Compare the direction of two bearings given in <code>radians</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#pairs\" class=\"summary-sig-name\">pairs</a>(<span class=\"summary-sig-arg\">items</span>,\n        <span class=\"summary-sig-arg\">prec</span>=<span class=\"summary-sig-default\">6</span>,\n        <span class=\"summary-sig-arg\">fmt</span>=<span class=\"summary-sig-default\">'F'</span>,\n        <span class=\"summary-sig-arg\">ints</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">sep</span>=<span class=\"summary-sig-default\">'='</span>)</span><br />\n      Convert items to <i>name=value</i> strings, with <code>float</code>s \n      handled like <a href=\"pygeodesy.streprs-module.html#fstr\" \n      class=\"link\">fstr</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#parse3d\" class=\"summary-sig-name\">parse3d</a>(<span class=\"summary-sig-arg\">str3d</span>,\n        <span class=\"summary-sig-arg\">sep</span>=<span class=\"summary-sig-default\">','</span>,\n        <span class=\"summary-sig-arg\">Vector</span>=<span class=\"summary-sig-default\">&lt;class 'pygeodesy.vector3d.Vector3d'&gt;</span>,\n        <span class=\"summary-sig-arg\">**Vector_kwds</span>)</span><br />\n      Parse an <code>&quot;x, y, z&quot;</code> string.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#parse3llh\" class=\"summary-sig-name\">parse3llh</a>(<span class=\"summary-sig-arg\">strllh</span>,\n        <span class=\"summary-sig-arg\">height</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">sep</span>=<span class=\"summary-sig-default\">','</span>,\n        <span class=\"summary-sig-arg\">clipLat</span>=<span class=\"summary-sig-default\">90</span>,\n        <span class=\"summary-sig-arg\">clipLon</span>=<span class=\"summary-sig-default\">180</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">**s_D_M_S</span>)</span><br />\n      Parse a string <code>&quot;lat, lon [, h]&quot;</code> representing \n      lat-, longitude in <code>degrees</code> and optional height in \n      <code>meter</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#parseDDDMMSS\" class=\"summary-sig-name\">parseDDDMMSS</a>(<span class=\"summary-sig-arg\">strDDDMMSS</span>,\n        <span class=\"summary-sig-arg\">suffix</span>=<span class=\"summary-sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">NSEW</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"summary-sig-arg\">sep</span>=<span class=\"summary-sig-default\">''</span>,\n        <span class=\"summary-sig-arg\">clip</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">sexagecimal</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Parse a lat- or longitude represention forms as [D]DDMMSS in degrees.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#parseDMS\" class=\"summary-sig-name\">parseDMS</a>(<span class=\"summary-sig-arg\">strDMS</span>,\n        <span class=\"summary-sig-arg\">suffix</span>=<span class=\"summary-sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">NSEW</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"summary-sig-arg\">sep</span>=<span class=\"summary-sig-default\">''</span>,\n        <span class=\"summary-sig-arg\">clip</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">**s_D_M_S</span>)</span><br />\n      Parse a lat- or longitude representation in <code>degrees</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#parseDMS2\" class=\"summary-sig-name\">parseDMS2</a>(<span class=\"summary-sig-arg\">strLat</span>,\n        <span class=\"summary-sig-arg\">strLon</span>,\n        <span class=\"summary-sig-arg\">sep</span>=<span class=\"summary-sig-default\">''</span>,\n        <span class=\"summary-sig-arg\">clipLat</span>=<span class=\"summary-sig-default\">90</span>,\n        <span class=\"summary-sig-arg\">clipLon</span>=<span class=\"summary-sig-default\">180</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">**s_D_M_S</span>)</span><br />\n      Parse a lat- and a longitude representions <code>&quot;lat, \n      lon&quot;</code> in <code>degrees</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#parseETM5\" class=\"summary-sig-name\">parseETM5</a>(<span class=\"summary-sig-arg\">strUTM</span>,\n        <span class=\"summary-sig-arg\">datum</span>=<span class=\"summary-sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"summary-sig-arg\">Etm</span>=<span class=\"summary-sig-default\">&lt;class 'pygeodesy.etm.Etm'&gt;</span>,\n        <span class=\"summary-sig-arg\">falsed</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Parse a string representing a UTM coordinate, consisting of \n      <code>&quot;zone[band] hemisphere easting northing&quot;</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#parseMGRS\" class=\"summary-sig-name\">parseMGRS</a>(<span class=\"summary-sig-arg\">strMGRS</span>,\n        <span class=\"summary-sig-arg\">datum</span>=<span class=\"summary-sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"summary-sig-arg\">Mgrs</span>=<span class=\"summary-sig-default\">&lt;class 'pygeodesy.mgrs.Mgrs'&gt;</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Parse a string representing a MGRS grid reference, consisting of \n      <code>&quot;[zone]Band, EN, easting, northing&quot;</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#parseOSGR\" class=\"summary-sig-name\">parseOSGR</a>(<span class=\"summary-sig-arg\">strOSGR</span>,\n        <span class=\"summary-sig-arg\">Osgr</span>=<span class=\"summary-sig-default\">&lt;class 'pygeodesy.osgr.Osgr'&gt;</span>,\n        <span class=\"summary-sig-arg\">**name_Osgr_kwds</span>)</span><br />\n      Parse a string representing an OS Grid Reference, consisting of \n      <code>&quot;[GD] easting northing&quot;</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#parseRad\" class=\"summary-sig-name\">parseRad</a>(<span class=\"summary-sig-arg\">strRad</span>,\n        <span class=\"summary-sig-arg\">suffix</span>=<span class=\"summary-sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">NSEW</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"summary-sig-arg\">clip</span>=<span class=\"summary-sig-default\">0</span>)</span><br />\n      Parse a string representing angle in <code>radians</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#parseUPS5\" class=\"summary-sig-name\">parseUPS5</a>(<span class=\"summary-sig-arg\">strUPS</span>,\n        <span class=\"summary-sig-arg\">datum</span>=<span class=\"summary-sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"summary-sig-arg\">Ups</span>=<span class=\"summary-sig-default\">&lt;class 'pygeodesy.ups.Ups'&gt;</span>,\n        <span class=\"summary-sig-arg\">falsed</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Parse a string representing a UPS coordinate, consisting of \n      <code>&quot;[zone][band] pole easting northing&quot;</code> where \n      <b><code>zone</code></b> is pseudo zone \n      <code>&quot;00&quot;|&quot;0&quot;|&quot;&quot;</code> and \n      <code>band</code> is <code>'A'|'B'|'Y'|'Z'|''</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#parseUTM\" class=\"summary-sig-name\">parseUTM</a>(<span class=\"summary-sig-arg\">strUTM</span>,\n        <span class=\"summary-sig-arg\">datum</span>=<span class=\"summary-sig-default\">_UTM</span>,\n        <span class=\"summary-sig-arg\">Utm</span>=<span class=\"summary-sig-default\">_UTM</span>,\n        <span class=\"summary-sig-arg\">name</span>=<span class=\"summary-sig-default\">''</span>)</span><br />\n      DEPRECATED, use function <a \n      href=\"pygeodesy.utm-module.html#parseUTM5\" \n      class=\"link\">parseUTM5</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#parseUTM5\" class=\"summary-sig-name\">parseUTM5</a>(<span class=\"summary-sig-arg\">strUTM</span>,\n        <span class=\"summary-sig-arg\">datum</span>=<span class=\"summary-sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"summary-sig-arg\">Utm</span>=<span class=\"summary-sig-default\">&lt;class 'pygeodesy.utm.Utm'&gt;</span>,\n        <span class=\"summary-sig-arg\">falsed</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Parse a string representing a UTM coordinate, consisting of \n      <code>&quot;zone[band] hemisphere easting northing&quot;</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#parseUTMUPS5\" class=\"summary-sig-name\">parseUTMUPS5</a>(<span class=\"summary-sig-arg\">strUTMUPS</span>,\n        <span class=\"summary-sig-arg\">datum</span>=<span class=\"summary-sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"summary-sig-arg\">Utm</span>=<span class=\"summary-sig-default\">&lt;class 'pygeodesy.utm.Utm'&gt;</span>,\n        <span class=\"summary-sig-arg\">Ups</span>=<span class=\"summary-sig-default\">&lt;class 'pygeodesy.ups.Ups'&gt;</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Parse a string representing a UTM or UPS coordinate, consisting of \n      <code>&quot;zone[band] hemisphere/pole easting northing&quot;</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#parseWM\" class=\"summary-sig-name\">parseWM</a>(<span class=\"summary-sig-arg\">strWM</span>,\n        <span class=\"summary-sig-arg\">radius</span>=<span class=\"summary-sig-default\">6378137.0</span>,\n        <span class=\"summary-sig-arg\">Wm</span>=<span class=\"summary-sig-default\">&lt;class 'pygeodesy.webmercator.Wm'&gt;</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Parse a string <code>&quot;e n [r]&quot;</code> representing a WM \n      coordinate, consisting of easting, northing and an optional radius.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#perimeterOf\" class=\"summary-sig-name\">perimeterOf</a>(<span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">closed</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">adjust</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">radius</span>=<span class=\"summary-sig-default\">6371008.771415</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">True</span>)</span><br />\n      <i>Approximate</i> the perimeter of a path, polygon.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#perimeterof\" class=\"summary-sig-name\">perimeterof</a>(<span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">closed</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">adjust</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">radius</span>=<span class=\"summary-sig-default\">6371008.771415</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">True</span>)</span><br />\n      DEPRECATED, use function <a \n      href=\"pygeodesy.points-module.html#perimeterOf\" \n      class=\"link\">pygeodesy.perimeterOf</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#philam2n_xyz\" class=\"summary-sig-name\">philam2n_xyz</a>(<span class=\"summary-sig-arg\">phi_ll</span>,\n        <span class=\"summary-sig-arg\">lam</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Convert lat-, longitude to <code>n-vector</code> (<i>normal</i> to \n      the earth's surface) X, Y and Z components.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#pierlot\" class=\"summary-sig-name\">pierlot</a>(<span class=\"summary-sig-arg\">point1</span>,\n        <span class=\"summary-sig-arg\">point2</span>,\n        <span class=\"summary-sig-arg\">point3</span>,\n        <span class=\"summary-sig-arg\">alpha12</span>,\n        <span class=\"summary-sig-arg\">alpha23</span>,\n        <span class=\"summary-sig-arg\">useZ</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">eps</span>=<span class=\"summary-sig-default\">2.220446049250313e-16</span>,\n        <span class=\"summary-sig-arg\">**Clas_and_kwds</span>)</span><br />\n      3-Point resection using <a \n      href=\"http://www.Telecom.ULg.ac.BE/publi/publications/pierlot/Pierlot2014ANewThree\"\n      target=\"_top\">Pierlot</a>'s method <code>ToTal</code> with \n      <i>approximate</i> limits for the (pseudo-)singularities.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#pierlotx\" class=\"summary-sig-name\">pierlotx</a>(<span class=\"summary-sig-arg\">point1</span>,\n        <span class=\"summary-sig-arg\">point2</span>,\n        <span class=\"summary-sig-arg\">point3</span>,\n        <span class=\"summary-sig-arg\">alpha1</span>,\n        <span class=\"summary-sig-arg\">alpha2</span>,\n        <span class=\"summary-sig-arg\">alpha3</span>,\n        <span class=\"summary-sig-arg\">useZ</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">**Clas_and_kwds</span>)</span><br />\n      3-Point resection using <a \n      href=\"http://www.Telecom.ULg.ac.BE/publi/publications/pierlot/Pierlot2014ANewThree\"\n      target=\"_top\">Pierlot</a>'s method <code>ToTal</code> with \n      <i>exact</i> limits for the (pseudo-)singularities.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#points2\" class=\"summary-sig-name\">points2</a>(<span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">closed</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">base</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">Error</span>=<span class=\"summary-sig-default\">&lt;class 'pygeodesy.errors.PointsError'&gt;</span>)</span><br />\n      Check a path or polygon represented by points.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#polar2\" class=\"summary-sig-name\">polar2</a>(<span class=\"summary-sig-arg\">x</span>,\n        <span class=\"summary-sig-arg\">y</span>,\n        <span class=\"summary-sig-arg\">*xy0</span>)</span><br />\n      Return 2-tuple <code>(length, angle)</code> with <code>angle</code> \n      in radians <i class=\"math\">[0..+PI2)</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#polar2d\" class=\"summary-sig-name\">polar2d</a>(<span class=\"summary-sig-arg\">x</span>,\n        <span class=\"summary-sig-arg\">y</span>,\n        <span class=\"summary-sig-arg\">*xy0</span>)</span><br />\n      Return 2-tuple <code>(length, angle)</code> with <code>angle</code> \n      in degrees <i class=\"math\">[0..+360)</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#polygon\" class=\"summary-sig-name\">polygon</a>(<span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">closed</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">base</span>=<span class=\"summary-sig-default\">None</span>)</span><br />\n      DEPRECATED, use function <a \n      href=\"pygeodesy.iters-module.html#points2\" \n      class=\"link\">pygeodesy.points2</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#precision\" class=\"summary-sig-name\">precision</a>(<span class=\"summary-sig-arg\">res</span>)</span><br />\n      Determine the <a href=\"pygeodesy.wgrs.Georef-class.html\" \n      class=\"link\">Georef</a> precision to meet a required (geographic) \n      resolution.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#print_\" class=\"summary-sig-name\">print_</a>(<span class=\"summary-sig-arg\">*args</span>,\n        <span class=\"summary-sig-arg\">**nl_nt_prec_prefix__end_file_flush_sep__kwds</span>)</span><br />\n      Python 3+ <code>print</code>-like formatting and printing.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#printf\" class=\"summary-sig-name\">printf</a>(<span class=\"summary-sig-arg\">fmt</span>,\n        <span class=\"summary-sig-arg\">*args</span>,\n        <span class=\"summary-sig-arg\">**nl_nt_prec_prefix__end_file_flush_sep__kwds</span>)</span><br />\n      <code>Printf-style</code> and Python 3+ <code>print</code>-like \n      formatting and printing.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#property_doc_\" class=\"summary-sig-name\">property_doc_</a>(<span class=\"summary-sig-arg\">doc</span>)</span><br />\n      Decorator for a standard <code>property</code> with basic \n      documentation.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#quadOf\" class=\"summary-sig-name\">quadOf</a>(<span class=\"summary-sig-arg\">latS</span>,\n        <span class=\"summary-sig-arg\">lonW</span>,\n        <span class=\"summary-sig-arg\">latN</span>,\n        <span class=\"summary-sig-arg\">lonE</span>,\n        <span class=\"summary-sig-arg\">closed</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">LatLon</span>=<span class=\"summary-sig-default\">&lt;class 'pygeodesy.points.LatLon_'&gt;</span>,\n        <span class=\"summary-sig-arg\">**LatLon_kwds</span>)</span><br />\n      Generate a quadrilateral path or polygon from two points.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"radians\"></a><span class=\"summary-sig-name\">radians</span>(<span class=\"summary-sig-arg\">x</span>)</span><br />\n      Convert angle x from degrees to radians.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#radians2m\" class=\"summary-sig-name\">radians2m</a>(<span class=\"summary-sig-arg\">rad</span>,\n        <span class=\"summary-sig-arg\">earth</span>=<span class=\"summary-sig-default\">6371008.771415</span>,\n        <span class=\"summary-sig-arg\">lat</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">**radius</span>)</span><br />\n      Convert an arc in radians to a distance along the equator or along a \n      parallel at (geodetic) latitude.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#radiansPI\" class=\"summary-sig-name\">radiansPI</a>(<span class=\"summary-sig-arg\">deg</span>)</span><br />\n      Convert and wrap degrees to radians <i class=\"math\">[-PI..+PI]</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#radiansPI2\" class=\"summary-sig-name\">radiansPI2</a>(<span class=\"summary-sig-arg\">deg</span>)</span><br />\n      Convert and wrap degrees to radians <i class=\"math\">[0..+2PI)</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#radiansPI_2\" class=\"summary-sig-name\">radiansPI_2</a>(<span class=\"summary-sig-arg\">deg</span>)</span><br />\n      Convert and wrap degrees to radians <i \n      class=\"math\">[-3PI/2..+PI/2]</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#radical2\" class=\"summary-sig-name\">radical2</a>(<span class=\"summary-sig-arg\">distance</span>,\n        <span class=\"summary-sig-arg\">radius1</span>,\n        <span class=\"summary-sig-arg\">radius2</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Compute the <i>radical ratio</i> and <i>radical line</i> of two <a \n      href=\"https://MathWorld.Wolfram.com/Circle-CircleIntersection.html\" \n      target=\"_top\">intersecting circles</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#radii11\" class=\"summary-sig-name\">radii11</a>(<span class=\"summary-sig-arg\">point1</span>,\n        <span class=\"summary-sig-arg\">point2</span>,\n        <span class=\"summary-sig-arg\">point3</span>,\n        <span class=\"summary-sig-arg\">useZ</span>=<span class=\"summary-sig-default\">True</span>)</span><br />\n      Return the radii of the <code>In-</code>, <i>Soddy</i> and \n      <code>Tangent</code> circles of a (2- or 3-D) triangle.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#randomrangenerator\" class=\"summary-sig-name\">randomrangenerator</a>(<span class=\"summary-sig-arg\">seed</span>)</span><br />\n      Return a <code>seed</code>ed random range function generator.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#rangerrors\" class=\"summary-sig-name\">rangerrors</a>(<span class=\"summary-sig-arg\">raiser</span>=<span class=\"summary-sig-default\">None</span>)</span><br />\n      Get/set the throwing of <a \n      href=\"pygeodesy.errors.RangeError-class.html\" \n      class=\"link\">RangeError</a>s.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"remainder\"></a><span class=\"summary-sig-name\">remainder</span>(<span class=\"summary-sig-arg\">x</span>,\n        <span class=\"summary-sig-arg\">y</span>)</span><br />\n      Mimick Python 3.7+ <code>math.remainder</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#reprs\" class=\"summary-sig-name\">reprs</a>(<span class=\"summary-sig-arg\">objs</span>,\n        <span class=\"summary-sig-arg\">prec</span>=<span class=\"summary-sig-default\">6</span>,\n        <span class=\"summary-sig-arg\">fmt</span>=<span class=\"summary-sig-default\">'F'</span>,\n        <span class=\"summary-sig-arg\">ints</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Convert objects to <code>repr</code> strings, with \n      <code>float</code>s handled like <a \n      href=\"pygeodesy.streprs-module.html#fstr\" class=\"link\">fstr</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#rtp2xyz\" class=\"summary-sig-name\">rtp2xyz</a>(<span class=\"summary-sig-arg\">r_rtp</span>,\n        <span class=\"summary-sig-arg\">theta</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">phi</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">**name_Cartesian_and_kwds</span>)</span><br />\n      Convert <i>spherical, polar</i> <code>(r, theta, phi)</code> to \n      cartesian <code>(x, y, z)</code> coordinates.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#rtp2xyz_\" class=\"summary-sig-name\">rtp2xyz_</a>(<span class=\"summary-sig-arg\">r_rtp</span>,\n        <span class=\"summary-sig-arg\">theta</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">phi</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">**name_Cartesian_and_kwds</span>)</span><br />\n      Convert <i>spherical, polar</i> <code>(r, theta, phi)</code> to \n      cartesian <code>(x, y, z)</code> coordinates.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#scalar\" class=\"summary-sig-name\">scalar</a>(<span class=\"summary-sig-arg\">value</span>,\n        <span class=\"summary-sig-arg\">low</span>=<span class=\"summary-sig-default\">2.220446049250313e-16</span>,\n        <span class=\"summary-sig-arg\">high</span>=<span class=\"summary-sig-default\">1.0</span>,\n        <span class=\"summary-sig-arg\">name</span>=<span class=\"summary-sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">scalar</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"summary-sig-arg\">Error</span>=<span class=\"summary-sig-default\">&lt;type 'exceptions.ValueError'&gt;</span>)</span><br />\n      DEPRECATED, use class <a href=\"pygeodesy.units.Number_-class.html\" \n      class=\"link\">Number_</a> or <a \n      href=\"pygeodesy.units.Scalar_-class.html\" class=\"link\">Scalar_</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#signBit\" class=\"summary-sig-name\">signBit</a>(<span class=\"summary-sig-arg\">x</span>)</span><br />\n      Return <code>signbit(<b>x</b>)</code>, like C++, see also <a \n      href=\"pygeodesy.constants-module.html#isneg\" class=\"link\">isneg</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#signOf\" class=\"summary-sig-name\">signOf</a>(<span class=\"summary-sig-arg\">x</span>)</span><br />\n      Return sign of <code>x</code> as <code>int</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#simplify1\" class=\"summary-sig-name\">simplify1</a>(<span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">distance</span>=<span class=\"summary-sig-default\">0.001</span>,\n        <span class=\"summary-sig-arg\">radius</span>=<span class=\"summary-sig-default\">6371008.771415</span>,\n        <span class=\"summary-sig-arg\">indices</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">**options</span>)</span><br />\n      Basic simplification of a path of <code>LatLon</code> points by \n      eliminating any points closer together than the given <i>distance</i>\n      tolerance.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#simplify2\" class=\"summary-sig-name\">simplify2</a>(<span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">pipe</span>=<span class=\"summary-sig-default\">0.001</span>,\n        <span class=\"summary-sig-arg\">**radius_shortest_indices_options</span>)</span><br />\n      DEPRECATED, use function <a \n      href=\"pygeodesy.simplify-module.html#simplifyRW\" \n      class=\"link\">pygeodesy.simplifyRW</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#simplifyRDP\" class=\"summary-sig-name\">simplifyRDP</a>(<span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">distance</span>=<span class=\"summary-sig-default\">0.001</span>,\n        <span class=\"summary-sig-arg\">radius</span>=<span class=\"summary-sig-default\">6371008.771415</span>,\n        <span class=\"summary-sig-arg\">shortest</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">indices</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">modified</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">**options</span>)</span><br />\n      <i>Ramer-Douglas-Peucker</i> (RDP) simplification of a path of \n      <code>LatLon</code> points by eliminating any points too close \n      together or closer to an edge than the given <i>distance</i> \n      tolerance.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#simplifyRDPm\" class=\"summary-sig-name\">simplifyRDPm</a>(<span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">distance</span>=<span class=\"summary-sig-default\">0.001</span>,\n        <span class=\"summary-sig-arg\">**radius_shortest_indices_options</span>)</span><br />\n      DEPRECATED on 2024.11.28, use function <a \n      href=\"pygeodesy.simplify-module.html#simplifyRDP\" \n      class=\"link\">pygeodesy.simplifyRDP</a><code>(points, modified=True, \n      ...)</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#simplifyRW\" class=\"summary-sig-name\">simplifyRW</a>(<span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">pipe</span>=<span class=\"summary-sig-default\">0.001</span>,\n        <span class=\"summary-sig-arg\">radius</span>=<span class=\"summary-sig-default\">6371008.771415</span>,\n        <span class=\"summary-sig-arg\">shortest</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">indices</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">**options</span>)</span><br />\n      <i>Reumann-Witkam</i> (RW) simplification of a path of \n      <code>LatLon</code> points by eliminating any points too close \n      together or within the given <i>pipe</i> tolerance along an edge.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#simplifyVW\" class=\"summary-sig-name\">simplifyVW</a>(<span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">area</span>=<span class=\"summary-sig-default\">0.001</span>,\n        <span class=\"summary-sig-arg\">radius</span>=<span class=\"summary-sig-default\">6371008.771415</span>,\n        <span class=\"summary-sig-arg\">indices</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">attr</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">modified</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">**options</span>)</span><br />\n      <i>Visvalingam-Whyatt</i> (VW) simplification of a path of \n      <code>LatLon</code> points by eliminating any points too close or \n      with a triangular area not exceeding the given <i>area</i> tolerance \n      <i>squared</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#simplifyVWm\" class=\"summary-sig-name\">simplifyVWm</a>(<span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">area</span>=<span class=\"summary-sig-default\">0.001</span>,\n        <span class=\"summary-sig-arg\">**radius_attr_indices_options</span>)</span><br />\n      DEPRECATED on 2024.11.28, use function <a \n      href=\"pygeodesy.simplify-module.html#simplifyVW\" \n      class=\"link\">pygeodesy.simplifyVW</a><code>(points, modified=True, \n      ...)</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#sincos2\" class=\"summary-sig-name\">sincos2</a>(<span class=\"summary-sig-arg\">rad</span>)</span><br />\n      Return the <code>sine</code> and <code>cosine</code> of an angle in \n      <code>radians</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#sincos2_\" class=\"summary-sig-name\">sincos2_</a>(<span class=\"summary-sig-arg\">*rads</span>)</span><br />\n      Yield the <code>sine</code> and <code>cosine</code> of angle(s) in \n      <code>radians</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#sincos2d\" class=\"summary-sig-name\">sincos2d</a>(<span class=\"summary-sig-arg\">deg</span>,\n        <span class=\"summary-sig-arg\">adeg</span>=<span class=\"summary-sig-default\">0.0</span>)</span><br />\n      Return the <code>sine</code> and <code>cosine</code> of an angle in \n      <code>degrees</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#sincos2d_\" class=\"summary-sig-name\">sincos2d_</a>(<span class=\"summary-sig-arg\">*degs</span>)</span><br />\n      Yield the <code>sine</code> and <code>cosine</code> of angle(s) in \n      <code>degrees</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#sincostan3\" class=\"summary-sig-name\">sincostan3</a>(<span class=\"summary-sig-arg\">rad</span>)</span><br />\n      Return the <code>sine</code>, <code>cosine</code> and \n      <code>tangent</code> of an angle in <code>radians</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#sincostan3d\" class=\"summary-sig-name\">sincostan3d</a>(<span class=\"summary-sig-arg\">deg</span>)</span><br />\n      Return the <code>sine</code>, <code>cosine</code> and \n      <code>tangent</code> of an angle in <code>degrees</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#snellius3\" class=\"summary-sig-name\">snellius3</a>(<span class=\"summary-sig-arg\">a</span>,\n        <span class=\"summary-sig-arg\">b</span>,\n        <span class=\"summary-sig-arg\">degC</span>,\n        <span class=\"summary-sig-arg\">alpha</span>,\n        <span class=\"summary-sig-arg\">beta</span>)</span><br />\n      Snellius' surveying using <a \n      href=\"https://WikiPedia.org/wiki/Snellius&#8211;Pothenot_problem\" \n      target=\"_top\">Snellius Pothenot</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#soddy4\" class=\"summary-sig-name\">soddy4</a>(<span class=\"summary-sig-arg\">point1</span>,\n        <span class=\"summary-sig-arg\">point2</span>,\n        <span class=\"summary-sig-arg\">point3</span>,\n        <span class=\"summary-sig-arg\">eps</span>=<span class=\"summary-sig-default\">8.881784197001252e-16</span>,\n        <span class=\"summary-sig-arg\">useZ</span>=<span class=\"summary-sig-default\">True</span>)</span><br />\n      Return the radius and center of the <code>inner</code> <i>Soddy</i> \n      circle of a (2- or 3-D) triangle.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#splice\" class=\"summary-sig-name\">splice</a>(<span class=\"summary-sig-arg\">iterable</span>,\n        <span class=\"summary-sig-arg\">n</span>=<span class=\"summary-sig-default\">2</span>,\n        <span class=\"summary-sig-arg\">**fill</span>)</span><br />\n      Split an iterable into <code>n</code> slices.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#sqrt0\" class=\"summary-sig-name\">sqrt0</a>(<span class=\"summary-sig-arg\">x</span>,\n        <span class=\"summary-sig-arg\">Error</span>=<span class=\"summary-sig-default\">None</span>)</span><br />\n      Return the square root <code>sqrt(<b>x</b>)</code> iff <code><b>x</b>\n      &gt; </code>EPS02, preserving <code>type(<b>x</b>)</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#sqrt3\" class=\"summary-sig-name\">sqrt3</a>(<span class=\"summary-sig-arg\">x</span>)</span><br />\n      Return the square root, <i>cubed</i> <i class=\"math\">sqrt(x)**3</i> \n      or <i class=\"math\">sqrt(x**3)</i>, preserving \n      <code>type(<b>x</b>)</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#sqrt_a\" class=\"summary-sig-name\">sqrt_a</a>(<span class=\"summary-sig-arg\">h</span>,\n        <span class=\"summary-sig-arg\">b</span>)</span><br />\n      Compute the <code><i>a</i></code> side of a right-angled triangle \n      from <code>sqrt(<b>h</b>**2 - <b>b</b>**2)</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"str2ub\"></a><span class=\"summary-sig-name\">str2ub</span>(<span class=\"summary-sig-arg\">arg</span>)</span><br />\n      (INTERNAL) Helper, no-op.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#strs\" class=\"summary-sig-name\">strs</a>(<span class=\"summary-sig-arg\">objs</span>,\n        <span class=\"summary-sig-arg\">prec</span>=<span class=\"summary-sig-default\">6</span>,\n        <span class=\"summary-sig-arg\">fmt</span>=<span class=\"summary-sig-default\">'F'</span>,\n        <span class=\"summary-sig-arg\">ints</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Convert objects to <code>str</code> strings, with <code>float</code>s\n      handled like <a href=\"pygeodesy.streprs-module.html#fstr\" \n      class=\"link\">fstr</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#sumOf\" class=\"summary-sig-name\">sumOf</a>(<span class=\"summary-sig-arg\">vectors</span>,\n        <span class=\"summary-sig-arg\">Vector</span>=<span class=\"summary-sig-default\">&lt;class 'pygeodesy.vector3d.Vector3d'&gt;</span>,\n        <span class=\"summary-sig-arg\">**Vector_kwds</span>)</span><br />\n      Compute the <i>vectorial</i> sum of two oe more vectors.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#tan\" class=\"summary-sig-name\">tan</a>(<span class=\"summary-sig-arg\">rad</span>,\n        <span class=\"summary-sig-arg\">**raiser_kwds</span>)</span><br />\n      Return the <code>tangent</code> of an angle in <code>radians</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#tanPI_2_2\" class=\"summary-sig-name\">tanPI_2_2</a>(<span class=\"summary-sig-arg\">rad</span>)</span><br />\n      Compute the tangent of half angle, 90 degrees rotated.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#tan_\" class=\"summary-sig-name\">tan_</a>(<span class=\"summary-sig-arg\">*rads</span>,\n        <span class=\"summary-sig-arg\">**raiser_kwds</span>)</span><br />\n      Yield the <code>tangent</code> of angle(s) in <code>radians</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#tan_2\" class=\"summary-sig-name\">tan_2</a>(<span class=\"summary-sig-arg\">rad</span>,\n        <span class=\"summary-sig-arg\">**semi</span>)</span><br />\n      Compute the tangent of half angle.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#tand\" class=\"summary-sig-name\">tand</a>(<span class=\"summary-sig-arg\">deg</span>,\n        <span class=\"summary-sig-arg\">**raiser_clamp_kwds</span>)</span><br />\n      Return the <code>tangent</code> of an angle in <code>degrees</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#tand_\" class=\"summary-sig-name\">tand_</a>(<span class=\"summary-sig-arg\">*degs</span>,\n        <span class=\"summary-sig-arg\">**raiser_clamp_kwds</span>)</span><br />\n      Yield the <code>tangent</code> of angle(s) in <code>degrees</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#thomas\" class=\"summary-sig-name\">thomas</a>(<span class=\"summary-sig-arg\">lat1</span>,\n        <span class=\"summary-sig-arg\">lon1</span>,\n        <span class=\"summary-sig-arg\">lat2</span>,\n        <span class=\"summary-sig-arg\">lon2</span>,\n        <span class=\"summary-sig-arg\">datum</span>=<span class=\"summary-sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Compute the distance between two (ellipsoidal) points using <a \n      href=\"https://apps.DTIC.mil/dtic/tr/fulltext/u2/703541.pdf\" \n      target=\"_top\">Thomas'</a> formula.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#thomas_\" class=\"summary-sig-name\">thomas_</a>(<span class=\"summary-sig-arg\">phi2</span>,\n        <span class=\"summary-sig-arg\">phi1</span>,\n        <span class=\"summary-sig-arg\">lam21</span>,\n        <span class=\"summary-sig-arg\">datum</span>=<span class=\"summary-sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>)</span><br />\n      Compute the <i>angular</i> distance between two (ellipsoidal) points \n      using <a href=\"https://apps.DTIC.mil/dtic/tr/fulltext/u2/703541.pdf\" \n      target=\"_top\">Thomas'</a> formula.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#tienstra\" class=\"summary-sig-name\">tienstra</a>(<span class=\"summary-sig-arg\">pointA</span>,\n        <span class=\"summary-sig-arg\">pointB</span>,\n        <span class=\"summary-sig-arg\">pointC</span>,\n        <span class=\"summary-sig-arg\">alpha</span>,\n        <span class=\"summary-sig-arg\">**beta_gamma_useZ_Clas_and_kwds</span>)</span><br />\n      DEPRECATED, use function <a \n      href=\"pygeodesy.resections-module.html#tienstra7\" \n      class=\"link\">pygeodesy.tienstra7</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#tienstra7\" class=\"summary-sig-name\">tienstra7</a>(<span class=\"summary-sig-arg\">pointA</span>,\n        <span class=\"summary-sig-arg\">pointB</span>,\n        <span class=\"summary-sig-arg\">pointC</span>,\n        <span class=\"summary-sig-arg\">alpha</span>,\n        <span class=\"summary-sig-arg\">beta</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">gamma</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">useZ</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">**Clas_and_kwds</span>)</span><br />\n      3-Point resection using <a \n      href=\"https://WikiPedia.org/wiki/Tienstra_formula\" \n      target=\"_top\">Tienstra</a>'s formula.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#toCss\" class=\"summary-sig-name\">toCss</a>(<span class=\"summary-sig-arg\">latlon</span>,\n        <span class=\"summary-sig-arg\">cs0</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">height</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">Css</span>=<span class=\"summary-sig-default\">&lt;class 'pygeodesy.css.Css'&gt;</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Convert an (ellipsoidal) geodetic point to a Cassini-Soldner \n      location.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#toDMS\" class=\"summary-sig-name\">toDMS</a>(<span class=\"summary-sig-arg\">deg</span>,\n        <span class=\"summary-sig-arg\">form</span>=<span class=\"summary-sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">dms</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"summary-sig-arg\">prec</span>=<span class=\"summary-sig-default\">2</span>,\n        <span class=\"summary-sig-arg\">sep</span>=<span class=\"summary-sig-default\">''</span>,\n        <span class=\"summary-sig-arg\">ddd</span>=<span class=\"summary-sig-default\">2</span>,\n        <span class=\"summary-sig-arg\">neg</span>=<span class=\"summary-sig-default\">'-'</span>,\n        <span class=\"summary-sig-arg\">pos</span>=<span class=\"summary-sig-default\">'+'</span>,\n        <span class=\"summary-sig-arg\">**s_D_M_S</span>)</span><br />\n      Convert <i>signed</i> <code>degrees</code> to string, without suffix.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#toEtm8\" class=\"summary-sig-name\">toEtm8</a>(<span class=\"summary-sig-arg\">latlon</span>,\n        <span class=\"summary-sig-arg\">lon</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">datum</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">Etm</span>=<span class=\"summary-sig-default\">&lt;class 'pygeodesy.etm.Etm'&gt;</span>,\n        <span class=\"summary-sig-arg\">falsed</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">strict</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">zone</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**name_cmoff</span>)</span><br />\n      Convert a geodetic lat-/longitude to an ETM coordinate.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#toLcc\" class=\"summary-sig-name\">toLcc</a>(<span class=\"summary-sig-arg\">latlon</span>,\n        <span class=\"summary-sig-arg\">conic</span>=<span class=\"summary-sig-default\">Conic(name='WRF_Lb', lat0=40, lon0=-97, par1=33, par2=45, E0=0<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"summary-sig-arg\">height</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">Lcc</span>=<span class=\"summary-sig-default\">&lt;class 'pygeodesy.lcc.Lcc'&gt;</span>,\n        <span class=\"summary-sig-arg\">**name_Lcc_kwds</span>)</span><br />\n      Convert an (ellipsoidal) geodetic point to a <i>Lambert</i> location.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#toMgrs\" class=\"summary-sig-name\">toMgrs</a>(<span class=\"summary-sig-arg\">utmups</span>,\n        <span class=\"summary-sig-arg\">Mgrs</span>=<span class=\"summary-sig-default\">&lt;class 'pygeodesy.mgrs.Mgrs'&gt;</span>,\n        <span class=\"summary-sig-arg\">**name_Mgrs_kwds</span>)</span><br />\n      Convert a UTM or UPS coordinate to an MGRS grid reference.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#toOsgr\" class=\"summary-sig-name\">toOsgr</a>(<span class=\"summary-sig-arg\">latlon</span>,\n        <span class=\"summary-sig-arg\">lon</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">kTM</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">datum</span>=<span class=\"summary-sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"summary-sig-arg\">Osgr</span>=<span class=\"summary-sig-default\">&lt;class 'pygeodesy.osgr.Osgr'&gt;</span>,\n        <span class=\"summary-sig-arg\">**prec_name_Osgr_kwds</span>)</span><br />\n      Convert a lat-/longitude point to an OSGR coordinate.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#toUps8\" class=\"summary-sig-name\">toUps8</a>(<span class=\"summary-sig-arg\">latlon</span>,\n        <span class=\"summary-sig-arg\">lon</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">datum</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">Ups</span>=<span class=\"summary-sig-default\">&lt;class 'pygeodesy.ups.Ups'&gt;</span>,\n        <span class=\"summary-sig-arg\">pole</span>=<span class=\"summary-sig-default\">''</span>,\n        <span class=\"summary-sig-arg\">falsed</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">strict</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Convert a lat-/longitude point to a UPS coordinate.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#toUtm\" class=\"summary-sig-name\">toUtm</a>(<span class=\"summary-sig-arg\">latlon</span>,\n        <span class=\"summary-sig-arg\">lon</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">datum</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">Utm</span>=<span class=\"summary-sig-default\">_UTM</span>,\n        <span class=\"summary-sig-arg\">cmoff</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">name</span>=<span class=\"summary-sig-default\">''</span>)</span><br />\n      DEPRECATED, use function <a href=\"pygeodesy.utm-module.html#toUtm8\" \n      class=\"link\">pygeodesy.toUtm8</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#toUtm8\" class=\"summary-sig-name\">toUtm8</a>(<span class=\"summary-sig-arg\">latlon</span>,\n        <span class=\"summary-sig-arg\">lon</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">datum</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">Utm</span>=<span class=\"summary-sig-default\">&lt;class 'pygeodesy.utm.Utm'&gt;</span>,\n        <span class=\"summary-sig-arg\">falsed</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">strict</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">zone</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**name_cmoff</span>)</span><br />\n      Convert a lat-/longitude point to a UTM coordinate.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#toUtmUps8\" class=\"summary-sig-name\">toUtmUps8</a>(<span class=\"summary-sig-arg\">latlon</span>,\n        <span class=\"summary-sig-arg\">lon</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">datum</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">falsed</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">Utm</span>=<span class=\"summary-sig-default\">&lt;class 'pygeodesy.utm.Utm'&gt;</span>,\n        <span class=\"summary-sig-arg\">Ups</span>=<span class=\"summary-sig-default\">&lt;class 'pygeodesy.ups.Ups'&gt;</span>,\n        <span class=\"summary-sig-arg\">pole</span>=<span class=\"summary-sig-default\">''</span>,\n        <span class=\"summary-sig-arg\">**name_cmoff</span>)</span><br />\n      Convert a lat-/longitude point to a UTM or UPS coordinate.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#toWm\" class=\"summary-sig-name\">toWm</a>(<span class=\"summary-sig-arg\">latlon</span>,\n        <span class=\"summary-sig-arg\">lon</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">earth</span>=<span class=\"summary-sig-default\">6378137.0</span>,\n        <span class=\"summary-sig-arg\">Wm</span>=<span class=\"summary-sig-default\">&lt;class 'pygeodesy.webmercator.Wm'&gt;</span>,\n        <span class=\"summary-sig-arg\">**name_Wm_kwds_radius</span>)</span><br />\n      Convert a lat-/longitude point to a WM coordinate.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#toise2m\" class=\"summary-sig-name\">toise2m</a>(<span class=\"summary-sig-arg\">toises</span>)</span><br />\n      Convert a length in French <a href=\"https://WikiPedia.org/wiki/Toise\"\n      target=\"_top\">toises</a> to meter.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#trfTransform0\" class=\"summary-sig-name\">trfTransform0</a>(<span class=\"summary-sig-arg\">reframe</span>,\n        <span class=\"summary-sig-arg\">reframe2</span>,\n        <span class=\"summary-sig-arg\">epoch</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">epoch2</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">indirect</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">inverse</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">exhaust</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Get a Helmert transform to convert one <code>reframe</code> observed \n      at <code>epoch</code> to an other <code>reframe2</code> at observed \n      at <code>epoch2 or epoch</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#trfTransforms\" class=\"summary-sig-name\">trfTransforms</a>(<span class=\"summary-sig-arg\">reframe</span>,\n        <span class=\"summary-sig-arg\">reframe2</span>,\n        <span class=\"summary-sig-arg\">epoch</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">epoch2</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">indirect</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">inverse</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">exhaust</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Yield all Helmert transform to convert one <code>reframe</code> \n      observed at <code>epoch</code> to an other <code>reframe2</code> at \n      observed at <code>epoch2 or epoch</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#trfXform\" class=\"summary-sig-name\">trfXform</a>(<span class=\"summary-sig-arg\">reframe1</span>,\n        <span class=\"summary-sig-arg\">reframe2</span>,\n        <span class=\"summary-sig-arg\">epoch</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">xform</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">rates</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">raiser</span>=<span class=\"summary-sig-default\">True</span>)</span><br />\n      Define a new Terrestrial Reference Frame (TRF) converter or get an \n      existing one.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#triAngle\" class=\"summary-sig-name\">triAngle</a>(<span class=\"summary-sig-arg\">a</span>,\n        <span class=\"summary-sig-arg\">b</span>,\n        <span class=\"summary-sig-arg\">c</span>)</span><br />\n      Compute one angle of a triangle.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#triAngle4\" class=\"summary-sig-name\">triAngle4</a>(<span class=\"summary-sig-arg\">a</span>,\n        <span class=\"summary-sig-arg\">b</span>,\n        <span class=\"summary-sig-arg\">c</span>)</span><br />\n      DEPRECATED on 2023.09.14, use function <a \n      href=\"pygeodesy.resections-module.html#triAngle5\" \n      class=\"link\">pygeodesy.triAngle5</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#triAngle5\" class=\"summary-sig-name\">triAngle5</a>(<span class=\"summary-sig-arg\">a</span>,\n        <span class=\"summary-sig-arg\">b</span>,\n        <span class=\"summary-sig-arg\">c</span>)</span><br />\n      Compute the angles of a triangle.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#triArea\" class=\"summary-sig-name\">triArea</a>(<span class=\"summary-sig-arg\">a</span>,\n        <span class=\"summary-sig-arg\">b</span>,\n        <span class=\"summary-sig-arg\">c</span>)</span><br />\n      Compute the area of a triangle using <a \n      href=\"https://WikiPedia.org/wiki/Heron%27s_formula\" \n      target=\"_top\">Heron's</a> <code>stable</code> formula.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#triSide\" class=\"summary-sig-name\">triSide</a>(<span class=\"summary-sig-arg\">a</span>,\n        <span class=\"summary-sig-arg\">b</span>,\n        <span class=\"summary-sig-arg\">radC</span>)</span><br />\n      Compute one side of a triangle.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#triSide2\" class=\"summary-sig-name\">triSide2</a>(<span class=\"summary-sig-arg\">b</span>,\n        <span class=\"summary-sig-arg\">c</span>,\n        <span class=\"summary-sig-arg\">radB</span>)</span><br />\n      Compute a side and its opposite angle of a triangle.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#triSide4\" class=\"summary-sig-name\">triSide4</a>(<span class=\"summary-sig-arg\">radA</span>,\n        <span class=\"summary-sig-arg\">radB</span>,\n        <span class=\"summary-sig-arg\">c</span>)</span><br />\n      Compute two sides and the height of a triangle.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#triaxum5\" class=\"summary-sig-name\">triaxum5</a>(<span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">useZ</span>=<span class=\"summary-sig-default\">True</span>)</span><br />\n      Best-fit a triaxial ellipsoid through three or more (3-D) points.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#trilaterate2d2\" class=\"summary-sig-name\">trilaterate2d2</a>(<span class=\"summary-sig-arg\">x1</span>,\n        <span class=\"summary-sig-arg\">y1</span>,\n        <span class=\"summary-sig-arg\">radius1</span>,\n        <span class=\"summary-sig-arg\">x2</span>,\n        <span class=\"summary-sig-arg\">y2</span>,\n        <span class=\"summary-sig-arg\">radius2</span>,\n        <span class=\"summary-sig-arg\">x3</span>,\n        <span class=\"summary-sig-arg\">y3</span>,\n        <span class=\"summary-sig-arg\">radius3</span>,\n        <span class=\"summary-sig-arg\">eps</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**Vector_and_kwds</span>)</span><br />\n      Trilaterate three circles, each given as a (2-D) center and a radius.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#trilaterate3d2\" class=\"summary-sig-name\">trilaterate3d2</a>(<span class=\"summary-sig-arg\">center1</span>,\n        <span class=\"summary-sig-arg\">radius1</span>,\n        <span class=\"summary-sig-arg\">center2</span>,\n        <span class=\"summary-sig-arg\">radius2</span>,\n        <span class=\"summary-sig-arg\">center3</span>,\n        <span class=\"summary-sig-arg\">radius3</span>,\n        <span class=\"summary-sig-arg\">eps</span>=<span class=\"summary-sig-default\">2.220446049250313e-16</span>,\n        <span class=\"summary-sig-arg\">**Vector_and_kwds</span>)</span><br />\n      Trilaterate three spheres, each given as a (3-D) center and a radius.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#truncate\" class=\"summary-sig-name\">truncate</a>(<span class=\"summary-sig-arg\">x</span>,\n        <span class=\"summary-sig-arg\">ndigits</span>=<span class=\"summary-sig-default\">None</span>)</span><br />\n      Truncate to the given number of digits.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"typename\"></a><span class=\"summary-sig-name\">typename</span>(<span class=\"summary-sig-arg\">obj</span>,\n        <span class=\"summary-sig-arg\">*dflt</span>)</span><br />\n      Get the <code>obj.__name__</code>, the <code>dflt</code> or its outer\n      <code>type.__name__</code> or <code>NN</code> (<code>str</code>).</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#tyr3d\" class=\"summary-sig-name\">tyr3d</a>(<span class=\"summary-sig-arg\">tilt</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">yaw</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">roll</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">Vector</span>=<span class=\"summary-sig-default\">&lt;class 'pygeodesy.vector3d.Vector3d'&gt;</span>,\n        <span class=\"summary-sig-arg\">**name_Vector_kwds</span>)</span><br />\n      Convert an attitude pose into a (3-D) direction vector.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"ub2str\"></a><span class=\"summary-sig-name\">ub2str</span>(<span class=\"summary-sig-arg\">arg</span>)</span><br />\n      (INTERNAL) Helper, no-op.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#unStr\" class=\"summary-sig-name\">unStr</a>(<span class=\"summary-sig-arg\">name</span>,\n        <span class=\"summary-sig-arg\">*args</span>,\n        <span class=\"summary-sig-arg\">**kwds</span>)</span><br />\n      DEPRECATED, use function <a \n      href=\"pygeodesy.streprs-module.html#unstr\" \n      class=\"link\">pygeodesy.unstr</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#unroll180\" class=\"summary-sig-name\">unroll180</a>(<span class=\"summary-sig-arg\">lon1</span>,\n        <span class=\"summary-sig-arg\">lon2</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">True</span>)</span><br />\n      Unroll longitudinal delta and wrap longitude in degrees.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#unrollPI\" class=\"summary-sig-name\">unrollPI</a>(<span class=\"summary-sig-arg\">rad1</span>,\n        <span class=\"summary-sig-arg\">rad2</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">True</span>)</span><br />\n      Unroll longitudinal delta and wrap longitude in radians.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#unsign0\" class=\"summary-sig-name\">unsign0</a>(<span class=\"summary-sig-arg\">x</span>)</span><br />\n      DEPRECATED, use function <a \n      href=\"pygeodesy.basics-module.html#unsigned0\" \n      class=\"link\">pygeodesy.unsigned0</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#unsigned0\" class=\"summary-sig-name\">unsigned0</a>(<span class=\"summary-sig-arg\">x</span>)</span><br />\n      Unsign if <code>0.0</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#unstr\" class=\"summary-sig-name\">unstr</a>(<span class=\"summary-sig-arg\">where</span>,\n        <span class=\"summary-sig-arg\">*args</span>,\n        <span class=\"summary-sig-arg\">**kwds_</span>)</span><br />\n      Return the string representation of an invokation.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#upsZoneBand5\" class=\"summary-sig-name\">upsZoneBand5</a>(<span class=\"summary-sig-arg\">lat</span>,\n        <span class=\"summary-sig-arg\">lon</span>,\n        <span class=\"summary-sig-arg\">strict</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Return the UTM/UPS zone number, <i>polar</i> Band letter, pole and \n      clipped lat- and longitude for a given location.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#utmZoneBand2\" class=\"summary-sig-name\">utmZoneBand2</a>(<span class=\"summary-sig-arg\">lat</span>,\n        <span class=\"summary-sig-arg\">lon</span>)</span><br />\n      DEPRECATED, use function <a \n      href=\"pygeodesy.utm-module.html#utmZoneBand5\" \n      class=\"link\">pygeodesy.utmZoneBand5</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#utmZoneBand5\" class=\"summary-sig-name\">utmZoneBand5</a>(<span class=\"summary-sig-arg\">lat</span>,\n        <span class=\"summary-sig-arg\">lon</span>,\n        <span class=\"summary-sig-arg\">cmoff</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Return the UTM zone number, Band letter, hemisphere and (clipped) \n      lat- and longitude for a given location.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#utmupsValidate\" class=\"summary-sig-name\">utmupsValidate</a>(<span class=\"summary-sig-arg\">coord</span>,\n        <span class=\"summary-sig-arg\">falsed</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">MGRS</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">Error</span>=<span class=\"summary-sig-default\">&lt;class 'pygeodesy.utmups.UTMUPSError'&gt;</span>)</span><br />\n      Check a UTM or UPS coordinate.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#utmupsValidateOK\" class=\"summary-sig-name\">utmupsValidateOK</a>(<span class=\"summary-sig-arg\">coord</span>,\n        <span class=\"summary-sig-arg\">falsed</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">ok</span>=<span class=\"summary-sig-default\">True</span>)</span><br />\n      Check a UTM or UPS coordinate.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#utmupsZoneBand5\" class=\"summary-sig-name\">utmupsZoneBand5</a>(<span class=\"summary-sig-arg\">lat</span>,\n        <span class=\"summary-sig-arg\">lon</span>,\n        <span class=\"summary-sig-arg\">cmoff</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Return the UTM/UPS zone number, Band letter, hemisphere/pole and \n      clipped lat- and longitude for a given location.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#vincentys\" class=\"summary-sig-name\">vincentys</a>(<span class=\"summary-sig-arg\">lat1</span>,\n        <span class=\"summary-sig-arg\">lon1</span>,\n        <span class=\"summary-sig-arg\">lat2</span>,\n        <span class=\"summary-sig-arg\">lon2</span>,\n        <span class=\"summary-sig-arg\">radius</span>=<span class=\"summary-sig-default\">6371008.771415</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Compute the distance between two (spherical) points using <a \n      href=\"https://WikiPedia.org/wiki/Great-circle_distance\" \n      target=\"_top\">Vincenty's</a> spherical formula.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#vincentys_\" class=\"summary-sig-name\">vincentys_</a>(<span class=\"summary-sig-arg\">geohash1</span>,\n        <span class=\"summary-sig-arg\">geohash2</span>,\n        <span class=\"summary-sig-arg\">**radius_wrap</span>)</span><br />\n      Compute the distance between two geohashes using the <a \n      href=\"pygeodesy.formy-module.html#vincentys\" \n      class=\"link\">pygeodesy.vincentys</a> formula.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#wildberger3\" class=\"summary-sig-name\">wildberger3</a>(<span class=\"summary-sig-arg\">a</span>,\n        <span class=\"summary-sig-arg\">b</span>,\n        <span class=\"summary-sig-arg\">c</span>,\n        <span class=\"summary-sig-arg\">alpha</span>,\n        <span class=\"summary-sig-arg\">beta</span>,\n        <span class=\"summary-sig-arg\">R3</span>=<span class=\"summary-sig-default\">&lt;built-in function min&gt;</span>)</span><br />\n      Snellius' surveying using <a \n      href=\"https://WikiPedia.org/wiki/Snellius&#8211;Pothenot_problem\" \n      target=\"_top\">Rational Trigonometry</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#wrap180\" class=\"summary-sig-name\">wrap180</a>(<span class=\"summary-sig-arg\">deg</span>)</span><br />\n      Wrap degrees to <i class=\"math\">[-180..+180]</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#wrap360\" class=\"summary-sig-name\">wrap360</a>(<span class=\"summary-sig-arg\">deg</span>)</span><br />\n      Wrap degrees to <i class=\"math\">[0..+360)</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#wrap90\" class=\"summary-sig-name\">wrap90</a>(<span class=\"summary-sig-arg\">deg</span>)</span><br />\n      Wrap degrees to <i class=\"math\">[-90..+90]</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#wrapPI\" class=\"summary-sig-name\">wrapPI</a>(<span class=\"summary-sig-arg\">rad</span>)</span><br />\n      Wrap radians to <i class=\"math\">[-PI..+PI]</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#wrapPI2\" class=\"summary-sig-name\">wrapPI2</a>(<span class=\"summary-sig-arg\">rad</span>)</span><br />\n      Wrap radians to <i class=\"math\">[0..+2PI)</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#wrapPI_2\" class=\"summary-sig-name\">wrapPI_2</a>(<span class=\"summary-sig-arg\">rad</span>)</span><br />\n      Wrap radians to <i class=\"math\">[-PI/2..+PI/2]</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#wrap_normal\" class=\"summary-sig-name\">wrap_normal</a>(<span class=\"summary-sig-arg\">*normal</span>)</span><br />\n      Define the operation for the keyword argument \n      <code><b>wrap</b>=True</code>, across <a href=\"pygeodesy-module.html\"\n      class=\"link\">pygeodesy</a>: <i>wrap</i>, <i>normalize</i> or \n      <i>no-op</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#xyz2rtp\" class=\"summary-sig-name\">xyz2rtp</a>(<span class=\"summary-sig-arg\">x_xyz</span>,\n        <span class=\"summary-sig-arg\">y</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">z</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Convert cartesian <code>(x, y, z)</code> to <i>spherical, polar</i> \n      <code>(r, theta, phi)</code> coordinates.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#xyz2rtp_\" class=\"summary-sig-name\">xyz2rtp_</a>(<span class=\"summary-sig-arg\">x_xyz</span>,\n        <span class=\"summary-sig-arg\">y</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">z</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Convert cartesian <code>(x, y, z)</code> to <i>spherical, polar</i> \n      <code>(r, theta, phi)</code> coordinates.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#yard2m\" class=\"summary-sig-name\">yard2m</a>(<span class=\"summary-sig-arg\">yards</span>,\n        <span class=\"summary-sig-arg\">imperial</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Convert a length in <i>International</i> or <a \n      href=\"https://WikiPedia.org/wiki/Imperial_units\" \n      target=\"_top\">Imperial Standard</a> yards to meter.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#zcrt\" class=\"summary-sig-name\">zcrt</a>(<span class=\"summary-sig-arg\">x</span>)</span><br />\n      Return the 6-th, <i>zenzi-cubic</i> root, <i class=\"math\">x**(1 / \n      6)</i>, preserving <code>type(<b>x</b>)</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy-module.html#zqrt\" class=\"summary-sig-name\">zqrt</a>(<span class=\"summary-sig-arg\">x</span>)</span><br />\n      Return the 8-th, <i>zenzi-quartic</i> or <i>squared-quartic</i> root,\n      <i class=\"math\">x**(1 / 8)</i>, preserving \n      <code>type(<b>x</b>)</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== VARIABLES ==================== -->\n<a name=\"section-Variables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Variables</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy-module.html#pygeodesy_abspath\" class=\"summary-name\">pygeodesy_abspath</a> = <code title=\"'..../PyGeodesy/pygeodesy'\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">..../PyGe</code><code class=\"variable-ellipsis\">...</code></code><br />\n      Fully qualified <code>pygeodesy</code> directory name \n      (<code>str</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"version\"></a><span class=\"summary-name\">version</span> = <code title=\"'26.3.26'\">'26.3.26'</code><br />\n      Normalized <code>pygeodesy</code> version (<code>str</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy-module.html#Conics\" class=\"summary-name\">Conics</a> = <code title=\"Conics.WRF_Lb: Conic(name='WRF_Lb', lat0=40, lon0=-97, par1=33, par2=4\\\n5, E0=0, N0=0, k0=1, SP=2, datum=Datum(name='WGS84', ellipsoid=Ellipso\\\nids.WGS84, transform=Transforms.WGS84))\">Conics.WRF_Lb: Conic(name='WRF_Lb', lat0=40, lon0=-97<code class=\"variable-ellipsis\">...</code></code><br />\n      Registered, predefined <a href=\"pygeodesy.lcc.Conic-class.html\" \n      class=\"link\">conics</a> (<code>enum-like</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"DIG\"></a><span class=\"summary-name\">DIG</span> = <code title=\"15\">15</code><br />\n      System's <i class=\"math\">float decimal digits</i> = 15 \n      (<code>int</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy-module.html#Datums\" class=\"summary-name\">Datums</a> = <code title=\"Datums.Sphere: Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, trans\\\nform=Transforms.WGS84),\nDatums.NAD83: Datum(name='NAD83', ellipsoid=Ellipsoids.GRS80, transfor\\\nm=Transforms.NAD83),\nDatums.OSGB36: Datum(name='OSGB36', ellipsoid=Ellipsoids.Airy1830, tra\\\nnsform=Transforms.OSGB36),\nDatums.WGS84: Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transfor\\\nm=Transforms.WGS84),\n...\">Datums.Sphere: Datum(name='Sphere', ellipsoid=Ellipso<code class=\"variable-ellipsis\">...</code></code><br />\n      Registered, predefined <a href=\"pygeodesy.datums.Datum-class.html\" \n      class=\"link\">datums</a> (<code>enum-like</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"EPS\"></a><span class=\"summary-name\">EPS</span> = <code title=\"2.220446049250313e-16\">2.220446049250313e-16</code><br />\n      System's <i class=\"math\">epsilon</i> &#8776; 2.22044604925e-16 \n      (<code>float</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"EPS0\"></a><span class=\"summary-name\">EPS0</span> = <code title=\"4.930380657631324e-32\">4.930380657631324e-32</code><br />\n      <i class=\"math\">EPS**2</i>  &#8776; 4.9e-32 for near-zero comparison\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"EPS02\"></a><span class=\"summary-name\">EPS02</span> = <code title=\"2.4308653429145085e-63\">2.4308653429145085e-63</code><br />\n      <i class=\"math\">EPS**4</i>  &#8776; 2.4e-63 for near-zero squared \n      comparison\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"EPS1\"></a><span class=\"summary-name\">EPS1</span> = <code title=\"0.9999999999999998\">0.9999999999999998</code><br />\n      <i class=\"math\">1 - EPS</i> &#8776; 0.9999999999999998 \n      (<code>float</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"EPS1_2\"></a><span class=\"summary-name\">EPS1_2</span> = <code title=\"0.9999999999999999\">0.9999999999999999</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"EPS2\"></a><span class=\"summary-name\">EPS2</span> = <code title=\"4.440892098500626e-16\">4.440892098500626e-16</code><br />\n      <i class=\"math\">EPS * 2</i> &#8776; 4.440892098501e-16 \n      (<code>float</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"EPS4\"></a><span class=\"summary-name\">EPS4</span> = <code title=\"8.881784197001252e-16\">8.881784197001252e-16</code><br />\n      <i class=\"math\">EPS * 4</i> &#8776; 8.881784197001e-16 \n      (<code>float</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"EPS8\"></a><span class=\"summary-name\">EPS8</span> = <code title=\"1.7763568394002505e-15\">1.7763568394002505e-15</code><br />\n      <i class=\"math\">EPS * 8</i> &#8776; 1.776356839400e-15 \n      (<code>float</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"EPS_2\"></a><span class=\"summary-name\">EPS_2</span> = <code title=\"1.1102230246251565e-16\">1.1102230246251565e-16</code><br />\n      <i class=\"math\">EPS / 2</i> &#8776; 1.110223024625e-16 \n      (<code>float</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy-module.html#Ellipsoids\" class=\"summary-name\">Ellipsoids</a> = <code title=\"Ellipsoids.Sphere: Ellipsoid(name='Sphere', a=6371008.771415, f=0, f_=\\\n0, b=6371008.771415),\nEllipsoids.GRS80: Ellipsoid(name='GRS80', a=6378137, f=0.00335281, f_=\\\n298.2572221, b=6356752.31414035),\nEllipsoids.WGS84: Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=\\\n298.25722356, b=6356752.31424518),\nEllipsoids.Airy1830: Ellipsoid(name='Airy1830', a=6377563.396, f=0.003\\\n34085, f_=299.3249646, b=6356256.90923729)\">Ellipsoids.Sphere: Ellipsoid(name='Sphere', a=637<code class=\"variable-ellipsis\">...</code></code><br />\n      Registered, predefined <a \n      href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n      class=\"link\">ellipsoids</a> (<code>enum-like</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"F_D\"></a><span class=\"summary-name\">F_D</span> = <code title=\"'d'\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">d</code><code class=\"variable-quote\">'</code></code><br />\n      Format degrees as unsigned &quot;deg&#176;&quot; with symbol, plus compass\n      point suffix <code>N, S, E</code> or <code>W</code> \n      (<code>str</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"F_D60\"></a><span class=\"summary-name\">F_D60</span> = <code title=\"'d60'\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">d60</code><code class=\"variable-quote\">'</code></code><br />\n      Format degrees as unsigned &quot;[D]DD.MMSS&quot; \n      <code>sexagecimal</code> <i>without</i> symbols, plus suffix \n      (<code>str</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"F_D60_\"></a><span class=\"summary-name\">F_D60_</span> = <code title=\"'-d60'\">'-d60'</code><br />\n      Format degrees as signed &quot;-/[D]DD.MMSS&quot; \n      <code>sexagecimal</code> <i>without</i> symbols, <i>without</i> \n      suffix (<code>str</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"F_D60__\"></a><span class=\"summary-name\">F_D60__</span> = <code title=\"'+d60'\">'+d60'</code><br />\n      Format degrees as signed &quot;-/+[D]DD.MMSS&quot; \n      <code>sexagecimal</code> <i>without</i> symbols, <i>without</i> \n      suffix (<code>str</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"F_DEG\"></a><span class=\"summary-name\">F_DEG</span> = <code title=\"'deg'\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">deg</code><code class=\"variable-quote\">'</code></code><br />\n      Format degrees as unsigned &quot;[D]DD&quot; <i>without</i> symbol, \n      plus suffix (<code>str</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"F_DEG_\"></a><span class=\"summary-name\">F_DEG_</span> = <code title=\"'-deg'\">'-deg'</code><br />\n      Format degrees as signed &quot;-/[D]DD&quot; <i>without</i> symbol, \n      <i>without</i> suffix (<code>str</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"F_DEG__\"></a><span class=\"summary-name\">F_DEG__</span> = <code title=\"'+deg'\">'+deg'</code><br />\n      Format degrees as signed &quot;-/+[D]DD&quot; <i>without</i> symbol, \n      <i>without</i> suffix (<code>str</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"F_DM\"></a><span class=\"summary-name\">F_DM</span> = <code title=\"'dm'\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">dm</code><code class=\"variable-quote\">'</code></code><br />\n      Format degrees as unsigned &quot;deg&#176;min&#8242;&quot; with symbols, plus \n      suffix (<code>str</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"F_DMS\"></a><span class=\"summary-name\">F_DMS</span> = <code title=\"'dms'\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">dms</code><code class=\"variable-quote\">'</code></code><br />\n      Format degrees as unsigned &quot;deg&#176;min&#8242;sec&#8243;&quot; with symbols, \n      plus suffix (<code>str</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"F_DMS_\"></a><span class=\"summary-name\">F_DMS_</span> = <code title=\"'-dms'\">'-dms'</code><br />\n      Format degrees as signed &quot;-/deg&#176;min&#8242;sec&#8243;&quot; with symbols, \n      <i>without</i> suffix (<code>str</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"F_DMS__\"></a><span class=\"summary-name\">F_DMS__</span> = <code title=\"'+dms'\">'+dms'</code><br />\n      Format degrees as signed &quot;-/+deg&#176;min&#8242;sec&#8243;&quot; with symbols, \n      <i>without</i> suffix (<code>str</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"F_DM_\"></a><span class=\"summary-name\">F_DM_</span> = <code title=\"'-dm'\">'-dm'</code><br />\n      Format degrees as signed &quot;-/deg&#176;min&#8242;&quot; with symbols, \n      <i>without</i> suffix (<code>str</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"F_DM__\"></a><span class=\"summary-name\">F_DM__</span> = <code title=\"'+dm'\">'+dm'</code><br />\n      Format degrees as signed &quot;-/+deg&#176;min&#8242;&quot; with symbols, \n      <i>without</i> suffix (<code>str</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"F_D_\"></a><span class=\"summary-name\">F_D_</span> = <code title=\"'-d'\">'-d'</code><br />\n      Format degrees as signed &quot;-/deg&#176;&quot; with symbol, \n      <i>without</i> suffix (<code>str</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"F_D__\"></a><span class=\"summary-name\">F_D__</span> = <code title=\"'+d'\">'+d'</code><br />\n      Format degrees as signed &quot;-/+deg&#176;&quot; with symbol, \n      <i>without</i> suffix (<code>str</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"F_MIN\"></a><span class=\"summary-name\">F_MIN</span> = <code title=\"'min'\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">min</code><code class=\"variable-quote\">'</code></code><br />\n      Format degrees as unsigned &quot;[D]DDMM&quot; <i>without</i> \n      symbols, plus suffix (<code>str</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"F_MIN_\"></a><span class=\"summary-name\">F_MIN_</span> = <code title=\"'-min'\">'-min'</code><br />\n      Format degrees as signed &quot;-/[D]DDMM&quot; <i>without</i> \n      symbols, <i>without</i> suffix (<code>str</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"F_MIN__\"></a><span class=\"summary-name\">F_MIN__</span> = <code title=\"'+min'\">'+min'</code><br />\n      Format degrees as signed &quot;-/+[D]DDMM&quot; <i>without</i> \n      symbols, without suffix (<code>str</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"F_RAD\"></a><span class=\"summary-name\">F_RAD</span> = <code title=\"'rad'\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">rad</code><code class=\"variable-quote\">'</code></code><br />\n      Convert degrees to radians and format as unsigned &quot;RR&quot; with\n      symbol, plus suffix (<code>str</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"F_RAD_\"></a><span class=\"summary-name\">F_RAD_</span> = <code title=\"'-rad'\">'-rad'</code><br />\n      Convert degrees to radians and format as signed &quot;-/RR&quot; \n      <i>without</i> symbol, <i>without</i> suffix (<code>str</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"F_RAD__\"></a><span class=\"summary-name\">F_RAD__</span> = <code title=\"'+rad'\">'+rad'</code><br />\n      Convert degrees to radians and format as signed &quot;-/+RR&quot; \n      <i>without</i> symbol, <i>without</i> suffix (<code>str</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"F_SEC\"></a><span class=\"summary-name\">F_SEC</span> = <code title=\"'sec'\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">sec</code><code class=\"variable-quote\">'</code></code><br />\n      Format degrees as unsigned &quot;[D]DDMMSS&quot; <i>without</i> \n      symbols, plus suffix (<code>str</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"F_SEC_\"></a><span class=\"summary-name\">F_SEC_</span> = <code title=\"'-sec'\">'-sec'</code><br />\n      Format degrees as signed &quot;-/[D]DDMMSS&quot; <i>without</i> \n      symbols, <i>without</i> suffix (<code>str</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"F_SEC__\"></a><span class=\"summary-name\">F_SEC__</span> = <code title=\"'+sec'\">'+sec'</code><br />\n      Format degrees as signed &quot;-/+[D]DDMMSS&quot; <i>without</i> \n      symbols, <i>without</i> suffix (<code>str</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"F__E\"></a><span class=\"summary-name\">F__E</span> = <code title=\"'e'\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">e</code><code class=\"variable-quote\">'</code></code><br />\n      Format degrees as unsigned &quot;%E&quot; <i>without</i> symbols, \n      plus suffix (<code>str</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"F__E_\"></a><span class=\"summary-name\">F__E_</span> = <code title=\"'-e'\">'-e'</code><br />\n      Format degrees as signed &quot;-/%E&quot; <i>without</i> symbols, \n      <i>without</i> suffix (<code>str</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"F__E__\"></a><span class=\"summary-name\">F__E__</span> = <code title=\"'+e'\">'+e'</code><br />\n      Format degrees as signed &quot;-/+%E&quot; <i>without</i> symbols, \n      <i>without</i> suffix (<code>str</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"F__F\"></a><span class=\"summary-name\">F__F</span> = <code title=\"'f'\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">f</code><code class=\"variable-quote\">'</code></code><br />\n      Format degrees as unsigned &quot;%F&quot; <i>without</i> symbols, \n      plus suffix (<code>str</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"F__F_\"></a><span class=\"summary-name\">F__F_</span> = <code title=\"'-f'\">'-f'</code><br />\n      Format degrees as signed &quot;-/%F&quot; <i>without</i> symbols, \n      <i>without</i> suffix (<code>str</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"F__F__\"></a><span class=\"summary-name\">F__F__</span> = <code title=\"'+f'\">'+f'</code><br />\n      Format degrees as signed &quot;-/+%F&quot; <i>without</i> symbols, \n      <i>without</i> suffix (<code>str</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"F__G\"></a><span class=\"summary-name\">F__G</span> = <code title=\"'g'\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">g</code><code class=\"variable-quote\">'</code></code><br />\n      Format degrees as unsigned &quot;%G&quot; <i>without</i> symbols, \n      plus suffix (<code>str</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"F__G_\"></a><span class=\"summary-name\">F__G_</span> = <code title=\"'-g'\">'-g'</code><br />\n      Format degrees as signed &quot;-/%G&quot; <i>without</i> symbols, \n      <i>without</i> suffix (<code>str</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"F__G__\"></a><span class=\"summary-name\">F__G__</span> = <code title=\"'+g'\">'+g'</code><br />\n      Format degrees as signed &quot;-/+%G&quot; <i>without</i> symbols, \n      <i>without</i> suffix (<code>str</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"INF\"></a><span class=\"summary-name\">INF</span> = <code title=\"inf\">inf</code><br />\n      Infinity (<code>float</code>), see functions <a \n      href=\"pygeodesy.constants-module.html#isinf\" class=\"link\">isinf</a> \n      and <a href=\"pygeodesy.constants-module.html#isfinite\" \n      class=\"link\">isfinite</a> and <code>NINF</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"INT0\"></a><span class=\"summary-name\">INT0</span> = <code title=\"0\">0</code><br />\n      <code>int(0)</code>, missing Z-components, <code>if \n      <b>z</b>=<b>INT0</b></code>, see functions <a \n      href=\"pygeodesy.constants-module.html#isint0\" \n      class=\"link\">isint0</a>, <a \n      href=\"pygeodesy.vector2d-module.html#meeus2\" class=\"link\">meeus2</a>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"MANTIS\"></a><span class=\"summary-name\">MANTIS</span> = <code title=\"53\">53</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"MANT_DIG\"></a><span class=\"summary-name\">MANT_DIG</span> = <code title=\"53\">53</code><br />\n      System's <i class=\"math\">float mantissa bits</i> = 53 \n      (<code>int</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"MAX\"></a><span class=\"summary-name\">MAX</span> = <code title=\"1.7976931348623157e+308\">1.7976931348623157e+308</code><br />\n      System's <i class=\"math\">float max</i> &#8776; 1.798e+308 \n      (<code>float</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"MAX_EXP\"></a><span class=\"summary-name\">MAX_EXP</span> = <code title=\"1024\">1024</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"MIN\"></a><span class=\"summary-name\">MIN</span> = <code title=\"2.2250738585072014e-308\">2.2250738585072014e-308</code><br />\n      System's <i class=\"math\">float min</i> &#8776; 2.225e-308 \n      (<code>float</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"MIN_EXP\"></a><span class=\"summary-name\">MIN_EXP</span> = <code title=\"-1021\">-1021</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"NAN\"></a><span class=\"summary-name\">NAN</span> = <code title=\"nan\">nan</code><br />\n      Not-A-Number (<code>float</code>), see function <a \n      href=\"pygeodesy.constants-module.html#isnan\" class=\"link\">isnan</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"NEG0\"></a><span class=\"summary-name\">NEG0</span> = <code title=\"-0.0\">-0.0</code><br />\n      Negative 0.0 (<code>float</code>), see function <a \n      href=\"pygeodesy.constants-module.html#isneg0\" \n      class=\"link\">isneg0</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"NINF\"></a><span class=\"summary-name\">NINF</span> = <code title=\"-inf\">-inf</code><br />\n      Negative infinity (<code>float</code>), see function <a \n      href=\"pygeodesy.constants-module.html#isninf\" class=\"link\">isninf</a>\n      and <code>INF</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"NN\"></a><span class=\"summary-name\">NN</span> = <code title=\"''\">''</code><br />\n      Empty (<code>str</code>), <a href=\"https://Wiktionary.org/wiki/N.N.\" \n      target=\"_top\"><i>Nomen Nescio</i></a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"NorthPole\"></a><span class=\"summary-name\">NorthPole</span> = <code title=\"_N_Vector(0, 0, 1)\">_N_Vector(0, 0, 1)</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"OK\"></a><span class=\"summary-name\">OK</span> = <code title=\"'OK'\">'OK'</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"OVERFLOW\"></a><span class=\"summary-name\">OVERFLOW</span> = <code title=\"2.028240960365167e+31\">2.028240960365167e+31</code><br />\n      Object representing <code>overflow</code> (1 / <a \n      href=\"pygeodesy.constants-module.html#EPS0\" class=\"link\">EPS0</a> = \n      4.9e+32).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"PI\"></a><span class=\"summary-name\">PI</span> = <code title=\"3.141592653589793\">3.141592653589793</code><br />\n      Constant <i class=\"math\">math.pi</i> (<code>float</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"PI2\"></a><span class=\"summary-name\">PI2</span> = <code title=\"6.283185307179586\">6.283185307179586</code><br />\n      Two PI, <i class=\"math\">PI * 2</i>, aka <i>Tau</i> \n      (<code>float</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"PI3\"></a><span class=\"summary-name\">PI3</span> = <code title=\"9.42477796076938\">9.42477796076938</code><br />\n      Three PI, <i class=\"math\">PI * 3</i> (<code>float</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"PI3_2\"></a><span class=\"summary-name\">PI3_2</span> = <code title=\"4.71238898038469\">4.71238898038469</code><br />\n      One and a half PI, <i class=\"math\">PI * 3 / 2</i> \n      (<code>float</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"PI4\"></a><span class=\"summary-name\">PI4</span> = <code title=\"12.566370614359172\">12.566370614359172</code><br />\n      Four PI, <i class=\"math\">PI * 4</i> (<code>float</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"PI_2\"></a><span class=\"summary-name\">PI_2</span> = <code title=\"1.5707963267948966\">1.5707963267948966</code><br />\n      Half PI, <i class=\"math\">PI / 2</i> (<code>float</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"PI_3\"></a><span class=\"summary-name\">PI_3</span> = <code title=\"1.0471975511965976\">1.0471975511965976</code><br />\n      One third PI, <i class=\"math\">PI / 3</i> (<code>float</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"PI_4\"></a><span class=\"summary-name\">PI_4</span> = <code title=\"0.7853981633974483\">0.7853981633974483</code><br />\n      Quarter PI, <i class=\"math\">PI / 4</i> (<code>float</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"PI_6\"></a><span class=\"summary-name\">PI_6</span> = <code title=\"0.5235987755982988\">0.5235987755982988</code><br />\n      One sixth PI, <i class=\"math\">PI / 6</i> (<code>float</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"R_FM\"></a><span class=\"summary-name\">R_FM</span> = <code title=\"6371000.0\">6371000.0</code><br />\n      Former FAI-Sphere earth radius (<code>meter</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"R_GM\"></a><span class=\"summary-name\">R_GM</span> = <code title=\"6371230.0\">6371230.0</code><br />\n      Average earth radius, distance to geoid surface (<code>meter</code>)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"R_KM\"></a><span class=\"summary-name\">R_KM</span> = <code title=\"6371.0087714149995\">6371.0087714149995</code><br />\n      Mean (spherical) earth radius (<code>Km</code>, kilometer).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"R_M\"></a><span class=\"summary-name\">R_M</span> = <code title=\"6371008.771415\">6371008.771415</code><br />\n      Mean (spherical) earth radius (<code>meter</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"R_MA\"></a><span class=\"summary-name\">R_MA</span> = <code title=\"6378137.0\">6378137.0</code><br />\n      Equatorial earth radius (<code>meter</code>), WGS84, EPSG:3785.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"R_MB\"></a><span class=\"summary-name\">R_MB</span> = <code title=\"6356752.3\">6356752.3</code><br />\n      Polar earth radius (<code>meter</code>), WGS84, EPSG:3785.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"R_NM\"></a><span class=\"summary-name\">R_NM</span> = <code title=\"3440.06953100162\">3440.06953100162</code><br />\n      Mean (spherical) earth radius (<code>NM</code>, nautical miles).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"R_QM\"></a><span class=\"summary-name\">R_QM</span> = <code title=\"6372797.560856\">6372797.560856</code><br />\n      Earth' (triaxial) quadratic mean radius (<code>meter</code>)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"R_SM\"></a><span class=\"summary-name\">R_SM</span> = <code title=\"3958.7613160486508\">3958.7613160486508</code><br />\n      Mean (spherical) earth radius (<code>SM</code>, statute miles).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"R_VM\"></a><span class=\"summary-name\">R_VM</span> = <code title=\"6366707.0194937\">6366707.0194937</code><br />\n      Aviation/Navigation earth radius (<code>meter</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy-module.html#RefFrames\" class=\"summary-name\">RefFrames</a> = <code title=\"RefFrames.ETRF89: RefFrame(name='ETRF89', epoch=1989, datum=Datums.GRS\\\n80),\nRefFrames.NAD83cors96: RefFrame(name='NAD83cors96', epoch=1997, datum=\\\nDatums.GRS80),\nRefFrames.GDA2020: RefFrame(name='GDA2020', epoch=2020, datum=Datums.G\\\nRS80),\nRefFrames.ETRF92: RefFrame(name='ETRF92', epoch=1992, datum=Datums.GRS\\\n80),\n...\">RefFrames.ETRF89: RefFrame(name='ETRF89', epoch=19<code class=\"variable-ellipsis\">...</code></code><br />\n      Registered, predefined <a href=\"pygeodesy.trf.RefFrame-class.html\" \n      class=\"link\">reference frames</a> (<code>enum-like</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"S_DEG\"></a><span class=\"summary-name\">S_DEG</span> = <code title=\"'\\xc2\\xb0'\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">&deg;</code><code class=\"variable-quote\">'</code></code><br />\n      Degrees symbol, default <code>&quot;&#176;&quot;</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"S_DMS\"></a><span class=\"summary-name\">S_DMS</span> = <code title=\"True\">True</code><br />\n      If <code>True</code>, include, otherwise cancel all DMS symbols, \n      default <code>True</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"S_MIN\"></a><span class=\"summary-name\">S_MIN</span> = <code title=\"'\\xe2\\x80\\xb2'\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">\\xe2\\x80\\xb2</code><code class=\"variable-quote\">'</code></code><br />\n      Minutes symbol, default <code>&quot;&#8242;&quot;</code> aka <i>PRIME</i>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"S_RAD\"></a><span class=\"summary-name\">S_RAD</span> = <code title=\"''\">''</code><br />\n      Radians symbol, default <code>&quot;&quot;</code> aka <a \n      href=\"pygeodesy-module.html#NN\" class=\"link\">NN</a>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"S_SEC\"></a><span class=\"summary-name\">S_SEC</span> = <code title=\"'\\xe2\\x80\\xb3'\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">&Prime;</code><code class=\"variable-quote\">'</code></code><br />\n      Seconds symbol, default <code>&quot;&#8243;&quot;</code> aka \n      <i>DOUBLE_PRIME</i>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"S_SEP\"></a><span class=\"summary-name\">S_SEP</span> = <code title=\"''\">''</code><br />\n      Separator between <code>deg&#176;|min&#8242;|sec&#8243;|suffix</code>, default \n      <code>&quot;&quot;</code> aka <a href=\"pygeodesy-module.html#NN\" \n      class=\"link\">NN</a>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"SouthPole\"></a><span class=\"summary-name\">SouthPole</span> = <code title=\"_N_Vector(0, 0, -1)\">_N_Vector(0, 0, -1)</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy-module.html#Transforms\" class=\"summary-name\">Transforms</a> = <code title=\"Transforms.OSGB36: Transform(name='OSGB36', tx=-446.45, ty=125.16, tz=\\\n-542.06, s1=1.0, rx=-7.2819e-07, ry=-1.1975e-06, rz=-4.0826e-06, s=20.\\\n489, sx=-0.1502, sy=-0.247, sz=-0.8421),\nTransforms.NAD83: Transform(name='NAD83', tx=1.004, ty=-1.91, tz=-0.51\\\n5, s1=1.0, rx=1.2945e-07, ry=1.6484e-09, rz=5.333e-08, s=-0.0015, sx=0\\\n.0267, sy=0.00034, sz=0.011),\nTransforms.WGS84: Transform(name='WGS84', tx=0.0, ty=0.0, tz=0.0, s1=1\\\n.0, rx=0.0, ry=0.0, rz=0.0, s=0.0, sx=0.0, sy=0.0, sz=0.0),\n...\">Transforms.OSGB36: Transform(name='OSGB36', tx=-4<code class=\"variable-ellipsis\">...</code></code><br />\n      Registered, predefined <a \n      href=\"pygeodesy.datums.Transform-class.html\" \n      class=\"link\">transforms</a> (<code>enum-like</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy-module.html#Triaxial3s\" class=\"summary-name\">Triaxial3s</a> = <code title=\"Triaxial3s.WGS84_3r: Triaxial3(name='WGS84_3r', a=6378172, b=6378102, \\\nc=6356752, k2=0.996726547, kp2=0.003273453, volume=1083207266220584468\\\n480, area=510065604942135.875, R2=6371007.076110449)\">Triaxial3s.WGS84_3r: Triaxial3(name='WGS84_3r', a<code class=\"variable-ellipsis\">...</code></code><br />\n      Registered, predefined <a \n      href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html\" \n      class=\"link\">triaxial3 ellipsoids</a> (<code>enum-like</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"Triaxials\"></a><span class=\"summary-name\">Triaxials</span> = <code title=\"\"></code><br />\n      Registered, predefined <a \n      href=\"pygeodesy.triaxials.triaxial5.Triaxial-class.html\" \n      class=\"link\">triaxial ellipsoids</a> (<code>enum-like</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"isLazy\"></a><span class=\"summary-name\">isLazy</span> = <code title=\"None\">None</code><br />\n      Lazy import setting (<code>int</code> 0, 1, 2 or 3+) from \n      <code>env</code> variable <code>PYGEODESY_LAZY_IMPORT</code>, or \n      <code>None</code> if <code>lazy import</code> is not supported or not\n      enabled, or <code>False</code> if initializing <code>lazy \n      import</code> failed.\n    </td>\n  </tr>\n</table>\n<!-- ==================== FUNCTION DETAILS ==================== -->\n<a name=\"section-FunctionDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Function Details</span></td>\n</tr>\n</table>\n<a name=\"Fsum2product\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">Fsum2product</span>&nbsp;(<span class=\"sig-arg\">*xs</span>,\n        <span class=\"sig-arg\">**kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED on 2024.09.19, use <a \n  href=\"pygeodesy.fsums.Fsum-class.html\" \n  class=\"link\">Fsum</a><code>(*<b>xs</b>, <b>f2product</b>=True, \n  ...)</code>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"NM2m\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">NM2m</span>&nbsp;(<span class=\"sig-arg\">nm</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert a length in nautical miles to meter (<code>m</code>).</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>nm</code></strong> - Length in nautical miles (<code>scalar</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Length in meter (<code>float</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>nm</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"SM2m\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">SM2m</span>&nbsp;(<span class=\"sig-arg\">sm</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert a length in statute miles to meter (<code>m</code>).</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>sm</code></strong> - Length in statute miles (<code>scalar</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Length in meter (<code>float</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>sm</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"SinCos2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">SinCos2</span>&nbsp;(<span class=\"sig-arg\">x</span>,\n        <span class=\"sig-arg\">unit</span>=<span class=\"sig-default\">&lt;class 'pygeodesy.units.Radians'&gt;</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Get <code>sin</code> and <code>cos</code> of <i>typed</i> angle.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>x</code></strong> - Angle (<a href=\"pygeodesy.units.Degrees-class.html\" \n          class=\"link\">Degrees</a>, <a \n          href=\"pygeodesy.units.Radians-class.html\" \n          class=\"link\">Radians</a> or scalar <code>radians</code>).</li>\n        <li><strong class=\"pname\"><code>unit</code></strong> - The <code><b>x</b></code> unit (<a \n          href=\"pygeodesy.units.Degrees-class.html\" \n          class=\"link\">Degrees</a>, <a \n          href=\"pygeodesy.units.Radians-class.html\" \n          class=\"link\">Radians</a>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>2-Tuple (<code>sin(<b>x</b>)</code>, <code>cos(<b>x</b>)</code>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"UtmUps\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">UtmUps</span>&nbsp;(<span class=\"sig-arg\">zone</span>,\n        <span class=\"sig-arg\">hemipole</span>,\n        <span class=\"sig-arg\">easting</span>,\n        <span class=\"sig-arg\">northing</span>,\n        <span class=\"sig-arg\">band</span>=<span class=\"sig-default\">''</span>,\n        <span class=\"sig-arg\">datum</span>=<span class=\"sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"sig-arg\">falsed</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Class-like function to create a UTM/UPS coordinate.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>zone</code></strong> - The UTM zone with/-out <i>longitudinal</i> Band or UPS zone \n          <code>0</code> or <code>&quot;00&quot;</code> with/-out \n          <i>polar</i> Band (<code>str</code> or <code>int</code>).</li>\n        <li><strong class=\"pname\"><code>hemipole</code></strong> - UTM hemisphere or UPS top/center of projection (<code>str</code>,\n          <code>'N[orth]'</code> or <code>'S[outh]'</code>).</li>\n        <li><strong class=\"pname\"><code>easting</code></strong> - Easting, see <b><code>falsed</code></b> (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>northing</code></strong> - Northing, see <b><code>falsed</code></b> (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>band</code></strong> - Optional, UTM <i>latitudinal</i> <code>'C'|'D'|..|'W'|'X'</code> \n          or UPS <i>polar</i> Band letter <code>'A'|'B'|'Y'|'Z'</code> Band\n          letter (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>datum</code></strong> - The coordinate's datum (<a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>).</li>\n        <li><strong class=\"pname\"><code>falsed</code></strong> - If <code>True</code>, both <b><code>easting</code></b> and \n          <b><code>northing</code></b> are falsed (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <a href=\"pygeodesy.utm.Utm-class.html\" \n          class=\"link\">Utm</a> or <a href=\"pygeodesy.ups.Ups-class.html\" \n          class=\"link\">Ups</a> <code><b>name</b>=NN</code> \n          (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>New UTM or UPS instance (<a href=\"pygeodesy.utm.Utm-class.html\" \n          class=\"link\">Utm</a> or <a href=\"pygeodesy.ups.Ups-class.html\" \n          class=\"link\">Ups</a>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>datum</code></b>.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.utmups.UTMUPSError-class.html\">UTMUPSError</a></strong></code> - UTM or UPS validation failed.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Classes <a href=\"pygeodesy.utm.Utm-class.html\" class=\"link\">Utm</a>\n        and <a href=\"pygeodesy.ups.Ups-class.html\" class=\"link\">Ups</a> and\n        <i>Karney</i>'s <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1UTMUPS.html\"\n        target=\"_top\">UTMUPS</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"a_b2e\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">a_b2e</span>&nbsp;(<span class=\"sig-arg\">a</span>,\n        <span class=\"sig-arg\">b</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return <code>e</code>, the <i>1st eccentricity</i> for a given \n  <i>equatorial</i> and <i>polar</i> radius.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>a</code></strong> - Equatorial radius (<code>scalar</code> &gt; 0).</li>\n        <li><strong class=\"pname\"><code>b</code></strong> - Polar radius (<code>scalar</code> &gt; 0).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The <i>unsigned</i>, (1st) eccentricity (<code>float</code> or \n          <code>0</code>), <i class=\"math\">sqrt(1 - (b / a)**2)</i>.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        The result is always <i>non-negative</i> and <code>0</code> for \n        <i>near-spherical</i> ellipsoids.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"a_b2e2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">a_b2e2</span>&nbsp;(<span class=\"sig-arg\">a</span>,\n        <span class=\"sig-arg\">b</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return <code>e2</code>, the <i>1st eccentricity squared</i> for a \n  given <i>equatorial</i> and <i>polar</i> radius.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>a</code></strong> - Equatorial radius (<code>scalar</code> &gt; 0).</li>\n        <li><strong class=\"pname\"><code>b</code></strong> - Polar radius (<code>scalar</code> &gt; 0).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The <i>signed</i>, (1st) eccentricity <i>squared</i> \n          (<code>float</code> or <code>0</code>), <i class=\"math\">1 - (b / \n          a)**2</i>.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        The result is positive for <i>oblate</i>, negative for \n        <i>prolate</i> or <code>0</code> for <i>near-spherical</i> \n        ellipsoids.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"a_b2e22\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">a_b2e22</span>&nbsp;(<span class=\"sig-arg\">a</span>,\n        <span class=\"sig-arg\">b</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return <code>e22</code>, the <i>2nd eccentricity squared</i> for a \n  given <i>equatorial</i> and <i>polar</i> radius.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>a</code></strong> - Equatorial radius (<code>scalar</code> &gt; 0).</li>\n        <li><strong class=\"pname\"><code>b</code></strong> - Polar radius (<code>scalar</code> &gt; 0).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The <i>signed</i>, 2nd eccentricity <i>squared</i> \n          (<code>float</code> or <code>0</code>), <i class=\"math\">(a / \n          b)**2 - 1</i>.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        The result is positive for <i>oblate</i>, negative for \n        <i>prolate</i> or <code>0</code> for <i>near-spherical</i> \n        ellipsoids.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"a_b2e32\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">a_b2e32</span>&nbsp;(<span class=\"sig-arg\">a</span>,\n        <span class=\"sig-arg\">b</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return <code>e32</code>, the <i>3rd eccentricity squared</i> for a \n  given <i>equatorial</i> and <i>polar</i> radius.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>a</code></strong> - Equatorial radius (<code>scalar</code> &gt; 0).</li>\n        <li><strong class=\"pname\"><code>b</code></strong> - Polar radius (<code>scalar</code> &gt; 0).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The <i>signed</i>, 3rd eccentricity <i>squared</i> \n          (<code>float</code> or <code>0</code>), <i class=\"math\">(a**2 - \n          b**2) / (a**2 + b**2)</i>.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        The result is positive for <i>oblate</i>, negative for \n        <i>prolate</i> or <code>0</code> for <i>near-spherical</i> \n        ellipsoids.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"a_b2f\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">a_b2f</span>&nbsp;(<span class=\"sig-arg\">a</span>,\n        <span class=\"sig-arg\">b</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return <code>f</code>, the <i>flattening</i> for a given \n  <i>equatorial</i> and <i>polar</i> radius.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>a</code></strong> - Equatorial radius (<code>scalar</code> &gt; 0).</li>\n        <li><strong class=\"pname\"><code>b</code></strong> - Polar radius (<code>scalar</code> &gt; 0).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The flattening (<code>scalar</code> or <code>0</code>), <i \n          class=\"math\">(a - b) / a</i>.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        The result is positive for <i>oblate</i>, negative for \n        <i>prolate</i> or <code>0</code> for <i>near-spherical</i> \n        ellipsoids.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"a_b2f2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">a_b2f2</span>&nbsp;(<span class=\"sig-arg\">a</span>,\n        <span class=\"sig-arg\">b</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return <code>f2</code>, the <i>2nd flattening</i> for a given \n  <i>equatorial</i> and <i>polar</i> radius.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>a</code></strong> - Equatorial radius (<code>scalar</code> &gt; 0).</li>\n        <li><strong class=\"pname\"><code>b</code></strong> - Polar radius (<code>scalar</code> &gt; 0).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The <i>signed</i>, 2nd flattening (<code>scalar</code> or \n          <code>0</code>), <i class=\"math\">(a - b) / b</i>.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        The result is positive for <i>oblate</i>, negative for \n        <i>prolate</i> or <code>0</code> for <i>near-spherical</i> \n        ellipsoids.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"a_b2f_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">a_b2f_</span>&nbsp;(<span class=\"sig-arg\">a</span>,\n        <span class=\"sig-arg\">b</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return <code>f_</code>, the <i>inverse flattening</i> for a given \n  <i>equatorial</i> and <i>polar</i> radius.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>a</code></strong> - Equatorial radius (<code>scalar</code> &gt; 0).</li>\n        <li><strong class=\"pname\"><code>b</code></strong> - Polar radius (<code>scalar</code> &gt; 0).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The inverse flattening (<code>scalar</code> or <code>0</code>), \n          <i class=\"math\">a / (a - b)</i>.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        The result is positive for <i>oblate</i>, negative for \n        <i>prolate</i> or <code>0</code> for <i>near-spherical</i> \n        ellipsoids.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"a_b2n\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">a_b2n</span>&nbsp;(<span class=\"sig-arg\">a</span>,\n        <span class=\"sig-arg\">b</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return <code>n</code>, the <i>3rd flattening</i> for a given \n  <i>equatorial</i> and <i>polar</i> radius.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>a</code></strong> - Equatorial radius (<code>scalar</code> &gt; 0).</li>\n        <li><strong class=\"pname\"><code>b</code></strong> - Polar radius (<code>scalar</code> &gt; 0).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The <i>signed</i>, 3rd flattening (<code>scalar</code> or \n          <code>0</code>), <i class=\"math\">(a - b) / (a + b)</i>.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        The result is positive for <i>oblate</i>, negative for \n        <i>prolate</i> or <code>0</code> for <i>near-spherical</i> \n        ellipsoids.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"a_f2b\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">a_f2b</span>&nbsp;(<span class=\"sig-arg\">a</span>,\n        <span class=\"sig-arg\">f</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return <code>b</code>, the <i>polar</i> radius for a given \n  <i>equatorial</i> radius and <i>flattening</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>a</code></strong> - Equatorial radius (<code>scalar</code> &gt; 0).</li>\n        <li><strong class=\"pname\"><code>f</code></strong> - Flattening (<code>scalar</code> &lt; 1, negative for \n          <i>prolate</i>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The polar radius (<code>float</code>), <i class=\"math\">a * (1 - \n          f)</i>.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"a_f_2b\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">a_f_2b</span>&nbsp;(<span class=\"sig-arg\">a</span>,\n        <span class=\"sig-arg\">f_</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return <code>b</code>, the <i>polar</i> radius for a given \n  <i>equatorial</i> radius and <i>inverse flattening</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>a</code></strong> - Equatorial radius (<code>scalar</code> &gt; 0).</li>\n        <li><strong class=\"pname\"><code>f_</code></strong> - Inverse flattening (<code>scalar</code> &gt;&gt;&gt; 1).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The polar radius (<code>float</code>), <i class=\"math\">a * (f_ - \n          1) / f_</i>.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"acre2ha\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">acre2ha</span>&nbsp;(<span class=\"sig-arg\">acres</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert an area in <i>acres</i> to <i>hectares</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>acres</code></strong> - Area in acres (<code>scalar</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Area in hectares (<code>float</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>acres</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"acre2m2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">acre2m2</span>&nbsp;(<span class=\"sig-arg\">acres</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert an area in <i>acres</i> to <i>square</i> meter.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>acres</code></strong> - Area in acres (<code>scalar</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Area in <code>square</code> meter (<code>float</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>acres</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"agdf\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">agdf</span>&nbsp;(<span class=\"sig-arg\">phi</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Inverse <a href=\"https://WikiPedia.org/wiki/Gudermannian_function\" \n  target=\"_top\">Gudermannian function</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>phi</code></strong> - Angle (<code>radians</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Gudermannian (psi, <code>float</code>).</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.utily-module.html#gdf\" \n        class=\"link\">gdf</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"anStr\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">anStr</span>&nbsp;(<span class=\"sig-arg\">name</span>,\n        <span class=\"sig-arg\">OKd</span>=<span class=\"sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">._-</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"sig-arg\">sub</span>=<span class=\"sig-default\">'_'</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use function <a href=\"pygeodesy.streprs-module.html#anstr\"\n  class=\"link\">pygeodesy.anstr</a>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"angle2chord\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">angle2chord</span>&nbsp;(<span class=\"sig-arg\">rad</span>,\n        <span class=\"sig-arg\">radius</span>=<span class=\"sig-default\">6371008.771415</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Get the chord length of a (central) angle or <i>angular</i> \n  distance.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>rad</code></strong> - Central angle (<code>radians</code>).</li>\n        <li><strong class=\"pname\"><code>radius</code></strong> - Mean earth radius (<code>meter</code>, conventionally), datum (<a\n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>) \n          or ellipsoid (<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\"\n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a> or <a \n          href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>) to use or <code>None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Chord length (<code>meter</code>, same units as \n          <b><code>radius</code></b> or if <code><b>radius</b> is \n          None</code>, <code>radians</code>).</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.formy-module.html#chord2angle\" \n        class=\"link\">chord2angle</a>, method <a \n        href=\"pygeodesy.sphericalNvector.LatLon-class.html#intermediateChordTo\"\n        class=\"link\">intermediateChordTo</a> and <a \n        href=\"https://WikiPedia.org/wiki/Great-circle_distance#Relation_between_central_angle_and_chord_length\"\n        target=\"_top\">great-circle-distance</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"anstr\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">anstr</span>&nbsp;(<span class=\"sig-arg\">name</span>,\n        <span class=\"sig-arg\">OKd</span>=<span class=\"sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">._-</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"sig-arg\">sub</span>=<span class=\"sig-default\">'_'</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Make a valid name of alphanumeric and OKd characters.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>name</code></strong> - The original name (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>OKd</code></strong> - Other acceptable characters (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>sub</code></strong> - Substitute for invalid charactes (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The modified name (<code>str</code>).</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        Leading and trailing whitespace characters are removed, \n        intermediate whitespace characters are coalesced and substituted.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"antipode\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">antipode</span>&nbsp;(<span class=\"sig-arg\">lat</span>,\n        <span class=\"sig-arg\">lon</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the antipode, the point diametrically opposite to a given point\n  in <code>degrees</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat</code></strong> - Latitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lon</code></strong> - Longitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.namedTuples.LatLon2Tuple-class.html\" \n          class=\"link\">LatLon2Tuple</a><code>(lat, lon)</code>.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Functions <a href=\"pygeodesy.formy-module.html#antipode_\" \n        class=\"link\">antipode_</a> and <a \n        href=\"pygeodesy.formy-module.html#normal\" class=\"link\">normal</a> \n        and <a \n        href=\"https://CRAN.R-Project.org/web/packages/geosphere/geosphere.pdf\"\n        target=\"_top\">Geosphere</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"antipode_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">antipode_</span>&nbsp;(<span class=\"sig-arg\">phi</span>,\n        <span class=\"sig-arg\">lam</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the antipode, the point diametrically opposite to a given point\n  in <code>radians</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>phi</code></strong> - Latitude (<code>radians</code>).</li>\n        <li><strong class=\"pname\"><code>lam</code></strong> - Longitude (<code>radians</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.namedTuples.PhiLam2Tuple-class.html\" \n          class=\"link\">PhiLam2Tuple</a><code>(phi, lam)</code>.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Functions <a href=\"pygeodesy.formy-module.html#antipode\" \n        class=\"link\">antipode</a> and <a \n        href=\"pygeodesy.formy-module.html#normal_\" class=\"link\">normal_</a>\n        and <a \n        href=\"https://CRAN.R-Project.org/web/packages/geosphere/geosphere.pdf\"\n        target=\"_top\">Geosphere</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"areaOf\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">areaOf</span>&nbsp;(<span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">adjust</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">radius</span>=<span class=\"sig-default\">6371008.771415</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">True</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Approximate the area of a polygon or composite.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>points</code></strong> - The polygon points or clips (<code>LatLon</code>[], <a \n          href=\"pygeodesy.booleans.BooleanFHP-class.html\" \n          class=\"link\">BooleanFHP</a> or <a \n          href=\"pygeodesy.booleans.BooleanGH-class.html\" \n          class=\"link\">BooleanGH</a>).</li>\n        <li><strong class=\"pname\"><code>adjust</code></strong> - Adjust the wrapped, unrolled longitudinal delta by the cosine of \n          the mean latitude (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>radius</code></strong> - Mean earth radius (<code>meter</code>) or <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll the \n          <b><code>points</code></b> (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Approximate area (<i>square</i> <code>meter</code>, same units as\n          <b><code>radius</code></b> or <code>radians</code> <i>squared</i>\n          if <code><b>radius</b> is None</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.PointsError-class.html\">PointsError</a></strong></code> - Insufficient number of <b><code>points</code></b></li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Some <b><code>points</code></b> are not <code>LatLon</code>.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>radius</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        This area approximation has limited accuracy and is ill-suited for \n        regions exceeding several hundred Km or Miles or with near-polar \n        latitudes.\n      </p>\n      <p><strong>See Also:</strong>\n        <a href=\"pygeodesy.sphericalNvector-module.html#areaOf\" \n        class=\"link\">sphericalNvector.areaOf</a>, <a \n        href=\"pygeodesy.sphericalTrigonometry-module.html#areaOf\" \n        class=\"link\">sphericalTrigonometry.areaOf</a>, <a \n        href=\"pygeodesy.ellipsoidalExact-module.html#areaOf\" \n        class=\"link\">ellipsoidalExact.areaOf</a> and <a \n        href=\"pygeodesy.ellipsoidalKarney-module.html#areaOf\" \n        class=\"link\">ellipsoidalKarney.areaOf</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"areaof\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">areaof</span>&nbsp;(<span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">adjust</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">radius</span>=<span class=\"sig-default\">6371008.771415</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">True</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use function <a href=\"pygeodesy.points-module.html#areaOf\"\n  class=\"link\">pygeodesy.areaOf</a>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"atan1d\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">atan1d</span>&nbsp;(<span class=\"sig-arg\">y</span>,\n        <span class=\"sig-arg\">x</span>=<span class=\"sig-default\">1.0</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return <code>atan(<b>y</b> / <b>x</b>)</code> angle in \n  <code>degrees</code> <i class=\"math\">[-90..+90]</i> using \n  <code>atan2d</code> for consistency and to avoid \n  <code>ZeroDivisionError</code>.</p>\n  <dl class=\"fields\">\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.utily-module.html#atan2d\" \n        class=\"link\">pygeodesy.atan2d</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"atan2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">atan2</span>&nbsp;(<span class=\"sig-arg\">y</span>,\n        <span class=\"sig-arg\">x</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the arc tangent (measured in radians) of y/x. Unlike atan(y/x),\n  the signs of both x and y are considered.</p>\n  <dl class=\"fields\">\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"atan2b\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">atan2b</span>&nbsp;(<span class=\"sig-arg\">y</span>,\n        <span class=\"sig-arg\">x</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return <code>atan2(<b>y</b>, <b>x</b>)</code> in degrees <i \n  class=\"math\">[0..+360), counter-clockwise</i>.</p>\n  <dl class=\"fields\">\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.utily-module.html#atan2p\" \n        class=\"link\">pygeodesy.atan2p</a> and <a \n        href=\"pygeodesy.utily-module.html#atan2d\" \n        class=\"link\">pygeodesy.atan2d</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"atan2d\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">atan2d</span>&nbsp;(<span class=\"sig-arg\">y</span>,\n        <span class=\"sig-arg\">x</span>,\n        <span class=\"sig-arg\">reverse</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return <code>atan2(<b>y</b>, <b>x</b>)</code> in degrees <i \n  class=\"math\">[-180..+180]</i>, optionally <i>reversed</i> (by 180 degrees\n  for <code>azimuth</code>s).</p>\n  <dl class=\"fields\">\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <i>Karney</i>'s C++ function <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Math.html\"\n        target=\"_top\">Math.atan2d</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"atan2p\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">atan2p</span>&nbsp;(<span class=\"sig-arg\">y</span>,\n        <span class=\"sig-arg\">x</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return <code>atan2(<b>y</b>, <b>x</b>)</code> in radians <i \n  class=\"math\">[0..+PI2), counter-clockwise</i>.</p>\n  <dl class=\"fields\">\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.utily-module.html#atan2b\" \n        class=\"link\">pygeodesy.atan2b</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"atand\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">atand</span>&nbsp;(<span class=\"sig-arg\">x</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED on 2023.09.28, use function <a \n  href=\"pygeodesy.utily-module.html#atan1d\" \n  class=\"link\">pygeodesy.atan1d</a>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"attrs\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">attrs</span>&nbsp;(<span class=\"sig-arg\">inst</span>,\n        <span class=\"sig-arg\">*names</span>,\n        <span class=\"sig-arg\">**Nones_True__pairs_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Get instance attributes as <i>name=value</i> strings, with \n  <code>float</code>s formatted by function <a \n  href=\"pygeodesy.streprs-module.html#fstr\" class=\"link\">fstr</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>inst</code></strong> - The instance (any <code>type</code>).</li>\n        <li><strong class=\"pname\"><code>names</code></strong> - The attribute names, all other positional (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>Nones_True__pairs_kwds</code></strong> - Keyword argument for function <a \n          href=\"pygeodesy.streprs-module.html#pairs\" \n          class=\"link\">pairs</a>, except <code><b>Nones</b>=True</code> to \n          in-/exclude missing or <code>None</code>-valued attributes.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <code>tuple(<b>sep</b>.join(t) for t in zip(<b>names</b>, \n          reprs(values, ...)))</code> of <code>str</code>s.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"b_f2a\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">b_f2a</span>&nbsp;(<span class=\"sig-arg\">b</span>,\n        <span class=\"sig-arg\">f</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return <code>a</code>, the <i>equatorial</i> radius for a given \n  <i>polar</i> radius and <i>flattening</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>b</code></strong> - Polar radius (<code>scalar</code> &gt; 0).</li>\n        <li><strong class=\"pname\"><code>f</code></strong> - Flattening (<code>scalar</code> &lt; 1, negative for \n          <i>prolate</i>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The equatorial radius (<code>float</code>), <i class=\"math\">b / \n          (1 - f)</i>.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"b_f_2a\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">b_f_2a</span>&nbsp;(<span class=\"sig-arg\">b</span>,\n        <span class=\"sig-arg\">f_</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return <code>a</code>, the <i>equatorial</i> radius for a given \n  <i>polar</i> radius and <i>inverse flattening</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>b</code></strong> - Polar radius (<code>scalar</code> &gt; 0).</li>\n        <li><strong class=\"pname\"><code>f_</code></strong> - Inverse flattening (<code>scalar</code> &gt;&gt;&gt; 1).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The equatorial radius (<code>float</code>), <i class=\"math\">b * \n          f_ / (f_ - 1)</i>.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"bearing\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">bearing</span>&nbsp;(<span class=\"sig-arg\">lat1</span>,\n        <span class=\"sig-arg\">lon1</span>,\n        <span class=\"sig-arg\">lat2</span>,\n        <span class=\"sig-arg\">lon2</span>,\n        <span class=\"sig-arg\">**final_wrap</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the initial or final bearing (forward or reverse azimuth) \n  between two (spherical) points.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat1</code></strong> - Start latitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lon1</code></strong> - Start longitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lat2</code></strong> - End latitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lon2</code></strong> - End longitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>final_wrap</code></strong> - Optional keyword arguments for function <a \n          href=\"pygeodesy.formy-module.html#bearing_\" \n          class=\"link\">pygeodesy.bearing_</a>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Initial or final bearing (compass <code>degrees360</code>) or \n          zero if both points coincide.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"bearingDMS\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">bearingDMS</span>&nbsp;(<span class=\"sig-arg\">bearing</span>,\n        <span class=\"sig-arg\">form</span>=<span class=\"sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">d</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"sig-arg\">prec</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">sep</span>=<span class=\"sig-default\">''</span>,\n        <span class=\"sig-arg\">**s_D_M_S</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert bearing to a string (without compass point suffix).</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>bearing</code></strong> - Bearing from North (compass <code>degrees360</code>).</li>\n        <li><strong class=\"pname\"><code>form</code></strong> - Format specifier for <b><code>deg</code></b> (<code>str</code> or\n          <code>F_...</code>).</li>\n        <li><strong class=\"pname\"><code>prec</code></strong> - Number of decimal digits (0..9 or <code>None</code> for default).</li>\n        <li><strong class=\"pname\"><code>sep</code></strong> - Separator between degrees, minutes, seconds, suffix \n          (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>s_D_M_S</code></strong> - Optional keyword arguments to override any or cancel all DMS \n          symbol suffixes, see function <a \n          href=\"pygeodesy.dms-module.html#toDMS\" \n          class=\"link\">pygeodesy.toDMS</a>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Compass degrees per the specified <b><code>form</code></b> \n          (<code>str</code>).</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.dms-module.html#toDMS\" \n        class=\"link\">pygeodesy.toDMS</a> and its <b>Notes</b> for further \n        details.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"bearing_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">bearing_</span>&nbsp;(<span class=\"sig-arg\">phi1</span>,\n        <span class=\"sig-arg\">lam1</span>,\n        <span class=\"sig-arg\">phi2</span>,\n        <span class=\"sig-arg\">lam2</span>,\n        <span class=\"sig-arg\">final</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the initial or final bearing (forward or reverse azimuth) \n  between two (spherical) points.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>phi1</code></strong> - Start latitude (<code>radians</code>).</li>\n        <li><strong class=\"pname\"><code>lam1</code></strong> - Start longitude (<code>radians</code>).</li>\n        <li><strong class=\"pname\"><code>phi2</code></strong> - End latitude (<code>radians</code>).</li>\n        <li><strong class=\"pname\"><code>lam2</code></strong> - End longitude (<code>radians</code>).</li>\n        <li><strong class=\"pname\"><code>final</code></strong> - If <code>True</code>, return the final, otherwise the initial \n          bearing (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll \n          <b><code>phi2</code></b> and <b><code>lam2</code></b> \n          (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Initial or final bearing (compass <code>radiansPI2</code>) or \n          zero if both points coincide.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"https://www.Movable-Type.co.UK/scripts/latlong.html\" \n        target=\"_top\">Bearing</a>, <a \n        href=\"https://www.EdWilliams.org/avform147.htm#Crs\" \n        target=\"_top\">Course between two points</a> and <a \n        href=\"https://web.Archive.org/web/20020630205931/https://MathForum.org/library/drmath/view/55417.html\"\n        target=\"_top\">Bearing Between Two Points</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"bounds\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">bounds</span>&nbsp;(<span class=\"sig-arg\">geohash</span>,\n        <span class=\"sig-arg\">LatLon</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**LatLon_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Returns the lower-left SW and upper-right NE corners of a geohash.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>geohash</code></strong> - To be &quot;bound&quot; (<a \n          href=\"pygeodesy.geohash.Geohash-class.html\" \n          class=\"link\">Geohash</a>).</li>\n        <li><strong class=\"pname\"><code>LatLon</code></strong> - Optional class to return the bounds (<code>LatLon</code>) or \n          <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>LatLon_kwds</code></strong> - Optional, additional <a href=pygeodesy-LatLon-attributes-table.html><b><code>LatLon</code></b></a> keyword \n          arguments, ignored if <code><b>LatLon</b> is None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.namedTuples.Bounds2Tuple-class.html\" \n          class=\"link\">Bounds2Tuple</a><code>(latlonSW, latlonNE)</code>, \n          each a <a href=pygeodesy-LatLon-attributes-table.html><b><code>LatLon</code></b></a> or if <code><b>LatLon</b> is \n          None</code>, a <a \n          href=\"pygeodesy.namedTuples.Bounds4Tuple-class.html\" \n          class=\"link\">Bounds4Tuple</a><code>(latS, lonW, latN, \n          lonE)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - The <b><code>geohash</code></b> is not a <a \n        href=\"pygeodesy.geohash.Geohash-class.html\" \n        class=\"link\">Geohash</a>, <code>LatLon</code> or <code>str</code> \n        or invalid <a href=pygeodesy-LatLon-attributes-table.html><b><code>LatLon</code></b></a> or invalid \n        <b><code>LatLon_kwds</code></b>.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.geohash.GeohashError-class.html\">GeohashError</a></strong></code> - Invalid or <code>null</code> <b><code>geohash</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"boundsOf\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">boundsOf</span>&nbsp;(<span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">LatLon</span>=<span class=\"sig-default\">None</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Determine the bottom-left SW and top-right NE corners of a path or \n  polygon.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>points</code></strong> - The path or polygon points (<code>LatLon</code>[]).</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll the \n          <b><code>points</code></b> (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>LatLon</code></strong> - Optional class to return the <code>bounds</code> corners \n          (<code>LatLon</code>) or <code>None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.namedTuples.Bounds2Tuple-class.html\" \n          class=\"link\">Bounds2Tuple</a><code>(latlonSW, latlonNE)</code>, \n          each a <a href=pygeodesy-LatLon-attributes-table.html><b><code>LatLon</code></b></a> or if <code><b>LatLon</b> is \n          None</code>, a <a \n          href=\"pygeodesy.namedTuples.Bounds4Tuple-class.html\" \n          class=\"link\">Bounds4Tuple</a><code>(latS, lonW, latN, \n          lonE)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.PointsError-class.html\">PointsError</a></strong></code> - Insufficient number of <b><code>points</code></b></li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Some <b><code>points</code></b> are not <code>LatLon</code>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.points-module.html#quadOf\" \n        class=\"link\">quadOf</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"bqrt\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">bqrt</span>&nbsp;(<span class=\"sig-arg\">x</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the 4-th, <i>bi-quadratic</i> or <i>quartic</i> root, <i \n  class=\"math\">x**(1 / 4)</i>, preserving <code>type(<b>x</b>)</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>x</code></strong> - Value (<code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><i>Quartic</i> root (<code>float</code> or an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeeError</strong></code> - Invalid <b><code>x</code></b>.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Negative <b><code>x</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Functions <a href=\"pygeodesy.fmath-module.html#zcrt\" \n        class=\"link\">zcrt</a> and <a \n        href=\"pygeodesy.fmath-module.html#zqrt\" class=\"link\">zqrt</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"callername\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">callername</span>&nbsp;(<span class=\"sig-arg\">up</span>=<span class=\"sig-default\">1</span>,\n        <span class=\"sig-arg\">dflt</span>=<span class=\"sig-default\">''</span>,\n        <span class=\"sig-arg\">source</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">underOK</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Get the name of the invoking callable.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>up</code></strong> - Number of call stack frames up (<code>int</code>).</li>\n        <li><strong class=\"pname\"><code>dflt</code></strong> - Default return value (<code>any</code>).</li>\n        <li><strong class=\"pname\"><code>source</code></strong> - Include source file name and line number (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>underOK</code></strong> - If <code>True</code>, private, internal callables are OK, \n          otherwise private callables are skipped (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The callable name (<code>str</code>) or <b><code>dflt</code></b> \n          if none found.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"cassini\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">cassini</span>&nbsp;(<span class=\"sig-arg\">pointA</span>,\n        <span class=\"sig-arg\">pointB</span>,\n        <span class=\"sig-arg\">pointC</span>,\n        <span class=\"sig-arg\">alpha</span>,\n        <span class=\"sig-arg\">beta</span>,\n        <span class=\"sig-arg\">useZ</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">**Clas_and_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>3-Point resection using <a \n  href=\"https://NL.WikiPedia.org/wiki/Achterwaartse_insnijding\" \n  target=\"_top\">Cassini</a>'s method.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>pointA</code></strong> - First point (<code>Cartesian</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <code>Vector3Tuple</code>, \n          <code>Vector4Tuple</code> or <code>Vector2Tuple</code> if \n          <code><b>useZ</b>=False</code>).</li>\n        <li><strong class=\"pname\"><code>pointB</code></strong> - Second point (<code>Cartesian</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <code>Vector3Tuple</code>, \n          <code>Vector4Tuple</code> or <code>Vector2Tuple</code> if \n          <code><b>useZ</b>=False</code>).</li>\n        <li><strong class=\"pname\"><code>pointC</code></strong> - Center point (<code>Cartesian</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <code>Vector3Tuple</code>, \n          <code>Vector4Tuple</code> or <code>Vector2Tuple</code> if \n          <code><b>useZ</b>=False</code>).</li>\n        <li><strong class=\"pname\"><code>alpha</code></strong> - Angle subtended by triangle side <b><code>pointA</code></b> to \n          <b><code>pointC</code></b> (<code>degrees</code>, non-negative).</li>\n        <li><strong class=\"pname\"><code>beta</code></strong> - Angle subtended by triangle side <b><code>pointB</code></b> to \n          <b><code>pointC</code></b> (<code>degrees</code>, non-negative).</li>\n        <li><strong class=\"pname\"><code>useZ</code></strong> - If <code>True</code>, use and interpolate the Z component, \n          otherwise force <code>z=INT0</code> (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>Clas_and_kwds</code></strong> - Optional class <code><b>Clas</b>=<b>pointA</b>.classof</code> to \n          return the survey point with optionally other \n          <b><code>Clas</code></b> keyword arguments to instantiate the \n          survey point.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The survey point, an instance of <b><code>Clas</code></b> or \n          <b><code>pointA</code></b>'s (sub-)class.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.resections.ResectionError-class.html\">ResectionError</a></strong></code> - Near-coincident, -colinear or -concyclic points or negative or \n        invalid <b><code>alpha</code></b> or <b><code>beta</code></b>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>pointA</code></b>, <b><code>pointB</code></b> or \n        <b><code>pointM</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        Typically, <b><code>pointC</code></b> is between \n        <b><code>pointA</code></b> and <b><code>pointB</code></b>.\n      </p>\n      <p><strong>See Also:</strong>\n        <a \n        href=\"https://Dokumen.tips/documents/three-point-resection-problem-introduction-kaestner-burkhardt-method.html\"\n        target=\"_top\">Three Point Resection Problem</a> and functions <a \n        href=\"pygeodesy.resections-module.html#collins5\" \n        class=\"link\">collins5</a>, <a \n        href=\"pygeodesy.resections-module.html#pierlot\" \n        class=\"link\">pierlot</a>, <a \n        href=\"pygeodesy.resections-module.html#pierlotx\" \n        class=\"link\">pierlotx</a> and <a \n        href=\"pygeodesy.resections-module.html#tienstra7\" \n        class=\"link\">tienstra7</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"cbrt\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">cbrt</span>&nbsp;(<span class=\"sig-arg\">x</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the cube root <i class=\"math\">x**(1/3)</i>, preserving \n  <code>type(<b>x</b>)</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>x</code></strong> - Value (<code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Cubic root (<code>float</code> or <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a>).</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Functions <a href=\"pygeodesy.fmath-module.html#cbrt2\" \n        class=\"link\">cbrt2</a> and <a \n        href=\"pygeodesy.fmath-module.html#sqrt3\" class=\"link\">sqrt3</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"cbrt2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">cbrt2</span>&nbsp;(<span class=\"sig-arg\">x</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the cube root <i>squared</i> <i class=\"math\">x**(2/3)</i>, \n  preserving <code>type(<b>x</b>)</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>x</code></strong> - Value (<code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Cube root <i>squared</i> (<code>float</code> or <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a>).</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Functions <a href=\"pygeodesy.fmath-module.html#cbrt\" \n        class=\"link\">cbrt</a> and <a \n        href=\"pygeodesy.fmath-module.html#sqrt3\" class=\"link\">sqrt3</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"centroidOf\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">centroidOf</span>&nbsp;(<span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">LatLon</span>=<span class=\"sig-default\">None</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Determine the centroid of a polygon.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>points</code></strong> - The polygon points (<code>LatLon</code>[]).</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll the \n          <b><code>points</code></b> (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>LatLon</code></strong> - Optional class to return the centroid (<code>LatLon</code>) or \n          <code>None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Centroid (<a href=pygeodesy-LatLon-attributes-table.html><b><code>LatLon</code></b></a>) or a <a \n          href=\"pygeodesy.namedTuples.LatLon2Tuple-class.html\" \n          class=\"link\">LatLon2Tuple</a><code>(lat, lon)</code> if \n          <code><b>LatLon</b> is None</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.PointsError-class.html\">PointsError</a></strong></code> - Insufficient number of <b><code>points</code></b></li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Some <b><code>points</code></b> are not <code>LatLon</code>.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - The <b><code>points</code></b> enclose a pole or near-zero area.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"https://WikiPedia.org/wiki/Centroid#Of_a_polygon\" \n        target=\"_top\">Centroid</a> and Paul Bourke's <a \n        href=\"https://www.SEAS.UPenn.edu/~ese502/lab-content/extra_materials/Polygon%20Area%20and%20Centroid.pdf\"\n        target=\"_top\">Calculating The Area And Centroid Of A Polygon</a>, \n        1988.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"chain2m\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">chain2m</span>&nbsp;(<span class=\"sig-arg\">chains</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert a length in <i>UK</i> chains to meter.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>chains</code></strong> - Length in chains (<code>scalar</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Length in <code>meter</code> (<code>float</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>chains</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"chord2angle\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">chord2angle</span>&nbsp;(<span class=\"sig-arg\">chord</span>,\n        <span class=\"sig-arg\">radius</span>=<span class=\"sig-default\">6371008.771415</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Get the (central) angle from a chord length or distance.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>chord</code></strong> - Length or distance (<code>meter</code>, same units as \n          <b><code>radius</code></b>).</li>\n        <li><strong class=\"pname\"><code>radius</code></strong> - Mean earth radius (<code>meter</code>, conventionally), datum (<a\n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>) \n          or ellipsoid (<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\"\n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a> or <a \n          href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>) to use.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Angle (<code>radians</code> with sign of \n          <b><code>chord</code></b>) or <code>0</code> if \n          <code><b>radius</b>=0</code>.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        The angle will exceed <code>PI</code> if <code><b>chord</b> &gt; \n        <b>radius</b> * 2</code>.\n      </p>\n      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.formy-module.html#angle2chord\" \n        class=\"link\">angle2chord</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"circin6\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">circin6</span>&nbsp;(<span class=\"sig-arg\">point1</span>,\n        <span class=\"sig-arg\">point2</span>,\n        <span class=\"sig-arg\">point3</span>,\n        <span class=\"sig-arg\">eps</span>=<span class=\"sig-default\">8.881784197001252e-16</span>,\n        <span class=\"sig-arg\">useZ</span>=<span class=\"sig-default\">True</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the radius and center of the <i>inscribed</i> aka \n  <i>Incircle</i> of a (2- or 3-D) triangle.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>point1</code></strong> - First point (<code>Cartesian</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <code>Vector3Tuple</code>, \n          <code>Vector4Tuple</code> or <code>Vector2Tuple</code> if \n          <code><b>useZ</b>=False</code>).</li>\n        <li><strong class=\"pname\"><code>point2</code></strong> - Second point (<code>Cartesian</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <code>Vector3Tuple</code>, \n          <code>Vector4Tuple</code> or <code>Vector2Tuple</code> if \n          <code><b>useZ</b>=False</code>).</li>\n        <li><strong class=\"pname\"><code>point3</code></strong> - Third point (<code>Cartesian</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <code>Vector3Tuple</code>, \n          <code>Vector4Tuple</code> or <code>Vector2Tuple</code> if \n          <code><b>useZ</b>=False</code>).</li>\n        <li><strong class=\"pname\"><code>eps</code></strong> - Tolerance for function <a \n          href=\"pygeodesy.vector3d-module.html#trilaterate3d2\" \n          class=\"link\">pygeodesy.trilaterate3d2</a> if <code><b>useZ</b> is\n          True</code> else <a \n          href=\"pygeodesy.vector2d-module.html#trilaterate2d2\" \n          class=\"link\">pygeodesy.trilaterate2d2</a>.</li>\n        <li><strong class=\"pname\"><code>useZ</code></strong> - If <code>True</code>, use the Z components, otherwise force \n          <code>z=INT0</code> (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><a href=\"pygeodesy.vector2d.Circin6Tuple-class.html\" \n          class=\"link\">Circin6Tuple</a><code>(radius, center, deltas, cA, \n          cB, cC)</code>.  The <code>center</code> and contact points \n          <code>cA</code>, <code>cB</code> and <code>cC</code>, each an \n          instance of <b><code>point1</code></b>'s (sub-)class, are \n          co-planar with the three given points.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ImportError</strong></code> - Package <code>numpy</code> not found, not installed or older than \n        version 1.10 and <code><b>useZ</b> is True</code>.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.IntersectionError-class.html\">IntersectionError</a></strong></code> - Near-coincident or -colinear points or a trilateration or \n        <code>numpy</code> issue.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>point1</code></b>, <b><code>point2</code></b> or \n        <b><code>point3</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Functions <a href=\"pygeodesy.vector2d-module.html#radii11\" \n        class=\"link\">radii11</a> and <a \n        href=\"pygeodesy.vector2d-module.html#circum3\" \n        class=\"link\">circum3</a>, <a \n        href=\"https://MathWorld.Wolfram.com/ContactTriangle.html\" \n        target=\"_top\">Contact Triangle</a> and <a \n        href=\"https://MathWorld.Wolfram.com/Incircle.html\" \n        target=\"_top\">Incircle</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"circle4\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">circle4</span>&nbsp;(<span class=\"sig-arg\">earth</span>,\n        <span class=\"sig-arg\">lat</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Get the equatorial or a parallel <i>circle of latitude</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>earth</code></strong> - The earth radius (<code>meter</code>) or an ellipsoid or datum \n          (<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a>, <a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a> \n          or <a href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>lat</code></strong> - Geodetic latitude (<code>degrees90</code>, <code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.namedTuples.Circle4Tuple-class.html\" \n          class=\"link\">Circle4Tuple</a><code>(radius, height, lat, \n          beta)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.RangeError-class.html\">RangeError</a></strong></code> - Latitude <b><code>lat</code></b> outside valid range and <a \n        href=\"pygeodesy.errors-module.html#rangerrors\" \n        class=\"link\">rangerrors</a> is <code>True</code>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>earth</code></b>.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - invalid <b><code>earth</code></b> or <b><code>lat</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"circum3\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">circum3</span>&nbsp;(<span class=\"sig-arg\">point1</span>,\n        <span class=\"sig-arg\">point2</span>,\n        <span class=\"sig-arg\">point3</span>,\n        <span class=\"sig-arg\">circum</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">eps</span>=<span class=\"sig-default\">8.881784197001252e-16</span>,\n        <span class=\"sig-arg\">useZ</span>=<span class=\"sig-default\">True</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the radius and center of the smallest circle <i>through</i> or \n  <i>containing</i> three (2- or 3-D) points.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>point1</code></strong> - First point (<code>Cartesian</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <code>Vector3Tuple</code> or \n          <code>Vector4Tuple</code>).</li>\n        <li><strong class=\"pname\"><code>point2</code></strong> - Second point (<code>Cartesian</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <code>Vector3Tuple</code> or \n          <code>Vector4Tuple</code>).</li>\n        <li><strong class=\"pname\"><code>point3</code></strong> - Third point (<code>Cartesian</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <code>Vector3Tuple</code> or \n          <code>Vector4Tuple</code>).</li>\n        <li><strong class=\"pname\"><code>circum</code></strong> - If <code>True</code>, return the <code>circumradius</code> and \n          <code>circumcenter</code> always, ignoring the <i>Meeus</i>' Type\n          I case (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>eps</code></strong> - Tolerance for function <a \n          href=\"pygeodesy.vector3d-module.html#trilaterate3d2\" \n          class=\"link\">pygeodesy.trilaterate3d2</a> if <code><b>useZ</b> is\n          True</code> else <a \n          href=\"pygeodesy.vector2d-module.html#trilaterate2d2\" \n          class=\"link\">pygeodesy.trilaterate2d2</a>.</li>\n        <li><strong class=\"pname\"><code>useZ</code></strong> - If <code>True</code>, use the Z components, otherwise force \n          <code>z=INT0</code> (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.vector2d.Circum3Tuple-class.html\" \n          class=\"link\">Circum3Tuple</a><code>(radius, center, \n          deltas)</code>.  The <code>center</code>, an instance of \n          <b><code>point1</code></b>'s (sub-)class, is co-planar with the \n          three given points.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ImportError</strong></code> - Package <code>numpy</code> not found, not installed or older than \n        version 1.10 and <code><b>useZ</b> is True</code>.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.IntersectionError-class.html\">IntersectionError</a></strong></code> - Near-coincident or -colinear points or a trilateration or \n        <code>numpy</code> issue.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>point1</code></b>, <b><code>point2</code></b> or \n        <b><code>point3</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Functions <a href=\"pygeodesy.vector2d-module.html#circum4_\" \n        class=\"link\">pygeodesy.circum4_</a> and <a \n        href=\"pygeodesy.vector2d-module.html#meeus2\" \n        class=\"link\">pygeodesy.meeus2</a> and Meeus, J. <a \n        href=\"http://www.Agopax.IT/Libri_astronomia/pdf/Astronomical%20Algorithms.pdf\"\n        target=\"_top\"><i>Astronomical Algorithms</i></a>, 2nd Ed. 1998, \n        page 127ff, <a \n        href=\"https://MathWorld.Wolfram.com/Circumradius.html\" \n        target=\"_top\">circumradius</a> and <a \n        href=\"https://MathWorld.Wolfram.com/Circumcircle.html\" \n        target=\"_top\">circumcircle</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"circum4\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">circum4</span>&nbsp;(<span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">useZ</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">**Vector_and_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Best-fit a sphere through three or more (3-D) points.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>points</code></strong> - Iterable of points (each a <code>Cartesian</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <code>Vector3Tuple</code> or \n          <code>Vector4Tuple</code>).</li>\n        <li><strong class=\"pname\"><code>useZ</code></strong> - If <code>True</code>, use the points' Z component, otherwise \n          force <code>z=INT0</code> (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>Vector_and_kwds</code></strong> - Optional class <code><b>Vector</b>=None</code> to return the \n          center point and optionally, additional \n          <b><code>Vector</code></b> keyword arguments, otherwise the \n          <b><code>points</code></b>' (sub-)class.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><a href=\"pygeodesy.vector2d.Circum4Tuple-class.html\" \n          class=\"link\">Circum4Tuple</a><code>(radius, center, rank, \n          residuals)</code> with <code>center</code> an instance of \n          <code><b>points</b>[0]</code>' (sub-)class or \n          <b><code>Vector</code></b> if specified.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ImportError</strong></code> - Package <code>numpy</code> not found, not installed or older than \n        version 1.10.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.NumPyError-class.html\">NumPyError</a></strong></code> - Some <code>numpy</code> issue.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.PointsError-class.html\">PointsError</a></strong></code> - Too few <b><code>points</code></b>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - One of the <b><code>points</code></b> is invalid.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Functions <a href=\"pygeodesy.vector2d-module.html#circum3\" \n        class=\"link\">pygeodesy.circum3</a> and <a \n        href=\"pygeodesy.vector2d-module.html#meeus2\" \n        class=\"link\">pygeodesy.meeus2</a>, <i>Charles Jekel</i>'s <a \n        href=\"https://Jekel.me/2015/Least-Squares-Sphere-Fit/\" \n        target=\"_top\">&quot;Least Squares Sphere Fit&quot;</a>, <a \n        href=\"https://hdl.handle.net/10019.1/98627\" target=\"_top\">Appendix \n        A</a>, <a \n        href=\"https://NumPy.org/doc/stable/reference/generated/numpy.linalg.lstsq.html\"\n        target=\"_top\">numpy.linalg.lstsq</a> and <a \n        href=\"https://www.sci.Utah.edu/~balling/FEtools/doc_files/LeastSquaresFitting.pdf\"\n        target=\"_top\">Eberly 6</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"circum4_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">circum4_</span>&nbsp;(<span class=\"sig-arg\">*points</span>,\n        <span class=\"sig-arg\">**useZ_Vector_and_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Best-fit a sphere through three or more (3-D) positional points.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>points</code></strong> - The points (each a <code>Cartesian</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <code>Vector3Tuple</code> or \n          <code>Vector4Tuple</code>), all positional.</li>\n        <li><strong class=\"pname\"><code>useZ_Vector_and_kwds</code></strong> - Keyword arguments <code><b>useZ</b>=True</code> and \n          <code><b>Vector</b>=None</code>, see function <a \n          href=\"pygeodesy.vector2d-module.html#circum4\" \n          class=\"link\">circum4</a>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.vector2d-module.html#circum4\" \n        class=\"link\">circum4</a> for further details.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"classname\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">classname</span>&nbsp;(<span class=\"sig-arg\">inst</span>,\n        <span class=\"sig-arg\">prefixed</span>=<span class=\"sig-default\">None</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the instance' class name optionally prefixed with the module \n  name.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>inst</code></strong> - The object (any <code>type</code>).</li>\n        <li><strong class=\"pname\"><code>prefixed</code></strong> - Include the module name (<code>bool</code>), see function \n          <code>classnaming</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The <b><code>inst</code></b>'s <code>[module.]class</code> name \n          (<code>str</code>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"classnaming\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">classnaming</span>&nbsp;(<span class=\"sig-arg\">prefixed</span>=<span class=\"sig-default\">None</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Get/set the default class naming for <code>[module.]class</code> \n  names.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>prefixed</code></strong> - Include the module name (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Previous class naming setting (<code>bool</code>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"clipCS3\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">clipCS3</span>&nbsp;(<span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">lowerleft</span>,\n        <span class=\"sig-arg\">upperright</span>,\n        <span class=\"sig-arg\">closed</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">inull</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use function <a href=\"pygeodesy.clipy-module.html#clipCS4\"\n  class=\"link\">pygeodesy.clipCS4</a>.</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd>Yield a <a \n          href=\"pygeodesy.deprecated.classes.ClipCS3Tuple-class.html\" \n          class=\"link\">ClipCS3Tuple</a><code>(start, end, index)</code> for\n          each edge of the <i>clipped</i> path.</dd>\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"clipCS4\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">clipCS4</span>&nbsp;(<span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">lowerleft</span>,\n        <span class=\"sig-arg\">upperight</span>,\n        <span class=\"sig-arg\">closed</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">inull</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Clip a path against a rectangular clip box using the <a \n  href=\"https://WikiPedia.org/wiki/Cohen-Sutherland_algorithm\" \n  target=\"_top\">Cohen-Sutherland</a> algorithm.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>points</code></strong> - The points (<code>LatLon</code>[]).</li>\n        <li><strong class=\"pname\"><code>lowerleft</code></strong> - Bottom-left corner of the clip box (<code>LatLon</code>).</li>\n        <li><strong class=\"pname\"><code>upperight</code></strong> - Top-right corner of the clip box (<code>LatLon</code>).</li>\n        <li><strong class=\"pname\"><code>closed</code></strong> - Optionally, close the path (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>inull</code></strong> - Optionally, retain null edges if inside (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Yield a <a href=\"pygeodesy.clipy.ClipCS4Tuple-class.html\" \n          class=\"link\">ClipCS4Tuple</a><code>(start, end, i, j)</code> for \n          each edge of the <i>clipped</i> path.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.ClipError-class.html\">ClipError</a></strong></code> - The <b><code>lowerleft</code></b> and <b><code>upperight</code></b>\n        corners specify an invalid clip box.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.PointsError-class.html\">PointsError</a></strong></code> - Insufficient number of <b><code>points</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"clipDMS\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">clipDMS</span>&nbsp;(<span class=\"sig-arg\">deg</span>,\n        <span class=\"sig-arg\">limit</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use function <a \n  href=\"pygeodesy.dms-module.html#clipDegrees\" \n  class=\"link\">pygeodesy.clipDegrees</a>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"clipDegrees\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">clipDegrees</span>&nbsp;(<span class=\"sig-arg\">deg</span>,\n        <span class=\"sig-arg\">limit</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Clip a lat- or longitude to the given range.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>deg</code></strong> - Unclipped lat- or longitude (<code>scalar degrees</code>).</li>\n        <li><strong class=\"pname\"><code>limit</code></strong> - Valid <code>-/+<b>limit</b></code> range (<code>degrees</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Clipped value (<code>degrees</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.RangeError-class.html\">RangeError</a></strong></code> - If <b><code>deg</code></b> outside the valid \n        <code>-/+<b>limit</b></code> range and <a \n        href=\"pygeodesy.errors-module.html#rangerrors\" \n        class=\"link\">rangerrors</a> is <code>True</code>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"clipFHP4\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">clipFHP4</span>&nbsp;(<span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">corners</span>,\n        <span class=\"sig-arg\">closed</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">inull</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">raiser</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">eps</span>=<span class=\"sig-default\">2.220446049250313e-16</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Clip one or more polygons against a clip region or box using <a \n  href=\"https://www.ScienceDirect.com/science/article/pii/S259014861930007X\"\n  target=\"_top\">Forster-Hormann-Popa</a>'s C++ implementation transcoded to\n  pure Python.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>points</code></strong> - The polygon points and clips (<code>LatLon</code>[]).</li>\n        <li><strong class=\"pname\"><code>corners</code></strong> - Three or more points defining the clip regions \n          (<code>LatLon</code>[]) or two points to specify a single, \n          rectangular clip box.</li>\n        <li><strong class=\"pname\"><code>closed</code></strong> - If <code>True</code>, close each result clip (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>inull</code></strong> - If <code>True</code>, retain null edges in result clips \n          (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>raiser</code></strong> - If <code>True</code>, throw <a \n          href=\"pygeodesy.errors.ClipError-class.html\" \n          class=\"link\">ClipError</a> exceptions (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>esp</code></strong> - Tolerance for eliminating null edges (<code>degrees</code>, same \n          units as the <b><code>points</code></b> and \n          <b><code>corners</code></b> coordinates).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Yield a <a href=\"pygeodesy.clipy.ClipFHP4Tuple-class.html\" \n          class=\"link\">ClipFHP4Tuple</a><code>(lat, lon, height, \n          clipid)</code> for each clipped point.  The result may consist of\n          several <i>clips</i>, each a (closed) polygon with a unique \n          <code>clipid</code> identifier.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.ClipError-class.html\">ClipError</a></strong></code> - Insufficient <b><code>points</code></b> or \n        <b><code>corners</code></b> or an open clip.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a \n        href=\"https://www.ScienceDirect.com/science/article/pii/S259014861930007X\"\n        target=\"_top\">Forster, Hormann and Popa</a> and class <a \n        href=\"pygeodesy.booleans.BooleanFHP-class.html\" \n        class=\"link\">BooleanFHP</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"clipGH4\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">clipGH4</span>&nbsp;(<span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">corners</span>,\n        <span class=\"sig-arg\">closed</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">inull</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">raiser</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">xtend</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">eps</span>=<span class=\"sig-default\">2.220446049250313e-16</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Clip one or more polygons against a clip region or box using the <a \n  href=\"http://www.Inf.USI.CH/hormann/papers/Greiner.1998.ECO.pdf\" \n  target=\"_top\">Greiner-Hormann</a> algorithm, extended.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>points</code></strong> - The polygon points and clips (<code>LatLon</code>[]).</li>\n        <li><strong class=\"pname\"><code>corners</code></strong> - Three or more points defining the clip regions \n          (<code>LatLon</code>[]) or two points to specify a single, \n          rectangular clip box.</li>\n        <li><strong class=\"pname\"><code>closed</code></strong> - If <code>True</code>, close each result clip (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>inull</code></strong> - If <code>True</code>, retain null edges in result clips \n          (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>raiser</code></strong> - If <code>True</code>, throw <a \n          href=\"pygeodesy.errors.ClipError-class.html\" \n          class=\"link\">ClipError</a> exceptions (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>xtend</code></strong> - If <code>True</code>, extend edges of <i>degenerate cases</i>, an\n          attempt to handle the latter (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>esp</code></strong> - Tolerance for eliminating null edges (<code>degrees</code>, same \n          units as the <b><code>points</code></b> and \n          <b><code>corners</code></b> coordinates).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Yield a <a href=\"pygeodesy.clipy.ClipGH4Tuple-class.html\" \n          class=\"link\">ClipGH4Tuple</a><code>(lat, lon, height, \n          clipid)</code> for each clipped point.  The result may consist of\n          several <i>clips</i>, each a (closed) polygon with a unique \n          <code>clipid</code> identifier.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.ClipError-class.html\">ClipError</a></strong></code> - Insufficient <b><code>points</code></b> or \n        <b><code>corners</code></b>, an open clip, a <i>degenerate case</i>\n        or <i>unhandled</i> intersection.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        To handle <i>degenerate cases</i> like <code>point-edge</code> and \n        <code>point-point</code> intersections <i>properly</i>, use \n        function <a href=\"pygeodesy.clipy-module.html#clipFHP4\" \n        class=\"link\">clipFHP4</a>.\n      </p>\n      <p><strong>See Also:</strong>\n        <a \n        href=\"https://WikiPedia.org/wiki/Greiner&#8211;Hormann_clipping_algorithm\"\n        target=\"_top\">Greiner-Hormann</a> and class <a \n        href=\"pygeodesy.booleans.BooleanGH-class.html\" \n        class=\"link\">BooleanGH</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"clipLB6\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">clipLB6</span>&nbsp;(<span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">lowerleft</span>,\n        <span class=\"sig-arg\">upperight</span>,\n        <span class=\"sig-arg\">closed</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">inull</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Clip a path against a rectangular clip box using the <a \n  href=\"https://www.CSE.UNT.edu/~renka/4230/LineClipping.pdf\" \n  target=\"_top\">Liang-Barsky</a> algorithm.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>points</code></strong> - The points (<code>LatLon</code>[]).</li>\n        <li><strong class=\"pname\"><code>lowerleft</code></strong> - Bottom-left corner of the clip box (<code>LatLon</code>).</li>\n        <li><strong class=\"pname\"><code>upperight</code></strong> - Top-right corner of the clip box (<code>LatLon</code>).</li>\n        <li><strong class=\"pname\"><code>closed</code></strong> - Optionally, close the path (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>inull</code></strong> - Optionally, retain null edges if inside (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Yield a <a href=\"pygeodesy.clipy.ClipLB6Tuple-class.html\" \n          class=\"link\">ClipLB6Tuple</a><code>(start, end, i, fi, fj, \n          j)</code> for each edge of the <i>clipped</i> path.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.ClipError-class.html\">ClipError</a></strong></code> - The <b><code>lowerleft</code></b> and <b><code>upperight</code></b>\n        corners specify an invalid clip box.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.PointsError-class.html\">PointsError</a></strong></code> - Insufficient number of <b><code>points</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a \n        href=\"https://www.CS.Helsinki.FI/group/goa/viewing/leikkaus/intro.html\"\n        target=\"_top\">Liang-Barsky Line Clipping</a>, <a \n        href=\"https://www.Skytopia.com/project/articles/compsci/clipping.html\"\n        target=\"_top\">Liang-Barsky line clipping algorithm</a> and <a \n        href=\"https://WikiPedia.org/wiki/Liang-Barsky_algorithm\" \n        target=\"_top\">Liang-Barsky algorithm</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"clipRadians\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">clipRadians</span>&nbsp;(<span class=\"sig-arg\">rad</span>,\n        <span class=\"sig-arg\">limit</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Clip a lat- or longitude to the given range.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>rad</code></strong> - Unclipped lat- or longitude (<code>radians</code>).</li>\n        <li><strong class=\"pname\"><code>limit</code></strong> - Valid <code>-/+<b>limit</b></code> range (<code>radians</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Clipped value (<code>radians</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.RangeError-class.html\">RangeError</a></strong></code> - If <b><code>rad</code></b> outside the valid \n        <code>-/+<b>limit</b></code> range and <a \n        href=\"pygeodesy.errors-module.html#rangerrors\" \n        class=\"link\">rangerrors</a> is <code>True</code>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"clipSH\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">clipSH</span>&nbsp;(<span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">corners</span>,\n        <span class=\"sig-arg\">closed</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">inull</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Clip a polygon against a clip region or box using the <a \n  href=\"https://WikiPedia.org/wiki/Sutherland-Hodgman_algorithm\" \n  target=\"_top\">Sutherland-Hodgman</a> algorithm.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>points</code></strong> - The polygon points (<code>LatLon</code>[]).</li>\n        <li><strong class=\"pname\"><code>corners</code></strong> - Three or more points defining a convex clip region \n          (<code>LatLon</code>[]) or two points to specify a rectangular \n          clip box.</li>\n        <li><strong class=\"pname\"><code>closed</code></strong> - Close the clipped points (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>inull</code></strong> - Optionally, include null edges (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Yield the clipped points (<code>LatLon</code>[]).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.ClipError-class.html\">ClipError</a></strong></code> - The <b><code>corners</code></b> specify a polar, zero-area, \n        non-convex or otherwise invalid clip box or region.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.PointsError-class.html\">PointsError</a></strong></code> - Insufficient number of <b><code>points</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"clipSH3\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">clipSH3</span>&nbsp;(<span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">corners</span>,\n        <span class=\"sig-arg\">closed</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">inull</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Clip a polygon against a clip region or box using the <a \n  href=\"https://WikiPedia.org/wiki/Sutherland-Hodgman_algorithm\" \n  target=\"_top\">Sutherland-Hodgman</a> algorithm.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>points</code></strong> - The polygon points (<code>LatLon</code>[]).</li>\n        <li><strong class=\"pname\"><code>corners</code></strong> - Three or more points defining a convex clip region \n          (<code>LatLon</code>[]) or two points to specify a rectangular \n          clip box.</li>\n        <li><strong class=\"pname\"><code>closed</code></strong> - Close the clipped points (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>inull</code></strong> - Optionally, include null edges (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Yield a <a href=\"pygeodesy.clipy.ClipSH3Tuple-class.html\" \n          class=\"link\">ClipSH3Tuple</a><code>(start, end, original)</code> \n          for each edge of the <i>clipped</i> polygon.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.ClipError-class.html\">ClipError</a></strong></code> - The <b><code>corners</code></b> specify a polar, zero-area, \n        non-convex or otherwise invalid clip box or region.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.PointsError-class.html\">PointsError</a></strong></code> - Insufficient number of <b><code>points</code></b> or \n        <b><code>corners</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"clipStr\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">clipStr</span>&nbsp;(<span class=\"sig-arg\">bstr</span>,\n        <span class=\"sig-arg\">limit</span>=<span class=\"sig-default\">50</span>,\n        <span class=\"sig-arg\">white</span>=<span class=\"sig-default\">''</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use function <a href=\"pygeodesy.basics-module.html#clips\" \n  class=\"link\">pygeodesy.clips</a>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"clips\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">clips</span>&nbsp;(<span class=\"sig-arg\">sb</span>,\n        <span class=\"sig-arg\">limit</span>=<span class=\"sig-default\">50</span>,\n        <span class=\"sig-arg\">white</span>=<span class=\"sig-default\">''</span>,\n        <span class=\"sig-arg\">length</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Clip a string to the given length limit.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>sb</code></strong> - String (<code>str</code> or <code>bytes</code>).</li>\n        <li><strong class=\"pname\"><code>limit</code></strong> - Length limit (<code>int</code>).</li>\n        <li><strong class=\"pname\"><code>white</code></strong> - Optionally, replace all whitespace (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>length</code></strong> - If <code>True</code>, append the original <i>[length]</i> \n          (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The clipped or unclipped <b><code>sb</code></b>.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"collins\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">collins</span>&nbsp;(<span class=\"sig-arg\">pointA</span>,\n        <span class=\"sig-arg\">pointB</span>,\n        <span class=\"sig-arg\">pointC</span>,\n        <span class=\"sig-arg\">alpha</span>,\n        <span class=\"sig-arg\">beta</span>,\n        <span class=\"sig-arg\">**useZ_Clas_and_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use function <a \n  href=\"pygeodesy.resections-module.html#collins5\" \n  class=\"link\">pygeodesy.collins5</a>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"collins5\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">collins5</span>&nbsp;(<span class=\"sig-arg\">pointA</span>,\n        <span class=\"sig-arg\">pointB</span>,\n        <span class=\"sig-arg\">pointC</span>,\n        <span class=\"sig-arg\">alpha</span>,\n        <span class=\"sig-arg\">beta</span>,\n        <span class=\"sig-arg\">useZ</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">**Clas_and_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>3-Point resection using <a \n  href=\"https://Dokumen.tips/documents/three-point-resection-problem-introduction-kaestner-burkhardt-method.html\"\n  target=\"_top\">Collins</a>' method.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>pointA</code></strong> - First point (<code>Cartesian</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <code>Vector3Tuple</code>, \n          <code>Vector4Tuple</code> or <code>Vector2Tuple</code> if \n          <code><b>useZ</b>=False</code>).</li>\n        <li><strong class=\"pname\"><code>pointB</code></strong> - Second point (<code>Cartesian</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <code>Vector3Tuple</code>, \n          <code>Vector4Tuple</code> or <code>Vector2Tuple</code> if \n          <code><b>useZ</b>=False</code>).</li>\n        <li><strong class=\"pname\"><code>pointC</code></strong> - Center point (<code>Cartesian</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <code>Vector3Tuple</code>, \n          <code>Vector4Tuple</code> or <code>Vector2Tuple</code> if \n          <code><b>useZ</b>=False</code>).</li>\n        <li><strong class=\"pname\"><code>alpha</code></strong> - Angle subtended by triangle side <code>b</code> from \n          <b><code>pointA</code></b> to <b><code>pointC</code></b> \n          (<code>degrees</code>, non-negative).</li>\n        <li><strong class=\"pname\"><code>beta</code></strong> - Angle subtended by triangle side <code>a</code> from \n          <b><code>pointB</code></b> to <b><code>pointC</code></b> \n          (<code>degrees</code>, non-negative).</li>\n        <li><strong class=\"pname\"><code>useZ</code></strong> - If <code>True</code>, use and interpolate the Z component, \n          otherwise force <code>z=INT0</code> (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>Clas_and_kwds</code></strong> - Optional class <code><b>Clas</b>=<b>pointA</b>.classof</code> to \n          return the survey point with optionally other \n          <b><code>Clas</code></b> keyword arguments to instantiate the \n          survey point.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><a href=\"pygeodesy.resections.Collins5Tuple-class.html\" \n          class=\"link\">Collins5Tuple</a><code>(pointP, pointH, a, b, \n          c)</code> with survey <code>pointP</code>, auxiliary \n          <code>pointH</code>, each an instance of <b><code>Clas</code></b>\n          or <b><code>pointA</code></b>'s (sub-)class and triangle sides \n          <code>a</code>, <code>b</code> and <code>c</code> in \n          <code>meter</code>, conventionally.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.resections.ResectionError-class.html\">ResectionError</a></strong></code> - Near-coincident, -colinear or -concyclic points or negative or \n        invalid <b><code>alpha</code></b> or <b><code>beta</code></b>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>pointA</code></b>, <b><code>pointB</code></b> or \n        <b><code>pointM</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        Typically, <b><code>pointC</code></b> is between \n        <b><code>pointA</code></b> and <b><code>pointB</code></b>.\n      </p>\n      <p><strong>See Also:</strong>\n        <a href=\"https://NL.WikiPedia.org/wiki/Achterwaartse_insnijding\" \n        target=\"_top\">Collins' methode</a> and functions <a \n        href=\"pygeodesy.resections-module.html#cassini\" \n        class=\"link\">cassini</a>, <a \n        href=\"pygeodesy.resections-module.html#pierlot\" \n        class=\"link\">pierlot</a>, <a \n        href=\"pygeodesy.resections-module.html#pierlotx\" \n        class=\"link\">pierlotx</a> and <a \n        href=\"pygeodesy.resections-module.html#tienstra7\" \n        class=\"link\">tienstra7</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"compassAngle\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">compassAngle</span>&nbsp;(<span class=\"sig-arg\">lat1</span>,\n        <span class=\"sig-arg\">lon1</span>,\n        <span class=\"sig-arg\">lat2</span>,\n        <span class=\"sig-arg\">lon2</span>,\n        <span class=\"sig-arg\">adjust</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the angle from North for the direction vector <i \n  class=\"math\">(lon2 - lon1, lat2 - lat1)</i> between two points.</p>\n  <p>Suitable only for short, not near-polar vectors up to a few hundred Km\n  or Miles.  Use function <a href=\"pygeodesy.formy-module.html#bearing\" \n  class=\"link\">pygeodesy.bearing</a> for longer vectors.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat1</code></strong> - From latitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lon1</code></strong> - From longitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lat2</code></strong> - To latitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lon2</code></strong> - To longitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>adjust</code></strong> - Adjust the longitudinal delta by the cosine of the mean latitude \n          (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll \n          <b><code>lat2</code></b> and <b><code>lon2</code></b> \n          (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Compass angle from North (<code>degrees360</code>).</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        Courtesy of Martin Schultz.\n      </p>\n      <p><strong>See Also:</strong>\n        <a href=\"https://www.EdWilliams.org/avform.htm#flat\" \n        target=\"_top\">Local, flat earth approximation</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"compassDMS\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">compassDMS</span>&nbsp;(<span class=\"sig-arg\">bearing</span>,\n        <span class=\"sig-arg\">form</span>=<span class=\"sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">d</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"sig-arg\">prec</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">sep</span>=<span class=\"sig-default\">''</span>,\n        <span class=\"sig-arg\">**s_D_M_S</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert bearing to a string suffixed with compass point.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>bearing</code></strong> - Bearing from North (compass <code>degrees360</code>).</li>\n        <li><strong class=\"pname\"><code>form</code></strong> - Format specifier for <b><code>deg</code></b> (<code>str</code> or\n          <code>F_...</code>).</li>\n        <li><strong class=\"pname\"><code>prec</code></strong> - Number of decimal digits (0..9 or <code>None</code> for default).</li>\n        <li><strong class=\"pname\"><code>sep</code></strong> - Separator between degrees, minutes, seconds, suffix \n          (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>s_D_M_S</code></strong> - Optional keyword arguments to override any or cancel all DMS \n          symbol suffixes, see function <a \n          href=\"pygeodesy.dms-module.html#toDMS\" \n          class=\"link\">pygeodesy.toDMS</a>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Compass degrees and point in the specified form \n          (<code>str</code>).</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.dms-module.html#toDMS\" \n        class=\"link\">pygeodesy.toDMS</a> and its <b>Notes</b> for further \n        details.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"compassPoint\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">compassPoint</span>&nbsp;(<span class=\"sig-arg\">bearing</span>,\n        <span class=\"sig-arg\">prec</span>=<span class=\"sig-default\">3</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert a <code>bearing</code> from North to a compass point.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>bearing</code></strong> - Bearing (compass <code>degrees360</code>).</li>\n        <li><strong class=\"pname\"><code>prec</code></strong> - Precision, number of compass point characters: 1 for cardinal or \n          basic winds, 2 for intercardinal or ordinal or principal winds, 3\n          for secondary-intercardinal or half-winds or 4 for \n          quarter-winds).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Compass point (1-, 2-, 3- or 4-letter <code>str</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>bearing</code></b> or <b><code>prec</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"https://GitHub.com/ChrisVeness/geodesy/blob/master/dms.js\"\n        target=\"_top\">Dms.compassPoint</a> and <a \n        href=\"https://WikiPedia.org/wiki/Compass_rose\" \n        target=\"_top\">Compass rose</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"copysign\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">copysign</span>&nbsp;(<span class=\"sig-arg\">x</span>,\n        <span class=\"sig-arg\">y</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use function <a \n  href=\"pygeodesy.basics-module.html#copysign0\" \n  class=\"link\">pygeodesy.copysign0</a>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"copysign0\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">copysign0</span>&nbsp;(<span class=\"sig-arg\">x</span>,\n        <span class=\"sig-arg\">y</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Like <code>math.copysign(x, y)</code> except <code>zero</code>, \n  <i>unsigned</i>.</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd><code>math.copysign(<b>x</b>, <b>y</b>)</code> if \n          <b><code>x</code></b> else <code>type(<b>x</b>)(0)</code>.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"copytype\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">copytype</span>&nbsp;(<span class=\"sig-arg\">x</span>,\n        <span class=\"sig-arg\">y</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the value of <b>x</b> as <code>type</code> of \n  <code>y</code>.</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd><code>type(<b>y</b>)(<b>x</b>)</code>.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"cosineAndoyerLambert\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">cosineAndoyerLambert</span>&nbsp;(<span class=\"sig-arg\">lat1</span>,\n        <span class=\"sig-arg\">lon1</span>,\n        <span class=\"sig-arg\">lat2</span>,\n        <span class=\"sig-arg\">lon2</span>,\n        <span class=\"sig-arg\">**datum_wrap</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED on 2024.12.31, use function <a \n  href=\"pygeodesy.formy-module.html#cosineLaw\" \n  class=\"link\">pygeodesy.cosineLaw</a> with <code><b>corr</b>=1</code>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"cosineAndoyerLambert_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">cosineAndoyerLambert_</span>&nbsp;(<span class=\"sig-arg\">phi2</span>,\n        <span class=\"sig-arg\">phi1</span>,\n        <span class=\"sig-arg\">lam21</span>,\n        <span class=\"sig-arg\">**datum</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED on 2024.12.31, use function <a \n  href=\"pygeodesy.formy-module.html#cosineLaw_\" \n  class=\"link\">pygeodesy.cosineLaw_</a> with \n  <code><b>corr</b>=1</code>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"cosineForsytheAndoyerLambert\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">cosineForsytheAndoyerLambert</span>&nbsp;(<span class=\"sig-arg\">lat1</span>,\n        <span class=\"sig-arg\">lon1</span>,\n        <span class=\"sig-arg\">lat2</span>,\n        <span class=\"sig-arg\">lon2</span>,\n        <span class=\"sig-arg\">**datum_wrap</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED on 2024.12.31, use function <a \n  href=\"pygeodesy.formy-module.html#cosineLaw\" \n  class=\"link\">pygeodesy.cosineLaw</a> with <code><b>corr</b>=2</code>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"cosineForsytheAndoyerLambert_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">cosineForsytheAndoyerLambert_</span>&nbsp;(<span class=\"sig-arg\">phi2</span>,\n        <span class=\"sig-arg\">phi1</span>,\n        <span class=\"sig-arg\">lam21</span>,\n        <span class=\"sig-arg\">**datum</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED on 2024.12.31, use function <a \n  href=\"pygeodesy.formy-module.html#cosineLaw_\" \n  class=\"link\">pygeodesy.cosineLaw_</a> with \n  <code><b>corr</b>=2</code>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"cosineLaw\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">cosineLaw</span>&nbsp;(<span class=\"sig-arg\">lat1</span>,\n        <span class=\"sig-arg\">lon1</span>,\n        <span class=\"sig-arg\">lat2</span>,\n        <span class=\"sig-arg\">lon2</span>,\n        <span class=\"sig-arg\">corr</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">earth</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">datum</span>=<span class=\"sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"sig-arg\">radius</span>=<span class=\"sig-default\">6371008.771415</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the distance between two points using the <a \n  href=\"https://www.Movable-Type.co.UK/scripts/latlong.html#cosine-law\" \n  target=\"_top\">Law of Cosines</a> formula, optionally corrected.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat1</code></strong> - Start latitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lon1</code></strong> - Start longitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lat2</code></strong> - End latitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lon2</code></strong> - End longitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>corr</code></strong> - Use <code><b>corr</b>=2</code> to apply the <a \n          href=\"https://www2.UNB.CA/gge/Pubs/TR77.pdf\" \n          target=\"_top\">Forsythe-Andoyer-Lambert</a>, \n          <code><b>corr</b>=1</code> for the <a \n          href=\"https://Books.Google.com/books?id=x2UiAQAAIAAJ\" \n          target=\"_top\">Andoyer-Lambert</a> corrected (ellipsoidal) or keep\n          <code><b>corr</b>=0</code> for the uncorrected (spherical) \n          <code>Law of Cosines</code> formula (<code>int</code>).</li>\n        <li><strong class=\"pname\"><code>earth</code></strong> - Mean earth radius (<code>meter</code>) or datum (<a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>) \n          or ellipsoid (<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\"\n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a> or <a \n          href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>) to use.</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and \n          <b><code>lat2</code></b> and <b><code>lon2</code></b> \n          (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>datum</code></strong> - Default ellipsiodal <b><code>earth</code></b> (and for backward \n          compatibility).</li>\n        <li><strong class=\"pname\"><code>radius</code></strong> - Default spherical <b><code>earth</code></b> (and for backward \n          compatibility).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Distance (<code>meter</code>, same units as \n          <b><code>radius</code></b> or the datum's or ellipsoid axes).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>earth</code></b>, <b><code>datum</code></b> or \n        <b><code>radius</code></b>.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>corr</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Functions <a href=\"pygeodesy.formy-module.html#cosineLaw_\" \n        class=\"link\">cosineLaw_</a>, <a \n        href=\"pygeodesy.formy-module.html#equirectangular\" \n        class=\"link\">equirectangular</a>, <a \n        href=\"pygeodesy.formy-module.html#euclidean\" \n        class=\"link\">euclidean</a>, <a \n        href=\"pygeodesy.formy-module.html#flatLocal\" \n        class=\"link\">flatLocal</a> / <a \n        href=\"pygeodesy.formy-module.html#flatLocal\" \n        class=\"link\">hubeny</a>, <a \n        href=\"pygeodesy.formy-module.html#flatPolar\" \n        class=\"link\">flatPolar</a>, <a \n        href=\"pygeodesy.formy-module.html#haversine\" \n        class=\"link\">haversine</a>, <a \n        href=\"pygeodesy.formy-module.html#thomas\" class=\"link\">thomas</a> \n        and <a href=\"pygeodesy.formy-module.html#vincentys\" \n        class=\"link\">vincentys</a> and method <a \n        href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#distance2\" \n        class=\"link\">Ellipsoid.distance2</a>.\n      </p>\n      <p><strong>Note:</strong>\n        See note at function <a \n        href=\"pygeodesy.formy-module.html#vincentys_\" \n        class=\"link\">vincentys_</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"cosineLaw_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">cosineLaw_</span>&nbsp;(<span class=\"sig-arg\">phi2</span>,\n        <span class=\"sig-arg\">phi1</span>,\n        <span class=\"sig-arg\">lam21</span>,\n        <span class=\"sig-arg\">corr</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">earth</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">datum</span>=<span class=\"sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the <i>angular</i> distance between two points using the <a \n  href=\"https://www.Movable-Type.co.UK/scripts/latlong.html#cosine-law\" \n  target=\"_top\">Law of Cosines</a> formula, optionally corrected.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>phi2</code></strong> - End latitude (<code>radians</code>).</li>\n        <li><strong class=\"pname\"><code>phi1</code></strong> - Start latitude (<code>radians</code>).</li>\n        <li><strong class=\"pname\"><code>lam21</code></strong> - Longitudinal delta, <i class=\"math\">end-start</i> \n          (<code>radians</code>).</li>\n        <li><strong class=\"pname\"><code>corr</code></strong> - Use <code><b>corr</b>=2</code> to apply the <a \n          href=\"https://www2.UNB.CA/gge/Pubs/TR77.pdf\" \n          target=\"_top\">Forsythe-Andoyer-Lambert</a>, \n          <code><b>corr</b>=1</code> for the <a \n          href=\"https://Books.Google.com/books?id=x2UiAQAAIAAJ\" \n          target=\"_top\">Andoyer-Lambert</a> corrected (ellipsoidal) or keep\n          <code><b>corr</b>=0</code> for the uncorrected (spherical) \n          <code>Law of Cosines</code> formula (<code>int</code>).</li>\n        <li><strong class=\"pname\"><code>earth</code></strong> - Mean earth radius (<code>meter</code>) or datum (<a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>) \n          or ellipsoid (<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\"\n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a> or <a \n          href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>) to use.</li>\n        <li><strong class=\"pname\"><code>datum</code></strong> - Default ellipsoidal <b><code>earth</code></b> (and for backward \n          compatibility).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Angular distance (<code>radians</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>earth</code></b> or <b><code>datum</code></b>.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>corr</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Functions <a href=\"pygeodesy.formy-module.html#cosineLaw\" \n        class=\"link\">cosineLaw</a>, <a \n        href=\"pygeodesy.formy-module.html#euclidean_\" \n        class=\"link\">euclidean_</a>, <a \n        href=\"pygeodesy.formy-module.html#flatLocal_\" \n        class=\"link\">flatLocal_</a> / <a \n        href=\"pygeodesy.formy-module.html#flatLocal_\" \n        class=\"link\">hubeny_</a>, <a \n        href=\"pygeodesy.formy-module.html#flatPolar_\" \n        class=\"link\">flatPolar_</a>, <a \n        href=\"pygeodesy.formy-module.html#haversine_\" \n        class=\"link\">haversine_</a>, <a \n        href=\"pygeodesy.formy-module.html#thomas_\" class=\"link\">thomas_</a>\n        and <a href=\"pygeodesy.formy-module.html#vincentys_\" \n        class=\"link\">vincentys_</a> and <a \n        href=\"https://GitHub.com/jtejido/geodesy-php/blob/master/src/Geodesy/Distance/AndoyerLambert.php\"\n        target=\"_top\">Geodesy-PHP</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"cot\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">cot</span>&nbsp;(<span class=\"sig-arg\">rad</span>,\n        <span class=\"sig-arg\">**raiser_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the <code>cotangent</code> of an angle in \n  <code>radians</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>rad</code></strong> - Angle (<code>radians</code>).</li>\n        <li><strong class=\"pname\"><code>raiser_kwds</code></strong> - Use <code><b>raiser</b>=False</code> to avoid ValueErrors and \n          optional, additional ValueError keyword argments.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>cot(<b>rad</b>)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>Error</strong></code> - If <a href=\"pygeodesy.constants-module.html#isnear0\" \n        class=\"link\">pygeodesy.isnear0</a><code>(sin(<b>rad</b>)</code>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"cot_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">cot_</span>&nbsp;(<span class=\"sig-arg\">*rads</span>,\n        <span class=\"sig-arg\">**raiser_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Yield the <code>cotangent</code> of angle(s) in \n  <code>radians</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>rads</code></strong> - One or more angles (each in <code>radians</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Yield <code>cot(<b>rad</b>)</code> for each angle.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.utily-module.html#cot\" \n        class=\"link\">pygeodesy.cot</a> for further details.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"cotd\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">cotd</span>&nbsp;(<span class=\"sig-arg\">deg</span>,\n        <span class=\"sig-arg\">**raiser_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the <code>cotangent</code> of an angle in \n  <code>degrees</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>deg</code></strong> - Angle (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>raiser_kwds</code></strong> - Use <code><b>raiser</b>=False</code> to avoid ValueErrors and \n          optional, additional ValueError keyword argments.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>cot(<b>deg</b>)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>Error</strong></code> - If <a href=\"pygeodesy.constants-module.html#isnear0\" \n        class=\"link\">pygeodesy.isnear0</a><code>(sin(<b>deg</b>)</code>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"cotd_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">cotd_</span>&nbsp;(<span class=\"sig-arg\">*degs</span>,\n        <span class=\"sig-arg\">**raiser_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Yield the <code>cotangent</code> of angle(s) in \n  <code>degrees</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>degs</code></strong> - One or more angles (each in <code>degrees</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Yield <code>cotd(<b>deg</b>)</code> for each angle.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.utily-module.html#cotd\" \n        class=\"link\">pygeodesy.cotd</a> for further details.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"crosserrors\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">crosserrors</span>&nbsp;(<span class=\"sig-arg\">raiser</span>=<span class=\"sig-default\">None</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Report or ignore vectorial cross product errors.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>raiser</code></strong> - Use <code>True</code> to throw, <code>False</code> to ignore <a \n          href=\"pygeodesy.errors.CrossError-class.html\" \n          class=\"link\">CrossError</a> exceptions or <code>None</code> to \n          leave the setting unchanged.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Previous setting (<code>bool</code>).</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Property <code>Vector3d[Base].crosserrors</code>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"date2epoch\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">date2epoch</span>&nbsp;(<span class=\"sig-arg\">year</span>,\n        <span class=\"sig-arg\">month</span>,\n        <span class=\"sig-arg\">day</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the <code>epoch</code> for a calendar day.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>year</code></strong> - Year of the date (<code>scalar</code>).</li>\n        <li><strong class=\"pname\"><code>month</code></strong> - Month in the <b><code>year</code></b> (<code>scalar</code>, \n          1..12).</li>\n        <li><strong class=\"pname\"><code>day</code></strong> - Day in the <b><code>month</code></b> (<code>scalar</code>, \n          1..31).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Epoch, the fractional year (<code>float</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.TRFError-class.html\">TRFError</a></strong></code> - Invalid <b><code>year</code></b>, <b><code>month</code></b> or \n        <b><code>day</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        Any <b><code>year</code></b> is considered a leap year, i.e. having\n        29 days in February.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"decodeEPSG2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">decodeEPSG2</span>&nbsp;(<span class=\"sig-arg\">arg</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use function <a href=\"pygeodesy.epsg-module.html#decode2\" \n  class=\"link\">epsg.decode2</a>.</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd>2-Tuple <code>(zone, hemipole)</code></dd>\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"degDMS\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">degDMS</span>&nbsp;(<span class=\"sig-arg\">deg</span>,\n        <span class=\"sig-arg\">prec</span>=<span class=\"sig-default\">6</span>,\n        <span class=\"sig-arg\">s_D</span>=<span class=\"sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">&deg;</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"sig-arg\">s_M</span>=<span class=\"sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">\\xe2\\x80\\xb2</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"sig-arg\">s_S</span>=<span class=\"sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">&Prime;</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"sig-arg\">neg</span>=<span class=\"sig-default\">'-'</span>,\n        <span class=\"sig-arg\">pos</span>=<span class=\"sig-default\">''</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert degrees to a string in degrees, minutes <i>or</i> seconds.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>deg</code></strong> - Value in degrees (<code>scalar degrees</code>).</li>\n        <li><strong class=\"pname\"><code>prec</code></strong> - Number of decimal digits (0..9 or <code>None</code> for default).\n          Trailing zero decimals are stripped for \n          <code><b>prec</b>=1</code> and above, but kept for negative \n          <b><code>prec</code></b>.</li>\n        <li><strong class=\"pname\"><code>s_D</code></strong> - D symbol for degrees (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>s_M</code></strong> - M symbol for minutes (<code>str</code>) or \n          <code>&quot;&quot;</code> aka <a href=\"pygeodesy-module.html#NN\" \n          class=\"link\">pygeodesy.NN</a>.</li>\n        <li><strong class=\"pname\"><code>s_S</code></strong> - S symbol for seconds (<code>str</code>) or \n          <code>&quot;&quot;</code> aka <a href=\"pygeodesy-module.html#NN\" \n          class=\"link\">pygeodesy.NN</a>.</li>\n        <li><strong class=\"pname\"><code>neg</code></strong> - Optional sign for negative (<code>'-'</code>).</li>\n        <li><strong class=\"pname\"><code>pos</code></strong> - Optional sign for positive (<code>&quot;&quot;</code>) aka <a \n          href=\"pygeodesy-module.html#NN\" class=\"link\">pygeodesy.NN</a>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><i>Either</i> degrees, minutes <i>or</i> seconds \n          (<code>str</code>).</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.dms-module.html#toDMS\" \n        class=\"link\">pygeodesy.toDMS</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"degrees180\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">degrees180</span>&nbsp;(<span class=\"sig-arg\">rad</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert radians to degrees and wrap <i \n  class=\"math\">[-180..+180)</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>rad</code></strong> - Angle (<code>radians</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Angle, wrapped (<code>degrees180</code>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"degrees2grades\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">degrees2grades</span>&nbsp;(<span class=\"sig-arg\">deg</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert degrees to <i>grades</i> (aka <i>gons</i> or \n  <i>gradians</i>).</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>deg</code></strong> - Angle (<code>degrees</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Angle (<code>grades</code>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"degrees2m\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">degrees2m</span>&nbsp;(<span class=\"sig-arg\">deg</span>,\n        <span class=\"sig-arg\">earth</span>=<span class=\"sig-default\">6371008.771415</span>,\n        <span class=\"sig-arg\">lat</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">**radius</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert an arc in degrees to a distance along the equator or along a \n  parallel at (geodetic) latitude.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>deg</code></strong> - The (longitudinal) angle (<code>degrees</code> or \n          <code>str</code>).</li>\n        <li><strong class=\"pname\"><code>earth</code></strong> - The earth radius (<code>meter</code>) or an ellipsoid or datum \n          (<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a>, <a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a> \n          or <a href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>lat</code></strong> - Parallel latitude (<code>degrees90</code>, <code>str</code>).</li>\n        <li><strong class=\"pname\"><code>radius</code></strong> - For backward compatibility \n          <code><b>radius</b>=<b>earth</b></code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Distance (<code>meter</code>, same units as \n          <b><code>earth</code></b> or polar and equatorial radii) or \n          <code>0.0</code> for near-polar <b><code>lat</code></b>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.RangeError-class.html\">RangeError</a></strong></code> - Latitude <b><code>lat</code></b> outside valid range, only if <a \n        href=\"pygeodesy.errors-module.html#rangerrors\" \n        class=\"link\">rangerrors</a> is <code>True</code>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>earth</code></b> or <b><code>radius</code></b>.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>deg</code></b>, <b><code>earth</code></b> or \n        <b><code>lat</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.utily-module.html#radians2m\" \n        class=\"link\">radians2m</a> and <a \n        href=\"pygeodesy.utily-module.html#m2degrees\" \n        class=\"link\">m2degrees</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"degrees360\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">degrees360</span>&nbsp;(<span class=\"sig-arg\">rad</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert radians to degrees and wrap <i class=\"math\">[0..+360)</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>rad</code></strong> - Angle (<code>radians</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Angle, wrapped (<code>degrees360</code>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"degrees90\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">degrees90</span>&nbsp;(<span class=\"sig-arg\">rad</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert radians to degrees and wrap <i \n  class=\"math\">[-90..+90)</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>rad</code></strong> - Angle (<code>radians</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Angle, wrapped (<code>degrees90</code>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"deprecated_Property_RO\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">deprecated_Property_RO</span>&nbsp;(<span class=\"sig-arg\">method</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Decorator for a DEPRECATED <a \n  href=\"pygeodesy.props.Property_RO-class.html\" \n  class=\"link\">Property_RO</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>method</code></strong> - The <code>Property_RO.fget</code> method (<code>callable</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The <b><code>method</code></b> DEPRECATED.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"deprecated_class\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">deprecated_class</span>&nbsp;(<span class=\"sig-arg\">cls_or_class</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Use inside __new__ or __init__ of a DEPRECATED class.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>cls_or_class</code></strong> - The class (<code>cls</code> or <code>Class</code>).</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        NOT a decorator!\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"deprecated_function\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">deprecated_function</span>&nbsp;(<span class=\"sig-arg\">call</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Decorator for a DEPRECATED function.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>call</code></strong> - The deprecated function (<code>callable</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The <b><code>call</code></b> DEPRECATED.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"deprecated_method\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">deprecated_method</span>&nbsp;(<span class=\"sig-arg\">call</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Decorator for a DEPRECATED method.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>call</code></strong> - The deprecated method (<code>callable</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The <b><code>call</code></b> DEPRECATED.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"deprecated_property_RO\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">deprecated_property_RO</span>&nbsp;(<span class=\"sig-arg\">method</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Decorator for a DEPRECATED <a \n  href=\"pygeodesy.props.property_RO-class.html\" \n  class=\"link\">property_RO</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>method</code></strong> - The <code>property_RO.fget</code> method (<code>callable</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The <b><code>method</code></b> DEPRECATED.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"e22f\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">e22f</span>&nbsp;(<span class=\"sig-arg\">e2</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return <code>f</code>, the <i>flattening</i> for a given <i>1st \n  eccentricity squared</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>e2</code></strong> - The (1st) eccentricity <i>squared</i>, <i>signed</i> (NINF &lt; \n          <code>float</code> &lt; 1)</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The flattening (<code>float</code> or <code>0</code>), <i \n          class=\"math\">e2 / (sqrt(1 - e2) + 1)</i>.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"e2f\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">e2f</span>&nbsp;(<span class=\"sig-arg\">e</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return <code>f</code>, the <i>flattening</i> for a given <i>1st \n  eccentricity</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>e</code></strong> - The (1st) eccentricity (0 &lt;= <code>float</code> &lt; 1)</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The flattening (<code>scalar</code> or <code>0</code>).</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.ellipsoids-module.html#e22f\" \n        class=\"link\">e22f</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"egmGeoidHeights\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">egmGeoidHeights</span>&nbsp;(<span class=\"sig-arg\">GeoidHeights_dat</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Generate geoid <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/geoid.html#geoidinst\" \n  target=\"_top\">egm*.pgm</a> height tests from <a \n  href=\"https://SourceForge.net/projects/geographiclib/files/testdata/\" \n  target=\"_top\">GeoidHeights.dat</a> <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/geoid.html#testgeoid\" \n  target=\"_top\">Test data for Geoids</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>GeoidHeights_dat</code></strong> - The un-gz-ed <code>GeoidHeights.dat</code> file (<code>str</code>\n          or <code>file</code> handle).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>For each test, yield a <a \n          href=\"pygeodesy.geoids.GeoidHeight5Tuple-class.html\" \n          class=\"link\">GeoidHeight5Tuple</a><code>(lat, lon, egm84, egm96, \n          egm2008)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.geoids.GeoidError-class.html\">GeoidError</a></strong></code> - Invalid <b><code>GeoidHeights_dat</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        Function <a href=\"pygeodesy.geoids-module.html#egmGeoidHeights\" \n        class=\"link\">egmGeoidHeights</a> is used to test the geoids <a \n        href=\"pygeodesy.geoids.GeoidKarney-class.html\" \n        class=\"link\">GeoidKarney</a> and <a \n        href=\"pygeodesy.geoids.GeoidPGM-class.html\" \n        class=\"link\">GeoidPGM</a>, see PyGeodesy module \n        <code>test/testGeoids.py</code>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"elevation2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">elevation2</span>&nbsp;(<span class=\"sig-arg\">lat</span>,\n        <span class=\"sig-arg\">lon</span>,\n        <span class=\"sig-arg\">timeout</span>=<span class=\"sig-default\">2.0</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Get the geoid elevation at an <code>NAD83</code> to \n  <code>NAVD88</code> location.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat</code></strong> - Latitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lon</code></strong> - Longitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>timeout</code></strong> - Optional, query timeout (seconds).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>An <a href=\"pygeodesy.elevations.Elevation2Tuple-class.html\" \n          class=\"link\">Elevation2Tuple</a><code>(elevation, \n          data_source)</code> or (<code>None, &quot;error&quot;</code>) in \n          case of errors.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>timeout</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        The returned <code>elevation is None</code> if \n        <b><code>lat</code></b> or <b><code>lon</code></b> is invalid or \n        outside the <code>Conterminous US (CONUS)</code>, if conversion \n        failed or if the query timed out.  The \n        <code>&quot;error&quot;</code> is the <code>HTTP-, IO-, SSL-</code>\n        or other <code>-Error</code> as a string (<code>str</code>).\n      </p>\n      <p><strong>See Also:</strong>\n        <a href=\"https://apps.NationalMap.gov/epqs/\" target=\"_top\">USGS \n        Elevation Point Query Service</a>, the <a \n        href=\"https://www.USGS.gov/faqs/what-are-projection-horizontal-and-vertical-datum-units-and-resolution-3dep-standard-dems\"\n        target=\"_top\">FAQ</a>, <a href=\"https://Gist.GitHub.com/pyRobShrk\" \n        target=\"_top\">geoid.py</a>, module <a \n        href=\"pygeodesy.geoids-module.html\" class=\"link\">geoids</a>, \n        classes <a href=\"pygeodesy.geoids.GeoidG2012B-class.html\" \n        class=\"link\">GeoidG2012B</a>, <a \n        href=\"pygeodesy.geoids.GeoidKarney-class.html\" \n        class=\"link\">GeoidKarney</a> and <a \n        href=\"pygeodesy.geoids.GeoidPGM-class.html\" \n        class=\"link\">GeoidPGM</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"elliperim\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">elliperim</span>&nbsp;(<span class=\"sig-arg\">a</span>,\n        <span class=\"sig-arg\">b</span>,\n        <span class=\"sig-arg\">*deg2_1</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED on 2026.02.12, use method <a \n  href=\"pygeodesy.ellipses.Ellipse-class.html#arc\" \n  class=\"link\">pygeodesy.Ellipse.arc</a> or property <a \n  href=\"pygeodesy.ellipses.Ellipse-class.html#perimeter2k_\" \n  class=\"link\">pygeodesy.Ellipse.perimeter2k_</a>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"elliperim_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">elliperim_</span>&nbsp;(<span class=\"sig-arg\">a</span>,\n        <span class=\"sig-arg\">b</span>,\n        <span class=\"sig-arg\">*rad2_1</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED on 2026.02.12, use method <a \n  href=\"pygeodesy.ellipses.Ellipse-class.html#arc_\" \n  class=\"link\">pygeodesy.Ellipse.arc_</a> or property <a \n  href=\"pygeodesy.ellipses.Ellipse-class.html#perimeter2k_\" \n  class=\"link\">pygeodesy.Ellipse.perimeter2k_</a>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"enStr2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">enStr2</span>&nbsp;(<span class=\"sig-arg\">easting</span>,\n        <span class=\"sig-arg\">northing</span>,\n        <span class=\"sig-arg\">prec</span>,\n        <span class=\"sig-arg\">*extras</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use function <a \n  href=\"pygeodesy.streprs-module.html#enstr2\" \n  class=\"link\">pygeodesy.enstr2</a>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"encodeEPSG\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">encodeEPSG</span>&nbsp;(<span class=\"sig-arg\">zone</span>,\n        <span class=\"sig-arg\">hemipole</span>=<span class=\"sig-default\">''</span>,\n        <span class=\"sig-arg\">band</span>=<span class=\"sig-default\">''</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use function <a href=\"pygeodesy.epsg-module.html#encode\" \n  class=\"link\">epsg.encode</a>.</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd><code>EPSG</code> code (<code>int</code>).</dd>\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"enstr2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">enstr2</span>&nbsp;(<span class=\"sig-arg\">easting</span>,\n        <span class=\"sig-arg\">northing</span>,\n        <span class=\"sig-arg\">prec</span>,\n        <span class=\"sig-arg\">*extras</span>,\n        <span class=\"sig-arg\">**wide_dot</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return an MGRS/OSGR easting, northing string representations.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>easting</code></strong> - Easting from false easting (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>northing</code></strong> - Northing from from false northing (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>prec</code></strong> - Precision, the number of <i>decimal</i> digits (<code>int</code>)\n          or if negative, the number of <i>units to drop</i>, like MGRS <a \n          href=\"https://GeographicLib.SourceForge.io/C++/doc/GeoConvert.1.html#PRECISION\"\n          target=\"_top\">PRECISION</a>.</li>\n        <li><strong class=\"pname\"><code>extras</code></strong> - Optional leading items (<code>str</code>s).</li>\n        <li><strong class=\"pname\"><code>wide_dot</code></strong> - Optional keword argument <code><b>wide</b>=5</code> for the \n          number of <i>unit digits</i> (<code>int</code>) and \n          <code><b>dot</b>=False</code> (<code>bool</code>) to insert a \n          decimal point.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><b><code>extras</code></b> + 2-tuple <code>(str(<b>easting</b>), \n          str(<b>northing</b>))</code> or + 2-tuple <code>(&quot;&quot;, \n          &quot;&quot;)</code> for <code><b>prec</b> &lt;= \n          -<b>wide</b></code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>easting</code></b>, <b><code>northing</code></b> \n        or <b><code>prec</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        The <b><code>easting</code></b> and <b><code>northing</code></b> \n        values are <i>truncated, not rounded</i>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"epoch2date\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">epoch2date</span>&nbsp;(<span class=\"sig-arg\">epoch</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the date for a reference frame <code>epoch</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>epoch</code></strong> - Fractional year (<code>scalar</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>3-Tuple <code>(year, month, day)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.TRFError-class.html\">TRFError</a></strong></code> - Invalid <b><code>epoch</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        Any <b><code>year</code></b> is considered a leap year, i.e. having\n        29 days in February.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"equidistant\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">equidistant</span>&nbsp;(<span class=\"sig-arg\">lat0</span>,\n        <span class=\"sig-arg\">lon0</span>,\n        <span class=\"sig-arg\">datum</span>=<span class=\"sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"sig-arg\">exact</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">geodsolve</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return an <a href=\"pygeodesy.azimuthal.EquidistantExact-class.html\" \n  class=\"link\">EquidistantExact</a>, <a \n  href=\"pygeodesy.azimuthal.EquidistantGeodSolve-class.html\" \n  class=\"link\">EquidistantGeodSolve</a> or (if <i>Karney</i>'s <a \n  href=\"https://PyPI.org/project/geographiclib\" \n  target=\"_top\">geographiclib</a> package is installed) an <a \n  href=\"pygeodesy.azimuthal.EquidistantKarney-class.html\" \n  class=\"link\">EquidistantKarney</a>, otherwise an <a \n  href=\"pygeodesy.azimuthal.Equidistant-class.html\" \n  class=\"link\">Equidistant</a> instance.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat0</code></strong> - Latitude of center point (<code>degrees90</code>).</li>\n        <li><strong class=\"pname\"><code>lon0</code></strong> - Longitude of center point (<code>degrees180</code>).</li>\n        <li><strong class=\"pname\"><code>datum</code></strong> - Optional datum or ellipsoid (<a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>, \n          <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a> or <a \n          href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>) or <i>scalar</i> earth radius \n          (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>exact</code></strong> - Return an <a \n          href=\"pygeodesy.azimuthal.EquidistantExact-class.html\" \n          class=\"link\">EquidistantExact</a> instance.</li>\n        <li><strong class=\"pname\"><code>geodsolve</code></strong> - Return an <a \n          href=\"pygeodesy.azimuthal.EquidistantGeodSolve-class.html\" \n          class=\"link\">EquidistantGeodSolve</a> instance.</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> for the projection \n          (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>An <a href=\"pygeodesy.azimuthal.EquidistantExact-class.html\" \n          class=\"link\">EquidistantExact</a>, <a \n          href=\"pygeodesy.azimuthal.EquidistantGeodSolve-class.html\" \n          class=\"link\">EquidistantGeodSolve</a>, <a \n          href=\"pygeodesy.azimuthal.EquidistantKarney-class.html\" \n          class=\"link\">EquidistantKarney</a> or <a \n          href=\"pygeodesy.azimuthal.Equidistant-class.html\" \n          class=\"link\">Equidistant</a> instance.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.azimuthal.AzimuthalError-class.html\">AzimuthalError</a></strong></code> - Invalid <b><code>lat0</code></b> or <b><code>lon0</code></b> or \n        (spherical) <b><code>datum</code></b>.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.GeodesicError-class.html\">GeodesicError</a></strong></code> - Issue with <a \n        href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html\" \n        class=\"link\">GeodesicExact</a>, <a \n        href=\"pygeodesy.geodsolve.GeodesicSolve-class.html\" \n        class=\"link\">GeodesicSolve</a> or <i>Karney</i>'s wrapped \n        <code>Geodesic</code>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>datum</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"equirectangular\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">equirectangular</span>&nbsp;(<span class=\"sig-arg\">lat1</span>,\n        <span class=\"sig-arg\">lon1</span>,\n        <span class=\"sig-arg\">lat2</span>,\n        <span class=\"sig-arg\">lon2</span>,\n        <span class=\"sig-arg\">radius</span>=<span class=\"sig-default\">6371008.771415</span>,\n        <span class=\"sig-arg\">**adjust_limit_wrap</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Approximate the distance between two points using the <a \n  href=\"https://www.Movable-Type.co.UK/scripts/latlong.html#equirectangular\"\n  target=\"_top\">Equirectangular Approximation / Projection</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat1</code></strong> - Start latitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lon1</code></strong> - Start longitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lat2</code></strong> - End latitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lon2</code></strong> - End longitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>radius</code></strong> - Mean earth radius (<code>meter</code>), datum (<a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>) \n          or ellipsoid (<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\"\n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a> or <a \n          href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>adjust_limit_wrap</code></strong> - Optionally, keyword arguments for function <a \n          href=\"pygeodesy.formy-module.html#equirectangular4\" \n          class=\"link\">equirectangular4</a>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Distance (<code>meter</code>, same units as \n          <b><code>radius</code></b> or the datum's ellipsoid axes).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>radius</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.formy-module.html#equirectangular4\" \n        class=\"link\">equirectangular4</a> for more details, the available \n        <b><code>options</code></b>, errors, restrictions and other, \n        approximate or accurate distance functions.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"equirectangular3\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">equirectangular3</span>&nbsp;(<span class=\"sig-arg\">lat1</span>,\n        <span class=\"sig-arg\">lon1</span>,\n        <span class=\"sig-arg\">lat2</span>,\n        <span class=\"sig-arg\">lon2</span>,\n        <span class=\"sig-arg\">**options</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use function <a \n  href=\"pygeodesy.geohash-module.html#equirectangular4\" \n  class=\"link\">pygeodesy.equirectangular4</a>.</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd>3-Tuple <code>(distance2, delta_lat, delta_lon)</code>.</dd>\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"equirectangular4\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">equirectangular4</span>&nbsp;(<span class=\"sig-arg\">geohash1</span>,\n        <span class=\"sig-arg\">geohash2</span>,\n        <span class=\"sig-arg\">radius</span>=<span class=\"sig-default\">6371008.771415</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Approximate the distance between two geohashes using the <a \n  href=\"pygeodesy.formy-module.html#equirectangular\" \n  class=\"link\">pygeodesy.equirectangular</a> formula.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>geohash1</code></strong> - First geohash (<a href=\"pygeodesy.geohash.Geohash-class.html\" \n          class=\"link\">Geohash</a>, <code>LatLon</code> or \n          <code>str</code>).</li>\n        <li><strong class=\"pname\"><code>geohash2</code></strong> - Second geohash (<a href=\"pygeodesy.geohash.Geohash-class.html\" \n          class=\"link\">Geohash</a>, <code>LatLon</code> or \n          <code>str</code>).</li>\n        <li><strong class=\"pname\"><code>radius</code></strong> - Mean earth radius (<code>meter</code>) or <code>None</code>, see \n          method <a \n          href=\"pygeodesy.geohash.Geohash-class.html#equirectangularTo\" \n          class=\"link\">Geohash.equirectangularTo</a>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Approximate distance (<code>meter</code>, same units as \n          <b><code>radius</code></b>), see method <a \n          href=\"pygeodesy.geohash.Geohash-class.html#equirectangularTo\" \n          class=\"link\">Geohash.equirectangularTo</a>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - If <b><code>geohash1</code></b> or <b><code>geohash2</code></b> is \n        not a <a href=\"pygeodesy.geohash.Geohash-class.html\" \n        class=\"link\">Geohash</a>, <code>LatLon</code> or <code>str</code>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"equirectangular_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">equirectangular_</span>&nbsp;(<span class=\"sig-arg\">lat1</span>,\n        <span class=\"sig-arg\">lon1</span>,\n        <span class=\"sig-arg\">lat2</span>,\n        <span class=\"sig-arg\">lon2</span>,\n        <span class=\"sig-arg\">**options</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED on 2024.05.25, use function <a \n  href=\"pygeodesy.geohash-module.html#equirectangular4\" \n  class=\"link\">pygeodesy.equirectangular4</a>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"euclid\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">euclid</span>&nbsp;(<span class=\"sig-arg\">x</span>,\n        <span class=\"sig-arg\">y</span>,\n        <span class=\"sig-arg\">*xy0</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p><i>Appoximate</i> the norm <i class=\"math\">hypot(<b>x</b>, \n  <b>y</b>)</i> by <i class=\"math\">max(abs(<b>x</b>), abs(<b>y</b>)) + \n  min(abs(<b>x</b>), abs(<b>y</b>)) * 0.4142...</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>x</code></strong> - X component (<code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>y</code></strong> - Y component (<code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>xy0</code></strong> - Optional reference <code>(x0, y0)</code> (each \n          <code>scalar</code>, an <a href=\"pygeodesy.fsums.Fsum-class.html\"\n          class=\"link\">Fsum</a> or <a \n          href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Appoximate norm (<code>float</code> or <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"euclid_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">euclid_</span>&nbsp;(<span class=\"sig-arg\">*xs</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p><i>Appoximate</i> the norm <i class=\"math\">sqrt(sum(x**2 for x in \n  xs))</i> by cascaded <a href=\"pygeodesy.fmath-module.html#euclid\" \n  class=\"link\">euclid</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>xs</code></strong> - X values (each <code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>), all positional.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Appoximate norm (<code>float</code> or <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a>).</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.fmath-module.html#euclid\" \n        class=\"link\">euclid</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"euclidean\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">euclidean</span>&nbsp;(<span class=\"sig-arg\">lat1</span>,\n        <span class=\"sig-arg\">lon1</span>,\n        <span class=\"sig-arg\">lat2</span>,\n        <span class=\"sig-arg\">lon2</span>,\n        <span class=\"sig-arg\">radius</span>=<span class=\"sig-default\">6371008.771415</span>,\n        <span class=\"sig-arg\">adjust</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Approximate the <code>Euclidean</code> distance between two \n  (spherical) points.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat1</code></strong> - Start latitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lon1</code></strong> - Start longitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lat2</code></strong> - End latitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lon2</code></strong> - End longitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>radius</code></strong> - Mean earth radius (<code>meter</code>), datum (<a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>) \n          or ellipsoid (<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\"\n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a> or <a \n          href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>) to use.</li>\n        <li><strong class=\"pname\"><code>adjust</code></strong> - Adjust the longitudinal delta by the cosine of the mean latitude \n          (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll \n          <b><code>lat2</code></b> and <b><code>lon2</code></b> \n          (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Distance (<code>meter</code>, same units as \n          <b><code>radius</code></b> or the ellipsoid or datum axes).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>radius</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"https://www.EdWilliams.org/avform.htm#Dist\" \n        target=\"_top\">Distance between two (spherical) points</a>, \n        functions <a href=\"pygeodesy.fmath-module.html#euclid\" \n        class=\"link\">euclid</a>, <a \n        href=\"pygeodesy.formy-module.html#euclidean_\" \n        class=\"link\">euclidean_</a>, <a \n        href=\"pygeodesy.formy-module.html#cosineLaw\" \n        class=\"link\">cosineLaw</a>, <a \n        href=\"pygeodesy.formy-module.html#equirectangular\" \n        class=\"link\">equirectangular</a>, <a \n        href=\"pygeodesy.formy-module.html#flatLocal\" \n        class=\"link\">flatLocal</a> / <a \n        href=\"pygeodesy.formy-module.html#flatLocal\" \n        class=\"link\">hubeny</a>, <a \n        href=\"pygeodesy.formy-module.html#flatPolar\" \n        class=\"link\">flatPolar</a>, <a \n        href=\"pygeodesy.formy-module.html#haversine\" \n        class=\"link\">haversine</a>, <a \n        href=\"pygeodesy.formy-module.html#thomas\" class=\"link\">thomas</a> \n        and <a href=\"pygeodesy.formy-module.html#vincentys\" \n        class=\"link\">vincentys</a> and methods <a \n        href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#distance2\" \n        class=\"link\">Ellipsoid.distance2</a>, \n        <code>LatLon.distanceTo*</code> and \n        <code>LatLon.equirectangularTo</code>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"euclidean_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">euclidean_</span>&nbsp;(<span class=\"sig-arg\">geohash1</span>,\n        <span class=\"sig-arg\">geohash2</span>,\n        <span class=\"sig-arg\">**radius_adjust_wrap</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Approximate the distance between two geohashes using the <a \n  href=\"pygeodesy.formy-module.html#euclidean\" \n  class=\"link\">pygeodesy.euclidean</a> formula.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>geohash1</code></strong> - First geohash (<a href=\"pygeodesy.geohash.Geohash-class.html\" \n          class=\"link\">Geohash</a>, <code>LatLon</code> or \n          <code>str</code>).</li>\n        <li><strong class=\"pname\"><code>geohash2</code></strong> - Second geohash (<a href=\"pygeodesy.geohash.Geohash-class.html\" \n          class=\"link\">Geohash</a>, <code>LatLon</code> or \n          <code>str</code>).</li>\n        <li><strong class=\"pname\"><code>radius_adjust_wrap</code></strong> - Optional keyword arguments for function <a \n          href=\"pygeodesy.formy-module.html#euclidean\" \n          class=\"link\">pygeodesy.euclidean</a>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Approximate distance (<code>meter</code>, same units as \n          <b><code>radius</code></b>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - If <b><code>geohash1</code></b> or <b><code>geohash2</code></b> is \n        not a <a href=\"pygeodesy.geohash.Geohash-class.html\" \n        class=\"link\">Geohash</a>, <code>LatLon</code> or <code>str</code>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"exception_chaining\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">exception_chaining</span>&nbsp;(<span class=\"sig-arg\">exc</span>=<span class=\"sig-default\">None</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Get an error's <i>cause</i> or the exception chaining setting.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>exc</code></strong> - An error instance (<code>Exception</code>) or <code>None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>If <code><b>exc</b> is None</code>, return <code>True</code> if \n          exception chaining is enabled for PyGeodesy errors, \n          <code>False</code> if turned off and <code>None</code> if not \n          available.  If <code><b>exc</b> is not None</code>, return it's \n          error <i>cause</i> or <code>None</code> if there is none.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        To enable exception chaining for <code>pygeodesy</code> errors, set\n        env var <code>PYGEODESY_EXCEPTION_CHAINING</code> to any non-empty \n        value prior to <code>import pygeodesy</code>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"excessAbc\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">excessAbc</span>&nbsp;(<span class=\"sig-arg\">A</span>,\n        <span class=\"sig-arg\">b</span>,\n        <span class=\"sig-arg\">c</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED on 2023.04.04, use function <a \n  href=\"pygeodesy.formy-module.html#excessAbc_\" \n  class=\"link\">pygeodesy.excessAbc_</a>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"excessAbc_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">excessAbc_</span>&nbsp;(<span class=\"sig-arg\">A</span>,\n        <span class=\"sig-arg\">b</span>,\n        <span class=\"sig-arg\">c</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the <i>spherical excess</i> <code>E</code> of a (spherical) \n  triangle from two sides and the included (small) angle.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>A</code></strong> - An interior triangle angle (<code>radians</code>).</li>\n        <li><strong class=\"pname\"><code>b</code></strong> - Frist adjacent triangle side (<code>radians</code>).</li>\n        <li><strong class=\"pname\"><code>c</code></strong> - Second adjacent triangle side (<code>radians</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Spherical excess (<code>radians</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.UnitError-class.html\">UnitError</a></strong></code> - Invalid <b><code>A</code></b>, <b><code>b</code></b> or \n        <b><code>c</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Functions <a href=\"pygeodesy.formy-module.html#excessGirard_\" \n        class=\"link\">excessGirard_</a>, <a \n        href=\"pygeodesy.formy-module.html#excessLHuilier_\" \n        class=\"link\">excessLHuilier_</a> and <a \n        href=\"https://WikiPedia.org/wiki/Spherical_trigonometry\" \n        target=\"_top\">Spherical trigonometry</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"excessCagnoli_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">excessCagnoli_</span>&nbsp;(<span class=\"sig-arg\">a</span>,\n        <span class=\"sig-arg\">b</span>,\n        <span class=\"sig-arg\">c</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the <i>spherical excess</i> <code>E</code> of a (spherical) \n  triangle using <a href=\"https://Zenodo.org/record/35392\" \n  target=\"_top\">Cagnoli's</a> (D.34) formula.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>a</code></strong> - First triangle side (<code>radians</code>).</li>\n        <li><strong class=\"pname\"><code>b</code></strong> - Second triangle side (<code>radians</code>).</li>\n        <li><strong class=\"pname\"><code>c</code></strong> - Third triangle side (<code>radians</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Spherical excess (<code>radians</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.UnitError-class.html\">UnitError</a></strong></code> - Invalid <b><code>a</code></b>, <b><code>b</code></b> or \n        <b><code>c</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.formy-module.html#excessLHuilier_\" \n        class=\"link\">excessLHuilier_</a> and <a \n        href=\"https://WikiPedia.org/wiki/Spherical_trigonometry\" \n        target=\"_top\">Spherical trigonometry</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"excessGirard\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">excessGirard</span>&nbsp;(<span class=\"sig-arg\">A</span>,\n        <span class=\"sig-arg\">B</span>,\n        <span class=\"sig-arg\">C</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED on 2023.04.04, use function <a \n  href=\"pygeodesy.formy-module.html#excessGirard_\" \n  class=\"link\">pygeodesy.excessGirard_</a>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"excessGirard_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">excessGirard_</span>&nbsp;(<span class=\"sig-arg\">A</span>,\n        <span class=\"sig-arg\">B</span>,\n        <span class=\"sig-arg\">C</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the <i>spherical excess</i> <code>E</code> of a (spherical) \n  triangle using <a \n  href=\"https://MathWorld.Wolfram.com/GirardsSphericalExcessFormula.html\" \n  target=\"_top\">Girard's</a> formula.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>A</code></strong> - First interior triangle angle (<code>radians</code>).</li>\n        <li><strong class=\"pname\"><code>B</code></strong> - Second interior triangle angle (<code>radians</code>).</li>\n        <li><strong class=\"pname\"><code>C</code></strong> - Third interior triangle angle (<code>radians</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Spherical excess (<code>radians</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.UnitError-class.html\">UnitError</a></strong></code> - Invalid <b><code>A</code></b>, <b><code>B</code></b> or \n        <b><code>C</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.formy-module.html#excessLHuilier_\" \n        class=\"link\">excessLHuilier_</a> and <a \n        href=\"https://WikiPedia.org/wiki/Spherical_trigonometry\" \n        target=\"_top\">Spherical trigonometry</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"excessKarney\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">excessKarney</span>&nbsp;(<span class=\"sig-arg\">lat1</span>,\n        <span class=\"sig-arg\">lon1</span>,\n        <span class=\"sig-arg\">lat2</span>,\n        <span class=\"sig-arg\">lon2</span>,\n        <span class=\"sig-arg\">radius</span>=<span class=\"sig-default\">6371008.771415</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the surface area of a (spherical) quadrilateral bounded by a \n  segment of a great circle, two meridians and the equator using <a \n  href=\"https://MathOverflow.net/questions/97711/the-area-of-spherical-polygons\"\n  target=\"_top\">Karney's</a> method.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat1</code></strong> - Start latitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lon1</code></strong> - Start longitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lat2</code></strong> - End latitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lon2</code></strong> - End longitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>radius</code></strong> - Mean earth radius (<code>meter</code>), datum (<a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>) \n          or ellipsoid (<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\"\n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a> or <a \n          href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>) or <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll \n          <b><code>lat2</code></b> and <b><code>lon2</code></b> \n          (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Surface area, <i>signed</i> (<i>square</i> <code>meter</code> or \n          the same units as <b><code>radius</code></b> <i>squared</i>) or \n          the <i>spherical excess</i> (<code>radians</code>) if \n          <code><b>radius</b>=0</code> or <code>None</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>radius</code></b>.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.UnitError-class.html\">UnitError</a></strong></code> - Invalid <b><code>lat2</code></b> or <b><code>lat1</code></b>.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Semi-circular longitudinal delta.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Functions <a href=\"pygeodesy.formy-module.html#excessKarney_\" \n        class=\"link\">excessKarney_</a> and <a \n        href=\"pygeodesy.formy-module.html#excessQuad\" \n        class=\"link\">excessQuad</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"excessKarney_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">excessKarney_</span>&nbsp;(<span class=\"sig-arg\">phi2</span>,\n        <span class=\"sig-arg\">phi1</span>,\n        <span class=\"sig-arg\">lam21</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the <i>spherical excess</i> <code>E</code> of a (spherical) \n  quadrilateral bounded by a segment of a great circle, two meridians and \n  the equator using <a \n  href=\"https://MathOverflow.net/questions/97711/the-area-of-spherical-polygons\"\n  target=\"_top\">Karney's</a> method.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>phi2</code></strong> - End latitude (<code>radians</code>).</li>\n        <li><strong class=\"pname\"><code>phi1</code></strong> - Start latitude (<code>radians</code>).</li>\n        <li><strong class=\"pname\"><code>lam21</code></strong> - Longitudinal delta, <i class=\"math\">end-start</i> \n          (<code>radians</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Spherical excess, <i>signed</i> (<code>radians</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ValueError</strong></code> - Semi-circular longitudinal delta <b><code>lam21</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.formy-module.html#excessKarney\" \n        class=\"link\">excessKarney</a> and <a \n        href=\"https://MathOverflow.net/questions/97711/the-area-of-spherical-polygons\"\n        target=\"_top\">Area of a spherical polygon</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"excessLHuilier\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">excessLHuilier</span>&nbsp;(<span class=\"sig-arg\">a</span>,\n        <span class=\"sig-arg\">b</span>,\n        <span class=\"sig-arg\">c</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED on 2023.04.04, use function <a \n  href=\"pygeodesy.formy-module.html#excessLHuilier_\" \n  class=\"link\">pygeodesy.excessLHuilier_</a>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"excessLHuilier_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">excessLHuilier_</span>&nbsp;(<span class=\"sig-arg\">a</span>,\n        <span class=\"sig-arg\">b</span>,\n        <span class=\"sig-arg\">c</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the <i>spherical excess</i> <code>E</code> of a (spherical) \n  triangle using <a \n  href=\"https://MathWorld.Wolfram.com/LHuiliersTheorem.html\" \n  target=\"_top\">L'Huilier's</a>'s Theorem.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>a</code></strong> - First triangle side (<code>radians</code>).</li>\n        <li><strong class=\"pname\"><code>b</code></strong> - Second triangle side (<code>radians</code>).</li>\n        <li><strong class=\"pname\"><code>c</code></strong> - Third triangle side (<code>radians</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Spherical excess (<code>radians</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.UnitError-class.html\">UnitError</a></strong></code> - Invalid <b><code>a</code></b>, <b><code>b</code></b> or \n        <b><code>c</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.formy-module.html#excessCagnoli_\" \n        class=\"link\">excessCagnoli_</a>, <a \n        href=\"pygeodesy.formy-module.html#excessGirard_\" \n        class=\"link\">excessGirard_</a> and <a \n        href=\"https://WikiPedia.org/wiki/Spherical_trigonometry\" \n        target=\"_top\">Spherical trigonometry</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"excessQuad\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">excessQuad</span>&nbsp;(<span class=\"sig-arg\">lat1</span>,\n        <span class=\"sig-arg\">lon1</span>,\n        <span class=\"sig-arg\">lat2</span>,\n        <span class=\"sig-arg\">lon2</span>,\n        <span class=\"sig-arg\">radius</span>=<span class=\"sig-default\">6371008.771415</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the surface area of a (spherical) quadrilateral bounded by a \n  segment of a great circle, two meridians and the equator.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat1</code></strong> - Start latitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lon1</code></strong> - Start longitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lat2</code></strong> - End latitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lon2</code></strong> - End longitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>radius</code></strong> - Mean earth radius (<code>meter</code>), datum (<a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>) \n          or ellipsoid (<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\"\n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a> or <a \n          href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>) or <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll \n          <b><code>lat2</code></b> and <b><code>lon2</code></b> \n          (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Surface area, <i>signed</i> (<i>square</i> <code>meter</code> or \n          the same units as <b><code>radius</code></b> <i>squared</i>) or \n          the <i>spherical excess</i> (<code>radians</code>) if \n          <code><b>radius</b>=0</code> or <code>None</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>radius</code></b>.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.UnitError-class.html\">UnitError</a></strong></code> - Invalid <b><code>lat2</code></b> or <b><code>lat1</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.formy-module.html#excessQuad_\" \n        class=\"link\">excessQuad_</a> and <a \n        href=\"pygeodesy.formy-module.html#excessKarney\" \n        class=\"link\">excessKarney</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"excessQuad_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">excessQuad_</span>&nbsp;(<span class=\"sig-arg\">phi2</span>,\n        <span class=\"sig-arg\">phi1</span>,\n        <span class=\"sig-arg\">lam21</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the <i>spherical excess</i> <code>E</code> of a (spherical) \n  quadrilateral bounded by a segment of a great circle, two meridians and \n  the equator.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>phi2</code></strong> - End latitude (<code>radians</code>).</li>\n        <li><strong class=\"pname\"><code>phi1</code></strong> - Start latitude (<code>radians</code>).</li>\n        <li><strong class=\"pname\"><code>lam21</code></strong> - Longitudinal delta, <i class=\"math\">end-start</i> \n          (<code>radians</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Spherical excess, <i>signed</i> (<code>radians</code>).</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.formy-module.html#excessQuad\" \n        class=\"link\">excessQuad</a> and <a \n        href=\"https://WikiPedia.org/wiki/Spherical_trigonometry\" \n        target=\"_top\">Spherical trigonometry</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"f2e2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">f2e2</span>&nbsp;(<span class=\"sig-arg\">f</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return <code>e2</code>, the <i>1st eccentricity squared</i> for a \n  given <i>flattening</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>f</code></strong> - Flattening (<code>scalar</code> &lt; 1, negative for \n          <i>prolate</i>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The <i>signed</i>, (1st) eccentricity <i>squared</i> \n          (<code>float</code> &lt; 1), <i class=\"math\">f * (2 - f)</i>.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        The result is positive for <i>oblate</i>, negative for \n        <i>prolate</i> or <code>0</code> for <i>near-spherical</i> \n        ellipsoids.\n      </p>\n      <p><strong>See Also:</strong>\n        <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Ellipsoid.html\"\n        target=\"_top\">Eccentricity conversions</a> and <a \n        href=\"https://WikiPedia.org/wiki/Flattening\" \n        target=\"_top\">Flattening</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"f2e22\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">f2e22</span>&nbsp;(<span class=\"sig-arg\">f</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return <code>e22</code>, the <i>2nd eccentricity squared</i> for a \n  given <i>flattening</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>f</code></strong> - Flattening (<code>scalar</code> &lt; 1, negative for \n          <i>prolate</i>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The <i>signed</i>, 2nd eccentricity <i>squared</i> \n          (<code>float</code> &gt; -1 or <code>INF</code>), <i \n          class=\"math\">f * (2 - f) / (1 - f)**2</i>.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        The result is positive for <i>oblate</i>, negative for \n        <i>prolate</i> or <code>0</code> for near-spherical ellipsoids.\n      </p>\n      <p><strong>See Also:</strong>\n        <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Ellipsoid.html\"\n        target=\"_top\">Eccentricity conversions</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"f2e32\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">f2e32</span>&nbsp;(<span class=\"sig-arg\">f</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return <code>e32</code>, the <i>3rd eccentricity squared</i> for a \n  given <i>flattening</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>f</code></strong> - Flattening (<code>scalar</code> &lt; 1, negative for \n          <i>prolate</i>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The <i>signed</i>, 3rd eccentricity <i>squared</i> \n          (<code>float</code>), <i class=\"math\">f * (2 - f) / (1 + (1 - \n          f)**2)</i>.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        The result is positive for <i>oblate</i>, negative for \n        <i>prolate</i> or <code>0</code> for <i>near-spherical</i> \n        ellipsoids.\n      </p>\n      <p><strong>See Also:</strong>\n        <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Ellipsoid.html\"\n        target=\"_top\">Eccentricity conversions</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"f2f2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">f2f2</span>&nbsp;(<span class=\"sig-arg\">f</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return <code>f2</code>, the <i>2nd flattening</i> for a given \n  <i>flattening</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>f</code></strong> - Flattening (<code>scalar</code> &lt; 1, negative for \n          <i>prolate</i>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The <i>signed</i>, 2nd flattening (<code>scalar</code> or \n          <code>INF</code>), <i class=\"math\">f / (1 - f)</i>.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        The result is positive for <i>oblate</i>, negative for \n        <i>prolate</i> or <code>0</code> for <i>near-spherical</i> \n        ellipsoids.\n      </p>\n      <p><strong>See Also:</strong>\n        <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Ellipsoid.html\"\n        target=\"_top\">Eccentricity conversions</a> and <a \n        href=\"https://WikiPedia.org/wiki/Flattening\" \n        target=\"_top\">Flattening</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"f2f_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">f2f_</span>&nbsp;(<span class=\"sig-arg\">f</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return <code>f_</code>, the <i>inverse flattening</i> for a given \n  <i>flattening</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>f</code></strong> - Flattening (<code>scalar</code> &lt; 1, negative for \n          <i>prolate</i>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The inverse flattening (<code>scalar</code> or <code>0</code>), \n          <i class=\"math\">1 / f</i>.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        The result is positive for <i>oblate</i>, negative for \n        <i>prolate</i> or <code>0</code> for <i>near-spherical</i> \n        ellipsoids.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"f2mul_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">f2mul_</span>&nbsp;(<span class=\"sig-arg\">x</span>,\n        <span class=\"sig-arg\">*ys</span>,\n        <span class=\"sig-arg\">**nonfinites</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Cascaded, accurate multiplication <code><b>x</b> * <b>y</b> * <b>y</b>\n  ...</code> for all <b><code>ys</code></b>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>x</code></strong> - Multiplicand (<code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>ys</code></strong> - Multipliers (each <code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>), all positional.</li>\n        <li><strong class=\"pname\"><code>nonfinites</code></strong> - Use <code><b>nonfinites</b>=True</code> or <code>=False</code>, \n          to override default <a \n          href=\"pygeodesy.fsums-module.html#nonfiniterrors\" \n          class=\"link\">nonfiniterrors</a> (<code>bool</code>), see method \n          <a href=\"pygeodesy.fsums.Fsum-class.html#f2mul_\" \n          class=\"link\">Fsum.f2mul_</a>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The cascaded <i>TwoProduct</i> (<code>float</code>, \n          <code>int</code> or <a href=\"pygeodesy.fsums.Fsum-class.html\" \n          class=\"link\">Fsum</a>).</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"https://www.TUHH.De/ti3/paper/rump/OzOgRuOi06.pdf\" \n        target=\"_top\">Equations 2.3</a>\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"f2n\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">f2n</span>&nbsp;(<span class=\"sig-arg\">f</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return <code>n</code>, the <i>3rd flattening</i> for a given \n  <i>flattening</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>f</code></strong> - Flattening (<code>scalar</code> &lt; 1, negative for \n          <i>prolate</i>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The <i>signed</i>, 3rd flattening (-1 &lt;= <code>float</code> \n          &lt; 1), <i class=\"math\">f / (2 - f)</i>.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        The result is positive for <i>oblate</i>, negative for \n        <i>prolate</i> or <code>0</code> for <i>near-spherical</i> \n        ellipsoids.\n      </p>\n      <p><strong>See Also:</strong>\n        <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Ellipsoid.html\"\n        target=\"_top\">Eccentricity conversions</a> and <a \n        href=\"https://WikiPedia.org/wiki/Flattening\" \n        target=\"_top\">Flattening</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"f2product\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">f2product</span>&nbsp;(<span class=\"sig-arg\">two</span>=<span class=\"sig-default\">None</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Turn accurate <i>TwoProduct</i> multiplication on or off.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>two</code></strong> - If <code>True</code>, turn <i>TwoProduct</i> on, if \n          <code>False</code> off or if <code>None</code> or omitted, keep \n          the current setting.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The previous setting (<code>bool</code>).</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <i>TwoProduct</i> multiplication is based on the \n        <i>TwoProductFMA</i> <a \n        href=\"https://www.TUHH.De/ti3/paper/rump/OgRuOi05.pdf\" \n        target=\"_top\">Algorithm 3.5</a> using function \n        <code>math.fma</code> from Python 3.13 and later or an equivalent, \n        slower implementation when not available.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"fStr\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">fStr</span>&nbsp;(<span class=\"sig-arg\">floats</span>,\n        <span class=\"sig-arg\">prec</span>=<span class=\"sig-default\">6</span>,\n        <span class=\"sig-arg\">fmt</span>=<span class=\"sig-default\">'f'</span>,\n        <span class=\"sig-arg\">ints</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">sep</span>=<span class=\"sig-default\">', '</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use function <a href=\"pygeodesy.streprs-module.html#fstr\" \n  class=\"link\">fstr</a>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"fStrzs\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">fStrzs</span>&nbsp;(<span class=\"sig-arg\">floatstr</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use function <a \n  href=\"pygeodesy.streprs-module.html#fstrzs\" \n  class=\"link\">pygeodesy.fstrzs</a>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"f_2f\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">f_2f</span>&nbsp;(<span class=\"sig-arg\">f_</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return <code>f</code>, the <i>flattening</i> for a given <i>inverse \n  flattening</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>f_</code></strong> - Inverse flattening (<code>scalar</code> &gt;&gt;&gt; 1).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The flattening (<code>scalar</code> or <code>0</code>), <i \n          class=\"math\">1 / f_</i>.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        The result is positive for <i>oblate</i>, negative for \n        <i>prolate</i> or <code>0</code> for <i>near-spherical</i> \n        ellipsoids.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"facos1\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">facos1</span>&nbsp;(<span class=\"sig-arg\">x</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Fast approximation of <a href=\"pygeodesy.utily-module.html#acos1\" \n  class=\"link\">pygeodesy.acos1</a><code>(<b>x</b>)</code>, scalar.</p>\n  <dl class=\"fields\">\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a \n        href=\"https://GitHub.com/michaldrobot/ShaderFastLibs/blob/master/ShaderFastMathLib.h\"\n        target=\"_top\">ShaderFastLibs.h</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"false2f\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">false2f</span>&nbsp;(<span class=\"sig-arg\">value</span>,\n        <span class=\"sig-arg\">name</span>=<span class=\"sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">value</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"sig-arg\">false</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">Error</span>=<span class=\"sig-default\">&lt;type 'exceptions.ValueError'&gt;</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use class <a href=\"pygeodesy.units.Easting-class.html\" \n  class=\"link\">Easting</a> or <a href=\"pygeodesy.units.Northing-class.html\"\n  class=\"link\">Northing</a>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"falsed2f\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">falsed2f</span>&nbsp;(<span class=\"sig-arg\">falsed</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">Error</span>=<span class=\"sig-default\">&lt;type 'exceptions.ValueError'&gt;</span>,\n        <span class=\"sig-arg\">**name_value</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use class <a href=\"pygeodesy.units.Easting-class.html\" \n  class=\"link\">Easting</a> or <a href=\"pygeodesy.units.Northing-class.html\"\n  class=\"link\">Northing</a>.</p>\n  <p>Convert a falsed east-/northing to non-negative \n  <code>float</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>falsed</code></strong> - Value includes false origin (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>Error</code></strong> - Optional, overriding error (<code>Exception</code>).</li>\n        <li><strong class=\"pname\"><code>name_value</code></strong> - One <code><b>name</b>=value</code> pair.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The value (<code>float</code>).</dd>\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>Error</strong></code> - Invalid or negative <code><b>name</b>=value</code>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"fasin1\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">fasin1</span>&nbsp;(<span class=\"sig-arg\">x</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Fast approximation of <a href=\"pygeodesy.utily-module.html#asin1\" \n  class=\"link\">pygeodesy.asin1</a><code>(<b>x</b>)</code>, scalar.</p>\n  <dl class=\"fields\">\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"pygeodesy.fmath-module.html#facos1\" \n        class=\"link\">facos1</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"fatan1\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">fatan1</span>&nbsp;(<span class=\"sig-arg\">x</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Fast approximation of <code>atan(<b>x</b>)</code> for <code>0 &lt;= \n  <b>x</b> &lt; 1</code>, <i>unchecked</i>.</p>\n  <dl class=\"fields\">\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a \n        href=\"https://GitHub.com/michaldrobot/ShaderFastLibs/blob/master/ShaderFastMathLib.h\"\n        target=\"_top\">ShaderFastLibs.h</a> and <a \n        href=\"http://www-Labs.IRO.UMontreal.CA/~mignotte/IFT2425/Documents/EfficientApproximationArctgFunction.pdf\"\n        target=\"_top\">Efficient approximations for the arctangent \n        function</a>, IEEE Signal Processing Magazine, 111, May 2006.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"fatan2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">fatan2</span>&nbsp;(<span class=\"sig-arg\">y</span>,\n        <span class=\"sig-arg\">x</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Fast approximation of <code>atan2(<b>y</b>, <b>x</b>)</code>, \n  scalar.</p>\n  <dl class=\"fields\">\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a \n        href=\"https://GitHub.com/CesiumGS/cesium/blob/master/Source/Shaders/Builtin/Functions/fastApproximateAtan.glsl\"\n        target=\"_top\">fastApproximateAtan(x, y)</a> and <a \n        href=\"pygeodesy.fmath-module.html#fatan1\" class=\"link\">fatan1</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"fathom2m\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">fathom2m</span>&nbsp;(<span class=\"sig-arg\">fathoms</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert a length in <i>Imperial</i> fathoms to meter.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>fathoms</code></strong> - Length in fathoms (<code>scalar</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Length in <code>meter</code> (<code>float</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>fathoms</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.utily-module.html#toise2m\" \n        class=\"link\">toise2m</a>, <a \n        href=\"https://WikiPedia.org/wiki/Fathom\" target=\"_top\">Fathom</a> \n        and <a href=\"https://WikiPedia.org/wiki/Klafter\" \n        target=\"_top\">Klafter</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"favg\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">favg</span>&nbsp;(<span class=\"sig-arg\">a</span>,\n        <span class=\"sig-arg\">b</span>,\n        <span class=\"sig-arg\">f</span>=<span class=\"sig-default\">0.5</span>,\n        <span class=\"sig-arg\">nonfinites</span>=<span class=\"sig-default\">True</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the precise average of two values.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>a</code></strong> - One (<code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>b</code></strong> - Other (<code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>f</code></strong> - Optional fraction (<code>float</code>).</li>\n        <li><strong class=\"pname\"><code>nonfinites</code></strong> - Optional setting, see function <a \n          href=\"pygeodesy.fmath-module.html#fma\" class=\"link\">fma</a>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><i class=\"math\">a + f * (b - a)</i> (<code>float</code>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"fdot\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">fdot</span>&nbsp;(<span class=\"sig-arg\">xs</span>,\n        <span class=\"sig-arg\">*ys</span>,\n        <span class=\"sig-arg\">**start_f2product_nonfinites</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the precision dot product <i class=\"math\">start + sum(xs[i] * \n  ys[i] for i in range(len(xs)))</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>xs</code></strong> - Iterable of values (each <code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>ys</code></strong> - Other values (each <code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>), all positional.</li>\n        <li><strong class=\"pname\"><code>start_f2product_nonfinites</code></strong> - Optional bias <code><b>start</b>=0</code> (<code>scalar</code>, \n          an <a href=\"pygeodesy.fsums.Fsum-class.html\" \n          class=\"link\">Fsum</a> or <a \n          href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>) and settings \n          <code><b>f2product</b>=None</code> (<code>bool</code>) and \n          <code><b>nonfinites=True</b></code> (<code>bool</code>), see \n          class <a href=\"pygeodesy.fsums.Fsum-class.html#__init__\" \n          class=\"link\">Fsum</a>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Dot product (<code>float</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.LenError-class.html\">LenError</a></strong></code> - Unequal <code>len(<b>xs</b>)</code> and \n        <code>len(<b>ys</b>)</code>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Class <a href=\"pygeodesy.fmath.Fdot-class.html\" \n        class=\"link\">Fdot</a>, <a \n        href=\"https://www.TUHH.De/ti3/paper/rump/OgRuOi05.pdf\" \n        target=\"_top\">Algorithm 5.10 <b>DotK</b></a> and function \n        <code>math.sumprod</code> in Python 3.12 and later.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"fdot3\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">fdot3</span>&nbsp;(<span class=\"sig-arg\">xs</span>,\n        <span class=\"sig-arg\">ys</span>,\n        <span class=\"sig-arg\">zs</span>,\n        <span class=\"sig-arg\">**start_f2product_nonfinites</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the (precision) dot product <i class=\"math\">start + sum(xs[i] *\n  ys[i] * zs[i] for i in range(len(xs)))</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>xs</code></strong> - X values iterable (each <code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>ys</code></strong> - Y values iterable (each <code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>zs</code></strong> - Z values iterable (each <code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Dot product (<code>float</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.LenError-class.html\">LenError</a></strong></code> - Unequal <code>len(<b>xs</b>)</code>, <code>len(<b>ys</b>)</code> \n        and/or <code>len(<b>zs</b>)</code>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.fmath-module.html#fdot\" \n        class=\"link\">fdot</a> for further details.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"fdot_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">fdot_</span>&nbsp;(<span class=\"sig-arg\">*xys</span>,\n        <span class=\"sig-arg\">**start_f2product_nonfinites</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the (precision) dot product <i class=\"math\">start + sum(xys[i] \n  * xys[i+1] for i in range(0, len(xys), <b>2</b>))</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>xys</code></strong> - Pairwise values (each <code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>), all positional.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Dot product (<code>float</code>).</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.fmath-module.html#fdot\" \n        class=\"link\">fdot</a> for further details.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"fhorner\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">fhorner</span>&nbsp;(<span class=\"sig-arg\">x</span>,\n        <span class=\"sig-arg\">*cs</span>,\n        <span class=\"sig-arg\">**incx</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Horner form evaluation of polynomial <i class=\"math\">sum(cs[i] * x**i \n  for i=0..n)</i> as in- or decreasing exponent <i class=\"math\">sum(... \n  i=n..0)</i>, where <code>n = len(cs) - 1</code>.</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd>Horner sum (<code>float</code>).</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Class <a href=\"pygeodesy.fmath.Fhorner-class.html#__init__\" \n        class=\"link\">Fhorner</a> for further details.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"fidw\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">fidw</span>&nbsp;(<span class=\"sig-arg\">xs</span>,\n        <span class=\"sig-arg\">ds</span>,\n        <span class=\"sig-arg\">beta</span>=<span class=\"sig-default\">2</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Interpolate using <a \n  href=\"https://WikiPedia.org/wiki/Inverse_distance_weighting\" \n  target=\"_top\">Inverse Distance Weighting</a> (IDW).</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>xs</code></strong> - Known values (each <code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>ds</code></strong> - Non-negative distances (each <code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>beta</code></strong> - Inverse distance power (<code>int</code>, 0, 1, 2, or 3).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Interpolated value <code>x</code> (<code>float</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.LenError-class.html\">LenError</a></strong></code> - Unequal or zero <code>len(<b>ds</b>)</code> and \n        <code>len(<b>xs</b>)</code>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - An invalid <b><code>ds</code></b> or <b><code>xs</code></b>.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>beta</code></b>, negative <b><code>ds</code></b> \n        or weighted <b><code>ds</code></b> below <a \n        href=\"pygeodesy-module.html#EPS\" class=\"link\">EPS</a>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        Using <code><b>beta</b>=0</code> returns the mean of \n        <b><code>xs</code></b>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"flatLocal\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">flatLocal</span>&nbsp;(<span class=\"sig-arg\">lat1</span>,\n        <span class=\"sig-arg\">lon1</span>,\n        <span class=\"sig-arg\">lat2</span>,\n        <span class=\"sig-arg\">lon2</span>,\n        <span class=\"sig-arg\">datum</span>=<span class=\"sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"sig-arg\">scaled</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the distance between two (ellipsoidal) points using the <a \n  href=\"https://WikiPedia.org/wiki/Geographical_distance#Ellipsoidal_Earth_projected_to_a_plane\"\n  target=\"_top\">ellipsoidal Earth to plane projection</a> aka <a \n  href=\"https://www.OVG.AT/de/vgi/files/pdf/3781/\" target=\"_top\">Hubeny</a>\n  formula.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat1</code></strong> - Start latitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lon1</code></strong> - Start longitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lat2</code></strong> - End latitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lon2</code></strong> - End longitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>datum</code></strong> - Datum (<a href=\"pygeodesy.datums.Datum-class.html\" \n          class=\"link\">Datum</a>) or ellipsoid (<a \n          href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a> or <a \n          href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>) to use.</li>\n        <li><strong class=\"pname\"><code>scaled</code></strong> - Scale prime_vertical by <code>cos(<b>phi</b>)</code> \n          (<code>bool</code>), see method <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#roc2_\" \n          class=\"link\">pygeodesy.Ellipsoid.roc2_</a>.</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll \n          <b><code>lat2</code></b> and <b><code>lon2</code></b> \n          (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Distance (<code>meter</code>, same units as the \n          <b><code>datum</code></b>'s or ellipsoid axes).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>datum</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        The meridional and prime_vertical radii of curvature are taken and \n        scaled at the mean of both latitude.\n      </p>\n      <p><strong>See Also:</strong>\n        Functions <a href=\"pygeodesy.formy-module.html#flatLocal_\" \n        class=\"link\">flatLocal_</a> or <a \n        href=\"pygeodesy.formy-module.html#flatLocal_\" \n        class=\"link\">hubeny_</a>, <a \n        href=\"pygeodesy.formy-module.html#cosineLaw\" \n        class=\"link\">cosineLaw</a>, <a \n        href=\"pygeodesy.formy-module.html#equirectangular\" \n        class=\"link\">equirectangular</a>, <a \n        href=\"pygeodesy.formy-module.html#euclidean\" \n        class=\"link\">euclidean</a>, <a \n        href=\"pygeodesy.formy-module.html#flatPolar\" \n        class=\"link\">flatPolar</a>, <a \n        href=\"pygeodesy.formy-module.html#haversine\" \n        class=\"link\">haversine</a>, <a \n        href=\"pygeodesy.formy-module.html#thomas\" class=\"link\">thomas</a> \n        and <a href=\"pygeodesy.formy-module.html#vincentys\" \n        class=\"link\">vincentys</a>, method <a \n        href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#distance2\" \n        class=\"link\">Ellipsoid.distance2</a> and <a \n        href=\"https://www.EdWilliams.org/avform.htm#flat\" \n        target=\"_top\">local, flat earth approximation</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"flatLocal_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">flatLocal_</span>&nbsp;(<span class=\"sig-arg\">phi2</span>,\n        <span class=\"sig-arg\">phi1</span>,\n        <span class=\"sig-arg\">lam21</span>,\n        <span class=\"sig-arg\">datum</span>=<span class=\"sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"sig-arg\">scaled</span>=<span class=\"sig-default\">True</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the <i>angular</i> distance between two (ellipsoidal) points \n  using the <a \n  href=\"https://WikiPedia.org/wiki/Geographical_distance#Ellipsoidal_Earth_projected_to_a_plane\"\n  target=\"_top\">ellipsoidal Earth to plane projection</a> aka <a \n  href=\"https://www.OVG.AT/de/vgi/files/pdf/3781/\" target=\"_top\">Hubeny</a>\n  formula.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>phi2</code></strong> - End latitude (<code>radians</code>).</li>\n        <li><strong class=\"pname\"><code>phi1</code></strong> - Start latitude (<code>radians</code>).</li>\n        <li><strong class=\"pname\"><code>lam21</code></strong> - Longitudinal delta, <i class=\"math\">end-start</i> \n          (<code>radians</code>).</li>\n        <li><strong class=\"pname\"><code>datum</code></strong> - Datum (<a href=\"pygeodesy.datums.Datum-class.html\" \n          class=\"link\">Datum</a>) or ellipsoid (<a \n          href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a> or <a \n          href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>) to use.</li>\n        <li><strong class=\"pname\"><code>scaled</code></strong> - Scale prime_vertical by <code>cos(<b>phi</b>)</code> \n          (<code>bool</code>), see method <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#roc2_\" \n          class=\"link\">pygeodesy.Ellipsoid.roc2_</a>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Angular distance (<code>radians</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>datum</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        The meridional and prime_vertical radii of curvature are taken and \n        scaled <i>at the mean of both latitude</i>.\n      </p>\n      <p><strong>See Also:</strong>\n        Functions <a href=\"pygeodesy.formy-module.html#flatLocal\" \n        class=\"link\">flatLocal</a> or <a \n        href=\"pygeodesy.formy-module.html#flatLocal\" \n        class=\"link\">hubeny</a>, <a \n        href=\"pygeodesy.formy-module.html#cosineLaw_\" \n        class=\"link\">cosineLaw_</a>, <a \n        href=\"pygeodesy.formy-module.html#flatPolar_\" \n        class=\"link\">flatPolar_</a>, <a \n        href=\"pygeodesy.formy-module.html#euclidean_\" \n        class=\"link\">euclidean_</a>, <a \n        href=\"pygeodesy.formy-module.html#haversine_\" \n        class=\"link\">haversine_</a>, <a \n        href=\"pygeodesy.formy-module.html#thomas_\" class=\"link\">thomas_</a>\n        and <a href=\"pygeodesy.formy-module.html#vincentys_\" \n        class=\"link\">vincentys_</a> and <a \n        href=\"https://www.EdWilliams.org/avform.htm#flat\" \n        target=\"_top\">local, flat earth approximation</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"flatPolar\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">flatPolar</span>&nbsp;(<span class=\"sig-arg\">lat1</span>,\n        <span class=\"sig-arg\">lon1</span>,\n        <span class=\"sig-arg\">lat2</span>,\n        <span class=\"sig-arg\">lon2</span>,\n        <span class=\"sig-arg\">radius</span>=<span class=\"sig-default\">6371008.771415</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the distance between two (spherical) points using the <a \n  href=\"https://WikiPedia.org/wiki/Geographical_distance#Polar_coordinate_flat-Earth_formula\"\n  target=\"_top\">polar coordinate flat-Earth</a> formula.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat1</code></strong> - Start latitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lon1</code></strong> - Start longitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lat2</code></strong> - End latitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lon2</code></strong> - End longitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>radius</code></strong> - Mean earth radius (<code>meter</code>), datum (<a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>) \n          or ellipsoid (<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\"\n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a> or <a \n          href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>) to use.</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and \n          <b><code>lat2</code></b> and <b><code>lon2</code></b> \n          (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Distance (<code>meter</code>, same units as \n          <b><code>radius</code></b> or the datum's or ellipsoid axes).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>radius</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Functions <a href=\"pygeodesy.formy-module.html#flatPolar_\" \n        class=\"link\">flatPolar_</a>, <a \n        href=\"pygeodesy.formy-module.html#cosineLaw\" \n        class=\"link\">cosineLaw</a>, <a \n        href=\"pygeodesy.formy-module.html#flatLocal\" \n        class=\"link\">flatLocal</a> / <a \n        href=\"pygeodesy.formy-module.html#flatLocal\" \n        class=\"link\">hubeny</a>, <a \n        href=\"pygeodesy.formy-module.html#equirectangular\" \n        class=\"link\">equirectangular</a>, <a \n        href=\"pygeodesy.formy-module.html#euclidean\" \n        class=\"link\">euclidean</a>, <a \n        href=\"pygeodesy.formy-module.html#haversine\" \n        class=\"link\">haversine</a>, <a \n        href=\"pygeodesy.formy-module.html#thomas\" class=\"link\">thomas</a> \n        and <a href=\"pygeodesy.formy-module.html#vincentys\" \n        class=\"link\">vincentys</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"flatPolar_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">flatPolar_</span>&nbsp;(<span class=\"sig-arg\">phi2</span>,\n        <span class=\"sig-arg\">phi1</span>,\n        <span class=\"sig-arg\">lam21</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the <i>angular</i> distance between two (spherical) points \n  using the <a \n  href=\"https://WikiPedia.org/wiki/Geographical_distance#Polar_coordinate_flat-Earth_formula\"\n  target=\"_top\">polar coordinate flat-Earth</a> formula.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>phi2</code></strong> - End latitude (<code>radians</code>).</li>\n        <li><strong class=\"pname\"><code>phi1</code></strong> - Start latitude (<code>radians</code>).</li>\n        <li><strong class=\"pname\"><code>lam21</code></strong> - Longitudinal delta, <i class=\"math\">end-start</i> \n          (<code>radians</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Angular distance (<code>radians</code>).</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Functions <a href=\"pygeodesy.formy-module.html#flatPolar\" \n        class=\"link\">flatPolar</a>, <a \n        href=\"pygeodesy.formy-module.html#cosineLaw_\" \n        class=\"link\">cosineLaw_</a>, <a \n        href=\"pygeodesy.formy-module.html#euclidean_\" \n        class=\"link\">euclidean_</a>, <a \n        href=\"pygeodesy.formy-module.html#flatLocal_\" \n        class=\"link\">flatLocal_</a> / <a \n        href=\"pygeodesy.formy-module.html#flatLocal_\" \n        class=\"link\">hubeny_</a>, <a \n        href=\"pygeodesy.formy-module.html#haversine_\" \n        class=\"link\">haversine_</a>, <a \n        href=\"pygeodesy.formy-module.html#thomas_\" class=\"link\">thomas_</a>\n        and <a href=\"pygeodesy.formy-module.html#vincentys_\" \n        class=\"link\">vincentys_</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"float0\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">float0</span>&nbsp;(<span class=\"sig-arg\">*xs</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED on 2023.04.21, use function <a \n  href=\"pygeodesy.constants-module.html#float0_\" \n  class=\"link\">pygeodesy.float0_</a>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"float_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">float_</span>&nbsp;(<span class=\"sig-arg\">x</span>,\n        <span class=\"sig-arg\">sets</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Get scalar as <code>float</code> or <i>intern</i>'ed \n  <code>float</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>x</code></strong> - The scalar (<code>scalar</code>).</li>\n        <li><strong class=\"pname\"><code>sets</code></strong> - Use <code>True</code> to <code>intern</code> the \n          <b><code>f</code></b>, otherwise don't (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <code>float</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>x</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"floats_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">floats_</span>&nbsp;(<span class=\"sig-arg\">*xs</span>,\n        <span class=\"sig-arg\">**sets</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Yield each scalar as <code>float</code> or <i>intern</i>'ed \n  <code>float</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>xs</code></strong> - One more values (<code>scalar</code>), all positional.</li>\n        <li><strong class=\"pname\"><code>sets</code></strong> - Use <code><b>sets</b>=True</code> to <code>intern</code> each \n          <b><code>fs</code></b>, otherwise don't <code>intern</code>.</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ValueError</strong></code> - Some <b><code>xs</code></b> is not <code>scalar</code>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"fma\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">fma</span>&nbsp;(<span class=\"sig-arg\">x</span>,\n        <span class=\"sig-arg\">y</span>,\n        <span class=\"sig-arg\">z</span>,\n        <span class=\"sig-arg\">**nonfinites</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Fused-multiply-add, using <code>math.fma(x, y, z)</code> in Python \n  3.13+ or an equivalent implementation.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>x</code></strong> - Multiplicand (<code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>y</code></strong> - Multiplier (<code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>z</code></strong> - Addend (<code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>nonfinites</code></strong> - Use <code><b>nonfinites</b>=True</code> or <code>=False</code>, \n          to override default <a \n          href=\"pygeodesy.fsums-module.html#nonfiniterrors\" \n          class=\"link\">nonfiniterrors</a> (<code>bool</code>), see method \n          <a href=\"pygeodesy.fsums.Fsum-class.html#fma\" \n          class=\"link\">Fsum.fma</a>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>(x * y) + z</code> (<code>float</code> or <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"fmean\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">fmean</span>&nbsp;(<span class=\"sig-arg\">xs</span>,\n        <span class=\"sig-arg\">nonfinites</span>=<span class=\"sig-default\">True</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the accurate mean <i class=\"math\">sum(xs) / len(xs)</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>xs</code></strong> - Values (each <code>scalar</code>, or <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Mean value (<code>float</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.LenError-class.html\">LenError</a></strong></code> - No <b><code>xs</code></b> values.</li>\n        <li><code><strong class='fraise'>OverflowError</strong></code> - Partial <code>2sum</code> overflow.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"fmean_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">fmean_</span>&nbsp;(<span class=\"sig-arg\">*xs</span>,\n        <span class=\"sig-arg\">**nonfinites</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the accurate mean <i class=\"math\">sum(xs) / len(xs)</i>.</p>\n  <dl class=\"fields\">\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.fmath-module.html#fmean\" \n        class=\"link\">fmean</a> for further details.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"fpolynomial\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">fpolynomial</span>&nbsp;(<span class=\"sig-arg\">x</span>,\n        <span class=\"sig-arg\">*cs</span>,\n        <span class=\"sig-arg\">**over_f2product_nonfinites</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Evaluate the polynomial <i class=\"math\">sum(cs[i] * x**i for \n  i=0..len(cs)) [/ over]</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>over_f2product_nonfinites</code></strong> - Optional final divisor <code><b>over</b>=None</code> \n          (<i>non-zero</i> <code>scalar</code>) and other settings, see \n          class <a href=\"pygeodesy.fmath.Fpolynomial-class.html#__init__\" \n          class=\"link\">Fpolynomial</a>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Polynomial value (<code>float</code> or <a \n          href=\"pygeodesy.fmath.Fpolynomial-class.html\" \n          class=\"link\">Fpolynomial</a>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"fpowers\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">fpowers</span>&nbsp;(<span class=\"sig-arg\">x</span>,\n        <span class=\"sig-arg\">n</span>,\n        <span class=\"sig-arg\">alts</span>=<span class=\"sig-default\">0</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return a series of powers <i class=\"math\">[x**i for i=1..n]</i>, note \n  <i>1..!</i></p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>x</code></strong> - Value (<code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>n</code></strong> - Highest exponent (<code>int</code>).</li>\n        <li><strong class=\"pname\"><code>alts</code></strong> - Only alternating powers, starting with this exponent \n          (<code>int</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Tuple of powers of <b><code>x</code></b> (each \n          <code>type(<b>x</b>)</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>x</code></b> or <b><code>n</code></b> not \n        <code>int</code>.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Non-finite <b><code>x</code></b> or invalid <b><code>n</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"fprod\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">fprod</span>&nbsp;(<span class=\"sig-arg\">xs</span>,\n        <span class=\"sig-arg\">start</span>=<span class=\"sig-default\">1</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Iterable product, like <code>math.prod</code> or \n  <code>numpy.prod</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>xs</code></strong> - Iterable of values to be multiplied (each <code>scalar</code>, an\n          <a href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> \n          or <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>start</code></strong> - Initial value, also the value returned for an empty \n          <b><code>xs</code></b> (<code>scalar</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The product (<code>float</code> or <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a>).</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a \n        href=\"https://docs.SciPy.org/doc/numpy/reference/generated/numpy.prod.html\"\n        target=\"_top\">NumPy.prod</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"fractional\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">fractional</span>&nbsp;(<span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">fi</span>,\n        <span class=\"sig-arg\">j</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">LatLon</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">Vector</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the point at a given <i>fractional</i> index.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>points</code></strong> - The points (<code>LatLon</code>[], <a \n          href=\"pygeodesy.points.Numpy2LatLon-class.html\" \n          class=\"link\">Numpy2LatLon</a>[], <a \n          href=\"pygeodesy.points.Tuple2LatLon-class.html\" \n          class=\"link\">Tuple2LatLon</a>[], <code>Cartesian</code>[], \n          <code>Vector3d</code>[], <a \n          href=\"pygeodesy.namedTuples.Vector3Tuple-class.html\" \n          class=\"link\">Vector3Tuple</a>[]).</li>\n        <li><strong class=\"pname\"><code>fi</code></strong> - The fractional index (<a href=\"pygeodesy.units.FIx-class.html\" \n          class=\"link\">FIx</a>, <code>float</code> or <code>int</code>).</li>\n        <li><strong class=\"pname\"><code>j</code></strong> - Optionally, index of the other point (<code>int</code>).</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll the \n          <b>{points}</b> (<code>bool</code>) or <code>None</code> for a \n          backward compatible <a \n          href=\"pygeodesy.namedTuples.LatLon2Tuple-class.html\" \n          class=\"link\">LatLon2Tuple</a> or <a href=pygeodesy-LatLon-attributes-table.html><b><code>LatLon</code></b></a> with \n          averaged lat- and longitudes.  Use <code>True</code> or \n          <code>False</code> to get the <i>fractional</i> point computed by\n          method <code><b>points</b>[fi].intermediateTo</code>.</li>\n        <li><strong class=\"pname\"><code>LatLon</code></strong> - Optional class to return the <i>intermediate</i>, \n          <i>fractional</i> point (<code>LatLon</code>) or \n          <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>Vector</code></strong> - Optional class to return the <i>intermediate</i>, \n          <i>fractional</i> point (<code>Cartesian</code>, \n          <code>Vector3d</code>) or <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>kwds</code></strong> - Optional, additional <a href=pygeodesy-LatLon-attributes-table.html><b><code>LatLon</code></b></a> <i>or</i> \n          <b><code>Vector</code></b> keyword arguments, ignored if both \n          <code><b>LatLon</b></code> and <code><b>Vector</b></code> are \n          <code>None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.namedTuples.LatLon2Tuple-class.html\" \n          class=\"link\">LatLon2Tuple</a><code>(lat, lon)</code> if \n          <b><code>wrap</code></b>, <a href=pygeodesy-LatLon-attributes-table.html><b><code>LatLon</code></b></a> and \n          <b><code>Vector</code></b> all are <code>None</code>, the \n          defaults.\n          <p>An instance of <a href=pygeodesy-LatLon-attributes-table.html><b><code>LatLon</code></b></a> if not \n          <code>None</code> <i>or</i> an instance of \n          <b><code>Vector</code></b> if not <code>None</code>.</p>\n          <p>Otherwise with <b><code>wrap</code></b> either \n          <code>True</code> or <code>False</code> and \n          <a href=pygeodesy-LatLon-attributes-table.html><b><code>LatLon</code></b></a> and <b><code>Vector</code></b> both \n          <code>None</code>, an instance of <b><code>points</code></b>' \n          (sub-)class <code>intermediateTo</code> <i>fractional</i>.</p>\n          <p>Summarized as follows:</p>\n<pre class=\"py-doctest\">\n<span class=\"py-prompt\">&gt;&gt;&gt; </span> wrap  | LatLon | Vector | returned type/value\n<span class=\"py-output\">#   -------+--------+--------+--------------+------</span>\n<span class=\"py-output\">#          |        |        | LatLon2Tuple | favg</span>\n<span class=\"py-output\">#    None  |  None  |  None  |   or**       |</span>\n<span class=\"py-output\">#          |        |        | Vector3Tuple | favg</span>\n<span class=\"py-output\">#    None  | LatLon |  None  | LatLon       | favg</span>\n<span class=\"py-output\">#    None  |  None  | Vector | Vector       | favg</span>\n<span class=\"py-output\">#   -------+--------+--------+--------------+------</span>\n<span class=\"py-output\">#    True  |  None  |  None  | points'      | .iTo</span>\n<span class=\"py-output\">#    True  | LatLon |  None  | LatLon       | .iTo</span>\n<span class=\"py-output\">#    True  |  None  | Vector | Vector       | .iTo</span>\n<span class=\"py-output\">#   -------+--------+--------+--------------+------</span>\n<span class=\"py-output\">#    False |  None  |  None  | points'      | .iTo</span>\n<span class=\"py-output\">#    False | LatLon |  None  | LatLon       | .iTo</span>\n<span class=\"py-output\">#    False |  None  | Vector | Vector       | .iTo</span>\n<span class=\"py-output\"># _____</span>\n<span class=\"py-output\"># favg) averaged lat, lon or x, y, z values</span>\n<span class=\"py-output\"># .iTo) value from points[fi].intermediateTo</span>\n<span class=\"py-output\"># **) depends on base class of points[fi]</span></pre></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>IndexError</strong></code> - Fractional index <b><code>fi</code></b> invalid or \n        <b><code>points</code></b> not subscriptable or not closed.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <a href=pygeodesy-LatLon-attributes-table.html><b><code>LatLon</code></b></a>, <b><code>Vector</code></b> or \n        <b><code>kwds</code></b> argument.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Class <a href=\"pygeodesy.units.FIx-class.html\" class=\"link\">FIx</a>\n        and method <a href=\"pygeodesy.units.FIx-class.html#fractional\" \n        class=\"link\">FIx.fractional</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"frandoms\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">frandoms</span>&nbsp;(<span class=\"sig-arg\">n</span>,\n        <span class=\"sig-arg\">seeded</span>=<span class=\"sig-default\">None</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Generate <code>n</code> (long) lists of random \n  <code>floats</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>n</code></strong> - Number of lists to generate (<code>int</code>, non-negative).</li>\n        <li><strong class=\"pname\"><code>seeded</code></strong> - If <code>scalar</code>, use \n          <code>random.seed(<b>seeded</b>)</code> or if <code>True</code>, \n          seed using today's <code>year-day</code>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a \n        href=\"https://GitHub.com/ActiveState/code/tree/master/recipes/Python/393090_Binary_floating_point_summatiaccurate_full/recipe-393090.py\"\n        target=\"_top\">Hettinger</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"frange\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">frange</span>&nbsp;(<span class=\"sig-arg\">start</span>,\n        <span class=\"sig-arg\">number</span>,\n        <span class=\"sig-arg\">step</span>=<span class=\"sig-default\">1</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Generate a range of <code>float</code>s.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>start</code></strong> - First value (<code>float</code>).</li>\n        <li><strong class=\"pname\"><code>number</code></strong> - The number of <code>float</code>s to generate (<code>int</code>).</li>\n        <li><strong class=\"pname\"><code>step</code></strong> - Increment value (<code>float</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A generator (<code>float</code>s).</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a \n        href=\"https://docs.SciPy.org/doc/numpy/reference/generated/numpy.arange.html\"\n        target=\"_top\">NumPy.prod</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"frechet_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">frechet_</span>&nbsp;(<span class=\"sig-arg\">point1s</span>,\n        <span class=\"sig-arg\">point2s</span>,\n        <span class=\"sig-arg\">distance</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">units</span>=<span class=\"sig-default\">''</span>,\n        <span class=\"sig-arg\">recursive</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the <i>discrete</i> <a \n  href=\"https://WikiPedia.org/wiki/Frechet_distance\" \n  target=\"_top\">Fr&#233;chet</a> distance between two paths, each given as a set\n  of points.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>point1s</code></strong> - First set of points (<code>LatLon</code>[], <a \n          href=\"pygeodesy.points.Numpy2LatLon-class.html\" \n          class=\"link\">Numpy2LatLon</a>[], <a \n          href=\"pygeodesy.points.Tuple2LatLon-class.html\" \n          class=\"link\">Tuple2LatLon</a>[] or <code>other</code>[]).</li>\n        <li><strong class=\"pname\"><code>point2s</code></strong> - Second set of points (<code>LatLon</code>[], <a \n          href=\"pygeodesy.points.Numpy2LatLon-class.html\" \n          class=\"link\">Numpy2LatLon</a>[], <a \n          href=\"pygeodesy.points.Tuple2LatLon-class.html\" \n          class=\"link\">Tuple2LatLon</a>[] or <code>other</code>[]).</li>\n        <li><strong class=\"pname\"><code>distance</code></strong> - Callable returning the distance between a \n          <b><code>point1s</code></b> and a <b><code>point2s</code></b> \n          point (signature <code>(point1, point2)</code>).</li>\n        <li><strong class=\"pname\"><code>units</code></strong> - Optional, the distance units (<code>Unit</code> or \n          <code>str</code>).</li>\n        <li><strong class=\"pname\"><code>recursive</code></strong> - Use <code>True</code> for backward compatibility \n          (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.frechet.Frechet6Tuple-class.html\" \n          class=\"link\">Frechet6Tuple</a><code>(fd, fi1, fi2, r, n, \n          units)</code> where <code>fi1</code> and <code>fi2</code> are \n          type <code>int</code> indices into <b><code>point1s</code></b> \n          respectively <b><code>point2s</code></b>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.frechet.FrechetError-class.html\">FrechetError</a></strong></code> - Insufficient number of <b><code>point1s</code></b> or \n        <b><code>point2s</code></b>.</li>\n        <li><code><strong class='fraise'>RecursionError</strong></code> - Recursion depth exceeded, see <a \n        href=\"https://docs.Python.org/3/library/sys.html#sys.getrecursionlimit\"\n        target=\"_top\">sys.getrecursionlimit()</a>, only with \n        <code><b>recursive</b>=True</code>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - If <b><code>distance</code></b> is not a callable.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        Function <a href=\"pygeodesy.frechet-module.html#frechet_\" \n        class=\"link\">frechet_</a> does <i>not</i> support <i>fractional</i>\n        indices for intermediate <b><code>point1s</code></b> and \n        <b><code>point2s</code></b>.\n      </p>\n      <p><strong>See Also:</strong>\n        Non-recursive <a \n        href=\"https://GitHub.com/cjekel/similarity_measures/issues/6#issuecomment-544350039\"\n        target=\"_top\">dp_frechet_dist</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"freduce\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">freduce</span>&nbsp;(<span class=\"sig-arg\">function</span>,\n        <span class=\"sig-arg\">sequence</span>,\n        <span class=\"sig-arg\">initial</span>=<span class=\"sig-default\">...</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Apply a function of two arguments cumulatively to the items of a \n  sequence, from left to right, so as to reduce the sequence to a single \n  value. For example, reduce(lambda x, y: x+y, [1, 2, 3, 4, 5]) calculates \n  ((((1+2)+3)+4)+5).  If initial is present, it is placed before the items \n  of the sequence in the calculation, and serves as a default when the \n  sequence is empty.</p>\n  <dl class=\"fields\">\n    <dt>Returns: value</dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"fremainder\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">fremainder</span>&nbsp;(<span class=\"sig-arg\">x</span>,\n        <span class=\"sig-arg\">y</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Remainder in range <code>[-<b>y / 2</b>, <b>y / 2</b>]</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>x</code></strong> - Numerator (<code>scalar</code>).</li>\n        <li><strong class=\"pname\"><code>y</code></strong> - Modulus, denominator (<code>scalar</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Remainder (<code>scalar</code>, preserving signed 0.0) or \n          <code>NAN</code> for any non-finite <b><code>x</code></b>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ValueError</strong></code> - Infinite or near-zero <b><code>y</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <i>Karney</i>'s <a href=\"https://PyPI.org/project/geographiclib/\" \n        target=\"_top\">Math.remainder</a> and Python 3.7+ <a \n        href=\"https://docs.Python.org/3/library/math.html#math.remainder\" \n        target=\"_top\">math.remainder</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"fstr\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">fstr</span>&nbsp;(<span class=\"sig-arg\">floats</span>,\n        <span class=\"sig-arg\">prec</span>=<span class=\"sig-default\">6</span>,\n        <span class=\"sig-arg\">fmt</span>=<span class=\"sig-default\">'F'</span>,\n        <span class=\"sig-arg\">ints</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">sep</span>=<span class=\"sig-default\">', '</span>,\n        <span class=\"sig-arg\">strepr</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">force</span>=<span class=\"sig-default\">True</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert one or more floats to string, optionally stripped of trailing \n  zero decimals.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>floats</code></strong> - Single or a list, sequence, tuple, etc. (<code>scalar</code>s).</li>\n        <li><strong class=\"pname\"><code>prec</code></strong> - The <code>float</code> precision, number of decimal digits \n          (0..9). Trailing zero decimals are stripped if \n          <b><code>prec</code></b> is positive, but kept for negative \n          <b><code>prec</code></b> values.  In addition, trailing decimal \n          zeros are stripped for <a \n          href=\"https://docs.Python.org/3/library/stdtypes.html#printf-style-string-formatting\"\n          target=\"_top\">alternate, form '#'</a>.</li>\n        <li><strong class=\"pname\"><code>fmt</code></strong> - Optional <code>float</code> format (<code>letter</code>).</li>\n        <li><strong class=\"pname\"><code>ints</code></strong> - Optionally, remove the decimal dot for <code>int</code> values \n          (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>sep</code></strong> - Separator joining the <b><code>floats</code></b> \n          (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>strepr</code></strong> - Optional callable to format non-<code>floats</code> (typically \n          <code>repr</code>, <code>str</code>) or <code>None</code> to \n          raise a TypeError and used only if <code><b>force</b> is not \n          True</code>.</li>\n        <li><strong class=\"pname\"><code>force</code></strong> - If <code>True</code>, format all <b><code>floats</code></b> using\n          <b><code>fmt</code></b>, otherwise use <b><code>strepr</code></b>\n          for non-<code>floats</code> (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The <code>sep.join(strs(floats, ...)</code> joined \n          (<code>str</code>) or single <code>strs((floats,), ...)</code> \n          (<code>str</code>) if <b><code>floats</code></b> is \n          <code>scalar</code>.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"fstrzs\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">fstrzs</span>&nbsp;(<span class=\"sig-arg\">efstr</span>,\n        <span class=\"sig-arg\">ap1z</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Strip trailing zero decimals from a <code>float</code> string.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>efstr</code></strong> - Float with or without exponent (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>ap1z</code></strong> - Append the decimal point and one zero decimal if the \n          <b><code>efstr</code></b> is all digits (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Float (<code>str</code>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"fsum\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">fsum</span>&nbsp;(<span class=\"sig-arg\">xs</span>,\n        <span class=\"sig-arg\">nonfinites</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**floats</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Precision floating point summation from Python's \n  <code>math.fsum</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>xs</code></strong> - Iterable of items to add (each <code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>nonfinites</code></strong> - Use <code><b>nonfinites</b>=True</code> if <i>non-finites</i> are\n          <code>OK</code>, if <code>False</code> <i>non-finites</i> raise \n          an Overflow-/ValueError or if <code>None</code>, <a \n          href=\"pygeodesy.fsums-module.html#nonfiniterrors\" \n          class=\"link\">nonfiniterrors</a> applies (<code>bool</code> or \n          <code>None</code>).</li>\n        <li><strong class=\"pname\"><code>floats</code></strong> - DEPRECATED keyword argument <code><b>floats</b>=False</code> \n          (<code>bool</code>), use keyword argument \n          <code><b>nonfinites</b>=False</code> instead.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Precision <code>fsum</code> (<code>float</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>OverflowError</strong></code> - Infinite <b><code>xs</code></b> item or intermediate \n        <code>math.fsum</code> overflow.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>xs</code></b> item.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid or <code>NAN</code> <b><code>xs</code></b> item.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.fsums-module.html#nonfiniterrors\" \n        class=\"link\">nonfiniterrors</a>, class <a \n        href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> and \n        methods <a href=\"pygeodesy.fsums.Fsum-class.html#nonfinites\" \n        class=\"link\">Fsum.nonfinites</a>, <a \n        href=\"pygeodesy.fsums.Fsum-class.html#fsum\" \n        class=\"link\">Fsum.fsum</a>, <a \n        href=\"pygeodesy.fsums.Fsum-class.html#fadd\" \n        class=\"link\">Fsum.fadd</a> and <a \n        href=\"pygeodesy.fsums.Fsum-class.html#fadd_\" \n        class=\"link\">Fsum.fadd_</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"fsum1\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">fsum1</span>&nbsp;(<span class=\"sig-arg\">xs</span>,\n        <span class=\"sig-arg\">**nonfinites</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Precision floating point summation, 1-primed.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>xs</code></strong> - Iterable of items to add (each <code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>nonfinites</code></strong> - Use <code><b>nonfinites</b>=True</code> if <i>non-finites</i> are\n          <code>OK</code> (<code>bool</code>).</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.fsums-module.html#fsum\" \n        class=\"link\">fsum</a> for further details.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"fsum1_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">fsum1_</span>&nbsp;(<span class=\"sig-arg\">*xs</span>,\n        <span class=\"sig-arg\">**nonfinites</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Precision floating point summation of all positional items, \n  1-primed.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>xs</code></strong> - Items to add (each <code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>), all positional.</li>\n        <li><strong class=\"pname\"><code>nonfinites</code></strong> - Use <code><b>nonfinites</b>=True</code> if <i>non-finites</i> are\n          <code>OK</code> (<code>bool</code>).</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.fsums-module.html#fsum_\" \n        class=\"link\">fsum_</a> for further details.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"fsum1f_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">fsum1f_</span>&nbsp;(<span class=\"sig-arg\">*xs</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Precision floating point summation of all positional items, 1-primed \n  and with <i>non-finites</i> <code>OK</code>.</p>\n  <dl class=\"fields\">\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.fsums-module.html#fsum_\" \n        class=\"link\">fsum_</a> for further details.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"fsum_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">fsum_</span>&nbsp;(<span class=\"sig-arg\">*xs</span>,\n        <span class=\"sig-arg\">**nonfinites</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Precision floating point summation of all positional items.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>xs</code></strong> - Items to add (each <code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>), all positional.</li>\n        <li><strong class=\"pname\"><code>nonfinites</code></strong> - Use <code><b>nonfinites</b>=True</code> if <i>non-finites</i> are\n          <code>OK</code> (<code>bool</code>).</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.fsums-module.html#fsum\" \n        class=\"link\">fsum</a> for further details.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"fsumf_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">fsumf_</span>&nbsp;(<span class=\"sig-arg\">*xs</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Precision floating point summation of all positional items with \n  <i>non-finites</i> <code>OK</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>xs</code></strong> - Items to add (each <code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>), all positional.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.fsums-module.html#fsum_\" \n        class=\"link\">fsum_</a> for further details.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"ft2m\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">ft2m</span>&nbsp;(<span class=\"sig-arg\">feet</span>,\n        <span class=\"sig-arg\">usurvey</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">pied</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">india</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">fuss</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert a length in <i>International</i>, <i>US Survey</i>, \n  <i>French</i>, <i>Indian</i> or <i>German</i> feet to meter.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>feet</code></strong> - Length in feet (<code>scalar</code>).</li>\n        <li><strong class=\"pname\"><code>usurvey</code></strong> - If <code>True</code>, convert <i>US Survey</i> foot else ...</li>\n        <li><strong class=\"pname\"><code>pied</code></strong> - If <code>True</code>, convert French <i>pied-du-Roi</i> else ...</li>\n        <li><strong class=\"pname\"><code>india</code></strong> - If <code>True</code>, convert <i>India foot</i> else ...</li>\n        <li><strong class=\"pname\"><code>fuss</code></strong> - If <code>True</code>, convert German <i>Fuss</i>, otherwise \n          <i>International</i> foot to <code>meter</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Length in <code>meter</code> (<code>float</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>feet</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"furlong2m\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">furlong2m</span>&nbsp;(<span class=\"sig-arg\">furlongs</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert a length in <i>furlongs</i> to meter.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>furlongs</code></strong> - Length in furlongs (<code>scalar</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Length in <code>meter</code> (<code>float</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>furlongs</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"gdf\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">gdf</span>&nbsp;(<span class=\"sig-arg\">psi</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p><a href=\"https://WikiPedia.org/wiki/Gudermannian_function\" \n  target=\"_top\">Gudermannian function</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>psi</code></strong> - Gudermannian (<code>float</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Angle (<code>radians</code>).</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.utily-module.html#agdf\" \n        class=\"link\">agdf</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"geoidHeight2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">geoidHeight2</span>&nbsp;(<span class=\"sig-arg\">lat</span>,\n        <span class=\"sig-arg\">lon</span>,\n        <span class=\"sig-arg\">model</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">timeout</span>=<span class=\"sig-default\">2.0</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Get the <code>NAVD88</code> geoid height at an <code>NAD83</code> \n  location.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat</code></strong> - Latitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lon</code></strong> - Longitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>model</code></strong> - Optional, geoid model ID (<code>int</code>).</li>\n        <li><strong class=\"pname\"><code>timeout</code></strong> - Optional, query timeout (seconds).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>An <a href=\"pygeodesy.elevations.GeoidHeight2Tuple-class.html\" \n          class=\"link\">GeoidHeight2Tuple</a><code>(height, \n          model_name)</code> or <code>(None, &quot;error&quot;</code>) in \n          case of errors.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>timeout</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        The returned <code>height is None</code> if <b><code>lat</code></b>\n        or <b><code>lon</code></b> is invalid or outside the \n        <code>Conterminous US (CONUS)</code>, if the \n        <b><code>model</code></b> was invalid, if conversion failed or if \n        the query timed out.  The <code>&quot;error&quot;</code> is the \n        <code>HTTP-, IO-, SSL-, URL-</code> or other <code>-Error</code> as\n        a string (<code>str</code>).\n      </p>\n      <p><strong>See Also:</strong>\n        <a href=\"https://www.NGS.NOAA.gov/INFO/geodesy.shtml\" \n        target=\"_top\">NOAA National Geodetic Survey</a>, <a \n        href=\"https://www.NGS.NOAA.gov/web_services/geoid.shtml\" \n        target=\"_top\">Geoid</a>, <a \n        href=\"https://Gist.GitHub.com/pyRobShrk\" \n        target=\"_top\">USGS10mElev.py</a>, module <a \n        href=\"pygeodesy.geoids-module.html\" class=\"link\">geoids</a>, \n        classes <a href=\"pygeodesy.geoids.GeoidG2012B-class.html\" \n        class=\"link\">GeoidG2012B</a>, <a \n        href=\"pygeodesy.geoids.GeoidKarney-class.html\" \n        class=\"link\">GeoidKarney</a> and <a \n        href=\"pygeodesy.geoids.GeoidPGM-class.html\" \n        class=\"link\">GeoidPGM</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"gnomonic\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">gnomonic</span>&nbsp;(<span class=\"sig-arg\">lat0</span>,\n        <span class=\"sig-arg\">lon0</span>,\n        <span class=\"sig-arg\">datum</span>=<span class=\"sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"sig-arg\">exact</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">geodsolve</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return a <a href=\"pygeodesy.azimuthal.GnomonicExact-class.html\" \n  class=\"link\">GnomonicExact</a> or (if <i>Karney</i>'s <a \n  href=\"https://PyPI.org/project/geographiclib\" \n  target=\"_top\">geographiclib</a> package is installed) a <a \n  href=\"pygeodesy.azimuthal.GnomonicKarney-class.html\" \n  class=\"link\">GnomonicKarney</a>, otherwise a <a \n  href=\"pygeodesy.azimuthal.Gnomonic-class.html\" class=\"link\">Gnomonic</a> \n  instance.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat0</code></strong> - Latitude of center point (<code>degrees90</code>).</li>\n        <li><strong class=\"pname\"><code>lon0</code></strong> - Longitude of center point (<code>degrees180</code>).</li>\n        <li><strong class=\"pname\"><code>datum</code></strong> - Optional datum or ellipsoid (<a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>, \n          <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a> or <a \n          href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>) or <i>scalar</i> earth radius \n          (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>exact</code></strong> - Return a <a href=\"pygeodesy.azimuthal.GnomonicExact-class.html\" \n          class=\"link\">GnomonicExact</a> instance.</li>\n        <li><strong class=\"pname\"><code>geodsolve</code></strong> - Return a <a \n          href=\"pygeodesy.azimuthal.GnomonicGeodSolve-class.html\" \n          class=\"link\">GnomonicGeodSolve</a> instance.</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> for the projection \n          (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.azimuthal.GnomonicExact-class.html\" \n          class=\"link\">GnomonicExact</a>, <a \n          href=\"pygeodesy.azimuthal.GnomonicGeodSolve-class.html\" \n          class=\"link\">GnomonicGeodSolve</a>, <a \n          href=\"pygeodesy.azimuthal.GnomonicKarney-class.html\" \n          class=\"link\">GnomonicKarney</a> or <a \n          href=\"pygeodesy.azimuthal.Gnomonic-class.html\" \n          class=\"link\">Gnomonic</a> instance.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.azimuthal.AzimuthalError-class.html\">AzimuthalError</a></strong></code> - Invalid <b><code>lat0</code></b> or <b><code>lon0</code></b> or \n        (spherical) <b><code>datum</code></b>.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.GeodesicError-class.html\">GeodesicError</a></strong></code> - Issue with <a \n        href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html\" \n        class=\"link\">GeodesicExact</a>, <a \n        href=\"pygeodesy.geodsolve.GeodesicSolve-class.html\" \n        class=\"link\">GeodesicSolve</a> or <i>Karney</i>'s wrapped \n        <code>Geodesic</code>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>datum</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"grades\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">grades</span>&nbsp;(<span class=\"sig-arg\">rad</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert radians to <i>grades</i> (aka <i>gons</i> or \n  <i>gradians</i>).</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>rad</code></strong> - Angle (<code>radians</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Angle (<code>grades</code>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"grades2degrees\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">grades2degrees</span>&nbsp;(<span class=\"sig-arg\">gon</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert <i>grades</i> (aka <i>gons</i> or <i>gradians</i>) to \n  <code>degrees</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>gon</code></strong> - Angle (<code>grades</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Angle (<code>degrees</code>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"grades2radians\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">grades2radians</span>&nbsp;(<span class=\"sig-arg\">gon</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert <i>grades</i> (aka <i>gons</i> or <i>gradians</i>) to \n  <code>radians</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>gon</code></strong> - Angle (<code>grades</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Angle (<code>radians</code>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"grades400\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">grades400</span>&nbsp;(<span class=\"sig-arg\">rad</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert radians to <i>grades</i> (aka <i>gons</i> or <i>gradians</i>) \n  and wrap <i class=\"math\">[0..+400)</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>rad</code></strong> - Angle (<code>radians</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Angle, wrapped (<code>grades</code>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"ha2acre\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">ha2acre</span>&nbsp;(<span class=\"sig-arg\">ha</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert an area in <i>hectares</i> to <i>acres</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>ha</code></strong> - Area in hectares (<code>scalar</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Area in <code>acres</code> (<code>float</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>ha</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"ha2m2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">ha2m2</span>&nbsp;(<span class=\"sig-arg\">ha</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert an area in <i>hectares</i> to <i>square</i> meter.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>ha</code></strong> - Area in hectares (<code>scalar</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Area in <code>square</code> meter (<code>float</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>ha</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"halfs2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">halfs2</span>&nbsp;(<span class=\"sig-arg\">str2</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Split a string in 2 halfs.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>str2</code></strong> - String to split (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>2-Tuple <code>(_1st, _2nd)</code> half (<code>str</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ValueError</strong></code> - Zero or odd <code>len(<b>str2</b>)</code>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"hartzell\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">hartzell</span>&nbsp;(<span class=\"sig-arg\">pov</span>,\n        <span class=\"sig-arg\">los</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">earth</span>=<span class=\"sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"sig-arg\">**name_LatLon_and_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the intersection of the earth's surface and a Line-Of-Sight \n  from a Point-Of-View in space.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>pov</code></strong> - Point-Of-View outside the earth (<code>LatLon</code>, \n          <code>Cartesian</code>, <a \n          href=\"pygeodesy.ecef.Ecef9Tuple-class.html\" \n          class=\"link\">Ecef9Tuple</a> or <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>).</li>\n        <li><strong class=\"pname\"><code>los</code></strong> - Line-Of-Sight, <i>direction</i> to earth (<a \n          href=\"pygeodesy.ltpTuples.Los-class.html\" class=\"link\">Los</a>, \n          <a href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>), <code>True</code> for the <i>normal, \n          plumb</i> onto the surface or <code>False</code> or \n          <code>None</code> to point to the center of the earth.</li>\n        <li><strong class=\"pname\"><code>earth</code></strong> - The earth model (<a href=\"pygeodesy.datums.Datum-class.html\" \n          class=\"link\">Datum</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a>, <a \n          href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a> or a <code>scalar</code> earth radius \n          in <code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>name_LatLon_and_kwds</code></strong> - Optional <code><b>name</b>=&quot;hartzell&quot;</code> \n          (<code>str</code>), class <code><b>LatLon</b>=None</code> to \n          return the intersection and optionally, additional \n          <code>LatLon</code> keyword arguments, include the \n          <b><code>datum</code></b> if different from and to convert from \n          <b><code>earth</code></b>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The intersection (<a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <b><code>pov</code></b>'s \n          <code>cartesian type</code> or the given \n          <a href=pygeodesy-LatLon-attributes-table.html><b><code>LatLon</code></b></a> instance) with attribute \n          <a href=pygeodesy.heights-module.html><code>height</code></a> set to the distance to the \n          <b><code>pov</code></b>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.IntersectionError-class.html\">IntersectionError</a></strong></code> - Invalid <b><code>pov</code></b> or <b><code>pov</code></b> inside \n        the earth or invalid <b><code>los</code></b> or \n        <b><code>los</code></b> points outside or away from the earth.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>earth</code></b>, <code>ellipsoid</code> or \n        <code>datum</code>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Class <a href=\"pygeodesy.ltpTuples.Los-class.html\" \n        class=\"link\">Los</a>, functions <a \n        href=\"pygeodesy.ltp-module.html#tyr3d\" class=\"link\">tyr3d</a> and \n        <a href=\"pygeodesy.triaxials.triaxial5-module.html#hartzell4\" \n        class=\"link\">hartzell4</a> and methods <a \n        href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#hartzell4\" \n        class=\"link\">Ellipsoid.hartzell4</a>, any \n        <code>Cartesian.hartzell</code> and <code>LatLon.hartzell</code>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"hartzell4\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">hartzell4</span>&nbsp;(<span class=\"sig-arg\">pov</span>,\n        <span class=\"sig-arg\">los</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">tri_biax</span>=<span class=\"sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the intersection of a tri-/biaxial ellipsoid and a \n  Line-Of-Sight from a Point-Of-View outside.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>pov</code></strong> - Point-Of-View outside the tri-/biaxial (<code>Cartesian</code>, \n          <a href=\"pygeodesy.ecef.Ecef9Tuple-class.html\" \n          class=\"link\">Ecef9Tuple</a>, <code>LatLon</code> or <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>).</li>\n        <li><strong class=\"pname\"><code>los</code></strong> - Line-Of-Sight, <i>direction</i> to the tri-/biaxial (<a \n          href=\"pygeodesy.ltpTuples.Los-class.html\" class=\"link\">Los</a>, \n          <a href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>) or <code>True</code> for the \n          <i>normal, perpendicular, plumb</i> to the surface of the \n          tri-/biaxial or <code>False</code> or <code>None</code> to point \n          to its center.</li>\n        <li><strong class=\"pname\"><code>tri_biax</code></strong> - A triaxial (<a \n          href=\"pygeodesy.triaxials.triaxial5.Triaxial-class.html\" \n          class=\"link\">Triaxial</a>, <a \n          href=\"pygeodesy.triaxials.triaxial5.Triaxial_-class.html\" \n          class=\"link\">Triaxial_</a>, <a \n          href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html\" \n          class=\"link\">Triaxial3</a>, <a \n          href=\"pygeodesy.triaxials.triaxial3.Triaxial3B-class.html\" \n          class=\"link\">Triaxial3B</a>, <a \n          href=\"pygeodesy.triaxials.triaxial5.Conformal-class.html\" \n          class=\"link\">Conformal</a> or <a \n          href=\"pygeodesy.triaxials.triaxial5.ConformalSphere-class.html\" \n          class=\"link\">ConformalSphere</a>) or biaxial ellipsoid (<a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>, \n          <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a>, <a \n          href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>) or spherical earth radius \n          (<code>scalar</code>, conventionally in <code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional name (<code>str</code>), overriding \n          <code><b>name</b>=&quot;hartzell4&quot;</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><a href=\"pygeodesy.namedTuples.Vector4Tuple-class.html\" \n          class=\"link\">Vector4Tuple</a><code>(x, y, z, h)</code> on the \n          tri-/biaxial's surface, with <code>h</code> the distance from \n          <b><code>pov</code></b> to <code>(x, y, z)</code> <i>along \n          the</i> <b><code>los</code></b>, all in <code>meter</code>, \n          conventionally.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.triaxials.bases.TriaxialError-class.html\">TriaxialError</a></strong></code> - Invalid <b><code>pov</code></b> or <b><code>pov</code></b> inside \n        the tri-/biaxial or invalid <b><code>los</code></b> or \n        <b><code>los</code></b> points outside or away from the \n        tri-/biaxial.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>tri_biax</code></b>, <code>ellipsoid</code> or \n        <code>datum</code>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Class <a href=\"pygeodesy.ltpTuples.Los-class.html\" \n        class=\"link\">pygeodesy3.Los</a>, functions <a \n        href=\"pygeodesy.ltp-module.html#tyr3d\" \n        class=\"link\">pygeodesy.tyr3d</a> and <a \n        href=\"pygeodesy.formy-module.html#hartzell\" \n        class=\"link\">pygeodesy.hartzell</a> and <a \n        href=\"https://PyPI.org/project/pymap3d\" \n        target=\"_top\">lookAtSpheroid</a> and <a \n        href=\"https://StephenHartzell.Medium.com/satellite-line-of-sight-intersection-with-earth-d786b4a6a9b6\"\n        target=\"_top\">&quot;Satellite Line-of-Sight Intersection with \n        Earth&quot;</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"hausdorff_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">hausdorff_</span>&nbsp;(<span class=\"sig-arg\">model</span>,\n        <span class=\"sig-arg\">target</span>,\n        <span class=\"sig-arg\">both</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">early</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">seed</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">units</span>=<span class=\"sig-default\">''</span>,\n        <span class=\"sig-arg\">distance</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">point</span>=<span class=\"sig-default\">&lt;function _point at 0x7fc1d033fed0&gt;</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the <code>directed</code> or <code>symmetric</code> <a \n  href=\"https://WikiPedia.org/wiki/Hausdorff_distance\" \n  target=\"_top\">Hausdorff</a> distance between 2 sets of points with or \n  without <a href=\"https://Publik.TUWien.ac.AT/files/PubDat_247739.pdf\" \n  target=\"_top\">early breaking</a> and <a \n  href=\"https://Publik.TUWien.ac.AT/files/PubDat_247739.pdf\" \n  target=\"_top\">random sampling</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>model</code></strong> - First set of points (<code>LatLon</code>[], \n          <code>Numpy2LatLon</code>[], <code>Tuple2LatLon</code>[] or \n          <code>other</code>[]).</li>\n        <li><strong class=\"pname\"><code>target</code></strong> - Second set of points (<code>LatLon</code>[], \n          <code>Numpy2LatLon</code>[], <code>Tuple2LatLon</code>[] or \n          <code>other</code>[]).</li>\n        <li><strong class=\"pname\"><code>both</code></strong> - Return the <code>directed</code> (forward only) or the \n          <code>symmetric</code> (combined forward and reverse) \n          <code>Hausdorff</code> distance (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>early</code></strong> - Enable or disable <a \n          href=\"https://Publik.TUWien.ac.AT/files/PubDat_247739.pdf\" \n          target=\"_top\">early breaking</a> (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>seed</code></strong> - Random sampling seed (<code>any</code>) or <code>None</code>, \n          <code>0</code> or <code>False</code> for no <a \n          href=\"https://Publik.TUWien.ac.AT/files/PubDat_247739.pdf\" \n          target=\"_top\">random sampling</a>.</li>\n        <li><strong class=\"pname\"><code>units</code></strong> - Optional, the distance units (<code>Unit</code> or \n          <code>str</code>).</li>\n        <li><strong class=\"pname\"><code>distance</code></strong> - Callable returning the distance between a \n          <b><code>model</code></b> and <b><code>target</code></b> point \n          (signature <code>(point1, point2)</code>).</li>\n        <li><strong class=\"pname\"><code>point</code></strong> - Callable returning the <b><code>model</code></b> or \n          <b><code>target</code></b> point suitable for \n          <b><code>distance</code></b> (signature <code>(point)</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.hausdorff.Hausdorff6Tuple-class.html\" \n          class=\"link\">Hausdorff6Tuple</a><code>(hd, i, j, mn, md, \n          units)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.hausdorff.HausdorffError-class.html\">HausdorffError</a></strong></code> - Insufficient number of <b><code>model</code></b> or \n        <b><code>target</code></b> points.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - If <b><code>distance</code></b> or <b><code>point</code></b> is not\n        callable.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"hav\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">hav</span>&nbsp;(<span class=\"sig-arg\">rad</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the <a href=\"https://WikiPedia.org/wiki/Haversine_formula\" \n  target=\"_top\">haversine</a> of an angle.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>rad</code></strong> - Angle (<code>radians</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>sin(<b>rad</b> / 2)**2</code>.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"haversine\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">haversine</span>&nbsp;(<span class=\"sig-arg\">lat1</span>,\n        <span class=\"sig-arg\">lon1</span>,\n        <span class=\"sig-arg\">lat2</span>,\n        <span class=\"sig-arg\">lon2</span>,\n        <span class=\"sig-arg\">radius</span>=<span class=\"sig-default\">6371008.771415</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the distance between two (spherical) points using the <a \n  href=\"https://www.Movable-Type.co.UK/scripts/latlong.html\" \n  target=\"_top\">Haversine</a> formula.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat1</code></strong> - Start latitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lon1</code></strong> - Start longitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lat2</code></strong> - End latitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lon2</code></strong> - End longitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>radius</code></strong> - Mean earth radius (<code>meter</code>), datum (<a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>) \n          or ellipsoid (<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\"\n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a> or <a \n          href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>) to use.</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll \n          <b><code>lat2</code></b> and <b><code>lon2</code></b> \n          (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Distance (<code>meter</code>, same units as \n          <b><code>radius</code></b>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>radius</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"https://www.EdWilliams.org/avform.htm#Dist\" \n        target=\"_top\">Distance between two (spherical) points</a>, \n        functions <a href=\"pygeodesy.formy-module.html#cosineLaw\" \n        class=\"link\">cosineLaw</a>, <a \n        href=\"pygeodesy.formy-module.html#equirectangular\" \n        class=\"link\">equirectangular</a>, <a \n        href=\"pygeodesy.formy-module.html#euclidean\" \n        class=\"link\">euclidean</a>, <a \n        href=\"pygeodesy.formy-module.html#flatLocal\" \n        class=\"link\">flatLocal</a> / <a \n        href=\"pygeodesy.formy-module.html#flatLocal\" \n        class=\"link\">hubeny</a>, <a \n        href=\"pygeodesy.formy-module.html#flatPolar\" \n        class=\"link\">flatPolar</a>, <a \n        href=\"pygeodesy.formy-module.html#thomas\" class=\"link\">thomas</a> \n        and <a href=\"pygeodesy.formy-module.html#vincentys\" \n        class=\"link\">vincentys</a> and methods <a \n        href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#distance2\" \n        class=\"link\">Ellipsoid.distance2</a>, \n        <code>LatLon.distanceTo*</code> and \n        <code>LatLon.equirectangularTo</code>.\n      </p>\n      <p><strong>Note:</strong>\n        See note at function <a \n        href=\"pygeodesy.formy-module.html#vincentys_\" \n        class=\"link\">vincentys_</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"haversine_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">haversine_</span>&nbsp;(<span class=\"sig-arg\">geohash1</span>,\n        <span class=\"sig-arg\">geohash2</span>,\n        <span class=\"sig-arg\">**radius_wrap</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the great-circle distance between two geohashes using the <a \n  href=\"pygeodesy.formy-module.html#haversine\" \n  class=\"link\">pygeodesy.haversine</a> formula.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>geohash1</code></strong> - First geohash (<a href=\"pygeodesy.geohash.Geohash-class.html\" \n          class=\"link\">Geohash</a>, <code>LatLon</code> or \n          <code>str</code>).</li>\n        <li><strong class=\"pname\"><code>geohash2</code></strong> - Second geohash (<a href=\"pygeodesy.geohash.Geohash-class.html\" \n          class=\"link\">Geohash</a>, <code>LatLon</code> or \n          <code>str</code>).</li>\n        <li><strong class=\"pname\"><code>radius_wrap</code></strong> - Optional keyword arguments for function <a \n          href=\"pygeodesy.formy-module.html#haversine\" \n          class=\"link\">pygeodesy.haversine</a>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Great-circle distance (<code>meter</code>, same units as \n          <b><code>radius</code></b>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - If <b><code>geohash1</code></b> or <b><code>geohash2</code></b> is \n        not a <a href=\"pygeodesy.geohash.Geohash-class.html\" \n        class=\"link\">Geohash</a>, <code>LatLon</code> or <code>str</code>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"height4\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">height4</span>&nbsp;(<span class=\"sig-arg\">x_xyz</span>,\n        <span class=\"sig-arg\">y</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">z</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">tri_biax</span>=<span class=\"sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"sig-arg\">normal</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">eps</span>=<span class=\"sig-default\">2.220446049250313e-16</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the projection on and the height above or below a tri-/biaxial\n  ellipsoid's surface.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>x_xyz</code></strong> - X component (<code>scalar</code>) or a cartesian \n          (<code>Cartesian</code>, <a \n          href=\"pygeodesy.ecef.Ecef9Tuple-class.html\" \n          class=\"link\">Ecef9Tuple</a>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <a \n          href=\"pygeodesy.namedTuples.Vector3Tuple-class.html\" \n          class=\"link\">Vector3Tuple</a> or <a \n          href=\"pygeodesy.namedTuples.Vector4Tuple-class.html\" \n          class=\"link\">Vector4Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>y</code></strong> - Y component (<code>scalar</code>), required if \n          <b><code>x_xyz</code></b> if <code>scalar</code>, ignored \n          otherwise.</li>\n        <li><strong class=\"pname\"><code>z</code></strong> - Z component (<code>scalar</code>), like <b><code>y</code></b>.</li>\n        <li><strong class=\"pname\"><code>tri_biax</code></strong> - A triaxial (<a \n          href=\"pygeodesy.triaxials.triaxial5.Triaxial-class.html\" \n          class=\"link\">Triaxial</a>, <a \n          href=\"pygeodesy.triaxials.triaxial5.Triaxial_-class.html\" \n          class=\"link\">Triaxial_</a>, <a \n          href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html\" \n          class=\"link\">Triaxial3</a>, <a \n          href=\"pygeodesy.triaxials.triaxial3.Triaxial3B-class.html\" \n          class=\"link\">Triaxial3B</a>, <a \n          href=\"pygeodesy.triaxials.triaxial5.Conformal-class.html\" \n          class=\"link\">Conformal</a> or <a \n          href=\"pygeodesy.triaxials.triaxial5.ConformalSphere-class.html\" \n          class=\"link\">ConformalSphere</a>) or biaxial ellipsoid (<a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>, \n          <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a>, <a \n          href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>) or spherical earth radius \n          (<code>scalar</code>, conventionally in <code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>normal</code></strong> - If <code>True</code>, the projection is the <i>perpendicular, \n          plumb</i> to the tri-/biaxial's surface, otherwise the \n          <code>radial</code> line to the center of the tri-/biaxial \n          (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>eps</code></strong> - Tolerance for root finding and validation (<code>scalar</code>), \n          use a negative value to skip validation.</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=&quot;height4&quot;</code> \n          (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><a href=\"pygeodesy.namedTuples.Vector4Tuple-class.html\" \n          class=\"link\">Vector4Tuple</a><code>(x, y, z, h)</code> with the \n          cartesian coordinates <code>x</code>, <code>y</code> and \n          <code>z</code> of the projection on or the intersection with and \n          with the height <code>h</code> above or below the tri-/biaxial's \n          surface in <code>meter</code>, conventionally.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.triaxials.bases.TriaxialError-class.html\">TriaxialError</a></strong></code> - Non-cartesian <b><code>xyz</code></b>, invalid \n        <b><code>eps</code></b>, no convergence in root finding or \n        validation failed.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Methods <a \n        href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#normal3d\"\n        class=\"link\">Triaxial.normal3d</a> and <a \n        href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#height4\" \n        class=\"link\">Ellipsoid.height4</a>, <i>Eberly</i>'s <a \n        href=\"https://www.GeometricTools.com/Documentation/DistancePointEllipseEllipsoid.pdf\"\n        target=\"_top\">Distance from a Point to ...</a> and <i>Bektas</i>' \n        <a \n        href=\"https://www.ResearchGate.net/publication/272149005_SHORTEST_DISTANCE_FROM_A_POINT_TO_TRIAXIAL_ELLIPSOID\"\n        target=\"_top\">Shortest Distance from a Point to Triaxial \n        Ellipsoid</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"heightOf\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">heightOf</span>&nbsp;(<span class=\"sig-arg\">angle</span>,\n        <span class=\"sig-arg\">distance</span>,\n        <span class=\"sig-arg\">radius</span>=<span class=\"sig-default\">6371008.771415</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Determine the height above the (spherical) earth' surface after \n  traveling along a straight line at a given tilt.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>angle</code></strong> - Tilt angle above horizontal (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>distance</code></strong> - Distance along the line (<code>meter</code> or same units as \n          <b><code>radius</code></b>).</li>\n        <li><strong class=\"pname\"><code>radius</code></strong> - Optional mean earth radius (<code>meter</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Height (<code>meter</code>, same units as \n          <b><code>distance</code></b> and <b><code>radius</code></b>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>angle</code></b>, <b><code>distance</code></b> or \n        <b><code>radius</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"https://GitHub.com/NASA/MultiDop\" target=\"_top\">MultiDop \n        geog_lib.GeogBeamHt</a> (<a \n        href=\"https://Journals.AMetSoc.org/doi/abs/10.1175/2009JTECHA1256.1\"\n        target=\"_top\">Shapiro et al. 2009, JTECH</a> and <a \n        href=\"https://Journals.AMetSoc.org/doi/abs/10.1175/JTECH-D-11-00019.1\"\n        target=\"_top\">Potvin et al. 2012, JTECH</a>).\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"heightOrthometric\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">heightOrthometric</span>&nbsp;(<span class=\"sig-arg\">h_loc</span>,\n        <span class=\"sig-arg\">N</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Get the <i>orthometric</i> height <b>H</b>, the height above the \n  geoid, earth surface.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>h_loc</code></strong> - The height above the ellipsoid (<code>meter</code>) or an \n          <i>ellipsoidal</i> location (<code>LatLon</code> or \n          <code>Cartesian</code> with a <a href=pygeodesy.heights-module.html><code>height</code></a> or \n          <code>h</code> attribute), otherwise <code>0 meter</code>.</li>\n        <li><strong class=\"pname\"><code>N</code></strong> - The <i>geoid</i> height (<code>meter</code>), the height of the \n          geoid above the ellipsoid at the same <b><code>h_loc</code></b> \n          location.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><i>Orthometric</i> height <code><b>H</b> = <b>h</b> - \n          <b>N</b></code> (<code>meter</code>, same units as \n          <b><code>h</code></b> and <b><code>N</code></b>).</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a \n        href=\"https://www.NGS.NOAA.gov/GEOID/PRESENTATIONS/2007_02_24_CCPS/Roman_A_PLSC2007notes.pdf\"\n        target=\"_top\">Ellipsoid, Geoid, and Orthometric Heights</a>, page 6\n        and module <a href=\"pygeodesy.geoids-module.html\" \n        class=\"link\">pygeodesy.geoids</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"horizon\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">horizon</span>&nbsp;(<span class=\"sig-arg\">height</span>,\n        <span class=\"sig-arg\">radius</span>=<span class=\"sig-default\">6371008.771415</span>,\n        <span class=\"sig-arg\">refraction</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Determine the distance to the horizon from a given altitude above the \n  (spherical) earth.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><a href=pygeodesy.heights-module.html><code>height</code></a></strong> - Altitude (<code>meter</code> or same units as \n          <b><code>radius</code></b>).</li>\n        <li><strong class=\"pname\"><code>radius</code></strong> - Optional mean earth radius (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>refraction</code></strong> - Consider atmospheric refraction (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Distance (<code>meter</code>, same units as \n          <b><a href=pygeodesy.heights-module.html><code>height</code></a></b> and <b><code>radius</code></b>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><a href=pygeodesy.heights-module.html><code>height</code></a></b> or <b><code>radius</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"https://www.EdWilliams.org/avform.htm#Horizon\" \n        target=\"_top\">Distance to horizon</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"hstr\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">hstr</span>&nbsp;(<span class=\"sig-arg\">height</span>,\n        <span class=\"sig-arg\">prec</span>=<span class=\"sig-default\">2</span>,\n        <span class=\"sig-arg\">fmt</span>=<span class=\"sig-default\">'%+.*f'</span>,\n        <span class=\"sig-arg\">ints</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">m</span>=<span class=\"sig-default\">''</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return a string for the height value.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><a href=pygeodesy.heights-module.html><code>height</code></a></strong> - Height value (<code>float</code>).</li>\n        <li><strong class=\"pname\"><code>prec</code></strong> - The <code>float</code> precision, number of decimal digits \n          (0..9). Trailing zero decimals are stripped if \n          <b><code>prec</code></b> is positive, but kept for negative \n          <b><code>prec</code></b> values.</li>\n        <li><strong class=\"pname\"><code>fmt</code></strong> - Optional <code>float</code> format (<code>letter</code>).</li>\n        <li><strong class=\"pname\"><code>ints</code></strong> - Optionally, remove the decimal dot for <code>int</code> values \n          (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>m</code></strong> - Optional unit of the height (<code>str</code>).</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"hubeny\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">hubeny</span>&nbsp;(<span class=\"sig-arg\">lat1</span>,\n        <span class=\"sig-arg\">lon1</span>,\n        <span class=\"sig-arg\">lat2</span>,\n        <span class=\"sig-arg\">lon2</span>,\n        <span class=\"sig-arg\">datum</span>=<span class=\"sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"sig-arg\">scaled</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the distance between two (ellipsoidal) points using the <a \n  href=\"https://WikiPedia.org/wiki/Geographical_distance#Ellipsoidal_Earth_projected_to_a_plane\"\n  target=\"_top\">ellipsoidal Earth to plane projection</a> aka <a \n  href=\"https://www.OVG.AT/de/vgi/files/pdf/3781/\" target=\"_top\">Hubeny</a>\n  formula.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat1</code></strong> - Start latitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lon1</code></strong> - Start longitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lat2</code></strong> - End latitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lon2</code></strong> - End longitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>datum</code></strong> - Datum (<a href=\"pygeodesy.datums.Datum-class.html\" \n          class=\"link\">Datum</a>) or ellipsoid (<a \n          href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a> or <a \n          href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>) to use.</li>\n        <li><strong class=\"pname\"><code>scaled</code></strong> - Scale prime_vertical by <code>cos(<b>phi</b>)</code> \n          (<code>bool</code>), see method <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#roc2_\" \n          class=\"link\">pygeodesy.Ellipsoid.roc2_</a>.</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll \n          <b><code>lat2</code></b> and <b><code>lon2</code></b> \n          (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Distance (<code>meter</code>, same units as the \n          <b><code>datum</code></b>'s or ellipsoid axes).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>datum</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        The meridional and prime_vertical radii of curvature are taken and \n        scaled at the mean of both latitude.\n      </p>\n      <p><strong>See Also:</strong>\n        Functions <a href=\"pygeodesy.formy-module.html#flatLocal_\" \n        class=\"link\">flatLocal_</a> or <a \n        href=\"pygeodesy.formy-module.html#flatLocal_\" \n        class=\"link\">hubeny_</a>, <a \n        href=\"pygeodesy.formy-module.html#cosineLaw\" \n        class=\"link\">cosineLaw</a>, <a \n        href=\"pygeodesy.formy-module.html#equirectangular\" \n        class=\"link\">equirectangular</a>, <a \n        href=\"pygeodesy.formy-module.html#euclidean\" \n        class=\"link\">euclidean</a>, <a \n        href=\"pygeodesy.formy-module.html#flatPolar\" \n        class=\"link\">flatPolar</a>, <a \n        href=\"pygeodesy.formy-module.html#haversine\" \n        class=\"link\">haversine</a>, <a \n        href=\"pygeodesy.formy-module.html#thomas\" class=\"link\">thomas</a> \n        and <a href=\"pygeodesy.formy-module.html#vincentys\" \n        class=\"link\">vincentys</a>, method <a \n        href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#distance2\" \n        class=\"link\">Ellipsoid.distance2</a> and <a \n        href=\"https://www.EdWilliams.org/avform.htm#flat\" \n        target=\"_top\">local, flat earth approximation</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"hubeny_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">hubeny_</span>&nbsp;(<span class=\"sig-arg\">phi2</span>,\n        <span class=\"sig-arg\">phi1</span>,\n        <span class=\"sig-arg\">lam21</span>,\n        <span class=\"sig-arg\">datum</span>=<span class=\"sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"sig-arg\">scaled</span>=<span class=\"sig-default\">True</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the <i>angular</i> distance between two (ellipsoidal) points \n  using the <a \n  href=\"https://WikiPedia.org/wiki/Geographical_distance#Ellipsoidal_Earth_projected_to_a_plane\"\n  target=\"_top\">ellipsoidal Earth to plane projection</a> aka <a \n  href=\"https://www.OVG.AT/de/vgi/files/pdf/3781/\" target=\"_top\">Hubeny</a>\n  formula.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>phi2</code></strong> - End latitude (<code>radians</code>).</li>\n        <li><strong class=\"pname\"><code>phi1</code></strong> - Start latitude (<code>radians</code>).</li>\n        <li><strong class=\"pname\"><code>lam21</code></strong> - Longitudinal delta, <i class=\"math\">end-start</i> \n          (<code>radians</code>).</li>\n        <li><strong class=\"pname\"><code>datum</code></strong> - Datum (<a href=\"pygeodesy.datums.Datum-class.html\" \n          class=\"link\">Datum</a>) or ellipsoid (<a \n          href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a> or <a \n          href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>) to use.</li>\n        <li><strong class=\"pname\"><code>scaled</code></strong> - Scale prime_vertical by <code>cos(<b>phi</b>)</code> \n          (<code>bool</code>), see method <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#roc2_\" \n          class=\"link\">pygeodesy.Ellipsoid.roc2_</a>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Angular distance (<code>radians</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>datum</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        The meridional and prime_vertical radii of curvature are taken and \n        scaled <i>at the mean of both latitude</i>.\n      </p>\n      <p><strong>See Also:</strong>\n        Functions <a href=\"pygeodesy.formy-module.html#flatLocal\" \n        class=\"link\">flatLocal</a> or <a \n        href=\"pygeodesy.formy-module.html#flatLocal\" \n        class=\"link\">hubeny</a>, <a \n        href=\"pygeodesy.formy-module.html#cosineLaw_\" \n        class=\"link\">cosineLaw_</a>, <a \n        href=\"pygeodesy.formy-module.html#flatPolar_\" \n        class=\"link\">flatPolar_</a>, <a \n        href=\"pygeodesy.formy-module.html#euclidean_\" \n        class=\"link\">euclidean_</a>, <a \n        href=\"pygeodesy.formy-module.html#haversine_\" \n        class=\"link\">haversine_</a>, <a \n        href=\"pygeodesy.formy-module.html#thomas_\" class=\"link\">thomas_</a>\n        and <a href=\"pygeodesy.formy-module.html#vincentys_\" \n        class=\"link\">vincentys_</a> and <a \n        href=\"https://www.EdWilliams.org/avform.htm#flat\" \n        target=\"_top\">local, flat earth approximation</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"hypot1\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">hypot1</span>&nbsp;(<span class=\"sig-arg\">x</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the norm <i class=\"math\">sqrt(1 + x**2)</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>x</code></strong> - Argument (<code>scalar</code> or <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Norm (<code>float</code> or <a \n          href=\"pygeodesy.fmath.Fhypot-class.html\" \n          class=\"link\">Fhypot</a>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"hypot2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">hypot2</span>&nbsp;(<span class=\"sig-arg\">x</span>,\n        <span class=\"sig-arg\">y</span>,\n        <span class=\"sig-arg\">*xy0</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the <i>squared</i> norm <i class=\"math\">x**2 + y**2</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>x</code></strong> - X (<code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>y</code></strong> - Y (<code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>xy0</code></strong> - Optional reference <code>(x0, y0)</code> (each \n          <code>scalar</code>, an <a href=\"pygeodesy.fsums.Fsum-class.html\"\n          class=\"link\">Fsum</a> or <a \n          href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code><b>x</b>**2 + <b>y</b>**2</code> (<code>float</code>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"hypot2_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">hypot2_</span>&nbsp;(<span class=\"sig-arg\">*xs</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the <i>squared</i> norm <code>fsum(x**2 for x in \n  <b>xs</b>)</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>xs</code></strong> - Components (each <code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>), all positional.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Squared norm (<code>float</code>).</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Class <a href=\"pygeodesy.fmath.Fpowers-class.html\" \n        class=\"link\">Fpowers</a> for further details.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"hypot3\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">hypot3</span>&nbsp;(<span class=\"sig-arg\">x</span>,\n        <span class=\"sig-arg\">y</span>,\n        <span class=\"sig-arg\">z</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use function <a href=\"pygeodesy.fmath-module.html#hypot_\" \n  class=\"link\">pygeodesy.hypot_</a>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"hypot_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">hypot_</span>&nbsp;(<span class=\"sig-arg\">*xs</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the norm <i class=\"math\">sqrt(sum(x**2 for x in xs))</i>.</p>\n  <p>Similar to Python 3.8+ n-dimension <a \n  href=\"https://docs.Python.org/3.8/library/math.html#math.hypot\" \n  target=\"_top\">math.hypot</a>, but exceptions, <code>nan</code> and \n  <code>infinite</code> values are handled differently.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>xs</code></strong> - X arguments (<code>scalar</code>s), all positional.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Norm (<code>float</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>OverflowError</strong></code> - Partial <code>2sum</code> overflow.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid or no <b><code>xs</code></b> values.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        The Python 3.8+ Euclidian distance <a \n        href=\"https://docs.Python.org/3.8/library/math.html#math.dist\" \n        target=\"_top\">math.dist</a> between 2 <i>n</i>-dimensional points \n        <i>p1</i> and <i>p2</i> can be computed as <i \n        class=\"math\">hypot_(*((c1 - c2) for c1, c2 in zip(p1, p2)))</i>, \n        provided <i>p1</i> and <i>p2</i> have the same, non-zero length \n        <i>n</i>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"inStr\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">inStr</span>&nbsp;(<span class=\"sig-arg\">inst</span>,\n        <span class=\"sig-arg\">*args</span>,\n        <span class=\"sig-arg\">**kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use function <a href=\"pygeodesy.streprs-module.html#instr\"\n  class=\"link\">pygeodesy.instr</a>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"instr\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">instr</span>&nbsp;(<span class=\"sig-arg\">inst</span>,\n        <span class=\"sig-arg\">*args</span>,\n        <span class=\"sig-arg\">**kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the string representation of an instantiation.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>inst</code></strong> - The instance (any <code>type</code>).</li>\n        <li><strong class=\"pname\"><code>args</code></strong> - Optional positional arguments.</li>\n        <li><strong class=\"pname\"><code>kwds</code></strong> - Optional keyword arguments.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Representation (<code>str</code>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"int1s\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">int1s</span>&nbsp;(<span class=\"sig-arg\">x</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Count the number of 1-bits in an <code>int</code>, \n  <i>unsigned</i>.</p>\n  <dl class=\"fields\">\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        <code>int1s(-<b>x</b>) == int1s(abs(<b>x</b>))</code>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"intersection2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">intersection2</span>&nbsp;(<span class=\"sig-arg\">lat1</span>,\n        <span class=\"sig-arg\">lon1</span>,\n        <span class=\"sig-arg\">bearing1</span>,\n        <span class=\"sig-arg\">lat2</span>,\n        <span class=\"sig-arg\">lon2</span>,\n        <span class=\"sig-arg\">bearing2</span>,\n        <span class=\"sig-arg\">datum</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">small</span>=<span class=\"sig-default\">100000.0</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p><i>Conveniently</i> compute the intersection of two lines each defined\n  by a (geodetic) point and a bearing from North, using either ...</p>\n  <p>1) <a href=\"pygeodesy.vector3d-module.html#intersection3d3\" \n  class=\"link\">vector3d.intersection3d3</a> for <b><code>small</code></b> \n  distances (below 100 Km or about 0.88 degrees) or if <i>no</i> \n  <b><code>datum</code></b> is specified, or ...</p>\n  <p>2) <a href=\"pygeodesy.sphericalTrigonometry-module.html#intersection\" \n  class=\"link\">sphericalTrigonometry.intersection</a> for a spherical \n  <b><code>datum</code></b> or a <code>scalar <b>datum</b></code> \n  representing the earth radius, conventionally in <code>meter</code> or \n  ...</p>\n  <p>3) <a href=\"pygeodesy.sphericalNvector-module.html#intersection\" \n  class=\"link\">sphericalNvector.intersection</a> if \n  <b><code>datum</code></b> is a <i>negative</i> <code>scalar</code>, \n  (negative) earth radius, conventionally in <code>meter</code> or ...</p>\n  <p>4) <a href=\"pygeodesy.ellipsoidalKarney-module.html#intersection3\" \n  class=\"link\">ellipsoidalKarney.intersection3</a> for an ellipsoidal \n  <b><code>datum</code></b> and if <i>Karney</i>'s <a \n  href=\"https://PyPI.org/project/geographiclib\" \n  target=\"_top\">geographiclib</a> is installed, otherwise ...</p>\n  <p>5) <a href=\"pygeodesy.ellipsoidalExact-module.html#intersection3\" \n  class=\"link\">ellipsoidalExact.intersection3</a>, provided \n  <b><code>datum</code></b> is ellipsoidal.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat1</code></strong> - Latitude of the first point (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lon1</code></strong> - Longitude of the first point (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>bearing1</code></strong> - Bearing at the first point (compass <code>degrees360</code>).</li>\n        <li><strong class=\"pname\"><code>lat2</code></strong> - Latitude of the second point (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lon2</code></strong> - Longitude of the second point (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>bearing2</code></strong> - Bearing at the second point (compass <code>degrees360</code>).</li>\n        <li><strong class=\"pname\"><code>datum</code></strong> - Optional datum (<a href=\"pygeodesy.datums.Datum-class.html\" \n          class=\"link\">Datum</a>) or ellipsoid (<a \n          href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a> or <a \n          href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>) or <code>scalar</code> earth radius \n          (<code>meter</code>, same units as <b><code>radius1</code></b> \n          and <b><code>radius2</code></b>) or <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll \n          <b><code>lat2</code></b> and <b><code>lon2</code></b> \n          (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>small</code></strong> - Upper limit for small distances (<code>meter</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Intersection point (<a \n          href=\"pygeodesy.namedTuples.LatLon2Tuple-class.html\" \n          class=\"link\">LatLon2Tuple</a><code>(lat, lon)</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.IntersectionError-class.html\">IntersectionError</a></strong></code> - No or an ambiguous intersection or colinear, parallel or otherwise \n        non-intersecting lines.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>datum</code></b>.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.UnitError-class.html\">UnitError</a></strong></code> - Invalid <b><code>lat1</code></b>, <b><code>lon1</code></b>, \n        <b><code>bearing1</code></b>, <b><code>lat2</code></b>, \n        <b><code>lon2</code></b> or <b><code>bearing2</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <a \n        href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#intersection2\"\n        class=\"link\">RhumbLine.intersection2</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"intersection3d3\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">intersection3d3</span>&nbsp;(<span class=\"sig-arg\">start1</span>,\n        <span class=\"sig-arg\">end1</span>,\n        <span class=\"sig-arg\">start2</span>,\n        <span class=\"sig-arg\">end2</span>,\n        <span class=\"sig-arg\">eps</span>=<span class=\"sig-default\">2.220446049250313e-16</span>,\n        <span class=\"sig-arg\">useZ</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">**Vector_and_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the intersection point of two (2- or 3-D) lines, each defined \n  by two points or by a point and a bearing.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>start1</code></strong> - Start point of the first line (<code>Cartesian</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <code>Vector3Tuple</code> or \n          <code>Vector4Tuple</code>).</li>\n        <li><strong class=\"pname\"><code>end1</code></strong> - End point of the first line (<code>Cartesian</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <code>Vector3Tuple</code> or \n          <code>Vector4Tuple</code>) or the bearing at \n          <b><code>start1</code></b> (compass <code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>start2</code></strong> - Start point of the second line (<code>Cartesian</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <code>Vector3Tuple</code> or \n          <code>Vector4Tuple</code>).</li>\n        <li><strong class=\"pname\"><code>end2</code></strong> - End point of the second line (<code>Cartesian</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <code>Vector3Tuple</code> or \n          <code>Vector4Tuple</code>) or the bearing at \n          <b><code>start2</code></b> (Ccompass <code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>eps</code></strong> - Tolerance for skew line distance and length (<code>EPS</code>).</li>\n        <li><strong class=\"pname\"><code>useZ</code></strong> - If <code>True</code>, use the Z components, otherwise force \n          <code>z=INT0</code> (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>Vector_and_kwds</code></strong> - Optional class <code><b>Vector</b>=None</code> to return the \n          intersection points and optional, additional \n          <b><code>Vector</code></b> keyword arguments, otherwise \n          <b><code>start1</code></b>'s (sub-)class.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>An <a href=\"pygeodesy.namedTuples.Intersection3Tuple-class.html\" \n          class=\"link\">Intersection3Tuple</a><code>(point, outside1, \n          outside2)</code> with <code>point</code> an instance of \n          <b><code>Vector</code></b> or <b><code>start1</code></b>'s \n          (sub-)class.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.IntersectionError-class.html\">IntersectionError</a></strong></code> - Invalid, skew, non-co-planar or otherwise non-intersecting lines.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        The <code>outside</code> values is <code>0</code> for lines \n        specified by point and bearing.\n      </p>\n      <p><strong>See Also:</strong>\n        <a href=\"https://MathWorld.Wolfram.com/Line-LineIntersection.html\" \n        target=\"_top\">Line-line intersection</a> and <a \n        href=\"https://MathWorld.Wolfram.com/Line-LineDistance.html\" \n        target=\"_top\">line-line distance</a>, <a \n        href=\"https://MathWorld.Wolfram.com/SkewLines.html\" \n        target=\"_top\">skew lines</a> and <a \n        href=\"https://MathWorld.Wolfram.com/Point-LineDistance3-Dimensional.html\"\n        target=\"_top\">point-line distance</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"intersections2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">intersections2</span>&nbsp;(<span class=\"sig-arg\">center1</span>,\n        <span class=\"sig-arg\">radius1</span>,\n        <span class=\"sig-arg\">center2</span>,\n        <span class=\"sig-arg\">radius2</span>,\n        <span class=\"sig-arg\">sphere</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">**Vector_and_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the intersection of two spheres or circles, each defined by a \n  (3-D) center point and a radius.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>center1</code></strong> - Center of the first sphere or circle (<code>Cartesian</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <code>Vector3Tuple</code> or \n          <code>Vector4Tuple</code>).</li>\n        <li><strong class=\"pname\"><code>radius1</code></strong> - Radius of the first sphere or circle (same units as the \n          <b><code>center1</code></b> coordinates).</li>\n        <li><strong class=\"pname\"><code>center2</code></strong> - Center of the second sphere or circle (<code>Cartesian</code>, <a\n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <code>Vector3Tuple</code> or \n          <code>Vector4Tuple</code>).</li>\n        <li><strong class=\"pname\"><code>radius2</code></strong> - Radius of the second sphere or circle (same units as the \n          <b><code>center1</code></b> and <b><code>center2</code></b> \n          coordinates).</li>\n        <li><strong class=\"pname\"><code>sphere</code></strong> - If <code>True</code>, compute the center and radius of the \n          intersection of two spheres.  If <code>False</code>, ignore the \n          <code>z</code>-component and compute the intersection of two \n          circles (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>Vector_and_kwds</code></strong> - Optional class <code><b>Vector</b>=None</code> to return the \n          intersection points and optionally, additional \n          <b><code>Vector</code></b> keyword arguments, otherwise \n          <b><code>center1</code></b>'s (sub-)class.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>If <code><b>sphere</b> is True</code>, a 2-tuple of the \n          <code>center</code> and <code>radius</code> of the intersection \n          of the <i>spheres</i>.  For abutting circles, <code>radius</code>\n          is <code>0.0</code> and <code>center</code> is the <i>radical \n          center</i>.\n          <p>If <code><b>sphere</b> is False</code>, a 2-tuple with the two\n          intersection points of the <i>circles</i>.  For abutting circles,\n          both points are the same instance, aka the <i>radical \n          center</i>.</p></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.IntersectionError-class.html\">IntersectionError</a></strong></code> - Concentric, invalid or non-intersecting spheres or circles.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>center1</code></b> or <b><code>center2</code></b>.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.UnitError-class.html\">UnitError</a></strong></code> - Invalid <b><code>radius1</code></b> or <b><code>radius2</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a \n        href=\"https://MathWorld.Wolfram.com/Sphere-SphereIntersection.html\"\n        target=\"_top\">Sphere-Sphere</a> and <a \n        href=\"https://MathWorld.Wolfram.com/Circle-CircleIntersection.html\"\n        target=\"_top\">Circle-Circle</a> Intersection.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"isBoolean\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">isBoolean</span>&nbsp;(<span class=\"sig-arg\">obj</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Check for <code>Boolean</code> composites.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>obj</code></strong> - The object (any <code>type</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>True</code> if <b><code>obj</code></b> is <a \n          href=\"pygeodesy.booleans.BooleanFHP-class.html\" \n          class=\"link\">BooleanFHP</a>, <a \n          href=\"pygeodesy.booleans.BooleanGH-class.html\" \n          class=\"link\">BooleanGH</a> or some other composite, \n          <code>False</code> otherwise.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"isCartesian\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">isCartesian</span>&nbsp;(<span class=\"sig-arg\">obj</span>,\n        <span class=\"sig-arg\">ellipsoidal</span>=<span class=\"sig-default\">None</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Is <b><code>obj</code></b>ect some <code>Cartesian</code>?</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>obj</code></strong> - The object (any <code>type</code>).</li>\n        <li><strong class=\"pname\"><code>ellipsoidal</code></strong> - If <code>None</code>, return the type of any \n          <code>Cartesian</code>, if <code>True</code>, only an ellipsoidal\n          <code>Cartesian type</code> or if <code>False</code>, only a \n          spherical <code>Cartesian type</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>type(<b>obj</b></code> if a <code>Cartesian</code> of the \n          required type, <code>False</code> if a <code>Cartesian</code> of \n          an other type or {None} otherwise.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"isDEPRECATED\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">isDEPRECATED</span>&nbsp;(<span class=\"sig-arg\">obj</span>,\n        <span class=\"sig-arg\">outer</span>=<span class=\"sig-default\">1</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Is <b><code>obj</code></b>ect or its outer <code>type</code> a \n  <code>DEPRECATED</code> class, constant, method or function?</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd><code>True</code> if <code>DEPRECATED</code>, {False} if not or \n          <code>None</code> if undetermined.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"isError\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">isError</span>&nbsp;(<span class=\"sig-arg\">exc</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Check a (caught) exception.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>exc</code></strong> - The exception C({Exception}).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>True</code> if <b><code>exc</code></b> is a \n          <code>pygeodesy</code> error, <code>False</code> if \n          <b><code>exc</code></b> is a standard Python error of \n          <code>None</code> if neither.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"isLatLon\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">isLatLon</span>&nbsp;(<span class=\"sig-arg\">obj</span>,\n        <span class=\"sig-arg\">ellipsoidal</span>=<span class=\"sig-default\">None</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Is <b><code>obj</code></b>ect some <code>LatLon</code>?</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>obj</code></strong> - The object (any <code>type</code>).</li>\n        <li><strong class=\"pname\"><code>ellipsoidal</code></strong> - If <code>None</code>, return the type of any <code>LatLon</code>,\n          if <code>True</code>, only an ellipsoidal <code>LatLon \n          type</code> or if <code>False</code>, only a spherical \n          <code>LatLon type</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>type(<b>obj</b></code> if a <code>LatLon</code> of the \n          required type, <code>False</code> if a <code>LatLon</code> of an \n          other type or {None} otherwise.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"isNumpy2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">isNumpy2</span>&nbsp;(<span class=\"sig-arg\">obj</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Check for a <b><code>Numpy2LatLon</code></b> points wrapper.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>obj</code></strong> - The object (any <code>type</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>True</code> if <b><code>obj</code></b> is a \n          <b><code>Numpy2LatLon</code></b> instance, <code>False</code> \n          otherwise.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"isNvector\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">isNvector</span>&nbsp;(<span class=\"sig-arg\">obj</span>,\n        <span class=\"sig-arg\">ellipsoidal</span>=<span class=\"sig-default\">None</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Is <b><code>obj</code></b>ect some <code>Nvector</code>?</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>obj</code></strong> - The object (any <code>type</code>).</li>\n        <li><strong class=\"pname\"><code>ellipsoidal</code></strong> - If <code>None</code>, return the type of any \n          <code>Nvector</code>, if <code>True</code>, only an ellipsoidal \n          <code>Nvector type</code> or if <code>False</code>, only a \n          spherical <code>Nvector type</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>type(<b>obj</b></code> if an <code>Nvector</code> of the \n          required type, <code>False</code> if an <code>Nvector</code> of \n          an other type or {None} otherwise.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"isPoints2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">isPoints2</span>&nbsp;(<span class=\"sig-arg\">obj</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Check for a <b><code>LatLon2psxy</code></b> points wrapper.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>obj</code></strong> - The object (any <code>type</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>True</code> if <b><code>obj</code></b> is a \n          <b><code>LatLon2psxy</code></b> instance, <code>False</code> \n          otherwise.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"isTuple2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">isTuple2</span>&nbsp;(<span class=\"sig-arg\">obj</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Check for a <b><code>Tuple2LatLon</code></b> points wrapper.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>obj</code></strong> - The object (any).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>True</code> if <b><code>obj</code></b> is a \n          <b><code>Tuple2LatLon</code></b> instance, <code>False</code> \n          otherwise.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"isantipode\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">isantipode</span>&nbsp;(<span class=\"sig-arg\">lat1</span>,\n        <span class=\"sig-arg\">lon1</span>,\n        <span class=\"sig-arg\">lat2</span>,\n        <span class=\"sig-arg\">lon2</span>,\n        <span class=\"sig-arg\">eps</span>=<span class=\"sig-default\">2.220446049250313e-16</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Check whether two points are <i>antipodal</i>, on diametrically \n  opposite sides of the earth.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat1</code></strong> - Latitude of one point (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lon1</code></strong> - Longitude of one point (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lat2</code></strong> - Latitude of the other point (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lon2</code></strong> - Longitude of the other point (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>eps</code></strong> - Tolerance for near-equality (<code>degrees</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>True</code> if points are antipodal within the \n          <b><code>eps</code></b> tolerance, <code>False</code> otherwise.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Functions <a href=\"pygeodesy.formy-module.html#isantipode_\" \n        class=\"link\">isantipode_</a> and <a \n        href=\"pygeodesy.formy-module.html#antipode\" \n        class=\"link\">antipode</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"isantipode_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">isantipode_</span>&nbsp;(<span class=\"sig-arg\">phi1</span>,\n        <span class=\"sig-arg\">lam1</span>,\n        <span class=\"sig-arg\">phi2</span>,\n        <span class=\"sig-arg\">lam2</span>,\n        <span class=\"sig-arg\">eps</span>=<span class=\"sig-default\">2.220446049250313e-16</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Check whether two points are <i>antipodal</i>, on diametrically \n  opposite sides of the earth.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>phi1</code></strong> - Latitude of one point (<code>radians</code>).</li>\n        <li><strong class=\"pname\"><code>lam1</code></strong> - Longitude of one point (<code>radians</code>).</li>\n        <li><strong class=\"pname\"><code>phi2</code></strong> - Latitude of the other point (<code>radians</code>).</li>\n        <li><strong class=\"pname\"><code>lam2</code></strong> - Longitude of the other point (<code>radians</code>).</li>\n        <li><strong class=\"pname\"><code>eps</code></strong> - Tolerance for near-equality (<code>radians</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>True</code> if points are antipodal within the \n          <b><code>eps</code></b> tolerance, <code>False</code> otherwise.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Functions <a href=\"pygeodesy.formy-module.html#isantipode\" \n        class=\"link\">isantipode</a> and <a \n        href=\"pygeodesy.formy-module.html#antipode_\" \n        class=\"link\">antipode_</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"isbool\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">isbool</span>&nbsp;(<span class=\"sig-arg\">obj</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Is <b><code>obj</code></b>ect a <code>bool</code>ean?</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>obj</code></strong> - The object (any <code>type</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>True</code> if <code>bool</code>ean, <code>False</code> \n          otherwise.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"isclockwise\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">isclockwise</span>&nbsp;(<span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">adjust</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">True</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Determine the direction of a path or polygon.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>points</code></strong> - The path or polygon points (<code>LatLon</code>[]).</li>\n        <li><strong class=\"pname\"><code>adjust</code></strong> - Adjust the wrapped, unrolled longitudinal delta by the cosine of \n          the mean latitude (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll the \n          <b><code>points</code></b> (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>True</code> if <b><code>points</code></b> are clockwise, \n          <code>False</code> otherwise.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.PointsError-class.html\">PointsError</a></strong></code> - Insufficient number of <b><code>points</code></b></li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Some <b><code>points</code></b> are not <code>LatLon</code>.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - The <b><code>points</code></b> enclose a pole or zero area.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"iscolinearWith\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">iscolinearWith</span>&nbsp;(<span class=\"sig-arg\">point</span>,\n        <span class=\"sig-arg\">point1</span>,\n        <span class=\"sig-arg\">point2</span>,\n        <span class=\"sig-arg\">eps</span>=<span class=\"sig-default\">2.220446049250313e-16</span>,\n        <span class=\"sig-arg\">useZ</span>=<span class=\"sig-default\">True</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Check whether a point is colinear with two other (2- or 3-D) \n  points.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>point</code></strong> - The point (<a href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <code>Vector3Tuple</code> or \n          <code>Vector4Tuple</code>).</li>\n        <li><strong class=\"pname\"><code>point1</code></strong> - First point (<a href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <code>Vector3Tuple</code> or \n          <code>Vector4Tuple</code>).</li>\n        <li><strong class=\"pname\"><code>point2</code></strong> - Second point (<a href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <code>Vector3Tuple</code> or \n          <code>Vector4Tuple</code>).</li>\n        <li><strong class=\"pname\"><code>eps</code></strong> - Tolerance (<code>scalar</code>), same units as <code>x</code>, \n          <code>y</code> and <code>z</code>.</li>\n        <li><strong class=\"pname\"><code>useZ</code></strong> - If <code>True</code>, use the Z components, otherwise force \n          <code>z=INT0</code> (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>True</code> if <b><code>point</code></b> is colinear \n          <b><code>point1</code></b> and <b><code>point2</code></b>, \n          <code>False</code> otherwise.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>point</code></b>, <b><code>point1</code></b> or \n        <b><code>point2</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.vector3d-module.html#nearestOn\" \n        class=\"link\">nearestOn</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"iscomplex\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">iscomplex</span>&nbsp;(<span class=\"sig-arg\">obj</span>,\n        <span class=\"sig-arg\">both</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Is <b><code>obj</code></b>ect a <code>complex</code> or complex \n  literal <code>str</code>?</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>obj</code></strong> - The object (any <code>type</code>).</li>\n        <li><strong class=\"pname\"><code>both</code></strong> - If <code>True</code>, check complex <code>str</code> \n          (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>True</code> if <code>complex</code>, <code>False</code> \n          otherwise.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"isconvex\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">isconvex</span>&nbsp;(<span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">adjust</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Determine whether a polygon is convex.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>points</code></strong> - The polygon points (<code>LatLon</code>[]).</li>\n        <li><strong class=\"pname\"><code>adjust</code></strong> - Adjust the wrapped, unrolled longitudinal delta by the cosine of \n          the mean latitude (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll the \n          <b><code>points</code></b> (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>True</code> if <b><code>points</code></b> are convex, \n          <code>False</code> otherwise.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.CrossError-class.html\">CrossError</a></strong></code> - Some <b><code>points</code></b> are colinear.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.PointsError-class.html\">PointsError</a></strong></code> - Insufficient number of <b><code>points</code></b></li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Some <b><code>points</code></b> are not <code>LatLon</code>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"isconvex_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">isconvex_</span>&nbsp;(<span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">adjust</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Determine whether a polygon is convex <i>and clockwise</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>points</code></strong> - The polygon points (<code>LatLon</code>[]).</li>\n        <li><strong class=\"pname\"><code>adjust</code></strong> - Adjust the wrapped, unrolled longitudinal delta by the cosine of \n          the mean latitude (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll the \n          <b><code>points</code></b> (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>+1</code> if <b><code>points</code></b> are convex \n          clockwise, <code>-1</code> for convex counter-clockwise \n          <b><code>points</code></b>, <code>0</code> otherwise.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.CrossError-class.html\">CrossError</a></strong></code> - Some <b><code>points</code></b> are colinear.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.PointsError-class.html\">PointsError</a></strong></code> - Insufficient number of <b><code>points</code></b></li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Some <b><code>points</code></b> are not <code>LatLon</code>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"isenclosedBy\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">isenclosedBy</span>&nbsp;(<span class=\"sig-arg\">point</span>,\n        <span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Determine whether a point is enclosed by a polygon or composite.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>point</code></strong> - The point (<code>LatLon</code> or 2-tuple <code>(lat, \n          lon)</code>).</li>\n        <li><strong class=\"pname\"><code>points</code></strong> - The polygon points or clips (<code>LatLon</code>[], <a \n          href=\"pygeodesy.booleans.BooleanFHP-class.html\" \n          class=\"link\">BooleanFHP</a> or <a \n          href=\"pygeodesy.booleans.BooleanGH-class.html\" \n          class=\"link\">BooleanGH</a>).</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll the \n          <b><code>points</code></b> (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>True</code> if the <b><code>point</code></b> is inside the \n          polygon or composite, <code>False</code> otherwise.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.PointsError-class.html\">PointsError</a></strong></code> - Insufficient number of <b><code>points</code></b></li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Some <b><code>points</code></b> are not <code>LatLon</code>.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>point</code></b>, lat- or longitude.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Functions <a href=\"pygeodesy.points-module.html#isconvex\" \n        class=\"link\">pygeodesy.isconvex</a> and <a \n        href=\"pygeodesy.points-module.html#ispolar\" \n        class=\"link\">pygeodesy.ispolar</a> especially if the \n        <b><code>points</code></b> may enclose a pole or wrap around the \n        earth <i>longitudinally</i>, methods <a \n        href=\"pygeodesy.sphericalNvector.LatLon-class.html#isenclosedBy\" \n        class=\"link\">sphericalNvector.LatLon.isenclosedBy</a>, <a \n        href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html#isenclosedBy\"\n        class=\"link\">sphericalTrigonometry.LatLon.isenclosedBy</a> and <a \n        href=\"https://GitHub.com/NASA/MultiDop\" target=\"_top\">MultiDop \n        GeogContainPt</a> (<a \n        href=\"https://Journals.AMetSoc.org/doi/abs/10.1175/2009JTECHA1256.1\"\n        target=\"_top\">Shapiro et.al. 2009, JTECH</a> and <a \n        href=\"https://Journals.AMetSoc.org/doi/abs/10.1175/JTECH-D-11-00019.1\"\n        target=\"_top\">Potvin et al. 2012, JTECH</a>).\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"isenclosedby\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">isenclosedby</span>&nbsp;(<span class=\"sig-arg\">point</span>,\n        <span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use function <a \n  href=\"pygeodesy.points-module.html#isenclosedBy\" \n  class=\"link\">pygeodesy.isenclosedBy</a>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"isfinite\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">isfinite</span>&nbsp;(<span class=\"sig-arg\">obj</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Check a finite <code>scalar</code>, <code>complex</code>, ... \n  value.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>obj</code></strong> - Value (<code>scalar</code>, <code>complex</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>False</code> if <b><code>obj</code></b> is \n          <code>INF</code>, <code>NINF</code> or <code>NAN</code>, \n          <code>True</code> otherwise.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Non-scalar and non-complex <b><code>obj</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"isfloat\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">isfloat</span>&nbsp;(<span class=\"sig-arg\">obj</span>,\n        <span class=\"sig-arg\">both</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Is <b><code>obj</code></b>ect a <code>float</code> or float literal \n  <code>str</code>?</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>obj</code></strong> - The object (any <code>type</code>).</li>\n        <li><strong class=\"pname\"><code>both</code></strong> - If <code>True</code>, check float <code>str</code> \n          (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>True</code> if <code>float</code>, <code>False</code> \n          otherwise.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"isinstanceof\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">isinstanceof</span>&nbsp;(<span class=\"sig-arg\">obj</span>,\n        <span class=\"sig-arg\">*Classes</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Is <b><code>obj</code></b>ect an instance of one of the \n  <code>Classes</code>?</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>obj</code></strong> - The object (any <code>type</code>).</li>\n        <li><strong class=\"pname\"><code>Classes</code></strong> - One or more classes (<code>Class</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>type(<b>obj</b></code> if one of the \n          <b><code>Classes</code></b>, <code>None</code> otherwise.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"isint\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">isint</span>&nbsp;(<span class=\"sig-arg\">obj</span>,\n        <span class=\"sig-arg\">both</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Is <b><code>obj</code></b>ect an <code>int</code> or integer \n  <code>float</code> value?</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>obj</code></strong> - The object (any <code>type</code>).</li>\n        <li><strong class=\"pname\"><code>both</code></strong> - If <code>True</code>, check <code>float</code> and <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> type\n          and value (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>True</code> if <code>int</code> or <i>integer</i> \n          <code>float</code> or <a href=\"pygeodesy.fsums.Fsum-class.html\" \n          class=\"link\">Fsum</a>, <code>False</code> otherwise.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        Both <code>isint(True)</code> and <code>isint(False)</code> return \n        <code>False</code> (and no longer <code>True</code>).\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"isint0\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">isint0</span>&nbsp;(<span class=\"sig-arg\">obj</span>,\n        <span class=\"sig-arg\">both</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Check for <a href=\"pygeodesy.constants-module.html#INT0\" \n  class=\"link\">INT0</a> or <code>int(0)</code> value.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>obj</code></strong> - The object (any <code>type</code>).</li>\n        <li><strong class=\"pname\"><code>both</code></strong> - If <code>true</code>, also check <code>float(0)</code> \n          (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>True</code> if <b><code>obj</code></b> is <a \n          href=\"pygeodesy.constants-module.html#INT0\" \n          class=\"link\">INT0</a>, <code>int(0)</code> or \n          <code>float(0)</code>, <code>False</code> otherwise.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"isiterable\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">isiterable</span>&nbsp;(<span class=\"sig-arg\">obj</span>,\n        <span class=\"sig-arg\">strict</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Is <b><code>obj</code></b>ect <code>iterable</code>?</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>obj</code></strong> - The object (any <code>type</code>).</li>\n        <li><strong class=\"pname\"><code>strict</code></strong> - If <code>True</code>, check class attributes (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>True</code> if <code>iterable</code>, <code>False</code> \n          otherwise.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"isiterablen\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">isiterablen</span>&nbsp;(<span class=\"sig-arg\">obj</span>,\n        <span class=\"sig-arg\">strict</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Is <b><code>obj</code></b>ect <code>iterable</code> and has \n  <code>len</code>gth?</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>obj</code></strong> - The object (any <code>type</code>).</li>\n        <li><strong class=\"pname\"><code>strict</code></strong> - If <code>True</code>, check class attributes (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>True</code> if <code>iterable</code> with \n          <code>len</code>gth, <code>False</code> otherwise.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"isiterabletype\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">isiterabletype</span>&nbsp;(<span class=\"sig-arg\">obj</span>,\n        <span class=\"sig-arg\">method</span>=<span class=\"sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">__iter__</code><code class=\"variable-quote\">'</code></span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Is <b><code>obj</code></b>ect an instance of an <code>iterable</code> \n  class or type?</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>obj</code></strong> - The object (any <code>type</code>).</li>\n        <li><strong class=\"pname\"><code>method</code></strong> - The name of the required method (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The <code>base-class</code> if <code>iterable</code>, \n          <code>None</code> otherwise.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"islistuple\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">islistuple</span>&nbsp;(<span class=\"sig-arg\">obj</span>,\n        <span class=\"sig-arg\">minum</span>=<span class=\"sig-default\">0</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Is <b><code>obj</code></b>ect a <code>list</code> or \n  <code>tuple</code> with non-zero length?</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>obj</code></strong> - The object (any <code>type</code>).</li>\n        <li><strong class=\"pname\"><code>minum</code></strong> - Minimal <code>len</code> required C({int}).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>True</code> if a <code>list</code> or <code>tuple</code> \n          with <code>len</code> at least <b><code>minum</code></b>, \n          <code>False</code> otherwise.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"isnear0\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">isnear0</span>&nbsp;(<span class=\"sig-arg\">x</span>,\n        <span class=\"sig-arg\">eps0</span>=<span class=\"sig-default\">4.930380657631324e-32</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Is <b><code>x</code></b> near <i>zero</i> within a tolerance?</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>x</code></strong> - Value (<code>scalar</code>).</li>\n        <li><strong class=\"pname\"><code>eps0</code></strong> - Near-<i>zero</i> tolerance (<code>EPS0</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>True</code> if <code>abs(<b>x</b>) &lt; <b>eps0</b></code>,\n          <code>False</code> otherwise.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.constants-module.html#isnon0\" \n        class=\"link\">isnon0</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"isnear1\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">isnear1</span>&nbsp;(<span class=\"sig-arg\">x</span>,\n        <span class=\"sig-arg\">eps1</span>=<span class=\"sig-default\">4.930380657631324e-32</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Is <b><code>x</code></b> near <i>one</i> within a tolerance?</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>x</code></strong> - Value (<code>scalar</code>).</li>\n        <li><strong class=\"pname\"><code>eps1</code></strong> - Near-<i>one</i> tolerance (<code>EPS0</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>isnear0(<b>x</b> - 1, eps0=<b>eps1</b>)</code>.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.constants-module.html#isnear0\" \n        class=\"link\">isnear0</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"isnear90\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">isnear90</span>&nbsp;(<span class=\"sig-arg\">x</span>,\n        <span class=\"sig-arg\">eps90</span>=<span class=\"sig-default\">4.930380657631324e-32</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Is <b><code>x</code></b> near <i>90</i> within a tolerance?</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>x</code></strong> - Value (<code>scalar</code>).</li>\n        <li><strong class=\"pname\"><code>eps90</code></strong> - Near-<i>90</i> tolerance (<code>EPS0</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>isnear0(<b>x</b> - 90, eps0=eps90)</code>.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.constants-module.html#isnear0\" \n        class=\"link\">isnear0</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"isneg\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">isneg</span>&nbsp;(<span class=\"sig-arg\">x</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Check for negative <code>x</code>, including <a \n  href=\"pygeodesy.constants-module.html#NEG0\" class=\"link\">NEG0</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>x</code></strong> - Value (<code>scalar</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>True</code> if <code><b>x</b> &lt; 0 or NEG0</code>, \n          <code>False</code> otherwise.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"isneg0\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">isneg0</span>&nbsp;(<span class=\"sig-arg\">x</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Check for <a href=\"pygeodesy.constants-module.html#NEG0\" \n  class=\"link\">NEG0</a>, negative <code>0.0</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>x</code></strong> - Value (<code>scalar</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>True</code> if <b><code>x</code></b> is <code>NEG0</code> \n          or <code>-0.0</code>, <code>False</code> otherwise.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"isninf\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">isninf</span>&nbsp;(<span class=\"sig-arg\">x</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Check for <a href=\"pygeodesy.constants-module.html#NINF\" \n  class=\"link\">NINF</a>, negative <code>INF</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>x</code></strong> - Value (<code>scalar</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>True</code> if <b><code>x</code></b> is <code>NINF</code> \n          or <code>-inf</code>, <code>False</code> otherwise.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"isnon0\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">isnon0</span>&nbsp;(<span class=\"sig-arg\">x</span>,\n        <span class=\"sig-arg\">eps0</span>=<span class=\"sig-default\">4.930380657631324e-32</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Is <b><code>x</code></b> non-zero with a tolerance?</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>x</code></strong> - Value (<code>scalar</code>).</li>\n        <li><strong class=\"pname\"><code>eps0</code></strong> - Non-zero tolerance (<code>EPS0</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>True</code> if <code>abs(<b>x</b>) &gt; <b>eps0</b></code>,\n          <code>False</code> otherwise.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.constants-module.html#isnear0\" \n        class=\"link\">isnear0</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"isnormal\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">isnormal</span>&nbsp;(<span class=\"sig-arg\">lat</span>,\n        <span class=\"sig-arg\">lon</span>,\n        <span class=\"sig-arg\">eps</span>=<span class=\"sig-default\">0</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Check whether <b><code>lat</code></b> <i>and</i> \n  <b><code>lon</code></b> are within their respective <i>normal</i> range \n  in <code>degrees</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat</code></strong> - Latitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lon</code></strong> - Longitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>eps</code></strong> - Optional tolerance <code>degrees</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>True</code> if <code>(abs(<b>lat</b>) + <b>eps</b>) &lt;= \n          90</code> and <code>(abs(<b>lon</b>) + <b>eps</b>) &lt;= \n          180</code>, <code>False</code> otherwise.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Functions <a href=\"pygeodesy.formy-module.html#isnormal_\" \n        class=\"link\">isnormal_</a> and <a \n        href=\"pygeodesy.formy-module.html#normal\" class=\"link\">normal</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"isnormal_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">isnormal_</span>&nbsp;(<span class=\"sig-arg\">phi</span>,\n        <span class=\"sig-arg\">lam</span>,\n        <span class=\"sig-arg\">eps</span>=<span class=\"sig-default\">0</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Check whether <b><code>phi</code></b> <i>and</i> \n  <b><code>lam</code></b> are within their respective <i>normal</i> range \n  in <code>radians</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>phi</code></strong> - Latitude (<code>radians</code>).</li>\n        <li><strong class=\"pname\"><code>lam</code></strong> - Longitude (<code>radians</code>).</li>\n        <li><strong class=\"pname\"><code>eps</code></strong> - Optional tolerance <code>radians</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>True</code> if <code>(abs(<b>phi</b>) + <b>eps</b>) &lt;= \n          PI/2</code> and <code>(abs(<b>lam</b>) + <b>eps</b>) &lt;= \n          PI</code>, <code>False</code> othwerwise.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Functions <a href=\"pygeodesy.formy-module.html#isnormal\" \n        class=\"link\">isnormal</a> and <a \n        href=\"pygeodesy.formy-module.html#normal_\" \n        class=\"link\">normal_</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"isodd\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">isodd</span>&nbsp;(<span class=\"sig-arg\">x</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Is <b><code>x</code></b> odd?</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>x</code></strong> - Value (<code>scalar</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>True</code> if odd, <code>False</code> otherwise.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"ispolar\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">ispolar</span>&nbsp;(<span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Check whether a polygon encloses a pole.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>points</code></strong> - The polygon points (<code>LatLon</code>[]).</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll the \n          <b><code>points</code></b> (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>True</code> if the polygon encloses a pole, \n          <code>False</code> otherwise.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.PointsError-class.html\">PointsError</a></strong></code> - Insufficient number of <b><code>points</code></b></li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Some <b><code>points</code></b> are not <code>LatLon</code> or \n        don't have <code>bearingTo2</code>, <code>initialBearingTo</code> \n        and <code>finalBearingTo</code> methods.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"isscalar\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">isscalar</span>&nbsp;(<span class=\"sig-arg\">obj</span>,\n        <span class=\"sig-arg\">both</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Is <b><code>obj</code></b>ect an <code>int</code> or integer \n  <code>float</code> value?</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>obj</code></strong> - The object (any <code>type</code>).</li>\n        <li><strong class=\"pname\"><code>both</code></strong> - If <code>True</code>, check <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> and \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a> residuals.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>True</code> if <code>int</code>, <code>float</code> or \n          <code>Fsum/-2Tuple</code> with zero residual, <code>False</code> \n          otherwise.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"issequence\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">issequence</span>&nbsp;(<span class=\"sig-arg\">obj</span>,\n        <span class=\"sig-arg\">*excls</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Is <b><code>obj</code></b>ect some sequence type?</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>obj</code></strong> - The object (any <code>type</code>).</li>\n        <li><strong class=\"pname\"><code>excls</code></strong> - Classes to exclude (<code>type</code>), all positional.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>True</code> if a sequence, <code>False</code> otherwise.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        Excluding <code>tuple</code> implies excluding \n        <code>namedtuple</code>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"isstr\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">isstr</span>&nbsp;(<span class=\"sig-arg\">obj</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Is <b><code>obj</code></b>ect some string type?</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>obj</code></strong> - The object (any <code>type</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>True</code> if a <code>str</code>, <code>bytes</code>, ...,\n          <code>False</code> otherwise.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"issubclassof\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">issubclassof</span>&nbsp;(<span class=\"sig-arg\">Sub</span>,\n        <span class=\"sig-arg\">*Supers</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Is <b><code>Sub</code></b> a class and sub-class of some other \n  class(es)?</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>Sub</code></strong> - The sub-class (<code>Class</code>).</li>\n        <li><strong class=\"pname\"><code>Supers</code></strong> - One or more C(super) classes (<code>Class</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>True</code> if a sub-class of any \n          <b><code>Supers</code></b>, <code>False</code> if not \n          (<code>bool</code>) or <code>None</code> if not a class or if no \n          <b><code>Supers</code></b> are given or none of those are a \n          class.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"istuplist\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">istuplist</span>&nbsp;(<span class=\"sig-arg\">obj</span>,\n        <span class=\"sig-arg\">minum</span>=<span class=\"sig-default\">0</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED on 2023.03.31, use function <a \n  href=\"pygeodesy.basics-module.html#islistuple\" \n  class=\"link\">pygeodesy.islistuple</a>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"itemsorted\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">itemsorted</span>&nbsp;(<span class=\"sig-arg\">adict</span>,\n        <span class=\"sig-arg\">*items_args</span>,\n        <span class=\"sig-arg\">**asorted_reverse</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the items of <code><b>adict</b></code> sorted \n  <i>alphabetically, case-insensitively</i> and in <i>ascending</i> \n  order.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>items_args</code></strong> - Optional positional argument(s) for method \n          <code><b>adict</b>.items(B*{items_args})</code>.</li>\n        <li><strong class=\"pname\"><code>asorted_reverse</code></strong> - Use <code><b>asorted</b>=False</code> for <i>alphabetical, \n          case-sensitive</i> sorting and <code><b>reverse</b>=True</code> \n          for sorting in <code>descending</code> order.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"iterNumpy2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">iterNumpy2</span>&nbsp;(<span class=\"sig-arg\">obj</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Iterate over Numpy2 wrappers or other sequences exceeding the \n  threshold.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>obj</code></strong> - Points array, list, sequence, set, etc. (any).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>True</code> do, <code>False</code> don't iterate.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"iterNumpy2over\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">iterNumpy2over</span>&nbsp;(<span class=\"sig-arg\">n</span>=<span class=\"sig-default\">None</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Get or set the <a href=\"pygeodesy.iters-module.html#iterNumpy2\" \n  class=\"link\">iterNumpy2</a> threshold.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>n</code></strong> - Optional, new threshold (<code>int</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Previous threshold (<code>int</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>n</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"joined\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">joined</span>&nbsp;(<span class=\"sig-arg\">*words</span>,\n        <span class=\"sig-arg\">**sep</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use <code>NN(...)</code>, <code>NN.join_</code> or \n  <code><b>sep</b>.join</code>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"joined_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">joined_</span>&nbsp;(<span class=\"sig-arg\">*words</span>,\n        <span class=\"sig-arg\">**sep</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use <code>_SPACE_(...)</code>, <code>_SPACE_.join_</code> \n  or <code><b>sep</b>.join</code>, sep=&quot; &quot;.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"km2m\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">km2m</span>&nbsp;(<span class=\"sig-arg\">km</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert a length in <i>kilo meter</i> to meter (<code>m</code>).</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>km</code></strong> - Length in kilo meter (<code>scalar</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Length in meter (<code>float</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>km</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"latDMS\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">latDMS</span>&nbsp;(<span class=\"sig-arg\">deg</span>,\n        <span class=\"sig-arg\">form</span>=<span class=\"sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">dms</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"sig-arg\">prec</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">sep</span>=<span class=\"sig-default\">''</span>,\n        <span class=\"sig-arg\">**s_D_M_S</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert latitude to a string, optionally suffixed with N or S.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>deg</code></strong> - Latitude to be formatted (<code>scalar degrees</code>).</li>\n        <li><strong class=\"pname\"><code>form</code></strong> - Format specifier for <b><code>deg</code></b> (<code>str</code> or\n          <code>F_...</code>).</li>\n        <li><strong class=\"pname\"><code>prec</code></strong> - Number of decimal digits (0..9 or <code>None</code> for default).</li>\n        <li><strong class=\"pname\"><code>sep</code></strong> - Separator between degrees, minutes, seconds, suffix \n          (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>s_D_M_S</code></strong> - Optional keyword arguments to override any or cancel all DMS \n          symbol suffixes, see function <a \n          href=\"pygeodesy.dms-module.html#toDMS\" \n          class=\"link\">pygeodesy.toDMS</a>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Degrees in the specified form (<code>str</code>).</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.dms-module.html#toDMS\" \n        class=\"link\">pygeodesy.toDMS</a> and its <b>Notes</b> for further \n        details.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"latlon2n_xyz\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">latlon2n_xyz</span>&nbsp;(<span class=\"sig-arg\">lat_ll</span>,\n        <span class=\"sig-arg\">lon</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert lat-, longitude to <code>n-vector</code> (<i>normal</i> to the\n  earth's surface) X, Y and Z components.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat_ll</code></strong> - Latitude (<code>degrees</code>) or a <code>LatLon</code> \n          instance, <a href=\"pygeodesy.namedTuples.LatLon2Tuple-class.html\"\n          class=\"link\">LatLon2Tuple</a> or other <code>LatLon*Tuple</code>.</li>\n        <li><strong class=\"pname\"><code>lon</code></strong> - Longitude (<code>degrees</code>), required if <code><b>lon_ll</b>\n          is degrees</code>, ignored otherwise.</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.namedTuples.Vector3Tuple-class.html\" \n          class=\"link\">Vector3Tuple</a><code>(x, y, z)</code>.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.latlonBase-module.html#philam2n_xyz\" \n        class=\"link\">philam2n_xyz</a>.\n      </p>\n      <p><strong>Note:</strong>\n        These are <code>n-vector</code> x, y and z components, <i>NOT \n        geocentric</i> x, y and z (ECEF) coordinates!\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"latlonDMS\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">latlonDMS</span>&nbsp;(<span class=\"sig-arg\">lls</span>,\n        <span class=\"sig-arg\">**m_form_prec_sep_s_D_M_S</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert one or more <code>LatLon</code> instances to strings.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lls</code></strong> - Single (<code>LatLon</code>) or an iterable \n          (<code>LatLon</code>s).</li>\n        <li><strong class=\"pname\"><code>m_form_prec_sep_s_D_M_S</code></strong> - Optional keyword arguments <code><b>m</b>eter</code>, \n          <code><b>form</b>at</code>, <code><b>prec</b>ision</code>, \n          <b><code>s_D</code></b>, <b><code>s_M</code></b>, \n          <b><code>s_S</code></b>, <b><code>s_DMS</code></b> and \n          <i>DEPRECATED</i>  <code><b>sep</b>=None</code>, see function <a \n          href=\"pygeodesy.dms-module.html#toDMS\" \n          class=\"link\">pygeodesy.toDMS</a> and method \n          <code>LatLon.toStr</code> for more details.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <code>tuple</code> of <code>str</code>s if \n          <b><code>lls</code></b> is a list, sequence, tuple, etc. of \n          <code>LatLon</code>s or a single <code>str</code> if \n          <b><code>lls</code></b> is a single <code>LatLon</code>.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Functions <a href=\"pygeodesy.dms-module.html#latlonDMS_\" \n        class=\"link\">pygeodesy.latlonDMS_</a>, <a \n        href=\"pygeodesy.dms-module.html#latDMS\" \n        class=\"link\">pygeodesy.latDMS</a>, <a \n        href=\"pygeodesy.dms-module.html#lonDMS\" \n        class=\"link\">pygeodesy.lonDMS</a> and <a \n        href=\"pygeodesy.dms-module.html#toDMS\" \n        class=\"link\">pygeodesy.toDMS</a> and method \n        <code>LatLon.toStr</code>.\n      </p>\n      <p><strong>Note:</strong>\n        Keyword argument <code><b>sep</b>=None</code> to join the resturned\n        <code>tuple</code> has been <i>DEPRECATED</i>, use \n        <code><b>sep</b>.join(<b>latlonDMS_</b>(...))</code> instead.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"latlonDMS_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">latlonDMS_</span>&nbsp;(<span class=\"sig-arg\">*lls</span>,\n        <span class=\"sig-arg\">**m_form_prec_sep_s_D_M_S</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert one or more <code>LatLon</code> instances to strings.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lls</code></strong> - The instances (<code>LatLon</code>s), all positional arguments.</li>\n        <li><strong class=\"pname\"><code>m_form_prec_sep_s_D_M_S</code></strong> - Optional keyword arguments <code><b>m</b>eter</code>, \n          <code><b>form</b>at</code>, <code><b>prec</b>ision</code>, \n          <b><code>s_D</code></b>, <b><code>s_M</code></b>, \n          <b><code>s_S</code></b>, <b><code>s_DMS</code></b> and \n          <i>DEPRECATED</i>  <code><b>sep</b>=None</code>, see function <a \n          href=\"pygeodesy.dms-module.html#toDMS\" \n          class=\"link\">pygeodesy.toDMS</a> and method \n          <code>LatLon.toStr</code> for more details.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <code>tuple</code> of <code>str</code>s if 2 or more \n          <code>LatLon</code> instances or a single <code>str</code> if \n          only a single <code>LatLon</code> instance is given in \n          <b><code>lls</code></b>.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Functions <a href=\"pygeodesy.dms-module.html#latlonDMS\" \n        class=\"link\">pygeodesy.latlonDMS</a>, <a \n        href=\"pygeodesy.dms-module.html#latDMS\" \n        class=\"link\">pygeodesy.latDMS</a> and <a \n        href=\"pygeodesy.dms-module.html#lonDMS\" \n        class=\"link\">pygeodesy.lonDMS</a> and <a \n        href=\"pygeodesy.dms-module.html#toDMS\" \n        class=\"link\">pygeodesy.toDMS</a> and method \n        <code>LatLon.toStr</code>.\n      </p>\n      <p><strong>Note:</strong>\n        Keyword argument <code><b>sep</b>=None</code> to join the resturned\n        <code>tuple</code> has been <i>DEPRECATED</i>, use \n        <code><b>sep</b>.join(<b>latlonDMS_</b>(...))</code> instead.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"len2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">len2</span>&nbsp;(<span class=\"sig-arg\">items</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Make built-in function <code class=\"link\">len</code> work for \n  generators, iterators, etc. since those can only be started exactly \n  once.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>items</code></strong> - Generator, iterator, list, range, tuple, etc.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>2-Tuple <code>(n, items)</code> of the number of items \n          (<code>int</code>) and the items (<code>list</code> or \n          <code>tuple</code>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"limiterrors\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">limiterrors</span>&nbsp;(<span class=\"sig-arg\">raiser</span>=<span class=\"sig-default\">None</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Get/set the throwing of <a \n  href=\"pygeodesy.errors.LimitError-class.html\" \n  class=\"link\">LimitError</a>s.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>raiser</code></strong> - Use <code>True</code> to raise, <code>False</code> to ignore <a \n          href=\"pygeodesy.errors.LimitError-class.html\" \n          class=\"link\">LimitError</a> exceptions or <code>None</code> to \n          leave the setting unchanged.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Previous setting (<code>bool</code>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"lonDMS\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">lonDMS</span>&nbsp;(<span class=\"sig-arg\">deg</span>,\n        <span class=\"sig-arg\">form</span>=<span class=\"sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">dms</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"sig-arg\">prec</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">sep</span>=<span class=\"sig-default\">''</span>,\n        <span class=\"sig-arg\">**s_D_M_S</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert longitude to a string, optionally suffixed with E or W.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>deg</code></strong> - Longitude to be formatted (<code>scalar degrees</code>).</li>\n        <li><strong class=\"pname\"><code>form</code></strong> - Format specifier for <b><code>deg</code></b> (<code>str</code> or\n          <code>F_...</code>).</li>\n        <li><strong class=\"pname\"><code>prec</code></strong> - Number of decimal digits (0..9 or <code>None</code> for default).</li>\n        <li><strong class=\"pname\"><code>sep</code></strong> - Separator between degrees, minutes, seconds, suffix \n          (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>s_D_M_S</code></strong> - Optional keyword arguments to override any or cancel all DMS \n          symbol suffixes.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Degrees in the specified form (<code>str</code>).</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.dms-module.html#toDMS\" \n        class=\"link\">pygeodesy.toDMS</a> and its <b>Notes</b> for further \n        details.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"lrstrip\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">lrstrip</span>&nbsp;(<span class=\"sig-arg\">txt</span>,\n        <span class=\"sig-arg\">lrpairs</span>=<span class=\"sig-default\"><code class=\"variable-group\">{</code><code class=\"variable-quote\">'</code><code class=\"variable-string\">(</code><code class=\"variable-quote\">'</code><code class=\"variable-op\">: </code><code class=\"variable-quote\">'</code><code class=\"variable-string\">)</code><code class=\"variable-quote\">'</code><code class=\"variable-op\">, </code><code class=\"variable-quote\">'</code><code class=\"variable-string\">&lt;</code><code class=\"variable-quote\">'</code><code class=\"variable-op\">: </code><code class=\"variable-quote\">'</code><code class=\"variable-string\">&gt;</code><code class=\"variable-quote\">'</code><code class=\"variable-op\">, </code><code class=\"variable-quote\">'</code><code class=\"variable-string\">[</code><code class=\"variable-quote\">'</code><code class=\"variable-op\">: </code><code class=\"variable-quote\">'</code><code class=\"variable-string\">]</code><code class=\"variable-quote\">'</code><code class=\"variable-op\">, </code><code class=\"variable-quote\">'</code><code class=\"variable-string\">{</code><code class=\"variable-quote\">'</code><code class=\"variable-op\">: </code><code class=\"variable-quote\">'</code><code class=\"variable-string\">}</code><code class=\"variable-quote\">'</code><code class=\"variable-group\">}</code></span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Left- <i>and</i> right-strip parentheses, brackets, etc. from a \n  string.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>txt</code></strong> - String to be stripped (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>lrpairs</code></strong> - Parentheses, etc. to remove (<code>dict</code> of one or several \n          <code>(Left, Right)</code> pairs).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Stripped <b><code>txt</code></b> (<code>str</code>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"luneOf\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">luneOf</span>&nbsp;(<span class=\"sig-arg\">lon1</span>,\n        <span class=\"sig-arg\">lon2</span>,\n        <span class=\"sig-arg\">closed</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">LatLon</span>=<span class=\"sig-default\">&lt;class 'pygeodesy.points.LatLon_'&gt;</span>,\n        <span class=\"sig-arg\">**LatLon_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Generate an ellipsoidal or spherical <a \n  href=\"https://WikiPedia.org/wiki/Spherical_lune\" \n  target=\"_top\">lune</a>-shaped path or polygon.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lon1</code></strong> - Left longitude (<code>degrees90</code>).</li>\n        <li><strong class=\"pname\"><code>lon2</code></strong> - Right longitude (<code>degrees90</code>).</li>\n        <li><strong class=\"pname\"><code>closed</code></strong> - Optionally, close the path (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>LatLon</code></strong> - Class to use (<a href=\"pygeodesy.points.LatLon_-class.html\" \n          class=\"link\">LatLon_</a>).</li>\n        <li><strong class=\"pname\"><code>LatLon_kwds</code></strong> - Optional, additional <a href=pygeodesy-LatLon-attributes-table.html><b><code>LatLon</code></b></a> keyword \n          arguments.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A tuple of 4 or 5 <a href=pygeodesy-LatLon-attributes-table.html><b><code>LatLon</code></b></a> instances outlining \n          the lune shape.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"https://www.MathWorks.com/help/map/ref/areaquad.html\" \n        target=\"_top\">Latitude-longitude quadrangle</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"m2NM\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">m2NM</span>&nbsp;(<span class=\"sig-arg\">meter</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert a length in meter to nautical miles (<code>NM</code>).</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>meter</code></strong> - Length in meter (<code>scalar</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Length in <code>NM</code> (<code>float</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>meter</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"m2SM\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">m2SM</span>&nbsp;(<span class=\"sig-arg\">meter</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert a length in meter to statute miles (SM).</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>meter</code></strong> - Length in meter (<code>scalar</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Length in <code>SM</code> (<code>float</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>meter</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"m2acre\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">m2acre</span>&nbsp;(<span class=\"sig-arg\">meter2</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert an area in <i>square</i> meter to <i>acres</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>meter2</code></strong> - Area in <code>square</code> meter (<code>scalar</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Area in acres (<code>float</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>meter2</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"m2chain\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">m2chain</span>&nbsp;(<span class=\"sig-arg\">meter</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert a length in meter to <i>UK</i> chains.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>meter</code></strong> - Length in meter (<code>scalar</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Length in <code>chains</code> (<code>float</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>meter</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"m2degrees\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">m2degrees</span>&nbsp;(<span class=\"sig-arg\">distance</span>,\n        <span class=\"sig-arg\">earth</span>=<span class=\"sig-default\">6371008.771415</span>,\n        <span class=\"sig-arg\">lat</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">**radius</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert a distance to an arc in degrees along the equator or along a \n  parallel at (geodetic) latitude.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>distance</code></strong> - Distance (<code>meter</code>, same units as \n          <b><code>radius</code></b>).</li>\n        <li><strong class=\"pname\"><code>earth</code></strong> - Mean earth radius (<code>meter</code>) or an ellipsoid or datum \n          (<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a>, <a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a> \n          or <a href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>lat</code></strong> - Parallel latitude (<code>degrees90</code>, <code>str</code>).</li>\n        <li><strong class=\"pname\"><code>radius</code></strong> - For backward compatibility \n          <code><b>radius</b>=<b>earth</b></code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Angle (<code>degrees</code>) or <code>0.0,</code> for near-polar \n          <b><code>lat</code></b>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.RangeError-class.html\">RangeError</a></strong></code> - Latitude <b><code>lat</code></b> outside valid range, only if <a \n        href=\"pygeodesy.errors-module.html#rangerrors\" \n        class=\"link\">rangerrors</a> is <code>True</code>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>earth</code></b> or <b><code>radius</code></b>.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>distance</code></b>, <b><code>earth</code></b> or \n        <b><code>lat</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.utily-module.html#m2radians\" \n        class=\"link\">m2radians</a> and <a \n        href=\"pygeodesy.utily-module.html#degrees2m\" \n        class=\"link\">degrees2m</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"m2fathom\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">m2fathom</span>&nbsp;(<span class=\"sig-arg\">meter</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert a length in meter to <i>Imperial</i> fathoms.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>meter</code></strong> - Length in meter (<code>scalar</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Length in <code>fathoms</code> (<code>float</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>meter</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.utily-module.html#m2toise\" \n        class=\"link\">m2toise</a>, <a \n        href=\"https://WikiPedia.org/wiki/Fathom\" target=\"_top\">Fathom</a> \n        and <a href=\"https://WikiPedia.org/wiki/Klafter\" \n        target=\"_top\">Klafter</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"m2ft\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">m2ft</span>&nbsp;(<span class=\"sig-arg\">meter</span>,\n        <span class=\"sig-arg\">usurvey</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">pied</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">india</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">fuss</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert a length in meter to <i>International</i>, <i>US Survey</i>, \n  <i>French</i>, <i>Indian</i> or <i>German</i> feet (<code>ft</code>).</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>meter</code></strong> - Length in meter (<code>scalar</code>).</li>\n        <li><strong class=\"pname\"><code>usurvey</code></strong> - If <code>True</code>, convert to <i>US Survey</i> foot else ...</li>\n        <li><strong class=\"pname\"><code>pied</code></strong> - If <code>True</code>, convert to French <i>pied-du-Roi</i> else \n          ...</li>\n        <li><strong class=\"pname\"><code>india</code></strong> - If <code>True</code>, convert to <i>India foot</i> else ...</li>\n        <li><strong class=\"pname\"><code>fuss</code></strong> - If <code>True</code>, convert to German <i>Fuss</i>, otherwise to\n          <i>International</i> foot.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Length in <code>feet</code> (<code>float</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>meter</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"m2furlong\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">m2furlong</span>&nbsp;(<span class=\"sig-arg\">meter</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert a length in meter to furlongs.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>meter</code></strong> - Length in meter (<code>scalar</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Length in <code>furlongs</code> (<code>float</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>meter</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"m2ha\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">m2ha</span>&nbsp;(<span class=\"sig-arg\">meter2</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert an area in <i>square</i> meter to <i>hectares</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>meter2</code></strong> - Area in <code>square</code> meter (<code>scalar</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Area in hectares (<code>float</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>meter2</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"m2km\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">m2km</span>&nbsp;(<span class=\"sig-arg\">meter</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert a length in meter to kilo meter (<code>Km</code>).</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>meter</code></strong> - Length in meter (<code>scalar</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Length in <code>Km</code> (<code>float</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>meter</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"m2radians\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">m2radians</span>&nbsp;(<span class=\"sig-arg\">distance</span>,\n        <span class=\"sig-arg\">earth</span>=<span class=\"sig-default\">6371008.771415</span>,\n        <span class=\"sig-arg\">lat</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">**radius</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert a distance to an arc in radians along the equator or along a \n  parallel at (geodetic) latitude.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>distance</code></strong> - Distance (<code>meter</code>, same units as \n          <b><code>radius</code></b>).</li>\n        <li><strong class=\"pname\"><code>earth</code></strong> - Mean earth radius (<code>meter</code>) or an ellipsoid or datum \n          (<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a>, <a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a> \n          or <a href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>lat</code></strong> - Parallel latitude (<code>degrees90</code>, <code>str</code>).</li>\n        <li><strong class=\"pname\"><code>radius</code></strong> - For backward compatibility \n          <code><b>radius</b>=<b>earth</b></code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Angle (<code>radians</code>) or <code>0.0</code> for near-polar \n          <b><code>lat</code></b>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.RangeError-class.html\">RangeError</a></strong></code> - Latitude <b><code>lat</code></b> outside valid range, only if <a \n        href=\"pygeodesy.errors-module.html#rangerrors\" \n        class=\"link\">rangerrors</a> is <code>True</code>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>earth</code></b> or <b><code>radius</code></b>.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>distance</code></b>, <b><code>earth</code></b> or \n        <b><code>lat</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.utily-module.html#m2degrees\" \n        class=\"link\">m2degrees</a> and <a \n        href=\"pygeodesy.utily-module.html#radians2m\" \n        class=\"link\">radians2m</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"m2toise\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">m2toise</span>&nbsp;(<span class=\"sig-arg\">meter</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert a length in meter to French <a \n  href=\"https://WikiPedia.org/wiki/Toise\" target=\"_top\">toises</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>meter</code></strong> - Length in meter (<code>scalar</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Length in <code>toises</code> (<code>float</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>meter</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.utily-module.html#m2fathom\" \n        class=\"link\">m2fathom</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"m2yard\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">m2yard</span>&nbsp;(<span class=\"sig-arg\">meter</span>,\n        <span class=\"sig-arg\">imperial</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert a length in meter to <i>International</i> or <a \n  href=\"https://WikiPedia.org/wiki/Imperial_units\" target=\"_top\">Imperial \n  Standard</a> yards.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>meter</code></strong> - Length in meter (<code>scalar</code>).</li>\n        <li><strong class=\"pname\"><code>imperial</code></strong> - If <code>True</code>, convert to <i>Imperial Standard</i> yards.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Length in <code>yards</code> (<code>float</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>meter</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"machine\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">machine</span>()</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return standard <code>platform.machine</code>, but distinguishing \n  Intel <i>native</i> from Intel <i>emulation</i> on Apple Silicon (on \n  macOS only).</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd>Machine <code>'arm64'</code> for Apple Silicon <i>native</i>, \n          <code>'x86_64'</code> for Intel <i>native</i>, \n          <code>&quot;arm64_x86_64&quot;</code> for Intel <i>emulation</i>,\n          etc. (<code>str</code> with <code>comma</code>s replaced by \n          <code>underscore</code>s).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"map1\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">map1</span>&nbsp;(<span class=\"sig-arg\">fun1</span>,\n        <span class=\"sig-arg\">*xs</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Call a single-argument function to each <b><code>xs</code></b> and \n  return a <code>tuple</code> of results.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>fun1</code></strong> - 1-Arg function (<code>callable</code>).</li>\n        <li><strong class=\"pname\"><code>xs</code></strong> - Arguments (<code>any positional</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Function results (<code>tuple</code>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"map2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">map2</span>&nbsp;(<span class=\"sig-arg\">fun</span>,\n        <span class=\"sig-arg\">*xs</span>,\n        <span class=\"sig-arg\">**strict</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Like Python's <b><code>map</code></b> but returning a \n  <code>tuple</code> of results.</p>\n  <p>Unlike Python 2's built-in <code class=\"link\">map</code>, Python 3+ \n  <code class=\"link\">map</code> returns a <code class=\"link\">map</code> \n  object, an iterator-like object which generates the results only once.  \n  Converting the <code class=\"link\">map</code> object to a tuple maintains \n  the Python 2 behavior.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>fun</code></strong> - Function (<code>callable</code>).</li>\n        <li><strong class=\"pname\"><code>xs</code></strong> - Arguments (<code>all positional</code>).</li>\n        <li><strong class=\"pname\"><code>strict</code></strong> - See <a \n          href=\"https://docs.Python.org/3.14/library/functions.html#map\" \n          target=\"_top\">Python 3.14+ map</a> (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Function results (<code>tuple</code>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"meeus2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">meeus2</span>&nbsp;(<span class=\"sig-arg\">point1</span>,\n        <span class=\"sig-arg\">point2</span>,\n        <span class=\"sig-arg\">point3</span>,\n        <span class=\"sig-arg\">circum</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">useZ</span>=<span class=\"sig-default\">True</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the radius and <i>Meeus</i>' Type of the smallest circle \n  <i>through</i> or <i>containing</i> three (2- or 3-D) points.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>point1</code></strong> - First point (<code>Cartesian</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <code>Vector3Tuple</code>, \n          <code>Vector4Tuple</code> or <code>Vector2Tuple</code> if \n          <code><b>useZ</b>=False</code>).</li>\n        <li><strong class=\"pname\"><code>point2</code></strong> - Second point (<code>Cartesian</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <code>Vector3Tuple</code>, \n          <code>Vector4Tuple</code> or <code>Vector2Tuple</code> if \n          <code><b>useZ</b>=False</code>).</li>\n        <li><strong class=\"pname\"><code>point3</code></strong> - Third point (<code>Cartesian</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <code>Vector3Tuple</code>, \n          <code>Vector4Tuple</code> or <code>Vector2Tuple</code> if \n          <code><b>useZ</b>=False</code>).</li>\n        <li><strong class=\"pname\"><code>circum</code></strong> - If <code>True</code>, return the <code>circumradius</code> and \n          <code>circumcenter</code> always, overriding <i>Meeus</i>' Type \n          II case (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>useZ</code></strong> - If <code>True</code>, use the Z components, otherwise force \n          <code>z=INT0</code> (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><a href=\"pygeodesy.vector2d.Meeus2Tuple-class.html\" \n          class=\"link\">Meeus2Tuple</a><code>(radius, Type)</code>, with \n          <code>Type</code> the <code>circumcenter</code> iff \n          <code><b>circum</b>=True</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.IntersectionError-class.html\">IntersectionError</a></strong></code> - Near-coincident or -colinear points, iff \n        <code><b>circum</b>=True</code>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>point1</code></b>, <b><code>point2</code></b> or \n        <b><code>point3</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Functions <a href=\"pygeodesy.vector2d-module.html#circum3\" \n        class=\"link\">pygeodesy.circum3</a> and <a \n        href=\"pygeodesy.vector2d-module.html#circum4_\" \n        class=\"link\">pygeodesy.circum4_</a> and Meeus, J. <a \n        href=\"http://www.Agopax.IT/Libri_astronomia/pdf/Astronomical%20Algorithms.pdf\"\n        target=\"_top\"><i>Astronomical Algorithms</i></a>, 2nd Ed. 1998, \n        page 127ff, <a \n        href=\"https://MathWorld.Wolfram.com/Circumradius.html\" \n        target=\"_top\">circumradius</a> and <a \n        href=\"https://MathWorld.Wolfram.com/Circumcircle.html\" \n        target=\"_top\">circumcircle</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"modulename\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">modulename</span>&nbsp;(<span class=\"sig-arg\">clas</span>,\n        <span class=\"sig-arg\">prefixed</span>=<span class=\"sig-default\">None</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the class name optionally prefixed with the module name.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>clas</code></strong> - The class (any <code>class</code> or <code>str</code>).</li>\n        <li><strong class=\"pname\"><code>prefixed</code></strong> - Include the module name (<code>bool</code>), see function \n          <code>classnaming</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The <b><code>class</code></b>'s <code>[module.]class</code> name \n          (<code>str</code>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"n2e2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">n2e2</span>&nbsp;(<span class=\"sig-arg\">n</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return <code>e2</code>, the <i>1st eccentricity squared</i> for a \n  given <i>3rd flattening</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>n</code></strong> - The 3rd flattening (-1 &lt;= <code>scalar</code> &lt; 1).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The <i>signed</i>, (1st) eccentricity <i>squared</i> \n          (<code>float</code> or NINF), <i class=\"math\">4 * n / (1 + \n          n)**2</i>.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        The result is positive for <i>oblate</i>, negative for \n        <i>prolate</i> or <code>0</code> for <i>near-spherical</i> \n        ellipsoids.\n      </p>\n      <p><strong>See Also:</strong>\n        <a href=\"https://WikiPedia.org/wiki/Flattening\" \n        target=\"_top\">Flattening</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"n2f\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">n2f</span>&nbsp;(<span class=\"sig-arg\">n</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return <code>f</code>, the <i>flattening</i> for a given <i>3rd \n  flattening</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>n</code></strong> - The 3rd flattening (-1 &lt;= <code>scalar</code> &lt; 1).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The flattening (<code>scalar</code> or NINF), <i class=\"math\">2 *\n          n / (1 + n)</i>.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Ellipsoid.html\"\n        target=\"_top\">Eccentricity conversions</a> and <a \n        href=\"https://WikiPedia.org/wiki/Flattening\" \n        target=\"_top\">Flattening</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"n2f_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">n2f_</span>&nbsp;(<span class=\"sig-arg\">n</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return <code>f_</code>, the <i>inverse flattening</i> for a given \n  <i>3rd flattening</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>n</code></strong> - The 3rd flattening (-1 &lt;= <code>scalar</code> &lt; 1).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The inverse flattening (<code>scalar</code> or <code>0</code>), \n          <i class=\"math\">1 / f</i>.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"pygeodesy.ellipsoids-module.html#n2f\" class=\"link\">n2f</a>\n        and <a href=\"pygeodesy.ellipsoids-module.html#f2f_\" \n        class=\"link\">f2f_</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"n_xyz2latlon\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">n_xyz2latlon</span>&nbsp;(<span class=\"sig-arg\">x_xyz</span>,\n        <span class=\"sig-arg\">y</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">z</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert <code>n-vector</code> to (geodetic) lat- and longitude in \n  <code>degrees</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>x_xyz</code></strong> - X component (<code>scalar</code>) or (3-D) vector \n          (<code>Nvector</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <a \n          href=\"pygeodesy.namedTuples.Vector3Tuple-class.html\" \n          class=\"link\">Vector3Tuple</a> or <a \n          href=\"pygeodesy.namedTuples.Vector4Tuple-class.html\" \n          class=\"link\">Vector4Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>y</code></strong> - Y component of vector (<code>scalar</code>), required if \n          <code><b>x_xyz</b> is scalar</code> and same units as \n          <b><code>x_xyz</code></b>, ignored otherwise.</li>\n        <li><strong class=\"pname\"><code>z</code></strong> - Z component of vector (<code>scalar</code>), like \n          <b><code>y</code></b>.</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.namedTuples.LatLon2Tuple-class.html\" \n          class=\"link\">LatLon2Tuple</a><code>(lat, lon)</code>.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.nvectorBase-module.html#n_xyz2philam\" \n        class=\"link\">n_xyz2philam</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"n_xyz2philam\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">n_xyz2philam</span>&nbsp;(<span class=\"sig-arg\">x_xyz</span>,\n        <span class=\"sig-arg\">y</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">z</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert <code>n-vector</code> to (geodetic) lat- and longitude in \n  <code>radians</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>x_xyz</code></strong> - X component (<code>scalar</code>) or (3-D) vector \n          (<code>Nvector</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <a \n          href=\"pygeodesy.namedTuples.Vector3Tuple-class.html\" \n          class=\"link\">Vector3Tuple</a> or <a \n          href=\"pygeodesy.namedTuples.Vector4Tuple-class.html\" \n          class=\"link\">Vector4Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>y</code></strong> - Y component of vector (<code>scalar</code>), required if \n          <code><b>x_xyz</b> is scalar</code> and same units as \n          <b><code>x_xyz</code></b>, ignored otherwise.</li>\n        <li><strong class=\"pname\"><code>z</code></strong> - Z component of vector (<code>scalar</code>), like \n          <b><code>y</code></b>.</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.namedTuples.PhiLam2Tuple-class.html\" \n          class=\"link\">PhiLam2Tuple</a><code>(phi, lam)</code>.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.nvectorBase-module.html#n_xyz2latlon\" \n        class=\"link\">n_xyz2latlon</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"nameof\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">nameof</span>&nbsp;(<span class=\"sig-arg\">inst</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Get the name of an instance.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>inst</code></strong> - The object (any <code>type</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The instance' name (<code>str</code>) or \n          <code>&quot;&quot;</code>.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"nearestOn\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">nearestOn</span>&nbsp;(<span class=\"sig-arg\">point</span>,\n        <span class=\"sig-arg\">point1</span>,\n        <span class=\"sig-arg\">point2</span>,\n        <span class=\"sig-arg\">within</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">useZ</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">Vector</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**Vector_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Locate the point between two points closest to a reference (2- or \n  3-D).</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>point</code></strong> - Reference point (<code>Cartesian</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <code>Vector3Tuple</code> or \n          <code>Vector4Tuple</code>).</li>\n        <li><strong class=\"pname\"><code>point1</code></strong> - Start point (<code>Cartesian</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <code>Vector3Tuple</code> or \n          <code>Vector4Tuple</code>).</li>\n        <li><strong class=\"pname\"><code>point2</code></strong> - End point (<code>Cartesian</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <code>Vector3Tuple</code> or \n          <code>Vector4Tuple</code>).</li>\n        <li><strong class=\"pname\"><code>within</code></strong> - If <code>True</code>, return the closest point between both given\n          points, otherwise the closest point on the extended line through \n          both points (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>useZ</code></strong> - If <code>True</code>, use the Z components, otherwise force \n          <code>z=INT0</code> (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>Vector</code></strong> - Class to return closest point (<code>Cartesian</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a> or <code>Vector3Tuple</code>) or \n          <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>Vector_kwds</code></strong> - Optional, additional <b><code>Vector</code></b> keyword \n          arguments, ignored if <code><b>Vector</b> is None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Closest point, either <b><code>point1</code></b> or \n          <b><code>point2</code></b> or an instance of the \n          <b><code>point</code></b>'s (sub-)class or \n          <b><code>Vector</code></b> if not <code>None</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>point</code></b>, <b><code>point1</code></b> or \n        <b><code>point2</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a \n        href=\"https://MathWorld.Wolfram.com/Point-LineDistance3-Dimensional.html\"\n        target=\"_top\">3-D Point-Line Distance</a>, <code>Cartesian</code> \n        and <code>LatLon</code> methods <code>nearestOn</code>, method <a \n        href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html#nearestOn3\"\n        class=\"link\">sphericalTrigonometry.LatLon.nearestOn3</a> and \n        function <a \n        href=\"pygeodesy.sphericalTrigonometry-module.html#nearestOn3\" \n        class=\"link\">sphericalTrigonometry.nearestOn3</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"nearestOn3\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">nearestOn3</span>&nbsp;(<span class=\"sig-arg\">point</span>,\n        <span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">closed</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">**options</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use function <a \n  href=\"pygeodesy.points-module.html#nearestOn5\" \n  class=\"link\">pygeodesy.nearestOn5</a>.</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd>3-Tuple <code>(lat, lon, distance)</code></dd>\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"nearestOn4\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">nearestOn4</span>&nbsp;(<span class=\"sig-arg\">point</span>,\n        <span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">closed</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">**options</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use function <a \n  href=\"pygeodesy.points-module.html#nearestOn5\" \n  class=\"link\">pygeodesy.nearestOn5</a>.</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd>4-Tuple <code>(lat, lon, distance, angle)</code></dd>\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"nearestOn5\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">nearestOn5</span>&nbsp;(<span class=\"sig-arg\">point</span>,\n        <span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">closed</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">adjust</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">limit</span>=<span class=\"sig-default\">9</span>,\n        <span class=\"sig-arg\">**LatLon_and_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Locate the point on a path or polygon closest to a reference \n  point.</p>\n  <p>The closest point on each polygon edge is either the nearest of that \n  edge's end points or a point in between.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>point</code></strong> - The reference point (<code>LatLon</code>).</li>\n        <li><strong class=\"pname\"><code>points</code></strong> - The path or polygon points (<code>LatLon</code>[]).</li>\n        <li><strong class=\"pname\"><code>closed</code></strong> - Optionally, close the path or polygon (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll the \n          <b><code>points</code></b> (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>adjust</code></strong> - See function <a \n          href=\"pygeodesy.geohash-module.html#equirectangular4\" \n          class=\"link\">pygeodesy.equirectangular4</a> (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>limit</code></strong> - See function <a \n          href=\"pygeodesy.geohash-module.html#equirectangular4\" \n          class=\"link\">pygeodesy.equirectangular4</a> \n          (<code>degrees</code>), default <code>9 degrees</code> is about \n          <code>1,000 Kmeter</code> (for mean spherical earth radius <a \n          href=\"pygeodesy-module.html#R_KM\" class=\"link\">R_KM</a>).</li>\n        <li><strong class=\"pname\"><code>LatLon_and_kwds</code></strong> - Optional, <code><b>LatLon</b>=None</code> class to use for the \n          closest point and additional <a href=pygeodesy-LatLon-attributes-table.html><b><code>LatLon</code></b></a> keyword \n          arguments, ignored if <code><b>LatLon</b> is None</code> or not \n          given.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.namedTuples.NearestOn3Tuple-class.html\" \n          class=\"link\">NearestOn3Tuple</a><code>(closest, distance, \n          angle)</code> with the {closest} point \n          (<a href=pygeodesy-LatLon-attributes-table.html><b><code>LatLon</code></b></a>) or if <code><b>LatLon</b> is \n          None</code>, a NearestOn5Tuple<code>(lat, lon, distance, angle, \n          height)</code>. The <code>distance</code> is the <a \n          href=\"pygeodesy.formy-module.html#equirectangular\" \n          class=\"link\">pygeodesy.equirectangular</a> distance between the \n          <code>closest</code> and reference <b><code>point</code></b> in \n          <code>degrees</code>. The <code>angle</code> from the \n          <b><code>point</code></b> to the <code>closest</code> is in \n          compass <code>degrees</code>, like function <a \n          href=\"pygeodesy.formy-module.html#compassAngle\" \n          class=\"link\">pygeodesy.compassAngle</a>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.LimitError-class.html\">LimitError</a></strong></code> - Lat- and/or longitudinal delta exceeds the \n        <b><code>limit</code></b>, see function <a \n        href=\"pygeodesy.geohash-module.html#equirectangular4\" \n        class=\"link\">pygeodesy.equirectangular4</a>.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.PointsError-class.html\">PointsError</a></strong></code> - Insufficient number of <b><code>points</code></b></li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Some <b><code>points</code></b> are not <code>LatLon</code>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        Distances are <i>approximated</i> by function <a \n        href=\"pygeodesy.geohash-module.html#equirectangular4\" \n        class=\"link\">pygeodesy.equirectangular4</a>. For more accuracy use \n        one of the <code>LatLon.nearestOn6</code> methods.\n      </p>\n      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.utily-module.html#degrees2m\" \n        class=\"link\">pygeodesy.degrees2m</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"nearestOn6\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">nearestOn6</span>&nbsp;(<span class=\"sig-arg\">point</span>,\n        <span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">closed</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">useZ</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">**Vector_and_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Locate the point on a path or polygon closest to a reference \n  point.</p>\n  <p>The closest point on each polygon edge is either the nearest of that \n  edge's end points or a point in between.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>point</code></strong> - Reference point (<code>Cartesian</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <code>Vector3Tuple</code> or \n          <code>Vector4Tuple</code>).</li>\n        <li><strong class=\"pname\"><code>points</code></strong> - The path or polygon points (<code>Cartesian</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <code>Vector3Tuple</code> or \n          <code>Vector4Tuple</code>[]).</li>\n        <li><strong class=\"pname\"><code>closed</code></strong> - Optionally, close the path or polygon (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>useZ</code></strong> - If <code>True</code>, use the Z components, otherwise force \n          <code>z=INT0</code> (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>Vector_and_kwds</code></strong> - Optional class <code><b>Vector</b>=None</code> to return the \n          closest point and optionally, additional \n          <b><code>Vector</code></b> keyword arguments, otherwise \n          <b><code>point</code></b>'s (sub-)class.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.namedTuples.NearestOn6Tuple-class.html\" \n          class=\"link\">NearestOn6Tuple</a><code>(closest, distance, fi, j, \n          start, end)</code> with the <code>closest</code>, the \n          <code>start</code> and the <code>end</code> point each an \n          instance of the <b><code>Vector</code></b> keyword argument or if\n          {<b>Vector</b>=None} or not specified, an instance of the \n          reference <b><code>point</code></b>'s (sub-)class.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.PointsError-class.html\">PointsError</a></strong></code> - Insufficient number of <b><code>points</code></b></li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Non-cartesian <b><code>point</code></b> and \n        <b><code>points</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        Distances measured with method <a \n        href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#equirectangular\"\n        class=\"link\">Vector3d.equirectangular</a>.  For geodetic distances \n        use function <a href=\"pygeodesy.points-module.html#nearestOn5\" \n        class=\"link\">nearestOn5</a> or one of the \n        <code>LatLon.nearestOn6</code> methods.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"neg\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">neg</span>&nbsp;(<span class=\"sig-arg\">x</span>,\n        <span class=\"sig-arg\">neg0</span>=<span class=\"sig-default\">None</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Negate <code>x</code> and optionally, negate <code>0.0</code> and \n  <code>-0.0</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>neg0</code></strong> - Defines the return value for zero <code><b>x</b></code>: if \n          <code>None</code> return <code>0.0</code>, if <code>True</code> \n          return <code>NEG0 if <b>x</b>=0.0</code> and <code>0.0 if \n          <b>x</b>=NEG0</code> or if <code>False</code> return \n          <code><b>x</b></code> <i>as-is</i> (<code>bool</code> or \n          <code>None</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>-<b>x</b> if <b>x</b> else 0.0, NEG0 or <b>x</b></code>.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"neg_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">neg_</span>&nbsp;(<span class=\"sig-arg\">*xs</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Negate all <code>xs</code> with <a \n  href=\"pygeodesy.basics-module.html#neg\" class=\"link\">neg</a>.</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd>A <code>map(neg, <b>xs</b>)</code>.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"nonfiniterrors\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">nonfiniterrors</span>&nbsp;(<span class=\"sig-arg\">raiser</span>=<span class=\"sig-default\">None</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Throw <code>OverflowError</code> and <code>ValueError</code> \n  exceptions for or handle <i>non-finite</i> <code>float</code>s as \n  <code>inf</code>, <code>INF</code>, <code>NINF</code>, <code>nan</code> \n  and <code>NAN</code> in summations and multiplications.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>raiser</code></strong> - If <code>True</code>, throw exceptions, if <code>False</code> \n          handle <i>non-finites</i> or if <code>None</code> or omitted, \n          leave the setting unchanged.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Previous setting (<code>bool</code>).</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        <code>inf</code>, <code>INF</code> and <code>NINF</code> throw an \n        <code>OverflowError</code>, <code>nan</code> and <code>NAN</code> a\n        <code>ValueError</code>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"norm2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">norm2</span>&nbsp;(<span class=\"sig-arg\">x</span>,\n        <span class=\"sig-arg\">y</span>,\n        <span class=\"sig-arg\">*xy0</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Normalize a 2-dimensional vector.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>x</code></strong> - X component (<code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>y</code></strong> - Y component (<code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>xy0</code></strong> - Optional reference <code>(x0, y0)</code> (each \n          <code>scalar</code>, an <a href=\"pygeodesy.fsums.Fsum-class.html\"\n          class=\"link\">Fsum</a> or <a \n          href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>2-Tuple <code>(x, y)</code>, normalized.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>x</code></b> or <b><code>y</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"normDMS\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">normDMS</span>&nbsp;(<span class=\"sig-arg\">strDMS</span>,\n        <span class=\"sig-arg\">norm</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**s_D_M_S</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Normalize all degrees, minutes and seconds (DMS) <i>symbol</i> \n  suffixes in a string to the default symbols <a \n  href=\"pygeodesy.dms-module.html#S_DEG\" class=\"link\">S_DEG</a>, <a \n  href=\"pygeodesy.dms-module.html#S_MIN\" class=\"link\">S_MIN</a>, <a \n  href=\"pygeodesy.dms-module.html#S_SEC\" class=\"link\">S_SEC</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>strDMS</code></strong> - Original DMS string (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>norm</code></strong> - Optional replacement symbol (<code>str</code>) or \n          <code>None</code> for the default DMS symbol).  Use \n          <code><b>norm</b>=&quot;&quot;</code> to remove all DMS symbols.</li>\n        <li><strong class=\"pname\"><code>s_D_M_S</code></strong> - Optional, alternate DMS symbol suffixes \n          <code><b>s_D</b>=</code><a href=\"pygeodesy.dms-module.html#S_DEG\"\n          class=\"link\">S_DEG</a>, <code><b>s_M</b>=</code><a \n          href=\"pygeodesy.dms-module.html#S_MIN\" class=\"link\">S_MIN</a>, \n          <code><b>s_S</b>=</code><a href=\"pygeodesy.dms-module.html#S_SEC\"\n          class=\"link\">S_SEC</a> and <code><b>s_R</b>=</code><a \n          href=\"pygeodesy.dms-module.html#S_RAD\" class=\"link\">S_RAD</a> for\n          radians, each to be replaced by <b><code>norm</code></b>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Normalized DMS (<code>str</code>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"norm_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">norm_</span>&nbsp;(<span class=\"sig-arg\">*xs</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Normalize the components of an n-dimensional vector.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>xs</code></strong> - Components (each <code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>), all positional.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Yield each component, normalized.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid or insufficent <b><code>xs</code></b> or zero norm.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"normal\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">normal</span>&nbsp;(<span class=\"sig-arg\">lat</span>,\n        <span class=\"sig-arg\">lon</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Normalize a lat- <i>and</i> longitude pair in \n  <code>degrees</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat</code></strong> - Latitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lon</code></strong> - Longitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=&quot;normal&quot;</code> \n          (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><a href=\"pygeodesy.namedTuples.LatLon2Tuple-class.html\" \n          class=\"link\">LatLon2Tuple</a><code>(lat, lon)</code> with \n          <code>-90 &lt;= lat &lt;= 90</code> and <code>-180 &lt;= lon \n          &lt;= 180</code>.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Functions <a href=\"pygeodesy.formy-module.html#normal_\" \n        class=\"link\">normal_</a> and <a \n        href=\"pygeodesy.formy-module.html#isnormal\" \n        class=\"link\">isnormal</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"normal_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">normal_</span>&nbsp;(<span class=\"sig-arg\">phi</span>,\n        <span class=\"sig-arg\">lam</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Normalize a lat- <i>and</i> longitude pair in \n  <code>radians</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>phi</code></strong> - Latitude (<code>radians</code>).</li>\n        <li><strong class=\"pname\"><code>lam</code></strong> - Longitude (<code>radians</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=&quot;normal_&quot;</code> \n          (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><a href=\"pygeodesy.namedTuples.PhiLam2Tuple-class.html\" \n          class=\"link\">PhiLam2Tuple</a><code>(phi, lam)</code> with \n          <code>abs(phi) &lt;= PI/2</code> and <code>abs(lam) &lt;= \n          PI</code>.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Functions <a href=\"pygeodesy.formy-module.html#normal\" \n        class=\"link\">normal</a> and <a \n        href=\"pygeodesy.formy-module.html#isnormal_\" \n        class=\"link\">isnormal_</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"notImplemented\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">notImplemented</span>&nbsp;(<span class=\"sig-arg\">inst</span>,\n        <span class=\"sig-arg\">*args</span>,\n        <span class=\"sig-arg\">**kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Raise a <code>NotImplementedError</code> for a missing instance method\n  or property or for a missing caller feature.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>inst</code></strong> - Caller instance (<code>any</code>) or <code>None</code> for \n          function.</li>\n        <li><strong class=\"pname\"><code>args</code></strong> - Method or property positional arguments (any <code>type</code>s).</li>\n        <li><strong class=\"pname\"><code>kwds</code></strong> - Method or property keyword arguments (any <code>type</code>s), \n          except <code><b>callername</b>=NN</code>, \n          <code><b>underOK</b>=False</code> and <code><b>up</b>=2</code>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"notOverloaded\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">notOverloaded</span>&nbsp;(<span class=\"sig-arg\">inst</span>,\n        <span class=\"sig-arg\">*args</span>,\n        <span class=\"sig-arg\">**kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Raise an <code>AssertionError</code> for a method or property not \n  overloaded.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>inst</code></strong> - Instance (<code>any</code>).</li>\n        <li><strong class=\"pname\"><code>args</code></strong> - Method or property positional arguments (any <code>type</code>s).</li>\n        <li><strong class=\"pname\"><code>kwds</code></strong> - Method or property keyword arguments (any <code>type</code>s), \n          except <code><b>callername</b>=NN</code>, \n          <code><b>underOK</b>=False</code> and <code><b>up</b>=2</code>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"opposing\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">opposing</span>&nbsp;(<span class=\"sig-arg\">bearing1</span>,\n        <span class=\"sig-arg\">bearing2</span>,\n        <span class=\"sig-arg\">margin</span>=<span class=\"sig-default\">90.0</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compare the direction of two bearings given in \n  <code>degrees</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>bearing1</code></strong> - First bearing (compass <code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>bearing2</code></strong> - Second bearing (compass <code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>margin</code></strong> - Optional, interior angle bracket (<code>degrees</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>True</code> if both bearings point in opposite, \n          <code>False</code> if in similar or <code>None</code> if in \n          <i>perpendicular</i> directions.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.formy-module.html#opposing_\" \n        class=\"link\">opposing_</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"opposing_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">opposing_</span>&nbsp;(<span class=\"sig-arg\">radians1</span>,\n        <span class=\"sig-arg\">radians2</span>,\n        <span class=\"sig-arg\">margin</span>=<span class=\"sig-default\">1.5707963267948966</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compare the direction of two bearings given in \n  <code>radians</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>radians1</code></strong> - First bearing (<code>radians</code>).</li>\n        <li><strong class=\"pname\"><code>radians2</code></strong> - Second bearing (<code>radians</code>).</li>\n        <li><strong class=\"pname\"><code>margin</code></strong> - Optional, interior angle bracket (<code>radians</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>True</code> if both bearings point in opposite, \n          <code>False</code> if in similar or <code>None</code> if in \n          perpendicular directions.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.formy-module.html#opposing\" \n        class=\"link\">opposing</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"pairs\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">pairs</span>&nbsp;(<span class=\"sig-arg\">items</span>,\n        <span class=\"sig-arg\">prec</span>=<span class=\"sig-default\">6</span>,\n        <span class=\"sig-arg\">fmt</span>=<span class=\"sig-default\">'F'</span>,\n        <span class=\"sig-arg\">ints</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">sep</span>=<span class=\"sig-default\">'='</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert items to <i>name=value</i> strings, with <code>float</code>s \n  handled like <a href=\"pygeodesy.streprs-module.html#fstr\" \n  class=\"link\">fstr</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>items</code></strong> - Name-value pairs (<code>dict</code> or 2-{tuple}s of any \n          <code>type</code>s).</li>\n        <li><strong class=\"pname\"><code>prec</code></strong> - The <code>float</code> precision, number of decimal digits \n          (0..9). Trailing zero decimals are stripped if \n          <b><code>prec</code></b> is positive, but kept for negative \n          <b><code>prec</code></b> values.</li>\n        <li><strong class=\"pname\"><code>fmt</code></strong> - Optional <code>float</code> format (<code>letter</code>).</li>\n        <li><strong class=\"pname\"><code>ints</code></strong> - Optionally, remove the decimal dot for <code>int</code> values \n          (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>sep</code></strong> - Separator joining <i>names</i> and <i>values</i> \n          (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <code>tuple(<b>sep</b>.join(t) for t in <b>items</b>))</code> \n          of <code>str</code>s.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"parse3d\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">parse3d</span>&nbsp;(<span class=\"sig-arg\">str3d</span>,\n        <span class=\"sig-arg\">sep</span>=<span class=\"sig-default\">','</span>,\n        <span class=\"sig-arg\">Vector</span>=<span class=\"sig-default\">&lt;class 'pygeodesy.vector3d.Vector3d'&gt;</span>,\n        <span class=\"sig-arg\">**Vector_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Parse an <code>&quot;x, y, z&quot;</code> string.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>str3d</code></strong> - X, y and z values (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>sep</code></strong> - Optional separator (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>Vector</code></strong> - Optional class (<a href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>).</li>\n        <li><strong class=\"pname\"><code>Vector_kwds</code></strong> - Optional <b><code>Vector</code></b> keyword arguments, ignored if\n          <code><b>Vector</b> is None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <b><code>Vector</code></b> instance or if <code><b>Vector</b> \n          is None</code>, a named <a \n          href=\"pygeodesy.namedTuples.Vector3Tuple-class.html\" \n          class=\"link\">Vector3Tuple</a><code>(x, y, z)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.VectorError-class.html\">VectorError</a></strong></code> - Invalid <b><code>str3d</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"parse3llh\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">parse3llh</span>&nbsp;(<span class=\"sig-arg\">strllh</span>,\n        <span class=\"sig-arg\">height</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">sep</span>=<span class=\"sig-default\">','</span>,\n        <span class=\"sig-arg\">clipLat</span>=<span class=\"sig-default\">90</span>,\n        <span class=\"sig-arg\">clipLon</span>=<span class=\"sig-default\">180</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">**s_D_M_S</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Parse a string <code>&quot;lat, lon [, h]&quot;</code> representing \n  lat-, longitude in <code>degrees</code> and optional height in \n  <code>meter</code>.</p>\n  <p>The lat- and longitude value must be separated by a separator \n  character.  If height is present it must follow, separated by another \n  separator.</p>\n  <p>The lat- and longitude values may be swapped, provided at least one \n  ends with the proper compass point.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>strllh</code></strong> - Latitude, longitude[, height] (<code>str</code>, ...).</li>\n        <li><strong class=\"pname\"><a href=pygeodesy.heights-module.html><code>height</code></a></strong> - Optional, default height (<code>meter</code>) or \n          <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>sep</code></strong> - Optional separator between <code>&quot;lat lon [h] \n          suffix&quot;</code> (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>clipLat</code></strong> - Limit latitude to range <code>-/+<b>clipLat</b></code> \n          (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>clipLon</code></strong> - Limit longitude to range <code>-/+<b>clipLon</b></code> \n          (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> the lat- and \n          longitude, overriding <b><code>clipLat</code></b> and \n          <b><code>clipLon</code></b> (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>s_D_M_S</code></strong> - Optional, alternate DMS symbol suffixes for degrees \n          <code><b>s_D</b>=</code><a href=\"pygeodesy.dms-module.html#S_DEG\"\n          class=\"link\">S_DEG</a>, minutes <code><b>s_M</b>=</code><a \n          href=\"pygeodesy.dms-module.html#S_MIN\" class=\"link\">S_MIN</a> and\n          seconds <code><b>s_S</b>=</code><a \n          href=\"pygeodesy.dms-module.html#S_SEC\" class=\"link\">S_SEC</a>, \n          see function <a href=\"pygeodesy.dms-module.html#toDMS\" \n          class=\"link\">pygeodesy.toDMS</a>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.namedTuples.LatLon3Tuple-class.html\" \n          class=\"link\">LatLon3Tuple</a><code>(lat, lon, height)</code> in \n          <code>degrees</code>, <code>degrees</code> and \n          <code>float</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.RangeError-class.html\">RangeError</a></strong></code> - Lat- or longitude value of <b><code>strllh</code></b> outside the \n        valid <code>-/+<b>clipLat</b></code> or \n        <code>-/+<b>clipLon</b></code> range and <a \n        href=\"pygeodesy.errors-module.html#rangerrors\" \n        class=\"link\">rangerrors</a> is <code>True</code>.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>strllh</code></b> or <b><a href=pygeodesy.heights-module.html><code>height</code></a></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        See the <b>Notes</b> at function <a \n        href=\"pygeodesy.dms-module.html#parseDMS\" \n        class=\"link\">parseDMS</a>.\n      </p>\n      <p><strong>See Also:</strong>\n        Functions <a href=\"pygeodesy.dms-module.html#parseDDDMMSS\" \n        class=\"link\">pygeodesy.parseDDDMMSS</a>, <a \n        href=\"pygeodesy.dms-module.html#parseDMS\" \n        class=\"link\">pygeodesy.parseDMS</a>, <a \n        href=\"pygeodesy.dms-module.html#parseDMS2\" \n        class=\"link\">pygeodesy.parseDMS2</a> and <a \n        href=\"pygeodesy.dms-module.html#toDMS\" \n        class=\"link\">pygeodesy.toDMS</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"parseDDDMMSS\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">parseDDDMMSS</span>&nbsp;(<span class=\"sig-arg\">strDDDMMSS</span>,\n        <span class=\"sig-arg\">suffix</span>=<span class=\"sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">NSEW</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"sig-arg\">sep</span>=<span class=\"sig-default\">''</span>,\n        <span class=\"sig-arg\">clip</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">sexagecimal</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Parse a lat- or longitude represention forms as [D]DDMMSS in \n  degrees.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>strDDDMMSS</code></strong> - Degrees in any of several forms (<code>str</code>) and types \n          (<code>float</code>, <code>int</code>, other).</li>\n        <li><strong class=\"pname\"><code>suffix</code></strong> - Optional compass points (<code>str</code>), valid in \n          <b><code>strDDDMMSS</code></b>.</li>\n        <li><strong class=\"pname\"><code>sep</code></strong> - Optional separator between &quot;[D]DD&quot;, &quot;MM&quot;, \n          &quot;SS&quot;, <b><code>suffix</code></b> (<a \n          href=\"pygeodesy.dms-module.html#S_SEP\" class=\"link\">S_SEP</a>) in\n          <b><code>strDDDMMSS</code></b>.</li>\n        <li><strong class=\"pname\"><code>clip</code></strong> - Optionally, limit value to range <code>-/+<b>clip</b></code> \n          (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>sexagecimal</code></strong> - If <code>True</code>, convert <code>&quot;D.MMSS&quot;</code> or \n          <code>float(D.MMSS)</code> to <code>base-60</code> &quot;MM&quot;\n          and &quot;SS&quot; digits.  See <code>form</code>s <a \n          href=\"pygeodesy.dms-module.html#F_D60\" class=\"link\">F_D60</a>, <a\n          href=\"pygeodesy.dms-module.html#F_D60_\" class=\"link\">F_D60_</a> \n          and <a href=\"pygeodesy.dms-module.html#F_D60__\" \n          class=\"link\">F_D60__</a>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Degrees (<code>float</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.ParseError-class.html\">ParseError</a></strong></code> - Invalid <b><code>strDDDMMSS</code></b> or <b><code>clip</code></b> \n        or the form of <b><code>strDDDMMSS</code></b> is incompatible with \n        or invalid for the given <b><code>suffix</code></b> compass \n        point(s).</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.RangeError-class.html\">RangeError</a></strong></code> - Value of <b><code>strDDDMMSS</code></b> outside the valid \n        <code>-/+<b>clip</b></code> range and <a \n        href=\"pygeodesy.errors-module.html#rangerrors\" \n        class=\"link\">rangerrors</a> is <code>True</code>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <strong>Notes:</strong>\n      <ul class=\"nomargin-top\">\n        <li>\n        Type <code>str</code> values &quot;[D]DD&quot;, \n        &quot;[D]DDMM&quot;, &quot;[D]DDMMSS&quot; and \n        &quot;[D]DD.MMSS&quot; for <b><code>strDDDMMSS</code></b> are \n        parsed properly only if <i>either</i> unsigned and suffixed with a \n        valid, compatible, <code>cardinal</code> <a \n        href=\"pygeodesy.dms-module.html#compassPoint\" \n        class=\"link\">compassPoint</a> <i>or</i> signed <i>or</i> unsigned, \n        unsuffixed and with keyword argument \n        <b><code>suffix</code>=&quot;NS&quot;</b>, \n        <b><code>suffix</code>=&quot;EW&quot;</b> or a compatible <a \n        href=\"pygeodesy.dms-module.html#compassPoint\" \n        class=\"link\">compassPoint</a>.\n        </li>\n        <li>\n        Unlike function <a href=\"pygeodesy.dms-module.html#parseDMS\" \n        class=\"link\">parseDMS</a>, type <code>float</code>, \n        <code>int</code> and other non-<code>str</code> \n        <b><code>strDDDMMSS</code></b> values are interpreted as \n        <code>form</code> [D]DDMMSS or [D]DD.MMSS.  For example, \n        <code>int(1230)</code> is returned as 12.5 and <i>not 1230.0</i> \n        degrees.  However, <code>int(345)</code> is considered \n        <code>form</code> &quot;DDD&quot; 345 <i>and not &quot;DDMM&quot; \n        0345</i>, unless <b><code>suffix</code></b> specifies the compass \n        point.  Also, <code>float(15.0523)</code> is returned as 15.0523 \n        decimal degrees and <i>not 15&#176;5&#8242;23&#8243; sexagecimal</i>.  To consider \n        the latter, use <code>float(15.0523)</code> or \n        <code>&quot;15.0523&quot;</code> and specify the keyword argument \n        <code><b>sexagecimal</b>=True</code>.\n        </li>\n      </ul>\n      <p><strong>See Also:</strong>\n        Functions <a href=\"pygeodesy.dms-module.html#parseDMS\" \n        class=\"link\">pygeodesy.parseDMS</a>, <a \n        href=\"pygeodesy.dms-module.html#parseDMS2\" \n        class=\"link\">pygeodesy.parseDMS2</a> and <a \n        href=\"pygeodesy.dms-module.html#parse3llh\" \n        class=\"link\">pygeodesy.parse3llh</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"parseDMS\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">parseDMS</span>&nbsp;(<span class=\"sig-arg\">strDMS</span>,\n        <span class=\"sig-arg\">suffix</span>=<span class=\"sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">NSEW</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"sig-arg\">sep</span>=<span class=\"sig-default\">''</span>,\n        <span class=\"sig-arg\">clip</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">**s_D_M_S</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Parse a lat- or longitude representation in <code>degrees</code>.</p>\n  <p>This is very flexible on formats, allowing signed decimal degrees, \n  degrees and minutes or degrees minutes and seconds optionally suffixed by\n  a cardinal compass point.</p>\n  <p>A variety of symbols, separators and suffixes are accepted, for \n  example &quot;3&#176;37&#8242;09&#8243;W&quot;.  Minutes and seconds may be omitted.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>strDMS</code></strong> - Degrees in any of several forms (<code>str</code>) and types \n          (<code>float</code>, <code>int</code>, other).</li>\n        <li><strong class=\"pname\"><code>suffix</code></strong> - Optional, valid compass points (<code>str</code>, \n          <code>tuple</code>).</li>\n        <li><strong class=\"pname\"><code>sep</code></strong> - Optional separator between <code>deg&#176;</code>, <code>min&#8242;</code>, \n          <code>sec&#8243;</code>, <b><code>suffix</code></b> (<code>''</code>).</li>\n        <li><strong class=\"pname\"><code>clip</code></strong> - Optionally, limit value to range <code>-/+<b>clip</b></code> \n          (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>s_D_M_S</code></strong> - Optional, alternate DMS symbol suffixes for degrees \n          <code><b>s_D</b>=</code><a href=\"pygeodesy.dms-module.html#S_DEG\"\n          class=\"link\">S_DEG</a>, minutes <code><b>s_M</b>=</code><a \n          href=\"pygeodesy.dms-module.html#S_MIN\" class=\"link\">S_MIN</a> and\n          seconds <code><b>s_S</b>=</code><a \n          href=\"pygeodesy.dms-module.html#S_SEC\" class=\"link\">S_SEC</a>, \n          see function <a href=\"pygeodesy.dms-module.html#toDMS\" \n          class=\"link\">pygeodesy.toDMS</a>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Degrees (<code>float</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.ParseError-class.html\">ParseError</a></strong></code> - Invalid <b><code>strDMS</code></b> or <b><code>clip</code></b>.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.RangeError-class.html\">RangeError</a></strong></code> - Value of <b><code>strDMS</code></b> outside the valid \n        <code>-/+<b>clip</b></code> range and <a \n        href=\"pygeodesy.errors-module.html#rangerrors\" \n        class=\"link\">rangerrors</a> is <code>True</code>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        Unlike function <a href=\"pygeodesy.dms-module.html#parseDDDMMSS\" \n        class=\"link\">parseDDDMMSS</a>, type <code>float</code>, \n        <code>int</code> and other non-<code>str</code> \n        <b><code>strDMS</code></b> values are considered decimal (and not \n        sexagecimal) degrees. For example, <code>int(1230)</code> is \n        returned as 1230.0 <i>and not as 12.5</i> degrees and \n        <code>float(345)</code> as 345.0 <i>and not as 3.75</i> degrees!\n      </p>\n      <p><strong>See Also:</strong>\n        Functions <a href=\"pygeodesy.dms-module.html#parseDDDMMSS\" \n        class=\"link\">pygeodesy.parseDDDMMSS</a>, <a \n        href=\"pygeodesy.dms-module.html#parseDMS2\" \n        class=\"link\">pygeodesy.parseDMS2</a>, <a \n        href=\"pygeodesy.dms-module.html#parse3llh\" \n        class=\"link\">pygeodesy.parse3llh</a> and <a \n        href=\"pygeodesy.dms-module.html#toDMS\" \n        class=\"link\">pygeodesy.toDMS</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"parseDMS2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">parseDMS2</span>&nbsp;(<span class=\"sig-arg\">strLat</span>,\n        <span class=\"sig-arg\">strLon</span>,\n        <span class=\"sig-arg\">sep</span>=<span class=\"sig-default\">''</span>,\n        <span class=\"sig-arg\">clipLat</span>=<span class=\"sig-default\">90</span>,\n        <span class=\"sig-arg\">clipLon</span>=<span class=\"sig-default\">180</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">**s_D_M_S</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Parse a lat- and a longitude representions <code>&quot;lat, \n  lon&quot;</code> in <code>degrees</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>strLat</code></strong> - Latitude in any of several forms (<code>str</code> or \n          <code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>strLon</code></strong> - Longitude in any of several forms (<code>str</code> or \n          <code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>sep</code></strong> - Optional separator between deg&#176;, min&#8242;, sec&#8243;, suffix \n          (<code>''</code>).</li>\n        <li><strong class=\"pname\"><code>clipLat</code></strong> - Limit latitude to range <code>-/+<b>clipLat</b></code> \n          (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>clipLon</code></strong> - Limit longitude to range <code>-/+<b>clipLon</b></code> \n          (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> the lat- and \n          longitude, overriding <b><code>clipLat</code></b> and \n          <b><code>clipLon</code></b> (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>s_D_M_S</code></strong> - Optional, alternate DMS symbol suffixes for degrees \n          <code><b>s_D</b>=</code><a href=\"pygeodesy.dms-module.html#S_DEG\"\n          class=\"link\">S_DEG</a>, minutes <code><b>s_M</b>=</code><a \n          href=\"pygeodesy.dms-module.html#S_MIN\" class=\"link\">S_MIN</a> and\n          seconds <code><b>s_S</b>=</code><a \n          href=\"pygeodesy.dms-module.html#S_SEC\" class=\"link\">S_SEC</a>, \n          see function <a href=\"pygeodesy.dms-module.html#toDMS\" \n          class=\"link\">pygeodesy.toDMS</a>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.namedTuples.LatLon2Tuple-class.html\" \n          class=\"link\">LatLon2Tuple</a><code>(lat, lon)</code> in \n          <code>degrees</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.ParseError-class.html\">ParseError</a></strong></code> - Invalid <b><code>strLat</code></b> or <b><code>strLon</code></b>.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.RangeError-class.html\">RangeError</a></strong></code> - Value of <b><code>strLat</code></b> or <b><code>strLon</code></b> \n        outside the valid <code>-/+<b>clipLat</b></code> or \n        <code>-/+<b>clipLon</b></code> range and <a \n        href=\"pygeodesy.errors-module.html#rangerrors\" \n        class=\"link\">rangerrors</a> is <code>True</code>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        See the <b>Notes</b> at function <a \n        href=\"pygeodesy.dms-module.html#parseDMS\" \n        class=\"link\">parseDMS</a>.\n      </p>\n      <p><strong>See Also:</strong>\n        Functions <a href=\"pygeodesy.dms-module.html#parseDDDMMSS\" \n        class=\"link\">pygeodesy.parseDDDMMSS</a>, <a \n        href=\"pygeodesy.dms-module.html#parseDMS\" \n        class=\"link\">pygeodesy.parseDMS</a>, <a \n        href=\"pygeodesy.dms-module.html#parse3llh\" \n        class=\"link\">pygeodesy.parse3llh</a> and <a \n        href=\"pygeodesy.dms-module.html#toDMS\" \n        class=\"link\">pygeodesy.toDMS</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"parseETM5\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">parseETM5</span>&nbsp;(<span class=\"sig-arg\">strUTM</span>,\n        <span class=\"sig-arg\">datum</span>=<span class=\"sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"sig-arg\">Etm</span>=<span class=\"sig-default\">&lt;class 'pygeodesy.etm.Etm'&gt;</span>,\n        <span class=\"sig-arg\">falsed</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Parse a string representing a UTM coordinate, consisting of \n  <code>&quot;zone[band] hemisphere easting northing&quot;</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>strUTM</code></strong> - A UTM coordinate (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>datum</code></strong> - Optional datum to use (<a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>, \n          <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a> or <a \n          href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>Etm</code></strong> - Optional class to return the UTM coordinate (<a \n          href=\"pygeodesy.etm.Etm-class.html\" class=\"link\">Etm</a>) or \n          <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>falsed</code></strong> - Both easting and northing are <code>falsed</code> \n          (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <b><code>Etm</code></b> <code><b>name</b>=NN</code> \n          (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The UTM coordinate (<b><code>Etm</code></b>) or if \n          <code><b>Etm</b> is None</code>, a <a \n          href=\"pygeodesy.namedTuples.UtmUps5Tuple-class.html\" \n          class=\"link\">UtmUps5Tuple</a><code>(zone, hemipole, easting, \n          northing, band)</code> with <code>hemipole</code> is the \n          hemisphere <code>'N'|'S'</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.etm.ETMError-class.html\">ETMError</a></strong></code> - Invalid <b><code>strUTM</code></b>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid or near-spherical <b><code>datum</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"parseMGRS\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">parseMGRS</span>&nbsp;(<span class=\"sig-arg\">strMGRS</span>,\n        <span class=\"sig-arg\">datum</span>=<span class=\"sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"sig-arg\">Mgrs</span>=<span class=\"sig-default\">&lt;class 'pygeodesy.mgrs.Mgrs'&gt;</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Parse a string representing a MGRS grid reference, consisting of \n  <code>&quot;[zone]Band, EN, easting, northing&quot;</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>strMGRS</code></strong> - MGRS grid reference (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>datum</code></strong> - Optional datum to use (<a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>).</li>\n        <li><strong class=\"pname\"><code>Mgrs</code></strong> - Optional class to return the MGRS grid reference (<a \n          href=\"pygeodesy.mgrs.Mgrs-class.html\" class=\"link\">Mgrs</a>) or \n          <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <b><code>Mgrs</code></b> <code><b>name</b>=NN</code> \n          (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The MGRS grid reference as <b><code>Mgrs</code></b> or if \n          <code><b>Mgrs</b> is None</code> as an <a \n          href=\"pygeodesy.mgrs.Mgrs4Tuple-class.html\" \n          class=\"link\">Mgrs4Tuple</a><code>(zone, EN, easting, \n          northing)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.MGRSError-class.html\">MGRSError</a></strong></code> - Invalid <b><code>strMGRS</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"parseOSGR\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">parseOSGR</span>&nbsp;(<span class=\"sig-arg\">strOSGR</span>,\n        <span class=\"sig-arg\">Osgr</span>=<span class=\"sig-default\">&lt;class 'pygeodesy.osgr.Osgr'&gt;</span>,\n        <span class=\"sig-arg\">**name_Osgr_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Parse a string representing an OS Grid Reference, consisting of \n  <code>&quot;[GD] easting northing&quot;</code>.</p>\n  <p>Accepts standard OS Grid References like &quot;SU 387 148&quot;, with \n  or without whitespace separators, from 2- up to 22-digit references, or \n  all-numeric, comma-separated references in meters, for example \n  &quot;438700,114800&quot;.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>strOSGR</code></strong> - An OSGR coordinate (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>Osgr</code></strong> - Optional class to return the OSGR coordinate (<a \n          href=\"pygeodesy.osgr.Osgr-class.html\" class=\"link\">Osgr</a>) or \n          <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>name_Osgr_kwds</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>) and \n          optionally, additional <b><code>Osgr</code></b> keyword \n          arguments, ignored if <code><b>Osgr</b> is None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>An (<b><code>Osgr</code></b>) instance or if <code><b>Osgr</b> is\n          None</code>, an <a \n          href=\"pygeodesy.namedTuples.EasNor2Tuple-class.html\" \n          class=\"link\">EasNor2Tuple</a><code>(easting, northing)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.osgr.OSGRError-class.html\">OSGRError</a></strong></code> - Invalid <b><code>strOSGR</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"parseRad\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">parseRad</span>&nbsp;(<span class=\"sig-arg\">strRad</span>,\n        <span class=\"sig-arg\">suffix</span>=<span class=\"sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">NSEW</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"sig-arg\">clip</span>=<span class=\"sig-default\">0</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Parse a string representing angle in <code>radians</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>strRad</code></strong> - Degrees in any of several forms (<code>str</code> or \n          <code>radians</code>).</li>\n        <li><strong class=\"pname\"><code>suffix</code></strong> - Optional, valid compass points (<code>str</code>, \n          <code>tuple</code>).</li>\n        <li><strong class=\"pname\"><code>clip</code></strong> - Optionally, limit value to range <code>-/+<b>clip</b></code> \n          (<code>radians</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Radians (<code>float</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.ParseError-class.html\">ParseError</a></strong></code> - Invalid <b><code>strRad</code></b> or <b><code>clip</code></b>.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.RangeError-class.html\">RangeError</a></strong></code> - Value of <b><code>strRad</code></b> outside the valid \n        <code>-/+<b>clip</b></code> range and <a \n        href=\"pygeodesy.errors-module.html#rangerrors\" \n        class=\"link\">rangerrors</a> is <code>True</code>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"parseUPS5\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">parseUPS5</span>&nbsp;(<span class=\"sig-arg\">strUPS</span>,\n        <span class=\"sig-arg\">datum</span>=<span class=\"sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"sig-arg\">Ups</span>=<span class=\"sig-default\">&lt;class 'pygeodesy.ups.Ups'&gt;</span>,\n        <span class=\"sig-arg\">falsed</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Parse a string representing a UPS coordinate, consisting of \n  <code>&quot;[zone][band] pole easting northing&quot;</code> where \n  <b><code>zone</code></b> is pseudo zone \n  <code>&quot;00&quot;|&quot;0&quot;|&quot;&quot;</code> and \n  <code>band</code> is <code>'A'|'B'|'Y'|'Z'|''</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>strUPS</code></strong> - A UPS coordinate (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>datum</code></strong> - Optional datum to use (<a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>).</li>\n        <li><strong class=\"pname\"><code>Ups</code></strong> - Optional class to return the UPS coordinate (<a \n          href=\"pygeodesy.ups.Ups-class.html\" class=\"link\">Ups</a>) or \n          <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>falsed</code></strong> - If <code>True</code>, both <b><code>easting</code></b> and \n          <b><code>northing</code></b> are falsed (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <b><code>Ups</code></b> <code><b>name</b>=NN</code> \n          (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The UPS coordinate (<b><code>Ups</code></b>) or if \n          <code><b>Ups</b> is None</code>, a <a \n          href=\"pygeodesy.namedTuples.UtmUps5Tuple-class.html\" \n          class=\"link\">UtmUps5Tuple</a><code>(zone, hemipole, easting, \n          northing, band)</code>. The <code>hemipole</code> is the \n          <code>'N'|'S'</code> pole, the UPS projection top/center.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.ups.UPSError-class.html\">UPSError</a></strong></code> - Invalid <b><code>strUPS</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"parseUTM\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">parseUTM</span>&nbsp;(<span class=\"sig-arg\">strUTM</span>,\n        <span class=\"sig-arg\">datum</span>=<span class=\"sig-default\">_UTM</span>,\n        <span class=\"sig-arg\">Utm</span>=<span class=\"sig-default\">_UTM</span>,\n        <span class=\"sig-arg\">name</span>=<span class=\"sig-default\">''</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use function <a href=\"pygeodesy.utm-module.html#parseUTM5\"\n  class=\"link\">parseUTM5</a>.</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd>The UTM coordinate (<b><a href=\"pygeodesy.utm.Utm-class.html\" \n          class=\"link\">Utm</a></b>) or 4-tuple <code>(zone, hemisphere, \n          easting, northing)</code> if <code><b>Utm</b> is None</code>.</dd>\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"parseUTM5\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">parseUTM5</span>&nbsp;(<span class=\"sig-arg\">strUTM</span>,\n        <span class=\"sig-arg\">datum</span>=<span class=\"sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"sig-arg\">Utm</span>=<span class=\"sig-default\">&lt;class 'pygeodesy.utm.Utm'&gt;</span>,\n        <span class=\"sig-arg\">falsed</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Parse a string representing a UTM coordinate, consisting of \n  <code>&quot;zone[band] hemisphere easting northing&quot;</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>strUTM</code></strong> - A UTM coordinate (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>datum</code></strong> - Optional datum to use (<a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>, \n          <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a> or <a \n          href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>Utm</code></strong> - Optional class to return the UTM coordinate (<a \n          href=\"pygeodesy.utm.Utm-class.html\" class=\"link\">Utm</a>) or \n          <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>falsed</code></strong> - Use <code><b>falsed</b>=False</code> if both easting and northing\n          are <i>not falsed</i> (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The UTM coordinate (<b><code>Utm</code></b>) or if \n          <code><b>Utm</b> is None</code>, a <a \n          href=\"pygeodesy.namedTuples.UtmUps5Tuple-class.html\" \n          class=\"link\">UtmUps5Tuple</a><code>(zone, hemipole, easting, \n          northing, band)</code>. The <code>hemipole</code> is the \n          <code>'N'|'S'</code> hemisphere.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.utm.UTMError-class.html\">UTMError</a></strong></code> - Invalid <b><code>strUTM</code></b>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>datum</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"parseUTMUPS5\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">parseUTMUPS5</span>&nbsp;(<span class=\"sig-arg\">strUTMUPS</span>,\n        <span class=\"sig-arg\">datum</span>=<span class=\"sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"sig-arg\">Utm</span>=<span class=\"sig-default\">&lt;class 'pygeodesy.utm.Utm'&gt;</span>,\n        <span class=\"sig-arg\">Ups</span>=<span class=\"sig-default\">&lt;class 'pygeodesy.ups.Ups'&gt;</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Parse a string representing a UTM or UPS coordinate, consisting of \n  <code>&quot;zone[band] hemisphere/pole easting northing&quot;</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>strUTMUPS</code></strong> - A UTM or UPS coordinate (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>datum</code></strong> - Optional datum to use (<a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>).</li>\n        <li><strong class=\"pname\"><code>Utm</code></strong> - Optional class to return the UTM coordinate (<a \n          href=\"pygeodesy.utm.Utm-class.html\" class=\"link\">Utm</a>) or \n          <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>Ups</code></strong> - Optional class to return the UPS coordinate (<a \n          href=\"pygeodesy.ups.Ups-class.html\" class=\"link\">Ups</a>) or \n          <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <b><code>Utm</code></b> or <b><code>Ups</code></b> \n          <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The UTM or UPS instance (<b><code>Utm</code></b> or \n          <b><code>Ups</code></b>) or a <a \n          href=\"pygeodesy.namedTuples.UtmUps5Tuple-class.html\" \n          class=\"link\">UtmUps5Tuple</a><code>(zone, hemipole, easting, \n          northing, band)</code> if <b><code>Utm</code></b> respectively \n          <b><code>Ups</code></b> or both are <code>None</code>. The \n          <code>hemipole</code> is <code>'N'|'S'</code>, the UTM hemisphere\n          or UPS pole, the UPS projection top/center.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.utmups.UTMUPSError-class.html\">UTMUPSError</a></strong></code> - Invalid <b><code>strUTMUPS</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Functions <a href=\"pygeodesy.utm-module.html#parseUTM5\" \n        class=\"link\">pygeodesy.parseUTM5</a> and <a \n        href=\"pygeodesy.ups-module.html#parseUPS5\" \n        class=\"link\">pygeodesy.parseUPS5</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"parseWM\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">parseWM</span>&nbsp;(<span class=\"sig-arg\">strWM</span>,\n        <span class=\"sig-arg\">radius</span>=<span class=\"sig-default\">6378137.0</span>,\n        <span class=\"sig-arg\">Wm</span>=<span class=\"sig-default\">&lt;class 'pygeodesy.webmercator.Wm'&gt;</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Parse a string <code>&quot;e n [r]&quot;</code> representing a WM \n  coordinate, consisting of easting, northing and an optional radius.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>strWM</code></strong> - A WM coordinate (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>radius</code></strong> - Optional earth radius (<code>meter</code>), needed in case \n          <b><code>strWM</code></b> doesn't include <code>r</code>.</li>\n        <li><strong class=\"pname\"><code>Wm</code></strong> - Optional class to return the WM coordinate (<a \n          href=\"pygeodesy.webmercator.Wm-class.html\" class=\"link\">Wm</a>) \n          or <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The WM coordinate (<b><code>Wm</code></b>) or if <code><b>Wm</b> \n          is None</code>, an <a \n          href=\"pygeodesy.webmercator.EasNorRadius3Tuple-class.html\" \n          class=\"link\">EasNorRadius3Tuple</a><code>(easting, northing, \n          radius)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.webmercator.WebMercatorError-class.html\">WebMercatorError</a></strong></code> - Invalid <b><code>strWM</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"perimeterOf\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">perimeterOf</span>&nbsp;(<span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">closed</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">adjust</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">radius</span>=<span class=\"sig-default\">6371008.771415</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">True</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p><i>Approximate</i> the perimeter of a path, polygon. or composite.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>points</code></strong> - The path or polygon points or clips (<code>LatLon</code>[], <a \n          href=\"pygeodesy.booleans.BooleanFHP-class.html\" \n          class=\"link\">BooleanFHP</a> or <a \n          href=\"pygeodesy.booleans.BooleanGH-class.html\" \n          class=\"link\">BooleanGH</a>).</li>\n        <li><strong class=\"pname\"><code>closed</code></strong> - Optionally, close the path or polygon (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>adjust</code></strong> - Adjust the wrapped, unrolled longitudinal delta by the cosine of \n          the mean latitude (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>radius</code></strong> - Mean earth radius (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll the \n          <b><code>points</code></b> (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Approximate perimeter (<code>meter</code>, same units as \n          <b><code>radius</code></b>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.PointsError-class.html\">PointsError</a></strong></code> - Insufficient number of <b><code>points</code></b></li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Some <b><code>points</code></b> are not <code>LatLon</code>.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>radius</code></b> or \n        <code><b>closed</b>=False</code> with <code><b>points</b></code> a \n        composite.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        This perimeter is based on the <a \n        href=\"pygeodesy.geohash-module.html#equirectangular4\" \n        class=\"link\">pygeodesy.equirectangular4</a> distance approximation \n        and is ill-suited for regions exceeding several hundred Km or Miles\n        or with near-polar latitudes.\n      </p>\n      <p><strong>See Also:</strong>\n        Functions <a \n        href=\"pygeodesy.sphericalTrigonometry-module.html#perimeterOf\" \n        class=\"link\">sphericalTrigonometry.perimeterOf</a> and <a \n        href=\"pygeodesy.ellipsoidalKarney-module.html#perimeterOf\" \n        class=\"link\">ellipsoidalKarney.perimeterOf</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"perimeterof\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">perimeterof</span>&nbsp;(<span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">closed</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">adjust</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">radius</span>=<span class=\"sig-default\">6371008.771415</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">True</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use function <a \n  href=\"pygeodesy.points-module.html#perimeterOf\" \n  class=\"link\">pygeodesy.perimeterOf</a>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"philam2n_xyz\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">philam2n_xyz</span>&nbsp;(<span class=\"sig-arg\">phi_ll</span>,\n        <span class=\"sig-arg\">lam</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert lat-, longitude to <code>n-vector</code> (<i>normal</i> to the\n  earth's surface) X, Y and Z components.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>phi_ll</code></strong> - Latitude (<code>radians</code>) or a <code>LatLon</code> instance\n          with <code>phi</code>, <code>lam</code> or <code>philam</code> \n          attributes.</li>\n        <li><strong class=\"pname\"><code>lam</code></strong> - Longitude (<code>radians</code>), required if <code><b>phi_ll</b>\n          is radians</code>, ignored otherwise.</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional name (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.namedTuples.Vector3Tuple-class.html\" \n          class=\"link\">Vector3Tuple</a><code>(x, y, z)</code>.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.latlonBase-module.html#latlon2n_xyz\" \n        class=\"link\">latlon2n_xyz</a>.\n      </p>\n      <p><strong>Note:</strong>\n        These are <code>n-vector</code> x, y and z components, <i>NOT \n        geocentric</i> x, y and z (ECEF) coordinates!\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"pierlot\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">pierlot</span>&nbsp;(<span class=\"sig-arg\">point1</span>,\n        <span class=\"sig-arg\">point2</span>,\n        <span class=\"sig-arg\">point3</span>,\n        <span class=\"sig-arg\">alpha12</span>,\n        <span class=\"sig-arg\">alpha23</span>,\n        <span class=\"sig-arg\">useZ</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">eps</span>=<span class=\"sig-default\">2.220446049250313e-16</span>,\n        <span class=\"sig-arg\">**Clas_and_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>3-Point resection using <a \n  href=\"http://www.Telecom.ULg.ac.BE/publi/publications/pierlot/Pierlot2014ANewThree\"\n  target=\"_top\">Pierlot</a>'s method <code>ToTal</code> with \n  <i>approximate</i> limits for the (pseudo-)singularities.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>point1</code></strong> - First point (<code>Cartesian</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <code>Vector3Tuple</code>, \n          <code>Vector4Tuple</code> or <code>Vector2Tuple</code> if \n          <code><b>useZ</b>=False</code>).</li>\n        <li><strong class=\"pname\"><code>point2</code></strong> - Second point (<code>Cartesian</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <code>Vector3Tuple</code>, \n          <code>Vector4Tuple</code> or <code>Vector2Tuple</code> if \n          <code><b>useZ</b>=False</code>).</li>\n        <li><strong class=\"pname\"><code>point3</code></strong> - Third point (<code>Cartesian</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <code>Vector3Tuple</code>, \n          <code>Vector4Tuple</code> or <code>Vector2Tuple</code> if \n          <code><b>useZ</b>=False</code>).</li>\n        <li><strong class=\"pname\"><code>alpha12</code></strong> - Angle subtended from <b><code>point1</code></b> to \n          <b><code>point2</code></b> or <b><code>alpha2 - alpha1</code></b>\n          (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>alpha23</code></strong> - Angle subtended from <b><code>point2</code></b> to \n          <b><code>point3</code></b> or <b><code>alpha3 - \n          alpha2</code></b>(<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>useZ</code></strong> - If <code>True</code>, interpolate the survey point's Z component,\n          otherwise use <code>z=INT0</code> (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>eps</code></strong> - Tolerance for <code>cot</code>angent (pseudo-)singularities \n          (<code>float</code>).</li>\n        <li><strong class=\"pname\"><code>Clas_and_kwds</code></strong> - Optional class <code><b>Clas</b>=<b>point1</b>.classof</code> to \n          return the survey point with optionally other \n          <b><code>Clas</code></b> keyword arguments to instantiate the \n          survey point.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The survey (or robot) point, an instance of \n          <b><code>Clas</code></b> or <b><code>point1</code></b>'s \n          (sub-)class.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.resections.ResectionError-class.html\">ResectionError</a></strong></code> - Near-coincident, -colinear or -concyclic points or invalid \n        <b><code>alpha12</code></b> or <b><code>alpha23</code></b> or \n        non-positive <b><code>eps</code></b>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>point1</code></b>, <b><code>point2</code></b> or \n        <b><code>point3</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        Typically, <b><code>point1</code></b>, <b><code>point2</code></b> \n        and <b><code>point3</code></b> are ordered by angle, modulo 360, \n        counter-clockwise.\n      </p>\n      <p><strong>See Also:</strong>\n        <i>Pierlot</i>'s C function <a \n        href=\"http://www.Telecom.ULg.ac.BE/triangulation/doc/total_8c_source.html\"\n        target=\"_top\">triangulationPierlot</a>, <a \n        href=\"https://ORBi.ULiege.BE/bitstream/2268/157469/1/Pierlot2014ANewThree.pdf\"\n        target=\"_top\">V. Pierlot, M. Van Droogenbroeck, &quot;A New Three \n        Object Triangulation Algorithm for Mobile Robot \n        Positioning&quot;</a>, <a \n        href=\"http://www.Telecom.ULg.ac.BE/triangulation\" \n        target=\"_top\">Vincent Pierlot, Marc Van Droogenbroeck, &quot;18 \n        Triangulation Algorithms for 2D Positioning (also known as the \n        Resection Problem)&quot;</a> and functions <a \n        href=\"pygeodesy.resections-module.html#pierlotx\" \n        class=\"link\">pierlotx</a>, <a \n        href=\"pygeodesy.resections-module.html#cassini\" \n        class=\"link\">cassini</a>, <a \n        href=\"pygeodesy.resections-module.html#collins5\" \n        class=\"link\">collins5</a> and <a \n        href=\"pygeodesy.resections-module.html#tienstra7\" \n        class=\"link\">tienstra7</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"pierlotx\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">pierlotx</span>&nbsp;(<span class=\"sig-arg\">point1</span>,\n        <span class=\"sig-arg\">point2</span>,\n        <span class=\"sig-arg\">point3</span>,\n        <span class=\"sig-arg\">alpha1</span>,\n        <span class=\"sig-arg\">alpha2</span>,\n        <span class=\"sig-arg\">alpha3</span>,\n        <span class=\"sig-arg\">useZ</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">**Clas_and_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>3-Point resection using <a \n  href=\"http://www.Telecom.ULg.ac.BE/publi/publications/pierlot/Pierlot2014ANewThree\"\n  target=\"_top\">Pierlot</a>'s method <code>ToTal</code> with <i>exact</i> \n  limits for the (pseudo-)singularities.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>point1</code></strong> - First point (<code>Cartesian</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <code>Vector3Tuple</code>, \n          <code>Vector4Tuple</code> or <code>Vector2Tuple</code> if \n          <code><b>useZ</b>=False</code>).</li>\n        <li><strong class=\"pname\"><code>point2</code></strong> - Second point (<code>Cartesian</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <code>Vector3Tuple</code>, \n          <code>Vector4Tuple</code> or <code>Vector2Tuple</code> if \n          <code><b>useZ</b>=False</code>).</li>\n        <li><strong class=\"pname\"><code>point3</code></strong> - Third point (<code>Cartesian</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <code>Vector3Tuple</code>, \n          <code>Vector4Tuple</code> or <code>Vector2Tuple</code> if \n          <code><b>useZ</b>=False</code>).</li>\n        <li><strong class=\"pname\"><code>alpha1</code></strong> - Angle at <b><code>point1</code></b> (<code>degrees</code>, \n          counter-clockwise).</li>\n        <li><strong class=\"pname\"><code>alpha2</code></strong> - Angle at <b><code>point2</code></b> (<code>degrees</code>, \n          counter-clockwise).</li>\n        <li><strong class=\"pname\"><code>alpha3</code></strong> - Angle at <b><code>point3</code></b> (<code>degrees</code>, \n          counter-clockwise).</li>\n        <li><strong class=\"pname\"><code>useZ</code></strong> - If <code>True</code>, interpolate the survey point's Z component,\n          otherwise use <code>z=INT0</code> (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>Clas_and_kwds</code></strong> - Optional class <code><b>Clas</b>=<b>point1</b>.classof</code> to \n          return the survey point with optionally other \n          <b><code>Clas</code></b> keyword arguments to instantiate the \n          survey point.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The survey (or robot) point, an instance of \n          <b><code>Clas</code></b> or <b><code>point1</code></b>'s \n          (sub-)class.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.resections.ResectionError-class.html\">ResectionError</a></strong></code> - Near-coincident, -colinear or -concyclic points or invalid \n        <b><code>alpha1</code></b>, <b><code>alpha2</code></b> or \n        <b><code>alpha3</code></b>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>point1</code></b>, <b><code>point2</code></b> or \n        <b><code>point3</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <i>Pierlot</i>'s C function <a \n        href=\"http://www.Telecom.ULg.ac.BE/triangulation/doc/total_8c_source.html\"\n        target=\"_top\">triangulationPierlot2</a> and function <a \n        href=\"pygeodesy.resections-module.html#pierlot\" \n        class=\"link\">pierlot</a>, <a \n        href=\"pygeodesy.resections-module.html#cassini\" \n        class=\"link\">cassini</a>, <a \n        href=\"pygeodesy.resections-module.html#collins5\" \n        class=\"link\">collins5</a> and <a \n        href=\"pygeodesy.resections-module.html#tienstra7\" \n        class=\"link\">tienstra7</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"points2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">points2</span>&nbsp;(<span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">closed</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">base</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">Error</span>=<span class=\"sig-default\">&lt;class 'pygeodesy.errors.PointsError'&gt;</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Check a path or polygon represented by points.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>points</code></strong> - The path or polygon points (<code>LatLon</code>[])</li>\n        <li><strong class=\"pname\"><code>closed</code></strong> - Optionally, consider the polygon closed, ignoring any duplicate \n          or closing final <b><code>points</code></b> (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>base</code></strong> - Optionally, check all <b><code>points</code></b> against this \n          base class, if <code>None</code> don't check.</li>\n        <li><strong class=\"pname\"><code>Error</code></strong> - Exception to raise (<code>ValueError</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.namedTuples.Points2Tuple-class.html\" \n          class=\"link\">Points2Tuple</a><code>(number, points)</code> with \n          the number of points and the points <code>list</code> or \n          <code>tuple</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.PointsError-class.html\">PointsError</a></strong></code> - Insufficient number of <b><code>points</code></b>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Some <b><code>points</code></b> are not <b><code>base</code></b> \n        compatible or composite <b><code>points</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"polar2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">polar2</span>&nbsp;(<span class=\"sig-arg\">x</span>,\n        <span class=\"sig-arg\">y</span>,\n        <span class=\"sig-arg\">*xy0</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return 2-tuple <code>(length, angle)</code> with <code>angle</code> in\n  radians <i class=\"math\">[0..+PI2)</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>x</code></strong> - X (<code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>y</code></strong> - Y (<code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>xy0</code></strong> - Optional reference <code>(x0, y0)</code> (each \n          <code>scalar</code>, an <a href=\"pygeodesy.fsums.Fsum-class.html\"\n          class=\"link\">Fsum</a> or <a \n          href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>).</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        Use <code>polar(<b>y</b>, <b>x</b>, *<b>yx0</b>)</code> to get the \n        angle as <code>bearing</code> from North.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"polar2d\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">polar2d</span>&nbsp;(<span class=\"sig-arg\">x</span>,\n        <span class=\"sig-arg\">y</span>,\n        <span class=\"sig-arg\">*xy0</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return 2-tuple <code>(length, angle)</code> with <code>angle</code> in\n  degrees <i class=\"math\">[0..+360)</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>x</code></strong> - X (<code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>y</code></strong> - Y (<code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>xy0</code></strong> - Optional reference <code>(x0, y0)</code> (each \n          <code>scalar</code>, an <a href=\"pygeodesy.fsums.Fsum-class.html\"\n          class=\"link\">Fsum</a> or <a \n          href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>).</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        Use <code>polar2d(<b>y</b>, <b>x</b>, *<b>yx0</b>)</code> to get \n        the angle as <code>bearing</code> from North.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"polygon\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">polygon</span>&nbsp;(<span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">closed</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">base</span>=<span class=\"sig-default\">None</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use function <a href=\"pygeodesy.iters-module.html#points2\"\n  class=\"link\">pygeodesy.points2</a>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"precision\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">precision</span>&nbsp;(<span class=\"sig-arg\">res</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Determine the <a href=\"pygeodesy.wgrs.Georef-class.html\" \n  class=\"link\">Georef</a> precision to meet a required (geographic) \n  resolution.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>res</code></strong> - The required resolution (<code>degrees</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The <a href=\"pygeodesy.wgrs.Georef-class.html\" \n          class=\"link\">Georef</a> precision (<code>int</code> 0..11).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>res</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.wgrs-module.html#encode\" \n        class=\"link\">wgrs.encode</a> for more <code>precision</code> \n        details.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"print_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">print_</span>&nbsp;(<span class=\"sig-arg\">*args</span>,\n        <span class=\"sig-arg\">**nl_nt_prec_prefix__end_file_flush_sep__kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Python 3+ <code>print</code>-like formatting and printing.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>args</code></strong> - Values to be converted to <code>str</code> and joined by \n          <b><code>sep</code></b>, all positional.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.internals-module.html#printf\" \n        class=\"link\">printf</a> for further details.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"printf\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">printf</span>&nbsp;(<span class=\"sig-arg\">fmt</span>,\n        <span class=\"sig-arg\">*args</span>,\n        <span class=\"sig-arg\">**nl_nt_prec_prefix__end_file_flush_sep__kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p><code>Printf-style</code> and Python 3+ <code>print</code>-like \n  formatting and printing.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>fmt</code></strong> - <a \n          href=\"https://Docs.Python.org/3/library/stdtypes.html#printf-style-string-formatting\"\n          target=\"_top\">Printf-style</a> format specification \n          (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>args</code></strong> - Arguments to be formatted (any <code>type</code>, all \n          positional).</li>\n        <li><strong class=\"pname\"><code>nl_nt_prec_prefix__end_file_flush_sep__kwds</code></strong> - Optional keyword arguments <code><b>nl</b>=0</code> for the \n          number of leading blank lines (<code>int</code>), \n          <code><b>nt</b>=0</code> the number of trailing blank lines \n          (<code>int</code>), <code><b>prefix</b>=NN</code> to be inserted \n          before the formatted text (<code>str</code>) and Python 3+ \n          <code>print</code> keyword arguments <code><b>end</b></code>, \n          <code><b>sep</b></code>, <code><b>file</b></code> and \n          <code><b>flush</b></code>. Any remaining <code><b>kwds</b></code>\n          are <code>printf-style</code> name-value pairs to be formatted, \n          <i>iff no <b><code>args</code></b> are present</i> using \n          <code><b>prec</b>=6</code> for the number of decimal digits \n          (<code>int</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Number of bytes written.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"property_doc_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">property_doc_</span>&nbsp;(<span class=\"sig-arg\">doc</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Decorator for a standard <code>property</code> with basic \n  documentation.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>doc</code></strong> - The property documentation (<code>str</code>).</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Example:</strong>\n        <p>&gt;&gt;&gt;class Clas(object): &gt;&gt;&gt; &gt;&gt;&gt;     \n        @property_doc_(&quot;documentation text.&quot;) &gt;&gt;&gt;     \n        def name(self): &gt;&gt;&gt;         ... &gt;&gt;&gt; &gt;&gt;&gt;\n        @name.setter &gt;&gt;&gt;     def name(self, value): &gt;&gt;&gt;\n        ...</p>\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"quadOf\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">quadOf</span>&nbsp;(<span class=\"sig-arg\">latS</span>,\n        <span class=\"sig-arg\">lonW</span>,\n        <span class=\"sig-arg\">latN</span>,\n        <span class=\"sig-arg\">lonE</span>,\n        <span class=\"sig-arg\">closed</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">LatLon</span>=<span class=\"sig-default\">&lt;class 'pygeodesy.points.LatLon_'&gt;</span>,\n        <span class=\"sig-arg\">**LatLon_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Generate a quadrilateral path or polygon from two points.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>latS</code></strong> - Souther-nmost latitude (<code>degrees90</code>).</li>\n        <li><strong class=\"pname\"><code>lonW</code></strong> - Western-most longitude (<code>degrees180</code>).</li>\n        <li><strong class=\"pname\"><code>latN</code></strong> - Norther-nmost latitude (<code>degrees90</code>).</li>\n        <li><strong class=\"pname\"><code>lonE</code></strong> - Eastern-most longitude (<code>degrees180</code>).</li>\n        <li><strong class=\"pname\"><code>closed</code></strong> - Optionally, close the path (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>LatLon</code></strong> - Class to use (<a href=\"pygeodesy.points.LatLon_-class.html\" \n          class=\"link\">LatLon_</a>).</li>\n        <li><strong class=\"pname\"><code>LatLon_kwds</code></strong> - Optional, additional <a href=pygeodesy-LatLon-attributes-table.html><b><code>LatLon</code></b></a> keyword \n          arguments.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Return a tuple of 4 or 5 <a href=pygeodesy-LatLon-attributes-table.html><b><code>LatLon</code></b></a> instances \n          outlining the quadrilateral.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.points-module.html#boundsOf\" \n        class=\"link\">boundsOf</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"radians2m\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">radians2m</span>&nbsp;(<span class=\"sig-arg\">rad</span>,\n        <span class=\"sig-arg\">earth</span>=<span class=\"sig-default\">6371008.771415</span>,\n        <span class=\"sig-arg\">lat</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">**radius</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert an arc in radians to a distance along the equator or along a \n  parallel at (geodetic) latitude.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>rad</code></strong> - The (longitudinal) angle (<code>radians</code> or \n          <code>str</code>).</li>\n        <li><strong class=\"pname\"><code>earth</code></strong> - Mean earth radius (<code>meter</code>) or an ellipsoid or datum \n          (<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a>, <a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a> \n          or <a href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>lat</code></strong> - Parallel latitude (<code>degrees90</code>, <code>str</code>).</li>\n        <li><strong class=\"pname\"><code>radius</code></strong> - For backward compatibility \n          <code><b>radius</b>=<b>earth</b></code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Distance (<code>meter</code>, same units as \n          <b><code>earth</code></b> or polar and equatorial radii) or \n          <code>0.0</code> for near-polar <b><code>lat</code></b>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.RangeError-class.html\">RangeError</a></strong></code> - Latitude <b><code>lat</code></b> outside valid range, only if <a \n        href=\"pygeodesy.errors-module.html#rangerrors\" \n        class=\"link\">rangerrors</a> is <code>True</code>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>earth</code></b> or <b><code>radius</code></b>.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>rad</code></b>, <b><code>earth</code></b> or \n        <b><code>lat</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.utily-module.html#degrees2m\" \n        class=\"link\">degrees2m</a> and <a \n        href=\"pygeodesy.utily-module.html#m2radians\" \n        class=\"link\">m2radians</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"radiansPI\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">radiansPI</span>&nbsp;(<span class=\"sig-arg\">deg</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert and wrap degrees to radians <i \n  class=\"math\">[-PI..+PI]</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>deg</code></strong> - Angle (<code>degrees</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Radians, wrapped (<code>radiansPI</code>)</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"radiansPI2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">radiansPI2</span>&nbsp;(<span class=\"sig-arg\">deg</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert and wrap degrees to radians <i class=\"math\">[0..+2PI)</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>deg</code></strong> - Angle (<code>degrees</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Radians, wrapped (<code>radiansPI2</code>)</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"radiansPI_2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">radiansPI_2</span>&nbsp;(<span class=\"sig-arg\">deg</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert and wrap degrees to radians <i \n  class=\"math\">[-3PI/2..+PI/2]</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>deg</code></strong> - Angle (<code>degrees</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Radians, wrapped (<code>radiansPI_2</code>)</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"radical2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">radical2</span>&nbsp;(<span class=\"sig-arg\">distance</span>,\n        <span class=\"sig-arg\">radius1</span>,\n        <span class=\"sig-arg\">radius2</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the <i>radical ratio</i> and <i>radical line</i> of two <a \n  href=\"https://MathWorld.Wolfram.com/Circle-CircleIntersection.html\" \n  target=\"_top\">intersecting circles</a>.</p>\n  <p>The <i>radical line</i> is perpendicular to the axis thru the centers \n  of the circles at <code>(0, 0)</code> and <code>(<b>distance</b>, \n  0)</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>distance</code></strong> - Distance between the circle centers (<code>scalar</code>).</li>\n        <li><strong class=\"pname\"><code>radius1</code></strong> - Radius of the first circle (<code>scalar</code>).</li>\n        <li><strong class=\"pname\"><code>radius2</code></strong> - Radius of the second circle (<code>scalar</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.formy.Radical2Tuple-class.html\" \n          class=\"link\">Radical2Tuple</a><code>(ratio, xline)</code> where \n          <code>0.0 &lt;= ratio &lt;= 1.0</code> and <code>xline</code> is \n          along the <b><code>distance</code></b>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.IntersectionError-class.html\">IntersectionError</a></strong></code> - The <b><code>distance</code></b> exceeds the sum of \n        <b><code>radius1</code></b> and <b><code>radius2</code></b>.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.UnitError-class.html\">UnitError</a></strong></code> - Invalid <b><code>distance</code></b>, <b><code>radius1</code></b> \n        or <b><code>radius2</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"radii11\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">radii11</span>&nbsp;(<span class=\"sig-arg\">point1</span>,\n        <span class=\"sig-arg\">point2</span>,\n        <span class=\"sig-arg\">point3</span>,\n        <span class=\"sig-arg\">useZ</span>=<span class=\"sig-default\">True</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the radii of the <code>In-</code>, <i>Soddy</i> and \n  <code>Tangent</code> circles of a (2- or 3-D) triangle.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>point1</code></strong> - First point (<code>Cartesian</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <code>Vector3Tuple</code>, \n          <code>Vector4Tuple</code> or <code>Vector2Tuple</code> if \n          <code><b>useZ</b>=False</code>).</li>\n        <li><strong class=\"pname\"><code>point2</code></strong> - Second point (<code>Cartesian</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <code>Vector3Tuple</code>, \n          <code>Vector4Tuple</code> or <code>Vector2Tuple</code> if \n          <code><b>useZ</b>=False</code>).</li>\n        <li><strong class=\"pname\"><code>point3</code></strong> - Third point (<code>Cartesian</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <code>Vector3Tuple</code>, \n          <code>Vector4Tuple</code> or <code>Vector2Tuple</code> if \n          <code><b>useZ</b>=False</code>).</li>\n        <li><strong class=\"pname\"><code>useZ</code></strong> - If <code>True</code>, use the Z components, otherwise force \n          <code>z=INT0</code> (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><a href=\"pygeodesy.vector2d.Radii11Tuple-class.html\" \n          class=\"link\">Radii11Tuple</a><code>(rA, rB, rC, cR, rIn, riS, \n          roS, a, b, c, s)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.TriangleError-class.html\">TriangleError</a></strong></code> - Near-coincident or -colinear points.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>point1</code></b>, <b><code>point2</code></b> or \n        <b><code>point3</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"https://MathWorld.Wolfram.com/Circumradius.html\" \n        target=\"_top\">Circumradius</a>, <a \n        href=\"https://MathWorld.Wolfram.com/Incircle.html\" \n        target=\"_top\">Incircle</a>, <a \n        href=\"https://MathWorld.Wolfram.com/SoddyCircles.html\" \n        target=\"_top\">Soddy Circles</a> and <a \n        href=\"https://MathWorld.Wolfram.com/TangentCircles.html\" \n        target=\"_top\">Tangent Circles</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"randomrangenerator\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">randomrangenerator</span>&nbsp;(<span class=\"sig-arg\">seed</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return a <code>seed</code>ed random range function generator.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>seed</code></strong> - Initial, internal Random state (<code>hashable</code> or \n          <code>None</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A function to generate random ranges.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        Random with <code><b>seed</b> is None</code> seeds from the current\n        time or from a platform-specific randomness source, if available.\n      </p>\n      <p><strong>Example:</strong>\n        <pre class=\"py-doctest\">\n<span class=\"py-prompt\">&gt;&gt;&gt; </span>rrange = randomrangenerator(<span class=\"py-string\">'R'</span>)\n<span class=\"py-prompt\">&gt;&gt;&gt; </span><span class=\"py-keyword\">for</span> r <span class=\"py-keyword\">in</span> rrange(n):\n<span class=\"py-prompt\">&gt;&gt;&gt; </span>   ...  <span class=\"py-comment\"># r is random in 0..n-1</span></pre>\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"rangerrors\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">rangerrors</span>&nbsp;(<span class=\"sig-arg\">raiser</span>=<span class=\"sig-default\">None</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Get/set the throwing of <a \n  href=\"pygeodesy.errors.RangeError-class.html\" \n  class=\"link\">RangeError</a>s.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>raiser</code></strong> - Use <code>True</code> to raise or <code>False</code> to ignore <a\n          href=\"pygeodesy.errors.RangeError-class.html\" \n          class=\"link\">RangeError</a> exceptions or <code>None</code> to \n          leave the setting unchanged.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Previous setting (<code>bool</code>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"reprs\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">reprs</span>&nbsp;(<span class=\"sig-arg\">objs</span>,\n        <span class=\"sig-arg\">prec</span>=<span class=\"sig-default\">6</span>,\n        <span class=\"sig-arg\">fmt</span>=<span class=\"sig-default\">'F'</span>,\n        <span class=\"sig-arg\">ints</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert objects to <code>repr</code> strings, with <code>float</code>s\n  handled like <a href=\"pygeodesy.streprs-module.html#fstr\" \n  class=\"link\">fstr</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>objs</code></strong> - List, sequence, tuple, etc. (any <code>type</code>s).</li>\n        <li><strong class=\"pname\"><code>prec</code></strong> - The <code>float</code> precision, number of decimal digits \n          (0..9). Trailing zero decimals are stripped if \n          <b><code>prec</code></b> is positive, but kept for negative \n          <b><code>prec</code></b> values.</li>\n        <li><strong class=\"pname\"><code>fmt</code></strong> - Optional <code>float</code> format (<code>letter</code>).</li>\n        <li><strong class=\"pname\"><code>ints</code></strong> - Optionally, remove the decimal dot for <code>int</code> values \n          (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <code>tuple(map(fstr|repr, objs))</code> of <code>str</code>s.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"rtp2xyz\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">rtp2xyz</span>&nbsp;(<span class=\"sig-arg\">r_rtp</span>,\n        <span class=\"sig-arg\">theta</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">phi</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">**name_Cartesian_and_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert <i>spherical, polar</i> <code>(r, theta, phi)</code> to \n  cartesian <code>(x, y, z)</code> coordinates.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>theta</code></strong> - Inclination <b><code>theta</code></b> (<code>degrees</code> with \n          respect to the positive z-axis), required if \n          <code><b>r_rtp</b></code> is <code>scalar</code>, ignored \n          otherwise.</li>\n        <li><strong class=\"pname\"><code>phi</code></strong> - Azimuthal angle <b><code>phi</code></b> (<code>degrees</code>), \n          like <b><code>theta</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.cartesianBase-module.html#rtp2xyz_\" \n        class=\"link\">rtp2xyz_</a> for further details.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"rtp2xyz_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">rtp2xyz_</span>&nbsp;(<span class=\"sig-arg\">r_rtp</span>,\n        <span class=\"sig-arg\">theta</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">phi</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">**name_Cartesian_and_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert <i>spherical, polar</i> <code>(r, theta, phi)</code> to \n  cartesian <code>(x, y, z)</code> coordinates.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>r_rtp</code></strong> - Radial distance (<code>scalar</code>, conventially \n          <code>meter</code>) or a previous <a \n          href=\"pygeodesy.cartesianBase.RadiusThetaPhi3Tuple-class.html\" \n          class=\"link\">RadiusThetaPhi3Tuple</a> instance.</li>\n        <li><strong class=\"pname\"><code>theta</code></strong> - Inclination <b><code>theta</code></b> (<code>radians</code> with \n          respect to the positive z-axis), required if \n          <code><b>r_rtp</b></code> is <code>scalar</code>, ignored \n          otherwise.</li>\n        <li><strong class=\"pname\"><code>phi</code></strong> - Azimuthal angle <b><code>phi</code></b> (<code>radians</code>), \n          like <b><code>theta</code></b>.</li>\n        <li><strong class=\"pname\"><code>name_Cartesian_and_kwds</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>), \n          <code><b>Cartesian</b>=None</code> class to return the \n          coordinates and optionally, additional \n          <code><b>Cartesian</b></code> keyword arguments.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <code><b>Cartesian</b>(x, y, z)</code> instance or if no \n          <code><b>Cartesian</b></code> keyword argument is given a <a \n          href=\"pygeodesy.namedTuples.Vector3Tuple-class.html\" \n          class=\"link\">Vector3Tuple</a><code>(x, y, z)</code>, with \n          <code>x</code>, <code>y</code> and <code>z</code> in the same \n          units as radius <code>r</code>, <code>meter</code> \n          conventionally.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>r_rtp</code></b>, <b><code>theta</code></b>, \n        <b><code>phi</code></b> or \n        <b><code>name_Cartesian_and_kwds</code></b> item.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"https://WikiPedia.org/wiki/Spherical_coordinate_system\" \n        target=\"_top\">Physics convention</a> (ISO 80000-2:2019), class <a \n        href=\"pygeodesy.cartesianBase.RadiusThetaPhi3Tuple-class.html\" \n        class=\"link\">RadiusThetaPhi3Tuple</a> and functions <a \n        href=\"pygeodesy.cartesianBase-module.html#rtp2xyz\" \n        class=\"link\">rtp2xyz</a> and <a \n        href=\"pygeodesy.cartesianBase-module.html#xyz2rtp\" \n        class=\"link\">xyz2rtp</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"scalar\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">scalar</span>&nbsp;(<span class=\"sig-arg\">value</span>,\n        <span class=\"sig-arg\">low</span>=<span class=\"sig-default\">2.220446049250313e-16</span>,\n        <span class=\"sig-arg\">high</span>=<span class=\"sig-default\">1.0</span>,\n        <span class=\"sig-arg\">name</span>=<span class=\"sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">scalar</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"sig-arg\">Error</span>=<span class=\"sig-default\">&lt;type 'exceptions.ValueError'&gt;</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use class <a href=\"pygeodesy.units.Number_-class.html\" \n  class=\"link\">Number_</a> or <a href=\"pygeodesy.units.Scalar_-class.html\" \n  class=\"link\">Scalar_</a>.</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd>New value (<code>float</code> or <code>int</code> for \n          <code>int</code> <b><code>low</code></b>).</dd>\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>Error</strong></code> - Invalid <b><code>value</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"signBit\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">signBit</span>&nbsp;(<span class=\"sig-arg\">x</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return <code>signbit(<b>x</b>)</code>, like C++, see also <a \n  href=\"pygeodesy.constants-module.html#isneg\" class=\"link\">isneg</a>.</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd><code>True</code> if <code><b>x</b> &lt; 0</code> or \n          <code>NEG0</code> (<code>bool</code>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"signOf\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">signOf</span>&nbsp;(<span class=\"sig-arg\">x</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return sign of <code>x</code> as <code>int</code>.</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd>-1, 0 or +1 (<code>int</code>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"simplify1\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">simplify1</span>&nbsp;(<span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">distance</span>=<span class=\"sig-default\">0.001</span>,\n        <span class=\"sig-arg\">radius</span>=<span class=\"sig-default\">6371008.771415</span>,\n        <span class=\"sig-arg\">indices</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">**options</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Basic simplification of a path of <code>LatLon</code> points by \n  eliminating any points closer together than the given <i>distance</i> \n  tolerance.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>points</code></strong> - Iterable with the path points (<code>LatLon</code>[]).</li>\n        <li><strong class=\"pname\"><code>distance</code></strong> - Tolerance (<code>meter</code>, same units as \n          <b><code>radius</code></b>).</li>\n        <li><strong class=\"pname\"><code>radius</code></strong> - Mean earth radius (<code>meter</code>, conventionally).</li>\n        <li><strong class=\"pname\"><code>indices</code></strong> - If <code>True</code>, return <b><code>points</code></b> indices \n          instead of the simplified points (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>options</code></strong> - Optional keyword arguments passed thru to function <a \n          href=\"pygeodesy.geohash-module.html#equirectangular4\" \n          class=\"link\">pygeodesy.equirectangular4</a>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Simplified points (<code>LatLon</code>[]) or \n          <b><code>points</code></b> indices.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.LimitError-class.html\">LimitError</a></strong></code> - Lat- and/or longitudinal delta exceeds the \n        <b><code>limit</code></b>, see function <a \n        href=\"pygeodesy.geohash-module.html#equirectangular4\" \n        class=\"link\">pygeodesy.equirectangular4</a>.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Tolerance <b><code>distance</code></b> or \n        <b><code>radius</code></b> too small.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"simplify2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">simplify2</span>&nbsp;(<span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">pipe</span>=<span class=\"sig-default\">0.001</span>,\n        <span class=\"sig-arg\">**radius_shortest_indices_options</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use function <a \n  href=\"pygeodesy.simplify-module.html#simplifyRW\" \n  class=\"link\">pygeodesy.simplifyRW</a>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"simplifyRDP\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">simplifyRDP</span>&nbsp;(<span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">distance</span>=<span class=\"sig-default\">0.001</span>,\n        <span class=\"sig-arg\">radius</span>=<span class=\"sig-default\">6371008.771415</span>,\n        <span class=\"sig-arg\">shortest</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">indices</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">modified</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">**options</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p><i>Ramer-Douglas-Peucker</i> (RDP) simplification of a path of \n  <code>LatLon</code> points by eliminating any points too close together \n  or closer to an edge than the given <i>distance</i> tolerance.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>points</code></strong> - Iterable with the path points (<code>LatLon</code>[]).</li>\n        <li><strong class=\"pname\"><code>distance</code></strong> - Tolerance (<code>meter</code>, same units as \n          <b><code>radius</code></b>).</li>\n        <li><strong class=\"pname\"><code>radius</code></strong> - Mean earth radius (<code>meter</code>, conventionally).</li>\n        <li><strong class=\"pname\"><code>shortest</code></strong> - If <code>True</code>, use the <i>shortest</i> otherwise the \n          <i>perpendicular</i> distance (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>indices</code></strong> - If <code>True</code>, return <b><code>points</code></b> indices \n          instead of the simplified points (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>modified</code></strong> - If <code>True</code>, use the <code>modified RDP</code> method \n          (<code>bool</code>), see the <b>note</b>.</li>\n        <li><strong class=\"pname\"><code>options</code></strong> - Optional keyword arguments passed thru to function <a \n          href=\"pygeodesy.geohash-module.html#equirectangular4\" \n          class=\"link\">pygeodesy.equirectangular4</a>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Simplified points (<code>LatLon</code>[]) or \n          <b><code>points</code></b> indices.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.LimitError-class.html\">LimitError</a></strong></code> - Lat- and/or longitudinal delta exceeds the \n        <b><code>limit</code></b>, see function <a \n        href=\"pygeodesy.geohash-module.html#equirectangular4\" \n        class=\"link\">pygeodesy.equirectangular4</a>.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Tolerance <b><code>distance</code></b> or \n        <b><code>radius</code></b> too small.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        The original <code>RDP</code> method exhaustively searches for the \n        point with the largest distance (resulting in complexity <i \n        class=\"math\">O(n**2)</i> with <i class=\"math\">n</i> is the number \n        of points).  The <b><code>modified</code></b> <code>RDP</code> \n        method stops at the first point farther than the \n        <b><code>distance</code></b> tolerance, significantly reducing the \n        run time (but producing results different from the original \n        <code>RDP</code> method).\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"simplifyRDPm\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">simplifyRDPm</span>&nbsp;(<span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">distance</span>=<span class=\"sig-default\">0.001</span>,\n        <span class=\"sig-arg\">**radius_shortest_indices_options</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED on 2024.11.28, use function <a \n  href=\"pygeodesy.simplify-module.html#simplifyRDP\" \n  class=\"link\">pygeodesy.simplifyRDP</a><code>(points, modified=True, \n  ...)</code>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"simplifyRW\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">simplifyRW</span>&nbsp;(<span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">pipe</span>=<span class=\"sig-default\">0.001</span>,\n        <span class=\"sig-arg\">radius</span>=<span class=\"sig-default\">6371008.771415</span>,\n        <span class=\"sig-arg\">shortest</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">indices</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">**options</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p><i>Reumann-Witkam</i> (RW) simplification of a path of \n  <code>LatLon</code> points by eliminating any points too close together \n  or within the given <i>pipe</i> tolerance along an edge.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>points</code></strong> - Iterable with the path points (<code>LatLon</code>[]).</li>\n        <li><strong class=\"pname\"><code>pipe</code></strong> - Pipe radius, half-width (<code>meter</code>, same units as \n          <b><code>radius</code></b>).</li>\n        <li><strong class=\"pname\"><code>radius</code></strong> - Mean earth radius (<code>meter</code>, conventionally).</li>\n        <li><strong class=\"pname\"><code>shortest</code></strong> - If <code>True</code>, use the <i>shortest</i> otherwise the \n          <i>perpendicular</i> distance (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>indices</code></strong> - If <code>True</code>, return <b><code>points</code></b> indices \n          instead of the simplified points (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>options</code></strong> - Optional keyword arguments passed thru to function <a \n          href=\"pygeodesy.geohash-module.html#equirectangular4\" \n          class=\"link\">pygeodesy.equirectangular4</a>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Simplified points (<code>LatLon</code>[]) or \n          <b><code>points</code></b> indices.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.LimitError-class.html\">LimitError</a></strong></code> - Lat- and/or longitudinal delta exceeds the \n        <b><code>limit</code></b>, see function <a \n        href=\"pygeodesy.geohash-module.html#equirectangular4\" \n        class=\"link\">pygeodesy.equirectangular4</a>.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Tolerance <b><code>pipe</code></b> or <b><code>radius</code></b> \n        too small.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"simplifyVW\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">simplifyVW</span>&nbsp;(<span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">area</span>=<span class=\"sig-default\">0.001</span>,\n        <span class=\"sig-arg\">radius</span>=<span class=\"sig-default\">6371008.771415</span>,\n        <span class=\"sig-arg\">indices</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">attr</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">modified</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">**options</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p><i>Visvalingam-Whyatt</i> (VW) simplification of a path of \n  <code>LatLon</code> points by eliminating any points too close or with a \n  triangular area not exceeding the given <i>area</i> tolerance \n  <i>squared</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>points</code></strong> - Iterable with the path points (<code>LatLon</code>[]).</li>\n        <li><strong class=\"pname\"><code>area</code></strong> - Tolerance (<code>meter</code>, same units as \n          <b><code>radius</code></b>).</li>\n        <li><strong class=\"pname\"><code>radius</code></strong> - Mean earth radius (<code>meter</code>, conventionally).</li>\n        <li><strong class=\"pname\"><code>indices</code></strong> - If <code>True</code>, return <b><code>points</code></b> indices \n          instead of the simplified points (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>attr</code></strong> - Optional, <b><code>points</code></b> attribute to save the area \n          value (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>modified</code></strong> - If <code>True</code>, use the <code>modified VW</code> method \n          (<code>bool</code>), see the <b>note</b>.</li>\n        <li><strong class=\"pname\"><code>options</code></strong> - Optional keyword arguments passed thru to function <a \n          href=\"pygeodesy.geohash-module.html#equirectangular4\" \n          class=\"link\">pygeodesy.equirectangular4</a>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Simplified points (<code>LatLon</code>[]) or \n          <b><code>points</code></b> indices.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>AttributeError</strong></code> - An <b><code>attr</code></b> isinvalid for <i>Numpy2</i> \n        <b><code>points</code></b>.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.LimitError-class.html\">LimitError</a></strong></code> - Lat- and/or longitudinal delta exceeds the \n        <b><code>limit</code></b>, see function <a \n        href=\"pygeodesy.geohash-module.html#equirectangular4\" \n        class=\"link\">pygeodesy.equirectangular4</a>.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Tolerance <b><code>area</code></b> or <b><code>radius</code></b> \n        too small.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        The original <code>VW</code> method exhaustively searches for the \n        point with the smallest triangular <i>area</i> (resulting in \n        complexity <i class=\"math\">O(n**2)</i> with <i class=\"math\">n</i> \n        the number of points).  The <b><code>modified</code></b> \n        <code>VW</code> method removes <i>all</i> points with a triangular \n        <i>area</i> below the tolerance in each iteration, significantly \n        reducing the run time (but producing results different from the \n        original <code>VW</code> method).\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"simplifyVWm\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">simplifyVWm</span>&nbsp;(<span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">area</span>=<span class=\"sig-default\">0.001</span>,\n        <span class=\"sig-arg\">**radius_attr_indices_options</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED on 2024.11.28, use function <a \n  href=\"pygeodesy.simplify-module.html#simplifyVW\" \n  class=\"link\">pygeodesy.simplifyVW</a><code>(points, modified=True, \n  ...)</code>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"sincos2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">sincos2</span>&nbsp;(<span class=\"sig-arg\">rad</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the <code>sine</code> and <code>cosine</code> of an angle in \n  <code>radians</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>rad</code></strong> - Angle (<code>radians</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>2-Tuple (<code>sin(<b>rad</b>)</code>, \n          <code>cos(<b>rad</b>)</code>).</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Math.html#sincosd\"\n        target=\"_top\">GeographicLib</a> function <a \n        href=\"https://SourceForge.net/p/geographiclib/code/ci/release/tree/python/geographiclib/geomath.py#l155\"\n        target=\"_top\">sincosd</a> and C++ <a \n        href=\"https://SourceForge.net/p/geographiclib/code/ci/release/tree/include/GeographicLib/Math.hpp#l558\"\n        target=\"_top\">sincosd</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"sincos2_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">sincos2_</span>&nbsp;(<span class=\"sig-arg\">*rads</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Yield the <code>sine</code> and <code>cosine</code> of angle(s) in \n  <code>radians</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>rads</code></strong> - One or more angles (<code>radians</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Yield <code>sin(<b>rad</b>)</code> and \n          <code>cos(<b>rad</b>)</code> for each angle.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.utily-module.html#sincos2\" \n        class=\"link\">sincos2</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"sincos2d\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">sincos2d</span>&nbsp;(<span class=\"sig-arg\">deg</span>,\n        <span class=\"sig-arg\">adeg</span>=<span class=\"sig-default\">0.0</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the <code>sine</code> and <code>cosine</code> of an angle in \n  <code>degrees</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>deg</code></strong> - Angle (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>adeg</code></strong> - Optional correction (<code>degrees</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>2-Tuple (<code>sin(<b>deg_</b>)</code>, \n          <code>cos(<b>deg_</b>)</code> with <code><b>deg_</b> = <b>deg</b>\n          + <b>adeg</b></code>).</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Math.html#sincosd\"\n        target=\"_top\">GeographicLib</a> function <a \n        href=\"https://SourceForge.net/p/geographiclib/code/ci/release/tree/python/geographiclib/geomath.py#l155\"\n        target=\"_top\">sincosd</a> and C++ <a \n        href=\"https://SourceForge.net/p/geographiclib/code/ci/release/tree/include/GeographicLib/Math.hpp#l558\"\n        target=\"_top\">sincosd</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"sincos2d_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">sincos2d_</span>&nbsp;(<span class=\"sig-arg\">*degs</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Yield the <code>sine</code> and <code>cosine</code> of angle(s) in \n  <code>degrees</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>degs</code></strong> - One or more angles (<code>degrees</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Yield <code>sind(<b>deg</b>)</code> and \n          <code>cosd(<b>deg</b>)</code> for each angle.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.utily-module.html#sincos2d\" \n        class=\"link\">sincos2d</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"sincostan3\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">sincostan3</span>&nbsp;(<span class=\"sig-arg\">rad</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the <code>sine</code>, <code>cosine</code> and \n  <code>tangent</code> of an angle in <code>radians</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>rad</code></strong> - Angle (<code>radians</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>3-Tuple (<code>sin(<b>rad</b>)</code>, \n          <code>cos(<b>rad</b>)</code>, <code>tan(<b>rad</b>)</code>).</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.utily-module.html#sincos2\" \n        class=\"link\">sincos2</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"sincostan3d\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">sincostan3d</span>&nbsp;(<span class=\"sig-arg\">deg</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the <code>sine</code>, <code>cosine</code> and \n  <code>tangent</code> of an angle in <code>degrees</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>deg</code></strong> - Angle (<code>degrees</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>3-Tuple (<code>sind(<b>deg</b>)</code>, \n          <code>cosd(<b>deg</b>)</code>, <code>tand(<b>deg</b>)</code>).</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.utily-module.html#sincos2d\" \n        class=\"link\">sincos2d</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"snellius3\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">snellius3</span>&nbsp;(<span class=\"sig-arg\">a</span>,\n        <span class=\"sig-arg\">b</span>,\n        <span class=\"sig-arg\">degC</span>,\n        <span class=\"sig-arg\">alpha</span>,\n        <span class=\"sig-arg\">beta</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Snellius' surveying using <a \n  href=\"https://WikiPedia.org/wiki/Snellius&#8211;Pothenot_problem\" \n  target=\"_top\">Snellius Pothenot</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>a</code></strong> - Length of the triangle side between corners <code>B</code> and \n          <code>C</code> and opposite of triangle corner <code>A</code> \n          (<code>scalar</code>, non-negative <code>meter</code>, \n          conventionally).</li>\n        <li><strong class=\"pname\"><code>b</code></strong> - Length of the triangle side between corners <code>C</code> and \n          <code>A</code> and opposite of triangle corner <code>B</code> \n          (<code>scalar</code>, non-negative <code>meter</code>, \n          conventionally).</li>\n        <li><strong class=\"pname\"><code>degC</code></strong> - Angle at triangle corner <code>C</code>, opposite triangle side \n          <code>c</code> (non-negative <code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>alpha</code></strong> - Angle subtended by triangle side <b><code>b</code></b> \n          (non-negative <code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>beta</code></strong> - Angle subtended by triangle side <b><code>a</code></b> \n          (non-negative <code>degrees</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><a href=\"pygeodesy.resections.Survey3Tuple-class.html\" \n          class=\"link\">Survey3Tuple</a><code>(PA, PB, PC)</code> with \n          distance from survey point <code>P</code> to each of the triangle\n          corners <code>A</code>, <code>B</code> and <code>C</code>, same \n          units as triangle sides <b><code>a</code></b>, \n          <b><code>b</code></b> and <b><code>c</code></b>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.TriangleError-class.html\">TriangleError</a></strong></code> - Invalid <b><code>a</code></b>, <b><code>b</code></b> or \n        <b><code>degC</code></b> or negative <b><code>alpha</code></b> or \n        <b><code>beta</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.resections-module.html#wildberger3\" \n        class=\"link\">wildberger3</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"soddy4\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">soddy4</span>&nbsp;(<span class=\"sig-arg\">point1</span>,\n        <span class=\"sig-arg\">point2</span>,\n        <span class=\"sig-arg\">point3</span>,\n        <span class=\"sig-arg\">eps</span>=<span class=\"sig-default\">8.881784197001252e-16</span>,\n        <span class=\"sig-arg\">useZ</span>=<span class=\"sig-default\">True</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the radius and center of the <code>inner</code> <i>Soddy</i> \n  circle of a (2- or 3-D) triangle.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>point1</code></strong> - First point (<code>Cartesian</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <code>Vector3Tuple</code>, \n          <code>Vector4Tuple</code> or <code>Vector2Tuple</code> if \n          <code><b>useZ</b>=False</code>).</li>\n        <li><strong class=\"pname\"><code>point2</code></strong> - Second point (<code>Cartesian</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <code>Vector3Tuple</code>, \n          <code>Vector4Tuple</code> or <code>Vector2Tuple</code> if \n          <code><b>useZ</b>=False</code>).</li>\n        <li><strong class=\"pname\"><code>point3</code></strong> - Third point (<code>Cartesian</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <code>Vector3Tuple</code>, \n          <code>Vector4Tuple</code> or <code>Vector2Tuple</code> if \n          <code><b>useZ</b>=False</code>).</li>\n        <li><strong class=\"pname\"><code>eps</code></strong> - Tolerance for function <a \n          href=\"pygeodesy.vector3d-module.html#trilaterate3d2\" \n          class=\"link\">pygeodesy.trilaterate3d2</a> if <code><b>useZ</b> is\n          True</code> otherwise <a \n          href=\"pygeodesy.vector2d-module.html#trilaterate2d2\" \n          class=\"link\">pygeodesy.trilaterate2d2</a>.</li>\n        <li><strong class=\"pname\"><code>useZ</code></strong> - If <code>True</code>, use the Z components, otherwise force \n          <code>z=INT0</code> (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><a href=\"pygeodesy.vector2d.Soddy4Tuple-class.html\" \n          class=\"link\">Soddy4Tuple</a><code>(radius, center, deltas, \n          outer)</code>.  The <code>center</code>, an instance of \n          <b><code>point1</code></b>'s (sub-)class, is co-planar with the \n          three given points.  The <code>outer</code> <i>Soddy</i> radius \n          may be <code>INF</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ImportError</strong></code> - Package <code>numpy</code> not found, not installed or older than \n        version 1.10 and <code><b>useZ</b> is True</code>.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.IntersectionError-class.html\">IntersectionError</a></strong></code> - Near-coincident or -colinear points or a trilateration or \n        <code>numpy</code> issue.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>point1</code></b>, <b><code>point2</code></b> or \n        <b><code>point3</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Functions <a href=\"pygeodesy.vector2d-module.html#radii11\" \n        class=\"link\">radii11</a> and <a \n        href=\"pygeodesy.vector2d-module.html#circum3\" \n        class=\"link\">circum3</a> and <a \n        href=\"https://MathWorld.Wolfram.com/SoddyCircles.html\" \n        target=\"_top\">Soddy Circles</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"splice\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">splice</span>&nbsp;(<span class=\"sig-arg\">iterable</span>,\n        <span class=\"sig-arg\">n</span>=<span class=\"sig-default\">2</span>,\n        <span class=\"sig-arg\">**fill</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Split an iterable into <code>n</code> slices.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>iterable</code></strong> - Items to be spliced (<code>list</code>, <code>tuple</code>, ...).</li>\n        <li><strong class=\"pname\"><code>n</code></strong> - Number of slices to generate (<code>int</code>).</li>\n        <li><strong class=\"pname\"><code>fill</code></strong> - Optional fill value for missing items.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A generator for each of <b><code>n</code></b> slices, <i \n          class=\"math\">iterable[i::n] for i=0..n</i>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>n</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        Each generated slice is a <code>tuple</code> or a \n        <code>list</code>, the latter only if the \n        <b><code>iterable</code></b> is a <code>list</code>.\n      </p>\n      <p><strong>Example:</strong>\n        <pre class=\"py-doctest\">\n<span class=\"py-prompt\">&gt;&gt;&gt; </span><span class=\"py-keyword\">from</span> pygeodesy <span class=\"py-keyword\">import</span> splice</pre>\n<pre class=\"py-doctest\">\n<span class=\"py-prompt\">&gt;&gt;&gt; </span>a, b = splice(range(10))\n<span class=\"py-prompt\">&gt;&gt;&gt; </span>a, b\n<span class=\"py-output\">((0, 2, 4, 6, 8), (1, 3, 5, 7, 9))</span></pre>\n<pre class=\"py-doctest\">\n<span class=\"py-prompt\">&gt;&gt;&gt; </span>a, b, c = splice(range(10), n=3)\n<span class=\"py-prompt\">&gt;&gt;&gt; </span>a, b, c\n<span class=\"py-output\">((0, 3, 6, 9), (1, 4, 7), (2, 5, 8))</span></pre>\n<pre class=\"py-doctest\">\n<span class=\"py-prompt\">&gt;&gt;&gt; </span>a, b, c = splice(range(10), n=3, fill=-1)\n<span class=\"py-prompt\">&gt;&gt;&gt; </span>a, b, c\n<span class=\"py-output\">((0, 3, 6, 9), (1, 4, 7, -1), (2, 5, 8, -1))</span></pre>\n<pre class=\"py-doctest\">\n<span class=\"py-prompt\">&gt;&gt;&gt; </span>tuple(splice(list(range(9)), n=5))\n<span class=\"py-output\">([0, 5], [1, 6], [2, 7], [3, 8], [4])</span></pre>\n<pre class=\"py-doctest\">\n<span class=\"py-prompt\">&gt;&gt;&gt; </span>splice(range(9), n=1)\n<span class=\"py-output\">&lt;generator object splice at 0x0...&gt;</span></pre>\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"sqrt0\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">sqrt0</span>&nbsp;(<span class=\"sig-arg\">x</span>,\n        <span class=\"sig-arg\">Error</span>=<span class=\"sig-default\">None</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the square root <code>sqrt(<b>x</b>)</code> iff <code><b>x</b> \n  &gt; </code>EPS02, preserving <code>type(<b>x</b>)</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>x</code></strong> - Value (<code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>Error</code></strong> - Error to raise for negative <b><code>x</code></b>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Square root (<code>float</code> or <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a>) or \n          <code>0.0</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeeError</strong></code> - Invalid <b><code>x</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        Any <code><b>x</b> &lt; </code>EPS02 <i>including</i> \n        <code><b>x</b> &lt; 0</code> returns <code>0.0</code>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"sqrt3\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">sqrt3</span>&nbsp;(<span class=\"sig-arg\">x</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the square root, <i>cubed</i> <i class=\"math\">sqrt(x)**3</i> or\n  <i class=\"math\">sqrt(x**3)</i>, preserving \n  <code>type(<b>x</b>)</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>x</code></strong> - Value (<code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Square root <i>cubed</i> (<code>float</code> or <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeeError</strong></code> - Invalid <b><code>x</code></b>.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Negative <b><code>x</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Functions <a href=\"pygeodesy.fmath-module.html#cbrt\" \n        class=\"link\">cbrt</a> and <a \n        href=\"pygeodesy.fmath-module.html#cbrt2\" class=\"link\">cbrt2</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"sqrt_a\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">sqrt_a</span>&nbsp;(<span class=\"sig-arg\">h</span>,\n        <span class=\"sig-arg\">b</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the <code><i>a</i></code> side of a right-angled triangle from\n  <code>sqrt(<b>h</b>**2 - <b>b</b>**2)</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>h</code></strong> - Hypotenuse or outer annulus radius (<code>scalar</code>).</li>\n        <li><strong class=\"pname\"><code>b</code></strong> - Triangle side or inner annulus radius (<code>scalar</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>copysign(<i>a</i>, <b>h</b>)</code> or <code>unsigned \n          0.0</code> (<code>float</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Non-scalar <b><code>h</code></b> or <b><code>b</code></b>.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - If <code>abs(<b>h</b>) &lt; abs(<b>b</b>)</code>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Inner tangent chord <b><i>d</i></b> of an <a \n        href=\"https://WikiPedia.org/wiki/Annulus_(mathematics)\" \n        target=\"_top\">annulus</a> and function <a \n        href=\"https://People.SC.FSU.edu/~jburkardt/py_src/geometry/geometry.py\"\n        target=\"_top\">annulus_area</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"strs\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">strs</span>&nbsp;(<span class=\"sig-arg\">objs</span>,\n        <span class=\"sig-arg\">prec</span>=<span class=\"sig-default\">6</span>,\n        <span class=\"sig-arg\">fmt</span>=<span class=\"sig-default\">'F'</span>,\n        <span class=\"sig-arg\">ints</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert objects to <code>str</code> strings, with <code>float</code>s \n  handled like <a href=\"pygeodesy.streprs-module.html#fstr\" \n  class=\"link\">fstr</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>objs</code></strong> - List, sequence, tuple, etc. (any <code>type</code>s).</li>\n        <li><strong class=\"pname\"><code>prec</code></strong> - The <code>float</code> precision, number of decimal digits \n          (0..9). Trailing zero decimals are stripped if \n          <b><code>prec</code></b> is positive, but kept for negative \n          <b><code>prec</code></b> values.</li>\n        <li><strong class=\"pname\"><code>fmt</code></strong> - Optional <code>float</code> format (<code>letter</code>).</li>\n        <li><strong class=\"pname\"><code>ints</code></strong> - Optionally, remove the decimal dot for <code>int</code> values \n          (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <code>tuple(map(fstr|str, objs))</code> of <code>str</code>s.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"sumOf\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">sumOf</span>&nbsp;(<span class=\"sig-arg\">vectors</span>,\n        <span class=\"sig-arg\">Vector</span>=<span class=\"sig-default\">&lt;class 'pygeodesy.vector3d.Vector3d'&gt;</span>,\n        <span class=\"sig-arg\">**Vector_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the <i>vectorial</i> sum of two oe more vectors.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>vectors</code></strong> - Vectors to be added (<a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>[]).</li>\n        <li><strong class=\"pname\"><code>Vector</code></strong> - Optional class for the vectorial sum (<a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>).</li>\n        <li><strong class=\"pname\"><code>Vector_kwds</code></strong> - Optional <b><code>Vector</code></b> keyword arguments, ignored if\n          <code><b>Vector</b> is None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Vectorial sum as <b><code>Vector</code></b> or if \n          <b><code>Vector</code> is None</b>, a named <a \n          href=\"pygeodesy.namedTuples.Vector3Tuple-class.html\" \n          class=\"link\">Vector3Tuple</a><code>(x, y, z)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.VectorError-class.html\">VectorError</a></strong></code> - No <b><code>vectors</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"tan\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">tan</span>&nbsp;(<span class=\"sig-arg\">rad</span>,\n        <span class=\"sig-arg\">**raiser_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the <code>tangent</code> of an angle in \n  <code>radians</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>rad</code></strong> - Angle (<code>radians</code>).</li>\n        <li><strong class=\"pname\"><code>raiser_kwds</code></strong> - Use <code><b>raiser</b>=False</code> to avoid ValueErrors and \n          optional, additional ValueError keyword argments.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>tan(<b>rad</b>)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>Error</strong></code> - If <a href=\"pygeodesy.constants-module.html#isnear0\" \n        class=\"link\">pygeodesy.isnear0</a><code>(cos(<b>rad</b>)</code>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"tanPI_2_2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">tanPI_2_2</span>&nbsp;(<span class=\"sig-arg\">rad</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the tangent of half angle, 90 degrees rotated.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>rad</code></strong> - Angle (<code>radians</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><i class=\"math\">tan((rad + PI/2) / 2)</i> (<code>float</code>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"tan_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">tan_</span>&nbsp;(<span class=\"sig-arg\">*rads</span>,\n        <span class=\"sig-arg\">**raiser_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Yield the <code>tangent</code> of angle(s) in \n  <code>radians</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>rads</code></strong> - One or more angles (each in <code>radians</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Yield <code>tan(<b>rad</b>)</code> for each angle.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.utily-module.html#tan\" \n        class=\"link\">pygeodesy.tan</a> for futher details.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"tan_2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">tan_2</span>&nbsp;(<span class=\"sig-arg\">rad</span>,\n        <span class=\"sig-arg\">**semi</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the tangent of half angle.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>rad</code></strong> - Angle (<code>radians</code>).</li>\n        <li><strong class=\"pname\"><code>semi</code></strong> - Angle or edge name and index for semi-circular error.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><i class=\"math\">tan(rad / 2)</i> (<code>float</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ValueError</strong></code> - If <b><code>rad</code></b> is semi-circular and \n        <b><code>semi</code></b> is given.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"tand\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">tand</span>&nbsp;(<span class=\"sig-arg\">deg</span>,\n        <span class=\"sig-arg\">**raiser_clamp_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the <code>tangent</code> of an angle in \n  <code>degrees</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>deg</code></strong> - Angle (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>raiser_clamp_kwds</code></strong> - Use <code><b>raiser</b>=False</code> to avoid ValueErrors, \n          <code><b>clamp</b>=</code>OVERFLOW and optional, additional \n          ValueError keyword argments.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>tan(<b>deg</b>)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>Error</strong></code> - If <a href=\"pygeodesy.constants-module.html#isnear0\" \n        class=\"link\">pygeodesy.isnear0</a><code>(cos(<b>deg</b>)</code>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"tand_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">tand_</span>&nbsp;(<span class=\"sig-arg\">*degs</span>,\n        <span class=\"sig-arg\">**raiser_clamp_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Yield the <code>tangent</code> of angle(s) in \n  <code>degrees</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>degs</code></strong> - One or more angles (each in <code>degrees</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Yield <code>tand(<b>deg</b>)</code> for each angle.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.utily-module.html#tand\" \n        class=\"link\">pygeodesy.tand</a> for futher details.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"thomas\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">thomas</span>&nbsp;(<span class=\"sig-arg\">lat1</span>,\n        <span class=\"sig-arg\">lon1</span>,\n        <span class=\"sig-arg\">lat2</span>,\n        <span class=\"sig-arg\">lon2</span>,\n        <span class=\"sig-arg\">datum</span>=<span class=\"sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the distance between two (ellipsoidal) points using <a \n  href=\"https://apps.DTIC.mil/dtic/tr/fulltext/u2/703541.pdf\" \n  target=\"_top\">Thomas'</a> formula.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat1</code></strong> - Start latitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lon1</code></strong> - Start longitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lat2</code></strong> - End latitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lon2</code></strong> - End longitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>datum</code></strong> - Datum (<a href=\"pygeodesy.datums.Datum-class.html\" \n          class=\"link\">Datum</a>) or ellipsoid (<a \n          href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a> or <a \n          href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>) to use.</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll \n          <b><code>lat2</code></b> and <b><code>lon2</code></b> \n          (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Distance (<code>meter</code>, same units as the \n          <b><code>datum</code></b>'s or ellipsoid axes).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>datum</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Functions <a href=\"pygeodesy.formy-module.html#thomas_\" \n        class=\"link\">thomas_</a>, <a \n        href=\"pygeodesy.formy-module.html#cosineLaw\" \n        class=\"link\">cosineLaw</a>, <a \n        href=\"pygeodesy.formy-module.html#equirectangular\" \n        class=\"link\">equirectangular</a>, <a \n        href=\"pygeodesy.formy-module.html#euclidean\" \n        class=\"link\">euclidean</a>, <a \n        href=\"pygeodesy.formy-module.html#flatLocal\" \n        class=\"link\">flatLocal</a> / <a \n        href=\"pygeodesy.formy-module.html#flatLocal\" \n        class=\"link\">hubeny</a>, <a \n        href=\"pygeodesy.formy-module.html#flatPolar\" \n        class=\"link\">flatPolar</a>, <a \n        href=\"pygeodesy.formy-module.html#haversine\" \n        class=\"link\">haversine</a>, <a \n        href=\"pygeodesy.formy-module.html#vincentys\" \n        class=\"link\">vincentys</a> and method <a \n        href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#distance2\" \n        class=\"link\">Ellipsoid.distance2</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"thomas_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">thomas_</span>&nbsp;(<span class=\"sig-arg\">phi2</span>,\n        <span class=\"sig-arg\">phi1</span>,\n        <span class=\"sig-arg\">lam21</span>,\n        <span class=\"sig-arg\">datum</span>=<span class=\"sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the <i>angular</i> distance between two (ellipsoidal) points \n  using <a href=\"https://apps.DTIC.mil/dtic/tr/fulltext/u2/703541.pdf\" \n  target=\"_top\">Thomas'</a> formula.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>phi2</code></strong> - End latitude (<code>radians</code>).</li>\n        <li><strong class=\"pname\"><code>phi1</code></strong> - Start latitude (<code>radians</code>).</li>\n        <li><strong class=\"pname\"><code>lam21</code></strong> - Longitudinal delta, <i class=\"math\">end-start</i> \n          (<code>radians</code>).</li>\n        <li><strong class=\"pname\"><code>datum</code></strong> - Datum (<a href=\"pygeodesy.datums.Datum-class.html\" \n          class=\"link\">Datum</a>) ?or ellipsoid to use (<a \n          href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a> or <a \n          href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Angular distance (<code>radians</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>datum</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Functions <a href=\"pygeodesy.formy-module.html#thomas\" \n        class=\"link\">thomas</a>, <a \n        href=\"pygeodesy.formy-module.html#cosineLaw_\" \n        class=\"link\">cosineLaw_</a>, <a \n        href=\"pygeodesy.formy-module.html#euclidean_\" \n        class=\"link\">euclidean_</a>, <a \n        href=\"pygeodesy.formy-module.html#flatLocal_\" \n        class=\"link\">flatLocal_</a> / <a \n        href=\"pygeodesy.formy-module.html#flatLocal_\" \n        class=\"link\">hubeny_</a>, <a \n        href=\"pygeodesy.formy-module.html#flatPolar_\" \n        class=\"link\">flatPolar_</a>, <a \n        href=\"pygeodesy.formy-module.html#haversine_\" \n        class=\"link\">haversine_</a> and <a \n        href=\"pygeodesy.formy-module.html#vincentys_\" \n        class=\"link\">vincentys_</a> and <a \n        href=\"https://GitHub.com/jtejido/geodesy-php/blob/master/src/Geodesy/Distance/ThomasFormula.php\"\n        target=\"_top\">Geodesy-PHP</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"tienstra\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">tienstra</span>&nbsp;(<span class=\"sig-arg\">pointA</span>,\n        <span class=\"sig-arg\">pointB</span>,\n        <span class=\"sig-arg\">pointC</span>,\n        <span class=\"sig-arg\">alpha</span>,\n        <span class=\"sig-arg\">**beta_gamma_useZ_Clas_and_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use function <a \n  href=\"pygeodesy.resections-module.html#tienstra7\" \n  class=\"link\">pygeodesy.tienstra7</a>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"tienstra7\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">tienstra7</span>&nbsp;(<span class=\"sig-arg\">pointA</span>,\n        <span class=\"sig-arg\">pointB</span>,\n        <span class=\"sig-arg\">pointC</span>,\n        <span class=\"sig-arg\">alpha</span>,\n        <span class=\"sig-arg\">beta</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">gamma</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">useZ</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">**Clas_and_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>3-Point resection using <a \n  href=\"https://WikiPedia.org/wiki/Tienstra_formula\" \n  target=\"_top\">Tienstra</a>'s formula.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>pointA</code></strong> - First point (<code>Cartesian</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <code>Vector3Tuple</code>, \n          <code>Vector4Tuple</code> or <code>Vector2Tuple</code> if \n          <code><b>useZ</b>=False</code>).</li>\n        <li><strong class=\"pname\"><code>pointB</code></strong> - Second point (<code>Cartesian</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <code>Vector3Tuple</code>, \n          <code>Vector4Tuple</code> or <code>Vector2Tuple</code> if \n          <code><b>useZ</b>=False</code>).</li>\n        <li><strong class=\"pname\"><code>pointC</code></strong> - Third point (<code>Cartesian</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <code>Vector3Tuple</code>, \n          <code>Vector4Tuple</code> or <code>Vector2Tuple</code> if \n          <code><b>useZ</b>=False</code>).</li>\n        <li><strong class=\"pname\"><code>alpha</code></strong> - Angle subtended by triangle side <code>a</code> from \n          <b><code>pointB</code></b> to <b><code>pointC</code></b> \n          (<code>degrees</code>, non-negative).</li>\n        <li><strong class=\"pname\"><code>beta</code></strong> - Angle subtended by triangle side <code>b</code> from \n          <b><code>pointA</code></b> to <b><code>pointC</code></b> \n          (<code>degrees</code>, non-negative) or <code>None</code> if \n          <code><b>gamma</b> is not None</code>.</li>\n        <li><strong class=\"pname\"><code>gamma</code></strong> - Angle subtended by triangle side <code>c</code> from \n          <b><code>pointA</code></b> to <b><code>pointB</code></b> \n          (<code>degrees</code>, non-negative) or <code>None</code> if \n          <code><b>beta</b> is not None</code>.</li>\n        <li><strong class=\"pname\"><code>useZ</code></strong> - If <code>True</code>, use and interpolate the Z component, \n          otherwise force <code>z=INT0</code> (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>Clas_and_kwds</code></strong> - Optional class <code><b>Clas</b>=<b>pointA</b>.classof</code> to \n          return the survey point with optionally other \n          <b><code>Clas</code></b> keyword arguments to instantiate the \n          survey point.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><a href=\"pygeodesy.resections.Tienstra7Tuple-class.html\" \n          class=\"link\">Tienstra7Tuple</a><code>(pointP, A, B, C, a, b, \n          c)</code> with survey <code>pointP</code>, an instance of \n          <b><code>Clas</code></b> or <b><code>pointA</code></b>'s \n          (sub-)class, with triangle angles <code>A</code> at \n          <b><code>pointA</code></b>, <code>B</code> at \n          <b><code>pointB</code></b> and <code>C</code> at \n          <b><code>pointC</code></b> in <code>degrees</code> and with \n          triangle sides <code>a</code>, <code>b</code> and <code>c</code> \n          in <code>meter</code>, conventionally.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.resections.ResectionError-class.html\">ResectionError</a></strong></code> - Near-coincident, -colinear or -concyclic points or sum of \n        <b><code>alpha</code></b>, <b><code>beta</code></b> and \n        <b><code>gamma</code></b> not <code>360</code> or negative \n        <b><code>alpha</code></b>, <b><code>beta</code></b> or \n        <b><code>gamma</code></b>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>pointA</code></b>, <b><code>pointB</code></b> or \n        <b><code>pointC</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        Points <b><code>pointA</code></b>, <b><code>pointB</code></b> and \n        <b><code>pointC</code></b> are ordered clockwise.\n      </p>\n      <p><strong>See Also:</strong>\n        <a href=\"http://MesaMike.org/geocache/GC1B0Q9/tienstra/\" \n        target=\"_top\">3-Point Resection Solver</a>, <a \n        href=\"http://www.Telecom.ULg.ac.BE/publi/publications/pierlot/Pierlot2014ANewThree/\"\n        target=\"_top\">V. Pierlot, M. Van Droogenbroeck, &quot;A New Three \n        Object Triangulation...&quot;</a>, <a \n        href=\"http://www.Telecom.ULg.ac.BE/triangulation/\" target=\"_top\">18\n        Triangulation Algorithms...</a> and functions <a \n        href=\"pygeodesy.resections-module.html#cassini\" \n        class=\"link\">cassini</a>, <a \n        href=\"pygeodesy.resections-module.html#collins5\" \n        class=\"link\">collins5</a>, <a \n        href=\"pygeodesy.resections-module.html#pierlot\" \n        class=\"link\">pierlot</a> and <a \n        href=\"pygeodesy.resections-module.html#pierlotx\" \n        class=\"link\">pierlotx</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"toCss\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toCss</span>&nbsp;(<span class=\"sig-arg\">latlon</span>,\n        <span class=\"sig-arg\">cs0</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">height</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">Css</span>=<span class=\"sig-default\">&lt;class 'pygeodesy.css.Css'&gt;</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert an (ellipsoidal) geodetic point to a Cassini-Soldner \n  location.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>latlon</code></strong> - Ellipsoidal point (<code>LatLon</code> or <a \n          href=\"pygeodesy.namedTuples.LatLon4Tuple-class.html\" \n          class=\"link\">LatLon4Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>cs0</code></strong> - Optional, the Cassini-Soldner projection to use (<a \n          href=\"pygeodesy.css.CassiniSoldner-class.html\" \n          class=\"link\">CassiniSoldner</a>).</li>\n        <li><strong class=\"pname\"><a href=pygeodesy.heights-module.html><code>height</code></a></strong> - Optional height for the point, overriding the default height \n          (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>Css</code></strong> - Optional class to return the location (<a \n          href=\"pygeodesy.css.Css-class.html\" class=\"link\">Css</a>) or \n          <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <b><code>Css</code></b> <code><b>name</b>=NN</code> \n          (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The Cassini-Soldner location (<b><code>Css</code></b>) or if \n          <code><b>Css</b> is None</code>, an <a \n          href=\"pygeodesy.namedTuples.EasNor3Tuple-class.html\" \n          class=\"link\">EasNor3Tuple</a><code>(easting, northing, \n          height)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.css.CSSError-class.html\">CSSError</a></strong></code> - Ellipsoidal mismatch of <b><code>latlon</code></b> and \n        <b><code>cs0</code></b>.</li>\n        <li><code><strong class='fraise'>ImportError</strong></code> - Package <a href=\"https://PyPI.org/project/geographiclib\" \n        target=\"_top\">geographiclib</a> not installed or not found.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - If <b><code>latlon</code></b> is not ellipsoidal.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toDMS\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toDMS</span>&nbsp;(<span class=\"sig-arg\">deg</span>,\n        <span class=\"sig-arg\">form</span>=<span class=\"sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">dms</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"sig-arg\">prec</span>=<span class=\"sig-default\">2</span>,\n        <span class=\"sig-arg\">sep</span>=<span class=\"sig-default\">''</span>,\n        <span class=\"sig-arg\">ddd</span>=<span class=\"sig-default\">2</span>,\n        <span class=\"sig-arg\">neg</span>=<span class=\"sig-default\">'-'</span>,\n        <span class=\"sig-arg\">pos</span>=<span class=\"sig-default\">'+'</span>,\n        <span class=\"sig-arg\">**s_D_M_S</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert <i>signed</i> <code>degrees</code> to string, without \n  suffix.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>deg</code></strong> - Degrees to be formatted (<code>scalar degrees</code>).</li>\n        <li><strong class=\"pname\"><code>form</code></strong> - Format specifier for <b><code>deg</code></b> (<code>str</code> or\n          <a href=\"pygeodesy.dms-module.html#F_D\" class=\"link\">F_D</a>, <a \n          href=\"pygeodesy.dms-module.html#F_DM\" class=\"link\">F_DM</a>, <a \n          href=\"pygeodesy.dms-module.html#F_DMS\" class=\"link\">F_DMS</a>, <a\n          href=\"pygeodesy.dms-module.html#F_DEG\" class=\"link\">F_DEG</a>, <a\n          href=\"pygeodesy.dms-module.html#F_MIN\" class=\"link\">F_MIN</a>, <a\n          href=\"pygeodesy.dms-module.html#F_SEC\" class=\"link\">F_SEC</a>, <a\n          href=\"pygeodesy.dms-module.html#F_D60\" class=\"link\">F_D60</a>, <a\n          href=\"pygeodesy.dms-module.html#F__E\" class=\"link\">F__E</a>, <a \n          href=\"pygeodesy.dms-module.html#F__F\" class=\"link\">F__F</a>, <a \n          href=\"pygeodesy.dms-module.html#F__G\" class=\"link\">F__G</a>, <a \n          href=\"pygeodesy.dms-module.html#F_RAD\" class=\"link\">F_RAD</a>, <a\n          href=\"pygeodesy.dms-module.html#F_D_\" class=\"link\">F_D_</a>, <a \n          href=\"pygeodesy.dms-module.html#F_DM_\" class=\"link\">F_DM_</a>, <a\n          href=\"pygeodesy.dms-module.html#F_DMS_\" class=\"link\">F_DMS_</a>, \n          <a href=\"pygeodesy.dms-module.html#F_DEG_\" \n          class=\"link\">F_DEG_</a>, <a \n          href=\"pygeodesy.dms-module.html#F_MIN_\" class=\"link\">F_MIN_</a>, \n          <a href=\"pygeodesy.dms-module.html#F_SEC_\" \n          class=\"link\">F_SEC_</a>, <a \n          href=\"pygeodesy.dms-module.html#F_D60_\" class=\"link\">F_D60_</a>, \n          <a href=\"pygeodesy.dms-module.html#F__E_\" class=\"link\">F__E_</a>,\n          <a href=\"pygeodesy.dms-module.html#F__F_\" class=\"link\">F__F_</a>,\n          <a href=\"pygeodesy.dms-module.html#F__G_\" class=\"link\">F__G_</a>,\n          <a href=\"pygeodesy.dms-module.html#F_RAD_\" \n          class=\"link\">F_RAD_</a>, <a \n          href=\"pygeodesy.dms-module.html#F_D__\" class=\"link\">F_D__</a>, <a\n          href=\"pygeodesy.dms-module.html#F_DM__\" class=\"link\">F_DM__</a>, \n          <a href=\"pygeodesy.dms-module.html#F_DMS__\" \n          class=\"link\">F_DMS__</a>, <a \n          href=\"pygeodesy.dms-module.html#F_DEG__\" \n          class=\"link\">F_DEG__</a>, <a \n          href=\"pygeodesy.dms-module.html#F_MIN__\" \n          class=\"link\">F_MIN__</a>, <a \n          href=\"pygeodesy.dms-module.html#F_SEC__\" \n          class=\"link\">F_SEC__</a>, <a \n          href=\"pygeodesy.dms-module.html#F_D60__\" \n          class=\"link\">F_D60__</a>, <a \n          href=\"pygeodesy.dms-module.html#F__E__\" class=\"link\">F__E__</a>, \n          <a href=\"pygeodesy.dms-module.html#F__F__\" \n          class=\"link\">F__F__</a>, <a \n          href=\"pygeodesy.dms-module.html#F__G__\" class=\"link\">F__G__</a> \n          or <a href=\"pygeodesy.dms-module.html#F_RAD__\" \n          class=\"link\">F_RAD__</a>).</li>\n        <li><strong class=\"pname\"><code>prec</code></strong> - Number of decimal digits (0..9 or <code>None</code> for default).\n          Trailing zero decimals are stripped for \n          <code><b>prec</b>=1</code> and above, but kept for negative \n          <b><code>prec</code></b>.</li>\n        <li><strong class=\"pname\"><code>sep</code></strong> - Separator between degrees, minutes, seconds, suffix \n          (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>ddd</code></strong> - Number of (integer) digits for <b><code>deg</code>&#176;</b> (2 or 3).</li>\n        <li><strong class=\"pname\"><code>neg</code></strong> - Prefix for negative <b><code>deg</code></b> (<code>'-'</code>).</li>\n        <li><strong class=\"pname\"><code>pos</code></strong> - Prefix for positive <b><code>deg</code></b> and signed \n          <b><code>form</code></b> (<code>'+'</code>).</li>\n        <li><strong class=\"pname\"><code>s_D_M_S</code></strong> - Optional keyword arguments <code><b>s_D</b>=</code><a \n          href=\"pygeodesy.dms-module.html#S_DEG\" class=\"link\">S_DEG</a>, \n          <code><b>s_M</b>=</code><a href=\"pygeodesy.dms-module.html#S_MIN\"\n          class=\"link\">S_MIN</a> <code><b>s_S</b>=</code><a \n          href=\"pygeodesy.dms-module.html#S_SEC\" class=\"link\">S_SEC</a>, \n          <code><b>s_R</b>=</code><a href=\"pygeodesy.dms-module.html#S_RAD\"\n          class=\"link\">S_RAD</a> and <code><b>s_DMS</b>=True</code> to \n          override any or cancel all DMS symbol suffixes.  See the \n          <b>Notes</b> below.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Degrees in the specified form (<code>str</code>).</dd>\n  </dl>\n<div class=\"fields\">      <strong>Notes:</strong>\n      <ul class=\"nomargin-top\">\n        <li>\n        The degrees, minutes and seconds (DMS) symbol can be overridden in \n        this and other <code>*DMS</code> functions by using optional \n        keyword argments <code><b>s_D</b>=&quot;d&quot;</code>, \n        <code><b>s_M</b>=&quot;'&quot;</code> respectively \n        <code><b>s_S</b>='&quot;'</code>.  Using \n        <b><code>s_DMS</code>=None</b> cancels all <code>DMS</code> symbols\n        to <code>&quot;&quot;</code> aka <a href=\"pygeodesy-module.html#NN\"\n        class=\"link\">pygeodesy.NN</a>.\n        </li>\n        <li>\n        Sexagecimal format <b><code>F_D60</code></b> supports overridable \n        pseudo-DMS symbols positioned at \n        <code>&quot;[D]DD&lt;<b>s_D</b>&gt;MM&lt;<b>s_M</b>&gt;SS&lt;<b>s_S</b>&gt;&quot;</code>\n        with defaults <code><b>s_D</b>=&quot;.&quot;</code>, \n        <code><b>s_M</b>=<b>sep</b></code> and <code><b>s_S</b>=</code><a \n        href=\"pygeodesy-module.html#NN\" class=\"link\">pygeodesy.NN</a>.\n        </li>\n        <li>\n        Formats <b><code>F__E</code></b>, <b><code>F__F</code></b> and \n        <b><code>F__G</code></b> is extended with a <code>D</code>-only \n        symbol suffix if defined with keyword argument \n        <code><b>s_D</b>=</code><a href=\"pygeodesy-module.html#NN\" \n        class=\"link\">pygeodesy.NN</a>. Likewise for \n        <b><code>F_RAD</code></b> forms with keyword argument \n        <code><b>s_R</b>=</code><a href=\"pygeodesy.dms-module.html#S_RAD\" \n        class=\"link\">S_RAD</a>.\n        </li>\n      </ul>\n      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.dms-module.html#degDMS\" \n        class=\"link\">pygeodesy.degDMS</a>\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"toEtm8\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toEtm8</span>&nbsp;(<span class=\"sig-arg\">latlon</span>,\n        <span class=\"sig-arg\">lon</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">datum</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">Etm</span>=<span class=\"sig-default\">&lt;class 'pygeodesy.etm.Etm'&gt;</span>,\n        <span class=\"sig-arg\">falsed</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">strict</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">zone</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**name_cmoff</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert a geodetic lat-/longitude to an ETM coordinate.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>latlon</code></strong> - Latitude (<code>degrees</code>) or an (ellipsoidal) geodetic \n          <code>LatLon</code> instance.</li>\n        <li><strong class=\"pname\"><code>lon</code></strong> - Optional longitude (<code>degrees</code>), required if \n          <b><code>latlon</code></b> is <code>degrees</code>, ignored \n          otherwise.</li>\n        <li><strong class=\"pname\"><code>datum</code></strong> - Optional datum for the ETM coordinate, overriding \n          <b><code>latlon</code></b>'s datum (<a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>, \n          <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a> or <a \n          href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>Etm</code></strong> - Optional class to return the ETM coordinate (<a \n          href=\"pygeodesy.etm.Etm-class.html\" class=\"link\">Etm</a>) or \n          <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>falsed</code></strong> - False both easting and northing (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>strict</code></strong> - Restrict <b><code>lat</code></b> to UTM ranges \n          (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>zone</code></strong> - Optional UTM zone to enforce (<code>int</code> or \n          <code>str</code>).</li>\n        <li><strong class=\"pname\"><code>name_cmoff</code></strong> - Optional <b><code>Etm</code></b> <code><b>name</b>=NN</code> \n          (<code>str</code>) and DEPRECATED keyword argument \n          <code><b>cmoff</b>=True</code> to offset the longitude from the \n          zone's central meridian (<code>bool</code>), use \n          <b><code>falsed</code></b> instead.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The ETM coordinate as <b><code>Etm</code></b> or if \n          <code><b>Etm</b> is None</code> or not \n          <b><code>falsed</code></b>, a <a \n          href=\"pygeodesy.namedTuples.UtmUps8Tuple-class.html\" \n          class=\"link\">UtmUps8Tuple</a><code>(zone, hemipole, easting, \n          northing, band, datum, gamma, scale)</code>.  The \n          <code>hemipole</code> is the <code>'N'|'S'</code> hemisphere.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.etm.ETMError-class.html\">ETMError</a></strong></code> - No convergence transforming to ETM easting and northing.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.etm.ETMError-class.html\">ETMError</a></strong></code> - Invalid <b><code>zone</code></b> or near-spherical or incompatible \n        <b><code>datum</code></b> or <code>ellipsoid</code>.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.RangeError-class.html\">RangeError</a></strong></code> - If <b><code>lat</code></b> outside the valid UTM bands or if \n        <b><code>lat</code></b> or <b><code>lon</code></b> outside the \n        valid range and <a href=\"pygeodesy.errors-module.html#rangerrors\" \n        class=\"link\">rangerrors</a> is <code>True</code>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid or near-spherical <b><code>datum</code></b> or \n        <b><code>latlon</code></b> not ellipsoidal.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - The <b><code>lon</code></b> value is missing or \n        <b><code>latlon</code></b> is invalid.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toLcc\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toLcc</span>&nbsp;(<span class=\"sig-arg\">latlon</span>,\n        <span class=\"sig-arg\">conic</span>=<span class=\"sig-default\">Conic(name='WRF_Lb', lat0=40, lon0=-97, par1=33, par2=45, E0=0<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"sig-arg\">height</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">Lcc</span>=<span class=\"sig-default\">&lt;class 'pygeodesy.lcc.Lcc'&gt;</span>,\n        <span class=\"sig-arg\">**name_Lcc_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert an (ellipsoidal) geodetic point to a <i>Lambert</i> \n  location.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>latlon</code></strong> - Ellipsoidal point (<code>LatLon</code>).</li>\n        <li><strong class=\"pname\"><code>conic</code></strong> - Optional Lambert projection to use (<a \n          href=\"pygeodesy.lcc.Conic-class.html\" class=\"link\">Conic</a>).</li>\n        <li><strong class=\"pname\"><a href=pygeodesy.heights-module.html><code>height</code></a></strong> - Optional height for the point, overriding the default height \n          (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>Lcc</code></strong> - Class to return the <i>Lambert</i> location (<a \n          href=\"pygeodesy.lcc.Lcc-class.html\" class=\"link\">Lcc</a>).</li>\n        <li><strong class=\"pname\"><code>name_Lcc_kwds</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>) and \n          optionally, additional <b><code>Lcc</code></b> keyword arguments,\n          ignored if <b><code>Lcc</code> is None</b>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The <i>Lambert</i> location (<a \n          href=\"pygeodesy.lcc.Lcc-class.html\" class=\"link\">Lcc</a>) or if \n          <code><b>Lcc</b> is None</code>, an <a \n          href=\"pygeodesy.namedTuples.EasNor3Tuple-class.html\" \n          class=\"link\">EasNor3Tuple</a><code>(easting, northing, \n          height)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - If <b><code>latlon</code></b> is not ellipsoidal.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toMgrs\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toMgrs</span>&nbsp;(<span class=\"sig-arg\">utmups</span>,\n        <span class=\"sig-arg\">Mgrs</span>=<span class=\"sig-default\">&lt;class 'pygeodesy.mgrs.Mgrs'&gt;</span>,\n        <span class=\"sig-arg\">**name_Mgrs_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert a UTM or UPS coordinate to an MGRS grid reference.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>utmups</code></strong> - A UTM or UPS coordinate (<a href=\"pygeodesy.utm.Utm-class.html\" \n          class=\"link\">Utm</a>, <a href=\"pygeodesy.etm.Etm-class.html\" \n          class=\"link\">Etm</a> or <a href=\"pygeodesy.ups.Ups-class.html\" \n          class=\"link\">Ups</a>).</li>\n        <li><strong class=\"pname\"><code>Mgrs</code></strong> - Optional class to return the MGRS grid reference (<a \n          href=\"pygeodesy.mgrs.Mgrs-class.html\" class=\"link\">Mgrs</a>) or \n          <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>name_Mgrs_kwds</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>) and \n          optionally, additional <b><code>Mgrs</code></b> keyword \n          arguments, ignored if <code><b>Mgrs</b> is None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The MGRS grid reference as <b><code>Mgrs</code></b> or if \n          <code><b>Mgrs</b> is None</code> as an <a \n          href=\"pygeodesy.mgrs.Mgrs6Tuple-class.html\" \n          class=\"link\">Mgrs6Tuple</a><code>(zone, EN, easting, northing, \n          band, datum)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.MGRSError-class.html\">MGRSError</a></strong></code> - Invalid <b><code>utmups</code></b>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - If <b><code>utmups</code></b> is not <a \n        href=\"pygeodesy.utm.Utm-class.html\" class=\"link\">Utm</a>, <a \n        href=\"pygeodesy.etm.Etm-class.html\" class=\"link\">Etm</a> nor <a \n        href=\"pygeodesy.ups.Ups-class.html\" class=\"link\">Ups</a>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toOsgr\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toOsgr</span>&nbsp;(<span class=\"sig-arg\">latlon</span>,\n        <span class=\"sig-arg\">lon</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">kTM</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">datum</span>=<span class=\"sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"sig-arg\">Osgr</span>=<span class=\"sig-default\">&lt;class 'pygeodesy.osgr.Osgr'&gt;</span>,\n        <span class=\"sig-arg\">**prec_name_Osgr_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert a lat-/longitude point to an OSGR coordinate.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>latlon</code></strong> - Latitude (<code>degrees</code>) or an (ellipsoidal) geodetic \n          <code>LatLon</code> point.</li>\n        <li><strong class=\"pname\"><code>lon</code></strong> - Optional longitude in degrees (scalar or <code>None</code>).</li>\n        <li><strong class=\"pname\"><code>kTM</code></strong> - If <code>True</code>, use <i>Karney</i>'s Kr&#252;ger method from \n          module <a href=\"pygeodesy.ktm-module.html\" class=\"link\">ktm</a>, \n          otherwise use the Ordnance Survey formulation \n          (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>datum</code></strong> - Optional datum to convert <b><code>lat, lon</code></b> from (<a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>, \n          <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a> or <a \n          href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>Osgr</code></strong> - Optional class to return the OSGR coordinate (<a \n          href=\"pygeodesy.osgr.Osgr-class.html\" class=\"link\">Osgr</a>) or \n          <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>prec_name_Osgr_kwds</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>), optional\n          <a href=\"pygeodesy.utily-module.html#truncate\" \n          class=\"link\">truncate</a> precision \n          <code><b>prec</b>=ndigits</code> and additional \n          <b><code>Osgr</code></b> keyword arguments, ignored if \n          <code><b>Osgr</b> is None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>An (<b><code>Osgr</code></b>) instance or if <code><b>Osgr</b> is\n          None</code> an <a \n          href=\"pygeodesy.namedTuples.EasNor2Tuple-class.html\" \n          class=\"link\">EasNor2Tuple</a><code>(easting, northing)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.osgr.OSGRError-class.html\">OSGRError</a></strong></code> - Invalid <b><code>latlon</code></b> or <b><code>lon</code></b>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Non-ellipsoidal <b><code>latlon</code></b> or invalid \n        <b><code>datum</code></b>, <b><code>Osgr</code></b>, \n        <b><code>Osgr_kwds</code></b> or conversion to \n        <code>Datums.OSGB36</code> failed.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        If <a href=\"pygeodesy.basics-module.html#isint\" \n        class=\"link\">isint</a><code>(<b>prec</b>)</code> both easting and \n        northing are <a href=\"pygeodesy.utily-module.html#truncate\" \n        class=\"link\">truncate</a>d to the given number of digits.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"toUps8\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toUps8</span>&nbsp;(<span class=\"sig-arg\">latlon</span>,\n        <span class=\"sig-arg\">lon</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">datum</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">Ups</span>=<span class=\"sig-default\">&lt;class 'pygeodesy.ups.Ups'&gt;</span>,\n        <span class=\"sig-arg\">pole</span>=<span class=\"sig-default\">''</span>,\n        <span class=\"sig-arg\">falsed</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">strict</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert a lat-/longitude point to a UPS coordinate.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>latlon</code></strong> - Latitude (<code>degrees</code>) or an (ellipsoidal) geodetic \n          <code>LatLon</code> point.</li>\n        <li><strong class=\"pname\"><code>lon</code></strong> - Optional longitude (<code>degrees</code>) or <code>None</code> if\n          <b><code>latlon</code></b> is a <code>LatLon</code>.</li>\n        <li><strong class=\"pname\"><code>datum</code></strong> - Optional datum for this UPS coordinate, overriding \n          <b><code>latlon</code></b>'s datum (<code>Datum</code>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a> or <a \n          href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>Ups</code></strong> - Optional class to return the UPS coordinate (<a \n          href=\"pygeodesy.ups.Ups-class.html\" class=\"link\">Ups</a>) or \n          <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>pole</code></strong> - Optional top/center of (stereographic) projection \n          (<code>str</code>, <code>'N[orth]'</code> or \n          <code>'S[outh]'</code>).</li>\n        <li><strong class=\"pname\"><code>falsed</code></strong> - If <code>True</code>, false both easting and northing \n          (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>strict</code></strong> - Restrict <b><code>lat</code></b> to UPS ranges \n          (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <b><code>Ups</code></b> <code><b>name</b>=NN</code> \n          (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The UPS coordinate (<b><code>Ups</code></b>) or if \n          <code><b>Ups</b> is None</code>, a <a \n          href=\"pygeodesy.namedTuples.UtmUps8Tuple-class.html\" \n          class=\"link\">UtmUps8Tuple</a><code>(zone, hemipole, easting, \n          northing, band, datum, gamma, scale)</code> where \n          <code>hemipole</code> is the <code>'N'|'S'</code> pole, the UPS \n          projection top/center.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.RangeError-class.html\">RangeError</a></strong></code> - If <b><code>strict</code></b> and <b><code>lat</code></b> outside \n        the valid UPS bands or if <b><code>lat</code></b> or \n        <b><code>lon</code></b> outside the valid range and <a \n        href=\"pygeodesy.errors-module.html#rangerrors\" \n        class=\"link\">rangerrors</a> is <code>True</code>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - If <b><code>latlon</code></b> is not ellipsoidal or if \n        <b><code>datum</code></b> is invalid.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - If <b><code>lon</code></b> value is missing or if \n        <b><code>latlon</code></b> is invalid.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <i>Karney</i>'s C++ class <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1UPS.html\"\n        target=\"_top\">UPS</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"toUtm\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toUtm</span>&nbsp;(<span class=\"sig-arg\">latlon</span>,\n        <span class=\"sig-arg\">lon</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">datum</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">Utm</span>=<span class=\"sig-default\">_UTM</span>,\n        <span class=\"sig-arg\">cmoff</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">name</span>=<span class=\"sig-default\">''</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use function <a href=\"pygeodesy.utm-module.html#toUtm8\" \n  class=\"link\">pygeodesy.toUtm8</a>.</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd>The UTM coordinate (<b><code>Utm</code></b>) or a 6-tuple \n          <code>(zone, easting, northing, band, convergence, scale)</code> \n          if <code><b>Utm</b> is None</code> or <code><b>cmoff</b> is \n          False</code>.</dd>\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toUtm8\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toUtm8</span>&nbsp;(<span class=\"sig-arg\">latlon</span>,\n        <span class=\"sig-arg\">lon</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">datum</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">Utm</span>=<span class=\"sig-default\">&lt;class 'pygeodesy.utm.Utm'&gt;</span>,\n        <span class=\"sig-arg\">falsed</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">strict</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">zone</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**name_cmoff</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert a lat-/longitude point to a UTM coordinate.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>latlon</code></strong> - Latitude (<code>degrees</code>) or an (ellipsoidal) geodetic \n          <code>LatLon</code> point.</li>\n        <li><strong class=\"pname\"><code>lon</code></strong> - Longitude (<code>degrees</code>), required if \n          <b><code>latlon</code></b> is <code>degrees</code>, ignored \n          otherwise.</li>\n        <li><strong class=\"pname\"><code>datum</code></strong> - Optional datum for this UTM coordinate, overriding \n          <b><code>latlon</code></b>'s datum (<a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>, \n          <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a> or <a \n          href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>Utm</code></strong> - Optional class to return the UTM coordinate (<a \n          href=\"pygeodesy.utm.Utm-class.html\" class=\"link\">Utm</a>) or \n          <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>falsed</code></strong> - If <code>True</code>, false both easting and northing \n          (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>strict</code></strong> - If <code>True</code>, restrict <b><code>lat</code></b> to UTM \n          ranges (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>zone</code></strong> - Optional UTM zone to enforce (<code>int</code> or \n          <code>str</code>).</li>\n        <li><strong class=\"pname\"><code>name_cmoff</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>) and \n          DEPRECATED keyword argument <code><b>cmoff</b>=True</code> to \n          offset the longitude from the zone's central meridian \n          (<code>bool</code>), use <code><b>falsed</b></code> instead.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The UTM coordinate (<b><code>Utm</code></b>) or if \n          <code><b>Utm</b> is None</code> or <code><b>falsed</b> is \n          False</code>, a <a \n          href=\"pygeodesy.namedTuples.UtmUps8Tuple-class.html\" \n          class=\"link\">UtmUps8Tuple</a><code>(zone, hemipole, easting, \n          northing, band, datum, gamma, scale)</code> where \n          <code>hemipole</code> is the <code>'N'|'S'</code> hemisphere.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.RangeError-class.html\">RangeError</a></strong></code> - If <b><code>lat</code></b> outside the valid UTM bands or if \n        <b><code>lat</code></b> or <b><code>lon</code></b> outside the \n        valid range and <a href=\"pygeodesy.errors-module.html#rangerrors\" \n        class=\"link\">rangerrors</a> is <code>True</code>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>datum</code></b> or <b><code>latlon</code></b> not\n        ellipsoidal.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.utm.UTMError-class.html\">UTMError</a></strong></code> - Invalid <b><code>zone</code></b>.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - If <b><code>lon</code></b> is missing or <b><code>latlon</code></b>\n        is invalid.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        Implements Karney&#8217;s method, using 8-th order Kr&#252;ger series, giving \n        results accurate to 5 nm (or better) for distances up to 3,900 Km \n        from the central meridian.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"toUtmUps8\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toUtmUps8</span>&nbsp;(<span class=\"sig-arg\">latlon</span>,\n        <span class=\"sig-arg\">lon</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">datum</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">falsed</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">Utm</span>=<span class=\"sig-default\">&lt;class 'pygeodesy.utm.Utm'&gt;</span>,\n        <span class=\"sig-arg\">Ups</span>=<span class=\"sig-default\">&lt;class 'pygeodesy.ups.Ups'&gt;</span>,\n        <span class=\"sig-arg\">pole</span>=<span class=\"sig-default\">''</span>,\n        <span class=\"sig-arg\">**name_cmoff</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert a lat-/longitude point to a UTM or UPS coordinate.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>latlon</code></strong> - Latitude (<code>degrees</code>) or an (ellipsoidal) geodetic \n          <code>LatLon</code> point.</li>\n        <li><strong class=\"pname\"><code>lon</code></strong> - Longitude (<code>degrees</code>), required if \n          <b><code>latlon</code></b> is <code>degrees</code>, ignored \n          otherwise.</li>\n        <li><strong class=\"pname\"><code>datum</code></strong> - Optional datum to use this UTM coordinate, overriding the \n          <b><code>latlon</code></b>'s datum (<code>Datum</code>).</li>\n        <li><strong class=\"pname\"><code>falsed</code></strong> - If <code>True</code>, false both easting and northing \n          (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>Utm</code></strong> - Optional class to return the UTM coordinate (<a \n          href=\"pygeodesy.utm.Utm-class.html\" class=\"link\">Utm</a>) or \n          <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>Ups</code></strong> - Optional class to return the UPS coordinate (<a \n          href=\"pygeodesy.ups.Ups-class.html\" class=\"link\">Ups</a>) or \n          <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>pole</code></strong> - Optional top/center of UPS (stereographic) projection \n          (<code>str</code>, <code>'N[orth]'</code> or \n          <code>'S[outh]'</code>).</li>\n        <li><strong class=\"pname\"><code>name_cmoff</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>) and \n          DEPRECATED keyword argument <code><b>cmoff</b>=True</code> to \n          offset the longitude from the zone's central meridian \n          (<code>bool</code>), use <b><code>falsed</code></b> instead and \n          <i>for UTM only</i>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The UTM or UPS coordinate (<b><code>Utm</code></b> respectively \n          <b><code>Ups</code></b>) or a <a \n          href=\"pygeodesy.namedTuples.UtmUps8Tuple-class.html\" \n          class=\"link\">UtmUps8Tuple</a><code>(zone, hemipole, easting, \n          northing, band, datum, gamma, scale)</code> if \n          <b><code>Utm</code></b> respectively <code><b>Ups</b> is \n          None</code> or if <code><b>falsed</b> is False</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.RangeError-class.html\">RangeError</a></strong></code> - If <b><code>lat</code></b> outside the valid UTM or UPS bands or if\n        <b><code>lat</code></b> or <b><code>lon</code></b> outside the \n        valid range and <a href=\"pygeodesy.errors-module.html#rangerrors\" \n        class=\"link\">rangerrors</a> is <code>True</code>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - If <b><code>latlon</code></b> is not ellipsoidal or \n        <b><code>lon</code></b> is missing or <b><code>datum</code></b> is \n        invalid.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.utmups.UTMUPSError-class.html\">UTMUPSError</a></strong></code> - UTM or UPS validation failed.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>lat</code></b> or <b><code>lon</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Functions <a href=\"pygeodesy.utm-module.html#toUtm8\" \n        class=\"link\">pygeodesy.toUtm8</a> and <a \n        href=\"pygeodesy.ups-module.html#toUps8\" \n        class=\"link\">pygeodesy.toUps8</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"toWm\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toWm</span>&nbsp;(<span class=\"sig-arg\">latlon</span>,\n        <span class=\"sig-arg\">lon</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">earth</span>=<span class=\"sig-default\">6378137.0</span>,\n        <span class=\"sig-arg\">Wm</span>=<span class=\"sig-default\">&lt;class 'pygeodesy.webmercator.Wm'&gt;</span>,\n        <span class=\"sig-arg\">**name_Wm_kwds_radius</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert a lat-/longitude point to a WM coordinate.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>latlon</code></strong> - Latitude (<code>degrees</code>) or an (ellipsoidal or spherical) \n          geodetic <code>LatLon</code> point.</li>\n        <li><strong class=\"pname\"><code>lon</code></strong> - Optional longitude (<code>degrees</code> or <code>None</code>).</li>\n        <li><strong class=\"pname\"><code>earth</code></strong> - Earth radius (<code>meter</code>), datum or ellipsoid (<a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>, \n          <a href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a> or <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a>), overridden by \n          <b><code>latlon</code></b>'s datum if present.</li>\n        <li><strong class=\"pname\"><code>Wm</code></strong> - Optional class to return the WM coordinate (<a \n          href=\"pygeodesy.webmercator.Wm-class.html\" class=\"link\">Wm</a>) \n          or <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>name_Wm_kwds_radius</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>), \n          optionally, additional <b><code>Wm</code></b> keyword arguments, \n          ignored if <code><b>Wm</b> is None</code> and DEPRECATED keyword \n          argument <code><b>radius</b>=earth</code>, use \n          <b><code>earth</code></b>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The WM coordinate (<b><code>Wm</code></b>) or if <code><b>Wm</b> \n          is None</code>, an <a \n          href=\"pygeodesy.webmercator.EasNorRadius3Tuple-class.html\" \n          class=\"link\">EasNorRadius3Tuple</a><code>(easting, northing, \n          radius)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ValueError</strong></code> - If <b><code>earth</code></b> is invalid, if <b><code>lon</code></b>\n        value is missing, if <b><code>latlon</code></b> is not scalar, or \n        if <b><code>latlon</code></b> is beyond the valid WM range and <a \n        href=\"pygeodesy.errors-module.html#rangerrors\" \n        class=\"link\">rangerrrors</a> is <code>True</code>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toise2m\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toise2m</span>&nbsp;(<span class=\"sig-arg\">toises</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert a length in French <a href=\"https://WikiPedia.org/wiki/Toise\" \n  target=\"_top\">toises</a> to meter.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>toises</code></strong> - Length in toises (<code>scalar</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Length in <code>meter</code> (<code>float</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>toises</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.utily-module.html#fathom2m\" \n        class=\"link\">fathom2m</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"trfTransform0\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">trfTransform0</span>&nbsp;(<span class=\"sig-arg\">reframe</span>,\n        <span class=\"sig-arg\">reframe2</span>,\n        <span class=\"sig-arg\">epoch</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">epoch2</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">indirect</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">inverse</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">exhaust</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Get a Helmert transform to convert one <code>reframe</code> observed \n  at <code>epoch</code> to an other <code>reframe2</code> at observed at \n  <code>epoch2 or epoch</code>.</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.trf.TransformXform-class.html\" \n          class=\"link\">TransformXform</a> instance, a <code>0-tuple</code> \n          for <i>unity, identity</i> or <code>None</code> if no conversion \n          exists.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.trf-module.html#trfTransforms\" \n        class=\"link\">trfTransforms</a> for futher details.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"trfTransforms\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">trfTransforms</span>&nbsp;(<span class=\"sig-arg\">reframe</span>,\n        <span class=\"sig-arg\">reframe2</span>,\n        <span class=\"sig-arg\">epoch</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">epoch2</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">indirect</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">inverse</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">exhaust</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Yield all Helmert transform to convert one <code>reframe</code> \n  observed at <code>epoch</code> to an other <code>reframe2</code> at \n  observed at <code>epoch2 or epoch</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>reframe</code></strong> - The frame to convert <i>from</i> (<a \n          href=\"pygeodesy.trf.RefFrame-class.html\" \n          class=\"link\">RefFrame</a> or <code>str</code>).</li>\n        <li><strong class=\"pname\"><code>reframe2</code></strong> - The frame to convert <i>to</i> (<a \n          href=\"pygeodesy.trf.RefFrame-class.html\" \n          class=\"link\">RefFrame</a> or <code>str</code>).</li>\n        <li><strong class=\"pname\"><code>epoch</code></strong> - Epoch to observe <i>from</i> (<a \n          href=\"pygeodesy.units.Epoch-class.html\" class=\"link\">Epoch</a>, \n          <code>scalar</code> or <code>str</code>), otherwise \n          <code><b>reframe</b></code>'s <code>epoch</code>.</li>\n        <li><strong class=\"pname\"><code>epoch2</code></strong> - Optional epoch to observe <i>to</i> (<a \n          href=\"pygeodesy.units.Epoch-class.html\" class=\"link\">Epoch</a>, \n          <code>scalar</code> or <code>str</code>), otherwise \n          <b><code>epoch</code></b>.</li>\n        <li><strong class=\"pname\"><code>indirect</code></strong> - If <code>True</code>, include transforms via <i>one</i> \n          intermediate reframe, otherwise only <i>direct</i> \n          <b><code>reframe</code></b> to <b><code>reframe2</code></b> \n          transforms (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>inverse</code></strong> - If <code>True</code>, include inverse, otherwise only forward \n          transforms (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>exhaust</code></strong> - If <code>True</code>, exhaustively generate all transforms, \n          forward and inverse and via any number of intermediate reframes \n          (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.trf.TransformXform-class.html\" \n          class=\"link\">TransformXform</a> instance for each available \n          conversion, without duplicates.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.TRFError-class.html\">TRFError</a></strong></code> - Invalid <b><code>reframe</code></b>, <b><code>reframe2</code></b>, \n        <b><code>epoch</code></b> or <b><code>epoch2</code></b>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>reframe</code></b> or \n        <b><code>reframe2</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"trfXform\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">trfXform</span>&nbsp;(<span class=\"sig-arg\">reframe1</span>,\n        <span class=\"sig-arg\">reframe2</span>,\n        <span class=\"sig-arg\">epoch</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">xform</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">rates</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">raiser</span>=<span class=\"sig-default\">True</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Define a new Terrestrial Reference Frame (TRF) converter or get an \n  existing one.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>reframe1</code></strong> - Source frame (<a href=\"pygeodesy.trf.RefFrame-class.html\" \n          class=\"link\">RefFrame</a> or <code>str</code>), converting \n          <i>from</i>.</li>\n        <li><strong class=\"pname\"><code>reframe2</code></strong> - Destination frame (<a href=\"pygeodesy.trf.RefFrame-class.html\" \n          class=\"link\">RefFrame</a> or <code>str</code>), converting \n          <i>to</i>.</li>\n        <li><strong class=\"pname\"><code>epoch</code></strong> - Epoch, a fractional year (<a \n          href=\"pygeodesy.units.Epoch-class.html\" class=\"link\">Epoch</a>, \n          <code>scalar</code> or <code>str</code>) or <code>None</code> for\n          <code><b>reframe2</b></code>'s epoch.</li>\n        <li><strong class=\"pname\"><code>xform</code></strong> - <i>Transform</i> parameters (<a \n          href=\"pygeodesy.trf.TRFXform7Tuple-class.html\" \n          class=\"link\">TRFXform7Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>rates</code></strong> - <i>Rate</i> parameters (<a \n          href=\"pygeodesy.trf.TRFXform7Tuple-class.html\" \n          class=\"link\">TRFXform7Tuple</a>), as <b><code>xform</code></b>, \n          but in <code>units-per-year</code>.</li>\n        <li><strong class=\"pname\"><code>raiser</code></strong> - If <code>False</code>, do not raise an error if the converter \n          exists, replace it (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The new TRF converter (<a \n          href=\"pygeodesy.trf.TRFXform-class.html\" \n          class=\"link\">TRFXform</a>) or if no <b><code>epoch</code></b>, \n          <b><code>xform</code></b> and <b><code>rates</code></b> are \n          given, return the existing one (<a \n          href=\"pygeodesy.trf.TRFXform-class.html\" \n          class=\"link\">TRFXform</a>) or <code>None</code> if not available.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.TRFError-class.html\">TRFError</a></strong></code> - Invalid <b><code>reframe1</code></b>, <b><code>reframe2</code></b>,\n        <b><code>epoch</code></b>, <b><code>xform</code></b> or \n        <b><code>rates</code></b> or the TRF converter already exists.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"triAngle\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">triAngle</span>&nbsp;(<span class=\"sig-arg\">a</span>,\n        <span class=\"sig-arg\">b</span>,\n        <span class=\"sig-arg\">c</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute one angle of a triangle.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>a</code></strong> - Adjacent triangle side length (<code>scalar</code>, non-negative \n          <code>meter</code>, conventionally).</li>\n        <li><strong class=\"pname\"><code>b</code></strong> - Adjacent triangle side length (<code>scalar</code>, non-negative \n          <code>meter</code>, conventionally).</li>\n        <li><strong class=\"pname\"><code>c</code></strong> - Opposite triangle side length (<code>scalar</code>, non-negative \n          <code>meter</code>, conventionally).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Angle in <code>radians</code> at triangle corner <code>C</code>, \n          opposite triangle side <b><code>c</code></b>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.TriangleError-class.html\">TriangleError</a></strong></code> - Invalid or negative <b><code>a</code></b>, <b><code>b</code></b> or\n        <b><code>c</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Functions <a href=\"pygeodesy.resections-module.html#triAngle5\" \n        class=\"link\">triAngle5</a> and <a \n        href=\"pygeodesy.resections-module.html#triSide\" \n        class=\"link\">triSide</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"triAngle4\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">triAngle4</span>&nbsp;(<span class=\"sig-arg\">a</span>,\n        <span class=\"sig-arg\">b</span>,\n        <span class=\"sig-arg\">c</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED on 2023.09.14, use function <a \n  href=\"pygeodesy.resections-module.html#triAngle5\" \n  class=\"link\">pygeodesy.triAngle5</a>.</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd>A <i>DEPRECATED</i> <a \n          href=\"pygeodesy.deprecated.classes.TriAngle4Tuple-class.html\" \n          class=\"link\">TriAngle4Tuple</a><code>(radA, radB, radC, \n          rIn)</code>.</dd>\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"triAngle5\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">triAngle5</span>&nbsp;(<span class=\"sig-arg\">a</span>,\n        <span class=\"sig-arg\">b</span>,\n        <span class=\"sig-arg\">c</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the angles of a triangle.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>a</code></strong> - Length of the triangle side opposite of triangle corner \n          <code>A</code> (<code>scalar</code>, non-negative \n          <code>meter</code>, conventionally).</li>\n        <li><strong class=\"pname\"><code>b</code></strong> - Length of the triangle side opposite of triangle corner \n          <code>B</code> (<code>scalar</code>, non-negative \n          <code>meter</code>, conventionally).</li>\n        <li><strong class=\"pname\"><code>c</code></strong> - Length of the triangle side opposite of triangle corner \n          <code>C</code> (<code>scalar</code>, non-negative \n          <code>meter</code>, conventionally).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><a href=\"pygeodesy.resections.TriAngle5Tuple-class.html\" \n          class=\"link\">TriAngle5Tuple</a><code>(radA, radB, radC, rIn, \n          area)</code> with angles <code>radA</code>, <code>radB</code> and\n          <code>radC</code> at triangle corners <code>A</code>, \n          <code>B</code> and <code>C</code>, all in <code>radians</code>, \n          the <code>InCircle</code> radius <code>rIn</code> aka \n          <code>inradius</code>, same units as triangle sides \n          <b><code>a</code></b>, <b><code>b</code></b> and \n          <b><code>c</code></b> and the triangle <code>area</code> in the \n          same units <i>squared</i>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.TriangleError-class.html\">TriangleError</a></strong></code> - Invalid or negative <b><code>a</code></b>, <b><code>b</code></b> or\n        <b><code>c</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Functions <a href=\"pygeodesy.resections-module.html#triAngle\" \n        class=\"link\">triAngle</a> and <a \n        href=\"pygeodesy.resections-module.html#triArea\" \n        class=\"link\">triArea</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"triArea\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">triArea</span>&nbsp;(<span class=\"sig-arg\">a</span>,\n        <span class=\"sig-arg\">b</span>,\n        <span class=\"sig-arg\">c</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the area of a triangle using <a \n  href=\"https://WikiPedia.org/wiki/Heron%27s_formula\" \n  target=\"_top\">Heron's</a> <code>stable</code> formula.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>a</code></strong> - Length of the triangle side opposite of triangle corner \n          <code>A</code> (<code>scalar</code>, non-negative \n          <code>meter</code>, conventionally).</li>\n        <li><strong class=\"pname\"><code>b</code></strong> - Length of the triangle side opposite of triangle corner \n          <code>B</code> (<code>scalar</code>, non-negative \n          <code>meter</code>, conventionally).</li>\n        <li><strong class=\"pname\"><code>c</code></strong> - Length of the triangle side opposite of triangle corner \n          <code>C</code> (<code>scalar</code>, non-negative \n          <code>meter</code>, conventionally).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The triangle area (<code>float</code>, conventionally \n          <code>meter</code> or same units as <b><code>a</code></b>, \n          <b><code>b</code></b> and <b><code>c</code></b> <i>squared</i>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.TriangleError-class.html\">TriangleError</a></strong></code> - Invalid or negative <b><code>a</code></b>, <b><code>b</code></b> or\n        <b><code>c</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"triSide\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">triSide</span>&nbsp;(<span class=\"sig-arg\">a</span>,\n        <span class=\"sig-arg\">b</span>,\n        <span class=\"sig-arg\">radC</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute one side of a triangle.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>a</code></strong> - Adjacent triangle side length (<code>scalar</code>, non-negative \n          <code>meter</code>, conventionally).</li>\n        <li><strong class=\"pname\"><code>b</code></strong> - Adjacent triangle side length (<code>scalar</code>, non-negative \n          <code>meter</code>, conventionally).</li>\n        <li><strong class=\"pname\"><code>radC</code></strong> - Angle included by sides <b><code>a</code></b> and \n          <b><code>b</code></b>, opposite triangle side <code>c</code> \n          (<code>radians</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Length of triangle side <code>c</code>, opposite triangle corner \n          <code>C</code> and angle <b><code>radC</code></b>, same units as \n          <b><code>a</code></b> and <b><code>b</code></b>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.TriangleError-class.html\">TriangleError</a></strong></code> - Invalid <b><code>a</code></b>, <b><code>b</code></b> or \n        <b><code>radC</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Functions <a href=\"pygeodesy.fmath-module.html#sqrt_a\" \n        class=\"link\">sqrt_a</a>, <a \n        href=\"pygeodesy.resections-module.html#triAngle\" \n        class=\"link\">triAngle</a>, <a \n        href=\"pygeodesy.resections-module.html#triSide2\" \n        class=\"link\">triSide2</a> and <a \n        href=\"pygeodesy.resections-module.html#triSide4\" \n        class=\"link\">triSide4</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"triSide2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">triSide2</span>&nbsp;(<span class=\"sig-arg\">b</span>,\n        <span class=\"sig-arg\">c</span>,\n        <span class=\"sig-arg\">radB</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute a side and its opposite angle of a triangle.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>b</code></strong> - Adjacent triangle side length (<code>scalar</code>, non-negative \n          <code>meter</code>, conventionally).</li>\n        <li><strong class=\"pname\"><code>c</code></strong> - Adjacent triangle side length (<code>scalar</code>, non-negative \n          <code>meter</code>, conventionally).</li>\n        <li><strong class=\"pname\"><code>radB</code></strong> - Angle included by sides <b><code>a</code></b> and \n          <b><code>c</code></b>, opposite triangle side <code>b</code> \n          (<code>radians</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><a href=\"pygeodesy.resections.TriSide2Tuple-class.html\" \n          class=\"link\">TriSide2Tuple</a><code>(a, radA)</code> with \n          triangle angle <code>radA</code> in <code>radians</code> and \n          length of the opposite triangle side <code>a</code>, same units \n          as <b><code>b</code></b> and <b><code>c</code></b>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.TriangleError-class.html\">TriangleError</a></strong></code> - Invalid <b><code>b</code></b> or <b><code>c</code></b> or either \n        <b><code>b</code></b> or <b><code>radB</code></b> near zero.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Functions <a href=\"pygeodesy.fmath-module.html#sqrt_a\" \n        class=\"link\">sqrt_a</a>, <a \n        href=\"pygeodesy.resections-module.html#triSide\" \n        class=\"link\">triSide</a> and <a \n        href=\"pygeodesy.resections-module.html#triSide4\" \n        class=\"link\">triSide4</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"triSide4\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">triSide4</span>&nbsp;(<span class=\"sig-arg\">radA</span>,\n        <span class=\"sig-arg\">radB</span>,\n        <span class=\"sig-arg\">c</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute two sides and the height of a triangle.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>radA</code></strong> - Angle at triangle corner <code>A</code>, opposite triangle side \n          <code>a</code> (non-negative <code>radians</code>).</li>\n        <li><strong class=\"pname\"><code>radB</code></strong> - Angle at triangle corner <code>B</code>, opposite triangle side \n          <code>b</code> (non-negative <code>radians</code>).</li>\n        <li><strong class=\"pname\"><code>c</code></strong> - Length of triangle side between triangle corners <code>A</code> \n          and <code>B</code>, (<code>scalar</code>, non-negative \n          <code>meter</code>, conventionally).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><a href=\"pygeodesy.resections.TriSide4Tuple-class.html\" \n          class=\"link\">TriSide4Tuple</a><code>(a, b, radC, d)</code> with \n          triangle sides <code>a</code> and <code>b</code> and triangle \n          height <code>d</code> perpendicular to triangle side \n          <b><code>c</code></b>, all in the same units as \n          <b><code>c</code></b> and interior angle <code>radC</code> in \n          <code>radians</code> at triangle corner <code>C</code>, opposite \n          triangle side <b><code>c</code></b>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.TriangleError-class.html\">TriangleError</a></strong></code> - Invalid or negative <b><code>radA</code></b>, \n        <b><code>radB</code></b> or <b><code>c</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"https://WikiPedia.org/wiki/Triangulation_(surveying)\" \n        target=\"_top\">Triangulation, Surveying</a> and functions <a \n        href=\"pygeodesy.fmath-module.html#sqrt_a\" class=\"link\">sqrt_a</a>, \n        <a href=\"pygeodesy.resections-module.html#triSide\" \n        class=\"link\">triSide</a> and <a \n        href=\"pygeodesy.resections-module.html#triSide2\" \n        class=\"link\">triSide2</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"triaxum5\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">triaxum5</span>&nbsp;(<span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">useZ</span>=<span class=\"sig-default\">True</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Best-fit a triaxial ellipsoid through three or more (3-D) points.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>points</code></strong> - Iterable of points (each a <code>Cartesian</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <code>Vector3Tuple</code> or \n          <code>Vector4Tuple</code>).</li>\n        <li><strong class=\"pname\"><code>useZ</code></strong> - If <code>True</code>, use the points' Z component, otherwise \n          force <code>z=INT0</code> (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><a href=\"pygeodesy.vector2d.Triaxum5Tuple-class.html\" \n          class=\"link\">Triaxum5Tuple</a><code>(a, b, c, rank, \n          residuals)</code> with the unordered triaxial radii \n          <code>a</code>, <code>b</code> and <code>c</code> in \n          <code>meter</code>, same units as the points' coordinates.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ImportError</strong></code> - Package <code>numpy</code> not found, not installed or older than \n        version 1.10.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.NumPyError-class.html\">NumPyError</a></strong></code> - Some <code>numpy</code> issue.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.PointsError-class.html\">PointsError</a></strong></code> - Too few <b><code>points</code></b>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - One of the <b><code>points</code></b> is invalid.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <i>Charles Jekel</i>'s <a \n        href=\"https://Jekel.me/2020/Least-Squares-Ellipsoid-Fit/\" \n        target=\"_top\">&quot;Least Squares Ellipsoid Fit&quot;</a> and <a \n        href=\"https://NumPy.org/doc/stable/reference/generated/numpy.linalg.lstsq.html\"\n        target=\"_top\">numpy.linalg.lstsq</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"trilaterate2d2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">trilaterate2d2</span>&nbsp;(<span class=\"sig-arg\">x1</span>,\n        <span class=\"sig-arg\">y1</span>,\n        <span class=\"sig-arg\">radius1</span>,\n        <span class=\"sig-arg\">x2</span>,\n        <span class=\"sig-arg\">y2</span>,\n        <span class=\"sig-arg\">radius2</span>,\n        <span class=\"sig-arg\">x3</span>,\n        <span class=\"sig-arg\">y3</span>,\n        <span class=\"sig-arg\">radius3</span>,\n        <span class=\"sig-arg\">eps</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**Vector_and_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Trilaterate three circles, each given as a (2-D) center and a \n  radius.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>x1</code></strong> - Center <code>x</code> coordinate of the 1st circle \n          (<code>scalar</code>).</li>\n        <li><strong class=\"pname\"><code>y1</code></strong> - Center <code>y</code> coordinate of the 1st circle \n          (<code>scalar</code>).</li>\n        <li><strong class=\"pname\"><code>radius1</code></strong> - Radius of the 1st circle (<code>scalar</code>).</li>\n        <li><strong class=\"pname\"><code>x2</code></strong> - Center <code>x</code> coordinate of the 2nd circle \n          (<code>scalar</code>).</li>\n        <li><strong class=\"pname\"><code>y2</code></strong> - Center <code>y</code> coordinate of the 2nd circle \n          (<code>scalar</code>).</li>\n        <li><strong class=\"pname\"><code>radius2</code></strong> - Radius of the 2nd circle (<code>scalar</code>).</li>\n        <li><strong class=\"pname\"><code>x3</code></strong> - Center <code>x</code> coordinate of the 3rd circle \n          (<code>scalar</code>).</li>\n        <li><strong class=\"pname\"><code>y3</code></strong> - Center <code>y</code> coordinate of the 3rd circle \n          (<code>scalar</code>).</li>\n        <li><strong class=\"pname\"><code>radius3</code></strong> - Radius of the 3rd circle (<code>scalar</code>).</li>\n        <li><strong class=\"pname\"><code>eps</code></strong> - Tolerance to check the trilaterated point <i>delta</i> on all 3 \n          circles (<code>scalar</code>) or <code>None</code> for no \n          checking.</li>\n        <li><strong class=\"pname\"><code>Vector_and_kwds</code></strong> - Optional class <code><b>Vector</b>=None</code> to return the \n          trilateration and optionally, additional \n          <b><code>Vector</code></b> keyword arguments).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Trilaterated point as <code><b>Vector</b>(x, y, \n          **<b>Vector_kwds</b>)</code> or <a \n          href=\"pygeodesy.namedTuples.Vector2Tuple-class.html\" \n          class=\"link\">Vector2Tuple</a><code>(x, y)</code> if \n          <code><b>Vector</b> is None</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.IntersectionError-class.html\">IntersectionError</a></strong></code> - No intersection, near-concentric or -colinear centers, \n        trilateration failed some other way or the trilaterated point is \n        off one circle by more than <b><code>eps</code></b>.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.UnitError-class.html\">UnitError</a></strong></code> - Invalid <b><code>radius1</code></b>, <b><code>radius2</code></b> or\n        <b><code>radius3</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"https://GitHub.com/mrJean1/PyGeodesy/issues/49\" \n        target=\"_top\">Issue #49</a>, <a \n        href=\"https://math.StackExchange.com/questions/884807\" \n        target=\"_top\">Find X location using 3 known (X,Y) location using \n        trilateration</a> and function <a \n        href=\"pygeodesy.vector3d-module.html#trilaterate3d2\" \n        class=\"link\">pygeodesy.trilaterate3d2</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"trilaterate3d2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">trilaterate3d2</span>&nbsp;(<span class=\"sig-arg\">center1</span>,\n        <span class=\"sig-arg\">radius1</span>,\n        <span class=\"sig-arg\">center2</span>,\n        <span class=\"sig-arg\">radius2</span>,\n        <span class=\"sig-arg\">center3</span>,\n        <span class=\"sig-arg\">radius3</span>,\n        <span class=\"sig-arg\">eps</span>=<span class=\"sig-default\">2.220446049250313e-16</span>,\n        <span class=\"sig-arg\">**Vector_and_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Trilaterate three spheres, each given as a (3-D) center and a \n  radius.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>center1</code></strong> - Center of the 1st sphere (<code>Cartesian</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <code>Vector3Tuple</code> or \n          <code>Vector4Tuple</code>).</li>\n        <li><strong class=\"pname\"><code>radius1</code></strong> - Radius of the 1st sphere (same <code>units</code> as \n          <code>x</code>, <code>y</code> and <code>z</code>).</li>\n        <li><strong class=\"pname\"><code>center2</code></strong> - Center of the 2nd sphere (<code>Cartesian</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <code>Vector3Tuple</code> or \n          <code>Vector4Tuple</code>).</li>\n        <li><strong class=\"pname\"><code>radius2</code></strong> - Radius of this sphere (same <code>units</code> as <code>x</code>,\n          <code>y</code> and <code>z</code>).</li>\n        <li><strong class=\"pname\"><code>center3</code></strong> - Center of the 3rd sphere (<code>Cartesian</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <code>Vector3Tuple</code> or \n          <code>Vector4Tuple</code>).</li>\n        <li><strong class=\"pname\"><code>radius3</code></strong> - Radius of the 3rd sphere (same <code>units</code> as \n          <code>x</code>, <code>y</code> and <code>z</code>).</li>\n        <li><strong class=\"pname\"><code>eps</code></strong> - Pertubation tolerance (<code>scalar</code>), same units as \n          <code>x</code>, <code>y</code> and <code>z</code> or \n          <code>None</code> for no pertubations.</li>\n        <li><strong class=\"pname\"><code>Vector_and_kwds</code></strong> - Optional class <code><b>Vector</b>=None</code> to return the \n          trilateration and optionally, additional \n          <b><code>Vector</code></b> keyword arguments, otherwise \n          <b><code>center1</code></b>'s (sub-)class.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>2-Tuple with two trilaterated points, each a \n          <b><code>Vector</code></b> instance.  Both points are the same \n          instance if all three spheres abut/intersect in a single point.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ImportError</strong></code> - Package <code>numpy</code> not found, not installed or older than \n        version 1.10.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.IntersectionError-class.html\">IntersectionError</a></strong></code> - Near-concentric, -colinear, too distant or non-intersecting \n        spheres.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.NumPyError-class.html\">NumPyError</a></strong></code> - Some <code>numpy</code> issue.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>center1</code></b>, <b><code>center2</code></b> or\n        <b><code>center3</code></b>.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.UnitError-class.html\">UnitError</a></strong></code> - Invalid <b><code>radius1</code></b>, <b><code>radius2</code></b> or\n        <b><code>radius3</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Norrdine, A. <a \n        href=\"https://www.ResearchGate.net/publication/275027725\" \n        target=\"_top\"><i>An Algebraic Solution to the Multilateration \n        Problem</i></a>, the <a \n        href=\"https://www.ResearchGate.net/publication/288825016\" \n        target=\"_top\"><i>implementation</i></a> and function <a \n        href=\"pygeodesy.vector2d-module.html#trilaterate2d2\" \n        class=\"link\">pygeodesy.trilaterate2d2</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"truncate\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">truncate</span>&nbsp;(<span class=\"sig-arg\">x</span>,\n        <span class=\"sig-arg\">ndigits</span>=<span class=\"sig-default\">None</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Truncate to the given number of digits.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>x</code></strong> - Value to truncate (<code>scalar</code>).</li>\n        <li><strong class=\"pname\"><code>ndigits</code></strong> - Number of digits (<code>int</code>), aka <i>precision</i>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Truncated <b><code>x</code></b> (<code>float</code>).</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Python function <code>round</code>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"tyr3d\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">tyr3d</span>&nbsp;(<span class=\"sig-arg\">tilt</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">yaw</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">roll</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">Vector</span>=<span class=\"sig-default\">&lt;class 'pygeodesy.vector3d.Vector3d'&gt;</span>,\n        <span class=\"sig-arg\">**name_Vector_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert an attitude pose into a (3-D) direction vector.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>tilt</code></strong> - Pitch, elevation from horizontal (<code>degrees</code>), negative\n          down (clockwise rotation along and around the x-axis).</li>\n        <li><strong class=\"pname\"><code>yaw</code></strong> - Bearing, heading (compass <code>degrees360</code>), clockwise \n          from North (counter-clockwise rotation along and around the \n          z-axis).</li>\n        <li><strong class=\"pname\"><code>roll</code></strong> - Roll, bank (<code>degrees</code>), positive to the right and down\n          (clockwise rotation along and around the y-axis).</li>\n        <li><strong class=\"pname\"><code>Vector</code></strong> - Class to return the direction vector (<code>Cartesian</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a> or <code>Vector3Tuple</code>) or \n          <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>name_Vector_kwds</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>) and \n          optionally, additional <b><code>Vector</code></b> keyword \n          arguments, ignored if <code><b>Vector</b> is None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A named <b><code>Vector</code></b> instance or if \n          <code><b>Vector</b> is None</code>, a named <a \n          href=\"pygeodesy.namedTuples.Vector3Tuple-class.html\" \n          class=\"link\">Vector3Tuple</a><code>(x, y, z)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.ltp.AttitudeError-class.html\">AttitudeError</a></strong></code> - Invalid <b><code>tilt</code></b>, <b><code>yaw</code></b> or \n        <b><code>roll</code></b>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>Vector</code></b> or \n        <b><code>name_Vector_kwds</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"http://MSL.CS.UIUC.edu/planning/node102.html\" \n        target=\"_top\">Yaw, pitch, and roll rotations</a> and function <a \n        href=\"pygeodesy.formy-module.html#hartzell\" \n        class=\"link\">pygeodesy.hartzell</a> argument <code>los</code>, \n        Line-Of-Sight.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"unStr\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">unStr</span>&nbsp;(<span class=\"sig-arg\">name</span>,\n        <span class=\"sig-arg\">*args</span>,\n        <span class=\"sig-arg\">**kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use function <a href=\"pygeodesy.streprs-module.html#unstr\"\n  class=\"link\">pygeodesy.unstr</a>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"unroll180\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">unroll180</span>&nbsp;(<span class=\"sig-arg\">lon1</span>,\n        <span class=\"sig-arg\">lon2</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">True</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Unroll longitudinal delta and wrap longitude in degrees.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lon1</code></strong> - Start longitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lon2</code></strong> - End longitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap and unroll to the <i \n          class=\"math\">(-180..+180]</i> range (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>2-Tuple <code>(<b>lon2</b>-<b>lon1</b>, <b>lon2</b>)</code> \n          unrolled (<code>degrees</code>, <code>degrees</code>).</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Capability <code>LONG_UNROLL</code> in <a \n        href=\"https://GeographicLib.SourceForge.io/html/python/interface.html#outmask\"\n        target=\"_top\">GeographicLib</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"unrollPI\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">unrollPI</span>&nbsp;(<span class=\"sig-arg\">rad1</span>,\n        <span class=\"sig-arg\">rad2</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">True</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Unroll longitudinal delta and wrap longitude in radians.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>rad1</code></strong> - Start longitude (<code>radians</code>).</li>\n        <li><strong class=\"pname\"><code>rad2</code></strong> - End longitude (<code>radians</code>).</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap and unroll to the <i \n          class=\"math\">(-PI..+PI]</i> range (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>2-Tuple <code>(<b>rad2</b>-<b>rad1</b>, <b>rad2</b>)</code> \n          unrolled (<code>radians</code>, <code>radians</code>).</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Capability <code>LONG_UNROLL</code> in <a \n        href=\"https://GeographicLib.SourceForge.io/html/python/interface.html#outmask\"\n        target=\"_top\">GeographicLib</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"unsign0\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">unsign0</span>&nbsp;(<span class=\"sig-arg\">x</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use function <a \n  href=\"pygeodesy.basics-module.html#unsigned0\" \n  class=\"link\">pygeodesy.unsigned0</a>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"unsigned0\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">unsigned0</span>&nbsp;(<span class=\"sig-arg\">x</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Unsign if <code>0.0</code>.</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd><code><b>x</b></code> if <b><code>x</code></b> else \n          <code>0.0</code>.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"unstr\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">unstr</span>&nbsp;(<span class=\"sig-arg\">where</span>,\n        <span class=\"sig-arg\">*args</span>,\n        <span class=\"sig-arg\">**kwds_</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the string representation of an invokation.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>where</code></strong> - Class, function, method (<code>type</code>) or name \n          (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>args</code></strong> - Optional positional arguments.</li>\n        <li><strong class=\"pname\"><code>kwds_</code></strong> - Optional keyword arguments, except \n          <code><b>_Cdot</b>=None</code>, \n          <code><b>_ELLIPSIS</b>=False</code>, \n          <code><b>_fmt</b>=Fmt.g</code> and <code><b>_prec</b>=6</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Representation (<code>str</code>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"upsZoneBand5\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">upsZoneBand5</span>&nbsp;(<span class=\"sig-arg\">lat</span>,\n        <span class=\"sig-arg\">lon</span>,\n        <span class=\"sig-arg\">strict</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the UTM/UPS zone number, <i>polar</i> Band letter, pole and \n  clipped lat- and longitude for a given location.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat</code></strong> - Latitude in degrees (<code>scalar</code> or <code>str</code>).</li>\n        <li><strong class=\"pname\"><code>lon</code></strong> - Longitude in degrees (<code>scalar</code> or <code>str</code>).</li>\n        <li><strong class=\"pname\"><code>strict</code></strong> - Restrict <b><code>lat</code></b> to UPS ranges \n          (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <b><code>Ups</code></b> <code><b>name</b>=NN</code> \n          (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.namedTuples.UtmUpsLatLon5Tuple-class.html\" \n          class=\"link\">UtmUpsLatLon5Tuple</a><code>(zone, band, hemipole, \n          lat, lon)</code> where <code>hemipole</code> is the \n          <code>'N'|'S'</code> pole, the UPS projection top/center and \n          <code>lon</code> [-180..180).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.RangeError-class.html\">RangeError</a></strong></code> - If <b><code>strict</code> is True</b> and <b><code>lat</code></b> \n        within the UTM but not the UPS range or if <b><code>lat</code></b> \n        or <b><code>lon</code></b> outside the valid range and <a \n        href=\"pygeodesy.errors-module.html#rangerrors\" \n        class=\"link\">rangerrors</a> is <code>True</code>.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>lat</code></b> or <b><code>lon</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        The <code>lon</code> is set to <code>0</code> if \n        <b><code>lat</code></b> is <code>-90</code> or <code>90</code>, see\n        env variable <code>PYGEODESY_UPS_POLES</code> in module <a \n        href=\"pygeodesy.ups-module.html\" class=\"link\">ups</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"utmZoneBand2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">utmZoneBand2</span>&nbsp;(<span class=\"sig-arg\">lat</span>,\n        <span class=\"sig-arg\">lon</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use function <a \n  href=\"pygeodesy.utm-module.html#utmZoneBand5\" \n  class=\"link\">pygeodesy.utmZoneBand5</a>.</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd>2-Tuple <code>(zone, band)</code>.</dd>\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"utmZoneBand5\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">utmZoneBand5</span>&nbsp;(<span class=\"sig-arg\">lat</span>,\n        <span class=\"sig-arg\">lon</span>,\n        <span class=\"sig-arg\">cmoff</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the UTM zone number, Band letter, hemisphere and (clipped) lat-\n  and longitude for a given location.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat</code></strong> - Latitude in degrees (<code>scalar</code> or <code>str</code>).</li>\n        <li><strong class=\"pname\"><code>lon</code></strong> - Longitude in degrees (<code>scalar</code> or <code>str</code>).</li>\n        <li><strong class=\"pname\"><code>cmoff</code></strong> - If <code>True</code>, offset longitude from the zone's central \n          meridian (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.namedTuples.UtmUpsLatLon5Tuple-class.html\" \n          class=\"link\">UtmUpsLatLon5Tuple</a><code>(zone, band, hemipole, \n          lat, lon)</code> where <code>hemipole</code> is the \n          <code>'N'|'S'</code> UTM hemisphere.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.RangeError-class.html\">RangeError</a></strong></code> - If <b><code>lat</code></b> outside the valid UTM bands or if \n        <b><code>lat</code></b> or <b><code>lon</code></b> outside the \n        valid range and <a href=\"pygeodesy.errors-module.html#rangerrors\" \n        class=\"link\">rangerrors</a> is <code>True</code>.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>lat</code></b> or <b><code>lon</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"utmupsValidate\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">utmupsValidate</span>&nbsp;(<span class=\"sig-arg\">coord</span>,\n        <span class=\"sig-arg\">falsed</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">MGRS</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">Error</span>=<span class=\"sig-default\">&lt;class 'pygeodesy.utmups.UTMUPSError'&gt;</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Check a UTM or UPS coordinate.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>coord</code></strong> - The UTM or UPS coordinate (<a href=\"pygeodesy.utm.Utm-class.html\"\n          class=\"link\">Utm</a>, <a href=\"pygeodesy.etm.Etm-class.html\" \n          class=\"link\">Etm</a>, <a href=\"pygeodesy.ups.Ups-class.html\" \n          class=\"link\">Ups</a> or <code>5+Tuple</code>).</li>\n        <li><strong class=\"pname\"><code>falsed</code></strong> - If <code>True</code>, easting and northing are falsed in the \n          <code><b>coord</b> 5+Tuple</code> (<code>bool</code>), ignored \n          otherwise.</li>\n        <li><strong class=\"pname\"><code>MGRS</code></strong> - Increase easting and northing ranges (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>Error</code></strong> - Optional error to raise, overriding the default (<a \n          href=\"pygeodesy.utmups.UTMUPSError-class.html\" \n          class=\"link\">UTMUPSError</a>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>None</code> if validation passed.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>Error</strong></code> - Validation failed.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.utmups-module.html#utmupsValidateOK\" \n        class=\"link\">utmupsValidateOK</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"utmupsValidateOK\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">utmupsValidateOK</span>&nbsp;(<span class=\"sig-arg\">coord</span>,\n        <span class=\"sig-arg\">falsed</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">ok</span>=<span class=\"sig-default\">True</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Check a UTM or UPS coordinate.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>coord</code></strong> - The UTM or UPS coordinate (<a href=\"pygeodesy.utm.Utm-class.html\"\n          class=\"link\">Utm</a>, <a href=\"pygeodesy.ups.Ups-class.html\" \n          class=\"link\">Ups</a> or <code>5+Tuple</code>).</li>\n        <li><strong class=\"pname\"><code>falsed</code></strong> - If <code>True</code>, easting and northing are falsed in the \n          <code><b>coord</b> 5+Tuple</code> (<code>bool</code>), ignored \n          otherwise.</li>\n        <li><strong class=\"pname\"><code>ok</code></strong> - Result to return if validation passed (<b><code>ok</code></b>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><b><code>ok</code></b> if validation passed, otherwise the <a \n          href=\"pygeodesy.utmups.UTMUPSError-class.html\" \n          class=\"link\">UTMUPSError</a>.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.utmups-module.html#utmupsValidate\" \n        class=\"link\">utmupsValidate</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"utmupsZoneBand5\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">utmupsZoneBand5</span>&nbsp;(<span class=\"sig-arg\">lat</span>,\n        <span class=\"sig-arg\">lon</span>,\n        <span class=\"sig-arg\">cmoff</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the UTM/UPS zone number, Band letter, hemisphere/pole and \n  clipped lat- and longitude for a given location.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat</code></strong> - Latitude in degrees (<code>scalar</code> or <code>str</code>).</li>\n        <li><strong class=\"pname\"><code>lon</code></strong> - Longitude in degrees (<code>scalar</code> or <code>str</code>).</li>\n        <li><strong class=\"pname\"><code>cmoff</code></strong> - If <code>True</code>, offset longitude from the zone's central \n          meridian, <i>for UTM only</i> (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.namedTuples.UtmUpsLatLon5Tuple-class.html\" \n          class=\"link\">UtmUpsLatLon5Tuple</a><code>(zone, band, hemipole, \n          lat, lon)</code> where <code>hemipole</code> is \n          <code>'N'|'S'</code>, the UTM hemisphere or UPS pole, projection \n          top/center.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.RangeError-class.html\">RangeError</a></strong></code> - If <b><code>lat</code></b> outside the valid UTM or UPS bands or if\n        <b><code>lat</code></b> or <b><code>lon</code></b> outside the \n        valid range and <a href=\"pygeodesy.errors-module.html#rangerrors\" \n        class=\"link\">rangerrors</a> is <code>True</code>.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>lat</code></b> or <b><code>lon</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Functions <a href=\"pygeodesy.utm-module.html#utmZoneBand5\" \n        class=\"link\">pygeodesy.utmZoneBand5</a> and <a \n        href=\"pygeodesy.ups-module.html#upsZoneBand5\" \n        class=\"link\">pygeodesy.upsZoneBand5</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"vincentys\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">vincentys</span>&nbsp;(<span class=\"sig-arg\">lat1</span>,\n        <span class=\"sig-arg\">lon1</span>,\n        <span class=\"sig-arg\">lat2</span>,\n        <span class=\"sig-arg\">lon2</span>,\n        <span class=\"sig-arg\">radius</span>=<span class=\"sig-default\">6371008.771415</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the distance between two (spherical) points using <a \n  href=\"https://WikiPedia.org/wiki/Great-circle_distance\" \n  target=\"_top\">Vincenty's</a> spherical formula.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat1</code></strong> - Start latitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lon1</code></strong> - Start longitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lat2</code></strong> - End latitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lon2</code></strong> - End longitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>radius</code></strong> - Mean earth radius (<code>meter</code>), datum (<a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>) \n          or ellipsoid (<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\"\n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a> or <a \n          href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>) to use.</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll \n          <b><code>lat2</code></b> and <b><code>lon2</code></b> \n          (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Distance (<code>meter</code>, same units as \n          <b><code>radius</code></b>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.UnitError-class.html\">UnitError</a></strong></code> - Invalid <b><code>radius</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Functions <a href=\"pygeodesy.formy-module.html#vincentys_\" \n        class=\"link\">vincentys_</a>, <a \n        href=\"pygeodesy.formy-module.html#cosineLaw\" \n        class=\"link\">cosineLaw</a>, <a \n        href=\"pygeodesy.formy-module.html#equirectangular\" \n        class=\"link\">equirectangular</a>, <a \n        href=\"pygeodesy.formy-module.html#euclidean\" \n        class=\"link\">euclidean</a>, <a \n        href=\"pygeodesy.formy-module.html#flatLocal\" \n        class=\"link\">flatLocal</a>/<a \n        href=\"pygeodesy.formy-module.html#flatLocal\" \n        class=\"link\">hubeny</a>, <a \n        href=\"pygeodesy.formy-module.html#flatPolar\" \n        class=\"link\">flatPolar</a>, <a \n        href=\"pygeodesy.formy-module.html#haversine\" \n        class=\"link\">haversine</a> and <a \n        href=\"pygeodesy.formy-module.html#thomas\" class=\"link\">thomas</a> \n        and methods <a \n        href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#distance2\" \n        class=\"link\">Ellipsoid.distance2</a>, \n        <code>LatLon.distanceTo*</code> and \n        <code>LatLon.equirectangularTo</code>.\n      </p>\n      <p><strong>Note:</strong>\n        See note at function <a \n        href=\"pygeodesy.formy-module.html#vincentys_\" \n        class=\"link\">vincentys_</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"vincentys_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">vincentys_</span>&nbsp;(<span class=\"sig-arg\">geohash1</span>,\n        <span class=\"sig-arg\">geohash2</span>,\n        <span class=\"sig-arg\">**radius_wrap</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the distance between two geohashes using the <a \n  href=\"pygeodesy.formy-module.html#vincentys\" \n  class=\"link\">pygeodesy.vincentys</a> formula.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>geohash1</code></strong> - First geohash (<a href=\"pygeodesy.geohash.Geohash-class.html\" \n          class=\"link\">Geohash</a>, <code>LatLon</code> or \n          <code>str</code>).</li>\n        <li><strong class=\"pname\"><code>geohash2</code></strong> - Second geohash (<a href=\"pygeodesy.geohash.Geohash-class.html\" \n          class=\"link\">Geohash</a>, <code>LatLon</code> or \n          <code>str</code>).</li>\n        <li><strong class=\"pname\"><code>radius_wrap</code></strong> - Optional keyword arguments for function <a \n          href=\"pygeodesy.formy-module.html#vincentys\" \n          class=\"link\">pygeodesy.vincentys</a>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Distance (<code>meter</code>, same units as \n          <b><code>radius</code></b>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - If <b><code>geohash1</code></b> or <b><code>geohash2</code></b> is \n        not a <a href=\"pygeodesy.geohash.Geohash-class.html\" \n        class=\"link\">Geohash</a>, <code>LatLon</code> or <code>str</code>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"wildberger3\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">wildberger3</span>&nbsp;(<span class=\"sig-arg\">a</span>,\n        <span class=\"sig-arg\">b</span>,\n        <span class=\"sig-arg\">c</span>,\n        <span class=\"sig-arg\">alpha</span>,\n        <span class=\"sig-arg\">beta</span>,\n        <span class=\"sig-arg\">R3</span>=<span class=\"sig-default\">&lt;built-in function min&gt;</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Snellius' surveying using <a \n  href=\"https://WikiPedia.org/wiki/Snellius&#8211;Pothenot_problem\" \n  target=\"_top\">Rational Trigonometry</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>a</code></strong> - Length of the triangle side between corners <code>B</code> and \n          <code>C</code> and opposite of triangle corner <code>A</code> \n          (<code>scalar</code>, non-negative <code>meter</code>, \n          conventionally).</li>\n        <li><strong class=\"pname\"><code>b</code></strong> - Length of the triangle side between corners <code>C</code> and \n          <code>A</code> and opposite of triangle corner <code>B</code> \n          (<code>scalar</code>, non-negative <code>meter</code>, \n          conventionally).</li>\n        <li><strong class=\"pname\"><code>c</code></strong> - Length of the triangle side between corners <code>A</code> and \n          <code>B</code> and opposite of triangle corner <code>C</code> \n          (<code>scalar</code>, non-negative <code>meter</code>, \n          conventionally).</li>\n        <li><strong class=\"pname\"><code>alpha</code></strong> - Angle subtended by triangle side <b><code>b</code></b> \n          (<code>degrees</code>, non-negative).</li>\n        <li><strong class=\"pname\"><code>beta</code></strong> - Angle subtended by triangle side <b><code>a</code></b> \n          (<code>degrees</code>, non-negative).</li>\n        <li><strong class=\"pname\"><code>R3</code></strong> - Callable to determine <code>R3</code> from <code>(R3 - C)**2 = \n          D</code>, typically standard Python function <code>min</code> or \n          <code>max</code>, invoked with 2 arguments, each \n          <code>float</code> or an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><a href=\"pygeodesy.resections.Survey3Tuple-class.html\" \n          class=\"link\">Survey3Tuple</a><code>(PA, PB, PC)</code> with \n          distance from survey point <code>P</code> to each of the triangle\n          corners <code>A</code>, <code>B</code> and <code>C</code>, same \n          units as <b><code>a</code></b>, <b><code>b</code></b> and \n          <b><code>c</code></b>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.TriangleError-class.html\">TriangleError</a></strong></code> - Invalid <b><code>a</code></b>, <b><code>b</code></b> or \n        <b><code>c</code></b> or negative <b><code>alpha</code></b> or \n        <b><code>beta</code></b> or <b><code>R3</code></b> not \n        <code>callable</code>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a \n        href=\"https://Math.Sc.Chula.ac.TH/cjm/content/survey-article-greek-geometry-rational-trigonometry-and-snellius-&#8211;-pothenot-surveying\"\n        target=\"_top\">Wildberger, Norman J.</a>, <a \n        href=\"http://www.MS.LT/derlius/WildbergerDivineProportions.pdf\" \n        target=\"_top\">Devine Proportions, page 252</a> and function <a \n        href=\"pygeodesy.resections-module.html#snellius3\" \n        class=\"link\">snellius3</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"wrap180\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">wrap180</span>&nbsp;(<span class=\"sig-arg\">deg</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Wrap degrees to <i class=\"math\">[-180..+180]</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>deg</code></strong> - Angle (<code>degrees</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Degrees, wrapped (<code>degrees180</code>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"wrap360\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">wrap360</span>&nbsp;(<span class=\"sig-arg\">deg</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Wrap degrees to <i class=\"math\">[0..+360)</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>deg</code></strong> - Angle (<code>degrees</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Degrees, wrapped (<code>degrees360</code>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"wrap90\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">wrap90</span>&nbsp;(<span class=\"sig-arg\">deg</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Wrap degrees to <i class=\"math\">[-90..+90]</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>deg</code></strong> - Angle (<code>degrees</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Degrees, wrapped (<code>degrees90</code>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"wrapPI\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">wrapPI</span>&nbsp;(<span class=\"sig-arg\">rad</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Wrap radians to <i class=\"math\">[-PI..+PI]</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>rad</code></strong> - Angle (<code>radians</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Radians, wrapped (<code>radiansPI</code>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"wrapPI2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">wrapPI2</span>&nbsp;(<span class=\"sig-arg\">rad</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Wrap radians to <i class=\"math\">[0..+2PI)</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>rad</code></strong> - Angle (<code>radians</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Radians, wrapped (<code>radiansPI2</code>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"wrapPI_2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">wrapPI_2</span>&nbsp;(<span class=\"sig-arg\">rad</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Wrap radians to <i class=\"math\">[-PI/2..+PI/2]</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>rad</code></strong> - Angle (<code>radians</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Radians, wrapped (<code>radiansPI_2</code>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"wrap_normal\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">wrap_normal</span>&nbsp;(<span class=\"sig-arg\">*normal</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Define the operation for the keyword argument \n  <code><b>wrap</b>=True</code>, across <a href=\"pygeodesy-module.html\" \n  class=\"link\">pygeodesy</a>: <i>wrap</i>, <i>normalize</i> or \n  <i>no-op</i>.  For backward compatibility, the default is \n  <i>wrap</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>normal</code></strong> - If <code>True</code>, <i>normalize</i> lat- and longitude using \n          <a href=\"pygeodesy.formy-module.html#normal\" \n          class=\"link\">normal</a> or <a \n          href=\"pygeodesy.formy-module.html#normal_\" \n          class=\"link\">normal_</a>, if <code>False</code>, <i>wrap</i> the \n          lat- and longitude individually by <a \n          href=\"pygeodesy.utily-module.html#wrap90\" class=\"link\">wrap90</a>\n          or <a href=\"pygeodesy.utily-module.html#wrapPI_2\" \n          class=\"link\">wrapPI_2</a> respectively <a \n          href=\"pygeodesy.utily-module.html#wrap180\" \n          class=\"link\">wrap180</a>, <a \n          href=\"pygeodesy.utily-module.html#wrapPI\" class=\"link\">wrapPI</a>\n          or if <code>None</code>, leave lat- and longitude \n          <i>unchanged</i>. To get the current setting, do not specify.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The previous <a href=\"pygeodesy.utily-module.html#wrap_normal\" \n          class=\"link\">wrap_normal</a> setting (<code>bool</code> or \n          <code>None</code>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"xyz2rtp\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">xyz2rtp</span>&nbsp;(<span class=\"sig-arg\">x_xyz</span>,\n        <span class=\"sig-arg\">y</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">z</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert cartesian <code>(x, y, z)</code> to <i>spherical, polar</i> \n  <code>(r, theta, phi)</code> coordinates.</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd><a href=\"pygeodesy.cartesianBase.RadiusThetaPhi3Tuple-class.html\"\n          class=\"link\">RadiusThetaPhi3Tuple</a><code>(r, theta, phi)</code>\n          with <code>theta</code> and <code>phi</code>, both in <a \n          href=\"pygeodesy.units.Degrees-class.html\" \n          class=\"link\">Degrees</a>.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.cartesianBase-module.html#xyz2rtp_\" \n        class=\"link\">xyz2rtp_</a> for further details.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"xyz2rtp_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">xyz2rtp_</span>&nbsp;(<span class=\"sig-arg\">x_xyz</span>,\n        <span class=\"sig-arg\">y</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">z</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert cartesian <code>(x, y, z)</code> to <i>spherical, polar</i> \n  <code>(r, theta, phi)</code> coordinates.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>x_xyz</code></strong> - X component (<code>scalar</code>) or a cartesian \n          (<code>Cartesian</code>, <a \n          href=\"pygeodesy.ecef.Ecef9Tuple-class.html\" \n          class=\"link\">Ecef9Tuple</a>, <code>Nvector</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <a \n          href=\"pygeodesy.namedTuples.Vector3Tuple-class.html\" \n          class=\"link\">Vector3Tuple</a>, <a \n          href=\"pygeodesy.namedTuples.Vector4Tuple-class.html\" \n          class=\"link\">Vector4Tuple</a> or a <code>tuple</code> or \n          <code>list</code> of 3+ <code>scalar</code> items) if no \n          <code>y_z</code> specified.</li>\n        <li><strong class=\"pname\"><code>y</code></strong> - Y component (<code>scalar</code>), required if \n          <code><b>x_xyz</b></code> is <code>scalar</code>, ignored \n          otherwise.</li>\n        <li><strong class=\"pname\"><code>z</code></strong> - Z component (<code>scalar</code>), like <b><code>y</code></b>.</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><a href=\"pygeodesy.cartesianBase.RadiusThetaPhi3Tuple-class.html\"\n          class=\"link\">RadiusThetaPhi3Tuple</a><code>(r, theta, phi)</code>\n          with radial distance <code>r</code> (<code>meter</code>, same \n          units as <code>x</code>, <code>y</code> and <code>z</code>), \n          inclination <code>theta</code> (polar angle with respect to the \n          positive z-axis) and azimuthal angle <code>phi</code>, both in <a\n          href=\"pygeodesy.units.Radians-class.html\" \n          class=\"link\">Radians</a>.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"https://WikiPedia.org/wiki/Spherical_coordinate_system\" \n        target=\"_top\">Physics convention</a> (ISO 80000-2:2019), class <a \n        href=\"pygeodesy.cartesianBase.RadiusThetaPhi3Tuple-class.html\" \n        class=\"link\">RadiusThetaPhi3Tuple</a> and function <a \n        href=\"pygeodesy.cartesianBase-module.html#xyz2rtp\" \n        class=\"link\">xyz2rtp</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"yard2m\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">yard2m</span>&nbsp;(<span class=\"sig-arg\">yards</span>,\n        <span class=\"sig-arg\">imperial</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert a length in <i>International</i> or <a \n  href=\"https://WikiPedia.org/wiki/Imperial_units\" target=\"_top\">Imperial \n  Standard</a> yards to meter.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>yards</code></strong> - Length in yards (<code>scalar</code>).</li>\n        <li><strong class=\"pname\"><code>imperial</code></strong> - If <code>True</code>, convert from <i>Imperial Standard</i> \n          yards.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Length in <code>meter</code> (<code>float</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>yards</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"zcrt\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">zcrt</span>&nbsp;(<span class=\"sig-arg\">x</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the 6-th, <i>zenzi-cubic</i> root, <i class=\"math\">x**(1 / \n  6)</i>, preserving <code>type(<b>x</b>)</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>x</code></strong> - Value (<code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><i>Zenzi-cubic</i> root (<code>float</code> or <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeeError</strong></code> - Invalid <b><code>x</code></b>.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Negative <b><code>x</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Functions <a href=\"pygeodesy.fmath-module.html#bqrt\" \n        class=\"link\">bqrt</a> and <a \n        href=\"pygeodesy.fmath-module.html#zqrt\" class=\"link\">zqrt</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"zqrt\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">zqrt</span>&nbsp;(<span class=\"sig-arg\">x</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the 8-th, <i>zenzi-quartic</i> or <i>squared-quartic</i> root, \n  <i class=\"math\">x**(1 / 8)</i>, preserving \n  <code>type(<b>x</b>)</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>x</code></strong> - Value (<code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><i>Zenzi-quartic</i> root (<code>float</code> or <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeeError</strong></code> - Invalid <b><code>x</code></b>.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Negative <b><code>x</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Functions <a href=\"pygeodesy.fmath-module.html#bqrt\" \n        class=\"link\">bqrt</a> and <a \n        href=\"pygeodesy.fmath-module.html#zcrt\" class=\"link\">zcrt</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<br />\n<!-- ==================== VARIABLES DETAILS ==================== -->\n<a name=\"section-VariablesDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Variables Details</span></td>\n</tr>\n</table>\n<a name=\"pygeodesy_abspath\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">pygeodesy_abspath</h3>\n  Fully qualified <code>pygeodesy</code> directory name (<code>str</code>).\n  <dl class=\"fields\">\n  </dl>\n  <dl class=\"fields\">\n    <dt>Value:</dt>\n      <dd><table><tr><td><pre class=\"variable\">\n<code class=\"variable-quote\">'</code><code class=\"variable-string\">..../PyGeodesy/pygeodesy</code><code class=\"variable-quote\">'</code>\n</pre></td></tr></table>\n</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"Conics\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">Conics</h3>\n  Registered, predefined <a href=\"pygeodesy.lcc.Conic-class.html\" \n  class=\"link\">conics</a> (<code>enum-like</code>).\n  <dl class=\"fields\">\n  </dl>\n  <dl class=\"fields\">\n    <dt>Value:</dt>\n      <dd><table><tr><td><pre class=\"variable\">\nConics.WRF_Lb: Conic(name='WRF_Lb', lat0=40, lon0=-97, par1=33, par2=4<span class=\"variable-linewrap\"><img src=\"crarr.png\" alt=\"\\\" /></span>\n5, E0=0, N0=0, k0=1, SP=2, datum=Datum(name='WGS84', ellipsoid=Ellipso<span class=\"variable-linewrap\"><img src=\"crarr.png\" alt=\"\\\" /></span>\nids.WGS84, transform=Transforms.WGS84))\n</pre></td></tr></table>\n</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"Datums\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">Datums</h3>\n  Registered, predefined <a href=\"pygeodesy.datums.Datum-class.html\" \n  class=\"link\">datums</a> (<code>enum-like</code>).\n  <dl class=\"fields\">\n  </dl>\n  <dl class=\"fields\">\n    <dt>Value:</dt>\n      <dd><table><tr><td><pre class=\"variable\">\nDatums.Sphere: Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, trans<span class=\"variable-linewrap\"><img src=\"crarr.png\" alt=\"\\\" /></span>\nform=Transforms.WGS84),\nDatums.NAD83: Datum(name='NAD83', ellipsoid=Ellipsoids.GRS80, transfor<span class=\"variable-linewrap\"><img src=\"crarr.png\" alt=\"\\\" /></span>\nm=Transforms.NAD83),\nDatums.OSGB36: Datum(name='OSGB36', ellipsoid=Ellipsoids.Airy1830, tra<span class=\"variable-linewrap\"><img src=\"crarr.png\" alt=\"\\\" /></span>\nnsform=Transforms.OSGB36),\nDatums.WGS84: Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transfor<span class=\"variable-linewrap\"><img src=\"crarr.png\" alt=\"\\\" /></span>\nm=Transforms.WGS84),\n<code class=\"variable-ellipsis\">...</code>\n</pre></td></tr></table>\n</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"Ellipsoids\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">Ellipsoids</h3>\n  Registered, predefined <a \n  href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n  class=\"link\">ellipsoids</a> (<code>enum-like</code>).\n  <dl class=\"fields\">\n  </dl>\n  <dl class=\"fields\">\n    <dt>Value:</dt>\n      <dd><table><tr><td><pre class=\"variable\">\nEllipsoids.Sphere: Ellipsoid(name='Sphere', a=6371008.771415, f=0, f_=<span class=\"variable-linewrap\"><img src=\"crarr.png\" alt=\"\\\" /></span>\n0, b=6371008.771415),\nEllipsoids.GRS80: Ellipsoid(name='GRS80', a=6378137, f=0.00335281, f_=<span class=\"variable-linewrap\"><img src=\"crarr.png\" alt=\"\\\" /></span>\n298.2572221, b=6356752.31414035),\nEllipsoids.WGS84: Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=<span class=\"variable-linewrap\"><img src=\"crarr.png\" alt=\"\\\" /></span>\n298.25722356, b=6356752.31424518),\nEllipsoids.Airy1830: Ellipsoid(name='Airy1830', a=6377563.396, f=0.003<span class=\"variable-linewrap\"><img src=\"crarr.png\" alt=\"\\\" /></span>\n34085, f_=299.3249646, b=6356256.90923729)\n</pre></td></tr></table>\n</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"RefFrames\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">RefFrames</h3>\n  Registered, predefined <a href=\"pygeodesy.trf.RefFrame-class.html\" \n  class=\"link\">reference frames</a> (<code>enum-like</code>).\n  <dl class=\"fields\">\n  </dl>\n  <dl class=\"fields\">\n    <dt>Value:</dt>\n      <dd><table><tr><td><pre class=\"variable\">\nRefFrames.ETRF89: RefFrame(name='ETRF89', epoch=1989, datum=Datums.GRS<span class=\"variable-linewrap\"><img src=\"crarr.png\" alt=\"\\\" /></span>\n80),\nRefFrames.NAD83cors96: RefFrame(name='NAD83cors96', epoch=1997, datum=<span class=\"variable-linewrap\"><img src=\"crarr.png\" alt=\"\\\" /></span>\nDatums.GRS80),\nRefFrames.GDA2020: RefFrame(name='GDA2020', epoch=2020, datum=Datums.G<span class=\"variable-linewrap\"><img src=\"crarr.png\" alt=\"\\\" /></span>\nRS80),\nRefFrames.ETRF92: RefFrame(name='ETRF92', epoch=1992, datum=Datums.GRS<span class=\"variable-linewrap\"><img src=\"crarr.png\" alt=\"\\\" /></span>\n80),\n<code class=\"variable-ellipsis\">...</code>\n</pre></td></tr></table>\n</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"Transforms\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">Transforms</h3>\n  Registered, predefined <a href=\"pygeodesy.datums.Transform-class.html\" \n  class=\"link\">transforms</a> (<code>enum-like</code>).\n  <dl class=\"fields\">\n  </dl>\n  <dl class=\"fields\">\n    <dt>Value:</dt>\n      <dd><table><tr><td><pre class=\"variable\">\nTransforms.OSGB36: Transform(name='OSGB36', tx=-446.45, ty=125.16, tz=<span class=\"variable-linewrap\"><img src=\"crarr.png\" alt=\"\\\" /></span>\n-542.06, s1=1.0, rx=-7.2819e-07, ry=-1.1975e-06, rz=-4.0826e-06, s=20.<span class=\"variable-linewrap\"><img src=\"crarr.png\" alt=\"\\\" /></span>\n489, sx=-0.1502, sy=-0.247, sz=-0.8421),\nTransforms.NAD83: Transform(name='NAD83', tx=1.004, ty=-1.91, tz=-0.51<span class=\"variable-linewrap\"><img src=\"crarr.png\" alt=\"\\\" /></span>\n5, s1=1.0, rx=1.2945e-07, ry=1.6484e-09, rz=5.333e-08, s=-0.0015, sx=0<span class=\"variable-linewrap\"><img src=\"crarr.png\" alt=\"\\\" /></span>\n.0267, sy=0.00034, sz=0.011),\nTransforms.WGS84: Transform(name='WGS84', tx=0.0, ty=0.0, tz=0.0, s1=1<span class=\"variable-linewrap\"><img src=\"crarr.png\" alt=\"\\\" /></span>\n.0, rx=0.0, ry=0.0, rz=0.0, s=0.0, sx=0.0, sy=0.0, sz=0.0),\n<code class=\"variable-ellipsis\">...</code>\n</pre></td></tr></table>\n</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"Triaxial3s\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">Triaxial3s</h3>\n  Registered, predefined <a \n  href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html\" \n  class=\"link\">triaxial3 ellipsoids</a> (<code>enum-like</code>).\n  <dl class=\"fields\">\n  </dl>\n  <dl class=\"fields\">\n    <dt>Value:</dt>\n      <dd><table><tr><td><pre class=\"variable\">\nTriaxial3s.WGS84_3r: Triaxial3(name='WGS84_3r', a=6378172, b=6378102, <span class=\"variable-linewrap\"><img src=\"crarr.png\" alt=\"\\\" /></span>\nc=6356752, k2=0.996726547, kp2=0.003273453, volume=1083207266220584468<span class=\"variable-linewrap\"><img src=\"crarr.png\" alt=\"\\\" /></span>\n480, area=510065604942135.875, R2=6371007.076110449)\n</pre></td></tr></table>\n</dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th bgcolor=\"#70b0f0\" class=\"navbar-select\"\n          >&nbsp;&nbsp;&nbsp;Home&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.__main__-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.__main__</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        Module&nbsp;__main__\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.__main__-module.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== MODULE DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Module __main__</h1><p class=\"nomargin-top\"></p>\n<p>Print <a href=\"pygeodesy-module.html\" class=\"link\">pygeodesy</a> \n  version, etc. using <code>python -m pygeodesy</code>.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Version:</strong>\n        25.06.26\n      </p>\n</div><!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.albers-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.albers</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        Module&nbsp;albers\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.albers-module.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== MODULE DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Module albers</h1><p class=\"nomargin-top\"></p>\n<p>Albers Equal-Area projections.</p>\n  <p>Classes <a href=\"pygeodesy.albers.AlbersEqualArea-class.html\" \n  class=\"link\">AlbersEqualArea</a>, <a \n  href=\"pygeodesy.albers.AlbersEqualArea2-class.html\" \n  class=\"link\">AlbersEqualArea2</a>, <a \n  href=\"pygeodesy.albers.AlbersEqualArea4-class.html\" \n  class=\"link\">AlbersEqualArea4</a>, <a \n  href=\"pygeodesy.albers.AlbersEqualAreaCylindrical-class.html\" \n  class=\"link\">AlbersEqualAreaCylindrical</a>, <a \n  href=\"pygeodesy.albers.AlbersEqualAreaNorth-class.html\" \n  class=\"link\">AlbersEqualAreaNorth</a>, <a \n  href=\"pygeodesy.albers.AlbersEqualAreaSouth-class.html\" \n  class=\"link\">AlbersEqualAreaSouth</a> and <a \n  href=\"pygeodesy.albers.AlbersError-class.html\" \n  class=\"link\">AlbersError</a>, transcoded from <i>Charles Karney</i>'s C++\n  class <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1AlbersEqualArea.html\"\n  target=\"_top\">AlbersEqualArea</a>.</p>\n  <p>See also <i>Albers Equal-Area Conic Projection</i> in <a \n  href=\"https://Pubs.USGS.gov/pp/1395/report.pdf\" target=\"_top\">John P. \n  Snyder, &quot;Map Projections -- A Working Manual&quot;, 1987</a>, pp \n  98-106 and the Albers Conical Equal-Area examples on pp 291-294.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Version:</strong>\n        26.02.27\n      </p>\n</div><!-- ==================== CLASSES ==================== -->\n<a name=\"section-Classes\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Classes</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.albers.AlbersError-class.html\" class=\"summary-name\">AlbersError</a><br />\n      An <a href=\"pygeodesy.albers.AlbersEqualArea-class.html\" \n        class=\"link\">AlbersEqualArea</a>, <a \n        href=\"pygeodesy.albers.AlbersEqualArea2-class.html\" \n        class=\"link\">AlbersEqualArea2</a>, <a \n        href=\"pygeodesy.albers.AlbersEqualArea4-class.html\" \n        class=\"link\">AlbersEqualArea4</a>, <a \n        href=\"pygeodesy.albers.AlbersEqualAreaCylindrical-class.html\" \n        class=\"link\">AlbersEqualAreaCylindrical</a>, <a \n        href=\"pygeodesy.albers.AlbersEqualAreaNorth-class.html\" \n        class=\"link\">AlbersEqualAreaNorth</a>, <a \n        href=\"pygeodesy.albers.AlbersEqualAreaSouth-class.html\" \n        class=\"link\">AlbersEqualAreaSouth</a> or <a \n        href=\"pygeodesy.albers.Albers7Tuple-class.html\" \n        class=\"link\">Albers7Tuple</a> issue.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.albers._AlbersBase-class.html\" class=\"summary-name\">_AlbersBase</a><br />\n      (INTERNAL) Base class for <code>AlbersEqualArea...</code> \n        projections.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.albers.AlbersEqualArea-class.html\" class=\"summary-name\">AlbersEqualArea</a><br />\n      An Albers equal-area (authalic) projection with a single standard \n        parallel.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.albers.AlbersEqualArea2-class.html\" class=\"summary-name\">AlbersEqualArea2</a><br />\n      An Albers equal-area (authalic) projection with two standard \n        parallels.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.albers.AlbersEqualArea4-class.html\" class=\"summary-name\">AlbersEqualArea4</a><br />\n      An Albers equal-area (authalic) projection specified by the \n        <code>sin</code> and <code>cos</code> of both standard parallels.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.albers.AlbersEqualAreaCylindrical-class.html\" class=\"summary-name\">AlbersEqualAreaCylindrical</a><br />\n      An <a href=\"pygeodesy.albers.AlbersEqualArea-class.html\" \n        class=\"link\">AlbersEqualArea</a> projection at <code>lat=0</code> \n        and <code>k0=1</code> degenerating to the cylindrical-equal-area \n        projection.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.albers.AlbersEqualAreaNorth-class.html\" class=\"summary-name\">AlbersEqualAreaNorth</a><br />\n      An azimuthal <a href=\"pygeodesy.albers.AlbersEqualArea-class.html\" \n        class=\"link\">AlbersEqualArea</a> projection at <code>lat=90</code> \n        and <code>k0=1</code> degenerating to the <a \n        href=\"pygeodesy.azimuthal-module.html\" class=\"link\">azimuthal</a> \n        <a href=\"pygeodesy.azimuthal.LambertEqualArea-class.html\" \n        class=\"link\">LambertEqualArea</a> projection.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.albers.AlbersEqualAreaSouth-class.html\" class=\"summary-name\">AlbersEqualAreaSouth</a><br />\n      An azimuthal <a href=\"pygeodesy.albers.AlbersEqualArea-class.html\" \n        class=\"link\">AlbersEqualArea</a> projection at <code>lat=-90</code>\n        and <code>k0=1</code> degenerating to the <a \n        href=\"pygeodesy.azimuthal-module.html\" class=\"link\">azimuthal</a> \n        <a href=\"pygeodesy.azimuthal.LambertEqualArea-class.html\" \n        class=\"link\">LambertEqualArea</a> projection.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.albers.Albers7Tuple-class.html\" class=\"summary-name\">Albers7Tuple</a><br />\n      7-Tuple <code>(x, y, lat, lon, gamma, scale, datum)</code>, in \n        <code>meter</code>, <code>meter</code>, <code>degrees90</code>, \n        <code>degrees180</code>, <code>degrees360</code>, \n        <code>scalar</code> and <code>Datum</code> where <code>(x, \n        y)</code> is the projected, <code>(lat, lon)</code> the geodetic \n        location, <code>gamma</code> the meridian convergence at point, the\n        bearing of the y-axis measured clockwise from true North and \n        <code>scale</code> is the azimuthal scale of the projection at \n        point.\n    </td>\n  </tr>\n</table>\n<!-- ==================== VARIABLES ==================== -->\n<a name=\"section-Variables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Variables</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"__all__\"></a><span class=\"summary-name\">__all__</span> = <code title=\"_ALL_LAZY.albers\">_ALL_LAZY.albers</code>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.albers.Albers7Tuple-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.albers.Albers7Tuple</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.albers-module.html\">Module&nbsp;albers</a> ::\n        Class&nbsp;Albers7Tuple\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.albers.Albers7Tuple-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Albers7Tuple</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n   object --+        \n            |        \n        tuple --+    \n                |    \n   object --+   |    \n            |   |    \n <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n                |    \n<a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a> --+\n                    |\n                   <strong class=\"uidshort\">Albers7Tuple</strong>\n</pre>\n\n<hr />\n<p>7-Tuple <code>(x, y, lat, lon, gamma, scale, datum)</code>, in \n  <code>meter</code>, <code>meter</code>, <code>degrees90</code>, \n  <code>degrees180</code>, <code>degrees360</code>, <code>scalar</code> and\n  <code>Datum</code> where <code>(x, y)</code> is the projected, \n  <code>(lat, lon)</code> the geodetic location, <code>gamma</code> the \n  meridian convergence at point, the bearing of the y-axis measured \n  clockwise from true North and <code>scale</code> is the azimuthal scale \n  of the projection at point.  The radial scale is the reciprocal <code>1 /\n  scale</code>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__delattr__\">__delattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__getattr__\">__getattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__setattr__\">__setattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#items\">items</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iteritems\">iteritems</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iterunits\">iterunits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#reUnit\">reUnit</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toUnits\">toUnits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>tuple</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__eq__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__iter__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__rmul__</code>,\n      <code>count</code>,\n      <code>index</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__new__\">__new__</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.albers.AlbersEqualArea-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.albers.AlbersEqualArea</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.albers-module.html\">Module&nbsp;albers</a> ::\n        Class&nbsp;AlbersEqualArea\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.albers.AlbersEqualArea-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class AlbersEqualArea</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+            \n           |            \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+        \n               |        \n<a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+    \n                   |    \n         <a href=\"pygeodesy.albers._AlbersBase-class.html\">_AlbersBase</a> --+\n                       |\n                      <strong class=\"uidshort\">AlbersEqualArea</strong>\n</pre>\n\n<hr />\n<p>An Albers equal-area (authalic) projection with a single standard \n  parallel.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"pygeodesy.albers.AlbersEqualArea2-class.html\" \n        class=\"link\">AlbersEqualArea2</a> and <a \n        href=\"pygeodesy.albers.AlbersEqualArea4-class.html\" \n        class=\"link\">AlbersEqualArea4</a>.\n      </p>\n</div><!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.albers.AlbersEqualArea-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lat</span>,\n        <span class=\"summary-sig-arg\">k0</span>=<span class=\"summary-sig-default\">1</span>,\n        <span class=\"summary-sig-arg\">datum</span>=<span class=\"summary-sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      New <a href=\"pygeodesy.albers.AlbersEqualArea-class.html\" \n      class=\"link\">AlbersEqualArea</a> projection.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.albers._AlbersBase-class.html\">_AlbersBase</a></code></b>:\n      <code><a href=\"pygeodesy.albers._AlbersBase-class.html#forward\">forward</a></code>,\n      <code><a href=\"pygeodesy.albers._AlbersBase-class.html#rescale0\">rescale0</a></code>,\n      <code><a href=\"pygeodesy.albers._AlbersBase-class.html#reverse\">reverse</a></code>,\n      <code><a href=\"pygeodesy.albers._AlbersBase-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.albers._AlbersBase-class.html#toStr\">toStr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#others\">others</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.albers._AlbersBase-class.html\">_AlbersBase</a></code></b>:\n      <code><a href=\"pygeodesy.albers._AlbersBase-class.html#a\">a</a></code>,\n      <code><a href=\"pygeodesy.albers._AlbersBase-class.html#datum\">datum</a></code>,\n      <code><a href=\"pygeodesy.albers._AlbersBase-class.html#ellipsoid\">ellipsoid</a></code>,\n      <code><a href=\"pygeodesy.albers._AlbersBase-class.html#equatoradius\">equatoradius</a></code>,\n      <code><a href=\"pygeodesy.albers._AlbersBase-class.html#f\">f</a></code>,\n      <code><a href=\"pygeodesy.albers._AlbersBase-class.html#flattening\">flattening</a></code>,\n      <code><a href=\"pygeodesy.albers._AlbersBase-class.html#isPolar\">isPolar</a></code>,\n      <code><a href=\"pygeodesy.albers._AlbersBase-class.html#ispolar\">ispolar</a></code>,\n      <code><a href=\"pygeodesy.albers._AlbersBase-class.html#lat0\">lat0</a></code>,\n      <code><a href=\"pygeodesy.albers._AlbersBase-class.html#lat1\">lat1</a></code>,\n      <code><a href=\"pygeodesy.albers._AlbersBase-class.html#lat2\">lat2</a></code>,\n      <code><a href=\"pygeodesy.albers._AlbersBase-class.html#majoradius\">majoradius</a></code>,\n      <code><a href=\"pygeodesy.albers._AlbersBase-class.html#scale0\">scale0</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lat</span>,\n        <span class=\"sig-arg\">k0</span>=<span class=\"sig-default\">1</span>,\n        <span class=\"sig-arg\">datum</span>=<span class=\"sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.albers.AlbersEqualArea-class.html\" \n  class=\"link\">AlbersEqualArea</a> projection.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat</code></strong> - Standard parallel (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>k0</code></strong> - Azimuthal scale on the standard parallel (<code>scalar</code>).</li>\n        <li><strong class=\"pname\"><code>datum</code></strong> - Optional datum or ellipsoid (<a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>, \n          <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a> or <a \n          href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> for the projection \n          (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.albers.AlbersError-class.html\">AlbersError</a></strong></code> - Invalid <b><code>lat</code></b>, <b><code>k0</code></b> or no \n        convergence.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.albers.AlbersEqualArea2-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.albers.AlbersEqualArea2</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.albers-module.html\">Module&nbsp;albers</a> ::\n        Class&nbsp;AlbersEqualArea2\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.albers.AlbersEqualArea2-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class AlbersEqualArea2</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+            \n           |            \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+        \n               |        \n<a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+    \n                   |    \n         <a href=\"pygeodesy.albers._AlbersBase-class.html\">_AlbersBase</a> --+\n                       |\n                      <strong class=\"uidshort\">AlbersEqualArea2</strong>\n</pre>\n\n<hr />\n<p>An Albers equal-area (authalic) projection with two standard \n  parallels.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"pygeodesy.albers.AlbersEqualArea-class.html\" \n        class=\"link\">AlbersEqualArea</a> and <a \n        href=\"pygeodesy.albers.AlbersEqualArea4-class.html\" \n        class=\"link\">AlbersEqualArea4</a>.\n      </p>\n</div><!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.albers.AlbersEqualArea2-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lat1</span>,\n        <span class=\"summary-sig-arg\">lat2</span>,\n        <span class=\"summary-sig-arg\">k1</span>=<span class=\"summary-sig-default\">1</span>,\n        <span class=\"summary-sig-arg\">datum</span>=<span class=\"summary-sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      New <a href=\"pygeodesy.albers.AlbersEqualArea2-class.html\" \n      class=\"link\">AlbersEqualArea2</a> projection.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.albers._AlbersBase-class.html\">_AlbersBase</a></code></b>:\n      <code><a href=\"pygeodesy.albers._AlbersBase-class.html#forward\">forward</a></code>,\n      <code><a href=\"pygeodesy.albers._AlbersBase-class.html#rescale0\">rescale0</a></code>,\n      <code><a href=\"pygeodesy.albers._AlbersBase-class.html#reverse\">reverse</a></code>,\n      <code><a href=\"pygeodesy.albers._AlbersBase-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.albers._AlbersBase-class.html#toStr\">toStr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#others\">others</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.albers._AlbersBase-class.html\">_AlbersBase</a></code></b>:\n      <code><a href=\"pygeodesy.albers._AlbersBase-class.html#a\">a</a></code>,\n      <code><a href=\"pygeodesy.albers._AlbersBase-class.html#datum\">datum</a></code>,\n      <code><a href=\"pygeodesy.albers._AlbersBase-class.html#ellipsoid\">ellipsoid</a></code>,\n      <code><a href=\"pygeodesy.albers._AlbersBase-class.html#equatoradius\">equatoradius</a></code>,\n      <code><a href=\"pygeodesy.albers._AlbersBase-class.html#f\">f</a></code>,\n      <code><a href=\"pygeodesy.albers._AlbersBase-class.html#flattening\">flattening</a></code>,\n      <code><a href=\"pygeodesy.albers._AlbersBase-class.html#isPolar\">isPolar</a></code>,\n      <code><a href=\"pygeodesy.albers._AlbersBase-class.html#ispolar\">ispolar</a></code>,\n      <code><a href=\"pygeodesy.albers._AlbersBase-class.html#lat0\">lat0</a></code>,\n      <code><a href=\"pygeodesy.albers._AlbersBase-class.html#lat1\">lat1</a></code>,\n      <code><a href=\"pygeodesy.albers._AlbersBase-class.html#lat2\">lat2</a></code>,\n      <code><a href=\"pygeodesy.albers._AlbersBase-class.html#majoradius\">majoradius</a></code>,\n      <code><a href=\"pygeodesy.albers._AlbersBase-class.html#scale0\">scale0</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lat1</span>,\n        <span class=\"sig-arg\">lat2</span>,\n        <span class=\"sig-arg\">k1</span>=<span class=\"sig-default\">1</span>,\n        <span class=\"sig-arg\">datum</span>=<span class=\"sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.albers.AlbersEqualArea2-class.html\" \n  class=\"link\">AlbersEqualArea2</a> projection.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat1</code></strong> - First standard parallel (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lat2</code></strong> - Second standard parallel (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>k1</code></strong> - Azimuthal scale on the standard parallels (<code>scalar</code>).</li>\n        <li><strong class=\"pname\"><code>datum</code></strong> - Optional datum or ellipsoid (<a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>, \n          <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a> or <a \n          href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> for the projection \n          (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.albers.AlbersError-class.html\">AlbersError</a></strong></code> - Invalid <b><code>lat1</code></b>m <b><code>lat2</code></b>, \n        <b><code>k1</code></b> or no convergence.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.albers.AlbersEqualArea4-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.albers.AlbersEqualArea4</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.albers-module.html\">Module&nbsp;albers</a> ::\n        Class&nbsp;AlbersEqualArea4\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.albers.AlbersEqualArea4-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class AlbersEqualArea4</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+            \n           |            \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+        \n               |        \n<a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+    \n                   |    \n         <a href=\"pygeodesy.albers._AlbersBase-class.html\">_AlbersBase</a> --+\n                       |\n                      <strong class=\"uidshort\">AlbersEqualArea4</strong>\n</pre>\n\n<hr />\n<p>An Albers equal-area (authalic) projection specified by the \n  <code>sin</code> and <code>cos</code> of both standard parallels.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"pygeodesy.albers.AlbersEqualArea-class.html\" \n        class=\"link\">AlbersEqualArea</a> and <a \n        href=\"pygeodesy.albers.AlbersEqualArea2-class.html\" \n        class=\"link\">AlbersEqualArea2</a>.\n      </p>\n</div><!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.albers.AlbersEqualArea4-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">slat1</span>,\n        <span class=\"summary-sig-arg\">clat1</span>,\n        <span class=\"summary-sig-arg\">slat2</span>,\n        <span class=\"summary-sig-arg\">clat2</span>,\n        <span class=\"summary-sig-arg\">k1</span>=<span class=\"summary-sig-default\">1</span>,\n        <span class=\"summary-sig-arg\">datum</span>=<span class=\"summary-sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      New <a href=\"pygeodesy.albers.AlbersEqualArea4-class.html\" \n      class=\"link\">AlbersEqualArea4</a> projection.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.albers._AlbersBase-class.html\">_AlbersBase</a></code></b>:\n      <code><a href=\"pygeodesy.albers._AlbersBase-class.html#forward\">forward</a></code>,\n      <code><a href=\"pygeodesy.albers._AlbersBase-class.html#rescale0\">rescale0</a></code>,\n      <code><a href=\"pygeodesy.albers._AlbersBase-class.html#reverse\">reverse</a></code>,\n      <code><a href=\"pygeodesy.albers._AlbersBase-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.albers._AlbersBase-class.html#toStr\">toStr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#others\">others</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.albers._AlbersBase-class.html\">_AlbersBase</a></code></b>:\n      <code><a href=\"pygeodesy.albers._AlbersBase-class.html#a\">a</a></code>,\n      <code><a href=\"pygeodesy.albers._AlbersBase-class.html#datum\">datum</a></code>,\n      <code><a href=\"pygeodesy.albers._AlbersBase-class.html#ellipsoid\">ellipsoid</a></code>,\n      <code><a href=\"pygeodesy.albers._AlbersBase-class.html#equatoradius\">equatoradius</a></code>,\n      <code><a href=\"pygeodesy.albers._AlbersBase-class.html#f\">f</a></code>,\n      <code><a href=\"pygeodesy.albers._AlbersBase-class.html#flattening\">flattening</a></code>,\n      <code><a href=\"pygeodesy.albers._AlbersBase-class.html#isPolar\">isPolar</a></code>,\n      <code><a href=\"pygeodesy.albers._AlbersBase-class.html#ispolar\">ispolar</a></code>,\n      <code><a href=\"pygeodesy.albers._AlbersBase-class.html#lat0\">lat0</a></code>,\n      <code><a href=\"pygeodesy.albers._AlbersBase-class.html#lat1\">lat1</a></code>,\n      <code><a href=\"pygeodesy.albers._AlbersBase-class.html#lat2\">lat2</a></code>,\n      <code><a href=\"pygeodesy.albers._AlbersBase-class.html#majoradius\">majoradius</a></code>,\n      <code><a href=\"pygeodesy.albers._AlbersBase-class.html#scale0\">scale0</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">slat1</span>,\n        <span class=\"sig-arg\">clat1</span>,\n        <span class=\"sig-arg\">slat2</span>,\n        <span class=\"sig-arg\">clat2</span>,\n        <span class=\"sig-arg\">k1</span>=<span class=\"sig-default\">1</span>,\n        <span class=\"sig-arg\">datum</span>=<span class=\"sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.albers.AlbersEqualArea4-class.html\" \n  class=\"link\">AlbersEqualArea4</a> projection.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>slat1</code></strong> - Sine of first standard parallel (<code>scalar</code>).</li>\n        <li><strong class=\"pname\"><code>clat1</code></strong> - Cosine of first standard parallel (non-negative \n          <code>scalar</code>).</li>\n        <li><strong class=\"pname\"><code>slat2</code></strong> - Sine of second standard parallel (<code>scalar</code>).</li>\n        <li><strong class=\"pname\"><code>clat2</code></strong> - Cosine of second standard parallel (non-negative \n          <code>scalar</code>).</li>\n        <li><strong class=\"pname\"><code>k1</code></strong> - Azimuthal scale on the standard parallels (<code>scalar</code>).</li>\n        <li><strong class=\"pname\"><code>datum</code></strong> - Optional datum or ellipsoid (<a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>, \n          <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a> or <a \n          href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> for the projection \n          (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.albers.AlbersError-class.html\">AlbersError</a></strong></code> - Negative <b><code>clat1</code></b> or <b><code>clat2</code></b>, \n        <b><code>slat1</code></b> and <b><code>slat2</code></b> have \n        opposite signs (hemispheres), invalid <b><code>k1</code></b> or no \n        convergence.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.albers.AlbersEqualAreaCylindrical-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.albers.AlbersEqualAreaCylindrical</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.albers-module.html\">Module&nbsp;albers</a> ::\n        Class&nbsp;AlbersEqualAreaCylindrical\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.albers.AlbersEqualAreaCylindrical-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class AlbersEqualAreaCylindrical</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+            \n           |            \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+        \n               |        \n<a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+    \n                   |    \n         <a href=\"pygeodesy.albers._AlbersBase-class.html\">_AlbersBase</a> --+\n                       |\n                      <strong class=\"uidshort\">AlbersEqualAreaCylindrical</strong>\n</pre>\n\n<hr />\n<p>An <a href=\"pygeodesy.albers.AlbersEqualArea-class.html\" \n  class=\"link\">AlbersEqualArea</a> projection at <code>lat=0</code> and \n  <code>k0=1</code> degenerating to the cylindrical-equal-area \n  projection.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.albers.AlbersEqualAreaCylindrical-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lat</span>=<span class=\"summary-sig-default\">0.0</span>,\n        <span class=\"summary-sig-arg\">datum</span>=<span class=\"summary-sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      New <a href=\"pygeodesy.albers.AlbersEqualAreaCylindrical-class.html\" \n      class=\"link\">AlbersEqualAreaCylindrical</a> projection.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.albers._AlbersBase-class.html\">_AlbersBase</a></code></b>:\n      <code><a href=\"pygeodesy.albers._AlbersBase-class.html#forward\">forward</a></code>,\n      <code><a href=\"pygeodesy.albers._AlbersBase-class.html#rescale0\">rescale0</a></code>,\n      <code><a href=\"pygeodesy.albers._AlbersBase-class.html#reverse\">reverse</a></code>,\n      <code><a href=\"pygeodesy.albers._AlbersBase-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.albers._AlbersBase-class.html#toStr\">toStr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#others\">others</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.albers._AlbersBase-class.html\">_AlbersBase</a></code></b>:\n      <code><a href=\"pygeodesy.albers._AlbersBase-class.html#a\">a</a></code>,\n      <code><a href=\"pygeodesy.albers._AlbersBase-class.html#datum\">datum</a></code>,\n      <code><a href=\"pygeodesy.albers._AlbersBase-class.html#ellipsoid\">ellipsoid</a></code>,\n      <code><a href=\"pygeodesy.albers._AlbersBase-class.html#equatoradius\">equatoradius</a></code>,\n      <code><a href=\"pygeodesy.albers._AlbersBase-class.html#f\">f</a></code>,\n      <code><a href=\"pygeodesy.albers._AlbersBase-class.html#flattening\">flattening</a></code>,\n      <code><a href=\"pygeodesy.albers._AlbersBase-class.html#isPolar\">isPolar</a></code>,\n      <code><a href=\"pygeodesy.albers._AlbersBase-class.html#ispolar\">ispolar</a></code>,\n      <code><a href=\"pygeodesy.albers._AlbersBase-class.html#lat0\">lat0</a></code>,\n      <code><a href=\"pygeodesy.albers._AlbersBase-class.html#lat1\">lat1</a></code>,\n      <code><a href=\"pygeodesy.albers._AlbersBase-class.html#lat2\">lat2</a></code>,\n      <code><a href=\"pygeodesy.albers._AlbersBase-class.html#majoradius\">majoradius</a></code>,\n      <code><a href=\"pygeodesy.albers._AlbersBase-class.html#scale0\">scale0</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lat</span>=<span class=\"sig-default\">0.0</span>,\n        <span class=\"sig-arg\">datum</span>=<span class=\"sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.albers.AlbersEqualAreaCylindrical-class.html\" \n  class=\"link\">AlbersEqualAreaCylindrical</a> projection.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat</code></strong> - Standard parallel (<code>0 degrees</code> <i>fixed</i>).</li>\n        <li><strong class=\"pname\"><code>datum</code></strong> - Optional datum or ellipsoid (<a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>, \n          <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a> or <a \n          href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> for the projection \n          (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.albers.AlbersEqualAreaNorth-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.albers.AlbersEqualAreaNorth</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.albers-module.html\">Module&nbsp;albers</a> ::\n        Class&nbsp;AlbersEqualAreaNorth\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.albers.AlbersEqualAreaNorth-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class AlbersEqualAreaNorth</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+            \n           |            \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+        \n               |        \n<a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+    \n                   |    \n         <a href=\"pygeodesy.albers._AlbersBase-class.html\">_AlbersBase</a> --+\n                       |\n                      <strong class=\"uidshort\">AlbersEqualAreaNorth</strong>\n</pre>\n\n<hr />\n<p>An azimuthal <a href=\"pygeodesy.albers.AlbersEqualArea-class.html\" \n  class=\"link\">AlbersEqualArea</a> projection at <code>lat=90</code> and \n  <code>k0=1</code> degenerating to the <a \n  href=\"pygeodesy.azimuthal-module.html\" class=\"link\">azimuthal</a> <a \n  href=\"pygeodesy.azimuthal.LambertEqualArea-class.html\" \n  class=\"link\">LambertEqualArea</a> projection.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.albers.AlbersEqualAreaNorth-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lat</span>=<span class=\"summary-sig-default\">90.0</span>,\n        <span class=\"summary-sig-arg\">datum</span>=<span class=\"summary-sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      New <a href=\"pygeodesy.albers.AlbersEqualAreaNorth-class.html\" \n      class=\"link\">AlbersEqualAreaNorth</a> projection.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.albers._AlbersBase-class.html\">_AlbersBase</a></code></b>:\n      <code><a href=\"pygeodesy.albers._AlbersBase-class.html#forward\">forward</a></code>,\n      <code><a href=\"pygeodesy.albers._AlbersBase-class.html#rescale0\">rescale0</a></code>,\n      <code><a href=\"pygeodesy.albers._AlbersBase-class.html#reverse\">reverse</a></code>,\n      <code><a href=\"pygeodesy.albers._AlbersBase-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.albers._AlbersBase-class.html#toStr\">toStr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#others\">others</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.albers._AlbersBase-class.html\">_AlbersBase</a></code></b>:\n      <code><a href=\"pygeodesy.albers._AlbersBase-class.html#a\">a</a></code>,\n      <code><a href=\"pygeodesy.albers._AlbersBase-class.html#datum\">datum</a></code>,\n      <code><a href=\"pygeodesy.albers._AlbersBase-class.html#ellipsoid\">ellipsoid</a></code>,\n      <code><a href=\"pygeodesy.albers._AlbersBase-class.html#equatoradius\">equatoradius</a></code>,\n      <code><a href=\"pygeodesy.albers._AlbersBase-class.html#f\">f</a></code>,\n      <code><a href=\"pygeodesy.albers._AlbersBase-class.html#flattening\">flattening</a></code>,\n      <code><a href=\"pygeodesy.albers._AlbersBase-class.html#isPolar\">isPolar</a></code>,\n      <code><a href=\"pygeodesy.albers._AlbersBase-class.html#ispolar\">ispolar</a></code>,\n      <code><a href=\"pygeodesy.albers._AlbersBase-class.html#lat0\">lat0</a></code>,\n      <code><a href=\"pygeodesy.albers._AlbersBase-class.html#lat1\">lat1</a></code>,\n      <code><a href=\"pygeodesy.albers._AlbersBase-class.html#lat2\">lat2</a></code>,\n      <code><a href=\"pygeodesy.albers._AlbersBase-class.html#majoradius\">majoradius</a></code>,\n      <code><a href=\"pygeodesy.albers._AlbersBase-class.html#scale0\">scale0</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lat</span>=<span class=\"sig-default\">90.0</span>,\n        <span class=\"sig-arg\">datum</span>=<span class=\"sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.albers.AlbersEqualAreaNorth-class.html\" \n  class=\"link\">AlbersEqualAreaNorth</a> projection.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat</code></strong> - Standard parallel (<code>90 degrees</code> <i>fixed</i>).</li>\n        <li><strong class=\"pname\"><code>datum</code></strong> - Optional datum or ellipsoid (<a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>, \n          <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a> or <a \n          href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> for the projection \n          (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.albers.AlbersEqualAreaSouth-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.albers.AlbersEqualAreaSouth</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.albers-module.html\">Module&nbsp;albers</a> ::\n        Class&nbsp;AlbersEqualAreaSouth\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.albers.AlbersEqualAreaSouth-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class AlbersEqualAreaSouth</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+            \n           |            \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+        \n               |        \n<a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+    \n                   |    \n         <a href=\"pygeodesy.albers._AlbersBase-class.html\">_AlbersBase</a> --+\n                       |\n                      <strong class=\"uidshort\">AlbersEqualAreaSouth</strong>\n</pre>\n\n<hr />\n<p>An azimuthal <a href=\"pygeodesy.albers.AlbersEqualArea-class.html\" \n  class=\"link\">AlbersEqualArea</a> projection at <code>lat=-90</code> and \n  <code>k0=1</code> degenerating to the <a \n  href=\"pygeodesy.azimuthal-module.html\" class=\"link\">azimuthal</a> <a \n  href=\"pygeodesy.azimuthal.LambertEqualArea-class.html\" \n  class=\"link\">LambertEqualArea</a> projection.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.albers.AlbersEqualAreaSouth-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lat</span>=<span class=\"summary-sig-default\">-90.0</span>,\n        <span class=\"summary-sig-arg\">datum</span>=<span class=\"summary-sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      New <a href=\"pygeodesy.albers.AlbersEqualAreaSouth-class.html\" \n      class=\"link\">AlbersEqualAreaSouth</a> projection.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.albers._AlbersBase-class.html\">_AlbersBase</a></code></b>:\n      <code><a href=\"pygeodesy.albers._AlbersBase-class.html#forward\">forward</a></code>,\n      <code><a href=\"pygeodesy.albers._AlbersBase-class.html#rescale0\">rescale0</a></code>,\n      <code><a href=\"pygeodesy.albers._AlbersBase-class.html#reverse\">reverse</a></code>,\n      <code><a href=\"pygeodesy.albers._AlbersBase-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.albers._AlbersBase-class.html#toStr\">toStr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#others\">others</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.albers._AlbersBase-class.html\">_AlbersBase</a></code></b>:\n      <code><a href=\"pygeodesy.albers._AlbersBase-class.html#a\">a</a></code>,\n      <code><a href=\"pygeodesy.albers._AlbersBase-class.html#datum\">datum</a></code>,\n      <code><a href=\"pygeodesy.albers._AlbersBase-class.html#ellipsoid\">ellipsoid</a></code>,\n      <code><a href=\"pygeodesy.albers._AlbersBase-class.html#equatoradius\">equatoradius</a></code>,\n      <code><a href=\"pygeodesy.albers._AlbersBase-class.html#f\">f</a></code>,\n      <code><a href=\"pygeodesy.albers._AlbersBase-class.html#flattening\">flattening</a></code>,\n      <code><a href=\"pygeodesy.albers._AlbersBase-class.html#isPolar\">isPolar</a></code>,\n      <code><a href=\"pygeodesy.albers._AlbersBase-class.html#ispolar\">ispolar</a></code>,\n      <code><a href=\"pygeodesy.albers._AlbersBase-class.html#lat0\">lat0</a></code>,\n      <code><a href=\"pygeodesy.albers._AlbersBase-class.html#lat1\">lat1</a></code>,\n      <code><a href=\"pygeodesy.albers._AlbersBase-class.html#lat2\">lat2</a></code>,\n      <code><a href=\"pygeodesy.albers._AlbersBase-class.html#majoradius\">majoradius</a></code>,\n      <code><a href=\"pygeodesy.albers._AlbersBase-class.html#scale0\">scale0</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lat</span>=<span class=\"sig-default\">-90.0</span>,\n        <span class=\"sig-arg\">datum</span>=<span class=\"sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.albers.AlbersEqualAreaSouth-class.html\" \n  class=\"link\">AlbersEqualAreaSouth</a> projection.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat</code></strong> - Standard parallel (<code>-90 degrees</code> <i>fixed</i>).</li>\n        <li><strong class=\"pname\"><code>datum</code></strong> - Optional datum or ellipsoid (<a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>, \n          <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a> or <a \n          href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> for the projection \n          (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.albers.AlbersError-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.albers.AlbersError</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.albers-module.html\">Module&nbsp;albers</a> ::\n        Class&nbsp;AlbersError\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.albers.AlbersError-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class AlbersError</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n              object --+                    \n                       |                    \nexceptions.BaseException --+                \n                           |                \n        exceptions.Exception --+            \n                               |            \n        exceptions.StandardError --+        \n                                   |        \n               exceptions.ValueError --+    \n                                       |    \n                      errors._ValueError --+\n                                           |\n                                          <strong class=\"uidshort\">AlbersError</strong>\n</pre>\n\n<hr />\n<p>An <a href=\"pygeodesy.albers.AlbersEqualArea-class.html\" \n  class=\"link\">AlbersEqualArea</a>, <a \n  href=\"pygeodesy.albers.AlbersEqualArea2-class.html\" \n  class=\"link\">AlbersEqualArea2</a>, <a \n  href=\"pygeodesy.albers.AlbersEqualArea4-class.html\" \n  class=\"link\">AlbersEqualArea4</a>, <a \n  href=\"pygeodesy.albers.AlbersEqualAreaCylindrical-class.html\" \n  class=\"link\">AlbersEqualAreaCylindrical</a>, <a \n  href=\"pygeodesy.albers.AlbersEqualAreaNorth-class.html\" \n  class=\"link\">AlbersEqualAreaNorth</a>, <a \n  href=\"pygeodesy.albers.AlbersEqualAreaSouth-class.html\" \n  class=\"link\">AlbersEqualAreaSouth</a> or <a \n  href=\"pygeodesy.albers.Albers7Tuple-class.html\" \n  class=\"link\">Albers7Tuple</a> issue.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>errors._ValueError</code></b>:\n      <code>__init__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.ValueError</code></b>:\n      <code>__new__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.BaseException</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getslice__</code>,\n      <code>__reduce__</code>,\n      <code>__repr__</code>,\n      <code>__setattr__</code>,\n      <code>__setstate__</code>,\n      <code>__str__</code>,\n      <code>__unicode__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__format__</code>,\n      <code>__hash__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.BaseException</code></b>:\n      <code>args</code>,\n      <code>message</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.albers._AlbersBase-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.albers._AlbersBase</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.albers-module.html\">Module&nbsp;albers</a> ::\n        Class&nbsp;_AlbersBase\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.albers._AlbersBase-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class _AlbersBase</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+        \n           |        \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n               |    \n<a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+\n                   |\n                  <strong class=\"uidshort\">_AlbersBase</strong>\n</pre>\n\n<dl><dt>Known Subclasses:</dt>\n<dd>\n      <ul class=\"subclass-list\">\n<li><a href=\"pygeodesy.albers.AlbersEqualArea-class.html\">AlbersEqualArea</a></li><li>, <a href=\"pygeodesy.albers.AlbersEqualArea2-class.html\">AlbersEqualArea2</a></li><li>, <a href=\"pygeodesy.albers.AlbersEqualArea4-class.html\">AlbersEqualArea4</a></li><li>, <a href=\"pygeodesy.albers.AlbersEqualAreaCylindrical-class.html\">AlbersEqualAreaCylindrical</a></li><li>, <a href=\"pygeodesy.albers.AlbersEqualAreaNorth-class.html\">AlbersEqualAreaNorth</a></li><li>, <a href=\"pygeodesy.albers.AlbersEqualAreaSouth-class.html\">AlbersEqualAreaSouth</a></li>  </ul>\n</dd></dl>\n\n<hr />\n<p>(INTERNAL) Base class for <code>AlbersEqualArea...</code> \n  projections.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <i>Karney</i>'s C++ class <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1AlbersEqualArea.html\"\n        target=\"_top\">AlbersEqualArea</a>, method <code>Init</code>.\n      </p>\n</div><!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.albers._AlbersBase-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">sa1</span>,\n        <span class=\"summary-sig-arg\">ca1</span>,\n        <span class=\"summary-sig-arg\">sa2</span>,\n        <span class=\"summary-sig-arg\">ca2</span>,\n        <span class=\"summary-sig-arg\">k</span>,\n        <span class=\"summary-sig-arg\">datum</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      (INTERNAL) New <code>AlbersEqualArea...</code> instance.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.albers._AlbersBase-class.html#forward\" class=\"summary-sig-name\">forward</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lat</span>,\n        <span class=\"summary-sig-arg\">lon</span>,\n        <span class=\"summary-sig-arg\">lon0</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Convert a geodetic location to east- and northing.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.albers._AlbersBase-class.html#rescale0\" class=\"summary-sig-name\">rescale0</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lat</span>,\n        <span class=\"summary-sig-arg\">k</span>=<span class=\"summary-sig-default\">1</span>)</span><br />\n      Set the azimuthal scale for this projection.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.albers._AlbersBase-class.html#reverse\" class=\"summary-sig-name\">reverse</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">x</span>,\n        <span class=\"summary-sig-arg\">y</span>,\n        <span class=\"summary-sig-arg\">lon0</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">LatLon</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**name_LatLon_kwds</span>)</span><br />\n      Convert an east- and northing location to geodetic lat- and \n      longitude.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.albers._AlbersBase-class.html#toRepr\" class=\"summary-sig-name\">toRepr</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">prec</span>=<span class=\"summary-sig-default\">6</span>,\n        <span class=\"summary-sig-arg\">**unused</span>)</span><br />\n      Return a string representation of this projection.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.albers._AlbersBase-class.html#toStr\" class=\"summary-sig-name\">toStr</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">prec</span>=<span class=\"summary-sig-default\">6</span>,\n        <span class=\"summary-sig-arg\">sep</span>=<span class=\"summary-sig-default\">' '</span>,\n        <span class=\"summary-sig-arg\">**unused</span>)</span><br />\n      Return a string representation of this projection.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#others\">others</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.albers._AlbersBase-class.html#datum\" class=\"summary-name\">datum</a><br />\n      Get the datum (<a href=\"pygeodesy.datums.Datum-class.html\" \n      class=\"link\">Datum</a>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.albers._AlbersBase-class.html#ellipsoid\" class=\"summary-name\">ellipsoid</a><br />\n      Get the datum's ellipsoid (<a \n      href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n      class=\"link\">Ellipsoid</a>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.albers._AlbersBase-class.html#equatoradius\" class=\"summary-name\">equatoradius</a><br />\n      Get the <code>ellipsoid</code>'s equatorial radius, semi-axis \n      (<code>meter</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.albers._AlbersBase-class.html#a\" class=\"summary-name\">a</a><br />\n      Get the <code>ellipsoid</code>'s equatorial radius, semi-axis \n      (<code>meter</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.albers._AlbersBase-class.html#flattening\" class=\"summary-name\">flattening</a><br />\n      Get the <code>ellipsoid</code>'s flattening (<code>scalar</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.albers._AlbersBase-class.html#f\" class=\"summary-name\">f</a><br />\n      Get the <code>ellipsoid</code>'s flattening (<code>scalar</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.albers._AlbersBase-class.html#ispolar\" class=\"summary-name\">ispolar</a><br />\n      Is this projection polar (<code>bool</code>)?\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.albers._AlbersBase-class.html#isPolar\" class=\"summary-name\">isPolar</a><br />\n      Is this projection polar (<code>bool</code>)?\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.albers._AlbersBase-class.html#lat0\" class=\"summary-name\">lat0</a><br />\n      Get the latitude of the projection origin (<code>degrees</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.albers._AlbersBase-class.html#lat1\" class=\"summary-name\">lat1</a><br />\n      Get the latitude of the first parallel (<code>degrees</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.albers._AlbersBase-class.html#lat2\" class=\"summary-name\">lat2</a><br />\n      Get the latitude of the second parallel (<code>degrees</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.albers._AlbersBase-class.html#majoradius\" class=\"summary-name\">majoradius</a><br />\n      DEPRECATED, use property <code>equatoradius</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.albers._AlbersBase-class.html#scale0\" class=\"summary-name\">scale0</a><br />\n      Get the central scale for the projection (<code>float</code>).\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">sa1</span>,\n        <span class=\"sig-arg\">ca1</span>,\n        <span class=\"sig-arg\">sa2</span>,\n        <span class=\"sig-arg\">ca2</span>,\n        <span class=\"sig-arg\">k</span>,\n        <span class=\"sig-arg\">datum</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>(INTERNAL) New <code>AlbersEqualArea...</code> instance.</p>\n  <dl class=\"fields\">\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"forward\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">forward</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lat</span>,\n        <span class=\"sig-arg\">lon</span>,\n        <span class=\"sig-arg\">lon0</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert a geodetic location to east- and northing.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat</code></strong> - Latitude of the location (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lon</code></strong> - Longitude of the location (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lon0</code></strong> - Optional central meridian longitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> for the location \n          (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>An <a href=\"pygeodesy.albers.Albers7Tuple-class.html\" \n          class=\"link\">Albers7Tuple</a><code>(x, y, lat, lon, gamma, scale,\n          datum)</code>, with <code>lon</code> offset by \n          <b><code>lon0</code></b> and reduced <code>[-180,180]</code>.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        The origin latitude is returned by <code>property lat0</code>.  No \n        false easting or northing is added.  The value of \n        <b><code>lat</code></b> should be in the range <code>[-90..90] \n        degrees</code>.  The returned values <code>x</code> and \n        <code>y</code> will be large but finite for points projecting to \n        infinity, i.e. one or both of the poles.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"rescale0\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">rescale0</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lat</span>,\n        <span class=\"sig-arg\">k</span>=<span class=\"sig-default\">1</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Set the azimuthal scale for this projection.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat</code></strong> - Northern latitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>k</code></strong> - Azimuthal scale at latitude <b><code>lat</code></b> \n          (<code>scalar</code>).</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.albers.AlbersError-class.html\">AlbersError</a></strong></code> - Invalid <b><code>lat</code></b> or <b><code>k</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        This allows a <i>latitude of conformality</i> to be specified.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"reverse\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">reverse</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">x</span>,\n        <span class=\"sig-arg\">y</span>,\n        <span class=\"sig-arg\">lon0</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">LatLon</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**name_LatLon_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert an east- and northing location to geodetic lat- and \n  longitude.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>x</code></strong> - Easting of the location (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>y</code></strong> - Northing of the location (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>lon0</code></strong> - Optional central meridian longitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>LatLon</code></strong> - Class to use (<code>LatLon</code>) or <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>name_LatLon_kwds</code></strong> - Optional <code><b>name</b>=NN</code> for the location and \n          optional, additional <b><code>LatLon</code></b> keyword \n          arguments, ignored if <code><b>LatLon</b> is None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The geodetic (<code>LatLon</code>) or if <code><b>LatLon</b> is \n          None</code> an <a href=\"pygeodesy.albers.Albers7Tuple-class.html\"\n          class=\"link\">Albers7Tuple</a><code>(x, y, lat, lon, gamma, scale,\n          datum)</code>.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        The origin latitude is returned by <code>property lat0</code>.  No \n        false easting or northing is added.  The returned value of \n        <code>lon</code> is in the range <code>[-180..180] degrees</code> \n        and <code>lat</code> is in the range <code>[-90..90] \n        degrees</code>.  If the given <b><code>x</code></b> or \n        <b><code>y</code></b> point is outside the valid projected space \n        the nearest pole is returned.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"toRepr\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toRepr</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">prec</span>=<span class=\"sig-default\">6</span>,\n        <span class=\"sig-arg\">**unused</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return a string representation of this projection.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>prec</code></strong> - Number of (decimal) digits, unstripped (<code>int</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>This projection as <code>&quot;&lt;classname&gt;(lat1, lat2, \n          ...)&quot;</code> (<code>str</code>).</dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.named._Named-class.html#toRepr\">named._Named.toRepr</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toStr\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toStr</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">prec</span>=<span class=\"sig-default\">6</span>,\n        <span class=\"sig-arg\">sep</span>=<span class=\"sig-default\">' '</span>,\n        <span class=\"sig-arg\">**unused</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return a string representation of this projection.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>prec</code></strong> - Number of (decimal) digits, unstripped (<code>int</code>).</li>\n        <li><strong class=\"pname\"><code>sep</code></strong> - Separator to join (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>This projection as <code>&quot;lat1 lat2&quot;</code> \n          (<code>str</code>).</dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.named._Named-class.html#toStr\">named._Named.toStr</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"datum\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">datum</h3>\n  <p>Get the datum (<a href=\"pygeodesy.datums.Datum-class.html\" \n  class=\"link\">Datum</a>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">datum(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the datum (<a href=\"pygeodesy.datums.Datum-class.html\" \nclass=\"link\">Datum</a>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"ellipsoid\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">ellipsoid</h3>\n  <p>Get the datum's ellipsoid (<a \n  href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n  class=\"link\">Ellipsoid</a>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">ellipsoid(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the datum's ellipsoid (<a \nhref=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \nclass=\"link\">Ellipsoid</a>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"equatoradius\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">equatoradius</h3>\n  <p>Get the <code>ellipsoid</code>'s equatorial radius, semi-axis \n  (<code>meter</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">equatoradius(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <code>ellipsoid</code>'s equatorial radius, semi-axis \n(<code>meter</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"a\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">a</h3>\n  <p>Get the <code>ellipsoid</code>'s equatorial radius, semi-axis \n  (<code>meter</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">equatoradius(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <code>ellipsoid</code>'s equatorial radius, semi-axis \n(<code>meter</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"flattening\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">flattening</h3>\n  <p>Get the <code>ellipsoid</code>'s flattening (<code>scalar</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">flattening(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <code>ellipsoid</code>'s flattening (<code>scalar</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"f\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">f</h3>\n  <p>Get the <code>ellipsoid</code>'s flattening (<code>scalar</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">flattening(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <code>ellipsoid</code>'s flattening (<code>scalar</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"ispolar\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">ispolar</h3>\n  <p>Is this projection polar (<code>bool</code>)?</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">ispolar(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Is this projection polar (<code>bool</code>)?\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"isPolar\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">isPolar</h3>\n  <p>Is this projection polar (<code>bool</code>)?</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">ispolar(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Is this projection polar (<code>bool</code>)?\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"lat0\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">lat0</h3>\n  <p>Get the latitude of the projection origin (<code>degrees</code>).</p>\n  <p>This is the latitude of minimum azimuthal scale and equals the \n  <b><code>lat</code></b> in the 1-parallel <a \n  href=\"pygeodesy.albers.AlbersEqualArea-class.html\" \n  class=\"link\">AlbersEqualArea</a> and lies between \n  <b><code>lat1</code></b> and <b><code>lat2</code></b> for the 2-parallel \n  <a href=\"pygeodesy.albers.AlbersEqualArea2-class.html\" \n  class=\"link\">AlbersEqualArea2</a> and <a \n  href=\"pygeodesy.albers.AlbersEqualArea4-class.html\" \n  class=\"link\">AlbersEqualArea4</a> projections.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">lat0(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the latitude of the projection origin (<code>degrees</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"lat1\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">lat1</h3>\n  <p>Get the latitude of the first parallel (<code>degrees</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">lat1(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the latitude of the first parallel (<code>degrees</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"lat2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">lat2</h3>\n  <p>Get the latitude of the second parallel (<code>degrees</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">lat2(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the latitude of the second parallel (<code>degrees</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        The second and first parallel latitudes are the same instance for \n        1-parallel <code>AlbersEqualArea*</code> projections.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"majoradius\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">majoradius</h3>\n  <p>DEPRECATED, use property <code>equatoradius</code>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">majoradius(<span class=\"summary-sig-arg\">self</span>)</span>\n        - DEPRECATED, use property <code>equatoradius</code>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"scale0\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">scale0</h3>\n  <p>Get the central scale for the projection (<code>float</code>).</p>\n  <p>This is the azimuthal scale on the latitude of origin of the \n  projection, see <code>property lat0</code>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">scale0(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the central scale for the projection (<code>float</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.angles-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.angles</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        Module&nbsp;angles\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.angles-module.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== MODULE DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Module angles</h1><p class=\"nomargin-top\"></p>\n<p>Classes <a href=\"pygeodesy.angles.Ang-class.html\" \n  class=\"link\">Ang</a>, <a href=\"pygeodesy.angles-module.html#Deg\" \n  class=\"link\">Deg</a>, <a href=\"pygeodesy.angles-module.html#Rad\" \n  class=\"link\">Rad</a> and <a href=\"pygeodesy.angles.Lambertian-class.html\"\n  class=\"link\">Lambertian</a> accurately representing an angle as a 3-tuple\n  <code>(sine, cosine, turns)</code>, with <code>turns</code> the number of\n  full turns.</p>\n  <p>Transcoded to pure Python from <i>Karney</i>'s GeographicLib 2.7 C++ \n  class <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1AngleT.html\"\n  target=\"_top\">AngleT</a>.</p>\n  <p>Copyright (C) <a href=\"mailto:Karney@Alum.MIT.edu\" \n  target=\"_top\">Charles Karney</a> (2024-2025) and licensed under the \n  MIT/X11 License.  For more information, see the <a \n  href=\"https://GeographicLib.SourceForge.io/\" target=\"_top\">GeographicLib \n  2.7</a> documentation.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Version:</strong>\n        25.12.02\n      </p>\n</div><!-- ==================== CLASSES ==================== -->\n<a name=\"section-Classes\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Classes</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.angles.Ang-class.html\" class=\"summary-name\">Ang</a><br />\n      An accurate representation of angles, as 3-tuple <code>(s, c, \n        n)</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.angles.Lambertian-class.html\" class=\"summary-name\">Lambertian</a><br />\n      A <code>Lambertian</code> in <code>radians</code>.\n    </td>\n  </tr>\n</table>\n<!-- ==================== FUNCTIONS ==================== -->\n<a name=\"section-Functions\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Functions</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"Deg\"></a><span class=\"summary-sig-name\">Deg</span>(<span class=\"summary-sig-arg\">deg</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Return an <a href=\"pygeodesy.angles.Ang-class.html\" \n      class=\"link\">Ang</a> from <code>deg</code> degrees or an other <a \n      href=\"pygeodesy.angles.Ang-class.html\" class=\"link\">Ang</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"isAng\"></a><span class=\"summary-sig-name\">isAng</span>(<span class=\"summary-sig-arg\">ang</span>)</span><br />\n      Is <code>ang</code> an <a href=\"pygeodesy.angles.Ang-class.html\" \n      class=\"link\">Ang</a> instance?</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"Rad\"></a><span class=\"summary-sig-name\">Rad</span>(<span class=\"summary-sig-arg\">rad</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Return an <a href=\"pygeodesy.angles.Ang-class.html\" \n      class=\"link\">Ang</a> from <code>rad</code> radians or an other <a \n      href=\"pygeodesy.angles.Ang-class.html\" class=\"link\">Ang</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== VARIABLES ==================== -->\n<a name=\"section-Variables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Variables</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"__all__\"></a><span class=\"summary-name\">__all__</span> = <code title=\"_ALL_LAZY.angles\">_ALL_LAZY.angles</code>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.angles.Ang-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.angles.Ang</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.angles-module.html\">Module&nbsp;angles</a> ::\n        Class&nbsp;Ang\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.angles.Ang-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Ang</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+    \n           |    \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+\n               |\n              <strong class=\"uidshort\">Ang</strong>\n</pre>\n\n<hr />\n<p>An accurate representation of angles, as 3-tuple <code>(s, c, \n  n)</code>.</p>\n  <p>This class represents an angle via its sine <code>s</code>, cosine \n  <code>c</code> and the number of full turns <code>n</code>.  The angle is\n  then <code>atan2(s, c) + n * PI2</code>.  This representation offers \n  several advantages:</p>\n  <ul>\n    <li>\n      cardinal directions (multiples of 90 degrees) are exactly represented\n      (a benefit shared by representing angles as degrees)\n    </li>\n    <li>\n      angles very close to any cardinal direction are accurately \n      represented\n    </li>\n    <li>\n      there's no loss of precision with large angles (outside the \n      &quot;normal&quot; range [-180, +180])\n    </li>\n    <li>\n      various operations, such as adding a multiple of 90 degrees to an \n      angle are performed exactly.\n    </li>\n  </ul>\n\n<hr />\n<div class=\"fields\">      <p><strong>Note:</strong>\n        <b><code>n</code></b> is a <code>float</code>, this allows it to be\n        NAN, INF or NINF.\n      </p>\n</div><!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.angles.Ang-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">s_ang</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">c</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">n</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">normal</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">**unit_name</span>)</span><br />\n      New <a href=\"pygeodesy.angles.Ang-class.html\" class=\"link\">Ang</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__abs__\"></a><span class=\"summary-sig-name\">__abs__</span>(<span class=\"summary-sig-arg\">self</span>)</span></td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__add__\"></a><span class=\"summary-sig-name\">__add__</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span></td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__bool__\"></a><span class=\"summary-sig-name\">__bool__</span>(<span class=\"summary-sig-arg\">self</span>)</span></td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__ceil__\"></a><span class=\"summary-sig-name\">__ceil__</span>(<span class=\"summary-sig-arg\">self</span>)</span></td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__cmp__\"></a><span class=\"summary-sig-name\">__cmp__</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span></td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__divmod__\"></a><span class=\"summary-sig-name\">__divmod__</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span></td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__eq__\"></a><span class=\"summary-sig-name\">__eq__</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span></td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__float__\"></a><span class=\"summary-sig-name\">__float__</span>(<span class=\"summary-sig-arg\">self</span>)</span></td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__floor__\"></a><span class=\"summary-sig-name\">__floor__</span>(<span class=\"summary-sig-arg\">self</span>)</span></td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__floordiv__\"></a><span class=\"summary-sig-name\">__floordiv__</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span></td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__ge__\"></a><span class=\"summary-sig-name\">__ge__</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span></td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__gt__\"></a><span class=\"summary-sig-name\">__gt__</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span></td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.angles.Ang-class.html#__hash__\" class=\"summary-sig-name\">__hash__</a>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      hash(x)</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__iadd__\"></a><span class=\"summary-sig-name\">__iadd__</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span></td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__ifloordiv__\"></a><span class=\"summary-sig-name\">__ifloordiv__</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span></td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.angles.Ang-class.html#__imatmul__\" class=\"summary-sig-name\">__imatmul__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span><br />\n      Not implemented.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__imod__\"></a><span class=\"summary-sig-name\">__imod__</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span></td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__imul__\"></a><span class=\"summary-sig-name\">__imul__</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span></td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__int__\"></a><span class=\"summary-sig-name\">__int__</span>(<span class=\"summary-sig-arg\">self</span>)</span></td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__invert__\"></a><span class=\"summary-sig-name\">__invert__</span>(<span class=\"summary-sig-arg\">self</span>)</span></td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__ipow__\"></a><span class=\"summary-sig-name\">__ipow__</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>,\n        <span class=\"summary-sig-arg\">*mod</span>)</span></td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__isub__\"></a><span class=\"summary-sig-name\">__isub__</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span></td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__itruediv__\"></a><span class=\"summary-sig-name\">__itruediv__</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span></td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__le__\"></a><span class=\"summary-sig-name\">__le__</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span></td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__lt__\"></a><span class=\"summary-sig-name\">__lt__</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span></td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.angles.Ang-class.html#__matmul__\" class=\"summary-sig-name\">__matmul__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span><br />\n      Not implemented.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__mod__\"></a><span class=\"summary-sig-name\">__mod__</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span></td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__mul__\"></a><span class=\"summary-sig-name\">__mul__</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span></td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__ne__\"></a><span class=\"summary-sig-name\">__ne__</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span></td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__neg__\"></a><span class=\"summary-sig-name\">__neg__</span>(<span class=\"summary-sig-arg\">self</span>)</span></td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__pos__\"></a><span class=\"summary-sig-name\">__pos__</span>(<span class=\"summary-sig-arg\">self</span>)</span></td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__pow__\"></a><span class=\"summary-sig-name\">__pow__</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>,\n        <span class=\"summary-sig-arg\">*mod</span>)</span></td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__radd__\"></a><span class=\"summary-sig-name\">__radd__</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span></td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__rdivmod__\"></a><span class=\"summary-sig-name\">__rdivmod__</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span></td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.angles.Ang-class.html#__repr__\" class=\"summary-sig-name\">__repr__</a>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Default <code>repr(self)</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__rfloordiv__\"></a><span class=\"summary-sig-name\">__rfloordiv__</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span></td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.angles.Ang-class.html#__rmatmul__\" class=\"summary-sig-name\">__rmatmul__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span><br />\n      Not implemented.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__rmod__\"></a><span class=\"summary-sig-name\">__rmod__</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span></td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__rmul__\"></a><span class=\"summary-sig-name\">__rmul__</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span></td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__round__\"></a><span class=\"summary-sig-name\">__round__</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">*ndigits</span>)</span></td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__rpow__\"></a><span class=\"summary-sig-name\">__rpow__</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>,\n        <span class=\"summary-sig-arg\">*mod</span>)</span></td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__rsub__\"></a><span class=\"summary-sig-name\">__rsub__</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span></td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__rtruediv__\"></a><span class=\"summary-sig-name\">__rtruediv__</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span></td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.angles.Ang-class.html#__str__\" class=\"summary-sig-name\">__str__</a>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Default <code>str(self)</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__sub__\"></a><span class=\"summary-sig-name\">__sub__</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span></td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__truediv__\"></a><span class=\"summary-sig-name\">__truediv__</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span></td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__trunc__\"></a><span class=\"summary-sig-name\">__trunc__</span>(<span class=\"summary-sig-arg\">self</span>)</span></td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__div__\"></a><span class=\"summary-sig-name\">__div__</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span></td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__idiv__\"></a><span class=\"summary-sig-name\">__idiv__</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span></td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__long__\"></a><span class=\"summary-sig-name\">__long__</span>(<span class=\"summary-sig-arg\">self</span>)</span></td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__nonzero__\"></a><span class=\"summary-sig-name\">__nonzero__</span>(<span class=\"summary-sig-arg\">self</span>)</span></td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__rdiv__\"></a><span class=\"summary-sig-name\">__rdiv__</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span></td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"base\"></a><span class=\"summary-sig-name\">base</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">*center</span>)</span><br />\n      Return this <code>Angle</code>'s base, optionally centered.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.angles.Ang-class.html#copy\" class=\"summary-sig-name\">copy</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">**unit_name</span>)</span><br />\n      Return a copy of this <code>Ang</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"divmod\"></a><span class=\"summary-sig-name\">divmod</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span></td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"flipsign\"></a><span class=\"summary-sig-name\">flipsign</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">mul</span>=<span class=\"summary-sig-default\">-1</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Copy this <code>Ang</code> with sign flipped.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"is_integer\"></a><span class=\"summary-sig-name\">is_integer</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">*n</span>)</span><br />\n      Is this <code>Ang</code>'s degrees <code>integer</code>? \n      (<code>bool</code>).</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"isnear0\"></a><span class=\"summary-sig-name\">isnear0</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">eps0</span>=<span class=\"summary-sig-default\">staticmethod(pygeodesy.angles.Ang.EPS0)</span>)</span><br />\n      Is this <code>Ang</code> near <code>0</code> within a tolerance?</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.angles.Ang-class.html#mod\" class=\"summary-sig-name\">mod</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">mul</span>=<span class=\"summary-sig-default\">1.0</span>,\n        <span class=\"summary-sig-arg\">**unit_name</span>)</span><br />\n      Return the <i>reduced latitude</i> <code>atan(<b>mul</b> * \n      tan(<b>this</b>))</code> as an <code>Ang</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.angles.Ang-class.html#nearest\" class=\"summary-sig-name\">nearest</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">ind</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Return the closest cardinal direction (<code>Ang</code>).</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"normalize\"></a><span class=\"summary-sig-name\">normalize</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">*n</span>)</span><br />\n      Re-normalize this <code>Ang</code>, optionally replacing turns.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"pow\"></a><span class=\"summary-sig-name\">pow</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>,\n        <span class=\"summary-sig-arg\">*mod</span>)</span></td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.angles.Ang-class.html#reflect\" class=\"summary-sig-name\">reflect</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">flips</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">flipc</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">swapsc</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Reflect this <code>Ang</code> in various ways.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"round\"></a><span class=\"summary-sig-name\">round</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">*ndigits</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Return this <code>Ang</code>, optionally rounded to \n      <code>ndigits</code> (<code>Ang</code>).</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"shift\"></a><span class=\"summary-sig-name\">shift</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">q</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">**unit_name</span>)</span><br />\n      Shift this <code>Ang</code> by <code>q</code> <i>quarter</i> turns \n      (<code>scalar</code>).</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.angles.Ang-class.html#signOf\" class=\"summary-sig-name\">signOf</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">*n</span>)</span><br />\n      Determine this <code>Ang</code>'s sign, optionally replacing the \n      turns.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"toDegrees\"></a><span class=\"summary-sig-name\">toDegrees</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">*n</span>)</span><br />\n      Return this <code>Ang</code> as <code>Degrees</code>, optionally \n      replacing the turns.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"toLambertian\"></a><span class=\"summary-sig-name\">toLambertian</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Return this <code>Ang</code> as <a \n      href=\"pygeodesy.angles.Lambertian-class.html\" \n      class=\"link\">Lambertian</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"toRadians\"></a><span class=\"summary-sig-name\">toRadians</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">*n</span>)</span><br />\n      Return this <code>Ang</code> as <code>Radians</code>, optionally \n      replacing the turns.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.angles.Ang-class.html#toRepr\" class=\"summary-sig-name\">toRepr</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">*n</span>,\n        <span class=\"summary-sig-arg\">**prec_fmt</span>)</span><br />\n      Return this <code>Ang</code> as \n      <code>&quot;&lt;name&gt;(&lt;value&gt;)&quot;</code> with/out turns \n      (<code>str</code>).</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.angles.Ang-class.html#toStr\" class=\"summary-sig-name\">toStr</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">*n</span>,\n        <span class=\"summary-sig-arg\">**prec_fmt</span>)</span><br />\n      Return this <code>Ang</code> as \n      <code>&quot;&lt;value&gt;&quot;</code> with/out turns \n      (<code>str</code>).</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"toTuple\"></a><span class=\"summary-sig-name\">toTuple</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">**prec_fmt_sep</span>)</span><br />\n      Return string <code>&quot;(s, c, n)&quot;</code> or tuple <code>('s',\n      'c', 'n')</code> if <code>sep is None</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"toUnit\"></a><span class=\"summary-sig-name\">toUnit</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">*n</span>)</span><br />\n      Return this <code>Ang</code> as <code>self.unit</code>s, optionally \n      replacing the turns.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.angles.Ang-class.html#cardinal\" class=\"summary-sig-name\">cardinal</a>(<span class=\"summary-sig-arg\">q</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">**unit_name</span>)</span><br />\n      A cardinal direction.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.angles.Ang-class.html#EPS0\" class=\"summary-sig-name\">EPS0</a>(<span class=\"summary-sig-arg\">**unit_name</span>)</span><br />\n      Get a tiny <code>Ang</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"fromDegrees\"></a><span class=\"summary-sig-name\">fromDegrees</span>(<span class=\"summary-sig-arg\">deg</span>,\n        <span class=\"summary-sig-arg\">**unit_name</span>)</span><br />\n      Get an <code>Ang</code> from degrees.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"fromLambertian\"></a><span class=\"summary-sig-name\">fromLambertian</span>(<span class=\"summary-sig-arg\">psi</span>,\n        <span class=\"summary-sig-arg\">**unit_name</span>)</span><br />\n      Get an <code>Ang</code> from <code>lamberterian</code> radians.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"fromRadians\"></a><span class=\"summary-sig-name\">fromRadians</span>(<span class=\"summary-sig-arg\">rad</span>,\n        <span class=\"summary-sig-arg\">**unit_name</span>)</span><br />\n      Get an <code>Ang</code> from radians.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"fromScalar\"></a><span class=\"summary-sig-name\">fromScalar</span>(<span class=\"summary-sig-arg\">ang</span>,\n        <span class=\"summary-sig-arg\">**unit_name</span>)</span><br />\n      Get an <code>Ang</code> from <code>Degrees</code>, \n      <code>Radians</code> or another <code>Ang</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"N\"></a><span class=\"summary-sig-name\">N</span>(<span class=\"summary-sig-arg\">**unit_name</span>)</span><br />\n      Get North <code>Ang</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"NAN\"></a><span class=\"summary-sig-name\">NAN</span>(<span class=\"summary-sig-arg\">**unit_name</span>)</span><br />\n      Get an invalid <code>Ang</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.angles.Ang-class.html#c\" class=\"summary-name\">c</a><br />\n      Get the cosine of this <code>Angle</code> (<code>float</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.angles.Ang-class.html#degrees\" class=\"summary-name\">degrees</a><br />\n      Get this <code>Ang</code> in <code>degrees</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.angles.Ang-class.html#degrees0\" class=\"summary-name\">degrees0</a><br />\n      Get this <code>Ang</code> in <code>degrees</code> ignoring the turns.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.angles.Ang-class.html#lambertian\" class=\"summary-name\">lambertian</a><br />\n      Get this <code>Ang</code>'s Lambertian, \n      <code>asinh(tan(radians))</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.angles.Ang-class.html#n\" class=\"summary-name\">n</a><br />\n      Return the number of turns (<code>float</code>) or <code>0.0</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.angles.Ang-class.html#n0\" class=\"summary-name\">n0</a><br />\n      Return the number of turns, treating <code>-180</code> as <code>180 -\n      1 turn</code> (<code>float</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.angles.Ang-class.html#ncardinal\" class=\"summary-name\">ncardinal</a><br />\n      Get the nearest cardinal direction (<code>float_int</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.angles.Ang-class.html#quadrant\" class=\"summary-name\">quadrant</a><br />\n      Class <code>property</code> with a <code>.name</code> attribute.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.angles.Ang-class.html#radians\" class=\"summary-name\">radians</a><br />\n      Get this <code>Ang</code> in <code>radians</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.angles.Ang-class.html#radians0\" class=\"summary-name\">radians0</a><br />\n      Get this <code>Ang</code> in <code>radians</code> ignoring the turns.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.angles.Ang-class.html#s\" class=\"summary-name\">s</a><br />\n      Get the sine of this <code>Ang</code> (<code>float</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.angles.Ang-class.html#sc2\" class=\"summary-name\">sc2</a><br />\n      Get the 2-tuple <code>(s, c)</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.angles.Ang-class.html#scn3\" class=\"summary-name\">scn3</a><br />\n      Get the 3-tuple <code>(s, c, n)</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.angles.Ang-class.html#scnu4\" class=\"summary-name\">scnu4</a><br />\n      Get the 4-tuple <code>(s, c, n, unit)</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.angles.Ang-class.html#t\" class=\"summary-name\">t</a><br />\n      Get the tangent of this <code>Ang</code> (<code>float</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.angles.Ang-class.html#unit\" class=\"summary-name\">unit</a><br />\n      Class <code>property</code> with a <code>.name</code> attribute.\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">s_ang</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">c</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">n</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">normal</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">**unit_name</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.angles.Ang-class.html\" \n  class=\"link\">Ang</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>s_ang</code></strong> - A previous <a href=\"pygeodesy.angles.Ang-class.html\" \n          class=\"link\">Ang</a>, <code>Degrees</code>, <code>Radians</code> \n          if <code><b>c</b> is None</code>, otherwise the sine component \n          (<code>float</code>).</li>\n        <li><strong class=\"pname\"><code>c</code></strong> - The cosine component (<code>float</code>) iff <code>not \n          None</code>.</li>\n        <li><strong class=\"pname\"><code>n</code></strong> - The number of PI2 turns (<code>float</code>).</li>\n        <li><strong class=\"pname\"><code>normal</code></strong> - If <code>True</code>, <b><code>s</code></b> and \n          <b><code>c</code></b> are normalized, i.e. on the unit circle \n          (<code>boo</code>).</li>\n        <li><strong class=\"pname\"><code>unit_name</code></strong> - Type <code><b>unit</b>=</code><a \n          href=\"pygeodesy.units.Radians-class.html\" \n          class=\"link\">Radians</a> or <a \n          href=\"pygeodesy.units.Degrees-class.html\" \n          class=\"link\">Degrees</a> of scalar scalar values (<a \n          href=\"pygeodesy.units.Degrees-class.html\" \n          class=\"link\">Degrees</a> or <a \n          href=\"pygeodesy.units.Radians-class.html\" \n          class=\"link\">Radians</a>).</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n<div class=\"fields\">      <strong>Notes:</strong>\n      <ul class=\"nomargin-top\">\n        <li>\n        Either <b><code>s</code></b> or <b><code>c</code></b> can be INF or\n        NINF, but not both.\n        </li>\n        <li>\n        By default, the point <b><code>(s, c)</code></b> is scaled to lie \n        on the unit circle.\n        </li>\n      </ul>\n</div></td></tr></table>\n</div>\n<a name=\"__hash__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__hash__</span>&nbsp;(<span class=\"sig-arg\">self</span>)</span>\n    <br /><em class=\"fname\">(Hashing function)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>hash(x)</p>\n  <dl class=\"fields\">\n    <dt>Overrides:\n        object.__hash__\n        <dd><em class=\"note\">(inherited documentation)</em></dd>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__imatmul__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__imatmul__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Not implemented.</p>\n  <dl class=\"fields\">\n    <dt>Overrides:\n        <a href=\"pygeodesy.named._Named-class.html#__imatmul__\">named._Named.__imatmul__</a>\n        <dd><em class=\"note\">(inherited documentation)</em></dd>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__matmul__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__matmul__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Not implemented.</p>\n  <dl class=\"fields\">\n    <dt>Overrides:\n        <a href=\"pygeodesy.named._Named-class.html#__matmul__\">named._Named.__matmul__</a>\n        <dd><em class=\"note\">(inherited documentation)</em></dd>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__repr__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__repr__</span>&nbsp;(<span class=\"sig-arg\">self</span>)</span>\n    <br /><em class=\"fname\">(Representation operator)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Default <code>repr(self)</code>.</p>\n  <dl class=\"fields\">\n    <dt>Overrides:\n        object.__repr__\n        <dd><em class=\"note\">(inherited documentation)</em></dd>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__rmatmul__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__rmatmul__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Not implemented.</p>\n  <dl class=\"fields\">\n    <dt>Overrides:\n        <a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">named._Named.__rmatmul__</a>\n        <dd><em class=\"note\">(inherited documentation)</em></dd>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__str__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__str__</span>&nbsp;(<span class=\"sig-arg\">self</span>)</span>\n    <br /><em class=\"fname\">(Informal representation operator)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Default <code>str(self)</code>.</p>\n  <dl class=\"fields\">\n    <dt>Overrides:\n        object.__str__\n        <dd><em class=\"note\">(inherited documentation)</em></dd>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"cardinal\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">cardinal</span>&nbsp;(<span class=\"sig-arg\">q</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">**unit_name</span>)</span>\n    <br /><em class=\"fname\">Static Method</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>A cardinal direction.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>q</code></strong> - The number of <i>quarter</i> turns (<code>scalar</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>An <code>Ang</code> equivalent to <b><code>q</code></b> quarter \n          turns.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        <b><code>q</code></b> is truncated to an integer and signed \n        <code>0</code> is distinguished.  <code>Ang.NAN</code> is returned \n        if <b><code>q</code></b> is not finite.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"copy\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">copy</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">**unit_name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return a copy of this <code>Ang</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>deep</code></strong> - If <code>True</code>, make a deep, otherwise a shallow copy \n          (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional, non-empty <code><b>name</b>=NN</code> \n          (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The copy (<code>This class</code>).</dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.named._Named-class.html#copy\">named._Named.copy</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"EPS0\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">EPS0</span>&nbsp;(<span class=\"sig-arg\">**unit_name</span>)</span>\n    <br /><em class=\"fname\">Static Method</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Get a tiny <code>Ang</code>.</p>\n  <dl class=\"fields\">\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        This allows angles extremely close to the cardinal directions to be\n        generated.  The <code>.round</code> method will flush this angle to\n        <code>0</code>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"mod\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">mod</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">mul</span>=<span class=\"sig-default\">1.0</span>,\n        <span class=\"sig-arg\">**unit_name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the <i>reduced latitude</i> <code>atan(<b>mul</b> * \n  tan(<b>this</b>))</code> as an <code>Ang</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>mul</code></strong> - Factor (<code>scalar</code>, positive).</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        The quadrant of the result tracks that of this <code>Ang</code> \n        through multiples turns.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"nearest\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">nearest</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">ind</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the closest cardinal direction (<code>Ang</code>).</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>ind</code></strong> - An indicator, if <code><b>ind</b>=0</code> the closest cardinal \n          direction, otherwise, if <b><code>ind</code></b> is even, the \n          closest even (N/S) cardinal direction or if \n          <b><code>ind</code></b> is odd, the closest odd (E/W) cardinal \n          direction.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"reflect\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">reflect</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">flips</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">flipc</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">swapsc</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Reflect this <code>Ang</code> in various ways.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>flips</code></strong> - Flip the sign of <code>s</code>.</li>\n        <li><strong class=\"pname\"><code>flipc</code></strong> - Flip the sign of <code>c</code>.</li>\n        <li><strong class=\"pname\"><code>swapsc</code></strong> - Swap <code>s</code> and <code>c</code>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        The operations are carried out in the order of the arguments.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"signOf\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">signOf</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">*n</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Determine this <code>Ang</code>'s sign, optionally replacing the \n  turns.</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd>The sign (<code>int</code>, -1, 0 or +1).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toRepr\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toRepr</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">*n</span>,\n        <span class=\"sig-arg\">**prec_fmt</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return this <code>Ang</code> as \n  <code>&quot;&lt;name&gt;(&lt;value&gt;)&quot;</code> with/out turns \n  (<code>str</code>).</p>\n  <dl class=\"fields\">\n    <dt>Overrides:\n        <a href=\"pygeodesy.named._Named-class.html#toRepr\">named._Named.toRepr</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toStr\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toStr</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">*n</span>,\n        <span class=\"sig-arg\">**prec_fmt</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return this <code>Ang</code> as <code>&quot;&lt;value&gt;&quot;</code>\n  with/out turns (<code>str</code>).</p>\n  <dl class=\"fields\">\n    <dt>Overrides:\n        <a href=\"pygeodesy.named._Named-class.html#toStr\">named._Named.toStr</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"c\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">c</h3>\n  <p>Get the cosine of this <code>Angle</code> (<code>float</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">c(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the cosine of this <code>Angle</code> (<code>float</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"degrees\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">degrees</h3>\n  <p>Get this <code>Ang</code> in <code>degrees</code>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">degrees(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get this <code>Ang</code> in <code>degrees</code>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"degrees0\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">degrees0</h3>\n  <p>Get this <code>Ang</code> in <code>degrees</code> ignoring the \n  turns.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">degrees0(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get this <code>Ang</code> in <code>degrees</code> ignoring the turns.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"lambertian\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">lambertian</h3>\n  <p>Get this <code>Ang</code>'s Lambertian, \n  <code>asinh(tan(radians))</code>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">lambertian(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get this <code>Ang</code>'s Lambertian, <code>asinh(tan(radians))</code>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"n\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">n</h3>\n  <p>Return the number of turns (<code>float</code>) or \n  <code>0.0</code>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">n(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Return the number of turns (<code>float</code>) or <code>0.0</code>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">n(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">n</span>)</span>\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"n0\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">n0</h3>\n  <p>Return the number of turns, treating <code>-180</code> as <code>180 - \n  1 turn</code> (<code>float</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">n0(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Return the number of turns, treating <code>-180</code> as <code>180 - 1 \nturn</code> (<code>float</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">n0(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">n</span>)</span>\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"ncardinal\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">ncardinal</h3>\n  <p>Get the nearest cardinal direction (<code>float_int</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">ncardinal(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the nearest cardinal direction (<code>float_int</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        This is the reverse of <code>cardinal</code>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"quadrant\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">quadrant</h3>\n  <p>Class <code>property</code> with a <code>.name</code> attribute.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">quadrant(<span class=\"summary-sig-arg\">self</span>)</span>\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">quadrant(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">quadrant</span>)</span>\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"radians\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">radians</h3>\n  <p>Get this <code>Ang</code> in <code>radians</code>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">radians(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get this <code>Ang</code> in <code>radians</code>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"radians0\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">radians0</h3>\n  <p>Get this <code>Ang</code> in <code>radians</code> ignoring the \n  turns.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">radians0(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get this <code>Ang</code> in <code>radians</code> ignoring the turns.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"s\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">s</h3>\n  <p>Get the sine of this <code>Ang</code> (<code>float</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">s(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the sine of this <code>Ang</code> (<code>float</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"sc2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">sc2</h3>\n  <p>Get the 2-tuple <code>(s, c)</code>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">sc2(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the 2-tuple <code>(s, c)</code>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"scn3\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">scn3</h3>\n  <p>Get the 3-tuple <code>(s, c, n)</code>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">scn3(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the 3-tuple <code>(s, c, n)</code>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"scnu4\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">scnu4</h3>\n  <p>Get the 4-tuple <code>(s, c, n, unit)</code>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">scnu4(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the 4-tuple <code>(s, c, n, unit)</code>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"t\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">t</h3>\n  <p>Get the tangent of this <code>Ang</code> (<code>float</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">t(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the tangent of this <code>Ang</code> (<code>float</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"unit\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">unit</h3>\n  <p>Class <code>property</code> with a <code>.name</code> attribute.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">unit(<span class=\"summary-sig-arg\">self</span>)</span>\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">unit(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">unit</span>)</span>\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.angles.Lambertian-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.angles.Lambertian</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.angles-module.html\">Module&nbsp;angles</a> ::\n        Class&nbsp;Lambertian\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.angles.Lambertian-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Lambertian</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n          object --+            \n                   |            \n               float --+        \n                       |        \n      object --+       |        \n               |       |        \n    <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+   |        \n                   |   |        \n<a href=\"pygeodesy.unitsBase._NamedUnit-class.html\">unitsBase._NamedUnit</a> --+        \n                       |        \n         <a href=\"pygeodesy.unitsBase.Float-class.html\">unitsBase.Float</a> --+    \n                           |    \n               <a href=\"pygeodesy.units.Radians-class.html\">units.Radians</a> --+\n                               |\n                              <strong class=\"uidshort\">Lambertian</strong>\n</pre>\n\n<hr />\n<p>A <code>Lambertian</code> in <code>radians</code>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.units.Radians-class.html\">units.Radians</a></code></b>:\n      <code><a href=\"pygeodesy.units.Radians-class.html#toDegrees\">toDegrees</a></code>,\n      <code><a href=\"pygeodesy.units.Radians-class.html#toRadians\">toRadians</a></code>,\n      <code><a href=\"pygeodesy.units.Radians-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.units.Radians-class.html#toStr\">toStr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase.Float-class.html\">unitsBase.Float</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#__str__\">__str__</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>float</code></b>:\n      <code>__abs__</code>,\n      <code>__add__</code>,\n      <code>__coerce__</code>,\n      <code>__div__</code>,\n      <code>__divmod__</code>,\n      <code>__eq__</code>,\n      <code>__float__</code>,\n      <code>__floordiv__</code>,\n      <code>__format__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getformat__</code>,\n      <code>__getnewargs__</code>,\n      <code>__gt__</code>,\n      <code>__hash__</code>,\n      <code>__int__</code>,\n      <code>__le__</code>,\n      <code>__long__</code>,\n      <code>__lt__</code>,\n      <code>__mod__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__neg__</code>,\n      <code>__nonzero__</code>,\n      <code>__pos__</code>,\n      <code>__pow__</code>,\n      <code>__radd__</code>,\n      <code>__rdiv__</code>,\n      <code>__rdivmod__</code>,\n      <code>__rfloordiv__</code>,\n      <code>__rmod__</code>,\n      <code>__rmul__</code>,\n      <code>__rpow__</code>,\n      <code>__rsub__</code>,\n      <code>__rtruediv__</code>,\n      <code>__setformat__</code>,\n      <code>__sub__</code>,\n      <code>__truediv__</code>,\n      <code>__trunc__</code>,\n      <code>as_integer_ratio</code>,\n      <code>conjugate</code>,\n      <code>fromhex</code>,\n      <code>hex</code>,\n      <code>is_integer</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">a new object with type S, a subtype of T</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.angles.Lambertian-class.html#__new__\" class=\"summary-sig-name\">__new__</a>(<span class=\"summary-sig-arg\">cls</span>,\n        <span class=\"summary-sig-arg\">*args</span>,\n        <span class=\"summary-sig-arg\">**kwds</span>)</span><br />\n      New, named <code>Radians</code>, see <a \n      href=\"pygeodesy.unitsBase.Float-class.html\" class=\"link\">Float</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase.Float-class.html\">unitsBase.Float</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#isneg0\">isneg0</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>float</code></b>:\n      <code>imag</code>,\n      <code>real</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html\">unitsBase._NamedUnit</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html#std_repr\">std_repr</a></code>,\n      <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__new__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__new__</span>&nbsp;(<span class=\"sig-arg\">cls</span>,\n        <span class=\"sig-arg\">*args</span>,\n        <span class=\"sig-arg\">**kwds</span>)</span>\n    <br /><em class=\"fname\">Static Method</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New, named <code>Radians</code>, see <a \n  href=\"pygeodesy.unitsBase.Float-class.html\" class=\"link\">Float</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>cls</code></strong> - This class (<code>Radians</code> or sub-class).</li>\n        <li><strong class=\"pname\"><code>arg</code></strong> - The value (any <code>type</code> convertable to \n          <code>float</code> or parsable by <a \n          href=\"pygeodesy.dms-module.html#parseRad\" \n          class=\"link\">pygeodesy.parseRad</a>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional instance name (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>suffix</code></strong> - Optional, valid compass direction suffixes (<code>NSEW</code>).</li>\n        <li><strong class=\"pname\"><code>clip</code></strong> - Optional <b><code>arg</code></b> range \n          <b><code>-clip..+clip</code></b> (<code>radians</code> or \n          <code>0</code> or <code>None</code> for unclipped).</li>\n        <li><strong class=\"pname\"><code>Error</code></strong> - Optional error to raise, overriding the default <a \n          href=\"pygeodesy.errors.UnitError-class.html\" \n          class=\"link\">UnitError</a>.</li>\n        <li><strong class=\"pname\"><code>name_arg</code></strong> - Optional <code>name=arg</code> keyword argument, inlieu of \n          separate <b><code>arg</code></b> and <b><code>name</code></b> \n          ones.</li>\n    </ul></dd>\n    <dt>Returns: a new object with type S, a subtype of T</dt>\n        <dd>A named <code>Radians</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>Error</strong></code> - Invalid <b><code>arg</code></b> or <b><code>abs(arg)</code></b> \n        outside the <b><code>clip</code></b> range and <a \n        href=\"pygeodesy.errors-module.html#rangerrors\" \n        class=\"link\">rangerrors</a> is <code>True</code>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__new__\n        <dd><em class=\"note\">(inherited documentation)</em></dd>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.auxilats-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.auxilats</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        Package&nbsp;auxilats\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.auxilats-module.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PACKAGE DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Package auxilats</h1><p class=\"nomargin-top\"></p>\n<p>Classes <a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html\" \n  class=\"link\">AuxAngle</a>, <a \n  href=\"pygeodesy.auxilats.auxDLat.AuxDLat-class.html\" \n  class=\"link\">AuxDLat</a>, <a \n  href=\"pygeodesy.auxilats.auxDST.AuxDST-class.html\" \n  class=\"link\">AuxDST</a> and <a \n  href=\"pygeodesy.auxilats.auxLat.AuxLat-class.html\" \n  class=\"link\">AuxLat</a> transcoded to Python from <i>Karney</i>'s C++ \n  class <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1AuxAngle.html\"\n  target=\"_top\">AuxAngle</a>, <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1DAuxLatitude.html\"\n  target=\"_top\">DAuxLatitude</a>, <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1DST.html\"\n  target=\"_top\">DST</a>, repectively <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1AuxLatitude.html\"\n  target=\"_top\">AuxLatitude</a> all in <i>GeographicLib version \n  2.2+</i>.</p>\n  <p>Copyright (C) <a href=\"mailto:Karney@Alum.MIT.edu\" \n  target=\"_top\">Charles Karney</a> (2022-2024) and licensed under the \n  MIT/X11 License.  For more information, see the <a \n  href=\"https://GeographicLib.SourceForge.io\" \n  target=\"_top\">GeographicLib</a> documentation.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Note:</strong>\n        Class <a href=\"pygeodesy.auxilats.auxDST.AuxDST-class.html\" \n        class=\"link\">AuxDST</a> requires <a \n        href=\"https://PyPI.org/project/numpy\" target=\"_top\">numpy</a> to be\n        installed, version 1.16 or newer.\n      </p>\n      <p><strong>See Also:</strong>\n        <a href=\"https://GeographicLib.SourceForge.io/C++/doc/auxlat.html\" \n        target=\"_top\">Auxiliary latitudes</a> and <a \n        href=\"https://ArXiv.org/abs/2212.05818\" target=\"_top\">On auxiliary \n        latitudes</a>.\n      </p>\n      <p><strong>Version:</strong>\n        25.12.02\n      </p>\n</div><!-- ==================== SUBMODULES ==================== -->\n<a name=\"section-Submodules\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Submodules</span></td>\n</tr>\n  <tr><td class=\"summary\">\n  <ul class=\"nomargin\">\n    <li class=\"private\"> <strong class=\"uidlink\"><a href=\"pygeodesy.auxilats._CX_4-module.html\">pygeodesy.auxilats._CX_4</a></strong>: <em class=\"summary\">Coefficients for <code>_AUXLATITUDE_ORDER</code> 4 from \n        <i>Karney</i>'s C++ class <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1AuxLatitude.html\"\n        target=\"_top\">AuxLatitude</a> transcoded to a Python \n        <code>_Rdict[auxout][auxin]</code> of <code>_Rtuple</code>s.</em>    </li>\n    <li class=\"private\"> <strong class=\"uidlink\"><a href=\"pygeodesy.auxilats._CX_6-module.html\">pygeodesy.auxilats._CX_6</a></strong>: <em class=\"summary\">Coefficients for <code>_AUXLATITUDE_ORDER</code> 6 from \n        <i>Karney</i>'s C++ class <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1AuxLatitude.html\"\n        target=\"_top\">AuxLatitude</a> transcoded to a Python \n        <code>_Rdict[auxout][auxin]</code> of <code>_Rtuple</code>s.</em>    </li>\n    <li class=\"private\"> <strong class=\"uidlink\"><a href=\"pygeodesy.auxilats._CX_8-module.html\">pygeodesy.auxilats._CX_8</a></strong>: <em class=\"summary\">Coefficients for <code>_AUXLATITUDE_ORDER</code> 8 from \n        <i>Karney</i>'s C++ class <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1AuxLatitude.html\"\n        target=\"_top\">AuxLatitude</a> transcoded to a Python \n        <code>_Rdict[auxout][auxin]</code> of <code>_Rtuple</code>s.</em>    </li>\n    <li class=\"private\"> <strong class=\"uidlink\"><a href=\"pygeodesy.auxilats._CX_Rs-module.html\" onclick=\"show_private();\">pygeodesy.auxilats._CX_Rs</a></strong>: <em class=\"summary\">(INTERNAL) Classes <code>_Rcoeffs</code>, <code>_Rdict</code> and \n        <code>_Rtuple</code> to store the deferred Python versions of \n        coefficients from <i>Karney</i>'s C++ class <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1AuxLatitude.html\"\n        target=\"_top\">AuxLatitude</a>.</em>    </li>\n    <li class=\"private\"> <strong class=\"uidlink\"><a href=\"pygeodesy.auxilats.__main__-module.html\">pygeodesy.auxilats.__main__</a></strong>: <em class=\"summary\">Print <a href=\"pygeodesy.auxilats-module.html\" \n        class=\"link\">auxilats</a> version, etc.</em>    </li>\n    <li class=\"private\"> <strong class=\"uidlink\"><a href=\"pygeodesy.auxilats.auxAngle-module.html\" onclick=\"show_private();\">pygeodesy.auxilats.auxAngle</a></strong>: <em class=\"summary\">(INTERNAL) <i>Auxiliary</i> latitudes' base classes, constants and \n        functions.</em>    </li>\n    <li class=\"private\"> <strong class=\"uidlink\"><a href=\"pygeodesy.auxilats.auxDLat-module.html\" onclick=\"show_private();\">pygeodesy.auxilats.auxDLat</a></strong>: <em class=\"summary\">Class <a href=\"pygeodesy.auxilats.auxDLat.AuxDLat-class.html\" \n        class=\"link\">AuxDLat</a> transcoded to Python from <i>Karney</i>'s \n        C++ class <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1DAuxLatitude.html\"\n        target=\"_top\">DAuxLatitude</a> in <i>GeographicLib version \n        2.2+</i>.</em>    </li>\n    <li class=\"private\"> <strong class=\"uidlink\"><a href=\"pygeodesy.auxilats.auxDST-module.html\" onclick=\"show_private();\">pygeodesy.auxilats.auxDST</a></strong>: <em class=\"summary\">Discrete Sine Transforms (AuxDST) in Python, transcoded from \n        <i>Karney</i>'s C++ class <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1DST.html\"\n        target=\"_top\">DST</a> in <i>GeographicLib version 2.2+</i>.</em>    </li>\n    <li class=\"private\"> <strong class=\"uidlink\"><a href=\"pygeodesy.auxilats.auxLat-module.html\" onclick=\"show_private();\">pygeodesy.auxilats.auxLat</a></strong>: <em class=\"summary\">Class <a href=\"pygeodesy.auxilats.auxLat.AuxLat-class.html\" \n        class=\"link\">AuxLat</a> transcoded to Python from <i>Karney</i>'s \n        C++ class <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1AuxLatitude.html\"\n        target=\"_top\">AuxLatitude</a> in <i>GeographicLib version 2.2+</i>.</em>    </li>\n    <li class=\"private\"> <strong class=\"uidlink\"><a href=\"pygeodesy.auxilats.auxily-module.html\" onclick=\"show_private();\">pygeodesy.auxilats.auxily</a></strong>: <em class=\"summary\">(INTERNAL) <i>Auxiliary</i> latitudes' classes, constants and \n        functions.</em>    </li>\n  </ul></td></tr>\n</table>\n\n<br />\n<!-- ==================== CLASSES ==================== -->\n<a name=\"section-Classes\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Classes</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html\" class=\"summary-name\">AuxAngle</a><br />\n      <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1AuxAngle.html\"\n        target=\"_top\">An accurate representation of angles</a>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.auxilats.auxAngle.AuxBeta-class.html\" class=\"summary-name\">AuxBeta</a><br />\n      A <i>Parametric, Auxiliary</i> latitude.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.auxilats.auxAngle.AuxChi-class.html\" class=\"summary-name\">AuxChi</a><br />\n      A <i>Conformal, Auxiliary</i> latitude.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.auxilats.auxAngle.AuxMu-class.html\" class=\"summary-name\">AuxMu</a><br />\n      A <i>Rectifying, Auxiliary</i> latitude.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.auxilats.auxAngle.AuxPhi-class.html\" class=\"summary-name\">AuxPhi</a><br />\n      A <i>Geodetic or Geographic, Auxiliary</i> latitude.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.auxilats.auxAngle.AuxTheta-class.html\" class=\"summary-name\">AuxTheta</a><br />\n      A <i>Geocentric, Auxiliary</i> latitude.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.auxilats.auxAngle.AuxXi-class.html\" class=\"summary-name\">AuxXi</a><br />\n      An <i>Authalic, Auxiliary</i> latitude.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.auxilats.auxDLat.AuxDLat-class.html\" class=\"summary-name\">AuxDLat</a><br />\n      Class to compute <code>Divided Differences</code> of \n        <i>Auxiliary</i> latitudes and other <code>Divided \n        Differences</code> needed for <a \n        href=\"pygeodesy.rhumb.aux_.RhumbAux-class.html\" \n        class=\"link\">RhumbAux</a> and <a \n        href=\"pygeodesy.rhumb.aux_.RhumbLineAux-class.html\" \n        class=\"link\">RhumbLineAux</a> calculations.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.auxilats.auxDST.AuxDST-class.html\" class=\"summary-name\">AuxDST</a><br />\n      Discrete Sine Transforms (DST) for <i>Auxiliary</i> latitudes.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.auxilats.auxLat.AuxLat-class.html\" class=\"summary-name\">AuxLat</a><br />\n      Base class for accurate conversion between <i>Auxiliary</i> \n        latitudes on an ellipsoid.\n    </td>\n  </tr>\n</table>\n<!-- ==================== VARIABLES ==================== -->\n<a name=\"section-Variables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Variables</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"Aux\"></a><span class=\"summary-name\">Aux</span> = <code title=\"Aux()\">Aux()</code>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.auxilats._CX_4-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.auxilats._CX_4</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.auxilats-module.html\">Package&nbsp;auxilats</a> ::\n        Module&nbsp;_CX_4\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.auxilats._CX_4-module.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== MODULE DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Module _CX_4</h1><p class=\"nomargin-top\"></p>\n<p>Coefficients for <code>_AUXLATITUDE_ORDER</code> 4 from \n  <i>Karney</i>'s C++ class <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1AuxLatitude.html\"\n  target=\"_top\">AuxLatitude</a> transcoded to a Python \n  <code>_Rdict[auxout][auxin]</code> of <code>_Rtuple</code>s.</p>\n  <p>Copyright (C) Charles Karney (2022-2024) Karney@Alum.MIT.edu&gt; and \n  licensed under the MIT/X11 License.  For more information, see \n  &lt;https://GeographicLib.SourceForge.io&gt;.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Version:</strong>\n        25.04.09\n      </p>\n</div><!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.auxilats._CX_6-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.auxilats._CX_6</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.auxilats-module.html\">Package&nbsp;auxilats</a> ::\n        Module&nbsp;_CX_6\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.auxilats._CX_6-module.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== MODULE DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Module _CX_6</h1><p class=\"nomargin-top\"></p>\n<p>Coefficients for <code>_AUXLATITUDE_ORDER</code> 6 from \n  <i>Karney</i>'s C++ class <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1AuxLatitude.html\"\n  target=\"_top\">AuxLatitude</a> transcoded to a Python \n  <code>_Rdict[auxout][auxin]</code> of <code>_Rtuple</code>s.</p>\n  <p>Copyright (C) Charles Karney (2022-2024) Karney@Alum.MIT.edu&gt; and \n  licensed under the MIT/X11 License.  For more information, see \n  &lt;https://GeographicLib.SourceForge.io&gt;.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Version:</strong>\n        25.04.09\n      </p>\n</div><!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.auxilats._CX_8-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.auxilats._CX_8</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.auxilats-module.html\">Package&nbsp;auxilats</a> ::\n        Module&nbsp;_CX_8\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.auxilats._CX_8-module.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== MODULE DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Module _CX_8</h1><p class=\"nomargin-top\"></p>\n<p>Coefficients for <code>_AUXLATITUDE_ORDER</code> 8 from \n  <i>Karney</i>'s C++ class <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1AuxLatitude.html\"\n  target=\"_top\">AuxLatitude</a> transcoded to a Python \n  <code>_Rdict[auxout][auxin]</code> of <code>_Rtuple</code>s.</p>\n  <p>Copyright (C) Charles Karney (2022-2024) Karney@Alum.MIT.edu&gt; and \n  licensed under the MIT/X11 License.  For more information, see \n  &lt;https://GeographicLib.SourceForge.io&gt;.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Version:</strong>\n        25.04.09\n      </p>\n</div><!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.auxilats._CX_Rs-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.auxilats._CX_Rs</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.auxilats-module.html\">Package&nbsp;auxilats</a> ::\n        Module&nbsp;_CX_Rs\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.auxilats._CX_Rs-module.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== MODULE DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Module _CX_Rs</h1><p class=\"nomargin-top\"></p>\n<p>(INTERNAL) Classes <code>_Rcoeffs</code>, <code>_Rdict</code> and \n  <code>_Rtuple</code> to store the deferred Python versions of \n  coefficients from <i>Karney</i>'s C++ class <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1AuxLatitude.html\"\n  target=\"_top\">AuxLatitude</a>.</p>\n  <p>Copyright (C) Charles Karney (2022-2024) Karney@Alum.MIT.edu&gt; and \n  licensed under the MIT/X11 License.  For more information, see \n  &lt;https://GeographicLib.SourceForge.io&gt;.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Version:</strong>\n        25.05.12\n      </p>\n</div><!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.auxilats.__main__-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.auxilats.__main__</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.auxilats-module.html\">Package&nbsp;auxilats</a> ::\n        Module&nbsp;__main__\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.auxilats.__main__-module.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== MODULE DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Module __main__</h1><p class=\"nomargin-top\"></p>\n<p>Print <a href=\"pygeodesy.auxilats-module.html\" \n  class=\"link\">auxilats</a> version, etc. using <code>python -m \n  pygeodesy.auxilats</code>.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Version:</strong>\n        25.04.14\n      </p>\n</div><!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.auxilats.auxAngle-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.auxilats.auxAngle</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.auxilats-module.html\">Package&nbsp;auxilats</a> ::\n        Module&nbsp;auxAngle\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.auxilats.auxAngle-module.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== MODULE DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Module auxAngle</h1><p class=\"nomargin-top\"></p>\n<p>(INTERNAL) <i>Auxiliary</i> latitudes' base classes, constants and \n  functions.</p>\n  <p>Class <a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html\" \n  class=\"link\">AuxAngle</a> transcoded to Python from <i>Karney</i>'s C++ \n  class <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1AuxAngle.html\"\n  target=\"_top\">AuxAngle</a> in <i>GeographicLib version 2.2+</i>.</p>\n  <p>Copyright (C) <a href=\"mailto:Karney@Alum.MIT.edu\" \n  target=\"_top\">Charles Karney</a> (2022-2024) and licensed under the \n  MIT/X11 License.  For more information, see the <a \n  href=\"https://GeographicLib.SourceForge.io\" \n  target=\"_top\">GeographicLib</a> documentation.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Version:</strong>\n        25.12.02\n      </p>\n</div><!-- ==================== CLASSES ==================== -->\n<a name=\"section-Classes\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Classes</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html\" class=\"summary-name\">AuxAngle</a><br />\n      <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1AuxAngle.html\"\n        target=\"_top\">An accurate representation of angles</a>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.auxilats.auxAngle.AuxBeta-class.html\" class=\"summary-name\">AuxBeta</a><br />\n      A <i>Parametric, Auxiliary</i> latitude.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.auxilats.auxAngle.AuxChi-class.html\" class=\"summary-name\">AuxChi</a><br />\n      A <i>Conformal, Auxiliary</i> latitude.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.auxilats.auxAngle.AuxMu-class.html\" class=\"summary-name\">AuxMu</a><br />\n      A <i>Rectifying, Auxiliary</i> latitude.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.auxilats.auxAngle.AuxPhi-class.html\" class=\"summary-name\">AuxPhi</a><br />\n      A <i>Geodetic or Geographic, Auxiliary</i> latitude.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.auxilats.auxAngle.AuxTheta-class.html\" class=\"summary-name\">AuxTheta</a><br />\n      A <i>Geocentric, Auxiliary</i> latitude.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.auxilats.auxAngle.AuxXi-class.html\" class=\"summary-name\">AuxXi</a><br />\n      An <i>Authalic, Auxiliary</i> latitude.\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.auxilats.auxAngle.AuxAngle-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.auxilats.auxAngle.AuxAngle</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.auxilats-module.html\">Package&nbsp;auxilats</a> ::\n        <a href=\"pygeodesy.auxilats.auxAngle-module.html\" onclick=\"show_private();\">Module&nbsp;auxAngle</a> ::\n        Class&nbsp;AuxAngle\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class AuxAngle</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+    \n           |    \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+\n               |\n              <strong class=\"uidshort\">AuxAngle</strong>\n</pre>\n\n<dl><dt>Known Subclasses:</dt>\n<dd>\n      <ul class=\"subclass-list\">\n<li><a href=\"pygeodesy.auxilats.auxAngle.AuxBeta-class.html\">AuxBeta</a></li><li>, <a href=\"pygeodesy.auxilats.auxAngle.AuxChi-class.html\">AuxChi</a></li><li>, <a href=\"pygeodesy.auxilats.auxLat.AuxLat-class.html\">auxLat.AuxLat</a></li><li>, <a href=\"pygeodesy.auxilats.auxAngle.AuxMu-class.html\">AuxMu</a></li><li>, <a href=\"pygeodesy.auxilats.auxAngle.AuxPhi-class.html\">AuxPhi</a></li><li>, <a href=\"pygeodesy.auxilats.auxAngle.AuxTheta-class.html\">AuxTheta</a></li><li>, <a href=\"pygeodesy.auxilats.auxAngle.AuxXi-class.html\">AuxXi</a></li>  </ul>\n</dd></dl>\n\n<hr />\n<p><a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1AuxAngle.html\"\n  target=\"_top\">An accurate representation of angles</a></p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__abs__\"></a><span class=\"summary-sig-name\">__abs__</span>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Return this angle's absolute value (<a \n      href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html\" \n      class=\"link\">AuxAngle</a>).</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__add__\" class=\"summary-sig-name\">__add__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span><br />\n      Return <code><b>self</b> + <b>other</b></code> as an <a \n      href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html\" \n      class=\"link\">AuxAngle</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__bool__\"></a><span class=\"summary-sig-name\">__bool__</span>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Return <code>True</code> if this angle is non-zero.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__eq__\"></a><span class=\"summary-sig-name\">__eq__</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span><br />\n      Return <code><b>self</b> == <b>other</b></code> as <code>bool</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__float__\"></a><span class=\"summary-sig-name\">__float__</span>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Return this angle's <code>tan</code> (<code>float</code>).</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__iadd__\" class=\"summary-sig-name\">__iadd__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span><br />\n      Apply <code><b>self</b> += <b>other</b></code> to this angle.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">y_angle</span>=<span class=\"summary-sig-default\">0.0</span>,\n        <span class=\"summary-sig-arg\">x</span>=<span class=\"summary-sig-default\">1.0</span>,\n        <span class=\"summary-sig-arg\">aux</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      New <a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html\" \n      class=\"link\">AuxAngle</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__isub__\" class=\"summary-sig-name\">__isub__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span><br />\n      Apply <code><b>self</b> -= <b>other</b></code> to this angle.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__ne__\"></a><span class=\"summary-sig-name\">__ne__</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span><br />\n      Return <code><b>self</b> != <b>other</b></code> as <code>bool</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__neg__\"></a><span class=\"summary-sig-name\">__neg__</span>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Return <i>a copy of</i> this angle, negated.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__pos__\"></a><span class=\"summary-sig-name\">__pos__</span>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Return this angle <i>as-is</i>, like <code>float.__pos__()</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__radd__\" class=\"summary-sig-name\">__radd__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span><br />\n      Return <code><b>other</b> + <b>self</b></code> as an <a \n      href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html\" \n      class=\"link\">AuxAngle</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__rsub__\" class=\"summary-sig-name\">__rsub__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span><br />\n      Return <code><b>other</b> - <b>self</b></code> as an <a \n      href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html\" \n      class=\"link\">AuxAngle</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__str__\" class=\"summary-sig-name\">__str__</a>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Default <code>str(self)</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__sub__\" class=\"summary-sig-name\">__sub__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span><br />\n      Return <code><b>self</b> - <b>other</b></code> as an <a \n      href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html\" \n      class=\"link\">AuxAngle</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"copyquadrant\"></a><span class=\"summary-sig-name\">copyquadrant</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span><br />\n      Copy an <b><code>other</code></b> angle's quadrant into this angle \n      (<a href=\"pygeodesy.auxilats.auxAngle-module.html\" class=\"link\" \n      onclick=\"show_private();\">auxAngle</a>).</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#normal\" class=\"summary-sig-name\">normal</a>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Normalize this angle <i>in-place</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"toBeta\"></a><span class=\"summary-sig-name\">toBeta</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">rhumb</span>)</span><br />\n      Short for <code>rhumb.auxDLat.convert(Aux.BETA, self, \n      exact=rhumb.exact)</code></td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"toChi\"></a><span class=\"summary-sig-name\">toChi</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">rhumb</span>)</span><br />\n      Short for <code>rhumb.auxDLat.convert(Aux.CHI, self, \n      exact=rhumb.exact)</code></td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"toMu\"></a><span class=\"summary-sig-name\">toMu</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">rhumb</span>)</span><br />\n      Short for <code>rhumb.auxDLat.convert(Aux.MU, self, \n      exact=rhumb.exact)</code></td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"toPhi\"></a><span class=\"summary-sig-name\">toPhi</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">rhumb</span>)</span><br />\n      Short for <code>rhumb.auxDLat.convert(Aux.PHI, self, \n      exact=rhumb.exact)</code></td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"fromDegrees\"></a><span class=\"summary-sig-name\">fromDegrees</span>(<span class=\"summary-sig-arg\">deg</span>,\n        <span class=\"summary-sig-arg\">**aux_name</span>)</span><br />\n      Get an <a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html\" \n      class=\"link\">AuxAngle</a> from degrees.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"fromLambertianDegrees\"></a><span class=\"summary-sig-name\">fromLambertianDegrees</span>(<span class=\"summary-sig-arg\">psi</span>,\n        <span class=\"summary-sig-arg\">**aux_name</span>)</span><br />\n      Get an <a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html\" \n      class=\"link\">AuxAngle</a> from <i>Lambertian</i> degrees.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"fromLambertianRadians\"></a><span class=\"summary-sig-name\">fromLambertianRadians</span>(<span class=\"summary-sig-arg\">psi</span>,\n        <span class=\"summary-sig-arg\">**aux_name</span>)</span><br />\n      Get an <a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html\" \n      class=\"link\">AuxAngle</a> from <i>Lambertian</i> radians.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"fromRadians\"></a><span class=\"summary-sig-name\">fromRadians</span>(<span class=\"summary-sig-arg\">rad</span>,\n        <span class=\"summary-sig-arg\">**aux_name</span>)</span><br />\n      Get an <a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html\" \n      class=\"link\">AuxAngle</a> from radians.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#diff\" class=\"summary-name\">diff</a><br />\n      Get derivative <code>dtan(Eta) / dtan(Phi)</code> (<code>float</code>\n      or <code>NAN</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#iteration\" class=\"summary-name\">iteration</a><br />\n      Get the iteration (<code>int</code> or <code>None</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#normalized\" class=\"summary-name\">normalized</a><br />\n      Get a normalized copy of this angle (<a \n      href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html\" \n      class=\"link\">AuxAngle</a>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#tan\" class=\"summary-name\">tan</a><br />\n      Get this angle's <code>tan</code> (<code>float</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#toDegrees\" class=\"summary-name\">toDegrees</a><br />\n      Get this angle as <a href=\"pygeodesy.units.Degrees-class.html\" \n      class=\"link\">Degrees</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#toLambertianDegrees\" class=\"summary-name\">toLambertianDegrees</a><br />\n      Get this angle's <i>Lambertian</i> in <a \n      href=\"pygeodesy.units.Degrees-class.html\" class=\"link\">Degrees</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#toLambertianRadians\" class=\"summary-name\">toLambertianRadians</a><br />\n      Get this angle's <i>Lambertian</i> in <a \n      href=\"pygeodesy.units.Radians-class.html\" class=\"link\">Radians</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#toRadians\" class=\"summary-name\">toRadians</a><br />\n      Get this angle as <a href=\"pygeodesy.units.Radians-class.html\" \n      class=\"link\">Radians</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#x\" class=\"summary-name\">x</a><br />\n      Get this angle's <code>x</code> (<code>float</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#y\" class=\"summary-name\">y</a><br />\n      Get this angle's <code>y</code> (<code>float</code>).\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__add__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__add__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>)</span>\n    <br /><em class=\"fname\">(Addition operator)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return <code><b>self</b> + <b>other</b></code> as an <a \n  href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html\" \n  class=\"link\">AuxAngle</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>other</code></strong> - An <a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html\" \n          class=\"link\">AuxAngle</a>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The sum (<a \n          href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html\" \n          class=\"link\">AuxAngle</a>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>other</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__iadd__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__iadd__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Apply <code><b>self</b> += <b>other</b></code> to this angle.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>other</code></strong> - An <a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html\" \n          class=\"link\">AuxAngle</a>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>This angle, updated (<a \n          href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html\" \n          class=\"link\">AuxAngle</a>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>other</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">y_angle</span>=<span class=\"sig-default\">0.0</span>,\n        <span class=\"sig-arg\">x</span>=<span class=\"sig-default\">1.0</span>,\n        <span class=\"sig-arg\">aux</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html\" \n  class=\"link\">AuxAngle</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>y_angle</code></strong> - The Y component (<code>scalar</code>, including <code>INF</code>,\n          <code>NAN</code> and <code>NINF</code>) or a previous <a \n          href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html\" \n          class=\"link\">AuxAngle</a> instance.</li>\n        <li><strong class=\"pname\"><code>x</code></strong> - The X component, required if <code><b>y_angle</b></code> is \n          <code>scalar</code>, ignored otherwise.</li>\n        <li><strong class=\"pname\"><code>aux</code></strong> - <i>Auxiliary</i> kind (<code>Aux.KIND</code>), like \n          <b><code>x</code></b>.</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> see (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.AuxError-class.html\">AuxError</a></strong></code> - Invalid <b><code>y_angle</code></b>, <b><code>x</code></b> or \n        <b><code>aux</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__isub__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__isub__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Apply <code><b>self</b> -= <b>other</b></code> to this angle.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>other</code></strong> - An <a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html\" \n          class=\"link\">AuxAngle</a>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>This instance, updated (<a \n          href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html\" \n          class=\"link\">AuxAngle</a>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>other</code></b> type.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__radd__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__radd__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>)</span>\n    <br /><em class=\"fname\">(Right-side addition operator)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return <code><b>other</b> + <b>self</b></code> as an <a \n  href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html\" \n  class=\"link\">AuxAngle</a>.</p>\n  <dl class=\"fields\">\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <a \n        href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__add__\" \n        class=\"link\">AuxAngle.__add__</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"__rsub__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__rsub__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return <code><b>other</b> - <b>self</b></code> as an <a \n  href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html\" \n  class=\"link\">AuxAngle</a>.</p>\n  <dl class=\"fields\">\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <a \n        href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__sub__\" \n        class=\"link\">AuxAngle.__sub__</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"__str__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__str__</span>&nbsp;(<span class=\"sig-arg\">self</span>)</span>\n    <br /><em class=\"fname\">(Informal representation operator)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Default <code>str(self)</code>.</p>\n  <dl class=\"fields\">\n    <dt>Overrides:\n        object.__str__\n        <dd><em class=\"note\">(inherited documentation)</em></dd>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__sub__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__sub__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>)</span>\n    <br /><em class=\"fname\">(Subtraction operator)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return <code><b>self</b> - <b>other</b></code> as an <a \n  href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html\" \n  class=\"link\">AuxAngle</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>other</code></strong> - An <a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html\" \n          class=\"link\">AuxAngle</a>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The difference (<a \n          href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html\" \n          class=\"link\">AuxAngle</a>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>other</code></b> type.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"normal\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">normal</span>&nbsp;(<span class=\"sig-arg\">self</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Normalize this angle <i>in-place</i>.</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd>This angle, normalized (<a \n          href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html\" \n          class=\"link\">AuxAngle</a>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"diff\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">diff</h3>\n  <p>Get derivative <code>dtan(Eta) / dtan(Phi)</code> (<code>float</code> \n  or <code>NAN</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">diff(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get derivative <code>dtan(Eta) / dtan(Phi)</code> (<code>float</code> or \n<code>NAN</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"iteration\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">iteration</h3>\n  <p>Get the iteration (<code>int</code> or <code>None</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">iteration(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the iteration (<code>int</code> or <code>None</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"normalized\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">normalized</h3>\n  <p>Get a normalized copy of this angle (<a \n  href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html\" \n  class=\"link\">AuxAngle</a>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">normalized(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get a normalized copy of this angle (<a \nhref=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html\" \nclass=\"link\">AuxAngle</a>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"tan\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">tan</h3>\n  <p>Get this angle's <code>tan</code> (<code>float</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">tan(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get this angle's <code>tan</code> (<code>float</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toDegrees\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">toDegrees</h3>\n  <p>Get this angle as <a href=\"pygeodesy.units.Degrees-class.html\" \n  class=\"link\">Degrees</a>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">toDegrees(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get this angle as <a href=\"pygeodesy.units.Degrees-class.html\" \nclass=\"link\">Degrees</a>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toLambertianDegrees\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">toLambertianDegrees</h3>\n  <p>Get this angle's <i>Lambertian</i> in <a \n  href=\"pygeodesy.units.Degrees-class.html\" class=\"link\">Degrees</a>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">toLambertianDegrees(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get this angle's <i>Lambertian</i> in <a \nhref=\"pygeodesy.units.Degrees-class.html\" class=\"link\">Degrees</a>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toLambertianRadians\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">toLambertianRadians</h3>\n  <p>Get this angle's <i>Lambertian</i> in <a \n  href=\"pygeodesy.units.Radians-class.html\" class=\"link\">Radians</a>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">toLambertianRadians(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get this angle's <i>Lambertian</i> in <a \nhref=\"pygeodesy.units.Radians-class.html\" class=\"link\">Radians</a>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toRadians\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">toRadians</h3>\n  <p>Get this angle as <a href=\"pygeodesy.units.Radians-class.html\" \n  class=\"link\">Radians</a>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">toRadians(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get this angle as <a href=\"pygeodesy.units.Radians-class.html\" \nclass=\"link\">Radians</a>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"x\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">x</h3>\n  <p>Get this angle's <code>x</code> (<code>float</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">x(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get this angle's <code>x</code> (<code>float</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">x(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">x</span>)</span>\n        - Set this angle's <code>x</code> (<code>float</code>).\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"y\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">y</h3>\n  <p>Get this angle's <code>y</code> (<code>float</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">y(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get this angle's <code>y</code> (<code>float</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">y(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">y</span>)</span>\n        - Set this angle's <code>y</code> (<code>float</code>).\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.auxilats.auxAngle.AuxBeta-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.auxilats.auxAngle.AuxBeta</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.auxilats-module.html\">Package&nbsp;auxilats</a> ::\n        <a href=\"pygeodesy.auxilats.auxAngle-module.html\" onclick=\"show_private();\">Module&nbsp;auxAngle</a> ::\n        Class&nbsp;AuxBeta\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.auxilats.auxAngle.AuxBeta-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class AuxBeta</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+        \n           |        \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n               |    \n        <a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html\">AuxAngle</a> --+\n                   |\n                  <strong class=\"uidshort\">AuxBeta</strong>\n</pre>\n\n<hr />\n<p>A <i>Parametric, Auxiliary</i> latitude.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html\">AuxAngle</a></code></b>:\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__abs__\">__abs__</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__add__\">__add__</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__bool__\">__bool__</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__eq__\">__eq__</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__float__\">__float__</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__iadd__\">__iadd__</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__init__\">__init__</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__isub__\">__isub__</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__ne__\">__ne__</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__neg__\">__neg__</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__pos__\">__pos__</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__radd__\">__radd__</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__rsub__\">__rsub__</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__sub__\">__sub__</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#copyquadrant\">copyquadrant</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#normal\">normal</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#toBeta\">toBeta</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#toChi\">toChi</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#toMu\">toMu</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#toPhi\">toPhi</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.auxilats.auxAngle.AuxBeta-class.html#fromDegrees\" class=\"summary-sig-name\">fromDegrees</a>(<span class=\"summary-sig-arg\">deg</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Get an <a href=\"pygeodesy.auxilats.auxAngle.AuxBeta-class.html\" \n      class=\"link\">AuxBeta</a> from degrees.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.auxilats.auxAngle.AuxBeta-class.html#fromRadians\" class=\"summary-sig-name\">fromRadians</a>(<span class=\"summary-sig-arg\">rad</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Get an <a href=\"pygeodesy.auxilats.auxAngle.AuxBeta-class.html\" \n      class=\"link\">AuxBeta</a> from radians.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html\">AuxAngle</a></code></b>:\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#fromLambertianDegrees\">fromLambertianDegrees</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#fromLambertianRadians\">fromLambertianRadians</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html\">AuxAngle</a></code></b>:\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#diff\">diff</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#normalized\">normalized</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#tan\">tan</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#toDegrees\">toDegrees</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#toLambertianDegrees\">toLambertianDegrees</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#toLambertianRadians\">toLambertianRadians</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#toRadians\">toRadians</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#x\">x</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#y\">y</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"fromDegrees\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">fromDegrees</span>&nbsp;(<span class=\"sig-arg\">deg</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n    <br /><em class=\"fname\">Static Method</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Get an <a href=\"pygeodesy.auxilats.auxAngle.AuxBeta-class.html\" \n  class=\"link\">AuxBeta</a> from degrees.</p>\n  <dl class=\"fields\">\n    <dt>Overrides:\n        <a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#fromDegrees\">AuxAngle.fromDegrees</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"fromRadians\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">fromRadians</span>&nbsp;(<span class=\"sig-arg\">rad</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n    <br /><em class=\"fname\">Static Method</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Get an <a href=\"pygeodesy.auxilats.auxAngle.AuxBeta-class.html\" \n  class=\"link\">AuxBeta</a> from radians.</p>\n  <dl class=\"fields\">\n    <dt>Overrides:\n        <a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#fromRadians\">AuxAngle.fromRadians</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.auxilats.auxAngle.AuxChi-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.auxilats.auxAngle.AuxChi</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.auxilats-module.html\">Package&nbsp;auxilats</a> ::\n        <a href=\"pygeodesy.auxilats.auxAngle-module.html\" onclick=\"show_private();\">Module&nbsp;auxAngle</a> ::\n        Class&nbsp;AuxChi\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.auxilats.auxAngle.AuxChi-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class AuxChi</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+        \n           |        \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n               |    \n        <a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html\">AuxAngle</a> --+\n                   |\n                  <strong class=\"uidshort\">AuxChi</strong>\n</pre>\n\n<hr />\n<p>A <i>Conformal, Auxiliary</i> latitude.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html\">AuxAngle</a></code></b>:\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__abs__\">__abs__</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__add__\">__add__</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__bool__\">__bool__</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__eq__\">__eq__</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__float__\">__float__</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__iadd__\">__iadd__</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__init__\">__init__</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__isub__\">__isub__</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__ne__\">__ne__</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__neg__\">__neg__</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__pos__\">__pos__</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__radd__\">__radd__</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__rsub__\">__rsub__</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__sub__\">__sub__</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#copyquadrant\">copyquadrant</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#normal\">normal</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#toBeta\">toBeta</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#toChi\">toChi</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#toMu\">toMu</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#toPhi\">toPhi</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.auxilats.auxAngle.AuxChi-class.html#fromDegrees\" class=\"summary-sig-name\">fromDegrees</a>(<span class=\"summary-sig-arg\">deg</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Get an <a href=\"pygeodesy.auxilats.auxAngle.AuxChi-class.html\" \n      class=\"link\">AuxChi</a> from degrees.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html\">AuxAngle</a></code></b>:\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#fromLambertianDegrees\">fromLambertianDegrees</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#fromLambertianRadians\">fromLambertianRadians</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#fromRadians\">fromRadians</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html\">AuxAngle</a></code></b>:\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#diff\">diff</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#normalized\">normalized</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#tan\">tan</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#toDegrees\">toDegrees</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#toLambertianDegrees\">toLambertianDegrees</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#toLambertianRadians\">toLambertianRadians</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#toRadians\">toRadians</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#x\">x</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#y\">y</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"fromDegrees\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">fromDegrees</span>&nbsp;(<span class=\"sig-arg\">deg</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n    <br /><em class=\"fname\">Static Method</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Get an <a href=\"pygeodesy.auxilats.auxAngle.AuxChi-class.html\" \n  class=\"link\">AuxChi</a> from degrees.</p>\n  <dl class=\"fields\">\n    <dt>Overrides:\n        <a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#fromDegrees\">AuxAngle.fromDegrees</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.auxilats.auxAngle.AuxMu-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.auxilats.auxAngle.AuxMu</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.auxilats-module.html\">Package&nbsp;auxilats</a> ::\n        <a href=\"pygeodesy.auxilats.auxAngle-module.html\" onclick=\"show_private();\">Module&nbsp;auxAngle</a> ::\n        Class&nbsp;AuxMu\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.auxilats.auxAngle.AuxMu-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class AuxMu</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+        \n           |        \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n               |    \n        <a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html\">AuxAngle</a> --+\n                   |\n                  <strong class=\"uidshort\">AuxMu</strong>\n</pre>\n\n<hr />\n<p>A <i>Rectifying, Auxiliary</i> latitude.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html\">AuxAngle</a></code></b>:\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__abs__\">__abs__</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__add__\">__add__</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__bool__\">__bool__</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__eq__\">__eq__</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__float__\">__float__</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__iadd__\">__iadd__</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__init__\">__init__</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__isub__\">__isub__</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__ne__\">__ne__</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__neg__\">__neg__</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__pos__\">__pos__</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__radd__\">__radd__</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__rsub__\">__rsub__</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__sub__\">__sub__</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#copyquadrant\">copyquadrant</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#normal\">normal</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#toBeta\">toBeta</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#toChi\">toChi</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#toMu\">toMu</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#toPhi\">toPhi</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.auxilats.auxAngle.AuxMu-class.html#fromDegrees\" class=\"summary-sig-name\">fromDegrees</a>(<span class=\"summary-sig-arg\">deg</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Get an <a href=\"pygeodesy.auxilats.auxAngle.AuxMu-class.html\" \n      class=\"link\">AuxMu</a> from degrees.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html\">AuxAngle</a></code></b>:\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#fromLambertianDegrees\">fromLambertianDegrees</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#fromLambertianRadians\">fromLambertianRadians</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#fromRadians\">fromRadians</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html\">AuxAngle</a></code></b>:\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#diff\">diff</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#normalized\">normalized</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#tan\">tan</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#toDegrees\">toDegrees</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#toLambertianDegrees\">toLambertianDegrees</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#toLambertianRadians\">toLambertianRadians</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#toRadians\">toRadians</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#x\">x</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#y\">y</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"fromDegrees\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">fromDegrees</span>&nbsp;(<span class=\"sig-arg\">deg</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n    <br /><em class=\"fname\">Static Method</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Get an <a href=\"pygeodesy.auxilats.auxAngle.AuxMu-class.html\" \n  class=\"link\">AuxMu</a> from degrees.</p>\n  <dl class=\"fields\">\n    <dt>Overrides:\n        <a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#fromDegrees\">AuxAngle.fromDegrees</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.auxilats.auxAngle.AuxPhi-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.auxilats.auxAngle.AuxPhi</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.auxilats-module.html\">Package&nbsp;auxilats</a> ::\n        <a href=\"pygeodesy.auxilats.auxAngle-module.html\" onclick=\"show_private();\">Module&nbsp;auxAngle</a> ::\n        Class&nbsp;AuxPhi\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.auxilats.auxAngle.AuxPhi-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class AuxPhi</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+        \n           |        \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n               |    \n        <a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html\">AuxAngle</a> --+\n                   |\n                  <strong class=\"uidshort\">AuxPhi</strong>\n</pre>\n\n<hr />\n<p>A <i>Geodetic or Geographic, Auxiliary</i> latitude.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html\">AuxAngle</a></code></b>:\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__abs__\">__abs__</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__add__\">__add__</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__bool__\">__bool__</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__eq__\">__eq__</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__float__\">__float__</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__iadd__\">__iadd__</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__init__\">__init__</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__isub__\">__isub__</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__ne__\">__ne__</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__neg__\">__neg__</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__pos__\">__pos__</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__radd__\">__radd__</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__rsub__\">__rsub__</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__sub__\">__sub__</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#copyquadrant\">copyquadrant</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#normal\">normal</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#toBeta\">toBeta</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#toChi\">toChi</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#toMu\">toMu</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#toPhi\">toPhi</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.auxilats.auxAngle.AuxPhi-class.html#fromDegrees\" class=\"summary-sig-name\">fromDegrees</a>(<span class=\"summary-sig-arg\">deg</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Get an <a href=\"pygeodesy.auxilats.auxAngle.AuxPhi-class.html\" \n      class=\"link\">AuxPhi</a> from degrees.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html\">AuxAngle</a></code></b>:\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#fromLambertianDegrees\">fromLambertianDegrees</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#fromLambertianRadians\">fromLambertianRadians</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#fromRadians\">fromRadians</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html\">AuxAngle</a></code></b>:\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#diff\">diff</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#normalized\">normalized</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#tan\">tan</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#toDegrees\">toDegrees</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#toLambertianDegrees\">toLambertianDegrees</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#toLambertianRadians\">toLambertianRadians</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#toRadians\">toRadians</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#x\">x</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#y\">y</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"fromDegrees\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">fromDegrees</span>&nbsp;(<span class=\"sig-arg\">deg</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n    <br /><em class=\"fname\">Static Method</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Get an <a href=\"pygeodesy.auxilats.auxAngle.AuxPhi-class.html\" \n  class=\"link\">AuxPhi</a> from degrees.</p>\n  <dl class=\"fields\">\n    <dt>Overrides:\n        <a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#fromDegrees\">AuxAngle.fromDegrees</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.auxilats.auxAngle.AuxTheta-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.auxilats.auxAngle.AuxTheta</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.auxilats-module.html\">Package&nbsp;auxilats</a> ::\n        <a href=\"pygeodesy.auxilats.auxAngle-module.html\" onclick=\"show_private();\">Module&nbsp;auxAngle</a> ::\n        Class&nbsp;AuxTheta\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.auxilats.auxAngle.AuxTheta-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class AuxTheta</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+        \n           |        \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n               |    \n        <a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html\">AuxAngle</a> --+\n                   |\n                  <strong class=\"uidshort\">AuxTheta</strong>\n</pre>\n\n<hr />\n<p>A <i>Geocentric, Auxiliary</i> latitude.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html\">AuxAngle</a></code></b>:\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__abs__\">__abs__</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__add__\">__add__</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__bool__\">__bool__</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__eq__\">__eq__</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__float__\">__float__</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__iadd__\">__iadd__</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__init__\">__init__</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__isub__\">__isub__</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__ne__\">__ne__</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__neg__\">__neg__</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__pos__\">__pos__</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__radd__\">__radd__</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__rsub__\">__rsub__</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__sub__\">__sub__</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#copyquadrant\">copyquadrant</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#normal\">normal</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#toBeta\">toBeta</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#toChi\">toChi</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#toMu\">toMu</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#toPhi\">toPhi</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.auxilats.auxAngle.AuxTheta-class.html#fromDegrees\" class=\"summary-sig-name\">fromDegrees</a>(<span class=\"summary-sig-arg\">deg</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Get an <a href=\"pygeodesy.auxilats.auxAngle.AuxTheta-class.html\" \n      class=\"link\">AuxTheta</a> from degrees.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html\">AuxAngle</a></code></b>:\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#fromLambertianDegrees\">fromLambertianDegrees</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#fromLambertianRadians\">fromLambertianRadians</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#fromRadians\">fromRadians</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html\">AuxAngle</a></code></b>:\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#diff\">diff</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#normalized\">normalized</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#tan\">tan</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#toDegrees\">toDegrees</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#toLambertianDegrees\">toLambertianDegrees</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#toLambertianRadians\">toLambertianRadians</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#toRadians\">toRadians</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#x\">x</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#y\">y</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"fromDegrees\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">fromDegrees</span>&nbsp;(<span class=\"sig-arg\">deg</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n    <br /><em class=\"fname\">Static Method</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Get an <a href=\"pygeodesy.auxilats.auxAngle.AuxTheta-class.html\" \n  class=\"link\">AuxTheta</a> from degrees.</p>\n  <dl class=\"fields\">\n    <dt>Overrides:\n        <a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#fromDegrees\">AuxAngle.fromDegrees</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.auxilats.auxAngle.AuxXi-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.auxilats.auxAngle.AuxXi</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.auxilats-module.html\">Package&nbsp;auxilats</a> ::\n        <a href=\"pygeodesy.auxilats.auxAngle-module.html\" onclick=\"show_private();\">Module&nbsp;auxAngle</a> ::\n        Class&nbsp;AuxXi\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.auxilats.auxAngle.AuxXi-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class AuxXi</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+        \n           |        \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n               |    \n        <a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html\">AuxAngle</a> --+\n                   |\n                  <strong class=\"uidshort\">AuxXi</strong>\n</pre>\n\n<hr />\n<p>An <i>Authalic, Auxiliary</i> latitude.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html\">AuxAngle</a></code></b>:\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__abs__\">__abs__</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__add__\">__add__</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__bool__\">__bool__</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__eq__\">__eq__</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__float__\">__float__</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__iadd__\">__iadd__</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__init__\">__init__</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__isub__\">__isub__</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__ne__\">__ne__</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__neg__\">__neg__</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__pos__\">__pos__</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__radd__\">__radd__</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__rsub__\">__rsub__</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__sub__\">__sub__</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#copyquadrant\">copyquadrant</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#normal\">normal</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#toBeta\">toBeta</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#toChi\">toChi</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#toMu\">toMu</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#toPhi\">toPhi</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.auxilats.auxAngle.AuxXi-class.html#fromDegrees\" class=\"summary-sig-name\">fromDegrees</a>(<span class=\"summary-sig-arg\">deg</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Get an <a href=\"pygeodesy.auxilats.auxAngle.AuxXi-class.html\" \n      class=\"link\">AuxXi</a> from degrees.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html\">AuxAngle</a></code></b>:\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#fromLambertianDegrees\">fromLambertianDegrees</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#fromLambertianRadians\">fromLambertianRadians</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#fromRadians\">fromRadians</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html\">AuxAngle</a></code></b>:\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#diff\">diff</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#normalized\">normalized</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#tan\">tan</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#toDegrees\">toDegrees</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#toLambertianDegrees\">toLambertianDegrees</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#toLambertianRadians\">toLambertianRadians</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#toRadians\">toRadians</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#x\">x</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#y\">y</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"fromDegrees\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">fromDegrees</span>&nbsp;(<span class=\"sig-arg\">deg</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n    <br /><em class=\"fname\">Static Method</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Get an <a href=\"pygeodesy.auxilats.auxAngle.AuxXi-class.html\" \n  class=\"link\">AuxXi</a> from degrees.</p>\n  <dl class=\"fields\">\n    <dt>Overrides:\n        <a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#fromDegrees\">AuxAngle.fromDegrees</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.auxilats.auxDLat-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.auxilats.auxDLat</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.auxilats-module.html\">Package&nbsp;auxilats</a> ::\n        Module&nbsp;auxDLat\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.auxilats.auxDLat-module.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== MODULE DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Module auxDLat</h1><p class=\"nomargin-top\"></p>\n<p>Class <a href=\"pygeodesy.auxilats.auxDLat.AuxDLat-class.html\" \n  class=\"link\">AuxDLat</a> transcoded to Python from <i>Karney</i>'s C++ \n  class <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1DAuxLatitude.html\"\n  target=\"_top\">DAuxLatitude</a> in <i>GeographicLib version 2.2+</i>.</p>\n  <p>Copyright (C) <a href=\"mailto:Karney@Alum.MIT.edu\" \n  target=\"_top\">Charles Karney</a> (2022-2024) and licensed under the \n  MIT/X11 License.  For more information, see the <a \n  href=\"https://GeographicLib.SourceForge.io\" \n  target=\"_top\">GeographicLib</a> documentation.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Version:</strong>\n        26.01.20\n      </p>\n</div><!-- ==================== CLASSES ==================== -->\n<a name=\"section-Classes\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Classes</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.auxilats.auxDLat.AuxDLat-class.html\" class=\"summary-name\">AuxDLat</a><br />\n      Class to compute <code>Divided Differences</code> of \n        <i>Auxiliary</i> latitudes and other <code>Divided \n        Differences</code> needed for <a \n        href=\"pygeodesy.rhumb.aux_.RhumbAux-class.html\" \n        class=\"link\">RhumbAux</a> and <a \n        href=\"pygeodesy.rhumb.aux_.RhumbLineAux-class.html\" \n        class=\"link\">RhumbLineAux</a> calculations.\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.auxilats.auxDLat.AuxDLat-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.auxilats.auxDLat.AuxDLat</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.auxilats-module.html\">Package&nbsp;auxilats</a> ::\n        <a href=\"pygeodesy.auxilats.auxDLat-module.html\" onclick=\"show_private();\">Module&nbsp;auxDLat</a> ::\n        Class&nbsp;AuxDLat\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.auxilats.auxDLat.AuxDLat-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class AuxDLat</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n   object --+            \n            |            \n <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+        \n                |        \n<a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html\">auxAngle.AuxAngle</a> --+    \n                    |    \n        <a href=\"pygeodesy.auxilats.auxLat.AuxLat-class.html\">auxLat.AuxLat</a> --+\n                        |\n                       <strong class=\"uidshort\">AuxDLat</strong>\n</pre>\n\n<hr />\n<p>Class to compute <code>Divided Differences</code> of <i>Auxiliary</i> \n  latitudes and other <code>Divided Differences</code> needed for <a \n  href=\"pygeodesy.rhumb.aux_.RhumbAux-class.html\" class=\"link\">RhumbAux</a>\n  and <a href=\"pygeodesy.rhumb.aux_.RhumbLineAux-class.html\" \n  class=\"link\">RhumbLineAux</a> calculations.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"CParametric\"></a><span class=\"summary-sig-name\">CParametric</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">Zeta1</span>,\n        <span class=\"summary-sig-arg\">Zeta2</span>)</span><br />\n      Short for <code>.Dconvert(Aux.BETA, <b>Zeta1</b>, \n      <b>Zeta2</b>)</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"CRectifying\"></a><span class=\"summary-sig-name\">CRectifying</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">Zeta1</span>,\n        <span class=\"summary-sig-arg\">Zeta2</span>)</span><br />\n      Short for <code>.Dconvert(Aux.MU, <b>Zeta1</b>, <b>Zeta2</b>)</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"Dconvert\"></a><span class=\"summary-sig-name\">Dconvert</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">auxout</span>,\n        <span class=\"summary-sig-arg\">Zeta1</span>,\n        <span class=\"summary-sig-arg\">Zeta2</span>)</span><br />\n      <i>Divided Difference</i> of one auxiliary latitude wrt another.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"DE\"></a><span class=\"summary-sig-name\">DE</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">X</span>,\n        <span class=\"summary-sig-arg\">Y</span>)</span></td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"DIsometric\"></a><span class=\"summary-sig-name\">DIsometric</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">Phi1</span>,\n        <span class=\"summary-sig-arg\">Phi2</span>)</span><br />\n      <i>Divided Difference</i> of the isometric wrt the geographic \n      latitude.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"DParametric\"></a><span class=\"summary-sig-name\">DParametric</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">Phi1</span>,\n        <span class=\"summary-sig-arg\">Phi2</span>)</span><br />\n      <i>Divided Difference</i> of the parametric wrt the geographic \n      latitude.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"DRectifying\"></a><span class=\"summary-sig-name\">DRectifying</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">Phi1</span>,\n        <span class=\"summary-sig-arg\">Phi2</span>)</span><br />\n      <i>Divided Difference</i> of the rectifying wrt the geographic \n      latitude.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.auxilats.auxLat.AuxLat-class.html\">auxLat.AuxLat</a></code></b>:\n      <code><a href=\"pygeodesy.auxilats.auxLat.AuxLat-class.html#Authalic\">Authalic</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxLat.AuxLat-class.html#AuthalicRadius2\">AuthalicRadius2</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxLat.AuxLat-class.html#Conformal\">Conformal</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxLat.AuxLat-class.html#Geocentric\">Geocentric</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxLat.AuxLat-class.html#Geodetic\">Geodetic</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxLat.AuxLat-class.html#Parametric\">Parametric</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxLat.AuxLat-class.html#Rectifying\">Rectifying</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxLat.AuxLat-class.html#RectifyingRadius\">RectifyingRadius</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxLat.AuxLat-class.html#Reduced\">Reduced</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxLat.AuxLat-class.html#__init__\">__init__</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxLat.AuxLat-class.html#convert\">convert</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html\">auxAngle.AuxAngle</a></code></b>:\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__abs__\">__abs__</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__add__\">__add__</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__bool__\">__bool__</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__eq__\">__eq__</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__float__\">__float__</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__iadd__\">__iadd__</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__isub__\">__isub__</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__ne__\">__ne__</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__neg__\">__neg__</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__pos__\">__pos__</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__radd__\">__radd__</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__rsub__\">__rsub__</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__sub__\">__sub__</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#copyquadrant\">copyquadrant</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#normal\">normal</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#toBeta\">toBeta</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#toChi\">toChi</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#toMu\">toMu</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#toPhi\">toPhi</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html\">auxAngle.AuxAngle</a></code></b>:\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#fromDegrees\">fromDegrees</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#fromLambertianDegrees\">fromLambertianDegrees</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#fromLambertianRadians\">fromLambertianRadians</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#fromRadians\">fromRadians</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.auxilats.auxLat.AuxLat-class.html\">auxLat.AuxLat</a></code></b>:\n      <code><a href=\"pygeodesy.auxilats.auxLat.AuxLat-class.html#ALorder\">ALorder</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxLat.AuxLat-class.html#a\">a</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxLat.AuxLat-class.html#b\">b</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxLat.AuxLat-class.html#ellipsoid\">ellipsoid</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxLat.AuxLat-class.html#equatoradius\">equatoradius</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxLat.AuxLat-class.html#f\">f</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxLat.AuxLat-class.html#flattening\">flattening</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxLat.AuxLat-class.html#polaradius\">polaradius</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html\">auxAngle.AuxAngle</a></code></b>:\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#diff\">diff</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#normalized\">normalized</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#tan\">tan</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#toDegrees\">toDegrees</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#toLambertianDegrees\">toLambertianDegrees</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#toLambertianRadians\">toLambertianRadians</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#toRadians\">toRadians</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#x\">x</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#y\">y</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.auxilats.auxDST-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.auxilats.auxDST</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.auxilats-module.html\">Package&nbsp;auxilats</a> ::\n        Module&nbsp;auxDST\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.auxilats.auxDST-module.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== MODULE DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Module auxDST</h1><p class=\"nomargin-top\"></p>\n<p>Discrete Sine Transforms (AuxDST) in Python, transcoded from \n  <i>Karney</i>'s C++ class <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1DST.html\"\n  target=\"_top\">DST</a> in <i>GeographicLib version 2.2+</i>.</p>\n  <p>Copyright (C) <a href=\"mailto:Karney@Alum.MIT.edu\" \n  target=\"_top\">Charles Karney</a> (2022-2024) and licensed under the \n  MIT/X11 License.  For more information, see the <a \n  href=\"https://GeographicLib.SourceForge.io\" \n  target=\"_top\">GeographicLib</a> documentation.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Note:</strong>\n        Class <a href=\"pygeodesy.auxilats.auxDST.AuxDST-class.html\" \n        class=\"link\">AuxDST</a> requires <a \n        href=\"https://PyPI.org/project/numpy\" target=\"_top\">numpy</a> to be\n        installed, version 1.16 or newer.\n      </p>\n      <p><strong>Version:</strong>\n        25.05.12\n      </p>\n</div><!-- ==================== CLASSES ==================== -->\n<a name=\"section-Classes\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Classes</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.auxilats.auxDST.AuxDST-class.html\" class=\"summary-name\">AuxDST</a><br />\n      Discrete Sine Transforms (DST) for <i>Auxiliary</i> latitudes.\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.auxilats.auxDST.AuxDST-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.auxilats.auxDST.AuxDST</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.auxilats-module.html\">Package&nbsp;auxilats</a> ::\n        <a href=\"pygeodesy.auxilats.auxDST-module.html\" onclick=\"show_private();\">Module&nbsp;auxDST</a> ::\n        Class&nbsp;AuxDST\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.auxilats.auxDST.AuxDST-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class AuxDST</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\nobject --+\n         |\n        <strong class=\"uidshort\">AuxDST</strong>\n</pre>\n\n<hr />\n<p>Discrete Sine Transforms (DST) for <i>Auxiliary</i> latitudes.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <i>Karney</i>'s C++ class <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1DST.html\"\n        target=\"_top\">DST</a>.\n      </p>\n</div><!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.auxilats.auxDST.AuxDST-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">N</span>)</span><br />\n      New <a href=\"pygeodesy.auxilats.auxDST.AuxDST-class.html\" \n      class=\"link\">AuxDST</a> instance.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.auxilats.auxDST.AuxDST-class.html#refine\" class=\"summary-sig-name\">refine</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">f</span>,\n        <span class=\"summary-sig-arg\">F</span>,\n        <span class=\"summary-sig-arg\">*sentinel</span>)</span><br />\n      Refine the Fourier series by doubling the sampled points.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.auxilats.auxDST.AuxDST-class.html#reset\" class=\"summary-sig-name\">reset</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">N</span>)</span><br />\n      Reset this DST.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.auxilats.auxDST.AuxDST-class.html#transform\" class=\"summary-sig-name\">transform</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">f</span>)</span><br />\n      Determine <code>[N + 1]</code> terms in the Fourier series.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__format__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__repr__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__str__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.auxilats.auxDST.AuxDST-class.html#evaluate\" class=\"summary-sig-name\">evaluate</a>(<span class=\"summary-sig-arg\">sinx</span>,\n        <span class=\"summary-sig-arg\">cosx</span>,\n        <span class=\"summary-sig-arg\">F</span>,\n        <span class=\"summary-sig-arg\">*N</span>)</span><br />\n      Evaluate the Fourier sum given the sine and cosine of the angle, \n      using precision <i>Clenshaw</i> summation.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.auxilats.auxDST.AuxDST-class.html#integral\" class=\"summary-sig-name\">integral</a>(<span class=\"summary-sig-arg\">sinx</span>,\n        <span class=\"summary-sig-arg\">cosx</span>,\n        <span class=\"summary-sig-arg\">F</span>,\n        <span class=\"summary-sig-arg\">*N</span>)</span><br />\n      Evaluate the integral of Fourier sum given the sine and cosine of the\n      angle, using precision <i>Clenshaw</i> summation.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.auxilats.auxDST.AuxDST-class.html#integral2\" class=\"summary-sig-name\">integral2</a>(<span class=\"summary-sig-arg\">sinx</span>,\n        <span class=\"summary-sig-arg\">cosx</span>,\n        <span class=\"summary-sig-arg\">siny</span>,\n        <span class=\"summary-sig-arg\">cosy</span>,\n        <span class=\"summary-sig-arg\">F</span>,\n        <span class=\"summary-sig-arg\">*N</span>)</span><br />\n      Compute the definite integral of Fourier sum given the sine and \n      cosine of the angles at the end points, using precision \n      <i>Clenshaw</i> summation.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.auxilats.auxDST.AuxDST-class.html#N\" class=\"summary-name\">N</a><br />\n      Get this DST's size, number of points (<code>int</code>).\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">N</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.auxilats.auxDST.AuxDST-class.html\" \n  class=\"link\">AuxDST</a> instance.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>N</code></strong> - Size, number of points (<code>int</code>).</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"evaluate\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">evaluate</span>&nbsp;(<span class=\"sig-arg\">sinx</span>,\n        <span class=\"sig-arg\">cosx</span>,\n        <span class=\"sig-arg\">F</span>,\n        <span class=\"sig-arg\">*N</span>)</span>\n    <br /><em class=\"fname\">Static Method</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Evaluate the Fourier sum given the sine and cosine of the angle, using\n  precision <i>Clenshaw</i> summation.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>sinx</code></strong> - The sin(<i>sigma</i>) (<code>float</code>).</li>\n        <li><strong class=\"pname\"><code>cosx</code></strong> - The cos(<i>sigma</i>) (<code>float</code>).</li>\n        <li><strong class=\"pname\"><code>F</code></strong> - The Fourier coefficients (<code>float</code>[]).</li>\n        <li><strong class=\"pname\"><code>N</code></strong> - Optional, (smaller) number of terms to evaluate \n          (<code>int</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Precison <i>Clenshaw</i> sum (<code>float</code>).</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Methods <code>AuxDST.integral</code> and \n        <code>AuxDST.integral2</code>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"integral\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">integral</span>&nbsp;(<span class=\"sig-arg\">sinx</span>,\n        <span class=\"sig-arg\">cosx</span>,\n        <span class=\"sig-arg\">F</span>,\n        <span class=\"sig-arg\">*N</span>)</span>\n    <br /><em class=\"fname\">Static Method</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Evaluate the integral of Fourier sum given the sine and cosine of the \n  angle, using precision <i>Clenshaw</i> summation.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>sinx</code></strong> - The sin(<i>sigma</i>) (<code>float</code>).</li>\n        <li><strong class=\"pname\"><code>cosx</code></strong> - The cos(<i>sigma</i>) (<code>float</code>).</li>\n        <li><strong class=\"pname\"><code>F</code></strong> - The Fourier coefficients (<code>float</code>[]).</li>\n        <li><strong class=\"pname\"><code>N</code></strong> - Optional, <code>len(<b>F</b>)</code> or a (smaller) number of \n          terms to evaluate (<code>int</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Precison <i>Clenshaw</i> intergral (<code>float</code>).</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Methods <code>AuxDST.evaluate</code> and \n        <code>AuxDST.integral2</code>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"integral2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">integral2</span>&nbsp;(<span class=\"sig-arg\">sinx</span>,\n        <span class=\"sig-arg\">cosx</span>,\n        <span class=\"sig-arg\">siny</span>,\n        <span class=\"sig-arg\">cosy</span>,\n        <span class=\"sig-arg\">F</span>,\n        <span class=\"sig-arg\">*N</span>)</span>\n    <br /><em class=\"fname\">Static Method</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the definite integral of Fourier sum given the sine and cosine\n  of the angles at the end points, using precision <i>Clenshaw</i> \n  summation.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>sinx</code></strong> - The sin(<i>sigma1</i>) (<code>float</code>).</li>\n        <li><strong class=\"pname\"><code>cosx</code></strong> - The cos(<i>sigma1</i>) (<code>float</code>).</li>\n        <li><strong class=\"pname\"><code>siny</code></strong> - The sin(<i>sigma2</i>) (<code>float</code>).</li>\n        <li><strong class=\"pname\"><code>cosy</code></strong> - The cos(<i>sigma2</i>) (<code>float</code>).</li>\n        <li><strong class=\"pname\"><code>F</code></strong> - The Fourier coefficients (<code>float</code>[]).</li>\n        <li><strong class=\"pname\"><code>N</code></strong> - Optional, <code>len(<b>F</b>)</code> or a (smaller) number of \n          terms to evaluate (<code>int</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Precison <i>Clenshaw</i> integral (<code>float</code>).</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Methods <code>AuxDST.evaluate</code> and \n        <code>AuxDST.integral</code>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"refine\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">refine</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">f</span>,\n        <span class=\"sig-arg\">F</span>,\n        <span class=\"sig-arg\">*sentinel</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Refine the Fourier series by doubling the sampled points.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>f</code></strong> - Single-argument callable (<code><b>f</b>(sigma)</code>).</li>\n        <li><strong class=\"pname\"><code>F</code></strong> - Initial Fourier series coefficients (<code>float</code>[:N]).</li>\n        <li><strong class=\"pname\"><code>sentinel</code></strong> - Optional coefficient(s) to append (<code>float</code>(s)).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Fourier series coefficients (<code>float</code>[:N*2]).</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        Any initial <code><b>F</b>[N:]</code> sentinel coefficients are \n        ignored.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"reset\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">reset</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">N</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Reset this DST.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>N</code></strong> - Size, number of points (<code>int</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The new size (<code>int</code>, non-negative).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"transform\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">transform</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">f</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Determine <code>[N + 1]</code> terms in the Fourier series.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>f</code></strong> - Single-argument callable (<code><b>f</b>(sigma)</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Fourier series coefficients (<code>float</code>[:N+1], leading \n          0).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"N\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">N</h3>\n  <p>Get this DST's size, number of points (<code>int</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">N(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get this DST's size, number of points (<code>int</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.auxilats.auxLat-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.auxilats.auxLat</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.auxilats-module.html\">Package&nbsp;auxilats</a> ::\n        Module&nbsp;auxLat\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.auxilats.auxLat-module.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== MODULE DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Module auxLat</h1><p class=\"nomargin-top\"></p>\n<p>Class <a href=\"pygeodesy.auxilats.auxLat.AuxLat-class.html\" \n  class=\"link\">AuxLat</a> transcoded to Python from <i>Karney</i>'s C++ \n  class <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1AuxLatitude.html\"\n  target=\"_top\">AuxLatitude</a> in <i>GeographicLib version 2.2+</i>.</p>\n  <p>Copyright (C) <a href=\"mailto:Karney@Alum.MIT.edu\" \n  target=\"_top\">Charles Karney</a> (2022-2024) and licensed under the \n  MIT/X11 License.  For more information, see the <a \n  href=\"https://GeographicLib.SourceForge.io\" \n  target=\"_top\">GeographicLib</a> documentation.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"https://GeographicLib.SourceForge.io/C++/doc/auxlat.html\" \n        target=\"_top\">Auxiliary latitudes</a> <a \n        href=\"https://ArXiv.org/abs/2212.05818\" target=\"_top\">On auxiliary \n        latitudes</a>.\n      </p>\n      <p><strong>Version:</strong>\n        26.01.20\n      </p>\n</div><!-- ==================== CLASSES ==================== -->\n<a name=\"section-Classes\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Classes</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.auxilats.auxLat.AuxLat-class.html\" class=\"summary-name\">AuxLat</a><br />\n      Base class for accurate conversion between <i>Auxiliary</i> \n        latitudes on an ellipsoid.\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.auxilats.auxLat.AuxLat-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.auxilats.auxLat.AuxLat</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.auxilats-module.html\">Package&nbsp;auxilats</a> ::\n        <a href=\"pygeodesy.auxilats.auxLat-module.html\" onclick=\"show_private();\">Module&nbsp;auxLat</a> ::\n        Class&nbsp;AuxLat\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.auxilats.auxLat.AuxLat-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class AuxLat</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n   object --+        \n            |        \n <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n                |    \n<a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html\">auxAngle.AuxAngle</a> --+\n                    |\n                   <strong class=\"uidshort\">AuxLat</strong>\n</pre>\n\n<dl><dt>Known Subclasses:</dt>\n<dd>\n      <ul class=\"subclass-list\">\n<li><a href=\"pygeodesy.auxilats.auxDLat.AuxDLat-class.html\">auxDLat.AuxDLat</a></li>  </ul>\n</dd></dl>\n\n<hr />\n<p>Base class for accurate conversion between <i>Auxiliary</i> latitudes \n  on an ellipsoid.</p>\n  <p>Latitudes are represented by <a \n  href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html\" \n  class=\"link\">AuxAngle</a> instances in order to maintain precision near \n  the poles, <i>Authalic</i> latitude <code>Xi</code>, <i>Conformal</i> \n  <code>Chi</code>, <i>Geocentric</i> <code>Theta</code>, <i>Geographic</i>\n  <code>Phi</code>, <i>Parametric</i> <code>Beta</code> and \n  <i>Rectifying</i> <code>Mu</code>.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <i>Karney</i>'s C++ class <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1AuxLatitude.html\"\n        target=\"_top\">AuxLatitude</a>.\n      </p>\n</div><!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.auxilats.auxLat.AuxLat-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">a_earth</span>=<span class=\"summary-sig-default\">Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.257223<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"summary-sig-arg\">f</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">b</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**ALorder_name</span>)</span><br />\n      New <a href=\"pygeodesy.auxilats.auxLat.AuxLat-class.html\" \n      class=\"link\">AuxLat</a> instance on an ellipsoid or datum.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.auxilats.auxLat.AuxLat-class.html#Authalic\" class=\"summary-sig-name\">Authalic</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">Phi</span>,\n        <span class=\"summary-sig-arg\">**diff_name</span>)</span><br />\n      Convert <i>Geographic</i> to <i>Aunthalic</i> latitude.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.auxilats.auxLat.AuxLat-class.html#AuthalicRadius2\" class=\"summary-sig-name\">AuthalicRadius2</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">exact</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">f_max</span>=<span class=\"summary-sig-default\">0.1</span>)</span><br />\n      Get the <i>Authalic</i> radius <i>squared</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.auxilats.auxLat.AuxLat-class.html#Conformal\" class=\"summary-sig-name\">Conformal</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">Phi</span>,\n        <span class=\"summary-sig-arg\">**diff_name</span>)</span><br />\n      Convert <i>Geographic</i> to <i>Conformal</i> latitude.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"convert\"></a><span class=\"summary-sig-name\">convert</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">auxout</span>,\n        <span class=\"summary-sig-arg\">Zeta_d</span>,\n        <span class=\"summary-sig-arg\">exact</span>=<span class=\"summary-sig-default\">False</span>)</span></td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.auxilats.auxLat.AuxLat-class.html#Geocentric\" class=\"summary-sig-name\">Geocentric</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">Phi</span>,\n        <span class=\"summary-sig-arg\">**diff_name</span>)</span><br />\n      Convert <i>Geographic</i> to <i>Geocentric</i> latitude.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.auxilats.auxLat.AuxLat-class.html#Geodetic\" class=\"summary-sig-name\">Geodetic</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">Phi</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Convert <i>Geographic</i> to <i>Geodetic</i> latitude.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.auxilats.auxLat.AuxLat-class.html#Parametric\" class=\"summary-sig-name\">Parametric</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">Phi</span>,\n        <span class=\"summary-sig-arg\">**diff_name</span>)</span><br />\n      Convert <i>Geographic</i> to <i>Parametric</i> latitude.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.auxilats.auxLat.AuxLat-class.html#Reduced\" class=\"summary-sig-name\">Reduced</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">Phi</span>,\n        <span class=\"summary-sig-arg\">**diff_name</span>)</span><br />\n      Convert <i>Geographic</i> to <i>Parametric</i> latitude.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.auxilats.auxLat.AuxLat-class.html#Rectifying\" class=\"summary-sig-name\">Rectifying</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">Phi</span>,\n        <span class=\"summary-sig-arg\">**diff_name</span>)</span><br />\n      Convert <i>Geographic</i> to <i>Rectifying</i> latitude.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.auxilats.auxLat.AuxLat-class.html#RectifyingRadius\" class=\"summary-sig-name\">RectifyingRadius</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">exact</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Get the <i>Rectifying</i> radius.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html\">auxAngle.AuxAngle</a></code></b>:\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__abs__\">__abs__</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__add__\">__add__</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__bool__\">__bool__</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__eq__\">__eq__</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__float__\">__float__</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__iadd__\">__iadd__</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__isub__\">__isub__</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__ne__\">__ne__</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__neg__\">__neg__</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__pos__\">__pos__</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__radd__\">__radd__</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__rsub__\">__rsub__</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#__sub__\">__sub__</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#copyquadrant\">copyquadrant</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#normal\">normal</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#toBeta\">toBeta</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#toChi\">toChi</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#toMu\">toMu</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#toPhi\">toPhi</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html\">auxAngle.AuxAngle</a></code></b>:\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#fromDegrees\">fromDegrees</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#fromLambertianDegrees\">fromLambertianDegrees</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#fromLambertianRadians\">fromLambertianRadians</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#fromRadians\">fromRadians</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.auxilats.auxLat.AuxLat-class.html#a\" class=\"summary-name\">a</a><br />\n      Get the <code>ellipsoid</code>'s equatorial radius \n      (<code>meter</code>, conventionally).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.auxilats.auxLat.AuxLat-class.html#equatoradius\" class=\"summary-name\">equatoradius</a><br />\n      Get the <code>ellipsoid</code>'s equatorial radius \n      (<code>meter</code>, conventionally).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.auxilats.auxLat.AuxLat-class.html#ALorder\" class=\"summary-name\">ALorder</a><br />\n      Get the <i>AuxLat</i> order (<code>int</code>, 4, 6 or 8).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.auxilats.auxLat.AuxLat-class.html#b\" class=\"summary-name\">b</a><br />\n      Get the <code>ellipsoid</code>'s polar radius (<code>meter</code>, \n      conventionally).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.auxilats.auxLat.AuxLat-class.html#polaradius\" class=\"summary-name\">polaradius</a><br />\n      Get the <code>ellipsoid</code>'s polar radius (<code>meter</code>, \n      conventionally).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.auxilats.auxLat.AuxLat-class.html#ellipsoid\" class=\"summary-name\">ellipsoid</a><br />\n      Get the ellipsoid (<a \n      href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n      class=\"link\">Ellipsoid</a>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.auxilats.auxLat.AuxLat-class.html#f\" class=\"summary-name\">f</a><br />\n      Get the <code>ellipsoid</code>'s flattening (<code>scalar</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.auxilats.auxLat.AuxLat-class.html#flattening\" class=\"summary-name\">flattening</a><br />\n      Get the <code>ellipsoid</code>'s flattening (<code>scalar</code>).\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html\">auxAngle.AuxAngle</a></code></b>:\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#diff\">diff</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#normalized\">normalized</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#tan\">tan</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#toDegrees\">toDegrees</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#toLambertianDegrees\">toLambertianDegrees</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#toLambertianRadians\">toLambertianRadians</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#toRadians\">toRadians</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#x\">x</a></code>,\n      <code><a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html#y\">y</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">a_earth</span>=<span class=\"sig-default\">Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.257223<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"sig-arg\">f</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">b</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**ALorder_name</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.auxilats.auxLat.AuxLat-class.html\" \n  class=\"link\">AuxLat</a> instance on an ellipsoid or datum.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>a_earth</code></strong> - Equatorial radius, semi-axis (<code>meter</code>) or an ellipsoid\n          or datum (<a href=\"pygeodesy.datums.Datum-class.html\" \n          class=\"link\">Datum</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a> or <a \n          href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>f</code></strong> - Flattening: <i class=\"math\">(a - b) / a</i> (<code>float</code>, \n          near zero for spherical), required if <b><code>a_earth</code></b>\n          is <code>scalar</code> and <code><b>b</b>=None</code>.</li>\n        <li><strong class=\"pname\"><code>b</code></strong> - Optional polar radius, semi-axis (<code>meter</code>, required if\n          <b><code>a_earth</code></b> is <code>scalar</code> and \n          <code><b>f</b>=None</code>.</li>\n        <li><strong class=\"pname\"><code>ALorder_name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>) and \n          optional order of this <a \n          href=\"pygeodesy.auxilats.auxLat.AuxLat-class.html\" \n          class=\"link\">AuxLat</a> <code><b>ALorder</b>=6</code>, see \n          property <code>ALorder</code>.</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.AuxError-class.html\">AuxError</a></strong></code> - Invalid <b><code>y_angle</code></b>, <b><code>x</code></b> or \n        <b><code>aux</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"Authalic\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">Authalic</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">Phi</span>,\n        <span class=\"sig-arg\">**diff_name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert <i>Geographic</i> to <i>Aunthalic</i> latitude.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>Phi</code></strong> - Geographic latitude (<a \n          href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html\" \n          class=\"link\">AuxAngle</a>).</li>\n        <li><strong class=\"pname\"><code>diff_name</code></strong> - Use <code><b>diff</b>=True</code> to set <code>diff</code> \n          optional <code><b>name</b>=NN</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Parametric latitude, <code>Beta</code> (<a \n          href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html\" \n          class=\"link\">AuxAngle</a>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"AuthalicRadius2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">AuthalicRadius2</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">exact</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">f_max</span>=<span class=\"sig-default\">0.1</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Get the <i>Authalic</i> radius <i>squared</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>exact</code></strong> - If <code>True</code>, use the exact expression, otherwise the \n          <i>Taylor</i> series.</li>\n        <li><strong class=\"pname\"><code>f_max</code></strong> - <code>Flattening</code> not to exceed (<code>float</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Authalic radius <i>squared</i> (<code>meter</code> \n          <i>squared</i>, same units as the ellipsoid axes).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.AuxError-class.html\">AuxError</a></strong></code> - If <code><b>exact</b>=False</code> and <code>abs(flattening)</code>\n        exceeds <code>f_max</code>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"Conformal\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">Conformal</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">Phi</span>,\n        <span class=\"sig-arg\">**diff_name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert <i>Geographic</i> to <i>Conformal</i> latitude.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>Phi</code></strong> - Geographic latitude (<a \n          href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html\" \n          class=\"link\">AuxAngle</a>).</li>\n        <li><strong class=\"pname\"><code>diff_name</code></strong> - Use <code><b>diff</b>=True</code> to set <code>diff</code> and an\n          optional <code><b>name</b>=NN</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Conformal latitude, <code>Chi</code> (<a \n          href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html\" \n          class=\"link\">AuxAngle</a>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"Geocentric\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">Geocentric</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">Phi</span>,\n        <span class=\"sig-arg\">**diff_name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert <i>Geographic</i> to <i>Geocentric</i> latitude.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>Phi</code></strong> - Geographic latitude (<a \n          href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html\" \n          class=\"link\">AuxAngle</a>).</li>\n        <li><strong class=\"pname\"><code>diff_name</code></strong> - Use <code><b>diff</b>=True</code> to set <code>diff</code> and an\n          optional <code><b>name</b>=NN</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Geocentric latitude, <code>Phi</code> (<a \n          href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html\" \n          class=\"link\">AuxAngle</a>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"Geodetic\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">Geodetic</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">Phi</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert <i>Geographic</i> to <i>Geodetic</i> latitude.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>Phi</code></strong> - Geographic latitude (<a \n          href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html\" \n          class=\"link\">AuxAngle</a>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Geodetic latitude, <code>Phi</code> (<a \n          href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html\" \n          class=\"link\">AuxAngle</a>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"Parametric\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">Parametric</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">Phi</span>,\n        <span class=\"sig-arg\">**diff_name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert <i>Geographic</i> to <i>Parametric</i> latitude.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>Phi</code></strong> - Geographic latitude (<a \n          href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html\" \n          class=\"link\">AuxAngle</a>).</li>\n        <li><strong class=\"pname\"><code>diff_name</code></strong> - Use <code><b>diff</b>=True</code> to set <code>diff</code> and an\n          optional <code><b>name</b>=NN</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Parametric latitude, <code>Beta</code> (<a \n          href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html\" \n          class=\"link\">AuxAngle</a>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"Reduced\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">Reduced</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">Phi</span>,\n        <span class=\"sig-arg\">**diff_name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert <i>Geographic</i> to <i>Parametric</i> latitude.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>Phi</code></strong> - Geographic latitude (<a \n          href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html\" \n          class=\"link\">AuxAngle</a>).</li>\n        <li><strong class=\"pname\"><code>diff_name</code></strong> - Use <code><b>diff</b>=True</code> to set <code>diff</code> and an\n          optional <code><b>name</b>=NN</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Parametric latitude, <code>Beta</code> (<a \n          href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html\" \n          class=\"link\">AuxAngle</a>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"Rectifying\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">Rectifying</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">Phi</span>,\n        <span class=\"sig-arg\">**diff_name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert <i>Geographic</i> to <i>Rectifying</i> latitude.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>Phi</code></strong> - Geographic latitude (<a \n          href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html\" \n          class=\"link\">AuxAngle</a>).</li>\n        <li><strong class=\"pname\"><code>diff_name</code></strong> - Use <code><b>diff</b>=True</code> to set <code>diff</code> and an\n          optional <code><b>name</b>=NN</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Rectifying latitude, <code>Mu</code> (<a \n          href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html\" \n          class=\"link\">AuxAngle</a>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"RectifyingRadius\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">RectifyingRadius</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">exact</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Get the <i>Rectifying</i> radius.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>exact</code></strong> - If <code>True</code>, use the exact expression, otherwise the \n          <i>Taylor</i> series.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Rectifying radius (<a href=\"pygeodesy.units.Meter-class.html\" \n          class=\"link\">Meter</a>, same units as the ellipsoid axes).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"a\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">a</h3>\n  <p>Get the <code>ellipsoid</code>'s equatorial radius \n  (<code>meter</code>, conventionally).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">a(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <code>ellipsoid</code>'s equatorial radius (<code>meter</code>, \nconventionally).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"equatoradius\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">equatoradius</h3>\n  <p>Get the <code>ellipsoid</code>'s equatorial radius \n  (<code>meter</code>, conventionally).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">a(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <code>ellipsoid</code>'s equatorial radius (<code>meter</code>, \nconventionally).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"ALorder\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">ALorder</h3>\n  <p>Get the <i>AuxLat</i> order (<code>int</code>, 4, 6 or 8).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">ALorder(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <i>AuxLat</i> order (<code>int</code>, 4, 6 or 8).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">ALorder(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">order</span>)</span>\n        - Set the <i>AuxLat</i> order (<code>int</code>, 4, 6 or 8).\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"b\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">b</h3>\n  <p>Get the <code>ellipsoid</code>'s polar radius (<code>meter</code>, \n  conventionally).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">b(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <code>ellipsoid</code>'s polar radius (<code>meter</code>, \nconventionally).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"polaradius\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">polaradius</h3>\n  <p>Get the <code>ellipsoid</code>'s polar radius (<code>meter</code>, \n  conventionally).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">b(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <code>ellipsoid</code>'s polar radius (<code>meter</code>, \nconventionally).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"ellipsoid\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">ellipsoid</h3>\n  <p>Get the ellipsoid (<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\"\n  class=\"link\">Ellipsoid</a>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">ellipsoid(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the ellipsoid (<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \nclass=\"link\">Ellipsoid</a>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"f\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">f</h3>\n  <p>Get the <code>ellipsoid</code>'s flattening (<code>scalar</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">f(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <code>ellipsoid</code>'s flattening (<code>scalar</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"flattening\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">flattening</h3>\n  <p>Get the <code>ellipsoid</code>'s flattening (<code>scalar</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">f(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <code>ellipsoid</code>'s flattening (<code>scalar</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.auxilats.auxily-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.auxilats.auxily</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.auxilats-module.html\">Package&nbsp;auxilats</a> ::\n        Module&nbsp;auxily\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.auxilats.auxily-module.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== MODULE DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Module auxily</h1><p class=\"nomargin-top\"></p>\n<p>(INTERNAL) <i>Auxiliary</i> latitudes' classes, constants and \n  functions.</p>\n  <p>Class <a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html\" \n  class=\"link\">AuxAngle</a> transcoded to Python from <i>Karney</i>'s C++ \n  class <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1AuxAngle.html\"\n  target=\"_top\">AuxAngle</a> in <i>GeographicLib version 2.2+</i>.</p>\n  <p>Copyright (C) <a href=\"mailto:Karney@Alum.MIT.edu\" \n  target=\"_top\">Charles Karney</a> (2022-2024) and licensed under the \n  MIT/X11 License.  For more information, see the <a \n  href=\"https://GeographicLib.SourceForge.io\" \n  target=\"_top\">GeographicLib</a> documentation.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Version:</strong>\n        25.08.31\n      </p>\n</div><!-- ==================== VARIABLES ==================== -->\n<a name=\"section-Variables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Variables</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"Aux\"></a><span class=\"summary-name\">Aux</span> = <code title=\"Aux()\">Aux()</code>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.azimuthal-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.azimuthal</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        Module&nbsp;azimuthal\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.azimuthal-module.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== MODULE DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Module azimuthal</h1><p class=\"nomargin-top\"></p>\n<p>Equidistant, Equal-Area, and other Azimuthal projections.</p>\n  <p>Classes <a href=\"pygeodesy.azimuthal.Equidistant-class.html\" \n  class=\"link\">Equidistant</a>, <a \n  href=\"pygeodesy.azimuthal.EquidistantExact-class.html\" \n  class=\"link\">EquidistantExact</a>, <a \n  href=\"pygeodesy.azimuthal.EquidistantGeodSolve-class.html\" \n  class=\"link\">EquidistantGeodSolve</a>, <a \n  href=\"pygeodesy.azimuthal.EquidistantKarney-class.html\" \n  class=\"link\">EquidistantKarney</a>, <a \n  href=\"pygeodesy.azimuthal.Gnomonic-class.html\" class=\"link\">Gnomonic</a>,\n  <a href=\"pygeodesy.azimuthal.GnomonicExact-class.html\" \n  class=\"link\">GnomonicExact</a>, <a \n  href=\"pygeodesy.azimuthal.GnomonicKarney-class.html\" \n  class=\"link\">GnomonicKarney</a>, <a \n  href=\"pygeodesy.azimuthal.LambertEqualArea-class.html\" \n  class=\"link\">LambertEqualArea</a>, <a \n  href=\"pygeodesy.azimuthal.Orthographic-class.html\" \n  class=\"link\">Orthographic</a> and <a \n  href=\"pygeodesy.azimuthal.Stereographic-class.html\" \n  class=\"link\">Stereographic</a>, classes <a \n  href=\"pygeodesy.azimuthal.AzimuthalError-class.html\" \n  class=\"link\">AzimuthalError</a>, <a \n  href=\"pygeodesy.azimuthal.Azimuthal7Tuple-class.html\" \n  class=\"link\">Azimuthal7Tuple</a> and functions <a \n  href=\"pygeodesy.azimuthal-module.html#equidistant\" \n  class=\"link\">equidistant</a> and <a \n  href=\"pygeodesy.azimuthal-module.html#gnomonic\" \n  class=\"link\">gnomonic</a>.</p>\n  <p><a href=\"pygeodesy.azimuthal.EquidistantExact-class.html\" \n  class=\"link\">EquidistantExact</a> and <a \n  href=\"pygeodesy.azimuthal.GnomonicExact-class.html\" \n  class=\"link\">GnomonicExact</a> are based on exact geodesic classes <a \n  href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html\" \n  class=\"link\">GeodesicExact</a> and <a \n  href=\"pygeodesy.geodesicx.gx.GeodesicLineExact-class.html\" \n  class=\"link\">GeodesicLineExact</a>, Python versions of <i>Charles \n  Karney</i>'s C++ original <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1GeodesicExact.html\"\n  target=\"_top\">GeodesicExact</a>, respectively <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1GeodesicLineExact.html\"\n  target=\"_top\">GeodesicLineExact</a>.</p>\n  <p>Using <a href=\"pygeodesy.azimuthal.EquidistantGeodSolve-class.html\" \n  class=\"link\">EquidistantGeodSolve</a> requires <i>Karney</i>'s utility <a\n  href=\"https://GeographicLib.SourceForge.io/C++/doc/GeodSolve.1.html\" \n  target=\"_top\">GeodSolve</a> to be executable and set in env variable \n  <code>PYGEODESY_GEODSOLVE</code>, see module <a \n  href=\"pygeodesy.geodsolve-module.html\" class=\"link\">geodsolve</a> for \n  more details.</p>\n  <p><a href=\"pygeodesy.azimuthal.EquidistantKarney-class.html\" \n  class=\"link\">EquidistantKarney</a> and <a \n  href=\"pygeodesy.azimuthal.GnomonicKarney-class.html\" \n  class=\"link\">GnomonicKarney</a> require <i>Karney</i>'s Python package <a\n  href=\"https://PyPI.org/project/geographiclib\" \n  target=\"_top\">geographiclib</a> to be installed.</p>\n  <p>Other azimuthal classes implement only (***) <a \n  href=\"https://Pubs.USGS.gov/pp/1395/report.pdf\" target=\"_top\">Snyder's \n  FORMULAS FOR THE SPHERE</a> and use those for any datum, spherical and \n  ellipsoidal.  The radius used for the latter is the ellipsoid's <i>mean \n  radius of curvature</i> at the latitude of the projection center point.  \n  For further justification, see the first paragraph under <a \n  href=\"https://Pubs.USGS.gov/pp/1395/report.pdf\" target=\"_top\">Snyder's \n  FORMULAS FOR THE ELLIPSOID, page 197</a>.</p>\n  <p>Page numbers in <code>Snyder</code> references apply to <a \n  href=\"https://Pubs.USGS.gov/pp/1395/report.pdf\" target=\"_top\">John P. \n  Snyder, &quot;Map Projections -- A Working Manual&quot;, 1987</a>.</p>\n  <p>See also <a \n  href=\"https://WikiPedia.org/wiki/Azimuthal_equidistant_projection\" \n  target=\"_top\">here</a>, especially the <a \n  href=\"https://WikiPedia.org/wiki/Azimuthal_equidistant_projection#/media/File:Comparison_azimuthal_projections.svg\"\n  target=\"_top\">Comparison of the Azimuthal equidistant projection and some\n  azimuthal projections centred on 90&#176; N at the same scale, ordered by \n  projection altitude in Earth radii</a>.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Version:</strong>\n        25.11.29\n      </p>\n</div><!-- ==================== CLASSES ==================== -->\n<a name=\"section-Classes\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Classes</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html\" class=\"summary-name\">_AzimuthalBase</a><br />\n      (INTERNAL) Base class for azimuthal projections.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.azimuthal.AzimuthalError-class.html\" class=\"summary-name\">AzimuthalError</a><br />\n      An azimuthal <a href=\"pygeodesy.azimuthal.Equidistant-class.html\" \n        class=\"link\">Equidistant</a>, <a \n        href=\"pygeodesy.azimuthal.EquidistantKarney-class.html\" \n        class=\"link\">EquidistantKarney</a>, <a \n        href=\"pygeodesy.azimuthal.Gnomonic-class.html\" \n        class=\"link\">Gnomonic</a>, <a \n        href=\"pygeodesy.azimuthal.LambertEqualArea-class.html\" \n        class=\"link\">LambertEqualArea</a>, <a \n        href=\"pygeodesy.azimuthal.Orthographic-class.html\" \n        class=\"link\">Orthographic</a>, <a \n        href=\"pygeodesy.azimuthal.Stereographic-class.html\" \n        class=\"link\">Stereographic</a> or <a \n        href=\"pygeodesy.azimuthal.Azimuthal7Tuple-class.html\" \n        class=\"link\">Azimuthal7Tuple</a> issue.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.azimuthal.Azimuthal7Tuple-class.html\" class=\"summary-name\">Azimuthal7Tuple</a><br />\n      7-Tuple <code>(x, y, lat, lon, azimuth, scale, datum)</code>, in \n        <code>meter</code>, <code>meter</code>, <code>degrees90</code>, \n        <code>degrees180</code>, compass <code>degrees</code>, \n        <code>scalar</code> and <code>Datum</code> where <code>(x, \n        y)</code> is the easting and northing of a projected point, \n        <code>(lat, lon)</code> the geodetic location, <code>azimuth</code>\n        the azimuth, clockwise from true North and <code>scale</code> is \n        the projection scale, either <code>1 / reciprocal</code> or \n        <code>1</code> or <code>-1</code> in the <a \n        href=\"pygeodesy.azimuthal.Equidistant-class.html\" \n        class=\"link\">Equidistant</a> case.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.azimuthal.Equidistant-class.html\" class=\"summary-name\">Equidistant</a><br />\n      Azimuthal equidistant projection for the sphere***, see <a \n        href=\"https://Pubs.USGS.gov/pp/1395/report.pdf\" \n        target=\"_top\">Snyder, pp 195-197</a> and <a \n        href=\"https://MathWorld.Wolfram.com/AzimuthalEquidistantProjection.html\"\n        target=\"_top\">MathWorld-Wolfram</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.azimuthal._AzimuthalGeodesic-class.html\" class=\"summary-name\">_AzimuthalGeodesic</a><br />\n      (INTERNAL) Base class for azimuthal projections using the \n        <i>wrapped</i> <a \n        href=\"https://GeographicLib.SourceForge.io/Python/doc/code.html\" \n        target=\"_top\">geodesic.Geodesic and geodesicline.GeodesicLine</a> \n        or the <i>exact</i> geodesic classes <a \n        href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html\" \n        class=\"link\">GeodesicExact</a> and <a \n        href=\"pygeodesy.geodesicx.gx.GeodesicLineExact-class.html\" \n        class=\"link\">GeodesicLineExact</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.azimuthal._EquidistantBase-class.html\" class=\"summary-name\">_EquidistantBase</a><br />\n      (INTERNAL) Base for classes <a \n        href=\"pygeodesy.azimuthal.EquidistantExact-class.html\" \n        class=\"link\">EquidistantExact</a>, <a \n        href=\"pygeodesy.azimuthal.EquidistantGeodSolve-class.html\" \n        class=\"link\">EquidistantGeodSolve</a> and <a \n        href=\"pygeodesy.azimuthal.EquidistantKarney-class.html\" \n        class=\"link\">EquidistantKarney</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.azimuthal.EquidistantExact-class.html\" class=\"summary-name\">EquidistantExact</a><br />\n      Azimuthal equidistant projection, a Python version of \n        <i>Karney</i>'s C++ class <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1AzimuthalEquidistant.html\"\n        target=\"_top\">AzimuthalEquidistant</a>, based on exact geodesic \n        classes <a href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html\" \n        class=\"link\">GeodesicExact</a> and <a \n        href=\"pygeodesy.geodesicx.gx.GeodesicLineExact-class.html\" \n        class=\"link\">GeodesicLineExact</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.azimuthal.EquidistantGeodSolve-class.html\" class=\"summary-name\">EquidistantGeodSolve</a><br />\n      Azimuthal equidistant projection, a Python version of \n        <i>Karney</i>'s C++ class <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1AzimuthalEquidistant.html\"\n        target=\"_top\">AzimuthalEquidistant</a>, based on (exact) geodesic \n        <i>wrappers</i> <a \n        href=\"pygeodesy.geodsolve.GeodesicSolve-class.html\" \n        class=\"link\">GeodesicSolve</a> and <a \n        href=\"pygeodesy.geodsolve.GeodesicLineSolve-class.html\" \n        class=\"link\">GeodesicLineSolve</a> and intended <i>for testing \n        purposes only</i>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.azimuthal.EquidistantKarney-class.html\" class=\"summary-name\">EquidistantKarney</a><br />\n      Azimuthal equidistant projection, a Python version of \n        <i>Karney</i>'s C++ class <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1AzimuthalEquidistant.html\"\n        target=\"_top\">AzimuthalEquidistant</a>, requiring package <a \n        href=\"https://PyPI.org/project/geographiclib\" \n        target=\"_top\">geographiclib</a> to be installed.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.azimuthal.Gnomonic-class.html\" class=\"summary-name\">Gnomonic</a><br />\n      Azimuthal gnomonic projection for the sphere***, see <a \n        href=\"https://Pubs.USGS.gov/pp/1395/report.pdf\" \n        target=\"_top\">Snyder, pp 164-168</a> and <a \n        href=\"https://MathWorld.Wolfram.com/GnomonicProjection.html\" \n        target=\"_top\">MathWorld-Wolfram</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.azimuthal._GnomonicBase-class.html\" class=\"summary-name\">_GnomonicBase</a><br />\n      (INTERNAL) Base for classes <a \n        href=\"pygeodesy.azimuthal.GnomonicExact-class.html\" \n        class=\"link\">GnomonicExact</a>, <a \n        href=\"pygeodesy.azimuthal.GnomonicGeodSolve-class.html\" \n        class=\"link\">GnomonicGeodSolve</a> and <a \n        href=\"pygeodesy.azimuthal.GnomonicKarney-class.html\" \n        class=\"link\">GnomonicKarney</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.azimuthal.GnomonicExact-class.html\" class=\"summary-name\">GnomonicExact</a><br />\n      Azimuthal gnomonic projection, a Python version of <i>Karney</i>'s \n        C++ class <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Gnomonic.html\"\n        target=\"_top\">Gnomonic</a>, based on exact geodesic classes <a \n        href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html\" \n        class=\"link\">GeodesicExact</a> and <a \n        href=\"pygeodesy.geodesicx.gx.GeodesicLineExact-class.html\" \n        class=\"link\">GeodesicLineExact</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.azimuthal.GnomonicGeodSolve-class.html\" class=\"summary-name\">GnomonicGeodSolve</a><br />\n      Azimuthal gnomonic projection, a Python version of <i>Karney</i>'s \n        C++ class <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Gnomonic.html\"\n        target=\"_top\">Gnomonic</a>, based on (exact) geodesic \n        <i>wrappers</i> <a \n        href=\"pygeodesy.geodsolve.GeodesicSolve-class.html\" \n        class=\"link\">GeodesicSolve</a> and <a \n        href=\"pygeodesy.geodsolve.GeodesicLineSolve-class.html\" \n        class=\"link\">GeodesicLineSolve</a> and intended <i>for testing \n        purposes only</i>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.azimuthal.GnomonicKarney-class.html\" class=\"summary-name\">GnomonicKarney</a><br />\n      Azimuthal gnomonic projection, a Python version of <i>Karney</i>'s \n        C++ class <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Gnomonic.html\"\n        target=\"_top\">Gnomonic</a>, requiring package <a \n        href=\"https://PyPI.org/project/geographiclib\" \n        target=\"_top\">geographiclib</a> to be installed.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.azimuthal.LambertEqualArea-class.html\" class=\"summary-name\">LambertEqualArea</a><br />\n      Lambert-equal-area projection for the sphere*** (aka <a \n        href=\"https://WikiPedia.org/wiki/Lambert_azimuthal_equal-area_projection\"\n        target=\"_top\">Lambert zenithal equal-area projection</a>, see <a \n        href=\"https://Pubs.USGS.gov/pp/1395/report.pdf\" \n        target=\"_top\">Snyder, pp 185-187</a> and <a \n        href=\"https://MathWorld.Wolfram.com/LambertAzimuthalEqual-AreaProjection.html\"\n        target=\"_top\">MathWorld-Wolfram</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.azimuthal.Orthographic-class.html\" class=\"summary-name\">Orthographic</a><br />\n      Orthographic projection for the sphere***, see <a \n        href=\"https://Pubs.USGS.gov/pp/1395/report.pdf\" \n        target=\"_top\">Snyder, pp 148-153</a> and <a \n        href=\"https://MathWorld.Wolfram.com/OrthographicProjection.html\" \n        target=\"_top\">MathWorld-Wolfram</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.azimuthal.Stereographic-class.html\" class=\"summary-name\">Stereographic</a><br />\n      Stereographic projection for the sphere***, see <a \n        href=\"https://Pubs.USGS.gov/pp/1395/report.pdf\" \n        target=\"_top\">Snyder, pp 157-160</a> and <a \n        href=\"https://MathWorld.Wolfram.com/StereographicProjection.html\" \n        target=\"_top\">MathWorld-Wolfram</a>.\n    </td>\n  </tr>\n</table>\n<!-- ==================== FUNCTIONS ==================== -->\n<a name=\"section-Functions\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Functions</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.azimuthal-module.html#equidistant\" class=\"summary-sig-name\">equidistant</a>(<span class=\"summary-sig-arg\">lat0</span>,\n        <span class=\"summary-sig-arg\">lon0</span>,\n        <span class=\"summary-sig-arg\">datum</span>=<span class=\"summary-sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"summary-sig-arg\">exact</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">geodsolve</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Return an <a href=\"pygeodesy.azimuthal.EquidistantExact-class.html\" \n      class=\"link\">EquidistantExact</a>, <a \n      href=\"pygeodesy.azimuthal.EquidistantGeodSolve-class.html\" \n      class=\"link\">EquidistantGeodSolve</a> or (if <i>Karney</i>'s <a \n      href=\"https://PyPI.org/project/geographiclib\" \n      target=\"_top\">geographiclib</a> package is installed) an <a \n      href=\"pygeodesy.azimuthal.EquidistantKarney-class.html\" \n      class=\"link\">EquidistantKarney</a>, otherwise an <a \n      href=\"pygeodesy.azimuthal.Equidistant-class.html\" \n      class=\"link\">Equidistant</a> instance.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.azimuthal-module.html#gnomonic\" class=\"summary-sig-name\">gnomonic</a>(<span class=\"summary-sig-arg\">lat0</span>,\n        <span class=\"summary-sig-arg\">lon0</span>,\n        <span class=\"summary-sig-arg\">datum</span>=<span class=\"summary-sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"summary-sig-arg\">exact</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">geodsolve</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Return a <a href=\"pygeodesy.azimuthal.GnomonicExact-class.html\" \n      class=\"link\">GnomonicExact</a> or (if <i>Karney</i>'s <a \n      href=\"https://PyPI.org/project/geographiclib\" \n      target=\"_top\">geographiclib</a> package is installed) a <a \n      href=\"pygeodesy.azimuthal.GnomonicKarney-class.html\" \n      class=\"link\">GnomonicKarney</a>, otherwise a <a \n      href=\"pygeodesy.azimuthal.Gnomonic-class.html\" \n      class=\"link\">Gnomonic</a> instance.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== VARIABLES ==================== -->\n<a name=\"section-Variables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Variables</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"__all__\"></a><span class=\"summary-name\">__all__</span> = <code title=\"_ALL_LAZY.azimuthal\">_ALL_LAZY.azimuthal</code>\n    </td>\n  </tr>\n</table>\n<!-- ==================== FUNCTION DETAILS ==================== -->\n<a name=\"section-FunctionDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Function Details</span></td>\n</tr>\n</table>\n<a name=\"equidistant\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">equidistant</span>&nbsp;(<span class=\"sig-arg\">lat0</span>,\n        <span class=\"sig-arg\">lon0</span>,\n        <span class=\"sig-arg\">datum</span>=<span class=\"sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"sig-arg\">exact</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">geodsolve</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return an <a href=\"pygeodesy.azimuthal.EquidistantExact-class.html\" \n  class=\"link\">EquidistantExact</a>, <a \n  href=\"pygeodesy.azimuthal.EquidistantGeodSolve-class.html\" \n  class=\"link\">EquidistantGeodSolve</a> or (if <i>Karney</i>'s <a \n  href=\"https://PyPI.org/project/geographiclib\" \n  target=\"_top\">geographiclib</a> package is installed) an <a \n  href=\"pygeodesy.azimuthal.EquidistantKarney-class.html\" \n  class=\"link\">EquidistantKarney</a>, otherwise an <a \n  href=\"pygeodesy.azimuthal.Equidistant-class.html\" \n  class=\"link\">Equidistant</a> instance.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat0</code></strong> - Latitude of center point (<code>degrees90</code>).</li>\n        <li><strong class=\"pname\"><code>lon0</code></strong> - Longitude of center point (<code>degrees180</code>).</li>\n        <li><strong class=\"pname\"><code>datum</code></strong> - Optional datum or ellipsoid (<a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>, \n          <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a> or <a \n          href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>) or <i>scalar</i> earth radius \n          (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>exact</code></strong> - Return an <a \n          href=\"pygeodesy.azimuthal.EquidistantExact-class.html\" \n          class=\"link\">EquidistantExact</a> instance.</li>\n        <li><strong class=\"pname\"><code>geodsolve</code></strong> - Return an <a \n          href=\"pygeodesy.azimuthal.EquidistantGeodSolve-class.html\" \n          class=\"link\">EquidistantGeodSolve</a> instance.</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> for the projection \n          (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>An <a href=\"pygeodesy.azimuthal.EquidistantExact-class.html\" \n          class=\"link\">EquidistantExact</a>, <a \n          href=\"pygeodesy.azimuthal.EquidistantGeodSolve-class.html\" \n          class=\"link\">EquidistantGeodSolve</a>, <a \n          href=\"pygeodesy.azimuthal.EquidistantKarney-class.html\" \n          class=\"link\">EquidistantKarney</a> or <a \n          href=\"pygeodesy.azimuthal.Equidistant-class.html\" \n          class=\"link\">Equidistant</a> instance.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.azimuthal.AzimuthalError-class.html\">AzimuthalError</a></strong></code> - Invalid <b><code>lat0</code></b> or <b><code>lon0</code></b> or \n        (spherical) <b><code>datum</code></b>.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.GeodesicError-class.html\">GeodesicError</a></strong></code> - Issue with <a \n        href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html\" \n        class=\"link\">GeodesicExact</a>, <a \n        href=\"pygeodesy.geodsolve.GeodesicSolve-class.html\" \n        class=\"link\">GeodesicSolve</a> or <i>Karney</i>'s wrapped \n        <code>Geodesic</code>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>datum</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"gnomonic\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">gnomonic</span>&nbsp;(<span class=\"sig-arg\">lat0</span>,\n        <span class=\"sig-arg\">lon0</span>,\n        <span class=\"sig-arg\">datum</span>=<span class=\"sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"sig-arg\">exact</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">geodsolve</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return a <a href=\"pygeodesy.azimuthal.GnomonicExact-class.html\" \n  class=\"link\">GnomonicExact</a> or (if <i>Karney</i>'s <a \n  href=\"https://PyPI.org/project/geographiclib\" \n  target=\"_top\">geographiclib</a> package is installed) a <a \n  href=\"pygeodesy.azimuthal.GnomonicKarney-class.html\" \n  class=\"link\">GnomonicKarney</a>, otherwise a <a \n  href=\"pygeodesy.azimuthal.Gnomonic-class.html\" class=\"link\">Gnomonic</a> \n  instance.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat0</code></strong> - Latitude of center point (<code>degrees90</code>).</li>\n        <li><strong class=\"pname\"><code>lon0</code></strong> - Longitude of center point (<code>degrees180</code>).</li>\n        <li><strong class=\"pname\"><code>datum</code></strong> - Optional datum or ellipsoid (<a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>, \n          <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a> or <a \n          href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>) or <i>scalar</i> earth radius \n          (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>exact</code></strong> - Return a <a href=\"pygeodesy.azimuthal.GnomonicExact-class.html\" \n          class=\"link\">GnomonicExact</a> instance.</li>\n        <li><strong class=\"pname\"><code>geodsolve</code></strong> - Return a <a \n          href=\"pygeodesy.azimuthal.GnomonicGeodSolve-class.html\" \n          class=\"link\">GnomonicGeodSolve</a> instance.</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> for the projection \n          (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.azimuthal.GnomonicExact-class.html\" \n          class=\"link\">GnomonicExact</a>, <a \n          href=\"pygeodesy.azimuthal.GnomonicGeodSolve-class.html\" \n          class=\"link\">GnomonicGeodSolve</a>, <a \n          href=\"pygeodesy.azimuthal.GnomonicKarney-class.html\" \n          class=\"link\">GnomonicKarney</a> or <a \n          href=\"pygeodesy.azimuthal.Gnomonic-class.html\" \n          class=\"link\">Gnomonic</a> instance.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.azimuthal.AzimuthalError-class.html\">AzimuthalError</a></strong></code> - Invalid <b><code>lat0</code></b> or <b><code>lon0</code></b> or \n        (spherical) <b><code>datum</code></b>.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.GeodesicError-class.html\">GeodesicError</a></strong></code> - Issue with <a \n        href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html\" \n        class=\"link\">GeodesicExact</a>, <a \n        href=\"pygeodesy.geodsolve.GeodesicSolve-class.html\" \n        class=\"link\">GeodesicSolve</a> or <i>Karney</i>'s wrapped \n        <code>Geodesic</code>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>datum</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.azimuthal.Azimuthal7Tuple-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.azimuthal.Azimuthal7Tuple</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.azimuthal-module.html\">Module&nbsp;azimuthal</a> ::\n        Class&nbsp;Azimuthal7Tuple\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.azimuthal.Azimuthal7Tuple-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Azimuthal7Tuple</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n   object --+        \n            |        \n        tuple --+    \n                |    \n   object --+   |    \n            |   |    \n <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n                |    \n<a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a> --+\n                    |\n                   <strong class=\"uidshort\">Azimuthal7Tuple</strong>\n</pre>\n\n<hr />\n<p>7-Tuple <code>(x, y, lat, lon, azimuth, scale, datum)</code>, in \n  <code>meter</code>, <code>meter</code>, <code>degrees90</code>, \n  <code>degrees180</code>, compass <code>degrees</code>, \n  <code>scalar</code> and <code>Datum</code> where <code>(x, y)</code> is \n  the easting and northing of a projected point, <code>(lat, lon)</code> \n  the geodetic location, <code>azimuth</code> the azimuth, clockwise from \n  true North and <code>scale</code> is the projection scale, either <code>1\n  / reciprocal</code> or <code>1</code> or <code>-1</code> in the <a \n  href=\"pygeodesy.azimuthal.Equidistant-class.html\" \n  class=\"link\">Equidistant</a> case.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.azimuthal.Azimuthal7Tuple-class.html#antipodal\" class=\"summary-sig-name\">antipodal</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">azimuth</span>=<span class=\"summary-sig-default\">None</span>)</span><br />\n      Return this tuple with the antipodal <code>lat</code> and \n      <code>lon</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__delattr__\">__delattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__getattr__\">__getattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__setattr__\">__setattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#items\">items</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iteritems\">iteritems</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iterunits\">iterunits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#reUnit\">reUnit</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toUnits\">toUnits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>tuple</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__eq__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__iter__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__rmul__</code>,\n      <code>count</code>,\n      <code>index</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__new__\">__new__</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"antipodal\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">antipodal</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">azimuth</span>=<span class=\"sig-default\">None</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return this tuple with the antipodal <code>lat</code> and \n  <code>lon</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>azimuth</code></strong> - Optional azimuth, overriding the current azimuth (<code>compass \n          degrees360</code>).</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.azimuthal.AzimuthalError-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.azimuthal.AzimuthalError</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.azimuthal-module.html\">Module&nbsp;azimuthal</a> ::\n        Class&nbsp;AzimuthalError\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.azimuthal.AzimuthalError-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class AzimuthalError</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n              object --+                    \n                       |                    \nexceptions.BaseException --+                \n                           |                \n        exceptions.Exception --+            \n                               |            \n        exceptions.StandardError --+        \n                                   |        \n               exceptions.ValueError --+    \n                                       |    \n                      errors._ValueError --+\n                                           |\n                                          <strong class=\"uidshort\">AzimuthalError</strong>\n</pre>\n\n<hr />\n<p>An azimuthal <a href=\"pygeodesy.azimuthal.Equidistant-class.html\" \n  class=\"link\">Equidistant</a>, <a \n  href=\"pygeodesy.azimuthal.EquidistantKarney-class.html\" \n  class=\"link\">EquidistantKarney</a>, <a \n  href=\"pygeodesy.azimuthal.Gnomonic-class.html\" class=\"link\">Gnomonic</a>,\n  <a href=\"pygeodesy.azimuthal.LambertEqualArea-class.html\" \n  class=\"link\">LambertEqualArea</a>, <a \n  href=\"pygeodesy.azimuthal.Orthographic-class.html\" \n  class=\"link\">Orthographic</a>, <a \n  href=\"pygeodesy.azimuthal.Stereographic-class.html\" \n  class=\"link\">Stereographic</a> or <a \n  href=\"pygeodesy.azimuthal.Azimuthal7Tuple-class.html\" \n  class=\"link\">Azimuthal7Tuple</a> issue.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>errors._ValueError</code></b>:\n      <code>__init__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.ValueError</code></b>:\n      <code>__new__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.BaseException</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getslice__</code>,\n      <code>__reduce__</code>,\n      <code>__repr__</code>,\n      <code>__setattr__</code>,\n      <code>__setstate__</code>,\n      <code>__str__</code>,\n      <code>__unicode__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__format__</code>,\n      <code>__hash__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.BaseException</code></b>:\n      <code>args</code>,\n      <code>message</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.azimuthal.Equidistant-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.azimuthal.Equidistant</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.azimuthal-module.html\">Module&nbsp;azimuthal</a> ::\n        Class&nbsp;Equidistant\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.azimuthal.Equidistant-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Equidistant</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+            \n           |            \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+        \n               |        \n<a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+    \n                   |    \n      <a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html\">_AzimuthalBase</a> --+\n                       |\n                      <strong class=\"uidshort\">Equidistant</strong>\n</pre>\n\n<hr />\n<p>Azimuthal equidistant projection for the sphere***, see <a \n  href=\"https://Pubs.USGS.gov/pp/1395/report.pdf\" target=\"_top\">Snyder, pp \n  195-197</a> and <a \n  href=\"https://MathWorld.Wolfram.com/AzimuthalEquidistantProjection.html\" \n  target=\"_top\">MathWorld-Wolfram</a>.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Note:</strong>\n        Results from this <a \n        href=\"pygeodesy.azimuthal.Equidistant-class.html\" \n        class=\"link\">Equidistant</a> and an <a \n        href=\"pygeodesy.azimuthal.EquidistantExact-class.html\" \n        class=\"link\">EquidistantExact</a>, <a \n        href=\"pygeodesy.azimuthal.EquidistantGeodSolve-class.html\" \n        class=\"link\">EquidistantGeodSolve</a> or <a \n        href=\"pygeodesy.azimuthal.EquidistantKarney-class.html\" \n        class=\"link\">EquidistantKarney</a> projection <code>may \n        differ</code> by 10% or more.  For an example, see method \n        <code>testDiscrepancies</code> in module \n        <code>testAzimuthal.py</code>.\n      </p>\n</div><!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.azimuthal.Equidistant-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lat0</span>,\n        <span class=\"summary-sig-arg\">lon0</span>,\n        <span class=\"summary-sig-arg\">datum</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      New azimuthal projection.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.azimuthal.Equidistant-class.html#forward\" class=\"summary-sig-name\">forward</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lat</span>,\n        <span class=\"summary-sig-arg\">lon</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Convert a geodetic location to azimuthal equidistant east- and \n      northing.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.azimuthal.Equidistant-class.html#reverse\" class=\"summary-sig-name\">reverse</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">x</span>,\n        <span class=\"summary-sig-arg\">y</span>,\n        <span class=\"summary-sig-arg\">**name_LatLon_and_kwds</span>)</span><br />\n      Convert an azimuthal equidistant location to geodetic lat- and \n      longitude.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html\">_AzimuthalBase</a></code></b>:\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#reset\">reset</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#toStr\">toStr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#others\">others</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html\">_AzimuthalBase</a></code></b>:\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#a\">a</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#datum\">datum</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#equatoradius\">equatoradius</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#f\">f</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#flattening\">flattening</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#lat0\">lat0</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#latlon0\">latlon0</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#lon0\">lon0</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#majoradius\">majoradius</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#radius\">radius</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lat0</span>,\n        <span class=\"sig-arg\">lon0</span>,\n        <span class=\"sig-arg\">datum</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New azimuthal projection.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat0</code></strong> - Latitude of the center point (<code>degrees90</code>).</li>\n        <li><strong class=\"pname\"><code>lon0</code></strong> - Longitude of the center point (<code>degrees180</code>).</li>\n        <li><strong class=\"pname\"><code>datum</code></strong> - Optional datum or ellipsoid (<a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>, \n          <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a> or <a \n          href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>) or <i>scalar</i> earth radius \n          (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> for the projection \n          (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.azimuthal.AzimuthalError-class.html\">AzimuthalError</a></strong></code> - Invalid <b><code>lat0</code></b> or <b><code>lon0</code></b> or \n        (spherical) <b><code>datum</code></b>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>datum</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"forward\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">forward</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lat</span>,\n        <span class=\"sig-arg\">lon</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert a geodetic location to azimuthal equidistant east- and \n  northing.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat</code></strong> - Latitude of the location (<code>degrees90</code>).</li>\n        <li><strong class=\"pname\"><code>lon</code></strong> - Longitude of the location (<code>degrees180</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> for the location \n          (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>An <a href=\"pygeodesy.azimuthal.Azimuthal7Tuple-class.html\" \n          class=\"link\">Azimuthal7Tuple</a><code>(x, y, lat, lon, azimuth, \n          scale, datum)</code> with easting <code>x</code> and northing \n          <code>y</code> of point in <code>meter</code> and \n          <code>lat</code> and <code>lon</code> in <code>degrees</code> and\n          <code>azimuth</code> clockwise from true North. The \n          <code>scale</code> of the projection is <code>1</code> in \n          <i>radial</i> direction and is <code>1 / reciprocal</code> in the\n          direction perpendicular to this.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.azimuthal.AzimuthalError-class.html\">AzimuthalError</a></strong></code> - Invalid <b><code>lat</code></b> or <b><code>lon</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#forward\">_AzimuthalBase.forward</a>\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        The <code>scale</code> will be <code>-1</code> if <b><code>(lat, \n        lon)</code></b> is antipodal to the projection center <code>(lat0, \n        lon0)</code>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"reverse\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">reverse</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">x</span>,\n        <span class=\"sig-arg\">y</span>,\n        <span class=\"sig-arg\">**name_LatLon_and_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert an azimuthal equidistant location to geodetic lat- and \n  longitude.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>x</code></strong> - Easting of the location (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>y</code></strong> - Northing of the location (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>name_LatLon_and_kwds</code></strong> - Optional <code><b>name</b>=NN</code> and class \n          <code><b>LatLon</b>=None</code> to use and optionally, additional\n          <b><code>LatLon</code></b> keyword arguments, ignored if \n          <code><b>LatLon</b> is None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The geodetic (<code>LatLon</code>) or if <code><b>LatLon</b> is \n          None</code> an <a \n          href=\"pygeodesy.azimuthal.Azimuthal7Tuple-class.html\" \n          class=\"link\">Azimuthal7Tuple</a><code>(x, y, lat, lon, azimuth, \n          scale, datum)</code>.</dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#reverse\">_AzimuthalBase.reverse</a>\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        The <code>lat</code> will be in the range <code>[-90..90] \n        degrees</code> and <code>lon</code> in the range <code>[-180..180] \n        degrees</code>.  The <code>scale</code> of the projection is \n        <code>1</code> in <i>radial</i> direction, <code>azimuth</code> \n        clockwise from true North and is <code>1 / reciprocal</code> in the\n        direction perpendicular to this.\n      </p>\n</div></td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.azimuthal.EquidistantExact-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.azimuthal.EquidistantExact</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.azimuthal-module.html\">Module&nbsp;azimuthal</a> ::\n        Class&nbsp;EquidistantExact\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.azimuthal.EquidistantExact-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class EquidistantExact</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+                    \n           |                    \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+                \n               |                \n<a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+            \n                   |            \n      <a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html\">_AzimuthalBase</a> --+        \n                       |        \n      <a href=\"pygeodesy.azimuthal._AzimuthalGeodesic-class.html\">_AzimuthalGeodesic</a> --+    \n                           |    \n            <a href=\"pygeodesy.azimuthal._EquidistantBase-class.html\">_EquidistantBase</a> --+\n                               |\n                              <strong class=\"uidshort\">EquidistantExact</strong>\n</pre>\n\n<hr />\n<p>Azimuthal equidistant projection, a Python version of <i>Karney</i>'s \n  C++ class <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1AzimuthalEquidistant.html\"\n  target=\"_top\">AzimuthalEquidistant</a>, based on exact geodesic classes \n  <a href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html\" \n  class=\"link\">GeodesicExact</a> and <a \n  href=\"pygeodesy.geodesicx.gx.GeodesicLineExact-class.html\" \n  class=\"link\">GeodesicLineExact</a>.</p>\n  <p>An azimuthal equidistant projection is centered at an arbitrary \n  position on the ellipsoid. For a point in projected space <code>(x, \n  y)</code>, the geodesic distance from the center position is \n  <code>hypot(x, y)</code> and the <code>azimuth</code> of the geodesic \n  from the center point is <code>atan2(x, y)</code>, clockwise from true \n  North.</p>\n  <p>The <code>.forward</code> and <code>.reverse</code> methods also \n  return the <code>azimuth</code> of the geodesic at <code>(x, y)</code> \n  and the <code>scale</code> in the azimuthal direction which, together \n  with the basic properties of the projection, serve to specify completely \n  the local affine transformation between geographic and projected \n  coordinates.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.azimuthal.EquidistantExact-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lat0</span>,\n        <span class=\"summary-sig-arg\">lon0</span>,\n        <span class=\"summary-sig-arg\">datum</span>=<span class=\"summary-sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      New azimuthal <a \n      href=\"pygeodesy.azimuthal.EquidistantExact-class.html\" \n      class=\"link\">EquidistantExact</a> projection.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.azimuthal.EquidistantExact-class.html#forward\" class=\"summary-sig-name\">forward</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lat</span>,\n        <span class=\"summary-sig-arg\">lon</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Convert an (ellipsoidal) geodetic location to azimuthal equidistant \n      east- and northing.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.azimuthal.EquidistantExact-class.html#reverse\" class=\"summary-sig-name\">reverse</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">x</span>,\n        <span class=\"summary-sig-arg\">y</span>,\n        <span class=\"summary-sig-arg\">LatLon</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**name_LatLon_kwds</span>)</span><br />\n      Convert an azimuthal equidistant location to (ellipsoidal) geodetic \n      lat- and longitude.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html\">_AzimuthalBase</a></code></b>:\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#reset\">reset</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#toStr\">toStr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#others\">others</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.azimuthal.EquidistantExact-class.html#geodesic\" class=\"summary-name\">geodesic</a><br />\n      Get this projection's exact geodesic (<a \n      href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html\" \n      class=\"link\">GeodesicExact</a>).\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html\">_AzimuthalBase</a></code></b>:\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#a\">a</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#datum\">datum</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#equatoradius\">equatoradius</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#f\">f</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#flattening\">flattening</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#lat0\">lat0</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#latlon0\">latlon0</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#lon0\">lon0</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#majoradius\">majoradius</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#radius\">radius</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lat0</span>,\n        <span class=\"sig-arg\">lon0</span>,\n        <span class=\"sig-arg\">datum</span>=<span class=\"sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New azimuthal <a \n  href=\"pygeodesy.azimuthal.EquidistantExact-class.html\" \n  class=\"link\">EquidistantExact</a> projection.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat0</code></strong> - Latitude of center point (<code>degrees90</code>).</li>\n        <li><strong class=\"pname\"><code>lon0</code></strong> - Longitude of center point (<code>degrees180</code>).</li>\n        <li><strong class=\"pname\"><code>datum</code></strong> - Optional datum or ellipsoid (<a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>, \n          <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a> or <a \n          href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>) or <i>scalar</i> earth radius \n          (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> for the projection \n          (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.azimuthal.AzimuthalError-class.html\">AzimuthalError</a></strong></code> - Invalid <b><code>lat0</code></b> or <b><code>lon0</code></b> or \n        <b><code>datum</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"forward\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">forward</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lat</span>,\n        <span class=\"sig-arg\">lon</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert an (ellipsoidal) geodetic location to azimuthal equidistant \n  east- and northing.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat</code></strong> - Latitude of the location (<code>degrees90</code>).</li>\n        <li><strong class=\"pname\"><code>lon</code></strong> - Longitude of the location (<code>degrees180</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> for the location \n          (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>An <a href=\"pygeodesy.azimuthal.Azimuthal7Tuple-class.html\" \n          class=\"link\">Azimuthal7Tuple</a><code>(x, y, lat, lon, azimuth, \n          scale, datum)</code> with easting <code>x</code> and northing \n          <code>y</code> of point in <code>meter</code> and \n          <code>lat</code> and <code>lon</code> in <code>degrees</code> and\n          <code>azimuth</code> clockwise from true North. The \n          <code>scale</code> of the projection is <code>1</code> in \n          <i>radial</i> direction and is <code>1 / reciprocal</code> in the\n          direction perpendicular to this.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.azimuthal.AzimuthalError-class.html\">AzimuthalError</a></strong></code> - Invalid <b><code>lat</code></b> or <b><code>lon</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#forward\">_AzimuthalBase.forward</a>\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        A call to <code>.forward</code> followed by a call to \n        <code>.reverse</code> will return the original <code>lat, \n        lon</code> to within roundoff.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"reverse\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">reverse</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">x</span>,\n        <span class=\"sig-arg\">y</span>,\n        <span class=\"sig-arg\">LatLon</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**name_LatLon_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert an azimuthal equidistant location to (ellipsoidal) geodetic \n  lat- and longitude.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>x</code></strong> - Easting of the location (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>y</code></strong> - Northing of the location (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>LatLon</code></strong> - Class to use (<code>LatLon</code>) or <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>name_LatLon_kwds</code></strong> - Optional <code><b>name</b>=NN</code> and optionally, additional \n          <b><code>LatLon</code></b> keyword arguments, ignored if \n          <code><b>LatLon</b> is None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The geodetic (<code>LatLon</code>) or if <code><b>LatLon</b> is \n          None</code> an <a \n          href=\"pygeodesy.azimuthal.Azimuthal7Tuple-class.html\" \n          class=\"link\">Azimuthal7Tuple</a><code>(x, y, lat, lon, azimuth, \n          scale, datum)</code>.</dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#reverse\">_AzimuthalBase.reverse</a>\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        The <code>lat</code> will be in the range <code>[-90..90] \n        degrees</code> and <code>lon</code> in the range <code>[-180..180] \n        degrees</code>.  The scale of the projection is <code>1</code> in \n        <i>radial</i> direction, <code>azimuth</code> clockwise from true \n        North and is <code>1 / reciprocal</code> in the direction \n        perpendicular to this.\n      </p>\n</div></td></tr></table>\n</div>\n<br />\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"geodesic\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">geodesic</h3>\n  <p>Get this projection's exact geodesic (<a \n  href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html\" \n  class=\"link\">GeodesicExact</a>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">geodesic(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get this projection's exact geodesic (<a \nhref=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html\" \nclass=\"link\">GeodesicExact</a>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.azimuthal.EquidistantGeodSolve-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.azimuthal.EquidistantGeodSolve</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.azimuthal-module.html\">Module&nbsp;azimuthal</a> ::\n        Class&nbsp;EquidistantGeodSolve\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.azimuthal.EquidistantGeodSolve-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class EquidistantGeodSolve</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+                    \n           |                    \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+                \n               |                \n<a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+            \n                   |            \n      <a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html\">_AzimuthalBase</a> --+        \n                       |        \n      <a href=\"pygeodesy.azimuthal._AzimuthalGeodesic-class.html\">_AzimuthalGeodesic</a> --+    \n                           |    \n            <a href=\"pygeodesy.azimuthal._EquidistantBase-class.html\">_EquidistantBase</a> --+\n                               |\n                              <strong class=\"uidshort\">EquidistantGeodSolve</strong>\n</pre>\n\n<hr />\n<p>Azimuthal equidistant projection, a Python version of <i>Karney</i>'s \n  C++ class <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1AzimuthalEquidistant.html\"\n  target=\"_top\">AzimuthalEquidistant</a>, based on (exact) geodesic \n  <i>wrappers</i> <a href=\"pygeodesy.geodsolve.GeodesicSolve-class.html\" \n  class=\"link\">GeodesicSolve</a> and <a \n  href=\"pygeodesy.geodsolve.GeodesicLineSolve-class.html\" \n  class=\"link\">GeodesicLineSolve</a> and intended <i>for testing purposes \n  only</i>.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"pygeodesy.azimuthal.EquidistantExact-class.html\" \n        class=\"link\">EquidistantExact</a> and module <a \n        href=\"pygeodesy.geodsolve-module.html\" class=\"link\">geodsolve</a>.\n      </p>\n</div><!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.azimuthal.EquidistantGeodSolve-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lat0</span>,\n        <span class=\"summary-sig-arg\">lon0</span>,\n        <span class=\"summary-sig-arg\">datum</span>=<span class=\"summary-sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      New azimuthal <a \n      href=\"pygeodesy.azimuthal.EquidistantGeodSolve-class.html\" \n      class=\"link\">EquidistantGeodSolve</a> projection.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.azimuthal.EquidistantGeodSolve-class.html#forward\" class=\"summary-sig-name\">forward</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lat</span>,\n        <span class=\"summary-sig-arg\">lon</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Convert an (ellipsoidal) geodetic location to azimuthal equidistant \n      east- and northing.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.azimuthal.EquidistantGeodSolve-class.html#reverse\" class=\"summary-sig-name\">reverse</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">x</span>,\n        <span class=\"summary-sig-arg\">y</span>,\n        <span class=\"summary-sig-arg\">LatLon</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**name_LatLon_kwds</span>)</span><br />\n      Convert an azimuthal equidistant location to (ellipsoidal) geodetic \n      lat- and longitude.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html\">_AzimuthalBase</a></code></b>:\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#reset\">reset</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#toStr\">toStr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#others\">others</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.azimuthal.EquidistantGeodSolve-class.html#geodesic\" class=\"summary-name\">geodesic</a><br />\n      Get this projection's (exact) geodesic (<a \n      href=\"pygeodesy.geodsolve.GeodesicSolve-class.html\" \n      class=\"link\">GeodesicSolve</a>).\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html\">_AzimuthalBase</a></code></b>:\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#a\">a</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#datum\">datum</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#equatoradius\">equatoradius</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#f\">f</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#flattening\">flattening</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#lat0\">lat0</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#latlon0\">latlon0</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#lon0\">lon0</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#majoradius\">majoradius</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#radius\">radius</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lat0</span>,\n        <span class=\"sig-arg\">lon0</span>,\n        <span class=\"sig-arg\">datum</span>=<span class=\"sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New azimuthal <a \n  href=\"pygeodesy.azimuthal.EquidistantGeodSolve-class.html\" \n  class=\"link\">EquidistantGeodSolve</a> projection.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat0</code></strong> - Latitude of center point (<code>degrees90</code>).</li>\n        <li><strong class=\"pname\"><code>lon0</code></strong> - Longitude of center point (<code>degrees180</code>).</li>\n        <li><strong class=\"pname\"><code>datum</code></strong> - Optional datum or ellipsoid (<a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>, \n          <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a> or <a \n          href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>) or <i>scalar</i> earth radius \n          (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> for the projection \n          (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.azimuthal.AzimuthalError-class.html\">AzimuthalError</a></strong></code> - Invalid <b><code>lat0</code></b> or <b><code>lon0</code></b> or \n        <b><code>datum</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"forward\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">forward</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lat</span>,\n        <span class=\"sig-arg\">lon</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert an (ellipsoidal) geodetic location to azimuthal equidistant \n  east- and northing.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat</code></strong> - Latitude of the location (<code>degrees90</code>).</li>\n        <li><strong class=\"pname\"><code>lon</code></strong> - Longitude of the location (<code>degrees180</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> for the location \n          (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>An <a href=\"pygeodesy.azimuthal.Azimuthal7Tuple-class.html\" \n          class=\"link\">Azimuthal7Tuple</a><code>(x, y, lat, lon, azimuth, \n          scale, datum)</code> with easting <code>x</code> and northing \n          <code>y</code> of point in <code>meter</code> and \n          <code>lat</code> and <code>lon</code> in <code>degrees</code> and\n          <code>azimuth</code> clockwise from true North. The \n          <code>scale</code> of the projection is <code>1</code> in \n          <i>radial</i> direction and is <code>1 / reciprocal</code> in the\n          direction perpendicular to this.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.azimuthal.AzimuthalError-class.html\">AzimuthalError</a></strong></code> - Invalid <b><code>lat</code></b> or <b><code>lon</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#forward\">_AzimuthalBase.forward</a>\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        A call to <code>.forward</code> followed by a call to \n        <code>.reverse</code> will return the original <code>lat, \n        lon</code> to within roundoff.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"reverse\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">reverse</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">x</span>,\n        <span class=\"sig-arg\">y</span>,\n        <span class=\"sig-arg\">LatLon</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**name_LatLon_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert an azimuthal equidistant location to (ellipsoidal) geodetic \n  lat- and longitude.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>x</code></strong> - Easting of the location (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>y</code></strong> - Northing of the location (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>LatLon</code></strong> - Class to use (<code>LatLon</code>) or <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>name_LatLon_kwds</code></strong> - Optional <code><b>name</b>=NN</code> and optionally, additional \n          <b><code>LatLon</code></b> keyword arguments, ignored if \n          <code><b>LatLon</b> is None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The geodetic (<code>LatLon</code>) or if <code><b>LatLon</b> is \n          None</code> an <a \n          href=\"pygeodesy.azimuthal.Azimuthal7Tuple-class.html\" \n          class=\"link\">Azimuthal7Tuple</a><code>(x, y, lat, lon, azimuth, \n          scale, datum)</code>.</dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#reverse\">_AzimuthalBase.reverse</a>\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        The <code>lat</code> will be in the range <code>[-90..90] \n        degrees</code> and <code>lon</code> in the range <code>[-180..180] \n        degrees</code>.  The scale of the projection is <code>1</code> in \n        <i>radial</i> direction, <code>azimuth</code> clockwise from true \n        North and is <code>1 / reciprocal</code> in the direction \n        perpendicular to this.\n      </p>\n</div></td></tr></table>\n</div>\n<br />\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"geodesic\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">geodesic</h3>\n  <p>Get this projection's (exact) geodesic (<a \n  href=\"pygeodesy.geodsolve.GeodesicSolve-class.html\" \n  class=\"link\">GeodesicSolve</a>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">geodesic(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get this projection's (exact) geodesic (<a \nhref=\"pygeodesy.geodsolve.GeodesicSolve-class.html\" \nclass=\"link\">GeodesicSolve</a>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.azimuthal.EquidistantKarney-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.azimuthal.EquidistantKarney</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.azimuthal-module.html\">Module&nbsp;azimuthal</a> ::\n        Class&nbsp;EquidistantKarney\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.azimuthal.EquidistantKarney-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class EquidistantKarney</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+                    \n           |                    \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+                \n               |                \n<a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+            \n                   |            \n      <a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html\">_AzimuthalBase</a> --+        \n                       |        \n      <a href=\"pygeodesy.azimuthal._AzimuthalGeodesic-class.html\">_AzimuthalGeodesic</a> --+    \n                           |    \n            <a href=\"pygeodesy.azimuthal._EquidistantBase-class.html\">_EquidistantBase</a> --+\n                               |\n                              <strong class=\"uidshort\">EquidistantKarney</strong>\n</pre>\n\n<hr />\n<p>Azimuthal equidistant projection, a Python version of <i>Karney</i>'s \n  C++ class <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1AzimuthalEquidistant.html\"\n  target=\"_top\">AzimuthalEquidistant</a>, requiring package <a \n  href=\"https://PyPI.org/project/geographiclib\" \n  target=\"_top\">geographiclib</a> to be installed.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"pygeodesy.azimuthal.EquidistantExact-class.html\" \n        class=\"link\">EquidistantExact</a>.\n      </p>\n</div><!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.azimuthal.EquidistantKarney-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lat0</span>,\n        <span class=\"summary-sig-arg\">lon0</span>,\n        <span class=\"summary-sig-arg\">datum</span>=<span class=\"summary-sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      New azimuthal <a \n      href=\"pygeodesy.azimuthal.EquidistantKarney-class.html\" \n      class=\"link\">EquidistantKarney</a> projection.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.azimuthal.EquidistantKarney-class.html#forward\" class=\"summary-sig-name\">forward</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lat</span>,\n        <span class=\"summary-sig-arg\">lon</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Convert an (ellipsoidal) geodetic location to azimuthal equidistant \n      east- and northing.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.azimuthal.EquidistantKarney-class.html#reverse\" class=\"summary-sig-name\">reverse</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">x</span>,\n        <span class=\"summary-sig-arg\">y</span>,\n        <span class=\"summary-sig-arg\">LatLon</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**name_LatLon_kwds</span>)</span><br />\n      Convert an azimuthal equidistant location to (ellipsoidal) geodetic \n      lat- and longitude.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html\">_AzimuthalBase</a></code></b>:\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#reset\">reset</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#toStr\">toStr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#others\">others</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.azimuthal.EquidistantKarney-class.html#geodesic\" class=\"summary-name\">geodesic</a><br />\n      Get this projection's <i>wrapped</i> <a \n      href=\"https://GeographicLib.SourceForge.io/Python/doc/code.html\" \n      target=\"_top\">geodesic.Geodesic</a>, provided <i>Karney</i>'s <a \n      href=\"https://PyPI.org/project/geographiclib\" \n      target=\"_top\">geographiclib</a> package is installed.\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html\">_AzimuthalBase</a></code></b>:\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#a\">a</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#datum\">datum</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#equatoradius\">equatoradius</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#f\">f</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#flattening\">flattening</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#lat0\">lat0</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#latlon0\">latlon0</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#lon0\">lon0</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#majoradius\">majoradius</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#radius\">radius</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lat0</span>,\n        <span class=\"sig-arg\">lon0</span>,\n        <span class=\"sig-arg\">datum</span>=<span class=\"sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New azimuthal <a \n  href=\"pygeodesy.azimuthal.EquidistantKarney-class.html\" \n  class=\"link\">EquidistantKarney</a> projection.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat0</code></strong> - Latitude of center point (<code>degrees90</code>).</li>\n        <li><strong class=\"pname\"><code>lon0</code></strong> - Longitude of center point (<code>degrees180</code>).</li>\n        <li><strong class=\"pname\"><code>datum</code></strong> - Optional datum or ellipsoid (<a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>, \n          <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a> or <a \n          href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>) or <i>scalar</i> earth radius \n          (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> for the projection \n          (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ImportError</strong></code> - Package <a href=\"https://PyPI.org/project/geographiclib\" \n        target=\"_top\">geographiclib</a> not installed or not found.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.azimuthal.AzimuthalError-class.html\">AzimuthalError</a></strong></code> - Invalid <b><code>lat0</code></b> or <b><code>lon0</code></b> or \n        <b><code>datum</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"forward\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">forward</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lat</span>,\n        <span class=\"sig-arg\">lon</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert an (ellipsoidal) geodetic location to azimuthal equidistant \n  east- and northing.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat</code></strong> - Latitude of the location (<code>degrees90</code>).</li>\n        <li><strong class=\"pname\"><code>lon</code></strong> - Longitude of the location (<code>degrees180</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> for the location \n          (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>An <a href=\"pygeodesy.azimuthal.Azimuthal7Tuple-class.html\" \n          class=\"link\">Azimuthal7Tuple</a><code>(x, y, lat, lon, azimuth, \n          scale, datum)</code> with easting <code>x</code> and northing \n          <code>y</code> of point in <code>meter</code> and \n          <code>lat</code> and <code>lon</code> in <code>degrees</code> and\n          <code>azimuth</code> clockwise from true North. The \n          <code>scale</code> of the projection is <code>1</code> in \n          <i>radial</i> direction and is <code>1 / reciprocal</code> in the\n          direction perpendicular to this.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.azimuthal.AzimuthalError-class.html\">AzimuthalError</a></strong></code> - Invalid <b><code>lat</code></b> or <b><code>lon</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#forward\">_AzimuthalBase.forward</a>\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        A call to <code>.forward</code> followed by a call to \n        <code>.reverse</code> will return the original <code>lat, \n        lon</code> to within roundoff.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"reverse\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">reverse</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">x</span>,\n        <span class=\"sig-arg\">y</span>,\n        <span class=\"sig-arg\">LatLon</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**name_LatLon_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert an azimuthal equidistant location to (ellipsoidal) geodetic \n  lat- and longitude.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>x</code></strong> - Easting of the location (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>y</code></strong> - Northing of the location (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>LatLon</code></strong> - Class to use (<code>LatLon</code>) or <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>name_LatLon_kwds</code></strong> - Optional <code><b>name</b>=NN</code> and optionally, additional \n          <b><code>LatLon</code></b> keyword arguments, ignored if \n          <code><b>LatLon</b> is None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The geodetic (<code>LatLon</code>) or if <code><b>LatLon</b> is \n          None</code> an <a \n          href=\"pygeodesy.azimuthal.Azimuthal7Tuple-class.html\" \n          class=\"link\">Azimuthal7Tuple</a><code>(x, y, lat, lon, azimuth, \n          scale, datum)</code>.</dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#reverse\">_AzimuthalBase.reverse</a>\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        The <code>lat</code> will be in the range <code>[-90..90] \n        degrees</code> and <code>lon</code> in the range <code>[-180..180] \n        degrees</code>.  The scale of the projection is <code>1</code> in \n        <i>radial</i> direction, <code>azimuth</code> clockwise from true \n        North and is <code>1 / reciprocal</code> in the direction \n        perpendicular to this.\n      </p>\n</div></td></tr></table>\n</div>\n<br />\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"geodesic\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">geodesic</h3>\n  <p>Get this projection's <i>wrapped</i> <a \n  href=\"https://GeographicLib.SourceForge.io/Python/doc/code.html\" \n  target=\"_top\">geodesic.Geodesic</a>, provided <i>Karney</i>'s <a \n  href=\"https://PyPI.org/project/geographiclib\" \n  target=\"_top\">geographiclib</a> package is installed.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">geodesic(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get this projection's <i>wrapped</i> <a \nhref=\"https://GeographicLib.SourceForge.io/Python/doc/code.html\" \ntarget=\"_top\">geodesic.Geodesic</a>, provided <i>Karney</i>'s <a \nhref=\"https://PyPI.org/project/geographiclib\" \ntarget=\"_top\">geographiclib</a> package is installed.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.azimuthal.Gnomonic-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.azimuthal.Gnomonic</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.azimuthal-module.html\">Module&nbsp;azimuthal</a> ::\n        Class&nbsp;Gnomonic\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.azimuthal.Gnomonic-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Gnomonic</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+            \n           |            \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+        \n               |        \n<a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+    \n                   |    \n      <a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html\">_AzimuthalBase</a> --+\n                       |\n                      <strong class=\"uidshort\">Gnomonic</strong>\n</pre>\n\n<hr />\n<p>Azimuthal gnomonic projection for the sphere***, see <a \n  href=\"https://Pubs.USGS.gov/pp/1395/report.pdf\" target=\"_top\">Snyder, pp \n  164-168</a> and <a \n  href=\"https://MathWorld.Wolfram.com/GnomonicProjection.html\" \n  target=\"_top\">MathWorld-Wolfram</a>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.azimuthal.Gnomonic-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lat0</span>,\n        <span class=\"summary-sig-arg\">lon0</span>,\n        <span class=\"summary-sig-arg\">datum</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      New azimuthal projection.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.azimuthal.Gnomonic-class.html#forward\" class=\"summary-sig-name\">forward</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lat</span>,\n        <span class=\"summary-sig-arg\">lon</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Convert a geodetic location to azimuthal equidistant east- and \n      northing.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.azimuthal.Gnomonic-class.html#reverse\" class=\"summary-sig-name\">reverse</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">x</span>,\n        <span class=\"summary-sig-arg\">y</span>,\n        <span class=\"summary-sig-arg\">**name_LatLon_and_kwds</span>)</span><br />\n      Convert an azimuthal equidistant location to geodetic lat- and \n      longitude.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html\">_AzimuthalBase</a></code></b>:\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#reset\">reset</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#toStr\">toStr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#others\">others</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html\">_AzimuthalBase</a></code></b>:\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#a\">a</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#datum\">datum</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#equatoradius\">equatoradius</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#f\">f</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#flattening\">flattening</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#lat0\">lat0</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#latlon0\">latlon0</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#lon0\">lon0</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#majoradius\">majoradius</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#radius\">radius</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lat0</span>,\n        <span class=\"sig-arg\">lon0</span>,\n        <span class=\"sig-arg\">datum</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New azimuthal projection.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat0</code></strong> - Latitude of the center point (<code>degrees90</code>).</li>\n        <li><strong class=\"pname\"><code>lon0</code></strong> - Longitude of the center point (<code>degrees180</code>).</li>\n        <li><strong class=\"pname\"><code>datum</code></strong> - Optional datum or ellipsoid (<a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>, \n          <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a> or <a \n          href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>) or <i>scalar</i> earth radius \n          (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> for the projection \n          (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.azimuthal.AzimuthalError-class.html\">AzimuthalError</a></strong></code> - Invalid <b><code>lat0</code></b> or <b><code>lon0</code></b> or \n        (spherical) <b><code>datum</code></b>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>datum</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"forward\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">forward</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lat</span>,\n        <span class=\"sig-arg\">lon</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert a geodetic location to azimuthal equidistant east- and \n  northing.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat</code></strong> - Latitude of the location (<code>degrees90</code>).</li>\n        <li><strong class=\"pname\"><code>lon</code></strong> - Longitude of the location (<code>degrees180</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> for the location \n          (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>An <a href=\"pygeodesy.azimuthal.Azimuthal7Tuple-class.html\" \n          class=\"link\">Azimuthal7Tuple</a><code>(x, y, lat, lon, azimuth, \n          scale, datum)</code> with easting <code>x</code> and northing \n          <code>y</code> of point in <code>meter</code> and \n          <code>lat</code> and <code>lon</code> in <code>degrees</code> and\n          <code>azimuth</code> clockwise from true North. The \n          <code>scale</code> of the projection is <code>1</code> in \n          <i>radial</i> direction and is <code>1 / reciprocal</code> in the\n          direction perpendicular to this.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.azimuthal.AzimuthalError-class.html\">AzimuthalError</a></strong></code> - Invalid <b><code>lat</code></b> or <b><code>lon</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#forward\">_AzimuthalBase.forward</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"reverse\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">reverse</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">x</span>,\n        <span class=\"sig-arg\">y</span>,\n        <span class=\"sig-arg\">**name_LatLon_and_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert an azimuthal equidistant location to geodetic lat- and \n  longitude.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>x</code></strong> - Easting of the location (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>y</code></strong> - Northing of the location (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>name_LatLon_and_kwds</code></strong> - Optional <code><b>name</b>=NN</code> and class \n          <code><b>LatLon</b>=None</code> for the location and optionally, \n          additional <b><code>LatLon</code></b> keyword arguments, ignored \n          if <code><b>LatLon</b> is None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The geodetic (<code>LatLon</code>) or if <code><b>LatLon</b> is \n          None</code> an <a \n          href=\"pygeodesy.azimuthal.Azimuthal7Tuple-class.html\" \n          class=\"link\">Azimuthal7Tuple</a><code>(x, y, lat, lon, azimuth, \n          scale, datum)</code>.</dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#reverse\">_AzimuthalBase.reverse</a>\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        The <code>lat</code> will be in the range <code>[-90..90] \n        degrees</code> and <code>lon</code> in the range <code>[-180..180] \n        degrees</code>.  The <code>scale</code> of the projection is \n        <code>1</code> in <i>radial</i> direction, <code>azimuth</code> \n        clockwise from true North and <code>1 / reciprocal</code> in the \n        direction perpendicular to this.\n      </p>\n</div></td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.azimuthal.GnomonicExact-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.azimuthal.GnomonicExact</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.azimuthal-module.html\">Module&nbsp;azimuthal</a> ::\n        Class&nbsp;GnomonicExact\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.azimuthal.GnomonicExact-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class GnomonicExact</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+                    \n           |                    \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+                \n               |                \n<a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+            \n                   |            \n      <a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html\">_AzimuthalBase</a> --+        \n                       |        \n      <a href=\"pygeodesy.azimuthal._AzimuthalGeodesic-class.html\">_AzimuthalGeodesic</a> --+    \n                           |    \n               <a href=\"pygeodesy.azimuthal._GnomonicBase-class.html\">_GnomonicBase</a> --+\n                               |\n                              <strong class=\"uidshort\">GnomonicExact</strong>\n</pre>\n\n<hr />\n<p>Azimuthal gnomonic projection, a Python version of <i>Karney</i>'s C++\n  class <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Gnomonic.html\"\n  target=\"_top\">Gnomonic</a>, based on exact geodesic classes <a \n  href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html\" \n  class=\"link\">GeodesicExact</a> and <a \n  href=\"pygeodesy.geodesicx.gx.GeodesicLineExact-class.html\" \n  class=\"link\">GeodesicLineExact</a>.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <i>Karney</i>'s <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Gnomonic.html\"\n        target=\"_top\">Detailed Description</a>, especially the \n        <b>Warning</b>.\n      </p>\n</div><!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.azimuthal.GnomonicExact-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lat0</span>,\n        <span class=\"summary-sig-arg\">lon0</span>,\n        <span class=\"summary-sig-arg\">datum</span>=<span class=\"summary-sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      New azimuthal <a href=\"pygeodesy.azimuthal.GnomonicExact-class.html\" \n      class=\"link\">GnomonicExact</a> projection.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.azimuthal.GnomonicExact-class.html#forward\" class=\"summary-sig-name\">forward</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lat</span>,\n        <span class=\"summary-sig-arg\">lon</span>,\n        <span class=\"summary-sig-arg\">raiser</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Convert an (ellipsoidal) geodetic location to azimuthal gnomonic \n      east- and northing.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.azimuthal.GnomonicExact-class.html#reverse\" class=\"summary-sig-name\">reverse</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">x</span>,\n        <span class=\"summary-sig-arg\">y</span>,\n        <span class=\"summary-sig-arg\">LatLon</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**name_LatLon_kwds</span>)</span><br />\n      Convert an azimuthal gnomonic location to (ellipsoidal) geodetic lat-\n      and longitude.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html\">_AzimuthalBase</a></code></b>:\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#reset\">reset</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#toStr\">toStr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#others\">others</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.azimuthal.GnomonicExact-class.html#geodesic\" class=\"summary-name\">geodesic</a><br />\n      Get this projection's exact geodesic (<a \n      href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html\" \n      class=\"link\">GeodesicExact</a>).\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html\">_AzimuthalBase</a></code></b>:\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#a\">a</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#datum\">datum</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#equatoradius\">equatoradius</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#f\">f</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#flattening\">flattening</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#lat0\">lat0</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#latlon0\">latlon0</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#lon0\">lon0</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#majoradius\">majoradius</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#radius\">radius</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lat0</span>,\n        <span class=\"sig-arg\">lon0</span>,\n        <span class=\"sig-arg\">datum</span>=<span class=\"sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New azimuthal <a href=\"pygeodesy.azimuthal.GnomonicExact-class.html\" \n  class=\"link\">GnomonicExact</a> projection.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat0</code></strong> - Latitude of center point (<code>degrees90</code>).</li>\n        <li><strong class=\"pname\"><code>lon0</code></strong> - Longitude of center point (<code>degrees180</code>).</li>\n        <li><strong class=\"pname\"><code>datum</code></strong> - Optional datum or ellipsoid (<a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>, \n          <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a> or <a \n          href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>) or <i>scalar</i> earth radius \n          (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> for the projection \n          (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.azimuthal.AzimuthalError-class.html\">AzimuthalError</a></strong></code> - Invalid <b><code>lat0</code></b> or <b><code>lon0</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"forward\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">forward</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lat</span>,\n        <span class=\"sig-arg\">lon</span>,\n        <span class=\"sig-arg\">raiser</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert an (ellipsoidal) geodetic location to azimuthal gnomonic east-\n  and northing.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat</code></strong> - Latitude of the location (<code>degrees90</code>).</li>\n        <li><strong class=\"pname\"><code>lon</code></strong> - Longitude of the location (<code>degrees180</code>).</li>\n        <li><strong class=\"pname\"><code>raiser</code></strong> - If <code>False</code>, do not throw an error if the location lies\n          over the horizon (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> for the location \n          (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>An <a href=\"pygeodesy.azimuthal.Azimuthal7Tuple-class.html\" \n          class=\"link\">Azimuthal7Tuple</a><code>(x, y, lat, lon, azimuth, \n          scale, datum)</code> with easting <code>x</code> and northing \n          <code>y</code> in <code>meter</code> and <code>lat</code> and \n          <code>lon</code> in <code>degrees</code> and <code>azimuth</code>\n          clockwise from true North. The <code>scale</code> of the \n          projection is <code>1 / reciprocal**2</code> in <i>radial</i> \n          direction and <code>1 / reciprocal</code> in the direction \n          perpendicular to this.  Both <code>x</code> and <code>y</code> \n          will be <code>NAN</code> if the (geodetic) location lies over the\n          horizon and <code><b>raiser</b>=False</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.azimuthal.AzimuthalError-class.html\">AzimuthalError</a></strong></code> - Invalid <b><code>lat</code></b>, <b><code>lon</code></b> or the \n        location lies over the horizon and <code><b>raiser</b>=True</code>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#forward\">_AzimuthalBase.forward</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"reverse\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">reverse</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">x</span>,\n        <span class=\"sig-arg\">y</span>,\n        <span class=\"sig-arg\">LatLon</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**name_LatLon_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert an azimuthal gnomonic location to (ellipsoidal) geodetic lat- \n  and longitude.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>x</code></strong> - Easting of the location (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>y</code></strong> - Northing of the location (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>LatLon</code></strong> - Class to use (<code>LatLon</code>) or <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>name_LatLon_kwds</code></strong> - Optional <code><b>name</b>=NN</code> for the location and \n          optionally, additional <b><code>LatLon</code></b> keyword \n          arguments, ignored if <code><b>LatLon</b> is None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The geodetic (<code>LatLon</code>) or if <code><b>LatLon</b> is \n          None</code> an <a \n          href=\"pygeodesy.azimuthal.Azimuthal7Tuple-class.html\" \n          class=\"link\">Azimuthal7Tuple</a><code>(x, y, lat, lon, azimuth, \n          scale, datum)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.azimuthal.AzimuthalError-class.html\">AzimuthalError</a></strong></code> - No convergence.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#reverse\">_AzimuthalBase.reverse</a>\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        The <code>lat</code> will be in the range <code>[-90..90] \n        degrees</code> and <code>lon</code> in the range <code>[-180..180] \n        degrees</code>.  The <code>azimuth</code> is clockwise from true \n        North.  The scale is <code>1 / reciprocal**2</code> in \n        <code>radial</code> direction and <code>1 / reciprocal</code> in \n        the direction perpendicular to this.\n      </p>\n</div></td></tr></table>\n</div>\n<br />\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"geodesic\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">geodesic</h3>\n  <p>Get this projection's exact geodesic (<a \n  href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html\" \n  class=\"link\">GeodesicExact</a>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">geodesic(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get this projection's exact geodesic (<a \nhref=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html\" \nclass=\"link\">GeodesicExact</a>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.azimuthal.GnomonicGeodSolve-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.azimuthal.GnomonicGeodSolve</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.azimuthal-module.html\">Module&nbsp;azimuthal</a> ::\n        Class&nbsp;GnomonicGeodSolve\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.azimuthal.GnomonicGeodSolve-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class GnomonicGeodSolve</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+                    \n           |                    \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+                \n               |                \n<a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+            \n                   |            \n      <a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html\">_AzimuthalBase</a> --+        \n                       |        \n      <a href=\"pygeodesy.azimuthal._AzimuthalGeodesic-class.html\">_AzimuthalGeodesic</a> --+    \n                           |    \n               <a href=\"pygeodesy.azimuthal._GnomonicBase-class.html\">_GnomonicBase</a> --+\n                               |\n                              <strong class=\"uidshort\">GnomonicGeodSolve</strong>\n</pre>\n\n<hr />\n<p>Azimuthal gnomonic projection, a Python version of <i>Karney</i>'s C++\n  class <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Gnomonic.html\"\n  target=\"_top\">Gnomonic</a>, based on (exact) geodesic <i>wrappers</i> <a \n  href=\"pygeodesy.geodsolve.GeodesicSolve-class.html\" \n  class=\"link\">GeodesicSolve</a> and <a \n  href=\"pygeodesy.geodsolve.GeodesicLineSolve-class.html\" \n  class=\"link\">GeodesicLineSolve</a> and intended <i>for testing purposes \n  only</i>.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"pygeodesy.azimuthal.GnomonicExact-class.html\" \n        class=\"link\">GnomonicExact</a> and module <a \n        href=\"pygeodesy.geodsolve-module.html\" class=\"link\">geodsolve</a>.\n      </p>\n</div><!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.azimuthal.GnomonicGeodSolve-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lat0</span>,\n        <span class=\"summary-sig-arg\">lon0</span>,\n        <span class=\"summary-sig-arg\">datum</span>=<span class=\"summary-sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      New azimuthal <a \n      href=\"pygeodesy.azimuthal.GnomonicGeodSolve-class.html\" \n      class=\"link\">GnomonicGeodSolve</a> projection.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.azimuthal.GnomonicGeodSolve-class.html#forward\" class=\"summary-sig-name\">forward</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lat</span>,\n        <span class=\"summary-sig-arg\">lon</span>,\n        <span class=\"summary-sig-arg\">raiser</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Convert an (ellipsoidal) geodetic location to azimuthal gnomonic \n      east- and northing.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.azimuthal.GnomonicGeodSolve-class.html#reverse\" class=\"summary-sig-name\">reverse</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">x</span>,\n        <span class=\"summary-sig-arg\">y</span>,\n        <span class=\"summary-sig-arg\">LatLon</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**name_LatLon_kwds</span>)</span><br />\n      Convert an azimuthal gnomonic location to (ellipsoidal) geodetic lat-\n      and longitude.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html\">_AzimuthalBase</a></code></b>:\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#reset\">reset</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#toStr\">toStr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#others\">others</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.azimuthal.GnomonicGeodSolve-class.html#geodesic\" class=\"summary-name\">geodesic</a><br />\n      Get this projection's (exact) geodesic (<a \n      href=\"pygeodesy.geodsolve.GeodesicSolve-class.html\" \n      class=\"link\">GeodesicSolve</a>).\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html\">_AzimuthalBase</a></code></b>:\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#a\">a</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#datum\">datum</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#equatoradius\">equatoradius</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#f\">f</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#flattening\">flattening</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#lat0\">lat0</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#latlon0\">latlon0</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#lon0\">lon0</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#majoradius\">majoradius</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#radius\">radius</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lat0</span>,\n        <span class=\"sig-arg\">lon0</span>,\n        <span class=\"sig-arg\">datum</span>=<span class=\"sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New azimuthal <a \n  href=\"pygeodesy.azimuthal.GnomonicGeodSolve-class.html\" \n  class=\"link\">GnomonicGeodSolve</a> projection.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat0</code></strong> - Latitude of center point (<code>degrees90</code>).</li>\n        <li><strong class=\"pname\"><code>lon0</code></strong> - Longitude of center point (<code>degrees180</code>).</li>\n        <li><strong class=\"pname\"><code>datum</code></strong> - Optional datum or ellipsoid (<a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>, \n          <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a> or <a \n          href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>) or <i>scalar</i> earth radius \n          (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> for the projection \n          (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.azimuthal.AzimuthalError-class.html\">AzimuthalError</a></strong></code> - Invalid <b><code>lat0</code></b> or <b><code>lon0</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"forward\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">forward</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lat</span>,\n        <span class=\"sig-arg\">lon</span>,\n        <span class=\"sig-arg\">raiser</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert an (ellipsoidal) geodetic location to azimuthal gnomonic east-\n  and northing.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat</code></strong> - Latitude of the location (<code>degrees90</code>).</li>\n        <li><strong class=\"pname\"><code>lon</code></strong> - Longitude of the location (<code>degrees180</code>).</li>\n        <li><strong class=\"pname\"><code>raiser</code></strong> - If <code>False</code>, do not throw an error if the location lies\n          over the horizon (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> for the location \n          (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>An <a href=\"pygeodesy.azimuthal.Azimuthal7Tuple-class.html\" \n          class=\"link\">Azimuthal7Tuple</a><code>(x, y, lat, lon, azimuth, \n          scale, datum)</code> with easting <code>x</code> and northing \n          <code>y</code> in <code>meter</code> and <code>lat</code> and \n          <code>lon</code> in <code>degrees</code> and <code>azimuth</code>\n          clockwise from true North. The <code>scale</code> of the \n          projection is <code>1 / reciprocal**2</code> in <i>radial</i> \n          direction and <code>1 / reciprocal</code> in the direction \n          perpendicular to this.  Both <code>x</code> and <code>y</code> \n          will be <code>NAN</code> if the (geodetic) location lies over the\n          horizon and <code><b>raiser</b>=False</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.azimuthal.AzimuthalError-class.html\">AzimuthalError</a></strong></code> - Invalid <b><code>lat</code></b>, <b><code>lon</code></b> or the \n        location lies over the horizon and <code><b>raiser</b>=True</code>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#forward\">_AzimuthalBase.forward</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"reverse\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">reverse</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">x</span>,\n        <span class=\"sig-arg\">y</span>,\n        <span class=\"sig-arg\">LatLon</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**name_LatLon_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert an azimuthal gnomonic location to (ellipsoidal) geodetic lat- \n  and longitude.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>x</code></strong> - Easting of the location (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>y</code></strong> - Northing of the location (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>LatLon</code></strong> - Class to use (<code>LatLon</code>) or <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>name_LatLon_kwds</code></strong> - Optional <code><b>name</b>=NN</code> for the location and \n          optionally, additional <b><code>LatLon</code></b> keyword \n          arguments, ignored if <code><b>LatLon</b> is None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The geodetic (<code>LatLon</code>) or if <code><b>LatLon</b> is \n          None</code> an <a \n          href=\"pygeodesy.azimuthal.Azimuthal7Tuple-class.html\" \n          class=\"link\">Azimuthal7Tuple</a><code>(x, y, lat, lon, azimuth, \n          scale, datum)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.azimuthal.AzimuthalError-class.html\">AzimuthalError</a></strong></code> - No convergence.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#reverse\">_AzimuthalBase.reverse</a>\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        The <code>lat</code> will be in the range <code>[-90..90] \n        degrees</code> and <code>lon</code> in the range <code>[-180..180] \n        degrees</code>.  The <code>azimuth</code> is clockwise from true \n        North.  The scale is <code>1 / reciprocal**2</code> in \n        <code>radial</code> direction and <code>1 / reciprocal</code> in \n        the direction perpendicular to this.\n      </p>\n</div></td></tr></table>\n</div>\n<br />\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"geodesic\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">geodesic</h3>\n  <p>Get this projection's (exact) geodesic (<a \n  href=\"pygeodesy.geodsolve.GeodesicSolve-class.html\" \n  class=\"link\">GeodesicSolve</a>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">geodesic(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get this projection's (exact) geodesic (<a \nhref=\"pygeodesy.geodsolve.GeodesicSolve-class.html\" \nclass=\"link\">GeodesicSolve</a>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.azimuthal.GnomonicKarney-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.azimuthal.GnomonicKarney</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.azimuthal-module.html\">Module&nbsp;azimuthal</a> ::\n        Class&nbsp;GnomonicKarney\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.azimuthal.GnomonicKarney-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class GnomonicKarney</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+                    \n           |                    \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+                \n               |                \n<a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+            \n                   |            \n      <a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html\">_AzimuthalBase</a> --+        \n                       |        \n      <a href=\"pygeodesy.azimuthal._AzimuthalGeodesic-class.html\">_AzimuthalGeodesic</a> --+    \n                           |    \n               <a href=\"pygeodesy.azimuthal._GnomonicBase-class.html\">_GnomonicBase</a> --+\n                               |\n                              <strong class=\"uidshort\">GnomonicKarney</strong>\n</pre>\n\n<hr />\n<p>Azimuthal gnomonic projection, a Python version of <i>Karney</i>'s C++\n  class <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Gnomonic.html\"\n  target=\"_top\">Gnomonic</a>, requiring package <a \n  href=\"https://PyPI.org/project/geographiclib\" \n  target=\"_top\">geographiclib</a> to be installed.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"pygeodesy.azimuthal.GnomonicExact-class.html\" \n        class=\"link\">GnomonicExact</a>.\n      </p>\n</div><!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.azimuthal.GnomonicKarney-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lat0</span>,\n        <span class=\"summary-sig-arg\">lon0</span>,\n        <span class=\"summary-sig-arg\">datum</span>=<span class=\"summary-sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      New azimuthal <a href=\"pygeodesy.azimuthal.GnomonicKarney-class.html\"\n      class=\"link\">GnomonicKarney</a> projection.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.azimuthal.GnomonicKarney-class.html#forward\" class=\"summary-sig-name\">forward</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lat</span>,\n        <span class=\"summary-sig-arg\">lon</span>,\n        <span class=\"summary-sig-arg\">raiser</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Convert an (ellipsoidal) geodetic location to azimuthal gnomonic \n      east- and northing.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.azimuthal.GnomonicKarney-class.html#reverse\" class=\"summary-sig-name\">reverse</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">x</span>,\n        <span class=\"summary-sig-arg\">y</span>,\n        <span class=\"summary-sig-arg\">LatLon</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**name_LatLon_kwds</span>)</span><br />\n      Convert an azimuthal gnomonic location to (ellipsoidal) geodetic lat-\n      and longitude.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html\">_AzimuthalBase</a></code></b>:\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#reset\">reset</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#toStr\">toStr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#others\">others</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.azimuthal.GnomonicKarney-class.html#geodesic\" class=\"summary-name\">geodesic</a><br />\n      Get this projection's <i>wrapped</i> <a \n      href=\"https://GeographicLib.SourceForge.io/Python/doc/code.html\" \n      target=\"_top\">geodesic.Geodesic</a>, provided <i>Karney</i>'s <a \n      href=\"https://PyPI.org/project/geographiclib\" \n      target=\"_top\">geographiclib</a> package is installed.\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html\">_AzimuthalBase</a></code></b>:\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#a\">a</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#datum\">datum</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#equatoradius\">equatoradius</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#f\">f</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#flattening\">flattening</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#lat0\">lat0</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#latlon0\">latlon0</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#lon0\">lon0</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#majoradius\">majoradius</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#radius\">radius</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lat0</span>,\n        <span class=\"sig-arg\">lon0</span>,\n        <span class=\"sig-arg\">datum</span>=<span class=\"sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New azimuthal <a href=\"pygeodesy.azimuthal.GnomonicKarney-class.html\" \n  class=\"link\">GnomonicKarney</a> projection.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat0</code></strong> - Latitude of center point (<code>degrees90</code>).</li>\n        <li><strong class=\"pname\"><code>lon0</code></strong> - Longitude of center point (<code>degrees180</code>).</li>\n        <li><strong class=\"pname\"><code>datum</code></strong> - Optional datum or ellipsoid (<a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>, \n          <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a> or <a \n          href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>) or <i>scalar</i> earth radius \n          (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> for the projection \n          (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ImportError</strong></code> - Package <a href=\"https://PyPI.org/project/geographiclib\" \n        target=\"_top\">geographiclib</a> not installed or not found.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.azimuthal.AzimuthalError-class.html\">AzimuthalError</a></strong></code> - Invalid <b><code>lat0</code></b> or <b><code>lon0</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"forward\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">forward</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lat</span>,\n        <span class=\"sig-arg\">lon</span>,\n        <span class=\"sig-arg\">raiser</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert an (ellipsoidal) geodetic location to azimuthal gnomonic east-\n  and northing.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat</code></strong> - Latitude of the location (<code>degrees90</code>).</li>\n        <li><strong class=\"pname\"><code>lon</code></strong> - Longitude of the location (<code>degrees180</code>).</li>\n        <li><strong class=\"pname\"><code>raiser</code></strong> - If <code>False</code>, do not throw an error if the location lies\n          over the horizon (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> for the location \n          (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>An <a href=\"pygeodesy.azimuthal.Azimuthal7Tuple-class.html\" \n          class=\"link\">Azimuthal7Tuple</a><code>(x, y, lat, lon, azimuth, \n          scale, datum)</code> with easting <code>x</code> and northing \n          <code>y</code> in <code>meter</code> and <code>lat</code> and \n          <code>lon</code> in <code>degrees</code> and <code>azimuth</code>\n          clockwise from true North. The <code>scale</code> of the \n          projection is <code>1 / reciprocal**2</code> in <i>radial</i> \n          direction and <code>1 / reciprocal</code> in the direction \n          perpendicular to this.  Both <code>x</code> and <code>y</code> \n          will be <code>NAN</code> if the (geodetic) location lies over the\n          horizon and <code><b>raiser</b>=False</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.azimuthal.AzimuthalError-class.html\">AzimuthalError</a></strong></code> - Invalid <b><code>lat</code></b>, <b><code>lon</code></b> or the \n        location lies over the horizon and <code><b>raiser</b>=True</code>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#forward\">_AzimuthalBase.forward</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"reverse\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">reverse</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">x</span>,\n        <span class=\"sig-arg\">y</span>,\n        <span class=\"sig-arg\">LatLon</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**name_LatLon_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert an azimuthal gnomonic location to (ellipsoidal) geodetic lat- \n  and longitude.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>x</code></strong> - Easting of the location (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>y</code></strong> - Northing of the location (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>LatLon</code></strong> - Class to use (<code>LatLon</code>) or <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>name_LatLon_kwds</code></strong> - Optional <code><b>name</b>=NN</code> for the location and \n          optionally, additional <b><code>LatLon</code></b> keyword \n          arguments, ignored if <code><b>LatLon</b> is None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The geodetic (<code>LatLon</code>) or if <code><b>LatLon</b> is \n          None</code> an <a \n          href=\"pygeodesy.azimuthal.Azimuthal7Tuple-class.html\" \n          class=\"link\">Azimuthal7Tuple</a><code>(x, y, lat, lon, azimuth, \n          scale, datum)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.azimuthal.AzimuthalError-class.html\">AzimuthalError</a></strong></code> - No convergence.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#reverse\">_AzimuthalBase.reverse</a>\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        The <code>lat</code> will be in the range <code>[-90..90] \n        degrees</code> and <code>lon</code> in the range <code>[-180..180] \n        degrees</code>.  The <code>azimuth</code> is clockwise from true \n        North.  The scale is <code>1 / reciprocal**2</code> in \n        <code>radial</code> direction and <code>1 / reciprocal</code> in \n        the direction perpendicular to this.\n      </p>\n</div></td></tr></table>\n</div>\n<br />\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"geodesic\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">geodesic</h3>\n  <p>Get this projection's <i>wrapped</i> <a \n  href=\"https://GeographicLib.SourceForge.io/Python/doc/code.html\" \n  target=\"_top\">geodesic.Geodesic</a>, provided <i>Karney</i>'s <a \n  href=\"https://PyPI.org/project/geographiclib\" \n  target=\"_top\">geographiclib</a> package is installed.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">geodesic(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get this projection's <i>wrapped</i> <a \nhref=\"https://GeographicLib.SourceForge.io/Python/doc/code.html\" \ntarget=\"_top\">geodesic.Geodesic</a>, provided <i>Karney</i>'s <a \nhref=\"https://PyPI.org/project/geographiclib\" \ntarget=\"_top\">geographiclib</a> package is installed.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.azimuthal.LambertEqualArea-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.azimuthal.LambertEqualArea</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.azimuthal-module.html\">Module&nbsp;azimuthal</a> ::\n        Class&nbsp;LambertEqualArea\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.azimuthal.LambertEqualArea-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class LambertEqualArea</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+            \n           |            \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+        \n               |        \n<a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+    \n                   |    \n      <a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html\">_AzimuthalBase</a> --+\n                       |\n                      <strong class=\"uidshort\">LambertEqualArea</strong>\n</pre>\n\n<hr />\n<p>Lambert-equal-area projection for the sphere*** (aka <a \n  href=\"https://WikiPedia.org/wiki/Lambert_azimuthal_equal-area_projection\"\n  target=\"_top\">Lambert zenithal equal-area projection</a>, see <a \n  href=\"https://Pubs.USGS.gov/pp/1395/report.pdf\" target=\"_top\">Snyder, pp \n  185-187</a> and <a \n  href=\"https://MathWorld.Wolfram.com/LambertAzimuthalEqual-AreaProjection.html\"\n  target=\"_top\">MathWorld-Wolfram</a>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.azimuthal.LambertEqualArea-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lat0</span>,\n        <span class=\"summary-sig-arg\">lon0</span>,\n        <span class=\"summary-sig-arg\">datum</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      New azimuthal projection.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.azimuthal.LambertEqualArea-class.html#forward\" class=\"summary-sig-name\">forward</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lat</span>,\n        <span class=\"summary-sig-arg\">lon</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Convert a geodetic location to azimuthal Lambert-equal-area east- and\n      northing.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.azimuthal.LambertEqualArea-class.html#reverse\" class=\"summary-sig-name\">reverse</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">x</span>,\n        <span class=\"summary-sig-arg\">y</span>,\n        <span class=\"summary-sig-arg\">**name_LatLon_and_kwds</span>)</span><br />\n      Convert an azimuthal Lambert-equal-area location to geodetic lat- and\n      longitude.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html\">_AzimuthalBase</a></code></b>:\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#reset\">reset</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#toStr\">toStr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#others\">others</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html\">_AzimuthalBase</a></code></b>:\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#a\">a</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#datum\">datum</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#equatoradius\">equatoradius</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#f\">f</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#flattening\">flattening</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#lat0\">lat0</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#latlon0\">latlon0</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#lon0\">lon0</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#majoradius\">majoradius</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#radius\">radius</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lat0</span>,\n        <span class=\"sig-arg\">lon0</span>,\n        <span class=\"sig-arg\">datum</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New azimuthal projection.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat0</code></strong> - Latitude of the center point (<code>degrees90</code>).</li>\n        <li><strong class=\"pname\"><code>lon0</code></strong> - Longitude of the center point (<code>degrees180</code>).</li>\n        <li><strong class=\"pname\"><code>datum</code></strong> - Optional datum or ellipsoid (<a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>, \n          <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a> or <a \n          href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>) or <i>scalar</i> earth radius \n          (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> for the projection \n          (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.azimuthal.AzimuthalError-class.html\">AzimuthalError</a></strong></code> - Invalid <b><code>lat0</code></b> or <b><code>lon0</code></b> or \n        (spherical) <b><code>datum</code></b>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>datum</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"forward\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">forward</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lat</span>,\n        <span class=\"sig-arg\">lon</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert a geodetic location to azimuthal Lambert-equal-area east- and \n  northing.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat</code></strong> - Latitude of the location (<code>degrees90</code>).</li>\n        <li><strong class=\"pname\"><code>lon</code></strong> - Longitude of the location (<code>degrees180</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> for the location \n          (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>An <a href=\"pygeodesy.azimuthal.Azimuthal7Tuple-class.html\" \n          class=\"link\">Azimuthal7Tuple</a><code>(x, y, lat, lon, azimuth, \n          scale, datum)</code> with easting <code>x</code> and northing \n          <code>y</code> of point in <code>meter</code> and \n          <code>lat</code> and <code>lon</code> in <code>degrees</code> and\n          <code>azimuth</code> clockwise from true North. The \n          <code>scale</code> of the projection is <code>1</code> in \n          <i>radial</i> direction and is <code>1 / reciprocal</code> in the\n          direction perpendicular to this.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.azimuthal.AzimuthalError-class.html\">AzimuthalError</a></strong></code> - Invalid <b><code>lat</code></b> or <b><code>lon</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#forward\">_AzimuthalBase.forward</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"reverse\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">reverse</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">x</span>,\n        <span class=\"sig-arg\">y</span>,\n        <span class=\"sig-arg\">**name_LatLon_and_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert an azimuthal Lambert-equal-area location to geodetic lat- and \n  longitude.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>x</code></strong> - Easting of the location (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>y</code></strong> - Northing of the location (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>name_LatLon_and_kwds</code></strong> - Optional <code><b>name</b>=NN</code> and class \n          <code><b>LatLon</b>=None</code> to use and optionally, additional\n          <b><code>LatLon</code></b> keyword arguments, ignored if \n          <code><b>LatLon</b> is None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The geodetic (<code>LatLon</code>) or if <code><b>LatLon</b> is \n          None</code> an <a \n          href=\"pygeodesy.azimuthal.Azimuthal7Tuple-class.html\" \n          class=\"link\">Azimuthal7Tuple</a><code>(x, y, lat, lon, azimuth, \n          scale, datum)</code>.</dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#reverse\">_AzimuthalBase.reverse</a>\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        The <code>lat</code> will be in the range <code>[-90..90] \n        degrees</code> and <code>lon</code> in the range <code>[-180..180] \n        degrees</code>.  The <code>scale</code> of the projection is \n        <code>1</code> in <i>radial</i> direction, <code>azimuth</code> \n        clockwise from true North and is <code>1 / reciprocal</code> in the\n        direction perpendicular to this.\n      </p>\n</div></td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.azimuthal.Orthographic-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.azimuthal.Orthographic</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.azimuthal-module.html\">Module&nbsp;azimuthal</a> ::\n        Class&nbsp;Orthographic\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.azimuthal.Orthographic-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Orthographic</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+            \n           |            \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+        \n               |        \n<a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+    \n                   |    \n      <a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html\">_AzimuthalBase</a> --+\n                       |\n                      <strong class=\"uidshort\">Orthographic</strong>\n</pre>\n\n<hr />\n<p>Orthographic projection for the sphere***, see <a \n  href=\"https://Pubs.USGS.gov/pp/1395/report.pdf\" target=\"_top\">Snyder, pp \n  148-153</a> and <a \n  href=\"https://MathWorld.Wolfram.com/OrthographicProjection.html\" \n  target=\"_top\">MathWorld-Wolfram</a>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.azimuthal.Orthographic-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lat0</span>,\n        <span class=\"summary-sig-arg\">lon0</span>,\n        <span class=\"summary-sig-arg\">datum</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      New azimuthal projection.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.azimuthal.Orthographic-class.html#forward\" class=\"summary-sig-name\">forward</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lat</span>,\n        <span class=\"summary-sig-arg\">lon</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Convert a geodetic location to azimuthal orthographic east- and \n      northing.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.azimuthal.Orthographic-class.html#reverse\" class=\"summary-sig-name\">reverse</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">x</span>,\n        <span class=\"summary-sig-arg\">y</span>,\n        <span class=\"summary-sig-arg\">**name_LatLon_and_kwds</span>)</span><br />\n      Convert an azimuthal orthographic location to geodetic lat- and \n      longitude.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html\">_AzimuthalBase</a></code></b>:\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#reset\">reset</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#toStr\">toStr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#others\">others</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html\">_AzimuthalBase</a></code></b>:\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#a\">a</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#datum\">datum</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#equatoradius\">equatoradius</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#f\">f</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#flattening\">flattening</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#lat0\">lat0</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#latlon0\">latlon0</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#lon0\">lon0</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#majoradius\">majoradius</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#radius\">radius</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lat0</span>,\n        <span class=\"sig-arg\">lon0</span>,\n        <span class=\"sig-arg\">datum</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New azimuthal projection.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat0</code></strong> - Latitude of the center point (<code>degrees90</code>).</li>\n        <li><strong class=\"pname\"><code>lon0</code></strong> - Longitude of the center point (<code>degrees180</code>).</li>\n        <li><strong class=\"pname\"><code>datum</code></strong> - Optional datum or ellipsoid (<a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>, \n          <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a> or <a \n          href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>) or <i>scalar</i> earth radius \n          (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> for the projection \n          (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.azimuthal.AzimuthalError-class.html\">AzimuthalError</a></strong></code> - Invalid <b><code>lat0</code></b> or <b><code>lon0</code></b> or \n        (spherical) <b><code>datum</code></b>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>datum</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"forward\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">forward</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lat</span>,\n        <span class=\"sig-arg\">lon</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert a geodetic location to azimuthal orthographic east- and \n  northing.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat</code></strong> - Latitude of the location (<code>degrees90</code>).</li>\n        <li><strong class=\"pname\"><code>lon</code></strong> - Longitude of the location (<code>degrees180</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> for the location \n          (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>An <a href=\"pygeodesy.azimuthal.Azimuthal7Tuple-class.html\" \n          class=\"link\">Azimuthal7Tuple</a><code>(x, y, lat, lon, azimuth, \n          scale, datum)</code> with easting <code>x</code> and northing \n          <code>y</code> of point in <code>meter</code> and \n          <code>lat</code> and <code>lon</code> in <code>degrees</code> and\n          <code>azimuth</code> clockwise from true North. The \n          <code>scale</code> of the projection is <code>1</code> in \n          <i>radial</i> direction and is <code>1 / reciprocal</code> in the\n          direction perpendicular to this.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.azimuthal.AzimuthalError-class.html\">AzimuthalError</a></strong></code> - Invalid <b><code>lat</code></b> or <b><code>lon</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#forward\">_AzimuthalBase.forward</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"reverse\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">reverse</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">x</span>,\n        <span class=\"sig-arg\">y</span>,\n        <span class=\"sig-arg\">**name_LatLon_and_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert an azimuthal orthographic location to geodetic lat- and \n  longitude.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>x</code></strong> - Easting of the location (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>y</code></strong> - Northing of the location (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>name_LatLon_and_kwds</code></strong> - Optional <code><b>name</b>=NN</code> and class \n          <code><b>LatLon</b>=None</code> to use and optionally, additional\n          <b><code>LatLon</code></b> keyword arguments, ignored if \n          <code><b>LatLon</b> is None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The geodetic (<code>LatLon</code>) or if <code><b>LatLon</b> is \n          None</code> an <a \n          href=\"pygeodesy.azimuthal.Azimuthal7Tuple-class.html\" \n          class=\"link\">Azimuthal7Tuple</a><code>(x, y, lat, lon, azimuth, \n          scale, datum)</code>.</dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#reverse\">_AzimuthalBase.reverse</a>\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        The <code>lat</code> will be in the range <code>[-90..90] \n        degrees</code> and <code>lon</code> in the range <code>[-180..180] \n        degrees</code>.  The <code>scale</code> of the projection is \n        <code>1</code> in <i>radial</i> direction, <code>azimuth</code> \n        clockwise from true North and is <code>1 / reciprocal</code> in the\n        direction perpendicular to this.\n      </p>\n</div></td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.azimuthal.Stereographic-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.azimuthal.Stereographic</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.azimuthal-module.html\">Module&nbsp;azimuthal</a> ::\n        Class&nbsp;Stereographic\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.azimuthal.Stereographic-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Stereographic</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+            \n           |            \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+        \n               |        \n<a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+    \n                   |    \n      <a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html\">_AzimuthalBase</a> --+\n                       |\n                      <strong class=\"uidshort\">Stereographic</strong>\n</pre>\n\n<hr />\n<p>Stereographic projection for the sphere***, see <a \n  href=\"https://Pubs.USGS.gov/pp/1395/report.pdf\" target=\"_top\">Snyder, pp \n  157-160</a> and <a \n  href=\"https://MathWorld.Wolfram.com/StereographicProjection.html\" \n  target=\"_top\">MathWorld-Wolfram</a>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.azimuthal.Stereographic-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lat0</span>,\n        <span class=\"summary-sig-arg\">lon0</span>,\n        <span class=\"summary-sig-arg\">datum</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      New azimuthal projection.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.azimuthal.Stereographic-class.html#forward\" class=\"summary-sig-name\">forward</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lat</span>,\n        <span class=\"summary-sig-arg\">lon</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Convert a geodetic location to azimuthal stereographic east- and \n      northing.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.azimuthal.Stereographic-class.html#reverse\" class=\"summary-sig-name\">reverse</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">x</span>,\n        <span class=\"summary-sig-arg\">y</span>,\n        <span class=\"summary-sig-arg\">**name_LatLon_and_kwds</span>)</span><br />\n      Convert an azimuthal stereographic location to geodetic lat- and \n      longitude.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html\">_AzimuthalBase</a></code></b>:\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#reset\">reset</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#toStr\">toStr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#others\">others</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.azimuthal.Stereographic-class.html#k0\" class=\"summary-name\">k0</a><br />\n      Class <code>property</code> with a <code>.name</code> attribute.\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html\">_AzimuthalBase</a></code></b>:\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#a\">a</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#datum\">datum</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#equatoradius\">equatoradius</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#f\">f</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#flattening\">flattening</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#lat0\">lat0</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#latlon0\">latlon0</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#lon0\">lon0</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#majoradius\">majoradius</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#radius\">radius</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lat0</span>,\n        <span class=\"sig-arg\">lon0</span>,\n        <span class=\"sig-arg\">datum</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New azimuthal projection.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat0</code></strong> - Latitude of the center point (<code>degrees90</code>).</li>\n        <li><strong class=\"pname\"><code>lon0</code></strong> - Longitude of the center point (<code>degrees180</code>).</li>\n        <li><strong class=\"pname\"><code>datum</code></strong> - Optional datum or ellipsoid (<a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>, \n          <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a> or <a \n          href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>) or <i>scalar</i> earth radius \n          (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> for the projection \n          (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.azimuthal.AzimuthalError-class.html\">AzimuthalError</a></strong></code> - Invalid <b><code>lat0</code></b> or <b><code>lon0</code></b> or \n        (spherical) <b><code>datum</code></b>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>datum</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"forward\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">forward</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lat</span>,\n        <span class=\"sig-arg\">lon</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert a geodetic location to azimuthal stereographic east- and \n  northing.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat</code></strong> - Latitude of the location (<code>degrees90</code>).</li>\n        <li><strong class=\"pname\"><code>lon</code></strong> - Longitude of the location (<code>degrees180</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> for the location \n          (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>An <a href=\"pygeodesy.azimuthal.Azimuthal7Tuple-class.html\" \n          class=\"link\">Azimuthal7Tuple</a><code>(x, y, lat, lon, azimuth, \n          scale, datum)</code> with easting <code>x</code> and northing \n          <code>y</code> of point in <code>meter</code> and \n          <code>lat</code> and <code>lon</code> in <code>degrees</code> and\n          <code>azimuth</code> clockwise from true North. The \n          <code>scale</code> of the projection is <code>1</code> in \n          <i>radial</i> direction and is <code>1 / reciprocal</code> in the\n          direction perpendicular to this.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.azimuthal.AzimuthalError-class.html\">AzimuthalError</a></strong></code> - Invalid <b><code>lat</code></b> or <b><code>lon</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#forward\">_AzimuthalBase.forward</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"reverse\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">reverse</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">x</span>,\n        <span class=\"sig-arg\">y</span>,\n        <span class=\"sig-arg\">**name_LatLon_and_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert an azimuthal stereographic location to geodetic lat- and \n  longitude.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>x</code></strong> - Easting of the location (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>y</code></strong> - Northing of the location (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>name_LatLon_and_kwds</code></strong> - Optional <code><b>name</b>=NN</code> and class \n          <code><b>LatLon</b>=None</code> to use and optionally, additional\n          <b><code>LatLon</code></b> keyword arguments, ignored if \n          <code><b>LatLon</b> is None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The geodetic (<code>LatLon</code>) or if <code><b>LatLon</b> is \n          None</code> an <a \n          href=\"pygeodesy.azimuthal.Azimuthal7Tuple-class.html\" \n          class=\"link\">Azimuthal7Tuple</a><code>(x, y, lat, lon, azimuth, \n          scale, datum)</code>.</dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#reverse\">_AzimuthalBase.reverse</a>\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        The <code>lat</code> will be in range <code>[-90..90] \n        degrees</code>, <code>lon</code> in range <code>[-180..180] \n        degrees</code> and <code>azimuth</code> clockwise from true North.\n        The <code>scale</code> of the projection is <code>1</code> in \n        <i>radial</i> direction and is <code>1 / reciprocal</code> in the \n        direction perpendicular to this.\n      </p>\n</div></td></tr></table>\n</div>\n<br />\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"k0\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">k0</h3>\n  <p>Class <code>property</code> with a <code>.name</code> attribute.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">k0(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the central scale factor (<code>scalar</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">k0(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">factor</span>)</span>\n        - Set the central scale factor (<code>scalar</code>).\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.azimuthal._AzimuthalBase-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.azimuthal._AzimuthalBase</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.azimuthal-module.html\">Module&nbsp;azimuthal</a> ::\n        Class&nbsp;_AzimuthalBase\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class _AzimuthalBase</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+        \n           |        \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n               |    \n<a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+\n                   |\n                  <strong class=\"uidshort\">_AzimuthalBase</strong>\n</pre>\n\n<dl><dt>Known Subclasses:</dt>\n<dd>\n      <ul class=\"subclass-list\">\n<li><a href=\"pygeodesy.azimuthal.Equidistant-class.html\">Equidistant</a></li><li>, <a href=\"pygeodesy.azimuthal._AzimuthalGeodesic-class.html\">_AzimuthalGeodesic</a></li><li>, <a href=\"pygeodesy.azimuthal.Gnomonic-class.html\">Gnomonic</a></li><li>, <a href=\"pygeodesy.azimuthal.LambertEqualArea-class.html\">LambertEqualArea</a></li><li>, <a href=\"pygeodesy.azimuthal.Orthographic-class.html\">Orthographic</a></li><li>, <a href=\"pygeodesy.azimuthal.Stereographic-class.html\">Stereographic</a></li>  </ul>\n</dd></dl>\n\n<hr />\n<p>(INTERNAL) Base class for azimuthal projections.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <i>Karney</i>'s C++ class <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1AzimuthalEquidistant.html\"\n        target=\"_top\">AzimuthalEquidistant</a> and <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Gnomonic.html\"\n        target=\"_top\">Gnomonic</a> or the <code>PyGeodesy</code> versions \n        thereof <a href=\"pygeodesy.azimuthal.EquidistantKarney-class.html\" \n        class=\"link\">EquidistantKarney</a> respectively <a \n        href=\"pygeodesy.azimuthal.GnomonicKarney-class.html\" \n        class=\"link\">GnomonicKarney</a>.\n      </p>\n</div><!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lat0</span>,\n        <span class=\"summary-sig-arg\">lon0</span>,\n        <span class=\"summary-sig-arg\">datum</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      New azimuthal projection.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"forward\"></a><span class=\"summary-sig-name\">forward</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lat</span>,\n        <span class=\"summary-sig-arg\">lon</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      <i>Must be overloaded</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#reset\" class=\"summary-sig-name\">reset</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lat0</span>,\n        <span class=\"summary-sig-arg\">lon0</span>)</span><br />\n      Set or reset the center point of this azimuthal projection.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"reverse\"></a><span class=\"summary-sig-name\">reverse</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">x</span>,\n        <span class=\"summary-sig-arg\">y</span>,\n        <span class=\"summary-sig-arg\">**name_LatLon_and_kwds</span>)</span><br />\n      <i>Must be overloaded</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#toRepr\" class=\"summary-sig-name\">toRepr</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">prec</span>=<span class=\"summary-sig-default\">6</span>,\n        <span class=\"summary-sig-arg\">**unused</span>)</span><br />\n      Return a string representation of this projection.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#toStr\" class=\"summary-sig-name\">toStr</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">prec</span>=<span class=\"summary-sig-default\">6</span>,\n        <span class=\"summary-sig-arg\">sep</span>=<span class=\"summary-sig-default\">' '</span>,\n        <span class=\"summary-sig-arg\">**unused</span>)</span><br />\n      Return a string representation of this projection.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#others\">others</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#datum\" class=\"summary-name\">datum</a><br />\n      Get the datum (<a href=\"pygeodesy.datums.Datum-class.html\" \n      class=\"link\">Datum</a>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#equatoradius\" class=\"summary-name\">equatoradius</a><br />\n      Get the geodesic's equatorial radius, semi-axis (<code>meter</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#a\" class=\"summary-name\">a</a><br />\n      Get the geodesic's equatorial radius, semi-axis (<code>meter</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#flattening\" class=\"summary-name\">flattening</a><br />\n      Get the geodesic's flattening (<code>scalar</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#f\" class=\"summary-name\">f</a><br />\n      Get the geodesic's flattening (<code>scalar</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#lat0\" class=\"summary-name\">lat0</a><br />\n      Get the center latitude (<code>degrees90</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#latlon0\" class=\"summary-name\">latlon0</a><br />\n      Get the center lat- and longitude (<a \n      href=\"pygeodesy.namedTuples.LatLon2Tuple-class.html\" \n      class=\"link\">LatLon2Tuple</a><code>(lat, lon)</code>) in \n      (<code>degrees90</code>, <code>degrees180</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#lon0\" class=\"summary-name\">lon0</a><br />\n      Get the center longitude (<code>degrees180</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#majoradius\" class=\"summary-name\">majoradius</a><br />\n      DEPRECATED, use property <code>equatoradius</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#radius\" class=\"summary-name\">radius</a><br />\n      Get this projection's mean radius of curvature (<code>meter</code>).\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lat0</span>,\n        <span class=\"sig-arg\">lon0</span>,\n        <span class=\"sig-arg\">datum</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New azimuthal projection.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat0</code></strong> - Latitude of the center point (<code>degrees90</code>).</li>\n        <li><strong class=\"pname\"><code>lon0</code></strong> - Longitude of the center point (<code>degrees180</code>).</li>\n        <li><strong class=\"pname\"><code>datum</code></strong> - Optional datum or ellipsoid (<a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>, \n          <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a> or <a \n          href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>) or <i>scalar</i> earth radius \n          (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> for the projection \n          (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.azimuthal.AzimuthalError-class.html\">AzimuthalError</a></strong></code> - Invalid <b><code>lat0</code></b> or <b><code>lon0</code></b> or \n        (spherical) <b><code>datum</code></b>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>datum</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"reset\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">reset</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lat0</span>,\n        <span class=\"sig-arg\">lon0</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Set or reset the center point of this azimuthal projection.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat0</code></strong> - Center point latitude (<code>degrees90</code>).</li>\n        <li><strong class=\"pname\"><code>lon0</code></strong> - Center point longitude (<code>degrees180</code>).</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.azimuthal.AzimuthalError-class.html\">AzimuthalError</a></strong></code> - Invalid <b><code>lat0</code></b> or <b><code>lon0</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toRepr\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toRepr</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">prec</span>=<span class=\"sig-default\">6</span>,\n        <span class=\"sig-arg\">**unused</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return a string representation of this projection.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>prec</code></strong> - Number of (decimal) digits, unstripped (<code>int</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>This projection as <code>&quot;&lt;classname&gt;(lat0, lon0, \n          ...)&quot;</code> (<code>str</code>).</dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.named._Named-class.html#toRepr\">named._Named.toRepr</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toStr\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toStr</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">prec</span>=<span class=\"sig-default\">6</span>,\n        <span class=\"sig-arg\">sep</span>=<span class=\"sig-default\">' '</span>,\n        <span class=\"sig-arg\">**unused</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return a string representation of this projection.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>prec</code></strong> - Number of (decimal) digits, unstripped (<code>int</code>).</li>\n        <li><strong class=\"pname\"><code>sep</code></strong> - Separator to join (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>This projection as <code>&quot;lat0 lon0&quot;</code> \n          (<code>str</code>).</dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.named._Named-class.html#toStr\">named._Named.toStr</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"datum\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">datum</h3>\n  <p>Get the datum (<a href=\"pygeodesy.datums.Datum-class.html\" \n  class=\"link\">Datum</a>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">datum(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the datum (<a href=\"pygeodesy.datums.Datum-class.html\" \nclass=\"link\">Datum</a>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"equatoradius\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">equatoradius</h3>\n  <p>Get the geodesic's equatorial radius, semi-axis \n  (<code>meter</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">equatoradius(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the geodesic's equatorial radius, semi-axis (<code>meter</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"a\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">a</h3>\n  <p>Get the geodesic's equatorial radius, semi-axis \n  (<code>meter</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">equatoradius(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the geodesic's equatorial radius, semi-axis (<code>meter</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"flattening\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">flattening</h3>\n  <p>Get the geodesic's flattening (<code>scalar</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">flattening(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the geodesic's flattening (<code>scalar</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"f\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">f</h3>\n  <p>Get the geodesic's flattening (<code>scalar</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">flattening(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the geodesic's flattening (<code>scalar</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"lat0\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">lat0</h3>\n  <p>Get the center latitude (<code>degrees90</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">lat0(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the center latitude (<code>degrees90</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"latlon0\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">latlon0</h3>\n  <p>Get the center lat- and longitude (<a \n  href=\"pygeodesy.namedTuples.LatLon2Tuple-class.html\" \n  class=\"link\">LatLon2Tuple</a><code>(lat, lon)</code>) in \n  (<code>degrees90</code>, <code>degrees180</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">latlon0(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the center lat- and longitude (<a \nhref=\"pygeodesy.namedTuples.LatLon2Tuple-class.html\" \nclass=\"link\">LatLon2Tuple</a><code>(lat, lon)</code>) in \n(<code>degrees90</code>, <code>degrees180</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">latlon0(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">latlon0</span>)</span>\n        - Set the center lat- and longitude (<code>LatLon</code>, <a \nhref=\"pygeodesy.namedTuples.LatLon2Tuple-class.html\" \nclass=\"link\">LatLon2Tuple</a> or <a \nhref=\"pygeodesy.namedTuples.LatLon4Tuple-class.html\" \nclass=\"link\">LatLon4Tuple</a>).\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"lon0\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">lon0</h3>\n  <p>Get the center longitude (<code>degrees180</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">lon0(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the center longitude (<code>degrees180</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"majoradius\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">majoradius</h3>\n  <p>DEPRECATED, use property <code>equatoradius</code>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">majoradius(<span class=\"summary-sig-arg\">self</span>)</span>\n        - DEPRECATED, use property <code>equatoradius</code>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"radius\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">radius</h3>\n  <p>Get this projection's mean radius of curvature \n  (<code>meter</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">radius(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get this projection's mean radius of curvature (<code>meter</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.azimuthal._AzimuthalGeodesic-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.azimuthal._AzimuthalGeodesic</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.azimuthal-module.html\">Module&nbsp;azimuthal</a> ::\n        Class&nbsp;_AzimuthalGeodesic\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.azimuthal._AzimuthalGeodesic-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class _AzimuthalGeodesic</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+            \n           |            \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+        \n               |        \n<a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+    \n                   |    \n      <a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html\">_AzimuthalBase</a> --+\n                       |\n                      <strong class=\"uidshort\">_AzimuthalGeodesic</strong>\n</pre>\n\n<dl><dt>Known Subclasses:</dt>\n<dd>\n      <ul class=\"subclass-list\">\n<li><a href=\"pygeodesy.azimuthal._EquidistantBase-class.html\">_EquidistantBase</a></li><li>, <a href=\"pygeodesy.azimuthal._GnomonicBase-class.html\">_GnomonicBase</a></li>  </ul>\n</dd></dl>\n\n<hr />\n<p>(INTERNAL) Base class for azimuthal projections using the \n  <i>wrapped</i> <a \n  href=\"https://GeographicLib.SourceForge.io/Python/doc/code.html\" \n  target=\"_top\">geodesic.Geodesic and geodesicline.GeodesicLine</a> or the \n  <i>exact</i> geodesic classes <a \n  href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html\" \n  class=\"link\">GeodesicExact</a> and <a \n  href=\"pygeodesy.geodesicx.gx.GeodesicLineExact-class.html\" \n  class=\"link\">GeodesicLineExact</a>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html\">_AzimuthalBase</a></code></b>:\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#__init__\">__init__</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#forward\">forward</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#reset\">reset</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#reverse\">reverse</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#toStr\">toStr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#others\">others</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.azimuthal._AzimuthalGeodesic-class.html#geodesic\" class=\"summary-name\">geodesic</a><br />\n      <i>Must be overloaded</i>.\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html\">_AzimuthalBase</a></code></b>:\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#a\">a</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#datum\">datum</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#equatoradius\">equatoradius</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#f\">f</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#flattening\">flattening</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#lat0\">lat0</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#latlon0\">latlon0</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#lon0\">lon0</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#majoradius\">majoradius</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#radius\">radius</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"geodesic\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">geodesic</h3>\n  <p><i>Must be overloaded</i>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">geodesic(<span class=\"summary-sig-arg\">self</span>)</span>\n        - <i>Must be overloaded</i>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.azimuthal._EquidistantBase-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.azimuthal._EquidistantBase</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.azimuthal-module.html\">Module&nbsp;azimuthal</a> ::\n        Class&nbsp;_EquidistantBase\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.azimuthal._EquidistantBase-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class _EquidistantBase</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+                \n           |                \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+            \n               |            \n<a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+        \n                   |        \n      <a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html\">_AzimuthalBase</a> --+    \n                       |    \n      <a href=\"pygeodesy.azimuthal._AzimuthalGeodesic-class.html\">_AzimuthalGeodesic</a> --+\n                           |\n                          <strong class=\"uidshort\">_EquidistantBase</strong>\n</pre>\n\n<dl><dt>Known Subclasses:</dt>\n<dd>\n      <ul class=\"subclass-list\">\n<li><a href=\"pygeodesy.azimuthal.EquidistantExact-class.html\">EquidistantExact</a></li><li>, <a href=\"pygeodesy.azimuthal.EquidistantGeodSolve-class.html\">EquidistantGeodSolve</a></li><li>, <a href=\"pygeodesy.azimuthal.EquidistantKarney-class.html\">EquidistantKarney</a></li>  </ul>\n</dd></dl>\n\n<hr />\n<p>(INTERNAL) Base for classes <a \n  href=\"pygeodesy.azimuthal.EquidistantExact-class.html\" \n  class=\"link\">EquidistantExact</a>, <a \n  href=\"pygeodesy.azimuthal.EquidistantGeodSolve-class.html\" \n  class=\"link\">EquidistantGeodSolve</a> and <a \n  href=\"pygeodesy.azimuthal.EquidistantKarney-class.html\" \n  class=\"link\">EquidistantKarney</a>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.azimuthal._EquidistantBase-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lat0</span>,\n        <span class=\"summary-sig-arg\">lon0</span>,\n        <span class=\"summary-sig-arg\">datum</span>=<span class=\"summary-sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      New azimuthal <a \n      href=\"pygeodesy.azimuthal.EquidistantExact-class.html\" \n      class=\"link\">EquidistantExact</a>, <a \n      href=\"pygeodesy.azimuthal.EquidistantGeodSolve-class.html\" \n      class=\"link\">EquidistantGeodSolve</a> or <a \n      href=\"pygeodesy.azimuthal.EquidistantKarney-class.html\" \n      class=\"link\">EquidistantKarney</a> projection.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.azimuthal._EquidistantBase-class.html#forward\" class=\"summary-sig-name\">forward</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lat</span>,\n        <span class=\"summary-sig-arg\">lon</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Convert an (ellipsoidal) geodetic location to azimuthal equidistant \n      east- and northing.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.azimuthal._EquidistantBase-class.html#reverse\" class=\"summary-sig-name\">reverse</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">x</span>,\n        <span class=\"summary-sig-arg\">y</span>,\n        <span class=\"summary-sig-arg\">LatLon</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**name_LatLon_kwds</span>)</span><br />\n      Convert an azimuthal equidistant location to (ellipsoidal) geodetic \n      lat- and longitude.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html\">_AzimuthalBase</a></code></b>:\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#reset\">reset</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#toStr\">toStr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#others\">others</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.azimuthal._AzimuthalGeodesic-class.html\">_AzimuthalGeodesic</a></code></b>:\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalGeodesic-class.html#geodesic\">geodesic</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html\">_AzimuthalBase</a></code></b>:\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#a\">a</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#datum\">datum</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#equatoradius\">equatoradius</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#f\">f</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#flattening\">flattening</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#lat0\">lat0</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#latlon0\">latlon0</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#lon0\">lon0</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#majoradius\">majoradius</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#radius\">radius</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lat0</span>,\n        <span class=\"sig-arg\">lon0</span>,\n        <span class=\"sig-arg\">datum</span>=<span class=\"sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New azimuthal <a \n  href=\"pygeodesy.azimuthal.EquidistantExact-class.html\" \n  class=\"link\">EquidistantExact</a>, <a \n  href=\"pygeodesy.azimuthal.EquidistantGeodSolve-class.html\" \n  class=\"link\">EquidistantGeodSolve</a> or <a \n  href=\"pygeodesy.azimuthal.EquidistantKarney-class.html\" \n  class=\"link\">EquidistantKarney</a> projection.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat0</code></strong> - Latitude of the center point (<code>degrees90</code>).</li>\n        <li><strong class=\"pname\"><code>lon0</code></strong> - Longitude of the center point (<code>degrees180</code>).</li>\n        <li><strong class=\"pname\"><code>datum</code></strong> - Optional datum or ellipsoid (<a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>, \n          <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a> or <a \n          href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>) or <i>scalar</i> earth radius \n          (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> for the projection \n          (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.azimuthal.AzimuthalError-class.html\">AzimuthalError</a></strong></code> - Invalid <b><code>lat0</code></b> or <b><code>lon0</code></b> or \n        (spherical) <b><code>datum</code></b>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>datum</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"forward\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">forward</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lat</span>,\n        <span class=\"sig-arg\">lon</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert an (ellipsoidal) geodetic location to azimuthal equidistant \n  east- and northing.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat</code></strong> - Latitude of the location (<code>degrees90</code>).</li>\n        <li><strong class=\"pname\"><code>lon</code></strong> - Longitude of the location (<code>degrees180</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> for the location \n          (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>An <a href=\"pygeodesy.azimuthal.Azimuthal7Tuple-class.html\" \n          class=\"link\">Azimuthal7Tuple</a><code>(x, y, lat, lon, azimuth, \n          scale, datum)</code> with easting <code>x</code> and northing \n          <code>y</code> of point in <code>meter</code> and \n          <code>lat</code> and <code>lon</code> in <code>degrees</code> and\n          <code>azimuth</code> clockwise from true North. The \n          <code>scale</code> of the projection is <code>1</code> in \n          <i>radial</i> direction and is <code>1 / reciprocal</code> in the\n          direction perpendicular to this.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.azimuthal.AzimuthalError-class.html\">AzimuthalError</a></strong></code> - Invalid <b><code>lat</code></b> or <b><code>lon</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#forward\">_AzimuthalBase.forward</a>\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        A call to <code>.forward</code> followed by a call to \n        <code>.reverse</code> will return the original <code>lat, \n        lon</code> to within roundoff.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"reverse\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">reverse</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">x</span>,\n        <span class=\"sig-arg\">y</span>,\n        <span class=\"sig-arg\">LatLon</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**name_LatLon_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert an azimuthal equidistant location to (ellipsoidal) geodetic \n  lat- and longitude.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>x</code></strong> - Easting of the location (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>y</code></strong> - Northing of the location (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>LatLon</code></strong> - Class to use (<code>LatLon</code>) or <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>name_LatLon_kwds</code></strong> - Optional <code><b>name</b>=NN</code> and optionally, additional \n          <b><code>LatLon</code></b> keyword arguments, ignored if \n          <code><b>LatLon</b> is None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The geodetic (<code>LatLon</code>) or if <code><b>LatLon</b> is \n          None</code> an <a \n          href=\"pygeodesy.azimuthal.Azimuthal7Tuple-class.html\" \n          class=\"link\">Azimuthal7Tuple</a><code>(x, y, lat, lon, azimuth, \n          scale, datum)</code>.</dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#reverse\">_AzimuthalBase.reverse</a>\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        The <code>lat</code> will be in the range <code>[-90..90] \n        degrees</code> and <code>lon</code> in the range <code>[-180..180] \n        degrees</code>.  The scale of the projection is <code>1</code> in \n        <i>radial</i> direction, <code>azimuth</code> clockwise from true \n        North and is <code>1 / reciprocal</code> in the direction \n        perpendicular to this.\n      </p>\n</div></td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.azimuthal._GnomonicBase-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.azimuthal._GnomonicBase</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.azimuthal-module.html\">Module&nbsp;azimuthal</a> ::\n        Class&nbsp;_GnomonicBase\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.azimuthal._GnomonicBase-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class _GnomonicBase</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+                \n           |                \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+            \n               |            \n<a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+        \n                   |        \n      <a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html\">_AzimuthalBase</a> --+    \n                       |    \n      <a href=\"pygeodesy.azimuthal._AzimuthalGeodesic-class.html\">_AzimuthalGeodesic</a> --+\n                           |\n                          <strong class=\"uidshort\">_GnomonicBase</strong>\n</pre>\n\n<dl><dt>Known Subclasses:</dt>\n<dd>\n      <ul class=\"subclass-list\">\n<li><a href=\"pygeodesy.azimuthal.GnomonicExact-class.html\">GnomonicExact</a></li><li>, <a href=\"pygeodesy.azimuthal.GnomonicGeodSolve-class.html\">GnomonicGeodSolve</a></li><li>, <a href=\"pygeodesy.azimuthal.GnomonicKarney-class.html\">GnomonicKarney</a></li>  </ul>\n</dd></dl>\n\n<hr />\n<p>(INTERNAL) Base for classes <a \n  href=\"pygeodesy.azimuthal.GnomonicExact-class.html\" \n  class=\"link\">GnomonicExact</a>, <a \n  href=\"pygeodesy.azimuthal.GnomonicGeodSolve-class.html\" \n  class=\"link\">GnomonicGeodSolve</a> and <a \n  href=\"pygeodesy.azimuthal.GnomonicKarney-class.html\" \n  class=\"link\">GnomonicKarney</a>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.azimuthal._GnomonicBase-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lat0</span>,\n        <span class=\"summary-sig-arg\">lon0</span>,\n        <span class=\"summary-sig-arg\">datum</span>=<span class=\"summary-sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      New azimuthal <a href=\"pygeodesy.azimuthal.GnomonicExact-class.html\" \n      class=\"link\">GnomonicExact</a> or <a \n      href=\"pygeodesy.azimuthal.GnomonicKarney-class.html\" \n      class=\"link\">GnomonicKarney</a> projection.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.azimuthal._GnomonicBase-class.html#forward\" class=\"summary-sig-name\">forward</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lat</span>,\n        <span class=\"summary-sig-arg\">lon</span>,\n        <span class=\"summary-sig-arg\">raiser</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Convert an (ellipsoidal) geodetic location to azimuthal gnomonic \n      east- and northing.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.azimuthal._GnomonicBase-class.html#reverse\" class=\"summary-sig-name\">reverse</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">x</span>,\n        <span class=\"summary-sig-arg\">y</span>,\n        <span class=\"summary-sig-arg\">LatLon</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**name_LatLon_kwds</span>)</span><br />\n      Convert an azimuthal gnomonic location to (ellipsoidal) geodetic lat-\n      and longitude.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html\">_AzimuthalBase</a></code></b>:\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#reset\">reset</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#toStr\">toStr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#others\">others</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.azimuthal._AzimuthalGeodesic-class.html\">_AzimuthalGeodesic</a></code></b>:\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalGeodesic-class.html#geodesic\">geodesic</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html\">_AzimuthalBase</a></code></b>:\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#a\">a</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#datum\">datum</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#equatoradius\">equatoradius</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#f\">f</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#flattening\">flattening</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#lat0\">lat0</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#latlon0\">latlon0</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#lon0\">lon0</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#majoradius\">majoradius</a></code>,\n      <code><a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#radius\">radius</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lat0</span>,\n        <span class=\"sig-arg\">lon0</span>,\n        <span class=\"sig-arg\">datum</span>=<span class=\"sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New azimuthal <a href=\"pygeodesy.azimuthal.GnomonicExact-class.html\" \n  class=\"link\">GnomonicExact</a> or <a \n  href=\"pygeodesy.azimuthal.GnomonicKarney-class.html\" \n  class=\"link\">GnomonicKarney</a> projection.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat0</code></strong> - Latitude of the center point (<code>degrees90</code>).</li>\n        <li><strong class=\"pname\"><code>lon0</code></strong> - Longitude of the center point (<code>degrees180</code>).</li>\n        <li><strong class=\"pname\"><code>datum</code></strong> - Optional datum or ellipsoid (<a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>, \n          <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a> or <a \n          href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>) or <i>scalar</i> earth radius \n          (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> for the projection \n          (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.azimuthal.AzimuthalError-class.html\">AzimuthalError</a></strong></code> - Invalid <b><code>lat0</code></b> or <b><code>lon0</code></b> or \n        (spherical) <b><code>datum</code></b>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>datum</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"forward\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">forward</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lat</span>,\n        <span class=\"sig-arg\">lon</span>,\n        <span class=\"sig-arg\">raiser</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert an (ellipsoidal) geodetic location to azimuthal gnomonic east-\n  and northing.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat</code></strong> - Latitude of the location (<code>degrees90</code>).</li>\n        <li><strong class=\"pname\"><code>lon</code></strong> - Longitude of the location (<code>degrees180</code>).</li>\n        <li><strong class=\"pname\"><code>raiser</code></strong> - If <code>False</code>, do not throw an error if the location lies\n          over the horizon (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> for the location \n          (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>An <a href=\"pygeodesy.azimuthal.Azimuthal7Tuple-class.html\" \n          class=\"link\">Azimuthal7Tuple</a><code>(x, y, lat, lon, azimuth, \n          scale, datum)</code> with easting <code>x</code> and northing \n          <code>y</code> in <code>meter</code> and <code>lat</code> and \n          <code>lon</code> in <code>degrees</code> and <code>azimuth</code>\n          clockwise from true North. The <code>scale</code> of the \n          projection is <code>1 / reciprocal**2</code> in <i>radial</i> \n          direction and <code>1 / reciprocal</code> in the direction \n          perpendicular to this.  Both <code>x</code> and <code>y</code> \n          will be <code>NAN</code> if the (geodetic) location lies over the\n          horizon and <code><b>raiser</b>=False</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.azimuthal.AzimuthalError-class.html\">AzimuthalError</a></strong></code> - Invalid <b><code>lat</code></b>, <b><code>lon</code></b> or the \n        location lies over the horizon and <code><b>raiser</b>=True</code>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#forward\">_AzimuthalBase.forward</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"reverse\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">reverse</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">x</span>,\n        <span class=\"sig-arg\">y</span>,\n        <span class=\"sig-arg\">LatLon</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**name_LatLon_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert an azimuthal gnomonic location to (ellipsoidal) geodetic lat- \n  and longitude.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>x</code></strong> - Easting of the location (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>y</code></strong> - Northing of the location (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>LatLon</code></strong> - Class to use (<code>LatLon</code>) or <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>name_LatLon_kwds</code></strong> - Optional <code><b>name</b>=NN</code> for the location and \n          optionally, additional <b><code>LatLon</code></b> keyword \n          arguments, ignored if <code><b>LatLon</b> is None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The geodetic (<code>LatLon</code>) or if <code><b>LatLon</b> is \n          None</code> an <a \n          href=\"pygeodesy.azimuthal.Azimuthal7Tuple-class.html\" \n          class=\"link\">Azimuthal7Tuple</a><code>(x, y, lat, lon, azimuth, \n          scale, datum)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.azimuthal.AzimuthalError-class.html\">AzimuthalError</a></strong></code> - No convergence.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html#reverse\">_AzimuthalBase.reverse</a>\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        The <code>lat</code> will be in the range <code>[-90..90] \n        degrees</code> and <code>lon</code> in the range <code>[-180..180] \n        degrees</code>.  The <code>azimuth</code> is clockwise from true \n        North.  The scale is <code>1 / reciprocal**2</code> in \n        <code>radial</code> direction and <code>1 / reciprocal</code> in \n        the direction perpendicular to this.\n      </p>\n</div></td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.basics-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.basics</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        Module&nbsp;basics\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.basics-module.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== MODULE DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Module basics</h1><p class=\"nomargin-top\"></p>\n<p>Some, basic definitions, functions and dependencies.</p>\n  <p>Use env variable <code>PYGEODESY_XPACKAGES</code> to avoid import of \n  dependencies <code>geographiclib</code>, <code>numpy</code> and/or \n  <code>scipy</code>.  Set <code>PYGEODESY_XPACKAGES</code> to a \n  comma-separated list of package names to be excluded from import.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Version:</strong>\n        26.02.22\n      </p>\n</div><!-- ==================== FUNCTIONS ==================== -->\n<a name=\"section-Functions\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Functions</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"str2ub\"></a><span class=\"summary-sig-name\">str2ub</span>(<span class=\"summary-sig-arg\">arg</span>)</span><br />\n      (INTERNAL) Helper, no-op.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"ub2str\"></a><span class=\"summary-sig-name\">ub2str</span>(<span class=\"summary-sig-arg\">arg</span>)</span><br />\n      (INTERNAL) Helper, no-op.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.basics-module.html#clips\" class=\"summary-sig-name\">clips</a>(<span class=\"summary-sig-arg\">sb</span>,\n        <span class=\"summary-sig-arg\">limit</span>=<span class=\"summary-sig-default\">50</span>,\n        <span class=\"summary-sig-arg\">white</span>=<span class=\"summary-sig-default\">''</span>,\n        <span class=\"summary-sig-arg\">length</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Clip a string to the given length limit.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.basics-module.html#copysign0\" class=\"summary-sig-name\">copysign0</a>(<span class=\"summary-sig-arg\">x</span>,\n        <span class=\"summary-sig-arg\">y</span>)</span><br />\n      Like <code>math.copysign(x, y)</code> except <code>zero</code>, \n      <i>unsigned</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.basics-module.html#copytype\" class=\"summary-sig-name\">copytype</a>(<span class=\"summary-sig-arg\">x</span>,\n        <span class=\"summary-sig-arg\">y</span>)</span><br />\n      Return the value of <b>x</b> as <code>type</code> of <code>y</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.basics-module.html#halfs2\" class=\"summary-sig-name\">halfs2</a>(<span class=\"summary-sig-arg\">str2</span>)</span><br />\n      Split a string in 2 halfs.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.basics-module.html#int1s\" class=\"summary-sig-name\">int1s</a>(<span class=\"summary-sig-arg\">x</span>)</span><br />\n      Count the number of 1-bits in an <code>int</code>, <i>unsigned</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.basics-module.html#isbool\" class=\"summary-sig-name\">isbool</a>(<span class=\"summary-sig-arg\">obj</span>)</span><br />\n      Is <b><code>obj</code></b>ect a <code>bool</code>ean?</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.basics-module.html#isCartesian\" class=\"summary-sig-name\">isCartesian</a>(<span class=\"summary-sig-arg\">obj</span>,\n        <span class=\"summary-sig-arg\">ellipsoidal</span>=<span class=\"summary-sig-default\">None</span>)</span><br />\n      Is <b><code>obj</code></b>ect some <code>Cartesian</code>?</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"isclass\"></a><span class=\"summary-sig-name\">isclass</span>(<span class=\"summary-sig-arg\">obj</span>)</span><br />\n      Is <b><code>obj</code></b>ect a <code>Class</code> or \n      <code>type</code>?</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.basics-module.html#iscomplex\" class=\"summary-sig-name\">iscomplex</a>(<span class=\"summary-sig-arg\">obj</span>,\n        <span class=\"summary-sig-arg\">both</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Is <b><code>obj</code></b>ect a <code>complex</code> or complex \n      literal <code>str</code>?</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.basics-module.html#isDEPRECATED\" class=\"summary-sig-name\">isDEPRECATED</a>(<span class=\"summary-sig-arg\">obj</span>,\n        <span class=\"summary-sig-arg\">outer</span>=<span class=\"summary-sig-default\">1</span>)</span><br />\n      Is <b><code>obj</code></b>ect or its outer <code>type</code> a \n      <code>DEPRECATED</code> class, constant, method or function?</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.basics-module.html#isfloat\" class=\"summary-sig-name\">isfloat</a>(<span class=\"summary-sig-arg\">obj</span>,\n        <span class=\"summary-sig-arg\">both</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Is <b><code>obj</code></b>ect a <code>float</code> or float literal \n      <code>str</code>?</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"isidentifier\"></a><span class=\"summary-sig-name\">isidentifier</span>(<span class=\"summary-sig-arg\">obj</span>)</span><br />\n      Is <b><code>obj</code></b>ect a Python identifier?</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.basics-module.html#isinstanceof\" class=\"summary-sig-name\">isinstanceof</a>(<span class=\"summary-sig-arg\">obj</span>,\n        <span class=\"summary-sig-arg\">*Classes</span>)</span><br />\n      Is <b><code>obj</code></b>ect an instance of one of the \n      <code>Classes</code>?</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.basics-module.html#isint\" class=\"summary-sig-name\">isint</a>(<span class=\"summary-sig-arg\">obj</span>,\n        <span class=\"summary-sig-arg\">both</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Is <b><code>obj</code></b>ect an <code>int</code> or integer \n      <code>float</code> value?</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.basics-module.html#isiterable\" class=\"summary-sig-name\">isiterable</a>(<span class=\"summary-sig-arg\">obj</span>,\n        <span class=\"summary-sig-arg\">strict</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Is <b><code>obj</code></b>ect <code>iterable</code>?</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.basics-module.html#isiterablen\" class=\"summary-sig-name\">isiterablen</a>(<span class=\"summary-sig-arg\">obj</span>,\n        <span class=\"summary-sig-arg\">strict</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Is <b><code>obj</code></b>ect <code>iterable</code> and has \n      <code>len</code>gth?</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.basics-module.html#isiterabletype\" class=\"summary-sig-name\">isiterabletype</a>(<span class=\"summary-sig-arg\">obj</span>,\n        <span class=\"summary-sig-arg\">method</span>=<span class=\"summary-sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">__iter__</code><code class=\"variable-quote\">'</code></span>)</span><br />\n      Is <b><code>obj</code></b>ect an instance of an <code>iterable</code>\n      class or type?</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"iskeyword\"></a><span class=\"summary-sig-name\">iskeyword</span>(<span class=\"summary-sig-arg\">x</span>,\n        <span class=\"summary-sig-arg\">y</span>)</span><br />\n      y in x.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.basics-module.html#isLatLon\" class=\"summary-sig-name\">isLatLon</a>(<span class=\"summary-sig-arg\">obj</span>,\n        <span class=\"summary-sig-arg\">ellipsoidal</span>=<span class=\"summary-sig-default\">None</span>)</span><br />\n      Is <b><code>obj</code></b>ect some <code>LatLon</code>?</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.basics-module.html#islistuple\" class=\"summary-sig-name\">islistuple</a>(<span class=\"summary-sig-arg\">obj</span>,\n        <span class=\"summary-sig-arg\">minum</span>=<span class=\"summary-sig-default\">0</span>)</span><br />\n      Is <b><code>obj</code></b>ect a <code>list</code> or \n      <code>tuple</code> with non-zero length?</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.basics-module.html#isNvector\" class=\"summary-sig-name\">isNvector</a>(<span class=\"summary-sig-arg\">obj</span>,\n        <span class=\"summary-sig-arg\">ellipsoidal</span>=<span class=\"summary-sig-default\">None</span>)</span><br />\n      Is <b><code>obj</code></b>ect some <code>Nvector</code>?</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.basics-module.html#isodd\" class=\"summary-sig-name\">isodd</a>(<span class=\"summary-sig-arg\">x</span>)</span><br />\n      Is <b><code>x</code></b> odd?</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.basics-module.html#isscalar\" class=\"summary-sig-name\">isscalar</a>(<span class=\"summary-sig-arg\">obj</span>,\n        <span class=\"summary-sig-arg\">both</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Is <b><code>obj</code></b>ect an <code>int</code> or integer \n      <code>float</code> value?</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.basics-module.html#issequence\" class=\"summary-sig-name\">issequence</a>(<span class=\"summary-sig-arg\">obj</span>,\n        <span class=\"summary-sig-arg\">*excls</span>)</span><br />\n      Is <b><code>obj</code></b>ect some sequence type?</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.basics-module.html#isstr\" class=\"summary-sig-name\">isstr</a>(<span class=\"summary-sig-arg\">obj</span>)</span><br />\n      Is <b><code>obj</code></b>ect some string type?</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.basics-module.html#issubclassof\" class=\"summary-sig-name\">issubclassof</a>(<span class=\"summary-sig-arg\">Sub</span>,\n        <span class=\"summary-sig-arg\">*Supers</span>)</span><br />\n      Is <b><code>Sub</code></b> a class and sub-class of some other \n      class(es)?</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.basics-module.html#itemsorted\" class=\"summary-sig-name\">itemsorted</a>(<span class=\"summary-sig-arg\">adict</span>,\n        <span class=\"summary-sig-arg\">*items_args</span>,\n        <span class=\"summary-sig-arg\">**asorted_reverse</span>)</span><br />\n      Return the items of <code><b>adict</b></code> sorted \n      <i>alphabetically, case-insensitively</i> and in <i>ascending</i> \n      order.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.basics-module.html#len2\" class=\"summary-sig-name\">len2</a>(<span class=\"summary-sig-arg\">items</span>)</span><br />\n      Make built-in function <code class=\"link\">len</code> work for \n      generators, iterators, etc.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.basics-module.html#map1\" class=\"summary-sig-name\">map1</a>(<span class=\"summary-sig-arg\">fun1</span>,\n        <span class=\"summary-sig-arg\">*xs</span>)</span><br />\n      Call a single-argument function to each <b><code>xs</code></b> and \n      return a <code>tuple</code> of results.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.basics-module.html#map2\" class=\"summary-sig-name\">map2</a>(<span class=\"summary-sig-arg\">fun</span>,\n        <span class=\"summary-sig-arg\">*xs</span>,\n        <span class=\"summary-sig-arg\">**strict</span>)</span><br />\n      Like Python's <b><code>map</code></b> but returning a \n      <code>tuple</code> of results.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"max2\"></a><span class=\"summary-sig-name\">max2</span>(<span class=\"summary-sig-arg\">*xs</span>)</span><br />\n      Return 2-tuple <code>(max(xs), xs.index(max(xs)))</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"min2\"></a><span class=\"summary-sig-name\">min2</span>(<span class=\"summary-sig-arg\">*xs</span>)</span><br />\n      Return 2-tuple <code>(min(xs), xs.index(min(xs)))</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.basics-module.html#neg\" class=\"summary-sig-name\">neg</a>(<span class=\"summary-sig-arg\">x</span>,\n        <span class=\"summary-sig-arg\">neg0</span>=<span class=\"summary-sig-default\">None</span>)</span><br />\n      Negate <code>x</code> and optionally, negate <code>0.0</code> and \n      <code>-0.0</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.basics-module.html#neg_\" class=\"summary-sig-name\">neg_</a>(<span class=\"summary-sig-arg\">*xs</span>)</span><br />\n      Negate all <code>xs</code> with <a \n      href=\"pygeodesy.basics-module.html#neg\" class=\"link\">neg</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.basics-module.html#signBit\" class=\"summary-sig-name\">signBit</a>(<span class=\"summary-sig-arg\">x</span>)</span><br />\n      Return <code>signbit(<b>x</b>)</code>, like C++, see also <a \n      href=\"pygeodesy.constants-module.html#isneg\" class=\"link\">isneg</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.basics-module.html#signOf\" class=\"summary-sig-name\">signOf</a>(<span class=\"summary-sig-arg\">x</span>)</span><br />\n      Return sign of <code>x</code> as <code>int</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.basics-module.html#splice\" class=\"summary-sig-name\">splice</a>(<span class=\"summary-sig-arg\">iterable</span>,\n        <span class=\"summary-sig-arg\">n</span>=<span class=\"summary-sig-default\">2</span>,\n        <span class=\"summary-sig-arg\">**fill</span>)</span><br />\n      Split an iterable into <code>n</code> slices.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.basics-module.html#unsigned0\" class=\"summary-sig-name\">unsigned0</a>(<span class=\"summary-sig-arg\">x</span>)</span><br />\n      Unsign if <code>0.0</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== VARIABLES ==================== -->\n<a name=\"section-Variables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Variables</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"__all__\"></a><span class=\"summary-name\">__all__</span> = <code title=\"_ALL_LAZY.basics\">_ALL_LAZY.basics</code>\n    </td>\n  </tr>\n</table>\n<!-- ==================== FUNCTION DETAILS ==================== -->\n<a name=\"section-FunctionDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Function Details</span></td>\n</tr>\n</table>\n<a name=\"clips\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">clips</span>&nbsp;(<span class=\"sig-arg\">sb</span>,\n        <span class=\"sig-arg\">limit</span>=<span class=\"sig-default\">50</span>,\n        <span class=\"sig-arg\">white</span>=<span class=\"sig-default\">''</span>,\n        <span class=\"sig-arg\">length</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Clip a string to the given length limit.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>sb</code></strong> - String (<code>str</code> or <code>bytes</code>).</li>\n        <li><strong class=\"pname\"><code>limit</code></strong> - Length limit (<code>int</code>).</li>\n        <li><strong class=\"pname\"><code>white</code></strong> - Optionally, replace all whitespace (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>length</code></strong> - If <code>True</code>, append the original <i>[length]</i> \n          (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The clipped or unclipped <b><code>sb</code></b>.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"copysign0\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">copysign0</span>&nbsp;(<span class=\"sig-arg\">x</span>,\n        <span class=\"sig-arg\">y</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Like <code>math.copysign(x, y)</code> except <code>zero</code>, \n  <i>unsigned</i>.</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd><code>math.copysign(<b>x</b>, <b>y</b>)</code> if \n          <b><code>x</code></b> else <code>type(<b>x</b>)(0)</code>.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"copytype\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">copytype</span>&nbsp;(<span class=\"sig-arg\">x</span>,\n        <span class=\"sig-arg\">y</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the value of <b>x</b> as <code>type</code> of \n  <code>y</code>.</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd><code>type(<b>y</b>)(<b>x</b>)</code>.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"halfs2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">halfs2</span>&nbsp;(<span class=\"sig-arg\">str2</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Split a string in 2 halfs.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>str2</code></strong> - String to split (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>2-Tuple <code>(_1st, _2nd)</code> half (<code>str</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ValueError</strong></code> - Zero or odd <code>len(<b>str2</b>)</code>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"int1s\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">int1s</span>&nbsp;(<span class=\"sig-arg\">x</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Count the number of 1-bits in an <code>int</code>, \n  <i>unsigned</i>.</p>\n  <dl class=\"fields\">\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        <code>int1s(-<b>x</b>) == int1s(abs(<b>x</b>))</code>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"isbool\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">isbool</span>&nbsp;(<span class=\"sig-arg\">obj</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Is <b><code>obj</code></b>ect a <code>bool</code>ean?</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>obj</code></strong> - The object (any <code>type</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>True</code> if <code>bool</code>ean, <code>False</code> \n          otherwise.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"isCartesian\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">isCartesian</span>&nbsp;(<span class=\"sig-arg\">obj</span>,\n        <span class=\"sig-arg\">ellipsoidal</span>=<span class=\"sig-default\">None</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Is <b><code>obj</code></b>ect some <code>Cartesian</code>?</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>obj</code></strong> - The object (any <code>type</code>).</li>\n        <li><strong class=\"pname\"><code>ellipsoidal</code></strong> - If <code>None</code>, return the type of any \n          <code>Cartesian</code>, if <code>True</code>, only an ellipsoidal\n          <code>Cartesian type</code> or if <code>False</code>, only a \n          spherical <code>Cartesian type</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>type(<b>obj</b></code> if a <code>Cartesian</code> of the \n          required type, <code>False</code> if a <code>Cartesian</code> of \n          an other type or {None} otherwise.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"iscomplex\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">iscomplex</span>&nbsp;(<span class=\"sig-arg\">obj</span>,\n        <span class=\"sig-arg\">both</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Is <b><code>obj</code></b>ect a <code>complex</code> or complex \n  literal <code>str</code>?</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>obj</code></strong> - The object (any <code>type</code>).</li>\n        <li><strong class=\"pname\"><code>both</code></strong> - If <code>True</code>, check complex <code>str</code> \n          (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>True</code> if <code>complex</code>, <code>False</code> \n          otherwise.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"isDEPRECATED\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">isDEPRECATED</span>&nbsp;(<span class=\"sig-arg\">obj</span>,\n        <span class=\"sig-arg\">outer</span>=<span class=\"sig-default\">1</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Is <b><code>obj</code></b>ect or its outer <code>type</code> a \n  <code>DEPRECATED</code> class, constant, method or function?</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd><code>True</code> if <code>DEPRECATED</code>, {False} if not or \n          <code>None</code> if undetermined.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"isfloat\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">isfloat</span>&nbsp;(<span class=\"sig-arg\">obj</span>,\n        <span class=\"sig-arg\">both</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Is <b><code>obj</code></b>ect a <code>float</code> or float literal \n  <code>str</code>?</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>obj</code></strong> - The object (any <code>type</code>).</li>\n        <li><strong class=\"pname\"><code>both</code></strong> - If <code>True</code>, check float <code>str</code> \n          (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>True</code> if <code>float</code>, <code>False</code> \n          otherwise.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"isinstanceof\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">isinstanceof</span>&nbsp;(<span class=\"sig-arg\">obj</span>,\n        <span class=\"sig-arg\">*Classes</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Is <b><code>obj</code></b>ect an instance of one of the \n  <code>Classes</code>?</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>obj</code></strong> - The object (any <code>type</code>).</li>\n        <li><strong class=\"pname\"><code>Classes</code></strong> - One or more classes (<code>Class</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>type(<b>obj</b></code> if one of the \n          <b><code>Classes</code></b>, <code>None</code> otherwise.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"isint\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">isint</span>&nbsp;(<span class=\"sig-arg\">obj</span>,\n        <span class=\"sig-arg\">both</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Is <b><code>obj</code></b>ect an <code>int</code> or integer \n  <code>float</code> value?</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>obj</code></strong> - The object (any <code>type</code>).</li>\n        <li><strong class=\"pname\"><code>both</code></strong> - If <code>True</code>, check <code>float</code> and <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> type\n          and value (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>True</code> if <code>int</code> or <i>integer</i> \n          <code>float</code> or <a href=\"pygeodesy.fsums.Fsum-class.html\" \n          class=\"link\">Fsum</a>, <code>False</code> otherwise.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        Both <code>isint(True)</code> and <code>isint(False)</code> return \n        <code>False</code> (and no longer <code>True</code>).\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"isiterable\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">isiterable</span>&nbsp;(<span class=\"sig-arg\">obj</span>,\n        <span class=\"sig-arg\">strict</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Is <b><code>obj</code></b>ect <code>iterable</code>?</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>obj</code></strong> - The object (any <code>type</code>).</li>\n        <li><strong class=\"pname\"><code>strict</code></strong> - If <code>True</code>, check class attributes (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>True</code> if <code>iterable</code>, <code>False</code> \n          otherwise.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"isiterablen\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">isiterablen</span>&nbsp;(<span class=\"sig-arg\">obj</span>,\n        <span class=\"sig-arg\">strict</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Is <b><code>obj</code></b>ect <code>iterable</code> and has \n  <code>len</code>gth?</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>obj</code></strong> - The object (any <code>type</code>).</li>\n        <li><strong class=\"pname\"><code>strict</code></strong> - If <code>True</code>, check class attributes (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>True</code> if <code>iterable</code> with \n          <code>len</code>gth, <code>False</code> otherwise.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"isiterabletype\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">isiterabletype</span>&nbsp;(<span class=\"sig-arg\">obj</span>,\n        <span class=\"sig-arg\">method</span>=<span class=\"sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">__iter__</code><code class=\"variable-quote\">'</code></span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Is <b><code>obj</code></b>ect an instance of an <code>iterable</code> \n  class or type?</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>obj</code></strong> - The object (any <code>type</code>).</li>\n        <li><strong class=\"pname\"><code>method</code></strong> - The name of the required method (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The <code>base-class</code> if <code>iterable</code>, \n          <code>None</code> otherwise.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"isLatLon\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">isLatLon</span>&nbsp;(<span class=\"sig-arg\">obj</span>,\n        <span class=\"sig-arg\">ellipsoidal</span>=<span class=\"sig-default\">None</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Is <b><code>obj</code></b>ect some <code>LatLon</code>?</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>obj</code></strong> - The object (any <code>type</code>).</li>\n        <li><strong class=\"pname\"><code>ellipsoidal</code></strong> - If <code>None</code>, return the type of any <code>LatLon</code>,\n          if <code>True</code>, only an ellipsoidal <code>LatLon \n          type</code> or if <code>False</code>, only a spherical \n          <code>LatLon type</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>type(<b>obj</b></code> if a <code>LatLon</code> of the \n          required type, <code>False</code> if a <code>LatLon</code> of an \n          other type or {None} otherwise.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"islistuple\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">islistuple</span>&nbsp;(<span class=\"sig-arg\">obj</span>,\n        <span class=\"sig-arg\">minum</span>=<span class=\"sig-default\">0</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Is <b><code>obj</code></b>ect a <code>list</code> or \n  <code>tuple</code> with non-zero length?</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>obj</code></strong> - The object (any <code>type</code>).</li>\n        <li><strong class=\"pname\"><code>minum</code></strong> - Minimal <code>len</code> required C({int}).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>True</code> if a <code>list</code> or <code>tuple</code> \n          with <code>len</code> at least <b><code>minum</code></b>, \n          <code>False</code> otherwise.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"isNvector\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">isNvector</span>&nbsp;(<span class=\"sig-arg\">obj</span>,\n        <span class=\"sig-arg\">ellipsoidal</span>=<span class=\"sig-default\">None</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Is <b><code>obj</code></b>ect some <code>Nvector</code>?</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>obj</code></strong> - The object (any <code>type</code>).</li>\n        <li><strong class=\"pname\"><code>ellipsoidal</code></strong> - If <code>None</code>, return the type of any \n          <code>Nvector</code>, if <code>True</code>, only an ellipsoidal \n          <code>Nvector type</code> or if <code>False</code>, only a \n          spherical <code>Nvector type</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>type(<b>obj</b></code> if an <code>Nvector</code> of the \n          required type, <code>False</code> if an <code>Nvector</code> of \n          an other type or {None} otherwise.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"isodd\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">isodd</span>&nbsp;(<span class=\"sig-arg\">x</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Is <b><code>x</code></b> odd?</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>x</code></strong> - Value (<code>scalar</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>True</code> if odd, <code>False</code> otherwise.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"isscalar\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">isscalar</span>&nbsp;(<span class=\"sig-arg\">obj</span>,\n        <span class=\"sig-arg\">both</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Is <b><code>obj</code></b>ect an <code>int</code> or integer \n  <code>float</code> value?</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>obj</code></strong> - The object (any <code>type</code>).</li>\n        <li><strong class=\"pname\"><code>both</code></strong> - If <code>True</code>, check <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> and \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a> residuals.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>True</code> if <code>int</code>, <code>float</code> or \n          <code>Fsum/-2Tuple</code> with zero residual, <code>False</code> \n          otherwise.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"issequence\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">issequence</span>&nbsp;(<span class=\"sig-arg\">obj</span>,\n        <span class=\"sig-arg\">*excls</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Is <b><code>obj</code></b>ect some sequence type?</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>obj</code></strong> - The object (any <code>type</code>).</li>\n        <li><strong class=\"pname\"><code>excls</code></strong> - Classes to exclude (<code>type</code>), all positional.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>True</code> if a sequence, <code>False</code> otherwise.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        Excluding <code>tuple</code> implies excluding \n        <code>namedtuple</code>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"isstr\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">isstr</span>&nbsp;(<span class=\"sig-arg\">obj</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Is <b><code>obj</code></b>ect some string type?</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>obj</code></strong> - The object (any <code>type</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>True</code> if a <code>str</code>, <code>bytes</code>, ...,\n          <code>False</code> otherwise.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"issubclassof\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">issubclassof</span>&nbsp;(<span class=\"sig-arg\">Sub</span>,\n        <span class=\"sig-arg\">*Supers</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Is <b><code>Sub</code></b> a class and sub-class of some other \n  class(es)?</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>Sub</code></strong> - The sub-class (<code>Class</code>).</li>\n        <li><strong class=\"pname\"><code>Supers</code></strong> - One or more C(super) classes (<code>Class</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>True</code> if a sub-class of any \n          <b><code>Supers</code></b>, <code>False</code> if not \n          (<code>bool</code>) or <code>None</code> if not a class or if no \n          <b><code>Supers</code></b> are given or none of those are a \n          class.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"itemsorted\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">itemsorted</span>&nbsp;(<span class=\"sig-arg\">adict</span>,\n        <span class=\"sig-arg\">*items_args</span>,\n        <span class=\"sig-arg\">**asorted_reverse</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the items of <code><b>adict</b></code> sorted \n  <i>alphabetically, case-insensitively</i> and in <i>ascending</i> \n  order.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>items_args</code></strong> - Optional positional argument(s) for method \n          <code><b>adict</b>.items(B*{items_args})</code>.</li>\n        <li><strong class=\"pname\"><code>asorted_reverse</code></strong> - Use <code><b>asorted</b>=False</code> for <i>alphabetical, \n          case-sensitive</i> sorting and <code><b>reverse</b>=True</code> \n          for sorting in <code>descending</code> order.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"len2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">len2</span>&nbsp;(<span class=\"sig-arg\">items</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Make built-in function <code class=\"link\">len</code> work for \n  generators, iterators, etc. since those can only be started exactly \n  once.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>items</code></strong> - Generator, iterator, list, range, tuple, etc.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>2-Tuple <code>(n, items)</code> of the number of items \n          (<code>int</code>) and the items (<code>list</code> or \n          <code>tuple</code>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"map1\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">map1</span>&nbsp;(<span class=\"sig-arg\">fun1</span>,\n        <span class=\"sig-arg\">*xs</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Call a single-argument function to each <b><code>xs</code></b> and \n  return a <code>tuple</code> of results.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>fun1</code></strong> - 1-Arg function (<code>callable</code>).</li>\n        <li><strong class=\"pname\"><code>xs</code></strong> - Arguments (<code>any positional</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Function results (<code>tuple</code>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"map2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">map2</span>&nbsp;(<span class=\"sig-arg\">fun</span>,\n        <span class=\"sig-arg\">*xs</span>,\n        <span class=\"sig-arg\">**strict</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Like Python's <b><code>map</code></b> but returning a \n  <code>tuple</code> of results.</p>\n  <p>Unlike Python 2's built-in <code class=\"link\">map</code>, Python 3+ \n  <code class=\"link\">map</code> returns a <code class=\"link\">map</code> \n  object, an iterator-like object which generates the results only once.  \n  Converting the <code class=\"link\">map</code> object to a tuple maintains \n  the Python 2 behavior.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>fun</code></strong> - Function (<code>callable</code>).</li>\n        <li><strong class=\"pname\"><code>xs</code></strong> - Arguments (<code>all positional</code>).</li>\n        <li><strong class=\"pname\"><code>strict</code></strong> - See <a \n          href=\"https://docs.Python.org/3.14/library/functions.html#map\" \n          target=\"_top\">Python 3.14+ map</a> (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Function results (<code>tuple</code>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"neg\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">neg</span>&nbsp;(<span class=\"sig-arg\">x</span>,\n        <span class=\"sig-arg\">neg0</span>=<span class=\"sig-default\">None</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Negate <code>x</code> and optionally, negate <code>0.0</code> and \n  <code>-0.0</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>neg0</code></strong> - Defines the return value for zero <code><b>x</b></code>: if \n          <code>None</code> return <code>0.0</code>, if <code>True</code> \n          return <code>NEG0 if <b>x</b>=0.0</code> and <code>0.0 if \n          <b>x</b>=NEG0</code> or if <code>False</code> return \n          <code><b>x</b></code> <i>as-is</i> (<code>bool</code> or \n          <code>None</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>-<b>x</b> if <b>x</b> else 0.0, NEG0 or <b>x</b></code>.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"neg_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">neg_</span>&nbsp;(<span class=\"sig-arg\">*xs</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Negate all <code>xs</code> with <a \n  href=\"pygeodesy.basics-module.html#neg\" class=\"link\">neg</a>.</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd>A <code>map(neg, <b>xs</b>)</code>.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"signBit\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">signBit</span>&nbsp;(<span class=\"sig-arg\">x</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return <code>signbit(<b>x</b>)</code>, like C++, see also <a \n  href=\"pygeodesy.constants-module.html#isneg\" class=\"link\">isneg</a>.</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd><code>True</code> if <code><b>x</b> &lt; 0</code> or \n          <code>NEG0</code> (<code>bool</code>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"signOf\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">signOf</span>&nbsp;(<span class=\"sig-arg\">x</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return sign of <code>x</code> as <code>int</code>.</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd>-1, 0 or +1 (<code>int</code>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"splice\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">splice</span>&nbsp;(<span class=\"sig-arg\">iterable</span>,\n        <span class=\"sig-arg\">n</span>=<span class=\"sig-default\">2</span>,\n        <span class=\"sig-arg\">**fill</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Split an iterable into <code>n</code> slices.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>iterable</code></strong> - Items to be spliced (<code>list</code>, <code>tuple</code>, ...).</li>\n        <li><strong class=\"pname\"><code>n</code></strong> - Number of slices to generate (<code>int</code>).</li>\n        <li><strong class=\"pname\"><code>fill</code></strong> - Optional fill value for missing items.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A generator for each of <b><code>n</code></b> slices, <i \n          class=\"math\">iterable[i::n] for i=0..n</i>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>n</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        Each generated slice is a <code>tuple</code> or a \n        <code>list</code>, the latter only if the \n        <b><code>iterable</code></b> is a <code>list</code>.\n      </p>\n      <p><strong>Example:</strong>\n        <pre class=\"py-doctest\">\n<span class=\"py-prompt\">&gt;&gt;&gt; </span><span class=\"py-keyword\">from</span> pygeodesy <span class=\"py-keyword\">import</span> splice</pre>\n<pre class=\"py-doctest\">\n<span class=\"py-prompt\">&gt;&gt;&gt; </span>a, b = splice(range(10))\n<span class=\"py-prompt\">&gt;&gt;&gt; </span>a, b\n<span class=\"py-output\">((0, 2, 4, 6, 8), (1, 3, 5, 7, 9))</span></pre>\n<pre class=\"py-doctest\">\n<span class=\"py-prompt\">&gt;&gt;&gt; </span>a, b, c = splice(range(10), n=3)\n<span class=\"py-prompt\">&gt;&gt;&gt; </span>a, b, c\n<span class=\"py-output\">((0, 3, 6, 9), (1, 4, 7), (2, 5, 8))</span></pre>\n<pre class=\"py-doctest\">\n<span class=\"py-prompt\">&gt;&gt;&gt; </span>a, b, c = splice(range(10), n=3, fill=-1)\n<span class=\"py-prompt\">&gt;&gt;&gt; </span>a, b, c\n<span class=\"py-output\">((0, 3, 6, 9), (1, 4, 7, -1), (2, 5, 8, -1))</span></pre>\n<pre class=\"py-doctest\">\n<span class=\"py-prompt\">&gt;&gt;&gt; </span>tuple(splice(list(range(9)), n=5))\n<span class=\"py-output\">([0, 5], [1, 6], [2, 7], [3, 8], [4])</span></pre>\n<pre class=\"py-doctest\">\n<span class=\"py-prompt\">&gt;&gt;&gt; </span>splice(range(9), n=1)\n<span class=\"py-output\">&lt;generator object splice at 0x0...&gt;</span></pre>\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"unsigned0\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">unsigned0</span>&nbsp;(<span class=\"sig-arg\">x</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Unsign if <code>0.0</code>.</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd><code><b>x</b></code> if <b><code>x</code></b> else \n          <code>0.0</code>.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.booleans-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.booleans</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        Module&nbsp;booleans\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.booleans-module.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== MODULE DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Module booleans</h1><p class=\"nomargin-top\"></p>\n<p><i>Boolean</i> operations on <i>composite</i> polygons and \n  <i>clip</i>s.</p>\n  <p>Classes <a href=\"pygeodesy.booleans.BooleanFHP-class.html\" \n  class=\"link\">BooleanFHP</a> and <a \n  href=\"pygeodesy.booleans.BooleanGH-class.html\" class=\"link\">BooleanGH</a>\n  are <i>composites</i> and provide <i>boolean</i> operations \n  <code>intersection</code>, <code>difference</code>, \n  <code>reverse-difference</code>, <code>sum</code> and \n  <code>union</code>.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Note:</strong>\n        A <i>clip</i> is defined as a single, usually closed polygon, a \n        <i>composite</i> is a collection of one or more <i>clip</i>s.\n      </p>\n      <p><strong>See Also:</strong>\n        <a \n        href=\"https://www.ScienceDirect.com/science/article/pii/S259014861930007X\"\n        target=\"_top\">Forster-Hormann-Popa</a> and <a \n        href=\"http://www.Inf.USI.CH/hormann/papers/Greiner.1998.ECO.pdf\" \n        target=\"_top\">Greiner-Hormann</a>.\n      </p>\n      <p><strong>Version:</strong>\n        25.10.30\n      </p>\n</div><!-- ==================== CLASSES ==================== -->\n<a name=\"section-Classes\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Classes</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.booleans._LatLonBool-class.html\" class=\"summary-name\">_LatLonBool</a><br />\n      (INTERNAL) Base class for <a \n        href=\"pygeodesy.booleans.LatLonFHP-class.html\" \n        class=\"link\">LatLonFHP</a> and <a \n        href=\"pygeodesy.booleans.LatLonGH-class.html\" \n        class=\"link\">LatLonGH</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.booleans.LatLonFHP-class.html\" class=\"summary-name\">LatLonFHP</a><br />\n      A point or intersection in a <a \n        href=\"pygeodesy.booleans.BooleanFHP-class.html\" \n        class=\"link\">BooleanFHP</a> clip or composite.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.booleans.LatLonGH-class.html\" class=\"summary-name\">LatLonGH</a><br />\n      A point or intersection in a <a \n        href=\"pygeodesy.booleans.BooleanGH-class.html\" \n        class=\"link\">BooleanGH</a> clip or composite.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.booleans._Clip-class.html\" class=\"summary-name\">_Clip</a><br />\n      (INTERNAL) A <i>doubly-linked</i> list representing a <i>closed</i>\n        polygon of <a href=\"pygeodesy.booleans.LatLonFHP-class.html\" \n        class=\"link\">LatLonFHP</a> or <a \n        href=\"pygeodesy.booleans.LatLonGH-class.html\" \n        class=\"link\">LatLonGH</a> points, duplicates and intersections with\n        other clips.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.booleans._CompositeBase-class.html\" class=\"summary-name\">_CompositeBase</a><br />\n      (INTERNAL) Base class for <a \n        href=\"pygeodesy.booleans.BooleanFHP-class.html\" \n        class=\"link\">BooleanFHP</a> and <a \n        href=\"pygeodesy.booleans.BooleanGH-class.html\" \n        class=\"link\">BooleanGH</a> (<code>_CompositeFHP</code> and \n        <code>_CompositeGH</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.booleans._CompositeFHP-class.html\" class=\"summary-name\">_CompositeFHP</a><br />\n      (INTERNAL) A list of clips representing a <i>composite</i> of <a \n        href=\"pygeodesy.booleans.LatLonFHP-class.html\" \n        class=\"link\">LatLonFHP</a> points, duplicates and intersections \n        with an other <i>composite</i>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.booleans._CompositeGH-class.html\" class=\"summary-name\">_CompositeGH</a><br />\n      (INTERNAL) A list of clips representing a <i>composite</i> of <a \n        href=\"pygeodesy.booleans.LatLonGH-class.html\" \n        class=\"link\">LatLonGH</a> points, duplicates and intersections with\n        an other <i>composite</i>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.booleans._BooleanBase-class.html\" class=\"summary-name\">_BooleanBase</a>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.booleans.BooleanFHP-class.html\" class=\"summary-name\">BooleanFHP</a><br />\n      <i>Composite</i> class providing <i>boolean</i> operations between \n        two <i>composites</i> using <a \n        href=\"https://www.ScienceDirect.com/science/article/pii/S259014861930007X\"\n        target=\"_top\">Forster-Hormann-Popa</a>'s C++ implementation, \n        transcoded to pure Python.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.booleans.BooleanGH-class.html\" class=\"summary-name\">BooleanGH</a><br />\n      <i>Composite</i> class providing <i>boolean</i> operations between \n        two <i>composites</i> using the <a \n        href=\"http://www.Inf.USI.CH/hormann/papers/Greiner.1998.ECO.pdf\" \n        target=\"_top\">Greiner-Hormann</a> algorithm, extended.\n    </td>\n  </tr>\n</table>\n<!-- ==================== FUNCTIONS ==================== -->\n<a name=\"section-Functions\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Functions</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.booleans-module.html#isBoolean\" class=\"summary-sig-name\">isBoolean</a>(<span class=\"summary-sig-arg\">obj</span>)</span><br />\n      Check for <code>Boolean</code> composites.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== VARIABLES ==================== -->\n<a name=\"section-Variables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Variables</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"__all__\"></a><span class=\"summary-name\">__all__</span> = <code title=\"_ALL_LAZY.booleans\">_ALL_LAZY.booleans</code>\n    </td>\n  </tr>\n</table>\n<!-- ==================== FUNCTION DETAILS ==================== -->\n<a name=\"section-FunctionDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Function Details</span></td>\n</tr>\n</table>\n<a name=\"isBoolean\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">isBoolean</span>&nbsp;(<span class=\"sig-arg\">obj</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Check for <code>Boolean</code> composites.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>obj</code></strong> - The object (any <code>type</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>True</code> if <b><code>obj</code></b> is <a \n          href=\"pygeodesy.booleans.BooleanFHP-class.html\" \n          class=\"link\">BooleanFHP</a>, <a \n          href=\"pygeodesy.booleans.BooleanGH-class.html\" \n          class=\"link\">BooleanGH</a> or some other composite, \n          <code>False</code> otherwise.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.booleans.BooleanFHP-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.booleans.BooleanFHP</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.booleans-module.html\">Module&nbsp;booleans</a> ::\n        Class&nbsp;BooleanFHP\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.booleans.BooleanFHP-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class BooleanFHP</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+            \n           |            \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+        \n               |        \n  <a href=\"pygeodesy.booleans._CompositeBase-class.html\">_CompositeBase</a> --+    \n                   |    \n       <a href=\"pygeodesy.booleans._CompositeFHP-class.html\">_CompositeFHP</a> --+\n                       |\n          object --+   |\n                   |   |\n        <a href=\"pygeodesy.booleans._BooleanBase-class.html\">_BooleanBase</a> --+\n                       |\n                      <strong class=\"uidshort\">BooleanFHP</strong>\n</pre>\n\n<hr />\n<p><i>Composite</i> class providing <i>boolean</i> operations between two\n  <i>composites</i> using <a \n  href=\"https://www.ScienceDirect.com/science/article/pii/S259014861930007X\"\n  target=\"_top\">Forster-Hormann-Popa</a>'s C++ implementation, transcoded \n  to pure Python.</p>\n  <p>The supported operations between (composite) polygon A and B are:</p>\n  <ul>\n    <li>\n      C = A &amp; B  or  A &amp;= B,  intersection of A and B\n    </li>\n    <li>\n      C = A + B  or  A += B,  sum of A and B clips\n    </li>\n    <li>\n      C = A | B  or  A |= B,  union of A and B\n    </li>\n    <li>\n      A == B     or  A != B,  equivalent A and B clips\n    </li>\n    <li>\n      A.isequalTo(B, eps), equivalent within tolerance\n    </li>\n  </ul>\n\n<hr />\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Methods <code>__eq__</code> and <code>isequalTo</code>, function <a\n        href=\"pygeodesy.clipy-module.html#clipFHP4\" \n        class=\"link\">clipFHP4</a> and class <a \n        href=\"pygeodesy.booleans.BooleanGH-class.html\" \n        class=\"link\">BooleanGH</a>.\n      </p>\n</div><!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.booleans.BooleanFHP-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lls</span>,\n        <span class=\"summary-sig-arg\">raiser</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">eps</span>=<span class=\"summary-sig-default\">2.220446049250313e-16</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      New <a href=\"pygeodesy.booleans.BooleanFHP-class.html\" \n      class=\"link\">BooleanFHP</a> operand for <i>boolean</i> operation.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__isub__\"></a><span class=\"summary-sig-name\">__isub__</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span><br />\n      Not implemented.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__rsub__\"></a><span class=\"summary-sig-name\">__rsub__</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span><br />\n      Not implemented.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__sub__\"></a><span class=\"summary-sig-name\">__sub__</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span><br />\n      Not implemented.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.booleans._CompositeBase-class.html\">_CompositeBase</a></code></b>:\n      <code><a href=\"pygeodesy.booleans._CompositeBase-class.html#__contains__\">__contains__</a></code>,\n      <code><a href=\"pygeodesy.booleans._CompositeBase-class.html#__eq__\">__eq__</a></code>,\n      <code><a href=\"pygeodesy.booleans._CompositeBase-class.html#__iter__\">__iter__</a></code>,\n      <code><a href=\"pygeodesy.booleans._CompositeBase-class.html#__len__\">__len__</a></code>,\n      <code><a href=\"pygeodesy.booleans._CompositeBase-class.html#__ne__\">__ne__</a></code>,\n      <code><a href=\"pygeodesy.booleans._CompositeBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.booleans._CompositeBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.booleans._CompositeBase-class.html#clipids\">clipids</a></code>,\n      <code><a href=\"pygeodesy.booleans._CompositeBase-class.html#isequalTo\">isequalTo</a></code>,\n      <code><a href=\"pygeodesy.booleans._CompositeBase-class.html#toLatLon\">toLatLon</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.booleans._BooleanBase-class.html\">_BooleanBase</a></code></b>:\n      <code><a href=\"pygeodesy.booleans._BooleanBase-class.html#__add__\">__add__</a></code>,\n      <code><a href=\"pygeodesy.booleans._BooleanBase-class.html#__and__\">__and__</a></code>,\n      <code><a href=\"pygeodesy.booleans._BooleanBase-class.html#__iadd__\">__iadd__</a></code>,\n      <code><a href=\"pygeodesy.booleans._BooleanBase-class.html#__iand__\">__iand__</a></code>,\n      <code><a href=\"pygeodesy.booleans._BooleanBase-class.html#__ior__\">__ior__</a></code>,\n      <code><a href=\"pygeodesy.booleans._BooleanBase-class.html#__or__\">__or__</a></code>,\n      <code><a href=\"pygeodesy.booleans._BooleanBase-class.html#__radd__\">__radd__</a></code>,\n      <code><a href=\"pygeodesy.booleans._BooleanBase-class.html#__rand__\">__rand__</a></code>,\n      <code><a href=\"pygeodesy.booleans._BooleanBase-class.html#__ror__\">__ror__</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.booleans._CompositeBase-class.html\">_CompositeBase</a></code></b>:\n      <code><a href=\"pygeodesy.booleans._CompositeBase-class.html#eps\">eps</a></code>,\n      <code><a href=\"pygeodesy.booleans._CompositeBase-class.html#raiser\">raiser</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lls</span>,\n        <span class=\"sig-arg\">raiser</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">eps</span>=<span class=\"sig-default\">2.220446049250313e-16</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.booleans.BooleanFHP-class.html\" \n  class=\"link\">BooleanFHP</a> operand for <i>boolean</i> operation.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lls</code></strong> - The polygon points and clips (iterable of <a \n          href=\"pygeodesy.booleans.LatLonFHP-class.html\" \n          class=\"link\">LatLonFHP</a>s, <a \n          href=\"pygeodesy.clipy.ClipFHP4Tuple-class.html\" \n          class=\"link\">ClipFHP4Tuple</a>s or other <code>LatLon</code>s).</li>\n        <li><strong class=\"pname\"><code>raiser</code></strong> - If <code>True</code>, throw <a \n          href=\"pygeodesy.errors.ClipError-class.html\" \n          class=\"link\">ClipError</a> exceptions (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>esp</code></strong> - Tolerance for eliminating null edges (<code>degrees</code>, same \n          units as the <b><code>lls</code></b> coordinates).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.booleans.BooleanGH-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.booleans.BooleanGH</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.booleans-module.html\">Module&nbsp;booleans</a> ::\n        Class&nbsp;BooleanGH\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.booleans.BooleanGH-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class BooleanGH</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+            \n           |            \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+        \n               |        \n  <a href=\"pygeodesy.booleans._CompositeBase-class.html\">_CompositeBase</a> --+    \n                   |    \n        <a href=\"pygeodesy.booleans._CompositeGH-class.html\">_CompositeGH</a> --+\n                       |\n          object --+   |\n                   |   |\n        <a href=\"pygeodesy.booleans._BooleanBase-class.html\">_BooleanBase</a> --+\n                       |\n                      <strong class=\"uidshort\">BooleanGH</strong>\n</pre>\n\n<hr />\n<p><i>Composite</i> class providing <i>boolean</i> operations between two\n  <i>composites</i> using the <a \n  href=\"http://www.Inf.USI.CH/hormann/papers/Greiner.1998.ECO.pdf\" \n  target=\"_top\">Greiner-Hormann</a> algorithm, extended.</p>\n  <p>The supported operations between (composite) polygon A and B are:</p>\n  <ul>\n    <li>\n      C = A - B  or  A -= B,  difference A less B\n    </li>\n    <li>\n      C = B - A  or  B -= A,  difference B less B\n    </li>\n    <li>\n      C = A &amp; B  or  A &amp;= B,  intersection of A and B\n    </li>\n    <li>\n      C = A + B  or  A += B,  sum of A and B clips\n    </li>\n    <li>\n      C = A | B  or  A |= B,  union of A and B\n    </li>\n    <li>\n      A == B     or  A != B,  equivalent A and B clips\n    </li>\n    <li>\n      A.isequalTo(B, eps), equivalent within tolerance\n    </li>\n  </ul>\n\n<hr />\n<div class=\"fields\">      <p><strong>Note:</strong>\n        To handle <i>degenerate cases</i> like <code>point-edge</code> and \n        <code>point-point</code> intersections, use class <a \n        href=\"pygeodesy.booleans.BooleanFHP-class.html\" \n        class=\"link\">BooleanFHP</a>.\n      </p>\n      <p><strong>See Also:</strong>\n        Methods <code>__eq__</code> and <code>isequalTo</code>, function <a\n        href=\"pygeodesy.clipy-module.html#clipGH4\" class=\"link\">clipGH4</a>\n        and class <a href=\"pygeodesy.booleans.BooleanFHP-class.html\" \n        class=\"link\">BooleanFHP</a>.\n      </p>\n</div><!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.booleans.BooleanGH-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lls</span>,\n        <span class=\"summary-sig-arg\">raiser</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">xtend</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">eps</span>=<span class=\"summary-sig-default\">2.220446049250313e-16</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      New <a href=\"pygeodesy.booleans.BooleanFHP-class.html\" \n      class=\"link\">BooleanFHP</a> operand for <i>boolean</i> operation.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__isub__\"></a><span class=\"summary-sig-name\">__isub__</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span><br />\n      In-place difference: <code>this -= other</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__rsub__\"></a><span class=\"summary-sig-name\">__rsub__</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span><br />\n      Reverse difference: <code>other - this</code></td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__sub__\"></a><span class=\"summary-sig-name\">__sub__</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span><br />\n      Difference: <code>this - other</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.booleans._CompositeBase-class.html\">_CompositeBase</a></code></b>:\n      <code><a href=\"pygeodesy.booleans._CompositeBase-class.html#__contains__\">__contains__</a></code>,\n      <code><a href=\"pygeodesy.booleans._CompositeBase-class.html#__eq__\">__eq__</a></code>,\n      <code><a href=\"pygeodesy.booleans._CompositeBase-class.html#__iter__\">__iter__</a></code>,\n      <code><a href=\"pygeodesy.booleans._CompositeBase-class.html#__len__\">__len__</a></code>,\n      <code><a href=\"pygeodesy.booleans._CompositeBase-class.html#__ne__\">__ne__</a></code>,\n      <code><a href=\"pygeodesy.booleans._CompositeBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.booleans._CompositeBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.booleans._CompositeBase-class.html#clipids\">clipids</a></code>,\n      <code><a href=\"pygeodesy.booleans._CompositeBase-class.html#isequalTo\">isequalTo</a></code>,\n      <code><a href=\"pygeodesy.booleans._CompositeBase-class.html#toLatLon\">toLatLon</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.booleans._BooleanBase-class.html\">_BooleanBase</a></code></b>:\n      <code><a href=\"pygeodesy.booleans._BooleanBase-class.html#__add__\">__add__</a></code>,\n      <code><a href=\"pygeodesy.booleans._BooleanBase-class.html#__and__\">__and__</a></code>,\n      <code><a href=\"pygeodesy.booleans._BooleanBase-class.html#__iadd__\">__iadd__</a></code>,\n      <code><a href=\"pygeodesy.booleans._BooleanBase-class.html#__iand__\">__iand__</a></code>,\n      <code><a href=\"pygeodesy.booleans._BooleanBase-class.html#__ior__\">__ior__</a></code>,\n      <code><a href=\"pygeodesy.booleans._BooleanBase-class.html#__or__\">__or__</a></code>,\n      <code><a href=\"pygeodesy.booleans._BooleanBase-class.html#__radd__\">__radd__</a></code>,\n      <code><a href=\"pygeodesy.booleans._BooleanBase-class.html#__rand__\">__rand__</a></code>,\n      <code><a href=\"pygeodesy.booleans._BooleanBase-class.html#__ror__\">__ror__</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.booleans._CompositeGH-class.html\">_CompositeGH</a></code></b>:\n      <code><a href=\"pygeodesy.booleans._CompositeGH-class.html#xtend\">xtend</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.booleans._CompositeBase-class.html\">_CompositeBase</a></code></b>:\n      <code><a href=\"pygeodesy.booleans._CompositeBase-class.html#eps\">eps</a></code>,\n      <code><a href=\"pygeodesy.booleans._CompositeBase-class.html#raiser\">raiser</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lls</span>,\n        <span class=\"sig-arg\">raiser</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">xtend</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">eps</span>=<span class=\"sig-default\">2.220446049250313e-16</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.booleans.BooleanFHP-class.html\" \n  class=\"link\">BooleanFHP</a> operand for <i>boolean</i> operation.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lls</code></strong> - The polygon points and clips (iterable of <a \n          href=\"pygeodesy.booleans.LatLonGH-class.html\" \n          class=\"link\">LatLonGH</a>s, <a \n          href=\"pygeodesy.clipy.ClipGH4Tuple-class.html\" \n          class=\"link\">ClipGH4Tuple</a>s or other <code>LatLon</code>s).</li>\n        <li><strong class=\"pname\"><code>raiser</code></strong> - If <code>True</code>, throw <a \n          href=\"pygeodesy.errors.ClipError-class.html\" \n          class=\"link\">ClipError</a> exceptions (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>xtend</code></strong> - If <code>True</code>, extend edges of <i>degenerate cases</i>, an\n          attempt to handle the latter (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>esp</code></strong> - Tolerance for eliminating null edges (<code>degrees</code>, same \n          units as the <b><code>lls</code></b> coordinates).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.booleans.LatLonFHP-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.booleans.LatLonFHP</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.booleans-module.html\">Module&nbsp;booleans</a> ::\n        Class&nbsp;LatLonFHP\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.booleans.LatLonFHP-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class LatLonFHP</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+        \n           |        \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n               |    \n     <a href=\"pygeodesy.booleans._LatLonBool-class.html\">_LatLonBool</a> --+\n                   |\n                  <strong class=\"uidshort\">LatLonFHP</strong>\n</pre>\n\n<hr />\n<p>A point or intersection in a <a \n  href=\"pygeodesy.booleans.BooleanFHP-class.html\" \n  class=\"link\">BooleanFHP</a> clip or composite.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.booleans.LatLonFHP-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lat_ll</span>,\n        <span class=\"summary-sig-arg\">lon</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">height</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">clipid</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">**wrap_name</span>)</span><br />\n      New <code>LatLonFHP</code> from separate <code>lat</code>, \n      <code>lon</code>, <code>h</code>eight and <code>clipid</code> \n      scalars, or from a previous <a \n      href=\"pygeodesy.booleans.LatLonFHP-class.html\" \n      class=\"link\">LatLonFHP</a>, <a \n      href=\"pygeodesy.clipy.ClipFHP4Tuple-class.html\" \n      class=\"link\">ClipFHP4Tuple</a> or some other <code>LatLon</code> \n      instance.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__add__\"></a><span class=\"summary-sig-name\">__add__</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span></td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__mod__\"></a><span class=\"summary-sig-name\">__mod__</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span></td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__mul__\"></a><span class=\"summary-sig-name\">__mul__</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span></td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__rmul__\"></a><span class=\"summary-sig-name\">__rmul__</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span></td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.booleans.LatLonFHP-class.html#isenclosedBy\" class=\"summary-sig-name\">isenclosedBy</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">*composites_points</span>,\n        <span class=\"summary-sig-arg\">**wrap</span>)</span><br />\n      Is this point inside one or more composites or polygons based on the \n      <a \n      href=\"https://www.ScienceDirect.com/science/article/pii/S0925772101000128\"\n      target=\"_top\">winding number</a>?</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.booleans._LatLonBool-class.html\">_LatLonBool</a></code></b>:\n      <code><a href=\"pygeodesy.booleans._LatLonBool-class.html#__abs__\">__abs__</a></code>,\n      <code><a href=\"pygeodesy.booleans._LatLonBool-class.html#__eq__\">__eq__</a></code>,\n      <code><a href=\"pygeodesy.booleans._LatLonBool-class.html#__ne__\">__ne__</a></code>,\n      <code><a href=\"pygeodesy.booleans._LatLonBool-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.booleans._LatLonBool-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.booleans._LatLonBool-class.html#__sub__\">__sub__</a></code>,\n      <code><a href=\"pygeodesy.booleans._LatLonBool-class.html#isequalTo\">isequalTo</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.booleans._LatLonBool-class.html\">_LatLonBool</a></code></b>:\n      <code><a href=\"pygeodesy.booleans._LatLonBool-class.html#clipid\">clipid</a></code>,\n      <code><a href=\"pygeodesy.booleans._LatLonBool-class.html#height\">height</a></code>,\n      <code><a href=\"pygeodesy.booleans._LatLonBool-class.html#isintersection\">isintersection</a></code>,\n      <code><a href=\"pygeodesy.booleans._LatLonBool-class.html#ispoint\">ispoint</a></code>,\n      <code><a href=\"pygeodesy.booleans._LatLonBool-class.html#lat\">lat</a></code>,\n      <code><a href=\"pygeodesy.booleans._LatLonBool-class.html#latlon\">latlon</a></code>,\n      <code><a href=\"pygeodesy.booleans._LatLonBool-class.html#lon\">lon</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lat_ll</span>,\n        <span class=\"sig-arg\">lon</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">height</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">clipid</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">**wrap_name</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <code>LatLonFHP</code> from separate <code>lat</code>, \n  <code>lon</code>, <code>h</code>eight and <code>clipid</code> scalars, or\n  from a previous <a href=\"pygeodesy.booleans.LatLonFHP-class.html\" \n  class=\"link\">LatLonFHP</a>, <a \n  href=\"pygeodesy.clipy.ClipFHP4Tuple-class.html\" \n  class=\"link\">ClipFHP4Tuple</a> or some other <code>LatLon</code> \n  instance.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat_ll</code></strong> - Latitude (<code>scalar</code>) or a lat-/longitude (<a \n          href=\"pygeodesy.booleans.LatLonFHP-class.html\" \n          class=\"link\">LatLonFHP</a>, <a \n          href=\"pygeodesy.clipy.ClipFHP4Tuple-class.html\" \n          class=\"link\">ClipFHP4Tuple</a> or some other \n          <code>LatLon</code>).</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"pygeodesy.booleans._LatLonBool-class.html#__init__\" \n        class=\"link\">Here</a> for further details.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"isenclosedBy\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">isenclosedBy</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">*composites_points</span>,\n        <span class=\"sig-arg\">**wrap</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Is this point inside one or more composites or polygons based on the \n  <a \n  href=\"https://www.ScienceDirect.com/science/article/pii/S0925772101000128\"\n  target=\"_top\">winding number</a>?</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>composites_points</code></strong> - Composites and/or iterables of points (<a \n          href=\"pygeodesy.clipy.ClipFHP4Tuple-class.html\" \n          class=\"link\">ClipFHP4Tuple</a>, <a \n          href=\"pygeodesy.clipy.ClipGH4Tuple-class.html\" \n          class=\"link\">ClipGH4Tuple</a>, <a \n          href=\"pygeodesy.booleans.LatLonFHP-class.html\" \n          class=\"link\">LatLonFHP</a>, <a \n          href=\"pygeodesy.booleans.LatLonGH-class.html\" \n          class=\"link\">LatLonGH</a> or any <code>LatLon</code>).</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - Optional keyword argument <code><b>wrap</b>=False</code>, if \n          <code>True</code>, wrap or <i>normalize</i> and unroll all \n          <code>points</code> (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ValueError</strong></code> - Some <code>points</code> invalid.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a \n        href=\"https://www.ScienceDirect.com/science/article/pii/S0925772101000128\"\n        target=\"_top\">Algorithm 6</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.booleans.LatLonGH-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.booleans.LatLonGH</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.booleans-module.html\">Module&nbsp;booleans</a> ::\n        Class&nbsp;LatLonGH\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.booleans.LatLonGH-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class LatLonGH</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+        \n           |        \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n               |    \n     <a href=\"pygeodesy.booleans._LatLonBool-class.html\">_LatLonBool</a> --+\n                   |\n                  <strong class=\"uidshort\">LatLonGH</strong>\n</pre>\n\n<hr />\n<p>A point or intersection in a <a \n  href=\"pygeodesy.booleans.BooleanGH-class.html\" class=\"link\">BooleanGH</a>\n  clip or composite.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.booleans.LatLonGH-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lat_ll</span>,\n        <span class=\"summary-sig-arg\">lon</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">height</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">clipid</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">**wrap_name</span>)</span><br />\n      New <code>LatLonGH</code> from separate <code>lat</code>, \n      <code>lon</code>, <code>h</code>eight and <code>clipid</code> \n      scalars, or from a previous <a \n      href=\"pygeodesy.booleans.LatLonGH-class.html\" \n      class=\"link\">LatLonGH</a>, <a \n      href=\"pygeodesy.clipy.ClipGH4Tuple-class.html\" \n      class=\"link\">ClipGH4Tuple</a> or some other <code>LatLon</code> \n      instance.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.booleans.LatLonGH-class.html#isenclosedBy\" class=\"summary-sig-name\">isenclosedBy</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">*composites_points</span>,\n        <span class=\"summary-sig-arg\">**wrap</span>)</span><br />\n      Is this point inside one or more composites or polygons based on the \n      <a \n      href=\"https://www.ScienceDirect.com/science/article/pii/S0925772101000128\"\n      target=\"_top\">even-odd-rule</a>?</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.booleans._LatLonBool-class.html\">_LatLonBool</a></code></b>:\n      <code><a href=\"pygeodesy.booleans._LatLonBool-class.html#__abs__\">__abs__</a></code>,\n      <code><a href=\"pygeodesy.booleans._LatLonBool-class.html#__eq__\">__eq__</a></code>,\n      <code><a href=\"pygeodesy.booleans._LatLonBool-class.html#__ne__\">__ne__</a></code>,\n      <code><a href=\"pygeodesy.booleans._LatLonBool-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.booleans._LatLonBool-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.booleans._LatLonBool-class.html#__sub__\">__sub__</a></code>,\n      <code><a href=\"pygeodesy.booleans._LatLonBool-class.html#isequalTo\">isequalTo</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.booleans._LatLonBool-class.html\">_LatLonBool</a></code></b>:\n      <code><a href=\"pygeodesy.booleans._LatLonBool-class.html#clipid\">clipid</a></code>,\n      <code><a href=\"pygeodesy.booleans._LatLonBool-class.html#height\">height</a></code>,\n      <code><a href=\"pygeodesy.booleans._LatLonBool-class.html#isintersection\">isintersection</a></code>,\n      <code><a href=\"pygeodesy.booleans._LatLonBool-class.html#ispoint\">ispoint</a></code>,\n      <code><a href=\"pygeodesy.booleans._LatLonBool-class.html#lat\">lat</a></code>,\n      <code><a href=\"pygeodesy.booleans._LatLonBool-class.html#latlon\">latlon</a></code>,\n      <code><a href=\"pygeodesy.booleans._LatLonBool-class.html#lon\">lon</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lat_ll</span>,\n        <span class=\"sig-arg\">lon</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">height</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">clipid</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">**wrap_name</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <code>LatLonGH</code> from separate <code>lat</code>, \n  <code>lon</code>, <code>h</code>eight and <code>clipid</code> scalars, or\n  from a previous <a href=\"pygeodesy.booleans.LatLonGH-class.html\" \n  class=\"link\">LatLonGH</a>, <a \n  href=\"pygeodesy.clipy.ClipGH4Tuple-class.html\" \n  class=\"link\">ClipGH4Tuple</a> or some other <code>LatLon</code> \n  instance.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat_ll</code></strong> - Latitude (<code>scalar</code>) or a lat-/longitude (<a \n          href=\"pygeodesy.booleans.LatLonGH-class.html\" \n          class=\"link\">LatLonGH</a>, <a \n          href=\"pygeodesy.clipy.ClipGH4Tuple-class.html\" \n          class=\"link\">ClipGH4Tuple</a> or some other <code>LatLon</code>).</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"pygeodesy.booleans._LatLonBool-class.html#__init__\" \n        class=\"link\">Here</a> for further details.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"isenclosedBy\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">isenclosedBy</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">*composites_points</span>,\n        <span class=\"sig-arg\">**wrap</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Is this point inside one or more composites or polygons based on the \n  <a \n  href=\"https://www.ScienceDirect.com/science/article/pii/S0925772101000128\"\n  target=\"_top\">even-odd-rule</a>?</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>composites_points</code></strong> - Composites and/or iterables of points (<a \n          href=\"pygeodesy.clipy.ClipFHP4Tuple-class.html\" \n          class=\"link\">ClipFHP4Tuple</a>, <a \n          href=\"pygeodesy.clipy.ClipGH4Tuple-class.html\" \n          class=\"link\">ClipGH4Tuple</a>, <a \n          href=\"pygeodesy.booleans.LatLonFHP-class.html\" \n          class=\"link\">LatLonFHP</a>, <a \n          href=\"pygeodesy.booleans.LatLonGH-class.html\" \n          class=\"link\">LatLonGH</a> or any <code>LatLon</code>).</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - Optional keyword argument <code><b>wrap</b>=False</code>, if \n          <code>True</code>, wrap or <i>normalize</i> and unroll all \n          <code>points</code> (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ValueError</strong></code> - Some <b><code>points</code></b> invalid.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.booleans._BooleanBase-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.booleans._BooleanBase</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.booleans-module.html\">Module&nbsp;booleans</a> ::\n        Class&nbsp;_BooleanBase\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.booleans._BooleanBase-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class _BooleanBase</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\nobject --+\n         |\n        <strong class=\"uidshort\">_BooleanBase</strong>\n</pre>\n\n<dl><dt>Known Subclasses:</dt>\n<dd>\n      <ul class=\"subclass-list\">\n<li><a href=\"pygeodesy.booleans.BooleanFHP-class.html\">BooleanFHP</a></li><li>, <a href=\"pygeodesy.booleans.BooleanGH-class.html\">BooleanGH</a></li>  </ul>\n</dd></dl>\n\n<hr />\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__add__\"></a><span class=\"summary-sig-name\">__add__</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span><br />\n      Sum: <code>this + other</code> clips.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__and__\"></a><span class=\"summary-sig-name\">__and__</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span><br />\n      Intersection: <code>this &amp; other</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__iadd__\"></a><span class=\"summary-sig-name\">__iadd__</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span><br />\n      In-place sum: <code>this += other</code> clips.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__iand__\"></a><span class=\"summary-sig-name\">__iand__</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span><br />\n      In-place intersection: <code>this &amp;= other</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__ior__\"></a><span class=\"summary-sig-name\">__ior__</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span><br />\n      In-place union: <code>this |= other</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__or__\"></a><span class=\"summary-sig-name\">__or__</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span><br />\n      Union: <code>this | other</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__radd__\"></a><span class=\"summary-sig-name\">__radd__</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span><br />\n      Reverse sum: <code>other + this</code> clips.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__rand__\"></a><span class=\"summary-sig-name\">__rand__</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span><br />\n      Reverse intersection: <code>other &amp; this</code></td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__ror__\"></a><span class=\"summary-sig-name\">__ror__</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span><br />\n      Reverse union: <code>other | this</code></td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__format__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__init__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__repr__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__str__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.booleans._Clip-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.booleans._Clip</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.booleans-module.html\">Module&nbsp;booleans</a> ::\n        Class&nbsp;_Clip\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.booleans._Clip-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class _Clip</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+    \n           |    \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+\n               |\n              <strong class=\"uidshort\">_Clip</strong>\n</pre>\n\n<hr />\n<p>(INTERNAL) A <i>doubly-linked</i> list representing a <i>closed</i> \n  polygon of <a href=\"pygeodesy.booleans.LatLonFHP-class.html\" \n  class=\"link\">LatLonFHP</a> or <a \n  href=\"pygeodesy.booleans.LatLonGH-class.html\" class=\"link\">LatLonGH</a> \n  points, duplicates and intersections with other clips.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.booleans._Clip-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">composite</span>,\n        <span class=\"summary-sig-arg\">clipid</span>=<span class=\"summary-sig-default\">0</span>)</span><br />\n      (INTERNAL) New <code>_Clip</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__contains__\"></a><span class=\"summary-sig-name\">__contains__</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">point</span>)</span><br />\n      Is the <b><code>point</code></b> in this clip?</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__eq__\"></a><span class=\"summary-sig-name\">__eq__</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span><br />\n      Is this clip <i>equivalent</i> to an <b><code>other</code></b> clip, \n      do both have the same <code>len</code>, the same points, in the same \n      order, possibly rotated?</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__ge__\"></a><span class=\"summary-sig-name\">__ge__</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span><br />\n      See method <code>__lt__</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__gt__\"></a><span class=\"summary-sig-name\">__gt__</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span><br />\n      Is this clip <code>&quot;above&quot;</code> an \n      <b><code>other</code></b> clip, located or stretched farther North or\n      East?</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.booleans._Clip-class.html#__hash__\" class=\"summary-sig-name\">__hash__</a>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      hash(x)</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__iter__\"></a><span class=\"summary-sig-name\">__iter__</span>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Yield the points, duplicates and intersections.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__le__\"></a><span class=\"summary-sig-name\">__le__</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span><br />\n      See method <code>__gt__</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__len__\"></a><span class=\"summary-sig-name\">__len__</span>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Return the number of points, duplicates and intersections in this \n      clip.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__lt__\"></a><span class=\"summary-sig-name\">__lt__</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span><br />\n      Is this clip <code>&quot;below&quot;</code> an \n      <b><code>other</code></b> clip, located or stretched farther South or\n      West?</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__ne__\"></a><span class=\"summary-sig-name\">__ne__</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span><br />\n      See method <code>__eq__</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">composite</span>,\n        <span class=\"sig-arg\">clipid</span>=<span class=\"sig-default\">0</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>(INTERNAL) New <code>_Clip</code>.</p>\n  <dl class=\"fields\">\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__hash__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__hash__</span>&nbsp;(<span class=\"sig-arg\">self</span>)</span>\n    <br /><em class=\"fname\">(Hashing function)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>hash(x)</p>\n  <dl class=\"fields\">\n    <dt>Overrides:\n        object.__hash__\n        <dd><em class=\"note\">(inherited documentation)</em></dd>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.booleans._CompositeBase-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.booleans._CompositeBase</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.booleans-module.html\">Module&nbsp;booleans</a> ::\n        Class&nbsp;_CompositeBase\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.booleans._CompositeBase-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class _CompositeBase</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+    \n           |    \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+\n               |\n              <strong class=\"uidshort\">_CompositeBase</strong>\n</pre>\n\n<dl><dt>Known Subclasses:</dt>\n<dd>\n      <ul class=\"subclass-list\">\n<li><a href=\"pygeodesy.booleans._CompositeFHP-class.html\">_CompositeFHP</a></li><li>, <a href=\"pygeodesy.booleans._CompositeGH-class.html\">_CompositeGH</a></li>  </ul>\n</dd></dl>\n\n<hr />\n<p>(INTERNAL) Base class for <a \n  href=\"pygeodesy.booleans.BooleanFHP-class.html\" \n  class=\"link\">BooleanFHP</a> and <a \n  href=\"pygeodesy.booleans.BooleanGH-class.html\" class=\"link\">BooleanGH</a>\n  (<code>_CompositeFHP</code> and <code>_CompositeGH</code>).</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.booleans._CompositeBase-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lls</span>,\n        <span class=\"summary-sig-arg\">kind</span>=<span class=\"summary-sig-default\">''</span>,\n        <span class=\"summary-sig-arg\">eps</span>=<span class=\"summary-sig-default\">2.220446049250313e-16</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      (INTERNAL) See <a href=\"pygeodesy.booleans.BooleanFHP-class.html\" \n      class=\"link\">BooleanFHP</a> and <a \n      href=\"pygeodesy.booleans.BooleanGH-class.html\" \n      class=\"link\">BooleanGH</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__contains__\"></a><span class=\"summary-sig-name\">__contains__</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">point</span>)</span><br />\n      Is the <b><code>point</code></b> in one of the clips?</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.booleans._CompositeBase-class.html#__eq__\" class=\"summary-sig-name\">__eq__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span><br />\n      Is this <i>composite</i> equivalent to an <b><code>other</code></b>, \n      i.e.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__iter__\"></a><span class=\"summary-sig-name\">__iter__</span>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Yield all points, duplicates and intersections.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__ne__\"></a><span class=\"summary-sig-name\">__ne__</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span><br />\n      See method <code>__eq__</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__len__\"></a><span class=\"summary-sig-name\">__len__</span>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Return the <i>total</i> number of points.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.booleans._CompositeBase-class.html#__repr__\" class=\"summary-sig-name\">__repr__</a>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      String <code>repr</code> of this composite.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.booleans._CompositeBase-class.html#__str__\" class=\"summary-sig-name\">__str__</a>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      String <code>str</code> of this composite.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"clipids\"></a><span class=\"summary-sig-name\">clipids</span>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Return a tuple with all <code>clipid</code>s, <i>ordered</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.booleans._CompositeBase-class.html#isequalTo\" class=\"summary-sig-name\">isequalTo</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>,\n        <span class=\"summary-sig-arg\">eps</span>=<span class=\"summary-sig-default\">None</span>)</span><br />\n      Is this boolean/composite equal to an <b><code>other</code></b> \n      within a given, <i>non-negative</i> tolerance?</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.booleans._CompositeBase-class.html#toLatLon\" class=\"summary-sig-name\">toLatLon</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">LatLon</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">closed</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">**LatLon_kwds</span>)</span><br />\n      Yield all (non-duplicate) points and intersections as an instance of \n      <b><code>LatLon</code></b>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.booleans._CompositeBase-class.html#eps\" class=\"summary-name\">eps</a><br />\n      Get the null edges tolerance (<code>degrees</code>, usually).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.booleans._CompositeBase-class.html#raiser\" class=\"summary-name\">raiser</a><br />\n      Get the option to throw <a \n      href=\"pygeodesy.errors.ClipError-class.html\" \n      class=\"link\">ClipError</a> exceptions (<code>bool</code>).\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lls</span>,\n        <span class=\"sig-arg\">kind</span>=<span class=\"sig-default\">''</span>,\n        <span class=\"sig-arg\">eps</span>=<span class=\"sig-default\">2.220446049250313e-16</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>(INTERNAL) See <a href=\"pygeodesy.booleans.BooleanFHP-class.html\" \n  class=\"link\">BooleanFHP</a> and <a \n  href=\"pygeodesy.booleans.BooleanGH-class.html\" \n  class=\"link\">BooleanGH</a>.</p>\n  <dl class=\"fields\">\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__eq__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__eq__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>)</span>\n    <br /><em class=\"fname\">(Equality operator)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Is this <i>composite</i> equivalent to an <b><code>other</code></b>, \n  i.e. do both contain <i>equivalent</i> clips in the same or in a \n  different order?  Two clips are considered <i>equivalent</i> if both have\n  the same points etc. in the same order, possibly rotated.</p>\n  <dl class=\"fields\">\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__repr__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__repr__</span>&nbsp;(<span class=\"sig-arg\">self</span>)</span>\n    <br /><em class=\"fname\">(Representation operator)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>String <code>repr</code> of this composite.</p>\n  <dl class=\"fields\">\n    <dt>Overrides:\n        object.__repr__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__str__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__str__</span>&nbsp;(<span class=\"sig-arg\">self</span>)</span>\n    <br /><em class=\"fname\">(Informal representation operator)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>String <code>str</code> of this composite.</p>\n  <dl class=\"fields\">\n    <dt>Overrides:\n        object.__str__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"isequalTo\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">isequalTo</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>,\n        <span class=\"sig-arg\">eps</span>=<span class=\"sig-default\">None</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Is this boolean/composite equal to an <b><code>other</code></b> within\n  a given, <i>non-negative</i> tolerance?</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>other</code></strong> - The other boolean/composite (<code>Boolean[FHP|GB]</code>).</li>\n        <li><strong class=\"pname\"><code>eps</code></strong> - Tolerance for equality (<code>degrees</code> or \n          <code>None</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>True</code> if equivalent, <code>False</code> otherwise \n          (<code>bool</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>other</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <code>__eq__</code>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"toLatLon\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toLatLon</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">LatLon</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">closed</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">**LatLon_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Yield all (non-duplicate) points and intersections as an instance of \n  <b><code>LatLon</code></b>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>LatLon</code></strong> - Class to use (<code>LatLon</code>) or if <code>None</code>, <a \n          href=\"pygeodesy.booleans.LatLonFHP-class.html\" \n          class=\"link\">LatLonFHP</a> or <a \n          href=\"pygeodesy.booleans.LatLonGH-class.html\" \n          class=\"link\">LatLonGH</a>.</li>\n        <li><strong class=\"pname\"><code>closed</code></strong> - If <code>True</code>, close each clip (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>LatLon_kwds</code></strong> - Optional, additional <b><code>LatLon</code></b> keyword \n          arguments, ignore if <code><b>LatLon</b> is None</code>.</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>LatLon</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        For intersections, <code>height</code> is an instance of <a \n        href=\"pygeodesy.units.HeightX-class.html\" class=\"link\">HeightX</a>,\n        otherwise of <a href=\"pygeodesy.units.Height-class.html\" \n        class=\"link\">Height</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<br />\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"eps\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">eps</h3>\n  <p>Get the null edges tolerance (<code>degrees</code>, usually).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">eps(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the null edges tolerance (<code>degrees</code>, usually).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">eps(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">eps</span>)</span>\n        - Set the null edges tolerance (<code>degrees</code>, usually).\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"raiser\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">raiser</h3>\n  <p>Get the option to throw <a \n  href=\"pygeodesy.errors.ClipError-class.html\" class=\"link\">ClipError</a> \n  exceptions (<code>bool</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">raiser(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the option to throw <a href=\"pygeodesy.errors.ClipError-class.html\" \nclass=\"link\">ClipError</a> exceptions (<code>bool</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">raiser(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">throw</span>)</span>\n        - Set the option to throw <a href=\"pygeodesy.errors.ClipError-class.html\" \nclass=\"link\">ClipError</a> exceptions (<code>bool</code>).\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.booleans._CompositeFHP-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.booleans._CompositeFHP</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.booleans-module.html\">Module&nbsp;booleans</a> ::\n        Class&nbsp;_CompositeFHP\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.booleans._CompositeFHP-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class _CompositeFHP</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+        \n           |        \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n               |    \n  <a href=\"pygeodesy.booleans._CompositeBase-class.html\">_CompositeBase</a> --+\n                   |\n                  <strong class=\"uidshort\">_CompositeFHP</strong>\n</pre>\n\n<dl><dt>Known Subclasses:</dt>\n<dd>\n      <ul class=\"subclass-list\">\n<li><a href=\"pygeodesy.booleans.BooleanFHP-class.html\">BooleanFHP</a></li>  </ul>\n</dd></dl>\n\n<hr />\n<p>(INTERNAL) A list of clips representing a <i>composite</i> of <a \n  href=\"pygeodesy.booleans.LatLonFHP-class.html\" class=\"link\">LatLonFHP</a>\n  points, duplicates and intersections with an other <i>composite</i>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.booleans._CompositeFHP-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lls</span>,\n        <span class=\"summary-sig-arg\">raiser</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">**name_kind_eps</span>)</span><br />\n      (INTERNAL) See <a href=\"pygeodesy.booleans.BooleanFHP-class.html\" \n      class=\"link\">BooleanFHP</a> and <a \n      href=\"pygeodesy.booleans.BooleanGH-class.html\" \n      class=\"link\">BooleanGH</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.booleans._CompositeBase-class.html\">_CompositeBase</a></code></b>:\n      <code><a href=\"pygeodesy.booleans._CompositeBase-class.html#__contains__\">__contains__</a></code>,\n      <code><a href=\"pygeodesy.booleans._CompositeBase-class.html#__eq__\">__eq__</a></code>,\n      <code><a href=\"pygeodesy.booleans._CompositeBase-class.html#__iter__\">__iter__</a></code>,\n      <code><a href=\"pygeodesy.booleans._CompositeBase-class.html#__len__\">__len__</a></code>,\n      <code><a href=\"pygeodesy.booleans._CompositeBase-class.html#__ne__\">__ne__</a></code>,\n      <code><a href=\"pygeodesy.booleans._CompositeBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.booleans._CompositeBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.booleans._CompositeBase-class.html#clipids\">clipids</a></code>,\n      <code><a href=\"pygeodesy.booleans._CompositeBase-class.html#isequalTo\">isequalTo</a></code>,\n      <code><a href=\"pygeodesy.booleans._CompositeBase-class.html#toLatLon\">toLatLon</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.booleans._CompositeBase-class.html\">_CompositeBase</a></code></b>:\n      <code><a href=\"pygeodesy.booleans._CompositeBase-class.html#eps\">eps</a></code>,\n      <code><a href=\"pygeodesy.booleans._CompositeBase-class.html#raiser\">raiser</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lls</span>,\n        <span class=\"sig-arg\">raiser</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">**name_kind_eps</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>(INTERNAL) See <a href=\"pygeodesy.booleans.BooleanFHP-class.html\" \n  class=\"link\">BooleanFHP</a> and <a \n  href=\"pygeodesy.booleans.BooleanGH-class.html\" \n  class=\"link\">BooleanGH</a>.</p>\n  <dl class=\"fields\">\n    <dt>Overrides:\n        object.__init__\n        <dd><em class=\"note\">(inherited documentation)</em></dd>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.booleans._CompositeGH-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.booleans._CompositeGH</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.booleans-module.html\">Module&nbsp;booleans</a> ::\n        Class&nbsp;_CompositeGH\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.booleans._CompositeGH-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class _CompositeGH</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+        \n           |        \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n               |    \n  <a href=\"pygeodesy.booleans._CompositeBase-class.html\">_CompositeBase</a> --+\n                   |\n                  <strong class=\"uidshort\">_CompositeGH</strong>\n</pre>\n\n<dl><dt>Known Subclasses:</dt>\n<dd>\n      <ul class=\"subclass-list\">\n<li><a href=\"pygeodesy.booleans.BooleanGH-class.html\">BooleanGH</a></li>  </ul>\n</dd></dl>\n\n<hr />\n<p>(INTERNAL) A list of clips representing a <i>composite</i> of <a \n  href=\"pygeodesy.booleans.LatLonGH-class.html\" class=\"link\">LatLonGH</a> \n  points, duplicates and intersections with an other <i>composite</i>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.booleans._CompositeGH-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lls</span>,\n        <span class=\"summary-sig-arg\">raiser</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">xtend</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">**name_kind_eps</span>)</span><br />\n      (INTERNAL) See <a href=\"pygeodesy.booleans.BooleanFHP-class.html\" \n      class=\"link\">BooleanFHP</a> and <a \n      href=\"pygeodesy.booleans.BooleanGH-class.html\" \n      class=\"link\">BooleanGH</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.booleans._CompositeBase-class.html\">_CompositeBase</a></code></b>:\n      <code><a href=\"pygeodesy.booleans._CompositeBase-class.html#__contains__\">__contains__</a></code>,\n      <code><a href=\"pygeodesy.booleans._CompositeBase-class.html#__eq__\">__eq__</a></code>,\n      <code><a href=\"pygeodesy.booleans._CompositeBase-class.html#__iter__\">__iter__</a></code>,\n      <code><a href=\"pygeodesy.booleans._CompositeBase-class.html#__len__\">__len__</a></code>,\n      <code><a href=\"pygeodesy.booleans._CompositeBase-class.html#__ne__\">__ne__</a></code>,\n      <code><a href=\"pygeodesy.booleans._CompositeBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.booleans._CompositeBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.booleans._CompositeBase-class.html#clipids\">clipids</a></code>,\n      <code><a href=\"pygeodesy.booleans._CompositeBase-class.html#isequalTo\">isequalTo</a></code>,\n      <code><a href=\"pygeodesy.booleans._CompositeBase-class.html#toLatLon\">toLatLon</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.booleans._CompositeGH-class.html#xtend\" class=\"summary-name\">xtend</a><br />\n      Get the option to handle some <i>degenerate cases</i> \n      (<code>bool</code>).\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.booleans._CompositeBase-class.html\">_CompositeBase</a></code></b>:\n      <code><a href=\"pygeodesy.booleans._CompositeBase-class.html#eps\">eps</a></code>,\n      <code><a href=\"pygeodesy.booleans._CompositeBase-class.html#raiser\">raiser</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lls</span>,\n        <span class=\"sig-arg\">raiser</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">xtend</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">**name_kind_eps</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>(INTERNAL) See <a href=\"pygeodesy.booleans.BooleanFHP-class.html\" \n  class=\"link\">BooleanFHP</a> and <a \n  href=\"pygeodesy.booleans.BooleanGH-class.html\" \n  class=\"link\">BooleanGH</a>.</p>\n  <dl class=\"fields\">\n    <dt>Overrides:\n        object.__init__\n        <dd><em class=\"note\">(inherited documentation)</em></dd>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"xtend\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">xtend</h3>\n  <p>Get the option to handle some <i>degenerate cases</i> \n  (<code>bool</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">xtend(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the option to handle some <i>degenerate cases</i> (<code>bool</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">xtend(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">xtend</span>)</span>\n        - Set the option to handle some <i>degenerate cases</i> (<code>bool</code>).\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.booleans._LatLonBool-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.booleans._LatLonBool</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.booleans-module.html\">Module&nbsp;booleans</a> ::\n        Class&nbsp;_LatLonBool\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.booleans._LatLonBool-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class _LatLonBool</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+    \n           |    \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+\n               |\n              <strong class=\"uidshort\">_LatLonBool</strong>\n</pre>\n\n<dl><dt>Known Subclasses:</dt>\n<dd>\n      <ul class=\"subclass-list\">\n<li><a href=\"pygeodesy.booleans.LatLonFHP-class.html\">LatLonFHP</a></li><li>, <a href=\"pygeodesy.booleans.LatLonGH-class.html\">LatLonGH</a></li>  </ul>\n</dd></dl>\n\n<hr />\n<p>(INTERNAL) Base class for <a \n  href=\"pygeodesy.booleans.LatLonFHP-class.html\" class=\"link\">LatLonFHP</a>\n  and <a href=\"pygeodesy.booleans.LatLonGH-class.html\" \n  class=\"link\">LatLonGH</a>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.booleans._LatLonBool-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lat_ll</span>,\n        <span class=\"summary-sig-arg\">lon</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">height</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">clipid</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      New <code>LatLon[FHP|GH]</code> from separate <code>lat</code>, \n      <code>lon</code>, <code>height</code> and <code>clipid</code> scalars\n      or from a previous <code>LatLon[FHP|GH]</code>, \n      <code>Clip[FHP|GH]4Tuple</code> or some other <code>LatLon</code> \n      instance.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__abs__\"></a><span class=\"summary-sig-name\">__abs__</span>(<span class=\"summary-sig-arg\">self</span>)</span></td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__eq__\"></a><span class=\"summary-sig-name\">__eq__</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span></td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__ne__\"></a><span class=\"summary-sig-name\">__ne__</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span></td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.booleans._LatLonBool-class.html#__repr__\" class=\"summary-sig-name\">__repr__</a>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      String <code>repr</code> of this lat-/longitude.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.booleans._LatLonBool-class.html#__str__\" class=\"summary-sig-name\">__str__</a>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      String <code>str</code> of this lat-/longitude.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__sub__\"></a><span class=\"summary-sig-name\">__sub__</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span></td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.booleans._LatLonBool-class.html#isequalTo\" class=\"summary-sig-name\">isequalTo</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>,\n        <span class=\"summary-sig-arg\">eps</span>=<span class=\"summary-sig-default\">None</span>)</span><br />\n      Is this point equal to an <b><code>other</code></b> within a given, \n      <i>non-negative</i> tolerance, ignoring <code>height</code>?</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.booleans._LatLonBool-class.html#clipid\" class=\"summary-name\">clipid</a><br />\n      Get the <i>clipid</i> (<code>int</code> or <code>0</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.booleans._LatLonBool-class.html#height\" class=\"summary-name\">height</a><br />\n      Get the <i>height</i> (<code>Height</code> or <code>int</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.booleans._LatLonBool-class.html#isintersection\" class=\"summary-name\">isintersection</a><br />\n      Is this an intersection?  May be <code>ispoint</code> too!\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.booleans._LatLonBool-class.html#ispoint\" class=\"summary-name\">ispoint</a><br />\n      Is this an <i>original</i> point?  May be <code>isintersection</code>\n      too!\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.booleans._LatLonBool-class.html#lat\" class=\"summary-name\">lat</a><br />\n      Get the latitude (<code>scalar</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.booleans._LatLonBool-class.html#latlon\" class=\"summary-name\">latlon</a><br />\n      Get the lat- and longitude (<a \n      href=\"pygeodesy.namedTuples.LatLon2Tuple-class.html\" \n      class=\"link\">LatLon2Tuple</a>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.booleans._LatLonBool-class.html#lon\" class=\"summary-name\">lon</a><br />\n      Get the longitude (<code>scalar</code>).\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lat_ll</span>,\n        <span class=\"sig-arg\">lon</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">height</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">clipid</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <code>LatLon[FHP|GH]</code> from separate <code>lat</code>, \n  <code>lon</code>, <code>height</code> and <code>clipid</code> scalars or \n  from a previous <code>LatLon[FHP|GH]</code>, \n  <code>Clip[FHP|GH]4Tuple</code> or some other <code>LatLon</code> \n  instance.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat_ll</code></strong> - Latitude (<code>scalar</code>) or a lat-/longitude \n          (<code>LatLon[FHP|GH]</code>, <code>Clip[FHP|GH]4Tuple</code> or \n          some other <code>LatLon</code>).</li>\n        <li><strong class=\"pname\"><code>lon</code></strong> - Longitude (<code>scalar</code>), required \n          <b><code>lat_ll</code></b> is scalar, ignored otherwise.</li>\n        <li><strong class=\"pname\"><code>height</code></strong> - Height (<code>scalar</code>), conventionally <code>meter</code>.</li>\n        <li><strong class=\"pname\"><code>clipid</code></strong> - Clip identifier (<code>int</code>).</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> \n          <b><code>lat</code></b> and <b><code>lon</code></b> \n          (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__repr__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__repr__</span>&nbsp;(<span class=\"sig-arg\">self</span>)</span>\n    <br /><em class=\"fname\">(Representation operator)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>String <code>repr</code> of this lat-/longitude.</p>\n  <dl class=\"fields\">\n    <dt>Overrides:\n        object.__repr__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__str__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__str__</span>&nbsp;(<span class=\"sig-arg\">self</span>)</span>\n    <br /><em class=\"fname\">(Informal representation operator)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>String <code>str</code> of this lat-/longitude.</p>\n  <dl class=\"fields\">\n    <dt>Overrides:\n        object.__str__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"isequalTo\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">isequalTo</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>,\n        <span class=\"sig-arg\">eps</span>=<span class=\"sig-default\">None</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Is this point equal to an <b><code>other</code></b> within a given, \n  <i>non-negative</i> tolerance, ignoring <code>height</code>?</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>other</code></strong> - The other point (<code>LatLon</code>).</li>\n        <li><strong class=\"pname\"><code>eps</code></strong> - Tolerance for equality (<code>degrees</code> or \n          <code>None</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>True</code> if equivalent, <code>False</code> otherwise \n          (<code>bool</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>other</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"clipid\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">clipid</h3>\n  <p>Get the <i>clipid</i> (<code>int</code> or <code>0</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">clipid(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <i>clipid</i> (<code>int</code> or <code>0</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"height\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">height</h3>\n  <p>Get the <i>height</i> (<code>Height</code> or <code>int</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">height(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <i>height</i> (<code>Height</code> or <code>int</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"isintersection\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">isintersection</h3>\n  <p>Is this an intersection?  May be <code>ispoint</code> too!</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">isintersection(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Is this an intersection?  May be <code>ispoint</code> too!\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"ispoint\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">ispoint</h3>\n  <p>Is this an <i>original</i> point?  May be <code>isintersection</code> \n  too!</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">ispoint(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Is this an <i>original</i> point?  May be <code>isintersection</code> too!\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"lat\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">lat</h3>\n  <p>Get the latitude (<code>scalar</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">lat(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the latitude (<code>scalar</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"latlon\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">latlon</h3>\n  <p>Get the lat- and longitude (<a \n  href=\"pygeodesy.namedTuples.LatLon2Tuple-class.html\" \n  class=\"link\">LatLon2Tuple</a>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">latlon(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the lat- and longitude (<a \nhref=\"pygeodesy.namedTuples.LatLon2Tuple-class.html\" \nclass=\"link\">LatLon2Tuple</a>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"lon\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">lon</h3>\n  <p>Get the longitude (<code>scalar</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">lon(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the longitude (<code>scalar</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.cartesianBase-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.cartesianBase</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        Module&nbsp;cartesianBase\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.cartesianBase-module.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== MODULE DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Module cartesianBase</h1><p class=\"nomargin-top\"></p>\n<p>(INTERNAL) Private <code>CartesianBase</code> class for elliposiodal, \n  spherical and N-/vectorial <code>Cartesian</code>s and public functions \n  <a href=\"pygeodesy.cartesianBase-module.html#rtp2xyz\" \n  class=\"link\">rtp2xyz</a>, <a \n  href=\"pygeodesy.cartesianBase-module.html#rtp2xyz_\" \n  class=\"link\">rtp2xyz_</a>, <a \n  href=\"pygeodesy.cartesianBase-module.html#xyz2rtp\" \n  class=\"link\">xyz2rtp</a> and <a \n  href=\"pygeodesy.cartesianBase-module.html#xyz2rtp_\" \n  class=\"link\">xyz2rtp_</a>.</p>\n  <p>After <i>(C) Chris Veness 2011-2024</i> published under the same MIT \n  Licence**, see <a \n  href=\"https://www.Movable-Type.co.UK/scripts/latlong.html\" \n  target=\"_top\">https://www.Movable-Type.co.UK/scripts/latlong.html</a>, <a\n  href=\"https://www.Movable-Type.co.UK/scripts/latlong-vectors.html\" \n  target=\"_top\">https://www.Movable-Type.co.UK/scripts/latlong-vectors.html</a>\n  and <a \n  href=\"https://www.Movable-Type.co.UK/scripts/geodesy/docs/latlon-ellipsoidal.js.html\"\n  \n  target=\"_top\">https://www.Movable-Type.co.UK/scripts/geodesy/docs/latlon-ellipsoidal.js.html</a>.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Version:</strong>\n        26.01.06\n      </p>\n</div><!-- ==================== CLASSES ==================== -->\n<a name=\"section-Classes\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Classes</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.cartesianBase.CartesianBase-class.html\" class=\"summary-name\">CartesianBase</a><br />\n      (INTERNAL) Base class for ellipsoidal and spherical \n        <code>Cartesian</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.cartesianBase.RadiusThetaPhi3Tuple-class.html\" class=\"summary-name\">RadiusThetaPhi3Tuple</a><br />\n      3-Tuple <code>(r, theta, phi)</code> with radial distance \n        <code>r</code> in <code>meter</code>, inclination \n        <code>theta</code> (with respect to the positive z-axis) and \n        azimuthal angle <code>phi</code> in <a \n        href=\"pygeodesy.units.Degrees-class.html\" class=\"link\">Degrees</a> \n        <i>or</i> <a href=\"pygeodesy.units.Radians-class.html\" \n        class=\"link\">Radians</a> representing a <a \n        href=\"https://WikiPedia.org/wiki/Spherical_coordinate_system\" \n        target=\"_top\">spherical, polar position</a>.\n    </td>\n  </tr>\n</table>\n<!-- ==================== FUNCTIONS ==================== -->\n<a name=\"section-Functions\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Functions</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.cartesianBase-module.html#rtp2xyz\" class=\"summary-sig-name\">rtp2xyz</a>(<span class=\"summary-sig-arg\">r_rtp</span>,\n        <span class=\"summary-sig-arg\">theta</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">phi</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">**name_Cartesian_and_kwds</span>)</span><br />\n      Convert <i>spherical, polar</i> <code>(r, theta, phi)</code> to \n      cartesian <code>(x, y, z)</code> coordinates.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.cartesianBase-module.html#rtp2xyz_\" class=\"summary-sig-name\">rtp2xyz_</a>(<span class=\"summary-sig-arg\">r_rtp</span>,\n        <span class=\"summary-sig-arg\">theta</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">phi</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">**name_Cartesian_and_kwds</span>)</span><br />\n      Convert <i>spherical, polar</i> <code>(r, theta, phi)</code> to \n      cartesian <code>(x, y, z)</code> coordinates.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.cartesianBase-module.html#xyz2rtp\" class=\"summary-sig-name\">xyz2rtp</a>(<span class=\"summary-sig-arg\">x_xyz</span>,\n        <span class=\"summary-sig-arg\">y</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">z</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Convert cartesian <code>(x, y, z)</code> to <i>spherical, polar</i> \n      <code>(r, theta, phi)</code> coordinates.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.cartesianBase-module.html#xyz2rtp_\" class=\"summary-sig-name\">xyz2rtp_</a>(<span class=\"summary-sig-arg\">x_xyz</span>,\n        <span class=\"summary-sig-arg\">y</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">z</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Convert cartesian <code>(x, y, z)</code> to <i>spherical, polar</i> \n      <code>(r, theta, phi)</code> coordinates.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== VARIABLES ==================== -->\n<a name=\"section-Variables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Variables</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"__all__\"></a><span class=\"summary-name\">__all__</span> = <code title=\"_ALL_LAZY.cartesianBase\">_ALL_LAZY.cartesianBase</code>\n    </td>\n  </tr>\n</table>\n<!-- ==================== FUNCTION DETAILS ==================== -->\n<a name=\"section-FunctionDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Function Details</span></td>\n</tr>\n</table>\n<a name=\"rtp2xyz\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">rtp2xyz</span>&nbsp;(<span class=\"sig-arg\">r_rtp</span>,\n        <span class=\"sig-arg\">theta</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">phi</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">**name_Cartesian_and_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert <i>spherical, polar</i> <code>(r, theta, phi)</code> to \n  cartesian <code>(x, y, z)</code> coordinates.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>theta</code></strong> - Inclination <b><code>theta</code></b> (<code>degrees</code> with \n          respect to the positive z-axis), required if \n          <code><b>r_rtp</b></code> is <code>scalar</code>, ignored \n          otherwise.</li>\n        <li><strong class=\"pname\"><code>phi</code></strong> - Azimuthal angle <b><code>phi</code></b> (<code>degrees</code>), \n          like <b><code>theta</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.cartesianBase-module.html#rtp2xyz_\" \n        class=\"link\">rtp2xyz_</a> for further details.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"rtp2xyz_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">rtp2xyz_</span>&nbsp;(<span class=\"sig-arg\">r_rtp</span>,\n        <span class=\"sig-arg\">theta</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">phi</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">**name_Cartesian_and_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert <i>spherical, polar</i> <code>(r, theta, phi)</code> to \n  cartesian <code>(x, y, z)</code> coordinates.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>r_rtp</code></strong> - Radial distance (<code>scalar</code>, conventially \n          <code>meter</code>) or a previous <a \n          href=\"pygeodesy.cartesianBase.RadiusThetaPhi3Tuple-class.html\" \n          class=\"link\">RadiusThetaPhi3Tuple</a> instance.</li>\n        <li><strong class=\"pname\"><code>theta</code></strong> - Inclination <b><code>theta</code></b> (<code>radians</code> with \n          respect to the positive z-axis), required if \n          <code><b>r_rtp</b></code> is <code>scalar</code>, ignored \n          otherwise.</li>\n        <li><strong class=\"pname\"><code>phi</code></strong> - Azimuthal angle <b><code>phi</code></b> (<code>radians</code>), \n          like <b><code>theta</code></b>.</li>\n        <li><strong class=\"pname\"><code>name_Cartesian_and_kwds</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>), \n          <code><b>Cartesian</b>=None</code> class to return the \n          coordinates and optionally, additional \n          <code><b>Cartesian</b></code> keyword arguments.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <code><b>Cartesian</b>(x, y, z)</code> instance or if no \n          <code><b>Cartesian</b></code> keyword argument is given a <a \n          href=\"pygeodesy.namedTuples.Vector3Tuple-class.html\" \n          class=\"link\">Vector3Tuple</a><code>(x, y, z)</code>, with \n          <code>x</code>, <code>y</code> and <code>z</code> in the same \n          units as radius <code>r</code>, <code>meter</code> \n          conventionally.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>r_rtp</code></b>, <b><code>theta</code></b>, \n        <b><code>phi</code></b> or \n        <b><code>name_Cartesian_and_kwds</code></b> item.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"https://WikiPedia.org/wiki/Spherical_coordinate_system\" \n        target=\"_top\">Physics convention</a> (ISO 80000-2:2019), class <a \n        href=\"pygeodesy.cartesianBase.RadiusThetaPhi3Tuple-class.html\" \n        class=\"link\">RadiusThetaPhi3Tuple</a> and functions <a \n        href=\"pygeodesy.cartesianBase-module.html#rtp2xyz\" \n        class=\"link\">rtp2xyz</a> and <a \n        href=\"pygeodesy.cartesianBase-module.html#xyz2rtp\" \n        class=\"link\">xyz2rtp</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"xyz2rtp\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">xyz2rtp</span>&nbsp;(<span class=\"sig-arg\">x_xyz</span>,\n        <span class=\"sig-arg\">y</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">z</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert cartesian <code>(x, y, z)</code> to <i>spherical, polar</i> \n  <code>(r, theta, phi)</code> coordinates.</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd><a href=\"pygeodesy.cartesianBase.RadiusThetaPhi3Tuple-class.html\"\n          class=\"link\">RadiusThetaPhi3Tuple</a><code>(r, theta, phi)</code>\n          with <code>theta</code> and <code>phi</code>, both in <a \n          href=\"pygeodesy.units.Degrees-class.html\" \n          class=\"link\">Degrees</a>.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.cartesianBase-module.html#xyz2rtp_\" \n        class=\"link\">xyz2rtp_</a> for further details.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"xyz2rtp_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">xyz2rtp_</span>&nbsp;(<span class=\"sig-arg\">x_xyz</span>,\n        <span class=\"sig-arg\">y</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">z</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert cartesian <code>(x, y, z)</code> to <i>spherical, polar</i> \n  <code>(r, theta, phi)</code> coordinates.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>x_xyz</code></strong> - X component (<code>scalar</code>) or a cartesian \n          (<code>Cartesian</code>, <a \n          href=\"pygeodesy.ecef.Ecef9Tuple-class.html\" \n          class=\"link\">Ecef9Tuple</a>, <code>Nvector</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <a \n          href=\"pygeodesy.namedTuples.Vector3Tuple-class.html\" \n          class=\"link\">Vector3Tuple</a>, <a \n          href=\"pygeodesy.namedTuples.Vector4Tuple-class.html\" \n          class=\"link\">Vector4Tuple</a> or a <code>tuple</code> or \n          <code>list</code> of 3+ <code>scalar</code> items) if no \n          <code>y_z</code> specified.</li>\n        <li><strong class=\"pname\"><code>y</code></strong> - Y component (<code>scalar</code>), required if \n          <code><b>x_xyz</b></code> is <code>scalar</code>, ignored \n          otherwise.</li>\n        <li><strong class=\"pname\"><code>z</code></strong> - Z component (<code>scalar</code>), like <b><code>y</code></b>.</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><a href=\"pygeodesy.cartesianBase.RadiusThetaPhi3Tuple-class.html\"\n          class=\"link\">RadiusThetaPhi3Tuple</a><code>(r, theta, phi)</code>\n          with radial distance <code>r</code> (<code>meter</code>, same \n          units as <code>x</code>, <code>y</code> and <code>z</code>), \n          inclination <code>theta</code> (polar angle with respect to the \n          positive z-axis) and azimuthal angle <code>phi</code>, both in <a\n          href=\"pygeodesy.units.Radians-class.html\" \n          class=\"link\">Radians</a>.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"https://WikiPedia.org/wiki/Spherical_coordinate_system\" \n        target=\"_top\">Physics convention</a> (ISO 80000-2:2019), class <a \n        href=\"pygeodesy.cartesianBase.RadiusThetaPhi3Tuple-class.html\" \n        class=\"link\">RadiusThetaPhi3Tuple</a> and function <a \n        href=\"pygeodesy.cartesianBase-module.html#xyz2rtp\" \n        class=\"link\">xyz2rtp</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.cartesianBase.CartesianBase-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.cartesianBase.CartesianBase</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.cartesianBase-module.html\">Module&nbsp;cartesianBase</a> ::\n        Class&nbsp;CartesianBase\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.cartesianBase.CartesianBase-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class CartesianBase</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n       object --+                \n                |                \n     <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+            \n                    |            \n     <a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+        \n                        |        \n<a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">vector3dBase.Vector3dBase</a> --+    \n                            |    \n            <a href=\"pygeodesy.vector3d.Vector3d-class.html\">vector3d.Vector3d</a> --+\n                                |\n               object --+       |\n                        |       |\n             <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+   |\n                            |   |\n        <a href=\"pygeodesy.ecefLocals._EcefLocal-class.html\">ecefLocals._EcefLocal</a> --+\n                                |\n                               <strong class=\"uidshort\">CartesianBase</strong>\n</pre>\n\n<dl><dt>Known Subclasses:</dt>\n<dd>\n      <ul class=\"subclass-list\">\n<li><a href=\"pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html\">ellipsoidalBase.CartesianEllipsoidalBase</a></li><li>, <a href=\"pygeodesy.sphericalBase.CartesianSphericalBase-class.html\">sphericalBase.CartesianSphericalBase</a></li>  </ul>\n</dd></dl>\n\n<hr />\n<p>(INTERNAL) Base class for ellipsoidal and spherical \n  <code>Cartesian</code>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#Roc2\" class=\"summary-sig-name\">Roc2</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">earth</span>=<span class=\"summary-sig-default\">None</span>)</span><br />\n      Compute this cartesian's <i>normal</i> and <i>pseudo, z-based</i> \n      radius of curvature.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">x_xyz</span>,\n        <span class=\"summary-sig-arg\">y</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">z</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">datum</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**ll_name</span>)</span><br />\n      New <code>Cartesian...</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#cassini\" class=\"summary-sig-name\">cassini</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">pointB</span>,\n        <span class=\"summary-sig-arg\">pointC</span>,\n        <span class=\"summary-sig-arg\">alpha</span>,\n        <span class=\"summary-sig-arg\">beta</span>,\n        <span class=\"summary-sig-arg\">useZ</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      3-Point resection between this and 2 other points using <a \n      href=\"https://NL.WikiPedia.org/wiki/Achterwaartse_insnijding\" \n      target=\"_top\">Cassini</a>'s method.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#collins\" class=\"summary-sig-name\">collins</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">pointB</span>,\n        <span class=\"summary-sig-arg\">pointC</span>,\n        <span class=\"summary-sig-arg\">alpha</span>,\n        <span class=\"summary-sig-arg\">beta</span>,\n        <span class=\"summary-sig-arg\">useZ</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      DEPRECATED, use method <a \n      href=\"pygeodesy.cartesianBase.CartesianBase-class.html#collins5\" \n      class=\"link\">collins5</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#collins5\" class=\"summary-sig-name\">collins5</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">pointB</span>,\n        <span class=\"summary-sig-arg\">pointC</span>,\n        <span class=\"summary-sig-arg\">alpha</span>,\n        <span class=\"summary-sig-arg\">beta</span>,\n        <span class=\"summary-sig-arg\">useZ</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      3-Point resection between this and 2 other points using <a \n      href=\"https://Dokumen.tips/documents/three-point-resection-problem-introduction-kaestner-burkhardt-method.html\"\n      target=\"_top\">Collins</a>' method.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#convertDatum\" class=\"summary-sig-name\">convertDatum</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">datum2</span>,\n        <span class=\"summary-sig-arg\">**datum</span>)</span><br />\n      DEPRECATED, use method <a \n      href=\"pygeodesy.cartesianBase.CartesianBase-class.html#toDatum\" \n      class=\"link\">toDatum</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#destinationXyz\" class=\"summary-sig-name\">destinationXyz</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">delta</span>,\n        <span class=\"summary-sig-arg\">Cartesian</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**name_Cartesian_kwds</span>)</span><br />\n      Calculate the destination using a <i>local</i> delta from this \n      cartesian.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#hartzell\" class=\"summary-sig-name\">hartzell</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">los</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">earth</span>=<span class=\"summary-sig-default\">None</span>)</span><br />\n      Compute the intersection of a Line-Of-Sight from this cartesian \n      Point-Of-View (pov) and this cartesian's <code>datum</code> ellipsoid\n      surface.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#height3\" class=\"summary-sig-name\">height3</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">earth</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">height</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**Cartesian_and_kwds</span>)</span><br />\n      Compute the cartesian at a height above or below this certesian's \n      <code>datum</code> ellipsoid surface.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#height4\" class=\"summary-sig-name\">height4</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">earth</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">normal</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">**Cartesian_and_kwds</span>)</span><br />\n      Compute the projection of this point on and the height above or below\n      this datum's ellipsoid surface.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#pierlot\" class=\"summary-sig-name\">pierlot</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">point2</span>,\n        <span class=\"summary-sig-arg\">point3</span>,\n        <span class=\"summary-sig-arg\">alpha12</span>,\n        <span class=\"summary-sig-arg\">alpha23</span>,\n        <span class=\"summary-sig-arg\">useZ</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">eps</span>=<span class=\"summary-sig-default\">2.220446049250313e-16</span>)</span><br />\n      3-Point resection between this and two other points using <a \n      href=\"http://www.Telecom.ULg.ac.Be/triangulation\" \n      target=\"_top\">Pierlot</a>'s method <code>ToTal</code> with \n      <i>approximate</i> limits for the (pseudo-)singularities.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#pierlotx\" class=\"summary-sig-name\">pierlotx</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">point2</span>,\n        <span class=\"summary-sig-arg\">point3</span>,\n        <span class=\"summary-sig-arg\">alpha1</span>,\n        <span class=\"summary-sig-arg\">alpha2</span>,\n        <span class=\"summary-sig-arg\">alpha3</span>,\n        <span class=\"summary-sig-arg\">useZ</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      3-Point resection between this and two other points using <a \n      href=\"http://www.Telecom.ULg.ac.Be/publi/publications/pierlot/Pierlot2014ANewThree\"\n      target=\"_top\">Pierlot</a>'s method <code>ToTal</code> with \n      <i>exact</i> limits for the (pseudo-)singularities.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#tienstra\" class=\"summary-sig-name\">tienstra</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">pointB</span>,\n        <span class=\"summary-sig-arg\">pointC</span>,\n        <span class=\"summary-sig-arg\">alpha</span>,\n        <span class=\"summary-sig-arg\">beta</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">gamma</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">useZ</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      DEPRECATED, use method <a \n      href=\"pygeodesy.cartesianBase.CartesianBase-class.html#tienstra7\" \n      class=\"link\">tienstra7</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#tienstra7\" class=\"summary-sig-name\">tienstra7</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">pointB</span>,\n        <span class=\"summary-sig-arg\">pointC</span>,\n        <span class=\"summary-sig-arg\">alpha</span>,\n        <span class=\"summary-sig-arg\">beta</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">gamma</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">useZ</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      3-Point resection between this and two other points using <a \n      href=\"https://WikiPedia.org/wiki/Tienstra_formula\" \n      target=\"_top\">Tienstra</a>'s formula.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#to2ab\" class=\"summary-sig-name\">to2ab</a>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      DEPRECATED, use property <code>philam</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#to2ll\" class=\"summary-sig-name\">to2ll</a>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      DEPRECATED, use property <code>latlon</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#to3llh\" class=\"summary-sig-name\">to3llh</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">datum</span>=<span class=\"summary-sig-default\">None</span>)</span><br />\n      DEPRECATED, use property <a \n      href=\"pygeodesy.cartesianBase.CartesianBase-class.html#latlonheight\" \n      class=\"link\">latlonheight</a> or <a \n      href=\"pygeodesy.cartesianBase.CartesianBase-class.html#latlonheightdatum\"\n      class=\"link\">latlonheightdatum</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#toDatum\" class=\"summary-sig-name\">toDatum</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">datum2</span>,\n        <span class=\"summary-sig-arg\">datum</span>=<span class=\"summary-sig-default\">None</span>)</span><br />\n      Convert this cartesian from one datum to an other.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#toEcef\" class=\"summary-sig-name\">toEcef</a>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Convert this cartesian to <i>geodetic</i> (lat-/longitude) \n      coordinates.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#toLatLon\" class=\"summary-sig-name\">toLatLon</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">datum</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">height</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">LatLon</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**LatLon_kwds</span>)</span><br />\n      Convert this cartesian to a <i>geodetic</i> (lat-/longitude) point.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#toNvector\" class=\"summary-sig-name\">toNvector</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">Nvector</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">datum</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**name_Nvector_kwds</span>)</span><br />\n      Convert this cartesian to <code>n-vector</code> components, \n      <i>including height</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#toRtp\" class=\"summary-sig-name\">toRtp</a>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Convert this cartesian to <i>spherical, polar</i> coordinates.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#toStr\" class=\"summary-sig-name\">toStr</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">prec</span>=<span class=\"summary-sig-default\">3</span>,\n        <span class=\"summary-sig-arg\">fmt</span>=<span class=\"summary-sig-default\">'[%s]'</span>,\n        <span class=\"summary-sig-arg\">sep</span>=<span class=\"summary-sig-default\">', '</span>)</span><br />\n      Return the string representation of this cartesian.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#toTransform\" class=\"summary-sig-name\">toTransform</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">transform</span>,\n        <span class=\"summary-sig-arg\">inverse</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">datum</span>=<span class=\"summary-sig-default\">None</span>)</span><br />\n      Apply a Helmert transform to this cartesian.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#toVector\" class=\"summary-sig-name\">toVector</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">Vector</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**Vector_kwds</span>)</span><br />\n      Return this cartesian's <i>geocentric</i> components as vector.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.vector3d.Vector3d-class.html\">vector3d.Vector3d</a></code></b>:\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#bearing\">bearing</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#circin6\">circin6</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#circum3\">circum3</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#circum4_\">circum4_</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#iscolinearWith\">iscolinearWith</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#meeus2\">meeus2</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#nearestOn\">nearestOn</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#nearestOn6\">nearestOn6</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#parse\">parse</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#radii11\">radii11</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#soddy4\">soddy4</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#toCartesian\">toCartesian</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#trilaterate2d2\">trilaterate2d2</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#trilaterate3d2\">trilaterate3d2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">vector3dBase.Vector3dBase</a></code></b>:\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__abs__\">__abs__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__add__\">__add__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__bool__\">__bool__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__ceil__\">__ceil__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__cmp__\">__cmp__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__div__\">__div__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__divmod__\">__divmod__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__eq__\">__eq__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__float__\">__float__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__floor__\">__floor__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__floordiv__\">__floordiv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__ge__\">__ge__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__gt__\">__gt__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__iadd__\">__iadd__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__idiv__\">__idiv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__ifloordiv__\">__ifloordiv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__imod__\">__imod__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__imul__\">__imul__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__int__\">__int__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__ipow__\">__ipow__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__isub__\">__isub__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__itruediv__\">__itruediv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__le__\">__le__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__long__\">__long__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__lt__\">__lt__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__mod__\">__mod__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__mul__\">__mul__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__ne__\">__ne__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__neg__\">__neg__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__nonzero__\">__nonzero__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__pos__\">__pos__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__pow__\">__pow__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__radd__\">__radd__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rdiv__\">__rdiv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rdivmod__\">__rdivmod__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rfloordiv__\">__rfloordiv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rmod__\">__rmod__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rmul__\">__rmul__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__round__\">__round__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rpow__\">__rpow__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rsub__\">__rsub__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rtruediv__\">__rtruediv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__sub__\">__sub__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__truediv__\">__truediv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__trunc__\">__trunc__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#angleTo\">angleTo</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#apply\">apply</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#bools\">bools</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#cmp\">cmp</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#cross\">cross</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#dividedBy\">dividedBy</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#dividedBy_\">dividedBy_</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#dot\">dot</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#equals\">equals</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#equirectangular\">equirectangular</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#fabs\">fabs</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#floats\">floats</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#floorDividedBy\">floorDividedBy</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#floorDividedBy_\">floorDividedBy_</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#intermediateTo\">intermediateTo</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#ints\">ints</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#isconjugateTo\">isconjugateTo</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#isequalTo\">isequalTo</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#minus\">minus</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#minus_\">minus_</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#negate\">negate</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#others\">others</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#plus\">plus</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#plus_\">plus_</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#pow\">pow</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#rotate\">rotate</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#rotateAround\">rotateAround</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#sum\">sum</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#times\">times</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#times_\">times_</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#to3xyz\">to3xyz</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#unit\">unit</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#toRepr\">toRepr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html\">ecefLocals._EcefLocal</a></code></b>:\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toAer\">toAer</a></code>,\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toEnu\">toEnu</a></code>,\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toLocal\">toLocal</a></code>,\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toLtp\">toLtp</a></code>,\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toNed\">toNed</a></code>,\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toXyz\">toXyz</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#datum\" class=\"summary-name\">datum</a><br />\n      Class <code>property</code> with a <code>.name</code> attribute.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#ellipsoidalCartesian\" class=\"summary-name\">ellipsoidalCartesian</a><br />\n      Get the <code>Cartesian type</code> iff ellipsoidal, overloaded in <a\n      href=\"pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html\" \n      class=\"link\">CartesianEllipsoidalBase</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#height\" class=\"summary-name\">height</a><br />\n      Get the height (<code>meter</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#isEllipsoidal\" class=\"summary-name\">isEllipsoidal</a><br />\n      Check whether this cartesian is ellipsoidal (<code>bool</code> or \n      <code>None</code> if unknown).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#isSpherical\" class=\"summary-name\">isSpherical</a><br />\n      Check whether this cartesian is spherical (<code>bool</code> or \n      <code>None</code> if unknown).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#latlon\" class=\"summary-name\">latlon</a><br />\n      Get this cartesian's (geodetic) lat- and longitude in \n      <code>degrees</code> (<a \n      href=\"pygeodesy.namedTuples.LatLon2Tuple-class.html\" \n      class=\"link\">LatLon2Tuple</a><code>(lat, lon)</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#latlonheight\" class=\"summary-name\">latlonheight</a><br />\n      Get this cartesian's (geodetic) lat-, longitude in \n      <code>degrees</code> with height (<a \n      href=\"pygeodesy.namedTuples.LatLon3Tuple-class.html\" \n      class=\"link\">LatLon3Tuple</a><code>(lat, lon, height)</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#latlonheightdatum\" class=\"summary-name\">latlonheightdatum</a><br />\n      Get this cartesian's (geodetic) lat-, longitude in \n      <code>degrees</code> with height and datum (<a \n      href=\"pygeodesy.namedTuples.LatLon4Tuple-class.html\" \n      class=\"link\">LatLon4Tuple</a><code>(lat, lon, height, datum)</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#philam\" class=\"summary-name\">philam</a><br />\n      Get this cartesian's (geodetic) lat- and longitude in \n      <code>radians</code> (<a \n      href=\"pygeodesy.namedTuples.PhiLam2Tuple-class.html\" \n      class=\"link\">PhiLam2Tuple</a><code>(phi, lam)</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#philamheight\" class=\"summary-name\">philamheight</a><br />\n      Get this cartesian's (geodetic) lat-, longitude in \n      <code>radians</code> with height (<a \n      href=\"pygeodesy.namedTuples.PhiLam3Tuple-class.html\" \n      class=\"link\">PhiLam3Tuple</a><code>(phi, lam, height)</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#philamheightdatum\" class=\"summary-name\">philamheightdatum</a><br />\n      Get this cartesian's (geodetic) lat-, longitude in \n      <code>radians</code> with height and datum (<a \n      href=\"pygeodesy.namedTuples.PhiLam4Tuple-class.html\" \n      class=\"link\">PhiLam4Tuple</a><code>(phi, lam, height, datum)</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#sphericalCartesian\" class=\"summary-name\">sphericalCartesian</a><br />\n      Get the <code>Cartesian type</code> iff spherical, overloaded in <a \n      href=\"pygeodesy.sphericalBase.CartesianSphericalBase-class.html\" \n      class=\"link\">CartesianSphericalBase</a>.\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">vector3dBase.Vector3dBase</a></code></b>:\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#crosserrors\">crosserrors</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#euclid\">euclid</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#homogeneous\">homogeneous</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#length\">length</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#length2\">length2</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#x\">x</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#x2y2z2\">x2y2z2</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#x2y2z23\">x2y2z23</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#xyz\">xyz</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#xyz3\">xyz3</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#y\">y</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#z\">z</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html\">ecefLocals._EcefLocal</a></code></b>:\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#Ecef\">Ecef</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"Roc2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">Roc2</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">earth</span>=<span class=\"sig-default\">None</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute this cartesian's <i>normal</i> and <i>pseudo, z-based</i> \n  radius of curvature.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>earth</code></strong> - A datum, ellipsoid, triaxial ellipsoid or earth radius, \n          <i>overriding</i> this cartesian's datum (<a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>, \n          <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a>, <a \n          href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a> or <code>meter</code>, \n          conventionally).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>2-Tuple <code>(R, r)</code> with the <i>normal</i> and <i>pseudo,\n          z-based</i> radius of curvature <code>R</code> respectively \n          <code>r</code>, both in <code>meter</code> conventionally.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid or undefined <b><code>earth</code></b> or \n        <code>datum</code>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">x_xyz</span>,\n        <span class=\"sig-arg\">y</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">z</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">datum</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**ll_name</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <code>Cartesian...</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>x_xyz</code></strong> - Cartesian X coordinate (<code>scalar</code>) or a \n          <code>Cartesian</code>, <a \n          href=\"pygeodesy.ecef.Ecef9Tuple-class.html\" \n          class=\"link\">Ecef9Tuple</a>, <a \n          href=\"pygeodesy.namedTuples.Vector3Tuple-class.html\" \n          class=\"link\">Vector3Tuple</a> or <a \n          href=\"pygeodesy.namedTuples.Vector4Tuple-class.html\" \n          class=\"link\">Vector4Tuple</a>.</li>\n        <li><strong class=\"pname\"><code>y</code></strong> - Cartesian Y coordinate (<code>scalar</code>), ignored if \n          <b><code>x_xyz</code></b> is not <code>scalar</code>, otherwise \n          same units as <b><code>x_xyz</code></b>.</li>\n        <li><strong class=\"pname\"><code>z</code></strong> - Cartesian Z coordinate (<code>scalar</code>), like \n          <b><code>y</code></b>.</li>\n        <li><strong class=\"pname\"><code>datum</code></strong> - Optional datum (<a href=\"pygeodesy.datums.Datum-class.html\" \n          class=\"link\">Datum</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a> or <a \n          href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>ll_name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>) and \n          optional, original latlon <code><b>ll</b>=None</code> \n          (<code>LatLon</code>).</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Non-scalar <b><code>x_xyz</code></b>, <b><code>y</code></b> or \n        <b><code>z</code></b> coordinate or <b><code>x_xyz</code></b> not a\n        <code>Cartesian</code>, <a \n        href=\"pygeodesy.ecef.Ecef9Tuple-class.html\" \n        class=\"link\">Ecef9Tuple</a>, <a \n        href=\"pygeodesy.namedTuples.Vector3Tuple-class.html\" \n        class=\"link\">Vector3Tuple</a> or <a \n        href=\"pygeodesy.namedTuples.Vector4Tuple-class.html\" \n        class=\"link\">Vector4Tuple</a> or <b><code>datum</code></b> is not a\n        <a href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"cassini\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">cassini</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">pointB</span>,\n        <span class=\"sig-arg\">pointC</span>,\n        <span class=\"sig-arg\">alpha</span>,\n        <span class=\"sig-arg\">beta</span>,\n        <span class=\"sig-arg\">useZ</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>3-Point resection between this and 2 other points using <a \n  href=\"https://NL.WikiPedia.org/wiki/Achterwaartse_insnijding\" \n  target=\"_top\">Cassini</a>'s method.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>pointB</code></strong> - Second point (<code>Cartesian</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <code>Vector3Tuple</code>, \n          <code>Vector4Tuple</code> or <code>Vector2Tuple</code> if \n          <code><b>useZ</b>=False</code>).</li>\n        <li><strong class=\"pname\"><code>pointC</code></strong> - Center point (<code>Cartesian</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <code>Vector3Tuple</code>, \n          <code>Vector4Tuple</code> or <code>Vector2Tuple</code> if \n          <code><b>useZ</b>=False</code>).</li>\n        <li><strong class=\"pname\"><code>alpha</code></strong> - Angle subtended by triangle side <code>b</code> from \n          <b><code>pointA</code></b> to <b><code>pointC</code></b> \n          (<code>degrees</code>, non-negative).</li>\n        <li><strong class=\"pname\"><code>beta</code></strong> - Angle subtended by triangle side <code>a</code> from \n          <b><code>pointB</code></b> to <b><code>pointC</code></b> \n          (<code>degrees</code>, non-negative).</li>\n        <li><strong class=\"pname\"><code>useZ</code></strong> - If <code>True</code>, use and interpolate the Z component, \n          otherwise force <code>z=INT0</code> (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The survey point, an instance of this (sub-)class.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.resections.ResectionError-class.html\">ResectionError</a></strong></code> - Near-coincident, -colinear or -concyclic points or negative or \n        invalid <b><code>alpha</code></b> or <b><code>beta</code></b>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>pointA</code></b>, <b><code>pointB</code></b> or \n        <b><code>pointM</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        Typically, <b><code>pointC</code></b> is between this and \n        <b><code>pointB</code></b>.\n      </p>\n      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.resections-module.html#cassini\" \n        class=\"link\">pygeodesy.cassini</a> for references and more details.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"collins\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">collins</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">pointB</span>,\n        <span class=\"sig-arg\">pointC</span>,\n        <span class=\"sig-arg\">alpha</span>,\n        <span class=\"sig-arg\">beta</span>,\n        <span class=\"sig-arg\">useZ</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use method <a \n  href=\"pygeodesy.cartesianBase.CartesianBase-class.html#collins5\" \n  class=\"link\">collins5</a>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_method</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"collins5\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">collins5</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">pointB</span>,\n        <span class=\"sig-arg\">pointC</span>,\n        <span class=\"sig-arg\">alpha</span>,\n        <span class=\"sig-arg\">beta</span>,\n        <span class=\"sig-arg\">useZ</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>3-Point resection between this and 2 other points using <a \n  href=\"https://Dokumen.tips/documents/three-point-resection-problem-introduction-kaestner-burkhardt-method.html\"\n  target=\"_top\">Collins</a>' method.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>pointB</code></strong> - Second point (<code>Cartesian</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <code>Vector3Tuple</code>, \n          <code>Vector4Tuple</code> or <code>Vector2Tuple</code> if \n          <code><b>useZ</b>=False</code>).</li>\n        <li><strong class=\"pname\"><code>pointC</code></strong> - Center point (<code>Cartesian</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <code>Vector3Tuple</code>, \n          <code>Vector4Tuple</code> or <code>Vector2Tuple</code> if \n          <code><b>useZ</b>=False</code>).</li>\n        <li><strong class=\"pname\"><code>alpha</code></strong> - Angle subtended by triangle side <code>b</code> from \n          <b><code>pointA</code></b> to <b><code>pointC</code></b> \n          (<code>degrees</code>, non-negative).</li>\n        <li><strong class=\"pname\"><code>beta</code></strong> - Angle subtended by triangle side <code>a</code> from \n          <b><code>pointB</code></b> to <b><code>pointC</code></b> \n          (<code>degrees</code>, non-negative).</li>\n        <li><strong class=\"pname\"><code>useZ</code></strong> - If <code>True</code>, use and interpolate the Z component, \n          otherwise force <code>z=INT0</code> (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><a href=\"pygeodesy.resections.Collins5Tuple-class.html\" \n          class=\"link\">Collins5Tuple</a><code>(pointP, pointH, a, b, \n          c)</code> with survey <code>pointP</code>, auxiliary \n          <code>pointH</code>, each an instance of this (sub-)class and \n          triangle sides <code>a</code>, <code>b</code> and <code>c</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.resections.ResectionError-class.html\">ResectionError</a></strong></code> - Near-coincident, -colinear or -concyclic points or negative or \n        invalid <b><code>alpha</code></b> or <b><code>beta</code></b>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>pointB</code></b> or <b><code>pointM</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        Typically, <b><code>pointC</code></b> is between this and \n        <b><code>pointB</code></b>.\n      </p>\n      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.resections-module.html#collins5\" \n        class=\"link\">pygeodesy.collins5</a> for references and more \n        details.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"convertDatum\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">convertDatum</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">datum2</span>,\n        <span class=\"sig-arg\">**datum</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use method <a \n  href=\"pygeodesy.cartesianBase.CartesianBase-class.html#toDatum\" \n  class=\"link\">toDatum</a>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_method</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"destinationXyz\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">destinationXyz</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">delta</span>,\n        <span class=\"sig-arg\">Cartesian</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**name_Cartesian_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Calculate the destination using a <i>local</i> delta from this \n  cartesian.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>delta</code></strong> - Local delta to the destination (<a \n          href=\"pygeodesy.ltpTuples.XyzLocal-class.html\" \n          class=\"link\">XyzLocal</a>, <a \n          href=\"pygeodesy.ltpTuples.Enu-class.html\" class=\"link\">Enu</a>, \n          <a href=\"pygeodesy.ltpTuples.Ned-class.html\" class=\"link\">Ned</a>\n          or <a href=\"pygeodesy.ltpTuples.Local9Tuple-class.html\" \n          class=\"link\">Local9Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>Cartesian</code></strong> - Optional (geocentric) class to return the destination or \n          <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>name_Cartesian_kwds</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>) and \n          optionally, additional <b><code>Cartesian</code></b> keyword \n          arguments, ignored if <code><b>Cartesian</b> is None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Destination as a <code><b>Cartesian</b>(x, y, z, \n          **<b>Cartesian_kwds</b>)</code> instance or if \n          <code><b>Cartesian</b> is None</code>, an <a \n          href=\"pygeodesy.ecef.Ecef9Tuple-class.html\" \n          class=\"link\">Ecef9Tuple</a><code>(x, y, z, lat, lon, height, C, \n          M, datum)</code> with <code>M=None</code> always.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>delta</code></b>, <b><code>Cartesian</code></b> or\n        <b><code>Cartesian_kwds</code></b> item or <code>datum</code> \n        missing or incompatible.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"hartzell\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">hartzell</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">los</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">earth</span>=<span class=\"sig-default\">None</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the intersection of a Line-Of-Sight from this cartesian \n  Point-Of-View (pov) and this cartesian's <code>datum</code> ellipsoid \n  surface.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>los</code></strong> - Line-Of-Sight, <i>direction</i> to the ellipsoid (<a \n          href=\"pygeodesy.ltpTuples.Los-class.html\" class=\"link\">Los</a>, \n          <a href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>), <code>True</code> for the <i>normal, \n          plumb</i> onto the surface or <i>False</i> or <code>None</code> \n          to point to the center of the ellipsoid.</li>\n        <li><strong class=\"pname\"><code>earth</code></strong> - The earth model (<a href=\"pygeodesy.datums.Datum-class.html\" \n          class=\"link\">Datum</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a>, <a \n          href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a> or <code>scalar</code> radius in \n          <code>meter</code>), overriding this cartesian's datum.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The intersection (<code>Cartesian</code>) with \n          <code>.height</code> set to the distance to this \n          <code>pov</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.IntersectionError-class.html\">IntersectionError</a></strong></code> - Null or bad <code>pov</code> or <b><code>los</code></b>, this \n        <code>pov</code> is inside the ellipsoid or <b><code>los</code></b>\n        points outside or away from the ellipsoid.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>los</code></b> or invalid or undefined \n        <b><code>earth</code></b> or <code>datum</code>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.formy-module.html#hartzell\" \n        class=\"link\">hartzell</a> for further details.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"height3\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">height3</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">earth</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">height</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**Cartesian_and_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the cartesian at a height above or below this certesian's \n  <code>datum</code> ellipsoid surface.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>earth</code></strong> - A datum, ellipsoid, triaxial ellipsoid or earth radius, \n          <i>overriding</i> this cartesian's datum (<a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>, \n          <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a>, <a \n          href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a> or <code>meter</code>, \n          conventionally).</li>\n        <li><strong class=\"pname\"><code>height</code></strong> - The height (<code>meter</code>, conventionally), overriding this \n          cartesian's height.</li>\n        <li><strong class=\"pname\"><code>Cartesian_and_kwds</code></strong> - Optional <code><b>Cartesian</b>=None</code> class to return the \n          cartesian <i>at height</i> and additional \n          <b><code>Cartesian</code></b> keyword arguments.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>An instance of <b><code>Cartesian</code></b> or if \n          <code><b>Cartesian</b> is None</code>, a <a \n          href=\"pygeodesy.namedTuples.Vector3Tuple-class.html\" \n          class=\"link\">Vector3Tuple</a><code>(x, y, z)</code> with the \n          <code>x</code>, <code>y</code> and <code>z</code> coordinates \n          <i>at height</i> in <code>meter</code>, conventionally.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid or undefined <b><code>earth</code></b> or \n        <code>datum</code>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <strong>Notes:</strong>\n      <ul class=\"nomargin-top\">\n        <li>\n        This cartesian's coordinates are returned if \n        <b><code>earth</code></b> and this datum or \n        <b><code>height</code></b> and/or this height are <code>None</code>\n        or undefined.\n        </li>\n        <li>\n        Include keyword argument <code><b>datum</b>=None</code> if class \n        <b><code>Cartesian</code></b> does not accept a \n        <b><code>datum</code></b> keyword agument.\n        </li>\n      </ul>\n</div></td></tr></table>\n</div>\n<a name=\"height4\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">height4</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">earth</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">normal</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">**Cartesian_and_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the projection of this point on and the height above or below \n  this datum's ellipsoid surface.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>earth</code></strong> - A datum, ellipsoid, triaxial ellipsoid or earth radius, \n          <i>overriding</i> this datum (<a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>, \n          <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a>, <a \n          href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>, <a \n          href=\"pygeodesy.triaxials.triaxial5.Triaxial-class.html\" \n          class=\"link\">Triaxial</a>, <a \n          href=\"pygeodesy.triaxials.triaxial5.Triaxial_-class.html\" \n          class=\"link\">Triaxial_</a>, <a \n          href=\"pygeodesy.deprecated.classes.JacobiConformal-class.html\" \n          class=\"link\">JacobiConformal</a> or <code>meter</code>, \n          conventionally).</li>\n        <li><strong class=\"pname\"><code>normal</code></strong> - If <code>True</code>, the projection is the nearest point on the \n          ellipsoid's surface, otherwise the intersection of the radial \n          line to the ellipsoid's center and surface <code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>Cartesian_and_kwds</code></strong> - Optional <code><b>Cartesian</b>=None</code> class to return the \n          <i>projection</i> and additional <b><code>Cartesian</code></b> \n          keyword arguments.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>An instance of <b><code>Cartesian</code></b> or if \n          <code><b>Cartesian</b> is None</code>, a <a \n          href=\"pygeodesy.namedTuples.Vector4Tuple-class.html\" \n          class=\"link\">Vector4Tuple</a><code>(x, y, z, h)</code> with the \n          <i>projection</i> <code>x</code>, <code>y</code> and \n          <code>z</code> coordinates and height <code>h</code> in \n          <code>meter</code>, conventionally.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.triaxials.bases.TriaxialError-class.html\">TriaxialError</a></strong></code> - No convergence in triaxial root finding.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid or undefined <b><code>earth</code></b> or \n        <code>datum</code>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        Include keyword argument <code><b>datum</b>=None</code> if class \n        <b><code>Cartesian</code></b> does not accept a \n        <b><code>datum</code></b> keyword agument.\n      </p>\n      <p><strong>See Also:</strong>\n        Methods <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#height4\"\n        class=\"link\">Ellipsoid.height4</a> and <a \n        href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#height4\"\n        class=\"link\">Triaxial_.height4</a> for more information.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"pierlot\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">pierlot</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">point2</span>,\n        <span class=\"sig-arg\">point3</span>,\n        <span class=\"sig-arg\">alpha12</span>,\n        <span class=\"sig-arg\">alpha23</span>,\n        <span class=\"sig-arg\">useZ</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">eps</span>=<span class=\"sig-default\">2.220446049250313e-16</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>3-Point resection between this and two other points using <a \n  href=\"http://www.Telecom.ULg.ac.Be/triangulation\" \n  target=\"_top\">Pierlot</a>'s method <code>ToTal</code> with \n  <i>approximate</i> limits for the (pseudo-)singularities.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>point2</code></strong> - Second point (<code>Cartesian</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <code>Vector3Tuple</code>, \n          <code>Vector4Tuple</code> or <code>Vector2Tuple</code> if \n          <code><b>useZ</b>=False</code>).</li>\n        <li><strong class=\"pname\"><code>point3</code></strong> - Third point (<code>Cartesian</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <code>Vector3Tuple</code>, \n          <code>Vector4Tuple</code> or <code>Vector2Tuple</code> if \n          <code><b>useZ</b>=False</code>).</li>\n        <li><strong class=\"pname\"><code>alpha12</code></strong> - Angle subtended from this point to <b><code>point2</code></b> or \n          <b><code>alpha2 - alpha</code></b> (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>alpha23</code></strong> - Angle subtended from <b><code>point2</code></b> to \n          <b><code>point3</code></b> or <b><code>alpha3 - alpha2</code></b>\n          (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>useZ</code></strong> - If <code>True</code>, interpolate the Z component, otherwise use \n          <code>z=INT0</code> (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>eps</code></strong> - Tolerance for <code>cot</code> (pseudo-)singularities \n          (<code>float</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The survey (or robot) point, an instance of this (sub-)class.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.resections.ResectionError-class.html\">ResectionError</a></strong></code> - Near-coincident, -colinear or -concyclic points or invalid \n        <b><code>alpha12</code></b> or <b><code>alpha23</code></b>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>point2</code></b> or <b><code>point3</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        This point, <b><code>point2</code></b> and \n        <b><code>point3</code></b> are ordered counter-clockwise.\n      </p>\n      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.resections-module.html#pierlot\" \n        class=\"link\">pygeodesy.pierlot</a> for references and more details.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"pierlotx\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">pierlotx</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">point2</span>,\n        <span class=\"sig-arg\">point3</span>,\n        <span class=\"sig-arg\">alpha1</span>,\n        <span class=\"sig-arg\">alpha2</span>,\n        <span class=\"sig-arg\">alpha3</span>,\n        <span class=\"sig-arg\">useZ</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>3-Point resection between this and two other points using <a \n  href=\"http://www.Telecom.ULg.ac.Be/publi/publications/pierlot/Pierlot2014ANewThree\"\n  target=\"_top\">Pierlot</a>'s method <code>ToTal</code> with <i>exact</i> \n  limits for the (pseudo-)singularities.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>point2</code></strong> - Second point (<code>Cartesian</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <code>Vector3Tuple</code>, \n          <code>Vector4Tuple</code> or <code>Vector2Tuple</code> if \n          <code><b>useZ</b>=False</code>).</li>\n        <li><strong class=\"pname\"><code>point3</code></strong> - Third point (<code>Cartesian</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <code>Vector3Tuple</code>, \n          <code>Vector4Tuple</code> or <code>Vector2Tuple</code> if \n          <code><b>useZ</b>=False</code>).</li>\n        <li><strong class=\"pname\"><code>alpha1</code></strong> - Angle at <b><code>point1</code></b> (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>alpha2</code></strong> - Angle at <b><code>point2</code></b> (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>alpha3</code></strong> - Angle at <b><code>point3</code></b> (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>useZ</code></strong> - If <code>True</code>, interpolate the survey point's Z component,\n          otherwise use <code>z=INT0</code> (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The survey (or robot) point, an instance of this (sub-)class.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.resections.ResectionError-class.html\">ResectionError</a></strong></code> - Near-coincident, -colinear or -concyclic points or invalid \n        <b><code>alpha1</code></b>, <b><code>alpha2</code></b> or \n        <b><code>alpha3</code></b>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>point2</code></b> or <b><code>point3</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.resections-module.html#pierlotx\" \n        class=\"link\">pygeodesy.pierlotx</a> for references and more \n        details.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"tienstra\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">tienstra</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">pointB</span>,\n        <span class=\"sig-arg\">pointC</span>,\n        <span class=\"sig-arg\">alpha</span>,\n        <span class=\"sig-arg\">beta</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">gamma</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">useZ</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use method <a \n  href=\"pygeodesy.cartesianBase.CartesianBase-class.html#tienstra7\" \n  class=\"link\">tienstra7</a>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_method</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"tienstra7\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">tienstra7</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">pointB</span>,\n        <span class=\"sig-arg\">pointC</span>,\n        <span class=\"sig-arg\">alpha</span>,\n        <span class=\"sig-arg\">beta</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">gamma</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">useZ</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>3-Point resection between this and two other points using <a \n  href=\"https://WikiPedia.org/wiki/Tienstra_formula\" \n  target=\"_top\">Tienstra</a>'s formula.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>pointB</code></strong> - Second point (<code>Cartesian</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <code>Vector3Tuple</code>, \n          <code>Vector4Tuple</code> or <code>Vector2Tuple</code> if \n          <code><b>useZ</b>=False</code>).</li>\n        <li><strong class=\"pname\"><code>pointC</code></strong> - Third point (<code>Cartesian</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <code>Vector3Tuple</code>, \n          <code>Vector4Tuple</code> or <code>Vector2Tuple</code> if \n          <code><b>useZ</b>=False</code>).</li>\n        <li><strong class=\"pname\"><code>alpha</code></strong> - Angle subtended by triangle side <code>a</code> from \n          <b><code>pointB</code></b> to <b><code>pointC</code></b> \n          (<code>degrees</code>, non-negative).</li>\n        <li><strong class=\"pname\"><code>beta</code></strong> - Angle subtended by triangle side <code>b</code> from this to \n          <b><code>pointC</code></b> (<code>degrees</code>, non-negative) \n          or <code>None</code> if <code><b>gamma</b> is not None</code>.</li>\n        <li><strong class=\"pname\"><code>gamma</code></strong> - Angle subtended by triangle side <code>c</code> from this to \n          <b><code>pointB</code></b> (<code>degrees</code>, non-negative) \n          or <code>None</code> if <code><b>beta</b> is not None</code>.</li>\n        <li><strong class=\"pname\"><code>useZ</code></strong> - If <code>True</code>, use and interpolate the Z component, \n          otherwise force <code>z=INT0</code> (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><a href=\"pygeodesy.resections.Tienstra7Tuple-class.html\" \n          class=\"link\">Tienstra7Tuple</a><code>(pointP, A, B, C, a, b, \n          c)</code> with survey <code>pointP</code>, an instance of this \n          (sub-)class and triangle angle <code>A</code> at this point, \n          <code>B</code> at <b><code>pointB</code></b> and <code>C</code> \n          at <b><code>pointC</code></b> in <code>degrees</code> and \n          triangle sides <code>a</code>, <code>b</code> and <code>c</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.resections.ResectionError-class.html\">ResectionError</a></strong></code> - Near-coincident, -colinear or -concyclic points or sum of \n        <b><code>alpha</code></b>, <b><code>beta</code></b> and \n        <b><code>gamma</code></b> not <code>360</code> or negative \n        <b><code>alpha</code></b>, <b><code>beta</code></b> or \n        <b><code>gamma</code></b>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>pointB</code></b> or <b><code>pointC</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        This point, <b><code>pointB</code></b> and \n        <b><code>pointC</code></b> are ordered clockwise.\n      </p>\n      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.resections-module.html#tienstra7\" \n        class=\"link\">pygeodesy.tienstra7</a> for references and more \n        details.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"to2ab\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">to2ab</span>&nbsp;(<span class=\"sig-arg\">self</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use property <code>philam</code>.</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.namedTuples.PhiLam2Tuple-class.html\" \n          class=\"link\">PhiLam2Tuple</a><code>(phi, lam)</code>.</dd>\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_method</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"to2ll\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">to2ll</span>&nbsp;(<span class=\"sig-arg\">self</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use property <code>latlon</code>.</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.namedTuples.LatLon2Tuple-class.html\" \n          class=\"link\">LatLon2Tuple</a><code>(lat, lon)</code>.</dd>\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_method</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"to3llh\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">to3llh</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">datum</span>=<span class=\"sig-default\">None</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use property <a \n  href=\"pygeodesy.cartesianBase.CartesianBase-class.html#latlonheight\" \n  class=\"link\">latlonheight</a> or <a \n  href=\"pygeodesy.cartesianBase.CartesianBase-class.html#latlonheightdatum\"\n  class=\"link\">latlonheightdatum</a>.</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.namedTuples.LatLon4Tuple-class.html\" \n          class=\"link\">LatLon4Tuple</a><code>(lat, lon, height, \n          datum)</code>.</dd>\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_method</code></li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        This method returns a <b><code>-4Tuple</code></b> <i>and not a</i> \n        <code>-3Tuple</code> as its name may suggest.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"toDatum\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toDatum</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">datum2</span>,\n        <span class=\"sig-arg\">datum</span>=<span class=\"sig-default\">None</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert this cartesian from one datum to an other.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>datum2</code></strong> - Datum to convert <i>to</i> (<a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>).</li>\n        <li><strong class=\"pname\"><code>datum</code></strong> - Datum to convert <i>from</i> (<a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The converted point (<code>Cartesian</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - <b><code>datum2</code></b> or <b><code>datum</code></b> invalid.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toEcef\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toEcef</span>&nbsp;(<span class=\"sig-arg\">self</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert this cartesian to <i>geodetic</i> (lat-/longitude) \n  coordinates.</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd>An <a href=\"pygeodesy.ecef.Ecef9Tuple-class.html\" \n          class=\"link\">Ecef9Tuple</a><code>(x, y, z, lat, lon, height, C, \n          M, datum)</code> with <code>C</code> and <code>M</code> if \n          available.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.ecef.EcefError-class.html\">EcefError</a></strong></code> - A <code>.datum</code> or an ECEF issue.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toLatLon\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toLatLon</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">datum</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">height</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">LatLon</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**LatLon_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert this cartesian to a <i>geodetic</i> (lat-/longitude) \n  point.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>datum</code></strong> - Optional datum (<a href=\"pygeodesy.datums.Datum-class.html\" \n          class=\"link\">Datum</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a> or <a \n          href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>height</code></strong> - Optional height, overriding the converted height \n          (<code>meter</code>), only if <code><b>LatLon</b> is not \n          None</code>.</li>\n        <li><strong class=\"pname\"><code>LatLon</code></strong> - Optional class to return the geodetic point (<code>LatLon</code>)\n          or <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>LatLon_kwds</code></strong> - Optional, additional <b><code>LatLon</code></b> keyword \n          arguments, ignored if <code><b>LatLon</b> is None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The geodetic point (<b><code>LatLon</code></b>) or if \n          <code><b>LatLon</b>is None</code>, an <a \n          href=\"pygeodesy.ecef.Ecef9Tuple-class.html\" \n          class=\"link\">Ecef9Tuple</a><code>(x, y, z, lat, lon, height, C, \n          M, datum)</code> with <code>C</code> and <code>M</code> if \n          available.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>datum</code></b> or \n        <b><code>LatLon_kwds</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toNvector\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toNvector</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">Nvector</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">datum</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**name_Nvector_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert this cartesian to <code>n-vector</code> components, \n  <i>including height</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>Nvector</code></strong> - Optional class to return the <code>n-vector</code> components \n          (<code>Nvector</code>) or <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>datum</code></strong> - Optional datum (<a href=\"pygeodesy.datums.Datum-class.html\" \n          class=\"link\">Datum</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a> or <a \n          href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>) overriding this cartesian's datum.</li>\n        <li><strong class=\"pname\"><code>name_Nvector_kwds</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>) and \n          optionally, additional <b><code>Nvector</code></b> keyword \n          arguments, ignored if <code><b>Nvector</b> is None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>An <b><code>Nvector</code></b> or a <a \n          href=\"pygeodesy.namedTuples.Vector4Tuple-class.html\" \n          class=\"link\">Vector4Tuple</a><code>(x, y, z, h)</code> if \n          <code><b>Nvector</b> is None</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>Nvector</code></b>, <b><code>datum</code></b> or \n        <b><code>name_Nvector_kwds</code></b> item.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - <b><code>Cartesian</code></b> at origin.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toRtp\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toRtp</span>&nbsp;(<span class=\"sig-arg\">self</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert this cartesian to <i>spherical, polar</i> coordinates.</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd><a href=\"pygeodesy.cartesianBase.RadiusThetaPhi3Tuple-class.html\"\n          class=\"link\">RadiusThetaPhi3Tuple</a><code>(r, theta, phi)</code>\n          with <code>theta</code> and <code>phi</code>, both in <a \n          href=\"pygeodesy.units.Degrees-class.html\" \n          class=\"link\">Degrees</a>.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.cartesianBase-module.html#xyz2rtp_\" \n        class=\"link\">xyz2rtp_</a> and class <a \n        href=\"pygeodesy.cartesianBase.RadiusThetaPhi3Tuple-class.html\" \n        class=\"link\">RadiusThetaPhi3Tuple</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"toStr\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toStr</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">prec</span>=<span class=\"sig-default\">3</span>,\n        <span class=\"sig-arg\">fmt</span>=<span class=\"sig-default\">'[%s]'</span>,\n        <span class=\"sig-arg\">sep</span>=<span class=\"sig-default\">', '</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the string representation of this cartesian.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>prec</code></strong> - Number of (decimal) digits, unstripped (<code>int</code>).</li>\n        <li><strong class=\"pname\"><code>fmt</code></strong> - Enclosing backets format (<code>letter</code>).</li>\n        <li><strong class=\"pname\"><code>sep</code></strong> - Separator to join (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Cartesian represented as &quot;[x, y, z]&quot; \n          (<code>str</code>).</dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.named._Named-class.html#toStr\">named._Named.toStr</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toTransform\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toTransform</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">transform</span>,\n        <span class=\"sig-arg\">inverse</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">datum</span>=<span class=\"sig-default\">None</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Apply a Helmert transform to this cartesian.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>transform</code></strong> - Transform to apply (<a \n          href=\"pygeodesy.datums.Transform-class.html\" \n          class=\"link\">Transform</a> or <a \n          href=\"pygeodesy.trf.TransformXform-class.html\" \n          class=\"link\">TransformXform</a>).</li>\n        <li><strong class=\"pname\"><code>inverse</code></strong> - Apply the inverse of the <code><b>transform</b></code> \n          (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>datum</code></strong> - Datum for the transformed cartesian (<a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>),\n          overriding this cartesian's datum but <i>not</i> taken it into \n          account.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A transformed cartesian (<code>Cartesian</code>) or a copy of \n          this cartesian if <code><b>transform</b>.isunity</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>transform</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toVector\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toVector</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">Vector</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**Vector_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return this cartesian's <i>geocentric</i> components as vector.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>Vector</code></strong> - Optional class to return the <i>geocentric</i> components (<a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>) or <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>Vector_kwds</code></strong> - Optional, additional <b><code>Vector</code></b> keyword \n          arguments, ignored if <code><b>Vector</b> is None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <b><code>Vector</code></b> or a <a \n          href=\"pygeodesy.namedTuples.Vector3Tuple-class.html\" \n          class=\"link\">Vector3Tuple</a><code>(x, y, z)</code> if \n          <code><b>Vector</b> is None</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>Vector</code></b> or \n        <b><code>Vector_kwds</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"datum\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">datum</h3>\n  <p>Class <code>property</code> with a <code>.name</code> attribute.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">datum(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get this cartesian's datum (<a href=\"pygeodesy.datums.Datum-class.html\" \nclass=\"link\">Datum</a>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">datum(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">datum</span>)</span>\n        - Set this cartesian's <code>datum</code> <i>without conversion</i> (<a \nhref=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>), \nellipsoidal or spherical.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"ellipsoidalCartesian\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">ellipsoidalCartesian</h3>\n  <p>Get the <code>Cartesian type</code> iff ellipsoidal, overloaded in <a \n  href=\"pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html\" \n  class=\"link\">CartesianEllipsoidalBase</a>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">ellipsoidalCartesian(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <code>Cartesian type</code> iff ellipsoidal, overloaded in <a \nhref=\"pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html\" \nclass=\"link\">CartesianEllipsoidalBase</a>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"height\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">height</h3>\n  <p>Get the height (<code>meter</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">height(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the height (<code>meter</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">height(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">height</span>)</span>\n        - Set the height (<code>meter</code>).\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"isEllipsoidal\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">isEllipsoidal</h3>\n  <p>Check whether this cartesian is ellipsoidal (<code>bool</code> or \n  <code>None</code> if unknown).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">isEllipsoidal(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Check whether this cartesian is ellipsoidal (<code>bool</code> or \n<code>None</code> if unknown).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"isSpherical\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">isSpherical</h3>\n  <p>Check whether this cartesian is spherical (<code>bool</code> or \n  <code>None</code> if unknown).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">isSpherical(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Check whether this cartesian is spherical (<code>bool</code> or \n<code>None</code> if unknown).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"latlon\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">latlon</h3>\n  <p>Get this cartesian's (geodetic) lat- and longitude in \n  <code>degrees</code> (<a \n  href=\"pygeodesy.namedTuples.LatLon2Tuple-class.html\" \n  class=\"link\">LatLon2Tuple</a><code>(lat, lon)</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">latlon(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get this cartesian's (geodetic) lat- and longitude in <code>degrees</code> \n(<a href=\"pygeodesy.namedTuples.LatLon2Tuple-class.html\" \nclass=\"link\">LatLon2Tuple</a><code>(lat, lon)</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"latlonheight\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">latlonheight</h3>\n  <p>Get this cartesian's (geodetic) lat-, longitude in \n  <code>degrees</code> with height (<a \n  href=\"pygeodesy.namedTuples.LatLon3Tuple-class.html\" \n  class=\"link\">LatLon3Tuple</a><code>(lat, lon, height)</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">latlonheight(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get this cartesian's (geodetic) lat-, longitude in <code>degrees</code> \nwith height (<a href=\"pygeodesy.namedTuples.LatLon3Tuple-class.html\" \nclass=\"link\">LatLon3Tuple</a><code>(lat, lon, height)</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"latlonheightdatum\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">latlonheightdatum</h3>\n  <p>Get this cartesian's (geodetic) lat-, longitude in \n  <code>degrees</code> with height and datum (<a \n  href=\"pygeodesy.namedTuples.LatLon4Tuple-class.html\" \n  class=\"link\">LatLon4Tuple</a><code>(lat, lon, height, datum)</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">latlonheightdatum(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get this cartesian's (geodetic) lat-, longitude in <code>degrees</code> \nwith height and datum (<a \nhref=\"pygeodesy.namedTuples.LatLon4Tuple-class.html\" \nclass=\"link\">LatLon4Tuple</a><code>(lat, lon, height, datum)</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"philam\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">philam</h3>\n  <p>Get this cartesian's (geodetic) lat- and longitude in \n  <code>radians</code> (<a \n  href=\"pygeodesy.namedTuples.PhiLam2Tuple-class.html\" \n  class=\"link\">PhiLam2Tuple</a><code>(phi, lam)</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">philam(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get this cartesian's (geodetic) lat- and longitude in <code>radians</code> \n(<a href=\"pygeodesy.namedTuples.PhiLam2Tuple-class.html\" \nclass=\"link\">PhiLam2Tuple</a><code>(phi, lam)</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"philamheight\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">philamheight</h3>\n  <p>Get this cartesian's (geodetic) lat-, longitude in \n  <code>radians</code> with height (<a \n  href=\"pygeodesy.namedTuples.PhiLam3Tuple-class.html\" \n  class=\"link\">PhiLam3Tuple</a><code>(phi, lam, height)</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">philamheight(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get this cartesian's (geodetic) lat-, longitude in <code>radians</code> \nwith height (<a href=\"pygeodesy.namedTuples.PhiLam3Tuple-class.html\" \nclass=\"link\">PhiLam3Tuple</a><code>(phi, lam, height)</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"philamheightdatum\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">philamheightdatum</h3>\n  <p>Get this cartesian's (geodetic) lat-, longitude in \n  <code>radians</code> with height and datum (<a \n  href=\"pygeodesy.namedTuples.PhiLam4Tuple-class.html\" \n  class=\"link\">PhiLam4Tuple</a><code>(phi, lam, height, datum)</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">philamheightdatum(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get this cartesian's (geodetic) lat-, longitude in <code>radians</code> \nwith height and datum (<a \nhref=\"pygeodesy.namedTuples.PhiLam4Tuple-class.html\" \nclass=\"link\">PhiLam4Tuple</a><code>(phi, lam, height, datum)</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"sphericalCartesian\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">sphericalCartesian</h3>\n  <p>Get the <code>Cartesian type</code> iff spherical, overloaded in <a \n  href=\"pygeodesy.sphericalBase.CartesianSphericalBase-class.html\" \n  class=\"link\">CartesianSphericalBase</a>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">sphericalCartesian(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <code>Cartesian type</code> iff spherical, overloaded in <a \nhref=\"pygeodesy.sphericalBase.CartesianSphericalBase-class.html\" \nclass=\"link\">CartesianSphericalBase</a>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.cartesianBase.RadiusThetaPhi3Tuple-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.cartesianBase.RadiusThetaPhi3Tuple</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.cartesianBase-module.html\">Module&nbsp;cartesianBase</a> ::\n        Class&nbsp;RadiusThetaPhi3Tuple\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.cartesianBase.RadiusThetaPhi3Tuple-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class RadiusThetaPhi3Tuple</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n       object --+            \n                |            \n            tuple --+        \n                    |        \n       object --+   |        \n                |   |        \n     <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+        \n                    |        \n    <a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a> --+    \n                        |    \nnamedTuples._NamedTupleTo --+\n                            |\n                           <strong class=\"uidshort\">RadiusThetaPhi3Tuple</strong>\n</pre>\n\n<hr />\n<p>3-Tuple <code>(r, theta, phi)</code> with radial distance \n  <code>r</code> in <code>meter</code>, inclination <code>theta</code> \n  (with respect to the positive z-axis) and azimuthal angle \n  <code>phi</code> in <a href=\"pygeodesy.units.Degrees-class.html\" \n  class=\"link\">Degrees</a> <i>or</i> <a \n  href=\"pygeodesy.units.Radians-class.html\" class=\"link\">Radians</a> \n  representing a <a \n  href=\"https://WikiPedia.org/wiki/Spherical_coordinate_system\" \n  target=\"_top\">spherical, polar position</a>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.cartesianBase.RadiusThetaPhi3Tuple-class.html#toCartesian\" class=\"summary-sig-name\">toCartesian</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">**name_Cartesian_and_kwds</span>)</span><br />\n      Convert this <a \n      href=\"pygeodesy.cartesianBase.RadiusThetaPhi3Tuple-class.html\" \n      class=\"link\">RadiusThetaPhi3Tuple</a> to a cartesian <code>(x, y, \n      z)</code> vector.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.cartesianBase.RadiusThetaPhi3Tuple-class.html#toDegrees\" class=\"summary-sig-name\">toDegrees</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Convert this <a \n      href=\"pygeodesy.cartesianBase.RadiusThetaPhi3Tuple-class.html\" \n      class=\"link\">RadiusThetaPhi3Tuple</a>'s angles to <a \n      href=\"pygeodesy.units.Degrees-class.html\" class=\"link\">Degrees</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.cartesianBase.RadiusThetaPhi3Tuple-class.html#toRadians\" class=\"summary-sig-name\">toRadians</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Convert this <a \n      href=\"pygeodesy.cartesianBase.RadiusThetaPhi3Tuple-class.html\" \n      class=\"link\">RadiusThetaPhi3Tuple</a>'s angles to <a \n      href=\"pygeodesy.units.Radians-class.html\" class=\"link\">Radians</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__delattr__\">__delattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__getattr__\">__getattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__setattr__\">__setattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#items\">items</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iteritems\">iteritems</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iterunits\">iterunits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#reUnit\">reUnit</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toUnits\">toUnits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>tuple</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__eq__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__iter__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__rmul__</code>,\n      <code>count</code>,\n      <code>index</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__new__\">__new__</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"toCartesian\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toCartesian</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">**name_Cartesian_and_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert this <a \n  href=\"pygeodesy.cartesianBase.RadiusThetaPhi3Tuple-class.html\" \n  class=\"link\">RadiusThetaPhi3Tuple</a> to a cartesian <code>(x, y, \n  z)</code> vector.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>name_Cartesian_and_kwds</code></strong> - Optional <code><b>name</b>=NN</code>, overriding this name and \n          optional class <code><b>Cartesian</b>=None</code> and additional \n          <code><b>Cartesian</b></code> keyword arguments.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <code><b>Cartesian</b>(x, y, z)</code> instance or if no \n          <code><b>Cartesian</b></code> keyword argument is given, a <a \n          href=\"pygeodesy.namedTuples.Vector3Tuple-class.html\" \n          class=\"link\">Vector3Tuple</a><code>(x, y, z)</code> with \n          <code>x</code>, <code>y</code> and <code>z</code> in the same \n          units as radius <code>r</code>, <code>meter</code> \n          conventionally.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.cartesianBase-module.html#rtp2xyz_\" \n        class=\"link\">rtp2xyz_</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"toDegrees\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toDegrees</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert this <a \n  href=\"pygeodesy.cartesianBase.RadiusThetaPhi3Tuple-class.html\" \n  class=\"link\">RadiusThetaPhi3Tuple</a>'s angles to <a \n  href=\"pygeodesy.units.Degrees-class.html\" class=\"link\">Degrees</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>), \n          overriding this name.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><a href=\"pygeodesy.cartesianBase.RadiusThetaPhi3Tuple-class.html\"\n          class=\"link\">RadiusThetaPhi3Tuple</a><code>(r, theta, phi)</code>\n          with <code>theta</code> and <code>phi</code> both in <a \n          href=\"pygeodesy.units.Degrees-class.html\" \n          class=\"link\">Degrees</a>.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toRadians\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toRadians</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert this <a \n  href=\"pygeodesy.cartesianBase.RadiusThetaPhi3Tuple-class.html\" \n  class=\"link\">RadiusThetaPhi3Tuple</a>'s angles to <a \n  href=\"pygeodesy.units.Radians-class.html\" class=\"link\">Radians</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>), \n          overriding this name.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><a href=\"pygeodesy.cartesianBase.RadiusThetaPhi3Tuple-class.html\"\n          class=\"link\">RadiusThetaPhi3Tuple</a><code>(r, theta, phi)</code>\n          with <code>theta</code> and <code>phi</code> both in <a \n          href=\"pygeodesy.units.Radians-class.html\" \n          class=\"link\">Radians</a>.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.clipy-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.clipy</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        Module&nbsp;clipy\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.clipy-module.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== MODULE DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Module clipy</h1><p class=\"nomargin-top\"></p>\n<p>Clip a path or polygon of <code>LatLon</code> points against a \n  rectangular box or an arbitrary (convex) region.</p>\n  <p>Box clip functions <a href=\"pygeodesy.clipy-module.html#clipCS4\" \n  class=\"link\">clipCS4</a> <i>Cohen-Sutherland</i> and <a \n  href=\"pygeodesy.clipy-module.html#clipLB6\" class=\"link\">clipLB6</a> \n  <i>Liang-Barsky</i>, region clip functions <a \n  href=\"pygeodesy.clipy-module.html#clipFHP4\" class=\"link\">clipFHP4</a> \n  <i>Foster-Hormann-Popa</i>, <a href=\"pygeodesy.clipy-module.html#clipGH4\"\n  class=\"link\">clipGH4</a> <i>Greiner-Hormann</i> and <a \n  href=\"pygeodesy.clipy-module.html#clipSH\" class=\"link\">clipSH</a> and <a \n  href=\"pygeodesy.clipy-module.html#clipSH3\" class=\"link\">clipSH3</a> \n  <i>Sutherland-Hodgeman</i>. .</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Version:</strong>\n        25.10.30\n      </p>\n</div><!-- ==================== CLASSES ==================== -->\n<a name=\"section-Classes\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Classes</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.clipy.ClipCS4Tuple-class.html\" class=\"summary-name\">ClipCS4Tuple</a><br />\n      4-Tuple <code>(start, end, i, j)</code> for each edge of a \n        <i>clipped</i> path with the <code>start</code> and \n        <code>end</code> points (<code>LatLon</code>) of the portion of the\n        edge inside or on the clip box and the indices <code>i</code> and \n        <code>j</code> (<code>int</code>) of the edge start and end points \n        in the original path.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.clipy.ClipFHP4Tuple-class.html\" class=\"summary-name\">ClipFHP4Tuple</a><br />\n      4-Tuple <code>(lat, lon, height, clipid)</code> for each point of \n        the <a href=\"pygeodesy.clipy-module.html#clipFHP4\" \n        class=\"link\">clipFHP4</a> result with the <code>lat</code>-, \n        <code>lon</code>gitude, <code>height</code> and <code>clipid</code>\n        of the polygon or clip.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.clipy.ClipGH4Tuple-class.html\" class=\"summary-name\">ClipGH4Tuple</a><br />\n      4-Tuple <code>(lat, lon, height, clipid)</code> for each point of \n        the <a href=\"pygeodesy.clipy-module.html#clipGH4\" \n        class=\"link\">clipGH4</a> result with the <code>lat</code>-, \n        <code>lon</code>gitude, <code>height</code> and <code>clipid</code>\n        of the polygon or clip.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.clipy.ClipLB6Tuple-class.html\" class=\"summary-name\">ClipLB6Tuple</a><br />\n      6-Tuple <code>(start, end, i, fi, fj, j)</code> for each edge of \n        the <i>clipped</i> path with the <code>start</code> and \n        <code>end</code> points (<code>LatLon</code>) of the portion of the\n        edge inside or on the clip box, indices <code>i</code> and \n        <code>j</code> (both <code>int</code>) of the original path edge \n        start and end points and <i>fractional</i> indices <code>fi</code> \n        and <code>fj</code> (both <a href=\"pygeodesy.units.FIx-class.html\" \n        class=\"link\">FIx</a>) of the <code>start</code> and \n        <code>end</code> points along the edge of the original path.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.clipy.ClipSH3Tuple-class.html\" class=\"summary-name\">ClipSH3Tuple</a><br />\n      3-Tuple <code>(start, end, original)</code> for each edge of a \n        <i>clipped</i> polygon, the <code>start</code> and <code>end</code>\n        points (<code>LatLon</code>) of the portion of the edge inside or \n        on the clip region and <code>original</code> indicates whether the \n        edge is part of the original polygon or part of the clip region \n        (<code>bool</code>).\n    </td>\n  </tr>\n</table>\n<!-- ==================== FUNCTIONS ==================== -->\n<a name=\"section-Functions\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Functions</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.clipy-module.html#clipCS4\" class=\"summary-sig-name\">clipCS4</a>(<span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">lowerleft</span>,\n        <span class=\"summary-sig-arg\">upperight</span>,\n        <span class=\"summary-sig-arg\">closed</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">inull</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Clip a path against a rectangular clip box using the <a \n      href=\"https://WikiPedia.org/wiki/Cohen-Sutherland_algorithm\" \n      target=\"_top\">Cohen-Sutherland</a> algorithm.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.clipy-module.html#clipFHP4\" class=\"summary-sig-name\">clipFHP4</a>(<span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">corners</span>,\n        <span class=\"summary-sig-arg\">closed</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">inull</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">raiser</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">eps</span>=<span class=\"summary-sig-default\">2.220446049250313e-16</span>)</span><br />\n      Clip one or more polygons against a clip region or box using <a \n      href=\"https://www.ScienceDirect.com/science/article/pii/S259014861930007X\"\n      target=\"_top\">Forster-Hormann-Popa</a>'s C++ implementation \n      transcoded to pure Python.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.clipy-module.html#clipGH4\" class=\"summary-sig-name\">clipGH4</a>(<span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">corners</span>,\n        <span class=\"summary-sig-arg\">closed</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">inull</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">raiser</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">xtend</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">eps</span>=<span class=\"summary-sig-default\">2.220446049250313e-16</span>)</span><br />\n      Clip one or more polygons against a clip region or box using the <a \n      href=\"http://www.Inf.USI.CH/hormann/papers/Greiner.1998.ECO.pdf\" \n      target=\"_top\">Greiner-Hormann</a> algorithm, extended.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.clipy-module.html#clipLB6\" class=\"summary-sig-name\">clipLB6</a>(<span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">lowerleft</span>,\n        <span class=\"summary-sig-arg\">upperight</span>,\n        <span class=\"summary-sig-arg\">closed</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">inull</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Clip a path against a rectangular clip box using the <a \n      href=\"https://www.CSE.UNT.edu/~renka/4230/LineClipping.pdf\" \n      target=\"_top\">Liang-Barsky</a> algorithm.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.clipy-module.html#clipSH\" class=\"summary-sig-name\">clipSH</a>(<span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">corners</span>,\n        <span class=\"summary-sig-arg\">closed</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">inull</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Clip a polygon against a clip region or box using the <a \n      href=\"https://WikiPedia.org/wiki/Sutherland-Hodgman_algorithm\" \n      target=\"_top\">Sutherland-Hodgman</a> algorithm.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.clipy-module.html#clipSH3\" class=\"summary-sig-name\">clipSH3</a>(<span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">corners</span>,\n        <span class=\"summary-sig-arg\">closed</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">inull</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Clip a polygon against a clip region or box using the <a \n      href=\"https://WikiPedia.org/wiki/Sutherland-Hodgman_algorithm\" \n      target=\"_top\">Sutherland-Hodgman</a> algorithm.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== VARIABLES ==================== -->\n<a name=\"section-Variables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Variables</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"__all__\"></a><span class=\"summary-name\">__all__</span> = <code title=\"_ALL_LAZY.clipy\">_ALL_LAZY.clipy</code>\n    </td>\n  </tr>\n</table>\n<!-- ==================== FUNCTION DETAILS ==================== -->\n<a name=\"section-FunctionDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Function Details</span></td>\n</tr>\n</table>\n<a name=\"clipCS4\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">clipCS4</span>&nbsp;(<span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">lowerleft</span>,\n        <span class=\"sig-arg\">upperight</span>,\n        <span class=\"sig-arg\">closed</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">inull</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Clip a path against a rectangular clip box using the <a \n  href=\"https://WikiPedia.org/wiki/Cohen-Sutherland_algorithm\" \n  target=\"_top\">Cohen-Sutherland</a> algorithm.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>points</code></strong> - The points (<code>LatLon</code>[]).</li>\n        <li><strong class=\"pname\"><code>lowerleft</code></strong> - Bottom-left corner of the clip box (<code>LatLon</code>).</li>\n        <li><strong class=\"pname\"><code>upperight</code></strong> - Top-right corner of the clip box (<code>LatLon</code>).</li>\n        <li><strong class=\"pname\"><code>closed</code></strong> - Optionally, close the path (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>inull</code></strong> - Optionally, retain null edges if inside (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Yield a <a href=\"pygeodesy.clipy.ClipCS4Tuple-class.html\" \n          class=\"link\">ClipCS4Tuple</a><code>(start, end, i, j)</code> for \n          each edge of the <i>clipped</i> path.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.ClipError-class.html\">ClipError</a></strong></code> - The <b><code>lowerleft</code></b> and <b><code>upperight</code></b>\n        corners specify an invalid clip box.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.PointsError-class.html\">PointsError</a></strong></code> - Insufficient number of <b><code>points</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"clipFHP4\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">clipFHP4</span>&nbsp;(<span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">corners</span>,\n        <span class=\"sig-arg\">closed</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">inull</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">raiser</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">eps</span>=<span class=\"sig-default\">2.220446049250313e-16</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Clip one or more polygons against a clip region or box using <a \n  href=\"https://www.ScienceDirect.com/science/article/pii/S259014861930007X\"\n  target=\"_top\">Forster-Hormann-Popa</a>'s C++ implementation transcoded to\n  pure Python.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>points</code></strong> - The polygon points and clips (<code>LatLon</code>[]).</li>\n        <li><strong class=\"pname\"><code>corners</code></strong> - Three or more points defining the clip regions \n          (<code>LatLon</code>[]) or two points to specify a single, \n          rectangular clip box.</li>\n        <li><strong class=\"pname\"><code>closed</code></strong> - If <code>True</code>, close each result clip (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>inull</code></strong> - If <code>True</code>, retain null edges in result clips \n          (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>raiser</code></strong> - If <code>True</code>, throw <a \n          href=\"pygeodesy.errors.ClipError-class.html\" \n          class=\"link\">ClipError</a> exceptions (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>esp</code></strong> - Tolerance for eliminating null edges (<code>degrees</code>, same \n          units as the <b><code>points</code></b> and \n          <b><code>corners</code></b> coordinates).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Yield a <a href=\"pygeodesy.clipy.ClipFHP4Tuple-class.html\" \n          class=\"link\">ClipFHP4Tuple</a><code>(lat, lon, height, \n          clipid)</code> for each clipped point.  The result may consist of\n          several <i>clips</i>, each a (closed) polygon with a unique \n          <code>clipid</code> identifier.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.ClipError-class.html\">ClipError</a></strong></code> - Insufficient <b><code>points</code></b> or \n        <b><code>corners</code></b> or an open clip.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a \n        href=\"https://www.ScienceDirect.com/science/article/pii/S259014861930007X\"\n        target=\"_top\">Forster, Hormann and Popa</a> and class <a \n        href=\"pygeodesy.booleans.BooleanFHP-class.html\" \n        class=\"link\">BooleanFHP</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"clipGH4\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">clipGH4</span>&nbsp;(<span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">corners</span>,\n        <span class=\"sig-arg\">closed</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">inull</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">raiser</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">xtend</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">eps</span>=<span class=\"sig-default\">2.220446049250313e-16</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Clip one or more polygons against a clip region or box using the <a \n  href=\"http://www.Inf.USI.CH/hormann/papers/Greiner.1998.ECO.pdf\" \n  target=\"_top\">Greiner-Hormann</a> algorithm, extended.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>points</code></strong> - The polygon points and clips (<code>LatLon</code>[]).</li>\n        <li><strong class=\"pname\"><code>corners</code></strong> - Three or more points defining the clip regions \n          (<code>LatLon</code>[]) or two points to specify a single, \n          rectangular clip box.</li>\n        <li><strong class=\"pname\"><code>closed</code></strong> - If <code>True</code>, close each result clip (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>inull</code></strong> - If <code>True</code>, retain null edges in result clips \n          (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>raiser</code></strong> - If <code>True</code>, throw <a \n          href=\"pygeodesy.errors.ClipError-class.html\" \n          class=\"link\">ClipError</a> exceptions (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>xtend</code></strong> - If <code>True</code>, extend edges of <i>degenerate cases</i>, an\n          attempt to handle the latter (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>esp</code></strong> - Tolerance for eliminating null edges (<code>degrees</code>, same \n          units as the <b><code>points</code></b> and \n          <b><code>corners</code></b> coordinates).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Yield a <a href=\"pygeodesy.clipy.ClipGH4Tuple-class.html\" \n          class=\"link\">ClipGH4Tuple</a><code>(lat, lon, height, \n          clipid)</code> for each clipped point.  The result may consist of\n          several <i>clips</i>, each a (closed) polygon with a unique \n          <code>clipid</code> identifier.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.ClipError-class.html\">ClipError</a></strong></code> - Insufficient <b><code>points</code></b> or \n        <b><code>corners</code></b>, an open clip, a <i>degenerate case</i>\n        or <i>unhandled</i> intersection.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        To handle <i>degenerate cases</i> like <code>point-edge</code> and \n        <code>point-point</code> intersections <i>properly</i>, use \n        function <a href=\"pygeodesy.clipy-module.html#clipFHP4\" \n        class=\"link\">clipFHP4</a>.\n      </p>\n      <p><strong>See Also:</strong>\n        <a \n        href=\"https://WikiPedia.org/wiki/Greiner&#8211;Hormann_clipping_algorithm\"\n        target=\"_top\">Greiner-Hormann</a> and class <a \n        href=\"pygeodesy.booleans.BooleanGH-class.html\" \n        class=\"link\">BooleanGH</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"clipLB6\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">clipLB6</span>&nbsp;(<span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">lowerleft</span>,\n        <span class=\"sig-arg\">upperight</span>,\n        <span class=\"sig-arg\">closed</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">inull</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Clip a path against a rectangular clip box using the <a \n  href=\"https://www.CSE.UNT.edu/~renka/4230/LineClipping.pdf\" \n  target=\"_top\">Liang-Barsky</a> algorithm.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>points</code></strong> - The points (<code>LatLon</code>[]).</li>\n        <li><strong class=\"pname\"><code>lowerleft</code></strong> - Bottom-left corner of the clip box (<code>LatLon</code>).</li>\n        <li><strong class=\"pname\"><code>upperight</code></strong> - Top-right corner of the clip box (<code>LatLon</code>).</li>\n        <li><strong class=\"pname\"><code>closed</code></strong> - Optionally, close the path (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>inull</code></strong> - Optionally, retain null edges if inside (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Yield a <a href=\"pygeodesy.clipy.ClipLB6Tuple-class.html\" \n          class=\"link\">ClipLB6Tuple</a><code>(start, end, i, fi, fj, \n          j)</code> for each edge of the <i>clipped</i> path.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.ClipError-class.html\">ClipError</a></strong></code> - The <b><code>lowerleft</code></b> and <b><code>upperight</code></b>\n        corners specify an invalid clip box.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.PointsError-class.html\">PointsError</a></strong></code> - Insufficient number of <b><code>points</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a \n        href=\"https://www.CS.Helsinki.FI/group/goa/viewing/leikkaus/intro.html\"\n        target=\"_top\">Liang-Barsky Line Clipping</a>, <a \n        href=\"https://www.Skytopia.com/project/articles/compsci/clipping.html\"\n        target=\"_top\">Liang-Barsky line clipping algorithm</a> and <a \n        href=\"https://WikiPedia.org/wiki/Liang-Barsky_algorithm\" \n        target=\"_top\">Liang-Barsky algorithm</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"clipSH\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">clipSH</span>&nbsp;(<span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">corners</span>,\n        <span class=\"sig-arg\">closed</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">inull</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Clip a polygon against a clip region or box using the <a \n  href=\"https://WikiPedia.org/wiki/Sutherland-Hodgman_algorithm\" \n  target=\"_top\">Sutherland-Hodgman</a> algorithm.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>points</code></strong> - The polygon points (<code>LatLon</code>[]).</li>\n        <li><strong class=\"pname\"><code>corners</code></strong> - Three or more points defining a convex clip region \n          (<code>LatLon</code>[]) or two points to specify a rectangular \n          clip box.</li>\n        <li><strong class=\"pname\"><code>closed</code></strong> - Close the clipped points (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>inull</code></strong> - Optionally, include null edges (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Yield the clipped points (<code>LatLon</code>[]).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.ClipError-class.html\">ClipError</a></strong></code> - The <b><code>corners</code></b> specify a polar, zero-area, \n        non-convex or otherwise invalid clip box or region.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.PointsError-class.html\">PointsError</a></strong></code> - Insufficient number of <b><code>points</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"clipSH3\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">clipSH3</span>&nbsp;(<span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">corners</span>,\n        <span class=\"sig-arg\">closed</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">inull</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Clip a polygon against a clip region or box using the <a \n  href=\"https://WikiPedia.org/wiki/Sutherland-Hodgman_algorithm\" \n  target=\"_top\">Sutherland-Hodgman</a> algorithm.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>points</code></strong> - The polygon points (<code>LatLon</code>[]).</li>\n        <li><strong class=\"pname\"><code>corners</code></strong> - Three or more points defining a convex clip region \n          (<code>LatLon</code>[]) or two points to specify a rectangular \n          clip box.</li>\n        <li><strong class=\"pname\"><code>closed</code></strong> - Close the clipped points (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>inull</code></strong> - Optionally, include null edges (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Yield a <a href=\"pygeodesy.clipy.ClipSH3Tuple-class.html\" \n          class=\"link\">ClipSH3Tuple</a><code>(start, end, original)</code> \n          for each edge of the <i>clipped</i> polygon.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.ClipError-class.html\">ClipError</a></strong></code> - The <b><code>corners</code></b> specify a polar, zero-area, \n        non-convex or otherwise invalid clip box or region.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.PointsError-class.html\">PointsError</a></strong></code> - Insufficient number of <b><code>points</code></b> or \n        <b><code>corners</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.clipy.ClipCS4Tuple-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.clipy.ClipCS4Tuple</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.clipy-module.html\">Module&nbsp;clipy</a> ::\n        Class&nbsp;ClipCS4Tuple\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.clipy.ClipCS4Tuple-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class ClipCS4Tuple</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n   object --+        \n            |        \n        tuple --+    \n                |    \n   object --+   |    \n            |   |    \n <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n                |    \n<a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a> --+\n                    |\n                   <strong class=\"uidshort\">ClipCS4Tuple</strong>\n</pre>\n\n<hr />\n<p>4-Tuple <code>(start, end, i, j)</code> for each edge of a \n  <i>clipped</i> path with the <code>start</code> and <code>end</code> \n  points (<code>LatLon</code>) of the portion of the edge inside or on the \n  clip box and the indices <code>i</code> and <code>j</code> \n  (<code>int</code>) of the edge start and end points in the original \n  path.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__delattr__\">__delattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__getattr__\">__getattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__setattr__\">__setattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#items\">items</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iteritems\">iteritems</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iterunits\">iterunits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#reUnit\">reUnit</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toUnits\">toUnits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>tuple</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__eq__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__iter__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__rmul__</code>,\n      <code>count</code>,\n      <code>index</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__new__\">__new__</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.clipy.ClipFHP4Tuple-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.clipy.ClipFHP4Tuple</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.clipy-module.html\">Module&nbsp;clipy</a> ::\n        Class&nbsp;ClipFHP4Tuple\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.clipy.ClipFHP4Tuple-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class ClipFHP4Tuple</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n   object --+        \n            |        \n        tuple --+    \n                |    \n   object --+   |    \n            |   |    \n <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n                |    \n<a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a> --+\n                    |\n                   <strong class=\"uidshort\">ClipFHP4Tuple</strong>\n</pre>\n\n<dl><dt>Known Subclasses:</dt>\n<dd>\n      <ul class=\"subclass-list\">\n<li><a href=\"pygeodesy.clipy.ClipGH4Tuple-class.html\">ClipGH4Tuple</a></li>  </ul>\n</dd></dl>\n\n<hr />\n<p>4-Tuple <code>(lat, lon, height, clipid)</code> for each point of the \n  <a href=\"pygeodesy.clipy-module.html#clipFHP4\" class=\"link\">clipFHP4</a> \n  result with the <code>lat</code>-, <code>lon</code>gitude, \n  <code>height</code> and <code>clipid</code> of the polygon or clip.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Note:</strong>\n        The <code>height</code> is a <a \n        href=\"pygeodesy.units.HeightX-class.html\" class=\"link\">HeightX</a> \n        instance if this point is an intersection, otherwise a <a \n        href=\"pygeodesy.units.Height-class.html\" class=\"link\">Height</a> or\n        <code>int(0)</code>.\n      </p>\n</div><!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__delattr__\">__delattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__getattr__\">__getattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__setattr__\">__setattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#items\">items</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iteritems\">iteritems</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iterunits\">iterunits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#reUnit\">reUnit</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toUnits\">toUnits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>tuple</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__eq__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__iter__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__rmul__</code>,\n      <code>count</code>,\n      <code>index</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__new__\">__new__</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.clipy.ClipFHP4Tuple-class.html#isintersection\" class=\"summary-name\">isintersection</a><br />\n      Is this an intersection?\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.clipy.ClipFHP4Tuple-class.html#ispoint\" class=\"summary-name\">ispoint</a><br />\n      Is this an original (polygon) point?\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"isintersection\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">isintersection</h3>\n  <p>Is this an intersection?</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">isintersection(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Is this an intersection?\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"ispoint\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">ispoint</h3>\n  <p>Is this an original (polygon) point?</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">ispoint(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Is this an original (polygon) point?\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.clipy.ClipGH4Tuple-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.clipy.ClipGH4Tuple</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.clipy-module.html\">Module&nbsp;clipy</a> ::\n        Class&nbsp;ClipGH4Tuple\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.clipy.ClipGH4Tuple-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class ClipGH4Tuple</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n   object --+            \n            |            \n        tuple --+        \n                |        \n   object --+   |        \n            |   |        \n <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+        \n                |        \n<a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a> --+    \n                    |    \n        <a href=\"pygeodesy.clipy.ClipFHP4Tuple-class.html\">ClipFHP4Tuple</a> --+\n                        |\n                       <strong class=\"uidshort\">ClipGH4Tuple</strong>\n</pre>\n\n<hr />\n<p>4-Tuple <code>(lat, lon, height, clipid)</code> for each point of the \n  <a href=\"pygeodesy.clipy-module.html#clipGH4\" class=\"link\">clipGH4</a> \n  result with the <code>lat</code>-, <code>lon</code>gitude, \n  <code>height</code> and <code>clipid</code> of the polygon or clip.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Note:</strong>\n        The <code>height</code> is a <a \n        href=\"pygeodesy.units.HeightX-class.html\" class=\"link\">HeightX</a> \n        instance if this is an intersection, otherwise a <a \n        href=\"pygeodesy.units.Height-class.html\" class=\"link\">Height</a> or\n        <code>int(0)</code>.\n      </p>\n</div><!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__delattr__\">__delattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__getattr__\">__getattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__setattr__\">__setattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#items\">items</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iteritems\">iteritems</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iterunits\">iterunits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#reUnit\">reUnit</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toUnits\">toUnits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>tuple</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__eq__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__iter__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__rmul__</code>,\n      <code>count</code>,\n      <code>index</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__new__\">__new__</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.clipy.ClipFHP4Tuple-class.html\">ClipFHP4Tuple</a></code></b>:\n      <code><a href=\"pygeodesy.clipy.ClipFHP4Tuple-class.html#isintersection\">isintersection</a></code>,\n      <code><a href=\"pygeodesy.clipy.ClipFHP4Tuple-class.html#ispoint\">ispoint</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.clipy.ClipLB6Tuple-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.clipy.ClipLB6Tuple</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.clipy-module.html\">Module&nbsp;clipy</a> ::\n        Class&nbsp;ClipLB6Tuple\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.clipy.ClipLB6Tuple-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class ClipLB6Tuple</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n   object --+        \n            |        \n        tuple --+    \n                |    \n   object --+   |    \n            |   |    \n <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n                |    \n<a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a> --+\n                    |\n                   <strong class=\"uidshort\">ClipLB6Tuple</strong>\n</pre>\n\n<hr />\n<p>6-Tuple <code>(start, end, i, fi, fj, j)</code> for each edge of the \n  <i>clipped</i> path with the <code>start</code> and <code>end</code> \n  points (<code>LatLon</code>) of the portion of the edge inside or on the \n  clip box, indices <code>i</code> and <code>j</code> (both \n  <code>int</code>) of the original path edge start and end points and \n  <i>fractional</i> indices <code>fi</code> and <code>fj</code> (both <a \n  href=\"pygeodesy.units.FIx-class.html\" class=\"link\">FIx</a>) of the \n  <code>start</code> and <code>end</code> points along the edge of the \n  original path.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Class <a href=\"pygeodesy.units.FIx-class.html\" class=\"link\">FIx</a>\n        and function <a href=\"pygeodesy.points-module.html#fractional\" \n        class=\"link\">pygeodesy.fractional</a>.\n      </p>\n</div><!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__delattr__\">__delattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__getattr__\">__getattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__setattr__\">__setattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#items\">items</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iteritems\">iteritems</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iterunits\">iterunits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#reUnit\">reUnit</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toUnits\">toUnits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>tuple</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__eq__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__iter__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__rmul__</code>,\n      <code>count</code>,\n      <code>index</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__new__\">__new__</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.clipy.ClipSH3Tuple-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.clipy.ClipSH3Tuple</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.clipy-module.html\">Module&nbsp;clipy</a> ::\n        Class&nbsp;ClipSH3Tuple\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.clipy.ClipSH3Tuple-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class ClipSH3Tuple</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n   object --+        \n            |        \n        tuple --+    \n                |    \n   object --+   |    \n            |   |    \n <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n                |    \n<a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a> --+\n                    |\n                   <strong class=\"uidshort\">ClipSH3Tuple</strong>\n</pre>\n\n<hr />\n<p>3-Tuple <code>(start, end, original)</code> for each edge of a \n  <i>clipped</i> polygon, the <code>start</code> and <code>end</code> \n  points (<code>LatLon</code>) of the portion of the edge inside or on the \n  clip region and <code>original</code> indicates whether the edge is part \n  of the original polygon or part of the clip region \n  (<code>bool</code>).</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__delattr__\">__delattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__getattr__\">__getattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__setattr__\">__setattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#items\">items</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iteritems\">iteritems</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iterunits\">iterunits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#reUnit\">reUnit</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toUnits\">toUnits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>tuple</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__eq__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__iter__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__rmul__</code>,\n      <code>count</code>,\n      <code>index</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__new__\">__new__</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.constants-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.constants</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        Module&nbsp;constants\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.constants-module.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== MODULE DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Module constants</h1><p class=\"nomargin-top\"></p>\n<p>Single-instance <code>float</code> and <code>int</code> constants \n  across <code>pygeodesy</code> modules and related functions <a \n  href=\"pygeodesy.constants-module.html#float_\" \n  class=\"link\">pygeodesy.float_</a>, <a \n  href=\"pygeodesy.constants-module.html#float0_\" \n  class=\"link\">pygeodesy.float0_</a>, <a \n  href=\"pygeodesy.constants-module.html#isclose\" \n  class=\"link\">pygeodesy.isclose</a>, <a \n  href=\"pygeodesy.constants-module.html#isfinite\" \n  class=\"link\">pygeodesy.isfinite</a>, <a \n  href=\"pygeodesy.constants-module.html#isinf\" \n  class=\"link\">pygeodesy.isinf</a>, <a \n  href=\"pygeodesy.constants-module.html#isint0\" \n  class=\"link\">pygeodesy.isint0</a>, <a \n  href=\"pygeodesy.constants-module.html#isnan\" \n  class=\"link\">pygeodesy.isnan</a>, <a \n  href=\"pygeodesy.constants-module.html#isnear0\" \n  class=\"link\">pygeodesy.isnear0</a>, <a \n  href=\"pygeodesy.constants-module.html#isnear1\" \n  class=\"link\">pygeodesy.isnear1</a>, <a \n  href=\"pygeodesy.constants-module.html#isnear90\" \n  class=\"link\">pygeodesy.isnear90</a>, <a \n  href=\"pygeodesy.constants-module.html#isneg0\" \n  class=\"link\">pygeodesy.isneg0</a>, <a \n  href=\"pygeodesy.constants-module.html#isninf\" \n  class=\"link\">pygeodesy.isninf</a>, <a \n  href=\"pygeodesy.constants-module.html#isnon0\" \n  class=\"link\">pygeodesy.isnon0</a> and <a \n  href=\"pygeodesy.constants-module.html#remainder\" \n  class=\"link\">pygeodesy.remainder</a>.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Version:</strong>\n        26.02.09\n      </p>\n</div><!-- ==================== FUNCTIONS ==================== -->\n<a name=\"section-Functions\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Functions</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">bool</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"isinf\"></a><span class=\"summary-sig-name\">isinf</span>(<span class=\"summary-sig-arg\">x</span>)</span><br />\n      Check if float x is infinite (positive or negative).</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">bool</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"isnan\"></a><span class=\"summary-sig-name\">isnan</span>(<span class=\"summary-sig-arg\">x</span>)</span><br />\n      Check if float x is not a number (NaN).</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.constants-module.html#float_\" class=\"summary-sig-name\">float_</a>(<span class=\"summary-sig-arg\">x</span>,\n        <span class=\"summary-sig-arg\">sets</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Get scalar as <code>float</code> or <i>intern</i>'ed \n      <code>float</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"float0_\"></a><span class=\"summary-sig-name\">float0_</span>(<span class=\"summary-sig-arg\">*xs</span>)</span><br />\n      Yield <code><b>x</b>s</code> as a non-NEG0 <code>float</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.constants-module.html#floats_\" class=\"summary-sig-name\">floats_</a>(<span class=\"summary-sig-arg\">*xs</span>,\n        <span class=\"summary-sig-arg\">**sets</span>)</span><br />\n      Yield each scalar as <code>float</code> or <i>intern</i>'ed \n      <code>float</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"isclose\"></a><span class=\"summary-sig-name\">isclose</span>(<span class=\"summary-sig-arg\">a</span>,\n        <span class=\"summary-sig-arg\">b</span>,\n        <span class=\"summary-sig-arg\">rel_tol</span>=<span class=\"summary-sig-default\">1e-12</span>,\n        <span class=\"summary-sig-arg\">abs_tol</span>=<span class=\"summary-sig-default\">4.930380657631324e-32</span>)</span><br />\n      Like <code>math.isclose</code>, but with defaults such that \n      <code>isclose(0, EPS0)</code> is <code>True</code> by default.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.constants-module.html#isfinite\" class=\"summary-sig-name\">isfinite</a>(<span class=\"summary-sig-arg\">obj</span>)</span><br />\n      Check a finite <code>scalar</code>, <code>complex</code>, ...</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.constants-module.html#isint0\" class=\"summary-sig-name\">isint0</a>(<span class=\"summary-sig-arg\">obj</span>,\n        <span class=\"summary-sig-arg\">both</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Check for <a href=\"pygeodesy.constants-module.html#INT0\" \n      class=\"link\">INT0</a> or <code>int(0)</code> value.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.constants-module.html#isnear0\" class=\"summary-sig-name\">isnear0</a>(<span class=\"summary-sig-arg\">x</span>,\n        <span class=\"summary-sig-arg\">eps0</span>=<span class=\"summary-sig-default\">4.930380657631324e-32</span>)</span><br />\n      Is <b><code>x</code></b> near <i>zero</i> within a tolerance?</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.constants-module.html#isnear1\" class=\"summary-sig-name\">isnear1</a>(<span class=\"summary-sig-arg\">x</span>,\n        <span class=\"summary-sig-arg\">eps1</span>=<span class=\"summary-sig-default\">4.930380657631324e-32</span>)</span><br />\n      Is <b><code>x</code></b> near <i>one</i> within a tolerance?</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.constants-module.html#isnear90\" class=\"summary-sig-name\">isnear90</a>(<span class=\"summary-sig-arg\">x</span>,\n        <span class=\"summary-sig-arg\">eps90</span>=<span class=\"summary-sig-default\">4.930380657631324e-32</span>)</span><br />\n      Is <b><code>x</code></b> near <i>90</i> within a tolerance?</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.constants-module.html#isneg\" class=\"summary-sig-name\">isneg</a>(<span class=\"summary-sig-arg\">x</span>)</span><br />\n      Check for negative <code>x</code>, including <a \n      href=\"pygeodesy.constants-module.html#NEG0\" class=\"link\">NEG0</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.constants-module.html#isneg0\" class=\"summary-sig-name\">isneg0</a>(<span class=\"summary-sig-arg\">x</span>)</span><br />\n      Check for <a href=\"pygeodesy.constants-module.html#NEG0\" \n      class=\"link\">NEG0</a>, negative <code>0.0</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.constants-module.html#isninf\" class=\"summary-sig-name\">isninf</a>(<span class=\"summary-sig-arg\">x</span>)</span><br />\n      Check for <a href=\"pygeodesy.constants-module.html#NINF\" \n      class=\"link\">NINF</a>, negative <code>INF</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.constants-module.html#isnon0\" class=\"summary-sig-name\">isnon0</a>(<span class=\"summary-sig-arg\">x</span>,\n        <span class=\"summary-sig-arg\">eps0</span>=<span class=\"summary-sig-default\">4.930380657631324e-32</span>)</span><br />\n      Is <b><code>x</code></b> non-zero with a tolerance?</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"remainder\"></a><span class=\"summary-sig-name\">remainder</span>(<span class=\"summary-sig-arg\">x</span>,\n        <span class=\"summary-sig-arg\">y</span>)</span><br />\n      Mimick Python 3.7+ <code>math.remainder</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== VARIABLES ==================== -->\n<a name=\"section-Variables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Variables</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"__all__\"></a><span class=\"summary-name\">__all__</span> = <code title=\"_ALL_LAZY.constants\">_ALL_LAZY.constants</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"DIG\"></a><span class=\"summary-name\">DIG</span> = <code title=\"15\">15</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"EPS\"></a><span class=\"summary-name\">EPS</span> = <code title=\"2.220446049250313e-16\">2.220446049250313e-16</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"MANT_DIG\"></a><span class=\"summary-name\">MANT_DIG</span> = <code title=\"53\">53</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"MAX\"></a><span class=\"summary-name\">MAX</span> = <code title=\"1.7976931348623157e+308\">1.7976931348623157e+308</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"MAX_EXP\"></a><span class=\"summary-name\">MAX_EXP</span> = <code title=\"1024\">1024</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"MIN\"></a><span class=\"summary-name\">MIN</span> = <code title=\"2.2250738585072014e-308\">2.2250738585072014e-308</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"MIN_EXP\"></a><span class=\"summary-name\">MIN_EXP</span> = <code title=\"-1021\">-1021</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"EPS0\"></a><span class=\"summary-name\">EPS0</span> = <code title=\"4.930380657631324e-32\">4.930380657631324e-32</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"EPS02\"></a><span class=\"summary-name\">EPS02</span> = <code title=\"2.4308653429145085e-63\">2.4308653429145085e-63</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"EPS_2\"></a><span class=\"summary-name\">EPS_2</span> = <code title=\"1.1102230246251565e-16\">1.1102230246251565e-16</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"EPS1\"></a><span class=\"summary-name\">EPS1</span> = <code title=\"0.9999999999999998\">0.9999999999999998</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"EPS2\"></a><span class=\"summary-name\">EPS2</span> = <code title=\"4.440892098500626e-16\">4.440892098500626e-16</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"EPS4\"></a><span class=\"summary-name\">EPS4</span> = <code title=\"8.881784197001252e-16\">8.881784197001252e-16</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"EPS8\"></a><span class=\"summary-name\">EPS8</span> = <code title=\"1.7763568394002505e-15\">1.7763568394002505e-15</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"OVERFLOW\"></a><span class=\"summary-name\">OVERFLOW</span> = <code title=\"2.028240960365167e+31\">2.028240960365167e+31</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"INF\"></a><span class=\"summary-name\">INF</span> = <code title=\"inf\">inf</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"INT0\"></a><span class=\"summary-name\">INT0</span> = <code title=\"0\">0</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"NAN\"></a><span class=\"summary-name\">NAN</span> = <code title=\"nan\">nan</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"NEG0\"></a><span class=\"summary-name\">NEG0</span> = <code title=\"-0.0\">-0.0</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"NINF\"></a><span class=\"summary-name\">NINF</span> = <code title=\"-inf\">-inf</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"PI\"></a><span class=\"summary-name\">PI</span> = <code title=\"3.141592653589793\">3.141592653589793</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"PI2\"></a><span class=\"summary-name\">PI2</span> = <code title=\"6.283185307179586\">6.283185307179586</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"PI_2\"></a><span class=\"summary-name\">PI_2</span> = <code title=\"1.5707963267948966\">1.5707963267948966</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"PI3\"></a><span class=\"summary-name\">PI3</span> = <code title=\"9.42477796076938\">9.42477796076938</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"PI3_2\"></a><span class=\"summary-name\">PI3_2</span> = <code title=\"4.71238898038469\">4.71238898038469</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"PI_3\"></a><span class=\"summary-name\">PI_3</span> = <code title=\"1.0471975511965976\">1.0471975511965976</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"PI4\"></a><span class=\"summary-name\">PI4</span> = <code title=\"12.566370614359172\">12.566370614359172</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"PI_4\"></a><span class=\"summary-name\">PI_4</span> = <code title=\"0.7853981633974483\">0.7853981633974483</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"PI_6\"></a><span class=\"summary-name\">PI_6</span> = <code title=\"0.5235987755982988\">0.5235987755982988</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"R_MA\"></a><span class=\"summary-name\">R_MA</span> = <code title=\"6378137.0\">6378137.0</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"R_MB\"></a><span class=\"summary-name\">R_MB</span> = <code title=\"6356752.3\">6356752.3</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"R_M\"></a><span class=\"summary-name\">R_M</span> = <code title=\"6371008.771415\">6371008.771415</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"R_KM\"></a><span class=\"summary-name\">R_KM</span> = <code title=\"6371.0087714149995\">6371.0087714149995</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"R_NM\"></a><span class=\"summary-name\">R_NM</span> = <code title=\"3440.06953100162\">3440.06953100162</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"R_SM\"></a><span class=\"summary-name\">R_SM</span> = <code title=\"3958.7613160486508\">3958.7613160486508</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"R_FM\"></a><span class=\"summary-name\">R_FM</span> = <code title=\"6371000.0\">6371000.0</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"R_GM\"></a><span class=\"summary-name\">R_GM</span> = <code title=\"6371230.0\">6371230.0</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"R_QM\"></a><span class=\"summary-name\">R_QM</span> = <code title=\"6372797.560856\">6372797.560856</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"R_VM\"></a><span class=\"summary-name\">R_VM</span> = <code title=\"6366707.0194937\">6366707.0194937</code>\n    </td>\n  </tr>\n</table>\n<!-- ==================== FUNCTION DETAILS ==================== -->\n<a name=\"section-FunctionDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Function Details</span></td>\n</tr>\n</table>\n<a name=\"float_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">float_</span>&nbsp;(<span class=\"sig-arg\">x</span>,\n        <span class=\"sig-arg\">sets</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Get scalar as <code>float</code> or <i>intern</i>'ed \n  <code>float</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>x</code></strong> - The scalar (<code>scalar</code>).</li>\n        <li><strong class=\"pname\"><code>sets</code></strong> - Use <code>True</code> to <code>intern</code> the \n          <b><code>f</code></b>, otherwise don't (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <code>float</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>x</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"floats_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">floats_</span>&nbsp;(<span class=\"sig-arg\">*xs</span>,\n        <span class=\"sig-arg\">**sets</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Yield each scalar as <code>float</code> or <i>intern</i>'ed \n  <code>float</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>xs</code></strong> - One more values (<code>scalar</code>), all positional.</li>\n        <li><strong class=\"pname\"><code>sets</code></strong> - Use <code><b>sets</b>=True</code> to <code>intern</code> each \n          <b><code>fs</code></b>, otherwise don't <code>intern</code>.</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ValueError</strong></code> - Some <b><code>xs</code></b> is not <code>scalar</code>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"isfinite\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">isfinite</span>&nbsp;(<span class=\"sig-arg\">obj</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Check a finite <code>scalar</code>, <code>complex</code>, ... \n  value.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>obj</code></strong> - Value (<code>scalar</code>, <code>complex</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>False</code> if <b><code>obj</code></b> is \n          <code>INF</code>, <code>NINF</code> or <code>NAN</code>, \n          <code>True</code> otherwise.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Non-scalar and non-complex <b><code>obj</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"isint0\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">isint0</span>&nbsp;(<span class=\"sig-arg\">obj</span>,\n        <span class=\"sig-arg\">both</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Check for <a href=\"pygeodesy.constants-module.html#INT0\" \n  class=\"link\">INT0</a> or <code>int(0)</code> value.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>obj</code></strong> - The object (any <code>type</code>).</li>\n        <li><strong class=\"pname\"><code>both</code></strong> - If <code>true</code>, also check <code>float(0)</code> \n          (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>True</code> if <b><code>obj</code></b> is <a \n          href=\"pygeodesy.constants-module.html#INT0\" \n          class=\"link\">INT0</a>, <code>int(0)</code> or \n          <code>float(0)</code>, <code>False</code> otherwise.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"isnear0\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">isnear0</span>&nbsp;(<span class=\"sig-arg\">x</span>,\n        <span class=\"sig-arg\">eps0</span>=<span class=\"sig-default\">4.930380657631324e-32</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Is <b><code>x</code></b> near <i>zero</i> within a tolerance?</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>x</code></strong> - Value (<code>scalar</code>).</li>\n        <li><strong class=\"pname\"><code>eps0</code></strong> - Near-<i>zero</i> tolerance (<code>EPS0</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>True</code> if <code>abs(<b>x</b>) &lt; <b>eps0</b></code>,\n          <code>False</code> otherwise.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.constants-module.html#isnon0\" \n        class=\"link\">isnon0</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"isnear1\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">isnear1</span>&nbsp;(<span class=\"sig-arg\">x</span>,\n        <span class=\"sig-arg\">eps1</span>=<span class=\"sig-default\">4.930380657631324e-32</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Is <b><code>x</code></b> near <i>one</i> within a tolerance?</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>x</code></strong> - Value (<code>scalar</code>).</li>\n        <li><strong class=\"pname\"><code>eps1</code></strong> - Near-<i>one</i> tolerance (<code>EPS0</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>isnear0(<b>x</b> - 1, eps0=<b>eps1</b>)</code>.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.constants-module.html#isnear0\" \n        class=\"link\">isnear0</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"isnear90\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">isnear90</span>&nbsp;(<span class=\"sig-arg\">x</span>,\n        <span class=\"sig-arg\">eps90</span>=<span class=\"sig-default\">4.930380657631324e-32</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Is <b><code>x</code></b> near <i>90</i> within a tolerance?</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>x</code></strong> - Value (<code>scalar</code>).</li>\n        <li><strong class=\"pname\"><code>eps90</code></strong> - Near-<i>90</i> tolerance (<code>EPS0</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>isnear0(<b>x</b> - 90, eps0=eps90)</code>.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.constants-module.html#isnear0\" \n        class=\"link\">isnear0</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"isneg\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">isneg</span>&nbsp;(<span class=\"sig-arg\">x</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Check for negative <code>x</code>, including <a \n  href=\"pygeodesy.constants-module.html#NEG0\" class=\"link\">NEG0</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>x</code></strong> - Value (<code>scalar</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>True</code> if <code><b>x</b> &lt; 0 or NEG0</code>, \n          <code>False</code> otherwise.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"isneg0\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">isneg0</span>&nbsp;(<span class=\"sig-arg\">x</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Check for <a href=\"pygeodesy.constants-module.html#NEG0\" \n  class=\"link\">NEG0</a>, negative <code>0.0</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>x</code></strong> - Value (<code>scalar</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>True</code> if <b><code>x</code></b> is <code>NEG0</code> \n          or <code>-0.0</code>, <code>False</code> otherwise.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"isninf\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">isninf</span>&nbsp;(<span class=\"sig-arg\">x</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Check for <a href=\"pygeodesy.constants-module.html#NINF\" \n  class=\"link\">NINF</a>, negative <code>INF</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>x</code></strong> - Value (<code>scalar</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>True</code> if <b><code>x</code></b> is <code>NINF</code> \n          or <code>-inf</code>, <code>False</code> otherwise.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"isnon0\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">isnon0</span>&nbsp;(<span class=\"sig-arg\">x</span>,\n        <span class=\"sig-arg\">eps0</span>=<span class=\"sig-default\">4.930380657631324e-32</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Is <b><code>x</code></b> non-zero with a tolerance?</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>x</code></strong> - Value (<code>scalar</code>).</li>\n        <li><strong class=\"pname\"><code>eps0</code></strong> - Non-zero tolerance (<code>EPS0</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>True</code> if <code>abs(<b>x</b>) &gt; <b>eps0</b></code>,\n          <code>False</code> otherwise.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.constants-module.html#isnear0\" \n        class=\"link\">isnear0</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.css-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.css</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        Module&nbsp;css\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.css-module.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== MODULE DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Module css</h1><p class=\"nomargin-top\"></p>\n<p>Cassini-Soldner (CSS) projection.</p>\n  <p>Classes <a href=\"pygeodesy.css.CassiniSoldner-class.html\" \n  class=\"link\">CassiniSoldner</a>, <a href=\"pygeodesy.css.Css-class.html\" \n  class=\"link\">Css</a> and <a href=\"pygeodesy.css.CSSError-class.html\" \n  class=\"link\">CSSError</a> use <i>Charles Karney</i>'s <a \n  href=\"https://PyPI.org/project/geographiclib\" \n  target=\"_top\">geographiclib</a> Python package if installed, see property\n  <a href=\"pygeodesy.css.CassiniSoldner-class.html#geodesic\" \n  class=\"link\">CassiniSoldner.geodesic</a>.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Version:</strong>\n        25.04.14\n      </p>\n</div><!-- ==================== CLASSES ==================== -->\n<a name=\"section-Classes\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Classes</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.css.CSSError-class.html\" class=\"summary-name\">CSSError</a><br />\n      Cassini-Soldner (CSS) conversion or other <a \n        href=\"pygeodesy.css.Css-class.html\" class=\"link\">Css</a> issue.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.css.CassiniSoldner-class.html\" class=\"summary-name\">CassiniSoldner</a><br />\n      Cassini-Soldner projection, a Python version of <i>Karney</i>'s C++\n        class <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1CassiniSoldner.html\"\n        target=\"_top\">CassiniSoldner</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.css.Css-class.html\" class=\"summary-name\">Css</a><br />\n      Cassini-Soldner East-/Northing location.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.css.EasNorAziRk4Tuple-class.html\" class=\"summary-name\">EasNorAziRk4Tuple</a><br />\n      4-Tuple <code>(easting, northing, azimuth, reciprocal)</code> for \n        the Cassini-Soldner location with <code>easting</code> and \n        <code>northing</code> in <code>meters</code> and the \n        <code>azimuth</code> of easting direction and \n        <code>reciprocal</code> of azimuthal northing scale, both in \n        <code>degrees</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.css.EasNorAziRkEqu6Tuple-class.html\" class=\"summary-name\">EasNorAziRkEqu6Tuple</a><br />\n      6-Tuple <code>(easting, northing, azimuth, reciprocal, equatorarc, \n        equatorazimuth)</code> for the Cassini-Soldner location with \n        <code>easting</code> and <code>northing</code> in \n        <code>meters</code> and the <code>azimuth</code> of easting \n        direction, <code>reciprocal</code> of azimuthal northing scale, \n        <code>equatorarc</code> and <code>equatorazimuth</code>, all in \n        <code>degrees</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.css.LatLonAziRk4Tuple-class.html\" class=\"summary-name\">LatLonAziRk4Tuple</a><br />\n      4-Tuple <code>(lat, lon, azimuth, reciprocal)</code>, all in \n        <code>degrees</code> where <code>azimuth</code> is the azimuth of \n        easting direction and <code>reciprocal</code> the reciprocal of \n        azimuthal northing scale.\n    </td>\n  </tr>\n</table>\n<!-- ==================== FUNCTIONS ==================== -->\n<a name=\"section-Functions\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Functions</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.css-module.html#toCss\" class=\"summary-sig-name\">toCss</a>(<span class=\"summary-sig-arg\">latlon</span>,\n        <span class=\"summary-sig-arg\">cs0</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">height</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">Css</span>=<span class=\"summary-sig-default\">&lt;class 'pygeodesy.css.Css'&gt;</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Convert an (ellipsoidal) geodetic point to a Cassini-Soldner \n      location.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== VARIABLES ==================== -->\n<a name=\"section-Variables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Variables</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"__all__\"></a><span class=\"summary-name\">__all__</span> = <code title=\"_ALL_LAZY.css\">_ALL_LAZY.css</code>\n    </td>\n  </tr>\n</table>\n<!-- ==================== FUNCTION DETAILS ==================== -->\n<a name=\"section-FunctionDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Function Details</span></td>\n</tr>\n</table>\n<a name=\"toCss\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toCss</span>&nbsp;(<span class=\"sig-arg\">latlon</span>,\n        <span class=\"sig-arg\">cs0</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">height</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">Css</span>=<span class=\"sig-default\">&lt;class 'pygeodesy.css.Css'&gt;</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert an (ellipsoidal) geodetic point to a Cassini-Soldner \n  location.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>latlon</code></strong> - Ellipsoidal point (<code>LatLon</code> or <a \n          href=\"pygeodesy.namedTuples.LatLon4Tuple-class.html\" \n          class=\"link\">LatLon4Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>cs0</code></strong> - Optional, the Cassini-Soldner projection to use (<a \n          href=\"pygeodesy.css.CassiniSoldner-class.html\" \n          class=\"link\">CassiniSoldner</a>).</li>\n        <li><strong class=\"pname\"><code>height</code></strong> - Optional height for the point, overriding the default height \n          (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>Css</code></strong> - Optional class to return the location (<a \n          href=\"pygeodesy.css.Css-class.html\" class=\"link\">Css</a>) or \n          <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <b><code>Css</code></b> <code><b>name</b>=NN</code> \n          (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The Cassini-Soldner location (<b><code>Css</code></b>) or if \n          <code><b>Css</b> is None</code>, an <a \n          href=\"pygeodesy.namedTuples.EasNor3Tuple-class.html\" \n          class=\"link\">EasNor3Tuple</a><code>(easting, northing, \n          height)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.css.CSSError-class.html\">CSSError</a></strong></code> - Ellipsoidal mismatch of <b><code>latlon</code></b> and \n        <b><code>cs0</code></b>.</li>\n        <li><code><strong class='fraise'>ImportError</strong></code> - Package <a href=\"https://PyPI.org/project/geographiclib\" \n        target=\"_top\">geographiclib</a> not installed or not found.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - If <b><code>latlon</code></b> is not ellipsoidal.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.css.CSSError-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.css.CSSError</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.css-module.html\">Module&nbsp;css</a> ::\n        Class&nbsp;CSSError\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.css.CSSError-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class CSSError</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n              object --+                    \n                       |                    \nexceptions.BaseException --+                \n                           |                \n        exceptions.Exception --+            \n                               |            \n        exceptions.StandardError --+        \n                                   |        \n               exceptions.ValueError --+    \n                                       |    \n                      errors._ValueError --+\n                                           |\n                                          <strong class=\"uidshort\">CSSError</strong>\n</pre>\n\n<hr />\n<p>Cassini-Soldner (CSS) conversion or other <a \n  href=\"pygeodesy.css.Css-class.html\" class=\"link\">Css</a> issue.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>errors._ValueError</code></b>:\n      <code>__init__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.ValueError</code></b>:\n      <code>__new__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.BaseException</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getslice__</code>,\n      <code>__reduce__</code>,\n      <code>__repr__</code>,\n      <code>__setattr__</code>,\n      <code>__setstate__</code>,\n      <code>__str__</code>,\n      <code>__unicode__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__format__</code>,\n      <code>__hash__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.BaseException</code></b>:\n      <code>args</code>,\n      <code>message</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.css.CassiniSoldner-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.css.CassiniSoldner</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.css-module.html\">Module&nbsp;css</a> ::\n        Class&nbsp;CassiniSoldner\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.css.CassiniSoldner-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class CassiniSoldner</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+        \n           |        \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n               |    \n<a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+\n                   |\n                  <strong class=\"uidshort\">CassiniSoldner</strong>\n</pre>\n\n<hr />\n<p>Cassini-Soldner projection, a Python version of <i>Karney</i>'s C++ \n  class <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1CassiniSoldner.html\"\n  target=\"_top\">CassiniSoldner</a>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.css.CassiniSoldner-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lat0</span>,\n        <span class=\"summary-sig-arg\">lon0</span>,\n        <span class=\"summary-sig-arg\">datum</span>=<span class=\"summary-sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      New <a href=\"pygeodesy.css.CassiniSoldner-class.html\" \n      class=\"link\">CassiniSoldner</a> projection.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.css.CassiniSoldner-class.html#forward\" class=\"summary-sig-name\">forward</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lat</span>,\n        <span class=\"summary-sig-arg\">lon</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Convert an (ellipsoidal) geodetic location to Cassini-Soldner easting\n      and northing.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.css.CassiniSoldner-class.html#forward4\" class=\"summary-sig-name\">forward4</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lat</span>,\n        <span class=\"summary-sig-arg\">lon</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Convert an (ellipsoidal) geodetic location to Cassini-Soldner easting\n      and northing.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.css.CassiniSoldner-class.html#forward6\" class=\"summary-sig-name\">forward6</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lat</span>,\n        <span class=\"summary-sig-arg\">lon</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Convert an (ellipsoidal) geodetic location to Cassini-Soldner easting\n      and northing.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.css.CassiniSoldner-class.html#reset\" class=\"summary-sig-name\">reset</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lat0</span>,\n        <span class=\"summary-sig-arg\">lon0</span>)</span><br />\n      Set or reset the center point of this Cassini-Soldner projection.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.css.CassiniSoldner-class.html#reverse\" class=\"summary-sig-name\">reverse</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">easting</span>,\n        <span class=\"summary-sig-arg\">northing</span>,\n        <span class=\"summary-sig-arg\">LatLon</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**name_LatLon_kwds</span>)</span><br />\n      Convert a Cassini-Soldner location to (ellipsoidal) geodetic lat- and\n      longitude.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.css.CassiniSoldner-class.html#reverse4\" class=\"summary-sig-name\">reverse4</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">easting</span>,\n        <span class=\"summary-sig-arg\">northing</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Convert a Cassini-Soldner location to (ellipsoidal) geodetic lat- and\n      longitude.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.css.CassiniSoldner-class.html#toLatLon\" class=\"summary-sig-name\">toLatLon</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">easting</span>,\n        <span class=\"summary-sig-arg\">northing</span>,\n        <span class=\"summary-sig-arg\">LatLon</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**name_LatLon_kwds</span>)</span><br />\n      Convert a Cassini-Soldner location to (ellipsoidal) geodetic lat- and\n      longitude.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.css.CassiniSoldner-class.html#toRepr\" class=\"summary-sig-name\">toRepr</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">prec</span>=<span class=\"summary-sig-default\">6</span>,\n        <span class=\"summary-sig-arg\">**unused</span>)</span><br />\n      Return a string representation of this projection.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.css.CassiniSoldner-class.html#toStr\" class=\"summary-sig-name\">toStr</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">prec</span>=<span class=\"summary-sig-default\">6</span>,\n        <span class=\"summary-sig-arg\">sep</span>=<span class=\"summary-sig-default\">' '</span>,\n        <span class=\"summary-sig-arg\">**unused</span>)</span><br />\n      Return a string representation of this projection.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#others\">others</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.css.CassiniSoldner-class.html#datum\" class=\"summary-name\">datum</a><br />\n      Get the datum (<a href=\"pygeodesy.datums.Datum-class.html\" \n      class=\"link\">Datum</a>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.css.CassiniSoldner-class.html#equatoradius\" class=\"summary-name\">equatoradius</a><br />\n      Get the ellipsoid's equatorial radius, semi-axis \n      (<code>meter</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.css.CassiniSoldner-class.html#a\" class=\"summary-name\">a</a><br />\n      Get the ellipsoid's equatorial radius, semi-axis \n      (<code>meter</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.css.CassiniSoldner-class.html#flattening\" class=\"summary-name\">flattening</a><br />\n      Get the ellipsoid's flattening (<code>scalar</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.css.CassiniSoldner-class.html#f\" class=\"summary-name\">f</a><br />\n      Get the ellipsoid's flattening (<code>scalar</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.css.CassiniSoldner-class.html#geodesic\" class=\"summary-name\">geodesic</a><br />\n      Get this projection's <i>wrapped</i> <a \n      href=\"https://GeographicLib.SourceForge.io/Python/doc/code.html\" \n      target=\"_top\">geodesic.Geodesic</a> from <i>Karney</i>'s <a \n      href=\"https://PyPI.org/project/geographiclib\" \n      target=\"_top\">geographiclib</a> package if installed, otherwise an \n      <i>exact</i> <a \n      href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html\" \n      class=\"link\">GeodesicExact</a> instance.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.css.CassiniSoldner-class.html#isExact\" class=\"summary-name\">isExact</a><br />\n      Return <code>True</code> if this projection's geodesic is <a \n      href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html\" \n      class=\"link\">GeodesicExact</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.css.CassiniSoldner-class.html#lat0\" class=\"summary-name\">lat0</a><br />\n      Get the center latitude (<code>degrees90</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.css.CassiniSoldner-class.html#latlon0\" class=\"summary-name\">latlon0</a><br />\n      Get the center lat- and longitude (<a \n      href=\"pygeodesy.namedTuples.LatLon2Tuple-class.html\" \n      class=\"link\">LatLon2Tuple</a><code>(lat, lon)</code>) in \n      (<code>degrees90</code>, (<code>degrees180</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.css.CassiniSoldner-class.html#lon0\" class=\"summary-name\">lon0</a><br />\n      Get the center longitude (<code>degrees180</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.css.CassiniSoldner-class.html#majoradius\" class=\"summary-name\">majoradius</a><br />\n      DEPRECATED, use property <code>equatoradius</code>.\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lat0</span>,\n        <span class=\"sig-arg\">lon0</span>,\n        <span class=\"sig-arg\">datum</span>=<span class=\"sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.css.CassiniSoldner-class.html\" \n  class=\"link\">CassiniSoldner</a> projection.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat0</code></strong> - Latitude of center point (<code>degrees90</code>).</li>\n        <li><strong class=\"pname\"><code>lon0</code></strong> - Longitude of center point (<code>degrees180</code>).</li>\n        <li><strong class=\"pname\"><code>datum</code></strong> - Optional datum or ellipsoid (<a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>, \n          <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a> or <a \n          href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.css.CSSError-class.html\">CSSError</a></strong></code> - Invalid <b><code>lat</code></b> or <b><code>lon</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"forward\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">forward</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lat</span>,\n        <span class=\"sig-arg\">lon</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert an (ellipsoidal) geodetic location to Cassini-Soldner easting \n  and northing.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat</code></strong> - Latitude of the location (<code>degrees90</code>).</li>\n        <li><strong class=\"pname\"><code>lon</code></strong> - Longitude of the location (<code>degrees180</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> inlieu of this projection's \n          name (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>An <a href=\"pygeodesy.namedTuples.EasNor2Tuple-class.html\" \n          class=\"link\">EasNor2Tuple</a><code>(easting, northing)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.css.CSSError-class.html\">CSSError</a></strong></code> - Invalid <b><code>lat</code></b> or <b><code>lon</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Methods <a href=\"pygeodesy.css.CassiniSoldner-class.html#forward4\" \n        class=\"link\">CassiniSoldner.forward4</a>, <a \n        href=\"pygeodesy.css.CassiniSoldner-class.html#reverse\" \n        class=\"link\">CassiniSoldner.reverse</a> and <a \n        href=\"pygeodesy.css.CassiniSoldner-class.html#reverse4\" \n        class=\"link\">CassiniSoldner.reverse4</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"forward4\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">forward4</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lat</span>,\n        <span class=\"sig-arg\">lon</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert an (ellipsoidal) geodetic location to Cassini-Soldner easting \n  and northing.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat</code></strong> - Latitude of the location (<code>degrees90</code>).</li>\n        <li><strong class=\"pname\"><code>lon</code></strong> - Longitude of the location (<code>degrees180</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <b><code>name</code>=NN</b> inlieu of this projection's \n          name (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>An <a href=\"pygeodesy.css.EasNorAziRk4Tuple-class.html\" \n          class=\"link\">EasNorAziRk4Tuple</a><code>(easting, northing, \n          azimuth, reciprocal)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.css.CSSError-class.html\">CSSError</a></strong></code> - Invalid <b><code>lat</code></b> or <b><code>lon</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <a href=\"pygeodesy.css.CassiniSoldner-class.html#forward\" \n        class=\"link\">CassiniSoldner.forward</a>, <a \n        href=\"pygeodesy.css.CassiniSoldner-class.html#forward6\" \n        class=\"link\">CassiniSoldner.forward6</a>, <a \n        href=\"pygeodesy.css.CassiniSoldner-class.html#reverse\" \n        class=\"link\">CassiniSoldner.reverse</a> and <a \n        href=\"pygeodesy.css.CassiniSoldner-class.html#reverse4\" \n        class=\"link\">CassiniSoldner.reverse4</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"forward6\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">forward6</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lat</span>,\n        <span class=\"sig-arg\">lon</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert an (ellipsoidal) geodetic location to Cassini-Soldner easting \n  and northing.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat</code></strong> - Latitude of the location (<code>degrees90</code>).</li>\n        <li><strong class=\"pname\"><code>lon</code></strong> - Longitude of the location (<code>degrees180</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <b><code>name</code>=NN</b> inlieu of this projection's \n          name (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>An <a href=\"pygeodesy.css.EasNorAziRkEqu6Tuple-class.html\" \n          class=\"link\">EasNorAziRkEqu6Tuple</a><code>(easting, northing, \n          azimuth, reciprocal, equatorarc, equatorazimuth)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.css.CSSError-class.html\">CSSError</a></strong></code> - Invalid <b><code>lat</code></b> or <b><code>lon</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <a href=\"pygeodesy.css.CassiniSoldner-class.html#forward\" \n        class=\"link\">CassiniSoldner.forward</a>, <a \n        href=\"pygeodesy.css.CassiniSoldner-class.html#forward4\" \n        class=\"link\">CassiniSoldner.forward4</a>, <a \n        href=\"pygeodesy.css.CassiniSoldner-class.html#reverse\" \n        class=\"link\">CassiniSoldner.reverse</a> and <a \n        href=\"pygeodesy.css.CassiniSoldner-class.html#reverse4\" \n        class=\"link\">CassiniSoldner.reverse4</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"reset\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">reset</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lat0</span>,\n        <span class=\"sig-arg\">lon0</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Set or reset the center point of this Cassini-Soldner projection.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat0</code></strong> - Center point latitude (<code>degrees90</code>).</li>\n        <li><strong class=\"pname\"><code>lon0</code></strong> - Center point longitude (<code>degrees180</code>).</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.css.CSSError-class.html\">CSSError</a></strong></code> - Invalid <b><code>lat0</code></b> or <b><code>lon0</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"reverse\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">reverse</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">easting</span>,\n        <span class=\"sig-arg\">northing</span>,\n        <span class=\"sig-arg\">LatLon</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**name_LatLon_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert a Cassini-Soldner location to (ellipsoidal) geodetic lat- and \n  longitude.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>easting</code></strong> - Easting of the location (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>northing</code></strong> - Northing of the location (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>LatLon</code></strong> - Optional, ellipsoidal class to return the geodetic location as \n          (<code>LatLon</code>) or <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>name_LatLon_kwds</code></strong> - Optional name <code><b>name</b>=NN</code> (<code>str</code>) and \n          optionally, additional <b><code>LatLon</code></b> keyword \n          arguments, ignored if <code><b>LatLon</b> is None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Geodetic location <b><code>LatLon</code></b> or if \n          <code><b>LatLon</b> is None</code>, a <a \n          href=\"pygeodesy.namedTuples.LatLon2Tuple-class.html\" \n          class=\"link\">LatLon2Tuple</a><code>(lat, lon)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.css.CSSError-class.html\">CSSError</a></strong></code> - Ellipsoidal mismatch of <b><code>LatLon</code></b> and this \n        projection.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>LatLon</code></b> or \n        <b><code>LatLon_kwds</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <a href=\"pygeodesy.css.CassiniSoldner-class.html#reverse4\" \n        class=\"link\">CassiniSoldner.reverse4</a>, <a \n        href=\"pygeodesy.css.CassiniSoldner-class.html#forward\" \n        class=\"link\">CassiniSoldner.forward</a>. <a \n        href=\"pygeodesy.css.CassiniSoldner-class.html#forward4\" \n        class=\"link\">CassiniSoldner.forward4</a> and <a \n        href=\"pygeodesy.css.CassiniSoldner-class.html#forward6\" \n        class=\"link\">CassiniSoldner.forward6</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"reverse4\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">reverse4</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">easting</span>,\n        <span class=\"sig-arg\">northing</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert a Cassini-Soldner location to (ellipsoidal) geodetic lat- and \n  longitude.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>easting</code></strong> - Easting of the location (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>northing</code></strong> - Northing of the location (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <b><code>name</code>=NN</b> inlieu of this projection's \n          name (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.css.LatLonAziRk4Tuple-class.html\" \n          class=\"link\">LatLonAziRk4Tuple</a><code>(lat, lon, azimuth, \n          reciprocal)</code>.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <a href=\"pygeodesy.css.CassiniSoldner-class.html#reverse\" \n        class=\"link\">CassiniSoldner.reverse</a>, <a \n        href=\"pygeodesy.css.CassiniSoldner-class.html#forward\" \n        class=\"link\">CassiniSoldner.forward</a> and <a \n        href=\"pygeodesy.css.CassiniSoldner-class.html#forward4\" \n        class=\"link\">CassiniSoldner.forward4</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"toLatLon\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toLatLon</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">easting</span>,\n        <span class=\"sig-arg\">northing</span>,\n        <span class=\"sig-arg\">LatLon</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**name_LatLon_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert a Cassini-Soldner location to (ellipsoidal) geodetic lat- and \n  longitude.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>easting</code></strong> - Easting of the location (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>northing</code></strong> - Northing of the location (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>LatLon</code></strong> - Optional, ellipsoidal class to return the geodetic location as \n          (<code>LatLon</code>) or <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>name_LatLon_kwds</code></strong> - Optional name <code><b>name</b>=NN</code> (<code>str</code>) and \n          optionally, additional <b><code>LatLon</code></b> keyword \n          arguments, ignored if <code><b>LatLon</b> is None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Geodetic location <b><code>LatLon</code></b> or if \n          <code><b>LatLon</b> is None</code>, a <a \n          href=\"pygeodesy.namedTuples.LatLon2Tuple-class.html\" \n          class=\"link\">LatLon2Tuple</a><code>(lat, lon)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.css.CSSError-class.html\">CSSError</a></strong></code> - Ellipsoidal mismatch of <b><code>LatLon</code></b> and this \n        projection.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>LatLon</code></b> or \n        <b><code>LatLon_kwds</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <a href=\"pygeodesy.css.CassiniSoldner-class.html#reverse4\" \n        class=\"link\">CassiniSoldner.reverse4</a>, <a \n        href=\"pygeodesy.css.CassiniSoldner-class.html#forward\" \n        class=\"link\">CassiniSoldner.forward</a>. <a \n        href=\"pygeodesy.css.CassiniSoldner-class.html#forward4\" \n        class=\"link\">CassiniSoldner.forward4</a> and <a \n        href=\"pygeodesy.css.CassiniSoldner-class.html#forward6\" \n        class=\"link\">CassiniSoldner.forward6</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"toRepr\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toRepr</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">prec</span>=<span class=\"sig-default\">6</span>,\n        <span class=\"sig-arg\">**unused</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return a string representation of this projection.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>prec</code></strong> - Number of (decimal) digits, unstripped (<code>int</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>This projection as <code>&quot;&lt;classname&gt;(lat0, lon0, \n          ...)&quot;</code> (<code>str</code>).</dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.named._Named-class.html#toRepr\">named._Named.toRepr</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toStr\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toStr</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">prec</span>=<span class=\"sig-default\">6</span>,\n        <span class=\"sig-arg\">sep</span>=<span class=\"sig-default\">' '</span>,\n        <span class=\"sig-arg\">**unused</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return a string representation of this projection.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>prec</code></strong> - Number of (decimal) digits, unstripped (<code>int</code>).</li>\n        <li><strong class=\"pname\"><code>sep</code></strong> - Separator to join (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>This projection as <code>&quot;lat0 lon0&quot;</code> \n          (<code>str</code>).</dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.named._Named-class.html#toStr\">named._Named.toStr</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"datum\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">datum</h3>\n  <p>Get the datum (<a href=\"pygeodesy.datums.Datum-class.html\" \n  class=\"link\">Datum</a>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">datum(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the datum (<a href=\"pygeodesy.datums.Datum-class.html\" \nclass=\"link\">Datum</a>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">datum(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">datum</span>)</span>\n        - Set the datum or ellipsoid (<a href=\"pygeodesy.datums.Datum-class.html\" \nclass=\"link\">Datum</a>, <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\"\nclass=\"link\">Ellipsoid</a>, <a \nhref=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \nclass=\"link\">Ellipsoid2</a> or <a \nhref=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \nclass=\"link\">a_f2Tuple</a>) or <code>None</code> for the default.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"equatoradius\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">equatoradius</h3>\n  <p>Get the ellipsoid's equatorial radius, semi-axis \n  (<code>meter</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">equatoradius(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the ellipsoid's equatorial radius, semi-axis (<code>meter</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"a\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">a</h3>\n  <p>Get the ellipsoid's equatorial radius, semi-axis \n  (<code>meter</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">equatoradius(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the ellipsoid's equatorial radius, semi-axis (<code>meter</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"flattening\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">flattening</h3>\n  <p>Get the ellipsoid's flattening (<code>scalar</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">flattening(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the ellipsoid's flattening (<code>scalar</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"f\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">f</h3>\n  <p>Get the ellipsoid's flattening (<code>scalar</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">flattening(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the ellipsoid's flattening (<code>scalar</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"geodesic\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">geodesic</h3>\n  <p>Get this projection's <i>wrapped</i> <a \n  href=\"https://GeographicLib.SourceForge.io/Python/doc/code.html\" \n  target=\"_top\">geodesic.Geodesic</a> from <i>Karney</i>'s <a \n  href=\"https://PyPI.org/project/geographiclib\" \n  target=\"_top\">geographiclib</a> package if installed, otherwise an \n  <i>exact</i> <a href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html\" \n  class=\"link\">GeodesicExact</a> instance.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">geodesic(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get this projection's <i>wrapped</i> <a \nhref=\"https://GeographicLib.SourceForge.io/Python/doc/code.html\" \ntarget=\"_top\">geodesic.Geodesic</a> from <i>Karney</i>'s <a \nhref=\"https://PyPI.org/project/geographiclib\" \ntarget=\"_top\">geographiclib</a> package if installed, otherwise an \n<i>exact</i> <a href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html\" \nclass=\"link\">GeodesicExact</a> instance.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">geodesic(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">exact</span>)</span>\n        - Set this projection's geodesic (<code>bool</code>) to <a \nhref=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html\" \nclass=\"link\">GeodesicExact</a> or <i>wrapped Karney</i>'s or \n<code>None</code> for the default.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"isExact\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">isExact</h3>\n  <p>Return <code>True</code> if this projection's geodesic is <a \n  href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html\" \n  class=\"link\">GeodesicExact</a>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">isExact(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Return <code>True</code> if this projection's geodesic is <a \nhref=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html\" \nclass=\"link\">GeodesicExact</a>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"lat0\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">lat0</h3>\n  <p>Get the center latitude (<code>degrees90</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">lat0(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the center latitude (<code>degrees90</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"latlon0\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">latlon0</h3>\n  <p>Get the center lat- and longitude (<a \n  href=\"pygeodesy.namedTuples.LatLon2Tuple-class.html\" \n  class=\"link\">LatLon2Tuple</a><code>(lat, lon)</code>) in \n  (<code>degrees90</code>, (<code>degrees180</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">latlon0(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the center lat- and longitude (<a \nhref=\"pygeodesy.namedTuples.LatLon2Tuple-class.html\" \nclass=\"link\">LatLon2Tuple</a><code>(lat, lon)</code>) in \n(<code>degrees90</code>, (<code>degrees180</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">latlon0(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">latlon0</span>)</span>\n        - Set the center lat- and longitude (ellipsoidal <code>LatLon</code>, <a \nhref=\"pygeodesy.namedTuples.LatLon2Tuple-class.html\" \nclass=\"link\">LatLon2Tuple</a>, <a \nhref=\"pygeodesy.namedTuples.LatLon4Tuple-class.html\" \nclass=\"link\">LatLon4Tuple</a> or a <code>tuple</code> or <code>list</code> \nwith the <code>lat</code>- and <code>lon</code>gitude in \n<code>degrees</code>).\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"lon0\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">lon0</h3>\n  <p>Get the center longitude (<code>degrees180</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">lon0(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the center longitude (<code>degrees180</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"majoradius\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">majoradius</h3>\n  <p>DEPRECATED, use property <code>equatoradius</code>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">majoradius(<span class=\"summary-sig-arg\">self</span>)</span>\n        - DEPRECATED, use property <code>equatoradius</code>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.css.Css-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.css.Css</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.css-module.html\">Module&nbsp;css</a> ::\n        Class&nbsp;Css\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.css.Css-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Css</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+        \n           |        \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n               |    \n<a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+\n                   |\n                  <strong class=\"uidshort\">Css</strong>\n</pre>\n\n<hr />\n<p>Cassini-Soldner East-/Northing location.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.css.Css-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">e</span>,\n        <span class=\"summary-sig-arg\">n</span>,\n        <span class=\"summary-sig-arg\">h</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">cs0</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      New <a href=\"pygeodesy.css.Css-class.html\" class=\"link\">Css</a> \n      Cassini-Soldner position.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.css.Css-class.html#toLatLon\" class=\"summary-sig-name\">toLatLon</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">LatLon</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">height</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**LatLon_kwds</span>)</span><br />\n      Convert this <a href=\"pygeodesy.css.Css-class.html\" \n      class=\"link\">Css</a> to an (ellipsoidal) geodetic point.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.css.Css-class.html#toRepr\" class=\"summary-sig-name\">toRepr</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">prec</span>=<span class=\"summary-sig-default\">6</span>,\n        <span class=\"summary-sig-arg\">fmt</span>=<span class=\"summary-sig-default\">'[%s]'</span>,\n        <span class=\"summary-sig-arg\">sep</span>=<span class=\"summary-sig-default\">', '</span>,\n        <span class=\"summary-sig-arg\">m</span>=<span class=\"summary-sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">m</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"summary-sig-arg\">C</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Return a string representation of this <a \n      href=\"pygeodesy.css.Css-class.html\" class=\"link\">Css</a> position.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.css.Css-class.html#toStr\" class=\"summary-sig-name\">toStr</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">prec</span>=<span class=\"summary-sig-default\">6</span>,\n        <span class=\"summary-sig-arg\">sep</span>=<span class=\"summary-sig-default\">' '</span>,\n        <span class=\"summary-sig-arg\">m</span>=<span class=\"summary-sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">m</code><code class=\"variable-quote\">'</code></span>)</span><br />\n      Return a string representation of this <a \n      href=\"pygeodesy.css.Css-class.html\" class=\"link\">Css</a> position.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#others\">others</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.css.Css-class.html#azi\" class=\"summary-name\">azi</a><br />\n      Get the azimuth of easting direction (<code>degrees</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.css.Css-class.html#azimuth\" class=\"summary-name\">azimuth</a><br />\n      Get the azimuth of easting direction (<code>degrees</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.css.Css-class.html#cs0\" class=\"summary-name\">cs0</a><br />\n      Get the projection (<a href=\"pygeodesy.css.CassiniSoldner-class.html\"\n      class=\"link\">CassiniSoldner</a>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.css.Css-class.html#easting\" class=\"summary-name\">easting</a><br />\n      Get the easting (<code>meter</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.css.Css-class.html#height\" class=\"summary-name\">height</a><br />\n      Get the height (<code>meter</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.css.Css-class.html#latlon\" class=\"summary-name\">latlon</a><br />\n      Get the lat- and longitude (<a \n      href=\"pygeodesy.namedTuples.LatLon2Tuple-class.html\" \n      class=\"link\">LatLon2Tuple</a>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.css.Css-class.html#northing\" class=\"summary-name\">northing</a><br />\n      Get the northing (<code>meter</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.css.Css-class.html#reverse4\" class=\"summary-name\">reverse4</a><br />\n      Get the lat, lon, azimuth and reciprocal (<a \n      href=\"pygeodesy.css.LatLonAziRk4Tuple-class.html\" \n      class=\"link\">LatLonAziRk4Tuple</a>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.css.Css-class.html#rk\" class=\"summary-name\">rk</a><br />\n      Get the reciprocal of azimuthal northing scale (<code>scalar</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.css.Css-class.html#reciprocal\" class=\"summary-name\">reciprocal</a><br />\n      Get the reciprocal of azimuthal northing scale (<code>scalar</code>).\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">e</span>,\n        <span class=\"sig-arg\">n</span>,\n        <span class=\"sig-arg\">h</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">cs0</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.css.Css-class.html\" class=\"link\">Css</a> \n  Cassini-Soldner position.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>e</code></strong> - Easting (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>n</code></strong> - Northing (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>h</code></strong> - Optional height (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>cs0</code></strong> - Optional, the Cassini-Soldner projection (<a \n          href=\"pygeodesy.css.CassiniSoldner-class.html\" \n          class=\"link\">CassiniSoldner</a>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The Cassini-Soldner location (<a \n          href=\"pygeodesy.css.Css-class.html\" class=\"link\">Css</a>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.css.CSSError-class.html\">CSSError</a></strong></code> - If <b><code>e</code></b> or <b><code>n</code></b> is invalid.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - If <b><code>cs0</code></b> is not <a \n        href=\"pygeodesy.css.CassiniSoldner-class.html\" \n        class=\"link\">CassiniSoldner</a>.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>h</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toLatLon\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toLatLon</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">LatLon</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">height</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**LatLon_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert this <a href=\"pygeodesy.css.Css-class.html\" \n  class=\"link\">Css</a> to an (ellipsoidal) geodetic point.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>LatLon</code></strong> - Optional, ellipsoidal class to return the geodetic point \n          (<code>LatLon</code>) or <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>height</code></strong> - Optional height for the point, overriding the default height \n          (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>LatLon_kwds</code></strong> - Optional, additional <b><code>LatLon</code></b> keyword \n          arguments, ignored if <code><b>LatLon</b> is None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The geodetic point (<b><code>LatLon</code></b>) or if \n          <code><b>LatLon</b> is None</code>, a <a \n          href=\"pygeodesy.namedTuples.LatLon4Tuple-class.html\" \n          class=\"link\">LatLon4Tuple</a><code>(lat, lon, height, \n          datum)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - If <b><code>LatLon</code></b> or <b><code>datum</code></b> is not \n        ellipsoidal or invalid <b><code>height</code></b> or \n        <b><code>LatLon_kwds</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toRepr\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toRepr</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">prec</span>=<span class=\"sig-default\">6</span>,\n        <span class=\"sig-arg\">fmt</span>=<span class=\"sig-default\">'[%s]'</span>,\n        <span class=\"sig-arg\">sep</span>=<span class=\"sig-default\">', '</span>,\n        <span class=\"sig-arg\">m</span>=<span class=\"sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">m</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"sig-arg\">C</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return a string representation of this <a \n  href=\"pygeodesy.css.Css-class.html\" class=\"link\">Css</a> position.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>prec</code></strong> - Number of (decimal) digits, unstripped (<code>int</code>).</li>\n        <li><strong class=\"pname\"><code>fmt</code></strong> - Enclosing backets format (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>sep</code></strong> - Optional separator between name:values (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>m</code></strong> - Optional unit of the height, default meter (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>C</code></strong> - Optionally, include name of projection (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>This position as <code>&quot;[E:meter, N:meter, H:m, name:'', \n          C:Conic.Datum]&quot;</code> (<code>str</code>).</dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.named._Named-class.html#toRepr\">named._Named.toRepr</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toStr\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toStr</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">prec</span>=<span class=\"sig-default\">6</span>,\n        <span class=\"sig-arg\">sep</span>=<span class=\"sig-default\">' '</span>,\n        <span class=\"sig-arg\">m</span>=<span class=\"sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">m</code><code class=\"variable-quote\">'</code></span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return a string representation of this <a \n  href=\"pygeodesy.css.Css-class.html\" class=\"link\">Css</a> position.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>prec</code></strong> - Number of (decimal) digits, unstripped (<code>int</code>).</li>\n        <li><strong class=\"pname\"><code>sep</code></strong> - Optional separator to join (<code>str</code>) or \n          <code>None</code> to return an unjoined <code>tuple</code> of \n          <code>str</code>s.</li>\n        <li><strong class=\"pname\"><code>m</code></strong> - Height units, default <code>meter</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>This position as <code>&quot;easting nothing&quot;</code> \n          <code>str</code> in <code>meter</code> plus <code>&quot; \n          height&quot;</code> and <code>'m'</code> if height is non-zero \n          (<code>str</code>).</dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.named._Named-class.html#toStr\">named._Named.toStr</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"azi\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">azi</h3>\n  <p>Get the azimuth of easting direction (<code>degrees</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">azi(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the azimuth of easting direction (<code>degrees</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"azimuth\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">azimuth</h3>\n  <p>Get the azimuth of easting direction (<code>degrees</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">azi(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the azimuth of easting direction (<code>degrees</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"cs0\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">cs0</h3>\n  <p>Get the projection (<a href=\"pygeodesy.css.CassiniSoldner-class.html\" \n  class=\"link\">CassiniSoldner</a>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">cs0(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the projection (<a href=\"pygeodesy.css.CassiniSoldner-class.html\" \nclass=\"link\">CassiniSoldner</a>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">cs0(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">cs0</span>)</span>\n        - Set the <i>Cassini-Soldner</i> projection (<a \nhref=\"pygeodesy.css.CassiniSoldner-class.html\" \nclass=\"link\">CassiniSoldner</a>).\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"easting\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">easting</h3>\n  <p>Get the easting (<code>meter</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">easting(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the easting (<code>meter</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"height\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">height</h3>\n  <p>Get the height (<code>meter</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">height(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the height (<code>meter</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"latlon\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">latlon</h3>\n  <p>Get the lat- and longitude (<a \n  href=\"pygeodesy.namedTuples.LatLon2Tuple-class.html\" \n  class=\"link\">LatLon2Tuple</a>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">latlon(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the lat- and longitude (<a \nhref=\"pygeodesy.namedTuples.LatLon2Tuple-class.html\" \nclass=\"link\">LatLon2Tuple</a>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"northing\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">northing</h3>\n  <p>Get the northing (<code>meter</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">northing(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the northing (<code>meter</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"reverse4\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">reverse4</h3>\n  <p>Get the lat, lon, azimuth and reciprocal (<a \n  href=\"pygeodesy.css.LatLonAziRk4Tuple-class.html\" \n  class=\"link\">LatLonAziRk4Tuple</a>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">reverse4(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the lat, lon, azimuth and reciprocal (<a \nhref=\"pygeodesy.css.LatLonAziRk4Tuple-class.html\" \nclass=\"link\">LatLonAziRk4Tuple</a>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"rk\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">rk</h3>\n  <p>Get the reciprocal of azimuthal northing scale \n  (<code>scalar</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">rk(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the reciprocal of azimuthal northing scale (<code>scalar</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"reciprocal\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">reciprocal</h3>\n  <p>Get the reciprocal of azimuthal northing scale \n  (<code>scalar</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">rk(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the reciprocal of azimuthal northing scale (<code>scalar</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.css.EasNorAziRk4Tuple-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.css.EasNorAziRk4Tuple</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.css-module.html\">Module&nbsp;css</a> ::\n        Class&nbsp;EasNorAziRk4Tuple\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.css.EasNorAziRk4Tuple-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class EasNorAziRk4Tuple</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n   object --+        \n            |        \n        tuple --+    \n                |    \n   object --+   |    \n            |   |    \n <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n                |    \n<a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a> --+\n                    |\n                   <strong class=\"uidshort\">EasNorAziRk4Tuple</strong>\n</pre>\n\n<hr />\n<p>4-Tuple <code>(easting, northing, azimuth, reciprocal)</code> for the \n  Cassini-Soldner location with <code>easting</code> and \n  <code>northing</code> in <code>meters</code> and the <code>azimuth</code>\n  of easting direction and <code>reciprocal</code> of azimuthal northing \n  scale, both in <code>degrees</code>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__delattr__\">__delattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__getattr__\">__getattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__setattr__\">__setattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#items\">items</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iteritems\">iteritems</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iterunits\">iterunits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#reUnit\">reUnit</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toUnits\">toUnits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>tuple</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__eq__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__iter__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__rmul__</code>,\n      <code>count</code>,\n      <code>index</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__new__\">__new__</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.css.EasNorAziRkEqu6Tuple-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.css.EasNorAziRkEqu6Tuple</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.css-module.html\">Module&nbsp;css</a> ::\n        Class&nbsp;EasNorAziRkEqu6Tuple\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.css.EasNorAziRkEqu6Tuple-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class EasNorAziRkEqu6Tuple</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n   object --+        \n            |        \n        tuple --+    \n                |    \n   object --+   |    \n            |   |    \n <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n                |    \n<a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a> --+\n                    |\n                   <strong class=\"uidshort\">EasNorAziRkEqu6Tuple</strong>\n</pre>\n\n<hr />\n<p>6-Tuple <code>(easting, northing, azimuth, reciprocal, equatorarc, \n  equatorazimuth)</code> for the Cassini-Soldner location with \n  <code>easting</code> and <code>northing</code> in <code>meters</code> and\n  the <code>azimuth</code> of easting direction, <code>reciprocal</code> of\n  azimuthal northing scale, <code>equatorarc</code> and \n  <code>equatorazimuth</code>, all in <code>degrees</code>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__delattr__\">__delattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__getattr__\">__getattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__setattr__\">__setattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#items\">items</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iteritems\">iteritems</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iterunits\">iterunits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#reUnit\">reUnit</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toUnits\">toUnits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>tuple</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__eq__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__iter__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__rmul__</code>,\n      <code>count</code>,\n      <code>index</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__new__\">__new__</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.css.LatLonAziRk4Tuple-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.css.LatLonAziRk4Tuple</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.css-module.html\">Module&nbsp;css</a> ::\n        Class&nbsp;LatLonAziRk4Tuple\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.css.LatLonAziRk4Tuple-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class LatLonAziRk4Tuple</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n   object --+        \n            |        \n        tuple --+    \n                |    \n   object --+   |    \n            |   |    \n <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n                |    \n<a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a> --+\n                    |\n                   <strong class=\"uidshort\">LatLonAziRk4Tuple</strong>\n</pre>\n\n<hr />\n<p>4-Tuple <code>(lat, lon, azimuth, reciprocal)</code>, all in \n  <code>degrees</code> where <code>azimuth</code> is the azimuth of easting\n  direction and <code>reciprocal</code> the reciprocal of azimuthal \n  northing scale.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__delattr__\">__delattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__getattr__\">__getattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__setattr__\">__setattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#items\">items</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iteritems\">iteritems</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iterunits\">iterunits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#reUnit\">reUnit</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toUnits\">toUnits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>tuple</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__eq__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__iter__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__rmul__</code>,\n      <code>count</code>,\n      <code>index</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__new__\">__new__</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.datums-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.datums</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        Module&nbsp;datums\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.datums-module.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== MODULE DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Module datums</h1><p class=\"nomargin-top\"></p>\n<p>Datums and transformations thereof.</p>\n  <p>Classes <a href=\"pygeodesy.datums.Datum-class.html\" \n  class=\"link\">Datum</a> and <a \n  href=\"pygeodesy.datums.Transform-class.html\" class=\"link\">Transform</a> \n  and registries <a href=\"pygeodesy.datums-module.html#Datums\" \n  class=\"link\">Datums</a> and <a \n  href=\"pygeodesy.datums-module.html#Transforms\" \n  class=\"link\">Transforms</a>, respectively.</p>\n  <p>Pure Python implementation of geodesy tools for ellipsoidal earth \n  models, including datums and ellipsoid parameters for different \n  geographic coordinate systems and methods for converting between them and\n  to cartesian coordinates.  Transcoded from JavaScript originals by <i>(C)\n  Chris Veness 2005-2024</i> and published under the same MIT Licence**, \n  see <a \n  href=\"https://www.Movable-Type.co.UK/scripts/geodesy/docs/latlon-ellipsoidal.js.html\"\n  target=\"_top\">latlon-ellipsoidal.js</a>.</p>\n  <p>Historical geodetic datums: a latitude/longitude point defines a \n  geographic location on, above or below the earth&#8217;s surface.  Latitude is \n  measured in degrees from the equator, lomgitude from the International \n  Reference Meridian and height in meters above an ellipsoid based on the \n  given datum.  The datum in turn is based on a reference ellipsoid and \n  tied to geodetic survey reference points.</p>\n  <p>Modern geodesy is generally based on the WGS84 datum (as used for \n  instance by GPS systems), but previously various other reference \n  ellipsoids and datum references were used.</p>\n  <p>The UK Ordnance Survey National Grid References are still based on the\n  otherwise historical OSGB36 datum, q.v. <a \n  href=\"https://www.OrdnanceSurvey.co.UK/docs/support/guide-coordinate-systems-great-britain.pdf\"\n  target=\"_top\">&quot;A Guide to Coordinate Systems in Great Britain&quot;,\n  Section 6</a>.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Version:</strong>\n        26.01.13\n      </p>\n</div><!-- ==================== CLASSES ==================== -->\n<a name=\"section-Classes\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Classes</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.datums.Transform-class.html\" class=\"summary-name\">Transform</a><br />\n      Helmert <i>datum</i> transformation.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.datums.Datum-class.html\" class=\"summary-name\">Datum</a><br />\n      Ellipsoid and transform parameters for an earth model.\n    </td>\n  </tr>\n</table>\n<!-- ==================== VARIABLES ==================== -->\n<a name=\"section-Variables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Variables</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"__all__\"></a><span class=\"summary-name\">__all__</span> = <code title=\"_ALL_LAZY.datums\">_ALL_LAZY.datums</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.datums-module.html#Transforms\" class=\"summary-name\">Transforms</a> = <code title=\"Transforms.OSGB36: Transform(name='OSGB36', tx=-446.45, ty=125.16, tz=\\\n-542.06, s1=1.0, rx=-7.2819e-07, ry=-1.1975e-06, rz=-4.0826e-06, s=20.\\\n489, sx=-0.1502, sy=-0.247, sz=-0.8421),\nTransforms.NAD83: Transform(name='NAD83', tx=1.004, ty=-1.91, tz=-0.51\\\n5, s1=1.0, rx=1.2945e-07, ry=1.6484e-09, rz=5.333e-08, s=-0.0015, sx=0\\\n.0267, sy=0.00034, sz=0.011),\nTransforms.WGS84: Transform(name='WGS84', tx=0.0, ty=0.0, tz=0.0, s1=1\\\n.0, rx=0.0, ry=0.0, rz=0.0, s=0.0, sx=0.0, sy=0.0, sz=0.0),\n...\">Transforms.OSGB36: Transform(name='OSGB36', tx=-4<code class=\"variable-ellipsis\">...</code></code><br />\n      Some pre-defined <a href=\"pygeodesy.datums.Transform-class.html\" \n      class=\"link\">Transform</a>s, all <i>lazily</i> instantiated.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.datums-module.html#Datums\" class=\"summary-name\">Datums</a> = <code title=\"Datums.Sphere: Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, trans\\\nform=Transforms.WGS84),\nDatums.NAD83: Datum(name='NAD83', ellipsoid=Ellipsoids.GRS80, transfor\\\nm=Transforms.NAD83),\nDatums.OSGB36: Datum(name='OSGB36', ellipsoid=Ellipsoids.Airy1830, tra\\\nnsform=Transforms.OSGB36),\nDatums.WGS84: Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transfor\\\nm=Transforms.WGS84),\n...\">Datums.Sphere: Datum(name='Sphere', ellipsoid=Ellipso<code class=\"variable-ellipsis\">...</code></code><br />\n      Some pre-defined <a href=\"pygeodesy.datums.Datum-class.html\" \n      class=\"link\">Datum</a>s, all <i>lazily</i> instantiated.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"Datums.BD72\"></a><span class=\"summary-name\">Datums.BD72</span><br />\n      Datum(name='BD72', ellipsoid=Ellipsoids.Intl1924, \n      transform=Transforms.BD72)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"Datums.DHDN\"></a><span class=\"summary-name\">Datums.DHDN</span><br />\n      Datum(name='DHDN', ellipsoid=Ellipsoids.Bessel1841, \n      transform=Transforms.DHDN)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"Datums.ED50\"></a><span class=\"summary-name\">Datums.ED50</span><br />\n      Datum(name='ED50', ellipsoid=Ellipsoids.Intl1924, \n      transform=Transforms.ED50)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"Datums.GDA2020\"></a><span class=\"summary-name\">Datums.GDA2020</span><br />\n      Datum(name='GDA2020', ellipsoid=Ellipsoids.GRS80, \n      transform=Transforms.WGS84)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"Datums.GRS80\"></a><span class=\"summary-name\">Datums.GRS80</span><br />\n      Datum(name='GRS80', ellipsoid=Ellipsoids.GRS80, \n      transform=Transforms.WGS84)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"Datums.Irl1975\"></a><span class=\"summary-name\">Datums.Irl1975</span><br />\n      Datum(name='Irl1975', ellipsoid=Ellipsoids.AiryModified, \n      transform=Transforms.Irl1975)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"Datums.Krassovski1940\"></a><span class=\"summary-name\">Datums.Krassovski1940</span><br />\n      Datum(name='Krassovski1940', ellipsoid=Ellipsoids.Krassovski1940, \n      transform=Transforms.Krassovski1940)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"Datums.Krassowsky1940\"></a><span class=\"summary-name\">Datums.Krassowsky1940</span><br />\n      Datum(name='Krassowsky1940', ellipsoid=Ellipsoids.Krassowsky1940, \n      transform=Transforms.Krassowsky1940)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"Datums.MGI\"></a><span class=\"summary-name\">Datums.MGI</span><br />\n      Datum(name='MGI', ellipsoid=Ellipsoids.Bessel1841, \n      transform=Transforms.MGI)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"Datums.NAD27\"></a><span class=\"summary-name\">Datums.NAD27</span><br />\n      Datum(name='NAD27', ellipsoid=Ellipsoids.Clarke1866, \n      transform=Transforms.NAD27)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"Datums.NAD83\"></a><span class=\"summary-name\">Datums.NAD83</span><br />\n      Datum(name='NAD83', ellipsoid=Ellipsoids.GRS80, \n      transform=Transforms.NAD83)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"Datums.NTF\"></a><span class=\"summary-name\">Datums.NTF</span><br />\n      Datum(name='NTF', ellipsoid=Ellipsoids.Clarke1880IGN, \n      transform=Transforms.NTF)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"Datums.OSGB36\"></a><span class=\"summary-name\">Datums.OSGB36</span><br />\n      Datum(name='OSGB36', ellipsoid=Ellipsoids.Airy1830, \n      transform=Transforms.OSGB36)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"Datums.Potsdam\"></a><span class=\"summary-name\">Datums.Potsdam</span><br />\n      Datum(name='Potsdam', ellipsoid=Ellipsoids.Bessel1841, \n      transform=Transforms.Bessel1841)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"Datums.Sphere\"></a><span class=\"summary-name\">Datums.Sphere</span><br />\n      Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, \n      transform=Transforms.WGS84)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"Datums.TokyoJapan\"></a><span class=\"summary-name\">Datums.TokyoJapan</span><br />\n      Datum(name='TokyoJapan', ellipsoid=Ellipsoids.Bessel1841, \n      transform=Transforms.TokyoJapan)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"Datums.WGS72\"></a><span class=\"summary-name\">Datums.WGS72</span><br />\n      Datum(name='WGS72', ellipsoid=Ellipsoids.WGS72, \n      transform=Transforms.WGS72)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"Datums.WGS84\"></a><span class=\"summary-name\">Datums.WGS84</span><br />\n      Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, \n      transform=Transforms.WGS84)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"Transforms.BD72\"></a><span class=\"summary-name\">Transforms.BD72</span><br />\n      Transform(name='BD72', tx=106.87, ty=-52.298, tz=103.72, s1=1.0, \n      rx=-1.6317e-06, ry=-2.2154e-06, rz=-8.9311e-06, s=1.2727, \n      sx=-0.33657, sy=-0.45696, sz=-1.8422)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"Transforms.Bessel1841\"></a><span class=\"summary-name\">Transforms.Bessel1841</span><br />\n      Transform(name='Bessel1841', tx=-582, ty=-105, tz=-414, s1=0.99999, \n      rx=-5.0421e-06, ry=-1.6968e-06, rz=1.4932e-05, s=-8.3, sx=-1.04, \n      sy=-0.35, sz=3.08)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"Transforms.Clarke1866\"></a><span class=\"summary-name\">Transforms.Clarke1866</span><br />\n      Transform(name='Clarke1866', tx=8.0, ty=-160, tz=-176, s1=1.0, \n      rx=0.0, ry=0.0, rz=0.0, s=0.0, sx=0.0, sy=0.0, sz=0.0)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"Transforms.DHDN\"></a><span class=\"summary-name\">Transforms.DHDN</span><br />\n      Transform(name='DHDN', tx=-591.28, ty=-81.35, tz=-396.39, s1=0.99999,\n      rx=7.1607e-06, ry=-3.5682e-07, rz=-7.0686e-06, s=-9.82, sx=1.477, \n      sy=-0.0736, sz=-1.458)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"Transforms.DHDNE\"></a><span class=\"summary-name\">Transforms.DHDNE</span><br />\n      Transform(name='DHDNE', tx=-612.4, ty=-77, tz=-440.2, s1=1.0, \n      rx=2.618e-07, ry=-2.7634e-07, rz=1.356e-05, s=-2.55, sx=0.054, \n      sy=-0.057, sz=2.797)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"Transforms.DHDNW\"></a><span class=\"summary-name\">Transforms.DHDNW</span><br />\n      Transform(name='DHDNW', tx=-598.1, ty=-73.7, tz=-418.2, s1=0.99999, \n      rx=-9.7932e-07, ry=-2.1817e-07, rz=1.1902e-05, s=-6.7, sx=-0.202, \n      sy=-0.045, sz=2.455)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"Transforms.ED50\"></a><span class=\"summary-name\">Transforms.ED50</span><br />\n      Transform(name='ED50', tx=89.5, ty=93.8, tz=123.1, s1=1.0, rx=0.0, \n      ry=0.0, rz=7.5631e-07, s=-1.2, sx=0.0, sy=0.0, sz=0.156)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"Transforms.Identity\"></a><span class=\"summary-name\">Transforms.Identity</span><br />\n      Transform(name='Identity', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=0.0, \n      ry=0.0, rz=0.0, s=0.0, sx=0.0, sy=0.0, sz=0.0)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"Transforms.Irl1965\"></a><span class=\"summary-name\">Transforms.Irl1965</span><br />\n      Transform(name='Irl1965', tx=-482.53, ty=130.6, tz=-564.56, \n      s1=0.99999, rx=5.0518e-06, ry=1.0375e-06, rz=3.0592e-06, s=-8.15, \n      sx=1.042, sy=0.214, sz=0.631)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"Transforms.Irl1975\"></a><span class=\"summary-name\">Transforms.Irl1975</span><br />\n      Transform(name='Irl1975', tx=-482.53, ty=130.6, tz=-564.56, \n      s1=0.99999, rx=5.0518e-06, ry=1.0375e-06, rz=3.0592e-06, s=-8.15, \n      sx=1.042, sy=0.214, sz=0.631)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"Transforms.Krassovski1940\"></a><span class=\"summary-name\">Transforms.Krassovski1940</span><br />\n      Transform(name='Krassovski1940', tx=-24, ty=123.0, tz=94.0, s1=1.0, \n      rx=-9.6963e-08, ry=1.2605e-06, rz=6.3026e-07, s=-2.423, sx=-0.02, \n      sy=0.26, sz=0.13)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"Transforms.Krassowsky1940\"></a><span class=\"summary-name\">Transforms.Krassowsky1940</span><br />\n      Transform(name='Krassowsky1940', tx=-24, ty=123.0, tz=94.0, s1=1.0, \n      rx=-9.6963e-08, ry=1.2605e-06, rz=6.3026e-07, s=-2.423, sx=-0.02, \n      sy=0.26, sz=0.13)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"Transforms.MGI\"></a><span class=\"summary-name\">Transforms.MGI</span><br />\n      Transform(name='MGI', tx=-577.33, ty=-90.129, tz=-463.92, s1=1.0, \n      rx=2.4905e-05, ry=7.1462e-06, rz=2.5681e-05, s=-2.423, sx=5.137, \n      sy=1.474, sz=5.297)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"Transforms.NAD27\"></a><span class=\"summary-name\">Transforms.NAD27</span><br />\n      Transform(name='NAD27', tx=8.0, ty=-160, tz=-176, s1=1.0, rx=0.0, \n      ry=0.0, rz=0.0, s=0.0, sx=0.0, sy=0.0, sz=0.0)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"Transforms.NAD83\"></a><span class=\"summary-name\">Transforms.NAD83</span><br />\n      Transform(name='NAD83', tx=1.004, ty=-1.91, tz=-0.515, s1=1.0, \n      rx=1.2945e-07, ry=1.6484e-09, rz=5.333e-08, s=-0.0015, sx=0.0267, \n      sy=0.00034, sz=0.011)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"Transforms.NTF\"></a><span class=\"summary-name\">Transforms.NTF</span><br />\n      Transform(name='NTF', tx=-168, ty=-60, tz=320.0, s1=1.0, rx=0.0, \n      ry=0.0, rz=0.0, s=0.0, sx=0.0, sy=0.0, sz=0.0)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"Transforms.OSGB36\"></a><span class=\"summary-name\">Transforms.OSGB36</span><br />\n      Transform(name='OSGB36', tx=-446.45, ty=125.16, tz=-542.06, s1=1.0, \n      rx=-7.2819e-07, ry=-1.1975e-06, rz=-4.0826e-06, s=20.489, sx=-0.1502,\n      sy=-0.247, sz=-0.8421)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"Transforms.TokyoJapan\"></a><span class=\"summary-name\">Transforms.TokyoJapan</span><br />\n      Transform(name='TokyoJapan', tx=148.0, ty=-507, tz=-685, s1=1.0, \n      rx=0.0, ry=0.0, rz=0.0, s=0.0, sx=0.0, sy=0.0, sz=0.0)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"Transforms.WGS72\"></a><span class=\"summary-name\">Transforms.WGS72</span><br />\n      Transform(name='WGS72', tx=0.0, ty=0.0, tz=-4.5, s1=1.0, rx=0.0, \n      ry=0.0, rz=2.6859e-06, s=-0.22, sx=0.0, sy=0.0, sz=0.554)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"Transforms.WGS84\"></a><span class=\"summary-name\">Transforms.WGS84</span><br />\n      Transform(name='WGS84', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=0.0, \n      ry=0.0, rz=0.0, s=0.0, sx=0.0, sy=0.0, sz=0.0)\n    </td>\n  </tr>\n</table>\n<!-- ==================== VARIABLES DETAILS ==================== -->\n<a name=\"section-VariablesDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Variables Details</span></td>\n</tr>\n</table>\n<a name=\"Transforms\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">Transforms</h3>\n  <p>Some pre-defined <a href=\"pygeodesy.datums.Transform-class.html\" \n  class=\"link\">Transform</a>s, all <i>lazily</i> instantiated.</p>\n  <dl class=\"fields\">\n  </dl>\n  <dl class=\"fields\">\n    <dt>Value:</dt>\n      <dd><table><tr><td><pre class=\"variable\">\nTransforms.OSGB36: Transform(name='OSGB36', tx=-446.45, ty=125.16, tz=<span class=\"variable-linewrap\"><img src=\"crarr.png\" alt=\"\\\" /></span>\n-542.06, s1=1.0, rx=-7.2819e-07, ry=-1.1975e-06, rz=-4.0826e-06, s=20.<span class=\"variable-linewrap\"><img src=\"crarr.png\" alt=\"\\\" /></span>\n489, sx=-0.1502, sy=-0.247, sz=-0.8421),\nTransforms.NAD83: Transform(name='NAD83', tx=1.004, ty=-1.91, tz=-0.51<span class=\"variable-linewrap\"><img src=\"crarr.png\" alt=\"\\\" /></span>\n5, s1=1.0, rx=1.2945e-07, ry=1.6484e-09, rz=5.333e-08, s=-0.0015, sx=0<span class=\"variable-linewrap\"><img src=\"crarr.png\" alt=\"\\\" /></span>\n.0267, sy=0.00034, sz=0.011),\nTransforms.WGS84: Transform(name='WGS84', tx=0.0, ty=0.0, tz=0.0, s1=1<span class=\"variable-linewrap\"><img src=\"crarr.png\" alt=\"\\\" /></span>\n.0, rx=0.0, ry=0.0, rz=0.0, s=0.0, sx=0.0, sy=0.0, sz=0.0),\n<code class=\"variable-ellipsis\">...</code>\n</pre></td></tr></table>\n</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"Datums\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">Datums</h3>\n  <p>Some pre-defined <a href=\"pygeodesy.datums.Datum-class.html\" \n  class=\"link\">Datum</a>s, all <i>lazily</i> instantiated.</p>\n  <dl class=\"fields\">\n  </dl>\n  <dl class=\"fields\">\n    <dt>Value:</dt>\n      <dd><table><tr><td><pre class=\"variable\">\nDatums.Sphere: Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, trans<span class=\"variable-linewrap\"><img src=\"crarr.png\" alt=\"\\\" /></span>\nform=Transforms.WGS84),\nDatums.NAD83: Datum(name='NAD83', ellipsoid=Ellipsoids.GRS80, transfor<span class=\"variable-linewrap\"><img src=\"crarr.png\" alt=\"\\\" /></span>\nm=Transforms.NAD83),\nDatums.OSGB36: Datum(name='OSGB36', ellipsoid=Ellipsoids.Airy1830, tra<span class=\"variable-linewrap\"><img src=\"crarr.png\" alt=\"\\\" /></span>\nnsform=Transforms.OSGB36),\nDatums.WGS84: Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transfor<span class=\"variable-linewrap\"><img src=\"crarr.png\" alt=\"\\\" /></span>\nm=Transforms.WGS84),\n<code class=\"variable-ellipsis\">...</code>\n</pre></td></tr></table>\n</dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.datums.Datum-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.datums.Datum</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.datums-module.html\">Module&nbsp;datums</a> ::\n        Class&nbsp;Datum\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.datums.Datum-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Datum</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+            \n           |            \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+        \n               |        \n<a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+    \n                   |    \n<a href=\"pygeodesy.named._NamedEnumItem-class.html\">named._NamedEnumItem</a> --+\n                       |\n                      <strong class=\"uidshort\">Datum</strong>\n</pre>\n\n<hr />\n<p>Ellipsoid and transform parameters for an earth model.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.datums.Datum-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">ellipsoid</span>,\n        <span class=\"summary-sig-arg\">transform</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      New <a href=\"pygeodesy.datums.Datum-class.html\" \n      class=\"link\">Datum</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.datums.Datum-class.html#__eq__\" class=\"summary-sig-name\">__eq__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span><br />\n      Compare this and an other datum.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.datums.Datum-class.html#__hash__\" class=\"summary-sig-name\">__hash__</a>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      hash(x)</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.datums.Datum-class.html#__matmul__\" class=\"summary-sig-name\">__matmul__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">point</span>)</span><br />\n      Convert an <i>ellipsoidal</i> <b><code>point</code></b> to this \n      datum.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.datums.Datum-class.html#ecef\" class=\"summary-sig-name\">ecef</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">Ecef</span>=<span class=\"summary-sig-default\">None</span>)</span><br />\n      Return <a href=\"https://WikiPedia.org/wiki/ECEF\" \n      target=\"_top\">ECEF</a> converter.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.datums.Datum-class.html#toStr\" class=\"summary-sig-name\">toStr</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">sep</span>=<span class=\"summary-sig-default\">', '</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Return this datum as a string.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedEnumItem-class.html\">named._NamedEnumItem</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedEnumItem-class.html#unregister\">unregister</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#others\">others</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#toRepr\">toRepr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.datums.Datum-class.html#ellipsoid\" class=\"summary-name\">ellipsoid</a><br />\n      Get this datum's ellipsoid (<a \n      href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n      class=\"link\">Ellipsoid</a> or <a \n      href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n      class=\"link\">Ellipsoid2</a>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.datums.Datum-class.html#exactTM\" class=\"summary-name\">exactTM</a><br />\n      Get the <code>ExactTM</code> projection (<a \n      href=\"pygeodesy.etm.ExactTransverseMercator-class.html\" \n      class=\"link\">ExactTransverseMercator</a>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.datums.Datum-class.html#isEllipsoidal\" class=\"summary-name\">isEllipsoidal</a><br />\n      Check whether this datum is ellipsoidal (<code>bool</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.datums.Datum-class.html#isOblate\" class=\"summary-name\">isOblate</a><br />\n      Check whether this datum's ellipsoidal is <i>oblate</i> \n      (<code>bool</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.datums.Datum-class.html#isProlate\" class=\"summary-name\">isProlate</a><br />\n      Check whether this datum's ellipsoidal is <i>prolate</i> \n      (<code>bool</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.datums.Datum-class.html#isSpherical\" class=\"summary-name\">isSpherical</a><br />\n      Check whether this datum is (near-)spherical (<code>bool</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.datums.Datum-class.html#transform\" class=\"summary-name\">transform</a><br />\n      Get this datum's transform (<a \n      href=\"pygeodesy.datums.Transform-class.html\" \n      class=\"link\">Transform</a>).\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedEnumItem-class.html\">named._NamedEnumItem</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedEnumItem-class.html#name\">name</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">ellipsoid</span>,\n        <span class=\"sig-arg\">transform</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.datums.Datum-class.html\" \n  class=\"link\">Datum</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>ellipsoid</code></strong> - The ellipsoid (<a \n          href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a> or <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a>).</li>\n        <li><strong class=\"pname\"><code>transform</code></strong> - Optional transform (<a \n          href=\"pygeodesy.datums.Transform-class.html\" \n          class=\"link\">Transform</a>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional, unique <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>NameError</strong></code> - Datum with that <b><code>name</code></b> already exists.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - If <b><code>ellipsoid</code></b> is not an <a \n        href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n        class=\"link\">Ellipsoid</a> nor <a \n        href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n        class=\"link\">Ellipsoid2</a> or <b><code>transform</code></b> is not\n        a <a href=\"pygeodesy.datums.Transform-class.html\" \n        class=\"link\">Transform</a>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__eq__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__eq__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>)</span>\n    <br /><em class=\"fname\">(Equality operator)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compare this and an other datum.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>other</code></strong> - The other datum (<a href=\"pygeodesy.datums.Datum-class.html\" \n          class=\"link\">Datum</a>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>True</code> if equal, <code>False</code> otherwise.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__hash__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__hash__</span>&nbsp;(<span class=\"sig-arg\">self</span>)</span>\n    <br /><em class=\"fname\">(Hashing function)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>hash(x)</p>\n  <dl class=\"fields\">\n    <dt>Overrides:\n        object.__hash__\n        <dd><em class=\"note\">(inherited documentation)</em></dd>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__matmul__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__matmul__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">point</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert an <i>ellipsoidal</i> <b><code>point</code></b> to this \n  datum.</p>\n  <dl class=\"fields\">\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>point</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.named._Named-class.html#__matmul__\">named._Named.__matmul__</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"ecef\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">ecef</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">Ecef</span>=<span class=\"sig-default\">None</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return <a href=\"https://WikiPedia.org/wiki/ECEF\" \n  target=\"_top\">ECEF</a> converter.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>Ecef</code></strong> - ECEF class to use, default <a \n          href=\"pygeodesy.ecef.EcefKarney-class.html\" \n          class=\"link\">EcefKarney</a>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>An ECEF converter for this <code>datum</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>Ecef</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Module <a href=\"pygeodesy.ecef-module.html\" \n        class=\"link\">pygeodesy.ecef</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"toStr\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toStr</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">sep</span>=<span class=\"sig-default\">', '</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return this datum as a string.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>sep</code></strong> - Separator to join (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional, override <code><b>name</b>=NN</code> (<code>str</code>)\n          or <code>None</code> to exclude this datum's name.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Datum attributes (<code>str</code>).</dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.named._Named-class.html#toStr\">named._Named.toStr</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"ellipsoid\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">ellipsoid</h3>\n  <p>Get this datum's ellipsoid (<a \n  href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n  class=\"link\">Ellipsoid</a> or <a \n  href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n  class=\"link\">Ellipsoid2</a>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">ellipsoid(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get this datum's ellipsoid (<a \nhref=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" class=\"link\">Ellipsoid</a>\nor <a href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \nclass=\"link\">Ellipsoid2</a>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"exactTM\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">exactTM</h3>\n  <p>Get the <code>ExactTM</code> projection (<a \n  href=\"pygeodesy.etm.ExactTransverseMercator-class.html\" \n  class=\"link\">ExactTransverseMercator</a>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">exactTM(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <code>ExactTM</code> projection (<a \nhref=\"pygeodesy.etm.ExactTransverseMercator-class.html\" \nclass=\"link\">ExactTransverseMercator</a>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"isEllipsoidal\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">isEllipsoidal</h3>\n  <p>Check whether this datum is ellipsoidal (<code>bool</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">isEllipsoidal(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Check whether this datum is ellipsoidal (<code>bool</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"isOblate\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">isOblate</h3>\n  <p>Check whether this datum's ellipsoidal is <i>oblate</i> \n  (<code>bool</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">isOblate(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Check whether this datum's ellipsoidal is <i>oblate</i> \n(<code>bool</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"isProlate\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">isProlate</h3>\n  <p>Check whether this datum's ellipsoidal is <i>prolate</i> \n  (<code>bool</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">isProlate(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Check whether this datum's ellipsoidal is <i>prolate</i> \n(<code>bool</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"isSpherical\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">isSpherical</h3>\n  <p>Check whether this datum is (near-)spherical (<code>bool</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">isSpherical(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Check whether this datum is (near-)spherical (<code>bool</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"transform\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">transform</h3>\n  <p>Get this datum's transform (<a \n  href=\"pygeodesy.datums.Transform-class.html\" \n  class=\"link\">Transform</a>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">transform(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get this datum's transform (<a href=\"pygeodesy.datums.Transform-class.html\"\nclass=\"link\">Transform</a>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.datums.Transform-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.datums.Transform</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.datums-module.html\">Module&nbsp;datums</a> ::\n        Class&nbsp;Transform\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.datums.Transform-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Transform</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+            \n           |            \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+        \n               |        \n<a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+    \n                   |    \n<a href=\"pygeodesy.named._NamedEnumItem-class.html\">named._NamedEnumItem</a> --+\n                       |\n                      <strong class=\"uidshort\">Transform</strong>\n</pre>\n\n<dl><dt>Known Subclasses:</dt>\n<dd>\n      <ul class=\"subclass-list\">\n<li><a href=\"pygeodesy.trf.TransformXform-class.html\">trf.TransformXform</a></li>  </ul>\n</dd></dl>\n\n<hr />\n<p>Helmert <i>datum</i> transformation.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"pygeodesy.trf.TransformXform-class.html\" \n        class=\"link\">TransformXform</a>.\n      </p>\n</div><!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.datums.Transform-class.html#__eq__\" class=\"summary-sig-name\">__eq__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span><br />\n      Compare this and an other transform.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.datums.Transform-class.html#__hash__\" class=\"summary-sig-name\">__hash__</a>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      hash(x)</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.datums.Transform-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">name</span>=<span class=\"summary-sig-default\">''</span>,\n        <span class=\"summary-sig-arg\">tx</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">ty</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">tz</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">s</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">sx</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">sy</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">sz</span>=<span class=\"summary-sig-default\">0</span>)</span><br />\n      New <a href=\"pygeodesy.datums.Transform-class.html\" \n      class=\"link\">Transform</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__iter__\"></a><span class=\"summary-sig-name\">__iter__</span>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Yield the initial attribute values, <i>in order</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.datums.Transform-class.html#__matmul__\" class=\"summary-sig-name\">__matmul__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">point</span>)</span><br />\n      Transform an <i>ellipsoidal</i> <b><code>point</code></b> with this \n      Helmert.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__neg__\"></a><span class=\"summary-sig-name\">__neg__</span>(<span class=\"summary-sig-arg\">self</span>)</span></td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.datums.Transform-class.html#inverse\" class=\"summary-sig-name\">inverse</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Return the inverse of this transform.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.datums.Transform-class.html#items\" class=\"summary-sig-name\">items</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">inverse</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Yield the initial attributes, each as 2-tuple <code>(name, \n      value)</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.datums.Transform-class.html#toStr\" class=\"summary-sig-name\">toStr</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">prec</span>=<span class=\"summary-sig-default\">5</span>,\n        <span class=\"summary-sig-arg\">fmt</span>=<span class=\"summary-sig-default\">'g'</span>,\n        <span class=\"summary-sig-arg\">**sep_name</span>)</span><br />\n      Return this transform as a string.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.datums.Transform-class.html#transform\" class=\"summary-sig-name\">transform</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">x</span>,\n        <span class=\"summary-sig-arg\">y</span>,\n        <span class=\"summary-sig-arg\">z</span>,\n        <span class=\"summary-sig-arg\">inverse</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">**Vector_and_kwds</span>)</span><br />\n      Transform a (cartesian) position, forward or inverse.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedEnumItem-class.html\">named._NamedEnumItem</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedEnumItem-class.html#unregister\">unregister</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#others\">others</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#toRepr\">toRepr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS VARIABLES ==================== -->\n<a name=\"section-ClassVariables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Class Variables</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"rx\"></a><span class=\"summary-name\">rx</span> = <code title=\"0.0\">0.0</code><br />\n      Get the complete integral of the second kind <code>E(k)</code> \n      (<code>float</code>), <a href=\"https://DLMF.NIST.gov/19.2.E5\" \n      target=\"_top\">defined</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"ry\"></a><span class=\"summary-name\">ry</span> = <code title=\"0.0\">0.0</code><br />\n      Get the complete integral of the second kind <code>E(k)</code> \n      (<code>float</code>), <a href=\"https://DLMF.NIST.gov/19.2.E5\" \n      target=\"_top\">defined</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"rz\"></a><span class=\"summary-name\">rz</span> = <code title=\"0.0\">0.0</code><br />\n      Get the complete integral of the second kind <code>E(k)</code> \n      (<code>float</code>), <a href=\"https://DLMF.NIST.gov/19.2.E5\" \n      target=\"_top\">defined</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"s\"></a><span class=\"summary-name\">s</span> = <code title=\"0.0\">0.0</code><br />\n      Get the complete integral of the second kind <code>E(k)</code> \n      (<code>float</code>), <a href=\"https://DLMF.NIST.gov/19.2.E5\" \n      target=\"_top\">defined</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"s1\"></a><span class=\"summary-name\">s1</span> = <code title=\"1.0\">1.0</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"sx\"></a><span class=\"summary-name\">sx</span> = <code title=\"0.0\">0.0</code><br />\n      Get the complete integral of the second kind <code>E(k)</code> \n      (<code>float</code>), <a href=\"https://DLMF.NIST.gov/19.2.E5\" \n      target=\"_top\">defined</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"sy\"></a><span class=\"summary-name\">sy</span> = <code title=\"0.0\">0.0</code><br />\n      Get the complete integral of the second kind <code>E(k)</code> \n      (<code>float</code>), <a href=\"https://DLMF.NIST.gov/19.2.E5\" \n      target=\"_top\">defined</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"sz\"></a><span class=\"summary-name\">sz</span> = <code title=\"0.0\">0.0</code><br />\n      Get the complete integral of the second kind <code>E(k)</code> \n      (<code>float</code>), <a href=\"https://DLMF.NIST.gov/19.2.E5\" \n      target=\"_top\">defined</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"tx\"></a><span class=\"summary-name\">tx</span> = <code title=\"0.0\">0.0</code><br />\n      Get the complete integral of the second kind <code>E(k)</code> \n      (<code>float</code>), <a href=\"https://DLMF.NIST.gov/19.2.E5\" \n      target=\"_top\">defined</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"ty\"></a><span class=\"summary-name\">ty</span> = <code title=\"0.0\">0.0</code><br />\n      Get the complete integral of the second kind <code>E(k)</code> \n      (<code>float</code>), <a href=\"https://DLMF.NIST.gov/19.2.E5\" \n      target=\"_top\">defined</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"tz\"></a><span class=\"summary-name\">tz</span> = <code title=\"0.0\">0.0</code><br />\n      Get the complete integral of the second kind <code>E(k)</code> \n      (<code>float</code>), <a href=\"https://DLMF.NIST.gov/19.2.E5\" \n      target=\"_top\">defined</a>.\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.datums.Transform-class.html#isunity\" class=\"summary-name\">isunity</a><br />\n      Is this a <code>unity, identity</code> transform (<code>bool</code>),\n      like WGS84 with translation, scale and rotation all zero?\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedEnumItem-class.html\">named._NamedEnumItem</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedEnumItem-class.html#name\">name</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__eq__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__eq__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>)</span>\n    <br /><em class=\"fname\">(Equality operator)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compare this and an other transform.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>other</code></strong> - The other transform (<a \n          href=\"pygeodesy.datums.Transform-class.html\" \n          class=\"link\">Transform</a>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>True</code> if equal, <code>False</code> otherwise.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__hash__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__hash__</span>&nbsp;(<span class=\"sig-arg\">self</span>)</span>\n    <br /><em class=\"fname\">(Hashing function)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>hash(x)</p>\n  <dl class=\"fields\">\n    <dt>Overrides:\n        object.__hash__\n        <dd><em class=\"note\">(inherited documentation)</em></dd>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">name</span>=<span class=\"sig-default\">''</span>,\n        <span class=\"sig-arg\">tx</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">ty</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">tz</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">s</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">sx</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">sy</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">sz</span>=<span class=\"sig-default\">0</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.datums.Transform-class.html\" \n  class=\"link\">Transform</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional, unique name (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>tx</code></strong> - X translation (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>ty</code></strong> - Y translation (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>tz</code></strong> - Z translation (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>s</code></strong> - Scale (<code>float</code>), ppm.</li>\n        <li><strong class=\"pname\"><code>sx</code></strong> - X rotation (<code>arc-seconds</code>).</li>\n        <li><strong class=\"pname\"><code>sy</code></strong> - Y rotation (<code>arc-seconds</code>).</li>\n        <li><strong class=\"pname\"><code>sz</code></strong> - Z rotation (<code>arc-seconds</code>).</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>NameError</strong></code> - Transform with that <b><code>name</code></b> already exists.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__matmul__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__matmul__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">point</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Transform an <i>ellipsoidal</i> <b><code>point</code></b> with this \n  Helmert.</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd>A transformed copy of <b><code>point</code></b>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>point</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.named._Named-class.html#__matmul__\">named._Named.__matmul__</a>\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <code><b>point</b>.toTransform</code>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"inverse\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">inverse</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the inverse of this transform.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional, unique name (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Inverse (<a href=\"pygeodesy.datums.Transform-class.html\" \n          class=\"link\">Transform</a>), unregistered.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"items\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">items</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">inverse</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Yield the initial attributes, each as 2-tuple <code>(name, \n  value)</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>inverse</code></strong> - If <code>True</code>, negate the values (<code>bool</code>).</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toStr\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toStr</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">prec</span>=<span class=\"sig-default\">5</span>,\n        <span class=\"sig-arg\">fmt</span>=<span class=\"sig-default\">'g'</span>,\n        <span class=\"sig-arg\">**sep_name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return this transform as a string.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>prec</code></strong> - Number of (decimal) digits, unstripped (<code>int</code>).</li>\n        <li><strong class=\"pname\"><code>fmt</code></strong> - Optional <code>float</code> format (<code>letter</code>).</li>\n        <li><strong class=\"pname\"><code>sep_name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>) or \n          <code>None</code> to exclude this transform's name and separater \n          <code><b>sep</b>=&quot;, &quot;</code> to join the items \n          (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Transform attributes (<code>str</code>).</dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.named._Named-class.html#toStr\">named._Named.toStr</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"transform\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">transform</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">x</span>,\n        <span class=\"sig-arg\">y</span>,\n        <span class=\"sig-arg\">z</span>,\n        <span class=\"sig-arg\">inverse</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">**Vector_and_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Transform a (cartesian) position, forward or inverse.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>x</code></strong> - X coordinate (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>y</code></strong> - Y coordinate (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>z</code></strong> - Z coordinate (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>inverse</code></strong> - If <code>True</code>, apply the inverse transform \n          (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>Vector_and_kwds</code></strong> - An optional, (3-D) <code><b>Vector</b>=None</code> or cartesian \n          class and additional <code><b>Vector</b></code> keyword arguments\n          to return the transformed position.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The transformed position (<a \n          href=\"pygeodesy.namedTuples.Vector3Tuple-class.html\" \n          class=\"link\">Vector3Tuple</a><code>(x, y, z)</code>) unless some \n          <b><code>Vector_and_kwds</code></b> are specified.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"isunity\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">isunity</h3>\n  <p>Is this a <code>unity, identity</code> transform (<code>bool</code>), \n  like WGS84 with translation, scale and rotation all zero?</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">isunity(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Is this a <code>unity, identity</code> transform (<code>bool</code>), like \nWGS84 with translation, scale and rotation all zero?\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.deprecated-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.deprecated</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        Package&nbsp;deprecated\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.deprecated-module.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PACKAGE DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Package deprecated</h1><p class=\"nomargin-top\"></p>\n<p>DEPRECATED classes, constants, functions, interns, methods, etc. and \n  all lazily imported.</p>\n  <p>Kept for backward compatibility, including DEPRECATED modules \n  <code>pygeodesy.bases</code>, <code>pygeodesy.datum</code> and \n  <code>pygeodesy.nvector</code>.  Use either <code>from pygeodesy import \n  bases</code> or <code>from pygeodesy.deprecated import bases</code>.  \n  Likewise for <code>datum</code> and <code>nvector</code>.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Version:</strong>\n        26.02.08\n      </p>\n</div><!-- ==================== SUBMODULES ==================== -->\n<a name=\"section-Submodules\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Submodules</span></td>\n</tr>\n  <tr><td class=\"summary\">\n  <ul class=\"nomargin\">\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.deprecated.bases-module.html\">pygeodesy.deprecated.bases</a></strong>: <em class=\"summary\">DEPRECATED on 2021.02.10, use (INTERNAL) module <a \n        href=\"pygeodesy.latlonBase-module.html\" \n        class=\"link\">pygeodesy.latlonBase</a> instead.</em>    </li>\n    <li class=\"private\"> <strong class=\"uidlink\"><a href=\"pygeodesy.deprecated.classes-module.html\" onclick=\"show_private();\">pygeodesy.deprecated.classes</a></strong>: <em class=\"summary\">DEPRECATED classes kept for backward compatibility.</em>    </li>\n    <li class=\"private\"> <strong class=\"uidlink\"><a href=\"pygeodesy.deprecated.consterns-module.html\" onclick=\"show_private();\">pygeodesy.deprecated.consterns</a></strong>: <em class=\"summary\">DEPRECATED constants, interns and singletons kept for backward \n        compatibility.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.deprecated.datum-module.html\">pygeodesy.deprecated.datum</a></strong>: <em class=\"summary\">DEPRECATED on 2022.09.12, use module <a \n        href=\"pygeodesy.datums-module.html\" \n        class=\"link\">pygeodesy.datums</a> or <a \n        href=\"pygeodesy.ellipsoids-module.html\" \n        class=\"link\">pygeodesy.ellipsoids</a> instead.</em>    </li>\n    <li class=\"private\"> <strong class=\"uidlink\"><a href=\"pygeodesy.deprecated.functions-module.html\" onclick=\"show_private();\">pygeodesy.deprecated.functions</a></strong>: <em class=\"summary\">DEPRECATED functions kept for backward compatibility.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.deprecated.nvector-module.html\">pygeodesy.deprecated.nvector</a></strong>: <em class=\"summary\">DEPRECATED on 2021.05.20, use (INTERNAL) module <a \n        href=\"pygeodesy.nvectorBase-module.html\" \n        class=\"link\">pygeodesy.nvectorBase</a> instead.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.deprecated.rhumbBase-module.html\">pygeodesy.deprecated.rhumbBase</a></strong>: <em class=\"summary\">DEPRECATED on 2023.11.26, use module <a \n        href=\"pygeodesy.rhumb.bases-module.html\" class=\"link\" \n        onclick=\"show_private();\">pygeodesy.rhumb.bases</a> instead.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.deprecated.rhumbaux-module.html\">pygeodesy.deprecated.rhumbaux</a></strong>: <em class=\"summary\">DEPRECATED on 2023.11.26, use module <a \n        href=\"pygeodesy.rhumb.aux_-module.html\" class=\"link\" \n        onclick=\"show_private();\">pygeodesy.rhumb.aux_</a> instead.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.deprecated.rhumbsolve-module.html\">pygeodesy.deprecated.rhumbsolve</a></strong>: <em class=\"summary\">DEPRECATED on 2023.11.26, use module <a \n        href=\"pygeodesy.rhumb.solve-module.html\" class=\"link\" \n        onclick=\"show_private();\">pygeodesy.rhumb.solve</a> instead.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.deprecated.rhumbx-module.html\">pygeodesy.deprecated.rhumbx</a></strong>: <em class=\"summary\">DEPRECATED on 2023.11.26, use module <a \n        href=\"pygeodesy.rhumb.ekx-module.html\" class=\"link\" \n        onclick=\"show_private();\">pygeodesy.rhumb.ekx</a> instead.</em>    </li>\n  </ul></td></tr>\n</table>\n\n<br />\n<!-- ==================== CLASSES ==================== -->\n<a name=\"section-Classes\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Classes</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.deprecated.classes.ClipCS3Tuple-class.html\" class=\"summary-name\">ClipCS3Tuple</a><br />\n      DEPRECATED, see <i>DEPRECATED</i> function <a \n        href=\"pygeodesy.deprecated.functions-module.html#clipCS3\" \n        class=\"link\">pygeodesy.deprecated.clipCS3</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoids.Curvature2Tuple-class.html\" class=\"summary-name\">Curvature2Tuple</a><br />\n      2-Tuple <code>(meridional, prime_vertical)</code> of radii of \n        curvature, both in <code>meter</code>, conventionally.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.datums.Datum-class.html\" class=\"summary-name\">Datum</a><br />\n      Ellipsoid and transform parameters for an earth model.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.deprecated.classes.EasNorExact4Tuple-class.html\" class=\"summary-name\">EasNorExact4Tuple</a><br />\n      DEPRECATED, use class <a \n        href=\"pygeodesy.namedTuples.Forward4Tuple-class.html\" \n        class=\"link\">Forward4Tuple</a>, item <code>gamma</code> for \n        <code>convergence</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.deprecated.consterns.Elliperim-class.html\" class=\"summary-name\">Elliperim</a><br />\n      DEPRECATED on 2026.02.06, use class <a \n        href=\"pygeodesy.ellipses.Ellipse-class.html\" \n        class=\"link\">Ellipse</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" class=\"summary-name\">Ellipsoid</a><br />\n      Ellipsoid with <i>equatorial</i> and <i>polar</i> radii, \n        <i>flattening</i>, <i>inverse flattening</i> and other, often used,\n        <i>cached</i> attributes, supporting <i>oblate</i> and \n        <i>prolate</i> ellipsoidal and <i>spherical</i> earth models.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.deprecated.classes.Transform7Tuple-class.html\" class=\"summary-name\">Helmert7Tuple</a><br />\n      DEPRECATED on 2024.02.02, use class <a \n        href=\"pygeodesy.trf.TRFXform7Tuple-class.html\" \n        class=\"link\">TRFXform7Tuple</a>, <i>without</i> keyword arguments.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.deprecated.classes.Jacobi2Tuple-class.html\" class=\"summary-name\">Jacobi2Tuple</a><br />\n      DEPRECATED on 25.11.11, use class <a \n        href=\"pygeodesy.triaxials.triaxial5.Conformal2Tuple-class.html\" \n        class=\"link\">Conformal2Tuple</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.deprecated.classes.JacobiConformal-class.html\" class=\"summary-name\">JacobiConformal</a><br />\n      DEPRECATED on 2025.10.25, use class <a \n        href=\"pygeodesy.triaxials.triaxial5.Conformal-class.html\" \n        class=\"link\">Conformal</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.deprecated.classes.JacobiConformalSpherical-class.html\" class=\"summary-name\">JacobiConformalSpherical</a><br />\n      DEPRECATED on 2025.10.25, use class <a \n        href=\"pygeodesy.triaxials.triaxial5.ConformalSphere-class.html\" \n        class=\"link\">ConformalSphere</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.deprecated.classes.Lam_-class.html\" class=\"summary-name\">Lam_</a><br />\n      DEPRECATED on 2024.06.15, use class <a \n        href=\"pygeodesy.units.Lamd-class.html\" class=\"link\">Lamd</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.deprecated.classes.LatLonExact4Tuple-class.html\" class=\"summary-name\">LatLonExact4Tuple</a><br />\n      DEPRECATED, use class <a \n        href=\"pygeodesy.namedTuples.Reverse4Tuple-class.html\" \n        class=\"link\">Reverse4Tuple</a>, item <code>gamma</code> for \n        <code>convergence</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.deprecated.bases.LatLonHeightBase-class.html\" class=\"summary-name\">LatLonHeightBase</a><br />\n      DEPRECATED on 2021.02.10, use (INTERNAL) class <a \n        href=\"pygeodesy.latlonBase.LatLonBase-class.html\" \n        class=\"link\">pygeodesy.latlonBase.LatLonBase</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.nvectorBase.LatLonNvectorBase-class.html\" class=\"summary-name\">LatLonNvectorBase</a><br />\n      (INTERNAL) Base class for n-vector-based ellipsoidal and spherical \n        <code>LatLon</code>s.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.deprecated.classes.NearestOn4Tuple-class.html\" class=\"summary-name\">NearestOn4Tuple</a><br />\n      DEPRECATED on 2023.10.10, see methods <a \n        href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#nearestOn4\" \n        class=\"link\">RhumbLine.nearestOn4</a> and <a \n        href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#nearestOn4\" \n        class=\"link\">RhumbLineAux.nearestOn4</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.deprecated.classes.Ned3Tuple-class.html\" class=\"summary-name\">Ned3Tuple</a><br />\n      DEPRECATED, use class <a \n        href=\"pygeodesy.ltpTuples.Ned4Tuple-class.html\" \n        class=\"link\">Ned4Tuple</a>, ignoring item <code>ltp</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.deprecated.nvector.Nvector-class.html\" class=\"summary-name\">Nvector</a><br />\n      DEPRECATED on 2021.05.20, see (INTERNAL) class <a \n        href=\"pygeodesy.nvectorBase.NvectorBase-class.html\" \n        class=\"link\">pygeodesy.nvectorBase.NvectorBase</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.deprecated.classes.Phi_-class.html\" class=\"summary-name\">Phi_</a><br />\n      DEPRECATED on 2024.06.15, use class <a \n        href=\"pygeodesy.units.Phid-class.html\" class=\"link\">Phid</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.deprecated.classes.Rhumb7Tuple-class.html\" class=\"summary-name\">Rhumb7Tuple</a><br />\n      DEPRECATED, use class <a \n        href=\"pygeodesy.karney.Rhumb8Tuple-class.html\" class=\"link\" \n        onclick=\"show_private();\">Rhumb8Tuple</a>, ignoring item \n        <code>a12</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.deprecated.classes.RhumbOrder2Tuple-class.html\" class=\"summary-name\">RhumbOrder2Tuple</a><br />\n      DEPRECATED, see deprecated method <a \n        href=\"pygeodesy.rhumb.ekx.Rhumb-class.html#orders\" \n        class=\"link\">Rhumb.orders</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.datums.Transform-class.html\" class=\"summary-name\">Transform</a><br />\n      Helmert <i>datum</i> transformation.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.deprecated.classes.Transform7Tuple-class.html\" class=\"summary-name\">Transform7Tuple</a><br />\n      DEPRECATED on 2024.02.02, use class <a \n        href=\"pygeodesy.trf.TRFXform7Tuple-class.html\" \n        class=\"link\">TRFXform7Tuple</a>, <i>without</i> keyword arguments.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.deprecated.classes.TriAngle4Tuple-class.html\" class=\"summary-name\">TriAngle4Tuple</a><br />\n      DEPRECATED on 2023.09.14, use class <a \n        href=\"pygeodesy.resections.TriAngle5Tuple-class.html\" \n        class=\"link\">TriAngle5Tuple</a>, ignoring item <code>area</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.deprecated.classes.UtmUps4Tuple-class.html\" class=\"summary-name\">UtmUps4Tuple</a><br />\n      DEPRECATED and OBSOLETE, expect a <a \n        href=\"pygeodesy.namedTuples.UtmUps5Tuple-class.html\" \n        class=\"link\">UtmUps5Tuple</a> from method \n        <code>pygeodesy.Mgrs.toUtm(utm=None)</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.deprecated.classes.XDist-class.html\" class=\"summary-name\">XDist</a><br />\n      DEPRECATED on 2024.07.02, use class <a \n        href=\"pygeodesy.named.ADict-class.html\" class=\"link\">ADict</a>.\n    </td>\n  </tr>\n</table>\n<!-- ==================== FUNCTIONS ==================== -->\n<a name=\"section-Functions\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Functions</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"EcefCartesian\"></a><span class=\"summary-sig-name\">EcefCartesian</span>(<span class=\"summary-sig-arg\">*args</span>,\n        <span class=\"summary-sig-arg\">**kwds</span>)</span><br />\n      DEPRECATED, use class <a \n      href=\"pygeodesy.ltp.LocalCartesian-class.html\" \n      class=\"link\">LocalCartesian</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"Fn_rt\"></a><span class=\"summary-sig-name\">Fn_rt</span>(<span class=\"summary-sig-arg\">root</span>,\n        <span class=\"summary-sig-arg\">*xs</span>,\n        <span class=\"summary-sig-arg\">**name_RESIDUAL_raiser</span>)</span><br />\n      DEPRECATED on 2024.04.17, use class <a \n      href=\"pygeodesy.fmath.Froot-class.html\" class=\"link\">Froot</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"FrechetCosineAndoyerLambert\"></a><span class=\"summary-sig-name\">FrechetCosineAndoyerLambert</span>(<span class=\"summary-sig-arg\">point1s</span>,\n        <span class=\"summary-sig-arg\">**kwds</span>)</span><br />\n      DEPRECATED on 2024.12.31, use class <a \n      href=\"pygeodesy.frechet.FrechetCosineLaw-class.html\" \n      class=\"link\">FrechetCosineLaw</a> with <code><b>corr</b>=1</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"FrechetCosineForsytheAndoyerLambert\"></a><span class=\"summary-sig-name\">FrechetCosineForsytheAndoyerLambert</span>(<span class=\"summary-sig-arg\">point1s</span>,\n        <span class=\"summary-sig-arg\">**kwds</span>)</span><br />\n      DEPRECATED on 2024.12.31, use class <a \n      href=\"pygeodesy.frechet.FrechetCosineLaw-class.html\" \n      class=\"link\">FrechetCosineLaw</a> with <code><b>corr</b>=2</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.deprecated-module.html#Fsum2product\" class=\"summary-sig-name\">Fsum2product</a>(<span class=\"summary-sig-arg\">*xs</span>,\n        <span class=\"summary-sig-arg\">**kwds</span>)</span><br />\n      DEPRECATED on 2024.09.19, use <a \n      href=\"pygeodesy.fsums.Fsum-class.html\" \n      class=\"link\">Fsum</a><code>(*<b>xs</b>, <b>f2product</b>=True, \n      ...)</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"HausdorffCosineAndoyerLambert\"></a><span class=\"summary-sig-name\">HausdorffCosineAndoyerLambert</span>(<span class=\"summary-sig-arg\">point1s</span>,\n        <span class=\"summary-sig-arg\">**kwds</span>)</span><br />\n      DEPRECATED on 2024.12.31, use class <a \n      href=\"pygeodesy.hausdorff.HausdorffCosineLaw-class.html\" \n      class=\"link\">HausdorffCosineLaw</a> with <code><b>corr</b>=1</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"HausdorffCosineForsytheAndoyerLambert\"></a><span class=\"summary-sig-name\">HausdorffCosineForsytheAndoyerLambert</span>(<span class=\"summary-sig-arg\">point1s</span>,\n        <span class=\"summary-sig-arg\">**kwds</span>)</span><br />\n      DEPRECATED on 2024.12.31, use class <a \n      href=\"pygeodesy.hausdorff.HausdorffCosineLaw-class.html\" \n      class=\"link\">HausdorffCosineLaw</a> with <code><b>corr</b>=2</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"HeightIDW\"></a><span class=\"summary-sig-name\">HeightIDW</span>(<span class=\"summary-sig-arg\">knots</span>,\n        <span class=\"summary-sig-arg\">**kwds</span>)</span><br />\n      DEPRECATED, use class <a \n      href=\"pygeodesy.heights.HeightIDWeuclidean-class.html\" \n      class=\"link\">HeightIDWeuclidean</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"HeightIDW2\"></a><span class=\"summary-sig-name\">HeightIDW2</span>(<span class=\"summary-sig-arg\">knots</span>,\n        <span class=\"summary-sig-arg\">**kwds</span>)</span><br />\n      DEPRECATED, use class <a \n      href=\"pygeodesy.heights.HeightIDWequirectangular-class.html\" \n      class=\"link\">HeightIDWequirectangular</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"HeightIDW3\"></a><span class=\"summary-sig-name\">HeightIDW3</span>(<span class=\"summary-sig-arg\">knots</span>,\n        <span class=\"summary-sig-arg\">**kwds</span>)</span><br />\n      DEPRECATED, use class <a \n      href=\"pygeodesy.heights.HeightIDWhaversine-class.html\" \n      class=\"link\">HeightIDWhaversine</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"HeightIDWcosineAndoyerLambert\"></a><span class=\"summary-sig-name\">HeightIDWcosineAndoyerLambert</span>(<span class=\"summary-sig-arg\">knots</span>,\n        <span class=\"summary-sig-arg\">**kwds</span>)</span><br />\n      DEPRECATED on 2024.12.31, use class <a \n      href=\"pygeodesy.heights.HeightIDWcosineLaw-class.html\" \n      class=\"link\">HeightIDWcosineLaw</a> with <code><b>corr</b>=1</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"HeightIDWcosineForsytheAndoyerLambert\"></a><span class=\"summary-sig-name\">HeightIDWcosineForsytheAndoyerLambert</span>(<span class=\"summary-sig-arg\">knots</span>,\n        <span class=\"summary-sig-arg\">**kwds</span>)</span><br />\n      DEPRECATED on 2024.12.31, use class <a \n      href=\"pygeodesy.heights.HeightIDWcosineLaw-class.html\" \n      class=\"link\">HeightIDWcosineLaw</a> with <code><b>corr</b>=2</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"RefFrameError\"></a><span class=\"summary-sig-name\">RefFrameError</span>(<span class=\"summary-sig-arg\">*args</span>,\n        <span class=\"summary-sig-arg\">**kwds</span>)</span><br />\n      DEPRECATED, use class <a href=\"pygeodesy.errors.TRFError-class.html\" \n      class=\"link\">TRFError</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.deprecated-module.html#anStr\" class=\"summary-sig-name\">anStr</a>(<span class=\"summary-sig-arg\">name</span>,\n        <span class=\"summary-sig-arg\">OKd</span>=<span class=\"summary-sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">._-</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"summary-sig-arg\">sub</span>=<span class=\"summary-sig-default\">'_'</span>)</span><br />\n      DEPRECATED, use function <a \n      href=\"pygeodesy.streprs-module.html#anstr\" \n      class=\"link\">pygeodesy.anstr</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.deprecated-module.html#areaof\" class=\"summary-sig-name\">areaof</a>(<span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">adjust</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">radius</span>=<span class=\"summary-sig-default\">6371008.771415</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">True</span>)</span><br />\n      DEPRECATED, use function <a \n      href=\"pygeodesy.points-module.html#areaOf\" \n      class=\"link\">pygeodesy.areaOf</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.deprecated-module.html#atand\" class=\"summary-sig-name\">atand</a>(<span class=\"summary-sig-arg\">x</span>)</span><br />\n      DEPRECATED on 2023.09.28, use function <a \n      href=\"pygeodesy.utily-module.html#atan1d\" \n      class=\"link\">pygeodesy.atan1d</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.deprecated-module.html#bounds\" class=\"summary-sig-name\">bounds</a>(<span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">LatLon</span>=<span class=\"summary-sig-default\">None</span>)</span><br />\n      DEPRECATED, use function <a \n      href=\"pygeodesy.points-module.html#boundsOf\" \n      class=\"link\">pygeodesy.boundsOf</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.deprecated-module.html#clipCS3\" class=\"summary-sig-name\">clipCS3</a>(<span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">lowerleft</span>,\n        <span class=\"summary-sig-arg\">upperright</span>,\n        <span class=\"summary-sig-arg\">closed</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">inull</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      DEPRECATED, use function <a \n      href=\"pygeodesy.clipy-module.html#clipCS4\" \n      class=\"link\">pygeodesy.clipCS4</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.deprecated-module.html#clipDMS\" class=\"summary-sig-name\">clipDMS</a>(<span class=\"summary-sig-arg\">deg</span>,\n        <span class=\"summary-sig-arg\">limit</span>)</span><br />\n      DEPRECATED, use function <a \n      href=\"pygeodesy.dms-module.html#clipDegrees\" \n      class=\"link\">pygeodesy.clipDegrees</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.deprecated-module.html#clipStr\" class=\"summary-sig-name\">clipStr</a>(<span class=\"summary-sig-arg\">bstr</span>,\n        <span class=\"summary-sig-arg\">limit</span>=<span class=\"summary-sig-default\">50</span>,\n        <span class=\"summary-sig-arg\">white</span>=<span class=\"summary-sig-default\">''</span>)</span><br />\n      DEPRECATED, use function <a href=\"pygeodesy.basics-module.html#clips\"\n      class=\"link\">pygeodesy.clips</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.deprecated-module.html#collins\" class=\"summary-sig-name\">collins</a>(<span class=\"summary-sig-arg\">pointA</span>,\n        <span class=\"summary-sig-arg\">pointB</span>,\n        <span class=\"summary-sig-arg\">pointC</span>,\n        <span class=\"summary-sig-arg\">alpha</span>,\n        <span class=\"summary-sig-arg\">beta</span>,\n        <span class=\"summary-sig-arg\">**useZ_Clas_and_kwds</span>)</span><br />\n      DEPRECATED, use function <a \n      href=\"pygeodesy.resections-module.html#collins5\" \n      class=\"link\">pygeodesy.collins5</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.deprecated-module.html#copysign\" class=\"summary-sig-name\">copysign</a>(<span class=\"summary-sig-arg\">x</span>,\n        <span class=\"summary-sig-arg\">y</span>)</span><br />\n      DEPRECATED, use function <a \n      href=\"pygeodesy.basics-module.html#copysign0\" \n      class=\"link\">pygeodesy.copysign0</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.deprecated-module.html#cosineAndoyerLambert\" class=\"summary-sig-name\">cosineAndoyerLambert</a>(<span class=\"summary-sig-arg\">lat1</span>,\n        <span class=\"summary-sig-arg\">lon1</span>,\n        <span class=\"summary-sig-arg\">lat2</span>,\n        <span class=\"summary-sig-arg\">lon2</span>,\n        <span class=\"summary-sig-arg\">**datum_wrap</span>)</span><br />\n      DEPRECATED on 2024.12.31, use function <a \n      href=\"pygeodesy.formy-module.html#cosineLaw\" \n      class=\"link\">pygeodesy.cosineLaw</a> with <code><b>corr</b>=1</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.deprecated-module.html#cosineAndoyerLambert_\" class=\"summary-sig-name\">cosineAndoyerLambert_</a>(<span class=\"summary-sig-arg\">phi2</span>,\n        <span class=\"summary-sig-arg\">phi1</span>,\n        <span class=\"summary-sig-arg\">lam21</span>,\n        <span class=\"summary-sig-arg\">**datum</span>)</span><br />\n      DEPRECATED on 2024.12.31, use function <a \n      href=\"pygeodesy.formy-module.html#cosineLaw_\" \n      class=\"link\">pygeodesy.cosineLaw_</a> with \n      <code><b>corr</b>=1</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.deprecated-module.html#cosineForsytheAndoyerLambert\" class=\"summary-sig-name\">cosineForsytheAndoyerLambert</a>(<span class=\"summary-sig-arg\">lat1</span>,\n        <span class=\"summary-sig-arg\">lon1</span>,\n        <span class=\"summary-sig-arg\">lat2</span>,\n        <span class=\"summary-sig-arg\">lon2</span>,\n        <span class=\"summary-sig-arg\">**datum_wrap</span>)</span><br />\n      DEPRECATED on 2024.12.31, use function <a \n      href=\"pygeodesy.formy-module.html#cosineLaw\" \n      class=\"link\">pygeodesy.cosineLaw</a> with <code><b>corr</b>=2</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.deprecated-module.html#cosineForsytheAndoyerLambert_\" class=\"summary-sig-name\">cosineForsytheAndoyerLambert_</a>(<span class=\"summary-sig-arg\">phi2</span>,\n        <span class=\"summary-sig-arg\">phi1</span>,\n        <span class=\"summary-sig-arg\">lam21</span>,\n        <span class=\"summary-sig-arg\">**datum</span>)</span><br />\n      DEPRECATED on 2024.12.31, use function <a \n      href=\"pygeodesy.formy-module.html#cosineLaw_\" \n      class=\"link\">pygeodesy.cosineLaw_</a> with \n      <code><b>corr</b>=2</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.deprecated-module.html#decodeEPSG2\" class=\"summary-sig-name\">decodeEPSG2</a>(<span class=\"summary-sig-arg\">arg</span>)</span><br />\n      DEPRECATED, use function <a href=\"pygeodesy.epsg-module.html#decode2\"\n      class=\"link\">epsg.decode2</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.deprecated-module.html#elliperim\" class=\"summary-sig-name\">elliperim</a>(<span class=\"summary-sig-arg\">a</span>,\n        <span class=\"summary-sig-arg\">b</span>,\n        <span class=\"summary-sig-arg\">*deg2_1</span>)</span><br />\n      DEPRECATED on 2026.02.12, use method <a \n      href=\"pygeodesy.ellipses.Ellipse-class.html#arc\" \n      class=\"link\">pygeodesy.Ellipse.arc</a> or property <a \n      href=\"pygeodesy.ellipses.Ellipse-class.html#perimeter2k_\" \n      class=\"link\">pygeodesy.Ellipse.perimeter2k_</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.deprecated-module.html#elliperim_\" class=\"summary-sig-name\">elliperim_</a>(<span class=\"summary-sig-arg\">a</span>,\n        <span class=\"summary-sig-arg\">b</span>,\n        <span class=\"summary-sig-arg\">*rad2_1</span>)</span><br />\n      DEPRECATED on 2026.02.12, use method <a \n      href=\"pygeodesy.ellipses.Ellipse-class.html#arc_\" \n      class=\"link\">pygeodesy.Ellipse.arc_</a> or property <a \n      href=\"pygeodesy.ellipses.Ellipse-class.html#perimeter2k_\" \n      class=\"link\">pygeodesy.Ellipse.perimeter2k_</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.deprecated-module.html#enStr2\" class=\"summary-sig-name\">enStr2</a>(<span class=\"summary-sig-arg\">easting</span>,\n        <span class=\"summary-sig-arg\">northing</span>,\n        <span class=\"summary-sig-arg\">prec</span>,\n        <span class=\"summary-sig-arg\">*extras</span>)</span><br />\n      DEPRECATED, use function <a \n      href=\"pygeodesy.streprs-module.html#enstr2\" \n      class=\"link\">pygeodesy.enstr2</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.deprecated-module.html#encodeEPSG\" class=\"summary-sig-name\">encodeEPSG</a>(<span class=\"summary-sig-arg\">zone</span>,\n        <span class=\"summary-sig-arg\">hemipole</span>=<span class=\"summary-sig-default\">''</span>,\n        <span class=\"summary-sig-arg\">band</span>=<span class=\"summary-sig-default\">''</span>)</span><br />\n      DEPRECATED, use function <a href=\"pygeodesy.epsg-module.html#encode\" \n      class=\"link\">epsg.encode</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.deprecated-module.html#equirectangular3\" class=\"summary-sig-name\">equirectangular3</a>(<span class=\"summary-sig-arg\">lat1</span>,\n        <span class=\"summary-sig-arg\">lon1</span>,\n        <span class=\"summary-sig-arg\">lat2</span>,\n        <span class=\"summary-sig-arg\">lon2</span>,\n        <span class=\"summary-sig-arg\">**options</span>)</span><br />\n      DEPRECATED, use function <a \n      href=\"pygeodesy.geohash-module.html#equirectangular4\" \n      class=\"link\">pygeodesy.equirectangular4</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.deprecated-module.html#equirectangular_\" class=\"summary-sig-name\">equirectangular_</a>(<span class=\"summary-sig-arg\">lat1</span>,\n        <span class=\"summary-sig-arg\">lon1</span>,\n        <span class=\"summary-sig-arg\">lat2</span>,\n        <span class=\"summary-sig-arg\">lon2</span>,\n        <span class=\"summary-sig-arg\">**options</span>)</span><br />\n      DEPRECATED on 2024.05.25, use function <a \n      href=\"pygeodesy.geohash-module.html#equirectangular4\" \n      class=\"link\">pygeodesy.equirectangular4</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.deprecated-module.html#excessAbc\" class=\"summary-sig-name\">excessAbc</a>(<span class=\"summary-sig-arg\">A</span>,\n        <span class=\"summary-sig-arg\">b</span>,\n        <span class=\"summary-sig-arg\">c</span>)</span><br />\n      DEPRECATED on 2023.04.04, use function <a \n      href=\"pygeodesy.formy-module.html#excessAbc_\" \n      class=\"link\">pygeodesy.excessAbc_</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.deprecated-module.html#excessGirard\" class=\"summary-sig-name\">excessGirard</a>(<span class=\"summary-sig-arg\">A</span>,\n        <span class=\"summary-sig-arg\">B</span>,\n        <span class=\"summary-sig-arg\">C</span>)</span><br />\n      DEPRECATED on 2023.04.04, use function <a \n      href=\"pygeodesy.formy-module.html#excessGirard_\" \n      class=\"link\">pygeodesy.excessGirard_</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.deprecated-module.html#excessLHuilier\" class=\"summary-sig-name\">excessLHuilier</a>(<span class=\"summary-sig-arg\">a</span>,\n        <span class=\"summary-sig-arg\">b</span>,\n        <span class=\"summary-sig-arg\">c</span>)</span><br />\n      DEPRECATED on 2023.04.04, use function <a \n      href=\"pygeodesy.formy-module.html#excessLHuilier_\" \n      class=\"link\">pygeodesy.excessLHuilier_</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.deprecated-module.html#fStr\" class=\"summary-sig-name\">fStr</a>(<span class=\"summary-sig-arg\">floats</span>,\n        <span class=\"summary-sig-arg\">prec</span>=<span class=\"summary-sig-default\">6</span>,\n        <span class=\"summary-sig-arg\">fmt</span>=<span class=\"summary-sig-default\">'f'</span>,\n        <span class=\"summary-sig-arg\">ints</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">sep</span>=<span class=\"summary-sig-default\">', '</span>)</span><br />\n      DEPRECATED, use function <a href=\"pygeodesy.streprs-module.html#fstr\"\n      class=\"link\">fstr</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.deprecated-module.html#fStrzs\" class=\"summary-sig-name\">fStrzs</a>(<span class=\"summary-sig-arg\">floatstr</span>)</span><br />\n      DEPRECATED, use function <a \n      href=\"pygeodesy.streprs-module.html#fstrzs\" \n      class=\"link\">pygeodesy.fstrzs</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.deprecated-module.html#false2f\" class=\"summary-sig-name\">false2f</a>(<span class=\"summary-sig-arg\">value</span>,\n        <span class=\"summary-sig-arg\">name</span>=<span class=\"summary-sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">value</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"summary-sig-arg\">false</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">Error</span>=<span class=\"summary-sig-default\">&lt;type 'exceptions.ValueError'&gt;</span>)</span><br />\n      DEPRECATED, use class <a href=\"pygeodesy.units.Easting-class.html\" \n      class=\"link\">Easting</a> or <a \n      href=\"pygeodesy.units.Northing-class.html\" class=\"link\">Northing</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.deprecated-module.html#falsed2f\" class=\"summary-sig-name\">falsed2f</a>(<span class=\"summary-sig-arg\">falsed</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">Error</span>=<span class=\"summary-sig-default\">&lt;type 'exceptions.ValueError'&gt;</span>,\n        <span class=\"summary-sig-arg\">**name_value</span>)</span><br />\n      DEPRECATED, use class <a href=\"pygeodesy.units.Easting-class.html\" \n      class=\"link\">Easting</a> or <a \n      href=\"pygeodesy.units.Northing-class.html\" class=\"link\">Northing</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.deprecated-module.html#float0\" class=\"summary-sig-name\">float0</a>(<span class=\"summary-sig-arg\">*xs</span>)</span><br />\n      DEPRECATED on 2023.04.21, use function <a \n      href=\"pygeodesy.constants-module.html#float0_\" \n      class=\"link\">pygeodesy.float0_</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.deprecated-module.html#hypot3\" class=\"summary-sig-name\">hypot3</a>(<span class=\"summary-sig-arg\">x</span>,\n        <span class=\"summary-sig-arg\">y</span>,\n        <span class=\"summary-sig-arg\">z</span>)</span><br />\n      DEPRECATED, use function <a href=\"pygeodesy.fmath-module.html#hypot_\"\n      class=\"link\">pygeodesy.hypot_</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.deprecated-module.html#inStr\" class=\"summary-sig-name\">inStr</a>(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">*args</span>,\n        <span class=\"summary-sig-arg\">**kwds</span>)</span><br />\n      DEPRECATED, use function <a \n      href=\"pygeodesy.streprs-module.html#instr\" \n      class=\"link\">pygeodesy.instr</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.deprecated-module.html#isenclosedby\" class=\"summary-sig-name\">isenclosedby</a>(<span class=\"summary-sig-arg\">point</span>,\n        <span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      DEPRECATED, use function <a \n      href=\"pygeodesy.points-module.html#isenclosedBy\" \n      class=\"link\">pygeodesy.isenclosedBy</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.deprecated-module.html#istuplist\" class=\"summary-sig-name\">istuplist</a>(<span class=\"summary-sig-arg\">obj</span>,\n        <span class=\"summary-sig-arg\">minum</span>=<span class=\"summary-sig-default\">0</span>)</span><br />\n      DEPRECATED on 2023.03.31, use function <a \n      href=\"pygeodesy.basics-module.html#islistuple\" \n      class=\"link\">pygeodesy.islistuple</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.deprecated-module.html#joined\" class=\"summary-sig-name\">joined</a>(<span class=\"summary-sig-arg\">*words</span>,\n        <span class=\"summary-sig-arg\">**sep</span>)</span><br />\n      DEPRECATED, use <code>NN(...)</code>, <code>NN.join_</code> or \n      <code><b>sep</b>.join</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.deprecated-module.html#joined_\" class=\"summary-sig-name\">joined_</a>(<span class=\"summary-sig-arg\">*words</span>,\n        <span class=\"summary-sig-arg\">**sep</span>)</span><br />\n      DEPRECATED, use <code>_SPACE_(...)</code>, <code>_SPACE_.join_</code>\n      or <code><b>sep</b>.join</code>, sep=&quot; &quot;.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.deprecated-module.html#nearestOn3\" class=\"summary-sig-name\">nearestOn3</a>(<span class=\"summary-sig-arg\">point</span>,\n        <span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">closed</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">**options</span>)</span><br />\n      DEPRECATED, use function <a \n      href=\"pygeodesy.points-module.html#nearestOn5\" \n      class=\"link\">pygeodesy.nearestOn5</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.deprecated-module.html#nearestOn4\" class=\"summary-sig-name\">nearestOn4</a>(<span class=\"summary-sig-arg\">point</span>,\n        <span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">closed</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">**options</span>)</span><br />\n      DEPRECATED, use function <a \n      href=\"pygeodesy.points-module.html#nearestOn5\" \n      class=\"link\">pygeodesy.nearestOn5</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.deprecated-module.html#parseUTM\" class=\"summary-sig-name\">parseUTM</a>(<span class=\"summary-sig-arg\">strUTM</span>,\n        <span class=\"summary-sig-arg\">datum</span>=<span class=\"summary-sig-default\">_UTM</span>,\n        <span class=\"summary-sig-arg\">Utm</span>=<span class=\"summary-sig-default\">_UTM</span>,\n        <span class=\"summary-sig-arg\">name</span>=<span class=\"summary-sig-default\">''</span>)</span><br />\n      DEPRECATED, use function <a \n      href=\"pygeodesy.utm-module.html#parseUTM5\" \n      class=\"link\">parseUTM5</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.deprecated-module.html#perimeterof\" class=\"summary-sig-name\">perimeterof</a>(<span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">closed</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">adjust</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">radius</span>=<span class=\"summary-sig-default\">6371008.771415</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">True</span>)</span><br />\n      DEPRECATED, use function <a \n      href=\"pygeodesy.points-module.html#perimeterOf\" \n      class=\"link\">pygeodesy.perimeterOf</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.deprecated-module.html#points2\" class=\"summary-sig-name\">points2</a>(<span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">closed</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">base</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">Error</span>=<span class=\"summary-sig-default\">&lt;class 'pygeodesy.errors.PointsError'&gt;</span>)</span><br />\n      Check a path or polygon represented by points.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.deprecated-module.html#polygon\" class=\"summary-sig-name\">polygon</a>(<span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">closed</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">base</span>=<span class=\"summary-sig-default\">None</span>)</span><br />\n      DEPRECATED, use function <a \n      href=\"pygeodesy.iters-module.html#points2\" \n      class=\"link\">pygeodesy.points2</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.deprecated-module.html#scalar\" class=\"summary-sig-name\">scalar</a>(<span class=\"summary-sig-arg\">value</span>,\n        <span class=\"summary-sig-arg\">low</span>=<span class=\"summary-sig-default\">2.220446049250313e-16</span>,\n        <span class=\"summary-sig-arg\">high</span>=<span class=\"summary-sig-default\">1.0</span>,\n        <span class=\"summary-sig-arg\">name</span>=<span class=\"summary-sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">scalar</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"summary-sig-arg\">Error</span>=<span class=\"summary-sig-default\">&lt;type 'exceptions.ValueError'&gt;</span>)</span><br />\n      DEPRECATED, use class <a href=\"pygeodesy.units.Number_-class.html\" \n      class=\"link\">Number_</a> or <a \n      href=\"pygeodesy.units.Scalar_-class.html\" class=\"link\">Scalar_</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.deprecated-module.html#simplify2\" class=\"summary-sig-name\">simplify2</a>(<span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">pipe</span>=<span class=\"summary-sig-default\">0.001</span>,\n        <span class=\"summary-sig-arg\">**radius_shortest_indices_options</span>)</span><br />\n      DEPRECATED, use function <a \n      href=\"pygeodesy.simplify-module.html#simplifyRW\" \n      class=\"link\">pygeodesy.simplifyRW</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.deprecated-module.html#simplifyRDPm\" class=\"summary-sig-name\">simplifyRDPm</a>(<span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">distance</span>=<span class=\"summary-sig-default\">0.001</span>,\n        <span class=\"summary-sig-arg\">**radius_shortest_indices_options</span>)</span><br />\n      DEPRECATED on 2024.11.28, use function <a \n      href=\"pygeodesy.simplify-module.html#simplifyRDP\" \n      class=\"link\">pygeodesy.simplifyRDP</a><code>(points, modified=True, \n      ...)</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.deprecated-module.html#simplifyVWm\" class=\"summary-sig-name\">simplifyVWm</a>(<span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">area</span>=<span class=\"summary-sig-default\">0.001</span>,\n        <span class=\"summary-sig-arg\">**radius_attr_indices_options</span>)</span><br />\n      DEPRECATED on 2024.11.28, use function <a \n      href=\"pygeodesy.simplify-module.html#simplifyVW\" \n      class=\"link\">pygeodesy.simplifyVW</a><code>(points, modified=True, \n      ...)</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.deprecated-module.html#sumOf\" class=\"summary-sig-name\">sumOf</a>(<span class=\"summary-sig-arg\">nvectors</span>,\n        <span class=\"summary-sig-arg\">Vector</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">h</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**Vector_kwds</span>)</span><br />\n      Return the <i>vectorial</i> sum of two or more n-vectors.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.deprecated-module.html#tienstra\" class=\"summary-sig-name\">tienstra</a>(<span class=\"summary-sig-arg\">pointA</span>,\n        <span class=\"summary-sig-arg\">pointB</span>,\n        <span class=\"summary-sig-arg\">pointC</span>,\n        <span class=\"summary-sig-arg\">alpha</span>,\n        <span class=\"summary-sig-arg\">**beta_gamma_useZ_Clas_and_kwds</span>)</span><br />\n      DEPRECATED, use function <a \n      href=\"pygeodesy.resections-module.html#tienstra7\" \n      class=\"link\">pygeodesy.tienstra7</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.deprecated-module.html#toUtm\" class=\"summary-sig-name\">toUtm</a>(<span class=\"summary-sig-arg\">latlon</span>,\n        <span class=\"summary-sig-arg\">lon</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">datum</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">Utm</span>=<span class=\"summary-sig-default\">_UTM</span>,\n        <span class=\"summary-sig-arg\">cmoff</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">name</span>=<span class=\"summary-sig-default\">''</span>)</span><br />\n      DEPRECATED, use function <a href=\"pygeodesy.utm-module.html#toUtm8\" \n      class=\"link\">pygeodesy.toUtm8</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.deprecated-module.html#triAngle4\" class=\"summary-sig-name\">triAngle4</a>(<span class=\"summary-sig-arg\">a</span>,\n        <span class=\"summary-sig-arg\">b</span>,\n        <span class=\"summary-sig-arg\">c</span>)</span><br />\n      DEPRECATED on 2023.09.14, use function <a \n      href=\"pygeodesy.resections-module.html#triAngle5\" \n      class=\"link\">pygeodesy.triAngle5</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.deprecated-module.html#unStr\" class=\"summary-sig-name\">unStr</a>(<span class=\"summary-sig-arg\">name</span>,\n        <span class=\"summary-sig-arg\">*args</span>,\n        <span class=\"summary-sig-arg\">**kwds</span>)</span><br />\n      DEPRECATED, use function <a \n      href=\"pygeodesy.streprs-module.html#unstr\" \n      class=\"link\">pygeodesy.unstr</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.deprecated-module.html#unsign0\" class=\"summary-sig-name\">unsign0</a>(<span class=\"summary-sig-arg\">x</span>)</span><br />\n      DEPRECATED, use function <a \n      href=\"pygeodesy.basics-module.html#unsigned0\" \n      class=\"link\">pygeodesy.unsigned0</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.deprecated-module.html#utmZoneBand2\" class=\"summary-sig-name\">utmZoneBand2</a>(<span class=\"summary-sig-arg\">lat</span>,\n        <span class=\"summary-sig-arg\">lon</span>)</span><br />\n      DEPRECATED, use function <a \n      href=\"pygeodesy.utm-module.html#utmZoneBand5\" \n      class=\"link\">pygeodesy.utmZoneBand5</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== VARIABLES ==================== -->\n<a name=\"section-Variables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Variables</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"__getattr__\"></a><span class=\"summary-name\">__getattr__</span> = <code title=\"_lazy_import_as(__name__)\">_lazy_import_as(__name__)</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.deprecated-module.html#Datums\" class=\"summary-name\">Datums</a> = <code title=\"Datums.Sphere: Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, trans\\\nform=Transforms.WGS84),\nDatums.NAD83: Datum(name='NAD83', ellipsoid=Ellipsoids.GRS80, transfor\\\nm=Transforms.NAD83),\nDatums.OSGB36: Datum(name='OSGB36', ellipsoid=Ellipsoids.Airy1830, tra\\\nnsform=Transforms.OSGB36),\nDatums.WGS84: Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transfor\\\nm=Transforms.WGS84),\n...\">Datums.Sphere: Datum(name='Sphere', ellipsoid=Ellipso<code class=\"variable-ellipsis\">...</code></code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"EPS1_2\"></a><span class=\"summary-name\">EPS1_2</span> = <code title=\"0.9999999999999999\">0.9999999999999999</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.deprecated-module.html#Ellipsoids\" class=\"summary-name\">Ellipsoids</a> = <code title=\"Ellipsoids.Sphere: Ellipsoid(name='Sphere', a=6371008.771415, f=0, f_=\\\n0, b=6371008.771415),\nEllipsoids.GRS80: Ellipsoid(name='GRS80', a=6378137, f=0.00335281, f_=\\\n298.2572221, b=6356752.31414035),\nEllipsoids.WGS84: Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=\\\n298.25722356, b=6356752.31424518),\nEllipsoids.Airy1830: Ellipsoid(name='Airy1830', a=6377563.396, f=0.003\\\n34085, f_=299.3249646, b=6356256.90923729)\">Ellipsoids.Sphere: Ellipsoid(name='Sphere', a=637<code class=\"variable-ellipsis\">...</code></code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"MANTIS\"></a><span class=\"summary-name\">MANTIS</span> = <code title=\"53\">53</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"NorthPole\"></a><span class=\"summary-name\">NorthPole</span> = <code title=\"_N_Vector(0, 0, 1)\">_N_Vector(0, 0, 1)</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"OK\"></a><span class=\"summary-name\">OK</span> = <code title=\"'OK'\">'OK'</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"R_FM\"></a><span class=\"summary-name\">R_FM</span> = <code title=\"6371000.0\">6371000.0</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"R_KM\"></a><span class=\"summary-name\">R_KM</span> = <code title=\"6371.0087714149995\">6371.0087714149995</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"R_M\"></a><span class=\"summary-name\">R_M</span> = <code title=\"6371008.771415\">6371008.771415</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"R_MA\"></a><span class=\"summary-name\">R_MA</span> = <code title=\"6378137.0\">6378137.0</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"R_MB\"></a><span class=\"summary-name\">R_MB</span> = <code title=\"6356752.3\">6356752.3</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"R_NM\"></a><span class=\"summary-name\">R_NM</span> = <code title=\"3440.06953100162\">3440.06953100162</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"R_SM\"></a><span class=\"summary-name\">R_SM</span> = <code title=\"3958.7613160486508\">3958.7613160486508</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"R_VM\"></a><span class=\"summary-name\">R_VM</span> = <code title=\"6366707.0194937\">6366707.0194937</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"SouthPole\"></a><span class=\"summary-name\">SouthPole</span> = <code title=\"_N_Vector(0, 0, -1)\">_N_Vector(0, 0, -1)</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.deprecated-module.html#Transforms\" class=\"summary-name\">Transforms</a> = <code title=\"Transforms.OSGB36: Transform(name='OSGB36', tx=-446.45, ty=125.16, tz=\\\n-542.06, s1=1.0, rx=-7.2819e-07, ry=-1.1975e-06, rz=-4.0826e-06, s=20.\\\n489, sx=-0.1502, sy=-0.247, sz=-0.8421),\nTransforms.NAD83: Transform(name='NAD83', tx=1.004, ty=-1.91, tz=-0.51\\\n5, s1=1.0, rx=1.2945e-07, ry=1.6484e-09, rz=5.333e-08, s=-0.0015, sx=0\\\n.0267, sy=0.00034, sz=0.011),\nTransforms.WGS84: Transform(name='WGS84', tx=0.0, ty=0.0, tz=0.0, s1=1\\\n.0, rx=0.0, ry=0.0, rz=0.0, s=0.0, sx=0.0, sy=0.0, sz=0.0),\n...\">Transforms.OSGB36: Transform(name='OSGB36', tx=-4<code class=\"variable-ellipsis\">...</code></code>\n    </td>\n  </tr>\n</table>\n<!-- ==================== FUNCTION DETAILS ==================== -->\n<a name=\"section-FunctionDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Function Details</span></td>\n</tr>\n</table>\n<a name=\"Fsum2product\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">Fsum2product</span>&nbsp;(<span class=\"sig-arg\">*xs</span>,\n        <span class=\"sig-arg\">**kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED on 2024.09.19, use <a \n  href=\"pygeodesy.fsums.Fsum-class.html\" \n  class=\"link\">Fsum</a><code>(*<b>xs</b>, <b>f2product</b>=True, \n  ...)</code>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"anStr\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">anStr</span>&nbsp;(<span class=\"sig-arg\">name</span>,\n        <span class=\"sig-arg\">OKd</span>=<span class=\"sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">._-</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"sig-arg\">sub</span>=<span class=\"sig-default\">'_'</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use function <a href=\"pygeodesy.streprs-module.html#anstr\"\n  class=\"link\">pygeodesy.anstr</a>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"areaof\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">areaof</span>&nbsp;(<span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">adjust</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">radius</span>=<span class=\"sig-default\">6371008.771415</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">True</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use function <a href=\"pygeodesy.points-module.html#areaOf\"\n  class=\"link\">pygeodesy.areaOf</a>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"atand\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">atand</span>&nbsp;(<span class=\"sig-arg\">x</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED on 2023.09.28, use function <a \n  href=\"pygeodesy.utily-module.html#atan1d\" \n  class=\"link\">pygeodesy.atan1d</a>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"bounds\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">bounds</span>&nbsp;(<span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">LatLon</span>=<span class=\"sig-default\">None</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use function <a \n  href=\"pygeodesy.points-module.html#boundsOf\" \n  class=\"link\">pygeodesy.boundsOf</a>.</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd>2-Tuple <code>(latlonSW, latlonNE)</code>, each a \n          <b><code>LatLon</code></b> or 4-Tuple <code>(latS, lonW, latN, \n          lonE)</code> if <code><b>LatLon</b> is None</code>.</dd>\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"clipCS3\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">clipCS3</span>&nbsp;(<span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">lowerleft</span>,\n        <span class=\"sig-arg\">upperright</span>,\n        <span class=\"sig-arg\">closed</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">inull</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use function <a href=\"pygeodesy.clipy-module.html#clipCS4\"\n  class=\"link\">pygeodesy.clipCS4</a>.</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd>Yield a <a \n          href=\"pygeodesy.deprecated.classes.ClipCS3Tuple-class.html\" \n          class=\"link\">ClipCS3Tuple</a><code>(start, end, index)</code> for\n          each edge of the <i>clipped</i> path.</dd>\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"clipDMS\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">clipDMS</span>&nbsp;(<span class=\"sig-arg\">deg</span>,\n        <span class=\"sig-arg\">limit</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use function <a \n  href=\"pygeodesy.dms-module.html#clipDegrees\" \n  class=\"link\">pygeodesy.clipDegrees</a>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"clipStr\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">clipStr</span>&nbsp;(<span class=\"sig-arg\">bstr</span>,\n        <span class=\"sig-arg\">limit</span>=<span class=\"sig-default\">50</span>,\n        <span class=\"sig-arg\">white</span>=<span class=\"sig-default\">''</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use function <a href=\"pygeodesy.basics-module.html#clips\" \n  class=\"link\">pygeodesy.clips</a>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"collins\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">collins</span>&nbsp;(<span class=\"sig-arg\">pointA</span>,\n        <span class=\"sig-arg\">pointB</span>,\n        <span class=\"sig-arg\">pointC</span>,\n        <span class=\"sig-arg\">alpha</span>,\n        <span class=\"sig-arg\">beta</span>,\n        <span class=\"sig-arg\">**useZ_Clas_and_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use function <a \n  href=\"pygeodesy.resections-module.html#collins5\" \n  class=\"link\">pygeodesy.collins5</a>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"copysign\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">copysign</span>&nbsp;(<span class=\"sig-arg\">x</span>,\n        <span class=\"sig-arg\">y</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use function <a \n  href=\"pygeodesy.basics-module.html#copysign0\" \n  class=\"link\">pygeodesy.copysign0</a>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"cosineAndoyerLambert\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">cosineAndoyerLambert</span>&nbsp;(<span class=\"sig-arg\">lat1</span>,\n        <span class=\"sig-arg\">lon1</span>,\n        <span class=\"sig-arg\">lat2</span>,\n        <span class=\"sig-arg\">lon2</span>,\n        <span class=\"sig-arg\">**datum_wrap</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED on 2024.12.31, use function <a \n  href=\"pygeodesy.formy-module.html#cosineLaw\" \n  class=\"link\">pygeodesy.cosineLaw</a> with <code><b>corr</b>=1</code>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"cosineAndoyerLambert_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">cosineAndoyerLambert_</span>&nbsp;(<span class=\"sig-arg\">phi2</span>,\n        <span class=\"sig-arg\">phi1</span>,\n        <span class=\"sig-arg\">lam21</span>,\n        <span class=\"sig-arg\">**datum</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED on 2024.12.31, use function <a \n  href=\"pygeodesy.formy-module.html#cosineLaw_\" \n  class=\"link\">pygeodesy.cosineLaw_</a> with \n  <code><b>corr</b>=1</code>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"cosineForsytheAndoyerLambert\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">cosineForsytheAndoyerLambert</span>&nbsp;(<span class=\"sig-arg\">lat1</span>,\n        <span class=\"sig-arg\">lon1</span>,\n        <span class=\"sig-arg\">lat2</span>,\n        <span class=\"sig-arg\">lon2</span>,\n        <span class=\"sig-arg\">**datum_wrap</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED on 2024.12.31, use function <a \n  href=\"pygeodesy.formy-module.html#cosineLaw\" \n  class=\"link\">pygeodesy.cosineLaw</a> with <code><b>corr</b>=2</code>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"cosineForsytheAndoyerLambert_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">cosineForsytheAndoyerLambert_</span>&nbsp;(<span class=\"sig-arg\">phi2</span>,\n        <span class=\"sig-arg\">phi1</span>,\n        <span class=\"sig-arg\">lam21</span>,\n        <span class=\"sig-arg\">**datum</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED on 2024.12.31, use function <a \n  href=\"pygeodesy.formy-module.html#cosineLaw_\" \n  class=\"link\">pygeodesy.cosineLaw_</a> with \n  <code><b>corr</b>=2</code>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"decodeEPSG2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">decodeEPSG2</span>&nbsp;(<span class=\"sig-arg\">arg</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use function <a href=\"pygeodesy.epsg-module.html#decode2\" \n  class=\"link\">epsg.decode2</a>.</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd>2-Tuple <code>(zone, hemipole)</code></dd>\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"elliperim\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">elliperim</span>&nbsp;(<span class=\"sig-arg\">a</span>,\n        <span class=\"sig-arg\">b</span>,\n        <span class=\"sig-arg\">*deg2_1</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED on 2026.02.12, use method <a \n  href=\"pygeodesy.ellipses.Ellipse-class.html#arc\" \n  class=\"link\">pygeodesy.Ellipse.arc</a> or property <a \n  href=\"pygeodesy.ellipses.Ellipse-class.html#perimeter2k_\" \n  class=\"link\">pygeodesy.Ellipse.perimeter2k_</a>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"elliperim_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">elliperim_</span>&nbsp;(<span class=\"sig-arg\">a</span>,\n        <span class=\"sig-arg\">b</span>,\n        <span class=\"sig-arg\">*rad2_1</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED on 2026.02.12, use method <a \n  href=\"pygeodesy.ellipses.Ellipse-class.html#arc_\" \n  class=\"link\">pygeodesy.Ellipse.arc_</a> or property <a \n  href=\"pygeodesy.ellipses.Ellipse-class.html#perimeter2k_\" \n  class=\"link\">pygeodesy.Ellipse.perimeter2k_</a>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"enStr2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">enStr2</span>&nbsp;(<span class=\"sig-arg\">easting</span>,\n        <span class=\"sig-arg\">northing</span>,\n        <span class=\"sig-arg\">prec</span>,\n        <span class=\"sig-arg\">*extras</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use function <a \n  href=\"pygeodesy.streprs-module.html#enstr2\" \n  class=\"link\">pygeodesy.enstr2</a>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"encodeEPSG\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">encodeEPSG</span>&nbsp;(<span class=\"sig-arg\">zone</span>,\n        <span class=\"sig-arg\">hemipole</span>=<span class=\"sig-default\">''</span>,\n        <span class=\"sig-arg\">band</span>=<span class=\"sig-default\">''</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use function <a href=\"pygeodesy.epsg-module.html#encode\" \n  class=\"link\">epsg.encode</a>.</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd><code>EPSG</code> code (<code>int</code>).</dd>\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"equirectangular3\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">equirectangular3</span>&nbsp;(<span class=\"sig-arg\">lat1</span>,\n        <span class=\"sig-arg\">lon1</span>,\n        <span class=\"sig-arg\">lat2</span>,\n        <span class=\"sig-arg\">lon2</span>,\n        <span class=\"sig-arg\">**options</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use function <a \n  href=\"pygeodesy.geohash-module.html#equirectangular4\" \n  class=\"link\">pygeodesy.equirectangular4</a>.</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd>3-Tuple <code>(distance2, delta_lat, delta_lon)</code>.</dd>\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"equirectangular_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">equirectangular_</span>&nbsp;(<span class=\"sig-arg\">lat1</span>,\n        <span class=\"sig-arg\">lon1</span>,\n        <span class=\"sig-arg\">lat2</span>,\n        <span class=\"sig-arg\">lon2</span>,\n        <span class=\"sig-arg\">**options</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED on 2024.05.25, use function <a \n  href=\"pygeodesy.geohash-module.html#equirectangular4\" \n  class=\"link\">pygeodesy.equirectangular4</a>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"excessAbc\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">excessAbc</span>&nbsp;(<span class=\"sig-arg\">A</span>,\n        <span class=\"sig-arg\">b</span>,\n        <span class=\"sig-arg\">c</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED on 2023.04.04, use function <a \n  href=\"pygeodesy.formy-module.html#excessAbc_\" \n  class=\"link\">pygeodesy.excessAbc_</a>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"excessGirard\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">excessGirard</span>&nbsp;(<span class=\"sig-arg\">A</span>,\n        <span class=\"sig-arg\">B</span>,\n        <span class=\"sig-arg\">C</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED on 2023.04.04, use function <a \n  href=\"pygeodesy.formy-module.html#excessGirard_\" \n  class=\"link\">pygeodesy.excessGirard_</a>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"excessLHuilier\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">excessLHuilier</span>&nbsp;(<span class=\"sig-arg\">a</span>,\n        <span class=\"sig-arg\">b</span>,\n        <span class=\"sig-arg\">c</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED on 2023.04.04, use function <a \n  href=\"pygeodesy.formy-module.html#excessLHuilier_\" \n  class=\"link\">pygeodesy.excessLHuilier_</a>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"fStr\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">fStr</span>&nbsp;(<span class=\"sig-arg\">floats</span>,\n        <span class=\"sig-arg\">prec</span>=<span class=\"sig-default\">6</span>,\n        <span class=\"sig-arg\">fmt</span>=<span class=\"sig-default\">'f'</span>,\n        <span class=\"sig-arg\">ints</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">sep</span>=<span class=\"sig-default\">', '</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use function <a href=\"pygeodesy.streprs-module.html#fstr\" \n  class=\"link\">fstr</a>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"fStrzs\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">fStrzs</span>&nbsp;(<span class=\"sig-arg\">floatstr</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use function <a \n  href=\"pygeodesy.streprs-module.html#fstrzs\" \n  class=\"link\">pygeodesy.fstrzs</a>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"false2f\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">false2f</span>&nbsp;(<span class=\"sig-arg\">value</span>,\n        <span class=\"sig-arg\">name</span>=<span class=\"sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">value</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"sig-arg\">false</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">Error</span>=<span class=\"sig-default\">&lt;type 'exceptions.ValueError'&gt;</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use class <a href=\"pygeodesy.units.Easting-class.html\" \n  class=\"link\">Easting</a> or <a href=\"pygeodesy.units.Northing-class.html\"\n  class=\"link\">Northing</a>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"falsed2f\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">falsed2f</span>&nbsp;(<span class=\"sig-arg\">falsed</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">Error</span>=<span class=\"sig-default\">&lt;type 'exceptions.ValueError'&gt;</span>,\n        <span class=\"sig-arg\">**name_value</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use class <a href=\"pygeodesy.units.Easting-class.html\" \n  class=\"link\">Easting</a> or <a href=\"pygeodesy.units.Northing-class.html\"\n  class=\"link\">Northing</a>.</p>\n  <p>Convert a falsed east-/northing to non-negative \n  <code>float</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>falsed</code></strong> - Value includes false origin (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>Error</code></strong> - Optional, overriding error (<code>Exception</code>).</li>\n        <li><strong class=\"pname\"><code>name_value</code></strong> - One <code><b>name</b>=value</code> pair.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The value (<code>float</code>).</dd>\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>Error</strong></code> - Invalid or negative <code><b>name</b>=value</code>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"float0\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">float0</span>&nbsp;(<span class=\"sig-arg\">*xs</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED on 2023.04.21, use function <a \n  href=\"pygeodesy.constants-module.html#float0_\" \n  class=\"link\">pygeodesy.float0_</a>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"hypot3\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">hypot3</span>&nbsp;(<span class=\"sig-arg\">x</span>,\n        <span class=\"sig-arg\">y</span>,\n        <span class=\"sig-arg\">z</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use function <a href=\"pygeodesy.fmath-module.html#hypot_\" \n  class=\"link\">pygeodesy.hypot_</a>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"inStr\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">inStr</span>&nbsp;(<span class=\"sig-arg\">inst</span>,\n        <span class=\"sig-arg\">*args</span>,\n        <span class=\"sig-arg\">**kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use function <a href=\"pygeodesy.streprs-module.html#instr\"\n  class=\"link\">pygeodesy.instr</a>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"isenclosedby\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">isenclosedby</span>&nbsp;(<span class=\"sig-arg\">point</span>,\n        <span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use function <a \n  href=\"pygeodesy.points-module.html#isenclosedBy\" \n  class=\"link\">pygeodesy.isenclosedBy</a>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"istuplist\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">istuplist</span>&nbsp;(<span class=\"sig-arg\">obj</span>,\n        <span class=\"sig-arg\">minum</span>=<span class=\"sig-default\">0</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED on 2023.03.31, use function <a \n  href=\"pygeodesy.basics-module.html#islistuple\" \n  class=\"link\">pygeodesy.islistuple</a>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"joined\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">joined</span>&nbsp;(<span class=\"sig-arg\">*words</span>,\n        <span class=\"sig-arg\">**sep</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use <code>NN(...)</code>, <code>NN.join_</code> or \n  <code><b>sep</b>.join</code>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"joined_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">joined_</span>&nbsp;(<span class=\"sig-arg\">*words</span>,\n        <span class=\"sig-arg\">**sep</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use <code>_SPACE_(...)</code>, <code>_SPACE_.join_</code> \n  or <code><b>sep</b>.join</code>, sep=&quot; &quot;.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"nearestOn3\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">nearestOn3</span>&nbsp;(<span class=\"sig-arg\">point</span>,\n        <span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">closed</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">**options</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use function <a \n  href=\"pygeodesy.points-module.html#nearestOn5\" \n  class=\"link\">pygeodesy.nearestOn5</a>.</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd>3-Tuple <code>(lat, lon, distance)</code></dd>\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"nearestOn4\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">nearestOn4</span>&nbsp;(<span class=\"sig-arg\">point</span>,\n        <span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">closed</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">**options</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use function <a \n  href=\"pygeodesy.points-module.html#nearestOn5\" \n  class=\"link\">pygeodesy.nearestOn5</a>.</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd>4-Tuple <code>(lat, lon, distance, angle)</code></dd>\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"parseUTM\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">parseUTM</span>&nbsp;(<span class=\"sig-arg\">strUTM</span>,\n        <span class=\"sig-arg\">datum</span>=<span class=\"sig-default\">_UTM</span>,\n        <span class=\"sig-arg\">Utm</span>=<span class=\"sig-default\">_UTM</span>,\n        <span class=\"sig-arg\">name</span>=<span class=\"sig-default\">''</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use function <a href=\"pygeodesy.utm-module.html#parseUTM5\"\n  class=\"link\">parseUTM5</a>.</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd>The UTM coordinate (<b><a href=\"pygeodesy.utm.Utm-class.html\" \n          class=\"link\">Utm</a></b>) or 4-tuple <code>(zone, hemisphere, \n          easting, northing)</code> if <code><b>Utm</b> is None</code>.</dd>\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"perimeterof\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">perimeterof</span>&nbsp;(<span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">closed</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">adjust</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">radius</span>=<span class=\"sig-default\">6371008.771415</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">True</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use function <a \n  href=\"pygeodesy.points-module.html#perimeterOf\" \n  class=\"link\">pygeodesy.perimeterOf</a>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"points2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">points2</span>&nbsp;(<span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">closed</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">base</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">Error</span>=<span class=\"sig-default\">&lt;class 'pygeodesy.errors.PointsError'&gt;</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Check a path or polygon represented by points.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>points</code></strong> - The path or polygon points (<code>LatLon</code>[])</li>\n        <li><strong class=\"pname\"><code>closed</code></strong> - Optionally, consider the polygon closed, ignoring any duplicate \n          or closing final <b><code>points</code></b> (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>base</code></strong> - Optionally, check all <b><code>points</code></b> against this \n          base class, if <code>None</code> don't check.</li>\n        <li><strong class=\"pname\"><code>Error</code></strong> - Exception to raise (<code>ValueError</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.namedTuples.Points2Tuple-class.html\" \n          class=\"link\">Points2Tuple</a><code>(number, points)</code> with \n          the number of points and the points <code>list</code> or \n          <code>tuple</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.PointsError-class.html\">PointsError</a></strong></code> - Insufficient number of <b><code>points</code></b>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Some <b><code>points</code></b> are not <b><code>base</code></b> \n        compatible or composite <b><code>points</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"polygon\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">polygon</span>&nbsp;(<span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">closed</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">base</span>=<span class=\"sig-default\">None</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use function <a href=\"pygeodesy.iters-module.html#points2\"\n  class=\"link\">pygeodesy.points2</a>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"scalar\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">scalar</span>&nbsp;(<span class=\"sig-arg\">value</span>,\n        <span class=\"sig-arg\">low</span>=<span class=\"sig-default\">2.220446049250313e-16</span>,\n        <span class=\"sig-arg\">high</span>=<span class=\"sig-default\">1.0</span>,\n        <span class=\"sig-arg\">name</span>=<span class=\"sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">scalar</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"sig-arg\">Error</span>=<span class=\"sig-default\">&lt;type 'exceptions.ValueError'&gt;</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use class <a href=\"pygeodesy.units.Number_-class.html\" \n  class=\"link\">Number_</a> or <a href=\"pygeodesy.units.Scalar_-class.html\" \n  class=\"link\">Scalar_</a>.</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd>New value (<code>float</code> or <code>int</code> for \n          <code>int</code> <b><code>low</code></b>).</dd>\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>Error</strong></code> - Invalid <b><code>value</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"simplify2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">simplify2</span>&nbsp;(<span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">pipe</span>=<span class=\"sig-default\">0.001</span>,\n        <span class=\"sig-arg\">**radius_shortest_indices_options</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use function <a \n  href=\"pygeodesy.simplify-module.html#simplifyRW\" \n  class=\"link\">pygeodesy.simplifyRW</a>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"simplifyRDPm\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">simplifyRDPm</span>&nbsp;(<span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">distance</span>=<span class=\"sig-default\">0.001</span>,\n        <span class=\"sig-arg\">**radius_shortest_indices_options</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED on 2024.11.28, use function <a \n  href=\"pygeodesy.simplify-module.html#simplifyRDP\" \n  class=\"link\">pygeodesy.simplifyRDP</a><code>(points, modified=True, \n  ...)</code>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"simplifyVWm\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">simplifyVWm</span>&nbsp;(<span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">area</span>=<span class=\"sig-default\">0.001</span>,\n        <span class=\"sig-arg\">**radius_attr_indices_options</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED on 2024.11.28, use function <a \n  href=\"pygeodesy.simplify-module.html#simplifyVW\" \n  class=\"link\">pygeodesy.simplifyVW</a><code>(points, modified=True, \n  ...)</code>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"sumOf\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">sumOf</span>&nbsp;(<span class=\"sig-arg\">nvectors</span>,\n        <span class=\"sig-arg\">Vector</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">h</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**Vector_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the <i>vectorial</i> sum of two or more n-vectors.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>nvectors</code></strong> - Vectors to be added (<code>Nvector</code>[]).</li>\n        <li><strong class=\"pname\"><code>Vector</code></strong> - Optional class for the vectorial sum (<code>Nvector</code>) or \n          <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>h</code></strong> - Optional height, overriding the mean height (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>Vector_kwds</code></strong> - Optional, additional <b><code>Vector</code></b> keyword \n          arguments, ignored if <code><b>Vector</b> is None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Vectorial sum (<b><code>Vector</code></b>) or a <a \n          href=\"pygeodesy.namedTuples.Vector4Tuple-class.html\" \n          class=\"link\">Vector4Tuple</a><code>(x, y, z, h)</code> if \n          <code><b>Vector</b> is None</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.VectorError-class.html\">VectorError</a></strong></code> - No <b><code>nvectors</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"tienstra\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">tienstra</span>&nbsp;(<span class=\"sig-arg\">pointA</span>,\n        <span class=\"sig-arg\">pointB</span>,\n        <span class=\"sig-arg\">pointC</span>,\n        <span class=\"sig-arg\">alpha</span>,\n        <span class=\"sig-arg\">**beta_gamma_useZ_Clas_and_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use function <a \n  href=\"pygeodesy.resections-module.html#tienstra7\" \n  class=\"link\">pygeodesy.tienstra7</a>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toUtm\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toUtm</span>&nbsp;(<span class=\"sig-arg\">latlon</span>,\n        <span class=\"sig-arg\">lon</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">datum</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">Utm</span>=<span class=\"sig-default\">_UTM</span>,\n        <span class=\"sig-arg\">cmoff</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">name</span>=<span class=\"sig-default\">''</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use function <a href=\"pygeodesy.utm-module.html#toUtm8\" \n  class=\"link\">pygeodesy.toUtm8</a>.</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd>The UTM coordinate (<b><code>Utm</code></b>) or a 6-tuple \n          <code>(zone, easting, northing, band, convergence, scale)</code> \n          if <code><b>Utm</b> is None</code> or <code><b>cmoff</b> is \n          False</code>.</dd>\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"triAngle4\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">triAngle4</span>&nbsp;(<span class=\"sig-arg\">a</span>,\n        <span class=\"sig-arg\">b</span>,\n        <span class=\"sig-arg\">c</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED on 2023.09.14, use function <a \n  href=\"pygeodesy.resections-module.html#triAngle5\" \n  class=\"link\">pygeodesy.triAngle5</a>.</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd>A <i>DEPRECATED</i> <a \n          href=\"pygeodesy.deprecated.classes.TriAngle4Tuple-class.html\" \n          class=\"link\">TriAngle4Tuple</a><code>(radA, radB, radC, \n          rIn)</code>.</dd>\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"unStr\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">unStr</span>&nbsp;(<span class=\"sig-arg\">name</span>,\n        <span class=\"sig-arg\">*args</span>,\n        <span class=\"sig-arg\">**kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use function <a href=\"pygeodesy.streprs-module.html#unstr\"\n  class=\"link\">pygeodesy.unstr</a>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"unsign0\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">unsign0</span>&nbsp;(<span class=\"sig-arg\">x</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use function <a \n  href=\"pygeodesy.basics-module.html#unsigned0\" \n  class=\"link\">pygeodesy.unsigned0</a>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"utmZoneBand2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">utmZoneBand2</span>&nbsp;(<span class=\"sig-arg\">lat</span>,\n        <span class=\"sig-arg\">lon</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use function <a \n  href=\"pygeodesy.utm-module.html#utmZoneBand5\" \n  class=\"link\">pygeodesy.utmZoneBand5</a>.</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd>2-Tuple <code>(zone, band)</code>.</dd>\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== VARIABLES DETAILS ==================== -->\n<a name=\"section-VariablesDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Variables Details</span></td>\n</tr>\n</table>\n<a name=\"Datums\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">Datums</h3>\n  \n  <dl class=\"fields\">\n  </dl>\n  <dl class=\"fields\">\n    <dt>Value:</dt>\n      <dd><table><tr><td><pre class=\"variable\">\nDatums.Sphere: Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, trans<span class=\"variable-linewrap\"><img src=\"crarr.png\" alt=\"\\\" /></span>\nform=Transforms.WGS84),\nDatums.NAD83: Datum(name='NAD83', ellipsoid=Ellipsoids.GRS80, transfor<span class=\"variable-linewrap\"><img src=\"crarr.png\" alt=\"\\\" /></span>\nm=Transforms.NAD83),\nDatums.OSGB36: Datum(name='OSGB36', ellipsoid=Ellipsoids.Airy1830, tra<span class=\"variable-linewrap\"><img src=\"crarr.png\" alt=\"\\\" /></span>\nnsform=Transforms.OSGB36),\nDatums.WGS84: Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transfor<span class=\"variable-linewrap\"><img src=\"crarr.png\" alt=\"\\\" /></span>\nm=Transforms.WGS84),\n<code class=\"variable-ellipsis\">...</code>\n</pre></td></tr></table>\n</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"Ellipsoids\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">Ellipsoids</h3>\n  \n  <dl class=\"fields\">\n  </dl>\n  <dl class=\"fields\">\n    <dt>Value:</dt>\n      <dd><table><tr><td><pre class=\"variable\">\nEllipsoids.Sphere: Ellipsoid(name='Sphere', a=6371008.771415, f=0, f_=<span class=\"variable-linewrap\"><img src=\"crarr.png\" alt=\"\\\" /></span>\n0, b=6371008.771415),\nEllipsoids.GRS80: Ellipsoid(name='GRS80', a=6378137, f=0.00335281, f_=<span class=\"variable-linewrap\"><img src=\"crarr.png\" alt=\"\\\" /></span>\n298.2572221, b=6356752.31414035),\nEllipsoids.WGS84: Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=<span class=\"variable-linewrap\"><img src=\"crarr.png\" alt=\"\\\" /></span>\n298.25722356, b=6356752.31424518),\nEllipsoids.Airy1830: Ellipsoid(name='Airy1830', a=6377563.396, f=0.003<span class=\"variable-linewrap\"><img src=\"crarr.png\" alt=\"\\\" /></span>\n34085, f_=299.3249646, b=6356256.90923729)\n</pre></td></tr></table>\n</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"Transforms\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">Transforms</h3>\n  \n  <dl class=\"fields\">\n  </dl>\n  <dl class=\"fields\">\n    <dt>Value:</dt>\n      <dd><table><tr><td><pre class=\"variable\">\nTransforms.OSGB36: Transform(name='OSGB36', tx=-446.45, ty=125.16, tz=<span class=\"variable-linewrap\"><img src=\"crarr.png\" alt=\"\\\" /></span>\n-542.06, s1=1.0, rx=-7.2819e-07, ry=-1.1975e-06, rz=-4.0826e-06, s=20.<span class=\"variable-linewrap\"><img src=\"crarr.png\" alt=\"\\\" /></span>\n489, sx=-0.1502, sy=-0.247, sz=-0.8421),\nTransforms.NAD83: Transform(name='NAD83', tx=1.004, ty=-1.91, tz=-0.51<span class=\"variable-linewrap\"><img src=\"crarr.png\" alt=\"\\\" /></span>\n5, s1=1.0, rx=1.2945e-07, ry=1.6484e-09, rz=5.333e-08, s=-0.0015, sx=0<span class=\"variable-linewrap\"><img src=\"crarr.png\" alt=\"\\\" /></span>\n.0267, sy=0.00034, sz=0.011),\nTransforms.WGS84: Transform(name='WGS84', tx=0.0, ty=0.0, tz=0.0, s1=1<span class=\"variable-linewrap\"><img src=\"crarr.png\" alt=\"\\\" /></span>\n.0, rx=0.0, ry=0.0, rz=0.0, s=0.0, sx=0.0, sy=0.0, sz=0.0),\n<code class=\"variable-ellipsis\">...</code>\n</pre></td></tr></table>\n</dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.deprecated.bases-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.deprecated.bases</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.deprecated-module.html\">Package&nbsp;deprecated</a> ::\n        Module&nbsp;bases\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.deprecated.bases-module.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== MODULE DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Module bases</h1><p class=\"nomargin-top\"></p>\n<p>DEPRECATED on 2021.02.10, use (INTERNAL) module <a \n  href=\"pygeodesy.latlonBase-module.html\" \n  class=\"link\">pygeodesy.latlonBase</a> instead.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Version:</strong>\n        25.05.12\n      </p>\n</div><!-- ==================== CLASSES ==================== -->\n<a name=\"section-Classes\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Classes</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.deprecated.bases.LatLonHeightBase-class.html\" class=\"summary-name\">LatLonHeightBase</a><br />\n      DEPRECATED on 2021.02.10, use (INTERNAL) class <a \n        href=\"pygeodesy.latlonBase.LatLonBase-class.html\" \n        class=\"link\">pygeodesy.latlonBase.LatLonBase</a>.\n    </td>\n  </tr>\n</table>\n<!-- ==================== FUNCTIONS ==================== -->\n<a name=\"section-Functions\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Functions</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.deprecated.bases-module.html#points2\" class=\"summary-sig-name\">points2</a>(<span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">closed</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">base</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">Error</span>=<span class=\"summary-sig-default\">&lt;class 'pygeodesy.errors.PointsError'&gt;</span>)</span><br />\n      Check a path or polygon represented by points.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== VARIABLES ==================== -->\n<a name=\"section-Variables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Variables</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"__all__\"></a><span class=\"summary-name\">__all__</span> = <code title=\"_ALL_DEPRECATED.deprecated_bases\">_ALL_DEPRECATED.deprecated_bases</code>\n    </td>\n  </tr>\n</table>\n<!-- ==================== FUNCTION DETAILS ==================== -->\n<a name=\"section-FunctionDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Function Details</span></td>\n</tr>\n</table>\n<a name=\"points2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">points2</span>&nbsp;(<span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">closed</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">base</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">Error</span>=<span class=\"sig-default\">&lt;class 'pygeodesy.errors.PointsError'&gt;</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Check a path or polygon represented by points.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>points</code></strong> - The path or polygon points (<code>LatLon</code>[])</li>\n        <li><strong class=\"pname\"><code>closed</code></strong> - Optionally, consider the polygon closed, ignoring any duplicate \n          or closing final <b><code>points</code></b> (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>base</code></strong> - Optionally, check all <b><code>points</code></b> against this \n          base class, if <code>None</code> don't check.</li>\n        <li><strong class=\"pname\"><code>Error</code></strong> - Exception to raise (<code>ValueError</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.namedTuples.Points2Tuple-class.html\" \n          class=\"link\">Points2Tuple</a><code>(number, points)</code> with \n          the number of points and the points <code>list</code> or \n          <code>tuple</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.PointsError-class.html\">PointsError</a></strong></code> - Insufficient number of <b><code>points</code></b>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Some <b><code>points</code></b> are not <b><code>base</code></b> \n        compatible or composite <b><code>points</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.deprecated.bases.LatLonHeightBase-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.deprecated.bases.LatLonHeightBase</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.deprecated-module.html\">Package&nbsp;deprecated</a> ::\n        <a href=\"pygeodesy.deprecated.bases-module.html\">Module&nbsp;bases</a> ::\n        Class&nbsp;LatLonHeightBase\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.deprecated.bases.LatLonHeightBase-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class LatLonHeightBase</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n       object --+            \n                |            \n     <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+        \n                    |        \n     <a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+    \n                        |    \n       object --+       |    \n                |       |    \n     <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+   |    \n                    |   |    \n<a href=\"pygeodesy.ecefLocals._EcefLocal-class.html\">ecefLocals._EcefLocal</a> --+    \n                        |    \n    <a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">latlonBase.LatLonBase</a> --+\n                            |\n                           <strong class=\"uidshort\">LatLonHeightBase</strong>\n</pre>\n\n<hr />\n<p>DEPRECATED on 2021.02.10, use (INTERNAL) class <a \n  href=\"pygeodesy.latlonBase.LatLonBase-class.html\" \n  class=\"link\">pygeodesy.latlonBase.LatLonBase</a>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">latlonBase.LatLonBase</a></code></b>:\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#PointsIter\">PointsIter</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#__eq__\">__eq__</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#__init__\">__init__</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#__ne__\">__ne__</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#antipode\">antipode</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#bounds\">bounds</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#boundsOf\">boundsOf</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#chordTo\">chordTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#circin6\">circin6</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#circum3\">circum3</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#circum4_\">circum4_</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#compassAngle\">compassAngle</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#compassAngleTo\">compassAngleTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#cosineAndoyerLambertTo\">cosineAndoyerLambertTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#cosineForsytheAndoyerLambertTo\">cosineForsytheAndoyerLambertTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#cosineLawTo\">cosineLawTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#destinationXyz\">destinationXyz</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#equals\">equals</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#equals3\">equals3</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#equirectangularTo\">equirectangularTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#euclideanTo\">euclideanTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#flatLocalTo\">flatLocalTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#flatPolarTo\">flatPolarTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#hartzell\">hartzell</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#haversineTo\">haversineTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#height4\">height4</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#heightStr\">heightStr</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#hubenyTo\">hubenyTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#intersecant2\">intersecant2</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isantipode\">isantipode</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isantipodeTo\">isantipodeTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isequalTo\">isequalTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isequalTo3\">isequalTo3</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#latlon2\">latlon2</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#latlon2round\">latlon2round</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#latlon_\">latlon_</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#nearestOn6\">nearestOn6</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#nearestTo\">nearestTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#normal\">normal</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#philam2\">philam2</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#points\">points</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#points2\">points2</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#radii11\">radii11</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#rhumbAzimuthTo\">rhumbAzimuthTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#rhumbDestination\">rhumbDestination</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#rhumbDistanceTo\">rhumbDistanceTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#rhumbIntersecant2\">rhumbIntersecant2</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#rhumbLine\">rhumbLine</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#rhumbMidpointTo\">rhumbMidpointTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#thomasTo\">thomasTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#to2ab\">to2ab</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#to3llh\">to3llh</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#to3xyz\">to3xyz</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toCartesian\">toCartesian</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toDatum\">toDatum</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toEcef\">toEcef</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toNormal\">toNormal</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toNvector\">toNvector</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toVector\">toVector</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toVector3d\">toVector3d</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toWm\">toWm</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#vincentysTo\">vincentysTo</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#others\">others</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#toRepr\">toRepr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html\">ecefLocals._EcefLocal</a></code></b>:\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toAer\">toAer</a></code>,\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toEnu\">toEnu</a></code>,\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toLocal\">toLocal</a></code>,\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toLtp\">toLtp</a></code>,\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toNed\">toNed</a></code>,\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toXyz\">toXyz</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">latlonBase.LatLonBase</a></code></b>:\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#clipid\">clipid</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#datum\">datum</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#ellipsoidalLatLon\">ellipsoidalLatLon</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#height\">height</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isEllipsoidal\">isEllipsoidal</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isSpherical\">isSpherical</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isnormal\">isnormal</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#lam\">lam</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#lat\">lat</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#latlon\">latlon</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#latlonheight\">latlonheight</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#lon\">lon</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#phi\">phi</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#philam\">philam</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#philamheight\">philamheight</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#sphericalLatLon\">sphericalLatLon</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#xyz\">xyz</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#xyz3\">xyz3</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#xyzh\">xyzh</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html\">ecefLocals._EcefLocal</a></code></b>:\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#Ecef\">Ecef</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.deprecated.classes-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.deprecated.classes</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.deprecated-module.html\">Package&nbsp;deprecated</a> ::\n        Module&nbsp;classes\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.deprecated.classes-module.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== MODULE DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Module classes</h1><p class=\"nomargin-top\"></p>\n<p>DEPRECATED classes kept for backward compatibility.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Version:</strong>\n        25.11.11\n      </p>\n</div><!-- ==================== CLASSES ==================== -->\n<a name=\"section-Classes\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Classes</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.deprecated.classes._Deprecated_NamedTuple-class.html\" class=\"summary-name\">_Deprecated_NamedTuple</a><br />\n      DEPRECATED, <code>_NamedTuple</code> base.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.deprecated.classes.ClipCS3Tuple-class.html\" class=\"summary-name\">ClipCS3Tuple</a><br />\n      DEPRECATED, see <i>DEPRECATED</i> function <a \n        href=\"pygeodesy.deprecated.functions-module.html#clipCS3\" \n        class=\"link\">pygeodesy.deprecated.clipCS3</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.deprecated.classes.EasNorExact4Tuple-class.html\" class=\"summary-name\">EasNorExact4Tuple</a><br />\n      DEPRECATED, use class <a \n        href=\"pygeodesy.namedTuples.Forward4Tuple-class.html\" \n        class=\"link\">Forward4Tuple</a>, item <code>gamma</code> for \n        <code>convergence</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.deprecated.classes.JacobiConformal-class.html\" class=\"summary-name\">JacobiConformal</a><br />\n      DEPRECATED on 2025.10.25, use class <a \n        href=\"pygeodesy.triaxials.triaxial5.Conformal-class.html\" \n        class=\"link\">Conformal</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.deprecated.classes.JacobiConformalSpherical-class.html\" class=\"summary-name\">JacobiConformalSpherical</a><br />\n      DEPRECATED on 2025.10.25, use class <a \n        href=\"pygeodesy.triaxials.triaxial5.ConformalSphere-class.html\" \n        class=\"link\">ConformalSphere</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.deprecated.classes.Jacobi2Tuple-class.html\" class=\"summary-name\">Jacobi2Tuple</a><br />\n      DEPRECATED on 25.11.11, use class <a \n        href=\"pygeodesy.triaxials.triaxial5.Conformal2Tuple-class.html\" \n        class=\"link\">Conformal2Tuple</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.deprecated.classes.Lam_-class.html\" class=\"summary-name\">Lam_</a><br />\n      DEPRECATED on 2024.06.15, use class <a \n        href=\"pygeodesy.units.Lamd-class.html\" class=\"link\">Lamd</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.deprecated.classes.LatLonExact4Tuple-class.html\" class=\"summary-name\">LatLonExact4Tuple</a><br />\n      DEPRECATED, use class <a \n        href=\"pygeodesy.namedTuples.Reverse4Tuple-class.html\" \n        class=\"link\">Reverse4Tuple</a>, item <code>gamma</code> for \n        <code>convergence</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.deprecated.classes.NearestOn4Tuple-class.html\" class=\"summary-name\">NearestOn4Tuple</a><br />\n      DEPRECATED on 2023.10.10, see methods <a \n        href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#nearestOn4\" \n        class=\"link\">RhumbLine.nearestOn4</a> and <a \n        href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#nearestOn4\" \n        class=\"link\">RhumbLineAux.nearestOn4</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.deprecated.classes.Phi_-class.html\" class=\"summary-name\">Phi_</a><br />\n      DEPRECATED on 2024.06.15, use class <a \n        href=\"pygeodesy.units.Phid-class.html\" class=\"link\">Phid</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.deprecated.classes.Ned3Tuple-class.html\" class=\"summary-name\">Ned3Tuple</a><br />\n      DEPRECATED, use class <a \n        href=\"pygeodesy.ltpTuples.Ned4Tuple-class.html\" \n        class=\"link\">Ned4Tuple</a>, ignoring item <code>ltp</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.deprecated.classes.Rhumb7Tuple-class.html\" class=\"summary-name\">Rhumb7Tuple</a><br />\n      DEPRECATED, use class <a \n        href=\"pygeodesy.karney.Rhumb8Tuple-class.html\" class=\"link\" \n        onclick=\"show_private();\">Rhumb8Tuple</a>, ignoring item \n        <code>a12</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.deprecated.classes.RhumbOrder2Tuple-class.html\" class=\"summary-name\">RhumbOrder2Tuple</a><br />\n      DEPRECATED, see deprecated method <a \n        href=\"pygeodesy.rhumb.ekx.Rhumb-class.html#orders\" \n        class=\"link\">Rhumb.orders</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.deprecated.classes.Transform7Tuple-class.html\" class=\"summary-name\">Transform7Tuple</a><br />\n      DEPRECATED on 2024.02.02, use class <a \n        href=\"pygeodesy.trf.TRFXform7Tuple-class.html\" \n        class=\"link\">TRFXform7Tuple</a>, <i>without</i> keyword arguments.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.deprecated.classes.Transform7Tuple-class.html\" class=\"summary-name\">Helmert7Tuple</a><br />\n      DEPRECATED on 2024.02.02, use class <a \n        href=\"pygeodesy.trf.TRFXform7Tuple-class.html\" \n        class=\"link\">TRFXform7Tuple</a>, <i>without</i> keyword arguments.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.deprecated.classes.TriAngle4Tuple-class.html\" class=\"summary-name\">TriAngle4Tuple</a><br />\n      DEPRECATED on 2023.09.14, use class <a \n        href=\"pygeodesy.resections.TriAngle5Tuple-class.html\" \n        class=\"link\">TriAngle5Tuple</a>, ignoring item <code>area</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.deprecated.classes.UtmUps4Tuple-class.html\" class=\"summary-name\">UtmUps4Tuple</a><br />\n      DEPRECATED and OBSOLETE, expect a <a \n        href=\"pygeodesy.namedTuples.UtmUps5Tuple-class.html\" \n        class=\"link\">UtmUps5Tuple</a> from method \n        <code>pygeodesy.Mgrs.toUtm(utm=None)</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.deprecated.classes.XDist-class.html\" class=\"summary-name\">XDist</a><br />\n      DEPRECATED on 2024.07.02, use class <a \n        href=\"pygeodesy.named.ADict-class.html\" class=\"link\">ADict</a>.\n    </td>\n  </tr>\n</table>\n<!-- ==================== FUNCTIONS ==================== -->\n<a name=\"section-Functions\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Functions</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"EcefCartesian\"></a><span class=\"summary-sig-name\">EcefCartesian</span>(<span class=\"summary-sig-arg\">*args</span>,\n        <span class=\"summary-sig-arg\">**kwds</span>)</span><br />\n      DEPRECATED, use class <a \n      href=\"pygeodesy.ltp.LocalCartesian-class.html\" \n      class=\"link\">LocalCartesian</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"Fn_rt\"></a><span class=\"summary-sig-name\">Fn_rt</span>(<span class=\"summary-sig-arg\">root</span>,\n        <span class=\"summary-sig-arg\">*xs</span>,\n        <span class=\"summary-sig-arg\">**name_RESIDUAL_raiser</span>)</span><br />\n      DEPRECATED on 2024.04.17, use class <a \n      href=\"pygeodesy.fmath.Froot-class.html\" class=\"link\">Froot</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"FrechetCosineAndoyerLambert\"></a><span class=\"summary-sig-name\">FrechetCosineAndoyerLambert</span>(<span class=\"summary-sig-arg\">point1s</span>,\n        <span class=\"summary-sig-arg\">**kwds</span>)</span><br />\n      DEPRECATED on 2024.12.31, use class <a \n      href=\"pygeodesy.frechet.FrechetCosineLaw-class.html\" \n      class=\"link\">FrechetCosineLaw</a> with <code><b>corr</b>=1</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"FrechetCosineForsytheAndoyerLambert\"></a><span class=\"summary-sig-name\">FrechetCosineForsytheAndoyerLambert</span>(<span class=\"summary-sig-arg\">point1s</span>,\n        <span class=\"summary-sig-arg\">**kwds</span>)</span><br />\n      DEPRECATED on 2024.12.31, use class <a \n      href=\"pygeodesy.frechet.FrechetCosineLaw-class.html\" \n      class=\"link\">FrechetCosineLaw</a> with <code><b>corr</b>=2</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"HausdorffCosineAndoyerLambert\"></a><span class=\"summary-sig-name\">HausdorffCosineAndoyerLambert</span>(<span class=\"summary-sig-arg\">point1s</span>,\n        <span class=\"summary-sig-arg\">**kwds</span>)</span><br />\n      DEPRECATED on 2024.12.31, use class <a \n      href=\"pygeodesy.hausdorff.HausdorffCosineLaw-class.html\" \n      class=\"link\">HausdorffCosineLaw</a> with <code><b>corr</b>=1</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"HausdorffCosineForsytheAndoyerLambert\"></a><span class=\"summary-sig-name\">HausdorffCosineForsytheAndoyerLambert</span>(<span class=\"summary-sig-arg\">point1s</span>,\n        <span class=\"summary-sig-arg\">**kwds</span>)</span><br />\n      DEPRECATED on 2024.12.31, use class <a \n      href=\"pygeodesy.hausdorff.HausdorffCosineLaw-class.html\" \n      class=\"link\">HausdorffCosineLaw</a> with <code><b>corr</b>=2</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"HeightIDW\"></a><span class=\"summary-sig-name\">HeightIDW</span>(<span class=\"summary-sig-arg\">knots</span>,\n        <span class=\"summary-sig-arg\">**kwds</span>)</span><br />\n      DEPRECATED, use class <a \n      href=\"pygeodesy.heights.HeightIDWeuclidean-class.html\" \n      class=\"link\">HeightIDWeuclidean</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"HeightIDW2\"></a><span class=\"summary-sig-name\">HeightIDW2</span>(<span class=\"summary-sig-arg\">knots</span>,\n        <span class=\"summary-sig-arg\">**kwds</span>)</span><br />\n      DEPRECATED, use class <a \n      href=\"pygeodesy.heights.HeightIDWequirectangular-class.html\" \n      class=\"link\">HeightIDWequirectangular</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"HeightIDW3\"></a><span class=\"summary-sig-name\">HeightIDW3</span>(<span class=\"summary-sig-arg\">knots</span>,\n        <span class=\"summary-sig-arg\">**kwds</span>)</span><br />\n      DEPRECATED, use class <a \n      href=\"pygeodesy.heights.HeightIDWhaversine-class.html\" \n      class=\"link\">HeightIDWhaversine</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"HeightIDWcosineAndoyerLambert\"></a><span class=\"summary-sig-name\">HeightIDWcosineAndoyerLambert</span>(<span class=\"summary-sig-arg\">knots</span>,\n        <span class=\"summary-sig-arg\">**kwds</span>)</span><br />\n      DEPRECATED on 2024.12.31, use class <a \n      href=\"pygeodesy.heights.HeightIDWcosineLaw-class.html\" \n      class=\"link\">HeightIDWcosineLaw</a> with <code><b>corr</b>=1</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"HeightIDWcosineForsytheAndoyerLambert\"></a><span class=\"summary-sig-name\">HeightIDWcosineForsytheAndoyerLambert</span>(<span class=\"summary-sig-arg\">knots</span>,\n        <span class=\"summary-sig-arg\">**kwds</span>)</span><br />\n      DEPRECATED on 2024.12.31, use class <a \n      href=\"pygeodesy.heights.HeightIDWcosineLaw-class.html\" \n      class=\"link\">HeightIDWcosineLaw</a> with <code><b>corr</b>=2</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"RefFrameError\"></a><span class=\"summary-sig-name\">RefFrameError</span>(<span class=\"summary-sig-arg\">*args</span>,\n        <span class=\"summary-sig-arg\">**kwds</span>)</span><br />\n      DEPRECATED, use class <a href=\"pygeodesy.errors.TRFError-class.html\" \n      class=\"link\">TRFError</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== VARIABLES ==================== -->\n<a name=\"section-Variables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Variables</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"__all__\"></a><span class=\"summary-name\">__all__</span> = <code title=\"_ALL_DEPRECATED.deprecated_classes\">_ALL_DEPRECATED.deprecated_classes</code>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.deprecated.classes.ClipCS3Tuple-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.deprecated.classes.ClipCS3Tuple</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.deprecated-module.html\">Package&nbsp;deprecated</a> ::\n        <a href=\"pygeodesy.deprecated.classes-module.html\" onclick=\"show_private();\">Module&nbsp;classes</a> ::\n        Class&nbsp;ClipCS3Tuple\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.deprecated.classes.ClipCS3Tuple-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class ClipCS3Tuple</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n    object --+            \n             |            \n         tuple --+        \n                 |        \n    object --+   |        \n             |   |        \n  <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+        \n                 |        \n <a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a> --+    \n                     |    \n<a href=\"pygeodesy.deprecated.classes._Deprecated_NamedTuple-class.html\">_Deprecated_NamedTuple</a> --+\n                         |\n                        <strong class=\"uidshort\">ClipCS3Tuple</strong>\n</pre>\n\n<hr />\n<p>DEPRECATED, see <i>DEPRECATED</i> function <a \n  href=\"pygeodesy.deprecated.functions-module.html#clipCS3\" \n  class=\"link\">pygeodesy.deprecated.clipCS3</a>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__delattr__\">__delattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__getattr__\">__getattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__setattr__\">__setattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#items\">items</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iteritems\">iteritems</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iterunits\">iterunits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#reUnit\">reUnit</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toUnits\">toUnits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>tuple</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__eq__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__iter__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__rmul__</code>,\n      <code>count</code>,\n      <code>index</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.deprecated.classes._Deprecated_NamedTuple-class.html\">_Deprecated_NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.deprecated.classes._Deprecated_NamedTuple-class.html#__new__\">__new__</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.deprecated.classes.EasNorExact4Tuple-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.deprecated.classes.EasNorExact4Tuple</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.deprecated-module.html\">Package&nbsp;deprecated</a> ::\n        <a href=\"pygeodesy.deprecated.classes-module.html\" onclick=\"show_private();\">Module&nbsp;classes</a> ::\n        Class&nbsp;EasNorExact4Tuple\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.deprecated.classes.EasNorExact4Tuple-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class EasNorExact4Tuple</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n    object --+            \n             |            \n         tuple --+        \n                 |        \n    object --+   |        \n             |   |        \n  <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+        \n                 |        \n <a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a> --+    \n                     |    \n<a href=\"pygeodesy.deprecated.classes._Deprecated_NamedTuple-class.html\">_Deprecated_NamedTuple</a> --+\n                         |\n                        <strong class=\"uidshort\">EasNorExact4Tuple</strong>\n</pre>\n\n<hr />\n<p>DEPRECATED, use class <a \n  href=\"pygeodesy.namedTuples.Forward4Tuple-class.html\" \n  class=\"link\">Forward4Tuple</a>, item <code>gamma</code> for \n  <code>convergence</code>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__delattr__\">__delattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__getattr__\">__getattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__setattr__\">__setattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#items\">items</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iteritems\">iteritems</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iterunits\">iterunits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#reUnit\">reUnit</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toUnits\">toUnits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>tuple</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__eq__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__iter__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__rmul__</code>,\n      <code>count</code>,\n      <code>index</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.deprecated.classes._Deprecated_NamedTuple-class.html\">_Deprecated_NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.deprecated.classes._Deprecated_NamedTuple-class.html#__new__\">__new__</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.deprecated.classes.Jacobi2Tuple-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.deprecated.classes.Jacobi2Tuple</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.deprecated-module.html\">Package&nbsp;deprecated</a> ::\n        <a href=\"pygeodesy.deprecated.classes-module.html\" onclick=\"show_private();\">Module&nbsp;classes</a> ::\n        Class&nbsp;Jacobi2Tuple\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.deprecated.classes.Jacobi2Tuple-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Jacobi2Tuple</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n            object --+                    \n                     |                    \n                 tuple --+                \n                         |                \n            object --+   |                \n                     |   |                \n          <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+                \n                         |                \n         <a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a> --+            \n                             |            \n     namedTuples._NamedTupleTo --+        \n                                 |        \ntriaxials.triaxial5._NamedTupleToX --+    \n                                     |    \n   <a href=\"pygeodesy.triaxials.triaxial5.Conformal2Tuple-class.html\">triaxials.triaxial5.Conformal2Tuple</a> --+\n                                         |\n                                        <strong class=\"uidshort\">Jacobi2Tuple</strong>\n</pre>\n\n<hr />\n<p>DEPRECATED on 25.11.11, use class <a \n  href=\"pygeodesy.triaxials.triaxial5.Conformal2Tuple-class.html\" \n  class=\"link\">Conformal2Tuple</a>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.triaxials.triaxial5.Conformal2Tuple-class.html\">triaxials.triaxial5.Conformal2Tuple</a></code></b>:\n      <code><a href=\"pygeodesy.triaxials.triaxial5.Conformal2Tuple-class.html#to5Tuple\">to5Tuple</a></code>,\n      <code><a href=\"pygeodesy.triaxials.triaxial5.Conformal2Tuple-class.html#toDegrees\">toDegrees</a></code>,\n      <code><a href=\"pygeodesy.triaxials.triaxial5.Conformal2Tuple-class.html#toRadians\">toRadians</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__delattr__\">__delattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__getattr__\">__getattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__setattr__\">__setattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#items\">items</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iteritems\">iteritems</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iterunits\">iterunits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#reUnit\">reUnit</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toUnits\">toUnits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>tuple</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__eq__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__iter__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__rmul__</code>,\n      <code>count</code>,\n      <code>index</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">a new object with type S, a subtype of T</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.deprecated.classes.Jacobi2Tuple-class.html#__new__\" class=\"summary-sig-name\">__new__</a>(<span class=\"summary-sig-arg\">cls</span>,\n        <span class=\"summary-sig-arg\">*args</span>,\n        <span class=\"summary-sig-arg\">**kwds</span>)</span><br />\n      New <a href=\"pygeodesy.named._NamedTuple-class.html\" \n      class=\"link\">_NamedTuple</a> initialized with \n      <b><code>positional</code></b> arguments.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__new__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__new__</span>&nbsp;(<span class=\"sig-arg\">cls</span>,\n        <span class=\"sig-arg\">*args</span>,\n        <span class=\"sig-arg\">**kwds</span>)</span>\n    <br /><em class=\"fname\">Static Method</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.named._NamedTuple-class.html\" \n  class=\"link\">_NamedTuple</a> initialized with \n  <b><code>positional</code></b> arguments.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>arg</code></strong> - Tuple items (<code>tuple</code>, <code>list</code>, ...) or first\n          tuple item of several more in other positional arguments.</li>\n        <li><strong class=\"pname\"><code>args</code></strong> - Tuple items (<code>any</code>), all positional arguments.</li>\n        <li><strong class=\"pname\"><code>iteration_name</code></strong> - Only keyword arguments <code><b>iteration</b>=None</code> and \n          <code><b>name</b>=NN</code> are used, any other are \n          <i>silently</i> ignored.</li>\n    </ul></dd>\n    <dt>Returns: a new object with type S, a subtype of T</dt>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.LenError-class.html\">LenError</a></strong></code> - Unequal number of positional arguments and number of item \n        <code>_Names_</code> or <code>_Units_</code>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - The <code>_Names_</code> or <code>_Units_</code> attribute is not a\n        <code>tuple</code> of at least 2 items.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Item name is not a <code>str</code> or valid \n        <code>identifier</code> or starts with <code>underscore</code>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__new__\n        <dd><em class=\"note\">(inherited documentation)</em></dd>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.deprecated.classes.JacobiConformal-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.deprecated.classes.JacobiConformal</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.deprecated-module.html\">Package&nbsp;deprecated</a> ::\n        <a href=\"pygeodesy.deprecated.classes-module.html\" onclick=\"show_private();\">Module&nbsp;classes</a> ::\n        Class&nbsp;JacobiConformal\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.deprecated.classes.JacobiConformal-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class JacobiConformal</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n                object --+                            \n                         |                            \n              <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+                        \n                             |                        \n              <a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+                    \n                                 |                    \n              <a href=\"pygeodesy.named._NamedEnumItem-class.html\">named._NamedEnumItem</a> --+                \n                                     |                \n<a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html\">triaxials.bases._UnOrderedTriaxialBase</a> --+            \n                                         |            \n      <a href=\"pygeodesy.triaxials.bases._OrderedTriaxialBase-class.html\">triaxials.bases._OrderedTriaxialBase</a> --+        \n                                             |        \n                  <a href=\"pygeodesy.triaxials.triaxial5.Triaxial-class.html\">triaxials.triaxial5.Triaxial</a> --+    \n                                                 |    \n                     <a href=\"pygeodesy.triaxials.triaxial5.Conformal-class.html\">triaxials.triaxial5.Conformal</a> --+\n                                                     |\n                                                    <strong class=\"uidshort\">JacobiConformal</strong>\n</pre>\n\n<hr />\n<p>DEPRECATED on 2025.10.25, use class <a \n  href=\"pygeodesy.triaxials.triaxial5.Conformal-class.html\" \n  class=\"link\">Conformal</a>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.deprecated.classes.JacobiConformal-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">*args</span>,\n        <span class=\"summary-sig-arg\">**kwds</span>)</span><br />\n      New <i>ordered</i> <a \n      href=\"pygeodesy.triaxials.triaxial5.Triaxial-class.html\" \n      class=\"link\">Triaxial</a>, <a \n      href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html\" \n      class=\"link\">Triaxial3</a>, <a \n      href=\"pygeodesy.triaxials.triaxial5.Conformal-class.html\" \n      class=\"link\">Conformal</a> or <a \n      href=\"pygeodesy.triaxials.conformal3.Conformal3-class.html\" \n      class=\"link\">Conformal3</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.triaxials.triaxial5.Conformal-class.html\">triaxials.triaxial5.Conformal</a></code></b>:\n      <code><a href=\"pygeodesy.triaxials.triaxial5.Conformal-class.html#x\">x</a></code>,\n      <code><a href=\"pygeodesy.triaxials.triaxial5.Conformal-class.html#xR\">xR</a></code>,\n      <code><a href=\"pygeodesy.triaxials.triaxial5.Conformal-class.html#xR_\">xR_</a></code>,\n      <code><a href=\"pygeodesy.triaxials.triaxial5.Conformal-class.html#xy\">xy</a></code>,\n      <code><a href=\"pygeodesy.triaxials.triaxial5.Conformal-class.html#xyR2\">xyR2</a></code>,\n      <code><a href=\"pygeodesy.triaxials.triaxial5.Conformal-class.html#xyR2_\">xyR2_</a></code>,\n      <code><a href=\"pygeodesy.triaxials.triaxial5.Conformal-class.html#y\">y</a></code>,\n      <code><a href=\"pygeodesy.triaxials.triaxial5.Conformal-class.html#yR\">yR</a></code>,\n      <code><a href=\"pygeodesy.triaxials.triaxial5.Conformal-class.html#yR_\">yR_</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.triaxials.triaxial5.Triaxial-class.html\">triaxials.triaxial5.Triaxial</a></code></b>:\n      <code><a href=\"pygeodesy.triaxials.triaxial5.Triaxial-class.html#forwardBetaOmega\">forwardBetaOmega</a></code>,\n      <code><a href=\"pygeodesy.triaxials.triaxial5.Triaxial-class.html#forwardBetaOmega_\">forwardBetaOmega_</a></code>,\n      <code><a href=\"pygeodesy.triaxials.triaxial5.Triaxial-class.html#forwardCartesian\">forwardCartesian</a></code>,\n      <code><a href=\"pygeodesy.triaxials.triaxial5.Triaxial-class.html#forwardLatLon\">forwardLatLon</a></code>,\n      <code><a href=\"pygeodesy.triaxials.triaxial5.Triaxial-class.html#forwardLatLon_\">forwardLatLon_</a></code>,\n      <code><a href=\"pygeodesy.triaxials.triaxial5.Triaxial-class.html#reverseBetaOmega\">reverseBetaOmega</a></code>,\n      <code><a href=\"pygeodesy.triaxials.triaxial5.Triaxial-class.html#reverseCartesian\">reverseCartesian</a></code>,\n      <code><a href=\"pygeodesy.triaxials.triaxial5.Triaxial-class.html#reverseLatLon\">reverseLatLon</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html\">triaxials.bases._UnOrderedTriaxialBase</a></code></b>:\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#areaKT\">areaKT</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#area_p\">area_p</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#ellipse5\">ellipse5</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#hartzell4\">hartzell4</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#height4\">height4</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#normal3d\">normal3d</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#normal4\">normal4</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#sideOf\">sideOf</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#toBiaxial\">toBiaxial</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#toEllipsoid\">toEllipsoid</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#toStr\">toStr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedEnumItem-class.html\">named._NamedEnumItem</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedEnumItem-class.html#unregister\">unregister</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#others\">others</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#toRepr\">toRepr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.triaxials.triaxial5.Conformal-class.html\">triaxials.triaxial5.Conformal</a></code></b>:\n      <code><a href=\"pygeodesy.triaxials.triaxial5.Conformal-class.html#xyQ2\">xyQ2</a></code>,\n      <code><a href=\"pygeodesy.triaxials.triaxial5.Conformal-class.html#xyQR2\">xyQR2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.triaxials.bases._OrderedTriaxialBase-class.html\">triaxials.bases._OrderedTriaxialBase</a></code></b>:\n      <code><a href=\"pygeodesy.triaxials.bases._OrderedTriaxialBase-class.html#area\">area</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._OrderedTriaxialBase-class.html#area21k\">area21k</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html\">triaxials.bases._UnOrderedTriaxialBase</a></code></b>:\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#R2\">R2</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#R3\">R3</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#Rauthalic\">Rauthalic</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#Rvolumetric\">Rvolumetric</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#a\">a</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#a2\">a2</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#abc3\">abc3</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#areaRG\">areaRG</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#b\">b</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#b2\">b2</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#c\">c</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#c2\">c2</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#e2ab\">e2ab</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#e2ac\">e2ac</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#e2bc\">e2bc</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#isFlat\">isFlat</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#isOblate\">isOblate</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#isOrdered\">isOrdered</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#isProlate\">isProlate</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#isSpherical\">isSpherical</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#perimeter4ab\">perimeter4ab</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#perimeter4ac\">perimeter4ac</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#perimeter4bc\">perimeter4bc</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#unOrdered\">unOrdered</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#volume\">volume</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedEnumItem-class.html\">named._NamedEnumItem</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedEnumItem-class.html#name\">name</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">*args</span>,\n        <span class=\"sig-arg\">**kwds</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <i>ordered</i> <a \n  href=\"pygeodesy.triaxials.triaxial5.Triaxial-class.html\" \n  class=\"link\">Triaxial</a>, <a \n  href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html\" \n  class=\"link\">Triaxial3</a>, <a \n  href=\"pygeodesy.triaxials.triaxial5.Conformal-class.html\" \n  class=\"link\">Conformal</a> or <a \n  href=\"pygeodesy.triaxials.conformal3.Conformal3-class.html\" \n  class=\"link\">Conformal3</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>a_triaxial</code></strong> - Largest semi-axis (<code>scalar</code>, conventionally in \n          <code>meter</code>) or an other <a \n          href=\"pygeodesy.triaxials.triaxial5.Triaxial-class.html\" \n          class=\"link\">Triaxial</a> or <a \n          href=\"pygeodesy.triaxials.triaxial5.Triaxial_-class.html\" \n          class=\"link\">Triaxial_</a> instance.</li>\n        <li><strong class=\"pname\"><code>b</code></strong> - Middle semi-axis (<code>meter</code>, same units as \n          <b><code>a</code></b>), required if <code><b>a_triaxial</b> is \n          scalar</code>, ignored otherwise.</li>\n        <li><strong class=\"pname\"><code>c</code></strong> - Smallest semi-axis (<code>meter</code>, like \n          <b><code>b</code></b>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.triaxials.bases.TriaxialError-class.html\">TriaxialError</a></strong></code> - Semi-axes unordered, spherical or invalid.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n        <dd><em class=\"note\">(inherited documentation)</em></dd>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.deprecated.classes.JacobiConformalSpherical-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.deprecated.classes.JacobiConformalSpherical</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.deprecated-module.html\">Package&nbsp;deprecated</a> ::\n        <a href=\"pygeodesy.deprecated.classes-module.html\" onclick=\"show_private();\">Module&nbsp;classes</a> ::\n        Class&nbsp;JacobiConformalSpherical\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.deprecated.classes.JacobiConformalSpherical-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class JacobiConformalSpherical</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n                object --+                                \n                         |                                \n              <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+                            \n                             |                            \n              <a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+                        \n                                 |                        \n              <a href=\"pygeodesy.named._NamedEnumItem-class.html\">named._NamedEnumItem</a> --+                    \n                                     |                    \n<a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html\">triaxials.bases._UnOrderedTriaxialBase</a> --+                \n                                         |                \n      <a href=\"pygeodesy.triaxials.bases._OrderedTriaxialBase-class.html\">triaxials.bases._OrderedTriaxialBase</a> --+            \n                                             |            \n                  <a href=\"pygeodesy.triaxials.triaxial5.Triaxial-class.html\">triaxials.triaxial5.Triaxial</a> --+        \n                                                 |        \n                     <a href=\"pygeodesy.triaxials.triaxial5.Conformal-class.html\">triaxials.triaxial5.Conformal</a> --+    \n                                                     |    \n                   <a href=\"pygeodesy.triaxials.triaxial5.ConformalSphere-class.html\">triaxials.triaxial5.ConformalSphere</a> --+\n                                                         |\n                                                        <strong class=\"uidshort\">JacobiConformalSpherical</strong>\n</pre>\n\n<hr />\n<p>DEPRECATED on 2025.10.25, use class <a \n  href=\"pygeodesy.triaxials.triaxial5.ConformalSphere-class.html\" \n  class=\"link\">ConformalSphere</a>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.deprecated.classes.JacobiConformalSpherical-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">*args</span>,\n        <span class=\"summary-sig-arg\">**kwds</span>)</span><br />\n      New <a \n      href=\"pygeodesy.triaxials.triaxial5.ConformalSphere-class.html\" \n      class=\"link\">ConformalSphere</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.triaxials.triaxial5.Conformal-class.html\">triaxials.triaxial5.Conformal</a></code></b>:\n      <code><a href=\"pygeodesy.triaxials.triaxial5.Conformal-class.html#x\">x</a></code>,\n      <code><a href=\"pygeodesy.triaxials.triaxial5.Conformal-class.html#xR\">xR</a></code>,\n      <code><a href=\"pygeodesy.triaxials.triaxial5.Conformal-class.html#xR_\">xR_</a></code>,\n      <code><a href=\"pygeodesy.triaxials.triaxial5.Conformal-class.html#xy\">xy</a></code>,\n      <code><a href=\"pygeodesy.triaxials.triaxial5.Conformal-class.html#xyR2\">xyR2</a></code>,\n      <code><a href=\"pygeodesy.triaxials.triaxial5.Conformal-class.html#xyR2_\">xyR2_</a></code>,\n      <code><a href=\"pygeodesy.triaxials.triaxial5.Conformal-class.html#y\">y</a></code>,\n      <code><a href=\"pygeodesy.triaxials.triaxial5.Conformal-class.html#yR\">yR</a></code>,\n      <code><a href=\"pygeodesy.triaxials.triaxial5.Conformal-class.html#yR_\">yR_</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.triaxials.triaxial5.Triaxial-class.html\">triaxials.triaxial5.Triaxial</a></code></b>:\n      <code><a href=\"pygeodesy.triaxials.triaxial5.Triaxial-class.html#forwardBetaOmega\">forwardBetaOmega</a></code>,\n      <code><a href=\"pygeodesy.triaxials.triaxial5.Triaxial-class.html#forwardBetaOmega_\">forwardBetaOmega_</a></code>,\n      <code><a href=\"pygeodesy.triaxials.triaxial5.Triaxial-class.html#forwardCartesian\">forwardCartesian</a></code>,\n      <code><a href=\"pygeodesy.triaxials.triaxial5.Triaxial-class.html#forwardLatLon\">forwardLatLon</a></code>,\n      <code><a href=\"pygeodesy.triaxials.triaxial5.Triaxial-class.html#forwardLatLon_\">forwardLatLon_</a></code>,\n      <code><a href=\"pygeodesy.triaxials.triaxial5.Triaxial-class.html#reverseBetaOmega\">reverseBetaOmega</a></code>,\n      <code><a href=\"pygeodesy.triaxials.triaxial5.Triaxial-class.html#reverseCartesian\">reverseCartesian</a></code>,\n      <code><a href=\"pygeodesy.triaxials.triaxial5.Triaxial-class.html#reverseLatLon\">reverseLatLon</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html\">triaxials.bases._UnOrderedTriaxialBase</a></code></b>:\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#areaKT\">areaKT</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#area_p\">area_p</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#ellipse5\">ellipse5</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#hartzell4\">hartzell4</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#height4\">height4</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#normal3d\">normal3d</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#normal4\">normal4</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#sideOf\">sideOf</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#toBiaxial\">toBiaxial</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#toEllipsoid\">toEllipsoid</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#toStr\">toStr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedEnumItem-class.html\">named._NamedEnumItem</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedEnumItem-class.html#unregister\">unregister</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#others\">others</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#toRepr\">toRepr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.triaxials.triaxial5.ConformalSphere-class.html\">triaxials.triaxial5.ConformalSphere</a></code></b>:\n      <code><a href=\"pygeodesy.triaxials.triaxial5.ConformalSphere-class.html#ab\">ab</a></code>,\n      <code><a href=\"pygeodesy.triaxials.triaxial5.ConformalSphere-class.html#bc\">bc</a></code>,\n      <code><a href=\"pygeodesy.triaxials.triaxial5.ConformalSphere-class.html#radius\">radius</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.triaxials.triaxial5.Conformal-class.html\">triaxials.triaxial5.Conformal</a></code></b>:\n      <code><a href=\"pygeodesy.triaxials.triaxial5.Conformal-class.html#xyQ2\">xyQ2</a></code>,\n      <code><a href=\"pygeodesy.triaxials.triaxial5.Conformal-class.html#xyQR2\">xyQR2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.triaxials.bases._OrderedTriaxialBase-class.html\">triaxials.bases._OrderedTriaxialBase</a></code></b>:\n      <code><a href=\"pygeodesy.triaxials.bases._OrderedTriaxialBase-class.html#area\">area</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._OrderedTriaxialBase-class.html#area21k\">area21k</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html\">triaxials.bases._UnOrderedTriaxialBase</a></code></b>:\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#R2\">R2</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#R3\">R3</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#Rauthalic\">Rauthalic</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#Rvolumetric\">Rvolumetric</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#a\">a</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#a2\">a2</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#abc3\">abc3</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#areaRG\">areaRG</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#b\">b</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#b2\">b2</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#c\">c</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#c2\">c2</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#e2ab\">e2ab</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#e2ac\">e2ac</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#e2bc\">e2bc</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#isFlat\">isFlat</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#isOblate\">isOblate</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#isOrdered\">isOrdered</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#isProlate\">isProlate</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#isSpherical\">isSpherical</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#perimeter4ab\">perimeter4ab</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#perimeter4ac\">perimeter4ac</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#perimeter4bc\">perimeter4bc</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#unOrdered\">unOrdered</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#volume\">volume</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedEnumItem-class.html\">named._NamedEnumItem</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedEnumItem-class.html#name\">name</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">*args</span>,\n        <span class=\"sig-arg\">**kwds</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.triaxials.triaxial5.ConformalSphere-class.html\"\n  class=\"link\">ConformalSphere</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>radius_conformal</code></strong> - Radius (<code>scalar</code>, conventionally in \n          <code>meter</code>) or an other <a \n          href=\"pygeodesy.triaxials.triaxial5.ConformalSphere-class.html\" \n          class=\"link\">ConformalSphere</a> or <a \n          href=\"pygeodesy.triaxials.triaxial5.Conformal-class.html\" \n          class=\"link\">Conformal</a>.</li>\n        <li><strong class=\"pname\"><code>ab</code></strong> - Relative magnitude of <code><b>a</b> - <b>b</b></code> \n          (<code>meter</code>, same units as <code>scalar \n          <b>radius</b></code>.</li>\n        <li><strong class=\"pname\"><code>bc</code></strong> - Relative magnitude of <code><b>b</b> - <b>c</b></code> \n          (<code>meter</code>, same units as <code>scalar \n          <b>radius</b></code>.</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.triaxials.bases.TriaxialError-class.html\">TriaxialError</a></strong></code> - Invalid <b><code>radius_conformal</code></b>, negative \n        <b><code>ab</code></b>, negative <b><code>bc</code></b> or \n        <code>(<b>ab</b> + <b>bc</b>)</code> not positive.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n        <dd><em class=\"note\">(inherited documentation)</em></dd>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.deprecated.classes.Lam_-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.deprecated.classes.Lam_</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.deprecated-module.html\">Package&nbsp;deprecated</a> ::\n        <a href=\"pygeodesy.deprecated.classes-module.html\" onclick=\"show_private();\">Module&nbsp;classes</a> ::\n        Class&nbsp;Lam_\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.deprecated.classes.Lam_-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Lam_</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n          object --+                    \n                   |                    \n               float --+                \n                       |                \n      object --+       |                \n               |       |                \n    <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+   |                \n                   |   |                \n<a href=\"pygeodesy.unitsBase._NamedUnit-class.html\">unitsBase._NamedUnit</a> --+                \n                       |                \n         <a href=\"pygeodesy.unitsBase.Float-class.html\">unitsBase.Float</a> --+            \n                           |            \n               <a href=\"pygeodesy.units.Radians-class.html\">units.Radians</a> --+        \n                               |        \n                       <a href=\"pygeodesy.units.Lam-class.html\">units.Lam</a> --+    \n                                   |    \n                          <a href=\"pygeodesy.units.Lamd-class.html\">units.Lamd</a> --+\n                                       |\n                                      <strong class=\"uidshort\">Lam_</strong>\n</pre>\n\n<hr />\n<p>DEPRECATED on 2024.06.15, use class <a \n  href=\"pygeodesy.units.Lamd-class.html\" class=\"link\">Lamd</a>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.deprecated.classes.Lam_-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">*args</span>,\n        <span class=\"summary-sig-arg\">**kwds</span>)</span><br />\n      x.__init__(...) initializes x; see help(type(x)) for signature</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.units.Radians-class.html\">units.Radians</a></code></b>:\n      <code><a href=\"pygeodesy.units.Radians-class.html#toDegrees\">toDegrees</a></code>,\n      <code><a href=\"pygeodesy.units.Radians-class.html#toRadians\">toRadians</a></code>,\n      <code><a href=\"pygeodesy.units.Radians-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.units.Radians-class.html#toStr\">toStr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase.Float-class.html\">unitsBase.Float</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#__str__\">__str__</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>float</code></b>:\n      <code>__abs__</code>,\n      <code>__add__</code>,\n      <code>__coerce__</code>,\n      <code>__div__</code>,\n      <code>__divmod__</code>,\n      <code>__eq__</code>,\n      <code>__float__</code>,\n      <code>__floordiv__</code>,\n      <code>__format__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getformat__</code>,\n      <code>__getnewargs__</code>,\n      <code>__gt__</code>,\n      <code>__hash__</code>,\n      <code>__int__</code>,\n      <code>__le__</code>,\n      <code>__long__</code>,\n      <code>__lt__</code>,\n      <code>__mod__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__neg__</code>,\n      <code>__nonzero__</code>,\n      <code>__pos__</code>,\n      <code>__pow__</code>,\n      <code>__radd__</code>,\n      <code>__rdiv__</code>,\n      <code>__rdivmod__</code>,\n      <code>__rfloordiv__</code>,\n      <code>__rmod__</code>,\n      <code>__rmul__</code>,\n      <code>__rpow__</code>,\n      <code>__rsub__</code>,\n      <code>__rtruediv__</code>,\n      <code>__setformat__</code>,\n      <code>__sub__</code>,\n      <code>__truediv__</code>,\n      <code>__trunc__</code>,\n      <code>as_integer_ratio</code>,\n      <code>conjugate</code>,\n      <code>fromhex</code>,\n      <code>hex</code>,\n      <code>is_integer</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.units.Lamd-class.html\">units.Lamd</a></code></b>:\n      <code><a href=\"pygeodesy.units.Lamd-class.html#__new__\">__new__</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase.Float-class.html\">unitsBase.Float</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#isneg0\">isneg0</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>float</code></b>:\n      <code>imag</code>,\n      <code>real</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html\">unitsBase._NamedUnit</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html#std_repr\">std_repr</a></code>,\n      <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">*args</span>,\n        <span class=\"sig-arg\">**kwds</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>x.__init__(...) initializes x; see help(type(x)) for signature</p>\n  <dl class=\"fields\">\n    <dt>Overrides:\n        object.__init__\n        <dd><em class=\"note\">(inherited documentation)</em></dd>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.deprecated.classes.LatLonExact4Tuple-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.deprecated.classes.LatLonExact4Tuple</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.deprecated-module.html\">Package&nbsp;deprecated</a> ::\n        <a href=\"pygeodesy.deprecated.classes-module.html\" onclick=\"show_private();\">Module&nbsp;classes</a> ::\n        Class&nbsp;LatLonExact4Tuple\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.deprecated.classes.LatLonExact4Tuple-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class LatLonExact4Tuple</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n    object --+            \n             |            \n         tuple --+        \n                 |        \n    object --+   |        \n             |   |        \n  <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+        \n                 |        \n <a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a> --+    \n                     |    \n<a href=\"pygeodesy.deprecated.classes._Deprecated_NamedTuple-class.html\">_Deprecated_NamedTuple</a> --+\n                         |\n                        <strong class=\"uidshort\">LatLonExact4Tuple</strong>\n</pre>\n\n<hr />\n<p>DEPRECATED, use class <a \n  href=\"pygeodesy.namedTuples.Reverse4Tuple-class.html\" \n  class=\"link\">Reverse4Tuple</a>, item <code>gamma</code> for \n  <code>convergence</code>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__delattr__\">__delattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__getattr__\">__getattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__setattr__\">__setattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#items\">items</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iteritems\">iteritems</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iterunits\">iterunits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#reUnit\">reUnit</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toUnits\">toUnits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>tuple</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__eq__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__iter__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__rmul__</code>,\n      <code>count</code>,\n      <code>index</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.deprecated.classes._Deprecated_NamedTuple-class.html\">_Deprecated_NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.deprecated.classes._Deprecated_NamedTuple-class.html#__new__\">__new__</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.deprecated.classes.NearestOn4Tuple-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.deprecated.classes.NearestOn4Tuple</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.deprecated-module.html\">Package&nbsp;deprecated</a> ::\n        <a href=\"pygeodesy.deprecated.classes-module.html\" onclick=\"show_private();\">Module&nbsp;classes</a> ::\n        Class&nbsp;NearestOn4Tuple\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.deprecated.classes.NearestOn4Tuple-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class NearestOn4Tuple</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n    object --+            \n             |            \n         tuple --+        \n                 |        \n    object --+   |        \n             |   |        \n  <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+        \n                 |        \n <a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a> --+    \n                     |    \n<a href=\"pygeodesy.deprecated.classes._Deprecated_NamedTuple-class.html\">_Deprecated_NamedTuple</a> --+\n                         |\n                        <strong class=\"uidshort\">NearestOn4Tuple</strong>\n</pre>\n\n<hr />\n<p>DEPRECATED on 2023.10.10, see methods <a \n  href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#nearestOn4\" \n  class=\"link\">RhumbLine.nearestOn4</a> and <a \n  href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#nearestOn4\" \n  class=\"link\">RhumbLineAux.nearestOn4</a>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__delattr__\">__delattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__getattr__\">__getattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__setattr__\">__setattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#items\">items</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iteritems\">iteritems</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iterunits\">iterunits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#reUnit\">reUnit</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toUnits\">toUnits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>tuple</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__eq__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__iter__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__rmul__</code>,\n      <code>count</code>,\n      <code>index</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.deprecated.classes._Deprecated_NamedTuple-class.html\">_Deprecated_NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.deprecated.classes._Deprecated_NamedTuple-class.html#__new__\">__new__</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.deprecated.classes.Ned3Tuple-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.deprecated.classes.Ned3Tuple</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.deprecated-module.html\">Package&nbsp;deprecated</a> ::\n        <a href=\"pygeodesy.deprecated.classes-module.html\" onclick=\"show_private();\">Module&nbsp;classes</a> ::\n        Class&nbsp;Ned3Tuple\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.deprecated.classes.Ned3Tuple-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Ned3Tuple</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n    object --+            \n             |            \n         tuple --+        \n                 |        \n    object --+   |        \n             |   |        \n  <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+        \n                 |        \n <a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a> --+    \n                     |    \n<a href=\"pygeodesy.deprecated.classes._Deprecated_NamedTuple-class.html\">_Deprecated_NamedTuple</a> --+\n                         |\n                        <strong class=\"uidshort\">Ned3Tuple</strong>\n</pre>\n\n<hr />\n<p>DEPRECATED, use class <a \n  href=\"pygeodesy.ltpTuples.Ned4Tuple-class.html\" \n  class=\"link\">Ned4Tuple</a>, ignoring item <code>ltp</code>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__delattr__\">__delattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__getattr__\">__getattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__setattr__\">__setattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#items\">items</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iteritems\">iteritems</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iterunits\">iterunits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#reUnit\">reUnit</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toUnits\">toUnits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>tuple</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__eq__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__iter__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__rmul__</code>,\n      <code>count</code>,\n      <code>index</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.deprecated.classes._Deprecated_NamedTuple-class.html\">_Deprecated_NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.deprecated.classes._Deprecated_NamedTuple-class.html#__new__\">__new__</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.deprecated.classes.Phi_-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.deprecated.classes.Phi_</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.deprecated-module.html\">Package&nbsp;deprecated</a> ::\n        <a href=\"pygeodesy.deprecated.classes-module.html\" onclick=\"show_private();\">Module&nbsp;classes</a> ::\n        Class&nbsp;Phi_\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.deprecated.classes.Phi_-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Phi_</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n          object --+                    \n                   |                    \n               float --+                \n                       |                \n      object --+       |                \n               |       |                \n    <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+   |                \n                   |   |                \n<a href=\"pygeodesy.unitsBase._NamedUnit-class.html\">unitsBase._NamedUnit</a> --+                \n                       |                \n         <a href=\"pygeodesy.unitsBase.Float-class.html\">unitsBase.Float</a> --+            \n                           |            \n               <a href=\"pygeodesy.units.Radians-class.html\">units.Radians</a> --+        \n                               |        \n                       <a href=\"pygeodesy.units.Phi-class.html\">units.Phi</a> --+    \n                                   |    \n                          <a href=\"pygeodesy.units.Phid-class.html\">units.Phid</a> --+\n                                       |\n                                      <strong class=\"uidshort\">Phi_</strong>\n</pre>\n\n<hr />\n<p>DEPRECATED on 2024.06.15, use class <a \n  href=\"pygeodesy.units.Phid-class.html\" class=\"link\">Phid</a>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.deprecated.classes.Phi_-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">*args</span>,\n        <span class=\"summary-sig-arg\">**kwds</span>)</span><br />\n      x.__init__(...) initializes x; see help(type(x)) for signature</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.units.Radians-class.html\">units.Radians</a></code></b>:\n      <code><a href=\"pygeodesy.units.Radians-class.html#toDegrees\">toDegrees</a></code>,\n      <code><a href=\"pygeodesy.units.Radians-class.html#toRadians\">toRadians</a></code>,\n      <code><a href=\"pygeodesy.units.Radians-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.units.Radians-class.html#toStr\">toStr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase.Float-class.html\">unitsBase.Float</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#__str__\">__str__</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>float</code></b>:\n      <code>__abs__</code>,\n      <code>__add__</code>,\n      <code>__coerce__</code>,\n      <code>__div__</code>,\n      <code>__divmod__</code>,\n      <code>__eq__</code>,\n      <code>__float__</code>,\n      <code>__floordiv__</code>,\n      <code>__format__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getformat__</code>,\n      <code>__getnewargs__</code>,\n      <code>__gt__</code>,\n      <code>__hash__</code>,\n      <code>__int__</code>,\n      <code>__le__</code>,\n      <code>__long__</code>,\n      <code>__lt__</code>,\n      <code>__mod__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__neg__</code>,\n      <code>__nonzero__</code>,\n      <code>__pos__</code>,\n      <code>__pow__</code>,\n      <code>__radd__</code>,\n      <code>__rdiv__</code>,\n      <code>__rdivmod__</code>,\n      <code>__rfloordiv__</code>,\n      <code>__rmod__</code>,\n      <code>__rmul__</code>,\n      <code>__rpow__</code>,\n      <code>__rsub__</code>,\n      <code>__rtruediv__</code>,\n      <code>__setformat__</code>,\n      <code>__sub__</code>,\n      <code>__truediv__</code>,\n      <code>__trunc__</code>,\n      <code>as_integer_ratio</code>,\n      <code>conjugate</code>,\n      <code>fromhex</code>,\n      <code>hex</code>,\n      <code>is_integer</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.units.Phid-class.html\">units.Phid</a></code></b>:\n      <code><a href=\"pygeodesy.units.Phid-class.html#__new__\">__new__</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase.Float-class.html\">unitsBase.Float</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#isneg0\">isneg0</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>float</code></b>:\n      <code>imag</code>,\n      <code>real</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html\">unitsBase._NamedUnit</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html#std_repr\">std_repr</a></code>,\n      <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">*args</span>,\n        <span class=\"sig-arg\">**kwds</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>x.__init__(...) initializes x; see help(type(x)) for signature</p>\n  <dl class=\"fields\">\n    <dt>Overrides:\n        object.__init__\n        <dd><em class=\"note\">(inherited documentation)</em></dd>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.deprecated.classes.Rhumb7Tuple-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.deprecated.classes.Rhumb7Tuple</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.deprecated-module.html\">Package&nbsp;deprecated</a> ::\n        <a href=\"pygeodesy.deprecated.classes-module.html\" onclick=\"show_private();\">Module&nbsp;classes</a> ::\n        Class&nbsp;Rhumb7Tuple\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.deprecated.classes.Rhumb7Tuple-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Rhumb7Tuple</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n    object --+            \n             |            \n         tuple --+        \n                 |        \n    object --+   |        \n             |   |        \n  <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+        \n                 |        \n <a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a> --+    \n                     |    \n<a href=\"pygeodesy.deprecated.classes._Deprecated_NamedTuple-class.html\">_Deprecated_NamedTuple</a> --+\n                         |\n                        <strong class=\"uidshort\">Rhumb7Tuple</strong>\n</pre>\n\n<hr />\n<p>DEPRECATED, use class <a \n  href=\"pygeodesy.karney.Rhumb8Tuple-class.html\" class=\"link\" \n  onclick=\"show_private();\">Rhumb8Tuple</a>, ignoring item \n  <code>a12</code>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.deprecated.classes.Rhumb7Tuple-class.html#toDirect9Tuple\" class=\"summary-sig-name\">toDirect9Tuple</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">**kwds</span>)</span></td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.deprecated.classes.Rhumb7Tuple-class.html#toGDict\" class=\"summary-sig-name\">toGDict</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">**kwds</span>)</span></td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.deprecated.classes.Rhumb7Tuple-class.html#toInverse10Tuple\" class=\"summary-sig-name\">toInverse10Tuple</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">**kwds</span>)</span></td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.deprecated.classes.Rhumb7Tuple-class.html#toRhumb8Tuple\" class=\"summary-sig-name\">toRhumb8Tuple</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">dflt</span>=<span class=\"summary-sig-default\">nan</span>)</span></td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__delattr__\">__delattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__getattr__\">__getattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__setattr__\">__setattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#items\">items</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iteritems\">iteritems</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iterunits\">iterunits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#reUnit\">reUnit</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toUnits\">toUnits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>tuple</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__eq__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__iter__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__rmul__</code>,\n      <code>count</code>,\n      <code>index</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.deprecated.classes._Deprecated_NamedTuple-class.html\">_Deprecated_NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.deprecated.classes._Deprecated_NamedTuple-class.html#__new__\">__new__</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"toDirect9Tuple\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toDirect9Tuple</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">**kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  \n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_method</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toGDict\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toGDict</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">**kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  \n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_method</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toInverse10Tuple\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toInverse10Tuple</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">**kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  \n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_method</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toRhumb8Tuple\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toRhumb8Tuple</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">dflt</span>=<span class=\"sig-default\">nan</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  \n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_method</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.deprecated.classes.RhumbOrder2Tuple-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.deprecated.classes.RhumbOrder2Tuple</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.deprecated-module.html\">Package&nbsp;deprecated</a> ::\n        <a href=\"pygeodesy.deprecated.classes-module.html\" onclick=\"show_private();\">Module&nbsp;classes</a> ::\n        Class&nbsp;RhumbOrder2Tuple\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.deprecated.classes.RhumbOrder2Tuple-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class RhumbOrder2Tuple</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n    object --+            \n             |            \n         tuple --+        \n                 |        \n    object --+   |        \n             |   |        \n  <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+        \n                 |        \n <a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a> --+    \n                     |    \n<a href=\"pygeodesy.deprecated.classes._Deprecated_NamedTuple-class.html\">_Deprecated_NamedTuple</a> --+\n                         |\n    object --+           |\n             |           |\n         tuple --+       |\n                 |       |\n    object --+   |       |\n             |   |       |\n  <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+       |\n                 |       |\n <a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a> --+   |\n                     |   |\n        karney._GTuple --+\n                         |\n                        <strong class=\"uidshort\">RhumbOrder2Tuple</strong>\n</pre>\n\n<hr />\n<p>DEPRECATED, see deprecated method <a \n  href=\"pygeodesy.rhumb.ekx.Rhumb-class.html#orders\" \n  class=\"link\">Rhumb.orders</a>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>karney._GTuple</code></b>:\n      <code>toGDict</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__delattr__\">__delattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__getattr__\">__getattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__setattr__\">__setattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#items\">items</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iteritems\">iteritems</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iterunits\">iterunits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#reUnit\">reUnit</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toUnits\">toUnits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>tuple</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__eq__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__iter__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__rmul__</code>,\n      <code>count</code>,\n      <code>index</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.deprecated.classes._Deprecated_NamedTuple-class.html\">_Deprecated_NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.deprecated.classes._Deprecated_NamedTuple-class.html#__new__\">__new__</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.deprecated.classes.Transform7Tuple-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.deprecated.classes.Transform7Tuple</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.deprecated-module.html\">Package&nbsp;deprecated</a> ::\n        <a href=\"pygeodesy.deprecated.classes-module.html\" onclick=\"show_private();\">Module&nbsp;classes</a> ::\n        Class&nbsp;Transform7Tuple\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.deprecated.classes.Transform7Tuple-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Transform7Tuple</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n    object --+            \n             |            \n         tuple --+        \n                 |        \n    object --+   |        \n             |   |        \n  <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+        \n                 |        \n <a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a> --+    \n                     |    \n<a href=\"pygeodesy.deprecated.classes._Deprecated_NamedTuple-class.html\">_Deprecated_NamedTuple</a> --+\n                         |\n                        <strong class=\"uidshort\">Transform7Tuple</strong>\n</pre>\n\n<hr />\n<p>DEPRECATED on 2024.02.02, use class <a \n  href=\"pygeodesy.trf.TRFXform7Tuple-class.html\" \n  class=\"link\">TRFXform7Tuple</a>, <i>without</i> keyword arguments.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__delattr__\">__delattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__getattr__\">__getattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__setattr__\">__setattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#items\">items</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iteritems\">iteritems</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iterunits\">iterunits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#reUnit\">reUnit</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toUnits\">toUnits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>tuple</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__eq__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__iter__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__rmul__</code>,\n      <code>count</code>,\n      <code>index</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">a new object with type S, a subtype of T</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.deprecated.classes.Transform7Tuple-class.html#__new__\" class=\"summary-sig-name\">__new__</a>(<span class=\"summary-sig-arg\">cls</span>,\n        <span class=\"summary-sig-arg\">tx</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">ty</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">tz</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">s</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">sx</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">sy</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">sz</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">name</span>=<span class=\"summary-sig-default\">''</span>)</span><br />\n      New <a href=\"pygeodesy.named._NamedTuple-class.html\" \n      class=\"link\">_NamedTuple</a> initialized with \n      <b><code>positional</code></b> arguments.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__new__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__new__</span>&nbsp;(<span class=\"sig-arg\">cls</span>,\n        <span class=\"sig-arg\">tx</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">ty</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">tz</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">s</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">sx</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">sy</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">sz</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">name</span>=<span class=\"sig-default\">''</span>)</span>\n    <br /><em class=\"fname\">Static Method</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.named._NamedTuple-class.html\" \n  class=\"link\">_NamedTuple</a> initialized with \n  <b><code>positional</code></b> arguments.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>arg</code></strong> - Tuple items (<code>tuple</code>, <code>list</code>, ...) or first\n          tuple item of several more in other positional arguments.</li>\n        <li><strong class=\"pname\"><code>args</code></strong> - Tuple items (<code>any</code>), all positional arguments.</li>\n        <li><strong class=\"pname\"><code>iteration_name</code></strong> - Only keyword arguments <code><b>iteration</b>=None</code> and \n          <code><b>name</b>=NN</code> are used, any other are \n          <i>silently</i> ignored.</li>\n    </ul></dd>\n    <dt>Returns: a new object with type S, a subtype of T</dt>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.LenError-class.html\">LenError</a></strong></code> - Unequal number of positional arguments and number of item \n        <code>_Names_</code> or <code>_Units_</code>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - The <code>_Names_</code> or <code>_Units_</code> attribute is not a\n        <code>tuple</code> of at least 2 items.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Item name is not a <code>str</code> or valid \n        <code>identifier</code> or starts with <code>underscore</code>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__new__\n        <dd><em class=\"note\">(inherited documentation)</em></dd>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.deprecated.classes.TriAngle4Tuple-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.deprecated.classes.TriAngle4Tuple</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.deprecated-module.html\">Package&nbsp;deprecated</a> ::\n        <a href=\"pygeodesy.deprecated.classes-module.html\" onclick=\"show_private();\">Module&nbsp;classes</a> ::\n        Class&nbsp;TriAngle4Tuple\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.deprecated.classes.TriAngle4Tuple-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class TriAngle4Tuple</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n    object --+            \n             |            \n         tuple --+        \n                 |        \n    object --+   |        \n             |   |        \n  <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+        \n                 |        \n <a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a> --+    \n                     |    \n<a href=\"pygeodesy.deprecated.classes._Deprecated_NamedTuple-class.html\">_Deprecated_NamedTuple</a> --+\n                         |\n                        <strong class=\"uidshort\">TriAngle4Tuple</strong>\n</pre>\n\n<hr />\n<p>DEPRECATED on 2023.09.14, use class <a \n  href=\"pygeodesy.resections.TriAngle5Tuple-class.html\" \n  class=\"link\">TriAngle5Tuple</a>, ignoring item <code>area</code>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__delattr__\">__delattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__getattr__\">__getattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__setattr__\">__setattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#items\">items</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iteritems\">iteritems</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iterunits\">iterunits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#reUnit\">reUnit</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toUnits\">toUnits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>tuple</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__eq__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__iter__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__rmul__</code>,\n      <code>count</code>,\n      <code>index</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.deprecated.classes._Deprecated_NamedTuple-class.html\">_Deprecated_NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.deprecated.classes._Deprecated_NamedTuple-class.html#__new__\">__new__</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.deprecated.classes.UtmUps4Tuple-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.deprecated.classes.UtmUps4Tuple</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.deprecated-module.html\">Package&nbsp;deprecated</a> ::\n        <a href=\"pygeodesy.deprecated.classes-module.html\" onclick=\"show_private();\">Module&nbsp;classes</a> ::\n        Class&nbsp;UtmUps4Tuple\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.deprecated.classes.UtmUps4Tuple-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class UtmUps4Tuple</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n    object --+            \n             |            \n         tuple --+        \n                 |        \n    object --+   |        \n             |   |        \n  <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+        \n                 |        \n <a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a> --+    \n                     |    \n<a href=\"pygeodesy.deprecated.classes._Deprecated_NamedTuple-class.html\">_Deprecated_NamedTuple</a> --+\n                         |\n                        <strong class=\"uidshort\">UtmUps4Tuple</strong>\n</pre>\n\n<hr />\n<p>DEPRECATED and OBSOLETE, expect a <a \n  href=\"pygeodesy.namedTuples.UtmUps5Tuple-class.html\" \n  class=\"link\">UtmUps5Tuple</a> from method \n  <code>pygeodesy.Mgrs.toUtm(utm=None)</code>.</p>\n  <p>4-Tuple <code>(zone, hemipole, easting, northing)</code> with as \n  <code>zone</code> <b><code>str</code></b> and no <code>band</code>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__delattr__\">__delattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__getattr__\">__getattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__setattr__\">__setattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#items\">items</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iteritems\">iteritems</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iterunits\">iterunits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#reUnit\">reUnit</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toUnits\">toUnits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>tuple</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__eq__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__iter__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__rmul__</code>,\n      <code>count</code>,\n      <code>index</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.deprecated.classes._Deprecated_NamedTuple-class.html\">_Deprecated_NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.deprecated.classes._Deprecated_NamedTuple-class.html#__new__\">__new__</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.deprecated.classes.XDist-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.deprecated.classes.XDist</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.deprecated-module.html\">Package&nbsp;deprecated</a> ::\n        <a href=\"pygeodesy.deprecated.classes-module.html\" onclick=\"show_private();\">Module&nbsp;classes</a> ::\n        Class&nbsp;XDist\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.deprecated.classes.XDist-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class XDist</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\nobject --+        \n         |        \n      dict --+    \n             |    \n   <a href=\"pygeodesy.named.ADict-class.html\">named.ADict</a> --+\n                 |\n                <strong class=\"uidshort\">XDist</strong>\n</pre>\n\n<hr />\n<p>DEPRECATED on 2024.07.02, use class <a \n  href=\"pygeodesy.named.ADict-class.html\" class=\"link\">ADict</a>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\"><pre class=\"literalblock\">\nnew empty dictionary\n\n</pre></span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.deprecated.classes.XDist-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">*args</span>,\n        <span class=\"summary-sig-arg\">**kwds</span>)</span><br />\n      x.__init__(...) initializes x; see help(type(x)) for signature</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named.ADict-class.html\">named.ADict</a></code></b>:\n      <code><a href=\"pygeodesy.named.ADict-class.html#__getattr__\">__getattr__</a></code>,\n      <code><a href=\"pygeodesy.named.ADict-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named.ADict-class.html#__setattr__\">__setattr__</a></code>,\n      <code><a href=\"pygeodesy.named.ADict-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named.ADict-class.html#set_\">set_</a></code>,\n      <code><a href=\"pygeodesy.named.ADict-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named.ADict-class.html#toStr\">toStr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>dict</code></b>:\n      <code>__cmp__</code>,\n      <code>__contains__</code>,\n      <code>__delitem__</code>,\n      <code>__eq__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__gt__</code>,\n      <code>__iter__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__ne__</code>,\n      <code>__new__</code>,\n      <code>__setitem__</code>,\n      <code>__sizeof__</code>,\n      <code>clear</code>,\n      <code>copy</code>,\n      <code>fromkeys</code>,\n      <code>get</code>,\n      <code>has_key</code>,\n      <code>items</code>,\n      <code>iteritems</code>,\n      <code>iterkeys</code>,\n      <code>itervalues</code>,\n      <code>keys</code>,\n      <code>pop</code>,\n      <code>popitem</code>,\n      <code>setdefault</code>,\n      <code>update</code>,\n      <code>values</code>,\n      <code>viewitems</code>,\n      <code>viewkeys</code>,\n      <code>viewvalues</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__format__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS VARIABLES ==================== -->\n<a name=\"section-ClassVariables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Class Variables</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>dict</code></b>:\n      <code>__hash__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named.ADict-class.html\">named.ADict</a></code></b>:\n      <code><a href=\"pygeodesy.named.ADict-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named.ADict-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">*args</span>,\n        <span class=\"sig-arg\">**kwds</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>x.__init__(...) initializes x; see help(type(x)) for signature</p>\n  <dl class=\"fields\">\n    <dt>Returns: <pre class=\"literalblock\">\nnew empty dictionary\n\n</pre></dt>\n    <dt>Overrides:\n        object.__init__\n        <dd><em class=\"note\">(inherited documentation)</em></dd>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.deprecated.classes._Deprecated_NamedTuple-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.deprecated.classes._Deprecated_NamedTuple</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.deprecated-module.html\">Package&nbsp;deprecated</a> ::\n        <a href=\"pygeodesy.deprecated.classes-module.html\" onclick=\"show_private();\">Module&nbsp;classes</a> ::\n        Class&nbsp;_Deprecated_NamedTuple\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.deprecated.classes._Deprecated_NamedTuple-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class _Deprecated_NamedTuple</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n   object --+        \n            |        \n        tuple --+    \n                |    \n   object --+   |    \n            |   |    \n <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n                |    \n<a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a> --+\n                    |\n                   <strong class=\"uidshort\">_Deprecated_NamedTuple</strong>\n</pre>\n\n<dl><dt>Known Subclasses:</dt>\n<dd>\n      <ul class=\"subclass-list\">\n<li><a href=\"pygeodesy.deprecated.classes.ClipCS3Tuple-class.html\">ClipCS3Tuple</a></li><li>, <a href=\"pygeodesy.deprecated.classes.EasNorExact4Tuple-class.html\">EasNorExact4Tuple</a></li><li>, <a href=\"pygeodesy.deprecated.classes.Transform7Tuple-class.html\">Transform7Tuple</a></li><li>, <a href=\"pygeodesy.deprecated.classes.LatLonExact4Tuple-class.html\">LatLonExact4Tuple</a></li><li>, <a href=\"pygeodesy.deprecated.classes.NearestOn4Tuple-class.html\">NearestOn4Tuple</a></li><li>, <a href=\"pygeodesy.deprecated.classes.Ned3Tuple-class.html\">Ned3Tuple</a></li><li>, <a href=\"pygeodesy.deprecated.classes.Rhumb7Tuple-class.html\">Rhumb7Tuple</a></li><li>, <a href=\"pygeodesy.deprecated.classes.RhumbOrder2Tuple-class.html\">RhumbOrder2Tuple</a></li><li>, <a href=\"pygeodesy.deprecated.classes.TriAngle4Tuple-class.html\">TriAngle4Tuple</a></li><li>, <a href=\"pygeodesy.deprecated.classes.UtmUps4Tuple-class.html\">UtmUps4Tuple</a></li>  </ul>\n</dd></dl>\n\n<hr />\n<p>DEPRECATED, <code>_NamedTuple</code> base.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__delattr__\">__delattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__getattr__\">__getattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__setattr__\">__setattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#items\">items</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iteritems\">iteritems</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iterunits\">iterunits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#reUnit\">reUnit</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toUnits\">toUnits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>tuple</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__eq__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__iter__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__rmul__</code>,\n      <code>count</code>,\n      <code>index</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">a new object with type S, a subtype of T</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.deprecated.classes._Deprecated_NamedTuple-class.html#__new__\" class=\"summary-sig-name\">__new__</a>(<span class=\"summary-sig-arg\">cls</span>,\n        <span class=\"summary-sig-arg\">*args</span>,\n        <span class=\"summary-sig-arg\">**kwds</span>)</span><br />\n      New <a href=\"pygeodesy.named._NamedTuple-class.html\" \n      class=\"link\">_NamedTuple</a> initialized with \n      <b><code>positional</code></b> arguments.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__new__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__new__</span>&nbsp;(<span class=\"sig-arg\">cls</span>,\n        <span class=\"sig-arg\">*args</span>,\n        <span class=\"sig-arg\">**kwds</span>)</span>\n    <br /><em class=\"fname\">Static Method</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.named._NamedTuple-class.html\" \n  class=\"link\">_NamedTuple</a> initialized with \n  <b><code>positional</code></b> arguments.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>arg</code></strong> - Tuple items (<code>tuple</code>, <code>list</code>, ...) or first\n          tuple item of several more in other positional arguments.</li>\n        <li><strong class=\"pname\"><code>args</code></strong> - Tuple items (<code>any</code>), all positional arguments.</li>\n        <li><strong class=\"pname\"><code>iteration_name</code></strong> - Only keyword arguments <code><b>iteration</b>=None</code> and \n          <code><b>name</b>=NN</code> are used, any other are \n          <i>silently</i> ignored.</li>\n    </ul></dd>\n    <dt>Returns: a new object with type S, a subtype of T</dt>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.LenError-class.html\">LenError</a></strong></code> - Unequal number of positional arguments and number of item \n        <code>_Names_</code> or <code>_Units_</code>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - The <code>_Names_</code> or <code>_Units_</code> attribute is not a\n        <code>tuple</code> of at least 2 items.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Item name is not a <code>str</code> or valid \n        <code>identifier</code> or starts with <code>underscore</code>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__new__\n        <dd><em class=\"note\">(inherited documentation)</em></dd>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.deprecated.consterns-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.deprecated.consterns</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.deprecated-module.html\">Package&nbsp;deprecated</a> ::\n        Module&nbsp;consterns\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.deprecated.consterns-module.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== MODULE DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Module consterns</h1><p class=\"nomargin-top\"></p>\n<p>DEPRECATED constants, interns and singletons kept for backward \n  compatibility.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Version:</strong>\n        26.02.12\n      </p>\n</div><!-- ==================== CLASSES ==================== -->\n<a name=\"section-Classes\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Classes</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.deprecated.consterns.Elliperim-class.html\" class=\"summary-name\">Elliperim</a><br />\n      DEPRECATED on 2026.02.06, use class <a \n        href=\"pygeodesy.ellipses.Ellipse-class.html\" \n        class=\"link\">Ellipse</a>.\n    </td>\n  </tr>\n</table>\n<!-- ==================== VARIABLES ==================== -->\n<a name=\"section-Variables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Variables</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"__all__\"></a><span class=\"summary-name\">__all__</span> = <code title=\"_ALL_DEPRECATED.deprecated_consterns\">_ALL_DEPRECATED.deprecated_consterns</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"EPS1_2\"></a><span class=\"summary-name\">EPS1_2</span> = <code title=\"0.9999999999999999\">0.9999999999999999</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"MANTIS\"></a><span class=\"summary-name\">MANTIS</span> = <code title=\"53\">53</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"OK\"></a><span class=\"summary-name\">OK</span> = <code title=\"'OK'\">'OK'</code>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.deprecated.consterns.Elliperim-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.deprecated.consterns.Elliperim</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.deprecated-module.html\">Package&nbsp;deprecated</a> ::\n        <a href=\"pygeodesy.deprecated.consterns-module.html\" onclick=\"show_private();\">Module&nbsp;consterns</a> ::\n        Class&nbsp;Elliperim\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.deprecated.consterns.Elliperim-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Elliperim</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\nobject --+\n         |\n        <strong class=\"uidshort\">Elliperim</strong>\n</pre>\n\n<hr />\n<p>DEPRECATED on 2026.02.06, use class <a \n  href=\"pygeodesy.ellipses.Ellipse-class.html\" \n  class=\"link\">Ellipse</a>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"AGM\"></a><span class=\"summary-sig-name\">AGM</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">a</span>,\n        <span class=\"summary-sig-arg\">b</span>,\n        <span class=\"summary-sig-arg\">**unused</span>)</span><br />\n      DEPRECATED on 2026.02.12, use property <a \n      href=\"pygeodesy.ellipses.Ellipse-class.html\" \n      class=\"link\">Ellipse</a>{C(a, b).perimeterAGM}.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"Arc43\"></a><span class=\"summary-sig-name\">Arc43</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">a</span>,\n        <span class=\"summary-sig-arg\">b</span>)</span><br />\n      DEPRECATED on 2026.02.12, use property <a \n      href=\"pygeodesy.ellipses.Ellipse-class.html\" \n      class=\"link\">Ellipse</a>{C(a, b).perimeter4Arc3}.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"E2k\"></a><span class=\"summary-sig-name\">E2k</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">a</span>,\n        <span class=\"summary-sig-arg\">b</span>)</span><br />\n      DEPRECATED on 2026.02.12, use property <a \n      href=\"pygeodesy.ellipses.Ellipse-class.html\" \n      class=\"link\">Ellipse</a>{C(a, b).perimeter2k}.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"GK\"></a><span class=\"summary-sig-name\">GK</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">a</span>,\n        <span class=\"summary-sig-arg\">b</span>)</span><br />\n      DEPRECATED on 2026.02.12, use property <a \n      href=\"pygeodesy.ellipses.Ellipse-class.html\" \n      class=\"link\">Ellipse</a>{C(a, b).perimeterGK}.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"HG\"></a><span class=\"summary-sig-name\">HG</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">a</span>,\n        <span class=\"summary-sig-arg\">b</span>,\n        <span class=\"summary-sig-arg\">**unused</span>)</span><br />\n      DEPRECATED on 2026.02.12, use property <a \n      href=\"pygeodesy.ellipses.Ellipse-class.html\" \n      class=\"link\">Ellipse</a>{C(a, b).perimeterHGK}.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"R2\"></a><span class=\"summary-sig-name\">R2</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">a</span>,\n        <span class=\"summary-sig-arg\">b</span>)</span><br />\n      DEPRECATED on 2026.02.12, use property <a \n      href=\"pygeodesy.ellipses.Ellipse-class.html\" \n      class=\"link\">Ellipse</a>{C(a, b).perimeter2R}.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"e2k\"></a><span class=\"summary-sig-name\">e2k</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">a</span>,\n        <span class=\"summary-sig-arg\">b</span>,\n        <span class=\"summary-sig-arg\">**unused</span>)</span><br />\n      DEPRECATED on 2026.02.12, use property <a \n      href=\"pygeodesy.ellipses.Ellipse-class.html\" \n      class=\"link\">Ellipse</a>{C(a, b).perimeter2k_}.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__format__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__init__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__repr__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__str__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.deprecated.datum-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.deprecated.datum</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.deprecated-module.html\">Package&nbsp;deprecated</a> ::\n        Module&nbsp;datum\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.deprecated.datum-module.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== MODULE DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Module datum</h1><p class=\"nomargin-top\"></p>\n<p>DEPRECATED on 2022.09.12, use module <a \n  href=\"pygeodesy.datums-module.html\" class=\"link\">pygeodesy.datums</a> or \n  <a href=\"pygeodesy.ellipsoids-module.html\" \n  class=\"link\">pygeodesy.ellipsoids</a> instead.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Version:</strong>\n        24.12.31\n      </p>\n</div><!-- ==================== CLASSES ==================== -->\n<a name=\"section-Classes\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Classes</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.datums.Datum-class.html\" class=\"summary-name\">Datum</a><br />\n      Ellipsoid and transform parameters for an earth model.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.datums.Transform-class.html\" class=\"summary-name\">Transform</a><br />\n      Helmert <i>datum</i> transformation.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" class=\"summary-name\">Ellipsoid</a><br />\n      Ellipsoid with <i>equatorial</i> and <i>polar</i> radii, \n        <i>flattening</i>, <i>inverse flattening</i> and other, often used,\n        <i>cached</i> attributes, supporting <i>oblate</i> and \n        <i>prolate</i> ellipsoidal and <i>spherical</i> earth models.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoids.Curvature2Tuple-class.html\" class=\"summary-name\">Curvature2Tuple</a><br />\n      2-Tuple <code>(meridional, prime_vertical)</code> of radii of \n        curvature, both in <code>meter</code>, conventionally.\n    </td>\n  </tr>\n</table>\n<!-- ==================== VARIABLES ==================== -->\n<a name=\"section-Variables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Variables</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"R_FM\"></a><span class=\"summary-name\">R_FM</span> = <code title=\"6371000.0\">6371000.0</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"R_KM\"></a><span class=\"summary-name\">R_KM</span> = <code title=\"6371.0087714149995\">6371.0087714149995</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"R_M\"></a><span class=\"summary-name\">R_M</span> = <code title=\"6371008.771415\">6371008.771415</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"R_MA\"></a><span class=\"summary-name\">R_MA</span> = <code title=\"6378137.0\">6378137.0</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"R_MB\"></a><span class=\"summary-name\">R_MB</span> = <code title=\"6356752.3\">6356752.3</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"R_NM\"></a><span class=\"summary-name\">R_NM</span> = <code title=\"3440.06953100162\">3440.06953100162</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"R_SM\"></a><span class=\"summary-name\">R_SM</span> = <code title=\"3958.7613160486508\">3958.7613160486508</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"R_VM\"></a><span class=\"summary-name\">R_VM</span> = <code title=\"6366707.0194937\">6366707.0194937</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.deprecated.datum-module.html#Datums\" class=\"summary-name\">Datums</a> = <code title=\"Datums.Sphere: Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, trans\\\nform=Transforms.WGS84),\nDatums.NAD83: Datum(name='NAD83', ellipsoid=Ellipsoids.GRS80, transfor\\\nm=Transforms.NAD83),\nDatums.OSGB36: Datum(name='OSGB36', ellipsoid=Ellipsoids.Airy1830, tra\\\nnsform=Transforms.OSGB36),\nDatums.WGS84: Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transfor\\\nm=Transforms.WGS84),\n...\">Datums.Sphere: Datum(name='Sphere', ellipsoid=Ellipso<code class=\"variable-ellipsis\">...</code></code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.deprecated.datum-module.html#Transforms\" class=\"summary-name\">Transforms</a> = <code title=\"Transforms.OSGB36: Transform(name='OSGB36', tx=-446.45, ty=125.16, tz=\\\n-542.06, s1=1.0, rx=-7.2819e-07, ry=-1.1975e-06, rz=-4.0826e-06, s=20.\\\n489, sx=-0.1502, sy=-0.247, sz=-0.8421),\nTransforms.NAD83: Transform(name='NAD83', tx=1.004, ty=-1.91, tz=-0.51\\\n5, s1=1.0, rx=1.2945e-07, ry=1.6484e-09, rz=5.333e-08, s=-0.0015, sx=0\\\n.0267, sy=0.00034, sz=0.011),\nTransforms.WGS84: Transform(name='WGS84', tx=0.0, ty=0.0, tz=0.0, s1=1\\\n.0, rx=0.0, ry=0.0, rz=0.0, s=0.0, sx=0.0, sy=0.0, sz=0.0),\n...\">Transforms.OSGB36: Transform(name='OSGB36', tx=-4<code class=\"variable-ellipsis\">...</code></code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.deprecated.datum-module.html#Ellipsoids\" class=\"summary-name\">Ellipsoids</a> = <code title=\"Ellipsoids.Sphere: Ellipsoid(name='Sphere', a=6371008.771415, f=0, f_=\\\n0, b=6371008.771415),\nEllipsoids.GRS80: Ellipsoid(name='GRS80', a=6378137, f=0.00335281, f_=\\\n298.2572221, b=6356752.31414035),\nEllipsoids.WGS84: Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=\\\n298.25722356, b=6356752.31424518),\nEllipsoids.Airy1830: Ellipsoid(name='Airy1830', a=6377563.396, f=0.003\\\n34085, f_=299.3249646, b=6356256.90923729)\">Ellipsoids.Sphere: Ellipsoid(name='Sphere', a=637<code class=\"variable-ellipsis\">...</code></code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"__all__\"></a><span class=\"summary-name\">__all__</span> = <code title=\"_ALL_DEPRECATED.deprecated_datum\">_ALL_DEPRECATED.deprecated_datum</code>\n    </td>\n  </tr>\n</table>\n<!-- ==================== VARIABLES DETAILS ==================== -->\n<a name=\"section-VariablesDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Variables Details</span></td>\n</tr>\n</table>\n<a name=\"Datums\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">Datums</h3>\n  \n  <dl class=\"fields\">\n  </dl>\n  <dl class=\"fields\">\n    <dt>Value:</dt>\n      <dd><table><tr><td><pre class=\"variable\">\nDatums.Sphere: Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, trans<span class=\"variable-linewrap\"><img src=\"crarr.png\" alt=\"\\\" /></span>\nform=Transforms.WGS84),\nDatums.NAD83: Datum(name='NAD83', ellipsoid=Ellipsoids.GRS80, transfor<span class=\"variable-linewrap\"><img src=\"crarr.png\" alt=\"\\\" /></span>\nm=Transforms.NAD83),\nDatums.OSGB36: Datum(name='OSGB36', ellipsoid=Ellipsoids.Airy1830, tra<span class=\"variable-linewrap\"><img src=\"crarr.png\" alt=\"\\\" /></span>\nnsform=Transforms.OSGB36),\nDatums.WGS84: Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transfor<span class=\"variable-linewrap\"><img src=\"crarr.png\" alt=\"\\\" /></span>\nm=Transforms.WGS84),\n<code class=\"variable-ellipsis\">...</code>\n</pre></td></tr></table>\n</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"Transforms\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">Transforms</h3>\n  \n  <dl class=\"fields\">\n  </dl>\n  <dl class=\"fields\">\n    <dt>Value:</dt>\n      <dd><table><tr><td><pre class=\"variable\">\nTransforms.OSGB36: Transform(name='OSGB36', tx=-446.45, ty=125.16, tz=<span class=\"variable-linewrap\"><img src=\"crarr.png\" alt=\"\\\" /></span>\n-542.06, s1=1.0, rx=-7.2819e-07, ry=-1.1975e-06, rz=-4.0826e-06, s=20.<span class=\"variable-linewrap\"><img src=\"crarr.png\" alt=\"\\\" /></span>\n489, sx=-0.1502, sy=-0.247, sz=-0.8421),\nTransforms.NAD83: Transform(name='NAD83', tx=1.004, ty=-1.91, tz=-0.51<span class=\"variable-linewrap\"><img src=\"crarr.png\" alt=\"\\\" /></span>\n5, s1=1.0, rx=1.2945e-07, ry=1.6484e-09, rz=5.333e-08, s=-0.0015, sx=0<span class=\"variable-linewrap\"><img src=\"crarr.png\" alt=\"\\\" /></span>\n.0267, sy=0.00034, sz=0.011),\nTransforms.WGS84: Transform(name='WGS84', tx=0.0, ty=0.0, tz=0.0, s1=1<span class=\"variable-linewrap\"><img src=\"crarr.png\" alt=\"\\\" /></span>\n.0, rx=0.0, ry=0.0, rz=0.0, s=0.0, sx=0.0, sy=0.0, sz=0.0),\n<code class=\"variable-ellipsis\">...</code>\n</pre></td></tr></table>\n</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"Ellipsoids\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">Ellipsoids</h3>\n  \n  <dl class=\"fields\">\n  </dl>\n  <dl class=\"fields\">\n    <dt>Value:</dt>\n      <dd><table><tr><td><pre class=\"variable\">\nEllipsoids.Sphere: Ellipsoid(name='Sphere', a=6371008.771415, f=0, f_=<span class=\"variable-linewrap\"><img src=\"crarr.png\" alt=\"\\\" /></span>\n0, b=6371008.771415),\nEllipsoids.GRS80: Ellipsoid(name='GRS80', a=6378137, f=0.00335281, f_=<span class=\"variable-linewrap\"><img src=\"crarr.png\" alt=\"\\\" /></span>\n298.2572221, b=6356752.31414035),\nEllipsoids.WGS84: Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=<span class=\"variable-linewrap\"><img src=\"crarr.png\" alt=\"\\\" /></span>\n298.25722356, b=6356752.31424518),\nEllipsoids.Airy1830: Ellipsoid(name='Airy1830', a=6377563.396, f=0.003<span class=\"variable-linewrap\"><img src=\"crarr.png\" alt=\"\\\" /></span>\n34085, f_=299.3249646, b=6356256.90923729)\n</pre></td></tr></table>\n</dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.deprecated.functions-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.deprecated.functions</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.deprecated-module.html\">Package&nbsp;deprecated</a> ::\n        Module&nbsp;functions\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.deprecated.functions-module.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== MODULE DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Module functions</h1><p class=\"nomargin-top\"></p>\n<p>DEPRECATED functions kept for backward compatibility.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Version:</strong>\n        26.02.12\n      </p>\n</div><!-- ==================== FUNCTIONS ==================== -->\n<a name=\"section-Functions\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Functions</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.deprecated.functions-module.html#anStr\" class=\"summary-sig-name\">anStr</a>(<span class=\"summary-sig-arg\">name</span>,\n        <span class=\"summary-sig-arg\">OKd</span>=<span class=\"summary-sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">._-</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"summary-sig-arg\">sub</span>=<span class=\"summary-sig-default\">'_'</span>)</span><br />\n      DEPRECATED, use function <a \n      href=\"pygeodesy.streprs-module.html#anstr\" \n      class=\"link\">pygeodesy.anstr</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.deprecated.functions-module.html#areaof\" class=\"summary-sig-name\">areaof</a>(<span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">adjust</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">radius</span>=<span class=\"summary-sig-default\">6371008.771415</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">True</span>)</span><br />\n      DEPRECATED, use function <a \n      href=\"pygeodesy.points-module.html#areaOf\" \n      class=\"link\">pygeodesy.areaOf</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.deprecated.functions-module.html#atand\" class=\"summary-sig-name\">atand</a>(<span class=\"summary-sig-arg\">x</span>)</span><br />\n      DEPRECATED on 2023.09.28, use function <a \n      href=\"pygeodesy.utily-module.html#atan1d\" \n      class=\"link\">pygeodesy.atan1d</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.deprecated.functions-module.html#bounds\" class=\"summary-sig-name\">bounds</a>(<span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">LatLon</span>=<span class=\"summary-sig-default\">None</span>)</span><br />\n      DEPRECATED, use function <a \n      href=\"pygeodesy.points-module.html#boundsOf\" \n      class=\"link\">pygeodesy.boundsOf</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.deprecated.functions-module.html#clipCS3\" class=\"summary-sig-name\">clipCS3</a>(<span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">lowerleft</span>,\n        <span class=\"summary-sig-arg\">upperright</span>,\n        <span class=\"summary-sig-arg\">closed</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">inull</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      DEPRECATED, use function <a \n      href=\"pygeodesy.clipy-module.html#clipCS4\" \n      class=\"link\">pygeodesy.clipCS4</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.deprecated.functions-module.html#clipDMS\" class=\"summary-sig-name\">clipDMS</a>(<span class=\"summary-sig-arg\">deg</span>,\n        <span class=\"summary-sig-arg\">limit</span>)</span><br />\n      DEPRECATED, use function <a \n      href=\"pygeodesy.dms-module.html#clipDegrees\" \n      class=\"link\">pygeodesy.clipDegrees</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.deprecated.functions-module.html#clipStr\" class=\"summary-sig-name\">clipStr</a>(<span class=\"summary-sig-arg\">bstr</span>,\n        <span class=\"summary-sig-arg\">limit</span>=<span class=\"summary-sig-default\">50</span>,\n        <span class=\"summary-sig-arg\">white</span>=<span class=\"summary-sig-default\">''</span>)</span><br />\n      DEPRECATED, use function <a href=\"pygeodesy.basics-module.html#clips\"\n      class=\"link\">pygeodesy.clips</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.deprecated.functions-module.html#collins\" class=\"summary-sig-name\">collins</a>(<span class=\"summary-sig-arg\">pointA</span>,\n        <span class=\"summary-sig-arg\">pointB</span>,\n        <span class=\"summary-sig-arg\">pointC</span>,\n        <span class=\"summary-sig-arg\">alpha</span>,\n        <span class=\"summary-sig-arg\">beta</span>,\n        <span class=\"summary-sig-arg\">**useZ_Clas_and_kwds</span>)</span><br />\n      DEPRECATED, use function <a \n      href=\"pygeodesy.resections-module.html#collins5\" \n      class=\"link\">pygeodesy.collins5</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.deprecated.functions-module.html#copysign\" class=\"summary-sig-name\">copysign</a>(<span class=\"summary-sig-arg\">x</span>,\n        <span class=\"summary-sig-arg\">y</span>)</span><br />\n      DEPRECATED, use function <a \n      href=\"pygeodesy.basics-module.html#copysign0\" \n      class=\"link\">pygeodesy.copysign0</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.deprecated.functions-module.html#cosineAndoyerLambert\" class=\"summary-sig-name\">cosineAndoyerLambert</a>(<span class=\"summary-sig-arg\">lat1</span>,\n        <span class=\"summary-sig-arg\">lon1</span>,\n        <span class=\"summary-sig-arg\">lat2</span>,\n        <span class=\"summary-sig-arg\">lon2</span>,\n        <span class=\"summary-sig-arg\">**datum_wrap</span>)</span><br />\n      DEPRECATED on 2024.12.31, use function <a \n      href=\"pygeodesy.formy-module.html#cosineLaw\" \n      class=\"link\">pygeodesy.cosineLaw</a> with <code><b>corr</b>=1</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.deprecated.functions-module.html#cosineAndoyerLambert_\" class=\"summary-sig-name\">cosineAndoyerLambert_</a>(<span class=\"summary-sig-arg\">phi2</span>,\n        <span class=\"summary-sig-arg\">phi1</span>,\n        <span class=\"summary-sig-arg\">lam21</span>,\n        <span class=\"summary-sig-arg\">**datum</span>)</span><br />\n      DEPRECATED on 2024.12.31, use function <a \n      href=\"pygeodesy.formy-module.html#cosineLaw_\" \n      class=\"link\">pygeodesy.cosineLaw_</a> with \n      <code><b>corr</b>=1</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.deprecated.functions-module.html#cosineForsytheAndoyerLambert\" class=\"summary-sig-name\">cosineForsytheAndoyerLambert</a>(<span class=\"summary-sig-arg\">lat1</span>,\n        <span class=\"summary-sig-arg\">lon1</span>,\n        <span class=\"summary-sig-arg\">lat2</span>,\n        <span class=\"summary-sig-arg\">lon2</span>,\n        <span class=\"summary-sig-arg\">**datum_wrap</span>)</span><br />\n      DEPRECATED on 2024.12.31, use function <a \n      href=\"pygeodesy.formy-module.html#cosineLaw\" \n      class=\"link\">pygeodesy.cosineLaw</a> with <code><b>corr</b>=2</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.deprecated.functions-module.html#cosineForsytheAndoyerLambert_\" class=\"summary-sig-name\">cosineForsytheAndoyerLambert_</a>(<span class=\"summary-sig-arg\">phi2</span>,\n        <span class=\"summary-sig-arg\">phi1</span>,\n        <span class=\"summary-sig-arg\">lam21</span>,\n        <span class=\"summary-sig-arg\">**datum</span>)</span><br />\n      DEPRECATED on 2024.12.31, use function <a \n      href=\"pygeodesy.formy-module.html#cosineLaw_\" \n      class=\"link\">pygeodesy.cosineLaw_</a> with \n      <code><b>corr</b>=2</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.deprecated.functions-module.html#decodeEPSG2\" class=\"summary-sig-name\">decodeEPSG2</a>(<span class=\"summary-sig-arg\">arg</span>)</span><br />\n      DEPRECATED, use function <a href=\"pygeodesy.epsg-module.html#decode2\"\n      class=\"link\">epsg.decode2</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.deprecated.functions-module.html#elliperim\" class=\"summary-sig-name\">elliperim</a>(<span class=\"summary-sig-arg\">a</span>,\n        <span class=\"summary-sig-arg\">b</span>,\n        <span class=\"summary-sig-arg\">*deg2_1</span>)</span><br />\n      DEPRECATED on 2026.02.12, use method <a \n      href=\"pygeodesy.ellipses.Ellipse-class.html#arc\" \n      class=\"link\">pygeodesy.Ellipse.arc</a> or property <a \n      href=\"pygeodesy.ellipses.Ellipse-class.html#perimeter2k_\" \n      class=\"link\">pygeodesy.Ellipse.perimeter2k_</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.deprecated.functions-module.html#elliperim_\" class=\"summary-sig-name\">elliperim_</a>(<span class=\"summary-sig-arg\">a</span>,\n        <span class=\"summary-sig-arg\">b</span>,\n        <span class=\"summary-sig-arg\">*rad2_1</span>)</span><br />\n      DEPRECATED on 2026.02.12, use method <a \n      href=\"pygeodesy.ellipses.Ellipse-class.html#arc_\" \n      class=\"link\">pygeodesy.Ellipse.arc_</a> or property <a \n      href=\"pygeodesy.ellipses.Ellipse-class.html#perimeter2k_\" \n      class=\"link\">pygeodesy.Ellipse.perimeter2k_</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.deprecated.functions-module.html#encodeEPSG\" class=\"summary-sig-name\">encodeEPSG</a>(<span class=\"summary-sig-arg\">zone</span>,\n        <span class=\"summary-sig-arg\">hemipole</span>=<span class=\"summary-sig-default\">''</span>,\n        <span class=\"summary-sig-arg\">band</span>=<span class=\"summary-sig-default\">''</span>)</span><br />\n      DEPRECATED, use function <a href=\"pygeodesy.epsg-module.html#encode\" \n      class=\"link\">epsg.encode</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.deprecated.functions-module.html#enStr2\" class=\"summary-sig-name\">enStr2</a>(<span class=\"summary-sig-arg\">easting</span>,\n        <span class=\"summary-sig-arg\">northing</span>,\n        <span class=\"summary-sig-arg\">prec</span>,\n        <span class=\"summary-sig-arg\">*extras</span>)</span><br />\n      DEPRECATED, use function <a \n      href=\"pygeodesy.streprs-module.html#enstr2\" \n      class=\"link\">pygeodesy.enstr2</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.deprecated.functions-module.html#equirectangular_\" class=\"summary-sig-name\">equirectangular_</a>(<span class=\"summary-sig-arg\">lat1</span>,\n        <span class=\"summary-sig-arg\">lon1</span>,\n        <span class=\"summary-sig-arg\">lat2</span>,\n        <span class=\"summary-sig-arg\">lon2</span>,\n        <span class=\"summary-sig-arg\">**options</span>)</span><br />\n      DEPRECATED on 2024.05.25, use function <a \n      href=\"pygeodesy.geohash-module.html#equirectangular4\" \n      class=\"link\">pygeodesy.equirectangular4</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.deprecated.functions-module.html#equirectangular3\" class=\"summary-sig-name\">equirectangular3</a>(<span class=\"summary-sig-arg\">lat1</span>,\n        <span class=\"summary-sig-arg\">lon1</span>,\n        <span class=\"summary-sig-arg\">lat2</span>,\n        <span class=\"summary-sig-arg\">lon2</span>,\n        <span class=\"summary-sig-arg\">**options</span>)</span><br />\n      DEPRECATED, use function <a \n      href=\"pygeodesy.geohash-module.html#equirectangular4\" \n      class=\"link\">pygeodesy.equirectangular4</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.deprecated.functions-module.html#excessAbc\" class=\"summary-sig-name\">excessAbc</a>(<span class=\"summary-sig-arg\">A</span>,\n        <span class=\"summary-sig-arg\">b</span>,\n        <span class=\"summary-sig-arg\">c</span>)</span><br />\n      DEPRECATED on 2023.04.04, use function <a \n      href=\"pygeodesy.formy-module.html#excessAbc_\" \n      class=\"link\">pygeodesy.excessAbc_</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.deprecated.functions-module.html#excessGirard\" class=\"summary-sig-name\">excessGirard</a>(<span class=\"summary-sig-arg\">A</span>,\n        <span class=\"summary-sig-arg\">B</span>,\n        <span class=\"summary-sig-arg\">C</span>)</span><br />\n      DEPRECATED on 2023.04.04, use function <a \n      href=\"pygeodesy.formy-module.html#excessGirard_\" \n      class=\"link\">pygeodesy.excessGirard_</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.deprecated.functions-module.html#excessLHuilier\" class=\"summary-sig-name\">excessLHuilier</a>(<span class=\"summary-sig-arg\">a</span>,\n        <span class=\"summary-sig-arg\">b</span>,\n        <span class=\"summary-sig-arg\">c</span>)</span><br />\n      DEPRECATED on 2023.04.04, use function <a \n      href=\"pygeodesy.formy-module.html#excessLHuilier_\" \n      class=\"link\">pygeodesy.excessLHuilier_</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.deprecated.functions-module.html#false2f\" class=\"summary-sig-name\">false2f</a>(<span class=\"summary-sig-arg\">value</span>,\n        <span class=\"summary-sig-arg\">name</span>=<span class=\"summary-sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">value</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"summary-sig-arg\">false</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">Error</span>=<span class=\"summary-sig-default\">&lt;type 'exceptions.ValueError'&gt;</span>)</span><br />\n      DEPRECATED, use class <a href=\"pygeodesy.units.Easting-class.html\" \n      class=\"link\">Easting</a> or <a \n      href=\"pygeodesy.units.Northing-class.html\" class=\"link\">Northing</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.deprecated.functions-module.html#falsed2f\" class=\"summary-sig-name\">falsed2f</a>(<span class=\"summary-sig-arg\">falsed</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">Error</span>=<span class=\"summary-sig-default\">&lt;type 'exceptions.ValueError'&gt;</span>,\n        <span class=\"summary-sig-arg\">**name_value</span>)</span><br />\n      DEPRECATED, use class <a href=\"pygeodesy.units.Easting-class.html\" \n      class=\"link\">Easting</a> or <a \n      href=\"pygeodesy.units.Northing-class.html\" class=\"link\">Northing</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.deprecated.functions-module.html#float0\" class=\"summary-sig-name\">float0</a>(<span class=\"summary-sig-arg\">*xs</span>)</span><br />\n      DEPRECATED on 2023.04.21, use function <a \n      href=\"pygeodesy.constants-module.html#float0_\" \n      class=\"link\">pygeodesy.float0_</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.deprecated.functions-module.html#fStr\" class=\"summary-sig-name\">fStr</a>(<span class=\"summary-sig-arg\">floats</span>,\n        <span class=\"summary-sig-arg\">prec</span>=<span class=\"summary-sig-default\">6</span>,\n        <span class=\"summary-sig-arg\">fmt</span>=<span class=\"summary-sig-default\">'f'</span>,\n        <span class=\"summary-sig-arg\">ints</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">sep</span>=<span class=\"summary-sig-default\">', '</span>)</span><br />\n      DEPRECATED, use function <a href=\"pygeodesy.streprs-module.html#fstr\"\n      class=\"link\">fstr</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.deprecated.functions-module.html#fStrzs\" class=\"summary-sig-name\">fStrzs</a>(<span class=\"summary-sig-arg\">floatstr</span>)</span><br />\n      DEPRECATED, use function <a \n      href=\"pygeodesy.streprs-module.html#fstrzs\" \n      class=\"link\">pygeodesy.fstrzs</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.deprecated.functions-module.html#Fsum2product\" class=\"summary-sig-name\">Fsum2product</a>(<span class=\"summary-sig-arg\">*xs</span>,\n        <span class=\"summary-sig-arg\">**kwds</span>)</span><br />\n      DEPRECATED on 2024.09.19, use <a \n      href=\"pygeodesy.fsums.Fsum-class.html\" \n      class=\"link\">Fsum</a><code>(*<b>xs</b>, <b>f2product</b>=True, \n      ...)</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.deprecated.functions-module.html#hypot3\" class=\"summary-sig-name\">hypot3</a>(<span class=\"summary-sig-arg\">x</span>,\n        <span class=\"summary-sig-arg\">y</span>,\n        <span class=\"summary-sig-arg\">z</span>)</span><br />\n      DEPRECATED, use function <a href=\"pygeodesy.fmath-module.html#hypot_\"\n      class=\"link\">pygeodesy.hypot_</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.deprecated.functions-module.html#inStr\" class=\"summary-sig-name\">inStr</a>(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">*args</span>,\n        <span class=\"summary-sig-arg\">**kwds</span>)</span><br />\n      DEPRECATED, use function <a \n      href=\"pygeodesy.streprs-module.html#instr\" \n      class=\"link\">pygeodesy.instr</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.deprecated.functions-module.html#isenclosedby\" class=\"summary-sig-name\">isenclosedby</a>(<span class=\"summary-sig-arg\">point</span>,\n        <span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      DEPRECATED, use function <a \n      href=\"pygeodesy.points-module.html#isenclosedBy\" \n      class=\"link\">pygeodesy.isenclosedBy</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.deprecated.functions-module.html#istuplist\" class=\"summary-sig-name\">istuplist</a>(<span class=\"summary-sig-arg\">obj</span>,\n        <span class=\"summary-sig-arg\">minum</span>=<span class=\"summary-sig-default\">0</span>)</span><br />\n      DEPRECATED on 2023.03.31, use function <a \n      href=\"pygeodesy.basics-module.html#islistuple\" \n      class=\"link\">pygeodesy.islistuple</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.deprecated.functions-module.html#joined\" class=\"summary-sig-name\">joined</a>(<span class=\"summary-sig-arg\">*words</span>,\n        <span class=\"summary-sig-arg\">**sep</span>)</span><br />\n      DEPRECATED, use <code>NN(...)</code>, <code>NN.join_</code> or \n      <code><b>sep</b>.join</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.deprecated.functions-module.html#joined_\" class=\"summary-sig-name\">joined_</a>(<span class=\"summary-sig-arg\">*words</span>,\n        <span class=\"summary-sig-arg\">**sep</span>)</span><br />\n      DEPRECATED, use <code>_SPACE_(...)</code>, <code>_SPACE_.join_</code>\n      or <code><b>sep</b>.join</code>, sep=&quot; &quot;.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.deprecated.functions-module.html#nearestOn3\" class=\"summary-sig-name\">nearestOn3</a>(<span class=\"summary-sig-arg\">point</span>,\n        <span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">closed</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">**options</span>)</span><br />\n      DEPRECATED, use function <a \n      href=\"pygeodesy.points-module.html#nearestOn5\" \n      class=\"link\">pygeodesy.nearestOn5</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.deprecated.functions-module.html#nearestOn4\" class=\"summary-sig-name\">nearestOn4</a>(<span class=\"summary-sig-arg\">point</span>,\n        <span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">closed</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">**options</span>)</span><br />\n      DEPRECATED, use function <a \n      href=\"pygeodesy.points-module.html#nearestOn5\" \n      class=\"link\">pygeodesy.nearestOn5</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.deprecated.functions-module.html#parseUTM\" class=\"summary-sig-name\">parseUTM</a>(<span class=\"summary-sig-arg\">strUTM</span>,\n        <span class=\"summary-sig-arg\">datum</span>=<span class=\"summary-sig-default\">_UTM</span>,\n        <span class=\"summary-sig-arg\">Utm</span>=<span class=\"summary-sig-default\">_UTM</span>,\n        <span class=\"summary-sig-arg\">name</span>=<span class=\"summary-sig-default\">''</span>)</span><br />\n      DEPRECATED, use function <a \n      href=\"pygeodesy.utm-module.html#parseUTM5\" \n      class=\"link\">parseUTM5</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.deprecated.functions-module.html#perimeterof\" class=\"summary-sig-name\">perimeterof</a>(<span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">closed</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">adjust</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">radius</span>=<span class=\"summary-sig-default\">6371008.771415</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">True</span>)</span><br />\n      DEPRECATED, use function <a \n      href=\"pygeodesy.points-module.html#perimeterOf\" \n      class=\"link\">pygeodesy.perimeterOf</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.deprecated.functions-module.html#polygon\" class=\"summary-sig-name\">polygon</a>(<span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">closed</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">base</span>=<span class=\"summary-sig-default\">None</span>)</span><br />\n      DEPRECATED, use function <a \n      href=\"pygeodesy.iters-module.html#points2\" \n      class=\"link\">pygeodesy.points2</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.deprecated.functions-module.html#scalar\" class=\"summary-sig-name\">scalar</a>(<span class=\"summary-sig-arg\">value</span>,\n        <span class=\"summary-sig-arg\">low</span>=<span class=\"summary-sig-default\">2.220446049250313e-16</span>,\n        <span class=\"summary-sig-arg\">high</span>=<span class=\"summary-sig-default\">1.0</span>,\n        <span class=\"summary-sig-arg\">name</span>=<span class=\"summary-sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">scalar</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"summary-sig-arg\">Error</span>=<span class=\"summary-sig-default\">&lt;type 'exceptions.ValueError'&gt;</span>)</span><br />\n      DEPRECATED, use class <a href=\"pygeodesy.units.Number_-class.html\" \n      class=\"link\">Number_</a> or <a \n      href=\"pygeodesy.units.Scalar_-class.html\" class=\"link\">Scalar_</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.deprecated.functions-module.html#simplify2\" class=\"summary-sig-name\">simplify2</a>(<span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">pipe</span>=<span class=\"summary-sig-default\">0.001</span>,\n        <span class=\"summary-sig-arg\">**radius_shortest_indices_options</span>)</span><br />\n      DEPRECATED, use function <a \n      href=\"pygeodesy.simplify-module.html#simplifyRW\" \n      class=\"link\">pygeodesy.simplifyRW</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.deprecated.functions-module.html#simplifyRDPm\" class=\"summary-sig-name\">simplifyRDPm</a>(<span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">distance</span>=<span class=\"summary-sig-default\">0.001</span>,\n        <span class=\"summary-sig-arg\">**radius_shortest_indices_options</span>)</span><br />\n      DEPRECATED on 2024.11.28, use function <a \n      href=\"pygeodesy.simplify-module.html#simplifyRDP\" \n      class=\"link\">pygeodesy.simplifyRDP</a><code>(points, modified=True, \n      ...)</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.deprecated.functions-module.html#simplifyVWm\" class=\"summary-sig-name\">simplifyVWm</a>(<span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">area</span>=<span class=\"summary-sig-default\">0.001</span>,\n        <span class=\"summary-sig-arg\">**radius_attr_indices_options</span>)</span><br />\n      DEPRECATED on 2024.11.28, use function <a \n      href=\"pygeodesy.simplify-module.html#simplifyVW\" \n      class=\"link\">pygeodesy.simplifyVW</a><code>(points, modified=True, \n      ...)</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.deprecated.functions-module.html#tienstra\" class=\"summary-sig-name\">tienstra</a>(<span class=\"summary-sig-arg\">pointA</span>,\n        <span class=\"summary-sig-arg\">pointB</span>,\n        <span class=\"summary-sig-arg\">pointC</span>,\n        <span class=\"summary-sig-arg\">alpha</span>,\n        <span class=\"summary-sig-arg\">**beta_gamma_useZ_Clas_and_kwds</span>)</span><br />\n      DEPRECATED, use function <a \n      href=\"pygeodesy.resections-module.html#tienstra7\" \n      class=\"link\">pygeodesy.tienstra7</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.deprecated.functions-module.html#toUtm\" class=\"summary-sig-name\">toUtm</a>(<span class=\"summary-sig-arg\">latlon</span>,\n        <span class=\"summary-sig-arg\">lon</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">datum</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">Utm</span>=<span class=\"summary-sig-default\">_UTM</span>,\n        <span class=\"summary-sig-arg\">cmoff</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">name</span>=<span class=\"summary-sig-default\">''</span>)</span><br />\n      DEPRECATED, use function <a href=\"pygeodesy.utm-module.html#toUtm8\" \n      class=\"link\">pygeodesy.toUtm8</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.deprecated.functions-module.html#triAngle4\" class=\"summary-sig-name\">triAngle4</a>(<span class=\"summary-sig-arg\">a</span>,\n        <span class=\"summary-sig-arg\">b</span>,\n        <span class=\"summary-sig-arg\">c</span>)</span><br />\n      DEPRECATED on 2023.09.14, use function <a \n      href=\"pygeodesy.resections-module.html#triAngle5\" \n      class=\"link\">pygeodesy.triAngle5</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.deprecated.functions-module.html#unsign0\" class=\"summary-sig-name\">unsign0</a>(<span class=\"summary-sig-arg\">x</span>)</span><br />\n      DEPRECATED, use function <a \n      href=\"pygeodesy.basics-module.html#unsigned0\" \n      class=\"link\">pygeodesy.unsigned0</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.deprecated.functions-module.html#unStr\" class=\"summary-sig-name\">unStr</a>(<span class=\"summary-sig-arg\">name</span>,\n        <span class=\"summary-sig-arg\">*args</span>,\n        <span class=\"summary-sig-arg\">**kwds</span>)</span><br />\n      DEPRECATED, use function <a \n      href=\"pygeodesy.streprs-module.html#unstr\" \n      class=\"link\">pygeodesy.unstr</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.deprecated.functions-module.html#utmZoneBand2\" class=\"summary-sig-name\">utmZoneBand2</a>(<span class=\"summary-sig-arg\">lat</span>,\n        <span class=\"summary-sig-arg\">lon</span>)</span><br />\n      DEPRECATED, use function <a \n      href=\"pygeodesy.utm-module.html#utmZoneBand5\" \n      class=\"link\">pygeodesy.utmZoneBand5</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== VARIABLES ==================== -->\n<a name=\"section-Variables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Variables</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"__all__\"></a><span class=\"summary-name\">__all__</span> = <code title=\"_ALL_DEPRECATED.deprecated_functions\">_ALL_DEPRECATED.deprecated_functions</code>\n    </td>\n  </tr>\n</table>\n<!-- ==================== FUNCTION DETAILS ==================== -->\n<a name=\"section-FunctionDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Function Details</span></td>\n</tr>\n</table>\n<a name=\"anStr\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">anStr</span>&nbsp;(<span class=\"sig-arg\">name</span>,\n        <span class=\"sig-arg\">OKd</span>=<span class=\"sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">._-</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"sig-arg\">sub</span>=<span class=\"sig-default\">'_'</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use function <a href=\"pygeodesy.streprs-module.html#anstr\"\n  class=\"link\">pygeodesy.anstr</a>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"areaof\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">areaof</span>&nbsp;(<span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">adjust</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">radius</span>=<span class=\"sig-default\">6371008.771415</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">True</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use function <a href=\"pygeodesy.points-module.html#areaOf\"\n  class=\"link\">pygeodesy.areaOf</a>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"atand\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">atand</span>&nbsp;(<span class=\"sig-arg\">x</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED on 2023.09.28, use function <a \n  href=\"pygeodesy.utily-module.html#atan1d\" \n  class=\"link\">pygeodesy.atan1d</a>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"bounds\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">bounds</span>&nbsp;(<span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">LatLon</span>=<span class=\"sig-default\">None</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use function <a \n  href=\"pygeodesy.points-module.html#boundsOf\" \n  class=\"link\">pygeodesy.boundsOf</a>.</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd>2-Tuple <code>(latlonSW, latlonNE)</code>, each a \n          <b><code>LatLon</code></b> or 4-Tuple <code>(latS, lonW, latN, \n          lonE)</code> if <code><b>LatLon</b> is None</code>.</dd>\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"clipCS3\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">clipCS3</span>&nbsp;(<span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">lowerleft</span>,\n        <span class=\"sig-arg\">upperright</span>,\n        <span class=\"sig-arg\">closed</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">inull</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use function <a href=\"pygeodesy.clipy-module.html#clipCS4\"\n  class=\"link\">pygeodesy.clipCS4</a>.</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd>Yield a <a \n          href=\"pygeodesy.deprecated.classes.ClipCS3Tuple-class.html\" \n          class=\"link\">ClipCS3Tuple</a><code>(start, end, index)</code> for\n          each edge of the <i>clipped</i> path.</dd>\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"clipDMS\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">clipDMS</span>&nbsp;(<span class=\"sig-arg\">deg</span>,\n        <span class=\"sig-arg\">limit</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use function <a \n  href=\"pygeodesy.dms-module.html#clipDegrees\" \n  class=\"link\">pygeodesy.clipDegrees</a>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"clipStr\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">clipStr</span>&nbsp;(<span class=\"sig-arg\">bstr</span>,\n        <span class=\"sig-arg\">limit</span>=<span class=\"sig-default\">50</span>,\n        <span class=\"sig-arg\">white</span>=<span class=\"sig-default\">''</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use function <a href=\"pygeodesy.basics-module.html#clips\" \n  class=\"link\">pygeodesy.clips</a>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"collins\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">collins</span>&nbsp;(<span class=\"sig-arg\">pointA</span>,\n        <span class=\"sig-arg\">pointB</span>,\n        <span class=\"sig-arg\">pointC</span>,\n        <span class=\"sig-arg\">alpha</span>,\n        <span class=\"sig-arg\">beta</span>,\n        <span class=\"sig-arg\">**useZ_Clas_and_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use function <a \n  href=\"pygeodesy.resections-module.html#collins5\" \n  class=\"link\">pygeodesy.collins5</a>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"copysign\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">copysign</span>&nbsp;(<span class=\"sig-arg\">x</span>,\n        <span class=\"sig-arg\">y</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use function <a \n  href=\"pygeodesy.basics-module.html#copysign0\" \n  class=\"link\">pygeodesy.copysign0</a>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"cosineAndoyerLambert\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">cosineAndoyerLambert</span>&nbsp;(<span class=\"sig-arg\">lat1</span>,\n        <span class=\"sig-arg\">lon1</span>,\n        <span class=\"sig-arg\">lat2</span>,\n        <span class=\"sig-arg\">lon2</span>,\n        <span class=\"sig-arg\">**datum_wrap</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED on 2024.12.31, use function <a \n  href=\"pygeodesy.formy-module.html#cosineLaw\" \n  class=\"link\">pygeodesy.cosineLaw</a> with <code><b>corr</b>=1</code>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"cosineAndoyerLambert_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">cosineAndoyerLambert_</span>&nbsp;(<span class=\"sig-arg\">phi2</span>,\n        <span class=\"sig-arg\">phi1</span>,\n        <span class=\"sig-arg\">lam21</span>,\n        <span class=\"sig-arg\">**datum</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED on 2024.12.31, use function <a \n  href=\"pygeodesy.formy-module.html#cosineLaw_\" \n  class=\"link\">pygeodesy.cosineLaw_</a> with \n  <code><b>corr</b>=1</code>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"cosineForsytheAndoyerLambert\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">cosineForsytheAndoyerLambert</span>&nbsp;(<span class=\"sig-arg\">lat1</span>,\n        <span class=\"sig-arg\">lon1</span>,\n        <span class=\"sig-arg\">lat2</span>,\n        <span class=\"sig-arg\">lon2</span>,\n        <span class=\"sig-arg\">**datum_wrap</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED on 2024.12.31, use function <a \n  href=\"pygeodesy.formy-module.html#cosineLaw\" \n  class=\"link\">pygeodesy.cosineLaw</a> with <code><b>corr</b>=2</code>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"cosineForsytheAndoyerLambert_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">cosineForsytheAndoyerLambert_</span>&nbsp;(<span class=\"sig-arg\">phi2</span>,\n        <span class=\"sig-arg\">phi1</span>,\n        <span class=\"sig-arg\">lam21</span>,\n        <span class=\"sig-arg\">**datum</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED on 2024.12.31, use function <a \n  href=\"pygeodesy.formy-module.html#cosineLaw_\" \n  class=\"link\">pygeodesy.cosineLaw_</a> with \n  <code><b>corr</b>=2</code>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"decodeEPSG2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">decodeEPSG2</span>&nbsp;(<span class=\"sig-arg\">arg</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use function <a href=\"pygeodesy.epsg-module.html#decode2\" \n  class=\"link\">epsg.decode2</a>.</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd>2-Tuple <code>(zone, hemipole)</code></dd>\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"elliperim\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">elliperim</span>&nbsp;(<span class=\"sig-arg\">a</span>,\n        <span class=\"sig-arg\">b</span>,\n        <span class=\"sig-arg\">*deg2_1</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED on 2026.02.12, use method <a \n  href=\"pygeodesy.ellipses.Ellipse-class.html#arc\" \n  class=\"link\">pygeodesy.Ellipse.arc</a> or property <a \n  href=\"pygeodesy.ellipses.Ellipse-class.html#perimeter2k_\" \n  class=\"link\">pygeodesy.Ellipse.perimeter2k_</a>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"elliperim_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">elliperim_</span>&nbsp;(<span class=\"sig-arg\">a</span>,\n        <span class=\"sig-arg\">b</span>,\n        <span class=\"sig-arg\">*rad2_1</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED on 2026.02.12, use method <a \n  href=\"pygeodesy.ellipses.Ellipse-class.html#arc_\" \n  class=\"link\">pygeodesy.Ellipse.arc_</a> or property <a \n  href=\"pygeodesy.ellipses.Ellipse-class.html#perimeter2k_\" \n  class=\"link\">pygeodesy.Ellipse.perimeter2k_</a>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"encodeEPSG\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">encodeEPSG</span>&nbsp;(<span class=\"sig-arg\">zone</span>,\n        <span class=\"sig-arg\">hemipole</span>=<span class=\"sig-default\">''</span>,\n        <span class=\"sig-arg\">band</span>=<span class=\"sig-default\">''</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use function <a href=\"pygeodesy.epsg-module.html#encode\" \n  class=\"link\">epsg.encode</a>.</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd><code>EPSG</code> code (<code>int</code>).</dd>\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"enStr2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">enStr2</span>&nbsp;(<span class=\"sig-arg\">easting</span>,\n        <span class=\"sig-arg\">northing</span>,\n        <span class=\"sig-arg\">prec</span>,\n        <span class=\"sig-arg\">*extras</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use function <a \n  href=\"pygeodesy.streprs-module.html#enstr2\" \n  class=\"link\">pygeodesy.enstr2</a>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"equirectangular_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">equirectangular_</span>&nbsp;(<span class=\"sig-arg\">lat1</span>,\n        <span class=\"sig-arg\">lon1</span>,\n        <span class=\"sig-arg\">lat2</span>,\n        <span class=\"sig-arg\">lon2</span>,\n        <span class=\"sig-arg\">**options</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED on 2024.05.25, use function <a \n  href=\"pygeodesy.geohash-module.html#equirectangular4\" \n  class=\"link\">pygeodesy.equirectangular4</a>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"equirectangular3\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">equirectangular3</span>&nbsp;(<span class=\"sig-arg\">lat1</span>,\n        <span class=\"sig-arg\">lon1</span>,\n        <span class=\"sig-arg\">lat2</span>,\n        <span class=\"sig-arg\">lon2</span>,\n        <span class=\"sig-arg\">**options</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use function <a \n  href=\"pygeodesy.geohash-module.html#equirectangular4\" \n  class=\"link\">pygeodesy.equirectangular4</a>.</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd>3-Tuple <code>(distance2, delta_lat, delta_lon)</code>.</dd>\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"excessAbc\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">excessAbc</span>&nbsp;(<span class=\"sig-arg\">A</span>,\n        <span class=\"sig-arg\">b</span>,\n        <span class=\"sig-arg\">c</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED on 2023.04.04, use function <a \n  href=\"pygeodesy.formy-module.html#excessAbc_\" \n  class=\"link\">pygeodesy.excessAbc_</a>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"excessGirard\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">excessGirard</span>&nbsp;(<span class=\"sig-arg\">A</span>,\n        <span class=\"sig-arg\">B</span>,\n        <span class=\"sig-arg\">C</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED on 2023.04.04, use function <a \n  href=\"pygeodesy.formy-module.html#excessGirard_\" \n  class=\"link\">pygeodesy.excessGirard_</a>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"excessLHuilier\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">excessLHuilier</span>&nbsp;(<span class=\"sig-arg\">a</span>,\n        <span class=\"sig-arg\">b</span>,\n        <span class=\"sig-arg\">c</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED on 2023.04.04, use function <a \n  href=\"pygeodesy.formy-module.html#excessLHuilier_\" \n  class=\"link\">pygeodesy.excessLHuilier_</a>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"false2f\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">false2f</span>&nbsp;(<span class=\"sig-arg\">value</span>,\n        <span class=\"sig-arg\">name</span>=<span class=\"sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">value</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"sig-arg\">false</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">Error</span>=<span class=\"sig-default\">&lt;type 'exceptions.ValueError'&gt;</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use class <a href=\"pygeodesy.units.Easting-class.html\" \n  class=\"link\">Easting</a> or <a href=\"pygeodesy.units.Northing-class.html\"\n  class=\"link\">Northing</a>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"falsed2f\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">falsed2f</span>&nbsp;(<span class=\"sig-arg\">falsed</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">Error</span>=<span class=\"sig-default\">&lt;type 'exceptions.ValueError'&gt;</span>,\n        <span class=\"sig-arg\">**name_value</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use class <a href=\"pygeodesy.units.Easting-class.html\" \n  class=\"link\">Easting</a> or <a href=\"pygeodesy.units.Northing-class.html\"\n  class=\"link\">Northing</a>.</p>\n  <p>Convert a falsed east-/northing to non-negative \n  <code>float</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>falsed</code></strong> - Value includes false origin (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>Error</code></strong> - Optional, overriding error (<code>Exception</code>).</li>\n        <li><strong class=\"pname\"><code>name_value</code></strong> - One <code><b>name</b>=value</code> pair.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The value (<code>float</code>).</dd>\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>Error</strong></code> - Invalid or negative <code><b>name</b>=value</code>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"float0\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">float0</span>&nbsp;(<span class=\"sig-arg\">*xs</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED on 2023.04.21, use function <a \n  href=\"pygeodesy.constants-module.html#float0_\" \n  class=\"link\">pygeodesy.float0_</a>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"fStr\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">fStr</span>&nbsp;(<span class=\"sig-arg\">floats</span>,\n        <span class=\"sig-arg\">prec</span>=<span class=\"sig-default\">6</span>,\n        <span class=\"sig-arg\">fmt</span>=<span class=\"sig-default\">'f'</span>,\n        <span class=\"sig-arg\">ints</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">sep</span>=<span class=\"sig-default\">', '</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use function <a href=\"pygeodesy.streprs-module.html#fstr\" \n  class=\"link\">fstr</a>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"fStrzs\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">fStrzs</span>&nbsp;(<span class=\"sig-arg\">floatstr</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use function <a \n  href=\"pygeodesy.streprs-module.html#fstrzs\" \n  class=\"link\">pygeodesy.fstrzs</a>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"Fsum2product\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">Fsum2product</span>&nbsp;(<span class=\"sig-arg\">*xs</span>,\n        <span class=\"sig-arg\">**kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED on 2024.09.19, use <a \n  href=\"pygeodesy.fsums.Fsum-class.html\" \n  class=\"link\">Fsum</a><code>(*<b>xs</b>, <b>f2product</b>=True, \n  ...)</code>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"hypot3\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">hypot3</span>&nbsp;(<span class=\"sig-arg\">x</span>,\n        <span class=\"sig-arg\">y</span>,\n        <span class=\"sig-arg\">z</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use function <a href=\"pygeodesy.fmath-module.html#hypot_\" \n  class=\"link\">pygeodesy.hypot_</a>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"inStr\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">inStr</span>&nbsp;(<span class=\"sig-arg\">inst</span>,\n        <span class=\"sig-arg\">*args</span>,\n        <span class=\"sig-arg\">**kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use function <a href=\"pygeodesy.streprs-module.html#instr\"\n  class=\"link\">pygeodesy.instr</a>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"isenclosedby\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">isenclosedby</span>&nbsp;(<span class=\"sig-arg\">point</span>,\n        <span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use function <a \n  href=\"pygeodesy.points-module.html#isenclosedBy\" \n  class=\"link\">pygeodesy.isenclosedBy</a>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"istuplist\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">istuplist</span>&nbsp;(<span class=\"sig-arg\">obj</span>,\n        <span class=\"sig-arg\">minum</span>=<span class=\"sig-default\">0</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED on 2023.03.31, use function <a \n  href=\"pygeodesy.basics-module.html#islistuple\" \n  class=\"link\">pygeodesy.islistuple</a>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"joined\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">joined</span>&nbsp;(<span class=\"sig-arg\">*words</span>,\n        <span class=\"sig-arg\">**sep</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use <code>NN(...)</code>, <code>NN.join_</code> or \n  <code><b>sep</b>.join</code>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"joined_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">joined_</span>&nbsp;(<span class=\"sig-arg\">*words</span>,\n        <span class=\"sig-arg\">**sep</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use <code>_SPACE_(...)</code>, <code>_SPACE_.join_</code> \n  or <code><b>sep</b>.join</code>, sep=&quot; &quot;.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"nearestOn3\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">nearestOn3</span>&nbsp;(<span class=\"sig-arg\">point</span>,\n        <span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">closed</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">**options</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use function <a \n  href=\"pygeodesy.points-module.html#nearestOn5\" \n  class=\"link\">pygeodesy.nearestOn5</a>.</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd>3-Tuple <code>(lat, lon, distance)</code></dd>\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"nearestOn4\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">nearestOn4</span>&nbsp;(<span class=\"sig-arg\">point</span>,\n        <span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">closed</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">**options</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use function <a \n  href=\"pygeodesy.points-module.html#nearestOn5\" \n  class=\"link\">pygeodesy.nearestOn5</a>.</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd>4-Tuple <code>(lat, lon, distance, angle)</code></dd>\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"parseUTM\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">parseUTM</span>&nbsp;(<span class=\"sig-arg\">strUTM</span>,\n        <span class=\"sig-arg\">datum</span>=<span class=\"sig-default\">_UTM</span>,\n        <span class=\"sig-arg\">Utm</span>=<span class=\"sig-default\">_UTM</span>,\n        <span class=\"sig-arg\">name</span>=<span class=\"sig-default\">''</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use function <a href=\"pygeodesy.utm-module.html#parseUTM5\"\n  class=\"link\">parseUTM5</a>.</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd>The UTM coordinate (<b><a href=\"pygeodesy.utm.Utm-class.html\" \n          class=\"link\">Utm</a></b>) or 4-tuple <code>(zone, hemisphere, \n          easting, northing)</code> if <code><b>Utm</b> is None</code>.</dd>\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"perimeterof\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">perimeterof</span>&nbsp;(<span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">closed</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">adjust</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">radius</span>=<span class=\"sig-default\">6371008.771415</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">True</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use function <a \n  href=\"pygeodesy.points-module.html#perimeterOf\" \n  class=\"link\">pygeodesy.perimeterOf</a>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"polygon\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">polygon</span>&nbsp;(<span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">closed</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">base</span>=<span class=\"sig-default\">None</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use function <a href=\"pygeodesy.iters-module.html#points2\"\n  class=\"link\">pygeodesy.points2</a>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"scalar\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">scalar</span>&nbsp;(<span class=\"sig-arg\">value</span>,\n        <span class=\"sig-arg\">low</span>=<span class=\"sig-default\">2.220446049250313e-16</span>,\n        <span class=\"sig-arg\">high</span>=<span class=\"sig-default\">1.0</span>,\n        <span class=\"sig-arg\">name</span>=<span class=\"sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">scalar</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"sig-arg\">Error</span>=<span class=\"sig-default\">&lt;type 'exceptions.ValueError'&gt;</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use class <a href=\"pygeodesy.units.Number_-class.html\" \n  class=\"link\">Number_</a> or <a href=\"pygeodesy.units.Scalar_-class.html\" \n  class=\"link\">Scalar_</a>.</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd>New value (<code>float</code> or <code>int</code> for \n          <code>int</code> <b><code>low</code></b>).</dd>\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>Error</strong></code> - Invalid <b><code>value</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"simplify2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">simplify2</span>&nbsp;(<span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">pipe</span>=<span class=\"sig-default\">0.001</span>,\n        <span class=\"sig-arg\">**radius_shortest_indices_options</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use function <a \n  href=\"pygeodesy.simplify-module.html#simplifyRW\" \n  class=\"link\">pygeodesy.simplifyRW</a>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"simplifyRDPm\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">simplifyRDPm</span>&nbsp;(<span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">distance</span>=<span class=\"sig-default\">0.001</span>,\n        <span class=\"sig-arg\">**radius_shortest_indices_options</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED on 2024.11.28, use function <a \n  href=\"pygeodesy.simplify-module.html#simplifyRDP\" \n  class=\"link\">pygeodesy.simplifyRDP</a><code>(points, modified=True, \n  ...)</code>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"simplifyVWm\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">simplifyVWm</span>&nbsp;(<span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">area</span>=<span class=\"sig-default\">0.001</span>,\n        <span class=\"sig-arg\">**radius_attr_indices_options</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED on 2024.11.28, use function <a \n  href=\"pygeodesy.simplify-module.html#simplifyVW\" \n  class=\"link\">pygeodesy.simplifyVW</a><code>(points, modified=True, \n  ...)</code>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"tienstra\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">tienstra</span>&nbsp;(<span class=\"sig-arg\">pointA</span>,\n        <span class=\"sig-arg\">pointB</span>,\n        <span class=\"sig-arg\">pointC</span>,\n        <span class=\"sig-arg\">alpha</span>,\n        <span class=\"sig-arg\">**beta_gamma_useZ_Clas_and_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use function <a \n  href=\"pygeodesy.resections-module.html#tienstra7\" \n  class=\"link\">pygeodesy.tienstra7</a>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toUtm\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toUtm</span>&nbsp;(<span class=\"sig-arg\">latlon</span>,\n        <span class=\"sig-arg\">lon</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">datum</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">Utm</span>=<span class=\"sig-default\">_UTM</span>,\n        <span class=\"sig-arg\">cmoff</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">name</span>=<span class=\"sig-default\">''</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use function <a href=\"pygeodesy.utm-module.html#toUtm8\" \n  class=\"link\">pygeodesy.toUtm8</a>.</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd>The UTM coordinate (<b><code>Utm</code></b>) or a 6-tuple \n          <code>(zone, easting, northing, band, convergence, scale)</code> \n          if <code><b>Utm</b> is None</code> or <code><b>cmoff</b> is \n          False</code>.</dd>\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"triAngle4\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">triAngle4</span>&nbsp;(<span class=\"sig-arg\">a</span>,\n        <span class=\"sig-arg\">b</span>,\n        <span class=\"sig-arg\">c</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED on 2023.09.14, use function <a \n  href=\"pygeodesy.resections-module.html#triAngle5\" \n  class=\"link\">pygeodesy.triAngle5</a>.</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd>A <i>DEPRECATED</i> <a \n          href=\"pygeodesy.deprecated.classes.TriAngle4Tuple-class.html\" \n          class=\"link\">TriAngle4Tuple</a><code>(radA, radB, radC, \n          rIn)</code>.</dd>\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"unsign0\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">unsign0</span>&nbsp;(<span class=\"sig-arg\">x</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use function <a \n  href=\"pygeodesy.basics-module.html#unsigned0\" \n  class=\"link\">pygeodesy.unsigned0</a>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"unStr\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">unStr</span>&nbsp;(<span class=\"sig-arg\">name</span>,\n        <span class=\"sig-arg\">*args</span>,\n        <span class=\"sig-arg\">**kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use function <a href=\"pygeodesy.streprs-module.html#unstr\"\n  class=\"link\">pygeodesy.unstr</a>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"utmZoneBand2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">utmZoneBand2</span>&nbsp;(<span class=\"sig-arg\">lat</span>,\n        <span class=\"sig-arg\">lon</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use function <a \n  href=\"pygeodesy.utm-module.html#utmZoneBand5\" \n  class=\"link\">pygeodesy.utmZoneBand5</a>.</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd>2-Tuple <code>(zone, band)</code>.</dd>\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.deprecated.nvector-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.deprecated.nvector</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.deprecated-module.html\">Package&nbsp;deprecated</a> ::\n        Module&nbsp;nvector\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.deprecated.nvector-module.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== MODULE DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Module nvector</h1><p class=\"nomargin-top\"></p>\n<p>DEPRECATED on 2021.05.20, use (INTERNAL) module <a \n  href=\"pygeodesy.nvectorBase-module.html\" \n  class=\"link\">pygeodesy.nvectorBase</a> instead.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Version:</strong>\n        23.11.26\n      </p>\n</div><!-- ==================== CLASSES ==================== -->\n<a name=\"section-Classes\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Classes</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.nvectorBase.LatLonNvectorBase-class.html\" class=\"summary-name\">LatLonNvectorBase</a><br />\n      (INTERNAL) Base class for n-vector-based ellipsoidal and spherical \n        <code>LatLon</code>s.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.deprecated.nvector.Nvector-class.html\" class=\"summary-name\">Nvector</a><br />\n      DEPRECATED on 2021.05.20, see (INTERNAL) class <a \n        href=\"pygeodesy.nvectorBase.NvectorBase-class.html\" \n        class=\"link\">pygeodesy.nvectorBase.NvectorBase</a>.\n    </td>\n  </tr>\n</table>\n<!-- ==================== FUNCTIONS ==================== -->\n<a name=\"section-Functions\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Functions</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.deprecated.nvector-module.html#sumOf\" class=\"summary-sig-name\">sumOf</a>(<span class=\"summary-sig-arg\">nvectors</span>,\n        <span class=\"summary-sig-arg\">Vector</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">h</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**Vector_kwds</span>)</span><br />\n      Return the <i>vectorial</i> sum of two or more n-vectors.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== VARIABLES ==================== -->\n<a name=\"section-Variables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Variables</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"NorthPole\"></a><span class=\"summary-name\">NorthPole</span> = <code title=\"_N_Vector(0, 0, 1)\">_N_Vector(0, 0, 1)</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"SouthPole\"></a><span class=\"summary-name\">SouthPole</span> = <code title=\"_N_Vector(0, 0, -1)\">_N_Vector(0, 0, -1)</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"__all__\"></a><span class=\"summary-name\">__all__</span> = <code title=\"_ALL_DEPRECATED.deprecated_nvector\">_ALL_DEPRECATED.deprecated_nvector</code>\n    </td>\n  </tr>\n</table>\n<!-- ==================== FUNCTION DETAILS ==================== -->\n<a name=\"section-FunctionDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Function Details</span></td>\n</tr>\n</table>\n<a name=\"sumOf\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">sumOf</span>&nbsp;(<span class=\"sig-arg\">nvectors</span>,\n        <span class=\"sig-arg\">Vector</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">h</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**Vector_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the <i>vectorial</i> sum of two or more n-vectors.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>nvectors</code></strong> - Vectors to be added (<code>Nvector</code>[]).</li>\n        <li><strong class=\"pname\"><code>Vector</code></strong> - Optional class for the vectorial sum (<code>Nvector</code>) or \n          <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>h</code></strong> - Optional height, overriding the mean height (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>Vector_kwds</code></strong> - Optional, additional <b><code>Vector</code></b> keyword \n          arguments, ignored if <code><b>Vector</b> is None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Vectorial sum (<b><code>Vector</code></b>) or a <a \n          href=\"pygeodesy.namedTuples.Vector4Tuple-class.html\" \n          class=\"link\">Vector4Tuple</a><code>(x, y, z, h)</code> if \n          <code><b>Vector</b> is None</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.VectorError-class.html\">VectorError</a></strong></code> - No <b><code>nvectors</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.deprecated.nvector.Nvector-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.deprecated.nvector.Nvector</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.deprecated-module.html\">Package&nbsp;deprecated</a> ::\n        <a href=\"pygeodesy.deprecated.nvector-module.html\">Module&nbsp;nvector</a> ::\n        Class&nbsp;Nvector\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.deprecated.nvector.Nvector-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Nvector</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n       object --+                    \n                |                    \n     <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+                \n                    |                \n     <a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+            \n                        |            \n<a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">vector3dBase.Vector3dBase</a> --+        \n                            |        \n            <a href=\"pygeodesy.vector3d.Vector3d-class.html\">vector3d.Vector3d</a> --+    \n                                |    \n          <a href=\"pygeodesy.nvectorBase.NvectorBase-class.html\">nvectorBase.NvectorBase</a> --+\n                                    |\n                                   <strong class=\"uidshort\">Nvector</strong>\n</pre>\n\n<hr />\n<p>DEPRECATED on 2021.05.20, see (INTERNAL) class <a \n  href=\"pygeodesy.nvectorBase.NvectorBase-class.html\" \n  class=\"link\">pygeodesy.nvectorBase.NvectorBase</a>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.deprecated.nvector.Nvector-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">x</span>,\n        <span class=\"summary-sig-arg\">y</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">z</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">h</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">ll</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">datum</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">name</span>=<span class=\"summary-sig-default\">''</span>)</span><br />\n      New n-vector normal to the earth's surface.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html\">nvectorBase.NvectorBase</a></code></b>:\n      <code><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#hStr\">hStr</a></code>,\n      <code><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#to2ab\">to2ab</a></code>,\n      <code><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#to2ll\">to2ll</a></code>,\n      <code><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#to3abh\">to3abh</a></code>,\n      <code><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#to3llh\">to3llh</a></code>,\n      <code><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#to4xyzh\">to4xyzh</a></code>,\n      <code><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#toCartesian\">toCartesian</a></code>,\n      <code><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#toLatLon\">toLatLon</a></code>,\n      <code><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#toVector3d\">toVector3d</a></code>,\n      <code><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#unit\">unit</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.vector3d.Vector3d-class.html\">vector3d.Vector3d</a></code></b>:\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#bearing\">bearing</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#circin6\">circin6</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#circum3\">circum3</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#circum4_\">circum4_</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#iscolinearWith\">iscolinearWith</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#meeus2\">meeus2</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#nearestOn\">nearestOn</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#nearestOn6\">nearestOn6</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#parse\">parse</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#radii11\">radii11</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#soddy4\">soddy4</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#trilaterate2d2\">trilaterate2d2</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#trilaterate3d2\">trilaterate3d2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">vector3dBase.Vector3dBase</a></code></b>:\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__abs__\">__abs__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__add__\">__add__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__bool__\">__bool__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__ceil__\">__ceil__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__cmp__\">__cmp__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__div__\">__div__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__divmod__\">__divmod__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__eq__\">__eq__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__float__\">__float__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__floor__\">__floor__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__floordiv__\">__floordiv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__ge__\">__ge__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__gt__\">__gt__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__iadd__\">__iadd__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__idiv__\">__idiv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__ifloordiv__\">__ifloordiv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__imod__\">__imod__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__imul__\">__imul__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__int__\">__int__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__ipow__\">__ipow__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__isub__\">__isub__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__itruediv__\">__itruediv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__le__\">__le__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__long__\">__long__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__lt__\">__lt__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__mod__\">__mod__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__mul__\">__mul__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__ne__\">__ne__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__neg__\">__neg__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__nonzero__\">__nonzero__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__pos__\">__pos__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__pow__\">__pow__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__radd__\">__radd__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rdiv__\">__rdiv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rdivmod__\">__rdivmod__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rfloordiv__\">__rfloordiv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rmod__\">__rmod__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rmul__\">__rmul__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__round__\">__round__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rpow__\">__rpow__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rsub__\">__rsub__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rtruediv__\">__rtruediv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__sub__\">__sub__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__truediv__\">__truediv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__trunc__\">__trunc__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#angleTo\">angleTo</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#apply\">apply</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#bools\">bools</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#cmp\">cmp</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#cross\">cross</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#dividedBy\">dividedBy</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#dividedBy_\">dividedBy_</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#dot\">dot</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#equals\">equals</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#equirectangular\">equirectangular</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#fabs\">fabs</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#floats\">floats</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#floorDividedBy\">floorDividedBy</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#floorDividedBy_\">floorDividedBy_</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#intermediateTo\">intermediateTo</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#ints\">ints</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#isconjugateTo\">isconjugateTo</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#isequalTo\">isequalTo</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#minus\">minus</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#minus_\">minus_</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#negate\">negate</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#others\">others</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#plus\">plus</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#plus_\">plus_</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#pow\">pow</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#rotate\">rotate</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#rotateAround\">rotateAround</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#sum\">sum</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#times\">times</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#times_\">times_</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#to3xyz\">to3xyz</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#toRepr\">toRepr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html\">nvectorBase.NvectorBase</a></code></b>:\n      <code><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#Ecef\">Ecef</a></code>,\n      <code><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#H\">H</a></code>,\n      <code><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#datum\">datum</a></code>,\n      <code><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#ellipsoidalNvector\">ellipsoidalNvector</a></code>,\n      <code><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#h\">h</a></code>,\n      <code><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#isEllipsoidal\">isEllipsoidal</a></code>,\n      <code><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#isSpherical\">isSpherical</a></code>,\n      <code><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#lam\">lam</a></code>,\n      <code><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#lat\">lat</a></code>,\n      <code><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#latlon\">latlon</a></code>,\n      <code><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#latlonheight\">latlonheight</a></code>,\n      <code><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#latlonheightdatum\">latlonheightdatum</a></code>,\n      <code><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#lon\">lon</a></code>,\n      <code><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#phi\">phi</a></code>,\n      <code><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#philam\">philam</a></code>,\n      <code><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#philamheight\">philamheight</a></code>,\n      <code><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#philamheightdatum\">philamheightdatum</a></code>,\n      <code><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#sphericalNvector\">sphericalNvector</a></code>,\n      <code><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#xyzh\">xyzh</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">vector3dBase.Vector3dBase</a></code></b>:\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#crosserrors\">crosserrors</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#euclid\">euclid</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#homogeneous\">homogeneous</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#length\">length</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#length2\">length2</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#x\">x</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#x2y2z2\">x2y2z2</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#x2y2z23\">x2y2z23</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#xyz\">xyz</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#xyz3\">xyz3</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#y\">y</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#z\">z</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">x</span>,\n        <span class=\"sig-arg\">y</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">z</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">h</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">ll</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">datum</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">name</span>=<span class=\"sig-default\">''</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New n-vector normal to the earth's surface.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>x_xyz</code></strong> - X component of vector (<code>scalar</code>) or (3-D) vector \n          (<code>Nvector</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <a \n          href=\"pygeodesy.namedTuples.Vector3Tuple-class.html\" \n          class=\"link\">Vector3Tuple</a> or <a \n          href=\"pygeodesy.namedTuples.Vector4Tuple-class.html\" \n          class=\"link\">Vector4Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>y</code></strong> - Y component of vector (<code>scalar</code>), required if \n          <b><code>x_xyz</code></b> is <code>scalar</code> and same units \n          as <b><code>x_xyz</code></b>, ignored otherwise.</li>\n        <li><strong class=\"pname\"><code>z</code></strong> - Z component of vector (<code>scalar</code>), like \n          <b><code>y</code></b>.</li>\n        <li><strong class=\"pname\"><code>h</code></strong> - Optional height above surface (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>datum</code></strong> - Optional, <i>pass-thru</i> datum (<a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>).</li>\n        <li><strong class=\"pname\"><code>ll_name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>) and \n          optional, original latlon <code><b>ll</b>=None</code> \n          (<code>LatLon</code>).</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Non-scalar <b><code>x</code></b>, <b><code>y</code></b> or \n        <b><code>z</code></b> coordinate or <b><code>x_xyz</code></b> not \n        an <code>Nvector</code>, <a \n        href=\"pygeodesy.namedTuples.Vector3Tuple-class.html\" \n        class=\"link\">Vector3Tuple</a> or <a \n        href=\"pygeodesy.namedTuples.Vector4Tuple-class.html\" \n        class=\"link\">Vector4Tuple</a> or invalid <b><code>datum</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n        <dd><em class=\"note\">(inherited documentation)</em></dd>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.deprecated.rhumbBase-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.deprecated.rhumbBase</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.deprecated-module.html\">Package&nbsp;deprecated</a> ::\n        Module&nbsp;rhumbBase\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.deprecated.rhumbBase-module.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== MODULE DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Module rhumbBase</h1><p class=\"nomargin-top\"></p>\n<p>DEPRECATED on 2023.11.26, use module <a \n  href=\"pygeodesy.rhumb.bases-module.html\" class=\"link\" \n  onclick=\"show_private();\">pygeodesy.rhumb.bases</a> instead.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Version:</strong>\n        25.05.12\n      </p>\n</div><!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.deprecated.rhumbaux-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.deprecated.rhumbaux</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.deprecated-module.html\">Package&nbsp;deprecated</a> ::\n        Module&nbsp;rhumbaux\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.deprecated.rhumbaux-module.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== MODULE DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Module rhumbaux</h1><p class=\"nomargin-top\"></p>\n<p>DEPRECATED on 2023.11.26, use module <a \n  href=\"pygeodesy.rhumb.aux_-module.html\" class=\"link\" \n  onclick=\"show_private();\">pygeodesy.rhumb.aux_</a> instead.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Version:</strong>\n        25.05.12\n      </p>\n</div><!-- ==================== CLASSES ==================== -->\n<a name=\"section-Classes\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Classes</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.rhumb.aux_.RhumbAux-class.html\" class=\"summary-name\">RhumbAux</a><br />\n      Class to solve the <i>direct</i> and <i>inverse rhumb</i> problems,\n        based on <i>Auxiliary Latitudes</i> for accuracy near the poles.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.rhumb.aux_.RhumbLineAux-class.html\" class=\"summary-name\">RhumbLineAux</a><br />\n      Compute one or several points on a single rhumb line.\n    </td>\n  </tr>\n</table>\n<!-- ==================== VARIABLES ==================== -->\n<a name=\"section-Variables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Variables</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"__all__\"></a><span class=\"summary-name\">__all__</span> = <code title=\"_ALL_LAZY.rhumb_aux_\">_ALL_LAZY.rhumb_aux_</code>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.deprecated.rhumbsolve-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.deprecated.rhumbsolve</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.deprecated-module.html\">Package&nbsp;deprecated</a> ::\n        Module&nbsp;rhumbsolve\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.deprecated.rhumbsolve-module.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== MODULE DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Module rhumbsolve</h1><p class=\"nomargin-top\"></p>\n<p>DEPRECATED on 2023.11.26, use module <a \n  href=\"pygeodesy.rhumb.solve-module.html\" class=\"link\" \n  onclick=\"show_private();\">pygeodesy.rhumb.solve</a> instead.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Version:</strong>\n        25.05.12\n      </p>\n</div><!-- ==================== CLASSES ==================== -->\n<a name=\"section-Classes\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Classes</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.karney.Rhumb8Tuple-class.html\" class=\"summary-name\">Rhumb8Tuple</a><br />\n      8-Tuple <code>(lat1, lon1, lat2, lon2, azi12, s12, S12, a12)</code>\n        with lat- <code>lat1</code>, <code>lat2</code> and longitudes \n        <code>lon1</code>, <code>lon2</code> of both points, the azimuth of\n        the rhumb line <code>azi12</code>, the distance <code>s12</code>, \n        the area <code>S12</code> under the rhumb line and the angular \n        distance <code>a12</code> between both points.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.rhumb.solve.RhumbLineSolve-class.html\" class=\"summary-name\">RhumbLineSolve</a><br />\n      Wrapper to invoke <i>Karney</i>'s <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/RhumbSolve.1.html\"\n        target=\"_top\">RhumbSolve</a> like a class, similar to <a \n        href=\"pygeodesy.rhumb.ekx.RhumbLine-class.html\" \n        class=\"link\">pygeodesy.RhumbLine</a> and <a \n        href=\"pygeodesy.rhumb.aux_.RhumbLineAux-class.html\" \n        class=\"link\">pygeodesy.RhumbLineAux</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.rhumb.solve.RhumbSolve-class.html\" class=\"summary-name\">RhumbSolve</a><br />\n      Wrapper to invoke <i>Karney</i>'s <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/RhumbSolve.1.html\"\n        target=\"_top\">RhumbSolve</a> like a class, similar to <a \n        href=\"pygeodesy.rhumb.ekx.Rhumb-class.html\" \n        class=\"link\">pygeodesy.Rhumb</a> and <a \n        href=\"pygeodesy.rhumb.aux_.RhumbAux-class.html\" \n        class=\"link\">pygeodesy.RhumbAux</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.rhumb.solve.RhumbSolve7Tuple-class.html\" class=\"summary-name\">RhumbSolve7Tuple</a><br />\n      7-Tuple <code>(lat1, lon1, lat2, lon2, azi12, s12, S12)</code> with\n        lat- <code>lat1</code>, <code>lat2</code> and longitudes \n        <code>lon1</code>, <code>lon2</code> of both points, the azimuth of\n        the rhumb line <code>azi12</code>, the distance <code>s12</code> \n        and the area <code>S12</code> under the rhumb line between both \n        points.\n    </td>\n  </tr>\n</table>\n<!-- ==================== VARIABLES ==================== -->\n<a name=\"section-Variables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Variables</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"__all__\"></a><span class=\"summary-name\">__all__</span> = <code title=\"_ALL_LAZY.rhumb_solve\">_ALL_LAZY.rhumb_solve</code>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.deprecated.rhumbx-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.deprecated.rhumbx</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.deprecated-module.html\">Package&nbsp;deprecated</a> ::\n        Module&nbsp;rhumbx\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.deprecated.rhumbx-module.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== MODULE DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Module rhumbx</h1><p class=\"nomargin-top\"></p>\n<p>DEPRECATED on 2023.11.26, use module <a \n  href=\"pygeodesy.rhumb.ekx-module.html\" class=\"link\" \n  onclick=\"show_private();\">pygeodesy.rhumb.ekx</a> instead.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Version:</strong>\n        25.05.12\n      </p>\n</div><!-- ==================== CLASSES ==================== -->\n<a name=\"section-Classes\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Classes</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.rhumb.ekx.Rhumb-class.html\" class=\"summary-name\">Rhumb</a><br />\n      Class to solve the <i>direct</i> and <i>inverse rhumb</i> problems,\n        based on <i>elliptic functions</i> or <i>Kr&#252;ger series \n        expansion</i>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.rhumb.ekx.RhumbLine-class.html\" class=\"summary-name\">RhumbLine</a><br />\n      Compute one or several points on a single rhumb line.\n    </td>\n  </tr>\n</table>\n<!-- ==================== VARIABLES ==================== -->\n<a name=\"section-Variables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Variables</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"__all__\"></a><span class=\"summary-name\">__all__</span> = <code title=\"_ALL_LAZY.rhumb_ekx\">_ALL_LAZY.rhumb_ekx</code>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.dms-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.dms</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        Module&nbsp;dms\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.dms-module.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== MODULE DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Module dms</h1><p class=\"nomargin-top\"></p>\n<p>Parsers and formatters of angles in degrees, minutes and seconds or \n  radians.</p>\n  <p>Functions to parse and format bearing, compass, lat- and longitudes in\n  various forms of degrees, minutes and seconds with or without degrees, \n  minute and second symbols plus a compass point suffix, including parsing \n  of <code>decimal</code> and <code>sexagecimal</code> degrees.</p>\n  <p>Set env variable <code>PYGEODESY_FMT_FORM</code> to any \n  <code>F_...</code> form to override default <code>F_DMS</code> formatting\n  of lat- and longitudes or to an empty string to restore the default.</p>\n  <p>After <i>(C) Chris Veness 2011-2024</i> published under the same MIT \n  Licence**, see <a \n  href=\"https://www.Movable-Type.co.UK/scripts/latlong.html\" \n  target=\"_top\">Latitude/Longitude</a> and <a \n  href=\"https://www.Movable-Type.co.UK/scripts/latlong-vectors.html\" \n  target=\"_top\">Vector-based geodesy</a>.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Note:</strong>\n        In Python 2-, <a href=\"pygeodesy.dms-module.html#S_DEG\" \n        class=\"link\">S_DEG</a>, <a href=\"pygeodesy.dms-module.html#S_MIN\" \n        class=\"link\">S_MIN</a>, <a href=\"pygeodesy.dms-module.html#S_SEC\" \n        class=\"link\">S_SEC</a>, <a href=\"pygeodesy.dms-module.html#S_RAD\" \n        class=\"link\">S_RAD</a> and <a \n        href=\"pygeodesy.dms-module.html#S_SEP\" class=\"link\">S_SEP</a> may \n        be multi-byte, non-ascii characters and if so, <i>not</i> \n        <code>unicode</code>.\n      </p>\n      <p><strong>Version:</strong>\n        25.08.31\n      </p>\n</div><!-- ==================== FUNCTIONS ==================== -->\n<a name=\"section-Functions\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Functions</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.dms-module.html#bearingDMS\" class=\"summary-sig-name\">bearingDMS</a>(<span class=\"summary-sig-arg\">bearing</span>,\n        <span class=\"summary-sig-arg\">form</span>=<span class=\"summary-sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">d</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"summary-sig-arg\">prec</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">sep</span>=<span class=\"summary-sig-default\">''</span>,\n        <span class=\"summary-sig-arg\">**s_D_M_S</span>)</span><br />\n      Convert bearing to a string (without compass point suffix).</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.dms-module.html#clipDegrees\" class=\"summary-sig-name\">clipDegrees</a>(<span class=\"summary-sig-arg\">deg</span>,\n        <span class=\"summary-sig-arg\">limit</span>)</span><br />\n      Clip a lat- or longitude to the given range.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.dms-module.html#clipRadians\" class=\"summary-sig-name\">clipRadians</a>(<span class=\"summary-sig-arg\">rad</span>,\n        <span class=\"summary-sig-arg\">limit</span>)</span><br />\n      Clip a lat- or longitude to the given range.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.dms-module.html#compassDMS\" class=\"summary-sig-name\">compassDMS</a>(<span class=\"summary-sig-arg\">bearing</span>,\n        <span class=\"summary-sig-arg\">form</span>=<span class=\"summary-sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">d</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"summary-sig-arg\">prec</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">sep</span>=<span class=\"summary-sig-default\">''</span>,\n        <span class=\"summary-sig-arg\">**s_D_M_S</span>)</span><br />\n      Convert bearing to a string suffixed with compass point.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.dms-module.html#compassPoint\" class=\"summary-sig-name\">compassPoint</a>(<span class=\"summary-sig-arg\">bearing</span>,\n        <span class=\"summary-sig-arg\">prec</span>=<span class=\"summary-sig-default\">3</span>)</span><br />\n      Convert a <code>bearing</code> from North to a compass point.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.dms-module.html#degDMS\" class=\"summary-sig-name\">degDMS</a>(<span class=\"summary-sig-arg\">deg</span>,\n        <span class=\"summary-sig-arg\">prec</span>=<span class=\"summary-sig-default\">6</span>,\n        <span class=\"summary-sig-arg\">s_D</span>=<span class=\"summary-sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">&deg;</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"summary-sig-arg\">s_M</span>=<span class=\"summary-sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">\\xe2\\x80\\xb2</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"summary-sig-arg\">s_S</span>=<span class=\"summary-sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">&Prime;</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"summary-sig-arg\">neg</span>=<span class=\"summary-sig-default\">'-'</span>,\n        <span class=\"summary-sig-arg\">pos</span>=<span class=\"summary-sig-default\">''</span>)</span><br />\n      Convert degrees to a string in degrees, minutes <i>or</i> seconds.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.dms-module.html#latDMS\" class=\"summary-sig-name\">latDMS</a>(<span class=\"summary-sig-arg\">deg</span>,\n        <span class=\"summary-sig-arg\">form</span>=<span class=\"summary-sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">dms</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"summary-sig-arg\">prec</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">sep</span>=<span class=\"summary-sig-default\">''</span>,\n        <span class=\"summary-sig-arg\">**s_D_M_S</span>)</span><br />\n      Convert latitude to a string, optionally suffixed with N or S.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.dms-module.html#latlonDMS\" class=\"summary-sig-name\">latlonDMS</a>(<span class=\"summary-sig-arg\">lls</span>,\n        <span class=\"summary-sig-arg\">**m_form_prec_sep_s_D_M_S</span>)</span><br />\n      Convert one or more <code>LatLon</code> instances to strings.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.dms-module.html#latlonDMS_\" class=\"summary-sig-name\">latlonDMS_</a>(<span class=\"summary-sig-arg\">*lls</span>,\n        <span class=\"summary-sig-arg\">**m_form_prec_sep_s_D_M_S</span>)</span><br />\n      Convert one or more <code>LatLon</code> instances to strings.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.dms-module.html#lonDMS\" class=\"summary-sig-name\">lonDMS</a>(<span class=\"summary-sig-arg\">deg</span>,\n        <span class=\"summary-sig-arg\">form</span>=<span class=\"summary-sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">dms</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"summary-sig-arg\">prec</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">sep</span>=<span class=\"summary-sig-default\">''</span>,\n        <span class=\"summary-sig-arg\">**s_D_M_S</span>)</span><br />\n      Convert longitude to a string, optionally suffixed with E or W.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.dms-module.html#normDMS\" class=\"summary-sig-name\">normDMS</a>(<span class=\"summary-sig-arg\">strDMS</span>,\n        <span class=\"summary-sig-arg\">norm</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**s_D_M_S</span>)</span><br />\n      Normalize all degrees, minutes and seconds (DMS) <i>symbol</i> \n      suffixes in a string to the default symbols <a \n      href=\"pygeodesy.dms-module.html#S_DEG\" class=\"link\">S_DEG</a>, <a \n      href=\"pygeodesy.dms-module.html#S_MIN\" class=\"link\">S_MIN</a>, <a \n      href=\"pygeodesy.dms-module.html#S_SEC\" class=\"link\">S_SEC</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.dms-module.html#parseDDDMMSS\" class=\"summary-sig-name\">parseDDDMMSS</a>(<span class=\"summary-sig-arg\">strDDDMMSS</span>,\n        <span class=\"summary-sig-arg\">suffix</span>=<span class=\"summary-sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">NSEW</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"summary-sig-arg\">sep</span>=<span class=\"summary-sig-default\">''</span>,\n        <span class=\"summary-sig-arg\">clip</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">sexagecimal</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Parse a lat- or longitude represention forms as [D]DDMMSS in degrees.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.dms-module.html#parseDMS\" class=\"summary-sig-name\">parseDMS</a>(<span class=\"summary-sig-arg\">strDMS</span>,\n        <span class=\"summary-sig-arg\">suffix</span>=<span class=\"summary-sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">NSEW</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"summary-sig-arg\">sep</span>=<span class=\"summary-sig-default\">''</span>,\n        <span class=\"summary-sig-arg\">clip</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">**s_D_M_S</span>)</span><br />\n      Parse a lat- or longitude representation in <code>degrees</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.dms-module.html#parseDMS2\" class=\"summary-sig-name\">parseDMS2</a>(<span class=\"summary-sig-arg\">strLat</span>,\n        <span class=\"summary-sig-arg\">strLon</span>,\n        <span class=\"summary-sig-arg\">sep</span>=<span class=\"summary-sig-default\">''</span>,\n        <span class=\"summary-sig-arg\">clipLat</span>=<span class=\"summary-sig-default\">90</span>,\n        <span class=\"summary-sig-arg\">clipLon</span>=<span class=\"summary-sig-default\">180</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">**s_D_M_S</span>)</span><br />\n      Parse a lat- and a longitude representions <code>&quot;lat, \n      lon&quot;</code> in <code>degrees</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.dms-module.html#parse3llh\" class=\"summary-sig-name\">parse3llh</a>(<span class=\"summary-sig-arg\">strllh</span>,\n        <span class=\"summary-sig-arg\">height</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">sep</span>=<span class=\"summary-sig-default\">','</span>,\n        <span class=\"summary-sig-arg\">clipLat</span>=<span class=\"summary-sig-default\">90</span>,\n        <span class=\"summary-sig-arg\">clipLon</span>=<span class=\"summary-sig-default\">180</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">**s_D_M_S</span>)</span><br />\n      Parse a string <code>&quot;lat, lon [, h]&quot;</code> representing \n      lat-, longitude in <code>degrees</code> and optional height in \n      <code>meter</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.dms-module.html#parseRad\" class=\"summary-sig-name\">parseRad</a>(<span class=\"summary-sig-arg\">strRad</span>,\n        <span class=\"summary-sig-arg\">suffix</span>=<span class=\"summary-sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">NSEW</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"summary-sig-arg\">clip</span>=<span class=\"summary-sig-default\">0</span>)</span><br />\n      Parse a string representing angle in <code>radians</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.dms-module.html#precision\" class=\"summary-sig-name\">precision</a>(<span class=\"summary-sig-arg\">form</span>,\n        <span class=\"summary-sig-arg\">prec</span>=<span class=\"summary-sig-default\">None</span>)</span><br />\n      Set the default precison for a given F_ form.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.dms-module.html#toDMS\" class=\"summary-sig-name\">toDMS</a>(<span class=\"summary-sig-arg\">deg</span>,\n        <span class=\"summary-sig-arg\">form</span>=<span class=\"summary-sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">dms</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"summary-sig-arg\">prec</span>=<span class=\"summary-sig-default\">2</span>,\n        <span class=\"summary-sig-arg\">sep</span>=<span class=\"summary-sig-default\">''</span>,\n        <span class=\"summary-sig-arg\">ddd</span>=<span class=\"summary-sig-default\">2</span>,\n        <span class=\"summary-sig-arg\">neg</span>=<span class=\"summary-sig-default\">'-'</span>,\n        <span class=\"summary-sig-arg\">pos</span>=<span class=\"summary-sig-default\">'+'</span>,\n        <span class=\"summary-sig-arg\">**s_D_M_S</span>)</span><br />\n      Convert <i>signed</i> <code>degrees</code> to string, without suffix.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== VARIABLES ==================== -->\n<a name=\"section-Variables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Variables</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"__all__\"></a><span class=\"summary-name\">__all__</span> = <code title=\"_ALL_LAZY.dms\">_ALL_LAZY.dms</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"S_DEG\"></a><span class=\"summary-name\">S_DEG</span> = <code title=\"'\\xc2\\xb0'\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">&deg;</code><code class=\"variable-quote\">'</code></code><br />\n      Degrees symbol, default <code>&quot;&#176;&quot;</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"S_MIN\"></a><span class=\"summary-name\">S_MIN</span> = <code title=\"'\\xe2\\x80\\xb2'\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">\\xe2\\x80\\xb2</code><code class=\"variable-quote\">'</code></code><br />\n      Minutes symbol, default <code>&quot;&#8242;&quot;</code> aka <i>PRIME</i>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"S_SEC\"></a><span class=\"summary-name\">S_SEC</span> = <code title=\"'\\xe2\\x80\\xb3'\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">&Prime;</code><code class=\"variable-quote\">'</code></code><br />\n      Seconds symbol, default <code>&quot;&#8243;&quot;</code> aka \n      <i>DOUBLE_PRIME</i>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"S_RAD\"></a><span class=\"summary-name\">S_RAD</span> = <code title=\"''\">''</code><br />\n      Radians symbol, default <code>&quot;&quot;</code> aka <a \n      href=\"pygeodesy-module.html#NN\" class=\"link\">pygeodesy.NN</a>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"S_DMS\"></a><span class=\"summary-name\">S_DMS</span> = <code title=\"True\">True</code><br />\n      If <code>True</code> include, otherwise cancel all DMS symbols, \n      default <code>True</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"S_SEP\"></a><span class=\"summary-name\">S_SEP</span> = <code title=\"''\">''</code><br />\n      Separator between <code>deg&#176;|min&#8242;|sec&#8243;|suffix</code>, default \n      <code>&quot;&quot;</code> aka <a href=\"pygeodesy-module.html#NN\" \n      class=\"link\">pygeodesy.NN</a>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"F_D\"></a><span class=\"summary-name\">F_D</span> = <code title=\"'d'\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">d</code><code class=\"variable-quote\">'</code></code><br />\n      Format degrees as unsigned &quot;deg&#176;&quot; with symbol, plus compass\n      point suffix <code>N, S, E</code> or <code>W</code> \n      (<code>str</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"F_D60\"></a><span class=\"summary-name\">F_D60</span> = <code title=\"'d60'\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">d60</code><code class=\"variable-quote\">'</code></code><br />\n      Format degrees as unsigned &quot;[D]DD.MMSS&quot; \n      <code>sexagecimal</code> <i>without</i> symbols, plus suffix \n      (<code>str</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"F_D60_\"></a><span class=\"summary-name\">F_D60_</span> = <code title=\"'-d60'\">'-d60'</code><br />\n      Format degrees as signed &quot;-/[D]DD.MMSS&quot; \n      <code>sexagecimal</code> <i>without</i> symbols, <i>without</i> \n      suffix (<code>str</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"F_D60__\"></a><span class=\"summary-name\">F_D60__</span> = <code title=\"'+d60'\">'+d60'</code><br />\n      Format degrees as signed &quot;-/+[D]DD.MMSS&quot; \n      <code>sexagecimal</code> <i>without</i> symbols, <i>without</i> \n      suffix (<code>str</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"F_DEG\"></a><span class=\"summary-name\">F_DEG</span> = <code title=\"'deg'\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">deg</code><code class=\"variable-quote\">'</code></code><br />\n      Format degrees as unsigned &quot;[D]DD&quot; <i>without</i> symbol, \n      plus suffix (<code>str</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"F_DEG_\"></a><span class=\"summary-name\">F_DEG_</span> = <code title=\"'-deg'\">'-deg'</code><br />\n      Format degrees as signed &quot;-/[D]DD&quot; <i>without</i> symbol, \n      <i>without</i> suffix (<code>str</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"F_DEG__\"></a><span class=\"summary-name\">F_DEG__</span> = <code title=\"'+deg'\">'+deg'</code><br />\n      Format degrees as signed &quot;-/+[D]DD&quot; <i>without</i> symbol, \n      <i>without</i> suffix (<code>str</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"F_DM\"></a><span class=\"summary-name\">F_DM</span> = <code title=\"'dm'\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">dm</code><code class=\"variable-quote\">'</code></code><br />\n      Format degrees as unsigned &quot;deg&#176;min&#8242;&quot; with symbols, plus \n      suffix (<code>str</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"F_DMS\"></a><span class=\"summary-name\">F_DMS</span> = <code title=\"'dms'\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">dms</code><code class=\"variable-quote\">'</code></code><br />\n      Format degrees as unsigned &quot;deg&#176;min&#8242;sec&#8243;&quot; with symbols, \n      plus suffix (<code>str</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"F_DMS_\"></a><span class=\"summary-name\">F_DMS_</span> = <code title=\"'-dms'\">'-dms'</code><br />\n      Format degrees as signed &quot;-/deg&#176;min&#8242;sec&#8243;&quot; with symbols, \n      <i>without</i> suffix (<code>str</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"F_DMS__\"></a><span class=\"summary-name\">F_DMS__</span> = <code title=\"'+dms'\">'+dms'</code><br />\n      Format degrees as signed &quot;-/+deg&#176;min&#8242;sec&#8243;&quot; with symbols, \n      <i>without</i> suffix (<code>str</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"F_DM_\"></a><span class=\"summary-name\">F_DM_</span> = <code title=\"'-dm'\">'-dm'</code><br />\n      Format degrees as signed &quot;-/deg&#176;min&#8242;&quot; with symbols, \n      <i>without</i> suffix (<code>str</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"F_DM__\"></a><span class=\"summary-name\">F_DM__</span> = <code title=\"'+dm'\">'+dm'</code><br />\n      Format degrees as signed &quot;-/+deg&#176;min&#8242;&quot; with symbols, \n      <i>without</i> suffix (<code>str</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"F_D_\"></a><span class=\"summary-name\">F_D_</span> = <code title=\"'-d'\">'-d'</code><br />\n      Format degrees as signed &quot;-/deg&#176;&quot; with symbol, \n      <i>without</i> suffix (<code>str</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"F_D__\"></a><span class=\"summary-name\">F_D__</span> = <code title=\"'+d'\">'+d'</code><br />\n      Format degrees as signed &quot;-/+deg&#176;&quot; with symbol, \n      <i>without</i> suffix (<code>str</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"F_MIN\"></a><span class=\"summary-name\">F_MIN</span> = <code title=\"'min'\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">min</code><code class=\"variable-quote\">'</code></code><br />\n      Format degrees as unsigned &quot;[D]DDMM&quot; <i>without</i> \n      symbols, plus suffix (<code>str</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"F_MIN_\"></a><span class=\"summary-name\">F_MIN_</span> = <code title=\"'-min'\">'-min'</code><br />\n      Format degrees as signed &quot;-/[D]DDMM&quot; <i>without</i> \n      symbols, <i>without</i> suffix (<code>str</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"F_MIN__\"></a><span class=\"summary-name\">F_MIN__</span> = <code title=\"'+min'\">'+min'</code><br />\n      Format degrees as signed &quot;-/+[D]DDMM&quot; <i>without</i> \n      symbols, without suffix (<code>str</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"F_RAD\"></a><span class=\"summary-name\">F_RAD</span> = <code title=\"'rad'\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">rad</code><code class=\"variable-quote\">'</code></code><br />\n      Convert degrees to radians and format as unsigned &quot;RR&quot; with\n      symbol, plus suffix (<code>str</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"F_RAD_\"></a><span class=\"summary-name\">F_RAD_</span> = <code title=\"'-rad'\">'-rad'</code><br />\n      Convert degrees to radians and format as signed &quot;-/RR&quot; \n      <i>without</i> symbol, <i>without</i> suffix (<code>str</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"F_RAD__\"></a><span class=\"summary-name\">F_RAD__</span> = <code title=\"'+rad'\">'+rad'</code><br />\n      Convert degrees to radians and format as signed &quot;-/+RR&quot; \n      <i>without</i> symbol, <i>without</i> suffix (<code>str</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"F_SEC\"></a><span class=\"summary-name\">F_SEC</span> = <code title=\"'sec'\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">sec</code><code class=\"variable-quote\">'</code></code><br />\n      Format degrees as unsigned &quot;[D]DDMMSS&quot; <i>without</i> \n      symbols, plus suffix (<code>str</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"F_SEC_\"></a><span class=\"summary-name\">F_SEC_</span> = <code title=\"'-sec'\">'-sec'</code><br />\n      Format degrees as signed &quot;-/[D]DDMMSS&quot; <i>without</i> \n      symbols, <i>without</i> suffix (<code>str</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"F_SEC__\"></a><span class=\"summary-name\">F_SEC__</span> = <code title=\"'+sec'\">'+sec'</code><br />\n      Format degrees as signed &quot;-/+[D]DDMMSS&quot; <i>without</i> \n      symbols, <i>without</i> suffix (<code>str</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"F__E\"></a><span class=\"summary-name\">F__E</span> = <code title=\"'e'\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">e</code><code class=\"variable-quote\">'</code></code><br />\n      Format degrees as unsigned &quot;%E&quot; <i>without</i> symbols, \n      plus suffix (<code>str</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"F__E_\"></a><span class=\"summary-name\">F__E_</span> = <code title=\"'-e'\">'-e'</code><br />\n      Format degrees as signed &quot;-/%E&quot; <i>without</i> symbols, \n      <i>without</i> suffix (<code>str</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"F__E__\"></a><span class=\"summary-name\">F__E__</span> = <code title=\"'+e'\">'+e'</code><br />\n      Format degrees as signed &quot;-/+%E&quot; <i>without</i> symbols, \n      <i>without</i> suffix (<code>str</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"F__F\"></a><span class=\"summary-name\">F__F</span> = <code title=\"'f'\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">f</code><code class=\"variable-quote\">'</code></code><br />\n      Format degrees as unsigned &quot;%F&quot; <i>without</i> symbols, \n      plus suffix (<code>str</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"F__F_\"></a><span class=\"summary-name\">F__F_</span> = <code title=\"'-f'\">'-f'</code><br />\n      Format degrees as signed &quot;-/%F&quot; <i>without</i> symbols, \n      <i>without</i> suffix (<code>str</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"F__F__\"></a><span class=\"summary-name\">F__F__</span> = <code title=\"'+f'\">'+f'</code><br />\n      Format degrees as signed &quot;-/+%F&quot; <i>without</i> symbols, \n      <i>without</i> suffix (<code>str</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"F__G\"></a><span class=\"summary-name\">F__G</span> = <code title=\"'g'\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">g</code><code class=\"variable-quote\">'</code></code><br />\n      Format degrees as unsigned &quot;%G&quot; <i>without</i> symbols, \n      plus suffix (<code>str</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"F__G_\"></a><span class=\"summary-name\">F__G_</span> = <code title=\"'-g'\">'-g'</code><br />\n      Format degrees as signed &quot;-/%G&quot; <i>without</i> symbols, \n      <i>without</i> suffix (<code>str</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"F__G__\"></a><span class=\"summary-name\">F__G__</span> = <code title=\"'+g'\">'+g'</code><br />\n      Format degrees as signed &quot;-/+%G&quot; <i>without</i> symbols, \n      <i>without</i> suffix (<code>str</code>).\n    </td>\n  </tr>\n</table>\n<!-- ==================== FUNCTION DETAILS ==================== -->\n<a name=\"section-FunctionDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Function Details</span></td>\n</tr>\n</table>\n<a name=\"bearingDMS\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">bearingDMS</span>&nbsp;(<span class=\"sig-arg\">bearing</span>,\n        <span class=\"sig-arg\">form</span>=<span class=\"sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">d</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"sig-arg\">prec</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">sep</span>=<span class=\"sig-default\">''</span>,\n        <span class=\"sig-arg\">**s_D_M_S</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert bearing to a string (without compass point suffix).</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>bearing</code></strong> - Bearing from North (compass <code>degrees360</code>).</li>\n        <li><strong class=\"pname\"><code>form</code></strong> - Format specifier for <b><code>deg</code></b> (<code>str</code> or\n          <code>F_...</code>).</li>\n        <li><strong class=\"pname\"><code>prec</code></strong> - Number of decimal digits (0..9 or <code>None</code> for default).</li>\n        <li><strong class=\"pname\"><code>sep</code></strong> - Separator between degrees, minutes, seconds, suffix \n          (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>s_D_M_S</code></strong> - Optional keyword arguments to override any or cancel all DMS \n          symbol suffixes, see function <a \n          href=\"pygeodesy.dms-module.html#toDMS\" \n          class=\"link\">pygeodesy.toDMS</a>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Compass degrees per the specified <b><code>form</code></b> \n          (<code>str</code>).</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.dms-module.html#toDMS\" \n        class=\"link\">pygeodesy.toDMS</a> and its <b>Notes</b> for further \n        details.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"clipDegrees\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">clipDegrees</span>&nbsp;(<span class=\"sig-arg\">deg</span>,\n        <span class=\"sig-arg\">limit</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Clip a lat- or longitude to the given range.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>deg</code></strong> - Unclipped lat- or longitude (<code>scalar degrees</code>).</li>\n        <li><strong class=\"pname\"><code>limit</code></strong> - Valid <code>-/+<b>limit</b></code> range (<code>degrees</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Clipped value (<code>degrees</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.RangeError-class.html\">RangeError</a></strong></code> - If <b><code>deg</code></b> outside the valid \n        <code>-/+<b>limit</b></code> range and <a \n        href=\"pygeodesy.errors-module.html#rangerrors\" \n        class=\"link\">rangerrors</a> is <code>True</code>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"clipRadians\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">clipRadians</span>&nbsp;(<span class=\"sig-arg\">rad</span>,\n        <span class=\"sig-arg\">limit</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Clip a lat- or longitude to the given range.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>rad</code></strong> - Unclipped lat- or longitude (<code>radians</code>).</li>\n        <li><strong class=\"pname\"><code>limit</code></strong> - Valid <code>-/+<b>limit</b></code> range (<code>radians</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Clipped value (<code>radians</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.RangeError-class.html\">RangeError</a></strong></code> - If <b><code>rad</code></b> outside the valid \n        <code>-/+<b>limit</b></code> range and <a \n        href=\"pygeodesy.errors-module.html#rangerrors\" \n        class=\"link\">rangerrors</a> is <code>True</code>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"compassDMS\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">compassDMS</span>&nbsp;(<span class=\"sig-arg\">bearing</span>,\n        <span class=\"sig-arg\">form</span>=<span class=\"sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">d</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"sig-arg\">prec</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">sep</span>=<span class=\"sig-default\">''</span>,\n        <span class=\"sig-arg\">**s_D_M_S</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert bearing to a string suffixed with compass point.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>bearing</code></strong> - Bearing from North (compass <code>degrees360</code>).</li>\n        <li><strong class=\"pname\"><code>form</code></strong> - Format specifier for <b><code>deg</code></b> (<code>str</code> or\n          <code>F_...</code>).</li>\n        <li><strong class=\"pname\"><code>prec</code></strong> - Number of decimal digits (0..9 or <code>None</code> for default).</li>\n        <li><strong class=\"pname\"><code>sep</code></strong> - Separator between degrees, minutes, seconds, suffix \n          (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>s_D_M_S</code></strong> - Optional keyword arguments to override any or cancel all DMS \n          symbol suffixes, see function <a \n          href=\"pygeodesy.dms-module.html#toDMS\" \n          class=\"link\">pygeodesy.toDMS</a>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Compass degrees and point in the specified form \n          (<code>str</code>).</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.dms-module.html#toDMS\" \n        class=\"link\">pygeodesy.toDMS</a> and its <b>Notes</b> for further \n        details.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"compassPoint\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">compassPoint</span>&nbsp;(<span class=\"sig-arg\">bearing</span>,\n        <span class=\"sig-arg\">prec</span>=<span class=\"sig-default\">3</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert a <code>bearing</code> from North to a compass point.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>bearing</code></strong> - Bearing (compass <code>degrees360</code>).</li>\n        <li><strong class=\"pname\"><code>prec</code></strong> - Precision, number of compass point characters: 1 for cardinal or \n          basic winds, 2 for intercardinal or ordinal or principal winds, 3\n          for secondary-intercardinal or half-winds or 4 for \n          quarter-winds).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Compass point (1-, 2-, 3- or 4-letter <code>str</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>bearing</code></b> or <b><code>prec</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"https://GitHub.com/ChrisVeness/geodesy/blob/master/dms.js\"\n        target=\"_top\">Dms.compassPoint</a> and <a \n        href=\"https://WikiPedia.org/wiki/Compass_rose\" \n        target=\"_top\">Compass rose</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"degDMS\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">degDMS</span>&nbsp;(<span class=\"sig-arg\">deg</span>,\n        <span class=\"sig-arg\">prec</span>=<span class=\"sig-default\">6</span>,\n        <span class=\"sig-arg\">s_D</span>=<span class=\"sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">&deg;</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"sig-arg\">s_M</span>=<span class=\"sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">\\xe2\\x80\\xb2</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"sig-arg\">s_S</span>=<span class=\"sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">&Prime;</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"sig-arg\">neg</span>=<span class=\"sig-default\">'-'</span>,\n        <span class=\"sig-arg\">pos</span>=<span class=\"sig-default\">''</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert degrees to a string in degrees, minutes <i>or</i> seconds.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>deg</code></strong> - Value in degrees (<code>scalar degrees</code>).</li>\n        <li><strong class=\"pname\"><code>prec</code></strong> - Number of decimal digits (0..9 or <code>None</code> for default).\n          Trailing zero decimals are stripped for \n          <code><b>prec</b>=1</code> and above, but kept for negative \n          <b><code>prec</code></b>.</li>\n        <li><strong class=\"pname\"><code>s_D</code></strong> - D symbol for degrees (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>s_M</code></strong> - M symbol for minutes (<code>str</code>) or \n          <code>&quot;&quot;</code> aka <a href=\"pygeodesy-module.html#NN\" \n          class=\"link\">pygeodesy.NN</a>.</li>\n        <li><strong class=\"pname\"><code>s_S</code></strong> - S symbol for seconds (<code>str</code>) or \n          <code>&quot;&quot;</code> aka <a href=\"pygeodesy-module.html#NN\" \n          class=\"link\">pygeodesy.NN</a>.</li>\n        <li><strong class=\"pname\"><code>neg</code></strong> - Optional sign for negative (<code>'-'</code>).</li>\n        <li><strong class=\"pname\"><code>pos</code></strong> - Optional sign for positive (<code>&quot;&quot;</code>) aka <a \n          href=\"pygeodesy-module.html#NN\" class=\"link\">pygeodesy.NN</a>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><i>Either</i> degrees, minutes <i>or</i> seconds \n          (<code>str</code>).</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.dms-module.html#toDMS\" \n        class=\"link\">pygeodesy.toDMS</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"latDMS\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">latDMS</span>&nbsp;(<span class=\"sig-arg\">deg</span>,\n        <span class=\"sig-arg\">form</span>=<span class=\"sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">dms</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"sig-arg\">prec</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">sep</span>=<span class=\"sig-default\">''</span>,\n        <span class=\"sig-arg\">**s_D_M_S</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert latitude to a string, optionally suffixed with N or S.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>deg</code></strong> - Latitude to be formatted (<code>scalar degrees</code>).</li>\n        <li><strong class=\"pname\"><code>form</code></strong> - Format specifier for <b><code>deg</code></b> (<code>str</code> or\n          <code>F_...</code>).</li>\n        <li><strong class=\"pname\"><code>prec</code></strong> - Number of decimal digits (0..9 or <code>None</code> for default).</li>\n        <li><strong class=\"pname\"><code>sep</code></strong> - Separator between degrees, minutes, seconds, suffix \n          (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>s_D_M_S</code></strong> - Optional keyword arguments to override any or cancel all DMS \n          symbol suffixes, see function <a \n          href=\"pygeodesy.dms-module.html#toDMS\" \n          class=\"link\">pygeodesy.toDMS</a>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Degrees in the specified form (<code>str</code>).</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.dms-module.html#toDMS\" \n        class=\"link\">pygeodesy.toDMS</a> and its <b>Notes</b> for further \n        details.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"latlonDMS\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">latlonDMS</span>&nbsp;(<span class=\"sig-arg\">lls</span>,\n        <span class=\"sig-arg\">**m_form_prec_sep_s_D_M_S</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert one or more <code>LatLon</code> instances to strings.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lls</code></strong> - Single (<code>LatLon</code>) or an iterable \n          (<code>LatLon</code>s).</li>\n        <li><strong class=\"pname\"><code>m_form_prec_sep_s_D_M_S</code></strong> - Optional keyword arguments <code><b>m</b>eter</code>, \n          <code><b>form</b>at</code>, <code><b>prec</b>ision</code>, \n          <b><code>s_D</code></b>, <b><code>s_M</code></b>, \n          <b><code>s_S</code></b>, <b><code>s_DMS</code></b> and \n          <i>DEPRECATED</i>  <code><b>sep</b>=None</code>, see function <a \n          href=\"pygeodesy.dms-module.html#toDMS\" \n          class=\"link\">pygeodesy.toDMS</a> and method \n          <code>LatLon.toStr</code> for more details.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <code>tuple</code> of <code>str</code>s if \n          <b><code>lls</code></b> is a list, sequence, tuple, etc. of \n          <code>LatLon</code>s or a single <code>str</code> if \n          <b><code>lls</code></b> is a single <code>LatLon</code>.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Functions <a href=\"pygeodesy.dms-module.html#latlonDMS_\" \n        class=\"link\">pygeodesy.latlonDMS_</a>, <a \n        href=\"pygeodesy.dms-module.html#latDMS\" \n        class=\"link\">pygeodesy.latDMS</a>, <a \n        href=\"pygeodesy.dms-module.html#lonDMS\" \n        class=\"link\">pygeodesy.lonDMS</a> and <a \n        href=\"pygeodesy.dms-module.html#toDMS\" \n        class=\"link\">pygeodesy.toDMS</a> and method \n        <code>LatLon.toStr</code>.\n      </p>\n      <p><strong>Note:</strong>\n        Keyword argument <code><b>sep</b>=None</code> to join the resturned\n        <code>tuple</code> has been <i>DEPRECATED</i>, use \n        <code><b>sep</b>.join(<b>latlonDMS_</b>(...))</code> instead.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"latlonDMS_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">latlonDMS_</span>&nbsp;(<span class=\"sig-arg\">*lls</span>,\n        <span class=\"sig-arg\">**m_form_prec_sep_s_D_M_S</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert one or more <code>LatLon</code> instances to strings.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lls</code></strong> - The instances (<code>LatLon</code>s), all positional arguments.</li>\n        <li><strong class=\"pname\"><code>m_form_prec_sep_s_D_M_S</code></strong> - Optional keyword arguments <code><b>m</b>eter</code>, \n          <code><b>form</b>at</code>, <code><b>prec</b>ision</code>, \n          <b><code>s_D</code></b>, <b><code>s_M</code></b>, \n          <b><code>s_S</code></b>, <b><code>s_DMS</code></b> and \n          <i>DEPRECATED</i>  <code><b>sep</b>=None</code>, see function <a \n          href=\"pygeodesy.dms-module.html#toDMS\" \n          class=\"link\">pygeodesy.toDMS</a> and method \n          <code>LatLon.toStr</code> for more details.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <code>tuple</code> of <code>str</code>s if 2 or more \n          <code>LatLon</code> instances or a single <code>str</code> if \n          only a single <code>LatLon</code> instance is given in \n          <b><code>lls</code></b>.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Functions <a href=\"pygeodesy.dms-module.html#latlonDMS\" \n        class=\"link\">pygeodesy.latlonDMS</a>, <a \n        href=\"pygeodesy.dms-module.html#latDMS\" \n        class=\"link\">pygeodesy.latDMS</a> and <a \n        href=\"pygeodesy.dms-module.html#lonDMS\" \n        class=\"link\">pygeodesy.lonDMS</a> and <a \n        href=\"pygeodesy.dms-module.html#toDMS\" \n        class=\"link\">pygeodesy.toDMS</a> and method \n        <code>LatLon.toStr</code>.\n      </p>\n      <p><strong>Note:</strong>\n        Keyword argument <code><b>sep</b>=None</code> to join the resturned\n        <code>tuple</code> has been <i>DEPRECATED</i>, use \n        <code><b>sep</b>.join(<b>latlonDMS_</b>(...))</code> instead.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"lonDMS\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">lonDMS</span>&nbsp;(<span class=\"sig-arg\">deg</span>,\n        <span class=\"sig-arg\">form</span>=<span class=\"sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">dms</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"sig-arg\">prec</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">sep</span>=<span class=\"sig-default\">''</span>,\n        <span class=\"sig-arg\">**s_D_M_S</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert longitude to a string, optionally suffixed with E or W.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>deg</code></strong> - Longitude to be formatted (<code>scalar degrees</code>).</li>\n        <li><strong class=\"pname\"><code>form</code></strong> - Format specifier for <b><code>deg</code></b> (<code>str</code> or\n          <code>F_...</code>).</li>\n        <li><strong class=\"pname\"><code>prec</code></strong> - Number of decimal digits (0..9 or <code>None</code> for default).</li>\n        <li><strong class=\"pname\"><code>sep</code></strong> - Separator between degrees, minutes, seconds, suffix \n          (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>s_D_M_S</code></strong> - Optional keyword arguments to override any or cancel all DMS \n          symbol suffixes.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Degrees in the specified form (<code>str</code>).</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.dms-module.html#toDMS\" \n        class=\"link\">pygeodesy.toDMS</a> and its <b>Notes</b> for further \n        details.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"normDMS\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">normDMS</span>&nbsp;(<span class=\"sig-arg\">strDMS</span>,\n        <span class=\"sig-arg\">norm</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**s_D_M_S</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Normalize all degrees, minutes and seconds (DMS) <i>symbol</i> \n  suffixes in a string to the default symbols <a \n  href=\"pygeodesy.dms-module.html#S_DEG\" class=\"link\">S_DEG</a>, <a \n  href=\"pygeodesy.dms-module.html#S_MIN\" class=\"link\">S_MIN</a>, <a \n  href=\"pygeodesy.dms-module.html#S_SEC\" class=\"link\">S_SEC</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>strDMS</code></strong> - Original DMS string (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>norm</code></strong> - Optional replacement symbol (<code>str</code>) or \n          <code>None</code> for the default DMS symbol).  Use \n          <code><b>norm</b>=&quot;&quot;</code> to remove all DMS symbols.</li>\n        <li><strong class=\"pname\"><code>s_D_M_S</code></strong> - Optional, alternate DMS symbol suffixes \n          <code><b>s_D</b>=</code><a href=\"pygeodesy.dms-module.html#S_DEG\"\n          class=\"link\">S_DEG</a>, <code><b>s_M</b>=</code><a \n          href=\"pygeodesy.dms-module.html#S_MIN\" class=\"link\">S_MIN</a>, \n          <code><b>s_S</b>=</code><a href=\"pygeodesy.dms-module.html#S_SEC\"\n          class=\"link\">S_SEC</a> and <code><b>s_R</b>=</code><a \n          href=\"pygeodesy.dms-module.html#S_RAD\" class=\"link\">S_RAD</a> for\n          radians, each to be replaced by <b><code>norm</code></b>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Normalized DMS (<code>str</code>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"parseDDDMMSS\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">parseDDDMMSS</span>&nbsp;(<span class=\"sig-arg\">strDDDMMSS</span>,\n        <span class=\"sig-arg\">suffix</span>=<span class=\"sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">NSEW</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"sig-arg\">sep</span>=<span class=\"sig-default\">''</span>,\n        <span class=\"sig-arg\">clip</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">sexagecimal</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Parse a lat- or longitude represention forms as [D]DDMMSS in \n  degrees.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>strDDDMMSS</code></strong> - Degrees in any of several forms (<code>str</code>) and types \n          (<code>float</code>, <code>int</code>, other).</li>\n        <li><strong class=\"pname\"><code>suffix</code></strong> - Optional compass points (<code>str</code>), valid in \n          <b><code>strDDDMMSS</code></b>.</li>\n        <li><strong class=\"pname\"><code>sep</code></strong> - Optional separator between &quot;[D]DD&quot;, &quot;MM&quot;, \n          &quot;SS&quot;, <b><code>suffix</code></b> (<a \n          href=\"pygeodesy.dms-module.html#S_SEP\" class=\"link\">S_SEP</a>) in\n          <b><code>strDDDMMSS</code></b>.</li>\n        <li><strong class=\"pname\"><code>clip</code></strong> - Optionally, limit value to range <code>-/+<b>clip</b></code> \n          (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>sexagecimal</code></strong> - If <code>True</code>, convert <code>&quot;D.MMSS&quot;</code> or \n          <code>float(D.MMSS)</code> to <code>base-60</code> &quot;MM&quot;\n          and &quot;SS&quot; digits.  See <code>form</code>s <a \n          href=\"pygeodesy.dms-module.html#F_D60\" class=\"link\">F_D60</a>, <a\n          href=\"pygeodesy.dms-module.html#F_D60_\" class=\"link\">F_D60_</a> \n          and <a href=\"pygeodesy.dms-module.html#F_D60__\" \n          class=\"link\">F_D60__</a>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Degrees (<code>float</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.ParseError-class.html\">ParseError</a></strong></code> - Invalid <b><code>strDDDMMSS</code></b> or <b><code>clip</code></b> \n        or the form of <b><code>strDDDMMSS</code></b> is incompatible with \n        or invalid for the given <b><code>suffix</code></b> compass \n        point(s).</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.RangeError-class.html\">RangeError</a></strong></code> - Value of <b><code>strDDDMMSS</code></b> outside the valid \n        <code>-/+<b>clip</b></code> range and <a \n        href=\"pygeodesy.errors-module.html#rangerrors\" \n        class=\"link\">rangerrors</a> is <code>True</code>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <strong>Notes:</strong>\n      <ul class=\"nomargin-top\">\n        <li>\n        Type <code>str</code> values &quot;[D]DD&quot;, \n        &quot;[D]DDMM&quot;, &quot;[D]DDMMSS&quot; and \n        &quot;[D]DD.MMSS&quot; for <b><code>strDDDMMSS</code></b> are \n        parsed properly only if <i>either</i> unsigned and suffixed with a \n        valid, compatible, <code>cardinal</code> <a \n        href=\"pygeodesy.dms-module.html#compassPoint\" \n        class=\"link\">compassPoint</a> <i>or</i> signed <i>or</i> unsigned, \n        unsuffixed and with keyword argument \n        <b><code>suffix</code>=&quot;NS&quot;</b>, \n        <b><code>suffix</code>=&quot;EW&quot;</b> or a compatible <a \n        href=\"pygeodesy.dms-module.html#compassPoint\" \n        class=\"link\">compassPoint</a>.\n        </li>\n        <li>\n        Unlike function <a href=\"pygeodesy.dms-module.html#parseDMS\" \n        class=\"link\">parseDMS</a>, type <code>float</code>, \n        <code>int</code> and other non-<code>str</code> \n        <b><code>strDDDMMSS</code></b> values are interpreted as \n        <code>form</code> [D]DDMMSS or [D]DD.MMSS.  For example, \n        <code>int(1230)</code> is returned as 12.5 and <i>not 1230.0</i> \n        degrees.  However, <code>int(345)</code> is considered \n        <code>form</code> &quot;DDD&quot; 345 <i>and not &quot;DDMM&quot; \n        0345</i>, unless <b><code>suffix</code></b> specifies the compass \n        point.  Also, <code>float(15.0523)</code> is returned as 15.0523 \n        decimal degrees and <i>not 15&#176;5&#8242;23&#8243; sexagecimal</i>.  To consider \n        the latter, use <code>float(15.0523)</code> or \n        <code>&quot;15.0523&quot;</code> and specify the keyword argument \n        <code><b>sexagecimal</b>=True</code>.\n        </li>\n      </ul>\n      <p><strong>See Also:</strong>\n        Functions <a href=\"pygeodesy.dms-module.html#parseDMS\" \n        class=\"link\">pygeodesy.parseDMS</a>, <a \n        href=\"pygeodesy.dms-module.html#parseDMS2\" \n        class=\"link\">pygeodesy.parseDMS2</a> and <a \n        href=\"pygeodesy.dms-module.html#parse3llh\" \n        class=\"link\">pygeodesy.parse3llh</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"parseDMS\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">parseDMS</span>&nbsp;(<span class=\"sig-arg\">strDMS</span>,\n        <span class=\"sig-arg\">suffix</span>=<span class=\"sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">NSEW</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"sig-arg\">sep</span>=<span class=\"sig-default\">''</span>,\n        <span class=\"sig-arg\">clip</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">**s_D_M_S</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Parse a lat- or longitude representation in <code>degrees</code>.</p>\n  <p>This is very flexible on formats, allowing signed decimal degrees, \n  degrees and minutes or degrees minutes and seconds optionally suffixed by\n  a cardinal compass point.</p>\n  <p>A variety of symbols, separators and suffixes are accepted, for \n  example &quot;3&#176;37&#8242;09&#8243;W&quot;.  Minutes and seconds may be omitted.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>strDMS</code></strong> - Degrees in any of several forms (<code>str</code>) and types \n          (<code>float</code>, <code>int</code>, other).</li>\n        <li><strong class=\"pname\"><code>suffix</code></strong> - Optional, valid compass points (<code>str</code>, \n          <code>tuple</code>).</li>\n        <li><strong class=\"pname\"><code>sep</code></strong> - Optional separator between <code>deg&#176;</code>, <code>min&#8242;</code>, \n          <code>sec&#8243;</code>, <b><code>suffix</code></b> (<code>''</code>).</li>\n        <li><strong class=\"pname\"><code>clip</code></strong> - Optionally, limit value to range <code>-/+<b>clip</b></code> \n          (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>s_D_M_S</code></strong> - Optional, alternate DMS symbol suffixes for degrees \n          <code><b>s_D</b>=</code><a href=\"pygeodesy.dms-module.html#S_DEG\"\n          class=\"link\">S_DEG</a>, minutes <code><b>s_M</b>=</code><a \n          href=\"pygeodesy.dms-module.html#S_MIN\" class=\"link\">S_MIN</a> and\n          seconds <code><b>s_S</b>=</code><a \n          href=\"pygeodesy.dms-module.html#S_SEC\" class=\"link\">S_SEC</a>, \n          see function <a href=\"pygeodesy.dms-module.html#toDMS\" \n          class=\"link\">pygeodesy.toDMS</a>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Degrees (<code>float</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.ParseError-class.html\">ParseError</a></strong></code> - Invalid <b><code>strDMS</code></b> or <b><code>clip</code></b>.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.RangeError-class.html\">RangeError</a></strong></code> - Value of <b><code>strDMS</code></b> outside the valid \n        <code>-/+<b>clip</b></code> range and <a \n        href=\"pygeodesy.errors-module.html#rangerrors\" \n        class=\"link\">rangerrors</a> is <code>True</code>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        Unlike function <a href=\"pygeodesy.dms-module.html#parseDDDMMSS\" \n        class=\"link\">parseDDDMMSS</a>, type <code>float</code>, \n        <code>int</code> and other non-<code>str</code> \n        <b><code>strDMS</code></b> values are considered decimal (and not \n        sexagecimal) degrees. For example, <code>int(1230)</code> is \n        returned as 1230.0 <i>and not as 12.5</i> degrees and \n        <code>float(345)</code> as 345.0 <i>and not as 3.75</i> degrees!\n      </p>\n      <p><strong>See Also:</strong>\n        Functions <a href=\"pygeodesy.dms-module.html#parseDDDMMSS\" \n        class=\"link\">pygeodesy.parseDDDMMSS</a>, <a \n        href=\"pygeodesy.dms-module.html#parseDMS2\" \n        class=\"link\">pygeodesy.parseDMS2</a>, <a \n        href=\"pygeodesy.dms-module.html#parse3llh\" \n        class=\"link\">pygeodesy.parse3llh</a> and <a \n        href=\"pygeodesy.dms-module.html#toDMS\" \n        class=\"link\">pygeodesy.toDMS</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"parseDMS2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">parseDMS2</span>&nbsp;(<span class=\"sig-arg\">strLat</span>,\n        <span class=\"sig-arg\">strLon</span>,\n        <span class=\"sig-arg\">sep</span>=<span class=\"sig-default\">''</span>,\n        <span class=\"sig-arg\">clipLat</span>=<span class=\"sig-default\">90</span>,\n        <span class=\"sig-arg\">clipLon</span>=<span class=\"sig-default\">180</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">**s_D_M_S</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Parse a lat- and a longitude representions <code>&quot;lat, \n  lon&quot;</code> in <code>degrees</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>strLat</code></strong> - Latitude in any of several forms (<code>str</code> or \n          <code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>strLon</code></strong> - Longitude in any of several forms (<code>str</code> or \n          <code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>sep</code></strong> - Optional separator between deg&#176;, min&#8242;, sec&#8243;, suffix \n          (<code>''</code>).</li>\n        <li><strong class=\"pname\"><code>clipLat</code></strong> - Limit latitude to range <code>-/+<b>clipLat</b></code> \n          (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>clipLon</code></strong> - Limit longitude to range <code>-/+<b>clipLon</b></code> \n          (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> the lat- and \n          longitude, overriding <b><code>clipLat</code></b> and \n          <b><code>clipLon</code></b> (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>s_D_M_S</code></strong> - Optional, alternate DMS symbol suffixes for degrees \n          <code><b>s_D</b>=</code><a href=\"pygeodesy.dms-module.html#S_DEG\"\n          class=\"link\">S_DEG</a>, minutes <code><b>s_M</b>=</code><a \n          href=\"pygeodesy.dms-module.html#S_MIN\" class=\"link\">S_MIN</a> and\n          seconds <code><b>s_S</b>=</code><a \n          href=\"pygeodesy.dms-module.html#S_SEC\" class=\"link\">S_SEC</a>, \n          see function <a href=\"pygeodesy.dms-module.html#toDMS\" \n          class=\"link\">pygeodesy.toDMS</a>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.namedTuples.LatLon2Tuple-class.html\" \n          class=\"link\">LatLon2Tuple</a><code>(lat, lon)</code> in \n          <code>degrees</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.ParseError-class.html\">ParseError</a></strong></code> - Invalid <b><code>strLat</code></b> or <b><code>strLon</code></b>.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.RangeError-class.html\">RangeError</a></strong></code> - Value of <b><code>strLat</code></b> or <b><code>strLon</code></b> \n        outside the valid <code>-/+<b>clipLat</b></code> or \n        <code>-/+<b>clipLon</b></code> range and <a \n        href=\"pygeodesy.errors-module.html#rangerrors\" \n        class=\"link\">rangerrors</a> is <code>True</code>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        See the <b>Notes</b> at function <a \n        href=\"pygeodesy.dms-module.html#parseDMS\" \n        class=\"link\">parseDMS</a>.\n      </p>\n      <p><strong>See Also:</strong>\n        Functions <a href=\"pygeodesy.dms-module.html#parseDDDMMSS\" \n        class=\"link\">pygeodesy.parseDDDMMSS</a>, <a \n        href=\"pygeodesy.dms-module.html#parseDMS\" \n        class=\"link\">pygeodesy.parseDMS</a>, <a \n        href=\"pygeodesy.dms-module.html#parse3llh\" \n        class=\"link\">pygeodesy.parse3llh</a> and <a \n        href=\"pygeodesy.dms-module.html#toDMS\" \n        class=\"link\">pygeodesy.toDMS</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"parse3llh\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">parse3llh</span>&nbsp;(<span class=\"sig-arg\">strllh</span>,\n        <span class=\"sig-arg\">height</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">sep</span>=<span class=\"sig-default\">','</span>,\n        <span class=\"sig-arg\">clipLat</span>=<span class=\"sig-default\">90</span>,\n        <span class=\"sig-arg\">clipLon</span>=<span class=\"sig-default\">180</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">**s_D_M_S</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Parse a string <code>&quot;lat, lon [, h]&quot;</code> representing \n  lat-, longitude in <code>degrees</code> and optional height in \n  <code>meter</code>.</p>\n  <p>The lat- and longitude value must be separated by a separator \n  character.  If height is present it must follow, separated by another \n  separator.</p>\n  <p>The lat- and longitude values may be swapped, provided at least one \n  ends with the proper compass point.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>strllh</code></strong> - Latitude, longitude[, height] (<code>str</code>, ...).</li>\n        <li><strong class=\"pname\"><code>height</code></strong> - Optional, default height (<code>meter</code>) or \n          <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>sep</code></strong> - Optional separator between <code>&quot;lat lon [h] \n          suffix&quot;</code> (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>clipLat</code></strong> - Limit latitude to range <code>-/+<b>clipLat</b></code> \n          (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>clipLon</code></strong> - Limit longitude to range <code>-/+<b>clipLon</b></code> \n          (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> the lat- and \n          longitude, overriding <b><code>clipLat</code></b> and \n          <b><code>clipLon</code></b> (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>s_D_M_S</code></strong> - Optional, alternate DMS symbol suffixes for degrees \n          <code><b>s_D</b>=</code><a href=\"pygeodesy.dms-module.html#S_DEG\"\n          class=\"link\">S_DEG</a>, minutes <code><b>s_M</b>=</code><a \n          href=\"pygeodesy.dms-module.html#S_MIN\" class=\"link\">S_MIN</a> and\n          seconds <code><b>s_S</b>=</code><a \n          href=\"pygeodesy.dms-module.html#S_SEC\" class=\"link\">S_SEC</a>, \n          see function <a href=\"pygeodesy.dms-module.html#toDMS\" \n          class=\"link\">pygeodesy.toDMS</a>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.namedTuples.LatLon3Tuple-class.html\" \n          class=\"link\">LatLon3Tuple</a><code>(lat, lon, height)</code> in \n          <code>degrees</code>, <code>degrees</code> and \n          <code>float</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.RangeError-class.html\">RangeError</a></strong></code> - Lat- or longitude value of <b><code>strllh</code></b> outside the \n        valid <code>-/+<b>clipLat</b></code> or \n        <code>-/+<b>clipLon</b></code> range and <a \n        href=\"pygeodesy.errors-module.html#rangerrors\" \n        class=\"link\">rangerrors</a> is <code>True</code>.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>strllh</code></b> or <b><code>height</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        See the <b>Notes</b> at function <a \n        href=\"pygeodesy.dms-module.html#parseDMS\" \n        class=\"link\">parseDMS</a>.\n      </p>\n      <p><strong>See Also:</strong>\n        Functions <a href=\"pygeodesy.dms-module.html#parseDDDMMSS\" \n        class=\"link\">pygeodesy.parseDDDMMSS</a>, <a \n        href=\"pygeodesy.dms-module.html#parseDMS\" \n        class=\"link\">pygeodesy.parseDMS</a>, <a \n        href=\"pygeodesy.dms-module.html#parseDMS2\" \n        class=\"link\">pygeodesy.parseDMS2</a> and <a \n        href=\"pygeodesy.dms-module.html#toDMS\" \n        class=\"link\">pygeodesy.toDMS</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"parseRad\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">parseRad</span>&nbsp;(<span class=\"sig-arg\">strRad</span>,\n        <span class=\"sig-arg\">suffix</span>=<span class=\"sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">NSEW</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"sig-arg\">clip</span>=<span class=\"sig-default\">0</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Parse a string representing angle in <code>radians</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>strRad</code></strong> - Degrees in any of several forms (<code>str</code> or \n          <code>radians</code>).</li>\n        <li><strong class=\"pname\"><code>suffix</code></strong> - Optional, valid compass points (<code>str</code>, \n          <code>tuple</code>).</li>\n        <li><strong class=\"pname\"><code>clip</code></strong> - Optionally, limit value to range <code>-/+<b>clip</b></code> \n          (<code>radians</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Radians (<code>float</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.ParseError-class.html\">ParseError</a></strong></code> - Invalid <b><code>strRad</code></b> or <b><code>clip</code></b>.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.RangeError-class.html\">RangeError</a></strong></code> - Value of <b><code>strRad</code></b> outside the valid \n        <code>-/+<b>clip</b></code> range and <a \n        href=\"pygeodesy.errors-module.html#rangerrors\" \n        class=\"link\">rangerrors</a> is <code>True</code>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"precision\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">precision</span>&nbsp;(<span class=\"sig-arg\">form</span>,\n        <span class=\"sig-arg\">prec</span>=<span class=\"sig-default\">None</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Set the default precison for a given F_ form.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>form</code></strong> - <a href=\"pygeodesy.dms-module.html#F_D\" class=\"link\">F_D</a>, <a \n          href=\"pygeodesy.dms-module.html#F_DM\" class=\"link\">F_DM</a>, <a \n          href=\"pygeodesy.dms-module.html#F_DMS\" class=\"link\">F_DMS</a>, <a\n          href=\"pygeodesy.dms-module.html#F_DEG\" class=\"link\">F_DEG</a>, <a\n          href=\"pygeodesy.dms-module.html#F_MIN\" class=\"link\">F_MIN</a>, <a\n          href=\"pygeodesy.dms-module.html#F_SEC\" class=\"link\">F_SEC</a>, <a\n          href=\"pygeodesy.dms-module.html#F_D60\" class=\"link\">F_D60</a>, <a\n          href=\"pygeodesy.dms-module.html#F__E\" class=\"link\">F__E</a>, <a \n          href=\"pygeodesy.dms-module.html#F__F\" class=\"link\">F__F</a>, <a \n          href=\"pygeodesy.dms-module.html#F__G\" class=\"link\">F__G</a> or <a\n          href=\"pygeodesy.dms-module.html#F_RAD\" class=\"link\">F_RAD</a> \n          (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>prec</code></strong> - Number of decimal digits (0..9 or <code>None</code> for default).\n          Trailing zero decimals are stripped for \n          <code><b>prec</b>=1</code> and above, but kept for negative \n          <b><code>prec</code></b>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Previous precision for the <b><code>form</code></b> \n          (<code>int</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>form</code></b> or <b><code>prec</code></b> or \n        <b><code>prec</code></b> outside range <code>-9..+9</code>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toDMS\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toDMS</span>&nbsp;(<span class=\"sig-arg\">deg</span>,\n        <span class=\"sig-arg\">form</span>=<span class=\"sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">dms</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"sig-arg\">prec</span>=<span class=\"sig-default\">2</span>,\n        <span class=\"sig-arg\">sep</span>=<span class=\"sig-default\">''</span>,\n        <span class=\"sig-arg\">ddd</span>=<span class=\"sig-default\">2</span>,\n        <span class=\"sig-arg\">neg</span>=<span class=\"sig-default\">'-'</span>,\n        <span class=\"sig-arg\">pos</span>=<span class=\"sig-default\">'+'</span>,\n        <span class=\"sig-arg\">**s_D_M_S</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert <i>signed</i> <code>degrees</code> to string, without \n  suffix.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>deg</code></strong> - Degrees to be formatted (<code>scalar degrees</code>).</li>\n        <li><strong class=\"pname\"><code>form</code></strong> - Format specifier for <b><code>deg</code></b> (<code>str</code> or\n          <a href=\"pygeodesy.dms-module.html#F_D\" class=\"link\">F_D</a>, <a \n          href=\"pygeodesy.dms-module.html#F_DM\" class=\"link\">F_DM</a>, <a \n          href=\"pygeodesy.dms-module.html#F_DMS\" class=\"link\">F_DMS</a>, <a\n          href=\"pygeodesy.dms-module.html#F_DEG\" class=\"link\">F_DEG</a>, <a\n          href=\"pygeodesy.dms-module.html#F_MIN\" class=\"link\">F_MIN</a>, <a\n          href=\"pygeodesy.dms-module.html#F_SEC\" class=\"link\">F_SEC</a>, <a\n          href=\"pygeodesy.dms-module.html#F_D60\" class=\"link\">F_D60</a>, <a\n          href=\"pygeodesy.dms-module.html#F__E\" class=\"link\">F__E</a>, <a \n          href=\"pygeodesy.dms-module.html#F__F\" class=\"link\">F__F</a>, <a \n          href=\"pygeodesy.dms-module.html#F__G\" class=\"link\">F__G</a>, <a \n          href=\"pygeodesy.dms-module.html#F_RAD\" class=\"link\">F_RAD</a>, <a\n          href=\"pygeodesy.dms-module.html#F_D_\" class=\"link\">F_D_</a>, <a \n          href=\"pygeodesy.dms-module.html#F_DM_\" class=\"link\">F_DM_</a>, <a\n          href=\"pygeodesy.dms-module.html#F_DMS_\" class=\"link\">F_DMS_</a>, \n          <a href=\"pygeodesy.dms-module.html#F_DEG_\" \n          class=\"link\">F_DEG_</a>, <a \n          href=\"pygeodesy.dms-module.html#F_MIN_\" class=\"link\">F_MIN_</a>, \n          <a href=\"pygeodesy.dms-module.html#F_SEC_\" \n          class=\"link\">F_SEC_</a>, <a \n          href=\"pygeodesy.dms-module.html#F_D60_\" class=\"link\">F_D60_</a>, \n          <a href=\"pygeodesy.dms-module.html#F__E_\" class=\"link\">F__E_</a>,\n          <a href=\"pygeodesy.dms-module.html#F__F_\" class=\"link\">F__F_</a>,\n          <a href=\"pygeodesy.dms-module.html#F__G_\" class=\"link\">F__G_</a>,\n          <a href=\"pygeodesy.dms-module.html#F_RAD_\" \n          class=\"link\">F_RAD_</a>, <a \n          href=\"pygeodesy.dms-module.html#F_D__\" class=\"link\">F_D__</a>, <a\n          href=\"pygeodesy.dms-module.html#F_DM__\" class=\"link\">F_DM__</a>, \n          <a href=\"pygeodesy.dms-module.html#F_DMS__\" \n          class=\"link\">F_DMS__</a>, <a \n          href=\"pygeodesy.dms-module.html#F_DEG__\" \n          class=\"link\">F_DEG__</a>, <a \n          href=\"pygeodesy.dms-module.html#F_MIN__\" \n          class=\"link\">F_MIN__</a>, <a \n          href=\"pygeodesy.dms-module.html#F_SEC__\" \n          class=\"link\">F_SEC__</a>, <a \n          href=\"pygeodesy.dms-module.html#F_D60__\" \n          class=\"link\">F_D60__</a>, <a \n          href=\"pygeodesy.dms-module.html#F__E__\" class=\"link\">F__E__</a>, \n          <a href=\"pygeodesy.dms-module.html#F__F__\" \n          class=\"link\">F__F__</a>, <a \n          href=\"pygeodesy.dms-module.html#F__G__\" class=\"link\">F__G__</a> \n          or <a href=\"pygeodesy.dms-module.html#F_RAD__\" \n          class=\"link\">F_RAD__</a>).</li>\n        <li><strong class=\"pname\"><code>prec</code></strong> - Number of decimal digits (0..9 or <code>None</code> for default).\n          Trailing zero decimals are stripped for \n          <code><b>prec</b>=1</code> and above, but kept for negative \n          <b><code>prec</code></b>.</li>\n        <li><strong class=\"pname\"><code>sep</code></strong> - Separator between degrees, minutes, seconds, suffix \n          (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>ddd</code></strong> - Number of (integer) digits for <b><code>deg</code>&#176;</b> (2 or 3).</li>\n        <li><strong class=\"pname\"><code>neg</code></strong> - Prefix for negative <b><code>deg</code></b> (<code>'-'</code>).</li>\n        <li><strong class=\"pname\"><code>pos</code></strong> - Prefix for positive <b><code>deg</code></b> and signed \n          <b><code>form</code></b> (<code>'+'</code>).</li>\n        <li><strong class=\"pname\"><code>s_D_M_S</code></strong> - Optional keyword arguments <code><b>s_D</b>=</code><a \n          href=\"pygeodesy.dms-module.html#S_DEG\" class=\"link\">S_DEG</a>, \n          <code><b>s_M</b>=</code><a href=\"pygeodesy.dms-module.html#S_MIN\"\n          class=\"link\">S_MIN</a> <code><b>s_S</b>=</code><a \n          href=\"pygeodesy.dms-module.html#S_SEC\" class=\"link\">S_SEC</a>, \n          <code><b>s_R</b>=</code><a href=\"pygeodesy.dms-module.html#S_RAD\"\n          class=\"link\">S_RAD</a> and <code><b>s_DMS</b>=True</code> to \n          override any or cancel all DMS symbol suffixes.  See the \n          <b>Notes</b> below.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Degrees in the specified form (<code>str</code>).</dd>\n  </dl>\n<div class=\"fields\">      <strong>Notes:</strong>\n      <ul class=\"nomargin-top\">\n        <li>\n        The degrees, minutes and seconds (DMS) symbol can be overridden in \n        this and other <code>*DMS</code> functions by using optional \n        keyword argments <code><b>s_D</b>=&quot;d&quot;</code>, \n        <code><b>s_M</b>=&quot;'&quot;</code> respectively \n        <code><b>s_S</b>='&quot;'</code>.  Using \n        <b><code>s_DMS</code>=None</b> cancels all <code>DMS</code> symbols\n        to <code>&quot;&quot;</code> aka <a href=\"pygeodesy-module.html#NN\"\n        class=\"link\">pygeodesy.NN</a>.\n        </li>\n        <li>\n        Sexagecimal format <b><code>F_D60</code></b> supports overridable \n        pseudo-DMS symbols positioned at \n        <code>&quot;[D]DD&lt;<b>s_D</b>&gt;MM&lt;<b>s_M</b>&gt;SS&lt;<b>s_S</b>&gt;&quot;</code>\n        with defaults <code><b>s_D</b>=&quot;.&quot;</code>, \n        <code><b>s_M</b>=<b>sep</b></code> and <code><b>s_S</b>=</code><a \n        href=\"pygeodesy-module.html#NN\" class=\"link\">pygeodesy.NN</a>.\n        </li>\n        <li>\n        Formats <b><code>F__E</code></b>, <b><code>F__F</code></b> and \n        <b><code>F__G</code></b> is extended with a <code>D</code>-only \n        symbol suffix if defined with keyword argument \n        <code><b>s_D</b>=</code><a href=\"pygeodesy-module.html#NN\" \n        class=\"link\">pygeodesy.NN</a>. Likewise for \n        <b><code>F_RAD</code></b> forms with keyword argument \n        <code><b>s_R</b>=</code><a href=\"pygeodesy.dms-module.html#S_RAD\" \n        class=\"link\">S_RAD</a>.\n        </li>\n      </ul>\n      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.dms-module.html#degDMS\" \n        class=\"link\">pygeodesy.degDMS</a>\n      </p>\n</div></td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.ecef-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.ecef</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        Module&nbsp;ecef\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.ecef-module.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== MODULE DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Module ecef</h1><p class=\"nomargin-top\"></p>\n<p><i>Geocentric</i> Earth-Centered, Earth-Fixed (ECEF) coordinates.</p>\n  <p>Geocentric conversions transcoded from <i>Charles Karney</i>'s C++ \n  class <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Geocentric.html\"\n  target=\"_top\">Geocentric</a> into pure Python class <a \n  href=\"pygeodesy.ecef.EcefKarney-class.html\" class=\"link\">EcefKarney</a>, \n  class <a href=\"pygeodesy.ecef.EcefSudano-class.html\" \n  class=\"link\">EcefSudano</a> based on <i>John Sudano</i>'s <a \n  href=\"https://www.ResearchGate.net/publication/3709199_An_exact_conversion_from_an_Earth-centered_coordinate_system_to_latitude_longitude_and_altitude\"\n  target=\"_top\">paper</a>, class <a \n  href=\"pygeodesy.ecef.EcefUPC-class.html\" class=\"link\">EcefUPC</a> using \n  the <i>Universitat Polit&#232;cnica de Catalunya</i>'s <a \n  href=\"https://GSSC.ESA.int/navipedia/GNSS_Book/ESA_GNSS-Book_TM-23_Vol_I.pdf\"\n  target=\"_top\">method, page 186</a>, class <a \n  href=\"pygeodesy.ecef.EcefVeness-class.html\" class=\"link\">EcefVeness</a> \n  transcoded from <i>Chris Veness</i>' JavaScript classes <a \n  href=\"https://www.Movable-Type.co.UK/scripts/geodesy/docs/latlon-ellipsoidal.js.html\"\n  target=\"_top\">LatLonEllipsoidal, Cartesian</a>, class <a \n  href=\"pygeodesy.ecef.EcefYou-class.html\" class=\"link\">EcefYou</a> \n  implementing <i>Rey-Jer You</i>'s <a \n  href=\"https://www.ResearchGate.net/publication/240359424\" \n  target=\"_top\">transformations</a> and classes <a \n  href=\"pygeodesy.ecef.EcefFarrell22-class.html\" \n  class=\"link\">EcefFarrell22</a> and <a \n  href=\"pygeodesy.ecef.EcefFarrell22-class.html\" \n  class=\"link\">EcefFarrell22</a> from <i>Jay A. Farrell</i>'s <a \n  href=\"https://Books.Google.com/books?id=fW4foWASY6wC\" target=\"_top\">Table\n  2.1 and 2.2</a>, page 29-30.</p>\n  <p>Following is a copy of <i>Karney</i>'s <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Geocentric.html\"\n  target=\"_top\">Detailed Description</a>.</p>\n  <p>Convert between geodetic coordinates <code>lat</code>-, \n  <code>lon</code>gitude and height <code>h</code> (measured vertically \n  from the surface of the ellipsoid) to geocentric <code>x</code>, \n  <code>y</code> and <code>z</code> coordinates, also known as \n  <i>Earth-Centered, Earth-Fixed</i> (<a \n  href=\"https://WikiPedia.org/wiki/ECEF\" target=\"_top\">ECEF</a>).</p>\n  <p>The origin of geocentric coordinates is at the center of the earth.  \n  The <code>z</code> axis goes thru the North pole, <code>lat</code> = 90&#176;.\n  The <code>x</code> axis goes thru <code>lat</code> = 0&#176;, <code>lon</code>\n  = 0&#176;.</p>\n  <p>The <i>local (cartesian) origin</i> is at (<code>lat0</code>, \n  <code>lon0</code>, <code>height0</code>).  The <i>local</i> \n  <code>x</code> axis points East, the <i>local</i> <code>y</code> axis \n  points North and the <i>local</i> <code>z</code> axis is normal to the \n  ellipsoid.  The plane <code>z = -height0</code> is tangent to the \n  ellipsoid, hence the alternate name <i>local tangent plane</i>.</p>\n  <p>Forward conversion from geodetic to geocentric (ECEF) coordinates is \n  straightforward.</p>\n  <p>For the reverse transformation we use Hugues Vermeille's <a \n  href=\"https://DOI.org/10.1007/s00190-002-0273-6\" target=\"_top\"><i>Direct \n  transformation from geocentric coordinates to geodetic \n  coordinates</i></a>, J. Geodesy (2002) 76, page 451-454.</p>\n  <p>Several changes have been made to ensure that the method returns \n  accurate results for all finite inputs (even if h is infinite).  The \n  changes are described in Appendix B of C. F. F. Karney <a \n  href=\"https://ArXiv.org/abs/1102.1215v1\" target=\"_top\"><i>Geodesics on an\n  ellipsoid of revolution</i></a>, Feb. 2011, 85, 105-117 (<a \n  href=\"https://ArXiv.org/abs/1102.1215v1\" target=\"_top\">preprint</a>).  \n  Vermeille similarly updated his method in <a \n  href=\"https://DOI.org/10.1007/s00190-010-0419-x\" target=\"_top\"><i>An \n  analytical method to transform geocentric into geodetic \n  coordinates</i></a>, J. Geodesy (2011) 85, page 105-117.  See <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/geocentric.html\" \n  target=\"_top\">Geocentric coordinates</a> for more information.</p>\n  <p>The errors in these routines are close to round-off.  Specifically, \n  for points within 5,000 Km of the surface of the ellipsoid (either inside\n  or outside the ellipsoid), the error is bounded by 7 nm (7 nanometers) \n  for the WGS84 ellipsoid.  See <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/geocentric.html\" \n  target=\"_top\">Geocentric coordinates</a> for further information on the \n  errors.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Note:</strong>\n        The <code>reverse</code> methods of all <code>Ecef...</code> \n        classes return by default <code>INT0</code> as the (geodetic) \n        longitude for <i>polar</i> ECEF location <code>x == y == 0</code>.\n        Use keyword argument <code>lon00</code> or property \n        <code>lon00</code> to configure that value.\n      </p>\n      <p><strong>See Also:</strong>\n        Module <a href=\"pygeodesy.ltp-module.html\" class=\"link\">ltp</a> and\n        class <a href=\"pygeodesy.ltp.LocalCartesian-class.html\" \n        class=\"link\">LocalCartesian</a>, a transcription of <i>Charles \n        Karney</i>'s C++ class <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1LocalCartesian.html\"\n        target=\"_top\">LocalCartesian</a>, for conversion between geodetic \n        and <i>local cartesian</i> coordinates in a <i>local tangent \n        plane</i> as opposed to <i>geocentric</i> (ECEF) ones.\n      </p>\n      <p><strong>Version:</strong>\n        25.08.31\n      </p>\n</div><!-- ==================== CLASSES ==================== -->\n<a name=\"section-Classes\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Classes</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ecef.EcefError-class.html\" class=\"summary-name\">EcefError</a><br />\n      An ECEF or <code>Ecef*</code> related issue.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ecef._EcefBase-class.html\" class=\"summary-name\">_EcefBase</a><br />\n      (INTERNAL) Base class for <code>Ecef*</code> conversion classes.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ecef.EcefFarrell21-class.html\" class=\"summary-name\">EcefFarrell21</a><br />\n      Conversion between geodetic and geocentric, <i>Earth-Centered, \n        Earth-Fixed</i> (ECEF) coordinates based on <i>Jay A. Farrell</i>'s\n        <a href=\"https://Books.Google.com/books?id=fW4foWASY6wC\" \n        target=\"_top\">Table 2.1</a>, page 29.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ecef.EcefFarrell22-class.html\" class=\"summary-name\">EcefFarrell22</a><br />\n      Conversion between geodetic and geocentric, <i>Earth-Centered, \n        Earth-Fixed</i> (ECEF) coordinates based on <i>Jay A. Farrell</i>'s\n        <a href=\"https://Books.Google.com/books?id=fW4foWASY6wC\" \n        target=\"_top\">Table 2.2</a>, page 30.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ecef.EcefKarney-class.html\" class=\"summary-name\">EcefKarney</a><br />\n      Conversion between geodetic and geocentric, <i>Earth-Centered, \n        Earth-Fixed</i> (ECEF) coordinates transcoded from <i>Karney</i>'s \n        C++ <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Geocentric.html\"\n        target=\"_top\">Geocentric</a> methods.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ecef.EcefSudano-class.html\" class=\"summary-name\">EcefSudano</a><br />\n      Conversion between geodetic and geocentric, <i>Earth-Centered, \n        Earth-Fixed</i> (ECEF) coordinates based on <i>John J. Sudano</i>'s\n        <a href=\"https://www.ResearchGate.net/publication/3709199\" \n        target=\"_top\">paper</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ecef.EcefUPC-class.html\" class=\"summary-name\">EcefUPC</a><br />\n      Conversion between geodetic and geocentric, <i>Earth-Centered, \n        Earth-Fixed</i> (ECEF) coordinates based on <i>UPC</i>'s <a \n        href=\"https://GSSC.ESA.int/navipedia/index.php/Ellipsoidal_and_Cartesian_Coordinates_Conversion\"\n        target=\"_top\">method</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ecef.EcefVeness-class.html\" class=\"summary-name\">EcefVeness</a><br />\n      Conversion between geodetic and geocentric, <i>Earth-Centered, \n        Earth-Fixed</i> (ECEF) coordinates transcoded from <i>Chris \n        Veness</i>' JavaScript classes <a \n        href=\"https://www.Movable-Type.co.UK/scripts/geodesy/docs/latlon-ellipsoidal.js.html\"\n        target=\"_top\">LatLonEllipsoidal, Cartesian</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ecef.EcefYou-class.html\" class=\"summary-name\">EcefYou</a><br />\n      Conversion between geodetic and geocentric, <i>Earth-Centered, \n        Earth-Fixed</i> (ECEF) coordinates using <i>Rey-Jer You</i>'s <a \n        href=\"https://www.ResearchGate.net/publication/240359424\" \n        target=\"_top\">transformation</a> for <i>non-prolate</i> ellipsoids.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ecef.EcefMatrix-class.html\" class=\"summary-name\">EcefMatrix</a><br />\n      A rotation matrix known as <i>East-North-Up (ENU) to ECEF</i>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ecef.Ecef9Tuple-class.html\" class=\"summary-name\">Ecef9Tuple</a><br />\n      9-Tuple <code>(x, y, z, lat, lon, height, C, M, datum)</code> with \n        <i>geocentric</i> <code>x</code>, <code>y</code> and <code>z</code>\n        plus <i>geodetic</i> <code>lat</code>, <code>lon</code> and \n        <code>height</code>, case <code>C</code> and optionally, rotation \n        matrix <code>M</code> (<a \n        href=\"pygeodesy.ecef.EcefMatrix-class.html\" \n        class=\"link\">EcefMatrix</a>) and <code>datum</code>, with \n        <code>lat</code> and <code>lon</code> in <code>degrees</code> and \n        <code>x</code>, <code>y</code>, <code>z</code> and \n        <code>height</code> in <code>meter</code>, conventionally.\n    </td>\n  </tr>\n</table>\n<!-- ==================== VARIABLES ==================== -->\n<a name=\"section-Variables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Variables</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"__all__\"></a><span class=\"summary-name\">__all__</span> = <code title=\"_ALL_LAZY.ecef\">_ALL_LAZY.ecef</code>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.ecef.Ecef9Tuple-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.ecef.Ecef9Tuple</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.ecef-module.html\">Module&nbsp;ecef</a> ::\n        Class&nbsp;Ecef9Tuple\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.ecef.Ecef9Tuple-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Ecef9Tuple</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n       object --+        \n                |        \n            tuple --+    \n                    |    \n       object --+   |    \n                |   |    \n     <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n                    |    \n    <a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a> --+\n                        |\n       object --+       |\n                |       |\n     <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+   |\n                    |   |\n<a href=\"pygeodesy.ecefLocals._EcefLocal-class.html\">ecefLocals._EcefLocal</a> --+\n                        |\n                       <strong class=\"uidshort\">Ecef9Tuple</strong>\n</pre>\n\n<hr />\n<p>9-Tuple <code>(x, y, z, lat, lon, height, C, M, datum)</code> with \n  <i>geocentric</i> <code>x</code>, <code>y</code> and <code>z</code> plus \n  <i>geodetic</i> <code>lat</code>, <code>lon</code> and \n  <code>height</code>, case <code>C</code> and optionally, rotation matrix \n  <code>M</code> (<a href=\"pygeodesy.ecef.EcefMatrix-class.html\" \n  class=\"link\">EcefMatrix</a>) and <code>datum</code>, with \n  <code>lat</code> and <code>lon</code> in <code>degrees</code> and \n  <code>x</code>, <code>y</code>, <code>z</code> and <code>height</code> in\n  <code>meter</code>, conventionally.  Case <code>C=1</code> means normal, \n  <code>C=2</code> near polar and <code>C=3</code> equatorial latitude and \n  <code>C=4</code> height exceeds <code>heightMax</code>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ecef.Ecef9Tuple-class.html#convertDatum\" class=\"summary-sig-name\">convertDatum</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">datum2</span>)</span><br />\n      DEPRECATED, use method <a \n      href=\"pygeodesy.ecef.Ecef9Tuple-class.html#toDatum\" \n      class=\"link\">toDatum</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ecef.Ecef9Tuple-class.html#toCartesian\" class=\"summary-sig-name\">toCartesian</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">Cartesian</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**Cartesian_kwds</span>)</span><br />\n      Return the geocentric <code>(x, y, z)</code> coordinates as an \n      ellipsoidal or spherical <code>Cartesian</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ecef.Ecef9Tuple-class.html#toDatum\" class=\"summary-sig-name\">toDatum</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">datum2</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Convert this <code>Ecef9Tuple</code> to an other datum.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ecef.Ecef9Tuple-class.html#toLatLon\" class=\"summary-sig-name\">toLatLon</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">LatLon</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**LatLon_kwds</span>)</span><br />\n      Return the geodetic <code>(lat, lon, height[, datum])</code> \n      coordinates.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ecef.Ecef9Tuple-class.html#toVector\" class=\"summary-sig-name\">toVector</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">Vector</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**Vector_kwds</span>)</span><br />\n      Return these geocentric <code>(x, y, z)</code> coordinates as vector.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__delattr__\">__delattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__getattr__\">__getattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__setattr__\">__setattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#items\">items</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iteritems\">iteritems</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iterunits\">iterunits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#reUnit\">reUnit</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toUnits\">toUnits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>tuple</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__eq__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__iter__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__rmul__</code>,\n      <code>count</code>,\n      <code>index</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html\">ecefLocals._EcefLocal</a></code></b>:\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toAer\">toAer</a></code>,\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toEnu\">toEnu</a></code>,\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toLocal\">toLocal</a></code>,\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toLtp\">toLtp</a></code>,\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toNed\">toNed</a></code>,\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toXyz\">toXyz</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__new__\">__new__</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ecef.Ecef9Tuple-class.html#ellipsoid\" class=\"summary-name\">ellipsoid</a><br />\n      Get the ellipsoid (<a \n      href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n      class=\"link\">Ellipsoid</a>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ecef.Ecef9Tuple-class.html#lam\" class=\"summary-name\">lam</a><br />\n      Get the longitude in <code>radians</code> (<code>float</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ecef.Ecef9Tuple-class.html#lamVermeille\" class=\"summary-name\">lamVermeille</a><br />\n      Get the longitude in <code>radians</code> <i \n      class=\"math\">[-PI*3/2..+PI*3/2]</i> after <a \n      href=\"https://Search.ProQuest.com/docview/639493848\" \n      target=\"_top\">Vermeille</a> (2004), page 95.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ecef.Ecef9Tuple-class.html#latlon\" class=\"summary-name\">latlon</a><br />\n      Get the lat-, longitude in <code>degrees</code> (<a \n      href=\"pygeodesy.namedTuples.LatLon2Tuple-class.html\" \n      class=\"link\">LatLon2Tuple</a><code>(lat, lon)</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ecef.Ecef9Tuple-class.html#latlonheight\" class=\"summary-name\">latlonheight</a><br />\n      Get the lat-, longitude in <code>degrees</code> and height (<a \n      href=\"pygeodesy.namedTuples.LatLon3Tuple-class.html\" \n      class=\"link\">LatLon3Tuple</a><code>(lat, lon, height)</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ecef.Ecef9Tuple-class.html#latlonheightdatum\" class=\"summary-name\">latlonheightdatum</a><br />\n      Get the lat-, longitude in <code>degrees</code> with height and datum\n      (<a href=\"pygeodesy.namedTuples.LatLon4Tuple-class.html\" \n      class=\"link\">LatLon4Tuple</a><code>(lat, lon, height, datum)</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ecef.Ecef9Tuple-class.html#latlonVermeille\" class=\"summary-name\">latlonVermeille</a><br />\n      Get the latitude and <i>Vermeille</i> longitude in <code>degrees \n      [-225..+225]</code> (<a \n      href=\"pygeodesy.namedTuples.LatLon2Tuple-class.html\" \n      class=\"link\">LatLon2Tuple</a><code>(lat, lon)</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ecef.Ecef9Tuple-class.html#lonVermeille\" class=\"summary-name\">lonVermeille</a><br />\n      Get the longitude in <code>degrees [-225..+225]</code> after <a \n      href=\"https://Search.ProQuest.com/docview/639493848\" \n      target=\"_top\">Vermeille</a> 2004, page 95.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ecef.Ecef9Tuple-class.html#Mx\" class=\"summary-name\">Mx</a><br />\n      Compute rotation matrix (<a \n      href=\"pygeodesy.ecef.EcefMatrix-class.html\" \n      class=\"link\">EcefMatrix</a>), seperate from <code>M</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ecef.Ecef9Tuple-class.html#phi\" class=\"summary-name\">phi</a><br />\n      Get the latitude in <code>radians</code> (<code>float</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ecef.Ecef9Tuple-class.html#philam\" class=\"summary-name\">philam</a><br />\n      Get the lat-, longitude in <code>radians</code> (<a \n      href=\"pygeodesy.namedTuples.PhiLam2Tuple-class.html\" \n      class=\"link\">PhiLam2Tuple</a><code>(phi, lam)</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ecef.Ecef9Tuple-class.html#philamheight\" class=\"summary-name\">philamheight</a><br />\n      Get the lat-, longitude in <code>radians</code> and height (<a \n      href=\"pygeodesy.namedTuples.PhiLam3Tuple-class.html\" \n      class=\"link\">PhiLam3Tuple</a><code>(phi, lam, height)</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ecef.Ecef9Tuple-class.html#philamheightdatum\" class=\"summary-name\">philamheightdatum</a><br />\n      Get the lat-, longitude in <code>radians</code> with height and datum\n      (<a href=\"pygeodesy.namedTuples.PhiLam4Tuple-class.html\" \n      class=\"link\">PhiLam4Tuple</a><code>(phi, lam, height, datum)</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ecef.Ecef9Tuple-class.html#philamVermeille\" class=\"summary-name\">philamVermeille</a><br />\n      Get the latitude and <i>Vermeille</i> longitude in <code>radians \n      [-PI*3/2..+PI*3/2]</code> (<a \n      href=\"pygeodesy.namedTuples.PhiLam2Tuple-class.html\" \n      class=\"link\">PhiLam2Tuple</a><code>(phi, lam)</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ecef.Ecef9Tuple-class.html#phiVermeille\" class=\"summary-name\">phiVermeille</a><br />\n      Get the latitude in <code>radians</code> (<code>float</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ecef.Ecef9Tuple-class.html#xyz\" class=\"summary-name\">xyz</a><br />\n      Get the geocentric <code>(x, y, z)</code> coordinates (<a \n      href=\"pygeodesy.namedTuples.Vector3Tuple-class.html\" \n      class=\"link\">Vector3Tuple</a><code>(x, y, z)</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ecef.Ecef9Tuple-class.html#xyzh\" class=\"summary-name\">xyzh</a><br />\n      Get the geocentric <code>(x, y, z)</code> coordinates and \n      <code>height</code> (<a \n      href=\"pygeodesy.namedTuples.Vector4Tuple-class.html\" \n      class=\"link\">Vector4Tuple</a><code>(x, y, z, h)</code>)\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html\">ecefLocals._EcefLocal</a></code></b>:\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#Ecef\">Ecef</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"convertDatum\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">convertDatum</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">datum2</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use method <a \n  href=\"pygeodesy.ecef.Ecef9Tuple-class.html#toDatum\" \n  class=\"link\">toDatum</a>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_method</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toCartesian\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toCartesian</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">Cartesian</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**Cartesian_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the geocentric <code>(x, y, z)</code> coordinates as an \n  ellipsoidal or spherical <code>Cartesian</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>Cartesian</code></strong> - Optional class to return <code>(x, y, z)</code> (<a \n          href=\"pygeodesy.ellipsoidalKarney.Cartesian-class.html\" \n          class=\"link\">ellipsoidalKarney.Cartesian</a>, <a \n          href=\"pygeodesy.ellipsoidalNvector.Cartesian-class.html\" \n          class=\"link\">ellipsoidalNvector.Cartesian</a>, <a \n          href=\"pygeodesy.ellipsoidalVincenty.Cartesian-class.html\" \n          class=\"link\">ellipsoidalVincenty.Cartesian</a>, <a \n          href=\"pygeodesy.sphericalNvector.Cartesian-class.html\" \n          class=\"link\">sphericalNvector.Cartesian</a> or <a \n          href=\"pygeodesy.sphericalTrigonometry.Cartesian-class.html\" \n          class=\"link\">sphericalTrigonometry.Cartesian</a>) or \n          <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>Cartesian_kwds</code></strong> - Optionally, additional <b><code>Cartesian</code></b> keyword \n          arguments, ignored if <code><b>Cartesian</b> is None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <b><code>Cartesian</code></b> instance or a <a \n          href=\"pygeodesy.namedTuples.Vector4Tuple-class.html\" \n          class=\"link\">Vector4Tuple</a><code>(x, y, z, h)</code> if \n          <code><b>Cartesian</b> is None</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>Cartesian</code></b> or \n        <b><code>Cartesian_kwds</code></b> item.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toDatum\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toDatum</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">datum2</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert this <code>Ecef9Tuple</code> to an other datum.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>datum2</code></strong> - Datum to convert <i>to</i> (<a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The converted 9-Tuple (<code>Ecef9Tuple</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - The <b><code>datum2</code></b> is not a <a \n        href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toLatLon\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toLatLon</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">LatLon</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**LatLon_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the geodetic <code>(lat, lon, height[, datum])</code> \n  coordinates.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>LatLon</code></strong> - Optional class to return <code>(lat, lon, height[, datum])</code>\n          or <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>LatLon_kwds</code></strong> - Optional <b><code>height</code></b>, <b><code>datum</code></b> \n          and other <b><code>LatLon</code></b> keyword arguments.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <b><code>LatLon</code></b> instance or if <code><b>LatLon</b> \n          is None</code>, a <a \n          href=\"pygeodesy.namedTuples.LatLon4Tuple-class.html\" \n          class=\"link\">LatLon4Tuple</a><code>(lat, lon, height, \n          datum)</code> or <a \n          href=\"pygeodesy.namedTuples.LatLon3Tuple-class.html\" \n          class=\"link\">LatLon3Tuple</a><code>(lat, lon, height)</code> if \n          <code>datum</code> is specified or not.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>LatLon</code></b> or \n        <b><code>LatLon_kwds</code></b> item.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toVector\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toVector</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">Vector</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**Vector_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return these geocentric <code>(x, y, z)</code> coordinates as \n  vector.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>Vector</code></strong> - Optional vector class to return <code>(x, y, z)</code> or \n          <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>Vector_kwds</code></strong> - Optional, additional <b><code>Vector</code></b> keyword \n          arguments, ignored if <code><b>Vector</b> is None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <b><code>Vector</code></b> instance or a <a \n          href=\"pygeodesy.namedTuples.Vector3Tuple-class.html\" \n          class=\"link\">Vector3Tuple</a><code>(x, y, z)</code> if \n          <code><b>Vector</b> is None</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>Vector</code></b> or \n        <b><code>Vector_kwds</code></b> item.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Propertes <code>xyz</code> and <code>xyzh</code>\n      </p>\n</div></td></tr></table>\n</div>\n<br />\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"ellipsoid\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">ellipsoid</h3>\n  <p>Get the ellipsoid (<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\"\n  class=\"link\">Ellipsoid</a>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">ellipsoid(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the ellipsoid (<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \nclass=\"link\">Ellipsoid</a>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"lam\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">lam</h3>\n  <p>Get the longitude in <code>radians</code> (<code>float</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">lam(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the longitude in <code>radians</code> (<code>float</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"lamVermeille\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">lamVermeille</h3>\n  <p>Get the longitude in <code>radians</code> <i \n  class=\"math\">[-PI*3/2..+PI*3/2]</i> after <a \n  href=\"https://Search.ProQuest.com/docview/639493848\" \n  target=\"_top\">Vermeille</a> (2004), page 95.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">lamVermeille(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the longitude in <code>radians</code> <i \nclass=\"math\">[-PI*3/2..+PI*3/2]</i> after <a \nhref=\"https://Search.ProQuest.com/docview/639493848\" \ntarget=\"_top\">Vermeille</a> (2004), page 95.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/geocentric.html\"\n        target=\"_top\">Karney</a>, <a \n        href=\"https://Search.ProQuest.com/docview/847292978\" \n        target=\"_top\">Vermeille</a> 2011, pp 112-113, 116 and <a \n        href=\"https://Search.ProQuest.com/docview/872827242\" \n        target=\"_top\">Featherstone, et.al.</a>, page 7.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"latlon\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">latlon</h3>\n  <p>Get the lat-, longitude in <code>degrees</code> (<a \n  href=\"pygeodesy.namedTuples.LatLon2Tuple-class.html\" \n  class=\"link\">LatLon2Tuple</a><code>(lat, lon)</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">latlon(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the lat-, longitude in <code>degrees</code> (<a \nhref=\"pygeodesy.namedTuples.LatLon2Tuple-class.html\" \nclass=\"link\">LatLon2Tuple</a><code>(lat, lon)</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"latlonheight\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">latlonheight</h3>\n  <p>Get the lat-, longitude in <code>degrees</code> and height (<a \n  href=\"pygeodesy.namedTuples.LatLon3Tuple-class.html\" \n  class=\"link\">LatLon3Tuple</a><code>(lat, lon, height)</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">latlonheight(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the lat-, longitude in <code>degrees</code> and height (<a \nhref=\"pygeodesy.namedTuples.LatLon3Tuple-class.html\" \nclass=\"link\">LatLon3Tuple</a><code>(lat, lon, height)</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"latlonheightdatum\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">latlonheightdatum</h3>\n  <p>Get the lat-, longitude in <code>degrees</code> with height and datum \n  (<a href=\"pygeodesy.namedTuples.LatLon4Tuple-class.html\" \n  class=\"link\">LatLon4Tuple</a><code>(lat, lon, height, datum)</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">latlonheightdatum(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the lat-, longitude in <code>degrees</code> with height and datum (<a \nhref=\"pygeodesy.namedTuples.LatLon4Tuple-class.html\" \nclass=\"link\">LatLon4Tuple</a><code>(lat, lon, height, datum)</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"latlonVermeille\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">latlonVermeille</h3>\n  <p>Get the latitude and <i>Vermeille</i> longitude in <code>degrees \n  [-225..+225]</code> (<a \n  href=\"pygeodesy.namedTuples.LatLon2Tuple-class.html\" \n  class=\"link\">LatLon2Tuple</a><code>(lat, lon)</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">latlonVermeille(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the latitude and <i>Vermeille</i> longitude in <code>degrees \n[-225..+225]</code> (<a \nhref=\"pygeodesy.namedTuples.LatLon2Tuple-class.html\" \nclass=\"link\">LatLon2Tuple</a><code>(lat, lon)</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Property <code>lonVermeille</code>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"lonVermeille\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">lonVermeille</h3>\n  <p>Get the longitude in <code>degrees [-225..+225]</code> after <a \n  href=\"https://Search.ProQuest.com/docview/639493848\" \n  target=\"_top\">Vermeille</a> 2004, page 95.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">lonVermeille(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the longitude in <code>degrees [-225..+225]</code> after <a \nhref=\"https://Search.ProQuest.com/docview/639493848\" \ntarget=\"_top\">Vermeille</a> 2004, page 95.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Property <code>lamVermeille</code>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"Mx\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">Mx</h3>\n  <p>Compute rotation matrix (<a \n  href=\"pygeodesy.ecef.EcefMatrix-class.html\" class=\"link\">EcefMatrix</a>),\n  seperate from <code>M</code>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">Mx(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Compute rotation matrix (<a href=\"pygeodesy.ecef.EcefMatrix-class.html\" \nclass=\"link\">EcefMatrix</a>), seperate from <code>M</code>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"phi\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">phi</h3>\n  <p>Get the latitude in <code>radians</code> (<code>float</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">phi(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the latitude in <code>radians</code> (<code>float</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"philam\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">philam</h3>\n  <p>Get the lat-, longitude in <code>radians</code> (<a \n  href=\"pygeodesy.namedTuples.PhiLam2Tuple-class.html\" \n  class=\"link\">PhiLam2Tuple</a><code>(phi, lam)</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">philam(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the lat-, longitude in <code>radians</code> (<a \nhref=\"pygeodesy.namedTuples.PhiLam2Tuple-class.html\" \nclass=\"link\">PhiLam2Tuple</a><code>(phi, lam)</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"philamheight\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">philamheight</h3>\n  <p>Get the lat-, longitude in <code>radians</code> and height (<a \n  href=\"pygeodesy.namedTuples.PhiLam3Tuple-class.html\" \n  class=\"link\">PhiLam3Tuple</a><code>(phi, lam, height)</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">philamheight(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the lat-, longitude in <code>radians</code> and height (<a \nhref=\"pygeodesy.namedTuples.PhiLam3Tuple-class.html\" \nclass=\"link\">PhiLam3Tuple</a><code>(phi, lam, height)</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"philamheightdatum\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">philamheightdatum</h3>\n  <p>Get the lat-, longitude in <code>radians</code> with height and datum \n  (<a href=\"pygeodesy.namedTuples.PhiLam4Tuple-class.html\" \n  class=\"link\">PhiLam4Tuple</a><code>(phi, lam, height, datum)</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">philamheightdatum(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the lat-, longitude in <code>radians</code> with height and datum (<a \nhref=\"pygeodesy.namedTuples.PhiLam4Tuple-class.html\" \nclass=\"link\">PhiLam4Tuple</a><code>(phi, lam, height, datum)</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"philamVermeille\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">philamVermeille</h3>\n  <p>Get the latitude and <i>Vermeille</i> longitude in <code>radians \n  [-PI*3/2..+PI*3/2]</code> (<a \n  href=\"pygeodesy.namedTuples.PhiLam2Tuple-class.html\" \n  class=\"link\">PhiLam2Tuple</a><code>(phi, lam)</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">philamVermeille(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the latitude and <i>Vermeille</i> longitude in <code>radians \n[-PI*3/2..+PI*3/2]</code> (<a \nhref=\"pygeodesy.namedTuples.PhiLam2Tuple-class.html\" \nclass=\"link\">PhiLam2Tuple</a><code>(phi, lam)</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Property <code>lamVermeille</code>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"phiVermeille\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">phiVermeille</h3>\n  <p>Get the latitude in <code>radians</code> (<code>float</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">phi(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the latitude in <code>radians</code> (<code>float</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"xyz\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">xyz</h3>\n  <p>Get the geocentric <code>(x, y, z)</code> coordinates (<a \n  href=\"pygeodesy.namedTuples.Vector3Tuple-class.html\" \n  class=\"link\">Vector3Tuple</a><code>(x, y, z)</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">xyz(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the geocentric <code>(x, y, z)</code> coordinates (<a \nhref=\"pygeodesy.namedTuples.Vector3Tuple-class.html\" \nclass=\"link\">Vector3Tuple</a><code>(x, y, z)</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"xyzh\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">xyzh</h3>\n  <p>Get the geocentric <code>(x, y, z)</code> coordinates and \n  <code>height</code> (<a \n  href=\"pygeodesy.namedTuples.Vector4Tuple-class.html\" \n  class=\"link\">Vector4Tuple</a><code>(x, y, z, h)</code>)</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">xyzh(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the geocentric <code>(x, y, z)</code> coordinates and \n<code>height</code> (<a \nhref=\"pygeodesy.namedTuples.Vector4Tuple-class.html\" \nclass=\"link\">Vector4Tuple</a><code>(x, y, z, h)</code>)\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.ecef.EcefError-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.ecef.EcefError</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.ecef-module.html\">Module&nbsp;ecef</a> ::\n        Class&nbsp;EcefError\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.ecef.EcefError-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class EcefError</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n              object --+                    \n                       |                    \nexceptions.BaseException --+                \n                           |                \n        exceptions.Exception --+            \n                               |            \n        exceptions.StandardError --+        \n                                   |        \n               exceptions.ValueError --+    \n                                       |    \n                      errors._ValueError --+\n                                           |\n                                          <strong class=\"uidshort\">EcefError</strong>\n</pre>\n\n<hr />\n<p>An ECEF or <code>Ecef*</code> related issue.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>errors._ValueError</code></b>:\n      <code>__init__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.ValueError</code></b>:\n      <code>__new__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.BaseException</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getslice__</code>,\n      <code>__reduce__</code>,\n      <code>__repr__</code>,\n      <code>__setattr__</code>,\n      <code>__setstate__</code>,\n      <code>__str__</code>,\n      <code>__unicode__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__format__</code>,\n      <code>__hash__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.BaseException</code></b>:\n      <code>args</code>,\n      <code>message</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.ecef.EcefFarrell21-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.ecef.EcefFarrell21</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.ecef-module.html\">Module&nbsp;ecef</a> ::\n        Class&nbsp;EcefFarrell21\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.ecef.EcefFarrell21-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class EcefFarrell21</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+            \n           |            \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+        \n               |        \n<a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+    \n                   |    \n           <a href=\"pygeodesy.ecef._EcefBase-class.html\">_EcefBase</a> --+\n                       |\n                      <strong class=\"uidshort\">EcefFarrell21</strong>\n</pre>\n\n<hr />\n<p>Conversion between geodetic and geocentric, <i>Earth-Centered, \n  Earth-Fixed</i> (ECEF) coordinates based on <i>Jay A. Farrell</i>'s <a \n  href=\"https://Books.Google.com/books?id=fW4foWASY6wC\" target=\"_top\">Table\n  2.1</a>, page 29.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ecef.EcefFarrell21-class.html#reverse\" class=\"summary-sig-name\">reverse</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">xyz</span>,\n        <span class=\"summary-sig-arg\">y</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">z</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">M</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**lon00_name</span>)</span><br />\n      Convert from geocentric <code>(x, y, z)</code> to geodetic \n      <code>(lat, lon, height)</code> using <i>Farrell</i>'s <a \n      href=\"https://Books.Google.com/books?id=fW4foWASY6wC\" \n      target=\"_top\">Table 2.1</a>, page 29, aka the <i>Heikkinen \n      application</i> of <a \n      href=\"https://WikiPedia.org/wiki/Geographic_coordinate_conversion\" \n      target=\"_top\">Ferrari's solution</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.ecef._EcefBase-class.html\">_EcefBase</a></code></b>:\n      <code><a href=\"pygeodesy.ecef._EcefBase-class.html#__eq__\">__eq__</a></code>,\n      <code><a href=\"pygeodesy.ecef._EcefBase-class.html#__init__\">__init__</a></code>,\n      <code><a href=\"pygeodesy.ecef._EcefBase-class.html#forward\">forward</a></code>,\n      <code><a href=\"pygeodesy.ecef._EcefBase-class.html#forward_\">forward_</a></code>,\n      <code><a href=\"pygeodesy.ecef._EcefBase-class.html#toStr\">toStr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#others\">others</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#toRepr\">toRepr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.ecef._EcefBase-class.html\">_EcefBase</a></code></b>:\n      <code><a href=\"pygeodesy.ecef._EcefBase-class.html#a\">a</a></code>,\n      <code><a href=\"pygeodesy.ecef._EcefBase-class.html#datum\">datum</a></code>,\n      <code><a href=\"pygeodesy.ecef._EcefBase-class.html#ellipsoid\">ellipsoid</a></code>,\n      <code><a href=\"pygeodesy.ecef._EcefBase-class.html#equatoradius\">equatoradius</a></code>,\n      <code><a href=\"pygeodesy.ecef._EcefBase-class.html#equatorialRadius\">equatorialRadius</a></code>,\n      <code><a href=\"pygeodesy.ecef._EcefBase-class.html#f\">f</a></code>,\n      <code><a href=\"pygeodesy.ecef._EcefBase-class.html#flattening\">flattening</a></code>,\n      <code><a href=\"pygeodesy.ecef._EcefBase-class.html#lon00\">lon00</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"reverse\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">reverse</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">xyz</span>,\n        <span class=\"sig-arg\">y</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">z</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">M</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**lon00_name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert from geocentric <code>(x, y, z)</code> to geodetic <code>(lat,\n  lon, height)</code> using <i>Farrell</i>'s <a \n  href=\"https://Books.Google.com/books?id=fW4foWASY6wC\" target=\"_top\">Table\n  2.1</a>, page 29, aka the <i>Heikkinen application</i> of <a \n  href=\"https://WikiPedia.org/wiki/Geographic_coordinate_conversion\" \n  target=\"_top\">Ferrari's solution</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>xyz</code></strong> - A geocentric (<code>Cartesian</code>, <a \n          href=\"pygeodesy.ecef.Ecef9Tuple-class.html\" \n          class=\"link\">Ecef9Tuple</a>) or <code>scalar</code> ECEF \n          <code>x</code> coordinate (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>y</code></strong> - ECEF <code>y</code> coordinate for <code>scalar</code> \n          <b><code>xyz</code></b> and <b><code>z</code></b> \n          (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>z</code></strong> - ECEF <code>z</code> coordinate for <code>scalar</code> \n          <b><code>xyz</code></b> and <b><code>y</code></b> \n          (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>M</code></strong> - <i>Ignored</i>, rotation matrix <code>M</code> not available.</li>\n        <li><strong class=\"pname\"><code>lon00_name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>) and \n          optional keyword argument <code><b>lon00</b>=INT0</code> \n          (<code>degrees</code>), an arbitrary <i>&quot;polar&quot;</i> \n          longitude returned if <code><b>x</b>=0</code> and \n          <code><b>y</b>=0</code>, see property <code>lon00</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>An <a href=\"pygeodesy.ecef.Ecef9Tuple-class.html\" \n          class=\"link\">Ecef9Tuple</a><code>(x, y, z, lat, lon, height, C, \n          M, datum)</code> with geodetic coordinates <code>(lat, lon, \n          height)</code> for the given geocentric ones <code>(x, y, \n          z)</code>, case <code>C</code>, <code>M=None</code> always and \n          <code>datum</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.ecef.EcefError-class.html\">EcefError</a></strong></code> - Invalid <b><code>xyz</code></b> or <code>scalar</code> \n        <code>x</code> or <b><code>y</code></b> and/or \n        <b><code>z</code></b> not <code>scalar</code> for \n        <code>scalar</code> <b><code>xyz</code></b> or <code>sqrt</code> \n        domain or zero division error.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.ecef._EcefBase-class.html#reverse\">_EcefBase.reverse</a>\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"pygeodesy.ecef.EcefFarrell22-class.html\" \n        class=\"link\">EcefFarrell22</a> and <a \n        href=\"pygeodesy.ecef.EcefVeness-class.html\" \n        class=\"link\">EcefVeness</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.ecef.EcefFarrell22-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.ecef.EcefFarrell22</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.ecef-module.html\">Module&nbsp;ecef</a> ::\n        Class&nbsp;EcefFarrell22\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.ecef.EcefFarrell22-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class EcefFarrell22</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+            \n           |            \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+        \n               |        \n<a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+    \n                   |    \n           <a href=\"pygeodesy.ecef._EcefBase-class.html\">_EcefBase</a> --+\n                       |\n                      <strong class=\"uidshort\">EcefFarrell22</strong>\n</pre>\n\n<hr />\n<p>Conversion between geodetic and geocentric, <i>Earth-Centered, \n  Earth-Fixed</i> (ECEF) coordinates based on <i>Jay A. Farrell</i>'s <a \n  href=\"https://Books.Google.com/books?id=fW4foWASY6wC\" target=\"_top\">Table\n  2.2</a>, page 30.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ecef.EcefFarrell22-class.html#reverse\" class=\"summary-sig-name\">reverse</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">xyz</span>,\n        <span class=\"summary-sig-arg\">y</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">z</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">M</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**lon00_name</span>)</span><br />\n      Convert from geocentric <code>(x, y, z)</code> to geodetic \n      <code>(lat, lon, height)</code> using <i>Farrell</i>'s <a \n      href=\"https://Books.Google.com/books?id=fW4foWASY6wC\" \n      target=\"_top\">Table 2.2</a>, page 30.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.ecef._EcefBase-class.html\">_EcefBase</a></code></b>:\n      <code><a href=\"pygeodesy.ecef._EcefBase-class.html#__eq__\">__eq__</a></code>,\n      <code><a href=\"pygeodesy.ecef._EcefBase-class.html#__init__\">__init__</a></code>,\n      <code><a href=\"pygeodesy.ecef._EcefBase-class.html#forward\">forward</a></code>,\n      <code><a href=\"pygeodesy.ecef._EcefBase-class.html#forward_\">forward_</a></code>,\n      <code><a href=\"pygeodesy.ecef._EcefBase-class.html#toStr\">toStr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#others\">others</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#toRepr\">toRepr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.ecef._EcefBase-class.html\">_EcefBase</a></code></b>:\n      <code><a href=\"pygeodesy.ecef._EcefBase-class.html#a\">a</a></code>,\n      <code><a href=\"pygeodesy.ecef._EcefBase-class.html#datum\">datum</a></code>,\n      <code><a href=\"pygeodesy.ecef._EcefBase-class.html#ellipsoid\">ellipsoid</a></code>,\n      <code><a href=\"pygeodesy.ecef._EcefBase-class.html#equatoradius\">equatoradius</a></code>,\n      <code><a href=\"pygeodesy.ecef._EcefBase-class.html#equatorialRadius\">equatorialRadius</a></code>,\n      <code><a href=\"pygeodesy.ecef._EcefBase-class.html#f\">f</a></code>,\n      <code><a href=\"pygeodesy.ecef._EcefBase-class.html#flattening\">flattening</a></code>,\n      <code><a href=\"pygeodesy.ecef._EcefBase-class.html#lon00\">lon00</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"reverse\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">reverse</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">xyz</span>,\n        <span class=\"sig-arg\">y</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">z</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">M</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**lon00_name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert from geocentric <code>(x, y, z)</code> to geodetic <code>(lat,\n  lon, height)</code> using <i>Farrell</i>'s <a \n  href=\"https://Books.Google.com/books?id=fW4foWASY6wC\" target=\"_top\">Table\n  2.2</a>, page 30.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>xyz</code></strong> - A geocentric (<code>Cartesian</code>, <a \n          href=\"pygeodesy.ecef.Ecef9Tuple-class.html\" \n          class=\"link\">Ecef9Tuple</a>) or <code>scalar</code> ECEF \n          <code>x</code> coordinate (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>y</code></strong> - ECEF <code>y</code> coordinate for <code>scalar</code> \n          <b><code>xyz</code></b> and <b><code>z</code></b> \n          (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>z</code></strong> - ECEF <code>z</code> coordinate for <code>scalar</code> \n          <b><code>xyz</code></b> and <b><code>y</code></b> \n          (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>M</code></strong> - <i>Ignored</i>, rotation matrix <code>M</code> not available.</li>\n        <li><strong class=\"pname\"><code>lon00_name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>) and \n          optional keyword argument <code><b>lon00</b>=INT0</code> \n          (<code>degrees</code>), an arbitrary <i>&quot;polar&quot;</i> \n          longitude returned if <code><b>x</b>=0</code> and \n          <code><b>y</b>=0</code>, see property <code>lon00</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>An <a href=\"pygeodesy.ecef.Ecef9Tuple-class.html\" \n          class=\"link\">Ecef9Tuple</a><code>(x, y, z, lat, lon, height, C, \n          M, datum)</code> with geodetic coordinates <code>(lat, lon, \n          height)</code> for the given geocentric ones <code>(x, y, \n          z)</code>, case <code>C</code>, <code>M=None</code> always and \n          <code>datum</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.ecef.EcefError-class.html\">EcefError</a></strong></code> - Invalid <b><code>xyz</code></b> or <code>scalar</code> \n        <code>x</code> or <b><code>y</code></b> and/or \n        <b><code>z</code></b> not <code>scalar</code> for \n        <code>scalar</code> <b><code>xyz</code></b> or <code>sqrt</code> \n        domain or zero division error.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.ecef._EcefBase-class.html#reverse\">_EcefBase.reverse</a>\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"pygeodesy.ecef.EcefFarrell21-class.html\" \n        class=\"link\">EcefFarrell21</a> and <a \n        href=\"pygeodesy.ecef.EcefVeness-class.html\" \n        class=\"link\">EcefVeness</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.ecef.EcefKarney-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.ecef.EcefKarney</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.ecef-module.html\">Module&nbsp;ecef</a> ::\n        Class&nbsp;EcefKarney\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.ecef.EcefKarney-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class EcefKarney</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+            \n           |            \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+        \n               |        \n<a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+    \n                   |    \n           <a href=\"pygeodesy.ecef._EcefBase-class.html\">_EcefBase</a> --+\n                       |\n                      <strong class=\"uidshort\">EcefKarney</strong>\n</pre>\n\n<hr />\n<p>Conversion between geodetic and geocentric, <i>Earth-Centered, \n  Earth-Fixed</i> (ECEF) coordinates transcoded from <i>Karney</i>'s C++ <a\n  \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Geocentric.html\"\n  target=\"_top\">Geocentric</a> methods.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Note:</strong>\n        On methods <code>.forward</code> and <code>.forwar_</code>, let \n        <code>v</code> be a unit vector located at <code>(lat, lon, \n        h)</code>.  We can express <code>v</code> as column vectors in one \n        of two ways, <code>v1</code> in East, North, Up (ENU) coordinates \n        (where the components are relative to a local coordinate system at \n        <code>C(lat0, lon0, h0)</code>) or as <code>v0</code> in geocentric\n        <code>x, y, z</code> coordinates.  Then, <i class=\"math\">v0 = M &#8901; \n        v1</i> where <code>M</code> is the rotation matrix.\n      </p>\n</div><!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ecef.EcefKarney-class.html#reverse\" class=\"summary-sig-name\">reverse</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">xyz</span>,\n        <span class=\"summary-sig-arg\">y</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">z</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">M</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">**lon00_name</span>)</span><br />\n      Convert from geocentric <code>(x, y, z)</code> to geodetic \n      <code>(lat, lon, height)</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.ecef._EcefBase-class.html\">_EcefBase</a></code></b>:\n      <code><a href=\"pygeodesy.ecef._EcefBase-class.html#__eq__\">__eq__</a></code>,\n      <code><a href=\"pygeodesy.ecef._EcefBase-class.html#__init__\">__init__</a></code>,\n      <code><a href=\"pygeodesy.ecef._EcefBase-class.html#forward\">forward</a></code>,\n      <code><a href=\"pygeodesy.ecef._EcefBase-class.html#forward_\">forward_</a></code>,\n      <code><a href=\"pygeodesy.ecef._EcefBase-class.html#toStr\">toStr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#others\">others</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#toRepr\">toRepr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.ecef._EcefBase-class.html\">_EcefBase</a></code></b>:\n      <code><a href=\"pygeodesy.ecef._EcefBase-class.html#a\">a</a></code>,\n      <code><a href=\"pygeodesy.ecef._EcefBase-class.html#datum\">datum</a></code>,\n      <code><a href=\"pygeodesy.ecef._EcefBase-class.html#ellipsoid\">ellipsoid</a></code>,\n      <code><a href=\"pygeodesy.ecef._EcefBase-class.html#equatoradius\">equatoradius</a></code>,\n      <code><a href=\"pygeodesy.ecef._EcefBase-class.html#equatorialRadius\">equatorialRadius</a></code>,\n      <code><a href=\"pygeodesy.ecef._EcefBase-class.html#f\">f</a></code>,\n      <code><a href=\"pygeodesy.ecef._EcefBase-class.html#flattening\">flattening</a></code>,\n      <code><a href=\"pygeodesy.ecef._EcefBase-class.html#lon00\">lon00</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"reverse\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">reverse</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">xyz</span>,\n        <span class=\"sig-arg\">y</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">z</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">M</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">**lon00_name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert from geocentric <code>(x, y, z)</code> to geodetic <code>(lat,\n  lon, height)</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>xyz</code></strong> - A geocentric (<code>Cartesian</code>, <a \n          href=\"pygeodesy.ecef.Ecef9Tuple-class.html\" \n          class=\"link\">Ecef9Tuple</a>) or <code>scalar</code> ECEF \n          <code>x</code> coordinate (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>y</code></strong> - ECEF <code>y</code> coordinate for <code>scalar</code> \n          <b><code>xyz</code></b> and <b><code>z</code></b> \n          (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>z</code></strong> - ECEF <code>z</code> coordinate for <code>scalar</code> \n          <b><code>xyz</code></b> and <b><code>y</code></b> \n          (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>M</code></strong> - Optionally, return the rotation <a \n          href=\"pygeodesy.ecef.EcefMatrix-class.html\" \n          class=\"link\">EcefMatrix</a> (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>lon00_name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>) and \n          optional keyword argument <code><b>lon00</b>=INT0</code> \n          (<code>degrees</code>), an arbitrary <i>&quot;polar&quot;</i> \n          longitude returned if <code><b>x</b>=0</code> and \n          <code><b>y</b>=0</code>, see property <code>lon00</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>An <a href=\"pygeodesy.ecef.Ecef9Tuple-class.html\" \n          class=\"link\">Ecef9Tuple</a><code>(x, y, z, lat, lon, height, C, \n          M, datum)</code> with geodetic coordinates <code>(lat, lon, \n          height)</code> for the given geocentric ones <code>(x, y, \n          z)</code>, case <code>C</code>, optional <code>M</code> (<a \n          href=\"pygeodesy.ecef.EcefMatrix-class.html\" \n          class=\"link\">EcefMatrix</a>) and <code>datum</code> if available.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.ecef.EcefError-class.html\">EcefError</a></strong></code> - Invalid <b><code>xyz</code></b> or <code>scalar</code> \n        <code>x</code> or <b><code>y</code></b> and/or \n        <b><code>z</code></b> not <code>scalar</code> for \n        <code>scalar</code> <b><code>xyz</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.ecef._EcefBase-class.html#reverse\">_EcefBase.reverse</a>\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        In general, there are multiple solutions and the result which \n        minimizes <code>height</code> is returned, i.e., the <code>(lat, \n        lon)</code> corresponding to the closest point on the ellipsoid.  \n        If there are still multiple solutions with different latitudes \n        (applies only if <code>z</code> = 0), then the solution with \n        <code>lat</code> &gt; 0 is returned.  If there are still multiple \n        solutions with different longitudes (applies only if <code>x</code>\n        = <code>y</code> = 0), then <code>lon00</code> is returned.  The \n        returned <code>lon</code> is in the range [&#8722;180&#176;, 180&#176;] and \n        <code>height</code> is not below <i class=\"math\">&#8722;E.a * (1 &#8722; E.e2) \n        / sqrt(1 &#8722; E.e2 * sin(lat)**2)</i>.  Like <code>forward</code> \n        above, <i class=\"math\">v1 = Transpose(M) &#8901; v0</i>.\n      </p>\n</div></td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.ecef.EcefMatrix-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.ecef.EcefMatrix</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.ecef-module.html\">Module&nbsp;ecef</a> ::\n        Class&nbsp;EcefMatrix\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.ecef.EcefMatrix-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class EcefMatrix</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n   object --+        \n            |        \n        tuple --+    \n                |    \n   object --+   |    \n            |   |    \n <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n                |    \n<a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a> --+\n                    |\n                   <strong class=\"uidshort\">EcefMatrix</strong>\n</pre>\n\n<hr />\n<p>A rotation matrix known as <i>East-North-Up (ENU) to ECEF</i>.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a \n        href=\"https://WikiPedia.org/wiki/Geographic_coordinate_conversion#From_ECEF_to_ENU\"\n        target=\"_top\">From ENU to ECEF</a> and <a \n        href=\"https://Github.com/mrJean1/PyGeodesy/issues/74\" \n        target=\"_top\">Issue #74</a>.\n      </p>\n</div><!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"column\"></a><span class=\"summary-sig-name\">column</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">column</span>)</span><br />\n      Get this matrix' <b><code>column</code></b> 0, 1 or 2 as \n      <code>3-tuple</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ecef.EcefMatrix-class.html#copy\" class=\"summary-sig-name\">copy</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">**unused</span>)</span><br />\n      Make a shallow or deep copy of this instance.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ecef.EcefMatrix-class.html#__deepcopy__\" class=\"summary-sig-name\">__deepcopy__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">**unused</span>)</span><br />\n      Make a shallow or deep copy of this instance.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ecef.EcefMatrix-class.html#__copy__\" class=\"summary-sig-name\">__copy__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">**unused</span>)</span><br />\n      Make a shallow or deep copy of this instance.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ecef.EcefMatrix-class.html#multiply\" class=\"summary-sig-name\">multiply</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span><br />\n      Matrix multiply <i class=\"math\">M0' &#8901; M</i> this matrix \n      <i>Transposed</i> with an other matrix.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ecef.EcefMatrix-class.html#rotate\" class=\"summary-sig-name\">rotate</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">xyz</span>,\n        <span class=\"summary-sig-arg\">*xyz0</span>)</span><br />\n      Forward rotation <i class=\"math\">M0' &#8901; ([x, y, z] - [x0, y0, \n      z0])'</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"row\"></a><span class=\"summary-sig-name\">row</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">row</span>)</span><br />\n      Get this matrix' <b><code>row</code></b> 0, 1 or 2 as \n      <code>3-tuple</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ecef.EcefMatrix-class.html#unrotate\" class=\"summary-sig-name\">unrotate</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">xyz</span>,\n        <span class=\"summary-sig-arg\">*xyz0</span>)</span><br />\n      Inverse rotation <i class=\"math\">[x0, y0, z0] + M0 &#8901; [x,y,z]'</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__delattr__\">__delattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__getattr__\">__getattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__setattr__\">__setattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#items\">items</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iteritems\">iteritems</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iterunits\">iterunits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#reUnit\">reUnit</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toUnits\">toUnits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>tuple</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__eq__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__iter__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__rmul__</code>,\n      <code>count</code>,\n      <code>index</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">a new object with type S, a subtype of T</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ecef.EcefMatrix-class.html#__new__\" class=\"summary-sig-name\">__new__</a>(<span class=\"summary-sig-arg\">cls</span>,\n        <span class=\"summary-sig-arg\">sa</span>,\n        <span class=\"summary-sig-arg\">ca</span>,\n        <span class=\"summary-sig-arg\">sb</span>,\n        <span class=\"summary-sig-arg\">cb</span>,\n        <span class=\"summary-sig-arg\">*_more</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      New <a href=\"pygeodesy.ecef.EcefMatrix-class.html\" \n      class=\"link\">EcefMatrix</a> matrix.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ecef.EcefMatrix-class.html#matrix3\" class=\"summary-name\">matrix3</a><br />\n      Get this matrix' rows (<code>3-tuple</code> of 3 \n      <code>3-tuple</code>s).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ecef.EcefMatrix-class.html#matrixTransposed3\" class=\"summary-name\">matrixTransposed3</a><br />\n      Get this matrix' <i>Transposed</i> rows (<code>3-tuple</code> of 3 \n      <code>3-tuple</code>s).\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__new__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__new__</span>&nbsp;(<span class=\"sig-arg\">cls</span>,\n        <span class=\"sig-arg\">sa</span>,\n        <span class=\"sig-arg\">ca</span>,\n        <span class=\"sig-arg\">sb</span>,\n        <span class=\"sig-arg\">cb</span>,\n        <span class=\"sig-arg\">*_more</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n    <br /><em class=\"fname\">Static Method</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.ecef.EcefMatrix-class.html\" \n  class=\"link\">EcefMatrix</a> matrix.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>sa</code></strong> - <code>sin(phi)</code> (<code>float</code>).</li>\n        <li><strong class=\"pname\"><code>ca</code></strong> - <code>cos(phi)</code> (<code>float</code>).</li>\n        <li><strong class=\"pname\"><code>sb</code></strong> - <code>sin(lambda)</code> (<code>float</code>).</li>\n        <li><strong class=\"pname\"><code>cb</code></strong> - <code>cos(lambda)</code> (<code>float</code>).</li>\n        <li><strong class=\"pname\"><code>_more</code></strong> - (INTERNAL) from <code>.multiply</code>.</li>\n    </ul></dd>\n    <dt>Returns: a new object with type S, a subtype of T</dt>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.ecef.EcefError-class.html\">EcefError</a></strong></code> - If <b><code>sa</code></b>, <b><code>ca</code></b>, \n        <b><code>sb</code></b> or <b><code>cb</code></b> outside <i \n        class=\"math\">[-1.0, +1.0]</i>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__new__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"copy\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">copy</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">**unused</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Make a shallow or deep copy of this instance.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>deep</code></strong> - If <code>True</code>, make a deep, otherwise a shallow copy \n          (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional, non-empty <code><b>name</b>=NN</code> \n          (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The copy (<code>This class</code> or subclass thereof).</dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.named._Named-class.html#copy\">named._Named.copy</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__deepcopy__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__deepcopy__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">**unused</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Make a shallow or deep copy of this instance.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>deep</code></strong> - If <code>True</code>, make a deep, otherwise a shallow copy \n          (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional, non-empty <code><b>name</b>=NN</code> \n          (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The copy (<code>This class</code> or subclass thereof).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__copy__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__copy__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">**unused</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Make a shallow or deep copy of this instance.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>deep</code></strong> - If <code>True</code>, make a deep, otherwise a shallow copy \n          (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional, non-empty <code><b>name</b>=NN</code> \n          (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The copy (<code>This class</code> or subclass thereof).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"multiply\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">multiply</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Matrix multiply <i class=\"math\">M0' &#8901; M</i> this matrix \n  <i>Transposed</i> with an other matrix.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>other</code></strong> - The other matrix (<a href=\"pygeodesy.ecef.EcefMatrix-class.html\" \n          class=\"link\">EcefMatrix</a>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The matrix product (<a \n          href=\"pygeodesy.ecef.EcefMatrix-class.html\" \n          class=\"link\">EcefMatrix</a>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - If <b><code>other</code></b> is not an <a \n        href=\"pygeodesy.ecef.EcefMatrix-class.html\" \n        class=\"link\">EcefMatrix</a>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"rotate\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">rotate</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">xyz</span>,\n        <span class=\"sig-arg\">*xyz0</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Forward rotation <i class=\"math\">M0' &#8901; ([x, y, z] - [x0, y0, \n  z0])'</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>xyz</code></strong> - Local <code>(x, y, z)</code> coordinates (<code>3-tuple</code>).</li>\n        <li><strong class=\"pname\"><code>xyz0</code></strong> - Optional, local <code>(x0, y0, z0)</code> origin \n          (<code>3-tuple</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Rotated <code>(x, y, z)</code> location (<code>3-tuple</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.LenError-class.html\">LenError</a></strong></code> - Unequal <code>len(<b>xyz</b>)</code> and \n        <code>len(<b>xyz0</b>)</code>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"unrotate\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">unrotate</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">xyz</span>,\n        <span class=\"sig-arg\">*xyz0</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Inverse rotation <i class=\"math\">[x0, y0, z0] + M0 &#8901; [x,y,z]'</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>xyz</code></strong> - Local <code>(x, y, z)</code> coordinates (<code>3-tuple</code>).</li>\n        <li><strong class=\"pname\"><code>xyz0</code></strong> - Optional, local <code>(x0, y0, z0)</code> origin \n          (<code>3-tuple</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Unrotated <code>(x, y, z)</code> location (<code>3-tuple</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.LenError-class.html\">LenError</a></strong></code> - Unequal <code>len(<b>xyz</b>)</code> and \n        <code>len(<b>xyz0</b>)</code>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"matrix3\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">matrix3</h3>\n  <p>Get this matrix' rows (<code>3-tuple</code> of 3 \n  <code>3-tuple</code>s).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">matrix3(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get this matrix' rows (<code>3-tuple</code> of 3 <code>3-tuple</code>s).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"matrixTransposed3\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">matrixTransposed3</h3>\n  <p>Get this matrix' <i>Transposed</i> rows (<code>3-tuple</code> of 3 \n  <code>3-tuple</code>s).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">matrixTransposed3(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get this matrix' <i>Transposed</i> rows (<code>3-tuple</code> of 3 \n<code>3-tuple</code>s).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.ecef.EcefSudano-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.ecef.EcefSudano</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.ecef-module.html\">Module&nbsp;ecef</a> ::\n        Class&nbsp;EcefSudano\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.ecef.EcefSudano-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class EcefSudano</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+            \n           |            \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+        \n               |        \n<a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+    \n                   |    \n           <a href=\"pygeodesy.ecef._EcefBase-class.html\">_EcefBase</a> --+\n                       |\n                      <strong class=\"uidshort\">EcefSudano</strong>\n</pre>\n\n<hr />\n<p>Conversion between geodetic and geocentric, <i>Earth-Centered, \n  Earth-Fixed</i> (ECEF) coordinates based on <i>John J. Sudano</i>'s <a \n  href=\"https://www.ResearchGate.net/publication/3709199\" \n  target=\"_top\">paper</a>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ecef.EcefSudano-class.html#reverse\" class=\"summary-sig-name\">reverse</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">xyz</span>,\n        <span class=\"summary-sig-arg\">y</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">z</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">M</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">tol</span>=<span class=\"summary-sig-default\">2.220446049250313e-16</span>,\n        <span class=\"summary-sig-arg\">**lon00_name</span>)</span><br />\n      Convert from geocentric <code>(x, y, z)</code> to geodetic \n      <code>(lat, lon, height)</code> using <i>Sudano</i>'s <a \n      href=\"https://www.ResearchGate.net/publication/3709199\" \n      target=\"_top\">iterative method</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.ecef._EcefBase-class.html\">_EcefBase</a></code></b>:\n      <code><a href=\"pygeodesy.ecef._EcefBase-class.html#__eq__\">__eq__</a></code>,\n      <code><a href=\"pygeodesy.ecef._EcefBase-class.html#__init__\">__init__</a></code>,\n      <code><a href=\"pygeodesy.ecef._EcefBase-class.html#forward\">forward</a></code>,\n      <code><a href=\"pygeodesy.ecef._EcefBase-class.html#forward_\">forward_</a></code>,\n      <code><a href=\"pygeodesy.ecef._EcefBase-class.html#toStr\">toStr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#others\">others</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#toRepr\">toRepr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ecef.EcefSudano-class.html#tolerance\" class=\"summary-name\">tolerance</a><br />\n      DEPRECATED on 2025.08.22, use keyword argument <code>tol</code>.\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.ecef._EcefBase-class.html\">_EcefBase</a></code></b>:\n      <code><a href=\"pygeodesy.ecef._EcefBase-class.html#a\">a</a></code>,\n      <code><a href=\"pygeodesy.ecef._EcefBase-class.html#datum\">datum</a></code>,\n      <code><a href=\"pygeodesy.ecef._EcefBase-class.html#ellipsoid\">ellipsoid</a></code>,\n      <code><a href=\"pygeodesy.ecef._EcefBase-class.html#equatoradius\">equatoradius</a></code>,\n      <code><a href=\"pygeodesy.ecef._EcefBase-class.html#equatorialRadius\">equatorialRadius</a></code>,\n      <code><a href=\"pygeodesy.ecef._EcefBase-class.html#f\">f</a></code>,\n      <code><a href=\"pygeodesy.ecef._EcefBase-class.html#flattening\">flattening</a></code>,\n      <code><a href=\"pygeodesy.ecef._EcefBase-class.html#lon00\">lon00</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"reverse\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">reverse</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">xyz</span>,\n        <span class=\"sig-arg\">y</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">z</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">M</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">tol</span>=<span class=\"sig-default\">2.220446049250313e-16</span>,\n        <span class=\"sig-arg\">**lon00_name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert from geocentric <code>(x, y, z)</code> to geodetic <code>(lat,\n  lon, height)</code> using <i>Sudano</i>'s <a \n  href=\"https://www.ResearchGate.net/publication/3709199\" \n  target=\"_top\">iterative method</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>xyz</code></strong> - A geocentric (<code>Cartesian</code>, <a \n          href=\"pygeodesy.ecef.Ecef9Tuple-class.html\" \n          class=\"link\">Ecef9Tuple</a>) or <code>scalar</code> ECEF \n          <code>x</code> coordinate (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>y</code></strong> - ECEF <code>y</code> coordinate for <code>scalar</code> \n          <b><code>xyz</code></b> and <b><code>z</code></b> \n          (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>z</code></strong> - ECEF <code>z</code> coordinate for <code>scalar</code> \n          <b><code>xyz</code></b> and <b><code>y</code></b> \n          (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>M</code></strong> - <i>Ignored</i>, rotation matrix <code>M</code> not available.</li>\n        <li><strong class=\"pname\"><code>tol</code></strong> - Convergence tolerance for <code>sin</code>(latitude) \n          (<code>scalar</code>).</li>\n        <li><strong class=\"pname\"><code>lon00_name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>) and \n          optional keyword argument <code><b>lon00</b>=INT0</code> \n          (<code>degrees</code>), an arbitrary <i>&quot;polar&quot;</i> \n          longitude returned if <code><b>x</b>=0</code> and \n          <code><b>y</b>=0</code>, see property <code>lon00</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>An <a href=\"pygeodesy.ecef.Ecef9Tuple-class.html\" \n          class=\"link\">Ecef9Tuple</a><code>(x, y, z, lat, lon, height, C, \n          M, datum)</code> with geodetic coordinates <code>(lat, lon, \n          height)</code> for the given geocentric ones <code>(x, y, \n          z)</code>, case <code>C</code>, <code>M=None</code> always and \n          <code>datum</code> if available.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.ecef.EcefError-class.html\">EcefError</a></strong></code> - Invalid <b><code>xyz</code></b> or <code>scalar</code> \n        <code>x</code> or <b><code>y</code></b> and/or \n        <b><code>z</code></b> not <code>scalar</code> for \n        <code>scalar</code> <b><code>xyz</code></b> or no convergence.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.ecef._EcefBase-class.html#reverse\">_EcefBase.reverse</a>\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Class <a href=\"pygeodesy.ecef.EcefUPC-class.html\" \n        class=\"link\">EcefUPC</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<br />\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"tolerance\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">tolerance</h3>\n  <p>DEPRECATED on 2025.08.22, use keyword argument <code>tol</code>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">tolerance(<span class=\"summary-sig-arg\">self</span>)</span>\n        - DEPRECATED on 2025.08.22, use keyword argument <code>tol</code>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">tolerance(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">tol</span>)</span>\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.ecef.EcefUPC-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.ecef.EcefUPC</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.ecef-module.html\">Module&nbsp;ecef</a> ::\n        Class&nbsp;EcefUPC\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.ecef.EcefUPC-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class EcefUPC</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+            \n           |            \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+        \n               |        \n<a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+    \n                   |    \n           <a href=\"pygeodesy.ecef._EcefBase-class.html\">_EcefBase</a> --+\n                       |\n                      <strong class=\"uidshort\">EcefUPC</strong>\n</pre>\n\n<hr />\n<p>Conversion between geodetic and geocentric, <i>Earth-Centered, \n  Earth-Fixed</i> (ECEF) coordinates based on <i>UPC</i>'s <a \n  href=\"https://GSSC.ESA.int/navipedia/index.php/Ellipsoidal_and_Cartesian_Coordinates_Conversion\"\n  target=\"_top\">method</a>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ecef.EcefUPC-class.html#reverse\" class=\"summary-sig-name\">reverse</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">xyz</span>,\n        <span class=\"summary-sig-arg\">y</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">z</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">M</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">tol</span>=<span class=\"summary-sig-default\">2.220446049250313e-16</span>,\n        <span class=\"summary-sig-arg\">**lon00_name</span>)</span><br />\n      Convert from geocentric <code>(x, y, z)</code> to geodetic \n      <code>(lat, lon, height)</code> using <i>UPC</i>'s <a \n      href=\"https://GSSC.ESA.int/navipedia/GNSS_Book/ESA_GNSS-Book_TM-23_Vol_I.pdf\"\n      target=\"_top\">iterative method</a>, page 186.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.ecef._EcefBase-class.html\">_EcefBase</a></code></b>:\n      <code><a href=\"pygeodesy.ecef._EcefBase-class.html#__eq__\">__eq__</a></code>,\n      <code><a href=\"pygeodesy.ecef._EcefBase-class.html#__init__\">__init__</a></code>,\n      <code><a href=\"pygeodesy.ecef._EcefBase-class.html#forward\">forward</a></code>,\n      <code><a href=\"pygeodesy.ecef._EcefBase-class.html#forward_\">forward_</a></code>,\n      <code><a href=\"pygeodesy.ecef._EcefBase-class.html#toStr\">toStr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#others\">others</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#toRepr\">toRepr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.ecef._EcefBase-class.html\">_EcefBase</a></code></b>:\n      <code><a href=\"pygeodesy.ecef._EcefBase-class.html#a\">a</a></code>,\n      <code><a href=\"pygeodesy.ecef._EcefBase-class.html#datum\">datum</a></code>,\n      <code><a href=\"pygeodesy.ecef._EcefBase-class.html#ellipsoid\">ellipsoid</a></code>,\n      <code><a href=\"pygeodesy.ecef._EcefBase-class.html#equatoradius\">equatoradius</a></code>,\n      <code><a href=\"pygeodesy.ecef._EcefBase-class.html#equatorialRadius\">equatorialRadius</a></code>,\n      <code><a href=\"pygeodesy.ecef._EcefBase-class.html#f\">f</a></code>,\n      <code><a href=\"pygeodesy.ecef._EcefBase-class.html#flattening\">flattening</a></code>,\n      <code><a href=\"pygeodesy.ecef._EcefBase-class.html#lon00\">lon00</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"reverse\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">reverse</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">xyz</span>,\n        <span class=\"sig-arg\">y</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">z</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">M</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">tol</span>=<span class=\"sig-default\">2.220446049250313e-16</span>,\n        <span class=\"sig-arg\">**lon00_name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert from geocentric <code>(x, y, z)</code> to geodetic <code>(lat,\n  lon, height)</code> using <i>UPC</i>'s <a \n  href=\"https://GSSC.ESA.int/navipedia/GNSS_Book/ESA_GNSS-Book_TM-23_Vol_I.pdf\"\n  target=\"_top\">iterative method</a>, page 186.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>xyz</code></strong> - A geocentric (<code>Cartesian</code>, <a \n          href=\"pygeodesy.ecef.Ecef9Tuple-class.html\" \n          class=\"link\">Ecef9Tuple</a>) or <code>scalar</code> ECEF \n          <code>x</code> coordinate (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>y</code></strong> - ECEF <code>y</code> coordinate for <code>scalar</code> \n          <b><code>xyz</code></b> and <b><code>z</code></b> \n          (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>z</code></strong> - ECEF <code>z</code> coordinate for <code>scalar</code> \n          <b><code>xyz</code></b> and <b><code>y</code></b> \n          (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>M</code></strong> - <i>Ignored</i>, rotation matrix <code>M</code> not available.</li>\n        <li><strong class=\"pname\"><code>tol</code></strong> - Convergence tolerance for the latitude (<code>radians</code>).</li>\n        <li><strong class=\"pname\"><code>lon00_name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>) and \n          optional keyword argument <code><b>lon00</b>=INT0</code> \n          (<code>degrees</code>), an arbitrary <i>&quot;polar&quot;</i> \n          longitude returned if <code><b>x</b>=0</code> and \n          <code><b>y</b>=0</code>, see property <code>lon00</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>An <a href=\"pygeodesy.ecef.Ecef9Tuple-class.html\" \n          class=\"link\">Ecef9Tuple</a><code>(x, y, z, lat, lon, height, C, \n          M, datum)</code> with geodetic coordinates <code>(lat, lon, \n          height)</code> for the given geocentric ones <code>(x, y, \n          z)</code>, case <code>C</code>, <code>M=None</code> always and \n          <code>datum</code> if available.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.ecef.EcefError-class.html\">EcefError</a></strong></code> - Invalid <b><code>xyz</code></b> or <code>scalar</code> \n        <code>x</code> or <b><code>y</code></b> and/or \n        <b><code>z</code></b> not <code>scalar</code> for \n        <code>scalar</code> <b><code>xyz</code></b> or no convergence.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.ecef._EcefBase-class.html#reverse\">_EcefBase.reverse</a>\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Class <a href=\"pygeodesy.ecef.EcefSudano-class.html\" \n        class=\"link\">EcefSudano</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.ecef.EcefVeness-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.ecef.EcefVeness</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.ecef-module.html\">Module&nbsp;ecef</a> ::\n        Class&nbsp;EcefVeness\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.ecef.EcefVeness-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class EcefVeness</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+            \n           |            \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+        \n               |        \n<a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+    \n                   |    \n           <a href=\"pygeodesy.ecef._EcefBase-class.html\">_EcefBase</a> --+\n                       |\n                      <strong class=\"uidshort\">EcefVeness</strong>\n</pre>\n\n<hr />\n<p>Conversion between geodetic and geocentric, <i>Earth-Centered, \n  Earth-Fixed</i> (ECEF) coordinates transcoded from <i>Chris Veness</i>' \n  JavaScript classes <a \n  href=\"https://www.Movable-Type.co.UK/scripts/geodesy/docs/latlon-ellipsoidal.js.html\"\n  target=\"_top\">LatLonEllipsoidal, Cartesian</a>.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a \n        href=\"https://www.OrdnanceSurvey.co.UK/documents/resources/guide-coordinate-systems-great-britain.pdf\"\n        target=\"_top\"><i>A Guide to Coordinate Systems in Great \n        Britain</i></a>, section <i>B) Converting between 3D Cartesian and \n        ellipsoidal latitude, longitude and height coordinates</i>.\n      </p>\n</div><!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ecef.EcefVeness-class.html#reverse\" class=\"summary-sig-name\">reverse</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">xyz</span>,\n        <span class=\"summary-sig-arg\">y</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">z</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">M</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**lon00_name</span>)</span><br />\n      Conversion from geocentric <code>(x, y, z)</code> to geodetic \n      <code>(lat, lon, height)</code> transcoded from <i>Chris Veness</i>' \n      <a \n      href=\"https://www.Movable-Type.co.UK/scripts/geodesy/docs/latlon-ellipsoidal.js.html\"\n      target=\"_top\">JavaScript</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.ecef._EcefBase-class.html\">_EcefBase</a></code></b>:\n      <code><a href=\"pygeodesy.ecef._EcefBase-class.html#__eq__\">__eq__</a></code>,\n      <code><a href=\"pygeodesy.ecef._EcefBase-class.html#__init__\">__init__</a></code>,\n      <code><a href=\"pygeodesy.ecef._EcefBase-class.html#forward\">forward</a></code>,\n      <code><a href=\"pygeodesy.ecef._EcefBase-class.html#forward_\">forward_</a></code>,\n      <code><a href=\"pygeodesy.ecef._EcefBase-class.html#toStr\">toStr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#others\">others</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#toRepr\">toRepr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.ecef._EcefBase-class.html\">_EcefBase</a></code></b>:\n      <code><a href=\"pygeodesy.ecef._EcefBase-class.html#a\">a</a></code>,\n      <code><a href=\"pygeodesy.ecef._EcefBase-class.html#datum\">datum</a></code>,\n      <code><a href=\"pygeodesy.ecef._EcefBase-class.html#ellipsoid\">ellipsoid</a></code>,\n      <code><a href=\"pygeodesy.ecef._EcefBase-class.html#equatoradius\">equatoradius</a></code>,\n      <code><a href=\"pygeodesy.ecef._EcefBase-class.html#equatorialRadius\">equatorialRadius</a></code>,\n      <code><a href=\"pygeodesy.ecef._EcefBase-class.html#f\">f</a></code>,\n      <code><a href=\"pygeodesy.ecef._EcefBase-class.html#flattening\">flattening</a></code>,\n      <code><a href=\"pygeodesy.ecef._EcefBase-class.html#lon00\">lon00</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"reverse\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">reverse</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">xyz</span>,\n        <span class=\"sig-arg\">y</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">z</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">M</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**lon00_name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Conversion from geocentric <code>(x, y, z)</code> to geodetic \n  <code>(lat, lon, height)</code> transcoded from <i>Chris Veness</i>' <a \n  href=\"https://www.Movable-Type.co.UK/scripts/geodesy/docs/latlon-ellipsoidal.js.html\"\n  target=\"_top\">JavaScript</a>.</p>\n  <p>Uses B. R. Bowring&#8217;s formulation for &#956;m precision in concise form <a \n  href=\"https://www.ResearchGate.net/publication/233668213\" \n  target=\"_top\"><i>The accuracy of geodetic latitude and height \n  equations</i></a>, Survey Review, Vol 28, 218, Oct 1985.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>xyz</code></strong> - A geocentric (<code>Cartesian</code>, <a \n          href=\"pygeodesy.ecef.Ecef9Tuple-class.html\" \n          class=\"link\">Ecef9Tuple</a>) or <code>scalar</code> ECEF \n          <code>x</code> coordinate (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>y</code></strong> - ECEF <code>y</code> coordinate for <code>scalar</code> \n          <b><code>xyz</code></b> and <b><code>z</code></b> \n          (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>z</code></strong> - ECEF <code>z</code> coordinate for <code>scalar</code> \n          <b><code>xyz</code></b> and <b><code>y</code></b> \n          (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>M</code></strong> - <i>Ignored</i>, rotation matrix <code>M</code> not available.</li>\n        <li><strong class=\"pname\"><code>lon00_name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>) and \n          optional keyword argument <code><b>lon00</b>=INT0</code> \n          (<code>degrees</code>), an arbitrary <i>&quot;polar&quot;</i> \n          longitude returned if <code><b>x</b>=0</code> and \n          <code><b>y</b>=0</code>, see property <code>lon00</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>An <a href=\"pygeodesy.ecef.Ecef9Tuple-class.html\" \n          class=\"link\">Ecef9Tuple</a><code>(x, y, z, lat, lon, height, C, \n          M, datum)</code> with geodetic coordinates <code>(lat, lon, \n          height)</code> for the given geocentric ones <code>(x, y, \n          z)</code>, case <code>C</code>, <code>M=None</code> always and \n          <code>datum</code> if available.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.ecef.EcefError-class.html\">EcefError</a></strong></code> - Invalid <b><code>xyz</code></b> or <code>scalar</code> \n        <code>x</code> or <b><code>y</code></b> and/or \n        <b><code>z</code></b> not <code>scalar</code> for \n        <code>scalar</code> <b><code>xyz</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.ecef._EcefBase-class.html#reverse\">_EcefBase.reverse</a>\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Toms, Ralph M. <a href=\"https://www.OSTI.gov/scitech/biblio/110235\"\n        target=\"_top\"><i>An Efficient Algorithm for Geocentric to Geodetic \n        Coordinate Conversion</i></a>, Sept 1995 and <a \n        href=\"https://www.OSTI.gov/scitech/servlets/purl/231228\" \n        target=\"_top\"><i>An Improved Algorithm for Geocentric to Geodetic \n        Coordinate Conversion</i></a>, Apr 1996, both from Lawrence \n        Livermore National Laboratory (LLNL) and Sudano, John J, <a \n        href=\"https://www.ResearchGate.net/publication/3709199\" \n        target=\"_top\"><i>An exact conversion from an Earth-centered \n        coordinate system to latitude longitude and altitude</i></a>.\n      </p>\n</div></td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.ecef.EcefYou-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.ecef.EcefYou</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.ecef-module.html\">Module&nbsp;ecef</a> ::\n        Class&nbsp;EcefYou\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.ecef.EcefYou-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class EcefYou</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+            \n           |            \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+        \n               |        \n<a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+    \n                   |    \n           <a href=\"pygeodesy.ecef._EcefBase-class.html\">_EcefBase</a> --+\n                       |\n                      <strong class=\"uidshort\">EcefYou</strong>\n</pre>\n\n<hr />\n<p>Conversion between geodetic and geocentric, <i>Earth-Centered, \n  Earth-Fixed</i> (ECEF) coordinates using <i>Rey-Jer You</i>'s <a \n  href=\"https://www.ResearchGate.net/publication/240359424\" \n  target=\"_top\">transformation</a> for <i>non-prolate</i> ellipsoids.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Featherstone, W.E., Claessens, S.J. <a \n        href=\"https://Espace.Curtin.edu.AU/bitstream/handle/20.500.11937/11589/115114_9021_geod2ellip_final.pdf\"\n        target=\"_top\"><i>Closed-form transformation between geodetic and \n        ellipsoidal coordinates</i></a> Studia Geophysica et Geodaetica, \n        2008, 52, pages 1-18 and <a href=\"https://PyPI.org/project/pymap3d\"\n        target=\"_top\">PyMap3D</a>.\n      </p>\n</div><!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ecef.EcefYou-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">a_ellipsoid</span>=<span class=\"summary-sig-default\">Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.257223<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"summary-sig-arg\">f</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**lon00_name</span>)</span><br />\n      New <code>Ecef*</code> converter.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ecef.EcefYou-class.html#reverse\" class=\"summary-sig-name\">reverse</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">xyz</span>,\n        <span class=\"summary-sig-arg\">y</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">z</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">M</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**lon00_name</span>)</span><br />\n      Convert geocentric <code>(x, y, z)</code> to geodetic <code>(lat, \n      lon, height)</code> using <i>Rey-Jer You</i>'s transformation.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.ecef._EcefBase-class.html\">_EcefBase</a></code></b>:\n      <code><a href=\"pygeodesy.ecef._EcefBase-class.html#__eq__\">__eq__</a></code>,\n      <code><a href=\"pygeodesy.ecef._EcefBase-class.html#forward\">forward</a></code>,\n      <code><a href=\"pygeodesy.ecef._EcefBase-class.html#forward_\">forward_</a></code>,\n      <code><a href=\"pygeodesy.ecef._EcefBase-class.html#toStr\">toStr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#others\">others</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#toRepr\">toRepr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.ecef._EcefBase-class.html\">_EcefBase</a></code></b>:\n      <code><a href=\"pygeodesy.ecef._EcefBase-class.html#a\">a</a></code>,\n      <code><a href=\"pygeodesy.ecef._EcefBase-class.html#datum\">datum</a></code>,\n      <code><a href=\"pygeodesy.ecef._EcefBase-class.html#ellipsoid\">ellipsoid</a></code>,\n      <code><a href=\"pygeodesy.ecef._EcefBase-class.html#equatoradius\">equatoradius</a></code>,\n      <code><a href=\"pygeodesy.ecef._EcefBase-class.html#equatorialRadius\">equatorialRadius</a></code>,\n      <code><a href=\"pygeodesy.ecef._EcefBase-class.html#f\">f</a></code>,\n      <code><a href=\"pygeodesy.ecef._EcefBase-class.html#flattening\">flattening</a></code>,\n      <code><a href=\"pygeodesy.ecef._EcefBase-class.html#lon00\">lon00</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">a_ellipsoid</span>=<span class=\"sig-default\">Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.257223<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"sig-arg\">f</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**lon00_name</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <code>Ecef*</code> converter.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>a_ellipsoid</code></strong> - A (non-prolate) ellipsoid (<a \n          href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a>, <a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a> \n          or <a href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>) or <code>scalar</code> ellipsoid's \n          equatorial radius (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>f</code></strong> - <code>None</code> or the ellipsoid flattening \n          (<code>scalar</code>), required for <code>scalar</code> \n          <b><code>a_ellipsoid</code></b>, <code><b>f</b>=0</code> \n          represents a sphere, negative <b><code>f</code></b> a prolate \n          ellipsoid.</li>\n        <li><strong class=\"pname\"><code>lon00</code></strong> - An arbitrary, <i>&quot;polar&quot;</i> longitude \n          (<code>degrees</code>), see the <code>reverse</code> method.</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.ecef.EcefError-class.html\">EcefError</a></strong></code> - If <b><code>a_ellipsoid</code></b> not <a \n        href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n        class=\"link\">Ellipsoid</a>, <a \n        href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n        class=\"link\">Ellipsoid2</a>, <a \n        href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a> or \n        <a href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n        class=\"link\">a_f2Tuple</a> or <code>scalar</code> or \n        <b><code>f</code></b> not <code>scalar</code> or if \n        <code>scalar</code> <b><code>a_ellipsoid</code></b> not positive or\n        <b><code>f</code></b> not less than 1.0.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n        <dd><em class=\"note\">(inherited documentation)</em></dd>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"reverse\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">reverse</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">xyz</span>,\n        <span class=\"sig-arg\">y</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">z</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">M</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**lon00_name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert geocentric <code>(x, y, z)</code> to geodetic <code>(lat, lon,\n  height)</code> using <i>Rey-Jer You</i>'s transformation.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>xyz</code></strong> - A geocentric (<code>Cartesian</code>, <a \n          href=\"pygeodesy.ecef.Ecef9Tuple-class.html\" \n          class=\"link\">Ecef9Tuple</a>) or <code>scalar</code> ECEF \n          <code>x</code> coordinate (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>y</code></strong> - ECEF <code>y</code> coordinate for <code>scalar</code> \n          <b><code>xyz</code></b> and <b><code>z</code></b> \n          (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>z</code></strong> - ECEF <code>z</code> coordinate for <code>scalar</code> \n          <b><code>xyz</code></b> and <b><code>y</code></b> \n          (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>M</code></strong> - <i>Ignored</i>, rotation matrix <code>M</code> not available.</li>\n        <li><strong class=\"pname\"><code>lon00_name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>) and \n          optional keyword argument <code><b>lon00</b>=INT0</code> \n          (<code>degrees</code>), an arbitrary <i>&quot;polar&quot;</i> \n          longitude returned if <code><b>x</b>=0</code> and \n          <code><b>y</b>=0</code>, see property <code>lon00</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>An <a href=\"pygeodesy.ecef.Ecef9Tuple-class.html\" \n          class=\"link\">Ecef9Tuple</a><code>(x, y, z, lat, lon, height, C, \n          M, datum)</code> with geodetic coordinates <code>(lat, lon, \n          height)</code> for the given geocentric ones <code>(x, y, \n          z)</code>, case <code>C</code>, <code>M=None</code> always and \n          <code>datum</code> if available.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.ecef.EcefError-class.html\">EcefError</a></strong></code> - Invalid <b><code>xyz</code></b> or <code>scalar</code> \n        <code>x</code> or <b><code>y</code></b> and/or \n        <b><code>z</code></b> not <code>scalar</code> for \n        <code>scalar</code> <b><code>xyz</code></b> or the ellipsoid is \n        <i>prolate</i>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.ecef._EcefBase-class.html#reverse\">_EcefBase.reverse</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.ecef._EcefBase-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.ecef._EcefBase</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.ecef-module.html\">Module&nbsp;ecef</a> ::\n        Class&nbsp;_EcefBase\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.ecef._EcefBase-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class _EcefBase</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+        \n           |        \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n               |    \n<a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+\n                   |\n                  <strong class=\"uidshort\">_EcefBase</strong>\n</pre>\n\n<dl><dt>Known Subclasses:</dt>\n<dd>\n      <ul class=\"subclass-list\">\n<li><a href=\"pygeodesy.ecef.EcefKarney-class.html\">EcefKarney</a></li><li>, <a href=\"pygeodesy.ecef.EcefFarrell21-class.html\">EcefFarrell21</a></li><li>, <a href=\"pygeodesy.ecef.EcefFarrell22-class.html\">EcefFarrell22</a></li><li>, <a href=\"pygeodesy.ecef.EcefSudano-class.html\">EcefSudano</a></li><li>, <a href=\"pygeodesy.ecef.EcefUPC-class.html\">EcefUPC</a></li><li>, <a href=\"pygeodesy.ecef.EcefVeness-class.html\">EcefVeness</a></li><li>, <a href=\"pygeodesy.ecef.EcefYou-class.html\">EcefYou</a></li>  </ul>\n</dd></dl>\n\n<hr />\n<p>(INTERNAL) Base class for <code>Ecef*</code> conversion classes.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ecef._EcefBase-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">a_ellipsoid</span>=<span class=\"summary-sig-default\">Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.257223<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"summary-sig-arg\">f</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">lon00</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      New <code>Ecef*</code> converter.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ecef._EcefBase-class.html#__eq__\" class=\"summary-sig-name\">__eq__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span><br />\n      Compare this and an other Ecef.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ecef._EcefBase-class.html#forward\" class=\"summary-sig-name\">forward</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">latlonh</span>,\n        <span class=\"summary-sig-arg\">lon</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">height</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">M</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Convert from geodetic <code>(lat, lon, height)</code> to geocentric \n      <code>(x, y, z)</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ecef._EcefBase-class.html#forward_\" class=\"summary-sig-name\">forward_</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">phi</span>,\n        <span class=\"summary-sig-arg\">lam</span>,\n        <span class=\"summary-sig-arg\">height</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">M</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Like method <code>.forward</code> except with geodetic lat- and \n      longitude given in <i>radians</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"reverse\"></a><span class=\"summary-sig-name\">reverse</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">xyz</span>,\n        <span class=\"summary-sig-arg\">y</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">z</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">M</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">**tol_lon00_name</span>)</span><br />\n      <i>Must be overloaded</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ecef._EcefBase-class.html#toStr\" class=\"summary-sig-name\">toStr</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">prec</span>=<span class=\"summary-sig-default\">9</span>,\n        <span class=\"summary-sig-arg\">**unused</span>)</span><br />\n      Return this <code>Ecef*</code> as a string.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#others\">others</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#toRepr\">toRepr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ecef._EcefBase-class.html#datum\" class=\"summary-name\">datum</a><br />\n      Get the datum (<a href=\"pygeodesy.datums.Datum-class.html\" \n      class=\"link\">Datum</a>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ecef._EcefBase-class.html#ellipsoid\" class=\"summary-name\">ellipsoid</a><br />\n      Get the ellipsoid (<a \n      href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n      class=\"link\">Ellipsoid</a> or <a \n      href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n      class=\"link\">Ellipsoid2</a>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ecef._EcefBase-class.html#equatoradius\" class=\"summary-name\">equatoradius</a><br />\n      Get the <code>ellipsoid</code>'s equatorial radius, semi-axis \n      (<code>meter</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ecef._EcefBase-class.html#equatorialRadius\" class=\"summary-name\">equatorialRadius</a><br />\n      Get the <code>ellipsoid</code>'s equatorial radius, semi-axis \n      (<code>meter</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ecef._EcefBase-class.html#a\" class=\"summary-name\">a</a><br />\n      Get the <code>ellipsoid</code>'s equatorial radius, semi-axis \n      (<code>meter</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ecef._EcefBase-class.html#flattening\" class=\"summary-name\">flattening</a><br />\n      Get the <code>ellipsoid</code>'s flattening (<code>scalar</code>), \n      positive for <i>oblate</i>, negative for <i>prolate</i> or \n      <code>0</code> for <i>near-spherical</i>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ecef._EcefBase-class.html#f\" class=\"summary-name\">f</a><br />\n      Get the <code>ellipsoid</code>'s flattening (<code>scalar</code>), \n      positive for <i>oblate</i>, negative for <i>prolate</i> or \n      <code>0</code> for <i>near-spherical</i>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ecef._EcefBase-class.html#lon00\" class=\"summary-name\">lon00</a><br />\n      Get the <i>&quot;polar&quot;</i> longitude (<code>degrees</code>), \n      see method <code>reverse</code>.\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">a_ellipsoid</span>=<span class=\"sig-default\">Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.257223<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"sig-arg\">f</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">lon00</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <code>Ecef*</code> converter.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>a_ellipsoid</code></strong> - A (non-prolate) ellipsoid (<a \n          href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a>, <a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a> \n          or <a href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>) or <code>scalar</code> ellipsoid's \n          equatorial radius (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>f</code></strong> - <code>None</code> or the ellipsoid flattening \n          (<code>scalar</code>), required for <code>scalar</code> \n          <b><code>a_ellipsoid</code></b>, <code><b>f</b>=0</code> \n          represents a sphere, negative <b><code>f</code></b> a prolate \n          ellipsoid.</li>\n        <li><strong class=\"pname\"><code>lon00</code></strong> - An arbitrary, <i>&quot;polar&quot;</i> longitude \n          (<code>degrees</code>), see the <code>reverse</code> method.</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.ecef.EcefError-class.html\">EcefError</a></strong></code> - If <b><code>a_ellipsoid</code></b> not <a \n        href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n        class=\"link\">Ellipsoid</a>, <a \n        href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n        class=\"link\">Ellipsoid2</a>, <a \n        href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a> or \n        <a href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n        class=\"link\">a_f2Tuple</a> or <code>scalar</code> or \n        <b><code>f</code></b> not <code>scalar</code> or if \n        <code>scalar</code> <b><code>a_ellipsoid</code></b> not positive or\n        <b><code>f</code></b> not less than 1.0.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__eq__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__eq__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>)</span>\n    <br /><em class=\"fname\">(Equality operator)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compare this and an other Ecef.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>other</code></strong> - The other ecef (<code>Ecef*</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>True</code> if equal, <code>False</code> otherwise.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"forward\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">forward</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">latlonh</span>,\n        <span class=\"sig-arg\">lon</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">height</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">M</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert from geodetic <code>(lat, lon, height)</code> to geocentric \n  <code>(x, y, z)</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>latlonh</code></strong> - Either a <code>LatLon</code>, an <a \n          href=\"pygeodesy.ecef.Ecef9Tuple-class.html\" \n          class=\"link\">Ecef9Tuple</a> or <code>scalar</code> latitude \n          (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lon</code></strong> - Optional <code>scalar</code> longitude for <code>scalar</code> \n          <b><code>latlonh</code></b> (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>height</code></strong> - Optional height (<code>meter</code>), vertically above (or below)\n          the surface of the ellipsoid.</li>\n        <li><strong class=\"pname\"><code>M</code></strong> - Optionally, return the rotation <a \n          href=\"pygeodesy.ecef.EcefMatrix-class.html\" \n          class=\"link\">EcefMatrix</a> (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>An <a href=\"pygeodesy.ecef.Ecef9Tuple-class.html\" \n          class=\"link\">Ecef9Tuple</a><code>(x, y, z, lat, lon, height, C, \n          M, datum)</code> with geocentric <code>(x, y, z)</code> \n          coordinates for the given geodetic ones <code>(lat, lon, \n          height)</code>, case <code>C</code> 0, optional <code>M</code> \n          (<a href=\"pygeodesy.ecef.EcefMatrix-class.html\" \n          class=\"link\">EcefMatrix</a>) and <code>datum</code> if available.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.ecef.EcefError-class.html\">EcefError</a></strong></code> - If <b><code>latlonh</code></b> not <code>LatLon</code>, <a \n        href=\"pygeodesy.ecef.Ecef9Tuple-class.html\" \n        class=\"link\">Ecef9Tuple</a> or <code>scalar</code> or \n        <b><code>lon</code></b> not <code>scalar</code> for \n        <code>scalar</code> <b><code>latlonh</code></b> or \n        <code>abs(lat)</code> exceeds 90&#176;.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        Use method <code>.forward_</code> to specify <code>lat</code> and \n        <code>lon</code> in <code>radians</code> and avoid double angle \n        conversions.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"forward_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">forward_</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">phi</span>,\n        <span class=\"sig-arg\">lam</span>,\n        <span class=\"sig-arg\">height</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">M</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Like method <code>.forward</code> except with geodetic lat- and \n  longitude given in <i>radians</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>phi</code></strong> - Latitude in <i>radians</i> (<code>scalar</code>).</li>\n        <li><strong class=\"pname\"><code>lam</code></strong> - Longitude in <i>radians</i> (<code>scalar</code>).</li>\n        <li><strong class=\"pname\"><code>height</code></strong> - Optional height (<code>meter</code>), vertically above (or below)\n          the surface of the ellipsoid.</li>\n        <li><strong class=\"pname\"><code>M</code></strong> - Optionally, return the rotation <a \n          href=\"pygeodesy.ecef.EcefMatrix-class.html\" \n          class=\"link\">EcefMatrix</a> (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>An <a href=\"pygeodesy.ecef.Ecef9Tuple-class.html\" \n          class=\"link\">Ecef9Tuple</a><code>(x, y, z, lat, lon, height, C, \n          M, datum)</code> with <code>lat</code> set to \n          <code>degrees90(<b>phi</b>)</code> and <code>lon</code> to \n          <code>degrees180(<b>lam</b>)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.ecef.EcefError-class.html\">EcefError</a></strong></code> - If <b><code>phi</code></b> or <b><code>lam</code></b> invalid or \n        not <code>scalar</code>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toStr\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toStr</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">prec</span>=<span class=\"sig-default\">9</span>,\n        <span class=\"sig-arg\">**unused</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return this <code>Ecef*</code> as a string.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>prec</code></strong> - Precision, number of decimal digits (0..9).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>This <code>Ecef*</code> (<code>str</code>).</dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.named._Named-class.html#toStr\">named._Named.toStr</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"datum\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">datum</h3>\n  <p>Get the datum (<a href=\"pygeodesy.datums.Datum-class.html\" \n  class=\"link\">Datum</a>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">datum(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the datum (<a href=\"pygeodesy.datums.Datum-class.html\" \nclass=\"link\">Datum</a>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"ellipsoid\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">ellipsoid</h3>\n  <p>Get the ellipsoid (<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\"\n  class=\"link\">Ellipsoid</a> or <a \n  href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n  class=\"link\">Ellipsoid2</a>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">ellipsoid(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the ellipsoid (<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \nclass=\"link\">Ellipsoid</a> or <a \nhref=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \nclass=\"link\">Ellipsoid2</a>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"equatoradius\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">equatoradius</h3>\n  <p>Get the <code>ellipsoid</code>'s equatorial radius, semi-axis \n  (<code>meter</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">equatoradius(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <code>ellipsoid</code>'s equatorial radius, semi-axis \n(<code>meter</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"equatorialRadius\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">equatorialRadius</h3>\n  <p>Get the <code>ellipsoid</code>'s equatorial radius, semi-axis \n  (<code>meter</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">equatoradius(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <code>ellipsoid</code>'s equatorial radius, semi-axis \n(<code>meter</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"a\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">a</h3>\n  <p>Get the <code>ellipsoid</code>'s equatorial radius, semi-axis \n  (<code>meter</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">equatoradius(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <code>ellipsoid</code>'s equatorial radius, semi-axis \n(<code>meter</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"flattening\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">flattening</h3>\n  <p>Get the <code>ellipsoid</code>'s flattening (<code>scalar</code>), \n  positive for <i>oblate</i>, negative for <i>prolate</i> or <code>0</code>\n  for <i>near-spherical</i>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">flattening(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <code>ellipsoid</code>'s flattening (<code>scalar</code>), positive\nfor <i>oblate</i>, negative for <i>prolate</i> or <code>0</code> for \n<i>near-spherical</i>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"f\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">f</h3>\n  <p>Get the <code>ellipsoid</code>'s flattening (<code>scalar</code>), \n  positive for <i>oblate</i>, negative for <i>prolate</i> or <code>0</code>\n  for <i>near-spherical</i>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">flattening(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <code>ellipsoid</code>'s flattening (<code>scalar</code>), positive\nfor <i>oblate</i>, negative for <i>prolate</i> or <code>0</code> for \n<i>near-spherical</i>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"lon00\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">lon00</h3>\n  <p>Get the <i>&quot;polar&quot;</i> longitude (<code>degrees</code>), see\n  method <code>reverse</code>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">lon00(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <i>&quot;polar&quot;</i> longitude (<code>degrees</code>), see \nmethod <code>reverse</code>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">lon00(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lon00</span>)</span>\n        - Set the <i>&quot;polar&quot;</i> longitude (<code>degrees</code>), see \nmethod <code>reverse</code>.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.ecefLocals-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.ecefLocals</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        Module&nbsp;ecefLocals\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.ecefLocals-module.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== MODULE DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Module ecefLocals</h1><p class=\"nomargin-top\"></p>\n<p>(INTERNAL) ECEF to local coodinate conversions, separated from module \n  <code>ecef</code> to defer importing the latter into \n  <code>CartesianBase</code> and <code>LatLonBase</code>.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Version:</strong>\n        25.04.28\n      </p>\n</div><!-- ==================== CLASSES ==================== -->\n<a name=\"section-Classes\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Classes</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ecefLocals._EcefLocal-class.html\" class=\"summary-name\">_EcefLocal</a><br />\n      (INTERNAL) Base class for <code>CartesianBase</code>, \n        <code>Ecef9Tuple</code> and <code>LatLonBase</code>, providing ECEF\n        to local coordinate conversions.\n    </td>\n  </tr>\n</table>\n<!-- ==================== VARIABLES ==================== -->\n<a name=\"section-Variables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Variables</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"__all__\"></a><span class=\"summary-name\">__all__</span> = <code title=\"_ALL_LAZY.ecefLocals\">_ALL_LAZY.ecefLocals</code>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.ecefLocals._EcefLocal-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.ecefLocals._EcefLocal</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.ecefLocals-module.html\">Module&nbsp;ecefLocals</a> ::\n        Class&nbsp;_EcefLocal\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.ecefLocals._EcefLocal-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class _EcefLocal</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+    \n           |    \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+\n               |\n              <strong class=\"uidshort\">_EcefLocal</strong>\n</pre>\n\n<dl><dt>Known Subclasses:</dt>\n<dd>\n      <ul class=\"subclass-list\">\n<li><a href=\"pygeodesy.ecef.Ecef9Tuple-class.html\">ecef.Ecef9Tuple</a></li><li>, <a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">latlonBase.LatLonBase</a></li><li>, <a href=\"pygeodesy.cartesianBase.CartesianBase-class.html\">cartesianBase.CartesianBase</a></li>  </ul>\n</dd></dl>\n\n<hr />\n<p>(INTERNAL) Base class for <code>CartesianBase</code>, \n  <code>Ecef9Tuple</code> and <code>LatLonBase</code>, providing ECEF to \n  local coordinate conversions.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toAer\" class=\"summary-sig-name\">toAer</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">ltp</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**Aer_and_kwds</span>)</span><br />\n      Convert this instance to <i>local</i> <i>Azimuth, Elevation, slant \n      Range</i> (AER) components.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toEnu\" class=\"summary-sig-name\">toEnu</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">ltp</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**Enu_and_kwds</span>)</span><br />\n      Convert this instance to <i>local</i> <i>East, North, Up</i> (ENU) \n      components.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toLocal\" class=\"summary-sig-name\">toLocal</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">Xyz</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">ltp</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**Xyz_kwds</span>)</span><br />\n      Convert this instance to <i>local</i> components in a <i>local \n      tangent plane</i> (LTP)</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toLtp\" class=\"summary-sig-name\">toLtp</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">Ecef</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Return the <i>local tangent plane</i> (LTP) for this instance.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toNed\" class=\"summary-sig-name\">toNed</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">ltp</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**Ned_and_kwds</span>)</span><br />\n      Convert this instance to <i>local</i> <i>North, East, Down</i> (NED) \n      components.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toXyz\" class=\"summary-sig-name\">toXyz</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">ltp</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**Xyz_and_kwds</span>)</span><br />\n      Convert this instance to <i>local</i> <i>X, Y, Z</i> (XYZ) \n      components.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__init__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#Ecef\" class=\"summary-name\">Ecef</a><br />\n      Get the ECEF <i>class</i> (<a \n      href=\"pygeodesy.ecef.EcefKarney-class.html\" \n      class=\"link\">EcefKarney</a>), <i>once</i>.\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"toAer\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toAer</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">ltp</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**Aer_and_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert this instance to <i>local</i> <i>Azimuth, Elevation, slant \n  Range</i> (AER) components.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>ltp</code></strong> - The <i>local tangent plane</i> (LTP) to use (<a \n          href=\"pygeodesy.ltp.Ltp-class.html\" class=\"link\">Ltp</a>), \n          overriding this instance' <a \n          href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toLtp\" \n          class=\"link\">LTP</a>.</li>\n        <li><strong class=\"pname\"><code>Aer_and_kwds</code></strong> - Optional AER class <code><b>Aer</b>=</code><a \n          href=\"pygeodesy.ltpTuples.Aer-class.html\" class=\"link\">Aer</a> to\n          use and optionally, additional <b><code>Aer</code></b> keyword \n          arguments.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>An <b><code>Aer</code></b> instance.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>ltp</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toLocal\"\n        class=\"link\">toLocal</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"toEnu\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toEnu</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">ltp</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**Enu_and_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert this instance to <i>local</i> <i>East, North, Up</i> (ENU) \n  components.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>ltp</code></strong> - The <i>local tangent plane</i> (LTP) to use (<a \n          href=\"pygeodesy.ltp.Ltp-class.html\" class=\"link\">Ltp</a>), \n          overriding this instance' <a \n          href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toLtp\" \n          class=\"link\">LTP</a>.</li>\n        <li><strong class=\"pname\"><code>Enu_and_kwds</code></strong> - Optional ENU class <code><b>Enu</b>=</code><a \n          href=\"pygeodesy.ltpTuples.Enu-class.html\" class=\"link\">Enu</a> to\n          use and optionally, additional <b><code>Enu</code></b> keyword \n          arguments.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>An <b><code>Enu</code></b> instance.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>ltp</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toLocal\"\n        class=\"link\">toLocal</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"toLocal\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toLocal</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">Xyz</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">ltp</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**Xyz_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert this instance to <i>local</i> components in a <i>local tangent\n  plane</i> (LTP)</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>Xyz</code></strong> - Optional <i>local</i> components class (<a \n          href=\"pygeodesy.ltpTuples.XyzLocal-class.html\" \n          class=\"link\">XyzLocal</a>, <a \n          href=\"pygeodesy.ltpTuples.Aer-class.html\" class=\"link\">Aer</a>, \n          <a href=\"pygeodesy.ltpTuples.Enu-class.html\" \n          class=\"link\">Enu</a>, <a \n          href=\"pygeodesy.ltpTuples.Ned-class.html\" class=\"link\">Ned</a>) \n          or <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>ltp</code></strong> - The <i>local tangent plane</i> (LTP) to use (<a \n          href=\"pygeodesy.ltp.Ltp-class.html\" class=\"link\">Ltp</a>), \n          overriding this cartesian's <a \n          href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toLtp\" \n          class=\"link\">LTP</a>.</li>\n        <li><strong class=\"pname\"><code>Xyz_kwds</code></strong> - Optionally, additional <b><code>Xyz</code></b> keyword arguments,\n          ignored if <code><b>Xyz</b> is None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>An <b><code>Xyz</code></b> instance or a <a \n          href=\"pygeodesy.ltpTuples.Local9Tuple-class.html\" \n          class=\"link\">Local9Tuple</a><code>(x, y, z, lat, lon, height, \n          ltp, ecef, M)</code> if <code><b>Xyz</b> is None</code> (with \n          <code>M=None</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>ltp</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toLtp\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toLtp</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">Ecef</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the <i>local tangent plane</i> (LTP) for this instance.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>Ecef</code></strong> - Optional ECEF <i>class</i> (<a \n          href=\"pygeodesy.ecef.EcefKarney-class.html\" \n          class=\"link\">EcefKarney</a>, ... <a \n          href=\"pygeodesy.ecef.EcefYou-class.html\" \n          class=\"link\">EcefYou</a>), overriding this instance' <a \n          href=\"pygeodesy.ecefLocals._EcefLocal-class.html#Ecef\" \n          class=\"link\">Ecef</a>.</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>An <b><code>Ltp</code></b> instance.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toNed\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toNed</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">ltp</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**Ned_and_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert this instance to <i>local</i> <i>North, East, Down</i> (NED) \n  components.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>ltp</code></strong> - The <i>local tangent plane</i> (LTP) to use (<a \n          href=\"pygeodesy.ltp.Ltp-class.html\" class=\"link\">Ltp</a>), \n          overriding this instance' <a \n          href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toLtp\" \n          class=\"link\">LTP</a>.</li>\n        <li><strong class=\"pname\"><code>Ned_and_kwds</code></strong> - Optional NED class <code><b>Ned</b>=</code><a \n          href=\"pygeodesy.ltpTuples.Ned-class.html\" class=\"link\">Ned</a> to\n          use and optionally, additional <b><code>Ned</code></b> keyword \n          arguments.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>An <b><code>Ned</code></b> instance.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>ltp</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toLocal\"\n        class=\"link\">toLocal</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"toXyz\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toXyz</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">ltp</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**Xyz_and_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert this instance to <i>local</i> <i>X, Y, Z</i> (XYZ) \n  components.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>ltp</code></strong> - The <i>local tangent plane</i> (LTP) to use (<a \n          href=\"pygeodesy.ltp.Ltp-class.html\" class=\"link\">Ltp</a>), \n          overriding this instance' <a \n          href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toLtp\" \n          class=\"link\">LTP</a>.</li>\n        <li><strong class=\"pname\"><code>Xyz_and_kwds</code></strong> - Optional XYZ class <code><b>Xyz</b>=</code><a \n          href=\"pygeodesy.ltpTuples.XyzLocal-class.html\" \n          class=\"link\">Xyz</a> to use and optionally, additional \n          <b><code>Xyz</code></b> keyword arguments.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>An <b><code>Xyz</code></b> instance.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>ltp</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toLocal\"\n        class=\"link\">toLocal</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<br />\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"Ecef\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">Ecef</h3>\n  <p>Get the ECEF <i>class</i> (<a \n  href=\"pygeodesy.ecef.EcefKarney-class.html\" class=\"link\">EcefKarney</a>),\n  <i>once</i>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fget(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Get the <code>property</code> value <i>once</i> and overwrite \n<code>self</code>, this <code>property</code> instance in the (super-)class\nof <code>self</code> where this property is define as a <a \nhref=\"pygeodesy.props.property_ROver-class.html\" \nclass=\"link\">property_ROver</a>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">*unused</span>)</span>\n        - Silently ignored, always.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.elevations-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.elevations</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        Module&nbsp;elevations\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.elevations-module.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== MODULE DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Module elevations</h1><p class=\"nomargin-top\"></p>\n<p>Web-services-based elevations and <code>CONUS</code> geoid \n  heights.</p>\n  <p>Functions to obtain elevations and geoid heights thru web services, \n  for (lat, lon) locations, currently limited to the <a \n  href=\"https://WikiPedia.org/wiki/Contiguous_United_States\" \n  target=\"_top\">Conterminous US (CONUS)</a>, see also modules <a \n  href=\"pygeodesy.geoids-module.html\" class=\"link\">pygeodesy.geoids</a> and\n  <a href=\"pygeodesy.heights-module.html\" \n  class=\"link\">pygeodesy.heights</a> and <a \n  href=\"https://Gist.GitHub.com/pyRobShrk\" \n  target=\"_top\">USGS10mElev.py</a>.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Module <a href=\"pygeodesy.geoids-module.html\" \n        class=\"link\">pygeodesy.geoids</a> to get geoid heights from other \n        sources and for regions other than <code>CONUS</code>.\n      </p>\n      <p><strong>Note:</strong>\n        If on <b>macOS</b> an <code>SSLCertVerificationError</code> occurs,\n        like <i>&quot;[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify \n        failed: self &quot;signed certificate in certificate chain \n        ...&quot;</i>, review <a \n        href=\"https://StackOverflow.com/questions/27835619/urllib-and-ssl-certificate-verify-failed-error\"\n        target=\"_top\">this post</a> for a remedy. From a \n        <code>Terminal</code> window run: <code>&quot;/Applications/Python\\\n        X.Y/Install\\ Certificates.command&quot;</code>\n      </p>\n      <p><strong>Version:</strong>\n        25.04.14\n      </p>\n</div><!-- ==================== CLASSES ==================== -->\n<a name=\"section-Classes\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Classes</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.elevations.Elevation2Tuple-class.html\" class=\"summary-name\">Elevation2Tuple</a><br />\n      2-Tuple <code>(elevation, data_source)</code> in <code>meter</code>\n        and <code>str</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.elevations.GeoidHeight2Tuple-class.html\" class=\"summary-name\">GeoidHeight2Tuple</a><br />\n      2-Tuple <code>(height, model_name)</code>, geoid \n        <code>height</code> in <code>meter</code> and \n        <code>model_name</code> as <code>str</code>.\n    </td>\n  </tr>\n</table>\n<!-- ==================== FUNCTIONS ==================== -->\n<a name=\"section-Functions\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Functions</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.elevations-module.html#elevation2\" class=\"summary-sig-name\">elevation2</a>(<span class=\"summary-sig-arg\">lat</span>,\n        <span class=\"summary-sig-arg\">lon</span>,\n        <span class=\"summary-sig-arg\">timeout</span>=<span class=\"summary-sig-default\">2.0</span>)</span><br />\n      Get the geoid elevation at an <code>NAD83</code> to \n      <code>NAVD88</code> location.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.elevations-module.html#geoidHeight2\" class=\"summary-sig-name\">geoidHeight2</a>(<span class=\"summary-sig-arg\">lat</span>,\n        <span class=\"summary-sig-arg\">lon</span>,\n        <span class=\"summary-sig-arg\">model</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">timeout</span>=<span class=\"summary-sig-default\">2.0</span>)</span><br />\n      Get the <code>NAVD88</code> geoid height at an <code>NAD83</code> \n      location.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== VARIABLES ==================== -->\n<a name=\"section-Variables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Variables</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"__all__\"></a><span class=\"summary-name\">__all__</span> = <code title=\"_ALL_LAZY.elevations\">_ALL_LAZY.elevations</code>\n    </td>\n  </tr>\n</table>\n<!-- ==================== FUNCTION DETAILS ==================== -->\n<a name=\"section-FunctionDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Function Details</span></td>\n</tr>\n</table>\n<a name=\"elevation2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">elevation2</span>&nbsp;(<span class=\"sig-arg\">lat</span>,\n        <span class=\"sig-arg\">lon</span>,\n        <span class=\"sig-arg\">timeout</span>=<span class=\"sig-default\">2.0</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Get the geoid elevation at an <code>NAD83</code> to \n  <code>NAVD88</code> location.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat</code></strong> - Latitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lon</code></strong> - Longitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>timeout</code></strong> - Optional, query timeout (seconds).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>An <a href=\"pygeodesy.elevations.Elevation2Tuple-class.html\" \n          class=\"link\">Elevation2Tuple</a><code>(elevation, \n          data_source)</code> or (<code>None, &quot;error&quot;</code>) in \n          case of errors.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>timeout</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        The returned <code>elevation is None</code> if \n        <b><code>lat</code></b> or <b><code>lon</code></b> is invalid or \n        outside the <code>Conterminous US (CONUS)</code>, if conversion \n        failed or if the query timed out.  The \n        <code>&quot;error&quot;</code> is the <code>HTTP-, IO-, SSL-</code>\n        or other <code>-Error</code> as a string (<code>str</code>).\n      </p>\n      <p><strong>See Also:</strong>\n        <a href=\"https://apps.NationalMap.gov/epqs/\" target=\"_top\">USGS \n        Elevation Point Query Service</a>, the <a \n        href=\"https://www.USGS.gov/faqs/what-are-projection-horizontal-and-vertical-datum-units-and-resolution-3dep-standard-dems\"\n        target=\"_top\">FAQ</a>, <a href=\"https://Gist.GitHub.com/pyRobShrk\" \n        target=\"_top\">geoid.py</a>, module <a \n        href=\"pygeodesy.geoids-module.html\" class=\"link\">geoids</a>, \n        classes <a href=\"pygeodesy.geoids.GeoidG2012B-class.html\" \n        class=\"link\">GeoidG2012B</a>, <a \n        href=\"pygeodesy.geoids.GeoidKarney-class.html\" \n        class=\"link\">GeoidKarney</a> and <a \n        href=\"pygeodesy.geoids.GeoidPGM-class.html\" \n        class=\"link\">GeoidPGM</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"geoidHeight2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">geoidHeight2</span>&nbsp;(<span class=\"sig-arg\">lat</span>,\n        <span class=\"sig-arg\">lon</span>,\n        <span class=\"sig-arg\">model</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">timeout</span>=<span class=\"sig-default\">2.0</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Get the <code>NAVD88</code> geoid height at an <code>NAD83</code> \n  location.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat</code></strong> - Latitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lon</code></strong> - Longitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>model</code></strong> - Optional, geoid model ID (<code>int</code>).</li>\n        <li><strong class=\"pname\"><code>timeout</code></strong> - Optional, query timeout (seconds).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>An <a href=\"pygeodesy.elevations.GeoidHeight2Tuple-class.html\" \n          class=\"link\">GeoidHeight2Tuple</a><code>(height, \n          model_name)</code> or <code>(None, &quot;error&quot;</code>) in \n          case of errors.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>timeout</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        The returned <code>height is None</code> if <b><code>lat</code></b>\n        or <b><code>lon</code></b> is invalid or outside the \n        <code>Conterminous US (CONUS)</code>, if the \n        <b><code>model</code></b> was invalid, if conversion failed or if \n        the query timed out.  The <code>&quot;error&quot;</code> is the \n        <code>HTTP-, IO-, SSL-, URL-</code> or other <code>-Error</code> as\n        a string (<code>str</code>).\n      </p>\n      <p><strong>See Also:</strong>\n        <a href=\"https://www.NGS.NOAA.gov/INFO/geodesy.shtml\" \n        target=\"_top\">NOAA National Geodetic Survey</a>, <a \n        href=\"https://www.NGS.NOAA.gov/web_services/geoid.shtml\" \n        target=\"_top\">Geoid</a>, <a \n        href=\"https://Gist.GitHub.com/pyRobShrk\" \n        target=\"_top\">USGS10mElev.py</a>, module <a \n        href=\"pygeodesy.geoids-module.html\" class=\"link\">geoids</a>, \n        classes <a href=\"pygeodesy.geoids.GeoidG2012B-class.html\" \n        class=\"link\">GeoidG2012B</a>, <a \n        href=\"pygeodesy.geoids.GeoidKarney-class.html\" \n        class=\"link\">GeoidKarney</a> and <a \n        href=\"pygeodesy.geoids.GeoidPGM-class.html\" \n        class=\"link\">GeoidPGM</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.elevations.Elevation2Tuple-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.elevations.Elevation2Tuple</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.elevations-module.html\">Module&nbsp;elevations</a> ::\n        Class&nbsp;Elevation2Tuple\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.elevations.Elevation2Tuple-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Elevation2Tuple</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n   object --+        \n            |        \n        tuple --+    \n                |    \n   object --+   |    \n            |   |    \n <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n                |    \n<a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a> --+\n                    |\n                   <strong class=\"uidshort\">Elevation2Tuple</strong>\n</pre>\n\n<hr />\n<p>2-Tuple <code>(elevation, data_source)</code> in <code>meter</code> \n  and <code>str</code>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__delattr__\">__delattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__getattr__\">__getattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__setattr__\">__setattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#items\">items</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iteritems\">iteritems</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iterunits\">iterunits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#reUnit\">reUnit</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toUnits\">toUnits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>tuple</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__eq__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__iter__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__rmul__</code>,\n      <code>count</code>,\n      <code>index</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__new__\">__new__</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.elevations.GeoidHeight2Tuple-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.elevations.GeoidHeight2Tuple</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.elevations-module.html\">Module&nbsp;elevations</a> ::\n        Class&nbsp;GeoidHeight2Tuple\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.elevations.GeoidHeight2Tuple-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class GeoidHeight2Tuple</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n   object --+        \n            |        \n        tuple --+    \n                |    \n   object --+   |    \n            |   |    \n <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n                |    \n<a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a> --+\n                    |\n                   <strong class=\"uidshort\">GeoidHeight2Tuple</strong>\n</pre>\n\n<hr />\n<p>2-Tuple <code>(height, model_name)</code>, geoid <code>height</code> \n  in <code>meter</code> and <code>model_name</code> as \n  <code>str</code>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__delattr__\">__delattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__getattr__\">__getattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__setattr__\">__setattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#items\">items</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iteritems\">iteritems</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iterunits\">iterunits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#reUnit\">reUnit</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toUnits\">toUnits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>tuple</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__eq__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__iter__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__rmul__</code>,\n      <code>count</code>,\n      <code>index</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__new__\">__new__</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.ellipses-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.ellipses</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        Module&nbsp;ellipses\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.ellipses-module.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== MODULE DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Module ellipses</h1><p class=\"nomargin-top\"></p>\n<p>Class <code>Ellipse</code> for 2-D ellipse attributes, like perimeter,\n  area, etc.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Version:</strong>\n        26.03.25\n      </p>\n</div><!-- ==================== CLASSES ==================== -->\n<a name=\"section-Classes\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Classes</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipses.Ellipse-class.html\" class=\"summary-name\">Ellipse</a><br />\n      Class to compute various attributes of a 2-D ellipse.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipses.EllipseError-class.html\" class=\"summary-name\">EllipseError</a><br />\n      Raised for any <a href=\"pygeodesy.ellipses.Ellipse-class.html\" \n        class=\"link\">Ellipse</a> or <code>ellipses</code> issue.\n    </td>\n  </tr>\n</table>\n<!-- ==================== VARIABLES ==================== -->\n<a name=\"section-Variables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Variables</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"__all__\"></a><span class=\"summary-name\">__all__</span> = <code title=\"_ALL_LAZY.ellipses\">_ALL_LAZY.ellipses</code>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.ellipses.Ellipse-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.ellipses.Ellipse</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.ellipses-module.html\">Module&nbsp;ellipses</a> ::\n        Class&nbsp;Ellipse\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.ellipses.Ellipse-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Ellipse</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+        \n           |        \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n               |    \n<a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+\n                   |\n                  <strong class=\"uidshort\">Ellipse</strong>\n</pre>\n\n<hr />\n<p>Class to compute various attributes of a 2-D ellipse.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipses.Ellipse-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">a</span>,\n        <span class=\"summary-sig-arg\">b</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      New <a href=\"pygeodesy.ellipses.Ellipse-class.html\" \n      class=\"link\">Ellipse</a> with semi-axes <b><code>a</code></b> and \n      <b><code>b</code></b>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipses.Ellipse-class.html#arc\" class=\"summary-sig-name\">arc</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">deg2</span>,\n        <span class=\"summary-sig-arg\">deg1</span>=<span class=\"summary-sig-default\">0</span>)</span><br />\n      Compute the length of <a \n      href=\"https://www.JohnDCook.com/blog/2022/11/02/elliptic-arc-length/\"\n      target=\"_top\">elliptic arc</a> <code>(<b>deg2</b> - \n      <b>deg1</b>)</code>, both counter-clockwise from semi-axis \n      <b><code>a</code></b> to <b><code>b</code></b> of the ellipse.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipses.Ellipse-class.html#arc_\" class=\"summary-sig-name\">arc_</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">rad2</span>,\n        <span class=\"summary-sig-arg\">rad1</span>=<span class=\"summary-sig-default\">0</span>)</span><br />\n      Compute the length of <a \n      href=\"https://www.JohnDCook.com/blog/2022/11/02/elliptic-arc-length/\"\n      target=\"_top\">elliptic arc</a> <code>(<b>rad2</b> - \n      <b>rad1</b>)</code>, both counter-clockwise from semi-axis \n      <b><code>a</code></b> to <b><code>b</code></b> of the ellipse.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipses.Ellipse-class.html#hartzell4\" class=\"summary-sig-name\">hartzell4</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">x</span>,\n        <span class=\"summary-sig-arg\">y</span>,\n        <span class=\"summary-sig-arg\">los</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Compute the intersection of this ellipse with a Line-Of-Sight from \n      Point-Of-View <code>(<b>x</b>, <b>y</b>)</code> <i>outside</i> this \n      ellipse.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipses.Ellipse-class.html#height4\" class=\"summary-sig-name\">height4</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">x</span>,\n        <span class=\"summary-sig-arg\">y</span>,\n        <span class=\"summary-sig-arg\">**normal_eps</span>)</span><br />\n      Compute the projection on and distance to this ellipse from a point \n      <code>(<b>x</b>, <b>y</b>)</code> in- or outside this ellipse.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipses.Ellipse-class.html#normal3d\" class=\"summary-sig-name\">normal3d</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">deg_x</span>,\n        <span class=\"summary-sig-arg\">y</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**length</span>)</span><br />\n      Get a 3-D vector <i>perpendicular to</i> this ellipse from point \n      <code>(<b>x</b>, <b>y</b>)</code> <code>on</code> this ellipse or at \n      <code><b>deg</b> degrees</code> along this ellipse.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipses.Ellipse-class.html#normal4\" class=\"summary-sig-name\">normal4</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">deg_x</span>,\n        <span class=\"summary-sig-arg\">y</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**height_normal</span>)</span><br />\n      Compute a point at <b><code>height</code></b> above or below this \n      ellipse point <code>(<b>x</b>, <b>y</b>)</code> <code>on</code> this \n      ellipse or at <code><b>deg</b> degrees</code> along this ellipse.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipses.Ellipse-class.html#point\" class=\"summary-sig-name\">point</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">deg_x</span>,\n        <span class=\"summary-sig-arg\">y</span>=<span class=\"summary-sig-default\">None</span>)</span><br />\n      Return the point <i>on</i> this ellipse at <code><b>deg</b></code> or\n      <code>atan2d(<b>y</b>, <b>x</b>) degrees</code> along this ellipse.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipses.Ellipse-class.html#points\" class=\"summary-sig-name\">points</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">np</span>,\n        <span class=\"summary-sig-arg\">nq</span>=<span class=\"summary-sig-default\">4</span>,\n        <span class=\"summary-sig-arg\">ccw</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">ended</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">eps</span>=<span class=\"summary-sig-default\">2.220446049250313e-16</span>)</span><br />\n      Yield up to <code>np</code> points along this ellipse, each a 2-tuple\n      <code>(x, y)</code>, starting at semi-axis <code>+a</code>, in \n      (counter-)clockwise order and distributed evenly along the minor \n      semi-axis.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"polar2d\"></a><span class=\"summary-sig-name\">polar2d</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">deg_x</span>,\n        <span class=\"summary-sig-arg\">y</span>=<span class=\"summary-sig-default\">None</span>)</span><br />\n      For a point at <code><b>deg</b></code> or <code>atan2d(<b>y</b>, \n      <b>x</b>) degrees</code> along this ellipse, return 2-tuple \n      <code>(radius, angle)</code> with the polar <a \n      href=\"https://WikiPedia.org/wiki/Ellipse#Polar_form_relative_to_center\"\n      target=\"_top\">radius</a> from the center (<code>meter</code>, \n      conventionally) and <code>angle</code> in <code>degrees</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipses.Ellipse-class.html#Roc\" class=\"summary-sig-name\">Roc</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">deg_x</span>,\n        <span class=\"summary-sig-arg\">y</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">eps</span>=<span class=\"summary-sig-default\">None</span>)</span><br />\n      Compute the <a href=\"https://WikiPedia.org/wiki/Radius_of_curvature\" \n      target=\"_top\">radius of curvature</a> at a point \n      <code><b>deg</b></code> or <code>atan2d(<b>y</b>, <b>x</b>) \n      degrees</code> along this ellipse.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipses.Ellipse-class.html#Roc_\" class=\"summary-sig-name\">Roc_</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">rad_x</span>,\n        <span class=\"summary-sig-arg\">y</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">eps</span>=<span class=\"summary-sig-default\">None</span>)</span><br />\n      Compute the <a href=\"https://WikiPedia.org/wiki/Radius_of_curvature\" \n      target=\"_top\">radius of curvature</a> at a point \n      <code><b>rad</b></code> or <code>atan2(<b>y</b>, <b>x</b>) \n      radians</code> along this ellipse.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"sideOf\"></a><span class=\"summary-sig-name\">sideOf</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">x</span>,\n        <span class=\"summary-sig-arg\">y</span>,\n        <span class=\"summary-sig-arg\">eps</span>=<span class=\"summary-sig-default\">2.220446049250313e-16</span>)</span><br />\n      Return a <code>positive</code>, <code>negative</code> or \n      <code>0</code> fraction if point <code>(<b>x</b>, <b>y</b>)</code> is\n      <code>outside</code>, <code>inside</code> respectively \n      <code>on</code> this ellipse.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipses.Ellipse-class.html#slope\" class=\"summary-sig-name\">slope</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">deg_x</span>,\n        <span class=\"summary-sig-arg\">y</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">eps</span>=<span class=\"summary-sig-default\">None</span>)</span><br />\n      Compute the <a \n      href=\"https://WikiPedia.org/wiki/Ellipse#Tangent_slope_as_parameter\" \n      target=\"_top\">tangent slope</a> at a point <code><b>deg</b></code> or\n      <code>atan2d(<b>y</b>, <b>x</b>) degrees</code> along this ellipse.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipses.Ellipse-class.html#slope_\" class=\"summary-sig-name\">slope_</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">rad_x</span>,\n        <span class=\"summary-sig-arg\">y</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">eps</span>=<span class=\"summary-sig-default\">None</span>)</span><br />\n      Compute the <a \n      href=\"https://WikiPedia.org/wiki/Ellipse#Tangent_slope_as_parameter\" \n      target=\"_top\">tangent slope</a> at a point <code><b>rad</b></code> or\n      <code>atan2(<b>y</b>, <b>x</b>) radians</code> along this ellipse.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipses.Ellipse-class.html#toEllipsoid\" class=\"summary-sig-name\">toEllipsoid</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">**Ellipsoid_and_kwds</span>)</span><br />\n      Return an <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n      class=\"link\">Ellipsoid</a> from this ellipse' <code>a</code> and \n      <code>b</code> semi-axes.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipses.Ellipse-class.html#toStr\" class=\"summary-sig-name\">toStr</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">prec</span>=<span class=\"summary-sig-default\">8</span>,\n        <span class=\"summary-sig-arg\">terse</span>=<span class=\"summary-sig-default\">2</span>,\n        <span class=\"summary-sig-arg\">**sep_name</span>)</span><br />\n      Return this ellipse as a text string.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipses.Ellipse-class.html#toTriaxial_\" class=\"summary-sig-name\">toTriaxial_</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">c</span>=<span class=\"summary-sig-default\">2.220446049250313e-16</span>,\n        <span class=\"summary-sig-arg\">**Triaxial_and_kwds</span>)</span><br />\n      Return a <a href=\"pygeodesy.triaxials.triaxial5.Triaxial_-class.html\"\n      class=\"link\">Triaxial_</a> from this ellipse' semi-axes.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#others\">others</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#toRepr\">toRepr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipses.Ellipse-class.html#a\" class=\"summary-name\">a</a><br />\n      Get semi-axis <code><b>a</b></code> of this ellipse \n      (<code>meter</code>, conventionally).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipses.Ellipse-class.html#apses2\" class=\"summary-name\">apses2</a><br />\n      Get 2-tuple <code>(apoapsis, periapsis)</code> with the <a \n      href=\"https://MathWorld.Wolfram.com/Apoapsis.html\" \n      target=\"_top\">apo-</a> and <a \n      href=\"https://MathWorld.Wolfram.com/Periapsis.html\" \n      target=\"_top\">periapsis</a> of this ellipse, both <code>meter</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipses.Ellipse-class.html#area\" class=\"summary-name\">area</a><br />\n      Get the area of this ellipse (<code>meter**2</code>, conventionally).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipses.Ellipse-class.html#b\" class=\"summary-name\">b</a><br />\n      Get semi-axis <code><b>b</b></code> of this ellipse \n      (<code>meter</code>, conventionally).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipses.Ellipse-class.html#c\" class=\"summary-name\">c</a><br />\n      Get the <a \n      href=\"https://WikiPedia.org/wiki/Ellipse#Linear_eccentricity\" \n      target=\"_top\">linear eccentricity</a> <code>c</code>, <i>unsigned</i>\n      (<code>meter</code>, conventionally).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipses.Ellipse-class.html#e\" class=\"summary-name\">e</a><br />\n      Get the eccentricity (<code>scalar, 0 &lt;= <b>e</b> &lt;= 1</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipses.Ellipse-class.html#e2\" class=\"summary-name\">e2</a><br />\n      Get the eccentricity <i>squared</i> (<code>scalar, 0 &lt;= <b>e2</b> \n      &lt;= 1</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipses.Ellipse-class.html#foci\" class=\"summary-name\">foci</a><br />\n      Get the <a \n      href=\"https://WikiPedia.org/wiki/Ellipse#Linear_eccentricity\" \n      target=\"_top\">linear eccentricity</a>, <i>signed</i> \n      (<code>meter</code>, conventionally), <code>positive</code> if this \n      ellipse is oblate, <code>negative</code> if prolate or <code>0</code>\n      if circular.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipses.Ellipse-class.html#isCircular\" class=\"summary-name\">isCircular</a><br />\n      Is this ellipse circular? (<code>bool</code>)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipses.Ellipse-class.html#isFlat\" class=\"summary-name\">isFlat</a><br />\n      Is this ellipse &quot;flat&quot;, too pro-/oblate? \n      (<code>bool</code>)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipses.Ellipse-class.html#isOblate\" class=\"summary-name\">isOblate</a><br />\n      Is this ellipse oblate (foci on semi-axis <code>a</code>)? \n      (<code>bool</code>)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipses.Ellipse-class.html#isProlate\" class=\"summary-name\">isProlate</a><br />\n      Is this ellipse prolate (foci on semi-axis <code>b</code>)? \n      (<code>bool</code>)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipses.Ellipse-class.html#lati\" class=\"summary-name\">lati</a><br />\n      Get the <a \n      href=\"https://WikiPedia.org/wiki/Ellipse#Semi-latus_rectum\" \n      target=\"_top\">semi-latus rectum</a>, <i>signed</i> \n      (<code>meter</code>, conventionally), <code>positive</code> if this \n      ellipse is oblate or circular, <code>0</code> if &quot;flat&quot; and\n      oblate, <code>negative</code> if prolate or <code>NEG0</code> if \n      &quot;flat&quot; and prolate.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipses.Ellipse-class.html#p\" class=\"summary-name\">p</a><br />\n      Get the <a \n      href=\"https://WikiPedia.org/wiki/Ellipse#Semi-latus_rectum\" \n      target=\"_top\">semi-latus rectum</a> <code>p (aka <b>&#120001;</b>, \n      script-small-l)</code>, <i>unsigned</i> (<code>meter</code>, \n      conventionally).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipses.Ellipse-class.html#perimeterAGM\" class=\"summary-name\">perimeterAGM</a><br />\n      Compute the perimeter of this ellipse using the <a \n      href=\"https://PaulBourke.net/geometry/ellipsecirc\" \n      target=\"_top\">Arithmetic-Geometric Mean</a> formula \n      (<code>meter</code>, conventionally).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipses.Ellipse-class.html#perimeter4Arc3\" class=\"summary-name\">perimeter4Arc3</a><br />\n      Compute the perimeter (and arcs) of this ellipse using the <a \n      href=\"https://PaulBourke.net/geometry/ellipsecirc\" \n      target=\"_top\">4-Arc</a> (aka 4-Center) approximation as a 3-Tuple \n      <code>(P, Ra, Rb)</code> with perimeter <code>P</code>, arc radii \n      <code>Ra</code> and <code>Rb</code> at the respective semi-axes (all \n      in <code>meter</code>, conventionally).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipses.Ellipse-class.html#perimeterCR\" class=\"summary-name\">perimeterCR</a><br />\n      Compute the perimeter of this ellipse using <a \n      href=\"https://www.ChrisRackauckas.com/assets/Papers/ChrisRackauckas-The_Circumference_of_an_Ellipse.pdf\"\n      target=\"_top\">Rackauckas'</a> approximation, also <a \n      href=\"https://ExtremeLearning.com.AU/a-formula-for-the-perimeter-of-an-ellipse\"\n      target=\"_top\">here</a> and <a \n      href=\"http://www.EByte.IT/library/docs/math05a/EllipsePerimeterApprox05.html\"\n      target=\"_top\">here</a> (<code>meter</code>, conventionally).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipses.Ellipse-class.html#perimeterGK\" class=\"summary-name\">perimeterGK</a><br />\n      Compute the perimeter of this ellipse using the <a \n      href=\"https://www.JohnDCook.com/blog/2023/05/28/approximate-ellipse-perimeter\"\n      target=\"_top\">Gauss-Kummer</a> series, <code><b>b / a</b> &gt; \n      0.75</code> (<code>meter</code>, conventionally).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipses.Ellipse-class.html#perimeterHGK\" class=\"summary-name\">perimeterHGK</a><br />\n      Compute the perimeter of this ellipse using the <a \n      href=\"https://web.Tecnico.ULisboa.PT/~mcasquilho/compute/com/,ellips/PerimeterOfEllipse.pdf\"\n      target=\"_top\">Hypergeometric Gauss-Kummer</a> series \n      (<code>meter</code>, conventionally).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipses.Ellipse-class.html#perimeter2k\" class=\"summary-name\">perimeter2k</a><br />\n      Compute the perimeter of this ellipse using the complete integral of \n      the 2nd kind, <code>Elliptic.cE</code> (<code>meter</code>, \n      conventionally).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipses.Ellipse-class.html#perimeter2k_\" class=\"summary-name\">perimeter2k_</a><br />\n      Compute the perimeter of this ellipse using <a \n      href=\"https://www.JohnDCook.com/perimeter_ellipse.html\" \n      target=\"_top\">SciPy's ellipe</a> function if available, otherwise use\n      property <code>perimeter2k</code> (<code>meter</code>, \n      conventionally).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipses.Ellipse-class.html#perimeter2R\" class=\"summary-name\">perimeter2R</a><br />\n      Compute the perimeter of this ellipse using <a \n      href=\"https://PaulBourke.net/geometry/ellipsecirc\" \n      target=\"_top\">Ramanujan's 2nd</a> approximation, <code><b>b / a</b> \n      &gt; 0.9</code> (<code>meter</code>, conventionally).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipses.Ellipse-class.html#perimeter2RC\" class=\"summary-name\">perimeter2RC</a><br />\n      Compute the perimeter of this ellipse using <a \n      href=\"http://www.EByte.IT/library/docs/math05a/EllipsePerimeterApprox05.html\"\n      target=\"_top\">Cantrell Ramanujan's 2nd</a> approximation, <code><b>b \n      / a</b> &gt; 0.9</code> (<code>meter</code>, conventionally).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipses.Ellipse-class.html#R1\" class=\"summary-name\">R1</a><br />\n      Get this ellipse' <i>arithmetic mean</i> radius, <code>(2 * a + b) / \n      3</code> (<code>meter</code>, conventionally).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipses.Ellipse-class.html#R2\" class=\"summary-name\">R2</a><br />\n      Get this ellipse' <i>authalic</i> radius, <code>sqrt(<b>a</b> * \n      <b>b</b>)</code> (<code>meter</code>, conventionally).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipses.Ellipse-class.html#Rgeometric\" class=\"summary-name\">Rgeometric</a><br />\n      Get this ellipse' <i>authalic</i> radius, <code>sqrt(<b>a</b> * \n      <b>b</b>)</code> (<code>meter</code>, conventionally).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipses.Ellipse-class.html#Rauthalic\" class=\"summary-name\">Rauthalic</a><br />\n      Get this ellipse' <i>authalic</i> radius, <code>sqrt(<b>a</b> * \n      <b>b</b>)</code> (<code>meter</code>, conventionally).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipses.Ellipse-class.html#Rrectifying\" class=\"summary-name\">Rrectifying</a><br />\n      Get this ellipse' <i>rectifying</i> radius, <code>perimeter2k_ / \n      PI2</code> (<code>meter</code>, conventionally).\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">a</span>,\n        <span class=\"sig-arg\">b</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.ellipses.Ellipse-class.html\" \n  class=\"link\">Ellipse</a> with semi-axes <b><code>a</code></b> and \n  <b><code>b</code></b>.</p>\n  <p>The ellipse is <code>oblate</code> if <code><b>a</b> &gt; \n  <b>b</b></code>, <code>prolate</code> if <code><b>a</b> &lt; \n  <b>b</b></code>, <code>circular</code> if <code><b>a</b> == \n  <b>b</b></code> and <code>&quot;flat&quot;</code> if <code>min(<b>a</b>, \n  <b>b</b>) &lt;&lt;&lt; max(<b>a</b>, <b>b</b>)</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>a</code></strong> - X semi-axis length (<code>meter</code>, conventionally).</li>\n        <li><strong class=\"pname\"><code>b</code></strong> - Y semi-axis length (<code>meter</code>, conventionally).</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>a</code></b> or <b><code>b</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"https://MathWorld.Wolfram.com/Ellipse.html\" \n        target=\"_top\">Ellipse</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"arc\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">arc</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">deg2</span>,\n        <span class=\"sig-arg\">deg1</span>=<span class=\"sig-default\">0</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the length of <a \n  href=\"https://www.JohnDCook.com/blog/2022/11/02/elliptic-arc-length/\" \n  target=\"_top\">elliptic arc</a> <code>(<b>deg2</b> - <b>deg1</b>)</code>, \n  both counter-clockwise from semi-axis <b><code>a</code></b> to \n  <b><code>b</code></b> of the ellipse.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>deg2</code></strong> - End angle of the elliptic arc (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>deg1</code></strong> - Start angle of the elliptic arc (<code>degrees</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Arc length, signed (<code>meter</code>, conventionally).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"arc_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">arc_</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">rad2</span>,\n        <span class=\"sig-arg\">rad1</span>=<span class=\"sig-default\">0</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the length of <a \n  href=\"https://www.JohnDCook.com/blog/2022/11/02/elliptic-arc-length/\" \n  target=\"_top\">elliptic arc</a> <code>(<b>rad2</b> - <b>rad1</b>)</code>, \n  both counter-clockwise from semi-axis <b><code>a</code></b> to \n  <b><code>b</code></b> of the ellipse.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>rad2</code></strong> - End angle of the elliptic arc (<code>radians</code>).</li>\n        <li><strong class=\"pname\"><code>rad1</code></strong> - Start angle of the elliptic arc (<code>radians</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Arc length, signed (<code>meter</code>, conventionally).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"hartzell4\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">hartzell4</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">x</span>,\n        <span class=\"sig-arg\">y</span>,\n        <span class=\"sig-arg\">los</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the intersection of this ellipse with a Line-Of-Sight from \n  Point-Of-View <code>(<b>x</b>, <b>y</b>)</code> <i>outside</i> this \n  ellipse.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>los</code></strong> - Line-Of-Sight, <i>direction</i> to the ellipse (<a \n          href=\"pygeodesy.ltpTuples.Los-class.html\" class=\"link\">Los</a>, \n          <a href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <a \n          href=\"pygeodesy.namedTuples.Vector2Tuple-class.html\" \n          class=\"link\">Vector2Tuple</a> or 2-tuple <code>(dx, dy)</code>) \n          or <code>True</code> for the <i>normal, perpendicular, plumb</i> \n          to this ellipse or <code>False</code> or <code>None</code> to \n          point to its center.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><a href=\"pygeodesy.namedTuples.Vector4Tuple-class.html\" \n          class=\"link\">Vector4Tuple</a><code>(x, y, z, h)</code> with \n          coordinates <code>x</code>, <code>y</code> and <code>z=0</code> \n          of the intersection and <code>h</code> the distance to \n          &quot;Point-Of-View&quot; <code>(<b>x</b>, <b>y</b>)</code> \n          <i>along the</i> <b><code>los</code></b>, all in \n          <code>meter</code>, conventionally.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.ellipses.EllipseError-class.html\">EllipseError</a></strong></code> - Invalid <b><code>x</code></b>, <b><code>y</code></b> or \n        <b><code>los</code></b> or <b><code>los</code></b> points outside \n        or away from this ellipse.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a \n        href=\"pygeodesy.triaxials.triaxial5-module.html#hartzell4\" \n        class=\"link\">hartzell4</a> for further details.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"height4\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">height4</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">x</span>,\n        <span class=\"sig-arg\">y</span>,\n        <span class=\"sig-arg\">**normal_eps</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the projection on and distance to this ellipse from a point \n  <code>(<b>x</b>, <b>y</b>)</code> in- or outside this ellipse.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>normal_eps</code></strong> - With default <code><b>normal</b>=True</code> the projection is \n          <i>perpendicular, plumb</i> to this ellipse, otherwise \n          <code>radially</code> to its center (<code>bool</code>). \n          Tolerance <code><b>eps</b>=EPS</code> for root finding and \n          validation (<code>scalar</code>), use a negative value to skip \n          validation.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><a href=\"pygeodesy.namedTuples.Vector4Tuple-class.html\" \n          class=\"link\">Vector4Tuple</a><code>(x, y, z, h)</code> with \n          coordinates <code>x</code>, <code>y</code> and <code>z=0</code> \n          of the projection on or the intersection with the ellipse and \n          <code>h</code> the <i>signed, normal distance</i> to the ellipse \n          in <code>meter</code>, conventionally. Positive <code>h</code> \n          indicates, <code>x</code> and/or <code>y</code> are outside the \n          ellipse, negative <code>h</code> means inside.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.ellipses.EllipseError-class.html\">EllipseError</a></strong></code> - Invalid <b><code>x</code></b>, <b><code>y</code></b> or \n        <b><code>eps</code></b>, no convergence in root finding or \n        validation failed.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Methods <a href=\"pygeodesy.ellipses.Ellipse-class.html#normal3d\" \n        class=\"link\">Ellipse.normal3d</a>, <a \n        href=\"pygeodesy.ellipses.Ellipse-class.html#normal4\" \n        class=\"link\">Ellipse.normal4</a> and function <a \n        href=\"pygeodesy.triaxials.triaxial5-module.html#height4\" \n        class=\"link\">height4</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"normal3d\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">normal3d</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">deg_x</span>,\n        <span class=\"sig-arg\">y</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**length</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Get a 3-D vector <i>perpendicular to</i> this ellipse from point \n  <code>(<b>x</b>, <b>y</b>)</code> <code>on</code> this ellipse or at \n  <code><b>deg</b> degrees</code> along this ellipse.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>length</code></strong> - Optional, signed <code><b>length</b>=1</code> in out-/inward \n          direction (<code>scalar</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <code>Vector3d(x_, y_, z_=0)</code> normalized to \n          <b><code>length</code></b>, pointing out- or inward for postive \n          respectively negative <b><code>length</code></b>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.ellipses.EllipseError-class.html\">EllipseError</a></strong></code> - Invalid <b><code>x</code></b> and/or <b><code>y</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Methods <a href=\"pygeodesy.ellipses.Ellipse-class.html#height4\" \n        class=\"link\">Ellipse.height4</a>, <a \n        href=\"pygeodesy.ellipses.Ellipse-class.html#normal4\" \n        class=\"link\">Ellipse.normal4</a>, <a \n        href=\"pygeodesy.ellipses.Ellipse-class.html#sideOf\" \n        class=\"link\">Ellipse.sideOf</a> and \n        <code>Triaxial_.normal3d</code>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"normal4\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">normal4</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">deg_x</span>,\n        <span class=\"sig-arg\">y</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**height_normal</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute a point at <b><code>height</code></b> above or below this \n  ellipse point <code>(<b>x</b>, <b>y</b>)</code> <code>on</code> this \n  ellipse or at <code><b>deg</b> degrees</code> along this ellipse.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>height_normal</code></strong> - The desired distance <code><b>height</b>=0</code> in- or outside \n          this ellipse (<code>meter</code>, conventionally) and \n          <code><b>normal</b>=True</code>,  If \n          <code><b>normal</b>=True</code>, the <b><code>height</code></b> \n          is <i>perpendicular, plumb</i> to this ellipse, otherwise \n          <code>radially</code> to its center (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><a href=\"pygeodesy.namedTuples.Vector4Tuple-class.html\" \n          class=\"link\">Vector4Tuple</a><code>(x, y, z, h)</code> with \n          coordinates <code>x</code>, <code>y</code> and <code>z=0</code> \n          and <code>h</code> the <i>signed, normal distance</i> to the \n          ellipse in <code>meter</code>, conventionally.  Positive \n          <code>h</code> indicates, <code>x</code> and/or <code>y</code> \n          are outside the ellipse, negative <code>h</code> means inside.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.ellipses.EllipseError-class.html\">EllipseError</a></strong></code> - Invalid <b><code>x</code></b> and/or <b><code>y</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Methods <a href=\"pygeodesy.ellipses.Ellipse-class.html#height4\" \n        class=\"link\">Ellipse.height4</a>, <a \n        href=\"pygeodesy.ellipses.Ellipse-class.html#normal3d\" \n        class=\"link\">Ellipse.normal3d</a>, <a \n        href=\"pygeodesy.ellipses.Ellipse-class.html#sideOf\" \n        class=\"link\">Ellipse.sideOf</a> and <code>Triaxial_.normal4</code>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"point\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">point</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">deg_x</span>,\n        <span class=\"sig-arg\">y</span>=<span class=\"sig-default\">None</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the point <i>on</i> this ellipse at <code><b>deg</b></code> or \n  <code>atan2d(<b>y</b>, <b>x</b>) degrees</code> along this ellipse.</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd>A 2-tuple <code>(x, y)</code>.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"points\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">points</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">np</span>,\n        <span class=\"sig-arg\">nq</span>=<span class=\"sig-default\">4</span>,\n        <span class=\"sig-arg\">ccw</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">ended</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">eps</span>=<span class=\"sig-default\">2.220446049250313e-16</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Yield up to <code>np</code> points along this ellipse, each a 2-tuple \n  <code>(x, y)</code>, starting at semi-axis <code>+a</code>, in \n  (counter-)clockwise order and distributed evenly along the minor \n  semi-axis.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>np</code></strong> - Number of points to generate (<code>int</code>).</li>\n        <li><strong class=\"pname\"><code>nq</code></strong> - Number of quarters to cover (<code>int</code>, 1..4).</li>\n        <li><strong class=\"pname\"><code>ccw</code></strong> - Use <code><b>ccw</b>=True</code> for counter-clockwise order \n          (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>ended</code></strong> - If <code>True</code>, include the last quadrant's end point \n          (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>eps</code></strong> - Tolerance for duplicate points (<code>meter</code>, \n          conventionally).</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"https://MathWorld.Wolfram.com/ConicSectionDirectrix.html\" \n        target=\"_top\">Directrix</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"Roc\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">Roc</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">deg_x</span>,\n        <span class=\"sig-arg\">y</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">eps</span>=<span class=\"sig-default\">None</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the <a href=\"https://WikiPedia.org/wiki/Radius_of_curvature\" \n  target=\"_top\">radius of curvature</a> at a point <code><b>deg</b></code> \n  or <code>atan2d(<b>y</b>, <b>x</b>) degrees</code> along this \n  ellipse.</p>\n  <dl class=\"fields\">\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <a href=\"pygeodesy.ellipses.Ellipse-class.html#Roc_\" \n        class=\"link\">Roc_</a> for ruther details.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"Roc_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">Roc_</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">rad_x</span>,\n        <span class=\"sig-arg\">y</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">eps</span>=<span class=\"sig-default\">None</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the <a href=\"https://WikiPedia.org/wiki/Radius_of_curvature\" \n  target=\"_top\">radius of curvature</a> at a point <code><b>rad</b></code> \n  or <code>atan2(<b>y</b>, <b>x</b>) radians</code> along this ellipse.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>eps</code></strong> - See method <code>sideOf</code>, use <code><b>eps</b>=0</code> to \n          permit any points.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Curvature (<code>meter</code>, conventionally).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ValueError</strong></code> - Point <code>(<b>x</b>, <b>y</b>)</code> off this ellipse, unless \n        <code><b>eps</b>=0</code>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"slope\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">slope</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">deg_x</span>,\n        <span class=\"sig-arg\">y</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">eps</span>=<span class=\"sig-default\">None</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the <a \n  href=\"https://WikiPedia.org/wiki/Ellipse#Tangent_slope_as_parameter\" \n  target=\"_top\">tangent slope</a> at a point <code><b>deg</b></code> or \n  <code>atan2d(<b>y</b>, <b>x</b>) degrees</code> along this ellipse.</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd>Slope (<code>degrees</code>), negative for <code>0 &lt;= \n          <b>deg</b> &lt; 90</code>.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <a href=\"pygeodesy.ellipses.Ellipse-class.html#slope_\" \n        class=\"link\">slope_</a> for further details.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"slope_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">slope_</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">rad_x</span>,\n        <span class=\"sig-arg\">y</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">eps</span>=<span class=\"sig-default\">None</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the <a \n  href=\"https://WikiPedia.org/wiki/Ellipse#Tangent_slope_as_parameter\" \n  target=\"_top\">tangent slope</a> at a point <code><b>rad</b></code> or \n  <code>atan2(<b>y</b>, <b>x</b>) radians</code> along this ellipse.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>eps</code></strong> - See method <code>sideOf</code>, use <code><b>eps</b>=0</code> to \n          permit any points.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Slope (<code>radians</code>), negative for <code>0 &lt;= \n          <b>rad</b> &lt; PI/2</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ValueError</strong></code> - <code>(<b>x</b>, <b>y</b>)</code> off this ellipse, unless \n        <code><b>eps</b>=0</code>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toEllipsoid\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toEllipsoid</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">**Ellipsoid_and_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return an <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n  class=\"link\">Ellipsoid</a> from this ellipse' <code>a</code> and \n  <code>b</code> semi-axes.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>Ellipsoid_and_kwds</code></strong> - Optional <code><b>Ellipsoid</b>=Ellipsoid</code> class and \n          additional <code>Ellipsoid</code> keyword arguments.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toStr\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toStr</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">prec</span>=<span class=\"sig-default\">8</span>,\n        <span class=\"sig-arg\">terse</span>=<span class=\"sig-default\">2</span>,\n        <span class=\"sig-arg\">**sep_name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return this ellipse as a text string.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>prec</code></strong> - Number of decimal digits, unstripped (<code>int</code>).</li>\n        <li><strong class=\"pname\"><code>terse</code></strong> - Limit the number of items (<code>int</code>, 0...9), use \n          <code><b>terse</b>=0</code> or <code>=None</code> for all.</li>\n        <li><strong class=\"pname\"><code>sep_name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>) or \n          <code>None</code> to exclude this ellipse' name and separator \n          <code><b>sep</b>=&quot;, &quot;</code> to join the items \n          (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>This <code>Ellipse</code>' attributes (<code>str</code>).</dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.named._Named-class.html#toStr\">named._Named.toStr</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toTriaxial_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toTriaxial_</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">c</span>=<span class=\"sig-default\">2.220446049250313e-16</span>,\n        <span class=\"sig-arg\">**Triaxial_and_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return a <a href=\"pygeodesy.triaxials.triaxial5.Triaxial_-class.html\" \n  class=\"link\">Triaxial_</a> from this ellipse' semi-axes.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>c</code></strong> - Near-zero, minor semi-axis (<code>meter</code>, conventionally).</li>\n        <li><strong class=\"pname\"><code>Triaxial_and_kwds</code></strong> - Optional <code><b>Triaxial</b>=Triaxial_</code> class and \n          additional <code>Triaxial</code> keyword arguments.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"a\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">a</h3>\n  <p>Get semi-axis <code><b>a</b></code> of this ellipse \n  (<code>meter</code>, conventionally).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">a(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get semi-axis <code><b>a</b></code> of this ellipse (<code>meter</code>, \nconventionally).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"apses2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">apses2</h3>\n  <p>Get 2-tuple <code>(apoapsis, periapsis)</code> with the <a \n  href=\"https://MathWorld.Wolfram.com/Apoapsis.html\" target=\"_top\">apo-</a>\n  and <a href=\"https://MathWorld.Wolfram.com/Periapsis.html\" \n  target=\"_top\">periapsis</a> of this ellipse, both <code>meter</code>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">apses2(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get 2-tuple <code>(apoapsis, periapsis)</code> with the <a \nhref=\"https://MathWorld.Wolfram.com/Apoapsis.html\" target=\"_top\">apo-</a> \nand <a href=\"https://MathWorld.Wolfram.com/Periapsis.html\" \ntarget=\"_top\">periapsis</a> of this ellipse, both <code>meter</code>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"area\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">area</h3>\n  <p>Get the area of this ellipse (<code>meter**2</code>, \n  conventionally).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">area(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the area of this ellipse (<code>meter**2</code>, conventionally).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"b\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">b</h3>\n  <p>Get semi-axis <code><b>b</b></code> of this ellipse \n  (<code>meter</code>, conventionally).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">b(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get semi-axis <code><b>b</b></code> of this ellipse (<code>meter</code>, \nconventionally).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"c\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">c</h3>\n  <p>Get the <a \n  href=\"https://WikiPedia.org/wiki/Ellipse#Linear_eccentricity\" \n  target=\"_top\">linear eccentricity</a> <code>c</code>, <i>unsigned</i> \n  (<code>meter</code>, conventionally).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">c(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <a href=\"https://WikiPedia.org/wiki/Ellipse#Linear_eccentricity\" \ntarget=\"_top\">linear eccentricity</a> <code>c</code>, <i>unsigned</i> \n(<code>meter</code>, conventionally).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"e\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">e</h3>\n  <p>Get the eccentricity (<code>scalar, 0 &lt;= <b>e</b> &lt;= \n  1</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">e(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the eccentricity (<code>scalar, 0 &lt;= <b>e</b> &lt;= 1</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"e2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">e2</h3>\n  <p>Get the eccentricity <i>squared</i> (<code>scalar, 0 &lt;= <b>e2</b> \n  &lt;= 1</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">e2(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the eccentricity <i>squared</i> (<code>scalar, 0 &lt;= <b>e2</b> &lt;= \n1</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"foci\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">foci</h3>\n  <p>Get the <a \n  href=\"https://WikiPedia.org/wiki/Ellipse#Linear_eccentricity\" \n  target=\"_top\">linear eccentricity</a>, <i>signed</i> (<code>meter</code>,\n  conventionally), <code>positive</code> if this ellipse is oblate, \n  <code>negative</code> if prolate or <code>0</code> if circular.  See also\n  property <a href=\"pygeodesy.ellipses.Ellipse-class.html#c\" \n  class=\"link\">Ellipse.c</a>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">foci(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <a href=\"https://WikiPedia.org/wiki/Ellipse#Linear_eccentricity\" \ntarget=\"_top\">linear eccentricity</a>, <i>signed</i> (<code>meter</code>, \nconventionally), <code>positive</code> if this ellipse is oblate, \n<code>negative</code> if prolate or <code>0</code> if circular.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"isCircular\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">isCircular</h3>\n  <p>Is this ellipse circular? (<code>bool</code>)</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">isCircular(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Is this ellipse circular? (<code>bool</code>)\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"isFlat\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">isFlat</h3>\n  <p>Is this ellipse &quot;flat&quot;, too pro-/oblate? \n  (<code>bool</code>)</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">isFlat(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Is this ellipse &quot;flat&quot;, too pro-/oblate? (<code>bool</code>)\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"isOblate\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">isOblate</h3>\n  <p>Is this ellipse oblate (foci on semi-axis <code>a</code>)? \n  (<code>bool</code>)</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">isOblate(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Is this ellipse oblate (foci on semi-axis <code>a</code>)? \n(<code>bool</code>)\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"isProlate\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">isProlate</h3>\n  <p>Is this ellipse prolate (foci on semi-axis <code>b</code>)? \n  (<code>bool</code>)</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">isProlate(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Is this ellipse prolate (foci on semi-axis <code>b</code>)? \n(<code>bool</code>)\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"lati\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">lati</h3>\n  <p>Get the <a href=\"https://WikiPedia.org/wiki/Ellipse#Semi-latus_rectum\"\n  target=\"_top\">semi-latus rectum</a>, <i>signed</i> (<code>meter</code>, \n  conventionally), <code>positive</code> if this ellipse is oblate or \n  circular, <code>0</code> if &quot;flat&quot; and oblate, \n  <code>negative</code> if prolate or <code>NEG0</code> if &quot;flat&quot;\n  and prolate.  See also property <a \n  href=\"pygeodesy.ellipses.Ellipse-class.html#p\" \n  class=\"link\">Ellipse.p</a>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">lati(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <a href=\"https://WikiPedia.org/wiki/Ellipse#Semi-latus_rectum\" \ntarget=\"_top\">semi-latus rectum</a>, <i>signed</i> (<code>meter</code>, \nconventionally), <code>positive</code> if this ellipse is oblate or \ncircular, <code>0</code> if &quot;flat&quot; and oblate, \n<code>negative</code> if prolate or <code>NEG0</code> if &quot;flat&quot; \nand prolate.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"p\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">p</h3>\n  <p>Get the <a href=\"https://WikiPedia.org/wiki/Ellipse#Semi-latus_rectum\"\n  target=\"_top\">semi-latus rectum</a> <code>p (aka <b>&#120001;</b>, \n  script-small-l)</code>, <i>unsigned</i> (<code>meter</code>, \n  conventionally).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">p(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <a href=\"https://WikiPedia.org/wiki/Ellipse#Semi-latus_rectum\" \ntarget=\"_top\">semi-latus rectum</a> <code>p (aka <b>&#120001;</b>, \nscript-small-l)</code>, <i>unsigned</i> (<code>meter</code>, \nconventionally).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"perimeterAGM\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">perimeterAGM</h3>\n  <p>Compute the perimeter of this ellipse using the <a \n  href=\"https://PaulBourke.net/geometry/ellipsecirc\" \n  target=\"_top\">Arithmetic-Geometric Mean</a> formula (<code>meter</code>, \n  conventionally).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">perimeterAGM(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Compute the perimeter of this ellipse using the <a \nhref=\"https://PaulBourke.net/geometry/ellipsecirc\" \ntarget=\"_top\">Arithmetic-Geometric Mean</a> formula (<code>meter</code>, \nconventionally).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"perimeter4Arc3\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">perimeter4Arc3</h3>\n  <p>Compute the perimeter (and arcs) of this ellipse using the <a \n  href=\"https://PaulBourke.net/geometry/ellipsecirc\" \n  target=\"_top\">4-Arc</a> (aka 4-Center) approximation as a 3-Tuple \n  <code>(P, Ra, Rb)</code> with perimeter <code>P</code>, arc radii \n  <code>Ra</code> and <code>Rb</code> at the respective semi-axes (all in \n  <code>meter</code>, conventionally).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">perimeter4Arc3(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Compute the perimeter (and arcs) of this ellipse using the <a \nhref=\"https://PaulBourke.net/geometry/ellipsecirc\" target=\"_top\">4-Arc</a> \n(aka 4-Center) approximation as a 3-Tuple <code>(P, Ra, Rb)</code> with \nperimeter <code>P</code>, arc radii <code>Ra</code> and <code>Rb</code> at \nthe respective semi-axes (all in <code>meter</code>, conventionally).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"perimeterCR\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">perimeterCR</h3>\n  <p>Compute the perimeter of this ellipse using <a \n  href=\"https://www.ChrisRackauckas.com/assets/Papers/ChrisRackauckas-The_Circumference_of_an_Ellipse.pdf\"\n  target=\"_top\">Rackauckas'</a> approximation, also <a \n  href=\"https://ExtremeLearning.com.AU/a-formula-for-the-perimeter-of-an-ellipse\"\n  target=\"_top\">here</a> and <a \n  href=\"http://www.EByte.IT/library/docs/math05a/EllipsePerimeterApprox05.html\"\n  target=\"_top\">here</a> (<code>meter</code>, conventionally).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">perimeterCR(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Compute the perimeter of this ellipse using <a \nhref=\"https://www.ChrisRackauckas.com/assets/Papers/ChrisRackauckas-The_Circumference_of_an_Ellipse.pdf\"\ntarget=\"_top\">Rackauckas'</a> approximation, also <a \nhref=\"https://ExtremeLearning.com.AU/a-formula-for-the-perimeter-of-an-ellipse\"\ntarget=\"_top\">here</a> and <a \nhref=\"http://www.EByte.IT/library/docs/math05a/EllipsePerimeterApprox05.html\"\ntarget=\"_top\">here</a> (<code>meter</code>, conventionally).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"perimeterGK\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">perimeterGK</h3>\n  <p>Compute the perimeter of this ellipse using the <a \n  href=\"https://www.JohnDCook.com/blog/2023/05/28/approximate-ellipse-perimeter\"\n  target=\"_top\">Gauss-Kummer</a> series, <code><b>b / a</b> &gt; \n  0.75</code> (<code>meter</code>, conventionally).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">perimeterGK(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Compute the perimeter of this ellipse using the <a \nhref=\"https://www.JohnDCook.com/blog/2023/05/28/approximate-ellipse-perimeter\"\ntarget=\"_top\">Gauss-Kummer</a> series, <code><b>b / a</b> &gt; 0.75</code> \n(<code>meter</code>, conventionally).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"perimeterHGK\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">perimeterHGK</h3>\n  <p>Compute the perimeter of this ellipse using the <a \n  href=\"https://web.Tecnico.ULisboa.PT/~mcasquilho/compute/com/,ellips/PerimeterOfEllipse.pdf\"\n  target=\"_top\">Hypergeometric Gauss-Kummer</a> series (<code>meter</code>,\n  conventionally).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">perimeterHGK(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Compute the perimeter of this ellipse using the <a \nhref=\"https://web.Tecnico.ULisboa.PT/~mcasquilho/compute/com/,ellips/PerimeterOfEllipse.pdf\"\ntarget=\"_top\">Hypergeometric Gauss-Kummer</a> series (<code>meter</code>, \nconventionally).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"perimeter2k\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">perimeter2k</h3>\n  <p>Compute the perimeter of this ellipse using the complete integral of \n  the 2nd kind, <code>Elliptic.cE</code> (<code>meter</code>, \n  conventionally).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">perimeter2k(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Compute the perimeter of this ellipse using the complete integral of the \n2nd kind, <code>Elliptic.cE</code> (<code>meter</code>, conventionally).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"perimeter2k_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">perimeter2k_</h3>\n  <p>Compute the perimeter of this ellipse using <a \n  href=\"https://www.JohnDCook.com/perimeter_ellipse.html\" \n  target=\"_top\">SciPy's ellipe</a> function if available, otherwise use \n  property <code>perimeter2k</code> (<code>meter</code>, \n  conventionally).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">perimeter2k_(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Compute the perimeter of this ellipse using <a \nhref=\"https://www.JohnDCook.com/perimeter_ellipse.html\" \ntarget=\"_top\">SciPy's ellipe</a> function if available, otherwise use \nproperty <code>perimeter2k</code> (<code>meter</code>, conventionally).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"perimeter2R\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">perimeter2R</h3>\n  <p>Compute the perimeter of this ellipse using <a \n  href=\"https://PaulBourke.net/geometry/ellipsecirc\" \n  target=\"_top\">Ramanujan's 2nd</a> approximation, <code><b>b / a</b> &gt; \n  0.9</code> (<code>meter</code>, conventionally).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">perimeter2R(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Compute the perimeter of this ellipse using <a \nhref=\"https://PaulBourke.net/geometry/ellipsecirc\" \ntarget=\"_top\">Ramanujan's 2nd</a> approximation, <code><b>b / a</b> &gt; \n0.9</code> (<code>meter</code>, conventionally).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"perimeter2RC\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">perimeter2RC</h3>\n  <p>Compute the perimeter of this ellipse using <a \n  href=\"http://www.EByte.IT/library/docs/math05a/EllipsePerimeterApprox05.html\"\n  target=\"_top\">Cantrell Ramanujan's 2nd</a> approximation, <code><b>b / \n  a</b> &gt; 0.9</code> (<code>meter</code>, conventionally).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">perimeter2RC(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Compute the perimeter of this ellipse using <a \nhref=\"http://www.EByte.IT/library/docs/math05a/EllipsePerimeterApprox05.html\"\ntarget=\"_top\">Cantrell Ramanujan's 2nd</a> approximation, <code><b>b / \na</b> &gt; 0.9</code> (<code>meter</code>, conventionally).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"R1\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">R1</h3>\n  <p>Get this ellipse' <i>arithmetic mean</i> radius, <code>(2 * a + b) / \n  3</code> (<code>meter</code>, conventionally).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">R1(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get this ellipse' <i>arithmetic mean</i> radius, <code>(2 * a + b) / \n3</code> (<code>meter</code>, conventionally).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"R2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">R2</h3>\n  <p>Get this ellipse' <i>authalic</i> radius, <code>sqrt(<b>a</b> * \n  <b>b</b>)</code> (<code>meter</code>, conventionally).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">R2(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get this ellipse' <i>authalic</i> radius, <code>sqrt(<b>a</b> * \n<b>b</b>)</code> (<code>meter</code>, conventionally).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"Rgeometric\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">Rgeometric</h3>\n  <p>Get this ellipse' <i>authalic</i> radius, <code>sqrt(<b>a</b> * \n  <b>b</b>)</code> (<code>meter</code>, conventionally).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">R2(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get this ellipse' <i>authalic</i> radius, <code>sqrt(<b>a</b> * \n<b>b</b>)</code> (<code>meter</code>, conventionally).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"Rauthalic\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">Rauthalic</h3>\n  <p>Get this ellipse' <i>authalic</i> radius, <code>sqrt(<b>a</b> * \n  <b>b</b>)</code> (<code>meter</code>, conventionally).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">R2(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get this ellipse' <i>authalic</i> radius, <code>sqrt(<b>a</b> * \n<b>b</b>)</code> (<code>meter</code>, conventionally).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"Rrectifying\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">Rrectifying</h3>\n  <p>Get this ellipse' <i>rectifying</i> radius, <code>perimeter2k_ / \n  PI2</code> (<code>meter</code>, conventionally).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">Rrectifying(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get this ellipse' <i>rectifying</i> radius, <code>perimeter2k_ / PI2</code>\n(<code>meter</code>, conventionally).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.ellipses.EllipseError-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.ellipses.EllipseError</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.ellipses-module.html\">Module&nbsp;ellipses</a> ::\n        Class&nbsp;EllipseError\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.ellipses.EllipseError-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class EllipseError</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n              object --+                    \n                       |                    \nexceptions.BaseException --+                \n                           |                \n        exceptions.Exception --+            \n                               |            \n        exceptions.StandardError --+        \n                                   |        \n               exceptions.ValueError --+    \n                                       |    \n                      errors._ValueError --+\n                                           |\n                                          <strong class=\"uidshort\">EllipseError</strong>\n</pre>\n\n<hr />\n<p>Raised for any <a href=\"pygeodesy.ellipses.Ellipse-class.html\" \n  class=\"link\">Ellipse</a> or <code>ellipses</code> issue.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>errors._ValueError</code></b>:\n      <code>__init__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.ValueError</code></b>:\n      <code>__new__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.BaseException</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getslice__</code>,\n      <code>__reduce__</code>,\n      <code>__repr__</code>,\n      <code>__setattr__</code>,\n      <code>__setstate__</code>,\n      <code>__str__</code>,\n      <code>__unicode__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__format__</code>,\n      <code>__hash__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.BaseException</code></b>:\n      <code>args</code>,\n      <code>message</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.ellipsoidalBase-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.ellipsoidalBase</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        Module&nbsp;ellipsoidalBase\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.ellipsoidalBase-module.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== MODULE DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Module ellipsoidalBase</h1><p class=\"nomargin-top\"></p>\n<p>(INTERNAL) Private ellipsoidal base classes \n  <code>CartesianEllipsoidalBase</code> and \n  <code>LatLonEllipsoidalBase</code>.</p>\n  <p>A pure Python implementation of geodesy tools for ellipsoidal earth \n  models, transcoded in part from JavaScript originals by <i>(C) Chris \n  Veness 2005-2024</i> and published under the same MIT Licence**, see for \n  example <a \n  href=\"https://www.Movable-Type.co.UK/scripts/geodesy/docs/latlon-ellipsoidal.js.html\"\n  target=\"_top\">latlon-ellipsoidal</a>.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Version:</strong>\n        25.07.21\n      </p>\n</div><!-- ==================== CLASSES ==================== -->\n<a name=\"section-Classes\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Classes</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html\" class=\"summary-name\">CartesianEllipsoidalBase</a><br />\n      (INTERNAL) Base class for ellipsoidal <code>Cartesian</code>s.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html\" class=\"summary-name\">LatLonEllipsoidalBase</a><br />\n      (INTERNAL) Base class for ellipsoidal <code>LatLon</code>s.\n    </td>\n  </tr>\n</table>\n<!-- ==================== VARIABLES ==================== -->\n<a name=\"section-Variables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Variables</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"__all__\"></a><span class=\"summary-name\">__all__</span> = <code title=\"_ALL_LAZY.ellipsoidalBase\">_ALL_LAZY.ellipsoidalBase</code>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.ellipsoidalBase-module.html\">Module&nbsp;ellipsoidalBase</a> ::\n        Class&nbsp;CartesianEllipsoidalBase\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class CartesianEllipsoidalBase</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n       object --+                    \n                |                    \n     <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+                \n                    |                \n     <a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+            \n                        |            \n<a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">vector3dBase.Vector3dBase</a> --+        \n                            |        \n            <a href=\"pygeodesy.vector3d.Vector3d-class.html\">vector3d.Vector3d</a> --+    \n                                |    \n               object --+       |    \n                        |       |    \n             <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+   |    \n                            |   |    \n        <a href=\"pygeodesy.ecefLocals._EcefLocal-class.html\">ecefLocals._EcefLocal</a> --+    \n                                |    \n      <a href=\"pygeodesy.cartesianBase.CartesianBase-class.html\">cartesianBase.CartesianBase</a> --+\n                                    |\n                                   <strong class=\"uidshort\">CartesianEllipsoidalBase</strong>\n</pre>\n\n<dl><dt>Known Subclasses:</dt>\n<dd>\n      <ul class=\"subclass-list\">\n<li><a href=\"pygeodesy.ellipsoidalExact.Cartesian-class.html\">ellipsoidalExact.Cartesian</a></li><li>, <a href=\"pygeodesy.ellipsoidalGeodSolve.Cartesian-class.html\">ellipsoidalGeodSolve.Cartesian</a></li><li>, <a href=\"pygeodesy.ellipsoidalKarney.Cartesian-class.html\">ellipsoidalKarney.Cartesian</a></li><li>, <a href=\"pygeodesy.ellipsoidalNvector.Cartesian-class.html\">ellipsoidalNvector.Cartesian</a></li><li>, <a href=\"pygeodesy.ellipsoidalVincenty.Cartesian-class.html\">ellipsoidalVincenty.Cartesian</a></li>  </ul>\n</dd></dl>\n\n<hr />\n<p>(INTERNAL) Base class for ellipsoidal <code>Cartesian</code>s.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">x_xyz</span>,\n        <span class=\"summary-sig-arg\">y</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">z</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">reframe</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">epoch</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**datum_ll_name</span>)</span><br />\n      New ellispoidal <code>Cartesian...</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#convertRefFrame\" class=\"summary-sig-name\">convertRefFrame</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">reframe2</span>,\n        <span class=\"summary-sig-arg\">reframe</span>,\n        <span class=\"summary-sig-arg\">epoch</span>=<span class=\"summary-sig-default\">None</span>)</span><br />\n      DEPRECATED, use method <a \n      href=\"pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#toRefFrame\"\n      class=\"link\">toRefFrame</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#intersections2\" class=\"summary-sig-name\">intersections2</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">radius</span>,\n        <span class=\"summary-sig-arg\">center2</span>,\n        <span class=\"summary-sig-arg\">radius2</span>,\n        <span class=\"summary-sig-arg\">sphere</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">Vector</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**Vector_kwds</span>)</span><br />\n      Compute the intersection of two spheres or circles, each defined by a\n      cartesian center point and a radius.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#toLatLon\" class=\"summary-sig-name\">toLatLon</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">datum</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">height</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**LatLon_and_kwds</span>)</span><br />\n      Convert this cartesian to a <i>geodetic</i> (lat-/longitude) point.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#toRefFrame\" class=\"summary-sig-name\">toRefFrame</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">reframe2</span>,\n        <span class=\"summary-sig-arg\">reframe</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">epoch</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">epoch2</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Convert this point to an other reference frame and epoch.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#toTransforms_\" class=\"summary-sig-name\">toTransforms_</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">*transforms</span>,\n        <span class=\"summary-sig-arg\">**datum</span>)</span><br />\n      DEPRECATED on 2024.02.14, use method <code>toTransform</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html\">cartesianBase.CartesianBase</a></code></b>:\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#Roc2\">Roc2</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#cassini\">cassini</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#collins\">collins</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#collins5\">collins5</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#convertDatum\">convertDatum</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#destinationXyz\">destinationXyz</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#hartzell\">hartzell</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#height3\">height3</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#height4\">height4</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#pierlot\">pierlot</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#pierlotx\">pierlotx</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#tienstra\">tienstra</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#tienstra7\">tienstra7</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#to2ab\">to2ab</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#to2ll\">to2ll</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#to3llh\">to3llh</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#toDatum\">toDatum</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#toEcef\">toEcef</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#toNvector\">toNvector</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#toRtp\">toRtp</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#toTransform\">toTransform</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#toVector\">toVector</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.vector3d.Vector3d-class.html\">vector3d.Vector3d</a></code></b>:\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#bearing\">bearing</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#circin6\">circin6</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#circum3\">circum3</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#circum4_\">circum4_</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#iscolinearWith\">iscolinearWith</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#meeus2\">meeus2</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#nearestOn\">nearestOn</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#nearestOn6\">nearestOn6</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#parse\">parse</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#radii11\">radii11</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#soddy4\">soddy4</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#toCartesian\">toCartesian</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#trilaterate2d2\">trilaterate2d2</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#trilaterate3d2\">trilaterate3d2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">vector3dBase.Vector3dBase</a></code></b>:\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__abs__\">__abs__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__add__\">__add__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__bool__\">__bool__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__ceil__\">__ceil__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__cmp__\">__cmp__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__div__\">__div__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__divmod__\">__divmod__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__eq__\">__eq__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__float__\">__float__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__floor__\">__floor__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__floordiv__\">__floordiv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__ge__\">__ge__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__gt__\">__gt__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__iadd__\">__iadd__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__idiv__\">__idiv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__ifloordiv__\">__ifloordiv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__imod__\">__imod__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__imul__\">__imul__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__int__\">__int__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__ipow__\">__ipow__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__isub__\">__isub__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__itruediv__\">__itruediv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__le__\">__le__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__long__\">__long__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__lt__\">__lt__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__mod__\">__mod__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__mul__\">__mul__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__ne__\">__ne__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__neg__\">__neg__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__nonzero__\">__nonzero__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__pos__\">__pos__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__pow__\">__pow__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__radd__\">__radd__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rdiv__\">__rdiv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rdivmod__\">__rdivmod__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rfloordiv__\">__rfloordiv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rmod__\">__rmod__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rmul__\">__rmul__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__round__\">__round__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rpow__\">__rpow__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rsub__\">__rsub__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rtruediv__\">__rtruediv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__sub__\">__sub__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__truediv__\">__truediv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__trunc__\">__trunc__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#angleTo\">angleTo</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#apply\">apply</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#bools\">bools</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#cmp\">cmp</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#cross\">cross</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#dividedBy\">dividedBy</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#dividedBy_\">dividedBy_</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#dot\">dot</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#equals\">equals</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#equirectangular\">equirectangular</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#fabs\">fabs</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#floats\">floats</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#floorDividedBy\">floorDividedBy</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#floorDividedBy_\">floorDividedBy_</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#intermediateTo\">intermediateTo</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#ints\">ints</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#isconjugateTo\">isconjugateTo</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#isequalTo\">isequalTo</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#minus\">minus</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#minus_\">minus_</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#negate\">negate</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#others\">others</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#plus\">plus</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#plus_\">plus_</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#pow\">pow</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#rotate\">rotate</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#rotateAround\">rotateAround</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#sum\">sum</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#times\">times</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#times_\">times_</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#to3xyz\">to3xyz</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#unit\">unit</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#toRepr\">toRepr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html\">ecefLocals._EcefLocal</a></code></b>:\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toAer\">toAer</a></code>,\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toEnu\">toEnu</a></code>,\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toLocal\">toLocal</a></code>,\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toLtp\">toLtp</a></code>,\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toNed\">toNed</a></code>,\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toXyz\">toXyz</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#ellipsoidalCartesian\" class=\"summary-name\">ellipsoidalCartesian</a><br />\n      Get this <code>Cartesian</code>'s ellipsoidal class.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#epoch\" class=\"summary-name\">epoch</a><br />\n      Class <code>property</code> with a <code>.name</code> attribute.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#reframe\" class=\"summary-name\">reframe</a><br />\n      Class <code>property</code> with a <code>.name</code> attribute.\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html\">cartesianBase.CartesianBase</a></code></b>:\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#datum\">datum</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#height\">height</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#isEllipsoidal\">isEllipsoidal</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#isSpherical\">isSpherical</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#latlon\">latlon</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#latlonheight\">latlonheight</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#latlonheightdatum\">latlonheightdatum</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#philam\">philam</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#philamheight\">philamheight</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#philamheightdatum\">philamheightdatum</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#sphericalCartesian\">sphericalCartesian</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">vector3dBase.Vector3dBase</a></code></b>:\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#crosserrors\">crosserrors</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#euclid\">euclid</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#homogeneous\">homogeneous</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#length\">length</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#length2\">length2</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#x\">x</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#x2y2z2\">x2y2z2</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#x2y2z23\">x2y2z23</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#xyz\">xyz</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#xyz3\">xyz3</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#y\">y</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#z\">z</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html\">ecefLocals._EcefLocal</a></code></b>:\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#Ecef\">Ecef</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">x_xyz</span>,\n        <span class=\"sig-arg\">y</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">z</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">reframe</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">epoch</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**datum_ll_name</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New ellispoidal <code>Cartesian...</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>reframe</code></strong> - Optional reference frame (<a \n          href=\"pygeodesy.trf.RefFrame-class.html\" \n          class=\"link\">RefFrame</a>).</li>\n        <li><strong class=\"pname\"><code>epoch</code></strong> - Optional epoch to observe for <b><code>reframe</code></b> \n          (<code>scalar</code>), a non-zero, fractional calendar year; \n          silently ignored if <code><b>reframe</b>=None</code>.</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Non-scalar <b><code>x_xyz</code></b>, <b><code>y</code></b> or \n        <b><code>z</code></b> coordinate or <b><code>x_xyz</code></b> not a\n        <code>Cartesian</code> <a \n        href=\"pygeodesy.ecef.Ecef9Tuple-class.html\" \n        class=\"link\">Ecef9Tuple</a>, <a \n        href=\"pygeodesy.namedTuples.Vector3Tuple-class.html\" \n        class=\"link\">Vector3Tuple</a> or <a \n        href=\"pygeodesy.namedTuples.Vector4Tuple-class.html\" \n        class=\"link\">Vector4Tuple</a> or <b><code>datum</code></b> is not a\n        <a href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>,\n        <b><code>reframe</code></b> is not a <a \n        href=\"pygeodesy.trf.RefFrame-class.html\" class=\"link\">RefFrame</a> \n        or <b><code>epoch</code></b> is not <code>scalar</code> non-zero.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Class <a \n        href=\"pygeodesy.cartesianBase.CartesianBase-class.html#__init__\" \n        class=\"link\">CartesianBase</a> for more details.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"convertRefFrame\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">convertRefFrame</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">reframe2</span>,\n        <span class=\"sig-arg\">reframe</span>,\n        <span class=\"sig-arg\">epoch</span>=<span class=\"sig-default\">None</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use method <a \n  href=\"pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#toRefFrame\"\n  class=\"link\">toRefFrame</a>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_method</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"intersections2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">intersections2</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">radius</span>,\n        <span class=\"sig-arg\">center2</span>,\n        <span class=\"sig-arg\">radius2</span>,\n        <span class=\"sig-arg\">sphere</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">Vector</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**Vector_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the intersection of two spheres or circles, each defined by a \n  cartesian center point and a radius.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>radius</code></strong> - Radius of this sphere or circle (same units as this point's \n          coordinates).</li>\n        <li><strong class=\"pname\"><code>center2</code></strong> - Center of the second sphere or circle (<code>Cartesian</code>, <a\n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <code>Vector3Tuple</code> or \n          <code>Vector4Tuple</code>).</li>\n        <li><strong class=\"pname\"><code>radius2</code></strong> - Radius of the second sphere or circle (same units as this and the\n          <b><code>other</code></b> point's coordinates).</li>\n        <li><strong class=\"pname\"><code>sphere</code></strong> - If <code>True</code>, compute the center and radius of the \n          intersection of two <i>spheres</i>.  If <code>False</code>, \n          ignore the <code>z</code>-component and compute the intersection \n          of two <i>circles</i> (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>Vector</code></strong> - Class to return intersections (<code>Cartesian</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a> or <code>Vector3Tuple</code>) or \n          <code>None</code> for an instance of this (sub-)class.</li>\n        <li><strong class=\"pname\"><code>Vector_kwds</code></strong> - Optional, additional <b><code>Vector</code></b> keyword \n          arguments, ignored if <code><b>Vector</b> is None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>If <code><b>sphere</b> is True</code>, a 2-tuple of the \n          <code>center</code> and <code>radius</code> of the intersection \n          of the <i>spheres</i>.  The <code>radius</code> is \n          <code>0.0</code> for abutting spheres (and the \n          <code>center</code> is aka the <i>radical center</i>).\n          <p>If <code><b>sphere</b> is False</code>, a 2-tuple with the two\n          intersection points of the <i>circles</i>.  For abutting circles,\n          both points are the same instance (aka the <i>radical \n          center</i>).</p></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.IntersectionError-class.html\">IntersectionError</a></strong></code> - Concentric, invalid or non-intersecting spheres or circles.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>center2</code></b>.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.UnitError-class.html\">UnitError</a></strong></code> - Invalid <b><code>radius</code></b> or <b><code>radius2</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a \n        href=\"https://MathWorld.Wolfram.com/Sphere-SphereIntersection.html\"\n        target=\"_top\">Sphere-Sphere</a>, <a \n        href=\"https://MathWorld.Wolfram.com/Circle-CircleIntersection.html\"\n        target=\"_top\">Circle-Circle</a> Intersection and function <a \n        href=\"pygeodesy.formy-module.html#radical2\" \n        class=\"link\">pygeodesy.radical2</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"toLatLon\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toLatLon</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">datum</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">height</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**LatLon_and_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert this cartesian to a <i>geodetic</i> (lat-/longitude) \n  point.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>datum</code></strong> - Optional datum (<a href=\"pygeodesy.datums.Datum-class.html\" \n          class=\"link\">Datum</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a> or <a \n          href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>height</code></strong> - Optional height, overriding the converted height \n          (<code>meter</code>), only if <code><b>LatLon</b> is not \n          None</code>.</li>\n        <li><strong class=\"pname\"><code>LatLon</code></strong> - Optional class to return the geodetic point (<code>LatLon</code>)\n          or <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>LatLon_kwds</code></strong> - Optional, additional <b><code>LatLon</code></b> keyword \n          arguments, ignored if <code><b>LatLon</b> is None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The geodetic point (<b><code>LatLon</code></b>) or if \n          <code><b>LatLon</b>is None</code>, an <a \n          href=\"pygeodesy.ecef.Ecef9Tuple-class.html\" \n          class=\"link\">Ecef9Tuple</a><code>(x, y, z, lat, lon, height, C, \n          M, datum)</code> with <code>C</code> and <code>M</code> if \n          available.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>datum</code></b> or \n        <b><code>LatLon_kwds</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#toLatLon\">cartesianBase.CartesianBase.toLatLon</a>\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <a \n        href=\"pygeodesy.cartesianBase.CartesianBase-class.html#toLatLon\" \n        class=\"link\">toLatLon</a> for further details.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"toRefFrame\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toRefFrame</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">reframe2</span>,\n        <span class=\"sig-arg\">reframe</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">epoch</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">epoch2</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert this point to an other reference frame and epoch.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>reframe2</code></strong> - Reference frame to convert <i>to</i> (<a \n          href=\"pygeodesy.trf.RefFrame-class.html\" \n          class=\"link\">RefFrame</a>).</li>\n        <li><strong class=\"pname\"><code>reframe</code></strong> - Optional reference frame to convert <i>from</i> (<a \n          href=\"pygeodesy.trf.RefFrame-class.html\" \n          class=\"link\">RefFrame</a>), overriding this point's reference \n          frame.</li>\n        <li><strong class=\"pname\"><code>epoch</code></strong> - Optional epoch (<a href=\"pygeodesy.units.Epoch-class.html\" \n          class=\"link\">Epoch</a>, <code>scalar</code> or <code>str</code>),\n          overriding this point's <code>epoch or \n          <b>reframe</b>.epoch</code>.</li>\n        <li><strong class=\"pname\"><code>epoch2</code></strong> - Optional epoch to observe for the converted point (<a \n          href=\"pygeodesy.units.Epoch-class.html\" class=\"link\">Epoch</a>, \n          <code>scalar</code> or <code>str</code>), otherwise \n          <b><code>epoch</code></b>.</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>), \n          overriding <code><b>reframe2</b>.name</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The converted point (ellipsoidal <code>Cartesian</code>) or if \n          conversion <code>isunity</code>, this point or a copy of this \n          point if the <b><code>name</code></b> is non-empty.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.TRFError-class.html\">TRFError</a></strong></code> - This point's <code>reframe</code> is not defined, invalid \n        <b><code>epoch</code></b> or <b><code>epoch2</code></b> or \n        conversion from this point's <code>reframe</code> to \n        <b><code>reframe2</code></b> is not available.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - <b><code>reframe2</code></b> or <b><code>reframe</code></b> not a \n        <a href=\"pygeodesy.trf.RefFrame-class.html\" \n        class=\"link\">RefFrame</a>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toTransforms_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toTransforms_</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">*transforms</span>,\n        <span class=\"sig-arg\">**datum</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED on 2024.02.14, use method <code>toTransform</code>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_method</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"ellipsoidalCartesian\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">ellipsoidalCartesian</h3>\n  <p>Get this <code>Cartesian</code>'s ellipsoidal class.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">ellipsoidalCartesian(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get this <code>Cartesian</code>'s ellipsoidal class.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"epoch\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">epoch</h3>\n  <p>Class <code>property</code> with a <code>.name</code> attribute.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">epoch(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get this cartesian's observed or <code>reframe</code> epoch \n(<code>Epoch</code>) or <code>None</code>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">epoch(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">epoch</span>)</span>\n        - Set or clear this cartesian's observed epoch, a fractional calendar year \n(<a href=\"pygeodesy.units.Epoch-class.html\" class=\"link\">Epoch</a>, \n<code>scalar</code> or <code>str</code>) or <code>None</code>.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"reframe\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">reframe</h3>\n  <p>Class <code>property</code> with a <code>.name</code> attribute.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">reframe(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get this cartesian's reference frame (<a \nhref=\"pygeodesy.trf.RefFrame-class.html\" class=\"link\">RefFrame</a>) or \n<code>None</code>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">reframe(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">reframe</span>)</span>\n        - Set or clear this cartesian's reference frame (<a \nhref=\"pygeodesy.trf.RefFrame-class.html\" class=\"link\">RefFrame</a>) or \n<code>None</code>.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.ellipsoidalBase-module.html\">Module&nbsp;ellipsoidalBase</a> ::\n        Class&nbsp;LatLonEllipsoidalBase\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class LatLonEllipsoidalBase</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n       object --+            \n                |            \n     <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+        \n                    |        \n     <a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+    \n                        |    \n       object --+       |    \n                |       |    \n     <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+   |    \n                    |   |    \n<a href=\"pygeodesy.ecefLocals._EcefLocal-class.html\">ecefLocals._EcefLocal</a> --+    \n                        |    \n    <a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">latlonBase.LatLonBase</a> --+\n                            |\n                           <strong class=\"uidshort\">LatLonEllipsoidalBase</strong>\n</pre>\n\n<dl><dt>Known Subclasses:</dt>\n<dd>\n      <ul class=\"subclass-list\">\n<li><a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html\">ellipsoidalBaseDI.LatLonEllipsoidalBaseDI</a></li><li>, <a href=\"pygeodesy.ellipsoidalNvector.LatLon-class.html\">ellipsoidalNvector.LatLon</a></li>  </ul>\n</dd></dl>\n\n<hr />\n<p>(INTERNAL) Base class for ellipsoidal <code>LatLon</code>s.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">latlonh</span>,\n        <span class=\"summary-sig-arg\">lon</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">height</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">datum</span>=<span class=\"summary-sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"summary-sig-arg\">reframe</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">epoch</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Create an ellipsoidal <code>LatLon</code> point from the given lat-, \n      longitude and height on the given datum, reference frame and epoch.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#antipode\" class=\"summary-sig-name\">antipode</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">height</span>=<span class=\"summary-sig-default\">None</span>)</span><br />\n      Return the antipode, the point diametrically opposite to this point.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#convertDatum\" class=\"summary-sig-name\">convertDatum</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">datum2</span>)</span><br />\n      DEPRECATED, use method <a \n      href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toDatum\"\n      class=\"link\">toDatum</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#convertRefFrame\" class=\"summary-sig-name\">convertRefFrame</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">reframe2</span>)</span><br />\n      DEPRECATED, use method <a \n      href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toRefFrame\"\n      class=\"link\">toRefFrame</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#distanceTo2\" class=\"summary-sig-name\">distanceTo2</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      <i>Approximate</i> the distance and (initial) bearing between this \n      and an other (ellipsoidal) point based on the radii of curvature.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#elevation2\" class=\"summary-sig-name\">elevation2</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">adjust</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">datum</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">timeout</span>=<span class=\"summary-sig-default\">2</span>)</span><br />\n      Return elevation of this point for its or the given datum, ellipsoid \n      or sphere.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#ellipsoid\" class=\"summary-sig-name\">ellipsoid</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">datum</span>=<span class=\"summary-sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>)</span><br />\n      Return the ellipsoid of this point's datum or the given datum.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#ellipsoids\" class=\"summary-sig-name\">ellipsoids</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span><br />\n      Check the type and ellipsoid of this and an other point's datum.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#geoidHeight2\" class=\"summary-sig-name\">geoidHeight2</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">adjust</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">datum</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">timeout</span>=<span class=\"summary-sig-default\">2</span>)</span><br />\n      Return geoid height of this point for its or the given datum, \n      ellipsoid or sphere.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"intermediateTo\"></a><span class=\"summary-sig-name\">intermediateTo</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>,\n        <span class=\"summary-sig-arg\">fraction</span>,\n        <span class=\"summary-sig-arg\">height</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      <i>Must be overloaded</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#intersection3\" class=\"summary-sig-name\">intersection3</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">end1</span>,\n        <span class=\"summary-sig-arg\">start2</span>,\n        <span class=\"summary-sig-arg\">end2</span>,\n        <span class=\"summary-sig-arg\">height</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">equidistant</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">tol</span>=<span class=\"summary-sig-default\">0.001</span>)</span><br />\n      <i>Iteratively</i> compute the intersection point of two geodesic \n      lines, each given as two points or as a start point and a bearing \n      from North.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#intersections2\" class=\"summary-sig-name\">intersections2</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">radius1</span>,\n        <span class=\"summary-sig-arg\">center2</span>,\n        <span class=\"summary-sig-arg\">radius2</span>,\n        <span class=\"summary-sig-arg\">height</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">equidistant</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">tol</span>=<span class=\"summary-sig-default\">0.001</span>)</span><br />\n      <i>Iteratively</i> compute the intersection points of two circles, \n      each defined by a center point and a radius.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#isenclosedBy\" class=\"summary-sig-name\">isenclosedBy</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Check whether a polygon or composite encloses this point.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#midpointTo\" class=\"summary-sig-name\">midpointTo</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>,\n        <span class=\"summary-sig-arg\">height</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">fraction</span>=<span class=\"summary-sig-default\">0.5</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Find the midpoint on a geodesic between this and an other point.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#nearestOn\" class=\"summary-sig-name\">nearestOn</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">point1</span>,\n        <span class=\"summary-sig-arg\">point2</span>,\n        <span class=\"summary-sig-arg\">within</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">height</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">equidistant</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">tol</span>=<span class=\"summary-sig-default\">0.001</span>)</span><br />\n      <i>Iteratively</i> locate the closest point on the geodesic (line) \n      between two other (ellipsoidal) points.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#parse\" class=\"summary-sig-name\">parse</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">strllh</span>,\n        <span class=\"summary-sig-arg\">height</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">datum</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">epoch</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">reframe</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">sep</span>=<span class=\"summary-sig-default\">','</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Parse a string consisting of <code>&quot;lat, lon[, \n      height]&quot;</code>, representing a similar, ellipsoidal \n      <code>LatLon</code> point.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#to3xyz\" class=\"summary-sig-name\">to3xyz</a>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      DEPRECATED, use method <code>toEcef</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toCartesian\" class=\"summary-sig-name\">toCartesian</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">height</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**Cartesian_and_kwds</span>)</span><br />\n      Convert this point to cartesian, <i>geocentric</i> coordinates, also \n      known as <i>Earth-Centered, Earth-Fixed</i> (ECEF).</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toCss\" class=\"summary-sig-name\">toCss</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">**toCss_kwds</span>)</span><br />\n      Convert this <code>LatLon</code> point to a Cassini-Soldner location.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toDatum\" class=\"summary-sig-name\">toDatum</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">datum2</span>,\n        <span class=\"summary-sig-arg\">height</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Convert this point to an other datum.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toEtm\" class=\"summary-sig-name\">toEtm</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">**toEtm8_kwds</span>)</span><br />\n      Convert this <code>LatLon</code> point to an ETM coordinate.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toLcc\" class=\"summary-sig-name\">toLcc</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">**toLcc_kwds</span>)</span><br />\n      Convert this <code>LatLon</code> point to a Lambert location.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toMgrs\" class=\"summary-sig-name\">toMgrs</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">center</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">**toUtmUps_kwds</span>)</span><br />\n      Convert this <code>LatLon</code> point to an MGRS coordinate.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toOsgr\" class=\"summary-sig-name\">toOsgr</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">kTM</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">**toOsgr_kwds</span>)</span><br />\n      Convert this <code>LatLon</code> point to an OSGR coordinate.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toRefFrame\" class=\"summary-sig-name\">toRefFrame</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">reframe2</span>,\n        <span class=\"summary-sig-arg\">reframe</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">epoch</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">epoch2</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">height</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Convert this point to an other reference frame and epoch.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toTransform\" class=\"summary-sig-name\">toTransform</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">transform</span>,\n        <span class=\"summary-sig-arg\">inverse</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">datum</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**LatLon_kwds</span>)</span><br />\n      Apply a Helmert transform to this geodetic point.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toUps\" class=\"summary-sig-name\">toUps</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">center</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">**toUps8_kwds</span>)</span><br />\n      Convert this <code>LatLon</code> point to a UPS coordinate.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toUtm\" class=\"summary-sig-name\">toUtm</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">center</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">**toUtm8_kwds</span>)</span><br />\n      Convert this <code>LatLon</code> point to a UTM coordinate.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toUtmUps\" class=\"summary-sig-name\">toUtmUps</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">pole</span>=<span class=\"summary-sig-default\">''</span>,\n        <span class=\"summary-sig-arg\">center</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">**toUtmUps8_kwds</span>)</span><br />\n      Convert this <code>LatLon</code> point to a UTM or UPS coordinate.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#triangulate\" class=\"summary-sig-name\">triangulate</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">bearing1</span>,\n        <span class=\"summary-sig-arg\">other</span>,\n        <span class=\"summary-sig-arg\">bearing2</span>,\n        <span class=\"summary-sig-arg\">**height_wrap_tol</span>)</span><br />\n      <i>Iteratively</i> locate a point given this, an other point and a \n      bearing from North at each point.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#trilaterate5\" class=\"summary-sig-name\">trilaterate5</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">distance1</span>,\n        <span class=\"summary-sig-arg\">point2</span>,\n        <span class=\"summary-sig-arg\">distance2</span>,\n        <span class=\"summary-sig-arg\">point3</span>,\n        <span class=\"summary-sig-arg\">distance3</span>,\n        <span class=\"summary-sig-arg\">area</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">eps</span>=<span class=\"summary-sig-default\">0.9999999999999998</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Trilaterate three points by <i>area overlap</i> or <i>perimeter \n      intersection</i> of three intersecting circles.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">latlonBase.LatLonBase</a></code></b>:\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#PointsIter\">PointsIter</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#__eq__\">__eq__</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#__ne__\">__ne__</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#bounds\">bounds</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#boundsOf\">boundsOf</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#chordTo\">chordTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#circin6\">circin6</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#circum3\">circum3</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#circum4_\">circum4_</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#compassAngle\">compassAngle</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#compassAngleTo\">compassAngleTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#cosineAndoyerLambertTo\">cosineAndoyerLambertTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#cosineForsytheAndoyerLambertTo\">cosineForsytheAndoyerLambertTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#cosineLawTo\">cosineLawTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#destinationXyz\">destinationXyz</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#equals\">equals</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#equals3\">equals3</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#equirectangularTo\">equirectangularTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#euclideanTo\">euclideanTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#flatLocalTo\">flatLocalTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#flatPolarTo\">flatPolarTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#hartzell\">hartzell</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#haversineTo\">haversineTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#height4\">height4</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#heightStr\">heightStr</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#hubenyTo\">hubenyTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#intersecant2\">intersecant2</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isantipode\">isantipode</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isantipodeTo\">isantipodeTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isequalTo\">isequalTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isequalTo3\">isequalTo3</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#latlon2\">latlon2</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#latlon2round\">latlon2round</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#latlon_\">latlon_</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#nearestOn6\">nearestOn6</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#nearestTo\">nearestTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#normal\">normal</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#philam2\">philam2</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#points\">points</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#points2\">points2</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#radii11\">radii11</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#rhumbAzimuthTo\">rhumbAzimuthTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#rhumbDestination\">rhumbDestination</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#rhumbDistanceTo\">rhumbDistanceTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#rhumbIntersecant2\">rhumbIntersecant2</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#rhumbLine\">rhumbLine</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#rhumbMidpointTo\">rhumbMidpointTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#thomasTo\">thomasTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#to2ab\">to2ab</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#to3llh\">to3llh</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toEcef\">toEcef</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toNormal\">toNormal</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toNvector\">toNvector</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toVector\">toVector</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toVector3d\">toVector3d</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toWm\">toWm</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#vincentysTo\">vincentysTo</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#others\">others</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#toRepr\">toRepr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html\">ecefLocals._EcefLocal</a></code></b>:\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toAer\">toAer</a></code>,\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toEnu\">toEnu</a></code>,\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toLocal\">toLocal</a></code>,\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toLtp\">toLtp</a></code>,\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toNed\">toNed</a></code>,\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toXyz\">toXyz</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#Equidistant\" class=\"summary-name\">Equidistant</a><br />\n      Get the prefered azimuthal equidistant projection <i>class</i> (<a \n      href=\"pygeodesy.azimuthal.EquidistantKarney-class.html\" \n      class=\"link\">EquidistantKarney</a> or <a \n      href=\"pygeodesy.azimuthal.EquidistantExact-class.html\" \n      class=\"link\">EquidistantExact</a>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#convergence\" class=\"summary-name\">convergence</a><br />\n      DEPRECATED, use property <code>gamma</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#datum\" class=\"summary-name\">datum</a><br />\n      Class <code>property</code> with a <code>.name</code> attribute.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#ellipsoidalLatLon\" class=\"summary-name\">ellipsoidalLatLon</a><br />\n      Get this <code>LatLon</code>'s ellipsoidal class.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#epoch\" class=\"summary-name\">epoch</a><br />\n      Class <code>property</code> with a <code>.name</code> attribute.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#gamma\" class=\"summary-name\">gamma</a><br />\n      Get this point's UTM or UPS meridian convergence \n      (<code>degrees</code>) or <code>None</code> if not available or not \n      converted from <a href=\"pygeodesy.utm.Utm-class.html\" \n      class=\"link\">Utm</a> or <a href=\"pygeodesy.ups.Ups-class.html\" \n      class=\"link\">Ups</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#iteration\" class=\"summary-name\">iteration</a><br />\n      Get the most recent <code>intersections2</code> or \n      <code>nearestOn</code> iteration number (<code>int</code>) or \n      <code>None</code> if not available/applicable.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#reframe\" class=\"summary-name\">reframe</a><br />\n      Class <code>property</code> with a <code>.name</code> attribute.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#scale\" class=\"summary-name\">scale</a><br />\n      Get this point's UTM grid or UPS point scale factor \n      (<code>float</code>) or <code>None</code> if not converted from <a \n      href=\"pygeodesy.utm.Utm-class.html\" class=\"link\">Utm</a> or <a \n      href=\"pygeodesy.ups.Ups-class.html\" class=\"link\">Ups</a>.\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">latlonBase.LatLonBase</a></code></b>:\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#clipid\">clipid</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#height\">height</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isEllipsoidal\">isEllipsoidal</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isSpherical\">isSpherical</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isnormal\">isnormal</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#lam\">lam</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#lat\">lat</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#latlon\">latlon</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#latlonheight\">latlonheight</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#lon\">lon</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#phi\">phi</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#philam\">philam</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#philamheight\">philamheight</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#sphericalLatLon\">sphericalLatLon</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#xyz\">xyz</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#xyz3\">xyz3</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#xyzh\">xyzh</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html\">ecefLocals._EcefLocal</a></code></b>:\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#Ecef\">Ecef</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">latlonh</span>,\n        <span class=\"sig-arg\">lon</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">height</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">datum</span>=<span class=\"sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"sig-arg\">reframe</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">epoch</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Create an ellipsoidal <code>LatLon</code> point from the given lat-, \n  longitude and height on the given datum, reference frame and epoch.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>latlonh</code></strong> - Latitude (<code>degrees</code> or DMS <code>str</code> with N or \n          S suffix) or a previous <code>LatLon</code> instance provided \n          <code><b>lon</b>=None</code>.</li>\n        <li><strong class=\"pname\"><code>lon</code></strong> - Longitude (<code>degrees</code> or DMS <code>str</code> with E or\n          W suffix) or C(None), indicating <b><code>latlonh</code></b> is a\n          <code>LatLon</code>.</li>\n        <li><strong class=\"pname\"><code>height</code></strong> - Optional height above (or below) the earth surface \n          (<code>meter</code>, same units as the datum's ellipsoid axes).</li>\n        <li><strong class=\"pname\"><code>datum</code></strong> - Optional, ellipsoidal datum to use (<a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>, \n          <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a> or <a \n          href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>reframe</code></strong> - Optional reference frame (<a \n          href=\"pygeodesy.trf.RefFrame-class.html\" \n          class=\"link\">RefFrame</a>).</li>\n        <li><strong class=\"pname\"><code>epoch</code></strong> - Optional epoch to observe for <b><code>reframe</code></b> \n          (<code>scalar</code>), a non-zero, fractional calendar year, but \n          silently ignored if <code><b>reframe</b>=None</code>.</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> \n          <b><code>lat</code></b> and <b><code>lon</code></b> \n          (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>New instance (<code>LatLon</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.RangeError-class.html\">RangeError</a></strong></code> - Value of <code>lat</code> or <b><code>lon</code></b> outside the \n        valid range and <a href=\"pygeodesy.errors-module.html#rangerrors\" \n        class=\"link\">rangerrors</a> set to <code>True</code>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - If <b><code>latlonh</code></b> is not a <code>LatLon</code>, \n        <b><code>datum</code></b> is not a <a \n        href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>, \n        <b><code>reframe</code></b> is not a <a \n        href=\"pygeodesy.trf.RefFrame-class.html\" class=\"link\">RefFrame</a> \n        or <b><code>epoch</code></b> is not <code>scalar</code> non-zero.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.UnitError-class.html\">UnitError</a></strong></code> - Invalid <b><code>lat</code></b>, <b><code>lon</code></b> or \n        <b><code>height</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"antipode\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">antipode</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">height</span>=<span class=\"sig-default\">None</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the antipode, the point diametrically opposite to this \n  point.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>height</code></strong> - Optional height of the antipode, height of this point otherwise \n          (<code>meter</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The antipodal point (<code>LatLon</code>).</dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.latlonBase.LatLonBase-class.html#antipode\">latlonBase.LatLonBase.antipode</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"convertDatum\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">convertDatum</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">datum2</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use method <a \n  href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toDatum\"\n  class=\"link\">toDatum</a>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_method</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"convertRefFrame\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">convertRefFrame</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">reframe2</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use method <a \n  href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toRefFrame\"\n  class=\"link\">toRefFrame</a>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_method</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"distanceTo2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">distanceTo2</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p><i>Approximate</i> the distance and (initial) bearing between this and\n  an other (ellipsoidal) point based on the radii of curvature.</p>\n  <p><i>Suitable only for short distances up to a few hundred Km or Miles \n  and only between points not near-polar</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>other</code></strong> - The other point (<code>LatLon</code>).</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> the \n          <b><code>other</code></b> point (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>An <a href=\"pygeodesy.namedTuples.Distance2Tuple-class.html\" \n          class=\"link\">Distance2Tuple</a><code>(distance, initial)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - The <b><code>other</code></b> point is not <code>LatLon</code>.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Incompatible datum ellipsoids.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <a \n        href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#distance2\" \n        class=\"link\">Ellipsoid.distance2</a> and <a \n        href=\"https://www.EdWilliams.org/avform.htm#flat\" \n        target=\"_top\">Local, flat earth approximation</a> aka <a \n        href=\"https://www.OVG.AT/de/vgi/files/pdf/3781/\" \n        target=\"_top\">Hubeny</a> formula.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"elevation2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">elevation2</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">adjust</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">datum</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">timeout</span>=<span class=\"sig-default\">2</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return elevation of this point for its or the given datum, ellipsoid \n  or sphere.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>adjust</code></strong> - Adjust the elevation for a <b><code>datum</code></b> other than \n          <code>NAD83</code> (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>datum</code></strong> - Optional datum overriding this point's datum (<a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>, \n          <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a>, <a \n          href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a> or <code>scalar</code> radius).</li>\n        <li><strong class=\"pname\"><code>timeout</code></strong> - Optional query timeout (<code>seconds</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>An <a href=\"pygeodesy.elevations.Elevation2Tuple-class.html\" \n          class=\"link\">Elevation2Tuple</a><code>(elevation, \n          data_source)</code> or <code>(None, error)</code> in case of \n          errors.</dd>\n  </dl>\n<div class=\"fields\">      <strong>Notes:</strong>\n      <ul class=\"nomargin-top\">\n        <li>\n        The adjustment applied is the difference in geocentric earth radius\n        between the <b><code>datum</code></b> and <code>NAV83</code> upon \n        which the <a href=\"pygeodesy.elevations-module.html#elevation2\" \n        class=\"link\">elevations.elevation2</a> is based.\n        </li>\n        <li>\n        NED elevation is only available for locations within the <a \n        href=\"https://WikiPedia.org/wiki/Contiguous_United_States\" \n        target=\"_top\">Conterminous US (CONUS)</a>.\n        </li>\n      </ul>\n      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.elevations-module.html#elevation2\" \n        class=\"link\">elevations.elevation2</a> and method \n        <code>Ellipsoid.Rgeocentric</code> for further details and possible\n        <code>error</code>s.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"ellipsoid\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">ellipsoid</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">datum</span>=<span class=\"sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the ellipsoid of this point's datum or the given datum.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>datum</code></strong> - Default datum (<a href=\"pygeodesy.datums.Datum-class.html\" \n          class=\"link\">Datum</a>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The ellipsoid (<a \n          href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a> or <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"ellipsoids\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">ellipsoids</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Check the type and ellipsoid of this and an other point's datum.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>other</code></strong> - The other point (<code>LatLon</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>This point's datum ellipsoid (<a \n          href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a> or <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - The <b><code>other</code></b> point is not <code>LatLon</code>.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Incompatible datum ellipsoids.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"geoidHeight2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">geoidHeight2</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">adjust</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">datum</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">timeout</span>=<span class=\"sig-default\">2</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return geoid height of this point for its or the given datum, \n  ellipsoid or sphere.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>adjust</code></strong> - Adjust the geoid height for a <b><code>datum</code></b> other \n          than <code>NAD83/NADV88</code> (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>datum</code></strong> - Optional datum overriding this point's datum (<a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>, \n          <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a>, <a \n          href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a> or <code>scalar</code> radius).</li>\n        <li><strong class=\"pname\"><code>timeout</code></strong> - Optional query timeout (<code>seconds</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.elevations.GeoidHeight2Tuple-class.html\" \n          class=\"link\">GeoidHeight2Tuple</a><code>(height, \n          model_name)</code> or <code>(None, error)</code> in case of \n          errors.</dd>\n  </dl>\n<div class=\"fields\">      <strong>Notes:</strong>\n      <ul class=\"nomargin-top\">\n        <li>\n        The adjustment applied is the difference in geocentric earth radius\n        between the <b><code>datum</code></b> and <code>NAV83/NADV88</code>\n        upon which the <a \n        href=\"pygeodesy.elevations-module.html#geoidHeight2\" \n        class=\"link\">elevations.geoidHeight2</a> is based.\n        </li>\n        <li>\n        The geoid height is only available for locations within the <a \n        href=\"https://WikiPedia.org/wiki/Contiguous_United_States\" \n        target=\"_top\">Conterminous US (CONUS)</a>.\n        </li>\n      </ul>\n      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.elevations-module.html#geoidHeight2\" \n        class=\"link\">elevations.geoidHeight2</a> and method \n        <code>Ellipsoid.Rgeocentric</code> for further details and possible\n        <code>error</code>s.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"intersection3\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">intersection3</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">end1</span>,\n        <span class=\"sig-arg\">start2</span>,\n        <span class=\"sig-arg\">end2</span>,\n        <span class=\"sig-arg\">height</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">equidistant</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">tol</span>=<span class=\"sig-default\">0.001</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p><i>Iteratively</i> compute the intersection point of two geodesic \n  lines, each given as two points or as a start point and a bearing from \n  North.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>end1</code></strong> - End point of this line (<code>LatLon</code>) or the initial \n          bearing at this point (compass <code>degrees360</code>).</li>\n        <li><strong class=\"pname\"><code>start2</code></strong> - Start point of the second line (this <code>LatLon</code>).</li>\n        <li><strong class=\"pname\"><code>end2</code></strong> - End point of the second line (this <code>LatLon</code>) or the \n          initial bearing at <b><code>start2</code></b> (compass \n          <code>degrees360</code>).</li>\n        <li><strong class=\"pname\"><code>height</code></strong> - Optional height at the intersection (<code>meter</code>, \n          conventionally) or <code>None</code> for the mean height.</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll \n          <b><code>start2</code></b> and both <b><code>end*</code></b> \n          points (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>equidistant</code></strong> - An azimuthal equidistant projection (<i>class</i> or function <a \n          href=\"pygeodesy.azimuthal-module.html#equidistant\" \n          class=\"link\">pygeodesy.equidistant</a>), or <code>None</code> for\n          this point's preferred <code>.Equidistant</code>.</li>\n        <li><strong class=\"pname\"><code>tol</code></strong> - Tolerance for convergence and skew line distance and length \n          (<code>meter</code>, conventionally).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>An <a href=\"pygeodesy.namedTuples.Intersection3Tuple-class.html\" \n          class=\"link\">Intersection3Tuple</a><code>(point, outside1, \n          outside2)</code> with <code>point</code> a <code>LatLon</code> \n          instance.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ImportError</strong></code> - Package <a href=\"https://PyPI.org/project/geographiclib\" \n        target=\"_top\">geographiclib</a> not installed or not found, but \n        only if <code><b>equidistant</b>=</code><a \n        href=\"pygeodesy.azimuthal.EquidistantKarney-class.html\" \n        class=\"link\">EquidistantKarney</a>.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.IntersectionError-class.html\">IntersectionError</a></strong></code> - Skew, colinear, parallel or otherwise non-intersecting lines or no \n        convergence for the given <b><code>tol</code></b>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>end1</code></b>, <b><code>start2</code></b> or \n        <b><code>end2</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        For each line specified with an initial bearing, a pseudo-end point\n        is computed as the <code>destination</code> along that bearing at \n        about 1.5 times the distance from the start point to an initial \n        gu-/estimate of the intersection point (and between 1/8 and 3/8 of \n        the <code>authalic</code> earth perimeter).\n      </p>\n      <p><strong>See Also:</strong>\n        <i>Karney's</i> <a \n        href=\"https://SourceForge.net/p/geographiclib/discussion/1026621/thread/21aaff9f/\"\n        target=\"_top\">intersect.cpp</a>, <a \n        href=\"https://GIS.StackExchange.com/questions/48937/calculating-intersection-of-two-circles\"\n        target=\"_top\">The <b>ellipsoidal</b> case</a> and <a \n        href=\"https://ArXiv.org/pdf/1102.1215.pdf\" target=\"_top\">Karney's \n        paper</a>, pp 20-21, section <b>14. MARITIME BOUNDARIES</b> for \n        more details about the iteration algorithm.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"intersections2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">intersections2</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">radius1</span>,\n        <span class=\"sig-arg\">center2</span>,\n        <span class=\"sig-arg\">radius2</span>,\n        <span class=\"sig-arg\">height</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">equidistant</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">tol</span>=<span class=\"sig-default\">0.001</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p><i>Iteratively</i> compute the intersection points of two circles, \n  each defined by a center point and a radius.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>radius1</code></strong> - Radius of this circle (<code>meter</code>, conventionally).</li>\n        <li><strong class=\"pname\"><code>center2</code></strong> - Center of the other circle (this <code>LatLon</code>).</li>\n        <li><strong class=\"pname\"><code>radius2</code></strong> - Radius of the other circle (<code>meter</code>, same units as \n          <b><code>radius1</code></b>).</li>\n        <li><strong class=\"pname\"><code>height</code></strong> - Optional height for the intersection points (<code>meter</code>, \n          conventionally) or <code>None</code> for the <i>&quot;radical \n          height&quot;</i> at the <i>radical line</i> between both centers.</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll \n          <b><code>center2</code></b> (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>equidistant</code></strong> - An azimuthal equidistant projection (<i>class</i> or function <a \n          href=\"pygeodesy.azimuthal-module.html#equidistant\" \n          class=\"link\">pygeodesy.equidistant</a>) or <code>None</code> for \n          this point's preferred <code>.Equidistant</code>.</li>\n        <li><strong class=\"pname\"><code>tol</code></strong> - Convergence tolerance (<code>meter</code>, same units as \n          <b><code>radius1</code></b> and <b><code>radius2</code></b>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>2-Tuple of the intersection points, each a <code>LatLon</code> \n          instance.  For abutting circles, both intersection points are the\n          same instance, aka the <i>radical center</i>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ImportError</strong></code> - Package <a href=\"https://PyPI.org/project/geographiclib\" \n        target=\"_top\">geographiclib</a> not installed or not found, but \n        only if <code><b>equidistant</b>=</code><a \n        href=\"pygeodesy.azimuthal.EquidistantKarney-class.html\" \n        class=\"link\">EquidistantKarney</a>.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.IntersectionError-class.html\">IntersectionError</a></strong></code> - Concentric, antipodal, invalid or non-intersecting circles or no \n        convergence for the given <b><code>tol</code></b>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>center2</code></b> or \n        <b><code>equidistant</code></b>.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.UnitError-class.html\">UnitError</a></strong></code> - Invalid <b><code>radius1</code></b>, <b><code>radius2</code></b> or\n        <b><code>height</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a \n        href=\"https://GIS.StackExchange.com/questions/48937/calculating-intersection-of-two-circles\"\n        target=\"_top\">The <b>ellipsoidal</b> case</a>, <a \n        href=\"https://ArXiv.org/pdf/1102.1215.pdf\" target=\"_top\">Karney's \n        paper</a>, pp 20-21, section <b>14. MARITIME BOUNDARIES</b>, <a \n        href=\"https://MathWorld.Wolfram.com/Circle-CircleIntersection.html\"\n        target=\"_top\">circle-circle</a> and <a \n        href=\"https://MathWorld.Wolfram.com/Sphere-SphereIntersection.html\"\n        target=\"_top\">sphere-sphere</a> intersections.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"isenclosedBy\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">isenclosedBy</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Check whether a polygon or composite encloses this point.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>points</code></strong> - The polygon points or clips (<code>LatLon</code>[], <a \n          href=\"pygeodesy.booleans.BooleanFHP-class.html\" \n          class=\"link\">BooleanFHP</a> or <a \n          href=\"pygeodesy.booleans.BooleanGH-class.html\" \n          class=\"link\">BooleanGH</a>).</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll the \n          <b><code>points</code></b> (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>True</code> if this point is inside the polygon or \n          composite, <code>False</code> otherwise.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.PointsError-class.html\">PointsError</a></strong></code> - Insufficient number of <b><code>points</code></b>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Some <b><code>points</code></b> are not <code>LatLon</code>.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>point</code></b>, lat- or longitude.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Functions <a href=\"pygeodesy.points-module.html#isconvex\" \n        class=\"link\">pygeodesy.isconvex</a>, <a \n        href=\"pygeodesy.points-module.html#isenclosedBy\" \n        class=\"link\">pygeodesy.isenclosedBy</a> and <a \n        href=\"pygeodesy.points-module.html#ispolar\" \n        class=\"link\">pygeodesy.ispolar</a> especially if the \n        <b><code>points</code></b> may enclose a pole or wrap around the \n        earth <i>longitudinally</i>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"midpointTo\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">midpointTo</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>,\n        <span class=\"sig-arg\">height</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">fraction</span>=<span class=\"sig-default\">0.5</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Find the midpoint on a geodesic between this and an other point.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>other</code></strong> - The other point (<code>LatLon</code>).</li>\n        <li><strong class=\"pname\"><code>height</code></strong> - Optional height for midpoint, overriding the mean height \n          (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>fraction</code></strong> - Midpoint location from this point (<code>scalar</code>), may be \n          negative or greater than 1.0.</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll the \n          <b><code>other</code></b> point (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Midpoint (<code>LatLon</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - The <b><code>other</code></b> point is not <code>LatLon</code>.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>height</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Methods <code>intermediateTo</code> and \n        <code>rhumbMidpointTo</code>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"nearestOn\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">nearestOn</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">point1</span>,\n        <span class=\"sig-arg\">point2</span>,\n        <span class=\"sig-arg\">within</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">height</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">equidistant</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">tol</span>=<span class=\"sig-default\">0.001</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p><i>Iteratively</i> locate the closest point on the geodesic (line) \n  between two other (ellipsoidal) points.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>point1</code></strong> - Start point of the geodesic (<code>LatLon</code>).</li>\n        <li><strong class=\"pname\"><code>point2</code></strong> - End point of the geodesic (<code>LatLon</code>).</li>\n        <li><strong class=\"pname\"><code>within</code></strong> - If <code>True</code>, return the closest point <i>between</i> \n          <b><code>point1</code></b> and <b><code>point2</code></b>, \n          otherwise the closest point elsewhere on the geodesic \n          (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>height</code></strong> - Optional height for the closest point (<code>meter</code>, \n          conventionally) or <code>None</code> or <code>False</code> for \n          the interpolated height.  If <code>False</code>, the closest \n          takes the heights of the points into account.</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll both \n          <b><code>point1</code></b> and <b><code>point2</code></b> \n          (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>equidistant</code></strong> - An azimuthal equidistant projection (<i>class</i> or function <a \n          href=\"pygeodesy.azimuthal-module.html#equidistant\" \n          class=\"link\">pygeodesy.equidistant</a>) or <code>None</code> for \n          this point's preferred <code>Equidistant</code>, like <a \n          href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#Equidistant\"\n          class=\"link\">Equidistant</a>.</li>\n        <li><strong class=\"pname\"><code>tol</code></strong> - Convergence tolerance (<code>meter</code>, conventionally).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Closest point (<code>LatLon</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ImportError</strong></code> - Package <a href=\"https://PyPI.org/project/geographiclib\" \n        target=\"_top\">geographiclib</a> not installed or not found, but \n        only if <code><b>equidistant</b>=</code><a \n        href=\"pygeodesy.azimuthal.EquidistantKarney-class.html\" \n        class=\"link\">EquidistantKarney</a>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>point1</code></b>, <b><code>point2</code></b> or \n        <b><code>equidistant</code></b>.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Datum or ellipsoid of <b><code>point1</code></b> or \n        <b><code>point2</code></b> is incompatible or no convergence for \n        the given <b><code>tol</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <i>Karney</i>'s <a \n        href=\"https://SourceForge.net/p/geographiclib/discussion/1026621/thread/21aaff9f/\"\n        target=\"_top\">intercept.cpp</a>, <a \n        href=\"https://GIS.StackExchange.com/questions/48937/calculating-intersection-of-two-circles\"\n        target=\"_top\">The <b>ellipsoidal</b> case</a> and <a \n        href=\"https://ArXiv.org/pdf/1102.1215.pdf\" target=\"_top\">Karney's \n        paper</a>, pp 20-21, section <b>14. MARITIME BOUNDARIES</b> for \n        details about the iteration algorithm.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"parse\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">parse</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">strllh</span>,\n        <span class=\"sig-arg\">height</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">datum</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">epoch</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">reframe</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">sep</span>=<span class=\"sig-default\">','</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Parse a string consisting of <code>&quot;lat, lon[, \n  height]&quot;</code>, representing a similar, ellipsoidal \n  <code>LatLon</code> point.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>strllh</code></strong> - Lat, lon and optional height (<code>str</code>), see function <a \n          href=\"pygeodesy.dms-module.html#parse3llh\" \n          class=\"link\">pygeodesy.parse3llh</a>.</li>\n        <li><strong class=\"pname\"><code>height</code></strong> - Optional, default height (<code>meter</code> or \n          <code>None</code>).</li>\n        <li><strong class=\"pname\"><code>datum</code></strong> - Optional datum (<a href=\"pygeodesy.datums.Datum-class.html\" \n          class=\"link\">Datum</a>), overriding this datum <i>without \n          conversion</i>.</li>\n        <li><strong class=\"pname\"><code>epoch</code></strong> - Optional datum (<a href=\"pygeodesy.units.Epoch-class.html\" \n          class=\"link\">Epoch</a>), overriding this epoch <i>without \n          conversion</i>.</li>\n        <li><strong class=\"pname\"><code>reframe</code></strong> - Optional reference frame (<a \n          href=\"pygeodesy.trf.RefFrame-class.html\" \n          class=\"link\">RefFrame</a>), overriding this reframe <i>without \n          conversion</i>.</li>\n        <li><strong class=\"pname\"><code>sep</code></strong> - Optional separator (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> the lat- and \n          longitude (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>), \n          overriding this name.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The similar point (ellipsoidal <code>LatLon</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.ParseError-class.html\">ParseError</a></strong></code> - Invalid <b><code>strllh</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"to3xyz\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">to3xyz</span>&nbsp;(<span class=\"sig-arg\">self</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use method <code>toEcef</code>.</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.namedTuples.Vector3Tuple-class.html\" \n          class=\"link\">Vector3Tuple</a><code>(x, y, z)</code>.</dd>\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_method</code></li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.latlonBase.LatLonBase-class.html#to3xyz\">latlonBase.LatLonBase.to3xyz</a>\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        Overloads <code>LatLonBase.to3xyz</code>\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"toCartesian\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toCartesian</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">height</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**Cartesian_and_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert this point to cartesian, <i>geocentric</i> coordinates, also \n  known as <i>Earth-Centered, Earth-Fixed</i> (ECEF).</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>height</code></strong> - Optional height, overriding this point's height \n          (<code>meter</code>, conventionally).</li>\n        <li><strong class=\"pname\"><code>Cartesian</code></strong> - Optional class to return the geocentric coordinates \n          (<code>Cartesian</code>) or <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>Cartesian_kwds</code></strong> - Optionally, additional <b><code>Cartesian</code></b> keyword \n          arguments, ignored if <code><b>Cartesian</b> is None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <b><code>Cartesian</code></b> instance or if \n          <b><code>Cartesian</code> is None</b>, an <a \n          href=\"pygeodesy.ecef.Ecef9Tuple-class.html\" \n          class=\"link\">Ecef9Tuple</a><code>(x, y, z, lat, lon, height, C, \n          M, datum)</code> with <code>C=0</code> and <code>M</code> if \n          available.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>Cartesian</code></b> or \n        <b><code>Cartesian_kwds</code></b> item.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toCartesian\">latlonBase.LatLonBase.toCartesian</a>\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <a \n        href=\"pygeodesy.latlonBase.LatLonBase-class.html#toCartesian\" \n        class=\"link\">toCartesian</a> for further details.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"toCss\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toCss</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">**toCss_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert this <code>LatLon</code> point to a Cassini-Soldner \n  location.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>toCss_kwds</code></strong> - Optional keyword arguments for function <a \n          href=\"pygeodesy.css-module.html#toCss\" \n          class=\"link\">pygeodesy.toCss</a>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The Cassini-Soldner location (<a \n          href=\"pygeodesy.css.Css-class.html\" class=\"link\">Css</a>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toDatum\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toDatum</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">datum2</span>,\n        <span class=\"sig-arg\">height</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert this point to an other datum.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>datum2</code></strong> - Datum to convert <i>to</i> (<a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>).</li>\n        <li><strong class=\"pname\"><code>height</code></strong> - Optional height, overriding the converted height \n          (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The converted point (this <code>LatLon</code>) or a copy of this \n          point if <b><code>datum2</code></b> matches this point's \n          <code>datum</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>datum2</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toDatum\">latlonBase.LatLonBase.toDatum</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toEtm\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toEtm</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">**toEtm8_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert this <code>LatLon</code> point to an ETM coordinate.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>toEtm8_kwds</code></strong> - Optional keyword arguments for function <a \n          href=\"pygeodesy.etm-module.html#toEtm8\" \n          class=\"link\">pygeodesy.toEtm8</a>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The ETM coordinate (<a href=\"pygeodesy.etm.Etm-class.html\" \n          class=\"link\">Etm</a>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toLcc\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toLcc</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">**toLcc_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert this <code>LatLon</code> point to a Lambert location.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>toLcc_kwds</code></strong> - Optional keyword arguments for function <a \n          href=\"pygeodesy.lcc-module.html#toLcc\" \n          class=\"link\">pygeodesy.toLcc</a>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The Lambert location (<a href=\"pygeodesy.lcc.Lcc-class.html\" \n          class=\"link\">Lcc</a>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toMgrs\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toMgrs</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">center</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">**toUtmUps_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert this <code>LatLon</code> point to an MGRS coordinate.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>center</code></strong> - If <code>True</code>, try to <i>un</i>-center MGRS to its \n          <code>lowerleft</code> (<code>bool</code>) or by \n          <code><b>center</b> meter</code> (<code>scalar</code>).</li>\n        <li><strong class=\"pname\"><code>toUtmUps_kwds</code></strong> - Optional keyword arguments for method <a \n          href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toUtmUps\"\n          class=\"link\">toUtmUps</a>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The MGRS coordinate (<a href=\"pygeodesy.mgrs.Mgrs-class.html\" \n          class=\"link\">Mgrs</a>).</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Methods <a \n        href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toUtmUps\"\n        class=\"link\">toUtmUps</a> and <a \n        href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html#toMgrs\" \n        class=\"link\">toMgrs</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"toOsgr\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toOsgr</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">kTM</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">**toOsgr_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert this <code>LatLon</code> point to an OSGR coordinate.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>kTM</code></strong> - If <code>True</code>, use <i>Karney</i>'s Kr&#252;ger method from \n          module <a href=\"pygeodesy.ktm-module.html\" class=\"link\">ktm</a>, \n          otherwise <i>Ordinance Survery</i>'s recommended formulation \n          (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>toOsgr_kwds</code></strong> - Optional keyword arguments for function <a \n          href=\"pygeodesy.osgr-module.html#toOsgr\" \n          class=\"link\">pygeodesy.toOsgr</a>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The OSGR coordinate (<a href=\"pygeodesy.osgr.Osgr-class.html\" \n          class=\"link\">Osgr</a>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toRefFrame\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toRefFrame</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">reframe2</span>,\n        <span class=\"sig-arg\">reframe</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">epoch</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">epoch2</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">height</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert this point to an other reference frame and epoch.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>reframe2</code></strong> - Reference frame to convert <i>to</i> (<a \n          href=\"pygeodesy.trf.RefFrame-class.html\" \n          class=\"link\">RefFrame</a>).</li>\n        <li><strong class=\"pname\"><code>reframe</code></strong> - Optional reference frame to convert <i>from</i> (<a \n          href=\"pygeodesy.trf.RefFrame-class.html\" \n          class=\"link\">RefFrame</a>), overriding this point's reference \n          frame.</li>\n        <li><strong class=\"pname\"><code>epoch</code></strong> - Optional epoch (<a href=\"pygeodesy.units.Epoch-class.html\" \n          class=\"link\">Epoch</a>, <code>scalar</code> or <code>str</code>),\n          overriding this point's <code>epoch or \n          <b>reframe</b>.epoch</code>.</li>\n        <li><strong class=\"pname\"><code>epoch2</code></strong> - Optional epoch to observe for the converted point (<a \n          href=\"pygeodesy.units.Epoch-class.html\" class=\"link\">Epoch</a>, \n          <code>scalar</code> or <code>str</code>), otherwise \n          <b><code>epoch</code></b>.</li>\n        <li><strong class=\"pname\"><code>height</code></strong> - Optional height, overriding the converted height \n          (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>), \n          overriding <code><b>reframe2</b>.name</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The converted point (ellipsoidal <code>LatLon</code>) or if \n          conversion <code>isunity</code>, this point or a copy of this \n          point if the <b><code>name</code></b> is non-empty.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.TRFError-class.html\">TRFError</a></strong></code> - This point's <code>reframe</code> is not defined, invalid \n        <b><code>epoch</code></b> or <b><code>epoch2</code></b> or \n        conversion from this point's <code>reframe</code> to \n        <b><code>reframe2</code></b> is not available.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - <b><code>reframe2</code></b> or <b><code>reframe</code></b> not a \n        <a href=\"pygeodesy.trf.RefFrame-class.html\" \n        class=\"link\">RefFrame</a>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toTransform\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toTransform</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">transform</span>,\n        <span class=\"sig-arg\">inverse</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">datum</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**LatLon_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Apply a Helmert transform to this geodetic point.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>transform</code></strong> - Transform to apply (<a \n          href=\"pygeodesy.datums.Transform-class.html\" \n          class=\"link\">Transform</a> or <a \n          href=\"pygeodesy.trf.TransformXform-class.html\" \n          class=\"link\">TransformXform</a>).</li>\n        <li><strong class=\"pname\"><code>inverse</code></strong> - Apply the inverse of the Helmert transform (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>datum</code></strong> - Datum for the transformed point (<a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>),\n          overriding this point's datum but <i>not</i> taken it into \n          account.</li>\n        <li><strong class=\"pname\"><code>LatLon_kwds</code></strong> - Optional keyword arguments for the transformed point, like \n          <code><b>height</b>=...</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A transformed point (<code>LatLon</code>) or a copy of this point\n          if <code><b>transform</b>.isunity</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>transform</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toUps\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toUps</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">center</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">**toUps8_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert this <code>LatLon</code> point to a UPS coordinate.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>center</code></strong> - If <code>True</code>, <i>un</i>-center the UPS to its \n          <code>lowerleft</code> (<code>bool</code>) or by \n          <code><b>center</b> meter</code> (<code>scalar</code>).</li>\n        <li><strong class=\"pname\"><code>toUps8_kwds</code></strong> - Optional keyword arguments for function <a \n          href=\"pygeodesy.ups-module.html#toUps8\" \n          class=\"link\">pygeodesy.toUps8</a>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The UPS coordinate (<a href=\"pygeodesy.ups.Ups-class.html\" \n          class=\"link\">Ups</a>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toUtm\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toUtm</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">center</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">**toUtm8_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert this <code>LatLon</code> point to a UTM coordinate.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>center</code></strong> - If <code>True</code>, <i>un</i>-center the UTM to its \n          <code>lowerleft</code> (<code>bool</code>) or by \n          <code><b>center</b> meter</code> (<code>scalar</code>).</li>\n        <li><strong class=\"pname\"><code>toUtm8_kwds</code></strong> - Optional keyword arguments for function <a \n          href=\"pygeodesy.utm-module.html#toUtm8\" \n          class=\"link\">pygeodesy.toUtm8</a>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The UTM coordinate (<a href=\"pygeodesy.utm.Utm-class.html\" \n          class=\"link\">Utm</a>).</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        For the highest accuracy, use method <a \n        href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toEtm\"\n        class=\"link\">toEtm</a> and class <a \n        href=\"pygeodesy.etm.Etm-class.html\" class=\"link\">pygeodesy.Etm</a> \n        instead of <a href=\"pygeodesy.utm.Utm-class.html\" \n        class=\"link\">pygeodesy.Utm</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"toUtmUps\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toUtmUps</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">pole</span>=<span class=\"sig-default\">''</span>,\n        <span class=\"sig-arg\">center</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">**toUtmUps8_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert this <code>LatLon</code> point to a UTM or UPS coordinate.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>pole</code></strong> - Optional top/center of UPS (stereographic) projection \n          (<code>str</code>, 'N[orth]' or 'S[outh]').</li>\n        <li><strong class=\"pname\"><code>center</code></strong> - If <code>True</code>, <i>un</i>-center the UTM or UPS to its \n          <code>lowerleft</code> (<code>bool</code>) or by \n          <code><b>center</b> meter</code> (<code>scalar</code>).</li>\n        <li><strong class=\"pname\"><code>toUtmUps8_kwds</code></strong> - Optional keyword arguments for function <a \n          href=\"pygeodesy.utmups-module.html#toUtmUps8\" \n          class=\"link\">pygeodesy.toUtmUps8</a>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The UTM or UPS coordinate (<a href=\"pygeodesy.utm.Utm-class.html\"\n          class=\"link\">Utm</a> or <a href=\"pygeodesy.ups.Ups-class.html\" \n          class=\"link\">Ups</a>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"triangulate\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">triangulate</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">bearing1</span>,\n        <span class=\"sig-arg\">other</span>,\n        <span class=\"sig-arg\">bearing2</span>,\n        <span class=\"sig-arg\">**height_wrap_tol</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p><i>Iteratively</i> locate a point given this, an other point and a \n  bearing from North at each point.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>bearing1</code></strong> - Bearing at this point (compass <code>degrees360</code>).</li>\n        <li><strong class=\"pname\"><code>other</code></strong> - The other point (<code>LatLon</code>).</li>\n        <li><strong class=\"pname\"><code>bearing2</code></strong> - Bearing at the <b><code>other</code></b> point (compass \n          <code>degrees360</code>).</li>\n        <li><strong class=\"pname\"><code>height_wrap_tol</code></strong> - Optional keyword arguments <code><b>height</b>=None</code>, \n          <code><b>wrap</b>=False</code> and <code><b>tol</b></code>, see \n          method <a \n          href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#intersection3\"\n          class=\"link\">intersection3</a>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Triangulated point (<code>LatLon</code>).</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <a \n        href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#intersection3\"\n        class=\"link\">intersection3</a> for further details.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"trilaterate5\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">trilaterate5</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">distance1</span>,\n        <span class=\"sig-arg\">point2</span>,\n        <span class=\"sig-arg\">distance2</span>,\n        <span class=\"sig-arg\">point3</span>,\n        <span class=\"sig-arg\">distance3</span>,\n        <span class=\"sig-arg\">area</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">eps</span>=<span class=\"sig-default\">0.9999999999999998</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Trilaterate three points by <i>area overlap</i> or <i>perimeter \n  intersection</i> of three intersecting circles.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>distance1</code></strong> - Distance to this point (<code>meter</code>), same units as \n          <b><code>eps</code></b>).</li>\n        <li><strong class=\"pname\"><code>point2</code></strong> - Second center point (<code>LatLon</code>).</li>\n        <li><strong class=\"pname\"><code>distance2</code></strong> - Distance to point2 (<code>meter</code>, same units as \n          <b><code>eps</code></b>).</li>\n        <li><strong class=\"pname\"><code>point3</code></strong> - Third center point (<code>LatLon</code>).</li>\n        <li><strong class=\"pname\"><code>distance3</code></strong> - Distance to point3 (<code>meter</code>, same units as \n          <b><code>eps</code></b>).</li>\n        <li><strong class=\"pname\"><code>area</code></strong> - If <code>True</code>, compute the area overlap, otherwise the \n          perimeter intersection of the circles (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>eps</code></strong> - The required <i>minimal overlap</i> for \n          <code><b>area</b>=True</code> or the <i>intersection margin</i> \n          for <code><b>area</b>=False</code> (<code>meter</code>, \n          conventionally).</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll \n          <b><code>point2</code></b> and <b><code>point3</code></b> \n          (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.namedTuples.Trilaterate5Tuple-class.html\" \n          class=\"link\">Trilaterate5Tuple</a><code>(min, minPoint, max, \n          maxPoint, n)</code> with <code>min</code> and <code>max</code> in\n          <code>meter</code>, same units as <b><code>eps</code></b>, the \n          corresponding trilaterated points <code>minPoint</code> and \n          <code>maxPoint</code> as <i>ellipsoidal</i> <code>LatLon</code> \n          and <code>n</code>, the number of trilatered points found for the\n          given <b><code>eps</code></b>.\n          <p>If only a single trilaterated point is found, <code>min \n          <i>is</i> max</code>, <code>minPoint <i>is</i> maxPoint</code> \n          and <code>n=1</code>.</p>\n          <p>If <code><b>area</b>=False</code>, <code>min</code> and \n          <code>max</code> represent the nearest respectively farthest \n          intersection margin.</p>\n          <p>If <code><b>area</b>=True</code>, <code>min</code> and \n          <code>max</code> are the smallest respectively largest \n          <i>radial</i> overlap found.</p>\n          <p>If <code><b>area</b>=True</code> and all 3 circles are \n          concentric, <code>n=0</code> and <code>minPoint</code> and \n          <code>maxPoint</code> are the <b><code>point#</code></b> with the\n          smallest <b><code>distance#</code></b> <code>min</code> \n          respectively largest <b><code>distance#</code></b> \n          <code>max</code>.</p></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.IntersectionError-class.html\">IntersectionError</a></strong></code> - Trilateration failed for the given <b><code>eps</code></b>, \n        insufficient overlap for <code><b>area</b>=True</code>, no circle \n        intersections for <code><b>area</b>=False</code> or all circles are\n        (near-)concentric.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>point2</code></b> or <b><code>point3</code></b>.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Coincident <b><code>points</code></b> or invalid \n        <b><code>distance1</code></b>, <b><code>distance2</code></b> or \n        <b><code>distance3</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        Ellipsoidal trilateration invokes methods \n        <code>LatLon.intersections2</code> and \n        <code>LatLon.nearestOn</code> based on <i>Karney</i>'s Python <a \n        href=\"https://PyPI.org/project/geographiclib\" \n        target=\"_top\">geographiclib</a> if installed, otherwise the \n        accurate (but slower) <code>ellipsoidalExact.LatLon</code> methods.\n      </p>\n</div></td></tr></table>\n</div>\n<br />\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"Equidistant\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">Equidistant</h3>\n  <p>Get the prefered azimuthal equidistant projection <i>class</i> (<a \n  href=\"pygeodesy.azimuthal.EquidistantKarney-class.html\" \n  class=\"link\">EquidistantKarney</a> or <a \n  href=\"pygeodesy.azimuthal.EquidistantExact-class.html\" \n  class=\"link\">EquidistantExact</a>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">Equidistant(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the prefered azimuthal equidistant projection <i>class</i> (<a \nhref=\"pygeodesy.azimuthal.EquidistantKarney-class.html\" \nclass=\"link\">EquidistantKarney</a> or <a \nhref=\"pygeodesy.azimuthal.EquidistantExact-class.html\" \nclass=\"link\">EquidistantExact</a>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"convergence\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">convergence</h3>\n  <p>DEPRECATED, use property <code>gamma</code>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">convergence(<span class=\"summary-sig-arg\">self</span>)</span>\n        - DEPRECATED, use property <code>gamma</code>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"datum\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">datum</h3>\n  <p>Class <code>property</code> with a <code>.name</code> attribute.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">datum(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get this point's datum (<a href=\"pygeodesy.datums.Datum-class.html\" \nclass=\"link\">Datum</a>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">datum(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">datum</span>)</span>\n        - Set this point's datum <i>without conversion</i> (<a \nhref=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>).\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"ellipsoidalLatLon\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">ellipsoidalLatLon</h3>\n  <p>Get this <code>LatLon</code>'s ellipsoidal class.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">ellipsoidalLatLon(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get this <code>LatLon</code>'s ellipsoidal class.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"epoch\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">epoch</h3>\n  <p>Class <code>property</code> with a <code>.name</code> attribute.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">epoch(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get this point's observed or <code>reframe</code> epoch (<a \nhref=\"pygeodesy.units.Epoch-class.html\" class=\"link\">Epoch</a>) or \n<code>None</code>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">epoch(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">epoch</span>)</span>\n        - Set or clear this point's observed epoch, a fractional calendar year (<a \nhref=\"pygeodesy.units.Epoch-class.html\" class=\"link\">Epoch</a>, \n<code>scalar</code> or <code>str</code>) or <code>None</code>.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"gamma\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">gamma</h3>\n  <p>Get this point's UTM or UPS meridian convergence \n  (<code>degrees</code>) or <code>None</code> if not available or not \n  converted from <a href=\"pygeodesy.utm.Utm-class.html\" \n  class=\"link\">Utm</a> or <a href=\"pygeodesy.ups.Ups-class.html\" \n  class=\"link\">Ups</a>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">gamma(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get this point's UTM or UPS meridian convergence (<code>degrees</code>) or \n<code>None</code> if not available or not converted from <a \nhref=\"pygeodesy.utm.Utm-class.html\" class=\"link\">Utm</a> or <a \nhref=\"pygeodesy.ups.Ups-class.html\" class=\"link\">Ups</a>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"iteration\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">iteration</h3>\n  <p>Get the most recent <code>intersections2</code> or \n  <code>nearestOn</code> iteration number (<code>int</code>) or \n  <code>None</code> if not available/applicable.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">iteration(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the most recent <code>intersections2</code> or <code>nearestOn</code> \niteration number (<code>int</code>) or <code>None</code> if not \navailable/applicable.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"reframe\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">reframe</h3>\n  <p>Class <code>property</code> with a <code>.name</code> attribute.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">reframe(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get this point's reference frame (<a \nhref=\"pygeodesy.trf.RefFrame-class.html\" class=\"link\">RefFrame</a>) or \n<code>None</code>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">reframe(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">reframe</span>)</span>\n        - Set or clear this point's reference frame (<a \nhref=\"pygeodesy.trf.RefFrame-class.html\" class=\"link\">RefFrame</a>) or \n<code>None</code>.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"scale\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">scale</h3>\n  <p>Get this point's UTM grid or UPS point scale factor \n  (<code>float</code>) or <code>None</code> if not converted from <a \n  href=\"pygeodesy.utm.Utm-class.html\" class=\"link\">Utm</a> or <a \n  href=\"pygeodesy.ups.Ups-class.html\" class=\"link\">Ups</a>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">scale(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get this point's UTM grid or UPS point scale factor (<code>float</code>) or\n<code>None</code> if not converted from <a \nhref=\"pygeodesy.utm.Utm-class.html\" class=\"link\">Utm</a> or <a \nhref=\"pygeodesy.ups.Ups-class.html\" class=\"link\">Ups</a>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.ellipsoidalBaseDI-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.ellipsoidalBaseDI</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        Module&nbsp;ellipsoidalBaseDI\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.ellipsoidalBaseDI-module.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== MODULE DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Module ellipsoidalBaseDI</h1><p class=\"nomargin-top\"></p>\n<p>(INTERNAL) Private, ellipsoidal Direct/Inverse geodesy base class \n  <code>LatLonEllipsoidalBaseDI</code> and functions.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Version:</strong>\n        25.05.23\n      </p>\n</div><!-- ==================== CLASSES ==================== -->\n<a name=\"section-Classes\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Classes</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html\" class=\"summary-name\">LatLonEllipsoidalBaseDI</a><br />\n      (INTERNAL) Base class for <code>ellipsoidal*.LatLon</code> classes \n        with <i>overloaded</i> <code>Direct</code> and <code>Inverse</code>\n        methods.\n    </td>\n  </tr>\n</table>\n<!-- ==================== FUNCTIONS ==================== -->\n<a name=\"section-Functions\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Functions</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoidalBaseDI-module.html#intersecant2\" class=\"summary-sig-name\">intersecant2</a>(<span class=\"summary-sig-arg\">center</span>,\n        <span class=\"summary-sig-arg\">circle</span>,\n        <span class=\"summary-sig-arg\">point</span>,\n        <span class=\"summary-sig-arg\">other</span>,\n        <span class=\"summary-sig-arg\">**exact_height_wrap_tol</span>)</span><br />\n      Compute the intersections of a circle and a geodesic given as two \n      points or as a point and (forward) bearing.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== VARIABLES ==================== -->\n<a name=\"section-Variables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Variables</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"__all__\"></a><span class=\"summary-name\">__all__</span> = <code title=\"_ALL_LAZY.ellipsoidalBaseDI\">_ALL_LAZY.ellipsoidalBaseDI</code>\n    </td>\n  </tr>\n</table>\n<!-- ==================== FUNCTION DETAILS ==================== -->\n<a name=\"section-FunctionDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Function Details</span></td>\n</tr>\n</table>\n<a name=\"intersecant2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">intersecant2</span>&nbsp;(<span class=\"sig-arg\">center</span>,\n        <span class=\"sig-arg\">circle</span>,\n        <span class=\"sig-arg\">point</span>,\n        <span class=\"sig-arg\">other</span>,\n        <span class=\"sig-arg\">**exact_height_wrap_tol</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the intersections of a circle and a geodesic given as two \n  points or as a point and (forward) bearing.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>center</code></strong> - Center of the circle (<code>LatLon</code>).</li>\n        <li><strong class=\"pname\"><code>circle</code></strong> - Radius of the circle (<code>meter</code>, conventionally) or a \n          point on the circle (<code>LatLon</code>, as \n          <b><code>center</code></b>).</li>\n        <li><strong class=\"pname\"><code>point</code></strong> - A point of the geodesic (<code>LatLon</code>, as \n          <b><code>center</code></b>).</li>\n        <li><strong class=\"pname\"><code>other</code></strong> - An other point of the geodesic (<code>LatLon</code>, as \n          <b><code>center</code></b>) or the (forward) bearing at the \n          <b><code>point</code></b> (compass <code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>exact_height_wrap_tol</code></strong> - Optional keyword arguments <code><b>exact</b>=False</code>, \n          <code><b>height</b>=None</code>, <code><b>wrap</b>=False</code> \n          and <code><b>tol</b></code>, see method <a \n          href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#intersecant2\"\n          class=\"link\">intersecant2</a>.</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>NotImplementedError</strong></code> - Method <code>intersecant2</code> not available.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - If <b><code>center</code></b>, <b><code>point</code></b> or \n        <b><code>circle</code></b> or <b><code>other</code></b> points not \n        ellipsoidal or not compatible with <b><code>center</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <code>LatLon.intersecant2</code> of class <a \n        href=\"pygeodesy.ellipsoidalExact.LatLon-class.html\" \n        class=\"link\">ellipsoidalExact.LatLon</a>, <a \n        href=\"pygeodesy.ellipsoidalKarney.LatLon-class.html\" \n        class=\"link\">ellipsoidalKarney.LatLon</a> or <a \n        href=\"pygeodesy.ellipsoidalVincenty.LatLon-class.html\" \n        class=\"link\">ellipsoidalVincenty.LatLon</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.ellipsoidalBaseDI-module.html\">Module&nbsp;ellipsoidalBaseDI</a> ::\n        Class&nbsp;LatLonEllipsoidalBaseDI\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class LatLonEllipsoidalBaseDI</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n               object --+                \n                        |                \n             <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+            \n                            |            \n             <a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+        \n                                |        \n               object --+       |        \n                        |       |        \n             <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+   |        \n                            |   |        \n        <a href=\"pygeodesy.ecefLocals._EcefLocal-class.html\">ecefLocals._EcefLocal</a> --+        \n                                |        \n            <a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">latlonBase.LatLonBase</a> --+    \n                                    |    \n<a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html\">ellipsoidalBase.LatLonEllipsoidalBase</a> --+\n                                        |\n                                       <strong class=\"uidshort\">LatLonEllipsoidalBaseDI</strong>\n</pre>\n\n<dl><dt>Known Subclasses:</dt>\n<dd>\n      <ul class=\"subclass-list\">\n<li><a href=\"pygeodesy.ellipsoidalExact.LatLon-class.html\">ellipsoidalExact.LatLon</a></li><li>, <a href=\"pygeodesy.ellipsoidalGeodSolve.LatLon-class.html\">ellipsoidalGeodSolve.LatLon</a></li><li>, <a href=\"pygeodesy.ellipsoidalKarney.LatLon-class.html\">ellipsoidalKarney.LatLon</a></li><li>, <a href=\"pygeodesy.ellipsoidalVincenty.LatLon-class.html\">ellipsoidalVincenty.LatLon</a></li>  </ul>\n</dd></dl>\n\n<hr />\n<p>(INTERNAL) Base class for <code>ellipsoidal*.LatLon</code> classes \n  with <i>overloaded</i> <code>Direct</code> and <code>Inverse</code> \n  methods.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#bearingTo2\" class=\"summary-sig-name\">bearingTo2</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Compute the initial and final bearing (forward and reverse azimuth) \n      from this to an other point, using this <code>Inverse</code> method.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#destination\" class=\"summary-sig-name\">destination</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">distance</span>,\n        <span class=\"summary-sig-arg\">bearing</span>,\n        <span class=\"summary-sig-arg\">height</span>=<span class=\"summary-sig-default\">None</span>)</span><br />\n      Compute the destination point after having travelled for the given \n      distance from this point along a geodesic given by an initial \n      bearing.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#destination2\" class=\"summary-sig-name\">destination2</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">distance</span>,\n        <span class=\"summary-sig-arg\">bearing</span>,\n        <span class=\"summary-sig-arg\">height</span>=<span class=\"summary-sig-default\">None</span>)</span><br />\n      Compute the destination point and the final bearing (reverse azimuth)\n      after having travelled for the given distance from this point along a\n      geodesic (line) given by an initial bearing at this point.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#distanceTo\" class=\"summary-sig-name\">distanceTo</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">**unused</span>)</span><br />\n      Compute the distance between this and an other point along a \n      geodesic.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#distanceTo3\" class=\"summary-sig-name\">distanceTo3</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Compute the distance, the initial and final bearing along a geodesic \n      between this and an other point, using this <code>Inverse</code> \n      method.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#finalBearingOn\" class=\"summary-sig-name\">finalBearingOn</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">distance</span>,\n        <span class=\"summary-sig-arg\">bearing</span>)</span><br />\n      Compute the final bearing (reverse azimuth) after having travelled \n      for the given distance along a geodesic given by an initial bearing \n      from this point.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#finalBearingTo\" class=\"summary-sig-name\">finalBearingTo</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Compute the final bearing (reverse azimuth) after having travelled \n      along a geodesic from this point to an other point.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#initialBearingTo\" class=\"summary-sig-name\">initialBearingTo</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Compute the initial bearing (forward azimuth) to travel along a \n      geodesic from this point to an other point.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#intermediateTo\" class=\"summary-sig-name\">intermediateTo</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>,\n        <span class=\"summary-sig-arg\">fraction</span>,\n        <span class=\"summary-sig-arg\">height</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Return the point at given fraction along the geodesic between this \n      and an other point.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#intersecant2\" class=\"summary-sig-name\">intersecant2</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">circle</span>,\n        <span class=\"summary-sig-arg\">start</span>,\n        <span class=\"summary-sig-arg\">end</span>,\n        <span class=\"summary-sig-arg\">exact</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">height</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">tol</span>=<span class=\"summary-sig-default\">1.4901161193847656e-08</span>)</span><br />\n      Compute the intersections of a circle and a geodesic (line) given as \n      two points or as a point and a bearing from North.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#nearestOn8\" class=\"summary-sig-name\">nearestOn8</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">closed</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">height</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">equidistant</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">tol</span>=<span class=\"summary-sig-default\">0.001</span>)</span><br />\n      <i>Iteratively</i> locate the point on a path or polygon closest to \n      this point.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#plumbTo\" class=\"summary-sig-name\">plumbTo</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">start</span>,\n        <span class=\"summary-sig-arg\">end</span>,\n        <span class=\"summary-sig-arg\">exact</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">height</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">tol</span>=<span class=\"summary-sig-default\">1.4901161193847656e-08</span>)</span><br />\n      Compute the intersection of a geodesic from this point \n      <i>perpendicular</i> to a geodesic (line) given as two points or as a\n      point and a bearing from North.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html\">ellipsoidalBase.LatLonEllipsoidalBase</a></code></b>:\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#__init__\">__init__</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#antipode\">antipode</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#convertDatum\">convertDatum</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#convertRefFrame\">convertRefFrame</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#distanceTo2\">distanceTo2</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#elevation2\">elevation2</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#ellipsoid\">ellipsoid</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#ellipsoids\">ellipsoids</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#geoidHeight2\">geoidHeight2</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#intersection3\">intersection3</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#intersections2\">intersections2</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#isenclosedBy\">isenclosedBy</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#midpointTo\">midpointTo</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#nearestOn\">nearestOn</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#parse\">parse</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#to3xyz\">to3xyz</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toCartesian\">toCartesian</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toCss\">toCss</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toDatum\">toDatum</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toEtm\">toEtm</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toLcc\">toLcc</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toMgrs\">toMgrs</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toOsgr\">toOsgr</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toRefFrame\">toRefFrame</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toTransform\">toTransform</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toUps\">toUps</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toUtm\">toUtm</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toUtmUps\">toUtmUps</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#triangulate\">triangulate</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#trilaterate5\">trilaterate5</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">latlonBase.LatLonBase</a></code></b>:\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#PointsIter\">PointsIter</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#__eq__\">__eq__</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#__ne__\">__ne__</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#bounds\">bounds</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#boundsOf\">boundsOf</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#chordTo\">chordTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#circin6\">circin6</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#circum3\">circum3</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#circum4_\">circum4_</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#compassAngle\">compassAngle</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#compassAngleTo\">compassAngleTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#cosineAndoyerLambertTo\">cosineAndoyerLambertTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#cosineForsytheAndoyerLambertTo\">cosineForsytheAndoyerLambertTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#cosineLawTo\">cosineLawTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#destinationXyz\">destinationXyz</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#equals\">equals</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#equals3\">equals3</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#equirectangularTo\">equirectangularTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#euclideanTo\">euclideanTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#flatLocalTo\">flatLocalTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#flatPolarTo\">flatPolarTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#hartzell\">hartzell</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#haversineTo\">haversineTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#height4\">height4</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#heightStr\">heightStr</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#hubenyTo\">hubenyTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isantipode\">isantipode</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isantipodeTo\">isantipodeTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isequalTo\">isequalTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isequalTo3\">isequalTo3</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#latlon2\">latlon2</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#latlon2round\">latlon2round</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#latlon_\">latlon_</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#nearestOn6\">nearestOn6</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#nearestTo\">nearestTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#normal\">normal</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#philam2\">philam2</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#points\">points</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#points2\">points2</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#radii11\">radii11</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#rhumbAzimuthTo\">rhumbAzimuthTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#rhumbDestination\">rhumbDestination</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#rhumbDistanceTo\">rhumbDistanceTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#rhumbIntersecant2\">rhumbIntersecant2</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#rhumbLine\">rhumbLine</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#rhumbMidpointTo\">rhumbMidpointTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#thomasTo\">thomasTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#to2ab\">to2ab</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#to3llh\">to3llh</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toEcef\">toEcef</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toNormal\">toNormal</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toNvector\">toNvector</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toVector\">toVector</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toVector3d\">toVector3d</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toWm\">toWm</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#vincentysTo\">vincentysTo</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#others\">others</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#toRepr\">toRepr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html\">ecefLocals._EcefLocal</a></code></b>:\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toAer\">toAer</a></code>,\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toEnu\">toEnu</a></code>,\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toLocal\">toLocal</a></code>,\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toLtp\">toLtp</a></code>,\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toNed\">toNed</a></code>,\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toXyz\">toXyz</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#geodesic\" class=\"summary-name\">geodesic</a><br />\n      N/A, invalid (<code>None</code> <i>always</i>).\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html\">ellipsoidalBase.LatLonEllipsoidalBase</a></code></b>:\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#Equidistant\">Equidistant</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#convergence\">convergence</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#datum\">datum</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#ellipsoidalLatLon\">ellipsoidalLatLon</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#epoch\">epoch</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#gamma\">gamma</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#reframe\">reframe</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#scale\">scale</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">latlonBase.LatLonBase</a></code></b>:\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#clipid\">clipid</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#height\">height</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isEllipsoidal\">isEllipsoidal</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isSpherical\">isSpherical</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isnormal\">isnormal</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#lam\">lam</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#lat\">lat</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#latlon\">latlon</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#latlonheight\">latlonheight</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#lon\">lon</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#phi\">phi</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#philam\">philam</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#philamheight\">philamheight</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#sphericalLatLon\">sphericalLatLon</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#xyz\">xyz</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#xyz3\">xyz3</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#xyzh\">xyzh</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html\">ecefLocals._EcefLocal</a></code></b>:\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#Ecef\">Ecef</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"bearingTo2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">bearingTo2</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the initial and final bearing (forward and reverse azimuth) \n  from this to an other point, using this <code>Inverse</code> method.  See\n  methods <a \n  href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#initialBearingTo\"\n  class=\"link\">initialBearingTo</a> and <a \n  href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#finalBearingTo\"\n  class=\"link\">finalBearingTo</a> for more details.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>other</code></strong> - The other point (this <code>LatLon</code>).</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll the \n          <b><code>other</code></b> point (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.namedTuples.Bearing2Tuple-class.html\" \n          class=\"link\">Bearing2Tuple</a><code>(initial, final)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - If <b><code>other</code></b> not this <code>LatLon</code> class.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - If this and the <b><code>other</code></b> point's <a \n        href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a> \n        ellipsoids are not compatible.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"destination\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">destination</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">distance</span>,\n        <span class=\"sig-arg\">bearing</span>,\n        <span class=\"sig-arg\">height</span>=<span class=\"sig-default\">None</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the destination point after having travelled for the given \n  distance from this point along a geodesic given by an initial bearing.  \n  See method <a \n  href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#destination2\"\n  class=\"link\">destination2</a> for further details.</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd>The destination point (<code>LatLon</code>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"destination2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">destination2</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">distance</span>,\n        <span class=\"sig-arg\">bearing</span>,\n        <span class=\"sig-arg\">height</span>=<span class=\"sig-default\">None</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the destination point and the final bearing (reverse azimuth) \n  after having travelled for the given distance from this point along a \n  geodesic (line) given by an initial bearing at this point.</p>\n  <p>The distance must be in the same units as this point's datum's \n  ellipsoid's axes, conventionally <code>meter</code>.  The distance is \n  measured on the surface of the ellipsoid, ignoring this point's \n  height.</p>\n  <p>The initial and final bearing (forward and reverse azimuth) are in \n  compass <code>degrees360</code>, clockwise from North.</p>\n  <p>The destination point's height and datum are set to this point's \n  height and datum, unless the former is overridden.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>distance</code></strong> - Distance (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>bearing</code></strong> - Initial bearing (compass <code>degrees360</code>).</li>\n        <li><strong class=\"pname\"><code>height</code></strong> - Optional height, overriding the default height \n          (<code>meter</code>, same units as <code>distance</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.namedTuples.Destination2Tuple-class.html\" \n          class=\"link\">Destination2Tuple</a><code>(destination, \n          final)</code>.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"distanceTo\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">distanceTo</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">**unused</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the distance between this and an other point along a geodesic.\n  See method <a \n  href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#distanceTo3\"\n  class=\"link\">distanceTo3</a> for more details.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>other</code></strong> - The other point (this <code>LatLon</code>).</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll the \n          <b><code>other</code></b> point (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Distance (<code>meter</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - If <b><code>other</code></b> not this <code>LatLon</code> class.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - This and the <b><code>other</code></b> point's <a \n        href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a> \n        ellipsoids are incompatible.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"distanceTo3\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">distanceTo3</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the distance, the initial and final bearing along a geodesic \n  between this and an other point, using this <code>Inverse</code> \n  method.</p>\n  <p>The distance is in the same units as this point's datum's ellipsoid's \n  axes, conventionally meter.  The distance is measured on the surface of \n  the ellipsoid, ignoring this point's height.</p>\n  <p>The initial and final bearing (forward and reverse azimuth) are in \n  compass <code>degrees360</code>, clockwise from North.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>other</code></strong> - Destination point (<code>LatLon</code>).</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll the \n          <b><code>other</code></b> point (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.namedTuples.Distance3Tuple-class.html\" \n          class=\"link\">Distance3Tuple</a><code>(distance, initial, \n          final)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - If <b><code>other</code></b> not this <code>LatLon</code> class.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - This and the <b><code>other</code></b> point's <a \n        href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a> \n        ellipsoids are not compatible.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"finalBearingOn\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">finalBearingOn</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">distance</span>,\n        <span class=\"sig-arg\">bearing</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the final bearing (reverse azimuth) after having travelled for\n  the given distance along a geodesic given by an initial bearing from this\n  point.  See method <a \n  href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#destination2\"\n  class=\"link\">destination2</a> for more details.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>distance</code></strong> - Distance (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>bearing</code></strong> - Initial bearing (compass <code>degrees360</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Final bearing (compass <code>degrees360</code>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"finalBearingTo\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">finalBearingTo</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the final bearing (reverse azimuth) after having travelled \n  along a geodesic from this point to an other point.  See method <a \n  href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#distanceTo3\"\n  class=\"link\">distanceTo3</a> for more details.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>other</code></strong> - The other point (<code>LatLon</code>).</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll the \n          <b><code>other</code></b> point (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Final bearing (compass <code>degrees360</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - If <b><code>other</code></b> not this <code>LatLon</code> class.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - This and the <b><code>other</code></b> point's <a \n        href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a> \n        ellipsoids are incompatible.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"initialBearingTo\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">initialBearingTo</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the initial bearing (forward azimuth) to travel along a \n  geodesic from this point to an other point.  See method <a \n  href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#distanceTo3\"\n  class=\"link\">distanceTo3</a> for more details.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>other</code></strong> - The other point (this <code>LatLon</code>).</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll the \n          <b><code>other</code></b> point (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Initial bearing (compass <code>degrees360</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - If <b><code>other</code></b> not this <code>LatLon</code> class.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - If this and the <b><code>other</code></b> point's <a \n        href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a> \n        ellipsoids are incompatible.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"intermediateTo\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">intermediateTo</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>,\n        <span class=\"sig-arg\">fraction</span>,\n        <span class=\"sig-arg\">height</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the point at given fraction along the geodesic between this and\n  an other point.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>other</code></strong> - The other point (this <code>LatLon</code>).</li>\n        <li><strong class=\"pname\"><code>fraction</code></strong> - Fraction between both points (<code>scalar</code>, 0.0 at this \n          and 1.0 at the other point.</li>\n        <li><strong class=\"pname\"><code>height</code></strong> - Optional height, overriding the fractional height \n          (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll the \n          <b><code>other</code></b> point (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Intermediate point (<code>LatLon</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - If <b><code>other</code></b> not this <code>LatLon</code> class.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.UnitError-class.html\">UnitError</a></strong></code> - Invalid <b><code>fraction</code></b> or <b><code>height</code></b>.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - This and the <b><code>other</code></b> point's <a \n        href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a> \n        ellipsoids are incompatible.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#intermediateTo\">ellipsoidalBase.LatLonEllipsoidalBase.intermediateTo</a>\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Methods <a \n        href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#distanceTo3\"\n        class=\"link\">distanceTo3</a>, <a \n        href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#destination\"\n        class=\"link\">destination</a>, <code>midpointTo</code> and \n        <code>rhumbMidpointTo</code>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"intersecant2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">intersecant2</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">circle</span>,\n        <span class=\"sig-arg\">start</span>,\n        <span class=\"sig-arg\">end</span>,\n        <span class=\"sig-arg\">exact</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">height</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">tol</span>=<span class=\"sig-default\">1.4901161193847656e-08</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the intersections of a circle and a geodesic (line) given as \n  two points or as a point and a bearing from North.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>circle</code></strong> - Radius of the circle centered at this location \n          (<code>meter</code>, conventionally) or a point on the circle \n          (this <code>LatLon</code>).</li>\n        <li><strong class=\"pname\"><code>start</code></strong> - Start point of the geodesic (line) (this <code>LatLon</code>).</li>\n        <li><strong class=\"pname\"><code>end</code></strong> - End point of the geodesic (line) (this <code>LatLon</code>) or \n          the initial bearing at the <b><code>start</code></b> point \n          (compass <code>degrees360</code>).</li>\n        <li><strong class=\"pname\"><code>exact</code></strong> - Exact <code>geodesic...</code> to use (<code>bool</code> or \n          <code>Geodesic...</code>), see method <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#geodesic_\" \n          class=\"link\">geodesic_</a>.</li>\n        <li><strong class=\"pname\"><code>height</code></strong> - Optional height for the intersection points (<code>meter</code>, \n          conventionally) or <code>None</code> for interpolated heights.</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll the \n          <b><code>circle</code></b>, <b><code>start</code></b> and/or \n          <b><code>end</code></b> (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>tol</code></strong> - Convergence tolerance (<code>scalar</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>2-Tuple of the intersection points (representing a geodesic \n          chord), each an instance of this <code>LatLon</code> class.  Both\n          points are the same instance if the geodesic (line) is tangential\n          to the circle.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.IntersectionError-class.html\">IntersectionError</a></strong></code> - The circle and geodesic do not intersect.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>circle</code></b>, <b><code>start</code></b> or \n        <b><code>end</code></b>.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.UnitError-class.html\">UnitError</a></strong></code> - Invalid <b><code>circle</code></b>, <b><code>end</code></b>, \n        <b><code>exact</code></b> or <b><code>height</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.latlonBase.LatLonBase-class.html#intersecant2\">latlonBase.LatLonBase.intersecant2</a>\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <a \n        href=\"pygeodesy.latlonBase.LatLonBase-class.html#rhumbIntersecant2\"\n        class=\"link\">rhumbIntersecant2</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"nearestOn8\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">nearestOn8</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">closed</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">height</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">equidistant</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">tol</span>=<span class=\"sig-default\">0.001</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p><i>Iteratively</i> locate the point on a path or polygon closest to \n  this point.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>points</code></strong> - The path or polygon points (<code>LatLon</code>[]).</li>\n        <li><strong class=\"pname\"><code>closed</code></strong> - Optionally, close the polygon (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>height</code></strong> - Optional height, overriding the height of this and all other \n          points (<code>meter</code>, conventionally).  If \n          <code><b>height</b> is None</code>, each point's height is taken \n          into account to compute distances.</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll the \n          <b><code>points</code></b> (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>equidistant</code></strong> - An azimuthal equidistant projection (<i>class</i> or function <a \n          href=\"pygeodesy.azimuthal-module.html#equidistant\" \n          class=\"link\">pygeodesy.equidistant</a>) or <code>None</code> for \n          the preferred <a \n          href=\"pygeodesy.azimuthal.Equidistant-class.html\" \n          class=\"link\">Equidistant</a>.</li>\n        <li><strong class=\"pname\"><code>tol</code></strong> - Convergence tolerance (<code>meter</code>, conventionally).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.namedTuples.NearestOn8Tuple-class.html\" \n          class=\"link\">NearestOn8Tuple</a><code>(closest, distance, fi, j, \n          start, end, initial, final)</code> with <code>distance</code> in \n          <code>meter</code>, conventionally and with the \n          <code>closest</code>, the <code>start</code> the <code>end</code>\n          point each an instance of this <code>LatLon</code> class.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.PointsError-class.html\">PointsError</a></strong></code> - Insufficient number of <b><code>points</code></b>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Some <b><code>points</code></b> or <b><code>equidistant</code></b> \n        invalid.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Some <b><code>points</code></b>' datum or ellipsoid incompatible or\n        no convergence for the given <b><code>tol</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.vector3d-module.html#nearestOn6\" \n        class=\"link\">pygeodesy.nearestOn6</a> and method \n        <code>nearestOn6</code>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"plumbTo\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">plumbTo</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">start</span>,\n        <span class=\"sig-arg\">end</span>,\n        <span class=\"sig-arg\">exact</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">height</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">tol</span>=<span class=\"sig-default\">1.4901161193847656e-08</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the intersection of a geodesic from this point \n  <i>perpendicular</i> to a geodesic (line) given as two points or as a \n  point and a bearing from North.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>start</code></strong> - Start point of the geodesic (line) (this <code>LatLon</code>).</li>\n        <li><strong class=\"pname\"><code>end</code></strong> - End point of the geodesic (line) (this <code>LatLon</code>) or \n          the initial bearing at the <b><code>start</code></b> point \n          (compass <code>degrees360</code>).</li>\n        <li><strong class=\"pname\"><code>exact</code></strong> - Exact <code>geodesic...</code> to use (<code>bool</code> or \n          <code>Geodesic...</code>), see method <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#geodesic_\" \n          class=\"link\">Ellipsoid.geodesic_</a>.</li>\n        <li><strong class=\"pname\"><code>height</code></strong> - Optional height for the intersection point (<code>meter</code>, \n          conventionally) or <code>None</code> for an interpolated height.</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll the \n          <b><code>start</code></b> and/or <b><code>end</code></b> point \n          (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>tol</code></strong> - Convergence tolerance (<code>meter</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The intersection point, an instance of this <code>LatLon</code> \n          class.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - If <b><code>start</code></b> or <b><code>end</code></b> not this \n        <code>LatLon</code> class.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.UnitError-class.html\">UnitError</a></strong></code> - Invalid <b><code>end</code></b>, <b><code>exact</code></b> or \n        <b><code>height</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"geodesic\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">geodesic</h3>\n  <p>N/A, invalid (<code>None</code> <i>always</i>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">geodesic(<span class=\"summary-sig-arg\">self</span>)</span>\n        - N/A, invalid (<code>None</code> <i>always</i>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.ellipsoidalExact-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.ellipsoidalExact</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        Module&nbsp;ellipsoidalExact\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.ellipsoidalExact-module.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== MODULE DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Module ellipsoidalExact</h1><p class=\"nomargin-top\"></p>\n<p>Exact ellipsoidal geodesy using <i>Karney</i>'s Exact Geodesic.</p>\n  <p>Ellipsoidal geodetic (lat-/longitude) <a \n  href=\"pygeodesy.ellipsoidalExact.LatLon-class.html\" \n  class=\"link\">LatLon</a> and geocentric (ECEF) <a \n  href=\"pygeodesy.ellipsoidalExact.Cartesian-class.html\" \n  class=\"link\">Cartesian</a> classes and functions <a \n  href=\"pygeodesy.ellipsoidalExact-module.html#areaOf\" \n  class=\"link\">areaOf</a>, <a \n  href=\"pygeodesy.ellipsoidalExact-module.html#intersections2\" \n  class=\"link\">intersections2</a>, <a \n  href=\"pygeodesy.ellipsoidalExact-module.html#isclockwise\" \n  class=\"link\">isclockwise</a>, <a \n  href=\"pygeodesy.ellipsoidalExact-module.html#nearestOn\" \n  class=\"link\">nearestOn</a> and <a \n  href=\"pygeodesy.ellipsoidalExact-module.html#perimeterOf\" \n  class=\"link\">perimeterOf</a> based on classes <a \n  href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html\" \n  class=\"link\">GeodesicExact</a>, <a \n  href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html\" \n  class=\"link\">GeodesicAreaExact</a> and <a \n  href=\"pygeodesy.geodesicx.gx.GeodesicLineExact-class.html\" \n  class=\"link\">GeodesicLineExact</a>.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Version:</strong>\n        25.08.28\n      </p>\n</div><!-- ==================== CLASSES ==================== -->\n<a name=\"section-Classes\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Classes</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoidalExact.Cartesian-class.html\" class=\"summary-name\">Cartesian</a><br />\n      Extended to convert exact <a \n        href=\"pygeodesy.ellipsoidalExact.Cartesian-class.html\" \n        class=\"link\">Cartesian</a> to exact <a \n        href=\"pygeodesy.ellipsoidalExact.LatLon-class.html\" \n        class=\"link\">LatLon</a> points.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoidalExact.LatLon-class.html\" class=\"summary-name\">LatLon</a><br />\n      An ellipsoidal <a \n        href=\"pygeodesy.ellipsoidalExact.LatLon-class.html\" \n        class=\"link\">LatLon</a> like <a \n        href=\"pygeodesy.ellipsoidalKarney.LatLon-class.html\" \n        class=\"link\">ellipsoidalKarney.LatLon</a> but using exact geodesic \n        classes <a href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html\" \n        class=\"link\">GeodesicExact</a> and <a \n        href=\"pygeodesy.geodesicx.gx.GeodesicLineExact-class.html\" \n        class=\"link\">GeodesicLineExact</a> to compute geodesic distances, \n        bearings (azimuths), etc.\n    </td>\n  </tr>\n</table>\n<!-- ==================== FUNCTIONS ==================== -->\n<a name=\"section-Functions\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Functions</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoidalExact-module.html#intersecant2\" class=\"summary-sig-name\">intersecant2</a>(<span class=\"summary-sig-arg\">center</span>,\n        <span class=\"summary-sig-arg\">circle</span>,\n        <span class=\"summary-sig-arg\">point</span>,\n        <span class=\"summary-sig-arg\">other</span>,\n        <span class=\"summary-sig-arg\">**exact_height_wrap_tol</span>)</span><br />\n      Compute the intersections of a circle and a geodesic given as two \n      points or as a point and (forward) bearing.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoidalExact-module.html#ispolar\" class=\"summary-sig-name\">ispolar</a>(<span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Check whether a polygon encloses a pole.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoidalExact-module.html#areaOf\" class=\"summary-sig-name\">areaOf</a>(<span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">datum</span>=<span class=\"summary-sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">polar</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Compute the area of an (ellipsoidal) polygon or composite.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoidalExact-module.html#intersection3\" class=\"summary-sig-name\">intersection3</a>(<span class=\"summary-sig-arg\">start1</span>,\n        <span class=\"summary-sig-arg\">end1</span>,\n        <span class=\"summary-sig-arg\">start2</span>,\n        <span class=\"summary-sig-arg\">end2</span>,\n        <span class=\"summary-sig-arg\">height</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">equidistant</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">tol</span>=<span class=\"summary-sig-default\">0.001</span>,\n        <span class=\"summary-sig-arg\">**LatLon_and_kwds</span>)</span><br />\n      <i>Iteratively</i> compute the intersection point of two geodesic \n      lines, each given as two points or as an start point and a bearing \n      from North.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoidalExact-module.html#intersections2\" class=\"summary-sig-name\">intersections2</a>(<span class=\"summary-sig-arg\">center1</span>,\n        <span class=\"summary-sig-arg\">radius1</span>,\n        <span class=\"summary-sig-arg\">center2</span>,\n        <span class=\"summary-sig-arg\">radius2</span>,\n        <span class=\"summary-sig-arg\">height</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">equidistant</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">tol</span>=<span class=\"summary-sig-default\">0.001</span>,\n        <span class=\"summary-sig-arg\">**LatLon_and_kwds</span>)</span><br />\n      <i>Iteratively</i> compute the intersection points of two circles, \n      each defined by an (ellipsoidal) center point and a radius.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoidalExact-module.html#isclockwise\" class=\"summary-sig-name\">isclockwise</a>(<span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">datum</span>=<span class=\"summary-sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">polar</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Determine the direction of a path or polygon.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoidalExact-module.html#nearestOn\" class=\"summary-sig-name\">nearestOn</a>(<span class=\"summary-sig-arg\">point</span>,\n        <span class=\"summary-sig-arg\">point1</span>,\n        <span class=\"summary-sig-arg\">point2</span>,\n        <span class=\"summary-sig-arg\">within</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">height</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">equidistant</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">tol</span>=<span class=\"summary-sig-default\">0.001</span>,\n        <span class=\"summary-sig-arg\">**LatLon_and_kwds</span>)</span><br />\n      <i>Iteratively</i> locate the closest point on the geodesic (line) \n      between two other (ellipsoidal) points.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoidalExact-module.html#perimeterOf\" class=\"summary-sig-name\">perimeterOf</a>(<span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">closed</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">datum</span>=<span class=\"summary-sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">True</span>)</span><br />\n      Compute the perimeter of an (ellipsoidal) polygon or composite.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== VARIABLES ==================== -->\n<a name=\"section-Variables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Variables</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"__all__\"></a><span class=\"summary-name\">__all__</span> = <code title=\"_ALL_LAZY.ellipsoidalExact\">_ALL_LAZY.ellipsoidalExact</code>\n    </td>\n  </tr>\n</table>\n<!-- ==================== FUNCTION DETAILS ==================== -->\n<a name=\"section-FunctionDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Function Details</span></td>\n</tr>\n</table>\n<a name=\"intersecant2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">intersecant2</span>&nbsp;(<span class=\"sig-arg\">center</span>,\n        <span class=\"sig-arg\">circle</span>,\n        <span class=\"sig-arg\">point</span>,\n        <span class=\"sig-arg\">other</span>,\n        <span class=\"sig-arg\">**exact_height_wrap_tol</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the intersections of a circle and a geodesic given as two \n  points or as a point and (forward) bearing.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>center</code></strong> - Center of the circle (<code>LatLon</code>).</li>\n        <li><strong class=\"pname\"><code>circle</code></strong> - Radius of the circle (<code>meter</code>, conventionally) or a \n          point on the circle (<code>LatLon</code>, as \n          <b><code>center</code></b>).</li>\n        <li><strong class=\"pname\"><code>point</code></strong> - A point of the geodesic (<code>LatLon</code>, as \n          <b><code>center</code></b>).</li>\n        <li><strong class=\"pname\"><code>other</code></strong> - An other point of the geodesic (<code>LatLon</code>, as \n          <b><code>center</code></b>) or the (forward) bearing at the \n          <b><code>point</code></b> (compass <code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>exact_height_wrap_tol</code></strong> - Optional keyword arguments <code><b>exact</b>=False</code>, \n          <code><b>height</b>=None</code>, <code><b>wrap</b>=False</code> \n          and <code><b>tol</b></code>, see method <a \n          href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#intersecant2\"\n          class=\"link\">intersecant2</a>.</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>NotImplementedError</strong></code> - Method <code>intersecant2</code> not available.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - If <b><code>center</code></b>, <b><code>point</code></b> or \n        <b><code>circle</code></b> or <b><code>other</code></b> points not \n        ellipsoidal or not compatible with <b><code>center</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <code>LatLon.intersecant2</code> of class <a \n        href=\"pygeodesy.ellipsoidalExact.LatLon-class.html\" \n        class=\"link\">ellipsoidalExact.LatLon</a>, <a \n        href=\"pygeodesy.ellipsoidalKarney.LatLon-class.html\" \n        class=\"link\">ellipsoidalKarney.LatLon</a> or <a \n        href=\"pygeodesy.ellipsoidalVincenty.LatLon-class.html\" \n        class=\"link\">ellipsoidalVincenty.LatLon</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"ispolar\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">ispolar</span>&nbsp;(<span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Check whether a polygon encloses a pole.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>points</code></strong> - The polygon points (<code>LatLon</code>[]).</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll the \n          <b><code>points</code></b> (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>True</code> if the polygon encloses a pole, \n          <code>False</code> otherwise.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.PointsError-class.html\">PointsError</a></strong></code> - Insufficient number of <b><code>points</code></b></li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Some <b><code>points</code></b> are not <code>LatLon</code> or \n        don't have <code>bearingTo2</code>, <code>initialBearingTo</code> \n        and <code>finalBearingTo</code> methods.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"areaOf\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">areaOf</span>&nbsp;(<span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">datum</span>=<span class=\"sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">polar</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the area of an (ellipsoidal) polygon or composite.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>points</code></strong> - The polygon points (<a \n          href=\"pygeodesy.ellipsoidalExact.LatLon-class.html\" \n          class=\"link\">LatLon</a>[], <a \n          href=\"pygeodesy.booleans.BooleanFHP-class.html\" \n          class=\"link\">BooleanFHP</a> or <a \n          href=\"pygeodesy.booleans.BooleanGH-class.html\" \n          class=\"link\">BooleanGH</a>).</li>\n        <li><strong class=\"pname\"><code>datum</code></strong> - Optional datum (<a href=\"pygeodesy.datums.Datum-class.html\" \n          class=\"link\">Datum</a>).</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll the \n          <b><code>points</code></b> (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>polar</code></strong> - Use <code><b>polar</b>=True</code> if the polygon encloses a pole\n          (<code>bool</code>), see function <a \n          href=\"pygeodesy.points-module.html#ispolar\" \n          class=\"link\">ispolar</a> and <a \n          href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1GeodesicExact.html#a3d7a9155e838a09a48dc14d0c3fac525\"\n          target=\"_top\">area of a polygon enclosing a pole</a>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Area (<code>meter</code> <i>squared</i>, same units as the \n          <b><code>datum</code></b>'s ellipsoid axes).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.PointsError-class.html\">PointsError</a></strong></code> - Insufficient number of <b><code>points</code></b>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Some <b><code>points</code></b> are not <a \n        href=\"pygeodesy.ellipsoidalExact.LatLon-class.html\" \n        class=\"link\">LatLon</a>.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <code><b>wrap</b>=False</code>, unwrapped, unrolled \n        longitudes not supported.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Functions <a href=\"pygeodesy.points-module.html#areaOf\" \n        class=\"link\">pygeodesy.areaOf</a>, <a \n        href=\"pygeodesy.ellipsoidalGeodSolve-module.html#areaOf\" \n        class=\"link\">ellipsoidalGeodSolve.areaOf</a>, <a \n        href=\"pygeodesy.ellipsoidalKarney-module.html#areaOf\" \n        class=\"link\">ellipsoidalKarney.areaOf</a>, <a \n        href=\"pygeodesy.sphericalNvector-module.html#areaOf\" \n        class=\"link\">sphericalNvector.areaOf</a> and <a \n        href=\"pygeodesy.sphericalTrigonometry-module.html#areaOf\" \n        class=\"link\">sphericalTrigonometry.areaOf</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"intersection3\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">intersection3</span>&nbsp;(<span class=\"sig-arg\">start1</span>,\n        <span class=\"sig-arg\">end1</span>,\n        <span class=\"sig-arg\">start2</span>,\n        <span class=\"sig-arg\">end2</span>,\n        <span class=\"sig-arg\">height</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">equidistant</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">tol</span>=<span class=\"sig-default\">0.001</span>,\n        <span class=\"sig-arg\">**LatLon_and_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p><i>Iteratively</i> compute the intersection point of two geodesic \n  lines, each given as two points or as an start point and a bearing from \n  North.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>start1</code></strong> - Start point of the first line (<a \n          href=\"pygeodesy.ellipsoidalExact.LatLon-class.html\" \n          class=\"link\">LatLon</a>).</li>\n        <li><strong class=\"pname\"><code>end1</code></strong> - End point of the first line (<a \n          href=\"pygeodesy.ellipsoidalExact.LatLon-class.html\" \n          class=\"link\">LatLon</a>) or the initial bearing at \n          <b><code>start1</code></b> (compass <code>degrees360</code>).</li>\n        <li><strong class=\"pname\"><code>start2</code></strong> - Start point of the second line (<a \n          href=\"pygeodesy.ellipsoidalExact.LatLon-class.html\" \n          class=\"link\">LatLon</a>).</li>\n        <li><strong class=\"pname\"><code>end2</code></strong> - End point of the second line (<a \n          href=\"pygeodesy.ellipsoidalExact.LatLon-class.html\" \n          class=\"link\">LatLon</a>) or the initial bearing at \n          <b><code>start2</code></b> (compass <code>degrees360</code>).</li>\n        <li><strong class=\"pname\"><code>height</code></strong> - Optional height at the intersection (<code>meter</code>, \n          conventionally) or <code>None</code> for the mean height.</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll \n          <b><code>start2</code></b> and both <b><code>end*</code></b> \n          points (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>equidistant</code></strong> - An azimuthal equidistant projection (<i>class</i> or function <a \n          href=\"pygeodesy.azimuthal-module.html#equidistant\" \n          class=\"link\">pygeodesy.equidistant</a>) or <code>None</code> for \n          the preferred <code><b>start1</b>.Equidistant</code>.</li>\n        <li><strong class=\"pname\"><code>tol</code></strong> - Tolerance for convergence and for skew line distance and length \n          (<code>meter</code>, conventionally).</li>\n        <li><strong class=\"pname\"><code>LatLon_and_kwds</code></strong> - Optional class <code><b>LatLon</b>=</code><a \n          href=\"pygeodesy.ellipsoidalExact.LatLon-class.html\" \n          class=\"link\">LatLon</a> to return the intersection points and \n          optionally, additional <b><code>LatLon</code></b> keyword \n          arguments, ignored if <code><b>LatLon</b>=None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>An <a href=\"pygeodesy.namedTuples.Intersection3Tuple-class.html\" \n          class=\"link\">Intersection3Tuple</a><code>(point, outside1, \n          outside2)</code> with <code>point</code> a \n          <b><code>LatLon</code></b> or if <code><b>LatLon</b> is \n          None</code>, a <a \n          href=\"pygeodesy.namedTuples.LatLon4Tuple-class.html\" \n          class=\"link\">LatLon4Tuple</a><code>(lat, lon, height, \n          datum)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.IntersectionError-class.html\">IntersectionError</a></strong></code> - Skew, colinear, parallel or otherwise non-intersecting lines or no \n        convergence for the given <b><code>tol</code></b>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid or non-ellipsoidal <b><code>start1</code></b>, \n        <b><code>end1</code></b>, <b><code>start2</code></b> or \n        <b><code>end2</code></b> or invalid \n        <b><code>equidistant</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        For each line specified with an initial bearing, a pseudo-end point\n        is computed as the <code>destination</code> along that bearing at \n        about 1.5 times the distance from the start point to an initial \n        gu-/estimate of the intersection point (and between 1/8 and 3/8 of \n        the authalic earth perimeter).\n      </p>\n      <p><strong>See Also:</strong>\n        <a \n        href=\"https://GIS.StackExchange.com/questions/48937/calculating-intersection-of-two-circles\"\n        target=\"_top\">The <b>ellipsoidal</b> case</a> and <a \n        href=\"https://ArXiv.org/pdf/1102.1215.pdf\" target=\"_top\">Karney's \n        paper</a>, pp 20-21, section <b>14. MARITIME BOUNDARIES</b> for \n        more details about the iteration algorithm.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"intersections2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">intersections2</span>&nbsp;(<span class=\"sig-arg\">center1</span>,\n        <span class=\"sig-arg\">radius1</span>,\n        <span class=\"sig-arg\">center2</span>,\n        <span class=\"sig-arg\">radius2</span>,\n        <span class=\"sig-arg\">height</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">equidistant</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">tol</span>=<span class=\"sig-default\">0.001</span>,\n        <span class=\"sig-arg\">**LatLon_and_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p><i>Iteratively</i> compute the intersection points of two circles, \n  each defined by an (ellipsoidal) center point and a radius.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>center1</code></strong> - Center of the first circle (<a \n          href=\"pygeodesy.ellipsoidalExact.LatLon-class.html\" \n          class=\"link\">LatLon</a>).</li>\n        <li><strong class=\"pname\"><code>radius1</code></strong> - Radius of the first circle (<code>meter</code>, conventionally).</li>\n        <li><strong class=\"pname\"><code>center2</code></strong> - Center of the second circle (<a \n          href=\"pygeodesy.ellipsoidalExact.LatLon-class.html\" \n          class=\"link\">LatLon</a>).</li>\n        <li><strong class=\"pname\"><code>radius2</code></strong> - Radius of the second circle (<code>meter</code>, same units as \n          <b><code>radius1</code></b>).</li>\n        <li><strong class=\"pname\"><code>height</code></strong> - Optional height for the intersection points (<code>meter</code>, \n          conventionally) or <code>None</code> for the <i>&quot;radical \n          height&quot;</i> at the <i>radical line</i> between both centers.</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll \n          <b><code>center2</code></b> (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>equidistant</code></strong> - An azimuthal equidistant projection (<i>class</i> or function <a \n          href=\"pygeodesy.azimuthal-module.html#equidistant\" \n          class=\"link\">pygeodesy.equidistant</a>) or <code>None</code> for \n          the preferred <code><b>center1</b>.Equidistant</code>.</li>\n        <li><strong class=\"pname\"><code>tol</code></strong> - Convergence tolerance (<code>meter</code>, same units as \n          <b><code>radius1</code></b> and <b><code>radius2</code></b>).</li>\n        <li><strong class=\"pname\"><code>LatLon_and_kwds</code></strong> - Optional class <code><b>LatLon</b>=</code><a \n          href=\"pygeodesy.ellipsoidalExact.LatLon-class.html\" \n          class=\"link\">LatLon</a> to return the intersection points and \n          optionally, additional <b><code>LatLon</code></b> keyword \n          arguments, ignored if <code><b>LatLon</b>=None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>2-Tuple of the intersection points, each a \n          <b><code>LatLon</code></b> instance or <a \n          href=\"pygeodesy.namedTuples.LatLon4Tuple-class.html\" \n          class=\"link\">LatLon4Tuple</a><code>(lat, lon, height, \n          datum)</code> if <code><b>LatLon</b> is None</code>.  For \n          abutting circles, both points are the same instance, aka the \n          <i>radical center</i>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.IntersectionError-class.html\">IntersectionError</a></strong></code> - Concentric, antipodal, invalid or non-intersecting circles or no \n        convergence for the <b><code>tol</code></b>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid or non-ellipsoidal <b><code>center1</code></b> or \n        <b><code>center2</code></b> or invalid \n        <b><code>equidistant</code></b>.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.UnitError-class.html\">UnitError</a></strong></code> - Invalid <b><code>radius1</code></b>, <b><code>radius2</code></b> or\n        <b><code>height</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a \n        href=\"https://GIS.StackExchange.com/questions/48937/calculating-intersection-of-two-circles\"\n        target=\"_top\">The <b>ellipsoidal</b> case</a>, <a \n        href=\"https://ArXiv.org/pdf/1102.1215.pdf\" target=\"_top\">Karney's \n        paper</a>, pp 20-21, section <b>14. MARITIME BOUNDARIES</b>, <a \n        href=\"https://MathWorld.Wolfram.com/Circle-CircleIntersection.html\"\n        target=\"_top\">circle-circle</a> and <a \n        href=\"https://MathWorld.Wolfram.com/Sphere-SphereIntersection.html\"\n        target=\"_top\">sphere-sphere</a> intersections.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"isclockwise\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">isclockwise</span>&nbsp;(<span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">datum</span>=<span class=\"sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">polar</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Determine the direction of a path or polygon.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>points</code></strong> - The path or polygon points (<code>LatLon</code>[]).</li>\n        <li><strong class=\"pname\"><code>datum</code></strong> - Optional datum (<a href=\"pygeodesy.datums.Datum-class.html\" \n          class=\"link\">Datum</a>).</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll the \n          <b><code>points</code></b> (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>polar</code></strong> - Use <code><b>polar</b>=True</code> if the \n          <code><b>points</b></code> enclose a pole (<code>bool</code>), \n          see function <a href=\"https://pygeodeys.points.ispolar\" \n          target=\"_top\">ispolar</a>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>True</code> if <b><code>points</code></b> are clockwise, \n          <code>False</code> otherwise.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.PointsError-class.html\">PointsError</a></strong></code> - Insufficient number of <b><code>points</code></b>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Some <b><code>points</code></b> are not <code>LatLon</code>.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - The <b><code>points</code></b> enclose a pole or zero area.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"pygeodesy.points-module.html#isclockwise\" \n        class=\"link\">pygeodesy.isclockwise</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"nearestOn\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">nearestOn</span>&nbsp;(<span class=\"sig-arg\">point</span>,\n        <span class=\"sig-arg\">point1</span>,\n        <span class=\"sig-arg\">point2</span>,\n        <span class=\"sig-arg\">within</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">height</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">equidistant</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">tol</span>=<span class=\"sig-default\">0.001</span>,\n        <span class=\"sig-arg\">**LatLon_and_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p><i>Iteratively</i> locate the closest point on the geodesic (line) \n  between two other (ellipsoidal) points.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>point</code></strong> - Reference point (<code>LatLon</code>).</li>\n        <li><strong class=\"pname\"><code>point1</code></strong> - Start point of the geodesic (<code>LatLon</code>).</li>\n        <li><strong class=\"pname\"><code>point2</code></strong> - End point of the geodesic (<code>LatLon</code>).</li>\n        <li><strong class=\"pname\"><code>within</code></strong> - If <code>True</code>, return the closest point <i>between</i> \n          <b><code>point1</code></b> and <b><code>point2</code></b>, \n          otherwise the closest point elsewhere on the geodesic \n          (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>height</code></strong> - Optional height for the closest point (<code>meter</code>, \n          conventionally) or <code>None</code> or <code>False</code> for \n          the interpolated height.  If <code>False</code>, the closest \n          takes the heights of the points into account.</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll both \n          <b><code>point1</code></b> and <b><code>point2</code></b> \n          (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>equidistant</code></strong> - An azimuthal equidistant projection (<i>class</i> or function <a \n          href=\"pygeodesy.azimuthal-module.html#equidistant\" \n          class=\"link\">pygeodesy.equidistant</a>) or <code>None</code> for \n          the preferred <code><b>point</b>.Equidistant</code>.</li>\n        <li><strong class=\"pname\"><code>tol</code></strong> - Convergence tolerance (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>LatLon_and_kwds</code></strong> - Optional class <code><b>LatLon</b>=</code><a \n          href=\"pygeodesy.ellipsoidalExact.LatLon-class.html\" \n          class=\"link\">LatLon</a> to return the closest point and \n          optionally, additional <b><code>LatLon</code></b> keyword \n          arguments, ignored if <code><b>LatLon</b>=None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Closest point, a <b><code>LatLon</code></b> instance or if \n          <code><b>LatLon</b> is None</code>, a <a \n          href=\"pygeodesy.namedTuples.LatLon4Tuple-class.html\" \n          class=\"link\">LatLon4Tuple</a><code>(lat, lon, height, \n          datum)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid or non-ellipsoidal <b><code>point</code></b>, \n        <b><code>point1</code></b> or <b><code>point2</code></b> or invalid\n        <b><code>equidistant</code></b>.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - No convergence for the <b><code>tol</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a \n        href=\"https://GIS.StackExchange.com/questions/48937/calculating-intersection-of-two-circles\"\n        target=\"_top\">The <b>ellipsoidal</b> case</a> and <a \n        href=\"https://ArXiv.org/pdf/1102.1215.pdf\" target=\"_top\">Karney's \n        paper</a>, pp 20-21, section <b>14. MARITIME BOUNDARIES</b> for \n        more details about the iteration algorithm.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"perimeterOf\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">perimeterOf</span>&nbsp;(<span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">closed</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">datum</span>=<span class=\"sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">True</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the perimeter of an (ellipsoidal) polygon or composite.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>points</code></strong> - The polygon points (<a \n          href=\"pygeodesy.ellipsoidalExact.LatLon-class.html\" \n          class=\"link\">LatLon</a>[], <a \n          href=\"pygeodesy.booleans.BooleanFHP-class.html\" \n          class=\"link\">BooleanFHP</a> or <a \n          href=\"pygeodesy.booleans.BooleanGH-class.html\" \n          class=\"link\">BooleanGH</a>).</li>\n        <li><strong class=\"pname\"><code>closed</code></strong> - Optionally, close the polygon (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>datum</code></strong> - Optional datum (<a href=\"pygeodesy.datums.Datum-class.html\" \n          class=\"link\">Datum</a>).</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll the \n          <b><code>points</code></b> (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Perimeter (<code>meter</code>, same units as the \n          <b><code>datum</code></b>'s ellipsoid axes).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.PointsError-class.html\">PointsError</a></strong></code> - Insufficient number of <b><code>points</code></b>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Some <b><code>points</code></b> are not <a \n        href=\"pygeodesy.ellipsoidalExact.LatLon-class.html\" \n        class=\"link\">LatLon</a>.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <code><b>wrap</b>=False</code>, unwrapped, unrolled \n        longitudes not supported or <code><b>closed</b>=False</code> with \n        <code><b>points</b></code> a composite.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Functions <a href=\"pygeodesy.points-module.html#perimeterOf\" \n        class=\"link\">pygeodesy.perimeterOf</a>, <a \n        href=\"pygeodesy.ellipsoidalGeodSolve-module.html#perimeterOf\" \n        class=\"link\">ellipsoidalGeodSolve.perimeterOf</a>, <a \n        href=\"pygeodesy.ellipsoidalKarney-module.html#perimeterOf\" \n        class=\"link\">ellipsoidalKarney.perimeterOf</a>, <a \n        href=\"pygeodesy.sphericalNvector-module.html#perimeterOf\" \n        class=\"link\">sphericalNvector.perimeterOf</a> and <a \n        href=\"pygeodesy.sphericalTrigonometry-module.html#perimeterOf\" \n        class=\"link\">sphericalTrigonometry.perimeterOf</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.ellipsoidalExact.Cartesian-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.ellipsoidalExact.Cartesian</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.ellipsoidalExact-module.html\">Module&nbsp;ellipsoidalExact</a> ::\n        Class&nbsp;Cartesian\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.ellipsoidalExact.Cartesian-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Cartesian</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n          object --+                        \n                   |                        \n        <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+                    \n                       |                    \n        <a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+                \n                           |                \n   <a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">vector3dBase.Vector3dBase</a> --+            \n                               |            \n               <a href=\"pygeodesy.vector3d.Vector3d-class.html\">vector3d.Vector3d</a> --+        \n                                   |        \n                  object --+       |        \n                           |       |        \n                <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+   |        \n                               |   |        \n           <a href=\"pygeodesy.ecefLocals._EcefLocal-class.html\">ecefLocals._EcefLocal</a> --+        \n                                   |        \n         <a href=\"pygeodesy.cartesianBase.CartesianBase-class.html\">cartesianBase.CartesianBase</a> --+    \n                                       |    \n<a href=\"pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html\">ellipsoidalBase.CartesianEllipsoidalBase</a> --+\n                                           |\n                                          <strong class=\"uidshort\">Cartesian</strong>\n</pre>\n\n<hr />\n<p>Extended to convert exact <a \n  href=\"pygeodesy.ellipsoidalExact.Cartesian-class.html\" \n  class=\"link\">Cartesian</a> to exact <a \n  href=\"pygeodesy.ellipsoidalExact.LatLon-class.html\" \n  class=\"link\">LatLon</a> points.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoidalExact.Cartesian-class.html#toLatLon\" class=\"summary-sig-name\">toLatLon</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">**LatLon_and_kwds</span>)</span><br />\n      Convert this cartesian point to an exact geodetic point.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html\">ellipsoidalBase.CartesianEllipsoidalBase</a></code></b>:\n      <code><a href=\"pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#__init__\">__init__</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#convertRefFrame\">convertRefFrame</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#intersections2\">intersections2</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#toRefFrame\">toRefFrame</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#toTransforms_\">toTransforms_</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html\">cartesianBase.CartesianBase</a></code></b>:\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#Roc2\">Roc2</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#cassini\">cassini</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#collins\">collins</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#collins5\">collins5</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#convertDatum\">convertDatum</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#destinationXyz\">destinationXyz</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#hartzell\">hartzell</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#height3\">height3</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#height4\">height4</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#pierlot\">pierlot</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#pierlotx\">pierlotx</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#tienstra\">tienstra</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#tienstra7\">tienstra7</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#to2ab\">to2ab</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#to2ll\">to2ll</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#to3llh\">to3llh</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#toDatum\">toDatum</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#toEcef\">toEcef</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#toNvector\">toNvector</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#toRtp\">toRtp</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#toTransform\">toTransform</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#toVector\">toVector</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.vector3d.Vector3d-class.html\">vector3d.Vector3d</a></code></b>:\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#bearing\">bearing</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#circin6\">circin6</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#circum3\">circum3</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#circum4_\">circum4_</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#iscolinearWith\">iscolinearWith</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#meeus2\">meeus2</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#nearestOn\">nearestOn</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#nearestOn6\">nearestOn6</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#parse\">parse</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#radii11\">radii11</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#soddy4\">soddy4</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#toCartesian\">toCartesian</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#trilaterate2d2\">trilaterate2d2</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#trilaterate3d2\">trilaterate3d2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">vector3dBase.Vector3dBase</a></code></b>:\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__abs__\">__abs__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__add__\">__add__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__bool__\">__bool__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__ceil__\">__ceil__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__cmp__\">__cmp__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__div__\">__div__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__divmod__\">__divmod__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__eq__\">__eq__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__float__\">__float__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__floor__\">__floor__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__floordiv__\">__floordiv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__ge__\">__ge__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__gt__\">__gt__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__iadd__\">__iadd__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__idiv__\">__idiv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__ifloordiv__\">__ifloordiv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__imod__\">__imod__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__imul__\">__imul__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__int__\">__int__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__ipow__\">__ipow__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__isub__\">__isub__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__itruediv__\">__itruediv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__le__\">__le__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__long__\">__long__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__lt__\">__lt__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__mod__\">__mod__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__mul__\">__mul__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__ne__\">__ne__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__neg__\">__neg__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__nonzero__\">__nonzero__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__pos__\">__pos__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__pow__\">__pow__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__radd__\">__radd__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rdiv__\">__rdiv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rdivmod__\">__rdivmod__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rfloordiv__\">__rfloordiv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rmod__\">__rmod__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rmul__\">__rmul__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__round__\">__round__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rpow__\">__rpow__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rsub__\">__rsub__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rtruediv__\">__rtruediv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__sub__\">__sub__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__truediv__\">__truediv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__trunc__\">__trunc__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#angleTo\">angleTo</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#apply\">apply</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#bools\">bools</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#cmp\">cmp</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#cross\">cross</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#dividedBy\">dividedBy</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#dividedBy_\">dividedBy_</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#dot\">dot</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#equals\">equals</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#equirectangular\">equirectangular</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#fabs\">fabs</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#floats\">floats</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#floorDividedBy\">floorDividedBy</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#floorDividedBy_\">floorDividedBy_</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#intermediateTo\">intermediateTo</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#ints\">ints</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#isconjugateTo\">isconjugateTo</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#isequalTo\">isequalTo</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#minus\">minus</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#minus_\">minus_</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#negate\">negate</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#others\">others</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#plus\">plus</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#plus_\">plus_</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#pow\">pow</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#rotate\">rotate</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#rotateAround\">rotateAround</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#sum\">sum</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#times\">times</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#times_\">times_</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#to3xyz\">to3xyz</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#unit\">unit</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#toRepr\">toRepr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html\">ecefLocals._EcefLocal</a></code></b>:\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toAer\">toAer</a></code>,\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toEnu\">toEnu</a></code>,\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toLocal\">toLocal</a></code>,\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toLtp\">toLtp</a></code>,\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toNed\">toNed</a></code>,\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toXyz\">toXyz</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html\">ellipsoidalBase.CartesianEllipsoidalBase</a></code></b>:\n      <code><a href=\"pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#ellipsoidalCartesian\">ellipsoidalCartesian</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#epoch\">epoch</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#reframe\">reframe</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html\">cartesianBase.CartesianBase</a></code></b>:\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#datum\">datum</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#height\">height</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#isEllipsoidal\">isEllipsoidal</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#isSpherical\">isSpherical</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#latlon\">latlon</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#latlonheight\">latlonheight</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#latlonheightdatum\">latlonheightdatum</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#philam\">philam</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#philamheight\">philamheight</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#philamheightdatum\">philamheightdatum</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#sphericalCartesian\">sphericalCartesian</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">vector3dBase.Vector3dBase</a></code></b>:\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#crosserrors\">crosserrors</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#euclid\">euclid</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#homogeneous\">homogeneous</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#length\">length</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#length2\">length2</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#x\">x</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#x2y2z2\">x2y2z2</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#x2y2z23\">x2y2z23</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#xyz\">xyz</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#xyz3\">xyz3</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#y\">y</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#z\">z</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html\">ecefLocals._EcefLocal</a></code></b>:\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#Ecef\">Ecef</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"toLatLon\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toLatLon</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">**LatLon_and_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert this cartesian point to an exact geodetic point.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>LatLon_and_kwds</code></strong> - Optional <a href=\"pygeodesy.ellipsoidalExact.LatLon-class.html\" \n          class=\"link\">LatLon</a> and <a \n          href=\"pygeodesy.ellipsoidalExact.LatLon-class.html\" \n          class=\"link\">LatLon</a> keyword arguments as <code>datum</code>.\n          Use <code><b>LatLon</b>=..., <b>datum</b>=...</code> to override \n          this <a href=\"pygeodesy.ellipsoidalExact.LatLon-class.html\" \n          class=\"link\">LatLon</a> class or specify \n          <code><b>LatLon</b>=None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The geodetic point (<a \n          href=\"pygeodesy.ellipsoidalExact.LatLon-class.html\" \n          class=\"link\">LatLon</a>) or if <code><b>LatLon</b> is \n          None</code>, an <a href=\"pygeodesy.ecef.Ecef9Tuple-class.html\" \n          class=\"link\">Ecef9Tuple</a><code>(x, y, z, lat, lon, height, C, \n          M, datum)</code> with <code>C</code> and <code>M</code> if \n          available.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>LatLon_and_kwds</code></b> argument.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#toLatLon\">cartesianBase.CartesianBase.toLatLon</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.ellipsoidalExact.LatLon-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.ellipsoidalExact.LatLon</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.ellipsoidalExact-module.html\">Module&nbsp;ellipsoidalExact</a> ::\n        Class&nbsp;LatLon\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.ellipsoidalExact.LatLon-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class LatLon</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n               object --+                    \n                        |                    \n             <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+                \n                            |                \n             <a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+            \n                                |            \n               object --+       |            \n                        |       |            \n             <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+   |            \n                            |   |            \n        <a href=\"pygeodesy.ecefLocals._EcefLocal-class.html\">ecefLocals._EcefLocal</a> --+            \n                                |            \n            <a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">latlonBase.LatLonBase</a> --+        \n                                    |        \n<a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html\">ellipsoidalBase.LatLonEllipsoidalBase</a> --+    \n                                        |    \n<a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html\">ellipsoidalBaseDI.LatLonEllipsoidalBaseDI</a> --+\n                                            |\n                                           <strong class=\"uidshort\">LatLon</strong>\n</pre>\n\n<hr />\n<p>An ellipsoidal <a href=\"pygeodesy.ellipsoidalExact.LatLon-class.html\" \n  class=\"link\">LatLon</a> like <a \n  href=\"pygeodesy.ellipsoidalKarney.LatLon-class.html\" \n  class=\"link\">ellipsoidalKarney.LatLon</a> but using exact geodesic \n  classes <a href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html\" \n  class=\"link\">GeodesicExact</a> and <a \n  href=\"pygeodesy.geodesicx.gx.GeodesicLineExact-class.html\" \n  class=\"link\">GeodesicLineExact</a> to compute geodesic distances, \n  bearings (azimuths), etc.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoidalExact.LatLon-class.html#toCartesian\" class=\"summary-sig-name\">toCartesian</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">**Cartesian_datum_kwds</span>)</span><br />\n      Convert this point to exact cartesian (ECEF) coordinates.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html\">ellipsoidalBaseDI.LatLonEllipsoidalBaseDI</a></code></b>:\n      <code><a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#bearingTo2\">bearingTo2</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#destination\">destination</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#destination2\">destination2</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#distanceTo\">distanceTo</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#distanceTo3\">distanceTo3</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#finalBearingOn\">finalBearingOn</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#finalBearingTo\">finalBearingTo</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#initialBearingTo\">initialBearingTo</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#intermediateTo\">intermediateTo</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#intersecant2\">intersecant2</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#nearestOn8\">nearestOn8</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#plumbTo\">plumbTo</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html\">ellipsoidalBase.LatLonEllipsoidalBase</a></code></b>:\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#__init__\">__init__</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#antipode\">antipode</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#convertDatum\">convertDatum</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#convertRefFrame\">convertRefFrame</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#distanceTo2\">distanceTo2</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#elevation2\">elevation2</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#ellipsoid\">ellipsoid</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#ellipsoids\">ellipsoids</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#geoidHeight2\">geoidHeight2</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#intersection3\">intersection3</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#intersections2\">intersections2</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#isenclosedBy\">isenclosedBy</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#midpointTo\">midpointTo</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#nearestOn\">nearestOn</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#parse\">parse</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#to3xyz\">to3xyz</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toCss\">toCss</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toDatum\">toDatum</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toEtm\">toEtm</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toLcc\">toLcc</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toMgrs\">toMgrs</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toOsgr\">toOsgr</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toRefFrame\">toRefFrame</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toTransform\">toTransform</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toUps\">toUps</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toUtm\">toUtm</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toUtmUps\">toUtmUps</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#triangulate\">triangulate</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#trilaterate5\">trilaterate5</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">latlonBase.LatLonBase</a></code></b>:\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#PointsIter\">PointsIter</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#__eq__\">__eq__</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#__ne__\">__ne__</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#bounds\">bounds</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#boundsOf\">boundsOf</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#chordTo\">chordTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#circin6\">circin6</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#circum3\">circum3</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#circum4_\">circum4_</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#compassAngle\">compassAngle</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#compassAngleTo\">compassAngleTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#cosineAndoyerLambertTo\">cosineAndoyerLambertTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#cosineForsytheAndoyerLambertTo\">cosineForsytheAndoyerLambertTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#cosineLawTo\">cosineLawTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#destinationXyz\">destinationXyz</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#equals\">equals</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#equals3\">equals3</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#equirectangularTo\">equirectangularTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#euclideanTo\">euclideanTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#flatLocalTo\">flatLocalTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#flatPolarTo\">flatPolarTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#hartzell\">hartzell</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#haversineTo\">haversineTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#height4\">height4</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#heightStr\">heightStr</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#hubenyTo\">hubenyTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isantipode\">isantipode</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isantipodeTo\">isantipodeTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isequalTo\">isequalTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isequalTo3\">isequalTo3</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#latlon2\">latlon2</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#latlon2round\">latlon2round</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#latlon_\">latlon_</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#nearestOn6\">nearestOn6</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#nearestTo\">nearestTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#normal\">normal</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#philam2\">philam2</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#points\">points</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#points2\">points2</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#radii11\">radii11</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#rhumbAzimuthTo\">rhumbAzimuthTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#rhumbDestination\">rhumbDestination</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#rhumbDistanceTo\">rhumbDistanceTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#rhumbIntersecant2\">rhumbIntersecant2</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#rhumbLine\">rhumbLine</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#rhumbMidpointTo\">rhumbMidpointTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#thomasTo\">thomasTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#to2ab\">to2ab</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#to3llh\">to3llh</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toEcef\">toEcef</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toNormal\">toNormal</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toNvector\">toNvector</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toVector\">toVector</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toVector3d\">toVector3d</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toWm\">toWm</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#vincentysTo\">vincentysTo</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#others\">others</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#toRepr\">toRepr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html\">ecefLocals._EcefLocal</a></code></b>:\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toAer\">toAer</a></code>,\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toEnu\">toEnu</a></code>,\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toLocal\">toLocal</a></code>,\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toLtp\">toLtp</a></code>,\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toNed\">toNed</a></code>,\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toXyz\">toXyz</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoidalExact.LatLon-class.html#Equidistant\" class=\"summary-name\">Equidistant</a><br />\n      Get the prefered azimuthal equidistant projection <i>class</i> (<a \n      href=\"pygeodesy.azimuthal.EquidistantExact-class.html\" \n      class=\"link\">EquidistantExact</a>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoidalExact.LatLon-class.html#geodesicx\" class=\"summary-name\">geodesicx</a><br />\n      Get this <code>LatLon</code>'s exact geodesic (<a \n      href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html\" \n      class=\"link\">GeodesicExact</a>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoidalExact.LatLon-class.html#geodesic\" class=\"summary-name\">geodesic</a><br />\n      Get this <code>LatLon</code>'s exact geodesic (<a \n      href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html\" \n      class=\"link\">GeodesicExact</a>).\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html\">ellipsoidalBase.LatLonEllipsoidalBase</a></code></b>:\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#convergence\">convergence</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#datum\">datum</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#ellipsoidalLatLon\">ellipsoidalLatLon</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#epoch\">epoch</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#gamma\">gamma</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#reframe\">reframe</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#scale\">scale</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">latlonBase.LatLonBase</a></code></b>:\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#clipid\">clipid</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#height\">height</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isEllipsoidal\">isEllipsoidal</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isSpherical\">isSpherical</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isnormal\">isnormal</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#lam\">lam</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#lat\">lat</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#latlon\">latlon</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#latlonheight\">latlonheight</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#lon\">lon</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#phi\">phi</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#philam\">philam</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#philamheight\">philamheight</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#sphericalLatLon\">sphericalLatLon</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#xyz\">xyz</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#xyz3\">xyz3</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#xyzh\">xyzh</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html\">ecefLocals._EcefLocal</a></code></b>:\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#Ecef\">Ecef</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"toCartesian\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toCartesian</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">**Cartesian_datum_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert this point to exact cartesian (ECEF) coordinates.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>Cartesian_datum_kwds</code></strong> - Optional <a \n          href=\"pygeodesy.ellipsoidalExact.Cartesian-class.html\" \n          class=\"link\">Cartesian</a>, <b><code>datum</code></b> and other \n          keyword arguments, ignored if <code><b>Cartesian</b> is \n          None</code>.  Use <code><b>Cartesian</b>=...</code> to override \n          this <a href=\"pygeodesy.ellipsoidalExact.Cartesian-class.html\" \n          class=\"link\">Cartesian</a> class or set \n          <code><b>Cartesian</b>=None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The cartesian (ECEF) coordinates as (<a \n          href=\"pygeodesy.ellipsoidalExact.Cartesian-class.html\" \n          class=\"link\">Cartesian</a>) or if <code><b>Cartesian</b> is \n          None</code>, an <a href=\"pygeodesy.ecef.Ecef9Tuple-class.html\" \n          class=\"link\">Ecef9Tuple</a><code>(x, y, z, lat, lon, height, C, \n          M, datum)</code> with <code>C</code> and <code>M</code> if \n          available.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>Cartesian</code></b>, <b><code>datum</code></b> or\n        other <b><code>Cartesian_datum_kwds</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toCartesian\">latlonBase.LatLonBase.toCartesian</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"Equidistant\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">Equidistant</h3>\n  <p>Get the prefered azimuthal equidistant projection <i>class</i> (<a \n  href=\"pygeodesy.azimuthal.EquidistantExact-class.html\" \n  class=\"link\">EquidistantExact</a>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">Equidistant(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the prefered azimuthal equidistant projection <i>class</i> (<a \nhref=\"pygeodesy.azimuthal.EquidistantExact-class.html\" \nclass=\"link\">EquidistantExact</a>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"geodesicx\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">geodesicx</h3>\n  <p>Get this <code>LatLon</code>'s exact geodesic (<a \n  href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html\" \n  class=\"link\">GeodesicExact</a>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">geodesicx(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get this <code>LatLon</code>'s exact geodesic (<a \nhref=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html\" \nclass=\"link\">GeodesicExact</a>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"geodesic\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">geodesic</h3>\n  <p>Get this <code>LatLon</code>'s exact geodesic (<a \n  href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html\" \n  class=\"link\">GeodesicExact</a>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">geodesicx(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get this <code>LatLon</code>'s exact geodesic (<a \nhref=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html\" \nclass=\"link\">GeodesicExact</a>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.ellipsoidalGeodSolve-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.ellipsoidalGeodSolve</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        Module&nbsp;ellipsoidalGeodSolve\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.ellipsoidalGeodSolve-module.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== MODULE DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Module ellipsoidalGeodSolve</h1><p class=\"nomargin-top\"></p>\n<p>Exact ellipsoidal geodesy, intended <i>for testing purposes \n  only</i>.</p>\n  <p>Ellipsoidal geodetic (lat-/longitude) <a \n  href=\"pygeodesy.ellipsoidalGeodSolve.LatLon-class.html\" \n  class=\"link\">LatLon</a> and geocentric (ECEF) <a \n  href=\"pygeodesy.ellipsoidalGeodSolve.Cartesian-class.html\" \n  class=\"link\">Cartesian</a> classes and functions <a \n  href=\"pygeodesy.ellipsoidalGeodSolve-module.html#areaOf\" \n  class=\"link\">areaOf</a>, <a \n  href=\"pygeodesy.ellipsoidalGeodSolve-module.html#intersections2\" \n  class=\"link\">intersections2</a>, <a \n  href=\"pygeodesy.ellipsoidalGeodSolve-module.html#isclockwise\" \n  class=\"link\">isclockwise</a>, <a \n  href=\"pygeodesy.ellipsoidalGeodSolve-module.html#nearestOn\" \n  class=\"link\">nearestOn</a> and <a \n  href=\"pygeodesy.ellipsoidalGeodSolve-module.html#perimeterOf\" \n  class=\"link\">perimeterOf</a> based on module <a \n  href=\"pygeodesy.geodsolve-module.html\" class=\"link\">geodsolve</a>, a \n  wrapper invoking <i>Karney</i>'s <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/GeodSolve.1.html\" \n  target=\"_top\">GeodSolve</a> utility.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Version:</strong>\n        25.08.28\n      </p>\n</div><!-- ==================== CLASSES ==================== -->\n<a name=\"section-Classes\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Classes</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoidalGeodSolve.Cartesian-class.html\" class=\"summary-name\">Cartesian</a><br />\n      Extended to convert exact <a \n        href=\"pygeodesy.ellipsoidalGeodSolve.Cartesian-class.html\" \n        class=\"link\">Cartesian</a> to exact <a \n        href=\"pygeodesy.ellipsoidalGeodSolve.LatLon-class.html\" \n        class=\"link\">LatLon</a> points.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoidalGeodSolve.LatLon-class.html\" class=\"summary-name\">LatLon</a><br />\n      An ellipsoidal <a \n        href=\"pygeodesy.ellipsoidalGeodSolve.LatLon-class.html\" \n        class=\"link\">LatLon</a> like <a \n        href=\"pygeodesy.ellipsoidalKarney.LatLon-class.html\" \n        class=\"link\">ellipsoidalKarney.LatLon</a> but using (exact) \n        geodesic <i>wrapper</i> <a \n        href=\"pygeodesy.geodsolve.GeodesicSolve-class.html\" \n        class=\"link\">GeodesicSolve</a> to compute the geodesic distance, \n        initial and final bearing (azimuths) between two given points or \n        the destination point given a start point and an (initial) bearing.\n    </td>\n  </tr>\n</table>\n<!-- ==================== FUNCTIONS ==================== -->\n<a name=\"section-Functions\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Functions</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoidalGeodSolve-module.html#ispolar\" class=\"summary-sig-name\">ispolar</a>(<span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Check whether a polygon encloses a pole.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoidalGeodSolve-module.html#areaOf\" class=\"summary-sig-name\">areaOf</a>(<span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">datum</span>=<span class=\"summary-sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">polar</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Compute the area of an (ellipsoidal) polygon or composite.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoidalGeodSolve-module.html#intersection3\" class=\"summary-sig-name\">intersection3</a>(<span class=\"summary-sig-arg\">start1</span>,\n        <span class=\"summary-sig-arg\">end1</span>,\n        <span class=\"summary-sig-arg\">start2</span>,\n        <span class=\"summary-sig-arg\">end2</span>,\n        <span class=\"summary-sig-arg\">height</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">equidistant</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">tol</span>=<span class=\"summary-sig-default\">0.001</span>,\n        <span class=\"summary-sig-arg\">LatLon</span>=<span class=\"summary-sig-default\">&lt;class 'pygeodesy.ellipsoidalGeodSolve.LatLon'&gt;</span>,\n        <span class=\"summary-sig-arg\">**LatLon_kwds</span>)</span><br />\n      <i>Iteratively</i> compute the intersection point of two lines, each \n      defined by two (ellipsoidal) points or by an (ellipsoidal) start \n      point and an (initial) bearing from North.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoidalGeodSolve-module.html#intersections2\" class=\"summary-sig-name\">intersections2</a>(<span class=\"summary-sig-arg\">center1</span>,\n        <span class=\"summary-sig-arg\">radius1</span>,\n        <span class=\"summary-sig-arg\">center2</span>,\n        <span class=\"summary-sig-arg\">radius2</span>,\n        <span class=\"summary-sig-arg\">height</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">equidistant</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">tol</span>=<span class=\"summary-sig-default\">0.001</span>,\n        <span class=\"summary-sig-arg\">LatLon</span>=<span class=\"summary-sig-default\">&lt;class 'pygeodesy.ellipsoidalGeodSolve.LatLon'&gt;</span>,\n        <span class=\"summary-sig-arg\">**LatLon_kwds</span>)</span><br />\n      <i>Iteratively</i> compute the intersection points of two circles, \n      each defined by an (ellipsoidal) center point and a radius.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoidalGeodSolve-module.html#isclockwise\" class=\"summary-sig-name\">isclockwise</a>(<span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">datum</span>=<span class=\"summary-sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">polar</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Determine the direction of a path or polygon.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoidalGeodSolve-module.html#nearestOn\" class=\"summary-sig-name\">nearestOn</a>(<span class=\"summary-sig-arg\">point</span>,\n        <span class=\"summary-sig-arg\">point1</span>,\n        <span class=\"summary-sig-arg\">point2</span>,\n        <span class=\"summary-sig-arg\">within</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">height</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">equidistant</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">tol</span>=<span class=\"summary-sig-default\">0.001</span>,\n        <span class=\"summary-sig-arg\">LatLon</span>=<span class=\"summary-sig-default\">&lt;class 'pygeodesy.ellipsoidalGeodSolve.LatLon'&gt;</span>,\n        <span class=\"summary-sig-arg\">**LatLon_kwds</span>)</span><br />\n      <i>Iteratively</i> locate the closest point on the geodesic between \n      two other (ellipsoidal) points.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoidalGeodSolve-module.html#perimeterOf\" class=\"summary-sig-name\">perimeterOf</a>(<span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">closed</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">datum</span>=<span class=\"summary-sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">True</span>)</span><br />\n      Compute the perimeter of an (ellipsoidal) polygon or composite.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== VARIABLES ==================== -->\n<a name=\"section-Variables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Variables</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"__all__\"></a><span class=\"summary-name\">__all__</span> = <code title=\"_ALL_LAZY.ellipsoidalGeodSolve\">_ALL_LAZY.ellipsoidalGeodSolve</code>\n    </td>\n  </tr>\n</table>\n<!-- ==================== FUNCTION DETAILS ==================== -->\n<a name=\"section-FunctionDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Function Details</span></td>\n</tr>\n</table>\n<a name=\"ispolar\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">ispolar</span>&nbsp;(<span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Check whether a polygon encloses a pole.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>points</code></strong> - The polygon points (<code>LatLon</code>[]).</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll the \n          <b><code>points</code></b> (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>True</code> if the polygon encloses a pole, \n          <code>False</code> otherwise.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.PointsError-class.html\">PointsError</a></strong></code> - Insufficient number of <b><code>points</code></b></li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Some <b><code>points</code></b> are not <code>LatLon</code> or \n        don't have <code>bearingTo2</code>, <code>initialBearingTo</code> \n        and <code>finalBearingTo</code> methods.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"areaOf\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">areaOf</span>&nbsp;(<span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">datum</span>=<span class=\"sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">polar</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the area of an (ellipsoidal) polygon or composite.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>points</code></strong> - The polygon points (<a \n          href=\"pygeodesy.ellipsoidalGeodSolve.LatLon-class.html\" \n          class=\"link\">LatLon</a>[], <a \n          href=\"pygeodesy.booleans.BooleanFHP-class.html\" \n          class=\"link\">BooleanFHP</a> or <a \n          href=\"pygeodesy.booleans.BooleanGH-class.html\" \n          class=\"link\">BooleanGH</a>).</li>\n        <li><strong class=\"pname\"><code>datum</code></strong> - Optional datum (<a href=\"pygeodesy.datums.Datum-class.html\" \n          class=\"link\">Datum</a>).</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll the \n          <b><code>points</code></b> (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>polar</code></strong> - Use <code><b>polar</b>=True</code> if the polygon encloses a pole\n          (<code>bool</code>), see function <a \n          href=\"pygeodesy.points-module.html#ispolar\" \n          class=\"link\">ispolar</a> and <a \n          href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1GeodesicExact.html#a3d7a9155e838a09a48dc14d0c3fac525\"\n          target=\"_top\">area of a polygon enclosing a pole</a>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Area (<code>meter</code>, same as units of the \n          <b><code>datum</code></b>'s ellipsoid axes, <i>squared</i>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.PointsError-class.html\">PointsError</a></strong></code> - Insufficient number of <b><code>points</code></b>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Some <b><code>points</code></b> are not <a \n        href=\"pygeodesy.ellipsoidalGeodSolve.LatLon-class.html\" \n        class=\"link\">LatLon</a>.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <code><b>wrap</b>=False</code>, unwrapped, unrolled \n        longitudes not supported.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Functions <a href=\"pygeodesy.points-module.html#areaOf\" \n        class=\"link\">pygeodesy.areaOf</a>, <a \n        href=\"pygeodesy.ellipsoidalExact-module.html#areaOf\" \n        class=\"link\">ellipsoidalExact.areaOf</a>, <a \n        href=\"pygeodesy.ellipsoidalKarney-module.html#areaOf\" \n        class=\"link\">ellipsoidalKarney.areaOf</a>, <a \n        href=\"pygeodesy.sphericalNvector-module.html#areaOf\" \n        class=\"link\">sphericalNvector.areaOf</a> and <a \n        href=\"pygeodesy.sphericalTrigonometry-module.html#areaOf\" \n        class=\"link\">sphericalTrigonometry.areaOf</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"intersection3\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">intersection3</span>&nbsp;(<span class=\"sig-arg\">start1</span>,\n        <span class=\"sig-arg\">end1</span>,\n        <span class=\"sig-arg\">start2</span>,\n        <span class=\"sig-arg\">end2</span>,\n        <span class=\"sig-arg\">height</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">equidistant</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">tol</span>=<span class=\"sig-default\">0.001</span>,\n        <span class=\"sig-arg\">LatLon</span>=<span class=\"sig-default\">&lt;class 'pygeodesy.ellipsoidalGeodSolve.LatLon'&gt;</span>,\n        <span class=\"sig-arg\">**LatLon_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p><i>Iteratively</i> compute the intersection point of two lines, each \n  defined by two (ellipsoidal) points or by an (ellipsoidal) start point \n  and an (initial) bearing from North.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>start1</code></strong> - Start point of the first line (<a \n          href=\"pygeodesy.ellipsoidalGeodSolve.LatLon-class.html\" \n          class=\"link\">LatLon</a>).</li>\n        <li><strong class=\"pname\"><code>end1</code></strong> - End point of the first line (<a \n          href=\"pygeodesy.ellipsoidalGeodSolve.LatLon-class.html\" \n          class=\"link\">LatLon</a>) or the initial bearing at the first \n          point (compass <code>degrees360</code>).</li>\n        <li><strong class=\"pname\"><code>start2</code></strong> - Start point of the second line (<a \n          href=\"pygeodesy.ellipsoidalGeodSolve.LatLon-class.html\" \n          class=\"link\">LatLon</a>).</li>\n        <li><strong class=\"pname\"><code>end2</code></strong> - End point of the second line (<a \n          href=\"pygeodesy.ellipsoidalGeodSolve.LatLon-class.html\" \n          class=\"link\">LatLon</a>) or the initial bearing at the second \n          point (compass <code>degrees360</code>).</li>\n        <li><strong class=\"pname\"><code>height</code></strong> - Optional height at the intersection (<code>meter</code>, \n          conventionally) or <code>None</code> for the mean height.</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll the \n          <b><code>start2</code></b> and <b><code>end*</code></b> points \n          (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>equidistant</code></strong> - An azimuthal equidistant projection (<i>class</i> or function <a \n          href=\"pygeodesy.azimuthal-module.html#equidistant\" \n          class=\"link\">pygeodesy.equidistant</a>) or <code>None</code> for \n          the preferred <code><b>start1</b>.Equidistant</code>.</li>\n        <li><strong class=\"pname\"><code>tol</code></strong> - Tolerance for convergence and for skew line distance and length \n          (<code>meter</code>, conventionally).</li>\n        <li><strong class=\"pname\"><code>LatLon</code></strong> - Optional class to return the intersection points (<a \n          href=\"pygeodesy.ellipsoidalGeodSolve.LatLon-class.html\" \n          class=\"link\">LatLon</a>) or <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>LatLon_kwds</code></strong> - Optional, additional <b><code>LatLon</code></b> keyword \n          arguments, ignored if <code><b>LatLon</b> is None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>An <a href=\"pygeodesy.namedTuples.Intersection3Tuple-class.html\" \n          class=\"link\">Intersection3Tuple</a><code>(point, outside1, \n          outside2)</code> with <code>point</code> a \n          <b><code>LatLon</code></b> or if <code><b>LatLon</b> is \n          None</code>, a <a \n          href=\"pygeodesy.namedTuples.LatLon4Tuple-class.html\" \n          class=\"link\">LatLon4Tuple</a><code>(lat, lon, height, \n          datum)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.IntersectionError-class.html\">IntersectionError</a></strong></code> - Skew, colinear, parallel or otherwise non-intersecting lines or no \n        convergence for the given <b><code>tol</code></b>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid or non-ellipsoidal <b><code>start1</code></b>, \n        <b><code>end1</code></b>, <b><code>start2</code></b> or \n        <b><code>end2</code></b> or invalid \n        <b><code>equidistant</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        For each line specified with an initial bearing, a pseudo-end point\n        is computed as the <code>destination</code> along that bearing at \n        about 1.5 times the distance from the start point to an initial \n        gu-/estimate of the intersection point (and between 1/8 and 3/8 of \n        the authalic earth perimeter).\n      </p>\n      <p><strong>See Also:</strong>\n        <a \n        href=\"https://GIS.StackExchange.com/questions/48937/calculating-intersection-of-two-circles\"\n        target=\"_top\">The <b>ellipsoidal</b> case</a> and <a \n        href=\"https://ArXiv.org/pdf/1102.1215.pdf\" target=\"_top\">Karney's \n        paper</a>, pp 20-21, section <b>14. MARITIME BOUNDARIES</b> for \n        more details about the iteration algorithm.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"intersections2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">intersections2</span>&nbsp;(<span class=\"sig-arg\">center1</span>,\n        <span class=\"sig-arg\">radius1</span>,\n        <span class=\"sig-arg\">center2</span>,\n        <span class=\"sig-arg\">radius2</span>,\n        <span class=\"sig-arg\">height</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">equidistant</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">tol</span>=<span class=\"sig-default\">0.001</span>,\n        <span class=\"sig-arg\">LatLon</span>=<span class=\"sig-default\">&lt;class 'pygeodesy.ellipsoidalGeodSolve.LatLon'&gt;</span>,\n        <span class=\"sig-arg\">**LatLon_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p><i>Iteratively</i> compute the intersection points of two circles, \n  each defined by an (ellipsoidal) center point and a radius.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>center1</code></strong> - Center of the first circle (<a \n          href=\"pygeodesy.ellipsoidalGeodSolve.LatLon-class.html\" \n          class=\"link\">LatLon</a>).</li>\n        <li><strong class=\"pname\"><code>radius1</code></strong> - Radius of the first circle (<code>meter</code>, conventionally).</li>\n        <li><strong class=\"pname\"><code>center2</code></strong> - Center of the second circle (<a \n          href=\"pygeodesy.ellipsoidalGeodSolve.LatLon-class.html\" \n          class=\"link\">LatLon</a>).</li>\n        <li><strong class=\"pname\"><code>radius2</code></strong> - Radius of the second circle (<code>meter</code>, same units as \n          <b><code>radius1</code></b>).</li>\n        <li><strong class=\"pname\"><code>height</code></strong> - Optional height for the intersection points (<code>meter</code>, \n          conventionally) or <code>None</code> for the <i>&quot;radical \n          height&quot;</i> at the <i>radical line</i> between both centers.</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll \n          <b><code>center2</code></b> (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>equidistant</code></strong> - An azimuthal equidistant projection (<i>class</i> or function <a \n          href=\"pygeodesy.azimuthal-module.html#equidistant\" \n          class=\"link\">pygeodesy.equidistant</a>) or <code>None</code> for \n          the preferred <code><b>center1</b>.Equidistant</code>.</li>\n        <li><strong class=\"pname\"><code>tol</code></strong> - Convergence tolerance (<code>meter</code>, same units as \n          <b><code>radius1</code></b> and <b><code>radius2</code></b>).</li>\n        <li><strong class=\"pname\"><code>LatLon</code></strong> - Optional class to return the intersection points (<a \n          href=\"pygeodesy.ellipsoidalGeodSolve.LatLon-class.html\" \n          class=\"link\">LatLon</a>) or <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>LatLon_kwds</code></strong> - Optional, additional <b><code>LatLon</code></b> keyword \n          arguments, ignored if <code><b>LatLon</b> is None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>2-Tuple of the intersection points, each a \n          <b><code>LatLon</code></b> instance or <a \n          href=\"pygeodesy.namedTuples.LatLon4Tuple-class.html\" \n          class=\"link\">LatLon4Tuple</a><code>(lat, lon, height, \n          datum)</code> if <code><b>LatLon</b> is None</code>.  For \n          abutting circles, both points are the same instance, aka the \n          <i>radical center</i>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.IntersectionError-class.html\">IntersectionError</a></strong></code> - Concentric, antipodal, invalid or non-intersecting circles or no \n        convergence for the <b><code>tol</code></b>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid or non-ellipsoidal <b><code>center1</code></b> or \n        <b><code>center2</code></b> or invalid \n        <b><code>equidistant</code></b>.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.UnitError-class.html\">UnitError</a></strong></code> - Invalid <b><code>radius1</code></b>, <b><code>radius2</code></b> or\n        <b><code>height</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a \n        href=\"https://GIS.StackExchange.com/questions/48937/calculating-intersection-of-two-circles\"\n        target=\"_top\">The <b>ellipsoidal</b> case</a>, <a \n        href=\"https://ArXiv.org/pdf/1102.1215.pdf\" target=\"_top\">Karney's \n        paper</a>, pp 20-21, section <b>14. MARITIME BOUNDARIES</b>, <a \n        href=\"https://MathWorld.Wolfram.com/Circle-CircleIntersection.html\"\n        target=\"_top\">Circle-Circle</a> and <a \n        href=\"https://MathWorld.Wolfram.com/Sphere-SphereIntersection.html\"\n        target=\"_top\">Sphere-Sphere</a> intersections.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"isclockwise\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">isclockwise</span>&nbsp;(<span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">datum</span>=<span class=\"sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">polar</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Determine the direction of a path or polygon.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>points</code></strong> - The path or polygon points (<code>LatLon</code>[]).</li>\n        <li><strong class=\"pname\"><code>datum</code></strong> - Optional datum (<a href=\"pygeodesy.datums.Datum-class.html\" \n          class=\"link\">Datum</a>).</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll the \n          <b><code>points</code></b> (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>polar</code></strong> - Use <code><b>polar</b>=True</code> if the \n          <code><b>points</b></code> enclose a pole (<code>bool</code>), \n          see function <a href=\"https://pygeodeys.points.ispolar\" \n          target=\"_top\">ispolar</a>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>True</code> if <b><code>points</code></b> are clockwise, \n          <code>False</code> otherwise.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.PointsError-class.html\">PointsError</a></strong></code> - Insufficient number of <b><code>points</code></b>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Some <b><code>points</code></b> are not <code>LatLon</code>.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - The <b><code>points</code></b> enclose a pole or zero area.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"pygeodesy.points-module.html#isclockwise\" \n        class=\"link\">pygeodesy.isclockwise</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"nearestOn\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">nearestOn</span>&nbsp;(<span class=\"sig-arg\">point</span>,\n        <span class=\"sig-arg\">point1</span>,\n        <span class=\"sig-arg\">point2</span>,\n        <span class=\"sig-arg\">within</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">height</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">equidistant</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">tol</span>=<span class=\"sig-default\">0.001</span>,\n        <span class=\"sig-arg\">LatLon</span>=<span class=\"sig-default\">&lt;class 'pygeodesy.ellipsoidalGeodSolve.LatLon'&gt;</span>,\n        <span class=\"sig-arg\">**LatLon_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p><i>Iteratively</i> locate the closest point on the geodesic between \n  two other (ellipsoidal) points.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>point</code></strong> - Reference point (<code>LatLon</code>).</li>\n        <li><strong class=\"pname\"><code>point1</code></strong> - Start point of the geodesic (<code>LatLon</code>).</li>\n        <li><strong class=\"pname\"><code>point2</code></strong> - End point of the geodesic (<code>LatLon</code>).</li>\n        <li><strong class=\"pname\"><code>within</code></strong> - If <code>True</code>, return the closest point <i>between</i> \n          <b><code>point1</code></b> and <b><code>point2</code></b>, \n          otherwise the closest point elsewhere on the geodesic \n          (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>height</code></strong> - Optional height for the closest point (<code>meter</code>, \n          conventionally) or <code>None</code> or <code>False</code> for \n          the interpolated height.  If <code>False</code>, the closest \n          takes the heights of the points into account.</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll both \n          <b><code>point1</code></b> and <b><code>point2</code></b> \n          (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>equidistant</code></strong> - An azimuthal equidistant projection (<i>class</i> or function <a \n          href=\"pygeodesy.azimuthal-module.html#equidistant\" \n          class=\"link\">pygeodesy.equidistant</a>) or <code>None</code> for \n          the preferred <code><b>point</b>.Equidistant</code>.</li>\n        <li><strong class=\"pname\"><code>tol</code></strong> - Convergence tolerance (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>LatLon</code></strong> - Optional class to return the closest point (<a \n          href=\"pygeodesy.ellipsoidalGeodSolve.LatLon-class.html\" \n          class=\"link\">LatLon</a>) or <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>LatLon_kwds</code></strong> - Optional, additional <b><code>LatLon</code></b> keyword \n          arguments, ignored if <code><b>LatLon</b> is None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Closest point, a <b><code>LatLon</code></b> instance or if \n          <code><b>LatLon</b> is None</code>, a <a \n          href=\"pygeodesy.namedTuples.LatLon4Tuple-class.html\" \n          class=\"link\">LatLon4Tuple</a><code>(lat, lon, height, \n          datum)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid or non-ellipsoidal <b><code>point</code></b>, \n        <b><code>point1</code></b> or <b><code>point2</code></b> or invalid\n        <b><code>equidistant</code></b>.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - No convergence for the <b><code>tol</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a \n        href=\"https://GIS.StackExchange.com/questions/48937/calculating-intersection-of-two-circles\"\n        target=\"_top\">The <b>ellipsoidal</b> case</a> and <a \n        href=\"https://ArXiv.org/pdf/1102.1215.pdf\" target=\"_top\">Karney's \n        paper</a>, pp 20-21, section <b>14. MARITIME BOUNDARIES</b> for \n        more details about the iteration algorithm.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"perimeterOf\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">perimeterOf</span>&nbsp;(<span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">closed</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">datum</span>=<span class=\"sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">True</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the perimeter of an (ellipsoidal) polygon or composite.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>points</code></strong> - The polygon points (<a \n          href=\"pygeodesy.ellipsoidalGeodSolve.LatLon-class.html\" \n          class=\"link\">LatLon</a>[], <a \n          href=\"pygeodesy.booleans.BooleanFHP-class.html\" \n          class=\"link\">BooleanFHP</a> or <a \n          href=\"pygeodesy.booleans.BooleanGH-class.html\" \n          class=\"link\">BooleanGH</a>).</li>\n        <li><strong class=\"pname\"><code>closed</code></strong> - Optionally, close the polygon (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>datum</code></strong> - Optional datum (<a href=\"pygeodesy.datums.Datum-class.html\" \n          class=\"link\">Datum</a>).</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll the \n          <b><code>points</code></b> (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Perimeter (<code>meter</code>, same as units of the \n          <b><code>datum</code></b>'s ellipsoid axes).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.PointsError-class.html\">PointsError</a></strong></code> - Insufficient number of <b><code>points</code></b>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Some <b><code>points</code></b> are not <a \n        href=\"pygeodesy.ellipsoidalGeodSolve.LatLon-class.html\" \n        class=\"link\">LatLon</a>.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <code><b>wrap</b>=False</code>, unwrapped, unrolled \n        longitudes not supported or <code><b>closed</b>=False</code> with \n        <code><b>points</b></code> a composite.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Functions <a href=\"pygeodesy.points-module.html#perimeterOf\" \n        class=\"link\">pygeodesy.perimeterOf</a>, <a \n        href=\"pygeodesy.ellipsoidalExact-module.html#perimeterOf\" \n        class=\"link\">ellipsoidalExact.perimeterOf</a>, <a \n        href=\"pygeodesy.ellipsoidalKarney-module.html#perimeterOf\" \n        class=\"link\">ellipsoidalKarney.perimeterOf</a>, <a \n        href=\"pygeodesy.sphericalNvector-module.html#perimeterOf\" \n        class=\"link\">sphericalNvector.perimeterOf</a> and <a \n        href=\"pygeodesy.sphericalTrigonometry-module.html#perimeterOf\" \n        class=\"link\">sphericalTrigonometry.perimeterOf</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.ellipsoidalGeodSolve.Cartesian-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.ellipsoidalGeodSolve.Cartesian</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.ellipsoidalGeodSolve-module.html\">Module&nbsp;ellipsoidalGeodSolve</a> ::\n        Class&nbsp;Cartesian\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.ellipsoidalGeodSolve.Cartesian-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Cartesian</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n          object --+                        \n                   |                        \n        <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+                    \n                       |                    \n        <a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+                \n                           |                \n   <a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">vector3dBase.Vector3dBase</a> --+            \n                               |            \n               <a href=\"pygeodesy.vector3d.Vector3d-class.html\">vector3d.Vector3d</a> --+        \n                                   |        \n                  object --+       |        \n                           |       |        \n                <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+   |        \n                               |   |        \n           <a href=\"pygeodesy.ecefLocals._EcefLocal-class.html\">ecefLocals._EcefLocal</a> --+        \n                                   |        \n         <a href=\"pygeodesy.cartesianBase.CartesianBase-class.html\">cartesianBase.CartesianBase</a> --+    \n                                       |    \n<a href=\"pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html\">ellipsoidalBase.CartesianEllipsoidalBase</a> --+\n                                           |\n                                          <strong class=\"uidshort\">Cartesian</strong>\n</pre>\n\n<hr />\n<p>Extended to convert exact <a \n  href=\"pygeodesy.ellipsoidalGeodSolve.Cartesian-class.html\" \n  class=\"link\">Cartesian</a> to exact <a \n  href=\"pygeodesy.ellipsoidalGeodSolve.LatLon-class.html\" \n  class=\"link\">LatLon</a> points.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoidalGeodSolve.Cartesian-class.html#toLatLon\" class=\"summary-sig-name\">toLatLon</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">**LatLon_and_kwds</span>)</span><br />\n      Convert this cartesian point to an exact geodetic point.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html\">ellipsoidalBase.CartesianEllipsoidalBase</a></code></b>:\n      <code><a href=\"pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#__init__\">__init__</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#convertRefFrame\">convertRefFrame</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#intersections2\">intersections2</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#toRefFrame\">toRefFrame</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#toTransforms_\">toTransforms_</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html\">cartesianBase.CartesianBase</a></code></b>:\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#Roc2\">Roc2</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#cassini\">cassini</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#collins\">collins</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#collins5\">collins5</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#convertDatum\">convertDatum</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#destinationXyz\">destinationXyz</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#hartzell\">hartzell</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#height3\">height3</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#height4\">height4</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#pierlot\">pierlot</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#pierlotx\">pierlotx</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#tienstra\">tienstra</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#tienstra7\">tienstra7</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#to2ab\">to2ab</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#to2ll\">to2ll</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#to3llh\">to3llh</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#toDatum\">toDatum</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#toEcef\">toEcef</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#toNvector\">toNvector</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#toRtp\">toRtp</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#toTransform\">toTransform</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#toVector\">toVector</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.vector3d.Vector3d-class.html\">vector3d.Vector3d</a></code></b>:\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#bearing\">bearing</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#circin6\">circin6</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#circum3\">circum3</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#circum4_\">circum4_</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#iscolinearWith\">iscolinearWith</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#meeus2\">meeus2</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#nearestOn\">nearestOn</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#nearestOn6\">nearestOn6</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#parse\">parse</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#radii11\">radii11</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#soddy4\">soddy4</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#toCartesian\">toCartesian</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#trilaterate2d2\">trilaterate2d2</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#trilaterate3d2\">trilaterate3d2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">vector3dBase.Vector3dBase</a></code></b>:\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__abs__\">__abs__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__add__\">__add__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__bool__\">__bool__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__ceil__\">__ceil__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__cmp__\">__cmp__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__div__\">__div__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__divmod__\">__divmod__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__eq__\">__eq__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__float__\">__float__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__floor__\">__floor__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__floordiv__\">__floordiv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__ge__\">__ge__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__gt__\">__gt__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__iadd__\">__iadd__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__idiv__\">__idiv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__ifloordiv__\">__ifloordiv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__imod__\">__imod__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__imul__\">__imul__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__int__\">__int__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__ipow__\">__ipow__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__isub__\">__isub__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__itruediv__\">__itruediv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__le__\">__le__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__long__\">__long__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__lt__\">__lt__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__mod__\">__mod__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__mul__\">__mul__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__ne__\">__ne__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__neg__\">__neg__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__nonzero__\">__nonzero__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__pos__\">__pos__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__pow__\">__pow__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__radd__\">__radd__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rdiv__\">__rdiv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rdivmod__\">__rdivmod__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rfloordiv__\">__rfloordiv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rmod__\">__rmod__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rmul__\">__rmul__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__round__\">__round__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rpow__\">__rpow__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rsub__\">__rsub__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rtruediv__\">__rtruediv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__sub__\">__sub__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__truediv__\">__truediv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__trunc__\">__trunc__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#angleTo\">angleTo</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#apply\">apply</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#bools\">bools</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#cmp\">cmp</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#cross\">cross</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#dividedBy\">dividedBy</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#dividedBy_\">dividedBy_</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#dot\">dot</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#equals\">equals</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#equirectangular\">equirectangular</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#fabs\">fabs</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#floats\">floats</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#floorDividedBy\">floorDividedBy</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#floorDividedBy_\">floorDividedBy_</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#intermediateTo\">intermediateTo</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#ints\">ints</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#isconjugateTo\">isconjugateTo</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#isequalTo\">isequalTo</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#minus\">minus</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#minus_\">minus_</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#negate\">negate</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#others\">others</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#plus\">plus</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#plus_\">plus_</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#pow\">pow</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#rotate\">rotate</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#rotateAround\">rotateAround</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#sum\">sum</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#times\">times</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#times_\">times_</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#to3xyz\">to3xyz</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#unit\">unit</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#toRepr\">toRepr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html\">ecefLocals._EcefLocal</a></code></b>:\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toAer\">toAer</a></code>,\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toEnu\">toEnu</a></code>,\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toLocal\">toLocal</a></code>,\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toLtp\">toLtp</a></code>,\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toNed\">toNed</a></code>,\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toXyz\">toXyz</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html\">ellipsoidalBase.CartesianEllipsoidalBase</a></code></b>:\n      <code><a href=\"pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#ellipsoidalCartesian\">ellipsoidalCartesian</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#epoch\">epoch</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#reframe\">reframe</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html\">cartesianBase.CartesianBase</a></code></b>:\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#datum\">datum</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#height\">height</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#isEllipsoidal\">isEllipsoidal</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#isSpherical\">isSpherical</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#latlon\">latlon</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#latlonheight\">latlonheight</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#latlonheightdatum\">latlonheightdatum</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#philam\">philam</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#philamheight\">philamheight</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#philamheightdatum\">philamheightdatum</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#sphericalCartesian\">sphericalCartesian</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">vector3dBase.Vector3dBase</a></code></b>:\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#crosserrors\">crosserrors</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#euclid\">euclid</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#homogeneous\">homogeneous</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#length\">length</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#length2\">length2</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#x\">x</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#x2y2z2\">x2y2z2</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#x2y2z23\">x2y2z23</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#xyz\">xyz</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#xyz3\">xyz3</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#y\">y</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#z\">z</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html\">ecefLocals._EcefLocal</a></code></b>:\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#Ecef\">Ecef</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"toLatLon\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toLatLon</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">**LatLon_and_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert this cartesian point to an exact geodetic point.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>LatLon_and_kwds</code></strong> - Optional <a \n          href=\"pygeodesy.ellipsoidalGeodSolve.LatLon-class.html\" \n          class=\"link\">LatLon</a> and <a \n          href=\"pygeodesy.ellipsoidalGeodSolve.LatLon-class.html\" \n          class=\"link\">LatLon</a> keyword arguments as <code>datum</code>.\n          Use <code><b>LatLon</b>=..., <b>datum</b>=...</code> to override \n          this <a href=\"pygeodesy.ellipsoidalGeodSolve.LatLon-class.html\" \n          class=\"link\">LatLon</a> class or specify \n          <code><b>LatLon</b>=None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The geodetic point (<a \n          href=\"pygeodesy.ellipsoidalGeodSolve.LatLon-class.html\" \n          class=\"link\">LatLon</a>) or if <code><b>LatLon</b> is \n          None</code>, an <a href=\"pygeodesy.ecef.Ecef9Tuple-class.html\" \n          class=\"link\">Ecef9Tuple</a><code>(x, y, z, lat, lon, height, C, \n          M, datum)</code> with <code>C</code> and <code>M</code> if \n          available.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>LatLon_and_kwds</code></b> argument.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#toLatLon\">cartesianBase.CartesianBase.toLatLon</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.ellipsoidalGeodSolve.LatLon-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.ellipsoidalGeodSolve.LatLon</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.ellipsoidalGeodSolve-module.html\">Module&nbsp;ellipsoidalGeodSolve</a> ::\n        Class&nbsp;LatLon\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.ellipsoidalGeodSolve.LatLon-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class LatLon</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n               object --+                    \n                        |                    \n             <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+                \n                            |                \n             <a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+            \n                                |            \n               object --+       |            \n                        |       |            \n             <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+   |            \n                            |   |            \n        <a href=\"pygeodesy.ecefLocals._EcefLocal-class.html\">ecefLocals._EcefLocal</a> --+            \n                                |            \n            <a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">latlonBase.LatLonBase</a> --+        \n                                    |        \n<a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html\">ellipsoidalBase.LatLonEllipsoidalBase</a> --+    \n                                        |    \n<a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html\">ellipsoidalBaseDI.LatLonEllipsoidalBaseDI</a> --+\n                                            |\n                                           <strong class=\"uidshort\">LatLon</strong>\n</pre>\n\n<hr />\n<p>An ellipsoidal <a \n  href=\"pygeodesy.ellipsoidalGeodSolve.LatLon-class.html\" \n  class=\"link\">LatLon</a> like <a \n  href=\"pygeodesy.ellipsoidalKarney.LatLon-class.html\" \n  class=\"link\">ellipsoidalKarney.LatLon</a> but using (exact) geodesic \n  <i>wrapper</i> <a href=\"pygeodesy.geodsolve.GeodesicSolve-class.html\" \n  class=\"link\">GeodesicSolve</a> to compute the geodesic distance, initial \n  and final bearing (azimuths) between two given points or the destination \n  point given a start point and an (initial) bearing.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoidalGeodSolve.LatLon-class.html#toCartesian\" class=\"summary-sig-name\">toCartesian</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">**Cartesian_datum_kwds</span>)</span><br />\n      Convert this point to exact cartesian (ECEF) coordinates.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html\">ellipsoidalBaseDI.LatLonEllipsoidalBaseDI</a></code></b>:\n      <code><a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#bearingTo2\">bearingTo2</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#destination\">destination</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#destination2\">destination2</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#distanceTo\">distanceTo</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#distanceTo3\">distanceTo3</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#finalBearingOn\">finalBearingOn</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#finalBearingTo\">finalBearingTo</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#initialBearingTo\">initialBearingTo</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#intermediateTo\">intermediateTo</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#intersecant2\">intersecant2</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#nearestOn8\">nearestOn8</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#plumbTo\">plumbTo</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html\">ellipsoidalBase.LatLonEllipsoidalBase</a></code></b>:\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#__init__\">__init__</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#antipode\">antipode</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#convertDatum\">convertDatum</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#convertRefFrame\">convertRefFrame</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#distanceTo2\">distanceTo2</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#elevation2\">elevation2</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#ellipsoid\">ellipsoid</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#ellipsoids\">ellipsoids</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#geoidHeight2\">geoidHeight2</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#intersection3\">intersection3</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#intersections2\">intersections2</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#isenclosedBy\">isenclosedBy</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#midpointTo\">midpointTo</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#nearestOn\">nearestOn</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#parse\">parse</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#to3xyz\">to3xyz</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toCss\">toCss</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toDatum\">toDatum</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toEtm\">toEtm</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toLcc\">toLcc</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toMgrs\">toMgrs</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toOsgr\">toOsgr</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toRefFrame\">toRefFrame</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toTransform\">toTransform</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toUps\">toUps</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toUtm\">toUtm</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toUtmUps\">toUtmUps</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#triangulate\">triangulate</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#trilaterate5\">trilaterate5</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">latlonBase.LatLonBase</a></code></b>:\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#PointsIter\">PointsIter</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#__eq__\">__eq__</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#__ne__\">__ne__</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#bounds\">bounds</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#boundsOf\">boundsOf</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#chordTo\">chordTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#circin6\">circin6</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#circum3\">circum3</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#circum4_\">circum4_</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#compassAngle\">compassAngle</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#compassAngleTo\">compassAngleTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#cosineAndoyerLambertTo\">cosineAndoyerLambertTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#cosineForsytheAndoyerLambertTo\">cosineForsytheAndoyerLambertTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#cosineLawTo\">cosineLawTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#destinationXyz\">destinationXyz</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#equals\">equals</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#equals3\">equals3</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#equirectangularTo\">equirectangularTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#euclideanTo\">euclideanTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#flatLocalTo\">flatLocalTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#flatPolarTo\">flatPolarTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#hartzell\">hartzell</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#haversineTo\">haversineTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#height4\">height4</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#heightStr\">heightStr</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#hubenyTo\">hubenyTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isantipode\">isantipode</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isantipodeTo\">isantipodeTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isequalTo\">isequalTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isequalTo3\">isequalTo3</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#latlon2\">latlon2</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#latlon2round\">latlon2round</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#latlon_\">latlon_</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#nearestOn6\">nearestOn6</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#nearestTo\">nearestTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#normal\">normal</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#philam2\">philam2</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#points\">points</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#points2\">points2</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#radii11\">radii11</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#rhumbAzimuthTo\">rhumbAzimuthTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#rhumbDestination\">rhumbDestination</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#rhumbDistanceTo\">rhumbDistanceTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#rhumbIntersecant2\">rhumbIntersecant2</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#rhumbLine\">rhumbLine</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#rhumbMidpointTo\">rhumbMidpointTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#thomasTo\">thomasTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#to2ab\">to2ab</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#to3llh\">to3llh</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toEcef\">toEcef</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toNormal\">toNormal</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toNvector\">toNvector</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toVector\">toVector</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toVector3d\">toVector3d</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toWm\">toWm</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#vincentysTo\">vincentysTo</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#others\">others</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#toRepr\">toRepr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html\">ecefLocals._EcefLocal</a></code></b>:\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toAer\">toAer</a></code>,\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toEnu\">toEnu</a></code>,\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toLocal\">toLocal</a></code>,\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toLtp\">toLtp</a></code>,\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toNed\">toNed</a></code>,\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toXyz\">toXyz</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoidalGeodSolve.LatLon-class.html#Equidistant\" class=\"summary-name\">Equidistant</a><br />\n      Get the prefered azimuthal equidistant projection <i>class</i> (<a \n      href=\"pygeodesy.azimuthal.EquidistantGeodSolve-class.html\" \n      class=\"link\">EquidistantGeodSolve</a>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoidalGeodSolve.LatLon-class.html#geodesicx\" class=\"summary-name\">geodesicx</a><br />\n      Get this <code>LatLon</code>'s (exact) geodesic (<a \n      href=\"pygeodesy.geodsolve.GeodesicSolve-class.html\" \n      class=\"link\">GeodesicSolve</a>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoidalGeodSolve.LatLon-class.html#geodesic\" class=\"summary-name\">geodesic</a><br />\n      Get this <code>LatLon</code>'s (exact) geodesic (<a \n      href=\"pygeodesy.geodsolve.GeodesicSolve-class.html\" \n      class=\"link\">GeodesicSolve</a>).\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html\">ellipsoidalBase.LatLonEllipsoidalBase</a></code></b>:\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#convergence\">convergence</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#datum\">datum</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#ellipsoidalLatLon\">ellipsoidalLatLon</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#epoch\">epoch</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#gamma\">gamma</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#reframe\">reframe</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#scale\">scale</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">latlonBase.LatLonBase</a></code></b>:\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#clipid\">clipid</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#height\">height</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isEllipsoidal\">isEllipsoidal</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isSpherical\">isSpherical</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isnormal\">isnormal</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#lam\">lam</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#lat\">lat</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#latlon\">latlon</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#latlonheight\">latlonheight</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#lon\">lon</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#phi\">phi</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#philam\">philam</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#philamheight\">philamheight</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#sphericalLatLon\">sphericalLatLon</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#xyz\">xyz</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#xyz3\">xyz3</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#xyzh\">xyzh</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html\">ecefLocals._EcefLocal</a></code></b>:\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#Ecef\">Ecef</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"toCartesian\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toCartesian</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">**Cartesian_datum_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert this point to exact cartesian (ECEF) coordinates.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>Cartesian_datum_kwds</code></strong> - Optional <a \n          href=\"pygeodesy.ellipsoidalGeodSolve.Cartesian-class.html\" \n          class=\"link\">Cartesian</a>, <b><code>datum</code></b> and other \n          keyword arguments, ignored if <code><b>Cartesian</b> is \n          None</code>.  Use <code><b>Cartesian</b>=Class</code> to override\n          this <a \n          href=\"pygeodesy.ellipsoidalGeodSolve.Cartesian-class.html\" \n          class=\"link\">Cartesian</a> class or set \n          <code><b>Cartesian</b>=None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The cartesian (ECEF) coordinates (<a \n          href=\"pygeodesy.ellipsoidalGeodSolve.Cartesian-class.html\" \n          class=\"link\">Cartesian</a>) or if <code><b>Cartesian</b> is \n          None</code>, an <a href=\"pygeodesy.ecef.Ecef9Tuple-class.html\" \n          class=\"link\">Ecef9Tuple</a><code>(x, y, z, lat, lon, height, C, \n          M, datum)</code> with <code>C</code> and <code>M</code> if \n          available.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>Cartesian</code></b>, <b><code>datum</code></b> or\n        other <b><code>Cartesian_datum_kwds</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toCartesian\">latlonBase.LatLonBase.toCartesian</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"Equidistant\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">Equidistant</h3>\n  <p>Get the prefered azimuthal equidistant projection <i>class</i> (<a \n  href=\"pygeodesy.azimuthal.EquidistantGeodSolve-class.html\" \n  class=\"link\">EquidistantGeodSolve</a>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">Equidistant(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the prefered azimuthal equidistant projection <i>class</i> (<a \nhref=\"pygeodesy.azimuthal.EquidistantGeodSolve-class.html\" \nclass=\"link\">EquidistantGeodSolve</a>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"geodesicx\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">geodesicx</h3>\n  <p>Get this <code>LatLon</code>'s (exact) geodesic (<a \n  href=\"pygeodesy.geodsolve.GeodesicSolve-class.html\" \n  class=\"link\">GeodesicSolve</a>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">geodesicx(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get this <code>LatLon</code>'s (exact) geodesic (<a \nhref=\"pygeodesy.geodsolve.GeodesicSolve-class.html\" \nclass=\"link\">GeodesicSolve</a>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"geodesic\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">geodesic</h3>\n  <p>Get this <code>LatLon</code>'s (exact) geodesic (<a \n  href=\"pygeodesy.geodsolve.GeodesicSolve-class.html\" \n  class=\"link\">GeodesicSolve</a>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">geodesicx(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get this <code>LatLon</code>'s (exact) geodesic (<a \nhref=\"pygeodesy.geodsolve.GeodesicSolve-class.html\" \nclass=\"link\">GeodesicSolve</a>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.ellipsoidalKarney-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.ellipsoidalKarney</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        Module&nbsp;ellipsoidalKarney\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.ellipsoidalKarney-module.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== MODULE DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Module ellipsoidalKarney</h1><p class=\"nomargin-top\"></p>\n<p>Ellipsoidal, <i>Karney</i>-based geodesy.</p>\n  <p>Ellipsoidal geodetic (lat-/longitude) <a \n  href=\"pygeodesy.ellipsoidalKarney.LatLon-class.html\" \n  class=\"link\">LatLon</a> and geocentric (ECEF) <a \n  href=\"pygeodesy.ellipsoidalKarney.Cartesian-class.html\" \n  class=\"link\">Cartesian</a> classes and functions <a \n  href=\"pygeodesy.ellipsoidalKarney-module.html#areaOf\" \n  class=\"link\">areaOf</a>, <a \n  href=\"pygeodesy.ellipsoidalKarney-module.html#intersection3\" \n  class=\"link\">intersection3</a>, <a \n  href=\"pygeodesy.ellipsoidalKarney-module.html#intersections2\" \n  class=\"link\">intersections2</a>, <a \n  href=\"pygeodesy.ellipsoidalKarney-module.html#isclockwise\" \n  class=\"link\">isclockwise</a>, <a \n  href=\"pygeodesy.ellipsoidalKarney-module.html#nearestOn\" \n  class=\"link\">nearestOn</a> and <a \n  href=\"pygeodesy.ellipsoidalKarney-module.html#perimeterOf\" \n  class=\"link\">perimeterOf</a>, requiring <i>Charles F.F. Karney</i>'s <a \n  href=\"https://PyPI.org/project/geographiclib\" \n  target=\"_top\">geographiclib</a> Python package to be installed.</p>\n  <p>A usage example of <code>ellipsoidalKarney</code>:</p>\n<pre class=\"py-doctest\">\n<span class=\"py-prompt\">&gt;&gt;&gt; </span><span class=\"py-keyword\">from</span> pygeodesy.ellipsoidalKarney <span class=\"py-keyword\">import</span> LatLon\n<span class=\"py-prompt\">&gt;&gt;&gt; </span>Newport_RI = LatLon(41.49008, -71.312796)\n<span class=\"py-prompt\">&gt;&gt;&gt; </span>Cleveland_OH = LatLon(41.499498, -81.695391)\n<span class=\"py-prompt\">&gt;&gt;&gt; </span>Newport_RI.distanceTo(Cleveland_OH)\n<span class=\"py-output\">866,455.4329098687  # meter</span></pre>\n  <p>You can change the ellipsoid model used by the <i>Karney</i> formulae \n  as follows:</p>\n<pre class=\"py-doctest\">\n<span class=\"py-prompt\">&gt;&gt;&gt; </span><span class=\"py-keyword\">from</span> pygeodesy <span class=\"py-keyword\">import</span> Datums\n<span class=\"py-prompt\">&gt;&gt;&gt; </span><span class=\"py-keyword\">from</span> pygeodesy.ellipsoidalKarney <span class=\"py-keyword\">import</span> LatLon\n<span class=\"py-prompt\">&gt;&gt;&gt; </span>p = LatLon(0, 0, datum=Datums.OSGB36)</pre>\n  <p>or by converting to anothor datum:</p>\n<pre class=\"py-doctest\">\n<span class=\"py-prompt\">&gt;&gt;&gt; </span>p = p.toDatum(Datums.OSGB36)</pre>\n\n<hr />\n<div class=\"fields\">      <p><strong>Version:</strong>\n        25.05.27\n      </p>\n</div><!-- ==================== CLASSES ==================== -->\n<a name=\"section-Classes\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Classes</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoidalKarney.Cartesian-class.html\" class=\"summary-name\">Cartesian</a><br />\n      Extended to convert <code>Karney</code>-based <a \n        href=\"pygeodesy.ellipsoidalKarney.Cartesian-class.html\" \n        class=\"link\">Cartesian</a> to <code>Karney</code>-based <a \n        href=\"pygeodesy.ellipsoidalKarney.LatLon-class.html\" \n        class=\"link\">LatLon</a> points.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoidalKarney.LatLon-class.html\" class=\"summary-name\">LatLon</a><br />\n      An ellipsoidal <a \n        href=\"pygeodesy.ellipsoidalKarney.LatLon-class.html\" \n        class=\"link\">LatLon</a> similar to <a \n        href=\"pygeodesy.ellipsoidalVincenty.LatLon-class.html\" \n        class=\"link\">ellipsoidalVincenty.LatLon</a> but using \n        <i>Karney</i>'s Python <a \n        href=\"https://PyPI.org/project/geographiclib\" \n        target=\"_top\">geographiclib</a> to compute geodesic distances, \n        bearings (azimuths), etc.\n    </td>\n  </tr>\n</table>\n<!-- ==================== FUNCTIONS ==================== -->\n<a name=\"section-Functions\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Functions</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoidalKarney-module.html#intersecant2\" class=\"summary-sig-name\">intersecant2</a>(<span class=\"summary-sig-arg\">center</span>,\n        <span class=\"summary-sig-arg\">circle</span>,\n        <span class=\"summary-sig-arg\">point</span>,\n        <span class=\"summary-sig-arg\">other</span>,\n        <span class=\"summary-sig-arg\">**exact_height_wrap_tol</span>)</span><br />\n      Compute the intersections of a circle and a geodesic given as two \n      points or as a point and (forward) bearing.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoidalKarney-module.html#ispolar\" class=\"summary-sig-name\">ispolar</a>(<span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Check whether a polygon encloses a pole.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoidalKarney-module.html#areaOf\" class=\"summary-sig-name\">areaOf</a>(<span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">datum</span>=<span class=\"summary-sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">polar</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Compute the area of an (ellipsoidal) polygon or composite using \n      <i>Karney</i>'s <a href=\"https://PyPI.org/project/geographiclib\" \n      target=\"_top\">geographiclib</a> package.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoidalKarney-module.html#intersection3\" class=\"summary-sig-name\">intersection3</a>(<span class=\"summary-sig-arg\">start1</span>,\n        <span class=\"summary-sig-arg\">end1</span>,\n        <span class=\"summary-sig-arg\">start2</span>,\n        <span class=\"summary-sig-arg\">end2</span>,\n        <span class=\"summary-sig-arg\">height</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">equidistant</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">tol</span>=<span class=\"summary-sig-default\">0.001</span>,\n        <span class=\"summary-sig-arg\">LatLon</span>=<span class=\"summary-sig-default\">&lt;class 'pygeodesy.ellipsoidalKarney.LatLon'&gt;</span>,\n        <span class=\"summary-sig-arg\">**LatLon_kwds</span>)</span><br />\n      <i>Iteratively</i> compute the intersection point of two lines, each \n      defined by two (ellipsoidal) points or by an (ellipsoidal) start \n      point and an (initial) bearing from North.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoidalKarney-module.html#intersections2\" class=\"summary-sig-name\">intersections2</a>(<span class=\"summary-sig-arg\">center1</span>,\n        <span class=\"summary-sig-arg\">radius1</span>,\n        <span class=\"summary-sig-arg\">center2</span>,\n        <span class=\"summary-sig-arg\">radius2</span>,\n        <span class=\"summary-sig-arg\">height</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">equidistant</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">tol</span>=<span class=\"summary-sig-default\">0.001</span>,\n        <span class=\"summary-sig-arg\">LatLon</span>=<span class=\"summary-sig-default\">&lt;class 'pygeodesy.ellipsoidalKarney.LatLon'&gt;</span>,\n        <span class=\"summary-sig-arg\">**LatLon_kwds</span>)</span><br />\n      <i>Iteratively</i> compute the intersection points of two circles, \n      each defined by an (ellipsoidal) center point and a radius.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoidalKarney-module.html#isclockwise\" class=\"summary-sig-name\">isclockwise</a>(<span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">datum</span>=<span class=\"summary-sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">polar</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Determine the direction of a path or polygon using <i>Karney</i>'s <a\n      href=\"https://PyPI.org/project/geographiclib\" \n      target=\"_top\">geographiclib</a> package.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoidalKarney-module.html#nearestOn\" class=\"summary-sig-name\">nearestOn</a>(<span class=\"summary-sig-arg\">point</span>,\n        <span class=\"summary-sig-arg\">point1</span>,\n        <span class=\"summary-sig-arg\">point2</span>,\n        <span class=\"summary-sig-arg\">within</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">height</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">equidistant</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">tol</span>=<span class=\"summary-sig-default\">0.001</span>,\n        <span class=\"summary-sig-arg\">LatLon</span>=<span class=\"summary-sig-default\">&lt;class 'pygeodesy.ellipsoidalKarney.LatLon'&gt;</span>,\n        <span class=\"summary-sig-arg\">**LatLon_kwds</span>)</span><br />\n      <i>Iteratively</i> locate the closest point on the geodesic between \n      two other (ellipsoidal) points.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoidalKarney-module.html#perimeterOf\" class=\"summary-sig-name\">perimeterOf</a>(<span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">closed</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">datum</span>=<span class=\"summary-sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">True</span>)</span><br />\n      Compute the perimeter of an (ellipsoidal) polygon or composite using \n      <i>Karney</i>'s <a href=\"https://PyPI.org/project/geographiclib\" \n      target=\"_top\">geographiclib</a> package.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== VARIABLES ==================== -->\n<a name=\"section-Variables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Variables</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"__all__\"></a><span class=\"summary-name\">__all__</span> = <code title=\"_ALL_LAZY.ellipsoidalKarney\">_ALL_LAZY.ellipsoidalKarney</code>\n    </td>\n  </tr>\n</table>\n<!-- ==================== FUNCTION DETAILS ==================== -->\n<a name=\"section-FunctionDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Function Details</span></td>\n</tr>\n</table>\n<a name=\"intersecant2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">intersecant2</span>&nbsp;(<span class=\"sig-arg\">center</span>,\n        <span class=\"sig-arg\">circle</span>,\n        <span class=\"sig-arg\">point</span>,\n        <span class=\"sig-arg\">other</span>,\n        <span class=\"sig-arg\">**exact_height_wrap_tol</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the intersections of a circle and a geodesic given as two \n  points or as a point and (forward) bearing.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>center</code></strong> - Center of the circle (<code>LatLon</code>).</li>\n        <li><strong class=\"pname\"><code>circle</code></strong> - Radius of the circle (<code>meter</code>, conventionally) or a \n          point on the circle (<code>LatLon</code>, as \n          <b><code>center</code></b>).</li>\n        <li><strong class=\"pname\"><code>point</code></strong> - A point of the geodesic (<code>LatLon</code>, as \n          <b><code>center</code></b>).</li>\n        <li><strong class=\"pname\"><code>other</code></strong> - An other point of the geodesic (<code>LatLon</code>, as \n          <b><code>center</code></b>) or the (forward) bearing at the \n          <b><code>point</code></b> (compass <code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>exact_height_wrap_tol</code></strong> - Optional keyword arguments <code><b>exact</b>=False</code>, \n          <code><b>height</b>=None</code>, <code><b>wrap</b>=False</code> \n          and <code><b>tol</b></code>, see method <a \n          href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#intersecant2\"\n          class=\"link\">intersecant2</a>.</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>NotImplementedError</strong></code> - Method <code>intersecant2</code> not available.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - If <b><code>center</code></b>, <b><code>point</code></b> or \n        <b><code>circle</code></b> or <b><code>other</code></b> points not \n        ellipsoidal or not compatible with <b><code>center</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <code>LatLon.intersecant2</code> of class <a \n        href=\"pygeodesy.ellipsoidalExact.LatLon-class.html\" \n        class=\"link\">ellipsoidalExact.LatLon</a>, <a \n        href=\"pygeodesy.ellipsoidalKarney.LatLon-class.html\" \n        class=\"link\">ellipsoidalKarney.LatLon</a> or <a \n        href=\"pygeodesy.ellipsoidalVincenty.LatLon-class.html\" \n        class=\"link\">ellipsoidalVincenty.LatLon</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"ispolar\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">ispolar</span>&nbsp;(<span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Check whether a polygon encloses a pole.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>points</code></strong> - The polygon points (<code>LatLon</code>[]).</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll the \n          <b><code>points</code></b> (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>True</code> if the polygon encloses a pole, \n          <code>False</code> otherwise.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.PointsError-class.html\">PointsError</a></strong></code> - Insufficient number of <b><code>points</code></b></li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Some <b><code>points</code></b> are not <code>LatLon</code> or \n        don't have <code>bearingTo2</code>, <code>initialBearingTo</code> \n        and <code>finalBearingTo</code> methods.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"areaOf\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">areaOf</span>&nbsp;(<span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">datum</span>=<span class=\"sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">polar</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the area of an (ellipsoidal) polygon or composite using \n  <i>Karney</i>'s <a href=\"https://PyPI.org/project/geographiclib\" \n  target=\"_top\">geographiclib</a> package.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>points</code></strong> - The polygon points (<a \n          href=\"pygeodesy.ellipsoidalKarney.LatLon-class.html\" \n          class=\"link\">LatLon</a>[], <a \n          href=\"pygeodesy.booleans.BooleanFHP-class.html\" \n          class=\"link\">BooleanFHP</a> or <a \n          href=\"pygeodesy.booleans.BooleanGH-class.html\" \n          class=\"link\">BooleanGH</a>).</li>\n        <li><strong class=\"pname\"><code>datum</code></strong> - Optional datum (<a href=\"pygeodesy.datums.Datum-class.html\" \n          class=\"link\">Datum</a>).</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll the \n          <b><code>points</code></b> (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>polar</code></strong> - Use <code><b>polar</b>=True</code> if the polygon encloses a pole\n          (<code>bool</code>), see function <a \n          href=\"pygeodesy.points-module.html#ispolar\" \n          class=\"link\">ispolar</a> and <a \n          href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1GeodesicExact.html#a3d7a9155e838a09a48dc14d0c3fac525\"\n          target=\"_top\">area of a polygon enclosing a pole</a>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Area (<code>meter</code>, same as units of the \n          <b><code>datum</code></b>'s ellipsoid axes, <i>squared</i>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ImportError</strong></code> - Package <a href=\"https://PyPI.org/project/geographiclib\" \n        target=\"_top\">geographiclib</a> not installed or not found.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.PointsError-class.html\">PointsError</a></strong></code> - Insufficient number of <b><code>points</code></b>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Some <b><code>points</code></b> are not <a \n        href=\"pygeodesy.ellipsoidalKarney.LatLon-class.html\" \n        class=\"link\">LatLon</a>.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <code><b>wrap</b>=False</code>, unwrapped, unrolled \n        longitudes not supported.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Functions <a href=\"pygeodesy.points-module.html#areaOf\" \n        class=\"link\">pygeodesy.areaOf</a>, <a \n        href=\"pygeodesy.ellipsoidalExact-module.html#areaOf\" \n        class=\"link\">ellipsoidalExact.areaOf</a>, <a \n        href=\"pygeodesy.ellipsoidalGeodSolve-module.html#areaOf\" \n        class=\"link\">ellipsoidalGeodSolve.areaOf</a>, <a \n        href=\"pygeodesy.sphericalNvector-module.html#areaOf\" \n        class=\"link\">sphericalNvector.areaOf</a> and <a \n        href=\"pygeodesy.sphericalTrigonometry-module.html#areaOf\" \n        class=\"link\">sphericalTrigonometry.areaOf</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"intersection3\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">intersection3</span>&nbsp;(<span class=\"sig-arg\">start1</span>,\n        <span class=\"sig-arg\">end1</span>,\n        <span class=\"sig-arg\">start2</span>,\n        <span class=\"sig-arg\">end2</span>,\n        <span class=\"sig-arg\">height</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">equidistant</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">tol</span>=<span class=\"sig-default\">0.001</span>,\n        <span class=\"sig-arg\">LatLon</span>=<span class=\"sig-default\">&lt;class 'pygeodesy.ellipsoidalKarney.LatLon'&gt;</span>,\n        <span class=\"sig-arg\">**LatLon_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p><i>Iteratively</i> compute the intersection point of two lines, each \n  defined by two (ellipsoidal) points or by an (ellipsoidal) start point \n  and an (initial) bearing from North.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>start1</code></strong> - Start point of the first line (<a \n          href=\"pygeodesy.ellipsoidalKarney.LatLon-class.html\" \n          class=\"link\">LatLon</a>).</li>\n        <li><strong class=\"pname\"><code>end1</code></strong> - End point of the first line (<a \n          href=\"pygeodesy.ellipsoidalKarney.LatLon-class.html\" \n          class=\"link\">LatLon</a>) or the initial bearing at the first \n          point (compass <code>degrees360</code>).</li>\n        <li><strong class=\"pname\"><code>start2</code></strong> - Start point of the second line (<a \n          href=\"pygeodesy.ellipsoidalKarney.LatLon-class.html\" \n          class=\"link\">LatLon</a>).</li>\n        <li><strong class=\"pname\"><code>end2</code></strong> - End point of the second line (<a \n          href=\"pygeodesy.ellipsoidalKarney.LatLon-class.html\" \n          class=\"link\">LatLon</a>) or the initial bearing at the second \n          point (compass <code>degrees360</code>).</li>\n        <li><strong class=\"pname\"><code>height</code></strong> - Optional height at the intersection (<code>meter</code>, \n          conventionally) or <code>None</code> for the mean height.</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll the \n          <b><code>start2</code></b> and <b><code>end*</code></b> points \n          (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>equidistant</code></strong> - An azimuthal equidistant projection (<i>class</i> or function <a \n          href=\"pygeodesy.azimuthal-module.html#equidistant\" \n          class=\"link\">pygeodesy.equidistant</a>) or <code>None</code> for \n          the preferred <code><b>start1</b>.Equidistant</code>.</li>\n        <li><strong class=\"pname\"><code>tol</code></strong> - Tolerance for convergence and for skew line distance and length \n          (<code>meter</code>, conventionally).</li>\n        <li><strong class=\"pname\"><code>LatLon</code></strong> - Optional class to return the intersection points (<a \n          href=\"pygeodesy.ellipsoidalKarney.LatLon-class.html\" \n          class=\"link\">LatLon</a>) or <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>LatLon_kwds</code></strong> - Optional, additional <b><code>LatLon</code></b> keyword \n          arguments, ignored if <code><b>LatLon</b> is None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>An <a href=\"pygeodesy.namedTuples.Intersection3Tuple-class.html\" \n          class=\"link\">Intersection3Tuple</a><code>(point, outside1, \n          outside2)</code> with <code>point</code> a \n          <b><code>LatLon</code></b> or if <code><b>LatLon</b> is \n          None</code>, a <a \n          href=\"pygeodesy.namedTuples.LatLon4Tuple-class.html\" \n          class=\"link\">LatLon4Tuple</a><code>(lat, lon, height, \n          datum)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.IntersectionError-class.html\">IntersectionError</a></strong></code> - Skew, colinear, parallel or otherwise non-intersecting lines or no \n        convergence for the given <b><code>tol</code></b>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid or non-ellipsoidal <b><code>start1</code></b>, \n        <b><code>end1</code></b>, <b><code>start2</code></b> or \n        <b><code>end2</code></b> or invalid \n        <b><code>equidistant</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        For each line specified with an initial bearing, a pseudo-end point\n        is computed as the <code>destination</code> along that bearing at \n        about 1.5 times the distance from the start point to an initial \n        gu-/estimate of the intersection point (and between 1/8 and 3/8 of \n        the authalic earth perimeter).\n      </p>\n      <p><strong>See Also:</strong>\n        <a \n        href=\"https://GIS.StackExchange.com/questions/48937/calculating-intersection-of-two-circles\"\n        target=\"_top\">The <b>ellipsoidal</b> case</a> and <a \n        href=\"https://ArXiv.org/pdf/1102.1215.pdf\" target=\"_top\">Karney's \n        paper</a>, pp 20-21, section <b>14. MARITIME BOUNDARIES</b> for \n        more details about the iteration algorithm.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"intersections2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">intersections2</span>&nbsp;(<span class=\"sig-arg\">center1</span>,\n        <span class=\"sig-arg\">radius1</span>,\n        <span class=\"sig-arg\">center2</span>,\n        <span class=\"sig-arg\">radius2</span>,\n        <span class=\"sig-arg\">height</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">equidistant</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">tol</span>=<span class=\"sig-default\">0.001</span>,\n        <span class=\"sig-arg\">LatLon</span>=<span class=\"sig-default\">&lt;class 'pygeodesy.ellipsoidalKarney.LatLon'&gt;</span>,\n        <span class=\"sig-arg\">**LatLon_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p><i>Iteratively</i> compute the intersection points of two circles, \n  each defined by an (ellipsoidal) center point and a radius.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>center1</code></strong> - Center of the first circle (<a \n          href=\"pygeodesy.ellipsoidalKarney.LatLon-class.html\" \n          class=\"link\">LatLon</a>).</li>\n        <li><strong class=\"pname\"><code>radius1</code></strong> - Radius of the first circle (<code>meter</code>, conventionally).</li>\n        <li><strong class=\"pname\"><code>center2</code></strong> - Center of the second circle (<a \n          href=\"pygeodesy.ellipsoidalKarney.LatLon-class.html\" \n          class=\"link\">LatLon</a>).</li>\n        <li><strong class=\"pname\"><code>radius2</code></strong> - Radius of the second circle (<code>meter</code>, same units as \n          <b><code>radius1</code></b>).</li>\n        <li><strong class=\"pname\"><code>height</code></strong> - Optional height for the intersection points (<code>meter</code>, \n          conventionally) or <code>None</code> for the <i>&quot;radical \n          height&quot;</i> at the <i>radical line</i> between both centers.</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll \n          <b><code>center2</code></b> (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>equidistant</code></strong> - An azimuthal equidistant projection (<i>class</i> or function <a \n          href=\"pygeodesy.azimuthal-module.html#equidistant\" \n          class=\"link\">pygeodesy.equidistant</a>) or <code>None</code> for \n          the preferred <code><b>center1</b>.Equidistant</code>.</li>\n        <li><strong class=\"pname\"><code>tol</code></strong> - Convergence tolerance (<code>meter</code>, same units as \n          <b><code>radius1</code></b> and <b><code>radius2</code></b>).</li>\n        <li><strong class=\"pname\"><code>LatLon</code></strong> - Optional class to return the intersection points (<a \n          href=\"pygeodesy.ellipsoidalKarney.LatLon-class.html\" \n          class=\"link\">LatLon</a>) or <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>LatLon_kwds</code></strong> - Optional, additional <b><code>LatLon</code></b> keyword \n          arguments, ignored if <code><b>LatLon</b> is None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>2-Tuple of the intersection points, each a \n          <b><code>LatLon</code></b> instance or <a \n          href=\"pygeodesy.namedTuples.LatLon4Tuple-class.html\" \n          class=\"link\">LatLon4Tuple</a><code>(lat, lon, height, \n          datum)</code> if <code><b>LatLon</b> is None</code>.  For \n          abutting circles, both points are the same instance, aka the \n          <i>radical center</i>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.IntersectionError-class.html\">IntersectionError</a></strong></code> - Concentric, antipodal, invalid or non-intersecting circles or no \n        convergence for the <b><code>tol</code></b>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid or non-ellipsoidal <b><code>center1</code></b> or \n        <b><code>center2</code></b> or invalid \n        <b><code>equidistant</code></b>.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.UnitError-class.html\">UnitError</a></strong></code> - Invalid <b><code>radius1</code></b>, <b><code>radius2</code></b> or\n        <b><code>height</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a \n        href=\"https://GIS.StackExchange.com/questions/48937/calculating-intersection-of-two-circles\"\n        target=\"_top\">The <b>ellipsoidal</b> case</a>, <a \n        href=\"https://ArXiv.org/pdf/1102.1215.pdf\" target=\"_top\">Karney's \n        paper</a>, pp 20-21, section <b>14. MARITIME BOUNDARIES</b>, <a \n        href=\"https://MathWorld.Wolfram.com/Circle-CircleIntersection.html\"\n        target=\"_top\">circle-circle</a> and <a \n        href=\"https://MathWorld.Wolfram.com/Sphere-SphereIntersection.html\"\n        target=\"_top\">sphere-sphere</a> intersections.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"isclockwise\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">isclockwise</span>&nbsp;(<span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">datum</span>=<span class=\"sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">polar</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Determine the direction of a path or polygon using <i>Karney</i>'s <a \n  href=\"https://PyPI.org/project/geographiclib\" \n  target=\"_top\">geographiclib</a> package.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>points</code></strong> - The path or polygon points (<code>LatLon</code>[]).</li>\n        <li><strong class=\"pname\"><code>datum</code></strong> - Optional datum (<a href=\"pygeodesy.datums.Datum-class.html\" \n          class=\"link\">Datum</a>).</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll the \n          <b><code>points</code></b> (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>polar</code></strong> - Use <code><b>polar</b>=True</code> if the \n          <code><b>points</b></code> enclose a pole (<code>bool</code>), \n          see function <a href=\"https://pygeodeys.points.ispolar\" \n          target=\"_top\">ispolar</a>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>True</code> if <b><code>points</code></b> are clockwise, \n          <code>False</code> otherwise.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ImportError</strong></code> - Package <a href=\"https://PyPI.org/project/geographiclib\" \n        target=\"_top\">geographiclib</a> not installed or not found.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.PointsError-class.html\">PointsError</a></strong></code> - Insufficient number of <b><code>points</code></b>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Some <b><code>points</code></b> are not <code>LatLon</code>.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - The <b><code>points</code></b> enclose a pole or zero area.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"pygeodesy.points-module.html#isclockwise\" \n        class=\"link\">pygeodesy.isclockwise</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"nearestOn\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">nearestOn</span>&nbsp;(<span class=\"sig-arg\">point</span>,\n        <span class=\"sig-arg\">point1</span>,\n        <span class=\"sig-arg\">point2</span>,\n        <span class=\"sig-arg\">within</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">height</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">equidistant</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">tol</span>=<span class=\"sig-default\">0.001</span>,\n        <span class=\"sig-arg\">LatLon</span>=<span class=\"sig-default\">&lt;class 'pygeodesy.ellipsoidalKarney.LatLon'&gt;</span>,\n        <span class=\"sig-arg\">**LatLon_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p><i>Iteratively</i> locate the closest point on the geodesic between \n  two other (ellipsoidal) points.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>point</code></strong> - Reference point (<code>LatLon</code>).</li>\n        <li><strong class=\"pname\"><code>point1</code></strong> - Start point of the geodesic (<code>LatLon</code>).</li>\n        <li><strong class=\"pname\"><code>point2</code></strong> - End point of the geodesic (<code>LatLon</code>).</li>\n        <li><strong class=\"pname\"><code>within</code></strong> - If <code>True</code>, return the closest point <i>between</i> \n          <b><code>point1</code></b> and <b><code>point2</code></b>, \n          otherwise the closest point elsewhere on the geodesic \n          (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>height</code></strong> - Optional height for the closest point (<code>meter</code>, \n          conventionally) or <code>None</code> or <code>False</code> for \n          the interpolated height.  If <code>False</code>, the closest \n          takes the heights of the points into account.</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll both \n          <b><code>point1</code></b> and <b><code>point2</code></b> \n          (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>equidistant</code></strong> - An azimuthal equidistant projection (<i>class</i> or function <a \n          href=\"pygeodesy.azimuthal-module.html#equidistant\" \n          class=\"link\">pygeodesy.equidistant</a>) or <code>None</code> for \n          the preferred <code><b>point</b>.Equidistant</code>.</li>\n        <li><strong class=\"pname\"><code>tol</code></strong> - Convergence tolerance (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>LatLon</code></strong> - Optional class to return the closest point (<a \n          href=\"pygeodesy.ellipsoidalKarney.LatLon-class.html\" \n          class=\"link\">LatLon</a>) or <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>LatLon_kwds</code></strong> - Optional, additional <b><code>LatLon</code></b> keyword \n          arguments, ignored if <code><b>LatLon</b> is None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Closest point, a <b><code>LatLon</code></b> instance or if \n          <code><b>LatLon</b> is None</code>, a <a \n          href=\"pygeodesy.namedTuples.LatLon4Tuple-class.html\" \n          class=\"link\">LatLon4Tuple</a><code>(lat, lon, height, \n          datum)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ImportError</strong></code> - Package <a href=\"https://PyPI.org/project/geographiclib\" \n        target=\"_top\">geographiclib</a> not installed or not found.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid or non-ellipsoidal <b><code>point</code></b>, \n        <b><code>point1</code></b> or <b><code>point2</code></b> or invalid\n        <b><code>equidistant</code></b>.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - No convergence for the <b><code>tol</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a \n        href=\"https://GIS.StackExchange.com/questions/48937/calculating-intersection-of-two-circles\"\n        target=\"_top\">The <b>ellipsoidal</b> case</a> and <a \n        href=\"https://ArXiv.org/pdf/1102.1215.pdf\" target=\"_top\">Karney's \n        paper</a>, pp 20-21, section <b>14. MARITIME BOUNDARIES</b> for \n        more details about the iteration algorithm.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"perimeterOf\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">perimeterOf</span>&nbsp;(<span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">closed</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">datum</span>=<span class=\"sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">True</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the perimeter of an (ellipsoidal) polygon or composite using \n  <i>Karney</i>'s <a href=\"https://PyPI.org/project/geographiclib\" \n  target=\"_top\">geographiclib</a> package.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>points</code></strong> - The polygon points (<a \n          href=\"pygeodesy.ellipsoidalKarney.LatLon-class.html\" \n          class=\"link\">LatLon</a>[], <a \n          href=\"pygeodesy.booleans.BooleanFHP-class.html\" \n          class=\"link\">BooleanFHP</a> or <a \n          href=\"pygeodesy.booleans.BooleanGH-class.html\" \n          class=\"link\">BooleanGH</a>).</li>\n        <li><strong class=\"pname\"><code>closed</code></strong> - Optionally, close the polygon (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>datum</code></strong> - Optional datum (<a href=\"pygeodesy.datums.Datum-class.html\" \n          class=\"link\">Datum</a>).</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll the \n          <b><code>points</code></b> (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Perimeter (<code>meter</code>, same as units of the \n          <b><code>datum</code></b>'s ellipsoid axes).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ImportError</strong></code> - Package <a href=\"https://PyPI.org/project/geographiclib\" \n        target=\"_top\">geographiclib</a> not installed or not found.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.PointsError-class.html\">PointsError</a></strong></code> - Insufficient number of <b><code>points</code></b>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Some <b><code>points</code></b> are not <a \n        href=\"pygeodesy.ellipsoidalKarney.LatLon-class.html\" \n        class=\"link\">LatLon</a> or <code><b>closed</b>=False</code> with \n        <b><code>points</code></b> a composite.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <code><b>wrap</b>=False</code>, unwrapped, unrolled \n        longitudes not supported or <code><b>closed</b>=False</code> with \n        <code><b>points</b></code> a composite.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Functions <a href=\"pygeodesy.points-module.html#perimeterOf\" \n        class=\"link\">pygeodesy.perimeterOf</a>, <a \n        href=\"pygeodesy.ellipsoidalExact-module.html#perimeterOf\" \n        class=\"link\">ellipsoidalExact.perimeterOf</a>, <a \n        href=\"pygeodesy.ellipsoidalGeodSolve-module.html#perimeterOf\" \n        class=\"link\">ellipsoidalGeodSolve.perimeterOf</a>, <a \n        href=\"pygeodesy.sphericalNvector-module.html#perimeterOf\" \n        class=\"link\">sphericalNvector.perimeterOf</a> and <a \n        href=\"pygeodesy.sphericalTrigonometry-module.html#perimeterOf\" \n        class=\"link\">sphericalTrigonometry.perimeterOf</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.ellipsoidalKarney.Cartesian-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.ellipsoidalKarney.Cartesian</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.ellipsoidalKarney-module.html\">Module&nbsp;ellipsoidalKarney</a> ::\n        Class&nbsp;Cartesian\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.ellipsoidalKarney.Cartesian-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Cartesian</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n          object --+                        \n                   |                        \n        <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+                    \n                       |                    \n        <a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+                \n                           |                \n   <a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">vector3dBase.Vector3dBase</a> --+            \n                               |            \n               <a href=\"pygeodesy.vector3d.Vector3d-class.html\">vector3d.Vector3d</a> --+        \n                                   |        \n                  object --+       |        \n                           |       |        \n                <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+   |        \n                               |   |        \n           <a href=\"pygeodesy.ecefLocals._EcefLocal-class.html\">ecefLocals._EcefLocal</a> --+        \n                                   |        \n         <a href=\"pygeodesy.cartesianBase.CartesianBase-class.html\">cartesianBase.CartesianBase</a> --+    \n                                       |    \n<a href=\"pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html\">ellipsoidalBase.CartesianEllipsoidalBase</a> --+\n                                           |\n                                          <strong class=\"uidshort\">Cartesian</strong>\n</pre>\n\n<hr />\n<p>Extended to convert <code>Karney</code>-based <a \n  href=\"pygeodesy.ellipsoidalKarney.Cartesian-class.html\" \n  class=\"link\">Cartesian</a> to <code>Karney</code>-based <a \n  href=\"pygeodesy.ellipsoidalKarney.LatLon-class.html\" \n  class=\"link\">LatLon</a> points.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoidalKarney.Cartesian-class.html#toLatLon\" class=\"summary-sig-name\">toLatLon</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">**LatLon_and_kwds</span>)</span><br />\n      Convert this cartesian point to a <code>Karney</code>-based geodetic \n      point.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html\">ellipsoidalBase.CartesianEllipsoidalBase</a></code></b>:\n      <code><a href=\"pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#__init__\">__init__</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#convertRefFrame\">convertRefFrame</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#intersections2\">intersections2</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#toRefFrame\">toRefFrame</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#toTransforms_\">toTransforms_</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html\">cartesianBase.CartesianBase</a></code></b>:\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#Roc2\">Roc2</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#cassini\">cassini</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#collins\">collins</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#collins5\">collins5</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#convertDatum\">convertDatum</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#destinationXyz\">destinationXyz</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#hartzell\">hartzell</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#height3\">height3</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#height4\">height4</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#pierlot\">pierlot</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#pierlotx\">pierlotx</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#tienstra\">tienstra</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#tienstra7\">tienstra7</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#to2ab\">to2ab</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#to2ll\">to2ll</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#to3llh\">to3llh</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#toDatum\">toDatum</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#toEcef\">toEcef</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#toNvector\">toNvector</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#toRtp\">toRtp</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#toTransform\">toTransform</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#toVector\">toVector</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.vector3d.Vector3d-class.html\">vector3d.Vector3d</a></code></b>:\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#bearing\">bearing</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#circin6\">circin6</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#circum3\">circum3</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#circum4_\">circum4_</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#iscolinearWith\">iscolinearWith</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#meeus2\">meeus2</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#nearestOn\">nearestOn</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#nearestOn6\">nearestOn6</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#parse\">parse</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#radii11\">radii11</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#soddy4\">soddy4</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#toCartesian\">toCartesian</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#trilaterate2d2\">trilaterate2d2</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#trilaterate3d2\">trilaterate3d2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">vector3dBase.Vector3dBase</a></code></b>:\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__abs__\">__abs__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__add__\">__add__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__bool__\">__bool__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__ceil__\">__ceil__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__cmp__\">__cmp__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__div__\">__div__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__divmod__\">__divmod__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__eq__\">__eq__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__float__\">__float__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__floor__\">__floor__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__floordiv__\">__floordiv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__ge__\">__ge__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__gt__\">__gt__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__iadd__\">__iadd__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__idiv__\">__idiv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__ifloordiv__\">__ifloordiv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__imod__\">__imod__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__imul__\">__imul__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__int__\">__int__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__ipow__\">__ipow__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__isub__\">__isub__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__itruediv__\">__itruediv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__le__\">__le__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__long__\">__long__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__lt__\">__lt__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__mod__\">__mod__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__mul__\">__mul__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__ne__\">__ne__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__neg__\">__neg__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__nonzero__\">__nonzero__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__pos__\">__pos__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__pow__\">__pow__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__radd__\">__radd__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rdiv__\">__rdiv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rdivmod__\">__rdivmod__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rfloordiv__\">__rfloordiv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rmod__\">__rmod__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rmul__\">__rmul__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__round__\">__round__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rpow__\">__rpow__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rsub__\">__rsub__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rtruediv__\">__rtruediv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__sub__\">__sub__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__truediv__\">__truediv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__trunc__\">__trunc__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#angleTo\">angleTo</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#apply\">apply</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#bools\">bools</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#cmp\">cmp</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#cross\">cross</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#dividedBy\">dividedBy</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#dividedBy_\">dividedBy_</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#dot\">dot</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#equals\">equals</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#equirectangular\">equirectangular</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#fabs\">fabs</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#floats\">floats</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#floorDividedBy\">floorDividedBy</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#floorDividedBy_\">floorDividedBy_</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#intermediateTo\">intermediateTo</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#ints\">ints</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#isconjugateTo\">isconjugateTo</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#isequalTo\">isequalTo</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#minus\">minus</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#minus_\">minus_</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#negate\">negate</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#others\">others</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#plus\">plus</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#plus_\">plus_</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#pow\">pow</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#rotate\">rotate</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#rotateAround\">rotateAround</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#sum\">sum</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#times\">times</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#times_\">times_</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#to3xyz\">to3xyz</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#unit\">unit</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#toRepr\">toRepr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html\">ecefLocals._EcefLocal</a></code></b>:\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toAer\">toAer</a></code>,\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toEnu\">toEnu</a></code>,\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toLocal\">toLocal</a></code>,\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toLtp\">toLtp</a></code>,\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toNed\">toNed</a></code>,\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toXyz\">toXyz</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html\">ellipsoidalBase.CartesianEllipsoidalBase</a></code></b>:\n      <code><a href=\"pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#ellipsoidalCartesian\">ellipsoidalCartesian</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#epoch\">epoch</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#reframe\">reframe</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html\">cartesianBase.CartesianBase</a></code></b>:\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#datum\">datum</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#height\">height</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#isEllipsoidal\">isEllipsoidal</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#isSpherical\">isSpherical</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#latlon\">latlon</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#latlonheight\">latlonheight</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#latlonheightdatum\">latlonheightdatum</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#philam\">philam</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#philamheight\">philamheight</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#philamheightdatum\">philamheightdatum</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#sphericalCartesian\">sphericalCartesian</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">vector3dBase.Vector3dBase</a></code></b>:\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#crosserrors\">crosserrors</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#euclid\">euclid</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#homogeneous\">homogeneous</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#length\">length</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#length2\">length2</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#x\">x</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#x2y2z2\">x2y2z2</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#x2y2z23\">x2y2z23</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#xyz\">xyz</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#xyz3\">xyz3</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#y\">y</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#z\">z</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html\">ecefLocals._EcefLocal</a></code></b>:\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#Ecef\">Ecef</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"toLatLon\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toLatLon</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">**LatLon_and_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert this cartesian point to a <code>Karney</code>-based geodetic \n  point.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>LatLon_and_kwds</code></strong> - Optional <a href=\"pygeodesy.ellipsoidalKarney.LatLon-class.html\" \n          class=\"link\">LatLon</a> and <a \n          href=\"pygeodesy.ellipsoidalKarney.LatLon-class.html\" \n          class=\"link\">LatLon</a> keyword arguments as <code>datum</code>.\n          Use <code><b>LatLon</b>=..., <b>datum</b>=...</code> to override \n          this <a href=\"pygeodesy.ellipsoidalKarney.LatLon-class.html\" \n          class=\"link\">LatLon</a> class or specify \n          <code><b>LatLon</b>=None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The geodetic point (<a \n          href=\"pygeodesy.ellipsoidalKarney.LatLon-class.html\" \n          class=\"link\">LatLon</a>) or if <code><b>LatLon</b> is \n          None</code>, an <a href=\"pygeodesy.ecef.Ecef9Tuple-class.html\" \n          class=\"link\">Ecef9Tuple</a><code>(x, y, z, lat, lon, height, C, \n          M, datum)</code> with <code>C</code> and <code>M</code> if \n          available.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>LatLon_and_kwds</code></b> argument.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#toLatLon\">cartesianBase.CartesianBase.toLatLon</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.ellipsoidalKarney.LatLon-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.ellipsoidalKarney.LatLon</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.ellipsoidalKarney-module.html\">Module&nbsp;ellipsoidalKarney</a> ::\n        Class&nbsp;LatLon\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.ellipsoidalKarney.LatLon-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class LatLon</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n               object --+                    \n                        |                    \n             <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+                \n                            |                \n             <a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+            \n                                |            \n               object --+       |            \n                        |       |            \n             <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+   |            \n                            |   |            \n        <a href=\"pygeodesy.ecefLocals._EcefLocal-class.html\">ecefLocals._EcefLocal</a> --+            \n                                |            \n            <a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">latlonBase.LatLonBase</a> --+        \n                                    |        \n<a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html\">ellipsoidalBase.LatLonEllipsoidalBase</a> --+    \n                                        |    \n<a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html\">ellipsoidalBaseDI.LatLonEllipsoidalBaseDI</a> --+\n                                            |\n                                           <strong class=\"uidshort\">LatLon</strong>\n</pre>\n\n<hr />\n<p>An ellipsoidal <a href=\"pygeodesy.ellipsoidalKarney.LatLon-class.html\"\n  class=\"link\">LatLon</a> similar to <a \n  href=\"pygeodesy.ellipsoidalVincenty.LatLon-class.html\" \n  class=\"link\">ellipsoidalVincenty.LatLon</a> but using <i>Karney</i>'s \n  Python <a href=\"https://PyPI.org/project/geographiclib\" \n  target=\"_top\">geographiclib</a> to compute geodesic distances, bearings \n  (azimuths), etc.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoidalKarney.LatLon-class.html#bearingTo\" class=\"summary-sig-name\">bearingTo</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      DEPRECATED, use method <a \n      href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#initialBearingTo\"\n      class=\"link\">initialBearingTo</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoidalKarney.LatLon-class.html#toCartesian\" class=\"summary-sig-name\">toCartesian</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">**Cartesian_datum_kwds</span>)</span><br />\n      Convert this point to <code>Karney</code>-based cartesian (ECEF) \n      coordinates.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html\">ellipsoidalBaseDI.LatLonEllipsoidalBaseDI</a></code></b>:\n      <code><a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#bearingTo2\">bearingTo2</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#destination\">destination</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#destination2\">destination2</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#distanceTo\">distanceTo</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#distanceTo3\">distanceTo3</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#finalBearingOn\">finalBearingOn</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#finalBearingTo\">finalBearingTo</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#initialBearingTo\">initialBearingTo</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#intermediateTo\">intermediateTo</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#intersecant2\">intersecant2</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#nearestOn8\">nearestOn8</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#plumbTo\">plumbTo</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html\">ellipsoidalBase.LatLonEllipsoidalBase</a></code></b>:\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#__init__\">__init__</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#antipode\">antipode</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#convertDatum\">convertDatum</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#convertRefFrame\">convertRefFrame</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#distanceTo2\">distanceTo2</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#elevation2\">elevation2</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#ellipsoid\">ellipsoid</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#ellipsoids\">ellipsoids</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#geoidHeight2\">geoidHeight2</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#intersection3\">intersection3</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#intersections2\">intersections2</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#isenclosedBy\">isenclosedBy</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#midpointTo\">midpointTo</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#nearestOn\">nearestOn</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#parse\">parse</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#to3xyz\">to3xyz</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toCss\">toCss</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toDatum\">toDatum</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toEtm\">toEtm</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toLcc\">toLcc</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toMgrs\">toMgrs</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toOsgr\">toOsgr</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toRefFrame\">toRefFrame</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toTransform\">toTransform</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toUps\">toUps</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toUtm\">toUtm</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toUtmUps\">toUtmUps</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#triangulate\">triangulate</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#trilaterate5\">trilaterate5</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">latlonBase.LatLonBase</a></code></b>:\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#PointsIter\">PointsIter</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#__eq__\">__eq__</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#__ne__\">__ne__</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#bounds\">bounds</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#boundsOf\">boundsOf</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#chordTo\">chordTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#circin6\">circin6</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#circum3\">circum3</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#circum4_\">circum4_</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#compassAngle\">compassAngle</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#compassAngleTo\">compassAngleTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#cosineAndoyerLambertTo\">cosineAndoyerLambertTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#cosineForsytheAndoyerLambertTo\">cosineForsytheAndoyerLambertTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#cosineLawTo\">cosineLawTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#destinationXyz\">destinationXyz</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#equals\">equals</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#equals3\">equals3</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#equirectangularTo\">equirectangularTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#euclideanTo\">euclideanTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#flatLocalTo\">flatLocalTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#flatPolarTo\">flatPolarTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#hartzell\">hartzell</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#haversineTo\">haversineTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#height4\">height4</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#heightStr\">heightStr</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#hubenyTo\">hubenyTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isantipode\">isantipode</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isantipodeTo\">isantipodeTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isequalTo\">isequalTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isequalTo3\">isequalTo3</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#latlon2\">latlon2</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#latlon2round\">latlon2round</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#latlon_\">latlon_</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#nearestOn6\">nearestOn6</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#nearestTo\">nearestTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#normal\">normal</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#philam2\">philam2</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#points\">points</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#points2\">points2</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#radii11\">radii11</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#rhumbAzimuthTo\">rhumbAzimuthTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#rhumbDestination\">rhumbDestination</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#rhumbDistanceTo\">rhumbDistanceTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#rhumbIntersecant2\">rhumbIntersecant2</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#rhumbLine\">rhumbLine</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#rhumbMidpointTo\">rhumbMidpointTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#thomasTo\">thomasTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#to2ab\">to2ab</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#to3llh\">to3llh</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toEcef\">toEcef</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toNormal\">toNormal</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toNvector\">toNvector</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toVector\">toVector</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toVector3d\">toVector3d</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toWm\">toWm</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#vincentysTo\">vincentysTo</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#others\">others</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#toRepr\">toRepr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html\">ecefLocals._EcefLocal</a></code></b>:\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toAer\">toAer</a></code>,\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toEnu\">toEnu</a></code>,\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toLocal\">toLocal</a></code>,\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toLtp\">toLtp</a></code>,\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toNed\">toNed</a></code>,\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toXyz\">toXyz</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoidalKarney.LatLon-class.html#Equidistant\" class=\"summary-name\">Equidistant</a><br />\n      Get the prefered azimuthal equidistant projection <i>class</i> (<a \n      href=\"pygeodesy.azimuthal.EquidistantKarney-class.html\" \n      class=\"link\">EquidistantKarney</a>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoidalKarney.LatLon-class.html#geodesic\" class=\"summary-name\">geodesic</a><br />\n      Get this <code>LatLon</code>'s <i>wrapped</i> <a \n      href=\"https://GeographicLib.SourceForge.io/Python/doc/code.html\" \n      target=\"_top\">geodesic.Geodesic</a>, provided <i>Karney</i>'s <a \n      href=\"https://PyPI.org/project/geographiclib\" \n      target=\"_top\">geographiclib</a> package is installed.\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html\">ellipsoidalBase.LatLonEllipsoidalBase</a></code></b>:\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#convergence\">convergence</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#datum\">datum</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#ellipsoidalLatLon\">ellipsoidalLatLon</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#epoch\">epoch</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#gamma\">gamma</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#reframe\">reframe</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#scale\">scale</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">latlonBase.LatLonBase</a></code></b>:\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#clipid\">clipid</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#height\">height</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isEllipsoidal\">isEllipsoidal</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isSpherical\">isSpherical</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isnormal\">isnormal</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#lam\">lam</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#lat\">lat</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#latlon\">latlon</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#latlonheight\">latlonheight</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#lon\">lon</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#phi\">phi</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#philam\">philam</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#philamheight\">philamheight</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#sphericalLatLon\">sphericalLatLon</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#xyz\">xyz</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#xyz3\">xyz3</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#xyzh\">xyzh</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html\">ecefLocals._EcefLocal</a></code></b>:\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#Ecef\">Ecef</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"bearingTo\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">bearingTo</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use method <a \n  href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#initialBearingTo\"\n  class=\"link\">initialBearingTo</a>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_method</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toCartesian\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toCartesian</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">**Cartesian_datum_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert this point to <code>Karney</code>-based cartesian (ECEF) \n  coordinates.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>Cartesian_datum_kwds</code></strong> - Optional <a \n          href=\"pygeodesy.ellipsoidalKarney.Cartesian-class.html\" \n          class=\"link\">Cartesian</a>, <b><code>datum</code></b> and other \n          keyword arguments, ignored if <code><b>Cartesian</b> is \n          None</code>.  Use <code><b>Cartesian</b>=...</code> to override \n          this <a href=\"pygeodesy.ellipsoidalKarney.Cartesian-class.html\" \n          class=\"link\">Cartesian</a> class or set \n          <code><b>Cartesian</b>=None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The cartesian (ECEF) coordinates (<a \n          href=\"pygeodesy.ellipsoidalKarney.Cartesian-class.html\" \n          class=\"link\">Cartesian</a>) or if <code><b>Cartesian</b> is \n          None</code>, an <a href=\"pygeodesy.ecef.Ecef9Tuple-class.html\" \n          class=\"link\">Ecef9Tuple</a><code>(x, y, z, lat, lon, height, C, \n          M, datum)</code> with <code>C</code> and <code>M</code> if \n          available.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>Cartesian</code></b>, <b><code>datum</code></b> or\n        other <b><code>Cartesian_datum_kwds</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toCartesian\">latlonBase.LatLonBase.toCartesian</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"Equidistant\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">Equidistant</h3>\n  <p>Get the prefered azimuthal equidistant projection <i>class</i> (<a \n  href=\"pygeodesy.azimuthal.EquidistantKarney-class.html\" \n  class=\"link\">EquidistantKarney</a>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">Equidistant(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the prefered azimuthal equidistant projection <i>class</i> (<a \nhref=\"pygeodesy.azimuthal.EquidistantKarney-class.html\" \nclass=\"link\">EquidistantKarney</a>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"geodesic\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">geodesic</h3>\n  <p>Get this <code>LatLon</code>'s <i>wrapped</i> <a \n  href=\"https://GeographicLib.SourceForge.io/Python/doc/code.html\" \n  target=\"_top\">geodesic.Geodesic</a>, provided <i>Karney</i>'s <a \n  href=\"https://PyPI.org/project/geographiclib\" \n  target=\"_top\">geographiclib</a> package is installed.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">geodesic(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get this <code>LatLon</code>'s <i>wrapped</i> <a \nhref=\"https://GeographicLib.SourceForge.io/Python/doc/code.html\" \ntarget=\"_top\">geodesic.Geodesic</a>, provided <i>Karney</i>'s <a \nhref=\"https://PyPI.org/project/geographiclib\" \ntarget=\"_top\">geographiclib</a> package is installed.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.ellipsoidalNvector-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.ellipsoidalNvector</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        Module&nbsp;ellipsoidalNvector\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.ellipsoidalNvector-module.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== MODULE DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Module ellipsoidalNvector</h1><p class=\"nomargin-top\"></p>\n<p>Ellipsoidal, <code>N-vector</code>-based geodesy.</p>\n  <p>Ellipsoidal classes geodetic <a \n  href=\"pygeodesy.ellipsoidalNvector.LatLon-class.html\" \n  class=\"link\">LatLon</a>, geocentric (ECEF) <a \n  href=\"pygeodesy.ellipsoidalNvector.Cartesian-class.html\" \n  class=\"link\">Cartesian</a> and <code>Nvector</code> and DEPRECATED <a \n  href=\"pygeodesy.ellipsoidalNvector.Ned-class.html\" class=\"link\">Ned</a> \n  and functions <a href=\"pygeodesy.ellipsoidalNvector-module.html#meanOf\" \n  class=\"link\">meanOf</a>, <a \n  href=\"pygeodesy.ellipsoidalNvector-module.html#sumOf\" \n  class=\"link\">sumOf</a> and DEPRECATED <a \n  href=\"pygeodesy.ellipsoidalNvector-module.html#toNed\" \n  class=\"link\">toNed</a>.</p>\n  <p>Pure Python implementation of n-vector-based geodetic (lat-/longitude)\n  methods by <i>(C) Chris Veness 2011-2024</i> published under the same MIT\n  Licence**, see <a \n  href=\"https://www.Movable-Type.co.UK/scripts/latlong-vectors.html\" \n  target=\"_top\">Vector-based geodesy</a>.</p>\n  <p>These classes and functions work with: (a) geodetic lat-/longitude \n  points on the earth's surface and (b) 3-D vectors used as n-vectors \n  representing points on the earth's surface or vectors normal to the plane\n  of a great circle.</p>\n  <p>See also <i>Kenneth Gade</i> <a \n  href=\"https://www.NavLab.net/Publications/A_Nonsingular_Horizontal_Position_Representation.pdf\"\n  target=\"_top\">'A Non-singular Horizontal Position Representation'</a>, \n  The Journal of Navigation (2010), vol 63, nr 3, pp 395-417.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Version:</strong>\n        25.05.12\n      </p>\n</div><!-- ==================== CLASSES ==================== -->\n<a name=\"section-Classes\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Classes</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoidalNvector.Ned-class.html\" class=\"summary-name\">Ned</a><br />\n      DEPRECATED on 2024.02.04, use class <a \n        href=\"pygeodesy.ltpTuples.Ned-class.html\" \n        class=\"link\">pygeodesy.Ned</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoidalNvector.Cartesian-class.html\" class=\"summary-name\">Cartesian</a><br />\n      Extended to convert geocentric, <a \n        href=\"pygeodesy.ellipsoidalNvector.Cartesian-class.html\" \n        class=\"link\">Cartesian</a> points to <code>Nvector</code> and \n        n-vector-based, geodetic <a \n        href=\"pygeodesy.ellipsoidalNvector.LatLon-class.html\" \n        class=\"link\">LatLon</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoidalNvector.LatLon-class.html\" class=\"summary-name\">LatLon</a><br />\n      An n-vector-based, ellipsoidal <a \n        href=\"pygeodesy.ellipsoidalNvector.LatLon-class.html\" \n        class=\"link\">LatLon</a> point.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoidalNvector.Nvector-class.html\" class=\"summary-name\">Nvector</a><br />\n      An n-vector is a position representation using a (unit) vector \n        normal to the earth ellipsoid.\n    </td>\n  </tr>\n</table>\n<!-- ==================== FUNCTIONS ==================== -->\n<a name=\"section-Functions\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Functions</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoidalNvector-module.html#meanOf\" class=\"summary-sig-name\">meanOf</a>(<span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">datum</span>=<span class=\"summary-sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"summary-sig-arg\">height</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">**LatLon_and_kwds</span>)</span><br />\n      Compute the geographic mean of several points.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoidalNvector-module.html#sumOf\" class=\"summary-sig-name\">sumOf</a>(<span class=\"summary-sig-arg\">nvectors</span>,\n        <span class=\"summary-sig-arg\">Vector</span>=<span class=\"summary-sig-default\">&lt;class 'pygeodesy.ellipsoidalNvector.Nvector'&gt;</span>,\n        <span class=\"summary-sig-arg\">h</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**Vector_kwds</span>)</span><br />\n      Return the vectorial sum of two or more n-vectors.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoidalNvector-module.html#toNed\" class=\"summary-sig-name\">toNed</a>(<span class=\"summary-sig-arg\">distance</span>,\n        <span class=\"summary-sig-arg\">bearing</span>,\n        <span class=\"summary-sig-arg\">elevation</span>,\n        <span class=\"summary-sig-arg\">Ned</span>=<span class=\"summary-sig-default\">&lt;class 'pygeodesy.ellipsoidalNvector.Ned'&gt;</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      DEPRECATED, use <a href=\"pygeodesy.ltpTuples.Aer-class.html\" \n      class=\"link\">pygeodesy.Aer</a><code>(bearing, elevation, \n      distance).xyzLocal.toNed(<b>Ned</b>, name=<b>name</b>)</code> or <a \n      href=\"pygeodesy.ltpTuples.XyzLocal-class.html\" \n      class=\"link\">XyzLocal</a><code>(pygeodesy.Aer(bearing, elevation, \n      distance)).toNed(<b>Ned</b>, name=<b>name</b>)</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== VARIABLES ==================== -->\n<a name=\"section-Variables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Variables</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"__all__\"></a><span class=\"summary-name\">__all__</span> = <code title=\"_ALL_LAZY.ellipsoidalNvector\">_ALL_LAZY.ellipsoidalNvector</code>\n    </td>\n  </tr>\n</table>\n<!-- ==================== FUNCTION DETAILS ==================== -->\n<a name=\"section-FunctionDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Function Details</span></td>\n</tr>\n</table>\n<a name=\"meanOf\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">meanOf</span>&nbsp;(<span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">datum</span>=<span class=\"sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"sig-arg\">height</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">**LatLon_and_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the geographic mean of several points.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>points</code></strong> - Points to be averaged (<a \n          href=\"pygeodesy.ellipsoidalNvector.LatLon-class.html\" \n          class=\"link\">LatLon</a>[]).</li>\n        <li><strong class=\"pname\"><code>datum</code></strong> - Optional datum to use (<a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>).</li>\n        <li><strong class=\"pname\"><code>height</code></strong> - Optional height at mean point, overriding the mean height \n          (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> \n          <b><code>points</code></b> (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>LatLon_and_kwds</code></strong> - Optional <b><code>LatLon</code></b> class to return the mean \n          points (or <code>None</code>) and additional \n          <b><code>LatLon</code></b> keyword arguments, ignored if \n          <code><b>LatLon</b> is None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Geographic mean point and height (<b><code>LatLon</code></b>) or \n          if <code><b>LatLon</b> is None</code>, an <a \n          href=\"pygeodesy.ecef.Ecef9Tuple-class.html\" \n          class=\"link\">Ecef9Tuple</a><code>(x, y, z, lat, lon, height, C, \n          M, datum)</code> with <code>C</code> and <code>M</code> if \n          available.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ValueError</strong></code> - Insufficient number of <b><code>points</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"sumOf\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">sumOf</span>&nbsp;(<span class=\"sig-arg\">nvectors</span>,\n        <span class=\"sig-arg\">Vector</span>=<span class=\"sig-default\">&lt;class 'pygeodesy.ellipsoidalNvector.Nvector'&gt;</span>,\n        <span class=\"sig-arg\">h</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**Vector_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the vectorial sum of two or more n-vectors.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>nvectors</code></strong> - Vectors to be added (<code>Nvector</code>[]).</li>\n        <li><strong class=\"pname\"><code>Vector</code></strong> - Optional class for the vectorial sum (<code>Nvector</code>).</li>\n        <li><strong class=\"pname\"><code>h</code></strong> - Optional height, overriding the mean height (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>Vector_kwds</code></strong> - Optional, additional <b><code>Vector</code></b> keyword \n          arguments, ignored if <code><b>Vector</b> is None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Vectorial sum (<b><code>Vector</code></b>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.VectorError-class.html\">VectorError</a></strong></code> - No <b><code>nvectors</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toNed\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toNed</span>&nbsp;(<span class=\"sig-arg\">distance</span>,\n        <span class=\"sig-arg\">bearing</span>,\n        <span class=\"sig-arg\">elevation</span>,\n        <span class=\"sig-arg\">Ned</span>=<span class=\"sig-default\">&lt;class 'pygeodesy.ellipsoidalNvector.Ned'&gt;</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use <a href=\"pygeodesy.ltpTuples.Aer-class.html\" \n  class=\"link\">pygeodesy.Aer</a><code>(bearing, elevation, \n  distance).xyzLocal.toNed(<b>Ned</b>, name=<b>name</b>)</code> or <a \n  href=\"pygeodesy.ltpTuples.XyzLocal-class.html\" \n  class=\"link\">XyzLocal</a><code>(pygeodesy.Aer(bearing, elevation, \n  distance)).toNed(<b>Ned</b>, name=<b>name</b>)</code>.</p>\n  <p>Create an NED vector from distance, bearing and elevation (in local \n  coordinate system).</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>distance</code></strong> - NED vector length (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>bearing</code></strong> - NED vector bearing (compass <code>degrees360</code>).</li>\n        <li><strong class=\"pname\"><code>elevation</code></strong> - NED vector elevation from local coordinate frame horizontal \n          (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>Ned</code></strong> - Optional class to return the NED (<code>Ned</code>) or \n          <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>An NED vector equivalent to this <b><code>distance</code></b>, \n          <b><code>bearing</code></b> and <b><code>elevation</code></b> \n          (DEPRECATED <a href=\"pygeodesy.ellipsoidalNvector.Ned-class.html\"\n          class=\"link\">Ned</a>) or a DEPRECATED <a \n          href=\"pygeodesy.deprecated.classes.Ned3Tuple-class.html\" \n          class=\"link\">Ned3Tuple</a><code>(north, east, down)</code> if \n          <code><b>Ned</b> is None</code>.</dd>\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>distance</code></b>, <b><code>bearing</code></b> \n        or <b><code>elevation</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.ellipsoidalNvector.Cartesian-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.ellipsoidalNvector.Cartesian</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.ellipsoidalNvector-module.html\">Module&nbsp;ellipsoidalNvector</a> ::\n        Class&nbsp;Cartesian\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.ellipsoidalNvector.Cartesian-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Cartesian</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n          object --+                        \n                   |                        \n        <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+                    \n                       |                    \n        <a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+                \n                           |                \n   <a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">vector3dBase.Vector3dBase</a> --+            \n                               |            \n               <a href=\"pygeodesy.vector3d.Vector3d-class.html\">vector3d.Vector3d</a> --+        \n                                   |        \n                  object --+       |        \n                           |       |        \n                <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+   |        \n                               |   |        \n           <a href=\"pygeodesy.ecefLocals._EcefLocal-class.html\">ecefLocals._EcefLocal</a> --+        \n                                   |        \n         <a href=\"pygeodesy.cartesianBase.CartesianBase-class.html\">cartesianBase.CartesianBase</a> --+    \n                                       |    \n<a href=\"pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html\">ellipsoidalBase.CartesianEllipsoidalBase</a> --+\n                                           |\n                                          <strong class=\"uidshort\">Cartesian</strong>\n</pre>\n\n<hr />\n<p>Extended to convert geocentric, <a \n  href=\"pygeodesy.ellipsoidalNvector.Cartesian-class.html\" \n  class=\"link\">Cartesian</a> points to <code>Nvector</code> and \n  n-vector-based, geodetic <a \n  href=\"pygeodesy.ellipsoidalNvector.LatLon-class.html\" \n  class=\"link\">LatLon</a>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoidalNvector.Cartesian-class.html#toLatLon\" class=\"summary-sig-name\">toLatLon</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">**LatLon_and_kwds</span>)</span><br />\n      Convert this cartesian to an <code>Nvector</code>-based geodetic \n      point.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoidalNvector.Cartesian-class.html#toNvector\" class=\"summary-sig-name\">toNvector</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">**Nvector_and_kwds</span>)</span><br />\n      Convert this cartesian to <code>Nvector</code> components, \n      <i>including height</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html\">ellipsoidalBase.CartesianEllipsoidalBase</a></code></b>:\n      <code><a href=\"pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#__init__\">__init__</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#convertRefFrame\">convertRefFrame</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#intersections2\">intersections2</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#toRefFrame\">toRefFrame</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#toTransforms_\">toTransforms_</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html\">cartesianBase.CartesianBase</a></code></b>:\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#Roc2\">Roc2</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#cassini\">cassini</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#collins\">collins</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#collins5\">collins5</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#convertDatum\">convertDatum</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#destinationXyz\">destinationXyz</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#hartzell\">hartzell</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#height3\">height3</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#height4\">height4</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#pierlot\">pierlot</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#pierlotx\">pierlotx</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#tienstra\">tienstra</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#tienstra7\">tienstra7</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#to2ab\">to2ab</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#to2ll\">to2ll</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#to3llh\">to3llh</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#toDatum\">toDatum</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#toEcef\">toEcef</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#toRtp\">toRtp</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#toTransform\">toTransform</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#toVector\">toVector</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.vector3d.Vector3d-class.html\">vector3d.Vector3d</a></code></b>:\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#bearing\">bearing</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#circin6\">circin6</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#circum3\">circum3</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#circum4_\">circum4_</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#iscolinearWith\">iscolinearWith</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#meeus2\">meeus2</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#nearestOn\">nearestOn</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#nearestOn6\">nearestOn6</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#parse\">parse</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#radii11\">radii11</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#soddy4\">soddy4</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#toCartesian\">toCartesian</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#trilaterate2d2\">trilaterate2d2</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#trilaterate3d2\">trilaterate3d2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">vector3dBase.Vector3dBase</a></code></b>:\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__abs__\">__abs__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__add__\">__add__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__bool__\">__bool__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__ceil__\">__ceil__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__cmp__\">__cmp__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__div__\">__div__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__divmod__\">__divmod__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__eq__\">__eq__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__float__\">__float__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__floor__\">__floor__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__floordiv__\">__floordiv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__ge__\">__ge__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__gt__\">__gt__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__iadd__\">__iadd__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__idiv__\">__idiv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__ifloordiv__\">__ifloordiv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__imod__\">__imod__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__imul__\">__imul__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__int__\">__int__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__ipow__\">__ipow__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__isub__\">__isub__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__itruediv__\">__itruediv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__le__\">__le__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__long__\">__long__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__lt__\">__lt__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__mod__\">__mod__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__mul__\">__mul__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__ne__\">__ne__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__neg__\">__neg__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__nonzero__\">__nonzero__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__pos__\">__pos__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__pow__\">__pow__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__radd__\">__radd__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rdiv__\">__rdiv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rdivmod__\">__rdivmod__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rfloordiv__\">__rfloordiv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rmod__\">__rmod__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rmul__\">__rmul__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__round__\">__round__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rpow__\">__rpow__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rsub__\">__rsub__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rtruediv__\">__rtruediv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__sub__\">__sub__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__truediv__\">__truediv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__trunc__\">__trunc__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#angleTo\">angleTo</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#apply\">apply</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#bools\">bools</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#cmp\">cmp</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#cross\">cross</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#dividedBy\">dividedBy</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#dividedBy_\">dividedBy_</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#dot\">dot</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#equals\">equals</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#equirectangular\">equirectangular</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#fabs\">fabs</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#floats\">floats</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#floorDividedBy\">floorDividedBy</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#floorDividedBy_\">floorDividedBy_</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#intermediateTo\">intermediateTo</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#ints\">ints</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#isconjugateTo\">isconjugateTo</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#isequalTo\">isequalTo</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#minus\">minus</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#minus_\">minus_</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#negate\">negate</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#others\">others</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#plus\">plus</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#plus_\">plus_</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#pow\">pow</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#rotate\">rotate</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#rotateAround\">rotateAround</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#sum\">sum</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#times\">times</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#times_\">times_</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#to3xyz\">to3xyz</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#unit\">unit</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#toRepr\">toRepr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html\">ecefLocals._EcefLocal</a></code></b>:\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toAer\">toAer</a></code>,\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toEnu\">toEnu</a></code>,\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toLocal\">toLocal</a></code>,\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toLtp\">toLtp</a></code>,\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toNed\">toNed</a></code>,\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toXyz\">toXyz</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoidalNvector.Cartesian-class.html#Ecef\" class=\"summary-name\">Ecef</a><br />\n      Get the ECEF <i>class</i> (<a \n      href=\"pygeodesy.ecef.EcefVeness-class.html\" \n      class=\"link\">EcefVeness</a>), <i>once</i>.\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html\">ellipsoidalBase.CartesianEllipsoidalBase</a></code></b>:\n      <code><a href=\"pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#ellipsoidalCartesian\">ellipsoidalCartesian</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#epoch\">epoch</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#reframe\">reframe</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html\">cartesianBase.CartesianBase</a></code></b>:\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#datum\">datum</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#height\">height</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#isEllipsoidal\">isEllipsoidal</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#isSpherical\">isSpherical</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#latlon\">latlon</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#latlonheight\">latlonheight</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#latlonheightdatum\">latlonheightdatum</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#philam\">philam</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#philamheight\">philamheight</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#philamheightdatum\">philamheightdatum</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#sphericalCartesian\">sphericalCartesian</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">vector3dBase.Vector3dBase</a></code></b>:\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#crosserrors\">crosserrors</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#euclid\">euclid</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#homogeneous\">homogeneous</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#length\">length</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#length2\">length2</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#x\">x</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#x2y2z2\">x2y2z2</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#x2y2z23\">x2y2z23</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#xyz\">xyz</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#xyz3\">xyz3</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#y\">y</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#z\">z</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"toLatLon\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toLatLon</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">**LatLon_and_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert this cartesian to an <code>Nvector</code>-based geodetic \n  point.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>LatLon_and_kwds</code></strong> - Optional <a href=\"pygeodesy.ellipsoidalNvector.LatLon-class.html\"\n          class=\"link\">LatLon</a>, <b><code>datum</code></b> and other \n          keyword arguments.  Use <code><b>LatLon</b>=...</code> to \n          override this <a \n          href=\"pygeodesy.ellipsoidalNvector.LatLon-class.html\" \n          class=\"link\">LatLon</a> class or specify <code><b>LatLon</b> is \n          None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The geodetic point (<a \n          href=\"pygeodesy.ellipsoidalNvector.LatLon-class.html\" \n          class=\"link\">LatLon</a>) or if <code><b>LatLon</b> is \n          None</code>, an <a href=\"pygeodesy.ecef.Ecef9Tuple-class.html\" \n          class=\"link\">Ecef9Tuple</a><code>(x, y, z, lat, lon, height, C, \n          M, datum)</code> with <code>C</code> and <code>M</code> if \n          available.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>LatLon_and_kwds</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#toLatLon\">cartesianBase.CartesianBase.toLatLon</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toNvector\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toNvector</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">**Nvector_and_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert this cartesian to <code>Nvector</code> components, \n  <i>including height</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>Nvector_and_kwds</code></strong> - Optional <code>Nvector</code>, <b><code>datum</code></b> and \n          other keyword arguments.  Use <code><b>Nvector</b>=...</code> to \n          override this <code>Nvector</code> class or specify \n          <code><b>Nvector</b> is None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The <code>n-vector</code> components (<code>Nvector</code>) or if\n          <code><b>Nvector</b> is None</code>, a <a \n          href=\"pygeodesy.namedTuples.Vector4Tuple-class.html\" \n          class=\"link\">Vector4Tuple</a><code>(x, y, z, h)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>Nvector_and_kwds</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#toNvector\">cartesianBase.CartesianBase.toNvector</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"Ecef\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">Ecef</h3>\n  <p>Get the ECEF <i>class</i> (<a \n  href=\"pygeodesy.ecef.EcefVeness-class.html\" class=\"link\">EcefVeness</a>),\n  <i>once</i>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">Ecef(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the ECEF <i>class</i> (<a href=\"pygeodesy.ecef.EcefVeness-class.html\" \nclass=\"link\">EcefVeness</a>), <i>once</i>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.ellipsoidalNvector.LatLon-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.ellipsoidalNvector.LatLon</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.ellipsoidalNvector-module.html\">Module&nbsp;ellipsoidalNvector</a> ::\n        Class&nbsp;LatLon\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.ellipsoidalNvector.LatLon-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class LatLon</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n               object --+                \n                        |                \n             <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+            \n                            |            \n             <a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+        \n                                |        \n               object --+       |        \n                        |       |        \n             <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+   |        \n                            |   |        \n        <a href=\"pygeodesy.ecefLocals._EcefLocal-class.html\">ecefLocals._EcefLocal</a> --+        \n                                |        \n            <a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">latlonBase.LatLonBase</a> --+    \n                                    |    \n        <a href=\"pygeodesy.nvectorBase.LatLonNvectorBase-class.html\">nvectorBase.LatLonNvectorBase</a> --+\n                                        |\n               object --+               |\n                        |               |\n             <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+           |\n                            |           |\n             <a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+       |\n                                |       |\n               object --+       |       |\n                        |       |       |\n             <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+   |       |\n                            |   |       |\n        <a href=\"pygeodesy.ecefLocals._EcefLocal-class.html\">ecefLocals._EcefLocal</a> --+       |\n                                |       |\n            <a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">latlonBase.LatLonBase</a> --+   |\n                                    |   |\n<a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html\">ellipsoidalBase.LatLonEllipsoidalBase</a> --+\n                                        |\n                                       <strong class=\"uidshort\">LatLon</strong>\n</pre>\n\n<hr />\n<p>An n-vector-based, ellipsoidal <a \n  href=\"pygeodesy.ellipsoidalNvector.LatLon-class.html\" \n  class=\"link\">LatLon</a> point.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoidalNvector.LatLon-class.html#deltaTo\" class=\"summary-sig-name\">deltaTo</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">**Ned_and_kwds</span>)</span><br />\n      Calculate the local delta from this to an other point.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoidalNvector.LatLon-class.html#destinationNed\" class=\"summary-sig-name\">destinationNed</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">delta</span>)</span><br />\n      Calculate the destination point using the supplied NED delta from \n      this point.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoidalNvector.LatLon-class.html#distanceTo\" class=\"summary-sig-name\">distanceTo</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>,\n        <span class=\"summary-sig-arg\">radius</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      <i>Approximate</i> the distance from this to an other point.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoidalNvector.LatLon-class.html#equals\" class=\"summary-sig-name\">equals</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>,\n        <span class=\"summary-sig-arg\">eps</span>=<span class=\"summary-sig-default\">None</span>)</span><br />\n      DEPRECATED, use method <a \n      href=\"pygeodesy.ellipsoidalNvector.LatLon-class.html#isequalTo\" \n      class=\"link\">isequalTo</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoidalNvector.LatLon-class.html#isequalTo\" class=\"summary-sig-name\">isequalTo</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>,\n        <span class=\"summary-sig-arg\">eps</span>=<span class=\"summary-sig-default\">None</span>)</span><br />\n      Compare this point with an other point.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoidalNvector.LatLon-class.html#intermediateTo\" class=\"summary-sig-name\">intermediateTo</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>,\n        <span class=\"summary-sig-arg\">fraction</span>,\n        <span class=\"summary-sig-arg\">height</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Return the point at given fraction between this and an other point.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoidalNvector.LatLon-class.html#toCartesian\" class=\"summary-sig-name\">toCartesian</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">**Cartesian_and_kwds</span>)</span><br />\n      Convert this point to an <code>Nvector</code>-based geodetic point.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoidalNvector.LatLon-class.html#toNvector\" class=\"summary-sig-name\">toNvector</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">**Nvector_and_kwds</span>)</span><br />\n      Convert this point to <code>Nvector</code> components, <i>including \n      height</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.nvectorBase.LatLonNvectorBase-class.html\">nvectorBase.LatLonNvectorBase</a></code></b>:\n      <code><a href=\"pygeodesy.nvectorBase.LatLonNvectorBase-class.html#intersections2\">intersections2</a></code>,\n      <code><a href=\"pygeodesy.nvectorBase.LatLonNvectorBase-class.html#others\">others</a></code>,\n      <code><a href=\"pygeodesy.nvectorBase.LatLonNvectorBase-class.html#triangulate\">triangulate</a></code>,\n      <code><a href=\"pygeodesy.nvectorBase.LatLonNvectorBase-class.html#trilaterate\">trilaterate</a></code>,\n      <code><a href=\"pygeodesy.nvectorBase.LatLonNvectorBase-class.html#trilaterate5\">trilaterate5</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html\">ellipsoidalBase.LatLonEllipsoidalBase</a></code></b>:\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#__init__\">__init__</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#antipode\">antipode</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#convertDatum\">convertDatum</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#convertRefFrame\">convertRefFrame</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#distanceTo2\">distanceTo2</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#elevation2\">elevation2</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#ellipsoid\">ellipsoid</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#ellipsoids\">ellipsoids</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#geoidHeight2\">geoidHeight2</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#intersection3\">intersection3</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#isenclosedBy\">isenclosedBy</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#midpointTo\">midpointTo</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#nearestOn\">nearestOn</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#parse\">parse</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#to3xyz\">to3xyz</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toCss\">toCss</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toDatum\">toDatum</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toEtm\">toEtm</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toLcc\">toLcc</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toMgrs\">toMgrs</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toOsgr\">toOsgr</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toRefFrame\">toRefFrame</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toTransform\">toTransform</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toUps\">toUps</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toUtm\">toUtm</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toUtmUps\">toUtmUps</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">latlonBase.LatLonBase</a></code></b>:\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#PointsIter\">PointsIter</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#__eq__\">__eq__</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#__ne__\">__ne__</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#bounds\">bounds</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#boundsOf\">boundsOf</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#chordTo\">chordTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#circin6\">circin6</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#circum3\">circum3</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#circum4_\">circum4_</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#compassAngle\">compassAngle</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#compassAngleTo\">compassAngleTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#cosineAndoyerLambertTo\">cosineAndoyerLambertTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#cosineForsytheAndoyerLambertTo\">cosineForsytheAndoyerLambertTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#cosineLawTo\">cosineLawTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#destinationXyz\">destinationXyz</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#equals3\">equals3</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#equirectangularTo\">equirectangularTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#euclideanTo\">euclideanTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#flatLocalTo\">flatLocalTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#flatPolarTo\">flatPolarTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#hartzell\">hartzell</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#haversineTo\">haversineTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#height4\">height4</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#heightStr\">heightStr</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#hubenyTo\">hubenyTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#intersecant2\">intersecant2</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isantipode\">isantipode</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isantipodeTo\">isantipodeTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isequalTo3\">isequalTo3</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#latlon2\">latlon2</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#latlon2round\">latlon2round</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#latlon_\">latlon_</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#nearestOn6\">nearestOn6</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#nearestTo\">nearestTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#normal\">normal</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#philam2\">philam2</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#points\">points</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#points2\">points2</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#radii11\">radii11</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#rhumbAzimuthTo\">rhumbAzimuthTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#rhumbDestination\">rhumbDestination</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#rhumbDistanceTo\">rhumbDistanceTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#rhumbIntersecant2\">rhumbIntersecant2</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#rhumbLine\">rhumbLine</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#rhumbMidpointTo\">rhumbMidpointTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#thomasTo\">thomasTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#to2ab\">to2ab</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#to3llh\">to3llh</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toEcef\">toEcef</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toNormal\">toNormal</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toVector\">toVector</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toVector3d\">toVector3d</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toWm\">toWm</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#vincentysTo\">vincentysTo</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#toRepr\">toRepr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html\">ecefLocals._EcefLocal</a></code></b>:\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toAer\">toAer</a></code>,\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toEnu\">toEnu</a></code>,\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toLocal\">toLocal</a></code>,\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toLtp\">toLtp</a></code>,\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toNed\">toNed</a></code>,\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toXyz\">toXyz</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoidalNvector.LatLon-class.html#Ecef\" class=\"summary-name\">Ecef</a><br />\n      Get the ECEF <i>class</i> (<a \n      href=\"pygeodesy.ecef.EcefVeness-class.html\" \n      class=\"link\">EcefVeness</a>), <i>once</i>.\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html\">ellipsoidalBase.LatLonEllipsoidalBase</a></code></b>:\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#Equidistant\">Equidistant</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#convergence\">convergence</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#datum\">datum</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#ellipsoidalLatLon\">ellipsoidalLatLon</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#epoch\">epoch</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#gamma\">gamma</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#reframe\">reframe</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#scale\">scale</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">latlonBase.LatLonBase</a></code></b>:\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#clipid\">clipid</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#height\">height</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isEllipsoidal\">isEllipsoidal</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isSpherical\">isSpherical</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isnormal\">isnormal</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#lam\">lam</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#lat\">lat</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#latlon\">latlon</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#latlonheight\">latlonheight</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#lon\">lon</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#phi\">phi</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#philam\">philam</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#philamheight\">philamheight</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#sphericalLatLon\">sphericalLatLon</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#xyz\">xyz</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#xyz3\">xyz3</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#xyzh\">xyzh</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"deltaTo\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">deltaTo</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">**Ned_and_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Calculate the local delta from this to an other point.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>other</code></strong> - The other point (<a \n          href=\"pygeodesy.ellipsoidalNvector.LatLon-class.html\" \n          class=\"link\">LatLon</a>).</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> the \n          <b><code>other</code></b> point (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>Ned_and_kwds</code></strong> - Optional <code><b>Ned</b>=<a \n          href=\"pygeodesy.ellipsoidalNvector.Ned-class.html\" \n          class=\"link\">Ned</a> class and <b>name</b>=NN</code> to return \n          delta and other <b><code>Ned</code></b> keyword arguments.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Delta from this to the other point (<b><code>Ned</code></b>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - The <b><code>other</code></b> point is not <a \n        href=\"pygeodesy.ellipsoidalNvector.LatLon-class.html\" \n        class=\"link\">LatLon</a> or <b><code>Ned</code></b> is not an <a \n        href=\"pygeodesy.ltpTuples.Ned4Tuple-class.html\" \n        class=\"link\">Ned4Tuple</a> nor an <a \n        href=\"pygeodesy.ltpTuples.Ned-class.html\" class=\"link\">Ned</a> nor \n        a DEPRECATED <a href=\"pygeodesy.ellipsoidalNvector.Ned-class.html\" \n        class=\"link\">Ned</a>.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - If ellipsoids are incompatible.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        This is a linear delta, <i>unrelated</i> to a geodesic on the \n        ellipsoid.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"destinationNed\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">destinationNed</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">delta</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Calculate the destination point using the supplied NED delta from this\n  point.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>delta</code></strong> - Delta from this to the other point in the local tangent plane \n          (LTP) of this point (<a \n          href=\"pygeodesy.ellipsoidalNvector.Ned-class.html\" \n          class=\"link\">Ned</a>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Destination point (<a \n          href=\"pygeodesy.ellipsoidalNvector.LatLon-class.html\" \n          class=\"link\">LatLon</a>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - If <b><code>delta</code></b> is not an <a \n        href=\"pygeodesy.ltpTuples.Ned-class.html\" class=\"link\">Ned</a> or a\n        DEPRECATED <a href=\"pygeodesy.ellipsoidalNvector.Ned-class.html\" \n        class=\"link\">Ned</a>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"distanceTo\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">distanceTo</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>,\n        <span class=\"sig-arg\">radius</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p><i>Approximate</i> the distance from this to an other point.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>other</code></strong> - The other point (<a \n          href=\"pygeodesy.ellipsoidalNvector.LatLon-class.html\" \n          class=\"link\">LatLon</a>).</li>\n        <li><strong class=\"pname\"><code>radius</code></strong> - Mean earth radius, ellipsoid or datum (<code>meter</code>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a>, <a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a> \n          or <a href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>), overriding the mean radius \n          <code>R1</code> of this point's datum..</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll the \n          <b><code>other</code></b> and angular distance \n          (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Distance (<code>meter</code>, same units as \n          <b><code>radius</code></b>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - The <b><code>other</code></b> point is not <a \n        href=\"pygeodesy.ellipsoidalNvector.LatLon-class.html\" \n        class=\"link\">LatLon</a>.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>radius</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"equals\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">equals</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>,\n        <span class=\"sig-arg\">eps</span>=<span class=\"sig-default\">None</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use method <a \n  href=\"pygeodesy.ellipsoidalNvector.LatLon-class.html#isequalTo\" \n  class=\"link\">isequalTo</a>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_method</code></li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.latlonBase.LatLonBase-class.html#equals\">latlonBase.LatLonBase.equals</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"isequalTo\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">isequalTo</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>,\n        <span class=\"sig-arg\">eps</span>=<span class=\"sig-default\">None</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compare this point with an other point.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>other</code></strong> - The other point (<a \n          href=\"pygeodesy.ellipsoidalNvector.LatLon-class.html\" \n          class=\"link\">LatLon</a>).</li>\n        <li><strong class=\"pname\"><code>eps</code></strong> - Optional margin (<code>float</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>True</code> if points are identical, including datum, \n          <i>ignoring height</i>, <code>False</code> otherwise.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - The <b><code>other</code></b> point is not <a \n        href=\"pygeodesy.ellipsoidalNvector.LatLon-class.html\" \n        class=\"link\">LatLon</a>.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>eps</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isequalTo\">latlonBase.LatLonBase.isequalTo</a>\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <code>isequalTo3</code> to include <i>height</i>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"intermediateTo\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">intermediateTo</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>,\n        <span class=\"sig-arg\">fraction</span>,\n        <span class=\"sig-arg\">height</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the point at given fraction between this and an other \n  point.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>other</code></strong> - The other point (<a \n          href=\"pygeodesy.ellipsoidalNvector.LatLon-class.html\" \n          class=\"link\">LatLon</a>).</li>\n        <li><strong class=\"pname\"><code>fraction</code></strong> - Fraction between both points (<code>scalar</code>, 0.0 at this to\n          1.0 at the other point.</li>\n        <li><strong class=\"pname\"><code>height</code></strong> - Optional height, overriding the fractional height \n          (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> the \n          <b><code>other</code></b> point (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Intermediate point (<a \n          href=\"pygeodesy.ellipsoidalNvector.LatLon-class.html\" \n          class=\"link\">LatLon</a>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - The <b><code>other</code></b> point is not <a \n        href=\"pygeodesy.ellipsoidalNvector.LatLon-class.html\" \n        class=\"link\">LatLon</a>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#intermediateTo\">ellipsoidalBase.LatLonEllipsoidalBase.intermediateTo</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toCartesian\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toCartesian</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">**Cartesian_and_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert this point to an <code>Nvector</code>-based geodetic \n  point.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>Cartesian_and_kwds</code></strong> - Optional <a \n          href=\"pygeodesy.ellipsoidalNvector.Cartesian-class.html\" \n          class=\"link\">Cartesian</a>, <b><code>datum</code></b> and other \n          keyword arguments.  Use <code><b>Cartesian</b>=...</code> to \n          override this <a \n          href=\"pygeodesy.ellipsoidalNvector.Cartesian-class.html\" \n          class=\"link\">Cartesian</a> class or specify \n          <code><b>Cartesian</b>=None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The geodetic point (<a \n          href=\"pygeodesy.ellipsoidalNvector.Cartesian-class.html\" \n          class=\"link\">Cartesian</a>) or if <code><b>Cartesian</b> is \n          None</code>, an <a href=\"pygeodesy.ecef.Ecef9Tuple-class.html\" \n          class=\"link\">Ecef9Tuple</a><code>(x, y, z, lat, lon, height, C, \n          M, datum)</code> with <code>C</code> and <code>M</code> if \n          available.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>Cartesian</code></b> or other \n        <b><code>Cartesian_and_kwds</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toCartesian\">latlonBase.LatLonBase.toCartesian</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toNvector\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toNvector</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">**Nvector_and_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert this point to <code>Nvector</code> components, <i>including \n  height</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>Nvector_and_kwds</code></strong> - Optional <code>Nvector</code>, <b><code>datum</code></b> and \n          other keyword arguments.  Use <code><b>Nvector</b>=...</code> to \n          override this <code>Nvector</code> class or specify \n          <code><b>Nvector</b>=None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The <code>n-vector</code> components (<code>Nvector</code>) or if\n          <b><code>Nvector</code></b> is set to <code>None</code>, a <a \n          href=\"pygeodesy.namedTuples.Vector4Tuple-class.html\" \n          class=\"link\">Vector4Tuple</a><code>(x, y, z, h)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>Nvector</code></b> or other \n        <b><code>Nvector_and_kwds</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toNvector\">latlonBase.LatLonBase.toNvector</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"Ecef\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">Ecef</h3>\n  <p>Get the ECEF <i>class</i> (<a \n  href=\"pygeodesy.ecef.EcefVeness-class.html\" class=\"link\">EcefVeness</a>),\n  <i>once</i>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">Ecef(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the ECEF <i>class</i> (<a href=\"pygeodesy.ecef.EcefVeness-class.html\" \nclass=\"link\">EcefVeness</a>), <i>once</i>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.ellipsoidalNvector.Ned-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.ellipsoidalNvector.Ned</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.ellipsoidalNvector-module.html\">Module&nbsp;ellipsoidalNvector</a> ::\n        Class&nbsp;Ned\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.ellipsoidalNvector.Ned-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Ned</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+                \n           |                \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+            \n               |            \n<a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+        \n                   |        \n  <a href=\"pygeodesy.ltpTuples._AbcBase-class.html\">ltpTuples._AbcBase</a> --+    \n                       |    \n           <a href=\"pygeodesy.ltpTuples.Ned-class.html\">ltpTuples.Ned</a> --+\n                           |\n                          <strong class=\"uidshort\">Ned</strong>\n</pre>\n\n<hr />\n<p>DEPRECATED on 2024.02.04, use class <a \n  href=\"pygeodesy.ltpTuples.Ned-class.html\" \n  class=\"link\">pygeodesy.Ned</a>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoidalNvector.Ned-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">north</span>,\n        <span class=\"summary-sig-arg\">east</span>,\n        <span class=\"summary-sig-arg\">down</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      New <a href=\"pygeodesy.ellipsoidalNvector.Ned-class.html\" \n      class=\"link\">Ned</a> vector.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoidalNvector.Ned-class.html#toRepr\" class=\"summary-sig-name\">toRepr</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">prec</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">fmt</span>=<span class=\"summary-sig-default\">'[%s]'</span>,\n        <span class=\"summary-sig-arg\">sep</span>=<span class=\"summary-sig-default\">', '</span>,\n        <span class=\"summary-sig-arg\">**unused</span>)</span><br />\n      DEPRECATED, use class <a href=\"pygeodesy.ltpTuples.Ned-class.html\" \n      class=\"link\">pygeodesy.Ned</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.ltpTuples.Ned-class.html\">ltpTuples.Ned</a></code></b>:\n      <code><a href=\"pygeodesy.ltpTuples.Ned-class.html#to3ned\">to3ned</a></code>,\n      <code><a href=\"pygeodesy.ltpTuples.Ned-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.ltpTuples.Ned-class.html#toVector3d\">toVector3d</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.ltpTuples._AbcBase-class.html\">ltpTuples._AbcBase</a></code></b>:\n      <code><a href=\"pygeodesy.ltpTuples._AbcBase-class.html#toAer\">toAer</a></code>,\n      <code><a href=\"pygeodesy.ltpTuples._AbcBase-class.html#toEnu\">toEnu</a></code>,\n      <code><a href=\"pygeodesy.ltpTuples._AbcBase-class.html#toNed\">toNed</a></code>,\n      <code><a href=\"pygeodesy.ltpTuples._AbcBase-class.html#toXyz\">toXyz</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#others\">others</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.ltpTuples.Ned-class.html\">ltpTuples.Ned</a></code></b>:\n      <code><a href=\"pygeodesy.ltpTuples.Ned-class.html#aer4\">aer4</a></code>,\n      <code><a href=\"pygeodesy.ltpTuples.Ned-class.html#azimuth\">azimuth</a></code>,\n      <code><a href=\"pygeodesy.ltpTuples.Ned-class.html#bearing\">bearing</a></code>,\n      <code><a href=\"pygeodesy.ltpTuples.Ned-class.html#down\">down</a></code>,\n      <code><a href=\"pygeodesy.ltpTuples.Ned-class.html#east\">east</a></code>,\n      <code><a href=\"pygeodesy.ltpTuples.Ned-class.html#elevation\">elevation</a></code>,\n      <code><a href=\"pygeodesy.ltpTuples.Ned-class.html#groundrange\">groundrange</a></code>,\n      <code><a href=\"pygeodesy.ltpTuples.Ned-class.html#length\">length</a></code>,\n      <code><a href=\"pygeodesy.ltpTuples.Ned-class.html#ned\">ned</a></code>,\n      <code><a href=\"pygeodesy.ltpTuples.Ned-class.html#ned4\">ned4</a></code>,\n      <code><a href=\"pygeodesy.ltpTuples.Ned-class.html#north\">north</a></code>,\n      <code><a href=\"pygeodesy.ltpTuples.Ned-class.html#slantrange\">slantrange</a></code>,\n      <code><a href=\"pygeodesy.ltpTuples.Ned-class.html#up\">up</a></code>,\n      <code><a href=\"pygeodesy.ltpTuples.Ned-class.html#x\">x</a></code>,\n      <code><a href=\"pygeodesy.ltpTuples.Ned-class.html#xyz4\">xyz4</a></code>,\n      <code><a href=\"pygeodesy.ltpTuples.Ned-class.html#y\">y</a></code>,\n      <code><a href=\"pygeodesy.ltpTuples.Ned-class.html#z\">z</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.ltpTuples._AbcBase-class.html\">ltpTuples._AbcBase</a></code></b>:\n      <code><a href=\"pygeodesy.ltpTuples._AbcBase-class.html#ltp\">ltp</a></code>,\n      <code><a href=\"pygeodesy.ltpTuples._AbcBase-class.html#xyz\">xyz</a></code>,\n      <code><a href=\"pygeodesy.ltpTuples._AbcBase-class.html#xyz3\">xyz3</a></code>,\n      <code><a href=\"pygeodesy.ltpTuples._AbcBase-class.html#xyzLocal\">xyzLocal</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">north</span>,\n        <span class=\"sig-arg\">east</span>,\n        <span class=\"sig-arg\">down</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.ellipsoidalNvector.Ned-class.html\" \n  class=\"link\">Ned</a> vector.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>north_ned</code></strong> - Scalar North component (<code>meter</code>) or a previous \n          <i>local</i> instance (<a \n          href=\"pygeodesy.ellipsoidalNvector.Ned-class.html\" \n          class=\"link\">Ned</a>, <a \n          href=\"pygeodesy.ltpTuples.Ned4Tuple-class.html\" \n          class=\"link\">Ned4Tuple</a>, <a \n          href=\"pygeodesy.ltpTuples.Aer-class.html\" class=\"link\">Aer</a>, \n          <a href=\"pygeodesy.ltpTuples.Aer4Tuple-class.html\" \n          class=\"link\">Aer4Tuple</a>, <a \n          href=\"pygeodesy.ltpTuples.Enu-class.html\" class=\"link\">Enu</a>, \n          <a href=\"pygeodesy.ltpTuples.Enu4Tuple-class.html\" \n          class=\"link\">Enu4Tuple</a>, <a \n          href=\"pygeodesy.ltpTuples.Local9Tuple-class.html\" \n          class=\"link\">Local9Tuple</a>, <a \n          href=\"pygeodesy.ltpTuples.XyzLocal-class.html\" \n          class=\"link\">XyzLocal</a> or <a \n          href=\"pygeodesy.ltpTuples.Xyz4Tuple-class.html\" \n          class=\"link\">Xyz4Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>east</code></strong> - Scalar East component (<code>meter</code>), only used with scalar\n          <b><code>north_ned</code></b>.</li>\n        <li><strong class=\"pname\"><code>down</code></strong> - Scalar Down component, normal to <i>inside</i> surface of the \n          ellipsoid or sphere (<code>meter</code>), only used with scalar \n          <b><code>north_ned</code></b>.</li>\n        <li><strong class=\"pname\"><code>ltp</code></strong> - The <i>local tangent plane</i>, (geodetic) origin (<a \n          href=\"pygeodesy.ltp.Ltp-class.html\" class=\"link\">Ltp</a>, <a \n          href=\"pygeodesy.ltp.LocalCartesian-class.html\" \n          class=\"link\">LocalCartesian</a>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>north_ned</code></b> or <b><code>ltp</code></b>.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.UnitError-class.html\">UnitError</a></strong></code> - Invalid <b><code>north_ned</code></b>, <b><code>east</code></b> or \n        <b><code>down</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n        <dd><em class=\"note\">(inherited documentation)</em></dd>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toRepr\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toRepr</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">prec</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">fmt</span>=<span class=\"sig-default\">'[%s]'</span>,\n        <span class=\"sig-arg\">sep</span>=<span class=\"sig-default\">', '</span>,\n        <span class=\"sig-arg\">**unused</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use class <a href=\"pygeodesy.ltpTuples.Ned-class.html\" \n  class=\"link\">pygeodesy.Ned</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>prec</code></strong> - Number of (decimal) digits, unstripped (<code>int</code>).</li>\n        <li><strong class=\"pname\"><code>fmt</code></strong> - Enclosing backets format (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>sep</code></strong> - Separator between NEDs (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>This Ned as &quot;[L:f, B:degrees360, E:degrees90]&quot; \n          (<code>str</code>) with length or slantrange <code>L</code>, \n          bearing or azimuth <code>B</code> and elevation <code>E</code>.</dd>\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_method</code></li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.named._Named-class.html#toRepr\">named._Named.toRepr</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.ellipsoidalNvector.Nvector-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.ellipsoidalNvector.Nvector</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.ellipsoidalNvector-module.html\">Module&nbsp;ellipsoidalNvector</a> ::\n        Class&nbsp;Nvector\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.ellipsoidalNvector.Nvector-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Nvector</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n       object --+                    \n                |                    \n     <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+                \n                    |                \n     <a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+            \n                        |            \n<a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">vector3dBase.Vector3dBase</a> --+        \n                            |        \n            <a href=\"pygeodesy.vector3d.Vector3d-class.html\">vector3d.Vector3d</a> --+    \n                                |    \n          <a href=\"pygeodesy.nvectorBase.NvectorBase-class.html\">nvectorBase.NvectorBase</a> --+\n                                    |\n                                   <strong class=\"uidshort\">Nvector</strong>\n</pre>\n\n<hr />\n<p>An n-vector is a position representation using a (unit) vector normal \n  to the earth ellipsoid.  Unlike lat-/longitude points, n-vectors have no \n  singularities or discontinuities.</p>\n  <p>For many applications, n-vectors are more convenient to work with than\n  other position representations like lat-/longitude, earth-centred \n  earth-fixed (ECEF) vectors, UTM coordinates, etc.</p>\n  <p>Note commonality with <a \n  href=\"pygeodesy.sphericalNvector.Nvector-class.html\" \n  class=\"link\">pygeodesy.sphericalNvector.Nvector</a>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoidalNvector.Nvector-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">x_xyz</span>,\n        <span class=\"summary-sig-arg\">y</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">z</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">h</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">datum</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">ll</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      New n-vector normal to the earth's surface.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoidalNvector.Nvector-class.html#toCartesian\" class=\"summary-sig-name\">toCartesian</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">**Cartesian_and_kwds</span>)</span><br />\n      Convert this n-vector to <code>Nvector</code>-based cartesian (ECEF) \n      coordinates.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoidalNvector.Nvector-class.html#toLatLon\" class=\"summary-sig-name\">toLatLon</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">**LatLon_and_kwds</span>)</span><br />\n      Convert this n-vector to an <code>Nvector</code>-based geodetic \n      point.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoidalNvector.Nvector-class.html#unit\" class=\"summary-sig-name\">unit</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">ll</span>=<span class=\"summary-sig-default\">None</span>)</span><br />\n      Normalize this vector to unit length.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html\">nvectorBase.NvectorBase</a></code></b>:\n      <code><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#hStr\">hStr</a></code>,\n      <code><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#to2ab\">to2ab</a></code>,\n      <code><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#to2ll\">to2ll</a></code>,\n      <code><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#to3abh\">to3abh</a></code>,\n      <code><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#to3llh\">to3llh</a></code>,\n      <code><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#to4xyzh\">to4xyzh</a></code>,\n      <code><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#toVector3d\">toVector3d</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.vector3d.Vector3d-class.html\">vector3d.Vector3d</a></code></b>:\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#bearing\">bearing</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#circin6\">circin6</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#circum3\">circum3</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#circum4_\">circum4_</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#iscolinearWith\">iscolinearWith</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#meeus2\">meeus2</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#nearestOn\">nearestOn</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#nearestOn6\">nearestOn6</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#parse\">parse</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#radii11\">radii11</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#soddy4\">soddy4</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#trilaterate2d2\">trilaterate2d2</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#trilaterate3d2\">trilaterate3d2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">vector3dBase.Vector3dBase</a></code></b>:\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__abs__\">__abs__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__add__\">__add__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__bool__\">__bool__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__ceil__\">__ceil__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__cmp__\">__cmp__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__div__\">__div__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__divmod__\">__divmod__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__eq__\">__eq__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__float__\">__float__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__floor__\">__floor__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__floordiv__\">__floordiv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__ge__\">__ge__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__gt__\">__gt__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__iadd__\">__iadd__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__idiv__\">__idiv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__ifloordiv__\">__ifloordiv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__imod__\">__imod__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__imul__\">__imul__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__int__\">__int__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__ipow__\">__ipow__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__isub__\">__isub__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__itruediv__\">__itruediv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__le__\">__le__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__long__\">__long__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__lt__\">__lt__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__mod__\">__mod__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__mul__\">__mul__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__ne__\">__ne__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__neg__\">__neg__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__nonzero__\">__nonzero__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__pos__\">__pos__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__pow__\">__pow__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__radd__\">__radd__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rdiv__\">__rdiv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rdivmod__\">__rdivmod__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rfloordiv__\">__rfloordiv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rmod__\">__rmod__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rmul__\">__rmul__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__round__\">__round__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rpow__\">__rpow__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rsub__\">__rsub__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rtruediv__\">__rtruediv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__sub__\">__sub__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__truediv__\">__truediv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__trunc__\">__trunc__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#angleTo\">angleTo</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#apply\">apply</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#bools\">bools</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#cmp\">cmp</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#cross\">cross</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#dividedBy\">dividedBy</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#dividedBy_\">dividedBy_</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#dot\">dot</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#equals\">equals</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#equirectangular\">equirectangular</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#fabs\">fabs</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#floats\">floats</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#floorDividedBy\">floorDividedBy</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#floorDividedBy_\">floorDividedBy_</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#intermediateTo\">intermediateTo</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#ints\">ints</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#isconjugateTo\">isconjugateTo</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#isequalTo\">isequalTo</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#minus\">minus</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#minus_\">minus_</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#negate\">negate</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#others\">others</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#plus\">plus</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#plus_\">plus_</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#pow\">pow</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#rotate\">rotate</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#rotateAround\">rotateAround</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#sum\">sum</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#times\">times</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#times_\">times_</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#to3xyz\">to3xyz</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#toRepr\">toRepr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoidalNvector.Nvector-class.html#datum\" class=\"summary-name\">datum</a><br />\n      Get this n-vector's datum (<a \n      href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoidalNvector.Nvector-class.html#ellipsoidalNvector\" class=\"summary-name\">ellipsoidalNvector</a><br />\n      Get this <code>Nvector</code>'s ellipsoidal class.\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html\">nvectorBase.NvectorBase</a></code></b>:\n      <code><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#Ecef\">Ecef</a></code>,\n      <code><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#H\">H</a></code>,\n      <code><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#h\">h</a></code>,\n      <code><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#isEllipsoidal\">isEllipsoidal</a></code>,\n      <code><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#isSpherical\">isSpherical</a></code>,\n      <code><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#lam\">lam</a></code>,\n      <code><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#lat\">lat</a></code>,\n      <code><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#latlon\">latlon</a></code>,\n      <code><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#latlonheight\">latlonheight</a></code>,\n      <code><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#latlonheightdatum\">latlonheightdatum</a></code>,\n      <code><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#lon\">lon</a></code>,\n      <code><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#phi\">phi</a></code>,\n      <code><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#philam\">philam</a></code>,\n      <code><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#philamheight\">philamheight</a></code>,\n      <code><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#philamheightdatum\">philamheightdatum</a></code>,\n      <code><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#sphericalNvector\">sphericalNvector</a></code>,\n      <code><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#xyzh\">xyzh</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">vector3dBase.Vector3dBase</a></code></b>:\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#crosserrors\">crosserrors</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#euclid\">euclid</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#homogeneous\">homogeneous</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#length\">length</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#length2\">length2</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#x\">x</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#x2y2z2\">x2y2z2</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#x2y2z23\">x2y2z23</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#xyz\">xyz</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#xyz3\">xyz3</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#y\">y</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#z\">z</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">x_xyz</span>,\n        <span class=\"sig-arg\">y</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">z</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">h</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">datum</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">ll</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New n-vector normal to the earth's surface.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>x_xyz</code></strong> - X component of vector (<code>scalar</code>) or (3-D) vector \n          (<code>Nvector</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <a \n          href=\"pygeodesy.namedTuples.Vector3Tuple-class.html\" \n          class=\"link\">Vector3Tuple</a> or <a \n          href=\"pygeodesy.namedTuples.Vector4Tuple-class.html\" \n          class=\"link\">Vector4Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>y</code></strong> - Y component of vector (<code>scalar</code>), ignored if \n          <b><code>x_xyz</code></b> is not <code>scalar</code>, otherwise \n          same units as <b><code>x_xyz</code></b>.</li>\n        <li><strong class=\"pname\"><code>z</code></strong> - Z component of vector (<code>scalar</code>), ignored if \n          <b><code>x_xyz</code></b> is not <code>scalar</code>, otherwise \n          same units as <b><code>x_xyz</code></b>.</li>\n        <li><strong class=\"pname\"><code>h</code></strong> - Optional height above model surface (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>datum</code></strong> - Optional datum this n-vector is defined in (<a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>, \n          <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a> or <a \n          href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>ll</code></strong> - Optional, original latlon (<code>LatLon</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - If <b><code>datum</code></b> is not a <a \n        href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toCartesian\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toCartesian</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">**Cartesian_and_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert this n-vector to <code>Nvector</code>-based cartesian (ECEF) \n  coordinates.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>Cartesian_and_kwds</code></strong> - Optional <a \n          href=\"pygeodesy.ellipsoidalNvector.Cartesian-class.html\" \n          class=\"link\">Cartesian</a>, <b><code>h</code></b>, \n          <b><code>datum</code></b> and other keyword arguments.  Use \n          <code><b>Cartesian</b>=...</code> to override this <a \n          href=\"pygeodesy.ellipsoidalNvector.Cartesian-class.html\" \n          class=\"link\">Cartesian</a> class or specify \n          <code><b>Cartesian</b> is None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The cartesian point (<a \n          href=\"pygeodesy.ellipsoidalNvector.Cartesian-class.html\" \n          class=\"link\">Cartesian</a>) or if <code><b>Cartesian</b> is \n          None</code>, an <a href=\"pygeodesy.ecef.Ecef9Tuple-class.html\" \n          class=\"link\">Ecef9Tuple</a><code>(x, y, z, lat, lon, height, C, \n          M, datum)</code> with <code>C</code> and <code>M</code> if \n          available.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>Cartesian_and_kwds</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.vector3d.Vector3d-class.html#toCartesian\">vector3d.Vector3d.toCartesian</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toLatLon\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toLatLon</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">**LatLon_and_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert this n-vector to an <code>Nvector</code>-based geodetic \n  point.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>LatLon_and_kwds</code></strong> - Optional <a href=\"pygeodesy.ellipsoidalNvector.LatLon-class.html\"\n          class=\"link\">LatLon</a>, <b><code>height</code></b>, \n          <b><code>datum</code></b> and other keyword arguments.  Use \n          <code><b>LatLon</b>=...</code> to override this <a \n          href=\"pygeodesy.ellipsoidalNvector.LatLon-class.html\" \n          class=\"link\">LatLon</a> class or specify <code><b>LatLon</b> is \n          None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The geodetic point (<a \n          href=\"pygeodesy.ellipsoidalNvector.LatLon-class.html\" \n          class=\"link\">LatLon</a>) or if <code><b>LatLon</b> is \n          None</code>, an <a href=\"pygeodesy.ecef.Ecef9Tuple-class.html\" \n          class=\"link\">Ecef9Tuple</a><code>(x, y, z, lat, lon, height, C, \n          M, datum)</code> with <code>C</code> and <code>M</code> if \n          available.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>LatLon_and_kwds</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#toLatLon\">nvectorBase.NvectorBase.toLatLon</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"unit\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">unit</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">ll</span>=<span class=\"sig-default\">None</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Normalize this vector to unit length.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>ll</code></strong> - Optional, original latlon (<code>LatLon</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Normalised vector (<code>Nvector</code>).</dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#unit\">vector3dBase.Vector3dBase.unit</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"datum\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">datum</h3>\n  <p>Get this n-vector's datum (<a href=\"pygeodesy.datums.Datum-class.html\"\n  class=\"link\">Datum</a>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">datum(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get this n-vector's datum (<a href=\"pygeodesy.datums.Datum-class.html\" \nclass=\"link\">Datum</a>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"ellipsoidalNvector\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">ellipsoidalNvector</h3>\n  <p>Get this <code>Nvector</code>'s ellipsoidal class.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">ellipsoidalNvector(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get this <code>Nvector</code>'s ellipsoidal class.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.ellipsoidalVincenty-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.ellipsoidalVincenty</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        Module&nbsp;ellipsoidalVincenty\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.ellipsoidalVincenty-module.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== MODULE DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Module ellipsoidalVincenty</h1><p class=\"nomargin-top\"></p>\n<p>Ellipsoidal, <i>Vincenty</i>-based geodesy.</p>\n  <p><i>Thaddeus Vincenty</i>'s geodetic (lat-/longitude) <a \n  href=\"pygeodesy.ellipsoidalVincenty.LatLon-class.html\" \n  class=\"link\">LatLon</a>, geocentric (ECEF) <a \n  href=\"pygeodesy.ellipsoidalVincenty.Cartesian-class.html\" \n  class=\"link\">Cartesian</a> and <a \n  href=\"pygeodesy.ellipsoidalVincenty.VincentyError-class.html\" \n  class=\"link\">VincentyError</a> classes and functions <a \n  href=\"pygeodesy.ellipsoidalVincenty-module.html#areaOf\" \n  class=\"link\">areaOf</a>, <a \n  href=\"pygeodesy.ellipsoidalVincenty-module.html#intersections2\" \n  class=\"link\">intersections2</a>, <a \n  href=\"pygeodesy.ellipsoidalVincenty-module.html#nearestOn\" \n  class=\"link\">nearestOn</a> and <a \n  href=\"pygeodesy.ellipsoidalVincenty-module.html#perimeterOf\" \n  class=\"link\">perimeterOf</a>.</p>\n  <p>Pure Python implementation of geodesy tools for ellipsoidal earth \n  models, transcoded from JavaScript originals by <i>(C) Chris Veness \n  2005-2024</i> and published under the same MIT Licence**, see <a \n  href=\"https://www.Movable-Type.co.UK/scripts/LatLongVincenty.html\" \n  target=\"_top\">Vincenty geodesics</a>.  More at <a \n  href=\"https://PyPI.org/project/geographiclib\" \n  target=\"_top\">geographiclib</a> and <a \n  href=\"https://PyPI.org/project/geopy\" target=\"_top\">GeoPy</a>.</p>\n  <p>Calculate geodesic distance between two points using the <a \n  href=\"https://WikiPedia.org/wiki/Vincenty's_formulae\" \n  target=\"_top\">Vincenty</a> formulae and one of several ellipsoidal earth \n  models.  The default model is WGS-84, the most widely used \n  globally-applicable model for the earth ellipsoid.</p>\n  <p>Other ellipsoids offering a better fit to the local geoid include Airy\n  (1830) in the UK, Clarke (1880) in Africa, International 1924 in much of \n  Europe, and GRS-67 in South America.  North America (NAD83) and Australia\n  (GDA) use GRS-80, which is equivalent to the WGS-84 model.</p>\n  <p>Great-circle distance uses a <i>spherical</i> model of the earth with \n  the mean earth radius defined by the International Union of Geodesy and \n  Geophysics (IUGG) as <i class=\"math\">(2 * a + b) / 3 = \n  6371008.7714150598</i> or about 6,371,009 meter (for WGS-84, resulting in\n  an error of up to about 0.5%).</p>\n  <p>Here's an example usage of <code>ellipsoidalVincenty</code>:</p>\n<pre class=\"py-doctest\">\n<span class=\"py-prompt\">&gt;&gt;&gt; </span><span class=\"py-keyword\">from</span> pygeodesy.ellipsoidalVincenty <span class=\"py-keyword\">import</span> LatLon\n<span class=\"py-prompt\">&gt;&gt;&gt; </span>Newport_RI = LatLon(41.49008, -71.312796)\n<span class=\"py-prompt\">&gt;&gt;&gt; </span>Cleveland_OH = LatLon(41.499498, -81.695391)\n<span class=\"py-prompt\">&gt;&gt;&gt; </span>Newport_RI.distanceTo(Cleveland_OH)\n<span class=\"py-output\">866,455.4329158525  # meter</span></pre>\n  <p>To change the ellipsoid model used by the Vincenty formulae use:</p>\n<pre class=\"py-doctest\">\n<span class=\"py-prompt\">&gt;&gt;&gt; </span><span class=\"py-keyword\">from</span> pygeodesy <span class=\"py-keyword\">import</span> Datums\n<span class=\"py-prompt\">&gt;&gt;&gt; </span><span class=\"py-keyword\">from</span> pygeodesy.ellipsoidalVincenty <span class=\"py-keyword\">import</span> LatLon\n<span class=\"py-prompt\">&gt;&gt;&gt; </span>p = LatLon(0, 0, datum=Datums.OSGB36)</pre>\n  <p>or by converting to anothor datum:</p>\n<pre class=\"py-doctest\">\n<span class=\"py-prompt\">&gt;&gt;&gt; </span>p = p.toDatum(Datums.OSGB36)</pre>\n\n<hr />\n<div class=\"fields\">      <p><strong>Version:</strong>\n        25.05.26\n      </p>\n</div><!-- ==================== CLASSES ==================== -->\n<a name=\"section-Classes\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Classes</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoidalVincenty.VincentyError-class.html\" class=\"summary-name\">VincentyError</a><br />\n      Error raised by <i>Vincenty</i>'s <code>Direct</code> and \n        <code>Inverse</code> methods for coincident points or lack of \n        convergence.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoidalVincenty.Cartesian-class.html\" class=\"summary-name\">Cartesian</a><br />\n      Extended to convert geocentric, <a \n        href=\"pygeodesy.ellipsoidalVincenty.Cartesian-class.html\" \n        class=\"link\">Cartesian</a> points to Vincenty-based, ellipsoidal, \n        geodetic <a href=\"pygeodesy.ellipsoidalVincenty.LatLon-class.html\" \n        class=\"link\">LatLon</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoidalVincenty.LatLon-class.html\" class=\"summary-name\">LatLon</a><br />\n      New point on an (oblate) ellipsoidal earth model, using the \n        formulae devised by <a \n        href=\"https://WikiPedia.org/wiki/Vincenty's_formulae\" \n        target=\"_top\"><i>Thaddeus Vincenty</i></a> (1975) to compute \n        geodesic distances, bearings (azimuths), etc.\n    </td>\n  </tr>\n</table>\n<!-- ==================== FUNCTIONS ==================== -->\n<a name=\"section-Functions\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Functions</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoidalVincenty-module.html#intersecant2\" class=\"summary-sig-name\">intersecant2</a>(<span class=\"summary-sig-arg\">center</span>,\n        <span class=\"summary-sig-arg\">circle</span>,\n        <span class=\"summary-sig-arg\">point</span>,\n        <span class=\"summary-sig-arg\">other</span>,\n        <span class=\"summary-sig-arg\">**exact_height_wrap_tol</span>)</span><br />\n      Compute the intersections of a circle and a geodesic given as two \n      points or as a point and (forward) bearing.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoidalVincenty-module.html#ispolar\" class=\"summary-sig-name\">ispolar</a>(<span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Check whether a polygon encloses a pole.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoidalVincenty-module.html#areaOf\" class=\"summary-sig-name\">areaOf</a>(<span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">**datum_wrap_polar</span>)</span><br />\n      DEPRECATED, use function <a \n      href=\"pygeodesy.ellipsoidalExact-module.html#areaOf\" \n      class=\"link\">ellipsoidalExact.areaOf</a> or <a \n      href=\"pygeodesy.ellipsoidalKarney-module.html#areaOf\" \n      class=\"link\">ellipsoidalKarney.areaOf</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoidalVincenty-module.html#intersection3\" class=\"summary-sig-name\">intersection3</a>(<span class=\"summary-sig-arg\">start1</span>,\n        <span class=\"summary-sig-arg\">end1</span>,\n        <span class=\"summary-sig-arg\">start2</span>,\n        <span class=\"summary-sig-arg\">end2</span>,\n        <span class=\"summary-sig-arg\">height</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">equidistant</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">tol</span>=<span class=\"summary-sig-default\">0.001</span>,\n        <span class=\"summary-sig-arg\">LatLon</span>=<span class=\"summary-sig-default\">&lt;class 'pygeodesy.ellipsoidalVincenty.LatLon'&gt;</span>,\n        <span class=\"summary-sig-arg\">**LatLon_kwds</span>)</span><br />\n      <i>Iteratively</i> compute the intersection point of two lines, each \n      defined by two (ellipsoidal) points or by an (ellipsoidal) start \n      point and an (initial) bearing from North.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoidalVincenty-module.html#intersections2\" class=\"summary-sig-name\">intersections2</a>(<span class=\"summary-sig-arg\">center1</span>,\n        <span class=\"summary-sig-arg\">radius1</span>,\n        <span class=\"summary-sig-arg\">center2</span>,\n        <span class=\"summary-sig-arg\">radius2</span>,\n        <span class=\"summary-sig-arg\">height</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">equidistant</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">tol</span>=<span class=\"summary-sig-default\">0.001</span>,\n        <span class=\"summary-sig-arg\">LatLon</span>=<span class=\"summary-sig-default\">&lt;class 'pygeodesy.ellipsoidalVincenty.LatLon'&gt;</span>,\n        <span class=\"summary-sig-arg\">**LatLon_kwds</span>)</span><br />\n      <i>Iteratively</i> compute the intersection points of two circles, \n      each defined by an (ellipsoidal) center point and a radius.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoidalVincenty-module.html#nearestOn\" class=\"summary-sig-name\">nearestOn</a>(<span class=\"summary-sig-arg\">point</span>,\n        <span class=\"summary-sig-arg\">point1</span>,\n        <span class=\"summary-sig-arg\">point2</span>,\n        <span class=\"summary-sig-arg\">within</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">height</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">equidistant</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">tol</span>=<span class=\"summary-sig-default\">0.001</span>,\n        <span class=\"summary-sig-arg\">LatLon</span>=<span class=\"summary-sig-default\">&lt;class 'pygeodesy.ellipsoidalVincenty.LatLon'&gt;</span>,\n        <span class=\"summary-sig-arg\">**LatLon_kwds</span>)</span><br />\n      <i>Iteratively</i> locate the closest point on the geodesic between \n      two other (ellipsoidal) points.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoidalVincenty-module.html#perimeterOf\" class=\"summary-sig-name\">perimeterOf</a>(<span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">**closed_datum_wrap</span>)</span><br />\n      DEPRECATED, use function <a \n      href=\"pygeodesy.ellipsoidalExact-module.html#perimeterOf\" \n      class=\"link\">ellipsoidalExact.perimeterOf</a> or <a \n      href=\"pygeodesy.ellipsoidalKarney-module.html#perimeterOf\" \n      class=\"link\">ellipsoidalKarney.perimeterOf</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== VARIABLES ==================== -->\n<a name=\"section-Variables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Variables</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"__all__\"></a><span class=\"summary-name\">__all__</span> = <code title=\"_ALL_LAZY.ellipsoidalVincenty\">_ALL_LAZY.ellipsoidalVincenty</code>\n    </td>\n  </tr>\n</table>\n<!-- ==================== FUNCTION DETAILS ==================== -->\n<a name=\"section-FunctionDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Function Details</span></td>\n</tr>\n</table>\n<a name=\"intersecant2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">intersecant2</span>&nbsp;(<span class=\"sig-arg\">center</span>,\n        <span class=\"sig-arg\">circle</span>,\n        <span class=\"sig-arg\">point</span>,\n        <span class=\"sig-arg\">other</span>,\n        <span class=\"sig-arg\">**exact_height_wrap_tol</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the intersections of a circle and a geodesic given as two \n  points or as a point and (forward) bearing.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>center</code></strong> - Center of the circle (<code>LatLon</code>).</li>\n        <li><strong class=\"pname\"><code>circle</code></strong> - Radius of the circle (<code>meter</code>, conventionally) or a \n          point on the circle (<code>LatLon</code>, as \n          <b><code>center</code></b>).</li>\n        <li><strong class=\"pname\"><code>point</code></strong> - A point of the geodesic (<code>LatLon</code>, as \n          <b><code>center</code></b>).</li>\n        <li><strong class=\"pname\"><code>other</code></strong> - An other point of the geodesic (<code>LatLon</code>, as \n          <b><code>center</code></b>) or the (forward) bearing at the \n          <b><code>point</code></b> (compass <code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>exact_height_wrap_tol</code></strong> - Optional keyword arguments <code><b>exact</b>=False</code>, \n          <code><b>height</b>=None</code>, <code><b>wrap</b>=False</code> \n          and <code><b>tol</b></code>, see method <a \n          href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#intersecant2\"\n          class=\"link\">intersecant2</a>.</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>NotImplementedError</strong></code> - Method <code>intersecant2</code> not available.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - If <b><code>center</code></b>, <b><code>point</code></b> or \n        <b><code>circle</code></b> or <b><code>other</code></b> points not \n        ellipsoidal or not compatible with <b><code>center</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <code>LatLon.intersecant2</code> of class <a \n        href=\"pygeodesy.ellipsoidalExact.LatLon-class.html\" \n        class=\"link\">ellipsoidalExact.LatLon</a>, <a \n        href=\"pygeodesy.ellipsoidalKarney.LatLon-class.html\" \n        class=\"link\">ellipsoidalKarney.LatLon</a> or <a \n        href=\"pygeodesy.ellipsoidalVincenty.LatLon-class.html\" \n        class=\"link\">ellipsoidalVincenty.LatLon</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"ispolar\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">ispolar</span>&nbsp;(<span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Check whether a polygon encloses a pole.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>points</code></strong> - The polygon points (<code>LatLon</code>[]).</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll the \n          <b><code>points</code></b> (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>True</code> if the polygon encloses a pole, \n          <code>False</code> otherwise.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.PointsError-class.html\">PointsError</a></strong></code> - Insufficient number of <b><code>points</code></b></li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Some <b><code>points</code></b> are not <code>LatLon</code> or \n        don't have <code>bearingTo2</code>, <code>initialBearingTo</code> \n        and <code>finalBearingTo</code> methods.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"areaOf\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">areaOf</span>&nbsp;(<span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">**datum_wrap_polar</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use function <a \n  href=\"pygeodesy.ellipsoidalExact-module.html#areaOf\" \n  class=\"link\">ellipsoidalExact.areaOf</a> or <a \n  href=\"pygeodesy.ellipsoidalKarney-module.html#areaOf\" \n  class=\"link\">ellipsoidalKarney.areaOf</a>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"intersection3\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">intersection3</span>&nbsp;(<span class=\"sig-arg\">start1</span>,\n        <span class=\"sig-arg\">end1</span>,\n        <span class=\"sig-arg\">start2</span>,\n        <span class=\"sig-arg\">end2</span>,\n        <span class=\"sig-arg\">height</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">equidistant</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">tol</span>=<span class=\"sig-default\">0.001</span>,\n        <span class=\"sig-arg\">LatLon</span>=<span class=\"sig-default\">&lt;class 'pygeodesy.ellipsoidalVincenty.LatLon'&gt;</span>,\n        <span class=\"sig-arg\">**LatLon_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p><i>Iteratively</i> compute the intersection point of two lines, each \n  defined by two (ellipsoidal) points or by an (ellipsoidal) start point \n  and an (initial) bearing from North.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>start1</code></strong> - Start point of the first line (<a \n          href=\"pygeodesy.ellipsoidalVincenty.LatLon-class.html\" \n          class=\"link\">LatLon</a>).</li>\n        <li><strong class=\"pname\"><code>end1</code></strong> - End point of the first line (<a \n          href=\"pygeodesy.ellipsoidalVincenty.LatLon-class.html\" \n          class=\"link\">LatLon</a>) or the initial bearing at the first \n          point (compass <code>degrees360</code>).</li>\n        <li><strong class=\"pname\"><code>start2</code></strong> - Start point of the second line (<a \n          href=\"pygeodesy.ellipsoidalVincenty.LatLon-class.html\" \n          class=\"link\">LatLon</a>).</li>\n        <li><strong class=\"pname\"><code>end2</code></strong> - End point of the second line (<a \n          href=\"pygeodesy.ellipsoidalVincenty.LatLon-class.html\" \n          class=\"link\">LatLon</a>) or the initial bearing at the second \n          point (compass <code>degrees360</code>).</li>\n        <li><strong class=\"pname\"><code>height</code></strong> - Optional height at the intersection (<code>meter</code>, \n          conventionally) or <code>None</code> for the mean height.</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll the \n          <b><code>start2</code></b> and <b><code>end*</code></b> points \n          (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>equidistant</code></strong> - An azimuthal equidistant projection (<i>class</i> or function <a \n          href=\"pygeodesy.azimuthal-module.html#equidistant\" \n          class=\"link\">pygeodesy.equidistant</a>) or <code>None</code> for \n          the preferred <code><b>start1</b>.Equidistant</code>.</li>\n        <li><strong class=\"pname\"><code>tol</code></strong> - Tolerance for convergence and for skew line distance and length \n          (<code>meter</code>, conventionally).</li>\n        <li><strong class=\"pname\"><code>LatLon</code></strong> - Optional class to return the intersection points (<a \n          href=\"pygeodesy.ellipsoidalVincenty.LatLon-class.html\" \n          class=\"link\">LatLon</a>) or <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>LatLon_kwds</code></strong> - Optional, additional <b><code>LatLon</code></b> keyword \n          arguments, ignored if <code><b>LatLon</b> is None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>An <a href=\"pygeodesy.namedTuples.Intersection3Tuple-class.html\" \n          class=\"link\">Intersection3Tuple</a><code>(point, outside1, \n          outside2)</code> with <code>point</code> a \n          <b><code>LatLon</code></b> or if <code><b>LatLon</b> is \n          None</code>, a <a \n          href=\"pygeodesy.namedTuples.LatLon4Tuple-class.html\" \n          class=\"link\">LatLon4Tuple</a><code>(lat, lon, height, \n          datum)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.IntersectionError-class.html\">IntersectionError</a></strong></code> - Skew, colinear, parallel or otherwise non-intersecting lines or no \n        convergence for the given <b><code>tol</code></b>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid or non-ellipsoidal <b><code>start1</code></b>, \n        <b><code>end1</code></b>, <b><code>start2</code></b> or \n        <b><code>end2</code></b> or invalid \n        <b><code>equidistant</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        For each line specified with an initial bearing, a pseudo-end point\n        is computed as the <code>destination</code> along that bearing at \n        about 1.5 times the distance from the start point to an initial \n        gu-/estimate of the intersection point (and between 1/8 and 3/8 of \n        the authalic earth perimeter).\n      </p>\n      <p><strong>See Also:</strong>\n        <a \n        href=\"https://GIS.StackExchange.com/questions/48937/calculating-intersection-of-two-circles\"\n        target=\"_top\">The <b>ellipsoidal</b> case</a> and <a \n        href=\"https://ArXiv.org/pdf/1102.1215.pdf\" target=\"_top\">Karney's \n        paper</a>, pp 20-21, section <b>14. MARITIME BOUNDARIES</b> for \n        more details about the iteration algorithm.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"intersections2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">intersections2</span>&nbsp;(<span class=\"sig-arg\">center1</span>,\n        <span class=\"sig-arg\">radius1</span>,\n        <span class=\"sig-arg\">center2</span>,\n        <span class=\"sig-arg\">radius2</span>,\n        <span class=\"sig-arg\">height</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">equidistant</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">tol</span>=<span class=\"sig-default\">0.001</span>,\n        <span class=\"sig-arg\">LatLon</span>=<span class=\"sig-default\">&lt;class 'pygeodesy.ellipsoidalVincenty.LatLon'&gt;</span>,\n        <span class=\"sig-arg\">**LatLon_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p><i>Iteratively</i> compute the intersection points of two circles, \n  each defined by an (ellipsoidal) center point and a radius.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>center1</code></strong> - Center of the first circle (<a \n          href=\"pygeodesy.ellipsoidalVincenty.LatLon-class.html\" \n          class=\"link\">LatLon</a>).</li>\n        <li><strong class=\"pname\"><code>radius1</code></strong> - Radius of the first circle (<code>meter</code>, conventionally).</li>\n        <li><strong class=\"pname\"><code>center2</code></strong> - Center of the second circle (<a \n          href=\"pygeodesy.ellipsoidalVincenty.LatLon-class.html\" \n          class=\"link\">LatLon</a>).</li>\n        <li><strong class=\"pname\"><code>radius2</code></strong> - Radius of the second circle (<code>meter</code>, same units as \n          <b><code>radius1</code></b>).</li>\n        <li><strong class=\"pname\"><code>height</code></strong> - Optional height for the intersection points (<code>meter</code>, \n          conventionally) or <code>None</code> for the <i>&quot;radical \n          height&quot;</i> at the <i>radical line</i> between both centers.</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll \n          <b><code>center2</code></b> (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>equidistant</code></strong> - An azimuthal equidistant projection (<i>class</i> or function <a \n          href=\"pygeodesy.azimuthal-module.html#equidistant\" \n          class=\"link\">pygeodesy.equidistant</a>) or <code>None</code> for \n          the preferred <code><b>center1</b>.Equidistant</code>.</li>\n        <li><strong class=\"pname\"><code>tol</code></strong> - Convergence tolerance (<code>meter</code>, same units as \n          <b><code>radius1</code></b> and <b><code>radius2</code></b>).</li>\n        <li><strong class=\"pname\"><code>LatLon</code></strong> - Optional class to return the intersection points (<a \n          href=\"pygeodesy.ellipsoidalVincenty.LatLon-class.html\" \n          class=\"link\">LatLon</a>) or <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>LatLon_kwds</code></strong> - Optional, additional <b><code>LatLon</code></b> keyword \n          arguments, ignored if <code><b>LatLon</b> is None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>2-Tuple of the intersection points, each a \n          <b><code>LatLon</code></b> instance or <a \n          href=\"pygeodesy.namedTuples.LatLon4Tuple-class.html\" \n          class=\"link\">LatLon4Tuple</a><code>(lat, lon, height, \n          datum)</code> if <code><b>LatLon</b> is None</code>.  For \n          abutting circles, both points are the same instance, aka the \n          <i>radical center</i>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.IntersectionError-class.html\">IntersectionError</a></strong></code> - Concentric, antipodal, invalid or non-intersecting circles or no \n        convergence for the <b><code>tol</code></b>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid or non-ellipsoidal <b><code>center1</code></b> or \n        <b><code>center2</code></b> or invalid \n        <b><code>equidistant</code></b>.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.UnitError-class.html\">UnitError</a></strong></code> - Invalid <b><code>radius1</code></b>, <b><code>radius2</code></b> or\n        <b><code>height</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a \n        href=\"https://GIS.StackExchange.com/questions/48937/calculating-intersection-of-two-circles\"\n        target=\"_top\">The <b>ellipsoidal</b> case</a>, <a \n        href=\"https://ArXiv.org/pdf/1102.1215.pdf\" target=\"_top\">Karney's \n        paper</a>, pp 20-21, section <b>14. MARITIME BOUNDARIES</b>, <a \n        href=\"https://MathWorld.Wolfram.com/Circle-CircleIntersection.html\"\n        target=\"_top\">circle-circle</a> and <a \n        href=\"https://MathWorld.Wolfram.com/Sphere-SphereIntersection.html\"\n        target=\"_top\">sphere-sphere</a> intersections.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"nearestOn\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">nearestOn</span>&nbsp;(<span class=\"sig-arg\">point</span>,\n        <span class=\"sig-arg\">point1</span>,\n        <span class=\"sig-arg\">point2</span>,\n        <span class=\"sig-arg\">within</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">height</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">equidistant</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">tol</span>=<span class=\"sig-default\">0.001</span>,\n        <span class=\"sig-arg\">LatLon</span>=<span class=\"sig-default\">&lt;class 'pygeodesy.ellipsoidalVincenty.LatLon'&gt;</span>,\n        <span class=\"sig-arg\">**LatLon_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p><i>Iteratively</i> locate the closest point on the geodesic between \n  two other (ellipsoidal) points.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>point</code></strong> - Reference point (<code>LatLon</code>).</li>\n        <li><strong class=\"pname\"><code>point1</code></strong> - Start point of the geodesic (<code>LatLon</code>).</li>\n        <li><strong class=\"pname\"><code>point2</code></strong> - End point of the geodesic (<code>LatLon</code>).</li>\n        <li><strong class=\"pname\"><code>within</code></strong> - If <code>True</code>, return the closest point <i>between</i> \n          <b><code>point1</code></b> and <b><code>point2</code></b>, \n          otherwise the closest point elsewhere on the geodesic \n          (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>height</code></strong> - Optional height for the closest point (<code>meter</code>, \n          conventionally) or <code>None</code> or <code>False</code> for \n          the interpolated height.  If <code>False</code>, the closest \n          takes the heights of the points into account.</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll both \n          <b><code>point1</code></b> and <b><code>point2</code></b> \n          (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>equidistant</code></strong> - An azimuthal equidistant projection (<i>class</i> or function <a \n          href=\"pygeodesy.azimuthal-module.html#equidistant\" \n          class=\"link\">pygeodesy.equidistant</a>) or <code>None</code> for \n          the preferred <code><b>point</b>.Equidistant</code>.</li>\n        <li><strong class=\"pname\"><code>tol</code></strong> - Convergence tolerance (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>LatLon</code></strong> - Optional class to return the closest point (<a \n          href=\"pygeodesy.ellipsoidalVincenty.LatLon-class.html\" \n          class=\"link\">LatLon</a>) or <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>LatLon_kwds</code></strong> - Optional, additional <b><code>LatLon</code></b> keyword \n          arguments, ignored if <code><b>LatLon</b> is None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Closest point, a <b><code>LatLon</code></b> instance or if \n          <code><b>LatLon</b> is None</code>, a <a \n          href=\"pygeodesy.namedTuples.LatLon4Tuple-class.html\" \n          class=\"link\">LatLon4Tuple</a><code>(lat, lon, height, \n          datum)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ImportError</strong></code> - Package <a href=\"https://PyPI.org/project/geographiclib\" \n        target=\"_top\">geographiclib</a> not installed or not found, but \n        only if <code><b>equidistant</b>=</code><a \n        href=\"pygeodesy.azimuthal.EquidistantKarney-class.html\" \n        class=\"link\">EquidistantKarney</a>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid or non-ellipsoidal <b><code>point</code></b>, \n        <b><code>point1</code></b> or <b><code>point2</code></b> or invalid\n        <b><code>equidistant</code></b>.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - No convergence for the <b><code>tol</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a \n        href=\"https://GIS.StackExchange.com/questions/48937/calculating-intersection-of-two-circles\"\n        target=\"_top\">The <b>ellipsoidal</b> case</a> and <a \n        href=\"https://ArXiv.org/pdf/1102.1215.pdf\" target=\"_top\">Karney's \n        paper</a>, pp 20-21, section <b>14. MARITIME BOUNDARIES</b> for \n        more details about the iteration algorithm.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"perimeterOf\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">perimeterOf</span>&nbsp;(<span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">**closed_datum_wrap</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use function <a \n  href=\"pygeodesy.ellipsoidalExact-module.html#perimeterOf\" \n  class=\"link\">ellipsoidalExact.perimeterOf</a> or <a \n  href=\"pygeodesy.ellipsoidalKarney-module.html#perimeterOf\" \n  class=\"link\">ellipsoidalKarney.perimeterOf</a>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.ellipsoidalVincenty.Cartesian-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.ellipsoidalVincenty.Cartesian</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.ellipsoidalVincenty-module.html\">Module&nbsp;ellipsoidalVincenty</a> ::\n        Class&nbsp;Cartesian\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.ellipsoidalVincenty.Cartesian-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Cartesian</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n          object --+                        \n                   |                        \n        <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+                    \n                       |                    \n        <a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+                \n                           |                \n   <a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">vector3dBase.Vector3dBase</a> --+            \n                               |            \n               <a href=\"pygeodesy.vector3d.Vector3d-class.html\">vector3d.Vector3d</a> --+        \n                                   |        \n                  object --+       |        \n                           |       |        \n                <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+   |        \n                               |   |        \n           <a href=\"pygeodesy.ecefLocals._EcefLocal-class.html\">ecefLocals._EcefLocal</a> --+        \n                                   |        \n         <a href=\"pygeodesy.cartesianBase.CartesianBase-class.html\">cartesianBase.CartesianBase</a> --+    \n                                       |    \n<a href=\"pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html\">ellipsoidalBase.CartesianEllipsoidalBase</a> --+\n                                           |\n                                          <strong class=\"uidshort\">Cartesian</strong>\n</pre>\n\n<hr />\n<p>Extended to convert geocentric, <a \n  href=\"pygeodesy.ellipsoidalVincenty.Cartesian-class.html\" \n  class=\"link\">Cartesian</a> points to Vincenty-based, ellipsoidal, \n  geodetic <a href=\"pygeodesy.ellipsoidalVincenty.LatLon-class.html\" \n  class=\"link\">LatLon</a>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoidalVincenty.Cartesian-class.html#toLatLon\" class=\"summary-sig-name\">toLatLon</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">**LatLon_and_kwds</span>)</span><br />\n      Convert this cartesian point to a <code>Vincenty</code>-based \n      geodetic point.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html\">ellipsoidalBase.CartesianEllipsoidalBase</a></code></b>:\n      <code><a href=\"pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#__init__\">__init__</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#convertRefFrame\">convertRefFrame</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#intersections2\">intersections2</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#toRefFrame\">toRefFrame</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#toTransforms_\">toTransforms_</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html\">cartesianBase.CartesianBase</a></code></b>:\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#Roc2\">Roc2</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#cassini\">cassini</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#collins\">collins</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#collins5\">collins5</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#convertDatum\">convertDatum</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#destinationXyz\">destinationXyz</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#hartzell\">hartzell</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#height3\">height3</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#height4\">height4</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#pierlot\">pierlot</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#pierlotx\">pierlotx</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#tienstra\">tienstra</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#tienstra7\">tienstra7</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#to2ab\">to2ab</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#to2ll\">to2ll</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#to3llh\">to3llh</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#toDatum\">toDatum</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#toEcef\">toEcef</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#toNvector\">toNvector</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#toRtp\">toRtp</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#toTransform\">toTransform</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#toVector\">toVector</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.vector3d.Vector3d-class.html\">vector3d.Vector3d</a></code></b>:\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#bearing\">bearing</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#circin6\">circin6</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#circum3\">circum3</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#circum4_\">circum4_</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#iscolinearWith\">iscolinearWith</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#meeus2\">meeus2</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#nearestOn\">nearestOn</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#nearestOn6\">nearestOn6</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#parse\">parse</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#radii11\">radii11</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#soddy4\">soddy4</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#toCartesian\">toCartesian</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#trilaterate2d2\">trilaterate2d2</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#trilaterate3d2\">trilaterate3d2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">vector3dBase.Vector3dBase</a></code></b>:\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__abs__\">__abs__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__add__\">__add__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__bool__\">__bool__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__ceil__\">__ceil__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__cmp__\">__cmp__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__div__\">__div__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__divmod__\">__divmod__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__eq__\">__eq__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__float__\">__float__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__floor__\">__floor__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__floordiv__\">__floordiv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__ge__\">__ge__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__gt__\">__gt__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__iadd__\">__iadd__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__idiv__\">__idiv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__ifloordiv__\">__ifloordiv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__imod__\">__imod__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__imul__\">__imul__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__int__\">__int__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__ipow__\">__ipow__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__isub__\">__isub__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__itruediv__\">__itruediv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__le__\">__le__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__long__\">__long__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__lt__\">__lt__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__mod__\">__mod__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__mul__\">__mul__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__ne__\">__ne__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__neg__\">__neg__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__nonzero__\">__nonzero__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__pos__\">__pos__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__pow__\">__pow__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__radd__\">__radd__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rdiv__\">__rdiv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rdivmod__\">__rdivmod__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rfloordiv__\">__rfloordiv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rmod__\">__rmod__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rmul__\">__rmul__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__round__\">__round__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rpow__\">__rpow__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rsub__\">__rsub__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rtruediv__\">__rtruediv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__sub__\">__sub__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__truediv__\">__truediv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__trunc__\">__trunc__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#angleTo\">angleTo</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#apply\">apply</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#bools\">bools</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#cmp\">cmp</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#cross\">cross</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#dividedBy\">dividedBy</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#dividedBy_\">dividedBy_</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#dot\">dot</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#equals\">equals</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#equirectangular\">equirectangular</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#fabs\">fabs</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#floats\">floats</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#floorDividedBy\">floorDividedBy</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#floorDividedBy_\">floorDividedBy_</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#intermediateTo\">intermediateTo</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#ints\">ints</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#isconjugateTo\">isconjugateTo</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#isequalTo\">isequalTo</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#minus\">minus</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#minus_\">minus_</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#negate\">negate</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#others\">others</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#plus\">plus</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#plus_\">plus_</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#pow\">pow</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#rotate\">rotate</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#rotateAround\">rotateAround</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#sum\">sum</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#times\">times</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#times_\">times_</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#to3xyz\">to3xyz</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#unit\">unit</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#toRepr\">toRepr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html\">ecefLocals._EcefLocal</a></code></b>:\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toAer\">toAer</a></code>,\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toEnu\">toEnu</a></code>,\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toLocal\">toLocal</a></code>,\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toLtp\">toLtp</a></code>,\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toNed\">toNed</a></code>,\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toXyz\">toXyz</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoidalVincenty.Cartesian-class.html#Ecef\" class=\"summary-name\">Ecef</a><br />\n      Get the ECEF <i>class</i> (<a \n      href=\"pygeodesy.ecef.EcefVeness-class.html\" \n      class=\"link\">EcefVeness</a>), <i>once</i>.\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html\">ellipsoidalBase.CartesianEllipsoidalBase</a></code></b>:\n      <code><a href=\"pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#ellipsoidalCartesian\">ellipsoidalCartesian</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#epoch\">epoch</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#reframe\">reframe</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html\">cartesianBase.CartesianBase</a></code></b>:\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#datum\">datum</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#height\">height</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#isEllipsoidal\">isEllipsoidal</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#isSpherical\">isSpherical</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#latlon\">latlon</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#latlonheight\">latlonheight</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#latlonheightdatum\">latlonheightdatum</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#philam\">philam</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#philamheight\">philamheight</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#philamheightdatum\">philamheightdatum</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#sphericalCartesian\">sphericalCartesian</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">vector3dBase.Vector3dBase</a></code></b>:\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#crosserrors\">crosserrors</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#euclid\">euclid</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#homogeneous\">homogeneous</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#length\">length</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#length2\">length2</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#x\">x</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#x2y2z2\">x2y2z2</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#x2y2z23\">x2y2z23</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#xyz\">xyz</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#xyz3\">xyz3</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#y\">y</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#z\">z</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"toLatLon\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toLatLon</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">**LatLon_and_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert this cartesian point to a <code>Vincenty</code>-based geodetic\n  point.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>LatLon_and_kwds</code></strong> - Optional <a \n          href=\"pygeodesy.ellipsoidalVincenty.LatLon-class.html\" \n          class=\"link\">LatLon</a> and <a \n          href=\"pygeodesy.ellipsoidalVincenty.LatLon-class.html\" \n          class=\"link\">LatLon</a> keyword arguments as <code>datum</code>.\n          Use <code><b>LatLon</b>=..., <b>datum</b>=...</code> to override \n          this <a href=\"pygeodesy.ellipsoidalVincenty.LatLon-class.html\" \n          class=\"link\">LatLon</a> class or specify \n          <code><b>LatLon</b>=None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The geodetic point (<a \n          href=\"pygeodesy.ellipsoidalVincenty.LatLon-class.html\" \n          class=\"link\">LatLon</a>) or if <code><b>LatLon</b> is \n          None</code>, an <a href=\"pygeodesy.ecef.Ecef9Tuple-class.html\" \n          class=\"link\">Ecef9Tuple</a><code>(x, y, z, lat, lon, height, C, \n          M, datum)</code> with <code>C</code> and <code>M</code> if \n          available.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>LatLon_and_kwds</code></b> argument.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#toLatLon\">cartesianBase.CartesianBase.toLatLon</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"Ecef\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">Ecef</h3>\n  <p>Get the ECEF <i>class</i> (<a \n  href=\"pygeodesy.ecef.EcefVeness-class.html\" class=\"link\">EcefVeness</a>),\n  <i>once</i>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">Ecef(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the ECEF <i>class</i> (<a href=\"pygeodesy.ecef.EcefVeness-class.html\" \nclass=\"link\">EcefVeness</a>), <i>once</i>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.ellipsoidalVincenty.LatLon-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.ellipsoidalVincenty.LatLon</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.ellipsoidalVincenty-module.html\">Module&nbsp;ellipsoidalVincenty</a> ::\n        Class&nbsp;LatLon\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.ellipsoidalVincenty.LatLon-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class LatLon</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n               object --+                    \n                        |                    \n             <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+                \n                            |                \n             <a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+            \n                                |            \n               object --+       |            \n                        |       |            \n             <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+   |            \n                            |   |            \n        <a href=\"pygeodesy.ecefLocals._EcefLocal-class.html\">ecefLocals._EcefLocal</a> --+            \n                                |            \n            <a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">latlonBase.LatLonBase</a> --+        \n                                    |        \n<a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html\">ellipsoidalBase.LatLonEllipsoidalBase</a> --+    \n                                        |    \n<a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html\">ellipsoidalBaseDI.LatLonEllipsoidalBaseDI</a> --+\n                                            |\n                                           <strong class=\"uidshort\">LatLon</strong>\n</pre>\n\n<hr />\n<p>New point on an (oblate) ellipsoidal earth model, using the formulae \n  devised by <a href=\"https://WikiPedia.org/wiki/Vincenty's_formulae\" \n  target=\"_top\"><i>Thaddeus Vincenty</i></a> (1975) to compute geodesic \n  distances, bearings (azimuths), etc.</p>\n  <p>Set the earth model to be used with the keyword argument datum.  The \n  default is <code>Datums.WGS84</code>, which is the most globally \n  accurate.  For other models, see the <a \n  href=\"pygeodesy.datums-module.html\" class=\"link\">Datums</a>.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Note:</strong>\n        This implementation of <i>Vincenty</i> methods may not converge for\n        some valid points, raising a <a \n        href=\"pygeodesy.ellipsoidalVincenty.VincentyError-class.html\" \n        class=\"link\">VincentyError</a>.  In that case, a result may be \n        obtained by increasing the tolerance <code>epsilon</code> and/or \n        iteration <code>limit</code>, see properties <a \n        href=\"pygeodesy.ellipsoidalVincenty.LatLon-class.html#epsilon\" \n        class=\"link\">LatLon.epsilon</a> and <a \n        href=\"pygeodesy.ellipsoidalVincenty.LatLon-class.html#iterations\" \n        class=\"link\">LatLon.iterations</a>.\n      </p>\n</div><!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoidalVincenty.LatLon-class.html#bearingTo\" class=\"summary-sig-name\">bearingTo</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      DEPRECATED, use method <a \n      href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#initialBearingTo\"\n      class=\"link\">initialBearingTo</a> or <a \n      href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#bearingTo2\"\n      class=\"link\">bearingTo2</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoidalVincenty.LatLon-class.html#toCartesian\" class=\"summary-sig-name\">toCartesian</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">**Cartesian_datum_kwds</span>)</span><br />\n      Convert this point to <code>Vincenty</code>-based cartesian (ECEF) \n      coordinates.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html\">ellipsoidalBaseDI.LatLonEllipsoidalBaseDI</a></code></b>:\n      <code><a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#bearingTo2\">bearingTo2</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#destination\">destination</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#destination2\">destination2</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#distanceTo\">distanceTo</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#distanceTo3\">distanceTo3</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#finalBearingOn\">finalBearingOn</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#finalBearingTo\">finalBearingTo</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#initialBearingTo\">initialBearingTo</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#intermediateTo\">intermediateTo</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#intersecant2\">intersecant2</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#nearestOn8\">nearestOn8</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#plumbTo\">plumbTo</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html\">ellipsoidalBase.LatLonEllipsoidalBase</a></code></b>:\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#__init__\">__init__</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#antipode\">antipode</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#convertDatum\">convertDatum</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#convertRefFrame\">convertRefFrame</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#distanceTo2\">distanceTo2</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#elevation2\">elevation2</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#ellipsoid\">ellipsoid</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#ellipsoids\">ellipsoids</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#geoidHeight2\">geoidHeight2</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#intersection3\">intersection3</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#intersections2\">intersections2</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#isenclosedBy\">isenclosedBy</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#midpointTo\">midpointTo</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#nearestOn\">nearestOn</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#parse\">parse</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#to3xyz\">to3xyz</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toCss\">toCss</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toDatum\">toDatum</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toEtm\">toEtm</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toLcc\">toLcc</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toMgrs\">toMgrs</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toOsgr\">toOsgr</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toRefFrame\">toRefFrame</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toTransform\">toTransform</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toUps\">toUps</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toUtm\">toUtm</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toUtmUps\">toUtmUps</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#triangulate\">triangulate</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#trilaterate5\">trilaterate5</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">latlonBase.LatLonBase</a></code></b>:\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#PointsIter\">PointsIter</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#__eq__\">__eq__</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#__ne__\">__ne__</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#bounds\">bounds</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#boundsOf\">boundsOf</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#chordTo\">chordTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#circin6\">circin6</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#circum3\">circum3</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#circum4_\">circum4_</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#compassAngle\">compassAngle</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#compassAngleTo\">compassAngleTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#cosineAndoyerLambertTo\">cosineAndoyerLambertTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#cosineForsytheAndoyerLambertTo\">cosineForsytheAndoyerLambertTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#cosineLawTo\">cosineLawTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#destinationXyz\">destinationXyz</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#equals\">equals</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#equals3\">equals3</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#equirectangularTo\">equirectangularTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#euclideanTo\">euclideanTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#flatLocalTo\">flatLocalTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#flatPolarTo\">flatPolarTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#hartzell\">hartzell</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#haversineTo\">haversineTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#height4\">height4</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#heightStr\">heightStr</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#hubenyTo\">hubenyTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isantipode\">isantipode</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isantipodeTo\">isantipodeTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isequalTo\">isequalTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isequalTo3\">isequalTo3</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#latlon2\">latlon2</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#latlon2round\">latlon2round</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#latlon_\">latlon_</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#nearestOn6\">nearestOn6</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#nearestTo\">nearestTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#normal\">normal</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#philam2\">philam2</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#points\">points</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#points2\">points2</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#radii11\">radii11</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#rhumbAzimuthTo\">rhumbAzimuthTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#rhumbDestination\">rhumbDestination</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#rhumbDistanceTo\">rhumbDistanceTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#rhumbIntersecant2\">rhumbIntersecant2</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#rhumbLine\">rhumbLine</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#rhumbMidpointTo\">rhumbMidpointTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#thomasTo\">thomasTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#to2ab\">to2ab</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#to3llh\">to3llh</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toEcef\">toEcef</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toNormal\">toNormal</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toNvector\">toNvector</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toVector\">toVector</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toVector3d\">toVector3d</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toWm\">toWm</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#vincentysTo\">vincentysTo</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#others\">others</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#toRepr\">toRepr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html\">ecefLocals._EcefLocal</a></code></b>:\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toAer\">toAer</a></code>,\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toEnu\">toEnu</a></code>,\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toLocal\">toLocal</a></code>,\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toLtp\">toLtp</a></code>,\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toNed\">toNed</a></code>,\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toXyz\">toXyz</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoidalVincenty.LatLon-class.html#Ecef\" class=\"summary-name\">Ecef</a><br />\n      Get the ECEF <i>class</i> (<a \n      href=\"pygeodesy.ecef.EcefVeness-class.html\" \n      class=\"link\">EcefVeness</a>), <i>once</i>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoidalVincenty.LatLon-class.html#epsilon\" class=\"summary-name\">epsilon</a><br />\n      Class <code>property</code> with a <code>.name</code> attribute.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoidalVincenty.LatLon-class.html#iterations\" class=\"summary-name\">iterations</a><br />\n      Class <code>property</code> with a <code>.name</code> attribute.\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html\">ellipsoidalBaseDI.LatLonEllipsoidalBaseDI</a></code></b>:\n      <code><a href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#geodesic\">geodesic</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html\">ellipsoidalBase.LatLonEllipsoidalBase</a></code></b>:\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#Equidistant\">Equidistant</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#convergence\">convergence</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#datum\">datum</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#ellipsoidalLatLon\">ellipsoidalLatLon</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#epoch\">epoch</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#gamma\">gamma</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#reframe\">reframe</a></code>,\n      <code><a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#scale\">scale</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">latlonBase.LatLonBase</a></code></b>:\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#clipid\">clipid</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#height\">height</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isEllipsoidal\">isEllipsoidal</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isSpherical\">isSpherical</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isnormal\">isnormal</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#lam\">lam</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#lat\">lat</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#latlon\">latlon</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#latlonheight\">latlonheight</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#lon\">lon</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#phi\">phi</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#philam\">philam</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#philamheight\">philamheight</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#sphericalLatLon\">sphericalLatLon</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#xyz\">xyz</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#xyz3\">xyz3</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#xyzh\">xyzh</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"bearingTo\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">bearingTo</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use method <a \n  href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#initialBearingTo\"\n  class=\"link\">initialBearingTo</a> or <a \n  href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html#bearingTo2\"\n  class=\"link\">bearingTo2</a>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_method</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toCartesian\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toCartesian</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">**Cartesian_datum_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert this point to <code>Vincenty</code>-based cartesian (ECEF) \n  coordinates.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>Cartesian_datum_kwds</code></strong> - Optional <a \n          href=\"pygeodesy.ellipsoidalVincenty.Cartesian-class.html\" \n          class=\"link\">Cartesian</a>, <b><code>datum</code></b> and other \n          keyword arguments, ignored if <code><b>Cartesian</b>=None</code>.\n          Use <code><b>Cartesian</b>=...</code> to override this <a \n          href=\"pygeodesy.ellipsoidalVincenty.Cartesian-class.html\" \n          class=\"link\">Cartesian</a> class or specify \n          <code><b>Cartesian</b>=None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The cartesian point (<a \n          href=\"pygeodesy.ellipsoidalVincenty.Cartesian-class.html\" \n          class=\"link\">Cartesian</a>) or if <code><b>Cartesian</b> is \n          None</code>, an <a href=\"pygeodesy.ecef.Ecef9Tuple-class.html\" \n          class=\"link\">Ecef9Tuple</a><code>(x, y, z, lat, lon, height, C, \n          M, datum)</code> with <code>C</code> and <code>M</code> if \n          available.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>Cartesian</code></b>, <b><code>datum</code></b> or\n        other <b><code>Cartesian_datum_kwds</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toCartesian\">latlonBase.LatLonBase.toCartesian</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"Ecef\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">Ecef</h3>\n  <p>Get the ECEF <i>class</i> (<a \n  href=\"pygeodesy.ecef.EcefVeness-class.html\" class=\"link\">EcefVeness</a>),\n  <i>once</i>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">Ecef(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the ECEF <i>class</i> (<a href=\"pygeodesy.ecef.EcefVeness-class.html\" \nclass=\"link\">EcefVeness</a>), <i>once</i>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"epsilon\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">epsilon</h3>\n  <p>Class <code>property</code> with a <code>.name</code> attribute.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">epsilon(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the convergence epsilon (<code>radians</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">epsilon(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">epsilon</span>)</span>\n        - Set the convergence epsilon (<code>radians</code>).\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"iterations\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">iterations</h3>\n  <p>Class <code>property</code> with a <code>.name</code> attribute.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">iterations(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the iteration limit (<code>int</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">iterations(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">limit</span>)</span>\n        - Set the iteration limit (<code>int</code>).\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.ellipsoidalVincenty.VincentyError-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.ellipsoidalVincenty.VincentyError</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.ellipsoidalVincenty-module.html\">Module&nbsp;ellipsoidalVincenty</a> ::\n        Class&nbsp;VincentyError\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.ellipsoidalVincenty.VincentyError-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class VincentyError</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n              object --+                    \n                       |                    \nexceptions.BaseException --+                \n                           |                \n        exceptions.Exception --+            \n                               |            \n        exceptions.StandardError --+        \n                                   |        \n               exceptions.ValueError --+    \n                                       |    \n                      errors._ValueError --+\n                                           |\n                                          <strong class=\"uidshort\">VincentyError</strong>\n</pre>\n\n<hr />\n<p>Error raised by <i>Vincenty</i>'s <code>Direct</code> and \n  <code>Inverse</code> methods for coincident points or lack of \n  convergence.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>errors._ValueError</code></b>:\n      <code>__init__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.ValueError</code></b>:\n      <code>__new__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.BaseException</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getslice__</code>,\n      <code>__reduce__</code>,\n      <code>__repr__</code>,\n      <code>__setattr__</code>,\n      <code>__setstate__</code>,\n      <code>__str__</code>,\n      <code>__unicode__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__format__</code>,\n      <code>__hash__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.BaseException</code></b>:\n      <code>args</code>,\n      <code>message</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.ellipsoids-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.ellipsoids</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        Module&nbsp;ellipsoids\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.ellipsoids-module.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== MODULE DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Module ellipsoids</h1><p class=\"nomargin-top\"></p>\n<p>Ellipsoidal and spherical earth models.</p>\n  <p>Classes <a href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n  class=\"link\">a_f2Tuple</a>, <a \n  href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n  class=\"link\">Ellipsoid</a> and <a \n  href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n  class=\"link\">Ellipsoid2</a>, an <a \n  href=\"pygeodesy.ellipsoids-module.html#Ellipsoids\" \n  class=\"link\">Ellipsoids</a> registry and 2 dozen functions to convert \n  <i>equatorial</i> radius, <i>polar</i> radius, <i>eccentricities</i>, \n  <i>flattenings</i> and <i>inverse flattening</i>.</p>\n  <p>See module <a href=\"pygeodesy.datums-module.html\" \n  class=\"link\">datums</a> for <a href=\"pygeodesy.datums.Datum-class.html\" \n  class=\"link\">Datum</a> and <a \n  href=\"pygeodesy.datums.Transform-class.html\" class=\"link\">Transform</a> \n  information and other details.</p>\n  <p>Following is the list of predefined <a \n  href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n  class=\"link\">Ellipsoid</a>s, all instantiated lazily.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Version:</strong>\n        26.03.25\n      </p>\n</div><!-- ==================== CLASSES ==================== -->\n<a name=\"section-Classes\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Classes</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" class=\"summary-name\">a_f2Tuple</a><br />\n      2-Tuple <code>(a, f)</code> specifying an ellipsoid by \n        <i>equatorial</i> radius <code>a</code> in <code>meter</code> and \n        scalar <i>flattening</i> <code>f</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoids.Curvature2Tuple-class.html\" class=\"summary-name\">Curvature2Tuple</a><br />\n      2-Tuple <code>(meridional, prime_vertical)</code> of radii of \n        curvature, both in <code>meter</code>, conventionally.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" class=\"summary-name\">Ellipsoid</a><br />\n      Ellipsoid with <i>equatorial</i> and <i>polar</i> radii, \n        <i>flattening</i>, <i>inverse flattening</i> and other, often used,\n        <i>cached</i> attributes, supporting <i>oblate</i> and \n        <i>prolate</i> ellipsoidal and <i>spherical</i> earth models.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" class=\"summary-name\">Ellipsoid2</a><br />\n      An <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n        class=\"link\">Ellipsoid</a> specified by <i>equatorial</i> radius \n        and <i>flattening</i>.\n    </td>\n  </tr>\n</table>\n<!-- ==================== FUNCTIONS ==================== -->\n<a name=\"section-Functions\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Functions</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoids-module.html#a_b2e\" class=\"summary-sig-name\">a_b2e</a>(<span class=\"summary-sig-arg\">a</span>,\n        <span class=\"summary-sig-arg\">b</span>)</span><br />\n      Return <code>e</code>, the <i>1st eccentricity</i> for a given \n      <i>equatorial</i> and <i>polar</i> radius.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoids-module.html#a_b2e2\" class=\"summary-sig-name\">a_b2e2</a>(<span class=\"summary-sig-arg\">a</span>,\n        <span class=\"summary-sig-arg\">b</span>)</span><br />\n      Return <code>e2</code>, the <i>1st eccentricity squared</i> for a \n      given <i>equatorial</i> and <i>polar</i> radius.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoids-module.html#a_b2e22\" class=\"summary-sig-name\">a_b2e22</a>(<span class=\"summary-sig-arg\">a</span>,\n        <span class=\"summary-sig-arg\">b</span>)</span><br />\n      Return <code>e22</code>, the <i>2nd eccentricity squared</i> for a \n      given <i>equatorial</i> and <i>polar</i> radius.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoids-module.html#a_b2e32\" class=\"summary-sig-name\">a_b2e32</a>(<span class=\"summary-sig-arg\">a</span>,\n        <span class=\"summary-sig-arg\">b</span>)</span><br />\n      Return <code>e32</code>, the <i>3rd eccentricity squared</i> for a \n      given <i>equatorial</i> and <i>polar</i> radius.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoids-module.html#a_b2f\" class=\"summary-sig-name\">a_b2f</a>(<span class=\"summary-sig-arg\">a</span>,\n        <span class=\"summary-sig-arg\">b</span>)</span><br />\n      Return <code>f</code>, the <i>flattening</i> for a given \n      <i>equatorial</i> and <i>polar</i> radius.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoids-module.html#a_b2f_\" class=\"summary-sig-name\">a_b2f_</a>(<span class=\"summary-sig-arg\">a</span>,\n        <span class=\"summary-sig-arg\">b</span>)</span><br />\n      Return <code>f_</code>, the <i>inverse flattening</i> for a given \n      <i>equatorial</i> and <i>polar</i> radius.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoids-module.html#a_b2f2\" class=\"summary-sig-name\">a_b2f2</a>(<span class=\"summary-sig-arg\">a</span>,\n        <span class=\"summary-sig-arg\">b</span>)</span><br />\n      Return <code>f2</code>, the <i>2nd flattening</i> for a given \n      <i>equatorial</i> and <i>polar</i> radius.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoids-module.html#a_b2n\" class=\"summary-sig-name\">a_b2n</a>(<span class=\"summary-sig-arg\">a</span>,\n        <span class=\"summary-sig-arg\">b</span>)</span><br />\n      Return <code>n</code>, the <i>3rd flattening</i> for a given \n      <i>equatorial</i> and <i>polar</i> radius.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoids-module.html#a_f2b\" class=\"summary-sig-name\">a_f2b</a>(<span class=\"summary-sig-arg\">a</span>,\n        <span class=\"summary-sig-arg\">f</span>)</span><br />\n      Return <code>b</code>, the <i>polar</i> radius for a given \n      <i>equatorial</i> radius and <i>flattening</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoids-module.html#a_f_2b\" class=\"summary-sig-name\">a_f_2b</a>(<span class=\"summary-sig-arg\">a</span>,\n        <span class=\"summary-sig-arg\">f_</span>)</span><br />\n      Return <code>b</code>, the <i>polar</i> radius for a given \n      <i>equatorial</i> radius and <i>inverse flattening</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoids-module.html#b_f2a\" class=\"summary-sig-name\">b_f2a</a>(<span class=\"summary-sig-arg\">b</span>,\n        <span class=\"summary-sig-arg\">f</span>)</span><br />\n      Return <code>a</code>, the <i>equatorial</i> radius for a given \n      <i>polar</i> radius and <i>flattening</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoids-module.html#b_f_2a\" class=\"summary-sig-name\">b_f_2a</a>(<span class=\"summary-sig-arg\">b</span>,\n        <span class=\"summary-sig-arg\">f_</span>)</span><br />\n      Return <code>a</code>, the <i>equatorial</i> radius for a given \n      <i>polar</i> radius and <i>inverse flattening</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoids-module.html#e2f\" class=\"summary-sig-name\">e2f</a>(<span class=\"summary-sig-arg\">e</span>)</span><br />\n      Return <code>f</code>, the <i>flattening</i> for a given <i>1st \n      eccentricity</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoids-module.html#e22f\" class=\"summary-sig-name\">e22f</a>(<span class=\"summary-sig-arg\">e2</span>)</span><br />\n      Return <code>f</code>, the <i>flattening</i> for a given <i>1st \n      eccentricity squared</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoids-module.html#f2e2\" class=\"summary-sig-name\">f2e2</a>(<span class=\"summary-sig-arg\">f</span>)</span><br />\n      Return <code>e2</code>, the <i>1st eccentricity squared</i> for a \n      given <i>flattening</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoids-module.html#f2e22\" class=\"summary-sig-name\">f2e22</a>(<span class=\"summary-sig-arg\">f</span>)</span><br />\n      Return <code>e22</code>, the <i>2nd eccentricity squared</i> for a \n      given <i>flattening</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoids-module.html#f2e32\" class=\"summary-sig-name\">f2e32</a>(<span class=\"summary-sig-arg\">f</span>)</span><br />\n      Return <code>e32</code>, the <i>3rd eccentricity squared</i> for a \n      given <i>flattening</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoids-module.html#f_2f\" class=\"summary-sig-name\">f_2f</a>(<span class=\"summary-sig-arg\">f_</span>)</span><br />\n      Return <code>f</code>, the <i>flattening</i> for a given <i>inverse \n      flattening</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoids-module.html#f2f_\" class=\"summary-sig-name\">f2f_</a>(<span class=\"summary-sig-arg\">f</span>)</span><br />\n      Return <code>f_</code>, the <i>inverse flattening</i> for a given \n      <i>flattening</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoids-module.html#f2f2\" class=\"summary-sig-name\">f2f2</a>(<span class=\"summary-sig-arg\">f</span>)</span><br />\n      Return <code>f2</code>, the <i>2nd flattening</i> for a given \n      <i>flattening</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoids-module.html#f2n\" class=\"summary-sig-name\">f2n</a>(<span class=\"summary-sig-arg\">f</span>)</span><br />\n      Return <code>n</code>, the <i>3rd flattening</i> for a given \n      <i>flattening</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoids-module.html#n2e2\" class=\"summary-sig-name\">n2e2</a>(<span class=\"summary-sig-arg\">n</span>)</span><br />\n      Return <code>e2</code>, the <i>1st eccentricity squared</i> for a \n      given <i>3rd flattening</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoids-module.html#n2f\" class=\"summary-sig-name\">n2f</a>(<span class=\"summary-sig-arg\">n</span>)</span><br />\n      Return <code>f</code>, the <i>flattening</i> for a given <i>3rd \n      flattening</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoids-module.html#n2f_\" class=\"summary-sig-name\">n2f_</a>(<span class=\"summary-sig-arg\">n</span>)</span><br />\n      Return <code>f_</code>, the <i>inverse flattening</i> for a given \n      <i>3rd flattening</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== VARIABLES ==================== -->\n<a name=\"section-Variables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Variables</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"__all__\"></a><span class=\"summary-name\">__all__</span> = <code title=\"_ALL_LAZY.ellipsoids\">_ALL_LAZY.ellipsoids</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoids-module.html#Ellipsoids\" class=\"summary-name\">Ellipsoids</a> = <code title=\"Ellipsoids.Sphere: Ellipsoid(name='Sphere', a=6371008.771415, f=0, f_=\\\n0, b=6371008.771415),\nEllipsoids.GRS80: Ellipsoid(name='GRS80', a=6378137, f=0.00335281, f_=\\\n298.2572221, b=6356752.31414035),\nEllipsoids.WGS84: Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=\\\n298.25722356, b=6356752.31424518),\nEllipsoids.Airy1830: Ellipsoid(name='Airy1830', a=6377563.396, f=0.003\\\n34085, f_=299.3249646, b=6356256.90923729)\">Ellipsoids.Sphere: Ellipsoid(name='Sphere', a=637<code class=\"variable-ellipsis\">...</code></code><br />\n      Some pre-defined <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n      class=\"link\">Ellipsoid</a>s, all <i>lazily</i> instantiated.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"Ellipsoids.ATS1977\"></a><span class=\"summary-name\">Ellipsoids.ATS1977</span><br />\n      Ellipsoid(name='ATS1977', a=6378135, f=0.00335281, f_=298.257, \n      b=6356750.30492159)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"Ellipsoids.Airy1830\"></a><span class=\"summary-name\">Ellipsoids.Airy1830</span><br />\n      Ellipsoid(name='Airy1830', a=6377563.396, f=0.00334085, \n      f_=299.3249646, b=6356256.90923729)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"Ellipsoids.AiryModified\"></a><span class=\"summary-name\">Ellipsoids.AiryModified</span><br />\n      Ellipsoid(name='AiryModified', a=6377340.189, f=0.00334085, \n      f_=299.3249646, b=6356034.44793853)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"Ellipsoids.Australia1966\"></a><span class=\"summary-name\">Ellipsoids.Australia1966</span><br />\n      Ellipsoid(name='Australia1966', a=6378160, f=0.00335289, f_=298.25, \n      b=6356774.71919531)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"Ellipsoids.Bessel1841\"></a><span class=\"summary-name\">Ellipsoids.Bessel1841</span><br />\n      Ellipsoid(name='Bessel1841', a=6377397.155, f=0.00334277, \n      f_=299.1528128, b=6356078.962818)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"Ellipsoids.BesselModified\"></a><span class=\"summary-name\">Ellipsoids.BesselModified</span><br />\n      Ellipsoid(name='BesselModified', a=6377492.018, f=0.00334277, \n      f_=299.1528128, b=6356173.5087127)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"Ellipsoids.CGCS2000\"></a><span class=\"summary-name\">Ellipsoids.CGCS2000</span><br />\n      Ellipsoid(name='CGCS2000', a=6378137, f=0.00335281, f_=298.2572221, \n      b=6356752.31414036)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"Ellipsoids.CPM1799\"></a><span class=\"summary-name\">Ellipsoids.CPM1799</span><br />\n      Ellipsoid(name='CPM1799', a=6375738.7, f=0.00299052, f_=334.39, \n      b=6356671.92557493)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"Ellipsoids.Clarke1866\"></a><span class=\"summary-name\">Ellipsoids.Clarke1866</span><br />\n      Ellipsoid(name='Clarke1866', a=6378206.4, f=0.00339008, \n      f_=294.97869821, b=6356583.8)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"Ellipsoids.Clarke1880\"></a><span class=\"summary-name\">Ellipsoids.Clarke1880</span><br />\n      Ellipsoid(name='Clarke1880', a=6378249.145, f=0.00340756, f_=293.465,\n      b=6356514.86954978)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"Ellipsoids.Clarke1880IGN\"></a><span class=\"summary-name\">Ellipsoids.Clarke1880IGN</span><br />\n      Ellipsoid(name='Clarke1880IGN', a=6378249.2, f=0.00340755, \n      f_=293.46602129, b=6356515)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"Ellipsoids.Clarke1880Mod\"></a><span class=\"summary-name\">Ellipsoids.Clarke1880Mod</span><br />\n      Ellipsoid(name='Clarke1880Mod', a=6378249.145, f=0.00340755, \n      f_=293.46630766, b=6356514.96639549)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"Ellipsoids.Delambre1810\"></a><span class=\"summary-name\">Ellipsoids.Delambre1810</span><br />\n      Ellipsoid(name='Delambre1810', a=6376428, f=0.00321027, f_=311.5, \n      b=6355957.92616372)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"Ellipsoids.Engelis1985\"></a><span class=\"summary-name\">Ellipsoids.Engelis1985</span><br />\n      Ellipsoid(name='Engelis1985', a=6378136.05, f=0.00335282, \n      f_=298.2566, b=6356751.32272154)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"Ellipsoids.Everest1969\"></a><span class=\"summary-name\">Ellipsoids.Everest1969</span><br />\n      Ellipsoid(name='Everest1969', a=6377295.664, f=0.00332445, \n      f_=300.8017, b=6356094.667915)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"Ellipsoids.Everest1975\"></a><span class=\"summary-name\">Ellipsoids.Everest1975</span><br />\n      Ellipsoid(name='Everest1975', a=6377299.151, f=0.00332445, \n      f_=300.8017255, b=6356098.14512013)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"Ellipsoids.Fisher1968\"></a><span class=\"summary-name\">Ellipsoids.Fisher1968</span><br />\n      Ellipsoid(name='Fisher1968', a=6378150, f=0.00335233, f_=298.3, \n      b=6356768.33724438)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"Ellipsoids.GEM10C\"></a><span class=\"summary-name\">Ellipsoids.GEM10C</span><br />\n      Ellipsoid(name='GEM10C', a=6378137, f=0.00335281, f_=298.2572236, \n      b=6356752.31424783)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"Ellipsoids.GPES\"></a><span class=\"summary-name\">Ellipsoids.GPES</span><br />\n      Ellipsoid(name='GPES', a=6378135, f=0, f_=0, b=6378135)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"Ellipsoids.GRS67\"></a><span class=\"summary-name\">Ellipsoids.GRS67</span><br />\n      Ellipsoid(name='GRS67', a=6378160, f=0.00335292, f_=298.24716743, \n      b=6356774.51609071)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"Ellipsoids.GRS80\"></a><span class=\"summary-name\">Ellipsoids.GRS80</span><br />\n      Ellipsoid(name='GRS80', a=6378137, f=0.00335281, f_=298.2572221, \n      b=6356752.31414035)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"Ellipsoids.Helmert1906\"></a><span class=\"summary-name\">Ellipsoids.Helmert1906</span><br />\n      Ellipsoid(name='Helmert1906', a=6378200, f=0.00335233, f_=298.3, \n      b=6356818.16962789)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"Ellipsoids.IAU76\"></a><span class=\"summary-name\">Ellipsoids.IAU76</span><br />\n      Ellipsoid(name='IAU76', a=6378140, f=0.00335281, f_=298.257, \n      b=6356755.28815753)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"Ellipsoids.IERS1989\"></a><span class=\"summary-name\">Ellipsoids.IERS1989</span><br />\n      Ellipsoid(name='IERS1989', a=6378136, f=0.00335281, f_=298.257, \n      b=6356751.30156878)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"Ellipsoids.IERS1992TOPEX\"></a><span class=\"summary-name\">Ellipsoids.IERS1992TOPEX</span><br />\n      Ellipsoid(name='IERS1992TOPEX', a=6378136.3, f=0.00335281, \n      f_=298.25722356, b=6356751.61659215)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"Ellipsoids.IERS2003\"></a><span class=\"summary-name\">Ellipsoids.IERS2003</span><br />\n      Ellipsoid(name='IERS2003', a=6378136.6, f=0.00335282, f_=298.25642, \n      b=6356751.85797165)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"Ellipsoids.Intl1924\"></a><span class=\"summary-name\">Ellipsoids.Intl1924</span><br />\n      Ellipsoid(name='Intl1924', a=6378388, f=0.003367, f_=297, \n      b=6356911.94612795)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"Ellipsoids.Intl1967\"></a><span class=\"summary-name\">Ellipsoids.Intl1967</span><br />\n      Ellipsoid(name='Intl1967', a=6378157.5, f=0.0033529, f_=298.24961539,\n      b=6356772.2)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"Ellipsoids.Krassovski1940\"></a><span class=\"summary-name\">Ellipsoids.Krassovski1940</span><br />\n      Ellipsoid(name='Krassovski1940', a=6378245, f=0.00335233, f_=298.3, \n      b=6356863.01877305)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"Ellipsoids.Krassowsky1940\"></a><span class=\"summary-name\">Ellipsoids.Krassowsky1940</span><br />\n      Ellipsoid(name='Krassowsky1940', a=6378245, f=0.00335233, f_=298.3, \n      b=6356863.01877305)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"Ellipsoids.Maupertuis1738\"></a><span class=\"summary-name\">Ellipsoids.Maupertuis1738</span><br />\n      Ellipsoid(name='Maupertuis1738', a=6397300, f=0.0052356, f_=191, \n      b=6363806.28272251)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"Ellipsoids.Mercury1960\"></a><span class=\"summary-name\">Ellipsoids.Mercury1960</span><br />\n      Ellipsoid(name='Mercury1960', a=6378166, f=0.00335233, f_=298.3, \n      b=6356784.28360711)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"Ellipsoids.Mercury1968Mod\"></a><span class=\"summary-name\">Ellipsoids.Mercury1968Mod</span><br />\n      Ellipsoid(name='Mercury1968Mod', a=6378150, f=0.00335233, f_=298.3, \n      b=6356768.33724438)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"Ellipsoids.NWL1965\"></a><span class=\"summary-name\">Ellipsoids.NWL1965</span><br />\n      Ellipsoid(name='NWL1965', a=6378145, f=0.00335289, f_=298.25, \n      b=6356759.76948868)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"Ellipsoids.OSU86F\"></a><span class=\"summary-name\">Ellipsoids.OSU86F</span><br />\n      Ellipsoid(name='OSU86F', a=6378136.2, f=0.00335281, f_=298.2572236, \n      b=6356751.51693008)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"Ellipsoids.OSU91A\"></a><span class=\"summary-name\">Ellipsoids.OSU91A</span><br />\n      Ellipsoid(name='OSU91A', a=6378136.3, f=0.00335281, f_=298.2572236, \n      b=6356751.6165948)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"Ellipsoids.PZ90\"></a><span class=\"summary-name\">Ellipsoids.PZ90</span><br />\n      Ellipsoid(name='PZ90', a=6378136, f=0.0033528, f_=298.2578393, \n      b=6356751.36174571)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"Ellipsoids.Plessis1817\"></a><span class=\"summary-name\">Ellipsoids.Plessis1817</span><br />\n      Ellipsoid(name='Plessis1817', a=6376523, f=0.00324002, f_=308.64, \n      b=6355862.93325557)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"Ellipsoids.SGS85\"></a><span class=\"summary-name\">Ellipsoids.SGS85</span><br />\n      Ellipsoid(name='SGS85', a=6378136, f=0.00335281, f_=298.257, \n      b=6356751.30156878)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"Ellipsoids.SoAmerican1969\"></a><span class=\"summary-name\">Ellipsoids.SoAmerican1969</span><br />\n      Ellipsoid(name='SoAmerican1969', a=6378160, f=0.00335289, f_=298.25, \n      b=6356774.71919531)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"Ellipsoids.Sphere\"></a><span class=\"summary-name\">Ellipsoids.Sphere</span><br />\n      Ellipsoid(name='Sphere', a=6371008.771415, f=0, f_=0, \n      b=6371008.771415)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"Ellipsoids.SphereAuthalic\"></a><span class=\"summary-name\">Ellipsoids.SphereAuthalic</span><br />\n      Ellipsoid(name='SphereAuthalic', a=6371000, f=0, f_=0, b=6371000)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"Ellipsoids.SpherePopular\"></a><span class=\"summary-name\">Ellipsoids.SpherePopular</span><br />\n      Ellipsoid(name='SpherePopular', a=6378137, f=0, f_=0, b=6378137)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"Ellipsoids.Struve1860\"></a><span class=\"summary-name\">Ellipsoids.Struve1860</span><br />\n      Ellipsoid(name='Struve1860', a=6378298.3, f=0.00339294, f_=294.73, \n      b=6356657.14266956)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"Ellipsoids.WGS60\"></a><span class=\"summary-name\">Ellipsoids.WGS60</span><br />\n      Ellipsoid(name='WGS60', a=6378165, f=0.00335233, f_=298.3, \n      b=6356783.28695944)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"Ellipsoids.WGS66\"></a><span class=\"summary-name\">Ellipsoids.WGS66</span><br />\n      Ellipsoid(name='WGS66', a=6378145, f=0.00335289, f_=298.25, \n      b=6356759.76948868)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"Ellipsoids.WGS72\"></a><span class=\"summary-name\">Ellipsoids.WGS72</span><br />\n      Ellipsoid(name='WGS72', a=6378135, f=0.00335278, f_=298.26, \n      b=6356750.52001609)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"Ellipsoids.WGS84\"></a><span class=\"summary-name\">Ellipsoids.WGS84</span><br />\n      Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, \n      b=6356752.31424518)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"Ellipsoids.WGS84_NGS\"></a><span class=\"summary-name\">Ellipsoids.WGS84_NGS</span><br />\n      Ellipsoid(name='WGS84_NGS', a=6378137, f=0.00335281, f_=298.2572221, \n      b=6356752.31414035)\n    </td>\n  </tr>\n</table>\n<!-- ==================== FUNCTION DETAILS ==================== -->\n<a name=\"section-FunctionDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Function Details</span></td>\n</tr>\n</table>\n<a name=\"a_b2e\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">a_b2e</span>&nbsp;(<span class=\"sig-arg\">a</span>,\n        <span class=\"sig-arg\">b</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return <code>e</code>, the <i>1st eccentricity</i> for a given \n  <i>equatorial</i> and <i>polar</i> radius.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>a</code></strong> - Equatorial radius (<code>scalar</code> &gt; 0).</li>\n        <li><strong class=\"pname\"><code>b</code></strong> - Polar radius (<code>scalar</code> &gt; 0).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The <i>unsigned</i>, (1st) eccentricity (<code>float</code> or \n          <code>0</code>), <i class=\"math\">sqrt(1 - (b / a)**2)</i>.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        The result is always <i>non-negative</i> and <code>0</code> for \n        <i>near-spherical</i> ellipsoids.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"a_b2e2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">a_b2e2</span>&nbsp;(<span class=\"sig-arg\">a</span>,\n        <span class=\"sig-arg\">b</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return <code>e2</code>, the <i>1st eccentricity squared</i> for a \n  given <i>equatorial</i> and <i>polar</i> radius.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>a</code></strong> - Equatorial radius (<code>scalar</code> &gt; 0).</li>\n        <li><strong class=\"pname\"><code>b</code></strong> - Polar radius (<code>scalar</code> &gt; 0).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The <i>signed</i>, (1st) eccentricity <i>squared</i> \n          (<code>float</code> or <code>0</code>), <i class=\"math\">1 - (b / \n          a)**2</i>.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        The result is positive for <i>oblate</i>, negative for \n        <i>prolate</i> or <code>0</code> for <i>near-spherical</i> \n        ellipsoids.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"a_b2e22\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">a_b2e22</span>&nbsp;(<span class=\"sig-arg\">a</span>,\n        <span class=\"sig-arg\">b</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return <code>e22</code>, the <i>2nd eccentricity squared</i> for a \n  given <i>equatorial</i> and <i>polar</i> radius.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>a</code></strong> - Equatorial radius (<code>scalar</code> &gt; 0).</li>\n        <li><strong class=\"pname\"><code>b</code></strong> - Polar radius (<code>scalar</code> &gt; 0).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The <i>signed</i>, 2nd eccentricity <i>squared</i> \n          (<code>float</code> or <code>0</code>), <i class=\"math\">(a / \n          b)**2 - 1</i>.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        The result is positive for <i>oblate</i>, negative for \n        <i>prolate</i> or <code>0</code> for <i>near-spherical</i> \n        ellipsoids.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"a_b2e32\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">a_b2e32</span>&nbsp;(<span class=\"sig-arg\">a</span>,\n        <span class=\"sig-arg\">b</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return <code>e32</code>, the <i>3rd eccentricity squared</i> for a \n  given <i>equatorial</i> and <i>polar</i> radius.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>a</code></strong> - Equatorial radius (<code>scalar</code> &gt; 0).</li>\n        <li><strong class=\"pname\"><code>b</code></strong> - Polar radius (<code>scalar</code> &gt; 0).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The <i>signed</i>, 3rd eccentricity <i>squared</i> \n          (<code>float</code> or <code>0</code>), <i class=\"math\">(a**2 - \n          b**2) / (a**2 + b**2)</i>.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        The result is positive for <i>oblate</i>, negative for \n        <i>prolate</i> or <code>0</code> for <i>near-spherical</i> \n        ellipsoids.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"a_b2f\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">a_b2f</span>&nbsp;(<span class=\"sig-arg\">a</span>,\n        <span class=\"sig-arg\">b</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return <code>f</code>, the <i>flattening</i> for a given \n  <i>equatorial</i> and <i>polar</i> radius.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>a</code></strong> - Equatorial radius (<code>scalar</code> &gt; 0).</li>\n        <li><strong class=\"pname\"><code>b</code></strong> - Polar radius (<code>scalar</code> &gt; 0).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The flattening (<code>scalar</code> or <code>0</code>), <i \n          class=\"math\">(a - b) / a</i>.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        The result is positive for <i>oblate</i>, negative for \n        <i>prolate</i> or <code>0</code> for <i>near-spherical</i> \n        ellipsoids.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"a_b2f_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">a_b2f_</span>&nbsp;(<span class=\"sig-arg\">a</span>,\n        <span class=\"sig-arg\">b</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return <code>f_</code>, the <i>inverse flattening</i> for a given \n  <i>equatorial</i> and <i>polar</i> radius.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>a</code></strong> - Equatorial radius (<code>scalar</code> &gt; 0).</li>\n        <li><strong class=\"pname\"><code>b</code></strong> - Polar radius (<code>scalar</code> &gt; 0).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The inverse flattening (<code>scalar</code> or <code>0</code>), \n          <i class=\"math\">a / (a - b)</i>.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        The result is positive for <i>oblate</i>, negative for \n        <i>prolate</i> or <code>0</code> for <i>near-spherical</i> \n        ellipsoids.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"a_b2f2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">a_b2f2</span>&nbsp;(<span class=\"sig-arg\">a</span>,\n        <span class=\"sig-arg\">b</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return <code>f2</code>, the <i>2nd flattening</i> for a given \n  <i>equatorial</i> and <i>polar</i> radius.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>a</code></strong> - Equatorial radius (<code>scalar</code> &gt; 0).</li>\n        <li><strong class=\"pname\"><code>b</code></strong> - Polar radius (<code>scalar</code> &gt; 0).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The <i>signed</i>, 2nd flattening (<code>scalar</code> or \n          <code>0</code>), <i class=\"math\">(a - b) / b</i>.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        The result is positive for <i>oblate</i>, negative for \n        <i>prolate</i> or <code>0</code> for <i>near-spherical</i> \n        ellipsoids.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"a_b2n\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">a_b2n</span>&nbsp;(<span class=\"sig-arg\">a</span>,\n        <span class=\"sig-arg\">b</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return <code>n</code>, the <i>3rd flattening</i> for a given \n  <i>equatorial</i> and <i>polar</i> radius.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>a</code></strong> - Equatorial radius (<code>scalar</code> &gt; 0).</li>\n        <li><strong class=\"pname\"><code>b</code></strong> - Polar radius (<code>scalar</code> &gt; 0).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The <i>signed</i>, 3rd flattening (<code>scalar</code> or \n          <code>0</code>), <i class=\"math\">(a - b) / (a + b)</i>.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        The result is positive for <i>oblate</i>, negative for \n        <i>prolate</i> or <code>0</code> for <i>near-spherical</i> \n        ellipsoids.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"a_f2b\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">a_f2b</span>&nbsp;(<span class=\"sig-arg\">a</span>,\n        <span class=\"sig-arg\">f</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return <code>b</code>, the <i>polar</i> radius for a given \n  <i>equatorial</i> radius and <i>flattening</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>a</code></strong> - Equatorial radius (<code>scalar</code> &gt; 0).</li>\n        <li><strong class=\"pname\"><code>f</code></strong> - Flattening (<code>scalar</code> &lt; 1, negative for \n          <i>prolate</i>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The polar radius (<code>float</code>), <i class=\"math\">a * (1 - \n          f)</i>.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"a_f_2b\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">a_f_2b</span>&nbsp;(<span class=\"sig-arg\">a</span>,\n        <span class=\"sig-arg\">f_</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return <code>b</code>, the <i>polar</i> radius for a given \n  <i>equatorial</i> radius and <i>inverse flattening</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>a</code></strong> - Equatorial radius (<code>scalar</code> &gt; 0).</li>\n        <li><strong class=\"pname\"><code>f_</code></strong> - Inverse flattening (<code>scalar</code> &gt;&gt;&gt; 1).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The polar radius (<code>float</code>), <i class=\"math\">a * (f_ - \n          1) / f_</i>.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"b_f2a\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">b_f2a</span>&nbsp;(<span class=\"sig-arg\">b</span>,\n        <span class=\"sig-arg\">f</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return <code>a</code>, the <i>equatorial</i> radius for a given \n  <i>polar</i> radius and <i>flattening</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>b</code></strong> - Polar radius (<code>scalar</code> &gt; 0).</li>\n        <li><strong class=\"pname\"><code>f</code></strong> - Flattening (<code>scalar</code> &lt; 1, negative for \n          <i>prolate</i>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The equatorial radius (<code>float</code>), <i class=\"math\">b / \n          (1 - f)</i>.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"b_f_2a\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">b_f_2a</span>&nbsp;(<span class=\"sig-arg\">b</span>,\n        <span class=\"sig-arg\">f_</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return <code>a</code>, the <i>equatorial</i> radius for a given \n  <i>polar</i> radius and <i>inverse flattening</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>b</code></strong> - Polar radius (<code>scalar</code> &gt; 0).</li>\n        <li><strong class=\"pname\"><code>f_</code></strong> - Inverse flattening (<code>scalar</code> &gt;&gt;&gt; 1).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The equatorial radius (<code>float</code>), <i class=\"math\">b * \n          f_ / (f_ - 1)</i>.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"e2f\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">e2f</span>&nbsp;(<span class=\"sig-arg\">e</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return <code>f</code>, the <i>flattening</i> for a given <i>1st \n  eccentricity</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>e</code></strong> - The (1st) eccentricity (0 &lt;= <code>float</code> &lt; 1)</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The flattening (<code>scalar</code> or <code>0</code>).</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.ellipsoids-module.html#e22f\" \n        class=\"link\">e22f</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"e22f\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">e22f</span>&nbsp;(<span class=\"sig-arg\">e2</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return <code>f</code>, the <i>flattening</i> for a given <i>1st \n  eccentricity squared</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>e2</code></strong> - The (1st) eccentricity <i>squared</i>, <i>signed</i> (NINF &lt; \n          <code>float</code> &lt; 1)</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The flattening (<code>float</code> or <code>0</code>), <i \n          class=\"math\">e2 / (sqrt(1 - e2) + 1)</i>.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"f2e2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">f2e2</span>&nbsp;(<span class=\"sig-arg\">f</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return <code>e2</code>, the <i>1st eccentricity squared</i> for a \n  given <i>flattening</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>f</code></strong> - Flattening (<code>scalar</code> &lt; 1, negative for \n          <i>prolate</i>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The <i>signed</i>, (1st) eccentricity <i>squared</i> \n          (<code>float</code> &lt; 1), <i class=\"math\">f * (2 - f)</i>.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        The result is positive for <i>oblate</i>, negative for \n        <i>prolate</i> or <code>0</code> for <i>near-spherical</i> \n        ellipsoids.\n      </p>\n      <p><strong>See Also:</strong>\n        <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Ellipsoid.html\"\n        target=\"_top\">Eccentricity conversions</a> and <a \n        href=\"https://WikiPedia.org/wiki/Flattening\" \n        target=\"_top\">Flattening</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"f2e22\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">f2e22</span>&nbsp;(<span class=\"sig-arg\">f</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return <code>e22</code>, the <i>2nd eccentricity squared</i> for a \n  given <i>flattening</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>f</code></strong> - Flattening (<code>scalar</code> &lt; 1, negative for \n          <i>prolate</i>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The <i>signed</i>, 2nd eccentricity <i>squared</i> \n          (<code>float</code> &gt; -1 or <code>INF</code>), <i \n          class=\"math\">f * (2 - f) / (1 - f)**2</i>.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        The result is positive for <i>oblate</i>, negative for \n        <i>prolate</i> or <code>0</code> for near-spherical ellipsoids.\n      </p>\n      <p><strong>See Also:</strong>\n        <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Ellipsoid.html\"\n        target=\"_top\">Eccentricity conversions</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"f2e32\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">f2e32</span>&nbsp;(<span class=\"sig-arg\">f</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return <code>e32</code>, the <i>3rd eccentricity squared</i> for a \n  given <i>flattening</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>f</code></strong> - Flattening (<code>scalar</code> &lt; 1, negative for \n          <i>prolate</i>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The <i>signed</i>, 3rd eccentricity <i>squared</i> \n          (<code>float</code>), <i class=\"math\">f * (2 - f) / (1 + (1 - \n          f)**2)</i>.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        The result is positive for <i>oblate</i>, negative for \n        <i>prolate</i> or <code>0</code> for <i>near-spherical</i> \n        ellipsoids.\n      </p>\n      <p><strong>See Also:</strong>\n        <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Ellipsoid.html\"\n        target=\"_top\">Eccentricity conversions</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"f_2f\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">f_2f</span>&nbsp;(<span class=\"sig-arg\">f_</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return <code>f</code>, the <i>flattening</i> for a given <i>inverse \n  flattening</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>f_</code></strong> - Inverse flattening (<code>scalar</code> &gt;&gt;&gt; 1).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The flattening (<code>scalar</code> or <code>0</code>), <i \n          class=\"math\">1 / f_</i>.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        The result is positive for <i>oblate</i>, negative for \n        <i>prolate</i> or <code>0</code> for <i>near-spherical</i> \n        ellipsoids.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"f2f_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">f2f_</span>&nbsp;(<span class=\"sig-arg\">f</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return <code>f_</code>, the <i>inverse flattening</i> for a given \n  <i>flattening</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>f</code></strong> - Flattening (<code>scalar</code> &lt; 1, negative for \n          <i>prolate</i>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The inverse flattening (<code>scalar</code> or <code>0</code>), \n          <i class=\"math\">1 / f</i>.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        The result is positive for <i>oblate</i>, negative for \n        <i>prolate</i> or <code>0</code> for <i>near-spherical</i> \n        ellipsoids.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"f2f2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">f2f2</span>&nbsp;(<span class=\"sig-arg\">f</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return <code>f2</code>, the <i>2nd flattening</i> for a given \n  <i>flattening</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>f</code></strong> - Flattening (<code>scalar</code> &lt; 1, negative for \n          <i>prolate</i>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The <i>signed</i>, 2nd flattening (<code>scalar</code> or \n          <code>INF</code>), <i class=\"math\">f / (1 - f)</i>.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        The result is positive for <i>oblate</i>, negative for \n        <i>prolate</i> or <code>0</code> for <i>near-spherical</i> \n        ellipsoids.\n      </p>\n      <p><strong>See Also:</strong>\n        <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Ellipsoid.html\"\n        target=\"_top\">Eccentricity conversions</a> and <a \n        href=\"https://WikiPedia.org/wiki/Flattening\" \n        target=\"_top\">Flattening</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"f2n\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">f2n</span>&nbsp;(<span class=\"sig-arg\">f</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return <code>n</code>, the <i>3rd flattening</i> for a given \n  <i>flattening</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>f</code></strong> - Flattening (<code>scalar</code> &lt; 1, negative for \n          <i>prolate</i>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The <i>signed</i>, 3rd flattening (-1 &lt;= <code>float</code> \n          &lt; 1), <i class=\"math\">f / (2 - f)</i>.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        The result is positive for <i>oblate</i>, negative for \n        <i>prolate</i> or <code>0</code> for <i>near-spherical</i> \n        ellipsoids.\n      </p>\n      <p><strong>See Also:</strong>\n        <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Ellipsoid.html\"\n        target=\"_top\">Eccentricity conversions</a> and <a \n        href=\"https://WikiPedia.org/wiki/Flattening\" \n        target=\"_top\">Flattening</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"n2e2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">n2e2</span>&nbsp;(<span class=\"sig-arg\">n</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return <code>e2</code>, the <i>1st eccentricity squared</i> for a \n  given <i>3rd flattening</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>n</code></strong> - The 3rd flattening (-1 &lt;= <code>scalar</code> &lt; 1).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The <i>signed</i>, (1st) eccentricity <i>squared</i> \n          (<code>float</code> or NINF), <i class=\"math\">4 * n / (1 + \n          n)**2</i>.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        The result is positive for <i>oblate</i>, negative for \n        <i>prolate</i> or <code>0</code> for <i>near-spherical</i> \n        ellipsoids.\n      </p>\n      <p><strong>See Also:</strong>\n        <a href=\"https://WikiPedia.org/wiki/Flattening\" \n        target=\"_top\">Flattening</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"n2f\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">n2f</span>&nbsp;(<span class=\"sig-arg\">n</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return <code>f</code>, the <i>flattening</i> for a given <i>3rd \n  flattening</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>n</code></strong> - The 3rd flattening (-1 &lt;= <code>scalar</code> &lt; 1).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The flattening (<code>scalar</code> or NINF), <i class=\"math\">2 *\n          n / (1 + n)</i>.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Ellipsoid.html\"\n        target=\"_top\">Eccentricity conversions</a> and <a \n        href=\"https://WikiPedia.org/wiki/Flattening\" \n        target=\"_top\">Flattening</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"n2f_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">n2f_</span>&nbsp;(<span class=\"sig-arg\">n</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return <code>f_</code>, the <i>inverse flattening</i> for a given \n  <i>3rd flattening</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>n</code></strong> - The 3rd flattening (-1 &lt;= <code>scalar</code> &lt; 1).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The inverse flattening (<code>scalar</code> or <code>0</code>), \n          <i class=\"math\">1 / f</i>.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"pygeodesy.ellipsoids-module.html#n2f\" class=\"link\">n2f</a>\n        and <a href=\"pygeodesy.ellipsoids-module.html#f2f_\" \n        class=\"link\">f2f_</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<br />\n<!-- ==================== VARIABLES DETAILS ==================== -->\n<a name=\"section-VariablesDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Variables Details</span></td>\n</tr>\n</table>\n<a name=\"Ellipsoids\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">Ellipsoids</h3>\n  <p>Some pre-defined <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n  class=\"link\">Ellipsoid</a>s, all <i>lazily</i> instantiated.</p>\n  <dl class=\"fields\">\n  </dl>\n  <dl class=\"fields\">\n    <dt>Value:</dt>\n      <dd><table><tr><td><pre class=\"variable\">\nEllipsoids.Sphere: Ellipsoid(name='Sphere', a=6371008.771415, f=0, f_=<span class=\"variable-linewrap\"><img src=\"crarr.png\" alt=\"\\\" /></span>\n0, b=6371008.771415),\nEllipsoids.GRS80: Ellipsoid(name='GRS80', a=6378137, f=0.00335281, f_=<span class=\"variable-linewrap\"><img src=\"crarr.png\" alt=\"\\\" /></span>\n298.2572221, b=6356752.31414035),\nEllipsoids.WGS84: Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=<span class=\"variable-linewrap\"><img src=\"crarr.png\" alt=\"\\\" /></span>\n298.25722356, b=6356752.31424518),\nEllipsoids.Airy1830: Ellipsoid(name='Airy1830', a=6377563.396, f=0.003<span class=\"variable-linewrap\"><img src=\"crarr.png\" alt=\"\\\" /></span>\n34085, f_=299.3249646, b=6356256.90923729)\n</pre></td></tr></table>\n</dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.ellipsoids.Curvature2Tuple-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.ellipsoids.Curvature2Tuple</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.ellipsoids-module.html\">Module&nbsp;ellipsoids</a> ::\n        Class&nbsp;Curvature2Tuple\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.ellipsoids.Curvature2Tuple-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Curvature2Tuple</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n   object --+        \n            |        \n        tuple --+    \n                |    \n   object --+   |    \n            |   |    \n <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n                |    \n<a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a> --+\n                    |\n                   <strong class=\"uidshort\">Curvature2Tuple</strong>\n</pre>\n\n<hr />\n<p>2-Tuple <code>(meridional, prime_vertical)</code> of radii of \n  curvature, both in <code>meter</code>, conventionally.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__delattr__\">__delattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__getattr__\">__getattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__setattr__\">__setattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#items\">items</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iteritems\">iteritems</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iterunits\">iterunits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#reUnit\">reUnit</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toUnits\">toUnits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>tuple</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__eq__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__iter__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__rmul__</code>,\n      <code>count</code>,\n      <code>index</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__new__\">__new__</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoids.Curvature2Tuple-class.html#transverse\" class=\"summary-name\">transverse</a><br />\n      Get this <i>prime_vertical</i>, aka <i>transverse</i> radius of \n      curvature.\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"transverse\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">transverse</h3>\n  <p>Get this <i>prime_vertical</i>, aka <i>transverse</i> radius of \n  curvature.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">transverse(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get this <i>prime_vertical</i>, aka <i>transverse</i> radius of curvature.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.ellipsoids.Ellipsoid-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.ellipsoids.Ellipsoid</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.ellipsoids-module.html\">Module&nbsp;ellipsoids</a> ::\n        Class&nbsp;Ellipsoid\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Ellipsoid</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+            \n           |            \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+        \n               |        \n<a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+    \n                   |    \n<a href=\"pygeodesy.named._NamedEnumItem-class.html\">named._NamedEnumItem</a> --+\n                       |\n                      <strong class=\"uidshort\">Ellipsoid</strong>\n</pre>\n\n<dl><dt>Known Subclasses:</dt>\n<dd>\n      <ul class=\"subclass-list\">\n<li><a href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\">Ellipsoid2</a></li>  </ul>\n</dd></dl>\n\n<hr />\n<p>Ellipsoid with <i>equatorial</i> and <i>polar</i> radii, \n  <i>flattening</i>, <i>inverse flattening</i> and other, often used, \n  <i>cached</i> attributes, supporting <i>oblate</i> and <i>prolate</i> \n  ellipsoidal and <i>spherical</i> earth models.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">a</span>,\n        <span class=\"summary-sig-arg\">b</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">f_</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">f</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      New <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n      class=\"link\">Ellipsoid</a> from the <i>equatorial</i> radius \n      <i>and</i> either the <i>polar</i> radius or <i>inverse \n      flattening</i> or <i>flattening</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#__eq__\" class=\"summary-sig-name\">__eq__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span><br />\n      Compare this and an other ellipsoid.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#__hash__\" class=\"summary-sig-name\">__hash__</a>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      hash(x)</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#auxAuthalic\" class=\"summary-sig-name\">auxAuthalic</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lat</span>,\n        <span class=\"summary-sig-arg\">inverse</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Compute the <i>authalic</i> auxiliary latitude (Xi) or the \n      <i>inverse</i> thereof.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#auxConformal\" class=\"summary-sig-name\">auxConformal</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lat</span>,\n        <span class=\"summary-sig-arg\">inverse</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Compute the <i>conformal</i> auxiliary latitude (Chi) or the \n      <i>inverse</i> thereof.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#auxGeocentric\" class=\"summary-sig-name\">auxGeocentric</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lat</span>,\n        <span class=\"summary-sig-arg\">inverse</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">height</span>=<span class=\"summary-sig-default\">0.0</span>)</span><br />\n      Compute the <i>geocentric</i> auxiliary latitude (Theta) or the \n      <i>inverse</i> thereof.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#auxIsometric\" class=\"summary-sig-name\">auxIsometric</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lat</span>,\n        <span class=\"summary-sig-arg\">inverse</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Compute the <i>isometric</i> auxiliary latitude (Psi) or the \n      <i>inverse</i> thereof.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#auxParametric\" class=\"summary-sig-name\">auxParametric</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lat</span>,\n        <span class=\"summary-sig-arg\">inverse</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Compute the <i>parametric</i> auxiliary latitude (Beta) or the \n      <i>inverse</i> thereof.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#auxReduced\" class=\"summary-sig-name\">auxReduced</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lat</span>,\n        <span class=\"summary-sig-arg\">inverse</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Compute the <i>parametric</i> auxiliary latitude (Beta) or the \n      <i>inverse</i> thereof.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#auxRectifying\" class=\"summary-sig-name\">auxRectifying</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lat</span>,\n        <span class=\"summary-sig-arg\">inverse</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Compute the <i>rectifying</i> auxiliary latitude (Mu) or the \n      <i>inverse</i> thereof.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#circle4\" class=\"summary-sig-name\">circle4</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lat</span>)</span><br />\n      Get the equatorial or a parallel <i>circle of latitude</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#degrees2m\" class=\"summary-sig-name\">degrees2m</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">deg</span>,\n        <span class=\"summary-sig-arg\">lat</span>=<span class=\"summary-sig-default\">0</span>)</span><br />\n      Convert an arc in degrees to a distance along the equator or along a \n      parallel of (geodetic) latitude.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#distance2\" class=\"summary-sig-name\">distance2</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lat0</span>,\n        <span class=\"summary-sig-arg\">lon0</span>,\n        <span class=\"summary-sig-arg\">lat1</span>,\n        <span class=\"summary-sig-arg\">lon1</span>)</span><br />\n      <i>Approximate</i> the distance and (initial) bearing between two \n      points based on the <a \n      href=\"https://www.EdWilliams.org/avform.htm#flat\" \n      target=\"_top\">local, flat earth approximation</a> aka <a \n      href=\"https://www.OVG.AT/de/vgi/files/pdf/3781/\" \n      target=\"_top\">Hubeny</a> formula.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#ecef\" class=\"summary-sig-name\">ecef</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">Ecef</span>=<span class=\"summary-sig-default\">None</span>)</span><br />\n      Return <a href=\"https://WikiPedia.org/wiki/ECEF\" \n      target=\"_top\">ECEF</a> converter.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#e2s\" class=\"summary-sig-name\">e2s</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">s</span>)</span><br />\n      Compute norm <i class=\"math\">sqrt(1 - e2 * s**2)</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#e2s2\" class=\"summary-sig-name\">e2s2</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">s</span>)</span><br />\n      Compute <i class=\"math\">1 - e2 * s**2</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#es_atanh\" class=\"summary-sig-name\">es_atanh</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">x</span>)</span><br />\n      Compute <i class=\"math\">es * atanh(es * x)</i> or <i class=\"math\">-es\n      * atan(es * x)</i> for <i>oblate</i> respectively <i>prolate</i> \n      ellipsoids where <i>es</i> is the <i>signed</i> (1st) eccentricity.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#es_tauf\" class=\"summary-sig-name\">es_tauf</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">taup</span>)</span><br />\n      Compute <i>Karney</i>'s <a href=\"https://ArXiv.org/abs/1002.1417\" \n      target=\"_top\">equations (19), (20) and (21)</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#es_taupf\" class=\"summary-sig-name\">es_taupf</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">tau</span>)</span><br />\n      Compute <i>Karney</i>'s <a href=\"https://ArXiv.org/abs/1002.1417\" \n      target=\"_top\">equations (7), (8) and (9)</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#geodesic_\" class=\"summary-sig-name\">geodesic_</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">exact</span>=<span class=\"summary-sig-default\">True</span>)</span><br />\n      Get the an <i>exact</i> <code>Geodesic...</code> instance for this \n      ellipsoid.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#hartzell4\" class=\"summary-sig-name\">hartzell4</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">pov</span>,\n        <span class=\"summary-sig-arg\">los</span>=<span class=\"summary-sig-default\">None</span>)</span><br />\n      Compute the intersection of this ellipsoid's surface and a \n      Line-Of-Sight from a Point-Of-View in space.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#height4\" class=\"summary-sig-name\">height4</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">xyz</span>,\n        <span class=\"summary-sig-arg\">normal</span>=<span class=\"summary-sig-default\">True</span>)</span><br />\n      Compute the projection on and the height of a cartesian above or \n      below this ellipsoid's surface.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#Llat\" class=\"summary-sig-name\">Llat</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lat</span>)</span><br />\n      Return the <i>meridional length</i>, the distance along a meridian \n      between the equator and a (geodetic) latitude, see <code>L</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#Lmeridian\" class=\"summary-sig-name\">Lmeridian</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lat</span>)</span><br />\n      Return the <i>meridional length</i>, the distance along a meridian \n      between the equator and a (geodetic) latitude, see <code>L</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#m2degrees\" class=\"summary-sig-name\">m2degrees</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">distance</span>,\n        <span class=\"summary-sig-arg\">lat</span>=<span class=\"summary-sig-default\">0</span>)</span><br />\n      Convert a distance to an arc in degrees along the equator or along a \n      parallel of (geodetic) latitude.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#m2radians\" class=\"summary-sig-name\">m2radians</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">distance</span>,\n        <span class=\"summary-sig-arg\">lat</span>=<span class=\"summary-sig-default\">0</span>)</span><br />\n      Convert a distance to an angle along the equator or along a parallel \n      of (geodetic) latitude.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#radians2m\" class=\"summary-sig-name\">radians2m</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">rad</span>,\n        <span class=\"summary-sig-arg\">lat</span>=<span class=\"summary-sig-default\">0</span>)</span><br />\n      Convert an angle to the distance along the equator or along a \n      parallel of (geodetic) latitude.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#Rgeocentric\" class=\"summary-sig-name\">Rgeocentric</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lat</span>)</span><br />\n      Compute the <i>geocentric</i> earth radius of (geodetic) latitude.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#rhumb_\" class=\"summary-sig-name\">rhumb_</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">exact</span>=<span class=\"summary-sig-default\">True</span>)</span><br />\n      Get the an <i>exact</i> <code>Rhumb...</code> instance for this \n      ellipsoid.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#Rlat\" class=\"summary-sig-name\">Rlat</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lat</span>)</span><br />\n      <i>Average</i> the earth radius between <code>equatoradius</code> at \n      <code>0</code> and <code>polaradius</code> at <code>+/-90</code> \n      degrees latitude.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#roc1_\" class=\"summary-sig-name\">roc1_</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">sa</span>,\n        <span class=\"summary-sig-arg\">ca</span>=<span class=\"summary-sig-default\">None</span>)</span><br />\n      Compute the <i>prime-vertical</i>, <i>normal</i> radius of curvature \n      of (geodetic) latitude, <i>unscaled</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#roc2\" class=\"summary-sig-name\">roc2</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lat</span>,\n        <span class=\"summary-sig-arg\">scaled</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Compute the <i>meridional</i> and <i>prime-vertical</i>, \n      <i>normal</i> radii of curvature of (geodetic) latitude.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#roc2_\" class=\"summary-sig-name\">roc2_</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">phi</span>,\n        <span class=\"summary-sig-arg\">scaled</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Compute the <i>meridional</i> and <i>prime-vertical</i>, \n      <i>normal</i> radii of curvature of (geodetic) latitude.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#rocAzimuth\" class=\"summary-sig-name\">rocAzimuth</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lat</span>,\n        <span class=\"summary-sig-arg\">azimuth</span>)</span><br />\n      Compute the <i>directional</i> radius of curvature of (geodetic) \n      latitude and <code>azimuth</code> compass direction.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#rocBearing\" class=\"summary-sig-name\">rocBearing</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lat</span>,\n        <span class=\"summary-sig-arg\">bearing</span>)</span><br />\n      Compute the <i>directional</i> radius of curvature of (geodetic) \n      latitude and <code>bearing</code> compass direction.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#rocGauss\" class=\"summary-sig-name\">rocGauss</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lat</span>)</span><br />\n      Compute the <i>Gaussian</i> radius of curvature of (geodetic) \n      latitude.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#rocMean\" class=\"summary-sig-name\">rocMean</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lat</span>)</span><br />\n      Compute the <i>mean</i> radius of curvature of (geodetic) latitude.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#rocMeridional\" class=\"summary-sig-name\">rocMeridional</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lat</span>)</span><br />\n      Compute the <i>meridional</i> radius of curvature of (geodetic) \n      latitude.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#rocPrimeVertical\" class=\"summary-sig-name\">rocPrimeVertical</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lat</span>)</span><br />\n      Compute the <i>prime-vertical</i>, <i>normal</i> radius of curvature \n      of (geodetic) latitude, aka the <i>transverse</i> radius of \n      curvature.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#rocTransverse\" class=\"summary-sig-name\">rocTransverse</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lat</span>)</span><br />\n      Compute the <i>prime-vertical</i>, <i>normal</i> radius of curvature \n      of (geodetic) latitude, aka the <i>transverse</i> radius of \n      curvature.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#toEllipse\" class=\"summary-sig-name\">toEllipse</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Get this ellipsoid's meridional ellipse <a \n      href=\"pygeodesy.ellipses.Ellipse-class.html\" \n      class=\"link\">Ellipse</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#toEllipsoid2\" class=\"summary-sig-name\">toEllipsoid2</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Get a copy of this ellipsoid as an <a \n      href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n      class=\"link\">Ellipsoid2</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#toStr\" class=\"summary-sig-name\">toStr</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">prec</span>=<span class=\"summary-sig-default\">8</span>,\n        <span class=\"summary-sig-arg\">terse</span>=<span class=\"summary-sig-default\">4</span>,\n        <span class=\"summary-sig-arg\">**sep_name</span>)</span><br />\n      Return this ellipsoid as a text string.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#toTriaxial\" class=\"summary-sig-name\">toTriaxial</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Convert this ellipsoid to a <a \n      href=\"pygeodesy.triaxials.triaxial5.Triaxial_-class.html\" \n      class=\"link\">Triaxial_</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedEnumItem-class.html\">named._NamedEnumItem</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedEnumItem-class.html#unregister\">unregister</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#others\">others</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#toRepr\">toRepr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#a\" class=\"summary-name\">a</a><br />\n      Get the <i>equatorial</i> radius, semi-axis (<code>meter</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#a2\" class=\"summary-name\">a2</a><br />\n      Get the <i>equatorial</i> radius <i>squared</i> (<code>meter</code> \n      <i>squared</i>), <i class=\"math\">a**2</i>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#a2_\" class=\"summary-name\">a2_</a><br />\n      Get the inverse of the <i>equatorial</i> radius <i>squared</i> \n      (<code>meter</code> <i>squared</i>), <i class=\"math\">1 / a**2</i>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#A\" class=\"summary-name\">A</a><br />\n      Get the UTM <i>meridional (or rectifying)</i> radius \n      (<code>meter</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#a_b\" class=\"summary-name\">a_b</a><br />\n      Get the ratio <i>equatorial</i> over <i>polar</i> radius \n      (<code>float</code>), <i class=\"math\">a / b</i> == <i class=\"math\">1 \n      / (1 - f)</i>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#a2_b\" class=\"summary-name\">a2_b</a><br />\n      Get the <i>polar</i> meridional (or polar) radius of curvature \n      (<code>meter</code>), <i class=\"math\">a**2 / b</i>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#a2_b2\" class=\"summary-name\">a2_b2</a><br />\n      Get the ratio <i>equatorial</i> over <i>polar</i> radius \n      <i>squared</i> (<code>float</code>), <i class=\"math\">(a / b)**2</i> \n      == <i class=\"math\">1 / (1 - e**2)</i> == <i class=\"math\">1 / (1 - \n      e2)</i> == <i class=\"math\">1 / e21</i>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#a_f\" class=\"summary-name\">a_f</a><br />\n      Get the <i>equatorial</i> radius and <i>flattening</i> (<a \n      href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n      class=\"link\">a_f2Tuple</a>), see method <code>toEllipsoid2</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#a_f2\" class=\"summary-name\">a_f2</a><br />\n      Get the <i>equatorial</i> radius and <i>flattening</i> (<a \n      href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n      class=\"link\">a_f2Tuple</a>), see method <code>toEllipsoid2</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#AlphaKs\" class=\"summary-name\">AlphaKs</a><br />\n      Get the <i>Kr&#252;ger</i> <a \n      href=\"https://GeographicLib.SourceForge.io/C++/doc/tmseries30.html\" \n      target=\"_top\">Alpha series coefficients</a> \n      (<code>KsOrder</code><code>-tuple</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#area\" class=\"summary-name\">area</a><br />\n      Get the ellipsoid's surface area (<code>meter</code> <i>squared</i>),\n      <i class=\"math\">4 * PI * c2</i>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#areax\" class=\"summary-name\">areax</a><br />\n      Get the ellipsoid's surface area (<code>meter</code> <i>squared</i>),\n      <i class=\"math\">4 * PI * c2x</i>, more accurate for very \n      <i>oblate</i> ellipsoids.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#b\" class=\"summary-name\">b</a><br />\n      Get the <i>polar</i> radius, semi-axis (<code>meter</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#b_a\" class=\"summary-name\">b_a</a><br />\n      Get the ratio <i>polar</i> over <i>equatorial</i> radius \n      (<code>float</code>), <i class=\"math\">b / a == f1 == 1 - f</i>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#b2\" class=\"summary-name\">b2</a><br />\n      Get the <i>polar</i> radius <i>squared</i> (<code>float</code>), <i \n      class=\"math\">b**2</i>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#b2_a\" class=\"summary-name\">b2_a</a><br />\n      Get the <i>equatorial</i> meridional radius of curvature \n      (<code>meter</code>), <i class=\"math\">b**2 / a</i>, see \n      <code>rocMeridional</code><code>(0)</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#b2_a2\" class=\"summary-name\">b2_a2</a><br />\n      Get the ratio <i>polar</i> over <i>equatorial</i> radius \n      <i>squared</i> (<code>float</code>), <i class=\"math\">(b / a)**2</i> \n      == <i class=\"math\">(1 - f)**2</i> == <i class=\"math\">1 - e**2</i> == \n      <code>e21</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#BetaKs\" class=\"summary-name\">BetaKs</a><br />\n      Get the <i>Kr&#252;ger</i> <a \n      href=\"https://GeographicLib.SourceForge.io/C++/doc/tmseries30.html\" \n      target=\"_top\">Beta series coefficients</a> \n      (<code>KsOrder</code><code>-tuple</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#c\" class=\"summary-name\">c</a><br />\n      DEPRECATED, use property <code>R2</code> or <code>Rauthalic</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#c2\" class=\"summary-name\">c2</a><br />\n      Get the <i>authalic</i> earth radius <i>squared</i> \n      (<code>meter</code> <i>squared</i>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#c2x\" class=\"summary-name\">c2x</a><br />\n      Get the <i>authalic</i> earth radius <i>squared</i> \n      (<code>meter</code> <i>squared</i>), more accurate for very \n      <i>oblate</i> ellipsoids.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#e\" class=\"summary-name\">e</a><br />\n      Get the <i>unsigned, (1st) eccentricity</i> (<code>float</code>), <i \n      class=\"math\">sqrt(1 - (b / a)**2))</i>, see <code>a_b2e</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#e12\" class=\"summary-name\">e12</a><br />\n      DEPRECATED, use property <code>e21</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#e2\" class=\"summary-name\">e2</a><br />\n      Get the <i>signed, (1st) eccentricity squared</i> \n      (<code>float</code>), <i class=\"math\">f * (2 - f) == 1 - (b / \n      a)**2</i>, see <code>a_b2e2</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#e2abs\" class=\"summary-name\">e2abs</a><br />\n      Get the <i>unsigned, (1st) eccentricity squared</i> \n      (<code>float</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#e21\" class=\"summary-name\">e21</a><br />\n      Get 1 less <i>1st eccentricity squared</i> (<code>float</code>), <i \n      class=\"math\">1 - e**2</i> == <i class=\"math\">1 - e2</i> == <i \n      class=\"math\">(1 - f)**2</i> == <i class=\"math\">b**2 / a**2</i>, see \n      <code>b2_a2</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#e22\" class=\"summary-name\">e22</a><br />\n      Get the <i>signed, 2nd eccentricity squared</i> (<code>float</code>),\n      <i class=\"math\">e2 / (1 - e2) == e2 / (1 - f)**2 == (a / b)**2 - \n      1</i>, see <code>a_b2e22</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#e22abs\" class=\"summary-name\">e22abs</a><br />\n      Get the <i>unsigned, 2nd eccentricity squared</i> \n      (<code>float</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#e32\" class=\"summary-name\">e32</a><br />\n      Get the <i>signed, 3rd eccentricity squared</i> (<code>float</code>),\n      <i class=\"math\">e2 / (2 - e2) == (a**2 - b**2) / (a**2 + b**2)</i>, \n      see <code>a_b2e32</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#e32abs\" class=\"summary-name\">e32abs</a><br />\n      Get the <i>unsigned, 3rd eccentricity squared</i> \n      (<code>float</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#e4\" class=\"summary-name\">e4</a><br />\n      Get the <i>unsignd, (1st) eccentricity</i> to 4th power \n      (<code>float</code>), <i class=\"math\">e**4 == e2**2</i>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#eccentricity\" class=\"summary-name\">eccentricity</a><br />\n      Get the <i>unsigned, (1st) eccentricity</i> (<code>float</code>), <i \n      class=\"math\">sqrt(1 - (b / a)**2))</i>, see <code>a_b2e</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#eccentricity1st2\" class=\"summary-name\">eccentricity1st2</a><br />\n      Get the <i>signed, (1st) eccentricity squared</i> \n      (<code>float</code>), <i class=\"math\">f * (2 - f) == 1 - (b / \n      a)**2</i>, see <code>a_b2e2</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#eccentricity2nd2\" class=\"summary-name\">eccentricity2nd2</a><br />\n      Get the <i>signed, 2nd eccentricity squared</i> (<code>float</code>),\n      <i class=\"math\">e2 / (1 - e2) == e2 / (1 - f)**2 == (a / b)**2 - \n      1</i>, see <code>a_b2e22</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#eccentricity3rd2\" class=\"summary-name\">eccentricity3rd2</a><br />\n      Get the <i>signed, 3rd eccentricity squared</i> (<code>float</code>),\n      <i class=\"math\">e2 / (2 - e2) == (a**2 - b**2) / (a**2 + b**2)</i>, \n      see <code>a_b2e32</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#equatoradius\" class=\"summary-name\">equatoradius</a><br />\n      Get the <i>equatorial</i> radius, semi-axis (<code>meter</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#equatorimeter\" class=\"summary-name\">equatorimeter</a><br />\n      Get the ellipsoid's <i>equatorial</i> perimeter (<code>meter</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#es\" class=\"summary-name\">es</a><br />\n      Get the <i>signed (1st) eccentricity</i> (<code>float</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#es_c\" class=\"summary-name\">es_c</a><br />\n      Get <i class=\"math\">(1 - f) * exp(es_atanh(1))</i> \n      (<code>float</code>), <i class=\"math\">b_a * exp(es_atanh(1))</i>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#f\" class=\"summary-name\">f</a><br />\n      Get the <i>flattening</i> (<code>scalar</code>), <i class=\"math\">(a -\n      b) / a</i>, <code>0</code> for spherical, negative for prolate.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#f_\" class=\"summary-name\">f_</a><br />\n      Get the <i>inverse flattening</i> (<code>scalar</code>), <i \n      class=\"math\">1 / f</i> == <i class=\"math\">a / (a - b)</i>, \n      <code>0</code> for spherical, see <code>a_b2f_</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#f1\" class=\"summary-name\">f1</a><br />\n      Get the <i>1 - flattening</i> (<code>float</code>), <i \n      class=\"math\">f1 == 1 - f == b / a</i>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#f2\" class=\"summary-name\">f2</a><br />\n      Get the <i>2nd flattening</i> (<code>float</code>), <i \n      class=\"math\">(a - b) / b == f / (1 - f)</i>, <code>0</code> for \n      spherical, see <code>a_b2f2</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#geodesic\" class=\"summary-name\">geodesic</a><br />\n      DEPRECATED, use property <code>geodesicw</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#geodesicw\" class=\"summary-name\">geodesicw</a><br />\n      Get this ellipsoid's <i>wrapped</i> <a \n      href=\"https://GeographicLib.SourceForge.io/Python/doc/code.html\" \n      target=\"_top\">geodesicw.Geodesic</a>, provided <i>Karney</i>'s <a \n      href=\"https://PyPI.org/project/geographiclib\" \n      target=\"_top\">geographiclib</a> package is installed.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#geodesicx\" class=\"summary-name\">geodesicx</a><br />\n      Get this ellipsoid's <i>exact</i> <a \n      href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html\" \n      class=\"link\">GeodesicExact</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#geodsolve\" class=\"summary-name\">geodsolve</a><br />\n      Get this ellipsoid's <a \n      href=\"pygeodesy.geodsolve.GeodesicSolve-class.html\" \n      class=\"link\">GeodesicSolve</a>, the <i>wrapper</i> around utility <a \n      href=\"https://GeographicLib.SourceForge.io/C++/doc/GeodSolve.1.html\" \n      target=\"_top\">GeodSolve</a>, provided the path to the \n      <code>GeodSolve</code> executable is specified with env variable \n      <code>PYGEODESY_GEODSOLVE</code> or re-/set with this property..\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#isEllipsoidal\" class=\"summary-name\">isEllipsoidal</a><br />\n      Is this model <i>ellipsoidal</i> (<code>bool</code>)?\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#isOblate\" class=\"summary-name\">isOblate</a><br />\n      Is this ellipsoid <i>oblate</i> (<code>bool</code>)?  <i>Prolate</i> \n      or spherical otherwise.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#isProlate\" class=\"summary-name\">isProlate</a><br />\n      Is this ellipsoid <i>prolate</i> (<code>bool</code>)?  <i>Oblate</i> \n      or spherical otherwise.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#isSpherical\" class=\"summary-name\">isSpherical</a><br />\n      Is this ellipsoid <i>spherical</i> (<code>bool</code>)?\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#KsOrder\" class=\"summary-name\">KsOrder</a><br />\n      Class <code>property</code> with a <code>.name</code> attribute.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#L\" class=\"summary-name\">L</a><br />\n      Get the <i>quarter meridian</i> <code>L</code>, aka the <code>polar \n      distance</code> along a meridian between the equator and a pole \n      (<code>meter</code>), <i class=\"math\">b * Elliptic(-e2 / (1 - \n      e2)).cE</i> or <i class=\"math\">b * PI / 2</i>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#majoradius\" class=\"summary-name\">majoradius</a><br />\n      DEPRECATED, use property <code>a</code> or <code>Requatorial</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#minoradius\" class=\"summary-name\">minoradius</a><br />\n      DEPRECATED, use property <code>b</code>, <code>polaradius</code> or \n      <code>Rpolar</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#n\" class=\"summary-name\">n</a><br />\n      Get the <i>3rd flattening</i> (<code>float</code>), <i class=\"math\">f\n      / (2 - f) == (a - b) / (a + b)</i>, see <code>a_b2n</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#flattening\" class=\"summary-name\">flattening</a><br />\n      Get the <i>flattening</i> (<code>scalar</code>), <i class=\"math\">(a -\n      b) / a</i>, <code>0</code> for spherical, negative for prolate.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#flattening1st\" class=\"summary-name\">flattening1st</a><br />\n      Get the <i>flattening</i> (<code>scalar</code>), <i class=\"math\">(a -\n      b) / a</i>, <code>0</code> for spherical, negative for prolate.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#flattening2nd\" class=\"summary-name\">flattening2nd</a><br />\n      Get the <i>2nd flattening</i> (<code>float</code>), <i \n      class=\"math\">(a - b) / b == f / (1 - f)</i>, <code>0</code> for \n      spherical, see <code>a_b2f2</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#flattening3rd\" class=\"summary-name\">flattening3rd</a><br />\n      Get the <i>3rd flattening</i> (<code>float</code>), <i class=\"math\">f\n      / (2 - f) == (a - b) / (a + b)</i>, see <code>a_b2n</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#polaradius\" class=\"summary-name\">polaradius</a><br />\n      Get the <i>polar</i> radius, semi-axis (<code>meter</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#polarimeter\" class=\"summary-name\">polarimeter</a><br />\n      Get the ellipsoid's <i>polar</i>, meridional perimeter \n      (<code>meter</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#quarteradius\" class=\"summary-name\">quarteradius</a><br />\n      DEPRECATED, use property <code>L</code> or method <code>Llat</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#R1\" class=\"summary-name\">R1</a><br />\n      Get the <i>mean</i> earth radius per <i>IUGG</i> \n      (<code>meter</code>), <i class=\"math\">(2 * a + b) / 3 == a * (1 - f /\n      3)</i>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#Rmean\" class=\"summary-name\">Rmean</a><br />\n      Get the <i>mean</i> earth radius per <i>IUGG</i> \n      (<code>meter</code>), <i class=\"math\">(2 * a + b) / 3 == a * (1 - f /\n      3)</i>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#R2\" class=\"summary-name\">R2</a><br />\n      Get the <i>authalic</i> earth radius (<code>meter</code>), <i \n      class=\"math\">sqrt(c2)</i>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#Rauthalic\" class=\"summary-name\">Rauthalic</a><br />\n      Get the <i>authalic</i> earth radius (<code>meter</code>), <i \n      class=\"math\">sqrt(c2)</i>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#R2x\" class=\"summary-name\">R2x</a><br />\n      Get the <i>authalic</i> earth radius (<code>meter</code>), <i \n      class=\"math\">sqrt(c2x)</i>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#Rauthalicx\" class=\"summary-name\">Rauthalicx</a><br />\n      Get the <i>authalic</i> earth radius (<code>meter</code>), <i \n      class=\"math\">sqrt(c2x)</i>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#R3\" class=\"summary-name\">R3</a><br />\n      Get the <i>volumetric</i> earth radius (<code>meter</code>), <i \n      class=\"math\">(a * a * b)**(1/3)</i>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#Rvolumetric\" class=\"summary-name\">Rvolumetric</a><br />\n      Get the <i>volumetric</i> earth radius (<code>meter</code>), <i \n      class=\"math\">(a * a * b)**(1/3)</i>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#Rbiaxial\" class=\"summary-name\">Rbiaxial</a><br />\n      Get the <i>biaxial, quadratic</i> mean earth radius \n      (<code>meter</code>), <i class=\"math\">sqrt((a**2 + b**2) / 2)</i>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#Requatorial\" class=\"summary-name\">Requatorial</a><br />\n      Get the <i>equatorial</i> radius, semi-axis (<code>meter</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#Rgeometric\" class=\"summary-name\">Rgeometric</a><br />\n      Get the <i>geometric</i> mean earth radius (<code>meter</code>), <i \n      class=\"math\">sqrt(a * b)</i>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#rhumbaux\" class=\"summary-name\">rhumbaux</a><br />\n      Get this ellipsoid's <i>Auxiliary</i> <code>rhumb.RhumbAux</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#rhumbekx\" class=\"summary-name\">rhumbekx</a><br />\n      Get this ellipsoid's <i>Elliptic, Kr&#252;ger</i> \n      <code>rhumb.Rhumb</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#rhumbsolve\" class=\"summary-name\">rhumbsolve</a><br />\n      Get this ellipsoid's <a \n      href=\"pygeodesy.rhumb.solve.RhumbSolve-class.html\" \n      class=\"link\">RhumbSolve</a>, the <i>wrapper</i> around utility <a \n      href=\"https://GeographicLib.SourceForge.io/C++/doc/GeodSolve.1.html\" \n      target=\"_top\">RhumbSolve</a>, provided the path to the \n      <code>RhumbSolve</code> executable is specified with env variable \n      <code>PYGEODESY_RHUMBSOLVE</code> or re-/set with this property.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#rhumbx\" class=\"summary-name\">rhumbx</a><br />\n      DEPRECATED on 2023.11.28, use property <code>rhumbekx</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#Rpolar\" class=\"summary-name\">Rpolar</a><br />\n      Get the <i>polar</i> radius, semi-axis (<code>meter</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#rocEquatorial2\" class=\"summary-name\">rocEquatorial2</a><br />\n      Get the <i>meridional</i> and <i>prime-vertical</i>, <i>normal</i> \n      radii of curvature at the equator as <a \n      href=\"pygeodesy.ellipsoids.Curvature2Tuple-class.html\" \n      class=\"link\">Curvature2Tuple</a><code>(meridional, \n      prime_vertical)</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#rocPolar\" class=\"summary-name\">rocPolar</a><br />\n      Get the <i>polar</i> meridional (or polar) radius of curvature \n      (<code>meter</code>), <i class=\"math\">a**2 / b</i>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#Rquadratic\" class=\"summary-name\">Rquadratic</a><br />\n      DEPRECATED, use property <code>Rbiaxial</code> or \n      <code>Rtriaxial</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#Rr\" class=\"summary-name\">Rr</a><br />\n      DEPRECATED, use property <code>Rrectifying</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#Rrectifying\" class=\"summary-name\">Rrectifying</a><br />\n      Get the <i>rectifying</i> earth radius (<code>meter</code>), <i \n      class=\"math\">((a**(3/2) + b**(3/2)) / 2)**(2/3)</i>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#Rs\" class=\"summary-name\">Rs</a><br />\n      DEPRECATED, use property <code>Rgeometric</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#Rtriaxial\" class=\"summary-name\">Rtriaxial</a><br />\n      Get the <i>triaxial, quadratic</i> mean earth radius \n      (<code>meter</code>), <i class=\"math\">sqrt((3 * a**2 + b**2) / \n      4)</i>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#volume\" class=\"summary-name\">volume</a><br />\n      Get the ellipsoid's <i>volume</i> (<code>meter**3</code>), <i \n      class=\"math\">4 / 3 * PI * R3**3</i>.\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedEnumItem-class.html\">named._NamedEnumItem</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedEnumItem-class.html#name\">name</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">a</span>,\n        <span class=\"sig-arg\">b</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">f_</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">f</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n  class=\"link\">Ellipsoid</a> from the <i>equatorial</i> radius <i>and</i> \n  either the <i>polar</i> radius or <i>inverse flattening</i> or \n  <i>flattening</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>a</code></strong> - Equatorial radius, semi-axis (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>b</code></strong> - Optional polar radius, semi-axis (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>f_</code></strong> - Inverse flattening: <i class=\"math\">a / (a - b)</i> \n          (<code>float</code> &gt;&gt;&gt; 1.0).</li>\n        <li><strong class=\"pname\"><code>f</code></strong> - Flattening: <i class=\"math\">(a - b) / a</i> (<code>scalar</code>,\n          near zero for spherical).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional, unique <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>NameError</strong></code> - Ellipsoid with the same <b><code>name</code></b> already exists.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>a</code></b>, <b><code>b</code></b>, \n        <b><code>f_</code></b> or <b><code>f</code></b> or \n        <b><code>f_</code></b> and <b><code>f</code></b> are incompatible.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        <i class=\"math\">abs(f_) &gt; 1 / EPS</i> or <i class=\"math\">abs(1 /\n        f_) &lt; EPS</i> is forced to <i class=\"math\">1 / f_ = 0</i>, \n        spherical.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"__eq__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__eq__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>)</span>\n    <br /><em class=\"fname\">(Equality operator)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compare this and an other ellipsoid.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>other</code></strong> - The other ellipsoid (<a \n          href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a> or <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>True</code> if equal, <code>False</code> otherwise.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__hash__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__hash__</span>&nbsp;(<span class=\"sig-arg\">self</span>)</span>\n    <br /><em class=\"fname\">(Hashing function)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>hash(x)</p>\n  <dl class=\"fields\">\n    <dt>Overrides:\n        object.__hash__\n        <dd><em class=\"note\">(inherited documentation)</em></dd>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"auxAuthalic\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">auxAuthalic</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lat</span>,\n        <span class=\"sig-arg\">inverse</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the <i>authalic</i> auxiliary latitude (Xi) or the \n  <i>inverse</i> thereof.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat</code></strong> - The geodetic (or <i>authalic</i>) latitude \n          (<code>degrees90</code>).</li>\n        <li><strong class=\"pname\"><code>inverse</code></strong> - If <code>True</code>, <b><code>lat</code></b> is the \n          <i>authalic</i> and return the geodetic latitude \n          (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The <i>authalic</i> (or geodetic) latitude in \n          <code>degrees90</code>.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Ellipsoid.html\"\n        target=\"_top\">Inverse-/AuthalicLatitude</a>, <a \n        href=\"https://WikiPedia.org/wiki/Latitude#Authalic_latitude\" \n        target=\"_top\">Authalic latitude</a>, and <a \n        href=\"https://Pubs.USGS.gov/pp/1395/report.pdf\" \n        target=\"_top\">Snyder</a>, p 16.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"auxConformal\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">auxConformal</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lat</span>,\n        <span class=\"sig-arg\">inverse</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the <i>conformal</i> auxiliary latitude (Chi) or the \n  <i>inverse</i> thereof.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat</code></strong> - The geodetic (or <i>conformal</i>) latitude \n          (<code>degrees90</code>).</li>\n        <li><strong class=\"pname\"><code>inverse</code></strong> - If <code>True</code>, <b><code>lat</code></b> is the \n          <i>conformal</i> and return the geodetic latitude \n          (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The <i>conformal</i> (or geodetic) latitude in \n          <code>degrees90</code>.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Ellipsoid.html\"\n        target=\"_top\">Inverse-/ConformalLatitude</a>, <a \n        href=\"https://WikiPedia.org/wiki/Latitude#Conformal_latitude\" \n        target=\"_top\">Conformal latitude</a>, and <a \n        href=\"https://Pubs.USGS.gov/pp/1395/report.pdf\" \n        target=\"_top\">Snyder</a>, pp 15-16.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"auxGeocentric\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">auxGeocentric</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lat</span>,\n        <span class=\"sig-arg\">inverse</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">height</span>=<span class=\"sig-default\">0.0</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the <i>geocentric</i> auxiliary latitude (Theta) or the \n  <i>inverse</i> thereof.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat</code></strong> - The geodetic (or <i>geocentric</i>) latitude \n          (<code>degrees90</code>).</li>\n        <li><strong class=\"pname\"><code>inverse</code></strong> - If <code>True</code>, <b><code>lat</code></b> is the geocentric \n          and return the <i>geocentric</i> latitude (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>height</code></strong> - Optional, ellipsoidal height (<code>meter</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The <i>geocentric</i> (or geodetic) latitude in \n          <code>degrees90</code>.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Ellipsoid.html\"\n        target=\"_top\">Inverse-/GeocentricLatitude</a>, <a \n        href=\"https://WikiPedia.org/wiki/Latitude#Geocentric_latitude\" \n        target=\"_top\">Geocentric latitude</a>, and <a \n        href=\"https://Pubs.USGS.gov/pp/1395/report.pdf\" \n        target=\"_top\">Snyder</a>, pp 17-18.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"auxIsometric\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">auxIsometric</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lat</span>,\n        <span class=\"sig-arg\">inverse</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the <i>isometric</i> auxiliary latitude (Psi) or the \n  <i>inverse</i> thereof.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat</code></strong> - The geodetic (or <i>isometric</i>) latitude \n          (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>inverse</code></strong> - If <code>True</code>, <b><code>lat</code></b> is the \n          <i>isometric</i> and return the geodetic latitude \n          (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The <i>isometric</i> (or geodetic) latitude in \n          <code>degrees</code>.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        The <i>isometric</i> latitude for geodetic <code>+/-90</code> is \n        far outside the <code>[-90..+90]</code> range but the inverse \n        thereof is the original geodetic latitude.\n      </p>\n      <p><strong>See Also:</strong>\n        <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Ellipsoid.html\"\n        target=\"_top\">Inverse-/IsometricLatitude</a>, <a \n        href=\"https://WikiPedia.org/wiki/Latitude#Isometric_latitude\" \n        target=\"_top\">Isometric latitude</a>, and <a \n        href=\"https://Pubs.USGS.gov/pp/1395/report.pdf\" \n        target=\"_top\">Snyder</a>, pp 15-16.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"auxParametric\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">auxParametric</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lat</span>,\n        <span class=\"sig-arg\">inverse</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the <i>parametric</i> auxiliary latitude (Beta) or the \n  <i>inverse</i> thereof.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat</code></strong> - The geodetic (or <i>parametric</i>) latitude \n          (<code>degrees90</code>).</li>\n        <li><strong class=\"pname\"><code>inverse</code></strong> - If <code>True</code>, <b><code>lat</code></b> is the \n          <i>parametric</i> and return the geodetic latitude \n          (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The <i>parametric</i> (or geodetic) latitude in \n          <code>degrees90</code>.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Ellipsoid.html\"\n        target=\"_top\">Inverse-/ParametricLatitude</a>, <a \n        href=\"https://WikiPedia.org/wiki/Latitude#Parametric_(or_reduced)_latitude\"\n        target=\"_top\">Parametric latitude</a>, and <a \n        href=\"https://Pubs.USGS.gov/pp/1395/report.pdf\" \n        target=\"_top\">Snyder</a>, p 18.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"auxReduced\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">auxReduced</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lat</span>,\n        <span class=\"sig-arg\">inverse</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the <i>parametric</i> auxiliary latitude (Beta) or the \n  <i>inverse</i> thereof.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat</code></strong> - The geodetic (or <i>parametric</i>) latitude \n          (<code>degrees90</code>).</li>\n        <li><strong class=\"pname\"><code>inverse</code></strong> - If <code>True</code>, <b><code>lat</code></b> is the \n          <i>parametric</i> and return the geodetic latitude \n          (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The <i>parametric</i> (or geodetic) latitude in \n          <code>degrees90</code>.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Ellipsoid.html\"\n        target=\"_top\">Inverse-/ParametricLatitude</a>, <a \n        href=\"https://WikiPedia.org/wiki/Latitude#Parametric_(or_reduced)_latitude\"\n        target=\"_top\">Parametric latitude</a>, and <a \n        href=\"https://Pubs.USGS.gov/pp/1395/report.pdf\" \n        target=\"_top\">Snyder</a>, p 18.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"auxRectifying\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">auxRectifying</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lat</span>,\n        <span class=\"sig-arg\">inverse</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the <i>rectifying</i> auxiliary latitude (Mu) or the \n  <i>inverse</i> thereof.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat</code></strong> - The geodetic (or <i>rectifying</i>) latitude \n          (<code>degrees90</code>).</li>\n        <li><strong class=\"pname\"><code>inverse</code></strong> - If <code>True</code>, <b><code>lat</code></b> is the \n          <i>rectifying</i> and return the geodetic latitude \n          (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The <i>rectifying</i> (or geodetic) latitude in \n          <code>degrees90</code>.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Ellipsoid.html\"\n        target=\"_top\">Inverse-/RectifyingLatitude</a>, <a \n        href=\"https://WikiPedia.org/wiki/Latitude#Rectifying_latitude\" \n        target=\"_top\">Rectifying latitude</a>, and <a \n        href=\"https://Pubs.USGS.gov/pp/1395/report.pdf\" \n        target=\"_top\">Snyder</a>, pp 16-17.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"circle4\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">circle4</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lat</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Get the equatorial or a parallel <i>circle of latitude</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat</code></strong> - Geodetic latitude (<code>degrees90</code> or <code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.namedTuples.Circle4Tuple-class.html\" \n          class=\"link\">Circle4Tuple</a><code>(radius, height, lat, \n          beta)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.RangeError-class.html\">RangeError</a></strong></code> - Latitude <b><code>lat</code></b> outside valid range, only if <a \n        href=\"pygeodesy.errors-module.html#rangerrors\" \n        class=\"link\">rangerrors</a> is <code>True</code>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>lat</code></b>.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>lat</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Definition of <a href=\"https://WikiPedia.org/wiki/Latitude\" \n        target=\"_top\"><i>p</i> and <i>z</i> under <b>Parametric (or \n        reduced) latitude</b></a>, <i>Karney's</i> C++ <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Ellipsoid.html\"\n        target=\"_top\">CircleRadius and CircleHeight</a> and method \n        <code>Triaxial.ellipse5</code>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"degrees2m\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">degrees2m</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">deg</span>,\n        <span class=\"sig-arg\">lat</span>=<span class=\"sig-default\">0</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert an arc in degrees to a distance along the equator or along a \n  parallel of (geodetic) latitude.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>deg</code></strong> - The angle (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lat</code></strong> - Parallel latitude (<code>degrees90</code>, <code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Distance (<code>meter</code>, same units as the equatorial and \n          polar radii) or <code>0</code> for near-polar \n          <b><code>lat</code></b>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.RangeError-class.html\">RangeError</a></strong></code> - Latitude <b><code>lat</code></b> outside valid range and <a \n        href=\"pygeodesy.errors-module.html#rangerrors\" \n        class=\"link\">rangerrors</a> is <code>True</code>.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>deg</code></b> or <b><code>lat</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"distance2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">distance2</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lat0</span>,\n        <span class=\"sig-arg\">lon0</span>,\n        <span class=\"sig-arg\">lat1</span>,\n        <span class=\"sig-arg\">lon1</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p><i>Approximate</i> the distance and (initial) bearing between two \n  points based on the <a href=\"https://www.EdWilliams.org/avform.htm#flat\" \n  target=\"_top\">local, flat earth approximation</a> aka <a \n  href=\"https://www.OVG.AT/de/vgi/files/pdf/3781/\" target=\"_top\">Hubeny</a>\n  formula.</p>\n  <p><i>Suitable only for distances of several hundred Km or Miles and only\n  between points not near-polar</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat0</code></strong> - From latitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lon0</code></strong> - From longitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lat1</code></strong> - To latitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lon1</code></strong> - To longitude (<code>degrees</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.namedTuples.Distance2Tuple-class.html\" \n          class=\"link\">Distance2Tuple</a><code>(distance, initial)</code> \n          with <code>distance</code> in same units as this ellipsoid's \n          axes.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        The meridional and prime_vertical radii of curvature are taken and \n        scaled <i>at the initial latitude</i>, see <code>roc2</code>.\n      </p>\n      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.formy-module.html#flatLocal\" \n        class=\"link\">pygeodesy.flatLocal</a>/<a \n        href=\"pygeodesy.formy-module.html#flatLocal\" \n        class=\"link\">pygeodesy.hubeny</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"ecef\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">ecef</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">Ecef</span>=<span class=\"sig-default\">None</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return <a href=\"https://WikiPedia.org/wiki/ECEF\" \n  target=\"_top\">ECEF</a> converter.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>Ecef</code></strong> - ECEF class to use, default <a \n          href=\"pygeodesy.ecef.EcefKarney-class.html\" \n          class=\"link\">EcefKarney</a>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>An ECEF converter for this <code>ellipsoid</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>Ecef</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Module <a href=\"pygeodesy.ecef-module.html\" \n        class=\"link\">pygeodesy.ecef</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"e2s\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">e2s</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">s</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute norm <i class=\"math\">sqrt(1 - e2 * s**2)</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>s</code></strong> - Sine value (<code>scalar</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Norm (<code>float</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>s</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"e2s2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">e2s2</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">s</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute <i class=\"math\">1 - e2 * s**2</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>s</code></strong> - Sine value (<code>scalar</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Result (<code>float</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>s</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"es_atanh\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">es_atanh</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">x</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute <i class=\"math\">es * atanh(es * x)</i> or <i class=\"math\">-es \n  * atan(es * x)</i> for <i>oblate</i> respectively <i>prolate</i> \n  ellipsoids where <i>es</i> is the <i>signed</i> (1st) eccentricity.</p>\n  <dl class=\"fields\">\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>x</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Math.html\"\n        target=\"_top\">Math::eatanhe</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"es_tauf\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">es_tauf</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">taup</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute <i>Karney</i>'s <a href=\"https://ArXiv.org/abs/1002.1417\" \n  target=\"_top\">equations (19), (20) and (21)</a>.</p>\n  <dl class=\"fields\">\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <i>Karney</i>'s C++ method <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Math.html\"\n        target=\"_top\">Math::tauf</a> and and <i>Veness</i>' JavaScript \n        method <a \n        href=\"https://www.Movable-Type.co.UK/scripts/latlong-utm-mgrs.html\"\n        target=\"_top\">toLatLon</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"es_taupf\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">es_taupf</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">tau</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute <i>Karney</i>'s <a href=\"https://ArXiv.org/abs/1002.1417\" \n  target=\"_top\">equations (7), (8) and (9)</a>.</p>\n  <dl class=\"fields\">\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <i>Karney</i>'s C++ method <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Math.html\"\n        target=\"_top\">Math::taupf</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"geodesic_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">geodesic_</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">exact</span>=<span class=\"sig-default\">True</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Get the an <i>exact</i> <code>Geodesic...</code> instance for this \n  ellipsoid.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>exact</code></strong> - If <code>bool</code> return <a \n          href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html\" \n          class=\"link\">GeodesicExact</a><code>(exact=<b>exact</b>, \n          ...)</code>, otherwise a <a \n          href=\"pygeodesy.geodesicw.Geodesic-class.html\" \n          class=\"link\">Geodesic</a>, <a \n          href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html\" \n          class=\"link\">GeodesicExact</a> or <a \n          href=\"pygeodesy.geodsolve.GeodesicSolve-class.html\" \n          class=\"link\">GeodesicSolve</a> instance for <i>this</i> \n          ellipsoid.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The <code>exact</code> geodesic (<code>Geodesic...</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>exact</code></b>.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Incompatible <b><code>exact</code></b> ellipsoid.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"hartzell4\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">hartzell4</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">pov</span>,\n        <span class=\"sig-arg\">los</span>=<span class=\"sig-default\">None</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the intersection of this ellipsoid's surface and a \n  Line-Of-Sight from a Point-Of-View in space.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>pov</code></strong> - Point-Of-View outside this ellipsoid (<code>Cartesian</code>, <a \n          href=\"pygeodesy.ecef.Ecef9Tuple-class.html\" \n          class=\"link\">Ecef9Tuple</a> or <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>).</li>\n        <li><strong class=\"pname\"><code>los</code></strong> - Line-Of-Sight, <i>direction</i> to this ellipsoid (<a \n          href=\"pygeodesy.ltpTuples.Los-class.html\" class=\"link\">Los</a>, \n          <a href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>) or <code>True</code> for the \n          <i>normal, perpendicular, plumb</i> to the surface of this \n          ellipsoid or <code>False</code> or <code>None</code> to point to \n          its center.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><a href=\"pygeodesy.namedTuples.Vector4Tuple-class.html\" \n          class=\"link\">Vector4Tuple</a><code>(x, y, z, h)</code> with the \n          cartesian coordinates <code>x</code>, <code>y</code> and \n          <code>z</code> of the projection on or the intersection with this\n          ellipsoid and the <i>distance</i> <code>h</code> from \n          <b><code>pov</code></b> to <code>(x, y, z)</code> along \n          <b><code>los</code></b>, all in <code>meter</code>, \n          conventionally.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.IntersectionError-class.html\">IntersectionError</a></strong></code> - Null <b><code>pov</code></b> or <b><code>los</code></b> vector, or \n        <b><code>pov</code></b> is inside this ellipsoid or \n        <b><code>los</code></b> points outside this ellipsoid or in \n        opposite direction.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>pov</code></b> or <b><code>los</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a \n        href=\"https://StephenHartzell.Medium.com/satellite-line-of-sight-intersection-with-earth-d786b4a6a9b6\"\n        target=\"_top\"><i>Satellite Line-of-Sight Intersection with \n        Earth</i></a> and methods <a \n        href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#height4\" \n        class=\"link\">Ellipsoid.height4</a> and <a \n        href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#hartzell4\"\n        class=\"link\">Triaxial.hartzell4</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"height4\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">height4</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">xyz</span>,\n        <span class=\"sig-arg\">normal</span>=<span class=\"sig-default\">True</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the projection on and the height of a cartesian above or below\n  this ellipsoid's surface.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>xyz</code></strong> - The cartesian (<code>Cartesian</code>, <a \n          href=\"pygeodesy.ecef.Ecef9Tuple-class.html\" \n          class=\"link\">Ecef9Tuple</a>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <a \n          href=\"pygeodesy.namedTuples.Vector3Tuple-class.html\" \n          class=\"link\">Vector3Tuple</a> or <a \n          href=\"pygeodesy.namedTuples.Vector4Tuple-class.html\" \n          class=\"link\">Vector4Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>normal</code></strong> - If <code>True</code>, the projection is perpendicular to (the \n          nearest point on) this ellipsoid's surface, otherwise the \n          <code>radial</code> line to this ellipsoid's center \n          (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><a href=\"pygeodesy.namedTuples.Vector4Tuple-class.html\" \n          class=\"link\">Vector4Tuple</a><code>(x, y, z, h)</code> with the \n          cartesian coordinates <code>x</code>, <code>y</code> and \n          <code>z</code> of the projection on and the height <code>h</code>\n          above or below this ellipsoid's surface, all in \n          <code>meter</code>, conventionally.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ValueError</strong></code> - Null <b><code>xyz</code></b>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Non-cartesian <b><code>xyz</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a \n        href=\"https://StackOverflow.com/questions/22959698/distance-from-given-point-to-given-ellipse\"\n        target=\"_top\">Distance to</a> and <a \n        href=\"https://MathWorld.Wolfram.com/Ellipse-LineIntersection.html\" \n        target=\"_top\">intersection with</a> an ellipse and methods <a \n        href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#hartzell4\" \n        class=\"link\">Ellipsoid.hartzell4</a> and <a \n        href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#height4\"\n        class=\"link\">Triaxial.height4</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"Llat\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">Llat</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lat</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the <i>meridional length</i>, the distance along a meridian \n  between the equator and a (geodetic) latitude, see <code>L</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat</code></strong> - Geodetic latitude (<code>degrees90</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The meridional length at <b><code>lat</code></b>, negative on \n          southern hemisphere (<code>meter</code>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"Lmeridian\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">Lmeridian</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lat</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the <i>meridional length</i>, the distance along a meridian \n  between the equator and a (geodetic) latitude, see <code>L</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat</code></strong> - Geodetic latitude (<code>degrees90</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The meridional length at <b><code>lat</code></b>, negative on \n          southern hemisphere (<code>meter</code>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"m2degrees\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">m2degrees</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">distance</span>,\n        <span class=\"sig-arg\">lat</span>=<span class=\"sig-default\">0</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert a distance to an arc in degrees along the equator or along a \n  parallel of (geodetic) latitude.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>distance</code></strong> - Distance (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>lat</code></strong> - Parallel latitude (<code>degrees90</code>, <code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Angle (<code>degrees</code>) or <code>0</code> for near-polar \n          <b><code>lat</code></b>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.RangeError-class.html\">RangeError</a></strong></code> - Latitude <b><code>lat</code></b> outside valid range and <a \n        href=\"pygeodesy.errors-module.html#rangerrors\" \n        class=\"link\">rangerrors</a> is <code>True</code>.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>distance</code></b> or <b><code>lat</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"m2radians\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">m2radians</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">distance</span>,\n        <span class=\"sig-arg\">lat</span>=<span class=\"sig-default\">0</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert a distance to an angle along the equator or along a parallel \n  of (geodetic) latitude.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>distance</code></strong> - Distance (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>lat</code></strong> - Parallel latitude (<code>degrees90</code>, <code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Angle (<code>radians</code>) or <code>INF</code> for near-polar \n          <b><code>lat</code></b>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.RangeError-class.html\">RangeError</a></strong></code> - Latitude <b><code>lat</code></b> outside valid range and <a \n        href=\"pygeodesy.errors-module.html#rangerrors\" \n        class=\"link\">rangerrors</a> is <code>True</code>.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>distance</code></b> or <b><code>lat</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"radians2m\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">radians2m</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">rad</span>,\n        <span class=\"sig-arg\">lat</span>=<span class=\"sig-default\">0</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert an angle to the distance along the equator or along a parallel\n  of (geodetic) latitude.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>rad</code></strong> - The angle (<code>radians</code>).</li>\n        <li><strong class=\"pname\"><code>lat</code></strong> - Parallel latitude (<code>degrees90</code>, <code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Distance (<code>meter</code>, same units as the equatorial and \n          polar radii) or <code>0</code> for near-polar \n          <b><code>lat</code></b>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.RangeError-class.html\">RangeError</a></strong></code> - Latitude <b><code>lat</code></b> outside valid range and <a \n        href=\"pygeodesy.errors-module.html#rangerrors\" \n        class=\"link\">rangerrors</a> is <code>True</code>.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>rad</code></b> or <b><code>lat</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"Rgeocentric\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">Rgeocentric</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lat</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the <i>geocentric</i> earth radius of (geodetic) latitude.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat</code></strong> - Latitude (<code>degrees90</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Geocentric earth radius (<code>meter</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>lat</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"https://WikiPedia.org/wiki/Earth_radius#Geocentric_radius\"\n        target=\"_top\">Geocentric Radius</a>\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"rhumb_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">rhumb_</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">exact</span>=<span class=\"sig-default\">True</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Get the an <i>exact</i> <code>Rhumb...</code> instance for this \n  ellipsoid.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>exact</code></strong> - If <code>bool</code> or <code>None</code> return <a \n          href=\"pygeodesy.rhumb.ekx.Rhumb-class.html\" \n          class=\"link\">Rhumb</a><code>(exact=<b>exact</b>, ...)</code>, \n          otherwise a <a href=\"pygeodesy.rhumb.ekx.Rhumb-class.html\" \n          class=\"link\">Rhumb</a>, <a \n          href=\"pygeodesy.rhumb.aux_.RhumbAux-class.html\" \n          class=\"link\">RhumbAux</a> or <a \n          href=\"pygeodesy.rhumb.solve.RhumbSolve-class.html\" \n          class=\"link\">RhumbSolve</a> instance for <i>this</i> ellipsoid.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The <code>exact</code> rhumb (<code>Rhumb...</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>exact</code></b>.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Incompatible <b><code>exact</code></b> ellipsoid.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"Rlat\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">Rlat</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lat</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p><i>Average</i> the earth radius between <code>equatoradius</code> at \n  <code>0</code> and <code>polaradius</code> at <code>+/-90</code> degrees \n  latitude.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat</code></strong> - Latitude (<code>degrees90</code>, <code>str</code> or \n          <code>Ang</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Averaged earth radius (<code>meter</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.RangeError-class.html\">RangeError</a></strong></code> - Latitude <b><code>lat</code></b> outside valid range, only if <a \n        href=\"pygeodesy.errors-module.html#rangerrors\" \n        class=\"link\">rangerrors</a> is <code>True</code>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>lat</code></b>.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>lat</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"roc1_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">roc1_</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">sa</span>,\n        <span class=\"sig-arg\">ca</span>=<span class=\"sig-default\">None</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the <i>prime-vertical</i>, <i>normal</i> radius of curvature \n  of (geodetic) latitude, <i>unscaled</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>sa</code></strong> - Sine of the latitude (<code>float</code>, [-1.0..+1.0]).</li>\n        <li><strong class=\"pname\"><code>ca</code></strong> - Optional cosine of the latitude (<code>float</code>, \n          [-1.0..+1.0]) to use an alternate formula.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The prime-vertical radius of curvature (<code>float</code>).</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        The delta between both formulae with <code>Ellipsoids.WGS84</code> \n        is less than 2 nanometer over the entire latitude range.\n      </p>\n      <p><strong>See Also:</strong>\n        Method <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#roc2_\" \n        class=\"link\">roc2_</a> and class <a \n        href=\"pygeodesy.ecef.EcefYou-class.html\" class=\"link\">EcefYou</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"roc2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">roc2</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lat</span>,\n        <span class=\"sig-arg\">scaled</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the <i>meridional</i> and <i>prime-vertical</i>, <i>normal</i>\n  radii of curvature of (geodetic) latitude.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat</code></strong> - Latitude (<code>degrees90</code>).</li>\n        <li><strong class=\"pname\"><code>scaled</code></strong> - Scale prime_vertical by <code>cos(radians(<b>lat</b>))</code> \n          (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>An <a href=\"pygeodesy.ellipsoids.Curvature2Tuple-class.html\" \n          class=\"link\">Curvature2Tuple</a><code>(meridional, \n          prime_vertical)</code> with the radii of curvature.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>lat</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Methods <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#roc2_\" \n        class=\"link\">roc2_</a> and <a \n        href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#roc1_\" \n        class=\"link\">roc1_</a>, <a \n        href=\"https://www.EdWilliams.org/avform.htm#flat\" \n        target=\"_top\">Local, flat earth approximation</a> and meridional \n        and prime vertical <a \n        href=\"https://WikiPedia.org/wiki/Earth_radius#Radii_of_curvature\" \n        target=\"_top\">Radii of Curvature</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"roc2_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">roc2_</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">phi</span>,\n        <span class=\"sig-arg\">scaled</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the <i>meridional</i> and <i>prime-vertical</i>, <i>normal</i>\n  radii of curvature of (geodetic) latitude.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>phi</code></strong> - Latitude (<code>radians</code>).</li>\n        <li><strong class=\"pname\"><code>scaled</code></strong> - Scale prime_vertical by <code>cos(<b>phi</b>)</code> \n          (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>An <a href=\"pygeodesy.ellipsoids.Curvature2Tuple-class.html\" \n          class=\"link\">Curvature2Tuple</a><code>(meridional, \n          prime_vertical)</code> with the radii of curvature.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>phi</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Methods <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#roc2\" \n        class=\"link\">roc2</a> and <a \n        href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#roc1_\" \n        class=\"link\">roc1_</a>, property <a \n        href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#rocEquatorial2\" \n        class=\"link\">rocEquatorial2</a>, <a \n        href=\"https://www.EdWilliams.org/avform.htm#flat\" \n        target=\"_top\">Local, flat earth approximation</a> and the \n        meridional and prime vertical <a \n        href=\"https://WikiPedia.org/wiki/Earth_radius#Radii_of_curvature\" \n        target=\"_top\">Radii of Curvature</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"rocAzimuth\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">rocAzimuth</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lat</span>,\n        <span class=\"sig-arg\">azimuth</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the <i>directional</i> radius of curvature of (geodetic) \n  latitude and <code>azimuth</code> compass direction.</p>\n  <dl class=\"fields\">\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <a \n        href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#rocBearing\" \n        class=\"link\">rocBearing</a> for details, using <code>azimuth</code>\n        for <code>bearing</code>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"rocBearing\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">rocBearing</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lat</span>,\n        <span class=\"sig-arg\">bearing</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the <i>directional</i> radius of curvature of (geodetic) \n  latitude and <code>bearing</code> compass direction.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat</code></strong> - Latitude (<code>degrees90</code>).</li>\n        <li><strong class=\"pname\"><code>bearing</code></strong> - Direction (compass <code>degrees360</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Directional radius of curvature (<code>meter</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.RangeError-class.html\">RangeError</a></strong></code> - Latitude <b><code>lat</code></b> outside valid range and <a \n        href=\"pygeodesy.errors-module.html#rangerrors\" \n        class=\"link\">rangerrors</a> is <code>True</code>.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>lat</code></b> or <b><code>bearing</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a \n        href=\"https://WikiPedia.org/wiki/Earth_radius#Radii_of_curvature\" \n        target=\"_top\">Radii of Curvature</a>\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"rocGauss\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">rocGauss</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lat</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the <i>Gaussian</i> radius of curvature of (geodetic) \n  latitude.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat</code></strong> - Latitude (<code>degrees90</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Gaussian radius of curvature (<code>meter</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>lat</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Non-directional <a \n        href=\"https://WikiPedia.org/wiki/Earth_radius#Radii_of_curvature\" \n        target=\"_top\">Radii of Curvature</a>\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"rocMean\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">rocMean</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lat</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the <i>mean</i> radius of curvature of (geodetic) \n  latitude.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat</code></strong> - Latitude (<code>degrees90</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Mean radius of curvature (<code>meter</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>lat</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Non-directional <a \n        href=\"https://WikiPedia.org/wiki/Earth_radius#Radii_of_curvature\" \n        target=\"_top\">Radii of Curvature</a>\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"rocMeridional\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">rocMeridional</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lat</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the <i>meridional</i> radius of curvature of (geodetic) \n  latitude.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat</code></strong> - Latitude (<code>degrees90</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Meridional radius of curvature (<code>meter</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>lat</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Methods <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#roc2\" \n        class=\"link\">roc2</a> and <a \n        href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#roc2_\" \n        class=\"link\">roc2_</a>, <a \n        href=\"https://www.EdWilliams.org/avform.htm#flat\" \n        target=\"_top\">Local, flat earth approximation</a> and <a \n        href=\"https://WikiPedia.org/wiki/Earth_radius#Radii_of_curvature\" \n        target=\"_top\">Radii of Curvature</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"rocPrimeVertical\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">rocPrimeVertical</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lat</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the <i>prime-vertical</i>, <i>normal</i> radius of curvature \n  of (geodetic) latitude, aka the <i>transverse</i> radius of \n  curvature.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat</code></strong> - Latitude (<code>degrees90</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Prime-vertical radius of curvature (<code>meter</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>lat</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Methods <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#roc2\" \n        class=\"link\">roc2</a>, <a \n        href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#roc2_\" \n        class=\"link\">roc2_</a> and <a \n        href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#roc1_\" \n        class=\"link\">roc1_</a>, <a \n        href=\"https://www.EdWilliams.org/avform.htm#flat\" \n        target=\"_top\">Local, flat earth approximation</a> and <a \n        href=\"https://WikiPedia.org/wiki/Earth_radius#Radii_of_curvature\" \n        target=\"_top\">Radii of Curvature</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"rocTransverse\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">rocTransverse</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lat</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the <i>prime-vertical</i>, <i>normal</i> radius of curvature \n  of (geodetic) latitude, aka the <i>transverse</i> radius of \n  curvature.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat</code></strong> - Latitude (<code>degrees90</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Prime-vertical radius of curvature (<code>meter</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>lat</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Methods <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#roc2\" \n        class=\"link\">roc2</a>, <a \n        href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#roc2_\" \n        class=\"link\">roc2_</a> and <a \n        href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#roc1_\" \n        class=\"link\">roc1_</a>, <a \n        href=\"https://www.EdWilliams.org/avform.htm#flat\" \n        target=\"_top\">Local, flat earth approximation</a> and <a \n        href=\"https://WikiPedia.org/wiki/Earth_radius#Radii_of_curvature\" \n        target=\"_top\">Radii of Curvature</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"toEllipse\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toEllipse</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Get this ellipsoid's meridional ellipse <a \n  href=\"pygeodesy.ellipses.Ellipse-class.html\" \n  class=\"link\">Ellipse</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional, unique <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toEllipsoid2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toEllipsoid2</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Get a copy of this ellipsoid as an <a \n  href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n  class=\"link\">Ellipsoid2</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional, unique <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Property <code>a_f</code>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"toStr\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toStr</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">prec</span>=<span class=\"sig-default\">8</span>,\n        <span class=\"sig-arg\">terse</span>=<span class=\"sig-default\">4</span>,\n        <span class=\"sig-arg\">**sep_name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return this ellipsoid as a text string.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>prec</code></strong> - Number of decimal digits, unstripped (<code>int</code>).</li>\n        <li><strong class=\"pname\"><code>terse</code></strong> - Limit the number of items (<code>int</code>, 0...18), use \n          <code><b>terse</b>=0</code> or <code>=None</code> for all.</li>\n        <li><strong class=\"pname\"><code>sep_name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>) or \n          <code>None</code> to exclude this ellipsoid's name and separator \n          <code><b>sep</b>=&quot;, &quot;</code> to join the items \n          (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>This <code>Ellipsoid</code>'s attributes (<code>str</code>).</dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.named._Named-class.html#toStr\">named._Named.toStr</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toTriaxial\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toTriaxial</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert this ellipsoid to a <a \n  href=\"pygeodesy.triaxials.triaxial5.Triaxial_-class.html\" \n  class=\"link\">Triaxial_</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.triaxials.triaxial5.Triaxial_-class.html\" \n          class=\"link\">Triaxial_</a> or <a \n          href=\"pygeodesy.triaxials.triaxial5.Triaxial-class.html\" \n          class=\"link\">Triaxial</a> with the <code>X</code> axis pointing \n          east and <code>Z</code> pointing north.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <a \n        href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#toEllipsoid\"\n        class=\"link\">Triaxial_.toEllipsoid</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<br />\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"a\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">a</h3>\n  <p>Get the <i>equatorial</i> radius, semi-axis (<code>meter</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">a(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <i>equatorial</i> radius, semi-axis (<code>meter</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"a2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">a2</h3>\n  <p>Get the <i>equatorial</i> radius <i>squared</i> (<code>meter</code> \n  <i>squared</i>), <i class=\"math\">a**2</i>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">a2(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <i>equatorial</i> radius <i>squared</i> (<code>meter</code> \n<i>squared</i>), <i class=\"math\">a**2</i>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"a2_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">a2_</h3>\n  <p>Get the inverse of the <i>equatorial</i> radius <i>squared</i> \n  (<code>meter</code> <i>squared</i>), <i class=\"math\">1 / a**2</i>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">a2_(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the inverse of the <i>equatorial</i> radius <i>squared</i> \n(<code>meter</code> <i>squared</i>), <i class=\"math\">1 / a**2</i>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"A\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">A</h3>\n  <p>Get the UTM <i>meridional (or rectifying)</i> radius \n  (<code>meter</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">A(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the UTM <i>meridional (or rectifying)</i> radius (<code>meter</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        <code>A * PI / 2</code> &#8776;= <a \n        href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#L\" \n        class=\"link\">L</a>, the <i>quarter meridian</i>.\n      </p>\n      <p><strong>See Also:</strong>\n        <i>Meridian arc unit</i> <a \n        href=\"https://StudyLib.net/doc/7443565/\" target=\"_top\">Q</a>, the \n        mean, meridional length <i>per radian</i>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"a_b\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">a_b</h3>\n  <p>Get the ratio <i>equatorial</i> over <i>polar</i> radius \n  (<code>float</code>), <i class=\"math\">a / b</i> == <i class=\"math\">1 / (1\n  - f)</i>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">a_b(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the ratio <i>equatorial</i> over <i>polar</i> radius \n(<code>float</code>), <i class=\"math\">a / b</i> == <i class=\"math\">1 / (1 -\nf)</i>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"a2_b\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">a2_b</h3>\n  <p>Get the <i>polar</i> meridional (or polar) radius of curvature \n  (<code>meter</code>), <i class=\"math\">a**2 / b</i>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">a2_b(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <i>polar</i> meridional (or polar) radius of curvature \n(<code>meter</code>), <i class=\"math\">a**2 / b</i>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a \n        href=\"https://WikiPedia.org/wiki/Earth_radius#Radii_of_curvature\" \n        target=\"_top\">Radii of Curvature</a> and <a \n        href=\"https://WikiPedia.org/wiki/Earth_radius#cite_note-Moritz-2\" \n        target=\"_top\">Moritz, H. (1980), Geodetic Reference System \n        1980</a>.\n      </p>\n      <p><strong>Note:</strong>\n        Symbol <code>c</code> is used by IUGG and IERS for the <a \n        href=\"https://WikiPedia.org/wiki/Earth_radius#Radii_of_curvature\" \n        target=\"_top\">polar radius of curvature</a>, see <a \n        href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#c2\" \n        class=\"link\">c2</a> and <a \n        href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#R2\" \n        class=\"link\">R2</a> or <a \n        href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#R2\" \n        class=\"link\">Rauthalic</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"a2_b2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">a2_b2</h3>\n  <p>Get the ratio <i>equatorial</i> over <i>polar</i> radius \n  <i>squared</i> (<code>float</code>), <i class=\"math\">(a / b)**2</i> == <i\n  class=\"math\">1 / (1 - e**2)</i> == <i class=\"math\">1 / (1 - e2)</i> == <i\n  class=\"math\">1 / e21</i>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">a2_b2(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the ratio <i>equatorial</i> over <i>polar</i> radius <i>squared</i> \n(<code>float</code>), <i class=\"math\">(a / b)**2</i> == <i class=\"math\">1 /\n(1 - e**2)</i> == <i class=\"math\">1 / (1 - e2)</i> == <i class=\"math\">1 / \ne21</i>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"a_f\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">a_f</h3>\n  <p>Get the <i>equatorial</i> radius and <i>flattening</i> (<a \n  href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n  class=\"link\">a_f2Tuple</a>), see method <code>toEllipsoid2</code>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">a_f(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <i>equatorial</i> radius and <i>flattening</i> (<a \nhref=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \nclass=\"link\">a_f2Tuple</a>), see method <code>toEllipsoid2</code>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"a_f2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">a_f2</h3>\n  <p>Get the <i>equatorial</i> radius and <i>flattening</i> (<a \n  href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n  class=\"link\">a_f2Tuple</a>), see method <code>toEllipsoid2</code>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">a_f(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <i>equatorial</i> radius and <i>flattening</i> (<a \nhref=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \nclass=\"link\">a_f2Tuple</a>), see method <code>toEllipsoid2</code>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"AlphaKs\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">AlphaKs</h3>\n  <p>Get the <i>Kr&#252;ger</i> <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/tmseries30.html\" \n  target=\"_top\">Alpha series coefficients</a> \n  (<code>KsOrder</code><code>-tuple</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">AlphaKs(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <i>Kr&#252;ger</i> <a \nhref=\"https://GeographicLib.SourceForge.io/C++/doc/tmseries30.html\" \ntarget=\"_top\">Alpha series coefficients</a> \n(<code>KsOrder</code><code>-tuple</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"area\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">area</h3>\n  <p>Get the ellipsoid's surface area (<code>meter</code> <i>squared</i>), \n  <i class=\"math\">4 * PI * c2</i>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">area(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the ellipsoid's surface area (<code>meter</code> <i>squared</i>), <i \nclass=\"math\">4 * PI * c2</i>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Properties <a \n        href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#areax\" \n        class=\"link\">areax</a>, <a \n        href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#c2\" \n        class=\"link\">c2</a> and <a \n        href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#R2\" \n        class=\"link\">R2</a> and functions <a \n        href=\"pygeodesy.ellipsoidalExact-module.html#areaOf\" \n        class=\"link\">ellipsoidalExact.areaOf</a> and <a \n        href=\"pygeodesy.ellipsoidalKarney-module.html#areaOf\" \n        class=\"link\">ellipsoidalKarney.areaOf</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"areax\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">areax</h3>\n  <p>Get the ellipsoid's surface area (<code>meter</code> <i>squared</i>), \n  <i class=\"math\">4 * PI * c2x</i>, more accurate for very <i>oblate</i> \n  ellipsoids.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">areax(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the ellipsoid's surface area (<code>meter</code> <i>squared</i>), <i \nclass=\"math\">4 * PI * c2x</i>, more accurate for very <i>oblate</i> \nellipsoids.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Properties <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#area\"\n        class=\"link\">area</a>, <a \n        href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#c2x\" \n        class=\"link\">c2x</a> and <a \n        href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#R2x\" \n        class=\"link\">R2x</a>, class <a \n        href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html\" \n        class=\"link\">GeodesicExact</a> and functions <a \n        href=\"pygeodesy.ellipsoidalExact-module.html#areaOf\" \n        class=\"link\">ellipsoidalExact.areaOf</a> and <a \n        href=\"pygeodesy.ellipsoidalKarney-module.html#areaOf\" \n        class=\"link\">ellipsoidalKarney.areaOf</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"b\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">b</h3>\n  <p>Get the <i>polar</i> radius, semi-axis (<code>meter</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">b(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <i>polar</i> radius, semi-axis (<code>meter</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"b_a\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">b_a</h3>\n  <p>Get the ratio <i>polar</i> over <i>equatorial</i> radius \n  (<code>float</code>), <i class=\"math\">b / a == f1 == 1 - f</i>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">b_a(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the ratio <i>polar</i> over <i>equatorial</i> radius \n(<code>float</code>), <i class=\"math\">b / a == f1 == 1 - f</i>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Property <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#f1\" \n        class=\"link\">f1</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"b2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">b2</h3>\n  <p>Get the <i>polar</i> radius <i>squared</i> (<code>float</code>), <i \n  class=\"math\">b**2</i>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">b2(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <i>polar</i> radius <i>squared</i> (<code>float</code>), <i \nclass=\"math\">b**2</i>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"b2_a\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">b2_a</h3>\n  <p>Get the <i>equatorial</i> meridional radius of curvature \n  (<code>meter</code>), <i class=\"math\">b**2 / a</i>, see \n  <code>rocMeridional</code><code>(0)</code>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">b2_a(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <i>equatorial</i> meridional radius of curvature \n(<code>meter</code>), <i class=\"math\">b**2 / a</i>, see \n<code>rocMeridional</code><code>(0)</code>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a \n        href=\"https://WikiPedia.org/wiki/Earth_radius#Radii_of_curvature\" \n        target=\"_top\">Radii of Curvature</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"b2_a2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">b2_a2</h3>\n  <p>Get the ratio <i>polar</i> over <i>equatorial</i> radius \n  <i>squared</i> (<code>float</code>), <i class=\"math\">(b / a)**2</i> == <i\n  class=\"math\">(1 - f)**2</i> == <i class=\"math\">1 - e**2</i> == \n  <code>e21</code>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">b2_a2(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the ratio <i>polar</i> over <i>equatorial</i> radius <i>squared</i> \n(<code>float</code>), <i class=\"math\">(b / a)**2</i> == <i class=\"math\">(1 \n- f)**2</i> == <i class=\"math\">1 - e**2</i> == <code>e21</code>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"BetaKs\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">BetaKs</h3>\n  <p>Get the <i>Kr&#252;ger</i> <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/tmseries30.html\" \n  target=\"_top\">Beta series coefficients</a> \n  (<code>KsOrder</code><code>-tuple</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">BetaKs(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <i>Kr&#252;ger</i> <a \nhref=\"https://GeographicLib.SourceForge.io/C++/doc/tmseries30.html\" \ntarget=\"_top\">Beta series coefficients</a> \n(<code>KsOrder</code><code>-tuple</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"c\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">c</h3>\n  <p>DEPRECATED, use property <code>R2</code> or \n  <code>Rauthalic</code>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">c(<span class=\"summary-sig-arg\">self</span>)</span>\n        - DEPRECATED, use property <code>R2</code> or <code>Rauthalic</code>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"c2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">c2</h3>\n  <p>Get the <i>authalic</i> earth radius <i>squared</i> \n  (<code>meter</code> <i>squared</i>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">c2(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <i>authalic</i> earth radius <i>squared</i> (<code>meter</code> \n<i>squared</i>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Properties <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#c2x\" \n        class=\"link\">c2x</a>, <a \n        href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#area\" \n        class=\"link\">area</a>, <a \n        href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#R2\" \n        class=\"link\">R2</a>, <a \n        href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#R2\" \n        class=\"link\">Rauthalic</a>, <i>Karney's</i> <a \n        href=\"https://Link.Springer.com/article/10.1007%2Fs00190-012-0578-z\"\n        target=\"_top\">equation (60)</a> and C++ <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Ellipsoid.html\"\n        target=\"_top\">Ellipsoid.Area</a>, <a \n        href=\"https://WikiPedia.org/wiki/Earth_radius#Authalic_radius\" \n        target=\"_top\">Authalic radius</a>, <a \n        href=\"https://WikiPedia.org/wiki/Ellipsoid\" target=\"_top\">Surface \n        area</a> and <a \n        href=\"https://www.Numericana.com/answer/geometry.htm#oblate\" \n        target=\"_top\">surface area</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"c2x\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">c2x</h3>\n  <p>Get the <i>authalic</i> earth radius <i>squared</i> \n  (<code>meter</code> <i>squared</i>), more accurate for very <i>oblate</i>\n  ellipsoids.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">c2x(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <i>authalic</i> earth radius <i>squared</i> (<code>meter</code> \n<i>squared</i>), more accurate for very <i>oblate</i> ellipsoids.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Properties <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#c2\" \n        class=\"link\">c2</a>, <a \n        href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#areax\" \n        class=\"link\">areax</a>, <a \n        href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#R2x\" \n        class=\"link\">R2x</a>, <a \n        href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#R2x\" \n        class=\"link\">Rauthalicx</a>, class <a \n        href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html\" \n        class=\"link\">GeodesicExact</a> and <i>Karney</i>'s comments at C++ \n        attribute <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/GeodesicExact_8cpp_source.html\"\n        target=\"_top\">GeodesicExact._c2</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"e\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">e</h3>\n  <p>Get the <i>unsigned, (1st) eccentricity</i> (<code>float</code>), <i \n  class=\"math\">sqrt(1 - (b / a)**2))</i>, see <code>a_b2e</code>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">e(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <i>unsigned, (1st) eccentricity</i> (<code>float</code>), <i \nclass=\"math\">sqrt(1 - (b / a)**2))</i>, see <code>a_b2e</code>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Property <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#es\" \n        class=\"link\">es</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"e12\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">e12</h3>\n  <p>DEPRECATED, use property <code>e21</code>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">e12(<span class=\"summary-sig-arg\">self</span>)</span>\n        - DEPRECATED, use property <code>e21</code>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"e2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">e2</h3>\n  <p>Get the <i>signed, (1st) eccentricity squared</i> \n  (<code>float</code>), <i class=\"math\">f * (2 - f) == 1 - (b / a)**2</i>, \n  see <code>a_b2e2</code>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">e2(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <i>signed, (1st) eccentricity squared</i> (<code>float</code>), <i \nclass=\"math\">f * (2 - f) == 1 - (b / a)**2</i>, see <code>a_b2e2</code>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"e2abs\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">e2abs</h3>\n  <p>Get the <i>unsigned, (1st) eccentricity squared</i> \n  (<code>float</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">e2abs(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <i>unsigned, (1st) eccentricity squared</i> (<code>float</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"e21\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">e21</h3>\n  <p>Get 1 less <i>1st eccentricity squared</i> (<code>float</code>), <i \n  class=\"math\">1 - e**2</i> == <i class=\"math\">1 - e2</i> == <i \n  class=\"math\">(1 - f)**2</i> == <i class=\"math\">b**2 / a**2</i>, see \n  <code>b2_a2</code>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">e21(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get 1 less <i>1st eccentricity squared</i> (<code>float</code>), <i \nclass=\"math\">1 - e**2</i> == <i class=\"math\">1 - e2</i> == <i \nclass=\"math\">(1 - f)**2</i> == <i class=\"math\">b**2 / a**2</i>, see \n<code>b2_a2</code>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"e22\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">e22</h3>\n  <p>Get the <i>signed, 2nd eccentricity squared</i> (<code>float</code>), \n  <i class=\"math\">e2 / (1 - e2) == e2 / (1 - f)**2 == (a / b)**2 - 1</i>, \n  see <code>a_b2e22</code>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">e22(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <i>signed, 2nd eccentricity squared</i> (<code>float</code>), <i \nclass=\"math\">e2 / (1 - e2) == e2 / (1 - f)**2 == (a / b)**2 - 1</i>, see \n<code>a_b2e22</code>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"e22abs\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">e22abs</h3>\n  <p>Get the <i>unsigned, 2nd eccentricity squared</i> \n  (<code>float</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">e22abs(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <i>unsigned, 2nd eccentricity squared</i> (<code>float</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"e32\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">e32</h3>\n  <p>Get the <i>signed, 3rd eccentricity squared</i> (<code>float</code>), \n  <i class=\"math\">e2 / (2 - e2) == (a**2 - b**2) / (a**2 + b**2)</i>, see \n  <code>a_b2e32</code>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">e32(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <i>signed, 3rd eccentricity squared</i> (<code>float</code>), <i \nclass=\"math\">e2 / (2 - e2) == (a**2 - b**2) / (a**2 + b**2)</i>, see \n<code>a_b2e32</code>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"e32abs\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">e32abs</h3>\n  <p>Get the <i>unsigned, 3rd eccentricity squared</i> \n  (<code>float</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">e32abs(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <i>unsigned, 3rd eccentricity squared</i> (<code>float</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"e4\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">e4</h3>\n  <p>Get the <i>unsignd, (1st) eccentricity</i> to 4th power \n  (<code>float</code>), <i class=\"math\">e**4 == e2**2</i>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">e4(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <i>unsignd, (1st) eccentricity</i> to 4th power \n(<code>float</code>), <i class=\"math\">e**4 == e2**2</i>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"eccentricity\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">eccentricity</h3>\n  <p>Get the <i>unsigned, (1st) eccentricity</i> (<code>float</code>), <i \n  class=\"math\">sqrt(1 - (b / a)**2))</i>, see <code>a_b2e</code>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">e(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <i>unsigned, (1st) eccentricity</i> (<code>float</code>), <i \nclass=\"math\">sqrt(1 - (b / a)**2))</i>, see <code>a_b2e</code>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Property <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#es\" \n        class=\"link\">es</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"eccentricity1st2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">eccentricity1st2</h3>\n  <p>Get the <i>signed, (1st) eccentricity squared</i> \n  (<code>float</code>), <i class=\"math\">f * (2 - f) == 1 - (b / a)**2</i>, \n  see <code>a_b2e2</code>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">e2(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <i>signed, (1st) eccentricity squared</i> (<code>float</code>), <i \nclass=\"math\">f * (2 - f) == 1 - (b / a)**2</i>, see <code>a_b2e2</code>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"eccentricity2nd2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">eccentricity2nd2</h3>\n  <p>Get the <i>signed, 2nd eccentricity squared</i> (<code>float</code>), \n  <i class=\"math\">e2 / (1 - e2) == e2 / (1 - f)**2 == (a / b)**2 - 1</i>, \n  see <code>a_b2e22</code>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">e22(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <i>signed, 2nd eccentricity squared</i> (<code>float</code>), <i \nclass=\"math\">e2 / (1 - e2) == e2 / (1 - f)**2 == (a / b)**2 - 1</i>, see \n<code>a_b2e22</code>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"eccentricity3rd2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">eccentricity3rd2</h3>\n  <p>Get the <i>signed, 3rd eccentricity squared</i> (<code>float</code>), \n  <i class=\"math\">e2 / (2 - e2) == (a**2 - b**2) / (a**2 + b**2)</i>, see \n  <code>a_b2e32</code>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">e32(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <i>signed, 3rd eccentricity squared</i> (<code>float</code>), <i \nclass=\"math\">e2 / (2 - e2) == (a**2 - b**2) / (a**2 + b**2)</i>, see \n<code>a_b2e32</code>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"equatoradius\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">equatoradius</h3>\n  <p>Get the <i>equatorial</i> radius, semi-axis (<code>meter</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">a(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <i>equatorial</i> radius, semi-axis (<code>meter</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"equatorimeter\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">equatorimeter</h3>\n  <p>Get the ellipsoid's <i>equatorial</i> perimeter \n  (<code>meter</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">equatorimeter(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the ellipsoid's <i>equatorial</i> perimeter (<code>meter</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"es\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">es</h3>\n  <p>Get the <i>signed (1st) eccentricity</i> (<code>float</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">es(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <i>signed (1st) eccentricity</i> (<code>float</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Property <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#e\" \n        class=\"link\">e</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"es_c\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">es_c</h3>\n  <p>Get <i class=\"math\">(1 - f) * exp(es_atanh(1))</i> \n  (<code>float</code>), <i class=\"math\">b_a * exp(es_atanh(1))</i>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">es_c(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get <i class=\"math\">(1 - f) * exp(es_atanh(1))</i> (<code>float</code>), <i\nclass=\"math\">b_a * exp(es_atanh(1))</i>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"f\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">f</h3>\n  <p>Get the <i>flattening</i> (<code>scalar</code>), <i class=\"math\">(a - \n  b) / a</i>, <code>0</code> for spherical, negative for prolate.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">f(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <i>flattening</i> (<code>scalar</code>), <i class=\"math\">(a - b) / \na</i>, <code>0</code> for spherical, negative for prolate.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"f_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">f_</h3>\n  <p>Get the <i>inverse flattening</i> (<code>scalar</code>), <i \n  class=\"math\">1 / f</i> == <i class=\"math\">a / (a - b)</i>, <code>0</code>\n  for spherical, see <code>a_b2f_</code>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">f_(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <i>inverse flattening</i> (<code>scalar</code>), <i class=\"math\">1 \n/ f</i> == <i class=\"math\">a / (a - b)</i>, <code>0</code> for spherical, \nsee <code>a_b2f_</code>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"f1\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">f1</h3>\n  <p>Get the <i>1 - flattening</i> (<code>float</code>), <i class=\"math\">f1\n  == 1 - f == b / a</i>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">f1(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <i>1 - flattening</i> (<code>float</code>), <i class=\"math\">f1 == 1\n- f == b / a</i>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Property <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#b_a\" \n        class=\"link\">b_a</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"f2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">f2</h3>\n  <p>Get the <i>2nd flattening</i> (<code>float</code>), <i class=\"math\">(a\n  - b) / b == f / (1 - f)</i>, <code>0</code> for spherical, see \n  <code>a_b2f2</code>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">f2(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <i>2nd flattening</i> (<code>float</code>), <i class=\"math\">(a - b)\n/ b == f / (1 - f)</i>, <code>0</code> for spherical, see \n<code>a_b2f2</code>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"geodesic\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">geodesic</h3>\n  <p>DEPRECATED, use property <code>geodesicw</code>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">geodesic(<span class=\"summary-sig-arg\">self</span>)</span>\n        - DEPRECATED, use property <code>geodesicw</code>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"geodesicw\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">geodesicw</h3>\n  <p>Get this ellipsoid's <i>wrapped</i> <a \n  href=\"https://GeographicLib.SourceForge.io/Python/doc/code.html\" \n  target=\"_top\">geodesicw.Geodesic</a>, provided <i>Karney</i>'s <a \n  href=\"https://PyPI.org/project/geographiclib\" \n  target=\"_top\">geographiclib</a> package is installed.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">geodesicw(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get this ellipsoid's <i>wrapped</i> <a \nhref=\"https://GeographicLib.SourceForge.io/Python/doc/code.html\" \ntarget=\"_top\">geodesicw.Geodesic</a>, provided <i>Karney</i>'s <a \nhref=\"https://PyPI.org/project/geographiclib\" \ntarget=\"_top\">geographiclib</a> package is installed.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"geodesicx\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">geodesicx</h3>\n  <p>Get this ellipsoid's <i>exact</i> <a \n  href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html\" \n  class=\"link\">GeodesicExact</a>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">geodesicx(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get this ellipsoid's <i>exact</i> <a \nhref=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html\" \nclass=\"link\">GeodesicExact</a>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"geodsolve\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">geodsolve</h3>\n  <p>Get this ellipsoid's <a \n  href=\"pygeodesy.geodsolve.GeodesicSolve-class.html\" \n  class=\"link\">GeodesicSolve</a>, the <i>wrapper</i> around utility <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/GeodSolve.1.html\" \n  target=\"_top\">GeodSolve</a>, provided the path to the \n  <code>GeodSolve</code> executable is specified with env variable \n  <code>PYGEODESY_GEODSOLVE</code> or re-/set with this property..</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">geodsolve(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get this ellipsoid's <a href=\"pygeodesy.geodsolve.GeodesicSolve-class.html\"\nclass=\"link\">GeodesicSolve</a>, the <i>wrapper</i> around utility <a \nhref=\"https://GeographicLib.SourceForge.io/C++/doc/GeodSolve.1.html\" \ntarget=\"_top\">GeodSolve</a>, provided the path to the \n<code>GeodSolve</code> executable is specified with env variable \n<code>PYGEODESY_GEODSOLVE</code> or re-/set with this property..\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">geodsolve(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">path</span>)</span>\n        - Re-/set the (fully qualified) path to the <a \nhref=\"https://GeographicLib.SourceForge.io/C++/doc/GeodSolve.1.html\" \ntarget=\"_top\">GeodSolve</a> executable, overriding env variable \n<code>PYGEODESY_GEODSOLVE</code> (<code>str</code>).\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"isEllipsoidal\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">isEllipsoidal</h3>\n  <p>Is this model <i>ellipsoidal</i> (<code>bool</code>)?</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">isEllipsoidal(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Is this model <i>ellipsoidal</i> (<code>bool</code>)?\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"isOblate\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">isOblate</h3>\n  <p>Is this ellipsoid <i>oblate</i> (<code>bool</code>)?  <i>Prolate</i> \n  or spherical otherwise.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">isOblate(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Is this ellipsoid <i>oblate</i> (<code>bool</code>)?  <i>Prolate</i> or \nspherical otherwise.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"isProlate\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">isProlate</h3>\n  <p>Is this ellipsoid <i>prolate</i> (<code>bool</code>)?  <i>Oblate</i> \n  or spherical otherwise.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">isProlate(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Is this ellipsoid <i>prolate</i> (<code>bool</code>)?  <i>Oblate</i> or \nspherical otherwise.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"isSpherical\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">isSpherical</h3>\n  <p>Is this ellipsoid <i>spherical</i> (<code>bool</code>)?</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">isSpherical(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Is this ellipsoid <i>spherical</i> (<code>bool</code>)?\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"KsOrder\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">KsOrder</h3>\n  <p>Class <code>property</code> with a <code>.name</code> attribute.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">KsOrder(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <i>Kr&#252;ger</i> series' order (<code>int</code> 4, 6 or 8).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">KsOrder(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">order</span>)</span>\n        - Set the <i>Kr&#252;ger</i> series' order (<code>int</code> 4, 6 or 8).\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"L\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">L</h3>\n  <p>Get the <i>quarter meridian</i> <code>L</code>, aka the <code>polar \n  distance</code> along a meridian between the equator and a pole \n  (<code>meter</code>), <i class=\"math\">b * Elliptic(-e2 / (1 - e2)).cE</i>\n  or <i class=\"math\">b * PI / 2</i>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">L(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <i>quarter meridian</i> <code>L</code>, aka the <code>polar \ndistance</code> along a meridian between the equator and a pole \n(<code>meter</code>), <i class=\"math\">b * Elliptic(-e2 / (1 - e2)).cE</i> \nor <i class=\"math\">b * PI / 2</i>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"majoradius\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">majoradius</h3>\n  <p>DEPRECATED, use property <code>a</code> or \n  <code>Requatorial</code>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">majoradius(<span class=\"summary-sig-arg\">self</span>)</span>\n        - DEPRECATED, use property <code>a</code> or <code>Requatorial</code>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"minoradius\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">minoradius</h3>\n  <p>DEPRECATED, use property <code>b</code>, <code>polaradius</code> or \n  <code>Rpolar</code>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">minoradius(<span class=\"summary-sig-arg\">self</span>)</span>\n        - DEPRECATED, use property <code>b</code>, <code>polaradius</code> or \n<code>Rpolar</code>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"n\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">n</h3>\n  <p>Get the <i>3rd flattening</i> (<code>float</code>), <i class=\"math\">f \n  / (2 - f) == (a - b) / (a + b)</i>, see <code>a_b2n</code>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">n(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <i>3rd flattening</i> (<code>float</code>), <i class=\"math\">f / (2 \n- f) == (a - b) / (a + b)</i>, see <code>a_b2n</code>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"flattening\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">flattening</h3>\n  <p>Get the <i>flattening</i> (<code>scalar</code>), <i class=\"math\">(a - \n  b) / a</i>, <code>0</code> for spherical, negative for prolate.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">f(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <i>flattening</i> (<code>scalar</code>), <i class=\"math\">(a - b) / \na</i>, <code>0</code> for spherical, negative for prolate.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"flattening1st\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">flattening1st</h3>\n  <p>Get the <i>flattening</i> (<code>scalar</code>), <i class=\"math\">(a - \n  b) / a</i>, <code>0</code> for spherical, negative for prolate.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">f(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <i>flattening</i> (<code>scalar</code>), <i class=\"math\">(a - b) / \na</i>, <code>0</code> for spherical, negative for prolate.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"flattening2nd\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">flattening2nd</h3>\n  <p>Get the <i>2nd flattening</i> (<code>float</code>), <i class=\"math\">(a\n  - b) / b == f / (1 - f)</i>, <code>0</code> for spherical, see \n  <code>a_b2f2</code>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">f2(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <i>2nd flattening</i> (<code>float</code>), <i class=\"math\">(a - b)\n/ b == f / (1 - f)</i>, <code>0</code> for spherical, see \n<code>a_b2f2</code>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"flattening3rd\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">flattening3rd</h3>\n  <p>Get the <i>3rd flattening</i> (<code>float</code>), <i class=\"math\">f \n  / (2 - f) == (a - b) / (a + b)</i>, see <code>a_b2n</code>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">n(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <i>3rd flattening</i> (<code>float</code>), <i class=\"math\">f / (2 \n- f) == (a - b) / (a + b)</i>, see <code>a_b2n</code>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"polaradius\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">polaradius</h3>\n  <p>Get the <i>polar</i> radius, semi-axis (<code>meter</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">b(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <i>polar</i> radius, semi-axis (<code>meter</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"polarimeter\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">polarimeter</h3>\n  <p>Get the ellipsoid's <i>polar</i>, meridional perimeter \n  (<code>meter</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">polarimeter(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the ellipsoid's <i>polar</i>, meridional perimeter \n(<code>meter</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"quarteradius\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">quarteradius</h3>\n  <p>DEPRECATED, use property <code>L</code> or method \n  <code>Llat</code>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">quarteradius(<span class=\"summary-sig-arg\">self</span>)</span>\n        - DEPRECATED, use property <code>L</code> or method <code>Llat</code>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"R1\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">R1</h3>\n  <p>Get the <i>mean</i> earth radius per <i>IUGG</i> (<code>meter</code>),\n  <i class=\"math\">(2 * a + b) / 3 == a * (1 - f / 3)</i>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">R1(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <i>mean</i> earth radius per <i>IUGG</i> (<code>meter</code>), <i \nclass=\"math\">(2 * a + b) / 3 == a * (1 - f / 3)</i>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"https://WikiPedia.org/wiki/Earth_radius\" \n        target=\"_top\">Earth radius</a> and method <code>Rgeometric</code>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"Rmean\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">Rmean</h3>\n  <p>Get the <i>mean</i> earth radius per <i>IUGG</i> (<code>meter</code>),\n  <i class=\"math\">(2 * a + b) / 3 == a * (1 - f / 3)</i>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">R1(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <i>mean</i> earth radius per <i>IUGG</i> (<code>meter</code>), <i \nclass=\"math\">(2 * a + b) / 3 == a * (1 - f / 3)</i>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"https://WikiPedia.org/wiki/Earth_radius\" \n        target=\"_top\">Earth radius</a> and method <code>Rgeometric</code>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"R2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">R2</h3>\n  <p>Get the <i>authalic</i> earth radius (<code>meter</code>), <i \n  class=\"math\">sqrt(c2)</i>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">R2(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <i>authalic</i> earth radius (<code>meter</code>), <i \nclass=\"math\">sqrt(c2)</i>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <code>R2x</code>, <code>c2</code>, <code>area</code> and <a \n        href=\"https://WikiPedia.org/wiki/Earth_radius\" target=\"_top\">Earth \n        radius</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"Rauthalic\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">Rauthalic</h3>\n  <p>Get the <i>authalic</i> earth radius (<code>meter</code>), <i \n  class=\"math\">sqrt(c2)</i>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">R2(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <i>authalic</i> earth radius (<code>meter</code>), <i \nclass=\"math\">sqrt(c2)</i>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <code>R2x</code>, <code>c2</code>, <code>area</code> and <a \n        href=\"https://WikiPedia.org/wiki/Earth_radius\" target=\"_top\">Earth \n        radius</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"R2x\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">R2x</h3>\n  <p>Get the <i>authalic</i> earth radius (<code>meter</code>), <i \n  class=\"math\">sqrt(c2x)</i>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">R2x(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <i>authalic</i> earth radius (<code>meter</code>), <i \nclass=\"math\">sqrt(c2x)</i>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <code>R2</code>, <code>c2x</code> and <code>areax</code>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"Rauthalicx\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">Rauthalicx</h3>\n  <p>Get the <i>authalic</i> earth radius (<code>meter</code>), <i \n  class=\"math\">sqrt(c2x)</i>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">R2x(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <i>authalic</i> earth radius (<code>meter</code>), <i \nclass=\"math\">sqrt(c2x)</i>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <code>R2</code>, <code>c2x</code> and <code>areax</code>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"R3\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">R3</h3>\n  <p>Get the <i>volumetric</i> earth radius (<code>meter</code>), <i \n  class=\"math\">(a * a * b)**(1/3)</i>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">R3(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <i>volumetric</i> earth radius (<code>meter</code>), <i \nclass=\"math\">(a * a * b)**(1/3)</i>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"https://WikiPedia.org/wiki/Earth_radius\" \n        target=\"_top\">Earth radius</a> and <code>volume</code>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"Rvolumetric\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">Rvolumetric</h3>\n  <p>Get the <i>volumetric</i> earth radius (<code>meter</code>), <i \n  class=\"math\">(a * a * b)**(1/3)</i>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">R3(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <i>volumetric</i> earth radius (<code>meter</code>), <i \nclass=\"math\">(a * a * b)**(1/3)</i>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"https://WikiPedia.org/wiki/Earth_radius\" \n        target=\"_top\">Earth radius</a> and <code>volume</code>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"Rbiaxial\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">Rbiaxial</h3>\n  <p>Get the <i>biaxial, quadratic</i> mean earth radius \n  (<code>meter</code>), <i class=\"math\">sqrt((a**2 + b**2) / 2)</i>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">Rbiaxial(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <i>biaxial, quadratic</i> mean earth radius (<code>meter</code>), \n<i class=\"math\">sqrt((a**2 + b**2) / 2)</i>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <code>Rtriaxial</code>\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"Requatorial\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">Requatorial</h3>\n  <p>Get the <i>equatorial</i> radius, semi-axis (<code>meter</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">a(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <i>equatorial</i> radius, semi-axis (<code>meter</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"Rgeometric\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">Rgeometric</h3>\n  <p>Get the <i>geometric</i> mean earth radius (<code>meter</code>), <i \n  class=\"math\">sqrt(a * b)</i>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">Rgeometric(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <i>geometric</i> mean earth radius (<code>meter</code>), <i \nclass=\"math\">sqrt(a * b)</i>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <code>R1</code>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"rhumbaux\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">rhumbaux</h3>\n  <p>Get this ellipsoid's <i>Auxiliary</i> <code>rhumb.RhumbAux</code>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">rhumbaux(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get this ellipsoid's <i>Auxiliary</i> <code>rhumb.RhumbAux</code>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"rhumbekx\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">rhumbekx</h3>\n  <p>Get this ellipsoid's <i>Elliptic, Kr&#252;ger</i> \n  <code>rhumb.Rhumb</code>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">rhumbekx(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get this ellipsoid's <i>Elliptic, Kr&#252;ger</i> <code>rhumb.Rhumb</code>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"rhumbsolve\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">rhumbsolve</h3>\n  <p>Get this ellipsoid's <a \n  href=\"pygeodesy.rhumb.solve.RhumbSolve-class.html\" \n  class=\"link\">RhumbSolve</a>, the <i>wrapper</i> around utility <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/GeodSolve.1.html\" \n  target=\"_top\">RhumbSolve</a>, provided the path to the \n  <code>RhumbSolve</code> executable is specified with env variable \n  <code>PYGEODESY_RHUMBSOLVE</code> or re-/set with this property.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">rhumbsolve(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get this ellipsoid's <a href=\"pygeodesy.rhumb.solve.RhumbSolve-class.html\" \nclass=\"link\">RhumbSolve</a>, the <i>wrapper</i> around utility <a \nhref=\"https://GeographicLib.SourceForge.io/C++/doc/GeodSolve.1.html\" \ntarget=\"_top\">RhumbSolve</a>, provided the path to the \n<code>RhumbSolve</code> executable is specified with env variable \n<code>PYGEODESY_RHUMBSOLVE</code> or re-/set with this property.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">rhumbsolve(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">path</span>)</span>\n        - Re-/set the (fully qualified) path to the <a \nhref=\"https://GeographicLib.SourceForge.io/C++/doc/GeodSolve.1.html\" \ntarget=\"_top\">RhumbSolve</a> executable, overriding env variable \n<code>PYGEODESY_RHUMBSOLVE</code> (<code>str</code>).\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"rhumbx\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">rhumbx</h3>\n  <p>DEPRECATED on 2023.11.28, use property <code>rhumbekx</code>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">rhumbx(<span class=\"summary-sig-arg\">self</span>)</span>\n        - DEPRECATED on 2023.11.28, use property <code>rhumbekx</code>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"Rpolar\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">Rpolar</h3>\n  <p>Get the <i>polar</i> radius, semi-axis (<code>meter</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">b(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <i>polar</i> radius, semi-axis (<code>meter</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"rocEquatorial2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">rocEquatorial2</h3>\n  <p>Get the <i>meridional</i> and <i>prime-vertical</i>, <i>normal</i> \n  radii of curvature at the equator as <a \n  href=\"pygeodesy.ellipsoids.Curvature2Tuple-class.html\" \n  class=\"link\">Curvature2Tuple</a><code>(meridional, \n  prime_vertical)</code>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">rocEquatorial2(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <i>meridional</i> and <i>prime-vertical</i>, <i>normal</i> radii of\ncurvature at the equator as <a \nhref=\"pygeodesy.ellipsoids.Curvature2Tuple-class.html\" \nclass=\"link\">Curvature2Tuple</a><code>(meridional, prime_vertical)</code>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Methods <a \n        href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#rocMeridional\" \n        class=\"link\">rocMeridional</a> and <a \n        href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#rocPrimeVertical\" \n        class=\"link\">rocPrimeVertical</a>, properties <a \n        href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#b2_a\" \n        class=\"link\">b2_a</a>, <a \n        href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#a2_b\" \n        class=\"link\">a2_b</a>, <code>rocPolar</code> and polar and \n        equatorial <a \n        href=\"https://WikiPedia.org/wiki/Earth_radius#Radii_of_curvature\" \n        target=\"_top\">Radii of Curvature</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"rocPolar\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">rocPolar</h3>\n  <p>Get the <i>polar</i> meridional (or polar) radius of curvature \n  (<code>meter</code>), <i class=\"math\">a**2 / b</i>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">a2_b(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <i>polar</i> meridional (or polar) radius of curvature \n(<code>meter</code>), <i class=\"math\">a**2 / b</i>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a \n        href=\"https://WikiPedia.org/wiki/Earth_radius#Radii_of_curvature\" \n        target=\"_top\">Radii of Curvature</a> and <a \n        href=\"https://WikiPedia.org/wiki/Earth_radius#cite_note-Moritz-2\" \n        target=\"_top\">Moritz, H. (1980), Geodetic Reference System \n        1980</a>.\n      </p>\n      <p><strong>Note:</strong>\n        Symbol <code>c</code> is used by IUGG and IERS for the <a \n        href=\"https://WikiPedia.org/wiki/Earth_radius#Radii_of_curvature\" \n        target=\"_top\">polar radius of curvature</a>, see <a \n        href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#c2\" \n        class=\"link\">c2</a> and <a \n        href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#R2\" \n        class=\"link\">R2</a> or <a \n        href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#R2\" \n        class=\"link\">Rauthalic</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"Rquadratic\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">Rquadratic</h3>\n  <p>DEPRECATED, use property <code>Rbiaxial</code> or \n  <code>Rtriaxial</code>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">Rquadratic(<span class=\"summary-sig-arg\">self</span>)</span>\n        - DEPRECATED, use property <code>Rbiaxial</code> or <code>Rtriaxial</code>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"Rr\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">Rr</h3>\n  <p>DEPRECATED, use property <code>Rrectifying</code>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">Rr(<span class=\"summary-sig-arg\">self</span>)</span>\n        - DEPRECATED, use property <code>Rrectifying</code>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"Rrectifying\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">Rrectifying</h3>\n  <p>Get the <i>rectifying</i> earth radius (<code>meter</code>), <i \n  class=\"math\">((a**(3/2) + b**(3/2)) / 2)**(2/3)</i>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">Rrectifying(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <i>rectifying</i> earth radius (<code>meter</code>), <i \nclass=\"math\">((a**(3/2) + b**(3/2)) / 2)**(2/3)</i>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"https://WikiPedia.org/wiki/Earth_radius\" \n        target=\"_top\">Earth radius</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"Rs\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">Rs</h3>\n  <p>DEPRECATED, use property <code>Rgeometric</code>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">Rs(<span class=\"summary-sig-arg\">self</span>)</span>\n        - DEPRECATED, use property <code>Rgeometric</code>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"Rtriaxial\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">Rtriaxial</h3>\n  <p>Get the <i>triaxial, quadratic</i> mean earth radius \n  (<code>meter</code>), <i class=\"math\">sqrt((3 * a**2 + b**2) / \n  4)</i>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">Rtriaxial(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <i>triaxial, quadratic</i> mean earth radius (<code>meter</code>), \n<i class=\"math\">sqrt((3 * a**2 + b**2) / 4)</i>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <code>Rbiaxial</code>\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"volume\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">volume</h3>\n  <p>Get the ellipsoid's <i>volume</i> (<code>meter**3</code>), <i \n  class=\"math\">4 / 3 * PI * R3**3</i>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">volume(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the ellipsoid's <i>volume</i> (<code>meter**3</code>), <i \nclass=\"math\">4 / 3 * PI * R3**3</i>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <code>R3</code>.\n      </p>\n</div></td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.ellipsoids.Ellipsoid2-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.ellipsoids.Ellipsoid2</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.ellipsoids-module.html\">Module&nbsp;ellipsoids</a> ::\n        Class&nbsp;Ellipsoid2\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Ellipsoid2</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+                \n           |                \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+            \n               |            \n<a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+        \n                   |        \n<a href=\"pygeodesy.named._NamedEnumItem-class.html\">named._NamedEnumItem</a> --+    \n                       |    \n               <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a> --+\n                           |\n                          <strong class=\"uidshort\">Ellipsoid2</strong>\n</pre>\n\n<hr />\n<p>An <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n  class=\"link\">Ellipsoid</a> specified by <i>equatorial</i> radius and \n  <i>flattening</i>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">a</span>,\n        <span class=\"summary-sig-arg\">f</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      New <a href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n      class=\"link\">Ellipsoid2</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a></code></b>:\n      <code><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#Llat\">Llat</a></code>,\n      <code><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#Lmeridian\">Lmeridian</a></code>,\n      <code><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#Rgeocentric\">Rgeocentric</a></code>,\n      <code><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#Rlat\">Rlat</a></code>,\n      <code><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#__eq__\">__eq__</a></code>,\n      <code><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#auxAuthalic\">auxAuthalic</a></code>,\n      <code><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#auxConformal\">auxConformal</a></code>,\n      <code><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#auxGeocentric\">auxGeocentric</a></code>,\n      <code><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#auxIsometric\">auxIsometric</a></code>,\n      <code><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#auxParametric\">auxParametric</a></code>,\n      <code><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#auxRectifying\">auxRectifying</a></code>,\n      <code><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#auxReduced\">auxReduced</a></code>,\n      <code><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#circle4\">circle4</a></code>,\n      <code><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#degrees2m\">degrees2m</a></code>,\n      <code><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#distance2\">distance2</a></code>,\n      <code><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#e2s\">e2s</a></code>,\n      <code><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#e2s2\">e2s2</a></code>,\n      <code><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#ecef\">ecef</a></code>,\n      <code><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#es_atanh\">es_atanh</a></code>,\n      <code><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#es_tauf\">es_tauf</a></code>,\n      <code><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#es_taupf\">es_taupf</a></code>,\n      <code><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#geodesic_\">geodesic_</a></code>,\n      <code><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#hartzell4\">hartzell4</a></code>,\n      <code><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#height4\">height4</a></code>,\n      <code><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#m2degrees\">m2degrees</a></code>,\n      <code><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#m2radians\">m2radians</a></code>,\n      <code><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#radians2m\">radians2m</a></code>,\n      <code><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#rhumb_\">rhumb_</a></code>,\n      <code><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#roc1_\">roc1_</a></code>,\n      <code><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#roc2\">roc2</a></code>,\n      <code><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#roc2_\">roc2_</a></code>,\n      <code><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#rocAzimuth\">rocAzimuth</a></code>,\n      <code><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#rocBearing\">rocBearing</a></code>,\n      <code><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#rocGauss\">rocGauss</a></code>,\n      <code><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#rocMean\">rocMean</a></code>,\n      <code><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#rocMeridional\">rocMeridional</a></code>,\n      <code><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#rocPrimeVertical\">rocPrimeVertical</a></code>,\n      <code><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#rocTransverse\">rocTransverse</a></code>,\n      <code><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#toEllipse\">toEllipse</a></code>,\n      <code><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#toEllipsoid2\">toEllipsoid2</a></code>,\n      <code><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#toTriaxial\">toTriaxial</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedEnumItem-class.html\">named._NamedEnumItem</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedEnumItem-class.html#unregister\">unregister</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#others\">others</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#toRepr\">toRepr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">Ellipsoid</a></code></b>:\n      <code><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#A\">A</a></code>,\n      <code><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#AlphaKs\">AlphaKs</a></code>,\n      <code><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#BetaKs\">BetaKs</a></code>,\n      <code><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#KsOrder\">KsOrder</a></code>,\n      <code><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#L\">L</a></code>,\n      <code><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#R1\">R1</a></code>,\n      <code><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#R2\">R2</a></code>,\n      <code><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#R2x\">R2x</a></code>,\n      <code><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#R3\">R3</a></code>,\n      <code><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#Rauthalic\">Rauthalic</a></code>,\n      <code><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#Rauthalicx\">Rauthalicx</a></code>,\n      <code><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#Rbiaxial\">Rbiaxial</a></code>,\n      <code><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#Requatorial\">Requatorial</a></code>,\n      <code><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#Rgeometric\">Rgeometric</a></code>,\n      <code><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#Rmean\">Rmean</a></code>,\n      <code><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#Rpolar\">Rpolar</a></code>,\n      <code><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#Rquadratic\">Rquadratic</a></code>,\n      <code><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#Rr\">Rr</a></code>,\n      <code><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#Rrectifying\">Rrectifying</a></code>,\n      <code><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#Rs\">Rs</a></code>,\n      <code><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#Rtriaxial\">Rtriaxial</a></code>,\n      <code><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#Rvolumetric\">Rvolumetric</a></code>,\n      <code><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#a\">a</a></code>,\n      <code><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#a2\">a2</a></code>,\n      <code><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#a2_\">a2_</a></code>,\n      <code><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#a2_b\">a2_b</a></code>,\n      <code><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#a2_b2\">a2_b2</a></code>,\n      <code><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#a_b\">a_b</a></code>,\n      <code><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#a_f\">a_f</a></code>,\n      <code><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#a_f2\">a_f2</a></code>,\n      <code><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#area\">area</a></code>,\n      <code><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#areax\">areax</a></code>,\n      <code><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#b\">b</a></code>,\n      <code><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#b2\">b2</a></code>,\n      <code><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#b2_a\">b2_a</a></code>,\n      <code><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#b2_a2\">b2_a2</a></code>,\n      <code><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#b_a\">b_a</a></code>,\n      <code><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#c\">c</a></code>,\n      <code><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#c2\">c2</a></code>,\n      <code><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#c2x\">c2x</a></code>,\n      <code><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#e\">e</a></code>,\n      <code><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#e12\">e12</a></code>,\n      <code><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#e2\">e2</a></code>,\n      <code><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#e21\">e21</a></code>,\n      <code><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#e22\">e22</a></code>,\n      <code><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#e22abs\">e22abs</a></code>,\n      <code><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#e2abs\">e2abs</a></code>,\n      <code><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#e32\">e32</a></code>,\n      <code><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#e32abs\">e32abs</a></code>,\n      <code><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#e4\">e4</a></code>,\n      <code><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#eccentricity\">eccentricity</a></code>,\n      <code><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#eccentricity1st2\">eccentricity1st2</a></code>,\n      <code><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#eccentricity2nd2\">eccentricity2nd2</a></code>,\n      <code><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#eccentricity3rd2\">eccentricity3rd2</a></code>,\n      <code><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#equatoradius\">equatoradius</a></code>,\n      <code><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#equatorimeter\">equatorimeter</a></code>,\n      <code><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#es\">es</a></code>,\n      <code><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#es_c\">es_c</a></code>,\n      <code><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#f\">f</a></code>,\n      <code><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#f1\">f1</a></code>,\n      <code><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#f2\">f2</a></code>,\n      <code><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#f_\">f_</a></code>,\n      <code><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#flattening\">flattening</a></code>,\n      <code><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#flattening1st\">flattening1st</a></code>,\n      <code><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#flattening2nd\">flattening2nd</a></code>,\n      <code><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#flattening3rd\">flattening3rd</a></code>,\n      <code><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#geodesic\">geodesic</a></code>,\n      <code><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#geodesicw\">geodesicw</a></code>,\n      <code><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#geodesicx\">geodesicx</a></code>,\n      <code><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#geodsolve\">geodsolve</a></code>,\n      <code><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#isEllipsoidal\">isEllipsoidal</a></code>,\n      <code><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#isOblate\">isOblate</a></code>,\n      <code><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#isProlate\">isProlate</a></code>,\n      <code><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#isSpherical\">isSpherical</a></code>,\n      <code><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#majoradius\">majoradius</a></code>,\n      <code><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#minoradius\">minoradius</a></code>,\n      <code><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#n\">n</a></code>,\n      <code><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#polaradius\">polaradius</a></code>,\n      <code><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#polarimeter\">polarimeter</a></code>,\n      <code><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#quarteradius\">quarteradius</a></code>,\n      <code><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#rhumbaux\">rhumbaux</a></code>,\n      <code><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#rhumbekx\">rhumbekx</a></code>,\n      <code><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#rhumbsolve\">rhumbsolve</a></code>,\n      <code><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#rhumbx\">rhumbx</a></code>,\n      <code><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#rocEquatorial2\">rocEquatorial2</a></code>,\n      <code><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#rocPolar\">rocPolar</a></code>,\n      <code><a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#volume\">volume</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedEnumItem-class.html\">named._NamedEnumItem</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedEnumItem-class.html#name\">name</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">a</span>,\n        <span class=\"sig-arg\">f</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n  class=\"link\">Ellipsoid2</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>a</code></strong> - Equatorial radius, semi-axis (<code>meter</code>) or a previous \n          <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a> instance.</li>\n        <li><strong class=\"pname\"><code>f</code></strong> - Flattening: (<code>float</code> &lt; 1.0, negative for \n          <i>prolate</i>), if <b><code>a</code></b> is in \n          <code>meter</code>.</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional, unique <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>NameError</strong></code> - Ellipsoid with that <b><code>name</code></b> already exists.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>a</code></b> or <b><code>f</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        <code>abs(<b>f</b>) &lt; EPS</code> is forced to \n        <code><b>f</b>=0</code>, <i>spherical</i>. Negative \n        <code><b>f</b></code> produces a <i>prolate</i> ellipsoid.\n      </p>\n</div></td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.ellipsoids.a_f2Tuple-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.ellipsoids.a_f2Tuple</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.ellipsoids-module.html\">Module&nbsp;ellipsoids</a> ::\n        Class&nbsp;a_f2Tuple\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class a_f2Tuple</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n   object --+        \n            |        \n        tuple --+    \n                |    \n   object --+   |    \n            |   |    \n <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n                |    \n<a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a> --+\n                    |\n                   <strong class=\"uidshort\">a_f2Tuple</strong>\n</pre>\n\n<hr />\n<p>2-Tuple <code>(a, f)</code> specifying an ellipsoid by \n  <i>equatorial</i> radius <code>a</code> in <code>meter</code> and scalar \n  <i>flattening</i> <code>f</code>.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Class <a href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n        class=\"link\">Ellipsoid2</a>.\n      </p>\n</div><!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html#ellipsoid\" class=\"summary-sig-name\">ellipsoid</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Return an <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n      class=\"link\">Ellipsoid</a> for this 2-tuple <code>(a, f)</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__delattr__\">__delattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__getattr__\">__getattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__setattr__\">__setattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#items\">items</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iteritems\">iteritems</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iterunits\">iterunits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#reUnit\">reUnit</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toUnits\">toUnits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>tuple</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__eq__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__iter__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__rmul__</code>,\n      <code>count</code>,\n      <code>index</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">a new object with type S, a subtype of T</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html#__new__\" class=\"summary-sig-name\">__new__</a>(<span class=\"summary-sig-arg\">cls</span>,\n        <span class=\"summary-sig-arg\">a</span>,\n        <span class=\"summary-sig-arg\">f</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      New <a href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n      class=\"link\">a_f2Tuple</a> ellipsoid specification.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html#b\" class=\"summary-name\">b</a><br />\n      Get the <i>polar</i> radius (<code>meter</code>), <i class=\"math\">a *\n      (1 - f)</i>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html#f_\" class=\"summary-name\">f_</a><br />\n      Get the <i>inverse</i> flattening (<code>scalar</code>), <i \n      class=\"math\">1 / f</i> == <i class=\"math\">a / (a - b)</i>.\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__new__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__new__</span>&nbsp;(<span class=\"sig-arg\">cls</span>,\n        <span class=\"sig-arg\">a</span>,\n        <span class=\"sig-arg\">f</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n    <br /><em class=\"fname\">Static Method</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n  class=\"link\">a_f2Tuple</a> ellipsoid specification.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>a</code></strong> - Equatorial radius (<code>scalar</code> &gt; 0).</li>\n        <li><strong class=\"pname\"><code>f</code></strong> - Flattening (<code>scalar</code> &lt; 1, negative for \n          <i>prolate</i>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns: a new object with type S, a subtype of T</dt>\n        <dd>An <a href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a><code>(a, f)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.UnitError-class.html\">UnitError</a></strong></code> - Invalid <b><code>a</code></b> or <b><code>f</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__new__\n    </dt>\n  </dl>\n<div class=\"fields\">      <strong>Notes:</strong>\n      <ul class=\"nomargin-top\">\n        <li>\n        <code>abs(<b>f</b>) &lt; </code><a \n        href=\"pygeodesy.constants-module.html#EPS\" class=\"link\">EPS</a> is \n        forced to <code><b>f</b>=0</code>, <i>spherical</i>.\n        </li>\n        <li>\n        Negative <code><b>f</b></code> produces a <i>prolate</i> ellipsoid.\n        </li>\n      </ul>\n</div></td></tr></table>\n</div>\n<a name=\"ellipsoid\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">ellipsoid</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return an <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n  class=\"link\">Ellipsoid</a> for this 2-tuple <code>(a, f)</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>NameError</strong></code> - A registered <code>ellipsoid</code> with the same \n        <b><code>name</code></b> already exists.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"b\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">b</h3>\n  <p>Get the <i>polar</i> radius (<code>meter</code>), <i class=\"math\">a * \n  (1 - f)</i>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">b(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <i>polar</i> radius (<code>meter</code>), <i class=\"math\">a * (1 - \nf)</i>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"f_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">f_</h3>\n  <p>Get the <i>inverse</i> flattening (<code>scalar</code>), <i \n  class=\"math\">1 / f</i> == <i class=\"math\">a / (a - b)</i>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">f_(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <i>inverse</i> flattening (<code>scalar</code>), <i class=\"math\">1 \n/ f</i> == <i class=\"math\">a / (a - b)</i>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.elliptic-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.elliptic</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        Module&nbsp;elliptic\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.elliptic-module.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== MODULE DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Module elliptic</h1><p class=\"nomargin-top\"></p>\n<p><i>Karney</i>'s elliptic integrals and elliptic functions in pure \n  Python.</p>\n  <p>Class <a href=\"pygeodesy.elliptic.Elliptic-class.html\" \n  class=\"link\">Elliptic</a> transcoded from <i>Charles Karney</i>'s C++ \n  class <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1EllipticFunction.html\"\n  target=\"_top\">EllipticFunction</a>, including symmetric integrals <a \n  href=\"pygeodesy.elliptic.Elliptic-class.html#fRC\" \n  class=\"link\">Elliptic.fRC</a>, <a \n  href=\"pygeodesy.elliptic.Elliptic-class.html#fRD\" \n  class=\"link\">Elliptic.fRD</a>, <a \n  href=\"pygeodesy.elliptic.Elliptic-class.html#fRF\" \n  class=\"link\">Elliptic.fRF</a>, <a \n  href=\"pygeodesy.elliptic.Elliptic-class.html#fRG\" \n  class=\"link\">Elliptic.fRG</a> and <a \n  href=\"pygeodesy.elliptic.Elliptic-class.html#fRJ\" \n  class=\"link\">Elliptic.fRJ</a> as <code>static methods</code>.</p>\n  <p>Python method names follow the C++ member functions, \n  <i>except</i>:</p>\n  <ul>\n    <li>\n      member functions <i>without arguments</i> are mapped to Python \n      properties prefixed with <code>&quot;c&quot;</code>, for example \n      <code>E()</code> is property <code>cE</code>,\n    </li>\n    <li>\n      member functions with 1 or 3 arguments are renamed to Python methods \n      starting with an <code>&quot;f&quot;</code>, example \n      <code>E(psi)</code> to <code>fE(psi)</code> and <code>E(sn, cn, \n      dn)</code> to <code>fE(sn, cn, dn)</code>,\n    </li>\n    <li>\n      other Python method names conventionally start with a lower-case \n      letter or an underscore if private.\n    </li>\n  </ul>\n  <p>Following is a copy of <i>Karney</i>'s <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/EllipticFunction_8hpp_source.html\"\n  target=\"_top\">EllipticFunction.hpp</a> file <code>Header</code>.</p>\n  <p>Copyright (C) <a href=\"mailto:Karney@Alum.MIT.edu\" \n  target=\"_top\">Charles Karney</a> (2008-2024) and licensed under the \n  MIT/X11 License.  For more information, see the <a \n  href=\"https://GeographicLib.SourceForge.io\" \n  target=\"_top\">GeographicLib</a> documentation.</p>\n  <p><b>Elliptic integrals and functions.</b></p>\n  <p>This provides the elliptic functions and integrals needed for classes \n  <code>Ellipsoid</code>, <code>GeodesicExact</code>, and \n  <code>TransverseMercatorExact</code>.  Two categories of functions are \n  provided:</p>\n  <ul>\n    <li>\n      functions to compute <a href=\"https://DLMF.NIST.gov/19.16.i\" \n      target=\"_top\">symmetric elliptic integrals</a>\n    </li>\n    <li>\n      methods to compute <a href=\"https://DLMF.NIST.gov/19.2.ii\" \n      target=\"_top\">Legrendre's elliptic integrals</a> and <a \n      href=\"https://DLMF.NIST.gov/22.2\" target=\"_top\">Jacobi elliptic \n      functions</a>.\n    </li>\n  </ul>\n  <p>In the latter case, an object is constructed giving the modulus \n  <code>k</code> (and optionally the parameter <code>alpha</code>).  The \n  modulus (and parameter) are always passed as squares which allows \n  <code>k</code> to be pure imaginary.  (Confusingly, Abramowitz and Stegun\n  call <code>m = k**2</code> the &quot;parameter&quot; and <code>n = \n  alpha**2</code> the &quot;characteristic&quot;.)</p>\n  <p>In geodesic applications, it is convenient to separate the incomplete \n  integrals into secular and periodic components, e.g.</p>\n  <p><i><code>E(phi, k) = (2 E(k) / pi) [ phi + delta E(phi, k) \n  ]</code></i></p>\n  <p>where <i><code>delta E(phi, k)</code></i> is an odd periodic function \n  with period <i><code>pi</code></i>.</p>\n  <p>The computation of the elliptic integrals uses the algorithms given in\n  <a href=\"https://DOI.org/10.1007/BF02198293\" target=\"_top\">B. C. Carlson,\n  Computation of real or complex elliptic integrals</a> (also available <a \n  href=\"https://ArXiv.org/pdf/math/9409227.pdf\" target=\"_top\">here</a>), \n  Numerical Algorithms 10, 13--26 (1995) with the additional optimizations \n  given <a href=\"https://DLMF.NIST.gov/19.36.i\" target=\"_top\">here</a>.</p>\n  <p>The computation of the Jacobi elliptic functions uses the algorithm \n  given in <a href=\"https://DOI.org/10.1007/BF01397975\" target=\"_top\">R. \n  Bulirsch, Numerical Calculation of Elliptic Integrals and Elliptic \n  Functions</a>, Numerische Mathematik 7, 78--90 (1965) or optionally the \n  <code>Jacobi amplitude</code> in method <a \n  href=\"pygeodesy.elliptic.Elliptic-class.html#sncndn\" \n  class=\"link\">Elliptic.sncndn</a>.</p>\n  <p>The notation follows <a href=\"https://DLMF.NIST.gov\" \n  target=\"_top\">NIST Digital Library of Mathematical Functions</a> chapters\n  <a href=\"https://DLMF.NIST.gov/19\" target=\"_top\">19</a> and <a \n  href=\"https://DLMF.NIST.gov/22\" target=\"_top\">22</a>.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Version:</strong>\n        26.02.15\n      </p>\n</div><!-- ==================== CLASSES ==================== -->\n<a name=\"section-Classes\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Classes</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.elliptic.Elliptic-class.html\" class=\"summary-name\">Elliptic</a><br />\n      Elliptic integrals and functions.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.elliptic.EllipticError-class.html\" class=\"summary-name\">EllipticError</a><br />\n      Elliptic function, integral, convergence or other <a \n        href=\"pygeodesy.elliptic.Elliptic-class.html\" \n        class=\"link\">Elliptic</a> issue.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.elliptic.Elliptic3Tuple-class.html\" class=\"summary-name\">Elliptic3Tuple</a><br />\n      3-Tuple <code>(sn, cn, dn)</code> all <code>scalar</code>.\n    </td>\n  </tr>\n</table>\n<!-- ==================== VARIABLES ==================== -->\n<a name=\"section-Variables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Variables</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"__all__\"></a><span class=\"summary-name\">__all__</span> = <code title=\"_ALL_LAZY.elliptic\">_ALL_LAZY.elliptic</code>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.elliptic.Elliptic-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.elliptic.Elliptic</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.elliptic-module.html\">Module&nbsp;elliptic</a> ::\n        Class&nbsp;Elliptic\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.elliptic.Elliptic-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Elliptic</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+    \n           |    \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+\n               |\n              <strong class=\"uidshort\">Elliptic</strong>\n</pre>\n\n<dl><dt>Known Subclasses:</dt>\n<dd>\n      <ul class=\"subclass-list\">\n<li class=\"private\">_Ek</li>  </ul>\n</dd></dl>\n\n<hr />\n<p>Elliptic integrals and functions.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <i>Karney</i>'s <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1EllipticFunction.html#details\"\n        target=\"_top\">Detailed Description</a>.\n      </p>\n</div><!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.elliptic.Elliptic-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">k2</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">alpha2</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">kp2</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">alphap2</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Constructor, specifying the <code>modulus</code> and \n      <code>parameter</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.elliptic.Elliptic-class.html#deltaD\" class=\"summary-sig-name\">deltaD</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">sn</span>,\n        <span class=\"summary-sig-arg\">cn</span>,\n        <span class=\"summary-sig-arg\">dn</span>)</span><br />\n      Jahnke's periodic incomplete elliptic integral.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.elliptic.Elliptic-class.html#deltaE\" class=\"summary-sig-name\">deltaE</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">sn</span>,\n        <span class=\"summary-sig-arg\">cn</span>,\n        <span class=\"summary-sig-arg\">dn</span>)</span><br />\n      The periodic incomplete integral of the second kind.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.elliptic.Elliptic-class.html#deltaEinv\" class=\"summary-sig-name\">deltaEinv</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">stau</span>,\n        <span class=\"summary-sig-arg\">ctau</span>)</span><br />\n      The periodic inverse of the incomplete integral of the second kind.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.elliptic.Elliptic-class.html#deltaF\" class=\"summary-sig-name\">deltaF</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">sn</span>,\n        <span class=\"summary-sig-arg\">cn</span>,\n        <span class=\"summary-sig-arg\">dn</span>)</span><br />\n      The periodic incomplete integral of the first kind.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.elliptic.Elliptic-class.html#deltaG\" class=\"summary-sig-name\">deltaG</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">sn</span>,\n        <span class=\"summary-sig-arg\">cn</span>,\n        <span class=\"summary-sig-arg\">dn</span>)</span><br />\n      Legendre's periodic geodesic longitude integral.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.elliptic.Elliptic-class.html#deltaH\" class=\"summary-sig-name\">deltaH</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">sn</span>,\n        <span class=\"summary-sig-arg\">cn</span>,\n        <span class=\"summary-sig-arg\">dn</span>)</span><br />\n      Cayley's periodic geodesic longitude difference integral.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.elliptic.Elliptic-class.html#deltaPi\" class=\"summary-sig-name\">deltaPi</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">sn</span>,\n        <span class=\"summary-sig-arg\">cn</span>,\n        <span class=\"summary-sig-arg\">dn</span>)</span><br />\n      The periodic incomplete integral of the third kind.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.elliptic.Elliptic-class.html#fD\" class=\"summary-sig-name\">fD</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">phi_or_sn</span>,\n        <span class=\"summary-sig-arg\">cn</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">dn</span>=<span class=\"summary-sig-default\">None</span>)</span><br />\n      Jahnke's incomplete elliptic integral in terms of Jacobi elliptic \n      functions.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.elliptic.Elliptic-class.html#fDelta\" class=\"summary-sig-name\">fDelta</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">sn</span>,\n        <span class=\"summary-sig-arg\">cn</span>)</span><br />\n      The <code>Delta</code> amplitude function.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.elliptic.Elliptic-class.html#fE\" class=\"summary-sig-name\">fE</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">phi_or_sn</span>,\n        <span class=\"summary-sig-arg\">cn</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">dn</span>=<span class=\"summary-sig-default\">None</span>)</span><br />\n      The incomplete integral of the second kind in terms of Jacobi \n      elliptic functions.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.elliptic.Elliptic-class.html#fEd\" class=\"summary-sig-name\">fEd</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">deg</span>)</span><br />\n      The incomplete integral of the second kind with the argument given in\n      <code>degrees</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.elliptic.Elliptic-class.html#fEinv\" class=\"summary-sig-name\">fEinv</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">x</span>)</span><br />\n      The inverse of the incomplete integral of the second kind.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.elliptic.Elliptic-class.html#fF\" class=\"summary-sig-name\">fF</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">phi_or_sn</span>,\n        <span class=\"summary-sig-arg\">cn</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">dn</span>=<span class=\"summary-sig-default\">None</span>)</span><br />\n      The incomplete integral of the first kind in terms of Jacobi elliptic\n      functions.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.elliptic.Elliptic-class.html#fG\" class=\"summary-sig-name\">fG</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">phi_or_sn</span>,\n        <span class=\"summary-sig-arg\">cn</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">dn</span>=<span class=\"summary-sig-default\">None</span>)</span><br />\n      Legendre's geodesic longitude integral in terms of Jacobi elliptic \n      functions.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.elliptic.Elliptic-class.html#fH\" class=\"summary-sig-name\">fH</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">phi_or_sn</span>,\n        <span class=\"summary-sig-arg\">cn</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">dn</span>=<span class=\"summary-sig-default\">None</span>)</span><br />\n      Cayley's geodesic longitude difference integral in terms of Jacobi \n      elliptic functions.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.elliptic.Elliptic-class.html#fPi\" class=\"summary-sig-name\">fPi</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">phi_or_sn</span>,\n        <span class=\"summary-sig-arg\">cn</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">dn</span>=<span class=\"summary-sig-default\">None</span>)</span><br />\n      The incomplete integral of the third kind in terms of Jacobi elliptic\n      functions.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.elliptic.Elliptic-class.html#reset\" class=\"summary-sig-name\">reset</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">k2</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">alpha2</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">kp2</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">alphap2</span>=<span class=\"summary-sig-default\">None</span>)</span><br />\n      Reset the modulus, parameter and the complementaries.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.elliptic.Elliptic-class.html#sncndn\" class=\"summary-sig-name\">sncndn</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">x</span>,\n        <span class=\"summary-sig-arg\">jam</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      The Jacobi amplitude and elliptic function.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.elliptic.Elliptic-class.html#fRC\" class=\"summary-sig-name\">fRC</a>(<span class=\"summary-sig-arg\">x</span>,\n        <span class=\"summary-sig-arg\">y</span>)</span><br />\n      Degenerate symmetric integral of the first kind <code>RC(x, \n      y)</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.elliptic.Elliptic-class.html#fRD\" class=\"summary-sig-name\">fRD</a>(<span class=\"summary-sig-arg\">x</span>,\n        <span class=\"summary-sig-arg\">y</span>,\n        <span class=\"summary-sig-arg\">z</span>,\n        <span class=\"summary-sig-arg\">*over</span>)</span><br />\n      Degenerate symmetric integral of the third kind <code>RD(x, y, \n      z)</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.elliptic.Elliptic-class.html#fRF\" class=\"summary-sig-name\">fRF</a>(<span class=\"summary-sig-arg\">x</span>,\n        <span class=\"summary-sig-arg\">y</span>,\n        <span class=\"summary-sig-arg\">z</span>=<span class=\"summary-sig-default\">0</span>)</span><br />\n      Symmetric or complete symmetric integral of the first kind \n      <code>RF(x, y, z)</code> respectively <code>RF(x, y)</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.elliptic.Elliptic-class.html#fRG\" class=\"summary-sig-name\">fRG</a>(<span class=\"summary-sig-arg\">x</span>,\n        <span class=\"summary-sig-arg\">y</span>,\n        <span class=\"summary-sig-arg\">z</span>=<span class=\"summary-sig-default\">0</span>)</span><br />\n      Symmetric or complete symmetric integral of the second kind \n      <code>RG(x, y, z)</code> respectively <code>RG(x, y)</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.elliptic.Elliptic-class.html#fRJ\" class=\"summary-sig-name\">fRJ</a>(<span class=\"summary-sig-arg\">x</span>,\n        <span class=\"summary-sig-arg\">y</span>,\n        <span class=\"summary-sig-arg\">z</span>,\n        <span class=\"summary-sig-arg\">P</span>)</span><br />\n      Symmetric integral of the third kind <code>RJ(x, y, z, P)</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.elliptic.Elliptic-class.html#alpha2\" class=\"summary-name\">alpha2</a><br />\n      Get &#945;^2, the square of the parameter (<code>float</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.elliptic.Elliptic-class.html#alphap2\" class=\"summary-name\">alphap2</a><br />\n      Get &#945;'^2, the square of the complementary parameter \n      (<code>float</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.elliptic.Elliptic-class.html#cD\" class=\"summary-name\">cD</a><br />\n      Get Jahnke's complete integral <code>D(k)</code> \n      (<code>float</code>), <a href=\"https://DLMF.NIST.gov/19.2.E6\" \n      target=\"_top\">defined</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.elliptic.Elliptic-class.html#cE\" class=\"summary-name\">cE</a><br />\n      Get the complete integral of the second kind <code>E(k)</code> \n      (<code>float</code>), <a href=\"https://DLMF.NIST.gov/19.2.E5\" \n      target=\"_top\">defined</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.elliptic.Elliptic-class.html#cG\" class=\"summary-name\">cG</a><br />\n      Get Legendre's complete geodesic longitude integral <code>G(&#945;^2, \n      k)</code> (<code>float</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.elliptic.Elliptic-class.html#cH\" class=\"summary-name\">cH</a><br />\n      Get Cayley's complete geodesic longitude difference integral \n      <code>H(&#945;^2, k)</code> (<code>float</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.elliptic.Elliptic-class.html#cK\" class=\"summary-name\">cK</a><br />\n      Get the complete integral of the first kind <code>K(k)</code> \n      (<code>float</code>), <a href=\"https://DLMF.NIST.gov/19.2.E4\" \n      target=\"_top\">defined</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.elliptic.Elliptic-class.html#cKE\" class=\"summary-name\">cKE</a><br />\n      Get the difference between the complete integrals of the first and \n      second kinds, <code>K(k) &#8722; E(k)</code> (<code>float</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.elliptic.Elliptic-class.html#cPi\" class=\"summary-name\">cPi</a><br />\n      Get the complete integral of the third kind <code>Pi(&#945;^2, k)</code> \n      (<code>float</code>), <a href=\"https://DLMF.NIST.gov/19.2.E7\" \n      target=\"_top\">defined</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.elliptic.Elliptic-class.html#eps\" class=\"summary-name\">eps</a><br />\n      Get epsilon (<code>float</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.elliptic.Elliptic-class.html#k2\" class=\"summary-name\">k2</a><br />\n      Get k^2, the square of the modulus (<code>float</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.elliptic.Elliptic-class.html#kp2\" class=\"summary-name\">kp2</a><br />\n      Get k'^2, the square of the complementary modulus \n      (<code>float</code>).\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">k2</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">alpha2</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">kp2</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">alphap2</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Constructor, specifying the <code>modulus</code> and \n  <code>parameter</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <a href=\"pygeodesy.elliptic.Elliptic-class.html#reset\" \n        class=\"link\">Elliptic.reset</a> for further details.\n      </p>\n      <p><strong>Note:</strong>\n        If only elliptic integrals of the first and second kinds are \n        needed, use <code><b>alpha2</b>=0</code>, the default value.  In \n        that case, we have <code>&#928;(&#966;, 0, k) = F(&#966;, k), G(&#966;, 0, k) = E(&#966;, \n        k)</code> and <code>H(&#966;, 0, k) = F(&#966;, k) - D(&#966;, k)</code>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"deltaD\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">deltaD</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">sn</span>,\n        <span class=\"sig-arg\">cn</span>,\n        <span class=\"sig-arg\">dn</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Jahnke's periodic incomplete elliptic integral.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>sn</code></strong> - sin(&#966;).</li>\n        <li><strong class=\"pname\"><code>cn</code></strong> - cos(&#966;).</li>\n        <li><strong class=\"pname\"><code>dn</code></strong> - sqrt(1 &#8722; k2 * sin(2&#966;)).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Periodic function &#960; D(&#966;, k) / (2 D(k)) - &#966; (<code>float</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.elliptic.EllipticError-class.html\">EllipticError</a></strong></code> - Invalid invokation or no convergence.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"deltaE\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">deltaE</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">sn</span>,\n        <span class=\"sig-arg\">cn</span>,\n        <span class=\"sig-arg\">dn</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>The periodic incomplete integral of the second kind.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>sn</code></strong> - sin(&#966;).</li>\n        <li><strong class=\"pname\"><code>cn</code></strong> - cos(&#966;).</li>\n        <li><strong class=\"pname\"><code>dn</code></strong> - sqrt(1 &#8722; k2 * sin(2&#966;)).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Periodic function &#960; E(&#966;, k) / (2 E(k)) - &#966; (<code>float</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.elliptic.EllipticError-class.html\">EllipticError</a></strong></code> - Invalid invokation or no convergence.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"deltaEinv\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">deltaEinv</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">stau</span>,\n        <span class=\"sig-arg\">ctau</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>The periodic inverse of the incomplete integral of the second \n  kind.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>stau</code></strong> - sin(&#964;)</li>\n        <li><strong class=\"pname\"><code>ctau</code></strong> - cos(&#964;)</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Periodic function E^&#8722;1(&#964; (2 E(k)/&#960;), k) - &#964; (<code>float</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.elliptic.EllipticError-class.html\">EllipticError</a></strong></code> - No convergence.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"deltaF\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">deltaF</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">sn</span>,\n        <span class=\"sig-arg\">cn</span>,\n        <span class=\"sig-arg\">dn</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>The periodic incomplete integral of the first kind.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>sn</code></strong> - sin(&#966;).</li>\n        <li><strong class=\"pname\"><code>cn</code></strong> - cos(&#966;).</li>\n        <li><strong class=\"pname\"><code>dn</code></strong> - sqrt(1 &#8722; k2 * sin(2&#966;)).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Periodic function &#960; F(&#966;, k) / (2 K(k)) - &#966; (<code>float</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.elliptic.EllipticError-class.html\">EllipticError</a></strong></code> - Invalid invokation or no convergence.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"deltaG\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">deltaG</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">sn</span>,\n        <span class=\"sig-arg\">cn</span>,\n        <span class=\"sig-arg\">dn</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Legendre's periodic geodesic longitude integral.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>sn</code></strong> - sin(&#966;).</li>\n        <li><strong class=\"pname\"><code>cn</code></strong> - cos(&#966;).</li>\n        <li><strong class=\"pname\"><code>dn</code></strong> - sqrt(1 &#8722; k2 * sin(2&#966;)).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Periodic function &#960; G(&#966;, k) / (2 G(k)) - &#966; (<code>float</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.elliptic.EllipticError-class.html\">EllipticError</a></strong></code> - Invalid invokation or no convergence.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"deltaH\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">deltaH</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">sn</span>,\n        <span class=\"sig-arg\">cn</span>,\n        <span class=\"sig-arg\">dn</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Cayley's periodic geodesic longitude difference integral.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>sn</code></strong> - sin(&#966;).</li>\n        <li><strong class=\"pname\"><code>cn</code></strong> - cos(&#966;).</li>\n        <li><strong class=\"pname\"><code>dn</code></strong> - sqrt(1 &#8722; k2 * sin(2&#966;)).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Periodic function &#960; H(&#966;, k) / (2 H(k)) - &#966; (<code>float</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.elliptic.EllipticError-class.html\">EllipticError</a></strong></code> - Invalid invokation or no convergence.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"deltaPi\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">deltaPi</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">sn</span>,\n        <span class=\"sig-arg\">cn</span>,\n        <span class=\"sig-arg\">dn</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>The periodic incomplete integral of the third kind.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>sn</code></strong> - sin(&#966;).</li>\n        <li><strong class=\"pname\"><code>cn</code></strong> - cos(&#966;).</li>\n        <li><strong class=\"pname\"><code>dn</code></strong> - sqrt(1 &#8722; k2 * sin(2&#966;)).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Periodic function &#960; &#928;(&#966;, &#945;2, k) / (2 &#928;(&#945;2, k)) - &#966; \n          (<code>float</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.elliptic.EllipticError-class.html\">EllipticError</a></strong></code> - Invalid invokation or no convergence.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"fD\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">fD</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">phi_or_sn</span>,\n        <span class=\"sig-arg\">cn</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">dn</span>=<span class=\"sig-default\">None</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Jahnke's incomplete elliptic integral in terms of Jacobi elliptic \n  functions.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>phi_or_sn</code></strong> - &#966; or sin(&#966;).</li>\n        <li><strong class=\"pname\"><code>cn</code></strong> - <code>None</code> or cos(&#966;).</li>\n        <li><strong class=\"pname\"><code>dn</code></strong> - <code>None</code> or sqrt(1 &#8722; k2 * sin(2&#966;)).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>D(&#966;, k) as though &#966; &#8712; (&#8722;&#960;, &#960;] (<code>float</code>), <a \n          href=\"https://DLMF.NIST.gov/19.2.E4\" target=\"_top\">defined</a>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.elliptic.EllipticError-class.html\">EllipticError</a></strong></code> - Invalid invokation or no convergence.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"fDelta\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">fDelta</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">sn</span>,\n        <span class=\"sig-arg\">cn</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>The <code>Delta</code> amplitude function.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>sn</code></strong> - sin(&#966;).</li>\n        <li><strong class=\"pname\"><code>cn</code></strong> - cos(&#966;).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>sqrt(1 &#8722; k2 * sin(2&#966;)) (<code>float</code>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"fE\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">fE</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">phi_or_sn</span>,\n        <span class=\"sig-arg\">cn</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">dn</span>=<span class=\"sig-default\">None</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>The incomplete integral of the second kind in terms of Jacobi elliptic\n  functions.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>phi_or_sn</code></strong> - &#966; or sin(&#966;).</li>\n        <li><strong class=\"pname\"><code>cn</code></strong> - <code>None</code> or cos(&#966;).</li>\n        <li><strong class=\"pname\"><code>dn</code></strong> - <code>None</code> or sqrt(1 &#8722; k2 * sin(2&#966;)).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>E(&#966;, k) as though &#966; &#8712; (&#8722;&#960;, &#960;] (<code>float</code>), <a \n          href=\"https://DLMF.NIST.gov/19.2.E5\" target=\"_top\">defined</a>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.elliptic.EllipticError-class.html\">EllipticError</a></strong></code> - Invalid invokation or no convergence.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"fEd\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">fEd</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">deg</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>The incomplete integral of the second kind with the argument given in \n  <code>degrees</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>deg</code></strong> - Angle (<code>degrees</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>E(&#960; <b><code>deg</code></b> / 180, k) (<code>float</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.elliptic.EllipticError-class.html\">EllipticError</a></strong></code> - No convergence.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"fEinv\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">fEinv</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">x</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>The inverse of the incomplete integral of the second kind.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>x</code></strong> - Argument (<code>float</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>&#966; = 1 / E(<b><code>x</code></b>, k), such that E(&#966;, k) = \n          <b><code>x</code></b> (<code>float</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.elliptic.EllipticError-class.html\">EllipticError</a></strong></code> - No convergence.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"fF\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">fF</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">phi_or_sn</span>,\n        <span class=\"sig-arg\">cn</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">dn</span>=<span class=\"sig-default\">None</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>The incomplete integral of the first kind in terms of Jacobi elliptic \n  functions.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>phi_or_sn</code></strong> - &#966; or sin(&#966;).</li>\n        <li><strong class=\"pname\"><code>cn</code></strong> - <code>None</code> or cos(&#966;).</li>\n        <li><strong class=\"pname\"><code>dn</code></strong> - <code>None</code> or sqrt(1 &#8722; k2 * sin(2&#966;)).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>F(&#966;, k) as though &#966; &#8712; (&#8722;&#960;, &#960;] (<code>float</code>), <a \n          href=\"https://DLMF.NIST.gov/19.2.E4\" target=\"_top\">defined</a>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.elliptic.EllipticError-class.html\">EllipticError</a></strong></code> - Invalid invokation or no convergence.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"fG\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">fG</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">phi_or_sn</span>,\n        <span class=\"sig-arg\">cn</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">dn</span>=<span class=\"sig-default\">None</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Legendre's geodesic longitude integral in terms of Jacobi elliptic \n  functions.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>phi_or_sn</code></strong> - &#966; or sin(&#966;).</li>\n        <li><strong class=\"pname\"><code>cn</code></strong> - <code>None</code> or cos(&#966;).</li>\n        <li><strong class=\"pname\"><code>dn</code></strong> - <code>None</code> or sqrt(1 &#8722; k2 * sin(2&#966;)).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>G(&#966;, k) as though &#966; &#8712; (&#8722;&#960;, &#960;] (<code>float</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.elliptic.EllipticError-class.html\">EllipticError</a></strong></code> - Invalid invokation or no convergence.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        Legendre expresses the longitude of a point on the geodesic in \n        terms of this combination of elliptic integrals in <a \n        href=\"https://Books.Google.com/books?id=riIOAAAAQAAJ&amp;pg=PA181\" \n        target=\"_top\">Exercices de Calcul Int&#233;gral, Vol 1 (1811), P \n        181</a>.\n      </p>\n      <p><strong>See Also:</strong>\n        <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/geodesic.html#geodellip\"\n        target=\"_top\">Geodesics in terms of elliptic integrals</a> for the \n        expression for the longitude in terms of this function.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"fH\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">fH</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">phi_or_sn</span>,\n        <span class=\"sig-arg\">cn</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">dn</span>=<span class=\"sig-default\">None</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Cayley's geodesic longitude difference integral in terms of Jacobi \n  elliptic functions.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>phi_or_sn</code></strong> - &#966; or sin(&#966;).</li>\n        <li><strong class=\"pname\"><code>cn</code></strong> - <code>None</code> or cos(&#966;).</li>\n        <li><strong class=\"pname\"><code>dn</code></strong> - <code>None</code> or sqrt(1 &#8722; k2 * sin(2&#966;)).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>H(&#966;, k) as though &#966; &#8712; (&#8722;&#960;, &#960;] (<code>float</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.elliptic.EllipticError-class.html\">EllipticError</a></strong></code> - Invalid invokation or no convergence.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        Cayley expresses the longitude difference of a point on the \n        geodesic in terms of this combination of elliptic integrals in <a \n        href=\"https://Books.Google.com/books?id=Zk0wAAAAIAAJ&amp;pg=PA333\" \n        target=\"_top\">Phil. Mag. <b>40</b> (1870), P 333</a>.\n      </p>\n      <p><strong>See Also:</strong>\n        <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/geodesic.html#geodellip\"\n        target=\"_top\">Geodesics in terms of elliptic integrals</a> for the \n        expression for the longitude in terms of this function.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"fPi\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">fPi</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">phi_or_sn</span>,\n        <span class=\"sig-arg\">cn</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">dn</span>=<span class=\"sig-default\">None</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>The incomplete integral of the third kind in terms of Jacobi elliptic \n  functions.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>phi_or_sn</code></strong> - &#966; or sin(&#966;).</li>\n        <li><strong class=\"pname\"><code>cn</code></strong> - <code>None</code> or cos(&#966;).</li>\n        <li><strong class=\"pname\"><code>dn</code></strong> - <code>None</code> or sqrt(1 &#8722; k2 * sin(2&#966;)).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>&#928;(&#966;, &#945;2, k) as though &#966; &#8712; (&#8722;&#960;, &#960;] (<code>float</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.elliptic.EllipticError-class.html\">EllipticError</a></strong></code> - Invalid invokation or no convergence.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"reset\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">reset</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">k2</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">alpha2</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">kp2</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">alphap2</span>=<span class=\"sig-default\">None</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Reset the modulus, parameter and the complementaries.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>k2</code></strong> - Modulus squared (<code>float</code>, NINF &lt;= k^2 &lt;= 1).</li>\n        <li><strong class=\"pname\"><code>alpha2</code></strong> - Parameter squared (<code>float</code>, NINF &lt;= &#945;^2 &lt;= 1).</li>\n        <li><strong class=\"pname\"><code>kp2</code></strong> - Complementary modulus squared (<code>float</code>, k'^2 &gt;= 0).</li>\n        <li><strong class=\"pname\"><code>alphap2</code></strong> - Complementary parameter squared (<code>float</code>, &#945;'^2 &gt;= \n          0).</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.elliptic.EllipticError-class.html\">EllipticError</a></strong></code> - Invalid <b><code>k2</code></b>, <b><code>alpha2</code></b>, \n        <b><code>kp2</code></b> or <b><code>alphap2</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        The arguments must satisfy <code><b>k2</b> + <b>kp2</b> = 1</code> \n        and <code><b>alpha2</b> + <b>alphap2</b> = 1</code>.  No checking \n        is done that these conditions are met to enable accuracy to be \n        maintained, e.g., when <code>k</code> is very close to unity.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"sncndn\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">sncndn</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">x</span>,\n        <span class=\"sig-arg\">jam</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>The Jacobi amplitude and elliptic function.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>x</code></strong> - The argument (<code>float</code>).</li>\n        <li><strong class=\"pname\"><code>jam</code></strong> - If <code>True</code>, use the Jacobi amplitude otherwise \n          Bulirsch' function (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>An <a href=\"pygeodesy.elliptic.Elliptic3Tuple-class.html\" \n          class=\"link\">Elliptic3Tuple</a><code>(sn, cn, dn)</code> with \n          <code>*n(<b>x</b>, k)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.elliptic.EllipticError-class.html\">EllipticError</a></strong></code> - No convergence.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"fRC\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">fRC</span>&nbsp;(<span class=\"sig-arg\">x</span>,\n        <span class=\"sig-arg\">y</span>)</span>\n    <br /><em class=\"fname\">Static Method</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Degenerate symmetric integral of the first kind <code>RC(x, \n  y)</code>.</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd><code>RC(x, y)</code>, equivalent to <code>RF(x, y, y)</code>.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"https://DLMF.NIST.gov/19.2.E17\" \n        target=\"_top\"><code>RC</code> definition</a> and <a \n        href=\"https://ArXiv.org/pdf/math/9409227.pdf\" \n        target=\"_top\">Carlson</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"fRD\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">fRD</span>&nbsp;(<span class=\"sig-arg\">x</span>,\n        <span class=\"sig-arg\">y</span>,\n        <span class=\"sig-arg\">z</span>,\n        <span class=\"sig-arg\">*over</span>)</span>\n    <br /><em class=\"fname\">Static Method</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Degenerate symmetric integral of the third kind <code>RD(x, y, \n  z)</code>.</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd><code>RD(x, y, z) / over</code>, equivalent to <code>RJ(x, y, z, \n          z) / over</code> with <code>over</code> typically 3.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"https://DLMF.NIST.gov/19.16.E5\" \n        target=\"_top\"><code>RD</code> definition</a> and <a \n        href=\"https://ArXiv.org/pdf/math/9409227.pdf\" \n        target=\"_top\">Carlson</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"fRF\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">fRF</span>&nbsp;(<span class=\"sig-arg\">x</span>,\n        <span class=\"sig-arg\">y</span>,\n        <span class=\"sig-arg\">z</span>=<span class=\"sig-default\">0</span>)</span>\n    <br /><em class=\"fname\">Static Method</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Symmetric or complete symmetric integral of the first kind <code>RF(x,\n  y, z)</code> respectively <code>RF(x, y)</code>.</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd><code>RF(x, y, z)</code> or <code>RF(x, y)</code> for missing or \n          zero <b><code>z</code></b>.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"https://DLMF.NIST.gov/19.16.E1\" \n        target=\"_top\"><code>RF</code> definition</a> and <a \n        href=\"https://ArXiv.org/pdf/math/9409227.pdf\" \n        target=\"_top\">Carlson</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"fRG\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">fRG</span>&nbsp;(<span class=\"sig-arg\">x</span>,\n        <span class=\"sig-arg\">y</span>,\n        <span class=\"sig-arg\">z</span>=<span class=\"sig-default\">0</span>)</span>\n    <br /><em class=\"fname\">Static Method</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Symmetric or complete symmetric integral of the second kind \n  <code>RG(x, y, z)</code> respectively <code>RG(x, y)</code>.</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd><code>RG(x, y, z)</code> or <code>RG(x, y)</code> for missing or \n          zero <b><code>z</code></b>.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"https://DLMF.NIST.gov/19.16.E3\" \n        target=\"_top\"><code>RG</code> definition</a>, <a \n        href=\"https://ArXiv.org/pdf/math/9409227.pdf\" \n        target=\"_top\">Carlson</a> and <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/EllipticFunction_8cpp_source.html#l00096\"\n        target=\"_top\">RG</a> version 2.3.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"fRJ\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">fRJ</span>&nbsp;(<span class=\"sig-arg\">x</span>,\n        <span class=\"sig-arg\">y</span>,\n        <span class=\"sig-arg\">z</span>,\n        <span class=\"sig-arg\">P</span>)</span>\n    <br /><em class=\"fname\">Static Method</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Symmetric integral of the third kind <code>RJ(x, y, z, P)</code>.</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd><code>RJ(x, y, z, P)</code>.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"https://DLMF.NIST.gov/19.16.E2\" \n        target=\"_top\"><code>RJ</code> definition</a> and <a \n        href=\"https://ArXiv.org/pdf/math/9409227.pdf\" \n        target=\"_top\">Carlson</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<br />\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"alpha2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">alpha2</h3>\n  <p>Get &#945;^2, the square of the parameter (<code>float</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">alpha2(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get &#945;^2, the square of the parameter (<code>float</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"alphap2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">alphap2</h3>\n  <p>Get &#945;'^2, the square of the complementary parameter \n  (<code>float</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">alphap2(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get &#945;'^2, the square of the complementary parameter (<code>float</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"cD\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">cD</h3>\n  <p>Get Jahnke's complete integral <code>D(k)</code> (<code>float</code>),\n  <a href=\"https://DLMF.NIST.gov/19.2.E6\" target=\"_top\">defined</a>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">cD(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get Jahnke's complete integral <code>D(k)</code> (<code>float</code>), <a \nhref=\"https://DLMF.NIST.gov/19.2.E6\" target=\"_top\">defined</a>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"cE\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">cE</h3>\n  <p>Get the complete integral of the second kind <code>E(k)</code> \n  (<code>float</code>), <a href=\"https://DLMF.NIST.gov/19.2.E5\" \n  target=\"_top\">defined</a>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">cE(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the complete integral of the second kind <code>E(k)</code> \n(<code>float</code>), <a href=\"https://DLMF.NIST.gov/19.2.E5\" \ntarget=\"_top\">defined</a>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"cG\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">cG</h3>\n  <p>Get Legendre's complete geodesic longitude integral <code>G(&#945;^2, \n  k)</code> (<code>float</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">cG(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get Legendre's complete geodesic longitude integral <code>G(&#945;^2, k)</code> \n(<code>float</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"cH\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">cH</h3>\n  <p>Get Cayley's complete geodesic longitude difference integral \n  <code>H(&#945;^2, k)</code> (<code>float</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">cH(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get Cayley's complete geodesic longitude difference integral <code>H(&#945;^2, \nk)</code> (<code>float</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"cK\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">cK</h3>\n  <p>Get the complete integral of the first kind <code>K(k)</code> \n  (<code>float</code>), <a href=\"https://DLMF.NIST.gov/19.2.E4\" \n  target=\"_top\">defined</a>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">cK(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the complete integral of the first kind <code>K(k)</code> \n(<code>float</code>), <a href=\"https://DLMF.NIST.gov/19.2.E4\" \ntarget=\"_top\">defined</a>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"cKE\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">cKE</h3>\n  <p>Get the difference between the complete integrals of the first and \n  second kinds, <code>K(k) &#8722; E(k)</code> (<code>float</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">cKE(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the difference between the complete integrals of the first and second \nkinds, <code>K(k) &#8722; E(k)</code> (<code>float</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"cPi\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">cPi</h3>\n  <p>Get the complete integral of the third kind <code>Pi(&#945;^2, k)</code> \n  (<code>float</code>), <a href=\"https://DLMF.NIST.gov/19.2.E7\" \n  target=\"_top\">defined</a>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">cPi(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the complete integral of the third kind <code>Pi(&#945;^2, k)</code> \n(<code>float</code>), <a href=\"https://DLMF.NIST.gov/19.2.E7\" \ntarget=\"_top\">defined</a>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"eps\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">eps</h3>\n  <p>Get epsilon (<code>float</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">eps(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get epsilon (<code>float</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"k2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">k2</h3>\n  <p>Get k^2, the square of the modulus (<code>float</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">k2(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get k^2, the square of the modulus (<code>float</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"kp2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">kp2</h3>\n  <p>Get k'^2, the square of the complementary modulus \n  (<code>float</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">kp2(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get k'^2, the square of the complementary modulus (<code>float</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.elliptic.Elliptic3Tuple-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.elliptic.Elliptic3Tuple</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.elliptic-module.html\">Module&nbsp;elliptic</a> ::\n        Class&nbsp;Elliptic3Tuple\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.elliptic.Elliptic3Tuple-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Elliptic3Tuple</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n   object --+        \n            |        \n        tuple --+    \n                |    \n   object --+   |    \n            |   |    \n <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n                |    \n<a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a> --+\n                    |\n                   <strong class=\"uidshort\">Elliptic3Tuple</strong>\n</pre>\n\n<hr />\n<p>3-Tuple <code>(sn, cn, dn)</code> all <code>scalar</code>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__delattr__\">__delattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__getattr__\">__getattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__setattr__\">__setattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#items\">items</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iteritems\">iteritems</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iterunits\">iterunits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#reUnit\">reUnit</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toUnits\">toUnits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>tuple</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__eq__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__iter__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__rmul__</code>,\n      <code>count</code>,\n      <code>index</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__new__\">__new__</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.elliptic.EllipticError-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.elliptic.EllipticError</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.elliptic-module.html\">Module&nbsp;elliptic</a> ::\n        Class&nbsp;EllipticError\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.elliptic.EllipticError-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class EllipticError</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n              object --+                    \n                       |                    \nexceptions.BaseException --+                \n                           |                \n        exceptions.Exception --+            \n                               |            \n        exceptions.StandardError --+        \n                                   |        \n               exceptions.ValueError --+    \n                                       |    \n                      errors._ValueError --+\n                                           |\n                                          <strong class=\"uidshort\">EllipticError</strong>\n</pre>\n\n<hr />\n<p>Elliptic function, integral, convergence or other <a \n  href=\"pygeodesy.elliptic.Elliptic-class.html\" class=\"link\">Elliptic</a> \n  issue.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>errors._ValueError</code></b>:\n      <code>__init__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.ValueError</code></b>:\n      <code>__new__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.BaseException</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getslice__</code>,\n      <code>__reduce__</code>,\n      <code>__repr__</code>,\n      <code>__setattr__</code>,\n      <code>__setstate__</code>,\n      <code>__str__</code>,\n      <code>__unicode__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__format__</code>,\n      <code>__hash__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.BaseException</code></b>:\n      <code>args</code>,\n      <code>message</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.epsg-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.epsg</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        Module&nbsp;epsg\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.epsg-module.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== MODULE DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Module epsg</h1><p class=\"nomargin-top\"></p>\n<p>European Petroleum Survey Group (EPSG) en-/decoding.</p>\n  <p>Classes <a href=\"pygeodesy.epsg.Epsg-class.html\" class=\"link\">Epsg</a>\n  and <a href=\"pygeodesy.epsg.EPSGError-class.html\" \n  class=\"link\">EPSGError</a> and functions to <a \n  href=\"pygeodesy.epsg-module.html#encode\" class=\"link\">encode</a> and <a \n  href=\"pygeodesy.epsg-module.html#decode2\" class=\"link\">decode2</a> (<a \n  href=\"https://EPSG.org\" target=\"_top\">EPSG</a>) codes from and to <a \n  href=\"https://WikiPedia.org/wiki/Universal_Transverse_Mercator_coordinate_system\"\n  target=\"_top\">UTM</a> and <a \n  href=\"https://WikiPedia.org/wiki/Universal_polar_stereographic_coordinate_system\"\n  target=\"_top\">UPS</a> zones.</p>\n  <p>A pure Python implementation transcoded from <i>Charles Karney</i>'s \n  C++ class <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1UTMUPS.html\"\n  target=\"_top\">UTMUPS</a>, including coverage of UPS as zone \n  <code>0</code>.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Version:</strong>\n        24.08.05\n      </p>\n</div><!-- ==================== CLASSES ==================== -->\n<a name=\"section-Classes\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Classes</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.epsg.Epsg-class.html\" class=\"summary-name\">Epsg</a><br />\n      <a href=\"https://EPSG.org\" target=\"_top\">EPSG</a> class, a named \n        <code>int</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.epsg.EPSGError-class.html\" class=\"summary-name\">EPSGError</a><br />\n      EPSG encode, decode or other <a \n        href=\"pygeodesy.epsg.Epsg-class.html\" class=\"link\">Epsg</a> issue.\n    </td>\n  </tr>\n</table>\n<!-- ==================== FUNCTIONS ==================== -->\n<a name=\"section-Functions\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Functions</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.epsg-module.html#decode2\" class=\"summary-sig-name\">decode2</a>(<span class=\"summary-sig-arg\">epsg</span>)</span><br />\n      Determine the UTM/USP zone and hemisphere from a given <a \n      href=\"https://EPSG.org\" target=\"_top\">EPSG</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.epsg-module.html#encode\" class=\"summary-sig-name\">encode</a>(<span class=\"summary-sig-arg\">zone</span>,\n        <span class=\"summary-sig-arg\">hemipole</span>=<span class=\"summary-sig-default\">''</span>,\n        <span class=\"summary-sig-arg\">band</span>=<span class=\"summary-sig-default\">''</span>)</span><br />\n      Determine the <a href=\"https://EPSG.org\" target=\"_top\">EPSG</a> code \n      for a given UTM/UPS zone number, hemisphere/pole and/or Band.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== VARIABLES ==================== -->\n<a name=\"section-Variables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Variables</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"__all__\"></a><span class=\"summary-name\">__all__</span> = <code title=\"_ALL_LAZY.epsg\">_ALL_LAZY.epsg</code>\n    </td>\n  </tr>\n</table>\n<!-- ==================== FUNCTION DETAILS ==================== -->\n<a name=\"section-FunctionDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Function Details</span></td>\n</tr>\n</table>\n<a name=\"decode2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">decode2</span>&nbsp;(<span class=\"sig-arg\">epsg</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Determine the UTM/USP zone and hemisphere from a given <a \n  href=\"https://EPSG.org\" target=\"_top\">EPSG</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>epsg</code></strong> - The EPSG (<a href=\"pygeodesy.epsg.Epsg-class.html\" \n          class=\"link\">Epsg</a>, <code>str</code> or <code>scalar</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.namedTuples.UtmUps2Tuple-class.html\" \n          class=\"link\">UtmUps2Tuple</a><code>(zone, hemipole)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.epsg.EPSGError-class.html\">EPSGError</a></strong></code> - Invalid <b><code>epsg</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        Coverage of UPS as zone <code>0</code> follows <i>Karney</i>'s \n        function <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1UTMUPS.html\"\n        target=\"_top\">UTMUPS::DecodeEPSG</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"encode\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">encode</span>&nbsp;(<span class=\"sig-arg\">zone</span>,\n        <span class=\"sig-arg\">hemipole</span>=<span class=\"sig-default\">''</span>,\n        <span class=\"sig-arg\">band</span>=<span class=\"sig-default\">''</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Determine the <a href=\"https://EPSG.org\" target=\"_top\">EPSG</a> code \n  for a given UTM/UPS zone number, hemisphere/pole and/or Band.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>zone</code></strong> - The (longitudinal) UTM zone (<code>int</code>, 1..60) or UPS zone\n          (<code>int</code>, 0) or UTM zone with/-out <i>latitudinal</i> \n          Band letter (<code>str</code>, '01C'..'60X') or UPS zone \n          with/-out <i>polar</i> Band letter (<code>str</code>, '00A', \n          '00B', '00Y' or '00Z').</li>\n        <li><strong class=\"pname\"><code>hemipole</code></strong> - UTM/UPS hemisphere or UPS projection top/center pole \n          (<code>str</code>, <code>'N[orth]'</code> or \n          <code>'S[outh]'</code>).</li>\n        <li><strong class=\"pname\"><code>band</code></strong> - Optional <i>latitudinal</i> UTM or <i>polar</i> UPS Band letter \n          (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>EPSG</code> code (<a href=\"pygeodesy.epsg.Epsg-class.html\" \n          class=\"link\">Epsg</a>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.epsg.EPSGError-class.html\">EPSGError</a></strong></code> - Invalid <b><code>zone</code></b>, <b><code>hemipole</code></b> or \n        <b><code>band</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        Coverage of UPS as zone <code>0</code> follows <i>Karney</i>'s \n        function <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1UTMUPS.html\"\n        target=\"_top\">UTMUPS::EncodeEPSG</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.epsg.EPSGError-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.epsg.EPSGError</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.epsg-module.html\">Module&nbsp;epsg</a> ::\n        Class&nbsp;EPSGError\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.epsg.EPSGError-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class EPSGError</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n              object --+                    \n                       |                    \nexceptions.BaseException --+                \n                           |                \n        exceptions.Exception --+            \n                               |            \n        exceptions.StandardError --+        \n                                   |        \n               exceptions.ValueError --+    \n                                       |    \n                      errors._ValueError --+\n                                           |\n                                          <strong class=\"uidshort\">EPSGError</strong>\n</pre>\n\n<hr />\n<p>EPSG encode, decode or other <a href=\"pygeodesy.epsg.Epsg-class.html\" \n  class=\"link\">Epsg</a> issue.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>errors._ValueError</code></b>:\n      <code>__init__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.ValueError</code></b>:\n      <code>__new__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.BaseException</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getslice__</code>,\n      <code>__reduce__</code>,\n      <code>__repr__</code>,\n      <code>__setattr__</code>,\n      <code>__setstate__</code>,\n      <code>__str__</code>,\n      <code>__unicode__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__format__</code>,\n      <code>__hash__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.BaseException</code></b>:\n      <code>args</code>,\n      <code>message</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.epsg.Epsg-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.epsg.Epsg</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.epsg-module.html\">Module&nbsp;epsg</a> ::\n        Class&nbsp;Epsg\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.epsg.Epsg-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Epsg</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n          object --+        \n                   |        \n                 int --+    \n                       |    \n      object --+       |    \n               |       |    \n    <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+   |    \n                   |   |    \n<a href=\"pygeodesy.unitsBase._NamedUnit-class.html\">unitsBase._NamedUnit</a> --+    \n                       |    \n           <a href=\"pygeodesy.unitsBase.Int-class.html\">unitsBase.Int</a> --+\n                           |\n                          <strong class=\"uidshort\">Epsg</strong>\n</pre>\n\n<hr />\n<p><a href=\"https://EPSG.org\" target=\"_top\">EPSG</a> class, a named \n  <code>int</code>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.epsg.Epsg-class.html#__repr__\" class=\"summary-sig-name\">__repr__</a>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Return a representation of this named <code>int</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.epsg.Epsg-class.html#__str__\" class=\"summary-sig-name\">__str__</a>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Return this <code>Int</code> as standard <code>str</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"utmupsStr\"></a><span class=\"summary-sig-name\">utmupsStr</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">B</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Get the UTM/UPS zone, band and hemisphere/-pole (<code>str</code>).</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase.Int-class.html\">unitsBase.Int</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase.Int-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.unitsBase.Int-class.html#toStr\">toStr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>int</code></b>:\n      <code>__abs__</code>,\n      <code>__add__</code>,\n      <code>__and__</code>,\n      <code>__cmp__</code>,\n      <code>__coerce__</code>,\n      <code>__div__</code>,\n      <code>__divmod__</code>,\n      <code>__float__</code>,\n      <code>__floordiv__</code>,\n      <code>__format__</code>,\n      <code>__getattribute__</code>,\n      <code>__getnewargs__</code>,\n      <code>__hash__</code>,\n      <code>__hex__</code>,\n      <code>__index__</code>,\n      <code>__int__</code>,\n      <code>__invert__</code>,\n      <code>__long__</code>,\n      <code>__lshift__</code>,\n      <code>__mod__</code>,\n      <code>__mul__</code>,\n      <code>__neg__</code>,\n      <code>__nonzero__</code>,\n      <code>__oct__</code>,\n      <code>__or__</code>,\n      <code>__pos__</code>,\n      <code>__pow__</code>,\n      <code>__radd__</code>,\n      <code>__rand__</code>,\n      <code>__rdiv__</code>,\n      <code>__rdivmod__</code>,\n      <code>__rfloordiv__</code>,\n      <code>__rlshift__</code>,\n      <code>__rmod__</code>,\n      <code>__rmul__</code>,\n      <code>__ror__</code>,\n      <code>__rpow__</code>,\n      <code>__rrshift__</code>,\n      <code>__rshift__</code>,\n      <code>__rsub__</code>,\n      <code>__rtruediv__</code>,\n      <code>__rxor__</code>,\n      <code>__sub__</code>,\n      <code>__truediv__</code>,\n      <code>__trunc__</code>,\n      <code>__xor__</code>,\n      <code>bit_length</code>,\n      <code>conjugate</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">a new object with type S, a subtype of T</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.epsg.Epsg-class.html#__new__\" class=\"summary-sig-name\">__new__</a>(<span class=\"summary-sig-arg\">cls</span>,\n        <span class=\"summary-sig-arg\">eisu</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      New <a href=\"pygeodesy.epsg.Epsg-class.html\" class=\"link\">Epsg</a> \n      (<i>European Petroleum Survey Group</i>) code from a UTM/USP \n      coordinate or other EPSG code.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.epsg.Epsg-class.html#band\" class=\"summary-name\">band</a><br />\n      Get the <i>latitudinal</i> UTM or <i>polar</i> UPS Band \n      (<code>'A'|'B'|'C'|'D'|..|'W'|'X'|'Y'|'Z'</code> or \n      <code>&quot;&quot;</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.epsg.Epsg-class.html#hemisphere\" class=\"summary-name\">hemisphere</a><br />\n      Get the UTM/UPS hemisphere/-pole (<code>'N'|'S'</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.epsg.Epsg-class.html#utmups\" class=\"summary-name\">utmups</a><br />\n      Get the UTM/UPS original (<a href=\"pygeodesy.utm.Utm-class.html\" \n      class=\"link\">Utm</a>, <a href=\"pygeodesy.ups.Ups-class.html\" \n      class=\"link\">Ups</a>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.epsg.Epsg-class.html#zone\" class=\"summary-name\">zone</a><br />\n      Get the (longitudinal) UTM/UPS zone (<code>int</code>, \n      <code>1..60</code> for UTM, <code>0</code> for UPS).\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>int</code></b>:\n      <code>denominator</code>,\n      <code>imag</code>,\n      <code>numerator</code>,\n      <code>real</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html\">unitsBase._NamedUnit</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html#std_repr\">std_repr</a></code>,\n      <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__new__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__new__</span>&nbsp;(<span class=\"sig-arg\">cls</span>,\n        <span class=\"sig-arg\">eisu</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n    <br /><em class=\"fname\">Static Method</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.epsg.Epsg-class.html\" class=\"link\">Epsg</a> \n  (<i>European Petroleum Survey Group</i>) code from a UTM/USP coordinate \n  or other EPSG code.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>eisu</code></strong> - Other code (<a href=\"pygeodesy.epsg.Epsg-class.html\" \n          class=\"link\">Epsg</a>, <code>int</code>, <code>str</code>, <a \n          href=\"pygeodesy.utm.Utm-class.html\" class=\"link\">Utm</a> or <a \n          href=\"pygeodesy.ups.Ups-class.html\" class=\"link\">Ups</a>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns: a new object with type S, a subtype of T</dt>\n        <dd>New <a href=\"pygeodesy.epsg.Epsg-class.html\" \n          class=\"link\">Epsg</a>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>eisu</code></b>.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.epsg.EPSGError-class.html\">EPSGError</a></strong></code> - Invalid <b><code>eisu</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__new__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__repr__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__repr__</span>&nbsp;(<span class=\"sig-arg\">self</span>)</span>\n    <br /><em class=\"fname\">(Representation operator)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return a representation of this named <code>int</code>.</p>\n  <dl class=\"fields\">\n    <dt>Overrides:\n        object.__repr__\n        <dd><em class=\"note\">(inherited documentation)</em></dd>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__str__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__str__</span>&nbsp;(<span class=\"sig-arg\">self</span>)</span>\n    <br /><em class=\"fname\">(Informal representation operator)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return this <code>Int</code> as standard <code>str</code>.</p>\n  <dl class=\"fields\">\n    <dt>Overrides:\n        object.__str__\n        <dd><em class=\"note\">(inherited documentation)</em></dd>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"band\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">band</h3>\n  <p>Get the <i>latitudinal</i> UTM or <i>polar</i> UPS Band \n  (<code>'A'|'B'|'C'|'D'|..|'W'|'X'|'Y'|'Z'</code> or \n  <code>&quot;&quot;</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">band(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <i>latitudinal</i> UTM or <i>polar</i> UPS Band \n(<code>'A'|'B'|'C'|'D'|..|'W'|'X'|'Y'|'Z'</code> or \n<code>&quot;&quot;</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"hemisphere\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">hemisphere</h3>\n  <p>Get the UTM/UPS hemisphere/-pole (<code>'N'|'S'</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">hemisphere(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the UTM/UPS hemisphere/-pole (<code>'N'|'S'</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"utmups\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">utmups</h3>\n  <p>Get the UTM/UPS original (<a href=\"pygeodesy.utm.Utm-class.html\" \n  class=\"link\">Utm</a>, <a href=\"pygeodesy.ups.Ups-class.html\" \n  class=\"link\">Ups</a>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">utmups(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the UTM/UPS original (<a href=\"pygeodesy.utm.Utm-class.html\" \nclass=\"link\">Utm</a>, <a href=\"pygeodesy.ups.Ups-class.html\" \nclass=\"link\">Ups</a>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"zone\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">zone</h3>\n  <p>Get the (longitudinal) UTM/UPS zone (<code>int</code>, \n  <code>1..60</code> for UTM, <code>0</code> for UPS).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">zone(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the (longitudinal) UTM/UPS zone (<code>int</code>, <code>1..60</code> \nfor UTM, <code>0</code> for UPS).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.errors-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.errors</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        Module&nbsp;errors\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.errors-module.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== MODULE DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Module errors</h1><p class=\"nomargin-top\"></p>\n<p>Errors, exceptions, exception formatting and exception chaining.</p>\n  <p>Error, exception classes and functions to format PyGeodesy errors, \n  including the setting of <i>exception chaining</i> for Python 3.9+.</p>\n  <p>By default, <i>exception chaining</i> is turned <i>off</i>.  To enable\n  <i>exception chaining</i>, use command line option <code>python -X \n  dev</code> <i>OR</i> set env variable <code>PYTHONDEVMODE=1</code> or to \n  any non-empty string <i>OR</i> set env variable \n  <code>PYGEODESY_EXCEPTION_CHAINING=std</code> or to any non-empty \n  string.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Version:</strong>\n        26.02.12\n      </p>\n</div><!-- ==================== CLASSES ==================== -->\n<a name=\"section-Classes\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Classes</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.errors.AuxError-class.html\" class=\"summary-name\">AuxError</a><br />\n      Error raised for a <a href=\"pygeodesy.rhumb.aux_-module.html\" \n        class=\"link\" onclick=\"show_private();\">rhumb.aux_</a>, \n        <code>Aux</code>, <code>AuxDLat</code> or <code>AuxLat</code> \n        issue.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.errors.ClipError-class.html\" class=\"summary-name\">ClipError</a><br />\n      Clip box or clip region issue.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.errors.CrossError-class.html\" class=\"summary-name\">CrossError</a><br />\n      Error raised for zero or near-zero vectorial cross products, \n        occurring for coincident or colinear points, lines or bearings.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.errors.GeodesicError-class.html\" class=\"summary-name\">GeodesicError</a><br />\n      Error raised for convergence or other issues in <a \n        href=\"pygeodesy.geodesicx-module.html\" class=\"link\">geodesicx</a>, \n        <a href=\"pygeodesy.geodesicw-module.html\" \n        class=\"link\">geodesicw</a>, <a \n        href=\"pygeodesy.geodsolve-module.html\" class=\"link\">geodsolve</a> \n        or <a href=\"pygeodesy.karney-module.html\" class=\"link\">karney</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.errors.IntersectionError-class.html\" class=\"summary-name\">IntersectionError</a><br />\n      Error raised for line or circle intersection issues.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.errors.LenError-class.html\" class=\"summary-name\">LenError</a><br />\n      Error raised for mis-matching <code>len</code> values.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.errors.LimitError-class.html\" class=\"summary-name\">LimitError</a><br />\n      Error raised for lat- or longitudinal values or deltas exceeding \n        the given <b><code>limit</code></b> in functions <a \n        href=\"pygeodesy.formy-module.html#equirectangular\" \n        class=\"link\">equirectangular</a>, <a \n        href=\"pygeodesy.geohash-module.html#equirectangular4\" \n        class=\"link\">equirectangular4</a>, <code>nearestOn*</code> and \n        <code>simplify*</code> or methods with <code>limit</code> or \n        <code>options</code> keyword arguments.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.errors.MGRSError-class.html\" class=\"summary-name\">MGRSError</a><br />\n      Military Grid Reference System (MGRS) parse or other <a \n        href=\"pygeodesy.mgrs.Mgrs-class.html\" class=\"link\">Mgrs</a> issue.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.errors.NumPyError-class.html\" class=\"summary-name\">NumPyError</a><br />\n      Error raised for <code>NumPy</code> issues.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.errors.ParseError-class.html\" class=\"summary-name\">ParseError</a><br />\n      Error parsing degrees, radians or several other formats.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.errors.PointsError-class.html\" class=\"summary-name\">PointsError</a><br />\n      Error for an insufficient number of points.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.errors.RangeError-class.html\" class=\"summary-name\">RangeError</a><br />\n      Error raised for lat- or longitude values outside the \n        <b><code>clip</code></b>, <b><code>clipLat</code></b>, \n        <b><code>clipLon</code></b> in functions <a \n        href=\"pygeodesy.dms-module.html#parse3llh\" \n        class=\"link\">parse3llh</a>, <a \n        href=\"pygeodesy.dms-module.html#parseDMS\" \n        class=\"link\">parseDMS</a>, <a \n        href=\"pygeodesy.dms-module.html#parseDMS2\" \n        class=\"link\">parseDMS2</a> and <a \n        href=\"pygeodesy.dms-module.html#parseRad\" class=\"link\">parseRad</a>\n        or the <b><code>limit</code></b> set with functions <a \n        href=\"pygeodesy.dms-module.html#clipDegrees\" \n        class=\"link\">clipDegrees</a> and <a \n        href=\"pygeodesy.dms-module.html#clipRadians\" \n        class=\"link\">clipRadians</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.errors.RhumbError-class.html\" class=\"summary-name\">RhumbError</a><br />\n      Error raised for a rhumb <a href=\"pygeodesy.rhumb.aux_-module.html\"\n        class=\"link\" onclick=\"show_private();\">aux_</a>, <a \n        href=\"pygeodesy.rhumb.ekx-module.html\" class=\"link\" \n        onclick=\"show_private();\">ekx</a> or <a \n        href=\"pygeodesy.rhumb.solve-module.html\" class=\"link\" \n        onclick=\"show_private();\">solve</a> issue.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.errors.TriangleError-class.html\" class=\"summary-name\">TriangleError</a><br />\n      Error raised for triangle, intersection or resection issues.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.errors.SciPyError-class.html\" class=\"summary-name\">SciPyError</a><br />\n      Error raised for <code>SciPy</code> issues.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.errors.SciPyWarning-class.html\" class=\"summary-name\">SciPyWarning</a><br />\n      Error thrown for <code>SciPy</code> warnings.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.errors.TRFError-class.html\" class=\"summary-name\">TRFError</a><br />\n      Terrestrial Reference Frame (TRF), <a \n        href=\"pygeodesy.units.Epoch-class.html\" class=\"link\">Epoch</a>, <a \n        href=\"pygeodesy.trf.RefFrame-class.html\" class=\"link\">RefFrame</a> \n        or <a href=\"pygeodesy.trf.RefFrame-class.html\" \n        class=\"link\">RefFrame</a> conversion issue.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.errors.UnitError-class.html\" class=\"summary-name\">UnitError</a><br />\n      Default exception for <a href=\"pygeodesy.units-module.html\" \n        class=\"link\">units</a> issues for a value exceeding the \n        <code>low</code> or <code>high</code> limit.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.errors.VectorError-class.html\" class=\"summary-name\">VectorError</a><br />\n      <a href=\"pygeodesy.vector3d.Vector3d-class.html\" \n        class=\"link\">Vector3d</a>, <code>Cartesian*</code> or \n        <code>*Nvector</code> issues.\n    </td>\n  </tr>\n</table>\n<!-- ==================== FUNCTIONS ==================== -->\n<a name=\"section-Functions\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Functions</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.errors-module.html#crosserrors\" class=\"summary-sig-name\">crosserrors</a>(<span class=\"summary-sig-arg\">raiser</span>=<span class=\"summary-sig-default\">None</span>)</span><br />\n      Report or ignore vectorial cross product errors.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.errors-module.html#exception_chaining\" class=\"summary-sig-name\">exception_chaining</a>(<span class=\"summary-sig-arg\">exc</span>=<span class=\"summary-sig-default\">None</span>)</span><br />\n      Get an error's <i>cause</i> or the exception chaining setting.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.errors-module.html#isError\" class=\"summary-sig-name\">isError</a>(<span class=\"summary-sig-arg\">exc</span>)</span><br />\n      Check a (caught) exception.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.errors-module.html#limiterrors\" class=\"summary-sig-name\">limiterrors</a>(<span class=\"summary-sig-arg\">raiser</span>=<span class=\"summary-sig-default\">None</span>)</span><br />\n      Get/set the throwing of <a \n      href=\"pygeodesy.errors.LimitError-class.html\" \n      class=\"link\">LimitError</a>s.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.errors-module.html#rangerrors\" class=\"summary-sig-name\">rangerrors</a>(<span class=\"summary-sig-arg\">raiser</span>=<span class=\"summary-sig-default\">None</span>)</span><br />\n      Get/set the throwing of <a \n      href=\"pygeodesy.errors.RangeError-class.html\" \n      class=\"link\">RangeError</a>s.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== VARIABLES ==================== -->\n<a name=\"section-Variables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Variables</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"__all__\"></a><span class=\"summary-name\">__all__</span> = <code title=\"_ALL_LAZY.errors\">_ALL_LAZY.errors</code>\n    </td>\n  </tr>\n</table>\n<!-- ==================== FUNCTION DETAILS ==================== -->\n<a name=\"section-FunctionDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Function Details</span></td>\n</tr>\n</table>\n<a name=\"crosserrors\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">crosserrors</span>&nbsp;(<span class=\"sig-arg\">raiser</span>=<span class=\"sig-default\">None</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Report or ignore vectorial cross product errors.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>raiser</code></strong> - Use <code>True</code> to throw, <code>False</code> to ignore <a \n          href=\"pygeodesy.errors.CrossError-class.html\" \n          class=\"link\">CrossError</a> exceptions or <code>None</code> to \n          leave the setting unchanged.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Previous setting (<code>bool</code>).</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Property <code>Vector3d[Base].crosserrors</code>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"exception_chaining\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">exception_chaining</span>&nbsp;(<span class=\"sig-arg\">exc</span>=<span class=\"sig-default\">None</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Get an error's <i>cause</i> or the exception chaining setting.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>exc</code></strong> - An error instance (<code>Exception</code>) or <code>None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>If <code><b>exc</b> is None</code>, return <code>True</code> if \n          exception chaining is enabled for PyGeodesy errors, \n          <code>False</code> if turned off and <code>None</code> if not \n          available.  If <code><b>exc</b> is not None</code>, return it's \n          error <i>cause</i> or <code>None</code> if there is none.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        To enable exception chaining for <code>pygeodesy</code> errors, set\n        env var <code>PYGEODESY_EXCEPTION_CHAINING</code> to any non-empty \n        value prior to <code>import pygeodesy</code>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"isError\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">isError</span>&nbsp;(<span class=\"sig-arg\">exc</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Check a (caught) exception.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>exc</code></strong> - The exception C({Exception}).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>True</code> if <b><code>exc</code></b> is a \n          <code>pygeodesy</code> error, <code>False</code> if \n          <b><code>exc</code></b> is a standard Python error of \n          <code>None</code> if neither.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"limiterrors\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">limiterrors</span>&nbsp;(<span class=\"sig-arg\">raiser</span>=<span class=\"sig-default\">None</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Get/set the throwing of <a \n  href=\"pygeodesy.errors.LimitError-class.html\" \n  class=\"link\">LimitError</a>s.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>raiser</code></strong> - Use <code>True</code> to raise, <code>False</code> to ignore <a \n          href=\"pygeodesy.errors.LimitError-class.html\" \n          class=\"link\">LimitError</a> exceptions or <code>None</code> to \n          leave the setting unchanged.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Previous setting (<code>bool</code>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"rangerrors\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">rangerrors</span>&nbsp;(<span class=\"sig-arg\">raiser</span>=<span class=\"sig-default\">None</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Get/set the throwing of <a \n  href=\"pygeodesy.errors.RangeError-class.html\" \n  class=\"link\">RangeError</a>s.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>raiser</code></strong> - Use <code>True</code> to raise or <code>False</code> to ignore <a\n          href=\"pygeodesy.errors.RangeError-class.html\" \n          class=\"link\">RangeError</a> exceptions or <code>None</code> to \n          leave the setting unchanged.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Previous setting (<code>bool</code>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.errors.AuxError-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.errors.AuxError</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.errors-module.html\">Module&nbsp;errors</a> ::\n        Class&nbsp;AuxError\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.errors.AuxError-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class AuxError</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n              object --+                    \n                       |                    \nexceptions.BaseException --+                \n                           |                \n        exceptions.Exception --+            \n                               |            \n        exceptions.StandardError --+        \n                                   |        \n               exceptions.ValueError --+    \n                                       |    \n                             _ValueError --+\n                                           |\n                                          <strong class=\"uidshort\">AuxError</strong>\n</pre>\n\n<hr />\n<p>Error raised for a <a href=\"pygeodesy.rhumb.aux_-module.html\" \n  class=\"link\" onclick=\"show_private();\">rhumb.aux_</a>, <code>Aux</code>, \n  <code>AuxDLat</code> or <code>AuxLat</code> issue.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>_ValueError</code></b>:\n      <code>__init__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.ValueError</code></b>:\n      <code>__new__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.BaseException</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getslice__</code>,\n      <code>__reduce__</code>,\n      <code>__repr__</code>,\n      <code>__setattr__</code>,\n      <code>__setstate__</code>,\n      <code>__str__</code>,\n      <code>__unicode__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__format__</code>,\n      <code>__hash__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.BaseException</code></b>:\n      <code>args</code>,\n      <code>message</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.errors.ClipError-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.errors.ClipError</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.errors-module.html\">Module&nbsp;errors</a> ::\n        Class&nbsp;ClipError\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.errors.ClipError-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class ClipError</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n              object --+                    \n                       |                    \nexceptions.BaseException --+                \n                           |                \n        exceptions.Exception --+            \n                               |            \n        exceptions.StandardError --+        \n                                   |        \n               exceptions.ValueError --+    \n                                       |    \n                             _ValueError --+\n                                           |\n                                          <strong class=\"uidshort\">ClipError</strong>\n</pre>\n\n<hr />\n<p>Clip box or clip region issue.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.errors.ClipError-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">*name_n_corners</span>,\n        <span class=\"summary-sig-arg\">**txt_cause</span>)</span><br />\n      New <a href=\"pygeodesy.errors.ClipError-class.html\" \n      class=\"link\">ClipError</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.ValueError</code></b>:\n      <code>__new__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.BaseException</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getslice__</code>,\n      <code>__reduce__</code>,\n      <code>__repr__</code>,\n      <code>__setattr__</code>,\n      <code>__setstate__</code>,\n      <code>__str__</code>,\n      <code>__unicode__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__format__</code>,\n      <code>__hash__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.BaseException</code></b>:\n      <code>args</code>,\n      <code>message</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">*name_n_corners</span>,\n        <span class=\"sig-arg\">**txt_cause</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.errors.ClipError-class.html\" \n  class=\"link\">ClipError</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>name_n_corners</code></strong> - Either just a name (<code>str</code>) or name, number, corners \n          (<code>str</code>, <code>int</code>, <code>tuple</code>).</li>\n        <li><strong class=\"pname\"><code>txt_cause</code></strong> - Optional <code><b>txt</b>=str</code> explanation of the error and\n          <code><b>cause</b>=None</code> for exception chaining.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.errors.CrossError-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.errors.CrossError</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.errors-module.html\">Module&nbsp;errors</a> ::\n        Class&nbsp;CrossError\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.errors.CrossError-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class CrossError</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n              object --+                    \n                       |                    \nexceptions.BaseException --+                \n                           |                \n        exceptions.Exception --+            \n                               |            \n        exceptions.StandardError --+        \n                                   |        \n               exceptions.ValueError --+    \n                                       |    \n                             _ValueError --+\n                                           |\n                                          <strong class=\"uidshort\">CrossError</strong>\n</pre>\n\n<hr />\n<p>Error raised for zero or near-zero vectorial cross products, occurring\n  for coincident or colinear points, lines or bearings.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>_ValueError</code></b>:\n      <code>__init__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.ValueError</code></b>:\n      <code>__new__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.BaseException</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getslice__</code>,\n      <code>__reduce__</code>,\n      <code>__repr__</code>,\n      <code>__setattr__</code>,\n      <code>__setstate__</code>,\n      <code>__str__</code>,\n      <code>__unicode__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__format__</code>,\n      <code>__hash__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.BaseException</code></b>:\n      <code>args</code>,\n      <code>message</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.errors.GeodesicError-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.errors.GeodesicError</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.errors-module.html\">Module&nbsp;errors</a> ::\n        Class&nbsp;GeodesicError\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.errors.GeodesicError-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class GeodesicError</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n              object --+                    \n                       |                    \nexceptions.BaseException --+                \n                           |                \n        exceptions.Exception --+            \n                               |            \n        exceptions.StandardError --+        \n                                   |        \n               exceptions.ValueError --+    \n                                       |    \n                             _ValueError --+\n                                           |\n                                          <strong class=\"uidshort\">GeodesicError</strong>\n</pre>\n\n<dl><dt>Known Subclasses:</dt>\n<dd>\n      <ul class=\"subclass-list\">\n<li><a href=\"pygeodesy.geod3solve.Geodesic3Error-class.html\">geod3solve.Geodesic3Error</a></li>  </ul>\n</dd></dl>\n\n<hr />\n<p>Error raised for convergence or other issues in <a \n  href=\"pygeodesy.geodesicx-module.html\" class=\"link\">geodesicx</a>, <a \n  href=\"pygeodesy.geodesicw-module.html\" class=\"link\">geodesicw</a>, <a \n  href=\"pygeodesy.geodsolve-module.html\" class=\"link\">geodsolve</a> or <a \n  href=\"pygeodesy.karney-module.html\" class=\"link\">karney</a>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>_ValueError</code></b>:\n      <code>__init__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.ValueError</code></b>:\n      <code>__new__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.BaseException</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getslice__</code>,\n      <code>__reduce__</code>,\n      <code>__repr__</code>,\n      <code>__setattr__</code>,\n      <code>__setstate__</code>,\n      <code>__str__</code>,\n      <code>__unicode__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__format__</code>,\n      <code>__hash__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.BaseException</code></b>:\n      <code>args</code>,\n      <code>message</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.errors.IntersectionError-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.errors.IntersectionError</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.errors-module.html\">Module&nbsp;errors</a> ::\n        Class&nbsp;IntersectionError\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.errors.IntersectionError-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class IntersectionError</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n              object --+                    \n                       |                    \nexceptions.BaseException --+                \n                           |                \n        exceptions.Exception --+            \n                               |            \n        exceptions.StandardError --+        \n                                   |        \n               exceptions.ValueError --+    \n                                       |    \n                             _ValueError --+\n                                           |\n                                          <strong class=\"uidshort\">IntersectionError</strong>\n</pre>\n\n<hr />\n<p>Error raised for line or circle intersection issues.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.errors.IntersectionError-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">*args</span>,\n        <span class=\"summary-sig-arg\">**kwds</span>)</span><br />\n      New <a href=\"pygeodesy.errors.IntersectionError-class.html\" \n      class=\"link\">IntersectionError</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.ValueError</code></b>:\n      <code>__new__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.BaseException</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getslice__</code>,\n      <code>__reduce__</code>,\n      <code>__repr__</code>,\n      <code>__setattr__</code>,\n      <code>__setstate__</code>,\n      <code>__str__</code>,\n      <code>__unicode__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__format__</code>,\n      <code>__hash__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.BaseException</code></b>:\n      <code>args</code>,\n      <code>message</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">*args</span>,\n        <span class=\"sig-arg\">**kwds</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.errors.IntersectionError-class.html\" \n  class=\"link\">IntersectionError</a>.</p>\n  <dl class=\"fields\">\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.errors.LenError-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.errors.LenError</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.errors-module.html\">Module&nbsp;errors</a> ::\n        Class&nbsp;LenError\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.errors.LenError-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class LenError</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n              object --+                    \n                       |                    \nexceptions.BaseException --+                \n                           |                \n        exceptions.Exception --+            \n                               |            \n        exceptions.StandardError --+        \n                                   |        \n               exceptions.ValueError --+    \n                                       |    \n                             _ValueError --+\n                                           |\n                                          <strong class=\"uidshort\">LenError</strong>\n</pre>\n\n<hr />\n<p>Error raised for mis-matching <code>len</code> values.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.errors.LenError-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">where</span>,\n        <span class=\"summary-sig-arg\">**lens_txt</span>)</span><br />\n      New <a href=\"pygeodesy.errors.LenError-class.html\" \n      class=\"link\">LenError</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.ValueError</code></b>:\n      <code>__new__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.BaseException</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getslice__</code>,\n      <code>__reduce__</code>,\n      <code>__repr__</code>,\n      <code>__setattr__</code>,\n      <code>__setstate__</code>,\n      <code>__str__</code>,\n      <code>__unicode__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__format__</code>,\n      <code>__hash__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.BaseException</code></b>:\n      <code>args</code>,\n      <code>message</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">where</span>,\n        <span class=\"sig-arg\">**lens_txt</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.errors.LenError-class.html\" \n  class=\"link\">LenError</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>where</code></strong> - Object with <code>.__name__</code> attribute (<code>class</code>,\n          <code>method</code>, or <code>function</code>).</li>\n        <li><strong class=\"pname\"><code>lens_txt</code></strong> - Two or more <code>name=len(name)</code> pairs (<code>keyword \n          arguments</code>).</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.errors.LimitError-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.errors.LimitError</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.errors-module.html\">Module&nbsp;errors</a> ::\n        Class&nbsp;LimitError\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.errors.LimitError-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class LimitError</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n              object --+                    \n                       |                    \nexceptions.BaseException --+                \n                           |                \n        exceptions.Exception --+            \n                               |            \n        exceptions.StandardError --+        \n                                   |        \n               exceptions.ValueError --+    \n                                       |    \n                             _ValueError --+\n                                           |\n                                          <strong class=\"uidshort\">LimitError</strong>\n</pre>\n\n<dl><dt>Known Subclasses:</dt>\n<dd>\n      <ul class=\"subclass-list\">\n<li><a href=\"pygeodesy.errors.UnitError-class.html\">UnitError</a></li>  </ul>\n</dd></dl>\n\n<hr />\n<p>Error raised for lat- or longitudinal values or deltas exceeding the \n  given <b><code>limit</code></b> in functions <a \n  href=\"pygeodesy.formy-module.html#equirectangular\" \n  class=\"link\">equirectangular</a>, <a \n  href=\"pygeodesy.geohash-module.html#equirectangular4\" \n  class=\"link\">equirectangular4</a>, <code>nearestOn*</code> and \n  <code>simplify*</code> or methods with <code>limit</code> or \n  <code>options</code> keyword arguments.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Subclass <a href=\"pygeodesy.errors.UnitError-class.html\" \n        class=\"link\">UnitError</a>.\n      </p>\n</div><!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>_ValueError</code></b>:\n      <code>__init__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.ValueError</code></b>:\n      <code>__new__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.BaseException</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getslice__</code>,\n      <code>__reduce__</code>,\n      <code>__repr__</code>,\n      <code>__setattr__</code>,\n      <code>__setstate__</code>,\n      <code>__str__</code>,\n      <code>__unicode__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__format__</code>,\n      <code>__hash__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.BaseException</code></b>:\n      <code>args</code>,\n      <code>message</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.errors.MGRSError-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.errors.MGRSError</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.errors-module.html\">Module&nbsp;errors</a> ::\n        Class&nbsp;MGRSError\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.errors.MGRSError-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class MGRSError</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n              object --+                    \n                       |                    \nexceptions.BaseException --+                \n                           |                \n        exceptions.Exception --+            \n                               |            \n        exceptions.StandardError --+        \n                                   |        \n               exceptions.ValueError --+    \n                                       |    \n                             _ValueError --+\n                                           |\n                                          <strong class=\"uidshort\">MGRSError</strong>\n</pre>\n\n<hr />\n<p>Military Grid Reference System (MGRS) parse or other <a \n  href=\"pygeodesy.mgrs.Mgrs-class.html\" class=\"link\">Mgrs</a> issue.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>_ValueError</code></b>:\n      <code>__init__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.ValueError</code></b>:\n      <code>__new__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.BaseException</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getslice__</code>,\n      <code>__reduce__</code>,\n      <code>__repr__</code>,\n      <code>__setattr__</code>,\n      <code>__setstate__</code>,\n      <code>__str__</code>,\n      <code>__unicode__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__format__</code>,\n      <code>__hash__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.BaseException</code></b>:\n      <code>args</code>,\n      <code>message</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.errors.NumPyError-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.errors.NumPyError</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.errors-module.html\">Module&nbsp;errors</a> ::\n        Class&nbsp;NumPyError\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.errors.NumPyError-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class NumPyError</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n              object --+                    \n                       |                    \nexceptions.BaseException --+                \n                           |                \n        exceptions.Exception --+            \n                               |            \n        exceptions.StandardError --+        \n                                   |        \n               exceptions.ValueError --+    \n                                       |    \n                             _ValueError --+\n                                           |\n                                          <strong class=\"uidshort\">NumPyError</strong>\n</pre>\n\n<hr />\n<p>Error raised for <code>NumPy</code> issues.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>_ValueError</code></b>:\n      <code>__init__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.ValueError</code></b>:\n      <code>__new__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.BaseException</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getslice__</code>,\n      <code>__reduce__</code>,\n      <code>__repr__</code>,\n      <code>__setattr__</code>,\n      <code>__setstate__</code>,\n      <code>__str__</code>,\n      <code>__unicode__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__format__</code>,\n      <code>__hash__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.BaseException</code></b>:\n      <code>args</code>,\n      <code>message</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.errors.ParseError-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.errors.ParseError</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.errors-module.html\">Module&nbsp;errors</a> ::\n        Class&nbsp;ParseError\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.errors.ParseError-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class ParseError</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n              object --+                    \n                       |                    \nexceptions.BaseException --+                \n                           |                \n        exceptions.Exception --+            \n                               |            \n        exceptions.StandardError --+        \n                                   |        \n               exceptions.ValueError --+    \n                                       |    \n                             _ValueError --+\n                                           |\n                                          <strong class=\"uidshort\">ParseError</strong>\n</pre>\n\n<hr />\n<p>Error parsing degrees, radians or several other formats.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>_ValueError</code></b>:\n      <code>__init__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.ValueError</code></b>:\n      <code>__new__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.BaseException</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getslice__</code>,\n      <code>__reduce__</code>,\n      <code>__repr__</code>,\n      <code>__setattr__</code>,\n      <code>__setstate__</code>,\n      <code>__str__</code>,\n      <code>__unicode__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__format__</code>,\n      <code>__hash__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.BaseException</code></b>:\n      <code>args</code>,\n      <code>message</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.errors.PointsError-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.errors.PointsError</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.errors-module.html\">Module&nbsp;errors</a> ::\n        Class&nbsp;PointsError\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.errors.PointsError-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class PointsError</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n              object --+                    \n                       |                    \nexceptions.BaseException --+                \n                           |                \n        exceptions.Exception --+            \n                               |            \n        exceptions.StandardError --+        \n                                   |        \n               exceptions.ValueError --+    \n                                       |    \n                             _ValueError --+\n                                           |\n                                          <strong class=\"uidshort\">PointsError</strong>\n</pre>\n\n<dl><dt>Known Subclasses:</dt>\n<dd>\n      <ul class=\"subclass-list\">\n<li><a href=\"pygeodesy.frechet.FrechetError-class.html\">frechet.FrechetError</a></li><li>, <a href=\"pygeodesy.heights.HeightError-class.html\">heights.HeightError</a></li><li>, <a href=\"pygeodesy.hausdorff.HausdorffError-class.html\">hausdorff.HausdorffError</a></li><li>, <a href=\"pygeodesy.errors.SciPyError-class.html\">SciPyError</a></li><li>, <a href=\"pygeodesy.errors.SciPyWarning-class.html\">SciPyWarning</a></li>  </ul>\n</dd></dl>\n\n<hr />\n<p>Error for an insufficient number of points.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>_ValueError</code></b>:\n      <code>__init__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.ValueError</code></b>:\n      <code>__new__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.BaseException</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getslice__</code>,\n      <code>__reduce__</code>,\n      <code>__repr__</code>,\n      <code>__setattr__</code>,\n      <code>__setstate__</code>,\n      <code>__str__</code>,\n      <code>__unicode__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__format__</code>,\n      <code>__hash__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.BaseException</code></b>:\n      <code>args</code>,\n      <code>message</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.errors.RangeError-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.errors.RangeError</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.errors-module.html\">Module&nbsp;errors</a> ::\n        Class&nbsp;RangeError\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.errors.RangeError-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class RangeError</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n              object --+                    \n                       |                    \nexceptions.BaseException --+                \n                           |                \n        exceptions.Exception --+            \n                               |            \n        exceptions.StandardError --+        \n                                   |        \n               exceptions.ValueError --+    \n                                       |    \n                             _ValueError --+\n                                           |\n                                          <strong class=\"uidshort\">RangeError</strong>\n</pre>\n\n<hr />\n<p>Error raised for lat- or longitude values outside the \n  <b><code>clip</code></b>, <b><code>clipLat</code></b>, \n  <b><code>clipLon</code></b> in functions <a \n  href=\"pygeodesy.dms-module.html#parse3llh\" class=\"link\">parse3llh</a>, <a\n  href=\"pygeodesy.dms-module.html#parseDMS\" class=\"link\">parseDMS</a>, <a \n  href=\"pygeodesy.dms-module.html#parseDMS2\" class=\"link\">parseDMS2</a> and\n  <a href=\"pygeodesy.dms-module.html#parseRad\" class=\"link\">parseRad</a> or\n  the <b><code>limit</code></b> set with functions <a \n  href=\"pygeodesy.dms-module.html#clipDegrees\" class=\"link\">clipDegrees</a>\n  and <a href=\"pygeodesy.dms-module.html#clipRadians\" \n  class=\"link\">clipRadians</a>.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.errors-module.html#rangerrors\" \n        class=\"link\">rangerrors</a>.\n      </p>\n</div><!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>_ValueError</code></b>:\n      <code>__init__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.ValueError</code></b>:\n      <code>__new__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.BaseException</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getslice__</code>,\n      <code>__reduce__</code>,\n      <code>__repr__</code>,\n      <code>__setattr__</code>,\n      <code>__setstate__</code>,\n      <code>__str__</code>,\n      <code>__unicode__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__format__</code>,\n      <code>__hash__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.BaseException</code></b>:\n      <code>args</code>,\n      <code>message</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.errors.RhumbError-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.errors.RhumbError</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.errors-module.html\">Module&nbsp;errors</a> ::\n        Class&nbsp;RhumbError\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.errors.RhumbError-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class RhumbError</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n              object --+                    \n                       |                    \nexceptions.BaseException --+                \n                           |                \n        exceptions.Exception --+            \n                               |            \n        exceptions.StandardError --+        \n                                   |        \n               exceptions.ValueError --+    \n                                       |    \n                             _ValueError --+\n                                           |\n                                          <strong class=\"uidshort\">RhumbError</strong>\n</pre>\n\n<hr />\n<p>Error raised for a rhumb <a href=\"pygeodesy.rhumb.aux_-module.html\" \n  class=\"link\" onclick=\"show_private();\">aux_</a>, <a \n  href=\"pygeodesy.rhumb.ekx-module.html\" class=\"link\" \n  onclick=\"show_private();\">ekx</a> or <a \n  href=\"pygeodesy.rhumb.solve-module.html\" class=\"link\" \n  onclick=\"show_private();\">solve</a> issue.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>_ValueError</code></b>:\n      <code>__init__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.ValueError</code></b>:\n      <code>__new__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.BaseException</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getslice__</code>,\n      <code>__reduce__</code>,\n      <code>__repr__</code>,\n      <code>__setattr__</code>,\n      <code>__setstate__</code>,\n      <code>__str__</code>,\n      <code>__unicode__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__format__</code>,\n      <code>__hash__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.BaseException</code></b>:\n      <code>args</code>,\n      <code>message</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.errors.SciPyError-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.errors.SciPyError</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.errors-module.html\">Module&nbsp;errors</a> ::\n        Class&nbsp;SciPyError\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.errors.SciPyError-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class SciPyError</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n              object --+                        \n                       |                        \nexceptions.BaseException --+                    \n                           |                    \n        exceptions.Exception --+                \n                               |                \n        exceptions.StandardError --+            \n                                   |            \n               exceptions.ValueError --+        \n                                       |        \n                             _ValueError --+    \n                                           |    \n                                 <a href=\"pygeodesy.errors.PointsError-class.html\">PointsError</a> --+\n                                               |\n                                              <strong class=\"uidshort\">SciPyError</strong>\n</pre>\n\n<hr />\n<p>Error raised for <code>SciPy</code> issues.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>_ValueError</code></b>:\n      <code>__init__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.ValueError</code></b>:\n      <code>__new__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.BaseException</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getslice__</code>,\n      <code>__reduce__</code>,\n      <code>__repr__</code>,\n      <code>__setattr__</code>,\n      <code>__setstate__</code>,\n      <code>__str__</code>,\n      <code>__unicode__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__format__</code>,\n      <code>__hash__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.BaseException</code></b>:\n      <code>args</code>,\n      <code>message</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.errors.SciPyWarning-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.errors.SciPyWarning</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.errors-module.html\">Module&nbsp;errors</a> ::\n        Class&nbsp;SciPyWarning\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.errors.SciPyWarning-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class SciPyWarning</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n              object --+                        \n                       |                        \nexceptions.BaseException --+                    \n                           |                    \n        exceptions.Exception --+                \n                               |                \n        exceptions.StandardError --+            \n                                   |            \n               exceptions.ValueError --+        \n                                       |        \n                             _ValueError --+    \n                                           |    \n                                 <a href=\"pygeodesy.errors.PointsError-class.html\">PointsError</a> --+\n                                               |\n                                              <strong class=\"uidshort\">SciPyWarning</strong>\n</pre>\n\n<hr />\n<p>Error thrown for <code>SciPy</code> warnings.</p>\n  <p>To raise <code>SciPy</code> warnings as <a \n  href=\"pygeodesy.errors.SciPyWarning-class.html\" \n  class=\"link\">SciPyWarning</a> exceptions, Python <code>warnings</code> \n  must be filtered as <a \n  href=\"https://docs.Python.org/3/library/warnings.html#the-warnings-filter\"\n  target=\"_top\">warnings.filterwarnings('error')</a> <i>prior to</i> \n  <code>import scipy</code> OR by setting env var <a \n  href=\"https://docs.Python.org/3/using/cmdline.html#envvar-PYTHONWARNINGS\"\n  target=\"_top\">PYTHONWARNINGS</a> OR by invoking <code>python</code> with \n  command line option <a \n  href=\"https://docs.Python.org/3/using/cmdline.html#cmdoption-w\" \n  target=\"_top\">-W</a> set to <code>-W error</code>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>_ValueError</code></b>:\n      <code>__init__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.ValueError</code></b>:\n      <code>__new__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.BaseException</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getslice__</code>,\n      <code>__reduce__</code>,\n      <code>__repr__</code>,\n      <code>__setattr__</code>,\n      <code>__setstate__</code>,\n      <code>__str__</code>,\n      <code>__unicode__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__format__</code>,\n      <code>__hash__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.BaseException</code></b>:\n      <code>args</code>,\n      <code>message</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.errors.TRFError-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.errors.TRFError</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.errors-module.html\">Module&nbsp;errors</a> ::\n        Class&nbsp;TRFError\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.errors.TRFError-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class TRFError</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n              object --+                    \n                       |                    \nexceptions.BaseException --+                \n                           |                \n        exceptions.Exception --+            \n                               |            \n        exceptions.StandardError --+        \n                                   |        \n               exceptions.ValueError --+    \n                                       |    \n                             _ValueError --+\n                                           |\n                                          <strong class=\"uidshort\">TRFError</strong>\n</pre>\n\n<hr />\n<p>Terrestrial Reference Frame (TRF), <a \n  href=\"pygeodesy.units.Epoch-class.html\" class=\"link\">Epoch</a>, <a \n  href=\"pygeodesy.trf.RefFrame-class.html\" class=\"link\">RefFrame</a> or <a \n  href=\"pygeodesy.trf.RefFrame-class.html\" class=\"link\">RefFrame</a> \n  conversion issue.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>_ValueError</code></b>:\n      <code>__init__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.ValueError</code></b>:\n      <code>__new__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.BaseException</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getslice__</code>,\n      <code>__reduce__</code>,\n      <code>__repr__</code>,\n      <code>__setattr__</code>,\n      <code>__setstate__</code>,\n      <code>__str__</code>,\n      <code>__unicode__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__format__</code>,\n      <code>__hash__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.BaseException</code></b>:\n      <code>args</code>,\n      <code>message</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.errors.TriangleError-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.errors.TriangleError</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.errors-module.html\">Module&nbsp;errors</a> ::\n        Class&nbsp;TriangleError\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.errors.TriangleError-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class TriangleError</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n              object --+                    \n                       |                    \nexceptions.BaseException --+                \n                           |                \n        exceptions.Exception --+            \n                               |            \n        exceptions.StandardError --+        \n                                   |        \n               exceptions.ValueError --+    \n                                       |    \n                             _ValueError --+\n                                           |\n                                          <strong class=\"uidshort\">TriangleError</strong>\n</pre>\n\n<hr />\n<p>Error raised for triangle, intersection or resection issues.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>_ValueError</code></b>:\n      <code>__init__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.ValueError</code></b>:\n      <code>__new__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.BaseException</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getslice__</code>,\n      <code>__reduce__</code>,\n      <code>__repr__</code>,\n      <code>__setattr__</code>,\n      <code>__setstate__</code>,\n      <code>__str__</code>,\n      <code>__unicode__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__format__</code>,\n      <code>__hash__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.BaseException</code></b>:\n      <code>args</code>,\n      <code>message</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.errors.UnitError-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.errors.UnitError</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.errors-module.html\">Module&nbsp;errors</a> ::\n        Class&nbsp;UnitError\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.errors.UnitError-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class UnitError</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n              object --+                        \n                       |                        \nexceptions.BaseException --+                    \n                           |                    \n        exceptions.Exception --+                \n                               |                \n        exceptions.StandardError --+            \n                                   |            \n               exceptions.ValueError --+        \n                                       |        \n                             _ValueError --+    \n                                           |    \n                                  <a href=\"pygeodesy.errors.LimitError-class.html\">LimitError</a> --+\n                                               |\n                                              <strong class=\"uidshort\">UnitError</strong>\n</pre>\n\n<hr />\n<p>Default exception for <a href=\"pygeodesy.units-module.html\" \n  class=\"link\">units</a> issues for a value exceeding the <code>low</code> \n  or <code>high</code> limit.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>_ValueError</code></b>:\n      <code>__init__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.ValueError</code></b>:\n      <code>__new__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.BaseException</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getslice__</code>,\n      <code>__reduce__</code>,\n      <code>__repr__</code>,\n      <code>__setattr__</code>,\n      <code>__setstate__</code>,\n      <code>__str__</code>,\n      <code>__unicode__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__format__</code>,\n      <code>__hash__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.BaseException</code></b>:\n      <code>args</code>,\n      <code>message</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.errors.VectorError-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.errors.VectorError</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.errors-module.html\">Module&nbsp;errors</a> ::\n        Class&nbsp;VectorError\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.errors.VectorError-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class VectorError</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n              object --+                    \n                       |                    \nexceptions.BaseException --+                \n                           |                \n        exceptions.Exception --+            \n                               |            \n        exceptions.StandardError --+        \n                                   |        \n               exceptions.ValueError --+    \n                                       |    \n                             _ValueError --+\n                                           |\n                                          <strong class=\"uidshort\">VectorError</strong>\n</pre>\n\n<hr />\n<p><a href=\"pygeodesy.vector3d.Vector3d-class.html\" \n  class=\"link\">Vector3d</a>, <code>Cartesian*</code> or \n  <code>*Nvector</code> issues.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>_ValueError</code></b>:\n      <code>__init__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.ValueError</code></b>:\n      <code>__new__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.BaseException</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getslice__</code>,\n      <code>__reduce__</code>,\n      <code>__repr__</code>,\n      <code>__setattr__</code>,\n      <code>__setstate__</code>,\n      <code>__str__</code>,\n      <code>__unicode__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__format__</code>,\n      <code>__hash__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.BaseException</code></b>:\n      <code>args</code>,\n      <code>message</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.etm-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.etm</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        Module&nbsp;etm\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.etm-module.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== MODULE DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Module etm</h1><p class=\"nomargin-top\"></p>\n<p>A pure Python version of <i>Karney</i>'s <code>Exact Transverse \n  Mercator</code> (ETM) projection.</p>\n  <p>Classes <a href=\"pygeodesy.etm.Etm-class.html\" class=\"link\">Etm</a>, \n  <a href=\"pygeodesy.etm.ETMError-class.html\" class=\"link\">ETMError</a> and\n  <a href=\"pygeodesy.etm.ExactTransverseMercator-class.html\" \n  class=\"link\">ExactTransverseMercator</a>, transcoded from <i>Karney</i>'s\n  C++ class <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1TransverseMercatorExact.html\"\n  target=\"_top\">TransverseMercatorExact</a>, abbreviated as \n  <code>TMExact</code> below.</p>\n  <p>Class <a href=\"pygeodesy.etm.ExactTransverseMercator-class.html\" \n  class=\"link\">ExactTransverseMercator</a> provides <code>Exact Transverse \n  Mercator</code> projections while instances of class <a \n  href=\"pygeodesy.etm.Etm-class.html\" class=\"link\">Etm</a> represent ETM \n  <code>(easting, northing)</code> locations.  See also <i>Karney</i>'s \n  utility <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/TransverseMercatorProj.1.html\"\n  target=\"_top\">TransverseMercatorProj</a> and use <code>&quot;python[3] -m\n  pygeodesy.etm ...&quot;</code> to compare the results, see usage \n  <code>&quot;python[3] -m pygeodesy.etm -h&quot;</code>.</p>\n  <p>Following is a copy of <i>Karney</i>'s <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/TransverseMercatorExact_8hpp_source.html\"\n  target=\"_top\">TransverseMercatorExact.hpp</a> file \n  <code>Header</code>.</p>\n  <p>Copyright (C) <a href=\"mailto:Karney@Alum.MIT.edu\" \n  target=\"_top\">Charles Karney</a> (2008-2024) and licensed under the \n  MIT/X11 License.  For more information, see the <a \n  href=\"https://GeographicLib.SourceForge.io\" \n  target=\"_top\">GeographicLib</a> documentation.</p>\n  <p>The method entails using the <a \n  href=\"https://WikiPedia.org/wiki/Transverse_Mercator_projection\" \n  target=\"_top\">Thompson Transverse Mercator</a> as an intermediate \n  projection.  The projections from the intermediate coordinates to \n  <code>phi, lam</code> and <code>x, y</code> are given by elliptic \n  functions.  The inverse of these projections are found by Newton's method\n  with a suitable starting guess.</p>\n  <p>The relevant section of L.P. Lee's paper <a \n  href=\"https://DOI.org/10.3138/X687-1574-4325-WM62\" \n  target=\"_top\">Conformal Projections Based On Jacobian Elliptic \n  Functions</a> in part V, pp 67-101.  The C++ implementation and notation \n  closely follow Lee, with the following exceptions:</p>\n<pre class=\"literalblock\">\n Lee   here   Description\n\n x/a   xi     Northing (unit Earth)\n\n y/a   eta    Easting (unit Earth)\n\n s/a   sigma  xi + i * eta\n\n y     x      Easting\n\n x     y      Northing\n\n k     e      Eccentricity\n\n k^2   mu     Elliptic function parameter\n\n k'^2  mv     Elliptic function complementary parameter\n\n m     k      Scale\n\n zeta  zeta   Complex longitude = Mercator = chi in paper\n\n s     sigma  Complex GK = zeta in paper\n</pre>\n  <p>Minor alterations have been made in some of Lee's expressions in an \n  attempt to control round-off.  For example, <code>atanh(sin(phi))</code> \n  is replaced by <code>asinh(tan(phi))</code> which maintains accuracy near\n  <code>phi = pi/2</code>.  Such changes are noted in the code.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Version:</strong>\n        25.09.15\n      </p>\n</div><!-- ==================== CLASSES ==================== -->\n<a name=\"section-Classes\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Classes</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.etm.ETMError-class.html\" class=\"summary-name\">ETMError</a><br />\n      Exact Transverse Mercator (ETM) parse, projection or other <a \n        href=\"pygeodesy.etm.Etm-class.html\" class=\"link\">Etm</a> issue or \n        <a href=\"pygeodesy.etm.ExactTransverseMercator-class.html\" \n        class=\"link\">ExactTransverseMercator</a> conversion failure.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.etm.Etm-class.html\" class=\"summary-name\">Etm</a><br />\n      Exact Transverse Mercator (ETM) coordinate, a sub-class of <a \n        href=\"pygeodesy.utm.Utm-class.html\" class=\"link\">Utm</a>, a \n        Universal Transverse Mercator (UTM) coordinate using the <a \n        href=\"pygeodesy.etm.ExactTransverseMercator-class.html\" \n        class=\"link\">ExactTransverseMercator</a> projection for highest \n        accuracy.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.etm.ExactTransverseMercator-class.html\" class=\"summary-name\">ExactTransverseMercator</a><br />\n      Pure Python version of Karney's C++ class <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/TransverseMercatorExact_8cpp_source.html\"\n        target=\"_top\">TransverseMercatorExact</a>, a numerically exact \n        transverse Mercator projection, abbreviated as \n        <code>TMExact</code>.\n    </td>\n  </tr>\n</table>\n<!-- ==================== FUNCTIONS ==================== -->\n<a name=\"section-Functions\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Functions</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.etm-module.html#parseETM5\" class=\"summary-sig-name\">parseETM5</a>(<span class=\"summary-sig-arg\">strUTM</span>,\n        <span class=\"summary-sig-arg\">datum</span>=<span class=\"summary-sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"summary-sig-arg\">Etm</span>=<span class=\"summary-sig-default\">&lt;class 'pygeodesy.etm.Etm'&gt;</span>,\n        <span class=\"summary-sig-arg\">falsed</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Parse a string representing a UTM coordinate, consisting of \n      <code>&quot;zone[band] hemisphere easting northing&quot;</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.etm-module.html#toEtm8\" class=\"summary-sig-name\">toEtm8</a>(<span class=\"summary-sig-arg\">latlon</span>,\n        <span class=\"summary-sig-arg\">lon</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">datum</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">Etm</span>=<span class=\"summary-sig-default\">&lt;class 'pygeodesy.etm.Etm'&gt;</span>,\n        <span class=\"summary-sig-arg\">falsed</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">strict</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">zone</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**name_cmoff</span>)</span><br />\n      Convert a geodetic lat-/longitude to an ETM coordinate.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== VARIABLES ==================== -->\n<a name=\"section-Variables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Variables</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"__all__\"></a><span class=\"summary-name\">__all__</span> = <code title=\"_ALL_LAZY.etm\">_ALL_LAZY.etm</code>\n    </td>\n  </tr>\n</table>\n<!-- ==================== FUNCTION DETAILS ==================== -->\n<a name=\"section-FunctionDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Function Details</span></td>\n</tr>\n</table>\n<a name=\"parseETM5\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">parseETM5</span>&nbsp;(<span class=\"sig-arg\">strUTM</span>,\n        <span class=\"sig-arg\">datum</span>=<span class=\"sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"sig-arg\">Etm</span>=<span class=\"sig-default\">&lt;class 'pygeodesy.etm.Etm'&gt;</span>,\n        <span class=\"sig-arg\">falsed</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Parse a string representing a UTM coordinate, consisting of \n  <code>&quot;zone[band] hemisphere easting northing&quot;</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>strUTM</code></strong> - A UTM coordinate (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>datum</code></strong> - Optional datum to use (<a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>, \n          <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a> or <a \n          href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>Etm</code></strong> - Optional class to return the UTM coordinate (<a \n          href=\"pygeodesy.etm.Etm-class.html\" class=\"link\">Etm</a>) or \n          <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>falsed</code></strong> - Both easting and northing are <code>falsed</code> \n          (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <b><code>Etm</code></b> <code><b>name</b>=NN</code> \n          (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The UTM coordinate (<b><code>Etm</code></b>) or if \n          <code><b>Etm</b> is None</code>, a <a \n          href=\"pygeodesy.namedTuples.UtmUps5Tuple-class.html\" \n          class=\"link\">UtmUps5Tuple</a><code>(zone, hemipole, easting, \n          northing, band)</code> with <code>hemipole</code> is the \n          hemisphere <code>'N'|'S'</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.etm.ETMError-class.html\">ETMError</a></strong></code> - Invalid <b><code>strUTM</code></b>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid or near-spherical <b><code>datum</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toEtm8\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toEtm8</span>&nbsp;(<span class=\"sig-arg\">latlon</span>,\n        <span class=\"sig-arg\">lon</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">datum</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">Etm</span>=<span class=\"sig-default\">&lt;class 'pygeodesy.etm.Etm'&gt;</span>,\n        <span class=\"sig-arg\">falsed</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">strict</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">zone</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**name_cmoff</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert a geodetic lat-/longitude to an ETM coordinate.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>latlon</code></strong> - Latitude (<code>degrees</code>) or an (ellipsoidal) geodetic \n          <code>LatLon</code> instance.</li>\n        <li><strong class=\"pname\"><code>lon</code></strong> - Optional longitude (<code>degrees</code>), required if \n          <b><code>latlon</code></b> is <code>degrees</code>, ignored \n          otherwise.</li>\n        <li><strong class=\"pname\"><code>datum</code></strong> - Optional datum for the ETM coordinate, overriding \n          <b><code>latlon</code></b>'s datum (<a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>, \n          <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a> or <a \n          href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>Etm</code></strong> - Optional class to return the ETM coordinate (<a \n          href=\"pygeodesy.etm.Etm-class.html\" class=\"link\">Etm</a>) or \n          <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>falsed</code></strong> - False both easting and northing (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>strict</code></strong> - Restrict <b><code>lat</code></b> to UTM ranges \n          (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>zone</code></strong> - Optional UTM zone to enforce (<code>int</code> or \n          <code>str</code>).</li>\n        <li><strong class=\"pname\"><code>name_cmoff</code></strong> - Optional <b><code>Etm</code></b> <code><b>name</b>=NN</code> \n          (<code>str</code>) and DEPRECATED keyword argument \n          <code><b>cmoff</b>=True</code> to offset the longitude from the \n          zone's central meridian (<code>bool</code>), use \n          <b><code>falsed</code></b> instead.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The ETM coordinate as <b><code>Etm</code></b> or if \n          <code><b>Etm</b> is None</code> or not \n          <b><code>falsed</code></b>, a <a \n          href=\"pygeodesy.namedTuples.UtmUps8Tuple-class.html\" \n          class=\"link\">UtmUps8Tuple</a><code>(zone, hemipole, easting, \n          northing, band, datum, gamma, scale)</code>.  The \n          <code>hemipole</code> is the <code>'N'|'S'</code> hemisphere.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.etm.ETMError-class.html\">ETMError</a></strong></code> - No convergence transforming to ETM easting and northing.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.etm.ETMError-class.html\">ETMError</a></strong></code> - Invalid <b><code>zone</code></b> or near-spherical or incompatible \n        <b><code>datum</code></b> or <code>ellipsoid</code>.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.RangeError-class.html\">RangeError</a></strong></code> - If <b><code>lat</code></b> outside the valid UTM bands or if \n        <b><code>lat</code></b> or <b><code>lon</code></b> outside the \n        valid range and <a href=\"pygeodesy.errors-module.html#rangerrors\" \n        class=\"link\">rangerrors</a> is <code>True</code>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid or near-spherical <b><code>datum</code></b> or \n        <b><code>latlon</code></b> not ellipsoidal.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - The <b><code>lon</code></b> value is missing or \n        <b><code>latlon</code></b> is invalid.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.etm.ETMError-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.etm.ETMError</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.etm-module.html\">Module&nbsp;etm</a> ::\n        Class&nbsp;ETMError\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.etm.ETMError-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class ETMError</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n              object --+                        \n                       |                        \nexceptions.BaseException --+                    \n                           |                    \n        exceptions.Exception --+                \n                               |                \n        exceptions.StandardError --+            \n                                   |            \n               exceptions.ValueError --+        \n                                       |        \n                      errors._ValueError --+    \n                                           |    \n                                <a href=\"pygeodesy.utm.UTMError-class.html\">utm.UTMError</a> --+\n                                               |\n                                              <strong class=\"uidshort\">ETMError</strong>\n</pre>\n\n<hr />\n<p>Exact Transverse Mercator (ETM) parse, projection or other <a \n  href=\"pygeodesy.etm.Etm-class.html\" class=\"link\">Etm</a> issue or <a \n  href=\"pygeodesy.etm.ExactTransverseMercator-class.html\" \n  class=\"link\">ExactTransverseMercator</a> conversion failure.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>errors._ValueError</code></b>:\n      <code>__init__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.ValueError</code></b>:\n      <code>__new__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.BaseException</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getslice__</code>,\n      <code>__reduce__</code>,\n      <code>__repr__</code>,\n      <code>__setattr__</code>,\n      <code>__setstate__</code>,\n      <code>__str__</code>,\n      <code>__unicode__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__format__</code>,\n      <code>__hash__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.BaseException</code></b>:\n      <code>args</code>,\n      <code>message</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.etm.Etm-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.etm.Etm</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.etm-module.html\">Module&nbsp;etm</a> ::\n        Class&nbsp;Etm\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.etm.Etm-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Etm</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n   object --+                \n            |                \n <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+            \n                |            \n <a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+        \n                    |        \n<a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html\">utmupsBase.UtmUpsBase</a> --+    \n                        |    \n                  <a href=\"pygeodesy.utm.Utm-class.html\">utm.Utm</a> --+\n                            |\n                           <strong class=\"uidshort\">Etm</strong>\n</pre>\n\n<hr />\n<p>Exact Transverse Mercator (ETM) coordinate, a sub-class of <a \n  href=\"pygeodesy.utm.Utm-class.html\" class=\"link\">Utm</a>, a Universal \n  Transverse Mercator (UTM) coordinate using the <a \n  href=\"pygeodesy.etm.ExactTransverseMercator-class.html\" \n  class=\"link\">ExactTransverseMercator</a> projection for highest \n  accuracy.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Note:</strong>\n        Conversion of (geodetic) lat- and longitudes to/from <a \n        href=\"pygeodesy.etm.Etm-class.html\" class=\"link\">Etm</a> \n        coordinates is 3-4 times slower than to/from <a \n        href=\"pygeodesy.utm.Utm-class.html\" class=\"link\">Utm</a>.\n      </p>\n      <p><strong>See Also:</strong>\n        Karney's <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1TransverseMercatorExact.html#details\"\n        target=\"_top\">Detailed Description</a>.\n      </p>\n</div><!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.etm.Etm-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">zone</span>=<span class=\"summary-sig-default\">31</span>,\n        <span class=\"summary-sig-arg\">hemisphere</span>=<span class=\"summary-sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">N</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"summary-sig-arg\">easting</span>=<span class=\"summary-sig-default\">166022</span>,\n        <span class=\"summary-sig-arg\">northing</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">band</span>=<span class=\"summary-sig-default\">''</span>,\n        <span class=\"summary-sig-arg\">datum</span>=<span class=\"summary-sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"summary-sig-arg\">falsed</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">gamma</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">scale</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**name_convergence</span>)</span><br />\n      New <a href=\"pygeodesy.etm.Etm-class.html\" class=\"link\">Etm</a> Exact\n      Transverse Mercator coordinate, raising <a \n      href=\"pygeodesy.etm.ETMError-class.html\" class=\"link\">ETMError</a>s.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.etm.Etm-class.html#parse\" class=\"summary-sig-name\">parse</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">strETM</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Parse a string to a similar <a href=\"pygeodesy.etm.Etm-class.html\" \n      class=\"link\">Etm</a> instance.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.etm.Etm-class.html#parseETM\" class=\"summary-sig-name\">parseETM</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">strETM</span>)</span><br />\n      DEPRECATED, use method <a href=\"pygeodesy.etm.Etm-class.html#parse\" \n      class=\"link\">Etm.parse</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.etm.Etm-class.html#toLatLon\" class=\"summary-sig-name\">toLatLon</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">LatLon</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">unfalse</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">**unused</span>)</span><br />\n      Convert this ETM coordinate to an (ellipsoidal) geodetic point.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.etm.Etm-class.html#toUtm\" class=\"summary-sig-name\">toUtm</a>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Copy this ETM to a UTM coordinate.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.utm.Utm-class.html\">utm.Utm</a></code></b>:\n      <code><a href=\"pygeodesy.utm.Utm-class.html#__eq__\">__eq__</a></code>,\n      <code><a href=\"pygeodesy.utm.Utm-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.utm.Utm-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.utm.Utm-class.html#parseUTM\">parseUTM</a></code>,\n      <code><a href=\"pygeodesy.utm.Utm-class.html#toEtm\">toEtm</a></code>,\n      <code><a href=\"pygeodesy.utm.Utm-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.utm.Utm-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.utm.Utm-class.html#toUps\">toUps</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html\">utmupsBase.UtmUpsBase</a></code></b>:\n      <code><a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html#eastingnorthing2\">eastingnorthing2</a></code>,\n      <code><a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html#latFootPoint\">latFootPoint</a></code>,\n      <code><a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html#phiFootPoint\">phiFootPoint</a></code>,\n      <code><a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html#to2en\">to2en</a></code>,\n      <code><a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html#toEpsg\">toEpsg</a></code>,\n      <code><a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html#toMgrs\">toMgrs</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#others\">others</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.etm.Etm-class.html#exactTM\" class=\"summary-name\">exactTM</a><br />\n      Class <code>property</code> with a <code>.name</code> attribute.\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.utm.Utm-class.html\">utm.Utm</a></code></b>:\n      <code><a href=\"pygeodesy.utm.Utm-class.html#band\">band</a></code>,\n      <code><a href=\"pygeodesy.utm.Utm-class.html#falsed2\">falsed2</a></code>,\n      <code><a href=\"pygeodesy.utm.Utm-class.html#pole\">pole</a></code>,\n      <code><a href=\"pygeodesy.utm.Utm-class.html#zone\">zone</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html\">utmupsBase.UtmUpsBase</a></code></b>:\n      <code><a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html#convergence\">convergence</a></code>,\n      <code><a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html#datum\">datum</a></code>,\n      <code><a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html#easting\">easting</a></code>,\n      <code><a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html#eastingnorthing\">eastingnorthing</a></code>,\n      <code><a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html#falsed\">falsed</a></code>,\n      <code><a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html#gamma\">gamma</a></code>,\n      <code><a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html#hemisphere\">hemisphere</a></code>,\n      <code><a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html#northing\">northing</a></code>,\n      <code><a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html#scale\">scale</a></code>,\n      <code><a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html#scale0\">scale0</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">zone</span>=<span class=\"sig-default\">31</span>,\n        <span class=\"sig-arg\">hemisphere</span>=<span class=\"sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">N</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"sig-arg\">easting</span>=<span class=\"sig-default\">166022</span>,\n        <span class=\"sig-arg\">northing</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">band</span>=<span class=\"sig-default\">''</span>,\n        <span class=\"sig-arg\">datum</span>=<span class=\"sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"sig-arg\">falsed</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">gamma</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">scale</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**name_convergence</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.etm.Etm-class.html\" class=\"link\">Etm</a> Exact \n  Transverse Mercator coordinate, raising <a \n  href=\"pygeodesy.etm.ETMError-class.html\" class=\"link\">ETMError</a>s.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>zone</code></strong> - Longitudinal UTM zone (<code>int</code>, 1..60) or zone with/-out\n          <i>latitudinal</i> Band letter (<code>str</code>, '1C'|..|'60X').</li>\n        <li><strong class=\"pname\"><code>hemisphere</code></strong> - Northern or southern hemisphere (<code>str</code>, \n          <code>'N[orth]'</code> or <code>'S[outh]'</code>).</li>\n        <li><strong class=\"pname\"><code>easting</code></strong> - Easting, see <b><code>falsed</code></b> (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>northing</code></strong> - Northing, see <b><code>falsed</code></b> (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>band</code></strong> - Optional, <i>latitudinal</i> band (<code>str</code>, 'C'|..|'X', \n          no 'I'|'O').</li>\n        <li><strong class=\"pname\"><code>datum</code></strong> - Optional, this coordinate's datum (<a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>, \n          <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a> or <a \n          href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>falsed</code></strong> - If <code>True</code>, both <b><code>easting</code></b> and \n          <b><code>northing</code></b> are falsed (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>gamma</code></strong> - Optional meridian convergence, bearing off grid North, clockwise \n          from true North to save (<code>degrees</code>) or \n          <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>scale</code></strong> - Optional grid scale factor to save (<code>scalar</code>) or \n          <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>name_convergence</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>) and \n          DEPRECATED keyword argument <code><b>convergence</b>=None</code>,\n          use <b><code>gamma</code></b>.</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid or near-spherical <b><code>datum</code></b>.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.utm.UTMError-class.html\">UTMError</a></strong></code> - Invalid <b><code>zone</code></b>, <b><code>hemishere</code></b>, \n        <b><code>easting</code></b>, <b><code>northing</code></b>, \n        <b><code>band</code></b>, <b><code>convergence</code></b> or \n        <b><code>scale</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"parse\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">parse</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">strETM</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Parse a string to a similar <a href=\"pygeodesy.etm.Etm-class.html\" \n  class=\"link\">Etm</a> instance.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>strETM</code></strong> - The ETM coordinate (<code>str</code>), see function <a \n          href=\"pygeodesy.etm-module.html#parseETM5\" \n          class=\"link\">parseETM5</a>.</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>), \n          overriding this name.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The instance (<a href=\"pygeodesy.etm.Etm-class.html\" \n          class=\"link\">Etm</a>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.etm.ETMError-class.html\">ETMError</a></strong></code> - Invalid <b><code>strETM</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.utm.Utm-class.html#parse\">utm.Utm.parse</a>\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.ups-module.html#parseUPS5\" \n        class=\"link\">pygeodesy.parseUPS5</a>, <a \n        href=\"pygeodesy.utm-module.html#parseUTM5\" \n        class=\"link\">pygeodesy.parseUTM5</a> and <a \n        href=\"pygeodesy.utmups-module.html#parseUTMUPS5\" \n        class=\"link\">pygeodesy.parseUTMUPS5</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"parseETM\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">parseETM</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">strETM</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use method <a href=\"pygeodesy.etm.Etm-class.html#parse\" \n  class=\"link\">Etm.parse</a>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_method</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toLatLon\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toLatLon</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">LatLon</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">unfalse</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">**unused</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert this ETM coordinate to an (ellipsoidal) geodetic point.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>LatLon</code></strong> - Optional, ellipsoidal class to return the geodetic point \n          (<code>LatLon</code>) or <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>unfalse</code></strong> - Unfalse <b><code>easting</code></b> and \n          <b><code>northing</code></b> if <code>falsed</code> \n          (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>This ETM coordinate as (<b><code>LatLon</code></b>) or if \n          <code><b>LatLon</b> is None</code>, a <a \n          href=\"pygeodesy.namedTuples.LatLonDatum5Tuple-class.html\" \n          class=\"link\">LatLonDatum5Tuple</a><code>(lat, lon, datum, gamma, \n          scale)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.etm.ETMError-class.html\">ETMError</a></strong></code> - This ETM coordinate's <code>exacTM</code> and this \n        <code>datum</code> are not compatible or no convergence \n        transforming to lat-/longitude.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid or non-ellipsoidal <b><code>LatLon</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.utm.Utm-class.html#toLatLon\">utm.Utm.toLatLon</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toUtm\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toUtm</span>&nbsp;(<span class=\"sig-arg\">self</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Copy this ETM to a UTM coordinate.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>zone</code></strong> - New UTM zone (<code>int</code>).</li>\n        <li><strong class=\"pname\"><code>eps</code></strong> - Optional convergence limit, <a href=\"pygeodesy-module.html#EPS\" \n          class=\"link\">EPS</a> or above (<code>float</code>), see method <a\n          href=\"pygeodesy.utm.Utm-class.html#toLatLon\" \n          class=\"link\">Utm.toLatLon</a>.</li>\n        <li><strong class=\"pname\"><code>falsed</code></strong> - If <code>True</code>, fFalse both easting and northing \n          (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The UTM coordinate (<a href=\"pygeodesy.utm.Utm-class.html\" \n          class=\"link\">Utm</a>).</dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.utm.Utm-class.html#toUtm\">utm.Utm.toUtm</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"exactTM\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">exactTM</h3>\n  <p>Class <code>property</code> with a <code>.name</code> attribute.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">exactTM(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the ETM projection (<a \nhref=\"pygeodesy.etm.ExactTransverseMercator-class.html\" \nclass=\"link\">ExactTransverseMercator</a>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">exactTM(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">exactTM</span>)</span>\n        - Set the ETM projection (<a \nhref=\"pygeodesy.etm.ExactTransverseMercator-class.html\" \nclass=\"link\">ExactTransverseMercator</a>).\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.etm.ExactTransverseMercator-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.etm.ExactTransverseMercator</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.etm-module.html\">Module&nbsp;etm</a> ::\n        Class&nbsp;ExactTransverseMercator\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.etm.ExactTransverseMercator-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class ExactTransverseMercator</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+        \n           |        \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n               |    \n<a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+\n                   |\n                  <strong class=\"uidshort\">ExactTransverseMercator</strong>\n</pre>\n\n<hr />\n<p>Pure Python version of Karney's C++ class <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/TransverseMercatorExact_8cpp_source.html\"\n  target=\"_top\">TransverseMercatorExact</a>, a numerically exact transverse\n  Mercator projection, abbreviated as <code>TMExact</code>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.etm.ExactTransverseMercator-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">datum</span>=<span class=\"summary-sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"summary-sig-arg\">lon0</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">k0</span>=<span class=\"summary-sig-default\">0.9996</span>,\n        <span class=\"summary-sig-arg\">extendp</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">raiser</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      New <a href=\"pygeodesy.etm.ExactTransverseMercator-class.html\" \n      class=\"link\">ExactTransverseMercator</a> projection.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.etm.ExactTransverseMercator-class.html#forward\" class=\"summary-sig-name\">forward</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lat</span>,\n        <span class=\"summary-sig-arg\">lon</span>,\n        <span class=\"summary-sig-arg\">lon0</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">jam</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Forward projection, from geographic to transverse Mercator.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.etm.ExactTransverseMercator-class.html#reset\" class=\"summary-sig-name\">reset</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lat0</span>,\n        <span class=\"summary-sig-arg\">lon0</span>)</span><br />\n      Set the central parallel and meridian.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.etm.ExactTransverseMercator-class.html#reverse\" class=\"summary-sig-name\">reverse</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">x</span>,\n        <span class=\"summary-sig-arg\">y</span>,\n        <span class=\"summary-sig-arg\">lon0</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">jam</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Reverse projection, from Transverse Mercator to geographic.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.etm.ExactTransverseMercator-class.html#toStr\" class=\"summary-sig-name\">toStr</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">joined</span>=<span class=\"summary-sig-default\">', '</span>,\n        <span class=\"summary-sig-arg\">**kwds</span>)</span><br />\n      Return a <code>str</code> representation.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#others\">others</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#toRepr\">toRepr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.etm.ExactTransverseMercator-class.html#datum\" class=\"summary-name\">datum</a><br />\n      Class <code>property</code> with a <code>.name</code> attribute.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.etm.ExactTransverseMercator-class.html#ellipsoid\" class=\"summary-name\">ellipsoid</a><br />\n      Get the ellipsoid (<a \n      href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n      class=\"link\">Ellipsoid</a>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.etm.ExactTransverseMercator-class.html#equatoradius\" class=\"summary-name\">equatoradius</a><br />\n      Get the <code>ellipsoid</code>'s equatorial radius, semi-axis \n      (<code>meter</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.etm.ExactTransverseMercator-class.html#a\" class=\"summary-name\">a</a><br />\n      Get the <code>ellipsoid</code>'s equatorial radius, semi-axis \n      (<code>meter</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.etm.ExactTransverseMercator-class.html#extendp\" class=\"summary-name\">extendp</a><br />\n      Get the domain (<code>bool</code>), <i>extended</i> or \n      <i>standard</i>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.etm.ExactTransverseMercator-class.html#flattening\" class=\"summary-name\">flattening</a><br />\n      Get the <code>ellipsoid</code>'s flattening (<code>scalar</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.etm.ExactTransverseMercator-class.html#f\" class=\"summary-name\">f</a><br />\n      Get the <code>ellipsoid</code>'s flattening (<code>scalar</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.etm.ExactTransverseMercator-class.html#iteration\" class=\"summary-name\">iteration</a><br />\n      Get the most recent <code>ExactTransverseMercator.forward</code> or \n      <code>ExactTransverseMercator.reverse</code> iteration number \n      (<code>int</code>) or <code>None</code> if not available/applicable.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.etm.ExactTransverseMercator-class.html#k0\" class=\"summary-name\">k0</a><br />\n      Class <code>property</code> with a <code>.name</code> attribute.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.etm.ExactTransverseMercator-class.html#lon0\" class=\"summary-name\">lon0</a><br />\n      Class <code>property</code> with a <code>.name</code> attribute.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.etm.ExactTransverseMercator-class.html#majoradius\" class=\"summary-name\">majoradius</a><br />\n      DEPRECATED, use property <code>equatoradius</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.etm.ExactTransverseMercator-class.html#raiser\" class=\"summary-name\">raiser</a><br />\n      Class <code>property</code> with a <code>.name</code> attribute.\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">datum</span>=<span class=\"sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"sig-arg\">lon0</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">k0</span>=<span class=\"sig-default\">0.9996</span>,\n        <span class=\"sig-arg\">extendp</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">raiser</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.etm.ExactTransverseMercator-class.html\" \n  class=\"link\">ExactTransverseMercator</a> projection.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>datum</code></strong> - The <i>non-spherical</i> datum or ellipsoid (<a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>, \n          <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a> or <a \n          href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>lon0</code></strong> - Central meridian, default (<code>degrees180</code>).</li>\n        <li><strong class=\"pname\"><code>k0</code></strong> - Central scale factor (<code>float</code>).</li>\n        <li><strong class=\"pname\"><code>extendp</code></strong> - If <code>True</code>, use the <i>extended</i> domain, \n          <i>standard</i> otherwise (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>raiser</code></strong> - If <code>True</code>, throw an <a \n          href=\"pygeodesy.etm.ETMError-class.html\" \n          class=\"link\">ETMError</a> for convergence failures \n          (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> for the projection \n          (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.etm.ETMError-class.html\">ETMError</a></strong></code> - Near-spherical <b><code>datum</code></b> or <code>ellipsoid</code> \n        or invalid <b><code>lon0</code></b> or <b><code>k0</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1TransverseMercatorExact.html\"\n        target=\"_top\">Constructor TransverseMercatorExact</a> for more \n        details, especially on <b><a name=\"index-extendp\"></a><i \n        class=\"indexterm\">extendp</i></b>.\n      </p>\n      <p><strong>Note:</strong>\n        For all 255.5K <a href=\"https://Zenodo.org/record/32470\" \n        target=\"_top\">TMcoords.dat</a> tests (with <code>0 &lt;= lat &lt;= \n        84</code> and <code>0 &lt;= lon</code>) the maximum error is \n        <code>5.2e-08 .forward</code> (or 52 nano-meter) easting and \n        northing and <code>3.8e-13 .reverse</code> (or 0.38 pico-degrees) \n        lat- and longitude (with Python 3.7.3+, 2.7.16+, PyPy6 3.5.3 and \n        PyPy6 2.7.13, all in 64-bit on macOS 10.13.6 High Sierra \n        <code>x86_64</code> and 12.2 Monterey <code>arm64</code> and \n        <code>&quot;arm64_x86_64&quot;</code>).\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"forward\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">forward</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lat</span>,\n        <span class=\"sig-arg\">lon</span>,\n        <span class=\"sig-arg\">lon0</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">jam</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Forward projection, from geographic to transverse Mercator.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat</code></strong> - Latitude of point (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lon</code></strong> - Longitude of point (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lon0</code></strong> - Central meridian (<code>degrees180</code>), overriding the \n          default if not <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>jam</code></strong> - If <code>True</code>, use the <code>Jacobi amplitude</code> \n          otherwise <code>Bulirsch</code>' function (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><a href=\"pygeodesy.namedTuples.Forward4Tuple-class.html\" \n          class=\"link\">Forward4Tuple</a><code>(easting, northing, gamma, \n          scale)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.etm.ETMError-class.html\">ETMError</a></strong></code> - No convergence, thrown iff property \n        <code><b>raiser</b>=True</code>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <code>void TMExact::Forward(real lon0, real lat, real lon, real \n        &amp;x, real &amp;y, real &amp;gamma, real &amp;k)</code>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"reset\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">reset</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lat0</span>,\n        <span class=\"sig-arg\">lon0</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Set the central parallel and meridian.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat0</code></strong> - Latitude of the central parallel (<code>degrees90</code>).</li>\n        <li><strong class=\"pname\"><code>lon0</code></strong> - Longitude of the central meridian (<code>degrees180</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>2-Tuple <code>(lat0, lon0)</code> of the previous central \n          parallel and meridian.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.etm.ETMError-class.html\">ETMError</a></strong></code> - Invalid <b><code>lat0</code></b> or <b><code>lon0</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"reverse\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">reverse</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">x</span>,\n        <span class=\"sig-arg\">y</span>,\n        <span class=\"sig-arg\">lon0</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">jam</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Reverse projection, from Transverse Mercator to geographic.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>x</code></strong> - Easting of point (<code>meters</code>).</li>\n        <li><strong class=\"pname\"><code>y</code></strong> - Northing of point (<code>meters</code>).</li>\n        <li><strong class=\"pname\"><code>lon0</code></strong> - Optional central meridian (<code>degrees180</code>), overriding \n          the default (<code>iff not None</code>).</li>\n        <li><strong class=\"pname\"><code>jam</code></strong> - If <code>True</code>, use the <code>Jacobi amplitude</code> \n          otherwise <code>Bulirsch</code>' function (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><a href=\"pygeodesy.namedTuples.Reverse4Tuple-class.html\" \n          class=\"link\">Reverse4Tuple</a><code>(lat, lon, gamma, \n          scale)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.etm.ETMError-class.html\">ETMError</a></strong></code> - No convergence, thrown iff property \n        <code><b>raiser</b>=True</code>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <code>void TMExact::Reverse(real lon0, real x, real y, real \n        &amp;lat, real &amp;lon, real &amp;gamma, real &amp;k)</code>\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"toStr\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toStr</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">joined</span>=<span class=\"sig-default\">', '</span>,\n        <span class=\"sig-arg\">**kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return a <code>str</code> representation.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>joined</code></strong> - Separator to join the attribute strings (<code>str</code> or \n          <code>None</code> or <code>NN</code> for non-joined).</li>\n        <li><strong class=\"pname\"><code>kwds</code></strong> - Optional, overriding keyword arguments.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.named._Named-class.html#toStr\">named._Named.toStr</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"datum\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">datum</h3>\n  <p>Class <code>property</code> with a <code>.name</code> attribute.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">datum(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the datum (<a href=\"pygeodesy.datums.Datum-class.html\" \nclass=\"link\">Datum</a>) or <code>None</code>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">datum(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">datum</span>)</span>\n        - Set the datum and ellipsoid (<a href=\"pygeodesy.datums.Datum-class.html\" \nclass=\"link\">Datum</a>, <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\"\nclass=\"link\">Ellipsoid</a>, <a \nhref=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \nclass=\"link\">Ellipsoid2</a> or <a \nhref=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \nclass=\"link\">a_f2Tuple</a>).\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"ellipsoid\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">ellipsoid</h3>\n  <p>Get the ellipsoid (<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\"\n  class=\"link\">Ellipsoid</a>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">ellipsoid(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the ellipsoid (<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \nclass=\"link\">Ellipsoid</a>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"equatoradius\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">equatoradius</h3>\n  <p>Get the <code>ellipsoid</code>'s equatorial radius, semi-axis \n  (<code>meter</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">equatoradius(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <code>ellipsoid</code>'s equatorial radius, semi-axis \n(<code>meter</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"a\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">a</h3>\n  <p>Get the <code>ellipsoid</code>'s equatorial radius, semi-axis \n  (<code>meter</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">equatoradius(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <code>ellipsoid</code>'s equatorial radius, semi-axis \n(<code>meter</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"extendp\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">extendp</h3>\n  <p>Get the domain (<code>bool</code>), <i>extended</i> or \n  <i>standard</i>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">extendp(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the domain (<code>bool</code>), <i>extended</i> or <i>standard</i>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"flattening\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">flattening</h3>\n  <p>Get the <code>ellipsoid</code>'s flattening (<code>scalar</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">flattening(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <code>ellipsoid</code>'s flattening (<code>scalar</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"f\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">f</h3>\n  <p>Get the <code>ellipsoid</code>'s flattening (<code>scalar</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">flattening(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <code>ellipsoid</code>'s flattening (<code>scalar</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"iteration\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">iteration</h3>\n  <p>Get the most recent <code>ExactTransverseMercator.forward</code> or \n  <code>ExactTransverseMercator.reverse</code> iteration number \n  (<code>int</code>) or <code>None</code> if not available/applicable.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">iteration(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the most recent <code>ExactTransverseMercator.forward</code> or \n<code>ExactTransverseMercator.reverse</code> iteration number \n(<code>int</code>) or <code>None</code> if not available/applicable.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"k0\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">k0</h3>\n  <p>Class <code>property</code> with a <code>.name</code> attribute.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">k0(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the central scale factor (<code>float</code>), aka \n<i><code>scale0</code></i>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">k0(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">k0</span>)</span>\n        - Set the central scale factor (<code>float</code>), aka \n<i><code>scale0</code></i>.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"lon0\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">lon0</h3>\n  <p>Class <code>property</code> with a <code>.name</code> attribute.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">lon0(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the central meridian (<code>degrees180</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">lon0(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lon0</span>)</span>\n        - Set the central meridian (<code>degrees180</code>).\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"majoradius\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">majoradius</h3>\n  <p>DEPRECATED, use property <code>equatoradius</code>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">majoradius(<span class=\"summary-sig-arg\">self</span>)</span>\n        - DEPRECATED, use property <code>equatoradius</code>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"raiser\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">raiser</h3>\n  <p>Class <code>property</code> with a <code>.name</code> attribute.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">raiser(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the error setting (<code>bool</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">raiser(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">raiser</span>)</span>\n        - Set the error setting (<code>bool</code>), if <code>True</code> throw an <a\nhref=\"pygeodesy.etm.ETMError-class.html\" class=\"link\">ETMError</a> for \nconvergence failures.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.fmath-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.fmath</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        Module&nbsp;fmath\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.fmath-module.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== MODULE DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Module fmath</h1><p class=\"nomargin-top\"></p>\n<p>Utilities for precision floating point summation, multiplication, \n  <code>fused-multiply-add</code>, polynomials, roots, etc.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Version:</strong>\n        26.03.25\n      </p>\n</div><!-- ==================== CLASSES ==================== -->\n<a name=\"section-Classes\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Classes</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.fmath.Fdot-class.html\" class=\"summary-name\">Fdot</a><br />\n      Precision dot product.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.fmath.Fdot_-class.html\" class=\"summary-name\">Fdot_</a><br />\n      Precision dot product.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.fmath.Fhorner-class.html\" class=\"summary-name\">Fhorner</a><br />\n      Precision polynomial evaluation using the Horner form.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.fmath.Fhypot-class.html\" class=\"summary-name\">Fhypot</a><br />\n      Precision summation and hypotenuse, default <code>root=2</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.fmath.Fpolynomial-class.html\" class=\"summary-name\">Fpolynomial</a><br />\n      Precision polynomial evaluation.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.fmath.Fpowers-class.html\" class=\"summary-name\">Fpowers</a><br />\n      Precision summation of powers, optimized for <code>power=2, 3 and \n        4</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.fmath.Froot-class.html\" class=\"summary-name\">Froot</a><br />\n      The root of a precision summation.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.fmath.Fcbrt-class.html\" class=\"summary-name\">Fcbrt</a><br />\n      Cubic root of a precision summation.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.fmath.Fsqrt-class.html\" class=\"summary-name\">Fsqrt</a><br />\n      Square root of a precision summation.\n    </td>\n  </tr>\n</table>\n<!-- ==================== FUNCTIONS ==================== -->\n<a name=\"section-Functions\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Functions</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fmath-module.html#bqrt\" class=\"summary-sig-name\">bqrt</a>(<span class=\"summary-sig-arg\">x</span>)</span><br />\n      Return the 4-th, <i>bi-quadratic</i> or <i>quartic</i> root, <i \n      class=\"math\">x**(1 / 4)</i>, preserving <code>type(<b>x</b>)</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fmath-module.html#cbrt\" class=\"summary-sig-name\">cbrt</a>(<span class=\"summary-sig-arg\">x</span>)</span><br />\n      Compute the cube root <i class=\"math\">x**(1/3)</i>, preserving \n      <code>type(<b>x</b>)</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fmath-module.html#cbrt2\" class=\"summary-sig-name\">cbrt2</a>(<span class=\"summary-sig-arg\">x</span>)</span><br />\n      Compute the cube root <i>squared</i> <i class=\"math\">x**(2/3)</i>, \n      preserving <code>type(<b>x</b>)</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fmath-module.html#euclid\" class=\"summary-sig-name\">euclid</a>(<span class=\"summary-sig-arg\">x</span>,\n        <span class=\"summary-sig-arg\">y</span>,\n        <span class=\"summary-sig-arg\">*xy0</span>)</span><br />\n      <i>Appoximate</i> the norm <i class=\"math\">hypot(<b>x</b>, \n      <b>y</b>)</i> by <i class=\"math\">max(abs(<b>x</b>), abs(<b>y</b>)) + \n      min(abs(<b>x</b>), abs(<b>y</b>)) * 0.4142...</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fmath-module.html#euclid_\" class=\"summary-sig-name\">euclid_</a>(<span class=\"summary-sig-arg\">*xs</span>)</span><br />\n      <i>Appoximate</i> the norm <i class=\"math\">sqrt(sum(x**2 for x in \n      xs))</i> by cascaded <a href=\"pygeodesy.fmath-module.html#euclid\" \n      class=\"link\">euclid</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fmath-module.html#facos1\" class=\"summary-sig-name\">facos1</a>(<span class=\"summary-sig-arg\">x</span>)</span><br />\n      Fast approximation of <a href=\"pygeodesy.utily-module.html#acos1\" \n      class=\"link\">pygeodesy.acos1</a><code>(<b>x</b>)</code>, scalar.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fmath-module.html#fasin1\" class=\"summary-sig-name\">fasin1</a>(<span class=\"summary-sig-arg\">x</span>)</span><br />\n      Fast approximation of <a href=\"pygeodesy.utily-module.html#asin1\" \n      class=\"link\">pygeodesy.asin1</a><code>(<b>x</b>)</code>, scalar.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"fatan\"></a><span class=\"summary-sig-name\">fatan</span>(<span class=\"summary-sig-arg\">x</span>)</span><br />\n      Fast approximation of <code>atan(<b>x</b>)</code>, scalar.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fmath-module.html#fatan1\" class=\"summary-sig-name\">fatan1</a>(<span class=\"summary-sig-arg\">x</span>)</span><br />\n      Fast approximation of <code>atan(<b>x</b>)</code> for <code>0 &lt;= \n      <b>x</b> &lt; 1</code>, <i>unchecked</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fmath-module.html#fatan2\" class=\"summary-sig-name\">fatan2</a>(<span class=\"summary-sig-arg\">y</span>,\n        <span class=\"summary-sig-arg\">x</span>)</span><br />\n      Fast approximation of <code>atan2(<b>y</b>, <b>x</b>)</code>, scalar.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fmath-module.html#favg\" class=\"summary-sig-name\">favg</a>(<span class=\"summary-sig-arg\">a</span>,\n        <span class=\"summary-sig-arg\">b</span>,\n        <span class=\"summary-sig-arg\">f</span>=<span class=\"summary-sig-default\">0.5</span>,\n        <span class=\"summary-sig-arg\">nonfinites</span>=<span class=\"summary-sig-default\">True</span>)</span><br />\n      Return the precise average of two values.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fmath-module.html#fdot\" class=\"summary-sig-name\">fdot</a>(<span class=\"summary-sig-arg\">xs</span>,\n        <span class=\"summary-sig-arg\">*ys</span>,\n        <span class=\"summary-sig-arg\">**start_f2product_nonfinites</span>)</span><br />\n      Return the precision dot product <i class=\"math\">start + sum(xs[i] * \n      ys[i] for i in range(len(xs)))</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fmath-module.html#fdot_\" class=\"summary-sig-name\">fdot_</a>(<span class=\"summary-sig-arg\">*xys</span>,\n        <span class=\"summary-sig-arg\">**start_f2product_nonfinites</span>)</span><br />\n      Return the (precision) dot product <i class=\"math\">start + sum(xys[i]\n      * xys[i+1] for i in range(0, len(xys), <b>2</b>))</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fmath-module.html#fdot3\" class=\"summary-sig-name\">fdot3</a>(<span class=\"summary-sig-arg\">xs</span>,\n        <span class=\"summary-sig-arg\">ys</span>,\n        <span class=\"summary-sig-arg\">zs</span>,\n        <span class=\"summary-sig-arg\">**start_f2product_nonfinites</span>)</span><br />\n      Return the (precision) dot product <i class=\"math\">start + sum(xs[i] \n      * ys[i] * zs[i] for i in range(len(xs)))</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fmath-module.html#fhorner\" class=\"summary-sig-name\">fhorner</a>(<span class=\"summary-sig-arg\">x</span>,\n        <span class=\"summary-sig-arg\">*cs</span>,\n        <span class=\"summary-sig-arg\">**incx</span>)</span><br />\n      Horner form evaluation of polynomial <i class=\"math\">sum(cs[i] * x**i\n      for i=0..n)</i> as in- or decreasing exponent <i class=\"math\">sum(...\n      i=n..0)</i>, where <code>n = len(cs) - 1</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fmath-module.html#fidw\" class=\"summary-sig-name\">fidw</a>(<span class=\"summary-sig-arg\">xs</span>,\n        <span class=\"summary-sig-arg\">ds</span>,\n        <span class=\"summary-sig-arg\">beta</span>=<span class=\"summary-sig-default\">2</span>)</span><br />\n      Interpolate using <a \n      href=\"https://WikiPedia.org/wiki/Inverse_distance_weighting\" \n      target=\"_top\">Inverse Distance Weighting</a> (IDW).</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fmath-module.html#fma\" class=\"summary-sig-name\">fma</a>(<span class=\"summary-sig-arg\">x</span>,\n        <span class=\"summary-sig-arg\">y</span>,\n        <span class=\"summary-sig-arg\">z</span>,\n        <span class=\"summary-sig-arg\">**nonfinites</span>)</span><br />\n      Fused-multiply-add, using <code>math.fma(x, y, z)</code> in Python \n      3.13+ or an equivalent implementation.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fmath-module.html#fmean\" class=\"summary-sig-name\">fmean</a>(<span class=\"summary-sig-arg\">xs</span>,\n        <span class=\"summary-sig-arg\">nonfinites</span>=<span class=\"summary-sig-default\">True</span>)</span><br />\n      Compute the accurate mean <i class=\"math\">sum(xs) / len(xs)</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fmath-module.html#fmean_\" class=\"summary-sig-name\">fmean_</a>(<span class=\"summary-sig-arg\">*xs</span>,\n        <span class=\"summary-sig-arg\">**nonfinites</span>)</span><br />\n      Compute the accurate mean <i class=\"math\">sum(xs) / len(xs)</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fmath-module.html#f2mul_\" class=\"summary-sig-name\">f2mul_</a>(<span class=\"summary-sig-arg\">x</span>,\n        <span class=\"summary-sig-arg\">*ys</span>,\n        <span class=\"summary-sig-arg\">**nonfinites</span>)</span><br />\n      Cascaded, accurate multiplication <code><b>x</b> * <b>y</b> * \n      <b>y</b> ...</code> for all <b><code>ys</code></b>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fmath-module.html#fpolynomial\" class=\"summary-sig-name\">fpolynomial</a>(<span class=\"summary-sig-arg\">x</span>,\n        <span class=\"summary-sig-arg\">*cs</span>,\n        <span class=\"summary-sig-arg\">**over_f2product_nonfinites</span>)</span><br />\n      Evaluate the polynomial <i class=\"math\">sum(cs[i] * x**i for \n      i=0..len(cs)) [/ over]</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fmath-module.html#fpowers\" class=\"summary-sig-name\">fpowers</a>(<span class=\"summary-sig-arg\">x</span>,\n        <span class=\"summary-sig-arg\">n</span>,\n        <span class=\"summary-sig-arg\">alts</span>=<span class=\"summary-sig-default\">0</span>)</span><br />\n      Return a series of powers <i class=\"math\">[x**i for i=1..n]</i>, note\n      <i>1..!</i></td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fmath-module.html#fprod\" class=\"summary-sig-name\">fprod</a>(<span class=\"summary-sig-arg\">xs</span>,\n        <span class=\"summary-sig-arg\">start</span>=<span class=\"summary-sig-default\">1</span>)</span><br />\n      Iterable product, like <code>math.prod</code> or \n      <code>numpy.prod</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fmath-module.html#frandoms\" class=\"summary-sig-name\">frandoms</a>(<span class=\"summary-sig-arg\">n</span>,\n        <span class=\"summary-sig-arg\">seeded</span>=<span class=\"summary-sig-default\">None</span>)</span><br />\n      Generate <code>n</code> (long) lists of random <code>floats</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fmath-module.html#frange\" class=\"summary-sig-name\">frange</a>(<span class=\"summary-sig-arg\">start</span>,\n        <span class=\"summary-sig-arg\">number</span>,\n        <span class=\"summary-sig-arg\">step</span>=<span class=\"summary-sig-default\">1</span>)</span><br />\n      Generate a range of <code>float</code>s.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">value</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fmath-module.html#freduce\" class=\"summary-sig-name\">freduce</a>(<span class=\"summary-sig-arg\">function</span>,\n        <span class=\"summary-sig-arg\">sequence</span>,\n        <span class=\"summary-sig-arg\">initial</span>=<span class=\"summary-sig-default\">...</span>)</span><br />\n      Apply a function of two arguments cumulatively to the items of a \n      sequence, from left to right, so as to reduce the sequence to a \n      single value.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fmath-module.html#fremainder\" class=\"summary-sig-name\">fremainder</a>(<span class=\"summary-sig-arg\">x</span>,\n        <span class=\"summary-sig-arg\">y</span>)</span><br />\n      Remainder in range <code>[-<b>y / 2</b>, <b>y / 2</b>]</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"hypot\"></a><span class=\"summary-sig-name\">hypot</span>(<span class=\"summary-sig-arg\">x</span>,\n        <span class=\"summary-sig-arg\">y</span>)</span><br />\n      Return the Euclidean distance, sqrt(x*x + y*y).</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fmath-module.html#hypot_\" class=\"summary-sig-name\">hypot_</a>(<span class=\"summary-sig-arg\">*xs</span>)</span><br />\n      Compute the norm <i class=\"math\">sqrt(sum(x**2 for x in xs))</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fmath-module.html#hypot1\" class=\"summary-sig-name\">hypot1</a>(<span class=\"summary-sig-arg\">x</span>)</span><br />\n      Compute the norm <i class=\"math\">sqrt(1 + x**2)</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fmath-module.html#hypot2\" class=\"summary-sig-name\">hypot2</a>(<span class=\"summary-sig-arg\">x</span>,\n        <span class=\"summary-sig-arg\">y</span>,\n        <span class=\"summary-sig-arg\">*xy0</span>)</span><br />\n      Compute the <i>squared</i> norm <i class=\"math\">x**2 + y**2</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fmath-module.html#hypot2_\" class=\"summary-sig-name\">hypot2_</a>(<span class=\"summary-sig-arg\">*xs</span>)</span><br />\n      Compute the <i>squared</i> norm <code>fsum(x**2 for x in \n      <b>xs</b>)</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fmath-module.html#norm2\" class=\"summary-sig-name\">norm2</a>(<span class=\"summary-sig-arg\">x</span>,\n        <span class=\"summary-sig-arg\">y</span>,\n        <span class=\"summary-sig-arg\">*xy0</span>)</span><br />\n      Normalize a 2-dimensional vector.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fmath-module.html#norm_\" class=\"summary-sig-name\">norm_</a>(<span class=\"summary-sig-arg\">*xs</span>)</span><br />\n      Normalize the components of an n-dimensional vector.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fmath-module.html#polar2\" class=\"summary-sig-name\">polar2</a>(<span class=\"summary-sig-arg\">x</span>,\n        <span class=\"summary-sig-arg\">y</span>,\n        <span class=\"summary-sig-arg\">*xy0</span>)</span><br />\n      Return 2-tuple <code>(length, angle)</code> with <code>angle</code> \n      in radians <i class=\"math\">[0..+PI2)</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fmath-module.html#polar2d\" class=\"summary-sig-name\">polar2d</a>(<span class=\"summary-sig-arg\">x</span>,\n        <span class=\"summary-sig-arg\">y</span>,\n        <span class=\"summary-sig-arg\">*xy0</span>)</span><br />\n      Return 2-tuple <code>(length, angle)</code> with <code>angle</code> \n      in degrees <i class=\"math\">[0..+360)</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fmath-module.html#sqrt0\" class=\"summary-sig-name\">sqrt0</a>(<span class=\"summary-sig-arg\">x</span>,\n        <span class=\"summary-sig-arg\">Error</span>=<span class=\"summary-sig-default\">None</span>)</span><br />\n      Return the square root <code>sqrt(<b>x</b>)</code> iff <code><b>x</b>\n      &gt; </code>EPS02, preserving <code>type(<b>x</b>)</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fmath-module.html#sqrt3\" class=\"summary-sig-name\">sqrt3</a>(<span class=\"summary-sig-arg\">x</span>)</span><br />\n      Return the square root, <i>cubed</i> <i class=\"math\">sqrt(x)**3</i> \n      or <i class=\"math\">sqrt(x**3)</i>, preserving \n      <code>type(<b>x</b>)</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fmath-module.html#sqrt_a\" class=\"summary-sig-name\">sqrt_a</a>(<span class=\"summary-sig-arg\">h</span>,\n        <span class=\"summary-sig-arg\">b</span>)</span><br />\n      Compute the <code><i>a</i></code> side of a right-angled triangle \n      from <code>sqrt(<b>h</b>**2 - <b>b</b>**2)</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fmath-module.html#zcrt\" class=\"summary-sig-name\">zcrt</a>(<span class=\"summary-sig-arg\">x</span>)</span><br />\n      Return the 6-th, <i>zenzi-cubic</i> root, <i class=\"math\">x**(1 / \n      6)</i>, preserving <code>type(<b>x</b>)</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fmath-module.html#zqrt\" class=\"summary-sig-name\">zqrt</a>(<span class=\"summary-sig-arg\">x</span>)</span><br />\n      Return the 8-th, <i>zenzi-quartic</i> or <i>squared-quartic</i> root,\n      <i class=\"math\">x**(1 / 8)</i>, preserving \n      <code>type(<b>x</b>)</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== VARIABLES ==================== -->\n<a name=\"section-Variables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Variables</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"__all__\"></a><span class=\"summary-name\">__all__</span> = <code title=\"_ALL_LAZY.fmath\">_ALL_LAZY.fmath</code>\n    </td>\n  </tr>\n</table>\n<!-- ==================== FUNCTION DETAILS ==================== -->\n<a name=\"section-FunctionDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Function Details</span></td>\n</tr>\n</table>\n<a name=\"bqrt\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">bqrt</span>&nbsp;(<span class=\"sig-arg\">x</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the 4-th, <i>bi-quadratic</i> or <i>quartic</i> root, <i \n  class=\"math\">x**(1 / 4)</i>, preserving <code>type(<b>x</b>)</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>x</code></strong> - Value (<code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><i>Quartic</i> root (<code>float</code> or an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeeError</strong></code> - Invalid <b><code>x</code></b>.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Negative <b><code>x</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Functions <a href=\"pygeodesy.fmath-module.html#zcrt\" \n        class=\"link\">zcrt</a> and <a \n        href=\"pygeodesy.fmath-module.html#zqrt\" class=\"link\">zqrt</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"cbrt\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">cbrt</span>&nbsp;(<span class=\"sig-arg\">x</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the cube root <i class=\"math\">x**(1/3)</i>, preserving \n  <code>type(<b>x</b>)</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>x</code></strong> - Value (<code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Cubic root (<code>float</code> or <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a>).</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Functions <a href=\"pygeodesy.fmath-module.html#cbrt2\" \n        class=\"link\">cbrt2</a> and <a \n        href=\"pygeodesy.fmath-module.html#sqrt3\" class=\"link\">sqrt3</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"cbrt2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">cbrt2</span>&nbsp;(<span class=\"sig-arg\">x</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the cube root <i>squared</i> <i class=\"math\">x**(2/3)</i>, \n  preserving <code>type(<b>x</b>)</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>x</code></strong> - Value (<code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Cube root <i>squared</i> (<code>float</code> or <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a>).</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Functions <a href=\"pygeodesy.fmath-module.html#cbrt\" \n        class=\"link\">cbrt</a> and <a \n        href=\"pygeodesy.fmath-module.html#sqrt3\" class=\"link\">sqrt3</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"euclid\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">euclid</span>&nbsp;(<span class=\"sig-arg\">x</span>,\n        <span class=\"sig-arg\">y</span>,\n        <span class=\"sig-arg\">*xy0</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p><i>Appoximate</i> the norm <i class=\"math\">hypot(<b>x</b>, \n  <b>y</b>)</i> by <i class=\"math\">max(abs(<b>x</b>), abs(<b>y</b>)) + \n  min(abs(<b>x</b>), abs(<b>y</b>)) * 0.4142...</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>x</code></strong> - X component (<code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>y</code></strong> - Y component (<code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>xy0</code></strong> - Optional reference <code>(x0, y0)</code> (each \n          <code>scalar</code>, an <a href=\"pygeodesy.fsums.Fsum-class.html\"\n          class=\"link\">Fsum</a> or <a \n          href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Appoximate norm (<code>float</code> or <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"euclid_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">euclid_</span>&nbsp;(<span class=\"sig-arg\">*xs</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p><i>Appoximate</i> the norm <i class=\"math\">sqrt(sum(x**2 for x in \n  xs))</i> by cascaded <a href=\"pygeodesy.fmath-module.html#euclid\" \n  class=\"link\">euclid</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>xs</code></strong> - X values (each <code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>), all positional.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Appoximate norm (<code>float</code> or <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a>).</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.fmath-module.html#euclid\" \n        class=\"link\">euclid</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"facos1\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">facos1</span>&nbsp;(<span class=\"sig-arg\">x</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Fast approximation of <a href=\"pygeodesy.utily-module.html#acos1\" \n  class=\"link\">pygeodesy.acos1</a><code>(<b>x</b>)</code>, scalar.</p>\n  <dl class=\"fields\">\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a \n        href=\"https://GitHub.com/michaldrobot/ShaderFastLibs/blob/master/ShaderFastMathLib.h\"\n        target=\"_top\">ShaderFastLibs.h</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"fasin1\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">fasin1</span>&nbsp;(<span class=\"sig-arg\">x</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Fast approximation of <a href=\"pygeodesy.utily-module.html#asin1\" \n  class=\"link\">pygeodesy.asin1</a><code>(<b>x</b>)</code>, scalar.</p>\n  <dl class=\"fields\">\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"pygeodesy.fmath-module.html#facos1\" \n        class=\"link\">facos1</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"fatan1\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">fatan1</span>&nbsp;(<span class=\"sig-arg\">x</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Fast approximation of <code>atan(<b>x</b>)</code> for <code>0 &lt;= \n  <b>x</b> &lt; 1</code>, <i>unchecked</i>.</p>\n  <dl class=\"fields\">\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a \n        href=\"https://GitHub.com/michaldrobot/ShaderFastLibs/blob/master/ShaderFastMathLib.h\"\n        target=\"_top\">ShaderFastLibs.h</a> and <a \n        href=\"http://www-Labs.IRO.UMontreal.CA/~mignotte/IFT2425/Documents/EfficientApproximationArctgFunction.pdf\"\n        target=\"_top\">Efficient approximations for the arctangent \n        function</a>, IEEE Signal Processing Magazine, 111, May 2006.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"fatan2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">fatan2</span>&nbsp;(<span class=\"sig-arg\">y</span>,\n        <span class=\"sig-arg\">x</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Fast approximation of <code>atan2(<b>y</b>, <b>x</b>)</code>, \n  scalar.</p>\n  <dl class=\"fields\">\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a \n        href=\"https://GitHub.com/CesiumGS/cesium/blob/master/Source/Shaders/Builtin/Functions/fastApproximateAtan.glsl\"\n        target=\"_top\">fastApproximateAtan(x, y)</a> and <a \n        href=\"pygeodesy.fmath-module.html#fatan1\" class=\"link\">fatan1</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"favg\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">favg</span>&nbsp;(<span class=\"sig-arg\">a</span>,\n        <span class=\"sig-arg\">b</span>,\n        <span class=\"sig-arg\">f</span>=<span class=\"sig-default\">0.5</span>,\n        <span class=\"sig-arg\">nonfinites</span>=<span class=\"sig-default\">True</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the precise average of two values.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>a</code></strong> - One (<code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>b</code></strong> - Other (<code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>f</code></strong> - Optional fraction (<code>float</code>).</li>\n        <li><strong class=\"pname\"><code>nonfinites</code></strong> - Optional setting, see function <a \n          href=\"pygeodesy.fmath-module.html#fma\" class=\"link\">fma</a>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><i class=\"math\">a + f * (b - a)</i> (<code>float</code>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"fdot\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">fdot</span>&nbsp;(<span class=\"sig-arg\">xs</span>,\n        <span class=\"sig-arg\">*ys</span>,\n        <span class=\"sig-arg\">**start_f2product_nonfinites</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the precision dot product <i class=\"math\">start + sum(xs[i] * \n  ys[i] for i in range(len(xs)))</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>xs</code></strong> - Iterable of values (each <code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>ys</code></strong> - Other values (each <code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>), all positional.</li>\n        <li><strong class=\"pname\"><code>start_f2product_nonfinites</code></strong> - Optional bias <code><b>start</b>=0</code> (<code>scalar</code>, \n          an <a href=\"pygeodesy.fsums.Fsum-class.html\" \n          class=\"link\">Fsum</a> or <a \n          href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>) and settings \n          <code><b>f2product</b>=None</code> (<code>bool</code>) and \n          <code><b>nonfinites=True</b></code> (<code>bool</code>), see \n          class <a href=\"pygeodesy.fsums.Fsum-class.html#__init__\" \n          class=\"link\">Fsum</a>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Dot product (<code>float</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.LenError-class.html\">LenError</a></strong></code> - Unequal <code>len(<b>xs</b>)</code> and \n        <code>len(<b>ys</b>)</code>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Class <a href=\"pygeodesy.fmath.Fdot-class.html\" \n        class=\"link\">Fdot</a>, <a \n        href=\"https://www.TUHH.De/ti3/paper/rump/OgRuOi05.pdf\" \n        target=\"_top\">Algorithm 5.10 <b>DotK</b></a> and function \n        <code>math.sumprod</code> in Python 3.12 and later.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"fdot_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">fdot_</span>&nbsp;(<span class=\"sig-arg\">*xys</span>,\n        <span class=\"sig-arg\">**start_f2product_nonfinites</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the (precision) dot product <i class=\"math\">start + sum(xys[i] \n  * xys[i+1] for i in range(0, len(xys), <b>2</b>))</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>xys</code></strong> - Pairwise values (each <code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>), all positional.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Dot product (<code>float</code>).</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.fmath-module.html#fdot\" \n        class=\"link\">fdot</a> for further details.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"fdot3\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">fdot3</span>&nbsp;(<span class=\"sig-arg\">xs</span>,\n        <span class=\"sig-arg\">ys</span>,\n        <span class=\"sig-arg\">zs</span>,\n        <span class=\"sig-arg\">**start_f2product_nonfinites</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the (precision) dot product <i class=\"math\">start + sum(xs[i] *\n  ys[i] * zs[i] for i in range(len(xs)))</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>xs</code></strong> - X values iterable (each <code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>ys</code></strong> - Y values iterable (each <code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>zs</code></strong> - Z values iterable (each <code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Dot product (<code>float</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.LenError-class.html\">LenError</a></strong></code> - Unequal <code>len(<b>xs</b>)</code>, <code>len(<b>ys</b>)</code> \n        and/or <code>len(<b>zs</b>)</code>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.fmath-module.html#fdot\" \n        class=\"link\">fdot</a> for further details.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"fhorner\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">fhorner</span>&nbsp;(<span class=\"sig-arg\">x</span>,\n        <span class=\"sig-arg\">*cs</span>,\n        <span class=\"sig-arg\">**incx</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Horner form evaluation of polynomial <i class=\"math\">sum(cs[i] * x**i \n  for i=0..n)</i> as in- or decreasing exponent <i class=\"math\">sum(... \n  i=n..0)</i>, where <code>n = len(cs) - 1</code>.</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd>Horner sum (<code>float</code>).</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Class <a href=\"pygeodesy.fmath.Fhorner-class.html#__init__\" \n        class=\"link\">Fhorner</a> for further details.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"fidw\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">fidw</span>&nbsp;(<span class=\"sig-arg\">xs</span>,\n        <span class=\"sig-arg\">ds</span>,\n        <span class=\"sig-arg\">beta</span>=<span class=\"sig-default\">2</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Interpolate using <a \n  href=\"https://WikiPedia.org/wiki/Inverse_distance_weighting\" \n  target=\"_top\">Inverse Distance Weighting</a> (IDW).</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>xs</code></strong> - Known values (each <code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>ds</code></strong> - Non-negative distances (each <code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>beta</code></strong> - Inverse distance power (<code>int</code>, 0, 1, 2, or 3).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Interpolated value <code>x</code> (<code>float</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.LenError-class.html\">LenError</a></strong></code> - Unequal or zero <code>len(<b>ds</b>)</code> and \n        <code>len(<b>xs</b>)</code>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - An invalid <b><code>ds</code></b> or <b><code>xs</code></b>.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>beta</code></b>, negative <b><code>ds</code></b> \n        or weighted <b><code>ds</code></b> below <a \n        href=\"pygeodesy-module.html#EPS\" class=\"link\">EPS</a>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        Using <code><b>beta</b>=0</code> returns the mean of \n        <b><code>xs</code></b>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"fma\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">fma</span>&nbsp;(<span class=\"sig-arg\">x</span>,\n        <span class=\"sig-arg\">y</span>,\n        <span class=\"sig-arg\">z</span>,\n        <span class=\"sig-arg\">**nonfinites</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Fused-multiply-add, using <code>math.fma(x, y, z)</code> in Python \n  3.13+ or an equivalent implementation.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>x</code></strong> - Multiplicand (<code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>y</code></strong> - Multiplier (<code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>z</code></strong> - Addend (<code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>nonfinites</code></strong> - Use <code><b>nonfinites</b>=True</code> or <code>=False</code>, \n          to override default <a \n          href=\"pygeodesy.fsums-module.html#nonfiniterrors\" \n          class=\"link\">nonfiniterrors</a> (<code>bool</code>), see method \n          <a href=\"pygeodesy.fsums.Fsum-class.html#fma\" \n          class=\"link\">Fsum.fma</a>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>(x * y) + z</code> (<code>float</code> or <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"fmean\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">fmean</span>&nbsp;(<span class=\"sig-arg\">xs</span>,\n        <span class=\"sig-arg\">nonfinites</span>=<span class=\"sig-default\">True</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the accurate mean <i class=\"math\">sum(xs) / len(xs)</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>xs</code></strong> - Values (each <code>scalar</code>, or <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Mean value (<code>float</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.LenError-class.html\">LenError</a></strong></code> - No <b><code>xs</code></b> values.</li>\n        <li><code><strong class='fraise'>OverflowError</strong></code> - Partial <code>2sum</code> overflow.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"fmean_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">fmean_</span>&nbsp;(<span class=\"sig-arg\">*xs</span>,\n        <span class=\"sig-arg\">**nonfinites</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the accurate mean <i class=\"math\">sum(xs) / len(xs)</i>.</p>\n  <dl class=\"fields\">\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.fmath-module.html#fmean\" \n        class=\"link\">fmean</a> for further details.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"f2mul_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">f2mul_</span>&nbsp;(<span class=\"sig-arg\">x</span>,\n        <span class=\"sig-arg\">*ys</span>,\n        <span class=\"sig-arg\">**nonfinites</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Cascaded, accurate multiplication <code><b>x</b> * <b>y</b> * <b>y</b>\n  ...</code> for all <b><code>ys</code></b>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>x</code></strong> - Multiplicand (<code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>ys</code></strong> - Multipliers (each <code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>), all positional.</li>\n        <li><strong class=\"pname\"><code>nonfinites</code></strong> - Use <code><b>nonfinites</b>=True</code> or <code>=False</code>, \n          to override default <a \n          href=\"pygeodesy.fsums-module.html#nonfiniterrors\" \n          class=\"link\">nonfiniterrors</a> (<code>bool</code>), see method \n          <a href=\"pygeodesy.fsums.Fsum-class.html#f2mul_\" \n          class=\"link\">Fsum.f2mul_</a>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The cascaded <i>TwoProduct</i> (<code>float</code>, \n          <code>int</code> or <a href=\"pygeodesy.fsums.Fsum-class.html\" \n          class=\"link\">Fsum</a>).</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"https://www.TUHH.De/ti3/paper/rump/OzOgRuOi06.pdf\" \n        target=\"_top\">Equations 2.3</a>\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"fpolynomial\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">fpolynomial</span>&nbsp;(<span class=\"sig-arg\">x</span>,\n        <span class=\"sig-arg\">*cs</span>,\n        <span class=\"sig-arg\">**over_f2product_nonfinites</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Evaluate the polynomial <i class=\"math\">sum(cs[i] * x**i for \n  i=0..len(cs)) [/ over]</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>over_f2product_nonfinites</code></strong> - Optional final divisor <code><b>over</b>=None</code> \n          (<i>non-zero</i> <code>scalar</code>) and other settings, see \n          class <a href=\"pygeodesy.fmath.Fpolynomial-class.html#__init__\" \n          class=\"link\">Fpolynomial</a>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Polynomial value (<code>float</code> or <a \n          href=\"pygeodesy.fmath.Fpolynomial-class.html\" \n          class=\"link\">Fpolynomial</a>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"fpowers\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">fpowers</span>&nbsp;(<span class=\"sig-arg\">x</span>,\n        <span class=\"sig-arg\">n</span>,\n        <span class=\"sig-arg\">alts</span>=<span class=\"sig-default\">0</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return a series of powers <i class=\"math\">[x**i for i=1..n]</i>, note \n  <i>1..!</i></p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>x</code></strong> - Value (<code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>n</code></strong> - Highest exponent (<code>int</code>).</li>\n        <li><strong class=\"pname\"><code>alts</code></strong> - Only alternating powers, starting with this exponent \n          (<code>int</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Tuple of powers of <b><code>x</code></b> (each \n          <code>type(<b>x</b>)</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>x</code></b> or <b><code>n</code></b> not \n        <code>int</code>.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Non-finite <b><code>x</code></b> or invalid <b><code>n</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"fprod\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">fprod</span>&nbsp;(<span class=\"sig-arg\">xs</span>,\n        <span class=\"sig-arg\">start</span>=<span class=\"sig-default\">1</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Iterable product, like <code>math.prod</code> or \n  <code>numpy.prod</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>xs</code></strong> - Iterable of values to be multiplied (each <code>scalar</code>, an\n          <a href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> \n          or <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>start</code></strong> - Initial value, also the value returned for an empty \n          <b><code>xs</code></b> (<code>scalar</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The product (<code>float</code> or <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a>).</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a \n        href=\"https://docs.SciPy.org/doc/numpy/reference/generated/numpy.prod.html\"\n        target=\"_top\">NumPy.prod</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"frandoms\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">frandoms</span>&nbsp;(<span class=\"sig-arg\">n</span>,\n        <span class=\"sig-arg\">seeded</span>=<span class=\"sig-default\">None</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Generate <code>n</code> (long) lists of random \n  <code>floats</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>n</code></strong> - Number of lists to generate (<code>int</code>, non-negative).</li>\n        <li><strong class=\"pname\"><code>seeded</code></strong> - If <code>scalar</code>, use \n          <code>random.seed(<b>seeded</b>)</code> or if <code>True</code>, \n          seed using today's <code>year-day</code>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a \n        href=\"https://GitHub.com/ActiveState/code/tree/master/recipes/Python/393090_Binary_floating_point_summatiaccurate_full/recipe-393090.py\"\n        target=\"_top\">Hettinger</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"frange\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">frange</span>&nbsp;(<span class=\"sig-arg\">start</span>,\n        <span class=\"sig-arg\">number</span>,\n        <span class=\"sig-arg\">step</span>=<span class=\"sig-default\">1</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Generate a range of <code>float</code>s.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>start</code></strong> - First value (<code>float</code>).</li>\n        <li><strong class=\"pname\"><code>number</code></strong> - The number of <code>float</code>s to generate (<code>int</code>).</li>\n        <li><strong class=\"pname\"><code>step</code></strong> - Increment value (<code>float</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A generator (<code>float</code>s).</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a \n        href=\"https://docs.SciPy.org/doc/numpy/reference/generated/numpy.arange.html\"\n        target=\"_top\">NumPy.prod</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"freduce\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">freduce</span>&nbsp;(<span class=\"sig-arg\">function</span>,\n        <span class=\"sig-arg\">sequence</span>,\n        <span class=\"sig-arg\">initial</span>=<span class=\"sig-default\">...</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Apply a function of two arguments cumulatively to the items of a \n  sequence, from left to right, so as to reduce the sequence to a single \n  value. For example, reduce(lambda x, y: x+y, [1, 2, 3, 4, 5]) calculates \n  ((((1+2)+3)+4)+5).  If initial is present, it is placed before the items \n  of the sequence in the calculation, and serves as a default when the \n  sequence is empty.</p>\n  <dl class=\"fields\">\n    <dt>Returns: value</dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"fremainder\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">fremainder</span>&nbsp;(<span class=\"sig-arg\">x</span>,\n        <span class=\"sig-arg\">y</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Remainder in range <code>[-<b>y / 2</b>, <b>y / 2</b>]</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>x</code></strong> - Numerator (<code>scalar</code>).</li>\n        <li><strong class=\"pname\"><code>y</code></strong> - Modulus, denominator (<code>scalar</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Remainder (<code>scalar</code>, preserving signed 0.0) or \n          <code>NAN</code> for any non-finite <b><code>x</code></b>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ValueError</strong></code> - Infinite or near-zero <b><code>y</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <i>Karney</i>'s <a href=\"https://PyPI.org/project/geographiclib/\" \n        target=\"_top\">Math.remainder</a> and Python 3.7+ <a \n        href=\"https://docs.Python.org/3/library/math.html#math.remainder\" \n        target=\"_top\">math.remainder</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"hypot_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">hypot_</span>&nbsp;(<span class=\"sig-arg\">*xs</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the norm <i class=\"math\">sqrt(sum(x**2 for x in xs))</i>.</p>\n  <p>Similar to Python 3.8+ n-dimension <a \n  href=\"https://docs.Python.org/3.8/library/math.html#math.hypot\" \n  target=\"_top\">math.hypot</a>, but exceptions, <code>nan</code> and \n  <code>infinite</code> values are handled differently.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>xs</code></strong> - X arguments (<code>scalar</code>s), all positional.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Norm (<code>float</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>OverflowError</strong></code> - Partial <code>2sum</code> overflow.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid or no <b><code>xs</code></b> values.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        The Python 3.8+ Euclidian distance <a \n        href=\"https://docs.Python.org/3.8/library/math.html#math.dist\" \n        target=\"_top\">math.dist</a> between 2 <i>n</i>-dimensional points \n        <i>p1</i> and <i>p2</i> can be computed as <i \n        class=\"math\">hypot_(*((c1 - c2) for c1, c2 in zip(p1, p2)))</i>, \n        provided <i>p1</i> and <i>p2</i> have the same, non-zero length \n        <i>n</i>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"hypot1\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">hypot1</span>&nbsp;(<span class=\"sig-arg\">x</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the norm <i class=\"math\">sqrt(1 + x**2)</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>x</code></strong> - Argument (<code>scalar</code> or <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Norm (<code>float</code> or <a \n          href=\"pygeodesy.fmath.Fhypot-class.html\" \n          class=\"link\">Fhypot</a>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"hypot2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">hypot2</span>&nbsp;(<span class=\"sig-arg\">x</span>,\n        <span class=\"sig-arg\">y</span>,\n        <span class=\"sig-arg\">*xy0</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the <i>squared</i> norm <i class=\"math\">x**2 + y**2</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>x</code></strong> - X (<code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>y</code></strong> - Y (<code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>xy0</code></strong> - Optional reference <code>(x0, y0)</code> (each \n          <code>scalar</code>, an <a href=\"pygeodesy.fsums.Fsum-class.html\"\n          class=\"link\">Fsum</a> or <a \n          href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code><b>x</b>**2 + <b>y</b>**2</code> (<code>float</code>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"hypot2_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">hypot2_</span>&nbsp;(<span class=\"sig-arg\">*xs</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the <i>squared</i> norm <code>fsum(x**2 for x in \n  <b>xs</b>)</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>xs</code></strong> - Components (each <code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>), all positional.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Squared norm (<code>float</code>).</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Class <a href=\"pygeodesy.fmath.Fpowers-class.html\" \n        class=\"link\">Fpowers</a> for further details.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"norm2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">norm2</span>&nbsp;(<span class=\"sig-arg\">x</span>,\n        <span class=\"sig-arg\">y</span>,\n        <span class=\"sig-arg\">*xy0</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Normalize a 2-dimensional vector.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>x</code></strong> - X component (<code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>y</code></strong> - Y component (<code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>xy0</code></strong> - Optional reference <code>(x0, y0)</code> (each \n          <code>scalar</code>, an <a href=\"pygeodesy.fsums.Fsum-class.html\"\n          class=\"link\">Fsum</a> or <a \n          href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>2-Tuple <code>(x, y)</code>, normalized.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>x</code></b> or <b><code>y</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"norm_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">norm_</span>&nbsp;(<span class=\"sig-arg\">*xs</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Normalize the components of an n-dimensional vector.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>xs</code></strong> - Components (each <code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>), all positional.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Yield each component, normalized.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid or insufficent <b><code>xs</code></b> or zero norm.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"polar2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">polar2</span>&nbsp;(<span class=\"sig-arg\">x</span>,\n        <span class=\"sig-arg\">y</span>,\n        <span class=\"sig-arg\">*xy0</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return 2-tuple <code>(length, angle)</code> with <code>angle</code> in\n  radians <i class=\"math\">[0..+PI2)</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>x</code></strong> - X (<code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>y</code></strong> - Y (<code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>xy0</code></strong> - Optional reference <code>(x0, y0)</code> (each \n          <code>scalar</code>, an <a href=\"pygeodesy.fsums.Fsum-class.html\"\n          class=\"link\">Fsum</a> or <a \n          href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>).</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        Use <code>polar(<b>y</b>, <b>x</b>, *<b>yx0</b>)</code> to get the \n        angle as <code>bearing</code> from North.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"polar2d\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">polar2d</span>&nbsp;(<span class=\"sig-arg\">x</span>,\n        <span class=\"sig-arg\">y</span>,\n        <span class=\"sig-arg\">*xy0</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return 2-tuple <code>(length, angle)</code> with <code>angle</code> in\n  degrees <i class=\"math\">[0..+360)</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>x</code></strong> - X (<code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>y</code></strong> - Y (<code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>xy0</code></strong> - Optional reference <code>(x0, y0)</code> (each \n          <code>scalar</code>, an <a href=\"pygeodesy.fsums.Fsum-class.html\"\n          class=\"link\">Fsum</a> or <a \n          href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>).</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        Use <code>polar2d(<b>y</b>, <b>x</b>, *<b>yx0</b>)</code> to get \n        the angle as <code>bearing</code> from North.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"sqrt0\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">sqrt0</span>&nbsp;(<span class=\"sig-arg\">x</span>,\n        <span class=\"sig-arg\">Error</span>=<span class=\"sig-default\">None</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the square root <code>sqrt(<b>x</b>)</code> iff <code><b>x</b> \n  &gt; </code>EPS02, preserving <code>type(<b>x</b>)</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>x</code></strong> - Value (<code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>Error</code></strong> - Error to raise for negative <b><code>x</code></b>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Square root (<code>float</code> or <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a>) or \n          <code>0.0</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeeError</strong></code> - Invalid <b><code>x</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        Any <code><b>x</b> &lt; </code>EPS02 <i>including</i> \n        <code><b>x</b> &lt; 0</code> returns <code>0.0</code>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"sqrt3\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">sqrt3</span>&nbsp;(<span class=\"sig-arg\">x</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the square root, <i>cubed</i> <i class=\"math\">sqrt(x)**3</i> or\n  <i class=\"math\">sqrt(x**3)</i>, preserving \n  <code>type(<b>x</b>)</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>x</code></strong> - Value (<code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Square root <i>cubed</i> (<code>float</code> or <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeeError</strong></code> - Invalid <b><code>x</code></b>.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Negative <b><code>x</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Functions <a href=\"pygeodesy.fmath-module.html#cbrt\" \n        class=\"link\">cbrt</a> and <a \n        href=\"pygeodesy.fmath-module.html#cbrt2\" class=\"link\">cbrt2</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"sqrt_a\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">sqrt_a</span>&nbsp;(<span class=\"sig-arg\">h</span>,\n        <span class=\"sig-arg\">b</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the <code><i>a</i></code> side of a right-angled triangle from\n  <code>sqrt(<b>h</b>**2 - <b>b</b>**2)</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>h</code></strong> - Hypotenuse or outer annulus radius (<code>scalar</code>).</li>\n        <li><strong class=\"pname\"><code>b</code></strong> - Triangle side or inner annulus radius (<code>scalar</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>copysign(<i>a</i>, <b>h</b>)</code> or <code>unsigned \n          0.0</code> (<code>float</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Non-scalar <b><code>h</code></b> or <b><code>b</code></b>.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - If <code>abs(<b>h</b>) &lt; abs(<b>b</b>)</code>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Inner tangent chord <b><i>d</i></b> of an <a \n        href=\"https://WikiPedia.org/wiki/Annulus_(mathematics)\" \n        target=\"_top\">annulus</a> and function <a \n        href=\"https://People.SC.FSU.edu/~jburkardt/py_src/geometry/geometry.py\"\n        target=\"_top\">annulus_area</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"zcrt\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">zcrt</span>&nbsp;(<span class=\"sig-arg\">x</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the 6-th, <i>zenzi-cubic</i> root, <i class=\"math\">x**(1 / \n  6)</i>, preserving <code>type(<b>x</b>)</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>x</code></strong> - Value (<code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><i>Zenzi-cubic</i> root (<code>float</code> or <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeeError</strong></code> - Invalid <b><code>x</code></b>.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Negative <b><code>x</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Functions <a href=\"pygeodesy.fmath-module.html#bqrt\" \n        class=\"link\">bqrt</a> and <a \n        href=\"pygeodesy.fmath-module.html#zqrt\" class=\"link\">zqrt</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"zqrt\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">zqrt</span>&nbsp;(<span class=\"sig-arg\">x</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the 8-th, <i>zenzi-quartic</i> or <i>squared-quartic</i> root, \n  <i class=\"math\">x**(1 / 8)</i>, preserving \n  <code>type(<b>x</b>)</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>x</code></strong> - Value (<code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><i>Zenzi-quartic</i> root (<code>float</code> or <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeeError</strong></code> - Invalid <b><code>x</code></b>.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Negative <b><code>x</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Functions <a href=\"pygeodesy.fmath-module.html#bqrt\" \n        class=\"link\">bqrt</a> and <a \n        href=\"pygeodesy.fmath-module.html#zcrt\" class=\"link\">zcrt</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.fmath.Fcbrt-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.fmath.Fcbrt</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.fmath-module.html\">Module&nbsp;fmath</a> ::\n        Class&nbsp;Fcbrt\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.fmath.Fcbrt-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Fcbrt</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+            \n           |            \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+        \n               |        \n      <a href=\"pygeodesy.fsums.Fsum-class.html\">fsums.Fsum</a> --+    \n                   |    \n               <a href=\"pygeodesy.fmath.Froot-class.html\">Froot</a> --+\n                       |\n                      <strong class=\"uidshort\">Fcbrt</strong>\n</pre>\n\n<hr />\n<p>Cubic root of a precision summation.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fmath.Fcbrt-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">*xs</span>,\n        <span class=\"summary-sig-arg\">**name_f2product_nonfinites_RESIDUAL_raiser</span>)</span><br />\n      New <a href=\"pygeodesy.fmath.Fcbrt-class.html\" class=\"link\">Fcbrt</a>\n      cubic root of a precision sum.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.fsums.Fsum-class.html\">fsums.Fsum</a></code></b>:\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#Fsum2Tuple_\">Fsum2Tuple_</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#Fsum_\">Fsum_</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#Fsumf_\">Fsumf_</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#RESIDUAL\">RESIDUAL</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__abs__\">__abs__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__add__\">__add__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__bool__\">__bool__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__call__\">__call__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__ceil__\">__ceil__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__cmp__\">__cmp__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__div__\">__div__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__divmod__\">__divmod__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__eq__\">__eq__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__float__\">__float__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__floor__\">__floor__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__floordiv__\">__floordiv__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__ge__\">__ge__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__gt__\">__gt__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__iadd__\">__iadd__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__idiv__\">__idiv__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__ifloordiv__\">__ifloordiv__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__imod__\">__imod__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__imul__\">__imul__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__int__\">__int__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__invert__\">__invert__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__ipow__\">__ipow__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__isub__\">__isub__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__iter__\">__iter__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__itruediv__\">__itruediv__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__le__\">__le__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__len__\">__len__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__long__\">__long__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__lt__\">__lt__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__mod__\">__mod__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__mul__\">__mul__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__ne__\">__ne__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__neg__\">__neg__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__nonzero__\">__nonzero__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__pos__\">__pos__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__pow__\">__pow__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__radd__\">__radd__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__rdiv__\">__rdiv__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__rdivmod__\">__rdivmod__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__rfloordiv__\">__rfloordiv__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__rmod__\">__rmod__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__rmul__\">__rmul__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__round__\">__round__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__rpow__\">__rpow__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__rsub__\">__rsub__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__rtruediv__\">__rtruediv__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__sub__\">__sub__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__truediv__\">__truediv__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__trunc__\">__trunc__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#as_integer_ratio\">as_integer_ratio</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#cmp\">cmp</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#divmod\">divmod</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#f2mul\">f2mul</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#f2mul_\">f2mul_</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#f2product\">f2product</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fadd\">fadd</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fadd_\">fadd_</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fcopy\">fcopy</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fdiv\">fdiv</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fdivmod\">fdivmod</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fint\">fint</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fint2\">fint2</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fma\">fma</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fma_\">fma_</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fmul\">fmul</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fover\">fover</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fpow\">fpow</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fset_\">fset_</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fsub\">fsub</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fsub_\">fsub_</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fsum\">fsum</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fsum2\">fsum2</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fsum2_\">fsum2_</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fsum2f_\">fsum2f_</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fsum_\">fsum_</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fsumf_\">fsumf_</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#int_float\">int_float</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#is_exact\">is_exact</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#is_finite\">is_finite</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#is_integer\">is_integer</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#is_math_fma\">is_math_fma</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#is_math_fsum\">is_math_fsum</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#is_scalar\">is_scalar</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#nonfinites\">nonfinites</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#pow\">pow</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#rdiv\">rdiv</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#root\">root</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#signOf\">signOf</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#toStr\">toStr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.fsums.Fsum-class.html\">fsums.Fsum</a></code></b>:\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#as_iscalar\">as_iscalar</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#ceil\">ceil</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#float_int\">float_int</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#floor\">floor</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#imag\">imag</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#nonfinitesOK\">nonfinitesOK</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#partials\">partials</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#real\">real</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#residual\">residual</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">*xs</span>,\n        <span class=\"sig-arg\">**name_f2product_nonfinites_RESIDUAL_raiser</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.fmath.Fcbrt-class.html\" class=\"link\">Fcbrt</a> \n  cubic root of a precision sum.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>root</code></strong> - The order (<code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>), non-zero.</li>\n        <li><strong class=\"pname\"><code>xs</code></strong> - Items to summate (each a <code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>), all positional.</li>\n        <li><strong class=\"pname\"><code>name_f2product_nonfinites_RESIDUAL_raiser</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>), \n          <code><b>raiser</b>=True</code> (<code>bool</code>) for raising \n          <a href=\"pygeodesy.fsums.ResidualError-class.html\" \n          class=\"link\">ResidualError</a>s and other settings, see class <a \n          href=\"pygeodesy.fsums.Fsum-class.html#__init__\" \n          class=\"link\">Fsum</a> and method <a \n          href=\"pygeodesy.fsums.Fsum-class.html#__ipow__\" \n          class=\"link\">fpow</a>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Class <a href=\"pygeodesy.fmath.Froot-class.html#__init__\" \n        class=\"link\">Froot</a> for further details.\n      </p>\n</div></td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.fmath.Fdot-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.fmath.Fdot</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.fmath-module.html\">Module&nbsp;fmath</a> ::\n        Class&nbsp;Fdot\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.fmath.Fdot-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Fdot</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+        \n           |        \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n               |    \n      <a href=\"pygeodesy.fsums.Fsum-class.html\">fsums.Fsum</a> --+\n                   |\n                  <strong class=\"uidshort\">Fdot</strong>\n</pre>\n\n<dl><dt>Known Subclasses:</dt>\n<dd>\n      <ul class=\"subclass-list\">\n<li><a href=\"pygeodesy.fmath.Fdot_-class.html\">Fdot_</a></li>  </ul>\n</dd></dl>\n\n<hr />\n<p>Precision dot product.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fmath.Fdot-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">a</span>,\n        <span class=\"summary-sig-arg\">*b</span>,\n        <span class=\"summary-sig-arg\">**start_name_f2product_nonfinites_RESIDUAL</span>)</span><br />\n      New <a href=\"pygeodesy.fmath.Fdot-class.html\" class=\"link\">Fdot</a> \n      precision dot product <i class=\"math\">start + sum(a[i] * b[i] for \n      i=0..len(a)-1)</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.fsums.Fsum-class.html\">fsums.Fsum</a></code></b>:\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#Fsum2Tuple_\">Fsum2Tuple_</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#Fsum_\">Fsum_</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#Fsumf_\">Fsumf_</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#RESIDUAL\">RESIDUAL</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__abs__\">__abs__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__add__\">__add__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__bool__\">__bool__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__call__\">__call__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__ceil__\">__ceil__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__cmp__\">__cmp__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__div__\">__div__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__divmod__\">__divmod__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__eq__\">__eq__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__float__\">__float__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__floor__\">__floor__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__floordiv__\">__floordiv__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__ge__\">__ge__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__gt__\">__gt__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__iadd__\">__iadd__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__idiv__\">__idiv__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__ifloordiv__\">__ifloordiv__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__imod__\">__imod__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__imul__\">__imul__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__int__\">__int__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__invert__\">__invert__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__ipow__\">__ipow__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__isub__\">__isub__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__iter__\">__iter__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__itruediv__\">__itruediv__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__le__\">__le__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__len__\">__len__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__long__\">__long__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__lt__\">__lt__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__mod__\">__mod__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__mul__\">__mul__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__ne__\">__ne__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__neg__\">__neg__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__nonzero__\">__nonzero__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__pos__\">__pos__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__pow__\">__pow__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__radd__\">__radd__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__rdiv__\">__rdiv__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__rdivmod__\">__rdivmod__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__rfloordiv__\">__rfloordiv__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__rmod__\">__rmod__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__rmul__\">__rmul__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__round__\">__round__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__rpow__\">__rpow__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__rsub__\">__rsub__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__rtruediv__\">__rtruediv__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__sub__\">__sub__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__truediv__\">__truediv__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__trunc__\">__trunc__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#as_integer_ratio\">as_integer_ratio</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#cmp\">cmp</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#divmod\">divmod</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#f2mul\">f2mul</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#f2mul_\">f2mul_</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#f2product\">f2product</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fadd\">fadd</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fadd_\">fadd_</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fcopy\">fcopy</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fdiv\">fdiv</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fdivmod\">fdivmod</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fint\">fint</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fint2\">fint2</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fma\">fma</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fma_\">fma_</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fmul\">fmul</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fover\">fover</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fpow\">fpow</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fset_\">fset_</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fsub\">fsub</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fsub_\">fsub_</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fsum\">fsum</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fsum2\">fsum2</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fsum2_\">fsum2_</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fsum2f_\">fsum2f_</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fsum_\">fsum_</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fsumf_\">fsumf_</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#int_float\">int_float</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#is_exact\">is_exact</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#is_finite\">is_finite</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#is_integer\">is_integer</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#is_math_fma\">is_math_fma</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#is_math_fsum\">is_math_fsum</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#is_scalar\">is_scalar</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#nonfinites\">nonfinites</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#pow\">pow</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#rdiv\">rdiv</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#root\">root</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#signOf\">signOf</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#toStr\">toStr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.fsums.Fsum-class.html\">fsums.Fsum</a></code></b>:\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#as_iscalar\">as_iscalar</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#ceil\">ceil</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#float_int\">float_int</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#floor\">floor</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#imag\">imag</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#nonfinitesOK\">nonfinitesOK</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#partials\">partials</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#real\">real</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#residual\">residual</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">a</span>,\n        <span class=\"sig-arg\">*b</span>,\n        <span class=\"sig-arg\">**start_name_f2product_nonfinites_RESIDUAL</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.fmath.Fdot-class.html\" class=\"link\">Fdot</a> \n  precision dot product <i class=\"math\">start + sum(a[i] * b[i] for \n  i=0..len(a)-1)</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>a</code></strong> - Iterable of values (each <code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>b</code></strong> - Other values (each <code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>), all positional.</li>\n        <li><strong class=\"pname\"><code>start_name_f2product_nonfinites_RESIDUAL</code></strong> - Optional bias <code><b>start</b>=0</code> (<code>scalar</code>, \n          an <a href=\"pygeodesy.fsums.Fsum-class.html\" \n          class=\"link\">Fsum</a> or <a \n          href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>), <code><b>name</b>=NN</code> \n          (<code>str</code>) and other settings, see class <a \n          href=\"pygeodesy.fsums.Fsum-class.html#__init__\" \n          class=\"link\">Fsum</a>.</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.LenError-class.html\">LenError</a></strong></code> - Unequal <code>len(<b>a</b>)</code> and <code>len(<b>b</b>)</code>.</li>\n        <li><code><strong class='fraise'>OverflowError</strong></code> - Partial <code>2sum</code> overflow.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>x</code></b>.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Non-finite <b><code>x</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.fmath-module.html#fdot\" \n        class=\"link\">fdot</a> and method <a \n        href=\"pygeodesy.fsums.Fsum-class.html#fadd\" \n        class=\"link\">Fsum.fadd</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.fmath.Fdot_-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.fmath.Fdot_</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.fmath-module.html\">Module&nbsp;fmath</a> ::\n        Class&nbsp;Fdot_\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.fmath.Fdot_-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Fdot_</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+            \n           |            \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+        \n               |        \n      <a href=\"pygeodesy.fsums.Fsum-class.html\">fsums.Fsum</a> --+    \n                   |    \n                <a href=\"pygeodesy.fmath.Fdot-class.html\">Fdot</a> --+\n                       |\n                      <strong class=\"uidshort\">Fdot_</strong>\n</pre>\n\n<hr />\n<p>Precision dot product.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fmath.Fdot_-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">*xys</span>,\n        <span class=\"summary-sig-arg\">**start_name_f2product_nonfinites_RESIDUAL</span>)</span><br />\n      New <a href=\"pygeodesy.fmath.Fdot_-class.html\" class=\"link\">Fdot_</a>\n      precision dot product <i class=\"math\">start + sum(xys[i] * xys[i+1] \n      for i in range(0, len(xys), <b>2</b>))</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.fsums.Fsum-class.html\">fsums.Fsum</a></code></b>:\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#Fsum2Tuple_\">Fsum2Tuple_</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#Fsum_\">Fsum_</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#Fsumf_\">Fsumf_</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#RESIDUAL\">RESIDUAL</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__abs__\">__abs__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__add__\">__add__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__bool__\">__bool__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__call__\">__call__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__ceil__\">__ceil__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__cmp__\">__cmp__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__div__\">__div__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__divmod__\">__divmod__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__eq__\">__eq__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__float__\">__float__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__floor__\">__floor__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__floordiv__\">__floordiv__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__ge__\">__ge__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__gt__\">__gt__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__iadd__\">__iadd__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__idiv__\">__idiv__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__ifloordiv__\">__ifloordiv__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__imod__\">__imod__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__imul__\">__imul__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__int__\">__int__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__invert__\">__invert__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__ipow__\">__ipow__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__isub__\">__isub__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__iter__\">__iter__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__itruediv__\">__itruediv__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__le__\">__le__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__len__\">__len__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__long__\">__long__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__lt__\">__lt__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__mod__\">__mod__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__mul__\">__mul__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__ne__\">__ne__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__neg__\">__neg__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__nonzero__\">__nonzero__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__pos__\">__pos__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__pow__\">__pow__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__radd__\">__radd__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__rdiv__\">__rdiv__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__rdivmod__\">__rdivmod__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__rfloordiv__\">__rfloordiv__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__rmod__\">__rmod__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__rmul__\">__rmul__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__round__\">__round__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__rpow__\">__rpow__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__rsub__\">__rsub__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__rtruediv__\">__rtruediv__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__sub__\">__sub__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__truediv__\">__truediv__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__trunc__\">__trunc__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#as_integer_ratio\">as_integer_ratio</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#cmp\">cmp</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#divmod\">divmod</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#f2mul\">f2mul</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#f2mul_\">f2mul_</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#f2product\">f2product</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fadd\">fadd</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fadd_\">fadd_</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fcopy\">fcopy</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fdiv\">fdiv</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fdivmod\">fdivmod</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fint\">fint</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fint2\">fint2</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fma\">fma</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fma_\">fma_</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fmul\">fmul</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fover\">fover</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fpow\">fpow</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fset_\">fset_</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fsub\">fsub</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fsub_\">fsub_</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fsum\">fsum</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fsum2\">fsum2</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fsum2_\">fsum2_</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fsum2f_\">fsum2f_</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fsum_\">fsum_</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fsumf_\">fsumf_</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#int_float\">int_float</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#is_exact\">is_exact</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#is_finite\">is_finite</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#is_integer\">is_integer</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#is_math_fma\">is_math_fma</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#is_math_fsum\">is_math_fsum</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#is_scalar\">is_scalar</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#nonfinites\">nonfinites</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#pow\">pow</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#rdiv\">rdiv</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#root\">root</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#signOf\">signOf</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#toStr\">toStr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.fsums.Fsum-class.html\">fsums.Fsum</a></code></b>:\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#as_iscalar\">as_iscalar</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#ceil\">ceil</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#float_int\">float_int</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#floor\">floor</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#imag\">imag</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#nonfinitesOK\">nonfinitesOK</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#partials\">partials</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#real\">real</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#residual\">residual</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">*xys</span>,\n        <span class=\"sig-arg\">**start_name_f2product_nonfinites_RESIDUAL</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.fmath.Fdot_-class.html\" class=\"link\">Fdot_</a> \n  precision dot product <i class=\"math\">start + sum(xys[i] * xys[i+1] for i\n  in range(0, len(xys), <b>2</b>))</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>xys</code></strong> - Pairwise values (each <code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>), all positional.</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.LenError-class.html\">LenError</a></strong></code> - Unequal <code>len(<b>a</b>)</code> and <code>len(<b>b</b>)</code>.</li>\n        <li><code><strong class='fraise'>OverflowError</strong></code> - Partial <code>2sum</code> overflow.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>x</code></b>.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Non-finite <b><code>x</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Class <a href=\"pygeodesy.fmath.Fdot-class.html#__init__\" \n        class=\"link\">Fdot</a> for further details.\n      </p>\n</div></td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.fmath.Fhorner-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.fmath.Fhorner</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.fmath-module.html\">Module&nbsp;fmath</a> ::\n        Class&nbsp;Fhorner\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.fmath.Fhorner-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Fhorner</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+        \n           |        \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n               |    \n      <a href=\"pygeodesy.fsums.Fsum-class.html\">fsums.Fsum</a> --+\n                   |\n                  <strong class=\"uidshort\">Fhorner</strong>\n</pre>\n\n<hr />\n<p>Precision polynomial evaluation using the Horner form.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fmath.Fhorner-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">x</span>,\n        <span class=\"summary-sig-arg\">*cs</span>,\n        <span class=\"summary-sig-arg\">**incx_name_f2product_nonfinites_RESIDUAL</span>)</span><br />\n      New <a href=\"pygeodesy.fmath.Fhorner-class.html\" \n      class=\"link\">Fhorner</a> form evaluation of polynomial <i \n      class=\"math\">sum(cs[i] * x**i for i=0..n)</i> with in- or decreasing \n      exponent <i class=\"math\">sum(... i=n..0)</i>, where <code>n = len(cs)\n      - 1</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.fsums.Fsum-class.html\">fsums.Fsum</a></code></b>:\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#Fsum2Tuple_\">Fsum2Tuple_</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#Fsum_\">Fsum_</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#Fsumf_\">Fsumf_</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#RESIDUAL\">RESIDUAL</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__abs__\">__abs__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__add__\">__add__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__bool__\">__bool__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__call__\">__call__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__ceil__\">__ceil__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__cmp__\">__cmp__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__div__\">__div__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__divmod__\">__divmod__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__eq__\">__eq__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__float__\">__float__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__floor__\">__floor__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__floordiv__\">__floordiv__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__ge__\">__ge__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__gt__\">__gt__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__iadd__\">__iadd__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__idiv__\">__idiv__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__ifloordiv__\">__ifloordiv__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__imod__\">__imod__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__imul__\">__imul__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__int__\">__int__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__invert__\">__invert__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__ipow__\">__ipow__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__isub__\">__isub__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__iter__\">__iter__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__itruediv__\">__itruediv__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__le__\">__le__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__len__\">__len__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__long__\">__long__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__lt__\">__lt__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__mod__\">__mod__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__mul__\">__mul__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__ne__\">__ne__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__neg__\">__neg__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__nonzero__\">__nonzero__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__pos__\">__pos__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__pow__\">__pow__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__radd__\">__radd__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__rdiv__\">__rdiv__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__rdivmod__\">__rdivmod__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__rfloordiv__\">__rfloordiv__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__rmod__\">__rmod__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__rmul__\">__rmul__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__round__\">__round__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__rpow__\">__rpow__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__rsub__\">__rsub__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__rtruediv__\">__rtruediv__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__sub__\">__sub__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__truediv__\">__truediv__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__trunc__\">__trunc__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#as_integer_ratio\">as_integer_ratio</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#cmp\">cmp</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#divmod\">divmod</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#f2mul\">f2mul</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#f2mul_\">f2mul_</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#f2product\">f2product</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fadd\">fadd</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fadd_\">fadd_</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fcopy\">fcopy</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fdiv\">fdiv</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fdivmod\">fdivmod</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fint\">fint</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fint2\">fint2</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fma\">fma</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fma_\">fma_</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fmul\">fmul</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fover\">fover</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fpow\">fpow</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fset_\">fset_</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fsub\">fsub</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fsub_\">fsub_</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fsum\">fsum</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fsum2\">fsum2</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fsum2_\">fsum2_</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fsum2f_\">fsum2f_</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fsum_\">fsum_</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fsumf_\">fsumf_</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#int_float\">int_float</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#is_exact\">is_exact</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#is_finite\">is_finite</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#is_integer\">is_integer</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#is_math_fma\">is_math_fma</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#is_math_fsum\">is_math_fsum</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#is_scalar\">is_scalar</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#nonfinites\">nonfinites</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#pow\">pow</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#rdiv\">rdiv</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#root\">root</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#signOf\">signOf</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#toStr\">toStr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.fsums.Fsum-class.html\">fsums.Fsum</a></code></b>:\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#as_iscalar\">as_iscalar</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#ceil\">ceil</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#float_int\">float_int</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#floor\">floor</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#imag\">imag</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#nonfinitesOK\">nonfinitesOK</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#partials\">partials</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#real\">real</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#residual\">residual</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">x</span>,\n        <span class=\"sig-arg\">*cs</span>,\n        <span class=\"sig-arg\">**incx_name_f2product_nonfinites_RESIDUAL</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.fmath.Fhorner-class.html\" \n  class=\"link\">Fhorner</a> form evaluation of polynomial <i \n  class=\"math\">sum(cs[i] * x**i for i=0..n)</i> with in- or decreasing \n  exponent <i class=\"math\">sum(... i=n..0)</i>, where <code>n = len(cs) - \n  1</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>x</code></strong> - Polynomial argument (<code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>cs</code></strong> - Polynomial coeffients (each <code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>), all positional.</li>\n        <li><strong class=\"pname\"><code>incx_name_f2product_nonfinites_RESIDUAL</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>), \n          <code><b>incx</b>=True</code> for in-/decreasing exponents \n          (<code>bool</code>) and other settings, see class <a \n          href=\"pygeodesy.fsums.Fsum-class.html#__init__\" \n          class=\"link\">Fsum</a>.</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>OverflowError</strong></code> - Partial <code>2sum</code> overflow.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>x</code></b>.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Non-finite <b><code>x</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.fmath-module.html#fhorner\" \n        class=\"link\">fhorner</a> and methods <a \n        href=\"pygeodesy.fsums.Fsum-class.html#fadd\" \n        class=\"link\">Fsum.fadd</a> and <a \n        href=\"pygeodesy.fsums.Fsum-class.html#__imul__\" \n        class=\"link\">Fsum.fmul</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.fmath.Fhypot-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.fmath.Fhypot</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.fmath-module.html\">Module&nbsp;fmath</a> ::\n        Class&nbsp;Fhypot\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.fmath.Fhypot-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Fhypot</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+        \n           |        \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n               |    \n      <a href=\"pygeodesy.fsums.Fsum-class.html\">fsums.Fsum</a> --+\n                   |\n                  <strong class=\"uidshort\">Fhypot</strong>\n</pre>\n\n<hr />\n<p>Precision summation and hypotenuse, default <code>root=2</code>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fmath.Fhypot-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">*xs</span>,\n        <span class=\"summary-sig-arg\">**root_name_f2product_nonfinites_RESIDUAL_raiser</span>)</span><br />\n      New <a href=\"pygeodesy.fmath.Fhypot-class.html\" \n      class=\"link\">Fhypot</a> hypotenuse of (the <i>root</i> of) several \n      components (raised to the power <i>root</i>).</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.fsums.Fsum-class.html\">fsums.Fsum</a></code></b>:\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#Fsum2Tuple_\">Fsum2Tuple_</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#Fsum_\">Fsum_</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#Fsumf_\">Fsumf_</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#RESIDUAL\">RESIDUAL</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__abs__\">__abs__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__add__\">__add__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__bool__\">__bool__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__call__\">__call__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__ceil__\">__ceil__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__cmp__\">__cmp__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__div__\">__div__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__divmod__\">__divmod__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__eq__\">__eq__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__float__\">__float__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__floor__\">__floor__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__floordiv__\">__floordiv__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__ge__\">__ge__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__gt__\">__gt__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__iadd__\">__iadd__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__idiv__\">__idiv__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__ifloordiv__\">__ifloordiv__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__imod__\">__imod__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__imul__\">__imul__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__int__\">__int__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__invert__\">__invert__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__ipow__\">__ipow__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__isub__\">__isub__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__iter__\">__iter__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__itruediv__\">__itruediv__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__le__\">__le__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__len__\">__len__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__long__\">__long__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__lt__\">__lt__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__mod__\">__mod__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__mul__\">__mul__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__ne__\">__ne__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__neg__\">__neg__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__nonzero__\">__nonzero__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__pos__\">__pos__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__pow__\">__pow__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__radd__\">__radd__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__rdiv__\">__rdiv__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__rdivmod__\">__rdivmod__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__rfloordiv__\">__rfloordiv__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__rmod__\">__rmod__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__rmul__\">__rmul__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__round__\">__round__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__rpow__\">__rpow__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__rsub__\">__rsub__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__rtruediv__\">__rtruediv__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__sub__\">__sub__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__truediv__\">__truediv__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__trunc__\">__trunc__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#as_integer_ratio\">as_integer_ratio</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#cmp\">cmp</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#divmod\">divmod</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#f2mul\">f2mul</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#f2mul_\">f2mul_</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#f2product\">f2product</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fadd\">fadd</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fadd_\">fadd_</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fcopy\">fcopy</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fdiv\">fdiv</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fdivmod\">fdivmod</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fint\">fint</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fint2\">fint2</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fma\">fma</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fma_\">fma_</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fmul\">fmul</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fover\">fover</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fpow\">fpow</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fset_\">fset_</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fsub\">fsub</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fsub_\">fsub_</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fsum\">fsum</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fsum2\">fsum2</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fsum2_\">fsum2_</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fsum2f_\">fsum2f_</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fsum_\">fsum_</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fsumf_\">fsumf_</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#int_float\">int_float</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#is_exact\">is_exact</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#is_finite\">is_finite</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#is_integer\">is_integer</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#is_math_fma\">is_math_fma</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#is_math_fsum\">is_math_fsum</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#is_scalar\">is_scalar</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#nonfinites\">nonfinites</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#pow\">pow</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#rdiv\">rdiv</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#root\">root</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#signOf\">signOf</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#toStr\">toStr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.fsums.Fsum-class.html\">fsums.Fsum</a></code></b>:\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#as_iscalar\">as_iscalar</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#ceil\">ceil</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#float_int\">float_int</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#floor\">floor</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#imag\">imag</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#nonfinitesOK\">nonfinitesOK</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#partials\">partials</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#real\">real</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#residual\">residual</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">*xs</span>,\n        <span class=\"sig-arg\">**root_name_f2product_nonfinites_RESIDUAL_raiser</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.fmath.Fhypot-class.html\" \n  class=\"link\">Fhypot</a> hypotenuse of (the <i>root</i> of) several \n  components (raised to the power <i>root</i>).</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>xs</code></strong> - Components (each <code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>), all positional.</li>\n        <li><strong class=\"pname\"><code>root_name_f2product_nonfinites_RESIDUAL_raiser</code></strong> - Optional, exponent and <code><b>root</b>=2</code> order \n          (<code>scalar</code>), <code><b>name</b>=NN</code> \n          (<code>str</code>), <code><b>raiser</b>=True</code> \n          (<code>bool</code>) for raising <a \n          href=\"pygeodesy.fsums.ResidualError-class.html\" \n          class=\"link\">ResidualError</a>s and other settings, see class <a \n          href=\"pygeodesy.fsums.Fsum-class.html#__init__\" \n          class=\"link\">Fsum</a> and method <a \n          href=\"pygeodesy.fsums.Fsum-class.html#root\" \n          class=\"link\">root</a>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.fmath.Fpolynomial-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.fmath.Fpolynomial</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.fmath-module.html\">Module&nbsp;fmath</a> ::\n        Class&nbsp;Fpolynomial\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.fmath.Fpolynomial-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Fpolynomial</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+        \n           |        \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n               |    \n      <a href=\"pygeodesy.fsums.Fsum-class.html\">fsums.Fsum</a> --+\n                   |\n                  <strong class=\"uidshort\">Fpolynomial</strong>\n</pre>\n\n<hr />\n<p>Precision polynomial evaluation.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fmath.Fpolynomial-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">x</span>,\n        <span class=\"summary-sig-arg\">*cs</span>,\n        <span class=\"summary-sig-arg\">**name_f2product_nonfinites_RESIDUAL</span>)</span><br />\n      New <a href=\"pygeodesy.fmath.Fpolynomial-class.html\" \n      class=\"link\">Fpolynomial</a> evaluation of the polynomial <i \n      class=\"math\">sum(cs[i] * x**i for i=0..len(cs)-1)</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.fsums.Fsum-class.html\">fsums.Fsum</a></code></b>:\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#Fsum2Tuple_\">Fsum2Tuple_</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#Fsum_\">Fsum_</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#Fsumf_\">Fsumf_</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#RESIDUAL\">RESIDUAL</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__abs__\">__abs__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__add__\">__add__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__bool__\">__bool__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__call__\">__call__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__ceil__\">__ceil__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__cmp__\">__cmp__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__div__\">__div__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__divmod__\">__divmod__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__eq__\">__eq__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__float__\">__float__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__floor__\">__floor__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__floordiv__\">__floordiv__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__ge__\">__ge__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__gt__\">__gt__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__iadd__\">__iadd__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__idiv__\">__idiv__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__ifloordiv__\">__ifloordiv__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__imod__\">__imod__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__imul__\">__imul__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__int__\">__int__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__invert__\">__invert__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__ipow__\">__ipow__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__isub__\">__isub__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__iter__\">__iter__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__itruediv__\">__itruediv__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__le__\">__le__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__len__\">__len__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__long__\">__long__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__lt__\">__lt__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__mod__\">__mod__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__mul__\">__mul__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__ne__\">__ne__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__neg__\">__neg__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__nonzero__\">__nonzero__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__pos__\">__pos__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__pow__\">__pow__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__radd__\">__radd__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__rdiv__\">__rdiv__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__rdivmod__\">__rdivmod__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__rfloordiv__\">__rfloordiv__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__rmod__\">__rmod__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__rmul__\">__rmul__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__round__\">__round__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__rpow__\">__rpow__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__rsub__\">__rsub__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__rtruediv__\">__rtruediv__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__sub__\">__sub__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__truediv__\">__truediv__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__trunc__\">__trunc__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#as_integer_ratio\">as_integer_ratio</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#cmp\">cmp</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#divmod\">divmod</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#f2mul\">f2mul</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#f2mul_\">f2mul_</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#f2product\">f2product</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fadd\">fadd</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fadd_\">fadd_</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fcopy\">fcopy</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fdiv\">fdiv</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fdivmod\">fdivmod</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fint\">fint</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fint2\">fint2</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fma\">fma</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fma_\">fma_</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fmul\">fmul</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fover\">fover</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fpow\">fpow</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fset_\">fset_</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fsub\">fsub</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fsub_\">fsub_</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fsum\">fsum</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fsum2\">fsum2</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fsum2_\">fsum2_</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fsum2f_\">fsum2f_</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fsum_\">fsum_</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fsumf_\">fsumf_</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#int_float\">int_float</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#is_exact\">is_exact</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#is_finite\">is_finite</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#is_integer\">is_integer</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#is_math_fma\">is_math_fma</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#is_math_fsum\">is_math_fsum</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#is_scalar\">is_scalar</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#nonfinites\">nonfinites</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#pow\">pow</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#rdiv\">rdiv</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#root\">root</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#signOf\">signOf</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#toStr\">toStr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.fsums.Fsum-class.html\">fsums.Fsum</a></code></b>:\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#as_iscalar\">as_iscalar</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#ceil\">ceil</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#float_int\">float_int</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#floor\">floor</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#imag\">imag</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#nonfinitesOK\">nonfinitesOK</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#partials\">partials</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#real\">real</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#residual\">residual</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">x</span>,\n        <span class=\"sig-arg\">*cs</span>,\n        <span class=\"sig-arg\">**name_f2product_nonfinites_RESIDUAL</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.fmath.Fpolynomial-class.html\" \n  class=\"link\">Fpolynomial</a> evaluation of the polynomial <i \n  class=\"math\">sum(cs[i] * x**i for i=0..len(cs)-1)</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>x</code></strong> - Polynomial argument (<code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>cs</code></strong> - Polynomial coeffients (each <code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>), all positional.</li>\n        <li><strong class=\"pname\"><code>name_f2product_nonfinites_RESIDUAL</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>) and other\n          settings, see class <a \n          href=\"pygeodesy.fsums.Fsum-class.html#__init__\" \n          class=\"link\">Fsum</a>.</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>OverflowError</strong></code> - Partial <code>2sum</code> overflow.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>x</code></b>.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Non-finite <b><code>x</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Class <a href=\"pygeodesy.fmath.Fhorner-class.html\" \n        class=\"link\">Fhorner</a>, function <a \n        href=\"pygeodesy.fmath-module.html#fpolynomial\" \n        class=\"link\">fpolynomial</a> and method <a \n        href=\"pygeodesy.fsums.Fsum-class.html#fadd\" \n        class=\"link\">Fsum.fadd</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.fmath.Fpowers-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.fmath.Fpowers</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.fmath-module.html\">Module&nbsp;fmath</a> ::\n        Class&nbsp;Fpowers\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.fmath.Fpowers-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Fpowers</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+        \n           |        \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n               |    \n      <a href=\"pygeodesy.fsums.Fsum-class.html\">fsums.Fsum</a> --+\n                   |\n                  <strong class=\"uidshort\">Fpowers</strong>\n</pre>\n\n<hr />\n<p>Precision summation of powers, optimized for <code>power=2, 3 and \n  4</code>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fmath.Fpowers-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">power</span>,\n        <span class=\"summary-sig-arg\">*xs</span>,\n        <span class=\"summary-sig-arg\">**name_f2product_nonfinites_RESIDUAL_raiser</span>)</span><br />\n      New <a href=\"pygeodesy.fmath.Fpowers-class.html\" \n      class=\"link\">Fpowers</a> sum of (the <i>power</i> of) several bases.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.fsums.Fsum-class.html\">fsums.Fsum</a></code></b>:\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#Fsum2Tuple_\">Fsum2Tuple_</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#Fsum_\">Fsum_</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#Fsumf_\">Fsumf_</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#RESIDUAL\">RESIDUAL</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__abs__\">__abs__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__add__\">__add__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__bool__\">__bool__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__call__\">__call__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__ceil__\">__ceil__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__cmp__\">__cmp__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__div__\">__div__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__divmod__\">__divmod__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__eq__\">__eq__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__float__\">__float__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__floor__\">__floor__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__floordiv__\">__floordiv__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__ge__\">__ge__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__gt__\">__gt__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__iadd__\">__iadd__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__idiv__\">__idiv__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__ifloordiv__\">__ifloordiv__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__imod__\">__imod__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__imul__\">__imul__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__int__\">__int__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__invert__\">__invert__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__ipow__\">__ipow__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__isub__\">__isub__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__iter__\">__iter__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__itruediv__\">__itruediv__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__le__\">__le__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__len__\">__len__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__long__\">__long__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__lt__\">__lt__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__mod__\">__mod__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__mul__\">__mul__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__ne__\">__ne__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__neg__\">__neg__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__nonzero__\">__nonzero__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__pos__\">__pos__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__pow__\">__pow__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__radd__\">__radd__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__rdiv__\">__rdiv__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__rdivmod__\">__rdivmod__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__rfloordiv__\">__rfloordiv__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__rmod__\">__rmod__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__rmul__\">__rmul__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__round__\">__round__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__rpow__\">__rpow__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__rsub__\">__rsub__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__rtruediv__\">__rtruediv__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__sub__\">__sub__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__truediv__\">__truediv__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__trunc__\">__trunc__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#as_integer_ratio\">as_integer_ratio</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#cmp\">cmp</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#divmod\">divmod</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#f2mul\">f2mul</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#f2mul_\">f2mul_</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#f2product\">f2product</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fadd\">fadd</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fadd_\">fadd_</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fcopy\">fcopy</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fdiv\">fdiv</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fdivmod\">fdivmod</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fint\">fint</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fint2\">fint2</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fma\">fma</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fma_\">fma_</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fmul\">fmul</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fover\">fover</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fpow\">fpow</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fset_\">fset_</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fsub\">fsub</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fsub_\">fsub_</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fsum\">fsum</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fsum2\">fsum2</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fsum2_\">fsum2_</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fsum2f_\">fsum2f_</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fsum_\">fsum_</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fsumf_\">fsumf_</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#int_float\">int_float</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#is_exact\">is_exact</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#is_finite\">is_finite</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#is_integer\">is_integer</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#is_math_fma\">is_math_fma</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#is_math_fsum\">is_math_fsum</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#is_scalar\">is_scalar</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#nonfinites\">nonfinites</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#pow\">pow</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#rdiv\">rdiv</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#root\">root</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#signOf\">signOf</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#toStr\">toStr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.fsums.Fsum-class.html\">fsums.Fsum</a></code></b>:\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#as_iscalar\">as_iscalar</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#ceil\">ceil</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#float_int\">float_int</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#floor\">floor</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#imag\">imag</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#nonfinitesOK\">nonfinitesOK</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#partials\">partials</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#real\">real</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#residual\">residual</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">power</span>,\n        <span class=\"sig-arg\">*xs</span>,\n        <span class=\"sig-arg\">**name_f2product_nonfinites_RESIDUAL_raiser</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.fmath.Fpowers-class.html\" \n  class=\"link\">Fpowers</a> sum of (the <i>power</i> of) several bases.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>power</code></strong> - The exponent (<code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>xs</code></strong> - One or more bases (each <code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>), all positional.</li>\n        <li><strong class=\"pname\"><code>name_f2product_nonfinites_RESIDUAL_raiser</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>), \n          <code><b>raiser</b>=True</code> (<code>bool</code>) for raising \n          <a href=\"pygeodesy.fsums.ResidualError-class.html\" \n          class=\"link\">ResidualError</a>s and other settings, see class <a \n          href=\"pygeodesy.fsums.Fsum-class.html#__init__\" \n          class=\"link\">Fsum</a> and method <a \n          href=\"pygeodesy.fsums.Fsum-class.html#__ipow__\" \n          class=\"link\">fpow</a>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.fmath.Froot-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.fmath.Froot</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.fmath-module.html\">Module&nbsp;fmath</a> ::\n        Class&nbsp;Froot\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.fmath.Froot-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Froot</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+        \n           |        \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n               |    \n      <a href=\"pygeodesy.fsums.Fsum-class.html\">fsums.Fsum</a> --+\n                   |\n                  <strong class=\"uidshort\">Froot</strong>\n</pre>\n\n<dl><dt>Known Subclasses:</dt>\n<dd>\n      <ul class=\"subclass-list\">\n<li><a href=\"pygeodesy.fmath.Fcbrt-class.html\">Fcbrt</a></li><li>, <a href=\"pygeodesy.fmath.Fsqrt-class.html\">Fsqrt</a></li>  </ul>\n</dd></dl>\n\n<hr />\n<p>The root of a precision summation.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fmath.Froot-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">root</span>,\n        <span class=\"summary-sig-arg\">*xs</span>,\n        <span class=\"summary-sig-arg\">**name_f2product_nonfinites_RESIDUAL_raiser</span>)</span><br />\n      New <a href=\"pygeodesy.fmath.Froot-class.html\" class=\"link\">Froot</a>\n      root of a precision sum.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.fsums.Fsum-class.html\">fsums.Fsum</a></code></b>:\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#Fsum2Tuple_\">Fsum2Tuple_</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#Fsum_\">Fsum_</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#Fsumf_\">Fsumf_</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#RESIDUAL\">RESIDUAL</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__abs__\">__abs__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__add__\">__add__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__bool__\">__bool__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__call__\">__call__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__ceil__\">__ceil__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__cmp__\">__cmp__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__div__\">__div__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__divmod__\">__divmod__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__eq__\">__eq__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__float__\">__float__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__floor__\">__floor__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__floordiv__\">__floordiv__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__ge__\">__ge__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__gt__\">__gt__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__iadd__\">__iadd__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__idiv__\">__idiv__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__ifloordiv__\">__ifloordiv__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__imod__\">__imod__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__imul__\">__imul__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__int__\">__int__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__invert__\">__invert__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__ipow__\">__ipow__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__isub__\">__isub__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__iter__\">__iter__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__itruediv__\">__itruediv__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__le__\">__le__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__len__\">__len__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__long__\">__long__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__lt__\">__lt__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__mod__\">__mod__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__mul__\">__mul__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__ne__\">__ne__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__neg__\">__neg__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__nonzero__\">__nonzero__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__pos__\">__pos__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__pow__\">__pow__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__radd__\">__radd__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__rdiv__\">__rdiv__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__rdivmod__\">__rdivmod__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__rfloordiv__\">__rfloordiv__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__rmod__\">__rmod__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__rmul__\">__rmul__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__round__\">__round__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__rpow__\">__rpow__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__rsub__\">__rsub__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__rtruediv__\">__rtruediv__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__sub__\">__sub__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__truediv__\">__truediv__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__trunc__\">__trunc__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#as_integer_ratio\">as_integer_ratio</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#cmp\">cmp</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#divmod\">divmod</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#f2mul\">f2mul</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#f2mul_\">f2mul_</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#f2product\">f2product</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fadd\">fadd</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fadd_\">fadd_</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fcopy\">fcopy</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fdiv\">fdiv</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fdivmod\">fdivmod</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fint\">fint</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fint2\">fint2</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fma\">fma</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fma_\">fma_</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fmul\">fmul</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fover\">fover</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fpow\">fpow</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fset_\">fset_</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fsub\">fsub</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fsub_\">fsub_</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fsum\">fsum</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fsum2\">fsum2</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fsum2_\">fsum2_</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fsum2f_\">fsum2f_</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fsum_\">fsum_</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fsumf_\">fsumf_</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#int_float\">int_float</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#is_exact\">is_exact</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#is_finite\">is_finite</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#is_integer\">is_integer</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#is_math_fma\">is_math_fma</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#is_math_fsum\">is_math_fsum</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#is_scalar\">is_scalar</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#nonfinites\">nonfinites</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#pow\">pow</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#rdiv\">rdiv</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#root\">root</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#signOf\">signOf</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#toStr\">toStr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.fsums.Fsum-class.html\">fsums.Fsum</a></code></b>:\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#as_iscalar\">as_iscalar</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#ceil\">ceil</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#float_int\">float_int</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#floor\">floor</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#imag\">imag</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#nonfinitesOK\">nonfinitesOK</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#partials\">partials</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#real\">real</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#residual\">residual</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">root</span>,\n        <span class=\"sig-arg\">*xs</span>,\n        <span class=\"sig-arg\">**name_f2product_nonfinites_RESIDUAL_raiser</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.fmath.Froot-class.html\" class=\"link\">Froot</a> \n  root of a precision sum.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>root</code></strong> - The order (<code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>), non-zero.</li>\n        <li><strong class=\"pname\"><code>xs</code></strong> - Items to summate (each a <code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>), all positional.</li>\n        <li><strong class=\"pname\"><code>name_f2product_nonfinites_RESIDUAL_raiser</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>), \n          <code><b>raiser</b>=True</code> (<code>bool</code>) for raising \n          <a href=\"pygeodesy.fsums.ResidualError-class.html\" \n          class=\"link\">ResidualError</a>s and other settings, see class <a \n          href=\"pygeodesy.fsums.Fsum-class.html#__init__\" \n          class=\"link\">Fsum</a> and method <a \n          href=\"pygeodesy.fsums.Fsum-class.html#__ipow__\" \n          class=\"link\">fpow</a>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.fmath.Fsqrt-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.fmath.Fsqrt</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.fmath-module.html\">Module&nbsp;fmath</a> ::\n        Class&nbsp;Fsqrt\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.fmath.Fsqrt-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Fsqrt</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+            \n           |            \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+        \n               |        \n      <a href=\"pygeodesy.fsums.Fsum-class.html\">fsums.Fsum</a> --+    \n                   |    \n               <a href=\"pygeodesy.fmath.Froot-class.html\">Froot</a> --+\n                       |\n                      <strong class=\"uidshort\">Fsqrt</strong>\n</pre>\n\n<hr />\n<p>Square root of a precision summation.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fmath.Fsqrt-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">*xs</span>,\n        <span class=\"summary-sig-arg\">**name_f2product_nonfinites_RESIDUAL_raiser</span>)</span><br />\n      New <a href=\"pygeodesy.fmath.Fsqrt-class.html\" class=\"link\">Fsqrt</a>\n      square root of a precision sum.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.fsums.Fsum-class.html\">fsums.Fsum</a></code></b>:\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#Fsum2Tuple_\">Fsum2Tuple_</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#Fsum_\">Fsum_</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#Fsumf_\">Fsumf_</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#RESIDUAL\">RESIDUAL</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__abs__\">__abs__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__add__\">__add__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__bool__\">__bool__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__call__\">__call__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__ceil__\">__ceil__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__cmp__\">__cmp__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__div__\">__div__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__divmod__\">__divmod__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__eq__\">__eq__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__float__\">__float__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__floor__\">__floor__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__floordiv__\">__floordiv__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__ge__\">__ge__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__gt__\">__gt__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__iadd__\">__iadd__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__idiv__\">__idiv__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__ifloordiv__\">__ifloordiv__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__imod__\">__imod__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__imul__\">__imul__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__int__\">__int__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__invert__\">__invert__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__ipow__\">__ipow__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__isub__\">__isub__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__iter__\">__iter__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__itruediv__\">__itruediv__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__le__\">__le__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__len__\">__len__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__long__\">__long__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__lt__\">__lt__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__mod__\">__mod__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__mul__\">__mul__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__ne__\">__ne__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__neg__\">__neg__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__nonzero__\">__nonzero__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__pos__\">__pos__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__pow__\">__pow__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__radd__\">__radd__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__rdiv__\">__rdiv__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__rdivmod__\">__rdivmod__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__rfloordiv__\">__rfloordiv__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__rmod__\">__rmod__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__rmul__\">__rmul__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__round__\">__round__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__rpow__\">__rpow__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__rsub__\">__rsub__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__rtruediv__\">__rtruediv__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__sub__\">__sub__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__truediv__\">__truediv__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#__trunc__\">__trunc__</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#as_integer_ratio\">as_integer_ratio</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#cmp\">cmp</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#divmod\">divmod</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#f2mul\">f2mul</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#f2mul_\">f2mul_</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#f2product\">f2product</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fadd\">fadd</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fadd_\">fadd_</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fcopy\">fcopy</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fdiv\">fdiv</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fdivmod\">fdivmod</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fint\">fint</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fint2\">fint2</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fma\">fma</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fma_\">fma_</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fmul\">fmul</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fover\">fover</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fpow\">fpow</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fset_\">fset_</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fsub\">fsub</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fsub_\">fsub_</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fsum\">fsum</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fsum2\">fsum2</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fsum2_\">fsum2_</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fsum2f_\">fsum2f_</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fsum_\">fsum_</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#fsumf_\">fsumf_</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#int_float\">int_float</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#is_exact\">is_exact</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#is_finite\">is_finite</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#is_integer\">is_integer</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#is_math_fma\">is_math_fma</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#is_math_fsum\">is_math_fsum</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#is_scalar\">is_scalar</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#nonfinites\">nonfinites</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#pow\">pow</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#rdiv\">rdiv</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#root\">root</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#signOf\">signOf</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#toStr\">toStr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.fsums.Fsum-class.html\">fsums.Fsum</a></code></b>:\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#as_iscalar\">as_iscalar</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#ceil\">ceil</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#float_int\">float_int</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#floor\">floor</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#imag\">imag</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#nonfinitesOK\">nonfinitesOK</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#partials\">partials</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#real\">real</a></code>,\n      <code><a href=\"pygeodesy.fsums.Fsum-class.html#residual\">residual</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">*xs</span>,\n        <span class=\"sig-arg\">**name_f2product_nonfinites_RESIDUAL_raiser</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.fmath.Fsqrt-class.html\" class=\"link\">Fsqrt</a> \n  square root of a precision sum.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>root</code></strong> - The order (<code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>), non-zero.</li>\n        <li><strong class=\"pname\"><code>xs</code></strong> - Items to summate (each a <code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>), all positional.</li>\n        <li><strong class=\"pname\"><code>name_f2product_nonfinites_RESIDUAL_raiser</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>), \n          <code><b>raiser</b>=True</code> (<code>bool</code>) for raising \n          <a href=\"pygeodesy.fsums.ResidualError-class.html\" \n          class=\"link\">ResidualError</a>s and other settings, see class <a \n          href=\"pygeodesy.fsums.Fsum-class.html#__init__\" \n          class=\"link\">Fsum</a> and method <a \n          href=\"pygeodesy.fsums.Fsum-class.html#__ipow__\" \n          class=\"link\">fpow</a>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Class <a href=\"pygeodesy.fmath.Froot-class.html#__init__\" \n        class=\"link\">Froot</a> for further details.\n      </p>\n</div></td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.formy-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.formy</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        Module&nbsp;formy\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.formy-module.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== MODULE DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Module formy</h1><p class=\"nomargin-top\"></p>\n<p>Formulary of basic geodesy functions and approximations.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Version:</strong>\n        26.01.06\n      </p>\n</div><!-- ==================== CLASSES ==================== -->\n<a name=\"section-Classes\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Classes</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.formy.Radical2Tuple-class.html\" class=\"summary-name\">Radical2Tuple</a><br />\n      2-Tuple <code>(ratio, xline)</code> of the <i>radical</i> \n        <code>ratio</code> and <i>radical</i> <code>xline</code>, both \n        <code>scalar</code> and <code>0.0 &lt;= ratio &lt;= 1.0</code>\n    </td>\n  </tr>\n</table>\n<!-- ==================== FUNCTIONS ==================== -->\n<a name=\"section-Functions\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Functions</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.formy-module.html#angle2chord\" class=\"summary-sig-name\">angle2chord</a>(<span class=\"summary-sig-arg\">rad</span>,\n        <span class=\"summary-sig-arg\">radius</span>=<span class=\"summary-sig-default\">6371008.771415</span>)</span><br />\n      Get the chord length of a (central) angle or <i>angular</i> distance.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.formy-module.html#antipode\" class=\"summary-sig-name\">antipode</a>(<span class=\"summary-sig-arg\">lat</span>,\n        <span class=\"summary-sig-arg\">lon</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Return the antipode, the point diametrically opposite to a given \n      point in <code>degrees</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.formy-module.html#antipode_\" class=\"summary-sig-name\">antipode_</a>(<span class=\"summary-sig-arg\">phi</span>,\n        <span class=\"summary-sig-arg\">lam</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Return the antipode, the point diametrically opposite to a given \n      point in <code>radians</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.formy-module.html#bearing\" class=\"summary-sig-name\">bearing</a>(<span class=\"summary-sig-arg\">lat1</span>,\n        <span class=\"summary-sig-arg\">lon1</span>,\n        <span class=\"summary-sig-arg\">lat2</span>,\n        <span class=\"summary-sig-arg\">lon2</span>,\n        <span class=\"summary-sig-arg\">**final_wrap</span>)</span><br />\n      Compute the initial or final bearing (forward or reverse azimuth) \n      between two (spherical) points.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.formy-module.html#bearing_\" class=\"summary-sig-name\">bearing_</a>(<span class=\"summary-sig-arg\">phi1</span>,\n        <span class=\"summary-sig-arg\">lam1</span>,\n        <span class=\"summary-sig-arg\">phi2</span>,\n        <span class=\"summary-sig-arg\">lam2</span>,\n        <span class=\"summary-sig-arg\">final</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Compute the initial or final bearing (forward or reverse azimuth) \n      between two (spherical) points.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.formy-module.html#chord2angle\" class=\"summary-sig-name\">chord2angle</a>(<span class=\"summary-sig-arg\">chord</span>,\n        <span class=\"summary-sig-arg\">radius</span>=<span class=\"summary-sig-default\">6371008.771415</span>)</span><br />\n      Get the (central) angle from a chord length or distance.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.formy-module.html#compassAngle\" class=\"summary-sig-name\">compassAngle</a>(<span class=\"summary-sig-arg\">lat1</span>,\n        <span class=\"summary-sig-arg\">lon1</span>,\n        <span class=\"summary-sig-arg\">lat2</span>,\n        <span class=\"summary-sig-arg\">lon2</span>,\n        <span class=\"summary-sig-arg\">adjust</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Return the angle from North for the direction vector <i \n      class=\"math\">(lon2 - lon1, lat2 - lat1)</i> between two points.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.formy-module.html#cosineLaw\" class=\"summary-sig-name\">cosineLaw</a>(<span class=\"summary-sig-arg\">lat1</span>,\n        <span class=\"summary-sig-arg\">lon1</span>,\n        <span class=\"summary-sig-arg\">lat2</span>,\n        <span class=\"summary-sig-arg\">lon2</span>,\n        <span class=\"summary-sig-arg\">corr</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">earth</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">datum</span>=<span class=\"summary-sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"summary-sig-arg\">radius</span>=<span class=\"summary-sig-default\">6371008.771415</span>)</span><br />\n      Compute the distance between two points using the <a \n      href=\"https://www.Movable-Type.co.UK/scripts/latlong.html#cosine-law\"\n      target=\"_top\">Law of Cosines</a> formula, optionally corrected.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.formy-module.html#cosineLaw_\" class=\"summary-sig-name\">cosineLaw_</a>(<span class=\"summary-sig-arg\">phi2</span>,\n        <span class=\"summary-sig-arg\">phi1</span>,\n        <span class=\"summary-sig-arg\">lam21</span>,\n        <span class=\"summary-sig-arg\">corr</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">earth</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">datum</span>=<span class=\"summary-sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>)</span><br />\n      Compute the <i>angular</i> distance between two points using the <a \n      href=\"https://www.Movable-Type.co.UK/scripts/latlong.html#cosine-law\"\n      target=\"_top\">Law of Cosines</a> formula, optionally corrected.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.formy-module.html#equirectangular\" class=\"summary-sig-name\">equirectangular</a>(<span class=\"summary-sig-arg\">lat1</span>,\n        <span class=\"summary-sig-arg\">lon1</span>,\n        <span class=\"summary-sig-arg\">lat2</span>,\n        <span class=\"summary-sig-arg\">lon2</span>,\n        <span class=\"summary-sig-arg\">radius</span>=<span class=\"summary-sig-default\">6371008.771415</span>,\n        <span class=\"summary-sig-arg\">**adjust_limit_wrap</span>)</span><br />\n      Approximate the distance between two points using the <a \n      href=\"https://www.Movable-Type.co.UK/scripts/latlong.html#equirectangular\"\n      target=\"_top\">Equirectangular Approximation / Projection</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.formy-module.html#equirectangular4\" class=\"summary-sig-name\">equirectangular4</a>(<span class=\"summary-sig-arg\">lat1</span>,\n        <span class=\"summary-sig-arg\">lon1</span>,\n        <span class=\"summary-sig-arg\">lat2</span>,\n        <span class=\"summary-sig-arg\">lon2</span>,\n        <span class=\"summary-sig-arg\">adjust</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">limit</span>=<span class=\"summary-sig-default\">45</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Approximate the distance between two points using the <a \n      href=\"https://www.Movable-Type.co.UK/scripts/latlong.html#equirectangular\"\n      target=\"_top\">Equirectangular Approximation / Projection</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.formy-module.html#euclidean\" class=\"summary-sig-name\">euclidean</a>(<span class=\"summary-sig-arg\">lat1</span>,\n        <span class=\"summary-sig-arg\">lon1</span>,\n        <span class=\"summary-sig-arg\">lat2</span>,\n        <span class=\"summary-sig-arg\">lon2</span>,\n        <span class=\"summary-sig-arg\">radius</span>=<span class=\"summary-sig-default\">6371008.771415</span>,\n        <span class=\"summary-sig-arg\">adjust</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Approximate the <code>Euclidean</code> distance between two \n      (spherical) points.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.formy-module.html#euclidean_\" class=\"summary-sig-name\">euclidean_</a>(<span class=\"summary-sig-arg\">phi2</span>,\n        <span class=\"summary-sig-arg\">phi1</span>,\n        <span class=\"summary-sig-arg\">lam21</span>,\n        <span class=\"summary-sig-arg\">adjust</span>=<span class=\"summary-sig-default\">True</span>)</span><br />\n      Approximate the <i>angular</i> <code>Euclidean</code> distance \n      between two (spherical) points.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.formy-module.html#excessAbc_\" class=\"summary-sig-name\">excessAbc_</a>(<span class=\"summary-sig-arg\">A</span>,\n        <span class=\"summary-sig-arg\">b</span>,\n        <span class=\"summary-sig-arg\">c</span>)</span><br />\n      Compute the <i>spherical excess</i> <code>E</code> of a (spherical) \n      triangle from two sides and the included (small) angle.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.formy-module.html#excessCagnoli_\" class=\"summary-sig-name\">excessCagnoli_</a>(<span class=\"summary-sig-arg\">a</span>,\n        <span class=\"summary-sig-arg\">b</span>,\n        <span class=\"summary-sig-arg\">c</span>)</span><br />\n      Compute the <i>spherical excess</i> <code>E</code> of a (spherical) \n      triangle using <a href=\"https://Zenodo.org/record/35392\" \n      target=\"_top\">Cagnoli's</a> (D.34) formula.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.formy-module.html#excessGirard_\" class=\"summary-sig-name\">excessGirard_</a>(<span class=\"summary-sig-arg\">A</span>,\n        <span class=\"summary-sig-arg\">B</span>,\n        <span class=\"summary-sig-arg\">C</span>)</span><br />\n      Compute the <i>spherical excess</i> <code>E</code> of a (spherical) \n      triangle using <a \n      href=\"https://MathWorld.Wolfram.com/GirardsSphericalExcessFormula.html\"\n      target=\"_top\">Girard's</a> formula.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.formy-module.html#excessLHuilier_\" class=\"summary-sig-name\">excessLHuilier_</a>(<span class=\"summary-sig-arg\">a</span>,\n        <span class=\"summary-sig-arg\">b</span>,\n        <span class=\"summary-sig-arg\">c</span>)</span><br />\n      Compute the <i>spherical excess</i> <code>E</code> of a (spherical) \n      triangle using <a \n      href=\"https://MathWorld.Wolfram.com/LHuiliersTheorem.html\" \n      target=\"_top\">L'Huilier's</a>'s Theorem.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.formy-module.html#excessKarney\" class=\"summary-sig-name\">excessKarney</a>(<span class=\"summary-sig-arg\">lat1</span>,\n        <span class=\"summary-sig-arg\">lon1</span>,\n        <span class=\"summary-sig-arg\">lat2</span>,\n        <span class=\"summary-sig-arg\">lon2</span>,\n        <span class=\"summary-sig-arg\">radius</span>=<span class=\"summary-sig-default\">6371008.771415</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Compute the surface area of a (spherical) quadrilateral bounded by a \n      segment of a great circle, two meridians and the equator using <a \n      href=\"https://MathOverflow.net/questions/97711/the-area-of-spherical-polygons\"\n      target=\"_top\">Karney's</a> method.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.formy-module.html#excessKarney_\" class=\"summary-sig-name\">excessKarney_</a>(<span class=\"summary-sig-arg\">phi2</span>,\n        <span class=\"summary-sig-arg\">phi1</span>,\n        <span class=\"summary-sig-arg\">lam21</span>)</span><br />\n      Compute the <i>spherical excess</i> <code>E</code> of a (spherical) \n      quadrilateral bounded by a segment of a great circle, two meridians \n      and the equator using <a \n      href=\"https://MathOverflow.net/questions/97711/the-area-of-spherical-polygons\"\n      target=\"_top\">Karney's</a> method.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.formy-module.html#excessQuad\" class=\"summary-sig-name\">excessQuad</a>(<span class=\"summary-sig-arg\">lat1</span>,\n        <span class=\"summary-sig-arg\">lon1</span>,\n        <span class=\"summary-sig-arg\">lat2</span>,\n        <span class=\"summary-sig-arg\">lon2</span>,\n        <span class=\"summary-sig-arg\">radius</span>=<span class=\"summary-sig-default\">6371008.771415</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Compute the surface area of a (spherical) quadrilateral bounded by a \n      segment of a great circle, two meridians and the equator.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.formy-module.html#excessQuad_\" class=\"summary-sig-name\">excessQuad_</a>(<span class=\"summary-sig-arg\">phi2</span>,\n        <span class=\"summary-sig-arg\">phi1</span>,\n        <span class=\"summary-sig-arg\">lam21</span>)</span><br />\n      Compute the <i>spherical excess</i> <code>E</code> of a (spherical) \n      quadrilateral bounded by a segment of a great circle, two meridians \n      and the equator.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.formy-module.html#flatLocal\" class=\"summary-sig-name\">flatLocal</a>(<span class=\"summary-sig-arg\">lat1</span>,\n        <span class=\"summary-sig-arg\">lon1</span>,\n        <span class=\"summary-sig-arg\">lat2</span>,\n        <span class=\"summary-sig-arg\">lon2</span>,\n        <span class=\"summary-sig-arg\">datum</span>=<span class=\"summary-sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"summary-sig-arg\">scaled</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Compute the distance between two (ellipsoidal) points using the <a \n      href=\"https://WikiPedia.org/wiki/Geographical_distance#Ellipsoidal_Earth_projected_to_a_plane\"\n      target=\"_top\">ellipsoidal Earth to plane projection</a> aka <a \n      href=\"https://www.OVG.AT/de/vgi/files/pdf/3781/\" \n      target=\"_top\">Hubeny</a> formula.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.formy-module.html#hubeny\" class=\"summary-sig-name\">hubeny</a>(<span class=\"summary-sig-arg\">lat1</span>,\n        <span class=\"summary-sig-arg\">lon1</span>,\n        <span class=\"summary-sig-arg\">lat2</span>,\n        <span class=\"summary-sig-arg\">lon2</span>,\n        <span class=\"summary-sig-arg\">datum</span>=<span class=\"summary-sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"summary-sig-arg\">scaled</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Compute the distance between two (ellipsoidal) points using the <a \n      href=\"https://WikiPedia.org/wiki/Geographical_distance#Ellipsoidal_Earth_projected_to_a_plane\"\n      target=\"_top\">ellipsoidal Earth to plane projection</a> aka <a \n      href=\"https://www.OVG.AT/de/vgi/files/pdf/3781/\" \n      target=\"_top\">Hubeny</a> formula.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.formy-module.html#flatLocal_\" class=\"summary-sig-name\">flatLocal_</a>(<span class=\"summary-sig-arg\">phi2</span>,\n        <span class=\"summary-sig-arg\">phi1</span>,\n        <span class=\"summary-sig-arg\">lam21</span>,\n        <span class=\"summary-sig-arg\">datum</span>=<span class=\"summary-sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"summary-sig-arg\">scaled</span>=<span class=\"summary-sig-default\">True</span>)</span><br />\n      Compute the <i>angular</i> distance between two (ellipsoidal) points \n      using the <a \n      href=\"https://WikiPedia.org/wiki/Geographical_distance#Ellipsoidal_Earth_projected_to_a_plane\"\n      target=\"_top\">ellipsoidal Earth to plane projection</a> aka <a \n      href=\"https://www.OVG.AT/de/vgi/files/pdf/3781/\" \n      target=\"_top\">Hubeny</a> formula.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.formy-module.html#hubeny_\" class=\"summary-sig-name\">hubeny_</a>(<span class=\"summary-sig-arg\">phi2</span>,\n        <span class=\"summary-sig-arg\">phi1</span>,\n        <span class=\"summary-sig-arg\">lam21</span>,\n        <span class=\"summary-sig-arg\">datum</span>=<span class=\"summary-sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"summary-sig-arg\">scaled</span>=<span class=\"summary-sig-default\">True</span>)</span><br />\n      Compute the <i>angular</i> distance between two (ellipsoidal) points \n      using the <a \n      href=\"https://WikiPedia.org/wiki/Geographical_distance#Ellipsoidal_Earth_projected_to_a_plane\"\n      target=\"_top\">ellipsoidal Earth to plane projection</a> aka <a \n      href=\"https://www.OVG.AT/de/vgi/files/pdf/3781/\" \n      target=\"_top\">Hubeny</a> formula.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.formy-module.html#flatPolar\" class=\"summary-sig-name\">flatPolar</a>(<span class=\"summary-sig-arg\">lat1</span>,\n        <span class=\"summary-sig-arg\">lon1</span>,\n        <span class=\"summary-sig-arg\">lat2</span>,\n        <span class=\"summary-sig-arg\">lon2</span>,\n        <span class=\"summary-sig-arg\">radius</span>=<span class=\"summary-sig-default\">6371008.771415</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Compute the distance between two (spherical) points using the <a \n      href=\"https://WikiPedia.org/wiki/Geographical_distance#Polar_coordinate_flat-Earth_formula\"\n      target=\"_top\">polar coordinate flat-Earth</a> formula.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.formy-module.html#flatPolar_\" class=\"summary-sig-name\">flatPolar_</a>(<span class=\"summary-sig-arg\">phi2</span>,\n        <span class=\"summary-sig-arg\">phi1</span>,\n        <span class=\"summary-sig-arg\">lam21</span>)</span><br />\n      Compute the <i>angular</i> distance between two (spherical) points \n      using the <a \n      href=\"https://WikiPedia.org/wiki/Geographical_distance#Polar_coordinate_flat-Earth_formula\"\n      target=\"_top\">polar coordinate flat-Earth</a> formula.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.formy-module.html#hartzell\" class=\"summary-sig-name\">hartzell</a>(<span class=\"summary-sig-arg\">pov</span>,\n        <span class=\"summary-sig-arg\">los</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">earth</span>=<span class=\"summary-sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"summary-sig-arg\">**name_LatLon_and_kwds</span>)</span><br />\n      Compute the intersection of the earth's surface and a Line-Of-Sight \n      from a Point-Of-View in space.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.formy-module.html#haversine\" class=\"summary-sig-name\">haversine</a>(<span class=\"summary-sig-arg\">lat1</span>,\n        <span class=\"summary-sig-arg\">lon1</span>,\n        <span class=\"summary-sig-arg\">lat2</span>,\n        <span class=\"summary-sig-arg\">lon2</span>,\n        <span class=\"summary-sig-arg\">radius</span>=<span class=\"summary-sig-default\">6371008.771415</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Compute the distance between two (spherical) points using the <a \n      href=\"https://www.Movable-Type.co.UK/scripts/latlong.html\" \n      target=\"_top\">Haversine</a> formula.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.formy-module.html#haversine_\" class=\"summary-sig-name\">haversine_</a>(<span class=\"summary-sig-arg\">phi2</span>,\n        <span class=\"summary-sig-arg\">phi1</span>,\n        <span class=\"summary-sig-arg\">lam21</span>)</span><br />\n      Compute the <i>angular</i> distance between two (spherical) points \n      using the <a \n      href=\"https://www.Movable-Type.co.UK/scripts/latlong.html\" \n      target=\"_top\">Haversine</a> formula.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.formy-module.html#heightOf\" class=\"summary-sig-name\">heightOf</a>(<span class=\"summary-sig-arg\">angle</span>,\n        <span class=\"summary-sig-arg\">distance</span>,\n        <span class=\"summary-sig-arg\">radius</span>=<span class=\"summary-sig-default\">6371008.771415</span>)</span><br />\n      Determine the height above the (spherical) earth' surface after \n      traveling along a straight line at a given tilt.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.formy-module.html#heightOrthometric\" class=\"summary-sig-name\">heightOrthometric</a>(<span class=\"summary-sig-arg\">h_loc</span>,\n        <span class=\"summary-sig-arg\">N</span>)</span><br />\n      Get the <i>orthometric</i> height <b>H</b>, the height above the \n      geoid, earth surface.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.formy-module.html#horizon\" class=\"summary-sig-name\">horizon</a>(<span class=\"summary-sig-arg\">height</span>,\n        <span class=\"summary-sig-arg\">radius</span>=<span class=\"summary-sig-default\">6371008.771415</span>,\n        <span class=\"summary-sig-arg\">refraction</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Determine the distance to the horizon from a given altitude above the\n      (spherical) earth.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.formy-module.html#intersection2\" class=\"summary-sig-name\">intersection2</a>(<span class=\"summary-sig-arg\">lat1</span>,\n        <span class=\"summary-sig-arg\">lon1</span>,\n        <span class=\"summary-sig-arg\">bearing1</span>,\n        <span class=\"summary-sig-arg\">lat2</span>,\n        <span class=\"summary-sig-arg\">lon2</span>,\n        <span class=\"summary-sig-arg\">bearing2</span>,\n        <span class=\"summary-sig-arg\">datum</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">small</span>=<span class=\"summary-sig-default\">100000.0</span>)</span><br />\n      <i>Conveniently</i> compute the intersection of two lines each \n      defined by a (geodetic) point and a bearing from North, using either \n      ...</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.formy-module.html#intersections2\" class=\"summary-sig-name\">intersections2</a>(<span class=\"summary-sig-arg\">lat1</span>,\n        <span class=\"summary-sig-arg\">lon1</span>,\n        <span class=\"summary-sig-arg\">radius1</span>,\n        <span class=\"summary-sig-arg\">lat2</span>,\n        <span class=\"summary-sig-arg\">lon2</span>,\n        <span class=\"summary-sig-arg\">radius2</span>,\n        <span class=\"summary-sig-arg\">datum</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">small</span>=<span class=\"summary-sig-default\">100000.0</span>)</span><br />\n      <i>Conveniently</i> compute the intersections of two circles each \n      defined by a (geodetic) center point and a radius, using either ...</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.formy-module.html#isantipode\" class=\"summary-sig-name\">isantipode</a>(<span class=\"summary-sig-arg\">lat1</span>,\n        <span class=\"summary-sig-arg\">lon1</span>,\n        <span class=\"summary-sig-arg\">lat2</span>,\n        <span class=\"summary-sig-arg\">lon2</span>,\n        <span class=\"summary-sig-arg\">eps</span>=<span class=\"summary-sig-default\">2.220446049250313e-16</span>)</span><br />\n      Check whether two points are <i>antipodal</i>, on diametrically \n      opposite sides of the earth.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.formy-module.html#isantipode_\" class=\"summary-sig-name\">isantipode_</a>(<span class=\"summary-sig-arg\">phi1</span>,\n        <span class=\"summary-sig-arg\">lam1</span>,\n        <span class=\"summary-sig-arg\">phi2</span>,\n        <span class=\"summary-sig-arg\">lam2</span>,\n        <span class=\"summary-sig-arg\">eps</span>=<span class=\"summary-sig-default\">2.220446049250313e-16</span>)</span><br />\n      Check whether two points are <i>antipodal</i>, on diametrically \n      opposite sides of the earth.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.formy-module.html#isnormal\" class=\"summary-sig-name\">isnormal</a>(<span class=\"summary-sig-arg\">lat</span>,\n        <span class=\"summary-sig-arg\">lon</span>,\n        <span class=\"summary-sig-arg\">eps</span>=<span class=\"summary-sig-default\">0</span>)</span><br />\n      Check whether <b><code>lat</code></b> <i>and</i> \n      <b><code>lon</code></b> are within their respective <i>normal</i> \n      range in <code>degrees</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.formy-module.html#isnormal_\" class=\"summary-sig-name\">isnormal_</a>(<span class=\"summary-sig-arg\">phi</span>,\n        <span class=\"summary-sig-arg\">lam</span>,\n        <span class=\"summary-sig-arg\">eps</span>=<span class=\"summary-sig-default\">0</span>)</span><br />\n      Check whether <b><code>phi</code></b> <i>and</i> \n      <b><code>lam</code></b> are within their respective <i>normal</i> \n      range in <code>radians</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.formy-module.html#normal\" class=\"summary-sig-name\">normal</a>(<span class=\"summary-sig-arg\">lat</span>,\n        <span class=\"summary-sig-arg\">lon</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Normalize a lat- <i>and</i> longitude pair in <code>degrees</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.formy-module.html#normal_\" class=\"summary-sig-name\">normal_</a>(<span class=\"summary-sig-arg\">phi</span>,\n        <span class=\"summary-sig-arg\">lam</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Normalize a lat- <i>and</i> longitude pair in <code>radians</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.formy-module.html#opposing\" class=\"summary-sig-name\">opposing</a>(<span class=\"summary-sig-arg\">bearing1</span>,\n        <span class=\"summary-sig-arg\">bearing2</span>,\n        <span class=\"summary-sig-arg\">margin</span>=<span class=\"summary-sig-default\">90.0</span>)</span><br />\n      Compare the direction of two bearings given in <code>degrees</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.formy-module.html#opposing_\" class=\"summary-sig-name\">opposing_</a>(<span class=\"summary-sig-arg\">radians1</span>,\n        <span class=\"summary-sig-arg\">radians2</span>,\n        <span class=\"summary-sig-arg\">margin</span>=<span class=\"summary-sig-default\">1.5707963267948966</span>)</span><br />\n      Compare the direction of two bearings given in <code>radians</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.formy-module.html#radical2\" class=\"summary-sig-name\">radical2</a>(<span class=\"summary-sig-arg\">distance</span>,\n        <span class=\"summary-sig-arg\">radius1</span>,\n        <span class=\"summary-sig-arg\">radius2</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Compute the <i>radical ratio</i> and <i>radical line</i> of two <a \n      href=\"https://MathWorld.Wolfram.com/Circle-CircleIntersection.html\" \n      target=\"_top\">intersecting circles</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.formy-module.html#thomas\" class=\"summary-sig-name\">thomas</a>(<span class=\"summary-sig-arg\">lat1</span>,\n        <span class=\"summary-sig-arg\">lon1</span>,\n        <span class=\"summary-sig-arg\">lat2</span>,\n        <span class=\"summary-sig-arg\">lon2</span>,\n        <span class=\"summary-sig-arg\">datum</span>=<span class=\"summary-sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Compute the distance between two (ellipsoidal) points using <a \n      href=\"https://apps.DTIC.mil/dtic/tr/fulltext/u2/703541.pdf\" \n      target=\"_top\">Thomas'</a> formula.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.formy-module.html#thomas_\" class=\"summary-sig-name\">thomas_</a>(<span class=\"summary-sig-arg\">phi2</span>,\n        <span class=\"summary-sig-arg\">phi1</span>,\n        <span class=\"summary-sig-arg\">lam21</span>,\n        <span class=\"summary-sig-arg\">datum</span>=<span class=\"summary-sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>)</span><br />\n      Compute the <i>angular</i> distance between two (ellipsoidal) points \n      using <a href=\"https://apps.DTIC.mil/dtic/tr/fulltext/u2/703541.pdf\" \n      target=\"_top\">Thomas'</a> formula.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.formy-module.html#vincentys\" class=\"summary-sig-name\">vincentys</a>(<span class=\"summary-sig-arg\">lat1</span>,\n        <span class=\"summary-sig-arg\">lon1</span>,\n        <span class=\"summary-sig-arg\">lat2</span>,\n        <span class=\"summary-sig-arg\">lon2</span>,\n        <span class=\"summary-sig-arg\">radius</span>=<span class=\"summary-sig-default\">6371008.771415</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Compute the distance between two (spherical) points using <a \n      href=\"https://WikiPedia.org/wiki/Great-circle_distance\" \n      target=\"_top\">Vincenty's</a> spherical formula.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.formy-module.html#vincentys_\" class=\"summary-sig-name\">vincentys_</a>(<span class=\"summary-sig-arg\">phi2</span>,\n        <span class=\"summary-sig-arg\">phi1</span>,\n        <span class=\"summary-sig-arg\">lam21</span>)</span><br />\n      Compute the <i>angular</i> distance between two (spherical) points \n      using <a href=\"https://WikiPedia.org/wiki/Great-circle_distance\" \n      target=\"_top\">Vincenty's</a> spherical formula.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== VARIABLES ==================== -->\n<a name=\"section-Variables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Variables</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"__all__\"></a><span class=\"summary-name\">__all__</span> = <code title=\"_ALL_LAZY.formy\">_ALL_LAZY.formy</code>\n    </td>\n  </tr>\n</table>\n<!-- ==================== FUNCTION DETAILS ==================== -->\n<a name=\"section-FunctionDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Function Details</span></td>\n</tr>\n</table>\n<a name=\"angle2chord\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">angle2chord</span>&nbsp;(<span class=\"sig-arg\">rad</span>,\n        <span class=\"sig-arg\">radius</span>=<span class=\"sig-default\">6371008.771415</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Get the chord length of a (central) angle or <i>angular</i> \n  distance.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>rad</code></strong> - Central angle (<code>radians</code>).</li>\n        <li><strong class=\"pname\"><code>radius</code></strong> - Mean earth radius (<code>meter</code>, conventionally), datum (<a\n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>) \n          or ellipsoid (<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\"\n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a> or <a \n          href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>) to use or <code>None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Chord length (<code>meter</code>, same units as \n          <b><code>radius</code></b> or if <code><b>radius</b> is \n          None</code>, <code>radians</code>).</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.formy-module.html#chord2angle\" \n        class=\"link\">chord2angle</a>, method <a \n        href=\"pygeodesy.sphericalNvector.LatLon-class.html#intermediateChordTo\"\n        class=\"link\">intermediateChordTo</a> and <a \n        href=\"https://WikiPedia.org/wiki/Great-circle_distance#Relation_between_central_angle_and_chord_length\"\n        target=\"_top\">great-circle-distance</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"antipode\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">antipode</span>&nbsp;(<span class=\"sig-arg\">lat</span>,\n        <span class=\"sig-arg\">lon</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the antipode, the point diametrically opposite to a given point\n  in <code>degrees</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat</code></strong> - Latitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lon</code></strong> - Longitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.namedTuples.LatLon2Tuple-class.html\" \n          class=\"link\">LatLon2Tuple</a><code>(lat, lon)</code>.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Functions <a href=\"pygeodesy.formy-module.html#antipode_\" \n        class=\"link\">antipode_</a> and <a \n        href=\"pygeodesy.formy-module.html#normal\" class=\"link\">normal</a> \n        and <a \n        href=\"https://CRAN.R-Project.org/web/packages/geosphere/geosphere.pdf\"\n        target=\"_top\">Geosphere</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"antipode_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">antipode_</span>&nbsp;(<span class=\"sig-arg\">phi</span>,\n        <span class=\"sig-arg\">lam</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the antipode, the point diametrically opposite to a given point\n  in <code>radians</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>phi</code></strong> - Latitude (<code>radians</code>).</li>\n        <li><strong class=\"pname\"><code>lam</code></strong> - Longitude (<code>radians</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.namedTuples.PhiLam2Tuple-class.html\" \n          class=\"link\">PhiLam2Tuple</a><code>(phi, lam)</code>.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Functions <a href=\"pygeodesy.formy-module.html#antipode\" \n        class=\"link\">antipode</a> and <a \n        href=\"pygeodesy.formy-module.html#normal_\" class=\"link\">normal_</a>\n        and <a \n        href=\"https://CRAN.R-Project.org/web/packages/geosphere/geosphere.pdf\"\n        target=\"_top\">Geosphere</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"bearing\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">bearing</span>&nbsp;(<span class=\"sig-arg\">lat1</span>,\n        <span class=\"sig-arg\">lon1</span>,\n        <span class=\"sig-arg\">lat2</span>,\n        <span class=\"sig-arg\">lon2</span>,\n        <span class=\"sig-arg\">**final_wrap</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the initial or final bearing (forward or reverse azimuth) \n  between two (spherical) points.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat1</code></strong> - Start latitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lon1</code></strong> - Start longitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lat2</code></strong> - End latitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lon2</code></strong> - End longitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>final_wrap</code></strong> - Optional keyword arguments for function <a \n          href=\"pygeodesy.formy-module.html#bearing_\" \n          class=\"link\">pygeodesy.bearing_</a>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Initial or final bearing (compass <code>degrees360</code>) or \n          zero if both points coincide.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"bearing_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">bearing_</span>&nbsp;(<span class=\"sig-arg\">phi1</span>,\n        <span class=\"sig-arg\">lam1</span>,\n        <span class=\"sig-arg\">phi2</span>,\n        <span class=\"sig-arg\">lam2</span>,\n        <span class=\"sig-arg\">final</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the initial or final bearing (forward or reverse azimuth) \n  between two (spherical) points.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>phi1</code></strong> - Start latitude (<code>radians</code>).</li>\n        <li><strong class=\"pname\"><code>lam1</code></strong> - Start longitude (<code>radians</code>).</li>\n        <li><strong class=\"pname\"><code>phi2</code></strong> - End latitude (<code>radians</code>).</li>\n        <li><strong class=\"pname\"><code>lam2</code></strong> - End longitude (<code>radians</code>).</li>\n        <li><strong class=\"pname\"><code>final</code></strong> - If <code>True</code>, return the final, otherwise the initial \n          bearing (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll \n          <b><code>phi2</code></b> and <b><code>lam2</code></b> \n          (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Initial or final bearing (compass <code>radiansPI2</code>) or \n          zero if both points coincide.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"https://www.Movable-Type.co.UK/scripts/latlong.html\" \n        target=\"_top\">Bearing</a>, <a \n        href=\"https://www.EdWilliams.org/avform147.htm#Crs\" \n        target=\"_top\">Course between two points</a> and <a \n        href=\"https://web.Archive.org/web/20020630205931/https://MathForum.org/library/drmath/view/55417.html\"\n        target=\"_top\">Bearing Between Two Points</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"chord2angle\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">chord2angle</span>&nbsp;(<span class=\"sig-arg\">chord</span>,\n        <span class=\"sig-arg\">radius</span>=<span class=\"sig-default\">6371008.771415</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Get the (central) angle from a chord length or distance.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>chord</code></strong> - Length or distance (<code>meter</code>, same units as \n          <b><code>radius</code></b>).</li>\n        <li><strong class=\"pname\"><code>radius</code></strong> - Mean earth radius (<code>meter</code>, conventionally), datum (<a\n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>) \n          or ellipsoid (<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\"\n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a> or <a \n          href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>) to use.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Angle (<code>radians</code> with sign of \n          <b><code>chord</code></b>) or <code>0</code> if \n          <code><b>radius</b>=0</code>.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        The angle will exceed <code>PI</code> if <code><b>chord</b> &gt; \n        <b>radius</b> * 2</code>.\n      </p>\n      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.formy-module.html#angle2chord\" \n        class=\"link\">angle2chord</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"compassAngle\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">compassAngle</span>&nbsp;(<span class=\"sig-arg\">lat1</span>,\n        <span class=\"sig-arg\">lon1</span>,\n        <span class=\"sig-arg\">lat2</span>,\n        <span class=\"sig-arg\">lon2</span>,\n        <span class=\"sig-arg\">adjust</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the angle from North for the direction vector <i \n  class=\"math\">(lon2 - lon1, lat2 - lat1)</i> between two points.</p>\n  <p>Suitable only for short, not near-polar vectors up to a few hundred Km\n  or Miles.  Use function <a href=\"pygeodesy.formy-module.html#bearing\" \n  class=\"link\">pygeodesy.bearing</a> for longer vectors.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat1</code></strong> - From latitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lon1</code></strong> - From longitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lat2</code></strong> - To latitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lon2</code></strong> - To longitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>adjust</code></strong> - Adjust the longitudinal delta by the cosine of the mean latitude \n          (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll \n          <b><code>lat2</code></b> and <b><code>lon2</code></b> \n          (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Compass angle from North (<code>degrees360</code>).</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        Courtesy of Martin Schultz.\n      </p>\n      <p><strong>See Also:</strong>\n        <a href=\"https://www.EdWilliams.org/avform.htm#flat\" \n        target=\"_top\">Local, flat earth approximation</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"cosineLaw\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">cosineLaw</span>&nbsp;(<span class=\"sig-arg\">lat1</span>,\n        <span class=\"sig-arg\">lon1</span>,\n        <span class=\"sig-arg\">lat2</span>,\n        <span class=\"sig-arg\">lon2</span>,\n        <span class=\"sig-arg\">corr</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">earth</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">datum</span>=<span class=\"sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"sig-arg\">radius</span>=<span class=\"sig-default\">6371008.771415</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the distance between two points using the <a \n  href=\"https://www.Movable-Type.co.UK/scripts/latlong.html#cosine-law\" \n  target=\"_top\">Law of Cosines</a> formula, optionally corrected.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat1</code></strong> - Start latitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lon1</code></strong> - Start longitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lat2</code></strong> - End latitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lon2</code></strong> - End longitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>corr</code></strong> - Use <code><b>corr</b>=2</code> to apply the <a \n          href=\"https://www2.UNB.CA/gge/Pubs/TR77.pdf\" \n          target=\"_top\">Forsythe-Andoyer-Lambert</a>, \n          <code><b>corr</b>=1</code> for the <a \n          href=\"https://Books.Google.com/books?id=x2UiAQAAIAAJ\" \n          target=\"_top\">Andoyer-Lambert</a> corrected (ellipsoidal) or keep\n          <code><b>corr</b>=0</code> for the uncorrected (spherical) \n          <code>Law of Cosines</code> formula (<code>int</code>).</li>\n        <li><strong class=\"pname\"><code>earth</code></strong> - Mean earth radius (<code>meter</code>) or datum (<a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>) \n          or ellipsoid (<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\"\n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a> or <a \n          href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>) to use.</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and \n          <b><code>lat2</code></b> and <b><code>lon2</code></b> \n          (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>datum</code></strong> - Default ellipsiodal <b><code>earth</code></b> (and for backward \n          compatibility).</li>\n        <li><strong class=\"pname\"><code>radius</code></strong> - Default spherical <b><code>earth</code></b> (and for backward \n          compatibility).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Distance (<code>meter</code>, same units as \n          <b><code>radius</code></b> or the datum's or ellipsoid axes).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>earth</code></b>, <b><code>datum</code></b> or \n        <b><code>radius</code></b>.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>corr</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Functions <a href=\"pygeodesy.formy-module.html#cosineLaw_\" \n        class=\"link\">cosineLaw_</a>, <a \n        href=\"pygeodesy.formy-module.html#equirectangular\" \n        class=\"link\">equirectangular</a>, <a \n        href=\"pygeodesy.formy-module.html#euclidean\" \n        class=\"link\">euclidean</a>, <a \n        href=\"pygeodesy.formy-module.html#flatLocal\" \n        class=\"link\">flatLocal</a> / <a \n        href=\"pygeodesy.formy-module.html#flatLocal\" \n        class=\"link\">hubeny</a>, <a \n        href=\"pygeodesy.formy-module.html#flatPolar\" \n        class=\"link\">flatPolar</a>, <a \n        href=\"pygeodesy.formy-module.html#haversine\" \n        class=\"link\">haversine</a>, <a \n        href=\"pygeodesy.formy-module.html#thomas\" class=\"link\">thomas</a> \n        and <a href=\"pygeodesy.formy-module.html#vincentys\" \n        class=\"link\">vincentys</a> and method <a \n        href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#distance2\" \n        class=\"link\">Ellipsoid.distance2</a>.\n      </p>\n      <p><strong>Note:</strong>\n        See note at function <a \n        href=\"pygeodesy.formy-module.html#vincentys_\" \n        class=\"link\">vincentys_</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"cosineLaw_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">cosineLaw_</span>&nbsp;(<span class=\"sig-arg\">phi2</span>,\n        <span class=\"sig-arg\">phi1</span>,\n        <span class=\"sig-arg\">lam21</span>,\n        <span class=\"sig-arg\">corr</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">earth</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">datum</span>=<span class=\"sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the <i>angular</i> distance between two points using the <a \n  href=\"https://www.Movable-Type.co.UK/scripts/latlong.html#cosine-law\" \n  target=\"_top\">Law of Cosines</a> formula, optionally corrected.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>phi2</code></strong> - End latitude (<code>radians</code>).</li>\n        <li><strong class=\"pname\"><code>phi1</code></strong> - Start latitude (<code>radians</code>).</li>\n        <li><strong class=\"pname\"><code>lam21</code></strong> - Longitudinal delta, <i class=\"math\">end-start</i> \n          (<code>radians</code>).</li>\n        <li><strong class=\"pname\"><code>corr</code></strong> - Use <code><b>corr</b>=2</code> to apply the <a \n          href=\"https://www2.UNB.CA/gge/Pubs/TR77.pdf\" \n          target=\"_top\">Forsythe-Andoyer-Lambert</a>, \n          <code><b>corr</b>=1</code> for the <a \n          href=\"https://Books.Google.com/books?id=x2UiAQAAIAAJ\" \n          target=\"_top\">Andoyer-Lambert</a> corrected (ellipsoidal) or keep\n          <code><b>corr</b>=0</code> for the uncorrected (spherical) \n          <code>Law of Cosines</code> formula (<code>int</code>).</li>\n        <li><strong class=\"pname\"><code>earth</code></strong> - Mean earth radius (<code>meter</code>) or datum (<a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>) \n          or ellipsoid (<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\"\n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a> or <a \n          href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>) to use.</li>\n        <li><strong class=\"pname\"><code>datum</code></strong> - Default ellipsoidal <b><code>earth</code></b> (and for backward \n          compatibility).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Angular distance (<code>radians</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>earth</code></b> or <b><code>datum</code></b>.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>corr</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Functions <a href=\"pygeodesy.formy-module.html#cosineLaw\" \n        class=\"link\">cosineLaw</a>, <a \n        href=\"pygeodesy.formy-module.html#euclidean_\" \n        class=\"link\">euclidean_</a>, <a \n        href=\"pygeodesy.formy-module.html#flatLocal_\" \n        class=\"link\">flatLocal_</a> / <a \n        href=\"pygeodesy.formy-module.html#flatLocal_\" \n        class=\"link\">hubeny_</a>, <a \n        href=\"pygeodesy.formy-module.html#flatPolar_\" \n        class=\"link\">flatPolar_</a>, <a \n        href=\"pygeodesy.formy-module.html#haversine_\" \n        class=\"link\">haversine_</a>, <a \n        href=\"pygeodesy.formy-module.html#thomas_\" class=\"link\">thomas_</a>\n        and <a href=\"pygeodesy.formy-module.html#vincentys_\" \n        class=\"link\">vincentys_</a> and <a \n        href=\"https://GitHub.com/jtejido/geodesy-php/blob/master/src/Geodesy/Distance/AndoyerLambert.php\"\n        target=\"_top\">Geodesy-PHP</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"equirectangular\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">equirectangular</span>&nbsp;(<span class=\"sig-arg\">lat1</span>,\n        <span class=\"sig-arg\">lon1</span>,\n        <span class=\"sig-arg\">lat2</span>,\n        <span class=\"sig-arg\">lon2</span>,\n        <span class=\"sig-arg\">radius</span>=<span class=\"sig-default\">6371008.771415</span>,\n        <span class=\"sig-arg\">**adjust_limit_wrap</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Approximate the distance between two points using the <a \n  href=\"https://www.Movable-Type.co.UK/scripts/latlong.html#equirectangular\"\n  target=\"_top\">Equirectangular Approximation / Projection</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat1</code></strong> - Start latitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lon1</code></strong> - Start longitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lat2</code></strong> - End latitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lon2</code></strong> - End longitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>radius</code></strong> - Mean earth radius (<code>meter</code>), datum (<a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>) \n          or ellipsoid (<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\"\n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a> or <a \n          href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>adjust_limit_wrap</code></strong> - Optionally, keyword arguments for function <a \n          href=\"pygeodesy.formy-module.html#equirectangular4\" \n          class=\"link\">equirectangular4</a>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Distance (<code>meter</code>, same units as \n          <b><code>radius</code></b> or the datum's ellipsoid axes).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>radius</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.formy-module.html#equirectangular4\" \n        class=\"link\">equirectangular4</a> for more details, the available \n        <b><code>options</code></b>, errors, restrictions and other, \n        approximate or accurate distance functions.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"equirectangular4\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">equirectangular4</span>&nbsp;(<span class=\"sig-arg\">lat1</span>,\n        <span class=\"sig-arg\">lon1</span>,\n        <span class=\"sig-arg\">lat2</span>,\n        <span class=\"sig-arg\">lon2</span>,\n        <span class=\"sig-arg\">adjust</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">limit</span>=<span class=\"sig-default\">45</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Approximate the distance between two points using the <a \n  href=\"https://www.Movable-Type.co.UK/scripts/latlong.html#equirectangular\"\n  target=\"_top\">Equirectangular Approximation / Projection</a>.</p>\n  <p>This approximation is valid for short distance of several hundred Km \n  or Miles, see the <b><code>limit</code></b> keyword argument and <a \n  href=\"pygeodesy.errors.LimitError-class.html\" \n  class=\"link\">LimitError</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat1</code></strong> - Start latitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lon1</code></strong> - Start longitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lat2</code></strong> - End latitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lon2</code></strong> - End longitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>adjust</code></strong> - Adjust the wrapped, unrolled longitudinal delta by the cosine of \n          the mean latitude (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>limit</code></strong> - Optional limit for lat- and longitudinal deltas \n          (<code>degrees</code>) or <code>None</code> or <code>0</code> for\n          unlimited.</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll \n          <b><code>lat2</code></b> and <b><code>lon2</code></b> \n          (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.namedTuples.Distance4Tuple-class.html\" \n          class=\"link\">Distance4Tuple</a><code>(distance2, delta_lat, \n          delta_lon, unroll_lon2)</code> with <code>distance2</code> in \n          <code>degrees squared</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.LimitError-class.html\">LimitError</a></strong></code> - The lat- or longitudinal delta exceeds the \n        <b><code>-limit..limit</code></b> range and <a \n        href=\"pygeodesy.errors-module.html#limiterrors\" \n        class=\"link\">limiterrors</a> is <code>True</code>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"https://www.EdWilliams.org/avform.htm#flat\" \n        target=\"_top\">Local, flat earth approximation</a>, functions <a \n        href=\"pygeodesy.formy-module.html#equirectangular\" \n        class=\"link\">equirectangular</a>, <a \n        href=\"pygeodesy.formy-module.html#cosineLaw\" \n        class=\"link\">cosineLaw</a>, <a \n        href=\"pygeodesy.formy-module.html#euclidean\" \n        class=\"link\">euclidean</a>, <a \n        href=\"pygeodesy.formy-module.html#flatLocal\" \n        class=\"link\">flatLocal</a> / <a \n        href=\"pygeodesy.formy-module.html#flatLocal\" \n        class=\"link\">hubeny</a>, <a \n        href=\"pygeodesy.formy-module.html#flatPolar\" \n        class=\"link\">flatPolar</a>, <a \n        href=\"pygeodesy.formy-module.html#haversine\" \n        class=\"link\">haversine</a>, <a \n        href=\"pygeodesy.formy-module.html#thomas\" class=\"link\">thomas</a> \n        and <a href=\"pygeodesy.formy-module.html#vincentys\" \n        class=\"link\">vincentys</a> and methods <a \n        href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#distance2\" \n        class=\"link\">Ellipsoid.distance2</a>, \n        <code>LatLon.distanceTo*</code> and \n        <code>LatLon.equirectangularTo</code>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"euclidean\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">euclidean</span>&nbsp;(<span class=\"sig-arg\">lat1</span>,\n        <span class=\"sig-arg\">lon1</span>,\n        <span class=\"sig-arg\">lat2</span>,\n        <span class=\"sig-arg\">lon2</span>,\n        <span class=\"sig-arg\">radius</span>=<span class=\"sig-default\">6371008.771415</span>,\n        <span class=\"sig-arg\">adjust</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Approximate the <code>Euclidean</code> distance between two \n  (spherical) points.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat1</code></strong> - Start latitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lon1</code></strong> - Start longitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lat2</code></strong> - End latitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lon2</code></strong> - End longitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>radius</code></strong> - Mean earth radius (<code>meter</code>), datum (<a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>) \n          or ellipsoid (<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\"\n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a> or <a \n          href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>) to use.</li>\n        <li><strong class=\"pname\"><code>adjust</code></strong> - Adjust the longitudinal delta by the cosine of the mean latitude \n          (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll \n          <b><code>lat2</code></b> and <b><code>lon2</code></b> \n          (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Distance (<code>meter</code>, same units as \n          <b><code>radius</code></b> or the ellipsoid or datum axes).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>radius</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"https://www.EdWilliams.org/avform.htm#Dist\" \n        target=\"_top\">Distance between two (spherical) points</a>, \n        functions <a href=\"pygeodesy.fmath-module.html#euclid\" \n        class=\"link\">euclid</a>, <a \n        href=\"pygeodesy.formy-module.html#euclidean_\" \n        class=\"link\">euclidean_</a>, <a \n        href=\"pygeodesy.formy-module.html#cosineLaw\" \n        class=\"link\">cosineLaw</a>, <a \n        href=\"pygeodesy.formy-module.html#equirectangular\" \n        class=\"link\">equirectangular</a>, <a \n        href=\"pygeodesy.formy-module.html#flatLocal\" \n        class=\"link\">flatLocal</a> / <a \n        href=\"pygeodesy.formy-module.html#flatLocal\" \n        class=\"link\">hubeny</a>, <a \n        href=\"pygeodesy.formy-module.html#flatPolar\" \n        class=\"link\">flatPolar</a>, <a \n        href=\"pygeodesy.formy-module.html#haversine\" \n        class=\"link\">haversine</a>, <a \n        href=\"pygeodesy.formy-module.html#thomas\" class=\"link\">thomas</a> \n        and <a href=\"pygeodesy.formy-module.html#vincentys\" \n        class=\"link\">vincentys</a> and methods <a \n        href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#distance2\" \n        class=\"link\">Ellipsoid.distance2</a>, \n        <code>LatLon.distanceTo*</code> and \n        <code>LatLon.equirectangularTo</code>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"euclidean_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">euclidean_</span>&nbsp;(<span class=\"sig-arg\">phi2</span>,\n        <span class=\"sig-arg\">phi1</span>,\n        <span class=\"sig-arg\">lam21</span>,\n        <span class=\"sig-arg\">adjust</span>=<span class=\"sig-default\">True</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Approximate the <i>angular</i> <code>Euclidean</code> distance between\n  two (spherical) points.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>phi2</code></strong> - End latitude (<code>radians</code>).</li>\n        <li><strong class=\"pname\"><code>phi1</code></strong> - Start latitude (<code>radians</code>).</li>\n        <li><strong class=\"pname\"><code>lam21</code></strong> - Longitudinal delta, <i class=\"math\">end-start</i> \n          (<code>radians</code>).</li>\n        <li><strong class=\"pname\"><code>adjust</code></strong> - Adjust the longitudinal delta by the cosine of the mean latitude \n          (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Angular distance (<code>radians</code>).</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Functions <a href=\"pygeodesy.fmath-module.html#euclid\" \n        class=\"link\">euclid</a>, <a \n        href=\"pygeodesy.formy-module.html#euclidean\" \n        class=\"link\">euclidean</a>, <a \n        href=\"pygeodesy.formy-module.html#cosineLaw_\" \n        class=\"link\">cosineLaw_</a>, <a \n        href=\"pygeodesy.formy-module.html#flatLocal_\" \n        class=\"link\">flatLocal_</a> / <a \n        href=\"pygeodesy.formy-module.html#flatLocal_\" \n        class=\"link\">hubeny_</a>, <a \n        href=\"pygeodesy.formy-module.html#flatPolar_\" \n        class=\"link\">flatPolar_</a>, <a \n        href=\"pygeodesy.formy-module.html#haversine_\" \n        class=\"link\">haversine_</a>, <a \n        href=\"pygeodesy.formy-module.html#thomas_\" class=\"link\">thomas_</a>\n        and <a href=\"pygeodesy.formy-module.html#vincentys_\" \n        class=\"link\">vincentys_</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"excessAbc_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">excessAbc_</span>&nbsp;(<span class=\"sig-arg\">A</span>,\n        <span class=\"sig-arg\">b</span>,\n        <span class=\"sig-arg\">c</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the <i>spherical excess</i> <code>E</code> of a (spherical) \n  triangle from two sides and the included (small) angle.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>A</code></strong> - An interior triangle angle (<code>radians</code>).</li>\n        <li><strong class=\"pname\"><code>b</code></strong> - Frist adjacent triangle side (<code>radians</code>).</li>\n        <li><strong class=\"pname\"><code>c</code></strong> - Second adjacent triangle side (<code>radians</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Spherical excess (<code>radians</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.UnitError-class.html\">UnitError</a></strong></code> - Invalid <b><code>A</code></b>, <b><code>b</code></b> or \n        <b><code>c</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Functions <a href=\"pygeodesy.formy-module.html#excessGirard_\" \n        class=\"link\">excessGirard_</a>, <a \n        href=\"pygeodesy.formy-module.html#excessLHuilier_\" \n        class=\"link\">excessLHuilier_</a> and <a \n        href=\"https://WikiPedia.org/wiki/Spherical_trigonometry\" \n        target=\"_top\">Spherical trigonometry</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"excessCagnoli_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">excessCagnoli_</span>&nbsp;(<span class=\"sig-arg\">a</span>,\n        <span class=\"sig-arg\">b</span>,\n        <span class=\"sig-arg\">c</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the <i>spherical excess</i> <code>E</code> of a (spherical) \n  triangle using <a href=\"https://Zenodo.org/record/35392\" \n  target=\"_top\">Cagnoli's</a> (D.34) formula.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>a</code></strong> - First triangle side (<code>radians</code>).</li>\n        <li><strong class=\"pname\"><code>b</code></strong> - Second triangle side (<code>radians</code>).</li>\n        <li><strong class=\"pname\"><code>c</code></strong> - Third triangle side (<code>radians</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Spherical excess (<code>radians</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.UnitError-class.html\">UnitError</a></strong></code> - Invalid <b><code>a</code></b>, <b><code>b</code></b> or \n        <b><code>c</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.formy-module.html#excessLHuilier_\" \n        class=\"link\">excessLHuilier_</a> and <a \n        href=\"https://WikiPedia.org/wiki/Spherical_trigonometry\" \n        target=\"_top\">Spherical trigonometry</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"excessGirard_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">excessGirard_</span>&nbsp;(<span class=\"sig-arg\">A</span>,\n        <span class=\"sig-arg\">B</span>,\n        <span class=\"sig-arg\">C</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the <i>spherical excess</i> <code>E</code> of a (spherical) \n  triangle using <a \n  href=\"https://MathWorld.Wolfram.com/GirardsSphericalExcessFormula.html\" \n  target=\"_top\">Girard's</a> formula.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>A</code></strong> - First interior triangle angle (<code>radians</code>).</li>\n        <li><strong class=\"pname\"><code>B</code></strong> - Second interior triangle angle (<code>radians</code>).</li>\n        <li><strong class=\"pname\"><code>C</code></strong> - Third interior triangle angle (<code>radians</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Spherical excess (<code>radians</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.UnitError-class.html\">UnitError</a></strong></code> - Invalid <b><code>A</code></b>, <b><code>B</code></b> or \n        <b><code>C</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.formy-module.html#excessLHuilier_\" \n        class=\"link\">excessLHuilier_</a> and <a \n        href=\"https://WikiPedia.org/wiki/Spherical_trigonometry\" \n        target=\"_top\">Spherical trigonometry</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"excessLHuilier_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">excessLHuilier_</span>&nbsp;(<span class=\"sig-arg\">a</span>,\n        <span class=\"sig-arg\">b</span>,\n        <span class=\"sig-arg\">c</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the <i>spherical excess</i> <code>E</code> of a (spherical) \n  triangle using <a \n  href=\"https://MathWorld.Wolfram.com/LHuiliersTheorem.html\" \n  target=\"_top\">L'Huilier's</a>'s Theorem.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>a</code></strong> - First triangle side (<code>radians</code>).</li>\n        <li><strong class=\"pname\"><code>b</code></strong> - Second triangle side (<code>radians</code>).</li>\n        <li><strong class=\"pname\"><code>c</code></strong> - Third triangle side (<code>radians</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Spherical excess (<code>radians</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.UnitError-class.html\">UnitError</a></strong></code> - Invalid <b><code>a</code></b>, <b><code>b</code></b> or \n        <b><code>c</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.formy-module.html#excessCagnoli_\" \n        class=\"link\">excessCagnoli_</a>, <a \n        href=\"pygeodesy.formy-module.html#excessGirard_\" \n        class=\"link\">excessGirard_</a> and <a \n        href=\"https://WikiPedia.org/wiki/Spherical_trigonometry\" \n        target=\"_top\">Spherical trigonometry</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"excessKarney\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">excessKarney</span>&nbsp;(<span class=\"sig-arg\">lat1</span>,\n        <span class=\"sig-arg\">lon1</span>,\n        <span class=\"sig-arg\">lat2</span>,\n        <span class=\"sig-arg\">lon2</span>,\n        <span class=\"sig-arg\">radius</span>=<span class=\"sig-default\">6371008.771415</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the surface area of a (spherical) quadrilateral bounded by a \n  segment of a great circle, two meridians and the equator using <a \n  href=\"https://MathOverflow.net/questions/97711/the-area-of-spherical-polygons\"\n  target=\"_top\">Karney's</a> method.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat1</code></strong> - Start latitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lon1</code></strong> - Start longitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lat2</code></strong> - End latitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lon2</code></strong> - End longitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>radius</code></strong> - Mean earth radius (<code>meter</code>), datum (<a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>) \n          or ellipsoid (<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\"\n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a> or <a \n          href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>) or <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll \n          <b><code>lat2</code></b> and <b><code>lon2</code></b> \n          (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Surface area, <i>signed</i> (<i>square</i> <code>meter</code> or \n          the same units as <b><code>radius</code></b> <i>squared</i>) or \n          the <i>spherical excess</i> (<code>radians</code>) if \n          <code><b>radius</b>=0</code> or <code>None</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>radius</code></b>.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.UnitError-class.html\">UnitError</a></strong></code> - Invalid <b><code>lat2</code></b> or <b><code>lat1</code></b>.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Semi-circular longitudinal delta.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Functions <a href=\"pygeodesy.formy-module.html#excessKarney_\" \n        class=\"link\">excessKarney_</a> and <a \n        href=\"pygeodesy.formy-module.html#excessQuad\" \n        class=\"link\">excessQuad</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"excessKarney_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">excessKarney_</span>&nbsp;(<span class=\"sig-arg\">phi2</span>,\n        <span class=\"sig-arg\">phi1</span>,\n        <span class=\"sig-arg\">lam21</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the <i>spherical excess</i> <code>E</code> of a (spherical) \n  quadrilateral bounded by a segment of a great circle, two meridians and \n  the equator using <a \n  href=\"https://MathOverflow.net/questions/97711/the-area-of-spherical-polygons\"\n  target=\"_top\">Karney's</a> method.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>phi2</code></strong> - End latitude (<code>radians</code>).</li>\n        <li><strong class=\"pname\"><code>phi1</code></strong> - Start latitude (<code>radians</code>).</li>\n        <li><strong class=\"pname\"><code>lam21</code></strong> - Longitudinal delta, <i class=\"math\">end-start</i> \n          (<code>radians</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Spherical excess, <i>signed</i> (<code>radians</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ValueError</strong></code> - Semi-circular longitudinal delta <b><code>lam21</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.formy-module.html#excessKarney\" \n        class=\"link\">excessKarney</a> and <a \n        href=\"https://MathOverflow.net/questions/97711/the-area-of-spherical-polygons\"\n        target=\"_top\">Area of a spherical polygon</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"excessQuad\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">excessQuad</span>&nbsp;(<span class=\"sig-arg\">lat1</span>,\n        <span class=\"sig-arg\">lon1</span>,\n        <span class=\"sig-arg\">lat2</span>,\n        <span class=\"sig-arg\">lon2</span>,\n        <span class=\"sig-arg\">radius</span>=<span class=\"sig-default\">6371008.771415</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the surface area of a (spherical) quadrilateral bounded by a \n  segment of a great circle, two meridians and the equator.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat1</code></strong> - Start latitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lon1</code></strong> - Start longitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lat2</code></strong> - End latitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lon2</code></strong> - End longitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>radius</code></strong> - Mean earth radius (<code>meter</code>), datum (<a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>) \n          or ellipsoid (<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\"\n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a> or <a \n          href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>) or <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll \n          <b><code>lat2</code></b> and <b><code>lon2</code></b> \n          (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Surface area, <i>signed</i> (<i>square</i> <code>meter</code> or \n          the same units as <b><code>radius</code></b> <i>squared</i>) or \n          the <i>spherical excess</i> (<code>radians</code>) if \n          <code><b>radius</b>=0</code> or <code>None</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>radius</code></b>.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.UnitError-class.html\">UnitError</a></strong></code> - Invalid <b><code>lat2</code></b> or <b><code>lat1</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.formy-module.html#excessQuad_\" \n        class=\"link\">excessQuad_</a> and <a \n        href=\"pygeodesy.formy-module.html#excessKarney\" \n        class=\"link\">excessKarney</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"excessQuad_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">excessQuad_</span>&nbsp;(<span class=\"sig-arg\">phi2</span>,\n        <span class=\"sig-arg\">phi1</span>,\n        <span class=\"sig-arg\">lam21</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the <i>spherical excess</i> <code>E</code> of a (spherical) \n  quadrilateral bounded by a segment of a great circle, two meridians and \n  the equator.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>phi2</code></strong> - End latitude (<code>radians</code>).</li>\n        <li><strong class=\"pname\"><code>phi1</code></strong> - Start latitude (<code>radians</code>).</li>\n        <li><strong class=\"pname\"><code>lam21</code></strong> - Longitudinal delta, <i class=\"math\">end-start</i> \n          (<code>radians</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Spherical excess, <i>signed</i> (<code>radians</code>).</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.formy-module.html#excessQuad\" \n        class=\"link\">excessQuad</a> and <a \n        href=\"https://WikiPedia.org/wiki/Spherical_trigonometry\" \n        target=\"_top\">Spherical trigonometry</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"flatLocal\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">flatLocal</span>&nbsp;(<span class=\"sig-arg\">lat1</span>,\n        <span class=\"sig-arg\">lon1</span>,\n        <span class=\"sig-arg\">lat2</span>,\n        <span class=\"sig-arg\">lon2</span>,\n        <span class=\"sig-arg\">datum</span>=<span class=\"sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"sig-arg\">scaled</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the distance between two (ellipsoidal) points using the <a \n  href=\"https://WikiPedia.org/wiki/Geographical_distance#Ellipsoidal_Earth_projected_to_a_plane\"\n  target=\"_top\">ellipsoidal Earth to plane projection</a> aka <a \n  href=\"https://www.OVG.AT/de/vgi/files/pdf/3781/\" target=\"_top\">Hubeny</a>\n  formula.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat1</code></strong> - Start latitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lon1</code></strong> - Start longitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lat2</code></strong> - End latitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lon2</code></strong> - End longitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>datum</code></strong> - Datum (<a href=\"pygeodesy.datums.Datum-class.html\" \n          class=\"link\">Datum</a>) or ellipsoid (<a \n          href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a> or <a \n          href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>) to use.</li>\n        <li><strong class=\"pname\"><code>scaled</code></strong> - Scale prime_vertical by <code>cos(<b>phi</b>)</code> \n          (<code>bool</code>), see method <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#roc2_\" \n          class=\"link\">pygeodesy.Ellipsoid.roc2_</a>.</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll \n          <b><code>lat2</code></b> and <b><code>lon2</code></b> \n          (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Distance (<code>meter</code>, same units as the \n          <b><code>datum</code></b>'s or ellipsoid axes).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>datum</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        The meridional and prime_vertical radii of curvature are taken and \n        scaled at the mean of both latitude.\n      </p>\n      <p><strong>See Also:</strong>\n        Functions <a href=\"pygeodesy.formy-module.html#flatLocal_\" \n        class=\"link\">flatLocal_</a> or <a \n        href=\"pygeodesy.formy-module.html#flatLocal_\" \n        class=\"link\">hubeny_</a>, <a \n        href=\"pygeodesy.formy-module.html#cosineLaw\" \n        class=\"link\">cosineLaw</a>, <a \n        href=\"pygeodesy.formy-module.html#equirectangular\" \n        class=\"link\">equirectangular</a>, <a \n        href=\"pygeodesy.formy-module.html#euclidean\" \n        class=\"link\">euclidean</a>, <a \n        href=\"pygeodesy.formy-module.html#flatPolar\" \n        class=\"link\">flatPolar</a>, <a \n        href=\"pygeodesy.formy-module.html#haversine\" \n        class=\"link\">haversine</a>, <a \n        href=\"pygeodesy.formy-module.html#thomas\" class=\"link\">thomas</a> \n        and <a href=\"pygeodesy.formy-module.html#vincentys\" \n        class=\"link\">vincentys</a>, method <a \n        href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#distance2\" \n        class=\"link\">Ellipsoid.distance2</a> and <a \n        href=\"https://www.EdWilliams.org/avform.htm#flat\" \n        target=\"_top\">local, flat earth approximation</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"hubeny\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">hubeny</span>&nbsp;(<span class=\"sig-arg\">lat1</span>,\n        <span class=\"sig-arg\">lon1</span>,\n        <span class=\"sig-arg\">lat2</span>,\n        <span class=\"sig-arg\">lon2</span>,\n        <span class=\"sig-arg\">datum</span>=<span class=\"sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"sig-arg\">scaled</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the distance between two (ellipsoidal) points using the <a \n  href=\"https://WikiPedia.org/wiki/Geographical_distance#Ellipsoidal_Earth_projected_to_a_plane\"\n  target=\"_top\">ellipsoidal Earth to plane projection</a> aka <a \n  href=\"https://www.OVG.AT/de/vgi/files/pdf/3781/\" target=\"_top\">Hubeny</a>\n  formula.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat1</code></strong> - Start latitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lon1</code></strong> - Start longitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lat2</code></strong> - End latitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lon2</code></strong> - End longitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>datum</code></strong> - Datum (<a href=\"pygeodesy.datums.Datum-class.html\" \n          class=\"link\">Datum</a>) or ellipsoid (<a \n          href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a> or <a \n          href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>) to use.</li>\n        <li><strong class=\"pname\"><code>scaled</code></strong> - Scale prime_vertical by <code>cos(<b>phi</b>)</code> \n          (<code>bool</code>), see method <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#roc2_\" \n          class=\"link\">pygeodesy.Ellipsoid.roc2_</a>.</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll \n          <b><code>lat2</code></b> and <b><code>lon2</code></b> \n          (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Distance (<code>meter</code>, same units as the \n          <b><code>datum</code></b>'s or ellipsoid axes).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>datum</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        The meridional and prime_vertical radii of curvature are taken and \n        scaled at the mean of both latitude.\n      </p>\n      <p><strong>See Also:</strong>\n        Functions <a href=\"pygeodesy.formy-module.html#flatLocal_\" \n        class=\"link\">flatLocal_</a> or <a \n        href=\"pygeodesy.formy-module.html#flatLocal_\" \n        class=\"link\">hubeny_</a>, <a \n        href=\"pygeodesy.formy-module.html#cosineLaw\" \n        class=\"link\">cosineLaw</a>, <a \n        href=\"pygeodesy.formy-module.html#equirectangular\" \n        class=\"link\">equirectangular</a>, <a \n        href=\"pygeodesy.formy-module.html#euclidean\" \n        class=\"link\">euclidean</a>, <a \n        href=\"pygeodesy.formy-module.html#flatPolar\" \n        class=\"link\">flatPolar</a>, <a \n        href=\"pygeodesy.formy-module.html#haversine\" \n        class=\"link\">haversine</a>, <a \n        href=\"pygeodesy.formy-module.html#thomas\" class=\"link\">thomas</a> \n        and <a href=\"pygeodesy.formy-module.html#vincentys\" \n        class=\"link\">vincentys</a>, method <a \n        href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#distance2\" \n        class=\"link\">Ellipsoid.distance2</a> and <a \n        href=\"https://www.EdWilliams.org/avform.htm#flat\" \n        target=\"_top\">local, flat earth approximation</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"flatLocal_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">flatLocal_</span>&nbsp;(<span class=\"sig-arg\">phi2</span>,\n        <span class=\"sig-arg\">phi1</span>,\n        <span class=\"sig-arg\">lam21</span>,\n        <span class=\"sig-arg\">datum</span>=<span class=\"sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"sig-arg\">scaled</span>=<span class=\"sig-default\">True</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the <i>angular</i> distance between two (ellipsoidal) points \n  using the <a \n  href=\"https://WikiPedia.org/wiki/Geographical_distance#Ellipsoidal_Earth_projected_to_a_plane\"\n  target=\"_top\">ellipsoidal Earth to plane projection</a> aka <a \n  href=\"https://www.OVG.AT/de/vgi/files/pdf/3781/\" target=\"_top\">Hubeny</a>\n  formula.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>phi2</code></strong> - End latitude (<code>radians</code>).</li>\n        <li><strong class=\"pname\"><code>phi1</code></strong> - Start latitude (<code>radians</code>).</li>\n        <li><strong class=\"pname\"><code>lam21</code></strong> - Longitudinal delta, <i class=\"math\">end-start</i> \n          (<code>radians</code>).</li>\n        <li><strong class=\"pname\"><code>datum</code></strong> - Datum (<a href=\"pygeodesy.datums.Datum-class.html\" \n          class=\"link\">Datum</a>) or ellipsoid (<a \n          href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a> or <a \n          href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>) to use.</li>\n        <li><strong class=\"pname\"><code>scaled</code></strong> - Scale prime_vertical by <code>cos(<b>phi</b>)</code> \n          (<code>bool</code>), see method <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#roc2_\" \n          class=\"link\">pygeodesy.Ellipsoid.roc2_</a>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Angular distance (<code>radians</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>datum</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        The meridional and prime_vertical radii of curvature are taken and \n        scaled <i>at the mean of both latitude</i>.\n      </p>\n      <p><strong>See Also:</strong>\n        Functions <a href=\"pygeodesy.formy-module.html#flatLocal\" \n        class=\"link\">flatLocal</a> or <a \n        href=\"pygeodesy.formy-module.html#flatLocal\" \n        class=\"link\">hubeny</a>, <a \n        href=\"pygeodesy.formy-module.html#cosineLaw_\" \n        class=\"link\">cosineLaw_</a>, <a \n        href=\"pygeodesy.formy-module.html#flatPolar_\" \n        class=\"link\">flatPolar_</a>, <a \n        href=\"pygeodesy.formy-module.html#euclidean_\" \n        class=\"link\">euclidean_</a>, <a \n        href=\"pygeodesy.formy-module.html#haversine_\" \n        class=\"link\">haversine_</a>, <a \n        href=\"pygeodesy.formy-module.html#thomas_\" class=\"link\">thomas_</a>\n        and <a href=\"pygeodesy.formy-module.html#vincentys_\" \n        class=\"link\">vincentys_</a> and <a \n        href=\"https://www.EdWilliams.org/avform.htm#flat\" \n        target=\"_top\">local, flat earth approximation</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"hubeny_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">hubeny_</span>&nbsp;(<span class=\"sig-arg\">phi2</span>,\n        <span class=\"sig-arg\">phi1</span>,\n        <span class=\"sig-arg\">lam21</span>,\n        <span class=\"sig-arg\">datum</span>=<span class=\"sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"sig-arg\">scaled</span>=<span class=\"sig-default\">True</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the <i>angular</i> distance between two (ellipsoidal) points \n  using the <a \n  href=\"https://WikiPedia.org/wiki/Geographical_distance#Ellipsoidal_Earth_projected_to_a_plane\"\n  target=\"_top\">ellipsoidal Earth to plane projection</a> aka <a \n  href=\"https://www.OVG.AT/de/vgi/files/pdf/3781/\" target=\"_top\">Hubeny</a>\n  formula.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>phi2</code></strong> - End latitude (<code>radians</code>).</li>\n        <li><strong class=\"pname\"><code>phi1</code></strong> - Start latitude (<code>radians</code>).</li>\n        <li><strong class=\"pname\"><code>lam21</code></strong> - Longitudinal delta, <i class=\"math\">end-start</i> \n          (<code>radians</code>).</li>\n        <li><strong class=\"pname\"><code>datum</code></strong> - Datum (<a href=\"pygeodesy.datums.Datum-class.html\" \n          class=\"link\">Datum</a>) or ellipsoid (<a \n          href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a> or <a \n          href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>) to use.</li>\n        <li><strong class=\"pname\"><code>scaled</code></strong> - Scale prime_vertical by <code>cos(<b>phi</b>)</code> \n          (<code>bool</code>), see method <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#roc2_\" \n          class=\"link\">pygeodesy.Ellipsoid.roc2_</a>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Angular distance (<code>radians</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>datum</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        The meridional and prime_vertical radii of curvature are taken and \n        scaled <i>at the mean of both latitude</i>.\n      </p>\n      <p><strong>See Also:</strong>\n        Functions <a href=\"pygeodesy.formy-module.html#flatLocal\" \n        class=\"link\">flatLocal</a> or <a \n        href=\"pygeodesy.formy-module.html#flatLocal\" \n        class=\"link\">hubeny</a>, <a \n        href=\"pygeodesy.formy-module.html#cosineLaw_\" \n        class=\"link\">cosineLaw_</a>, <a \n        href=\"pygeodesy.formy-module.html#flatPolar_\" \n        class=\"link\">flatPolar_</a>, <a \n        href=\"pygeodesy.formy-module.html#euclidean_\" \n        class=\"link\">euclidean_</a>, <a \n        href=\"pygeodesy.formy-module.html#haversine_\" \n        class=\"link\">haversine_</a>, <a \n        href=\"pygeodesy.formy-module.html#thomas_\" class=\"link\">thomas_</a>\n        and <a href=\"pygeodesy.formy-module.html#vincentys_\" \n        class=\"link\">vincentys_</a> and <a \n        href=\"https://www.EdWilliams.org/avform.htm#flat\" \n        target=\"_top\">local, flat earth approximation</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"flatPolar\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">flatPolar</span>&nbsp;(<span class=\"sig-arg\">lat1</span>,\n        <span class=\"sig-arg\">lon1</span>,\n        <span class=\"sig-arg\">lat2</span>,\n        <span class=\"sig-arg\">lon2</span>,\n        <span class=\"sig-arg\">radius</span>=<span class=\"sig-default\">6371008.771415</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the distance between two (spherical) points using the <a \n  href=\"https://WikiPedia.org/wiki/Geographical_distance#Polar_coordinate_flat-Earth_formula\"\n  target=\"_top\">polar coordinate flat-Earth</a> formula.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat1</code></strong> - Start latitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lon1</code></strong> - Start longitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lat2</code></strong> - End latitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lon2</code></strong> - End longitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>radius</code></strong> - Mean earth radius (<code>meter</code>), datum (<a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>) \n          or ellipsoid (<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\"\n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a> or <a \n          href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>) to use.</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and \n          <b><code>lat2</code></b> and <b><code>lon2</code></b> \n          (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Distance (<code>meter</code>, same units as \n          <b><code>radius</code></b> or the datum's or ellipsoid axes).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>radius</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Functions <a href=\"pygeodesy.formy-module.html#flatPolar_\" \n        class=\"link\">flatPolar_</a>, <a \n        href=\"pygeodesy.formy-module.html#cosineLaw\" \n        class=\"link\">cosineLaw</a>, <a \n        href=\"pygeodesy.formy-module.html#flatLocal\" \n        class=\"link\">flatLocal</a> / <a \n        href=\"pygeodesy.formy-module.html#flatLocal\" \n        class=\"link\">hubeny</a>, <a \n        href=\"pygeodesy.formy-module.html#equirectangular\" \n        class=\"link\">equirectangular</a>, <a \n        href=\"pygeodesy.formy-module.html#euclidean\" \n        class=\"link\">euclidean</a>, <a \n        href=\"pygeodesy.formy-module.html#haversine\" \n        class=\"link\">haversine</a>, <a \n        href=\"pygeodesy.formy-module.html#thomas\" class=\"link\">thomas</a> \n        and <a href=\"pygeodesy.formy-module.html#vincentys\" \n        class=\"link\">vincentys</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"flatPolar_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">flatPolar_</span>&nbsp;(<span class=\"sig-arg\">phi2</span>,\n        <span class=\"sig-arg\">phi1</span>,\n        <span class=\"sig-arg\">lam21</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the <i>angular</i> distance between two (spherical) points \n  using the <a \n  href=\"https://WikiPedia.org/wiki/Geographical_distance#Polar_coordinate_flat-Earth_formula\"\n  target=\"_top\">polar coordinate flat-Earth</a> formula.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>phi2</code></strong> - End latitude (<code>radians</code>).</li>\n        <li><strong class=\"pname\"><code>phi1</code></strong> - Start latitude (<code>radians</code>).</li>\n        <li><strong class=\"pname\"><code>lam21</code></strong> - Longitudinal delta, <i class=\"math\">end-start</i> \n          (<code>radians</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Angular distance (<code>radians</code>).</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Functions <a href=\"pygeodesy.formy-module.html#flatPolar\" \n        class=\"link\">flatPolar</a>, <a \n        href=\"pygeodesy.formy-module.html#cosineLaw_\" \n        class=\"link\">cosineLaw_</a>, <a \n        href=\"pygeodesy.formy-module.html#euclidean_\" \n        class=\"link\">euclidean_</a>, <a \n        href=\"pygeodesy.formy-module.html#flatLocal_\" \n        class=\"link\">flatLocal_</a> / <a \n        href=\"pygeodesy.formy-module.html#flatLocal_\" \n        class=\"link\">hubeny_</a>, <a \n        href=\"pygeodesy.formy-module.html#haversine_\" \n        class=\"link\">haversine_</a>, <a \n        href=\"pygeodesy.formy-module.html#thomas_\" class=\"link\">thomas_</a>\n        and <a href=\"pygeodesy.formy-module.html#vincentys_\" \n        class=\"link\">vincentys_</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"hartzell\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">hartzell</span>&nbsp;(<span class=\"sig-arg\">pov</span>,\n        <span class=\"sig-arg\">los</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">earth</span>=<span class=\"sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"sig-arg\">**name_LatLon_and_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the intersection of the earth's surface and a Line-Of-Sight \n  from a Point-Of-View in space.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>pov</code></strong> - Point-Of-View outside the earth (<code>LatLon</code>, \n          <code>Cartesian</code>, <a \n          href=\"pygeodesy.ecef.Ecef9Tuple-class.html\" \n          class=\"link\">Ecef9Tuple</a> or <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>).</li>\n        <li><strong class=\"pname\"><code>los</code></strong> - Line-Of-Sight, <i>direction</i> to earth (<a \n          href=\"pygeodesy.ltpTuples.Los-class.html\" class=\"link\">Los</a>, \n          <a href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>), <code>True</code> for the <i>normal, \n          plumb</i> onto the surface or <code>False</code> or \n          <code>None</code> to point to the center of the earth.</li>\n        <li><strong class=\"pname\"><code>earth</code></strong> - The earth model (<a href=\"pygeodesy.datums.Datum-class.html\" \n          class=\"link\">Datum</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a>, <a \n          href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a> or a <code>scalar</code> earth radius \n          in <code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>name_LatLon_and_kwds</code></strong> - Optional <code><b>name</b>=&quot;hartzell&quot;</code> \n          (<code>str</code>), class <code><b>LatLon</b>=None</code> to \n          return the intersection and optionally, additional \n          <code>LatLon</code> keyword arguments, include the \n          <b><code>datum</code></b> if different from and to convert from \n          <b><code>earth</code></b>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The intersection (<a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <b><code>pov</code></b>'s \n          <code>cartesian type</code> or the given \n          <b><code>LatLon</code></b> instance) with attribute \n          <code>height</code> set to the distance to the \n          <b><code>pov</code></b>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.IntersectionError-class.html\">IntersectionError</a></strong></code> - Invalid <b><code>pov</code></b> or <b><code>pov</code></b> inside \n        the earth or invalid <b><code>los</code></b> or \n        <b><code>los</code></b> points outside or away from the earth.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>earth</code></b>, <code>ellipsoid</code> or \n        <code>datum</code>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Class <a href=\"pygeodesy.ltpTuples.Los-class.html\" \n        class=\"link\">Los</a>, functions <a \n        href=\"pygeodesy.ltp-module.html#tyr3d\" class=\"link\">tyr3d</a> and \n        <a href=\"pygeodesy.triaxials.triaxial5-module.html#hartzell4\" \n        class=\"link\">hartzell4</a> and methods <a \n        href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#hartzell4\" \n        class=\"link\">Ellipsoid.hartzell4</a>, any \n        <code>Cartesian.hartzell</code> and <code>LatLon.hartzell</code>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"haversine\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">haversine</span>&nbsp;(<span class=\"sig-arg\">lat1</span>,\n        <span class=\"sig-arg\">lon1</span>,\n        <span class=\"sig-arg\">lat2</span>,\n        <span class=\"sig-arg\">lon2</span>,\n        <span class=\"sig-arg\">radius</span>=<span class=\"sig-default\">6371008.771415</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the distance between two (spherical) points using the <a \n  href=\"https://www.Movable-Type.co.UK/scripts/latlong.html\" \n  target=\"_top\">Haversine</a> formula.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat1</code></strong> - Start latitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lon1</code></strong> - Start longitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lat2</code></strong> - End latitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lon2</code></strong> - End longitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>radius</code></strong> - Mean earth radius (<code>meter</code>), datum (<a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>) \n          or ellipsoid (<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\"\n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a> or <a \n          href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>) to use.</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll \n          <b><code>lat2</code></b> and <b><code>lon2</code></b> \n          (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Distance (<code>meter</code>, same units as \n          <b><code>radius</code></b>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>radius</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"https://www.EdWilliams.org/avform.htm#Dist\" \n        target=\"_top\">Distance between two (spherical) points</a>, \n        functions <a href=\"pygeodesy.formy-module.html#cosineLaw\" \n        class=\"link\">cosineLaw</a>, <a \n        href=\"pygeodesy.formy-module.html#equirectangular\" \n        class=\"link\">equirectangular</a>, <a \n        href=\"pygeodesy.formy-module.html#euclidean\" \n        class=\"link\">euclidean</a>, <a \n        href=\"pygeodesy.formy-module.html#flatLocal\" \n        class=\"link\">flatLocal</a> / <a \n        href=\"pygeodesy.formy-module.html#flatLocal\" \n        class=\"link\">hubeny</a>, <a \n        href=\"pygeodesy.formy-module.html#flatPolar\" \n        class=\"link\">flatPolar</a>, <a \n        href=\"pygeodesy.formy-module.html#thomas\" class=\"link\">thomas</a> \n        and <a href=\"pygeodesy.formy-module.html#vincentys\" \n        class=\"link\">vincentys</a> and methods <a \n        href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#distance2\" \n        class=\"link\">Ellipsoid.distance2</a>, \n        <code>LatLon.distanceTo*</code> and \n        <code>LatLon.equirectangularTo</code>.\n      </p>\n      <p><strong>Note:</strong>\n        See note at function <a \n        href=\"pygeodesy.formy-module.html#vincentys_\" \n        class=\"link\">vincentys_</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"haversine_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">haversine_</span>&nbsp;(<span class=\"sig-arg\">phi2</span>,\n        <span class=\"sig-arg\">phi1</span>,\n        <span class=\"sig-arg\">lam21</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the <i>angular</i> distance between two (spherical) points \n  using the <a href=\"https://www.Movable-Type.co.UK/scripts/latlong.html\" \n  target=\"_top\">Haversine</a> formula.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>phi2</code></strong> - End latitude (<code>radians</code>).</li>\n        <li><strong class=\"pname\"><code>phi1</code></strong> - Start latitude (<code>radians</code>).</li>\n        <li><strong class=\"pname\"><code>lam21</code></strong> - Longitudinal delta, <i class=\"math\">end-start</i> \n          (<code>radians</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Angular distance (<code>radians</code>).</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Functions <a href=\"pygeodesy.formy-module.html#haversine\" \n        class=\"link\">haversine</a>, <a \n        href=\"pygeodesy.formy-module.html#cosineLaw_\" \n        class=\"link\">cosineLaw_</a>, <a \n        href=\"pygeodesy.formy-module.html#euclidean_\" \n        class=\"link\">euclidean_</a>, <a \n        href=\"pygeodesy.formy-module.html#flatLocal_\" \n        class=\"link\">flatLocal_</a> / <a \n        href=\"pygeodesy.formy-module.html#flatLocal_\" \n        class=\"link\">hubeny_</a>, <a \n        href=\"pygeodesy.formy-module.html#flatPolar_\" \n        class=\"link\">flatPolar_</a>, <a \n        href=\"pygeodesy.formy-module.html#thomas_\" class=\"link\">thomas_</a>\n        and <a href=\"pygeodesy.formy-module.html#vincentys_\" \n        class=\"link\">vincentys_</a>.\n      </p>\n      <p><strong>Note:</strong>\n        See note at function <a \n        href=\"pygeodesy.formy-module.html#vincentys_\" \n        class=\"link\">vincentys_</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"heightOf\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">heightOf</span>&nbsp;(<span class=\"sig-arg\">angle</span>,\n        <span class=\"sig-arg\">distance</span>,\n        <span class=\"sig-arg\">radius</span>=<span class=\"sig-default\">6371008.771415</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Determine the height above the (spherical) earth' surface after \n  traveling along a straight line at a given tilt.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>angle</code></strong> - Tilt angle above horizontal (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>distance</code></strong> - Distance along the line (<code>meter</code> or same units as \n          <b><code>radius</code></b>).</li>\n        <li><strong class=\"pname\"><code>radius</code></strong> - Optional mean earth radius (<code>meter</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Height (<code>meter</code>, same units as \n          <b><code>distance</code></b> and <b><code>radius</code></b>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>angle</code></b>, <b><code>distance</code></b> or \n        <b><code>radius</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"https://GitHub.com/NASA/MultiDop\" target=\"_top\">MultiDop \n        geog_lib.GeogBeamHt</a> (<a \n        href=\"https://Journals.AMetSoc.org/doi/abs/10.1175/2009JTECHA1256.1\"\n        target=\"_top\">Shapiro et al. 2009, JTECH</a> and <a \n        href=\"https://Journals.AMetSoc.org/doi/abs/10.1175/JTECH-D-11-00019.1\"\n        target=\"_top\">Potvin et al. 2012, JTECH</a>).\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"heightOrthometric\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">heightOrthometric</span>&nbsp;(<span class=\"sig-arg\">h_loc</span>,\n        <span class=\"sig-arg\">N</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Get the <i>orthometric</i> height <b>H</b>, the height above the \n  geoid, earth surface.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>h_loc</code></strong> - The height above the ellipsoid (<code>meter</code>) or an \n          <i>ellipsoidal</i> location (<code>LatLon</code> or \n          <code>Cartesian</code> with a <code>height</code> or \n          <code>h</code> attribute), otherwise <code>0 meter</code>.</li>\n        <li><strong class=\"pname\"><code>N</code></strong> - The <i>geoid</i> height (<code>meter</code>), the height of the \n          geoid above the ellipsoid at the same <b><code>h_loc</code></b> \n          location.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><i>Orthometric</i> height <code><b>H</b> = <b>h</b> - \n          <b>N</b></code> (<code>meter</code>, same units as \n          <b><code>h</code></b> and <b><code>N</code></b>).</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a \n        href=\"https://www.NGS.NOAA.gov/GEOID/PRESENTATIONS/2007_02_24_CCPS/Roman_A_PLSC2007notes.pdf\"\n        target=\"_top\">Ellipsoid, Geoid, and Orthometric Heights</a>, page 6\n        and module <a href=\"pygeodesy.geoids-module.html\" \n        class=\"link\">pygeodesy.geoids</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"horizon\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">horizon</span>&nbsp;(<span class=\"sig-arg\">height</span>,\n        <span class=\"sig-arg\">radius</span>=<span class=\"sig-default\">6371008.771415</span>,\n        <span class=\"sig-arg\">refraction</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Determine the distance to the horizon from a given altitude above the \n  (spherical) earth.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>height</code></strong> - Altitude (<code>meter</code> or same units as \n          <b><code>radius</code></b>).</li>\n        <li><strong class=\"pname\"><code>radius</code></strong> - Optional mean earth radius (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>refraction</code></strong> - Consider atmospheric refraction (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Distance (<code>meter</code>, same units as \n          <b><code>height</code></b> and <b><code>radius</code></b>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>height</code></b> or <b><code>radius</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"https://www.EdWilliams.org/avform.htm#Horizon\" \n        target=\"_top\">Distance to horizon</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"intersection2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">intersection2</span>&nbsp;(<span class=\"sig-arg\">lat1</span>,\n        <span class=\"sig-arg\">lon1</span>,\n        <span class=\"sig-arg\">bearing1</span>,\n        <span class=\"sig-arg\">lat2</span>,\n        <span class=\"sig-arg\">lon2</span>,\n        <span class=\"sig-arg\">bearing2</span>,\n        <span class=\"sig-arg\">datum</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">small</span>=<span class=\"sig-default\">100000.0</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p><i>Conveniently</i> compute the intersection of two lines each defined\n  by a (geodetic) point and a bearing from North, using either ...</p>\n  <p>1) <a href=\"pygeodesy.vector3d-module.html#intersection3d3\" \n  class=\"link\">vector3d.intersection3d3</a> for <b><code>small</code></b> \n  distances (below 100 Km or about 0.88 degrees) or if <i>no</i> \n  <b><code>datum</code></b> is specified, or ...</p>\n  <p>2) <a href=\"pygeodesy.sphericalTrigonometry-module.html#intersection\" \n  class=\"link\">sphericalTrigonometry.intersection</a> for a spherical \n  <b><code>datum</code></b> or a <code>scalar <b>datum</b></code> \n  representing the earth radius, conventionally in <code>meter</code> or \n  ...</p>\n  <p>3) <a href=\"pygeodesy.sphericalNvector-module.html#intersection\" \n  class=\"link\">sphericalNvector.intersection</a> if \n  <b><code>datum</code></b> is a <i>negative</i> <code>scalar</code>, \n  (negative) earth radius, conventionally in <code>meter</code> or ...</p>\n  <p>4) <a href=\"pygeodesy.ellipsoidalKarney-module.html#intersection3\" \n  class=\"link\">ellipsoidalKarney.intersection3</a> for an ellipsoidal \n  <b><code>datum</code></b> and if <i>Karney</i>'s <a \n  href=\"https://PyPI.org/project/geographiclib\" \n  target=\"_top\">geographiclib</a> is installed, otherwise ...</p>\n  <p>5) <a href=\"pygeodesy.ellipsoidalExact-module.html#intersection3\" \n  class=\"link\">ellipsoidalExact.intersection3</a>, provided \n  <b><code>datum</code></b> is ellipsoidal.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat1</code></strong> - Latitude of the first point (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lon1</code></strong> - Longitude of the first point (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>bearing1</code></strong> - Bearing at the first point (compass <code>degrees360</code>).</li>\n        <li><strong class=\"pname\"><code>lat2</code></strong> - Latitude of the second point (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lon2</code></strong> - Longitude of the second point (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>bearing2</code></strong> - Bearing at the second point (compass <code>degrees360</code>).</li>\n        <li><strong class=\"pname\"><code>datum</code></strong> - Optional datum (<a href=\"pygeodesy.datums.Datum-class.html\" \n          class=\"link\">Datum</a>) or ellipsoid (<a \n          href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a> or <a \n          href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>) or <code>scalar</code> earth radius \n          (<code>meter</code>, same units as <b><code>radius1</code></b> \n          and <b><code>radius2</code></b>) or <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll \n          <b><code>lat2</code></b> and <b><code>lon2</code></b> \n          (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>small</code></strong> - Upper limit for small distances (<code>meter</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Intersection point (<a \n          href=\"pygeodesy.namedTuples.LatLon2Tuple-class.html\" \n          class=\"link\">LatLon2Tuple</a><code>(lat, lon)</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.IntersectionError-class.html\">IntersectionError</a></strong></code> - No or an ambiguous intersection or colinear, parallel or otherwise \n        non-intersecting lines.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>datum</code></b>.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.UnitError-class.html\">UnitError</a></strong></code> - Invalid <b><code>lat1</code></b>, <b><code>lon1</code></b>, \n        <b><code>bearing1</code></b>, <b><code>lat2</code></b>, \n        <b><code>lon2</code></b> or <b><code>bearing2</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <a \n        href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#intersection2\"\n        class=\"link\">RhumbLine.intersection2</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"intersections2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">intersections2</span>&nbsp;(<span class=\"sig-arg\">lat1</span>,\n        <span class=\"sig-arg\">lon1</span>,\n        <span class=\"sig-arg\">radius1</span>,\n        <span class=\"sig-arg\">lat2</span>,\n        <span class=\"sig-arg\">lon2</span>,\n        <span class=\"sig-arg\">radius2</span>,\n        <span class=\"sig-arg\">datum</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">small</span>=<span class=\"sig-default\">100000.0</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p><i>Conveniently</i> compute the intersections of two circles each \n  defined by a (geodetic) center point and a radius, using either ...</p>\n  <p>1) <a href=\"pygeodesy.vector3d-module.html#intersections2\" \n  class=\"link\">vector3d.intersections2</a> for <b><code>small</code></b> \n  distances (below 100 Km or about 0.88 degrees) or if <i>no</i> \n  <b><code>datum</code></b> is specified, or ...</p>\n  <p>2) <a \n  href=\"pygeodesy.sphericalTrigonometry-module.html#intersections2\" \n  class=\"link\">sphericalTrigonometry.intersections2</a> for a spherical \n  <b><code>datum</code></b> or a <code>scalar <b>datum</b></code> \n  representing the earth radius, conventionally in <code>meter</code> or \n  ...</p>\n  <p>3) <a href=\"pygeodesy.ellipsoidalKarney-module.html#intersections2\" \n  class=\"link\">ellipsoidalKarney.intersections2</a> for an ellipsoidal \n  <b><code>datum</code></b> and if <i>Karney</i>'s <a \n  href=\"https://PyPI.org/project/geographiclib\" \n  target=\"_top\">geographiclib</a> is installed, otherwise ...</p>\n  <p>4) <a href=\"pygeodesy.ellipsoidalExact-module.html#intersections2\" \n  class=\"link\">ellipsoidalExact.intersections2</a>, provided \n  <b><code>datum</code></b> is ellipsoidal.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat1</code></strong> - Latitude of the first circle center (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lon1</code></strong> - Longitude of the first circle center (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>radius1</code></strong> - Radius of the first circle (<code>meter</code>, conventionally).</li>\n        <li><strong class=\"pname\"><code>lat2</code></strong> - Latitude of the second circle center (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lon2</code></strong> - Longitude of the second circle center (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>radius2</code></strong> - Radius of the second circle (<code>meter</code>, same units as \n          <b><code>radius1</code></b>).</li>\n        <li><strong class=\"pname\"><code>datum</code></strong> - Optional datum (<a href=\"pygeodesy.datums.Datum-class.html\" \n          class=\"link\">Datum</a>) or ellipsoid (<a \n          href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a> or <a \n          href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>) or <code>scalar</code> earth radius \n          (<code>meter</code>, same units as <b><code>radius1</code></b> \n          and <b><code>radius2</code></b>) or <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll \n          <b><code>lat2</code></b> and <b><code>lon2</code></b> \n          (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>small</code></strong> - Upper limit for small distances (<code>meter</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>2-Tuple of the intersection points, each a <a \n          href=\"pygeodesy.namedTuples.LatLon2Tuple-class.html\" \n          class=\"link\">LatLon2Tuple</a><code>(lat, lon)</code>. Both points\n          are the same instance, aka the <i>radical center</i> if the \n          circles are abutting</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.IntersectionError-class.html\">IntersectionError</a></strong></code> - Concentric, antipodal, invalid or non-intersecting circles or no \n        convergence.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>datum</code></b>.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.UnitError-class.html\">UnitError</a></strong></code> - Invalid <b><code>lat1</code></b>, <b><code>lon1</code></b>, \n        <b><code>radius1</code></b>, <b><code>lat2</code></b>, \n        <b><code>lon2</code></b> or <b><code>radius2</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"isantipode\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">isantipode</span>&nbsp;(<span class=\"sig-arg\">lat1</span>,\n        <span class=\"sig-arg\">lon1</span>,\n        <span class=\"sig-arg\">lat2</span>,\n        <span class=\"sig-arg\">lon2</span>,\n        <span class=\"sig-arg\">eps</span>=<span class=\"sig-default\">2.220446049250313e-16</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Check whether two points are <i>antipodal</i>, on diametrically \n  opposite sides of the earth.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat1</code></strong> - Latitude of one point (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lon1</code></strong> - Longitude of one point (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lat2</code></strong> - Latitude of the other point (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lon2</code></strong> - Longitude of the other point (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>eps</code></strong> - Tolerance for near-equality (<code>degrees</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>True</code> if points are antipodal within the \n          <b><code>eps</code></b> tolerance, <code>False</code> otherwise.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Functions <a href=\"pygeodesy.formy-module.html#isantipode_\" \n        class=\"link\">isantipode_</a> and <a \n        href=\"pygeodesy.formy-module.html#antipode\" \n        class=\"link\">antipode</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"isantipode_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">isantipode_</span>&nbsp;(<span class=\"sig-arg\">phi1</span>,\n        <span class=\"sig-arg\">lam1</span>,\n        <span class=\"sig-arg\">phi2</span>,\n        <span class=\"sig-arg\">lam2</span>,\n        <span class=\"sig-arg\">eps</span>=<span class=\"sig-default\">2.220446049250313e-16</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Check whether two points are <i>antipodal</i>, on diametrically \n  opposite sides of the earth.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>phi1</code></strong> - Latitude of one point (<code>radians</code>).</li>\n        <li><strong class=\"pname\"><code>lam1</code></strong> - Longitude of one point (<code>radians</code>).</li>\n        <li><strong class=\"pname\"><code>phi2</code></strong> - Latitude of the other point (<code>radians</code>).</li>\n        <li><strong class=\"pname\"><code>lam2</code></strong> - Longitude of the other point (<code>radians</code>).</li>\n        <li><strong class=\"pname\"><code>eps</code></strong> - Tolerance for near-equality (<code>radians</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>True</code> if points are antipodal within the \n          <b><code>eps</code></b> tolerance, <code>False</code> otherwise.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Functions <a href=\"pygeodesy.formy-module.html#isantipode\" \n        class=\"link\">isantipode</a> and <a \n        href=\"pygeodesy.formy-module.html#antipode_\" \n        class=\"link\">antipode_</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"isnormal\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">isnormal</span>&nbsp;(<span class=\"sig-arg\">lat</span>,\n        <span class=\"sig-arg\">lon</span>,\n        <span class=\"sig-arg\">eps</span>=<span class=\"sig-default\">0</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Check whether <b><code>lat</code></b> <i>and</i> \n  <b><code>lon</code></b> are within their respective <i>normal</i> range \n  in <code>degrees</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat</code></strong> - Latitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lon</code></strong> - Longitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>eps</code></strong> - Optional tolerance <code>degrees</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>True</code> if <code>(abs(<b>lat</b>) + <b>eps</b>) &lt;= \n          90</code> and <code>(abs(<b>lon</b>) + <b>eps</b>) &lt;= \n          180</code>, <code>False</code> otherwise.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Functions <a href=\"pygeodesy.formy-module.html#isnormal_\" \n        class=\"link\">isnormal_</a> and <a \n        href=\"pygeodesy.formy-module.html#normal\" class=\"link\">normal</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"isnormal_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">isnormal_</span>&nbsp;(<span class=\"sig-arg\">phi</span>,\n        <span class=\"sig-arg\">lam</span>,\n        <span class=\"sig-arg\">eps</span>=<span class=\"sig-default\">0</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Check whether <b><code>phi</code></b> <i>and</i> \n  <b><code>lam</code></b> are within their respective <i>normal</i> range \n  in <code>radians</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>phi</code></strong> - Latitude (<code>radians</code>).</li>\n        <li><strong class=\"pname\"><code>lam</code></strong> - Longitude (<code>radians</code>).</li>\n        <li><strong class=\"pname\"><code>eps</code></strong> - Optional tolerance <code>radians</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>True</code> if <code>(abs(<b>phi</b>) + <b>eps</b>) &lt;= \n          PI/2</code> and <code>(abs(<b>lam</b>) + <b>eps</b>) &lt;= \n          PI</code>, <code>False</code> othwerwise.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Functions <a href=\"pygeodesy.formy-module.html#isnormal\" \n        class=\"link\">isnormal</a> and <a \n        href=\"pygeodesy.formy-module.html#normal_\" \n        class=\"link\">normal_</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"normal\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">normal</span>&nbsp;(<span class=\"sig-arg\">lat</span>,\n        <span class=\"sig-arg\">lon</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Normalize a lat- <i>and</i> longitude pair in \n  <code>degrees</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat</code></strong> - Latitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lon</code></strong> - Longitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=&quot;normal&quot;</code> \n          (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><a href=\"pygeodesy.namedTuples.LatLon2Tuple-class.html\" \n          class=\"link\">LatLon2Tuple</a><code>(lat, lon)</code> with \n          <code>-90 &lt;= lat &lt;= 90</code> and <code>-180 &lt;= lon \n          &lt;= 180</code>.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Functions <a href=\"pygeodesy.formy-module.html#normal_\" \n        class=\"link\">normal_</a> and <a \n        href=\"pygeodesy.formy-module.html#isnormal\" \n        class=\"link\">isnormal</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"normal_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">normal_</span>&nbsp;(<span class=\"sig-arg\">phi</span>,\n        <span class=\"sig-arg\">lam</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Normalize a lat- <i>and</i> longitude pair in \n  <code>radians</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>phi</code></strong> - Latitude (<code>radians</code>).</li>\n        <li><strong class=\"pname\"><code>lam</code></strong> - Longitude (<code>radians</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=&quot;normal_&quot;</code> \n          (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><a href=\"pygeodesy.namedTuples.PhiLam2Tuple-class.html\" \n          class=\"link\">PhiLam2Tuple</a><code>(phi, lam)</code> with \n          <code>abs(phi) &lt;= PI/2</code> and <code>abs(lam) &lt;= \n          PI</code>.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Functions <a href=\"pygeodesy.formy-module.html#normal\" \n        class=\"link\">normal</a> and <a \n        href=\"pygeodesy.formy-module.html#isnormal_\" \n        class=\"link\">isnormal_</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"opposing\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">opposing</span>&nbsp;(<span class=\"sig-arg\">bearing1</span>,\n        <span class=\"sig-arg\">bearing2</span>,\n        <span class=\"sig-arg\">margin</span>=<span class=\"sig-default\">90.0</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compare the direction of two bearings given in \n  <code>degrees</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>bearing1</code></strong> - First bearing (compass <code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>bearing2</code></strong> - Second bearing (compass <code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>margin</code></strong> - Optional, interior angle bracket (<code>degrees</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>True</code> if both bearings point in opposite, \n          <code>False</code> if in similar or <code>None</code> if in \n          <i>perpendicular</i> directions.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.formy-module.html#opposing_\" \n        class=\"link\">opposing_</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"opposing_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">opposing_</span>&nbsp;(<span class=\"sig-arg\">radians1</span>,\n        <span class=\"sig-arg\">radians2</span>,\n        <span class=\"sig-arg\">margin</span>=<span class=\"sig-default\">1.5707963267948966</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compare the direction of two bearings given in \n  <code>radians</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>radians1</code></strong> - First bearing (<code>radians</code>).</li>\n        <li><strong class=\"pname\"><code>radians2</code></strong> - Second bearing (<code>radians</code>).</li>\n        <li><strong class=\"pname\"><code>margin</code></strong> - Optional, interior angle bracket (<code>radians</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>True</code> if both bearings point in opposite, \n          <code>False</code> if in similar or <code>None</code> if in \n          perpendicular directions.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.formy-module.html#opposing\" \n        class=\"link\">opposing</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"radical2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">radical2</span>&nbsp;(<span class=\"sig-arg\">distance</span>,\n        <span class=\"sig-arg\">radius1</span>,\n        <span class=\"sig-arg\">radius2</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the <i>radical ratio</i> and <i>radical line</i> of two <a \n  href=\"https://MathWorld.Wolfram.com/Circle-CircleIntersection.html\" \n  target=\"_top\">intersecting circles</a>.</p>\n  <p>The <i>radical line</i> is perpendicular to the axis thru the centers \n  of the circles at <code>(0, 0)</code> and <code>(<b>distance</b>, \n  0)</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>distance</code></strong> - Distance between the circle centers (<code>scalar</code>).</li>\n        <li><strong class=\"pname\"><code>radius1</code></strong> - Radius of the first circle (<code>scalar</code>).</li>\n        <li><strong class=\"pname\"><code>radius2</code></strong> - Radius of the second circle (<code>scalar</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.formy.Radical2Tuple-class.html\" \n          class=\"link\">Radical2Tuple</a><code>(ratio, xline)</code> where \n          <code>0.0 &lt;= ratio &lt;= 1.0</code> and <code>xline</code> is \n          along the <b><code>distance</code></b>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.IntersectionError-class.html\">IntersectionError</a></strong></code> - The <b><code>distance</code></b> exceeds the sum of \n        <b><code>radius1</code></b> and <b><code>radius2</code></b>.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.UnitError-class.html\">UnitError</a></strong></code> - Invalid <b><code>distance</code></b>, <b><code>radius1</code></b> \n        or <b><code>radius2</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"thomas\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">thomas</span>&nbsp;(<span class=\"sig-arg\">lat1</span>,\n        <span class=\"sig-arg\">lon1</span>,\n        <span class=\"sig-arg\">lat2</span>,\n        <span class=\"sig-arg\">lon2</span>,\n        <span class=\"sig-arg\">datum</span>=<span class=\"sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the distance between two (ellipsoidal) points using <a \n  href=\"https://apps.DTIC.mil/dtic/tr/fulltext/u2/703541.pdf\" \n  target=\"_top\">Thomas'</a> formula.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat1</code></strong> - Start latitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lon1</code></strong> - Start longitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lat2</code></strong> - End latitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lon2</code></strong> - End longitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>datum</code></strong> - Datum (<a href=\"pygeodesy.datums.Datum-class.html\" \n          class=\"link\">Datum</a>) or ellipsoid (<a \n          href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a> or <a \n          href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>) to use.</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll \n          <b><code>lat2</code></b> and <b><code>lon2</code></b> \n          (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Distance (<code>meter</code>, same units as the \n          <b><code>datum</code></b>'s or ellipsoid axes).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>datum</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Functions <a href=\"pygeodesy.formy-module.html#thomas_\" \n        class=\"link\">thomas_</a>, <a \n        href=\"pygeodesy.formy-module.html#cosineLaw\" \n        class=\"link\">cosineLaw</a>, <a \n        href=\"pygeodesy.formy-module.html#equirectangular\" \n        class=\"link\">equirectangular</a>, <a \n        href=\"pygeodesy.formy-module.html#euclidean\" \n        class=\"link\">euclidean</a>, <a \n        href=\"pygeodesy.formy-module.html#flatLocal\" \n        class=\"link\">flatLocal</a> / <a \n        href=\"pygeodesy.formy-module.html#flatLocal\" \n        class=\"link\">hubeny</a>, <a \n        href=\"pygeodesy.formy-module.html#flatPolar\" \n        class=\"link\">flatPolar</a>, <a \n        href=\"pygeodesy.formy-module.html#haversine\" \n        class=\"link\">haversine</a>, <a \n        href=\"pygeodesy.formy-module.html#vincentys\" \n        class=\"link\">vincentys</a> and method <a \n        href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#distance2\" \n        class=\"link\">Ellipsoid.distance2</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"thomas_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">thomas_</span>&nbsp;(<span class=\"sig-arg\">phi2</span>,\n        <span class=\"sig-arg\">phi1</span>,\n        <span class=\"sig-arg\">lam21</span>,\n        <span class=\"sig-arg\">datum</span>=<span class=\"sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the <i>angular</i> distance between two (ellipsoidal) points \n  using <a href=\"https://apps.DTIC.mil/dtic/tr/fulltext/u2/703541.pdf\" \n  target=\"_top\">Thomas'</a> formula.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>phi2</code></strong> - End latitude (<code>radians</code>).</li>\n        <li><strong class=\"pname\"><code>phi1</code></strong> - Start latitude (<code>radians</code>).</li>\n        <li><strong class=\"pname\"><code>lam21</code></strong> - Longitudinal delta, <i class=\"math\">end-start</i> \n          (<code>radians</code>).</li>\n        <li><strong class=\"pname\"><code>datum</code></strong> - Datum (<a href=\"pygeodesy.datums.Datum-class.html\" \n          class=\"link\">Datum</a>) ?or ellipsoid to use (<a \n          href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a> or <a \n          href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Angular distance (<code>radians</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>datum</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Functions <a href=\"pygeodesy.formy-module.html#thomas\" \n        class=\"link\">thomas</a>, <a \n        href=\"pygeodesy.formy-module.html#cosineLaw_\" \n        class=\"link\">cosineLaw_</a>, <a \n        href=\"pygeodesy.formy-module.html#euclidean_\" \n        class=\"link\">euclidean_</a>, <a \n        href=\"pygeodesy.formy-module.html#flatLocal_\" \n        class=\"link\">flatLocal_</a> / <a \n        href=\"pygeodesy.formy-module.html#flatLocal_\" \n        class=\"link\">hubeny_</a>, <a \n        href=\"pygeodesy.formy-module.html#flatPolar_\" \n        class=\"link\">flatPolar_</a>, <a \n        href=\"pygeodesy.formy-module.html#haversine_\" \n        class=\"link\">haversine_</a> and <a \n        href=\"pygeodesy.formy-module.html#vincentys_\" \n        class=\"link\">vincentys_</a> and <a \n        href=\"https://GitHub.com/jtejido/geodesy-php/blob/master/src/Geodesy/Distance/ThomasFormula.php\"\n        target=\"_top\">Geodesy-PHP</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"vincentys\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">vincentys</span>&nbsp;(<span class=\"sig-arg\">lat1</span>,\n        <span class=\"sig-arg\">lon1</span>,\n        <span class=\"sig-arg\">lat2</span>,\n        <span class=\"sig-arg\">lon2</span>,\n        <span class=\"sig-arg\">radius</span>=<span class=\"sig-default\">6371008.771415</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the distance between two (spherical) points using <a \n  href=\"https://WikiPedia.org/wiki/Great-circle_distance\" \n  target=\"_top\">Vincenty's</a> spherical formula.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat1</code></strong> - Start latitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lon1</code></strong> - Start longitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lat2</code></strong> - End latitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lon2</code></strong> - End longitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>radius</code></strong> - Mean earth radius (<code>meter</code>), datum (<a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>) \n          or ellipsoid (<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\"\n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a> or <a \n          href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>) to use.</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll \n          <b><code>lat2</code></b> and <b><code>lon2</code></b> \n          (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Distance (<code>meter</code>, same units as \n          <b><code>radius</code></b>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.UnitError-class.html\">UnitError</a></strong></code> - Invalid <b><code>radius</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Functions <a href=\"pygeodesy.formy-module.html#vincentys_\" \n        class=\"link\">vincentys_</a>, <a \n        href=\"pygeodesy.formy-module.html#cosineLaw\" \n        class=\"link\">cosineLaw</a>, <a \n        href=\"pygeodesy.formy-module.html#equirectangular\" \n        class=\"link\">equirectangular</a>, <a \n        href=\"pygeodesy.formy-module.html#euclidean\" \n        class=\"link\">euclidean</a>, <a \n        href=\"pygeodesy.formy-module.html#flatLocal\" \n        class=\"link\">flatLocal</a>/<a \n        href=\"pygeodesy.formy-module.html#flatLocal\" \n        class=\"link\">hubeny</a>, <a \n        href=\"pygeodesy.formy-module.html#flatPolar\" \n        class=\"link\">flatPolar</a>, <a \n        href=\"pygeodesy.formy-module.html#haversine\" \n        class=\"link\">haversine</a> and <a \n        href=\"pygeodesy.formy-module.html#thomas\" class=\"link\">thomas</a> \n        and methods <a \n        href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#distance2\" \n        class=\"link\">Ellipsoid.distance2</a>, \n        <code>LatLon.distanceTo*</code> and \n        <code>LatLon.equirectangularTo</code>.\n      </p>\n      <p><strong>Note:</strong>\n        See note at function <a \n        href=\"pygeodesy.formy-module.html#vincentys_\" \n        class=\"link\">vincentys_</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"vincentys_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">vincentys_</span>&nbsp;(<span class=\"sig-arg\">phi2</span>,\n        <span class=\"sig-arg\">phi1</span>,\n        <span class=\"sig-arg\">lam21</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the <i>angular</i> distance between two (spherical) points \n  using <a href=\"https://WikiPedia.org/wiki/Great-circle_distance\" \n  target=\"_top\">Vincenty's</a> spherical formula.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>phi2</code></strong> - End latitude (<code>radians</code>).</li>\n        <li><strong class=\"pname\"><code>phi1</code></strong> - Start latitude (<code>radians</code>).</li>\n        <li><strong class=\"pname\"><code>lam21</code></strong> - Longitudinal delta, <i class=\"math\">end-start</i> \n          (<code>radians</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Angular distance (<code>radians</code>).</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Functions <a href=\"pygeodesy.formy-module.html#vincentys\" \n        class=\"link\">vincentys</a>, <a \n        href=\"pygeodesy.formy-module.html#cosineLaw_\" \n        class=\"link\">cosineLaw_</a>, <a \n        href=\"pygeodesy.formy-module.html#euclidean_\" \n        class=\"link\">euclidean_</a>, <a \n        href=\"pygeodesy.formy-module.html#flatLocal_\" \n        class=\"link\">flatLocal_</a> / <a \n        href=\"pygeodesy.formy-module.html#flatLocal_\" \n        class=\"link\">hubeny_</a>, <a \n        href=\"pygeodesy.formy-module.html#flatPolar_\" \n        class=\"link\">flatPolar_</a>, <a \n        href=\"pygeodesy.formy-module.html#haversine_\" \n        class=\"link\">haversine_</a> and <a \n        href=\"pygeodesy.formy-module.html#thomas_\" \n        class=\"link\">thomas_</a>.\n      </p>\n      <p><strong>Note:</strong>\n        Functions <a href=\"pygeodesy.formy-module.html#vincentys_\" \n        class=\"link\">vincentys_</a>, <a \n        href=\"pygeodesy.formy-module.html#haversine_\" \n        class=\"link\">haversine_</a> and <a \n        href=\"pygeodesy.formy-module.html#cosineLaw_\" \n        class=\"link\">cosineLaw_</a> produce equivalent results, but <a \n        href=\"pygeodesy.formy-module.html#vincentys_\" \n        class=\"link\">vincentys_</a> is suitable for antipodal points and \n        slightly more expensive (<i class=\"math\">3 cos, 3 sin, 1 hypot, 1 \n        atan2, 6 mul, 2 add</i>) than <a \n        href=\"pygeodesy.formy-module.html#haversine_\" \n        class=\"link\">haversine_</a> (<i class=\"math\">2 cos, 2 sin, 2 sqrt, \n        1 atan2, 5 mul, 1 add</i>) and <a \n        href=\"pygeodesy.formy-module.html#cosineLaw_\" \n        class=\"link\">cosineLaw_</a> (<i class=\"math\">3 cos, 3 sin, 1 acos, \n        3 mul, 1 add</i>).\n      </p>\n</div></td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.formy.Radical2Tuple-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.formy.Radical2Tuple</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.formy-module.html\">Module&nbsp;formy</a> ::\n        Class&nbsp;Radical2Tuple\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.formy.Radical2Tuple-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Radical2Tuple</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n   object --+        \n            |        \n        tuple --+    \n                |    \n   object --+   |    \n            |   |    \n <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n                |    \n<a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a> --+\n                    |\n                   <strong class=\"uidshort\">Radical2Tuple</strong>\n</pre>\n\n<hr />\n<p>2-Tuple <code>(ratio, xline)</code> of the <i>radical</i> \n  <code>ratio</code> and <i>radical</i> <code>xline</code>, both \n  <code>scalar</code> and <code>0.0 &lt;= ratio &lt;= 1.0</code></p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__delattr__\">__delattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__getattr__\">__getattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__setattr__\">__setattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#items\">items</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iteritems\">iteritems</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iterunits\">iterunits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#reUnit\">reUnit</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toUnits\">toUnits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>tuple</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__eq__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__iter__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__rmul__</code>,\n      <code>count</code>,\n      <code>index</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__new__\">__new__</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.frechet-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.frechet</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        Module&nbsp;frechet\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.frechet-module.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== MODULE DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Module frechet</h1><p class=\"nomargin-top\"></p>\n<p>Fr&#233;chet distances.</p>\n  <p>Classes <a href=\"pygeodesy.frechet.Frechet-class.html\" \n  class=\"link\">Frechet</a>, <a \n  href=\"pygeodesy.frechet.FrechetDegrees-class.html\" \n  class=\"link\">FrechetDegrees</a>, <a \n  href=\"pygeodesy.frechet.FrechetRadians-class.html\" \n  class=\"link\">FrechetRadians</a>, <a \n  href=\"pygeodesy.frechet.FrechetCosineLaw-class.html\" \n  class=\"link\">FrechetCosineLaw</a>, <a \n  href=\"pygeodesy.frechet.FrechetDistanceTo-class.html\" \n  class=\"link\">FrechetDistanceTo</a>, <a \n  href=\"pygeodesy.frechet.FrechetEquirectangular-class.html\" \n  class=\"link\">FrechetEquirectangular</a>, <a \n  href=\"pygeodesy.frechet.FrechetEuclidean-class.html\" \n  class=\"link\">FrechetEuclidean</a>, <a \n  href=\"pygeodesy.frechet.FrechetExact-class.html\" \n  class=\"link\">FrechetExact</a>, <a \n  href=\"pygeodesy.frechet.FrechetFlatLocal-class.html\" \n  class=\"link\">FrechetFlatLocal</a>, <a \n  href=\"pygeodesy.frechet.FrechetFlatPolar-class.html\" \n  class=\"link\">FrechetFlatPolar</a>, <a \n  href=\"pygeodesy.frechet.FrechetHaversine-class.html\" \n  class=\"link\">FrechetHaversine</a>, <a \n  href=\"pygeodesy.frechet.FrechetHubeny-class.html\" \n  class=\"link\">FrechetHubeny</a>, <a \n  href=\"pygeodesy.frechet.FrechetKarney-class.html\" \n  class=\"link\">FrechetKarney</a>, <a \n  href=\"pygeodesy.frechet.FrechetThomas-class.html\" \n  class=\"link\">FrechetThomas</a> and <a \n  href=\"pygeodesy.frechet.FrechetVincentys-class.html\" \n  class=\"link\">FrechetVincentys</a> to compute <i>discrete</i> <a \n  href=\"https://WikiPedia.org/wiki/Frechet_distance\" \n  target=\"_top\">Fr&#233;chet</a> distances between two sets of \n  <code>LatLon</code>, <code>NumPy</code>, <code>tuples</code> or other \n  types of points.</p>\n  <p>Only <a href=\"pygeodesy.frechet.FrechetDistanceTo-class.html\" \n  class=\"link\">FrechetDistanceTo</a> -iff used with <a \n  href=\"pygeodesy.ellipsoidalKarney.LatLon-class.html\" \n  class=\"link\">ellipsoidalKarney.LatLon</a> points- and <a \n  href=\"pygeodesy.frechet.FrechetKarney-class.html\" \n  class=\"link\">FrechetKarney</a> requires installation of <i>Charles \n  Karney</i>'s <a href=\"https://PyPI.org/project/geographiclib\" \n  target=\"_top\">geographiclib</a>.</p>\n  <p>Typical usage is as follows.  First, create a <code>Frechet</code> \n  calculator from one set of <code>LatLon</code> points.</p>\n  <p><code>f = FrechetXyz(point1s, ...)</code></p>\n  <p>Get the <i>discrete</i> Fr&#233;chet distance to another set of \n  <code>LatLon</code> points by</p>\n  <p><code>t6 = f.discrete(point2s)</code></p>\n  <p>Or, use function <code>frechet_</code> with a proper \n  <code>distance</code> function passed as keyword arguments as follows</p>\n  <p><code>t6 = frechet_(point1s, point2s, ..., distance=...)</code>.</p>\n  <p>In both cases, the returned result <code>t6</code> is a <a \n  href=\"pygeodesy.frechet.Frechet6Tuple-class.html\" \n  class=\"link\">Frechet6Tuple</a>.</p>\n  <p>For <code>(lat, lon, ...)</code> points in a <code>NumPy</code> array \n  or plain <code>tuples</code>, wrap the points in a <a \n  href=\"pygeodesy.points.Numpy2LatLon-class.html\" \n  class=\"link\">Numpy2LatLon</a> respectively <a \n  href=\"pygeodesy.points.Tuple2LatLon-class.html\" \n  class=\"link\">Tuple2LatLon</a> instance, more details in the documentation\n  thereof.</p>\n  <p>For other points, create a <a \n  href=\"pygeodesy.frechet.Frechet-class.html\" class=\"link\">Frechet</a> \n  sub-class with the appropriate <code>distance</code> method overloading \n  <a href=\"pygeodesy.frechet.Frechet-class.html#distance\" \n  class=\"link\">Frechet.distance</a> as in this example.</p>\n<pre class=\"py-doctest\">\n<span class=\"py-prompt\">&gt;&gt;&gt; </span><span class=\"py-keyword\">from</span> pygeodesy <span class=\"py-keyword\">import</span> Frechet, hypot_\n<span class=\"py-prompt\">&gt;&gt;&gt;</span>\n<span class=\"py-prompt\">&gt;&gt;&gt; </span><span class=\"py-keyword\">class</span> <span class=\"py-defname\">F3D</span>(Frechet):\n<span class=\"py-prompt\">&gt;&gt;&gt; </span>    <span class=\"py-string\">&quot;&quot;</span>&quot;Custom Frechet example.\n<span class=\"py-prompt\">&gt;&gt;&gt; </span>    <span class=\"py-string\">&quot;&quot;</span>&quot;\n<span class=\"py-prompt\">&gt;&gt;&gt; </span>    <span class=\"py-keyword\">def</span> <span class=\"py-defname\">distance</span>(self, p1, p2):\n<span class=\"py-prompt\">&gt;&gt;&gt; </span>        return hypot_(p1.x - p2.x, p1.y - p2.y, p1.z - p2.z)\n<span class=\"py-prompt\">&gt;&gt;&gt;</span>\n<span class=\"py-prompt\">&gt;&gt;&gt; </span>f3D = F3D(xyz1, ..., units=<span class=\"py-string\">&quot;...&quot;</span>)\n<span class=\"py-prompt\">&gt;&gt;&gt; </span>t6 = f3D.discrete(xyz2)</pre>\n  <p>Transcribed from the original <a \n  href=\"https://www.kr.TUWien.ac.AT/staff/eiter/et-archive/cdtr9464.pdf\" \n  target=\"_top\">Computing Discrete Fr&#233;chet Distance</a> by Eiter, T. and \n  Mannila, H., 1994, April 25, Technical Report CD-TR 94/64, Information \n  Systems Department/Christian Doppler Laboratory for Expert Systems, \n  Technical University Vienna, Austria.</p>\n  <p>This <a href=\"pygeodesy.frechet.Frechet-class.html#discrete\" \n  class=\"link\">Frechet.discrete</a> implementation optionally generates \n  intermediate points for each point set separately.  For example, using \n  keyword argument <code>fraction=0.5</code> adds one additional point \n  halfway between each pair of points.  Or using <code>fraction=0.1</code> \n  interpolates nine additional points between each points pair.</p>\n  <p>The <a href=\"pygeodesy.frechet.Frechet6Tuple-class.html\" \n  class=\"link\">Frechet6Tuple</a> attributes <code>fi1</code> and/or \n  <code>fi2</code> will be <i>fractional</i> indices of type \n  <code>float</code> if keyword argument <code>fraction</code> is used.  \n  Otherwise, <code>fi1</code> and/or <code>fi2</code> are simply type \n  <code>int</code> indices into the respective points set.</p>\n  <p>For example, <code>fractional</code> index value 2.5 means an \n  intermediate point halfway between points[2] and points[3].  Use function\n  <a href=\"pygeodesy.points-module.html#fractional\" \n  class=\"link\">fractional</a> to obtain the intermediate point for a \n  <i>fractional</i> index in the corresponding set of points.</p>\n  <p>The <code>Fr&#233;chet</code> distance was introduced in 1906 by <a \n  href=\"https://WikiPedia.org/wiki/Maurice_Rene_Frechet\" \n  target=\"_top\">Maurice Fr&#233;chet</a>, see <a \n  href=\"https://www.kr.TUWien.ac.AT/staff/eiter/et-archive/cdtr9464.pdf\" \n  target=\"_top\">reference [6]</a>. It is a measure of similarity between \n  curves that takes into account the location and ordering of the points.  \n  Therefore, it is often a better metric than the well-known \n  <code>Hausdorff</code> distance, see the <a \n  href=\"pygeodesy.hausdorff-module.html\" class=\"link\">hausdorff</a> \n  module.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Version:</strong>\n        25.05.26\n      </p>\n</div><!-- ==================== CLASSES ==================== -->\n<a name=\"section-Classes\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Classes</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.frechet.FrechetError-class.html\" class=\"summary-name\">FrechetError</a><br />\n      Fr&#233;chet issue.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.frechet.Frechet-class.html\" class=\"summary-name\">Frechet</a><br />\n      Frechet base class, requires method <a \n        href=\"pygeodesy.frechet.Frechet-class.html#distance\" \n        class=\"link\">Frechet.distance</a> to be overloaded.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.frechet.FrechetDegrees-class.html\" class=\"summary-name\">FrechetDegrees</a><br />\n      DEPRECATED, use an other <code>Frechet*</code> class.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.frechet.FrechetRadians-class.html\" class=\"summary-name\">FrechetRadians</a><br />\n      DEPRECATED, use an other <code>Frechet*</code> class.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.frechet.FrechetCosineLaw-class.html\" class=\"summary-name\">FrechetCosineLaw</a><br />\n      Compute the <code>Frechet</code> distance with functionn <a \n        href=\"pygeodesy.formy-module.html#cosineLaw\" \n        class=\"link\">pygeodesy.cosineLaw</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.frechet.FrechetDistanceTo-class.html\" class=\"summary-name\">FrechetDistanceTo</a><br />\n      Compute the <code>Frechet</code> distance with the point1s' \n        <code>LatLon.distanceTo</code> method.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.frechet.FrechetEquirectangular-class.html\" class=\"summary-name\">FrechetEquirectangular</a><br />\n      Compute the <code>Frechet</code> distance with function <a \n        href=\"pygeodesy.formy-module.html#equirectangular\" \n        class=\"link\">pygeodesy.equirectangular</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.frechet.FrechetEuclidean-class.html\" class=\"summary-name\">FrechetEuclidean</a><br />\n      Compute the <code>Frechet</code> distance with function <a \n        href=\"pygeodesy.formy-module.html#euclidean\" \n        class=\"link\">pygeodesy.euclidean</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.frechet.FrechetExact-class.html\" class=\"summary-name\">FrechetExact</a><br />\n      Compute the <code>Frechet</code> distance with method <a \n        href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html\" \n        class=\"link\">GeodesicExact</a><code>.Inverse</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.frechet.FrechetFlatLocal-class.html\" class=\"summary-name\">FrechetFlatLocal</a><br />\n      Compute the <code>Frechet</code> distance with function <a \n        href=\"pygeodesy.formy-module.html#flatLocal_\" \n        class=\"link\">pygeodesy.flatLocal_</a>/<a \n        href=\"pygeodesy.formy-module.html#flatLocal\" \n        class=\"link\">pygeodesy.hubeny</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.frechet.FrechetFlatPolar-class.html\" class=\"summary-name\">FrechetFlatPolar</a><br />\n      Compute the <code>Frechet</code> distance with function <a \n        href=\"pygeodesy.formy-module.html#flatPolar_\" \n        class=\"link\">flatPolar_</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.frechet.FrechetHaversine-class.html\" class=\"summary-name\">FrechetHaversine</a><br />\n      Compute the <code>Frechet</code> distance with function <a \n        href=\"pygeodesy.geohash-module.html#haversine_\" \n        class=\"link\">pygeodesy.haversine_</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.frechet.FrechetHubeny-class.html\" class=\"summary-name\">FrechetHubeny</a><br />\n      Compute the <code>Frechet</code> distance with function <a \n        href=\"pygeodesy.formy-module.html#flatLocal_\" \n        class=\"link\">pygeodesy.flatLocal_</a>/<a \n        href=\"pygeodesy.formy-module.html#flatLocal\" \n        class=\"link\">pygeodesy.hubeny</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.frechet.FrechetKarney-class.html\" class=\"summary-name\">FrechetKarney</a><br />\n      Compute the <code>Frechet</code> distance with <i>Karney</i>'s <a \n        href=\"https://PyPI.org/project/geographiclib\" \n        target=\"_top\">geographiclib</a> <a \n        href=\"https://GeographicLib.SourceForge.io/Python/doc/code.html\" \n        target=\"_top\">geodesic.Geodesic</a><code>.Inverse</code> method.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.frechet.FrechetThomas-class.html\" class=\"summary-name\">FrechetThomas</a><br />\n      Compute the <code>Frechet</code> distance with function <a \n        href=\"pygeodesy.formy-module.html#thomas_\" \n        class=\"link\">pygeodesy.thomas_</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.frechet.Frechet6Tuple-class.html\" class=\"summary-name\">Frechet6Tuple</a><br />\n      6-Tuple <code>(fd, fi1, fi2, r, n, units)</code> with the \n        <i>discrete</i> <a \n        href=\"https://WikiPedia.org/wiki/Frechet_distance\" \n        target=\"_top\">Fr&#233;chet</a> distance <code>fd</code>, \n        <i>fractional</i> indices <code>fi1</code> and <code>fi2</code> as \n        <code>FIx</code>, the recursion depth <code>r</code>, the number of\n        distances computed <code>n</code> and the <a \n        href=\"pygeodesy.named._NamedTuple-class.html#units\" \n        class=\"link\">units</a> class or name of the distance \n        <code>units</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.frechet.FrechetVincentys-class.html\" class=\"summary-name\">FrechetVincentys</a><br />\n      Compute the <code>Frechet</code> distance with function <a \n        href=\"pygeodesy.geohash-module.html#vincentys_\" \n        class=\"link\">pygeodesy.vincentys_</a>.\n    </td>\n  </tr>\n</table>\n<!-- ==================== FUNCTIONS ==================== -->\n<a name=\"section-Functions\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Functions</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.frechet-module.html#frechet_\" class=\"summary-sig-name\">frechet_</a>(<span class=\"summary-sig-arg\">point1s</span>,\n        <span class=\"summary-sig-arg\">point2s</span>,\n        <span class=\"summary-sig-arg\">distance</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">units</span>=<span class=\"summary-sig-default\">''</span>,\n        <span class=\"summary-sig-arg\">recursive</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Compute the <i>discrete</i> <a \n      href=\"https://WikiPedia.org/wiki/Frechet_distance\" \n      target=\"_top\">Fr&#233;chet</a> distance between two paths, each given as a\n      set of points.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== VARIABLES ==================== -->\n<a name=\"section-Variables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Variables</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"__all__\"></a><span class=\"summary-name\">__all__</span> = <code title=\"_ALL_LAZY.frechet\">_ALL_LAZY.frechet</code>\n    </td>\n  </tr>\n</table>\n<!-- ==================== FUNCTION DETAILS ==================== -->\n<a name=\"section-FunctionDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Function Details</span></td>\n</tr>\n</table>\n<a name=\"frechet_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">frechet_</span>&nbsp;(<span class=\"sig-arg\">point1s</span>,\n        <span class=\"sig-arg\">point2s</span>,\n        <span class=\"sig-arg\">distance</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">units</span>=<span class=\"sig-default\">''</span>,\n        <span class=\"sig-arg\">recursive</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the <i>discrete</i> <a \n  href=\"https://WikiPedia.org/wiki/Frechet_distance\" \n  target=\"_top\">Fr&#233;chet</a> distance between two paths, each given as a set\n  of points.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>point1s</code></strong> - First set of points (<code>LatLon</code>[], <a \n          href=\"pygeodesy.points.Numpy2LatLon-class.html\" \n          class=\"link\">Numpy2LatLon</a>[], <a \n          href=\"pygeodesy.points.Tuple2LatLon-class.html\" \n          class=\"link\">Tuple2LatLon</a>[] or <code>other</code>[]).</li>\n        <li><strong class=\"pname\"><code>point2s</code></strong> - Second set of points (<code>LatLon</code>[], <a \n          href=\"pygeodesy.points.Numpy2LatLon-class.html\" \n          class=\"link\">Numpy2LatLon</a>[], <a \n          href=\"pygeodesy.points.Tuple2LatLon-class.html\" \n          class=\"link\">Tuple2LatLon</a>[] or <code>other</code>[]).</li>\n        <li><strong class=\"pname\"><code>distance</code></strong> - Callable returning the distance between a \n          <b><code>point1s</code></b> and a <b><code>point2s</code></b> \n          point (signature <code>(point1, point2)</code>).</li>\n        <li><strong class=\"pname\"><code>units</code></strong> - Optional, the distance units (<code>Unit</code> or \n          <code>str</code>).</li>\n        <li><strong class=\"pname\"><code>recursive</code></strong> - Use <code>True</code> for backward compatibility \n          (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.frechet.Frechet6Tuple-class.html\" \n          class=\"link\">Frechet6Tuple</a><code>(fd, fi1, fi2, r, n, \n          units)</code> where <code>fi1</code> and <code>fi2</code> are \n          type <code>int</code> indices into <b><code>point1s</code></b> \n          respectively <b><code>point2s</code></b>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.frechet.FrechetError-class.html\">FrechetError</a></strong></code> - Insufficient number of <b><code>point1s</code></b> or \n        <b><code>point2s</code></b>.</li>\n        <li><code><strong class='fraise'>RecursionError</strong></code> - Recursion depth exceeded, see <a \n        href=\"https://docs.Python.org/3/library/sys.html#sys.getrecursionlimit\"\n        target=\"_top\">sys.getrecursionlimit()</a>, only with \n        <code><b>recursive</b>=True</code>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - If <b><code>distance</code></b> is not a callable.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        Function <a href=\"pygeodesy.frechet-module.html#frechet_\" \n        class=\"link\">frechet_</a> does <i>not</i> support <i>fractional</i>\n        indices for intermediate <b><code>point1s</code></b> and \n        <b><code>point2s</code></b>.\n      </p>\n      <p><strong>See Also:</strong>\n        Non-recursive <a \n        href=\"https://GitHub.com/cjekel/similarity_measures/issues/6#issuecomment-544350039\"\n        target=\"_top\">dp_frechet_dist</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.frechet.Frechet-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.frechet.Frechet</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.frechet-module.html\">Module&nbsp;frechet</a> ::\n        Class&nbsp;Frechet\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.frechet.Frechet-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Frechet</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+    \n           |    \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+\n               |\n              <strong class=\"uidshort\">Frechet</strong>\n</pre>\n\n<dl><dt>Known Subclasses:</dt>\n<dd>\n      <ul class=\"subclass-list\">\n<li class=\"private\">_FrechetMeterRadians</li><li>, <a href=\"pygeodesy.frechet.FrechetDegrees-class.html\">FrechetDegrees</a></li><li>, <a href=\"pygeodesy.frechet.FrechetDistanceTo-class.html\">FrechetDistanceTo</a></li><li>, <a href=\"pygeodesy.frechet.FrechetEquirectangular-class.html\">FrechetEquirectangular</a></li><li>, <a href=\"pygeodesy.frechet.FrechetExact-class.html\">FrechetExact</a></li><li>, <a href=\"pygeodesy.frechet.FrechetKarney-class.html\">FrechetKarney</a></li><li>, <a href=\"pygeodesy.frechet.FrechetRadians-class.html\">FrechetRadians</a></li>  </ul>\n</dd></dl>\n\n<hr />\n<p>Frechet base class, requires method <a \n  href=\"pygeodesy.frechet.Frechet-class.html#distance\" \n  class=\"link\">Frechet.distance</a> to be overloaded.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.frechet.Frechet-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">point1s</span>,\n        <span class=\"summary-sig-arg\">fraction</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">units</span>=<span class=\"summary-sig-default\">''</span>,\n        <span class=\"summary-sig-arg\">**name__kwds</span>)</span><br />\n      New <code>Frechet...</code> calculator/interpolator.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.frechet.Frechet-class.html#discrete\" class=\"summary-sig-name\">discrete</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">point2s</span>,\n        <span class=\"summary-sig-arg\">fraction</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">recursive</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Compute the <code>forward, discrete Fr&#233;chet</code> distance.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"distance\"></a><span class=\"summary-sig-name\">distance</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">point1</span>,\n        <span class=\"summary-sig-arg\">point2</span>)</span><br />\n      Return the distance between <b><code>point1</code></b> and \n      <b><code>point2s</code></b>, subject to the supplied optional keyword\n      arguments, see property <code>kwds</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.frechet.Frechet-class.html#point\" class=\"summary-sig-name\">point</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">point</span>)</span><br />\n      Convert a point for the <code>.distance</code> method.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.frechet.Frechet-class.html#points_\" class=\"summary-sig-name\">points_</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">i</span>)</span><br />\n      Get and convert a point for the <code>.distance</code> method.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.frechet.Frechet-class.html#points_fraction\" class=\"summary-sig-name\">points_fraction</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">fi</span>)</span><br />\n      Get and convert a <i>fractional</i> point for the \n      <code>.distance</code> method.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.frechet.Frechet-class.html#adjust\" class=\"summary-name\">adjust</a><br />\n      Get the <code>adjust</code> setting (<code>bool</code> or \n      <code>None</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.frechet.Frechet-class.html#datum\" class=\"summary-name\">datum</a><br />\n      Get the datum (<a href=\"pygeodesy.datums.Datum-class.html\" \n      class=\"link\">Datum</a> or <code>None</code> if not applicable).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.frechet.Frechet-class.html#fraction\" class=\"summary-name\">fraction</a><br />\n      Class <code>property</code> with a <code>.name</code> attribute.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.frechet.Frechet-class.html#kwds\" class=\"summary-name\">kwds</a><br />\n      Get the supplied, optional keyword arguments (<code>dict</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.frechet.Frechet-class.html#units\" class=\"summary-name\">units</a><br />\n      Class <code>property</code> with a <code>.name</code> attribute.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.frechet.Frechet-class.html#wrap\" class=\"summary-name\">wrap</a><br />\n      Get the <code>wrap</code> setting (<code>bool</code> or \n      <code>None</code>).\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">point1s</span>,\n        <span class=\"sig-arg\">fraction</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">units</span>=<span class=\"sig-default\">''</span>,\n        <span class=\"sig-arg\">**name__kwds</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <code>Frechet...</code> calculator/interpolator.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>point1s</code></strong> - First set of points (<code>LatLon</code>[], <a \n          href=\"pygeodesy.points.Numpy2LatLon-class.html\" \n          class=\"link\">Numpy2LatLon</a>[], <a \n          href=\"pygeodesy.points.Tuple2LatLon-class.html\" \n          class=\"link\">Tuple2LatLon</a>[] or <code>other</code>[]).</li>\n        <li><strong class=\"pname\"><code>fraction</code></strong> - Index fraction (<code>float</code> in EPS..EPS1) to interpolate \n          intermediate <b><code>point1s</code></b> or use \n          <code>None</code>, <code>0</code> or <code>1</code> for no \n          intermediate <b><code>point1s</code></b> and no <i>fractional</i>\n          indices.</li>\n        <li><strong class=\"pname\"><code>units</code></strong> - Optional distance units (<code>Unit</code> or <code>str</code>).</li>\n        <li><strong class=\"pname\"><code>name__kwds</code></strong> - Optional <code><b>name</b>=NN</code> for this \n          calculator/interpolator (<code>str</code>) and any keyword \n          arguments for the distance function, retrievable with property \n          <code>kwds</code>.</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.frechet.FrechetError-class.html\">FrechetError</a></strong></code> - Insufficient number of <b><code>point1s</code></b> or an invalid \n        <b><code>point1</code></b>, <b><code>fraction</code></b> or \n        <b><code>units</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"discrete\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">discrete</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">point2s</span>,\n        <span class=\"sig-arg\">fraction</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">recursive</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the <code>forward, discrete Fr&#233;chet</code> distance.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>point2s</code></strong> - Second set of points (<code>LatLon</code>[], <a \n          href=\"pygeodesy.points.Numpy2LatLon-class.html\" \n          class=\"link\">Numpy2LatLon</a>[], <a \n          href=\"pygeodesy.points.Tuple2LatLon-class.html\" \n          class=\"link\">Tuple2LatLon</a>[] or <code>other</code>[]).</li>\n        <li><strong class=\"pname\"><code>fraction</code></strong> - Index fraction (<code>float</code> in EPS..EPS1) to interpolate \n          intermediate <b><code>point2s</code></b> or use \n          <code>None</code>, <code>0</code> or <code>1</code> for no \n          intermediate <b><code>point2s</code></b> and no <i>fractional</i>\n          indices.</li>\n        <li><strong class=\"pname\"><code>recursive</code></strong> - Use <code>True</code> for backward compatibility \n          (<code>bool</code>) or with <i>fractional</i> indices.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.frechet.Frechet6Tuple-class.html\" \n          class=\"link\">Frechet6Tuple</a><code>(fd, fi1, fi2, r, n, \n          units)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.frechet.FrechetError-class.html\">FrechetError</a></strong></code> - Insufficient number of <b><code>point2s</code></b> or an invalid \n        <b><code>point2</code></b> or <b><code>fraction</code></b> or \n        <code>non-<b>recursive</b></code> and <i>fractional</i>.</li>\n        <li><code><strong class='fraise'>RecursionError</strong></code> - Recursion depth exceeded, see <a \n        href=\"https://docs.Python.org/3/library/sys.html#sys.getrecursionlimit\"\n        target=\"_top\">sys.getrecursionlimit</a>, only with \n        <code><b>recursive</b>=True</code>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"point\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">point</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">point</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert a point for the <code>.distance</code> method.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>point</code></strong> - The point to convert ((<code>LatLon</code>, <a \n          href=\"pygeodesy.points.Numpy2LatLon-class.html\" \n          class=\"link\">Numpy2LatLon</a>, <a \n          href=\"pygeodesy.points.Tuple2LatLon-class.html\" \n          class=\"link\">Tuple2LatLon</a> or <code>other</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The converted <b><code>point</code></b>.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"points_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">points_</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">i</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Get and convert a point for the <code>.distance</code> method.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>points</code></strong> - The orignal <b><code>points</code></b> to convert \n          ((<code>LatLon</code>[], <a \n          href=\"pygeodesy.points.Numpy2LatLon-class.html\" \n          class=\"link\">Numpy2LatLon</a>[], <a \n          href=\"pygeodesy.points.Tuple2LatLon-class.html\" \n          class=\"link\">Tuple2LatLon</a>[] or <code>other</code>[]).</li>\n        <li><strong class=\"pname\"><code>i</code></strong> - The <b><code>points</code></b> index (<code>int</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The converted <b><code>points[i]</code></b>.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"points_fraction\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">points_fraction</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">fi</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Get and convert a <i>fractional</i> point for the \n  <code>.distance</code> method.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>points</code></strong> - The orignal <b><code>points</code></b> to convert \n          ((<code>LatLon</code>[], <a \n          href=\"pygeodesy.points.Numpy2LatLon-class.html\" \n          class=\"link\">Numpy2LatLon</a>[], <a \n          href=\"pygeodesy.points.Tuple2LatLon-class.html\" \n          class=\"link\">Tuple2LatLon</a>[] or <code>other</code>[]).</li>\n        <li><strong class=\"pname\"><code>fi</code></strong> - The <i>fractional</i> index in <b><code>points</code></b> \n          (<code>float</code> or <code>int</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The interpolated, converted, intermediate \n          <b><code>points[fi]</code></b>.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"adjust\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">adjust</h3>\n  <p>Get the <code>adjust</code> setting (<code>bool</code> or \n  <code>None</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">adjust(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <code>adjust</code> setting (<code>bool</code> or \n<code>None</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"datum\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">datum</h3>\n  <p>Get the datum (<a href=\"pygeodesy.datums.Datum-class.html\" \n  class=\"link\">Datum</a> or <code>None</code> if not applicable).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">datum(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the datum (<a href=\"pygeodesy.datums.Datum-class.html\" \nclass=\"link\">Datum</a> or <code>None</code> if not applicable).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"fraction\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">fraction</h3>\n  <p>Class <code>property</code> with a <code>.name</code> attribute.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">fraction(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the index fraction (<code>float</code> or <code>1</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">fraction(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">fraction</span>)</span>\n        - Set the index fraction (<code>float</code> in <code>EPS</code>..\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"kwds\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">kwds</h3>\n  <p>Get the supplied, optional keyword arguments (<code>dict</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">kwds(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the supplied, optional keyword arguments (<code>dict</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"units\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">units</h3>\n  <p>Class <code>property</code> with a <code>.name</code> attribute.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">units(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the distance units (<code>Unit</code> or <code>str</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">units(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">units</span>)</span>\n        - Set the distance units (<code>Unit</code> or <code>str</code>).\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"wrap\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">wrap</h3>\n  <p>Get the <code>wrap</code> setting (<code>bool</code> or \n  <code>None</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">wrap(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <code>wrap</code> setting (<code>bool</code> or <code>None</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.frechet.Frechet6Tuple-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.frechet.Frechet6Tuple</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.frechet-module.html\">Module&nbsp;frechet</a> ::\n        Class&nbsp;Frechet6Tuple\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.frechet.Frechet6Tuple-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Frechet6Tuple</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n   object --+        \n            |        \n        tuple --+    \n                |    \n   object --+   |    \n            |   |    \n <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n                |    \n<a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a> --+\n                    |\n                   <strong class=\"uidshort\">Frechet6Tuple</strong>\n</pre>\n\n<hr />\n<p>6-Tuple <code>(fd, fi1, fi2, r, n, units)</code> with the \n  <i>discrete</i> <a href=\"https://WikiPedia.org/wiki/Frechet_distance\" \n  target=\"_top\">Fr&#233;chet</a> distance <code>fd</code>, <i>fractional</i> \n  indices <code>fi1</code> and <code>fi2</code> as <code>FIx</code>, the \n  recursion depth <code>r</code>, the number of distances computed \n  <code>n</code> and the <a \n  href=\"pygeodesy.named._NamedTuple-class.html#units\" \n  class=\"link\">units</a> class or name of the distance \n  <code>units</code>.</p>\n  <p>Empirically, the recursion depth <code>r &#8776; 2 * sqrt(len(point1s) * \n  len(point2s))</code> or <code>0</code> if non-recursive, see function <a \n  href=\"pygeodesy.frechet-module.html#frechet_\" \n  class=\"link\">frechet_</a>.</p>\n  <p>If <i>fractional</i> indices <code>fi1</code> and <code>fi2</code> are\n  <code>int</code>, the returned <code>fd</code> is the distance between \n  <code>point1s[fi1]</code> and <code>point2s[fi2]</code>.  For \n  <code>float</code> indices, the distance is between an intermediate point\n  along <code>point1s[int(fi1)]</code> and <code>point1s[int(fi1) + \n  1]</code> respectively an intermediate point along \n  <code>point2s[int(fi2)]</code> and <code>point2s[int(fi2) + \n  1]</code>.</p>\n  <p>Use function <a href=\"pygeodesy.points-module.html#fractional\" \n  class=\"link\">fractional</a> to compute the point at a <i>fractional</i> \n  index.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.frechet.Frechet6Tuple-class.html#toUnits\" class=\"summary-sig-name\">toUnits</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">**Error_name</span>)</span><br />\n      Overloaded <code>_NamedTuple.toUnits</code> for <code>fd</code> \n      units.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__delattr__\">__delattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__getattr__\">__getattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__setattr__\">__setattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#items\">items</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iteritems\">iteritems</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iterunits\">iterunits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#reUnit\">reUnit</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>tuple</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__eq__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__iter__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__rmul__</code>,\n      <code>count</code>,\n      <code>index</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__new__\">__new__</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"toUnits\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toUnits</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">**Error_name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Overloaded <code>_NamedTuple.toUnits</code> for <code>fd</code> \n  units.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>Error</code></strong> - Error to raise for <a \n          href=\"pygeodesy.named._NamedTuple-class.html#units\" \n          class=\"link\">units</a> issues (<code>UnitError</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A duplicate of this <code>Named-Tuple</code> \n          (<code><code>Named-Tuple</code></code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>Error</strong></code> - Invalid <code>Named-Tuple</code> item or <a \n        href=\"pygeodesy.named._NamedTuple-class.html#units\" \n        class=\"link\">units</a> class.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.named._NamedTuple-class.html#toUnits\">named._NamedTuple.toUnits</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.frechet.FrechetCosineLaw-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.frechet.FrechetCosineLaw</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.frechet-module.html\">Module&nbsp;frechet</a> ::\n        Class&nbsp;FrechetCosineLaw\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.frechet.FrechetCosineLaw-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class FrechetCosineLaw</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+            \n           |            \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+        \n               |        \n         <a href=\"pygeodesy.frechet.Frechet-class.html\">Frechet</a> --+    \n                   |    \n_FrechetMeterRadians --+\n                       |\n                      <strong class=\"uidshort\">FrechetCosineLaw</strong>\n</pre>\n\n<hr />\n<p>Compute the <code>Frechet</code> distance with functionn <a \n  href=\"pygeodesy.formy-module.html#cosineLaw\" \n  class=\"link\">pygeodesy.cosineLaw</a>.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Note:</strong>\n        See note at function <a \n        href=\"pygeodesy.geohash-module.html#vincentys_\" \n        class=\"link\">pygeodesy.vincentys_</a>.\n      </p>\n</div><!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.frechet.FrechetCosineLaw-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">point1s</span>,\n        <span class=\"summary-sig-arg\">**fraction_name__corr_earth_wrap</span>)</span><br />\n      New <a href=\"pygeodesy.frechet.FrechetCosineLaw-class.html\" \n      class=\"link\">FrechetCosineLaw</a> calculator/interpolator.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.frechet.FrechetCosineLaw-class.html#discrete\" class=\"summary-sig-name\">discrete</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">point2s</span>,\n        <span class=\"summary-sig-arg\">fraction</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">recursive</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Compute the <code>forward, discrete Fr&#233;chet</code> distance.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.frechet.Frechet-class.html\">Frechet</a></code></b>:\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#distance\">distance</a></code>,\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#point\">point</a></code>,\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#points_\">points_</a></code>,\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#points_fraction\">points_fraction</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.frechet.Frechet-class.html\">Frechet</a></code></b>:\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#adjust\">adjust</a></code>,\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#datum\">datum</a></code>,\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#fraction\">fraction</a></code>,\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#kwds\">kwds</a></code>,\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#units\">units</a></code>,\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#wrap\">wrap</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">point1s</span>,\n        <span class=\"sig-arg\">**fraction_name__corr_earth_wrap</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.frechet.FrechetCosineLaw-class.html\" \n  class=\"link\">FrechetCosineLaw</a> calculator/interpolator.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>fraction_name__corr_earth_wrap</code></strong> - Optional <code><b>fraction</b>=None</code> and \n          <code><b>name</b>=NN</code> and keyword arguments for function <a\n          href=\"pygeodesy.formy-module.html#cosineLaw\" \n          class=\"link\">pygeodesy.cosineLaw</a>.</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.frechet.FrechetError-class.html\">FrechetError</a></strong></code> - Insufficient number of <b><code>point1s</code></b> or an invalid \n        <b><code>point1</code></b>, <b><code>fraction</code></b> or \n        <b><code>units</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"pygeodesy.frechet.Frechet-class.html#__init__\" \n        class=\"link\">Frechet.__init__</a> for details about \n        <b><code>point1s</code></b>, <b><code>fraction</code></b>, \n        <b><code>name</code></b> and other exceptions.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"discrete\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">discrete</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">point2s</span>,\n        <span class=\"sig-arg\">fraction</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">recursive</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the <code>forward, discrete Fr&#233;chet</code> distance.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>point2s</code></strong> - Second set of points (<code>LatLon</code>[], <a \n          href=\"pygeodesy.points.Numpy2LatLon-class.html\" \n          class=\"link\">Numpy2LatLon</a>[], <a \n          href=\"pygeodesy.points.Tuple2LatLon-class.html\" \n          class=\"link\">Tuple2LatLon</a>[] or <code>other</code>[]).</li>\n        <li><strong class=\"pname\"><code>fraction</code></strong> - Index fraction (<code>float</code> in EPS..EPS1) to interpolate \n          intermediate <b><code>point2s</code></b> or use \n          <code>None</code>, <code>0</code> or <code>1</code> for no \n          intermediate <b><code>point2s</code></b> and no <i>fractional</i>\n          indices.</li>\n        <li><strong class=\"pname\"><code>recursive</code></strong> - Use <code>True</code> for backward compatibility \n          (<code>bool</code>) or with <i>fractional</i> indices.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.frechet.Frechet6Tuple-class.html\" \n          class=\"link\">Frechet6Tuple</a><code>(fd, fi1, fi2, r, n, \n          units)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.frechet.FrechetError-class.html\">FrechetError</a></strong></code> - Insufficient number of <b><code>point2s</code></b> or an invalid \n        <b><code>point2</code></b> or <b><code>fraction</code></b> or \n        <code>non-<b>recursive</b></code> and <i>fractional</i>.</li>\n        <li><code><strong class='fraise'>RecursionError</strong></code> - Recursion depth exceeded, see <a \n        href=\"https://docs.Python.org/3/library/sys.html#sys.getrecursionlimit\"\n        target=\"_top\">sys.getrecursionlimit</a>, only with \n        <code><b>recursive</b>=True</code>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.frechet.Frechet-class.html#discrete\">Frechet.discrete</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.frechet.FrechetDegrees-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.frechet.FrechetDegrees</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.frechet-module.html\">Module&nbsp;frechet</a> ::\n        Class&nbsp;FrechetDegrees\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.frechet.FrechetDegrees-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class FrechetDegrees</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+        \n           |        \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n               |    \n         <a href=\"pygeodesy.frechet.Frechet-class.html\">Frechet</a> --+\n                   |\n                  <strong class=\"uidshort\">FrechetDegrees</strong>\n</pre>\n\n<hr />\n<p>DEPRECATED, use an other <code>Frechet*</code> class.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.frechet.FrechetDegrees-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">point1s</span>,\n        <span class=\"summary-sig-arg\">fraction</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">units</span>=<span class=\"summary-sig-default\">''</span>,\n        <span class=\"summary-sig-arg\">**name__kwds</span>)</span><br />\n      New <code>Frechet...</code> calculator/interpolator.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.frechet.FrechetDegrees-class.html#discrete\" class=\"summary-sig-name\">discrete</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">point2s</span>,\n        <span class=\"summary-sig-arg\">fraction</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">recursive</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Compute the <code>forward, discrete Fr&#233;chet</code> distance.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.frechet.FrechetDegrees-class.html#distance\" class=\"summary-sig-name\">distance</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">point1</span>,\n        <span class=\"summary-sig-arg\">point2</span>,\n        <span class=\"summary-sig-arg\">*args</span>,\n        <span class=\"summary-sig-arg\">**kwds</span>)</span><br />\n      <i>Must be overloaded</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.frechet.Frechet-class.html\">Frechet</a></code></b>:\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#point\">point</a></code>,\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#points_\">points_</a></code>,\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#points_fraction\">points_fraction</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.frechet.Frechet-class.html\">Frechet</a></code></b>:\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#adjust\">adjust</a></code>,\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#datum\">datum</a></code>,\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#fraction\">fraction</a></code>,\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#kwds\">kwds</a></code>,\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#units\">units</a></code>,\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#wrap\">wrap</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">point1s</span>,\n        <span class=\"sig-arg\">fraction</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">units</span>=<span class=\"sig-default\">''</span>,\n        <span class=\"sig-arg\">**name__kwds</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <code>Frechet...</code> calculator/interpolator.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>point1s</code></strong> - First set of points (<code>LatLon</code>[], <a \n          href=\"pygeodesy.points.Numpy2LatLon-class.html\" \n          class=\"link\">Numpy2LatLon</a>[], <a \n          href=\"pygeodesy.points.Tuple2LatLon-class.html\" \n          class=\"link\">Tuple2LatLon</a>[] or <code>other</code>[]).</li>\n        <li><strong class=\"pname\"><code>fraction</code></strong> - Index fraction (<code>float</code> in EPS..EPS1) to interpolate \n          intermediate <b><code>point1s</code></b> or use \n          <code>None</code>, <code>0</code> or <code>1</code> for no \n          intermediate <b><code>point1s</code></b> and no <i>fractional</i>\n          indices.</li>\n        <li><strong class=\"pname\"><code>units</code></strong> - Optional distance units (<code>Unit</code> or <code>str</code>).</li>\n        <li><strong class=\"pname\"><code>name__kwds</code></strong> - Optional <code><b>name</b>=NN</code> for this \n          calculator/interpolator (<code>str</code>) and any keyword \n          arguments for the distance function, retrievable with property \n          <code>kwds</code>.</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.frechet.FrechetError-class.html\">FrechetError</a></strong></code> - Insufficient number of <b><code>point1s</code></b> or an invalid \n        <b><code>point1</code></b>, <b><code>fraction</code></b> or \n        <b><code>units</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"discrete\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">discrete</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">point2s</span>,\n        <span class=\"sig-arg\">fraction</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">recursive</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the <code>forward, discrete Fr&#233;chet</code> distance.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>point2s</code></strong> - Second set of points (<code>LatLon</code>[], <a \n          href=\"pygeodesy.points.Numpy2LatLon-class.html\" \n          class=\"link\">Numpy2LatLon</a>[], <a \n          href=\"pygeodesy.points.Tuple2LatLon-class.html\" \n          class=\"link\">Tuple2LatLon</a>[] or <code>other</code>[]).</li>\n        <li><strong class=\"pname\"><code>fraction</code></strong> - Index fraction (<code>float</code> in EPS..EPS1) to interpolate \n          intermediate <b><code>point2s</code></b> or use \n          <code>None</code>, <code>0</code> or <code>1</code> for no \n          intermediate <b><code>point2s</code></b> and no <i>fractional</i>\n          indices.</li>\n        <li><strong class=\"pname\"><code>recursive</code></strong> - Use <code>True</code> for backward compatibility \n          (<code>bool</code>) or with <i>fractional</i> indices.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.frechet.Frechet6Tuple-class.html\" \n          class=\"link\">Frechet6Tuple</a><code>(fd, fi1, fi2, r, n, \n          units)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.frechet.FrechetError-class.html\">FrechetError</a></strong></code> - Insufficient number of <b><code>point2s</code></b> or an invalid \n        <b><code>point2</code></b> or <b><code>fraction</code></b> or \n        <code>non-<b>recursive</b></code> and <i>fractional</i>.</li>\n        <li><code><strong class='fraise'>RecursionError</strong></code> - Recursion depth exceeded, see <a \n        href=\"https://docs.Python.org/3/library/sys.html#sys.getrecursionlimit\"\n        target=\"_top\">sys.getrecursionlimit</a>, only with \n        <code><b>recursive</b>=True</code>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.frechet.Frechet-class.html#discrete\">Frechet.discrete</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"distance\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">distance</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">point1</span>,\n        <span class=\"sig-arg\">point2</span>,\n        <span class=\"sig-arg\">*args</span>,\n        <span class=\"sig-arg\">**kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p><i>Must be overloaded</i>.</p>\n  <dl class=\"fields\">\n    <dt>Overrides:\n        <a href=\"pygeodesy.frechet.Frechet-class.html#distance\">Frechet.distance</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.frechet.FrechetDistanceTo-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.frechet.FrechetDistanceTo</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.frechet-module.html\">Module&nbsp;frechet</a> ::\n        Class&nbsp;FrechetDistanceTo\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.frechet.FrechetDistanceTo-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class FrechetDistanceTo</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+        \n           |        \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n               |    \n         <a href=\"pygeodesy.frechet.Frechet-class.html\">Frechet</a> --+\n                   |\n                  <strong class=\"uidshort\">FrechetDistanceTo</strong>\n</pre>\n\n<hr />\n<p>Compute the <code>Frechet</code> distance with the point1s' \n  <code>LatLon.distanceTo</code> method.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.frechet.FrechetDistanceTo-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">point1s</span>,\n        <span class=\"summary-sig-arg\">**fraction_name__distanceTo_kwds</span>)</span><br />\n      New <a href=\"pygeodesy.frechet.FrechetDistanceTo-class.html\" \n      class=\"link\">FrechetDistanceTo</a> calculator/interpolator.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.frechet.FrechetDistanceTo-class.html#discrete\" class=\"summary-sig-name\">discrete</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">point2s</span>,\n        <span class=\"summary-sig-arg\">fraction</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">recursive</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Compute the <code>forward, discrete Fr&#233;chet</code> distance.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.frechet.FrechetDistanceTo-class.html#distance\" class=\"summary-sig-name\">distance</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">p1</span>,\n        <span class=\"summary-sig-arg\">p2</span>)</span><br />\n      Return the distance in <code>meter</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.frechet.Frechet-class.html\">Frechet</a></code></b>:\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#point\">point</a></code>,\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#points_\">points_</a></code>,\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#points_fraction\">points_fraction</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.frechet.Frechet-class.html\">Frechet</a></code></b>:\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#adjust\">adjust</a></code>,\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#datum\">datum</a></code>,\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#fraction\">fraction</a></code>,\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#kwds\">kwds</a></code>,\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#units\">units</a></code>,\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#wrap\">wrap</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">point1s</span>,\n        <span class=\"sig-arg\">**fraction_name__distanceTo_kwds</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.frechet.FrechetDistanceTo-class.html\" \n  class=\"link\">FrechetDistanceTo</a> calculator/interpolator.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>fraction_name__distanceTo_kwds</code></strong> - Optional <code><b>fraction</b>=None</code> and \n          <code><b>name</b>=NN</code> and keyword arguments for each \n          <b><code>point1s</code></b>' <code>LatLon.distanceTo</code> \n          method.</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.frechet.FrechetError-class.html\">FrechetError</a></strong></code> - Insufficient number of <b><code>point1s</code></b> or an invalid \n        <b><code>point1</code></b>, <b><code>fraction</code></b> or \n        <b><code>units</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"pygeodesy.frechet.Frechet-class.html#__init__\" \n        class=\"link\">Frechet.__init__</a> for details about \n        <b><code>point1s</code></b>, <b><code>fraction</code></b>, \n        <b><code>name</code></b> and other exceptions.\n      </p>\n      <p><strong>Note:</strong>\n        All <b><code>point1s</code></b> <i>must</i> be instances of the \n        same ellipsoidal or spherical <code>LatLon</code> class.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"discrete\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">discrete</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">point2s</span>,\n        <span class=\"sig-arg\">fraction</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">recursive</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the <code>forward, discrete Fr&#233;chet</code> distance.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>point2s</code></strong> - Second set of points (<code>LatLon</code>[], <a \n          href=\"pygeodesy.points.Numpy2LatLon-class.html\" \n          class=\"link\">Numpy2LatLon</a>[], <a \n          href=\"pygeodesy.points.Tuple2LatLon-class.html\" \n          class=\"link\">Tuple2LatLon</a>[] or <code>other</code>[]).</li>\n        <li><strong class=\"pname\"><code>fraction</code></strong> - Index fraction (<code>float</code> in EPS..EPS1) to interpolate \n          intermediate <b><code>point2s</code></b> or use \n          <code>None</code>, <code>0</code> or <code>1</code> for no \n          intermediate <b><code>point2s</code></b> and no <i>fractional</i>\n          indices.</li>\n        <li><strong class=\"pname\"><code>recursive</code></strong> - Use <code>True</code> for backward compatibility \n          (<code>bool</code>) or with <i>fractional</i> indices.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.frechet.Frechet6Tuple-class.html\" \n          class=\"link\">Frechet6Tuple</a><code>(fd, fi1, fi2, r, n, \n          units)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.frechet.FrechetError-class.html\">FrechetError</a></strong></code> - Insufficient number of <b><code>point2s</code></b> or an invalid \n        <b><code>point2</code></b> or <b><code>fraction</code></b> or \n        <code>non-<b>recursive</b></code> and <i>fractional</i>.</li>\n        <li><code><strong class='fraise'>RecursionError</strong></code> - Recursion depth exceeded, see <a \n        href=\"https://docs.Python.org/3/library/sys.html#sys.getrecursionlimit\"\n        target=\"_top\">sys.getrecursionlimit</a>, only with \n        <code><b>recursive</b>=True</code>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.frechet.Frechet-class.html#discrete\">Frechet.discrete</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"distance\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">distance</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">p1</span>,\n        <span class=\"sig-arg\">p2</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the distance in <code>meter</code>.</p>\n  <dl class=\"fields\">\n    <dt>Overrides:\n        <a href=\"pygeodesy.frechet.Frechet-class.html#distance\">Frechet.distance</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.frechet.FrechetEquirectangular-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.frechet.FrechetEquirectangular</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.frechet-module.html\">Module&nbsp;frechet</a> ::\n        Class&nbsp;FrechetEquirectangular\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.frechet.FrechetEquirectangular-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class FrechetEquirectangular</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+        \n           |        \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n               |    \n         <a href=\"pygeodesy.frechet.Frechet-class.html\">Frechet</a> --+\n                   |\n                  <strong class=\"uidshort\">FrechetEquirectangular</strong>\n</pre>\n\n<hr />\n<p>Compute the <code>Frechet</code> distance with function <a \n  href=\"pygeodesy.formy-module.html#equirectangular\" \n  class=\"link\">pygeodesy.equirectangular</a>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.frechet.FrechetEquirectangular-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">point1s</span>,\n        <span class=\"summary-sig-arg\">**fraction_name__adjust_limit_wrap</span>)</span><br />\n      New <a href=\"pygeodesy.frechet.FrechetEquirectangular-class.html\" \n      class=\"link\">FrechetEquirectangular</a> calculator/interpolator.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.frechet.FrechetEquirectangular-class.html#discrete\" class=\"summary-sig-name\">discrete</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">point2s</span>,\n        <span class=\"summary-sig-arg\">fraction</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">recursive</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Compute the <code>forward, discrete Fr&#233;chet</code> distance.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.frechet.Frechet-class.html\">Frechet</a></code></b>:\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#distance\">distance</a></code>,\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#point\">point</a></code>,\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#points_\">points_</a></code>,\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#points_fraction\">points_fraction</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.frechet.Frechet-class.html\">Frechet</a></code></b>:\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#adjust\">adjust</a></code>,\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#datum\">datum</a></code>,\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#fraction\">fraction</a></code>,\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#kwds\">kwds</a></code>,\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#units\">units</a></code>,\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#wrap\">wrap</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">point1s</span>,\n        <span class=\"sig-arg\">**fraction_name__adjust_limit_wrap</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.frechet.FrechetEquirectangular-class.html\" \n  class=\"link\">FrechetEquirectangular</a> calculator/interpolator.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>fraction_name__adjust_limit_wrap</code></strong> - Optional <code><b>fraction</b>=None</code> and \n          <code><b>name</b>=NN</code> and keyword arguments for function <a\n          href=\"pygeodesy.formy-module.html#equirectangular\" \n          class=\"link\">pygeodesy.equirectangular</a> <i>with default</i> \n          <code><b>limit</b>=0</code> for <i>backward compatibility</i>.</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.frechet.FrechetError-class.html\">FrechetError</a></strong></code> - Insufficient number of <b><code>point1s</code></b> or an invalid \n        <b><code>point1</code></b>, <b><code>fraction</code></b> or \n        <b><code>units</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"pygeodesy.frechet.Frechet-class.html#__init__\" \n        class=\"link\">Frechet.__init__</a> for details about \n        <b><code>point1s</code></b>, <b><code>fraction</code></b>, \n        <b><code>name</code></b> and other exceptions.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"discrete\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">discrete</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">point2s</span>,\n        <span class=\"sig-arg\">fraction</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">recursive</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the <code>forward, discrete Fr&#233;chet</code> distance.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>point2s</code></strong> - Second set of points (<code>LatLon</code>[], <a \n          href=\"pygeodesy.points.Numpy2LatLon-class.html\" \n          class=\"link\">Numpy2LatLon</a>[], <a \n          href=\"pygeodesy.points.Tuple2LatLon-class.html\" \n          class=\"link\">Tuple2LatLon</a>[] or <code>other</code>[]).</li>\n        <li><strong class=\"pname\"><code>fraction</code></strong> - Index fraction (<code>float</code> in EPS..EPS1) to interpolate \n          intermediate <b><code>point2s</code></b> or use \n          <code>None</code>, <code>0</code> or <code>1</code> for no \n          intermediate <b><code>point2s</code></b> and no <i>fractional</i>\n          indices.</li>\n        <li><strong class=\"pname\"><code>recursive</code></strong> - Use <code>True</code> for backward compatibility \n          (<code>bool</code>) or with <i>fractional</i> indices.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.frechet.Frechet6Tuple-class.html\" \n          class=\"link\">Frechet6Tuple</a><code>(fd, fi1, fi2, r, n, \n          units)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.frechet.FrechetError-class.html\">FrechetError</a></strong></code> - Insufficient number of <b><code>point2s</code></b> or an invalid \n        <b><code>point2</code></b> or <b><code>fraction</code></b> or \n        <code>non-<b>recursive</b></code> and <i>fractional</i>.</li>\n        <li><code><strong class='fraise'>RecursionError</strong></code> - Recursion depth exceeded, see <a \n        href=\"https://docs.Python.org/3/library/sys.html#sys.getrecursionlimit\"\n        target=\"_top\">sys.getrecursionlimit</a>, only with \n        <code><b>recursive</b>=True</code>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.frechet.Frechet-class.html#discrete\">Frechet.discrete</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.frechet.FrechetError-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.frechet.FrechetError</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.frechet-module.html\">Module&nbsp;frechet</a> ::\n        Class&nbsp;FrechetError\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.frechet.FrechetError-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class FrechetError</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n              object --+                        \n                       |                        \nexceptions.BaseException --+                    \n                           |                    \n        exceptions.Exception --+                \n                               |                \n        exceptions.StandardError --+            \n                                   |            \n               exceptions.ValueError --+        \n                                       |        \n                      errors._ValueError --+    \n                                           |    \n                          <a href=\"pygeodesy.errors.PointsError-class.html\">errors.PointsError</a> --+\n                                               |\n                                              <strong class=\"uidshort\">FrechetError</strong>\n</pre>\n\n<hr />\n<p>Fr&#233;chet issue.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>errors._ValueError</code></b>:\n      <code>__init__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.ValueError</code></b>:\n      <code>__new__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.BaseException</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getslice__</code>,\n      <code>__reduce__</code>,\n      <code>__repr__</code>,\n      <code>__setattr__</code>,\n      <code>__setstate__</code>,\n      <code>__str__</code>,\n      <code>__unicode__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__format__</code>,\n      <code>__hash__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.BaseException</code></b>:\n      <code>args</code>,\n      <code>message</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.frechet.FrechetEuclidean-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.frechet.FrechetEuclidean</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.frechet-module.html\">Module&nbsp;frechet</a> ::\n        Class&nbsp;FrechetEuclidean\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.frechet.FrechetEuclidean-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class FrechetEuclidean</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+            \n           |            \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+        \n               |        \n         <a href=\"pygeodesy.frechet.Frechet-class.html\">Frechet</a> --+    \n                   |    \n_FrechetMeterRadians --+\n                       |\n                      <strong class=\"uidshort\">FrechetEuclidean</strong>\n</pre>\n\n<hr />\n<p>Compute the <code>Frechet</code> distance with function <a \n  href=\"pygeodesy.formy-module.html#euclidean\" \n  class=\"link\">pygeodesy.euclidean</a>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.frechet.FrechetEuclidean-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">point1s</span>,\n        <span class=\"summary-sig-arg\">**fraction_name__adjust_radius_wrap</span>)</span><br />\n      New <a href=\"pygeodesy.frechet.FrechetEuclidean-class.html\" \n      class=\"link\">FrechetEuclidean</a> calculator/interpolator.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.frechet.FrechetEuclidean-class.html#discrete\" class=\"summary-sig-name\">discrete</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">point2s</span>,\n        <span class=\"summary-sig-arg\">fraction</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">recursive</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Compute the <code>forward, discrete Fr&#233;chet</code> distance.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.frechet.Frechet-class.html\">Frechet</a></code></b>:\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#distance\">distance</a></code>,\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#point\">point</a></code>,\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#points_\">points_</a></code>,\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#points_fraction\">points_fraction</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.frechet.Frechet-class.html\">Frechet</a></code></b>:\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#adjust\">adjust</a></code>,\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#datum\">datum</a></code>,\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#fraction\">fraction</a></code>,\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#kwds\">kwds</a></code>,\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#units\">units</a></code>,\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#wrap\">wrap</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">point1s</span>,\n        <span class=\"sig-arg\">**fraction_name__adjust_radius_wrap</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.frechet.FrechetEuclidean-class.html\" \n  class=\"link\">FrechetEuclidean</a> calculator/interpolator.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>fraction_name__adjust_radius_wrap</code></strong> - Optional <code><b>fraction</b>=None</code> and \n          <code><b>name</b>=NN</code> and keyword arguments for function <a\n          href=\"pygeodesy.formy-module.html#euclidean\" \n          class=\"link\">pygeodesy.euclidean</a>.</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.frechet.FrechetError-class.html\">FrechetError</a></strong></code> - Insufficient number of <b><code>point1s</code></b> or an invalid \n        <b><code>point1</code></b>, <b><code>fraction</code></b> or \n        <b><code>units</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"pygeodesy.frechet.Frechet-class.html#__init__\" \n        class=\"link\">Frechet.__init__</a> for details about \n        <b><code>point1s</code></b>, <b><code>fraction</code></b>, \n        <b><code>name</code></b> and other exceptions.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"discrete\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">discrete</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">point2s</span>,\n        <span class=\"sig-arg\">fraction</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">recursive</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the <code>forward, discrete Fr&#233;chet</code> distance.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>point2s</code></strong> - Second set of points (<code>LatLon</code>[], <a \n          href=\"pygeodesy.points.Numpy2LatLon-class.html\" \n          class=\"link\">Numpy2LatLon</a>[], <a \n          href=\"pygeodesy.points.Tuple2LatLon-class.html\" \n          class=\"link\">Tuple2LatLon</a>[] or <code>other</code>[]).</li>\n        <li><strong class=\"pname\"><code>fraction</code></strong> - Index fraction (<code>float</code> in EPS..EPS1) to interpolate \n          intermediate <b><code>point2s</code></b> or use \n          <code>None</code>, <code>0</code> or <code>1</code> for no \n          intermediate <b><code>point2s</code></b> and no <i>fractional</i>\n          indices.</li>\n        <li><strong class=\"pname\"><code>recursive</code></strong> - Use <code>True</code> for backward compatibility \n          (<code>bool</code>) or with <i>fractional</i> indices.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.frechet.Frechet6Tuple-class.html\" \n          class=\"link\">Frechet6Tuple</a><code>(fd, fi1, fi2, r, n, \n          units)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.frechet.FrechetError-class.html\">FrechetError</a></strong></code> - Insufficient number of <b><code>point2s</code></b> or an invalid \n        <b><code>point2</code></b> or <b><code>fraction</code></b> or \n        <code>non-<b>recursive</b></code> and <i>fractional</i>.</li>\n        <li><code><strong class='fraise'>RecursionError</strong></code> - Recursion depth exceeded, see <a \n        href=\"https://docs.Python.org/3/library/sys.html#sys.getrecursionlimit\"\n        target=\"_top\">sys.getrecursionlimit</a>, only with \n        <code><b>recursive</b>=True</code>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.frechet.Frechet-class.html#discrete\">Frechet.discrete</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.frechet.FrechetExact-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.frechet.FrechetExact</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.frechet-module.html\">Module&nbsp;frechet</a> ::\n        Class&nbsp;FrechetExact\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.frechet.FrechetExact-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class FrechetExact</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+        \n           |        \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n               |    \n         <a href=\"pygeodesy.frechet.Frechet-class.html\">Frechet</a> --+\n                   |\n                  <strong class=\"uidshort\">FrechetExact</strong>\n</pre>\n\n<hr />\n<p>Compute the <code>Frechet</code> distance with method <a \n  href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html\" \n  class=\"link\">GeodesicExact</a><code>.Inverse</code>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.frechet.FrechetExact-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">point1s</span>,\n        <span class=\"summary-sig-arg\">datum</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**fraction_name__wrap</span>)</span><br />\n      New <a href=\"pygeodesy.frechet.FrechetExact-class.html\" \n      class=\"link\">FrechetExact</a> calculator/interpolator.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.frechet.FrechetExact-class.html#discrete\" class=\"summary-sig-name\">discrete</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">point2s</span>,\n        <span class=\"summary-sig-arg\">fraction</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">recursive</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Compute the <code>forward, discrete Fr&#233;chet</code> distance.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.frechet.Frechet-class.html\">Frechet</a></code></b>:\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#distance\">distance</a></code>,\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#point\">point</a></code>,\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#points_\">points_</a></code>,\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#points_fraction\">points_fraction</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.frechet.Frechet-class.html\">Frechet</a></code></b>:\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#adjust\">adjust</a></code>,\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#datum\">datum</a></code>,\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#fraction\">fraction</a></code>,\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#kwds\">kwds</a></code>,\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#units\">units</a></code>,\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#wrap\">wrap</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">point1s</span>,\n        <span class=\"sig-arg\">datum</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**fraction_name__wrap</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.frechet.FrechetExact-class.html\" \n  class=\"link\">FrechetExact</a> calculator/interpolator.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>datum</code></strong> - Datum to override the default <code>Datums.WGS84</code> and first\n          <b><code>point1s</code></b>' datum (<a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>, \n          <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a> or <a \n          href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>fraction_name__wrap</code></strong> - Optional <code><b>fraction</b>=None</code> and \n          <code><b>name</b>=NN</code> and keyword argument for method \n          <code>Inverse1</code> of class <a \n          href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html\" \n          class=\"link\">geodesicx.GeodesicExact</a>.</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>datum</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"pygeodesy.frechet.Frechet-class.html#__init__\" \n        class=\"link\">Frechet.__init__</a> for details about \n        <b><code>point1s</code></b>, <b><code>fraction</code></b>, \n        <b><code>name</code></b> and other exceptions.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"discrete\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">discrete</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">point2s</span>,\n        <span class=\"sig-arg\">fraction</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">recursive</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the <code>forward, discrete Fr&#233;chet</code> distance.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>point2s</code></strong> - Second set of points (<code>LatLon</code>[], <a \n          href=\"pygeodesy.points.Numpy2LatLon-class.html\" \n          class=\"link\">Numpy2LatLon</a>[], <a \n          href=\"pygeodesy.points.Tuple2LatLon-class.html\" \n          class=\"link\">Tuple2LatLon</a>[] or <code>other</code>[]).</li>\n        <li><strong class=\"pname\"><code>fraction</code></strong> - Index fraction (<code>float</code> in EPS..EPS1) to interpolate \n          intermediate <b><code>point2s</code></b> or use \n          <code>None</code>, <code>0</code> or <code>1</code> for no \n          intermediate <b><code>point2s</code></b> and no <i>fractional</i>\n          indices.</li>\n        <li><strong class=\"pname\"><code>recursive</code></strong> - Use <code>True</code> for backward compatibility \n          (<code>bool</code>) or with <i>fractional</i> indices.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.frechet.Frechet6Tuple-class.html\" \n          class=\"link\">Frechet6Tuple</a><code>(fd, fi1, fi2, r, n, \n          units)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.frechet.FrechetError-class.html\">FrechetError</a></strong></code> - Insufficient number of <b><code>point2s</code></b> or an invalid \n        <b><code>point2</code></b> or <b><code>fraction</code></b> or \n        <code>non-<b>recursive</b></code> and <i>fractional</i>.</li>\n        <li><code><strong class='fraise'>RecursionError</strong></code> - Recursion depth exceeded, see <a \n        href=\"https://docs.Python.org/3/library/sys.html#sys.getrecursionlimit\"\n        target=\"_top\">sys.getrecursionlimit</a>, only with \n        <code><b>recursive</b>=True</code>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.frechet.Frechet-class.html#discrete\">Frechet.discrete</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.frechet.FrechetFlatLocal-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.frechet.FrechetFlatLocal</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.frechet-module.html\">Module&nbsp;frechet</a> ::\n        Class&nbsp;FrechetFlatLocal\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.frechet.FrechetFlatLocal-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class FrechetFlatLocal</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+            \n           |            \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+        \n               |        \n         <a href=\"pygeodesy.frechet.Frechet-class.html\">Frechet</a> --+    \n                   |    \n_FrechetMeterRadians --+\n                       |\n                      <strong class=\"uidshort\">FrechetFlatLocal</strong>\n</pre>\n\n<dl><dt>Known Subclasses:</dt>\n<dd>\n      <ul class=\"subclass-list\">\n<li><a href=\"pygeodesy.frechet.FrechetHubeny-class.html\">FrechetHubeny</a></li>  </ul>\n</dd></dl>\n\n<hr />\n<p>Compute the <code>Frechet</code> distance with function <a \n  href=\"pygeodesy.formy-module.html#flatLocal_\" \n  class=\"link\">pygeodesy.flatLocal_</a>/<a \n  href=\"pygeodesy.formy-module.html#flatLocal\" \n  class=\"link\">pygeodesy.hubeny</a>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.frechet.FrechetFlatLocal-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">point1s</span>,\n        <span class=\"summary-sig-arg\">**fraction_name__datum_scaled_wrap</span>)</span><br />\n      New <a href=\"pygeodesy.frechet.FrechetFlatLocal-class.html\" \n      class=\"link\">FrechetFlatLocal</a>/<a \n      href=\"pygeodesy.frechet.FrechetHubeny-class.html\" \n      class=\"link\">FrechetHubeny</a> calculator/interpolator.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.frechet.FrechetFlatLocal-class.html#discrete\" class=\"summary-sig-name\">discrete</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">point2s</span>,\n        <span class=\"summary-sig-arg\">fraction</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">recursive</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Compute the <code>forward, discrete Fr&#233;chet</code> distance.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.frechet.Frechet-class.html\">Frechet</a></code></b>:\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#distance\">distance</a></code>,\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#point\">point</a></code>,\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#points_\">points_</a></code>,\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#points_fraction\">points_fraction</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.frechet.Frechet-class.html\">Frechet</a></code></b>:\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#adjust\">adjust</a></code>,\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#datum\">datum</a></code>,\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#fraction\">fraction</a></code>,\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#kwds\">kwds</a></code>,\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#units\">units</a></code>,\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#wrap\">wrap</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">point1s</span>,\n        <span class=\"sig-arg\">**fraction_name__datum_scaled_wrap</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.frechet.FrechetFlatLocal-class.html\" \n  class=\"link\">FrechetFlatLocal</a>/<a \n  href=\"pygeodesy.frechet.FrechetHubeny-class.html\" \n  class=\"link\">FrechetHubeny</a> calculator/interpolator.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>fraction_name__datum_scaled_wrap</code></strong> - Optional <code><b>fraction</b>=None</code> and \n          <code><b>name</b>=NN</code> and keyword arguments for function <a\n          href=\"pygeodesy.formy-module.html#flatLocal\" \n          class=\"link\">pygeodesy.flatLocal</a>.</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.frechet.FrechetError-class.html\">FrechetError</a></strong></code> - Insufficient number of <b><code>point1s</code></b> or an invalid \n        <b><code>point1</code></b>, <b><code>fraction</code></b> or \n        <b><code>units</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"pygeodesy.frechet.Frechet-class.html#__init__\" \n        class=\"link\">Frechet.__init__</a> for details about \n        <b><code>point1s</code></b>, <b><code>fraction</code></b>, \n        <b><code>name</code></b> and other exceptions.\n      </p>\n      <p><strong>Note:</strong>\n        The distance <code>units</code> are <code>radians squared</code>, \n        not <code>radians</code>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"discrete\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">discrete</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">point2s</span>,\n        <span class=\"sig-arg\">fraction</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">recursive</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the <code>forward, discrete Fr&#233;chet</code> distance.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>point2s</code></strong> - Second set of points (<code>LatLon</code>[], <a \n          href=\"pygeodesy.points.Numpy2LatLon-class.html\" \n          class=\"link\">Numpy2LatLon</a>[], <a \n          href=\"pygeodesy.points.Tuple2LatLon-class.html\" \n          class=\"link\">Tuple2LatLon</a>[] or <code>other</code>[]).</li>\n        <li><strong class=\"pname\"><code>fraction</code></strong> - Index fraction (<code>float</code> in EPS..EPS1) to interpolate \n          intermediate <b><code>point2s</code></b> or use \n          <code>None</code>, <code>0</code> or <code>1</code> for no \n          intermediate <b><code>point2s</code></b> and no <i>fractional</i>\n          indices.</li>\n        <li><strong class=\"pname\"><code>recursive</code></strong> - Use <code>True</code> for backward compatibility \n          (<code>bool</code>) or with <i>fractional</i> indices.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.frechet.Frechet6Tuple-class.html\" \n          class=\"link\">Frechet6Tuple</a><code>(fd, fi1, fi2, r, n, \n          units)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.frechet.FrechetError-class.html\">FrechetError</a></strong></code> - Insufficient number of <b><code>point2s</code></b> or an invalid \n        <b><code>point2</code></b> or <b><code>fraction</code></b> or \n        <code>non-<b>recursive</b></code> and <i>fractional</i>.</li>\n        <li><code><strong class='fraise'>RecursionError</strong></code> - Recursion depth exceeded, see <a \n        href=\"https://docs.Python.org/3/library/sys.html#sys.getrecursionlimit\"\n        target=\"_top\">sys.getrecursionlimit</a>, only with \n        <code><b>recursive</b>=True</code>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.frechet.Frechet-class.html#discrete\">Frechet.discrete</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.frechet.FrechetFlatPolar-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.frechet.FrechetFlatPolar</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.frechet-module.html\">Module&nbsp;frechet</a> ::\n        Class&nbsp;FrechetFlatPolar\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.frechet.FrechetFlatPolar-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class FrechetFlatPolar</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+            \n           |            \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+        \n               |        \n         <a href=\"pygeodesy.frechet.Frechet-class.html\">Frechet</a> --+    \n                   |    \n_FrechetMeterRadians --+\n                       |\n                      <strong class=\"uidshort\">FrechetFlatPolar</strong>\n</pre>\n\n<hr />\n<p>Compute the <code>Frechet</code> distance with function <a \n  href=\"pygeodesy.formy-module.html#flatPolar_\" \n  class=\"link\">flatPolar_</a>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.frechet.FrechetFlatPolar-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">point1s</span>,\n        <span class=\"summary-sig-arg\">**fraction_name__radius_wrap</span>)</span><br />\n      New <a href=\"pygeodesy.frechet.FrechetFlatPolar-class.html\" \n      class=\"link\">FrechetFlatPolar</a> calculator/interpolator.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.frechet.FrechetFlatPolar-class.html#discrete\" class=\"summary-sig-name\">discrete</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">point2s</span>,\n        <span class=\"summary-sig-arg\">fraction</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">recursive</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Compute the <code>forward, discrete Fr&#233;chet</code> distance.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.frechet.Frechet-class.html\">Frechet</a></code></b>:\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#distance\">distance</a></code>,\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#point\">point</a></code>,\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#points_\">points_</a></code>,\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#points_fraction\">points_fraction</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.frechet.Frechet-class.html\">Frechet</a></code></b>:\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#adjust\">adjust</a></code>,\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#datum\">datum</a></code>,\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#fraction\">fraction</a></code>,\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#kwds\">kwds</a></code>,\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#units\">units</a></code>,\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#wrap\">wrap</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">point1s</span>,\n        <span class=\"sig-arg\">**fraction_name__radius_wrap</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.frechet.FrechetFlatPolar-class.html\" \n  class=\"link\">FrechetFlatPolar</a> calculator/interpolator.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>fraction_name__radius_wrap</code></strong> - Optional <code><b>fraction</b>=None</code> and \n          <code><b>name</b>=NN</code> and keyword arguments for function <a\n          href=\"pygeodesy.formy-module.html#flatPolar\" \n          class=\"link\">pygeodesy.flatPolar</a>.</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.frechet.FrechetError-class.html\">FrechetError</a></strong></code> - Insufficient number of <b><code>point1s</code></b> or an invalid \n        <b><code>point1</code></b>, <b><code>fraction</code></b> or \n        <b><code>units</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"pygeodesy.frechet.Frechet-class.html#__init__\" \n        class=\"link\">Frechet.__init__</a> for details about \n        <b><code>point1s</code></b>, <b><code>fraction</code></b>, \n        <b><code>name</code></b> and other exceptions.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"discrete\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">discrete</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">point2s</span>,\n        <span class=\"sig-arg\">fraction</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">recursive</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the <code>forward, discrete Fr&#233;chet</code> distance.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>point2s</code></strong> - Second set of points (<code>LatLon</code>[], <a \n          href=\"pygeodesy.points.Numpy2LatLon-class.html\" \n          class=\"link\">Numpy2LatLon</a>[], <a \n          href=\"pygeodesy.points.Tuple2LatLon-class.html\" \n          class=\"link\">Tuple2LatLon</a>[] or <code>other</code>[]).</li>\n        <li><strong class=\"pname\"><code>fraction</code></strong> - Index fraction (<code>float</code> in EPS..EPS1) to interpolate \n          intermediate <b><code>point2s</code></b> or use \n          <code>None</code>, <code>0</code> or <code>1</code> for no \n          intermediate <b><code>point2s</code></b> and no <i>fractional</i>\n          indices.</li>\n        <li><strong class=\"pname\"><code>recursive</code></strong> - Use <code>True</code> for backward compatibility \n          (<code>bool</code>) or with <i>fractional</i> indices.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.frechet.Frechet6Tuple-class.html\" \n          class=\"link\">Frechet6Tuple</a><code>(fd, fi1, fi2, r, n, \n          units)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.frechet.FrechetError-class.html\">FrechetError</a></strong></code> - Insufficient number of <b><code>point2s</code></b> or an invalid \n        <b><code>point2</code></b> or <b><code>fraction</code></b> or \n        <code>non-<b>recursive</b></code> and <i>fractional</i>.</li>\n        <li><code><strong class='fraise'>RecursionError</strong></code> - Recursion depth exceeded, see <a \n        href=\"https://docs.Python.org/3/library/sys.html#sys.getrecursionlimit\"\n        target=\"_top\">sys.getrecursionlimit</a>, only with \n        <code><b>recursive</b>=True</code>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.frechet.Frechet-class.html#discrete\">Frechet.discrete</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.frechet.FrechetHaversine-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.frechet.FrechetHaversine</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.frechet-module.html\">Module&nbsp;frechet</a> ::\n        Class&nbsp;FrechetHaversine\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.frechet.FrechetHaversine-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class FrechetHaversine</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+            \n           |            \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+        \n               |        \n         <a href=\"pygeodesy.frechet.Frechet-class.html\">Frechet</a> --+    \n                   |    \n_FrechetMeterRadians --+\n                       |\n                      <strong class=\"uidshort\">FrechetHaversine</strong>\n</pre>\n\n<hr />\n<p>Compute the <code>Frechet</code> distance with function <a \n  href=\"pygeodesy.geohash-module.html#haversine_\" \n  class=\"link\">pygeodesy.haversine_</a>.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Note:</strong>\n        See note at function <a \n        href=\"pygeodesy.geohash-module.html#vincentys_\" \n        class=\"link\">pygeodesy.vincentys_</a>.\n      </p>\n</div><!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.frechet.FrechetHaversine-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">point1s</span>,\n        <span class=\"summary-sig-arg\">**fraction_name__radius_wrap</span>)</span><br />\n      New <a href=\"pygeodesy.frechet.FrechetHaversine-class.html\" \n      class=\"link\">FrechetHaversine</a> calculator/interpolator.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.frechet.FrechetHaversine-class.html#discrete\" class=\"summary-sig-name\">discrete</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">point2s</span>,\n        <span class=\"summary-sig-arg\">fraction</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">recursive</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Compute the <code>forward, discrete Fr&#233;chet</code> distance.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.frechet.Frechet-class.html\">Frechet</a></code></b>:\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#distance\">distance</a></code>,\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#point\">point</a></code>,\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#points_\">points_</a></code>,\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#points_fraction\">points_fraction</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.frechet.Frechet-class.html\">Frechet</a></code></b>:\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#adjust\">adjust</a></code>,\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#datum\">datum</a></code>,\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#fraction\">fraction</a></code>,\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#kwds\">kwds</a></code>,\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#units\">units</a></code>,\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#wrap\">wrap</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">point1s</span>,\n        <span class=\"sig-arg\">**fraction_name__radius_wrap</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.frechet.FrechetHaversine-class.html\" \n  class=\"link\">FrechetHaversine</a> calculator/interpolator.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>fraction_name__radius_wrap</code></strong> - Optional <code><b>fraction</b>=None</code> and \n          <code><b>name</b>=NN</code> and keyword arguments for function <a\n          href=\"pygeodesy.formy-module.html#haversine\" \n          class=\"link\">pygeodesy.haversine</a>.</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.frechet.FrechetError-class.html\">FrechetError</a></strong></code> - Insufficient number of <b><code>point1s</code></b> or an invalid \n        <b><code>point1</code></b>, <b><code>fraction</code></b> or \n        <b><code>units</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"pygeodesy.frechet.Frechet-class.html#__init__\" \n        class=\"link\">Frechet.__init__</a> for details about \n        <b><code>point1s</code></b>, <b><code>fraction</code></b>, \n        <b><code>name</code></b> and other exceptions.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"discrete\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">discrete</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">point2s</span>,\n        <span class=\"sig-arg\">fraction</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">recursive</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the <code>forward, discrete Fr&#233;chet</code> distance.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>point2s</code></strong> - Second set of points (<code>LatLon</code>[], <a \n          href=\"pygeodesy.points.Numpy2LatLon-class.html\" \n          class=\"link\">Numpy2LatLon</a>[], <a \n          href=\"pygeodesy.points.Tuple2LatLon-class.html\" \n          class=\"link\">Tuple2LatLon</a>[] or <code>other</code>[]).</li>\n        <li><strong class=\"pname\"><code>fraction</code></strong> - Index fraction (<code>float</code> in EPS..EPS1) to interpolate \n          intermediate <b><code>point2s</code></b> or use \n          <code>None</code>, <code>0</code> or <code>1</code> for no \n          intermediate <b><code>point2s</code></b> and no <i>fractional</i>\n          indices.</li>\n        <li><strong class=\"pname\"><code>recursive</code></strong> - Use <code>True</code> for backward compatibility \n          (<code>bool</code>) or with <i>fractional</i> indices.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.frechet.Frechet6Tuple-class.html\" \n          class=\"link\">Frechet6Tuple</a><code>(fd, fi1, fi2, r, n, \n          units)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.frechet.FrechetError-class.html\">FrechetError</a></strong></code> - Insufficient number of <b><code>point2s</code></b> or an invalid \n        <b><code>point2</code></b> or <b><code>fraction</code></b> or \n        <code>non-<b>recursive</b></code> and <i>fractional</i>.</li>\n        <li><code><strong class='fraise'>RecursionError</strong></code> - Recursion depth exceeded, see <a \n        href=\"https://docs.Python.org/3/library/sys.html#sys.getrecursionlimit\"\n        target=\"_top\">sys.getrecursionlimit</a>, only with \n        <code><b>recursive</b>=True</code>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.frechet.Frechet-class.html#discrete\">Frechet.discrete</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.frechet.FrechetHubeny-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.frechet.FrechetHubeny</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.frechet-module.html\">Module&nbsp;frechet</a> ::\n        Class&nbsp;FrechetHubeny\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.frechet.FrechetHubeny-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class FrechetHubeny</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+                \n           |                \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+            \n               |            \n         <a href=\"pygeodesy.frechet.Frechet-class.html\">Frechet</a> --+        \n                   |        \n_FrechetMeterRadians --+    \n                       |    \n        <a href=\"pygeodesy.frechet.FrechetFlatLocal-class.html\">FrechetFlatLocal</a> --+\n                           |\n                          <strong class=\"uidshort\">FrechetHubeny</strong>\n</pre>\n\n<hr />\n<p>Compute the <code>Frechet</code> distance with function <a \n  href=\"pygeodesy.formy-module.html#flatLocal_\" \n  class=\"link\">pygeodesy.flatLocal_</a>/<a \n  href=\"pygeodesy.formy-module.html#flatLocal\" \n  class=\"link\">pygeodesy.hubeny</a>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.frechet.FrechetHubeny-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">point1s</span>,\n        <span class=\"summary-sig-arg\">**fraction_name__datum_scaled_wrap</span>)</span><br />\n      New <a href=\"pygeodesy.frechet.FrechetFlatLocal-class.html\" \n      class=\"link\">FrechetFlatLocal</a>/<a \n      href=\"pygeodesy.frechet.FrechetHubeny-class.html\" \n      class=\"link\">FrechetHubeny</a> calculator/interpolator.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.frechet.FrechetHubeny-class.html#discrete\" class=\"summary-sig-name\">discrete</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">point2s</span>,\n        <span class=\"summary-sig-arg\">fraction</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">recursive</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Compute the <code>forward, discrete Fr&#233;chet</code> distance.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.frechet.FrechetHubeny-class.html#distance\" class=\"summary-sig-name\">distance</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">point2s</span>,\n        <span class=\"summary-sig-arg\">fraction</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">recursive</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Compute the <code>forward, discrete Fr&#233;chet</code> distance.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.frechet.Frechet-class.html\">Frechet</a></code></b>:\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#point\">point</a></code>,\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#points_\">points_</a></code>,\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#points_fraction\">points_fraction</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS VARIABLES ==================== -->\n<a name=\"section-ClassVariables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Class Variables</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"__doc__\"></a><span class=\"summary-name\">__doc__</span> = <code title=\"FrechetFlatLocal.__doc__\">FrechetFlatLocal.__doc__</code>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.frechet.Frechet-class.html\">Frechet</a></code></b>:\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#adjust\">adjust</a></code>,\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#datum\">datum</a></code>,\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#fraction\">fraction</a></code>,\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#kwds\">kwds</a></code>,\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#units\">units</a></code>,\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#wrap\">wrap</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">point1s</span>,\n        <span class=\"sig-arg\">**fraction_name__datum_scaled_wrap</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.frechet.FrechetFlatLocal-class.html\" \n  class=\"link\">FrechetFlatLocal</a>/<a \n  href=\"pygeodesy.frechet.FrechetHubeny-class.html\" \n  class=\"link\">FrechetHubeny</a> calculator/interpolator.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>fraction_name__datum_scaled_wrap</code></strong> - Optional <code><b>fraction</b>=None</code> and \n          <code><b>name</b>=NN</code> and keyword arguments for function <a\n          href=\"pygeodesy.formy-module.html#flatLocal\" \n          class=\"link\">pygeodesy.flatLocal</a>.</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.frechet.FrechetError-class.html\">FrechetError</a></strong></code> - Insufficient number of <b><code>point1s</code></b> or an invalid \n        <b><code>point1</code></b>, <b><code>fraction</code></b> or \n        <b><code>units</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"pygeodesy.frechet.Frechet-class.html#__init__\" \n        class=\"link\">Frechet.__init__</a> for details about \n        <b><code>point1s</code></b>, <b><code>fraction</code></b>, \n        <b><code>name</code></b> and other exceptions.\n      </p>\n      <p><strong>Note:</strong>\n        The distance <code>units</code> are <code>radians squared</code>, \n        not <code>radians</code>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"discrete\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">discrete</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">point2s</span>,\n        <span class=\"sig-arg\">fraction</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">recursive</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the <code>forward, discrete Fr&#233;chet</code> distance.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>point2s</code></strong> - Second set of points (<code>LatLon</code>[], <a \n          href=\"pygeodesy.points.Numpy2LatLon-class.html\" \n          class=\"link\">Numpy2LatLon</a>[], <a \n          href=\"pygeodesy.points.Tuple2LatLon-class.html\" \n          class=\"link\">Tuple2LatLon</a>[] or <code>other</code>[]).</li>\n        <li><strong class=\"pname\"><code>fraction</code></strong> - Index fraction (<code>float</code> in EPS..EPS1) to interpolate \n          intermediate <b><code>point2s</code></b> or use \n          <code>None</code>, <code>0</code> or <code>1</code> for no \n          intermediate <b><code>point2s</code></b> and no <i>fractional</i>\n          indices.</li>\n        <li><strong class=\"pname\"><code>recursive</code></strong> - Use <code>True</code> for backward compatibility \n          (<code>bool</code>) or with <i>fractional</i> indices.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.frechet.Frechet6Tuple-class.html\" \n          class=\"link\">Frechet6Tuple</a><code>(fd, fi1, fi2, r, n, \n          units)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.frechet.FrechetError-class.html\">FrechetError</a></strong></code> - Insufficient number of <b><code>point2s</code></b> or an invalid \n        <b><code>point2</code></b> or <b><code>fraction</code></b> or \n        <code>non-<b>recursive</b></code> and <i>fractional</i>.</li>\n        <li><code><strong class='fraise'>RecursionError</strong></code> - Recursion depth exceeded, see <a \n        href=\"https://docs.Python.org/3/library/sys.html#sys.getrecursionlimit\"\n        target=\"_top\">sys.getrecursionlimit</a>, only with \n        <code><b>recursive</b>=True</code>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.frechet.Frechet-class.html#discrete\">Frechet.discrete</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"distance\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">distance</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">point2s</span>,\n        <span class=\"sig-arg\">fraction</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">recursive</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the <code>forward, discrete Fr&#233;chet</code> distance.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>point2s</code></strong> - Second set of points (<code>LatLon</code>[], <a \n          href=\"pygeodesy.points.Numpy2LatLon-class.html\" \n          class=\"link\">Numpy2LatLon</a>[], <a \n          href=\"pygeodesy.points.Tuple2LatLon-class.html\" \n          class=\"link\">Tuple2LatLon</a>[] or <code>other</code>[]).</li>\n        <li><strong class=\"pname\"><code>fraction</code></strong> - Index fraction (<code>float</code> in EPS..EPS1) to interpolate \n          intermediate <b><code>point2s</code></b> or use \n          <code>None</code>, <code>0</code> or <code>1</code> for no \n          intermediate <b><code>point2s</code></b> and no <i>fractional</i>\n          indices.</li>\n        <li><strong class=\"pname\"><code>recursive</code></strong> - Use <code>True</code> for backward compatibility \n          (<code>bool</code>) or with <i>fractional</i> indices.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.frechet.Frechet6Tuple-class.html\" \n          class=\"link\">Frechet6Tuple</a><code>(fd, fi1, fi2, r, n, \n          units)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.frechet.FrechetError-class.html\">FrechetError</a></strong></code> - Insufficient number of <b><code>point2s</code></b> or an invalid \n        <b><code>point2</code></b> or <b><code>fraction</code></b> or \n        <code>non-<b>recursive</b></code> and <i>fractional</i>.</li>\n        <li><code><strong class='fraise'>RecursionError</strong></code> - Recursion depth exceeded, see <a \n        href=\"https://docs.Python.org/3/library/sys.html#sys.getrecursionlimit\"\n        target=\"_top\">sys.getrecursionlimit</a>, only with \n        <code><b>recursive</b>=True</code>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.frechet.Frechet-class.html#distance\">Frechet.distance</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.frechet.FrechetKarney-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.frechet.FrechetKarney</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.frechet-module.html\">Module&nbsp;frechet</a> ::\n        Class&nbsp;FrechetKarney\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.frechet.FrechetKarney-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class FrechetKarney</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+        \n           |        \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n               |    \n         <a href=\"pygeodesy.frechet.Frechet-class.html\">Frechet</a> --+\n                   |\n                  <strong class=\"uidshort\">FrechetKarney</strong>\n</pre>\n\n<hr />\n<p>Compute the <code>Frechet</code> distance with <i>Karney</i>'s <a \n  href=\"https://PyPI.org/project/geographiclib\" \n  target=\"_top\">geographiclib</a> <a \n  href=\"https://GeographicLib.SourceForge.io/Python/doc/code.html\" \n  target=\"_top\">geodesic.Geodesic</a><code>.Inverse</code> method.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.frechet.FrechetKarney-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">point1s</span>,\n        <span class=\"summary-sig-arg\">datum</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**fraction_name__wrap</span>)</span><br />\n      New <a href=\"pygeodesy.frechet.FrechetKarney-class.html\" \n      class=\"link\">FrechetKarney</a> calculator/interpolator.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.frechet.FrechetKarney-class.html#discrete\" class=\"summary-sig-name\">discrete</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">point2s</span>,\n        <span class=\"summary-sig-arg\">fraction</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">recursive</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Compute the <code>forward, discrete Fr&#233;chet</code> distance.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.frechet.Frechet-class.html\">Frechet</a></code></b>:\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#distance\">distance</a></code>,\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#point\">point</a></code>,\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#points_\">points_</a></code>,\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#points_fraction\">points_fraction</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.frechet.Frechet-class.html\">Frechet</a></code></b>:\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#adjust\">adjust</a></code>,\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#datum\">datum</a></code>,\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#fraction\">fraction</a></code>,\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#kwds\">kwds</a></code>,\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#units\">units</a></code>,\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#wrap\">wrap</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">point1s</span>,\n        <span class=\"sig-arg\">datum</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**fraction_name__wrap</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.frechet.FrechetKarney-class.html\" \n  class=\"link\">FrechetKarney</a> calculator/interpolator.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>datum</code></strong> - Datum to override the default <code>Datums.WGS84</code> and first\n          <b><code>knots</code></b>' datum (<a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>, \n          <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a> or <a \n          href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>fraction_name__wrap</code></strong> - Optional <code><b>fraction</b>=None</code> and \n          <code><b>name</b>=NN</code> and keyword arguments for method \n          <code>Inverse1</code> of class <a \n          href=\"pygeodesy.geodesicw.Geodesic-class.html\" \n          class=\"link\">geodesicw.Geodesic</a>.</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ImportError</strong></code> - Package <a href=\"https://PyPI.org/project/geographiclib\" \n        target=\"_top\">geographiclib</a> missing.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>datum</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"pygeodesy.frechet.Frechet-class.html#__init__\" \n        class=\"link\">Frechet.__init__</a> for details about \n        <b><code>point1s</code></b>, <b><code>fraction</code></b>, \n        <b><code>name</code></b> and other exceptions.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"discrete\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">discrete</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">point2s</span>,\n        <span class=\"sig-arg\">fraction</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">recursive</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the <code>forward, discrete Fr&#233;chet</code> distance.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>point2s</code></strong> - Second set of points (<code>LatLon</code>[], <a \n          href=\"pygeodesy.points.Numpy2LatLon-class.html\" \n          class=\"link\">Numpy2LatLon</a>[], <a \n          href=\"pygeodesy.points.Tuple2LatLon-class.html\" \n          class=\"link\">Tuple2LatLon</a>[] or <code>other</code>[]).</li>\n        <li><strong class=\"pname\"><code>fraction</code></strong> - Index fraction (<code>float</code> in EPS..EPS1) to interpolate \n          intermediate <b><code>point2s</code></b> or use \n          <code>None</code>, <code>0</code> or <code>1</code> for no \n          intermediate <b><code>point2s</code></b> and no <i>fractional</i>\n          indices.</li>\n        <li><strong class=\"pname\"><code>recursive</code></strong> - Use <code>True</code> for backward compatibility \n          (<code>bool</code>) or with <i>fractional</i> indices.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.frechet.Frechet6Tuple-class.html\" \n          class=\"link\">Frechet6Tuple</a><code>(fd, fi1, fi2, r, n, \n          units)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.frechet.FrechetError-class.html\">FrechetError</a></strong></code> - Insufficient number of <b><code>point2s</code></b> or an invalid \n        <b><code>point2</code></b> or <b><code>fraction</code></b> or \n        <code>non-<b>recursive</b></code> and <i>fractional</i>.</li>\n        <li><code><strong class='fraise'>RecursionError</strong></code> - Recursion depth exceeded, see <a \n        href=\"https://docs.Python.org/3/library/sys.html#sys.getrecursionlimit\"\n        target=\"_top\">sys.getrecursionlimit</a>, only with \n        <code><b>recursive</b>=True</code>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.frechet.Frechet-class.html#discrete\">Frechet.discrete</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.frechet.FrechetRadians-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.frechet.FrechetRadians</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.frechet-module.html\">Module&nbsp;frechet</a> ::\n        Class&nbsp;FrechetRadians\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.frechet.FrechetRadians-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class FrechetRadians</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+        \n           |        \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n               |    \n         <a href=\"pygeodesy.frechet.Frechet-class.html\">Frechet</a> --+\n                   |\n                  <strong class=\"uidshort\">FrechetRadians</strong>\n</pre>\n\n<hr />\n<p>DEPRECATED, use an other <code>Frechet*</code> class.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.frechet.FrechetRadians-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">point1s</span>,\n        <span class=\"summary-sig-arg\">fraction</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">units</span>=<span class=\"summary-sig-default\">''</span>,\n        <span class=\"summary-sig-arg\">**name__kwds</span>)</span><br />\n      New <code>Frechet...</code> calculator/interpolator.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.frechet.FrechetRadians-class.html#discrete\" class=\"summary-sig-name\">discrete</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">point2s</span>,\n        <span class=\"summary-sig-arg\">fraction</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">recursive</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Compute the <code>forward, discrete Fr&#233;chet</code> distance.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.frechet.FrechetRadians-class.html#distance\" class=\"summary-sig-name\">distance</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">point1</span>,\n        <span class=\"summary-sig-arg\">point2</span>,\n        <span class=\"summary-sig-arg\">*args</span>,\n        <span class=\"summary-sig-arg\">**kwds</span>)</span><br />\n      <i>Must be overloaded</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.frechet.FrechetRadians-class.html#point\" class=\"summary-sig-name\">point</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">point</span>)</span><br />\n      Return <b><code>point</code></b> as <a \n      href=\"pygeodesy.namedTuples.PhiLam2Tuple-class.html\" \n      class=\"link\">PhiLam2Tuple</a> to maintain <i>backward \n      compatibility</i> of <a \n      href=\"pygeodesy.frechet.FrechetRadians-class.html\" \n      class=\"link\">FrechetRadians</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.frechet.Frechet-class.html\">Frechet</a></code></b>:\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#points_\">points_</a></code>,\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#points_fraction\">points_fraction</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.frechet.Frechet-class.html\">Frechet</a></code></b>:\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#adjust\">adjust</a></code>,\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#datum\">datum</a></code>,\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#fraction\">fraction</a></code>,\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#kwds\">kwds</a></code>,\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#units\">units</a></code>,\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#wrap\">wrap</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">point1s</span>,\n        <span class=\"sig-arg\">fraction</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">units</span>=<span class=\"sig-default\">''</span>,\n        <span class=\"sig-arg\">**name__kwds</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <code>Frechet...</code> calculator/interpolator.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>point1s</code></strong> - First set of points (<code>LatLon</code>[], <a \n          href=\"pygeodesy.points.Numpy2LatLon-class.html\" \n          class=\"link\">Numpy2LatLon</a>[], <a \n          href=\"pygeodesy.points.Tuple2LatLon-class.html\" \n          class=\"link\">Tuple2LatLon</a>[] or <code>other</code>[]).</li>\n        <li><strong class=\"pname\"><code>fraction</code></strong> - Index fraction (<code>float</code> in EPS..EPS1) to interpolate \n          intermediate <b><code>point1s</code></b> or use \n          <code>None</code>, <code>0</code> or <code>1</code> for no \n          intermediate <b><code>point1s</code></b> and no <i>fractional</i>\n          indices.</li>\n        <li><strong class=\"pname\"><code>units</code></strong> - Optional distance units (<code>Unit</code> or <code>str</code>).</li>\n        <li><strong class=\"pname\"><code>name__kwds</code></strong> - Optional <code><b>name</b>=NN</code> for this \n          calculator/interpolator (<code>str</code>) and any keyword \n          arguments for the distance function, retrievable with property \n          <code>kwds</code>.</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.frechet.FrechetError-class.html\">FrechetError</a></strong></code> - Insufficient number of <b><code>point1s</code></b> or an invalid \n        <b><code>point1</code></b>, <b><code>fraction</code></b> or \n        <b><code>units</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"discrete\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">discrete</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">point2s</span>,\n        <span class=\"sig-arg\">fraction</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">recursive</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the <code>forward, discrete Fr&#233;chet</code> distance.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>point2s</code></strong> - Second set of points (<code>LatLon</code>[], <a \n          href=\"pygeodesy.points.Numpy2LatLon-class.html\" \n          class=\"link\">Numpy2LatLon</a>[], <a \n          href=\"pygeodesy.points.Tuple2LatLon-class.html\" \n          class=\"link\">Tuple2LatLon</a>[] or <code>other</code>[]).</li>\n        <li><strong class=\"pname\"><code>fraction</code></strong> - Index fraction (<code>float</code> in EPS..EPS1) to interpolate \n          intermediate <b><code>point2s</code></b> or use \n          <code>None</code>, <code>0</code> or <code>1</code> for no \n          intermediate <b><code>point2s</code></b> and no <i>fractional</i>\n          indices.</li>\n        <li><strong class=\"pname\"><code>recursive</code></strong> - Use <code>True</code> for backward compatibility \n          (<code>bool</code>) or with <i>fractional</i> indices.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.frechet.Frechet6Tuple-class.html\" \n          class=\"link\">Frechet6Tuple</a><code>(fd, fi1, fi2, r, n, \n          units)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.frechet.FrechetError-class.html\">FrechetError</a></strong></code> - Insufficient number of <b><code>point2s</code></b> or an invalid \n        <b><code>point2</code></b> or <b><code>fraction</code></b> or \n        <code>non-<b>recursive</b></code> and <i>fractional</i>.</li>\n        <li><code><strong class='fraise'>RecursionError</strong></code> - Recursion depth exceeded, see <a \n        href=\"https://docs.Python.org/3/library/sys.html#sys.getrecursionlimit\"\n        target=\"_top\">sys.getrecursionlimit</a>, only with \n        <code><b>recursive</b>=True</code>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.frechet.Frechet-class.html#discrete\">Frechet.discrete</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"distance\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">distance</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">point1</span>,\n        <span class=\"sig-arg\">point2</span>,\n        <span class=\"sig-arg\">*args</span>,\n        <span class=\"sig-arg\">**kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p><i>Must be overloaded</i>.</p>\n  <dl class=\"fields\">\n    <dt>Overrides:\n        <a href=\"pygeodesy.frechet.Frechet-class.html#distance\">Frechet.distance</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"point\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">point</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">point</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return <b><code>point</code></b> as <a \n  href=\"pygeodesy.namedTuples.PhiLam2Tuple-class.html\" \n  class=\"link\">PhiLam2Tuple</a> to maintain <i>backward compatibility</i> \n  of <a href=\"pygeodesy.frechet.FrechetRadians-class.html\" \n  class=\"link\">FrechetRadians</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>point</code></strong> - The point to convert ((<code>LatLon</code>, <a \n          href=\"pygeodesy.points.Numpy2LatLon-class.html\" \n          class=\"link\">Numpy2LatLon</a>, <a \n          href=\"pygeodesy.points.Tuple2LatLon-class.html\" \n          class=\"link\">Tuple2LatLon</a> or <code>other</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.namedTuples.PhiLam2Tuple-class.html\" \n          class=\"link\">PhiLam2Tuple</a><code>(phi, lam)</code>.</dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.frechet.Frechet-class.html#point\">Frechet.point</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.frechet.FrechetThomas-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.frechet.FrechetThomas</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.frechet-module.html\">Module&nbsp;frechet</a> ::\n        Class&nbsp;FrechetThomas\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.frechet.FrechetThomas-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class FrechetThomas</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+            \n           |            \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+        \n               |        \n         <a href=\"pygeodesy.frechet.Frechet-class.html\">Frechet</a> --+    \n                   |    \n_FrechetMeterRadians --+\n                       |\n                      <strong class=\"uidshort\">FrechetThomas</strong>\n</pre>\n\n<hr />\n<p>Compute the <code>Frechet</code> distance with function <a \n  href=\"pygeodesy.formy-module.html#thomas_\" \n  class=\"link\">pygeodesy.thomas_</a>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.frechet.FrechetThomas-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">point1s</span>,\n        <span class=\"summary-sig-arg\">**fraction_name__datum_wrap</span>)</span><br />\n      New <a href=\"pygeodesy.frechet.FrechetThomas-class.html\" \n      class=\"link\">FrechetThomas</a> calculator/interpolator.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.frechet.FrechetThomas-class.html#discrete\" class=\"summary-sig-name\">discrete</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">point2s</span>,\n        <span class=\"summary-sig-arg\">fraction</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">recursive</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Compute the <code>forward, discrete Fr&#233;chet</code> distance.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.frechet.Frechet-class.html\">Frechet</a></code></b>:\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#distance\">distance</a></code>,\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#point\">point</a></code>,\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#points_\">points_</a></code>,\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#points_fraction\">points_fraction</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.frechet.Frechet-class.html\">Frechet</a></code></b>:\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#adjust\">adjust</a></code>,\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#datum\">datum</a></code>,\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#fraction\">fraction</a></code>,\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#kwds\">kwds</a></code>,\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#units\">units</a></code>,\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#wrap\">wrap</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">point1s</span>,\n        <span class=\"sig-arg\">**fraction_name__datum_wrap</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.frechet.FrechetThomas-class.html\" \n  class=\"link\">FrechetThomas</a> calculator/interpolator.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>fraction_name__datum_wrap</code></strong> - Optional <code><b>fraction</b>=None</code> and \n          <code><b>name</b>=NN</code> and keyword arguments for function <a\n          href=\"pygeodesy.formy-module.html#thomas\" \n          class=\"link\">pygeodesy.thomas</a>.</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.frechet.FrechetError-class.html\">FrechetError</a></strong></code> - Insufficient number of <b><code>point1s</code></b> or an invalid \n        <b><code>point1</code></b>, <b><code>fraction</code></b> or \n        <b><code>units</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"pygeodesy.frechet.Frechet-class.html#__init__\" \n        class=\"link\">Frechet.__init__</a> for details about \n        <b><code>point1s</code></b>, <b><code>fraction</code></b>, \n        <b><code>name</code></b> and other exceptions.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"discrete\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">discrete</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">point2s</span>,\n        <span class=\"sig-arg\">fraction</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">recursive</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the <code>forward, discrete Fr&#233;chet</code> distance.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>point2s</code></strong> - Second set of points (<code>LatLon</code>[], <a \n          href=\"pygeodesy.points.Numpy2LatLon-class.html\" \n          class=\"link\">Numpy2LatLon</a>[], <a \n          href=\"pygeodesy.points.Tuple2LatLon-class.html\" \n          class=\"link\">Tuple2LatLon</a>[] or <code>other</code>[]).</li>\n        <li><strong class=\"pname\"><code>fraction</code></strong> - Index fraction (<code>float</code> in EPS..EPS1) to interpolate \n          intermediate <b><code>point2s</code></b> or use \n          <code>None</code>, <code>0</code> or <code>1</code> for no \n          intermediate <b><code>point2s</code></b> and no <i>fractional</i>\n          indices.</li>\n        <li><strong class=\"pname\"><code>recursive</code></strong> - Use <code>True</code> for backward compatibility \n          (<code>bool</code>) or with <i>fractional</i> indices.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.frechet.Frechet6Tuple-class.html\" \n          class=\"link\">Frechet6Tuple</a><code>(fd, fi1, fi2, r, n, \n          units)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.frechet.FrechetError-class.html\">FrechetError</a></strong></code> - Insufficient number of <b><code>point2s</code></b> or an invalid \n        <b><code>point2</code></b> or <b><code>fraction</code></b> or \n        <code>non-<b>recursive</b></code> and <i>fractional</i>.</li>\n        <li><code><strong class='fraise'>RecursionError</strong></code> - Recursion depth exceeded, see <a \n        href=\"https://docs.Python.org/3/library/sys.html#sys.getrecursionlimit\"\n        target=\"_top\">sys.getrecursionlimit</a>, only with \n        <code><b>recursive</b>=True</code>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.frechet.Frechet-class.html#discrete\">Frechet.discrete</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.frechet.FrechetVincentys-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.frechet.FrechetVincentys</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.frechet-module.html\">Module&nbsp;frechet</a> ::\n        Class&nbsp;FrechetVincentys\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.frechet.FrechetVincentys-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class FrechetVincentys</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+            \n           |            \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+        \n               |        \n         <a href=\"pygeodesy.frechet.Frechet-class.html\">Frechet</a> --+    \n                   |    \n_FrechetMeterRadians --+\n                       |\n                      <strong class=\"uidshort\">FrechetVincentys</strong>\n</pre>\n\n<hr />\n<p>Compute the <code>Frechet</code> distance with function <a \n  href=\"pygeodesy.geohash-module.html#vincentys_\" \n  class=\"link\">pygeodesy.vincentys_</a>.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Note:</strong>\n        See note at function <a \n        href=\"pygeodesy.geohash-module.html#vincentys_\" \n        class=\"link\">pygeodesy.vincentys_</a>.\n      </p>\n</div><!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.frechet.FrechetVincentys-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">point1s</span>,\n        <span class=\"summary-sig-arg\">**fraction_name__radius_wrap</span>)</span><br />\n      New <a href=\"pygeodesy.frechet.FrechetVincentys-class.html\" \n      class=\"link\">FrechetVincentys</a> calculator/interpolator.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.frechet.FrechetVincentys-class.html#discrete\" class=\"summary-sig-name\">discrete</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">point2s</span>,\n        <span class=\"summary-sig-arg\">fraction</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">recursive</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Compute the <code>forward, discrete Fr&#233;chet</code> distance.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.frechet.Frechet-class.html\">Frechet</a></code></b>:\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#distance\">distance</a></code>,\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#point\">point</a></code>,\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#points_\">points_</a></code>,\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#points_fraction\">points_fraction</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.frechet.Frechet-class.html\">Frechet</a></code></b>:\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#adjust\">adjust</a></code>,\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#datum\">datum</a></code>,\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#fraction\">fraction</a></code>,\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#kwds\">kwds</a></code>,\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#units\">units</a></code>,\n      <code><a href=\"pygeodesy.frechet.Frechet-class.html#wrap\">wrap</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">point1s</span>,\n        <span class=\"sig-arg\">**fraction_name__radius_wrap</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.frechet.FrechetVincentys-class.html\" \n  class=\"link\">FrechetVincentys</a> calculator/interpolator.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>fraction_name__radius_wrap</code></strong> - Optional <code><b>fraction</b>=None</code> and \n          <code><b>name</b>=NN</code> and keyword arguments for function <a\n          href=\"pygeodesy.formy-module.html#vincentys\" \n          class=\"link\">pygeodesy.vincentys</a>.</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.frechet.FrechetError-class.html\">FrechetError</a></strong></code> - Insufficient number of <b><code>point1s</code></b> or an invalid \n        <b><code>point1</code></b>, <b><code>fraction</code></b> or \n        <b><code>units</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"pygeodesy.frechet.Frechet-class.html#__init__\" \n        class=\"link\">Frechet.__init__</a> for details about \n        <b><code>point1s</code></b>, <b><code>fraction</code></b>, \n        <b><code>name</code></b> and other exceptions.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"discrete\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">discrete</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">point2s</span>,\n        <span class=\"sig-arg\">fraction</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">recursive</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the <code>forward, discrete Fr&#233;chet</code> distance.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>point2s</code></strong> - Second set of points (<code>LatLon</code>[], <a \n          href=\"pygeodesy.points.Numpy2LatLon-class.html\" \n          class=\"link\">Numpy2LatLon</a>[], <a \n          href=\"pygeodesy.points.Tuple2LatLon-class.html\" \n          class=\"link\">Tuple2LatLon</a>[] or <code>other</code>[]).</li>\n        <li><strong class=\"pname\"><code>fraction</code></strong> - Index fraction (<code>float</code> in EPS..EPS1) to interpolate \n          intermediate <b><code>point2s</code></b> or use \n          <code>None</code>, <code>0</code> or <code>1</code> for no \n          intermediate <b><code>point2s</code></b> and no <i>fractional</i>\n          indices.</li>\n        <li><strong class=\"pname\"><code>recursive</code></strong> - Use <code>True</code> for backward compatibility \n          (<code>bool</code>) or with <i>fractional</i> indices.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.frechet.Frechet6Tuple-class.html\" \n          class=\"link\">Frechet6Tuple</a><code>(fd, fi1, fi2, r, n, \n          units)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.frechet.FrechetError-class.html\">FrechetError</a></strong></code> - Insufficient number of <b><code>point2s</code></b> or an invalid \n        <b><code>point2</code></b> or <b><code>fraction</code></b> or \n        <code>non-<b>recursive</b></code> and <i>fractional</i>.</li>\n        <li><code><strong class='fraise'>RecursionError</strong></code> - Recursion depth exceeded, see <a \n        href=\"https://docs.Python.org/3/library/sys.html#sys.getrecursionlimit\"\n        target=\"_top\">sys.getrecursionlimit</a>, only with \n        <code><b>recursive</b>=True</code>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.frechet.Frechet-class.html#discrete\">Frechet.discrete</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.fstats-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.fstats</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        Module&nbsp;fstats\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.fstats-module.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== MODULE DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Module fstats</h1><p class=\"nomargin-top\"></p>\n<p>Classes for <i>running</i> statistics and regressions based on <a \n  href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">pygeodesy.Fsum</a>, \n  precision floating point summation and accurate multiplication.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Version:</strong>\n        25.05.12\n      </p>\n</div><!-- ==================== CLASSES ==================== -->\n<a name=\"section-Classes\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Classes</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.fstats._FstatsNamed-class.html\" class=\"summary-name\">_FstatsNamed</a><br />\n      (INTERNAL) Base class.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.fstats._FstatsBase-class.html\" class=\"summary-name\">_FstatsBase</a><br />\n      (INTERNAL) Base running stats class.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.fstats.Fcook-class.html\" class=\"summary-name\">Fcook</a><br />\n      <a href=\"https://www.JohnDCook.com/blog/skewness_kurtosis\" \n        target=\"_top\">Cook</a>'s <code>RunningStats</code> computing the \n        running mean, median and (sample) kurtosis, skewness, variance, \n        standard deviation and Jarque-Bera normality.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.fstats.Fwelford-class.html\" class=\"summary-name\">Fwelford</a><br />\n      <a \n        href=\"https://WikiPedia.org/wiki/Algorithms_for_calculating_variance\"\n        target=\"_top\">Welford</a>'s accumulator computing the running mean,\n        (sample) variance and standard deviation.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.fstats.Flinear-class.html\" class=\"summary-name\">Flinear</a><br />\n      <a href=\"https://www.JohnDCook.com/blog/running_regression\" \n        target=\"_top\">Cook</a>'s <code>RunningRegression</code> computing \n        the running slope, intercept and correlation of a linear \n        regression.\n    </td>\n  </tr>\n</table>\n<!-- ==================== VARIABLES ==================== -->\n<a name=\"section-Variables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Variables</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"__all__\"></a><span class=\"summary-name\">__all__</span> = <code title=\"_ALL_LAZY.fstats\">_ALL_LAZY.fstats</code>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.fstats.Fcook-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.fstats.Fcook</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.fstats-module.html\">Module&nbsp;fstats</a> ::\n        Class&nbsp;Fcook\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.fstats.Fcook-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Fcook</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+            \n           |            \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+        \n               |        \n    <a href=\"pygeodesy.fstats._FstatsNamed-class.html\">_FstatsNamed</a> --+    \n                   |    \n         <a href=\"pygeodesy.fstats._FstatsBase-class.html\">_FstatsBase</a> --+\n                       |\n                      <strong class=\"uidshort\">Fcook</strong>\n</pre>\n\n<hr />\n<p><a href=\"https://www.JohnDCook.com/blog/skewness_kurtosis\" \n  target=\"_top\">Cook</a>'s <code>RunningStats</code> computing the running \n  mean, median and (sample) kurtosis, skewness, variance, standard \n  deviation and Jarque-Bera normality.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"pygeodesy.fstats.Fwelford-class.html\" \n        class=\"link\">Fwelford</a> and <a \n        href=\"https://WikiPedia.org/wiki/Algorithms_for_calculating_variance\"\n        target=\"_top\">Higher-order statistics</a>.\n      </p>\n</div><!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fstats.Fcook-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">xs</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      New <a href=\"pygeodesy.fstats.Fcook-class.html\" \n      class=\"link\">Fcook</a> stats accumulator.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fstats.Fcook-class.html#__iadd__\" class=\"summary-sig-name\">__iadd__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span><br />\n      Add <b><code>other</code></b> to this <a \n      href=\"pygeodesy.fstats.Fcook-class.html\" class=\"link\">Fcook</a> \n      instance.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fstats.Fcook-class.html#fadd\" class=\"summary-sig-name\">fadd</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">xs</span>,\n        <span class=\"summary-sig-arg\">sample</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Accumulate and return the current count.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fstats.Fcook-class.html#fjb\" class=\"summary-sig-name\">fjb</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">xs</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">excess</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">sample</span>=<span class=\"summary-sig-default\">True</span>)</span><br />\n      Accumulate and compute the current <a \n      href=\"https://WikiPedia.org/wiki/Jarque&#8211;Bera_test\" \n      target=\"_top\">Jarque-Bera</a> normality.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fstats.Fcook-class.html#fjb_\" class=\"summary-sig-name\">fjb_</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">*xs</span>,\n        <span class=\"summary-sig-arg\">**sample_excess</span>)</span><br />\n      Accumulate and compute the current <a \n      href=\"https://WikiPedia.org/wiki/Jarque&#8211;Bera_test\" \n      target=\"_top\">Jarque-Bera</a> normality.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fstats.Fcook-class.html#fkurtosis\" class=\"summary-sig-name\">fkurtosis</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">xs</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">excess</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">**sample</span>)</span><br />\n      Accumulate and return the current kurtosis.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fstats.Fcook-class.html#fkurtosis_\" class=\"summary-sig-name\">fkurtosis_</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">*xs</span>,\n        <span class=\"summary-sig-arg\">**excess_sample</span>)</span><br />\n      Accumulate and return the current kurtosis.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fstats.Fcook-class.html#fmedian\" class=\"summary-sig-name\">fmedian</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">xs</span>=<span class=\"summary-sig-default\">None</span>)</span><br />\n      Accumulate and return the current median.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fstats.Fcook-class.html#fmedian_\" class=\"summary-sig-name\">fmedian_</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">*xs</span>)</span><br />\n      Accumulate and return the current median.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fstats.Fcook-class.html#fskewness\" class=\"summary-sig-name\">fskewness</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">xs</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**sample</span>)</span><br />\n      Accumulate and return the current skewness.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fstats.Fcook-class.html#fskewness_\" class=\"summary-sig-name\">fskewness_</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">*xs</span>,\n        <span class=\"summary-sig-arg\">**sample</span>)</span><br />\n      Accumulate and return the current skewness.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fstats.Fcook-class.html#toFwelford\" class=\"summary-sig-name\">toFwelford</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Return a <a href=\"pygeodesy.fstats.Fwelford-class.html\" \n      class=\"link\">Fwelford</a> equivalent.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.fstats._FstatsBase-class.html\">_FstatsBase</a></code></b>:\n      <code><a href=\"pygeodesy.fstats._FstatsBase-class.html#fadd_\">fadd_</a></code>,\n      <code><a href=\"pygeodesy.fstats._FstatsBase-class.html#fmean\">fmean</a></code>,\n      <code><a href=\"pygeodesy.fstats._FstatsBase-class.html#fmean_\">fmean_</a></code>,\n      <code><a href=\"pygeodesy.fstats._FstatsBase-class.html#fstdev\">fstdev</a></code>,\n      <code><a href=\"pygeodesy.fstats._FstatsBase-class.html#fstdev_\">fstdev_</a></code>,\n      <code><a href=\"pygeodesy.fstats._FstatsBase-class.html#fvariance\">fvariance</a></code>,\n      <code><a href=\"pygeodesy.fstats._FstatsBase-class.html#fvariance_\">fvariance_</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.fstats._FstatsNamed-class.html\">_FstatsNamed</a></code></b>:\n      <code><a href=\"pygeodesy.fstats._FstatsNamed-class.html#__add__\">__add__</a></code>,\n      <code><a href=\"pygeodesy.fstats._FstatsNamed-class.html#__float__\">__float__</a></code>,\n      <code><a href=\"pygeodesy.fstats._FstatsNamed-class.html#__int__\">__int__</a></code>,\n      <code><a href=\"pygeodesy.fstats._FstatsNamed-class.html#__len__\">__len__</a></code>,\n      <code><a href=\"pygeodesy.fstats._FstatsNamed-class.html#__neg__\">__neg__</a></code>,\n      <code><a href=\"pygeodesy.fstats._FstatsNamed-class.html#__radd__\">__radd__</a></code>,\n      <code><a href=\"pygeodesy.fstats._FstatsNamed-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.fstats._FstatsNamed-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.fstats._FstatsNamed-class.html#fcopy\">fcopy</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">xs</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.fstats.Fcook-class.html\" class=\"link\">Fcook</a>\n  stats accumulator.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>xs</code></strong> - Iterable of additional values (each <code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <a href=\"pygeodesy.fstats.Fcook-class.html#fadd\" \n        class=\"link\">Fcook.fadd</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"__iadd__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__iadd__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Add <b><code>other</code></b> to this <a \n  href=\"pygeodesy.fstats.Fcook-class.html\" class=\"link\">Fcook</a> \n  instance.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>other</code></strong> - An <a href=\"pygeodesy.fstats.Fcook-class.html\" \n          class=\"link\">Fcook</a> instance or value or iterable of values \n          (each <code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>This instance, updated (<a \n          href=\"pygeodesy.fstats.Fcook-class.html\" class=\"link\">Fcook</a>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>other</code></b>.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid or non-finite <b><code>other</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <a href=\"pygeodesy.fstats.Fcook-class.html#fadd\" \n        class=\"link\">Fcook.fadd</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"fadd\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">fadd</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">xs</span>,\n        <span class=\"sig-arg\">sample</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Accumulate and return the current count.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>xs</code></strong> - Iterable of additional values (each <code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>sample</code></strong> - Use <code><b>sample</b>=True</code> for the <i>sample</i> count \n          instead of the <i>population</i> count (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Current, running (sample) count (<code>int</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>OverflowError</strong></code> - Partial <code>2sum</code> overflow.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>xs</code></b>.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid or non-finite <b><code>xs</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.fstats._FstatsBase-class.html#fadd\">_FstatsBase.fadd</a>\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a \n        href=\"https://WikiPedia.org/wiki/Algorithms_for_calculating_variance\"\n        target=\"_top\">online_kurtosis</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"fjb\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">fjb</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">xs</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">excess</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">sample</span>=<span class=\"sig-default\">True</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Accumulate and compute the current <a \n  href=\"https://WikiPedia.org/wiki/Jarque&#8211;Bera_test\" \n  target=\"_top\">Jarque-Bera</a> normality.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>xs</code></strong> - Iterable of additional values (each <code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>excess</code></strong> - Apply the <i>excess</i> kurtosis (<code>bool</code>), default.</li>\n        <li><strong class=\"pname\"><code>sample</code></strong> - Use <code><b>sample</b>=False</code> for the <i>population</i> \n          normality instead of the <i>sample</i> one (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Current, running (sample) Jarque-Bera normality \n          (<code>float</code>).</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <a href=\"pygeodesy.fstats.Fcook-class.html#fadd\" \n        class=\"link\">Fcook.fadd</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"fjb_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">fjb_</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">*xs</span>,\n        <span class=\"sig-arg\">**sample_excess</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Accumulate and compute the current <a \n  href=\"https://WikiPedia.org/wiki/Jarque&#8211;Bera_test\" \n  target=\"_top\">Jarque-Bera</a> normality.</p>\n  <dl class=\"fields\">\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <a href=\"pygeodesy.fstats.Fcook-class.html#fjb\" \n        class=\"link\">Fcook.fjb</a> for further details.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"fkurtosis\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">fkurtosis</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">xs</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">excess</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">**sample</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Accumulate and return the current kurtosis.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>xs</code></strong> - Iterable of additional values (each <code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>excess</code></strong> - Return the <i>excess</i> kurtosis (<code>bool</code>), default.</li>\n        <li><strong class=\"pname\"><code>sample</code></strong> - Use <code><b>sample</b>=True</code> for the <i>sample</i> \n          kurtosis instead of the <i>population</i> kurtosis \n          (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Current, running (sample) kurtosis or <i>excess</i> kurtosis \n          (<code>float</code>).</dd>\n  </dl>\n<div class=\"fields\">      <dl><dt>See Also:</dt>\n        <dd>\n          <a href=\"https://www.Macroption.com/kurtosis-formula\" \n          target=\"_top\">Kurtosis Formula</a> and <a \n          href=\"https://www.ResearchGate.net/publication/227440210\" \n          target=\"_top\">Mantalos</a>.,\n          Method <a href=\"pygeodesy.fstats.Fcook-class.html#fadd\" \n          class=\"link\">Fcook.fadd</a>.\n        </dd>\n      </dl>\n</div></td></tr></table>\n</div>\n<a name=\"fkurtosis_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">fkurtosis_</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">*xs</span>,\n        <span class=\"sig-arg\">**excess_sample</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Accumulate and return the current kurtosis.</p>\n  <dl class=\"fields\">\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <a href=\"pygeodesy.fstats.Fcook-class.html#fkurtosis\" \n        class=\"link\">Fcook.fkurtosis</a> for further details.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"fmedian\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">fmedian</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">xs</span>=<span class=\"sig-default\">None</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Accumulate and return the current median.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>xs</code></strong> - Iterable of additional values (each <code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Current, running median (<code>float</code>).</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a \n        href=\"https://MathWorld.Wolfram.com/PearsonsSkewnessCoefficients.html\"\n        target=\"_top\">Pearson's Skewness Coefficients</a>, <a \n        href=\"https://Skewness&amp;KurtosisSimplifiedhttps://TowardsDataScience.com/skewness-kurtosis-simplified-1338e094fc85&gt;\"\n        target=\"_top\">Skewness &amp; Kurtosis Simplified \n        https://TowardsDataScience.com/skewness-kurtosis-simplified-1338e094fc85&gt;</a>\n        and method <a href=\"pygeodesy.fstats.Fcook-class.html#fadd\" \n        class=\"link\">Fcook.fadd</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"fmedian_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">fmedian_</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">*xs</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Accumulate and return the current median.</p>\n  <dl class=\"fields\">\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <a href=\"pygeodesy.fstats.Fcook-class.html#fmedian\" \n        class=\"link\">Fcook.fmedian</a> for further details.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"fskewness\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">fskewness</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">xs</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**sample</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Accumulate and return the current skewness.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>xs</code></strong> - Iterable of additional values (each <code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>sample</code></strong> - Use <code><b>sample</b>=True</code> for the <i>sample</i> \n          skewness instead of the <i>population</i> skewness \n          (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Current, running (sample) skewness (<code>float</code>).</dd>\n  </dl>\n<div class=\"fields\">      <dl><dt>See Also:</dt>\n        <dd>\n          <a href=\"https://www.Macroption.com/skewness-formula/\" \n          target=\"_top\">Skewness Formula</a> and <a \n          href=\"https://www.ResearchGate.net/publication/227440210\" \n          target=\"_top\">Mantalos</a>.,\n          Method <a href=\"pygeodesy.fstats.Fcook-class.html#fadd\" \n          class=\"link\">Fcook.fadd</a>.\n        </dd>\n      </dl>\n</div></td></tr></table>\n</div>\n<a name=\"fskewness_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">fskewness_</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">*xs</span>,\n        <span class=\"sig-arg\">**sample</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Accumulate and return the current skewness.</p>\n  <dl class=\"fields\">\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <a href=\"pygeodesy.fstats.Fcook-class.html#fskewness\" \n        class=\"link\">Fcook.fskewness</a> for further details.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"toFwelford\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toFwelford</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return a <a href=\"pygeodesy.fstats.Fwelford-class.html\" \n  class=\"link\">Fwelford</a> equivalent.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.fstats.Flinear-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.fstats.Flinear</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.fstats-module.html\">Module&nbsp;fstats</a> ::\n        Class&nbsp;Flinear\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.fstats.Flinear-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Flinear</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+        \n           |        \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n               |    \n    <a href=\"pygeodesy.fstats._FstatsNamed-class.html\">_FstatsNamed</a> --+\n                   |\n                  <strong class=\"uidshort\">Flinear</strong>\n</pre>\n\n<hr />\n<p><a href=\"https://www.JohnDCook.com/blog/running_regression\" \n  target=\"_top\">Cook</a>'s <code>RunningRegression</code> computing the \n  running slope, intercept and correlation of a linear regression.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fstats.Flinear-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">xs</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">ys</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">Fstats</span>=<span class=\"summary-sig-default\">&lt;class 'pygeodesy.fstats.Fwelford'&gt;</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      New <a href=\"pygeodesy.fstats.Flinear-class.html\" \n      class=\"link\">Flinear</a> regression accumulator.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fstats.Flinear-class.html#__iadd__\" class=\"summary-sig-name\">__iadd__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span><br />\n      Add <b><code>other</code></b> to this instance.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fstats.Flinear-class.html#fadd\" class=\"summary-sig-name\">fadd</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">xs</span>,\n        <span class=\"summary-sig-arg\">ys</span>,\n        <span class=\"summary-sig-arg\">sample</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Accumulate and return the current count.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fstats.Flinear-class.html#fadd_\" class=\"summary-sig-name\">fadd_</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">*x_ys</span>,\n        <span class=\"summary-sig-arg\">**sample</span>)</span><br />\n      Accumulate and return the current count.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fstats.Flinear-class.html#fcorrelation\" class=\"summary-sig-name\">fcorrelation</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">**sample</span>)</span><br />\n      Return the current, running (sample) correlation \n      (<code>float</code>).</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fstats.Flinear-class.html#fintercept\" class=\"summary-sig-name\">fintercept</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">**sample</span>)</span><br />\n      Return the current, running (sample) intercept (<code>float</code>).</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fstats.Flinear-class.html#fslope\" class=\"summary-sig-name\">fslope</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">**sample</span>)</span><br />\n      Return the current, running (sample) slope (<code>float</code>).</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.fstats._FstatsNamed-class.html\">_FstatsNamed</a></code></b>:\n      <code><a href=\"pygeodesy.fstats._FstatsNamed-class.html#__add__\">__add__</a></code>,\n      <code><a href=\"pygeodesy.fstats._FstatsNamed-class.html#__float__\">__float__</a></code>,\n      <code><a href=\"pygeodesy.fstats._FstatsNamed-class.html#__int__\">__int__</a></code>,\n      <code><a href=\"pygeodesy.fstats._FstatsNamed-class.html#__len__\">__len__</a></code>,\n      <code><a href=\"pygeodesy.fstats._FstatsNamed-class.html#__neg__\">__neg__</a></code>,\n      <code><a href=\"pygeodesy.fstats._FstatsNamed-class.html#__radd__\">__radd__</a></code>,\n      <code><a href=\"pygeodesy.fstats._FstatsNamed-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.fstats._FstatsNamed-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.fstats._FstatsNamed-class.html#fcopy\">fcopy</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.fstats.Flinear-class.html#x\" class=\"summary-name\">x</a><br />\n      Get the <code>x</code> accumulator (<a \n      href=\"pygeodesy.fstats.Fcook-class.html\" class=\"link\">Fcook</a> or <a\n      href=\"pygeodesy.fstats.Fwelford-class.html\" \n      class=\"link\">Fwelford</a>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.fstats.Flinear-class.html#y\" class=\"summary-name\">y</a><br />\n      Get the <code>y</code> accumulator (<a \n      href=\"pygeodesy.fstats.Fcook-class.html\" class=\"link\">Fcook</a> or <a\n      href=\"pygeodesy.fstats.Fwelford-class.html\" \n      class=\"link\">Fwelford</a>).\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">xs</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">ys</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">Fstats</span>=<span class=\"sig-default\">&lt;class 'pygeodesy.fstats.Fwelford'&gt;</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.fstats.Flinear-class.html\" \n  class=\"link\">Flinear</a> regression accumulator.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>xs</code></strong> - Iterable of initial <code>x</code> values (each \n          <code>scalar</code>, an <a href=\"pygeodesy.fsums.Fsum-class.html\"\n          class=\"link\">Fsum</a> or <a \n          href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>ys</code></strong> - Iterable of initial <code>y</code> values (each \n          <code>scalar</code>, an <a href=\"pygeodesy.fsums.Fsum-class.html\"\n          class=\"link\">Fsum</a> or <a \n          href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>Fstats</code></strong> - Class for <code>xs</code> and <code>ys</code> values (<a \n          href=\"pygeodesy.fstats.Fcook-class.html\" class=\"link\">Fcook</a> \n          or <a href=\"pygeodesy.fstats.Fwelford-class.html\" \n          class=\"link\">Fwelford</a>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - <b><code>Fstats</code></b> not <a \n        href=\"pygeodesy.fstats.Fcook-class.html\" class=\"link\">Fcook</a> or \n        <a href=\"pygeodesy.fstats.Fwelford-class.html\" \n        class=\"link\">Fwelford</a>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <a href=\"pygeodesy.fstats.Flinear-class.html#fadd\" \n        class=\"link\">Flinear.fadd</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"__iadd__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__iadd__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Add <b><code>other</code></b> to this instance.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>other</code></strong> - An <a href=\"pygeodesy.fstats.Flinear-class.html\" \n          class=\"link\">Flinear</a> instance or an iterable of \n          <code>x_ys</code> values, see method <code>fadd_</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>This instance, updated (<a \n          href=\"pygeodesy.fstats.Flinear-class.html\" \n          class=\"link\">Flinear</a>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>other</code></b> or the <b><code>other</code></b> \n        and these <code>x</code> and <code>y</code> accumulators are not \n        compatible.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid or odd-length <b><code>other</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <a href=\"pygeodesy.fstats.Flinear-class.html#fadd_\" \n        class=\"link\">Flinear.fadd_</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"fadd\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">fadd</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">xs</span>,\n        <span class=\"sig-arg\">ys</span>,\n        <span class=\"sig-arg\">sample</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Accumulate and return the current count.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>xs</code></strong> - Iterable of additional <code>x</code> values (each \n          <code>scalar</code>, an <a href=\"pygeodesy.fsums.Fsum-class.html\"\n          class=\"link\">Fsum</a> or <a \n          href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>ys</code></strong> - Iterable of additional <code>y</code> values (each \n          <code>scalar</code>, an <a href=\"pygeodesy.fsums.Fsum-class.html\"\n          class=\"link\">Fsum</a> or <a \n          href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>sample</code></strong> - Use <code><b>sample</b>=True</code> for the <i>sample</i> count \n          instead of the <i>population</i> count (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Current, running (sample) count (<code>int</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>OverflowError</strong></code> - Partial <code>2sum</code> overflow.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>xs</code></b> or <b><code>ys</code></b>.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid or non-finite <b><code>xs</code></b> or \n        <b><code>ys</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"fadd_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">fadd_</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">*x_ys</span>,\n        <span class=\"sig-arg\">**sample</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Accumulate and return the current count.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>x_ys</code></strong> - Individual, alternating <code>x, y, x, y, ...</code> values (each\n          <code>scalar</code>, an <a href=\"pygeodesy.fsums.Fsum-class.html\"\n          class=\"link\">Fsum</a> or <a \n          href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>).</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <code>Flinear.fadd</code> for further details.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"fcorrelation\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">fcorrelation</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">**sample</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the current, running (sample) correlation \n  (<code>float</code>).</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>sample</code></strong> - Use <code><b>sample</b>=True</code> for the <i>sample</i> \n          correlation instead of the <i>population</i> correlation \n          (<code>bool</code>).</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"fintercept\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">fintercept</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">**sample</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the current, running (sample) intercept \n  (<code>float</code>).</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>sample</code></strong> - Use <code><b>sample</b>=True</code> for the <i>sample</i> \n          intercept instead of the <i>population</i> intercept \n          (<code>bool</code>).</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"fslope\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">fslope</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">**sample</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the current, running (sample) slope (<code>float</code>).</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>sample</code></strong> - Use <code><b>sample</b>=True</code> for the <i>sample</i> slope \n          instead of the <i>population</i> slope (<code>bool</code>).</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"x\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">x</h3>\n  <p>Get the <code>x</code> accumulator (<a \n  href=\"pygeodesy.fstats.Fcook-class.html\" class=\"link\">Fcook</a> or <a \n  href=\"pygeodesy.fstats.Fwelford-class.html\" \n  class=\"link\">Fwelford</a>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">x(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <code>x</code> accumulator (<a \nhref=\"pygeodesy.fstats.Fcook-class.html\" class=\"link\">Fcook</a> or <a \nhref=\"pygeodesy.fstats.Fwelford-class.html\" class=\"link\">Fwelford</a>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"y\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">y</h3>\n  <p>Get the <code>y</code> accumulator (<a \n  href=\"pygeodesy.fstats.Fcook-class.html\" class=\"link\">Fcook</a> or <a \n  href=\"pygeodesy.fstats.Fwelford-class.html\" \n  class=\"link\">Fwelford</a>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">y(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <code>y</code> accumulator (<a \nhref=\"pygeodesy.fstats.Fcook-class.html\" class=\"link\">Fcook</a> or <a \nhref=\"pygeodesy.fstats.Fwelford-class.html\" class=\"link\">Fwelford</a>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.fstats.Fwelford-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.fstats.Fwelford</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.fstats-module.html\">Module&nbsp;fstats</a> ::\n        Class&nbsp;Fwelford\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.fstats.Fwelford-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Fwelford</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+            \n           |            \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+        \n               |        \n    <a href=\"pygeodesy.fstats._FstatsNamed-class.html\">_FstatsNamed</a> --+    \n                   |    \n         <a href=\"pygeodesy.fstats._FstatsBase-class.html\">_FstatsBase</a> --+\n                       |\n                      <strong class=\"uidshort\">Fwelford</strong>\n</pre>\n\n<hr />\n<p><a \n  href=\"https://WikiPedia.org/wiki/Algorithms_for_calculating_variance\" \n  target=\"_top\">Welford</a>'s accumulator computing the running mean, \n  (sample) variance and standard deviation.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"https://www.JohnDCook.com/blog/standard_deviation/\" \n        target=\"_top\">Cook</a> and <a \n        href=\"pygeodesy.fstats.Fcook-class.html\" class=\"link\">Fcook</a>.\n      </p>\n</div><!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fstats.Fwelford-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">xs</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      New <a href=\"pygeodesy.fstats.Fwelford-class.html\" \n      class=\"link\">Fwelford</a> stats accumulator.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fstats.Fwelford-class.html#__iadd__\" class=\"summary-sig-name\">__iadd__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span><br />\n      Add <b><code>other</code></b> to this <a \n      href=\"pygeodesy.fstats.Fwelford-class.html\" class=\"link\">Fwelford</a>\n      instance.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fstats.Fwelford-class.html#fadd\" class=\"summary-sig-name\">fadd</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">xs</span>,\n        <span class=\"summary-sig-arg\">sample</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Accumulate and return the current count.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.fstats._FstatsBase-class.html\">_FstatsBase</a></code></b>:\n      <code><a href=\"pygeodesy.fstats._FstatsBase-class.html#fadd_\">fadd_</a></code>,\n      <code><a href=\"pygeodesy.fstats._FstatsBase-class.html#fmean\">fmean</a></code>,\n      <code><a href=\"pygeodesy.fstats._FstatsBase-class.html#fmean_\">fmean_</a></code>,\n      <code><a href=\"pygeodesy.fstats._FstatsBase-class.html#fstdev\">fstdev</a></code>,\n      <code><a href=\"pygeodesy.fstats._FstatsBase-class.html#fstdev_\">fstdev_</a></code>,\n      <code><a href=\"pygeodesy.fstats._FstatsBase-class.html#fvariance\">fvariance</a></code>,\n      <code><a href=\"pygeodesy.fstats._FstatsBase-class.html#fvariance_\">fvariance_</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.fstats._FstatsNamed-class.html\">_FstatsNamed</a></code></b>:\n      <code><a href=\"pygeodesy.fstats._FstatsNamed-class.html#__add__\">__add__</a></code>,\n      <code><a href=\"pygeodesy.fstats._FstatsNamed-class.html#__float__\">__float__</a></code>,\n      <code><a href=\"pygeodesy.fstats._FstatsNamed-class.html#__int__\">__int__</a></code>,\n      <code><a href=\"pygeodesy.fstats._FstatsNamed-class.html#__len__\">__len__</a></code>,\n      <code><a href=\"pygeodesy.fstats._FstatsNamed-class.html#__neg__\">__neg__</a></code>,\n      <code><a href=\"pygeodesy.fstats._FstatsNamed-class.html#__radd__\">__radd__</a></code>,\n      <code><a href=\"pygeodesy.fstats._FstatsNamed-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.fstats._FstatsNamed-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.fstats._FstatsNamed-class.html#fcopy\">fcopy</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">xs</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.fstats.Fwelford-class.html\" \n  class=\"link\">Fwelford</a> stats accumulator.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>xs</code></strong> - Iterable of initial values (each <code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <a href=\"pygeodesy.fstats.Fwelford-class.html#fadd\" \n        class=\"link\">Fwelford.fadd</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"__iadd__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__iadd__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Add <b><code>other</code></b> to this <a \n  href=\"pygeodesy.fstats.Fwelford-class.html\" class=\"link\">Fwelford</a> \n  instance.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>other</code></strong> - An <a href=\"pygeodesy.fstats.Fwelford-class.html\" \n          class=\"link\">Fwelford</a> or <a \n          href=\"pygeodesy.fstats.Fcook-class.html\" class=\"link\">Fcook</a> \n          instance or value or an iterable of values (each \n          <code>scalar</code>, an <a href=\"pygeodesy.fsums.Fsum-class.html\"\n          class=\"link\">Fsum</a> or <a \n          href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>This instance, updated (<a \n          href=\"pygeodesy.fstats.Fwelford-class.html\" \n          class=\"link\">Fwelford</a>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>other</code></b>.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>other</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <a href=\"pygeodesy.fstats.Fwelford-class.html#fadd\" \n        class=\"link\">Fwelford.fadd</a> and <a \n        href=\"https://https//WikiPedia.org/wiki/Algorithms_for_calculating_variance\"\n        target=\"_top\">Parallel algorithm</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"fadd\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">fadd</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">xs</span>,\n        <span class=\"sig-arg\">sample</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Accumulate and return the current count.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>xs</code></strong> - Iterable of additional values (each <code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>sample</code></strong> - Use <code><b>sample</b>=True</code> for the <i>sample</i> count \n          instead of the <i>population</i> count (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Current, running (sample) count (<code>int</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>OverflowError</strong></code> - Partial <code>2sum</code> overflow.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>xs</code></b>.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid or non-finite <b><code>xs</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.fstats._FstatsBase-class.html#fadd\">_FstatsBase.fadd</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.fstats._FstatsBase-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.fstats._FstatsBase</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.fstats-module.html\">Module&nbsp;fstats</a> ::\n        Class&nbsp;_FstatsBase\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.fstats._FstatsBase-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class _FstatsBase</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+        \n           |        \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n               |    \n    <a href=\"pygeodesy.fstats._FstatsNamed-class.html\">_FstatsNamed</a> --+\n                   |\n                  <strong class=\"uidshort\">_FstatsBase</strong>\n</pre>\n\n<dl><dt>Known Subclasses:</dt>\n<dd>\n      <ul class=\"subclass-list\">\n<li><a href=\"pygeodesy.fstats.Fcook-class.html\">Fcook</a></li><li>, <a href=\"pygeodesy.fstats.Fwelford-class.html\">Fwelford</a></li>  </ul>\n</dd></dl>\n\n<hr />\n<p>(INTERNAL) Base running stats class.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"fadd\"></a><span class=\"summary-sig-name\">fadd</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">xs</span>,\n        <span class=\"summary-sig-arg\">sample</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      <i>Must be overloaded</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fstats._FstatsBase-class.html#fadd_\" class=\"summary-sig-name\">fadd_</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">*xs</span>,\n        <span class=\"summary-sig-arg\">**sample</span>)</span><br />\n      Accumulate and return the current count.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fstats._FstatsBase-class.html#fmean\" class=\"summary-sig-name\">fmean</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">xs</span>=<span class=\"summary-sig-default\">None</span>)</span><br />\n      Accumulate and return the current mean.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fstats._FstatsBase-class.html#fmean_\" class=\"summary-sig-name\">fmean_</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">*xs</span>)</span><br />\n      Accumulate and return the current mean.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fstats._FstatsBase-class.html#fstdev\" class=\"summary-sig-name\">fstdev</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">xs</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**sample</span>)</span><br />\n      Accumulate and return the current standard deviation.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fstats._FstatsBase-class.html#fstdev_\" class=\"summary-sig-name\">fstdev_</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">*xs</span>,\n        <span class=\"summary-sig-arg\">**sample</span>)</span><br />\n      Accumulate and return the current standard deviation.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fstats._FstatsBase-class.html#fvariance\" class=\"summary-sig-name\">fvariance</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">xs</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**sample</span>)</span><br />\n      Accumulate and return the current variance.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fstats._FstatsBase-class.html#fvariance_\" class=\"summary-sig-name\">fvariance_</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">*xs</span>,\n        <span class=\"summary-sig-arg\">**sample</span>)</span><br />\n      Accumulate and return the current variance.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.fstats._FstatsNamed-class.html\">_FstatsNamed</a></code></b>:\n      <code><a href=\"pygeodesy.fstats._FstatsNamed-class.html#__add__\">__add__</a></code>,\n      <code><a href=\"pygeodesy.fstats._FstatsNamed-class.html#__float__\">__float__</a></code>,\n      <code><a href=\"pygeodesy.fstats._FstatsNamed-class.html#__int__\">__int__</a></code>,\n      <code><a href=\"pygeodesy.fstats._FstatsNamed-class.html#__len__\">__len__</a></code>,\n      <code><a href=\"pygeodesy.fstats._FstatsNamed-class.html#__neg__\">__neg__</a></code>,\n      <code><a href=\"pygeodesy.fstats._FstatsNamed-class.html#__radd__\">__radd__</a></code>,\n      <code><a href=\"pygeodesy.fstats._FstatsNamed-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.fstats._FstatsNamed-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.fstats._FstatsNamed-class.html#fcopy\">fcopy</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__init__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"fadd_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">fadd_</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">*xs</span>,\n        <span class=\"sig-arg\">**sample</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Accumulate and return the current count.</p>\n  <dl class=\"fields\">\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <code>fadd</code> for further details.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"fmean\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">fmean</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">xs</span>=<span class=\"sig-default\">None</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Accumulate and return the current mean.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>xs</code></strong> - Iterable of additional values (each <code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Current, running mean (<code>float</code>).</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <code>fadd</code>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"fmean_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">fmean_</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">*xs</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Accumulate and return the current mean.</p>\n  <dl class=\"fields\">\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <code>fmean</code> for further details.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"fstdev\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">fstdev</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">xs</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**sample</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Accumulate and return the current standard deviation.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>xs</code></strong> - Iterable of additional values (each <code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>sample</code></strong> - Use <code><b>sample</b>=True</code> for the <i>sample</i> \n          deviation instead of the <i>population</i> deviation \n          (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Current, running (sample) standard deviation \n          (<code>float</code>).</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <code>fadd</code>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"fstdev_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">fstdev_</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">*xs</span>,\n        <span class=\"sig-arg\">**sample</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Accumulate and return the current standard deviation.</p>\n  <dl class=\"fields\">\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <code>fstdev</code> for further details.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"fvariance\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">fvariance</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">xs</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**sample</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Accumulate and return the current variance.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>xs</code></strong> - Iterable of additional values (each <code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>sample</code></strong> - Use <code><b>sample</b>=True</code> for the <i>sample</i> \n          variance instead of the <i>population</i> variance \n          (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Current, running (sample) variance (<code>float</code>).</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <code>fadd</code>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"fvariance_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">fvariance_</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">*xs</span>,\n        <span class=\"sig-arg\">**sample</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Accumulate and return the current variance.</p>\n  <dl class=\"fields\">\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <code>fvariance</code> for further details.\n      </p>\n</div></td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.fstats._FstatsNamed-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.fstats._FstatsNamed</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.fstats-module.html\">Module&nbsp;fstats</a> ::\n        Class&nbsp;_FstatsNamed\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.fstats._FstatsNamed-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class _FstatsNamed</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+    \n           |    \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+\n               |\n              <strong class=\"uidshort\">_FstatsNamed</strong>\n</pre>\n\n<dl><dt>Known Subclasses:</dt>\n<dd>\n      <ul class=\"subclass-list\">\n<li><a href=\"pygeodesy.fstats._FstatsBase-class.html\">_FstatsBase</a></li><li>, <a href=\"pygeodesy.fstats.Flinear-class.html\">Flinear</a></li>  </ul>\n</dd></dl>\n\n<hr />\n<p>(INTERNAL) Base class.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__add__\"></a><span class=\"summary-sig-name\">__add__</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span><br />\n      Sum of this and an other instance, a <code>scalar</code>, an <a \n      href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or <a \n      href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n      class=\"link\">Fsum2Tuple</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__float__\"></a><span class=\"summary-sig-name\">__float__</span>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Not implemented.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__int__\"></a><span class=\"summary-sig-name\">__int__</span>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Not implemented.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__len__\"></a><span class=\"summary-sig-name\">__len__</span>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Return the <i>total</i> number of accumulated <code>Scalars</code> \n      (<code>int</code>).</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__neg__\"></a><span class=\"summary-sig-name\">__neg__</span>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Not implemented.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__radd__\"></a><span class=\"summary-sig-name\">__radd__</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span><br />\n      Not implemented.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fstats._FstatsNamed-class.html#__str__\" class=\"summary-sig-name\">__str__</a>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Default <code>str(self)</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fstats._FstatsNamed-class.html#copy\" class=\"summary-sig-name\">copy</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">deep</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Copy this instance, <code>shallow</code> or <b><code>deep</code></b>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fstats._FstatsNamed-class.html#fcopy\" class=\"summary-sig-name\">fcopy</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">deep</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Copy this instance, <code>shallow</code> or <b><code>deep</code></b>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__init__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__str__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__str__</span>&nbsp;(<span class=\"sig-arg\">self</span>)</span>\n    <br /><em class=\"fname\">(Informal representation operator)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Default <code>str(self)</code>.</p>\n  <dl class=\"fields\">\n    <dt>Overrides:\n        object.__str__\n        <dd><em class=\"note\">(inherited documentation)</em></dd>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"copy\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">copy</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">deep</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Copy this instance, <code>shallow</code> or \n  <b><code>deep</code></b>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional, overriding <code><b>name</b>=&quot;copy&quot;</code> \n          (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The copy instance.</dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.named._Named-class.html#copy\">named._Named.copy</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"fcopy\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">fcopy</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">deep</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Copy this instance, <code>shallow</code> or \n  <b><code>deep</code></b>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional, overriding <code><b>name</b>=&quot;copy&quot;</code> \n          (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The copy instance.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.fsums-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.fsums</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        Module&nbsp;fsums\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.fsums-module.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== MODULE DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Module fsums</h1><p class=\"nomargin-top\"></p>\n<p>Class <a href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> \n  for precision floating point summation similar to Python's \n  <code>math.fsum</code>, but enhanced with <i>precision running</i> \n  summation plus optionally, accurate <i>TwoProduct</i> multiplication.</p>\n  <p>Accurate multiplication is based on the <code>math.fma</code> function\n  from Python 3.13 and newer or an equivalent <code>fma</code> \n  implementation for Python 3.12 and older.  Set env variable \n  <code>PYGEODESY_FSUM_F2PRODUCT</code> to <code>&quot;std&quot;</code> or \n  any non-empty string or invoke function \n  <code>pygeodesy.f2product(True)</code> to enable accurate multiplication.\n  With <code>&quot;std&quot;</code> the <code>fma</code> implemention \n  follows the <code>math.fma</code> function, otherwise the implementation \n  of the <code>PyGeodesy 24.09.09</code> release.</p>\n  <p>Generally, an <a href=\"pygeodesy.fsums.Fsum-class.html\" \n  class=\"link\">Fsum</a> instance is considered a <code>float</code> plus a \n  small or zero <code>residue</code> aka <code>residual</code>, see \n  property <a href=\"pygeodesy.fsums.Fsum-class.html#residual\" \n  class=\"link\">Fsum.residual</a>.</p>\n  <p>Set env variable <code>PYGEODESY_FSUM_RESIDUAL</code> to a \n  <code>float</code> string greater than <code>&quot;0.0&quot;</code> as \n  the threshold to throw a <a \n  href=\"pygeodesy.fsums.ResidualError-class.html\" \n  class=\"link\">ResidualError</a> for a division, power or root operation of\n  an <a href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> with a\n  <code>residual</code> <i>ratio</i> exceeding the threshold.  See methods \n  <a href=\"pygeodesy.fsums.Fsum-class.html#RESIDUAL\" \n  class=\"link\">Fsum.RESIDUAL</a>, <a \n  href=\"pygeodesy.fsums.Fsum-class.html#pow\" class=\"link\">Fsum.pow</a>, <a \n  href=\"pygeodesy.fsums.Fsum-class.html#__ipow__\" \n  class=\"link\">Fsum.__ipow__</a> and <a \n  href=\"pygeodesy.fsums.Fsum-class.html#__itruediv__\" \n  class=\"link\">Fsum.__itruediv__</a>.</p>\n  <p>There are several <code>integer</code> <a \n  href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> cases, for \n  example the result from functions <code>ceil</code>, <code>floor</code>, \n  <code>Fsum.__floordiv__</code> and methods <a \n  href=\"pygeodesy.fsums.Fsum-class.html#fint\" class=\"link\">Fsum.fint</a>, \n  <a href=\"pygeodesy.fsums.Fsum-class.html#fint2\" \n  class=\"link\">Fsum.fint2</a> and <a \n  href=\"pygeodesy.fsums.Fsum-class.html#is_integer\" \n  class=\"link\">Fsum.is_integer</a>.  Also, <a \n  href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> methods <a \n  href=\"pygeodesy.fsums.Fsum-class.html#pow\" class=\"link\">Fsum.pow</a>, <a \n  href=\"pygeodesy.fsums.Fsum-class.html#__ipow__\" \n  class=\"link\">Fsum.__ipow__</a>, <a \n  href=\"pygeodesy.fsums.Fsum-class.html#__pow__\" \n  class=\"link\">Fsum.__pow__</a> and <a \n  href=\"pygeodesy.fsums.Fsum-class.html#__rpow__\" \n  class=\"link\">Fsum.__rpow__</a> return a (very long) <code>int</code> if \n  invoked with optional argument <code>mod</code> set to <code>None</code>.\n  The <code>residual</code> of an <code>integer</code> <a \n  href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> is between \n  <code>-1.0</code> and <code>+1.0</code> and will be <code>INT0</code> if \n  that <a href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> is \n  an <i>exact float</i> or <i>exact integer</i>.</p>\n  <p>Set env variable <code>PYGEODESY_FSUM_NONFINITES</code> to \n  <code>&quot;std&quot;</code> or use function \n  <code>pygeodesy.nonfiniterrors(False)</code> to allow <i>non-finite</i> \n  <code>float</code>s like <code>inf</code>, <code>INF</code>, \n  <code>NINF</code>, <code>nan</code> and <code>NAN</code> and to ignore \n  <code>OverflowError</code> respectively <code>ValueError</code> \n  exceptions.  However, in that case <i>non-finite</i> results may differ \n  from Python's <code>math.fsum</code> results.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Version:</strong>\n        26.02.02\n      </p>\n</div><!-- ==================== CLASSES ==================== -->\n<a name=\"section-Classes\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Classes</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.fsums.Fsum-class.html\" class=\"summary-name\">Fsum</a><br />\n      Precision floating point summation, <i>running</i> summation and \n        accurate multiplication.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.fsums.DivMod2Tuple-class.html\" class=\"summary-name\">DivMod2Tuple</a><br />\n      2-Tuple <code>(div, mod)</code> with the quotient <code>div</code> \n        and remainder <code>mod</code> results of a <code>divmod</code> \n        operation.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" class=\"summary-name\">Fsum2Tuple</a><br />\n      2-Tuple <code>(fsum, residual)</code> with the precision running \n        <code>fsum</code> and the <code>residual</code>, the sum of the \n        remaining partials.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.fsums.ResidualError-class.html\" class=\"summary-name\">ResidualError</a><br />\n      Error raised for a division, power or root operation of an <a \n        href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> \n        instance with a <code>residual</code> <i>ratio</i> exceeding the <a\n        href=\"pygeodesy.fsums.Fsum-class.html#RESIDUAL\" \n        class=\"link\">RESIDUAL</a> threshold.\n    </td>\n  </tr>\n</table>\n<!-- ==================== FUNCTIONS ==================== -->\n<a name=\"section-Functions\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Functions</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fsums-module.html#f2product\" class=\"summary-sig-name\">f2product</a>(<span class=\"summary-sig-arg\">two</span>=<span class=\"summary-sig-default\">None</span>)</span><br />\n      Turn accurate <i>TwoProduct</i> multiplication on or off.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fsums-module.html#nonfiniterrors\" class=\"summary-sig-name\">nonfiniterrors</a>(<span class=\"summary-sig-arg\">raiser</span>=<span class=\"summary-sig-default\">None</span>)</span><br />\n      Throw <code>OverflowError</code> and <code>ValueError</code> \n      exceptions for or handle <i>non-finite</i> <code>float</code>s as \n      <code>inf</code>, <code>INF</code>, <code>NINF</code>, \n      <code>nan</code> and <code>NAN</code> in summations and \n      multiplications.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fsums-module.html#fsum\" class=\"summary-sig-name\">fsum</a>(<span class=\"summary-sig-arg\">xs</span>,\n        <span class=\"summary-sig-arg\">nonfinites</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**floats</span>)</span><br />\n      Precision floating point summation from Python's \n      <code>math.fsum</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fsums-module.html#fsum_\" class=\"summary-sig-name\">fsum_</a>(<span class=\"summary-sig-arg\">*xs</span>,\n        <span class=\"summary-sig-arg\">**nonfinites</span>)</span><br />\n      Precision floating point summation of all positional items.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fsums-module.html#fsumf_\" class=\"summary-sig-name\">fsumf_</a>(<span class=\"summary-sig-arg\">*xs</span>)</span><br />\n      Precision floating point summation of all positional items with \n      <i>non-finites</i> <code>OK</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fsums-module.html#fsum1\" class=\"summary-sig-name\">fsum1</a>(<span class=\"summary-sig-arg\">xs</span>,\n        <span class=\"summary-sig-arg\">**nonfinites</span>)</span><br />\n      Precision floating point summation, 1-primed.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fsums-module.html#fsum1_\" class=\"summary-sig-name\">fsum1_</a>(<span class=\"summary-sig-arg\">*xs</span>,\n        <span class=\"summary-sig-arg\">**nonfinites</span>)</span><br />\n      Precision floating point summation of all positional items, 1-primed.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fsums-module.html#fsum1f_\" class=\"summary-sig-name\">fsum1f_</a>(<span class=\"summary-sig-arg\">*xs</span>)</span><br />\n      Precision floating point summation of all positional items, 1-primed \n      and with <i>non-finites</i> <code>OK</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== VARIABLES ==================== -->\n<a name=\"section-Variables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Variables</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"__all__\"></a><span class=\"summary-name\">__all__</span> = <code title=\"_ALL_LAZY.fsums\">_ALL_LAZY.fsums</code>\n    </td>\n  </tr>\n</table>\n<!-- ==================== FUNCTION DETAILS ==================== -->\n<a name=\"section-FunctionDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Function Details</span></td>\n</tr>\n</table>\n<a name=\"f2product\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">f2product</span>&nbsp;(<span class=\"sig-arg\">two</span>=<span class=\"sig-default\">None</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Turn accurate <i>TwoProduct</i> multiplication on or off.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>two</code></strong> - If <code>True</code>, turn <i>TwoProduct</i> on, if \n          <code>False</code> off or if <code>None</code> or omitted, keep \n          the current setting.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The previous setting (<code>bool</code>).</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <i>TwoProduct</i> multiplication is based on the \n        <i>TwoProductFMA</i> <a \n        href=\"https://www.TUHH.De/ti3/paper/rump/OgRuOi05.pdf\" \n        target=\"_top\">Algorithm 3.5</a> using function \n        <code>math.fma</code> from Python 3.13 and later or an equivalent, \n        slower implementation when not available.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"nonfiniterrors\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">nonfiniterrors</span>&nbsp;(<span class=\"sig-arg\">raiser</span>=<span class=\"sig-default\">None</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Throw <code>OverflowError</code> and <code>ValueError</code> \n  exceptions for or handle <i>non-finite</i> <code>float</code>s as \n  <code>inf</code>, <code>INF</code>, <code>NINF</code>, <code>nan</code> \n  and <code>NAN</code> in summations and multiplications.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>raiser</code></strong> - If <code>True</code>, throw exceptions, if <code>False</code> \n          handle <i>non-finites</i> or if <code>None</code> or omitted, \n          leave the setting unchanged.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Previous setting (<code>bool</code>).</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        <code>inf</code>, <code>INF</code> and <code>NINF</code> throw an \n        <code>OverflowError</code>, <code>nan</code> and <code>NAN</code> a\n        <code>ValueError</code>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"fsum\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">fsum</span>&nbsp;(<span class=\"sig-arg\">xs</span>,\n        <span class=\"sig-arg\">nonfinites</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**floats</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Precision floating point summation from Python's \n  <code>math.fsum</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>xs</code></strong> - Iterable of items to add (each <code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>nonfinites</code></strong> - Use <code><b>nonfinites</b>=True</code> if <i>non-finites</i> are\n          <code>OK</code>, if <code>False</code> <i>non-finites</i> raise \n          an Overflow-/ValueError or if <code>None</code>, <a \n          href=\"pygeodesy.fsums-module.html#nonfiniterrors\" \n          class=\"link\">nonfiniterrors</a> applies (<code>bool</code> or \n          <code>None</code>).</li>\n        <li><strong class=\"pname\"><code>floats</code></strong> - DEPRECATED keyword argument <code><b>floats</b>=False</code> \n          (<code>bool</code>), use keyword argument \n          <code><b>nonfinites</b>=False</code> instead.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Precision <code>fsum</code> (<code>float</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>OverflowError</strong></code> - Infinite <b><code>xs</code></b> item or intermediate \n        <code>math.fsum</code> overflow.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>xs</code></b> item.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid or <code>NAN</code> <b><code>xs</code></b> item.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.fsums-module.html#nonfiniterrors\" \n        class=\"link\">nonfiniterrors</a>, class <a \n        href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> and \n        methods <a href=\"pygeodesy.fsums.Fsum-class.html#nonfinites\" \n        class=\"link\">Fsum.nonfinites</a>, <a \n        href=\"pygeodesy.fsums.Fsum-class.html#fsum\" \n        class=\"link\">Fsum.fsum</a>, <a \n        href=\"pygeodesy.fsums.Fsum-class.html#fadd\" \n        class=\"link\">Fsum.fadd</a> and <a \n        href=\"pygeodesy.fsums.Fsum-class.html#fadd_\" \n        class=\"link\">Fsum.fadd_</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"fsum_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">fsum_</span>&nbsp;(<span class=\"sig-arg\">*xs</span>,\n        <span class=\"sig-arg\">**nonfinites</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Precision floating point summation of all positional items.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>xs</code></strong> - Items to add (each <code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>), all positional.</li>\n        <li><strong class=\"pname\"><code>nonfinites</code></strong> - Use <code><b>nonfinites</b>=True</code> if <i>non-finites</i> are\n          <code>OK</code> (<code>bool</code>).</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.fsums-module.html#fsum\" \n        class=\"link\">fsum</a> for further details.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"fsumf_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">fsumf_</span>&nbsp;(<span class=\"sig-arg\">*xs</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Precision floating point summation of all positional items with \n  <i>non-finites</i> <code>OK</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>xs</code></strong> - Items to add (each <code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>), all positional.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.fsums-module.html#fsum_\" \n        class=\"link\">fsum_</a> for further details.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"fsum1\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">fsum1</span>&nbsp;(<span class=\"sig-arg\">xs</span>,\n        <span class=\"sig-arg\">**nonfinites</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Precision floating point summation, 1-primed.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>xs</code></strong> - Iterable of items to add (each <code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>nonfinites</code></strong> - Use <code><b>nonfinites</b>=True</code> if <i>non-finites</i> are\n          <code>OK</code> (<code>bool</code>).</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.fsums-module.html#fsum\" \n        class=\"link\">fsum</a> for further details.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"fsum1_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">fsum1_</span>&nbsp;(<span class=\"sig-arg\">*xs</span>,\n        <span class=\"sig-arg\">**nonfinites</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Precision floating point summation of all positional items, \n  1-primed.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>xs</code></strong> - Items to add (each <code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>), all positional.</li>\n        <li><strong class=\"pname\"><code>nonfinites</code></strong> - Use <code><b>nonfinites</b>=True</code> if <i>non-finites</i> are\n          <code>OK</code> (<code>bool</code>).</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.fsums-module.html#fsum_\" \n        class=\"link\">fsum_</a> for further details.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"fsum1f_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">fsum1f_</span>&nbsp;(<span class=\"sig-arg\">*xs</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Precision floating point summation of all positional items, 1-primed \n  and with <i>non-finites</i> <code>OK</code>.</p>\n  <dl class=\"fields\">\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.fsums-module.html#fsum_\" \n        class=\"link\">fsum_</a> for further details.\n      </p>\n</div></td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.fsums.DivMod2Tuple-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.fsums.DivMod2Tuple</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.fsums-module.html\">Module&nbsp;fsums</a> ::\n        Class&nbsp;DivMod2Tuple\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.fsums.DivMod2Tuple-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class DivMod2Tuple</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n   object --+        \n            |        \n        tuple --+    \n                |    \n   object --+   |    \n            |   |    \n <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n                |    \n<a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a> --+\n                    |\n                   <strong class=\"uidshort\">DivMod2Tuple</strong>\n</pre>\n\n<hr />\n<p>2-Tuple <code>(div, mod)</code> with the quotient <code>div</code> and\n  remainder <code>mod</code> results of a <code>divmod</code> \n  operation.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Note:</strong>\n        Quotient <code>div</code> an <code>int</code> in Python 3+ but a \n        <code>float</code> in Python 2-.  Remainder <code>mod</code> an <a \n        href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> \n        instance.\n      </p>\n</div><!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__delattr__\">__delattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__getattr__\">__getattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__setattr__\">__setattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#items\">items</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iteritems\">iteritems</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iterunits\">iterunits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#reUnit\">reUnit</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toUnits\">toUnits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>tuple</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__eq__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__iter__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__rmul__</code>,\n      <code>count</code>,\n      <code>index</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__new__\">__new__</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.fsums.Fsum-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.fsums.Fsum</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.fsums-module.html\">Module&nbsp;fsums</a> ::\n        Class&nbsp;Fsum\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.fsums.Fsum-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Fsum</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+    \n           |    \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+\n               |\n              <strong class=\"uidshort\">Fsum</strong>\n</pre>\n\n<dl><dt>Known Subclasses:</dt>\n<dd>\n      <ul class=\"subclass-list\">\n<li><a href=\"pygeodesy.fmath.Froot-class.html\">fmath.Froot</a></li><li>, <a href=\"pygeodesy.fmath.Fdot-class.html\">fmath.Fdot</a></li><li>, <a href=\"pygeodesy.fmath.Fhorner-class.html\">fmath.Fhorner</a></li><li>, <a href=\"pygeodesy.fmath.Fhypot-class.html\">fmath.Fhypot</a></li><li>, <a href=\"pygeodesy.fmath.Fpolynomial-class.html\">fmath.Fpolynomial</a></li><li>, <a href=\"pygeodesy.fmath.Fpowers-class.html\">fmath.Fpowers</a></li><li class=\"private\">, _Ksum</li>  </ul>\n</dd></dl>\n\n<hr />\n<p>Precision floating point summation, <i>running</i> summation and \n  accurate multiplication.</p>\n  <p>Unlike Python's <code>math.fsum</code>, this class accumulates values \n  and provides intermediate, <i>running</i>, precision floating point \n  summations.  Accumulation may continue after any intermediate, \n  <i>running</i> summuation.</p>\n\n<hr />\n<div class=\"fields\">      <strong>Notes:</strong>\n      <ul class=\"nomargin-top\">\n        <li>\n        Values may be <a href=\"pygeodesy.fsums.Fsum-class.html\" \n        class=\"link\">Fsum</a>, <a \n        href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n        class=\"link\">Fsum2Tuple</a>, <code>int</code>, <code>float</code> \n        or <code>scalar</code> instances, i.e. any <code>type</code> having\n        method <code>__float__</code>.\n        </li>\n        <li>\n        Handling of <i>non-finites</i> as <code>inf</code>, \n        <code>INF</code>, <code>NINF</code>, <code>nan</code> and \n        <code>NAN</code> is determined globally by function <a \n        href=\"pygeodesy.fsums-module.html#nonfiniterrors\" \n        class=\"link\">nonfiniterrors</a> or by method <a \n        href=\"pygeodesy.fsums.Fsum-class.html#nonfinites\" \n        class=\"link\">nonfinites</a> for individual <code>Fsum</code> \n        instances, overruling the global setting.  For backward \n        compatibility, <i>non-finites</i> raise exceptions by default.\n        </li>\n      </ul>\n      <dl><dt>See Also:</dt>\n        <dd>\n          <a \n          href=\"https://GitHub.com/ActiveState/code/tree/master/recipes/Python/393090_Binary_floating_point_summatiaccurate_full/recipe-393090.py\"\n          target=\"_top\">Hettinger</a>, <a \n          href=\"https://WikiPedia.org/wiki/Kahan_summation_algorithm\" \n          target=\"_top\">Kahan</a>, <a \n          href=\"https://Link.Springer.com/article/10.1007/s00607-005-0139-x\"\n          target=\"_top\">Klein</a>, Python 2.6+ file \n          <i>Modules/mathmodule.c</i> and the issue log <a \n          href=\"https://Bugs.Python.org/issue2819\" target=\"_top\">Full \n          precision summation</a>.,\n          Method <a href=\"pygeodesy.fsums.Fsum-class.html#f2product\" \n          class=\"link\">f2product</a> for details about accurate \n          <i>TwoProduct</i> multiplication.,\n          Module <a href=\"pygeodesy.fsums-module.html\" \n          class=\"link\">fsums</a> for env variables \n          <code>PYGEODESY_FSUM_F2PRODUCT</code>, \n          <code>PYGEODESY_FSUM_NONFINITES</code> and \n          <code>PYGEODESY_FSUM_RESIDUAL</code>.\n        </dd>\n      </dl>\n</div><!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fsums.Fsum-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">*xs</span>,\n        <span class=\"summary-sig-arg\">**name_f2product_nonfinites_RESIDUAL</span>)</span><br />\n      New <a href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__abs__\"></a><span class=\"summary-sig-name\">__abs__</span>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Return <code>abs(self)</code> as an <a \n      href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fsums.Fsum-class.html#__add__\" class=\"summary-sig-name\">__add__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span><br />\n      Return <code><b>self</b> + <b>other</b></code> as an <a \n      href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__bool__\"></a><span class=\"summary-sig-name\">__bool__</span>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Return <code>bool(<b>self</b>)</code>, <code>True</code> iff \n      <code>residual</code> is zero.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__call__\"></a><span class=\"summary-sig-name\">__call__</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>,\n        <span class=\"summary-sig-arg\">**up</span>)</span><br />\n      Reset this <code>Fsum</code> to <code>other</code>, default \n      <code><b>up</b>=True</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fsums.Fsum-class.html#__ceil__\" class=\"summary-sig-name\">__ceil__</a>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Return this instance' <code>math.ceil</code> as <code>int</code> or \n      <code>float</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fsums.Fsum-class.html#__cmp__\" class=\"summary-sig-name\">__cmp__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span><br />\n      Compare this with an other instance or <code>scalar</code>, Python \n      2-.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fsums.Fsum-class.html#__divmod__\" class=\"summary-sig-name\">__divmod__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>,\n        <span class=\"summary-sig-arg\">**raiser_RESIDUAL</span>)</span><br />\n      Return <code>divmod(<b>self</b>, <b>other</b>)</code> as a <a \n      href=\"pygeodesy.fsums.DivMod2Tuple-class.html\" \n      class=\"link\">DivMod2Tuple</a> with quotient <code>div</code> an \n      <code>int</code> in Python 3+ or <code>float</code> in Python 2- and \n      remainder <code>mod</code> an <a \n      href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> \n      instance.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__eq__\"></a><span class=\"summary-sig-name\">__eq__</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span><br />\n      Return <code>(<b>self</b> == <b>other</b>)</code> as \n      <code>bool</code> where <b><code>other</code></b> is \n      <code>scalar</code>, an other <a \n      href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or <a \n      href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n      class=\"link\">Fsum2Tuple</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fsums.Fsum-class.html#__float__\" class=\"summary-sig-name\">__float__</a>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Return this instance' current, precision running sum as \n      <code>float</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fsums.Fsum-class.html#__floor__\" class=\"summary-sig-name\">__floor__</a>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Return this instance' <code>math.floor</code> as <code>int</code> or \n      <code>float</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fsums.Fsum-class.html#__floordiv__\" class=\"summary-sig-name\">__floordiv__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span><br />\n      Return <code><b>self</b> // <b>other</b></code> as an <a \n      href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__ge__\"></a><span class=\"summary-sig-name\">__ge__</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span><br />\n      Return <code>(<b>self</b> &gt;= <b>other</b>)</code>, see \n      <code>__eq__</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__gt__\"></a><span class=\"summary-sig-name\">__gt__</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span><br />\n      Return <code>(<b>self</b> &gt; <b>other</b>)</code>, see \n      <code>__eq__</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fsums.Fsum-class.html#__hash__\" class=\"summary-sig-name\">__hash__</a>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Return <code>hash(<b>self</b>)</code> as <code>float</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fsums.Fsum-class.html#__iadd__\" class=\"summary-sig-name\">__iadd__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span><br />\n      Apply <code><b>self</b> += <b>other</b></code> to this instance.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fsums.Fsum-class.html#__ifloordiv__\" class=\"summary-sig-name\">__ifloordiv__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span><br />\n      Apply <code><b>self</b> //= <b>other</b></code> to this instance.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fsums.Fsum-class.html#__imatmul__\" class=\"summary-sig-name\">__imatmul__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span><br />\n      Not implemented.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fsums.Fsum-class.html#__imod__\" class=\"summary-sig-name\">__imod__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span><br />\n      Apply <code><b>self</b> %= <b>other</b></code> to this instance.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fsums.Fsum-class.html#__imul__\" class=\"summary-sig-name\">__imul__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span><br />\n      Apply <code><b>self</b> *= <b>other</b></code> to this instance.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fsums.Fsum-class.html#__int__\" class=\"summary-sig-name\">__int__</a>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Return this instance as an <code>int</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__invert__\"></a><span class=\"summary-sig-name\">__invert__</span>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Not implemented.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fsums.Fsum-class.html#__ipow__\" class=\"summary-sig-name\">__ipow__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>,\n        <span class=\"summary-sig-arg\">*mod</span>,\n        <span class=\"summary-sig-arg\">**raiser_RESIDUAL</span>)</span><br />\n      Apply <code><b>self</b> **= <b>other</b></code> to this instance.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fsums.Fsum-class.html#__isub__\" class=\"summary-sig-name\">__isub__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span><br />\n      Apply <code><b>self</b> -= <b>other</b></code> to this instance.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__iter__\"></a><span class=\"summary-sig-name\">__iter__</span>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Return an <code>iter</code>ator over a <code>partials</code> \n      duplicate.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fsums.Fsum-class.html#__itruediv__\" class=\"summary-sig-name\">__itruediv__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>,\n        <span class=\"summary-sig-arg\">**raiser_RESIDUAL</span>)</span><br />\n      Apply <code><b>self</b> /= <b>other</b></code> to this instance.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__le__\"></a><span class=\"summary-sig-name\">__le__</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span><br />\n      Return <code>(<b>self</b> &lt;= <b>other</b>)</code>, see \n      <code>__eq__</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__len__\"></a><span class=\"summary-sig-name\">__len__</span>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Return the number of (non-zero) values accumulated \n      (<code>int</code>).</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__lt__\"></a><span class=\"summary-sig-name\">__lt__</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span><br />\n      Return <code>(<b>self</b> &lt; <b>other</b>)</code>, see \n      <code>__eq__</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fsums.Fsum-class.html#__matmul__\" class=\"summary-sig-name\">__matmul__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span><br />\n      Not implemented.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fsums.Fsum-class.html#__mod__\" class=\"summary-sig-name\">__mod__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span><br />\n      Return <code><b>self</b> % <b>other</b></code> as an <a \n      href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fsums.Fsum-class.html#__mul__\" class=\"summary-sig-name\">__mul__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span><br />\n      Return <code><b>self</b> * <b>other</b></code> as an <a \n      href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__ne__\"></a><span class=\"summary-sig-name\">__ne__</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span><br />\n      Return <code>(<b>self</b> != <b>other</b>)</code>, see \n      <code>__eq__</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__neg__\"></a><span class=\"summary-sig-name\">__neg__</span>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Return <code>copy(<b>self</b>)</code>, <i>negated</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__pos__\"></a><span class=\"summary-sig-name\">__pos__</span>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Return this instance <i>as-is</i>, like <code>float.__pos__()</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fsums.Fsum-class.html#__pow__\" class=\"summary-sig-name\">__pow__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>,\n        <span class=\"summary-sig-arg\">*mod</span>)</span><br />\n      Return <code><b>self</b>**<b>other</b></code> as an <a \n      href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fsums.Fsum-class.html#__radd__\" class=\"summary-sig-name\">__radd__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span><br />\n      Return <code><b>other</b> + <b>self</b></code> as an <a \n      href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fsums.Fsum-class.html#__rdivmod__\" class=\"summary-sig-name\">__rdivmod__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span><br />\n      Return <code>divmod(<b>other</b>, <b>self</b>)</code> as 2-tuple \n      <code>(quotient, remainder)</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fsums.Fsum-class.html#__rfloordiv__\" class=\"summary-sig-name\">__rfloordiv__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span><br />\n      Return <code><b>other</b> // <b>self</b></code> as an <a \n      href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fsums.Fsum-class.html#__rmatmul__\" class=\"summary-sig-name\">__rmatmul__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span><br />\n      Not implemented.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fsums.Fsum-class.html#__rmod__\" class=\"summary-sig-name\">__rmod__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span><br />\n      Return <code><b>other</b> % <b>self</b></code> as an <a \n      href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fsums.Fsum-class.html#__rmul__\" class=\"summary-sig-name\">__rmul__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span><br />\n      Return <code><b>other</b> * <b>self</b></code> as an <a \n      href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fsums.Fsum-class.html#__round__\" class=\"summary-sig-name\">__round__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">*ndigits</span>)</span><br />\n      Return <code>round(<b>self</b>, *<b>ndigits</b></code> as an <a \n      href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fsums.Fsum-class.html#__rpow__\" class=\"summary-sig-name\">__rpow__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>,\n        <span class=\"summary-sig-arg\">*mod</span>)</span><br />\n      Return <code><b>other</b>**<b>self</b></code> as an <a \n      href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fsums.Fsum-class.html#__rsub__\" class=\"summary-sig-name\">__rsub__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span><br />\n      Return <code><b>other</b> - <b>self</b></code> as <a \n      href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fsums.Fsum-class.html#__rtruediv__\" class=\"summary-sig-name\">__rtruediv__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>,\n        <span class=\"summary-sig-arg\">**raiser_RESIDUAL</span>)</span><br />\n      Return <code><b>other</b> / <b>self</b></code> as an <a \n      href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fsums.Fsum-class.html#__str__\" class=\"summary-sig-name\">__str__</a>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Return the default <code>str(self)</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fsums.Fsum-class.html#__sub__\" class=\"summary-sig-name\">__sub__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span><br />\n      Return <code><b>self</b> - <b>other</b></code> as an <a \n      href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fsums.Fsum-class.html#__truediv__\" class=\"summary-sig-name\">__truediv__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>,\n        <span class=\"summary-sig-arg\">**raiser_RESIDUAL</span>)</span><br />\n      Return <code><b>self</b> / <b>other</b></code> as an <a \n      href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fsums.Fsum-class.html#__trunc__\" class=\"summary-sig-name\">__trunc__</a>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Return this instance as an <code>int</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fsums.Fsum-class.html#__div__\" class=\"summary-sig-name\">__div__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>,\n        <span class=\"summary-sig-arg\">**raiser_RESIDUAL</span>)</span><br />\n      Return <code><b>self</b> / <b>other</b></code> as an <a \n      href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fsums.Fsum-class.html#__idiv__\" class=\"summary-sig-name\">__idiv__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>,\n        <span class=\"summary-sig-arg\">**raiser_RESIDUAL</span>)</span><br />\n      Apply <code><b>self</b> /= <b>other</b></code> to this instance.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fsums.Fsum-class.html#__long__\" class=\"summary-sig-name\">__long__</a>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Return this instance as an <code>int</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__nonzero__\"></a><span class=\"summary-sig-name\">__nonzero__</span>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Return <code>bool(<b>self</b>)</code>, <code>True</code> iff \n      <code>residual</code> is zero.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fsums.Fsum-class.html#__rdiv__\" class=\"summary-sig-name\">__rdiv__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>,\n        <span class=\"summary-sig-arg\">**raiser_RESIDUAL</span>)</span><br />\n      Return <code><b>other</b> / <b>self</b></code> as an <a \n      href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fsums.Fsum-class.html#as_integer_ratio\" class=\"summary-sig-name\">as_integer_ratio</a>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Return this instance as the ratio of 2 integers.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fsums.Fsum-class.html#cmp\" class=\"summary-sig-name\">cmp</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span><br />\n      Compare this with an other instance or <code>scalar</code>, Python \n      2-.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fsums.Fsum-class.html#copy\" class=\"summary-sig-name\">copy</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">deep</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Copy this instance, <code>shallow</code> or <b><code>deep</code></b>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fsums.Fsum-class.html#divmod\" class=\"summary-sig-name\">divmod</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>,\n        <span class=\"summary-sig-arg\">**raiser_RESIDUAL</span>)</span><br />\n      Return <code>divmod(<b>self</b>, <b>other</b>)</code> as a <a \n      href=\"pygeodesy.fsums.DivMod2Tuple-class.html\" \n      class=\"link\">DivMod2Tuple</a> with quotient <code>div</code> an \n      <code>int</code> in Python 3+ or <code>float</code> in Python 2- and \n      remainder <code>mod</code> an <a \n      href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> \n      instance.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fsums.Fsum-class.html#fadd\" class=\"summary-sig-name\">fadd</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">xs</span>=<span class=\"summary-sig-default\"><code class=\"variable-group\">(</code><code class=\"variable-group\">)</code></span>)</span><br />\n      Add an iterable's items to this instance.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fsums.Fsum-class.html#fadd_\" class=\"summary-sig-name\">fadd_</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">*xs</span>)</span><br />\n      Add all positional items to this instance.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fsums.Fsum-class.html#fcopy\" class=\"summary-sig-name\">fcopy</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">deep</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Copy this instance, <code>shallow</code> or <b><code>deep</code></b>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fsums.Fsum-class.html#fdiv\" class=\"summary-sig-name\">fdiv</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>,\n        <span class=\"summary-sig-arg\">**raiser_RESIDUAL</span>)</span><br />\n      Apply <code><b>self</b> /= <b>other</b></code> to this instance.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fsums.Fsum-class.html#fdivmod\" class=\"summary-sig-name\">fdivmod</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>,\n        <span class=\"summary-sig-arg\">**raiser_RESIDUAL</span>)</span><br />\n      Return <code>divmod(<b>self</b>, <b>other</b>)</code> as a <a \n      href=\"pygeodesy.fsums.DivMod2Tuple-class.html\" \n      class=\"link\">DivMod2Tuple</a> with quotient <code>div</code> an \n      <code>int</code> in Python 3+ or <code>float</code> in Python 2- and \n      remainder <code>mod</code> an <a \n      href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> \n      instance.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fsums.Fsum-class.html#fint\" class=\"summary-sig-name\">fint</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">name</span>=<span class=\"summary-sig-default\">''</span>,\n        <span class=\"summary-sig-arg\">**raiser_RESIDUAL</span>)</span><br />\n      Return this instance' current running sum as <code>integer</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fsums.Fsum-class.html#fint2\" class=\"summary-sig-name\">fint2</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Return this instance' current running sum as <code>int</code> and the\n      <i>integer</i> residual.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fsums.Fsum-class.html#fma\" class=\"summary-sig-name\">fma</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other1</span>,\n        <span class=\"summary-sig-arg\">other2</span>,\n        <span class=\"summary-sig-arg\">**nonfinites</span>)</span><br />\n      Fused-multiply-add <code>self *= <b>other1</b>; self += \n      <b>other2</b></code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fsums.Fsum-class.html#fma_\" class=\"summary-sig-name\">fma_</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">*xys</span>,\n        <span class=\"summary-sig-arg\">**nonfinites</span>)</span><br />\n      Fused-multiply-accumulate <code>for i in range(0, len(xys), \n      <b>2</b>): self = </code><a href=\"pygeodesy.fmath-module.html#fma\" \n      class=\"link\">fma</a><code>(xys[i], xys[i+1], self)</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fsums.Fsum-class.html#fmul\" class=\"summary-sig-name\">fmul</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span><br />\n      Apply <code><b>self</b> *= <b>other</b></code> to this instance.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fsums.Fsum-class.html#f2mul\" class=\"summary-sig-name\">f2mul</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">*others</span>,\n        <span class=\"summary-sig-arg\">**raiser</span>)</span><br />\n      DEPRECATED on 2024.09.13, use method <a \n      href=\"pygeodesy.fsums.Fsum-class.html#f2mul_\" \n      class=\"link\">f2mul_</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fsums.Fsum-class.html#f2mul_\" class=\"summary-sig-name\">f2mul_</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">*others</span>,\n        <span class=\"summary-sig-arg\">**f2product_nonfinites</span>)</span><br />\n      Return <code><b>self</b> * <b>other</b> * <b>other</b> ...</code> for\n      all <b><code>others</code></b> using cascaded, accurate \n      multiplication like with <a \n      href=\"pygeodesy.fsums.Fsum-class.html#f2product\" \n      class=\"link\">f2product</a><code>(<b>True</b>)</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fsums.Fsum-class.html#fover\" class=\"summary-sig-name\">fover</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">over</span>,\n        <span class=\"summary-sig-arg\">**raiser_RESIDUAL</span>)</span><br />\n      Apply <code><b>self</b> /= <b>over</b></code> and summate.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fsums.Fsum-class.html#fpow\" class=\"summary-sig-name\">fpow</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>,\n        <span class=\"summary-sig-arg\">*mod</span>,\n        <span class=\"summary-sig-arg\">**raiser_RESIDUAL</span>)</span><br />\n      Apply <code><b>self</b> **= <b>other</b></code> to this instance.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fsums.Fsum-class.html#f2product\" class=\"summary-sig-name\">f2product</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">*two</span>)</span><br />\n      Get and set accurate <i>TwoProduct</i> multiplication for this <a \n      href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a>, \n      overriding the <a href=\"pygeodesy.fsums.Fsum-class.html#f2product\" \n      class=\"link\">f2product</a> default.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fsums.Fsum-class.html#fset_\" class=\"summary-sig-name\">fset_</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">*xs</span>)</span><br />\n      Apply <code><b>self</b>.partials = Fsum(*<b>xs</b>).partials</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fsums.Fsum-class.html#fsub\" class=\"summary-sig-name\">fsub</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">xs</span>=<span class=\"summary-sig-default\"><code class=\"variable-group\">(</code><code class=\"variable-group\">)</code></span>)</span><br />\n      Subtract an iterable's items from this instance.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fsums.Fsum-class.html#fsub_\" class=\"summary-sig-name\">fsub_</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">*xs</span>)</span><br />\n      Subtract all positional items from this instance.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fsums.Fsum-class.html#fsum\" class=\"summary-sig-name\">fsum</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">xs</span>=<span class=\"summary-sig-default\"><code class=\"variable-group\">(</code><code class=\"variable-group\">)</code></span>)</span><br />\n      Add an iterable's items, summate and return the current precision \n      running sum.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fsums.Fsum-class.html#fsum_\" class=\"summary-sig-name\">fsum_</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">*xs</span>)</span><br />\n      Add any positional items, summate and return the current precision \n      running sum.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fsums.Fsum-class.html#Fsum_\" class=\"summary-sig-name\">Fsum_</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">*xs</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Like method <a href=\"pygeodesy.fsums.Fsum-class.html#fsum_\" \n      class=\"link\">Fsum.fsum_</a> but returning a named <a \n      href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fsums.Fsum-class.html#Fsum2Tuple_\" class=\"summary-sig-name\">Fsum2Tuple_</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">*xs</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Like method <a href=\"pygeodesy.fsums.Fsum-class.html#fsum_\" \n      class=\"link\">Fsum.fsum_</a> but returning a named <a \n      href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n      class=\"link\">Fsum2Tuple</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fsums.Fsum-class.html#fsum2\" class=\"summary-sig-name\">fsum2</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">xs</span>=<span class=\"summary-sig-default\"><code class=\"variable-group\">(</code><code class=\"variable-group\">)</code></span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Add an iterable's items, summate and return the current precision \n      running sum <i>and</i> the <code>residual</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fsums.Fsum-class.html#fsum2_\" class=\"summary-sig-name\">fsum2_</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">*xs</span>)</span><br />\n      Add any positional items, summate and return the current precision \n      running sum and the <i>differential</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"fsumf_\"></a><span class=\"summary-sig-name\">fsumf_</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">*xs</span>)</span><br />\n      Like method <a href=\"pygeodesy.fsums.Fsum-class.html#fsum_\" \n      class=\"link\">Fsum.fsum_</a> iff <i>all</i> <code><b>xs</b></code>, \n      each <i>known to be</i> <code>scalar</code>, an <a \n      href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or <a \n      href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n      class=\"link\">Fsum2Tuple</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"Fsumf_\"></a><span class=\"summary-sig-name\">Fsumf_</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">*xs</span>)</span><br />\n      Like method <a href=\"pygeodesy.fsums.Fsum-class.html#Fsum_\" \n      class=\"link\">Fsum.Fsum_</a> iff <i>all</i> <code><b>xs</b></code>, \n      each <i>known to be</i> <code>scalar</code>, an <a \n      href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or <a \n      href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n      class=\"link\">Fsum2Tuple</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"fsum2f_\"></a><span class=\"summary-sig-name\">fsum2f_</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">*xs</span>)</span><br />\n      Like method <a href=\"pygeodesy.fsums.Fsum-class.html#fsum2_\" \n      class=\"link\">Fsum.fsum2_</a> iff <i>all</i> <code><b>xs</b></code>, \n      each <i>known to be</i> <code>scalar</code>, an <a \n      href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or <a \n      href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n      class=\"link\">Fsum2Tuple</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fsums.Fsum-class.html#int_float\" class=\"summary-sig-name\">int_float</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">**raiser_RESIDUAL</span>)</span><br />\n      Return this instance' current running sum as <code>int</code> or \n      <code>float</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"is_exact\"></a><span class=\"summary-sig-name\">is_exact</span>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Is this instance' running <code>fsum</code> considered to be exact? \n      (<code>bool</code>), <code>True</code> only if the <code>residual is \n      </code>INT0.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fsums.Fsum-class.html#is_finite\" class=\"summary-sig-name\">is_finite</a>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Is this instance <code>finite</code>? (<code>bool</code>).</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fsums.Fsum-class.html#is_integer\" class=\"summary-sig-name\">is_integer</a>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Is this instance' running sum <code>integer</code>? \n      (<code>bool</code>).</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fsums.Fsum-class.html#is_math_fma\" class=\"summary-sig-name\">is_math_fma</a>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Is accurate <a href=\"pygeodesy.fsums.Fsum-class.html#f2product\" \n      class=\"link\">f2product</a> multiplication based on Python's \n      <code>math.fma</code>?</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fsums.Fsum-class.html#is_math_fsum\" class=\"summary-sig-name\">is_math_fsum</a>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Are the summation functions <a \n      href=\"pygeodesy.fsums.Fsum-class.html#fsum\" class=\"link\">fsum</a>, <a\n      href=\"pygeodesy.fsums.Fsum-class.html#fsum_\" class=\"link\">fsum_</a>, \n      <a href=\"pygeodesy.fsums.Fsum-class.html#fsumf_\" \n      class=\"link\">fsumf_</a>, <a href=\"pygeodesy.fsums-module.html#fsum1\" \n      class=\"link\">fsum1</a>, <a href=\"pygeodesy.fsums-module.html#fsum1_\" \n      class=\"link\">fsum1_</a> and <a \n      href=\"pygeodesy.fsums-module.html#fsum1f_\" class=\"link\">fsum1f_</a> \n      based on Python's <code>math.fsum</code>?</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fsums.Fsum-class.html#is_scalar\" class=\"summary-sig-name\">is_scalar</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">**raiser_RESIDUAL</span>)</span><br />\n      Is this instance' running sum <code>scalar</code> with <code>0</code>\n      residual or with a residual <i>ratio</i> not exceeding the RESIDUAL \n      threshold?</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fsums.Fsum-class.html#nonfinites\" class=\"summary-sig-name\">nonfinites</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">*OK</span>)</span><br />\n      Handle <i>non-finite</i> <code>float</code>s as <code>inf</code>, \n      <code>INF</code>, <code>NINF</code>, <code>nan</code> and \n      <code>NAN</code> for this <a href=\"pygeodesy.fsums.Fsum-class.html\" \n      class=\"link\">Fsum</a> or throw <code>OverflowError</code> \n      respectively <code>ValueError</code> exceptions, overriding the <a \n      href=\"pygeodesy.fsums-module.html#nonfiniterrors\" \n      class=\"link\">nonfiniterrors</a> default.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fsums.Fsum-class.html#pow\" class=\"summary-sig-name\">pow</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">x</span>,\n        <span class=\"summary-sig-arg\">*mod</span>,\n        <span class=\"summary-sig-arg\">**raiser_RESIDUAL</span>)</span><br />\n      Return <code><b>self</b>**<b>x</b></code> as <a \n      href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fsums.Fsum-class.html#rdiv\" class=\"summary-sig-name\">rdiv</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>,\n        <span class=\"summary-sig-arg\">**raiser_RESIDUAL</span>)</span><br />\n      Return <code><b>other</b> / <b>self</b></code> as an <a \n      href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fsums.Fsum-class.html#RESIDUAL\" class=\"summary-sig-name\">RESIDUAL</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">*threshold</span>)</span><br />\n      Get and set this instance' <i>ratio</i> for raising <a \n      href=\"pygeodesy.fsums.ResidualError-class.html\" \n      class=\"link\">ResidualError</a>s, overriding the default from env \n      variable <code>PYGEODESY_FSUM_RESIDUAL</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fsums.Fsum-class.html#root\" class=\"summary-sig-name\">root</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">root</span>,\n        <span class=\"summary-sig-arg\">**raiser_RESIDUAL</span>)</span><br />\n      Return <code><b>self</b>**(1 / <b>root</b>)</code> as <a \n      href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fsums.Fsum-class.html#signOf\" class=\"summary-sig-name\">signOf</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">res</span>=<span class=\"summary-sig-default\">True</span>)</span><br />\n      Determine the sign of this instance.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fsums.Fsum-class.html#toRepr\" class=\"summary-sig-name\">toRepr</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">**lenc_prec_sep_fmt</span>)</span><br />\n      Return this <code>Fsum</code> instance as representation.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fsums.Fsum-class.html#toStr\" class=\"summary-sig-name\">toStr</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lenc</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">**prec_sep_fmt</span>)</span><br />\n      Return this <code>Fsum</code> instance as string.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.fsums.Fsum-class.html#as_iscalar\" class=\"summary-name\">as_iscalar</a><br />\n      Get this instance <i>as-is</i> (<a \n      href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> with \n      <code>non-zero residual</code>, <code>scalar</code> or \n      <i>non-finite</i>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.fsums.Fsum-class.html#ceil\" class=\"summary-name\">ceil</a><br />\n      Get this instance' <code>ceil</code> value (<code>int</code> in \n      Python 3+, but <code>float</code> in Python 2-).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.fsums.Fsum-class.html#float_int\" class=\"summary-name\">float_int</a><br />\n      DEPRECATED, use method <code>Fsum.int_float</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.fsums.Fsum-class.html#floor\" class=\"summary-name\">floor</a><br />\n      Get this instance' <code>floor</code> (<code>int</code> in Python 3+,\n      but <code>float</code> in Python 2-).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.fsums.Fsum-class.html#imag\" class=\"summary-name\">imag</a><br />\n      Get the <code>imaginary</code> part of this instance \n      (<code>0.0</code>, always).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.fsums.Fsum-class.html#nonfinitesOK\" class=\"summary-name\">nonfinitesOK</a><br />\n      Are <i>non-finites</i> <code>OK</code> for this <a \n      href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or by \n      default? (<code>bool</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.fsums.Fsum-class.html#partials\" class=\"summary-name\">partials</a><br />\n      Get this instance' current, partial sums (<code>tuple</code> of \n      <code>float</code>s).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.fsums.Fsum-class.html#real\" class=\"summary-name\">real</a><br />\n      Get the <code>real</code> part of this instance (<code>float</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.fsums.Fsum-class.html#residual\" class=\"summary-name\">residual</a><br />\n      Get this instance' residual or residue (<code>float</code> or \n      <code>int</code>): the <code>sum(partials)</code> less the precision \n      running sum <code>fsum</code>.\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">*xs</span>,\n        <span class=\"sig-arg\">**name_f2product_nonfinites_RESIDUAL</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.fsums.Fsum-class.html\" \n  class=\"link\">Fsum</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>xs</code></strong> - No, one or more initial items to accumulate (each \n          <code>scalar</code>, an <a href=\"pygeodesy.fsums.Fsum-class.html\"\n          class=\"link\">Fsum</a> or <a \n          href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>), all positional.</li>\n        <li><strong class=\"pname\"><code>name_f2product_nonfinites_RESIDUAL</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>) and \n          settings <code><b>f2product</b>=None</code> (<code>bool</code>), \n          <code><b>nonfinites</b>=None</code> (<code>bool</code>) and \n          <code><b>RESIDUAL</b>=0.0</code> threshold (<code>scalar</code>) \n          for this <a href=\"pygeodesy.fsums.Fsum-class.html\" \n          class=\"link\">Fsum</a>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Methods <a href=\"pygeodesy.fsums.Fsum-class.html#f2product\" \n        class=\"link\">Fsum.f2product</a>, <a \n        href=\"pygeodesy.fsums.Fsum-class.html#nonfinites\" \n        class=\"link\">Fsum.nonfinites</a>, <a \n        href=\"pygeodesy.fsums.Fsum-class.html#RESIDUAL\" \n        class=\"link\">Fsum.RESIDUAL</a>, <a \n        href=\"pygeodesy.fsums.Fsum-class.html#fadd\" \n        class=\"link\">Fsum.fadd</a> and <a \n        href=\"pygeodesy.fsums.Fsum-class.html#fadd_\" \n        class=\"link\">Fsum.fadd_</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"__add__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__add__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>)</span>\n    <br /><em class=\"fname\">(Addition operator)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return <code><b>self</b> + <b>other</b></code> as an <a \n  href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>other</code></strong> - An <a href=\"pygeodesy.fsums.Fsum-class.html\" \n          class=\"link\">Fsum</a>, <a \n          href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a> or <code>scalar</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The sum (<a href=\"pygeodesy.fsums.Fsum-class.html\" \n          class=\"link\">Fsum</a>).</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Methods <a href=\"pygeodesy.fsums.Fsum-class.html#fadd_\" \n        class=\"link\">Fsum.fadd_</a> and <a \n        href=\"pygeodesy.fsums.Fsum-class.html#fadd\" \n        class=\"link\">Fsum.fadd</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"__ceil__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__ceil__</span>&nbsp;(<span class=\"sig-arg\">self</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return this instance' <code>math.ceil</code> as <code>int</code> or \n  <code>float</code>.</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd>An <code>int</code> in Python 3+, but <code>float</code> in \n          Python 2-.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Methods <a href=\"pygeodesy.fsums.Fsum-class.html#__floor__\" \n        class=\"link\">Fsum.__floor__</a> and property <a \n        href=\"pygeodesy.fsums.Fsum-class.html#ceil\" \n        class=\"link\">Fsum.ceil</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"__cmp__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__cmp__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>)</span>\n    <br /><em class=\"fname\">(Comparison operator)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compare this with an other instance or <code>scalar</code>, Python \n  2-.</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd>-1, 0 or +1 (<code>int</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Incompatible <b><code>other</code></b> <code>type</code>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__divmod__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__divmod__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>,\n        <span class=\"sig-arg\">**raiser_RESIDUAL</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return <code>divmod(<b>self</b>, <b>other</b>)</code> as a <a \n  href=\"pygeodesy.fsums.DivMod2Tuple-class.html\" \n  class=\"link\">DivMod2Tuple</a> with quotient <code>div</code> an \n  <code>int</code> in Python 3+ or <code>float</code> in Python 2- and \n  remainder <code>mod</code> an <a href=\"pygeodesy.fsums.Fsum-class.html\" \n  class=\"link\">Fsum</a> instance.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>other</code></strong> - Modulus (<code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>raiser_RESIDUAL</code></strong> - Use <code><b>raiser</b>=False</code> to ignore <a \n          href=\"pygeodesy.fsums.ResidualError-class.html\" \n          class=\"link\">ResidualError</a>s (<code>bool</code>) and \n          <code><b>RESIDUAL</b>=scalar</code> to override the current <a \n          href=\"pygeodesy.fsums.Fsum-class.html#RESIDUAL\" \n          class=\"link\">RESIDUAL</a>.</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.fsums.ResidualError-class.html\">ResidualError</a></strong></code> - Non-zero, significant residual or invalid \n        <b><code>RESIDUAL</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <a href=\"pygeodesy.fsums.Fsum-class.html#__itruediv__\" \n        class=\"link\">Fsum.fdiv</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"__float__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__float__</span>&nbsp;(<span class=\"sig-arg\">self</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return this instance' current, precision running sum as \n  <code>float</code>.</p>\n  <dl class=\"fields\">\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Methods <a href=\"pygeodesy.fsums.Fsum-class.html#fsum\" \n        class=\"link\">Fsum.fsum</a> and <a \n        href=\"pygeodesy.fsums.Fsum-class.html#int_float\" \n        class=\"link\">Fsum.int_float</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"__floor__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__floor__</span>&nbsp;(<span class=\"sig-arg\">self</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return this instance' <code>math.floor</code> as <code>int</code> or \n  <code>float</code>.</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd>An <code>int</code> in Python 3+, but <code>float</code> in \n          Python 2-.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Methods <a href=\"pygeodesy.fsums.Fsum-class.html#__ceil__\" \n        class=\"link\">Fsum.__ceil__</a> and property <a \n        href=\"pygeodesy.fsums.Fsum-class.html#floor\" \n        class=\"link\">Fsum.floor</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"__floordiv__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__floordiv__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return <code><b>self</b> // <b>other</b></code> as an <a \n  href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>other</code></strong> - Divisor (<code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The <code>floor</code> quotient (<a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a>).</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Methods <a href=\"pygeodesy.fsums.Fsum-class.html#__ifloordiv__\" \n        class=\"link\">Fsum.__ifloordiv__</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"__hash__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__hash__</span>&nbsp;(<span class=\"sig-arg\">self</span>)</span>\n    <br /><em class=\"fname\">(Hashing function)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return <code>hash(<b>self</b>)</code> as <code>float</code>.</p>\n  <dl class=\"fields\">\n    <dt>Overrides:\n        object.__hash__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__iadd__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__iadd__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Apply <code><b>self</b> += <b>other</b></code> to this instance.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>other</code></strong> - An <a href=\"pygeodesy.fsums.Fsum-class.html\" \n          class=\"link\">Fsum</a>, <a \n          href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a> or <code>scalar</code> value or an \n          iterable of several of the former.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>This instance, updated (<a href=\"pygeodesy.fsums.Fsum-class.html\"\n          class=\"link\">Fsum</a>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>other</code></b>, not <code>scalar</code> nor <a \n        href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Methods <a href=\"pygeodesy.fsums.Fsum-class.html#fadd_\" \n        class=\"link\">Fsum.fadd_</a> and <a \n        href=\"pygeodesy.fsums.Fsum-class.html#fadd\" \n        class=\"link\">Fsum.fadd</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"__ifloordiv__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__ifloordiv__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Apply <code><b>self</b> //= <b>other</b></code> to this instance.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>other</code></strong> - Divisor (<code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>This instance, updated (<a href=\"pygeodesy.fsums.Fsum-class.html\"\n          class=\"link\">Fsum</a>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.fsums.ResidualError-class.html\">ResidualError</a></strong></code> - Non-zero, significant residual in <b><code>other</code></b>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>other</code></b> type.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid or <i>non-finite</i> <b><code>other</code></b>.</li>\n        <li><code><strong class='fraise'>ZeroDivisionError</strong></code> - Zero <b><code>other</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Methods <a href=\"pygeodesy.fsums.Fsum-class.html#__itruediv__\" \n        class=\"link\">Fsum.__itruediv__</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"__imatmul__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__imatmul__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Not implemented.</p>\n  <dl class=\"fields\">\n    <dt>Overrides:\n        <a href=\"pygeodesy.named._Named-class.html#__imatmul__\">named._Named.__imatmul__</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__imod__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__imod__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Apply <code><b>self</b> %= <b>other</b></code> to this instance.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>other</code></strong> - Modulus (<code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>This instance, updated (<a href=\"pygeodesy.fsums.Fsum-class.html\"\n          class=\"link\">Fsum</a>).</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <a href=\"pygeodesy.fsums.Fsum-class.html#__divmod__\" \n        class=\"link\">Fsum.__divmod__</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"__imul__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__imul__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Apply <code><b>self</b> *= <b>other</b></code> to this instance.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>other</code></strong> - Factor (<code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>This instance, updated (<a href=\"pygeodesy.fsums.Fsum-class.html\"\n          class=\"link\">Fsum</a>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>OverflowError</strong></code> - Partial <code>2sum</code> overflow.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>other</code></b> type.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid or <i>non-finite</i> <b><code>other</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__int__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__int__</span>&nbsp;(<span class=\"sig-arg\">self</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return this instance as an <code>int</code>.</p>\n  <dl class=\"fields\">\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <a href=\"pygeodesy.fsums.Fsum-class.html#int_float\" \n        class=\"link\">Fsum.int_float</a> and properties <a \n        href=\"pygeodesy.fsums.Fsum-class.html#ceil\" \n        class=\"link\">Fsum.ceil</a> and <a \n        href=\"pygeodesy.fsums.Fsum-class.html#floor\" \n        class=\"link\">Fsum.floor</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"__ipow__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__ipow__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>,\n        <span class=\"sig-arg\">*mod</span>,\n        <span class=\"sig-arg\">**raiser_RESIDUAL</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Apply <code><b>self</b> **= <b>other</b></code> to this instance.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>other</code></strong> - Exponent (<code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>mod</code></strong> - Optional modulus (<code>int</code> or <code>None</code>) for the \n          3-argument <code>pow(<b>self</b>, <b>other</b>, \n          <b>mod</b>)</code> version.</li>\n        <li><strong class=\"pname\"><code>raiser_RESIDUAL</code></strong> - Use <code><b>raiser</b>=False</code> to ignore <a \n          href=\"pygeodesy.fsums.ResidualError-class.html\" \n          class=\"link\">ResidualError</a>s (<code>bool</code>) and \n          <code><b>RESIDUAL</b>=scalar</code> to override the current <a \n          href=\"pygeodesy.fsums.Fsum-class.html#RESIDUAL\" \n          class=\"link\">RESIDUAL</a>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>This instance, updated (<a href=\"pygeodesy.fsums.Fsum-class.html\"\n          class=\"link\">Fsum</a>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>OverflowError</strong></code> - Partial <code>2sum</code> overflow.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.fsums.ResidualError-class.html\">ResidualError</a></strong></code> - Invalid <b><code>RESIDUAL</code></b> or the residual is non-zero \n        and significant and either <b><code>other</code></b> is a \n        fractional or negative <code>scalar</code> or \n        <b><code>mod</code></b> is given and not <code>None</code>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>other</code></b> type or 3-argument \n        <code>pow</code> invocation failed.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - If <b><code>other</code></b> is a negative <code>scalar</code> and \n        this instance is <code>0</code> or <b><code>other</code></b> is a \n        fractional <code>scalar</code> and this instance is negative or has\n        a non-zero and significant residual or <b><code>mod</code></b> is \n        given as <code>0</code>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        If <b><code>mod</code></b> is given, the result will be an \n        <code>integer</code> <a href=\"pygeodesy.fsums.Fsum-class.html\" \n        class=\"link\">Fsum</a> in Python 3+ if this instance \n        <code>is_integer</code> or set to <code>as_integer</code> and \n        <b><code>mod</code></b> is given and <code>None</code>.\n      </p>\n      <p><strong>See Also:</strong>\n        CPython function <a \n        href=\"https://GitHub.com/python/cpython/blob/main/Objects/floatobject.c\"\n        target=\"_top\">float_pow</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"__isub__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__isub__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Apply <code><b>self</b> -= <b>other</b></code> to this instance.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>other</code></strong> - An <a href=\"pygeodesy.fsums.Fsum-class.html\" \n          class=\"link\">Fsum</a>, <a \n          href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a> or <code>scalar</code> value or an \n          iterable of several of the former.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>This instance, updated (<a href=\"pygeodesy.fsums.Fsum-class.html\"\n          class=\"link\">Fsum</a>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>other</code></b> type.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Methods <a href=\"pygeodesy.fsums.Fsum-class.html#fsub_\" \n        class=\"link\">Fsum.fsub_</a> and <a \n        href=\"pygeodesy.fsums.Fsum-class.html#fsub\" \n        class=\"link\">Fsum.fsub</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"__itruediv__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__itruediv__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>,\n        <span class=\"sig-arg\">**raiser_RESIDUAL</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Apply <code><b>self</b> /= <b>other</b></code> to this instance.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>other</code></strong> - Divisor (<code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>raiser_RESIDUAL</code></strong> - Use <code><b>raiser</b>=False</code> to ignore <a \n          href=\"pygeodesy.fsums.ResidualError-class.html\" \n          class=\"link\">ResidualError</a>s (<code>bool</code>) and \n          <code><b>RESIDUAL</b>=scalar</code> to override the current <a \n          href=\"pygeodesy.fsums.Fsum-class.html#RESIDUAL\" \n          class=\"link\">RESIDUAL</a>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>This instance, updated (<a href=\"pygeodesy.fsums.Fsum-class.html\"\n          class=\"link\">Fsum</a>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>OverflowError</strong></code> - Partial <code>2sum</code> overflow.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.fsums.ResidualError-class.html\">ResidualError</a></strong></code> - Non-zero, significant residual or invalid \n        <b><code>RESIDUAL</code></b>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>other</code></b> type.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid or <i>non-finite</i> <b><code>other</code></b>.</li>\n        <li><code><strong class='fraise'>ZeroDivisionError</strong></code> - Zero <b><code>other</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <a href=\"pygeodesy.fsums.Fsum-class.html#__ifloordiv__\" \n        class=\"link\">Fsum.__ifloordiv__</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"__matmul__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__matmul__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Not implemented.</p>\n  <dl class=\"fields\">\n    <dt>Overrides:\n        <a href=\"pygeodesy.named._Named-class.html#__matmul__\">named._Named.__matmul__</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__mod__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__mod__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return <code><b>self</b> % <b>other</b></code> as an <a \n  href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a>.</p>\n  <dl class=\"fields\">\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <a href=\"pygeodesy.fsums.Fsum-class.html#__imod__\" \n        class=\"link\">Fsum.__imod__</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"__mul__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__mul__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return <code><b>self</b> * <b>other</b></code> as an <a \n  href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a>.</p>\n  <dl class=\"fields\">\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <a href=\"pygeodesy.fsums.Fsum-class.html#__imul__\" \n        class=\"link\">Fsum.__imul__</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"__pow__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__pow__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>,\n        <span class=\"sig-arg\">*mod</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return <code><b>self</b>**<b>other</b></code> as an <a \n  href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a>.</p>\n  <dl class=\"fields\">\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <a href=\"pygeodesy.fsums.Fsum-class.html#__ipow__\" \n        class=\"link\">Fsum.__ipow__</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"__radd__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__radd__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>)</span>\n    <br /><em class=\"fname\">(Right-side addition operator)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return <code><b>other</b> + <b>self</b></code> as an <a \n  href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a>.</p>\n  <dl class=\"fields\">\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <a href=\"pygeodesy.fsums.Fsum-class.html#__iadd__\" \n        class=\"link\">Fsum.__iadd__</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"__rdivmod__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__rdivmod__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return <code>divmod(<b>other</b>, <b>self</b>)</code> as 2-tuple \n  <code>(quotient, remainder)</code>.</p>\n  <dl class=\"fields\">\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <a href=\"pygeodesy.fsums.Fsum-class.html#__divmod__\" \n        class=\"link\">Fsum.__divmod__</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"__rfloordiv__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__rfloordiv__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return <code><b>other</b> // <b>self</b></code> as an <a \n  href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a>.</p>\n  <dl class=\"fields\">\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <a href=\"pygeodesy.fsums.Fsum-class.html#__ifloordiv__\" \n        class=\"link\">Fsum.__ifloordiv__</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"__rmatmul__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__rmatmul__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Not implemented.</p>\n  <dl class=\"fields\">\n    <dt>Overrides:\n        <a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">named._Named.__rmatmul__</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__rmod__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__rmod__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return <code><b>other</b> % <b>self</b></code> as an <a \n  href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a>.</p>\n  <dl class=\"fields\">\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <a href=\"pygeodesy.fsums.Fsum-class.html#__imod__\" \n        class=\"link\">Fsum.__imod__</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"__rmul__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__rmul__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return <code><b>other</b> * <b>self</b></code> as an <a \n  href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a>.</p>\n  <dl class=\"fields\">\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <a href=\"pygeodesy.fsums.Fsum-class.html#__imul__\" \n        class=\"link\">Fsum.__imul__</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"__round__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__round__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">*ndigits</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return <code>round(<b>self</b>, *<b>ndigits</b></code> as an <a \n  href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>ndigits</code></strong> - Optional number of digits (<code>int</code>).</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__rpow__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__rpow__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>,\n        <span class=\"sig-arg\">*mod</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return <code><b>other</b>**<b>self</b></code> as an <a \n  href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a>.</p>\n  <dl class=\"fields\">\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <a href=\"pygeodesy.fsums.Fsum-class.html#__ipow__\" \n        class=\"link\">Fsum.__ipow__</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"__rsub__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__rsub__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return <code><b>other</b> - <b>self</b></code> as <a \n  href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a>.</p>\n  <dl class=\"fields\">\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <a href=\"pygeodesy.fsums.Fsum-class.html#__isub__\" \n        class=\"link\">Fsum.__isub__</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"__rtruediv__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__rtruediv__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>,\n        <span class=\"sig-arg\">**raiser_RESIDUAL</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return <code><b>other</b> / <b>self</b></code> as an <a \n  href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a>.</p>\n  <dl class=\"fields\">\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <a href=\"pygeodesy.fsums.Fsum-class.html#__itruediv__\" \n        class=\"link\">Fsum.__itruediv__</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"__str__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__str__</span>&nbsp;(<span class=\"sig-arg\">self</span>)</span>\n    <br /><em class=\"fname\">(Informal representation operator)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the default <code>str(self)</code>.</p>\n  <dl class=\"fields\">\n    <dt>Overrides:\n        object.__str__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__sub__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__sub__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>)</span>\n    <br /><em class=\"fname\">(Subtraction operator)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return <code><b>self</b> - <b>other</b></code> as an <a \n  href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>other</code></strong> - An <a href=\"pygeodesy.fsums.Fsum-class.html\" \n          class=\"link\">Fsum</a>, <a \n          href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a> or <code>scalar</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The difference (<a href=\"pygeodesy.fsums.Fsum-class.html\" \n          class=\"link\">Fsum</a>).</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <a href=\"pygeodesy.fsums.Fsum-class.html#__isub__\" \n        class=\"link\">Fsum.__isub__</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"__truediv__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__truediv__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>,\n        <span class=\"sig-arg\">**raiser_RESIDUAL</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return <code><b>self</b> / <b>other</b></code> as an <a \n  href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>other</code></strong> - Divisor (<code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>raiser_RESIDUAL</code></strong> - Use <code><b>raiser</b>=False</code> to ignore <a \n          href=\"pygeodesy.fsums.ResidualError-class.html\" \n          class=\"link\">ResidualError</a>s (<code>bool</code>) and \n          <code><b>RESIDUAL</b>=scalar</code> to override the current <a \n          href=\"pygeodesy.fsums.Fsum-class.html#RESIDUAL\" \n          class=\"link\">RESIDUAL</a>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The quotient (<a href=\"pygeodesy.fsums.Fsum-class.html\" \n          class=\"link\">Fsum</a>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.fsums.ResidualError-class.html\">ResidualError</a></strong></code> - Non-zero, significant residual or invalid \n        <b><code>RESIDUAL</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <a href=\"pygeodesy.fsums.Fsum-class.html#__itruediv__\" \n        class=\"link\">Fsum.__itruediv__</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"__trunc__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__trunc__</span>&nbsp;(<span class=\"sig-arg\">self</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return this instance as an <code>int</code>.</p>\n  <dl class=\"fields\">\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <a href=\"pygeodesy.fsums.Fsum-class.html#int_float\" \n        class=\"link\">Fsum.int_float</a> and properties <a \n        href=\"pygeodesy.fsums.Fsum-class.html#ceil\" \n        class=\"link\">Fsum.ceil</a> and <a \n        href=\"pygeodesy.fsums.Fsum-class.html#floor\" \n        class=\"link\">Fsum.floor</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"__div__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__div__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>,\n        <span class=\"sig-arg\">**raiser_RESIDUAL</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return <code><b>self</b> / <b>other</b></code> as an <a \n  href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>other</code></strong> - Divisor (<code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>raiser_RESIDUAL</code></strong> - Use <code><b>raiser</b>=False</code> to ignore <a \n          href=\"pygeodesy.fsums.ResidualError-class.html\" \n          class=\"link\">ResidualError</a>s (<code>bool</code>) and \n          <code><b>RESIDUAL</b>=scalar</code> to override the current <a \n          href=\"pygeodesy.fsums.Fsum-class.html#RESIDUAL\" \n          class=\"link\">RESIDUAL</a>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The quotient (<a href=\"pygeodesy.fsums.Fsum-class.html\" \n          class=\"link\">Fsum</a>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.fsums.ResidualError-class.html\">ResidualError</a></strong></code> - Non-zero, significant residual or invalid \n        <b><code>RESIDUAL</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <a href=\"pygeodesy.fsums.Fsum-class.html#__itruediv__\" \n        class=\"link\">Fsum.__itruediv__</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"__idiv__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__idiv__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>,\n        <span class=\"sig-arg\">**raiser_RESIDUAL</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Apply <code><b>self</b> /= <b>other</b></code> to this instance.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>other</code></strong> - Divisor (<code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>raiser_RESIDUAL</code></strong> - Use <code><b>raiser</b>=False</code> to ignore <a \n          href=\"pygeodesy.fsums.ResidualError-class.html\" \n          class=\"link\">ResidualError</a>s (<code>bool</code>) and \n          <code><b>RESIDUAL</b>=scalar</code> to override the current <a \n          href=\"pygeodesy.fsums.Fsum-class.html#RESIDUAL\" \n          class=\"link\">RESIDUAL</a>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>This instance, updated (<a href=\"pygeodesy.fsums.Fsum-class.html\"\n          class=\"link\">Fsum</a>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>OverflowError</strong></code> - Partial <code>2sum</code> overflow.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.fsums.ResidualError-class.html\">ResidualError</a></strong></code> - Non-zero, significant residual or invalid \n        <b><code>RESIDUAL</code></b>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>other</code></b> type.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid or <i>non-finite</i> <b><code>other</code></b>.</li>\n        <li><code><strong class='fraise'>ZeroDivisionError</strong></code> - Zero <b><code>other</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <a href=\"pygeodesy.fsums.Fsum-class.html#__ifloordiv__\" \n        class=\"link\">Fsum.__ifloordiv__</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"__long__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__long__</span>&nbsp;(<span class=\"sig-arg\">self</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return this instance as an <code>int</code>.</p>\n  <dl class=\"fields\">\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <a href=\"pygeodesy.fsums.Fsum-class.html#int_float\" \n        class=\"link\">Fsum.int_float</a> and properties <a \n        href=\"pygeodesy.fsums.Fsum-class.html#ceil\" \n        class=\"link\">Fsum.ceil</a> and <a \n        href=\"pygeodesy.fsums.Fsum-class.html#floor\" \n        class=\"link\">Fsum.floor</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"__rdiv__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__rdiv__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>,\n        <span class=\"sig-arg\">**raiser_RESIDUAL</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return <code><b>other</b> / <b>self</b></code> as an <a \n  href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a>.</p>\n  <dl class=\"fields\">\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <a href=\"pygeodesy.fsums.Fsum-class.html#__itruediv__\" \n        class=\"link\">Fsum.__itruediv__</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"as_integer_ratio\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">as_integer_ratio</span>&nbsp;(<span class=\"sig-arg\">self</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return this instance as the ratio of 2 integers.</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd>2-Tuple <code>(numerator, denominator)</code> both \n          <code>int</code> with <code>numerator</code> signed and \n          <code>denominator</code> non-zero and positive.  The \n          <code>numerator</code> is <i>non-finite</i> if this instance is.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <a href=\"pygeodesy.fsums.Fsum-class.html#fint2\" \n        class=\"link\">Fsum.fint2</a> and <code>float.as_integer_ratio</code>\n        in Python 2.7+.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"cmp\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">cmp</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compare this with an other instance or <code>scalar</code>, Python \n  2-.</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd>-1, 0 or +1 (<code>int</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Incompatible <b><code>other</code></b> <code>type</code>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"copy\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">copy</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">deep</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Copy this instance, <code>shallow</code> or \n  <b><code>deep</code></b>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional, overriding <code><b>name</b>='&quot;copy&quot;</code> \n          (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The copy (<a href=\"pygeodesy.fsums.Fsum-class.html\" \n          class=\"link\">Fsum</a>).</dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.named._Named-class.html#copy\">named._Named.copy</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"divmod\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">divmod</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>,\n        <span class=\"sig-arg\">**raiser_RESIDUAL</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return <code>divmod(<b>self</b>, <b>other</b>)</code> as a <a \n  href=\"pygeodesy.fsums.DivMod2Tuple-class.html\" \n  class=\"link\">DivMod2Tuple</a> with quotient <code>div</code> an \n  <code>int</code> in Python 3+ or <code>float</code> in Python 2- and \n  remainder <code>mod</code> an <a href=\"pygeodesy.fsums.Fsum-class.html\" \n  class=\"link\">Fsum</a> instance.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>other</code></strong> - Modulus (<code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>raiser_RESIDUAL</code></strong> - Use <code><b>raiser</b>=False</code> to ignore <a \n          href=\"pygeodesy.fsums.ResidualError-class.html\" \n          class=\"link\">ResidualError</a>s (<code>bool</code>) and \n          <code><b>RESIDUAL</b>=scalar</code> to override the current <a \n          href=\"pygeodesy.fsums.Fsum-class.html#RESIDUAL\" \n          class=\"link\">RESIDUAL</a>.</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.fsums.ResidualError-class.html\">ResidualError</a></strong></code> - Non-zero, significant residual or invalid \n        <b><code>RESIDUAL</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <a href=\"pygeodesy.fsums.Fsum-class.html#__itruediv__\" \n        class=\"link\">Fsum.fdiv</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"fadd\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">fadd</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">xs</span>=<span class=\"sig-default\"><code class=\"variable-group\">(</code><code class=\"variable-group\">)</code></span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Add an iterable's items to this instance.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>xs</code></strong> - Iterable of items to add (each <code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>This instance (<a href=\"pygeodesy.fsums.Fsum-class.html\" \n          class=\"link\">Fsum</a>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>OverflowError</strong></code> - Partial <code>2sum</code> overflow.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - An invalid <b><code>xs</code></b> item.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid or <i>non-finite</i> <b><code>xs</code></b> value.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"fadd_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">fadd_</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">*xs</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Add all positional items to this instance.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>xs</code></strong> - Values to add (each <code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>), all positional.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <a href=\"pygeodesy.fsums.Fsum-class.html#fadd\" \n        class=\"link\">Fsum.fadd</a> for further details.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"fcopy\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">fcopy</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">deep</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Copy this instance, <code>shallow</code> or \n  <b><code>deep</code></b>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional, overriding <code><b>name</b>='&quot;copy&quot;</code> \n          (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The copy (<a href=\"pygeodesy.fsums.Fsum-class.html\" \n          class=\"link\">Fsum</a>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"fdiv\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">fdiv</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>,\n        <span class=\"sig-arg\">**raiser_RESIDUAL</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Apply <code><b>self</b> /= <b>other</b></code> to this instance.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>other</code></strong> - Divisor (<code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>raiser_RESIDUAL</code></strong> - Use <code><b>raiser</b>=False</code> to ignore <a \n          href=\"pygeodesy.fsums.ResidualError-class.html\" \n          class=\"link\">ResidualError</a>s (<code>bool</code>) and \n          <code><b>RESIDUAL</b>=scalar</code> to override the current <a \n          href=\"pygeodesy.fsums.Fsum-class.html#RESIDUAL\" \n          class=\"link\">RESIDUAL</a>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>This instance, updated (<a href=\"pygeodesy.fsums.Fsum-class.html\"\n          class=\"link\">Fsum</a>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>OverflowError</strong></code> - Partial <code>2sum</code> overflow.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.fsums.ResidualError-class.html\">ResidualError</a></strong></code> - Non-zero, significant residual or invalid \n        <b><code>RESIDUAL</code></b>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>other</code></b> type.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid or <i>non-finite</i> <b><code>other</code></b>.</li>\n        <li><code><strong class='fraise'>ZeroDivisionError</strong></code> - Zero <b><code>other</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <a href=\"pygeodesy.fsums.Fsum-class.html#__ifloordiv__\" \n        class=\"link\">Fsum.__ifloordiv__</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"fdivmod\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">fdivmod</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>,\n        <span class=\"sig-arg\">**raiser_RESIDUAL</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return <code>divmod(<b>self</b>, <b>other</b>)</code> as a <a \n  href=\"pygeodesy.fsums.DivMod2Tuple-class.html\" \n  class=\"link\">DivMod2Tuple</a> with quotient <code>div</code> an \n  <code>int</code> in Python 3+ or <code>float</code> in Python 2- and \n  remainder <code>mod</code> an <a href=\"pygeodesy.fsums.Fsum-class.html\" \n  class=\"link\">Fsum</a> instance.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>other</code></strong> - Modulus (<code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>raiser_RESIDUAL</code></strong> - Use <code><b>raiser</b>=False</code> to ignore <a \n          href=\"pygeodesy.fsums.ResidualError-class.html\" \n          class=\"link\">ResidualError</a>s (<code>bool</code>) and \n          <code><b>RESIDUAL</b>=scalar</code> to override the current <a \n          href=\"pygeodesy.fsums.Fsum-class.html#RESIDUAL\" \n          class=\"link\">RESIDUAL</a>.</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.fsums.ResidualError-class.html\">ResidualError</a></strong></code> - Non-zero, significant residual or invalid \n        <b><code>RESIDUAL</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <a href=\"pygeodesy.fsums.Fsum-class.html#__itruediv__\" \n        class=\"link\">Fsum.fdiv</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"fint\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">fint</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">name</span>=<span class=\"sig-default\">''</span>,\n        <span class=\"sig-arg\">**raiser_RESIDUAL</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return this instance' current running sum as <code>integer</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional, overriding <code><b>name</b>=&quot;fint&quot;</code> \n          (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>raiser_RESIDUAL</code></strong> - Use <code><b>raiser</b>=False</code> to ignore <a \n          href=\"pygeodesy.fsums.ResidualError-class.html\" \n          class=\"link\">ResidualError</a>s (<code>bool</code>) and \n          <code><b>RESIDUAL</b>=scalar</code> to override the current <a \n          href=\"pygeodesy.fsums.Fsum-class.html#RESIDUAL\" \n          class=\"link\">RESIDUAL</a>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The <code>integer</code> sum (<a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a>) if \n          this instance <code>is_integer</code> with a zero or \n          insignificant <i>integer</i> residual.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.fsums.ResidualError-class.html\">ResidualError</a></strong></code> - Non-zero, significant residual or invalid \n        <b><code>RESIDUAL</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Methods <a href=\"pygeodesy.fsums.Fsum-class.html#fint2\" \n        class=\"link\">Fsum.fint2</a>, <a \n        href=\"pygeodesy.fsums.Fsum-class.html#int_float\" \n        class=\"link\">Fsum.int_float</a> and <a \n        href=\"pygeodesy.fsums.Fsum-class.html#is_integer\" \n        class=\"link\">Fsum.is_integer</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"fint2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">fint2</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return this instance' current running sum as <code>int</code> and the \n  <i>integer</i> residual.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional name (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>An <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a><code>(fsum, residual)</code> with \n          <code>fsum</code> an <code>int</code> and <i>integer</i> \n          <code>residual</code> a <code>float</code> or <code>INT0</code> \n          if the <code>fsum</code> is considered to be <i>exact</i>. The \n          <code>fsum</code> is <i>non-finite</i> if this instance is.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"fma\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">fma</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other1</span>,\n        <span class=\"sig-arg\">other2</span>,\n        <span class=\"sig-arg\">**nonfinites</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Fused-multiply-add <code>self *= <b>other1</b>; self += \n  <b>other2</b></code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>other1</code></strong> - Multiplier (<code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>other2</code></strong> - Addend (<code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>nonfinites</code></strong> - Use <code><b>nonfinites</b>=True</code> or <code>False</code>, to\n          override <a href=\"pygeodesy.fsums.Fsum-class.html#nonfinites\" \n          class=\"link\">nonfinites</a> and the <a \n          href=\"pygeodesy.fsums-module.html#nonfiniterrors\" \n          class=\"link\">nonfiniterrors</a> default (<code>bool</code>).</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"fma_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">fma_</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">*xys</span>,\n        <span class=\"sig-arg\">**nonfinites</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Fused-multiply-accumulate <code>for i in range(0, len(xys), <b>2</b>):\n  self = </code><a href=\"pygeodesy.fmath-module.html#fma\" \n  class=\"link\">fma</a><code>(xys[i], xys[i+1], self)</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>xys</code></strong> - Pairwise multiplicand, multiplier (each <code>scalar</code>, an \n          <a href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> \n          or <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>), all positional.</li>\n        <li><strong class=\"pname\"><code>nonfinites</code></strong> - Use <code><b>nonfinites</b>=True</code> or <code>False</code>, to\n          override <a href=\"pygeodesy.fsums.Fsum-class.html#nonfinites\" \n          class=\"link\">nonfinites</a> and the <a \n          href=\"pygeodesy.fsums-module.html#nonfiniterrors\" \n          class=\"link\">nonfiniterrors</a> default (<code>bool</code>).</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        Equivalent to <a href=\"pygeodesy.fmath-module.html#fdot_\" \n        class=\"link\">fdot_</a><code>(*xys, start=self)</code>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"fmul\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">fmul</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Apply <code><b>self</b> *= <b>other</b></code> to this instance.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>other</code></strong> - Factor (<code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>This instance, updated (<a href=\"pygeodesy.fsums.Fsum-class.html\"\n          class=\"link\">Fsum</a>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>OverflowError</strong></code> - Partial <code>2sum</code> overflow.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>other</code></b> type.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid or <i>non-finite</i> <b><code>other</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"f2mul\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">f2mul</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">*others</span>,\n        <span class=\"sig-arg\">**raiser</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED on 2024.09.13, use method <a \n  href=\"pygeodesy.fsums.Fsum-class.html#f2mul_\" \n  class=\"link\">f2mul_</a>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_method</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"f2mul_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">f2mul_</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">*others</span>,\n        <span class=\"sig-arg\">**f2product_nonfinites</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return <code><b>self</b> * <b>other</b> * <b>other</b> ...</code> for \n  all <b><code>others</code></b> using cascaded, accurate multiplication \n  like with <a href=\"pygeodesy.fsums.Fsum-class.html#f2product\" \n  class=\"link\">f2product</a><code>(<b>True</b>)</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>others</code></strong> - Multipliers (each <code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>), all positional.</li>\n        <li><strong class=\"pname\"><code>f2product_nonfinites</code></strong> - Use <code><b>f2product=False</b></code> to override the default \n          <code>True</code> and <code><b>nonfinites</b>=True</code> or \n          <code>False</code>, to override settings <a \n          href=\"pygeodesy.fsums.Fsum-class.html#nonfinites\" \n          class=\"link\">nonfinites</a> and <a \n          href=\"pygeodesy.fsums-module.html#nonfiniterrors\" \n          class=\"link\">nonfiniterrors</a>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The cascaded <i>TwoProduct</i> (<a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <code>float</code>).</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"https://www.TUHH.De/ti3/paper/rump/OzOgRuOi06.pdf\" \n        target=\"_top\">Equations 2.3</a>\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"fover\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">fover</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">over</span>,\n        <span class=\"sig-arg\">**raiser_RESIDUAL</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Apply <code><b>self</b> /= <b>over</b></code> and summate.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>over</code></strong> - Divisor (<code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>raiser_RESIDUAL</code></strong> - Use <code><b>raiser</b>=False</code> to ignore <a \n          href=\"pygeodesy.fsums.ResidualError-class.html\" \n          class=\"link\">ResidualError</a>s (<code>bool</code>) and \n          <code><b>RESIDUAL</b>=scalar</code> to override the current <a \n          href=\"pygeodesy.fsums.Fsum-class.html#RESIDUAL\" \n          class=\"link\">RESIDUAL</a>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Precision running quotient sum (<code>float</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.fsums.ResidualError-class.html\">ResidualError</a></strong></code> - Non-zero, significant residual or invalid \n        <b><code>RESIDUAL</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Methods <a href=\"pygeodesy.fsums.Fsum-class.html#__itruediv__\" \n        class=\"link\">Fsum.fdiv</a>, <a \n        href=\"pygeodesy.fsums.Fsum-class.html#__itruediv__\" \n        class=\"link\">Fsum.__itruediv__</a> and <a \n        href=\"pygeodesy.fsums.Fsum-class.html#fsum\" \n        class=\"link\">Fsum.fsum</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"fpow\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">fpow</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>,\n        <span class=\"sig-arg\">*mod</span>,\n        <span class=\"sig-arg\">**raiser_RESIDUAL</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Apply <code><b>self</b> **= <b>other</b></code> to this instance.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>other</code></strong> - Exponent (<code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>mod</code></strong> - Optional modulus (<code>int</code> or <code>None</code>) for the \n          3-argument <code>pow(<b>self</b>, <b>other</b>, \n          <b>mod</b>)</code> version.</li>\n        <li><strong class=\"pname\"><code>raiser_RESIDUAL</code></strong> - Use <code><b>raiser</b>=False</code> to ignore <a \n          href=\"pygeodesy.fsums.ResidualError-class.html\" \n          class=\"link\">ResidualError</a>s (<code>bool</code>) and \n          <code><b>RESIDUAL</b>=scalar</code> to override the current <a \n          href=\"pygeodesy.fsums.Fsum-class.html#RESIDUAL\" \n          class=\"link\">RESIDUAL</a>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>This instance, updated (<a href=\"pygeodesy.fsums.Fsum-class.html\"\n          class=\"link\">Fsum</a>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>OverflowError</strong></code> - Partial <code>2sum</code> overflow.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.fsums.ResidualError-class.html\">ResidualError</a></strong></code> - Invalid <b><code>RESIDUAL</code></b> or the residual is non-zero \n        and significant and either <b><code>other</code></b> is a \n        fractional or negative <code>scalar</code> or \n        <b><code>mod</code></b> is given and not <code>None</code>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>other</code></b> type or 3-argument \n        <code>pow</code> invocation failed.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - If <b><code>other</code></b> is a negative <code>scalar</code> and \n        this instance is <code>0</code> or <b><code>other</code></b> is a \n        fractional <code>scalar</code> and this instance is negative or has\n        a non-zero and significant residual or <b><code>mod</code></b> is \n        given as <code>0</code>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        If <b><code>mod</code></b> is given, the result will be an \n        <code>integer</code> <a href=\"pygeodesy.fsums.Fsum-class.html\" \n        class=\"link\">Fsum</a> in Python 3+ if this instance \n        <code>is_integer</code> or set to <code>as_integer</code> and \n        <b><code>mod</code></b> is given and <code>None</code>.\n      </p>\n      <p><strong>See Also:</strong>\n        CPython function <a \n        href=\"https://GitHub.com/python/cpython/blob/main/Objects/floatobject.c\"\n        target=\"_top\">float_pow</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"f2product\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">f2product</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">*two</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Get and set accurate <i>TwoProduct</i> multiplication for this <a \n  href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a>, overriding \n  the <a href=\"pygeodesy.fsums.Fsum-class.html#f2product\" \n  class=\"link\">f2product</a> default.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>two</code></strong> - If omitted, leave the override unchanged, if <code>True</code>, \n          turn <i>TwoProduct</i> on, if <code>False</code> off, or if \n          <code>None</code> remove the override (<code>bool</code> or \n          <code>None</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The previous setting (<code>bool</code> or <code>None</code> if \n          not set).</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.fsums-module.html#f2product\" \n        class=\"link\">f2product</a>.\n      </p>\n      <p><strong>Note:</strong>\n        Use <code>f.f2product() or f2product()</code> to determine whether \n        multiplication is accurate for <a \n        href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> \n        <code>f</code>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"fset_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">fset_</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">*xs</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Apply <code><b>self</b>.partials = \n  Fsum(*<b>xs</b>).partials</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>xs</code></strong> - Optional, new values (each <code>scalar</code> or an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a> instance), all positional.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>This instance, replaced (<code>Fsum</code>).</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <a href=\"pygeodesy.fsums.Fsum-class.html#fadd\" \n        class=\"link\">Fsum.fadd</a> for further details.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"fsub\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">fsub</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">xs</span>=<span class=\"sig-default\"><code class=\"variable-group\">(</code><code class=\"variable-group\">)</code></span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Subtract an iterable's items from this instance.</p>\n  <dl class=\"fields\">\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <a href=\"pygeodesy.fsums.Fsum-class.html#fadd\" \n        class=\"link\">Fsum.fadd</a> for further details.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"fsub_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">fsub_</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">*xs</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Subtract all positional items from this instance.</p>\n  <dl class=\"fields\">\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <a href=\"pygeodesy.fsums.Fsum-class.html#fadd_\" \n        class=\"link\">Fsum.fadd_</a> for further details.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"fsum\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">fsum</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">xs</span>=<span class=\"sig-default\"><code class=\"variable-group\">(</code><code class=\"variable-group\">)</code></span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Add an iterable's items, summate and return the current precision \n  running sum.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>xs</code></strong> - Iterable of items to add (each item <code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Precision running sum (<code>float</code> or <code>int</code>).</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <a href=\"pygeodesy.fsums.Fsum-class.html#fadd\" \n        class=\"link\">Fsum.fadd</a>.\n      </p>\n      <p><strong>Note:</strong>\n        Accumulation can continue after summation.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"fsum_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">fsum_</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">*xs</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Add any positional items, summate and return the current precision \n  running sum.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>xs</code></strong> - Items to add (each <code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>), all positional.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Precision running sum (<code>float</code> or <code>int</code>).</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Methods <a href=\"pygeodesy.fsums.Fsum-class.html#fsum\" \n        class=\"link\">Fsum.fsum</a>, <a \n        href=\"pygeodesy.fsums.Fsum-class.html#Fsum_\" \n        class=\"link\">Fsum.Fsum_</a> and <a \n        href=\"pygeodesy.fsums.Fsum-class.html#fsumf_\" \n        class=\"link\">Fsum.fsumf_</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"Fsum_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">Fsum_</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">*xs</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Like method <a href=\"pygeodesy.fsums.Fsum-class.html#fsum_\" \n  class=\"link\">Fsum.fsum_</a> but returning a named <a \n  href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional name (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Copy of this updated instance (<a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"Fsum2Tuple_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">Fsum2Tuple_</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">*xs</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Like method <a href=\"pygeodesy.fsums.Fsum-class.html#fsum_\" \n  class=\"link\">Fsum.fsum_</a> but returning a named <a \n  href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n  class=\"link\">Fsum2Tuple</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional name (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Precision running sum (<a \n          href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"fsum2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">fsum2</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">xs</span>=<span class=\"sig-default\"><code class=\"variable-group\">(</code><code class=\"variable-group\">)</code></span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Add an iterable's items, summate and return the current precision \n  running sum <i>and</i> the <code>residual</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>xs</code></strong> - Iterable of items to add (each item <code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a><code>(fsum, residual)</code> with \n          <code>fsum</code> the current precision running sum and \n          <code>residual</code>, the (precision) sum of the remaining \n          <code>partials</code>.  The <code>residual is INT0</code> if the \n          <code>fsum</code> is considered to be <i>exact</i>.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Methods <a href=\"pygeodesy.fsums.Fsum-class.html#fint2\" \n        class=\"link\">Fsum.fint2</a>, <a \n        href=\"pygeodesy.fsums.Fsum-class.html#fsum\" \n        class=\"link\">Fsum.fsum</a> and <a \n        href=\"pygeodesy.fsums.Fsum-class.html#fsum2_\" \n        class=\"link\">Fsum.fsum2_</a>\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"fsum2_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">fsum2_</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">*xs</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Add any positional items, summate and return the current precision \n  running sum and the <i>differential</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>xs</code></strong> - Values to add (each <code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>), all positional.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>2Tuple <code>(fsum, delta)</code> with the current, precision \n          running <code>fsum</code> like method <a \n          href=\"pygeodesy.fsums.Fsum-class.html#fsum\" \n          class=\"link\">Fsum.fsum</a> and <code>delta</code>, the difference\n          with previous running <code>fsum</code>, <code>float</code>.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Methods <a href=\"pygeodesy.fsums.Fsum-class.html#fsum_\" \n        class=\"link\">Fsum.fsum_</a> and <a \n        href=\"pygeodesy.fsums.Fsum-class.html#fsum\" \n        class=\"link\">Fsum.fsum</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"int_float\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">int_float</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">**raiser_RESIDUAL</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return this instance' current running sum as <code>int</code> or \n  <code>float</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>raiser_RESIDUAL</code></strong> - Use <code><b>raiser</b>=False</code> to ignore <a \n          href=\"pygeodesy.fsums.ResidualError-class.html\" \n          class=\"link\">ResidualError</a>s (<code>bool</code>) and \n          <code><b>RESIDUAL</b>=scalar</code> to override the current <a \n          href=\"pygeodesy.fsums.Fsum-class.html#RESIDUAL\" \n          class=\"link\">RESIDUAL</a>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>This <code>int</code> sum if this instance \n          <code>is_integer</code> and <i>finite</i>, otherwise the \n          <code>float</code> sum if the residual is zero or not \n          significant.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.fsums.ResidualError-class.html\">ResidualError</a></strong></code> - Non-zero, significant residual or invalid \n        <b><code>RESIDUAL</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Methods <a href=\"pygeodesy.fsums.Fsum-class.html#fint\" \n        class=\"link\">Fsum.fint</a>, <a \n        href=\"pygeodesy.fsums.Fsum-class.html#fint2\" \n        class=\"link\">Fsum.fint2</a>, <a \n        href=\"pygeodesy.fsums.Fsum-class.html#is_integer\" \n        class=\"link\">Fsum.is_integer</a>, <a \n        href=\"pygeodesy.fsums.Fsum-class.html#RESIDUAL\" \n        class=\"link\">Fsum.RESIDUAL</a> and property <a \n        href=\"pygeodesy.fsums.Fsum-class.html#as_iscalar\" \n        class=\"link\">Fsum.as_iscalar</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"is_finite\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">is_finite</span>&nbsp;(<span class=\"sig-arg\">self</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Is this instance <code>finite</code>? (<code>bool</code>).</p>\n  <dl class=\"fields\">\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.constants-module.html#isfinite\" \n        class=\"link\">isfinite</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"is_integer\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">is_integer</span>&nbsp;(<span class=\"sig-arg\">self</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Is this instance' running sum <code>integer</code>? \n  (<code>bool</code>).</p>\n  <dl class=\"fields\">\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Methods <a href=\"pygeodesy.fsums.Fsum-class.html#fint\" \n        class=\"link\">Fsum.fint</a>, <a \n        href=\"pygeodesy.fsums.Fsum-class.html#fint2\" \n        class=\"link\">Fsum.fint2</a> and <a \n        href=\"pygeodesy.fsums.Fsum-class.html#is_scalar\" \n        class=\"link\">Fsum.is_scalar</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"is_math_fma\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">is_math_fma</span>&nbsp;(<span class=\"sig-arg\">self</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Is accurate <a href=\"pygeodesy.fsums.Fsum-class.html#f2product\" \n  class=\"link\">f2product</a> multiplication based on Python's \n  <code>math.fma</code>?</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd><code>True</code> if accurate multiplication uses \n          <code>math.fma</code>, <code>False</code> an <code>fma</code> \n          implementation as <code>math.fma</code> or <code>None</code>, a \n          previous <code>PyGeodesy</code> implementation.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"is_math_fsum\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">is_math_fsum</span>&nbsp;(<span class=\"sig-arg\">self</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Are the summation functions <a \n  href=\"pygeodesy.fsums.Fsum-class.html#fsum\" class=\"link\">fsum</a>, <a \n  href=\"pygeodesy.fsums.Fsum-class.html#fsum_\" class=\"link\">fsum_</a>, <a \n  href=\"pygeodesy.fsums.Fsum-class.html#fsumf_\" class=\"link\">fsumf_</a>, <a\n  href=\"pygeodesy.fsums-module.html#fsum1\" class=\"link\">fsum1</a>, <a \n  href=\"pygeodesy.fsums-module.html#fsum1_\" class=\"link\">fsum1_</a> and <a \n  href=\"pygeodesy.fsums-module.html#fsum1f_\" class=\"link\">fsum1f_</a> based\n  on Python's <code>math.fsum</code>?</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd><code>True</code> if summation functions use \n          <code>math.fsum</code>, <code>False</code> otherwise.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"is_scalar\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">is_scalar</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">**raiser_RESIDUAL</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Is this instance' running sum <code>scalar</code> with <code>0</code> \n  residual or with a residual <i>ratio</i> not exceeding the RESIDUAL \n  threshold?</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>raiser_RESIDUAL</code></strong> - Use <code><b>raiser</b>=False</code> to ignore <a \n          href=\"pygeodesy.fsums.ResidualError-class.html\" \n          class=\"link\">ResidualError</a>s (<code>bool</code>) and \n          <code><b>RESIDUAL</b>=scalar</code> to override the current <a \n          href=\"pygeodesy.fsums.Fsum-class.html#RESIDUAL\" \n          class=\"link\">RESIDUAL</a>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>True</code> if this instance' residual is <code>0</code> or\n          <code>insignificant</code>, i.e. its residual <code>ratio</code> \n          doesn't exceed the <a \n          href=\"pygeodesy.fsums.Fsum-class.html#RESIDUAL\" \n          class=\"link\">RESIDUAL</a> threshold (<code>bool</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.fsums.ResidualError-class.html\">ResidualError</a></strong></code> - Non-zero, significant residual or invalid \n        <b><code>RESIDUAL</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Methods <a href=\"pygeodesy.fsums.Fsum-class.html#RESIDUAL\" \n        class=\"link\">Fsum.RESIDUAL</a> and <a \n        href=\"pygeodesy.fsums.Fsum-class.html#is_integer\" \n        class=\"link\">Fsum.is_integer</a> and property <a \n        href=\"pygeodesy.fsums.Fsum-class.html#as_iscalar\" \n        class=\"link\">Fsum.as_iscalar</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"nonfinites\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">nonfinites</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">*OK</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Handle <i>non-finite</i> <code>float</code>s as <code>inf</code>, \n  <code>INF</code>, <code>NINF</code>, <code>nan</code> and \n  <code>NAN</code> for this <a href=\"pygeodesy.fsums.Fsum-class.html\" \n  class=\"link\">Fsum</a> or throw <code>OverflowError</code> respectively \n  <code>ValueError</code> exceptions, overriding the <a \n  href=\"pygeodesy.fsums-module.html#nonfiniterrors\" \n  class=\"link\">nonfiniterrors</a> default.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>OK</code></strong> - If omitted, leave the override unchanged, if <code>True</code>, \n          <i>non-finites</i> are <code>OK</code>, if <code>False</code> \n          throw exceptions or if <code>None</code> remove the override \n          (<code>bool</code> or <code>None</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The previous setting (<code>bool</code> or <code>None</code> if \n          not set).</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.fsums-module.html#nonfiniterrors\" \n        class=\"link\">nonfiniterrors</a>.\n      </p>\n      <p><strong>Note:</strong>\n        Use property <a href=\"pygeodesy.fsums.Fsum-class.html#nonfinitesOK\"\n        class=\"link\">nonfinitesOK</a> to determine whether \n        <i>non-finites</i> are <code>OK</code> for this <a \n        href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or by \n        the <a href=\"pygeodesy.fsums-module.html#nonfiniterrors\" \n        class=\"link\">nonfiniterrors</a> default.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"pow\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">pow</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">x</span>,\n        <span class=\"sig-arg\">*mod</span>,\n        <span class=\"sig-arg\">**raiser_RESIDUAL</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return <code><b>self</b>**<b>x</b></code> as <a \n  href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>x</code></strong> - The exponent (<code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>mod</code></strong> - Optional modulus (<code>int</code> or <code>None</code>) for the \n          3-argument <code>pow(<b>self</b>, <b>other</b>, \n          <b>mod</b>)</code> version.</li>\n        <li><strong class=\"pname\"><code>raiser_RESIDUAL</code></strong> - Use <code><b>raiser</b>=False</code> to ignore <a \n          href=\"pygeodesy.fsums.ResidualError-class.html\" \n          class=\"link\">ResidualError</a>s (<code>bool</code>) and \n          <code><b>RESIDUAL</b>=scalar</code> to override the current <a \n          href=\"pygeodesy.fsums.Fsum-class.html#RESIDUAL\" \n          class=\"link\">RESIDUAL</a>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The <code>pow(self, <b>x</b>)</code> or <code>pow(self, <b>x</b>,\n          *<b>mod</b>)</code> result (<a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.fsums.ResidualError-class.html\">ResidualError</a></strong></code> - Non-zero, significant residual or invalid \n        <b><code>RESIDUAL</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        If <b><code>mod</code></b> is given and <code>None</code>, the \n        result will be an <code>integer</code> <a \n        href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> \n        provided this instance <code>is_integer</code> or set to \n        <code>integer</code> by an <a \n        href=\"pygeodesy.fsums.Fsum-class.html#fint\" \n        class=\"link\">Fsum.fint</a> call.\n      </p>\n      <p><strong>See Also:</strong>\n        Methods <a href=\"pygeodesy.fsums.Fsum-class.html#__ipow__\" \n        class=\"link\">Fsum.__ipow__</a>, <a \n        href=\"pygeodesy.fsums.Fsum-class.html#fint\" \n        class=\"link\">Fsum.fint</a>, <a \n        href=\"pygeodesy.fsums.Fsum-class.html#is_integer\" \n        class=\"link\">Fsum.is_integer</a> and <a \n        href=\"pygeodesy.fsums.Fsum-class.html#root\" \n        class=\"link\">Fsum.root</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"rdiv\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">rdiv</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>,\n        <span class=\"sig-arg\">**raiser_RESIDUAL</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return <code><b>other</b> / <b>self</b></code> as an <a \n  href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a>.</p>\n  <dl class=\"fields\">\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <a href=\"pygeodesy.fsums.Fsum-class.html#__itruediv__\" \n        class=\"link\">Fsum.__itruediv__</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"RESIDUAL\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">RESIDUAL</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">*threshold</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Get and set this instance' <i>ratio</i> for raising <a \n  href=\"pygeodesy.fsums.ResidualError-class.html\" \n  class=\"link\">ResidualError</a>s, overriding the default from env variable\n  <code>PYGEODESY_FSUM_RESIDUAL</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>threshold</code></strong> - If <code>scalar</code>, the <i>ratio</i> to exceed for raising <a\n          href=\"pygeodesy.fsums.ResidualError-class.html\" \n          class=\"link\">ResidualError</a>s in division and exponention, if \n          <code>None</code>, restore the default set with env variable \n          <code>PYGEODESY_FSUM_RESIDUAL</code> or if omitted, keep the \n          current setting.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The previous <code>RESIDUAL</code> setting (<code>float</code>), \n          default <code>0.0</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.fsums.ResidualError-class.html\">ResidualError</a></strong></code> - Invalid <b><code>threshold</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        <a href=\"pygeodesy.fsums.ResidualError-class.html\" \n        class=\"link\">ResidualError</a>s may be thrown if (1) the non-zero \n        <i>ratio</i> <code>residual / fsum</code> exceeds the given \n        <b><code>threshold</code></b> and (2) the <code>residual</code> is \n        non-zero and (3) is <i>significant</i> vs the <code>fsum</code>, \n        i.e. <code>(fsum + residual) != fsum</code> and (4) optional \n        keyword argument <code>raiser=False</code> is missing.  Specify a \n        negative <b><code>threshold</code></b> for only non-zero \n        <code>residual</code> testing without the <i>significant</i> case.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"root\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">root</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">root</span>,\n        <span class=\"sig-arg\">**raiser_RESIDUAL</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return <code><b>self</b>**(1 / <b>root</b>)</code> as <a \n  href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>root</code></strong> - Non-zero order (<code>scalar</code>, an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or \n          <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n          class=\"link\">Fsum2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>raiser_RESIDUAL</code></strong> - Use <code><b>raiser</b>=False</code> to ignore any <a \n          href=\"pygeodesy.fsums.ResidualError-class.html\" \n          class=\"link\">ResidualError</a>s (<code>bool</code>) or \n          <code><b>RESIDUAL</b>=scalar</code> to override the current <a \n          href=\"pygeodesy.fsums.Fsum-class.html#RESIDUAL\" \n          class=\"link\">RESIDUAL</a>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The <code>self ** (1 / <b>root</b>)</code> result (<a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.fsums.ResidualError-class.html\">ResidualError</a></strong></code> - Non-zero, significant residual or invalid \n        <b><code>RESIDUAL</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <a href=\"pygeodesy.fsums.Fsum-class.html#pow\" \n        class=\"link\">Fsum.pow</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"signOf\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">signOf</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">res</span>=<span class=\"sig-default\">True</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Determine the sign of this instance.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>res</code></strong> - If <code>True</code>, consider the residual, otherwise ignore the\n          latter (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The sign (<code>int</code>, -1, 0 or +1).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toRepr\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toRepr</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">**lenc_prec_sep_fmt</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return this <code>Fsum</code> instance as representation.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lenc_prec_sep_fmt</code></strong> - Optional keyword arguments for method <a \n          href=\"pygeodesy.fsums.Fsum-class.html#toStr\" \n          class=\"link\">Fsum.toStr</a>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>This instance (<code>repr</code>).</dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.named._Named-class.html#toRepr\">named._Named.toRepr</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toStr\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toStr</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lenc</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">**prec_sep_fmt</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return this <code>Fsum</code> instance as string.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lenc</code></strong> - If <code>True</code>, include the current <code>[len]</code> of \n          this <a href=\"pygeodesy.fsums.Fsum-class.html\" \n          class=\"link\">Fsum</a> enclosed in <i>[brackets]</i> \n          (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>prec_sep_fmt</code></strong> - Optional keyword arguments for method <a \n          href=\"pygeodesy.fsums.Fsum2Tuple-class.html#toStr\" \n          class=\"link\">Fsum2Tuple.toStr</a>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>This instance (<code>str</code>).</dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.named._Named-class.html#toStr\">named._Named.toStr</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"as_iscalar\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">as_iscalar</h3>\n  <p>Get this instance <i>as-is</i> (<a \n  href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> with \n  <code>non-zero residual</code>, <code>scalar</code> or \n  <i>non-finite</i>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">as_iscalar(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get this instance <i>as-is</i> (<a href=\"pygeodesy.fsums.Fsum-class.html\" \nclass=\"link\">Fsum</a> with <code>non-zero residual</code>, \n<code>scalar</code> or <i>non-finite</i>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"ceil\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">ceil</h3>\n  <p>Get this instance' <code>ceil</code> value (<code>int</code> in Python\n  3+, but <code>float</code> in Python 2-).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">ceil(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get this instance' <code>ceil</code> value (<code>int</code> in Python 3+, \nbut <code>float</code> in Python 2-).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        This <code>ceil</code> takes the <code>residual</code> into \n        account.\n      </p>\n      <p><strong>See Also:</strong>\n        Method <a href=\"pygeodesy.fsums.Fsum-class.html#int_float\" \n        class=\"link\">Fsum.int_float</a> and properties <a \n        href=\"pygeodesy.fsums.Fsum-class.html#floor\" \n        class=\"link\">Fsum.floor</a>, <a \n        href=\"pygeodesy.fsums.Fsum-class.html#imag\" \n        class=\"link\">Fsum.imag</a> and <a \n        href=\"pygeodesy.fsums.Fsum-class.html#real\" \n        class=\"link\">Fsum.real</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"float_int\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">float_int</h3>\n  <p>DEPRECATED, use method <code>Fsum.int_float</code>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">float_int(<span class=\"summary-sig-arg\">self</span>)</span>\n        - DEPRECATED, use method <code>Fsum.int_float</code>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"floor\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">floor</h3>\n  <p>Get this instance' <code>floor</code> (<code>int</code> in Python 3+, \n  but <code>float</code> in Python 2-).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">floor(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get this instance' <code>floor</code> (<code>int</code> in Python 3+, but \n<code>float</code> in Python 2-).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        This <code>floor</code> takes the <code>residual</code> into \n        account.\n      </p>\n      <p><strong>See Also:</strong>\n        Method <a href=\"pygeodesy.fsums.Fsum-class.html#int_float\" \n        class=\"link\">Fsum.int_float</a> and properties <a \n        href=\"pygeodesy.fsums.Fsum-class.html#ceil\" \n        class=\"link\">Fsum.ceil</a>, <a \n        href=\"pygeodesy.fsums.Fsum-class.html#imag\" \n        class=\"link\">Fsum.imag</a> and <a \n        href=\"pygeodesy.fsums.Fsum-class.html#real\" \n        class=\"link\">Fsum.real</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"imag\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">imag</h3>\n  <p>Get the <code>imaginary</code> part of this instance \n  (<code>0.0</code>, always).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">imag(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <code>imaginary</code> part of this instance (<code>0.0</code>, \nalways).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Property <a href=\"pygeodesy.fsums.Fsum-class.html#real\" \n        class=\"link\">Fsum.real</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"nonfinitesOK\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">nonfinitesOK</h3>\n  <p>Are <i>non-finites</i> <code>OK</code> for this <a \n  href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or by \n  default? (<code>bool</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">nonfinitesOK(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Are <i>non-finites</i> <code>OK</code> for this <a \nhref=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> or by default?\n(<code>bool</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"partials\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">partials</h3>\n  <p>Get this instance' current, partial sums (<code>tuple</code> of \n  <code>float</code>s).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">partials(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get this instance' current, partial sums (<code>tuple</code> of \n<code>float</code>s).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"real\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">real</h3>\n  <p>Get the <code>real</code> part of this instance \n  (<code>float</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">real(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <code>real</code> part of this instance (<code>float</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Methods <a href=\"pygeodesy.fsums.Fsum-class.html#__float__\" \n        class=\"link\">Fsum.__float__</a> and <a \n        href=\"pygeodesy.fsums.Fsum-class.html#fsum\" \n        class=\"link\">Fsum.fsum</a> and properties <a \n        href=\"pygeodesy.fsums.Fsum-class.html#ceil\" \n        class=\"link\">Fsum.ceil</a>, <a \n        href=\"pygeodesy.fsums.Fsum-class.html#floor\" \n        class=\"link\">Fsum.floor</a>, <a \n        href=\"pygeodesy.fsums.Fsum-class.html#imag\" \n        class=\"link\">Fsum.imag</a> and <a \n        href=\"pygeodesy.fsums.Fsum-class.html#residual\" \n        class=\"link\">Fsum.residual</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"residual\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">residual</h3>\n  <p>Get this instance' residual or residue (<code>float</code> or \n  <code>int</code>): the <code>sum(partials)</code> less the precision \n  running sum <code>fsum</code>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">residual(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get this instance' residual or residue (<code>float</code> or \n<code>int</code>): the <code>sum(partials)</code> less the precision \nrunning sum <code>fsum</code>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        The <code>residual is INT0</code> iff the precision running \n        <code>fsum</code> is considered to be <i>exact</i>.\n      </p>\n      <p><strong>See Also:</strong>\n        Methods <a href=\"pygeodesy.fsums.Fsum-class.html#fsum\" \n        class=\"link\">Fsum.fsum</a>, <a \n        href=\"pygeodesy.fsums.Fsum-class.html#fsum2\" \n        class=\"link\">Fsum.fsum2</a> and <a \n        href=\"pygeodesy.fsums.Fsum-class.html#is_exact\" \n        class=\"link\">Fsum.is_exact</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.fsums.Fsum2Tuple-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.fsums.Fsum2Tuple</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.fsums-module.html\">Module&nbsp;fsums</a> ::\n        Class&nbsp;Fsum2Tuple\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Fsum2Tuple</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n   object --+        \n            |        \n        tuple --+    \n                |    \n   object --+   |    \n            |   |    \n <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n                |    \n<a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a> --+\n                    |\n                   <strong class=\"uidshort\">Fsum2Tuple</strong>\n</pre>\n\n<hr />\n<p>2-Tuple <code>(fsum, residual)</code> with the precision running \n  <code>fsum</code> and the <code>residual</code>, the sum of the remaining\n  partials.  Each item is <code>float</code> or <code>int</code>.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Note:</strong>\n        If the <code>residual is INT0</code>, the <code>fsum</code> is \n        considered to be <i>exact</i>, see method <a \n        href=\"pygeodesy.fsums.Fsum2Tuple-class.html#is_exact\" \n        class=\"link\">Fsum2Tuple.is_exact</a>.\n      </p>\n</div><!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__abs__\"></a><span class=\"summary-sig-name\">__abs__</span>(<span class=\"summary-sig-arg\">self</span>)</span></td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__bool__\"></a><span class=\"summary-sig-name\">__bool__</span>(<span class=\"summary-sig-arg\">self</span>)</span></td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fsums.Fsum2Tuple-class.html#__eq__\" class=\"summary-sig-name\">__eq__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span><br />\n      x==y</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__float__\"></a><span class=\"summary-sig-name\">__float__</span>(<span class=\"summary-sig-arg\">self</span>)</span></td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fsums.Fsum2Tuple-class.html#__ge__\" class=\"summary-sig-name\">__ge__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span><br />\n      x&gt;=y</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fsums.Fsum2Tuple-class.html#__gt__\" class=\"summary-sig-name\">__gt__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span><br />\n      x&gt;y</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fsums.Fsum2Tuple-class.html#__le__\" class=\"summary-sig-name\">__le__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span><br />\n      x&lt;=y</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fsums.Fsum2Tuple-class.html#__lt__\" class=\"summary-sig-name\">__lt__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span><br />\n      x&lt;y</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__int__\"></a><span class=\"summary-sig-name\">__int__</span>(<span class=\"summary-sig-arg\">self</span>)</span></td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fsums.Fsum2Tuple-class.html#__ne__\" class=\"summary-sig-name\">__ne__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span><br />\n      x!=y</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__neg__\"></a><span class=\"summary-sig-name\">__neg__</span>(<span class=\"summary-sig-arg\">self</span>)</span></td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__nonzero__\"></a><span class=\"summary-sig-name\">__nonzero__</span>(<span class=\"summary-sig-arg\">self</span>)</span></td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__pos__\"></a><span class=\"summary-sig-name\">__pos__</span>(<span class=\"summary-sig-arg\">self</span>)</span></td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fsums.Fsum2Tuple-class.html#as_integer_ratio\" class=\"summary-sig-name\">as_integer_ratio</a>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Return this instance as the ratio of 2 integers.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"Fsum_\"></a><span class=\"summary-sig-name\">Fsum_</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">*xs</span>,\n        <span class=\"summary-sig-arg\">**name_f2product_nonfinites_RESIDUAL</span>)</span><br />\n      Return this <code>Fsum2Tuple</code> as an <a \n      href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> plus \n      some <code>xs</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"is_exact\"></a><span class=\"summary-sig-name\">is_exact</span>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Is this <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n      class=\"link\">Fsum2Tuple</a> considered to be exact? \n      (<code>bool</code>).</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fsums.Fsum2Tuple-class.html#is_finite\" class=\"summary-sig-name\">is_finite</a>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Is this <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n      class=\"link\">Fsum2Tuple</a> <code>finite</code>? (<code>bool</code>).</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"is_integer\"></a><span class=\"summary-sig-name\">is_integer</span>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Is this <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n      class=\"link\">Fsum2Tuple</a> <code>integer</code>? \n      (<code>bool</code>).</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"signOf\"></a><span class=\"summary-sig-name\">signOf</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">**res</span>)</span><br />\n      Like method <a href=\"pygeodesy.fsums.Fsum-class.html#signOf\" \n      class=\"link\">Fsum.signOf</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.fsums.Fsum2Tuple-class.html#toStr\" class=\"summary-sig-name\">toStr</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">fmt</span>=<span class=\"summary-sig-default\">'g'</span>,\n        <span class=\"summary-sig-arg\">**prec_sep</span>)</span><br />\n      Return this <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n      class=\"link\">Fsum2Tuple</a> as string (<code>str</code>).</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__delattr__\">__delattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__getattr__\">__getattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__setattr__\">__setattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#items\">items</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iteritems\">iteritems</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iterunits\">iterunits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#reUnit\">reUnit</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toUnits\">toUnits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>tuple</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__iter__</code>,\n      <code>__len__</code>,\n      <code>__mul__</code>,\n      <code>__rmul__</code>,\n      <code>count</code>,\n      <code>index</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__new__\">__new__</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__eq__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__eq__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>)</span>\n    <br /><em class=\"fname\">(Equality operator)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>x==y</p>\n  <dl class=\"fields\">\n    <dt>Overrides:\n        tuple.__eq__\n        <dd><em class=\"note\">(inherited documentation)</em></dd>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__ge__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__ge__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>)</span>\n    <br /><em class=\"fname\">(Greater-than-or-equals operator)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>x&gt;=y</p>\n  <dl class=\"fields\">\n    <dt>Overrides:\n        tuple.__ge__\n        <dd><em class=\"note\">(inherited documentation)</em></dd>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__gt__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__gt__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>)</span>\n    <br /><em class=\"fname\">(Greater-than operator)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>x&gt;y</p>\n  <dl class=\"fields\">\n    <dt>Overrides:\n        tuple.__gt__\n        <dd><em class=\"note\">(inherited documentation)</em></dd>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__le__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__le__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>)</span>\n    <br /><em class=\"fname\">(Less-than-or-equals operator)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>x&lt;=y</p>\n  <dl class=\"fields\">\n    <dt>Overrides:\n        tuple.__le__\n        <dd><em class=\"note\">(inherited documentation)</em></dd>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__lt__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__lt__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>)</span>\n    <br /><em class=\"fname\">(Less-than operator)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>x&lt;y</p>\n  <dl class=\"fields\">\n    <dt>Overrides:\n        tuple.__lt__\n        <dd><em class=\"note\">(inherited documentation)</em></dd>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__ne__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__ne__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>x!=y</p>\n  <dl class=\"fields\">\n    <dt>Overrides:\n        tuple.__ne__\n        <dd><em class=\"note\">(inherited documentation)</em></dd>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"as_integer_ratio\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">as_integer_ratio</span>&nbsp;(<span class=\"sig-arg\">self</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return this instance as the ratio of 2 integers.</p>\n  <dl class=\"fields\">\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <a href=\"pygeodesy.fsums.Fsum-class.html#as_integer_ratio\" \n        class=\"link\">Fsum.as_integer_ratio</a> for further details.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"is_finite\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">is_finite</span>&nbsp;(<span class=\"sig-arg\">self</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Is this <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n  class=\"link\">Fsum2Tuple</a> <code>finite</code>? (<code>bool</code>).</p>\n  <dl class=\"fields\">\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.constants-module.html#isfinite\" \n        class=\"link\">isfinite</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"toStr\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toStr</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">fmt</span>=<span class=\"sig-default\">'g'</span>,\n        <span class=\"sig-arg\">**prec_sep</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return this <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\" \n  class=\"link\">Fsum2Tuple</a> as string (<code>str</code>).</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>fmt</code></strong> - Optional <code>float</code> format (<code>letter</code>).</li>\n        <li><strong class=\"pname\"><code>prec_sep</code></strong> - Optional keyword arguments for function <a \n          href=\"pygeodesy.streprs-module.html#fstr\" class=\"link\">fstr</a>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Tuple items (<code>str</code>).</dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.named._Named-class.html#toStr\">named._Named.toStr</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.fsums.ResidualError-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.fsums.ResidualError</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.fsums-module.html\">Module&nbsp;fsums</a> ::\n        Class&nbsp;ResidualError\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.fsums.ResidualError-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class ResidualError</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n              object --+                    \n                       |                    \nexceptions.BaseException --+                \n                           |                \n        exceptions.Exception --+            \n                               |            \n        exceptions.StandardError --+        \n                                   |        \n               exceptions.ValueError --+    \n                                       |    \n                      errors._ValueError --+\n                                           |\n                                          <strong class=\"uidshort\">ResidualError</strong>\n</pre>\n\n<hr />\n<p>Error raised for a division, power or root operation of an <a \n  href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a> instance \n  with a <code>residual</code> <i>ratio</i> exceeding the <a \n  href=\"pygeodesy.fsums.Fsum-class.html#RESIDUAL\" class=\"link\">RESIDUAL</a>\n  threshold.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Module <a href=\"pygeodesy.fsums-module.html\" \n        class=\"link\">pygeodesy.fsums</a> and method <a \n        href=\"pygeodesy.fsums.Fsum-class.html#RESIDUAL\" \n        class=\"link\">Fsum.RESIDUAL</a>.\n      </p>\n</div><!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>errors._ValueError</code></b>:\n      <code>__init__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.ValueError</code></b>:\n      <code>__new__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.BaseException</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getslice__</code>,\n      <code>__reduce__</code>,\n      <code>__repr__</code>,\n      <code>__setattr__</code>,\n      <code>__setstate__</code>,\n      <code>__str__</code>,\n      <code>__unicode__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__format__</code>,\n      <code>__hash__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.BaseException</code></b>:\n      <code>args</code>,\n      <code>message</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.gars-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.gars</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        Module&nbsp;gars\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.gars-module.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== MODULE DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Module gars</h1><p class=\"nomargin-top\"></p>\n<p><i>Global Area Reference System</i> (GARS) en-/decoding.</p>\n  <p>Class <a href=\"pygeodesy.gars.Garef-class.html\" class=\"link\">Garef</a>\n  and several functions to encode, decode and inspect GARS references.</p>\n  <p>Transcoded from <i>Charles Karney</i>'s C++ class <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1GARS.html\"\n  target=\"_top\">GARS</a>.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"https://WikiPedia.org/wiki/Global_Area_Reference_System\" \n        target=\"_top\">Global Area Reference System</a> and <a \n        href=\"https://Earth-Info.NGA.mil/GandG/coordsys/grids/gars.html\" \n        target=\"_top\">NGA (GARS)</a>.\n      </p>\n      <p><strong>Version:</strong>\n        25.05.07\n      </p>\n</div><!-- ==================== CLASSES ==================== -->\n<a name=\"section-Classes\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Classes</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.gars.GARSError-class.html\" class=\"summary-name\">GARSError</a><br />\n      Global Area Reference System (GARS) encode, decode or other <a \n        href=\"pygeodesy.gars.Garef-class.html\" class=\"link\">Garef</a> \n        issue.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.gars.Garef-class.html\" class=\"summary-name\">Garef</a><br />\n      Garef class, a named <code>str</code>.\n    </td>\n  </tr>\n</table>\n<!-- ==================== FUNCTIONS ==================== -->\n<a name=\"section-Functions\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Functions</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.gars-module.html#decode3\" class=\"summary-sig-name\">decode3</a>(<span class=\"summary-sig-arg\">garef</span>,\n        <span class=\"summary-sig-arg\">center</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Decode a <code>garef</code> to lat-, longitude and precision.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.gars-module.html#encode\" class=\"summary-sig-name\">encode</a>(<span class=\"summary-sig-arg\">lat</span>,\n        <span class=\"summary-sig-arg\">lon</span>,\n        <span class=\"summary-sig-arg\">precision</span>=<span class=\"summary-sig-default\">1</span>)</span><br />\n      Encode a lat-/longitude as a <code>garef</code> of the given \n      precision.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.gars-module.html#precision\" class=\"summary-sig-name\">precision</a>(<span class=\"summary-sig-arg\">res</span>)</span><br />\n      Determine the <a href=\"pygeodesy.gars.Garef-class.html\" \n      class=\"link\">Garef</a> precision to meet a required (geographic) \n      resolution.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.gars-module.html#resolution\" class=\"summary-sig-name\">resolution</a>(<span class=\"summary-sig-arg\">prec</span>)</span><br />\n      Determine the (geographic) resolution of a given <a \n      href=\"pygeodesy.gars.Garef-class.html\" class=\"link\">Garef</a> \n      precision.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== VARIABLES ==================== -->\n<a name=\"section-Variables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Variables</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"__all__\"></a><span class=\"summary-name\">__all__</span> = <code title=\"_ALL_LAZY.gars\">_ALL_LAZY.gars</code>\n    </td>\n  </tr>\n</table>\n<!-- ==================== FUNCTION DETAILS ==================== -->\n<a name=\"section-FunctionDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Function Details</span></td>\n</tr>\n</table>\n<a name=\"decode3\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">decode3</span>&nbsp;(<span class=\"sig-arg\">garef</span>,\n        <span class=\"sig-arg\">center</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Decode a <code>garef</code> to lat-, longitude and precision.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>garef</code></strong> - To be decoded (<a href=\"pygeodesy.gars.Garef-class.html\" \n          class=\"link\">Garef</a> or <code>str</code>).</li>\n        <li><strong class=\"pname\"><code>center</code></strong> - If <code>True</code>, use the garef's center, otherwise the \n          south-west, lower-left corner (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.namedTuples.LatLonPrec3Tuple-class.html\" \n          class=\"link\">LatLonPrec3Tuple</a><code>(lat, lon, \n          precision)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.gars.GARSError-class.html\">GARSError</a></strong></code> - Invalid <b><code>garef</code></b>, INValid, non-alphanumeric or bad\n        length <b><code>garef</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"encode\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">encode</span>&nbsp;(<span class=\"sig-arg\">lat</span>,\n        <span class=\"sig-arg\">lon</span>,\n        <span class=\"sig-arg\">precision</span>=<span class=\"sig-default\">1</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Encode a lat-/longitude as a <code>garef</code> of the given \n  precision.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat</code></strong> - Latitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lon</code></strong> - Longitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>precision</code></strong> - Optional, the desired <code>garef</code> resolution and length \n          (<code>int</code> 0..2).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The <code>garef</code> (<code>str</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.RangeError-class.html\">RangeError</a></strong></code> - Invalid <b><code>lat</code></b> or <b><code>lon</code></b>.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.gars.GARSError-class.html\">GARSError</a></strong></code> - Invalid <b><code>precision</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        The <code>garef</code> length is <i class=\"math\">precision + 5</i> \n        and the <code>garef</code> resolution is <b>30&#8242;</b> for \n        <b><code>precision</code></b> 0, <b>15&#8242;</b> for 1 and <b>5&#8242;</b> for\n        2, respectively.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"precision\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">precision</span>&nbsp;(<span class=\"sig-arg\">res</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Determine the <a href=\"pygeodesy.gars.Garef-class.html\" \n  class=\"link\">Garef</a> precision to meet a required (geographic) \n  resolution.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>res</code></strong> - The required resolution (<code>degrees</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The <a href=\"pygeodesy.gars.Garef-class.html\" \n          class=\"link\">Garef</a> precision (<code>int</code> 0..2).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>res</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.gars-module.html#encode\" \n        class=\"link\">gars.encode</a> for more <code>precision</code> \n        details.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"resolution\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">resolution</span>&nbsp;(<span class=\"sig-arg\">prec</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Determine the (geographic) resolution of a given <a \n  href=\"pygeodesy.gars.Garef-class.html\" class=\"link\">Garef</a> \n  precision.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>prec</code></strong> - The given precision (<code>int</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The (geographic) resolution (<code>degrees</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.gars.GARSError-class.html\">GARSError</a></strong></code> - Invalid <b><code>prec</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.gars-module.html#encode\" \n        class=\"link\">gars.encode</a> for more <code>precision</code> \n        details.\n      </p>\n</div></td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.gars.GARSError-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.gars.GARSError</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.gars-module.html\">Module&nbsp;gars</a> ::\n        Class&nbsp;GARSError\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.gars.GARSError-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class GARSError</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n              object --+                    \n                       |                    \nexceptions.BaseException --+                \n                           |                \n        exceptions.Exception --+            \n                               |            \n        exceptions.StandardError --+        \n                                   |        \n               exceptions.ValueError --+    \n                                       |    \n                      errors._ValueError --+\n                                           |\n                                          <strong class=\"uidshort\">GARSError</strong>\n</pre>\n\n<hr />\n<p>Global Area Reference System (GARS) encode, decode or other <a \n  href=\"pygeodesy.gars.Garef-class.html\" class=\"link\">Garef</a> issue.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>errors._ValueError</code></b>:\n      <code>__init__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.ValueError</code></b>:\n      <code>__new__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.BaseException</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getslice__</code>,\n      <code>__reduce__</code>,\n      <code>__repr__</code>,\n      <code>__setattr__</code>,\n      <code>__setstate__</code>,\n      <code>__str__</code>,\n      <code>__unicode__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__format__</code>,\n      <code>__hash__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.BaseException</code></b>:\n      <code>args</code>,\n      <code>message</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.gars.Garef-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.gars.Garef</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.gars-module.html\">Module&nbsp;gars</a> ::\n        Class&nbsp;Garef\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.gars.Garef-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Garef</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n      object --+            \n               |            \n      basestring --+        \n                   |        \n                 str --+    \n                       |    \n      object --+       |    \n               |       |    \n    <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+   |    \n                   |   |    \n<a href=\"pygeodesy.unitsBase._NamedUnit-class.html\">unitsBase._NamedUnit</a> --+    \n                       |    \n           <a href=\"pygeodesy.unitsBase.Str-class.html\">unitsBase.Str</a> --+\n                           |\n                          <strong class=\"uidshort\">Garef</strong>\n</pre>\n\n<hr />\n<p>Garef class, a named <code>str</code>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.gars.Garef-class.html#toLatLon\" class=\"summary-sig-name\">toLatLon</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">LatLon</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**LatLon_kwds</span>)</span><br />\n      Return (the center of) this garef cell as an instance of the supplied\n      <code>LatLon</code> class.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase.Str-class.html\">unitsBase.Str</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase.Str-class.html#__call__\">__call__</a></code>,\n      <code><a href=\"pygeodesy.unitsBase.Str-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.unitsBase.Str-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.unitsBase.Str-class.html#join_\">join_</a></code>,\n      <code><a href=\"pygeodesy.unitsBase.Str-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.unitsBase.Str-class.html#toStr\">toStr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>str</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__eq__</code>,\n      <code>__format__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__hash__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__mod__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__rmod__</code>,\n      <code>__rmul__</code>,\n      <code>__sizeof__</code>,\n      <code>capitalize</code>,\n      <code>center</code>,\n      <code>count</code>,\n      <code>decode</code>,\n      <code>encode</code>,\n      <code>endswith</code>,\n      <code>expandtabs</code>,\n      <code>find</code>,\n      <code>format</code>,\n      <code>index</code>,\n      <code>isalnum</code>,\n      <code>isalpha</code>,\n      <code>isdigit</code>,\n      <code>islower</code>,\n      <code>isspace</code>,\n      <code>istitle</code>,\n      <code>isupper</code>,\n      <code>join</code>,\n      <code>ljust</code>,\n      <code>lower</code>,\n      <code>lstrip</code>,\n      <code>partition</code>,\n      <code>replace</code>,\n      <code>rfind</code>,\n      <code>rindex</code>,\n      <code>rjust</code>,\n      <code>rpartition</code>,\n      <code>rsplit</code>,\n      <code>rstrip</code>,\n      <code>split</code>,\n      <code>splitlines</code>,\n      <code>startswith</code>,\n      <code>strip</code>,\n      <code>swapcase</code>,\n      <code>title</code>,\n      <code>translate</code>,\n      <code>upper</code>,\n      <code>zfill</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">a new object with type S, a subtype of T</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.gars.Garef-class.html#__new__\" class=\"summary-sig-name\">__new__</a>(<span class=\"summary-sig-arg\">cls</span>,\n        <span class=\"summary-sig-arg\">lat_gll</span>,\n        <span class=\"summary-sig-arg\">lon</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">precision</span>=<span class=\"summary-sig-default\">1</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      New <a href=\"pygeodesy.gars.Garef-class.html\" class=\"link\">Garef</a> \n      from an other <a href=\"pygeodesy.gars.Garef-class.html\" \n      class=\"link\">Garef</a> instance or garef <code>str</code> or from a \n      lat- and longitude.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.gars.Garef-class.html#decoded3\" class=\"summary-name\">decoded3</a><br />\n      Get this garef's attributes (<a \n      href=\"pygeodesy.namedTuples.LatLonPrec3Tuple-class.html\" \n      class=\"link\">LatLonPrec3Tuple</a>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.gars.Garef-class.html#latlon\" class=\"summary-name\">latlon</a><br />\n      Get this garef's (center) lat- and longitude (<a \n      href=\"pygeodesy.namedTuples.LatLon2Tuple-class.html\" \n      class=\"link\">LatLon2Tuple</a>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.gars.Garef-class.html#precision\" class=\"summary-name\">precision</a><br />\n      Get this garef's precision (<code>int</code>).\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html\">unitsBase._NamedUnit</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html#std_repr\">std_repr</a></code>,\n      <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__new__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__new__</span>&nbsp;(<span class=\"sig-arg\">cls</span>,\n        <span class=\"sig-arg\">lat_gll</span>,\n        <span class=\"sig-arg\">lon</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">precision</span>=<span class=\"sig-default\">1</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n    <br /><em class=\"fname\">Static Method</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.gars.Garef-class.html\" class=\"link\">Garef</a> \n  from an other <a href=\"pygeodesy.gars.Garef-class.html\" \n  class=\"link\">Garef</a> instance or garef <code>str</code> or from a lat- \n  and longitude.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat_gll</code></strong> - Latitude (<code>degrees90</code>), a garef (<a \n          href=\"pygeodesy.gars.Garef-class.html\" class=\"link\">Garef</a>, \n          <code>str</code>) or a location (<code>LatLon</code>, \n          <code>LatLon*Tuple</code>).</li>\n        <li><strong class=\"pname\"><code>lon</code></strong> - Logitude (<code>degrees180)</code>, required if \n          <b><code>lat_gll</code></b> is <code>degrees90</code>, ignored \n          otherwise.</li>\n        <li><strong class=\"pname\"><code>precision</code></strong> - The desired garef resolution and length (<code>int</code> 0..2), \n          see <a href=\"pygeodesy.gars-module.html#encode\" \n          class=\"link\">encode</a>.</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns: a new object with type S, a subtype of T</dt>\n        <dd>New <a href=\"pygeodesy.gars.Garef-class.html\" \n          class=\"link\">Garef</a>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.gars.GARSError-class.html\">GARSError</a></strong></code> - INValid <b><code>lat_gll</code></b>.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.RangeError-class.html\">RangeError</a></strong></code> - Invalid <b><code>lat_gll</code></b> or <b><code>lon</code></b>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>lat_gll</code></b> or <b><code>lon</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__new__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toLatLon\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toLatLon</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">LatLon</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**LatLon_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return (the center of) this garef cell as an instance of the supplied \n  <code>LatLon</code> class.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>LatLon</code></strong> - Class to use (<code>LatLon</code> or <code>None</code>).</li>\n        <li><strong class=\"pname\"><code>LatLon_kwds</code></strong> - Optional, additional <b><code>LatLon</code></b> keyword \n          arguments.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>This garef location as <b><code>LatLon</code></b> or if \n          <code><b>LatLon</b> is None</code> as <a \n          href=\"pygeodesy.namedTuples.LatLonPrec3Tuple-class.html\" \n          class=\"link\">LatLonPrec3Tuple</a>.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"decoded3\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">decoded3</h3>\n  <p>Get this garef's attributes (<a \n  href=\"pygeodesy.namedTuples.LatLonPrec3Tuple-class.html\" \n  class=\"link\">LatLonPrec3Tuple</a>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">decoded3(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get this garef's attributes (<a \nhref=\"pygeodesy.namedTuples.LatLonPrec3Tuple-class.html\" \nclass=\"link\">LatLonPrec3Tuple</a>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"latlon\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">latlon</h3>\n  <p>Get this garef's (center) lat- and longitude (<a \n  href=\"pygeodesy.namedTuples.LatLon2Tuple-class.html\" \n  class=\"link\">LatLon2Tuple</a>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">latlon(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get this garef's (center) lat- and longitude (<a \nhref=\"pygeodesy.namedTuples.LatLon2Tuple-class.html\" \nclass=\"link\">LatLon2Tuple</a>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"precision\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">precision</h3>\n  <p>Get this garef's precision (<code>int</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">precision(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get this garef's precision (<code>int</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.geod3solve-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.geod3solve</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        Module&nbsp;geod3solve\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.geod3solve-module.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== MODULE DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Module geod3solve</h1><p class=\"nomargin-top\"></p>\n<p>Wrapper to invoke <i>Karney</i>'s <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/Geod3Solve.1.html\" \n  target=\"_top\">Geod3Solve</a> utility as a <code>triaxial</code> geodesic,\n  but intended <i>mainly for testing purposes</i>.</p>\n  <p>Set env variable <code>PYGEODESY_GEOD3SOLVE</code> to the (fully \n  qualified) path of the <code>Geod3Solve</code> executable or use property\n  <a href=\"pygeodesy.geod3solve._Geodesic3SolveBase-class.html#Geod3Solve\" \n  class=\"link\">Geodesic3Solve.Geod3Solve</a>.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Version:</strong>\n        26.02.12\n      </p>\n</div><!-- ==================== CLASSES ==================== -->\n<a name=\"section-Classes\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Classes</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geod3solve.Geodesic3Error-class.html\" class=\"summary-name\">Geodesic3Error</a><br />\n      Error raised for issues in <a \n        href=\"pygeodesy.geod3solve-module.html\" \n        class=\"link\">geod3solve</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geod3solve.Geod3Solve8Tuple-class.html\" class=\"summary-name\">Geod3Solve8Tuple</a><br />\n      8-Tuple <code>(bet1, omg1, alp1, bet2, omg2, alp2, s12, a12)</code>\n        with <code>ellipsoidal</code> latitudes <code>bet1</code> and \n        <code>bet2</code>, <code>ellipsoidal</code> longitudes \n        <code>omg1</code> and <code>omg2</code>, forward azimuths \n        <code>alp1</code> and <code>alp2</code> in bearings from North, \n        distance <code>s12</code> in <code>meter</code>, conventionally and\n        <i>approximate</i> arc length <code>a12</code> in degrees, see <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/Geod3Solve.1.html\"\n        target=\"_top\">Geod3Solve</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geod3solve._Geodesic3SolveBase-class.html\" class=\"summary-name\">_Geodesic3SolveBase</a><br />\n      (INTERNAL) Base class for <a \n        href=\"pygeodesy.geod3solve.Geodesic3Solve-class.html\" \n        class=\"link\">Geodesic3Solve</a> and <a \n        href=\"pygeodesy.geod3solve.GeodesicLine3Solve-class.html\" \n        class=\"link\">GeodesicLine3Solve</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geod3solve.Geodesic3Solve-class.html\" class=\"summary-name\">Geodesic3Solve</a><br />\n      Wrapper to invoke <i>Karney</i>'s <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/Geod3Solve.1.html\"\n        target=\"_top\">Geod3Solve</a> as a <code>triaxial</code> version of \n        <i>Karney</i>'s Python class <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/python/code.html#geographiclib.geodesic.Geodesic\"\n        target=\"_top\">Geodesic</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geod3solve.GeodesicLine3Solve-class.html\" class=\"summary-name\">GeodesicLine3Solve</a><br />\n      Wrapper to invoke <i>Karney</i>'s <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/GeodSolve.3.html\"\n        target=\"_top\">Geod3Solve</a> as a <code>triaxial</code> version of \n        <i>Karney</i>'s Python class <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/python/code.html#geographiclib.geodesicline.GeodesicLine\"\n        target=\"_top\">GeodesicLine</a>.\n    </td>\n  </tr>\n</table>\n<!-- ==================== VARIABLES ==================== -->\n<a name=\"section-Variables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Variables</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"__all__\"></a><span class=\"summary-name\">__all__</span> = <code title=\"_ALL_LAZY.geod3solve\">_ALL_LAZY.geod3solve</code>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.geod3solve.Geod3Solve8Tuple-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.geod3solve.Geod3Solve8Tuple</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.geod3solve-module.html\">Module&nbsp;geod3solve</a> ::\n        Class&nbsp;Geod3Solve8Tuple\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.geod3solve.Geod3Solve8Tuple-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Geod3Solve8Tuple</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n   object --+            \n            |            \n        tuple --+        \n                |        \n   object --+   |        \n            |   |        \n <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+        \n                |        \n<a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a> --+    \n                    |    \n       karney._GTuple --+\n                        |\n                       <strong class=\"uidshort\">Geod3Solve8Tuple</strong>\n</pre>\n\n<hr />\n<p>8-Tuple <code>(bet1, omg1, alp1, bet2, omg2, alp2, s12, a12)</code> \n  with <code>ellipsoidal</code> latitudes <code>bet1</code> and \n  <code>bet2</code>, <code>ellipsoidal</code> longitudes <code>omg1</code> \n  and <code>omg2</code>, forward azimuths <code>alp1</code> and \n  <code>alp2</code> in bearings from North, distance <code>s12</code> in \n  <code>meter</code>, conventionally and <i>approximate</i> arc length \n  <code>a12</code> in degrees, see <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/Geod3Solve.1.html\" \n  target=\"_top\">Geod3Solve</a>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>karney._GTuple</code></b>:\n      <code>toGDict</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__delattr__\">__delattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__getattr__\">__getattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__setattr__\">__setattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#items\">items</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iteritems\">iteritems</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iterunits\">iterunits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#reUnit\">reUnit</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toUnits\">toUnits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>tuple</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__eq__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__iter__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__rmul__</code>,\n      <code>count</code>,\n      <code>index</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__new__\">__new__</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.geod3solve.Geodesic3Error-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.geod3solve.Geodesic3Error</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.geod3solve-module.html\">Module&nbsp;geod3solve</a> ::\n        Class&nbsp;Geodesic3Error\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.geod3solve.Geodesic3Error-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Geodesic3Error</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n              object --+                        \n                       |                        \nexceptions.BaseException --+                    \n                           |                    \n        exceptions.Exception --+                \n                               |                \n        exceptions.StandardError --+            \n                                   |            \n               exceptions.ValueError --+        \n                                       |        \n                      errors._ValueError --+    \n                                           |    \n                        <a href=\"pygeodesy.errors.GeodesicError-class.html\">errors.GeodesicError</a> --+\n                                               |\n                                              <strong class=\"uidshort\">Geodesic3Error</strong>\n</pre>\n\n<hr />\n<p>Error raised for issues in <a href=\"pygeodesy.geod3solve-module.html\" \n  class=\"link\">geod3solve</a>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>errors._ValueError</code></b>:\n      <code>__init__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.ValueError</code></b>:\n      <code>__new__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.BaseException</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getslice__</code>,\n      <code>__reduce__</code>,\n      <code>__repr__</code>,\n      <code>__setattr__</code>,\n      <code>__setstate__</code>,\n      <code>__str__</code>,\n      <code>__unicode__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__format__</code>,\n      <code>__hash__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.BaseException</code></b>:\n      <code>args</code>,\n      <code>message</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.geod3solve.Geodesic3Solve-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.geod3solve.Geodesic3Solve</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.geod3solve-module.html\">Module&nbsp;geod3solve</a> ::\n        Class&nbsp;Geodesic3Solve\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.geod3solve.Geodesic3Solve-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Geodesic3Solve</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+                            \n           |                            \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+                        \n               |                        \n<a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+                    \n                   |                    \n    <a href=\"pygeodesy.karney._CapsBase-class.html\">karney._CapsBase</a> --+                \n                       |                \n<a href=\"pygeodesy.solveBase._SolveCapsBase-class.html\">solveBase._SolveCapsBase</a> --+            \n                           |            \n        <a href=\"pygeodesy.solveBase._SolveBase-class.html\">solveBase._SolveBase</a> --+        \n                               |        \n           solveBase._Solve3Base --+    \n                                   |    \n                 <a href=\"pygeodesy.geod3solve._Geodesic3SolveBase-class.html\">_Geodesic3SolveBase</a> --+\n                                       |\n                                      <strong class=\"uidshort\">Geodesic3Solve</strong>\n</pre>\n\n<hr />\n<p>Wrapper to invoke <i>Karney</i>'s <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/Geod3Solve.1.html\" \n  target=\"_top\">Geod3Solve</a> as a <code>triaxial</code> version of \n  <i>Karney</i>'s Python class <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/python/code.html#geographiclib.geodesic.Geodesic\"\n  target=\"_top\">Geodesic</a>.</p>\n\n<hr />\n<div class=\"fields\">      <strong>Notes:</strong>\n      <ul class=\"nomargin-top\">\n        <li>\n        Use property <code>GeodSolve</code> or env variable \n        <code>PYGEODESY_GEOD3SOLVE</code> to specify the (fully qualified) \n        path to the <code>Geod3Solve</code> executable.\n        </li>\n        <li>\n        This <code>geodesic</code> is intended <i>for testing purposes \n        only</i>, it invokes the <code>GeodSolve</code> executable for \n        <i>every</i> method call.\n        </li>\n      </ul>\n</div><!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geod3solve.Geodesic3Solve-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">triaxial3</span>=<span class=\"summary-sig-default\">Triaxial3(name='WGS84_3r', a=6378172, b=6378102, c=6356752, k2<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"summary-sig-arg\">path</span>=<span class=\"summary-sig-default\">''</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      New <code>Solve</code> instance.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"Direct\"></a><span class=\"summary-sig-name\">Direct</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">bet1</span>,\n        <span class=\"summary-sig-arg\">omg1</span>,\n        <span class=\"summary-sig-arg\">alp1</span>,\n        <span class=\"summary-sig-arg\">s12</span>,\n        <span class=\"summary-sig-arg\">outmask</span>=<span class=\"summary-sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">UNUSED</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"summary-sig-arg\">**unit</span>)</span><br />\n      Return the <code>Direct</code> result at distance <code>s12</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geod3solve.Geodesic3Solve-class.html#DirectLine\" class=\"summary-sig-name\">DirectLine</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">bet1</span>,\n        <span class=\"summary-sig-arg\">omg1</span>,\n        <span class=\"summary-sig-arg\">alp1</span>,\n        <span class=\"summary-sig-arg\">caps</span>=<span class=\"summary-sig-default\">32671</span>,\n        <span class=\"summary-sig-arg\">**unit_name</span>)</span><br />\n      Set up a <a href=\"pygeodesy.geod3solve.GeodesicLine3Solve-class.html\"\n      class=\"link\">GeodesicLine3Solve</a> to compute several points on a \n      single geodesic.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geod3solve.Geodesic3Solve-class.html#Line\" class=\"summary-sig-name\">Line</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">bet1</span>,\n        <span class=\"summary-sig-arg\">omg1</span>,\n        <span class=\"summary-sig-arg\">alp1</span>,\n        <span class=\"summary-sig-arg\">caps</span>=<span class=\"summary-sig-default\">32671</span>,\n        <span class=\"summary-sig-arg\">**unit_name</span>)</span><br />\n      Set up a <a href=\"pygeodesy.geod3solve.GeodesicLine3Solve-class.html\"\n      class=\"link\">GeodesicLine3Solve</a> to compute several points on a \n      single geodesic.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"Inverse\"></a><span class=\"summary-sig-name\">Inverse</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">bet1</span>,\n        <span class=\"summary-sig-arg\">omg1</span>,\n        <span class=\"summary-sig-arg\">bet2</span>,\n        <span class=\"summary-sig-arg\">omg2</span>,\n        <span class=\"summary-sig-arg\">outmask</span>=<span class=\"summary-sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">UNUSED</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"summary-sig-arg\">**unit</span>)</span><br />\n      Return the <code>Inverse</code> result.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geod3solve.Geodesic3Solve-class.html#InverseLine\" class=\"summary-sig-name\">InverseLine</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">bet1</span>,\n        <span class=\"summary-sig-arg\">omg1</span>,\n        <span class=\"summary-sig-arg\">bet2</span>,\n        <span class=\"summary-sig-arg\">omg2</span>,\n        <span class=\"summary-sig-arg\">caps</span>=<span class=\"summary-sig-default\">32671</span>,\n        <span class=\"summary-sig-arg\">**unit_name</span>)</span><br />\n      Set up a <a href=\"pygeodesy.geod3solve.GeodesicLine3Solve-class.html\"\n      class=\"link\">GeodesicLine3Solve</a> to compute several points on a \n      single geodesic.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geod3solve.Geodesic3Solve-class.html#toStr\" class=\"summary-sig-name\">toStr</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">**prec_sep_other</span>)</span><br />\n      Return this <code>Geodesic3Solve</code> as string.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html\">solveBase._SolveCapsBase</a></code></b>:\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#invokat\">invokat</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#invoke\">invoke</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#linelimit\">linelimit</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.karney._CapsBase-class.html\">karney._CapsBase</a></code></b>:\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#caps_\">caps_</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#others\">others</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#toRepr\">toRepr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS VARIABLES ==================== -->\n<a name=\"section-ClassVariables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Class Variables</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.geod3solve._Geodesic3SolveBase-class.html\">_Geodesic3SolveBase</a></code></b>:\n      <code><a href=\"pygeodesy.geod3solve._Geodesic3SolveBase-class.html#datum\">datum</a></code>,\n      <code><a href=\"pygeodesy.geod3solve._Geodesic3SolveBase-class.html#ellipsoid\">ellipsoid</a></code>,\n      <code><a href=\"pygeodesy.geod3solve._Geodesic3SolveBase-class.html#f\">f</a></code>,\n      <code><a href=\"pygeodesy.geod3solve._Geodesic3SolveBase-class.html#flattening\">flattening</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.karney._CapsBase-class.html\">karney._CapsBase</a></code></b>:\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#ALL\">ALL</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#AREA\">AREA</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#AZIMUTH\">AZIMUTH</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#DISTANCE\">DISTANCE</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#DISTANCE_IN\">DISTANCE_IN</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#EMPTY\">EMPTY</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#GEODESICSCALE\">GEODESICSCALE</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#LATITUDE\">LATITUDE</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#LINE_CAPS\">LINE_CAPS</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#LINE_OFF\">LINE_OFF</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#LONGITUDE\">LONGITUDE</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#LONG_UNROLL\">LONG_UNROLL</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#NONFINITONAN\">NONFINITONAN</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#REDUCEDLENGTH\">REDUCEDLENGTH</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#STANDARD\">STANDARD</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#STANDARD_LINE\">STANDARD_LINE</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geod3solve.Geodesic3Solve-class.html#triaxial3\" class=\"summary-name\">triaxial3</a><br />\n      Get the triaxial (<code>Triaxial3</code>).\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.geod3solve._Geodesic3SolveBase-class.html\">_Geodesic3SolveBase</a></code></b>:\n      <code><a href=\"pygeodesy.geod3solve._Geodesic3SolveBase-class.html#Geod3Solve\">Geod3Solve</a></code>,\n      <code><a href=\"pygeodesy.geod3solve._Geodesic3SolveBase-class.html#a\">a</a></code>,\n      <code><a href=\"pygeodesy.geod3solve._Geodesic3SolveBase-class.html#b\">b</a></code>,\n      <code><a href=\"pygeodesy.geod3solve._Geodesic3SolveBase-class.html#c\">c</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.solveBase._SolveBase-class.html\">solveBase._SolveBase</a></code></b>:\n      <code><a href=\"pygeodesy.solveBase._SolveBase-class.html#reverse2\">reverse2</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveBase-class.html#unroll\">unroll</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html\">solveBase._SolveCapsBase</a></code></b>:\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#Exact\">Exact</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#invokation\">invokation</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#prec\">prec</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#status\">status</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#verbose\">verbose</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#version\">version</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.karney._CapsBase-class.html\">karney._CapsBase</a></code></b>:\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#caps\">caps</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#debug\">debug</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">triaxial3</span>=<span class=\"sig-default\">Triaxial3(name='WGS84_3r', a=6378172, b=6378102, c=6356752, k2<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"sig-arg\">path</span>=<span class=\"sig-default\">''</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <code>Solve</code> instance.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>triaxial3</code></strong> - A triaxial (<a \n          href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html\" \n          class=\"link\">Triaxial3</a>), default \n          <code>Triaxial3s.WGS84_3r</code>.</li>\n        <li><strong class=\"pname\"><code>path</code></strong> - Optionally, the (fully qualified) path to the \n          <code>GeodSolve</code> or <code>RhumbSolve</code> executable \n          (<code>filename</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>a_ellipsoid</code></b> or <b><code>f</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"DirectLine\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">DirectLine</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">bet1</span>,\n        <span class=\"sig-arg\">omg1</span>,\n        <span class=\"sig-arg\">alp1</span>,\n        <span class=\"sig-arg\">caps</span>=<span class=\"sig-default\">32671</span>,\n        <span class=\"sig-arg\">**unit_name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Set up a <a href=\"pygeodesy.geod3solve.GeodesicLine3Solve-class.html\" \n  class=\"link\">GeodesicLine3Solve</a> to compute several points on a single\n  geodesic.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>bet1</code></strong> - Ellipsoidal Latitude of the first point (<code>Ang</code> or \n          <b><code>unit</code></b>).</li>\n        <li><strong class=\"pname\"><code>omg1</code></strong> - Ellipsoidal Longitude of the first point (<code>Ang</code> or \n          <b><code>unit</code></b>).</li>\n        <li><strong class=\"pname\"><code>alp1</code></strong> - Azimuth at the first point (compass <code>degrees</code>, \n          <code>Ang</code> or <code>unit</code>).</li>\n        <li><strong class=\"pname\"><code>caps</code></strong> - Desired capabilities for the <a \n          href=\"pygeodesy.geod3solve.GeodesicLine3Solve-class.html\" \n          class=\"link\">GeodesicLine3Solve</a> instance.</li>\n        <li><strong class=\"pname\"><code>unit_name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>) and \n          scalar <code><b>unit</b>=</code><a \n          href=\"pygeodesy.units.Degrees-class.html\" \n          class=\"link\">Degrees</a> (or <a \n          href=\"pygeodesy.units.Degrees-class.html\" \n          class=\"link\">Degrees</a>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.geod3solve.GeodesicLine3Solve-class.html\" \n          class=\"link\">GeodesicLine3Solve</a> instance.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        C++ <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1GeodesicExact.html\"\n        target=\"_top\">GeodesicExact.Line</a> and Python <a \n        href=\"https://GeographicLib.SourceForge.io/Python/doc/code.html\" \n        target=\"_top\">Geodesic.Line</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"Line\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">Line</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">bet1</span>,\n        <span class=\"sig-arg\">omg1</span>,\n        <span class=\"sig-arg\">alp1</span>,\n        <span class=\"sig-arg\">caps</span>=<span class=\"sig-default\">32671</span>,\n        <span class=\"sig-arg\">**unit_name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Set up a <a href=\"pygeodesy.geod3solve.GeodesicLine3Solve-class.html\" \n  class=\"link\">GeodesicLine3Solve</a> to compute several points on a single\n  geodesic.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>bet1</code></strong> - Ellipsoidal Latitude of the first point (<code>Ang</code> or \n          <b><code>unit</code></b>).</li>\n        <li><strong class=\"pname\"><code>omg1</code></strong> - Ellipsoidal Longitude of the first point (<code>Ang</code> or \n          <b><code>unit</code></b>).</li>\n        <li><strong class=\"pname\"><code>alp1</code></strong> - Azimuth at the first point (compass <code>degrees</code>, \n          <code>Ang</code> or <code>unit</code>).</li>\n        <li><strong class=\"pname\"><code>caps</code></strong> - Desired capabilities for the <a \n          href=\"pygeodesy.geod3solve.GeodesicLine3Solve-class.html\" \n          class=\"link\">GeodesicLine3Solve</a> instance.</li>\n        <li><strong class=\"pname\"><code>unit_name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>) and \n          scalar <code><b>unit</b>=</code><a \n          href=\"pygeodesy.units.Degrees-class.html\" \n          class=\"link\">Degrees</a> (or <a \n          href=\"pygeodesy.units.Degrees-class.html\" \n          class=\"link\">Degrees</a>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.geod3solve.GeodesicLine3Solve-class.html\" \n          class=\"link\">GeodesicLine3Solve</a> instance.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        C++ <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1GeodesicExact.html\"\n        target=\"_top\">GeodesicExact.Line</a> and Python <a \n        href=\"https://GeographicLib.SourceForge.io/Python/doc/code.html\" \n        target=\"_top\">Geodesic.Line</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"InverseLine\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">InverseLine</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">bet1</span>,\n        <span class=\"sig-arg\">omg1</span>,\n        <span class=\"sig-arg\">bet2</span>,\n        <span class=\"sig-arg\">omg2</span>,\n        <span class=\"sig-arg\">caps</span>=<span class=\"sig-default\">32671</span>,\n        <span class=\"sig-arg\">**unit_name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Set up a <a href=\"pygeodesy.geod3solve.GeodesicLine3Solve-class.html\" \n  class=\"link\">GeodesicLine3Solve</a> to compute several points on a single\n  geodesic.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>bet1</code></strong> - Latitude of the first point (<code>Ang</code> or \n          <b><code>unit</code></b>).</li>\n        <li><strong class=\"pname\"><code>omg1</code></strong> - Longitude of the first point (<code>Ang</code> or \n          <b><code>unit</code></b>).</li>\n        <li><strong class=\"pname\"><code>bet2</code></strong> - Latitude of the second point  (<code>Ang</code> or \n          <b><code>unit</code></b>).</li>\n        <li><strong class=\"pname\"><code>omg2</code></strong> - Longitude of the second point (<code>Ang</code> or \n          <b><code>unit</code></b>).</li>\n        <li><strong class=\"pname\"><code>caps</code></strong> - Desired capabilities for the <a \n          href=\"pygeodesy.geod3solve.GeodesicLine3Solve-class.html\" \n          class=\"link\">GeodesicLine3Solve</a> instance.</li>\n        <li><strong class=\"pname\"><code>unit_name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>) and \n          scalar <code><b>unit</b>=</code><a \n          href=\"pygeodesy.units.Degrees-class.html\" \n          class=\"link\">Degrees</a> (or <a \n          href=\"pygeodesy.units.Degrees-class.html\" \n          class=\"link\">Degrees</a>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.geod3solve.GeodesicLine3Solve-class.html\" \n          class=\"link\">GeodesicLine3Solve</a> instance.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        Both <b><code>bet1</code></b> and <b><code>bet2</code></b> should \n        in the range <code>[-90, +90]</code>.\n      </p>\n      <p><strong>See Also:</strong>\n        C++ <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1GeodesicExact.html\"\n        target=\"_top\">GeodesicExact.InverseLine</a> and Python <a \n        href=\"https://GeographicLib.SourceForge.io/Python/doc/code.html\" \n        target=\"_top\">Geodesic.InverseLine</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"toStr\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toStr</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">**prec_sep_other</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return this <code>Geodesic3Solve</code> as string.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>prec_sep</code></strong> - See toStr.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Geodesic3Solve items (<code>str</code>).</dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.named._Named-class.html#toStr\">named._Named.toStr</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"triaxial3\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">triaxial3</h3>\n  <p>Get the triaxial (<code>Triaxial3</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">triaxial3(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the triaxial (<code>Triaxial3</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.geod3solve.GeodesicLine3Solve-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.geod3solve.GeodesicLine3Solve</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.geod3solve-module.html\">Module&nbsp;geod3solve</a> ::\n        Class&nbsp;GeodesicLine3Solve\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.geod3solve.GeodesicLine3Solve-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class GeodesicLine3Solve</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+                            \n           |                            \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+                        \n               |                        \n<a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+                    \n                   |                    \n    <a href=\"pygeodesy.karney._CapsBase-class.html\">karney._CapsBase</a> --+                \n                       |                \n<a href=\"pygeodesy.solveBase._SolveCapsBase-class.html\">solveBase._SolveCapsBase</a> --+            \n                           |            \n        <a href=\"pygeodesy.solveBase._SolveBase-class.html\">solveBase._SolveBase</a> --+        \n                               |        \n           solveBase._Solve3Base --+    \n                                   |    \n                 <a href=\"pygeodesy.geod3solve._Geodesic3SolveBase-class.html\">_Geodesic3SolveBase</a> --+\n                                       |\n                                      <strong class=\"uidshort\">GeodesicLine3Solve</strong>\n</pre>\n\n<hr />\n<p>Wrapper to invoke <i>Karney</i>'s <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/GeodSolve.3.html\" \n  target=\"_top\">Geod3Solve</a> as a <code>triaxial</code> version of \n  <i>Karney</i>'s Python class <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/python/code.html#geographiclib.geodesicline.GeodesicLine\"\n  target=\"_top\">GeodesicLine</a>.</p>\n\n<hr />\n<div class=\"fields\">      <strong>Notes:</strong>\n      <ul class=\"nomargin-top\">\n        <li>\n        Use property <code>GeodSolve</code> or env variable \n        <code>PYGEODESY_GEODSOLVE</code> to specify the (fully qualified) \n        path to the <code>GeodSolve</code> executable.\n        </li>\n        <li>\n        This <code>geodesic</code> is intended <i>for testing purposes \n        only</i>, it invokes the <code>GeodSolve</code> executable for \n        <i>every</i> method call.\n        </li>\n      </ul>\n</div><!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geod3solve.GeodesicLine3Solve-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">geodesic3</span>,\n        <span class=\"summary-sig-arg\">bet1</span>,\n        <span class=\"summary-sig-arg\">omg1</span>,\n        <span class=\"summary-sig-arg\">alp1</span>,\n        <span class=\"summary-sig-arg\">caps</span>=<span class=\"summary-sig-default\">32671</span>,\n        <span class=\"summary-sig-arg\">**unit_name</span>)</span><br />\n      New <a href=\"pygeodesy.geod3solve.GeodesicLine3Solve-class.html\" \n      class=\"link\">GeodesicLine3Solve</a> instance, allowing points to be \n      found along a geodesic starting at <code>(<b>bet1</b>, \n      <b>omg1</b>)</code> with azimuth <b><code>alp1</code></b>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"Intersecant2\"></a><span class=\"summary-sig-name\">Intersecant2</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">bet0</span>,\n        <span class=\"summary-sig-arg\">omg0</span>,\n        <span class=\"summary-sig-arg\">radius</span>,\n        <span class=\"summary-sig-arg\">**kwds</span>)</span><br />\n      <b>Not implemented</b>, throws a <code>NotImplementedError</code> \n      always.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"PlumbTo\"></a><span class=\"summary-sig-name\">PlumbTo</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">bet0</span>,\n        <span class=\"summary-sig-arg\">omg0</span>,\n        <span class=\"summary-sig-arg\">**kwds</span>)</span><br />\n      <b>Not implemented</b>, throws a <code>NotImplementedError</code> \n      always.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geod3solve.GeodesicLine3Solve-class.html#Position\" class=\"summary-sig-name\">Position</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">s12</span>,\n        <span class=\"summary-sig-arg\">outmask</span>=<span class=\"summary-sig-default\">32671</span>)</span><br />\n      Find the position on the line given <b><code>s12</code></b>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geod3solve.GeodesicLine3Solve-class.html#toStr\" class=\"summary-sig-name\">toStr</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">**prec_sep_other</span>)</span><br />\n      Return this <code>GeodesicLine3Solve</code> as string.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html\">solveBase._SolveCapsBase</a></code></b>:\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#invokat\">invokat</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#invoke\">invoke</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#linelimit\">linelimit</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.karney._CapsBase-class.html\">karney._CapsBase</a></code></b>:\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#caps_\">caps_</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#others\">others</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#toRepr\">toRepr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS VARIABLES ==================== -->\n<a name=\"section-ClassVariables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Class Variables</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.geod3solve._Geodesic3SolveBase-class.html\">_Geodesic3SolveBase</a></code></b>:\n      <code><a href=\"pygeodesy.geod3solve._Geodesic3SolveBase-class.html#datum\">datum</a></code>,\n      <code><a href=\"pygeodesy.geod3solve._Geodesic3SolveBase-class.html#ellipsoid\">ellipsoid</a></code>,\n      <code><a href=\"pygeodesy.geod3solve._Geodesic3SolveBase-class.html#f\">f</a></code>,\n      <code><a href=\"pygeodesy.geod3solve._Geodesic3SolveBase-class.html#flattening\">flattening</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.karney._CapsBase-class.html\">karney._CapsBase</a></code></b>:\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#ALL\">ALL</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#AREA\">AREA</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#AZIMUTH\">AZIMUTH</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#DISTANCE\">DISTANCE</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#DISTANCE_IN\">DISTANCE_IN</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#EMPTY\">EMPTY</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#GEODESICSCALE\">GEODESICSCALE</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#LATITUDE\">LATITUDE</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#LINE_CAPS\">LINE_CAPS</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#LINE_OFF\">LINE_OFF</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#LONGITUDE\">LONGITUDE</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#LONG_UNROLL\">LONG_UNROLL</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#NONFINITONAN\">NONFINITONAN</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#REDUCEDLENGTH\">REDUCEDLENGTH</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#STANDARD\">STANDARD</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#STANDARD_LINE\">STANDARD_LINE</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geod3solve.GeodesicLine3Solve-class.html#alp1\" class=\"summary-name\">alp1</a><br />\n      Get the azimuth at the first point (compass <code>degrees</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geod3solve.GeodesicLine3Solve-class.html#bet1\" class=\"summary-name\">bet1</a><br />\n      Get the <i>ellipsoidal</i> latitude of the first point \n      (<code>degrees</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geod3solve.GeodesicLine3Solve-class.html#geodesic3\" class=\"summary-name\">geodesic3</a><br />\n      Get the <code>triaxial</code> geodesic (<a \n      href=\"pygeodesy.geod3solve.Geodesic3Solve-class.html\" \n      class=\"link\">Geodesic3Solve</a>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geod3solve.GeodesicLine3Solve-class.html#omg1\" class=\"summary-name\">omg1</a><br />\n      Get the <i>ellipsoidal</i> longitude of the first point \n      (<code>degrees</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geod3solve.GeodesicLine3Solve-class.html#triaxial3\" class=\"summary-name\">triaxial3</a><br />\n      Get the triaxial (<code>Triaxial3</code>).\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.geod3solve._Geodesic3SolveBase-class.html\">_Geodesic3SolveBase</a></code></b>:\n      <code><a href=\"pygeodesy.geod3solve._Geodesic3SolveBase-class.html#Geod3Solve\">Geod3Solve</a></code>,\n      <code><a href=\"pygeodesy.geod3solve._Geodesic3SolveBase-class.html#a\">a</a></code>,\n      <code><a href=\"pygeodesy.geod3solve._Geodesic3SolveBase-class.html#b\">b</a></code>,\n      <code><a href=\"pygeodesy.geod3solve._Geodesic3SolveBase-class.html#c\">c</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.solveBase._SolveBase-class.html\">solveBase._SolveBase</a></code></b>:\n      <code><a href=\"pygeodesy.solveBase._SolveBase-class.html#reverse2\">reverse2</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveBase-class.html#unroll\">unroll</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html\">solveBase._SolveCapsBase</a></code></b>:\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#Exact\">Exact</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#invokation\">invokation</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#prec\">prec</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#status\">status</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#verbose\">verbose</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#version\">version</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.karney._CapsBase-class.html\">karney._CapsBase</a></code></b>:\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#caps\">caps</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#debug\">debug</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">geodesic3</span>,\n        <span class=\"sig-arg\">bet1</span>,\n        <span class=\"sig-arg\">omg1</span>,\n        <span class=\"sig-arg\">alp1</span>,\n        <span class=\"sig-arg\">caps</span>=<span class=\"sig-default\">32671</span>,\n        <span class=\"sig-arg\">**unit_name</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.geod3solve.GeodesicLine3Solve-class.html\" \n  class=\"link\">GeodesicLine3Solve</a> instance, allowing points to be found\n  along a geodesic starting at <code>(<b>bet1</b>, <b>omg1</b>)</code> with\n  azimuth <b><code>alp1</code></b>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>geodesic3</code></strong> - The geodesic to use (<a \n          href=\"pygeodesy.geod3solve.Geodesic3Solve-class.html\" \n          class=\"link\">Geodesic3Solve</a>).</li>\n        <li><strong class=\"pname\"><code>bet1</code></strong> - Ellipsoidal latitude of the first point (<code>Ang</code> or \n          <b><code>unit</code></b>).</li>\n        <li><strong class=\"pname\"><code>omg1</code></strong> - Ellipsoidal longitude of the first point (<code>Ang</code> or \n          <b><code>unit</code></b>).</li>\n        <li><strong class=\"pname\"><code>alp1</code></strong> - Azimuth at the first point (compass <code>degrees</code>, \n          <code>Ang</code> or <code>unit</code>).</li>\n        <li><strong class=\"pname\"><code>caps</code></strong> - Bit-or'ed combination of <a \n          href=\"pygeodesy.karney.Caps-class.html\" class=\"link\">Caps</a> \n          values specifying the capabilities the <a \n          href=\"pygeodesy.geod3solve.GeodesicLine3Solve-class.html\" \n          class=\"link\">GeodesicLine3Solve</a> instance should possess, \n          <code><b>caps</b>=Caps.ALL</code> always.  Include \n          <code>Caps.LINE_OFF</code> if updates to the \n          <b><code>geodesic3</code></b> should <i>not be reflected</i> in \n          this <a href=\"pygeodesy.geod3solve.GeodesicLine3Solve-class.html\"\n          class=\"link\">GeodesicLine3Solve</a> instance.</li>\n        <li><strong class=\"pname\"><code>unit_name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>) and \n          scalar <code><b>unit</b>=</code><a \n          href=\"pygeodesy.units.Degrees-class.html\" \n          class=\"link\">Degrees</a> (or <a \n          href=\"pygeodesy.units.Degrees-class.html\" \n          class=\"link\">Degrees</a>).</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.geod3solve.Geodesic3Error-class.html\">Geodesic3Error</a></strong></code> - Invalid path for the <code>Geod3Solve</code> executable or isn't \n        the <code>Geod3Solve</code> executable, see property \n        <code>geodesic3.Geod3Solve</code>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>geodesic3</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"Position\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">Position</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">s12</span>,\n        <span class=\"sig-arg\">outmask</span>=<span class=\"sig-default\">32671</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Find the position on the line given <b><code>s12</code></b>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>s12</code></strong> - Distance from the first point to the second (<code>meter</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <code>GDict</code> with 7 items <code>bet1, omg1, alp1, bet2, \n          omg2, alp2, s12</code>.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toStr\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toStr</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">**prec_sep_other</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return this <code>GeodesicLine3Solve</code> as string.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>prec_sep</code></strong> - See toStr.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>GeodesicLine3Solve items (<code>str</code>).</dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.named._Named-class.html#toStr\">named._Named.toStr</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"alp1\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">alp1</h3>\n  <p>Get the azimuth at the first point (compass <code>degrees</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">alp1(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the azimuth at the first point (compass <code>degrees</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"bet1\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">bet1</h3>\n  <p>Get the <i>ellipsoidal</i> latitude of the first point \n  (<code>degrees</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">bet1(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <i>ellipsoidal</i> latitude of the first point \n(<code>degrees</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"geodesic3\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">geodesic3</h3>\n  <p>Get the <code>triaxial</code> geodesic (<a \n  href=\"pygeodesy.geod3solve.Geodesic3Solve-class.html\" \n  class=\"link\">Geodesic3Solve</a>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">geodesic3(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <code>triaxial</code> geodesic (<a \nhref=\"pygeodesy.geod3solve.Geodesic3Solve-class.html\" \nclass=\"link\">Geodesic3Solve</a>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"omg1\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">omg1</h3>\n  <p>Get the <i>ellipsoidal</i> longitude of the first point \n  (<code>degrees</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">omg1(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <i>ellipsoidal</i> longitude of the first point \n(<code>degrees</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"triaxial3\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">triaxial3</h3>\n  <p>Get the triaxial (<code>Triaxial3</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">triaxial3(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the triaxial (<code>Triaxial3</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.geod3solve._Geodesic3SolveBase-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.geod3solve._Geodesic3SolveBase</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.geod3solve-module.html\">Module&nbsp;geod3solve</a> ::\n        Class&nbsp;_Geodesic3SolveBase\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.geod3solve._Geodesic3SolveBase-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class _Geodesic3SolveBase</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+                        \n           |                        \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+                    \n               |                    \n<a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+                \n                   |                \n    <a href=\"pygeodesy.karney._CapsBase-class.html\">karney._CapsBase</a> --+            \n                       |            \n<a href=\"pygeodesy.solveBase._SolveCapsBase-class.html\">solveBase._SolveCapsBase</a> --+        \n                           |        \n        <a href=\"pygeodesy.solveBase._SolveBase-class.html\">solveBase._SolveBase</a> --+    \n                               |    \n           solveBase._Solve3Base --+\n                                   |\n                                  <strong class=\"uidshort\">_Geodesic3SolveBase</strong>\n</pre>\n\n<dl><dt>Known Subclasses:</dt>\n<dd>\n      <ul class=\"subclass-list\">\n<li><a href=\"pygeodesy.geod3solve.Geodesic3Solve-class.html\">Geodesic3Solve</a></li><li>, <a href=\"pygeodesy.geod3solve.GeodesicLine3Solve-class.html\">GeodesicLine3Solve</a></li>  </ul>\n</dd></dl>\n\n<hr />\n<p>(INTERNAL) Base class for <a \n  href=\"pygeodesy.geod3solve.Geodesic3Solve-class.html\" \n  class=\"link\">Geodesic3Solve</a> and <a \n  href=\"pygeodesy.geod3solve.GeodesicLine3Solve-class.html\" \n  class=\"link\">GeodesicLine3Solve</a>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geod3solve._Geodesic3SolveBase-class.html#toStr\" class=\"summary-sig-name\">toStr</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">**prec_sep</span>)</span><br />\n      Return this <code>Geodesic3Solve</code> as string.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html\">solveBase._SolveCapsBase</a></code></b>:\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#invokat\">invokat</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#invoke\">invoke</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#linelimit\">linelimit</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.karney._CapsBase-class.html\">karney._CapsBase</a></code></b>:\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#caps_\">caps_</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#others\">others</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#toRepr\">toRepr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__init__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS VARIABLES ==================== -->\n<a name=\"section-ClassVariables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Class Variables</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"datum\"></a><span class=\"summary-name\">datum</span> = <code title=\"None\">None</code><br />\n      hash(x)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"ellipsoid\"></a><span class=\"summary-name\">ellipsoid</span> = <code title=\"None\">None</code><br />\n      hash(x)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"f\"></a><span class=\"summary-name\">f</span> = <code title=\"None\">None</code><br />\n      hash(x)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"flattening\"></a><span class=\"summary-name\">flattening</span> = <code title=\"None\">None</code><br />\n      hash(x)\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.karney._CapsBase-class.html\">karney._CapsBase</a></code></b>:\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#ALL\">ALL</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#AREA\">AREA</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#AZIMUTH\">AZIMUTH</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#DISTANCE\">DISTANCE</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#DISTANCE_IN\">DISTANCE_IN</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#EMPTY\">EMPTY</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#GEODESICSCALE\">GEODESICSCALE</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#LATITUDE\">LATITUDE</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#LINE_CAPS\">LINE_CAPS</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#LINE_OFF\">LINE_OFF</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#LONGITUDE\">LONGITUDE</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#LONG_UNROLL\">LONG_UNROLL</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#NONFINITONAN\">NONFINITONAN</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#REDUCEDLENGTH\">REDUCEDLENGTH</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#STANDARD\">STANDARD</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#STANDARD_LINE\">STANDARD_LINE</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geod3solve._Geodesic3SolveBase-class.html#a\" class=\"summary-name\">a</a><br />\n      Get the triaxial's <i>major</i> radius, semi-axis \n      (<code>meter</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geod3solve._Geodesic3SolveBase-class.html#b\" class=\"summary-name\">b</a><br />\n      Get the triaxial's <i>middle</i> radius, semi-axis \n      (<code>meter</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geod3solve._Geodesic3SolveBase-class.html#c\" class=\"summary-name\">c</a><br />\n      Get the triaxial's <i>minor</i> radius, semi-axis \n      (<code>meter</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geod3solve._Geodesic3SolveBase-class.html#Geod3Solve\" class=\"summary-name\">Geod3Solve</a><br />\n      Get the <a \n      href=\"https://GeographicLib.SourceForge.io/C++/doc/Geod3Solve.1.html\"\n      target=\"_top\">Geod3Solve</a> executable (<code>filename</code>).\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.solveBase._SolveBase-class.html\">solveBase._SolveBase</a></code></b>:\n      <code><a href=\"pygeodesy.solveBase._SolveBase-class.html#reverse2\">reverse2</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveBase-class.html#unroll\">unroll</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html\">solveBase._SolveCapsBase</a></code></b>:\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#Exact\">Exact</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#invokation\">invokation</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#prec\">prec</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#status\">status</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#verbose\">verbose</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#version\">version</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.karney._CapsBase-class.html\">karney._CapsBase</a></code></b>:\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#caps\">caps</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#debug\">debug</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"toStr\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toStr</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">**prec_sep</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return this <code>Geodesic3Solve</code> as string.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>prec_sep</code></strong> - See <a href=\"pygeodesy.solveBase._SolveBase-class.html#toStr\" \n          class=\"link\">toStr</a>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Geodesic3Solve items (<code>str</code>).</dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.named._Named-class.html#toStr\">named._Named.toStr</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"a\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">a</h3>\n  <p>Get the triaxial's <i>major</i> radius, semi-axis \n  (<code>meter</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">a(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the triaxial's <i>major</i> radius, semi-axis (<code>meter</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"b\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">b</h3>\n  <p>Get the triaxial's <i>middle</i> radius, semi-axis \n  (<code>meter</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">b(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the triaxial's <i>middle</i> radius, semi-axis (<code>meter</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"c\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">c</h3>\n  <p>Get the triaxial's <i>minor</i> radius, semi-axis \n  (<code>meter</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">c(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the triaxial's <i>minor</i> radius, semi-axis (<code>meter</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"Geod3Solve\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">Geod3Solve</h3>\n  <p>Get the <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/Geod3Solve.1.html\" \n  target=\"_top\">Geod3Solve</a> executable (<code>filename</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">Geod3Solve(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <a \nhref=\"https://GeographicLib.SourceForge.io/C++/doc/Geod3Solve.1.html\" \ntarget=\"_top\">Geod3Solve</a> executable (<code>filename</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">Geod3Solve(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">path</span>)</span>\n        - Set the <a \nhref=\"https://GeographicLib.SourceForge.io/C++/doc/Geod3Solve.1.html\" \ntarget=\"_top\">Geod3Solve</a> executable (<code>filename</code>), the (fully\nqualified) path to the <code>Geod3Solve</code> executable.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.geodesici-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.geodesici</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        Module&nbsp;geodesici\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.geodesici-module.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== MODULE DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Module geodesici</h1><p class=\"nomargin-top\"></p>\n<p>Classes <a href=\"pygeodesy.geodesici.Intersectool-class.html\" \n  class=\"link\">Intersectool</a> and <a \n  href=\"pygeodesy.geodesici.Intersector-class.html\" \n  class=\"link\">Intersector</a> to find the intersections of two geodesic \n  lines or line segments.</p>\n  <p>Class <a href=\"pygeodesy.geodesici.Intersector-class.html\" \n  class=\"link\">Intersector</a> is a pure Python version of <i>Karney</i>'s \n  C++ class <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Intersect.html\"\n  target=\"_top\">Intersect</a>.</p>\n  <p>Class <a href=\"pygeodesy.geodesici.Intersectool-class.html\" \n  class=\"link\">Intersectool</a> is a wrapper to invoke <i>Karney</i>'s <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/IntersectTool.1.html\" \n  target=\"_top\">IntersectTool</a> utility, mainly intended <i>for testing \n  purposes</i>.</p>\n  <p>Set env variable <code>PYGEODESY_INTERSECTTOOL</code> to the (fully \n  qualified) path of the <code>IntersectTool</code> executable or use \n  property <a \n  href=\"pygeodesy.geodesici.Intersectool-class.html#IntersectTool\" \n  class=\"link\">Intersectool.IntersectTool</a>.  For usage and some examples\n  run <code>&quot;env PYGEODESY_INTERSECTTOOL=&lt;IntersectTool-path&gt; \n  python3 -m pygeodesy.geodesici --help&quot;</code>.</p>\n  <p>Both <a href=\"pygeodesy.geodesici.Intersectool-class.html\" \n  class=\"link\">Intersectool</a> and <a \n  href=\"pygeodesy.geodesici.Intersector-class.html\" \n  class=\"link\">Intersector</a> provide methods <code>All</code>, \n  <code>Closest</code>, <code>Next</code> and <code>Segment</code> and \n  produce <a href=\"pygeodesy.geodesici.XDict-class.html\" \n  class=\"link\">XDict</a> instances with 4 or more items.  Adjacent methods \n  <code>All5</code>, <code>Closest5</code>, <code>Next5</code> and \n  <code>Segment</code> return or yield <a \n  href=\"pygeodesy.geodesici.Intersectool5Tuple-class.html\" \n  class=\"link\">Intersectool5Tuple</a> or <a \n  href=\"pygeodesy.geodesici.Intersector5Tuple-class.html\" \n  class=\"link\">Intersector5Tuple</a>s with the lat-, longitude and azimuth \n  of each intersection as an extended, geodesic <code>Position</code>-like \n  <a href=\"pygeodesy.karney.GDict-class.html\" class=\"link\">GDict</a> \n  instance.</p>\n  <p>For more details, see the C++ <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/index.html\" \n  target=\"_top\">GeographicLib</a> documentation, <i>Charles F.F. \n  Karney</i>'s paper <a href=\"https://arxiv.org/abs/2308.00495\" \n  target=\"_top\">Geodesics intersections</a> and <i>S. Baselga Moreno &amp; \n  J.C. Martinez-Llario</i>'s <a \n  href=\"https://riunet.UPV.ES/bitstream/handle/10251/122902/Revised_Manuscript.pdf\"\n  target=\"_top\">Intersection and point-to-line solutions for geodesics on \n  the ellipsoid</a>.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Version:</strong>\n        26.02.04\n      </p>\n</div><!-- ==================== CLASSES ==================== -->\n<a name=\"section-Classes\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Classes</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geodesici.XDict-class.html\" class=\"summary-name\">XDict</a><br />\n      4+Item result from <a \n        href=\"pygeodesy.geodesici.Intersectool-class.html\" \n        class=\"link\">Intersectool</a> and <a \n        href=\"pygeodesy.geodesici.Intersector-class.html\" \n        class=\"link\">Intersector</a> methods <code>All</code>, \n        <code>Closest</code>, <code>Next</code> and <code>Segment</code> \n        with the intersection offsets <code>sA</code>, <code>sB</code> and \n        <code>sX0</code> in <code>meter</code> and the coincidence \n        indicator <code>c</code>, an <code>int</code>, +1 for parallel, -1 \n        for anti-parallel or 0 otherwise.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geodesici._IntersectBase-class.html\" class=\"summary-name\">_IntersectBase</a><br />\n      (INTERNAL) Base class for <a \n        href=\"pygeodesy.geodesici.Intersectool-class.html\" \n        class=\"link\">Intersectool</a> and <a \n        href=\"pygeodesy.geodesici.Intersector-class.html\" \n        class=\"link\">Intersector</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geodesici.Intersectool-class.html\" class=\"summary-name\">Intersectool</a><br />\n      Wrapper to invoke <i>Karney</i>'s utility <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/IntersectTool.1.html\"\n        target=\"_top\">IntersectTool</a> similar to class <a \n        href=\"pygeodesy.geodesici.Intersector-class.html\" \n        class=\"link\">Intersector</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geodesici.Intersector-class.html\" class=\"summary-name\">Intersector</a><br />\n      Finder of intersections between two goedesic lines, each an \n        instance of <a \n        href=\"pygeodesy.geodesicx.gx.GeodesicLineExact-class.html\" \n        class=\"link\">GeodesicLineExact</a>, wrapped <a \n        href=\"pygeodesy.geodesicw.GeodesicLine-class.html\" \n        class=\"link\">GeodesicLine</a> or <a \n        href=\"pygeodesy.geodsolve.GeodesicLineSolve-class.html\" \n        class=\"link\">GeodesicLineSolve</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geodesici.Intersect7Tuple-class.html\" class=\"summary-name\">Intersect7Tuple</a><br />\n      7-Tuple <code>(A, B, sAB, aAB, c, kA, kB)</code> with \n        <code>A</code> and <code>B</code> each a <code>LatLon</code> or <a \n        href=\"pygeodesy.namedTuples.LatLon4Tuple-class.html\" \n        class=\"link\">LatLon4Tuple</a><code>(lat, lon, height, datum)</code>\n        of the intersection on each geodesic line, the distance \n        <code>sAB</code> in in <code>meter</code> and angular distance \n        <code>aAB</code> in <code>degrees</code> between <code>A</code> and\n        <code>B</code>, coincidence indicator <code>c</code> and segment \n        indicators <code>kA</code> and <code>kB</code> all \n        <code>int</code>, see <a \n        href=\"pygeodesy.geodesici.XDict-class.html\" class=\"link\">XDict</a> \n        and method <a href=\"https://_IntersectBase.intersect7\" \n        target=\"_top\">intersect7</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geodesici.Intersectool5Tuple-class.html\" class=\"summary-name\">Intersectool5Tuple</a><br />\n      5-Tuple <code>(A, B, sAB, aAB, c)</code> with <code>A</code> and \n        <code>B</code> the <code>Position</code> of the intersection on \n        each geodesic line, the distance <code>sAB</code> between \n        <code>A</code> and <code>B</code> in <code>meter</code>, the \n        angular distance <code>aAB</code> in <code>degrees</code> and \n        coincidence indicator <code>c</code> (<code>int</code>), see <a \n        href=\"pygeodesy.geodesici.XDict-class.html\" class=\"link\">XDict</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geodesici.Intersector5Tuple-class.html\" class=\"summary-name\">Intersector5Tuple</a><br />\n      5-Tuple <code>(A, B, sAB, aAB, c)</code> with <code>A</code> and \n        <code>B</code> the <code>Position</code> of the intersection on \n        each geodesic line, the distance <code>sAB</code> between \n        <code>A</code> and <code>B</code> in <code>meter</code>, angular \n        distance <code>aAB</code> in <code>degrees</code> and coincidence \n        indicator <code>c</code> (<code>int</code>), see <a \n        href=\"pygeodesy.geodesici.XDict-class.html\" class=\"link\">XDict</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geodesici.Middle5Tuple-class.html\" class=\"summary-name\">Middle5Tuple</a><br />\n      5-Tuple <code>(A, B, sMM, aMM, c)</code> with <code>A</code> and \n        <code>B</code> the <i>line segments</i> including the mid-point \n        location in <code>latM</code>, <code>lonM</code>, distance \n        <code>s1M</code> in <code>meter</code> and angular distance \n        <code>a1M</code> in <code>degrees</code>, the distance between both\n        mid-points <code>sMM</code> in <code>meter</code> and angular \n        distance <code>aMM</code> in <code>degrees</code> and coincidence \n        indicator <code>c</code> (<code>int</code>).\n    </td>\n  </tr>\n</table>\n<!-- ==================== VARIABLES ==================== -->\n<a name=\"section-Variables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Variables</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"__all__\"></a><span class=\"summary-name\">__all__</span> = <code title=\"_ALL_LAZY.geodesici\">_ALL_LAZY.geodesici</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"x\"></a><span class=\"summary-name\">x</span> = <code title=\"_SPACE_(x, NN, _HASH_,* argv)\">_SPACE_(x, NN, _HASH_,* argv)</code>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.geodesici.Intersect7Tuple-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.geodesici.Intersect7Tuple</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.geodesici-module.html\">Module&nbsp;geodesici</a> ::\n        Class&nbsp;Intersect7Tuple\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.geodesici.Intersect7Tuple-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Intersect7Tuple</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n   object --+        \n            |        \n        tuple --+    \n                |    \n   object --+   |    \n            |   |    \n <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n                |    \n<a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a> --+\n                    |\n                   <strong class=\"uidshort\">Intersect7Tuple</strong>\n</pre>\n\n<hr />\n<p>7-Tuple <code>(A, B, sAB, aAB, c, kA, kB)</code> with <code>A</code> \n  and <code>B</code> each a <code>LatLon</code> or <a \n  href=\"pygeodesy.namedTuples.LatLon4Tuple-class.html\" \n  class=\"link\">LatLon4Tuple</a><code>(lat, lon, height, datum)</code> of \n  the intersection on each geodesic line, the distance <code>sAB</code> in \n  in <code>meter</code> and angular distance <code>aAB</code> in \n  <code>degrees</code> between <code>A</code> and <code>B</code>, \n  coincidence indicator <code>c</code> and segment indicators \n  <code>kA</code> and <code>kB</code> all <code>int</code>, see <a \n  href=\"pygeodesy.geodesici.XDict-class.html\" class=\"link\">XDict</a> and \n  method <a href=\"https://_IntersectBase.intersect7\" \n  target=\"_top\">intersect7</a>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__delattr__\">__delattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__getattr__\">__getattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__setattr__\">__setattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#items\">items</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iteritems\">iteritems</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iterunits\">iterunits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#reUnit\">reUnit</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toUnits\">toUnits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>tuple</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__eq__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__iter__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__rmul__</code>,\n      <code>count</code>,\n      <code>index</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__new__\">__new__</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.geodesici.Intersectool-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.geodesici.Intersectool</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.geodesici-module.html\">Module&nbsp;geodesici</a> ::\n        Class&nbsp;Intersectool\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.geodesici.Intersectool-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Intersectool</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n      object --+            \n               |            \n    <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+        \n                   |        \n    <a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+    \n                       |    \n          <a href=\"pygeodesy.geodesici._IntersectBase-class.html\">_IntersectBase</a> --+\n                           |\n  object --+               |\n           |               |\n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+           |\n               |           |\n<a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+       |\n                   |       |\n    <a href=\"pygeodesy.karney._CapsBase-class.html\">karney._CapsBase</a> --+   |\n                       |   |\n<a href=\"pygeodesy.solveBase._SolveCapsBase-class.html\">solveBase._SolveCapsBase</a> --+\n                           |\n                          <strong class=\"uidshort\">Intersectool</strong>\n</pre>\n\n<hr />\n<p>Wrapper to invoke <i>Karney</i>'s utility <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/IntersectTool.1.html\" \n  target=\"_top\">IntersectTool</a> similar to class <a \n  href=\"pygeodesy.geodesici.Intersector-class.html\" \n  class=\"link\">Intersector</a>.</p>\n\n<hr />\n<div class=\"fields\">      <strong>Notes:</strong>\n      <ul class=\"nomargin-top\">\n        <li>\n        Use property <code>IntersectTool</code> or env variable \n        <code>PYGEODESY_INTERSECTTOOL</code> to specify the (fully \n        qualified) path to the <code>IntersectTool</code> executable.\n        </li>\n        <li>\n        This <code>Intersectool</code> is intended <i>for testing purposes \n        only</i>, it invokes the <code>IntersectTool</code> executable for \n        <i>every</i> method call.\n        </li>\n      </ul>\n</div><!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geodesici.Intersectool-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">a_geodesic</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">f</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      New <a \n      href=\"pygeodesy.geodesici.Intersectool-class.html#IntersectTool\" \n      class=\"link\">IntersectTool</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geodesici.Intersectool-class.html#All\" class=\"summary-sig-name\">All</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">glA</span>,\n        <span class=\"summary-sig-arg\">glB</span>,\n        <span class=\"summary-sig-arg\">X0</span>=<span class=\"summary-sig-default\">XDict(c=0, sA=0.0, sB=0.0, sX0=0.0)</span>,\n        <span class=\"summary-sig-arg\">eps1</span>=<span class=\"summary-sig-default\">0.0</span>,\n        <span class=\"summary-sig-arg\">aMaX0</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">**sMaX0_C</span>)</span><br />\n      Yield all intersections of two geodesic lines up to a limit.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geodesici.Intersectool-class.html#All5\" class=\"summary-sig-name\">All5</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">glA</span>,\n        <span class=\"summary-sig-arg\">glB</span>,\n        <span class=\"summary-sig-arg\">X0</span>=<span class=\"summary-sig-default\">XDict(c=0, sA=0.0, sB=0.0, sX0=0.0)</span>,\n        <span class=\"summary-sig-arg\">**aMaX0_sMaX0</span>)</span><br />\n      Yield all intersections of two geodesic lines up to a limit.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geodesici.Intersectool-class.html#Closest\" class=\"summary-sig-name\">Closest</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">glA</span>,\n        <span class=\"summary-sig-arg\">glB</span>,\n        <span class=\"summary-sig-arg\">X0</span>=<span class=\"summary-sig-default\">XDict(c=0, sA=0.0, sB=0.0, sX0=0.0)</span>,\n        <span class=\"summary-sig-arg\">_C</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Find the closest intersection of two geodesic lines.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geodesici.Intersectool-class.html#Closest5\" class=\"summary-sig-name\">Closest5</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">glA</span>,\n        <span class=\"summary-sig-arg\">glB</span>,\n        <span class=\"summary-sig-arg\">**unused</span>)</span><br />\n      Find the closest intersection of two geodesic lines.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geodesici.Intersectool-class.html#Line\" class=\"summary-sig-name\">Line</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lat1</span>,\n        <span class=\"summary-sig-arg\">lon1</span>,\n        <span class=\"summary-sig-arg\">azi1_lat2</span>,\n        <span class=\"summary-sig-arg\">*lon2</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Return a geodesic line from this <code>Intersector</code>'s geodesic,\n      specified by two points or a point and an azimuth (bearing from \n      North).</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geodesici.Intersectool-class.html#Middle\" class=\"summary-sig-name\">Middle</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">glA</span>,\n        <span class=\"summary-sig-arg\">glB</span>,\n        <span class=\"summary-sig-arg\">**_C</span>)</span><br />\n      Get the mid-points on two geodesic line segments.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geodesici.Intersectool-class.html#Middle5\" class=\"summary-sig-name\">Middle5</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">glA</span>,\n        <span class=\"summary-sig-arg\">glB</span>,\n        <span class=\"summary-sig-arg\">**unused</span>)</span><br />\n      Get the mid-points on two geodesic line segments and their distance.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geodesici.Intersectool-class.html#Next\" class=\"summary-sig-name\">Next</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">glA</span>,\n        <span class=\"summary-sig-arg\">glB</span>,\n        <span class=\"summary-sig-arg\">eps1</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**_C</span>)</span><br />\n      Find the next intersection of two <i>intersecting</i> geodesic lines.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geodesici.Intersectool-class.html#Next5\" class=\"summary-sig-name\">Next5</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">glA</span>,\n        <span class=\"summary-sig-arg\">glB</span>,\n        <span class=\"summary-sig-arg\">**eps1</span>)</span><br />\n      Find the next intersection of two <i>intersecting</i> geodesic lines.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geodesici.Intersectool-class.html#Segment\" class=\"summary-sig-name\">Segment</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">glA</span>,\n        <span class=\"summary-sig-arg\">glB</span>,\n        <span class=\"summary-sig-arg\">**_C_unused</span>)</span><br />\n      Find the intersection between two geodesic line segments.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geodesici.Intersectool-class.html#Segment5\" class=\"summary-sig-name\">Segment5</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">glA</span>,\n        <span class=\"summary-sig-arg\">glB</span>,\n        <span class=\"summary-sig-arg\">**unused</span>)</span><br />\n      Find the next intersection of two <i>intersecting</i> geodesic lines.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geodesici.Intersectool-class.html#toStr\" class=\"summary-sig-name\">toStr</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">prec</span>=<span class=\"summary-sig-default\">6</span>,\n        <span class=\"summary-sig-arg\">sep</span>=<span class=\"summary-sig-default\">', '</span>,\n        <span class=\"summary-sig-arg\">**unused</span>)</span><br />\n      Return this <code>Intersectool</code> as string.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.geodesici._IntersectBase-class.html\">_IntersectBase</a></code></b>:\n      <code><a href=\"pygeodesy.geodesici._IntersectBase-class.html#Next5s\">Next5s</a></code>,\n      <code><a href=\"pygeodesy.geodesici._IntersectBase-class.html#intersect7\">intersect7</a></code>,\n      <code><a href=\"pygeodesy.geodesici._IntersectBase-class.html#k2kAkB\">k2kAkB</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html\">solveBase._SolveCapsBase</a></code></b>:\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#invokat\">invokat</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#invoke\">invoke</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#linelimit\">linelimit</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.karney._CapsBase-class.html\">karney._CapsBase</a></code></b>:\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#caps_\">caps_</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#others\">others</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#toRepr\">toRepr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS VARIABLES ==================== -->\n<a name=\"section-ClassVariables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Class Variables</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.karney._CapsBase-class.html\">karney._CapsBase</a></code></b>:\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#ALL\">ALL</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#AREA\">AREA</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#AZIMUTH\">AZIMUTH</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#DISTANCE\">DISTANCE</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#DISTANCE_IN\">DISTANCE_IN</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#EMPTY\">EMPTY</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#GEODESICSCALE\">GEODESICSCALE</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#LATITUDE\">LATITUDE</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#LINE_CAPS\">LINE_CAPS</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#LINE_OFF\">LINE_OFF</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#LONGITUDE\">LONGITUDE</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#LONG_UNROLL\">LONG_UNROLL</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#NONFINITONAN\">NONFINITONAN</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#REDUCEDLENGTH\">REDUCEDLENGTH</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#STANDARD\">STANDARD</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#STANDARD_LINE\">STANDARD_LINE</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geodesici.Intersectool-class.html#IntersectTool\" class=\"summary-name\">IntersectTool</a><br />\n      Get the <a \n      href=\"https://GeographicLib.SourceForge.io/C++/doc/IntersectTool.1.html\"\n      target=\"_top\">IntersectTool</a> executable (<code>filename</code>).\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.geodesici._IntersectBase-class.html\">_IntersectBase</a></code></b>:\n      <code><a href=\"pygeodesy.geodesici._IntersectBase-class.html#R\">R</a></code>,\n      <code><a href=\"pygeodesy.geodesici._IntersectBase-class.html#a\">a</a></code>,\n      <code><a href=\"pygeodesy.geodesici._IntersectBase-class.html#datum\">datum</a></code>,\n      <code><a href=\"pygeodesy.geodesici._IntersectBase-class.html#ellipsoid\">ellipsoid</a></code>,\n      <code><a href=\"pygeodesy.geodesici._IntersectBase-class.html#equatoradius\">equatoradius</a></code>,\n      <code><a href=\"pygeodesy.geodesici._IntersectBase-class.html#f\">f</a></code>,\n      <code><a href=\"pygeodesy.geodesici._IntersectBase-class.html#flattening\">flattening</a></code>,\n      <code><a href=\"pygeodesy.geodesici._IntersectBase-class.html#geodesic\">geodesic</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html\">solveBase._SolveCapsBase</a></code></b>:\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#Exact\">Exact</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#b\">b</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#invokation\">invokation</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#prec\">prec</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#status\">status</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#verbose\">verbose</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#version\">version</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.karney._CapsBase-class.html\">karney._CapsBase</a></code></b>:\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#caps\">caps</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#debug\">debug</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">a_geodesic</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">f</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a \n  href=\"pygeodesy.geodesici.Intersectool-class.html#IntersectTool\" \n  class=\"link\">IntersectTool</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>a_geodesic</code></strong> - Earth' equatorial axis (<code>meter</code>) or a \n          <code>Geodesic</code> (<a \n          href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html\" \n          class=\"link\">GeodesicExact</a>, wrapped <a \n          href=\"pygeodesy.geodesicw.Geodesic-class.html\" \n          class=\"link\">Geodesic</a> or <a \n          href=\"pygeodesy.geodsolve.GeodesicSolve-class.html\" \n          class=\"link\">GeodesicSolve</a>).</li>\n        <li><strong class=\"pname\"><code>f</code></strong> - Earth' flattening (<code>scalar</code>), required if \n          <b><code>a_geodesic</code></b> is in <code>meter</code>, ignored \n          otherwise.</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.GeodesicError-class.html\">GeodesicError</a></strong></code> - The eccentricity of the <b><code>geodesic</code></b>'s ellipsoid is\n        too large or no initial convergence.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        The <b>Note</b> at <i>Karney</i>'s C++ <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Intersect.html#ae41f54c9a44836f6c8f140f6994930cf\"\n        target=\"_top\">Intersect</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"All\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">All</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">glA</span>,\n        <span class=\"sig-arg\">glB</span>,\n        <span class=\"sig-arg\">X0</span>=<span class=\"sig-default\">XDict(c=0, sA=0.0, sB=0.0, sX0=0.0)</span>,\n        <span class=\"sig-arg\">eps1</span>=<span class=\"sig-default\">0.0</span>,\n        <span class=\"sig-arg\">aMaX0</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">**sMaX0_C</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Yield all intersections of two geodesic lines up to a limit.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>eps1</code></strong> - Optional margin for the <a \n          href=\"pygeodesy.fmath-module.html#euclid\" \n          class=\"link\">euclid</a>ean distance (<code>degrees</code>) \n          between the <code>(lat1, lon1)</code> points of both lines for \n          using the <a \n          href=\"pygeodesy.geodesici.Intersectool-class.html#IntersectTool\" \n          class=\"link\">IntersectTool</a>'s <code>&quot;-n&quot;</code> \n          option, unless <code><b>eps1</b>=None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>An <a href=\"pygeodesy.geodesici.XDict-class.html\" \n          class=\"link\">XDict</a> for each intersection.</dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.geodesici._IntersectBase-class.html#All\">_IntersectBase.All</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"All5\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">All5</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">glA</span>,\n        <span class=\"sig-arg\">glB</span>,\n        <span class=\"sig-arg\">X0</span>=<span class=\"sig-default\">XDict(c=0, sA=0.0, sB=0.0, sX0=0.0)</span>,\n        <span class=\"sig-arg\">**aMaX0_sMaX0</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Yield all intersections of two geodesic lines up to a limit.</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd>An <a href=\"pygeodesy.geodesici.Intersectool5Tuple-class.html\" \n          class=\"link\">Intersectool5Tuple</a> for each intersection.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"Closest\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">Closest</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">glA</span>,\n        <span class=\"sig-arg\">glB</span>,\n        <span class=\"sig-arg\">X0</span>=<span class=\"sig-default\">XDict(c=0, sA=0.0, sB=0.0, sX0=0.0)</span>,\n        <span class=\"sig-arg\">_C</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Find the closest intersection of two geodesic lines.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>_C</code></strong> - Use <code><b>_C</b>=True</code> to include the \n          <code>&quot;-C&quot;</code> results (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>An <a href=\"pygeodesy.geodesici.XDict-class.html\" \n          class=\"link\">XDict</a>.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"Closest5\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">Closest5</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">glA</span>,\n        <span class=\"sig-arg\">glB</span>,\n        <span class=\"sig-arg\">**unused</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Find the closest intersection of two geodesic lines.</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd>An <a href=\"pygeodesy.geodesici.Intersectool5Tuple-class.html\" \n          class=\"link\">Intersectool5Tuple</a>.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"Line\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">Line</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lat1</span>,\n        <span class=\"sig-arg\">lon1</span>,\n        <span class=\"sig-arg\">azi1_lat2</span>,\n        <span class=\"sig-arg\">*lon2</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return a geodesic line from this <code>Intersector</code>'s geodesic, \n  specified by two points or a point and an azimuth (bearing from \n  North).</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd>A 3- or 6-item, named <a href=\"pygeodesy.karney.GDict-class.html\"\n          class=\"link\">GDict</a>.</dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.geodesici._IntersectBase-class.html#Line\">_IntersectBase.Line</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"Middle\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">Middle</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">glA</span>,\n        <span class=\"sig-arg\">glB</span>,\n        <span class=\"sig-arg\">**_C</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Get the mid-points on two geodesic line segments.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>_C</code></strong> - Use <code><b>_C</b>=True</code> to include the \n          <code>&quot;-C&quot;</code> results (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>An <a href=\"pygeodesy.geodesici.XDict-class.html\" \n          class=\"link\">XDict</a>.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"Middle5\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">Middle5</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">glA</span>,\n        <span class=\"sig-arg\">glB</span>,\n        <span class=\"sig-arg\">**unused</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Get the mid-points on two geodesic line segments and their \n  distance.</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.geodesici.Middle5Tuple-class.html\" \n          class=\"link\">Middle5Tuple</a>.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"Next\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">Next</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">glA</span>,\n        <span class=\"sig-arg\">glB</span>,\n        <span class=\"sig-arg\">eps1</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**_C</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Find the next intersection of two <i>intersecting</i> geodesic \n  lines.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>_C</code></strong> - Use <code><b>_C</b>=True</code> to include the option \n          <code>&quot;-C&quot;</code> results (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>An <a href=\"pygeodesy.geodesici.XDict-class.html\" \n          class=\"link\">XDict</a>.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"Next5\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">Next5</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">glA</span>,\n        <span class=\"sig-arg\">glB</span>,\n        <span class=\"sig-arg\">**eps1</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Find the next intersection of two <i>intersecting</i> geodesic \n  lines.</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd>An <a href=\"pygeodesy.geodesici.Intersectool5Tuple-class.html\" \n          class=\"link\">Intersectool5Tuple</a>.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"Segment\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">Segment</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">glA</span>,\n        <span class=\"sig-arg\">glB</span>,\n        <span class=\"sig-arg\">**_C_unused</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Find the intersection between two geodesic line segments.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>_C</code></strong> - Use <code><b>_C</b>=True</code> to include the option \n          <code>&quot;-C&quot;</code> results (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>An <a href=\"pygeodesy.geodesici.XDict-class.html\" \n          class=\"link\">XDict</a>.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"Segment5\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">Segment5</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">glA</span>,\n        <span class=\"sig-arg\">glB</span>,\n        <span class=\"sig-arg\">**unused</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Find the next intersection of two <i>intersecting</i> geodesic \n  lines.</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd>An <a href=\"pygeodesy.geodesici.Intersectool5Tuple-class.html\" \n          class=\"link\">Intersectool5Tuple</a>.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toStr\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toStr</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">prec</span>=<span class=\"sig-default\">6</span>,\n        <span class=\"sig-arg\">sep</span>=<span class=\"sig-default\">', '</span>,\n        <span class=\"sig-arg\">**unused</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return this <code>Intersectool</code> as string.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>prec_sep</code></strong> - Keyword argumens <code><b>prec</b>=6</code> and \n          <code><b>sep</b>=&quot;, &quot;</code> for the <code>float</code>\n          <code>prec</code>ision, number of decimal digits (0..9) and the \n          <code>sep</code>arator string to join.  Trailing zero decimals \n          are stripped for <b><code>prec</code></b> values of 1 and above, \n          but kept for negative <b><code>prec</code></b> values.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Intersectool items (<code>str</code>).</dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.named._Named-class.html#toStr\">named._Named.toStr</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"IntersectTool\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">IntersectTool</h3>\n  <p>Get the <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/IntersectTool.1.html\" \n  target=\"_top\">IntersectTool</a> executable (<code>filename</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">IntersectTool(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <a \nhref=\"https://GeographicLib.SourceForge.io/C++/doc/IntersectTool.1.html\" \ntarget=\"_top\">IntersectTool</a> executable (<code>filename</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">IntersectTool(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">path</span>)</span>\n        - Set the <a \nhref=\"https://GeographicLib.SourceForge.io/C++/doc/IntersectTool.1.html\" \ntarget=\"_top\">IntersectTool</a> executable (<code>filename</code>), the \n(fully qualified) path to the <code>IntersectTool</code> executable.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.geodesici.Intersectool5Tuple-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.geodesici.Intersectool5Tuple</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.geodesici-module.html\">Module&nbsp;geodesici</a> ::\n        Class&nbsp;Intersectool5Tuple\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.geodesici.Intersectool5Tuple-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Intersectool5Tuple</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n   object --+        \n            |        \n        tuple --+    \n                |    \n   object --+   |    \n            |   |    \n <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n                |    \n<a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a> --+\n                    |\n                   <strong class=\"uidshort\">Intersectool5Tuple</strong>\n</pre>\n\n<dl><dt>Known Subclasses:</dt>\n<dd>\n      <ul class=\"subclass-list\">\n<li><a href=\"pygeodesy.geodesici.Intersector5Tuple-class.html\">Intersector5Tuple</a></li><li>, <a href=\"pygeodesy.geodesici.Middle5Tuple-class.html\">Middle5Tuple</a></li>  </ul>\n</dd></dl>\n\n<hr />\n<p>5-Tuple <code>(A, B, sAB, aAB, c)</code> with <code>A</code> and \n  <code>B</code> the <code>Position</code> of the intersection on each \n  geodesic line, the distance <code>sAB</code> between <code>A</code> and \n  <code>B</code> in <code>meter</code>, the angular distance \n  <code>aAB</code> in <code>degrees</code> and coincidence indicator \n  <code>c</code> (<code>int</code>), see <a \n  href=\"pygeodesy.geodesici.XDict-class.html\" class=\"link\">XDict</a>.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Note:</strong>\n        <code>A</code> and <code>B</code> are each a <code>GDict</code> \n        with <code>lat1</code>, <code>lon1</code> and <code>azi1</code> or \n        <code>lat2</code>, <code>lon2</code> from the geodesic line \n        <code>glA</code> respectively <code>glB</code> and the intersection\n        location in <code>latX</code>, <code>lonX</code>, distance \n        <code>s1X</code> in <code>meter</code> and angular distance \n        <code>a1X</code> in <code>degrees</code> and the segment indicator \n        <code>kX</code>.  See <a \n        href=\"pygeodesy.geodesici.XDict-class.html\" class=\"link\">XDict</a> \n        for more details.\n      </p>\n</div><!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__delattr__\">__delattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__getattr__\">__getattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__setattr__\">__setattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#items\">items</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iteritems\">iteritems</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iterunits\">iterunits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#reUnit\">reUnit</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toUnits\">toUnits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>tuple</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__eq__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__iter__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__rmul__</code>,\n      <code>count</code>,\n      <code>index</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__new__\">__new__</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.geodesici.Intersector-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.geodesici.Intersector</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.geodesici-module.html\">Module&nbsp;geodesici</a> ::\n        Class&nbsp;Intersector\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.geodesici.Intersector-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Intersector</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+            \n           |            \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+        \n               |        \n<a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+    \n                   |    \n      <a href=\"pygeodesy.geodesici._IntersectBase-class.html\">_IntersectBase</a> --+\n                       |\n                      <strong class=\"uidshort\">Intersector</strong>\n</pre>\n\n<hr />\n<p>Finder of intersections between two goedesic lines, each an instance \n  of <a href=\"pygeodesy.geodesicx.gx.GeodesicLineExact-class.html\" \n  class=\"link\">GeodesicLineExact</a>, wrapped <a \n  href=\"pygeodesy.geodesicw.GeodesicLine-class.html\" \n  class=\"link\">GeodesicLine</a> or <a \n  href=\"pygeodesy.geodsolve.GeodesicLineSolve-class.html\" \n  class=\"link\">GeodesicLineSolve</a>.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <i>Karney</i>'s C++ class <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Intersect.html#details\"\n        target=\"_top\">Intersect</a> for more details.\n      </p>\n</div><!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geodesici.Intersector-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">geodesic</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      New <a href=\"pygeodesy.geodesici.Intersector-class.html\" \n      class=\"link\">Intersector</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geodesici.Intersector-class.html#All\" class=\"summary-sig-name\">All</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">glA</span>,\n        <span class=\"summary-sig-arg\">glB</span>,\n        <span class=\"summary-sig-arg\">X0</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">aMaX0</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">**sMaX0_C</span>)</span><br />\n      Yield all intersections of two geodesic lines up to a limit.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geodesici.Intersector-class.html#All5\" class=\"summary-sig-name\">All5</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">glA</span>,\n        <span class=\"summary-sig-arg\">glB</span>,\n        <span class=\"summary-sig-arg\">X0</span>=<span class=\"summary-sig-default\">XDict(c=0, sA=0.0, sB=0.0, sX0=0.0)</span>,\n        <span class=\"summary-sig-arg\">**aMaX0_sMaX0_C</span>)</span><br />\n      Yield all intersection of two geodesic lines up to a limit.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geodesici.Intersector-class.html#Closest\" class=\"summary-sig-name\">Closest</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">glA</span>,\n        <span class=\"summary-sig-arg\">glB</span>,\n        <span class=\"summary-sig-arg\">X0</span>=<span class=\"summary-sig-default\">XDict(c=0, sA=0.0, sB=0.0, sX0=0.0)</span>,\n        <span class=\"summary-sig-arg\">**_C</span>)</span><br />\n      Find the closest intersection of two geodesic lines.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geodesici.Intersector-class.html#Closest5\" class=\"summary-sig-name\">Closest5</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">glA</span>,\n        <span class=\"summary-sig-arg\">glB</span>,\n        <span class=\"summary-sig-arg\">X0</span>=<span class=\"summary-sig-default\">XDict(c=0, sA=0.0, sB=0.0, sX0=0.0)</span>)</span><br />\n      Find the closest intersection of two geodesic lines.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geodesici.Intersector-class.html#Line\" class=\"summary-sig-name\">Line</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lat1</span>,\n        <span class=\"summary-sig-arg\">lon1</span>,\n        <span class=\"summary-sig-arg\">azi1_lat2</span>,\n        <span class=\"summary-sig-arg\">*lon2</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Return a geodesic line from this <code>Intersector</code>'s geodesic,\n      specified by two points or a point and an azimuth (bearing from \n      North).</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geodesici.Intersector-class.html#Middle\" class=\"summary-sig-name\">Middle</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">glA</span>,\n        <span class=\"summary-sig-arg\">glB</span>,\n        <span class=\"summary-sig-arg\">raiser</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">**_C</span>)</span><br />\n      Get the mid-points on two geodesic line segments.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geodesici.Intersector-class.html#Middle5\" class=\"summary-sig-name\">Middle5</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">glA</span>,\n        <span class=\"summary-sig-arg\">glB</span>,\n        <span class=\"summary-sig-arg\">raiser</span>=<span class=\"summary-sig-default\">True</span>)</span><br />\n      Get the mid-points of two geodesic line segments and distances.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geodesici.Intersector-class.html#Next\" class=\"summary-sig-name\">Next</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">glA</span>,\n        <span class=\"summary-sig-arg\">glB</span>,\n        <span class=\"summary-sig-arg\">eps1</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**_C</span>)</span><br />\n      Yield the next intersection of two <i>intersecting</i> geodesic \n      lines.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geodesici.Intersector-class.html#Next5\" class=\"summary-sig-name\">Next5</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">glA</span>,\n        <span class=\"summary-sig-arg\">glB</span>,\n        <span class=\"summary-sig-arg\">**eps1</span>)</span><br />\n      Yield the next intersection of two <i>intersecting</i> geodesic \n      lines.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geodesici.Intersector-class.html#Segment\" class=\"summary-sig-name\">Segment</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">glA</span>,\n        <span class=\"summary-sig-arg\">glB</span>,\n        <span class=\"summary-sig-arg\">proven</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">raiser</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">**_C</span>)</span><br />\n      Find the intersection between two geodesic line segments.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geodesici.Intersector-class.html#Segment5\" class=\"summary-sig-name\">Segment5</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">glA</span>,\n        <span class=\"summary-sig-arg\">glB</span>,\n        <span class=\"summary-sig-arg\">**proven_raiser</span>)</span><br />\n      Find the intersection between two geodesic line segments.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geodesici.Intersector-class.html#toStr\" class=\"summary-sig-name\">toStr</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">**prec_sep_name</span>)</span><br />\n      Return this <code>Intersector</code> as string.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.geodesici._IntersectBase-class.html\">_IntersectBase</a></code></b>:\n      <code><a href=\"pygeodesy.geodesici._IntersectBase-class.html#Next5s\">Next5s</a></code>,\n      <code><a href=\"pygeodesy.geodesici._IntersectBase-class.html#intersect7\">intersect7</a></code>,\n      <code><a href=\"pygeodesy.geodesici._IntersectBase-class.html#k2kAkB\">k2kAkB</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#others\">others</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#toRepr\">toRepr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geodesici.Intersector-class.html#Delta\" class=\"summary-name\">Delta</a><br />\n      Get the equality and tiling margin (<code>meter</code>).\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.geodesici._IntersectBase-class.html\">_IntersectBase</a></code></b>:\n      <code><a href=\"pygeodesy.geodesici._IntersectBase-class.html#R\">R</a></code>,\n      <code><a href=\"pygeodesy.geodesici._IntersectBase-class.html#a\">a</a></code>,\n      <code><a href=\"pygeodesy.geodesici._IntersectBase-class.html#datum\">datum</a></code>,\n      <code><a href=\"pygeodesy.geodesici._IntersectBase-class.html#ellipsoid\">ellipsoid</a></code>,\n      <code><a href=\"pygeodesy.geodesici._IntersectBase-class.html#equatoradius\">equatoradius</a></code>,\n      <code><a href=\"pygeodesy.geodesici._IntersectBase-class.html#f\">f</a></code>,\n      <code><a href=\"pygeodesy.geodesici._IntersectBase-class.html#flattening\">flattening</a></code>,\n      <code><a href=\"pygeodesy.geodesici._IntersectBase-class.html#geodesic\">geodesic</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">geodesic</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.geodesici.Intersector-class.html\" \n  class=\"link\">Intersector</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>geodesic</code></strong> - The geodesic (<a \n          href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html\" \n          class=\"link\">GeodesicExact</a>, wrapped <a \n          href=\"pygeodesy.geodesicw.Geodesic-class.html\" \n          class=\"link\">Geodesic</a> or <a \n          href=\"pygeodesy.geodsolve.GeodesicLineSolve-class.html\" \n          class=\"link\">GeodesicLineSolve</a>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.GeodesicError-class.html\">GeodesicError</a></strong></code> - The <b><code>geodesic</code></b>'s ellipsoid is too eccentric or no\n        initial convergence.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        The <b>Note</b> at <i>Karney</i>'s C++ <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Intersect.html#ae41f54c9a44836f6c8f140f6994930cf\"\n        target=\"_top\">Intersect</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"All\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">All</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">glA</span>,\n        <span class=\"sig-arg\">glB</span>,\n        <span class=\"sig-arg\">X0</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">aMaX0</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">**sMaX0_C</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Yield all intersections of two geodesic lines up to a limit.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>glA</code></strong> - A geodesic line (<a \n          href=\"pygeodesy.geodesici.Intersector-class.html#Line\" \n          class=\"link\">Line</a>).</li>\n        <li><strong class=\"pname\"><code>glB</code></strong> - An other geodesic line (<a \n          href=\"pygeodesy.geodesici.Intersector-class.html#Line\" \n          class=\"link\">Line</a>).</li>\n        <li><strong class=\"pname\"><code>X0</code></strong> - Optional <i>origin</i> for <i>L1-distances</i> (<a \n          href=\"pygeodesy.geodesici.XDict-class.html\" \n          class=\"link\">XDict</a>) or <code>None</code> for the <a \n          href=\"pygeodesy.geodesici.Intersector-class.html#Middle\" \n          class=\"link\">Middle</a> of both lines if both are a \n          4-<code>args</code> <a \n          href=\"pygeodesy.geodesici.Intersector-class.html#Line\" \n          class=\"link\">Line</a> or <code>InverseLine</code>, otherwise \n          <code>XDiff_(0, 0)</code>.</li>\n        <li><strong class=\"pname\"><code>aMaX0</code></strong> - Upper limit for the <i>angular L1-distance</i> \n          (<code>degrees</code>) or <code>None</code> or <code>0</code> for\n          unlimited.</li>\n        <li><strong class=\"pname\"><code>sMaX0_C</code></strong> - Optional, upper limit <code><b>sMaX0</b>=2*PI*R</code> for the \n          <i>L1-distance</i> to <b><code>X0</code></b> (<code>meter</code>)\n          and option <code><b>_C</b>=False</code> to include the \n          intersection lat-/ longitudes <code>latA</code>, \n          <code>lonA</code>, <code>latB</code>, <code>lonB</code> and \n          distances <code>sAB</code> and <code>aSB</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Yield an <a href=\"pygeodesy.geodesici.XDict-class.html\" \n          class=\"link\">XDict</a> for each intersection found.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.GeodesicError-class.html\">GeodesicError</a></strong></code> - Geodesic line <b><code>glA</code></b> or <b><code>glB</code></b> \n        invalid, incompatible or ill-configured.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.IntersectionError-class.html\">IntersectionError</a></strong></code> - No convergence.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.geodesici._IntersectBase-class.html#All\">_IntersectBase.All</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"All5\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">All5</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">glA</span>,\n        <span class=\"sig-arg\">glB</span>,\n        <span class=\"sig-arg\">X0</span>=<span class=\"sig-default\">XDict(c=0, sA=0.0, sB=0.0, sX0=0.0)</span>,\n        <span class=\"sig-arg\">**aMaX0_sMaX0_C</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Yield all intersection of two geodesic lines up to a limit.</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd>Yield an <a \n          href=\"pygeodesy.geodesici.Intersector5Tuple-class.html\" \n          class=\"link\">Intersector5Tuple</a><code>(A, B, sAB, aAB, \n          c)</code> for each intersection found.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Methods <a href=\"pygeodesy.geodesici.Intersector-class.html#All\" \n        class=\"link\">All</a> for further details.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"Closest\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">Closest</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">glA</span>,\n        <span class=\"sig-arg\">glB</span>,\n        <span class=\"sig-arg\">X0</span>=<span class=\"sig-default\">XDict(c=0, sA=0.0, sB=0.0, sX0=0.0)</span>,\n        <span class=\"sig-arg\">**_C</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Find the closest intersection of two geodesic lines.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>glA</code></strong> - A geodesic line (<a \n          href=\"pygeodesy.geodesici.Intersector-class.html#Line\" \n          class=\"link\">Line</a>).</li>\n        <li><strong class=\"pname\"><code>glB</code></strong> - An other geodesic line (<a \n          href=\"pygeodesy.geodesici.Intersector-class.html#Line\" \n          class=\"link\">Line</a>).</li>\n        <li><strong class=\"pname\"><code>X0</code></strong> - Optional <i>origin</i> for <i>L1-closeness</i> (<a \n          href=\"pygeodesy.geodesici.XDict-class.html\" \n          class=\"link\">XDict</a>).</li>\n        <li><strong class=\"pname\"><code>_C</code></strong> - If <code>True</code>, include the lat-/longitudes \n          <code>latA</code>, <code>lonA</code>, <code>latB</code>, \n          <code>lonB</code> and distances <code>sAB</code> and \n          <code>aSB</code> between the intersections.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The intersection (<a href=\"pygeodesy.geodesici.XDict-class.html\" \n          class=\"link\">XDict</a>) or <code>None</code> if none found.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.GeodesicError-class.html\">GeodesicError</a></strong></code> - Geodesic line <b><code>glA</code></b> or <b><code>glB</code></b> \n        invalid, incompatible or ill-configured.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.IntersectionError-class.html\">IntersectionError</a></strong></code> - No convergence.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"Closest5\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">Closest5</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">glA</span>,\n        <span class=\"sig-arg\">glB</span>,\n        <span class=\"sig-arg\">X0</span>=<span class=\"sig-default\">XDict(c=0, sA=0.0, sB=0.0, sX0=0.0)</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Find the closest intersection of two geodesic lines.</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd>An <a href=\"pygeodesy.geodesici.Intersector5Tuple-class.html\" \n          class=\"link\">Intersector5Tuple</a><code>(A, B, sAB, aAB, \n          c)</code> or <code>None</code> if none found.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <a href=\"pygeodesy.geodesici.Intersector-class.html#Closest\"\n        class=\"link\">Closest</a> for further details.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"Line\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">Line</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lat1</span>,\n        <span class=\"sig-arg\">lon1</span>,\n        <span class=\"sig-arg\">azi1_lat2</span>,\n        <span class=\"sig-arg\">*lon2</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return a geodesic line from this <code>Intersector</code>'s geodesic, \n  specified by two points or a point and an azimuth (bearing from \n  North).</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat1</code></strong> - Latitude of the first point (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lon1</code></strong> - Longitude of the first point (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>azi1_lat2</code></strong> - Azimuth at the first point (compass <code>degrees</code>) if no \n          <b><code>lon2</code></b> argument is given, otherwise the \n          latitude of the second point (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lon2</code></strong> - If given, the longitude of the second point \n          (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A line (from <a \n          href=\"pygeodesy.geodesici._IntersectBase-class.html#geodesic\" \n          class=\"link\">geodesic</a><code>.Line</code> or \n          <code>.InverseLine</code> method) with <code>LINE_CAPS</code>.</dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.geodesici._IntersectBase-class.html#Line\">_IntersectBase.Line</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"Middle\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">Middle</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">glA</span>,\n        <span class=\"sig-arg\">glB</span>,\n        <span class=\"sig-arg\">raiser</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">**_C</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Get the mid-points on two geodesic line segments.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>glA</code></strong> - A geodesic line (<a \n          href=\"pygeodesy.geodesici.Intersector-class.html#Line\" \n          class=\"link\">Line</a>, 4-<code>args</code>).</li>\n        <li><strong class=\"pname\"><code>glB</code></strong> - An other geodesic line (<a \n          href=\"pygeodesy.geodesici.Intersector-class.html#Line\" \n          class=\"link\">Line</a>, 4-<code>args</code>).</li>\n        <li><strong class=\"pname\"><code>raiser</code></strong> - If <code>True</code>, check that <b><code>glA</code></b> and \n          <b><code>glB</code></b> are a 4-<code>args</code> <a \n          href=\"pygeodesy.geodesici.Intersector-class.html#Line\" \n          class=\"link\">Line</a> or <code>InverseLine</code> \n          (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>_C</code></strong> - If <code>True</code>, include the lat-/longitudes \n          <code>latA</code>, <code>lonA</code>, <code>latB</code>, \n          <code>lonB</code> of the mid-points and half-lengths \n          <code>sA</code> and <code>sB</code> in <code>meter</code> of the \n          respective line segments.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The mid-point and half-length of each segment (<a \n          href=\"pygeodesy.geodesici.XDict-class.html\" \n          class=\"link\">XDict</a>), <b><code>_C</code></b> above.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.GeodesicError-class.html\">GeodesicError</a></strong></code> - Geodesic line <b><code>glA</code></b> or <b><code>glB</code></b> \n        invalid, incompatible, ill-configured or not a 4-<code>args \n        Line</code> or other <code>InverseLine</code>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"Middle5\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">Middle5</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">glA</span>,\n        <span class=\"sig-arg\">glB</span>,\n        <span class=\"sig-arg\">raiser</span>=<span class=\"sig-default\">True</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Get the mid-points of two geodesic line segments and distances.</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.geodesici.Middle5Tuple-class.html\" \n          class=\"link\">Middle5Tuple</a><code>(A, B, sMM, aMM, c)</code>.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <a href=\"pygeodesy.geodesici.Intersector-class.html#Middle\" \n        class=\"link\">Middle</a> for further details.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"Next\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">Next</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">glA</span>,\n        <span class=\"sig-arg\">glB</span>,\n        <span class=\"sig-arg\">eps1</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**_C</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Yield the next intersection of two <i>intersecting</i> geodesic \n  lines.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>glA</code></strong> - A geodesic line (<a \n          href=\"pygeodesy.geodesici.Intersector-class.html#Line\" \n          class=\"link\">Line</a>).</li>\n        <li><strong class=\"pname\"><code>glB</code></strong> - An other geodesic line (<a \n          href=\"pygeodesy.geodesici.Intersector-class.html#Line\" \n          class=\"link\">Line</a>).</li>\n        <li><strong class=\"pname\"><code>eps1</code></strong> - Optional margin for the <a \n          href=\"pygeodesy.fmath-module.html#euclid\" \n          class=\"link\">euclid</a>ean distance (<code>degrees</code>) \n          between the <code>(lat1, lon1)</code> points of both lines or \n          <code>None</code> for unchecked.</li>\n        <li><strong class=\"pname\"><code>_C</code></strong> - If <code>True</code>, include the lat-/longitudes \n          <code>latA</code>, <code>lonA</code>, <code>latB</code>, \n          <code>lonB</code> of and distances <code>sAB</code> and \n          <code>aSB</code> between the intersections.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The intersection (<a href=\"pygeodesy.geodesici.XDict-class.html\" \n          class=\"link\">XDict</a>) or <code>None</code> if none found.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.GeodesicError-class.html\">GeodesicError</a></strong></code> - Geodesic line <b><code>glA</code></b> or <b><code>glB</code></b> \n        invalid, incompatible, ill-configured or <code>(lat1, lon1)</code> \n        not <b><code>eps1</code></b>-equal.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.IntersectionError-class.html\">IntersectionError</a></strong></code> - No convergence.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        Offset <code>X0</code> is implicit, zeros.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"Next5\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">Next5</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">glA</span>,\n        <span class=\"sig-arg\">glB</span>,\n        <span class=\"sig-arg\">**eps1</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Yield the next intersection of two <i>intersecting</i> geodesic \n  lines.</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd>An <a href=\"pygeodesy.geodesici.Intersector5Tuple-class.html\" \n          class=\"link\">Intersector5Tuple</a><code>(A, B, sAB, aAB, \n          c)</code> or <code>None</code> if none found.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <a href=\"pygeodesy.geodesici.Intersector-class.html#Next\" \n        class=\"link\">Next</a> for further details.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"Segment\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">Segment</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">glA</span>,\n        <span class=\"sig-arg\">glB</span>,\n        <span class=\"sig-arg\">proven</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">raiser</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">**_C</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Find the intersection between two geodesic line segments.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>proven</code></strong> - Conjecture is that whenever two geodesic line segments intersect,\n          the intersection is the one closest to the mid-points of \n          segments. If so, use <code><b>proven</b>=True</code>, otherwise \n          find intersections on the segments and specify \n          <code><b>proven</b>=None</code> to return the first or \n          <code><b>proven</b>=False</code> the closest (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>raiser</code></strong> - If <code>True</code>, check that <b><code>glA</code></b> and \n          <b><code>glB</code></b> are a 4-<code>args</code> <a \n          href=\"pygeodesy.geodesici.Intersector-class.html#Line\" \n          class=\"link\">Line</a> or <code>InverseLine</code> \n          (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>_C</code></strong> - If <code>True</code>, include the lat-/longitudes \n          <code>latA</code>, <code>lonA</code>, <code>latB</code>, \n          <code>lonB</code> of and distances <code>sAB</code> and \n          <code>aSB</code> between the intersections.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The intersection of the segments (<a \n          href=\"pygeodesy.geodesici.XDict-class.html\" \n          class=\"link\">XDict</a>) with indicators <code>kA</code>, \n          <code>kB</code> and <code>k</code> set or if no intersection is \n          found, <code>None</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.GeodesicError-class.html\">GeodesicError</a></strong></code> - Geodesic line <b><code>glA</code></b> or <b><code>glB</code></b> \n        invalid, incompatible, ill-configured or not an \n        <code>InverseLine</code> or 4-<code>args Line</code>.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.IntersectionError-class.html\">IntersectionError</a></strong></code> - No convergence.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <a href=\"pygeodesy.geodesici.Intersector-class.html#Middle\" \n        class=\"link\">Middle</a> for further details.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"Segment5\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">Segment5</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">glA</span>,\n        <span class=\"sig-arg\">glB</span>,\n        <span class=\"sig-arg\">**proven_raiser</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Find the intersection between two geodesic line segments.</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd>An <a href=\"pygeodesy.geodesici.Intersector5Tuple-class.html\" \n          class=\"link\">Intersector5Tuple</a><code>(A, B, sAB, aAB, \n          c)</code> or <code>None</code> if none found.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <a href=\"pygeodesy.geodesici.Intersector-class.html#Segment\"\n        class=\"link\">Segment</a> for further details.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"toStr\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toStr</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">**prec_sep_name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return this <code>Intersector</code> as string.</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd><code>Intersector</code> (<code>str</code>).</dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.named._Named-class.html#toStr\">named._Named.toStr</a>\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#toStr\" \n        class=\"link\">Ellipsoid.toStr</a> for further details.\n      </p>\n</div></td></tr></table>\n</div>\n<br />\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"Delta\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">Delta</h3>\n  <p>Get the equality and tiling margin (<code>meter</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">Delta(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the equality and tiling margin (<code>meter</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.geodesici.Intersector5Tuple-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.geodesici.Intersector5Tuple</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.geodesici-module.html\">Module&nbsp;geodesici</a> ::\n        Class&nbsp;Intersector5Tuple\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.geodesici.Intersector5Tuple-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Intersector5Tuple</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n   object --+            \n            |            \n        tuple --+        \n                |        \n   object --+   |        \n            |   |        \n <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+        \n                |        \n<a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a> --+    \n                    |    \n   <a href=\"pygeodesy.geodesici.Intersectool5Tuple-class.html\">Intersectool5Tuple</a> --+\n                        |\n                       <strong class=\"uidshort\">Intersector5Tuple</strong>\n</pre>\n\n<hr />\n<p>5-Tuple <code>(A, B, sAB, aAB, c)</code> with <code>A</code> and \n  <code>B</code> the <code>Position</code> of the intersection on each \n  geodesic line, the distance <code>sAB</code> between <code>A</code> and \n  <code>B</code> in <code>meter</code>, angular distance <code>aAB</code> \n  in <code>degrees</code> and coincidence indicator <code>c</code> \n  (<code>int</code>), see <a href=\"pygeodesy.geodesici.XDict-class.html\" \n  class=\"link\">XDict</a>.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Note:</strong>\n        <code>A</code> and <code>B</code> are each a \n        <code>GeodesicLine...Position</code> for \n        <code>outmask=Caps.STANDARD</code> with the intersection location \n        in <code>latX</code>, <code>lonX</code>, azimuth in \n        <code>aziX</code>, distance <code>s1X</code> in <code>meter</code> \n        and angular distance <code>a1X</code> in <code>degrees</code> and \n        the segment indicator <code>kX</code>.  See <a \n        href=\"pygeodesy.geodesici.XDict-class.html\" class=\"link\">XDict</a> \n        for more details.\n      </p>\n</div><!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__delattr__\">__delattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__getattr__\">__getattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__setattr__\">__setattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#items\">items</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iteritems\">iteritems</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iterunits\">iterunits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#reUnit\">reUnit</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toUnits\">toUnits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>tuple</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__eq__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__iter__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__rmul__</code>,\n      <code>count</code>,\n      <code>index</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__new__\">__new__</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.geodesici.Middle5Tuple-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.geodesici.Middle5Tuple</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.geodesici-module.html\">Module&nbsp;geodesici</a> ::\n        Class&nbsp;Middle5Tuple\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.geodesici.Middle5Tuple-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Middle5Tuple</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n   object --+            \n            |            \n        tuple --+        \n                |        \n   object --+   |        \n            |   |        \n <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+        \n                |        \n<a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a> --+    \n                    |    \n   <a href=\"pygeodesy.geodesici.Intersectool5Tuple-class.html\">Intersectool5Tuple</a> --+\n                        |\n                       <strong class=\"uidshort\">Middle5Tuple</strong>\n</pre>\n\n<hr />\n<p>5-Tuple <code>(A, B, sMM, aMM, c)</code> with <code>A</code> and \n  <code>B</code> the <i>line segments</i> including the mid-point location \n  in <code>latM</code>, <code>lonM</code>, distance <code>s1M</code> in \n  <code>meter</code> and angular distance <code>a1M</code> in \n  <code>degrees</code>, the distance between both mid-points \n  <code>sMM</code> in <code>meter</code> and angular distance \n  <code>aMM</code> in <code>degrees</code> and coincidence indicator \n  <code>c</code> (<code>int</code>).  See <a \n  href=\"pygeodesy.geodesici.XDict-class.html\" class=\"link\">XDict</a> for \n  more details.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__delattr__\">__delattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__getattr__\">__getattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__setattr__\">__setattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#items\">items</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iteritems\">iteritems</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iterunits\">iterunits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#reUnit\">reUnit</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toUnits\">toUnits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>tuple</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__eq__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__iter__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__rmul__</code>,\n      <code>count</code>,\n      <code>index</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__new__\">__new__</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.geodesici.XDict-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.geodesici.XDict</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.geodesici-module.html\">Module&nbsp;geodesici</a> ::\n        Class&nbsp;XDict\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.geodesici.XDict-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class XDict</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\nobject --+        \n         |        \n      dict --+    \n             |    \n   <a href=\"pygeodesy.named.ADict-class.html\">named.ADict</a> --+\n                 |\n                <strong class=\"uidshort\">XDict</strong>\n</pre>\n\n<hr />\n<p>4+Item result from <a \n  href=\"pygeodesy.geodesici.Intersectool-class.html\" \n  class=\"link\">Intersectool</a> and <a \n  href=\"pygeodesy.geodesici.Intersector-class.html\" \n  class=\"link\">Intersector</a> methods <code>All</code>, \n  <code>Closest</code>, <code>Next</code> and <code>Segment</code> with the\n  intersection offsets <code>sA</code>, <code>sB</code> and \n  <code>sX0</code> in <code>meter</code> and the coincidence indicator \n  <code>c</code>, an <code>int</code>, +1 for parallel, -1 for \n  anti-parallel or 0 otherwise.</p>\n  <p>Offsets <code>sA</code> and <code>sB</code> are distances measured \n  <i>along</i> geodesic line <code>glA</code> respectively \n  <code>glB</code>, but <code>sX0</code> is the <i>L1-distance</i> between \n  the intersection and the <i>origin</i> <code>X0</code>.</p>\n  <p>If present, distance <code>sAB</code> and angular distance \n  <code>aAB</code> represent the separation between the intersection point \n  on geodesic lines <code>glA</code> and <code>glB</code> in \n  <code>meter</code> respectively <code>degrees</code>, typically below \n  <code>5e-9 meter</code> or <code>5 nm</code> respectively <code>5e-14 \n  degrees</code> or <code>1 n&quot;</code>.</p>\n  <p>For segments, indicators <code>kA</code> and <code>kB</code> are \n  <code>0</code> if the segments intersect or <code>-1</code> or \n  <code>+1</code> if the intersection is <i>before</i> the start, \n  respectively <i>after</i> the end of the segment, similar to <a \n  href=\"pygeodesy.namedTuples.Intersection3Tuple-class.html\" \n  class=\"link\">Intersection3Tuple</a>.  Segment indicator <code>k</code> is\n  <i>Karney</i>'s <code>segmode</code>, equal <code>kA * 3 + kB</code>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__add__\"></a><span class=\"summary-sig-name\">__add__</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span></td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geodesici.XDict-class.html#__eq__\" class=\"summary-sig-name\">__eq__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span><br />\n      x==y</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__iadd__\"></a><span class=\"summary-sig-name\">__iadd__</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span></td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geodesici.XDict-class.html#__le__\" class=\"summary-sig-name\">__le__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span><br />\n      x&lt;=y</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geodesici.XDict-class.html#__lt__\" class=\"summary-sig-name\">__lt__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span><br />\n      x&lt;y</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geodesici.XDict-class.html#__ne__\" class=\"summary-sig-name\">__ne__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span><br />\n      x!=y</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"L1\"></a><span class=\"summary-sig-name\">L1</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>=<span class=\"summary-sig-default\">None</span>)</span><br />\n      Return the <code>L1</code> distance.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named.ADict-class.html\">named.ADict</a></code></b>:\n      <code><a href=\"pygeodesy.named.ADict-class.html#__getattr__\">__getattr__</a></code>,\n      <code><a href=\"pygeodesy.named.ADict-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named.ADict-class.html#__setattr__\">__setattr__</a></code>,\n      <code><a href=\"pygeodesy.named.ADict-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named.ADict-class.html#set_\">set_</a></code>,\n      <code><a href=\"pygeodesy.named.ADict-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named.ADict-class.html#toStr\">toStr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>dict</code></b>:\n      <code>__cmp__</code>,\n      <code>__contains__</code>,\n      <code>__delitem__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__gt__</code>,\n      <code>__init__</code>,\n      <code>__iter__</code>,\n      <code>__len__</code>,\n      <code>__new__</code>,\n      <code>__setitem__</code>,\n      <code>__sizeof__</code>,\n      <code>clear</code>,\n      <code>copy</code>,\n      <code>fromkeys</code>,\n      <code>get</code>,\n      <code>has_key</code>,\n      <code>items</code>,\n      <code>iteritems</code>,\n      <code>iterkeys</code>,\n      <code>itervalues</code>,\n      <code>keys</code>,\n      <code>pop</code>,\n      <code>popitem</code>,\n      <code>setdefault</code>,\n      <code>update</code>,\n      <code>values</code>,\n      <code>viewitems</code>,\n      <code>viewkeys</code>,\n      <code>viewvalues</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__format__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS VARIABLES ==================== -->\n<a name=\"section-ClassVariables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Class Variables</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>dict</code></b>:\n      <code>__hash__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named.ADict-class.html\">named.ADict</a></code></b>:\n      <code><a href=\"pygeodesy.named.ADict-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named.ADict-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__eq__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__eq__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>)</span>\n    <br /><em class=\"fname\">(Equality operator)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>x==y</p>\n  <dl class=\"fields\">\n    <dt>Overrides:\n        dict.__eq__\n        <dd><em class=\"note\">(inherited documentation)</em></dd>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__le__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__le__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>)</span>\n    <br /><em class=\"fname\">(Less-than-or-equals operator)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>x&lt;=y</p>\n  <dl class=\"fields\">\n    <dt>Overrides:\n        dict.__le__\n        <dd><em class=\"note\">(inherited documentation)</em></dd>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__lt__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__lt__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>)</span>\n    <br /><em class=\"fname\">(Less-than operator)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>x&lt;y</p>\n  <dl class=\"fields\">\n    <dt>Overrides:\n        dict.__lt__\n        <dd><em class=\"note\">(inherited documentation)</em></dd>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__ne__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__ne__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>x!=y</p>\n  <dl class=\"fields\">\n    <dt>Overrides:\n        dict.__ne__\n        <dd><em class=\"note\">(inherited documentation)</em></dd>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.geodesici._IntersectBase-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.geodesici._IntersectBase</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.geodesici-module.html\">Module&nbsp;geodesici</a> ::\n        Class&nbsp;_IntersectBase\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.geodesici._IntersectBase-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class _IntersectBase</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+        \n           |        \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n               |    \n<a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+\n                   |\n                  <strong class=\"uidshort\">_IntersectBase</strong>\n</pre>\n\n<dl><dt>Known Subclasses:</dt>\n<dd>\n      <ul class=\"subclass-list\">\n<li><a href=\"pygeodesy.geodesici.Intersectool-class.html\">Intersectool</a></li><li>, <a href=\"pygeodesy.geodesici.Intersector-class.html\">Intersector</a></li>  </ul>\n</dd></dl>\n\n<hr />\n<p>(INTERNAL) Base class for <a \n  href=\"pygeodesy.geodesici.Intersectool-class.html\" \n  class=\"link\">Intersectool</a> and <a \n  href=\"pygeodesy.geodesici.Intersector-class.html\" \n  class=\"link\">Intersector</a>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geodesici._IntersectBase-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">geodesic</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      x.__init__(...) initializes x; see help(type(x)) for signature</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"All\"></a><span class=\"summary-sig-name\">All</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">glA</span>,\n        <span class=\"summary-sig-arg\">glB</span>,\n        <span class=\"summary-sig-arg\">**kwds</span>)</span><br />\n      (INTERNAL) <i>Must be overloaded</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geodesici._IntersectBase-class.html#intersect7\" class=\"summary-sig-name\">intersect7</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">start1</span>,\n        <span class=\"summary-sig-arg\">end1</span>,\n        <span class=\"summary-sig-arg\">start2</span>,\n        <span class=\"summary-sig-arg\">end2</span>,\n        <span class=\"summary-sig-arg\">X0</span>=<span class=\"summary-sig-default\">XDict(c=0, sA=0.0, sB=0.0, sX0=0.0)</span>,\n        <span class=\"summary-sig-arg\">aMaX0</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">sMaX0</span>=<span class=\"summary-sig-default\">40075016.6856</span>,\n        <span class=\"summary-sig-arg\">**LatLon_and_kwds</span>)</span><br />\n      Yield the intersections of two geodesic lines, each defined by a \n      start and end point or by a start point and an azimuth (bearing from \n      North).</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geodesici._IntersectBase-class.html#k2kAkB\" class=\"summary-sig-name\">k2kAkB</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">k</span>)</span><br />\n      Unravel <code>k</code> into <code>kA</code> and <code>kB</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"Line\"></a><span class=\"summary-sig-name\">Line</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lat1</span>,\n        <span class=\"summary-sig-arg\">lon1</span>,\n        <span class=\"summary-sig-arg\">azi1_lat2</span>,\n        <span class=\"summary-sig-arg\">*lon2</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      (INTERNAL) <i>Must be overloaded</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geodesici._IntersectBase-class.html#Next5s\" class=\"summary-sig-name\">Next5s</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">glA</span>,\n        <span class=\"summary-sig-arg\">glB</span>,\n        <span class=\"summary-sig-arg\">X0</span>=<span class=\"summary-sig-default\">XDict(c=0, sA=0.0, sB=0.0, sX0=0.0)</span>,\n        <span class=\"summary-sig-arg\">aMax</span>=<span class=\"summary-sig-default\">1801</span>,\n        <span class=\"summary-sig-arg\">sMax</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">**unused</span>)</span><br />\n      DEPRECATED on 2024.07.02, use method <code>All5</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#others\">others</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#toStr\">toStr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geodesici._IntersectBase-class.html#a\" class=\"summary-name\">a</a><br />\n      Get the <i>equatorial</i> radius, semi-axis (<code>meter</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geodesici._IntersectBase-class.html#equatoradius\" class=\"summary-name\">equatoradius</a><br />\n      Get the <i>equatorial</i> radius, semi-axis (<code>meter</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geodesici._IntersectBase-class.html#datum\" class=\"summary-name\">datum</a><br />\n      Get the geodesic's datum (<code>Datum</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geodesici._IntersectBase-class.html#ellipsoid\" class=\"summary-name\">ellipsoid</a><br />\n      Get the <code>geodesic</code>'s ellipsoid (<code>Ellipsoid</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geodesici._IntersectBase-class.html#f\" class=\"summary-name\">f</a><br />\n      Get the <i>flattening</i> (<code>scalar</code>), <code>0</code> for \n      spherical, negative for prolate.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geodesici._IntersectBase-class.html#flattening\" class=\"summary-name\">flattening</a><br />\n      Get the <i>flattening</i> (<code>scalar</code>), <code>0</code> for \n      spherical, negative for prolate.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geodesici._IntersectBase-class.html#geodesic\" class=\"summary-name\">geodesic</a><br />\n      Get the <code>Geodesic</code> (<code>GeodesicExact, GeodesicSolve, or\n      ...</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geodesici._IntersectBase-class.html#R\" class=\"summary-name\">R</a><br />\n      Get the <i>authalic</i> earth radius (<code>meter</code>).\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">geodesic</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>x.__init__(...) initializes x; see help(type(x)) for signature</p>\n  <dl class=\"fields\">\n    <dt>Overrides:\n        object.__init__\n        <dd><em class=\"note\">(inherited documentation)</em></dd>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"intersect7\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">intersect7</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">start1</span>,\n        <span class=\"sig-arg\">end1</span>,\n        <span class=\"sig-arg\">start2</span>,\n        <span class=\"sig-arg\">end2</span>,\n        <span class=\"sig-arg\">X0</span>=<span class=\"sig-default\">XDict(c=0, sA=0.0, sB=0.0, sX0=0.0)</span>,\n        <span class=\"sig-arg\">aMaX0</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">sMaX0</span>=<span class=\"sig-default\">40075016.6856</span>,\n        <span class=\"sig-arg\">**LatLon_and_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Yield the intersections of two geodesic lines, each defined by a start\n  and end point or by a start point and an azimuth (bearing from \n  North).</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>start1</code></strong> - Start point of the first line (<code>LatLon</code>).</li>\n        <li><strong class=\"pname\"><code>end1</code></strong> - End point of the first line (<code>LatLon</code>) or the azimuth \n          at the <b><code>start1</code></b> point (compass \n          <code>degrees360</code>).</li>\n        <li><strong class=\"pname\"><code>start2</code></strong> - Start point of the second line (<code>LatLon</code>).</li>\n        <li><strong class=\"pname\"><code>end2</code></strong> - End point of the second line (<code>LatLon</code>) or the azimuth\n          at the <b><code>start2</code></b> point (compass \n          <code>degrees360</code>).</li>\n        <li><strong class=\"pname\"><code>X0</code></strong> - Optional <i>origin</i> for <i>L1-distances</i> (<a \n          href=\"pygeodesy.geodesici.XDict-class.html\" \n          class=\"link\">XDict</a>) or <code>None</code> for the <a \n          href=\"pygeodesy.geodesici.Intersector-class.html#Middle\" \n          class=\"link\">Middle</a>, otherwise <code>XDiff_(0, 0)</code>.</li>\n        <li><strong class=\"pname\"><code>aMaX0</code></strong> - Upper limit for the <i>angular L1-distance</i> \n          (<code>degrees</code>) or <code>None</code> or <code>0</code> for\n          unlimited.</li>\n        <li><strong class=\"pname\"><code>sMaX0_C</code></strong> - Optional, upper limit <code><b>sMaX0</b>=2*PI*R</code> for the \n          <i>L1-distance</i> to <b><code>X0</code></b> \n          (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>LatLon_and_kwds</code></strong> - Optional class <code><b>LatLon</b>=None</code> to return \n          intersection points and optional, additional \n          <b><code>LatLon</code></b> keyword arguments.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Yield an <a href=\"pygeodesy.geodesici.Intersect7Tuple-class.html\"\n          class=\"link\">Intersect7Tuple</a><code>(A, B, sAB, aAB, c, kA, \n          kB)</code> for every intersection found, with <code>A</code> and \n          <code>B</code> each a <b><code>LatLon</code></b> or if \n          <code><b>LatLon</b> is None</code> or not specified, a <a \n          href=\"pygeodesy.namedTuples.LatLon4Tuple-class.html\" \n          class=\"link\">LatLon4Tuple</a><code>(lat, lon, height, \n          datum)</code> with <code>height 0</code> and this \n          <code>datum</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.GeodesicError-class.html\">GeodesicError</a></strong></code> - Invalid <b><code>start1</code></b>, <b><code>end1</code></b>, \n        <b><code>start2</code></b> or <b><code>end2</code></b> or \n        <b><code>end1</code></b> and <b><code>end2</code></b> differ in \n        type.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.IntersectionError-class.html\">IntersectionError</a></strong></code> - No convergence.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        The <code>lat</code> and <code>lon</code> attr of \n        <b><code>start1</code></b>, <b><code>end1</code></b>, \n        <b><code>start2</code></b> and <b><code>end2</code></b> are used \n        <i>verbatim</i>, ignoring <code>datum</code> or \n        <code>ellipsoid</code>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"k2kAkB\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">k2kAkB</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">k</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Unravel <code>k</code> into <code>kA</code> and <code>kB</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>k</code></strong> - Segment indicator <code>kA * 3 + kB</code> (<code>int</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>An <code>ADict(k=k, kA=kA, kB=kB)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.GeodesicError-class.html\">GeodesicError</a></strong></code> - Invalid <b><code>k</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"Next5s\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">Next5s</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">glA</span>,\n        <span class=\"sig-arg\">glB</span>,\n        <span class=\"sig-arg\">X0</span>=<span class=\"sig-default\">XDict(c=0, sA=0.0, sB=0.0, sX0=0.0)</span>,\n        <span class=\"sig-arg\">aMax</span>=<span class=\"sig-default\">1801</span>,\n        <span class=\"sig-arg\">sMax</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">**unused</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED on 2024.07.02, use method <code>All5</code>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_method</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"a\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">a</h3>\n  <p>Get the <i>equatorial</i> radius, semi-axis (<code>meter</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">a(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <i>equatorial</i> radius, semi-axis (<code>meter</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"equatoradius\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">equatoradius</h3>\n  <p>Get the <i>equatorial</i> radius, semi-axis (<code>meter</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">a(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <i>equatorial</i> radius, semi-axis (<code>meter</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"datum\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">datum</h3>\n  <p>Get the geodesic's datum (<code>Datum</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">datum(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the geodesic's datum (<code>Datum</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"ellipsoid\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">ellipsoid</h3>\n  <p>Get the <code>geodesic</code>'s ellipsoid \n  (<code>Ellipsoid</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">ellipsoid(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <code>geodesic</code>'s ellipsoid (<code>Ellipsoid</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"f\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">f</h3>\n  <p>Get the <i>flattening</i> (<code>scalar</code>), <code>0</code> for \n  spherical, negative for prolate.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">f(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <i>flattening</i> (<code>scalar</code>), <code>0</code> for \nspherical, negative for prolate.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"flattening\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">flattening</h3>\n  <p>Get the <i>flattening</i> (<code>scalar</code>), <code>0</code> for \n  spherical, negative for prolate.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">f(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <i>flattening</i> (<code>scalar</code>), <code>0</code> for \nspherical, negative for prolate.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"geodesic\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">geodesic</h3>\n  <p>Get the <code>Geodesic</code> (<code>GeodesicExact, GeodesicSolve, or \n  ...</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">geodesic(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <code>Geodesic</code> (<code>GeodesicExact, GeodesicSolve, or \n...</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"R\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">R</h3>\n  <p>Get the <i>authalic</i> earth radius (<code>meter</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">R(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <i>authalic</i> earth radius (<code>meter</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.geodesicw-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.geodesicw</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        Module&nbsp;geodesicw\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.geodesicw-module.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== MODULE DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Module geodesicw</h1><p class=\"nomargin-top\"></p>\n<p>Wrapper around Python classes <code>geodesic.Geodesic</code> and \n  <code>geodesicline.GeodesicLine</code> from <i>Karney</i>'s Python \n  package <a href=\"https://PyPI.org/project/geographiclib\" \n  target=\"_top\">geographiclib</a>, provided that package is installed.</p>\n  <p>The <i>wrapped</i> class methods return a <a \n  href=\"pygeodesy.karney.GDict-class.html\" class=\"link\">GDict</a> instance \n  offering access to the <code>dict</code> items either by <code>key</code>\n  or by <code>attribute</code> name.</p>\n  <p>With env variable <code>PYGEODESY_GEOGRAPHICLIB</code> left undefined \n  or set to <code>&quot;2&quot;</code>, this module and modules <a \n  href=\"pygeodesy.geodesici-module.html\" \n  class=\"link\">pygeodesy.geodesici</a>, <a \n  href=\"pygeodesy.geodesicx-module.html\" \n  class=\"link\">pygeodesy.geodesicx</a> and <a \n  href=\"pygeodesy.karney-module.html\" class=\"link\">pygeodesy.karney</a> \n  will use <a href=\"https://GeographicLib.SourceForge.io/C++/doc/\" \n  target=\"_top\">GeographicLib 2.0</a> transcoding, otherwise \n  <code>1.52</code> or older.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Version:</strong>\n        25.05.28\n      </p>\n</div><!-- ==================== CLASSES ==================== -->\n<a name=\"section-Classes\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Classes</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geodesicw.Geodesic-class.html\" class=\"summary-name\">Geodesic</a><br />\n      <i>Wrapper</i> around <i>Karney</i>'s class <a \n        href=\"https://GeographicLib.SourceForge.io/Python/doc/code.html\" \n        target=\"_top\">geographiclib.geodesic.Geodesic</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geodesicw.GeodesicLine-class.html\" class=\"summary-name\">GeodesicLine</a><br />\n      <i>Wrapper</i> around <i>Karney</i>'s class <a \n        href=\"https://GeographicLib.SourceForge.io/Python/doc/code.html\" \n        target=\"_top\">geographiclib.geodesicline.GeodesicLine</a>.\n    </td>\n  </tr>\n</table>\n<!-- ==================== FUNCTIONS ==================== -->\n<a name=\"section-Functions\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Functions</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"Geodesic_WGS84\"></a><span class=\"summary-sig-name\">Geodesic_WGS84</span>()</span><br />\n      Get the <i>wrapped</i> <a \n      href=\"pygeodesy.geodesicw.Geodesic-class.html\" \n      class=\"link\">Geodesic</a><code>(WGS84)</code> singleton, provided <a \n      href=\"https://PyPI.org/project/geographiclib\" \n      target=\"_top\">geographiclib</a> is installed, otherwise an \n      <code>ImportError</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== VARIABLES ==================== -->\n<a name=\"section-Variables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Variables</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"__all__\"></a><span class=\"summary-name\">__all__</span> = <code title=\"_ALL_LAZY.geodesicw\">_ALL_LAZY.geodesicw</code>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.geodesicw.Geodesic-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.geodesicw.Geodesic</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.geodesicw-module.html\">Module&nbsp;geodesicw</a> ::\n        Class&nbsp;Geodesic\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.geodesicw.Geodesic-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Geodesic</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+                    \n           |                    \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+                \n               |                \n<a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+            \n                   |            \n    <a href=\"pygeodesy.karney._CapsBase-class.html\">karney._CapsBase</a> --+        \n                       |        \n        karney._kWrapped --+    \n                           |    \n                   _gWrapped --+\n                               |\n                              <strong class=\"uidshort\">Geodesic</strong>\n</pre>\n\n<hr />\n<p><i>Wrapper</i> around <i>Karney</i>'s class <a \n  href=\"https://GeographicLib.SourceForge.io/Python/doc/code.html\" \n  target=\"_top\">geographiclib.geodesic.Geodesic</a>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.karney._CapsBase-class.html\">karney._CapsBase</a></code></b>:\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#caps_\">caps_</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#others\">others</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#toStr\">toStr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">a new object with type S, a subtype of T</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geodesicw.Geodesic-class.html#__new__\" class=\"summary-sig-name\">__new__</a>(<span class=\"summary-sig-arg\">unused</span>,\n        <span class=\"summary-sig-arg\">a_ellipsoid</span>=<span class=\"summary-sig-default\">Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.257223<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"summary-sig-arg\">f</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Return a <i>wrapped</i> <code>geodesic.Geodesic</code> instance from \n      <i>Karney</i>'s Python <a \n      href=\"https://PyPI.org/project/geographiclib\" \n      target=\"_top\">geographiclib</a>, provide the latter is installed, \n      otherwise an <code>ImportError</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS VARIABLES ==================== -->\n<a name=\"section-ClassVariables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Class Variables</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.karney._CapsBase-class.html\">karney._CapsBase</a></code></b>:\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#ALL\">ALL</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#AREA\">AREA</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#AZIMUTH\">AZIMUTH</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#DISTANCE\">DISTANCE</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#DISTANCE_IN\">DISTANCE_IN</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#EMPTY\">EMPTY</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#GEODESICSCALE\">GEODESICSCALE</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#LATITUDE\">LATITUDE</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#LINE_CAPS\">LINE_CAPS</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#LINE_OFF\">LINE_OFF</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#LONGITUDE\">LONGITUDE</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#LONG_UNROLL\">LONG_UNROLL</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#NONFINITONAN\">NONFINITONAN</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#REDUCEDLENGTH\">REDUCEDLENGTH</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#STANDARD\">STANDARD</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#STANDARD_LINE\">STANDARD_LINE</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>_gWrapped</code></b>:\n      <code>Geodesic</code>,\n      <code>GeodesicLine</code>,\n      <code>Geodesic_WGS84</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>karney._kWrapped</code></b>:\n      <code>Math</code>,\n      <code>Math_K_2</code>,\n      <code>geographiclib</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.karney._CapsBase-class.html\">karney._CapsBase</a></code></b>:\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#caps\">caps</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#debug\">debug</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__new__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__new__</span>&nbsp;(<span class=\"sig-arg\">unused</span>,\n        <span class=\"sig-arg\">a_ellipsoid</span>=<span class=\"sig-default\">Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.257223<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"sig-arg\">f</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n    <br /><em class=\"fname\">Static Method</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return a <i>wrapped</i> <code>geodesic.Geodesic</code> instance from \n  <i>Karney</i>'s Python <a href=\"https://PyPI.org/project/geographiclib\" \n  target=\"_top\">geographiclib</a>, provide the latter is installed, \n  otherwise an <code>ImportError</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>a_ellipsoid</code></strong> - An ellipsoid (<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\"\n          class=\"link\">Ellipsoid</a>) or datum (<a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>) \n          or the equatorial radius <i>a</i> of the ellipsoid \n          (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>f</code></strong> - The flattening of the ellipsoid (<code>scalar</code>), required \n          if <b><code>a_ellipsoid</code></b>) is <code>meter</code>, \n          ignored otherwise.</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns: a new object with type S, a subtype of T</dt>\n    <dt>Overrides:\n        object.__new__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.geodesicw.GeodesicLine-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.geodesicw.GeodesicLine</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.geodesicw-module.html\">Module&nbsp;geodesicw</a> ::\n        Class&nbsp;GeodesicLine\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.geodesicw.GeodesicLine-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class GeodesicLine</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+                    \n           |                    \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+                \n               |                \n<a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+            \n                   |            \n    <a href=\"pygeodesy.karney._CapsBase-class.html\">karney._CapsBase</a> --+        \n                       |        \n        karney._kWrapped --+    \n                           |    \n                   _gWrapped --+\n                               |\n                              <strong class=\"uidshort\">GeodesicLine</strong>\n</pre>\n\n<hr />\n<p><i>Wrapper</i> around <i>Karney</i>'s class <a \n  href=\"https://GeographicLib.SourceForge.io/Python/doc/code.html\" \n  target=\"_top\">geographiclib.geodesicline.GeodesicLine</a>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.karney._CapsBase-class.html\">karney._CapsBase</a></code></b>:\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#caps_\">caps_</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#others\">others</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#toStr\">toStr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">a new object with type S, a subtype of T</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geodesicw.GeodesicLine-class.html#__new__\" class=\"summary-sig-name\">__new__</a>(<span class=\"summary-sig-arg\">unused</span>,\n        <span class=\"summary-sig-arg\">geodesic</span>,\n        <span class=\"summary-sig-arg\">lat1</span>,\n        <span class=\"summary-sig-arg\">lon1</span>,\n        <span class=\"summary-sig-arg\">azi1</span>,\n        <span class=\"summary-sig-arg\">caps</span>=<span class=\"summary-sig-default\">3979</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Return a <i>wrapped</i> <code>geodesicline.GeodesicLine</code> \n      instance from <i>Karney</i>'s Python <a \n      href=\"https://PyPI.org/project/geographiclib\" \n      target=\"_top\">geographiclib</a>, provided the latter is installed, \n      otherwise an <code>ImportError</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS VARIABLES ==================== -->\n<a name=\"section-ClassVariables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Class Variables</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.karney._CapsBase-class.html\">karney._CapsBase</a></code></b>:\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#ALL\">ALL</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#AREA\">AREA</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#AZIMUTH\">AZIMUTH</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#DISTANCE\">DISTANCE</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#DISTANCE_IN\">DISTANCE_IN</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#EMPTY\">EMPTY</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#GEODESICSCALE\">GEODESICSCALE</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#LATITUDE\">LATITUDE</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#LINE_CAPS\">LINE_CAPS</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#LINE_OFF\">LINE_OFF</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#LONGITUDE\">LONGITUDE</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#LONG_UNROLL\">LONG_UNROLL</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#NONFINITONAN\">NONFINITONAN</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#REDUCEDLENGTH\">REDUCEDLENGTH</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#STANDARD\">STANDARD</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#STANDARD_LINE\">STANDARD_LINE</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>_gWrapped</code></b>:\n      <code>Geodesic</code>,\n      <code>GeodesicLine</code>,\n      <code>Geodesic_WGS84</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>karney._kWrapped</code></b>:\n      <code>Math</code>,\n      <code>Math_K_2</code>,\n      <code>geographiclib</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.karney._CapsBase-class.html\">karney._CapsBase</a></code></b>:\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#caps\">caps</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#debug\">debug</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__new__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__new__</span>&nbsp;(<span class=\"sig-arg\">unused</span>,\n        <span class=\"sig-arg\">geodesic</span>,\n        <span class=\"sig-arg\">lat1</span>,\n        <span class=\"sig-arg\">lon1</span>,\n        <span class=\"sig-arg\">azi1</span>,\n        <span class=\"sig-arg\">caps</span>=<span class=\"sig-default\">3979</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n    <br /><em class=\"fname\">Static Method</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return a <i>wrapped</i> <code>geodesicline.GeodesicLine</code> \n  instance from <i>Karney</i>'s Python <a \n  href=\"https://PyPI.org/project/geographiclib\" \n  target=\"_top\">geographiclib</a>, provided the latter is installed, \n  otherwise an <code>ImportError</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>geodesic</code></strong> - A <i>wrapped</i> Geodesic instance.</li>\n        <li><strong class=\"pname\"><code>lat1</code></strong> - Latitude of the first points (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lon1</code></strong> - Longitude of the first points (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>azi1</code></strong> - Azimuth at the first points (compass <code>degrees360</code>).</li>\n        <li><strong class=\"pname\"><code>caps</code></strong> - Optional, bit-or'ed combination of <a \n          href=\"pygeodesy.karney.Caps-class.html\" class=\"link\">Caps</a> \n          values specifying the capabilities the <code>GeodesicLine</code> \n          instance should possess, i.e., which quantities can be returned \n          by methods <code>GeodesicLine.Position</code> and \n          <code>GeodesicLine.ArcPosition</code>.</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns: a new object with type S, a subtype of T</dt>\n    <dt>Overrides:\n        object.__new__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.geodesicx-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.geodesicx</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        Package&nbsp;geodesicx\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.geodesicx-module.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PACKAGE DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Package geodesicx</h1><p class=\"nomargin-top\"></p>\n<p>A pure Python version of <i>Karney</i>'s C++ classes <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1GeodesicExact.html\"\n  target=\"_top\">GeodesicExact</a> and <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1GeodesicLine.html\"\n  target=\"_top\">GeodesicLineExact</a>.</p>\n  <p>For more details, see the C++ <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/index.html\" \n  target=\"_top\">GeographicLib</a> documentation, especially the <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/annotated.html\" \n  target=\"_top\">Class List</a> and the background information at <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/geodesic.html#geodseries\"\n  target=\"_top\">Geodesics on an ellipsoid of revolution</a>.</p>\n  <p>Also, compare <code>GeodesicExact</code> and \n  <code>GeodesicLineExact</code> to <i>standard</i> classes \n  <code>Geodesic</code> respectively <code>GeodesicLine</code> from \n  <i>Karney</i>'s Python implementation <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/other.html#python\" \n  target=\"_top\">geographiclib</a>, see modules <a \n  href=\"pygeodesy.geodesicw-module.html\" \n  class=\"link\">pygeodesy.geodesicw</a> and <a \n  href=\"pygeodesy.karney-module.html\" \n  class=\"link\">pygeodesy.karney</a>.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Version:</strong>\n        25.12.23\n      </p>\n</div><!-- ==================== SUBMODULES ==================== -->\n<a name=\"section-Submodules\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Submodules</span></td>\n</tr>\n  <tr><td class=\"summary\">\n  <ul class=\"nomargin\">\n    <li class=\"private\"> <strong class=\"uidlink\"><a href=\"pygeodesy.geodesicx._C4_24-module.html\">pygeodesy.geodesicx._C4_24</a></strong>: <em class=\"summary\">A Python version of part of <i>Karney</i>'s C++ module <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1GeodesicExactC4.html\"\n        target=\"_top\">GeodesicExactC4</a>.</em>    </li>\n    <li class=\"private\"> <strong class=\"uidlink\"><a href=\"pygeodesy.geodesicx._C4_27-module.html\">pygeodesy.geodesicx._C4_27</a></strong>: <em class=\"summary\">A Python version of part of <i>Karney</i>'s C++ module <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1GeodesicExactC4.html\"\n        target=\"_top\">GeodesicExactC4</a>.</em>    </li>\n    <li class=\"private\"> <strong class=\"uidlink\"><a href=\"pygeodesy.geodesicx._C4_30-module.html\">pygeodesy.geodesicx._C4_30</a></strong>: <em class=\"summary\">A Python version of part of <i>Karney</i>'s C++ module <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1GeodesicExactC4.html\"\n        target=\"_top\">GeodesicExactC4</a>.</em>    </li>\n    <li class=\"private\"> <strong class=\"uidlink\"><a href=\"pygeodesy.geodesicx.__main__-module.html\">pygeodesy.geodesicx.__main__</a></strong>: <em class=\"summary\">Print <a href=\"pygeodesy.geodesicx-module.html\" \n        class=\"link\">geodesicx</a> version, etc.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.geodesicx.gx-module.html\">pygeodesy.geodesicx.gx</a></strong>: <em class=\"summary\">A pure Python version of <i>Karney</i>'s C++ class <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1GeodesicExact.html\"\n        target=\"_top\">GeodesicExact</a>.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.geodesicx.gxarea-module.html\">pygeodesy.geodesicx.gxarea</a></strong>: <em class=\"summary\">Slightly enhanced versions of classes <a \n        href=\"https://GeographicLib.SourceForge.io/1.52/python/code.html#module-geographiclib.polygonarea\"\n        target=\"_top\">PolygonArea</a> and <code>Accumulator</code> from \n        <i>Karney</i>'s Python <a \n        href=\"https://GeographicLib.SourceForge.io/1.52/python/index.html\" \n        target=\"_top\">geographiclib</a>.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.geodesicx.gxbases-module.html\">pygeodesy.geodesicx.gxbases</a></strong>: <em class=\"summary\">(INTERNAL) Private <a href=\"pygeodesy.geodesicx-module.html\" \n        class=\"link\">geodesicx</a> base class, functions and constants.</em>    </li>\n    <li> <strong class=\"uidlink\"><a href=\"pygeodesy.geodesicx.gxline-module.html\">pygeodesy.geodesicx.gxline</a></strong>: <em class=\"summary\">A pure Python version of <i>Karney</i>'s C++ class <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1GeodesicLineExact.html\"\n        target=\"_top\">GeodesicLineExact</a>.</em>    </li>\n  </ul></td></tr>\n</table>\n\n<br />\n<!-- ==================== CLASSES ==================== -->\n<a name=\"section-Classes\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Classes</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html\" class=\"summary-name\">GeodesicExact</a><br />\n      A pure Python version of <i>Karney</i>'s C++ class <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1GeodesicExact.html\"\n        target=\"_top\">GeodesicExact</a>, modeled after <i>Karney</i>'s \n        Python class <a \n        href=\"https://GitHub.com/geographiclib/geographiclib-python\" \n        target=\"_top\">geodesic.Geodesic</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geodesicx.gx.GeodesicLineExact-class.html\" class=\"summary-name\">GeodesicLineExact</a><br />\n      A pure Python version of <i>Karney</i>'s C++ class <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1GeodesicLineExact.html\"\n        target=\"_top\">GeodesicLineExact</a>, modeled after <i>Karney</i>'s \n        Python class <a \n        href=\"https://GitHub.com/geographiclib/geographiclib-python\" \n        target=\"_top\">geodesicline.GeodesicLine</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html\" class=\"summary-name\">GeodesicAreaExact</a><br />\n      Area and perimeter of a geodesic polygon, an enhanced version of \n        <i>Karney</i>'s Python class <a \n        href=\"https://GeographicLib.SourceForge.io/html/python/code.html#module-geographiclib.polygonarea\"\n        target=\"_top\">PolygonArea</a> using the more accurate surface area.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geodesicx.gxarea.PolygonArea-class.html\" class=\"summary-name\">PolygonArea</a><br />\n      For <code>geographiclib</code> compatibility, sub-class of <a \n        href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html\" \n        class=\"link\">GeodesicAreaExact</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.karney.Caps-class.html\" class=\"summary-name\">Caps</a><br />\n      <i>Enum</i>-style masks to be bit-<code>or</code>'ed to specify \n        <code>geodesic</code>, <code>rhumb</code> or <code>-lines</code> \n        capabilities (<code>caps</code>) and method results \n        (<code>outmask</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.errors.GeodesicError-class.html\" class=\"summary-name\">GeodesicError</a><br />\n      Error raised for convergence or other issues in <a \n        href=\"pygeodesy.geodesicx-module.html\" class=\"link\">geodesicx</a>, \n        <a href=\"pygeodesy.geodesicw-module.html\" \n        class=\"link\">geodesicw</a>, <a \n        href=\"pygeodesy.geodsolve-module.html\" class=\"link\">geodsolve</a> \n        or <a href=\"pygeodesy.karney-module.html\" class=\"link\">karney</a>.\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.geodesicx._C4_24-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.geodesicx._C4_24</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.geodesicx-module.html\">Package&nbsp;geodesicx</a> ::\n        Module&nbsp;_C4_24\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.geodesicx._C4_24-module.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== MODULE DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Module _C4_24</h1><p class=\"nomargin-top\"></p>\n<p>A Python version of part of <i>Karney</i>'s C++ module <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1GeodesicExactC4.html\"\n  target=\"_top\">GeodesicExactC4</a>.</p>\n  <p>Copyright (C) <a href=\"mailto:Karney@Alum.MIT.edu\" \n  target=\"_top\">Charles Karney</a> (2008-2024) and licensed under the \n  MIT/X11 License.  For more information, see the <a \n  href=\"https://GeographicLib.SourceForge.io\" \n  target=\"_top\">GeographicLib</a> documentation.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Version:</strong>\n        24.09.04\n      </p>\n</div><!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.geodesicx._C4_27-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.geodesicx._C4_27</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.geodesicx-module.html\">Package&nbsp;geodesicx</a> ::\n        Module&nbsp;_C4_27\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.geodesicx._C4_27-module.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== MODULE DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Module _C4_27</h1><p class=\"nomargin-top\"></p>\n<p>A Python version of part of <i>Karney</i>'s C++ module <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1GeodesicExactC4.html\"\n  target=\"_top\">GeodesicExactC4</a>.</p>\n  <p>Copyright (C) <a href=\"mailto:Karney@Alum.MIT.edu\" \n  target=\"_top\">Charles Karney</a> (2008-2024) and licensed under the \n  MIT/X11 License.  For more information, see the <a \n  href=\"https://GeographicLib.SourceForge.io\" \n  target=\"_top\">GeographicLib</a> documentation.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Version:</strong>\n        24.09.04\n      </p>\n</div><!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.geodesicx._C4_30-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.geodesicx._C4_30</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.geodesicx-module.html\">Package&nbsp;geodesicx</a> ::\n        Module&nbsp;_C4_30\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.geodesicx._C4_30-module.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== MODULE DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Module _C4_30</h1><p class=\"nomargin-top\"></p>\n<p>A Python version of part of <i>Karney</i>'s C++ module <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1GeodesicExactC4.html\"\n  target=\"_top\">GeodesicExactC4</a>.</p>\n  <p>Copyright (C) <a href=\"mailto:Karney@Alum.MIT.edu\" \n  target=\"_top\">Charles Karney</a> (2008-2024) and licensed under the \n  MIT/X11 License.  For more information, see the <a \n  href=\"https://GeographicLib.SourceForge.io\" \n  target=\"_top\">GeographicLib</a> documentation.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Version:</strong>\n        24.09.04\n      </p>\n</div><!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.geodesicx.__main__-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.geodesicx.__main__</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.geodesicx-module.html\">Package&nbsp;geodesicx</a> ::\n        Module&nbsp;__main__\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.geodesicx.__main__-module.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== MODULE DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Module __main__</h1><p class=\"nomargin-top\"></p>\n<p>Print <a href=\"pygeodesy.geodesicx-module.html\" \n  class=\"link\">geodesicx</a> version, etc. using <code>python -m \n  pygeodesy.geodesicx</code>.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Version:</strong>\n        25.06.01\n      </p>\n</div><!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.geodesicx.gx-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.geodesicx.gx</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.geodesicx-module.html\">Package&nbsp;geodesicx</a> ::\n        Module&nbsp;gx\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.geodesicx.gx-module.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== MODULE DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Module gx</h1><p class=\"nomargin-top\"></p>\n<p>A pure Python version of <i>Karney</i>'s C++ class <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1GeodesicExact.html\"\n  target=\"_top\">GeodesicExact</a>.</p>\n  <p>Class <a href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html\" \n  class=\"link\">GeodesicExact</a> follows the naming, methods and return \n  values of class <code>Geodesic</code> from <i>Karney</i>'s Python <a \n  href=\"https://GitHub.com/geographiclib/geographiclib-python\" \n  target=\"_top\">geographiclib</a>.</p>\n  <p>Copyright (C) <a href=\"mailto:Karney@Alum.MIT.edu\" \n  target=\"_top\">Charles Karney</a> (2008-2024) and licensed under the \n  MIT/X11 License.  For more information, see the <a \n  href=\"https://GeographicLib.SourceForge.io\" \n  target=\"_top\">GeographicLib</a> documentation.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Version:</strong>\n        25.09.16\n      </p>\n</div><!-- ==================== CLASSES ==================== -->\n<a name=\"section-Classes\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Classes</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html\" class=\"summary-name\">GeodesicExact</a><br />\n      A pure Python version of <i>Karney</i>'s C++ class <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1GeodesicExact.html\"\n        target=\"_top\">GeodesicExact</a>, modeled after <i>Karney</i>'s \n        Python class <a \n        href=\"https://GitHub.com/geographiclib/geographiclib-python\" \n        target=\"_top\">geodesic.Geodesic</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geodesicx.gx.GeodesicLineExact-class.html\" class=\"summary-name\">GeodesicLineExact</a><br />\n      A pure Python version of <i>Karney</i>'s C++ class <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1GeodesicLineExact.html\"\n        target=\"_top\">GeodesicLineExact</a>, modeled after <i>Karney</i>'s \n        Python class <a \n        href=\"https://GitHub.com/geographiclib/geographiclib-python\" \n        target=\"_top\">geodesicline.GeodesicLine</a>.\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.geodesicx.gx.GeodesicExact-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.geodesicx.gx.GeodesicExact</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.geodesicx-module.html\">Package&nbsp;geodesicx</a> ::\n        <a href=\"pygeodesy.geodesicx.gx-module.html\">Module&nbsp;gx</a> ::\n        Class&nbsp;GeodesicExact\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class GeodesicExact</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+                \n           |                \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+            \n               |            \n<a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+        \n                   |        \n    <a href=\"pygeodesy.karney._CapsBase-class.html\">karney._CapsBase</a> --+    \n                       |    \n   gxbases._GeodesicBase --+\n                           |\n                          <strong class=\"uidshort\">GeodesicExact</strong>\n</pre>\n\n<hr />\n<p>A pure Python version of <i>Karney</i>'s C++ class <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1GeodesicExact.html\"\n  target=\"_top\">GeodesicExact</a>, modeled after <i>Karney</i>'s Python \n  class <a href=\"https://GitHub.com/geographiclib/geographiclib-python\" \n  target=\"_top\">geodesic.Geodesic</a>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">a_ellipsoid</span>=<span class=\"summary-sig-default\">Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.257223<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"summary-sig-arg\">f</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">caps</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">C4order</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**name_C4Order</span>)</span><br />\n      New <a href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html\" \n      class=\"link\">GeodesicExact</a> instance.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html#ArcDirect\" class=\"summary-sig-name\">ArcDirect</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lat1</span>,\n        <span class=\"summary-sig-arg\">lon1</span>,\n        <span class=\"summary-sig-arg\">azi1</span>,\n        <span class=\"summary-sig-arg\">a12</span>,\n        <span class=\"summary-sig-arg\">outmask</span>=<span class=\"summary-sig-default\">1929</span>)</span><br />\n      Solve the <i>Direct</i> geodesic problem in terms of (spherical) arc \n      length.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html#ArcDirectLine\" class=\"summary-sig-name\">ArcDirectLine</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lat1</span>,\n        <span class=\"summary-sig-arg\">lon1</span>,\n        <span class=\"summary-sig-arg\">azi1</span>,\n        <span class=\"summary-sig-arg\">a12</span>,\n        <span class=\"summary-sig-arg\">caps</span>=<span class=\"summary-sig-default\">32671</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Define a <a \n      href=\"pygeodesy.geodesicx.gx.GeodesicLineExact-class.html\" \n      class=\"link\">GeodesicLineExact</a> in terms of the <i>direct</i> \n      geodesic problem and as arc length.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html#Area\" class=\"summary-sig-name\">Area</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">polyline</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Set up a <a \n      href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html\" \n      class=\"link\">GeodesicAreaExact</a> to compute area and perimeter of a\n      polygon.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html#C4f\" class=\"summary-sig-name\">C4f</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">eps</span>)</span><br />\n      Evaluate the <code>C4x</code> coefficients for \n      <b><code>eps</code></b>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html#Direct\" class=\"summary-sig-name\">Direct</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lat1</span>,\n        <span class=\"summary-sig-arg\">lon1</span>,\n        <span class=\"summary-sig-arg\">azi1</span>,\n        <span class=\"summary-sig-arg\">s12</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">outmask</span>=<span class=\"summary-sig-default\">1929</span>)</span><br />\n      Solve the <i>Direct</i> geodesic problem</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html#Direct3\" class=\"summary-sig-name\">Direct3</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lat1</span>,\n        <span class=\"summary-sig-arg\">lon1</span>,\n        <span class=\"summary-sig-arg\">azi1</span>,\n        <span class=\"summary-sig-arg\">s12</span>)</span><br />\n      Return the destination lat, lon and reverse azimuth (final bearing) \n      in <code>degrees</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html#DirectLine\" class=\"summary-sig-name\">DirectLine</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lat1</span>,\n        <span class=\"summary-sig-arg\">lon1</span>,\n        <span class=\"summary-sig-arg\">azi1</span>,\n        <span class=\"summary-sig-arg\">s12</span>,\n        <span class=\"summary-sig-arg\">caps</span>=<span class=\"summary-sig-default\">1929</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Define a <a \n      href=\"pygeodesy.geodesicx.gx.GeodesicLineExact-class.html\" \n      class=\"link\">GeodesicLineExact</a> in terms of the <i>direct</i> \n      geodesic problem and as distance.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html#Inverse\" class=\"summary-sig-name\">Inverse</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lat1</span>,\n        <span class=\"summary-sig-arg\">lon1</span>,\n        <span class=\"summary-sig-arg\">lat2</span>,\n        <span class=\"summary-sig-arg\">lon2</span>,\n        <span class=\"summary-sig-arg\">outmask</span>=<span class=\"summary-sig-default\">1929</span>)</span><br />\n      Perform the <i>Inverse</i> geodesic calculation.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html#Inverse1\" class=\"summary-sig-name\">Inverse1</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lat1</span>,\n        <span class=\"summary-sig-arg\">lon1</span>,\n        <span class=\"summary-sig-arg\">lat2</span>,\n        <span class=\"summary-sig-arg\">lon2</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Return the non-negative, <i>angular</i> distance in \n      <code>degrees</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html#Inverse3\" class=\"summary-sig-name\">Inverse3</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lat1</span>,\n        <span class=\"summary-sig-arg\">lon1</span>,\n        <span class=\"summary-sig-arg\">lat2</span>,\n        <span class=\"summary-sig-arg\">lon2</span>)</span><br />\n      Return the distance in <code>meter</code> and the forward and reverse\n      azimuths (initial and final bearing) in <code>degrees</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html#InverseLine\" class=\"summary-sig-name\">InverseLine</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lat1</span>,\n        <span class=\"summary-sig-arg\">lon1</span>,\n        <span class=\"summary-sig-arg\">lat2</span>,\n        <span class=\"summary-sig-arg\">lon2</span>,\n        <span class=\"summary-sig-arg\">caps</span>=<span class=\"summary-sig-default\">1929</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Define a <a \n      href=\"pygeodesy.geodesicx.gx.GeodesicLineExact-class.html\" \n      class=\"link\">GeodesicLineExact</a> in terms of the <i>Inverse</i> \n      geodesic problem.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html#Line\" class=\"summary-sig-name\">Line</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lat1</span>,\n        <span class=\"summary-sig-arg\">lon1</span>,\n        <span class=\"summary-sig-arg\">azi1</span>,\n        <span class=\"summary-sig-arg\">caps</span>=<span class=\"summary-sig-default\">32671</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Set up a <a \n      href=\"pygeodesy.geodesicx.gx.GeodesicLineExact-class.html\" \n      class=\"link\">GeodesicLineExact</a> to compute several points on a \n      single geodesic.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html#Polygon\" class=\"summary-sig-name\">Polygon</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">polyline</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Set up a <a \n      href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html\" \n      class=\"link\">GeodesicAreaExact</a> to compute area and perimeter of a\n      polygon.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html#toStr\" class=\"summary-sig-name\">toStr</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">**prec_sep_name</span>)</span><br />\n      Return this <code>GeodesicExact</code> as string.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.karney._CapsBase-class.html\">karney._CapsBase</a></code></b>:\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#caps_\">caps_</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#others\">others</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#toRepr\">toRepr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS VARIABLES ==================== -->\n<a name=\"section-ClassVariables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Class Variables</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.karney._CapsBase-class.html\">karney._CapsBase</a></code></b>:\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#ALL\">ALL</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#AREA\">AREA</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#AZIMUTH\">AZIMUTH</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#DISTANCE\">DISTANCE</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#DISTANCE_IN\">DISTANCE_IN</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#EMPTY\">EMPTY</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#GEODESICSCALE\">GEODESICSCALE</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#LATITUDE\">LATITUDE</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#LINE_CAPS\">LINE_CAPS</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#LINE_OFF\">LINE_OFF</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#LONGITUDE\">LONGITUDE</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#LONG_UNROLL\">LONG_UNROLL</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#NONFINITONAN\">NONFINITONAN</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#REDUCEDLENGTH\">REDUCEDLENGTH</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#STANDARD\">STANDARD</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#STANDARD_LINE\">STANDARD_LINE</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html#a\" class=\"summary-name\">a</a><br />\n      Get the <i>equatorial</i> radius, semi-axis (<code>meter</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html#b\" class=\"summary-name\">b</a><br />\n      Get the ellipsoid's <i>polar</i> radius, semi-axis \n      (<code>meter</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html#c2x\" class=\"summary-name\">c2x</a><br />\n      Get the ellipsoid's <i>authalic</i> earth radius <i>squared</i> \n      (<code>meter</code> <i>squared</i>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html#c2\" class=\"summary-name\">c2</a><br />\n      Get the ellipsoid's <i>authalic</i> earth radius <i>squared</i> \n      (<code>meter</code> <i>squared</i>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html#C4order\" class=\"summary-name\">C4order</a><br />\n      Get the series expansion order (<code>int</code>, 24, 27 or 30).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html#C4Order\" class=\"summary-name\">C4Order</a><br />\n      DEPRECATED, use property <code>C4order</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html#datum\" class=\"summary-name\">datum</a><br />\n      Get the datum (<code>Datum</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html#e2\" class=\"summary-name\">e2</a><br />\n      Get the ellipsoid's <i>(1st) eccentricity squared</i> \n      (<code>float</code>), <i class=\"math\">f * (2 - f)</i>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html#ellipsoid\" class=\"summary-name\">ellipsoid</a><br />\n      Get the ellipsoid (<code>Ellipsoid</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html#ep2\" class=\"summary-name\">ep2</a><br />\n      Get the ellipsoid's <i>2nd eccentricity squared</i> \n      (<code>float</code>), <i class=\"math\">e2 / (1 - e2)</i>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html#e22\" class=\"summary-name\">e22</a><br />\n      Get the ellipsoid's <i>2nd eccentricity squared</i> \n      (<code>float</code>), <i class=\"math\">e2 / (1 - e2)</i>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html#flattening\" class=\"summary-name\">flattening</a><br />\n      Get the <code>ellipsoid</code>'s <i>flattening</i> \n      (<code>scalar</code>), <i class=\"math\">(a - b) / a</i>, \n      <code>0</code> for spherical, negative for prolate.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html#f\" class=\"summary-name\">f</a><br />\n      Get the <code>ellipsoid</code>'s <i>flattening</i> \n      (<code>scalar</code>), <i class=\"math\">(a - b) / a</i>, \n      <code>0</code> for spherical, negative for prolate.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html#f1\" class=\"summary-name\">f1</a><br />\n      Get the <code>ellipsoid</code>'s <i>1 - flattening</i> \n      (<code>float</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html#n\" class=\"summary-name\">n</a><br />\n      Get the <code>ellipsoid</code>'s <i>3rd flattening</i> \n      (<code>scalar</code>), <i class=\"math\">f / (2 - f) == (a - b) / (a + \n      b)</i>.\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.karney._CapsBase-class.html\">karney._CapsBase</a></code></b>:\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#caps\">caps</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#debug\">debug</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">a_ellipsoid</span>=<span class=\"sig-default\">Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.257223<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"sig-arg\">f</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">caps</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">C4order</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**name_C4Order</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html\" \n  class=\"link\">GeodesicExact</a> instance.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>a_ellipsoid</code></strong> - An ellipsoid (<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\"\n          class=\"link\">Ellipsoid</a>) or datum (<a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>) \n          or the equatorial radius of the ellipsoid (<code>scalar</code>, \n          conventionally in <code>meter</code>), see <b><code>f</code></b>.</li>\n        <li><strong class=\"pname\"><code>f</code></strong> - The flattening of the ellipsoid (<code>scalar</code>) if \n          <b><code>a_ellipsoid</code></b> is specified as \n          <code>scalar</code>.</li>\n        <li><strong class=\"pname\"><code>caps</code></strong> - Optional default capabilities for <a \n          href=\"pygeodesy.geodesicx.gx.GeodesicLineExact-class.html\" \n          class=\"link\">GeodesicLineExact</a> instances, use \n          <code><b>caps</b>=Caps.NONFINITONAN</code> to handle nonfinites \n          silently.</li>\n        <li><strong class=\"pname\"><code>C4order</code></strong> - Optional series expansion order (<code>int</code>), see property \n          <a href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html#C4order\"\n          class=\"link\">C4order</a>, default <code>30</code>.</li>\n        <li><strong class=\"pname\"><code>name_C4Order</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>) and the \n          DEPRECATED keyword argument <code>C4Order</code>, use \n          <b><code>C4order</code></b> instead.</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.GeodesicError-class.html\">GeodesicError</a></strong></code> - Invalid <b><code>C4order</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"ArcDirect\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">ArcDirect</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lat1</span>,\n        <span class=\"sig-arg\">lon1</span>,\n        <span class=\"sig-arg\">azi1</span>,\n        <span class=\"sig-arg\">a12</span>,\n        <span class=\"sig-arg\">outmask</span>=<span class=\"sig-default\">1929</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Solve the <i>Direct</i> geodesic problem in terms of (spherical) arc \n  length.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat1</code></strong> - Latitude of the first point (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lon1</code></strong> - Longitude of the first point (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>azi1</code></strong> - Azimuth at the first point (compass <code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>a12</code></strong> - Arc length between the points (<code>degrees</code>), can be \n          negative.</li>\n        <li><strong class=\"pname\"><code>outmask</code></strong> - Bit-or'ed combination of <a \n          href=\"pygeodesy.karney.Caps-class.html\" class=\"link\">Caps</a> \n          values specifying the quantities to be returned.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.karney.GDict-class.html\" \n          class=\"link\">GDict</a> with up to 12 items <code>lat1, lon1, \n          azi1, lat2, lon2, azi2, m12, a12, s12, M12, M21, S12</code> with \n          <code>lat1</code>, <code>lon1</code>, <code>azi1</code> and arc \n          length <code>a12</code> always included.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        C++ <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1GeodesicExact.html\"\n        target=\"_top\">GeodesicExact.ArcDirect</a> and Python <a \n        href=\"https://GeographicLib.SourceForge.io/Python/doc/code.html\" \n        target=\"_top\">Geodesic.ArcDirect</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"ArcDirectLine\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">ArcDirectLine</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lat1</span>,\n        <span class=\"sig-arg\">lon1</span>,\n        <span class=\"sig-arg\">azi1</span>,\n        <span class=\"sig-arg\">a12</span>,\n        <span class=\"sig-arg\">caps</span>=<span class=\"sig-default\">32671</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Define a <a href=\"pygeodesy.geodesicx.gx.GeodesicLineExact-class.html\"\n  class=\"link\">GeodesicLineExact</a> in terms of the <i>direct</i> geodesic\n  problem and as arc length.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat1</code></strong> - Latitude of the first point (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lon1</code></strong> - Longitude of the first point (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>azi1</code></strong> - Azimuth at the first point (compass <code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>a12</code></strong> - Arc length between the points (<code>degrees</code>), can be \n          negative.</li>\n        <li><strong class=\"pname\"><code>caps</code></strong> - Desired capabilities for the <a \n          href=\"pygeodesy.geodesicx.gx.GeodesicLineExact-class.html\" \n          class=\"link\">GeodesicLineExact</a> instance.</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.geodesicx.gx.GeodesicLineExact-class.html\" \n          class=\"link\">GeodesicLineExact</a> instance.</dd>\n  </dl>\n<div class=\"fields\">      <strong>Notes:</strong>\n      <ul class=\"nomargin-top\">\n        <li>\n        The third point of the <a \n        href=\"pygeodesy.geodesicx.gx.GeodesicLineExact-class.html\" \n        class=\"link\">GeodesicLineExact</a> is set to correspond to the \n        second point of the <i>Inverse</i> geodesic problem.\n        </li>\n        <li>\n        Latitude <b><code>lat1</code></b> should in the range <code>[-90, \n        +90]</code>.\n        </li>\n      </ul>\n      <p><strong>See Also:</strong>\n        C++ <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1GeodesicExact.html\"\n        target=\"_top\">GeodesicExact.ArcDirectLine</a> and Python <a \n        href=\"https://GeographicLib.SourceForge.io/Python/doc/code.html\" \n        target=\"_top\">Geodesic.ArcDirectLine</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"Area\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">Area</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">polyline</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Set up a <a \n  href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html\" \n  class=\"link\">GeodesicAreaExact</a> to compute area and perimeter of a \n  polygon.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>polyline</code></strong> - If <code>True</code>, compute the perimeter only, otherwise the \n          perimeter and area (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a \n          href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html\" \n          class=\"link\">GeodesicAreaExact</a> instance.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        The <b><code>debug</code></b> setting is passed as \n        <code>verbose</code> to the returned <a \n        href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html\" \n        class=\"link\">GeodesicAreaExact</a> instance.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"C4f\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">C4f</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">eps</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Evaluate the <code>C4x</code> coefficients for \n  <b><code>eps</code></b>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>eps</code></strong> - Polynomial factor (<code>float</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>C4order</code>-Tuple of <code>C4x(<b>eps</b>)</code> \n          coefficients.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"Direct\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">Direct</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lat1</span>,\n        <span class=\"sig-arg\">lon1</span>,\n        <span class=\"sig-arg\">azi1</span>,\n        <span class=\"sig-arg\">s12</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">outmask</span>=<span class=\"sig-default\">1929</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Solve the <i>Direct</i> geodesic problem</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat1</code></strong> - Latitude of the first point (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lon1</code></strong> - Longitude of the first point (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>azi1</code></strong> - Azimuth at the first point (compass <code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>s12</code></strong> - Distance between the points (<code>meter</code>), can be \n          negative.</li>\n        <li><strong class=\"pname\"><code>outmask</code></strong> - Bit-or'ed combination of <a \n          href=\"pygeodesy.karney.Caps-class.html\" class=\"link\">Caps</a> \n          values specifying the quantities to be returned.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.karney.GDict-class.html\" \n          class=\"link\">GDict</a> with up to 12 items <code>lat1, lon1, \n          azi1, lat2, lon2, azi2, m12, a12, s12, M12, M21, S12</code> with \n          <code>lat1</code>, <code>lon1</code>, <code>azi1</code> and \n          distance <code>s12</code> always included.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        C++ <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1GeodesicExact.html\"\n        target=\"_top\">GeodesicExact.Direct</a> and Python <a \n        href=\"https://GeographicLib.SourceForge.io/Python/doc/code.html\" \n        target=\"_top\">Geodesic.Direct</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"Direct3\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">Direct3</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lat1</span>,\n        <span class=\"sig-arg\">lon1</span>,\n        <span class=\"sig-arg\">azi1</span>,\n        <span class=\"sig-arg\">s12</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the destination lat, lon and reverse azimuth (final bearing) in\n  <code>degrees</code>.</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd><a href=\"pygeodesy.namedTuples.Destination3Tuple-class.html\" \n          class=\"link\">Destination3Tuple</a><code>(lat, lon, final)</code>.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"DirectLine\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">DirectLine</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lat1</span>,\n        <span class=\"sig-arg\">lon1</span>,\n        <span class=\"sig-arg\">azi1</span>,\n        <span class=\"sig-arg\">s12</span>,\n        <span class=\"sig-arg\">caps</span>=<span class=\"sig-default\">1929</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Define a <a href=\"pygeodesy.geodesicx.gx.GeodesicLineExact-class.html\"\n  class=\"link\">GeodesicLineExact</a> in terms of the <i>direct</i> geodesic\n  problem and as distance.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat1</code></strong> - Latitude of the first point (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lon1</code></strong> - Longitude of the first point (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>azi1</code></strong> - Azimuth at the first point (compass <code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>s12</code></strong> - Distance between the points (<code>meter</code>), can be \n          negative.</li>\n        <li><strong class=\"pname\"><code>caps</code></strong> - Desired capabilities for the <a \n          href=\"pygeodesy.geodesicx.gx.GeodesicLineExact-class.html\" \n          class=\"link\">GeodesicLineExact</a> instance.</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.geodesicx.gx.GeodesicLineExact-class.html\" \n          class=\"link\">GeodesicLineExact</a> instance.</dd>\n  </dl>\n<div class=\"fields\">      <strong>Notes:</strong>\n      <ul class=\"nomargin-top\">\n        <li>\n        The third point of the <a \n        href=\"pygeodesy.geodesicx.gx.GeodesicLineExact-class.html\" \n        class=\"link\">GeodesicLineExact</a> is set to correspond to the \n        second point of the <i>Inverse</i> geodesic problem.\n        </li>\n        <li>\n        Latitude <b><code>lat1</code></b> should in the range <code>[-90, \n        +90]</code>.\n        </li>\n      </ul>\n      <p><strong>See Also:</strong>\n        C++ <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1GeodesicExact.html\"\n        target=\"_top\">GeodesicExact.DirectLine</a> and Python <a \n        href=\"https://GeographicLib.SourceForge.io/Python/doc/code.html\" \n        target=\"_top\">Geodesic.DirectLine</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"Inverse\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">Inverse</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lat1</span>,\n        <span class=\"sig-arg\">lon1</span>,\n        <span class=\"sig-arg\">lat2</span>,\n        <span class=\"sig-arg\">lon2</span>,\n        <span class=\"sig-arg\">outmask</span>=<span class=\"sig-default\">1929</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Perform the <i>Inverse</i> geodesic calculation.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat1</code></strong> - Latitude of the first point (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lon1</code></strong> - Longitude of the first point (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lat2</code></strong> - Latitude of the second point (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lon2</code></strong> - Longitude of the second point (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>outmask</code></strong> - Bit-or'ed combination of <a \n          href=\"pygeodesy.karney.Caps-class.html\" class=\"link\">Caps</a> \n          values specifying the quantities to be returned.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.karney.GDict-class.html\" \n          class=\"link\">GDict</a> with up to 12 items <code>lat1, lon1, \n          azi1, lat2, lon2, azi2, m12, a12, s12, M12, M21, S12</code> with \n          <code>lat1</code>, <code>lon1</code>, <code>azi1</code> and \n          distance <code>s12</code> always included.</dd>\n  </dl>\n<div class=\"fields\">      <strong>Notes:</strong>\n      <ul class=\"nomargin-top\">\n        <li>\n        The third point of the <a \n        href=\"pygeodesy.geodesicx.gx.GeodesicLineExact-class.html\" \n        class=\"link\">GeodesicLineExact</a> is set to correspond to the \n        second point of the <i>Inverse</i> geodesic problem.\n        </li>\n        <li>\n        Both <b><code>lat1</code></b> and <b><code>lat2</code></b> should \n        in the range <code>[-90, +90]</code>.\n        </li>\n      </ul>\n      <p><strong>See Also:</strong>\n        C++ <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1GeodesicExact.html\"\n        target=\"_top\">GeodesicExact.InverseLine</a> and Python <a \n        href=\"https://GeographicLib.SourceForge.io/Python/doc/code.html\" \n        target=\"_top\">Geodesic.InverseLine</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"Inverse1\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">Inverse1</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lat1</span>,\n        <span class=\"sig-arg\">lon1</span>,\n        <span class=\"sig-arg\">lat2</span>,\n        <span class=\"sig-arg\">lon2</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the non-negative, <i>angular</i> distance in \n  <code>degrees</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll \n          <b><code>lat2</code></b> and <b><code>lon2</code></b> \n          (<code>bool</code>).</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"Inverse3\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">Inverse3</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lat1</span>,\n        <span class=\"sig-arg\">lon1</span>,\n        <span class=\"sig-arg\">lat2</span>,\n        <span class=\"sig-arg\">lon2</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the distance in <code>meter</code> and the forward and reverse \n  azimuths (initial and final bearing) in <code>degrees</code>.</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd><a href=\"pygeodesy.namedTuples.Distance3Tuple-class.html\" \n          class=\"link\">Distance3Tuple</a><code>(distance, initial, \n          final)</code>.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"InverseLine\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">InverseLine</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lat1</span>,\n        <span class=\"sig-arg\">lon1</span>,\n        <span class=\"sig-arg\">lat2</span>,\n        <span class=\"sig-arg\">lon2</span>,\n        <span class=\"sig-arg\">caps</span>=<span class=\"sig-default\">1929</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Define a <a href=\"pygeodesy.geodesicx.gx.GeodesicLineExact-class.html\"\n  class=\"link\">GeodesicLineExact</a> in terms of the <i>Inverse</i> \n  geodesic problem.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat1</code></strong> - Latitude of the first point (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lon1</code></strong> - Longitude of the first point (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lat2</code></strong> - Latitude of the second point (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lon2</code></strong> - Longitude of the second point (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>caps</code></strong> - Desired capabilities for the <a \n          href=\"pygeodesy.geodesicx.gx.GeodesicLineExact-class.html\" \n          class=\"link\">GeodesicLineExact</a> instance.</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.geodesicx.gx.GeodesicLineExact-class.html\" \n          class=\"link\">GeodesicLineExact</a> instance.</dd>\n  </dl>\n<div class=\"fields\">      <strong>Notes:</strong>\n      <ul class=\"nomargin-top\">\n        <li>\n        The third point of the <a \n        href=\"pygeodesy.geodesicx.gx.GeodesicLineExact-class.html\" \n        class=\"link\">GeodesicLineExact</a> is set to correspond to the \n        second point of the <i>Inverse</i> geodesic problem.\n        </li>\n        <li>\n        Both <b><code>lat1</code></b> and <b><code>lat2</code></b> should \n        in the range <code>[-90, +90]</code>.\n        </li>\n      </ul>\n      <p><strong>See Also:</strong>\n        C++ <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1GeodesicExact.html\"\n        target=\"_top\">GeodesicExact.InverseLine</a> and Python <a \n        href=\"https://GeographicLib.SourceForge.io/Python/doc/code.html\" \n        target=\"_top\">Geodesic.InverseLine</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"Line\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">Line</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lat1</span>,\n        <span class=\"sig-arg\">lon1</span>,\n        <span class=\"sig-arg\">azi1</span>,\n        <span class=\"sig-arg\">caps</span>=<span class=\"sig-default\">32671</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Set up a <a href=\"pygeodesy.geodesicx.gx.GeodesicLineExact-class.html\"\n  class=\"link\">GeodesicLineExact</a> to compute several points on a single \n  geodesic.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat1</code></strong> - Latitude of the first point (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lon1</code></strong> - Longitude of the first point (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>azi1</code></strong> - Azimuth at the first point (compass <code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>caps</code></strong> - Desired capabilities for the <a \n          href=\"pygeodesy.geodesicx.gx.GeodesicLineExact-class.html\" \n          class=\"link\">GeodesicLineExact</a> instance.</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.geodesicx.gx.GeodesicLineExact-class.html\" \n          class=\"link\">GeodesicLineExact</a> instance.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        If the point is at a pole, the azimuth is defined by keeping \n        <b><code>lon1</code></b> fixed, writing <code><b>lat1</b> = &#177;(90 &#8722; \n        &#949;)</code>, and taking the limit <code>&#949; &#8594; 0+</code>.\n      </p>\n      <p><strong>See Also:</strong>\n        C++ <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1GeodesicExact.html\"\n        target=\"_top\">GeodesicExact.Line</a> and Python <a \n        href=\"https://GeographicLib.SourceForge.io/Python/doc/code.html\" \n        target=\"_top\">Geodesic.Line</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"Polygon\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">Polygon</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">polyline</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Set up a <a \n  href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html\" \n  class=\"link\">GeodesicAreaExact</a> to compute area and perimeter of a \n  polygon.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>polyline</code></strong> - If <code>True</code>, compute the perimeter only, otherwise the \n          perimeter and area (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a \n          href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html\" \n          class=\"link\">GeodesicAreaExact</a> instance.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        The <b><code>debug</code></b> setting is passed as \n        <code>verbose</code> to the returned <a \n        href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html\" \n        class=\"link\">GeodesicAreaExact</a> instance.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"toStr\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toStr</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">**prec_sep_name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return this <code>GeodesicExact</code> as string.</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd><code>GeodesicExact</code> (<code>str</code>).</dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.named._Named-class.html#toStr\">named._Named.toStr</a>\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#toStr\" \n        class=\"link\">Ellipsoid.toStr</a> for further details.\n      </p>\n</div></td></tr></table>\n</div>\n<br />\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"a\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">a</h3>\n  <p>Get the <i>equatorial</i> radius, semi-axis (<code>meter</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">a(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <i>equatorial</i> radius, semi-axis (<code>meter</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"b\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">b</h3>\n  <p>Get the ellipsoid's <i>polar</i> radius, semi-axis \n  (<code>meter</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">b(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the ellipsoid's <i>polar</i> radius, semi-axis (<code>meter</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"c2x\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">c2x</h3>\n  <p>Get the ellipsoid's <i>authalic</i> earth radius <i>squared</i> \n  (<code>meter</code> <i>squared</i>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">c2x(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the ellipsoid's <i>authalic</i> earth radius <i>squared</i> \n(<code>meter</code> <i>squared</i>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"c2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">c2</h3>\n  <p>Get the ellipsoid's <i>authalic</i> earth radius <i>squared</i> \n  (<code>meter</code> <i>squared</i>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">c2x(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the ellipsoid's <i>authalic</i> earth radius <i>squared</i> \n(<code>meter</code> <i>squared</i>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"C4order\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">C4order</h3>\n  <p>Get the series expansion order (<code>int</code>, 24, 27 or 30).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">C4order(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the series expansion order (<code>int</code>, 24, 27 or 30).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">C4order(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">order</span>)</span>\n        - Set the series expansion order (<code>int</code>, 24, 27 or 30).\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"C4Order\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">C4Order</h3>\n  <p>DEPRECATED, use property <code>C4order</code>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">C4Order(<span class=\"summary-sig-arg\">self</span>)</span>\n        - DEPRECATED, use property <code>C4order</code>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">C4Order(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">order</span>)</span>\n        - DEPRECATED, use property <code>C4order</code>.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"datum\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">datum</h3>\n  <p>Get the datum (<code>Datum</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">datum(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the datum (<code>Datum</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"e2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">e2</h3>\n  <p>Get the ellipsoid's <i>(1st) eccentricity squared</i> \n  (<code>float</code>), <i class=\"math\">f * (2 - f)</i>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">e2(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the ellipsoid's <i>(1st) eccentricity squared</i> (<code>float</code>),\n<i class=\"math\">f * (2 - f)</i>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"ellipsoid\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">ellipsoid</h3>\n  <p>Get the ellipsoid (<code>Ellipsoid</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">ellipsoid(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the ellipsoid (<code>Ellipsoid</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"ep2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">ep2</h3>\n  <p>Get the ellipsoid's <i>2nd eccentricity squared</i> \n  (<code>float</code>), <i class=\"math\">e2 / (1 - e2)</i>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">ep2(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the ellipsoid's <i>2nd eccentricity squared</i> (<code>float</code>), \n<i class=\"math\">e2 / (1 - e2)</i>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"e22\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">e22</h3>\n  <p>Get the ellipsoid's <i>2nd eccentricity squared</i> \n  (<code>float</code>), <i class=\"math\">e2 / (1 - e2)</i>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">ep2(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the ellipsoid's <i>2nd eccentricity squared</i> (<code>float</code>), \n<i class=\"math\">e2 / (1 - e2)</i>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"flattening\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">flattening</h3>\n  <p>Get the <code>ellipsoid</code>'s <i>flattening</i> \n  (<code>scalar</code>), <i class=\"math\">(a - b) / a</i>, <code>0</code> \n  for spherical, negative for prolate.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">flattening(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <code>ellipsoid</code>'s <i>flattening</i> (<code>scalar</code>), \n<i class=\"math\">(a - b) / a</i>, <code>0</code> for spherical, negative for\nprolate.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"f\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">f</h3>\n  <p>Get the <code>ellipsoid</code>'s <i>flattening</i> \n  (<code>scalar</code>), <i class=\"math\">(a - b) / a</i>, <code>0</code> \n  for spherical, negative for prolate.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">flattening(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <code>ellipsoid</code>'s <i>flattening</i> (<code>scalar</code>), \n<i class=\"math\">(a - b) / a</i>, <code>0</code> for spherical, negative for\nprolate.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"f1\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">f1</h3>\n  <p>Get the <code>ellipsoid</code>'s <i>1 - flattening</i> \n  (<code>float</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">f1(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <code>ellipsoid</code>'s <i>1 - flattening</i> \n(<code>float</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"n\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">n</h3>\n  <p>Get the <code>ellipsoid</code>'s <i>3rd flattening</i> \n  (<code>scalar</code>), <i class=\"math\">f / (2 - f) == (a - b) / (a + \n  b)</i>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">n(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <code>ellipsoid</code>'s <i>3rd flattening</i> \n(<code>scalar</code>), <i class=\"math\">f / (2 - f) == (a - b) / (a + \nb)</i>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.geodesicx.gx.GeodesicLineExact-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.geodesicx.gx.GeodesicLineExact</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.geodesicx-module.html\">Package&nbsp;geodesicx</a> ::\n        <a href=\"pygeodesy.geodesicx.gx-module.html\">Module&nbsp;gx</a> ::\n        Class&nbsp;GeodesicLineExact\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.geodesicx.gx.GeodesicLineExact-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class GeodesicLineExact</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+                    \n           |                    \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+                \n               |                \n<a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+            \n                   |            \n    <a href=\"pygeodesy.karney._CapsBase-class.html\">karney._CapsBase</a> --+        \n                       |        \n   gxbases._GeodesicBase --+    \n                           |    \n   <a href=\"pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html\">gxline._GeodesicLineExact</a> --+\n                               |\n                              <strong class=\"uidshort\">GeodesicLineExact</strong>\n</pre>\n\n<hr />\n<p>A pure Python version of <i>Karney</i>'s C++ class <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1GeodesicLineExact.html\"\n  target=\"_top\">GeodesicLineExact</a>, modeled after <i>Karney</i>'s Python\n  class <a href=\"https://GitHub.com/geographiclib/geographiclib-python\" \n  target=\"_top\">geodesicline.GeodesicLine</a>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geodesicx.gx.GeodesicLineExact-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">geodesic</span>,\n        <span class=\"summary-sig-arg\">lat1</span>,\n        <span class=\"summary-sig-arg\">lon1</span>,\n        <span class=\"summary-sig-arg\">azi1</span>,\n        <span class=\"summary-sig-arg\">caps</span>=<span class=\"summary-sig-default\">1929</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      New <a href=\"pygeodesy.geodesicx.gx.GeodesicLineExact-class.html\" \n      class=\"link\">GeodesicLineExact</a> instance, allowing points to be \n      found along a geodesic starting at <code>(<b>lat1</b>, \n      <b>lon1</b>)</code> with azimuth <b><code>azi1</code></b>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html\">gxline._GeodesicLineExact</a></code></b>:\n      <code><a href=\"pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#Arc\">Arc</a></code>,\n      <code><a href=\"pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#ArcPosition\">ArcPosition</a></code>,\n      <code><a href=\"pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#Distance\">Distance</a></code>,\n      <code><a href=\"pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#Intersecant2\">Intersecant2</a></code>,\n      <code><a href=\"pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#PlumbTo\">PlumbTo</a></code>,\n      <code><a href=\"pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#Position\">Position</a></code>,\n      <code><a href=\"pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#SetArc\">SetArc</a></code>,\n      <code><a href=\"pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#SetDistance\">SetDistance</a></code>,\n      <code><a href=\"pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#__del__\">__del__</a></code>,\n      <code><a href=\"pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#toStr\">toStr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.karney._CapsBase-class.html\">karney._CapsBase</a></code></b>:\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#caps_\">caps_</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#others\">others</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#toRepr\">toRepr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS VARIABLES ==================== -->\n<a name=\"section-ClassVariables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Class Variables</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.karney._CapsBase-class.html\">karney._CapsBase</a></code></b>:\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#ALL\">ALL</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#AREA\">AREA</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#AZIMUTH\">AZIMUTH</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#DISTANCE\">DISTANCE</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#DISTANCE_IN\">DISTANCE_IN</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#EMPTY\">EMPTY</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#GEODESICSCALE\">GEODESICSCALE</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#LATITUDE\">LATITUDE</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#LINE_CAPS\">LINE_CAPS</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#LINE_OFF\">LINE_OFF</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#LONGITUDE\">LONGITUDE</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#LONG_UNROLL\">LONG_UNROLL</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#NONFINITONAN\">NONFINITONAN</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#REDUCEDLENGTH\">REDUCEDLENGTH</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#STANDARD\">STANDARD</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#STANDARD_LINE\">STANDARD_LINE</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html\">gxline._GeodesicLineExact</a></code></b>:\n      <code><a href=\"pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#a1\">a1</a></code>,\n      <code><a href=\"pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#a13\">a13</a></code>,\n      <code><a href=\"pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#azi0\">azi0</a></code>,\n      <code><a href=\"pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#azi0_sincos2\">azi0_sincos2</a></code>,\n      <code><a href=\"pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#azi1\">azi1</a></code>,\n      <code><a href=\"pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#azi1_sincos2\">azi1_sincos2</a></code>,\n      <code><a href=\"pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#equatorarc\">equatorarc</a></code>,\n      <code><a href=\"pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#equatorazimuth\">equatorazimuth</a></code>,\n      <code><a href=\"pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#geodesic\">geodesic</a></code>,\n      <code><a href=\"pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#lat1\">lat1</a></code>,\n      <code><a href=\"pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#lon1\">lon1</a></code>,\n      <code><a href=\"pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#s13\">s13</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.karney._CapsBase-class.html\">karney._CapsBase</a></code></b>:\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#caps\">caps</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#debug\">debug</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">geodesic</span>,\n        <span class=\"sig-arg\">lat1</span>,\n        <span class=\"sig-arg\">lon1</span>,\n        <span class=\"sig-arg\">azi1</span>,\n        <span class=\"sig-arg\">caps</span>=<span class=\"sig-default\">1929</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.geodesicx.gx.GeodesicLineExact-class.html\" \n  class=\"link\">GeodesicLineExact</a> instance, allowing points to be found \n  along a geodesic starting at <code>(<b>lat1</b>, <b>lon1</b>)</code> with\n  azimuth <b><code>azi1</code></b>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>geodesic</code></strong> - The geodesic to use (<a \n          href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html\" \n          class=\"link\">GeodesicExact</a>).</li>\n        <li><strong class=\"pname\"><code>lat1</code></strong> - Latitude of the first point (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lon1</code></strong> - Longitude of the first point (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>azi1</code></strong> - Azimuth at the first points (compass <code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>caps</code></strong> - Bit-or'ed combination of <a \n          href=\"pygeodesy.karney.Caps-class.html\" class=\"link\">Caps</a> \n          values specifying the capabilities the <a \n          href=\"pygeodesy.geodesicx.gx.GeodesicLineExact-class.html\" \n          class=\"link\">GeodesicLineExact</a> instance should possess, i.e.,\n          which quantities can bereturned by methods <a \n          href=\"pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#Position\"\n          class=\"link\">GeodesicLineExact.Position</a> and <a \n          href=\"pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#ArcPosition\"\n          class=\"link\">GeodesicLineExact.ArcPosition</a>.</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>geodesic</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.geodesicx.gxarea-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.geodesicx.gxarea</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.geodesicx-module.html\">Package&nbsp;geodesicx</a> ::\n        Module&nbsp;gxarea\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.geodesicx.gxarea-module.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== MODULE DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Module gxarea</h1><p class=\"nomargin-top\"></p>\n<p>Slightly enhanced versions of classes <a \n  href=\"https://GeographicLib.SourceForge.io/1.52/python/code.html#module-geographiclib.polygonarea\"\n  target=\"_top\">PolygonArea</a> and <code>Accumulator</code> from \n  <i>Karney</i>'s Python <a \n  href=\"https://GeographicLib.SourceForge.io/1.52/python/index.html\" \n  target=\"_top\">geographiclib</a>.</p>\n  <p>Class <a \n  href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html\" \n  class=\"link\">GeodesicAreaExact</a> is intended to work with instances of \n  class <a href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html\" \n  class=\"link\">GeodesicExact</a> and of <i>wrapped</i> class \n  <code>Geodesic</code>, see module <a href=\"pygeodesy.karney-module.html\" \n  class=\"link\">pygeodesy.karney</a>.</p>\n  <p>Copyright (C) <a href=\"mailto:Karney@Alum.MIT.edu\" \n  target=\"_top\">Charles Karney</a> (2008-2024) and licensed under the \n  MIT/X11 License.  For more information, see the <a \n  href=\"https://GeographicLib.SourceForge.io\" \n  target=\"_top\">GeographicLib</a> documentation.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Version:</strong>\n        25.12.23\n      </p>\n</div><!-- ==================== CLASSES ==================== -->\n<a name=\"section-Classes\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Classes</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html\" class=\"summary-name\">GeodesicAreaExact</a><br />\n      Area and perimeter of a geodesic polygon, an enhanced version of \n        <i>Karney</i>'s Python class <a \n        href=\"https://GeographicLib.SourceForge.io/html/python/code.html#module-geographiclib.polygonarea\"\n        target=\"_top\">PolygonArea</a> using the more accurate surface area.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geodesicx.gxarea.PolygonArea-class.html\" class=\"summary-name\">PolygonArea</a><br />\n      For <code>geographiclib</code> compatibility, sub-class of <a \n        href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html\" \n        class=\"link\">GeodesicAreaExact</a>.\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.geodesicx.gxarea.GeodesicAreaExact</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.geodesicx-module.html\">Package&nbsp;geodesicx</a> ::\n        <a href=\"pygeodesy.geodesicx.gxarea-module.html\">Module&nbsp;gxarea</a> ::\n        Class&nbsp;GeodesicAreaExact\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class GeodesicAreaExact</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+        \n           |        \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n               |    \n<a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+\n                   |\n                  <strong class=\"uidshort\">GeodesicAreaExact</strong>\n</pre>\n\n<dl><dt>Known Subclasses:</dt>\n<dd>\n      <ul class=\"subclass-list\">\n<li><a href=\"pygeodesy.geodesicx.gxarea.PolygonArea-class.html\">PolygonArea</a></li>  </ul>\n</dd></dl>\n\n<hr />\n<p>Area and perimeter of a geodesic polygon, an enhanced version of \n  <i>Karney</i>'s Python class <a \n  href=\"https://GeographicLib.SourceForge.io/html/python/code.html#module-geographiclib.polygonarea\"\n  target=\"_top\">PolygonArea</a> using the more accurate surface area.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Note:</strong>\n        The name of this class <code>*Exact</code> is a misnomer, see \n        <i>Karney</i>'s comments at C++ attribute <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/GeodesicExact_8cpp_source.html\"\n        target=\"_top\">GeodesicExact._c2</a>.\n      </p>\n</div><!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">geodesic</span>,\n        <span class=\"summary-sig-arg\">polyline</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      New <a href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html\"\n      class=\"link\">GeodesicAreaExact</a> instance.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#AddEdge\" class=\"summary-sig-name\">AddEdge</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">azi</span>,\n        <span class=\"summary-sig-arg\">s</span>)</span><br />\n      Add another polygon edge.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#AddPoint\" class=\"summary-sig-name\">AddPoint</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lat</span>,\n        <span class=\"summary-sig-arg\">lon</span>)</span><br />\n      Add another polygon point.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#Compute\" class=\"summary-sig-name\">Compute</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">reverse</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">sign</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">polar</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Compute the accumulated perimeter and area.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"Reset\"></a><span class=\"summary-sig-name\">Reset</span>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Reset this polygon to empty.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"Clear\"></a><span class=\"summary-sig-name\">Clear</span>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Reset this polygon to empty.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#TestEdge\" class=\"summary-sig-name\">TestEdge</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">azi</span>,\n        <span class=\"summary-sig-arg\">s</span>,\n        <span class=\"summary-sig-arg\">**reverse_sign_polar</span>)</span><br />\n      Compute the properties for a tentative, additional edge</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#TestPoint\" class=\"summary-sig-name\">TestPoint</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lat</span>,\n        <span class=\"summary-sig-arg\">lon</span>,\n        <span class=\"summary-sig-arg\">**reverse_sign_polar</span>)</span><br />\n      Compute the properties for a tentative, additional vertex</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#toStr\" class=\"summary-sig-name\">toStr</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">prec</span>=<span class=\"summary-sig-default\">6</span>,\n        <span class=\"summary-sig-arg\">sep</span>=<span class=\"summary-sig-default\">', '</span>,\n        <span class=\"summary-sig-arg\">**unused</span>)</span><br />\n      Return this <code>GeodesicExactArea</code> as string.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#others\">others</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#toRepr\">toRepr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#area0x\" class=\"summary-name\">area0x</a><br />\n      Get the ellipsoid's surface area (<code>meter</code> <i>squared</i>),\n      more accurate for very <i>oblate</i> ellipsoids.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#area0\" class=\"summary-name\">area0</a><br />\n      Get the ellipsoid's surface area (<code>meter</code> <i>squared</i>),\n      more accurate for very <i>oblate</i> ellipsoids.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#ellipsoid\" class=\"summary-name\">ellipsoid</a><br />\n      Get this area's ellipsoid (<code>Ellipsoid[2]</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#geodesic\" class=\"summary-name\">geodesic</a><br />\n      Get this area's geodesic object (<code>Geodesic[Exact]</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#earth\" class=\"summary-name\">earth</a><br />\n      Get this area's geodesic object (<code>Geodesic[Exact]</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#lat0\" class=\"summary-name\">lat0</a><br />\n      Get the first point's latitude (<code>degrees</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#lat1\" class=\"summary-name\">lat1</a><br />\n      Get the most recent point's latitude (<code>degrees</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#lon0\" class=\"summary-name\">lon0</a><br />\n      Get the first point's longitude (<code>degrees</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#lon1\" class=\"summary-name\">lon1</a><br />\n      Get the most recent point's longitude (<code>degrees</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#num\" class=\"summary-name\">num</a><br />\n      Get the current number of points (<code>int</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#polyline\" class=\"summary-name\">polyline</a><br />\n      Is this perimeter only (<code>bool</code>), area NAN?\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#verbose\" class=\"summary-name\">verbose</a><br />\n      Get the <code>verbose</code> option (<code>bool</code>).\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">geodesic</span>,\n        <span class=\"sig-arg\">polyline</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html\" \n  class=\"link\">GeodesicAreaExact</a> instance.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>geodesic</code></strong> - A geodesic (<a \n          href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html\" \n          class=\"link\">GeodesicExact</a>, <i>wrapped</i> \n          <code>Geodesic</code> or <a \n          href=\"pygeodesy.geodsolve.GeodesicSolve-class.html\" \n          class=\"link\">GeodesicSolve</a>).</li>\n        <li><strong class=\"pname\"><code>polyline</code></strong> - If <code>True</code>, compute the perimeter only, otherwise area \n          and perimeter (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.GeodesicError-class.html\">GeodesicError</a></strong></code> - Invalid <b><code>geodesic</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"AddEdge\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">AddEdge</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">azi</span>,\n        <span class=\"sig-arg\">s</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Add another polygon edge.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>azi</code></strong> - Azimuth at the current point (compass <code>degrees360</code>).</li>\n        <li><strong class=\"pname\"><code>s</code></strong> - Length of the edge (<code>meter</code>).</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"AddPoint\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">AddPoint</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lat</span>,\n        <span class=\"sig-arg\">lon</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Add another polygon point.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat</code></strong> - Latitude of the point (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lon</code></strong> - Longitude of the point (<code>degrees</code>).</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"Compute\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">Compute</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">reverse</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">sign</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">polar</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the accumulated perimeter and area.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>reverse</code></strong> - If <code>True</code>, clockwise traversal counts as a positive \n          area instead of counter-clockwise (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>sign</code></strong> - If <code>True</code>, return a signed result for the area if the \n          polygon is traversed in the &quot;wrong&quot; direction instead \n          of returning the area for the rest of the earth.</li>\n        <li><strong class=\"pname\"><code>polar</code></strong> - Use <code><b>polar</b>=True</code> if the polygon encloses a pole\n          (<code>bool</code>), see function <a \n          href=\"pygeodesy.points-module.html#ispolar\" \n          class=\"link\">ispolar</a> and <a \n          href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1GeodesicExact.html#a3d7a9155e838a09a48dc14d0c3fac525\"\n          target=\"_top\">area of a polygon enclosing a pole</a>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><a href=\"pygeodesy.karney.Area3Tuple-class.html\" \n          class=\"link\">Area3Tuple</a><code>(number, perimeter, area)</code>\n          with the number of points, the perimeter in <code>meter</code> \n          and the (signed) area in <code>meter**2</code>.  The perimeter \n          includes the length of a final edge, connecting the current to \n          the initial point, if this polygon was initialized with \n          <code>polyline=False</code>.  For perimeter only, i.e. \n          <code>polyline=True</code>, area is <code>NAN</code>.</dd>\n  </dl>\n<div class=\"fields\">      <strong>Notes:</strong>\n      <ul class=\"nomargin-top\">\n        <li>\n        Arbitrarily complex polygons are allowed.  In the case of \n        self-intersecting polygons, the area is accumulated \n        &quot;algebraically&quot;.  E.g., the areas of both loops in a \n        <i>figure-8</i> polygon will partially cancel.\n        </li>\n        <li>\n        More points and edges can be added after this call.\n        </li>\n      </ul>\n</div></td></tr></table>\n</div>\n<a name=\"TestEdge\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">TestEdge</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">azi</span>,\n        <span class=\"sig-arg\">s</span>,\n        <span class=\"sig-arg\">**reverse_sign_polar</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the properties for a tentative, additional edge</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>azi</code></strong> - Azimuth at the current the point (compass <code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>s</code></strong> - Length of the edge (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>reverse_sign_polar</code></strong> - Optional <code><b>reverse</b>=False</code>, \n          <code><b>sign</b>=True</code> and <code><b>polar</b>=False</code>\n          keyword arguments, see method <a \n          href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#Compute\"\n          class=\"link\">Compute</a>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><a href=\"pygeodesy.karney.Area3Tuple-class.html\" \n          class=\"link\">Area3Tuple</a><code>(number, perimeter, \n          area)</code>, with <code>perimeter</code> and <code>area</code> \n          both <code>NAN</code> for insuffcient <code>number</code> of \n          points.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"TestPoint\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">TestPoint</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lat</span>,\n        <span class=\"sig-arg\">lon</span>,\n        <span class=\"sig-arg\">**reverse_sign_polar</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the properties for a tentative, additional vertex</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat</code></strong> - Latitude of the point (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lon</code></strong> - Longitude of the point (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>reverse_sign_polar</code></strong> - Optional <code><b>reverse</b>=False</code>, \n          <code><b>sign</b>=True</code> and <code><b>polar</b>=False</code>\n          keyword arguments, see method <a \n          href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#Compute\"\n          class=\"link\">Compute</a>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><a href=\"pygeodesy.karney.Area3Tuple-class.html\" \n          class=\"link\">Area3Tuple</a><code>(number, perimeter, \n          area)</code>.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toStr\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toStr</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">prec</span>=<span class=\"sig-default\">6</span>,\n        <span class=\"sig-arg\">sep</span>=<span class=\"sig-default\">', '</span>,\n        <span class=\"sig-arg\">**unused</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return this <code>GeodesicExactArea</code> as string.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>prec</code></strong> - The <code>float</code> precision, number of decimal digits \n          (0..9). Trailing zero decimals are stripped for \n          <b><code>prec</code></b> values of 1 and above, but kept for \n          negative <b><code>prec</code></b> values.</li>\n        <li><strong class=\"pname\"><code>sep</code></strong> - Separator to join (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Area items (<code>str</code>).</dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.named._Named-class.html#toStr\">named._Named.toStr</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"area0x\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">area0x</h3>\n  <p>Get the ellipsoid's surface area (<code>meter</code> <i>squared</i>), \n  more accurate for very <i>oblate</i> ellipsoids.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">area0x(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the ellipsoid's surface area (<code>meter</code> <i>squared</i>), more \naccurate for very <i>oblate</i> ellipsoids.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"area0\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">area0</h3>\n  <p>Get the ellipsoid's surface area (<code>meter</code> <i>squared</i>), \n  more accurate for very <i>oblate</i> ellipsoids.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">area0x(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the ellipsoid's surface area (<code>meter</code> <i>squared</i>), more \naccurate for very <i>oblate</i> ellipsoids.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"ellipsoid\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">ellipsoid</h3>\n  <p>Get this area's ellipsoid (<code>Ellipsoid[2]</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">ellipsoid(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get this area's ellipsoid (<code>Ellipsoid[2]</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"geodesic\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">geodesic</h3>\n  <p>Get this area's geodesic object (<code>Geodesic[Exact]</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">geodesic(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get this area's geodesic object (<code>Geodesic[Exact]</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"earth\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">earth</h3>\n  <p>Get this area's geodesic object (<code>Geodesic[Exact]</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">geodesic(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get this area's geodesic object (<code>Geodesic[Exact]</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"lat0\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">lat0</h3>\n  <p>Get the first point's latitude (<code>degrees</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">lat0(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the first point's latitude (<code>degrees</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"lat1\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">lat1</h3>\n  <p>Get the most recent point's latitude (<code>degrees</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">lat1(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the most recent point's latitude (<code>degrees</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"lon0\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">lon0</h3>\n  <p>Get the first point's longitude (<code>degrees</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">lon0(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the first point's longitude (<code>degrees</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"lon1\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">lon1</h3>\n  <p>Get the most recent point's longitude (<code>degrees</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">lon1(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the most recent point's longitude (<code>degrees</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"num\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">num</h3>\n  <p>Get the current number of points (<code>int</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">num(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the current number of points (<code>int</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"polyline\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">polyline</h3>\n  <p>Is this perimeter only (<code>bool</code>), area NAN?</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">polyline(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Is this perimeter only (<code>bool</code>), area NAN?\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"verbose\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">verbose</h3>\n  <p>Get the <code>verbose</code> option (<code>bool</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">verbose(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <code>verbose</code> option (<code>bool</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">verbose(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">verbose</span>)</span>\n        - Set the <code>verbose</code> option (<code>bool</code>) to print a message \nafter each method invokation.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.geodesicx.gxarea.PolygonArea-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.geodesicx.gxarea.PolygonArea</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.geodesicx-module.html\">Package&nbsp;geodesicx</a> ::\n        <a href=\"pygeodesy.geodesicx.gxarea-module.html\">Module&nbsp;gxarea</a> ::\n        Class&nbsp;PolygonArea\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.geodesicx.gxarea.PolygonArea-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class PolygonArea</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+            \n           |            \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+        \n               |        \n<a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+    \n                   |    \n   <a href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html\">GeodesicAreaExact</a> --+\n                       |\n                      <strong class=\"uidshort\">PolygonArea</strong>\n</pre>\n\n<hr />\n<p>For <code>geographiclib</code> compatibility, sub-class of <a \n  href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html\" \n  class=\"link\">GeodesicAreaExact</a>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geodesicx.gxarea.PolygonArea-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">earth</span>,\n        <span class=\"summary-sig-arg\">polyline</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      New <a href=\"pygeodesy.geodesicx.gxarea.PolygonArea-class.html\" \n      class=\"link\">PolygonArea</a> instance.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html\">GeodesicAreaExact</a></code></b>:\n      <code><a href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#AddEdge\">AddEdge</a></code>,\n      <code><a href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#AddPoint\">AddPoint</a></code>,\n      <code><a href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#Clear\">Clear</a></code>,\n      <code><a href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#Compute\">Compute</a></code>,\n      <code><a href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#Reset\">Reset</a></code>,\n      <code><a href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#TestEdge\">TestEdge</a></code>,\n      <code><a href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#TestPoint\">TestPoint</a></code>,\n      <code><a href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#toStr\">toStr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#others\">others</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#toRepr\">toRepr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html\">GeodesicAreaExact</a></code></b>:\n      <code><a href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#area0\">area0</a></code>,\n      <code><a href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#area0x\">area0x</a></code>,\n      <code><a href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#earth\">earth</a></code>,\n      <code><a href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#ellipsoid\">ellipsoid</a></code>,\n      <code><a href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#geodesic\">geodesic</a></code>,\n      <code><a href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#lat0\">lat0</a></code>,\n      <code><a href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#lat1\">lat1</a></code>,\n      <code><a href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#lon0\">lon0</a></code>,\n      <code><a href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#lon1\">lon1</a></code>,\n      <code><a href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#num\">num</a></code>,\n      <code><a href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#polyline\">polyline</a></code>,\n      <code><a href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html#verbose\">verbose</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">earth</span>,\n        <span class=\"sig-arg\">polyline</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.geodesicx.gxarea.PolygonArea-class.html\" \n  class=\"link\">PolygonArea</a> instance.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>earth</code></strong> - A geodesic (<a \n          href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html\" \n          class=\"link\">GeodesicExact</a>, <i>wrapped</i> \n          <code>Geodesic</code> or <a \n          href=\"pygeodesy.geodsolve.GeodesicSolve-class.html\" \n          class=\"link\">GeodesicSolve</a>).</li>\n        <li><strong class=\"pname\"><code>polyline</code></strong> - If <code>True</code>, compute the perimeter only, otherwise \n          perimeter and area (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.GeodesicError-class.html\">GeodesicError</a></strong></code> - Invalid <b><code>earth</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.geodesicx.gxbases-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.geodesicx.gxbases</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.geodesicx-module.html\">Package&nbsp;geodesicx</a> ::\n        Module&nbsp;gxbases\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.geodesicx.gxbases-module.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== MODULE DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Module gxbases</h1><p class=\"nomargin-top\"></p>\n<p>(INTERNAL) Private <a href=\"pygeodesy.geodesicx-module.html\" \n  class=\"link\">geodesicx</a> base class, functions and constants.</p>\n  <p>Copyright (C) <a href=\"mailto:Karney@Alum.MIT.edu\" \n  target=\"_top\">Charles Karney</a> (2008-2024) and licensed under the \n  MIT/X11 License.  For more information, see the <a \n  href=\"https://GeographicLib.SourceForge.io\" \n  target=\"_top\">GeographicLib</a> documentation.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Version:</strong>\n        25.06.01\n      </p>\n</div><!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.geodesicx.gxline-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.geodesicx.gxline</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.geodesicx-module.html\">Package&nbsp;geodesicx</a> ::\n        Module&nbsp;gxline\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.geodesicx.gxline-module.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== MODULE DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Module gxline</h1><p class=\"nomargin-top\"></p>\n<p>A pure Python version of <i>Karney</i>'s C++ class <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1GeodesicLineExact.html\"\n  target=\"_top\">GeodesicLineExact</a>.</p>\n  <p>Class <a href=\"pygeodesy.geodesicx.gx.GeodesicLineExact-class.html\" \n  class=\"link\">GeodesicLineExact</a> follows the naming, methods and return\n  values from class <code>GeodesicLine</code> from <i>Karney</i>'s Python \n  <a href=\"https://GeographicLib.SourceForge.io/1.52/python/index.html\" \n  target=\"_top\">geographiclib</a>.</p>\n  <p>Copyright (C) <a href=\"mailto:Karney@Alum.MIT.edu\" \n  target=\"_top\">Charles Karney</a> (2008-2023) and licensed under the \n  MIT/X11 License.  For more information, see the <a \n  href=\"https://GeographicLib.SourceForge.io\" \n  target=\"_top\">GeographicLib</a> documentation.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Version:</strong>\n        25.09.09\n      </p>\n</div><!-- ==================== CLASSES ==================== -->\n<a name=\"section-Classes\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Classes</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html\" class=\"summary-name\">_GeodesicLineExact</a><br />\n      (INTERNAL) Base class for <a \n        href=\"pygeodesy.geodesicx.gx.GeodesicLineExact-class.html\" \n        class=\"link\">GeodesicLineExact</a>.\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.geodesicx.gxline._GeodesicLineExact</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.geodesicx-module.html\">Package&nbsp;geodesicx</a> ::\n        <a href=\"pygeodesy.geodesicx.gxline-module.html\">Module&nbsp;gxline</a> ::\n        Class&nbsp;_GeodesicLineExact\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class _GeodesicLineExact</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+                \n           |                \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+            \n               |            \n<a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+        \n                   |        \n    <a href=\"pygeodesy.karney._CapsBase-class.html\">karney._CapsBase</a> --+    \n                       |    \n   gxbases._GeodesicBase --+\n                           |\n                          <strong class=\"uidshort\">_GeodesicLineExact</strong>\n</pre>\n\n<dl><dt>Known Subclasses:</dt>\n<dd>\n      <ul class=\"subclass-list\">\n<li><a href=\"pygeodesy.geodesicx.gx.GeodesicLineExact-class.html\">gx.GeodesicLineExact</a></li>  </ul>\n</dd></dl>\n\n<hr />\n<p>(INTERNAL) Base class for <a \n  href=\"pygeodesy.geodesicx.gx.GeodesicLineExact-class.html\" \n  class=\"link\">GeodesicLineExact</a>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">gX</span>,\n        <span class=\"summary-sig-arg\">lat1</span>,\n        <span class=\"summary-sig-arg\">lon1</span>,\n        <span class=\"summary-sig-arg\">azi1</span>,\n        <span class=\"summary-sig-arg\">caps</span>,\n        <span class=\"summary-sig-arg\">**name_</span>)</span><br />\n      (INTERNAL) New <code>[_]GeodesicLineExact</code> instance.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__del__\"></a><span class=\"summary-sig-name\">__del__</span>(<span class=\"summary-sig-arg\">self</span>)</span></td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#Arc\" class=\"summary-sig-name\">Arc</a>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Return the arc length to reference point 3 (<code>degrees</code> or \n      <code>NAN</code>).</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#ArcPosition\" class=\"summary-sig-name\">ArcPosition</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">a12</span>,\n        <span class=\"summary-sig-arg\">outmask</span>=<span class=\"summary-sig-default\">1929</span>)</span><br />\n      Find the position on the line given <b><code>a12</code></b>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#Distance\" class=\"summary-sig-name\">Distance</a>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Return the distance to reference point 3 (<code>meter</code> or \n      <code>NAN</code>).</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#Intersecant2\" class=\"summary-sig-name\">Intersecant2</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lat0</span>,\n        <span class=\"summary-sig-arg\">lon0</span>,\n        <span class=\"summary-sig-arg\">radius</span>,\n        <span class=\"summary-sig-arg\">tol</span>=<span class=\"summary-sig-default\">1.4901161193847656e-08</span>)</span><br />\n      Compute the intersection(s) of this geodesic line and a circle.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#PlumbTo\" class=\"summary-sig-name\">PlumbTo</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lat0</span>,\n        <span class=\"summary-sig-arg\">lon0</span>,\n        <span class=\"summary-sig-arg\">est</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">tol</span>=<span class=\"summary-sig-default\">1.4901161193847656e-08</span>)</span><br />\n      Compute the <i>perpendicular</i> intersection of this geodesic line \n      and a geodesic from the given point.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#Position\" class=\"summary-sig-name\">Position</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">s12</span>,\n        <span class=\"summary-sig-arg\">outmask</span>=<span class=\"summary-sig-default\">1929</span>)</span><br />\n      Find the position on the line given <b><code>s12</code></b>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#SetArc\" class=\"summary-sig-name\">SetArc</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">a13</span>)</span><br />\n      Set reference point 3 in terms relative to the first point.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#SetDistance\" class=\"summary-sig-name\">SetDistance</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">s13</span>)</span><br />\n      Set reference point 3 in terms relative to the first point.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#toStr\" class=\"summary-sig-name\">toStr</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">**prec_sep_name</span>)</span><br />\n      Return this <code>GeodesicLineExact</code> as string.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.karney._CapsBase-class.html\">karney._CapsBase</a></code></b>:\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#caps_\">caps_</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#others\">others</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#toRepr\">toRepr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS VARIABLES ==================== -->\n<a name=\"section-ClassVariables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Class Variables</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.karney._CapsBase-class.html\">karney._CapsBase</a></code></b>:\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#ALL\">ALL</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#AREA\">AREA</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#AZIMUTH\">AZIMUTH</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#DISTANCE\">DISTANCE</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#DISTANCE_IN\">DISTANCE_IN</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#EMPTY\">EMPTY</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#GEODESICSCALE\">GEODESICSCALE</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#LATITUDE\">LATITUDE</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#LINE_CAPS\">LINE_CAPS</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#LINE_OFF\">LINE_OFF</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#LONGITUDE\">LONGITUDE</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#LONG_UNROLL\">LONG_UNROLL</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#NONFINITONAN\">NONFINITONAN</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#REDUCEDLENGTH\">REDUCEDLENGTH</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#STANDARD\">STANDARD</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#STANDARD_LINE\">STANDARD_LINE</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#a1\" class=\"summary-name\">a1</a><br />\n      Get the <i>equatorial arc</i> (<code>degrees</code>), the arc length \n      between the northward equatorial crossing and the first point.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#equatorarc\" class=\"summary-name\">equatorarc</a><br />\n      Get the <i>equatorial arc</i> (<code>degrees</code>), the arc length \n      between the northward equatorial crossing and the first point.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#a13\" class=\"summary-name\">a13</a><br />\n      Get the arc length to reference point 3 (<code>degrees</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#azi0\" class=\"summary-name\">azi0</a><br />\n      Get the <i>equatorial azimuth</i>, the azimuth of this geodesic line \n      as it crosses the equator in a northward direction \n      (<code>degrees90</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#equatorazimuth\" class=\"summary-name\">equatorazimuth</a><br />\n      Get the <i>equatorial azimuth</i>, the azimuth of this geodesic line \n      as it crosses the equator in a northward direction \n      (<code>degrees90</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#azi0_sincos2\" class=\"summary-name\">azi0_sincos2</a><br />\n      Get the sine and cosine of the <i>equatorial azimuth</i> (2-tuple \n      <code>(sin, cos)</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#azi1\" class=\"summary-name\">azi1</a><br />\n      Get the azimuth at the first point (compass <code>degrees</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#azi1_sincos2\" class=\"summary-name\">azi1_sincos2</a><br />\n      Get the sine and cosine of the first point's azimuth (2-tuple \n      <code>(sin, cos)</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#geodesic\" class=\"summary-name\">geodesic</a><br />\n      Get the <i>exact</i> geodesic (<a \n      href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html\" \n      class=\"link\">GeodesicExact</a>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#lat1\" class=\"summary-name\">lat1</a><br />\n      Get the latitude of the first point (<code>degrees</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#lon1\" class=\"summary-name\">lon1</a><br />\n      Get the longitude of the first point (<code>degrees</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#s13\" class=\"summary-name\">s13</a><br />\n      Get the distance to reference point 3 (<code>meter</code> or \n      <code>NAN</code>).\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.karney._CapsBase-class.html\">karney._CapsBase</a></code></b>:\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#caps\">caps</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#debug\">debug</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">gX</span>,\n        <span class=\"sig-arg\">lat1</span>,\n        <span class=\"sig-arg\">lon1</span>,\n        <span class=\"sig-arg\">azi1</span>,\n        <span class=\"sig-arg\">caps</span>,\n        <span class=\"sig-arg\">**name_</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>(INTERNAL) New <code>[_]GeodesicLineExact</code> instance.</p>\n  <dl class=\"fields\">\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"Arc\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">Arc</span>&nbsp;(<span class=\"sig-arg\">self</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the arc length to reference point 3 (<code>degrees</code> or \n  <code>NAN</code>).</p>\n  <dl class=\"fields\">\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <a \n        href=\"pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#SetArc\"\n        class=\"link\">SetArc</a> and property <a \n        href=\"pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#a13\"\n        class=\"link\">a13</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"ArcPosition\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">ArcPosition</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">a12</span>,\n        <span class=\"sig-arg\">outmask</span>=<span class=\"sig-default\">1929</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Find the position on the line given <b><code>a12</code></b>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>a12</code></strong> - Spherical arc length from the first point to the second point \n          (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>outmask</code></strong> - Bit-or'ed combination of <a \n          href=\"pygeodesy.karney.Caps-class.html\" class=\"link\">Caps</a> \n          values specifying the quantities to be returned.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.karney.GDict-class.html\" \n          class=\"link\">GDict</a> with up to 12 items <code>lat1, lon1, \n          azi1, lat2, lon2, azi2, m12, a12, s12, M12, M21, S12</code> with \n          <code>lat1</code>, <code>lon1</code>, <code>azi1</code> and arc \n          length <code>a12</code> always included, except when \n          <code>a12=NAN</code>.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        By default, <code><b>outmask</b>=STANDARD</code>, meaning thc \n        <code>lat1</code>, <code>lon1</code>, <code>azi1</code>, \n        <code>lat2</code>, <code>lon2</code>, <code>azi2</code>, \n        <code>s12</code> and <code>a12</code> entries are returned, except \n        when <code>a12=NAN</code>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"Distance\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">Distance</span>&nbsp;(<span class=\"sig-arg\">self</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the distance to reference point 3 (<code>meter</code> or \n  <code>NAN</code>).</p>\n  <dl class=\"fields\">\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <a \n        href=\"pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#SetDistance\"\n        class=\"link\">SetDistance</a> and property <a \n        href=\"pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#s13\"\n        class=\"link\">s13</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"Intersecant2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">Intersecant2</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lat0</span>,\n        <span class=\"sig-arg\">lon0</span>,\n        <span class=\"sig-arg\">radius</span>,\n        <span class=\"sig-arg\">tol</span>=<span class=\"sig-default\">1.4901161193847656e-08</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the intersection(s) of this geodesic line and a circle.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat0</code></strong> - Latitude of the circle center (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lon0</code></strong> - Longitude of the circle center (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>radius</code></strong> - Radius of the circle (<code>meter</code>, conventionally).</li>\n        <li><strong class=\"pname\"><code>tol</code></strong> - Convergence tolerance (<code>scalar</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>2-Tuple <code>(P, Q)</code> with both intersections (representing\n          a geodesic chord), each a <a \n          href=\"pygeodesy.karney.GDict-class.html\" class=\"link\">GDict</a> \n          from method <a \n          href=\"pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#Position\"\n          class=\"link\">Position</a> extended to 14 items by <code>lon0, \n          lat0, azi0, a02, s02, at</code> with the circle center \n          <code>lat0</code>, <code>lon0</code>, azimuth <code>azi0</code> \n          at, distance <code>a02</code> in <code>degrees</code> and \n          <code>s02</code> in <code>meter</code> along the geodesic from \n          the circle center to the intersection <code>lat2</code>, \n          <code>lon2</code> and the angle <code>at</code> between the \n          geodesic and this line at the intersection.  The geodesic azimuth\n          at the intersection is <code>(at + azi2)</code>.  If this \n          geodesic line is tangential to the circle, both points are the \n          same <a href=\"pygeodesy.karney.GDict-class.html\" \n          class=\"link\">GDict</a> instance.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.IntersectionError-class.html\">IntersectionError</a></strong></code> - The circle and this geodesic line do not intersect, no \n        <i>perpencular</i> geodetic intersection or no convergence.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.UnitError-class.html\">UnitError</a></strong></code> - Invalid <b><code>radius</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"PlumbTo\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">PlumbTo</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lat0</span>,\n        <span class=\"sig-arg\">lon0</span>,\n        <span class=\"sig-arg\">est</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">tol</span>=<span class=\"sig-default\">1.4901161193847656e-08</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the <i>perpendicular</i> intersection of this geodesic line \n  and a geodesic from the given point.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat0</code></strong> - Latitude of the point (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lon0</code></strong> - Longitude of the point (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>est</code></strong> - Optional, initial estimate for the distance <code>s12</code> of \n          the intersection <i>along</i> this geodesic line \n          (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>tol</code></strong> - Convergence tolerance (C(meter)).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The intersection point on this geodesic line, a <a \n          href=\"pygeodesy.karney.GDict-class.html\" class=\"link\">GDict</a> \n          from method <a \n          href=\"pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#Position\"\n          class=\"link\">Position</a> extended to 14 items <code>lat1, lon1, \n          azi1, lat2, lon2, azi2, a12, s12, lat0, lon0, azi0, a02, s02, \n          at</code> with distance <code>a02</code> in <code>degrees</code> \n          and <code>s02</code> in <code>meter</code> between the given \n          <code>lat0, lon0</code> point and the intersection <code>lat2, \n          lon2</code>, azimuth <code>azi0</code> at the given point and \n          <code>at</code> the (perpendicular) angle between the geodesic \n          and this line at the intersection.  The geodesic azimuth at the \n          intersection is <code>(at + azi2)</code>.  See method <a \n          href=\"pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#Position\"\n          class=\"link\">Position</a> for further details.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Methods <code>Intersecant2</code>, <code>Intersection</code> and \n        <code>Position</code>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"Position\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">Position</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">s12</span>,\n        <span class=\"sig-arg\">outmask</span>=<span class=\"sig-default\">1929</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Find the position on the line given <b><code>s12</code></b>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>s12</code></strong> - Distance from this this line's first point (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>outmask</code></strong> - Bit-or'ed combination of <a \n          href=\"pygeodesy.karney.Caps-class.html\" class=\"link\">Caps</a> \n          values specifying the quantities to be returned.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.karney.GDict-class.html\" \n          class=\"link\">GDict</a> with up to 12 items <code>lat1, lon1, \n          azi1, lat2, lon2, azi2, m12, a12, s12, M12, M21, S12</code> with \n          <code>lat1</code>, <code>lon1</code>, <code>azi1</code> and arc \n          length <code>a12</code> always included, except when \n          <code>a12=NAN</code>.</dd>\n  </dl>\n<div class=\"fields\">      <strong>Notes:</strong>\n      <ul class=\"nomargin-top\">\n        <li>\n        By default, <code><b>outmask</b>=STANDARD</code>, meaning thc \n        <code>lat1</code>, <code>lon1</code>, <code>azi1</code>, \n        <code>lat2</code>, <code>lon2</code>, <code>azi2</code>, \n        <code>s12</code> and <code>a12</code> entries are returned, except \n        when <code>a12=NAN</code>.\n        </li>\n        <li>\n        This <a href=\"pygeodesy.geodesicx.gx.GeodesicLineExact-class.html\" \n        class=\"link\">GeodesicLineExact</a> instance must have been \n        constructed with capability <code>Caps.DISTANCE_IN</code> set.\n        </li>\n      </ul>\n</div></td></tr></table>\n</div>\n<a name=\"SetArc\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">SetArc</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">a13</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Set reference point 3 in terms relative to the first point.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>a13</code></strong> - Spherical arc length from the first to the reference point \n          (<code>degrees</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The distance <code>s13</code> (<code>meter</code>) between the \n          first and the reference point or <code>NAN</code>.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"SetDistance\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">SetDistance</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">s13</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Set reference point 3 in terms relative to the first point.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>s13</code></strong> - Distance from the first to the reference point \n          (<code>meter</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The arc length <code>a13</code> (<code>degrees</code>) between \n          the first and the reference point or <code>NAN</code>.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toStr\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toStr</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">**prec_sep_name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return this <code>GeodesicLineExact</code> as string.</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd><code>GeodesicLineExact</code> (<code>str</code>).</dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.named._Named-class.html#toStr\">named._Named.toStr</a>\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#toStr\" \n        class=\"link\">Ellipsoid.toStr</a> for further details.\n      </p>\n</div></td></tr></table>\n</div>\n<br />\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"a1\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">a1</h3>\n  <p>Get the <i>equatorial arc</i> (<code>degrees</code>), the arc length \n  between the northward equatorial crossing and the first point.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">a1(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <i>equatorial arc</i> (<code>degrees</code>), the arc length \nbetween the northward equatorial crossing and the first point.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"equatorarc\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">equatorarc</h3>\n  <p>Get the <i>equatorial arc</i> (<code>degrees</code>), the arc length \n  between the northward equatorial crossing and the first point.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">a1(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <i>equatorial arc</i> (<code>degrees</code>), the arc length \nbetween the northward equatorial crossing and the first point.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"a13\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">a13</h3>\n  <p>Get the arc length to reference point 3 (<code>degrees</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">a13(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the arc length to reference point 3 (<code>degrees</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Methods <a \n        href=\"pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#Arc\"\n        class=\"link\">Arc</a> and <a \n        href=\"pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#SetArc\"\n        class=\"link\">SetArc</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"azi0\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">azi0</h3>\n  <p>Get the <i>equatorial azimuth</i>, the azimuth of this geodesic line \n  as it crosses the equator in a northward direction \n  (<code>degrees90</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">azi0(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <i>equatorial azimuth</i>, the azimuth of this geodesic line as it \ncrosses the equator in a northward direction (<code>degrees90</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"equatorazimuth\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">equatorazimuth</h3>\n  <p>Get the <i>equatorial azimuth</i>, the azimuth of this geodesic line \n  as it crosses the equator in a northward direction \n  (<code>degrees90</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">azi0(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <i>equatorial azimuth</i>, the azimuth of this geodesic line as it \ncrosses the equator in a northward direction (<code>degrees90</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"azi0_sincos2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">azi0_sincos2</h3>\n  <p>Get the sine and cosine of the <i>equatorial azimuth</i> (2-tuple \n  <code>(sin, cos)</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">azi0_sincos2(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the sine and cosine of the <i>equatorial azimuth</i> (2-tuple \n<code>(sin, cos)</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"azi1\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">azi1</h3>\n  <p>Get the azimuth at the first point (compass <code>degrees</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">azi1(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the azimuth at the first point (compass <code>degrees</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"azi1_sincos2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">azi1_sincos2</h3>\n  <p>Get the sine and cosine of the first point's azimuth (2-tuple \n  <code>(sin, cos)</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">azi1_sincos2(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the sine and cosine of the first point's azimuth (2-tuple <code>(sin, \ncos)</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"geodesic\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">geodesic</h3>\n  <p>Get the <i>exact</i> geodesic (<a \n  href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html\" \n  class=\"link\">GeodesicExact</a>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">geodesic(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <i>exact</i> geodesic (<a \nhref=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html\" \nclass=\"link\">GeodesicExact</a>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"lat1\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">lat1</h3>\n  <p>Get the latitude of the first point (<code>degrees</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">lat1(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the latitude of the first point (<code>degrees</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"lon1\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">lon1</h3>\n  <p>Get the longitude of the first point (<code>degrees</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">lon1(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the longitude of the first point (<code>degrees</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"s13\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">s13</h3>\n  <p>Get the distance to reference point 3 (<code>meter</code> or \n  <code>NAN</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">s13(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the distance to reference point 3 (<code>meter</code> or \n<code>NAN</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Methods <a \n        href=\"pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#Distance\"\n        class=\"link\">Distance</a> and <a \n        href=\"pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html#SetDistance\"\n        class=\"link\">SetDistance</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.geodsolve-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.geodsolve</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        Module&nbsp;geodsolve\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.geodsolve-module.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== MODULE DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Module geodsolve</h1><p class=\"nomargin-top\"></p>\n<p>Wrapper to invoke <i>Karney</i>'s <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/GeodSolve.1.html\" \n  target=\"_top\">GeodSolve</a> utility as an (exact) geodesic, but intended \n  <i>mainly for testing purposes</i>.</p>\n  <p>Set env variable <code>PYGEODESY_GEODSOLVE</code> to the (fully \n  qualified) path of the <code>GeodSolve</code> executable or use property \n  <a href=\"pygeodesy.geodsolve._GeodesicSolveBase-class.html#GeodSolve\" \n  class=\"link\">GeodesicSolve.GeodSolve</a>.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Version:</strong>\n        25.12.31\n      </p>\n</div><!-- ==================== CLASSES ==================== -->\n<a name=\"section-Classes\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Classes</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geodsolve.GeodSolve12Tuple-class.html\" class=\"summary-name\">GeodSolve12Tuple</a><br />\n      12-Tuple <code>(lat1, lon1, azi1, lat2, lon2, azi2, s12, a12, m12, \n        M12, M21, S12)</code> with angles <code>lat1</code>, \n        <code>lon1</code>, <code>azi1</code>, <code>lat2</code>, \n        <code>lon2</code> and <code>azi2</code> and arc <code>a12</code> \n        all in <code>degrees</code>, initial <code>azi1</code> and final \n        <code>azi2</code> forward azimuths in bearings, degrees from North,\n        distance <code>s12</code> and reduced length <code>m12</code> in \n        <code>meter</code>, area <code>S12</code> in <code>meter</code> \n        <i>squared</i> and geodesic scale factors <code>M12</code> and \n        <code>M21</code>, both <code>scalar</code>, see <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/GeodSolve.1.html\"\n        target=\"_top\">GeodSolve</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geodsolve._GeodesicSolveBase-class.html\" class=\"summary-name\">_GeodesicSolveBase</a><br />\n      (INTERNAL) Base class for <a \n        href=\"pygeodesy.geodsolve.GeodesicSolve-class.html\" \n        class=\"link\">GeodesicSolve</a> and <a \n        href=\"pygeodesy.geodsolve.GeodesicLineSolve-class.html\" \n        class=\"link\">GeodesicLineSolve</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geodsolve.GeodesicSolve-class.html\" class=\"summary-name\">GeodesicSolve</a><br />\n      Wrapper to invoke <i>Karney</i>'s <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/GeodSolve.1.html\"\n        target=\"_top\">GeodSolve</a> as an <code>Exact</code> version of \n        <i>Karney</i>'s Python class <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/python/code.html#geographiclib.geodesic.Geodesic\"\n        target=\"_top\">Geodesic</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geodsolve.GeodesicLineSolve-class.html\" class=\"summary-name\">GeodesicLineSolve</a><br />\n      Wrapper to invoke <i>Karney</i>'s <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/GeodSolve.1.html\"\n        target=\"_top\">GeodSolve</a> as an <code>Exact</code> version of \n        <i>Karney</i>'s Python class <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/python/code.html#geographiclib.geodesicline.GeodesicLine\"\n        target=\"_top\">GeodesicLine</a>.\n    </td>\n  </tr>\n</table>\n<!-- ==================== VARIABLES ==================== -->\n<a name=\"section-Variables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Variables</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"__all__\"></a><span class=\"summary-name\">__all__</span> = <code title=\"_ALL_LAZY.geodsolve\">_ALL_LAZY.geodsolve</code>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.geodsolve.GeodSolve12Tuple-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.geodsolve.GeodSolve12Tuple</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.geodsolve-module.html\">Module&nbsp;geodsolve</a> ::\n        Class&nbsp;GeodSolve12Tuple\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.geodsolve.GeodSolve12Tuple-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class GeodSolve12Tuple</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n   object --+            \n            |            \n        tuple --+        \n                |        \n   object --+   |        \n            |   |        \n <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+        \n                |        \n<a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a> --+    \n                    |    \n       karney._GTuple --+\n                        |\n                       <strong class=\"uidshort\">GeodSolve12Tuple</strong>\n</pre>\n\n<hr />\n<p>12-Tuple <code>(lat1, lon1, azi1, lat2, lon2, azi2, s12, a12, m12, \n  M12, M21, S12)</code> with angles <code>lat1</code>, <code>lon1</code>, \n  <code>azi1</code>, <code>lat2</code>, <code>lon2</code> and \n  <code>azi2</code> and arc <code>a12</code> all in <code>degrees</code>, \n  initial <code>azi1</code> and final <code>azi2</code> forward azimuths in\n  bearings, degrees from North, distance <code>s12</code> and reduced \n  length <code>m12</code> in <code>meter</code>, area <code>S12</code> in \n  <code>meter</code> <i>squared</i> and geodesic scale factors \n  <code>M12</code> and <code>M21</code>, both <code>scalar</code>, see <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/GeodSolve.1.html\" \n  target=\"_top\">GeodSolve</a>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>karney._GTuple</code></b>:\n      <code>toGDict</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__delattr__\">__delattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__getattr__\">__getattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__setattr__\">__setattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#items\">items</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iteritems\">iteritems</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iterunits\">iterunits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#reUnit\">reUnit</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toUnits\">toUnits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>tuple</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__eq__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__iter__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__rmul__</code>,\n      <code>count</code>,\n      <code>index</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__new__\">__new__</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.geodsolve.GeodesicLineSolve-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.geodsolve.GeodesicLineSolve</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.geodsolve-module.html\">Module&nbsp;geodsolve</a> ::\n        Class&nbsp;GeodesicLineSolve\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.geodsolve.GeodesicLineSolve-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class GeodesicLineSolve</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+                                \n           |                                \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+                            \n               |                            \n<a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+                        \n                   |                        \n    <a href=\"pygeodesy.karney._CapsBase-class.html\">karney._CapsBase</a> --+                    \n                       |                    \n<a href=\"pygeodesy.solveBase._SolveCapsBase-class.html\">solveBase._SolveCapsBase</a> --+                \n                           |                \n        <a href=\"pygeodesy.solveBase._SolveBase-class.html\">solveBase._SolveBase</a> --+            \n                               |            \n           solveBase._Solve3Base --+        \n                                   |        \n           <a href=\"pygeodesy.solveBase._SolveGDictBase-class.html\">solveBase._SolveGDictBase</a> --+    \n                                       |    \n                      <a href=\"pygeodesy.geodsolve._GeodesicSolveBase-class.html\">_GeodesicSolveBase</a> --+\n                                           |\n  object --+                               |\n           |                               |\n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+                           |\n               |                           |\n<a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+                       |\n                   |                       |\n    <a href=\"pygeodesy.karney._CapsBase-class.html\">karney._CapsBase</a> --+                   |\n                       |                   |\n<a href=\"pygeodesy.solveBase._SolveCapsBase-class.html\">solveBase._SolveCapsBase</a> --+               |\n                           |               |\n        <a href=\"pygeodesy.solveBase._SolveBase-class.html\">solveBase._SolveBase</a> --+           |\n                               |           |\n           solveBase._Solve3Base --+       |\n                                   |       |\n           <a href=\"pygeodesy.solveBase._SolveGDictBase-class.html\">solveBase._SolveGDictBase</a> --+   |\n                                       |   |\n           <a href=\"pygeodesy.solveBase._SolveGDictLineBase-class.html\">solveBase._SolveGDictLineBase</a> --+\n                                           |\n                                          <strong class=\"uidshort\">GeodesicLineSolve</strong>\n</pre>\n\n<hr />\n<p>Wrapper to invoke <i>Karney</i>'s <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/GeodSolve.1.html\" \n  target=\"_top\">GeodSolve</a> as an <code>Exact</code> version of \n  <i>Karney</i>'s Python class <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/python/code.html#geographiclib.geodesicline.GeodesicLine\"\n  target=\"_top\">GeodesicLine</a>.</p>\n\n<hr />\n<div class=\"fields\">      <strong>Notes:</strong>\n      <ul class=\"nomargin-top\">\n        <li>\n        Use property <code>GeodSolve</code> or env variable \n        <code>PYGEODESY_GEODSOLVE</code> to specify the (fully qualified) \n        path to the <code>GeodSolve</code> executable.\n        </li>\n        <li>\n        This <code>geodesic</code> is intended <i>for testing purposes \n        only</i>, it invokes the <code>GeodSolve</code> executable for \n        <i>every</i> method call.\n        </li>\n      </ul>\n</div><!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geodsolve.GeodesicLineSolve-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">geodesic</span>,\n        <span class=\"summary-sig-arg\">lat1</span>,\n        <span class=\"summary-sig-arg\">lon1</span>,\n        <span class=\"summary-sig-arg\">azi1</span>,\n        <span class=\"summary-sig-arg\">caps</span>=<span class=\"summary-sig-default\">32671</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      New <a href=\"pygeodesy.geodsolve.GeodesicLineSolve-class.html\" \n      class=\"link\">GeodesicLineSolve</a> instance, allowing points to be \n      found along a geodesic starting at <code>(<b>lat1</b>, \n      <b>lon1</b>)</code> with azimuth <b><code>azi1</code></b>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geodsolve.GeodesicLineSolve-class.html#Arc\" class=\"summary-sig-name\">Arc</a>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Return the arc length to reference point 3 (<code>degrees</code> or \n      <code>NAN</code>).</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geodsolve.GeodesicLineSolve-class.html#ArcPosition\" class=\"summary-sig-name\">ArcPosition</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">a12</span>,\n        <span class=\"summary-sig-arg\">outmask</span>=<span class=\"summary-sig-default\">1929</span>)</span><br />\n      Find the position on the line given <b><code>a12</code></b>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"Distance\"></a><span class=\"summary-sig-name\">Distance</span>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Return the distance to reference point 3 (<code>meter</code> or \n      <code>NAN</code>).</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"Intersecant2\"></a><span class=\"summary-sig-name\">Intersecant2</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lat0</span>,\n        <span class=\"summary-sig-arg\">lon0</span>,\n        <span class=\"summary-sig-arg\">radius</span>,\n        <span class=\"summary-sig-arg\">**kwds</span>)</span><br />\n      <b>Not implemented</b>, throws a <code>NotImplementedError</code> \n      always.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"PlumbTo\"></a><span class=\"summary-sig-name\">PlumbTo</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lat0</span>,\n        <span class=\"summary-sig-arg\">lon0</span>,\n        <span class=\"summary-sig-arg\">**kwds</span>)</span><br />\n      <b>Not implemented</b>, throws a <code>NotImplementedError</code> \n      always.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geodsolve.GeodesicLineSolve-class.html#Position\" class=\"summary-sig-name\">Position</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">s12</span>,\n        <span class=\"summary-sig-arg\">outmask</span>=<span class=\"summary-sig-default\">1929</span>)</span><br />\n      Find the position on the line given at distance \n      <b><code>s12</code></b>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geodsolve.GeodesicLineSolve-class.html#SetArc\" class=\"summary-sig-name\">SetArc</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">a13</span>)</span><br />\n      Set reference point 3 in terms relative to the first point.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geodsolve.GeodesicLineSolve-class.html#SetDistance\" class=\"summary-sig-name\">SetDistance</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">s13</span>)</span><br />\n      Set reference point 3 in terms relative to the first point.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geodsolve.GeodesicLineSolve-class.html#toStr\" class=\"summary-sig-name\">toStr</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">**prec_sep_other</span>)</span><br />\n      Return this <code>GeodesicLineSolve</code> as string.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.solveBase._SolveGDictBase-class.html\">solveBase._SolveGDictBase</a></code></b>:\n      <code><a href=\"pygeodesy.solveBase._SolveGDictBase-class.html#ArcDirect\">ArcDirect</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveGDictBase-class.html#Direct\">Direct</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveGDictBase-class.html#Inverse\">Inverse</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveGDictBase-class.html#Inverse1\">Inverse1</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html\">solveBase._SolveCapsBase</a></code></b>:\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#invokat\">invokat</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#invoke\">invoke</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#linelimit\">linelimit</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.karney._CapsBase-class.html\">karney._CapsBase</a></code></b>:\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#caps_\">caps_</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#others\">others</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#toRepr\">toRepr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS VARIABLES ==================== -->\n<a name=\"section-ClassVariables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Class Variables</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.karney._CapsBase-class.html\">karney._CapsBase</a></code></b>:\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#ALL\">ALL</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#AREA\">AREA</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#AZIMUTH\">AZIMUTH</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#DISTANCE\">DISTANCE</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#DISTANCE_IN\">DISTANCE_IN</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#EMPTY\">EMPTY</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#GEODESICSCALE\">GEODESICSCALE</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#LATITUDE\">LATITUDE</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#LINE_CAPS\">LINE_CAPS</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#LINE_OFF\">LINE_OFF</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#LONGITUDE\">LONGITUDE</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#LONG_UNROLL\">LONG_UNROLL</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#NONFINITONAN\">NONFINITONAN</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#REDUCEDLENGTH\">REDUCEDLENGTH</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#STANDARD\">STANDARD</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#STANDARD_LINE\">STANDARD_LINE</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geodsolve.GeodesicLineSolve-class.html#a13\" class=\"summary-name\">a13</a><br />\n      Get the arc length to reference point 3 (<code>degrees</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geodsolve.GeodesicLineSolve-class.html#azi1\" class=\"summary-name\">azi1</a><br />\n      Get the azimuth at the first point (compass <code>degrees</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geodsolve.GeodesicLineSolve-class.html#azi12\" class=\"summary-name\">azi12</a><br />\n      Get the azimuth at the first point (compass <code>degrees</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geodsolve.GeodesicLineSolve-class.html#azi1_sincos2\" class=\"summary-name\">azi1_sincos2</a><br />\n      Get the sine and cosine of the first point's azimuth (2-tuple \n      <code>(sin, cos)</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geodsolve.GeodesicLineSolve-class.html#azi12_sincos2\" class=\"summary-name\">azi12_sincos2</a><br />\n      Get the sine and cosine of the first point's azimuth (2-tuple \n      <code>(sin, cos)</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geodsolve.GeodesicLineSolve-class.html#geodesic\" class=\"summary-name\">geodesic</a><br />\n      Get the geodesic (<a \n      href=\"pygeodesy.geodsolve.GeodesicSolve-class.html\" \n      class=\"link\">GeodesicSolve</a>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geodsolve.GeodesicLineSolve-class.html#s13\" class=\"summary-name\">s13</a><br />\n      Get the distance to reference point 3 (<code>meter</code> or \n      <code>NAN</code>).\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.geodsolve._GeodesicSolveBase-class.html\">_GeodesicSolveBase</a></code></b>:\n      <code><a href=\"pygeodesy.geodsolve._GeodesicSolveBase-class.html#GeodSolve\">GeodSolve</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.solveBase._SolveGDictLineBase-class.html\">solveBase._SolveGDictLineBase</a></code></b>:\n      <code><a href=\"pygeodesy.solveBase._SolveGDictLineBase-class.html#datum\">datum</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveGDictLineBase-class.html#ellipsoid\">ellipsoid</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveGDictLineBase-class.html#lat1\">lat1</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveGDictLineBase-class.html#lon1\">lon1</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.solveBase._SolveBase-class.html\">solveBase._SolveBase</a></code></b>:\n      <code><a href=\"pygeodesy.solveBase._SolveBase-class.html#reverse2\">reverse2</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveBase-class.html#unroll\">unroll</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html\">solveBase._SolveCapsBase</a></code></b>:\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#Exact\">Exact</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#a\">a</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#b\">b</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#f\">f</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#flattening\">flattening</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#invokation\">invokation</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#prec\">prec</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#status\">status</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#verbose\">verbose</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#version\">version</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.karney._CapsBase-class.html\">karney._CapsBase</a></code></b>:\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#caps\">caps</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#debug\">debug</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">geodesic</span>,\n        <span class=\"sig-arg\">lat1</span>,\n        <span class=\"sig-arg\">lon1</span>,\n        <span class=\"sig-arg\">azi1</span>,\n        <span class=\"sig-arg\">caps</span>=<span class=\"sig-default\">32671</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.geodsolve.GeodesicLineSolve-class.html\" \n  class=\"link\">GeodesicLineSolve</a> instance, allowing points to be found \n  along a geodesic starting at <code>(<b>lat1</b>, <b>lon1</b>)</code> with\n  azimuth <b><code>azi1</code></b>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>geodesic</code></strong> - The geodesic to use (<a \n          href=\"pygeodesy.geodsolve.GeodesicSolve-class.html\" \n          class=\"link\">GeodesicSolve</a>).</li>\n        <li><strong class=\"pname\"><code>lat1</code></strong> - Latitude of the first point (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lon1</code></strong> - Longitude of the first point (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>azi1</code></strong> - Azimuth at the first points (compass <code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>caps</code></strong> - Bit-or'ed combination of <a \n          href=\"pygeodesy.karney.Caps-class.html\" class=\"link\">Caps</a> \n          values specifying the capabilities the <a \n          href=\"pygeodesy.geodsolve.GeodesicLineSolve-class.html\" \n          class=\"link\">GeodesicLineSolve</a> instance should possess, \n          <code><b>caps</b>=Caps.ALL</code> always.  Include \n          <code>Caps.LINE_OFF</code> if updates to the \n          <b><code>geodesic</code></b> should <i>not be reflected</i> in \n          this <a href=\"pygeodesy.geodsolve.GeodesicLineSolve-class.html\" \n          class=\"link\">GeodesicLineSolve</a> instance.</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.GeodesicError-class.html\">GeodesicError</a></strong></code> - Invalid path for the <code>GeodSolve</code> executable or isn't the\n        <code>GeodSolve</code> executable, see property \n        <code>geodesic.GeodSolve</code>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>geodesic</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"Arc\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">Arc</span>&nbsp;(<span class=\"sig-arg\">self</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the arc length to reference point 3 (<code>degrees</code> or \n  <code>NAN</code>).</p>\n  <dl class=\"fields\">\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <a \n        href=\"pygeodesy.geodsolve.GeodesicLineSolve-class.html#SetArc\" \n        class=\"link\">SetArc</a> and property <a \n        href=\"pygeodesy.geodsolve.GeodesicLineSolve-class.html#a13\" \n        class=\"link\">a13</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"ArcPosition\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">ArcPosition</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">a12</span>,\n        <span class=\"sig-arg\">outmask</span>=<span class=\"sig-default\">1929</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Find the position on the line given <b><code>a12</code></b>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>a12</code></strong> - Spherical arc length from the first point to the second point \n          (<code>degrees</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <code>GDict</code> with 12 items <code>lat1, lon1, azi1, lat2, \n          lon2, azi2, m12, a12, s12, M12, M21, S12</code>.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"Position\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">Position</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">s12</span>,\n        <span class=\"sig-arg\">outmask</span>=<span class=\"sig-default\">1929</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Find the position on the line given at distance \n  <b><code>s12</code></b>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>s12</code></strong> - Distance from the first point to the second (<code>meter</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <code>GDict</code> with 12 items <code>lat1, lon1, azi1, lat2, \n          lon2, azi2, m12, a12, s12, M12, M21, S12</code>, possibly \n          <code>a12=NAN</code>.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"SetArc\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">SetArc</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">a13</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Set reference point 3 in terms relative to the first point.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>a13</code></strong> - Spherical arc length from the first to the reference point \n          (<code>degrees</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The distance <code>s13</code> (<code>meter</code>) between the \n          first and the reference point or <code>NAN</code>.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"SetDistance\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">SetDistance</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">s13</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Set reference point 3 in terms relative to the first point.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>s13</code></strong> - Distance from the first to the reference point \n          (<code>meter</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The arc length <code>a13</code> (<code>degrees</code>) between \n          the first and the reference point or <code>NAN</code>.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toStr\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toStr</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">**prec_sep_other</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return this <code>GeodesicLineSolve</code> as string.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>prec_sep</code></strong> - See <a href=\"pygeodesy.solveBase._SolveBase-class.html#toStr\" \n          class=\"link\">toStr</a>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>GeodesicLineSolve items (<code>str</code>).</dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.named._Named-class.html#toStr\">named._Named.toStr</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"a13\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">a13</h3>\n  <p>Get the arc length to reference point 3 (<code>degrees</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">a13(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the arc length to reference point 3 (<code>degrees</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Methods <a \n        href=\"pygeodesy.geodsolve.GeodesicLineSolve-class.html#Arc\" \n        class=\"link\">Arc</a> and <a \n        href=\"pygeodesy.geodsolve.GeodesicLineSolve-class.html#SetArc\" \n        class=\"link\">SetArc</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"azi1\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">azi1</h3>\n  <p>Get the azimuth at the first point (compass <code>degrees</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">azi1(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the azimuth at the first point (compass <code>degrees</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"azi12\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">azi12</h3>\n  <p>Get the azimuth at the first point (compass <code>degrees</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">azi1(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the azimuth at the first point (compass <code>degrees</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"azi1_sincos2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">azi1_sincos2</h3>\n  <p>Get the sine and cosine of the first point's azimuth (2-tuple \n  <code>(sin, cos)</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">azi1_sincos2(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the sine and cosine of the first point's azimuth (2-tuple <code>(sin, \ncos)</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"azi12_sincos2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">azi12_sincos2</h3>\n  <p>Get the sine and cosine of the first point's azimuth (2-tuple \n  <code>(sin, cos)</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">azi1_sincos2(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the sine and cosine of the first point's azimuth (2-tuple <code>(sin, \ncos)</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"geodesic\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">geodesic</h3>\n  <p>Get the geodesic (<a \n  href=\"pygeodesy.geodsolve.GeodesicSolve-class.html\" \n  class=\"link\">GeodesicSolve</a>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">geodesic(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the geodesic (<a href=\"pygeodesy.geodsolve.GeodesicSolve-class.html\" \nclass=\"link\">GeodesicSolve</a>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"s13\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">s13</h3>\n  <p>Get the distance to reference point 3 (<code>meter</code> or \n  <code>NAN</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">s13(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the distance to reference point 3 (<code>meter</code> or \n<code>NAN</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Methods <a \n        href=\"pygeodesy.geodsolve.GeodesicLineSolve-class.html#Distance\" \n        class=\"link\">Distance</a> and <a \n        href=\"pygeodesy.geodsolve.GeodesicLineSolve-class.html#SetDistance\"\n        class=\"link\">SetDistance</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.geodsolve.GeodesicSolve-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.geodsolve.GeodesicSolve</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.geodsolve-module.html\">Module&nbsp;geodsolve</a> ::\n        Class&nbsp;GeodesicSolve\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.geodsolve.GeodesicSolve-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class GeodesicSolve</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+                                \n           |                                \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+                            \n               |                            \n<a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+                        \n                   |                        \n    <a href=\"pygeodesy.karney._CapsBase-class.html\">karney._CapsBase</a> --+                    \n                       |                    \n<a href=\"pygeodesy.solveBase._SolveCapsBase-class.html\">solveBase._SolveCapsBase</a> --+                \n                           |                \n        <a href=\"pygeodesy.solveBase._SolveBase-class.html\">solveBase._SolveBase</a> --+            \n                               |            \n           solveBase._Solve3Base --+        \n                                   |        \n           <a href=\"pygeodesy.solveBase._SolveGDictBase-class.html\">solveBase._SolveGDictBase</a> --+    \n                                       |    \n                      <a href=\"pygeodesy.geodsolve._GeodesicSolveBase-class.html\">_GeodesicSolveBase</a> --+\n                                           |\n                                          <strong class=\"uidshort\">GeodesicSolve</strong>\n</pre>\n\n<hr />\n<p>Wrapper to invoke <i>Karney</i>'s <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/GeodSolve.1.html\" \n  target=\"_top\">GeodSolve</a> as an <code>Exact</code> version of \n  <i>Karney</i>'s Python class <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/python/code.html#geographiclib.geodesic.Geodesic\"\n  target=\"_top\">Geodesic</a>.</p>\n\n<hr />\n<div class=\"fields\">      <strong>Notes:</strong>\n      <ul class=\"nomargin-top\">\n        <li>\n        Use property <code>GeodSolve</code> or env variable \n        <code>PYGEODESY_GEODSOLVE</code> to specify the (fully qualified) \n        path to the <code>GeodSolve</code> executable.\n        </li>\n        <li>\n        This <code>geodesic</code> is intended <i>for testing purposes \n        only</i>, it invokes the <code>GeodSolve</code> executable for \n        <i>every</i> method call.\n        </li>\n      </ul>\n</div><!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geodsolve.GeodesicSolve-class.html#Area\" class=\"summary-sig-name\">Area</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">polyline</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Set up a <a \n      href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html\" \n      class=\"link\">GeodesicAreaExact</a> to compute area and perimeter of a\n      polygon.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geodsolve.GeodesicSolve-class.html#Polygon\" class=\"summary-sig-name\">Polygon</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">polyline</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Set up a <a \n      href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html\" \n      class=\"link\">GeodesicAreaExact</a> to compute area and perimeter of a\n      polygon.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geodsolve.GeodesicSolve-class.html#Direct3\" class=\"summary-sig-name\">Direct3</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lat1</span>,\n        <span class=\"summary-sig-arg\">lon1</span>,\n        <span class=\"summary-sig-arg\">azi1</span>,\n        <span class=\"summary-sig-arg\">s12</span>)</span><br />\n      Return the destination lat, lon and reverse azimuth (final bearing) \n      in <code>degrees</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geodsolve.GeodesicSolve-class.html#DirectLine\" class=\"summary-sig-name\">DirectLine</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lat1</span>,\n        <span class=\"summary-sig-arg\">lon1</span>,\n        <span class=\"summary-sig-arg\">azi1</span>,\n        <span class=\"summary-sig-arg\">caps</span>=<span class=\"summary-sig-default\">32671</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Set up a <a href=\"pygeodesy.geodsolve.GeodesicLineSolve-class.html\" \n      class=\"link\">GeodesicLineSolve</a> to compute several points on a \n      single geodesic.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geodsolve.GeodesicSolve-class.html#ArcDirectLine\" class=\"summary-sig-name\">ArcDirectLine</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lat1</span>,\n        <span class=\"summary-sig-arg\">lon1</span>,\n        <span class=\"summary-sig-arg\">azi1</span>,\n        <span class=\"summary-sig-arg\">caps</span>=<span class=\"summary-sig-default\">32671</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Set up a <a href=\"pygeodesy.geodsolve.GeodesicLineSolve-class.html\" \n      class=\"link\">GeodesicLineSolve</a> to compute several points on a \n      single geodesic.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geodsolve.GeodesicSolve-class.html#Line\" class=\"summary-sig-name\">Line</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lat1</span>,\n        <span class=\"summary-sig-arg\">lon1</span>,\n        <span class=\"summary-sig-arg\">azi1</span>,\n        <span class=\"summary-sig-arg\">caps</span>=<span class=\"summary-sig-default\">32671</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Set up a <a href=\"pygeodesy.geodsolve.GeodesicLineSolve-class.html\" \n      class=\"link\">GeodesicLineSolve</a> to compute several points on a \n      single geodesic.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geodsolve.GeodesicSolve-class.html#Inverse3\" class=\"summary-sig-name\">Inverse3</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lat1</span>,\n        <span class=\"summary-sig-arg\">lon1</span>,\n        <span class=\"summary-sig-arg\">lat2</span>,\n        <span class=\"summary-sig-arg\">lon2</span>)</span><br />\n      Return the distance in <code>meter</code> and the forward and reverse\n      azimuths (initial and final bearing) in <code>degrees</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geodsolve.GeodesicSolve-class.html#InverseLine\" class=\"summary-sig-name\">InverseLine</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lat1</span>,\n        <span class=\"summary-sig-arg\">lon1</span>,\n        <span class=\"summary-sig-arg\">lat2</span>,\n        <span class=\"summary-sig-arg\">lon2</span>,\n        <span class=\"summary-sig-arg\">caps</span>=<span class=\"summary-sig-default\">32671</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Set up a <a href=\"pygeodesy.geodsolve.GeodesicLineSolve-class.html\" \n      class=\"link\">GeodesicLineSolve</a> to compute several points on a \n      single geodesic.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geodsolve.GeodesicSolve-class.html#toStr\" class=\"summary-sig-name\">toStr</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">**prec_sep_other</span>)</span><br />\n      Return this <code>GeodesicSolve</code> as string.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.solveBase._SolveGDictBase-class.html\">solveBase._SolveGDictBase</a></code></b>:\n      <code><a href=\"pygeodesy.solveBase._SolveGDictBase-class.html#ArcDirect\">ArcDirect</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveGDictBase-class.html#Direct\">Direct</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveGDictBase-class.html#Inverse\">Inverse</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveGDictBase-class.html#Inverse1\">Inverse1</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveGDictBase-class.html#__init__\">__init__</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html\">solveBase._SolveCapsBase</a></code></b>:\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#invokat\">invokat</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#invoke\">invoke</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#linelimit\">linelimit</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.karney._CapsBase-class.html\">karney._CapsBase</a></code></b>:\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#caps_\">caps_</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#others\">others</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#toRepr\">toRepr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS VARIABLES ==================== -->\n<a name=\"section-ClassVariables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Class Variables</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.karney._CapsBase-class.html\">karney._CapsBase</a></code></b>:\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#ALL\">ALL</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#AREA\">AREA</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#AZIMUTH\">AZIMUTH</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#DISTANCE\">DISTANCE</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#DISTANCE_IN\">DISTANCE_IN</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#EMPTY\">EMPTY</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#GEODESICSCALE\">GEODESICSCALE</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#LATITUDE\">LATITUDE</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#LINE_CAPS\">LINE_CAPS</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#LINE_OFF\">LINE_OFF</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#LONGITUDE\">LONGITUDE</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#LONG_UNROLL\">LONG_UNROLL</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#NONFINITONAN\">NONFINITONAN</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#REDUCEDLENGTH\">REDUCEDLENGTH</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#STANDARD\">STANDARD</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#STANDARD_LINE\">STANDARD_LINE</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.geodsolve._GeodesicSolveBase-class.html\">_GeodesicSolveBase</a></code></b>:\n      <code><a href=\"pygeodesy.geodsolve._GeodesicSolveBase-class.html#GeodSolve\">GeodSolve</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.solveBase._SolveBase-class.html\">solveBase._SolveBase</a></code></b>:\n      <code><a href=\"pygeodesy.solveBase._SolveBase-class.html#reverse2\">reverse2</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveBase-class.html#unroll\">unroll</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html\">solveBase._SolveCapsBase</a></code></b>:\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#Exact\">Exact</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#a\">a</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#b\">b</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#datum\">datum</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#ellipsoid\">ellipsoid</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#f\">f</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#flattening\">flattening</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#invokation\">invokation</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#prec\">prec</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#status\">status</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#verbose\">verbose</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#version\">version</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.karney._CapsBase-class.html\">karney._CapsBase</a></code></b>:\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#caps\">caps</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#debug\">debug</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"Area\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">Area</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">polyline</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Set up a <a \n  href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html\" \n  class=\"link\">GeodesicAreaExact</a> to compute area and perimeter of a \n  polygon.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>polyline</code></strong> - If <code>True</code>, compute the perimeter only, otherwise \n          perimeter and area (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a \n          href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html\" \n          class=\"link\">GeodesicAreaExact</a> instance.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        The <b><code>debug</code></b> setting is passed as \n        <code>verbose</code> to the returned <a \n        href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html\" \n        class=\"link\">GeodesicAreaExact</a> instance.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"Polygon\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">Polygon</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">polyline</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Set up a <a \n  href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html\" \n  class=\"link\">GeodesicAreaExact</a> to compute area and perimeter of a \n  polygon.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>polyline</code></strong> - If <code>True</code>, compute the perimeter only, otherwise \n          perimeter and area (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a \n          href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html\" \n          class=\"link\">GeodesicAreaExact</a> instance.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        The <b><code>debug</code></b> setting is passed as \n        <code>verbose</code> to the returned <a \n        href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html\" \n        class=\"link\">GeodesicAreaExact</a> instance.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"Direct3\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">Direct3</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lat1</span>,\n        <span class=\"sig-arg\">lon1</span>,\n        <span class=\"sig-arg\">azi1</span>,\n        <span class=\"sig-arg\">s12</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the destination lat, lon and reverse azimuth (final bearing) in\n  <code>degrees</code>.</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd><a href=\"pygeodesy.namedTuples.Destination3Tuple-class.html\" \n          class=\"link\">Destination3Tuple</a><code>(lat, lon, final)</code>.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"DirectLine\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">DirectLine</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lat1</span>,\n        <span class=\"sig-arg\">lon1</span>,\n        <span class=\"sig-arg\">azi1</span>,\n        <span class=\"sig-arg\">caps</span>=<span class=\"sig-default\">32671</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Set up a <a href=\"pygeodesy.geodsolve.GeodesicLineSolve-class.html\" \n  class=\"link\">GeodesicLineSolve</a> to compute several points on a single \n  geodesic.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat1</code></strong> - Latitude of the first point (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lon1</code></strong> - Longitude of the first point (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>azi1</code></strong> - Azimuth at the first point (compass <code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>caps</code></strong> - Desired capabilities for the <a \n          href=\"pygeodesy.geodsolve.GeodesicLineSolve-class.html\" \n          class=\"link\">GeodesicLineSolve</a> instance.</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.geodsolve.GeodesicLineSolve-class.html\" \n          class=\"link\">GeodesicLineSolve</a> instance.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        If the point is at a pole, the azimuth is defined by keeping \n        <b><code>lon1</code></b> fixed, writing <code><b>lat1</b> = &#177;(90 &#8722; \n        &#949;)</code>, and taking the limit <code>&#949; &#8594; 0+</code>.\n      </p>\n      <p><strong>See Also:</strong>\n        C++ <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1GeodesicExact.html\"\n        target=\"_top\">GeodesicExact.Line</a> and Python <a \n        href=\"https://GeographicLib.SourceForge.io/Python/doc/code.html\" \n        target=\"_top\">Geodesic.Line</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"ArcDirectLine\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">ArcDirectLine</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lat1</span>,\n        <span class=\"sig-arg\">lon1</span>,\n        <span class=\"sig-arg\">azi1</span>,\n        <span class=\"sig-arg\">caps</span>=<span class=\"sig-default\">32671</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Set up a <a href=\"pygeodesy.geodsolve.GeodesicLineSolve-class.html\" \n  class=\"link\">GeodesicLineSolve</a> to compute several points on a single \n  geodesic.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat1</code></strong> - Latitude of the first point (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lon1</code></strong> - Longitude of the first point (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>azi1</code></strong> - Azimuth at the first point (compass <code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>caps</code></strong> - Desired capabilities for the <a \n          href=\"pygeodesy.geodsolve.GeodesicLineSolve-class.html\" \n          class=\"link\">GeodesicLineSolve</a> instance.</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.geodsolve.GeodesicLineSolve-class.html\" \n          class=\"link\">GeodesicLineSolve</a> instance.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        If the point is at a pole, the azimuth is defined by keeping \n        <b><code>lon1</code></b> fixed, writing <code><b>lat1</b> = &#177;(90 &#8722; \n        &#949;)</code>, and taking the limit <code>&#949; &#8594; 0+</code>.\n      </p>\n      <p><strong>See Also:</strong>\n        C++ <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1GeodesicExact.html\"\n        target=\"_top\">GeodesicExact.Line</a> and Python <a \n        href=\"https://GeographicLib.SourceForge.io/Python/doc/code.html\" \n        target=\"_top\">Geodesic.Line</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"Line\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">Line</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lat1</span>,\n        <span class=\"sig-arg\">lon1</span>,\n        <span class=\"sig-arg\">azi1</span>,\n        <span class=\"sig-arg\">caps</span>=<span class=\"sig-default\">32671</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Set up a <a href=\"pygeodesy.geodsolve.GeodesicLineSolve-class.html\" \n  class=\"link\">GeodesicLineSolve</a> to compute several points on a single \n  geodesic.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat1</code></strong> - Latitude of the first point (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lon1</code></strong> - Longitude of the first point (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>azi1</code></strong> - Azimuth at the first point (compass <code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>caps</code></strong> - Desired capabilities for the <a \n          href=\"pygeodesy.geodsolve.GeodesicLineSolve-class.html\" \n          class=\"link\">GeodesicLineSolve</a> instance.</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.geodsolve.GeodesicLineSolve-class.html\" \n          class=\"link\">GeodesicLineSolve</a> instance.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        If the point is at a pole, the azimuth is defined by keeping \n        <b><code>lon1</code></b> fixed, writing <code><b>lat1</b> = &#177;(90 &#8722; \n        &#949;)</code>, and taking the limit <code>&#949; &#8594; 0+</code>.\n      </p>\n      <p><strong>See Also:</strong>\n        C++ <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1GeodesicExact.html\"\n        target=\"_top\">GeodesicExact.Line</a> and Python <a \n        href=\"https://GeographicLib.SourceForge.io/Python/doc/code.html\" \n        target=\"_top\">Geodesic.Line</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"Inverse3\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">Inverse3</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lat1</span>,\n        <span class=\"sig-arg\">lon1</span>,\n        <span class=\"sig-arg\">lat2</span>,\n        <span class=\"sig-arg\">lon2</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the distance in <code>meter</code> and the forward and reverse \n  azimuths (initial and final bearing) in <code>degrees</code>.</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd><a href=\"pygeodesy.namedTuples.Distance3Tuple-class.html\" \n          class=\"link\">Distance3Tuple</a><code>(distance, initial, \n          final)</code>.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"InverseLine\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">InverseLine</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lat1</span>,\n        <span class=\"sig-arg\">lon1</span>,\n        <span class=\"sig-arg\">lat2</span>,\n        <span class=\"sig-arg\">lon2</span>,\n        <span class=\"sig-arg\">caps</span>=<span class=\"sig-default\">32671</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Set up a <a href=\"pygeodesy.geodsolve.GeodesicLineSolve-class.html\" \n  class=\"link\">GeodesicLineSolve</a> to compute several points on a single \n  geodesic.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat1</code></strong> - Latitude of the first point (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lon1</code></strong> - Longitude of the first point (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lat2</code></strong> - Latitude of the second point (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lon2</code></strong> - Longitude of the second point (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>caps</code></strong> - Desired capabilities for the <a \n          href=\"pygeodesy.geodsolve.GeodesicLineSolve-class.html\" \n          class=\"link\">GeodesicLineSolve</a> instance.</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.geodsolve.GeodesicLineSolve-class.html\" \n          class=\"link\">GeodesicLineSolve</a> instance.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        Both <b><code>lat1</code></b> and <b><code>lat2</code></b> should \n        in the range <code>[-90, +90]</code>.\n      </p>\n      <p><strong>See Also:</strong>\n        C++ <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1GeodesicExact.html\"\n        target=\"_top\">GeodesicExact.InverseLine</a> and Python <a \n        href=\"https://GeographicLib.SourceForge.io/Python/doc/code.html\" \n        target=\"_top\">Geodesic.InverseLine</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"toStr\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toStr</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">**prec_sep_other</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return this <code>GeodesicSolve</code> as string.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>prec_sep</code></strong> - See <a href=\"pygeodesy.solveBase._SolveBase-class.html#toStr\" \n          class=\"link\">toStr</a>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>GeodesicSolve items (<code>str</code>).</dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.named._Named-class.html#toStr\">named._Named.toStr</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.geodsolve._GeodesicSolveBase-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.geodsolve._GeodesicSolveBase</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.geodsolve-module.html\">Module&nbsp;geodsolve</a> ::\n        Class&nbsp;_GeodesicSolveBase\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.geodsolve._GeodesicSolveBase-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class _GeodesicSolveBase</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+                            \n           |                            \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+                        \n               |                        \n<a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+                    \n                   |                    \n    <a href=\"pygeodesy.karney._CapsBase-class.html\">karney._CapsBase</a> --+                \n                       |                \n<a href=\"pygeodesy.solveBase._SolveCapsBase-class.html\">solveBase._SolveCapsBase</a> --+            \n                           |            \n        <a href=\"pygeodesy.solveBase._SolveBase-class.html\">solveBase._SolveBase</a> --+        \n                               |        \n           solveBase._Solve3Base --+    \n                                   |    \n           <a href=\"pygeodesy.solveBase._SolveGDictBase-class.html\">solveBase._SolveGDictBase</a> --+\n                                       |\n                                      <strong class=\"uidshort\">_GeodesicSolveBase</strong>\n</pre>\n\n<dl><dt>Known Subclasses:</dt>\n<dd>\n      <ul class=\"subclass-list\">\n<li><a href=\"pygeodesy.geodsolve.GeodesicLineSolve-class.html\">GeodesicLineSolve</a></li><li>, <a href=\"pygeodesy.geodsolve.GeodesicSolve-class.html\">GeodesicSolve</a></li>  </ul>\n</dd></dl>\n\n<hr />\n<p>(INTERNAL) Base class for <a \n  href=\"pygeodesy.geodsolve.GeodesicSolve-class.html\" \n  class=\"link\">GeodesicSolve</a> and <a \n  href=\"pygeodesy.geodsolve.GeodesicLineSolve-class.html\" \n  class=\"link\">GeodesicLineSolve</a>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.solveBase._SolveGDictBase-class.html\">solveBase._SolveGDictBase</a></code></b>:\n      <code><a href=\"pygeodesy.solveBase._SolveGDictBase-class.html#ArcDirect\">ArcDirect</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveGDictBase-class.html#Direct\">Direct</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveGDictBase-class.html#Inverse\">Inverse</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveGDictBase-class.html#Inverse1\">Inverse1</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveGDictBase-class.html#__init__\">__init__</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveGDictBase-class.html#toStr\">toStr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html\">solveBase._SolveCapsBase</a></code></b>:\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#invokat\">invokat</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#invoke\">invoke</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#linelimit\">linelimit</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.karney._CapsBase-class.html\">karney._CapsBase</a></code></b>:\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#caps_\">caps_</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#others\">others</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#toRepr\">toRepr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS VARIABLES ==================== -->\n<a name=\"section-ClassVariables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Class Variables</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.karney._CapsBase-class.html\">karney._CapsBase</a></code></b>:\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#ALL\">ALL</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#AREA\">AREA</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#AZIMUTH\">AZIMUTH</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#DISTANCE\">DISTANCE</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#DISTANCE_IN\">DISTANCE_IN</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#EMPTY\">EMPTY</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#GEODESICSCALE\">GEODESICSCALE</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#LATITUDE\">LATITUDE</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#LINE_CAPS\">LINE_CAPS</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#LINE_OFF\">LINE_OFF</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#LONGITUDE\">LONGITUDE</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#LONG_UNROLL\">LONG_UNROLL</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#NONFINITONAN\">NONFINITONAN</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#REDUCEDLENGTH\">REDUCEDLENGTH</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#STANDARD\">STANDARD</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#STANDARD_LINE\">STANDARD_LINE</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geodsolve._GeodesicSolveBase-class.html#GeodSolve\" class=\"summary-name\">GeodSolve</a><br />\n      Get the <a \n      href=\"https://GeographicLib.SourceForge.io/C++/doc/GeodSolve.1.html\" \n      target=\"_top\">GeodSolve</a> executable (<code>filename</code>).\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.solveBase._SolveBase-class.html\">solveBase._SolveBase</a></code></b>:\n      <code><a href=\"pygeodesy.solveBase._SolveBase-class.html#reverse2\">reverse2</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveBase-class.html#unroll\">unroll</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html\">solveBase._SolveCapsBase</a></code></b>:\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#Exact\">Exact</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#a\">a</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#b\">b</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#datum\">datum</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#ellipsoid\">ellipsoid</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#f\">f</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#flattening\">flattening</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#invokation\">invokation</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#prec\">prec</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#status\">status</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#verbose\">verbose</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#version\">version</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.karney._CapsBase-class.html\">karney._CapsBase</a></code></b>:\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#caps\">caps</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#debug\">debug</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"GeodSolve\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">GeodSolve</h3>\n  <p>Get the <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/GeodSolve.1.html\" \n  target=\"_top\">GeodSolve</a> executable (<code>filename</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">GeodSolve(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <a \nhref=\"https://GeographicLib.SourceForge.io/C++/doc/GeodSolve.1.html\" \ntarget=\"_top\">GeodSolve</a> executable (<code>filename</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">GeodSolve(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">path</span>)</span>\n        - Set the <a \nhref=\"https://GeographicLib.SourceForge.io/C++/doc/GeodSolve.1.html\" \ntarget=\"_top\">GeodSolve</a> executable (<code>filename</code>), the (fully \nqualified) path to the <code>GeodSolve</code> executable.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.geohash-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.geohash</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        Module&nbsp;geohash\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.geohash-module.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== MODULE DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Module geohash</h1><p class=\"nomargin-top\"></p>\n<p><i>Gustavo Niemeyer</i>&#8217;s <a href=\"https://WikiPedia.org/wiki/Geohash\"\n  target=\"_top\">Geohash</a>.</p>\n  <p>Class <a href=\"pygeodesy.geohash.Geohash-class.html\" \n  class=\"link\">Geohash</a> and several functions to encode, decode and \n  inspect <code>geohashes</code> and optional <a \n  href=\"pygeodesy.geohash.Geohashed-class.html\" class=\"link\">Geohashed</a> \n  caches.</p>\n  <p>Originally transcoded from JavaScript originals by <i>(C) Chris Veness\n  2011-2024</i> and published under the same MIT Licence**, see <a \n  href=\"https://www.Movable-Type.co.UK/scripts/geohash.html\" \n  target=\"_top\">Geohashes</a>.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"https://WikiPedia.org/wiki/Geohash\" \n        target=\"_top\">Geohash</a>, <i>Karney</i>'s C++ <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Geohash.html\"\n        target=\"_top\">Geohash</a>, <a \n        href=\"https://GitHub.com/vinsci/geohash\" target=\"_top\">geohash</a>,\n        <a href=\"https://PyPI.org/project/pygeohash\" \n        target=\"_top\">pygeohash</a> and <a \n        href=\"https://GitHub.com/DaveTroy/geohash-js\" \n        target=\"_top\">geohash-js</a>.\n      </p>\n      <p><strong>Version:</strong>\n        25.09.16\n      </p>\n</div><!-- ==================== CLASSES ==================== -->\n<a name=\"section-Classes\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Classes</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geohash.Geohash-class.html\" class=\"summary-name\">Geohash</a><br />\n      Geohash class, a named <code>str</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geohash.Geohashed-class.html\" class=\"summary-name\">Geohashed</a><br />\n      A cache of en- and decoded geohashes of one precision.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geohash.GeohashError-class.html\" class=\"summary-name\">GeohashError</a><br />\n      Geohash encode, decode or other <a \n        href=\"pygeodesy.geohash.Geohash-class.html\" \n        class=\"link\">Geohash</a> issue.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geohash.Neighbors8Dict-class.html\" class=\"summary-name\">Neighbors8Dict</a><br />\n      8-Dict <code>(N, NE, E, SE, S, SW, W, NW)</code> of <a \n        href=\"pygeodesy.geohash.Geohash-class.html\" \n        class=\"link\">Geohash</a>es, providing key <i>and</i> attribute \n        access to the items.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geohash.Resolutions2Tuple-class.html\" class=\"summary-name\">Resolutions2Tuple</a><br />\n      2-Tuple <code>(res1, res2)</code> with the primary \n        <i>(longitudinal)</i> and secondary <i>(latitudinal)</i> \n        resolution, both in <code>degrees</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geohash.Sizes3Tuple-class.html\" class=\"summary-name\">Sizes3Tuple</a><br />\n      3-Tuple <code>(height, width, radius)</code> with latitudinal \n        <code>height</code>, longitudinal <code>width</code> and area \n        <code>radius</code>, all in <code>meter</code>.\n    </td>\n  </tr>\n</table>\n<!-- ==================== FUNCTIONS ==================== -->\n<a name=\"section-Functions\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Functions</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geohash-module.html#bounds\" class=\"summary-sig-name\">bounds</a>(<span class=\"summary-sig-arg\">geohash</span>,\n        <span class=\"summary-sig-arg\">LatLon</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**LatLon_kwds</span>)</span><br />\n      Returns the lower-left SW and upper-right NE corners of a geohash.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geohash-module.html#decode\" class=\"summary-sig-name\">decode</a>(<span class=\"summary-sig-arg\">geohash</span>)</span><br />\n      Decode a geohash to lat-/longitude of the (approximate centre of) \n      geohash cell to reasonable precision.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geohash-module.html#decode2\" class=\"summary-sig-name\">decode2</a>(<span class=\"summary-sig-arg\">geohash</span>,\n        <span class=\"summary-sig-arg\">LatLon</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**LatLon_kwds</span>)</span><br />\n      Decode a geohash to lat-/longitude of the (approximate center of) \n      geohash cell to reasonable precision.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geohash-module.html#decode_error\" class=\"summary-sig-name\">decode_error</a>(<span class=\"summary-sig-arg\">geohash</span>)</span><br />\n      DEPRECATED on 2024.07.28, use <a \n      href=\"pygeodesy.geohash-module.html#decode_error2\" \n      class=\"link\">geohash.decode_error2</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geohash-module.html#decode_error2\" class=\"summary-sig-name\">decode_error2</a>(<span class=\"summary-sig-arg\">geohash</span>)</span><br />\n      Return the lat- and longitude decoding error for a geohash.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geohash-module.html#distance_\" class=\"summary-sig-name\">distance_</a>(<span class=\"summary-sig-arg\">geohash1</span>,\n        <span class=\"summary-sig-arg\">geohash2</span>)</span><br />\n      Estimate the distance between two geohash (from the cell sizes).</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geohash-module.html#encode\" class=\"summary-sig-name\">encode</a>(<span class=\"summary-sig-arg\">lat</span>,\n        <span class=\"summary-sig-arg\">lon</span>,\n        <span class=\"summary-sig-arg\">precision</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">eps</span>=<span class=\"summary-sig-default\">2.220446049250313e-16</span>)</span><br />\n      Encode a lat-/longitude as a <code>geohash</code>, either to the \n      specified precision or if not provided, to an inferred precision.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geohash-module.html#equirectangular4\" class=\"summary-sig-name\">equirectangular4</a>(<span class=\"summary-sig-arg\">geohash1</span>,\n        <span class=\"summary-sig-arg\">geohash2</span>,\n        <span class=\"summary-sig-arg\">radius</span>=<span class=\"summary-sig-default\">6371008.771415</span>)</span><br />\n      Approximate the distance between two geohashes using the <a \n      href=\"pygeodesy.formy-module.html#equirectangular\" \n      class=\"link\">pygeodesy.equirectangular</a> formula.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geohash-module.html#euclidean_\" class=\"summary-sig-name\">euclidean_</a>(<span class=\"summary-sig-arg\">geohash1</span>,\n        <span class=\"summary-sig-arg\">geohash2</span>,\n        <span class=\"summary-sig-arg\">**radius_adjust_wrap</span>)</span><br />\n      Approximate the distance between two geohashes using the <a \n      href=\"pygeodesy.formy-module.html#euclidean\" \n      class=\"link\">pygeodesy.euclidean</a> formula.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geohash-module.html#haversine_\" class=\"summary-sig-name\">haversine_</a>(<span class=\"summary-sig-arg\">geohash1</span>,\n        <span class=\"summary-sig-arg\">geohash2</span>,\n        <span class=\"summary-sig-arg\">**radius_wrap</span>)</span><br />\n      Compute the great-circle distance between two geohashes using the <a \n      href=\"pygeodesy.formy-module.html#haversine\" \n      class=\"link\">pygeodesy.haversine</a> formula.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geohash-module.html#neighbors\" class=\"summary-sig-name\">neighbors</a>(<span class=\"summary-sig-arg\">geohash</span>)</span><br />\n      Return the <a href=\"pygeodesy.geohash.Geohash-class.html\" \n      class=\"link\">Geohash</a>es for all 8 adjacent cells.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geohash-module.html#precision\" class=\"summary-sig-name\">precision</a>(<span class=\"summary-sig-arg\">res1</span>,\n        <span class=\"summary-sig-arg\">res2</span>=<span class=\"summary-sig-default\">None</span>)</span><br />\n      Determine the <a href=\"pygeodesy.geohash.Geohash-class.html\" \n      class=\"link\">Geohash</a> precisions to meet a or both given \n      (geographic) resolutions.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geohash-module.html#resolution2\" class=\"summary-sig-name\">resolution2</a>(<span class=\"summary-sig-arg\">prec1</span>,\n        <span class=\"summary-sig-arg\">prec2</span>=<span class=\"summary-sig-default\">None</span>)</span><br />\n      Determine the (geographic) resolutions of given <a \n      href=\"pygeodesy.geohash.Geohash-class.html\" class=\"link\">Geohash</a> \n      precisions.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geohash-module.html#sizes\" class=\"summary-sig-name\">sizes</a>(<span class=\"summary-sig-arg\">geohash</span>)</span><br />\n      DEPRECATED on 2024.07.28, use function <a \n      href=\"pygeodesy.geohash-module.html#sizes3\" \n      class=\"link\">pygeodesy.geohash.sizes3</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geohash-module.html#sizes3\" class=\"summary-sig-name\">sizes3</a>(<span class=\"summary-sig-arg\">geohash</span>)</span><br />\n      Return the lat-, longitudinal and radial size of this <a \n      href=\"pygeodesy.geohash.Geohash-class.html\" class=\"link\">Geohash</a> \n      cell.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geohash-module.html#vincentys_\" class=\"summary-sig-name\">vincentys_</a>(<span class=\"summary-sig-arg\">geohash1</span>,\n        <span class=\"summary-sig-arg\">geohash2</span>,\n        <span class=\"summary-sig-arg\">**radius_wrap</span>)</span><br />\n      Compute the distance between two geohashes using the <a \n      href=\"pygeodesy.formy-module.html#vincentys\" \n      class=\"link\">pygeodesy.vincentys</a> formula.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== VARIABLES ==================== -->\n<a name=\"section-Variables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Variables</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"__all__\"></a><span class=\"summary-name\">__all__</span> = <code title=\"_ALL_LAZY.geohash\">_ALL_LAZY.geohash</code>\n    </td>\n  </tr>\n</table>\n<!-- ==================== FUNCTION DETAILS ==================== -->\n<a name=\"section-FunctionDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Function Details</span></td>\n</tr>\n</table>\n<a name=\"bounds\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">bounds</span>&nbsp;(<span class=\"sig-arg\">geohash</span>,\n        <span class=\"sig-arg\">LatLon</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**LatLon_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Returns the lower-left SW and upper-right NE corners of a geohash.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>geohash</code></strong> - To be &quot;bound&quot; (<a \n          href=\"pygeodesy.geohash.Geohash-class.html\" \n          class=\"link\">Geohash</a>).</li>\n        <li><strong class=\"pname\"><code>LatLon</code></strong> - Optional class to return the bounds (<code>LatLon</code>) or \n          <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>LatLon_kwds</code></strong> - Optional, additional <b><code>LatLon</code></b> keyword \n          arguments, ignored if <code><b>LatLon</b> is None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.namedTuples.Bounds2Tuple-class.html\" \n          class=\"link\">Bounds2Tuple</a><code>(latlonSW, latlonNE)</code>, \n          each a <b><code>LatLon</code></b> or if <code><b>LatLon</b> is \n          None</code>, a <a \n          href=\"pygeodesy.namedTuples.Bounds4Tuple-class.html\" \n          class=\"link\">Bounds4Tuple</a><code>(latS, lonW, latN, \n          lonE)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - The <b><code>geohash</code></b> is not a <a \n        href=\"pygeodesy.geohash.Geohash-class.html\" \n        class=\"link\">Geohash</a>, <code>LatLon</code> or <code>str</code> \n        or invalid <b><code>LatLon</code></b> or invalid \n        <b><code>LatLon_kwds</code></b>.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.geohash.GeohashError-class.html\">GeohashError</a></strong></code> - Invalid or <code>null</code> <b><code>geohash</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"decode\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">decode</span>&nbsp;(<span class=\"sig-arg\">geohash</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Decode a geohash to lat-/longitude of the (approximate centre of) \n  geohash cell to reasonable precision.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>geohash</code></strong> - To be decoded (<a href=\"pygeodesy.geohash.Geohash-class.html\" \n          class=\"link\">Geohash</a>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>2-Tuple <code>(latStr, lonStr)</code>, both <code>str</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - The <b><code>geohash</code></b> is not a <a \n        href=\"pygeodesy.geohash.Geohash-class.html\" \n        class=\"link\">Geohash</a>, <code>LatLon</code> or <code>str</code>.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.geohash.GeohashError-class.html\">GeohashError</a></strong></code> - Invalid or null <b><code>geohash</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"decode2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">decode2</span>&nbsp;(<span class=\"sig-arg\">geohash</span>,\n        <span class=\"sig-arg\">LatLon</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**LatLon_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Decode a geohash to lat-/longitude of the (approximate center of) \n  geohash cell to reasonable precision.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>geohash</code></strong> - To be decoded (<a href=\"pygeodesy.geohash.Geohash-class.html\" \n          class=\"link\">Geohash</a>).</li>\n        <li><strong class=\"pname\"><code>LatLon</code></strong> - Optional class to return the location (<code>LatLon</code>) or \n          <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>LatLon_kwds</code></strong> - Optional, addtional <b><code>LatLon</code></b> keyword arguments,\n          ignored if <code><b>LatLon</b> is None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><a href=\"pygeodesy.namedTuples.LatLon2Tuple-class.html\" \n          class=\"link\">LatLon2Tuple</a><code>(lat, lon)</code>, both \n          <code>degrees</code> if <code><b>LatLon</b> is None</code>, \n          otherwise a <b><code>LatLon</code></b> instance.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - The <b><code>geohash</code></b> is not a <a \n        href=\"pygeodesy.geohash.Geohash-class.html\" \n        class=\"link\">Geohash</a>, <code>LatLon</code> or <code>str</code>.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.geohash.GeohashError-class.html\">GeohashError</a></strong></code> - Invalid or null <b><code>geohash</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"decode_error\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">decode_error</span>&nbsp;(<span class=\"sig-arg\">geohash</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED on 2024.07.28, use <a \n  href=\"pygeodesy.geohash-module.html#decode_error2\" \n  class=\"link\">geohash.decode_error2</a>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"decode_error2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">decode_error2</span>&nbsp;(<span class=\"sig-arg\">geohash</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the lat- and longitude decoding error for a geohash.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>geohash</code></strong> - To be decoded (<a href=\"pygeodesy.geohash.Geohash-class.html\" \n          class=\"link\">Geohash</a>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.namedTuples.LatLon2Tuple-class.html\" \n          class=\"link\">LatLon2Tuple</a><code>(lat, lon)</code> with the \n          lat- and longitudinal errors in (<code>degrees</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - The <b><code>geohash</code></b> is not a <a \n        href=\"pygeodesy.geohash.Geohash-class.html\" \n        class=\"link\">Geohash</a>, <code>LatLon</code> or <code>str</code>.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.geohash.GeohashError-class.html\">GeohashError</a></strong></code> - Invalid or null <b><code>geohash</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"distance_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">distance_</span>&nbsp;(<span class=\"sig-arg\">geohash1</span>,\n        <span class=\"sig-arg\">geohash2</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Estimate the distance between two geohash (from the cell sizes).</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>geohash1</code></strong> - First geohash (<a href=\"pygeodesy.geohash.Geohash-class.html\" \n          class=\"link\">Geohash</a>, <code>LatLon</code> or \n          <code>str</code>).</li>\n        <li><strong class=\"pname\"><code>geohash2</code></strong> - Second geohash (<a href=\"pygeodesy.geohash.Geohash-class.html\" \n          class=\"link\">Geohash</a>, <code>LatLon</code> or \n          <code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Approximate distance (<code>meter</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - If <b><code>geohash1</code></b> or <b><code>geohash2</code></b> is \n        not a <a href=\"pygeodesy.geohash.Geohash-class.html\" \n        class=\"link\">Geohash</a>, <code>LatLon</code> or <code>str</code>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"encode\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">encode</span>&nbsp;(<span class=\"sig-arg\">lat</span>,\n        <span class=\"sig-arg\">lon</span>,\n        <span class=\"sig-arg\">precision</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">eps</span>=<span class=\"sig-default\">2.220446049250313e-16</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Encode a lat-/longitude as a <code>geohash</code>, either to the \n  specified precision or if not provided, to an inferred precision.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat</code></strong> - Latitude (<code>degrees90</code>).</li>\n        <li><strong class=\"pname\"><code>lon</code></strong> - Longitude (<code>degrees180</code>).</li>\n        <li><strong class=\"pname\"><code>precision</code></strong> - The desired geohash length (<code>int</code> 1..12) or \n          <code>None</code> or <code>0</code> for inferred.</li>\n        <li><strong class=\"pname\"><code>eps</code></strong> - Optional inference tolerance (<code>degrees</code>), ignored if \n          <b><code>precision</code></b> is not <code>None</code> or \n          <code>0</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The <code>geohash</code> (<code>str</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.geohash.GeohashError-class.html\">GeohashError</a></strong></code> - Invalid <b><code>lat</code></b>, <b><code>lon</code></b> or \n        <b><code>precision</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"equirectangular4\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">equirectangular4</span>&nbsp;(<span class=\"sig-arg\">geohash1</span>,\n        <span class=\"sig-arg\">geohash2</span>,\n        <span class=\"sig-arg\">radius</span>=<span class=\"sig-default\">6371008.771415</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Approximate the distance between two geohashes using the <a \n  href=\"pygeodesy.formy-module.html#equirectangular\" \n  class=\"link\">pygeodesy.equirectangular</a> formula.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>geohash1</code></strong> - First geohash (<a href=\"pygeodesy.geohash.Geohash-class.html\" \n          class=\"link\">Geohash</a>, <code>LatLon</code> or \n          <code>str</code>).</li>\n        <li><strong class=\"pname\"><code>geohash2</code></strong> - Second geohash (<a href=\"pygeodesy.geohash.Geohash-class.html\" \n          class=\"link\">Geohash</a>, <code>LatLon</code> or \n          <code>str</code>).</li>\n        <li><strong class=\"pname\"><code>radius</code></strong> - Mean earth radius (<code>meter</code>) or <code>None</code>, see \n          method <a \n          href=\"pygeodesy.geohash.Geohash-class.html#equirectangularTo\" \n          class=\"link\">Geohash.equirectangularTo</a>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Approximate distance (<code>meter</code>, same units as \n          <b><code>radius</code></b>), see method <a \n          href=\"pygeodesy.geohash.Geohash-class.html#equirectangularTo\" \n          class=\"link\">Geohash.equirectangularTo</a>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - If <b><code>geohash1</code></b> or <b><code>geohash2</code></b> is \n        not a <a href=\"pygeodesy.geohash.Geohash-class.html\" \n        class=\"link\">Geohash</a>, <code>LatLon</code> or <code>str</code>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"euclidean_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">euclidean_</span>&nbsp;(<span class=\"sig-arg\">geohash1</span>,\n        <span class=\"sig-arg\">geohash2</span>,\n        <span class=\"sig-arg\">**radius_adjust_wrap</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Approximate the distance between two geohashes using the <a \n  href=\"pygeodesy.formy-module.html#euclidean\" \n  class=\"link\">pygeodesy.euclidean</a> formula.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>geohash1</code></strong> - First geohash (<a href=\"pygeodesy.geohash.Geohash-class.html\" \n          class=\"link\">Geohash</a>, <code>LatLon</code> or \n          <code>str</code>).</li>\n        <li><strong class=\"pname\"><code>geohash2</code></strong> - Second geohash (<a href=\"pygeodesy.geohash.Geohash-class.html\" \n          class=\"link\">Geohash</a>, <code>LatLon</code> or \n          <code>str</code>).</li>\n        <li><strong class=\"pname\"><code>radius_adjust_wrap</code></strong> - Optional keyword arguments for function <a \n          href=\"pygeodesy.formy-module.html#euclidean\" \n          class=\"link\">pygeodesy.euclidean</a>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Approximate distance (<code>meter</code>, same units as \n          <b><code>radius</code></b>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - If <b><code>geohash1</code></b> or <b><code>geohash2</code></b> is \n        not a <a href=\"pygeodesy.geohash.Geohash-class.html\" \n        class=\"link\">Geohash</a>, <code>LatLon</code> or <code>str</code>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"haversine_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">haversine_</span>&nbsp;(<span class=\"sig-arg\">geohash1</span>,\n        <span class=\"sig-arg\">geohash2</span>,\n        <span class=\"sig-arg\">**radius_wrap</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the great-circle distance between two geohashes using the <a \n  href=\"pygeodesy.formy-module.html#haversine\" \n  class=\"link\">pygeodesy.haversine</a> formula.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>geohash1</code></strong> - First geohash (<a href=\"pygeodesy.geohash.Geohash-class.html\" \n          class=\"link\">Geohash</a>, <code>LatLon</code> or \n          <code>str</code>).</li>\n        <li><strong class=\"pname\"><code>geohash2</code></strong> - Second geohash (<a href=\"pygeodesy.geohash.Geohash-class.html\" \n          class=\"link\">Geohash</a>, <code>LatLon</code> or \n          <code>str</code>).</li>\n        <li><strong class=\"pname\"><code>radius_wrap</code></strong> - Optional keyword arguments for function <a \n          href=\"pygeodesy.formy-module.html#haversine\" \n          class=\"link\">pygeodesy.haversine</a>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Great-circle distance (<code>meter</code>, same units as \n          <b><code>radius</code></b>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - If <b><code>geohash1</code></b> or <b><code>geohash2</code></b> is \n        not a <a href=\"pygeodesy.geohash.Geohash-class.html\" \n        class=\"link\">Geohash</a>, <code>LatLon</code> or <code>str</code>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"neighbors\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">neighbors</span>&nbsp;(<span class=\"sig-arg\">geohash</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the <a href=\"pygeodesy.geohash.Geohash-class.html\" \n  class=\"link\">Geohash</a>es for all 8 adjacent cells.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>geohash</code></strong> - Cell for which neighbors are requested (<a \n          href=\"pygeodesy.geohash.Geohash-class.html\" \n          class=\"link\">Geohash</a> or <code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.geohash.Neighbors8Dict-class.html\" \n          class=\"link\">Neighbors8Dict</a><code>(N, NE, E, SE, S, SW, W, \n          NW)</code> of <a href=\"pygeodesy.geohash.Geohash-class.html\" \n          class=\"link\">Geohash</a>es.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - The <b><code>geohash</code></b> is not a <a \n        href=\"pygeodesy.geohash.Geohash-class.html\" \n        class=\"link\">Geohash</a>, <code>LatLon</code> or <code>str</code>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"precision\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">precision</span>&nbsp;(<span class=\"sig-arg\">res1</span>,\n        <span class=\"sig-arg\">res2</span>=<span class=\"sig-default\">None</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Determine the <a href=\"pygeodesy.geohash.Geohash-class.html\" \n  class=\"link\">Geohash</a> precisions to meet a or both given (geographic) \n  resolutions.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>res1</code></strong> - The required primary <i>(longitudinal)</i> resolution \n          (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>res2</code></strong> - Optional, required secondary <i>(latitudinal)</i> resolution \n          (<code>degrees</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The <a href=\"pygeodesy.geohash.Geohash-class.html\" \n          class=\"link\">Geohash</a> precision or length (<code>int</code>, \n          1..12).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.geohash.GeohashError-class.html\">GeohashError</a></strong></code> - Invalid <b><code>res1</code></b> or <b><code>res2</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        C++ class <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Geohash.html\"\n        target=\"_top\">Geohash</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"resolution2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">resolution2</span>&nbsp;(<span class=\"sig-arg\">prec1</span>,\n        <span class=\"sig-arg\">prec2</span>=<span class=\"sig-default\">None</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Determine the (geographic) resolutions of given <a \n  href=\"pygeodesy.geohash.Geohash-class.html\" class=\"link\">Geohash</a> \n  precisions.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>prec1</code></strong> - The given primary <i>(longitudinal)</i> precision \n          (<code>int</code> 1..12).</li>\n        <li><strong class=\"pname\"><code>prec2</code></strong> - Optional, secondary <i>(latitudinal)</i> precision \n          (<code>int</code> 1..12).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><a href=\"pygeodesy.geohash.Resolutions2Tuple-class.html\" \n          class=\"link\">Resolutions2Tuple</a><code>(res1, res2)</code> with \n          the (geographic) resolutions in <code>degrees</code>, where \n          <code>res2 <b>is</b> res1</code> if no <b><code>prec2</code></b> \n          is given.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.geohash.GeohashError-class.html\">GeohashError</a></strong></code> - Invalid <b><code>prec1</code></b> or <b><code>prec2</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <i>Karney</i>'s C++ class <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Geohash.html\"\n        target=\"_top\">Geohash</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"sizes\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">sizes</span>&nbsp;(<span class=\"sig-arg\">geohash</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED on 2024.07.28, use function <a \n  href=\"pygeodesy.geohash-module.html#sizes3\" \n  class=\"link\">pygeodesy.geohash.sizes3</a>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"sizes3\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">sizes3</span>&nbsp;(<span class=\"sig-arg\">geohash</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the lat-, longitudinal and radial size of this <a \n  href=\"pygeodesy.geohash.Geohash-class.html\" class=\"link\">Geohash</a> \n  cell.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>geohash</code></strong> - Cell for which size are required (<a \n          href=\"pygeodesy.geohash.Geohash-class.html\" \n          class=\"link\">Geohash</a> or <code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.geohash.Sizes3Tuple-class.html\" \n          class=\"link\">Sizes3Tuple</a><code>(height, width, radius)</code>,\n          all <code>meter</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - The <b><code>geohash</code></b> is not a <a \n        href=\"pygeodesy.geohash.Geohash-class.html\" \n        class=\"link\">Geohash</a>, <code>LatLon</code> or <code>str</code>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"vincentys_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">vincentys_</span>&nbsp;(<span class=\"sig-arg\">geohash1</span>,\n        <span class=\"sig-arg\">geohash2</span>,\n        <span class=\"sig-arg\">**radius_wrap</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the distance between two geohashes using the <a \n  href=\"pygeodesy.formy-module.html#vincentys\" \n  class=\"link\">pygeodesy.vincentys</a> formula.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>geohash1</code></strong> - First geohash (<a href=\"pygeodesy.geohash.Geohash-class.html\" \n          class=\"link\">Geohash</a>, <code>LatLon</code> or \n          <code>str</code>).</li>\n        <li><strong class=\"pname\"><code>geohash2</code></strong> - Second geohash (<a href=\"pygeodesy.geohash.Geohash-class.html\" \n          class=\"link\">Geohash</a>, <code>LatLon</code> or \n          <code>str</code>).</li>\n        <li><strong class=\"pname\"><code>radius_wrap</code></strong> - Optional keyword arguments for function <a \n          href=\"pygeodesy.formy-module.html#vincentys\" \n          class=\"link\">pygeodesy.vincentys</a>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Distance (<code>meter</code>, same units as \n          <b><code>radius</code></b>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - If <b><code>geohash1</code></b> or <b><code>geohash2</code></b> is \n        not a <a href=\"pygeodesy.geohash.Geohash-class.html\" \n        class=\"link\">Geohash</a>, <code>LatLon</code> or <code>str</code>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.geohash.Geohash-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.geohash.Geohash</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.geohash-module.html\">Module&nbsp;geohash</a> ::\n        Class&nbsp;Geohash\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.geohash.Geohash-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Geohash</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n      object --+            \n               |            \n      basestring --+        \n                   |        \n                 str --+    \n                       |    \n      object --+       |    \n               |       |    \n    <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+   |    \n                   |   |    \n<a href=\"pygeodesy.unitsBase._NamedUnit-class.html\">unitsBase._NamedUnit</a> --+    \n                       |    \n           <a href=\"pygeodesy.unitsBase.Str-class.html\">unitsBase.Str</a> --+\n                           |\n                          <strong class=\"uidshort\">Geohash</strong>\n</pre>\n\n<hr />\n<p>Geohash class, a named <code>str</code>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geohash.Geohash-class.html#adjacent\" class=\"summary-sig-name\">adjacent</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">direction</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Determine the adjacent cell in the given compass direction.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geohash.Geohash-class.html#bounds\" class=\"summary-sig-name\">bounds</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">LatLon</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**LatLon_kwds</span>)</span><br />\n      Return the lower-left SW and upper-right NE bounds of this geohash \n      cell.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geohash.Geohash-class.html#distanceTo\" class=\"summary-sig-name\">distanceTo</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span><br />\n      Estimate the distance between this and an other geohash based the \n      cell sizes.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geohash.Geohash-class.html#distance1To\" class=\"summary-sig-name\">distance1To</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span><br />\n      DEPRECATED, use method <a \n      href=\"pygeodesy.geohash.Geohash-class.html#distanceTo\" \n      class=\"link\">distanceTo</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geohash.Geohash-class.html#distance1\" class=\"summary-sig-name\">distance1</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span><br />\n      DEPRECATED, use method <a \n      href=\"pygeodesy.geohash.Geohash-class.html#distanceTo\" \n      class=\"link\">distanceTo</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geohash.Geohash-class.html#distance2To\" class=\"summary-sig-name\">distance2To</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>,\n        <span class=\"summary-sig-arg\">radius</span>=<span class=\"summary-sig-default\">6371008.771415</span>,\n        <span class=\"summary-sig-arg\">adjust</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      DEPRECATED, use method <a \n      href=\"pygeodesy.geohash.Geohash-class.html#equirectangularTo\" \n      class=\"link\">equirectangularTo</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geohash.Geohash-class.html#distance2\" class=\"summary-sig-name\">distance2</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>,\n        <span class=\"summary-sig-arg\">radius</span>=<span class=\"summary-sig-default\">6371008.771415</span>,\n        <span class=\"summary-sig-arg\">adjust</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      DEPRECATED, use method <a \n      href=\"pygeodesy.geohash.Geohash-class.html#equirectangularTo\" \n      class=\"link\">equirectangularTo</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geohash.Geohash-class.html#distance3To\" class=\"summary-sig-name\">distance3To</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>,\n        <span class=\"summary-sig-arg\">radius</span>=<span class=\"summary-sig-default\">6371008.771415</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      DEPRECATED, use method <a \n      href=\"pygeodesy.geohash.Geohash-class.html#haversineTo\" \n      class=\"link\">haversineTo</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geohash.Geohash-class.html#distance3\" class=\"summary-sig-name\">distance3</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>,\n        <span class=\"summary-sig-arg\">radius</span>=<span class=\"summary-sig-default\">6371008.771415</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      DEPRECATED, use method <a \n      href=\"pygeodesy.geohash.Geohash-class.html#haversineTo\" \n      class=\"link\">haversineTo</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geohash.Geohash-class.html#equirectangularTo\" class=\"summary-sig-name\">equirectangularTo</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>,\n        <span class=\"summary-sig-arg\">radius</span>=<span class=\"summary-sig-default\">6371008.771415</span>,\n        <span class=\"summary-sig-arg\">**adjust_limit_wrap</span>)</span><br />\n      Approximate the distance between this and an other geohash using \n      function <a href=\"pygeodesy.formy-module.html#equirectangular\" \n      class=\"link\">pygeodesy.equirectangular</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geohash.Geohash-class.html#euclideanTo\" class=\"summary-sig-name\">euclideanTo</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>,\n        <span class=\"summary-sig-arg\">**radius_adjust_wrap</span>)</span><br />\n      Approximate the distance between this and an other geohash using \n      function <a href=\"pygeodesy.formy-module.html#euclidean\" \n      class=\"link\">pygeodesy.euclidean</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geohash.Geohash-class.html#haversineTo\" class=\"summary-sig-name\">haversineTo</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>,\n        <span class=\"summary-sig-arg\">**radius_wrap</span>)</span><br />\n      Compute the distance between this and an other geohash using the <a \n      href=\"pygeodesy.formy-module.html#haversine\" \n      class=\"link\">pygeodesy.haversine</a> formula.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geohash.Geohash-class.html#toLatLon\" class=\"summary-sig-name\">toLatLon</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">LatLon</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**LatLon_kwds</span>)</span><br />\n      Return (the approximate center of) this geohash cell as an instance \n      of the supplied <code>LatLon</code> class.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geohash.Geohash-class.html#vincentysTo\" class=\"summary-sig-name\">vincentysTo</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>,\n        <span class=\"summary-sig-arg\">**radius_wrap</span>)</span><br />\n      Compute the distance between this and an other geohash using the <a \n      href=\"pygeodesy.formy-module.html#vincentys\" \n      class=\"link\">pygeodesy.vincentys</a> formula.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase.Str-class.html\">unitsBase.Str</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase.Str-class.html#__call__\">__call__</a></code>,\n      <code><a href=\"pygeodesy.unitsBase.Str-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.unitsBase.Str-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.unitsBase.Str-class.html#join_\">join_</a></code>,\n      <code><a href=\"pygeodesy.unitsBase.Str-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.unitsBase.Str-class.html#toStr\">toStr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>str</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__eq__</code>,\n      <code>__format__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__hash__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__mod__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__rmod__</code>,\n      <code>__rmul__</code>,\n      <code>__sizeof__</code>,\n      <code>capitalize</code>,\n      <code>center</code>,\n      <code>count</code>,\n      <code>decode</code>,\n      <code>encode</code>,\n      <code>endswith</code>,\n      <code>expandtabs</code>,\n      <code>find</code>,\n      <code>format</code>,\n      <code>index</code>,\n      <code>isalnum</code>,\n      <code>isalpha</code>,\n      <code>isdigit</code>,\n      <code>islower</code>,\n      <code>isspace</code>,\n      <code>istitle</code>,\n      <code>isupper</code>,\n      <code>join</code>,\n      <code>ljust</code>,\n      <code>lower</code>,\n      <code>lstrip</code>,\n      <code>partition</code>,\n      <code>replace</code>,\n      <code>rfind</code>,\n      <code>rindex</code>,\n      <code>rjust</code>,\n      <code>rpartition</code>,\n      <code>rsplit</code>,\n      <code>rstrip</code>,\n      <code>split</code>,\n      <code>splitlines</code>,\n      <code>startswith</code>,\n      <code>strip</code>,\n      <code>swapcase</code>,\n      <code>title</code>,\n      <code>translate</code>,\n      <code>upper</code>,\n      <code>zfill</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">a new object with type S, a subtype of T</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geohash.Geohash-class.html#__new__\" class=\"summary-sig-name\">__new__</a>(<span class=\"summary-sig-arg\">cls</span>,\n        <span class=\"summary-sig-arg\">lat_ghll</span>,\n        <span class=\"summary-sig-arg\">lon</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">precision</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">eps</span>=<span class=\"summary-sig-default\">2.220446049250313e-16</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      New <a href=\"pygeodesy.geohash.Geohash-class.html\" \n      class=\"link\">Geohash</a> from an other <a \n      href=\"pygeodesy.geohash.Geohash-class.html\" class=\"link\">Geohash</a> \n      instance or geohash <code>str</code> or from a lat- and longitude.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geohash.Geohash-class.html#ab\" class=\"summary-name\">ab</a><br />\n      DEPRECATED, use property <code>philam</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geohash.Geohash-class.html#latlon\" class=\"summary-name\">latlon</a><br />\n      Get the lat- and longitude of (the approximate center of) this \n      geohash as a <a href=\"pygeodesy.namedTuples.LatLon2Tuple-class.html\" \n      class=\"link\">LatLon2Tuple</a><code>(lat, lon)</code> in \n      <code>degrees</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geohash.Geohash-class.html#neighbors\" class=\"summary-name\">neighbors</a><br />\n      Get all 8 adjacent cells as a <a \n      href=\"pygeodesy.geohash.Neighbors8Dict-class.html\" \n      class=\"link\">Neighbors8Dict</a><code>(N, NE, E, SE, S, SW, W, \n      NW)</code> of <a href=\"pygeodesy.geohash.Geohash-class.html\" \n      class=\"link\">Geohash</a>es.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geohash.Geohash-class.html#philam\" class=\"summary-name\">philam</a><br />\n      Get the lat- and longitude of (the approximate center of) this \n      geohash as a <a href=\"pygeodesy.namedTuples.PhiLam2Tuple-class.html\" \n      class=\"link\">PhiLam2Tuple</a><code>(phi, lam)</code> in \n      <code>radians</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geohash.Geohash-class.html#precision\" class=\"summary-name\">precision</a><br />\n      Get this geohash's precision (<code>int</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geohash.Geohash-class.html#resolution2\" class=\"summary-name\">resolution2</a><br />\n      Get the <i>lon-</i> and <i>latitudinal</i> resolution of this cell in\n      a <a href=\"pygeodesy.geohash.Resolutions2Tuple-class.html\" \n      class=\"link\">Resolutions2Tuple</a><code>(res1, res2)</code>, both in \n      <code>degrees</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geohash.Geohash-class.html#sizes\" class=\"summary-name\">sizes</a><br />\n      DEPRECATED on 2024.07.28, use property <code>Geohash.sizes3</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geohash.Geohash-class.html#sizes3\" class=\"summary-name\">sizes3</a><br />\n      Get the lat-, longitudinal and radial size of this cell in a <a \n      href=\"pygeodesy.geohash.Sizes3Tuple-class.html\" \n      class=\"link\">Sizes3Tuple</a><code>(height, width, radius)</code>, all\n      in <code>meter</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geohash.Geohash-class.html#E\" class=\"summary-name\">E</a><br />\n      Get the cell East of this (<a \n      href=\"pygeodesy.geohash.Geohash-class.html\" \n      class=\"link\">Geohash</a>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geohash.Geohash-class.html#N\" class=\"summary-name\">N</a><br />\n      Get the cell North of this (<a \n      href=\"pygeodesy.geohash.Geohash-class.html\" \n      class=\"link\">Geohash</a>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geohash.Geohash-class.html#NE\" class=\"summary-name\">NE</a><br />\n      Get the cell NorthEast of this (<a \n      href=\"pygeodesy.geohash.Geohash-class.html\" \n      class=\"link\">Geohash</a>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geohash.Geohash-class.html#NW\" class=\"summary-name\">NW</a><br />\n      Get the cell NorthWest of this (<a \n      href=\"pygeodesy.geohash.Geohash-class.html\" \n      class=\"link\">Geohash</a>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geohash.Geohash-class.html#S\" class=\"summary-name\">S</a><br />\n      Get the cell South of this (<a \n      href=\"pygeodesy.geohash.Geohash-class.html\" \n      class=\"link\">Geohash</a>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geohash.Geohash-class.html#SE\" class=\"summary-name\">SE</a><br />\n      Get the cell SouthEast of this (<a \n      href=\"pygeodesy.geohash.Geohash-class.html\" \n      class=\"link\">Geohash</a>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geohash.Geohash-class.html#SW\" class=\"summary-name\">SW</a><br />\n      Get the cell SouthWest of this (<a \n      href=\"pygeodesy.geohash.Geohash-class.html\" \n      class=\"link\">Geohash</a>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geohash.Geohash-class.html#W\" class=\"summary-name\">W</a><br />\n      Get the cell West of this (<a \n      href=\"pygeodesy.geohash.Geohash-class.html\" \n      class=\"link\">Geohash</a>).\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html\">unitsBase._NamedUnit</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html#std_repr\">std_repr</a></code>,\n      <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__new__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__new__</span>&nbsp;(<span class=\"sig-arg\">cls</span>,\n        <span class=\"sig-arg\">lat_ghll</span>,\n        <span class=\"sig-arg\">lon</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">precision</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">eps</span>=<span class=\"sig-default\">2.220446049250313e-16</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n    <br /><em class=\"fname\">Static Method</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.geohash.Geohash-class.html\" \n  class=\"link\">Geohash</a> from an other <a \n  href=\"pygeodesy.geohash.Geohash-class.html\" class=\"link\">Geohash</a> \n  instance or geohash <code>str</code> or from a lat- and longitude.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat_ghll</code></strong> - Latitude (<code>degrees90</code>), a geohash (<a \n          href=\"pygeodesy.geohash.Geohash-class.html\" \n          class=\"link\">Geohash</a>, <code>str</code>) or a location \n          (<code>LatLon</code>, <code>LatLon*Tuple</code>).</li>\n        <li><strong class=\"pname\"><code>lon</code></strong> - Logitude (<code>degrees180)</code>, required if \n          <b><code>lat_ghll</code></b> is <code>degrees90</code>, ignored \n          otherwise.</li>\n        <li><strong class=\"pname\"><code>precision</code></strong> - The desired geohash length (<code>int</code> 1..12) or \n          <code>None</code> or <code>0</code>, see <a \n          href=\"pygeodesy.geohash-module.html#encode\" \n          class=\"link\">encode</a>.</li>\n        <li><strong class=\"pname\"><code>eps</code></strong> - Optional inference tolerance (<code>degrees</code>), see <a \n          href=\"pygeodesy.geohash-module.html#encode\" \n          class=\"link\">encode</a>.</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns: a new object with type S, a subtype of T</dt>\n        <dd>New <a href=\"pygeodesy.geohash.Geohash-class.html\" \n          class=\"link\">Geohash</a>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.geohash.GeohashError-class.html\">GeohashError</a></strong></code> - Invalid <b><code>lat_ghll</code></b>.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.RangeError-class.html\">RangeError</a></strong></code> - Invalid <b><code>lat_gll</code></b> or <b><code>lon</code></b>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>lat_ghll</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__new__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"adjacent\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">adjacent</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">direction</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Determine the adjacent cell in the given compass direction.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>direction</code></strong> - Compass direction ('N', 'S', 'E' or 'W').</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>) otherwise\n          this cell's name, either extended with <code>.D</code>irection.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Geohash of adjacent cell (<a \n          href=\"pygeodesy.geohash.Geohash-class.html\" \n          class=\"link\">Geohash</a>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.geohash.GeohashError-class.html\">GeohashError</a></strong></code> - Invalid geohash or <b><code>direction</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"bounds\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">bounds</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">LatLon</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**LatLon_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the lower-left SW and upper-right NE bounds of this geohash \n  cell.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>LatLon</code></strong> - Optional class to return <i>bounds</i> (<code>LatLon</code>) or \n          <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>LatLon_kwds</code></strong> - Optional, additional <b><code>LatLon</code></b> keyword \n          arguments, ignored if <code><b>LatLon</b> is None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.namedTuples.Bounds2Tuple-class.html\" \n          class=\"link\">Bounds2Tuple</a><code>(latlonSW, latlonNE)</code> of\n          <b><code>LatLon</code></b>s or a <a \n          href=\"pygeodesy.namedTuples.Bounds4Tuple-class.html\" \n          class=\"link\">Bounds4Tuple</a><code>(latS, lonW, latN, \n          lonE)</code> if <code><b>LatLon</b> is None</code>,</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"distanceTo\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">distanceTo</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Estimate the distance between this and an other geohash based the cell\n  sizes.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>other</code></strong> - The other geohash (<a href=\"pygeodesy.geohash.Geohash-class.html\"\n          class=\"link\">Geohash</a>, <code>LatLon</code> or \n          <code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Approximate distance (<code>meter</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - The <b><code>other</code></b> is not a <a \n        href=\"pygeodesy.geohash.Geohash-class.html\" \n        class=\"link\">Geohash</a>, <code>LatLon</code> or <code>str</code>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"distance1To\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">distance1To</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use method <a \n  href=\"pygeodesy.geohash.Geohash-class.html#distanceTo\" \n  class=\"link\">distanceTo</a>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_method</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"distance1\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">distance1</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use method <a \n  href=\"pygeodesy.geohash.Geohash-class.html#distanceTo\" \n  class=\"link\">distanceTo</a>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_method</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"distance2To\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">distance2To</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>,\n        <span class=\"sig-arg\">radius</span>=<span class=\"sig-default\">6371008.771415</span>,\n        <span class=\"sig-arg\">adjust</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use method <a \n  href=\"pygeodesy.geohash.Geohash-class.html#equirectangularTo\" \n  class=\"link\">equirectangularTo</a>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_method</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"distance2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">distance2</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>,\n        <span class=\"sig-arg\">radius</span>=<span class=\"sig-default\">6371008.771415</span>,\n        <span class=\"sig-arg\">adjust</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use method <a \n  href=\"pygeodesy.geohash.Geohash-class.html#equirectangularTo\" \n  class=\"link\">equirectangularTo</a>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_method</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"distance3To\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">distance3To</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>,\n        <span class=\"sig-arg\">radius</span>=<span class=\"sig-default\">6371008.771415</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use method <a \n  href=\"pygeodesy.geohash.Geohash-class.html#haversineTo\" \n  class=\"link\">haversineTo</a>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_method</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"distance3\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">distance3</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>,\n        <span class=\"sig-arg\">radius</span>=<span class=\"sig-default\">6371008.771415</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use method <a \n  href=\"pygeodesy.geohash.Geohash-class.html#haversineTo\" \n  class=\"link\">haversineTo</a>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_method</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"equirectangularTo\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">equirectangularTo</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>,\n        <span class=\"sig-arg\">radius</span>=<span class=\"sig-default\">6371008.771415</span>,\n        <span class=\"sig-arg\">**adjust_limit_wrap</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Approximate the distance between this and an other geohash using \n  function <a href=\"pygeodesy.formy-module.html#equirectangular\" \n  class=\"link\">pygeodesy.equirectangular</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>other</code></strong> - The other geohash (<a href=\"pygeodesy.geohash.Geohash-class.html\"\n          class=\"link\">Geohash</a>, <code>LatLon</code> or \n          <code>str</code>).</li>\n        <li><strong class=\"pname\"><code>radius</code></strong> - Mean earth radius, ellipsoid or datum (<code>meter</code>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a>, <a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a> \n          or <a href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>) or <code>None</code>, see function <a\n          href=\"pygeodesy.formy-module.html#equirectangular\" \n          class=\"link\">pygeodesy.equirectangular</a>.</li>\n        <li><strong class=\"pname\"><code>adjust_limit_wrap</code></strong> - Optional keyword arguments for function <a \n          href=\"pygeodesy.geohash-module.html#equirectangular4\" \n          class=\"link\">pygeodesy.equirectangular4</a>, overriding defaults \n          <code><b>adjust</b>=False, <b>limit</b>=None</code> and \n          <code><b>wrap</b>=False</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Distance (<code>meter</code>, same units as \n          <b><code>radius</code></b> or the ellipsoid or datum axes or \n          <code>radians <i>squared</i></code> if <b><code>radius</code> is \n          None</b> or <code>0</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - The <b><code>other</code></b> is not a <a \n        href=\"pygeodesy.geohash.Geohash-class.html\" \n        class=\"link\">Geohash</a>, <code>LatLon</code> or <code>str</code> \n        or invalid <b><code>radius</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"https://www.EdWilliams.org/avform.htm#flat\" \n        target=\"_top\">Local, flat earth approximation</a>, functions\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"euclideanTo\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">euclideanTo</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>,\n        <span class=\"sig-arg\">**radius_adjust_wrap</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Approximate the distance between this and an other geohash using \n  function <a href=\"pygeodesy.formy-module.html#euclidean\" \n  class=\"link\">pygeodesy.euclidean</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>other</code></strong> - The other geohash (<a href=\"pygeodesy.geohash.Geohash-class.html\"\n          class=\"link\">Geohash</a>, <code>LatLon</code> or \n          <code>str</code>).</li>\n        <li><strong class=\"pname\"><code>radius_adjust_wrap</code></strong> - Optional keyword arguments for function <a \n          href=\"pygeodesy.formy-module.html#euclidean\" \n          class=\"link\">pygeodesy.euclidean</a>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Distance (<code>meter</code>, same units as \n          <b><code>radius</code></b> or the ellipsoid or datum axes).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - The <b><code>other</code></b> is not a <a \n        href=\"pygeodesy.geohash.Geohash-class.html\" \n        class=\"link\">Geohash</a>, <code>LatLon</code> or <code>str</code> \n        or invalid <b><code>radius</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"haversineTo\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">haversineTo</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>,\n        <span class=\"sig-arg\">**radius_wrap</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the distance between this and an other geohash using the <a \n  href=\"pygeodesy.formy-module.html#haversine\" \n  class=\"link\">pygeodesy.haversine</a> formula.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>other</code></strong> - The other geohash (<a href=\"pygeodesy.geohash.Geohash-class.html\"\n          class=\"link\">Geohash</a>, <code>LatLon</code> or \n          <code>str</code>).</li>\n        <li><strong class=\"pname\"><code>radius_wrap</code></strong> - Optional keyword arguments for function <a \n          href=\"pygeodesy.formy-module.html#haversine\" \n          class=\"link\">pygeodesy.haversine</a>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Distance (<code>meter</code>, same units as \n          <b><code>radius</code></b> or the ellipsoid or datum axes).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - The <b><code>other</code></b> is not a <a \n        href=\"pygeodesy.geohash.Geohash-class.html\" \n        class=\"link\">Geohash</a>, <code>LatLon</code> or <code>str</code> \n        or invalid <b><code>radius</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toLatLon\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toLatLon</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">LatLon</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**LatLon_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return (the approximate center of) this geohash cell as an instance of\n  the supplied <code>LatLon</code> class.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>LatLon</code></strong> - Class to use (<code>LatLon</code>) or <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>LatLon_kwds</code></strong> - Optional, additional <b><code>LatLon</code></b> keyword \n          arguments, ignored if <code><b>LatLon</b> is None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>This geohash location (<b><code>LatLon</code></b>) or if \n          <code><b>LatLon</b> is None</code>, a <a \n          href=\"pygeodesy.namedTuples.LatLon2Tuple-class.html\" \n          class=\"link\">LatLon2Tuple</a><code>(lat, lon)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>LatLon</code></b> or \n        <b><code>LatLon_kwds</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"vincentysTo\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">vincentysTo</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>,\n        <span class=\"sig-arg\">**radius_wrap</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the distance between this and an other geohash using the <a \n  href=\"pygeodesy.formy-module.html#vincentys\" \n  class=\"link\">pygeodesy.vincentys</a> formula.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>other</code></strong> - The other geohash (<a href=\"pygeodesy.geohash.Geohash-class.html\"\n          class=\"link\">Geohash</a>, <code>LatLon</code> or \n          <code>str</code>).</li>\n        <li><strong class=\"pname\"><code>radius_wrap</code></strong> - Optional keyword arguments for function <a \n          href=\"pygeodesy.formy-module.html#vincentys\" \n          class=\"link\">pygeodesy.vincentys</a>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Distance (<code>meter</code>, same units as \n          <b><code>radius</code></b> or the ellipsoid or datum axes).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - The <b><code>other</code></b> is not a <a \n        href=\"pygeodesy.geohash.Geohash-class.html\" \n        class=\"link\">Geohash</a>, <code>LatLon</code> or <code>str</code> \n        or invalid <b><code>radius</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"ab\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">ab</h3>\n  <p>DEPRECATED, use property <code>philam</code>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">ab(<span class=\"summary-sig-arg\">self</span>)</span>\n        - DEPRECATED, use property <code>philam</code>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"latlon\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">latlon</h3>\n  <p>Get the lat- and longitude of (the approximate center of) this geohash\n  as a <a href=\"pygeodesy.namedTuples.LatLon2Tuple-class.html\" \n  class=\"link\">LatLon2Tuple</a><code>(lat, lon)</code> in \n  <code>degrees</code>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">latlon(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the lat- and longitude of (the approximate center of) this geohash as a\n<a href=\"pygeodesy.namedTuples.LatLon2Tuple-class.html\" \nclass=\"link\">LatLon2Tuple</a><code>(lat, lon)</code> in \n<code>degrees</code>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"neighbors\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">neighbors</h3>\n  <p>Get all 8 adjacent cells as a <a \n  href=\"pygeodesy.geohash.Neighbors8Dict-class.html\" \n  class=\"link\">Neighbors8Dict</a><code>(N, NE, E, SE, S, SW, W, NW)</code> \n  of <a href=\"pygeodesy.geohash.Geohash-class.html\" \n  class=\"link\">Geohash</a>es.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">neighbors(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get all 8 adjacent cells as a <a \nhref=\"pygeodesy.geohash.Neighbors8Dict-class.html\" \nclass=\"link\">Neighbors8Dict</a><code>(N, NE, E, SE, S, SW, W, NW)</code> of\n<a href=\"pygeodesy.geohash.Geohash-class.html\" class=\"link\">Geohash</a>es.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"philam\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">philam</h3>\n  <p>Get the lat- and longitude of (the approximate center of) this geohash\n  as a <a href=\"pygeodesy.namedTuples.PhiLam2Tuple-class.html\" \n  class=\"link\">PhiLam2Tuple</a><code>(phi, lam)</code> in \n  <code>radians</code>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">philam(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the lat- and longitude of (the approximate center of) this geohash as a\n<a href=\"pygeodesy.namedTuples.PhiLam2Tuple-class.html\" \nclass=\"link\">PhiLam2Tuple</a><code>(phi, lam)</code> in \n<code>radians</code>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"precision\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">precision</h3>\n  <p>Get this geohash's precision (<code>int</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">precision(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get this geohash's precision (<code>int</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"resolution2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">resolution2</h3>\n  <p>Get the <i>lon-</i> and <i>latitudinal</i> resolution of this cell in \n  a <a href=\"pygeodesy.geohash.Resolutions2Tuple-class.html\" \n  class=\"link\">Resolutions2Tuple</a><code>(res1, res2)</code>, both in \n  <code>degrees</code>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">resolution2(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <i>lon-</i> and <i>latitudinal</i> resolution of this cell in a <a \nhref=\"pygeodesy.geohash.Resolutions2Tuple-class.html\" \nclass=\"link\">Resolutions2Tuple</a><code>(res1, res2)</code>, both in \n<code>degrees</code>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"sizes\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">sizes</h3>\n  <p>DEPRECATED on 2024.07.28, use property \n  <code>Geohash.sizes3</code>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">sizes(<span class=\"summary-sig-arg\">self</span>)</span>\n        - DEPRECATED on 2024.07.28, use property <code>Geohash.sizes3</code>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"sizes3\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">sizes3</h3>\n  <p>Get the lat-, longitudinal and radial size of this cell in a <a \n  href=\"pygeodesy.geohash.Sizes3Tuple-class.html\" \n  class=\"link\">Sizes3Tuple</a><code>(height, width, radius)</code>, all in \n  <code>meter</code>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">sizes3(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the lat-, longitudinal and radial size of this cell in a <a \nhref=\"pygeodesy.geohash.Sizes3Tuple-class.html\" \nclass=\"link\">Sizes3Tuple</a><code>(height, width, radius)</code>, all in \n<code>meter</code>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"E\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">E</h3>\n  <p>Get the cell East of this (<a \n  href=\"pygeodesy.geohash.Geohash-class.html\" \n  class=\"link\">Geohash</a>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">E(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the cell East of this (<a href=\"pygeodesy.geohash.Geohash-class.html\" \nclass=\"link\">Geohash</a>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"N\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">N</h3>\n  <p>Get the cell North of this (<a \n  href=\"pygeodesy.geohash.Geohash-class.html\" \n  class=\"link\">Geohash</a>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">N(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the cell North of this (<a href=\"pygeodesy.geohash.Geohash-class.html\" \nclass=\"link\">Geohash</a>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"NE\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">NE</h3>\n  <p>Get the cell NorthEast of this (<a \n  href=\"pygeodesy.geohash.Geohash-class.html\" \n  class=\"link\">Geohash</a>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">NE(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the cell NorthEast of this (<a \nhref=\"pygeodesy.geohash.Geohash-class.html\" class=\"link\">Geohash</a>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"NW\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">NW</h3>\n  <p>Get the cell NorthWest of this (<a \n  href=\"pygeodesy.geohash.Geohash-class.html\" \n  class=\"link\">Geohash</a>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">NW(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the cell NorthWest of this (<a \nhref=\"pygeodesy.geohash.Geohash-class.html\" class=\"link\">Geohash</a>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"S\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">S</h3>\n  <p>Get the cell South of this (<a \n  href=\"pygeodesy.geohash.Geohash-class.html\" \n  class=\"link\">Geohash</a>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">S(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the cell South of this (<a href=\"pygeodesy.geohash.Geohash-class.html\" \nclass=\"link\">Geohash</a>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"SE\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">SE</h3>\n  <p>Get the cell SouthEast of this (<a \n  href=\"pygeodesy.geohash.Geohash-class.html\" \n  class=\"link\">Geohash</a>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">SE(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the cell SouthEast of this (<a \nhref=\"pygeodesy.geohash.Geohash-class.html\" class=\"link\">Geohash</a>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"SW\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">SW</h3>\n  <p>Get the cell SouthWest of this (<a \n  href=\"pygeodesy.geohash.Geohash-class.html\" \n  class=\"link\">Geohash</a>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">SW(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the cell SouthWest of this (<a \nhref=\"pygeodesy.geohash.Geohash-class.html\" class=\"link\">Geohash</a>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"W\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">W</h3>\n  <p>Get the cell West of this (<a \n  href=\"pygeodesy.geohash.Geohash-class.html\" \n  class=\"link\">Geohash</a>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">W(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the cell West of this (<a href=\"pygeodesy.geohash.Geohash-class.html\" \nclass=\"link\">Geohash</a>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.geohash.GeohashError-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.geohash.GeohashError</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.geohash-module.html\">Module&nbsp;geohash</a> ::\n        Class&nbsp;GeohashError\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.geohash.GeohashError-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class GeohashError</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n              object --+                    \n                       |                    \nexceptions.BaseException --+                \n                           |                \n        exceptions.Exception --+            \n                               |            \n        exceptions.StandardError --+        \n                                   |        \n               exceptions.ValueError --+    \n                                       |    \n                      errors._ValueError --+\n                                           |\n                                          <strong class=\"uidshort\">GeohashError</strong>\n</pre>\n\n<hr />\n<p>Geohash encode, decode or other <a \n  href=\"pygeodesy.geohash.Geohash-class.html\" class=\"link\">Geohash</a> \n  issue.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>errors._ValueError</code></b>:\n      <code>__init__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.ValueError</code></b>:\n      <code>__new__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.BaseException</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getslice__</code>,\n      <code>__reduce__</code>,\n      <code>__repr__</code>,\n      <code>__setattr__</code>,\n      <code>__setstate__</code>,\n      <code>__str__</code>,\n      <code>__unicode__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__format__</code>,\n      <code>__hash__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.BaseException</code></b>:\n      <code>args</code>,\n      <code>message</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.geohash.Geohashed-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.geohash.Geohashed</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.geohash-module.html\">Module&nbsp;geohash</a> ::\n        Class&nbsp;Geohashed\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.geohash.Geohashed-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Geohashed</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\nobject --+\n         |\n        <strong class=\"uidshort\">Geohashed</strong>\n</pre>\n\n<hr />\n<p>A cache of en- and decoded geohashes of one precision.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geohash.Geohashed-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">precision</span>,\n        <span class=\"summary-sig-arg\">ndigits</span>=<span class=\"summary-sig-default\">None</span>)</span><br />\n      New <a href=\"pygeodesy.geohash.Geohashed-class.html\" \n      class=\"link\">Geohashed</a> cache.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__len__\"></a><span class=\"summary-sig-name\">__len__</span>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Return the number of <i>unigue</i> geohashes (<code>int</code>).</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"clear\"></a><span class=\"summary-sig-name\">clear</span>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Clear the <code>en-</code> and <code>decoded</code> cache.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geohash.Geohashed-class.html#decoded\" class=\"summary-sig-name\">decoded</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">geohash</span>,\n        <span class=\"summary-sig-arg\">encoded</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Get and cache the <code>(lat, lon)</code> for <code>geohash</code>, \n      see <a href=\"pygeodesy.geohash-module.html#decode\" \n      class=\"link\">decode</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geohash.Geohashed-class.html#encoded\" class=\"summary-sig-name\">encoded</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lat</span>,\n        <span class=\"summary-sig-arg\">lon</span>,\n        <span class=\"summary-sig-arg\">decoded</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Get and cache the <code>geohash</code> for <code>(lat, lon)</code>, \n      see <a href=\"pygeodesy.geohash-module.html#encode\" \n      class=\"link\">encode</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__format__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__repr__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__str__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geohash.Geohashed-class.html#len2\" class=\"summary-name\">len2</a><br />\n      Return 2-tuple <code>(lencoded, ldecoded)</code> with the \n      <code>len</code>gths of the <code>en-</code> and <code>decoded</code>\n      cache.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geohash.Geohashed-class.html#ndigits\" class=\"summary-name\">ndigits</a><br />\n      Get the rounding (<code>int</code> or <code>None</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geohash.Geohashed-class.html#precision\" class=\"summary-name\">precision</a><br />\n      Get the <code>precision</code> (<code>int</code>).\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">precision</span>,\n        <span class=\"sig-arg\">ndigits</span>=<span class=\"sig-default\">None</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.geohash.Geohashed-class.html\" \n  class=\"link\">Geohashed</a> cache.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>precision</code></strong> - The geohash encoded length (<code>int</code>, 1..12).</li>\n        <li><strong class=\"pname\"><code>ndigits</code></strong> - Optional number of digits to round <code>lat</code> and \n          <code>lon</code> to cache keys (<code>int</code>, typically \n          <code><b>ndigits</b>=<b>precision</b></code>) or \n          <code>None</code> for no rounding.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"decoded\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">decoded</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">geohash</span>,\n        <span class=\"sig-arg\">encoded</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Get and cache the <code>(lat, lon)</code> for <code>geohash</code>, \n  see <a href=\"pygeodesy.geohash-module.html#decode\" \n  class=\"link\">decode</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>encoded</code></strong> - If <code>True</code>, cache the result as <code>encoded</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The <code>(lat, lon</code>) pair for <code>geohash</code>.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"encoded\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">encoded</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lat</span>,\n        <span class=\"sig-arg\">lon</span>,\n        <span class=\"sig-arg\">decoded</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Get and cache the <code>geohash</code> for <code>(lat, lon)</code>, \n  see <a href=\"pygeodesy.geohash-module.html#encode\" \n  class=\"link\">encode</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>decoded</code></strong> - If <code>True</code>, cache the result as <code>decoded</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The <code>geohash</code> for pair <code>(lat, lon</code>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"len2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">len2</h3>\n  <p>Return 2-tuple <code>(lencoded, ldecoded)</code> with the \n  <code>len</code>gths of the <code>en-</code> and <code>decoded</code> \n  cache.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">len2(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Return 2-tuple <code>(lencoded, ldecoded)</code> with the \n<code>len</code>gths of the <code>en-</code> and <code>decoded</code> \ncache.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"ndigits\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">ndigits</h3>\n  <p>Get the rounding (<code>int</code> or <code>None</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">ndigits(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the rounding (<code>int</code> or <code>None</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"precision\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">precision</h3>\n  <p>Get the <code>precision</code> (<code>int</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">precision(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <code>precision</code> (<code>int</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.geohash.Neighbors8Dict-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.geohash.Neighbors8Dict</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.geohash-module.html\">Module&nbsp;geohash</a> ::\n        Class&nbsp;Neighbors8Dict\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.geohash.Neighbors8Dict-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Neighbors8Dict</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\nobject --+            \n         |            \n      dict --+        \n             |        \n   <a href=\"pygeodesy.named.ADict-class.html\">named.ADict</a> --+    \n                 |    \n    object --+   |    \n             |   |    \n  <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n                 |    \n  named._NamedDict --+\n                     |\n                    <strong class=\"uidshort\">Neighbors8Dict</strong>\n</pre>\n\n<hr />\n<p>8-Dict <code>(N, NE, E, SE, S, SW, W, NW)</code> of <a \n  href=\"pygeodesy.geohash.Geohash-class.html\" class=\"link\">Geohash</a>es, \n  providing key <i>and</i> attribute access to the items.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\"><pre class=\"literalblock\">\nnew empty dictionary\n\n</pre></span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geohash.Neighbors8Dict-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">**kwds</span>)</span><br />\n      x.__init__(...) initializes x; see help(type(x)) for signature</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>named._NamedDict</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattr__</code>,\n      <code>__getitem__</code>,\n      <code>__setattr__</code>,\n      <code>__setitem__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named.ADict-class.html\">named.ADict</a></code></b>:\n      <code><a href=\"pygeodesy.named.ADict-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named.ADict-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named.ADict-class.html#set_\">set_</a></code>,\n      <code><a href=\"pygeodesy.named.ADict-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named.ADict-class.html#toStr\">toStr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>dict</code></b>:\n      <code>__cmp__</code>,\n      <code>__contains__</code>,\n      <code>__delitem__</code>,\n      <code>__eq__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__gt__</code>,\n      <code>__iter__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__ne__</code>,\n      <code>__new__</code>,\n      <code>__sizeof__</code>,\n      <code>clear</code>,\n      <code>copy</code>,\n      <code>fromkeys</code>,\n      <code>get</code>,\n      <code>has_key</code>,\n      <code>items</code>,\n      <code>iteritems</code>,\n      <code>iterkeys</code>,\n      <code>itervalues</code>,\n      <code>keys</code>,\n      <code>pop</code>,\n      <code>popitem</code>,\n      <code>setdefault</code>,\n      <code>update</code>,\n      <code>values</code>,\n      <code>viewitems</code>,\n      <code>viewkeys</code>,\n      <code>viewvalues</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS VARIABLES ==================== -->\n<a name=\"section-ClassVariables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Class Variables</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>dict</code></b>:\n      <code>__hash__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named.ADict-class.html\">named.ADict</a></code></b>:\n      <code><a href=\"pygeodesy.named.ADict-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named.ADict-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">**kwds</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>x.__init__(...) initializes x; see help(type(x)) for signature</p>\n  <dl class=\"fields\">\n    <dt>Returns: <pre class=\"literalblock\">\nnew empty dictionary\n\n</pre></dt>\n    <dt>Overrides:\n        object.__init__\n        <dd><em class=\"note\">(inherited documentation)</em></dd>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.geohash.Resolutions2Tuple-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.geohash.Resolutions2Tuple</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.geohash-module.html\">Module&nbsp;geohash</a> ::\n        Class&nbsp;Resolutions2Tuple\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.geohash.Resolutions2Tuple-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Resolutions2Tuple</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n   object --+        \n            |        \n        tuple --+    \n                |    \n   object --+   |    \n            |   |    \n <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n                |    \n<a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a> --+\n                    |\n                   <strong class=\"uidshort\">Resolutions2Tuple</strong>\n</pre>\n\n<hr />\n<p>2-Tuple <code>(res1, res2)</code> with the primary \n  <i>(longitudinal)</i> and secondary <i>(latitudinal)</i> resolution, both\n  in <code>degrees</code>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__delattr__\">__delattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__getattr__\">__getattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__setattr__\">__setattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#items\">items</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iteritems\">iteritems</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iterunits\">iterunits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#reUnit\">reUnit</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toUnits\">toUnits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>tuple</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__eq__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__iter__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__rmul__</code>,\n      <code>count</code>,\n      <code>index</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__new__\">__new__</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geohash.Resolutions2Tuple-class.html#lat\" class=\"summary-name\">lat</a><br />\n      Get the secondary, latitudinal resolution (<code>degrees</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geohash.Resolutions2Tuple-class.html#lon\" class=\"summary-name\">lon</a><br />\n      Get the primary, longitudinal resolution (<code>degrees</code>).\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"lat\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">lat</h3>\n  <p>Get the secondary, latitudinal resolution (<code>degrees</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">lat(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the secondary, latitudinal resolution (<code>degrees</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"lon\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">lon</h3>\n  <p>Get the primary, longitudinal resolution (<code>degrees</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">lon(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the primary, longitudinal resolution (<code>degrees</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.geohash.Sizes3Tuple-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.geohash.Sizes3Tuple</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.geohash-module.html\">Module&nbsp;geohash</a> ::\n        Class&nbsp;Sizes3Tuple\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.geohash.Sizes3Tuple-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Sizes3Tuple</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n   object --+        \n            |        \n        tuple --+    \n                |    \n   object --+   |    \n            |   |    \n <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n                |    \n<a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a> --+\n                    |\n                   <strong class=\"uidshort\">Sizes3Tuple</strong>\n</pre>\n\n<hr />\n<p>3-Tuple <code>(height, width, radius)</code> with latitudinal \n  <code>height</code>, longitudinal <code>width</code> and area \n  <code>radius</code>, all in <code>meter</code>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__delattr__\">__delattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__getattr__\">__getattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__setattr__\">__setattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#items\">items</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iteritems\">iteritems</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iterunits\">iterunits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#reUnit\">reUnit</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toUnits\">toUnits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>tuple</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__eq__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__iter__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__rmul__</code>,\n      <code>count</code>,\n      <code>index</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__new__\">__new__</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.geoids-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.geoids</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        Module&nbsp;geoids\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.geoids-module.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== MODULE DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Module geoids</h1><p class=\"nomargin-top\"></p>\n<p>Geoid models and geoid height interpolations.</p>\n  <p>Classes <a href=\"pygeodesy.geoids.GeoidEGM96-class.html\" \n  class=\"link\">GeoidEGM96</a>, <a \n  href=\"pygeodesy.geoids.GeoidG2012B-class.html\" \n  class=\"link\">GeoidG2012B</a>, <a \n  href=\"pygeodesy.geoids.GeoidKarney-class.html\" \n  class=\"link\">GeoidKarney</a> and <a \n  href=\"pygeodesy.geoids.GeoidPGM-class.html\" class=\"link\">GeoidPGM</a> to \n  interpolate the height of various <a \n  href=\"https://WikiPedia.org/wiki/Geoid\" target=\"_top\">geoid</a>s at \n  <code>LatLon</code> locations or separate lat-/longitudes using various \n  interpolation methods and <code>geoid</code> model files.</p>\n  <p><a href=\"pygeodesy.geoids.GeoidKarney-class.html\" \n  class=\"link\">GeoidKarney</a> is a transcoding of <i>Charles Karney</i>'s \n  C++ class <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/geoid.html\" \n  target=\"_top\">Geoid</a> to pure Python.</p>\n  <p>The <a href=\"pygeodesy.geoids.GeoidEGM96-class.html\" \n  class=\"link\">GeoidEGM96</a>, <a \n  href=\"pygeodesy.geoids.GeoidG2012B-class.html\" \n  class=\"link\">GeoidG2012B</a> and <a \n  href=\"pygeodesy.geoids.GeoidPGM-class.html\" class=\"link\">GeoidPGM</a> \n  interpolators both depend on <a href=\"https://SciPy.org\" \n  target=\"_top\">scipy</a> and <a href=\"https://PyPI.org/project/numpy\" \n  target=\"_top\">numpy</a> and require those packages to be installed.</p>\n  <p>In addition, each geoid interpolator needs <code>grid knots</code> \n  (down)loaded from a <code>geoid</code> model file, <i>specific to the \n  interpolator</i>.  More details below and in the documentation of the \n  interpolator class.  For each interpolator, there are several \n  interpolation choices, like <i>linear</i>, <i>cubic</i>, etc.</p>\n  <h1 class=\"heading\">Typical usage</h1>\n    <ol start=\"1\">\n      <li>\n        Choose an interpolator class <a \n        href=\"pygeodesy.geoids.GeoidEGM96-class.html\" \n        class=\"link\">GeoidEGM96</a>, <a \n        href=\"pygeodesy.geoids.GeoidG2012B-class.html\" \n        class=\"link\">GeoidG2012B</a>, <a \n        href=\"pygeodesy.geoids.GeoidKarney-class.html\" \n        class=\"link\">GeoidKarney</a> or <a \n        href=\"pygeodesy.geoids.GeoidPGM-class.html\" \n        class=\"link\">GeoidPGM</a> and download a <code>geoid</code> model \n        file, containing locations with known heights also referred to as \n        the <code>grid knots</code>.  See the documentation of the \n        interpolator class for references to available <code>grid</code> \n        models.\n        <p><code>&gt;&gt;&gt; from pygeodesy import GeoidEGM96 as GeoidXyz\n        # or GeoidG2012B, -Karney or -PGM</code></p>\n      </li>\n      <li>\n        Instantiate an interpolator with the <code>geoid</code> model file \n        and use keyword arguments to select different interpolation options\n        <p><code>&gt;&gt;&gt; ginterpolator = GeoidXyz(geoid_model_file, \n        **options)</code></p>\n      </li>\n      <li>\n        Get the interpolated geoid height of <code>LatLon</code> \n        location(s) with\n        <p><code>&gt;&gt;&gt; ll = LatLon(1, 2, ...)</code></p>\n        <p><code>&gt;&gt;&gt; h = ginterpolator(ll)</code></p>\n        <p>or</p>\n        <p><code>&gt;&gt;&gt; h1, h2, h3, ... = ginterpolator(ll1, ll2, \n        ll3, ...)</code></p>\n        <p>or a list, tuple, generator, etc. of <code>LatLon</code>s</p>\n        <p><code>&gt;&gt;&gt; hs = ginterpolator(lls)</code></p>\n      </li>\n      <li>\n        For separate lat- and longitudes invoke the <code>height</code> \n        method as\n        <p><code>&gt;&gt;&gt; h = ginterpolator.height(lat, lon)</code></p>\n        <p>or as 2 lists, 2 tuples, etc.</p>\n        <p><code>&gt;&gt;&gt; hs = ginterpolator.height(lats, \n        lons)</code></p>\n        <p>or for several positionals use the <code>height_</code> \n        method</p>\n        <p><code>&gt;&gt;&gt; h1, h2, ... = ginterpolator.height_(lat1, \n        lon1, lat2, lon2, ...)</code></p>\n      </li>\n      <li>\n        An example is in <a \n        href=\"https://GitHub.com/mrJean1/PyGeodesy/issues/64\" \n        target=\"_top\">issue #64</a>, courtesy of SBFRF.\n      </li>\n    </ol>\n\n<hr />\n<div class=\"fields\">      <strong>Notes:</strong>\n      <ul class=\"nomargin-top\">\n        <li>\n        Classes <a href=\"pygeodesy.geoids.GeoidEGM96-class.html\" \n        class=\"link\">GeoidEGM96</a>, <a \n        href=\"pygeodesy.geoids.GeoidG2012B-class.html\" \n        class=\"link\">GeoidG2012B</a> and <a \n        href=\"pygeodesy.geoids.GeoidPGM-class.html\" \n        class=\"link\">GeoidPGM</a> require both <a \n        href=\"https://PyPI.org/project/numpy\" target=\"_top\">numpy</a> and \n        <a href=\"https://PyPI.org/project/scipy\" target=\"_top\">scipy</a> to\n        be installed.\n        </li>\n        <li>\n        Errors from <code>scipy</code> are raised as <a \n        href=\"pygeodesy.errors.SciPyError-class.html\" \n        class=\"link\">SciPyError</a>s.  Warnings issued by \n        <code>scipy</code> can be thrown as <a \n        href=\"pygeodesy.errors.SciPyWarning-class.html\" \n        class=\"link\">SciPyWarning</a> exceptions, provided Python \n        <code>warnings</code> are filtered accordingly, see <a \n        href=\"pygeodesy.errors.SciPyWarning-class.html\" \n        class=\"link\">SciPyWarning</a>.\n        </li>\n      </ul>\n      <p><strong>See Also:</strong>\n        <i>Karney</i>'s <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/index.html\" \n        target=\"_top\">GeographicLib</a>, <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/geoid.html\" \n        target=\"_top\">Geoid height</a> and <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/geoid.html#geoidinst\"\n        target=\"_top\">Installing the Geoid datasets</a>, World Geodetic \n        System 1984 (WG84) and <a \n        href=\"https://earth-info.NGA.mil/index.php?dir=wgs84&amp;action=wgs84\"\n        target=\"_top\">Earth Gravitational Model 96 (EGM96) Data and \n        Apps</a>, <a \n        href=\"https://docs.SciPy.org/doc/scipy/reference/interpolate.html\" \n        target=\"_top\">SciPy</a> interpolation <a \n        href=\"https://docs.SciPy.org/doc/scipy/reference/generated/scipy.interpolate.RectBivariateSpline.html\"\n        target=\"_top\">RectBivariateSpline</a>, <a \n        href=\"https://docs.scipy.org/doc/scipy/reference/generated/scipy.interpolate.bisplrep.html\"\n        target=\"_top\">bisplrep/-ev</a> and <a \n        href=\"https://docs.SciPy.org/doc/scipy/reference/generated/scipy.interpolate.interp2d.html\"\n        target=\"_top\">interp2d</a>, functions <a \n        href=\"pygeodesy.elevations-module.html#elevation2\" \n        class=\"link\">elevations.elevation2</a> and <a \n        href=\"pygeodesy.elevations-module.html#geoidHeight2\" \n        class=\"link\">elevations.geoidHeight2</a>, <a \n        href=\"https://www.YouTube.com/watch?v=dX6a6kCk3Po\" \n        target=\"_top\"><i>Ellispoid vs Orthometric Elevations</i></a> and <a\n        href=\"https://Wiki.ROS.org/mavros\" target=\"_top\">6.22.1 Avoiding \n        Pitfalls Related to Ellipsoid Height and Height Above Mean Sea \n        Level</a>.\n      </p>\n      <p><strong>Version:</strong>\n        26.02.02\n      </p>\n</div><!-- ==================== CLASSES ==================== -->\n<a name=\"section-Classes\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Classes</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geoids.GeoidError-class.html\" class=\"summary-name\">GeoidError</a><br />\n      Geoid interpolator <code>Geoid...</code> or interpolation issue.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geoids._GeoidBase-class.html\" class=\"summary-name\">_GeoidBase</a><br />\n      (INTERNAL) Base class for <code>Geoid...</code>s.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geoids.GeoidEGM96-class.html\" class=\"summary-name\">GeoidEGM96</a><br />\n      Geoid height interpolator for the EGM96 <a \n        href=\"https://earth-info.NGA.mil\" target=\"_top\">15 Minute \n        Interpolation Grid</a> based on <code>SciPy</code> interpolation <a\n        \n        href=\"https://docs.SciPy.org/doc/scipy/reference/generated/scipy.interpolate.RectBivariateSpline.html\"\n        target=\"_top\">RectBivariateSpline</a>, <a \n        href=\"https://docs.SciPy.org/doc/scipy/reference/generated/scipy.interpolate.interp2d.html\"\n        target=\"_top\">interp2d</a> or <a \n        href=\"https://docs.scipy.org/doc/scipy/reference/generated/scipy.interpolate.bisplrep.html\"\n        target=\"_top\">bisplrep/-ev</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geoids.GeoidG2012B-class.html\" class=\"summary-name\">GeoidG2012B</a><br />\n      Geoid height interpolator for <a \n        href=\"https://Geodesy.NOAA.gov/GEOID/GEOID12B/\" \n        target=\"_top\">GEOID12B Model</a> grids <a \n        href=\"https://Geodesy.NOAA.gov/GEOID/GEOID12B/GEOID12B_CONUS.shtml\"\n        target=\"_top\">CONUS</a>, <a \n        href=\"https://Geodesy.NOAA.gov/GEOID/GEOID12B/GEOID12B_AK.shtml\" \n        target=\"_top\">Alaska</a>, <a \n        href=\"https://Geodesy.NOAA.gov/GEOID/GEOID12B/GEOID12B_HI.shtml\" \n        target=\"_top\">Hawaii</a>, <a \n        href=\"https://Geodesy.NOAA.gov/GEOID/GEOID12B/GEOID12B_GMNI.shtml\" \n        target=\"_top\">Guam and Northern Mariana Islands</a>, <a \n        href=\"https://Geodesy.NOAA.gov/GEOID/GEOID12B/GEOID12B_PRVI.shtml\" \n        target=\"_top\">Puerto Rico and U.S. Virgin Islands</a> and <a \n        href=\"https://Geodesy.NOAA.gov/GEOID/GEOID12B/GEOID12B_AS.shtml\" \n        target=\"_top\">American Samoa</a> based on <code>SciPy</code> \n        interpolation <a \n        href=\"https://docs.SciPy.org/doc/scipy/reference/generated/scipy.interpolate.RectBivariateSpline.html\"\n        target=\"_top\">RectBivariateSpline</a>, <a \n        href=\"https://docs.SciPy.org/doc/scipy/reference/generated/scipy.interpolate.interp2d.html\"\n        target=\"_top\">interp2d</a> or <a \n        href=\"https://docs.scipy.org/doc/scipy/reference/generated/scipy.interpolate.bisplrep.html\"\n        target=\"_top\">bisplrep/-ev</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geoids.GeoidHeight5Tuple-class.html\" class=\"summary-name\">GeoidHeight5Tuple</a><br />\n      5-Tuple <code>(lat, lon, egm84, egm96, egm2008)</code> for <a \n        href=\"https://SourceForge.net/projects/geographiclib/files/testdata/\"\n        target=\"_top\">GeoidHeights.dat</a> tests with the heights for 3 \n        different EGM grids at <code>degrees90</code> and \n        <code>degrees180</code> degrees (after converting <code>lon</code> \n        from original <code>0 &lt;= EasterLon &lt;= 360</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geoids.GeoidKarney-class.html\" class=\"summary-name\">GeoidKarney</a><br />\n      Geoid height interpolator for <i>Karney</i>'s <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/geoid.html\" \n        target=\"_top\">GeographicLib Earth Gravitational Model (EGM)</a> \n        geoid <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/geoid.html#geoidinst\"\n        target=\"_top\">egm*.pgm</a> datasets using bilinear or <a \n        href=\"https://dl.ACM.org/citation.cfm?id=368443\" \n        target=\"_top\">cubic</a> interpolation and <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/geoid.html#geoidcache\"\n        target=\"_top\">caching</a> in pure Python, transcoded from \n        <i>Karney</i>'s <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/geoid.html#geoidinterp\"\n        target=\"_top\">C++ class Geoid</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geoids.GeoidPGM-class.html\" class=\"summary-name\">GeoidPGM</a><br />\n      Geoid height interpolator for <i>Karney</i>'s <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/geoid.html\" \n        target=\"_top\">GeographicLib Earth Gravitational Model (EGM)</a> \n        geoid <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/geoid.html#geoidinst\"\n        target=\"_top\">egm*.pgm</a> datasets but based on <code>SciPy</code>\n        <a \n        href=\"https://docs.SciPy.org/doc/scipy/reference/generated/scipy.interpolate.RectBivariateSpline.html\"\n        target=\"_top\">RectBivariateSpline</a>, <a \n        href=\"https://docs.SciPy.org/doc/scipy/reference/generated/scipy.interpolate.bisplrep.html\"\n        target=\"_top\">bisplrep/-ev</a> or <a \n        href=\"https://docs.SciPy.org/doc/scipy/reference/generated/scipy.interpolate.interp2d.html\"\n        target=\"_top\">interp2d</a> interpolation.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geoids.PGMError-class.html\" class=\"summary-name\">PGMError</a><br />\n      An issue while parsing or cropping an <code>egm*.pgm</code> geoid \n        dataset.\n    </td>\n  </tr>\n</table>\n<!-- ==================== FUNCTIONS ==================== -->\n<a name=\"section-Functions\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Functions</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geoids-module.html#egmGeoidHeights\" class=\"summary-sig-name\">egmGeoidHeights</a>(<span class=\"summary-sig-arg\">GeoidHeights_dat</span>)</span><br />\n      Generate geoid <a \n      href=\"https://GeographicLib.SourceForge.io/C++/doc/geoid.html#geoidinst\"\n      target=\"_top\">egm*.pgm</a> height tests from <a \n      href=\"https://SourceForge.net/projects/geographiclib/files/testdata/\"\n      target=\"_top\">GeoidHeights.dat</a> <a \n      href=\"https://GeographicLib.SourceForge.io/C++/doc/geoid.html#testgeoid\"\n      target=\"_top\">Test data for Geoids</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== VARIABLES ==================== -->\n<a name=\"section-Variables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Variables</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"__all__\"></a><span class=\"summary-name\">__all__</span> = <code title=\"_ALL_LAZY.geoids\">_ALL_LAZY.geoids</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"geoids\"></a><span class=\"summary-name\">geoids</span> = <code title=\"_sys.argv [1:]\">_sys.argv [1:]</code>\n    </td>\n  </tr>\n</table>\n<!-- ==================== FUNCTION DETAILS ==================== -->\n<a name=\"section-FunctionDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Function Details</span></td>\n</tr>\n</table>\n<a name=\"egmGeoidHeights\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">egmGeoidHeights</span>&nbsp;(<span class=\"sig-arg\">GeoidHeights_dat</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Generate geoid <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/geoid.html#geoidinst\" \n  target=\"_top\">egm*.pgm</a> height tests from <a \n  href=\"https://SourceForge.net/projects/geographiclib/files/testdata/\" \n  target=\"_top\">GeoidHeights.dat</a> <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/geoid.html#testgeoid\" \n  target=\"_top\">Test data for Geoids</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>GeoidHeights_dat</code></strong> - The un-gz-ed <code>GeoidHeights.dat</code> file (<code>str</code>\n          or <code>file</code> handle).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>For each test, yield a <a \n          href=\"pygeodesy.geoids.GeoidHeight5Tuple-class.html\" \n          class=\"link\">GeoidHeight5Tuple</a><code>(lat, lon, egm84, egm96, \n          egm2008)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.geoids.GeoidError-class.html\">GeoidError</a></strong></code> - Invalid <b><code>GeoidHeights_dat</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        Function <a href=\"pygeodesy.geoids-module.html#egmGeoidHeights\" \n        class=\"link\">egmGeoidHeights</a> is used to test the geoids <a \n        href=\"pygeodesy.geoids.GeoidKarney-class.html\" \n        class=\"link\">GeoidKarney</a> and <a \n        href=\"pygeodesy.geoids.GeoidPGM-class.html\" \n        class=\"link\">GeoidPGM</a>, see PyGeodesy module \n        <code>test/testGeoids.py</code>.\n      </p>\n</div></td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.geoids.GeoidEGM96-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.geoids.GeoidEGM96</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.geoids-module.html\">Module&nbsp;geoids</a> ::\n        Class&nbsp;GeoidEGM96\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.geoids.GeoidEGM96-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class GeoidEGM96</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n      object --+                \n               |                \n    <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+            \n                   |            \n<a href=\"pygeodesy.heights._HeightNamed-class.html\">heights._HeightNamed</a> --+        \n                       |        \n     <a href=\"pygeodesy.heights._HeightBase-class.html\">heights._HeightBase</a> --+    \n                           |    \n                  <a href=\"pygeodesy.geoids._GeoidBase-class.html\">_GeoidBase</a> --+\n                               |\n                              <strong class=\"uidshort\">GeoidEGM96</strong>\n</pre>\n\n<hr />\n<p>Geoid height interpolator for the EGM96 <a \n  href=\"https://earth-info.NGA.mil\" target=\"_top\">15 Minute Interpolation \n  Grid</a> based on <code>SciPy</code> interpolation <a \n  href=\"https://docs.SciPy.org/doc/scipy/reference/generated/scipy.interpolate.RectBivariateSpline.html\"\n  target=\"_top\">RectBivariateSpline</a>, <a \n  href=\"https://docs.SciPy.org/doc/scipy/reference/generated/scipy.interpolate.interp2d.html\"\n  target=\"_top\">interp2d</a> or <a \n  href=\"https://docs.scipy.org/doc/scipy/reference/generated/scipy.interpolate.bisplrep.html\"\n  target=\"_top\">bisplrep/-ev</a>.</p>\n  <p>Use only the <code>WW15MGH.GRD</code> file, unzipped from the EGM96 <a\n  href=\"https://earth-info.NGA.mil/index.php?dir=wgs84&amp;action=wgs84\" \n  target=\"_top\">15 Minute Interpolation Grid</a> download.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geoids.GeoidEGM96-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">EGM96_grd</span>,\n        <span class=\"summary-sig-arg\">datum</span>=<span class=\"summary-sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"summary-sig-arg\">kind</span>=<span class=\"summary-sig-default\">3</span>,\n        <span class=\"summary-sig-arg\">smooth</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">**name_crop</span>)</span><br />\n      New <a href=\"pygeodesy.geoids.GeoidEGM96-class.html\" \n      class=\"link\">GeoidEGM96</a> interpolator.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geoids.GeoidEGM96-class.html#__call__\" class=\"summary-sig-name\">__call__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">*llis</span>,\n        <span class=\"summary-sig-arg\">**wrap_H</span>)</span><br />\n      Interpolate the geoid (or orthometric) height for one or more \n      locations.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geoids.GeoidEGM96-class.html#height\" class=\"summary-sig-name\">height</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lats</span>,\n        <span class=\"summary-sig-arg\">lons</span>,\n        <span class=\"summary-sig-arg\">**wrap</span>)</span><br />\n      Interpolate the geoid height for one or several lat-/longitudes.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.geoids._GeoidBase-class.html\">_GeoidBase</a></code></b>:\n      <code><a href=\"pygeodesy.geoids._GeoidBase-class.html#__enter__\">__enter__</a></code>,\n      <code><a href=\"pygeodesy.geoids._GeoidBase-class.html#__exit__\">__exit__</a></code>,\n      <code><a href=\"pygeodesy.geoids._GeoidBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.geoids._GeoidBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.geoids._GeoidBase-class.html#center\">center</a></code>,\n      <code><a href=\"pygeodesy.geoids._GeoidBase-class.html#close\">close</a></code>,\n      <code><a href=\"pygeodesy.geoids._GeoidBase-class.html#height_\">height_</a></code>,\n      <code><a href=\"pygeodesy.geoids._GeoidBase-class.html#highest\">highest</a></code>,\n      <code><a href=\"pygeodesy.geoids._GeoidBase-class.html#loweright\">loweright</a></code>,\n      <code><a href=\"pygeodesy.geoids._GeoidBase-class.html#lowerleft\">lowerleft</a></code>,\n      <code><a href=\"pygeodesy.geoids._GeoidBase-class.html#lowerright\">lowerright</a></code>,\n      <code><a href=\"pygeodesy.geoids._GeoidBase-class.html#lowest\">lowest</a></code>,\n      <code><a href=\"pygeodesy.geoids._GeoidBase-class.html#outside\">outside</a></code>,\n      <code><a href=\"pygeodesy.geoids._GeoidBase-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.geoids._GeoidBase-class.html#upperleft\">upperleft</a></code>,\n      <code><a href=\"pygeodesy.geoids._GeoidBase-class.html#upperright\">upperright</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.geoids._GeoidBase-class.html\">_GeoidBase</a></code></b>:\n      <code><a href=\"pygeodesy.geoids._GeoidBase-class.html#closed\">closed</a></code>,\n      <code><a href=\"pygeodesy.geoids._GeoidBase-class.html#cropped\">cropped</a></code>,\n      <code><a href=\"pygeodesy.geoids._GeoidBase-class.html#dtype\">dtype</a></code>,\n      <code><a href=\"pygeodesy.geoids._GeoidBase-class.html#endian\">endian</a></code>,\n      <code><a href=\"pygeodesy.geoids._GeoidBase-class.html#hits\">hits</a></code>,\n      <code><a href=\"pygeodesy.geoids._GeoidBase-class.html#kind\">kind</a></code>,\n      <code><a href=\"pygeodesy.geoids._GeoidBase-class.html#knots\">knots</a></code>,\n      <code><a href=\"pygeodesy.geoids._GeoidBase-class.html#mean\">mean</a></code>,\n      <code><a href=\"pygeodesy.geoids._GeoidBase-class.html#nBytes\">nBytes</a></code>,\n      <code><a href=\"pygeodesy.geoids._GeoidBase-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.geoids._GeoidBase-class.html#pgm\">pgm</a></code>,\n      <code><a href=\"pygeodesy.geoids._GeoidBase-class.html#sizeB\">sizeB</a></code>,\n      <code><a href=\"pygeodesy.geoids._GeoidBase-class.html#smooth\">smooth</a></code>,\n      <code><a href=\"pygeodesy.geoids._GeoidBase-class.html#stdev\">stdev</a></code>,\n      <code><a href=\"pygeodesy.geoids._GeoidBase-class.html#u2B\">u2B</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.heights._HeightBase-class.html\">heights._HeightBase</a></code></b>:\n      <code><a href=\"pygeodesy.heights._HeightBase-class.html#numpy\">numpy</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightBase-class.html#scipy\">scipy</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightBase-class.html#scipy_interpolate\">scipy_interpolate</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.heights._HeightNamed-class.html\">heights._HeightNamed</a></code></b>:\n      <code><a href=\"pygeodesy.heights._HeightNamed-class.html#datum\">datum</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightNamed-class.html#kmin\">kmin</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightNamed-class.html#wrap\">wrap</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">EGM96_grd</span>,\n        <span class=\"sig-arg\">datum</span>=<span class=\"sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"sig-arg\">kind</span>=<span class=\"sig-default\">3</span>,\n        <span class=\"sig-arg\">smooth</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">**name_crop</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.geoids.GeoidEGM96-class.html\" \n  class=\"link\">GeoidEGM96</a> interpolator.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>EGM96_grd</code></strong> - An <code>EGM96_grd</code> grid file name (<code>.GRD</code>).</li>\n        <li><strong class=\"pname\"><code>datum</code></strong> - Optional grid datum (<a href=\"pygeodesy.datums.Datum-class.html\" \n          class=\"link\">Datum</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a> or <a \n          href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>), overriding <code>WGS84</code>.</li>\n        <li><strong class=\"pname\"><code>kind</code></strong> - <code>scipy.interpolate</code> order (<code>int</code>), use 1..5\n          for <a \n          href=\"https://docs.SciPy.org/doc/scipy/reference/generated/scipy.interpolate.RectBivariateSpline.html\"\n          target=\"_top\">RectBivariateSpline</a> or -1, -3 or -5 for <a \n          href=\"https://docs.SciPy.org/doc/scipy/reference/generated/scipy.interpolate.bisplrep.html\"\n          target=\"_top\">bisplrep/-ev</a> or <a \n          href=\"https://docs.SciPy.org/doc/scipy/reference/generated/scipy.interpolate.interp2d.html\"\n          target=\"_top\">interp2d</a> <code>linear</code>, \n          <code>cubic</code> respectively <code>quintic</code>, see note \n          for more details.</li>\n        <li><strong class=\"pname\"><code>smooth</code></strong> - Smoothing factor for <code><b>kind</b>=1..5</code> only \n          (<code>int</code>).</li>\n        <li><strong class=\"pname\"><code>name_crop</code></strong> - Optional geoid <code><b>name</b>=NN</code> (<code>str</code>) and\n          UNSUPPORTED keyword argument <code><b>crop</b>=None</code>.</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.geoids.GeoidError-class.html\">GeoidError</a></strong></code> - Invalid <b><code>crop</code></b>, <b><code>kind</code></b> or \n        <b><code>smooth</code></b> or a ECM96 grid file \n        <b><code>ECM96_grd</code></b> issue.</li>\n        <li><code><strong class='fraise'>ImportError</strong></code> - Package <code>numpy</code> or <code>scipy</code> not found or not \n        installed.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.LenError-class.html\">LenError</a></strong></code> - Grid file <b><code>EGM96_grd</code></b> axis mismatch.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.SciPyError-class.html\">SciPyError</a></strong></code> - A <code>scipy</code> issue.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.SciPyWarning-class.html\">SciPyWarning</a></strong></code> - A <code>scipy</code> warning as exception.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>datum</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        Specify <code><b>kind</b>=-1, -3 or -5</code> to use \n        <code>scipy.interpolate.interp2d</code> before or \n        <code>scipy.interpolate.bisplrep/-ev</code> since \n        <code>Scipy</code> version 1.14.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"__call__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__call__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">*llis</span>,\n        <span class=\"sig-arg\">**wrap_H</span>)</span>\n    <br /><em class=\"fname\">(Call operator)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Interpolate the geoid (or orthometric) height for one or more \n  locations.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>llis</code></strong> - One or several locations (each <code>LatLon</code>), all \n          positional.</li>\n        <li><strong class=\"pname\"><code>wrap_H</code></strong> - Keyword arguments <code><b>wrap</b>=False</code> \n          (<code>bool</code>) and <code><b>H</b>=False</code> \n          (<code>bool</code>).  Use <code><b>wrap</b>=True</code> to wrap \n          or <i>normalize</i> all <b><code>llis</code></b> locations.  If \n          <code><b>H</b> is True</code>, return the <i>orthometric</i> \n          height instead of the <i>geoid</i> height at each location.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A single geoid (or orthometric) height (<code>float</code>) or a \n          list or tuple of geoid (or orthometric) heights (each \n          <code>float</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.geoids.GeoidError-class.html\">GeoidError</a></strong></code> - Insufficient number of <b><code>llis</code></b>, an invalid \n        <b><code>lli</code></b> or the <code>egm*.pgm</code> geoid file is \n        closed.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.RangeError-class.html\">RangeError</a></strong></code> - An <b><code>lli</code></b> is outside this geoid's lat- or \n        longitude range.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.SciPyError-class.html\">SciPyError</a></strong></code> - A <code>scipy</code> issue.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.SciPyWarning-class.html\">SciPyWarning</a></strong></code> - A <code>scipy</code> warning as exception.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.heights._HeightNamed-class.html#__call__\">heights._HeightNamed.__call__</a>\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        To obtain <i>orthometric</i> heights, each <b><code>llis</code></b>\n        location must have an ellipsoid <code>height</code> or \n        <code>h</code> attribute, otherwise <code>height=0</code> is used.\n      </p>\n      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.formy-module.html#heightOrthometric\" \n        class=\"link\">pygeodesy.heightOrthometric</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"height\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">height</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lats</span>,\n        <span class=\"sig-arg\">lons</span>,\n        <span class=\"sig-arg\">**wrap</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Interpolate the geoid height for one or several lat-/longitudes.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lats</code></strong> - Latitude or latitudes (each <code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lons</code></strong> - Longitude or longitudes (each <code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - Use <code><b>wrap</b>=True</code> to wrap or <i>normalize</i> all\n          <b><code>lats</code></b> and <b><code>lons</code></b>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A single geoid height (<code>float</code>) or a list of geoid \n          heights (each <code>float</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.geoids.GeoidError-class.html\">GeoidError</a></strong></code> - Insufficient or unequal number of <b><code>lats</code></b> and \n        <b><code>lons</code></b>.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.RangeError-class.html\">RangeError</a></strong></code> - A <b><code>lat</code></b> or <b><code>lon</code></b> is outside \n        this geoid's lat- or longitude range.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.SciPyError-class.html\">SciPyError</a></strong></code> - A <code>scipy</code> issue.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.SciPyWarning-class.html\">SciPyWarning</a></strong></code> - A <code>scipy</code> warning as exception.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.heights._HeightNamed-class.html#height\">heights._HeightNamed.height</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.geoids.GeoidError-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.geoids.GeoidError</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.geoids-module.html\">Module&nbsp;geoids</a> ::\n        Class&nbsp;GeoidError\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.geoids.GeoidError-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class GeoidError</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n              object --+                            \n                       |                            \nexceptions.BaseException --+                        \n                           |                        \n        exceptions.Exception --+                    \n                               |                    \n        exceptions.StandardError --+                \n                                   |                \n               exceptions.ValueError --+            \n                                       |            \n                      errors._ValueError --+        \n                                           |        \n                          <a href=\"pygeodesy.errors.PointsError-class.html\">errors.PointsError</a> --+    \n                                               |    \n                             <a href=\"pygeodesy.heights.HeightError-class.html\">heights.HeightError</a> --+\n                                                   |\n                                                  <strong class=\"uidshort\">GeoidError</strong>\n</pre>\n\n<dl><dt>Known Subclasses:</dt>\n<dd>\n      <ul class=\"subclass-list\">\n<li><a href=\"pygeodesy.geoids.PGMError-class.html\">PGMError</a></li>  </ul>\n</dd></dl>\n\n<hr />\n<p>Geoid interpolator <code>Geoid...</code> or interpolation issue.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>errors._ValueError</code></b>:\n      <code>__init__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.ValueError</code></b>:\n      <code>__new__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.BaseException</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getslice__</code>,\n      <code>__reduce__</code>,\n      <code>__repr__</code>,\n      <code>__setattr__</code>,\n      <code>__setstate__</code>,\n      <code>__str__</code>,\n      <code>__unicode__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__format__</code>,\n      <code>__hash__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.BaseException</code></b>:\n      <code>args</code>,\n      <code>message</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.geoids.GeoidG2012B-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.geoids.GeoidG2012B</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.geoids-module.html\">Module&nbsp;geoids</a> ::\n        Class&nbsp;GeoidG2012B\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.geoids.GeoidG2012B-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class GeoidG2012B</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n      object --+                \n               |                \n    <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+            \n                   |            \n<a href=\"pygeodesy.heights._HeightNamed-class.html\">heights._HeightNamed</a> --+        \n                       |        \n     <a href=\"pygeodesy.heights._HeightBase-class.html\">heights._HeightBase</a> --+    \n                           |    \n                  <a href=\"pygeodesy.geoids._GeoidBase-class.html\">_GeoidBase</a> --+\n                               |\n                              <strong class=\"uidshort\">GeoidG2012B</strong>\n</pre>\n\n<hr />\n<p>Geoid height interpolator for <a \n  href=\"https://Geodesy.NOAA.gov/GEOID/GEOID12B/\" target=\"_top\">GEOID12B \n  Model</a> grids <a \n  href=\"https://Geodesy.NOAA.gov/GEOID/GEOID12B/GEOID12B_CONUS.shtml\" \n  target=\"_top\">CONUS</a>, <a \n  href=\"https://Geodesy.NOAA.gov/GEOID/GEOID12B/GEOID12B_AK.shtml\" \n  target=\"_top\">Alaska</a>, <a \n  href=\"https://Geodesy.NOAA.gov/GEOID/GEOID12B/GEOID12B_HI.shtml\" \n  target=\"_top\">Hawaii</a>, <a \n  href=\"https://Geodesy.NOAA.gov/GEOID/GEOID12B/GEOID12B_GMNI.shtml\" \n  target=\"_top\">Guam and Northern Mariana Islands</a>, <a \n  href=\"https://Geodesy.NOAA.gov/GEOID/GEOID12B/GEOID12B_PRVI.shtml\" \n  target=\"_top\">Puerto Rico and U.S. Virgin Islands</a> and <a \n  href=\"https://Geodesy.NOAA.gov/GEOID/GEOID12B/GEOID12B_AS.shtml\" \n  target=\"_top\">American Samoa</a> based on <code>SciPy</code> \n  interpolation <a \n  href=\"https://docs.SciPy.org/doc/scipy/reference/generated/scipy.interpolate.RectBivariateSpline.html\"\n  target=\"_top\">RectBivariateSpline</a>, <a \n  href=\"https://docs.SciPy.org/doc/scipy/reference/generated/scipy.interpolate.interp2d.html\"\n  target=\"_top\">interp2d</a> or <a \n  href=\"https://docs.scipy.org/doc/scipy/reference/generated/scipy.interpolate.bisplrep.html\"\n  target=\"_top\">bisplrep/-ev</a>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geoids.GeoidG2012B-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">g2012b_bin</span>,\n        <span class=\"summary-sig-arg\">datum</span>=<span class=\"summary-sig-default\">Datum(name='NAD83', ellipsoid=Ellipsoids.GRS80, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"summary-sig-arg\">kind</span>=<span class=\"summary-sig-default\">3</span>,\n        <span class=\"summary-sig-arg\">smooth</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">**name_crop</span>)</span><br />\n      New <a href=\"pygeodesy.geoids.GeoidG2012B-class.html\" \n      class=\"link\">GeoidG2012B</a> interpolator.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geoids.GeoidG2012B-class.html#__call__\" class=\"summary-sig-name\">__call__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">*llis</span>,\n        <span class=\"summary-sig-arg\">**wrap_H</span>)</span><br />\n      Interpolate the geoid (or orthometric) height for one or more \n      locations.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geoids.GeoidG2012B-class.html#height\" class=\"summary-sig-name\">height</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lats</span>,\n        <span class=\"summary-sig-arg\">lons</span>,\n        <span class=\"summary-sig-arg\">**wrap</span>)</span><br />\n      Interpolate the geoid height for one or several lat-/longitudes.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.geoids._GeoidBase-class.html\">_GeoidBase</a></code></b>:\n      <code><a href=\"pygeodesy.geoids._GeoidBase-class.html#__enter__\">__enter__</a></code>,\n      <code><a href=\"pygeodesy.geoids._GeoidBase-class.html#__exit__\">__exit__</a></code>,\n      <code><a href=\"pygeodesy.geoids._GeoidBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.geoids._GeoidBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.geoids._GeoidBase-class.html#center\">center</a></code>,\n      <code><a href=\"pygeodesy.geoids._GeoidBase-class.html#close\">close</a></code>,\n      <code><a href=\"pygeodesy.geoids._GeoidBase-class.html#height_\">height_</a></code>,\n      <code><a href=\"pygeodesy.geoids._GeoidBase-class.html#highest\">highest</a></code>,\n      <code><a href=\"pygeodesy.geoids._GeoidBase-class.html#loweright\">loweright</a></code>,\n      <code><a href=\"pygeodesy.geoids._GeoidBase-class.html#lowerleft\">lowerleft</a></code>,\n      <code><a href=\"pygeodesy.geoids._GeoidBase-class.html#lowerright\">lowerright</a></code>,\n      <code><a href=\"pygeodesy.geoids._GeoidBase-class.html#lowest\">lowest</a></code>,\n      <code><a href=\"pygeodesy.geoids._GeoidBase-class.html#outside\">outside</a></code>,\n      <code><a href=\"pygeodesy.geoids._GeoidBase-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.geoids._GeoidBase-class.html#upperleft\">upperleft</a></code>,\n      <code><a href=\"pygeodesy.geoids._GeoidBase-class.html#upperright\">upperright</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.geoids._GeoidBase-class.html\">_GeoidBase</a></code></b>:\n      <code><a href=\"pygeodesy.geoids._GeoidBase-class.html#closed\">closed</a></code>,\n      <code><a href=\"pygeodesy.geoids._GeoidBase-class.html#cropped\">cropped</a></code>,\n      <code><a href=\"pygeodesy.geoids._GeoidBase-class.html#dtype\">dtype</a></code>,\n      <code><a href=\"pygeodesy.geoids._GeoidBase-class.html#endian\">endian</a></code>,\n      <code><a href=\"pygeodesy.geoids._GeoidBase-class.html#hits\">hits</a></code>,\n      <code><a href=\"pygeodesy.geoids._GeoidBase-class.html#kind\">kind</a></code>,\n      <code><a href=\"pygeodesy.geoids._GeoidBase-class.html#knots\">knots</a></code>,\n      <code><a href=\"pygeodesy.geoids._GeoidBase-class.html#mean\">mean</a></code>,\n      <code><a href=\"pygeodesy.geoids._GeoidBase-class.html#nBytes\">nBytes</a></code>,\n      <code><a href=\"pygeodesy.geoids._GeoidBase-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.geoids._GeoidBase-class.html#pgm\">pgm</a></code>,\n      <code><a href=\"pygeodesy.geoids._GeoidBase-class.html#sizeB\">sizeB</a></code>,\n      <code><a href=\"pygeodesy.geoids._GeoidBase-class.html#smooth\">smooth</a></code>,\n      <code><a href=\"pygeodesy.geoids._GeoidBase-class.html#stdev\">stdev</a></code>,\n      <code><a href=\"pygeodesy.geoids._GeoidBase-class.html#u2B\">u2B</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.heights._HeightBase-class.html\">heights._HeightBase</a></code></b>:\n      <code><a href=\"pygeodesy.heights._HeightBase-class.html#numpy\">numpy</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightBase-class.html#scipy\">scipy</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightBase-class.html#scipy_interpolate\">scipy_interpolate</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.heights._HeightNamed-class.html\">heights._HeightNamed</a></code></b>:\n      <code><a href=\"pygeodesy.heights._HeightNamed-class.html#datum\">datum</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightNamed-class.html#kmin\">kmin</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightNamed-class.html#wrap\">wrap</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">g2012b_bin</span>,\n        <span class=\"sig-arg\">datum</span>=<span class=\"sig-default\">Datum(name='NAD83', ellipsoid=Ellipsoids.GRS80, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"sig-arg\">kind</span>=<span class=\"sig-default\">3</span>,\n        <span class=\"sig-arg\">smooth</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">**name_crop</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.geoids.GeoidG2012B-class.html\" \n  class=\"link\">GeoidG2012B</a> interpolator.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>g2012b_bin</code></strong> - A <code>GEOID12B</code> grid file name (<code>.bin</code>, see \n          <b>note</b>).</li>\n        <li><strong class=\"pname\"><code>datum</code></strong> - Optional grid datum (<a href=\"pygeodesy.datums.Datum-class.html\" \n          class=\"link\">Datum</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a> or <a \n          href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>), overriding <code>NAD83</code>.</li>\n        <li><strong class=\"pname\"><code>kind</code></strong> - <code>scipy.interpolate</code> order (<code>int</code>), use 1..5\n          for <a \n          href=\"https://docs.SciPy.org/doc/scipy/reference/generated/scipy.interpolate.RectBivariateSpline.html\"\n          target=\"_top\">RectBivariateSpline</a> or -1, -3 or -5 for <a \n          href=\"https://docs.SciPy.org/doc/scipy/reference/generated/scipy.interpolate.bisplrep.html\"\n          target=\"_top\">bisplrep/-ev</a> or <a \n          href=\"https://docs.SciPy.org/doc/scipy/reference/generated/scipy.interpolate.interp2d.html\"\n          target=\"_top\">interp2d</a> <code>linear</code>, \n          <code>cubic</code> respectively <code>quintic</code>, see note \n          for more details.</li>\n        <li><strong class=\"pname\"><code>smooth</code></strong> - Smoothing factor for <code><b>kind</b>=1..5</code> only \n          (<code>int</code>).</li>\n        <li><strong class=\"pname\"><code>name_crop</code></strong> - Optional geoid <code><b>name</b>=NN</code> (<code>str</code>) and\n          UNSUPPORTED keyword argument <code><b>crop</b>=None</code>.</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.geoids.GeoidError-class.html\">GeoidError</a></strong></code> - Invalid <b><code>crop</code></b>, <b><code>kind</code></b> or \n        <b><code>smooth</code></b> or a <b><code>g2012b_bin</code></b> grid\n        file issue.</li>\n        <li><code><strong class='fraise'>ImportError</strong></code> - Package <code>numpy</code> or <code>scipy</code> not found or not \n        installed.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.LenError-class.html\">LenError</a></strong></code> - Grid file <b><code>g2012b_bin</code></b> axis mismatch.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.SciPyError-class.html\">SciPyError</a></strong></code> - A <code>scipy</code> issue.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.SciPyWarning-class.html\">SciPyWarning</a></strong></code> - A <code>scipy</code> warning as exception.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>datum</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n<div class=\"fields\">      <strong>Notes:</strong>\n      <ul class=\"nomargin-top\">\n        <li>\n        Only use any of the <code>le</code> (little-endian) or \n        <code>be</code> (big-endian) <code>g2012b*.bin</code> <i>binary</i>\n        grid files.\n        </li>\n        <li>\n        Specify <code><b>kind</b>=-1, -3 or -5</code> to use \n        <code>scipy.interpolate.interp2d</code> <i>before</i> or \n        <code>scipy.interpolate.bisplrep/-ev</code> <i>since</i> \n        <code>Scipy</code> version 1.14.\n        </li>\n      </ul>\n</div></td></tr></table>\n</div>\n<a name=\"__call__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__call__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">*llis</span>,\n        <span class=\"sig-arg\">**wrap_H</span>)</span>\n    <br /><em class=\"fname\">(Call operator)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Interpolate the geoid (or orthometric) height for one or more \n  locations.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>llis</code></strong> - One or several locations (each <code>LatLon</code>), all \n          positional.</li>\n        <li><strong class=\"pname\"><code>wrap_H</code></strong> - Keyword arguments <code><b>wrap</b>=False</code> \n          (<code>bool</code>) and <code><b>H</b>=False</code> \n          (<code>bool</code>).  Use <code><b>wrap</b>=True</code> to wrap \n          or <i>normalize</i> all <b><code>llis</code></b> locations.  If \n          <code><b>H</b> is True</code>, return the <i>orthometric</i> \n          height instead of the <i>geoid</i> height at each location.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A single geoid (or orthometric) height (<code>float</code>) or a \n          list or tuple of geoid (or orthometric) heights (each \n          <code>float</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.geoids.GeoidError-class.html\">GeoidError</a></strong></code> - Insufficient number of <b><code>llis</code></b>, an invalid \n        <b><code>lli</code></b> or the <code>egm*.pgm</code> geoid file is \n        closed.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.RangeError-class.html\">RangeError</a></strong></code> - An <b><code>lli</code></b> is outside this geoid's lat- or \n        longitude range.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.SciPyError-class.html\">SciPyError</a></strong></code> - A <code>scipy</code> issue.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.SciPyWarning-class.html\">SciPyWarning</a></strong></code> - A <code>scipy</code> warning as exception.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.heights._HeightNamed-class.html#__call__\">heights._HeightNamed.__call__</a>\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        To obtain <i>orthometric</i> heights, each <b><code>llis</code></b>\n        location must have an ellipsoid <code>height</code> or \n        <code>h</code> attribute, otherwise <code>height=0</code> is used.\n      </p>\n      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.formy-module.html#heightOrthometric\" \n        class=\"link\">pygeodesy.heightOrthometric</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"height\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">height</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lats</span>,\n        <span class=\"sig-arg\">lons</span>,\n        <span class=\"sig-arg\">**wrap</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Interpolate the geoid height for one or several lat-/longitudes.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lats</code></strong> - Latitude or latitudes (each <code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lons</code></strong> - Longitude or longitudes (each <code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - Use <code><b>wrap</b>=True</code> to wrap or <i>normalize</i> all\n          <b><code>lats</code></b> and <b><code>lons</code></b>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A single geoid height (<code>float</code>) or a list of geoid \n          heights (each <code>float</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.geoids.GeoidError-class.html\">GeoidError</a></strong></code> - Insufficient or unequal number of <b><code>lats</code></b> and \n        <b><code>lons</code></b>.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.RangeError-class.html\">RangeError</a></strong></code> - A <b><code>lat</code></b> or <b><code>lon</code></b> is outside \n        this geoid's lat- or longitude range.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.SciPyError-class.html\">SciPyError</a></strong></code> - A <code>scipy</code> issue.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.SciPyWarning-class.html\">SciPyWarning</a></strong></code> - A <code>scipy</code> warning as exception.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.heights._HeightNamed-class.html#height\">heights._HeightNamed.height</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.geoids.GeoidHeight5Tuple-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.geoids.GeoidHeight5Tuple</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.geoids-module.html\">Module&nbsp;geoids</a> ::\n        Class&nbsp;GeoidHeight5Tuple\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.geoids.GeoidHeight5Tuple-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class GeoidHeight5Tuple</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n   object --+        \n            |        \n        tuple --+    \n                |    \n   object --+   |    \n            |   |    \n <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n                |    \n<a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a> --+\n                    |\n                   <strong class=\"uidshort\">GeoidHeight5Tuple</strong>\n</pre>\n\n<hr />\n<p>5-Tuple <code>(lat, lon, egm84, egm96, egm2008)</code> for <a \n  href=\"https://SourceForge.net/projects/geographiclib/files/testdata/\" \n  target=\"_top\">GeoidHeights.dat</a> tests with the heights for 3 different\n  EGM grids at <code>degrees90</code> and <code>degrees180</code> degrees \n  (after converting <code>lon</code> from original <code>0 &lt;= EasterLon \n  &lt;= 360</code>).</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__delattr__\">__delattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__getattr__\">__getattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__setattr__\">__setattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#items\">items</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iteritems\">iteritems</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iterunits\">iterunits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#reUnit\">reUnit</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toUnits\">toUnits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>tuple</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__eq__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__iter__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__rmul__</code>,\n      <code>count</code>,\n      <code>index</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__new__\">__new__</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.geoids.GeoidKarney-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.geoids.GeoidKarney</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.geoids-module.html\">Module&nbsp;geoids</a> ::\n        Class&nbsp;GeoidKarney\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.geoids.GeoidKarney-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class GeoidKarney</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n      object --+                \n               |                \n    <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+            \n                   |            \n<a href=\"pygeodesy.heights._HeightNamed-class.html\">heights._HeightNamed</a> --+        \n                       |        \n     <a href=\"pygeodesy.heights._HeightBase-class.html\">heights._HeightBase</a> --+    \n                           |    \n                  <a href=\"pygeodesy.geoids._GeoidBase-class.html\">_GeoidBase</a> --+\n                               |\n                              <strong class=\"uidshort\">GeoidKarney</strong>\n</pre>\n\n<hr />\n<p>Geoid height interpolator for <i>Karney</i>'s <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/geoid.html\" \n  target=\"_top\">GeographicLib Earth Gravitational Model (EGM)</a> geoid <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/geoid.html#geoidinst\" \n  target=\"_top\">egm*.pgm</a> datasets using bilinear or <a \n  href=\"https://dl.ACM.org/citation.cfm?id=368443\" target=\"_top\">cubic</a> \n  interpolation and <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/geoid.html#geoidcache\"\n  target=\"_top\">caching</a> in pure Python, transcoded from <i>Karney</i>'s\n  <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/geoid.html#geoidinterp\"\n  target=\"_top\">C++ class Geoid</a>.</p>\n  <p>Use any of the geoid <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/geoid.html#geoidinst\" \n  target=\"_top\">egm84-, egm96- or egm2008-*.pgm</a> datasets.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geoids.GeoidKarney-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">egm_pgm</span>,\n        <span class=\"summary-sig-arg\">crop</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">datum</span>=<span class=\"summary-sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"summary-sig-arg\">kind</span>=<span class=\"summary-sig-default\">3</span>,\n        <span class=\"summary-sig-arg\">**name_smooth</span>)</span><br />\n      New <a href=\"pygeodesy.geoids.GeoidKarney-class.html\" \n      class=\"link\">GeoidKarney</a> interpolator.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geoids.GeoidKarney-class.html#highest\" class=\"summary-sig-name\">highest</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">LatLon</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">full</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Return the location and largest height of this geoid.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geoids.GeoidKarney-class.html#lowest\" class=\"summary-sig-name\">lowest</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">LatLon</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">full</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Return the location and lowest height of this geoid.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.geoids._GeoidBase-class.html\">_GeoidBase</a></code></b>:\n      <code><a href=\"pygeodesy.geoids._GeoidBase-class.html#__call__\">__call__</a></code>,\n      <code><a href=\"pygeodesy.geoids._GeoidBase-class.html#__enter__\">__enter__</a></code>,\n      <code><a href=\"pygeodesy.geoids._GeoidBase-class.html#__exit__\">__exit__</a></code>,\n      <code><a href=\"pygeodesy.geoids._GeoidBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.geoids._GeoidBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.geoids._GeoidBase-class.html#center\">center</a></code>,\n      <code><a href=\"pygeodesy.geoids._GeoidBase-class.html#close\">close</a></code>,\n      <code><a href=\"pygeodesy.geoids._GeoidBase-class.html#height\">height</a></code>,\n      <code><a href=\"pygeodesy.geoids._GeoidBase-class.html#height_\">height_</a></code>,\n      <code><a href=\"pygeodesy.geoids._GeoidBase-class.html#loweright\">loweright</a></code>,\n      <code><a href=\"pygeodesy.geoids._GeoidBase-class.html#lowerleft\">lowerleft</a></code>,\n      <code><a href=\"pygeodesy.geoids._GeoidBase-class.html#lowerright\">lowerright</a></code>,\n      <code><a href=\"pygeodesy.geoids._GeoidBase-class.html#outside\">outside</a></code>,\n      <code><a href=\"pygeodesy.geoids._GeoidBase-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.geoids._GeoidBase-class.html#upperleft\">upperleft</a></code>,\n      <code><a href=\"pygeodesy.geoids._GeoidBase-class.html#upperright\">upperright</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geoids.GeoidKarney-class.html#dtype\" class=\"summary-name\">dtype</a><br />\n      Get the geoid's grid data type (<code>str</code>).\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.geoids._GeoidBase-class.html\">_GeoidBase</a></code></b>:\n      <code><a href=\"pygeodesy.geoids._GeoidBase-class.html#closed\">closed</a></code>,\n      <code><a href=\"pygeodesy.geoids._GeoidBase-class.html#cropped\">cropped</a></code>,\n      <code><a href=\"pygeodesy.geoids._GeoidBase-class.html#endian\">endian</a></code>,\n      <code><a href=\"pygeodesy.geoids._GeoidBase-class.html#hits\">hits</a></code>,\n      <code><a href=\"pygeodesy.geoids._GeoidBase-class.html#kind\">kind</a></code>,\n      <code><a href=\"pygeodesy.geoids._GeoidBase-class.html#knots\">knots</a></code>,\n      <code><a href=\"pygeodesy.geoids._GeoidBase-class.html#mean\">mean</a></code>,\n      <code><a href=\"pygeodesy.geoids._GeoidBase-class.html#nBytes\">nBytes</a></code>,\n      <code><a href=\"pygeodesy.geoids._GeoidBase-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.geoids._GeoidBase-class.html#pgm\">pgm</a></code>,\n      <code><a href=\"pygeodesy.geoids._GeoidBase-class.html#sizeB\">sizeB</a></code>,\n      <code><a href=\"pygeodesy.geoids._GeoidBase-class.html#smooth\">smooth</a></code>,\n      <code><a href=\"pygeodesy.geoids._GeoidBase-class.html#stdev\">stdev</a></code>,\n      <code><a href=\"pygeodesy.geoids._GeoidBase-class.html#u2B\">u2B</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.heights._HeightBase-class.html\">heights._HeightBase</a></code></b>:\n      <code><a href=\"pygeodesy.heights._HeightBase-class.html#numpy\">numpy</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightBase-class.html#scipy\">scipy</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightBase-class.html#scipy_interpolate\">scipy_interpolate</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.heights._HeightNamed-class.html\">heights._HeightNamed</a></code></b>:\n      <code><a href=\"pygeodesy.heights._HeightNamed-class.html#datum\">datum</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightNamed-class.html#kmin\">kmin</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightNamed-class.html#wrap\">wrap</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">egm_pgm</span>,\n        <span class=\"sig-arg\">crop</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">datum</span>=<span class=\"sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"sig-arg\">kind</span>=<span class=\"sig-default\">3</span>,\n        <span class=\"sig-arg\">**name_smooth</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.geoids.GeoidKarney-class.html\" \n  class=\"link\">GeoidKarney</a> interpolator.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>egm_pgm</code></strong> - An <a \n          href=\"https://GeographicLib.SourceForge.io/C++/doc/geoid.html#geoidinst\"\n          target=\"_top\">EGM geoid dataset</a> file name \n          (<code>egm*.pgm</code>), see note below.</li>\n        <li><strong class=\"pname\"><code>crop</code></strong> - Optional box to limit geoid locations, a 4-tuple (<code>south, \n          west, north, east</code>), 2-tuple (<code>(south, west), (north, \n          east)</code>) with 2 <code>degrees90</code> lat- and \n          <code>degrees180</code> longitudes or as 2-tuple (<code>LatLonSW,\n          LatLonNE</code>) of <code>LatLon</code> instances.</li>\n        <li><strong class=\"pname\"><code>datum</code></strong> - Optional grid datum (<code>Datum</code>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a> or <a \n          href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>), overriding <code>WGS84</code>.</li>\n        <li><strong class=\"pname\"><code>kind</code></strong> - Interpolation order (<code>int</code>), 2 for \n          <code>bilinear</code> or 3 for <code>cubic</code>.</li>\n        <li><strong class=\"pname\"><code>name_smooth</code></strong> - Optional geoid <code><b>name</b>=NN</code> (<code>str</code>) and\n          UNSUPPORTED keyword argument <code><b>smooth</b></code>, use \n          <code><b>smooth</b>=None</code> to ignore.</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.geoids.GeoidError-class.html\">GeoidError</a></strong></code> - EGM dataset <b><code>egm_pgm</code></b> issue or invalid \n        <b><code>crop</code></b>, <b><code>kind</code></b> or \n        <b><code>smooth</code></b>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>datum</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Class <a href=\"pygeodesy.geoids.GeoidPGM-class.html\" \n        class=\"link\">GeoidPGM</a> and function <a \n        href=\"pygeodesy.geoids-module.html#egmGeoidHeights\" \n        class=\"link\">egmGeoidHeights</a>.\n      </p>\n      <p><strong>Note:</strong>\n        Geoid file <b><code>egm_pgm</code></b> remains open and <i>must be \n        closed</i> by calling method <code>close</code> or by using \n        <code>with <b>GeoidKarney</b>(...) as ...:</code> context.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"highest\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">highest</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">LatLon</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">full</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the location and largest height of this geoid.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>LatLon</code></strong> - Optional class to return the location and height \n          (<code>LatLon</code>) or <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>full</code></strong> - Search the full or limited latitude range (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>If <code><b>LatLon</b> is None</code>, a <a \n          href=\"pygeodesy.namedTuples.LatLon3Tuple-class.html\" \n          class=\"link\">LatLon3Tuple</a><code>(lat, lon, height)</code> \n          otherwise a <b><code>LatLon</code></b> instance with the lat-, \n          longitude and geoid height of the highest grid location.</dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.geoids._GeoidBase-class.html#highest\">_GeoidBase.highest</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"lowest\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">lowest</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">LatLon</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">full</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the location and lowest height of this geoid.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>LatLon</code></strong> - Optional class to return the location and height \n          (<code>LatLon</code>) or <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>full</code></strong> - Search the full or limited latitude range (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>If <code><b>LatLon</b> is None</code>, a <a \n          href=\"pygeodesy.namedTuples.LatLon3Tuple-class.html\" \n          class=\"link\">LatLon3Tuple</a><code>(lat, lon, height)</code> \n          otherwise a <b><code>LatLon</code></b> instance with the lat-, \n          longitude and geoid height of the lowest grid location.</dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.geoids._GeoidBase-class.html#lowest\">_GeoidBase.lowest</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"dtype\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">dtype</h3>\n  <p>Get the geoid's grid data type (<code>str</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">dtype(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the geoid's grid data type (<code>str</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.geoids.GeoidPGM-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.geoids.GeoidPGM</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.geoids-module.html\">Module&nbsp;geoids</a> ::\n        Class&nbsp;GeoidPGM\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.geoids.GeoidPGM-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class GeoidPGM</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n      object --+                \n               |                \n    <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+            \n                   |            \n<a href=\"pygeodesy.heights._HeightNamed-class.html\">heights._HeightNamed</a> --+        \n                       |        \n     <a href=\"pygeodesy.heights._HeightBase-class.html\">heights._HeightBase</a> --+    \n                           |    \n                  <a href=\"pygeodesy.geoids._GeoidBase-class.html\">_GeoidBase</a> --+\n                               |\n                              <strong class=\"uidshort\">GeoidPGM</strong>\n</pre>\n\n<hr />\n<p>Geoid height interpolator for <i>Karney</i>'s <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/geoid.html\" \n  target=\"_top\">GeographicLib Earth Gravitational Model (EGM)</a> geoid <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/geoid.html#geoidinst\" \n  target=\"_top\">egm*.pgm</a> datasets but based on <code>SciPy</code> <a \n  href=\"https://docs.SciPy.org/doc/scipy/reference/generated/scipy.interpolate.RectBivariateSpline.html\"\n  target=\"_top\">RectBivariateSpline</a>, <a \n  href=\"https://docs.SciPy.org/doc/scipy/reference/generated/scipy.interpolate.bisplrep.html\"\n  target=\"_top\">bisplrep/-ev</a> or <a \n  href=\"https://docs.SciPy.org/doc/scipy/reference/generated/scipy.interpolate.interp2d.html\"\n  target=\"_top\">interp2d</a> interpolation.</p>\n  <p>Use any of the <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/geoid.html#geoidinst\" \n  target=\"_top\">egm84-, egm96- or egm2008-*.pgm</a> datasets.  However, \n  unless cropped, an entire <code>egm*.pgm</code> dataset is loaded into \n  the <code>SciPy</code> interpolator and converted from 2-byte \n  <code>int</code> to 8-byte <code>dtype float64</code>.  Therefore, \n  internal memory usage is 4x the <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/geoid.html#geoidinst\" \n  target=\"_top\">egm*.pgm</a> file size and may exceed the available memory,\n  especially with 32-bit Python, see properties <code>.nBytes</code> and \n  <code>.sizeB</code>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geoids.GeoidPGM-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">egm_pgm</span>,\n        <span class=\"summary-sig-arg\">crop</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">datum</span>=<span class=\"summary-sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"summary-sig-arg\">kind</span>=<span class=\"summary-sig-default\">3</span>,\n        <span class=\"summary-sig-arg\">smooth</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      New <a href=\"pygeodesy.geoids.GeoidPGM-class.html\" \n      class=\"link\">GeoidPGM</a> interpolator.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geoids.GeoidPGM-class.html#__call__\" class=\"summary-sig-name\">__call__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">*llis</span>,\n        <span class=\"summary-sig-arg\">**wrap_H</span>)</span><br />\n      Interpolate the geoid (or orthometric) height for one or more \n      locations.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geoids.GeoidPGM-class.html#height\" class=\"summary-sig-name\">height</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lats</span>,\n        <span class=\"summary-sig-arg\">lons</span>,\n        <span class=\"summary-sig-arg\">**wrap</span>)</span><br />\n      Interpolate the geoid height for one or several lat-/longitudes.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.geoids._GeoidBase-class.html\">_GeoidBase</a></code></b>:\n      <code><a href=\"pygeodesy.geoids._GeoidBase-class.html#__enter__\">__enter__</a></code>,\n      <code><a href=\"pygeodesy.geoids._GeoidBase-class.html#__exit__\">__exit__</a></code>,\n      <code><a href=\"pygeodesy.geoids._GeoidBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.geoids._GeoidBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.geoids._GeoidBase-class.html#center\">center</a></code>,\n      <code><a href=\"pygeodesy.geoids._GeoidBase-class.html#close\">close</a></code>,\n      <code><a href=\"pygeodesy.geoids._GeoidBase-class.html#height_\">height_</a></code>,\n      <code><a href=\"pygeodesy.geoids._GeoidBase-class.html#highest\">highest</a></code>,\n      <code><a href=\"pygeodesy.geoids._GeoidBase-class.html#loweright\">loweright</a></code>,\n      <code><a href=\"pygeodesy.geoids._GeoidBase-class.html#lowerleft\">lowerleft</a></code>,\n      <code><a href=\"pygeodesy.geoids._GeoidBase-class.html#lowerright\">lowerright</a></code>,\n      <code><a href=\"pygeodesy.geoids._GeoidBase-class.html#lowest\">lowest</a></code>,\n      <code><a href=\"pygeodesy.geoids._GeoidBase-class.html#outside\">outside</a></code>,\n      <code><a href=\"pygeodesy.geoids._GeoidBase-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.geoids._GeoidBase-class.html#upperleft\">upperleft</a></code>,\n      <code><a href=\"pygeodesy.geoids._GeoidBase-class.html#upperright\">upperright</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.geoids._GeoidBase-class.html\">_GeoidBase</a></code></b>:\n      <code><a href=\"pygeodesy.geoids._GeoidBase-class.html#closed\">closed</a></code>,\n      <code><a href=\"pygeodesy.geoids._GeoidBase-class.html#cropped\">cropped</a></code>,\n      <code><a href=\"pygeodesy.geoids._GeoidBase-class.html#dtype\">dtype</a></code>,\n      <code><a href=\"pygeodesy.geoids._GeoidBase-class.html#endian\">endian</a></code>,\n      <code><a href=\"pygeodesy.geoids._GeoidBase-class.html#hits\">hits</a></code>,\n      <code><a href=\"pygeodesy.geoids._GeoidBase-class.html#kind\">kind</a></code>,\n      <code><a href=\"pygeodesy.geoids._GeoidBase-class.html#knots\">knots</a></code>,\n      <code><a href=\"pygeodesy.geoids._GeoidBase-class.html#mean\">mean</a></code>,\n      <code><a href=\"pygeodesy.geoids._GeoidBase-class.html#nBytes\">nBytes</a></code>,\n      <code><a href=\"pygeodesy.geoids._GeoidBase-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.geoids._GeoidBase-class.html#pgm\">pgm</a></code>,\n      <code><a href=\"pygeodesy.geoids._GeoidBase-class.html#sizeB\">sizeB</a></code>,\n      <code><a href=\"pygeodesy.geoids._GeoidBase-class.html#smooth\">smooth</a></code>,\n      <code><a href=\"pygeodesy.geoids._GeoidBase-class.html#stdev\">stdev</a></code>,\n      <code><a href=\"pygeodesy.geoids._GeoidBase-class.html#u2B\">u2B</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.heights._HeightBase-class.html\">heights._HeightBase</a></code></b>:\n      <code><a href=\"pygeodesy.heights._HeightBase-class.html#numpy\">numpy</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightBase-class.html#scipy\">scipy</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightBase-class.html#scipy_interpolate\">scipy_interpolate</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.heights._HeightNamed-class.html\">heights._HeightNamed</a></code></b>:\n      <code><a href=\"pygeodesy.heights._HeightNamed-class.html#datum\">datum</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightNamed-class.html#kmin\">kmin</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightNamed-class.html#wrap\">wrap</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">egm_pgm</span>,\n        <span class=\"sig-arg\">crop</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">datum</span>=<span class=\"sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"sig-arg\">kind</span>=<span class=\"sig-default\">3</span>,\n        <span class=\"sig-arg\">smooth</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.geoids.GeoidPGM-class.html\" \n  class=\"link\">GeoidPGM</a> interpolator.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>egm_pgm</code></strong> - An <a \n          href=\"https://GeographicLib.SourceForge.io/C++/doc/geoid.html#geoidinst\"\n          target=\"_top\">EGM geoid dataset</a> file name \n          (<code>egm*.pgm</code>).</li>\n        <li><strong class=\"pname\"><code>crop</code></strong> - Optional box to crop <b><code>egm_pgm</code></b>, a 4-tuple \n          (<code>south, west, north, east</code>) or 2-tuple (<code>(south,\n          west), (north, east)</code>), in <code>degrees90</code> lat- and \n          <code>degrees180</code> longitudes or a 2-tuple (<code>LatLonSW, \n          LatLonNE</code>) of <code>LatLon</code> instances.</li>\n        <li><strong class=\"pname\"><code>datum</code></strong> - Optional grid datum (<a href=\"pygeodesy.datums.Datum-class.html\" \n          class=\"link\">Datum</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a> or <a \n          href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>), overriding <code>WGS84</code>.</li>\n        <li><strong class=\"pname\"><code>kind</code></strong> - <code>scipy.interpolate</code> order (<code>int</code>), use 1..5\n          for <a \n          href=\"https://docs.SciPy.org/doc/scipy/reference/generated/scipy.interpolate.RectBivariateSpline.html\"\n          target=\"_top\">RectBivariateSpline</a> or -1, -3 or -5 for <a \n          href=\"https://docs.SciPy.org/doc/scipy/reference/generated/scipy.interpolate.bisplrep.html\"\n          target=\"_top\">bisplrep/-ev</a> or <a \n          href=\"https://docs.SciPy.org/doc/scipy/reference/generated/scipy.interpolate.interp2d.html\"\n          target=\"_top\">interp2d</a> <code>linear</code>, \n          <code>cubic</code> respectively <code>quintic</code>, see note \n          for more details.</li>\n        <li><strong class=\"pname\"><code>smooth</code></strong> - Smoothing factor for <code><b>kind</b>=1..5</code> only \n          (<code>int</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional geoid <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.geoids.GeoidError-class.html\">GeoidError</a></strong></code> - EGM dataset <b><code>egm_pgm</code></b> issue or invalid \n        <b><code>crop</code></b>, <b><code>kind</code></b> or \n        <b><code>smooth</code></b>.</li>\n        <li><code><strong class='fraise'>ImportError</strong></code> - Package <code>numpy</code> or <code>scipy</code> not found or not \n        installed.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.LenError-class.html\">LenError</a></strong></code> - EGM dataset <b><code>egm_pgm</code></b> axis mismatch.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.SciPyError-class.html\">SciPyError</a></strong></code> - A <code>scipy</code> issue.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.SciPyWarning-class.html\">SciPyWarning</a></strong></code> - A <code>scipy</code> warning as exception.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>datum</code></b> or unexpected argument.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n<div class=\"fields\">      <strong>Notes:</strong>\n      <ul class=\"nomargin-top\">\n        <li>\n        Specify <code><b>kind</b>=-1, -3 or -5</code> to use \n        <code>scipy.interpolate.interp2d</code> before or \n        <code>scipy.interpolate.bisplrep/-ev</code> since \n        <code>Scipy</code> version 1.14.\n        </li>\n        <li>\n        The <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/geoid.html#geoidinst\"\n        target=\"_top\">GeographicLib egm*.pgm</a> file sizes are based on a \n        2-byte <code>int</code> height converted to 8-byte <code>dtype \n        float64</code> for <code>scipy</code> interpolators.  Therefore, \n        internal memory usage is 4 times the <code>egm*.pgm</code> file \n        size and may exceed the available memory, especially with 32-bit \n        Python.  To reduce memory usage, set keyword argument \n        <b><code>crop</code></b> to the region of interest.  For example \n        <code><b>crop</b>=(20, -125, 50, -65)</code> covers the <a \n        href=\"https://Geodesy.NOAA.gov/GEOID/GEOID12B/maps/GEOID12B_CONUS_grids.png\"\n        target=\"_top\">conterminous US</a> (CONUS), less than 3% of the \n        entire <code>egm2008-1.pgm</code> dataset.\n        </li>\n      </ul>\n      <p><strong>See Also:</strong>\n        Class <a href=\"pygeodesy.geoids.GeoidKarney-class.html\" \n        class=\"link\">GeoidKarney</a> and function <a \n        href=\"pygeodesy.geoids-module.html#egmGeoidHeights\" \n        class=\"link\">egmGeoidHeights</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"__call__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__call__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">*llis</span>,\n        <span class=\"sig-arg\">**wrap_H</span>)</span>\n    <br /><em class=\"fname\">(Call operator)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Interpolate the geoid (or orthometric) height for one or more \n  locations.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>llis</code></strong> - One or several locations (each <code>LatLon</code>), all \n          positional.</li>\n        <li><strong class=\"pname\"><code>wrap_H</code></strong> - Keyword arguments <code><b>wrap</b>=False</code> \n          (<code>bool</code>) and <code><b>H</b>=False</code> \n          (<code>bool</code>).  Use <code><b>wrap</b>=True</code> to wrap \n          or <i>normalize</i> all <b><code>llis</code></b> locations.  If \n          <code><b>H</b> is True</code>, return the <i>orthometric</i> \n          height instead of the <i>geoid</i> height at each location.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A single geoid (or orthometric) height (<code>float</code>) or a \n          list or tuple of geoid (or orthometric) heights (each \n          <code>float</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.geoids.GeoidError-class.html\">GeoidError</a></strong></code> - Insufficient number of <b><code>llis</code></b>, an invalid \n        <b><code>lli</code></b> or the <code>egm*.pgm</code> geoid file is \n        closed.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.RangeError-class.html\">RangeError</a></strong></code> - An <b><code>lli</code></b> is outside this geoid's lat- or \n        longitude range.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.SciPyError-class.html\">SciPyError</a></strong></code> - A <code>scipy</code> issue.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.SciPyWarning-class.html\">SciPyWarning</a></strong></code> - A <code>scipy</code> warning as exception.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.heights._HeightNamed-class.html#__call__\">heights._HeightNamed.__call__</a>\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        To obtain <i>orthometric</i> heights, each <b><code>llis</code></b>\n        location must have an ellipsoid <code>height</code> or \n        <code>h</code> attribute, otherwise <code>height=0</code> is used.\n      </p>\n      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.formy-module.html#heightOrthometric\" \n        class=\"link\">pygeodesy.heightOrthometric</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"height\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">height</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lats</span>,\n        <span class=\"sig-arg\">lons</span>,\n        <span class=\"sig-arg\">**wrap</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Interpolate the geoid height for one or several lat-/longitudes.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lats</code></strong> - Latitude or latitudes (each <code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lons</code></strong> - Longitude or longitudes (each <code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - Use <code><b>wrap</b>=True</code> to wrap or <i>normalize</i> all\n          <b><code>lats</code></b> and <b><code>lons</code></b>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A single geoid height (<code>float</code>) or a list of geoid \n          heights (each <code>float</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.geoids.GeoidError-class.html\">GeoidError</a></strong></code> - Insufficient or unequal number of <b><code>lats</code></b> and \n        <b><code>lons</code></b>.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.RangeError-class.html\">RangeError</a></strong></code> - A <b><code>lat</code></b> or <b><code>lon</code></b> is outside \n        this geoid's lat- or longitude range.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.SciPyError-class.html\">SciPyError</a></strong></code> - A <code>scipy</code> issue.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.SciPyWarning-class.html\">SciPyWarning</a></strong></code> - A <code>scipy</code> warning as exception.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.heights._HeightNamed-class.html#height\">heights._HeightNamed.height</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.geoids.PGMError-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.geoids.PGMError</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.geoids-module.html\">Module&nbsp;geoids</a> ::\n        Class&nbsp;PGMError\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.geoids.PGMError-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class PGMError</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n              object --+                                \n                       |                                \nexceptions.BaseException --+                            \n                           |                            \n        exceptions.Exception --+                        \n                               |                        \n        exceptions.StandardError --+                    \n                                   |                    \n               exceptions.ValueError --+                \n                                       |                \n                      errors._ValueError --+            \n                                           |            \n                          <a href=\"pygeodesy.errors.PointsError-class.html\">errors.PointsError</a> --+        \n                                               |        \n                             <a href=\"pygeodesy.heights.HeightError-class.html\">heights.HeightError</a> --+    \n                                                   |    \n                                          <a href=\"pygeodesy.geoids.GeoidError-class.html\">GeoidError</a> --+\n                                                       |\n                                                      <strong class=\"uidshort\">PGMError</strong>\n</pre>\n\n<hr />\n<p>An issue while parsing or cropping an <code>egm*.pgm</code> geoid \n  dataset.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>errors._ValueError</code></b>:\n      <code>__init__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.ValueError</code></b>:\n      <code>__new__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.BaseException</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getslice__</code>,\n      <code>__reduce__</code>,\n      <code>__repr__</code>,\n      <code>__setattr__</code>,\n      <code>__setstate__</code>,\n      <code>__str__</code>,\n      <code>__unicode__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__format__</code>,\n      <code>__hash__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.BaseException</code></b>:\n      <code>args</code>,\n      <code>message</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.geoids._GeoidBase-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.geoids._GeoidBase</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.geoids-module.html\">Module&nbsp;geoids</a> ::\n        Class&nbsp;_GeoidBase\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.geoids._GeoidBase-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class _GeoidBase</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n      object --+            \n               |            \n    <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+        \n                   |        \n<a href=\"pygeodesy.heights._HeightNamed-class.html\">heights._HeightNamed</a> --+    \n                       |    \n     <a href=\"pygeodesy.heights._HeightBase-class.html\">heights._HeightBase</a> --+\n                           |\n                          <strong class=\"uidshort\">_GeoidBase</strong>\n</pre>\n\n<dl><dt>Known Subclasses:</dt>\n<dd>\n      <ul class=\"subclass-list\">\n<li><a href=\"pygeodesy.geoids.GeoidEGM96-class.html\">GeoidEGM96</a></li><li>, <a href=\"pygeodesy.geoids.GeoidG2012B-class.html\">GeoidG2012B</a></li><li>, <a href=\"pygeodesy.geoids.GeoidKarney-class.html\">GeoidKarney</a></li><li>, <a href=\"pygeodesy.geoids.GeoidPGM-class.html\">GeoidPGM</a></li>  </ul>\n</dd></dl>\n\n<hr />\n<p>(INTERNAL) Base class for <code>Geoid...</code>s.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geoids._GeoidBase-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">hs</span>,\n        <span class=\"summary-sig-arg\">p</span>)</span><br />\n      (INTERNAL) Set up the grid axes, the <code>SciPy</code> interpolator \n      and several internal geoid attributes.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geoids._GeoidBase-class.html#__call__\" class=\"summary-sig-name\">__call__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">*llis</span>,\n        <span class=\"summary-sig-arg\">**wrap_H</span>)</span><br />\n      Interpolate the geoid (or orthometric) height for one or more \n      locations.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__enter__\"></a><span class=\"summary-sig-name\">__enter__</span>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Open context.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__exit__\"></a><span class=\"summary-sig-name\">__exit__</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">*unused</span>)</span><br />\n      Close context.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geoids._GeoidBase-class.html#__repr__\" class=\"summary-sig-name\">__repr__</a>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Default <code>repr(self)</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geoids._GeoidBase-class.html#__str__\" class=\"summary-sig-name\">__str__</a>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Default <code>str(self)</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geoids._GeoidBase-class.html#center\" class=\"summary-sig-name\">center</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">LatLon</span>=<span class=\"summary-sig-default\">None</span>)</span><br />\n      Return the center location and height of this geoid.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"close\"></a><span class=\"summary-sig-name\">close</span>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Close the <code>egm*.pgm</code> geoid file if open (and applicable).</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geoids._GeoidBase-class.html#height\" class=\"summary-sig-name\">height</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lats</span>,\n        <span class=\"summary-sig-arg\">lons</span>,\n        <span class=\"summary-sig-arg\">**wrap</span>)</span><br />\n      Interpolate the geoid height for one or several lat-/longitudes.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geoids._GeoidBase-class.html#height_\" class=\"summary-sig-name\">height_</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">*latlons</span>,\n        <span class=\"summary-sig-arg\">**wrap</span>)</span><br />\n      Interpolate the geoid height for each <i class=\"math\">(latlons[i], \n      latlons[i+1]) pair for i in range(0, len(latlons), <b>2</b>)</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geoids._GeoidBase-class.html#highest\" class=\"summary-sig-name\">highest</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">LatLon</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**unused</span>)</span><br />\n      Return the location and largest height of this geoid.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geoids._GeoidBase-class.html#lowerleft\" class=\"summary-sig-name\">lowerleft</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">LatLon</span>=<span class=\"summary-sig-default\">None</span>)</span><br />\n      Return the lower-left location and height of this geoid.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geoids._GeoidBase-class.html#loweright\" class=\"summary-sig-name\">loweright</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">LatLon</span>=<span class=\"summary-sig-default\">None</span>)</span><br />\n      Return the lower-right location and height of this geoid.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geoids._GeoidBase-class.html#lowerright\" class=\"summary-sig-name\">lowerright</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">LatLon</span>=<span class=\"summary-sig-default\">None</span>)</span><br />\n      Return the lower-right location and height of this geoid.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geoids._GeoidBase-class.html#lowest\" class=\"summary-sig-name\">lowest</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">LatLon</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**unused</span>)</span><br />\n      Return the location and lowest height of this geoid.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geoids._GeoidBase-class.html#outside\" class=\"summary-sig-name\">outside</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lat</span>,\n        <span class=\"summary-sig-arg\">lon</span>)</span><br />\n      Check whether a location is outside this geoid's lat-/longitude or \n      crop range.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geoids._GeoidBase-class.html#toStr\" class=\"summary-sig-name\">toStr</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">prec</span>=<span class=\"summary-sig-default\">3</span>,\n        <span class=\"summary-sig-arg\">sep</span>=<span class=\"summary-sig-default\">', '</span>)</span><br />\n      This geoid and all geoid attributes as a string.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geoids._GeoidBase-class.html#upperleft\" class=\"summary-sig-name\">upperleft</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">LatLon</span>=<span class=\"summary-sig-default\">None</span>)</span><br />\n      Return the upper-left location and height of this geoid.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.geoids._GeoidBase-class.html#upperright\" class=\"summary-sig-name\">upperright</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">LatLon</span>=<span class=\"summary-sig-default\">None</span>)</span><br />\n      Return the upper-right location and height of this geoid.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geoids._GeoidBase-class.html#closed\" class=\"summary-name\">closed</a><br />\n      Get the <code>egm*.pgm</code> geoid file status.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geoids._GeoidBase-class.html#cropped\" class=\"summary-name\">cropped</a><br />\n      Is geoid cropped (<code>bool</code> or <code>None</code> if crop not \n      supported).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geoids._GeoidBase-class.html#dtype\" class=\"summary-name\">dtype</a><br />\n      Get the grid <code>scipy</code> <a \n      href=\"https://docs.SciPy.org/doc/numpy/reference/generated/numpy.ndarray.dtype.html\"\n      target=\"_top\">dtype</a> (<code>numpy.dtype</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geoids._GeoidBase-class.html#endian\" class=\"summary-name\">endian</a><br />\n      Get the geoid endianess and <a \n      href=\"https://docs.SciPy.org/doc/numpy/reference/generated/numpy.dtype.html\"\n      target=\"_top\">dtype</a> (<code>str</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geoids._GeoidBase-class.html#hits\" class=\"summary-name\">hits</a><br />\n      Get the number of cache hits (<code>int</code> or <code>None</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geoids._GeoidBase-class.html#kind\" class=\"summary-name\">kind</a><br />\n      Get the interpolator kind and order (<code>int</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geoids._GeoidBase-class.html#knots\" class=\"summary-name\">knots</a><br />\n      Get the number of grid knots (<code>int</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geoids._GeoidBase-class.html#mean\" class=\"summary-name\">mean</a><br />\n      Get the mean of this geoid's heights (<code>float</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geoids._GeoidBase-class.html#name\" class=\"summary-name\">name</a><br />\n      Get the name of this geoid (<code>str</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geoids._GeoidBase-class.html#nBytes\" class=\"summary-name\">nBytes</a><br />\n      Get the grid in-memory size in bytes (<code>int</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geoids._GeoidBase-class.html#pgm\" class=\"summary-name\">pgm</a><br />\n      Get the PGM attributes (<code>_PGM</code> or <code>None</code> if not\n      available/applicable).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geoids._GeoidBase-class.html#sizeB\" class=\"summary-name\">sizeB</a><br />\n      Get the geoid grid file size in bytes (<code>int</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geoids._GeoidBase-class.html#smooth\" class=\"summary-name\">smooth</a><br />\n      Get the <code>RectBivariateSpline</code> smoothing \n      (<code>int</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geoids._GeoidBase-class.html#stdev\" class=\"summary-name\">stdev</a><br />\n      Get the standard deviation of this geoid's heights \n      (<code>float</code>) or <code>None</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.geoids._GeoidBase-class.html#u2B\" class=\"summary-name\">u2B</a><br />\n      Get the PGM itemsize in bytes (<code>int</code>).\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.heights._HeightBase-class.html\">heights._HeightBase</a></code></b>:\n      <code><a href=\"pygeodesy.heights._HeightBase-class.html#numpy\">numpy</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightBase-class.html#scipy\">scipy</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightBase-class.html#scipy_interpolate\">scipy_interpolate</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.heights._HeightNamed-class.html\">heights._HeightNamed</a></code></b>:\n      <code><a href=\"pygeodesy.heights._HeightNamed-class.html#datum\">datum</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightNamed-class.html#kmin\">kmin</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightNamed-class.html#wrap\">wrap</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">hs</span>,\n        <span class=\"sig-arg\">p</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>(INTERNAL) Set up the grid axes, the <code>SciPy</code> interpolator \n  and several internal geoid attributes.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>hs</code></strong> - Grid knots with known height (<code>numpy 2darray</code>).</li>\n        <li><strong class=\"pname\"><code>p</code></strong> - The <code>slat, wlon, nlat, nlon, dlat, dlon</code> and other \n          geoid parameters (<code>INTERNAL</code>).</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__call__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__call__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">*llis</span>,\n        <span class=\"sig-arg\">**wrap_H</span>)</span>\n    <br /><em class=\"fname\">(Call operator)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Interpolate the geoid (or orthometric) height for one or more \n  locations.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>llis</code></strong> - One or several locations (each <code>LatLon</code>), all \n          positional.</li>\n        <li><strong class=\"pname\"><code>wrap_H</code></strong> - Keyword arguments <code><b>wrap</b>=False</code> \n          (<code>bool</code>) and <code><b>H</b>=False</code> \n          (<code>bool</code>).  Use <code><b>wrap</b>=True</code> to wrap \n          or <i>normalize</i> all <b><code>llis</code></b> locations.  If \n          <code><b>H</b> is True</code>, return the <i>orthometric</i> \n          height instead of the <i>geoid</i> height at each location.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A single geoid (or orthometric) height (<code>float</code>) or a \n          list or tuple of geoid (or orthometric) heights (each \n          <code>float</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.geoids.GeoidError-class.html\">GeoidError</a></strong></code> - Insufficient number of <b><code>llis</code></b>, an invalid \n        <b><code>lli</code></b> or the <code>egm*.pgm</code> geoid file is \n        closed.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.RangeError-class.html\">RangeError</a></strong></code> - An <b><code>lli</code></b> is outside this geoid's lat- or \n        longitude range.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.SciPyError-class.html\">SciPyError</a></strong></code> - A <code>scipy</code> issue.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.SciPyWarning-class.html\">SciPyWarning</a></strong></code> - A <code>scipy</code> warning as exception.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.heights._HeightNamed-class.html#__call__\">heights._HeightNamed.__call__</a>\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        To obtain <i>orthometric</i> heights, each <b><code>llis</code></b>\n        location must have an ellipsoid <code>height</code> or \n        <code>h</code> attribute, otherwise <code>height=0</code> is used.\n      </p>\n      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.formy-module.html#heightOrthometric\" \n        class=\"link\">pygeodesy.heightOrthometric</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"__repr__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__repr__</span>&nbsp;(<span class=\"sig-arg\">self</span>)</span>\n    <br /><em class=\"fname\">(Representation operator)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Default <code>repr(self)</code>.</p>\n  <dl class=\"fields\">\n    <dt>Overrides:\n        object.__repr__\n        <dd><em class=\"note\">(inherited documentation)</em></dd>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__str__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__str__</span>&nbsp;(<span class=\"sig-arg\">self</span>)</span>\n    <br /><em class=\"fname\">(Informal representation operator)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Default <code>str(self)</code>.</p>\n  <dl class=\"fields\">\n    <dt>Overrides:\n        object.__str__\n        <dd><em class=\"note\">(inherited documentation)</em></dd>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"center\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">center</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">LatLon</span>=<span class=\"sig-default\">None</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the center location and height of this geoid.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>LatLon</code></strong> - Optional class to return the location and height \n          (<code>LatLon</code>) or <code>None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>If <code><b>LatLon</b> is None</code>, a <a \n          href=\"pygeodesy.namedTuples.LatLon3Tuple-class.html\" \n          class=\"link\">LatLon3Tuple</a><code>(lat, lon, height)</code> \n          otherwise a <b><code>LatLon</code></b> instance with the lat-, \n          longitude and geoid height of the center grid location.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"height\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">height</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lats</span>,\n        <span class=\"sig-arg\">lons</span>,\n        <span class=\"sig-arg\">**wrap</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Interpolate the geoid height for one or several lat-/longitudes.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lats</code></strong> - Latitude or latitudes (each <code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lons</code></strong> - Longitude or longitudes (each <code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - Use <code><b>wrap</b>=True</code> to wrap or <i>normalize</i> all\n          <b><code>lats</code></b> and <b><code>lons</code></b>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A single geoid height (<code>float</code>) or a list of geoid \n          heights (each <code>float</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.geoids.GeoidError-class.html\">GeoidError</a></strong></code> - Insufficient or unequal number of <b><code>lats</code></b> and \n        <b><code>lons</code></b>.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.RangeError-class.html\">RangeError</a></strong></code> - A <b><code>lat</code></b> or <b><code>lon</code></b> is outside \n        this geoid's lat- or longitude range.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.SciPyError-class.html\">SciPyError</a></strong></code> - A <code>scipy</code> issue.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.SciPyWarning-class.html\">SciPyWarning</a></strong></code> - A <code>scipy</code> warning as exception.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.heights._HeightNamed-class.html#height\">heights._HeightNamed.height</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"height_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">height_</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">*latlons</span>,\n        <span class=\"sig-arg\">**wrap</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Interpolate the geoid height for each <i class=\"math\">(latlons[i], \n  latlons[i+1]) pair for i in range(0, len(latlons), <b>2</b>)</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>latlons</code></strong> - Alternating lat-/longitude pairs (each <code>degrees</code>), all\n          positional.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A tuple of geoid heights (each <code>float</code>).</dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.heights._HeightNamed-class.html#height_\">heights._HeightNamed.height_</a>\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <a href=\"pygeodesy.geoids._GeoidBase-class.html#height\" \n        class=\"link\">height</a> for further details.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"highest\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">highest</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">LatLon</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**unused</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the location and largest height of this geoid.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>LatLon</code></strong> - Optional class to return the location and height \n          (<code>LatLon</code>) or <code>None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>If <code><b>LatLon</b> is None</code>, a <a \n          href=\"pygeodesy.namedTuples.LatLon3Tuple-class.html\" \n          class=\"link\">LatLon3Tuple</a><code>(lat, lon, height)</code> \n          otherwise a <b><code>LatLon</code></b> instance with the lat-, \n          longitude and geoid height of the highest grid location.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"lowerleft\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">lowerleft</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">LatLon</span>=<span class=\"sig-default\">None</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the lower-left location and height of this geoid.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>LatLon</code></strong> - Optional class to return the location (<code>LatLon</code>) and \n          height or <code>None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>If <code><b>LatLon</b> is None</code>, a <a \n          href=\"pygeodesy.namedTuples.LatLon3Tuple-class.html\" \n          class=\"link\">LatLon3Tuple</a><code>(lat, lon, height)</code> \n          otherwise a <b><code>LatLon</code></b> instance with the lat-, \n          longitude and geoid height of the lower-left, SW grid corner.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"loweright\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">loweright</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">LatLon</span>=<span class=\"sig-default\">None</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the lower-right location and height of this geoid.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>LatLon</code></strong> - Optional class to return the location and height \n          (<code>LatLon</code>) or <code>None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>If <code><b>LatLon</b> is None</code>, a <a \n          href=\"pygeodesy.namedTuples.LatLon3Tuple-class.html\" \n          class=\"link\">LatLon3Tuple</a><code>(lat, lon, height)</code> \n          otherwise a <b><code>LatLon</code></b> instance with the lat-, \n          longitude and geoid height of the lower-right, SE grid corner.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"lowerright\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">lowerright</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">LatLon</span>=<span class=\"sig-default\">None</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the lower-right location and height of this geoid.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>LatLon</code></strong> - Optional class to return the location and height \n          (<code>LatLon</code>) or <code>None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>If <code><b>LatLon</b> is None</code>, a <a \n          href=\"pygeodesy.namedTuples.LatLon3Tuple-class.html\" \n          class=\"link\">LatLon3Tuple</a><code>(lat, lon, height)</code> \n          otherwise a <b><code>LatLon</code></b> instance with the lat-, \n          longitude and geoid height of the lower-right, SE grid corner.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"lowest\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">lowest</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">LatLon</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**unused</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the location and lowest height of this geoid.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>LatLon</code></strong> - Optional class to return the location and height \n          (<code>LatLon</code>) or <code>None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>If <code><b>LatLon</b> is None</code>, a <a \n          href=\"pygeodesy.namedTuples.LatLon3Tuple-class.html\" \n          class=\"link\">LatLon3Tuple</a><code>(lat, lon, height)</code> \n          otherwise a <b><code>LatLon</code></b> instance with the lat-, \n          longitude and geoid height of the lowest grid location.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"outside\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">outside</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lat</span>,\n        <span class=\"sig-arg\">lon</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Check whether a location is outside this geoid's lat-/longitude or \n  crop range.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat</code></strong> - The latitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lon</code></strong> - The longitude (<code>degrees</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A 1- or 2-character <code>str</code> if outside, an empty \n          <code>str</code> otherwise.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toStr\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toStr</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">prec</span>=<span class=\"sig-default\">3</span>,\n        <span class=\"sig-arg\">sep</span>=<span class=\"sig-default\">', '</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>This geoid and all geoid attributes as a string.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>prec</code></strong> - Number of decimal digits (0..9 or <code>None</code> for default).\n          Trailing zero decimals are stripped for <b><code>prec</code></b> \n          values of 1 and above, but kept for negative \n          <b><code>prec</code></b> values.</li>\n        <li><strong class=\"pname\"><code>sep</code></strong> - Separator to join (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Geoid name and attributes (<code>str</code>).</dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.named._Named-class.html#toStr\">named._Named.toStr</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"upperleft\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">upperleft</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">LatLon</span>=<span class=\"sig-default\">None</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the upper-left location and height of this geoid.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>LatLon</code></strong> - Optional class to return the location and height \n          (<code>LatLon</code>) or <code>None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>If <code><b>LatLon</b> is None</code>, a <a \n          href=\"pygeodesy.namedTuples.LatLon3Tuple-class.html\" \n          class=\"link\">LatLon3Tuple</a><code>(lat, lon, height)</code> \n          otherwise a <b><code>LatLon</code></b> instance with the lat-, \n          longitude and geoid height of the upper-left, NW grid corner.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"upperright\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">upperright</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">LatLon</span>=<span class=\"sig-default\">None</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the upper-right location and height of this geoid.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>LatLon</code></strong> - Optional class to return the location and height \n          (<code>LatLon</code>) or <code>None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>If <code><b>LatLon</b> is None</code>, a <a \n          href=\"pygeodesy.namedTuples.LatLon3Tuple-class.html\" \n          class=\"link\">LatLon3Tuple</a><code>(lat, lon, height)</code> \n          otherwise a <b><code>LatLon</code></b> instance with the lat-, \n          longitude and geoid height of the upper-right, NE grid corner.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"closed\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">closed</h3>\n  <p>Get the <code>egm*.pgm</code> geoid file status.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">closed(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <code>egm*.pgm</code> geoid file status.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"cropped\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">cropped</h3>\n  <p>Is geoid cropped (<code>bool</code> or <code>None</code> if crop not \n  supported).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">cropped(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Is geoid cropped (<code>bool</code> or <code>None</code> if crop not \nsupported).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"dtype\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">dtype</h3>\n  <p>Get the grid <code>scipy</code> <a \n  href=\"https://docs.SciPy.org/doc/numpy/reference/generated/numpy.ndarray.dtype.html\"\n  target=\"_top\">dtype</a> (<code>numpy.dtype</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">dtype(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the grid <code>scipy</code> <a \nhref=\"https://docs.SciPy.org/doc/numpy/reference/generated/numpy.ndarray.dtype.html\"\ntarget=\"_top\">dtype</a> (<code>numpy.dtype</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"endian\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">endian</h3>\n  <p>Get the geoid endianess and <a \n  href=\"https://docs.SciPy.org/doc/numpy/reference/generated/numpy.dtype.html\"\n  target=\"_top\">dtype</a> (<code>str</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">endian(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the geoid endianess and <a \nhref=\"https://docs.SciPy.org/doc/numpy/reference/generated/numpy.dtype.html\"\ntarget=\"_top\">dtype</a> (<code>str</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"hits\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">hits</h3>\n  <p>Get the number of cache hits (<code>int</code> or \n  <code>None</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">hits(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the number of cache hits (<code>int</code> or <code>None</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"kind\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">kind</h3>\n  <p>Get the interpolator kind and order (<code>int</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">kind(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the interpolator kind and order (<code>int</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"knots\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">knots</h3>\n  <p>Get the number of grid knots (<code>int</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">knots(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the number of grid knots (<code>int</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"mean\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">mean</h3>\n  <p>Get the mean of this geoid's heights (<code>float</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">mean(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the mean of this geoid's heights (<code>float</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"name\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">name</h3>\n  <p>Get the name of this geoid (<code>str</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">name(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the name of this geoid (<code>str</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"nBytes\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">nBytes</h3>\n  <p>Get the grid in-memory size in bytes (<code>int</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">nBytes(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the grid in-memory size in bytes (<code>int</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"pgm\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">pgm</h3>\n  <p>Get the PGM attributes (<code>_PGM</code> or <code>None</code> if not \n  available/applicable).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">pgm(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the PGM attributes (<code>_PGM</code> or <code>None</code> if not \navailable/applicable).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"sizeB\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">sizeB</h3>\n  <p>Get the geoid grid file size in bytes (<code>int</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">sizeB(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the geoid grid file size in bytes (<code>int</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"smooth\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">smooth</h3>\n  <p>Get the <code>RectBivariateSpline</code> smoothing \n  (<code>int</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">smooth(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <code>RectBivariateSpline</code> smoothing (<code>int</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"stdev\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">stdev</h3>\n  <p>Get the standard deviation of this geoid's heights \n  (<code>float</code>) or <code>None</code>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">stdev(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the standard deviation of this geoid's heights (<code>float</code>) or \n<code>None</code>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"u2B\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">u2B</h3>\n  <p>Get the PGM itemsize in bytes (<code>int</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">u2B(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the PGM itemsize in bytes (<code>int</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.hausdorff-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.hausdorff</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        Module&nbsp;hausdorff\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.hausdorff-module.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== MODULE DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Module hausdorff</h1><p class=\"nomargin-top\"></p>\n<p>Hausdorff distances.</p>\n  <p>Classes <a href=\"pygeodesy.hausdorff.Hausdorff-class.html\" \n  class=\"link\">Hausdorff</a>, <a \n  href=\"pygeodesy.hausdorff.HausdorffDegrees-class.html\" \n  class=\"link\">HausdorffDegrees</a>, <a \n  href=\"pygeodesy.hausdorff.HausdorffRadians-class.html\" \n  class=\"link\">HausdorffRadians</a>, <a \n  href=\"pygeodesy.hausdorff.HausdorffCosineLaw-class.html\" \n  class=\"link\">HausdorffCosineLaw</a>, <a \n  href=\"pygeodesy.hausdorff.HausdorffDistanceTo-class.html\" \n  class=\"link\">HausdorffDistanceTo</a>, <a \n  href=\"pygeodesy.hausdorff.HausdorffEquirectangular-class.html\" \n  class=\"link\">HausdorffEquirectangular</a>, <a \n  href=\"pygeodesy.hausdorff.HausdorffEuclidean-class.html\" \n  class=\"link\">HausdorffEuclidean</a>, <a \n  href=\"pygeodesy.hausdorff.HausdorffFlatLocal-class.html\" \n  class=\"link\">HausdorffFlatLocal</a>, <a \n  href=\"pygeodesy.hausdorff.HausdorffFlatPolar-class.html\" \n  class=\"link\">HausdorffFlatPolar</a>, <a \n  href=\"pygeodesy.hausdorff.HausdorffHaversine-class.html\" \n  class=\"link\">HausdorffHaversine</a>, <a \n  href=\"pygeodesy.hausdorff.HausdorffHubeny-class.html\" \n  class=\"link\">HausdorffHubeny</a>, <a \n  href=\"pygeodesy.hausdorff.HausdorffKarney-class.html\" \n  class=\"link\">HausdorffKarney</a>, <a \n  href=\"pygeodesy.hausdorff.HausdorffThomas-class.html\" \n  class=\"link\">HausdorffThomas</a> and <a \n  href=\"pygeodesy.hausdorff.HausdorffVincentys-class.html\" \n  class=\"link\">HausdorffVincentys</a> to compute <a \n  href=\"https://WikiPedia.org/wiki/Hausdorff_distance\" \n  target=\"_top\">Hausdorff</a> distances between two sets of \n  <code>LatLon</code>, <code>NumPy</code>, <code>tuples</code> or other \n  types of points.</p>\n  <p>Only <a href=\"pygeodesy.hausdorff.HausdorffDistanceTo-class.html\" \n  class=\"link\">HausdorffDistanceTo</a> -iff used with <a \n  href=\"pygeodesy.ellipsoidalKarney.LatLon-class.html\" \n  class=\"link\">ellipsoidalKarney.LatLon</a> points- and <a \n  href=\"pygeodesy.hausdorff.HausdorffKarney-class.html\" \n  class=\"link\">HausdorffKarney</a> requires installation of <i>Charles \n  Karney</i>'s <a href=\"https://PyPI.org/project/geographiclib\" \n  target=\"_top\">geographiclib</a>.</p>\n  <p>Typical usage is as follows.  First, create a <code>Hausdorff</code> \n  calculator from a given set of <code>LatLon</code> points, called the \n  <code>model</code> or <code>template</code> points.</p>\n  <p><code>h = HausdorffXyz(point1s, ...)</code></p>\n  <p>Get the <code>directed</code> or <code>symmetric</code> Hausdorff \n  distance to a second set of <code>LatLon</code> points, named the \n  <code>target</code> points, by using</p>\n  <p><code>t6 = h.directed(point2s)</code></p>\n  <p>respectively</p>\n  <p><code>t6 = h.symmetric(point2s)</code>.</p>\n  <p>Or, use function <code>hausdorff_</code> with a proper \n  <code>distance</code> function and optionally a <code>point</code> \n  function passed as keyword arguments as follows</p>\n  <p><code>t6 = hausdorff_(point1s, point2s, ..., distance=..., \n  point=...)</code>.</p>\n  <p>In all cases, the returned result <code>t6</code> is a <a \n  href=\"pygeodesy.hausdorff.Hausdorff6Tuple-class.html\" \n  class=\"link\">Hausdorff6Tuple</a>.</p>\n  <p>For <code>(lat, lon, ...)</code> points in a <code>NumPy</code> array \n  or plain <code>tuples</code>, wrap the points in a <a \n  href=\"pygeodesy.points.Numpy2LatLon-class.html\" \n  class=\"link\">Numpy2LatLon</a> respectively <a \n  href=\"pygeodesy.points.Tuple2LatLon-class.html\" \n  class=\"link\">Tuple2LatLon</a> instance, more details in the documentation\n  thereof.</p>\n  <p>For other points, create a <a \n  href=\"pygeodesy.hausdorff.Hausdorff-class.html\" \n  class=\"link\">Hausdorff</a> sub-class with the appropriate \n  <code>distance</code> method overloading <a \n  href=\"pygeodesy.hausdorff.Hausdorff-class.html#distance\" \n  class=\"link\">Hausdorff.distance</a> and optionally a <code>point</code> \n  method overriding <a \n  href=\"pygeodesy.hausdorff.Hausdorff-class.html#point\" \n  class=\"link\">Hausdorff.point</a> as the next example.</p>\n<pre class=\"py-doctest\">\n<span class=\"py-prompt\">&gt;&gt;&gt; </span><span class=\"py-keyword\">from</span> pygeodesy <span class=\"py-keyword\">import</span> Hausdorff, hypot_\n<span class=\"py-prompt\">&gt;&gt;&gt;</span>\n<span class=\"py-prompt\">&gt;&gt;&gt; </span><span class=\"py-keyword\">class</span> <span class=\"py-defname\">H3D</span>(Hausdorff):\n<span class=\"py-prompt\">&gt;&gt;&gt; </span>    <span class=\"py-string\">&quot;&quot;</span>&quot;Custom Hausdorff example.\n<span class=\"py-prompt\">&gt;&gt;&gt; </span>    <span class=\"py-string\">&quot;&quot;</span>&quot;\n<span class=\"py-prompt\">&gt;&gt;&gt; </span>    <span class=\"py-keyword\">def</span> <span class=\"py-defname\">distance</span>(self, p1, p2):\n<span class=\"py-prompt\">&gt;&gt;&gt; </span>        return hypot_(p1.x - p2.x, p1.y - p2.y, p1.z - p2.z)\n<span class=\"py-prompt\">&gt;&gt;&gt;</span>\n<span class=\"py-prompt\">&gt;&gt;&gt; </span>h3D = H3D(xyz1, ..., units=<span class=\"py-string\">&quot;...&quot;</span>)\n<span class=\"py-prompt\">&gt;&gt;&gt; </span>d6 = h3D.directed(xyz2)</pre>\n  <p>Transcribed from the original SciPy <a \n  href=\"https://GitHub.com/scipy/scipy/blob/master/scipy/spatial/_hausdorff.pyx\"\n  target=\"_top\">Directed Hausdorff Code</a> version 0.19.0, Copyright (C) \n  Tyler Reddy, Richard Gowers, and Max Linke, 2016, distributed under the \n  same BSD license as SciPy, including <code>early breaking</code> and \n  <code>random sampling</code> as in <a \n  href=\"https://Publik.TUWien.ac.AT/files/PubDat_247739.pdf\" \n  target=\"_top\">Abdel Aziz Taha, Allan Hanbury &quot;An Efficient Algorithm\n  for Calculating the Exact Hausdorff Distance&quot;</a>, IEEE Trans. \n  Pattern Analysis Machine Intelligence (PAMI), vol 37, no 11, pp \n  2153-2163, Nov 2015.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Version:</strong>\n        25.05.26\n      </p>\n</div><!-- ==================== CLASSES ==================== -->\n<a name=\"section-Classes\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Classes</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.hausdorff.HausdorffError-class.html\" class=\"summary-name\">HausdorffError</a><br />\n      Hausdorff issue.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.hausdorff.Hausdorff-class.html\" class=\"summary-name\">Hausdorff</a><br />\n      Hausdorff base class, requires method <a \n        href=\"pygeodesy.hausdorff.Hausdorff-class.html#distance\" \n        class=\"link\">Hausdorff.distance</a> to be overloaded.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.hausdorff.HausdorffDegrees-class.html\" class=\"summary-name\">HausdorffDegrees</a><br />\n      <a href=\"pygeodesy.hausdorff.Hausdorff-class.html\" \n        class=\"link\">Hausdorff</a> base class for distances from \n        <code>LatLon</code> points in <code>degrees</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.hausdorff.HausdorffRadians-class.html\" class=\"summary-name\">HausdorffRadians</a><br />\n      <a href=\"pygeodesy.hausdorff.Hausdorff-class.html\" \n        class=\"link\">Hausdorff</a> base class for distances from \n        <code>LatLon</code> points converted from <code>degrees</code> to \n        <code>radians</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.hausdorff.HausdorffCosineLaw-class.html\" class=\"summary-name\">HausdorffCosineLaw</a><br />\n      Compute the <code>Hausdorff</code> distance with function <a \n        href=\"pygeodesy.formy-module.html#cosineLaw_\" \n        class=\"link\">pygeodesy.cosineLaw_</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.hausdorff.HausdorffDistanceTo-class.html\" class=\"summary-name\">HausdorffDistanceTo</a><br />\n      Compute the <code>Hausdorff</code> distance the points' \n        <code>LatLon.distanceTo</code> method.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.hausdorff.HausdorffEquirectangular-class.html\" class=\"summary-name\">HausdorffEquirectangular</a><br />\n      Compute the <code>Hausdorff</code> distance with function <a \n        href=\"pygeodesy.formy-module.html#equirectangular\" \n        class=\"link\">pygeodesy.equirectangular</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.hausdorff.HausdorffEuclidean-class.html\" class=\"summary-name\">HausdorffEuclidean</a><br />\n      Compute the <code>Hausdorff</code> distance with function <a \n        href=\"pygeodesy.geohash-module.html#euclidean_\" \n        class=\"link\">pygeodesy.euclidean_</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.hausdorff.HausdorffExact-class.html\" class=\"summary-name\">HausdorffExact</a><br />\n      Compute the <code>Hausdorff</code> distance with method <a \n        href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html\" \n        class=\"link\">GeodesicExact</a><code>.Inverse</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.hausdorff.HausdorffFlatLocal-class.html\" class=\"summary-name\">HausdorffFlatLocal</a><br />\n      Compute the <code>Hausdorff</code> distance with function <a \n        href=\"pygeodesy.formy-module.html#flatLocal_\" \n        class=\"link\">pygeodesy.flatLocal_</a>/<a \n        href=\"pygeodesy.formy-module.html#flatLocal_\" \n        class=\"link\">pygeodesy.hubeny_</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.hausdorff.HausdorffFlatPolar-class.html\" class=\"summary-name\">HausdorffFlatPolar</a><br />\n      Compute the <code>Hausdorff</code> distance with function <a \n        href=\"pygeodesy.formy-module.html#flatPolar_\" \n        class=\"link\">pygeodesy.flatPolar_</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.hausdorff.HausdorffHaversine-class.html\" class=\"summary-name\">HausdorffHaversine</a><br />\n      Compute the <code>Hausdorff</code> distance with function <a \n        href=\"pygeodesy.geohash-module.html#haversine_\" \n        class=\"link\">pygeodesy.haversine_</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.hausdorff.HausdorffHubeny-class.html\" class=\"summary-name\">HausdorffHubeny</a><br />\n      Compute the <code>Hausdorff</code> distance with function <a \n        href=\"pygeodesy.formy-module.html#flatLocal_\" \n        class=\"link\">pygeodesy.flatLocal_</a>/<a \n        href=\"pygeodesy.formy-module.html#flatLocal_\" \n        class=\"link\">pygeodesy.hubeny_</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.hausdorff.HausdorffKarney-class.html\" class=\"summary-name\">HausdorffKarney</a><br />\n      Compute the <code>Hausdorff</code> distance with <i>Karney</i>'s <a\n        href=\"https://PyPI.org/project/geographiclib\" \n        target=\"_top\">geographiclib</a> <a \n        href=\"https://GeographicLib.SourceForge.io/Python/doc/code.html\" \n        target=\"_top\">geodesic.Geodesic</a><code>.Inverse</code> method.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.hausdorff.HausdorffThomas-class.html\" class=\"summary-name\">HausdorffThomas</a><br />\n      Compute the <code>Hausdorff</code> distance with function <a \n        href=\"pygeodesy.formy-module.html#thomas_\" \n        class=\"link\">pygeodesy.thomas_</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.hausdorff.HausdorffVincentys-class.html\" class=\"summary-name\">HausdorffVincentys</a><br />\n      Compute the <code>Hausdorff</code> distance with function <a \n        href=\"pygeodesy.geohash-module.html#vincentys_\" \n        class=\"link\">pygeodesy.vincentys_</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.hausdorff.Hausdorff6Tuple-class.html\" class=\"summary-name\">Hausdorff6Tuple</a><br />\n      6-Tuple <code>(hd, i, j, mn, md, units)</code> with the <a \n        href=\"https://WikiPedia.org/wiki/Hausdorff_distance\" \n        target=\"_top\">Hausdorff</a> distance <code>hd</code>, indices \n        <code>i</code> and <code>j</code>, the total count <code>mn</code>,\n        the <code><i>mean</i> Hausdorff</code> distance <code>md</code> and\n        the class or name of both distance <code>units</code>.\n    </td>\n  </tr>\n</table>\n<!-- ==================== FUNCTIONS ==================== -->\n<a name=\"section-Functions\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Functions</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.hausdorff-module.html#hausdorff_\" class=\"summary-sig-name\">hausdorff_</a>(<span class=\"summary-sig-arg\">model</span>,\n        <span class=\"summary-sig-arg\">target</span>,\n        <span class=\"summary-sig-arg\">both</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">early</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">seed</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">units</span>=<span class=\"summary-sig-default\">''</span>,\n        <span class=\"summary-sig-arg\">distance</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">point</span>=<span class=\"summary-sig-default\">&lt;function _point at 0x7fc1d033fed0&gt;</span>)</span><br />\n      Compute the <code>directed</code> or <code>symmetric</code> <a \n      href=\"https://WikiPedia.org/wiki/Hausdorff_distance\" \n      target=\"_top\">Hausdorff</a> distance between 2 sets of points with or\n      without <a href=\"https://Publik.TUWien.ac.AT/files/PubDat_247739.pdf\"\n      target=\"_top\">early breaking</a> and <a \n      href=\"https://Publik.TUWien.ac.AT/files/PubDat_247739.pdf\" \n      target=\"_top\">random sampling</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.hausdorff-module.html#randomrangenerator\" class=\"summary-sig-name\">randomrangenerator</a>(<span class=\"summary-sig-arg\">seed</span>)</span><br />\n      Return a <code>seed</code>ed random range function generator.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== VARIABLES ==================== -->\n<a name=\"section-Variables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Variables</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"__all__\"></a><span class=\"summary-name\">__all__</span> = <code title=\"_ALL_LAZY.hausdorff\">_ALL_LAZY.hausdorff</code>\n    </td>\n  </tr>\n</table>\n<!-- ==================== FUNCTION DETAILS ==================== -->\n<a name=\"section-FunctionDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Function Details</span></td>\n</tr>\n</table>\n<a name=\"hausdorff_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">hausdorff_</span>&nbsp;(<span class=\"sig-arg\">model</span>,\n        <span class=\"sig-arg\">target</span>,\n        <span class=\"sig-arg\">both</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">early</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">seed</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">units</span>=<span class=\"sig-default\">''</span>,\n        <span class=\"sig-arg\">distance</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">point</span>=<span class=\"sig-default\">&lt;function _point at 0x7fc1d033fed0&gt;</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the <code>directed</code> or <code>symmetric</code> <a \n  href=\"https://WikiPedia.org/wiki/Hausdorff_distance\" \n  target=\"_top\">Hausdorff</a> distance between 2 sets of points with or \n  without <a href=\"https://Publik.TUWien.ac.AT/files/PubDat_247739.pdf\" \n  target=\"_top\">early breaking</a> and <a \n  href=\"https://Publik.TUWien.ac.AT/files/PubDat_247739.pdf\" \n  target=\"_top\">random sampling</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>model</code></strong> - First set of points (<code>LatLon</code>[], \n          <code>Numpy2LatLon</code>[], <code>Tuple2LatLon</code>[] or \n          <code>other</code>[]).</li>\n        <li><strong class=\"pname\"><code>target</code></strong> - Second set of points (<code>LatLon</code>[], \n          <code>Numpy2LatLon</code>[], <code>Tuple2LatLon</code>[] or \n          <code>other</code>[]).</li>\n        <li><strong class=\"pname\"><code>both</code></strong> - Return the <code>directed</code> (forward only) or the \n          <code>symmetric</code> (combined forward and reverse) \n          <code>Hausdorff</code> distance (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>early</code></strong> - Enable or disable <a \n          href=\"https://Publik.TUWien.ac.AT/files/PubDat_247739.pdf\" \n          target=\"_top\">early breaking</a> (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>seed</code></strong> - Random sampling seed (<code>any</code>) or <code>None</code>, \n          <code>0</code> or <code>False</code> for no <a \n          href=\"https://Publik.TUWien.ac.AT/files/PubDat_247739.pdf\" \n          target=\"_top\">random sampling</a>.</li>\n        <li><strong class=\"pname\"><code>units</code></strong> - Optional, the distance units (<code>Unit</code> or \n          <code>str</code>).</li>\n        <li><strong class=\"pname\"><code>distance</code></strong> - Callable returning the distance between a \n          <b><code>model</code></b> and <b><code>target</code></b> point \n          (signature <code>(point1, point2)</code>).</li>\n        <li><strong class=\"pname\"><code>point</code></strong> - Callable returning the <b><code>model</code></b> or \n          <b><code>target</code></b> point suitable for \n          <b><code>distance</code></b> (signature <code>(point)</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.hausdorff.Hausdorff6Tuple-class.html\" \n          class=\"link\">Hausdorff6Tuple</a><code>(hd, i, j, mn, md, \n          units)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.hausdorff.HausdorffError-class.html\">HausdorffError</a></strong></code> - Insufficient number of <b><code>model</code></b> or \n        <b><code>target</code></b> points.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - If <b><code>distance</code></b> or <b><code>point</code></b> is not\n        callable.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"randomrangenerator\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">randomrangenerator</span>&nbsp;(<span class=\"sig-arg\">seed</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return a <code>seed</code>ed random range function generator.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>seed</code></strong> - Initial, internal Random state (<code>hashable</code> or \n          <code>None</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A function to generate random ranges.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        Random with <code><b>seed</b> is None</code> seeds from the current\n        time or from a platform-specific randomness source, if available.\n      </p>\n      <p><strong>Example:</strong>\n        <pre class=\"py-doctest\">\n<span class=\"py-prompt\">&gt;&gt;&gt; </span>rrange = randomrangenerator(<span class=\"py-string\">'R'</span>)\n<span class=\"py-prompt\">&gt;&gt;&gt; </span><span class=\"py-keyword\">for</span> r <span class=\"py-keyword\">in</span> rrange(n):\n<span class=\"py-prompt\">&gt;&gt;&gt; </span>   ...  <span class=\"py-comment\"># r is random in 0..n-1</span></pre>\n      </p>\n</div></td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.hausdorff.Hausdorff-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.hausdorff.Hausdorff</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.hausdorff-module.html\">Module&nbsp;hausdorff</a> ::\n        Class&nbsp;Hausdorff\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.hausdorff.Hausdorff-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Hausdorff</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+    \n           |    \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+\n               |\n              <strong class=\"uidshort\">Hausdorff</strong>\n</pre>\n\n<dl><dt>Known Subclasses:</dt>\n<dd>\n      <ul class=\"subclass-list\">\n<li class=\"private\">_HausdorffMeterRadians</li><li>, <a href=\"pygeodesy.hausdorff.HausdorffDegrees-class.html\">HausdorffDegrees</a></li><li>, <a href=\"pygeodesy.hausdorff.HausdorffDistanceTo-class.html\">HausdorffDistanceTo</a></li><li>, <a href=\"pygeodesy.hausdorff.HausdorffEquirectangular-class.html\">HausdorffEquirectangular</a></li><li>, <a href=\"pygeodesy.hausdorff.HausdorffExact-class.html\">HausdorffExact</a></li><li>, <a href=\"pygeodesy.hausdorff.HausdorffKarney-class.html\">HausdorffKarney</a></li><li>, <a href=\"pygeodesy.hausdorff.HausdorffRadians-class.html\">HausdorffRadians</a></li>  </ul>\n</dd></dl>\n\n<hr />\n<p>Hausdorff base class, requires method <a \n  href=\"pygeodesy.hausdorff.Hausdorff-class.html#distance\" \n  class=\"link\">Hausdorff.distance</a> to be overloaded.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.hausdorff.Hausdorff-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">point1s</span>,\n        <span class=\"summary-sig-arg\">seed</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">units</span>=<span class=\"summary-sig-default\">''</span>,\n        <span class=\"summary-sig-arg\">**name__kwds</span>)</span><br />\n      New <code>Hausdorff...</code> calculator.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.hausdorff.Hausdorff-class.html#directed\" class=\"summary-sig-name\">directed</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">point2s</span>,\n        <span class=\"summary-sig-arg\">early</span>=<span class=\"summary-sig-default\">True</span>)</span><br />\n      Compute only the <code>forward Hausdorff</code> distance.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"distance\"></a><span class=\"summary-sig-name\">distance</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">point1</span>,\n        <span class=\"summary-sig-arg\">point2</span>)</span><br />\n      Return the distance between <b><code>point1</code></b> and \n      <b><code>point2</code></b>, subject to the supplied optional keyword \n      arguments, see property <code>kwds</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"point\"></a><span class=\"summary-sig-name\">point</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">point</span>)</span><br />\n      Convert a <code>model</code> or <code>target</code> point for the \n      <code>.distance</code> method.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.hausdorff.Hausdorff-class.html#symmetric\" class=\"summary-sig-name\">symmetric</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">point2s</span>,\n        <span class=\"summary-sig-arg\">early</span>=<span class=\"summary-sig-default\">True</span>)</span><br />\n      Compute the combined <code>forward and reverse Hausdorff</code> \n      distance.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.hausdorff.Hausdorff-class.html#adjust\" class=\"summary-name\">adjust</a><br />\n      Get the adjust setting (<code>bool</code> or <code>None</code> if not\n      applicable).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.hausdorff.Hausdorff-class.html#datum\" class=\"summary-name\">datum</a><br />\n      Get the datum of this calculator (<a \n      href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a> or \n      <code>None</code> if not applicable).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.hausdorff.Hausdorff-class.html#kwds\" class=\"summary-name\">kwds</a><br />\n      Get the supplied, optional keyword arguments (<code>dict</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.hausdorff.Hausdorff-class.html#seed\" class=\"summary-name\">seed</a><br />\n      Class <code>property</code> with a <code>.name</code> attribute.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.hausdorff.Hausdorff-class.html#units\" class=\"summary-name\">units</a><br />\n      Class <code>property</code> with a <code>.name</code> attribute.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.hausdorff.Hausdorff-class.html#wrap\" class=\"summary-name\">wrap</a><br />\n      Get the wrap setting (<code>bool</code> or <code>None</code> if not \n      applicable).\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">point1s</span>,\n        <span class=\"sig-arg\">seed</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">units</span>=<span class=\"sig-default\">''</span>,\n        <span class=\"sig-arg\">**name__kwds</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <code>Hausdorff...</code> calculator.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>point1s</code></strong> - Initial set of points, aka the <code>model</code> or \n          <code>template</code> (<code>LatLon</code>[], \n          <code>Numpy2LatLon</code>[], <code>Tuple2LatLon</code>[] or \n          <code>other</code>[]).</li>\n        <li><strong class=\"pname\"><code>seed</code></strong> - Random sampling seed (<code>any</code>) or <code>None</code>, \n          <code>0</code> or <code>False</code> for no <a \n          href=\"https://Publik.TUWien.ac.AT/files/PubDat_247739.pdf\" \n          target=\"_top\">random sampling</a>.</li>\n        <li><strong class=\"pname\"><code>units</code></strong> - Optional, the distance units (<code>Unit</code> or \n          <code>str</code>).</li>\n        <li><strong class=\"pname\"><code>name__kwds</code></strong> - Optional calculator/interpolator <code><b>name</b>=NN</code> \n          (<code>str</code>) and keyword arguments for the distance \n          function, retrievable with property <code>kwds</code>.</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.hausdorff.HausdorffError-class.html\">HausdorffError</a></strong></code> - Insufficient number of <b><code>point1s</code></b> or an invalid \n        <b><code>point1</code></b>, <b><code>seed</code></b> or \n        <b><code>units</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"directed\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">directed</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">point2s</span>,\n        <span class=\"sig-arg\">early</span>=<span class=\"sig-default\">True</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute only the <code>forward Hausdorff</code> distance.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>point2s</code></strong> - Second set of points, aka the <code>target</code> \n          (<code>LatLon</code>[], <code>Numpy2LatLon</code>[], \n          <code>Tuple2LatLon</code>[] or <code>other</code>[]).</li>\n        <li><strong class=\"pname\"><code>early</code></strong> - Enable or disable <a \n          href=\"https://Publik.TUWien.ac.AT/files/PubDat_247739.pdf\" \n          target=\"_top\">early breaking</a> (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.hausdorff.Hausdorff6Tuple-class.html\" \n          class=\"link\">Hausdorff6Tuple</a><code>(hd, i, j, mn, md, \n          units)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.hausdorff.HausdorffError-class.html\">HausdorffError</a></strong></code> - Insufficient number of <b><code>point2s</code></b> or an invalid \n        <b><code>point2</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        See <b><code>point2s</code></b> note at <a \n        href=\"pygeodesy.hausdorff.HausdorffDistanceTo-class.html\" \n        class=\"link\">HausdorffDistanceTo</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"symmetric\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">symmetric</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">point2s</span>,\n        <span class=\"sig-arg\">early</span>=<span class=\"sig-default\">True</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the combined <code>forward and reverse Hausdorff</code> \n  distance.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>point2s</code></strong> - Second set of points, aka the <code>target</code> \n          (<code>LatLon</code>[], <code>Numpy2LatLon</code>[], \n          <code>Tuple2LatLon</code>[] or <code>other</code>[]).</li>\n        <li><strong class=\"pname\"><code>early</code></strong> - Enable or disable <a \n          href=\"https://Publik.TUWien.ac.AT/files/PubDat_247739.pdf\" \n          target=\"_top\">early breaking</a> (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.hausdorff.Hausdorff6Tuple-class.html\" \n          class=\"link\">Hausdorff6Tuple</a><code>(hd, i, j, mn, md, \n          units)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.hausdorff.HausdorffError-class.html\">HausdorffError</a></strong></code> - Insufficient number of <b><code>point2s</code></b> or an invalid \n        <b><code>point2</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        See <b><code>point2s</code></b> note at <a \n        href=\"pygeodesy.hausdorff.HausdorffDistanceTo-class.html\" \n        class=\"link\">HausdorffDistanceTo</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<br />\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"adjust\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">adjust</h3>\n  <p>Get the adjust setting (<code>bool</code> or <code>None</code> if not \n  applicable).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">adjust(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the adjust setting (<code>bool</code> or <code>None</code> if not \napplicable).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"datum\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">datum</h3>\n  <p>Get the datum of this calculator (<a \n  href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a> or \n  <code>None</code> if not applicable).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">datum(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the datum of this calculator (<a \nhref=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a> or \n<code>None</code> if not applicable).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"kwds\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">kwds</h3>\n  <p>Get the supplied, optional keyword arguments (<code>dict</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">kwds(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the supplied, optional keyword arguments (<code>dict</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"seed\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">seed</h3>\n  <p>Class <code>property</code> with a <code>.name</code> attribute.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">seed(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the random sampling seed (<code>any</code> or <code>None</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">seed(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">seed</span>)</span>\n        - Set the random sampling seed (<code>Random(seed)</code>) or \n<code>None</code>, <code>0</code> or <code>False</code> for no <a \nhref=\"https://Publik.TUWien.ac.AT/files/PubDat_247739.pdf\" \ntarget=\"_top\">random sampling</a>.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"units\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">units</h3>\n  <p>Class <code>property</code> with a <code>.name</code> attribute.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">units(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the distance units (<code>Unit</code> or <code>str</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">units(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">units</span>)</span>\n        - Set the distance units (<code>Unit</code> or <code>str</code>).\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"wrap\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">wrap</h3>\n  <p>Get the wrap setting (<code>bool</code> or <code>None</code> if not \n  applicable).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">wrap(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the wrap setting (<code>bool</code> or <code>None</code> if not \napplicable).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.hausdorff.Hausdorff6Tuple-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.hausdorff.Hausdorff6Tuple</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.hausdorff-module.html\">Module&nbsp;hausdorff</a> ::\n        Class&nbsp;Hausdorff6Tuple\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.hausdorff.Hausdorff6Tuple-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Hausdorff6Tuple</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n   object --+        \n            |        \n        tuple --+    \n                |    \n   object --+   |    \n            |   |    \n <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n                |    \n<a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a> --+\n                    |\n                   <strong class=\"uidshort\">Hausdorff6Tuple</strong>\n</pre>\n\n<hr />\n<p>6-Tuple <code>(hd, i, j, mn, md, units)</code> with the <a \n  href=\"https://WikiPedia.org/wiki/Hausdorff_distance\" \n  target=\"_top\">Hausdorff</a> distance <code>hd</code>, indices \n  <code>i</code> and <code>j</code>, the total count <code>mn</code>, the \n  <code><i>mean</i> Hausdorff</code> distance <code>md</code> and the class\n  or name of both distance <code>units</code>.</p>\n  <p>For <code>directed Hausdorff</code> distances, count <code>mn</code> \n  is the number of model points considered. For <code>symmetric \n  Hausdorff</code> distances count <code>mn</code> twice that.</p>\n  <p>Indices <code>i</code> and <code>j</code> are the <code>model</code> \n  respectively <code>target</code> point with the <code>hd</code> \n  distance.</p>\n  <p>Mean distance <code>md</code> is <code>None</code> if an <code>early \n  break</code> occurred and <a \n  href=\"https://Publik.TUWien.ac.AT/files/PubDat_247739.pdf\" \n  target=\"_top\">early breaking</a> was enabled by keyword argument \n  <code>early=True</code>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.hausdorff.Hausdorff6Tuple-class.html#toUnits\" class=\"summary-sig-name\">toUnits</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">**Error_name</span>)</span><br />\n      Overloaded <code>_NamedTuple.toUnits</code> for <code>hd</code> and \n      <code>md</code> units.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__delattr__\">__delattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__getattr__\">__getattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__setattr__\">__setattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#items\">items</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iteritems\">iteritems</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iterunits\">iterunits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#reUnit\">reUnit</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>tuple</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__eq__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__iter__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__rmul__</code>,\n      <code>count</code>,\n      <code>index</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__new__\">__new__</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"toUnits\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toUnits</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">**Error_name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Overloaded <code>_NamedTuple.toUnits</code> for <code>hd</code> and \n  <code>md</code> units.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>Error</code></strong> - Error to raise for <a \n          href=\"pygeodesy.named._NamedTuple-class.html#units\" \n          class=\"link\">units</a> issues (<code>UnitError</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A duplicate of this <code>Named-Tuple</code> \n          (<code><code>Named-Tuple</code></code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>Error</strong></code> - Invalid <code>Named-Tuple</code> item or <a \n        href=\"pygeodesy.named._NamedTuple-class.html#units\" \n        class=\"link\">units</a> class.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.named._NamedTuple-class.html#toUnits\">named._NamedTuple.toUnits</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.hausdorff.HausdorffCosineLaw-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.hausdorff.HausdorffCosineLaw</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.hausdorff-module.html\">Module&nbsp;hausdorff</a> ::\n        Class&nbsp;HausdorffCosineLaw\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.hausdorff.HausdorffCosineLaw-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class HausdorffCosineLaw</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n    object --+            \n             |            \n  <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+        \n                 |        \n         <a href=\"pygeodesy.hausdorff.Hausdorff-class.html\">Hausdorff</a> --+    \n                     |    \n_HausdorffMeterRadians --+\n                         |\n                        <strong class=\"uidshort\">HausdorffCosineLaw</strong>\n</pre>\n\n<hr />\n<p>Compute the <code>Hausdorff</code> distance with function <a \n  href=\"pygeodesy.formy-module.html#cosineLaw_\" \n  class=\"link\">pygeodesy.cosineLaw_</a>.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Note:</strong>\n        See note at function <a \n        href=\"pygeodesy.geohash-module.html#vincentys_\" \n        class=\"link\">pygeodesy.vincentys_</a>.\n      </p>\n</div><!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.hausdorff.HausdorffCosineLaw-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">point1s</span>,\n        <span class=\"summary-sig-arg\">**seed_name__corr_earth_wrap</span>)</span><br />\n      New <a href=\"pygeodesy.hausdorff.HausdorffCosineLaw-class.html\" \n      class=\"link\">HausdorffCosineLaw</a> calculator.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.hausdorff.HausdorffCosineLaw-class.html#directed\" class=\"summary-sig-name\">directed</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">point2s</span>,\n        <span class=\"summary-sig-arg\">early</span>=<span class=\"summary-sig-default\">True</span>)</span><br />\n      Compute only the <code>forward Hausdorff</code> distance.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.hausdorff.HausdorffCosineLaw-class.html#symmetric\" class=\"summary-sig-name\">symmetric</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">point2s</span>,\n        <span class=\"summary-sig-arg\">early</span>=<span class=\"summary-sig-default\">True</span>)</span><br />\n      Compute the combined <code>forward and reverse Hausdorff</code> \n      distance.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html\">Hausdorff</a></code></b>:\n      <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html#distance\">distance</a></code>,\n      <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html#point\">point</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html\">Hausdorff</a></code></b>:\n      <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html#adjust\">adjust</a></code>,\n      <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html#datum\">datum</a></code>,\n      <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html#kwds\">kwds</a></code>,\n      <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html#seed\">seed</a></code>,\n      <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html#units\">units</a></code>,\n      <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html#wrap\">wrap</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">point1s</span>,\n        <span class=\"sig-arg\">**seed_name__corr_earth_wrap</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.hausdorff.HausdorffCosineLaw-class.html\" \n  class=\"link\">HausdorffCosineLaw</a> calculator.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>seed_name__corr_earth_wrap</code></strong> - Optional <code><b>seed</b>=None</code> and \n          <code><b>name</b>=NN</code> and keyword arguments for function <a\n          href=\"pygeodesy.formy-module.html#cosineLaw\" \n          class=\"link\">pygeodesy.cosineLaw</a>.</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.hausdorff.HausdorffError-class.html\">HausdorffError</a></strong></code> - Insufficient number of <b><code>point1s</code></b> or an invalid \n        <b><code>point1</code></b>, <b><code>seed</code></b> or \n        <b><code>units</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"pygeodesy.hausdorff.Hausdorff-class.html#__init__\" \n        class=\"link\">Hausdorff.__init__</a> for details about \n        <b><code>point1s</code></b>, <b><code>seed</code></b>, \n        <b><code>name</code></b> and other exceptions.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"directed\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">directed</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">point2s</span>,\n        <span class=\"sig-arg\">early</span>=<span class=\"sig-default\">True</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute only the <code>forward Hausdorff</code> distance.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>point2s</code></strong> - Second set of points, aka the <code>target</code> \n          (<code>LatLon</code>[], <code>Numpy2LatLon</code>[], \n          <code>Tuple2LatLon</code>[] or <code>other</code>[]).</li>\n        <li><strong class=\"pname\"><code>early</code></strong> - Enable or disable <a \n          href=\"https://Publik.TUWien.ac.AT/files/PubDat_247739.pdf\" \n          target=\"_top\">early breaking</a> (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.hausdorff.Hausdorff6Tuple-class.html\" \n          class=\"link\">Hausdorff6Tuple</a><code>(hd, i, j, mn, md, \n          units)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.hausdorff.HausdorffError-class.html\">HausdorffError</a></strong></code> - Insufficient number of <b><code>point2s</code></b> or an invalid \n        <b><code>point2</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.hausdorff.Hausdorff-class.html#directed\">Hausdorff.directed</a>\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        See <b><code>point2s</code></b> note at <a \n        href=\"pygeodesy.hausdorff.HausdorffDistanceTo-class.html\" \n        class=\"link\">HausdorffDistanceTo</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"symmetric\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">symmetric</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">point2s</span>,\n        <span class=\"sig-arg\">early</span>=<span class=\"sig-default\">True</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the combined <code>forward and reverse Hausdorff</code> \n  distance.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>point2s</code></strong> - Second set of points, aka the <code>target</code> \n          (<code>LatLon</code>[], <code>Numpy2LatLon</code>[], \n          <code>Tuple2LatLon</code>[] or <code>other</code>[]).</li>\n        <li><strong class=\"pname\"><code>early</code></strong> - Enable or disable <a \n          href=\"https://Publik.TUWien.ac.AT/files/PubDat_247739.pdf\" \n          target=\"_top\">early breaking</a> (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.hausdorff.Hausdorff6Tuple-class.html\" \n          class=\"link\">Hausdorff6Tuple</a><code>(hd, i, j, mn, md, \n          units)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.hausdorff.HausdorffError-class.html\">HausdorffError</a></strong></code> - Insufficient number of <b><code>point2s</code></b> or an invalid \n        <b><code>point2</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.hausdorff.Hausdorff-class.html#symmetric\">Hausdorff.symmetric</a>\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        See <b><code>point2s</code></b> note at <a \n        href=\"pygeodesy.hausdorff.HausdorffDistanceTo-class.html\" \n        class=\"link\">HausdorffDistanceTo</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.hausdorff.HausdorffDegrees-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.hausdorff.HausdorffDegrees</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.hausdorff-module.html\">Module&nbsp;hausdorff</a> ::\n        Class&nbsp;HausdorffDegrees\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.hausdorff.HausdorffDegrees-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class HausdorffDegrees</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+        \n           |        \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n               |    \n       <a href=\"pygeodesy.hausdorff.Hausdorff-class.html\">Hausdorff</a> --+\n                   |\n                  <strong class=\"uidshort\">HausdorffDegrees</strong>\n</pre>\n\n<hr />\n<p><a href=\"pygeodesy.hausdorff.Hausdorff-class.html\" \n  class=\"link\">Hausdorff</a> base class for distances from \n  <code>LatLon</code> points in <code>degrees</code>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.hausdorff.HausdorffDegrees-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">point1s</span>,\n        <span class=\"summary-sig-arg\">seed</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">units</span>=<span class=\"summary-sig-default\">''</span>,\n        <span class=\"summary-sig-arg\">**name__kwds</span>)</span><br />\n      New <code>Hausdorff...</code> calculator.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.hausdorff.HausdorffDegrees-class.html#directed\" class=\"summary-sig-name\">directed</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">point2s</span>,\n        <span class=\"summary-sig-arg\">early</span>=<span class=\"summary-sig-default\">True</span>)</span><br />\n      Compute only the <code>forward Hausdorff</code> distance.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.hausdorff.HausdorffDegrees-class.html#symmetric\" class=\"summary-sig-name\">symmetric</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">point2s</span>,\n        <span class=\"summary-sig-arg\">early</span>=<span class=\"summary-sig-default\">True</span>)</span><br />\n      Compute the combined <code>forward and reverse Hausdorff</code> \n      distance.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.hausdorff.HausdorffDegrees-class.html#distance\" class=\"summary-sig-name\">distance</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">point1</span>,\n        <span class=\"summary-sig-arg\">point2</span>)</span><br />\n      <i>Must be overloaded</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html\">Hausdorff</a></code></b>:\n      <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html#point\">point</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html\">Hausdorff</a></code></b>:\n      <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html#adjust\">adjust</a></code>,\n      <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html#datum\">datum</a></code>,\n      <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html#kwds\">kwds</a></code>,\n      <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html#seed\">seed</a></code>,\n      <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html#units\">units</a></code>,\n      <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html#wrap\">wrap</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">point1s</span>,\n        <span class=\"sig-arg\">seed</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">units</span>=<span class=\"sig-default\">''</span>,\n        <span class=\"sig-arg\">**name__kwds</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <code>Hausdorff...</code> calculator.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>point1s</code></strong> - Initial set of points, aka the <code>model</code> or \n          <code>template</code> (<code>LatLon</code>[], \n          <code>Numpy2LatLon</code>[], <code>Tuple2LatLon</code>[] or \n          <code>other</code>[]).</li>\n        <li><strong class=\"pname\"><code>seed</code></strong> - Random sampling seed (<code>any</code>) or <code>None</code>, \n          <code>0</code> or <code>False</code> for no <a \n          href=\"https://Publik.TUWien.ac.AT/files/PubDat_247739.pdf\" \n          target=\"_top\">random sampling</a>.</li>\n        <li><strong class=\"pname\"><code>units</code></strong> - Optional, the distance units (<code>Unit</code> or \n          <code>str</code>).</li>\n        <li><strong class=\"pname\"><code>name__kwds</code></strong> - Optional calculator/interpolator <code><b>name</b>=NN</code> \n          (<code>str</code>) and keyword arguments for the distance \n          function, retrievable with property <code>kwds</code>.</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.hausdorff.HausdorffError-class.html\">HausdorffError</a></strong></code> - Insufficient number of <b><code>point1s</code></b> or an invalid \n        <b><code>point1</code></b>, <b><code>seed</code></b> or \n        <b><code>units</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"directed\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">directed</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">point2s</span>,\n        <span class=\"sig-arg\">early</span>=<span class=\"sig-default\">True</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute only the <code>forward Hausdorff</code> distance.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>point2s</code></strong> - Second set of points, aka the <code>target</code> \n          (<code>LatLon</code>[], <code>Numpy2LatLon</code>[], \n          <code>Tuple2LatLon</code>[] or <code>other</code>[]).</li>\n        <li><strong class=\"pname\"><code>early</code></strong> - Enable or disable <a \n          href=\"https://Publik.TUWien.ac.AT/files/PubDat_247739.pdf\" \n          target=\"_top\">early breaking</a> (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.hausdorff.Hausdorff6Tuple-class.html\" \n          class=\"link\">Hausdorff6Tuple</a><code>(hd, i, j, mn, md, \n          units)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.hausdorff.HausdorffError-class.html\">HausdorffError</a></strong></code> - Insufficient number of <b><code>point2s</code></b> or an invalid \n        <b><code>point2</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.hausdorff.Hausdorff-class.html#directed\">Hausdorff.directed</a>\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        See <b><code>point2s</code></b> note at <a \n        href=\"pygeodesy.hausdorff.HausdorffDistanceTo-class.html\" \n        class=\"link\">HausdorffDistanceTo</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"symmetric\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">symmetric</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">point2s</span>,\n        <span class=\"sig-arg\">early</span>=<span class=\"sig-default\">True</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the combined <code>forward and reverse Hausdorff</code> \n  distance.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>point2s</code></strong> - Second set of points, aka the <code>target</code> \n          (<code>LatLon</code>[], <code>Numpy2LatLon</code>[], \n          <code>Tuple2LatLon</code>[] or <code>other</code>[]).</li>\n        <li><strong class=\"pname\"><code>early</code></strong> - Enable or disable <a \n          href=\"https://Publik.TUWien.ac.AT/files/PubDat_247739.pdf\" \n          target=\"_top\">early breaking</a> (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.hausdorff.Hausdorff6Tuple-class.html\" \n          class=\"link\">Hausdorff6Tuple</a><code>(hd, i, j, mn, md, \n          units)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.hausdorff.HausdorffError-class.html\">HausdorffError</a></strong></code> - Insufficient number of <b><code>point2s</code></b> or an invalid \n        <b><code>point2</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.hausdorff.Hausdorff-class.html#symmetric\">Hausdorff.symmetric</a>\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        See <b><code>point2s</code></b> note at <a \n        href=\"pygeodesy.hausdorff.HausdorffDistanceTo-class.html\" \n        class=\"link\">HausdorffDistanceTo</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"distance\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">distance</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">point1</span>,\n        <span class=\"sig-arg\">point2</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p><i>Must be overloaded</i>.</p>\n  <dl class=\"fields\">\n    <dt>Overrides:\n        <a href=\"pygeodesy.hausdorff.Hausdorff-class.html#distance\">Hausdorff.distance</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.hausdorff.HausdorffDistanceTo-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.hausdorff.HausdorffDistanceTo</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.hausdorff-module.html\">Module&nbsp;hausdorff</a> ::\n        Class&nbsp;HausdorffDistanceTo\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.hausdorff.HausdorffDistanceTo-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class HausdorffDistanceTo</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+        \n           |        \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n               |    \n       <a href=\"pygeodesy.hausdorff.Hausdorff-class.html\">Hausdorff</a> --+\n                   |\n                  <strong class=\"uidshort\">HausdorffDistanceTo</strong>\n</pre>\n\n<hr />\n<p>Compute the <code>Hausdorff</code> distance the points' \n  <code>LatLon.distanceTo</code> method.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.hausdorff.HausdorffDistanceTo-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">point1s</span>,\n        <span class=\"summary-sig-arg\">**seed_name__distanceTo_kwds</span>)</span><br />\n      New <a href=\"pygeodesy.hausdorff.HausdorffDistanceTo-class.html\" \n      class=\"link\">HausdorffDistanceTo</a> calculator.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.hausdorff.HausdorffDistanceTo-class.html#directed\" class=\"summary-sig-name\">directed</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">point2s</span>,\n        <span class=\"summary-sig-arg\">early</span>=<span class=\"summary-sig-default\">True</span>)</span><br />\n      Compute only the <code>forward Hausdorff</code> distance.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.hausdorff.HausdorffDistanceTo-class.html#symmetric\" class=\"summary-sig-name\">symmetric</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">point2s</span>,\n        <span class=\"summary-sig-arg\">early</span>=<span class=\"summary-sig-default\">True</span>)</span><br />\n      Compute the combined <code>forward and reverse Hausdorff</code> \n      distance.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.hausdorff.HausdorffDistanceTo-class.html#distance\" class=\"summary-sig-name\">distance</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">p1</span>,\n        <span class=\"summary-sig-arg\">p2</span>)</span><br />\n      Return the distance in <code>meter</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html\">Hausdorff</a></code></b>:\n      <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html#point\">point</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html\">Hausdorff</a></code></b>:\n      <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html#adjust\">adjust</a></code>,\n      <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html#datum\">datum</a></code>,\n      <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html#kwds\">kwds</a></code>,\n      <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html#seed\">seed</a></code>,\n      <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html#units\">units</a></code>,\n      <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html#wrap\">wrap</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">point1s</span>,\n        <span class=\"sig-arg\">**seed_name__distanceTo_kwds</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.hausdorff.HausdorffDistanceTo-class.html\" \n  class=\"link\">HausdorffDistanceTo</a> calculator.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>seed_name__distanceTo_kwds</code></strong> - Optional <code><b>seed</b>=None</code> and \n          <code><b>name</b>=NN</code> and keyword arguments for each \n          <b><code>point1s</code></b>' <code>LatLon.distanceTo</code> \n          method.</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.hausdorff.HausdorffError-class.html\">HausdorffError</a></strong></code> - Insufficient number of <b><code>point1s</code></b> or an invalid \n        <b><code>point1</code></b>, <b><code>seed</code></b> or \n        <b><code>units</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"pygeodesy.hausdorff.Hausdorff-class.html#__init__\" \n        class=\"link\">Hausdorff.__init__</a> for details about \n        <b><code>point1s</code></b>, <b><code>seed</code></b>, \n        <b><code>name</code></b> and other exceptions.\n      </p>\n      <p><strong>Note:</strong>\n        All <code>model</code>, <code>template</code> and \n        <code>target</code> <b><code>points</code></b> <i>must</i> be \n        instances of the same ellipsoidal or spherical <code>LatLon</code> \n        class.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"directed\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">directed</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">point2s</span>,\n        <span class=\"sig-arg\">early</span>=<span class=\"sig-default\">True</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute only the <code>forward Hausdorff</code> distance.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>point2s</code></strong> - Second set of points, aka the <code>target</code> \n          (<code>LatLon</code>[], <code>Numpy2LatLon</code>[], \n          <code>Tuple2LatLon</code>[] or <code>other</code>[]).</li>\n        <li><strong class=\"pname\"><code>early</code></strong> - Enable or disable <a \n          href=\"https://Publik.TUWien.ac.AT/files/PubDat_247739.pdf\" \n          target=\"_top\">early breaking</a> (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.hausdorff.Hausdorff6Tuple-class.html\" \n          class=\"link\">Hausdorff6Tuple</a><code>(hd, i, j, mn, md, \n          units)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.hausdorff.HausdorffError-class.html\">HausdorffError</a></strong></code> - Insufficient number of <b><code>point2s</code></b> or an invalid \n        <b><code>point2</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.hausdorff.Hausdorff-class.html#directed\">Hausdorff.directed</a>\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        See <b><code>point2s</code></b> note at <a \n        href=\"pygeodesy.hausdorff.HausdorffDistanceTo-class.html\" \n        class=\"link\">HausdorffDistanceTo</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"symmetric\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">symmetric</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">point2s</span>,\n        <span class=\"sig-arg\">early</span>=<span class=\"sig-default\">True</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the combined <code>forward and reverse Hausdorff</code> \n  distance.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>point2s</code></strong> - Second set of points, aka the <code>target</code> \n          (<code>LatLon</code>[], <code>Numpy2LatLon</code>[], \n          <code>Tuple2LatLon</code>[] or <code>other</code>[]).</li>\n        <li><strong class=\"pname\"><code>early</code></strong> - Enable or disable <a \n          href=\"https://Publik.TUWien.ac.AT/files/PubDat_247739.pdf\" \n          target=\"_top\">early breaking</a> (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.hausdorff.Hausdorff6Tuple-class.html\" \n          class=\"link\">Hausdorff6Tuple</a><code>(hd, i, j, mn, md, \n          units)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.hausdorff.HausdorffError-class.html\">HausdorffError</a></strong></code> - Insufficient number of <b><code>point2s</code></b> or an invalid \n        <b><code>point2</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.hausdorff.Hausdorff-class.html#symmetric\">Hausdorff.symmetric</a>\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        See <b><code>point2s</code></b> note at <a \n        href=\"pygeodesy.hausdorff.HausdorffDistanceTo-class.html\" \n        class=\"link\">HausdorffDistanceTo</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"distance\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">distance</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">p1</span>,\n        <span class=\"sig-arg\">p2</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the distance in <code>meter</code>.</p>\n  <dl class=\"fields\">\n    <dt>Overrides:\n        <a href=\"pygeodesy.hausdorff.Hausdorff-class.html#distance\">Hausdorff.distance</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.hausdorff.HausdorffEquirectangular-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.hausdorff.HausdorffEquirectangular</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.hausdorff-module.html\">Module&nbsp;hausdorff</a> ::\n        Class&nbsp;HausdorffEquirectangular\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.hausdorff.HausdorffEquirectangular-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class HausdorffEquirectangular</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+        \n           |        \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n               |    \n       <a href=\"pygeodesy.hausdorff.Hausdorff-class.html\">Hausdorff</a> --+\n                   |\n                  <strong class=\"uidshort\">HausdorffEquirectangular</strong>\n</pre>\n\n<hr />\n<p>Compute the <code>Hausdorff</code> distance with function <a \n  href=\"pygeodesy.formy-module.html#equirectangular\" \n  class=\"link\">pygeodesy.equirectangular</a>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.hausdorff.HausdorffEquirectangular-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">point1s</span>,\n        <span class=\"summary-sig-arg\">**seed_name__adjust_limit_wrap</span>)</span><br />\n      New <a href=\"pygeodesy.hausdorff.HausdorffEquirectangular-class.html\"\n      class=\"link\">HausdorffEquirectangular</a> calculator.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.hausdorff.HausdorffEquirectangular-class.html#directed\" class=\"summary-sig-name\">directed</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">point2s</span>,\n        <span class=\"summary-sig-arg\">early</span>=<span class=\"summary-sig-default\">True</span>)</span><br />\n      Compute only the <code>forward Hausdorff</code> distance.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.hausdorff.HausdorffEquirectangular-class.html#symmetric\" class=\"summary-sig-name\">symmetric</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">point2s</span>,\n        <span class=\"summary-sig-arg\">early</span>=<span class=\"summary-sig-default\">True</span>)</span><br />\n      Compute the combined <code>forward and reverse Hausdorff</code> \n      distance.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html\">Hausdorff</a></code></b>:\n      <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html#distance\">distance</a></code>,\n      <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html#point\">point</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html\">Hausdorff</a></code></b>:\n      <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html#adjust\">adjust</a></code>,\n      <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html#datum\">datum</a></code>,\n      <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html#kwds\">kwds</a></code>,\n      <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html#seed\">seed</a></code>,\n      <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html#units\">units</a></code>,\n      <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html#wrap\">wrap</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">point1s</span>,\n        <span class=\"sig-arg\">**seed_name__adjust_limit_wrap</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.hausdorff.HausdorffEquirectangular-class.html\" \n  class=\"link\">HausdorffEquirectangular</a> calculator.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>seed_name__adjust_limit_wrap</code></strong> - Optional <code><b>seed</b>=None</code> and \n          <code><b>name</b>=NN</code> and keyword arguments for function <a\n          href=\"pygeodesy.formy-module.html#equirectangular\" \n          class=\"link\">pygeodesy.equirectangular</a> <i>with default</i> \n          <code><b>limit</b>=0</code> for <i>backward compatibility</i>.</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.hausdorff.HausdorffError-class.html\">HausdorffError</a></strong></code> - Insufficient number of <b><code>point1s</code></b> or an invalid \n        <b><code>point1</code></b>, <b><code>seed</code></b> or \n        <b><code>units</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"pygeodesy.hausdorff.Hausdorff-class.html#__init__\" \n        class=\"link\">Hausdorff.__init__</a> for details about \n        <b><code>point1s</code></b>, <b><code>seed</code></b>, \n        <b><code>name</code></b> and other exceptions.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"directed\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">directed</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">point2s</span>,\n        <span class=\"sig-arg\">early</span>=<span class=\"sig-default\">True</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute only the <code>forward Hausdorff</code> distance.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>point2s</code></strong> - Second set of points, aka the <code>target</code> \n          (<code>LatLon</code>[], <code>Numpy2LatLon</code>[], \n          <code>Tuple2LatLon</code>[] or <code>other</code>[]).</li>\n        <li><strong class=\"pname\"><code>early</code></strong> - Enable or disable <a \n          href=\"https://Publik.TUWien.ac.AT/files/PubDat_247739.pdf\" \n          target=\"_top\">early breaking</a> (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.hausdorff.Hausdorff6Tuple-class.html\" \n          class=\"link\">Hausdorff6Tuple</a><code>(hd, i, j, mn, md, \n          units)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.hausdorff.HausdorffError-class.html\">HausdorffError</a></strong></code> - Insufficient number of <b><code>point2s</code></b> or an invalid \n        <b><code>point2</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.hausdorff.Hausdorff-class.html#directed\">Hausdorff.directed</a>\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        See <b><code>point2s</code></b> note at <a \n        href=\"pygeodesy.hausdorff.HausdorffDistanceTo-class.html\" \n        class=\"link\">HausdorffDistanceTo</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"symmetric\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">symmetric</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">point2s</span>,\n        <span class=\"sig-arg\">early</span>=<span class=\"sig-default\">True</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the combined <code>forward and reverse Hausdorff</code> \n  distance.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>point2s</code></strong> - Second set of points, aka the <code>target</code> \n          (<code>LatLon</code>[], <code>Numpy2LatLon</code>[], \n          <code>Tuple2LatLon</code>[] or <code>other</code>[]).</li>\n        <li><strong class=\"pname\"><code>early</code></strong> - Enable or disable <a \n          href=\"https://Publik.TUWien.ac.AT/files/PubDat_247739.pdf\" \n          target=\"_top\">early breaking</a> (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.hausdorff.Hausdorff6Tuple-class.html\" \n          class=\"link\">Hausdorff6Tuple</a><code>(hd, i, j, mn, md, \n          units)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.hausdorff.HausdorffError-class.html\">HausdorffError</a></strong></code> - Insufficient number of <b><code>point2s</code></b> or an invalid \n        <b><code>point2</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.hausdorff.Hausdorff-class.html#symmetric\">Hausdorff.symmetric</a>\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        See <b><code>point2s</code></b> note at <a \n        href=\"pygeodesy.hausdorff.HausdorffDistanceTo-class.html\" \n        class=\"link\">HausdorffDistanceTo</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.hausdorff.HausdorffError-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.hausdorff.HausdorffError</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.hausdorff-module.html\">Module&nbsp;hausdorff</a> ::\n        Class&nbsp;HausdorffError\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.hausdorff.HausdorffError-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class HausdorffError</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n              object --+                        \n                       |                        \nexceptions.BaseException --+                    \n                           |                    \n        exceptions.Exception --+                \n                               |                \n        exceptions.StandardError --+            \n                                   |            \n               exceptions.ValueError --+        \n                                       |        \n                      errors._ValueError --+    \n                                           |    \n                          <a href=\"pygeodesy.errors.PointsError-class.html\">errors.PointsError</a> --+\n                                               |\n                                              <strong class=\"uidshort\">HausdorffError</strong>\n</pre>\n\n<hr />\n<p>Hausdorff issue.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>errors._ValueError</code></b>:\n      <code>__init__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.ValueError</code></b>:\n      <code>__new__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.BaseException</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getslice__</code>,\n      <code>__reduce__</code>,\n      <code>__repr__</code>,\n      <code>__setattr__</code>,\n      <code>__setstate__</code>,\n      <code>__str__</code>,\n      <code>__unicode__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__format__</code>,\n      <code>__hash__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.BaseException</code></b>:\n      <code>args</code>,\n      <code>message</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.hausdorff.HausdorffEuclidean-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.hausdorff.HausdorffEuclidean</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.hausdorff-module.html\">Module&nbsp;hausdorff</a> ::\n        Class&nbsp;HausdorffEuclidean\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.hausdorff.HausdorffEuclidean-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class HausdorffEuclidean</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n    object --+            \n             |            \n  <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+        \n                 |        \n         <a href=\"pygeodesy.hausdorff.Hausdorff-class.html\">Hausdorff</a> --+    \n                     |    \n_HausdorffMeterRadians --+\n                         |\n                        <strong class=\"uidshort\">HausdorffEuclidean</strong>\n</pre>\n\n<hr />\n<p>Compute the <code>Hausdorff</code> distance with function <a \n  href=\"pygeodesy.geohash-module.html#euclidean_\" \n  class=\"link\">pygeodesy.euclidean_</a>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.hausdorff.HausdorffEuclidean-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">point1s</span>,\n        <span class=\"summary-sig-arg\">**seed_name__adjust_radius_wrap</span>)</span><br />\n      New <a href=\"pygeodesy.hausdorff.HausdorffEuclidean-class.html\" \n      class=\"link\">HausdorffEuclidean</a> calculator.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.hausdorff.HausdorffEuclidean-class.html#directed\" class=\"summary-sig-name\">directed</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">point2s</span>,\n        <span class=\"summary-sig-arg\">early</span>=<span class=\"summary-sig-default\">True</span>)</span><br />\n      Compute only the <code>forward Hausdorff</code> distance.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.hausdorff.HausdorffEuclidean-class.html#symmetric\" class=\"summary-sig-name\">symmetric</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">point2s</span>,\n        <span class=\"summary-sig-arg\">early</span>=<span class=\"summary-sig-default\">True</span>)</span><br />\n      Compute the combined <code>forward and reverse Hausdorff</code> \n      distance.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html\">Hausdorff</a></code></b>:\n      <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html#distance\">distance</a></code>,\n      <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html#point\">point</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html\">Hausdorff</a></code></b>:\n      <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html#adjust\">adjust</a></code>,\n      <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html#datum\">datum</a></code>,\n      <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html#kwds\">kwds</a></code>,\n      <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html#seed\">seed</a></code>,\n      <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html#units\">units</a></code>,\n      <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html#wrap\">wrap</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">point1s</span>,\n        <span class=\"sig-arg\">**seed_name__adjust_radius_wrap</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.hausdorff.HausdorffEuclidean-class.html\" \n  class=\"link\">HausdorffEuclidean</a> calculator.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>seed_name__adjust_radius_wrap</code></strong> - Optional <code><b>seed</b>=None</code> and \n          <code><b>name</b>=NN</code> and keyword arguments for function <a\n          href=\"pygeodesy.formy-module.html#euclidean\" \n          class=\"link\">pygeodesy.euclidean</a>.</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.hausdorff.HausdorffError-class.html\">HausdorffError</a></strong></code> - Insufficient number of <b><code>point1s</code></b> or an invalid \n        <b><code>point1</code></b>, <b><code>seed</code></b> or \n        <b><code>units</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"pygeodesy.hausdorff.Hausdorff-class.html#__init__\" \n        class=\"link\">Hausdorff.__init__</a> for details about \n        <b><code>point1s</code></b>, <b><code>seed</code></b>, \n        <b><code>name</code></b> and other exceptions.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"directed\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">directed</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">point2s</span>,\n        <span class=\"sig-arg\">early</span>=<span class=\"sig-default\">True</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute only the <code>forward Hausdorff</code> distance.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>point2s</code></strong> - Second set of points, aka the <code>target</code> \n          (<code>LatLon</code>[], <code>Numpy2LatLon</code>[], \n          <code>Tuple2LatLon</code>[] or <code>other</code>[]).</li>\n        <li><strong class=\"pname\"><code>early</code></strong> - Enable or disable <a \n          href=\"https://Publik.TUWien.ac.AT/files/PubDat_247739.pdf\" \n          target=\"_top\">early breaking</a> (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.hausdorff.Hausdorff6Tuple-class.html\" \n          class=\"link\">Hausdorff6Tuple</a><code>(hd, i, j, mn, md, \n          units)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.hausdorff.HausdorffError-class.html\">HausdorffError</a></strong></code> - Insufficient number of <b><code>point2s</code></b> or an invalid \n        <b><code>point2</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.hausdorff.Hausdorff-class.html#directed\">Hausdorff.directed</a>\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        See <b><code>point2s</code></b> note at <a \n        href=\"pygeodesy.hausdorff.HausdorffDistanceTo-class.html\" \n        class=\"link\">HausdorffDistanceTo</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"symmetric\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">symmetric</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">point2s</span>,\n        <span class=\"sig-arg\">early</span>=<span class=\"sig-default\">True</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the combined <code>forward and reverse Hausdorff</code> \n  distance.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>point2s</code></strong> - Second set of points, aka the <code>target</code> \n          (<code>LatLon</code>[], <code>Numpy2LatLon</code>[], \n          <code>Tuple2LatLon</code>[] or <code>other</code>[]).</li>\n        <li><strong class=\"pname\"><code>early</code></strong> - Enable or disable <a \n          href=\"https://Publik.TUWien.ac.AT/files/PubDat_247739.pdf\" \n          target=\"_top\">early breaking</a> (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.hausdorff.Hausdorff6Tuple-class.html\" \n          class=\"link\">Hausdorff6Tuple</a><code>(hd, i, j, mn, md, \n          units)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.hausdorff.HausdorffError-class.html\">HausdorffError</a></strong></code> - Insufficient number of <b><code>point2s</code></b> or an invalid \n        <b><code>point2</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.hausdorff.Hausdorff-class.html#symmetric\">Hausdorff.symmetric</a>\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        See <b><code>point2s</code></b> note at <a \n        href=\"pygeodesy.hausdorff.HausdorffDistanceTo-class.html\" \n        class=\"link\">HausdorffDistanceTo</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.hausdorff.HausdorffExact-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.hausdorff.HausdorffExact</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.hausdorff-module.html\">Module&nbsp;hausdorff</a> ::\n        Class&nbsp;HausdorffExact\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.hausdorff.HausdorffExact-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class HausdorffExact</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+        \n           |        \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n               |    \n       <a href=\"pygeodesy.hausdorff.Hausdorff-class.html\">Hausdorff</a> --+\n                   |\n                  <strong class=\"uidshort\">HausdorffExact</strong>\n</pre>\n\n<hr />\n<p>Compute the <code>Hausdorff</code> distance with method <a \n  href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html\" \n  class=\"link\">GeodesicExact</a><code>.Inverse</code>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.hausdorff.HausdorffExact-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">point1s</span>,\n        <span class=\"summary-sig-arg\">datum</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**seed_name__wrap</span>)</span><br />\n      New <a href=\"pygeodesy.hausdorff.HausdorffKarney-class.html\" \n      class=\"link\">HausdorffKarney</a> calculator.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.hausdorff.HausdorffExact-class.html#directed\" class=\"summary-sig-name\">directed</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">point2s</span>,\n        <span class=\"summary-sig-arg\">early</span>=<span class=\"summary-sig-default\">True</span>)</span><br />\n      Compute only the <code>forward Hausdorff</code> distance.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.hausdorff.HausdorffExact-class.html#symmetric\" class=\"summary-sig-name\">symmetric</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">point2s</span>,\n        <span class=\"summary-sig-arg\">early</span>=<span class=\"summary-sig-default\">True</span>)</span><br />\n      Compute the combined <code>forward and reverse Hausdorff</code> \n      distance.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html\">Hausdorff</a></code></b>:\n      <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html#distance\">distance</a></code>,\n      <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html#point\">point</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html\">Hausdorff</a></code></b>:\n      <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html#adjust\">adjust</a></code>,\n      <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html#datum\">datum</a></code>,\n      <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html#kwds\">kwds</a></code>,\n      <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html#seed\">seed</a></code>,\n      <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html#units\">units</a></code>,\n      <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html#wrap\">wrap</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">point1s</span>,\n        <span class=\"sig-arg\">datum</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**seed_name__wrap</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.hausdorff.HausdorffKarney-class.html\" \n  class=\"link\">HausdorffKarney</a> calculator.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>datum</code></strong> - Datum to override the default <code>Datums.WGS84</code> and first\n          <b><code>point1s</code></b>' datum (<a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>, \n          <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a> or <a \n          href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>seed_name__wrap</code></strong> - Optional <code><b>seed</b>=None</code> and \n          <code><b>name</b>=NN</code> and keyword argument for method \n          <code>Inverse1</code> of class <a \n          href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html\" \n          class=\"link\">geodesicx.GeodesicExact</a>.</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>datum</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"pygeodesy.hausdorff.Hausdorff-class.html#__init__\" \n        class=\"link\">Hausdorff.__init__</a> for details about \n        <b><code>point1s</code></b>, <b><code>seed</code></b>, \n        <b><code>name</code></b> and other exceptions.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"directed\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">directed</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">point2s</span>,\n        <span class=\"sig-arg\">early</span>=<span class=\"sig-default\">True</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute only the <code>forward Hausdorff</code> distance.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>point2s</code></strong> - Second set of points, aka the <code>target</code> \n          (<code>LatLon</code>[], <code>Numpy2LatLon</code>[], \n          <code>Tuple2LatLon</code>[] or <code>other</code>[]).</li>\n        <li><strong class=\"pname\"><code>early</code></strong> - Enable or disable <a \n          href=\"https://Publik.TUWien.ac.AT/files/PubDat_247739.pdf\" \n          target=\"_top\">early breaking</a> (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.hausdorff.Hausdorff6Tuple-class.html\" \n          class=\"link\">Hausdorff6Tuple</a><code>(hd, i, j, mn, md, \n          units)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.hausdorff.HausdorffError-class.html\">HausdorffError</a></strong></code> - Insufficient number of <b><code>point2s</code></b> or an invalid \n        <b><code>point2</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.hausdorff.Hausdorff-class.html#directed\">Hausdorff.directed</a>\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        See <b><code>point2s</code></b> note at <a \n        href=\"pygeodesy.hausdorff.HausdorffDistanceTo-class.html\" \n        class=\"link\">HausdorffDistanceTo</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"symmetric\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">symmetric</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">point2s</span>,\n        <span class=\"sig-arg\">early</span>=<span class=\"sig-default\">True</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the combined <code>forward and reverse Hausdorff</code> \n  distance.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>point2s</code></strong> - Second set of points, aka the <code>target</code> \n          (<code>LatLon</code>[], <code>Numpy2LatLon</code>[], \n          <code>Tuple2LatLon</code>[] or <code>other</code>[]).</li>\n        <li><strong class=\"pname\"><code>early</code></strong> - Enable or disable <a \n          href=\"https://Publik.TUWien.ac.AT/files/PubDat_247739.pdf\" \n          target=\"_top\">early breaking</a> (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.hausdorff.Hausdorff6Tuple-class.html\" \n          class=\"link\">Hausdorff6Tuple</a><code>(hd, i, j, mn, md, \n          units)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.hausdorff.HausdorffError-class.html\">HausdorffError</a></strong></code> - Insufficient number of <b><code>point2s</code></b> or an invalid \n        <b><code>point2</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.hausdorff.Hausdorff-class.html#symmetric\">Hausdorff.symmetric</a>\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        See <b><code>point2s</code></b> note at <a \n        href=\"pygeodesy.hausdorff.HausdorffDistanceTo-class.html\" \n        class=\"link\">HausdorffDistanceTo</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.hausdorff.HausdorffFlatLocal-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.hausdorff.HausdorffFlatLocal</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.hausdorff-module.html\">Module&nbsp;hausdorff</a> ::\n        Class&nbsp;HausdorffFlatLocal\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.hausdorff.HausdorffFlatLocal-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class HausdorffFlatLocal</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n    object --+            \n             |            \n  <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+        \n                 |        \n         <a href=\"pygeodesy.hausdorff.Hausdorff-class.html\">Hausdorff</a> --+    \n                     |    \n_HausdorffMeterRadians --+\n                         |\n                        <strong class=\"uidshort\">HausdorffFlatLocal</strong>\n</pre>\n\n<dl><dt>Known Subclasses:</dt>\n<dd>\n      <ul class=\"subclass-list\">\n<li><a href=\"pygeodesy.hausdorff.HausdorffHubeny-class.html\">HausdorffHubeny</a></li>  </ul>\n</dd></dl>\n\n<hr />\n<p>Compute the <code>Hausdorff</code> distance with function <a \n  href=\"pygeodesy.formy-module.html#flatLocal_\" \n  class=\"link\">pygeodesy.flatLocal_</a>/<a \n  href=\"pygeodesy.formy-module.html#flatLocal_\" \n  class=\"link\">pygeodesy.hubeny_</a>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.hausdorff.HausdorffFlatLocal-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">point1s</span>,\n        <span class=\"summary-sig-arg\">**seed_name__datum_scaled_wrap</span>)</span><br />\n      New <a href=\"pygeodesy.hausdorff.HausdorffFlatLocal-class.html\" \n      class=\"link\">HausdorffFlatLocal</a>/<a \n      href=\"pygeodesy.hausdorff.HausdorffHubeny-class.html\" \n      class=\"link\">HausdorffHubeny</a> calculator.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.hausdorff.HausdorffFlatLocal-class.html#directed\" class=\"summary-sig-name\">directed</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">point2s</span>,\n        <span class=\"summary-sig-arg\">early</span>=<span class=\"summary-sig-default\">True</span>)</span><br />\n      Compute only the <code>forward Hausdorff</code> distance.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.hausdorff.HausdorffFlatLocal-class.html#symmetric\" class=\"summary-sig-name\">symmetric</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">point2s</span>,\n        <span class=\"summary-sig-arg\">early</span>=<span class=\"summary-sig-default\">True</span>)</span><br />\n      Compute the combined <code>forward and reverse Hausdorff</code> \n      distance.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html\">Hausdorff</a></code></b>:\n      <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html#distance\">distance</a></code>,\n      <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html#point\">point</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html\">Hausdorff</a></code></b>:\n      <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html#adjust\">adjust</a></code>,\n      <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html#datum\">datum</a></code>,\n      <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html#kwds\">kwds</a></code>,\n      <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html#seed\">seed</a></code>,\n      <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html#units\">units</a></code>,\n      <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html#wrap\">wrap</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">point1s</span>,\n        <span class=\"sig-arg\">**seed_name__datum_scaled_wrap</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.hausdorff.HausdorffFlatLocal-class.html\" \n  class=\"link\">HausdorffFlatLocal</a>/<a \n  href=\"pygeodesy.hausdorff.HausdorffHubeny-class.html\" \n  class=\"link\">HausdorffHubeny</a> calculator.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>seed_name__datum_scaled_wrap</code></strong> - Optional <code><b>seed</b>=None</code> and \n          <code><b>name</b>=NN</code> and keyword arguments for function <a\n          href=\"pygeodesy.formy-module.html#flatLocal\" \n          class=\"link\">pygeodesy.flatLocal</a>.</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.hausdorff.HausdorffError-class.html\">HausdorffError</a></strong></code> - Insufficient number of <b><code>point1s</code></b> or an invalid \n        <b><code>point1</code></b>, <b><code>seed</code></b> or \n        <b><code>units</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"pygeodesy.hausdorff.Hausdorff-class.html#__init__\" \n        class=\"link\">Hausdorff.__init__</a> for details about \n        <b><code>point1s</code></b>, <b><code>seed</code></b>, \n        <b><code>name</code></b> and other exceptions.\n      </p>\n      <p><strong>Note:</strong>\n        The distance <code>units</code> are <code>radians squared</code>, \n        not <code>radians</code>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"directed\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">directed</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">point2s</span>,\n        <span class=\"sig-arg\">early</span>=<span class=\"sig-default\">True</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute only the <code>forward Hausdorff</code> distance.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>point2s</code></strong> - Second set of points, aka the <code>target</code> \n          (<code>LatLon</code>[], <code>Numpy2LatLon</code>[], \n          <code>Tuple2LatLon</code>[] or <code>other</code>[]).</li>\n        <li><strong class=\"pname\"><code>early</code></strong> - Enable or disable <a \n          href=\"https://Publik.TUWien.ac.AT/files/PubDat_247739.pdf\" \n          target=\"_top\">early breaking</a> (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.hausdorff.Hausdorff6Tuple-class.html\" \n          class=\"link\">Hausdorff6Tuple</a><code>(hd, i, j, mn, md, \n          units)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.hausdorff.HausdorffError-class.html\">HausdorffError</a></strong></code> - Insufficient number of <b><code>point2s</code></b> or an invalid \n        <b><code>point2</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.hausdorff.Hausdorff-class.html#directed\">Hausdorff.directed</a>\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        See <b><code>point2s</code></b> note at <a \n        href=\"pygeodesy.hausdorff.HausdorffDistanceTo-class.html\" \n        class=\"link\">HausdorffDistanceTo</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"symmetric\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">symmetric</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">point2s</span>,\n        <span class=\"sig-arg\">early</span>=<span class=\"sig-default\">True</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the combined <code>forward and reverse Hausdorff</code> \n  distance.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>point2s</code></strong> - Second set of points, aka the <code>target</code> \n          (<code>LatLon</code>[], <code>Numpy2LatLon</code>[], \n          <code>Tuple2LatLon</code>[] or <code>other</code>[]).</li>\n        <li><strong class=\"pname\"><code>early</code></strong> - Enable or disable <a \n          href=\"https://Publik.TUWien.ac.AT/files/PubDat_247739.pdf\" \n          target=\"_top\">early breaking</a> (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.hausdorff.Hausdorff6Tuple-class.html\" \n          class=\"link\">Hausdorff6Tuple</a><code>(hd, i, j, mn, md, \n          units)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.hausdorff.HausdorffError-class.html\">HausdorffError</a></strong></code> - Insufficient number of <b><code>point2s</code></b> or an invalid \n        <b><code>point2</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.hausdorff.Hausdorff-class.html#symmetric\">Hausdorff.symmetric</a>\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        See <b><code>point2s</code></b> note at <a \n        href=\"pygeodesy.hausdorff.HausdorffDistanceTo-class.html\" \n        class=\"link\">HausdorffDistanceTo</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.hausdorff.HausdorffFlatPolar-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.hausdorff.HausdorffFlatPolar</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.hausdorff-module.html\">Module&nbsp;hausdorff</a> ::\n        Class&nbsp;HausdorffFlatPolar\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.hausdorff.HausdorffFlatPolar-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class HausdorffFlatPolar</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n    object --+            \n             |            \n  <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+        \n                 |        \n         <a href=\"pygeodesy.hausdorff.Hausdorff-class.html\">Hausdorff</a> --+    \n                     |    \n_HausdorffMeterRadians --+\n                         |\n                        <strong class=\"uidshort\">HausdorffFlatPolar</strong>\n</pre>\n\n<hr />\n<p>Compute the <code>Hausdorff</code> distance with function <a \n  href=\"pygeodesy.formy-module.html#flatPolar_\" \n  class=\"link\">pygeodesy.flatPolar_</a>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.hausdorff.HausdorffFlatPolar-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">**seed_name__radius_wrap</span>)</span><br />\n      New <a href=\"pygeodesy.hausdorff.HausdorffFlatPolar-class.html\" \n      class=\"link\">HausdorffFlatPolar</a> calculator.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.hausdorff.HausdorffFlatPolar-class.html#directed\" class=\"summary-sig-name\">directed</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">point2s</span>,\n        <span class=\"summary-sig-arg\">early</span>=<span class=\"summary-sig-default\">True</span>)</span><br />\n      Compute only the <code>forward Hausdorff</code> distance.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.hausdorff.HausdorffFlatPolar-class.html#symmetric\" class=\"summary-sig-name\">symmetric</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">point2s</span>,\n        <span class=\"summary-sig-arg\">early</span>=<span class=\"summary-sig-default\">True</span>)</span><br />\n      Compute the combined <code>forward and reverse Hausdorff</code> \n      distance.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html\">Hausdorff</a></code></b>:\n      <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html#distance\">distance</a></code>,\n      <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html#point\">point</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html\">Hausdorff</a></code></b>:\n      <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html#adjust\">adjust</a></code>,\n      <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html#datum\">datum</a></code>,\n      <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html#kwds\">kwds</a></code>,\n      <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html#seed\">seed</a></code>,\n      <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html#units\">units</a></code>,\n      <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html#wrap\">wrap</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">**seed_name__radius_wrap</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.hausdorff.HausdorffFlatPolar-class.html\" \n  class=\"link\">HausdorffFlatPolar</a> calculator.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>seed_name__radius_wrap</code></strong> - Optional <code><b>seed</b>=None</code> and \n          <code><b>name</b>=NN</code> and keyword arguments for function <a\n          href=\"pygeodesy.formy-module.html#flatPolar\" \n          class=\"link\">pygeodesy.flatPolar</a>.</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.hausdorff.HausdorffError-class.html\">HausdorffError</a></strong></code> - Insufficient number of <b><code>point1s</code></b> or an invalid \n        <b><code>point1</code></b>, <b><code>seed</code></b> or \n        <b><code>units</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"pygeodesy.hausdorff.Hausdorff-class.html#__init__\" \n        class=\"link\">Hausdorff.__init__</a> for details about \n        <b><code>point1s</code></b>, <b><code>seed</code></b>, \n        <b><code>name</code></b> and other exceptions.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"directed\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">directed</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">point2s</span>,\n        <span class=\"sig-arg\">early</span>=<span class=\"sig-default\">True</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute only the <code>forward Hausdorff</code> distance.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>point2s</code></strong> - Second set of points, aka the <code>target</code> \n          (<code>LatLon</code>[], <code>Numpy2LatLon</code>[], \n          <code>Tuple2LatLon</code>[] or <code>other</code>[]).</li>\n        <li><strong class=\"pname\"><code>early</code></strong> - Enable or disable <a \n          href=\"https://Publik.TUWien.ac.AT/files/PubDat_247739.pdf\" \n          target=\"_top\">early breaking</a> (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.hausdorff.Hausdorff6Tuple-class.html\" \n          class=\"link\">Hausdorff6Tuple</a><code>(hd, i, j, mn, md, \n          units)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.hausdorff.HausdorffError-class.html\">HausdorffError</a></strong></code> - Insufficient number of <b><code>point2s</code></b> or an invalid \n        <b><code>point2</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.hausdorff.Hausdorff-class.html#directed\">Hausdorff.directed</a>\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        See <b><code>point2s</code></b> note at <a \n        href=\"pygeodesy.hausdorff.HausdorffDistanceTo-class.html\" \n        class=\"link\">HausdorffDistanceTo</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"symmetric\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">symmetric</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">point2s</span>,\n        <span class=\"sig-arg\">early</span>=<span class=\"sig-default\">True</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the combined <code>forward and reverse Hausdorff</code> \n  distance.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>point2s</code></strong> - Second set of points, aka the <code>target</code> \n          (<code>LatLon</code>[], <code>Numpy2LatLon</code>[], \n          <code>Tuple2LatLon</code>[] or <code>other</code>[]).</li>\n        <li><strong class=\"pname\"><code>early</code></strong> - Enable or disable <a \n          href=\"https://Publik.TUWien.ac.AT/files/PubDat_247739.pdf\" \n          target=\"_top\">early breaking</a> (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.hausdorff.Hausdorff6Tuple-class.html\" \n          class=\"link\">Hausdorff6Tuple</a><code>(hd, i, j, mn, md, \n          units)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.hausdorff.HausdorffError-class.html\">HausdorffError</a></strong></code> - Insufficient number of <b><code>point2s</code></b> or an invalid \n        <b><code>point2</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.hausdorff.Hausdorff-class.html#symmetric\">Hausdorff.symmetric</a>\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        See <b><code>point2s</code></b> note at <a \n        href=\"pygeodesy.hausdorff.HausdorffDistanceTo-class.html\" \n        class=\"link\">HausdorffDistanceTo</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.hausdorff.HausdorffHaversine-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.hausdorff.HausdorffHaversine</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.hausdorff-module.html\">Module&nbsp;hausdorff</a> ::\n        Class&nbsp;HausdorffHaversine\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.hausdorff.HausdorffHaversine-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class HausdorffHaversine</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n    object --+            \n             |            \n  <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+        \n                 |        \n         <a href=\"pygeodesy.hausdorff.Hausdorff-class.html\">Hausdorff</a> --+    \n                     |    \n_HausdorffMeterRadians --+\n                         |\n                        <strong class=\"uidshort\">HausdorffHaversine</strong>\n</pre>\n\n<hr />\n<p>Compute the <code>Hausdorff</code> distance with function <a \n  href=\"pygeodesy.geohash-module.html#haversine_\" \n  class=\"link\">pygeodesy.haversine_</a>.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Note:</strong>\n        See note under <a \n        href=\"pygeodesy.hausdorff.HausdorffVincentys-class.html\" \n        class=\"link\">HausdorffVincentys</a>.\n      </p>\n</div><!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.hausdorff.HausdorffHaversine-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">**seed_name__radius_wrap</span>)</span><br />\n      New <a href=\"pygeodesy.hausdorff.HausdorffHaversine-class.html\" \n      class=\"link\">HausdorffHaversine</a> calculator.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.hausdorff.HausdorffHaversine-class.html#directed\" class=\"summary-sig-name\">directed</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">point2s</span>,\n        <span class=\"summary-sig-arg\">early</span>=<span class=\"summary-sig-default\">True</span>)</span><br />\n      Compute only the <code>forward Hausdorff</code> distance.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.hausdorff.HausdorffHaversine-class.html#symmetric\" class=\"summary-sig-name\">symmetric</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">point2s</span>,\n        <span class=\"summary-sig-arg\">early</span>=<span class=\"summary-sig-default\">True</span>)</span><br />\n      Compute the combined <code>forward and reverse Hausdorff</code> \n      distance.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html\">Hausdorff</a></code></b>:\n      <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html#distance\">distance</a></code>,\n      <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html#point\">point</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html\">Hausdorff</a></code></b>:\n      <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html#adjust\">adjust</a></code>,\n      <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html#datum\">datum</a></code>,\n      <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html#kwds\">kwds</a></code>,\n      <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html#seed\">seed</a></code>,\n      <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html#units\">units</a></code>,\n      <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html#wrap\">wrap</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">**seed_name__radius_wrap</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.hausdorff.HausdorffHaversine-class.html\" \n  class=\"link\">HausdorffHaversine</a> calculator.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>seed_name__radius_wrap</code></strong> - Optional <code><b>seed</b>=None</code> and \n          <code><b>name</b>=NN</code> and keyword arguments for function <a\n          href=\"pygeodesy.formy-module.html#haversine\" \n          class=\"link\">pygeodesy.haversine</a>.</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.hausdorff.HausdorffError-class.html\">HausdorffError</a></strong></code> - Insufficient number of <b><code>point1s</code></b> or an invalid \n        <b><code>point1</code></b>, <b><code>seed</code></b> or \n        <b><code>units</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"pygeodesy.hausdorff.Hausdorff-class.html#__init__\" \n        class=\"link\">Hausdorff.__init__</a> for details about \n        <b><code>point1s</code></b>, <b><code>seed</code></b>, \n        <b><code>name</code></b> and other exceptions.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"directed\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">directed</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">point2s</span>,\n        <span class=\"sig-arg\">early</span>=<span class=\"sig-default\">True</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute only the <code>forward Hausdorff</code> distance.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>point2s</code></strong> - Second set of points, aka the <code>target</code> \n          (<code>LatLon</code>[], <code>Numpy2LatLon</code>[], \n          <code>Tuple2LatLon</code>[] or <code>other</code>[]).</li>\n        <li><strong class=\"pname\"><code>early</code></strong> - Enable or disable <a \n          href=\"https://Publik.TUWien.ac.AT/files/PubDat_247739.pdf\" \n          target=\"_top\">early breaking</a> (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.hausdorff.Hausdorff6Tuple-class.html\" \n          class=\"link\">Hausdorff6Tuple</a><code>(hd, i, j, mn, md, \n          units)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.hausdorff.HausdorffError-class.html\">HausdorffError</a></strong></code> - Insufficient number of <b><code>point2s</code></b> or an invalid \n        <b><code>point2</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.hausdorff.Hausdorff-class.html#directed\">Hausdorff.directed</a>\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        See <b><code>point2s</code></b> note at <a \n        href=\"pygeodesy.hausdorff.HausdorffDistanceTo-class.html\" \n        class=\"link\">HausdorffDistanceTo</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"symmetric\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">symmetric</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">point2s</span>,\n        <span class=\"sig-arg\">early</span>=<span class=\"sig-default\">True</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the combined <code>forward and reverse Hausdorff</code> \n  distance.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>point2s</code></strong> - Second set of points, aka the <code>target</code> \n          (<code>LatLon</code>[], <code>Numpy2LatLon</code>[], \n          <code>Tuple2LatLon</code>[] or <code>other</code>[]).</li>\n        <li><strong class=\"pname\"><code>early</code></strong> - Enable or disable <a \n          href=\"https://Publik.TUWien.ac.AT/files/PubDat_247739.pdf\" \n          target=\"_top\">early breaking</a> (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.hausdorff.Hausdorff6Tuple-class.html\" \n          class=\"link\">Hausdorff6Tuple</a><code>(hd, i, j, mn, md, \n          units)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.hausdorff.HausdorffError-class.html\">HausdorffError</a></strong></code> - Insufficient number of <b><code>point2s</code></b> or an invalid \n        <b><code>point2</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.hausdorff.Hausdorff-class.html#symmetric\">Hausdorff.symmetric</a>\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        See <b><code>point2s</code></b> note at <a \n        href=\"pygeodesy.hausdorff.HausdorffDistanceTo-class.html\" \n        class=\"link\">HausdorffDistanceTo</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.hausdorff.HausdorffHubeny-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.hausdorff.HausdorffHubeny</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.hausdorff-module.html\">Module&nbsp;hausdorff</a> ::\n        Class&nbsp;HausdorffHubeny\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.hausdorff.HausdorffHubeny-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class HausdorffHubeny</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n    object --+                \n             |                \n  <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+            \n                 |            \n         <a href=\"pygeodesy.hausdorff.Hausdorff-class.html\">Hausdorff</a> --+        \n                     |        \n_HausdorffMeterRadians --+    \n                         |    \n        <a href=\"pygeodesy.hausdorff.HausdorffFlatLocal-class.html\">HausdorffFlatLocal</a> --+\n                             |\n                            <strong class=\"uidshort\">HausdorffHubeny</strong>\n</pre>\n\n<hr />\n<p>Compute the <code>Hausdorff</code> distance with function <a \n  href=\"pygeodesy.formy-module.html#flatLocal_\" \n  class=\"link\">pygeodesy.flatLocal_</a>/<a \n  href=\"pygeodesy.formy-module.html#flatLocal_\" \n  class=\"link\">pygeodesy.hubeny_</a>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.hausdorff.HausdorffHubeny-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">point1s</span>,\n        <span class=\"summary-sig-arg\">**seed_name__datum_scaled_wrap</span>)</span><br />\n      New <a href=\"pygeodesy.hausdorff.HausdorffFlatLocal-class.html\" \n      class=\"link\">HausdorffFlatLocal</a>/<a \n      href=\"pygeodesy.hausdorff.HausdorffHubeny-class.html\" \n      class=\"link\">HausdorffHubeny</a> calculator.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.hausdorff.HausdorffHubeny-class.html#directed\" class=\"summary-sig-name\">directed</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">point2s</span>,\n        <span class=\"summary-sig-arg\">early</span>=<span class=\"summary-sig-default\">True</span>)</span><br />\n      Compute only the <code>forward Hausdorff</code> distance.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.hausdorff.HausdorffHubeny-class.html#distance\" class=\"summary-sig-name\">distance</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">point1</span>,\n        <span class=\"summary-sig-arg\">point2</span>)</span><br />\n      Return the distance between <b><code>point1</code></b> and \n      <b><code>point2</code></b>, subject to the supplied optional keyword \n      arguments, see property <code>kwds</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.hausdorff.HausdorffHubeny-class.html#symmetric\" class=\"summary-sig-name\">symmetric</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">point2s</span>,\n        <span class=\"summary-sig-arg\">early</span>=<span class=\"summary-sig-default\">True</span>)</span><br />\n      Compute the combined <code>forward and reverse Hausdorff</code> \n      distance.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html\">Hausdorff</a></code></b>:\n      <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html#point\">point</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS VARIABLES ==================== -->\n<a name=\"section-ClassVariables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Class Variables</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"__doc__\"></a><span class=\"summary-name\">__doc__</span> = <code title=\"HausdorffFlatLocal.__doc__\">HausdorffFlatLocal.__doc__</code>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html\">Hausdorff</a></code></b>:\n      <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html#adjust\">adjust</a></code>,\n      <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html#datum\">datum</a></code>,\n      <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html#kwds\">kwds</a></code>,\n      <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html#seed\">seed</a></code>,\n      <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html#units\">units</a></code>,\n      <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html#wrap\">wrap</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">point1s</span>,\n        <span class=\"sig-arg\">**seed_name__datum_scaled_wrap</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.hausdorff.HausdorffFlatLocal-class.html\" \n  class=\"link\">HausdorffFlatLocal</a>/<a \n  href=\"pygeodesy.hausdorff.HausdorffHubeny-class.html\" \n  class=\"link\">HausdorffHubeny</a> calculator.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>seed_name__datum_scaled_wrap</code></strong> - Optional <code><b>seed</b>=None</code> and \n          <code><b>name</b>=NN</code> and keyword arguments for function <a\n          href=\"pygeodesy.formy-module.html#flatLocal\" \n          class=\"link\">pygeodesy.flatLocal</a>.</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.hausdorff.HausdorffError-class.html\">HausdorffError</a></strong></code> - Insufficient number of <b><code>point1s</code></b> or an invalid \n        <b><code>point1</code></b>, <b><code>seed</code></b> or \n        <b><code>units</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"pygeodesy.hausdorff.Hausdorff-class.html#__init__\" \n        class=\"link\">Hausdorff.__init__</a> for details about \n        <b><code>point1s</code></b>, <b><code>seed</code></b>, \n        <b><code>name</code></b> and other exceptions.\n      </p>\n      <p><strong>Note:</strong>\n        The distance <code>units</code> are <code>radians squared</code>, \n        not <code>radians</code>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"directed\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">directed</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">point2s</span>,\n        <span class=\"sig-arg\">early</span>=<span class=\"sig-default\">True</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute only the <code>forward Hausdorff</code> distance.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>point2s</code></strong> - Second set of points, aka the <code>target</code> \n          (<code>LatLon</code>[], <code>Numpy2LatLon</code>[], \n          <code>Tuple2LatLon</code>[] or <code>other</code>[]).</li>\n        <li><strong class=\"pname\"><code>early</code></strong> - Enable or disable <a \n          href=\"https://Publik.TUWien.ac.AT/files/PubDat_247739.pdf\" \n          target=\"_top\">early breaking</a> (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.hausdorff.Hausdorff6Tuple-class.html\" \n          class=\"link\">Hausdorff6Tuple</a><code>(hd, i, j, mn, md, \n          units)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.hausdorff.HausdorffError-class.html\">HausdorffError</a></strong></code> - Insufficient number of <b><code>point2s</code></b> or an invalid \n        <b><code>point2</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.hausdorff.Hausdorff-class.html#directed\">Hausdorff.directed</a>\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        See <b><code>point2s</code></b> note at <a \n        href=\"pygeodesy.hausdorff.HausdorffDistanceTo-class.html\" \n        class=\"link\">HausdorffDistanceTo</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"distance\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">distance</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">point1</span>,\n        <span class=\"sig-arg\">point2</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the distance between <b><code>point1</code></b> and \n  <b><code>point2</code></b>, subject to the supplied optional keyword \n  arguments, see property <code>kwds</code>.</p>\n  <dl class=\"fields\">\n    <dt>Overrides:\n        <a href=\"pygeodesy.hausdorff.Hausdorff-class.html#distance\">Hausdorff.distance</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"symmetric\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">symmetric</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">point2s</span>,\n        <span class=\"sig-arg\">early</span>=<span class=\"sig-default\">True</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the combined <code>forward and reverse Hausdorff</code> \n  distance.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>point2s</code></strong> - Second set of points, aka the <code>target</code> \n          (<code>LatLon</code>[], <code>Numpy2LatLon</code>[], \n          <code>Tuple2LatLon</code>[] or <code>other</code>[]).</li>\n        <li><strong class=\"pname\"><code>early</code></strong> - Enable or disable <a \n          href=\"https://Publik.TUWien.ac.AT/files/PubDat_247739.pdf\" \n          target=\"_top\">early breaking</a> (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.hausdorff.Hausdorff6Tuple-class.html\" \n          class=\"link\">Hausdorff6Tuple</a><code>(hd, i, j, mn, md, \n          units)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.hausdorff.HausdorffError-class.html\">HausdorffError</a></strong></code> - Insufficient number of <b><code>point2s</code></b> or an invalid \n        <b><code>point2</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.hausdorff.Hausdorff-class.html#symmetric\">Hausdorff.symmetric</a>\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        See <b><code>point2s</code></b> note at <a \n        href=\"pygeodesy.hausdorff.HausdorffDistanceTo-class.html\" \n        class=\"link\">HausdorffDistanceTo</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.hausdorff.HausdorffKarney-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.hausdorff.HausdorffKarney</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.hausdorff-module.html\">Module&nbsp;hausdorff</a> ::\n        Class&nbsp;HausdorffKarney\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.hausdorff.HausdorffKarney-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class HausdorffKarney</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+        \n           |        \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n               |    \n       <a href=\"pygeodesy.hausdorff.Hausdorff-class.html\">Hausdorff</a> --+\n                   |\n                  <strong class=\"uidshort\">HausdorffKarney</strong>\n</pre>\n\n<hr />\n<p>Compute the <code>Hausdorff</code> distance with <i>Karney</i>'s <a \n  href=\"https://PyPI.org/project/geographiclib\" \n  target=\"_top\">geographiclib</a> <a \n  href=\"https://GeographicLib.SourceForge.io/Python/doc/code.html\" \n  target=\"_top\">geodesic.Geodesic</a><code>.Inverse</code> method.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.hausdorff.HausdorffKarney-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">point1s</span>,\n        <span class=\"summary-sig-arg\">datum</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**seed_name__wrap</span>)</span><br />\n      New <a href=\"pygeodesy.hausdorff.HausdorffKarney-class.html\" \n      class=\"link\">HausdorffKarney</a> calculator.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html\">Hausdorff</a></code></b>:\n      <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html#directed\">directed</a></code>,\n      <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html#distance\">distance</a></code>,\n      <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html#point\">point</a></code>,\n      <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html#symmetric\">symmetric</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html\">Hausdorff</a></code></b>:\n      <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html#adjust\">adjust</a></code>,\n      <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html#datum\">datum</a></code>,\n      <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html#kwds\">kwds</a></code>,\n      <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html#seed\">seed</a></code>,\n      <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html#units\">units</a></code>,\n      <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html#wrap\">wrap</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">point1s</span>,\n        <span class=\"sig-arg\">datum</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**seed_name__wrap</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.hausdorff.HausdorffKarney-class.html\" \n  class=\"link\">HausdorffKarney</a> calculator.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>datum</code></strong> - Datum to override the default <code>Datums.WGS84</code> and first\n          <b><code>knots</code></b>' datum (<a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>, \n          <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a> or <a \n          href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>seed_name__wrap</code></strong> - Optional <code><b>seed</b>=None</code> and \n          <code><b>name</b>=NN</code> and keyword arguments for method \n          <code>Inverse1</code> of class <a \n          href=\"pygeodesy.geodesicw.Geodesic-class.html\" \n          class=\"link\">geodesicw.Geodesic</a>.</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ImportError</strong></code> - Package <a href=\"https://PyPI.org/project/geographiclib\" \n        target=\"_top\">geographiclib</a> missing.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>datum</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"pygeodesy.hausdorff.Hausdorff-class.html#__init__\" \n        class=\"link\">Hausdorff.__init__</a> for details about \n        <b><code>point1s</code></b>, <b><code>seed</code></b>, \n        <b><code>name</code></b> and other exceptions.\n      </p>\n</div></td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.hausdorff.HausdorffRadians-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.hausdorff.HausdorffRadians</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.hausdorff-module.html\">Module&nbsp;hausdorff</a> ::\n        Class&nbsp;HausdorffRadians\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.hausdorff.HausdorffRadians-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class HausdorffRadians</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+        \n           |        \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n               |    \n       <a href=\"pygeodesy.hausdorff.Hausdorff-class.html\">Hausdorff</a> --+\n                   |\n                  <strong class=\"uidshort\">HausdorffRadians</strong>\n</pre>\n\n<hr />\n<p><a href=\"pygeodesy.hausdorff.Hausdorff-class.html\" \n  class=\"link\">Hausdorff</a> base class for distances from \n  <code>LatLon</code> points converted from <code>degrees</code> to \n  <code>radians</code>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.hausdorff.HausdorffRadians-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">point1s</span>,\n        <span class=\"summary-sig-arg\">seed</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">units</span>=<span class=\"summary-sig-default\">''</span>,\n        <span class=\"summary-sig-arg\">**name__kwds</span>)</span><br />\n      New <code>Hausdorff...</code> calculator.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.hausdorff.HausdorffRadians-class.html#directed\" class=\"summary-sig-name\">directed</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">point2s</span>,\n        <span class=\"summary-sig-arg\">early</span>=<span class=\"summary-sig-default\">True</span>)</span><br />\n      Compute only the <code>forward Hausdorff</code> distance.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.hausdorff.HausdorffRadians-class.html#symmetric\" class=\"summary-sig-name\">symmetric</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">point2s</span>,\n        <span class=\"summary-sig-arg\">early</span>=<span class=\"summary-sig-default\">True</span>)</span><br />\n      Compute the combined <code>forward and reverse Hausdorff</code> \n      distance.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.hausdorff.HausdorffRadians-class.html#distance\" class=\"summary-sig-name\">distance</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">point1</span>,\n        <span class=\"summary-sig-arg\">point2</span>)</span><br />\n      <i>Must be overloaded</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.hausdorff.HausdorffRadians-class.html#point\" class=\"summary-sig-name\">point</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">point</span>)</span><br />\n      Return <b><code>point</code></b> as <a \n      href=\"pygeodesy.namedTuples.PhiLam2Tuple-class.html\" \n      class=\"link\">PhiLam2Tuple</a> to maintain <i>backward \n      compatibility</i> of <a \n      href=\"pygeodesy.hausdorff.HausdorffRadians-class.html\" \n      class=\"link\">HausdorffRadians</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html\">Hausdorff</a></code></b>:\n      <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html#adjust\">adjust</a></code>,\n      <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html#datum\">datum</a></code>,\n      <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html#kwds\">kwds</a></code>,\n      <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html#seed\">seed</a></code>,\n      <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html#units\">units</a></code>,\n      <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html#wrap\">wrap</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">point1s</span>,\n        <span class=\"sig-arg\">seed</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">units</span>=<span class=\"sig-default\">''</span>,\n        <span class=\"sig-arg\">**name__kwds</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <code>Hausdorff...</code> calculator.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>point1s</code></strong> - Initial set of points, aka the <code>model</code> or \n          <code>template</code> (<code>LatLon</code>[], \n          <code>Numpy2LatLon</code>[], <code>Tuple2LatLon</code>[] or \n          <code>other</code>[]).</li>\n        <li><strong class=\"pname\"><code>seed</code></strong> - Random sampling seed (<code>any</code>) or <code>None</code>, \n          <code>0</code> or <code>False</code> for no <a \n          href=\"https://Publik.TUWien.ac.AT/files/PubDat_247739.pdf\" \n          target=\"_top\">random sampling</a>.</li>\n        <li><strong class=\"pname\"><code>units</code></strong> - Optional, the distance units (<code>Unit</code> or \n          <code>str</code>).</li>\n        <li><strong class=\"pname\"><code>name__kwds</code></strong> - Optional calculator/interpolator <code><b>name</b>=NN</code> \n          (<code>str</code>) and keyword arguments for the distance \n          function, retrievable with property <code>kwds</code>.</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.hausdorff.HausdorffError-class.html\">HausdorffError</a></strong></code> - Insufficient number of <b><code>point1s</code></b> or an invalid \n        <b><code>point1</code></b>, <b><code>seed</code></b> or \n        <b><code>units</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"directed\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">directed</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">point2s</span>,\n        <span class=\"sig-arg\">early</span>=<span class=\"sig-default\">True</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute only the <code>forward Hausdorff</code> distance.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>point2s</code></strong> - Second set of points, aka the <code>target</code> \n          (<code>LatLon</code>[], <code>Numpy2LatLon</code>[], \n          <code>Tuple2LatLon</code>[] or <code>other</code>[]).</li>\n        <li><strong class=\"pname\"><code>early</code></strong> - Enable or disable <a \n          href=\"https://Publik.TUWien.ac.AT/files/PubDat_247739.pdf\" \n          target=\"_top\">early breaking</a> (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.hausdorff.Hausdorff6Tuple-class.html\" \n          class=\"link\">Hausdorff6Tuple</a><code>(hd, i, j, mn, md, \n          units)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.hausdorff.HausdorffError-class.html\">HausdorffError</a></strong></code> - Insufficient number of <b><code>point2s</code></b> or an invalid \n        <b><code>point2</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.hausdorff.Hausdorff-class.html#directed\">Hausdorff.directed</a>\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        See <b><code>point2s</code></b> note at <a \n        href=\"pygeodesy.hausdorff.HausdorffDistanceTo-class.html\" \n        class=\"link\">HausdorffDistanceTo</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"symmetric\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">symmetric</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">point2s</span>,\n        <span class=\"sig-arg\">early</span>=<span class=\"sig-default\">True</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the combined <code>forward and reverse Hausdorff</code> \n  distance.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>point2s</code></strong> - Second set of points, aka the <code>target</code> \n          (<code>LatLon</code>[], <code>Numpy2LatLon</code>[], \n          <code>Tuple2LatLon</code>[] or <code>other</code>[]).</li>\n        <li><strong class=\"pname\"><code>early</code></strong> - Enable or disable <a \n          href=\"https://Publik.TUWien.ac.AT/files/PubDat_247739.pdf\" \n          target=\"_top\">early breaking</a> (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.hausdorff.Hausdorff6Tuple-class.html\" \n          class=\"link\">Hausdorff6Tuple</a><code>(hd, i, j, mn, md, \n          units)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.hausdorff.HausdorffError-class.html\">HausdorffError</a></strong></code> - Insufficient number of <b><code>point2s</code></b> or an invalid \n        <b><code>point2</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.hausdorff.Hausdorff-class.html#symmetric\">Hausdorff.symmetric</a>\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        See <b><code>point2s</code></b> note at <a \n        href=\"pygeodesy.hausdorff.HausdorffDistanceTo-class.html\" \n        class=\"link\">HausdorffDistanceTo</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"distance\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">distance</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">point1</span>,\n        <span class=\"sig-arg\">point2</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p><i>Must be overloaded</i>.</p>\n  <dl class=\"fields\">\n    <dt>Overrides:\n        <a href=\"pygeodesy.hausdorff.Hausdorff-class.html#distance\">Hausdorff.distance</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"point\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">point</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">point</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return <b><code>point</code></b> as <a \n  href=\"pygeodesy.namedTuples.PhiLam2Tuple-class.html\" \n  class=\"link\">PhiLam2Tuple</a> to maintain <i>backward compatibility</i> \n  of <a href=\"pygeodesy.hausdorff.HausdorffRadians-class.html\" \n  class=\"link\">HausdorffRadians</a>.</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.namedTuples.PhiLam2Tuple-class.html\" \n          class=\"link\">PhiLam2Tuple</a><code>(phi, lam)</code>.</dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.hausdorff.Hausdorff-class.html#point\">Hausdorff.point</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.hausdorff.HausdorffThomas-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.hausdorff.HausdorffThomas</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.hausdorff-module.html\">Module&nbsp;hausdorff</a> ::\n        Class&nbsp;HausdorffThomas\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.hausdorff.HausdorffThomas-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class HausdorffThomas</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n    object --+            \n             |            \n  <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+        \n                 |        \n         <a href=\"pygeodesy.hausdorff.Hausdorff-class.html\">Hausdorff</a> --+    \n                     |    \n_HausdorffMeterRadians --+\n                         |\n                        <strong class=\"uidshort\">HausdorffThomas</strong>\n</pre>\n\n<hr />\n<p>Compute the <code>Hausdorff</code> distance with function <a \n  href=\"pygeodesy.formy-module.html#thomas_\" \n  class=\"link\">pygeodesy.thomas_</a>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.hausdorff.HausdorffThomas-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">point1s</span>,\n        <span class=\"summary-sig-arg\">**seed_name__datum_wrap</span>)</span><br />\n      New <a href=\"pygeodesy.hausdorff.HausdorffThomas-class.html\" \n      class=\"link\">HausdorffThomas</a> calculator.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.hausdorff.HausdorffThomas-class.html#directed\" class=\"summary-sig-name\">directed</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">point2s</span>,\n        <span class=\"summary-sig-arg\">early</span>=<span class=\"summary-sig-default\">True</span>)</span><br />\n      Compute only the <code>forward Hausdorff</code> distance.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.hausdorff.HausdorffThomas-class.html#symmetric\" class=\"summary-sig-name\">symmetric</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">point2s</span>,\n        <span class=\"summary-sig-arg\">early</span>=<span class=\"summary-sig-default\">True</span>)</span><br />\n      Compute the combined <code>forward and reverse Hausdorff</code> \n      distance.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html\">Hausdorff</a></code></b>:\n      <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html#distance\">distance</a></code>,\n      <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html#point\">point</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html\">Hausdorff</a></code></b>:\n      <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html#adjust\">adjust</a></code>,\n      <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html#datum\">datum</a></code>,\n      <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html#kwds\">kwds</a></code>,\n      <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html#seed\">seed</a></code>,\n      <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html#units\">units</a></code>,\n      <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html#wrap\">wrap</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">point1s</span>,\n        <span class=\"sig-arg\">**seed_name__datum_wrap</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.hausdorff.HausdorffThomas-class.html\" \n  class=\"link\">HausdorffThomas</a> calculator.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>seed_name__datum_wrap</code></strong> - Optional <code><b>seed</b>=None</code> and \n          <code><b>name</b>=NN</code> and keyword arguments for function <a\n          href=\"pygeodesy.formy-module.html#thomas\" \n          class=\"link\">pygeodesy.thomas</a>.</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.hausdorff.HausdorffError-class.html\">HausdorffError</a></strong></code> - Insufficient number of <b><code>point1s</code></b> or an invalid \n        <b><code>point1</code></b>, <b><code>seed</code></b> or \n        <b><code>units</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"pygeodesy.hausdorff.Hausdorff-class.html#__init__\" \n        class=\"link\">Hausdorff.__init__</a> for details about \n        <b><code>point1s</code></b>, <b><code>seed</code></b>, \n        <b><code>name</code></b> and other exceptions.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"directed\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">directed</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">point2s</span>,\n        <span class=\"sig-arg\">early</span>=<span class=\"sig-default\">True</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute only the <code>forward Hausdorff</code> distance.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>point2s</code></strong> - Second set of points, aka the <code>target</code> \n          (<code>LatLon</code>[], <code>Numpy2LatLon</code>[], \n          <code>Tuple2LatLon</code>[] or <code>other</code>[]).</li>\n        <li><strong class=\"pname\"><code>early</code></strong> - Enable or disable <a \n          href=\"https://Publik.TUWien.ac.AT/files/PubDat_247739.pdf\" \n          target=\"_top\">early breaking</a> (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.hausdorff.Hausdorff6Tuple-class.html\" \n          class=\"link\">Hausdorff6Tuple</a><code>(hd, i, j, mn, md, \n          units)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.hausdorff.HausdorffError-class.html\">HausdorffError</a></strong></code> - Insufficient number of <b><code>point2s</code></b> or an invalid \n        <b><code>point2</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.hausdorff.Hausdorff-class.html#directed\">Hausdorff.directed</a>\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        See <b><code>point2s</code></b> note at <a \n        href=\"pygeodesy.hausdorff.HausdorffDistanceTo-class.html\" \n        class=\"link\">HausdorffDistanceTo</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"symmetric\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">symmetric</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">point2s</span>,\n        <span class=\"sig-arg\">early</span>=<span class=\"sig-default\">True</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the combined <code>forward and reverse Hausdorff</code> \n  distance.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>point2s</code></strong> - Second set of points, aka the <code>target</code> \n          (<code>LatLon</code>[], <code>Numpy2LatLon</code>[], \n          <code>Tuple2LatLon</code>[] or <code>other</code>[]).</li>\n        <li><strong class=\"pname\"><code>early</code></strong> - Enable or disable <a \n          href=\"https://Publik.TUWien.ac.AT/files/PubDat_247739.pdf\" \n          target=\"_top\">early breaking</a> (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.hausdorff.Hausdorff6Tuple-class.html\" \n          class=\"link\">Hausdorff6Tuple</a><code>(hd, i, j, mn, md, \n          units)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.hausdorff.HausdorffError-class.html\">HausdorffError</a></strong></code> - Insufficient number of <b><code>point2s</code></b> or an invalid \n        <b><code>point2</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.hausdorff.Hausdorff-class.html#symmetric\">Hausdorff.symmetric</a>\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        See <b><code>point2s</code></b> note at <a \n        href=\"pygeodesy.hausdorff.HausdorffDistanceTo-class.html\" \n        class=\"link\">HausdorffDistanceTo</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.hausdorff.HausdorffVincentys-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.hausdorff.HausdorffVincentys</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.hausdorff-module.html\">Module&nbsp;hausdorff</a> ::\n        Class&nbsp;HausdorffVincentys\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.hausdorff.HausdorffVincentys-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class HausdorffVincentys</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n    object --+            \n             |            \n  <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+        \n                 |        \n         <a href=\"pygeodesy.hausdorff.Hausdorff-class.html\">Hausdorff</a> --+    \n                     |    \n_HausdorffMeterRadians --+\n                         |\n                        <strong class=\"uidshort\">HausdorffVincentys</strong>\n</pre>\n\n<hr />\n<p>Compute the <code>Hausdorff</code> distance with function <a \n  href=\"pygeodesy.geohash-module.html#vincentys_\" \n  class=\"link\">pygeodesy.vincentys_</a>.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Note:</strong>\n        See note at function <a \n        href=\"pygeodesy.geohash-module.html#vincentys_\" \n        class=\"link\">pygeodesy.vincentys_</a>.\n      </p>\n</div><!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.hausdorff.HausdorffVincentys-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">point1s</span>,\n        <span class=\"summary-sig-arg\">**seed_name__radius_wrap</span>)</span><br />\n      New <a href=\"pygeodesy.hausdorff.HausdorffVincentys-class.html\" \n      class=\"link\">HausdorffVincentys</a> calculator.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.hausdorff.HausdorffVincentys-class.html#directed\" class=\"summary-sig-name\">directed</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">point2s</span>,\n        <span class=\"summary-sig-arg\">early</span>=<span class=\"summary-sig-default\">True</span>)</span><br />\n      Compute only the <code>forward Hausdorff</code> distance.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.hausdorff.HausdorffVincentys-class.html#symmetric\" class=\"summary-sig-name\">symmetric</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">point2s</span>,\n        <span class=\"summary-sig-arg\">early</span>=<span class=\"summary-sig-default\">True</span>)</span><br />\n      Compute the combined <code>forward and reverse Hausdorff</code> \n      distance.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html\">Hausdorff</a></code></b>:\n      <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html#distance\">distance</a></code>,\n      <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html#point\">point</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html\">Hausdorff</a></code></b>:\n      <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html#adjust\">adjust</a></code>,\n      <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html#datum\">datum</a></code>,\n      <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html#kwds\">kwds</a></code>,\n      <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html#seed\">seed</a></code>,\n      <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html#units\">units</a></code>,\n      <code><a href=\"pygeodesy.hausdorff.Hausdorff-class.html#wrap\">wrap</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">point1s</span>,\n        <span class=\"sig-arg\">**seed_name__radius_wrap</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.hausdorff.HausdorffVincentys-class.html\" \n  class=\"link\">HausdorffVincentys</a> calculator.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>seed_name__radius_wrap</code></strong> - Optional <code><b>seed</b>=None</code> and \n          <code><b>name</b>=NN</code> and keyword arguments for function <a\n          href=\"pygeodesy.formy-module.html#vincentys\" \n          class=\"link\">pygeodesy.vincentys</a>.</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.hausdorff.HausdorffError-class.html\">HausdorffError</a></strong></code> - Insufficient number of <b><code>point1s</code></b> or an invalid \n        <b><code>point1</code></b>, <b><code>seed</code></b> or \n        <b><code>units</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"pygeodesy.hausdorff.Hausdorff-class.html#__init__\" \n        class=\"link\">Hausdorff.__init__</a> for details about \n        <b><code>point1s</code></b>, <b><code>seed</code></b>, \n        <b><code>name</code></b> and other exceptions.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"directed\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">directed</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">point2s</span>,\n        <span class=\"sig-arg\">early</span>=<span class=\"sig-default\">True</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute only the <code>forward Hausdorff</code> distance.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>point2s</code></strong> - Second set of points, aka the <code>target</code> \n          (<code>LatLon</code>[], <code>Numpy2LatLon</code>[], \n          <code>Tuple2LatLon</code>[] or <code>other</code>[]).</li>\n        <li><strong class=\"pname\"><code>early</code></strong> - Enable or disable <a \n          href=\"https://Publik.TUWien.ac.AT/files/PubDat_247739.pdf\" \n          target=\"_top\">early breaking</a> (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.hausdorff.Hausdorff6Tuple-class.html\" \n          class=\"link\">Hausdorff6Tuple</a><code>(hd, i, j, mn, md, \n          units)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.hausdorff.HausdorffError-class.html\">HausdorffError</a></strong></code> - Insufficient number of <b><code>point2s</code></b> or an invalid \n        <b><code>point2</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.hausdorff.Hausdorff-class.html#directed\">Hausdorff.directed</a>\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        See <b><code>point2s</code></b> note at <a \n        href=\"pygeodesy.hausdorff.HausdorffDistanceTo-class.html\" \n        class=\"link\">HausdorffDistanceTo</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"symmetric\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">symmetric</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">point2s</span>,\n        <span class=\"sig-arg\">early</span>=<span class=\"sig-default\">True</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the combined <code>forward and reverse Hausdorff</code> \n  distance.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>point2s</code></strong> - Second set of points, aka the <code>target</code> \n          (<code>LatLon</code>[], <code>Numpy2LatLon</code>[], \n          <code>Tuple2LatLon</code>[] or <code>other</code>[]).</li>\n        <li><strong class=\"pname\"><code>early</code></strong> - Enable or disable <a \n          href=\"https://Publik.TUWien.ac.AT/files/PubDat_247739.pdf\" \n          target=\"_top\">early breaking</a> (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.hausdorff.Hausdorff6Tuple-class.html\" \n          class=\"link\">Hausdorff6Tuple</a><code>(hd, i, j, mn, md, \n          units)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.hausdorff.HausdorffError-class.html\">HausdorffError</a></strong></code> - Insufficient number of <b><code>point2s</code></b> or an invalid \n        <b><code>point2</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.hausdorff.Hausdorff-class.html#symmetric\">Hausdorff.symmetric</a>\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        See <b><code>point2s</code></b> note at <a \n        href=\"pygeodesy.hausdorff.HausdorffDistanceTo-class.html\" \n        class=\"link\">HausdorffDistanceTo</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.heights-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.heights</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        Module&nbsp;heights\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.heights-module.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== MODULE DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Module heights</h1><p class=\"nomargin-top\"></p>\n<p>Height interpolations at <code>LatLon</code> points from known \n  <code>knots</code>.</p>\n  <p>Classes <a href=\"pygeodesy.heights.HeightCubic-class.html\" \n  class=\"link\">HeightCubic</a>, <a \n  href=\"pygeodesy.heights.HeightIDWcosineLaw-class.html\" \n  class=\"link\">HeightIDWcosineLaw</a>, <a \n  href=\"pygeodesy.heights.HeightIDWdistanceTo-class.html\" \n  class=\"link\">HeightIDWdistanceTo</a>, <a \n  href=\"pygeodesy.heights.HeightIDWequirectangular-class.html\" \n  class=\"link\">HeightIDWequirectangular</a>, <a \n  href=\"pygeodesy.heights.HeightIDWeuclidean-class.html\" \n  class=\"link\">HeightIDWeuclidean</a>, <a \n  href=\"pygeodesy.heights.HeightIDWflatLocal-class.html\" \n  class=\"link\">HeightIDWflatLocal</a>, <a \n  href=\"pygeodesy.heights.HeightIDWflatPolar-class.html\" \n  class=\"link\">HeightIDWflatPolar</a>, <a \n  href=\"pygeodesy.heights.HeightIDWhaversine-class.html\" \n  class=\"link\">HeightIDWhaversine</a>, <a \n  href=\"pygeodesy.heights.HeightIDWhubeny-class.html\" \n  class=\"link\">HeightIDWhubeny</a>, <a \n  href=\"pygeodesy.heights.HeightIDWkarney-class.html\" \n  class=\"link\">HeightIDWkarney</a>, <a \n  href=\"pygeodesy.heights.HeightIDWthomas-class.html\" \n  class=\"link\">HeightIDWthomas</a>, <a \n  href=\"pygeodesy.heights.HeightIDWvincentys-class.html\" \n  class=\"link\">HeightIDWvincentys</a>, <a \n  href=\"pygeodesy.heights.HeightLinear-class.html\" \n  class=\"link\">HeightLinear</a>, <a \n  href=\"pygeodesy.heights.HeightLSQBiSpline-class.html\" \n  class=\"link\">HeightLSQBiSpline</a> and <a \n  href=\"pygeodesy.heights.HeightSmoothBiSpline-class.html\" \n  class=\"link\">HeightSmoothBiSpline</a> to interpolate the height of \n  <code>LatLon</code> locations or separate lat-/longitudes from a set of \n  <code>LatLon</code> points with <i>known heights</i>.</p>\n  <h1 class=\"heading\">Typical usage</h1>\n    <ol start=\"1\">\n      <li>\n        Get or create a set of <code>LatLon</code> points with <i>known \n        heights</i>, called <code>knots</code>.  The <code>knots</code> do \n        not need to be ordered in any particular way.\n        <p><code>&gt;&gt;&gt; ...</code></p>\n      </li>\n      <li>\n        Select one of the <code>Height</code> classes for height \n        interpolation\n        <p><code>&gt;&gt;&gt; from pygeodesy import HeightCubic as \n        HeightXyz  # or an other Height... class</code></p>\n      </li>\n      <li>\n        Instantiate a height interpolator with the <code>knots</code> and \n        use keyword arguments to select different interpolation options\n        <p><code>&gt;&gt;&gt; hinterpolator = HeightXyz(knots, \n        **options)</code></p>\n      </li>\n      <li>\n        Get the interpolated height of <code>LatLon</code> location(s) with\n        <p><code>&gt;&gt;&gt; ll = LatLon(1, 2, ...)</code></p>\n        <p><code>&gt;&gt;&gt; h = hinterpolator(ll)</code></p>\n        <p>or</p>\n        <p><code>&gt;&gt;&gt; h0, h1, h2, ... = hinterpolator(ll0, ll1, \n        ll2, ...)</code></p>\n        <p>or a list, tuple, generator, etc. of <code>LatLon</code>s</p>\n        <p><code>&gt;&gt;&gt; hs = hinterpolator(lls)</code></p>\n      </li>\n      <li>\n        For separate lat- and longitudes invoke the <code>height</code> \n        method as\n        <p><code>&gt;&gt;&gt; h = hinterpolator.height(lat, lon)</code></p>\n        <p>or as 2 lists, 2 tuples, etc.</p>\n        <p><code>&gt;&gt;&gt; hs = hinterpolator.height(lats, \n        lons)</code></p>\n        <p>or for several positionals use the <code>height_</code> \n        method</p>\n        <p><code>&gt;&gt;&gt; h1, h2, ... = hinterpolator.height_(lat1, \n        lon1, lat2, lon2, ...)</code></p>\n      </li>\n    </ol>\n\n<hr />\n<div class=\"fields\">      <strong>Notes:</strong>\n      <ul class=\"nomargin-top\">\n        <li>\n        Classes <a href=\"pygeodesy.heights.HeightCubic-class.html\" \n        class=\"link\">HeightCubic</a> and <a \n        href=\"pygeodesy.heights.HeightLinear-class.html\" \n        class=\"link\">HeightLinear</a> require package <a \n        href=\"https://PyPI.org/project/numpy\" target=\"_top\">numpy</a>, \n        classes <a href=\"pygeodesy.heights.HeightLSQBiSpline-class.html\" \n        class=\"link\">HeightLSQBiSpline</a> and <a \n        href=\"pygeodesy.heights.HeightSmoothBiSpline-class.html\" \n        class=\"link\">HeightSmoothBiSpline</a> require package <a \n        href=\"https://SciPy.org\" target=\"_top\">scipy</a>. Classes <a \n        href=\"pygeodesy.heights.HeightIDWkarney-class.html\" \n        class=\"link\">HeightIDWkarney</a> and <a \n        href=\"pygeodesy.heights.HeightIDWdistanceTo-class.html\" \n        class=\"link\">HeightIDWdistanceTo</a> -if used with <a \n        href=\"pygeodesy.ellipsoidalKarney.LatLon-class.html\" \n        class=\"link\">ellipsoidalKarney.LatLon</a> points- require \n        <i>Karney</i>'s <a href=\"https://PyPI.org/project/geographiclib\" \n        target=\"_top\">geographiclib</a> package to be installed.\n        </li>\n        <li>\n        Errors from <code>scipy</code> are raised as <a \n        href=\"pygeodesy.errors.SciPyError-class.html\" \n        class=\"link\">SciPyError</a>s.  Warnings issued by \n        <code>scipy</code> can be thrown as <a \n        href=\"pygeodesy.errors.SciPyWarning-class.html\" \n        class=\"link\">SciPyWarning</a> exceptions, provided Python \n        <code>warnings</code> are filtered accordingly, see <a \n        href=\"pygeodesy.errors.SciPyWarning-class.html\" \n        class=\"link\">SciPyWarning</a>.\n        </li>\n      </ul>\n      <p><strong>See Also:</strong>\n        <a \n        href=\"https://docs.SciPy.org/doc/scipy/reference/interpolate.html\" \n        target=\"_top\">SciPy</a> Interpolation.\n      </p>\n      <p><strong>Version:</strong>\n        26.02.02\n      </p>\n</div><!-- ==================== CLASSES ==================== -->\n<a name=\"section-Classes\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Classes</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.heights.HeightError-class.html\" class=\"summary-name\">HeightError</a><br />\n      Height interpolator <code>Height...</code> or interpolation issue.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.heights._HeightNamed-class.html\" class=\"summary-name\">_HeightNamed</a><br />\n      (INTERNAL) Interpolator base class.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.heights._HeightBase-class.html\" class=\"summary-name\">_HeightBase</a><br />\n      (INTERNAL) Interpolator base class.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.heights.HeightCubic-class.html\" class=\"summary-name\">HeightCubic</a><br />\n      Height interpolator based on <code>SciPy</code> <a \n        href=\"https://docs.SciPy.org/doc/scipy/reference/generated/scipy.interpolate.interp2d.html\"\n        target=\"_top\">interp2d</a> <code>kind='cubic'</code> or <a \n        href=\"https://docs.SciPy.org/doc/scipy/reference/generated/scipy.interpolate.interp2d.html\"\n        target=\"_top\">bisplrep/-ev</a> <code>kx=ky=3</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.heights.HeightLinear-class.html\" class=\"summary-name\">HeightLinear</a><br />\n      Height interpolator based on <code>SciPy</code> <a \n        href=\"https://docs.SciPy.org/doc/scipy/reference/generated/scipy.interpolate.interp2d.html\"\n        target=\"_top\">interp2d</a> <code>kind='linear'</code> or <a \n        href=\"https://docs.SciPy.org/doc/scipy/reference/generated/scipy.interpolate.interp2d.html\"\n        target=\"_top\">bisplrep/-ev</a> <code>kx=ky=1</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.heights.HeightLSQBiSpline-class.html\" class=\"summary-name\">HeightLSQBiSpline</a><br />\n      Height interpolator using <code>SciPy</code> <a \n        href=\"https://docs.SciPy.org/doc/scipy/reference/generated/scipy.interpolate.LSQSphereBivariateSpline.html\"\n        target=\"_top\">LSQSphereBivariateSpline</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.heights.HeightSmoothBiSpline-class.html\" class=\"summary-name\">HeightSmoothBiSpline</a><br />\n      Height interpolator using <code>SciPy</code> <a \n        href=\"https://docs.SciPy.org/doc/scipy/reference/generated/scipy.interpolate.SmoothSphereBivariateSpline.html\"\n        target=\"_top\">SmoothSphereBivariateSpline</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.heights._HeightIDW-class.html\" class=\"summary-name\">_HeightIDW</a><br />\n      (INTERNAL) Base class for <a \n        href=\"https://WikiPedia.org/wiki/Inverse_distance_weighting\" \n        target=\"_top\">Inverse Distance Weighting</a> (IDW) height \n        interpolators.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.heights.HeightIDWcosineLaw-class.html\" class=\"summary-name\">HeightIDWcosineLaw</a><br />\n      Height interpolator using <a \n        href=\"https://WikiPedia.org/wiki/Inverse_distance_weighting\" \n        target=\"_top\">Inverse Distance Weighting</a> (IDW) and function <a \n        href=\"pygeodesy.formy-module.html#cosineLaw\" \n        class=\"link\">pygeodesy.cosineLaw</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.heights.HeightIDWdistanceTo-class.html\" class=\"summary-name\">HeightIDWdistanceTo</a><br />\n      Height interpolator using <a \n        href=\"https://WikiPedia.org/wiki/Inverse_distance_weighting\" \n        target=\"_top\">Inverse Distance Weighting</a> (IDW) and the points' \n        <code>LatLon.distanceTo</code> method.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.heights.HeightIDWequirectangular-class.html\" class=\"summary-name\">HeightIDWequirectangular</a><br />\n      Height interpolator using <a \n        href=\"https://WikiPedia.org/wiki/Inverse_distance_weighting\" \n        target=\"_top\">Inverse Distance Weighting</a> (IDW) and function <a \n        href=\"pygeodesy.geohash-module.html#equirectangular4\" \n        class=\"link\">pygeodesy.equirectangular4</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.heights.HeightIDWeuclidean-class.html\" class=\"summary-name\">HeightIDWeuclidean</a><br />\n      Height interpolator using <a \n        href=\"https://WikiPedia.org/wiki/Inverse_distance_weighting\" \n        target=\"_top\">Inverse Distance Weighting</a> (IDW) and function <a \n        href=\"pygeodesy.geohash-module.html#euclidean_\" \n        class=\"link\">pygeodesy.euclidean_</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.heights.HeightIDWexact-class.html\" class=\"summary-name\">HeightIDWexact</a><br />\n      Height interpolator using <a \n        href=\"https://WikiPedia.org/wiki/Inverse_distance_weighting\" \n        target=\"_top\">Inverse Distance Weighting</a> (IDW) and method <a \n        href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html#Inverse\" \n        class=\"link\">GeodesicExact.Inverse</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.heights.HeightIDWflatLocal-class.html\" class=\"summary-name\">HeightIDWflatLocal</a><br />\n      Height interpolator using <a \n        href=\"https://WikiPedia.org/wiki/Inverse_distance_weighting\" \n        target=\"_top\">Inverse Distance Weighting</a> (IDW) and the function\n        <a href=\"pygeodesy.formy-module.html#flatLocal_\" \n        class=\"link\">pygeodesy.flatLocal_</a>/<a \n        href=\"pygeodesy.formy-module.html#flatLocal_\" \n        class=\"link\">pygeodesy.hubeny_</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.heights.HeightIDWflatPolar-class.html\" class=\"summary-name\">HeightIDWflatPolar</a><br />\n      Height interpolator using <a \n        href=\"https://WikiPedia.org/wiki/Inverse_distance_weighting\" \n        target=\"_top\">Inverse Distance Weighting</a> (IDW) and function <a \n        href=\"pygeodesy.formy-module.html#flatPolar_\" \n        class=\"link\">pygeodesy.flatPolar_</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.heights.HeightIDWhaversine-class.html\" class=\"summary-name\">HeightIDWhaversine</a><br />\n      Height interpolator using <a \n        href=\"https://WikiPedia.org/wiki/Inverse_distance_weighting\" \n        target=\"_top\">Inverse Distance Weighting</a> (IDW) and function <a \n        href=\"pygeodesy.geohash-module.html#haversine_\" \n        class=\"link\">pygeodesy.haversine_</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.heights.HeightIDWhubeny-class.html\" class=\"summary-name\">HeightIDWhubeny</a><br />\n      Height interpolator using <a \n        href=\"https://WikiPedia.org/wiki/Inverse_distance_weighting\" \n        target=\"_top\">Inverse Distance Weighting</a> (IDW) and the function\n        <a href=\"pygeodesy.formy-module.html#flatLocal_\" \n        class=\"link\">pygeodesy.flatLocal_</a>/<a \n        href=\"pygeodesy.formy-module.html#flatLocal_\" \n        class=\"link\">pygeodesy.hubeny_</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.heights.HeightIDWkarney-class.html\" class=\"summary-name\">HeightIDWkarney</a><br />\n      Height interpolator using <a \n        href=\"https://WikiPedia.org/wiki/Inverse_distance_weighting\" \n        target=\"_top\">Inverse Distance Weighting</a> (IDW) and \n        <i>Karney</i>'s <a href=\"https://PyPI.org/project/geographiclib\" \n        target=\"_top\">geographiclib</a> method <a \n        href=\"https://GeographicLib.SourceForge.io/Python/doc/code.html#geographiclib.geodesic.Geodesic.Inverse\"\n        target=\"_top\">geodesic.Geodesic.Inverse</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.heights.HeightIDWthomas-class.html\" class=\"summary-name\">HeightIDWthomas</a><br />\n      Height interpolator using <a \n        href=\"https://WikiPedia.org/wiki/Inverse_distance_weighting\" \n        target=\"_top\">Inverse Distance Weighting</a> (IDW) and function <a \n        href=\"pygeodesy.formy-module.html#thomas_\" \n        class=\"link\">pygeodesy.thomas_</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.heights.HeightIDWvincentys-class.html\" class=\"summary-name\">HeightIDWvincentys</a><br />\n      Height interpolator using <a \n        href=\"https://WikiPedia.org/wiki/Inverse_distance_weighting\" \n        target=\"_top\">Inverse Distance Weighting</a> (IDW) and function <a \n        href=\"pygeodesy.geohash-module.html#vincentys_\" \n        class=\"link\">pygeodesy.vincentys_</a>.\n    </td>\n  </tr>\n</table>\n<!-- ==================== VARIABLES ==================== -->\n<a name=\"section-Variables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Variables</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"__all__\"></a><span class=\"summary-name\">__all__</span> = <code title=\"_ALL_LAZY.heights\">_ALL_LAZY.heights</code>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.heights.HeightCubic-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.heights.HeightCubic</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.heights-module.html\">Module&nbsp;heights</a> ::\n        Class&nbsp;HeightCubic\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.heights.HeightCubic-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class HeightCubic</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+            \n           |            \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+        \n               |        \n    <a href=\"pygeodesy.heights._HeightNamed-class.html\">_HeightNamed</a> --+    \n                   |    \n         <a href=\"pygeodesy.heights._HeightBase-class.html\">_HeightBase</a> --+\n                       |\n                      <strong class=\"uidshort\">HeightCubic</strong>\n</pre>\n\n<dl><dt>Known Subclasses:</dt>\n<dd>\n      <ul class=\"subclass-list\">\n<li><a href=\"pygeodesy.heights.HeightLinear-class.html\">HeightLinear</a></li>  </ul>\n</dd></dl>\n\n<hr />\n<p>Height interpolator based on <code>SciPy</code> <a \n  href=\"https://docs.SciPy.org/doc/scipy/reference/generated/scipy.interpolate.interp2d.html\"\n  target=\"_top\">interp2d</a> <code>kind='cubic'</code> or <a \n  href=\"https://docs.SciPy.org/doc/scipy/reference/generated/scipy.interpolate.interp2d.html\"\n  target=\"_top\">bisplrep/-ev</a> <code>kx=ky=3</code>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.heights.HeightCubic-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">knots</span>,\n        <span class=\"summary-sig-arg\">**name_wrap</span>)</span><br />\n      New <a href=\"pygeodesy.heights.HeightCubic-class.html\" \n      class=\"link\">HeightCubic</a> interpolator.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.heights.HeightCubic-class.html#__call__\" class=\"summary-sig-name\">__call__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">*llis</span>,\n        <span class=\"summary-sig-arg\">**wrap</span>)</span><br />\n      Interpolate the height for one or several locations.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.heights._HeightBase-class.html\">_HeightBase</a></code></b>:\n      <code><a href=\"pygeodesy.heights._HeightBase-class.html#height\">height</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.heights._HeightNamed-class.html\">_HeightNamed</a></code></b>:\n      <code><a href=\"pygeodesy.heights._HeightNamed-class.html#height_\">height_</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.heights._HeightBase-class.html\">_HeightBase</a></code></b>:\n      <code><a href=\"pygeodesy.heights._HeightBase-class.html#numpy\">numpy</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightBase-class.html#scipy\">scipy</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightBase-class.html#scipy_interpolate\">scipy_interpolate</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.heights._HeightNamed-class.html\">_HeightNamed</a></code></b>:\n      <code><a href=\"pygeodesy.heights._HeightNamed-class.html#datum\">datum</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightNamed-class.html#kmin\">kmin</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightNamed-class.html#wrap\">wrap</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">knots</span>,\n        <span class=\"sig-arg\">**name_wrap</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.heights.HeightCubic-class.html\" \n  class=\"link\">HeightCubic</a> interpolator.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>knots</code></strong> - The points with known height (<code>LatLon</code>s).</li>\n        <li><strong class=\"pname\"><code>name_wrap</code></strong> - Optional <code><b>name</b>=NN</code> for this height interpolator\n          (<code>str</code>) and keyword argument \n          <code>b{wrap}=False</code> to wrap or <i>normalize</i> all \n          <b><code>knots</code></b> and <b><code>llis</code></b> locations \n          iff <code>True</code> (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.heights.HeightError-class.html\">HeightError</a></strong></code> - Insufficient number of <b><code>knots</code></b> or invalid \n        <b><code>knot</code></b>.</li>\n        <li><code><strong class='fraise'>ImportError</strong></code> - Package <code>numpy</code> or <code>scipy</code> not found or not \n        installed.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.SciPyError-class.html\">SciPyError</a></strong></code> - A <code>scipy</code> issue.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.SciPyWarning-class.html\">SciPyWarning</a></strong></code> - A <code>scipy</code> warning as exception.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__call__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__call__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">*llis</span>,\n        <span class=\"sig-arg\">**wrap</span>)</span>\n    <br /><em class=\"fname\">(Call operator)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Interpolate the height for one or several locations.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>llis</code></strong> - One or more locations (each <code>LatLon</code>), all positional.</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code><b>wrap</b>=True</code> to wrap or <i>normalize</i> all \n          <b><code>llis</code></b> locations (<code>bool</code>), \n          overriding the <b><code>knots</code></b>' setting.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A single interpolated height (<code>float</code>) or a list or \n          tuple of interpolated heights (each <code>float</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.heights.HeightError-class.html\">HeightError</a></strong></code> - Insufficient number of <b><code>llis</code></b> or an invalid \n        <b><code>lli</code></b>.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.SciPyError-class.html\">SciPyError</a></strong></code> - A <code>scipy</code> issue.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.SciPyWarning-class.html\">SciPyWarning</a></strong></code> - A <code>scipy</code> warning as exception.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.heights._HeightNamed-class.html#__call__\">_HeightNamed.__call__</a>\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"pygeodesy.heights._HeightNamed-class.html#__call__\" \n        class=\"link\">Here</a> for further details.\n      </p>\n</div></td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.heights.HeightError-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.heights.HeightError</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.heights-module.html\">Module&nbsp;heights</a> ::\n        Class&nbsp;HeightError\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.heights.HeightError-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class HeightError</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n              object --+                        \n                       |                        \nexceptions.BaseException --+                    \n                           |                    \n        exceptions.Exception --+                \n                               |                \n        exceptions.StandardError --+            \n                                   |            \n               exceptions.ValueError --+        \n                                       |        \n                      errors._ValueError --+    \n                                           |    \n                          <a href=\"pygeodesy.errors.PointsError-class.html\">errors.PointsError</a> --+\n                                               |\n                                              <strong class=\"uidshort\">HeightError</strong>\n</pre>\n\n<dl><dt>Known Subclasses:</dt>\n<dd>\n      <ul class=\"subclass-list\">\n<li><a href=\"pygeodesy.geoids.GeoidError-class.html\">geoids.GeoidError</a></li>  </ul>\n</dd></dl>\n\n<hr />\n<p>Height interpolator <code>Height...</code> or interpolation issue.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>errors._ValueError</code></b>:\n      <code>__init__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.ValueError</code></b>:\n      <code>__new__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.BaseException</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getslice__</code>,\n      <code>__reduce__</code>,\n      <code>__repr__</code>,\n      <code>__setattr__</code>,\n      <code>__setstate__</code>,\n      <code>__str__</code>,\n      <code>__unicode__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__format__</code>,\n      <code>__hash__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.BaseException</code></b>:\n      <code>args</code>,\n      <code>message</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:19 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.heights.HeightIDWcosineLaw-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.heights.HeightIDWcosineLaw</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.heights-module.html\">Module&nbsp;heights</a> ::\n        Class&nbsp;HeightIDWcosineLaw\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.heights.HeightIDWcosineLaw-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class HeightIDWcosineLaw</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+            \n           |            \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+        \n               |        \n    <a href=\"pygeodesy.heights._HeightNamed-class.html\">_HeightNamed</a> --+    \n                   |    \n          <a href=\"pygeodesy.heights._HeightIDW-class.html\">_HeightIDW</a> --+\n                       |\n                      <strong class=\"uidshort\">HeightIDWcosineLaw</strong>\n</pre>\n\n<hr />\n<p>Height interpolator using <a \n  href=\"https://WikiPedia.org/wiki/Inverse_distance_weighting\" \n  target=\"_top\">Inverse Distance Weighting</a> (IDW) and function <a \n  href=\"pygeodesy.formy-module.html#cosineLaw\" \n  class=\"link\">pygeodesy.cosineLaw</a>.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Note:</strong>\n        See note at function <a \n        href=\"pygeodesy.geohash-module.html#vincentys_\" \n        class=\"link\">pygeodesy.vincentys_</a>.\n      </p>\n</div><!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.heights.HeightIDWcosineLaw-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">knots</span>,\n        <span class=\"summary-sig-arg\">beta</span>=<span class=\"summary-sig-default\">2</span>,\n        <span class=\"summary-sig-arg\">**name__corr_earth_datum_radius_wrap</span>)</span><br />\n      New <a href=\"pygeodesy.heights.HeightIDWcosineLaw-class.html\" \n      class=\"link\">HeightIDWcosineLaw</a> interpolator.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.heights.HeightIDWcosineLaw-class.html#__call__\" class=\"summary-sig-name\">__call__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">*llis</span>,\n        <span class=\"summary-sig-arg\">**wrap</span>)</span><br />\n      Interpolate the height for one or several locations.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.heights.HeightIDWcosineLaw-class.html#height\" class=\"summary-sig-name\">height</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lats</span>,\n        <span class=\"summary-sig-arg\">lons</span>,\n        <span class=\"summary-sig-arg\">**wrap</span>)</span><br />\n      Interpolate the height for one or several lat-/longitudes.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.heights._HeightNamed-class.html\">_HeightNamed</a></code></b>:\n      <code><a href=\"pygeodesy.heights._HeightNamed-class.html#height_\">height_</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.heights._HeightIDW-class.html\">_HeightIDW</a></code></b>:\n      <code><a href=\"pygeodesy.heights._HeightIDW-class.html#adjust\">adjust</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightIDW-class.html#beta\">beta</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightIDW-class.html#datum\">datum</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightIDW-class.html#hypot\">hypot</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightIDW-class.html#knots\">knots</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightIDW-class.html#kwds\">kwds</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightIDW-class.html#limit\">limit</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightIDW-class.html#radius\">radius</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightIDW-class.html#scaled\">scaled</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightIDW-class.html#wrap\">wrap</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.heights._HeightNamed-class.html\">_HeightNamed</a></code></b>:\n      <code><a href=\"pygeodesy.heights._HeightNamed-class.html#kmin\">kmin</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">knots</span>,\n        <span class=\"sig-arg\">beta</span>=<span class=\"sig-default\">2</span>,\n        <span class=\"sig-arg\">**name__corr_earth_datum_radius_wrap</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.heights.HeightIDWcosineLaw-class.html\" \n  class=\"link\">HeightIDWcosineLaw</a> interpolator.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>name__corr_earth_datum_radius_wrap</code></strong> - Optional <code><b>name</b>=NN</code> for this height interpolator\n          (<code>str</code>) and any keyword arguments for function <a \n          href=\"pygeodesy.formy-module.html#cosineLaw\" \n          class=\"link\">pygeodesy.cosineLaw</a>.</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.heights.HeightError-class.html\">HeightError</a></strong></code> - Insufficient number of <b><code>knots</code></b> or an invalid \n        <b><code>knot</code></b> or <b><code>beta</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"pygeodesy.heights._HeightIDW-class.html#__init__\" \n        class=\"link\">Here</a> for further details.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"__call__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__call__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">*llis</span>,\n        <span class=\"sig-arg\">**wrap</span>)</span>\n    <br /><em class=\"fname\">(Call operator)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Interpolate the height for one or several locations.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>llis</code></strong> - One or more locations (<code>LatLon</code>s), all positional.</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> all \n          <b><code>llis</code></b> locations (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A single interpolated height (<code>float</code>) or a list or \n          tuple of interpolated heights (<code>float</code>s).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.heights.HeightError-class.html\">HeightError</a></strong></code> - Insufficient number of <b><code>llis</code></b>, an invalid \n        <b><code>lli</code></b> or <a \n        href=\"pygeodesy.fmath-module.html#fidw\" \n        class=\"link\">pygeodesy.fidw</a> issue.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.heights._HeightNamed-class.html#__call__\">_HeightNamed.__call__</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"height\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">height</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lats</span>,\n        <span class=\"sig-arg\">lons</span>,\n        <span class=\"sig-arg\">**wrap</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Interpolate the height for one or several lat-/longitudes.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lats</code></strong> - Latitude or latitudes (each <code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lons</code></strong> - Longitude or longitudes (each <code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - Keyword argument <code><b>wrap</b>=False</code> \n          (<code>bool</code>).  Use <code><b>wrap</b>=True</code> to wrap \n          or <i>normalize</i> all <b><code>lats</code></b> and \n          <b><code>lons</code></b>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A single interpolated height (<code>float</code>) or a list of \n          interpolated heights (each <code>float</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.heights.HeightError-class.html\">HeightError</a></strong></code> - Insufficient or unequal number of <b><code>lats</code></b> and \n        <b><code>lons</code></b> or a <a \n        href=\"pygeodesy.fmath-module.html#fidw\" \n        class=\"link\">pygeodesy.fidw</a> issue.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.heights._HeightNamed-class.html#height\">_HeightNamed.height</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.heights.HeightIDWdistanceTo-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.heights.HeightIDWdistanceTo</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.heights-module.html\">Module&nbsp;heights</a> ::\n        Class&nbsp;HeightIDWdistanceTo\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.heights.HeightIDWdistanceTo-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class HeightIDWdistanceTo</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+            \n           |            \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+        \n               |        \n    <a href=\"pygeodesy.heights._HeightNamed-class.html\">_HeightNamed</a> --+    \n                   |    \n          <a href=\"pygeodesy.heights._HeightIDW-class.html\">_HeightIDW</a> --+\n                       |\n                      <strong class=\"uidshort\">HeightIDWdistanceTo</strong>\n</pre>\n\n<hr />\n<p>Height interpolator using <a \n  href=\"https://WikiPedia.org/wiki/Inverse_distance_weighting\" \n  target=\"_top\">Inverse Distance Weighting</a> (IDW) and the points' \n  <code>LatLon.distanceTo</code> method.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.heights.HeightIDWdistanceTo-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">knots</span>,\n        <span class=\"summary-sig-arg\">beta</span>=<span class=\"summary-sig-default\">2</span>,\n        <span class=\"summary-sig-arg\">**name__distanceTo_kwds</span>)</span><br />\n      New <a href=\"pygeodesy.heights.HeightIDWdistanceTo-class.html\" \n      class=\"link\">HeightIDWdistanceTo</a> interpolator.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.heights.HeightIDWdistanceTo-class.html#__call__\" class=\"summary-sig-name\">__call__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">*llis</span>,\n        <span class=\"summary-sig-arg\">**wrap</span>)</span><br />\n      Interpolate the height for one or several locations.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.heights.HeightIDWdistanceTo-class.html#height\" class=\"summary-sig-name\">height</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lats</span>,\n        <span class=\"summary-sig-arg\">lons</span>,\n        <span class=\"summary-sig-arg\">**wrap</span>)</span><br />\n      Interpolate the height for one or several lat-/longitudes.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.heights._HeightNamed-class.html\">_HeightNamed</a></code></b>:\n      <code><a href=\"pygeodesy.heights._HeightNamed-class.html#height_\">height_</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.heights._HeightIDW-class.html\">_HeightIDW</a></code></b>:\n      <code><a href=\"pygeodesy.heights._HeightIDW-class.html#adjust\">adjust</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightIDW-class.html#beta\">beta</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightIDW-class.html#datum\">datum</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightIDW-class.html#hypot\">hypot</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightIDW-class.html#knots\">knots</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightIDW-class.html#kwds\">kwds</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightIDW-class.html#limit\">limit</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightIDW-class.html#radius\">radius</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightIDW-class.html#scaled\">scaled</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightIDW-class.html#wrap\">wrap</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.heights._HeightNamed-class.html\">_HeightNamed</a></code></b>:\n      <code><a href=\"pygeodesy.heights._HeightNamed-class.html#kmin\">kmin</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">knots</span>,\n        <span class=\"sig-arg\">beta</span>=<span class=\"sig-default\">2</span>,\n        <span class=\"sig-arg\">**name__distanceTo_kwds</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.heights.HeightIDWdistanceTo-class.html\" \n  class=\"link\">HeightIDWdistanceTo</a> interpolator.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>name__distanceTo_kwds</code></strong> - Optional <code><b>name</b>=NN</code> for this height interpolator\n          (<code>str</code>) and keyword arguments for \n          <b><code>knots</code></b>' method <code>LatLon.distanceTo</code>.</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.heights.HeightError-class.html\">HeightError</a></strong></code> - Insufficient number of <b><code>knots</code></b> or an invalid \n        <b><code>knot</code></b> or <b><code>beta</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"pygeodesy.heights._HeightIDW-class.html#__init__\" \n        class=\"link\">Here</a> for further details.\n      </p>\n      <p><strong>Note:</strong>\n        All <b><code>points</code></b> <i>must</i> be instances of the same\n        ellipsoidal or spherical <code>LatLon</code> class, <i>not \n        checked</i>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"__call__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__call__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">*llis</span>,\n        <span class=\"sig-arg\">**wrap</span>)</span>\n    <br /><em class=\"fname\">(Call operator)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Interpolate the height for one or several locations.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>llis</code></strong> - One or more locations (<code>LatLon</code>s), all positional.</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> all \n          <b><code>llis</code></b> locations (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A single interpolated height (<code>float</code>) or a list or \n          tuple of interpolated heights (<code>float</code>s).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.heights.HeightError-class.html\">HeightError</a></strong></code> - Insufficient number of <b><code>llis</code></b>, an invalid \n        <b><code>lli</code></b> or <a \n        href=\"pygeodesy.fmath-module.html#fidw\" \n        class=\"link\">pygeodesy.fidw</a> issue.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.heights._HeightNamed-class.html#__call__\">_HeightNamed.__call__</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"height\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">height</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lats</span>,\n        <span class=\"sig-arg\">lons</span>,\n        <span class=\"sig-arg\">**wrap</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Interpolate the height for one or several lat-/longitudes.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lats</code></strong> - Latitude or latitudes (each <code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lons</code></strong> - Longitude or longitudes (each <code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - Keyword argument <code><b>wrap</b>=False</code> \n          (<code>bool</code>).  Use <code><b>wrap</b>=True</code> to wrap \n          or <i>normalize</i> all <b><code>lats</code></b> and \n          <b><code>lons</code></b>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A single interpolated height (<code>float</code>) or a list of \n          interpolated heights (each <code>float</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.heights.HeightError-class.html\">HeightError</a></strong></code> - Insufficient or unequal number of <b><code>lats</code></b> and \n        <b><code>lons</code></b> or a <a \n        href=\"pygeodesy.fmath-module.html#fidw\" \n        class=\"link\">pygeodesy.fidw</a> issue.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.heights._HeightNamed-class.html#height\">_HeightNamed.height</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.heights.HeightIDWequirectangular-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.heights.HeightIDWequirectangular</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.heights-module.html\">Module&nbsp;heights</a> ::\n        Class&nbsp;HeightIDWequirectangular\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.heights.HeightIDWequirectangular-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class HeightIDWequirectangular</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+            \n           |            \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+        \n               |        \n    <a href=\"pygeodesy.heights._HeightNamed-class.html\">_HeightNamed</a> --+    \n                   |    \n          <a href=\"pygeodesy.heights._HeightIDW-class.html\">_HeightIDW</a> --+\n                       |\n                      <strong class=\"uidshort\">HeightIDWequirectangular</strong>\n</pre>\n\n<hr />\n<p>Height interpolator using <a \n  href=\"https://WikiPedia.org/wiki/Inverse_distance_weighting\" \n  target=\"_top\">Inverse Distance Weighting</a> (IDW) and function <a \n  href=\"pygeodesy.geohash-module.html#equirectangular4\" \n  class=\"link\">pygeodesy.equirectangular4</a>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.heights.HeightIDWequirectangular-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">knots</span>,\n        <span class=\"summary-sig-arg\">beta</span>=<span class=\"summary-sig-default\">2</span>,\n        <span class=\"summary-sig-arg\">**name__adjust_limit_wrap</span>)</span><br />\n      New <a href=\"pygeodesy.heights.HeightIDWequirectangular-class.html\" \n      class=\"link\">HeightIDWequirectangular</a> interpolator.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.heights.HeightIDWequirectangular-class.html#__call__\" class=\"summary-sig-name\">__call__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">*llis</span>,\n        <span class=\"summary-sig-arg\">**wrap</span>)</span><br />\n      Interpolate the height for one or several locations.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.heights.HeightIDWequirectangular-class.html#height\" class=\"summary-sig-name\">height</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lats</span>,\n        <span class=\"summary-sig-arg\">lons</span>,\n        <span class=\"summary-sig-arg\">**wrap</span>)</span><br />\n      Interpolate the height for one or several lat-/longitudes.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.heights._HeightNamed-class.html\">_HeightNamed</a></code></b>:\n      <code><a href=\"pygeodesy.heights._HeightNamed-class.html#height_\">height_</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.heights._HeightIDW-class.html\">_HeightIDW</a></code></b>:\n      <code><a href=\"pygeodesy.heights._HeightIDW-class.html#adjust\">adjust</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightIDW-class.html#beta\">beta</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightIDW-class.html#datum\">datum</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightIDW-class.html#hypot\">hypot</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightIDW-class.html#knots\">knots</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightIDW-class.html#kwds\">kwds</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightIDW-class.html#limit\">limit</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightIDW-class.html#radius\">radius</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightIDW-class.html#scaled\">scaled</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightIDW-class.html#wrap\">wrap</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.heights._HeightNamed-class.html\">_HeightNamed</a></code></b>:\n      <code><a href=\"pygeodesy.heights._HeightNamed-class.html#kmin\">kmin</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">knots</span>,\n        <span class=\"sig-arg\">beta</span>=<span class=\"sig-default\">2</span>,\n        <span class=\"sig-arg\">**name__adjust_limit_wrap</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.heights.HeightIDWequirectangular-class.html\" \n  class=\"link\">HeightIDWequirectangular</a> interpolator.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>name__adjust_limit_wrap</code></strong> - Optional <code><b>name</b>=NN</code> for this height interpolator\n          (<code>str</code>) and keyword arguments for function <a \n          href=\"pygeodesy.geohash-module.html#equirectangular4\" \n          class=\"link\">pygeodesy.equirectangular4</a>.</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.heights.HeightError-class.html\">HeightError</a></strong></code> - Insufficient number of <b><code>knots</code></b> or an invalid \n        <b><code>knot</code></b> or <b><code>beta</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"pygeodesy.heights._HeightIDW-class.html#__init__\" \n        class=\"link\">Here</a> for further details.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"__call__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__call__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">*llis</span>,\n        <span class=\"sig-arg\">**wrap</span>)</span>\n    <br /><em class=\"fname\">(Call operator)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Interpolate the height for one or several locations.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>llis</code></strong> - One or more locations (<code>LatLon</code>s), all positional.</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> all \n          <b><code>llis</code></b> locations (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A single interpolated height (<code>float</code>) or a list or \n          tuple of interpolated heights (<code>float</code>s).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.heights.HeightError-class.html\">HeightError</a></strong></code> - Insufficient number of <b><code>llis</code></b>, an invalid \n        <b><code>lli</code></b> or <a \n        href=\"pygeodesy.fmath-module.html#fidw\" \n        class=\"link\">pygeodesy.fidw</a> issue.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.heights._HeightNamed-class.html#__call__\">_HeightNamed.__call__</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"height\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">height</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lats</span>,\n        <span class=\"sig-arg\">lons</span>,\n        <span class=\"sig-arg\">**wrap</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Interpolate the height for one or several lat-/longitudes.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lats</code></strong> - Latitude or latitudes (each <code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lons</code></strong> - Longitude or longitudes (each <code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - Keyword argument <code><b>wrap</b>=False</code> \n          (<code>bool</code>).  Use <code><b>wrap</b>=True</code> to wrap \n          or <i>normalize</i> all <b><code>lats</code></b> and \n          <b><code>lons</code></b>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A single interpolated height (<code>float</code>) or a list of \n          interpolated heights (each <code>float</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.heights.HeightError-class.html\">HeightError</a></strong></code> - Insufficient or unequal number of <b><code>lats</code></b> and \n        <b><code>lons</code></b> or a <a \n        href=\"pygeodesy.fmath-module.html#fidw\" \n        class=\"link\">pygeodesy.fidw</a> issue.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.heights._HeightNamed-class.html#height\">_HeightNamed.height</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.heights.HeightIDWeuclidean-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.heights.HeightIDWeuclidean</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.heights-module.html\">Module&nbsp;heights</a> ::\n        Class&nbsp;HeightIDWeuclidean\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.heights.HeightIDWeuclidean-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class HeightIDWeuclidean</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+            \n           |            \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+        \n               |        \n    <a href=\"pygeodesy.heights._HeightNamed-class.html\">_HeightNamed</a> --+    \n                   |    \n          <a href=\"pygeodesy.heights._HeightIDW-class.html\">_HeightIDW</a> --+\n                       |\n                      <strong class=\"uidshort\">HeightIDWeuclidean</strong>\n</pre>\n\n<hr />\n<p>Height interpolator using <a \n  href=\"https://WikiPedia.org/wiki/Inverse_distance_weighting\" \n  target=\"_top\">Inverse Distance Weighting</a> (IDW) and function <a \n  href=\"pygeodesy.geohash-module.html#euclidean_\" \n  class=\"link\">pygeodesy.euclidean_</a>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.heights.HeightIDWeuclidean-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">knots</span>,\n        <span class=\"summary-sig-arg\">beta</span>=<span class=\"summary-sig-default\">2</span>,\n        <span class=\"summary-sig-arg\">**name__adjust_radius_wrap</span>)</span><br />\n      New <a href=\"pygeodesy.heights.HeightIDWeuclidean-class.html\" \n      class=\"link\">HeightIDWeuclidean</a> interpolator.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.heights.HeightIDWeuclidean-class.html#__call__\" class=\"summary-sig-name\">__call__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">*llis</span>,\n        <span class=\"summary-sig-arg\">**wrap</span>)</span><br />\n      Interpolate the height for one or several locations.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.heights.HeightIDWeuclidean-class.html#height\" class=\"summary-sig-name\">height</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lats</span>,\n        <span class=\"summary-sig-arg\">lons</span>,\n        <span class=\"summary-sig-arg\">**wrap</span>)</span><br />\n      Interpolate the height for one or several lat-/longitudes.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.heights._HeightNamed-class.html\">_HeightNamed</a></code></b>:\n      <code><a href=\"pygeodesy.heights._HeightNamed-class.html#height_\">height_</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.heights._HeightIDW-class.html\">_HeightIDW</a></code></b>:\n      <code><a href=\"pygeodesy.heights._HeightIDW-class.html#adjust\">adjust</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightIDW-class.html#beta\">beta</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightIDW-class.html#datum\">datum</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightIDW-class.html#hypot\">hypot</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightIDW-class.html#knots\">knots</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightIDW-class.html#kwds\">kwds</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightIDW-class.html#limit\">limit</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightIDW-class.html#radius\">radius</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightIDW-class.html#scaled\">scaled</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightIDW-class.html#wrap\">wrap</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.heights._HeightNamed-class.html\">_HeightNamed</a></code></b>:\n      <code><a href=\"pygeodesy.heights._HeightNamed-class.html#kmin\">kmin</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">knots</span>,\n        <span class=\"sig-arg\">beta</span>=<span class=\"sig-default\">2</span>,\n        <span class=\"sig-arg\">**name__adjust_radius_wrap</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.heights.HeightIDWeuclidean-class.html\" \n  class=\"link\">HeightIDWeuclidean</a> interpolator.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>name__adjust_radius_wrap</code></strong> - Optional <code><b>name</b>=NN</code> for this height interpolator\n          (<code>str</code>) and keyword arguments for function function <a\n          href=\"pygeodesy.formy-module.html#euclidean\" \n          class=\"link\">pygeodesy.euclidean</a>.</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.heights.HeightError-class.html\">HeightError</a></strong></code> - Insufficient number of <b><code>knots</code></b> or an invalid \n        <b><code>knot</code></b> or <b><code>beta</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"pygeodesy.heights._HeightIDW-class.html#__init__\" \n        class=\"link\">Here</a> for further details.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"__call__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__call__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">*llis</span>,\n        <span class=\"sig-arg\">**wrap</span>)</span>\n    <br /><em class=\"fname\">(Call operator)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Interpolate the height for one or several locations.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>llis</code></strong> - One or more locations (<code>LatLon</code>s), all positional.</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> all \n          <b><code>llis</code></b> locations (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A single interpolated height (<code>float</code>) or a list or \n          tuple of interpolated heights (<code>float</code>s).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.heights.HeightError-class.html\">HeightError</a></strong></code> - Insufficient number of <b><code>llis</code></b>, an invalid \n        <b><code>lli</code></b> or <a \n        href=\"pygeodesy.fmath-module.html#fidw\" \n        class=\"link\">pygeodesy.fidw</a> issue.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.heights._HeightNamed-class.html#__call__\">_HeightNamed.__call__</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"height\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">height</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lats</span>,\n        <span class=\"sig-arg\">lons</span>,\n        <span class=\"sig-arg\">**wrap</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Interpolate the height for one or several lat-/longitudes.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lats</code></strong> - Latitude or latitudes (each <code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lons</code></strong> - Longitude or longitudes (each <code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - Keyword argument <code><b>wrap</b>=False</code> \n          (<code>bool</code>).  Use <code><b>wrap</b>=True</code> to wrap \n          or <i>normalize</i> all <b><code>lats</code></b> and \n          <b><code>lons</code></b>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A single interpolated height (<code>float</code>) or a list of \n          interpolated heights (each <code>float</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.heights.HeightError-class.html\">HeightError</a></strong></code> - Insufficient or unequal number of <b><code>lats</code></b> and \n        <b><code>lons</code></b> or a <a \n        href=\"pygeodesy.fmath-module.html#fidw\" \n        class=\"link\">pygeodesy.fidw</a> issue.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.heights._HeightNamed-class.html#height\">_HeightNamed.height</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.heights.HeightIDWexact-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.heights.HeightIDWexact</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.heights-module.html\">Module&nbsp;heights</a> ::\n        Class&nbsp;HeightIDWexact\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.heights.HeightIDWexact-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class HeightIDWexact</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+            \n           |            \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+        \n               |        \n    <a href=\"pygeodesy.heights._HeightNamed-class.html\">_HeightNamed</a> --+    \n                   |    \n          <a href=\"pygeodesy.heights._HeightIDW-class.html\">_HeightIDW</a> --+\n                       |\n                      <strong class=\"uidshort\">HeightIDWexact</strong>\n</pre>\n\n<hr />\n<p>Height interpolator using <a \n  href=\"https://WikiPedia.org/wiki/Inverse_distance_weighting\" \n  target=\"_top\">Inverse Distance Weighting</a> (IDW) and method <a \n  href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html#Inverse\" \n  class=\"link\">GeodesicExact.Inverse</a>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.heights.HeightIDWexact-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">knots</span>,\n        <span class=\"summary-sig-arg\">beta</span>=<span class=\"summary-sig-default\">2</span>,\n        <span class=\"summary-sig-arg\">datum</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**name__wrap</span>)</span><br />\n      New <a href=\"pygeodesy.heights.HeightIDWexact-class.html\" \n      class=\"link\">HeightIDWexact</a> interpolator.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.heights.HeightIDWexact-class.html#__call__\" class=\"summary-sig-name\">__call__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">*llis</span>,\n        <span class=\"summary-sig-arg\">**wrap</span>)</span><br />\n      Interpolate the height for one or several locations.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.heights.HeightIDWexact-class.html#height\" class=\"summary-sig-name\">height</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lats</span>,\n        <span class=\"summary-sig-arg\">lons</span>,\n        <span class=\"summary-sig-arg\">**wrap</span>)</span><br />\n      Interpolate the height for one or several lat-/longitudes.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.heights._HeightNamed-class.html\">_HeightNamed</a></code></b>:\n      <code><a href=\"pygeodesy.heights._HeightNamed-class.html#height_\">height_</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.heights._HeightIDW-class.html\">_HeightIDW</a></code></b>:\n      <code><a href=\"pygeodesy.heights._HeightIDW-class.html#adjust\">adjust</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightIDW-class.html#beta\">beta</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightIDW-class.html#datum\">datum</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightIDW-class.html#hypot\">hypot</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightIDW-class.html#knots\">knots</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightIDW-class.html#kwds\">kwds</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightIDW-class.html#limit\">limit</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightIDW-class.html#radius\">radius</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightIDW-class.html#scaled\">scaled</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightIDW-class.html#wrap\">wrap</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.heights._HeightNamed-class.html\">_HeightNamed</a></code></b>:\n      <code><a href=\"pygeodesy.heights._HeightNamed-class.html#kmin\">kmin</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">knots</span>,\n        <span class=\"sig-arg\">beta</span>=<span class=\"sig-default\">2</span>,\n        <span class=\"sig-arg\">datum</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**name__wrap</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.heights.HeightIDWexact-class.html\" \n  class=\"link\">HeightIDWexact</a> interpolator.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>datum</code></strong> - Datum to override the default <code>Datums.WGS84</code> and first\n          <b><code>knots</code></b>' datum (<a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>, \n          <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a> or <a \n          href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>name__wrap</code></strong> - Optional <code><b>name</b>=NN</code> for this height interpolator\n          (<code>str</code>) and a keyword argument for method \n          <code>Inverse1</code> of class <a \n          href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html\" \n          class=\"link\">geodesicx.GeodesicExact</a>.</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>datum</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"pygeodesy.heights._HeightIDW-class.html#__init__\" \n        class=\"link\">Here</a> for further details.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"__call__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__call__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">*llis</span>,\n        <span class=\"sig-arg\">**wrap</span>)</span>\n    <br /><em class=\"fname\">(Call operator)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Interpolate the height for one or several locations.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>llis</code></strong> - One or more locations (<code>LatLon</code>s), all positional.</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> all \n          <b><code>llis</code></b> locations (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A single interpolated height (<code>float</code>) or a list or \n          tuple of interpolated heights (<code>float</code>s).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.heights.HeightError-class.html\">HeightError</a></strong></code> - Insufficient number of <b><code>llis</code></b>, an invalid \n        <b><code>lli</code></b> or <a \n        href=\"pygeodesy.fmath-module.html#fidw\" \n        class=\"link\">pygeodesy.fidw</a> issue.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.heights._HeightNamed-class.html#__call__\">_HeightNamed.__call__</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"height\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">height</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lats</span>,\n        <span class=\"sig-arg\">lons</span>,\n        <span class=\"sig-arg\">**wrap</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Interpolate the height for one or several lat-/longitudes.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lats</code></strong> - Latitude or latitudes (each <code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lons</code></strong> - Longitude or longitudes (each <code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - Keyword argument <code><b>wrap</b>=False</code> \n          (<code>bool</code>).  Use <code><b>wrap</b>=True</code> to wrap \n          or <i>normalize</i> all <b><code>lats</code></b> and \n          <b><code>lons</code></b>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A single interpolated height (<code>float</code>) or a list of \n          interpolated heights (each <code>float</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.heights.HeightError-class.html\">HeightError</a></strong></code> - Insufficient or unequal number of <b><code>lats</code></b> and \n        <b><code>lons</code></b> or a <a \n        href=\"pygeodesy.fmath-module.html#fidw\" \n        class=\"link\">pygeodesy.fidw</a> issue.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.heights._HeightNamed-class.html#height\">_HeightNamed.height</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.heights.HeightIDWflatLocal-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.heights.HeightIDWflatLocal</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.heights-module.html\">Module&nbsp;heights</a> ::\n        Class&nbsp;HeightIDWflatLocal\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.heights.HeightIDWflatLocal-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class HeightIDWflatLocal</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+            \n           |            \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+        \n               |        \n    <a href=\"pygeodesy.heights._HeightNamed-class.html\">_HeightNamed</a> --+    \n                   |    \n          <a href=\"pygeodesy.heights._HeightIDW-class.html\">_HeightIDW</a> --+\n                       |\n                      <strong class=\"uidshort\">HeightIDWflatLocal</strong>\n</pre>\n\n<dl><dt>Known Subclasses:</dt>\n<dd>\n      <ul class=\"subclass-list\">\n<li><a href=\"pygeodesy.heights.HeightIDWhubeny-class.html\">HeightIDWhubeny</a></li>  </ul>\n</dd></dl>\n\n<hr />\n<p>Height interpolator using <a \n  href=\"https://WikiPedia.org/wiki/Inverse_distance_weighting\" \n  target=\"_top\">Inverse Distance Weighting</a> (IDW) and the function <a \n  href=\"pygeodesy.formy-module.html#flatLocal_\" \n  class=\"link\">pygeodesy.flatLocal_</a>/<a \n  href=\"pygeodesy.formy-module.html#flatLocal_\" \n  class=\"link\">pygeodesy.hubeny_</a>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.heights.HeightIDWflatLocal-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">knots</span>,\n        <span class=\"summary-sig-arg\">beta</span>=<span class=\"summary-sig-default\">2</span>,\n        <span class=\"summary-sig-arg\">**name__datum_hypot_scaled_wrap</span>)</span><br />\n      New <a href=\"pygeodesy.heights.HeightIDWflatLocal-class.html\" \n      class=\"link\">HeightIDWflatLocal</a>/<a \n      href=\"pygeodesy.heights.HeightIDWhubeny-class.html\" \n      class=\"link\">HeightIDWhubeny</a> interpolator.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.heights.HeightIDWflatLocal-class.html#__call__\" class=\"summary-sig-name\">__call__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">*llis</span>,\n        <span class=\"summary-sig-arg\">**wrap</span>)</span><br />\n      Interpolate the height for one or several locations.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.heights.HeightIDWflatLocal-class.html#height\" class=\"summary-sig-name\">height</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lats</span>,\n        <span class=\"summary-sig-arg\">lons</span>,\n        <span class=\"summary-sig-arg\">**wrap</span>)</span><br />\n      Interpolate the height for one or several lat-/longitudes.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.heights._HeightNamed-class.html\">_HeightNamed</a></code></b>:\n      <code><a href=\"pygeodesy.heights._HeightNamed-class.html#height_\">height_</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.heights._HeightIDW-class.html\">_HeightIDW</a></code></b>:\n      <code><a href=\"pygeodesy.heights._HeightIDW-class.html#adjust\">adjust</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightIDW-class.html#beta\">beta</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightIDW-class.html#datum\">datum</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightIDW-class.html#hypot\">hypot</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightIDW-class.html#knots\">knots</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightIDW-class.html#kwds\">kwds</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightIDW-class.html#limit\">limit</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightIDW-class.html#radius\">radius</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightIDW-class.html#scaled\">scaled</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightIDW-class.html#wrap\">wrap</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.heights._HeightNamed-class.html\">_HeightNamed</a></code></b>:\n      <code><a href=\"pygeodesy.heights._HeightNamed-class.html#kmin\">kmin</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">knots</span>,\n        <span class=\"sig-arg\">beta</span>=<span class=\"sig-default\">2</span>,\n        <span class=\"sig-arg\">**name__datum_hypot_scaled_wrap</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.heights.HeightIDWflatLocal-class.html\" \n  class=\"link\">HeightIDWflatLocal</a>/<a \n  href=\"pygeodesy.heights.HeightIDWhubeny-class.html\" \n  class=\"link\">HeightIDWhubeny</a> interpolator.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>name__datum_hypot_scaled_wrap</code></strong> - Optional <code><b>name</b>=NN</code> for this height interpolator\n          (<code>str</code>) and any keyword arguments for <a \n          href=\"pygeodesy.formy-module.html#flatLocal\" \n          class=\"link\">pygeodesy.flatLocal</a>.</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.heights.HeightError-class.html\">HeightError</a></strong></code> - Insufficient number of <b><code>knots</code></b> or an invalid \n        <b><code>knot</code></b> or <b><code>beta</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"pygeodesy.heights._HeightIDW-class.html#__init__\" \n        class=\"link\">HeightIDW</a> for further details.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"__call__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__call__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">*llis</span>,\n        <span class=\"sig-arg\">**wrap</span>)</span>\n    <br /><em class=\"fname\">(Call operator)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Interpolate the height for one or several locations.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>llis</code></strong> - One or more locations (<code>LatLon</code>s), all positional.</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> all \n          <b><code>llis</code></b> locations (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A single interpolated height (<code>float</code>) or a list or \n          tuple of interpolated heights (<code>float</code>s).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.heights.HeightError-class.html\">HeightError</a></strong></code> - Insufficient number of <b><code>llis</code></b>, an invalid \n        <b><code>lli</code></b> or <a \n        href=\"pygeodesy.fmath-module.html#fidw\" \n        class=\"link\">pygeodesy.fidw</a> issue.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.heights._HeightNamed-class.html#__call__\">_HeightNamed.__call__</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"height\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">height</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lats</span>,\n        <span class=\"sig-arg\">lons</span>,\n        <span class=\"sig-arg\">**wrap</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Interpolate the height for one or several lat-/longitudes.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lats</code></strong> - Latitude or latitudes (each <code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lons</code></strong> - Longitude or longitudes (each <code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - Keyword argument <code><b>wrap</b>=False</code> \n          (<code>bool</code>).  Use <code><b>wrap</b>=True</code> to wrap \n          or <i>normalize</i> all <b><code>lats</code></b> and \n          <b><code>lons</code></b>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A single interpolated height (<code>float</code>) or a list of \n          interpolated heights (each <code>float</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.heights.HeightError-class.html\">HeightError</a></strong></code> - Insufficient or unequal number of <b><code>lats</code></b> and \n        <b><code>lons</code></b> or a <a \n        href=\"pygeodesy.fmath-module.html#fidw\" \n        class=\"link\">pygeodesy.fidw</a> issue.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.heights._HeightNamed-class.html#height\">_HeightNamed.height</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.heights.HeightIDWflatPolar-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.heights.HeightIDWflatPolar</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.heights-module.html\">Module&nbsp;heights</a> ::\n        Class&nbsp;HeightIDWflatPolar\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.heights.HeightIDWflatPolar-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class HeightIDWflatPolar</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+            \n           |            \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+        \n               |        \n    <a href=\"pygeodesy.heights._HeightNamed-class.html\">_HeightNamed</a> --+    \n                   |    \n          <a href=\"pygeodesy.heights._HeightIDW-class.html\">_HeightIDW</a> --+\n                       |\n                      <strong class=\"uidshort\">HeightIDWflatPolar</strong>\n</pre>\n\n<hr />\n<p>Height interpolator using <a \n  href=\"https://WikiPedia.org/wiki/Inverse_distance_weighting\" \n  target=\"_top\">Inverse Distance Weighting</a> (IDW) and function <a \n  href=\"pygeodesy.formy-module.html#flatPolar_\" \n  class=\"link\">pygeodesy.flatPolar_</a>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.heights.HeightIDWflatPolar-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">knots</span>,\n        <span class=\"summary-sig-arg\">beta</span>=<span class=\"summary-sig-default\">2</span>,\n        <span class=\"summary-sig-arg\">**name__radius_wrap</span>)</span><br />\n      New <a href=\"pygeodesy.heights.HeightIDWflatPolar-class.html\" \n      class=\"link\">HeightIDWflatPolar</a> interpolator.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.heights.HeightIDWflatPolar-class.html#__call__\" class=\"summary-sig-name\">__call__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">*llis</span>,\n        <span class=\"summary-sig-arg\">**wrap</span>)</span><br />\n      Interpolate the height for one or several locations.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.heights.HeightIDWflatPolar-class.html#height\" class=\"summary-sig-name\">height</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lats</span>,\n        <span class=\"summary-sig-arg\">lons</span>,\n        <span class=\"summary-sig-arg\">**wrap</span>)</span><br />\n      Interpolate the height for one or several lat-/longitudes.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.heights._HeightNamed-class.html\">_HeightNamed</a></code></b>:\n      <code><a href=\"pygeodesy.heights._HeightNamed-class.html#height_\">height_</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.heights._HeightIDW-class.html\">_HeightIDW</a></code></b>:\n      <code><a href=\"pygeodesy.heights._HeightIDW-class.html#adjust\">adjust</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightIDW-class.html#beta\">beta</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightIDW-class.html#datum\">datum</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightIDW-class.html#hypot\">hypot</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightIDW-class.html#knots\">knots</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightIDW-class.html#kwds\">kwds</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightIDW-class.html#limit\">limit</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightIDW-class.html#radius\">radius</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightIDW-class.html#scaled\">scaled</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightIDW-class.html#wrap\">wrap</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.heights._HeightNamed-class.html\">_HeightNamed</a></code></b>:\n      <code><a href=\"pygeodesy.heights._HeightNamed-class.html#kmin\">kmin</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">knots</span>,\n        <span class=\"sig-arg\">beta</span>=<span class=\"sig-default\">2</span>,\n        <span class=\"sig-arg\">**name__radius_wrap</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.heights.HeightIDWflatPolar-class.html\" \n  class=\"link\">HeightIDWflatPolar</a> interpolator.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>name__radius_wrap</code></strong> - Optional <code><b>name</b>=NN</code> for this height interpolator\n          (<code>str</code>) and any keyword arguments for function <a \n          href=\"pygeodesy.formy-module.html#flatPolar\" \n          class=\"link\">pygeodesy.flatPolar</a>.</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.heights.HeightError-class.html\">HeightError</a></strong></code> - Insufficient number of <b><code>knots</code></b> or an invalid \n        <b><code>knot</code></b> or <b><code>beta</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"pygeodesy.heights._HeightIDW-class.html#__init__\" \n        class=\"link\">Here</a> for further details.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"__call__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__call__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">*llis</span>,\n        <span class=\"sig-arg\">**wrap</span>)</span>\n    <br /><em class=\"fname\">(Call operator)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Interpolate the height for one or several locations.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>llis</code></strong> - One or more locations (<code>LatLon</code>s), all positional.</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> all \n          <b><code>llis</code></b> locations (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A single interpolated height (<code>float</code>) or a list or \n          tuple of interpolated heights (<code>float</code>s).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.heights.HeightError-class.html\">HeightError</a></strong></code> - Insufficient number of <b><code>llis</code></b>, an invalid \n        <b><code>lli</code></b> or <a \n        href=\"pygeodesy.fmath-module.html#fidw\" \n        class=\"link\">pygeodesy.fidw</a> issue.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.heights._HeightNamed-class.html#__call__\">_HeightNamed.__call__</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"height\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">height</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lats</span>,\n        <span class=\"sig-arg\">lons</span>,\n        <span class=\"sig-arg\">**wrap</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Interpolate the height for one or several lat-/longitudes.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lats</code></strong> - Latitude or latitudes (each <code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lons</code></strong> - Longitude or longitudes (each <code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - Keyword argument <code><b>wrap</b>=False</code> \n          (<code>bool</code>).  Use <code><b>wrap</b>=True</code> to wrap \n          or <i>normalize</i> all <b><code>lats</code></b> and \n          <b><code>lons</code></b>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A single interpolated height (<code>float</code>) or a list of \n          interpolated heights (each <code>float</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.heights.HeightError-class.html\">HeightError</a></strong></code> - Insufficient or unequal number of <b><code>lats</code></b> and \n        <b><code>lons</code></b> or a <a \n        href=\"pygeodesy.fmath-module.html#fidw\" \n        class=\"link\">pygeodesy.fidw</a> issue.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.heights._HeightNamed-class.html#height\">_HeightNamed.height</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.heights.HeightIDWhaversine-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.heights.HeightIDWhaversine</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.heights-module.html\">Module&nbsp;heights</a> ::\n        Class&nbsp;HeightIDWhaversine\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.heights.HeightIDWhaversine-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class HeightIDWhaversine</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+            \n           |            \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+        \n               |        \n    <a href=\"pygeodesy.heights._HeightNamed-class.html\">_HeightNamed</a> --+    \n                   |    \n          <a href=\"pygeodesy.heights._HeightIDW-class.html\">_HeightIDW</a> --+\n                       |\n                      <strong class=\"uidshort\">HeightIDWhaversine</strong>\n</pre>\n\n<hr />\n<p>Height interpolator using <a \n  href=\"https://WikiPedia.org/wiki/Inverse_distance_weighting\" \n  target=\"_top\">Inverse Distance Weighting</a> (IDW) and function <a \n  href=\"pygeodesy.geohash-module.html#haversine_\" \n  class=\"link\">pygeodesy.haversine_</a>.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Note:</strong>\n        See note at function <a \n        href=\"pygeodesy.geohash-module.html#vincentys_\" \n        class=\"link\">pygeodesy.vincentys_</a>.\n      </p>\n</div><!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.heights.HeightIDWhaversine-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">knots</span>,\n        <span class=\"summary-sig-arg\">beta</span>=<span class=\"summary-sig-default\">2</span>,\n        <span class=\"summary-sig-arg\">**name__radius_wrap</span>)</span><br />\n      New <a href=\"pygeodesy.heights.HeightIDWhaversine-class.html\" \n      class=\"link\">HeightIDWhaversine</a> interpolator.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.heights.HeightIDWhaversine-class.html#__call__\" class=\"summary-sig-name\">__call__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">*llis</span>,\n        <span class=\"summary-sig-arg\">**wrap</span>)</span><br />\n      Interpolate the height for one or several locations.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.heights.HeightIDWhaversine-class.html#height\" class=\"summary-sig-name\">height</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lats</span>,\n        <span class=\"summary-sig-arg\">lons</span>,\n        <span class=\"summary-sig-arg\">**wrap</span>)</span><br />\n      Interpolate the height for one or several lat-/longitudes.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.heights._HeightNamed-class.html\">_HeightNamed</a></code></b>:\n      <code><a href=\"pygeodesy.heights._HeightNamed-class.html#height_\">height_</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.heights._HeightIDW-class.html\">_HeightIDW</a></code></b>:\n      <code><a href=\"pygeodesy.heights._HeightIDW-class.html#adjust\">adjust</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightIDW-class.html#beta\">beta</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightIDW-class.html#datum\">datum</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightIDW-class.html#hypot\">hypot</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightIDW-class.html#knots\">knots</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightIDW-class.html#kwds\">kwds</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightIDW-class.html#limit\">limit</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightIDW-class.html#radius\">radius</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightIDW-class.html#scaled\">scaled</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightIDW-class.html#wrap\">wrap</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.heights._HeightNamed-class.html\">_HeightNamed</a></code></b>:\n      <code><a href=\"pygeodesy.heights._HeightNamed-class.html#kmin\">kmin</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">knots</span>,\n        <span class=\"sig-arg\">beta</span>=<span class=\"sig-default\">2</span>,\n        <span class=\"sig-arg\">**name__radius_wrap</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.heights.HeightIDWhaversine-class.html\" \n  class=\"link\">HeightIDWhaversine</a> interpolator.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>name__radius_wrap</code></strong> - Optional <code><b>name</b>=NN</code> for this height interpolator\n          (<code>str</code>) and any keyword arguments for function <a \n          href=\"pygeodesy.formy-module.html#haversine\" \n          class=\"link\">pygeodesy.haversine</a>.</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.heights.HeightError-class.html\">HeightError</a></strong></code> - Insufficient number of <b><code>knots</code></b> or an invalid \n        <b><code>knot</code></b> or <b><code>beta</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"pygeodesy.heights._HeightIDW-class.html#__init__\" \n        class=\"link\">Here</a> for further details.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"__call__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__call__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">*llis</span>,\n        <span class=\"sig-arg\">**wrap</span>)</span>\n    <br /><em class=\"fname\">(Call operator)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Interpolate the height for one or several locations.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>llis</code></strong> - One or more locations (<code>LatLon</code>s), all positional.</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> all \n          <b><code>llis</code></b> locations (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A single interpolated height (<code>float</code>) or a list or \n          tuple of interpolated heights (<code>float</code>s).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.heights.HeightError-class.html\">HeightError</a></strong></code> - Insufficient number of <b><code>llis</code></b>, an invalid \n        <b><code>lli</code></b> or <a \n        href=\"pygeodesy.fmath-module.html#fidw\" \n        class=\"link\">pygeodesy.fidw</a> issue.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.heights._HeightNamed-class.html#__call__\">_HeightNamed.__call__</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"height\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">height</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lats</span>,\n        <span class=\"sig-arg\">lons</span>,\n        <span class=\"sig-arg\">**wrap</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Interpolate the height for one or several lat-/longitudes.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lats</code></strong> - Latitude or latitudes (each <code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lons</code></strong> - Longitude or longitudes (each <code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - Keyword argument <code><b>wrap</b>=False</code> \n          (<code>bool</code>).  Use <code><b>wrap</b>=True</code> to wrap \n          or <i>normalize</i> all <b><code>lats</code></b> and \n          <b><code>lons</code></b>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A single interpolated height (<code>float</code>) or a list of \n          interpolated heights (each <code>float</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.heights.HeightError-class.html\">HeightError</a></strong></code> - Insufficient or unequal number of <b><code>lats</code></b> and \n        <b><code>lons</code></b> or a <a \n        href=\"pygeodesy.fmath-module.html#fidw\" \n        class=\"link\">pygeodesy.fidw</a> issue.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.heights._HeightNamed-class.html#height\">_HeightNamed.height</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.heights.HeightIDWhubeny-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.heights.HeightIDWhubeny</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.heights-module.html\">Module&nbsp;heights</a> ::\n        Class&nbsp;HeightIDWhubeny\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.heights.HeightIDWhubeny-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class HeightIDWhubeny</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+                \n           |                \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+            \n               |            \n    <a href=\"pygeodesy.heights._HeightNamed-class.html\">_HeightNamed</a> --+        \n                   |        \n          <a href=\"pygeodesy.heights._HeightIDW-class.html\">_HeightIDW</a> --+    \n                       |    \n      <a href=\"pygeodesy.heights.HeightIDWflatLocal-class.html\">HeightIDWflatLocal</a> --+\n                           |\n                          <strong class=\"uidshort\">HeightIDWhubeny</strong>\n</pre>\n\n<hr />\n<p>Height interpolator using <a \n  href=\"https://WikiPedia.org/wiki/Inverse_distance_weighting\" \n  target=\"_top\">Inverse Distance Weighting</a> (IDW) and the function <a \n  href=\"pygeodesy.formy-module.html#flatLocal_\" \n  class=\"link\">pygeodesy.flatLocal_</a>/<a \n  href=\"pygeodesy.formy-module.html#flatLocal_\" \n  class=\"link\">pygeodesy.hubeny_</a>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.heights.HeightIDWhubeny-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">knots</span>,\n        <span class=\"summary-sig-arg\">beta</span>=<span class=\"summary-sig-default\">2</span>,\n        <span class=\"summary-sig-arg\">**name__datum_hypot_scaled_wrap</span>)</span><br />\n      New <a href=\"pygeodesy.heights.HeightIDWflatLocal-class.html\" \n      class=\"link\">HeightIDWflatLocal</a>/<a \n      href=\"pygeodesy.heights.HeightIDWhubeny-class.html\" \n      class=\"link\">HeightIDWhubeny</a> interpolator.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.heights.HeightIDWhubeny-class.html#__call__\" class=\"summary-sig-name\">__call__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">*llis</span>,\n        <span class=\"summary-sig-arg\">**wrap</span>)</span><br />\n      Interpolate the height for one or several locations.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.heights.HeightIDWhubeny-class.html#height\" class=\"summary-sig-name\">height</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lats</span>,\n        <span class=\"summary-sig-arg\">lons</span>,\n        <span class=\"summary-sig-arg\">**wrap</span>)</span><br />\n      Interpolate the height for one or several lat-/longitudes.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.heights._HeightNamed-class.html\">_HeightNamed</a></code></b>:\n      <code><a href=\"pygeodesy.heights._HeightNamed-class.html#height_\">height_</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS VARIABLES ==================== -->\n<a name=\"section-ClassVariables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Class Variables</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"__doc__\"></a><span class=\"summary-name\">__doc__</span> = <code title=\"HeightIDWflatLocal.__doc__\">HeightIDWflatLocal.__doc__</code>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.heights._HeightIDW-class.html\">_HeightIDW</a></code></b>:\n      <code><a href=\"pygeodesy.heights._HeightIDW-class.html#adjust\">adjust</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightIDW-class.html#beta\">beta</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightIDW-class.html#datum\">datum</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightIDW-class.html#hypot\">hypot</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightIDW-class.html#knots\">knots</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightIDW-class.html#kwds\">kwds</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightIDW-class.html#limit\">limit</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightIDW-class.html#radius\">radius</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightIDW-class.html#scaled\">scaled</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightIDW-class.html#wrap\">wrap</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.heights._HeightNamed-class.html\">_HeightNamed</a></code></b>:\n      <code><a href=\"pygeodesy.heights._HeightNamed-class.html#kmin\">kmin</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">knots</span>,\n        <span class=\"sig-arg\">beta</span>=<span class=\"sig-default\">2</span>,\n        <span class=\"sig-arg\">**name__datum_hypot_scaled_wrap</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.heights.HeightIDWflatLocal-class.html\" \n  class=\"link\">HeightIDWflatLocal</a>/<a \n  href=\"pygeodesy.heights.HeightIDWhubeny-class.html\" \n  class=\"link\">HeightIDWhubeny</a> interpolator.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>name__datum_hypot_scaled_wrap</code></strong> - Optional <code><b>name</b>=NN</code> for this height interpolator\n          (<code>str</code>) and any keyword arguments for <a \n          href=\"pygeodesy.formy-module.html#flatLocal\" \n          class=\"link\">pygeodesy.flatLocal</a>.</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.heights.HeightError-class.html\">HeightError</a></strong></code> - Insufficient number of <b><code>knots</code></b> or an invalid \n        <b><code>knot</code></b> or <b><code>beta</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"pygeodesy.heights._HeightIDW-class.html#__init__\" \n        class=\"link\">HeightIDW</a> for further details.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"__call__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__call__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">*llis</span>,\n        <span class=\"sig-arg\">**wrap</span>)</span>\n    <br /><em class=\"fname\">(Call operator)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Interpolate the height for one or several locations.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>llis</code></strong> - One or more locations (<code>LatLon</code>s), all positional.</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> all \n          <b><code>llis</code></b> locations (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A single interpolated height (<code>float</code>) or a list or \n          tuple of interpolated heights (<code>float</code>s).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.heights.HeightError-class.html\">HeightError</a></strong></code> - Insufficient number of <b><code>llis</code></b>, an invalid \n        <b><code>lli</code></b> or <a \n        href=\"pygeodesy.fmath-module.html#fidw\" \n        class=\"link\">pygeodesy.fidw</a> issue.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.heights._HeightNamed-class.html#__call__\">_HeightNamed.__call__</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"height\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">height</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lats</span>,\n        <span class=\"sig-arg\">lons</span>,\n        <span class=\"sig-arg\">**wrap</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Interpolate the height for one or several lat-/longitudes.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lats</code></strong> - Latitude or latitudes (each <code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lons</code></strong> - Longitude or longitudes (each <code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - Keyword argument <code><b>wrap</b>=False</code> \n          (<code>bool</code>).  Use <code><b>wrap</b>=True</code> to wrap \n          or <i>normalize</i> all <b><code>lats</code></b> and \n          <b><code>lons</code></b>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A single interpolated height (<code>float</code>) or a list of \n          interpolated heights (each <code>float</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.heights.HeightError-class.html\">HeightError</a></strong></code> - Insufficient or unequal number of <b><code>lats</code></b> and \n        <b><code>lons</code></b> or a <a \n        href=\"pygeodesy.fmath-module.html#fidw\" \n        class=\"link\">pygeodesy.fidw</a> issue.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.heights._HeightNamed-class.html#height\">_HeightNamed.height</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.heights.HeightIDWkarney-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.heights.HeightIDWkarney</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.heights-module.html\">Module&nbsp;heights</a> ::\n        Class&nbsp;HeightIDWkarney\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.heights.HeightIDWkarney-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class HeightIDWkarney</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+            \n           |            \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+        \n               |        \n    <a href=\"pygeodesy.heights._HeightNamed-class.html\">_HeightNamed</a> --+    \n                   |    \n          <a href=\"pygeodesy.heights._HeightIDW-class.html\">_HeightIDW</a> --+\n                       |\n                      <strong class=\"uidshort\">HeightIDWkarney</strong>\n</pre>\n\n<hr />\n<p>Height interpolator using <a \n  href=\"https://WikiPedia.org/wiki/Inverse_distance_weighting\" \n  target=\"_top\">Inverse Distance Weighting</a> (IDW) and <i>Karney</i>'s <a\n  href=\"https://PyPI.org/project/geographiclib\" \n  target=\"_top\">geographiclib</a> method <a \n  href=\"https://GeographicLib.SourceForge.io/Python/doc/code.html#geographiclib.geodesic.Geodesic.Inverse\"\n  target=\"_top\">geodesic.Geodesic.Inverse</a>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.heights.HeightIDWkarney-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">knots</span>,\n        <span class=\"summary-sig-arg\">beta</span>=<span class=\"summary-sig-default\">2</span>,\n        <span class=\"summary-sig-arg\">datum</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**name__wrap</span>)</span><br />\n      New <a href=\"pygeodesy.heights.HeightIDWkarney-class.html\" \n      class=\"link\">HeightIDWkarney</a> interpolator.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.heights.HeightIDWkarney-class.html#__call__\" class=\"summary-sig-name\">__call__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">*llis</span>,\n        <span class=\"summary-sig-arg\">**wrap</span>)</span><br />\n      Interpolate the height for one or several locations.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.heights.HeightIDWkarney-class.html#height\" class=\"summary-sig-name\">height</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lats</span>,\n        <span class=\"summary-sig-arg\">lons</span>,\n        <span class=\"summary-sig-arg\">**wrap</span>)</span><br />\n      Interpolate the height for one or several lat-/longitudes.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.heights._HeightNamed-class.html\">_HeightNamed</a></code></b>:\n      <code><a href=\"pygeodesy.heights._HeightNamed-class.html#height_\">height_</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.heights._HeightIDW-class.html\">_HeightIDW</a></code></b>:\n      <code><a href=\"pygeodesy.heights._HeightIDW-class.html#adjust\">adjust</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightIDW-class.html#beta\">beta</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightIDW-class.html#datum\">datum</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightIDW-class.html#hypot\">hypot</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightIDW-class.html#knots\">knots</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightIDW-class.html#kwds\">kwds</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightIDW-class.html#limit\">limit</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightIDW-class.html#radius\">radius</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightIDW-class.html#scaled\">scaled</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightIDW-class.html#wrap\">wrap</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.heights._HeightNamed-class.html\">_HeightNamed</a></code></b>:\n      <code><a href=\"pygeodesy.heights._HeightNamed-class.html#kmin\">kmin</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">knots</span>,\n        <span class=\"sig-arg\">beta</span>=<span class=\"sig-default\">2</span>,\n        <span class=\"sig-arg\">datum</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**name__wrap</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.heights.HeightIDWkarney-class.html\" \n  class=\"link\">HeightIDWkarney</a> interpolator.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>datum</code></strong> - Datum to override the default <code>Datums.WGS84</code> and first\n          <b><code>knots</code></b>' datum (<a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>, \n          <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a> or <a \n          href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>name__wrap</code></strong> - Optional <code><b>name</b>=NN</code> for this height interpolator\n          (<code>str</code>) and a keyword argument for method \n          <code>Inverse1</code> of class <a \n          href=\"pygeodesy.geodesicw.Geodesic-class.html\" \n          class=\"link\">geodesicw.Geodesic</a>.</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ImportError</strong></code> - Package <a href=\"https://PyPI.org/project/geographiclib\" \n        target=\"_top\">geographiclib</a> missing.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>datum</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"pygeodesy.heights._HeightIDW-class.html#__init__\" \n        class=\"link\">Here</a> for further details.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"__call__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__call__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">*llis</span>,\n        <span class=\"sig-arg\">**wrap</span>)</span>\n    <br /><em class=\"fname\">(Call operator)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Interpolate the height for one or several locations.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>llis</code></strong> - One or more locations (<code>LatLon</code>s), all positional.</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> all \n          <b><code>llis</code></b> locations (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A single interpolated height (<code>float</code>) or a list or \n          tuple of interpolated heights (<code>float</code>s).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.heights.HeightError-class.html\">HeightError</a></strong></code> - Insufficient number of <b><code>llis</code></b>, an invalid \n        <b><code>lli</code></b> or <a \n        href=\"pygeodesy.fmath-module.html#fidw\" \n        class=\"link\">pygeodesy.fidw</a> issue.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.heights._HeightNamed-class.html#__call__\">_HeightNamed.__call__</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"height\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">height</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lats</span>,\n        <span class=\"sig-arg\">lons</span>,\n        <span class=\"sig-arg\">**wrap</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Interpolate the height for one or several lat-/longitudes.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lats</code></strong> - Latitude or latitudes (each <code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lons</code></strong> - Longitude or longitudes (each <code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - Keyword argument <code><b>wrap</b>=False</code> \n          (<code>bool</code>).  Use <code><b>wrap</b>=True</code> to wrap \n          or <i>normalize</i> all <b><code>lats</code></b> and \n          <b><code>lons</code></b>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A single interpolated height (<code>float</code>) or a list of \n          interpolated heights (each <code>float</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.heights.HeightError-class.html\">HeightError</a></strong></code> - Insufficient or unequal number of <b><code>lats</code></b> and \n        <b><code>lons</code></b> or a <a \n        href=\"pygeodesy.fmath-module.html#fidw\" \n        class=\"link\">pygeodesy.fidw</a> issue.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.heights._HeightNamed-class.html#height\">_HeightNamed.height</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.heights.HeightIDWthomas-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.heights.HeightIDWthomas</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.heights-module.html\">Module&nbsp;heights</a> ::\n        Class&nbsp;HeightIDWthomas\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.heights.HeightIDWthomas-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class HeightIDWthomas</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+            \n           |            \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+        \n               |        \n    <a href=\"pygeodesy.heights._HeightNamed-class.html\">_HeightNamed</a> --+    \n                   |    \n          <a href=\"pygeodesy.heights._HeightIDW-class.html\">_HeightIDW</a> --+\n                       |\n                      <strong class=\"uidshort\">HeightIDWthomas</strong>\n</pre>\n\n<hr />\n<p>Height interpolator using <a \n  href=\"https://WikiPedia.org/wiki/Inverse_distance_weighting\" \n  target=\"_top\">Inverse Distance Weighting</a> (IDW) and function <a \n  href=\"pygeodesy.formy-module.html#thomas_\" \n  class=\"link\">pygeodesy.thomas_</a>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.heights.HeightIDWthomas-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">knots</span>,\n        <span class=\"summary-sig-arg\">beta</span>=<span class=\"summary-sig-default\">2</span>,\n        <span class=\"summary-sig-arg\">**name__datum_wrap</span>)</span><br />\n      New <a href=\"pygeodesy.heights.HeightIDWthomas-class.html\" \n      class=\"link\">HeightIDWthomas</a> interpolator.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.heights.HeightIDWthomas-class.html#__call__\" class=\"summary-sig-name\">__call__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">*llis</span>,\n        <span class=\"summary-sig-arg\">**wrap</span>)</span><br />\n      Interpolate the height for one or several locations.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.heights.HeightIDWthomas-class.html#height\" class=\"summary-sig-name\">height</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lats</span>,\n        <span class=\"summary-sig-arg\">lons</span>,\n        <span class=\"summary-sig-arg\">**wrap</span>)</span><br />\n      Interpolate the height for one or several lat-/longitudes.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.heights._HeightNamed-class.html\">_HeightNamed</a></code></b>:\n      <code><a href=\"pygeodesy.heights._HeightNamed-class.html#height_\">height_</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.heights._HeightIDW-class.html\">_HeightIDW</a></code></b>:\n      <code><a href=\"pygeodesy.heights._HeightIDW-class.html#adjust\">adjust</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightIDW-class.html#beta\">beta</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightIDW-class.html#datum\">datum</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightIDW-class.html#hypot\">hypot</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightIDW-class.html#knots\">knots</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightIDW-class.html#kwds\">kwds</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightIDW-class.html#limit\">limit</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightIDW-class.html#radius\">radius</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightIDW-class.html#scaled\">scaled</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightIDW-class.html#wrap\">wrap</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.heights._HeightNamed-class.html\">_HeightNamed</a></code></b>:\n      <code><a href=\"pygeodesy.heights._HeightNamed-class.html#kmin\">kmin</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">knots</span>,\n        <span class=\"sig-arg\">beta</span>=<span class=\"sig-default\">2</span>,\n        <span class=\"sig-arg\">**name__datum_wrap</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.heights.HeightIDWthomas-class.html\" \n  class=\"link\">HeightIDWthomas</a> interpolator.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>name__datum_wrap</code></strong> - Optional <code><b>name</b>=NN</code> for this height interpolator\n          (<code>str</code>) and any keyword arguments for function <a \n          href=\"pygeodesy.formy-module.html#thomas\" \n          class=\"link\">pygeodesy.thomas</a>.</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.heights.HeightError-class.html\">HeightError</a></strong></code> - Insufficient number of <b><code>knots</code></b> or an invalid \n        <b><code>knot</code></b> or <b><code>beta</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"pygeodesy.heights._HeightIDW-class.html#__init__\" \n        class=\"link\">Here</a> for further details.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"__call__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__call__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">*llis</span>,\n        <span class=\"sig-arg\">**wrap</span>)</span>\n    <br /><em class=\"fname\">(Call operator)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Interpolate the height for one or several locations.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>llis</code></strong> - One or more locations (<code>LatLon</code>s), all positional.</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> all \n          <b><code>llis</code></b> locations (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A single interpolated height (<code>float</code>) or a list or \n          tuple of interpolated heights (<code>float</code>s).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.heights.HeightError-class.html\">HeightError</a></strong></code> - Insufficient number of <b><code>llis</code></b>, an invalid \n        <b><code>lli</code></b> or <a \n        href=\"pygeodesy.fmath-module.html#fidw\" \n        class=\"link\">pygeodesy.fidw</a> issue.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.heights._HeightNamed-class.html#__call__\">_HeightNamed.__call__</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"height\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">height</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lats</span>,\n        <span class=\"sig-arg\">lons</span>,\n        <span class=\"sig-arg\">**wrap</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Interpolate the height for one or several lat-/longitudes.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lats</code></strong> - Latitude or latitudes (each <code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lons</code></strong> - Longitude or longitudes (each <code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - Keyword argument <code><b>wrap</b>=False</code> \n          (<code>bool</code>).  Use <code><b>wrap</b>=True</code> to wrap \n          or <i>normalize</i> all <b><code>lats</code></b> and \n          <b><code>lons</code></b>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A single interpolated height (<code>float</code>) or a list of \n          interpolated heights (each <code>float</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.heights.HeightError-class.html\">HeightError</a></strong></code> - Insufficient or unequal number of <b><code>lats</code></b> and \n        <b><code>lons</code></b> or a <a \n        href=\"pygeodesy.fmath-module.html#fidw\" \n        class=\"link\">pygeodesy.fidw</a> issue.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.heights._HeightNamed-class.html#height\">_HeightNamed.height</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.heights.HeightIDWvincentys-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.heights.HeightIDWvincentys</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.heights-module.html\">Module&nbsp;heights</a> ::\n        Class&nbsp;HeightIDWvincentys\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.heights.HeightIDWvincentys-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class HeightIDWvincentys</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+            \n           |            \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+        \n               |        \n    <a href=\"pygeodesy.heights._HeightNamed-class.html\">_HeightNamed</a> --+    \n                   |    \n          <a href=\"pygeodesy.heights._HeightIDW-class.html\">_HeightIDW</a> --+\n                       |\n                      <strong class=\"uidshort\">HeightIDWvincentys</strong>\n</pre>\n\n<hr />\n<p>Height interpolator using <a \n  href=\"https://WikiPedia.org/wiki/Inverse_distance_weighting\" \n  target=\"_top\">Inverse Distance Weighting</a> (IDW) and function <a \n  href=\"pygeodesy.geohash-module.html#vincentys_\" \n  class=\"link\">pygeodesy.vincentys_</a>.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Note:</strong>\n        See note at function <a \n        href=\"pygeodesy.geohash-module.html#vincentys_\" \n        class=\"link\">pygeodesy.vincentys_</a>.\n      </p>\n</div><!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.heights.HeightIDWvincentys-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">knots</span>,\n        <span class=\"summary-sig-arg\">beta</span>=<span class=\"summary-sig-default\">2</span>,\n        <span class=\"summary-sig-arg\">**name__radius_wrap</span>)</span><br />\n      New <a href=\"pygeodesy.heights.HeightIDWvincentys-class.html\" \n      class=\"link\">HeightIDWvincentys</a> interpolator.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.heights.HeightIDWvincentys-class.html#__call__\" class=\"summary-sig-name\">__call__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">*llis</span>,\n        <span class=\"summary-sig-arg\">**wrap</span>)</span><br />\n      Interpolate the height for one or several locations.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.heights.HeightIDWvincentys-class.html#height\" class=\"summary-sig-name\">height</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lats</span>,\n        <span class=\"summary-sig-arg\">lons</span>,\n        <span class=\"summary-sig-arg\">**wrap</span>)</span><br />\n      Interpolate the height for one or several lat-/longitudes.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.heights._HeightNamed-class.html\">_HeightNamed</a></code></b>:\n      <code><a href=\"pygeodesy.heights._HeightNamed-class.html#height_\">height_</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.heights._HeightIDW-class.html\">_HeightIDW</a></code></b>:\n      <code><a href=\"pygeodesy.heights._HeightIDW-class.html#adjust\">adjust</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightIDW-class.html#beta\">beta</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightIDW-class.html#datum\">datum</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightIDW-class.html#hypot\">hypot</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightIDW-class.html#knots\">knots</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightIDW-class.html#kwds\">kwds</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightIDW-class.html#limit\">limit</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightIDW-class.html#radius\">radius</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightIDW-class.html#scaled\">scaled</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightIDW-class.html#wrap\">wrap</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.heights._HeightNamed-class.html\">_HeightNamed</a></code></b>:\n      <code><a href=\"pygeodesy.heights._HeightNamed-class.html#kmin\">kmin</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">knots</span>,\n        <span class=\"sig-arg\">beta</span>=<span class=\"sig-default\">2</span>,\n        <span class=\"sig-arg\">**name__radius_wrap</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.heights.HeightIDWvincentys-class.html\" \n  class=\"link\">HeightIDWvincentys</a> interpolator.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>name__radius_wrap</code></strong> - Optional <code><b>name</b>=NN</code> for this height interpolator\n          (<code>str</code>) and any keyword arguments for function <a \n          href=\"pygeodesy.formy-module.html#vincentys\" \n          class=\"link\">pygeodesy.vincentys</a>.</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.heights.HeightError-class.html\">HeightError</a></strong></code> - Insufficient number of <b><code>knots</code></b> or an invalid \n        <b><code>knot</code></b> or <b><code>beta</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"pygeodesy.heights._HeightIDW-class.html#__init__\" \n        class=\"link\">Here</a> for further details.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"__call__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__call__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">*llis</span>,\n        <span class=\"sig-arg\">**wrap</span>)</span>\n    <br /><em class=\"fname\">(Call operator)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Interpolate the height for one or several locations.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>llis</code></strong> - One or more locations (<code>LatLon</code>s), all positional.</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> all \n          <b><code>llis</code></b> locations (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A single interpolated height (<code>float</code>) or a list or \n          tuple of interpolated heights (<code>float</code>s).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.heights.HeightError-class.html\">HeightError</a></strong></code> - Insufficient number of <b><code>llis</code></b>, an invalid \n        <b><code>lli</code></b> or <a \n        href=\"pygeodesy.fmath-module.html#fidw\" \n        class=\"link\">pygeodesy.fidw</a> issue.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.heights._HeightNamed-class.html#__call__\">_HeightNamed.__call__</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"height\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">height</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lats</span>,\n        <span class=\"sig-arg\">lons</span>,\n        <span class=\"sig-arg\">**wrap</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Interpolate the height for one or several lat-/longitudes.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lats</code></strong> - Latitude or latitudes (each <code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lons</code></strong> - Longitude or longitudes (each <code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - Keyword argument <code><b>wrap</b>=False</code> \n          (<code>bool</code>).  Use <code><b>wrap</b>=True</code> to wrap \n          or <i>normalize</i> all <b><code>lats</code></b> and \n          <b><code>lons</code></b>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A single interpolated height (<code>float</code>) or a list of \n          interpolated heights (each <code>float</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.heights.HeightError-class.html\">HeightError</a></strong></code> - Insufficient or unequal number of <b><code>lats</code></b> and \n        <b><code>lons</code></b> or a <a \n        href=\"pygeodesy.fmath-module.html#fidw\" \n        class=\"link\">pygeodesy.fidw</a> issue.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.heights._HeightNamed-class.html#height\">_HeightNamed.height</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.heights.HeightLSQBiSpline-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.heights.HeightLSQBiSpline</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.heights-module.html\">Module&nbsp;heights</a> ::\n        Class&nbsp;HeightLSQBiSpline\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.heights.HeightLSQBiSpline-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class HeightLSQBiSpline</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+            \n           |            \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+        \n               |        \n    <a href=\"pygeodesy.heights._HeightNamed-class.html\">_HeightNamed</a> --+    \n                   |    \n         <a href=\"pygeodesy.heights._HeightBase-class.html\">_HeightBase</a> --+\n                       |\n                      <strong class=\"uidshort\">HeightLSQBiSpline</strong>\n</pre>\n\n<hr />\n<p>Height interpolator using <code>SciPy</code> <a \n  href=\"https://docs.SciPy.org/doc/scipy/reference/generated/scipy.interpolate.LSQSphereBivariateSpline.html\"\n  target=\"_top\">LSQSphereBivariateSpline</a>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.heights.HeightLSQBiSpline-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">knots</span>,\n        <span class=\"summary-sig-arg\">weight</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">low</span>=<span class=\"summary-sig-default\">0.0001</span>,\n        <span class=\"summary-sig-arg\">**name_wrap</span>)</span><br />\n      New <a href=\"pygeodesy.heights.HeightLSQBiSpline-class.html\" \n      class=\"link\">HeightLSQBiSpline</a> interpolator.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.heights.HeightLSQBiSpline-class.html#__call__\" class=\"summary-sig-name\">__call__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">*llis</span>,\n        <span class=\"summary-sig-arg\">**wrap</span>)</span><br />\n      Interpolate the height for one or several locations.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.heights._HeightBase-class.html\">_HeightBase</a></code></b>:\n      <code><a href=\"pygeodesy.heights._HeightBase-class.html#height\">height</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.heights._HeightNamed-class.html\">_HeightNamed</a></code></b>:\n      <code><a href=\"pygeodesy.heights._HeightNamed-class.html#height_\">height_</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.heights._HeightBase-class.html\">_HeightBase</a></code></b>:\n      <code><a href=\"pygeodesy.heights._HeightBase-class.html#numpy\">numpy</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightBase-class.html#scipy\">scipy</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightBase-class.html#scipy_interpolate\">scipy_interpolate</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.heights._HeightNamed-class.html\">_HeightNamed</a></code></b>:\n      <code><a href=\"pygeodesy.heights._HeightNamed-class.html#datum\">datum</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightNamed-class.html#kmin\">kmin</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightNamed-class.html#wrap\">wrap</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">knots</span>,\n        <span class=\"sig-arg\">weight</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">low</span>=<span class=\"sig-default\">0.0001</span>,\n        <span class=\"sig-arg\">**name_wrap</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.heights.HeightLSQBiSpline-class.html\" \n  class=\"link\">HeightLSQBiSpline</a> interpolator.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>knots</code></strong> - The points with known height (<code>LatLon</code>s).</li>\n        <li><strong class=\"pname\"><code>weight</code></strong> - Optional weight or weights for each <b><code>knot</code></b> \n          (<code>scalar</code> or <code>scalar</code>s).</li>\n        <li><strong class=\"pname\"><code>low</code></strong> - Optional lower bound for <i>ordered knots</i> \n          (<code>radians</code>).</li>\n        <li><strong class=\"pname\"><code>name_wrap</code></strong> - Optional <code><b>name</b>=NN</code> for this height interpolator\n          (<code>str</code>) and keyword argument \n          <code>b{wrap}=False</code> to wrap or <i>normalize</i> all \n          <b><code>knots</code></b> and <b><code>llis</code></b> locations \n          iff <code>True</code> (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.heights.HeightError-class.html\">HeightError</a></strong></code> - Insufficient number of <b><code>knots</code></b> or an invalid \n        <b><code>knot</code></b>,  <b><code>weight</code></b> or \n        <b><code>eps</code></b>.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.LenError-class.html\">LenError</a></strong></code> - Unequal number of <b><code>knots</code></b> and \n        <b><code>weight</code></b>s.</li>\n        <li><code><strong class='fraise'>ImportError</strong></code> - Package <code>numpy</code> or <code>scipy</code> not found or not \n        installed.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.SciPyError-class.html\">SciPyError</a></strong></code> - A <code>scipy</code> issue.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.SciPyWarning-class.html\">SciPyWarning</a></strong></code> - A <code>scipy</code> warning as exception.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__call__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__call__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">*llis</span>,\n        <span class=\"sig-arg\">**wrap</span>)</span>\n    <br /><em class=\"fname\">(Call operator)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Interpolate the height for one or several locations.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>llis</code></strong> - One or more locations (each <code>LatLon</code>), all positional.</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code><b>wrap</b>=True</code> to wrap or <i>normalize</i> all \n          <b><code>llis</code></b> locations (<code>bool</code>), \n          overriding the <b><code>knots</code></b>' setting.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A single interpolated height (<code>float</code>) or a list or \n          tuple of interpolated heights (each <code>float</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.heights.HeightError-class.html\">HeightError</a></strong></code> - Insufficient number of <b><code>llis</code></b> or an invalid \n        <b><code>lli</code></b>.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.SciPyError-class.html\">SciPyError</a></strong></code> - A <code>scipy</code> issue.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.SciPyWarning-class.html\">SciPyWarning</a></strong></code> - A <code>scipy</code> warning as exception.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.heights._HeightNamed-class.html#__call__\">_HeightNamed.__call__</a>\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"pygeodesy.heights._HeightNamed-class.html#__call__\" \n        class=\"link\">Here</a> for further details.\n      </p>\n</div></td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.heights.HeightLinear-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.heights.HeightLinear</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.heights-module.html\">Module&nbsp;heights</a> ::\n        Class&nbsp;HeightLinear\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.heights.HeightLinear-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class HeightLinear</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+                \n           |                \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+            \n               |            \n    <a href=\"pygeodesy.heights._HeightNamed-class.html\">_HeightNamed</a> --+        \n                   |        \n         <a href=\"pygeodesy.heights._HeightBase-class.html\">_HeightBase</a> --+    \n                       |    \n             <a href=\"pygeodesy.heights.HeightCubic-class.html\">HeightCubic</a> --+\n                           |\n                          <strong class=\"uidshort\">HeightLinear</strong>\n</pre>\n\n<hr />\n<p>Height interpolator based on <code>SciPy</code> <a \n  href=\"https://docs.SciPy.org/doc/scipy/reference/generated/scipy.interpolate.interp2d.html\"\n  target=\"_top\">interp2d</a> <code>kind='linear'</code> or <a \n  href=\"https://docs.SciPy.org/doc/scipy/reference/generated/scipy.interpolate.interp2d.html\"\n  target=\"_top\">bisplrep/-ev</a> <code>kx=ky=1</code>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.heights.HeightLinear-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">knots</span>,\n        <span class=\"summary-sig-arg\">**name_wrap</span>)</span><br />\n      New <a href=\"pygeodesy.heights.HeightLinear-class.html\" \n      class=\"link\">HeightLinear</a> interpolator.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.heights.HeightLinear-class.html#__call__\" class=\"summary-sig-name\">__call__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">*llis</span>,\n        <span class=\"summary-sig-arg\">**wrap</span>)</span><br />\n      Interpolate the height for one or several locations.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.heights.HeightLinear-class.html#height\" class=\"summary-sig-name\">height</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lats</span>,\n        <span class=\"summary-sig-arg\">lons</span>,\n        <span class=\"summary-sig-arg\">**wrap</span>)</span><br />\n      Interpolate the height for one or several lat-/longitudes.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.heights._HeightNamed-class.html\">_HeightNamed</a></code></b>:\n      <code><a href=\"pygeodesy.heights._HeightNamed-class.html#height_\">height_</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.heights._HeightBase-class.html\">_HeightBase</a></code></b>:\n      <code><a href=\"pygeodesy.heights._HeightBase-class.html#numpy\">numpy</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightBase-class.html#scipy\">scipy</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightBase-class.html#scipy_interpolate\">scipy_interpolate</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.heights._HeightNamed-class.html\">_HeightNamed</a></code></b>:\n      <code><a href=\"pygeodesy.heights._HeightNamed-class.html#datum\">datum</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightNamed-class.html#kmin\">kmin</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightNamed-class.html#wrap\">wrap</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">knots</span>,\n        <span class=\"sig-arg\">**name_wrap</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.heights.HeightLinear-class.html\" \n  class=\"link\">HeightLinear</a> interpolator.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>knots</code></strong> - The points with known height (<code>LatLon</code>s).</li>\n        <li><strong class=\"pname\"><code>name_wrap</code></strong> - Optional <code><b>name</b>=NN</code> for this height interpolator\n          (<code>str</code>) and keyword argument \n          <code>b{wrap}=False</code> to wrap or <i>normalize</i> all \n          <b><code>knots</code></b> and <b><code>llis</code></b> locations \n          iff <code>True</code> (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.heights.HeightError-class.html\">HeightError</a></strong></code> - Insufficient number of <b><code>knots</code></b> or invalid \n        <b><code>knot</code></b>.</li>\n        <li><code><strong class='fraise'>ImportError</strong></code> - Package <code>numpy</code> or <code>scipy</code> not found or not \n        installed.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.SciPyError-class.html\">SciPyError</a></strong></code> - A <code>scipy</code> issue.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.SciPyWarning-class.html\">SciPyWarning</a></strong></code> - A <code>scipy</code> warning as exception.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"pygeodesy.heights.HeightCubic-class.html#__init__\" \n        class=\"link\">Here</a> for all details.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"__call__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__call__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">*llis</span>,\n        <span class=\"sig-arg\">**wrap</span>)</span>\n    <br /><em class=\"fname\">(Call operator)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Interpolate the height for one or several locations.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>llis</code></strong> - One or more locations (each <code>LatLon</code>), all positional.</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code><b>wrap</b>=True</code> to wrap or <i>normalize</i> all \n          <b><code>llis</code></b> locations (<code>bool</code>), \n          overriding the <b><code>knots</code></b>' setting.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A single interpolated height (<code>float</code>) or a list or \n          tuple of interpolated heights (each <code>float</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.heights.HeightError-class.html\">HeightError</a></strong></code> - Insufficient number of <b><code>llis</code></b> or an invalid \n        <b><code>lli</code></b>.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.SciPyError-class.html\">SciPyError</a></strong></code> - A <code>scipy</code> issue.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.SciPyWarning-class.html\">SciPyWarning</a></strong></code> - A <code>scipy</code> warning as exception.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.heights._HeightNamed-class.html#__call__\">_HeightNamed.__call__</a>\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"pygeodesy.heights._HeightNamed-class.html#__call__\" \n        class=\"link\">Here</a> for further details.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"height\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">height</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lats</span>,\n        <span class=\"sig-arg\">lons</span>,\n        <span class=\"sig-arg\">**wrap</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Interpolate the height for one or several lat-/longitudes.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lats</code></strong> - Latitude or latitudes (each <code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lons</code></strong> - Longitude or longitudes (each <code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - Kewyord argument <code><b>wrap</b>=False</code> \n          (<code>bool</code>).  Use <code>True</code> to wrap or \n          <i>normalize</i> all <b><code>lats</code></b> and \n          <b><code>lons</code></b> locationts, overriding the \n          <b><code>knots</code></b>' setting.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A single interpolated height (<code>float</code>) or a list of \n          interpolated heights (each <code>float</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.heights.HeightError-class.html\">HeightError</a></strong></code> - Insufficient or unequal number of <b><code>lats</code></b> and \n        <b><code>lons</code></b>.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.SciPyError-class.html\">SciPyError</a></strong></code> - A <code>scipy</code> issue.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.SciPyWarning-class.html\">SciPyWarning</a></strong></code> - A <code>scipy</code> warning as exception.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.heights._HeightNamed-class.html#height\">_HeightNamed.height</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.heights.HeightSmoothBiSpline-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.heights.HeightSmoothBiSpline</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.heights-module.html\">Module&nbsp;heights</a> ::\n        Class&nbsp;HeightSmoothBiSpline\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.heights.HeightSmoothBiSpline-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class HeightSmoothBiSpline</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+            \n           |            \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+        \n               |        \n    <a href=\"pygeodesy.heights._HeightNamed-class.html\">_HeightNamed</a> --+    \n                   |    \n         <a href=\"pygeodesy.heights._HeightBase-class.html\">_HeightBase</a> --+\n                       |\n                      <strong class=\"uidshort\">HeightSmoothBiSpline</strong>\n</pre>\n\n<hr />\n<p>Height interpolator using <code>SciPy</code> <a \n  href=\"https://docs.SciPy.org/doc/scipy/reference/generated/scipy.interpolate.SmoothSphereBivariateSpline.html\"\n  target=\"_top\">SmoothSphereBivariateSpline</a>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.heights.HeightSmoothBiSpline-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">knots</span>,\n        <span class=\"summary-sig-arg\">s</span>=<span class=\"summary-sig-default\">4</span>,\n        <span class=\"summary-sig-arg\">**name_wrap</span>)</span><br />\n      New <a href=\"pygeodesy.heights.HeightSmoothBiSpline-class.html\" \n      class=\"link\">HeightSmoothBiSpline</a> interpolator.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.heights.HeightSmoothBiSpline-class.html#__call__\" class=\"summary-sig-name\">__call__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">*llis</span>,\n        <span class=\"summary-sig-arg\">**wrap</span>)</span><br />\n      Interpolate the height for one or several locations.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.heights._HeightBase-class.html\">_HeightBase</a></code></b>:\n      <code><a href=\"pygeodesy.heights._HeightBase-class.html#height\">height</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.heights._HeightNamed-class.html\">_HeightNamed</a></code></b>:\n      <code><a href=\"pygeodesy.heights._HeightNamed-class.html#height_\">height_</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.heights._HeightBase-class.html\">_HeightBase</a></code></b>:\n      <code><a href=\"pygeodesy.heights._HeightBase-class.html#numpy\">numpy</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightBase-class.html#scipy\">scipy</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightBase-class.html#scipy_interpolate\">scipy_interpolate</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.heights._HeightNamed-class.html\">_HeightNamed</a></code></b>:\n      <code><a href=\"pygeodesy.heights._HeightNamed-class.html#datum\">datum</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightNamed-class.html#kmin\">kmin</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightNamed-class.html#wrap\">wrap</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">knots</span>,\n        <span class=\"sig-arg\">s</span>=<span class=\"sig-default\">4</span>,\n        <span class=\"sig-arg\">**name_wrap</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.heights.HeightSmoothBiSpline-class.html\" \n  class=\"link\">HeightSmoothBiSpline</a> interpolator.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>knots</code></strong> - The points with known height (<code>LatLon</code>s).</li>\n        <li><strong class=\"pname\"><code>s</code></strong> - The spline smoothing factor (<code>scalar</code>), default \n          <code>4</code>.</li>\n        <li><strong class=\"pname\"><code>name_wrap</code></strong> - Optional <code><b>name</b>=NN</code> for this height interpolator\n          (<code>str</code>) and keyword argument \n          <code>b{wrap}=False</code> to wrap or <i>normalize</i> all \n          <b><code>knots</code></b> and <b><code>llis</code></b> locations \n          iff <code>True</code> (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.heights.HeightError-class.html\">HeightError</a></strong></code> - Insufficient number of <b><code>knots</code></b> or an invalid \n        <b><code>knot</code></b> or <b><code>s</code></b>.</li>\n        <li><code><strong class='fraise'>ImportError</strong></code> - Package <code>numpy</code> or <code>scipy</code> not found or not \n        installed.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.SciPyError-class.html\">SciPyError</a></strong></code> - A <code>scipy</code> issue.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.SciPyWarning-class.html\">SciPyWarning</a></strong></code> - A <code>scipy</code> warning as exception.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__call__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__call__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">*llis</span>,\n        <span class=\"sig-arg\">**wrap</span>)</span>\n    <br /><em class=\"fname\">(Call operator)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Interpolate the height for one or several locations.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>llis</code></strong> - One or more locations (each <code>LatLon</code>), all positional.</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code><b>wrap</b>=True</code> to wrap or <i>normalize</i> all \n          <b><code>llis</code></b> locations (<code>bool</code>), \n          overriding the <b><code>knots</code></b>' setting.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A single interpolated height (<code>float</code>) or a list or \n          tuple of interpolated heights (each <code>float</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.heights.HeightError-class.html\">HeightError</a></strong></code> - Insufficient number of <b><code>llis</code></b> or an invalid \n        <b><code>lli</code></b>.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.SciPyError-class.html\">SciPyError</a></strong></code> - A <code>scipy</code> issue.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.SciPyWarning-class.html\">SciPyWarning</a></strong></code> - A <code>scipy</code> warning as exception.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.heights._HeightNamed-class.html#__call__\">_HeightNamed.__call__</a>\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"pygeodesy.heights._HeightNamed-class.html#__call__\" \n        class=\"link\">Here</a> for further details.\n      </p>\n</div></td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.heights._HeightBase-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.heights._HeightBase</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.heights-module.html\">Module&nbsp;heights</a> ::\n        Class&nbsp;_HeightBase\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.heights._HeightBase-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class _HeightBase</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+        \n           |        \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n               |    \n    <a href=\"pygeodesy.heights._HeightNamed-class.html\">_HeightNamed</a> --+\n                   |\n                  <strong class=\"uidshort\">_HeightBase</strong>\n</pre>\n\n<dl><dt>Known Subclasses:</dt>\n<dd>\n      <ul class=\"subclass-list\">\n<li><a href=\"pygeodesy.geoids._GeoidBase-class.html\">geoids._GeoidBase</a></li><li>, <a href=\"pygeodesy.heights.HeightCubic-class.html\">HeightCubic</a></li><li>, <a href=\"pygeodesy.heights.HeightLSQBiSpline-class.html\">HeightLSQBiSpline</a></li><li>, <a href=\"pygeodesy.heights.HeightSmoothBiSpline-class.html\">HeightSmoothBiSpline</a></li>  </ul>\n</dd></dl>\n\n<hr />\n<p>(INTERNAL) Interpolator base class.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.heights._HeightBase-class.html#height\" class=\"summary-sig-name\">height</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lats</span>,\n        <span class=\"summary-sig-arg\">lons</span>,\n        <span class=\"summary-sig-arg\">**wrap</span>)</span><br />\n      Interpolate the height for one or several lat-/longitudes.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.heights._HeightNamed-class.html\">_HeightNamed</a></code></b>:\n      <code><a href=\"pygeodesy.heights._HeightNamed-class.html#__call__\">__call__</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightNamed-class.html#height_\">height_</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__init__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.heights._HeightBase-class.html#numpy\" class=\"summary-name\">numpy</a><br />\n      Get the <code>numpy</code> module or <code>None</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.heights._HeightBase-class.html#scipy\" class=\"summary-name\">scipy</a><br />\n      Get the <code>scipy</code> module or <code>None</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.heights._HeightBase-class.html#scipy_interpolate\" class=\"summary-name\">scipy_interpolate</a><br />\n      Get the <code>scipy.interpolate</code> module or <code>None</code>.\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.heights._HeightNamed-class.html\">_HeightNamed</a></code></b>:\n      <code><a href=\"pygeodesy.heights._HeightNamed-class.html#datum\">datum</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightNamed-class.html#kmin\">kmin</a></code>,\n      <code><a href=\"pygeodesy.heights._HeightNamed-class.html#wrap\">wrap</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"height\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">height</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lats</span>,\n        <span class=\"sig-arg\">lons</span>,\n        <span class=\"sig-arg\">**wrap</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Interpolate the height for one or several lat-/longitudes.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lats</code></strong> - Latitude or latitudes (each <code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lons</code></strong> - Longitude or longitudes (each <code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - Kewyord argument <code><b>wrap</b>=False</code> \n          (<code>bool</code>).  Use <code>True</code> to wrap or \n          <i>normalize</i> all <b><code>lats</code></b> and \n          <b><code>lons</code></b> locationts, overriding the \n          <b><code>knots</code></b>' setting.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A single interpolated height (<code>float</code>) or a list of \n          interpolated heights (each <code>float</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.heights.HeightError-class.html\">HeightError</a></strong></code> - Insufficient or unequal number of <b><code>lats</code></b> and \n        <b><code>lons</code></b>.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.SciPyError-class.html\">SciPyError</a></strong></code> - A <code>scipy</code> issue.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.SciPyWarning-class.html\">SciPyWarning</a></strong></code> - A <code>scipy</code> warning as exception.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.heights._HeightNamed-class.html#height\">_HeightNamed.height</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"numpy\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">numpy</h3>\n  <p>Get the <code>numpy</code> module or <code>None</code>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fget(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Get the <code>property</code> value <i>once</i> and overwrite \n<code>self</code>, this <code>property</code> instance in the (super-)class\nof <code>self</code> where this property is define as a <a \nhref=\"pygeodesy.props.property_ROver-class.html\" \nclass=\"link\">property_ROver</a>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">*unused</span>)</span>\n        - Silently ignored, always.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"scipy\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">scipy</h3>\n  <p>Get the <code>scipy</code> module or <code>None</code>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fget(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Get the <code>property</code> value <i>once</i> and overwrite \n<code>self</code>, this <code>property</code> instance in the (super-)class\nof <code>self</code> where this property is define as a <a \nhref=\"pygeodesy.props.property_ROver-class.html\" \nclass=\"link\">property_ROver</a>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">*unused</span>)</span>\n        - Silently ignored, always.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"scipy_interpolate\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">scipy_interpolate</h3>\n  <p>Get the <code>scipy.interpolate</code> module or \n  <code>None</code>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fget(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Get the <code>property</code> value <i>once</i> and overwrite \n<code>self</code>, this <code>property</code> instance in the (super-)class\nof <code>self</code> where this property is define as a <a \nhref=\"pygeodesy.props.property_ROver-class.html\" \nclass=\"link\">property_ROver</a>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">*unused</span>)</span>\n        - Silently ignored, always.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.heights._HeightIDW-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.heights._HeightIDW</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.heights-module.html\">Module&nbsp;heights</a> ::\n        Class&nbsp;_HeightIDW\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.heights._HeightIDW-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class _HeightIDW</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+        \n           |        \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n               |    \n    <a href=\"pygeodesy.heights._HeightNamed-class.html\">_HeightNamed</a> --+\n                   |\n                  <strong class=\"uidshort\">_HeightIDW</strong>\n</pre>\n\n<dl><dt>Known Subclasses:</dt>\n<dd>\n      <ul class=\"subclass-list\">\n<li><a href=\"pygeodesy.heights.HeightIDWcosineLaw-class.html\">HeightIDWcosineLaw</a></li><li>, <a href=\"pygeodesy.heights.HeightIDWdistanceTo-class.html\">HeightIDWdistanceTo</a></li><li>, <a href=\"pygeodesy.heights.HeightIDWequirectangular-class.html\">HeightIDWequirectangular</a></li><li>, <a href=\"pygeodesy.heights.HeightIDWeuclidean-class.html\">HeightIDWeuclidean</a></li><li>, <a href=\"pygeodesy.heights.HeightIDWexact-class.html\">HeightIDWexact</a></li><li>, <a href=\"pygeodesy.heights.HeightIDWflatLocal-class.html\">HeightIDWflatLocal</a></li><li>, <a href=\"pygeodesy.heights.HeightIDWflatPolar-class.html\">HeightIDWflatPolar</a></li><li>, <a href=\"pygeodesy.heights.HeightIDWhaversine-class.html\">HeightIDWhaversine</a></li><li>, <a href=\"pygeodesy.heights.HeightIDWkarney-class.html\">HeightIDWkarney</a></li><li>, <a href=\"pygeodesy.heights.HeightIDWthomas-class.html\">HeightIDWthomas</a></li><li>, <a href=\"pygeodesy.heights.HeightIDWvincentys-class.html\">HeightIDWvincentys</a></li>  </ul>\n</dd></dl>\n\n<hr />\n<p>(INTERNAL) Base class for <a \n  href=\"https://WikiPedia.org/wiki/Inverse_distance_weighting\" \n  target=\"_top\">Inverse Distance Weighting</a> (IDW) height \n  interpolators.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a \n        href=\"https://www.Geo.FU-Berlin.DE/en/v/soga/Geodata-analysis/geostatistics/Inverse-Distance-Weighting/index.html\"\n        target=\"_top\">IDW</a>, <a \n        href=\"https://People.SC.FSU.edu/~jburkardt/c_src/shepard_interp_2d/shepard_interp_2d.html\"\n        target=\"_top\">SHEPARD_INTERP_2D</a> and other \n        <code>_HeightIDW*</code> classes.\n      </p>\n</div><!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.heights._HeightIDW-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">knots</span>,\n        <span class=\"summary-sig-arg\">beta</span>=<span class=\"summary-sig-default\">2</span>,\n        <span class=\"summary-sig-arg\">**name__kwds</span>)</span><br />\n      New <code>_HeightIDW*</code> interpolator.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.heights._HeightIDW-class.html#__call__\" class=\"summary-sig-name\">__call__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">*llis</span>,\n        <span class=\"summary-sig-arg\">**wrap</span>)</span><br />\n      Interpolate the height for one or several locations.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.heights._HeightIDW-class.html#height\" class=\"summary-sig-name\">height</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lats</span>,\n        <span class=\"summary-sig-arg\">lons</span>,\n        <span class=\"summary-sig-arg\">**wrap</span>)</span><br />\n      Interpolate the height for one or several lat-/longitudes.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.heights._HeightNamed-class.html\">_HeightNamed</a></code></b>:\n      <code><a href=\"pygeodesy.heights._HeightNamed-class.html#height_\">height_</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.heights._HeightIDW-class.html#adjust\" class=\"summary-name\">adjust</a><br />\n      Get the <code>adjust</code> setting (<code>bool</code>) or \n      <code>None</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.heights._HeightIDW-class.html#beta\" class=\"summary-name\">beta</a><br />\n      Get the inverse distance power (<code>int</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.heights._HeightIDW-class.html#datum\" class=\"summary-name\">datum</a><br />\n      Get the <code>datum</code> setting or the default (<a \n      href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.heights._HeightIDW-class.html#hypot\" class=\"summary-name\">hypot</a><br />\n      Get the <code>hypot</code> setting (<code>callable</code>) or \n      <code>None</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.heights._HeightIDW-class.html#knots\" class=\"summary-name\">knots</a><br />\n      Get the <b><code>knots</code></b> (<code>list</code> or \n      <code>tuple</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.heights._HeightIDW-class.html#kwds\" class=\"summary-name\">kwds</a><br />\n      Get the optional keyword arguments (<code>dict</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.heights._HeightIDW-class.html#limit\" class=\"summary-name\">limit</a><br />\n      Get the <code>limit</code> setting (<code>degrees</code>) or \n      <code>None</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.heights._HeightIDW-class.html#radius\" class=\"summary-name\">radius</a><br />\n      Get the <code>radius</code> setting (<code>bool</code>) or \n      <code>None</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.heights._HeightIDW-class.html#scaled\" class=\"summary-name\">scaled</a><br />\n      Get the <code>scaled</code> setting (<code>bool</code>) or \n      <code>None</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.heights._HeightIDW-class.html#wrap\" class=\"summary-name\">wrap</a><br />\n      Get the <code>wrap</code> setting or the default (<code>bool</code>) \n      or <code>None</code>.\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.heights._HeightNamed-class.html\">_HeightNamed</a></code></b>:\n      <code><a href=\"pygeodesy.heights._HeightNamed-class.html#kmin\">kmin</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">knots</span>,\n        <span class=\"sig-arg\">beta</span>=<span class=\"sig-default\">2</span>,\n        <span class=\"sig-arg\">**name__kwds</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <code>_HeightIDW*</code> interpolator.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>knots</code></strong> - The points with known height (<code>LatLon</code>s).</li>\n        <li><strong class=\"pname\"><code>beta</code></strong> - Inverse distance power (<code>int</code> 1, 2, or 3).</li>\n        <li><strong class=\"pname\"><code>name__kwds</code></strong> - Optional <code><b>name</b>=NN</code> for this height interpolator\n          (<code>str</code>) and any keyword arguments for the distance \n          function, retrievable with property <code>kwds</code>.</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.heights.HeightError-class.html\">HeightError</a></strong></code> - Insufficient number of <b><code>knots</code></b> or an invalid \n        <b><code>knot</code></b> or <b><code>beta</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__call__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__call__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">*llis</span>,\n        <span class=\"sig-arg\">**wrap</span>)</span>\n    <br /><em class=\"fname\">(Call operator)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Interpolate the height for one or several locations.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>llis</code></strong> - One or more locations (<code>LatLon</code>s), all positional.</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> all \n          <b><code>llis</code></b> locations (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A single interpolated height (<code>float</code>) or a list or \n          tuple of interpolated heights (<code>float</code>s).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.heights.HeightError-class.html\">HeightError</a></strong></code> - Insufficient number of <b><code>llis</code></b>, an invalid \n        <b><code>lli</code></b> or <a \n        href=\"pygeodesy.fmath-module.html#fidw\" \n        class=\"link\">pygeodesy.fidw</a> issue.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.heights._HeightNamed-class.html#__call__\">_HeightNamed.__call__</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"height\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">height</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lats</span>,\n        <span class=\"sig-arg\">lons</span>,\n        <span class=\"sig-arg\">**wrap</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Interpolate the height for one or several lat-/longitudes.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lats</code></strong> - Latitude or latitudes (each <code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lons</code></strong> - Longitude or longitudes (each <code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - Keyword argument <code><b>wrap</b>=False</code> \n          (<code>bool</code>).  Use <code><b>wrap</b>=True</code> to wrap \n          or <i>normalize</i> all <b><code>lats</code></b> and \n          <b><code>lons</code></b>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A single interpolated height (<code>float</code>) or a list of \n          interpolated heights (each <code>float</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.heights.HeightError-class.html\">HeightError</a></strong></code> - Insufficient or unequal number of <b><code>lats</code></b> and \n        <b><code>lons</code></b> or a <a \n        href=\"pygeodesy.fmath-module.html#fidw\" \n        class=\"link\">pygeodesy.fidw</a> issue.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.heights._HeightNamed-class.html#height\">_HeightNamed.height</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"adjust\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">adjust</h3>\n  <p>Get the <code>adjust</code> setting (<code>bool</code>) or \n  <code>None</code>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">adjust(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <code>adjust</code> setting (<code>bool</code>) or \n<code>None</code>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"beta\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">beta</h3>\n  <p>Get the inverse distance power (<code>int</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">beta(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the inverse distance power (<code>int</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">beta(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">beta</span>)</span>\n        - Set the inverse distance power (<code>int</code> 1, 2, or 3).\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"datum\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">datum</h3>\n  <p>Get the <code>datum</code> setting or the default (<a \n  href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">datum(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <code>datum</code> setting or the default (<a \nhref=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"hypot\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">hypot</h3>\n  <p>Get the <code>hypot</code> setting (<code>callable</code>) or \n  <code>None</code>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">hypot(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <code>hypot</code> setting (<code>callable</code>) or \n<code>None</code>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"knots\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">knots</h3>\n  <p>Get the <b><code>knots</code></b> (<code>list</code> or \n  <code>tuple</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">knots(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <b><code>knots</code></b> (<code>list</code> or \n<code>tuple</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"kwds\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">kwds</h3>\n  <p>Get the optional keyword arguments (<code>dict</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">kwds(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the optional keyword arguments (<code>dict</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"limit\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">limit</h3>\n  <p>Get the <code>limit</code> setting (<code>degrees</code>) or \n  <code>None</code>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">limit(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <code>limit</code> setting (<code>degrees</code>) or \n<code>None</code>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"radius\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">radius</h3>\n  <p>Get the <code>radius</code> setting (<code>bool</code>) or \n  <code>None</code>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">radius(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <code>radius</code> setting (<code>bool</code>) or \n<code>None</code>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"scaled\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">scaled</h3>\n  <p>Get the <code>scaled</code> setting (<code>bool</code>) or \n  <code>None</code>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">scaled(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <code>scaled</code> setting (<code>bool</code>) or \n<code>None</code>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"wrap\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">wrap</h3>\n  <p>Get the <code>wrap</code> setting or the default (<code>bool</code>) \n  or <code>None</code>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">wrap(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <code>wrap</code> setting or the default (<code>bool</code>) or \n<code>None</code>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.heights._HeightNamed-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.heights._HeightNamed</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.heights-module.html\">Module&nbsp;heights</a> ::\n        Class&nbsp;_HeightNamed\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.heights._HeightNamed-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class _HeightNamed</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+    \n           |    \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+\n               |\n              <strong class=\"uidshort\">_HeightNamed</strong>\n</pre>\n\n<dl><dt>Known Subclasses:</dt>\n<dd>\n      <ul class=\"subclass-list\">\n<li><a href=\"pygeodesy.heights._HeightBase-class.html\">_HeightBase</a></li><li>, <a href=\"pygeodesy.heights._HeightIDW-class.html\">_HeightIDW</a></li>  </ul>\n</dd></dl>\n\n<hr />\n<p>(INTERNAL) Interpolator base class.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.heights._HeightNamed-class.html#__call__\" class=\"summary-sig-name\">__call__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">*llis</span>,\n        <span class=\"summary-sig-arg\">**wrap</span>)</span><br />\n      Interpolate the height for one or several locations.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"height\"></a><span class=\"summary-sig-name\">height</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lats</span>,\n        <span class=\"summary-sig-arg\">lons</span>,\n        <span class=\"summary-sig-arg\">**wrap</span>)</span><br />\n      <i>Must be overloaded</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.heights._HeightNamed-class.html#height_\" class=\"summary-sig-name\">height_</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">*latlons</span>,\n        <span class=\"summary-sig-arg\">**wrap</span>)</span><br />\n      Interpolate the height for each <i class=\"math\">(latlons[i], \n      latlons[i+1]) pair for i in range(0, len(latlons), <b>2</b>)</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__init__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.heights._HeightNamed-class.html#datum\" class=\"summary-name\">datum</a><br />\n      Get the <code>datum</code> setting or the default (<a \n      href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.heights._HeightNamed-class.html#kmin\" class=\"summary-name\">kmin</a><br />\n      Get the minimum number of knots (<code>int</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.heights._HeightNamed-class.html#wrap\" class=\"summary-name\">wrap</a><br />\n      Get the <code>wrap</code> setting (<code>bool</code>) or \n      <code>None</code>.\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__call__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__call__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">*llis</span>,\n        <span class=\"sig-arg\">**wrap</span>)</span>\n    <br /><em class=\"fname\">(Call operator)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Interpolate the height for one or several locations.  <i>Must be \n  overloaded</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>llis</code></strong> - One or more locations (each <code>LatLon</code>), all positional.</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code><b>wrap</b>=True</code> to wrap or <i>normalize</i> all \n          <b><code>llis</code></b> locations (<code>bool</code>), \n          overriding the <b><code>knots</code></b>' setting.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A single interpolated height (<code>float</code>) or a list or \n          tuple of interpolated heights (each <code>float</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.heights.HeightError-class.html\">HeightError</a></strong></code> - Insufficient number of <b><code>llis</code></b> or an invalid \n        <b><code>lli</code></b>.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.SciPyError-class.html\">SciPyError</a></strong></code> - A <code>scipy</code> issue.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.SciPyWarning-class.html\">SciPyWarning</a></strong></code> - A <code>scipy</code> warning as exception.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"height_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">height_</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">*latlons</span>,\n        <span class=\"sig-arg\">**wrap</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Interpolate the height for each <i class=\"math\">(latlons[i], \n  latlons[i+1]) pair for i in range(0, len(latlons), <b>2</b>)</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>latlons</code></strong> - Alternating lat-/longitude pairs (each <code>degrees</code>), all\n          positional.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A tuple of interpolated heights (each <code>float</code>).</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <code>height</code> for further details.\n      </p>\n</div></td></tr></table>\n</div>\n<br />\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"datum\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">datum</h3>\n  <p>Get the <code>datum</code> setting or the default (<a \n  href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">datum(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <code>datum</code> setting or the default (<a \nhref=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"kmin\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">kmin</h3>\n  <p>Get the minimum number of knots (<code>int</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">kmin(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the minimum number of knots (<code>int</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"wrap\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">wrap</h3>\n  <p>Get the <code>wrap</code> setting (<code>bool</code>) or \n  <code>None</code>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">wrap(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <code>wrap</code> setting (<code>bool</code>) or <code>None</code>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.internals-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.internals</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        Module&nbsp;internals\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.internals-module.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== MODULE DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Module internals</h1><p class=\"nomargin-top\"></p>\n<p>Mostly INTERNAL functions, except <a \n  href=\"pygeodesy.internals-module.html#machine\" class=\"link\">machine</a>, \n  <a href=\"pygeodesy.internals-module.html#print_\" class=\"link\">print_</a> \n  and <a href=\"pygeodesy.internals-module.html#printf\" \n  class=\"link\">printf</a>.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Version:</strong>\n        26.01.13\n      </p>\n</div><!-- ==================== FUNCTIONS ==================== -->\n<a name=\"section-Functions\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Functions</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"typename\"></a><span class=\"summary-sig-name\">typename</span>(<span class=\"summary-sig-arg\">obj</span>,\n        <span class=\"summary-sig-arg\">*dflt</span>)</span><br />\n      Get the <code>obj.__name__</code>, the <code>dflt</code> or its outer\n      <code>type.__name__</code> or <code>NN</code> (<code>str</code>).</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.internals-module.html#machine\" class=\"summary-sig-name\">machine</a>()</span><br />\n      Return standard <code>platform.machine</code>, but distinguishing \n      Intel <i>native</i> from Intel <i>emulation</i> on Apple Silicon (on \n      macOS only).</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.internals-module.html#print_\" class=\"summary-sig-name\">print_</a>(<span class=\"summary-sig-arg\">*args</span>,\n        <span class=\"summary-sig-arg\">**nl_nt_prec_prefix__end_file_flush_sep__kwds</span>)</span><br />\n      Python 3+ <code>print</code>-like formatting and printing.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.internals-module.html#printf\" class=\"summary-sig-name\">printf</a>(<span class=\"summary-sig-arg\">fmt</span>,\n        <span class=\"summary-sig-arg\">*args</span>,\n        <span class=\"summary-sig-arg\">**nl_nt_prec_prefix__end_file_flush_sep__kwds</span>)</span><br />\n      <code>Printf-style</code> and Python 3+ <code>print</code>-like \n      formatting and printing.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== FUNCTION DETAILS ==================== -->\n<a name=\"section-FunctionDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Function Details</span></td>\n</tr>\n</table>\n<a name=\"machine\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">machine</span>()</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return standard <code>platform.machine</code>, but distinguishing \n  Intel <i>native</i> from Intel <i>emulation</i> on Apple Silicon (on \n  macOS only).</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd>Machine <code>'arm64'</code> for Apple Silicon <i>native</i>, \n          <code>'x86_64'</code> for Intel <i>native</i>, \n          <code>&quot;arm64_x86_64&quot;</code> for Intel <i>emulation</i>,\n          etc. (<code>str</code> with <code>comma</code>s replaced by \n          <code>underscore</code>s).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"print_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">print_</span>&nbsp;(<span class=\"sig-arg\">*args</span>,\n        <span class=\"sig-arg\">**nl_nt_prec_prefix__end_file_flush_sep__kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Python 3+ <code>print</code>-like formatting and printing.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>args</code></strong> - Values to be converted to <code>str</code> and joined by \n          <b><code>sep</code></b>, all positional.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.internals-module.html#printf\" \n        class=\"link\">printf</a> for further details.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"printf\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">printf</span>&nbsp;(<span class=\"sig-arg\">fmt</span>,\n        <span class=\"sig-arg\">*args</span>,\n        <span class=\"sig-arg\">**nl_nt_prec_prefix__end_file_flush_sep__kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p><code>Printf-style</code> and Python 3+ <code>print</code>-like \n  formatting and printing.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>fmt</code></strong> - <a \n          href=\"https://Docs.Python.org/3/library/stdtypes.html#printf-style-string-formatting\"\n          target=\"_top\">Printf-style</a> format specification \n          (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>args</code></strong> - Arguments to be formatted (any <code>type</code>, all \n          positional).</li>\n        <li><strong class=\"pname\"><code>nl_nt_prec_prefix__end_file_flush_sep__kwds</code></strong> - Optional keyword arguments <code><b>nl</b>=0</code> for the \n          number of leading blank lines (<code>int</code>), \n          <code><b>nt</b>=0</code> the number of trailing blank lines \n          (<code>int</code>), <code><b>prefix</b>=NN</code> to be inserted \n          before the formatted text (<code>str</code>) and Python 3+ \n          <code>print</code> keyword arguments <code><b>end</b></code>, \n          <code><b>sep</b></code>, <code><b>file</b></code> and \n          <code><b>flush</b></code>. Any remaining <code><b>kwds</b></code>\n          are <code>printf-style</code> name-value pairs to be formatted, \n          <i>iff no <b><code>args</code></b> are present</i> using \n          <code><b>prec</b>=6</code> for the number of decimal digits \n          (<code>int</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Number of bytes written.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.interns-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.interns</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        Module&nbsp;interns\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.interns-module.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== MODULE DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Module interns</h1><p class=\"nomargin-top\"></p>\n<p>Single <code>str</code>ing constants, <code>intern</code>'ed across \n  <code>pygeodesy</code> modules and function <a \n  href=\"pygeodesy.internals-module.html#machine\" \n  class=\"link\">pygeodesy.machine</a>.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Version:</strong>\n        25.11.07\n      </p>\n</div><!-- ==================== CLASSES ==================== -->\n<a name=\"section-Classes\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Classes</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.interns.Str_-class.html\" class=\"summary-name\">Str_</a><br />\n      Extended, <i>callable</i> <code>str</code> class, not nameable.\n    </td>\n  </tr>\n</table>\n<!-- ==================== VARIABLES ==================== -->\n<a name=\"section-Variables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Variables</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"NN\"></a><span class=\"summary-name\">NN</span> = <code title=\"''\">''</code>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.interns.Str_-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.interns.Str_</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.interns-module.html\">Module&nbsp;interns</a> ::\n        Class&nbsp;Str_\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.interns.Str_-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Str_</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\nobject --+        \n         |        \nbasestring --+    \n             |    \n           str --+\n                 |\n                <strong class=\"uidshort\">Str_</strong>\n</pre>\n\n<dl><dt>Known Subclasses:</dt>\n<dd>\n      <ul class=\"subclass-list\">\n<li class=\"private\">_Prefix</li>  </ul>\n</dd></dl>\n\n<hr />\n<p>Extended, <i>callable</i> <code>str</code> class, not nameable.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Nameable and callable class <a \n        href=\"pygeodesy.unitsBase.Str-class.html\" class=\"link\">Str</a>.\n      </p>\n</div><!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.interns.Str_-class.html#join_\" class=\"summary-sig-name\">join_</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">*args</span>)</span><br />\n      Join all positional <b><code>args</code></b> like \n      <code>self.join(<b>args</b>)</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.interns.Str_-class.html#__call__\" class=\"summary-sig-name\">__call__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">*args</span>)</span><br />\n      Join all positional <b><code>args</code></b> like \n      <code>self.join(<b>args</b>)</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>str</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__eq__</code>,\n      <code>__format__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__hash__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__mod__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__new__</code>,\n      <code>__repr__</code>,\n      <code>__rmod__</code>,\n      <code>__rmul__</code>,\n      <code>__sizeof__</code>,\n      <code>__str__</code>,\n      <code>capitalize</code>,\n      <code>center</code>,\n      <code>count</code>,\n      <code>decode</code>,\n      <code>encode</code>,\n      <code>endswith</code>,\n      <code>expandtabs</code>,\n      <code>find</code>,\n      <code>format</code>,\n      <code>index</code>,\n      <code>isalnum</code>,\n      <code>isalpha</code>,\n      <code>isdigit</code>,\n      <code>islower</code>,\n      <code>isspace</code>,\n      <code>istitle</code>,\n      <code>isupper</code>,\n      <code>join</code>,\n      <code>ljust</code>,\n      <code>lower</code>,\n      <code>lstrip</code>,\n      <code>partition</code>,\n      <code>replace</code>,\n      <code>rfind</code>,\n      <code>rindex</code>,\n      <code>rjust</code>,\n      <code>rpartition</code>,\n      <code>rsplit</code>,\n      <code>rstrip</code>,\n      <code>split</code>,\n      <code>splitlines</code>,\n      <code>startswith</code>,\n      <code>strip</code>,\n      <code>swapcase</code>,\n      <code>title</code>,\n      <code>translate</code>,\n      <code>upper</code>,\n      <code>zfill</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"join_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">join_</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">*args</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Join all positional <b><code>args</code></b> like \n  <code>self.join(<b>args</b>)</code>.</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd>All <b><code>args</code></b> joined by this instance (<a \n          href=\"pygeodesy.interns.Str_-class.html\" class=\"link\">Str_</a>).</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        An other <a href=\"pygeodesy.interns.Str_-class.html\" \n        class=\"link\">Str_</a> instance is returned to make the result \n        re-callable.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"__call__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__call__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">*args</span>)</span>\n    <br /><em class=\"fname\">(Call operator)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Join all positional <b><code>args</code></b> like \n  <code>self.join(<b>args</b>)</code>.</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd>All <b><code>args</code></b> joined by this instance (<a \n          href=\"pygeodesy.interns.Str_-class.html\" class=\"link\">Str_</a>).</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        An other <a href=\"pygeodesy.interns.Str_-class.html\" \n        class=\"link\">Str_</a> instance is returned to make the result \n        re-callable.\n      </p>\n</div></td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.iters-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.iters</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        Module&nbsp;iters\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.iters-module.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== MODULE DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Module iters</h1><p class=\"nomargin-top\"></p>\n<p>Iterators with options.</p>\n  <p>Iterator classes <a href=\"pygeodesy.iters.LatLon2PsxyIter-class.html\" \n  class=\"link\">LatLon2PsxyIter</a> and <a \n  href=\"pygeodesy.iters.PointsIter-class.html\" class=\"link\">PointsIter</a> \n  to iterate over iterables, lists, sets, tuples, etc. with optional \n  loop-back to the initial items, skipping of duplicate items and copying \n  of the iterated items.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Version:</strong>\n        25.05.19\n      </p>\n</div><!-- ==================== CLASSES ==================== -->\n<a name=\"section-Classes\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Classes</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.iters._BaseIter-class.html\" class=\"summary-name\">_BaseIter</a><br />\n      (INTERNAL) Iterator over items with loop-back and de-duplication.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.iters.PointsIter-class.html\" class=\"summary-name\">PointsIter</a><br />\n      Iterator for <code>points</code> with optional loop-back and \n        copies.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.iters.LatLon2PsxyIter-class.html\" class=\"summary-name\">LatLon2PsxyIter</a><br />\n      Iterate and convert for <code>points</code> with optional loop-back\n        and copies.\n    </td>\n  </tr>\n</table>\n<!-- ==================== FUNCTIONS ==================== -->\n<a name=\"section-Functions\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Functions</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.iters-module.html#isNumpy2\" class=\"summary-sig-name\">isNumpy2</a>(<span class=\"summary-sig-arg\">obj</span>)</span><br />\n      Check for a <b><code>Numpy2LatLon</code></b> points wrapper.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.iters-module.html#isPoints2\" class=\"summary-sig-name\">isPoints2</a>(<span class=\"summary-sig-arg\">obj</span>)</span><br />\n      Check for a <b><code>LatLon2psxy</code></b> points wrapper.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.iters-module.html#isTuple2\" class=\"summary-sig-name\">isTuple2</a>(<span class=\"summary-sig-arg\">obj</span>)</span><br />\n      Check for a <b><code>Tuple2LatLon</code></b> points wrapper.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.iters-module.html#iterNumpy2\" class=\"summary-sig-name\">iterNumpy2</a>(<span class=\"summary-sig-arg\">obj</span>)</span><br />\n      Iterate over Numpy2 wrappers or other sequences exceeding the \n      threshold.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.iters-module.html#iterNumpy2over\" class=\"summary-sig-name\">iterNumpy2over</a>(<span class=\"summary-sig-arg\">n</span>=<span class=\"summary-sig-default\">None</span>)</span><br />\n      Get or set the <a href=\"pygeodesy.iters-module.html#iterNumpy2\" \n      class=\"link\">iterNumpy2</a> threshold.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.iters-module.html#points2\" class=\"summary-sig-name\">points2</a>(<span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">closed</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">base</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">Error</span>=<span class=\"summary-sig-default\">&lt;class 'pygeodesy.errors.PointsError'&gt;</span>)</span><br />\n      Check a path or polygon represented by points.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== VARIABLES ==================== -->\n<a name=\"section-Variables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Variables</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"__all__\"></a><span class=\"summary-name\">__all__</span> = <code title=\"_ALL_LAZY.iters\">_ALL_LAZY.iters</code>\n    </td>\n  </tr>\n</table>\n<!-- ==================== FUNCTION DETAILS ==================== -->\n<a name=\"section-FunctionDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Function Details</span></td>\n</tr>\n</table>\n<a name=\"isNumpy2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">isNumpy2</span>&nbsp;(<span class=\"sig-arg\">obj</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Check for a <b><code>Numpy2LatLon</code></b> points wrapper.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>obj</code></strong> - The object (any <code>type</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>True</code> if <b><code>obj</code></b> is a \n          <b><code>Numpy2LatLon</code></b> instance, <code>False</code> \n          otherwise.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"isPoints2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">isPoints2</span>&nbsp;(<span class=\"sig-arg\">obj</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Check for a <b><code>LatLon2psxy</code></b> points wrapper.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>obj</code></strong> - The object (any <code>type</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>True</code> if <b><code>obj</code></b> is a \n          <b><code>LatLon2psxy</code></b> instance, <code>False</code> \n          otherwise.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"isTuple2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">isTuple2</span>&nbsp;(<span class=\"sig-arg\">obj</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Check for a <b><code>Tuple2LatLon</code></b> points wrapper.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>obj</code></strong> - The object (any).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>True</code> if <b><code>obj</code></b> is a \n          <b><code>Tuple2LatLon</code></b> instance, <code>False</code> \n          otherwise.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"iterNumpy2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">iterNumpy2</span>&nbsp;(<span class=\"sig-arg\">obj</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Iterate over Numpy2 wrappers or other sequences exceeding the \n  threshold.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>obj</code></strong> - Points array, list, sequence, set, etc. (any).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>True</code> do, <code>False</code> don't iterate.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"iterNumpy2over\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">iterNumpy2over</span>&nbsp;(<span class=\"sig-arg\">n</span>=<span class=\"sig-default\">None</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Get or set the <a href=\"pygeodesy.iters-module.html#iterNumpy2\" \n  class=\"link\">iterNumpy2</a> threshold.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>n</code></strong> - Optional, new threshold (<code>int</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Previous threshold (<code>int</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>n</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"points2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">points2</span>&nbsp;(<span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">closed</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">base</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">Error</span>=<span class=\"sig-default\">&lt;class 'pygeodesy.errors.PointsError'&gt;</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Check a path or polygon represented by points.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>points</code></strong> - The path or polygon points (<code>LatLon</code>[])</li>\n        <li><strong class=\"pname\"><code>closed</code></strong> - Optionally, consider the polygon closed, ignoring any duplicate \n          or closing final <b><code>points</code></b> (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>base</code></strong> - Optionally, check all <b><code>points</code></b> against this \n          base class, if <code>None</code> don't check.</li>\n        <li><strong class=\"pname\"><code>Error</code></strong> - Exception to raise (<code>ValueError</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.namedTuples.Points2Tuple-class.html\" \n          class=\"link\">Points2Tuple</a><code>(number, points)</code> with \n          the number of points and the points <code>list</code> or \n          <code>tuple</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.PointsError-class.html\">PointsError</a></strong></code> - Insufficient number of <b><code>points</code></b>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Some <b><code>points</code></b> are not <b><code>base</code></b> \n        compatible or composite <b><code>points</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.iters.LatLon2PsxyIter-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.iters.LatLon2PsxyIter</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.iters-module.html\">Module&nbsp;iters</a> ::\n        Class&nbsp;LatLon2PsxyIter\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.iters.LatLon2PsxyIter-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class LatLon2PsxyIter</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+            \n           |            \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+        \n               |        \n       <a href=\"pygeodesy.iters._BaseIter-class.html\">_BaseIter</a> --+    \n                   |    \n          <a href=\"pygeodesy.iters.PointsIter-class.html\">PointsIter</a> --+\n                       |\n                      <strong class=\"uidshort\">LatLon2PsxyIter</strong>\n</pre>\n\n<hr />\n<p>Iterate and convert for <code>points</code> with optional loop-back \n  and copies.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.iters.LatLon2PsxyIter-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">loop</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">base</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">radius</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">dedup</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      New <a href=\"pygeodesy.iters.LatLon2PsxyIter-class.html\" \n      class=\"link\">LatLon2PsxyIter</a> iterator.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.iters.LatLon2PsxyIter-class.html#__getitem__\" class=\"summary-sig-name\">__getitem__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">index</span>)</span><br />\n      Get the point(s) at the given <b><code>index</code></b> or \n      <code>slice</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.iters.LatLon2PsxyIter-class.html#enumerate\" class=\"summary-sig-name\">enumerate</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">closed</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">copies</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Iterate and yield each point as a 2-tuple <code>(index, <a \n      href=\"pygeodesy.namedTuples.Point3Tuple-class.html\" \n      class=\"link\">Point3Tuple</a>)</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.iters.LatLon2PsxyIter-class.html#iterate\" class=\"summary-sig-name\">iterate</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">closed</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">copies</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Iterate the <b><code>points</code></b> starting at index \n      <b><code>loop</code></b> and yield each as a <a \n      href=\"pygeodesy.namedTuples.Point3Tuple-class.html\" \n      class=\"link\">Point3Tuple</a><code>(x, y, ll)</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.iters._BaseIter-class.html\">_BaseIter</a></code></b>:\n      <code><a href=\"pygeodesy.iters._BaseIter-class.html#__iter__\">__iter__</a></code>,\n      <code><a href=\"pygeodesy.iters._BaseIter-class.html#__len__\">__len__</a></code>,\n      <code><a href=\"pygeodesy.iters._BaseIter-class.html#next_\">next_</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.iters._BaseIter-class.html\">_BaseIter</a></code></b>:\n      <code><a href=\"pygeodesy.iters._BaseIter-class.html#copies\">copies</a></code>,\n      <code><a href=\"pygeodesy.iters._BaseIter-class.html#dedup\">dedup</a></code>,\n      <code><a href=\"pygeodesy.iters._BaseIter-class.html#loop\">loop</a></code>,\n      <code><a href=\"pygeodesy.iters._BaseIter-class.html#looped\">looped</a></code>,\n      <code><a href=\"pygeodesy.iters._BaseIter-class.html#next\">next</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">loop</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">base</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">radius</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">dedup</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.iters.LatLon2PsxyIter-class.html\" \n  class=\"link\">LatLon2PsxyIter</a> iterator.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>points</code></strong> - <code>Iterable</code> or <code>list</code>, \n          <code>sequence</code>, <code>set</code>, <code>tuple</code>, etc.\n          (<code>LatLon</code>[]).</li>\n        <li><strong class=\"pname\"><code>loop</code></strong> - Number of loop-back points, also initial <code>enumerate</code> \n          and <code>iterate</code> index (non-negative <code>int</code>).</li>\n        <li><strong class=\"pname\"><code>base</code></strong> - Optional <b><code>points</code></b> instance for type checking \n          (<code>any</code>).</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> the enum-/iterated\n          <b><code>points</code></b> (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>radius</code></strong> - Mean earth radius (<code>meter</code>) for conversion from \n          <code>degrees</code> to <code>meter</code> (or \n          <code>radians</code> if <code><b>radius</b>=1</code>).</li>\n        <li><strong class=\"pname\"><code>dedup</code></strong> - Skip duplicate points (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=&quot;latlon&quot;</code> \n          (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.PointsError-class.html\">PointsError</a></strong></code> - Insufficient number of <b><code>points</code></b>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Some <b><code>points</code></b> are not \n        <b><code>base</code></b>-compatible.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        The <code>LatLon</code> latitude is considered the <i>pseudo-y</i> \n        and longitude the <i>pseudo-x</i> coordinate, like <a \n        href=\"pygeodesy.points.LatLon2psxy-class.html\" \n        class=\"link\">LatLon2psxy</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"__getitem__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__getitem__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">index</span>)</span>\n    <br /><em class=\"fname\">(Indexing operator)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Get the point(s) at the given <b><code>index</code></b> or \n  <code>slice</code>.</p>\n  <dl class=\"fields\">\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>IndexError</strong></code> - Invalid <b><code>index</code></b>, beyond <b><code>loop</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.iters._BaseIter-class.html#__getitem__\">_BaseIter.__getitem__</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"enumerate\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">enumerate</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">closed</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">copies</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Iterate and yield each point as a 2-tuple <code>(index, <a \n  href=\"pygeodesy.namedTuples.Point3Tuple-class.html\" \n  class=\"link\">Point3Tuple</a>)</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>closed</code></strong> - Loop back to the first <b><code>point(s)</code></b>, de-dup'ed \n          (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>copies</code></strong> - Save a copy of all <b><code>points</code></b> \n          (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.PointsError-class.html\">PointsError</a></strong></code> - Insufficient number of <b><code>points</code></b> or using \n        <code><b>closed</b>=True</code> without \n        <b><code>loop</code></b>-back.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Some <b><code>points</code></b> are not \n        <b><code>base</code></b>-compatible.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.iters._BaseIter-class.html#enumerate\">_BaseIter.enumerate</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"iterate\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">iterate</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">closed</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">copies</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Iterate the <b><code>points</code></b> starting at index \n  <b><code>loop</code></b> and yield each as a <a \n  href=\"pygeodesy.namedTuples.Point3Tuple-class.html\" \n  class=\"link\">Point3Tuple</a><code>(x, y, ll)</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>closed</code></strong> - Loop back to the first <b><code>point(s)</code></b>, de-dup'ed \n          (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>copies</code></strong> - Save a copy of all <b><code>points</code></b> \n          (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.PointsError-class.html\">PointsError</a></strong></code> - Insufficient number of <b><code>points</code></b> or using \n        <code><b>closed</b>=True</code> without \n        <b><code>loop</code></b>-back.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Some <b><code>points</code></b> are not \n        <b><code>base</code></b>-compatible.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.iters._BaseIter-class.html#iterate\">_BaseIter.iterate</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.iters.PointsIter-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.iters.PointsIter</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.iters-module.html\">Module&nbsp;iters</a> ::\n        Class&nbsp;PointsIter\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.iters.PointsIter-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class PointsIter</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+        \n           |        \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n               |    \n       <a href=\"pygeodesy.iters._BaseIter-class.html\">_BaseIter</a> --+\n                   |\n                  <strong class=\"uidshort\">PointsIter</strong>\n</pre>\n\n<dl><dt>Known Subclasses:</dt>\n<dd>\n      <ul class=\"subclass-list\">\n<li><a href=\"pygeodesy.iters.LatLon2PsxyIter-class.html\">LatLon2PsxyIter</a></li>  </ul>\n</dd></dl>\n\n<hr />\n<p>Iterator for <code>points</code> with optional loop-back and \n  copies.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.iters.PointsIter-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">loop</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">base</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">dedup</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      New <a href=\"pygeodesy.iters.PointsIter-class.html\" \n      class=\"link\">PointsIter</a> iterator.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.iters.PointsIter-class.html#enumerate\" class=\"summary-sig-name\">enumerate</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">closed</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">copies</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Iterate and yield each point as a 2-tuple <code>(index, \n      point)</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.iters.PointsIter-class.html#iterate\" class=\"summary-sig-name\">iterate</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">closed</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">copies</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Iterate through all <b><code>points</code></b> starting at index \n      <code>loop</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.iters._BaseIter-class.html\">_BaseIter</a></code></b>:\n      <code><a href=\"pygeodesy.iters._BaseIter-class.html#__getitem__\">__getitem__</a></code>,\n      <code><a href=\"pygeodesy.iters._BaseIter-class.html#__iter__\">__iter__</a></code>,\n      <code><a href=\"pygeodesy.iters._BaseIter-class.html#__len__\">__len__</a></code>,\n      <code><a href=\"pygeodesy.iters._BaseIter-class.html#next_\">next_</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.iters._BaseIter-class.html\">_BaseIter</a></code></b>:\n      <code><a href=\"pygeodesy.iters._BaseIter-class.html#copies\">copies</a></code>,\n      <code><a href=\"pygeodesy.iters._BaseIter-class.html#dedup\">dedup</a></code>,\n      <code><a href=\"pygeodesy.iters._BaseIter-class.html#loop\">loop</a></code>,\n      <code><a href=\"pygeodesy.iters._BaseIter-class.html#looped\">looped</a></code>,\n      <code><a href=\"pygeodesy.iters._BaseIter-class.html#next\">next</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">loop</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">base</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">dedup</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.iters.PointsIter-class.html\" \n  class=\"link\">PointsIter</a> iterator.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>points</code></strong> - <code>Iterable</code> or <code>list</code>, \n          <code>sequence</code>, <code>set</code>, <code>tuple</code>, etc.\n          (<code>point</code>s).</li>\n        <li><strong class=\"pname\"><code>loop</code></strong> - Number of loop-back points, also initial <code>enumerate</code> \n          and <code>iterate</code> index (non-negative <code>int</code>).</li>\n        <li><strong class=\"pname\"><code>base</code></strong> - Optional <b><code>points</code></b> instance for type checking \n          (<code>any</code>).</li>\n        <li><strong class=\"pname\"><code>dedup</code></strong> - Skip duplicate points (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> the enum-/iterated\n          <b><code>points</code></b> (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=&quot;points&quot;</code> \n          (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.PointsError-class.html\">PointsError</a></strong></code> - Insufficient number of <b><code>points</code></b>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Some <b><code>points</code></b> are not <b><code>base</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"enumerate\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">enumerate</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">closed</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">copies</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Iterate and yield each point as a 2-tuple <code>(index, \n  point)</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>closed</code></strong> - Loop back to the first <b><code>point(s)</code></b>, de-dup'ed \n          (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>copies</code></strong> - Save a copy of all <b><code>points</code></b> \n          (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.PointsError-class.html\">PointsError</a></strong></code> - Insufficient number of <b><code>points</code></b> or using \n        <code><b>closed</b>=True</code> without \n        <b><code>loop</code></b>-back.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Some <b><code>points</code></b> are not \n        <b><code>base</code></b>-compatible.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.iters._BaseIter-class.html#enumerate\">_BaseIter.enumerate</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"iterate\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">iterate</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">closed</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">copies</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Iterate through all <b><code>points</code></b> starting at index \n  <code>loop</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>closed</code></strong> - Loop back to the first <b><code>point(s)</code></b>, de-dup'ed \n          (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>copies</code></strong> - Save a copy of all <b><code>points</code></b> \n          (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.PointsError-class.html\">PointsError</a></strong></code> - Insufficient number of <b><code>points</code></b> or using \n        <code><b>closed</b>=True</code> without \n        <b><code>loop</code></b>-back.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Some <b><code>points</code></b> are not \n        <b><code>base</code></b>-compatible.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.iters._BaseIter-class.html#iterate\">_BaseIter.iterate</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.iters._BaseIter-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.iters._BaseIter</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.iters-module.html\">Module&nbsp;iters</a> ::\n        Class&nbsp;_BaseIter\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.iters._BaseIter-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class _BaseIter</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+    \n           |    \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+\n               |\n              <strong class=\"uidshort\">_BaseIter</strong>\n</pre>\n\n<dl><dt>Known Subclasses:</dt>\n<dd>\n      <ul class=\"subclass-list\">\n<li><a href=\"pygeodesy.iters.PointsIter-class.html\">PointsIter</a></li>  </ul>\n</dd></dl>\n\n<hr />\n<p>(INTERNAL) Iterator over items with loop-back and de-duplication.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Luciano Ramalho, &quot;Fluent Python&quot;, O'Reilly, 2016 p. 418+,\n        2022 p. 600+\n      </p>\n</div><!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.iters._BaseIter-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">items</span>,\n        <span class=\"summary-sig-arg\">loop</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">dedup</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">Error</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      New iterator over an iterable of <b><code>items</code></b>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.iters._BaseIter-class.html#enumerate\" class=\"summary-sig-name\">enumerate</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">closed</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">copies</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">dedup</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Yield all items, each as a 2-tuple <code>(index, item)</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.iters._BaseIter-class.html#__getitem__\" class=\"summary-sig-name\">__getitem__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">index</span>)</span><br />\n      Get the item(s) at the given <b><code>index</code></b> or \n      <code>slice</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__iter__\"></a><span class=\"summary-sig-name\">__iter__</span>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Make this iterator <code>iterable</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.iters._BaseIter-class.html#iterate\" class=\"summary-sig-name\">iterate</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">closed</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">copies</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">dedup</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Yield all items, each as <code>item</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__len__\"></a><span class=\"summary-sig-name\">__len__</span>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Get the number of items seen so far.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.iters._BaseIter-class.html#next_\" class=\"summary-sig-name\">next_</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">dedup</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Return the next item.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.iters._BaseIter-class.html#copies\" class=\"summary-name\">copies</a><br />\n      Get the saved copies, if any (<code>tuple</code> or \n      <code>list</code>) and only <i>once</i>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.iters._BaseIter-class.html#dedup\" class=\"summary-name\">dedup</a><br />\n      Get the de-duplication setting (<code>bool</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.iters._BaseIter-class.html#loop\" class=\"summary-name\">loop</a><br />\n      Get the <b><code>loop</code></b> setting (<code>int</code>), \n      <code>0</code> for non-loop-back.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.iters._BaseIter-class.html#looped\" class=\"summary-name\">looped</a><br />\n      In this <code>Iter</code>ator in loop-back? (<code>bool</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.iters._BaseIter-class.html#next\" class=\"summary-name\">next</a><br />\n      Get the next item.\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">items</span>,\n        <span class=\"sig-arg\">loop</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">dedup</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">Error</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New iterator over an iterable of <b><code>items</code></b>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>items</code></strong> - Iterable (any <code>type</code>, except composites).</li>\n        <li><strong class=\"pname\"><code>loop</code></strong> - Number of loop-back items, also initial enumerate and iterate \n          index (non-negative <code>int</code>).</li>\n        <li><strong class=\"pname\"><code>dedup</code></strong> - Skip duplicate items (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>Error</code></strong> - Error to raise (<a href=\"pygeodesy.errors.LenError-class.html\" \n          class=\"link\">LenError</a>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=&quot;items&quot;</code> \n          (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>Error</strong></code> - Invalid <b><code>items</code></b> or sufficient number of \n        <b><code>items</code></b>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Composite <b><code>items</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"enumerate\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">enumerate</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">closed</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">copies</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">dedup</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Yield all items, each as a 2-tuple <code>(index, item)</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>closed</code></strong> - Loop back to the first <b><code>point(s)</code></b>.</li>\n        <li><strong class=\"pname\"><code>copies</code></strong> - Make a copy of all <b><code>items</code></b> (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>dedup</code></strong> - Set de-duplication in loop-back (<code>bool</code>).</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__getitem__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__getitem__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">index</span>)</span>\n    <br /><em class=\"fname\">(Indexing operator)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Get the item(s) at the given <b><code>index</code></b> or \n  <code>slice</code>.</p>\n  <dl class=\"fields\">\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>IndexError</strong></code> - Invalid <b><code>index</code></b>, beyond <b><code>loop</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"iterate\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">iterate</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">closed</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">copies</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">dedup</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Yield all items, each as <code>item</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>closed</code></strong> - Loop back to the first <b><code>point(s)</code></b>.</li>\n        <li><strong class=\"pname\"><code>copies</code></strong> - Make a copy of all <b><code>items</code></b> (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>dedup</code></strong> - Set de-duplication in loop-back (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>Error</strong></code> - Using <code><b>closed</b>=True</code> without \n        <b><code>loop</code></b>-back.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"next_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">next_</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">dedup</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the next item.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>dedup</code></strong> - Set de-duplication for loop-back (<code>bool</code>).</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"copies\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">copies</h3>\n  <p>Get the saved copies, if any (<code>tuple</code> or <code>list</code>)\n  and only <i>once</i>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">copies(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the saved copies, if any (<code>tuple</code> or <code>list</code>) and \nonly <i>once</i>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"dedup\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">dedup</h3>\n  <p>Get the de-duplication setting (<code>bool</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">dedup(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the de-duplication setting (<code>bool</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"loop\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">loop</h3>\n  <p>Get the <b><code>loop</code></b> setting (<code>int</code>), \n  <code>0</code> for non-loop-back.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">loop(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <b><code>loop</code></b> setting (<code>int</code>), <code>0</code>\nfor non-loop-back.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"looped\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">looped</h3>\n  <p>In this <code>Iter</code>ator in loop-back? (<code>bool</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">looped(<span class=\"summary-sig-arg\">self</span>)</span>\n        - In this <code>Iter</code>ator in loop-back? (<code>bool</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"next\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">next</h3>\n  <p>Get the next item.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">next(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the next item.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.karney-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.karney</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        Module&nbsp;karney\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.karney-module.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== MODULE DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Module karney</h1><p class=\"nomargin-top\"></p>\n<p>Wrapper around several <code>geomath.Math</code> functions from \n  <i>Karney</i>'s Python package <a \n  href=\"https://PyPI.org/project/geographiclib\" \n  target=\"_top\">geographiclib</a>, provided that package is installed.</p>\n  <p>Methods of the <i>wrapped</i> <a \n  href=\"pygeodesy.geodesicw.Geodesic-class.html\" class=\"link\">Geodesic</a> \n  and <a href=\"pygeodesy.geodesicw.GeodesicLine-class.html\" \n  class=\"link\">GeodesicLine</a> classes return a <a \n  href=\"pygeodesy.karney.GDict-class.html\" class=\"link\">GDict</a> instance \n  offering access to the <code>dict</code> items either by <code>key</code>\n  or by <code>attribute</code> name.</p>\n  <p>With env variable <code>PYGEODESY_GEOGRAPHICLIB</code> left undefined \n  or set to <code>&quot;2&quot;</code>, modules <a \n  href=\"pygeodesy.geodesicw-module.html\" class=\"link\">geodesicw</a>, <a \n  href=\"pygeodesy.geodesicx-module.html\" class=\"link\">geodesicx</a> and \n  this module will use <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/\" \n  target=\"_top\">GeographicLib 2.0+</a> and newer transcoding, otherwise \n  <code>1.52</code> or older.  Set <code>PYGEODESY_GEOGRAPHICLIB=2.4</code>\n  to default to the <code>Jacobi amplitude</code> instead of \n  <code>Bulirsch</code>' function in methods <a \n  href=\"pygeodesy.etm.ExactTransverseMercator-class.html#forward\" \n  class=\"link\">ExactTransverseMercator.forward</a> and <a \n  href=\"pygeodesy.etm.ExactTransverseMercator-class.html#reverse\" \n  class=\"link\">reverse</a>.</p>\n  <h1 class=\"heading\">Karney-based functionality</h1>\n    <ol start=\"1\">\n      <li>\n        The following classes and functions in <code>pygeodesy</code>\n        <ul>\n          <li>\n            <a href=\"pygeodesy.albers.AlbersEqualArea-class.html\" \n            class=\"link\">AlbersEqualArea</a>, <a \n            href=\"pygeodesy.albers.AlbersEqualArea2-class.html\" \n            class=\"link\">AlbersEqualArea2</a>, <a \n            href=\"pygeodesy.albers.AlbersEqualArea4-class.html\" \n            class=\"link\">AlbersEqualArea4</a>, <a \n            href=\"pygeodesy.albers.AlbersEqualAreaCylindrical-class.html\" \n            class=\"link\">AlbersEqualAreaCylindrical</a>, <a \n            href=\"pygeodesy.albers.AlbersEqualAreaNorth-class.html\" \n            class=\"link\">AlbersEqualAreaNorth</a>, <a \n            href=\"pygeodesy.albers.AlbersEqualAreaSouth-class.html\" \n            class=\"link\">AlbersEqualAreaSouth</a> -- <a \n            href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1AlbersEqualArea.html\"\n            target=\"_top\">AlbersEqualArea</a>\n          </li>\n          <li>\n            <a href=\"pygeodesy.angles.Ang-class.html\" class=\"link\">Ang</a>,\n            <a href=\"pygeodesy.angles-module.html#Deg\" \n            class=\"link\">Deg</a>, <a \n            href=\"pygeodesy.angles-module.html#Rad\" class=\"link\">Rad</a> --\n            <a \n            href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1AngleT.html\"\n            target=\"_top\">AngleT</a> in <i>GeographicLib 2.7</i>.\n          </li>\n          <li>\n            <a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html\" \n            class=\"link\">AuxAngle</a>, <a \n            href=\"pygeodesy.auxilats.auxDST.AuxDST-class.html\" \n            class=\"link\">AuxDST</a>, <a \n            href=\"pygeodesy.auxilats.auxDLat.AuxDLat-class.html\" \n            class=\"link\">AuxDLat</a>, <a \n            href=\"pygeodesy.auxilats.auxLat.AuxLat-class.html\" \n            class=\"link\">AuxLat</a> -- <a \n            href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1AuxAngle.html\"\n            target=\"_top\">AuxAngle</a>, <a \n            href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1DST.html\"\n            target=\"_top\">DST</a>, <a \n            href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1DAuxLatitude.html\"\n            target=\"_top\">DAuxLatitude</a>, <a \n            href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1AuxLatitude.html\"\n            target=\"_top\">AuxLatitude</a> in <i>GeographicLib 2.2+</i>\n          </li>\n          <li>\n            <a href=\"pygeodesy.css.CassiniSoldner-class.html\" \n            class=\"link\">CassiniSoldner</a> -- <a \n            href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1CassiniSoldner.html\"\n            target=\"_top\">CassiniSoldner</a>\n          </li>\n          <li>\n            <a href=\"pygeodesy.triaxials.conformal3.Conformal3-class.html\" \n            class=\"link\">Conformal3</a>, <a \n            href=\"pygeodesy.triaxials.conformal3.Conformal3B-class.html\" \n            class=\"link\">Conformal3B</a>, <a \n            href=\"pygeodesy.triaxials.conformal3.Conformal3Sphere-class.html\"\n            class=\"link\">Conformal3Sphere</a> -- <a \n            href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Triaxial_1_1Conformal3.html\"\n            target=\"_top\">Conformal3</a> in <i>GeographicLib 2.7</i>\n          </li>\n          <li>\n            <a href=\"pygeodesy.ecef.EcefKarney-class.html\" \n            class=\"link\">EcefKarney</a> -- <a \n            href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Geocentric.html\"\n            target=\"_top\">Geocentric</a>\n          </li>\n          <li>\n            <a href=\"pygeodesy.elliptic.Elliptic-class.html\" \n            class=\"link\">Elliptic</a> -- <a \n            href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1EllipticFunction.html\"\n            target=\"_top\">EllipticFunction</a>\n          </li>\n          <li>\n            <a href=\"pygeodesy.azimuthal.EquidistantExact-class.html\" \n            class=\"link\">EquidistantExact</a>, <a \n            href=\"pygeodesy.azimuthal.EquidistantGeodSolve-class.html\" \n            class=\"link\">EquidistantGeodSolve</a>, <a \n            href=\"pygeodesy.azimuthal.EquidistantKarney-class.html\" \n            class=\"link\">EquidistantKarney</a> -- <a \n            href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1AzimuthalEquidistant.html\"\n            target=\"_top\">AzimuthalEquidistant</a>\n          </li>\n          <li>\n            <a href=\"pygeodesy.etm.Etm-class.html\" class=\"link\">Etm</a>, <a\n            href=\"pygeodesy.etm.ExactTransverseMercator-class.html\" \n            class=\"link\">ExactTransverseMercator</a> -- <a \n            href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1TransverseMercatorExact.html\"\n            target=\"_top\">TransverseMercatorExact</a>\n          </li>\n          <li>\n            <a href=\"pygeodesy.geodesicw.Geodesic-class.html\" \n            class=\"link\">Geodesic</a>, <a \n            href=\"pygeodesy.geodesicw.GeodesicLine-class.html\" \n            class=\"link\">GeodesicLine</a> -- <i>wrapped</i> <a \n            href=\"https://PyPI.org/project/geographiclib\" \n            target=\"_top\">geodesic.Geodesic</a>, <i>wrapped</i> <a \n            href=\"https://PyPI.org/project/geographiclib\" \n            target=\"_top\">geodesicline.GeodesicLine</a>\n          </li>\n          <li>\n            <a \n            href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html\" \n            class=\"link\">GeodesicAreaExact</a>, <a \n            href=\"pygeodesy.geodesicx.gxarea.PolygonArea-class.html\" \n            class=\"link\">PolygonArea</a> -- <a \n            href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1PolygonAreaT.html\"\n            target=\"_top\">PolygonArea</a>\n          </li>\n          <li>\n            <a href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html\" \n            class=\"link\">GeodesicExact</a>, <a \n            href=\"pygeodesy.geodesicx.gx.GeodesicLineExact-class.html\" \n            class=\"link\">GeodesicLineExact</a> -- <a \n            href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1GeodesicExact.html\"\n            target=\"_top\">GeodesicExact</a>, <a \n            href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1GeodesicLineExact.html\"\n            target=\"_top\">GeodesicLineExact</a>\n          </li>\n          <li>\n            <a href=\"pygeodesy.geoids.GeoidKarney-class.html\" \n            class=\"link\">GeoidKarney</a> -- <a \n            href=\"https://GeographicLib.SourceForge.io/C++/doc/geoid.html\" \n            target=\"_top\">Geoid</a>\n          </li>\n          <li>\n            <a href=\"pygeodesy.wgrs.Georef-class.html\" \n            class=\"link\">Georef</a> -- <a \n            href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Georef.html\"\n            target=\"_top\">Georef</a>\n          </li>\n          <li>\n            <a href=\"pygeodesy.azimuthal.GnomonicExact-class.html\" \n            class=\"link\">GnomonicExact</a>, <a \n            href=\"pygeodesy.azimuthal.GnomonicGeodSolve-class.html\" \n            class=\"link\">GnomonicGeodSolve</a>, <a \n            href=\"pygeodesy.azimuthal.GnomonicKarney-class.html\" \n            class=\"link\">GnomonicKarney</a> -- <a \n            href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Gnomonic.html\"\n            target=\"_top\">Gnomonic</a>\n          </li>\n          <li>\n            <a href=\"pygeodesy.geodesici.Intersector-class.html\" \n            class=\"link\">Intersector</a> -- <a \n            href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Intersect.html\"\n            target=\"_top\">Intersect</a> from <i>GeographicLib 2.3+</i>\n          </li>\n          <li>\n            <a \n            href=\"pygeodesy.deprecated.classes.JacobiConformal-class.html\" \n            class=\"link\">JacobiConformal</a> -- <a \n            href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1experimental_1_1JacobiConformal.html\"\n            target=\"_top\">JacobiConformal</a>\n          </li>\n          <li>\n            <a href=\"pygeodesy.ktm.KTransverseMercator-class.html\" \n            class=\"link\">KTransverseMercator</a> - <a \n            href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1TransverseMercator.html\"\n            target=\"_top\">TransverseMercator</a>\n          </li>\n          <li>\n            <a href=\"pygeodesy.ltp.LocalCartesian-class.html\" \n            class=\"link\">LocalCartesian</a>, <a \n            href=\"pygeodesy.ltp.Ltp-class.html\" class=\"link\">Ltp</a> -- <a \n            href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1LocalCartesian.html\"\n            target=\"_top\">LocalCartesian</a>\n          </li>\n          <li>\n            <a href=\"pygeodesy.osgr.Osgr-class.html\" class=\"link\">Osgr</a> \n            -- <a \n            href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1OSGB.html\"\n            target=\"_top\">OSGB</a>\n          </li>\n          <li>\n            <a href=\"pygeodesy.rhumb.aux_-module.html\" class=\"link\" \n            onclick=\"show_private();\">rhumb.aux_</a>, <a \n            href=\"pygeodesy.rhumb.aux_.RhumbAux-class.html\" \n            class=\"link\">RhumbAux</a>, <a \n            href=\"pygeodesy.rhumb.aux_.RhumbLineAux-class.html\" \n            class=\"link\">RhumbLineAux</a> -- <a \n            href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Rhumb.html\"\n            target=\"_top\">Rhumb</a> and <a \n            href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1RhumbLine.html\"\n            target=\"_top\">RhumbLine</a> from <i>GeographicLib 2.2+</i>\n          </li>\n          <li>\n            <a href=\"pygeodesy.rhumb.ekx-module.html\" class=\"link\" \n            onclick=\"show_private();\">rhumb.ekx</a>, <a \n            href=\"pygeodesy.rhumb.ekx.Rhumb-class.html\" \n            class=\"link\">Rhumb</a>, <a \n            href=\"pygeodesy.rhumb.ekx.RhumbLine-class.html\" \n            class=\"link\">RhumbLine</a> -- <a \n            href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Rhumb.html\"\n            target=\"_top\">Rhumb</a>, <a \n            href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1RhumbLine.html\"\n            target=\"_top\">RhumbLine</a>, <a \n            href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1TransverseMercator.html\"\n            target=\"_top\">TransverseMercator</a> from <i>GeographicLib \n            2.0</i>\n          </li>\n          <li>\n            <a href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html\" \n            class=\"link\">Triaxial3</a>, <a \n            href=\"pygeodesy.triaxials.triaxial3.Triaxial3B-class.html\" \n            class=\"link\">Triaxial3B</a> -- <a \n            href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Triaxial_1_1Cartesian3.html\"\n            target=\"_top\">Cartesian3</a>, <a \n            href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Triaxial_1_1Ellipsoidal3.html\"\n            target=\"_top\">Ellipsoidal3</a> in <i>GeographicLib 2.7</i>\n          </li>\n          <li>\n            <a href=\"pygeodesy.ups.Ups-class.html\" class=\"link\">Ups</a> -- \n            <a \n            href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1PolarStereographic.html\"\n            target=\"_top\">PolarStereographic</a>\n          </li>\n          <li>\n            <a href=\"pygeodesy.utm.Utm-class.html\" class=\"link\">Utm</a> -- \n            <a \n            href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1TransverseMercator.html\"\n            target=\"_top\">TransverseMercator</a>\n          </li>\n          <li>\n            <a href=\"pygeodesy.utmups-module.html#UtmUps\" \n            class=\"link\">UtmUps</a>, <a \n            href=\"pygeodesy.epsg.Epsg-class.html\" class=\"link\">Epsg</a> -- \n            <a \n            href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1UTMUPS.html\"\n            target=\"_top\">UTMUPS</a>\n          </li>\n          <li>\n            <a href=\"pygeodesy.utily-module.html#atan1d\" \n            class=\"link\">atan1d</a>, <a \n            href=\"pygeodesy.utily-module.html#atan2d\" \n            class=\"link\">atan2d</a>, <a \n            href=\"pygeodesy.utily-module.html#sincos2\" \n            class=\"link\">sincos2</a>, <a \n            href=\"pygeodesy.utily-module.html#sincos2d\" \n            class=\"link\">sincos2d</a>, <a \n            href=\"pygeodesy.utily-module.html#tand\" class=\"link\">tand</a> \n            -- <a \n            href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Math.html\"\n            target=\"_top\">geomath.Math</a>\n          </li>\n        </ul>\n        <p>are <i>transcoded</i> from C++ classes in <i>Karney</i>'s <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/annotated.html\" \n        target=\"_top\">GeographicLib</a>.</p>\n      </li>\n      <li>\n        These <code>pygeodesy</code> modules and classes\n        <ul>\n          <li>\n            <a href=\"pygeodesy.ellipsoidalGeodSolve-module.html\" \n            class=\"link\">ellipsoidalGeodSolve</a>, <a \n            href=\"pygeodesy.ellipsoidalKarney-module.html\" \n            class=\"link\">ellipsoidalKarney</a>, <a \n            href=\"pygeodesy.geodesici-module.html\" \n            class=\"link\">geodesici</a>, <a \n            href=\"pygeodesy.geodsolve-module.html\" \n            class=\"link\">geodsolve</a>, <a \n            href=\"pygeodesy.karney-module.html\" class=\"link\">karney</a>, <a\n            href=\"pygeodesy.rhumb.solve-module.html\" class=\"link\" \n            onclick=\"show_private();\">rhumb.solve</a>\n          </li>\n          <li>\n            <a href=\"pygeodesy.azimuthal.EquidistantKarney-class.html\" \n            class=\"link\">EquidistantKarney</a>, <a \n            href=\"pygeodesy.frechet.FrechetKarney-class.html\" \n            class=\"link\">FrechetKarney</a>, <a \n            href=\"pygeodesy.geodsolve.GeodesicSolve-class.html\" \n            class=\"link\">GeodesicSolve</a>, <a \n            href=\"pygeodesy.geodsolve.GeodesicLineSolve-class.html\" \n            class=\"link\">GeodesicLineSolve</a>, <a \n            href=\"pygeodesy.geod3solve.Geodesic3Solve-class.html\" \n            class=\"link\">Geodesic3Solve</a>, <a \n            href=\"pygeodesy.geod3solve.GeodesicLine3Solve-class.html\" \n            class=\"link\">GeodesicLine3Solve</a>, <a \n            href=\"pygeodesy.azimuthal.GnomonicGeodSolve-class.html\" \n            class=\"link\">GnomonicGeodSolve</a>, <a \n            href=\"pygeodesy.azimuthal.GnomonicKarney-class.html\" \n            class=\"link\">GnomonicKarney</a>, <a \n            href=\"pygeodesy.heights.HeightIDWkarney-class.html\" \n            class=\"link\">HeightIDWkarney</a>, <a \n            href=\"pygeodesy.geodesici.Intersectool-class.html\" \n            class=\"link\">Intersectool</a>\n          </li>\n        </ul>\n        <p>are or use <i>wrappers</i> around <i>Karney</i>'s Python <a \n        href=\"https://PyPI.org/project/geographiclib\" \n        target=\"_top\">geographiclib</a> or C++ utility <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/GeodSolve.1.html\"\n        target=\"_top\">GeodSolve</a>, <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/Geod3Solve.1.html\"\n        target=\"_top\">Geod3Solve</a>, <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/IntersectTool.1.html\"\n        target=\"_top\">IntersectTool</a> or <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/RhumbSolve.1.html\"\n        target=\"_top\">RhumbSolve</a>.</p>\n      </li>\n      <li>\n        All <code>pygeodesy</code> functions and methods to compute \n        <i>ellipsoidal</i> intersections, nearest points and trilaterations\n        <ul>\n          <li>\n            <a href=\"pygeodesy.ellipsoidalExact-module.html#intersection3\" \n            class=\"link\">ellipsoidalExact.intersection3</a>, <a \n            href=\"pygeodesy.ellipsoidalExact-module.html#intersections2\" \n            class=\"link\">ellipsoidalExact.intersections2</a>, <a \n            href=\"pygeodesy.ellipsoidalExact-module.html#nearestOn\" \n            class=\"link\">ellipsoidalExact.nearestOn</a>, <a \n            href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#intersection3\"\n            class=\"link\">ellipsoidalExact.LatLon.intersection3</a>, <a \n            href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#intersections2\"\n            class=\"link\">ellipsoidalExact.LatLon.intersections2</a>, <a \n            href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#nearestOn\"\n            class=\"link\">ellipsoidalExact.LatLon.nearestOn</a>, <a \n            href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#trilaterate5\"\n            class=\"link\">ellipsoidalExact.LatLon.trilaterate5</a>\n          </li>\n          <li>\n            <a href=\"pygeodesy.ellipsoidalKarney-module.html#intersection3\"\n            class=\"link\">ellipsoidalKarney.intersection3</a>, <a \n            href=\"pygeodesy.ellipsoidalKarney-module.html#intersections2\" \n            class=\"link\">ellipsoidalKarney.intersections2</a>, <a \n            href=\"pygeodesy.ellipsoidalKarney-module.html#nearestOn\" \n            class=\"link\">ellipsoidalKarney.nearestOn</a>, <a \n            href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#intersection3\"\n            class=\"link\">ellipsoidalKarney.LatLon.intersection3</a>, <a \n            href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#intersections2\"\n            class=\"link\">ellipsoidalKarney.LatLon.intersections2</a>, <a \n            href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#nearestOn\"\n            class=\"link\">ellipsoidalKarney.LatLon.nearestOn</a>, <a \n            href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#trilaterate5\"\n            class=\"link\">ellipsoidalKarney.LatLon.trilaterate5</a>\n          </li>\n          <li>\n            <a \n            href=\"pygeodesy.ellipsoidalVincenty-module.html#intersection3\" \n            class=\"link\">ellipsoidalVincenty.intersection3</a>, <a \n            href=\"pygeodesy.ellipsoidalVincenty-module.html#intersections2\"\n            class=\"link\">ellipsoidalVincenty.intersections2</a>, <a \n            href=\"pygeodesy.ellipsoidalVincenty-module.html#nearestOn\" \n            class=\"link\">ellipsoidalVincenty.nearestOn</a>, <a \n            href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#intersection3\"\n            class=\"link\">ellipsoidalVincenty.LatLon.intersection3</a>, <a \n            href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#intersections2\"\n            class=\"link\">ellipsoidalVincenty.LatLon.intersections2</a>, <a \n            href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#nearestOn\"\n            class=\"link\">ellipsoidalVincenty.LatLon.nearestOn</a>, <a \n            href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#trilaterate5\"\n            class=\"link\">ellipsoidalVincenty.LatLon.trilaterate5</a>\n          </li>\n          <li>\n            <a \n            href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#Intersection\"\n            class=\"link\">RhumbLineAux.Intersection</a> and <a \n            href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#Intersection\"\n            class=\"link\">RhumbLine.Intersection</a>\n          </li>\n        </ul>\n        <p>are implementations of <i>Karney</i>'s iterative solution posted\n        under <a \n        href=\"https://GIS.StackExchange.com/questions/48937/calculating-intersection-of-two-circles\"\n        target=\"_top\">The <b>ellipsoidal</b> case</a> and in paper <a \n        href=\"https://ArXiv.org/pdf/1102.1215.pdf\" target=\"_top\">Geodesics \n        on an ellipsoid of revolution</a> (pp 20-21, section <b>14. \n        MARITIME BOUNDARIES</b>).</p>\n      </li>\n      <li>\n        The <code>pygeodesy</code> methods to compute <i>ellipsoidal</i> \n        intersections and nearest points\n        <ul>\n          <li>\n            <a \n            href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#Intersecant2\"\n            class=\"link\">RhumbLineAux.Intersecant2</a>, <a \n            href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#PlumbTo\" \n            class=\"link\">RhumbLineAux.PlumbTo</a>, <a \n            href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#Intersecant2\"\n            class=\"link\">RhumbLine.Intersecant2</a> and <a \n            href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#PlumbTo\" \n            class=\"link\">RhumbLine.PlumbTo</a>\n          </li>\n        </ul>\n        <p>are <i>transcoded</i> of <i>Karney</i>'s iterative C++ function \n        <a \n        href=\"https://SourceForge.net/p/geographiclib/discussion/1026620/thread/2ddc295e/\"\n        target=\"_top\">rhumb-intercept</a>.</p>\n      </li>\n      <li>\n        Spherical functions\n        <ul>\n          <li>\n            <a href=\"pygeodesy.formy-module.html#excessKarney_\" \n            class=\"link\">pygeodesy.excessKarney_</a>, <a \n            href=\"pygeodesy.sphericalTrigonometry-module.html#areaOf\" \n            class=\"link\">sphericalTrigonometry.areaOf</a>\n          </li>\n        </ul>\n        <p>in <code>pygeodesy</code> are based on <i>Karney</i>'s post <a \n        href=\"https://MathOverflow.net/questions/97711/the-area-of-spherical-polygons\"\n        target=\"_top\">Area of a spherical polygon</a>, 3rd Answer.</p>\n      </li>\n    </ol>\n\n<hr />\n<div class=\"fields\">      <p><strong>Version:</strong>\n        25.12.23\n      </p>\n</div><!-- ==================== CLASSES ==================== -->\n<a name=\"section-Classes\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Classes</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.karney.Area3Tuple-class.html\" class=\"summary-name\">Area3Tuple</a><br />\n      3-Tuple <code>(number, perimeter, area)</code> with the \n        <code>number</code> of points of the polygon or polyline, the \n        <code>perimeter</code> in <code>meter</code> and the \n        <code>area</code> in <code>meter</code> <i>squared</i>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.karney.Caps-class.html\" class=\"summary-name\">Caps</a><br />\n      <i>Enum</i>-style masks to be bit-<code>or</code>'ed to specify \n        <code>geodesic</code>, <code>rhumb</code> or <code>-lines</code> \n        capabilities (<code>caps</code>) and method results \n        (<code>outmask</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.karney._CapsBase-class.html\" class=\"summary-name\">_CapsBase</a><br />\n      (INTERNAL) Base class for <code>Geodesic*</code>, \n        <code>Geodesic*Exact</code>, <code>Intersectool</code> and \n        <code>Rhumb*Base</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.karney.Direct9Tuple-class.html\" class=\"summary-name\">Direct9Tuple</a><br />\n      9-Tuple <code>(a12, lat2, lon2, azi2, s12, m12, M12, M21, \n        S12)</code> with arc length <code>a12</code>, angles \n        <code>lat2</code>, <code>lon2</code> and azimuth <code>azi2</code> \n        in <code>degrees</code>, distance <code>s12</code> and reduced \n        length <code>m12</code> in <code>meter</code> and area \n        <code>S12</code> in <code>meter</code> <i>squared</i>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.karney.GDict-class.html\" class=\"summary-name\">GDict</a><br />\n      A <code>dict</code> with both <code>key</code> <i>and</i> \n        <code>attribute</code> access to the <code>dict</code> items.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.karney.Inverse10Tuple-class.html\" class=\"summary-name\">Inverse10Tuple</a><br />\n      10-Tuple <code>(a12, s12, salp1, calp1, salp2, calp2, m12, M12, \n        M21, S12)</code> with arc length <code>a12</code> in \n        <code>degrees</code>, distance <code>s12</code> and reduced length \n        <code>m12</code> in <code>meter</code>, area <code>S12</code> in \n        <code>meter</code> <i>squared</i> and the sines <code>salp1</code>,\n        <code>salp2</code> and cosines <code>calp1</code>, \n        <code>calp2</code> of the initial <code>1</code> and final \n        <code>2</code> (forward) azimuths.\n    </td>\n  </tr>\n</table>\n<!-- ==================== VARIABLES ==================== -->\n<a name=\"section-Variables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Variables</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"__all__\"></a><span class=\"summary-name\">__all__</span> = <code title=\"_ALL_LAZY.karney\">_ALL_LAZY.karney</code>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.karney.Area3Tuple-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.karney.Area3Tuple</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.karney-module.html\">Module&nbsp;karney</a> ::\n        Class&nbsp;Area3Tuple\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.karney.Area3Tuple-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Area3Tuple</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n   object --+        \n            |        \n        tuple --+    \n                |    \n   object --+   |    \n            |   |    \n <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n                |    \n<a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a> --+\n                    |\n                   <strong class=\"uidshort\">Area3Tuple</strong>\n</pre>\n\n<hr />\n<p>3-Tuple <code>(number, perimeter, area)</code> with the \n  <code>number</code> of points of the polygon or polyline, the \n  <code>perimeter</code> in <code>meter</code> and the <code>area</code> in\n  <code>meter</code> <i>squared</i>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__delattr__\">__delattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__getattr__\">__getattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__setattr__\">__setattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#items\">items</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iteritems\">iteritems</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iterunits\">iterunits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#reUnit\">reUnit</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toUnits\">toUnits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>tuple</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__eq__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__iter__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__rmul__</code>,\n      <code>count</code>,\n      <code>index</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__new__\">__new__</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.karney.Caps-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.karney.Caps</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.karney-module.html\">Module&nbsp;karney</a> ::\n        Class&nbsp;Caps\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.karney.Caps-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Caps</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\nobject --+\n         |\n        <strong class=\"uidshort\">Caps</strong>\n</pre>\n\n<hr />\n<p><i>Enum</i>-style masks to be bit-<code>or</code>'ed to specify \n  <code>geodesic</code>, <code>rhumb</code> or <code>-lines</code> \n  capabilities (<code>caps</code>) and method results \n  (<code>outmask</code>).</p>\n  <p><code>AREA</code> - compute the area <code>S12</code>,</p>\n  <p><code>AZIMUTH</code> - include azimuths <code>azi1</code> and \n  <code>azi2</code>,</p>\n  <p><code>DISTANCE</code> - compute distance <code>s12</code> and angular \n  distance <code>a12</code>,</p>\n  <p><code>DISTANCE_IN</code> - allow distance <code>s12</code> in method \n  <code>.Direct</code>,</p>\n  <p><code>EMPTY</code> - nothing, formerly aka <code>NONE</code>,</p>\n  <p><code>GEODESICSCALE</code> - compute geodesic scales <code>M12</code> \n  and <code>M21</code>,</p>\n  <p><code>LATITUDE</code> - compute latitude <code>lat2</code>,</p>\n  <p><code>LINE_OFF</code> - Line without updates from parent \n  <code>geodesic</code> or <code>rhumb</code>.</p>\n  <p><code>LONGITUDE</code> - compute longitude <code>lon2</code>,</p>\n  <p><code>LONG_UNROLL</code> - unroll <code>lon2</code> in method \n  <code>.Direct</code>,</p>\n  <p><code>NONFINITONAN</code> - set all <code>GDict</code> items to \n  <code>NAN</code> iff any argument is <code>non-finite</code>.</p>\n  <p><code>REDUCEDLENGTH</code> - compute the reduced length \n  <code>m12</code>,</p>\n  <p><code>REVERSE2</code> - reverse azimuth <code>azi2</code> by 180 \n  degrees,</p>\n  <p>and <code>ALL</code> - all of the above.</p>\n  <p><code>STANDARD</code> = <code>AZIMUTH | DISTANCE | LATITUDE | \n  LONGITUDE</code></p>\n  <p><code>LINE_CAPS</code> = <code>STANDARD | DISTANCE_IN | REDUCEDLENGTH \n  | GEODESICSCALE</code></p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"items\"></a><span class=\"summary-sig-name\">items</span>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Yield all <i>public</i> <code>Caps</code> as 2-tuple <code>(NAME, \n      mask)</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"toStr\"></a><span class=\"summary-sig-name\">toStr</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">Cask</span>,\n        <span class=\"summary-sig-arg\">sep</span>=<span class=\"summary-sig-default\">'|'</span>)</span><br />\n      Return <code>Caps</code> or an <code>outmask</code> as \n      <code>str</code> or tuple of <code>str</code>s.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__format__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__init__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__repr__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__str__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS VARIABLES ==================== -->\n<a name=\"section-ClassVariables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Class Variables</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"ALL\"></a><span class=\"summary-name\">ALL</span> = <code title=\"32671\">32671</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"AREA\"></a><span class=\"summary-name\">AREA</span> = <code title=\"16400\">16400</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"AZIMUTH\"></a><span class=\"summary-name\">AZIMUTH</span> = <code title=\"512\">512</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"AZIMUTH_DISTANCE\"></a><span class=\"summary-name\">AZIMUTH_DISTANCE</span> = <code title=\"1537\">1537</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"AZIMUTH_DISTANCE_AREA\"></a><span class=\"summary-name\">AZIMUTH_DISTANCE_AREA</span> = <code title=\"17937\">17937</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"DISTANCE\"></a><span class=\"summary-name\">DISTANCE</span> = <code title=\"1025\">1025</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"DISTANCE_IN\"></a><span class=\"summary-name\">DISTANCE_IN</span> = <code title=\"2051\">2051</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"EMPTY\"></a><span class=\"summary-name\">EMPTY</span> = <code title=\"0\">0</code><br />\n      hash(x)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"GEODESICSCALE\"></a><span class=\"summary-name\">GEODESICSCALE</span> = <code title=\"8197\">8197</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"LATITUDE\"></a><span class=\"summary-name\">LATITUDE</span> = <code title=\"128\">128</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"LATITUDE_LONGITUDE\"></a><span class=\"summary-name\">LATITUDE_LONGITUDE</span> = <code title=\"392\">392</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"LATITUDE_LONGITUDE_AREA\"></a><span class=\"summary-name\">LATITUDE_LONGITUDE_AREA</span> = <code title=\"16792\">16792</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"LINE_CAPS\"></a><span class=\"summary-name\">LINE_CAPS</span> = <code title=\"16271\">16271</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"LINE_OFF\"></a><span class=\"summary-name\">LINE_OFF</span> = <code title=\"65536\">65536</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"LONGITUDE\"></a><span class=\"summary-name\">LONGITUDE</span> = <code title=\"264\">264</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"LONG_UNROLL\"></a><span class=\"summary-name\">LONG_UNROLL</span> = <code title=\"32768\">32768</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"NONFINITONAN\"></a><span class=\"summary-name\">NONFINITONAN</span> = <code title=\"131072\">131072</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"REDUCEDLENGTH\"></a><span class=\"summary-name\">REDUCEDLENGTH</span> = <code title=\"4101\">4101</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"REVERSE2\"></a><span class=\"summary-name\">REVERSE2</span> = <code title=\"262144\">262144</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"STANDARD\"></a><span class=\"summary-name\">STANDARD</span> = <code title=\"1929\">1929</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"STANDARD_LINE\"></a><span class=\"summary-name\">STANDARD_LINE</span> = <code title=\"3979\">3979</code>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.karney.Direct9Tuple-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.karney.Direct9Tuple</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.karney-module.html\">Module&nbsp;karney</a> ::\n        Class&nbsp;Direct9Tuple\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.karney.Direct9Tuple-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Direct9Tuple</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n   object --+            \n            |            \n        tuple --+        \n                |        \n   object --+   |        \n            |   |        \n <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+        \n                |        \n<a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a> --+    \n                    |    \n              _GTuple --+\n                        |\n                       <strong class=\"uidshort\">Direct9Tuple</strong>\n</pre>\n\n<hr />\n<p>9-Tuple <code>(a12, lat2, lon2, azi2, s12, m12, M12, M21, S12)</code> \n  with arc length <code>a12</code>, angles <code>lat2</code>, \n  <code>lon2</code> and azimuth <code>azi2</code> in <code>degrees</code>, \n  distance <code>s12</code> and reduced length <code>m12</code> in \n  <code>meter</code> and area <code>S12</code> in <code>meter</code> \n  <i>squared</i>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>_GTuple</code></b>:\n      <code>toGDict</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__delattr__\">__delattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__getattr__\">__getattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__setattr__\">__setattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#items\">items</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iteritems\">iteritems</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iterunits\">iterunits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#reUnit\">reUnit</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toUnits\">toUnits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>tuple</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__eq__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__iter__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__rmul__</code>,\n      <code>count</code>,\n      <code>index</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__new__\">__new__</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.karney.GDict-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.karney.GDict</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.karney-module.html\">Module&nbsp;karney</a> ::\n        Class&nbsp;GDict\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.karney.GDict-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class GDict</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\nobject --+        \n         |        \n      dict --+    \n             |    \n   <a href=\"pygeodesy.named.ADict-class.html\">named.ADict</a> --+\n                 |\n                <strong class=\"uidshort\">GDict</strong>\n</pre>\n\n<dl><dt>Known Subclasses:</dt>\n<dd>\n      <ul class=\"subclass-list\">\n<li class=\"private\">geodesicx.gx._PDict</li>  </ul>\n</dd></dl>\n\n<hr />\n<p>A <code>dict</code> with both <code>key</code> <i>and</i> \n  <code>attribute</code> access to the <code>dict</code> items.</p>\n  <p>Results of all <code>geodesic</code> and <code>rhumb</code> methods \n  (with capitalized named) are returned as <a \n  href=\"pygeodesy.karney.GDict-class.html\" class=\"link\">GDict</a> \n  instances, see for example <a \n  href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html\" \n  class=\"link\">GeodesicExact</a> and <a \n  href=\"pygeodesy.rhumb.aux_.RhumbAux-class.html\" \n  class=\"link\">RhumbAux</a>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.karney.GDict-class.html#toDirect9Tuple\" class=\"summary-sig-name\">toDirect9Tuple</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">dflt</span>=<span class=\"summary-sig-default\">nan</span>)</span><br />\n      Convert this <a href=\"pygeodesy.karney.GDict-class.html\" \n      class=\"link\">GDict</a> result to a 9-tuple, like <i>Karney</i>'s \n      method <code>geographiclib.geodesic.Geodesic._GenDirect</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.karney.GDict-class.html#toGeod3Solve8Tuple\" class=\"summary-sig-name\">toGeod3Solve8Tuple</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">dflt</span>=<span class=\"summary-sig-default\">nan</span>)</span><br />\n      Convert this <a href=\"pygeodesy.karney.GDict-class.html\" \n      class=\"link\">GDict</a> result to an 8-Tuple, compatible with \n      <i>Karney</i>'s <a \n      href=\"https://GeographicLib.SourceForge.io/C++/doc/Geod3Solve.1.html\"\n      target=\"_top\">Geod3Solve</a> result.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.karney.GDict-class.html#toGeodSolve12Tuple\" class=\"summary-sig-name\">toGeodSolve12Tuple</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">dflt</span>=<span class=\"summary-sig-default\">nan</span>)</span><br />\n      Convert this <a href=\"pygeodesy.karney.GDict-class.html\" \n      class=\"link\">GDict</a> result to a 12-Tuple, compatible with \n      <i>Karney</i>'s <a \n      href=\"https://GeographicLib.SourceForge.io/C++/doc/GeodSolve.1.html\" \n      target=\"_top\">GeodSolve</a> result.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.karney.GDict-class.html#toInverse10Tuple\" class=\"summary-sig-name\">toInverse10Tuple</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">dflt</span>=<span class=\"summary-sig-default\">nan</span>)</span><br />\n      Convert this <a href=\"pygeodesy.karney.GDict-class.html\" \n      class=\"link\">GDict</a> result to a 10-tuple, like <i>Karney</i>'s \n      method <code>geographiclib.geodesic.Geodesic._GenInverse</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.karney.GDict-class.html#toRhumb7Tuple\" class=\"summary-sig-name\">toRhumb7Tuple</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">dflt</span>=<span class=\"summary-sig-default\">nan</span>)</span><br />\n      DEPRECATED on 23.12.07, use method <code>toRhumb8Tuple</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.karney.GDict-class.html#toRhumb8Tuple\" class=\"summary-sig-name\">toRhumb8Tuple</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">dflt</span>=<span class=\"summary-sig-default\">nan</span>)</span><br />\n      Convert this <a href=\"pygeodesy.karney.GDict-class.html\" \n      class=\"link\">GDict</a> result to a 8-tuple.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.karney.GDict-class.html#toRhumbSolve7Tuple\" class=\"summary-sig-name\">toRhumbSolve7Tuple</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">dflt</span>=<span class=\"summary-sig-default\">nan</span>)</span><br />\n      Convert this <a href=\"pygeodesy.karney.GDict-class.html\" \n      class=\"link\">GDict</a> result to a 8-tuple.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named.ADict-class.html\">named.ADict</a></code></b>:\n      <code><a href=\"pygeodesy.named.ADict-class.html#__getattr__\">__getattr__</a></code>,\n      <code><a href=\"pygeodesy.named.ADict-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named.ADict-class.html#__setattr__\">__setattr__</a></code>,\n      <code><a href=\"pygeodesy.named.ADict-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named.ADict-class.html#set_\">set_</a></code>,\n      <code><a href=\"pygeodesy.named.ADict-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named.ADict-class.html#toStr\">toStr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>dict</code></b>:\n      <code>__cmp__</code>,\n      <code>__contains__</code>,\n      <code>__delitem__</code>,\n      <code>__eq__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__gt__</code>,\n      <code>__init__</code>,\n      <code>__iter__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__ne__</code>,\n      <code>__new__</code>,\n      <code>__setitem__</code>,\n      <code>__sizeof__</code>,\n      <code>clear</code>,\n      <code>copy</code>,\n      <code>fromkeys</code>,\n      <code>get</code>,\n      <code>has_key</code>,\n      <code>items</code>,\n      <code>iteritems</code>,\n      <code>iterkeys</code>,\n      <code>itervalues</code>,\n      <code>keys</code>,\n      <code>pop</code>,\n      <code>popitem</code>,\n      <code>setdefault</code>,\n      <code>update</code>,\n      <code>values</code>,\n      <code>viewitems</code>,\n      <code>viewkeys</code>,\n      <code>viewvalues</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__format__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS VARIABLES ==================== -->\n<a name=\"section-ClassVariables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Class Variables</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>dict</code></b>:\n      <code>__hash__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named.ADict-class.html\">named.ADict</a></code></b>:\n      <code><a href=\"pygeodesy.named.ADict-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named.ADict-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"toDirect9Tuple\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toDirect9Tuple</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">dflt</span>=<span class=\"sig-default\">nan</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert this <a href=\"pygeodesy.karney.GDict-class.html\" \n  class=\"link\">GDict</a> result to a 9-tuple, like <i>Karney</i>'s method \n  <code>geographiclib.geodesic.Geodesic._GenDirect</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>dflt</code></strong> - Default value for missing items (<code>any</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><a href=\"pygeodesy.karney.Direct9Tuple-class.html\" \n          class=\"link\">Direct9Tuple</a><code>(a12, lat2, lon2, azi2, s12, \n          m12, M12, M21, S12)</code></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toGeod3Solve8Tuple\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toGeod3Solve8Tuple</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">dflt</span>=<span class=\"sig-default\">nan</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert this <a href=\"pygeodesy.karney.GDict-class.html\" \n  class=\"link\">GDict</a> result to an 8-Tuple, compatible with \n  <i>Karney</i>'s <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/Geod3Solve.1.html\" \n  target=\"_top\">Geod3Solve</a> result.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>dflt</code></strong> - Default value for missing items (<code>any</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><a href=\"pygeodesy.geod3solve.Geod3Solve8Tuple-class.html\" \n          class=\"link\">Geod3Solve8Tuple</a><code>(bet1, omg1, alp1, bet2, \n          omg2, alp2, s12, a12)</code>.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toGeodSolve12Tuple\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toGeodSolve12Tuple</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">dflt</span>=<span class=\"sig-default\">nan</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert this <a href=\"pygeodesy.karney.GDict-class.html\" \n  class=\"link\">GDict</a> result to a 12-Tuple, compatible with \n  <i>Karney</i>'s <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/GeodSolve.1.html\" \n  target=\"_top\">GeodSolve</a> result.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>dflt</code></strong> - Default value for missing items (<code>any</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><a href=\"pygeodesy.geodsolve.GeodSolve12Tuple-class.html\" \n          class=\"link\">GeodSolve12Tuple</a><code>(lat1, lon1, azi1, lat2, \n          lon2, azi2, s12, a12, m12, M12, M21, S12)</code>.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toInverse10Tuple\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toInverse10Tuple</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">dflt</span>=<span class=\"sig-default\">nan</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert this <a href=\"pygeodesy.karney.GDict-class.html\" \n  class=\"link\">GDict</a> result to a 10-tuple, like <i>Karney</i>'s method \n  <code>geographiclib.geodesic.Geodesic._GenInverse</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>dflt</code></strong> - Default value for missing items (<code>any</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><a href=\"pygeodesy.karney.Inverse10Tuple-class.html\" \n          class=\"link\">Inverse10Tuple</a><code>(a12, s12, salp1, calp1, \n          salp2, calp2, m12, M12, M21, S12)</code>.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toRhumb7Tuple\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toRhumb7Tuple</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">dflt</span>=<span class=\"sig-default\">nan</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED on 23.12.07, use method <code>toRhumb8Tuple</code>.</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd>A <i>DEPRECATED</i> <a \n          href=\"pygeodesy.deprecated.classes.Rhumb7Tuple-class.html\" \n          class=\"link\">Rhumb7Tuple</a>.</dd>\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_method</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toRhumb8Tuple\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toRhumb8Tuple</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">dflt</span>=<span class=\"sig-default\">nan</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert this <a href=\"pygeodesy.karney.GDict-class.html\" \n  class=\"link\">GDict</a> result to a 8-tuple.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>dflt</code></strong> - Default value for missing items (<code>any</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><a href=\"pygeodesy.karney.Rhumb8Tuple-class.html\" class=\"link\" \n          onclick=\"show_private();\">Rhumb8Tuple</a><code>(lat1, lon1, lat2,\n          lon2, azi12, s12, S12, a12)</code>.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toRhumbSolve7Tuple\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toRhumbSolve7Tuple</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">dflt</span>=<span class=\"sig-default\">nan</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert this <a href=\"pygeodesy.karney.GDict-class.html\" \n  class=\"link\">GDict</a> result to a 8-tuple.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>dflt</code></strong> - Default value for missing items (<code>any</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><a href=\"pygeodesy.rhumb.solve.RhumbSolve7Tuple-class.html\" \n          class=\"link\">RhumbSolve7Tuple</a><code>(lat1, lon1, lat2, lon2, \n          azi12, s12, S12)</code>.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.karney.Inverse10Tuple-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.karney.Inverse10Tuple</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.karney-module.html\">Module&nbsp;karney</a> ::\n        Class&nbsp;Inverse10Tuple\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.karney.Inverse10Tuple-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Inverse10Tuple</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n   object --+            \n            |            \n        tuple --+        \n                |        \n   object --+   |        \n            |   |        \n <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+        \n                |        \n<a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a> --+    \n                    |    \n              _GTuple --+\n                        |\n                       <strong class=\"uidshort\">Inverse10Tuple</strong>\n</pre>\n\n<hr />\n<p>10-Tuple <code>(a12, s12, salp1, calp1, salp2, calp2, m12, M12, M21, \n  S12)</code> with arc length <code>a12</code> in <code>degrees</code>, \n  distance <code>s12</code> and reduced length <code>m12</code> in \n  <code>meter</code>, area <code>S12</code> in <code>meter</code> \n  <i>squared</i> and the sines <code>salp1</code>, <code>salp2</code> and \n  cosines <code>calp1</code>, <code>calp2</code> of the initial \n  <code>1</code> and final <code>2</code> (forward) azimuths.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.karney.Inverse10Tuple-class.html#toGDict\" class=\"summary-sig-name\">toGDict</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">**updates</span>)</span><br />\n      Convert this <code>Inverse10Tuple</code> to a <a \n      href=\"pygeodesy.karney.GDict-class.html\" class=\"link\">GDict</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__delattr__\">__delattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__getattr__\">__getattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__setattr__\">__setattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#items\">items</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iteritems\">iteritems</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iterunits\">iterunits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#reUnit\">reUnit</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toUnits\">toUnits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>tuple</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__eq__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__iter__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__rmul__</code>,\n      <code>count</code>,\n      <code>index</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__new__\">__new__</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"toGDict\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toGDict</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">**updates</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert this <code>Inverse10Tuple</code> to a <a \n  href=\"pygeodesy.karney.GDict-class.html\" class=\"link\">GDict</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>updates</code></strong> - Optional items to apply (<code>nam=value</code> pairs)</li>\n    </ul></dd>\n    <dt>Overrides:\n        _GTuple.toGDict\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.karney.Rhumb8Tuple-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.karney.Rhumb8Tuple</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.karney-module.html\">Module&nbsp;karney</a> ::\n        Class&nbsp;Rhumb8Tuple\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.karney.Rhumb8Tuple-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Rhumb8Tuple</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n   object --+            \n            |            \n        tuple --+        \n                |        \n   object --+   |        \n            |   |        \n <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+        \n                |        \n<a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a> --+    \n                    |    \n              _GTuple --+\n                        |\n                       <strong class=\"uidshort\">Rhumb8Tuple</strong>\n</pre>\n\n<dl><dt>Known Subclasses:</dt>\n<dd>\n      <ul class=\"subclass-list\">\n<li><a href=\"pygeodesy.rhumb.solve.RhumbSolve7Tuple-class.html\">rhumb.solve.RhumbSolve7Tuple</a></li>  </ul>\n</dd></dl>\n\n<hr />\n<p>8-Tuple <code>(lat1, lon1, lat2, lon2, azi12, s12, S12, a12)</code> \n  with lat- <code>lat1</code>, <code>lat2</code> and longitudes \n  <code>lon1</code>, <code>lon2</code> of both points, the azimuth of the \n  rhumb line <code>azi12</code>, the distance <code>s12</code>, the area \n  <code>S12</code> under the rhumb line and the angular distance \n  <code>a12</code> between both points.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.karney.Rhumb8Tuple-class.html#toDirect9Tuple\" class=\"summary-sig-name\">toDirect9Tuple</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">dflt</span>=<span class=\"summary-sig-default\">nan</span>,\n        <span class=\"summary-sig-arg\">**a12_azi1_azi2_m12_M12_M21</span>)</span><br />\n      Convert this <a href=\"pygeodesy.karney.Rhumb8Tuple-class.html\" \n      class=\"link\" onclick=\"show_private();\">Rhumb8Tuple</a> result to a \n      9-tuple, like <i>Karney</i>'s method \n      <code>geographiclib.geodesic.Geodesic._GenDirect</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.karney.Rhumb8Tuple-class.html#toInverse10Tuple\" class=\"summary-sig-name\">toInverse10Tuple</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">dflt</span>=<span class=\"summary-sig-default\">nan</span>,\n        <span class=\"summary-sig-arg\">**a12_m12_M12_M21_salp1_calp1_salp2_calp2</span>)</span><br />\n      Convert this <a href=\"pygeodesy.karney.Rhumb8Tuple-class.html\" \n      class=\"link\" onclick=\"show_private();\">Rhumb8Tuple</a> to a 10-tuple,\n      like <i>Karney</i>'s method \n      <code>geographiclib.geodesic.Geodesic._GenInverse</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>_GTuple</code></b>:\n      <code>toGDict</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__delattr__\">__delattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__getattr__\">__getattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__setattr__\">__setattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#items\">items</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iteritems\">iteritems</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iterunits\">iterunits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#reUnit\">reUnit</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toUnits\">toUnits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>tuple</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__eq__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__iter__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__rmul__</code>,\n      <code>count</code>,\n      <code>index</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__new__\">__new__</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"toDirect9Tuple\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toDirect9Tuple</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">dflt</span>=<span class=\"sig-default\">nan</span>,\n        <span class=\"sig-arg\">**a12_azi1_azi2_m12_M12_M21</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert this <a href=\"pygeodesy.karney.Rhumb8Tuple-class.html\" \n  class=\"link\" onclick=\"show_private();\">Rhumb8Tuple</a> result to a \n  9-tuple, like <i>Karney</i>'s method \n  <code>geographiclib.geodesic.Geodesic._GenDirect</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>dflt</code></strong> - Default value for missing items (<code>any</code>).</li>\n        <li><strong class=\"pname\"><code>a12_azi1_azi2_m12_M12_M21</code></strong> - Optional keyword arguments to specify or override <a \n          href=\"pygeodesy.karney.Inverse10Tuple-class.html\" \n          class=\"link\">Inverse10Tuple</a> items.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><a href=\"pygeodesy.karney.Direct9Tuple-class.html\" \n          class=\"link\">Direct9Tuple</a><code>(a12, lat2, lon2, azi2, s12, \n          m12, M12, M21, S12)</code></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toInverse10Tuple\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toInverse10Tuple</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">dflt</span>=<span class=\"sig-default\">nan</span>,\n        <span class=\"sig-arg\">**a12_m12_M12_M21_salp1_calp1_salp2_calp2</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert this <a href=\"pygeodesy.karney.Rhumb8Tuple-class.html\" \n  class=\"link\" onclick=\"show_private();\">Rhumb8Tuple</a> to a 10-tuple, \n  like <i>Karney</i>'s method \n  <code>geographiclib.geodesic.Geodesic._GenInverse</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>dflt</code></strong> - Default value for missing items (<code>any</code>).</li>\n        <li><strong class=\"pname\"><code>a12_m12_M12_M21_salp1_calp1_salp2_calp2</code></strong> - Optional keyword arguments to specify or override <a \n          href=\"pygeodesy.karney.Inverse10Tuple-class.html\" \n          class=\"link\">Inverse10Tuple</a> items.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><a href=\"pygeodesy.karney.Inverse10Tuple-class.html\" \n          class=\"link\">Inverse10Tuple</a><code>(a12, s12, salp1, calp1, \n          salp2, calp2, m12, M12, M21, S12)</code>.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.karney._CapsBase-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.karney._CapsBase</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.karney-module.html\">Module&nbsp;karney</a> ::\n        Class&nbsp;_CapsBase\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.karney._CapsBase-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class _CapsBase</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+        \n           |        \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n               |    \n<a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+\n                   |\n                  <strong class=\"uidshort\">_CapsBase</strong>\n</pre>\n\n<dl><dt>Known Subclasses:</dt>\n<dd>\n      <ul class=\"subclass-list\">\n<li class=\"private\">_kWrapped</li><li>, <a href=\"pygeodesy.solveBase._SolveCapsBase-class.html\">solveBase._SolveCapsBase</a></li><li class=\"private\">, geodesicx.gxbases._GeodesicBase</li><li>, <a href=\"pygeodesy.rhumb.bases.RhumbBase-class.html\">rhumb.bases.RhumbBase</a></li><li>, <a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html\">rhumb.bases.RhumbLineBase</a></li>  </ul>\n</dd></dl>\n\n<hr />\n<p>(INTERNAL) Base class for <code>Geodesic*</code>, \n  <code>Geodesic*Exact</code>, <code>Intersectool</code> and \n  <code>Rhumb*Base</code>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.karney._CapsBase-class.html#caps_\" class=\"summary-sig-name\">caps_</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">caps</span>)</span><br />\n      Check the available capabilities.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#others\">others</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#toStr\">toStr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__init__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS VARIABLES ==================== -->\n<a name=\"section-ClassVariables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Class Variables</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"ALL\"></a><span class=\"summary-name\">ALL</span> = <code title=\"32671\">32671</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"AREA\"></a><span class=\"summary-name\">AREA</span> = <code title=\"16400\">16400</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"AZIMUTH\"></a><span class=\"summary-name\">AZIMUTH</span> = <code title=\"512\">512</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"DISTANCE\"></a><span class=\"summary-name\">DISTANCE</span> = <code title=\"1025\">1025</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"DISTANCE_IN\"></a><span class=\"summary-name\">DISTANCE_IN</span> = <code title=\"2051\">2051</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"EMPTY\"></a><span class=\"summary-name\">EMPTY</span> = <code title=\"0\">0</code><br />\n      hash(x)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"GEODESICSCALE\"></a><span class=\"summary-name\">GEODESICSCALE</span> = <code title=\"8197\">8197</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"LATITUDE\"></a><span class=\"summary-name\">LATITUDE</span> = <code title=\"128\">128</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"LINE_CAPS\"></a><span class=\"summary-name\">LINE_CAPS</span> = <code title=\"16271\">16271</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"LINE_OFF\"></a><span class=\"summary-name\">LINE_OFF</span> = <code title=\"65536\">65536</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"LONGITUDE\"></a><span class=\"summary-name\">LONGITUDE</span> = <code title=\"264\">264</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"LONG_UNROLL\"></a><span class=\"summary-name\">LONG_UNROLL</span> = <code title=\"32768\">32768</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"NONFINITONAN\"></a><span class=\"summary-name\">NONFINITONAN</span> = <code title=\"131072\">131072</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"REDUCEDLENGTH\"></a><span class=\"summary-name\">REDUCEDLENGTH</span> = <code title=\"4101\">4101</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"STANDARD\"></a><span class=\"summary-name\">STANDARD</span> = <code title=\"1929\">1929</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"STANDARD_LINE\"></a><span class=\"summary-name\">STANDARD_LINE</span> = <code title=\"3979\">3979</code>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.karney._CapsBase-class.html#caps\" class=\"summary-name\">caps</a><br />\n      Get the capabilities (bit-or'ed <code>Caps</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.karney._CapsBase-class.html#debug\" class=\"summary-name\">debug</a><br />\n      Get the <code>debug</code> option (<code>bool</code>).\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"caps_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">caps_</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">caps</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Check the available capabilities.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>caps</code></strong> - Bit-or'ed combination of <a \n          href=\"pygeodesy.karney.Caps-class.html\" class=\"link\">Caps</a> \n          values for all capabilities to be checked.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>True</code> if <i>all</i> <b><code>caps</code></b> are \n          available, <code>False</code> otherwise (<code>bool</code>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"caps\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">caps</h3>\n  <p>Get the capabilities (bit-or'ed <code>Caps</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">caps(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the capabilities (bit-or'ed <code>Caps</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"debug\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">debug</h3>\n  <p>Get the <code>debug</code> option (<code>bool</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">debug(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <code>debug</code> option (<code>bool</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">debug(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">debug</span>)</span>\n        - Set the <code>debug</code> option (<code>bool</code>) to include more \ndetails in <a href=\"pygeodesy.karney.GDict-class.html\" \nclass=\"link\">GDict</a> results.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.ktm-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.ktm</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        Module&nbsp;ktm\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.ktm-module.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== MODULE DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Module ktm</h1><p class=\"nomargin-top\"></p>\n<p>A pure Python version of <i>Karney</i>'s C++ class <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1TransverseMercator.html\"\n  target=\"_top\">TransverseMercator</a> based on <i>Kr&#252;ger</i> series.  See \n  also <i>Karney</i>'s utility <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/TransverseMercatorProj.1.html\"\n  target=\"_top\">TransverseMercatorProj</a>.</p>\n  <p>Following and further below is a copy of <i>Karney</i>'s <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/TransverseMercator_8hpp_source.html\"\n  target=\"_top\">TransverseMercator.hpp</a> file <code>Header</code>.</p>\n  <p>This implementation follows closely JHS 154, ETRS89 - <i>j&#228;rjestelm&#228;&#228;n\n  liittyv&#228;t karttaprojektiot, tasokoordinaatistot ja karttalehtijako</i> \n  (Map projections, plane coordinates, and map sheet index for ETRS89), \n  published by JUHTA, Finnish Geodetic Institute, and the National Land \n  Survey of Finland (2006).  The relevant section is available as the <a \n  href=\"http://Docs.JHS-suositukset.FI/jhs-suositukset/JHS154/JHS154_liite1.pdf\"\n  target=\"_top\">2008 PDF file</a>.</p>\n  <p>This is a straight transcription of the formulas in this paper with \n  the following exceptions:</p>\n  <ul>\n    <li>\n      Use of 6th order series instead of 4th order series. This reduces the\n      error to about 5 nm for the UTM range of coordinates (instead of 200 \n      nm), with a speed penalty of only 1%,\n    </li>\n    <li>\n      Use Newton's method instead of plain iteration to solve for latitude \n      in terms of isometric latitude in the Reverse method,\n    </li>\n    <li>\n      Use of Horner's representation for evaluating polynomials and \n      Clenshaw's method for summing trigonometric series,\n    </li>\n    <li>\n      Several modifications of the formulas to improve the numerical \n      accuracy,\n    </li>\n    <li>\n      Evaluating the convergence and scale using the expression for the \n      projection or its inverse.\n    </li>\n  </ul>\n  <p>Copyright (C) <a href=\"mailto:Karney@Alum.MIT.edu\" \n  target=\"_top\">Charles Karney</a> (2008-2024) and licensed under the \n  MIT/X11 License.  For more information, see the <a \n  href=\"https://GeographicLib.SourceForge.io\" \n  target=\"_top\">GeographicLib</a> documentation.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Version:</strong>\n        25.08.31\n      </p>\n</div><!-- ==================== CLASSES ==================== -->\n<a name=\"section-Classes\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Classes</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ktm.KTMError-class.html\" class=\"summary-name\">KTMError</a><br />\n      Error raised for <a \n        href=\"pygeodesy.ktm.KTransverseMercator-class.html\" \n        class=\"link\">KTransverseMercator</a> and <a \n        href=\"pygeodesy.ktm.KTransverseMercator-class.html#forward\" \n        class=\"link\">KTransverseMercator.forward</a> issues.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ktm.KTransverseMercator-class.html\" class=\"summary-name\">KTransverseMercator</a><br />\n      <i>Karney</i>'s C++ class <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1TransverseMercator.html\"\n        target=\"_top\">TransverseMercator</a> transcoded to pure Python, \n        following is a partial copy of <i>Karney</i>'s documentation.\n    </td>\n  </tr>\n</table>\n<!-- ==================== VARIABLES ==================== -->\n<a name=\"section-Variables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Variables</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"__all__\"></a><span class=\"summary-name\">__all__</span> = <code title=\"_ALL_LAZY.ktm\">_ALL_LAZY.ktm</code>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.ktm.KTMError-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.ktm.KTMError</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.ktm-module.html\">Module&nbsp;ktm</a> ::\n        Class&nbsp;KTMError\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.ktm.KTMError-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class KTMError</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n              object --+                    \n                       |                    \nexceptions.BaseException --+                \n                           |                \n        exceptions.Exception --+            \n                               |            \n        exceptions.StandardError --+        \n                                   |        \n               exceptions.ValueError --+    \n                                       |    \n                      errors._ValueError --+\n                                           |\n                                          <strong class=\"uidshort\">KTMError</strong>\n</pre>\n\n<hr />\n<p>Error raised for <a \n  href=\"pygeodesy.ktm.KTransverseMercator-class.html\" \n  class=\"link\">KTransverseMercator</a> and <a \n  href=\"pygeodesy.ktm.KTransverseMercator-class.html#forward\" \n  class=\"link\">KTransverseMercator.forward</a> issues.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>errors._ValueError</code></b>:\n      <code>__init__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.ValueError</code></b>:\n      <code>__new__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.BaseException</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getslice__</code>,\n      <code>__reduce__</code>,\n      <code>__repr__</code>,\n      <code>__setattr__</code>,\n      <code>__setstate__</code>,\n      <code>__str__</code>,\n      <code>__unicode__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__format__</code>,\n      <code>__hash__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.BaseException</code></b>:\n      <code>args</code>,\n      <code>message</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.ktm.KTransverseMercator-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.ktm.KTransverseMercator</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.ktm-module.html\">Module&nbsp;ktm</a> ::\n        Class&nbsp;KTransverseMercator\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.ktm.KTransverseMercator-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class KTransverseMercator</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+        \n           |        \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n               |    \n<a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+\n                   |\n                  <strong class=\"uidshort\">KTransverseMercator</strong>\n</pre>\n\n<hr />\n<p><i>Karney</i>'s C++ class <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1TransverseMercator.html\"\n  target=\"_top\">TransverseMercator</a> transcoded to pure Python, following\n  is a partial copy of <i>Karney</i>'s documentation.</p>\n  <p>Transverse Mercator projection based on Kr&#252;ger's method which \n  evaluates the projection and its inverse in terms of a series.</p>\n  <p>There's a singularity in the projection at <i>phi = 0, lam - lam0 = \n  +/- (1 - e) 90</i>, about +/- 82.6 degrees for WGS84, where <i>e</i> is \n  the eccentricity.  Beyond this point, the series ceases to converge and \n  the results from this method will be garbage.  <i>To be on the safe side,\n  don't use this method if the angular distance from the central meridian \n  exceeds (1 - 2e) x 90</i>, about 75 degrees for the WGS84 ellipsoid.</p>\n  <p>Class <a href=\"pygeodesy.etm.ExactTransverseMercator-class.html\" \n  class=\"link\">ExactTransverseMercator</a> is an alternative implementation\n  of the projection using <i>exact</i> formulas which yield accurate (to 8 \n  nm) results over the entire ellipsoid.</p>\n  <p>The ellipsoid parameters and the central scale are set in the \n  constructor. The central meridian (which is a trivial shift of the \n  longitude) is specified as the <code>lon0</code> keyword argument of the \n  <a href=\"pygeodesy.ktm.KTransverseMercator-class.html#forward\" \n  class=\"link\">KTransverseMercator.forward</a> and <a \n  href=\"pygeodesy.ktm.KTransverseMercator-class.html#reverse\" \n  class=\"link\">KTransverseMercator.reverse</a> methods.  The latitude of \n  origin is taken to be the equator.  There is no provision in this class \n  for specifying a false easting or false northing or a different latitude \n  of origin.  However these are can be simply included by the calling \n  function.</p>\n  <p>The <a href=\"pygeodesy.ktm.KTransverseMercator-class.html#forward\" \n  class=\"link\">KTransverseMercator.forward</a> and <a \n  href=\"pygeodesy.ktm.KTransverseMercator-class.html#reverse\" \n  class=\"link\">KTransverseMercator.reverse</a> methods also return the \n  meridian convergence <code>gamma</code> and scale <code>k</code>.  The \n  meridian convergence is the bearing of grid North, the <code>y \n  axis</code>, measured clockwise from true North.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ktm.KTransverseMercator-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">a_earth</span>=<span class=\"summary-sig-default\">Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.257223<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"summary-sig-arg\">f</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">lon0</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">k0</span>=<span class=\"summary-sig-default\">0.9996</span>,\n        <span class=\"summary-sig-arg\">raiser</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">**TMorder_name</span>)</span><br />\n      New <a href=\"pygeodesy.ktm.KTransverseMercator-class.html\" \n      class=\"link\">KTransverseMercator</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ktm.KTransverseMercator-class.html#forward\" class=\"summary-sig-name\">forward</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lat</span>,\n        <span class=\"summary-sig-arg\">lon</span>,\n        <span class=\"summary-sig-arg\">lon0</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Forward projection, from geographic to transverse Mercator.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ktm.KTransverseMercator-class.html#reset\" class=\"summary-sig-name\">reset</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lat0</span>,\n        <span class=\"summary-sig-arg\">lon0</span>)</span><br />\n      Set the central parallel and meridian.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ktm.KTransverseMercator-class.html#reverse\" class=\"summary-sig-name\">reverse</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">x</span>,\n        <span class=\"summary-sig-arg\">y</span>,\n        <span class=\"summary-sig-arg\">lon0</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Reverse projection, from transverse Mercator to geographic.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ktm.KTransverseMercator-class.html#toStr\" class=\"summary-sig-name\">toStr</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">**kwds</span>)</span><br />\n      Return a <code>str</code> representation.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#others\">others</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#toRepr\">toRepr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ktm.KTransverseMercator-class.html#datum\" class=\"summary-name\">datum</a><br />\n      Get this rhumb's datum (<a href=\"pygeodesy.datums.Datum-class.html\" \n      class=\"link\">Datum</a>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ktm.KTransverseMercator-class.html#ellipsoid\" class=\"summary-name\">ellipsoid</a><br />\n      Get the ellipsoid (<a \n      href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n      class=\"link\">Ellipsoid</a>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ktm.KTransverseMercator-class.html#equatoradius\" class=\"summary-name\">equatoradius</a><br />\n      Get the <code>ellipsoid</code>'s equatorial radius, semi-axis \n      (<code>meter</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ktm.KTransverseMercator-class.html#a\" class=\"summary-name\">a</a><br />\n      Get the <code>ellipsoid</code>'s equatorial radius, semi-axis \n      (<code>meter</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ktm.KTransverseMercator-class.html#flattening\" class=\"summary-name\">flattening</a><br />\n      Get the <code>ellipsoid</code>'s flattening (<code>scalar</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ktm.KTransverseMercator-class.html#f\" class=\"summary-name\">f</a><br />\n      Get the <code>ellipsoid</code>'s flattening (<code>scalar</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ktm.KTransverseMercator-class.html#k0\" class=\"summary-name\">k0</a><br />\n      Class <code>property</code> with a <code>.name</code> attribute.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ktm.KTransverseMercator-class.html#lon0\" class=\"summary-name\">lon0</a><br />\n      Class <code>property</code> with a <code>.name</code> attribute.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ktm.KTransverseMercator-class.html#raiser\" class=\"summary-name\">raiser</a><br />\n      Class <code>property</code> with a <code>.name</code> attribute.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ktm.KTransverseMercator-class.html#TMorder\" class=\"summary-name\">TMorder</a><br />\n      Get the <i>Transverse Mercator</i> order (<code>int</code>, 4, 5, 6, \n      7 or 8).\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">a_earth</span>=<span class=\"sig-default\">Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.257223<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"sig-arg\">f</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">lon0</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">k0</span>=<span class=\"sig-default\">0.9996</span>,\n        <span class=\"sig-arg\">raiser</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">**TMorder_name</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.ktm.KTransverseMercator-class.html\" \n  class=\"link\">KTransverseMercator</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>a_earth</code></strong> - This rhumb's earth (<a \n          href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a>, <a \n          href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>, <a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>, \n          2-tuple (<code>a, f</code>)) or the equatorial radius \n          (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>f</code></strong> - The ellipsoid's flattening (<code>scalar</code>), required if \n          <b><code>a_earth</code></b> is is <code>meter</code>, ignored \n          otherwise.</li>\n        <li><strong class=\"pname\"><code>lon0</code></strong> - The central meridian (<code>degrees180</code>).</li>\n        <li><strong class=\"pname\"><code>k0</code></strong> - Central scale factor (<code>scalar</code>).</li>\n        <li><strong class=\"pname\"><code>raiser</code></strong> - If <code>True</code>, throw a <a \n          href=\"pygeodesy.ktm.KTMError-class.html\" \n          class=\"link\">KTMError</a> for <code>forward</code> singularities \n          (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>TMorder_name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>) and \n          optional keyword argument <code><b>TMorder</b>=6</code> for the \n          order of this <a \n          href=\"pygeodesy.ktm.KTransverseMercator-class.html\" \n          class=\"link\">KTransverseMercator</a>, see property \n          <code>TMorder</code>.</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.ktm.KTMError-class.html\">KTMError</a></strong></code> - Invalid <b><code>a_earth</code></b>, <b><code>f</code></b> or \n        <b><code>TMorder</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"forward\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">forward</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lat</span>,\n        <span class=\"sig-arg\">lon</span>,\n        <span class=\"sig-arg\">lon0</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Forward projection, from geographic to transverse Mercator.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat</code></strong> - Latitude of point (<code>degrees90</code>).</li>\n        <li><strong class=\"pname\"><code>lon</code></strong> - Longitude of point (<code>degrees180</code>).</li>\n        <li><strong class=\"pname\"><code>lon0</code></strong> - Central meridian of the projection (<code>degrees180</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><a href=\"pygeodesy.namedTuples.Forward4Tuple-class.html\" \n          class=\"link\">Forward4Tuple</a><code>(easting, northing, gamma, \n          scale)</code> with <code>easting</code> and <code>northing</code>\n          in <code>meter</code>, unfalsed, the meridian convergence \n          <code>gamma</code> at point in <code>degrees180</code> and the \n          <code>scale</code> of projection at point <code>scalar</code>.  \n          Any value may be <code>NAN</code>, <code>NINF</code> or \n          <code>INF</code> for singularities.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.ktm.KTMError-class.html\">KTMError</a></strong></code> - For singularities, iff property <code>raiser</code> is \n        <code>True</code>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"reset\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">reset</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lat0</span>,\n        <span class=\"sig-arg\">lon0</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Set the central parallel and meridian.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat0</code></strong> - Latitude of the central parallel (<code>degrees90</code>).</li>\n        <li><strong class=\"pname\"><code>lon0</code></strong> - Longitude of the central parallel (<code>degrees180</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>2-Tuple <code>(lat0, lon0)</code> with the previous central \n          parallel and meridian.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.ktm.KTMError-class.html\">KTMError</a></strong></code> - Invalid <b><code>lat0</code></b> or <b><code>lon0</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"reverse\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">reverse</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">x</span>,\n        <span class=\"sig-arg\">y</span>,\n        <span class=\"sig-arg\">lon0</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Reverse projection, from transverse Mercator to geographic.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>x</code></strong> - Easting of point (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>y</code></strong> - Northing of point (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>lon0</code></strong> - Central meridian of the projection (<code>degrees180</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><a href=\"pygeodesy.namedTuples.Reverse4Tuple-class.html\" \n          class=\"link\">Reverse4Tuple</a><code>(lat, lon, gamma, \n          scale)</code> with <code>lat</code>- and <code>lon</code>gitude \n          in <code>degrees</code>, <i>unfalsed</i>.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toStr\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toStr</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">**kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return a <code>str</code> representation.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>kwds</code></strong> - Optional, overriding keyword arguments.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.named._Named-class.html#toStr\">named._Named.toStr</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"datum\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">datum</h3>\n  <p>Get this rhumb's datum (<a href=\"pygeodesy.datums.Datum-class.html\" \n  class=\"link\">Datum</a>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">datum(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get this rhumb's datum (<a href=\"pygeodesy.datums.Datum-class.html\" \nclass=\"link\">Datum</a>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">datum(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">datum</span>)</span>\n        - Set this rhumb's datum (<a href=\"pygeodesy.datums.Datum-class.html\" \nclass=\"link\">Datum</a>).\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"ellipsoid\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">ellipsoid</h3>\n  <p>Get the ellipsoid (<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\"\n  class=\"link\">Ellipsoid</a>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">ellipsoid(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the ellipsoid (<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \nclass=\"link\">Ellipsoid</a>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">ellipsoid(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">a_earth_f</span>)</span>\n        - Set this rhumb's ellipsoid (<a \nhref=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \nclass=\"link\">Ellipsoid</a>, <a \nhref=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \nclass=\"link\">Ellipsoid2</a>, <a href=\"pygeodesy.datums.Datum-class.html\" \nclass=\"link\">Datum</a>, <a href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\"\nclass=\"link\">a_f2Tuple</a> or 2-tuple <code>(a, f)</code>).\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"equatoradius\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">equatoradius</h3>\n  <p>Get the <code>ellipsoid</code>'s equatorial radius, semi-axis \n  (<code>meter</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">equatoradius(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <code>ellipsoid</code>'s equatorial radius, semi-axis \n(<code>meter</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"a\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">a</h3>\n  <p>Get the <code>ellipsoid</code>'s equatorial radius, semi-axis \n  (<code>meter</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">equatoradius(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <code>ellipsoid</code>'s equatorial radius, semi-axis \n(<code>meter</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"flattening\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">flattening</h3>\n  <p>Get the <code>ellipsoid</code>'s flattening (<code>scalar</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">flattening(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <code>ellipsoid</code>'s flattening (<code>scalar</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"f\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">f</h3>\n  <p>Get the <code>ellipsoid</code>'s flattening (<code>scalar</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">flattening(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <code>ellipsoid</code>'s flattening (<code>scalar</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"k0\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">k0</h3>\n  <p>Class <code>property</code> with a <code>.name</code> attribute.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">k0(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the central scale factor (<code>float</code>), aka \n<i><code>scale0</code></i>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">k0(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">k0</span>)</span>\n        - Set the central scale factor (<code>float</code>), aka \n<i><code>scale0</code></i>.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"lon0\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">lon0</h3>\n  <p>Class <code>property</code> with a <code>.name</code> attribute.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">lon0(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the central meridian (<code>degrees180</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">lon0(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lon0</span>)</span>\n        - Set the central meridian (<code>degrees180</code>).\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"raiser\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">raiser</h3>\n  <p>Class <code>property</code> with a <code>.name</code> attribute.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">raiser(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the error setting (<code>bool</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">raiser(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">raiser</span>)</span>\n        - Set the error setting (<code>bool</code>), to <code>True</code> to throw a \n<a href=\"pygeodesy.ktm.KTMError-class.html\" class=\"link\">KTMError</a> for \n<code>forward</code> singularities.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"TMorder\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">TMorder</h3>\n  <p>Get the <i>Transverse Mercator</i> order (<code>int</code>, 4, 5, 6, 7\n  or 8).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">TMorder(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <i>Transverse Mercator</i> order (<code>int</code>, 4, 5, 6, 7 or \n8).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">TMorder(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">order</span>)</span>\n        - Set the <i>Transverse Mercator</i> order (<code>int</code>, 4, 5, 6, 7 or \n8).\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.latlonBase-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.latlonBase</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        Module&nbsp;latlonBase\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.latlonBase-module.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== MODULE DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Module latlonBase</h1><p class=\"nomargin-top\"></p>\n<p>(INTERNAL) Base class <a \n  href=\"pygeodesy.latlonBase.LatLonBase-class.html\" \n  class=\"link\">LatLonBase</a> for all elliposiodal, spherical and \n  N-vectorial <code>LatLon</code> classes.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <i>(C) Chris Veness 2005-2024</i>' <a \n        href=\"https://www.Movable-Type.co.UK/scripts/latlong.html\" \n        target=\"_top\">latlong</a>, <a \n        href=\"https://www.Movable-Type.co.UK/scripts/geodesy/docs/latlon-ellipsoidal.js.html\"\n        target=\"_top\">-ellipsoidal</a> and <a \n        href=\"https://www.Movable-Type.co.UK/scripts/latlong-vectors.html\" \n        target=\"_top\">-vectors</a> and <i>Charles Karney</i>'s <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Rhumb.html\"\n        target=\"_top\">Rhumb</a> and <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1RhumbLine.html\"\n        target=\"_top\">RhumbLine</a> classes.\n      </p>\n      <p><strong>Version:</strong>\n        25.08.18\n      </p>\n</div><!-- ==================== CLASSES ==================== -->\n<a name=\"section-Classes\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Classes</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.latlonBase.LatLonBase-class.html\" class=\"summary-name\">LatLonBase</a><br />\n      (INTERNAL) Base class for ellipsoidal and spherical \n        <code>satLon</code>s.\n    </td>\n  </tr>\n</table>\n<!-- ==================== FUNCTIONS ==================== -->\n<a name=\"section-Functions\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Functions</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.latlonBase-module.html#latlon2n_xyz\" class=\"summary-sig-name\">latlon2n_xyz</a>(<span class=\"summary-sig-arg\">lat_ll</span>,\n        <span class=\"summary-sig-arg\">lon</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Convert lat-, longitude to <code>n-vector</code> (<i>normal</i> to \n      the earth's surface) X, Y and Z components.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.latlonBase-module.html#philam2n_xyz\" class=\"summary-sig-name\">philam2n_xyz</a>(<span class=\"summary-sig-arg\">phi_ll</span>,\n        <span class=\"summary-sig-arg\">lam</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Convert lat-, longitude to <code>n-vector</code> (<i>normal</i> to \n      the earth's surface) X, Y and Z components.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== VARIABLES ==================== -->\n<a name=\"section-Variables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Variables</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"__all__\"></a><span class=\"summary-name\">__all__</span> = <code title=\"_ALL_LAZY.latlonBase\">_ALL_LAZY.latlonBase</code>\n    </td>\n  </tr>\n</table>\n<!-- ==================== FUNCTION DETAILS ==================== -->\n<a name=\"section-FunctionDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Function Details</span></td>\n</tr>\n</table>\n<a name=\"latlon2n_xyz\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">latlon2n_xyz</span>&nbsp;(<span class=\"sig-arg\">lat_ll</span>,\n        <span class=\"sig-arg\">lon</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert lat-, longitude to <code>n-vector</code> (<i>normal</i> to the\n  earth's surface) X, Y and Z components.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat_ll</code></strong> - Latitude (<code>degrees</code>) or a <code>LatLon</code> \n          instance, <a href=\"pygeodesy.namedTuples.LatLon2Tuple-class.html\"\n          class=\"link\">LatLon2Tuple</a> or other <code>LatLon*Tuple</code>.</li>\n        <li><strong class=\"pname\"><code>lon</code></strong> - Longitude (<code>degrees</code>), required if <code><b>lon_ll</b>\n          is degrees</code>, ignored otherwise.</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.namedTuples.Vector3Tuple-class.html\" \n          class=\"link\">Vector3Tuple</a><code>(x, y, z)</code>.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.latlonBase-module.html#philam2n_xyz\" \n        class=\"link\">philam2n_xyz</a>.\n      </p>\n      <p><strong>Note:</strong>\n        These are <code>n-vector</code> x, y and z components, <i>NOT \n        geocentric</i> x, y and z (ECEF) coordinates!\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"philam2n_xyz\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">philam2n_xyz</span>&nbsp;(<span class=\"sig-arg\">phi_ll</span>,\n        <span class=\"sig-arg\">lam</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert lat-, longitude to <code>n-vector</code> (<i>normal</i> to the\n  earth's surface) X, Y and Z components.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>phi_ll</code></strong> - Latitude (<code>radians</code>) or a <code>LatLon</code> instance\n          with <code>phi</code>, <code>lam</code> or <code>philam</code> \n          attributes.</li>\n        <li><strong class=\"pname\"><code>lam</code></strong> - Longitude (<code>radians</code>), required if <code><b>phi_ll</b>\n          is radians</code>, ignored otherwise.</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional name (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.namedTuples.Vector3Tuple-class.html\" \n          class=\"link\">Vector3Tuple</a><code>(x, y, z)</code>.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.latlonBase-module.html#latlon2n_xyz\" \n        class=\"link\">latlon2n_xyz</a>.\n      </p>\n      <p><strong>Note:</strong>\n        These are <code>n-vector</code> x, y and z components, <i>NOT \n        geocentric</i> x, y and z (ECEF) coordinates!\n      </p>\n</div></td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.latlonBase.LatLonBase-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.latlonBase.LatLonBase</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.latlonBase-module.html\">Module&nbsp;latlonBase</a> ::\n        Class&nbsp;LatLonBase\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.latlonBase.LatLonBase-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class LatLonBase</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n       object --+        \n                |        \n     <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n                    |    \n     <a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+\n                        |\n       object --+       |\n                |       |\n     <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+   |\n                    |   |\n<a href=\"pygeodesy.ecefLocals._EcefLocal-class.html\">ecefLocals._EcefLocal</a> --+\n                        |\n                       <strong class=\"uidshort\">LatLonBase</strong>\n</pre>\n\n<dl><dt>Known Subclasses:</dt>\n<dd>\n      <ul class=\"subclass-list\">\n<li><a href=\"pygeodesy.points.LatLon_-class.html\">points.LatLon_</a></li><li>, <a href=\"pygeodesy.deprecated.bases.LatLonHeightBase-class.html\">deprecated.bases.LatLonHeightBase</a></li><li>, <a href=\"pygeodesy.nvectorBase.LatLonNvectorBase-class.html\">nvectorBase.LatLonNvectorBase</a></li><li>, <a href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html\">ellipsoidalBase.LatLonEllipsoidalBase</a></li><li>, <a href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html\">sphericalBase.LatLonSphericalBase</a></li>  </ul>\n</dd></dl>\n\n<hr />\n<p>(INTERNAL) Base class for ellipsoidal and spherical \n  <code>satLon</code>s.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#PointsIter\" class=\"summary-sig-name\">PointsIter</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">loop</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">dedup</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Return a <code>PointsIter</code> iterator.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__eq__\"></a><span class=\"summary-sig-name\">__eq__</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span></td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lat_llh</span>,\n        <span class=\"summary-sig-arg\">lon</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">height</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">datum</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**wrap_name</span>)</span><br />\n      New <code>LatLon</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__ne__\"></a><span class=\"summary-sig-name\">__ne__</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span></td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#__str__\" class=\"summary-sig-name\">__str__</a>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Default <code>str(self)</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#antipode\" class=\"summary-sig-name\">antipode</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">height</span>=<span class=\"summary-sig-default\">None</span>)</span><br />\n      Return the antipode, the point diametrically opposite to this point.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#bounds\" class=\"summary-sig-name\">bounds</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">wide</span>,\n        <span class=\"summary-sig-arg\">tall</span>,\n        <span class=\"summary-sig-arg\">radius</span>=<span class=\"summary-sig-default\">6371008.771415</span>)</span><br />\n      DEPRECATED, use method <code>boundsOf</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#boundsOf\" class=\"summary-sig-name\">boundsOf</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">wide</span>,\n        <span class=\"summary-sig-arg\">tall</span>,\n        <span class=\"summary-sig-arg\">radius</span>=<span class=\"summary-sig-default\">6371008.771415</span>,\n        <span class=\"summary-sig-arg\">height</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Return the SW and NE lat-/longitude of a great circle bounding box \n      centered at this location.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#chordTo\" class=\"summary-sig-name\">chordTo</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>,\n        <span class=\"summary-sig-arg\">height</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Compute the length of the chord through the earth between this and an\n      other point.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#circin6\" class=\"summary-sig-name\">circin6</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">point2</span>,\n        <span class=\"summary-sig-arg\">point3</span>,\n        <span class=\"summary-sig-arg\">eps</span>=<span class=\"summary-sig-default\">8.881784197001252e-16</span>,\n        <span class=\"summary-sig-arg\">**wrap_name</span>)</span><br />\n      Return the radius and center of the <i>inscribed</i> aka \n      <i>In-</i>circle of the (planar) triangle formed by this and two \n      other points.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#circum3\" class=\"summary-sig-name\">circum3</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">point2</span>,\n        <span class=\"summary-sig-arg\">point3</span>,\n        <span class=\"summary-sig-arg\">circum</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">eps</span>=<span class=\"summary-sig-default\">8.881784197001252e-16</span>,\n        <span class=\"summary-sig-arg\">**wrap_name</span>)</span><br />\n      Return the radius and center of the smallest circle <i>through</i> or\n      <i>containing</i> this and two other points.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#circum4_\" class=\"summary-sig-name\">circum4_</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">*points</span>,\n        <span class=\"summary-sig-arg\">**wrap_name</span>)</span><br />\n      Best-fit a sphere through this and two or more other points.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#compassAngle\" class=\"summary-sig-name\">compassAngle</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>,\n        <span class=\"summary-sig-arg\">**adjust_wrap</span>)</span><br />\n      DEPRECATED, use method <a \n      href=\"pygeodesy.latlonBase.LatLonBase-class.html#compassAngleTo\" \n      class=\"link\">compassAngleTo</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#compassAngleTo\" class=\"summary-sig-name\">compassAngleTo</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>,\n        <span class=\"summary-sig-arg\">**adjust_wrap</span>)</span><br />\n      Return the angle from North for the direction vector between this and\n      an other point.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#cosineAndoyerLambertTo\" class=\"summary-sig-name\">cosineAndoyerLambertTo</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>,\n        <span class=\"summary-sig-arg\">**wrap</span>)</span><br />\n      DEPRECATED on 2024.12.31, use method <a \n      href=\"pygeodesy.latlonBase.LatLonBase-class.html#cosineLawTo\" \n      class=\"link\">cosineLawTo</a> with <code><b>corr</b>=1</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#cosineForsytheAndoyerLambertTo\" class=\"summary-sig-name\">cosineForsytheAndoyerLambertTo</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>,\n        <span class=\"summary-sig-arg\">**wrap</span>)</span><br />\n      DEPRECATED on 2024.12.31, use method <a \n      href=\"pygeodesy.latlonBase.LatLonBase-class.html#cosineLawTo\" \n      class=\"link\">cosineLawTo</a> with <code><b>corr</b>=2</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#cosineLawTo\" class=\"summary-sig-name\">cosineLawTo</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>,\n        <span class=\"summary-sig-arg\">**radius__corr_wrap</span>)</span><br />\n      Compute the distance between this and an other point using the <a \n      href=\"https://www.Movable-Type.co.UK/scripts/latlong.html#cosine-law\"\n      target=\"_top\">Law of Cosines</a> formula, optionally corrected.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#destinationXyz\" class=\"summary-sig-name\">destinationXyz</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">delta</span>,\n        <span class=\"summary-sig-arg\">LatLon</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**LatLon_kwds</span>)</span><br />\n      Calculate the destination using a <i>local</i> delta from this point.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#equals\" class=\"summary-sig-name\">equals</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>,\n        <span class=\"summary-sig-arg\">eps</span>=<span class=\"summary-sig-default\">None</span>)</span><br />\n      DEPRECATED, use method <a \n      href=\"pygeodesy.latlonBase.LatLonBase-class.html#isequalTo\" \n      class=\"link\">isequalTo</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#equals3\" class=\"summary-sig-name\">equals3</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>,\n        <span class=\"summary-sig-arg\">eps</span>=<span class=\"summary-sig-default\">None</span>)</span><br />\n      DEPRECATED, use method <a \n      href=\"pygeodesy.latlonBase.LatLonBase-class.html#isequalTo3\" \n      class=\"link\">isequalTo3</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#equirectangularTo\" class=\"summary-sig-name\">equirectangularTo</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>,\n        <span class=\"summary-sig-arg\">**radius_adjust_limit_wrap</span>)</span><br />\n      Compute the distance between this and an other point using the <a \n      href=\"https://www.Movable-Type.co.UK/scripts/latlong.html#equirectangular\"\n      target=\"_top\">Equirectangular Approximation / Projection</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#euclideanTo\" class=\"summary-sig-name\">euclideanTo</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>,\n        <span class=\"summary-sig-arg\">**radius_adjust_wrap</span>)</span><br />\n      Approximate the <code>Euclidian</code> distance between this and an \n      other point.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#flatLocalTo\" class=\"summary-sig-name\">flatLocalTo</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>,\n        <span class=\"summary-sig-arg\">radius</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**wrap</span>)</span><br />\n      Compute the distance between this and an other point using the <a \n      href=\"https://WikiPedia.org/wiki/Geographical_distance#Ellipsoidal_Earth_projected_to_a_plane\"\n      target=\"_top\">ellipsoidal Earth to plane projection</a> aka <a \n      href=\"https://www.OVG.AT/de/vgi/files/pdf/3781/\" \n      target=\"_top\">Hubeny</a> formula.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#flatPolarTo\" class=\"summary-sig-name\">flatPolarTo</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>,\n        <span class=\"summary-sig-arg\">**radius_wrap</span>)</span><br />\n      Compute the distance between this and an other point using the <a \n      href=\"https://WikiPedia.org/wiki/Geographical_distance#Polar_coordinate_flat-Earth_formula\"\n      target=\"_top\">polar coordinate flat-Earth</a> formula.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#hartzell\" class=\"summary-sig-name\">hartzell</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">los</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">earth</span>=<span class=\"summary-sig-default\">None</span>)</span><br />\n      Compute the intersection of a Line-Of-Sight from this (geodetic) \n      Point-Of-View (pov) with this point's ellipsoid surface.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#haversineTo\" class=\"summary-sig-name\">haversineTo</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>,\n        <span class=\"summary-sig-arg\">**radius_wrap</span>)</span><br />\n      Compute the distance between this and an other point using the <a \n      href=\"https://www.Movable-Type.co.UK/scripts/latlong.html\" \n      target=\"_top\">Haversine</a> formula.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#height4\" class=\"summary-sig-name\">height4</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">earth</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">normal</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">LatLon</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**LatLon_kwds</span>)</span><br />\n      Compute the projection of this point on and the height above or below\n      this datum's ellipsoid surface.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#heightStr\" class=\"summary-sig-name\">heightStr</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">prec</span>=<span class=\"summary-sig-default\">-2</span>,\n        <span class=\"summary-sig-arg\">m</span>=<span class=\"summary-sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">m</code><code class=\"variable-quote\">'</code></span>)</span><br />\n      Return this point's <b><code>height</code></b> as \n      <code>str</code>ing.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#hubenyTo\" class=\"summary-sig-name\">hubenyTo</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>,\n        <span class=\"summary-sig-arg\">radius</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**wrap</span>)</span><br />\n      Compute the distance between this and an other point using the <a \n      href=\"https://WikiPedia.org/wiki/Geographical_distance#Ellipsoidal_Earth_projected_to_a_plane\"\n      target=\"_top\">ellipsoidal Earth to plane projection</a> aka <a \n      href=\"https://www.OVG.AT/de/vgi/files/pdf/3781/\" \n      target=\"_top\">Hubeny</a> formula.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"intersecant2\"></a><span class=\"summary-sig-name\">intersecant2</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">*args</span>,\n        <span class=\"summary-sig-arg\">**kwds</span>)</span><br />\n      <b>Not implemented</b>, throws a <code>NotImplementedError</code> \n      always.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isantipode\" class=\"summary-sig-name\">isantipode</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>,\n        <span class=\"summary-sig-arg\">eps</span>=<span class=\"summary-sig-default\">2.220446049250313e-16</span>)</span><br />\n      DEPRECATED, use method <a \n      href=\"pygeodesy.latlonBase.LatLonBase-class.html#isantipodeTo\" \n      class=\"link\">isantipodeTo</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isantipodeTo\" class=\"summary-sig-name\">isantipodeTo</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>,\n        <span class=\"summary-sig-arg\">eps</span>=<span class=\"summary-sig-default\">2.220446049250313e-16</span>)</span><br />\n      Check whether this and an other point are antipodal, on diametrically\n      opposite sides of the earth.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isequalTo\" class=\"summary-sig-name\">isequalTo</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>,\n        <span class=\"summary-sig-arg\">eps</span>=<span class=\"summary-sig-default\">None</span>)</span><br />\n      Compare this point with an other point, <i>ignoring</i> height.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isequalTo3\" class=\"summary-sig-name\">isequalTo3</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>,\n        <span class=\"summary-sig-arg\">eps</span>=<span class=\"summary-sig-default\">None</span>)</span><br />\n      Compare this point with an other point, <i>including</i> height.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#latlon2\" class=\"summary-sig-name\">latlon2</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">ndigits</span>=<span class=\"summary-sig-default\">0</span>)</span><br />\n      Return this point's lat- and longitude in <code>degrees</code>, \n      rounded.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#latlon2round\" class=\"summary-sig-name\">latlon2round</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">ndigits</span>=<span class=\"summary-sig-default\">0</span>)</span><br />\n      DEPRECATED, use method <a \n      href=\"pygeodesy.latlonBase.LatLonBase-class.html#latlon2\" \n      class=\"link\">latlon2</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#latlon_\" class=\"summary-sig-name\">latlon_</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">ndigits</span>=<span class=\"summary-sig-default\">0</span>)</span><br />\n      DEPRECATED, use method <a \n      href=\"pygeodesy.latlonBase.LatLonBase-class.html#latlon2\" \n      class=\"link\">latlon2</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#nearestOn6\" class=\"summary-sig-name\">nearestOn6</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">closed</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">height</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Locate the point on a path or polygon closest to this point.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"nearestTo\"></a><span class=\"summary-sig-name\">nearestTo</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">*args</span>,\n        <span class=\"summary-sig-arg\">**kwds</span>)</span><br />\n      <b>Not implemented</b>, throws a <code>NotImplementedError</code> \n      always.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#normal\" class=\"summary-sig-name\">normal</a>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Normalize this point <i>in-place</i> to <code>abs(lat) &lt;= \n      90</code> and <code>abs(lon) &lt;= 180</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#philam2\" class=\"summary-sig-name\">philam2</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">ndigits</span>=<span class=\"summary-sig-default\">0</span>)</span><br />\n      Return this point's lat- and longitude in <code>radians</code>, \n      rounded.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#points\" class=\"summary-sig-name\">points</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">**closed</span>)</span><br />\n      DEPRECATED, use method <a \n      href=\"pygeodesy.latlonBase.LatLonBase-class.html#points2\" \n      class=\"link\">points2</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#points2\" class=\"summary-sig-name\">points2</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">closed</span>=<span class=\"summary-sig-default\">True</span>)</span><br />\n      Check a path or polygon represented by points.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#radii11\" class=\"summary-sig-name\">radii11</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">point2</span>,\n        <span class=\"summary-sig-arg\">point3</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Return the radii of the <code>Circum-</code>, <code>In-</code>, \n      <i>Soddy</i> and <code>Tangent</code> circles of a (planar) triangle \n      formed by this and two other points.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#rhumbAzimuthTo\" class=\"summary-sig-name\">rhumbAzimuthTo</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>,\n        <span class=\"summary-sig-arg\">exact</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">radius</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">b360</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Return the azimuth (bearing) of a rhumb line (loxodrome) between this\n      and an other (ellipsoidal) point.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#rhumbDestination\" class=\"summary-sig-name\">rhumbDestination</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">distance</span>,\n        <span class=\"summary-sig-arg\">azimuth</span>,\n        <span class=\"summary-sig-arg\">radius</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">height</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">exact</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Return the destination point having travelled the given distance from\n      this point along a rhumb line (loxodrome) of the given azimuth.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#rhumbDistanceTo\" class=\"summary-sig-name\">rhumbDistanceTo</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>,\n        <span class=\"summary-sig-arg\">exact</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">radius</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Return the distance from this to an other point along a rhumb line \n      (loxodrome).</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#rhumbIntersecant2\" class=\"summary-sig-name\">rhumbIntersecant2</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">circle</span>,\n        <span class=\"summary-sig-arg\">point</span>,\n        <span class=\"summary-sig-arg\">other</span>,\n        <span class=\"summary-sig-arg\">height</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**exact_radius_wrap_eps_tol</span>)</span><br />\n      Compute the intersections of a circle and a rhumb line given as two \n      points or as a point and azimuth.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#rhumbLine\" class=\"summary-sig-name\">rhumbLine</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>,\n        <span class=\"summary-sig-arg\">exact</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">radius</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">**name_caps</span>)</span><br />\n      Get a rhumb line through this point at a given azimuth or through \n      this and an other point.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#rhumbMidpointTo\" class=\"summary-sig-name\">rhumbMidpointTo</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>,\n        <span class=\"summary-sig-arg\">exact</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">radius</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">height</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">fraction</span>=<span class=\"summary-sig-default\">0.5</span>,\n        <span class=\"summary-sig-arg\">**wrap_name</span>)</span><br />\n      Return the (loxodromic) midpoint on the rhumb line between this and \n      an other point.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#thomasTo\" class=\"summary-sig-name\">thomasTo</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>,\n        <span class=\"summary-sig-arg\">**wrap</span>)</span><br />\n      Compute the distance between this and an other point using <a \n      href=\"https://apps.DTIC.mil/dtic/tr/fulltext/u2/703541.pdf\" \n      target=\"_top\">Thomas'</a> formula.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#to2ab\" class=\"summary-sig-name\">to2ab</a>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      DEPRECATED, use property <a \n      href=\"pygeodesy.latlonBase.LatLonBase-class.html#philam\" \n      class=\"link\">philam</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#to3llh\" class=\"summary-sig-name\">to3llh</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">height</span>=<span class=\"summary-sig-default\">None</span>)</span><br />\n      DEPRECATED, use property <a \n      href=\"pygeodesy.latlonBase.LatLonBase-class.html#latlonheight\" \n      class=\"link\">latlonheight</a> or \n      <code>latlon.to3Tuple(<b>height</b>)</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#to3xyz\" class=\"summary-sig-name\">to3xyz</a>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      DEPRECATED, use property <a \n      href=\"pygeodesy.latlonBase.LatLonBase-class.html#xyz\" \n      class=\"link\">xyz</a> or method <a \n      href=\"pygeodesy.latlonBase.LatLonBase-class.html#toNvector\" \n      class=\"link\">toNvector</a>, <a \n      href=\"pygeodesy.latlonBase.LatLonBase-class.html#toVector\" \n      class=\"link\">toVector</a>, <a \n      href=\"pygeodesy.latlonBase.LatLonBase-class.html#toVector3d\" \n      class=\"link\">toVector3d</a> or perhaps (geocentric) <a \n      href=\"pygeodesy.latlonBase.LatLonBase-class.html#toEcef\" \n      class=\"link\">toEcef</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toCartesian\" class=\"summary-sig-name\">toCartesian</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">height</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">Cartesian</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**Cartesian_kwds</span>)</span><br />\n      Convert this point to cartesian, <i>geocentric</i> coordinates, also \n      known as <i>Earth-Centered, Earth-Fixed</i> (ECEF).</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"toDatum\"></a><span class=\"summary-sig-name\">toDatum</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">datum2</span>,\n        <span class=\"summary-sig-arg\">height</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      <i>Must be overloaded</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toEcef\" class=\"summary-sig-name\">toEcef</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">height</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">M</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Convert this point to <i>geocentric</i> coordinates, also known as \n      <i>Earth-Centered, Earth-Fixed</i> (<a \n      href=\"https://WikiPedia.org/wiki/ECEF\" target=\"_top\">ECEF</a>).</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toNormal\" class=\"summary-sig-name\">toNormal</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">deep</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Get this point <i>normalized</i> to <code>abs(lat) &lt;= 90</code> \n      and <code>abs(lon) &lt;= 180</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toNvector\" class=\"summary-sig-name\">toNvector</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">h</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">Nvector</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**name_Nvector_kwds</span>)</span><br />\n      Convert this point to <code>n-vector</code> (normal to the earth's \n      surface) components, <i>including height</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toStr\" class=\"summary-sig-name\">toStr</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">form</span>=<span class=\"summary-sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">dms</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"summary-sig-arg\">joined</span>=<span class=\"summary-sig-default\">', '</span>,\n        <span class=\"summary-sig-arg\">m</span>=<span class=\"summary-sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">m</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"summary-sig-arg\">**prec_sep_s_D_M_S</span>)</span><br />\n      Convert this point to a &quot;lat, lon[, +/-height]&quot; string, \n      formatted in the given <code><b>form</b>at</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toVector\" class=\"summary-sig-name\">toVector</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">Vector</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**Vector_kwds</span>)</span><br />\n      Convert this point to a <code>Vector</code> with the \n      <i>geocentric</i> <code>(x, y, z)</code> (ECEF) coordinates, \n      <i>ignoring height</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toVector3d\" class=\"summary-sig-name\">toVector3d</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">norm</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">**Vector3d_kwds</span>)</span><br />\n      Convert this point to a <a \n      href=\"pygeodesy.vector3d.Vector3d-class.html\" \n      class=\"link\">Vector3d</a> with the <i>geocentric</i> <code>(x, y, \n      z)</code> (ECEF) coordinates, <i>ignoring height</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toWm\" class=\"summary-sig-name\">toWm</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">**toWm_kwds</span>)</span><br />\n      Convert this point to a WM coordinate.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#vincentysTo\" class=\"summary-sig-name\">vincentysTo</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>,\n        <span class=\"summary-sig-arg\">**radius_wrap</span>)</span><br />\n      Compute the distance between this and an other point using <a \n      href=\"https://WikiPedia.org/wiki/Great-circle_distance\" \n      target=\"_top\">Vincenty's</a> spherical formula.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#others\">others</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#toRepr\">toRepr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html\">ecefLocals._EcefLocal</a></code></b>:\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toAer\">toAer</a></code>,\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toEnu\">toEnu</a></code>,\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toLocal\">toLocal</a></code>,\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toLtp\">toLtp</a></code>,\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toNed\">toNed</a></code>,\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toXyz\">toXyz</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.latlonBase.LatLonBase-class.html#clipid\" class=\"summary-name\">clipid</a><br />\n      Get the (polygonal) clip (<code>int</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.latlonBase.LatLonBase-class.html#datum\" class=\"summary-name\">datum</a><br />\n      <i>Must be overloaded</i>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.latlonBase.LatLonBase-class.html#ellipsoidalLatLon\" class=\"summary-name\">ellipsoidalLatLon</a><br />\n      Get the <code>LatLon type</code> iff ellipsoidal, overloaded in <a \n      href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html\" \n      class=\"link\">LatLonEllipsoidalBase</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.latlonBase.LatLonBase-class.html#height\" class=\"summary-name\">height</a><br />\n      Get the height (<code>meter</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isEllipsoidal\" class=\"summary-name\">isEllipsoidal</a><br />\n      Check whether this point is ellipsoidal (<code>bool</code> or \n      <code>None</code> if unknown).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isSpherical\" class=\"summary-name\">isSpherical</a><br />\n      Check whether this point is spherical (<code>bool</code> or \n      <code>None</code> if unknown).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isnormal\" class=\"summary-name\">isnormal</a><br />\n      Return <code>True</code> if this point is normal (<code>bool</code>),\n      meaning <code>abs(lat) &lt;= 90</code> and <code>abs(lon) &lt;= \n      180</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.latlonBase.LatLonBase-class.html#lam\" class=\"summary-name\">lam</a><br />\n      Get the longitude (<b><code>radians</code></b>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.latlonBase.LatLonBase-class.html#lat\" class=\"summary-name\">lat</a><br />\n      Get the latitude (<code>degrees90</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.latlonBase.LatLonBase-class.html#latlon\" class=\"summary-name\">latlon</a><br />\n      Get the lat- and longitude (<a \n      href=\"pygeodesy.namedTuples.LatLon2Tuple-class.html\" \n      class=\"link\">LatLon2Tuple</a><code>(lat, lon)</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.latlonBase.LatLonBase-class.html#latlonheight\" class=\"summary-name\">latlonheight</a><br />\n      Get the lat-, longitude and height (<a \n      href=\"pygeodesy.namedTuples.LatLon3Tuple-class.html\" \n      class=\"link\">LatLon3Tuple</a><code>(lat, lon, height)</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.latlonBase.LatLonBase-class.html#lon\" class=\"summary-name\">lon</a><br />\n      Get the longitude (<code>degrees180</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.latlonBase.LatLonBase-class.html#phi\" class=\"summary-name\">phi</a><br />\n      Get the latitude (<b><code>radians</code></b>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.latlonBase.LatLonBase-class.html#philam\" class=\"summary-name\">philam</a><br />\n      Get the lat- and longitude (<a \n      href=\"pygeodesy.namedTuples.PhiLam2Tuple-class.html\" \n      class=\"link\">PhiLam2Tuple</a><code>(phi, lam)</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.latlonBase.LatLonBase-class.html#philamheight\" class=\"summary-name\">philamheight</a><br />\n      Get the lat-, longitude in <code>radians</code> and height (<a \n      href=\"pygeodesy.namedTuples.PhiLam3Tuple-class.html\" \n      class=\"link\">PhiLam3Tuple</a><code>(phi, lam, height)</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.latlonBase.LatLonBase-class.html#sphericalLatLon\" class=\"summary-name\">sphericalLatLon</a><br />\n      Get the <code>LatLon type</code> iff spherical, overloaded in <a \n      href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html\" \n      class=\"link\">LatLonSphericalBase</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.latlonBase.LatLonBase-class.html#xyz\" class=\"summary-name\">xyz</a><br />\n      Get the <i>geocentric</i> <code>(x, y, z)</code> coordinates (<a \n      href=\"pygeodesy.namedTuples.Vector3Tuple-class.html\" \n      class=\"link\">Vector3Tuple</a><code>(x, y, z)</code>)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.latlonBase.LatLonBase-class.html#xyz3\" class=\"summary-name\">xyz3</a><br />\n      Get the <i>geocentric</i> <code>(x, y, z)</code> coordinates as \n      <code>3-tuple</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.latlonBase.LatLonBase-class.html#xyzh\" class=\"summary-name\">xyzh</a><br />\n      Get the <i>geocentric</i> <code>(x, y, z)</code> coordinates and \n      height (<a href=\"pygeodesy.namedTuples.Vector4Tuple-class.html\" \n      class=\"link\">Vector4Tuple</a><code>(x, y, z, h)</code>)\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html\">ecefLocals._EcefLocal</a></code></b>:\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#Ecef\">Ecef</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"PointsIter\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">PointsIter</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">loop</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">dedup</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return a <code>PointsIter</code> iterator.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>points</code></strong> - The path or polygon points (<code>LatLon</code>[])</li>\n        <li><strong class=\"pname\"><code>loop</code></strong> - Number of loop-back points (non-negative <code>int</code>).</li>\n        <li><strong class=\"pname\"><code>dedup</code></strong> - If <code>True</code>, skip duplicate points (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> the enum-/iterated\n          <b><code>points</code></b> (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A new <code>PointsIter</code> iterator.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.PointsError-class.html\">PointsError</a></strong></code> - Insufficient number of <b><code>points</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lat_llh</span>,\n        <span class=\"sig-arg\">lon</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">height</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">datum</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**wrap_name</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <code>LatLon</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat_llh</code></strong> - Latitude (<code>degrees</code> or DMS <code>str</code> with N or \n          S suffix) or a previous <code>LatLon</code> instance provided \n          <code><b>lon</b>=None</code>.</li>\n        <li><strong class=\"pname\"><code>lon</code></strong> - Longitude (<code>degrees</code> or DMS <code>str</code> with E or\n          W suffix), required if <b><code>lat_llh</code></b> is \n          <code>degrees</code> or <code>str</code>.</li>\n        <li><strong class=\"pname\"><code>height</code></strong> - Optional height above (or below) the earth surface \n          (<code>meter</code>, conventionally).</li>\n        <li><strong class=\"pname\"><code>datum</code></strong> - Optional datum (<a href=\"pygeodesy.datums.Datum-class.html\" \n          class=\"link\">Datum</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a>, <a \n          href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a> or <i>scalar</i> radius) or \n          <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>wrap_name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>) and \n          optional keyword argument <code><b>wrap</b>=False</code>, if \n          <code>True</code>, wrap or <i>normalize</i> \n          <b><code>lat</code></b> and <b><code>lon</code></b> \n          (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>New instance (<code>LatLon</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.RangeError-class.html\">RangeError</a></strong></code> - A <b><code>lon</code></b> or <code>lat</code> value outside the \n        valid range and <a href=\"pygeodesy.errors-module.html#rangerrors\" \n        class=\"link\">rangerrors</a> set to <code>True</code>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - If <b><code>lat_llh</code></b> is not a <code>LatLon</code>.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.UnitError-class.html\">UnitError</a></strong></code> - Invalid <code>lat</code>, <b><code>lon</code></b> or \n        <b><code>height</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__str__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__str__</span>&nbsp;(<span class=\"sig-arg\">self</span>)</span>\n    <br /><em class=\"fname\">(Informal representation operator)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Default <code>str(self)</code>.</p>\n  <dl class=\"fields\">\n    <dt>Overrides:\n        object.__str__\n        <dd><em class=\"note\">(inherited documentation)</em></dd>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"antipode\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">antipode</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">height</span>=<span class=\"sig-default\">None</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the antipode, the point diametrically opposite to this \n  point.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>height</code></strong> - Optional height of the antipode (<code>meter</code>), this \n          point's height otherwise.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The antipodal point (<code>LatLon</code>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"bounds\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">bounds</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">wide</span>,\n        <span class=\"sig-arg\">tall</span>,\n        <span class=\"sig-arg\">radius</span>=<span class=\"sig-default\">6371008.771415</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use method <code>boundsOf</code>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_method</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"boundsOf\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">boundsOf</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">wide</span>,\n        <span class=\"sig-arg\">tall</span>,\n        <span class=\"sig-arg\">radius</span>=<span class=\"sig-default\">6371008.771415</span>,\n        <span class=\"sig-arg\">height</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the SW and NE lat-/longitude of a great circle bounding box \n  centered at this location.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>wide</code></strong> - Longitudinal box width (<code>meter</code>, same units as \n          <b><code>radius</code></b> or <code>degrees</code> if \n          <code><b>radius</b> is None</code>).</li>\n        <li><strong class=\"pname\"><code>tall</code></strong> - Latitudinal box size (<code>meter</code>, same units as \n          <b><code>radius</code></b> or <code>degrees</code> if \n          <code><b>radius</b> is None</code>).</li>\n        <li><strong class=\"pname\"><code>radius</code></strong> - Mean earth radius (<code>meter</code>) or <code>None</code> if \n          <i>both</i> <b><code>wide</code></b> and <b><code>tall</code></b>\n          are in <code>degrees</code>.</li>\n        <li><strong class=\"pname\"><code>height</code></strong> - Height for <code>latlonSW</code> and <code>latlonNE</code> \n          (<code>meter</code>), overriding the point's height.</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.namedTuples.Bounds2Tuple-class.html\" \n          class=\"link\">Bounds2Tuple</a><code>(latlonSW, latlonNE)</code>, \n          the lower-left and upper-right corner (<code>LatLon</code>).</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"https://www.Movable-Type.co.UK/scripts/latlong-db.html\" \n        target=\"_top\">https://www.Movable-Type.co.UK/scripts/latlong-db.html</a>\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"chordTo\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">chordTo</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>,\n        <span class=\"sig-arg\">height</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the length of the chord through the earth between this and an \n  other point.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>other</code></strong> - The other point (<code>LatLon</code>).</li>\n        <li><strong class=\"pname\"><code>height</code></strong> - Overriding height for both points (<code>meter</code>), or if \n          <code>None</code>, use each point's height.</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> the \n          <b><code>other</code></b> point (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The chord length (conventionally <code>meter</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - The <b><code>other</code></b> point is not <code>LatLon</code>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"circin6\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">circin6</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">point2</span>,\n        <span class=\"sig-arg\">point3</span>,\n        <span class=\"sig-arg\">eps</span>=<span class=\"sig-default\">8.881784197001252e-16</span>,\n        <span class=\"sig-arg\">**wrap_name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the radius and center of the <i>inscribed</i> aka \n  <i>In-</i>circle of the (planar) triangle formed by this and two other \n  points.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>point2</code></strong> - Second point (<code>LatLon</code>).</li>\n        <li><strong class=\"pname\"><code>point3</code></strong> - Third point (<code>LatLon</code>).</li>\n        <li><strong class=\"pname\"><code>eps</code></strong> - Tolerance for function <a \n          href=\"pygeodesy.vector3d-module.html#trilaterate3d2\" \n          class=\"link\">pygeodesy.trilaterate3d2</a>.</li>\n        <li><strong class=\"pname\"><code>wrap_name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>) and \n          optional keyword argument <code><b>wrap</b>=False</code>, if \n          <code>True</code>, wrap or <i>normalize</i> the \n          <b><code>points</code></b> (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.vector2d.Circin6Tuple-class.html\" \n          class=\"link\">Circin6Tuple</a><code>(radius, center, deltas, cA, \n          cB, cC)</code>.  The <code>center</code> and contact points \n          <code>cA</code>, <code>cB</code> and <code>cC</code>, each an \n          instance of this (sub-)class, are co-planar with this and the two\n          given points, see the <b>Note</b> below.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ImportError</strong></code> - Package <code>numpy</code> not found, not installed or older than \n        version 1.10.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.IntersectionError-class.html\">IntersectionError</a></strong></code> - Near-coincident or -colinear points or a trilateration or \n        <code>numpy</code> issue.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>point2</code></b> or <b><code>point3</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        The <code>center</code> is trilaterated in cartesian (ECEF) space \n        and converted back to geodetic lat-, longitude and height.  The \n        latter, conventionally in <code>meter</code> indicates whether the \n        <code>center</code> is above, below or on the surface of the earth \n        model.  If <code>deltas</code> is <code>None</code>, the \n        <code>center</code> is <i>un</i>ambigous.  Otherwise \n        <code>deltas</code> is a <a \n        href=\"pygeodesy.namedTuples.LatLon3Tuple-class.html\" \n        class=\"link\">LatLon3Tuple</a><code>(lat, lon, height)</code> \n        representing the differences between both results from <a \n        href=\"pygeodesy.vector3d-module.html#trilaterate3d2\" \n        class=\"link\">pygeodesy.trilaterate3d2</a> and <code>center</code> \n        is the mean thereof.\n      </p>\n      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.vector2d-module.html#circin6\" \n        class=\"link\">pygeodesy.circin6</a>, method <a \n        href=\"pygeodesy.latlonBase.LatLonBase-class.html#circum3\" \n        class=\"link\">circum3</a>, <a \n        href=\"https://MathWorld.Wolfram.com/Incircle.html\" \n        target=\"_top\">Incircle</a> and <a \n        href=\"https://MathWorld.Wolfram.com/ContactTriangle.html\" \n        target=\"_top\">Contact Triangle</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"circum3\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">circum3</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">point2</span>,\n        <span class=\"sig-arg\">point3</span>,\n        <span class=\"sig-arg\">circum</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">eps</span>=<span class=\"sig-default\">8.881784197001252e-16</span>,\n        <span class=\"sig-arg\">**wrap_name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the radius and center of the smallest circle <i>through</i> or \n  <i>containing</i> this and two other points.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>point2</code></strong> - Second point (<code>LatLon</code>).</li>\n        <li><strong class=\"pname\"><code>point3</code></strong> - Third point (<code>LatLon</code>).</li>\n        <li><strong class=\"pname\"><code>circum</code></strong> - If <code>True</code>, return the <code>circumradius</code> and \n          <code>circumcenter</code>, always, ignoring the <i>Meeus</i>' \n          Type I case (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>eps</code></strong> - Tolerance for function <a \n          href=\"pygeodesy.vector3d-module.html#trilaterate3d2\" \n          class=\"link\">pygeodesy.trilaterate3d2</a>.</li>\n        <li><strong class=\"pname\"><code>wrap_name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>) and \n          optional keyword argument <code><b>wrap</b>=False</code>, if \n          <code>True</code>, wrap or <i>normalize</i> the \n          <b><code>points</code></b> (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.vector2d.Circum3Tuple-class.html\" \n          class=\"link\">Circum3Tuple</a><code>(radius, center, \n          deltas)</code>.  The <code>center</code>, an instance of this \n          (sub-)class, is co-planar with this and the two given points.  If\n          <code>deltas</code> is <code>None</code>, the <code>center</code>\n          is <i>un</i>ambigous.  Otherwise <code>deltas</code> is a <a \n          href=\"pygeodesy.namedTuples.LatLon3Tuple-class.html\" \n          class=\"link\">LatLon3Tuple</a><code>(lat, lon, height)</code> \n          representing the difference between both results from <a \n          href=\"pygeodesy.vector3d-module.html#trilaterate3d2\" \n          class=\"link\">pygeodesy.trilaterate3d2</a> and <code>center</code>\n          is the mean thereof.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ImportError</strong></code> - Package <code>numpy</code> not found, not installed or older than \n        version 1.10.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.IntersectionError-class.html\">IntersectionError</a></strong></code> - Near-concentric, -coincident or -colinear points, incompatible \n        <code>Ecef</code> classes or a trilateration or <code>numpy</code> \n        issue.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>point2</code></b> or <b><code>point3</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        The <code>center</code> is trilaterated in cartesian (ECEF) space \n        and converted back to geodetic lat-, longitude and height.  The \n        latter, conventionally in <code>meter</code> indicates whether the \n        <code>center</code> is above, below or on the surface of the earth \n        model.  If <code>deltas</code> is <code>None</code>, the \n        <code>center</code> is <i>un</i>ambigous.  Otherwise \n        <code>deltas</code> is a <a \n        href=\"pygeodesy.namedTuples.LatLon3Tuple-class.html\" \n        class=\"link\">LatLon3Tuple</a><code>(lat, lon, height)</code> \n        representing the difference between both results from <a \n        href=\"pygeodesy.vector3d-module.html#trilaterate3d2\" \n        class=\"link\">pygeodesy.trilaterate3d2</a> and <code>center</code> \n        is the mean thereof.\n      </p>\n      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.vector2d-module.html#circum3\" \n        class=\"link\">pygeodesy.circum3</a> and methods <a \n        href=\"pygeodesy.latlonBase.LatLonBase-class.html#circin6\" \n        class=\"link\">circin6</a> and <a \n        href=\"pygeodesy.latlonBase.LatLonBase-class.html#circum4_\" \n        class=\"link\">circum4_</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"circum4_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">circum4_</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">*points</span>,\n        <span class=\"sig-arg\">**wrap_name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Best-fit a sphere through this and two or more other points.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>points</code></strong> - The other points (each a <code>LatLon</code>).</li>\n        <li><strong class=\"pname\"><code>wrap_name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>) and \n          optional keyword argument <code><b>wrap</b>=False</code>, if \n          <code>True</code>, wrap or <i>normalize</i> the \n          <b><code>points</code></b> (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.vector2d.Circum4Tuple-class.html\" \n          class=\"link\">Circum4Tuple</a><code>(radius, center, rank, \n          residuals)</code> with <code>center</code> an instance of this \n          (sub-)class.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ImportError</strong></code> - Package <code>numpy</code> not found, not installed or older than \n        version 1.10.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.NumPyError-class.html\">NumPyError</a></strong></code> - Some <code>numpy</code> issue.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - One of the <b><code>points</code></b> invalid.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Too few <b><code>points</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.vector2d-module.html#circum4_\" \n        class=\"link\">pygeodesy.circum4_</a> and <a \n        href=\"pygeodesy.latlonBase.LatLonBase-class.html#circum3\" \n        class=\"link\">circum3</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"compassAngle\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">compassAngle</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>,\n        <span class=\"sig-arg\">**adjust_wrap</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use method <a \n  href=\"pygeodesy.latlonBase.LatLonBase-class.html#compassAngleTo\" \n  class=\"link\">compassAngleTo</a>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_method</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"compassAngleTo\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">compassAngleTo</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>,\n        <span class=\"sig-arg\">**adjust_wrap</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the angle from North for the direction vector between this and \n  an other point.</p>\n  <p>Suitable only for short, non-near-polar vectors up to a few hundred Km\n  or Miles.  Use method <code>initialBearingTo</code> for larger \n  distances.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>other</code></strong> - The other point (<code>LatLon</code>).</li>\n        <li><strong class=\"pname\"><code>adjust_wrap</code></strong> - Optional keyword arguments for function <a \n          href=\"pygeodesy.formy-module.html#compassAngle\" \n          class=\"link\">pygeodesy.compassAngle</a>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Compass angle from North (<code>degrees360</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - The <b><code>other</code></b> point is not <code>LatLon</code>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        Courtesy of Martin Schultz.\n      </p>\n      <p><strong>See Also:</strong>\n        <a href=\"https://www.EdWilliams.org/avform.htm#flat\" \n        target=\"_top\">Local, flat earth approximation</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"cosineAndoyerLambertTo\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">cosineAndoyerLambertTo</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>,\n        <span class=\"sig-arg\">**wrap</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED on 2024.12.31, use method <a \n  href=\"pygeodesy.latlonBase.LatLonBase-class.html#cosineLawTo\" \n  class=\"link\">cosineLawTo</a> with <code><b>corr</b>=1</code>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_method</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"cosineForsytheAndoyerLambertTo\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">cosineForsytheAndoyerLambertTo</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>,\n        <span class=\"sig-arg\">**wrap</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED on 2024.12.31, use method <a \n  href=\"pygeodesy.latlonBase.LatLonBase-class.html#cosineLawTo\" \n  class=\"link\">cosineLawTo</a> with <code><b>corr</b>=2</code>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_method</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"cosineLawTo\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">cosineLawTo</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>,\n        <span class=\"sig-arg\">**radius__corr_wrap</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the distance between this and an other point using the <a \n  href=\"https://www.Movable-Type.co.UK/scripts/latlong.html#cosine-law\" \n  target=\"_top\">Law of Cosines</a> formula, optionally corrected.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>other</code></strong> - The other point (<code>LatLon</code>).</li>\n        <li><strong class=\"pname\"><code>radius__corr_wrap</code></strong> - Optional earth <code><b>radius</b>=None</code> \n          (<code>meter</code>), overriding the equatorial or mean radius of\n          this point's datum's ellipsoid and keyword arguments for function\n          <a href=\"pygeodesy.formy-module.html#cosineLaw\" \n          class=\"link\">pygeodesy.cosineLaw</a>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Distance (<code>meter</code>, same units as \n          <b><code>radius</code></b>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - The <b><code>other</code></b> point is not <code>LatLon</code>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.formy-module.html#cosineLaw\" \n        class=\"link\">pygeodesy.cosineLaw</a> and methods \n        <code>distanceTo*</code>, <a \n        href=\"pygeodesy.latlonBase.LatLonBase-class.html#equirectangularTo\"\n        class=\"link\">equirectangularTo</a>, <a \n        href=\"pygeodesy.latlonBase.LatLonBase-class.html#euclideanTo\" \n        class=\"link\">euclideanTo</a>, <a \n        href=\"pygeodesy.latlonBase.LatLonBase-class.html#flatLocalTo\" \n        class=\"link\">flatLocalTo</a> / <a \n        href=\"pygeodesy.latlonBase.LatLonBase-class.html#flatLocalTo\" \n        class=\"link\">hubenyTo</a>, <a \n        href=\"pygeodesy.latlonBase.LatLonBase-class.html#flatPolarTo\" \n        class=\"link\">flatPolarTo</a>, <a \n        href=\"pygeodesy.latlonBase.LatLonBase-class.html#haversineTo\" \n        class=\"link\">haversineTo</a>, <a \n        href=\"pygeodesy.latlonBase.LatLonBase-class.html#thomasTo\" \n        class=\"link\">thomasTo</a> and <a \n        href=\"pygeodesy.latlonBase.LatLonBase-class.html#vincentysTo\" \n        class=\"link\">vincentysTo</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"destinationXyz\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">destinationXyz</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">delta</span>,\n        <span class=\"sig-arg\">LatLon</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**LatLon_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Calculate the destination using a <i>local</i> delta from this \n  point.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>delta</code></strong> - Local delta to the destination (<a \n          href=\"pygeodesy.ltpTuples.XyzLocal-class.html\" \n          class=\"link\">XyzLocal</a>, <a \n          href=\"pygeodesy.ltpTuples.Aer-class.html\" class=\"link\">Aer</a>, \n          <a href=\"pygeodesy.ltpTuples.Enu-class.html\" \n          class=\"link\">Enu</a>, <a \n          href=\"pygeodesy.ltpTuples.Ned-class.html\" class=\"link\">Ned</a> or\n          <a href=\"pygeodesy.ltpTuples.Local9Tuple-class.html\" \n          class=\"link\">Local9Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>LatLon</code></strong> - Optional (geodetic) class to return the destination or \n          <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>LatLon_kwds</code></strong> - Optionally, additional <b><code>LatLon</code></b> keyword \n          arguments, ignored if <code><b>LatLon</b> is None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>An <b><code>LatLon</code></b> instance or if <code><b>LatLon</b> \n          is None</code>, a <a \n          href=\"pygeodesy.namedTuples.LatLon4Tuple-class.html\" \n          class=\"link\">LatLon4Tuple</a><code>(lat, lon, height, \n          datum)</code> or <a \n          href=\"pygeodesy.namedTuples.LatLon3Tuple-class.html\" \n          class=\"link\">LatLon3Tuple</a><code>(lat, lon, height)</code> if a\n          <code>datum</code> keyword is specified or not.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>delta</code></b>, <b><code>LatLon</code></b> or \n        <b><code>LatLon_kwds</code></b> item.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"equals\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">equals</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>,\n        <span class=\"sig-arg\">eps</span>=<span class=\"sig-default\">None</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use method <a \n  href=\"pygeodesy.latlonBase.LatLonBase-class.html#isequalTo\" \n  class=\"link\">isequalTo</a>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_method</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"equals3\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">equals3</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>,\n        <span class=\"sig-arg\">eps</span>=<span class=\"sig-default\">None</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use method <a \n  href=\"pygeodesy.latlonBase.LatLonBase-class.html#isequalTo3\" \n  class=\"link\">isequalTo3</a>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_method</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"equirectangularTo\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">equirectangularTo</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>,\n        <span class=\"sig-arg\">**radius_adjust_limit_wrap</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the distance between this and an other point using the <a \n  href=\"https://www.Movable-Type.co.UK/scripts/latlong.html#equirectangular\"\n  target=\"_top\">Equirectangular Approximation / Projection</a>.</p>\n  <p>Suitable only for short, non-near-polar distances up to a few hundred \n  Km or Miles.  Use method <a \n  href=\"pygeodesy.latlonBase.LatLonBase-class.html#haversineTo\" \n  class=\"link\">haversineTo</a> or <code>distanceTo*</code> for more \n  accurate and/or larger distances.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>other</code></strong> - The other point (<code>LatLon</code>).</li>\n        <li><strong class=\"pname\"><code>radius_adjust_limit_wrap</code></strong> - Optional keyword arguments for function <a \n          href=\"pygeodesy.formy-module.html#equirectangular\" \n          class=\"link\">pygeodesy.equirectangular</a>, overriding the \n          default mean <code>radius</code> of this point's datum ellipsoid.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Distance (<code>meter</code>, same units as \n          <b><code>radius</code></b>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - The <b><code>other</code></b> point is not <code>LatLon</code>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.formy-module.html#equirectangular\" \n        class=\"link\">pygeodesy.equirectangular</a> and methods <a \n        href=\"pygeodesy.latlonBase.LatLonBase-class.html#cosineLawTo\" \n        class=\"link\">cosineLawTo</a>, <code>distanceTo*</code>, \n        <code>euclideanTo</code>, <a \n        href=\"pygeodesy.latlonBase.LatLonBase-class.html#flatLocalTo\" \n        class=\"link\">flatLocalTo</a> / <a \n        href=\"pygeodesy.latlonBase.LatLonBase-class.html#flatLocalTo\" \n        class=\"link\">hubenyTo</a>, <a \n        href=\"pygeodesy.latlonBase.LatLonBase-class.html#flatPolarTo\" \n        class=\"link\">flatPolarTo</a>, <a \n        href=\"pygeodesy.latlonBase.LatLonBase-class.html#haversineTo\" \n        class=\"link\">haversineTo</a>, <a \n        href=\"pygeodesy.latlonBase.LatLonBase-class.html#thomasTo\" \n        class=\"link\">thomasTo</a> and <a \n        href=\"pygeodesy.latlonBase.LatLonBase-class.html#vincentysTo\" \n        class=\"link\">vincentysTo</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"euclideanTo\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">euclideanTo</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>,\n        <span class=\"sig-arg\">**radius_adjust_wrap</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Approximate the <code>Euclidian</code> distance between this and an \n  other point.</p>\n  <p>See function <a href=\"pygeodesy.formy-module.html#euclidean\" \n  class=\"link\">pygeodesy.euclidean</a> for the available \n  <b><code>options</code></b>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>other</code></strong> - The other point (<code>LatLon</code>).</li>\n        <li><strong class=\"pname\"><code>radius_adjust_wrap</code></strong> - Optional keyword arguments for function <a \n          href=\"pygeodesy.formy-module.html#euclidean\" \n          class=\"link\">pygeodesy.euclidean</a>, overriding the default mean\n          <code>radius</code> of this point's datum ellipsoid.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Distance (<code>meter</code>, same units as \n          <b><code>radius</code></b>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - The <b><code>other</code></b> point is not <code>LatLon</code>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.formy-module.html#euclidean\" \n        class=\"link\">pygeodesy.euclidean</a> and methods <a \n        href=\"pygeodesy.latlonBase.LatLonBase-class.html#cosineLawTo\" \n        class=\"link\">cosineLawTo</a>, <code>distanceTo*</code>, <a \n        href=\"pygeodesy.latlonBase.LatLonBase-class.html#equirectangularTo\"\n        class=\"link\">equirectangularTo</a>, <a \n        href=\"pygeodesy.latlonBase.LatLonBase-class.html#flatLocalTo\" \n        class=\"link\">flatLocalTo</a> / <a \n        href=\"pygeodesy.latlonBase.LatLonBase-class.html#flatLocalTo\" \n        class=\"link\">hubenyTo</a>, <a \n        href=\"pygeodesy.latlonBase.LatLonBase-class.html#flatPolarTo\" \n        class=\"link\">flatPolarTo</a>, <a \n        href=\"pygeodesy.latlonBase.LatLonBase-class.html#haversineTo\" \n        class=\"link\">haversineTo</a>, <a \n        href=\"pygeodesy.latlonBase.LatLonBase-class.html#thomasTo\" \n        class=\"link\">thomasTo</a> and <a \n        href=\"pygeodesy.latlonBase.LatLonBase-class.html#vincentysTo\" \n        class=\"link\">vincentysTo</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"flatLocalTo\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">flatLocalTo</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>,\n        <span class=\"sig-arg\">radius</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**wrap</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the distance between this and an other point using the <a \n  href=\"https://WikiPedia.org/wiki/Geographical_distance#Ellipsoidal_Earth_projected_to_a_plane\"\n  target=\"_top\">ellipsoidal Earth to plane projection</a> aka <a \n  href=\"https://www.OVG.AT/de/vgi/files/pdf/3781/\" target=\"_top\">Hubeny</a>\n  formula.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>other</code></strong> - The other point (<code>LatLon</code>).</li>\n        <li><strong class=\"pname\"><code>radius</code></strong> - Mean earth radius (<code>meter</code>) or <code>None</code> for \n          the <i>equatorial radius</i> of this point's datum ellipsoid.</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - Optional keyword argument <code><b>wrap</b>=False</code>, if \n          <code>True</code>, wrap or <i>normalize</i> and unroll the \n          <b><code>other</code></b> point (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Distance (<code>meter</code>, same units as \n          <b><code>radius</code></b>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - The <b><code>other</code></b> point is not <code>LatLon</code>.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>radius</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.formy-module.html#flatLocal\" \n        class=\"link\">pygeodesy.flatLocal</a>/<a \n        href=\"pygeodesy.formy-module.html#flatLocal\" \n        class=\"link\">pygeodesy.hubeny</a>, methods <a \n        href=\"pygeodesy.latlonBase.LatLonBase-class.html#cosineLawTo\" \n        class=\"link\">cosineLawTo</a>, <code>distanceTo*</code>, <a \n        href=\"pygeodesy.latlonBase.LatLonBase-class.html#equirectangularTo\"\n        class=\"link\">equirectangularTo</a>, <a \n        href=\"pygeodesy.latlonBase.LatLonBase-class.html#euclideanTo\" \n        class=\"link\">euclideanTo</a>, <a \n        href=\"pygeodesy.latlonBase.LatLonBase-class.html#flatPolarTo\" \n        class=\"link\">flatPolarTo</a>, <a \n        href=\"pygeodesy.latlonBase.LatLonBase-class.html#haversineTo\" \n        class=\"link\">haversineTo</a>, <a \n        href=\"pygeodesy.latlonBase.LatLonBase-class.html#thomasTo\" \n        class=\"link\">thomasTo</a> and <a \n        href=\"pygeodesy.latlonBase.LatLonBase-class.html#vincentysTo\" \n        class=\"link\">vincentysTo</a> and <a \n        href=\"https://www.edwilliams.org/avform.htm#flat\" \n        target=\"_top\">local, flat Earth approximation</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"flatPolarTo\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">flatPolarTo</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>,\n        <span class=\"sig-arg\">**radius_wrap</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the distance between this and an other point using the <a \n  href=\"https://WikiPedia.org/wiki/Geographical_distance#Polar_coordinate_flat-Earth_formula\"\n  target=\"_top\">polar coordinate flat-Earth</a> formula.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>other</code></strong> - The other point (<code>LatLon</code>).</li>\n        <li><strong class=\"pname\"><code>radius_wrap</code></strong> - Optional <code><b>radius</b>=R_M</code> and \n          <code><b>wrap</b>=False</code> for function <a \n          href=\"pygeodesy.formy-module.html#flatPolar\" \n          class=\"link\">pygeodesy.flatPolar</a>, overriding the default \n          <code>mean radius</code> of this point's datum ellipsoid.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Distance (<code>meter</code>, same units as \n          <b><code>radius</code></b>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - The <b><code>other</code></b> point is not <code>LatLon</code>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.formy-module.html#flatPolar\" \n        class=\"link\">pygeodesy.flatPolar</a> and methods <a \n        href=\"pygeodesy.latlonBase.LatLonBase-class.html#cosineLawTo\" \n        class=\"link\">cosineLawTo</a>, <code>distanceTo*</code>, <a \n        href=\"pygeodesy.latlonBase.LatLonBase-class.html#equirectangularTo\"\n        class=\"link\">equirectangularTo</a>, <a \n        href=\"pygeodesy.latlonBase.LatLonBase-class.html#euclideanTo\" \n        class=\"link\">euclideanTo</a>, <a \n        href=\"pygeodesy.latlonBase.LatLonBase-class.html#flatLocalTo\" \n        class=\"link\">flatLocalTo</a> / <a \n        href=\"pygeodesy.latlonBase.LatLonBase-class.html#flatLocalTo\" \n        class=\"link\">hubenyTo</a>, <a \n        href=\"pygeodesy.latlonBase.LatLonBase-class.html#haversineTo\" \n        class=\"link\">haversineTo</a>, <a \n        href=\"pygeodesy.latlonBase.LatLonBase-class.html#thomasTo\" \n        class=\"link\">thomasTo</a> and <a \n        href=\"pygeodesy.latlonBase.LatLonBase-class.html#vincentysTo\" \n        class=\"link\">vincentysTo</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"hartzell\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">hartzell</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">los</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">earth</span>=<span class=\"sig-default\">None</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the intersection of a Line-Of-Sight from this (geodetic) \n  Point-Of-View (pov) with this point's ellipsoid surface.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>los</code></strong> - Line-Of-Sight, <i>direction</i> to the ellipsoid (<a \n          href=\"pygeodesy.ltpTuples.Los-class.html\" class=\"link\">Los</a>, \n          <a href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>), <code>True</code> for the <i>normal, \n          plumb</i> onto the surface or <i>False</i> or <code>None</code> \n          to point to the center of the ellipsoid.</li>\n        <li><strong class=\"pname\"><code>earth</code></strong> - The earth model (<a href=\"pygeodesy.datums.Datum-class.html\" \n          class=\"link\">Datum</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a>, <a \n          href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a> or <code>scalar</code> radius in \n          <code>meter</code>), overriding this point's <code>datum</code> \n          ellipsoid.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The intersection (<code>LatLon</code>) with attribute \n          <code>.height</code> set to the distance to this \n          <code>pov</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.IntersectionError-class.html\">IntersectionError</a></strong></code> - Null or bad <code>pov</code> or <b><code>los</code></b>, this \n        <code>pov</code> is inside the ellipsoid or <b><code>los</code></b>\n        points outside or away from the ellipsoid.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>los</code></b> or invalid or undefined \n        <b><code>earth</code></b> or <code>datum</code>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.formy-module.html#hartzell\" \n        class=\"link\">hartzell</a> for further details.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"haversineTo\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">haversineTo</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>,\n        <span class=\"sig-arg\">**radius_wrap</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the distance between this and an other point using the <a \n  href=\"https://www.Movable-Type.co.UK/scripts/latlong.html\" \n  target=\"_top\">Haversine</a> formula.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>other</code></strong> - The other point (<code>LatLon</code>).</li>\n        <li><strong class=\"pname\"><code>radius_wrap</code></strong> - Optional <code><b>radius</b>=R_M</code> and \n          <code><b>wrap</b>=False</code> for function <a \n          href=\"pygeodesy.formy-module.html#haversine\" \n          class=\"link\">pygeodesy.haversine</a>, overriding the default \n          <code>mean radius</code> of this point's datum ellipsoid.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Distance (<code>meter</code>, same units as \n          <b><code>radius</code></b>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - The <b><code>other</code></b> point is not <code>LatLon</code>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.formy-module.html#haversine\" \n        class=\"link\">pygeodesy.haversine</a> and methods <a \n        href=\"pygeodesy.latlonBase.LatLonBase-class.html#cosineLawTo\" \n        class=\"link\">cosineLawTo</a>, <code>distanceTo*</code>, <a \n        href=\"pygeodesy.latlonBase.LatLonBase-class.html#equirectangularTo\"\n        class=\"link\">equirectangularTo</a>, <a \n        href=\"pygeodesy.latlonBase.LatLonBase-class.html#euclideanTo\" \n        class=\"link\">euclideanTo</a>, <a \n        href=\"pygeodesy.latlonBase.LatLonBase-class.html#flatLocalTo\" \n        class=\"link\">flatLocalTo</a> / <a \n        href=\"pygeodesy.latlonBase.LatLonBase-class.html#flatLocalTo\" \n        class=\"link\">hubenyTo</a>,                  <a \n        href=\"pygeodesy.latlonBase.LatLonBase-class.html#flatPolarTo\" \n        class=\"link\">flatPolarTo</a>, <a \n        href=\"pygeodesy.latlonBase.LatLonBase-class.html#thomasTo\" \n        class=\"link\">thomasTo</a> and <a \n        href=\"pygeodesy.latlonBase.LatLonBase-class.html#vincentysTo\" \n        class=\"link\">vincentysTo</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"height4\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">height4</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">earth</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">normal</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">LatLon</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**LatLon_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the projection of this point on and the height above or below \n  this datum's ellipsoid surface.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>earth</code></strong> - A datum, ellipsoid, triaxial ellipsoid or earth radius, \n          <i>overriding</i> this datum (<a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>, \n          <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a>, <a \n          href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>, <a \n          href=\"pygeodesy.triaxials.triaxial5.Triaxial-class.html\" \n          class=\"link\">Triaxial</a>, <a \n          href=\"pygeodesy.triaxials.triaxial5.Triaxial_-class.html\" \n          class=\"link\">Triaxial_</a>, <a \n          href=\"pygeodesy.deprecated.classes.JacobiConformal-class.html\" \n          class=\"link\">JacobiConformal</a> or <code>meter</code>, \n          conventionally).</li>\n        <li><strong class=\"pname\"><code>normal</code></strong> - If <code>True</code>, the projection is the normal to this \n          ellipsoid's surface, otherwise the intersection of the \n          <i>radial</i> line to this ellipsoid's center \n          (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>LatLon</code></strong> - Optional class to return the projection, height and datum \n          (<code>LatLon</code>) or <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>LatLon_kwds</code></strong> - Optionally, additional <b><code>LatLon</code></b> keyword \n          arguments, ignored if <code><b>LatLon</b> is None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <b><code>LatLon</code></b> instance or if <code><b>LatLon</b> \n          is None</code>, a <a \n          href=\"pygeodesy.namedTuples.Vector4Tuple-class.html\" \n          class=\"link\">Vector4Tuple</a><code>(x, y, z, h)</code> with the \n          <i>projection</i> <code>x</code>, <code>y</code> and \n          <code>z</code> coordinates and height <code>h</code> in \n          <code>meter</code>, conventionally.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.triaxials.bases.TriaxialError-class.html\">TriaxialError</a></strong></code> - No convergence in triaxial root finding.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>LatLon</code></b>, <b><code>LatLon_kwds</code></b>\n        item, <b><code>earth</code></b> or triaxial \n        <b><code>earth</code></b> couldn't be converted to biaxial \n        <b><code>LatLon</code></b> datum.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        Use keyword argument <code>height=0</code> to override \n        <code><b>LatLon</b>.height</code> to {0} or any other \n        <code>scalar</code>, conventionally in <code>meter</code>.\n      </p>\n      <p><strong>See Also:</strong>\n        Methods <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#height4\"\n        class=\"link\">Ellipsoid.height4</a> and <a \n        href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#height4\"\n        class=\"link\">Triaxial_.height4</a> for more information.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"heightStr\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">heightStr</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">prec</span>=<span class=\"sig-default\">-2</span>,\n        <span class=\"sig-arg\">m</span>=<span class=\"sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">m</code><code class=\"variable-quote\">'</code></span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return this point's <b><code>height</code></b> as \n  <code>str</code>ing.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>prec</code></strong> - Number of (decimal) digits, unstripped (<code>int</code>).</li>\n        <li><strong class=\"pname\"><code>m</code></strong> - Optional unit of the height (<code>str</code>).</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.streprs-module.html#hstr\" \n        class=\"link\">pygeodesy.hstr</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"hubenyTo\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">hubenyTo</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>,\n        <span class=\"sig-arg\">radius</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**wrap</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the distance between this and an other point using the <a \n  href=\"https://WikiPedia.org/wiki/Geographical_distance#Ellipsoidal_Earth_projected_to_a_plane\"\n  target=\"_top\">ellipsoidal Earth to plane projection</a> aka <a \n  href=\"https://www.OVG.AT/de/vgi/files/pdf/3781/\" target=\"_top\">Hubeny</a>\n  formula.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>other</code></strong> - The other point (<code>LatLon</code>).</li>\n        <li><strong class=\"pname\"><code>radius</code></strong> - Mean earth radius (<code>meter</code>) or <code>None</code> for \n          the <i>equatorial radius</i> of this point's datum ellipsoid.</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - Optional keyword argument <code><b>wrap</b>=False</code>, if \n          <code>True</code>, wrap or <i>normalize</i> and unroll the \n          <b><code>other</code></b> point (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Distance (<code>meter</code>, same units as \n          <b><code>radius</code></b>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - The <b><code>other</code></b> point is not <code>LatLon</code>.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>radius</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.formy-module.html#flatLocal\" \n        class=\"link\">pygeodesy.flatLocal</a>/<a \n        href=\"pygeodesy.formy-module.html#flatLocal\" \n        class=\"link\">pygeodesy.hubeny</a>, methods <a \n        href=\"pygeodesy.latlonBase.LatLonBase-class.html#cosineLawTo\" \n        class=\"link\">cosineLawTo</a>, <code>distanceTo*</code>, <a \n        href=\"pygeodesy.latlonBase.LatLonBase-class.html#equirectangularTo\"\n        class=\"link\">equirectangularTo</a>, <a \n        href=\"pygeodesy.latlonBase.LatLonBase-class.html#euclideanTo\" \n        class=\"link\">euclideanTo</a>, <a \n        href=\"pygeodesy.latlonBase.LatLonBase-class.html#flatPolarTo\" \n        class=\"link\">flatPolarTo</a>, <a \n        href=\"pygeodesy.latlonBase.LatLonBase-class.html#haversineTo\" \n        class=\"link\">haversineTo</a>, <a \n        href=\"pygeodesy.latlonBase.LatLonBase-class.html#thomasTo\" \n        class=\"link\">thomasTo</a> and <a \n        href=\"pygeodesy.latlonBase.LatLonBase-class.html#vincentysTo\" \n        class=\"link\">vincentysTo</a> and <a \n        href=\"https://www.edwilliams.org/avform.htm#flat\" \n        target=\"_top\">local, flat Earth approximation</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"isantipode\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">isantipode</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>,\n        <span class=\"sig-arg\">eps</span>=<span class=\"sig-default\">2.220446049250313e-16</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use method <a \n  href=\"pygeodesy.latlonBase.LatLonBase-class.html#isantipodeTo\" \n  class=\"link\">isantipodeTo</a>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_method</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"isantipodeTo\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">isantipodeTo</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>,\n        <span class=\"sig-arg\">eps</span>=<span class=\"sig-default\">2.220446049250313e-16</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Check whether this and an other point are antipodal, on diametrically \n  opposite sides of the earth.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>other</code></strong> - The other point (<code>LatLon</code>).</li>\n        <li><strong class=\"pname\"><code>eps</code></strong> - Tolerance for near-equality (<code>degrees</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>True</code> if points are antipodal within the given \n          tolerance, <code>False</code> otherwise.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"isequalTo\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">isequalTo</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>,\n        <span class=\"sig-arg\">eps</span>=<span class=\"sig-default\">None</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compare this point with an other point, <i>ignoring</i> height.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>other</code></strong> - The other point (<code>LatLon</code>).</li>\n        <li><strong class=\"pname\"><code>eps</code></strong> - Tolerance for equality (<code>degrees</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>True</code> if both points are identical, <i>ignoring</i> \n          height, <code>False</code> otherwise.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - The <b><code>other</code></b> point is not <code>LatLon</code> or \n        mismatch of the <b><code>other</code></b> and this \n        <code>class</code> or <code>type</code>.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.UnitError-class.html\">UnitError</a></strong></code> - Invalid <b><code>eps</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <a \n        href=\"pygeodesy.latlonBase.LatLonBase-class.html#isequalTo3\" \n        class=\"link\">isequalTo3</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"isequalTo3\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">isequalTo3</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>,\n        <span class=\"sig-arg\">eps</span>=<span class=\"sig-default\">None</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compare this point with an other point, <i>including</i> height.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>other</code></strong> - The other point (<code>LatLon</code>).</li>\n        <li><strong class=\"pname\"><code>eps</code></strong> - Tolerance for equality (<code>degrees</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>True</code> if both points are identical <i>including</i> \n          height, <code>False</code> otherwise.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - The <b><code>other</code></b> point is not <code>LatLon</code> or \n        mismatch of the <b><code>other</code></b> and this \n        <code>class</code> or <code>type</code>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <a \n        href=\"pygeodesy.latlonBase.LatLonBase-class.html#isequalTo\" \n        class=\"link\">isequalTo</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"latlon2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">latlon2</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">ndigits</span>=<span class=\"sig-default\">0</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return this point's lat- and longitude in <code>degrees</code>, \n  rounded.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>ndigits</code></strong> - Number of (decimal) digits (<code>int</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.namedTuples.LatLon2Tuple-class.html\" \n          class=\"link\">LatLon2Tuple</a><code>(lat, lon)</code>, both \n          <code>float</code> and rounded away from zero.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        The <code>round</code>ed values are always <code>float</code>, also\n        if <b><code>ndigits</code></b> is omitted.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"latlon2round\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">latlon2round</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">ndigits</span>=<span class=\"sig-default\">0</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use method <a \n  href=\"pygeodesy.latlonBase.LatLonBase-class.html#latlon2\" \n  class=\"link\">latlon2</a>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_method</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"latlon_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">latlon_</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">ndigits</span>=<span class=\"sig-default\">0</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use method <a \n  href=\"pygeodesy.latlonBase.LatLonBase-class.html#latlon2\" \n  class=\"link\">latlon2</a>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_method</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"nearestOn6\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">nearestOn6</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">closed</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">height</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Locate the point on a path or polygon closest to this point.</p>\n  <p>Points are converted to and distances are computed in \n  <i>geocentric</i>, cartesian space.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>points</code></strong> - The path or polygon points (<code>LatLon</code>[]).</li>\n        <li><strong class=\"pname\"><code>closed</code></strong> - Optionally, close the polygon (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>height</code></strong> - Optional height, overriding the height of this and all other \n          points (<code>meter</code>).  If <code>None</code>, take the \n          height of points into account for distances.</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll the \n          <b><code>points</code></b> (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.namedTuples.NearestOn6Tuple-class.html\" \n          class=\"link\">NearestOn6Tuple</a><code>(closest, distance, fi, j, \n          start, end)</code> with the <code>closest</code>, the \n          <code>start</code> and the <code>end</code> point each an \n          instance of this <code>LatLon</code> and <code>distance</code> in\n          <code>meter</code>, same units as the cartesian axes.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.PointsError-class.html\">PointsError</a></strong></code> - Insufficient number of <b><code>points</code></b>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Some <b><code>points</code></b> or some <b><code>points</code></b>'\n        <code>Ecef</code> invalid.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Some <b><code>points</code></b>' <code>Ecef</code> is incompatible.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.vector3d-module.html#nearestOn6\" \n        class=\"link\">nearestOn6</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"normal\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">normal</span>&nbsp;(<span class=\"sig-arg\">self</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Normalize this point <i>in-place</i> to <code>abs(lat) &lt;= 90</code>\n  and <code>abs(lon) &lt;= 180</code>.</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd><code>True</code> if this point was <i>normal</i>, \n          <code>False</code> if it wasn't (but is now).</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Property <a \n        href=\"pygeodesy.latlonBase.LatLonBase-class.html#isnormal\" \n        class=\"link\">isnormal</a> and method <a \n        href=\"pygeodesy.latlonBase.LatLonBase-class.html#toNormal\" \n        class=\"link\">toNormal</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"philam2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">philam2</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">ndigits</span>=<span class=\"sig-default\">0</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return this point's lat- and longitude in <code>radians</code>, \n  rounded.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>ndigits</code></strong> - Number of (decimal) digits (<code>int</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.namedTuples.PhiLam2Tuple-class.html\" \n          class=\"link\">PhiLam2Tuple</a><code>(phi, lam)</code>, both \n          <code>float</code> and rounded away from zero.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        The <code>round</code>ed values are <code>float</code>, always.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"points\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">points</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">**closed</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use method <a \n  href=\"pygeodesy.latlonBase.LatLonBase-class.html#points2\" \n  class=\"link\">points2</a>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_method</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"points2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">points2</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">closed</span>=<span class=\"sig-default\">True</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Check a path or polygon represented by points.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>points</code></strong> - The path or polygon points (<code>LatLon</code>[])</li>\n        <li><strong class=\"pname\"><code>closed</code></strong> - Optionally, consider the polygon closed, ignoring any duplicate \n          or closing final <b><code>points</code></b> (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.namedTuples.Points2Tuple-class.html\" \n          class=\"link\">Points2Tuple</a><code>(number, points)</code>, an \n          <code>int</code> and a <code>list</code> or <code>tuple</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.PointsError-class.html\">PointsError</a></strong></code> - Insufficient number of <b><code>points</code></b>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Some <b><code>points</code></b> are not <code>LatLon</code>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"radii11\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">radii11</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">point2</span>,\n        <span class=\"sig-arg\">point3</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the radii of the <code>Circum-</code>, <code>In-</code>, \n  <i>Soddy</i> and <code>Tangent</code> circles of a (planar) triangle \n  formed by this and two other points.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>point2</code></strong> - Second point (<code>LatLon</code>).</li>\n        <li><strong class=\"pname\"><code>point3</code></strong> - Third point (<code>LatLon</code>).</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> \n          <b><code>point2</code></b> and <b><code>point3</code></b> \n          (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><a href=\"pygeodesy.vector2d.Radii11Tuple-class.html\" \n          class=\"link\">Radii11Tuple</a><code>(rA, rB, rC, cR, rIn, riS, \n          roS, a, b, c, s)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.IntersectionError-class.html\">IntersectionError</a></strong></code> - Near-coincident or -colinear points.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>point2</code></b> or <b><code>point3</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.vector2d-module.html#radii11\" \n        class=\"link\">pygeodesy.radii11</a>, <a \n        href=\"https://MathWorld.Wolfram.com/Incircle.html\" \n        target=\"_top\">Incircle</a>, <a \n        href=\"https://MathWorld.Wolfram.com/SoddyCircles.html\" \n        target=\"_top\">Soddy Circles</a> and <a \n        href=\"https://MathWorld.Wolfram.com/TangentCircles.html\" \n        target=\"_top\">Tangent Circles</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"rhumbAzimuthTo\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">rhumbAzimuthTo</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>,\n        <span class=\"sig-arg\">exact</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">radius</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">b360</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the azimuth (bearing) of a rhumb line (loxodrome) between this \n  and an other (ellipsoidal) point.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>other</code></strong> - The other point (<code>LatLon</code>).</li>\n        <li><strong class=\"pname\"><code>exact</code></strong> - Exact <code>Rhumb...</code> to use (<code>bool</code> or \n          <code>Rhumb...</code>), see method <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#rhumb_\" \n          class=\"link\">Ellipsoid.rhumb_</a>.</li>\n        <li><strong class=\"pname\"><code>radius</code></strong> - Optional earth radius (<code>meter</code>) or earth model (<a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>, \n          <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a> or <a \n          href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>), overriding this point's datum.</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll the \n          <b><code>other</code></b> point (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>b360</code></strong> - If <code>True</code>, return the azimuth as bearing in compass \n          degrees (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Rhumb azimuth (<code>degrees180</code> or compass \n          <code>degrees360</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - The <b><code>other</code></b> point is incompatible or \n        <b><code>radius</code></b> is invalid.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"rhumbDestination\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">rhumbDestination</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">distance</span>,\n        <span class=\"sig-arg\">azimuth</span>,\n        <span class=\"sig-arg\">radius</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">height</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">exact</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the destination point having travelled the given distance from \n  this point along a rhumb line (loxodrome) of the given azimuth.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>distance</code></strong> - Distance travelled (<code>meter</code>, same units as this \n          point's datum (ellipsoid) axes or <b><code>radius</code></b>, may\n          be negative.</li>\n        <li><strong class=\"pname\"><code>azimuth</code></strong> - Azimuth (bearing) of the rhumb line (compass \n          <code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>radius</code></strong> - Optional earth radius (<code>meter</code>) or earth model (<a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>, \n          <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a> or <a \n          href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>), overriding this point's datum.</li>\n        <li><strong class=\"pname\"><code>height</code></strong> - Optional height, overriding the default height \n          (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>exact</code></strong> - Exact <code>Rhumb...</code> to use (<code>bool</code> or \n          <code>Rhumb...</code>), see method <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#rhumb_\" \n          class=\"link\">Ellipsoid.rhumb_</a>.</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The destination point (ellipsoidal <code>LatLon</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>radius</code></b>.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>distance</code></b>, <b><code>azimuth</code></b>, \n        <b><code>radius</code></b> or <b><code>height</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"rhumbDistanceTo\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">rhumbDistanceTo</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>,\n        <span class=\"sig-arg\">exact</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">radius</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the distance from this to an other point along a rhumb line \n  (loxodrome).</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>other</code></strong> - The other point (<code>LatLon</code>).</li>\n        <li><strong class=\"pname\"><code>exact</code></strong> - Exact <code>Rhumb...</code> to use (<code>bool</code> or \n          <code>Rhumb...</code>), see  method <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#rhumb_\" \n          class=\"link\">Ellipsoid.rhumb_</a>.</li>\n        <li><strong class=\"pname\"><code>radius</code></strong> - Optional earth radius (<code>meter</code>) or earth model (<a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>, \n          <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a> or <a \n          href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>), overriding this point's datum.</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll the \n          <b><code>other</code></b> point (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Distance (<code>meter</code>, the same units as this point's \n          datum (ellipsoid) axes or <b><code>radius</code></b>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - The <b><code>other</code></b> point is incompatible or \n        <b><code>radius</code></b> is invalid.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>radius</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"rhumbIntersecant2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">rhumbIntersecant2</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">circle</span>,\n        <span class=\"sig-arg\">point</span>,\n        <span class=\"sig-arg\">other</span>,\n        <span class=\"sig-arg\">height</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**exact_radius_wrap_eps_tol</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the intersections of a circle and a rhumb line given as two \n  points or as a point and azimuth.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>circle</code></strong> - Radius of the circle centered at this location \n          (<code>meter</code>), or a point on the circle (same \n          <code>LatLon</code> class).</li>\n        <li><strong class=\"pname\"><code>point</code></strong> - The start point of the rhumb line (same <code>LatLon</code> \n          class).</li>\n        <li><strong class=\"pname\"><code>other</code></strong> - An other point <i>on</i> (same <code>LatLon</code> class) or the \n          azimuth <i>of</i> (compass <code>degrees</code>) the rhumb line.</li>\n        <li><strong class=\"pname\"><code>height</code></strong> - Optional height for the intersection points (<code>meter</code>, \n          conventionally) or <code>None</code> for interpolated heights.</li>\n        <li><strong class=\"pname\"><code>exact_radius_wrap_eps_tol</code></strong> - Optional keyword arguments, see methods <a \n          href=\"pygeodesy.latlonBase.LatLonBase-class.html#rhumbLine\" \n          class=\"link\">rhumbLine</a> and <a \n          href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#Intersecant2\"\n          class=\"link\">RhumbLineAux.Intersecant2</a> or <a \n          href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#Intersecant2\"\n          class=\"link\">RhumbLine.Intersecant2</a>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>2-Tuple of the intersection points (representing a chord), each \n          an instance of this class.  Both points are the same instance if \n          the rhumb line is tangent to the circle.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.IntersectionError-class.html\">IntersectionError</a></strong></code> - The circle and rhumb line do not intersect.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>point</code></b>, <b><code>circle</code></b> or \n        <b><code>other</code></b>.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>circle</code></b>, <b><code>other</code></b>, \n        <b><code>height</code></b> or \n        <b><code>exact_radius_wrap</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Methods <a \n        href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#Intersecant2\" \n        class=\"link\">RhumbLineAux.Intersecant2</a> and <a \n        href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#Intersecant2\" \n        class=\"link\">RhumbLine.Intersecant2</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"rhumbLine\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">rhumbLine</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>,\n        <span class=\"sig-arg\">exact</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">radius</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">**name_caps</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Get a rhumb line through this point at a given azimuth or through this\n  and an other point.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>other</code></strong> - The azimuth <i>of</i> (compass <code>degrees</code>) or an other \n          point <i>on</i> (same <code>LatLon</code> class) the rhumb line.</li>\n        <li><strong class=\"pname\"><code>exact</code></strong> - Exact <code>Rhumb...</code> to use (<code>bool</code> or \n          <code>Rhumb...</code>), see method <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#rhumb_\" \n          class=\"link\">Ellipsoid.rhumb_</a>.</li>\n        <li><strong class=\"pname\"><code>radius</code></strong> - Optional earth radius (<code>meter</code>) or earth model (<a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>, \n          <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a> or <a \n          href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>), overriding this point's \n          <code>datum</code>.</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll the \n          <b><code>other</code></b> point (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>name_caps</code></strong> - Optional <code><b>name</b>=str</code> and <code>caps</code>, see \n          <a href=\"pygeodesy.rhumb.ekx.RhumbLine-class.html\" \n          class=\"link\">RhumbLine</a> or <a \n          href=\"pygeodesy.rhumb.aux_.RhumbLineAux-class.html\" \n          class=\"link\">RhumbLineAux</a> <code><b>caps</b></code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <code>RhumbLine</code> instance (<code>RhumbLine</code> or \n          <code>RhumbLineAux</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>radius</code></b> or <b><code>other</code></b> not\n        <code>scalar</code> nor same <code>LatLon</code> class.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Modules <a href=\"pygeodesy.rhumb.aux_-module.html\" class=\"link\" \n        onclick=\"show_private();\">rhumb.aux_</a> and <a \n        href=\"pygeodesy.rhumb.ekx-module.html\" class=\"link\" \n        onclick=\"show_private();\">rhumb.ekx</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"rhumbMidpointTo\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">rhumbMidpointTo</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>,\n        <span class=\"sig-arg\">exact</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">radius</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">height</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">fraction</span>=<span class=\"sig-default\">0.5</span>,\n        <span class=\"sig-arg\">**wrap_name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the (loxodromic) midpoint on the rhumb line between this and an\n  other point.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>other</code></strong> - The other point (same <code>LatLon</code> class).</li>\n        <li><strong class=\"pname\"><code>exact</code></strong> - Exact <code>Rhumb...</code> to use (<code>bool</code> or \n          <code>Rhumb...</code>), see method <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#rhumb_\" \n          class=\"link\">Ellipsoid.rhumb_</a>.</li>\n        <li><strong class=\"pname\"><code>radius</code></strong> - Optional earth radius (<code>meter</code>) or earth model (<a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>, \n          <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a> or <a \n          href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>), overriding this point's datum.</li>\n        <li><strong class=\"pname\"><code>height</code></strong> - Optional height, overriding the mean height (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>fraction</code></strong> - Midpoint location from this point (<code>scalar</code>), 0 for \n          this, 1 for the <b><code>other</code></b>, 0.5 for halfway \n          between this and the <b><code>other</code></b> point, may be \n          negative or greater than 1.</li>\n        <li><strong class=\"pname\"><code>wrap_name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>) and \n          <code><b>wrap</b>=False</code>, if <code>True</code>, wrap or \n          <i>normalize</i> and unroll the <b><code>other</code></b> point \n          (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The midpoint at the given <b><code>fraction</code></b> along the \n          rhumb line (same <code>LatLon</code> class).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - The <b><code>other</code></b> point is incompatible or \n        <b><code>radius</code></b> is invalid.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>height</code></b> or <b><code>fraction</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"thomasTo\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">thomasTo</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>,\n        <span class=\"sig-arg\">**wrap</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the distance between this and an other point using <a \n  href=\"https://apps.DTIC.mil/dtic/tr/fulltext/u2/703541.pdf\" \n  target=\"_top\">Thomas'</a> formula.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>other</code></strong> - The other point (<code>LatLon</code>).</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - Optional keyword argument <code><b>wrap</b>=False</code>, if \n          <code>True</code>, wrap or <i>normalize</i> and unroll the \n          <b><code>other</code></b> point (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Distance (<code>meter</code>, same units as the axes of this \n          point's datum ellipsoid).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - The <b><code>other</code></b> point is not <code>LatLon</code>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.formy-module.html#thomas\" \n        class=\"link\">pygeodesy.thomas</a> and methods <a \n        href=\"pygeodesy.latlonBase.LatLonBase-class.html#cosineLawTo\" \n        class=\"link\">cosineLawTo</a>, <code>distanceTo*</code>, <a \n        href=\"pygeodesy.latlonBase.LatLonBase-class.html#equirectangularTo\"\n        class=\"link\">equirectangularTo</a>, <a \n        href=\"pygeodesy.latlonBase.LatLonBase-class.html#euclideanTo\" \n        class=\"link\">euclideanTo</a>, <a \n        href=\"pygeodesy.latlonBase.LatLonBase-class.html#flatLocalTo\" \n        class=\"link\">flatLocalTo</a> / <a \n        href=\"pygeodesy.latlonBase.LatLonBase-class.html#flatLocalTo\" \n        class=\"link\">hubenyTo</a>, <a \n        href=\"pygeodesy.latlonBase.LatLonBase-class.html#flatPolarTo\" \n        class=\"link\">flatPolarTo</a>, <a \n        href=\"pygeodesy.latlonBase.LatLonBase-class.html#haversineTo\" \n        class=\"link\">haversineTo</a> and <a \n        href=\"pygeodesy.latlonBase.LatLonBase-class.html#vincentysTo\" \n        class=\"link\">vincentysTo</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"to2ab\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">to2ab</span>&nbsp;(<span class=\"sig-arg\">self</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use property <a \n  href=\"pygeodesy.latlonBase.LatLonBase-class.html#philam\" \n  class=\"link\">philam</a>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_method</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"to3llh\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">to3llh</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">height</span>=<span class=\"sig-default\">None</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use property <a \n  href=\"pygeodesy.latlonBase.LatLonBase-class.html#latlonheight\" \n  class=\"link\">latlonheight</a> or \n  <code>latlon.to3Tuple(<b>height</b>)</code>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_method</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"to3xyz\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">to3xyz</span>&nbsp;(<span class=\"sig-arg\">self</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use property <a \n  href=\"pygeodesy.latlonBase.LatLonBase-class.html#xyz\" \n  class=\"link\">xyz</a> or method <a \n  href=\"pygeodesy.latlonBase.LatLonBase-class.html#toNvector\" \n  class=\"link\">toNvector</a>, <a \n  href=\"pygeodesy.latlonBase.LatLonBase-class.html#toVector\" \n  class=\"link\">toVector</a>, <a \n  href=\"pygeodesy.latlonBase.LatLonBase-class.html#toVector3d\" \n  class=\"link\">toVector3d</a> or perhaps (geocentric) <a \n  href=\"pygeodesy.latlonBase.LatLonBase-class.html#toEcef\" \n  class=\"link\">toEcef</a>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_method</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toCartesian\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toCartesian</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">height</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">Cartesian</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**Cartesian_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert this point to cartesian, <i>geocentric</i> coordinates, also \n  known as <i>Earth-Centered, Earth-Fixed</i> (ECEF).</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>height</code></strong> - Optional height, overriding this point's height \n          (<code>meter</code>, conventionally).</li>\n        <li><strong class=\"pname\"><code>Cartesian</code></strong> - Optional class to return the geocentric coordinates \n          (<code>Cartesian</code>) or <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>Cartesian_kwds</code></strong> - Optionally, additional <b><code>Cartesian</code></b> keyword \n          arguments, ignored if <code><b>Cartesian</b> is None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <b><code>Cartesian</code></b> instance or if \n          <b><code>Cartesian</code> is None</b>, an <a \n          href=\"pygeodesy.ecef.Ecef9Tuple-class.html\" \n          class=\"link\">Ecef9Tuple</a><code>(x, y, z, lat, lon, height, C, \n          M, datum)</code> with <code>C=0</code> and <code>M</code> if \n          available.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>Cartesian</code></b> or \n        <b><code>Cartesian_kwds</code></b> item.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Methods <code>toNvector</code>, <code>toVector</code> and \n        <code>toVector3d</code>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"toEcef\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toEcef</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">height</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">M</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert this point to <i>geocentric</i> coordinates, also known as \n  <i>Earth-Centered, Earth-Fixed</i> (<a \n  href=\"https://WikiPedia.org/wiki/ECEF\" target=\"_top\">ECEF</a>).</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>height</code></strong> - Optional height, overriding this point's height \n          (<code>meter</code>, conventionally).</li>\n        <li><strong class=\"pname\"><code>M</code></strong> - Optionally, include the rotation <a \n          href=\"pygeodesy.ecef.EcefMatrix-class.html\" \n          class=\"link\">EcefMatrix</a> (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>An <a href=\"pygeodesy.ecef.Ecef9Tuple-class.html\" \n          class=\"link\">Ecef9Tuple</a><code>(x, y, z, lat, lon, height, C, \n          M, datum)</code> with <code>C=0</code> and <code>M</code> if \n          available.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.ecef.EcefError-class.html\">EcefError</a></strong></code> - A <code>.datum</code> or an ECEF issue.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toNormal\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toNormal</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">deep</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Get this point <i>normalized</i> to <code>abs(lat) &lt;= 90</code> and\n  <code>abs(lon) &lt;= 180</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>deep</code></strong> - If <code>True</code>, make a deep, otherwise a shallow copy \n          (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A copy of this point, <i>normalized</i> (<code>LatLon</code>), \n          optionally renamed.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Property <a \n        href=\"pygeodesy.latlonBase.LatLonBase-class.html#isnormal\" \n        class=\"link\">isnormal</a>, method <a \n        href=\"pygeodesy.latlonBase.LatLonBase-class.html#normal\" \n        class=\"link\">normal</a> and function <a \n        href=\"pygeodesy.formy-module.html#normal\" \n        class=\"link\">pygeodesy.normal</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"toNvector\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toNvector</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">h</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">Nvector</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**name_Nvector_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert this point to <code>n-vector</code> (normal to the earth's \n  surface) components, <i>including height</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>h</code></strong> - Optional height, overriding this point's height \n          (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>Nvector</code></strong> - Optional class to return the <code>n-vector</code> components \n          (<code>Nvector</code>) or <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>name_Nvector_kwds</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>) and \n          optionally, additional <b><code>Nvector</code></b> keyword \n          arguments, ignored if <code><b>Nvector</b> is None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>An <b><code>Nvector</code></b> instance or a <a \n          href=\"pygeodesy.namedTuples.Vector4Tuple-class.html\" \n          class=\"link\">Vector4Tuple</a><code>(x, y, z, h)</code> if \n          <code><b>Nvector</b> is None</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>h</code></b>, <b><code>Nvector</code></b> or \n        <b><code>name_Nvector_kwds</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Methods <code>toCartesian</code>, <code>toVector</code> and \n        <code>toVector3d</code>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"toStr\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toStr</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">form</span>=<span class=\"sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">dms</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"sig-arg\">joined</span>=<span class=\"sig-default\">', '</span>,\n        <span class=\"sig-arg\">m</span>=<span class=\"sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">m</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"sig-arg\">**prec_sep_s_D_M_S</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert this point to a &quot;lat, lon[, +/-height]&quot; string, \n  formatted in the given <code><b>form</b>at</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>form</code></strong> - The lat-/longitude <code><b>form</b>at</code> to use \n          (<code>str</code>), see functions <a \n          href=\"pygeodesy.dms-module.html#latDMS\" \n          class=\"link\">pygeodesy.latDMS</a> or <a \n          href=\"pygeodesy.dms-module.html#lonDMS\" \n          class=\"link\">pygeodesy.lonDMS</a>.</li>\n        <li><strong class=\"pname\"><code>joined</code></strong> - Separator to join the lat-, longitude and height strings \n          (<code>str</code> or <code>None</code> or <code>NN</code> for \n          non-joined).</li>\n        <li><strong class=\"pname\"><code>m</code></strong> - Optional unit of the height (<code>str</code>), use \n          <code>None</code> to exclude height from the returned string.</li>\n        <li><strong class=\"pname\"><code>prec_sep_s_D_M_S</code></strong> - Optional <code><b>prec</b>ision</code>, \n          <code><b>sep</b>arator</code>, <b><code>s_D</code></b>, \n          <b><code>s_M</code></b>, <b><code>s_S</code></b> and \n          <b><code>s_DMS</code></b> keyword arguments, see function <a \n          href=\"pygeodesy.dms-module.html#toDMS\" \n          class=\"link\">pygeodesy.toDMS</a> for details.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>This point in the specified <code><b>form</b>at</code>, etc. \n          (<code>str</code> or a 2- or 3-tuple <code>(lat_str, lon_str[, \n          height_str])</code> if <b><code>joined</code></b> is \n          <code>NN</code> or <code>None</code>).</dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.named._Named-class.html#toStr\">named._Named.toStr</a>\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.dms-module.html#latDMS\" \n        class=\"link\">pygeodesy.latDMS</a> or <a \n        href=\"pygeodesy.dms-module.html#lonDMS\" \n        class=\"link\">pygeodesy.lonDMS</a> for more details about keyword \n        arguments <code><b>form</b>at</code>, \n        <code><b>prec</b>ision</code>, <code><b>sep</b>arator</code>, \n        <b><code>s_D</code></b>, <b><code>s_M</code></b>, \n        <b><code>s_S</code></b> and <b><code>s_DMS</code></b>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"toVector\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toVector</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">Vector</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**Vector_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert this point to a <code>Vector</code> with the <i>geocentric</i>\n  <code>(x, y, z)</code> (ECEF) coordinates, <i>ignoring height</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>Vector</code></strong> - Optional class to return the <i>geocentric</i> components (<a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>) or <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>Vector_kwds</code></strong> - Optionally, additional <b><code>Vector</code></b> keyword \n          arguments, ignored if <code><b>Vector</b> is None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <b><code>Vector</code></b> instance or a <a \n          href=\"pygeodesy.namedTuples.Vector3Tuple-class.html\" \n          class=\"link\">Vector3Tuple</a><code>(x, y, z)</code> if \n          <code><b>Vector</b> is None</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>Vector</code></b> or \n        <b><code>Vector_kwds</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Methods <code>toCartesian</code>, <code>toNvector</code> and \n        <code>toVector3d</code>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"toVector3d\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toVector3d</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">norm</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">**Vector3d_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert this point to a <a \n  href=\"pygeodesy.vector3d.Vector3d-class.html\" class=\"link\">Vector3d</a> \n  with the <i>geocentric</i> <code>(x, y, z)</code> (ECEF) coordinates, \n  <i>ignoring height</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>norm</code></strong> - If <code>False</code>, don't normalize the coordinates \n          (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>Vector3d_kwds</code></strong> - Optional <a href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a> keyword arguments.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Named, unit vector or vector (<a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>Vector3d_kwds</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Methods <code>toCartesian</code>, <code>toNvector</code> and \n        <code>toVector</code>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"toWm\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toWm</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">**toWm_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert this point to a WM coordinate.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>toWm_kwds</code></strong> - Optional <a href=\"pygeodesy.webmercator-module.html#toWm\" \n          class=\"link\">pygeodesy.toWm</a> keyword arguments.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The WM coordinate (<a href=\"pygeodesy.webmercator.Wm-class.html\" \n          class=\"link\">Wm</a>).</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.webmercator-module.html#toWm\" \n        class=\"link\">pygeodesy.toWm</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"vincentysTo\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">vincentysTo</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>,\n        <span class=\"sig-arg\">**radius_wrap</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the distance between this and an other point using <a \n  href=\"https://WikiPedia.org/wiki/Great-circle_distance\" \n  target=\"_top\">Vincenty's</a> spherical formula.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>other</code></strong> - The other point (<code>LatLon</code>).</li>\n        <li><strong class=\"pname\"><code>radius_wrap</code></strong> - Optional <code><b>radius</b>=R_M</code> and \n          <code><b>wrap</b>=False</code> for function <a \n          href=\"pygeodesy.formy-module.html#vincentys\" \n          class=\"link\">pygeodesy.vincentys</a>, overriding the default \n          <code>mean radius</code> of this point's datum ellipsoid.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Distance (<code>meter</code>, same units as \n          <b><code>radius</code></b>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - The <b><code>other</code></b> point is not <code>LatLon</code>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.formy-module.html#vincentys\" \n        class=\"link\">pygeodesy.vincentys</a> and methods <a \n        href=\"pygeodesy.latlonBase.LatLonBase-class.html#cosineLawTo\" \n        class=\"link\">cosineLawTo</a>, <code>distanceTo*</code>, <a \n        href=\"pygeodesy.latlonBase.LatLonBase-class.html#equirectangularTo\"\n        class=\"link\">equirectangularTo</a>, <a \n        href=\"pygeodesy.latlonBase.LatLonBase-class.html#euclideanTo\" \n        class=\"link\">euclideanTo</a>, <a \n        href=\"pygeodesy.latlonBase.LatLonBase-class.html#flatLocalTo\" \n        class=\"link\">flatLocalTo</a> / <a \n        href=\"pygeodesy.latlonBase.LatLonBase-class.html#flatLocalTo\" \n        class=\"link\">hubenyTo</a>, <a \n        href=\"pygeodesy.latlonBase.LatLonBase-class.html#flatPolarTo\" \n        class=\"link\">flatPolarTo</a>, <a \n        href=\"pygeodesy.latlonBase.LatLonBase-class.html#haversineTo\" \n        class=\"link\">haversineTo</a> and <a \n        href=\"pygeodesy.latlonBase.LatLonBase-class.html#thomasTo\" \n        class=\"link\">thomasTo</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<br />\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"clipid\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">clipid</h3>\n  <p>Get the (polygonal) clip (<code>int</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">clipid(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the (polygonal) clip (<code>int</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">clipid(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">clipid</span>)</span>\n        - Get the (polygonal) clip (<code>int</code>).\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"datum\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">datum</h3>\n  <p><i>Must be overloaded</i>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">datum(<span class=\"summary-sig-arg\">self</span>)</span>\n        - <i>Must be overloaded</i>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"ellipsoidalLatLon\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">ellipsoidalLatLon</h3>\n  <p>Get the <code>LatLon type</code> iff ellipsoidal, overloaded in <a \n  href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html\" \n  class=\"link\">LatLonEllipsoidalBase</a>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">ellipsoidalLatLon(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <code>LatLon type</code> iff ellipsoidal, overloaded in <a \nhref=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html\" \nclass=\"link\">LatLonEllipsoidalBase</a>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"height\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">height</h3>\n  <p>Get the height (<code>meter</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">height(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the height (<code>meter</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">height(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">height</span>)</span>\n        - Set the height (<code>meter</code>).\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"isEllipsoidal\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">isEllipsoidal</h3>\n  <p>Check whether this point is ellipsoidal (<code>bool</code> or \n  <code>None</code> if unknown).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">isEllipsoidal(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Check whether this point is ellipsoidal (<code>bool</code> or \n<code>None</code> if unknown).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"isSpherical\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">isSpherical</h3>\n  <p>Check whether this point is spherical (<code>bool</code> or \n  <code>None</code> if unknown).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">isSpherical(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Check whether this point is spherical (<code>bool</code> or \n<code>None</code> if unknown).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"isnormal\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">isnormal</h3>\n  <p>Return <code>True</code> if this point is normal (<code>bool</code>), \n  meaning <code>abs(lat) &lt;= 90</code> and <code>abs(lon) &lt;= \n  180</code>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">isnormal(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Return <code>True</code> if this point is normal (<code>bool</code>), \nmeaning <code>abs(lat) &lt;= 90</code> and <code>abs(lon) &lt;= 180</code>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Methods <a href=\"pygeodesy.latlonBase.LatLonBase-class.html#normal\"\n        class=\"link\">normal</a>, <a \n        href=\"pygeodesy.latlonBase.LatLonBase-class.html#toNormal\" \n        class=\"link\">toNormal</a> and functions <a \n        href=\"pygeodesy.formy-module.html#isnormal\" \n        class=\"link\">isnormal</a> and <a \n        href=\"pygeodesy.formy-module.html#normal\" class=\"link\">normal</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"lam\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">lam</h3>\n  <p>Get the longitude (<b><code>radians</code></b>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">lam(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the longitude (<b><code>radians</code></b>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"lat\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">lat</h3>\n  <p>Get the latitude (<code>degrees90</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">lat(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the latitude (<code>degrees90</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">lat(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lat</span>)</span>\n        - Set the latitude (<code>str[N|S]</code> or <code>degrees</code>).\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"latlon\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">latlon</h3>\n  <p>Get the lat- and longitude (<a \n  href=\"pygeodesy.namedTuples.LatLon2Tuple-class.html\" \n  class=\"link\">LatLon2Tuple</a><code>(lat, lon)</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">latlon(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the lat- and longitude (<a \nhref=\"pygeodesy.namedTuples.LatLon2Tuple-class.html\" \nclass=\"link\">LatLon2Tuple</a><code>(lat, lon)</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">latlon(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">latlonh</span>)</span>\n        - Set the lat- and longitude and optionally the height (2- or 3-tuple or \ncomma- or space-separated <code>str</code> of <code>degrees90</code>, \n<code>degrees180</code> and <code>meter</code>).\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"latlonheight\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">latlonheight</h3>\n  <p>Get the lat-, longitude and height (<a \n  href=\"pygeodesy.namedTuples.LatLon3Tuple-class.html\" \n  class=\"link\">LatLon3Tuple</a><code>(lat, lon, height)</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">latlonheight(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the lat-, longitude and height (<a \nhref=\"pygeodesy.namedTuples.LatLon3Tuple-class.html\" \nclass=\"link\">LatLon3Tuple</a><code>(lat, lon, height)</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">latlonheight(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">latlonh</span>)</span>\n        - Set the lat- and longitude and optionally the height (2- or 3-tuple or \ncomma- or space-separated <code>str</code> of <code>degrees90</code>, \n<code>degrees180</code> and <code>meter</code>).\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"lon\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">lon</h3>\n  <p>Get the longitude (<code>degrees180</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">lon(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the longitude (<code>degrees180</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">lon(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lon</span>)</span>\n        - Set the longitude (<code>str[E|W]</code> or <code>degrees</code>).\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"phi\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">phi</h3>\n  <p>Get the latitude (<b><code>radians</code></b>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">phi(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the latitude (<b><code>radians</code></b>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"philam\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">philam</h3>\n  <p>Get the lat- and longitude (<a \n  href=\"pygeodesy.namedTuples.PhiLam2Tuple-class.html\" \n  class=\"link\">PhiLam2Tuple</a><code>(phi, lam)</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">philam(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the lat- and longitude (<a \nhref=\"pygeodesy.namedTuples.PhiLam2Tuple-class.html\" \nclass=\"link\">PhiLam2Tuple</a><code>(phi, lam)</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"philamheight\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">philamheight</h3>\n  <p>Get the lat-, longitude in <code>radians</code> and height (<a \n  href=\"pygeodesy.namedTuples.PhiLam3Tuple-class.html\" \n  class=\"link\">PhiLam3Tuple</a><code>(phi, lam, height)</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">philamheight(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the lat-, longitude in <code>radians</code> and height (<a \nhref=\"pygeodesy.namedTuples.PhiLam3Tuple-class.html\" \nclass=\"link\">PhiLam3Tuple</a><code>(phi, lam, height)</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"sphericalLatLon\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">sphericalLatLon</h3>\n  <p>Get the <code>LatLon type</code> iff spherical, overloaded in <a \n  href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html\" \n  class=\"link\">LatLonSphericalBase</a>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">sphericalLatLon(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <code>LatLon type</code> iff spherical, overloaded in <a \nhref=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html\" \nclass=\"link\">LatLonSphericalBase</a>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"xyz\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">xyz</h3>\n  <p>Get the <i>geocentric</i> <code>(x, y, z)</code> coordinates (<a \n  href=\"pygeodesy.namedTuples.Vector3Tuple-class.html\" \n  class=\"link\">Vector3Tuple</a><code>(x, y, z)</code>)</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">xyz(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <i>geocentric</i> <code>(x, y, z)</code> coordinates (<a \nhref=\"pygeodesy.namedTuples.Vector3Tuple-class.html\" \nclass=\"link\">Vector3Tuple</a><code>(x, y, z)</code>)\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"xyz3\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">xyz3</h3>\n  <p>Get the <i>geocentric</i> <code>(x, y, z)</code> coordinates as \n  <code>3-tuple</code>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">xyz3(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <i>geocentric</i> <code>(x, y, z)</code> coordinates as \n<code>3-tuple</code>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"xyzh\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">xyzh</h3>\n  <p>Get the <i>geocentric</i> <code>(x, y, z)</code> coordinates and \n  height (<a href=\"pygeodesy.namedTuples.Vector4Tuple-class.html\" \n  class=\"link\">Vector4Tuple</a><code>(x, y, z, h)</code>)</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">xyzh(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <i>geocentric</i> <code>(x, y, z)</code> coordinates and height (<a\nhref=\"pygeodesy.namedTuples.Vector4Tuple-class.html\" \nclass=\"link\">Vector4Tuple</a><code>(x, y, z, h)</code>)\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.lazily-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.lazily</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        Module&nbsp;lazily\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.lazily-module.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== MODULE DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Module lazily</h1><p class=\"nomargin-top\"></p>\n<p>Lazily import <code>pygeodesy</code> modules and attributes, based on \n  <a href=\"https://modutil.ReadTheDocs.io/en/latest/#lazy_import\" \n  target=\"_top\">lazy_import</a> from <i>Brett Cannon</i>'s <a \n  href=\"https://PyPI.org/project/modutil\" target=\"_top\">modutil</a>.</p>\n  <p><code>Lazy import</code> is <i>supported only for </i><a \n  href=\"https://Snarky.Ca/lazy-importing-in-python-3-7\" \n  target=\"_top\">Python 3.7+</a> and is <i>enabled by default</i> in <a \n  href=\"https://PyPI.org/project/PyGeodesy\" target=\"_top\">PyGeodesy \n  18.11.10</a> <i>and newer</i>.</p>\n  <p>To <i>enable</i> <code>lazy import</code>, set <code>env</code> \n  variable <code>PYGEODESY_LAZY_IMPORT</code> to <code>1</code>, \n  <code>2</code>, <code>3</code> or higher prior to <code>import \n  pygeodesy</code>.  To <i>disable</i> <code>lazy import</code>, set \n  <code>env</code> variable <code>PYGEODESY_LAZY_IMPORT</code> to \n  <code>0</code> or an empty string.  Use <code>2</code> or higher to print\n  a message for each lazily imported module and attribute, similar to \n  <code>env</code> variable <code>PYTHONVERBOSE</code> showing imports.  \n  Using <code>3</code> or higher also shows the importing file name and \n  line number.</p>\n\n<hr />\n<div class=\"fields\">      <strong>Notes:</strong>\n      <ul class=\"nomargin-top\">\n        <li>\n        <code>Lazy import</code> applies only to top-level modules of \n        <code>pygeodesy</code>. The <code>lazy import</code> of a top-level\n        module invariably loads all sub-modules imported by that top-level \n        module.\n        </li>\n        <li>\n        <code>Lazy import</code> raises a <a \n        href=\"pygeodesy.lazily.LazyAttributeError-class.html\" \n        class=\"link\">LazyAttributeError</a> or <a \n        href=\"pygeodesy.lazily.LazyImportError-class.html\" \n        class=\"link\">LazyImportError</a> depending on the cause of the \n        error and such errors can occur late, after all initial imports.\n        </li>\n      </ul>\n      <p><strong>Version:</strong>\n        26.03.20\n      </p>\n</div><!-- ==================== CLASSES ==================== -->\n<a name=\"section-Classes\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Classes</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.lazily.LazyAttributeError-class.html\" class=\"summary-name\">LazyAttributeError</a><br />\n      Raised if a <code>lazily imported</code> attribute is missing or \n        invalid.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.lazily.LazyImportError-class.html\" class=\"summary-name\">LazyImportError</a><br />\n      Raised if <code>lazy import</code> is not supported, disabled or \n        failed.\n    </td>\n  </tr>\n</table>\n<!-- ==================== VARIABLES ==================== -->\n<a name=\"section-Variables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Variables</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"isLazy\"></a><span class=\"summary-name\">isLazy</span> = <code title=\"None\">None</code><br />\n      hash(x)\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.lazily.LazyAttributeError-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.lazily.LazyAttributeError</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.lazily-module.html\">Module&nbsp;lazily</a> ::\n        Class&nbsp;LazyAttributeError\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.lazily.LazyAttributeError-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class LazyAttributeError</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n              object --+                \n                       |                \nexceptions.BaseException --+            \n                           |            \n        exceptions.Exception --+        \n                               |        \n        exceptions.StandardError --+    \n                                   |    \n           exceptions.AttributeError --+\n                                       |\n                                      <strong class=\"uidshort\">LazyAttributeError</strong>\n</pre>\n\n<hr />\n<p>Raised if a <code>lazily imported</code> attribute is missing or \n  invalid.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.lazily.LazyAttributeError-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">*args</span>,\n        <span class=\"summary-sig-arg\">**kwds</span>)</span><br />\n      x.__init__(...) initializes x; see help(type(x)) for signature</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.AttributeError</code></b>:\n      <code>__new__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.BaseException</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getslice__</code>,\n      <code>__reduce__</code>,\n      <code>__repr__</code>,\n      <code>__setattr__</code>,\n      <code>__setstate__</code>,\n      <code>__str__</code>,\n      <code>__unicode__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__format__</code>,\n      <code>__hash__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.BaseException</code></b>:\n      <code>args</code>,\n      <code>message</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">*args</span>,\n        <span class=\"sig-arg\">**kwds</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>x.__init__(...) initializes x; see help(type(x)) for signature</p>\n  <dl class=\"fields\">\n    <dt>Overrides:\n        object.__init__\n        <dd><em class=\"note\">(inherited documentation)</em></dd>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.lazily.LazyImportError-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.lazily.LazyImportError</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.lazily-module.html\">Module&nbsp;lazily</a> ::\n        Class&nbsp;LazyImportError\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.lazily.LazyImportError-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class LazyImportError</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n              object --+                \n                       |                \nexceptions.BaseException --+            \n                           |            \n        exceptions.Exception --+        \n                               |        \n        exceptions.StandardError --+    \n                                   |    \n              exceptions.ImportError --+\n                                       |\n                                      <strong class=\"uidshort\">LazyImportError</strong>\n</pre>\n\n<hr />\n<p>Raised if <code>lazy import</code> is not supported, disabled or \n  failed.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.lazily.LazyImportError-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">*args</span>,\n        <span class=\"summary-sig-arg\">**kwds</span>)</span><br />\n      x.__init__(...) initializes x; see help(type(x)) for signature</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.ImportError</code></b>:\n      <code>__new__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.BaseException</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getslice__</code>,\n      <code>__reduce__</code>,\n      <code>__repr__</code>,\n      <code>__setattr__</code>,\n      <code>__setstate__</code>,\n      <code>__str__</code>,\n      <code>__unicode__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__format__</code>,\n      <code>__hash__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.BaseException</code></b>:\n      <code>args</code>,\n      <code>message</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">*args</span>,\n        <span class=\"sig-arg\">**kwds</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>x.__init__(...) initializes x; see help(type(x)) for signature</p>\n  <dl class=\"fields\">\n    <dt>Overrides:\n        object.__init__\n        <dd><em class=\"note\">(inherited documentation)</em></dd>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.lcc-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.lcc</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        Module&nbsp;lcc\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.lcc-module.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== MODULE DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Module lcc</h1><p class=\"nomargin-top\"></p>\n<p>Lambert Conformal Conic (LCC) projection.</p>\n  <p>Lambert conformal conic projection for 1- or 2-Standard Parallels \n  classes <a href=\"pygeodesy.lcc.Conic-class.html\" class=\"link\">Conic</a>, \n  <a href=\"pygeodesy.lcc-module.html#Conics\" class=\"link\">Conics</a> \n  registry, <a href=\"pygeodesy.lcc.LCCError-class.html\" \n  class=\"link\">LCCError</a> and position class <a \n  href=\"pygeodesy.lcc.Lcc-class.html\" class=\"link\">Lcc</a>.</p>\n  <p>See <a \n  href=\"https://WikiPedia.org/wiki/Lambert_conformal_conic_projection\" \n  target=\"_top\">LCC</a>, <a \n  href=\"https://www.Linz.govt.NZ/data/geodetic-system/coordinate-conversion/projection-conversions/lambert-conformal-conic-geographic\"\n  target=\"_top\">Lambert Conformal Conic to Geographic Transformation \n  Formulae</a>, <a \n  href=\"https://MathWorld.Wolfram.com/LambertConformalConicProjection.html\"\n  target=\"_top\">Lambert Conformal Conic Projection</a> and John P. Snyder \n  <a href=\"https://Pubs.USGS.gov/pp/1395/report.pdf\" target=\"_top\">'Map \n  Projections - A Working Manual'</a>, 1987, pp 107-109.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Version:</strong>\n        25.08.31\n      </p>\n</div><!-- ==================== CLASSES ==================== -->\n<a name=\"section-Classes\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Classes</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.lcc.Conic-class.html\" class=\"summary-name\">Conic</a><br />\n      Lambert conformal conic projection (1- or 2-SP).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.lcc.LCCError-class.html\" class=\"summary-name\">LCCError</a><br />\n      Lambert Conformal Conic <code>LCC</code> or other <a \n        href=\"pygeodesy.lcc.Lcc-class.html\" class=\"link\">Lcc</a> issue.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.lcc.Lcc-class.html\" class=\"summary-name\">Lcc</a><br />\n      Lambert conformal conic East-/Northing location.\n    </td>\n  </tr>\n</table>\n<!-- ==================== FUNCTIONS ==================== -->\n<a name=\"section-Functions\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Functions</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.lcc-module.html#toLcc\" class=\"summary-sig-name\">toLcc</a>(<span class=\"summary-sig-arg\">latlon</span>,\n        <span class=\"summary-sig-arg\">conic</span>=<span class=\"summary-sig-default\">Conic(name='WRF_Lb', lat0=40, lon0=-97, par1=33, par2=45, E0=0<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"summary-sig-arg\">height</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">Lcc</span>=<span class=\"summary-sig-default\">&lt;class 'pygeodesy.lcc.Lcc'&gt;</span>,\n        <span class=\"summary-sig-arg\">**name_Lcc_kwds</span>)</span><br />\n      Convert an (ellipsoidal) geodetic point to a <i>Lambert</i> location.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== VARIABLES ==================== -->\n<a name=\"section-Variables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Variables</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"__all__\"></a><span class=\"summary-name\">__all__</span> = <code title=\"_ALL_LAZY.lcc\">_ALL_LAZY.lcc</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.lcc-module.html#Conics\" class=\"summary-name\">Conics</a> = <code title=\"Conics.WRF_Lb: Conic(name='WRF_Lb', lat0=40, lon0=-97, par1=33, par2=4\\\n5, E0=0, N0=0, k0=1, SP=2, datum=Datum(name='WGS84', ellipsoid=Ellipso\\\nids.WGS84, transform=Transforms.WGS84))\">Conics.WRF_Lb: Conic(name='WRF_Lb', lat0=40, lon0=-97<code class=\"variable-ellipsis\">...</code></code><br />\n      Some pre-defined <a href=\"pygeodesy.lcc.Conic-class.html\" \n      class=\"link\">Conic</a>s, all <i>lazily</i> instantiated.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"Conics.Be08Lb\"></a><span class=\"summary-name\">Conics.Be08Lb</span><br />\n      Conic(name='Be08Lb', lat0=50.797815, lon0=4.35921583, \n      par1=49.8333339, par2=51.1666672, E0=649328, N0=665262, k0=1, SP=2, \n      datum=Datum(name='GRS80', ellipsoid=Ellipsoids.GRS80, \n      transform=Transforms.WGS84),\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"Conics.Be72Lb\"></a><span class=\"summary-name\">Conics.Be72Lb</span><br />\n      Conic(name='Be72Lb', lat0=90, lon0=4.3674867, par1=49.8333339, \n      par2=51.1666672, E0=150000.013, N0=5400088.438, k0=1, SP=2, \n      datum=Datum(name='NAD83', ellipsoid=Ellipsoids.GRS80, \n      transform=Transforms.NAD83),\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"Conics.Fr93Lb\"></a><span class=\"summary-name\">Conics.Fr93Lb</span><br />\n      Conic(name='Fr93Lb', lat0=46.5, lon0=3, par1=49, par2=44, E0=700000, \n      N0=6600000, k0=1, SP=2, datum=Datum(name='WGS84', \n      ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84),\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"Conics.MaNLb\"></a><span class=\"summary-name\">Conics.MaNLb</span><br />\n      Conic(name='MaNLb', lat0=33.3, lon0=-5.4, par1=31.73, par2=34.87, \n      E0=500000, N0=300000, k0=1, SP=2, datum=Datum(name='NTF', \n      ellipsoid=Ellipsoids.Clarke1880IGN, transform=Transforms.NTF),\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"Conics.MxLb\"></a><span class=\"summary-name\">Conics.MxLb</span><br />\n      Conic(name='MxLb', lat0=12, lon0=-102, par1=17.5, par2=29.5, \n      E0=2500000, N0=0, k0=1, SP=2, datum=Datum(name='WGS84', \n      ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84),\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"Conics.PyT_Lb\"></a><span class=\"summary-name\">Conics.PyT_Lb</span><br />\n      Conic(name='PyT_Lb', lat0=46.8, lon0=2.33722917, par1=45.8989389, \n      par2=47.6960144, E0=600000, N0=200000, k0=1, SP=2, \n      datum=Datum(name='NTF', ellipsoid=Ellipsoids.Clarke1880IGN, \n      transform=Transforms.NTF),\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"Conics.USA_Lb\"></a><span class=\"summary-name\">Conics.USA_Lb</span><br />\n      Conic(name='USA_Lb', lat0=23, lon0=-96, par1=33, par2=45, E0=0, N0=0,\n      k0=1, SP=2, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, \n      transform=Transforms.WGS84),\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"Conics.WRF_Lb\"></a><span class=\"summary-name\">Conics.WRF_Lb</span><br />\n      Conic(name='WRF_Lb', lat0=40, lon0=-97, par1=33, par2=45, E0=0, N0=0,\n      k0=1, SP=2, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, \n      transform=Transforms.WGS84)\n    </td>\n  </tr>\n</table>\n<!-- ==================== FUNCTION DETAILS ==================== -->\n<a name=\"section-FunctionDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Function Details</span></td>\n</tr>\n</table>\n<a name=\"toLcc\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toLcc</span>&nbsp;(<span class=\"sig-arg\">latlon</span>,\n        <span class=\"sig-arg\">conic</span>=<span class=\"sig-default\">Conic(name='WRF_Lb', lat0=40, lon0=-97, par1=33, par2=45, E0=0<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"sig-arg\">height</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">Lcc</span>=<span class=\"sig-default\">&lt;class 'pygeodesy.lcc.Lcc'&gt;</span>,\n        <span class=\"sig-arg\">**name_Lcc_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert an (ellipsoidal) geodetic point to a <i>Lambert</i> \n  location.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>latlon</code></strong> - Ellipsoidal point (<code>LatLon</code>).</li>\n        <li><strong class=\"pname\"><code>conic</code></strong> - Optional Lambert projection to use (<a \n          href=\"pygeodesy.lcc.Conic-class.html\" class=\"link\">Conic</a>).</li>\n        <li><strong class=\"pname\"><code>height</code></strong> - Optional height for the point, overriding the default height \n          (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>Lcc</code></strong> - Class to return the <i>Lambert</i> location (<a \n          href=\"pygeodesy.lcc.Lcc-class.html\" class=\"link\">Lcc</a>).</li>\n        <li><strong class=\"pname\"><code>name_Lcc_kwds</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>) and \n          optionally, additional <b><code>Lcc</code></b> keyword arguments,\n          ignored if <b><code>Lcc</code> is None</b>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The <i>Lambert</i> location (<a \n          href=\"pygeodesy.lcc.Lcc-class.html\" class=\"link\">Lcc</a>) or if \n          <code><b>Lcc</b> is None</code>, an <a \n          href=\"pygeodesy.namedTuples.EasNor3Tuple-class.html\" \n          class=\"link\">EasNor3Tuple</a><code>(easting, northing, \n          height)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - If <b><code>latlon</code></b> is not ellipsoidal.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== VARIABLES DETAILS ==================== -->\n<a name=\"section-VariablesDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Variables Details</span></td>\n</tr>\n</table>\n<a name=\"Conics\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">Conics</h3>\n  <p>Some pre-defined <a href=\"pygeodesy.lcc.Conic-class.html\" \n  class=\"link\">Conic</a>s, all <i>lazily</i> instantiated.</p>\n  <dl class=\"fields\">\n  </dl>\n  <dl class=\"fields\">\n    <dt>Value:</dt>\n      <dd><table><tr><td><pre class=\"variable\">\nConics.WRF_Lb: Conic(name='WRF_Lb', lat0=40, lon0=-97, par1=33, par2=4<span class=\"variable-linewrap\"><img src=\"crarr.png\" alt=\"\\\" /></span>\n5, E0=0, N0=0, k0=1, SP=2, datum=Datum(name='WGS84', ellipsoid=Ellipso<span class=\"variable-linewrap\"><img src=\"crarr.png\" alt=\"\\\" /></span>\nids.WGS84, transform=Transforms.WGS84))\n</pre></td></tr></table>\n</dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.lcc.Conic-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.lcc.Conic</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.lcc-module.html\">Module&nbsp;lcc</a> ::\n        Class&nbsp;Conic\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.lcc.Conic-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Conic</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+            \n           |            \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+        \n               |        \n<a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+    \n                   |    \n<a href=\"pygeodesy.named._NamedEnumItem-class.html\">named._NamedEnumItem</a> --+\n                       |\n                      <strong class=\"uidshort\">Conic</strong>\n</pre>\n\n<hr />\n<p>Lambert conformal conic projection (1- or 2-SP).</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.lcc.Conic-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">latlon0</span>,\n        <span class=\"summary-sig-arg\">par1</span>,\n        <span class=\"summary-sig-arg\">par2</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">E0</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">N0</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">k0</span>=<span class=\"summary-sig-default\">1</span>,\n        <span class=\"summary-sig-arg\">opt3</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">auth</span>=<span class=\"summary-sig-default\">''</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      New Lambert conformal conic projection.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.lcc.Conic-class.html#convertDatum\" class=\"summary-sig-name\">convertDatum</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">datum</span>)</span><br />\n      DEPRECATED, use method <a \n      href=\"pygeodesy.lcc.Conic-class.html#toDatum\" \n      class=\"link\">Conic.toDatum</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.lcc.Conic-class.html#toDatum\" class=\"summary-sig-name\">toDatum</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">datum</span>)</span><br />\n      Convert this conic to the given datum.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.lcc.Conic-class.html#toStr\" class=\"summary-sig-name\">toStr</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">prec</span>=<span class=\"summary-sig-default\">8</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Return this conic as a string.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedEnumItem-class.html\">named._NamedEnumItem</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedEnumItem-class.html#unregister\">unregister</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#others\">others</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#toRepr\">toRepr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.lcc.Conic-class.html#auth\" class=\"summary-name\">auth</a><br />\n      Get the authentication authority (<code>str</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.lcc.Conic-class.html#datum\" class=\"summary-name\">datum</a><br />\n      Get the datum (<a href=\"pygeodesy.datums.Datum-class.html\" \n      class=\"link\">Datum</a>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.lcc.Conic-class.html#E0\" class=\"summary-name\">E0</a><br />\n      Get the false easting (<code>meter</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.lcc.Conic-class.html#k0\" class=\"summary-name\">k0</a><br />\n      Get scale factor (<code>float</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.lcc.Conic-class.html#lat0\" class=\"summary-name\">lat0</a><br />\n      Get the origin latitude (<code>degrees90</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.lcc.Conic-class.html#latlon0\" class=\"summary-name\">latlon0</a><br />\n      Get the central origin (<a \n      href=\"pygeodesy.namedTuples.LatLon2Tuple-class.html\" \n      class=\"link\">LatLon2Tuple</a><code>(lat, lon)</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.lcc.Conic-class.html#lam0\" class=\"summary-name\">lam0</a><br />\n      Get the central meridian (<code>radians</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.lcc.Conic-class.html#lon0\" class=\"summary-name\">lon0</a><br />\n      Get the central meridian (<code>degrees180</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.lcc.Conic-class.html#N0\" class=\"summary-name\">N0</a><br />\n      Get the false northing (<code>meter</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.lcc.Conic-class.html#name2\" class=\"summary-name\">name2</a><br />\n      Get the conic and datum names as &quot;conic.datum&quot; \n      (<code>str</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.lcc.Conic-class.html#opt3\" class=\"summary-name\">opt3</a><br />\n      Get the optional meridian (<code>degrees180</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.lcc.Conic-class.html#par1\" class=\"summary-name\">par1</a><br />\n      Get the 1st standard parallel (<code>degrees90</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.lcc.Conic-class.html#par2\" class=\"summary-name\">par2</a><br />\n      Get the 2nd standard parallel (<code>degrees90</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.lcc.Conic-class.html#phi0\" class=\"summary-name\">phi0</a><br />\n      Get the origin latitude (<code>radians</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.lcc.Conic-class.html#philam0\" class=\"summary-name\">philam0</a><br />\n      Get the central origin (<a \n      href=\"pygeodesy.namedTuples.PhiLam2Tuple-class.html\" \n      class=\"link\">PhiLam2Tuple</a><code>(phi, lam)</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.lcc.Conic-class.html#SP\" class=\"summary-name\">SP</a><br />\n      Get the number of standard parallels (<code>int</code>).\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedEnumItem-class.html\">named._NamedEnumItem</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedEnumItem-class.html#name\">name</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">latlon0</span>,\n        <span class=\"sig-arg\">par1</span>,\n        <span class=\"sig-arg\">par2</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">E0</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">N0</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">k0</span>=<span class=\"sig-default\">1</span>,\n        <span class=\"sig-arg\">opt3</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">auth</span>=<span class=\"sig-default\">''</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New Lambert conformal conic projection.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>latlon0</code></strong> - Origin with (ellipsoidal) datum (<code>LatLon</code>).</li>\n        <li><strong class=\"pname\"><code>par1</code></strong> - First standard parallel (<code>degrees90</code>).</li>\n        <li><strong class=\"pname\"><code>par2</code></strong> - Optional, second standard parallel (<code>degrees90</code>).</li>\n        <li><strong class=\"pname\"><code>E0</code></strong> - Optional, false easting (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>N0</code></strong> - Optional, false northing (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>k0</code></strong> - Optional scale factor (<code>scalar</code>).</li>\n        <li><strong class=\"pname\"><code>opt3</code></strong> - Optional meridian (<code>degrees180</code>).</li>\n        <li><strong class=\"pname\"><code>auth</code></strong> - Optional authentication authority (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> for the conic \n          (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A Lambert projection (<a href=\"pygeodesy.lcc.Conic-class.html\" \n          class=\"link\">Conic</a>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Non-ellipsoidal <b><code>latlon0</code></b>.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>par1</code></b>, <b><code>par2</code></b>, \n        <b><code>E0</code></b>, <b><code>N0</code></b>, \n        <b><code>k0</code></b> or <b><code>opt3</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"convertDatum\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">convertDatum</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">datum</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use method <a \n  href=\"pygeodesy.lcc.Conic-class.html#toDatum\" \n  class=\"link\">Conic.toDatum</a>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_method</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toDatum\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toDatum</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">datum</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert this conic to the given datum.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>datum</code></strong> - Ellipsoidal datum to use (<a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>, \n          <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a> or <a \n          href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Converted conic, unregistered (<a \n          href=\"pygeodesy.lcc.Conic-class.html\" class=\"link\">Conic</a>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Non-ellipsoidal <b><code>datum</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toStr\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toStr</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">prec</span>=<span class=\"sig-default\">8</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return this conic as a string.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>prec</code></strong> - Number of (decimal) digits, unstripped (<code>int</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Overriding <code><b>name</b>=NN</code> (<code>str</code>) or \n          <code>None</code> to exclude this conic's name.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Conic attributes (<code>str</code>).</dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.named._Named-class.html#toStr\">named._Named.toStr</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"auth\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">auth</h3>\n  <p>Get the authentication authority (<code>str</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">auth(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the authentication authority (<code>str</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"datum\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">datum</h3>\n  <p>Get the datum (<a href=\"pygeodesy.datums.Datum-class.html\" \n  class=\"link\">Datum</a>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">datum(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the datum (<a href=\"pygeodesy.datums.Datum-class.html\" \nclass=\"link\">Datum</a>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"E0\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">E0</h3>\n  <p>Get the false easting (<code>meter</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">E0(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the false easting (<code>meter</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"k0\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">k0</h3>\n  <p>Get scale factor (<code>float</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">k0(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get scale factor (<code>float</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"lat0\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">lat0</h3>\n  <p>Get the origin latitude (<code>degrees90</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">lat0(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the origin latitude (<code>degrees90</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"latlon0\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">latlon0</h3>\n  <p>Get the central origin (<a \n  href=\"pygeodesy.namedTuples.LatLon2Tuple-class.html\" \n  class=\"link\">LatLon2Tuple</a><code>(lat, lon)</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">latlon0(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the central origin (<a \nhref=\"pygeodesy.namedTuples.LatLon2Tuple-class.html\" \nclass=\"link\">LatLon2Tuple</a><code>(lat, lon)</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"lam0\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">lam0</h3>\n  <p>Get the central meridian (<code>radians</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">lam0(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the central meridian (<code>radians</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"lon0\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">lon0</h3>\n  <p>Get the central meridian (<code>degrees180</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">lon0(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the central meridian (<code>degrees180</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"N0\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">N0</h3>\n  <p>Get the false northing (<code>meter</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">N0(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the false northing (<code>meter</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"name2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">name2</h3>\n  <p>Get the conic and datum names as &quot;conic.datum&quot; \n  (<code>str</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">name2(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the conic and datum names as &quot;conic.datum&quot; \n(<code>str</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"opt3\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">opt3</h3>\n  <p>Get the optional meridian (<code>degrees180</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">opt3(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the optional meridian (<code>degrees180</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"par1\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">par1</h3>\n  <p>Get the 1st standard parallel (<code>degrees90</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">par1(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the 1st standard parallel (<code>degrees90</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"par2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">par2</h3>\n  <p>Get the 2nd standard parallel (<code>degrees90</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">par2(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the 2nd standard parallel (<code>degrees90</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"phi0\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">phi0</h3>\n  <p>Get the origin latitude (<code>radians</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">phi0(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the origin latitude (<code>radians</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"philam0\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">philam0</h3>\n  <p>Get the central origin (<a \n  href=\"pygeodesy.namedTuples.PhiLam2Tuple-class.html\" \n  class=\"link\">PhiLam2Tuple</a><code>(phi, lam)</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">philam0(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the central origin (<a \nhref=\"pygeodesy.namedTuples.PhiLam2Tuple-class.html\" \nclass=\"link\">PhiLam2Tuple</a><code>(phi, lam)</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"SP\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">SP</h3>\n  <p>Get the number of standard parallels (<code>int</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">SP(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the number of standard parallels (<code>int</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.lcc.LCCError-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.lcc.LCCError</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.lcc-module.html\">Module&nbsp;lcc</a> ::\n        Class&nbsp;LCCError\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.lcc.LCCError-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class LCCError</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n              object --+                    \n                       |                    \nexceptions.BaseException --+                \n                           |                \n        exceptions.Exception --+            \n                               |            \n        exceptions.StandardError --+        \n                                   |        \n               exceptions.ValueError --+    \n                                       |    \n                      errors._ValueError --+\n                                           |\n                                          <strong class=\"uidshort\">LCCError</strong>\n</pre>\n\n<hr />\n<p>Lambert Conformal Conic <code>LCC</code> or other <a \n  href=\"pygeodesy.lcc.Lcc-class.html\" class=\"link\">Lcc</a> issue.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>errors._ValueError</code></b>:\n      <code>__init__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.ValueError</code></b>:\n      <code>__new__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.BaseException</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getslice__</code>,\n      <code>__reduce__</code>,\n      <code>__repr__</code>,\n      <code>__setattr__</code>,\n      <code>__setstate__</code>,\n      <code>__str__</code>,\n      <code>__unicode__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__format__</code>,\n      <code>__hash__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.BaseException</code></b>:\n      <code>args</code>,\n      <code>message</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.lcc.Lcc-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.lcc.Lcc</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.lcc-module.html\">Module&nbsp;lcc</a> ::\n        Class&nbsp;Lcc\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.lcc.Lcc-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Lcc</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+        \n           |        \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n               |    \n<a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+\n                   |\n                  <strong class=\"uidshort\">Lcc</strong>\n</pre>\n\n<hr />\n<p>Lambert conformal conic East-/Northing location.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.lcc.Lcc-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">e</span>,\n        <span class=\"summary-sig-arg\">n</span>,\n        <span class=\"summary-sig-arg\">h</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">conic</span>=<span class=\"summary-sig-default\">Conic(name='WRF_Lb', lat0=40, lon0=-97, par1=33, par2=45, E0=0<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      New <a href=\"pygeodesy.lcc.Lcc-class.html\" class=\"link\">Lcc</a> \n      Lamber conformal conic position.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.lcc.Lcc-class.html#to3lld\" class=\"summary-sig-name\">to3lld</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">datum</span>=<span class=\"summary-sig-default\">None</span>)</span><br />\n      DEPRECATED, use method <code>toLatLon</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.lcc.Lcc-class.html#toLatLon\" class=\"summary-sig-name\">toLatLon</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">LatLon</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">datum</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">height</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**LatLon_kwds</span>)</span><br />\n      Convert this <a href=\"pygeodesy.lcc.Lcc-class.html\" \n      class=\"link\">Lcc</a> to an (ellipsoidal) geodetic point.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.lcc.Lcc-class.html#toRepr\" class=\"summary-sig-name\">toRepr</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">prec</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">fmt</span>=<span class=\"summary-sig-default\">'[%s]'</span>,\n        <span class=\"summary-sig-arg\">sep</span>=<span class=\"summary-sig-default\">', '</span>,\n        <span class=\"summary-sig-arg\">m</span>=<span class=\"summary-sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">m</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"summary-sig-arg\">C</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">**unused</span>)</span><br />\n      Return a string representation of this <a \n      href=\"pygeodesy.lcc.Lcc-class.html\" class=\"link\">Lcc</a> position.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.lcc.Lcc-class.html#toStr\" class=\"summary-sig-name\">toStr</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">prec</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">sep</span>=<span class=\"summary-sig-default\">' '</span>,\n        <span class=\"summary-sig-arg\">m</span>=<span class=\"summary-sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">m</code><code class=\"variable-quote\">'</code></span>)</span><br />\n      Return a string representation of this <a \n      href=\"pygeodesy.lcc.Lcc-class.html\" class=\"link\">Lcc</a> position.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#others\">others</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.lcc.Lcc-class.html#conic\" class=\"summary-name\">conic</a><br />\n      Get the conic projection (<a href=\"pygeodesy.lcc.Conic-class.html\" \n      class=\"link\">Conic</a>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.lcc.Lcc-class.html#easting\" class=\"summary-name\">easting</a><br />\n      Get the easting (<code>meter</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.lcc.Lcc-class.html#height\" class=\"summary-name\">height</a><br />\n      Get the height (<code>meter</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.lcc.Lcc-class.html#latlon\" class=\"summary-name\">latlon</a><br />\n      Get the lat- and longitude in <code>degrees</code> (<a \n      href=\"pygeodesy.namedTuples.LatLon2Tuple-class.html\" \n      class=\"link\">LatLon2Tuple</a>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.lcc.Lcc-class.html#latlonheight\" class=\"summary-name\">latlonheight</a><br />\n      Get the lat-, longitude and height (<a \n      href=\"pygeodesy.namedTuples.LatLon3Tuple-class.html\" \n      class=\"link\">LatLon3Tuple</a><code>(lat, lon, height)</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.lcc.Lcc-class.html#latlonheightdatum\" class=\"summary-name\">latlonheightdatum</a><br />\n      Get the lat-, longitude in <code>degrees</code> with height and datum\n      (<a href=\"pygeodesy.namedTuples.LatLon4Tuple-class.html\" \n      class=\"link\">LatLon4Tuple</a><code>(lat, lon, height, datum)</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.lcc.Lcc-class.html#northing\" class=\"summary-name\">northing</a><br />\n      Get the northing (<code>meter</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.lcc.Lcc-class.html#philam\" class=\"summary-name\">philam</a><br />\n      Get the lat- and longitude in <code>radians</code> (<a \n      href=\"pygeodesy.namedTuples.PhiLam2Tuple-class.html\" \n      class=\"link\">PhiLam2Tuple</a>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.lcc.Lcc-class.html#philamheight\" class=\"summary-name\">philamheight</a><br />\n      Get the lat-, longitude in <code>radians</code> and height (<a \n      href=\"pygeodesy.namedTuples.PhiLam3Tuple-class.html\" \n      class=\"link\">PhiLam3Tuple</a><code>(phi, lam, height)</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.lcc.Lcc-class.html#philamheightdatum\" class=\"summary-name\">philamheightdatum</a><br />\n      Get the lat-, longitude in <code>radians</code> with height and datum\n      (<a href=\"pygeodesy.namedTuples.PhiLam4Tuple-class.html\" \n      class=\"link\">PhiLam4Tuple</a><code>(phi, lam, height, datum)</code>).\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">e</span>,\n        <span class=\"sig-arg\">n</span>,\n        <span class=\"sig-arg\">h</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">conic</span>=<span class=\"sig-default\">Conic(name='WRF_Lb', lat0=40, lon0=-97, par1=33, par2=45, E0=0<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.lcc.Lcc-class.html\" class=\"link\">Lcc</a> Lamber\n  conformal conic position.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>e</code></strong> - Easting (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>n</code></strong> - Northing (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>h</code></strong> - Optional height (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>conic</code></strong> - Optional, the conic projection (<a \n          href=\"pygeodesy.lcc.Conic-class.html\" class=\"link\">Conic</a>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The Lambert location (<a href=\"pygeodesy.lcc.Lcc-class.html\" \n          class=\"link\">Lcc</a>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.lcc.LCCError-class.html\">LCCError</a></strong></code> - Invalid <b><code>h</code></b> or invalid or negative \n        <b><code>e</code></b> or <b><code>n</code></b>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - If <b><code>conic</code></b> is not <a \n        href=\"pygeodesy.lcc.Conic-class.html\" class=\"link\">Conic</a>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"to3lld\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">to3lld</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">datum</span>=<span class=\"sig-default\">None</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use method <code>toLatLon</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>datum</code></strong> - Optional datum to use, otherwise use this \n          <b><code>Lcc</code></b>'s conic.datum (<code>Datum</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.namedTuples.LatLonDatum3Tuple-class.html\" \n          class=\"link\">LatLonDatum3Tuple</a><code>(lat, lon, datum)</code>.</dd>\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_method</code></li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - If <b><code>datum</code></b> is not ellipsoidal.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toLatLon\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toLatLon</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">LatLon</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">datum</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">height</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**LatLon_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert this <a href=\"pygeodesy.lcc.Lcc-class.html\" \n  class=\"link\">Lcc</a> to an (ellipsoidal) geodetic point.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>LatLon</code></strong> - Optional, ellipsoidal class to return the geodetic point \n          (<code>LatLon</code>) or <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>datum</code></strong> - Optional datum to use, otherwise use this \n          <b><code>Lcc</code></b>'s conic.datum (<a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>, \n          <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a> or <a \n          href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>height</code></strong> - Optional height for the point, overriding the default height \n          (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>LatLon_kwds</code></strong> - Optional, additional <b><code>LatLon</code></b> keyword \n          arguments, ignored if <code><b>LatLon</b> is None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The point (<b><code>LatLon</code></b>) or if <code><b>LatLon</b> \n          is None</code>, a <a \n          href=\"pygeodesy.namedTuples.LatLon4Tuple-class.html\" \n          class=\"link\">LatLon4Tuple</a><code>(lat, lon, height, \n          datum)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - If <b><code>LatLon</code></b> or <b><code>datum</code></b> is not \n        ellipsoidal or not valid.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toRepr\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toRepr</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">prec</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">fmt</span>=<span class=\"sig-default\">'[%s]'</span>,\n        <span class=\"sig-arg\">sep</span>=<span class=\"sig-default\">', '</span>,\n        <span class=\"sig-arg\">m</span>=<span class=\"sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">m</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"sig-arg\">C</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">**unused</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return a string representation of this <a \n  href=\"pygeodesy.lcc.Lcc-class.html\" class=\"link\">Lcc</a> position.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>prec</code></strong> - Number of (decimal) digits, unstripped (<code>int</code>).</li>\n        <li><strong class=\"pname\"><code>fmt</code></strong> - Enclosing backets format (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>sep</code></strong> - Optional separator between name:values (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>m</code></strong> - Optional unit of the height, default meter (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>C</code></strong> - Optionally, include name of conic and datum (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>This Lcc as &quot;[E:meter, N:meter, H:m, C:Conic.Datum]&quot; \n          (<code>str</code>).</dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.named._Named-class.html#toRepr\">named._Named.toRepr</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toStr\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toStr</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">prec</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">sep</span>=<span class=\"sig-default\">' '</span>,\n        <span class=\"sig-arg\">m</span>=<span class=\"sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">m</code><code class=\"variable-quote\">'</code></span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return a string representation of this <a \n  href=\"pygeodesy.lcc.Lcc-class.html\" class=\"link\">Lcc</a> position.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>prec</code></strong> - Number of (decimal) digits, unstripped (<code>int</code>).</li>\n        <li><strong class=\"pname\"><code>sep</code></strong> - Optional separator to join (<code>str</code>) or \n          <code>None</code> to return an unjoined <code>tuple</code> of \n          <code>str</code>s.</li>\n        <li><strong class=\"pname\"><code>m</code></strong> - Optional height units, default <code>meter</code> \n          (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>This Lcc as <i>&quot;easting nothing&quot;</i> in \n          <code>meter</code> plus <i>&quot; height&quot;</i> suffixed with \n          <b><code>m</code></b> if height is non-zero (<code>str</code>).</dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.named._Named-class.html#toStr\">named._Named.toStr</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"conic\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">conic</h3>\n  <p>Get the conic projection (<a href=\"pygeodesy.lcc.Conic-class.html\" \n  class=\"link\">Conic</a>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">conic(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the conic projection (<a href=\"pygeodesy.lcc.Conic-class.html\" \nclass=\"link\">Conic</a>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">conic(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">conic</span>)</span>\n        - Set the conic projection (<a href=\"pygeodesy.lcc.Conic-class.html\" \nclass=\"link\">Conic</a>).\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"easting\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">easting</h3>\n  <p>Get the easting (<code>meter</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">easting(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the easting (<code>meter</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"height\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">height</h3>\n  <p>Get the height (<code>meter</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">height(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the height (<code>meter</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"latlon\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">latlon</h3>\n  <p>Get the lat- and longitude in <code>degrees</code> (<a \n  href=\"pygeodesy.namedTuples.LatLon2Tuple-class.html\" \n  class=\"link\">LatLon2Tuple</a>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">latlon(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the lat- and longitude in <code>degrees</code> (<a \nhref=\"pygeodesy.namedTuples.LatLon2Tuple-class.html\" \nclass=\"link\">LatLon2Tuple</a>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"latlonheight\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">latlonheight</h3>\n  <p>Get the lat-, longitude and height (<a \n  href=\"pygeodesy.namedTuples.LatLon3Tuple-class.html\" \n  class=\"link\">LatLon3Tuple</a><code>(lat, lon, height)</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">latlonheight(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the lat-, longitude and height (<a \nhref=\"pygeodesy.namedTuples.LatLon3Tuple-class.html\" \nclass=\"link\">LatLon3Tuple</a><code>(lat, lon, height)</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"latlonheightdatum\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">latlonheightdatum</h3>\n  <p>Get the lat-, longitude in <code>degrees</code> with height and datum \n  (<a href=\"pygeodesy.namedTuples.LatLon4Tuple-class.html\" \n  class=\"link\">LatLon4Tuple</a><code>(lat, lon, height, datum)</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">latlonheightdatum(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the lat-, longitude in <code>degrees</code> with height and datum (<a \nhref=\"pygeodesy.namedTuples.LatLon4Tuple-class.html\" \nclass=\"link\">LatLon4Tuple</a><code>(lat, lon, height, datum)</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"northing\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">northing</h3>\n  <p>Get the northing (<code>meter</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">northing(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the northing (<code>meter</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"philam\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">philam</h3>\n  <p>Get the lat- and longitude in <code>radians</code> (<a \n  href=\"pygeodesy.namedTuples.PhiLam2Tuple-class.html\" \n  class=\"link\">PhiLam2Tuple</a>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">philam(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the lat- and longitude in <code>radians</code> (<a \nhref=\"pygeodesy.namedTuples.PhiLam2Tuple-class.html\" \nclass=\"link\">PhiLam2Tuple</a>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"philamheight\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">philamheight</h3>\n  <p>Get the lat-, longitude in <code>radians</code> and height (<a \n  href=\"pygeodesy.namedTuples.PhiLam3Tuple-class.html\" \n  class=\"link\">PhiLam3Tuple</a><code>(phi, lam, height)</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">philamheight(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the lat-, longitude in <code>radians</code> and height (<a \nhref=\"pygeodesy.namedTuples.PhiLam3Tuple-class.html\" \nclass=\"link\">PhiLam3Tuple</a><code>(phi, lam, height)</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"philamheightdatum\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">philamheightdatum</h3>\n  <p>Get the lat-, longitude in <code>radians</code> with height and datum \n  (<a href=\"pygeodesy.namedTuples.PhiLam4Tuple-class.html\" \n  class=\"link\">PhiLam4Tuple</a><code>(phi, lam, height, datum)</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">philamheightdatum(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the lat-, longitude in <code>radians</code> with height and datum (<a \nhref=\"pygeodesy.namedTuples.PhiLam4Tuple-class.html\" \nclass=\"link\">PhiLam4Tuple</a><code>(phi, lam, height, datum)</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.ltp-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.ltp</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        Module&nbsp;ltp\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.ltp-module.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== MODULE DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Module ltp</h1><p class=\"nomargin-top\"></p>\n<p><i>Local Tangent Plane</i> (LTP) and <i>local</i> cartesian \n  coordinates.</p>\n  <p><i>Local cartesian</i> and <i>local tangent plane</i> classes <a \n  href=\"pygeodesy.ltp.LocalCartesian-class.html\" \n  class=\"link\">LocalCartesian</a>, approximations <a \n  href=\"pygeodesy.ltp.ChLVa-class.html\" class=\"link\">ChLVa</a> and <a \n  href=\"pygeodesy.ltp.ChLVe-class.html\" class=\"link\">ChLVe</a> and <a \n  href=\"pygeodesy.ltp.Ltp-class.html\" class=\"link\">Ltp</a>, <a \n  href=\"pygeodesy.ltp.ChLV-class.html\" class=\"link\">ChLV</a>, <a \n  href=\"pygeodesy.ltp.LocalError-class.html\" class=\"link\">LocalError</a>, \n  <a href=\"pygeodesy.ltp.Attitude-class.html\" class=\"link\">Attitude</a> and\n  <a href=\"pygeodesy.ltp.Frustum-class.html\" class=\"link\">Frustum</a>.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a \n        href=\"https://WikiPedia.org/wiki/Local_tangent_plane_coordinates\" \n        target=\"_top\">Local tangent plane coordinates</a> and class <a \n        href=\"pygeodesy.ltp.LocalCartesian-class.html\" \n        class=\"link\">LocalCartesian</a>, transcoded from <i>Charles \n        Karney</i>'s C++ class<a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1LocalCartesian.html\"\n        target=\"_top\">LocalCartesian</a>.\n      </p>\n      <p><strong>Version:</strong>\n        25.05.12\n      </p>\n</div><!-- ==================== CLASSES ==================== -->\n<a name=\"section-Classes\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Classes</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltp.Attitude-class.html\" class=\"summary-name\">Attitude</a><br />\n      The pose of a plane or camera in space.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltp.AttitudeError-class.html\" class=\"summary-name\">AttitudeError</a><br />\n      An <a href=\"pygeodesy.ltp.Attitude-class.html\" \n        class=\"link\">Attitude</a> or <a \n        href=\"pygeodesy.ltpTuples.Attitude4Tuple-class.html\" \n        class=\"link\">Attitude4Tuple</a> issue.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltp.Frustum-class.html\" class=\"summary-name\">Frustum</a><br />\n      A rectangular pyramid, typically representing a camera's \n        <i>field-of-view</i> (fov) and the intersection with (or projection\n        to) a <i>local tangent plane</i>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltp.LocalError-class.html\" class=\"summary-name\">LocalError</a><br />\n      A <a href=\"pygeodesy.ltp.LocalCartesian-class.html\" \n        class=\"link\">LocalCartesian</a> or <a \n        href=\"pygeodesy.ltp.Ltp-class.html\" class=\"link\">Ltp</a> related \n        issue.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltp.LocalCartesian-class.html\" class=\"summary-name\">LocalCartesian</a><br />\n      Conversion between geodetic <code>(lat, lon, height)</code> and \n        <i>local cartesian</i> <code>(x, y, z)</code> coordinates with \n        <i>geodetic</i> origin <code>(lat0, lon0, height0)</code>, \n        transcoded from <i>Karney</i>'s C++ class <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1LocalCartesian.html\"\n        target=\"_top\">LocalCartesian</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltp.Ltp-class.html\" class=\"summary-name\">Ltp</a><br />\n      A <i>local tangent plan</i> (LTP), a sub-class of \n        <code>LocalCartesian</code> with (re-)configurable ECEF converter.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltp.ChLV-class.html\" class=\"summary-name\">ChLV</a><br />\n      Conversion between <i>WGS84 geodetic</i> and <i>Swiss</i> \n        projection coordinates using <a \n        href=\"pygeodesy.ecef.EcefKarney-class.html\" \n        class=\"link\">pygeodesy.EcefKarney</a>'s Earth-Centered, Earth-Fixed\n        (ECEF) methods.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltp.ChLVa-class.html\" class=\"summary-name\">ChLVa</a><br />\n      Conversion between <i>WGS84 geodetic</i> and <i>Swiss</i> \n        projection coordinates using the <a \n        href=\"https://www.SwissTopo.admin.CH/en/maps-data-online/calculation-services.html\"\n        target=\"_top\">Approximate</a> formulas, page 13.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltp.ChLVe-class.html\" class=\"summary-name\">ChLVe</a><br />\n      Conversion between <i>WGS84 geodetic</i> and <i>Swiss</i> \n        projection coordinates using the <a \n        href=\"https://www.SwissTopo.admin.CH/en/maps-data-online/calculation-services.html\"\n        target=\"_top\">Ellipsoidal approximate</a> formulas, pp 10-11 and <a\n        \n        href=\"https://eMuseum.GGGS.CH/literatur-lv/liste-Dateien/1967_Bolliger_a.pdf\"\n        target=\"_top\">Bolliger, J.</a> pp 148-151 (also <a \n        href=\"https://eMuseum.GGGS.CH/literatur-lv/liste.htm\" \n        target=\"_top\">GGGS</a>).\n    </td>\n  </tr>\n</table>\n<!-- ==================== FUNCTIONS ==================== -->\n<a name=\"section-Functions\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Functions</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ltp-module.html#tyr3d\" class=\"summary-sig-name\">tyr3d</a>(<span class=\"summary-sig-arg\">tilt</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">yaw</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">roll</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">Vector</span>=<span class=\"summary-sig-default\">&lt;class 'pygeodesy.vector3d.Vector3d'&gt;</span>,\n        <span class=\"summary-sig-arg\">**name_Vector_kwds</span>)</span><br />\n      Convert an attitude pose into a (3-D) direction vector.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== VARIABLES ==================== -->\n<a name=\"section-Variables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Variables</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"__all__\"></a><span class=\"summary-name\">__all__</span> = <code title=\"_ALL_LAZY.ltp\">_ALL_LAZY.ltp</code>\n    </td>\n  </tr>\n</table>\n<!-- ==================== FUNCTION DETAILS ==================== -->\n<a name=\"section-FunctionDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Function Details</span></td>\n</tr>\n</table>\n<a name=\"tyr3d\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">tyr3d</span>&nbsp;(<span class=\"sig-arg\">tilt</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">yaw</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">roll</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">Vector</span>=<span class=\"sig-default\">&lt;class 'pygeodesy.vector3d.Vector3d'&gt;</span>,\n        <span class=\"sig-arg\">**name_Vector_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert an attitude pose into a (3-D) direction vector.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>tilt</code></strong> - Pitch, elevation from horizontal (<code>degrees</code>), negative\n          down (clockwise rotation along and around the x-axis).</li>\n        <li><strong class=\"pname\"><code>yaw</code></strong> - Bearing, heading (compass <code>degrees360</code>), clockwise \n          from North (counter-clockwise rotation along and around the \n          z-axis).</li>\n        <li><strong class=\"pname\"><code>roll</code></strong> - Roll, bank (<code>degrees</code>), positive to the right and down\n          (clockwise rotation along and around the y-axis).</li>\n        <li><strong class=\"pname\"><code>Vector</code></strong> - Class to return the direction vector (<code>Cartesian</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a> or <code>Vector3Tuple</code>) or \n          <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>name_Vector_kwds</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>) and \n          optionally, additional <b><code>Vector</code></b> keyword \n          arguments, ignored if <code><b>Vector</b> is None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A named <b><code>Vector</code></b> instance or if \n          <code><b>Vector</b> is None</code>, a named <a \n          href=\"pygeodesy.namedTuples.Vector3Tuple-class.html\" \n          class=\"link\">Vector3Tuple</a><code>(x, y, z)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.ltp.AttitudeError-class.html\">AttitudeError</a></strong></code> - Invalid <b><code>tilt</code></b>, <b><code>yaw</code></b> or \n        <b><code>roll</code></b>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>Vector</code></b> or \n        <b><code>name_Vector_kwds</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"http://MSL.CS.UIUC.edu/planning/node102.html\" \n        target=\"_top\">Yaw, pitch, and roll rotations</a> and function <a \n        href=\"pygeodesy.formy-module.html#hartzell\" \n        class=\"link\">pygeodesy.hartzell</a> argument <code>los</code>, \n        Line-Of-Sight.\n      </p>\n</div></td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.ltp.Attitude-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.ltp.Attitude</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.ltp-module.html\">Module&nbsp;ltp</a> ::\n        Class&nbsp;Attitude\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.ltp.Attitude-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Attitude</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+        \n           |        \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n               |    \n<a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+\n                   |\n                  <strong class=\"uidshort\">Attitude</strong>\n</pre>\n\n<hr />\n<p>The pose of a plane or camera in space.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ltp.Attitude-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">alt_attitude</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">tilt</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">yaw</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">roll</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      New <a href=\"pygeodesy.ltp.Attitude-class.html\" \n      class=\"link\">Attitude</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ltp.Attitude-class.html#rotate\" class=\"summary-sig-name\">rotate</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">x_xyz</span>,\n        <span class=\"summary-sig-arg\">y</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">z</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">Vector</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**name_Vector_kwds</span>)</span><br />\n      Transform a (local) cartesian by this attitude's matrix.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ltp.Attitude-class.html#toStr\" class=\"summary-sig-name\">toStr</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">prec</span>=<span class=\"summary-sig-default\">6</span>,\n        <span class=\"summary-sig-arg\">sep</span>=<span class=\"summary-sig-default\">', '</span>,\n        <span class=\"summary-sig-arg\">**unused</span>)</span><br />\n      Format this attitude as string.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#others\">others</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#toRepr\">toRepr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltp.Attitude-class.html#alt\" class=\"summary-name\">alt</a><br />\n      Class <code>property</code> with a <code>.name</code> attribute.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltp.Attitude-class.html#altitude\" class=\"summary-name\">altitude</a><br />\n      Class <code>property</code> with a <code>.name</code> attribute.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltp.Attitude-class.html#atyr\" class=\"summary-name\">atyr</a><br />\n      Return this attitude's alt[itude], tilt, yaw and roll as an <a \n      href=\"pygeodesy.ltpTuples.Attitude4Tuple-class.html\" \n      class=\"link\">Attitude4Tuple</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltp.Attitude-class.html#matrix\" class=\"summary-name\">matrix</a><br />\n      Get the 3x3 rotation matrix <code>R(yaw)&#183;R(tilt)&#183;R(roll)</code>, aka \n      <i>ZYX</i> (<code>float</code>, row-order).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltp.Attitude-class.html#roll\" class=\"summary-name\">roll</a><br />\n      Class <code>property</code> with a <code>.name</code> attribute.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltp.Attitude-class.html#bank\" class=\"summary-name\">bank</a><br />\n      Class <code>property</code> with a <code>.name</code> attribute.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltp.Attitude-class.html#tilt\" class=\"summary-name\">tilt</a><br />\n      Class <code>property</code> with a <code>.name</code> attribute.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltp.Attitude-class.html#pitch\" class=\"summary-name\">pitch</a><br />\n      Class <code>property</code> with a <code>.name</code> attribute.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltp.Attitude-class.html#elevation\" class=\"summary-name\">elevation</a><br />\n      Class <code>property</code> with a <code>.name</code> attribute.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltp.Attitude-class.html#tyr3d\" class=\"summary-name\">tyr3d</a><br />\n      Get this attitude's (3-D) directional vector (<a \n      href=\"pygeodesy.vector3d.Vector3d-class.html\" \n      class=\"link\">Vector3d</a>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltp.Attitude-class.html#yaw\" class=\"summary-name\">yaw</a><br />\n      Class <code>property</code> with a <code>.name</code> attribute.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltp.Attitude-class.html#heading\" class=\"summary-name\">heading</a><br />\n      Class <code>property</code> with a <code>.name</code> attribute.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltp.Attitude-class.html#bearing\" class=\"summary-name\">bearing</a><br />\n      Class <code>property</code> with a <code>.name</code> attribute.\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">alt_attitude</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">tilt</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">yaw</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">roll</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.ltp.Attitude-class.html\" \n  class=\"link\">Attitude</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>alt_attitude</code></strong> - Altitude (<code>meter</code>) above earth or a previous attitude \n          (<a href=\"pygeodesy.ltp.Attitude-class.html\" \n          class=\"link\">Attitude</a> or <a \n          href=\"pygeodesy.ltpTuples.Attitude4Tuple-class.html\" \n          class=\"link\">Attitude4Tuple</a>) with the \n          <code><b>alt</b>itude</code>, <b><code>tilt</code></b>, \n          <b><code>yaw</code></b> and <b><code>roll</code></b>.</li>\n        <li><strong class=\"pname\"><code>tilt</code></strong> - Pitch, elevation from horizontal (<code>degrees180</code>), \n          negative down (clockwise rotation along and around the x- or East\n          axis), iff <b><code>alt_attitude</code></b> is \n          <code>meter</code>, ignored otherwise.</li>\n        <li><strong class=\"pname\"><code>yaw</code></strong> - Bearing, heading (compass <code>degrees360</code>), clockwise \n          from North (counter-clockwise rotation along and around the z- or\n          Up axis) iff <b><code>alt_attitude</code></b> is \n          <code>meter</code>, ignored otherwise.</li>\n        <li><strong class=\"pname\"><code>roll</code></strong> - Roll, bank (<code>degrees180</code>), positive to the right and \n          down (clockwise rotation along and around the y- or North axis), \n          iff <b><code>alt_attitude</code></b> is <code>meter</code>, \n          ignored otherwise.</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> <code>str</code>).</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.ltp.AttitudeError-class.html\">AttitudeError</a></strong></code> - Invalid <b><code>alt_attitude</code></b>, <b><code>tilt</code></b>,\n        <b><code>yaw</code></b> or <b><code>roll</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"https://WikiPedia.org/wiki/Aircraft_principal_axes\" \n        target=\"_top\">Principal axes</a> and <a \n        href=\"http://MSL.CS.UIUC.edu/planning/node102.html\" \n        target=\"_top\">Yaw, pitch, and roll rotations</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"rotate\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">rotate</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">x_xyz</span>,\n        <span class=\"sig-arg\">y</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">z</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">Vector</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**name_Vector_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Transform a (local) cartesian by this attitude's matrix.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>x_xyz</code></strong> - X component of vector (<code>scalar</code>) or (3-D) vector \n          (<code>Cartesian</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a> or <a \n          href=\"pygeodesy.namedTuples.Vector3Tuple-class.html\" \n          class=\"link\">Vector3Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>y</code></strong> - Y component of vector (<code>scalar</code>), same units as \n          <code>scalar</code> <b><code>x</code></b>, ignored otherwise.</li>\n        <li><strong class=\"pname\"><code>z</code></strong> - Z component of vector (<code>scalar</code>), same units as \n          <code>sclar</code> <b><code>x</code></b>, ignored otherwise.</li>\n        <li><strong class=\"pname\"><code>Vector</code></strong> - Class to return transformed point (<code>Cartesian</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a> or <code>Vector3Tuple</code>) or \n          <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>name_Vector_kwds</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>) and \n          optionally, additional <b><code>Vector</code></b> keyword \n          arguments, ignored if <code><b>Vector</b> is None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A named <b><code>Vector</code></b> instance or if \n          <code><b>Vector</b> is None</code>, a named <a \n          href=\"pygeodesy.namedTuples.Vector3Tuple-class.html\" \n          class=\"link\">Vector3Tuple</a><code>(x, y, z)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.ltp.AttitudeError-class.html\">AttitudeError</a></strong></code> - Invalid <b><code>x_xyz</code></b>, <b><code>y</code></b> or \n        <b><code>z</code></b>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>Vector</code></b> or \n        <b><code>name_Vector_kwds</code></b> item.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"http://MSL.CS.UIUC.edu/planning/node102.html\" \n        target=\"_top\">Yaw, pitch, and roll rotations</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"toStr\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toStr</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">prec</span>=<span class=\"sig-default\">6</span>,\n        <span class=\"sig-arg\">sep</span>=<span class=\"sig-default\">', '</span>,\n        <span class=\"sig-arg\">**unused</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Format this attitude as string.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>prec</code></strong> - The <code>float</code> precision, number of decimal digits \n          (0..9). Trailing zero decimals are stripped for \n          <b><code>prec</code></b> values of 1 and above, but kept for \n          negative <b><code>prec</code></b> values.</li>\n        <li><strong class=\"pname\"><code>sep</code></strong> - Separator to join (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>This attitude (<code>str</code>).</dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.named._Named-class.html#toStr\">named._Named.toStr</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"alt\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">alt</h3>\n  <p>Class <code>property</code> with a <code>.name</code> attribute.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">alt(<span class=\"summary-sig-arg\">self</span>)</span>\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">alt(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">alt</span>)</span>\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"altitude\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">altitude</h3>\n  <p>Class <code>property</code> with a <code>.name</code> attribute.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">alt(<span class=\"summary-sig-arg\">self</span>)</span>\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">alt(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">alt</span>)</span>\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"atyr\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">atyr</h3>\n  <p>Return this attitude's alt[itude], tilt, yaw and roll as an <a \n  href=\"pygeodesy.ltpTuples.Attitude4Tuple-class.html\" \n  class=\"link\">Attitude4Tuple</a>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">atyr(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Return this attitude's alt[itude], tilt, yaw and roll as an <a \nhref=\"pygeodesy.ltpTuples.Attitude4Tuple-class.html\" \nclass=\"link\">Attitude4Tuple</a>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"matrix\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">matrix</h3>\n  <p>Get the 3x3 rotation matrix <code>R(yaw)&#183;R(tilt)&#183;R(roll)</code>, aka \n  <i>ZYX</i> (<code>float</code>, row-order).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">matrix(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the 3x3 rotation matrix <code>R(yaw)&#183;R(tilt)&#183;R(roll)</code>, aka \n<i>ZYX</i> (<code>float</code>, row-order).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Matrix M of case 10 in <a \n        href=\"https://ntrs.NASA.gov/api/citations/19770019231/downloads/19770019231.pdf\"\n        target=\"_top\">Appendix A</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"roll\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">roll</h3>\n  <p>Class <code>property</code> with a <code>.name</code> attribute.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">roll(<span class=\"summary-sig-arg\">self</span>)</span>\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">roll(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">roll</span>)</span>\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"bank\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">bank</h3>\n  <p>Class <code>property</code> with a <code>.name</code> attribute.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">roll(<span class=\"summary-sig-arg\">self</span>)</span>\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">roll(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">roll</span>)</span>\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"tilt\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">tilt</h3>\n  <p>Class <code>property</code> with a <code>.name</code> attribute.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">tilt(<span class=\"summary-sig-arg\">self</span>)</span>\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">tilt(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">tilt</span>)</span>\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"pitch\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">pitch</h3>\n  <p>Class <code>property</code> with a <code>.name</code> attribute.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">tilt(<span class=\"summary-sig-arg\">self</span>)</span>\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">tilt(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">tilt</span>)</span>\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"elevation\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">elevation</h3>\n  <p>Class <code>property</code> with a <code>.name</code> attribute.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">tilt(<span class=\"summary-sig-arg\">self</span>)</span>\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">tilt(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">tilt</span>)</span>\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"tyr3d\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">tyr3d</h3>\n  <p>Get this attitude's (3-D) directional vector (<a \n  href=\"pygeodesy.vector3d.Vector3d-class.html\" \n  class=\"link\">Vector3d</a>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">tyr3d(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get this attitude's (3-D) directional vector (<a \nhref=\"pygeodesy.vector3d.Vector3d-class.html\" class=\"link\">Vector3d</a>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"http://MSL.CS.UIUC.edu/planning/node102.html\" \n        target=\"_top\">Yaw, pitch, and roll rotations</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"yaw\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">yaw</h3>\n  <p>Class <code>property</code> with a <code>.name</code> attribute.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">yaw(<span class=\"summary-sig-arg\">self</span>)</span>\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">yaw(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">yaw</span>)</span>\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"heading\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">heading</h3>\n  <p>Class <code>property</code> with a <code>.name</code> attribute.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">yaw(<span class=\"summary-sig-arg\">self</span>)</span>\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">yaw(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">yaw</span>)</span>\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"bearing\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">bearing</h3>\n  <p>Class <code>property</code> with a <code>.name</code> attribute.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">yaw(<span class=\"summary-sig-arg\">self</span>)</span>\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">yaw(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">yaw</span>)</span>\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.ltp.AttitudeError-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.ltp.AttitudeError</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.ltp-module.html\">Module&nbsp;ltp</a> ::\n        Class&nbsp;AttitudeError\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.ltp.AttitudeError-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class AttitudeError</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n              object --+                    \n                       |                    \nexceptions.BaseException --+                \n                           |                \n        exceptions.Exception --+            \n                               |            \n        exceptions.StandardError --+        \n                                   |        \n               exceptions.ValueError --+    \n                                       |    \n                      errors._ValueError --+\n                                           |\n                                          <strong class=\"uidshort\">AttitudeError</strong>\n</pre>\n\n<hr />\n<p>An <a href=\"pygeodesy.ltp.Attitude-class.html\" \n  class=\"link\">Attitude</a> or <a \n  href=\"pygeodesy.ltpTuples.Attitude4Tuple-class.html\" \n  class=\"link\">Attitude4Tuple</a> issue.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>errors._ValueError</code></b>:\n      <code>__init__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.ValueError</code></b>:\n      <code>__new__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.BaseException</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getslice__</code>,\n      <code>__reduce__</code>,\n      <code>__repr__</code>,\n      <code>__setattr__</code>,\n      <code>__setstate__</code>,\n      <code>__str__</code>,\n      <code>__unicode__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__format__</code>,\n      <code>__hash__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.BaseException</code></b>:\n      <code>args</code>,\n      <code>message</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.ltp.ChLV-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.ltp.ChLV</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.ltp-module.html\">Module&nbsp;ltp</a> ::\n        Class&nbsp;ChLV\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.ltp.ChLV-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class ChLV</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n              object --+    \n                       |    \n                   _ChLV --+\n                           |\n  object --+               |\n           |               |\n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+           |\n               |           |\n<a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+       |\n                   |       |\n      <a href=\"pygeodesy.ltp.LocalCartesian-class.html\">LocalCartesian</a> --+   |\n                       |   |\n                     <a href=\"pygeodesy.ltp.Ltp-class.html\">Ltp</a> --+\n                           |\n                          <strong class=\"uidshort\">ChLV</strong>\n</pre>\n\n<hr />\n<p>Conversion between <i>WGS84 geodetic</i> and <i>Swiss</i> projection \n  coordinates using <a href=\"pygeodesy.ecef.EcefKarney-class.html\" \n  class=\"link\">pygeodesy.EcefKarney</a>'s Earth-Centered, Earth-Fixed \n  (ECEF) methods.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a \n        href=\"https://www.SwissTopo.admin.CH/en/maps-data-online/calculation-services.html\"\n        target=\"_top\">Swiss projection formulas</a>, page 7ff, <a \n        href=\"https://www.SwissTopo.admin.CH/en/maps-data-online/calculation-services/navref.html\"\n        target=\"_top\">NAVREF</a>, <a \n        href=\"https://www.SwissTopo.admin.CH/en/maps-data-online/calculation-services/reframe.html\"\n        target=\"_top\">REFRAME</a> and <a \n        href=\"https://GitHub.com/ValentinMinder/Swisstopo-WGS84-LV03\" \n        target=\"_top\">SwissTopo Scripts GPS WGS84 &lt;-&gt; LV03</a>.\n      </p>\n</div><!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ltp.ChLV-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">latlonh0</span>=<span class=\"summary-sig-default\">Bern(lat=46.952406, lon=7.439583, height=49.55, datum=Datum(na<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"summary-sig-arg\">**other_Ltp_kwds</span>)</span><br />\n      New ECEF-based <i>WGS84-Swiss</i> <a \n      href=\"pygeodesy.ltp.ChLV-class.html\" class=\"link\">ChLV</a> converter,\n      centered at <i>Bern, Ch</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ltp.ChLV-class.html#forward\" class=\"summary-sig-name\">forward</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">latlonh</span>,\n        <span class=\"summary-sig-arg\">lon</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">height</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">M</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Convert WGS84 geodetic to <i>Swiss</i> projection coordinates.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ltp.ChLV-class.html#reverse\" class=\"summary-sig-name\">reverse</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">enh_</span>,\n        <span class=\"summary-sig-arg\">n</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">h_</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">M</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Convert <i>Swiss</i> projection to WGS84 geodetic coordinates.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.ltp.LocalCartesian-class.html\">LocalCartesian</a></code></b>:\n      <code><a href=\"pygeodesy.ltp.LocalCartesian-class.html#__eq__\">__eq__</a></code>,\n      <code><a href=\"pygeodesy.ltp.LocalCartesian-class.html#reset\">reset</a></code>,\n      <code><a href=\"pygeodesy.ltp.LocalCartesian-class.html#toStr\">toStr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#others\">others</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#toRepr\">toRepr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ltp.ChLV-class.html#false2\" class=\"summary-sig-name\">false2</a>(<span class=\"summary-sig-arg\">Y</span>,\n        <span class=\"summary-sig-arg\">X</span>,\n        <span class=\"summary-sig-arg\">LV95</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Add the <i>Swiss LV95</i> or <i>LV03</i> falsing.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ltp.ChLV-class.html#isLV03\" class=\"summary-sig-name\">isLV03</a>(<span class=\"summary-sig-arg\">e</span>,\n        <span class=\"summary-sig-arg\">n</span>)</span><br />\n      Is <code>(<b>e</b>, <b>n</b>)</code> a valid <i>Swiss LV03</i> \n      projection?</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ltp.ChLV-class.html#isLV95\" class=\"summary-sig-name\">isLV95</a>(<span class=\"summary-sig-arg\">e</span>,\n        <span class=\"summary-sig-arg\">n</span>,\n        <span class=\"summary-sig-arg\">raiser</span>=<span class=\"summary-sig-default\">True</span>)</span><br />\n      Is <code>(<b>e</b>, <b>n</b>)</code> a valid <i>Swiss LV95</i> or \n      <i>LV03</i> projection?</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ltp.ChLV-class.html#unfalse2\" class=\"summary-sig-name\">unfalse2</a>(<span class=\"summary-sig-arg\">e</span>,\n        <span class=\"summary-sig-arg\">n</span>,\n        <span class=\"summary-sig-arg\">LV95</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Remove the <i>Swiss LV95</i> or <i>LV03</i> falsing.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS VARIABLES ==================== -->\n<a name=\"section-ClassVariables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Class Variables</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltp.ChLV-class.html#Bern\" class=\"summary-name\">Bern</a> = <code title=\"Bern(lat=46.952406, lon=7.439583, height=49.55, datum=Datum(name='WGS8\\\n4', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\">Bern(lat=46.952406, lon=7.439583, height=49.55, datum=D<code class=\"variable-ellipsis\">...</code></code>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.ltp.Ltp-class.html\">Ltp</a></code></b>:\n      <code><a href=\"pygeodesy.ltp.Ltp-class.html#ecef\">ecef</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.ltp.LocalCartesian-class.html\">LocalCartesian</a></code></b>:\n      <code><a href=\"pygeodesy.ltp.LocalCartesian-class.html#M\">M</a></code>,\n      <code><a href=\"pygeodesy.ltp.LocalCartesian-class.html#datum\">datum</a></code>,\n      <code><a href=\"pygeodesy.ltp.LocalCartesian-class.html#ellipsoid\">ellipsoid</a></code>,\n      <code><a href=\"pygeodesy.ltp.LocalCartesian-class.html#height0\">height0</a></code>,\n      <code><a href=\"pygeodesy.ltp.LocalCartesian-class.html#lat0\">lat0</a></code>,\n      <code><a href=\"pygeodesy.ltp.LocalCartesian-class.html#latlonheight0\">latlonheight0</a></code>,\n      <code><a href=\"pygeodesy.ltp.LocalCartesian-class.html#lon0\">lon0</a></code>,\n      <code><a href=\"pygeodesy.ltp.LocalCartesian-class.html#lon00\">lon00</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">latlonh0</span>=<span class=\"sig-default\">Bern(lat=46.952406, lon=7.439583, height=49.55, datum=Datum(na<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"sig-arg\">**other_Ltp_kwds</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New ECEF-based <i>WGS84-Swiss</i> <a \n  href=\"pygeodesy.ltp.ChLV-class.html\" class=\"link\">ChLV</a> converter, \n  centered at <i>Bern, Ch</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>latlonh0</code></strong> - The <i>geodetic</i> origin and height, overriding <code>Bern, \n          Ch</code>.</li>\n        <li><strong class=\"pname\"><code>other_Ltp_kwds</code></strong> - Optional, other <a href=\"pygeodesy.ltp.Ltp-class.html#__init__\" \n          class=\"link\">Ltp.__init__</a> keyword arguments.</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>ecef</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"pygeodesy.ltp.Ltp-class.html#__init__\" \n        class=\"link\">Ltp.__init__</a> for more information.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"forward\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">forward</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">latlonh</span>,\n        <span class=\"sig-arg\">lon</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">height</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">M</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert WGS84 geodetic to <i>Swiss</i> projection coordinates.  \n  <i>Must be overloaded</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>latlonh</code></strong> - Either a <code>LatLon</code>, <a \n          href=\"pygeodesy.ltp.Ltp-class.html\" class=\"link\">Ltp</a> or \n          <code>scalar</code> (geodetic) latitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lon</code></strong> - Optional, <code>scalar</code> (geodetic) longitude \n          (<code>degrees</code>) iff <b><code>latlonh</code></b> is \n          <code>scalar</code>, ignored otherwise.</li>\n        <li><strong class=\"pname\"><code>height</code></strong> - Optional, height, vertically above (or below) the surface of the \n          ellipsoid (<code>meter</code>) iff <b><code>latlonh</code></b> \n          and <b><code>lon</code></b> are <code>scalar</code>, ignored \n          otherwise.</li>\n        <li><strong class=\"pname\"><code>M</code></strong> - If <code>True</code>, return the <i>concatenated</i> rotation <a \n          href=\"pygeodesy.ecef.EcefMatrix-class.html\" \n          class=\"link\">EcefMatrix</a> iff available and for \n          <code>ChLV</code> only, <code>None</code> otherwise \n          (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.ltpTuples.ChLV9Tuple-class.html\" \n          class=\"link\">ChLV9Tuple</a><code>(Y, X, h_, lat, lon, height, \n          ltp, ecef, M)</code> with the unfalsed <i>Swiss Y, X</i> \n          coordinates, <i>Swiss h_</i> height, the given <i>geodetic</i> \n          <code>lat</code>, <code>lon</code> and <code>height</code>, \n          <code>ecef</code> (<a href=\"pygeodesy.ecef.Ecef9Tuple-class.html\"\n          class=\"link\">Ecef9Tuple</a>) at <i>Bern, Ch</i>, rotation matrix \n          <code>M</code> and <code>ltp</code> this <code>ChLV</code>, \n          <code>ChLVa</code> or <code>ChLVe</code> instance.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.ltp.LocalError-class.html\">LocalError</a></strong></code> - Invalid or non-<code>scalar</code> <b><code>latlonh</code></b>, \n        <b><code>lon</code></b> or <b><code>height</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.ltp.LocalCartesian-class.html#forward\">LocalCartesian.forward</a>\n        <dd><em class=\"note\">(inherited documentation)</em></dd>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"reverse\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">reverse</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">enh_</span>,\n        <span class=\"sig-arg\">n</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">h_</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">M</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert <i>Swiss</i> projection to WGS84 geodetic coordinates.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>enh_</code></strong> - A Swiss projection (<a \n          href=\"pygeodesy.ltpTuples.ChLV9Tuple-class.html\" \n          class=\"link\">ChLV9Tuple</a>) or the <code>scalar</code>, falsed \n          <i>Swiss E_LV95</i> or <i>y_LV03</i> easting \n          (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>n</code></strong> - Falsed <i>Swiss N_LV85</i> or <i>x_LV03</i> northing \n          (<code>meter</code>) iff <b><code>enh_</code></b> is \n          <code>scalar</code>, ignored otherwise.</li>\n        <li><strong class=\"pname\"><code>h_</code></strong> - <i>Swiss h'</i> height (<code>meter</code>) iff \n          <b><code>enh_</code></b> and <b><code>n</code></b> are \n          <code>scalar</code>, ignored otherwise.</li>\n        <li><strong class=\"pname\"><code>M</code></strong> - If <code>True</code>, return the <i>concatenated</i> rotation <a \n          href=\"pygeodesy.ecef.EcefMatrix-class.html\" \n          class=\"link\">EcefMatrix</a> iff available and for \n          <code>ChLV</code> only, <code>None</code> otherwise \n          (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.ltpTuples.ChLV9Tuple-class.html\" \n          class=\"link\">ChLV9Tuple</a><code>(Y, X, h_, lat, lon, height, \n          ltp, ecef, M)</code> with the unfalsed <i>Swiss Y, X</i> \n          coordinates, <i>Swiss h_</i> height, the given <i>geodetic</i> \n          <code>lat</code>, <code>lon</code> and <code>height</code>, \n          <code>ecef</code> (<a href=\"pygeodesy.ecef.Ecef9Tuple-class.html\"\n          class=\"link\">Ecef9Tuple</a>) at <i>Bern, Ch</i>, rotation matrix \n          <code>M</code> and <code>ltp</code> this <code>ChLV</code>, \n          <code>ChLVa</code> or <code>ChLVe</code> instance.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.ltp.LocalError-class.html\">LocalError</a></strong></code> - Invalid or non-<code>scalar</code> <b><code>enh_</code></b>, \n        <b><code>n</code></b> or <b><code>h_</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.ltp.LocalCartesian-class.html#reverse\">LocalCartesian.reverse</a>\n        <dd><em class=\"note\">(inherited documentation)</em></dd>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"false2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">false2</span>&nbsp;(<span class=\"sig-arg\">Y</span>,\n        <span class=\"sig-arg\">X</span>,\n        <span class=\"sig-arg\">LV95</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n    <br /><em class=\"fname\">Static Method</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Add the <i>Swiss LV95</i> or <i>LV03</i> falsing.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>Y</code></strong> - Unfalsed <i>Swiss Y</i> easting (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>X</code></strong> - Unfalsed <i>Swiss X</i> northing (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>LV95</code></strong> - If <code>True</code>, add <code>LV95</code> falsing, if \n          <code>False</code> add <code>LV03</code> falsing, otherwise leave\n          unfalsed.</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.ltpTuples.ChLVEN2Tuple-class.html\" \n          class=\"link\">ChLVEN2Tuple</a><code>(E_LV95, N_LV95)</code> or a \n          <a href=\"pygeodesy.ltpTuples.ChLVyx2Tuple-class.html\" \n          class=\"link\">ChLVyx2Tuple</a><code>(y_LV03, x_LV03)</code> with \n          falsed <b><code>Y</code></b> and <b><code>X</code></b>, otherwise\n          a <a href=\"pygeodesy.ltpTuples.ChLVYX2Tuple-class.html\" \n          class=\"link\">ChLVYX2Tuple</a><code>(Y, X)</code> with \n          <b><code>Y</code></b> and <b><code>X</code></b> as-is.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"isLV03\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">isLV03</span>&nbsp;(<span class=\"sig-arg\">e</span>,\n        <span class=\"sig-arg\">n</span>)</span>\n    <br /><em class=\"fname\">Static Method</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Is <code>(<b>e</b>, <b>n</b>)</code> a valid <i>Swiss LV03</i> \n  projection?</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>e</code></strong> - Falsed (or unfalsed) <i>Swiss</i> easting (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>n</code></strong> - Falsed (or unfalsed) <i>Swiss</i> northing (<code>meter</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>True</code> if <code>(<b>e</b>, <b>n</b>)</code> is a \n          valid, falsed <i>Swiss LV03</i>, projection <code>False</code> \n          otherwise.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"isLV95\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">isLV95</span>&nbsp;(<span class=\"sig-arg\">e</span>,\n        <span class=\"sig-arg\">n</span>,\n        <span class=\"sig-arg\">raiser</span>=<span class=\"sig-default\">True</span>)</span>\n    <br /><em class=\"fname\">Static Method</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Is <code>(<b>e</b>, <b>n</b>)</code> a valid <i>Swiss LV95</i> or \n  <i>LV03</i> projection?</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>e</code></strong> - Falsed (or unfalsed) <i>Swiss</i> easting (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>n</code></strong> - Falsed (or unfalsed) <i>Swiss</i> northing (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>raiser</code></strong> - If <code>True</code>, throw a <a \n          href=\"pygeodesy.ltp.LocalError-class.html\" \n          class=\"link\">LocalError</a> if <b><code>e</code></b> and \n          <b><code>n</code></b> are invalid <i>Swiss LV95</i> nor \n          <i>LV03</i>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>True</code> or <code>False</code> if <code>(<b>e</b>, \n          <b>n</b>)</code> is a valid <i>Swiss LV95</i> respectively \n          <i>LV03</i> projection, <code>None</code> otherwise.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"unfalse2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">unfalse2</span>&nbsp;(<span class=\"sig-arg\">e</span>,\n        <span class=\"sig-arg\">n</span>,\n        <span class=\"sig-arg\">LV95</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n    <br /><em class=\"fname\">Static Method</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Remove the <i>Swiss LV95</i> or <i>LV03</i> falsing.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>e</code></strong> - Falsed <i>Swiss E_LV95</i> or <i>y_LV03</i> easting \n          (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>n</code></strong> - Falsed <i>Swiss N_LV95</i> or <i>x_LV03</i> northing \n          (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>LV95</code></strong> - If <code>True</code>, remove <i>LV95</i> falsing, if \n          <code>False</code> remove <i>LV03</i> falsing, otherwise use \n          method <code>isLV95(<b>e</b>, <b>n</b>)</code>.</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.ltpTuples.ChLVYX2Tuple-class.html\" \n          class=\"link\">ChLVYX2Tuple</a><code>(Y, X)</code> with the \n          unfalsed <b><code>e</code></b> respectively \n          <b><code>n</code></b>.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== CLASS VARIABLE DETAILS ==================== -->\n<a name=\"section-ClassVariableDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Class Variable Details</span></td>\n</tr>\n</table>\n<a name=\"Bern\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">Bern</h3>\n  \n  <dl class=\"fields\">\n  </dl>\n  <dl class=\"fields\">\n    <dt>Value:</dt>\n      <dd><table><tr><td><pre class=\"variable\">\nBern(lat=46.952406, lon=7.439583, height=49.55, datum=Datum(name='WGS8<span class=\"variable-linewrap\"><img src=\"crarr.png\" alt=\"\\\" /></span>\n4', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n</pre></td></tr></table>\n</dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.ltp.ChLVa-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.ltp.ChLVa</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.ltp-module.html\">Module&nbsp;ltp</a> ::\n        Class&nbsp;ChLVa\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.ltp.ChLVa-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class ChLVa</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n          object --+    \n                   |    \n               _ChLV --+\n                       |\n  object --+           |\n           |           |\n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+       |\n               |       |\n<a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+   |\n                   |   |\n      <a href=\"pygeodesy.ltp.LocalCartesian-class.html\">LocalCartesian</a> --+\n                       |\n                      <strong class=\"uidshort\">ChLVa</strong>\n</pre>\n\n<hr />\n<p>Conversion between <i>WGS84 geodetic</i> and <i>Swiss</i> projection \n  coordinates using the <a \n  href=\"https://www.SwissTopo.admin.CH/en/maps-data-online/calculation-services.html\"\n  target=\"_top\">Approximate</a> formulas, page 13.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Older <a \n        href=\"https://GitHub.com/alphasldiallo/Swisstopo-WGS84-LV03\" \n        target=\"_top\">references</a>.\n      </p>\n</div><!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ltp.ChLVa-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">name</span>=<span class=\"summary-sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">Bern</code><code class=\"variable-quote\">'</code></span>)</span><br />\n      New <i>Approximate WGS84-Swiss</i> <a \n      href=\"pygeodesy.ltp.ChLVa-class.html\" class=\"link\">ChLVa</a> \n      converter, centered at <i>Bern, Ch</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ltp.ChLVa-class.html#forward\" class=\"summary-sig-name\">forward</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">latlonh</span>,\n        <span class=\"summary-sig-arg\">lon</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">height</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">M</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Convert WGS84 geodetic to <i>Swiss</i> projection coordinates.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ltp.ChLVa-class.html#reverse\" class=\"summary-sig-name\">reverse</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">enh_</span>,\n        <span class=\"summary-sig-arg\">n</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">h_</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">M</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Convert <i>Swiss</i> projection to WGS84 geodetic coordinates.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.ltp.LocalCartesian-class.html\">LocalCartesian</a></code></b>:\n      <code><a href=\"pygeodesy.ltp.LocalCartesian-class.html#__eq__\">__eq__</a></code>,\n      <code><a href=\"pygeodesy.ltp.LocalCartesian-class.html#reset\">reset</a></code>,\n      <code><a href=\"pygeodesy.ltp.LocalCartesian-class.html#toStr\">toStr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#others\">others</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#toRepr\">toRepr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.ltp.LocalCartesian-class.html\">LocalCartesian</a></code></b>:\n      <code><a href=\"pygeodesy.ltp.LocalCartesian-class.html#M\">M</a></code>,\n      <code><a href=\"pygeodesy.ltp.LocalCartesian-class.html#datum\">datum</a></code>,\n      <code><a href=\"pygeodesy.ltp.LocalCartesian-class.html#ecef\">ecef</a></code>,\n      <code><a href=\"pygeodesy.ltp.LocalCartesian-class.html#ellipsoid\">ellipsoid</a></code>,\n      <code><a href=\"pygeodesy.ltp.LocalCartesian-class.html#height0\">height0</a></code>,\n      <code><a href=\"pygeodesy.ltp.LocalCartesian-class.html#lat0\">lat0</a></code>,\n      <code><a href=\"pygeodesy.ltp.LocalCartesian-class.html#latlonheight0\">latlonheight0</a></code>,\n      <code><a href=\"pygeodesy.ltp.LocalCartesian-class.html#lon0\">lon0</a></code>,\n      <code><a href=\"pygeodesy.ltp.LocalCartesian-class.html#lon00\">lon00</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">name</span>=<span class=\"sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">Bern</code><code class=\"variable-quote\">'</code></span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <i>Approximate WGS84-Swiss</i> <a \n  href=\"pygeodesy.ltp.ChLVa-class.html\" class=\"link\">ChLVa</a> converter, \n  centered at <i>Bern, Ch</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=Bern.name</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.ltp.LocalError-class.html\">LocalError</a></strong></code> - If <b><code>latlonh0</code></b> not <code>LatLon</code>, <a \n        href=\"pygeodesy.namedTuples.LatLon4Tuple-class.html\" \n        class=\"link\">LatLon4Tuple</a>, <a \n        href=\"pygeodesy.ltp.Ltp-class.html\" class=\"link\">Ltp</a>, <a \n        href=\"pygeodesy.ltp.LocalCartesian-class.html\" \n        class=\"link\">LocalCartesian</a> or <a \n        href=\"pygeodesy.ecef.Ecef9Tuple-class.html\" \n        class=\"link\">Ecef9Tuple</a> or <b><code>latlonh0</code></b>, \n        <b><code>lon0</code></b>, <b><code>height0</code></b> or \n        <b><code>lon00</code></b> invalid.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>ecef</code></b> or not <a \n        href=\"pygeodesy.ecef.EcefKarney-class.html\" \n        class=\"link\">EcefKarney</a>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"forward\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">forward</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">latlonh</span>,\n        <span class=\"sig-arg\">lon</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">height</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">M</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert WGS84 geodetic to <i>Swiss</i> projection coordinates.  \n  <i>Must be overloaded</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>latlonh</code></strong> - Either a <code>LatLon</code>, <a \n          href=\"pygeodesy.ltp.Ltp-class.html\" class=\"link\">Ltp</a> or \n          <code>scalar</code> (geodetic) latitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lon</code></strong> - Optional, <code>scalar</code> (geodetic) longitude \n          (<code>degrees</code>) iff <b><code>latlonh</code></b> is \n          <code>scalar</code>, ignored otherwise.</li>\n        <li><strong class=\"pname\"><code>height</code></strong> - Optional, height, vertically above (or below) the surface of the \n          ellipsoid (<code>meter</code>) iff <b><code>latlonh</code></b> \n          and <b><code>lon</code></b> are <code>scalar</code>, ignored \n          otherwise.</li>\n        <li><strong class=\"pname\"><code>M</code></strong> - If <code>True</code>, return the <i>concatenated</i> rotation <a \n          href=\"pygeodesy.ecef.EcefMatrix-class.html\" \n          class=\"link\">EcefMatrix</a> iff available and for \n          <code>ChLV</code> only, <code>None</code> otherwise \n          (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.ltpTuples.ChLV9Tuple-class.html\" \n          class=\"link\">ChLV9Tuple</a><code>(Y, X, h_, lat, lon, height, \n          ltp, ecef, M)</code> with the unfalsed <i>Swiss Y, X</i> \n          coordinates, <i>Swiss h_</i> height, the given <i>geodetic</i> \n          <code>lat</code>, <code>lon</code> and <code>height</code>, \n          <code>ecef</code> (<a href=\"pygeodesy.ecef.Ecef9Tuple-class.html\"\n          class=\"link\">Ecef9Tuple</a>) at <i>Bern, Ch</i>, rotation matrix \n          <code>M</code> and <code>ltp</code> this <code>ChLV</code>, \n          <code>ChLVa</code> or <code>ChLVe</code> instance.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.ltp.LocalError-class.html\">LocalError</a></strong></code> - Invalid or non-<code>scalar</code> <b><code>latlonh</code></b>, \n        <b><code>lon</code></b> or <b><code>height</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.ltp.LocalCartesian-class.html#forward\">LocalCartesian.forward</a>\n        <dd><em class=\"note\">(inherited documentation)</em></dd>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"reverse\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">reverse</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">enh_</span>,\n        <span class=\"sig-arg\">n</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">h_</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">M</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert <i>Swiss</i> projection to WGS84 geodetic coordinates.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>enh_</code></strong> - A Swiss projection (<a \n          href=\"pygeodesy.ltpTuples.ChLV9Tuple-class.html\" \n          class=\"link\">ChLV9Tuple</a>) or the <code>scalar</code>, falsed \n          <i>Swiss E_LV95</i> or <i>y_LV03</i> easting \n          (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>n</code></strong> - Falsed <i>Swiss N_LV85</i> or <i>x_LV03</i> northing \n          (<code>meter</code>) iff <b><code>enh_</code></b> is \n          <code>scalar</code>, ignored otherwise.</li>\n        <li><strong class=\"pname\"><code>h_</code></strong> - <i>Swiss h'</i> height (<code>meter</code>) iff \n          <b><code>enh_</code></b> and <b><code>n</code></b> are \n          <code>scalar</code>, ignored otherwise.</li>\n        <li><strong class=\"pname\"><code>M</code></strong> - If <code>True</code>, return the <i>concatenated</i> rotation <a \n          href=\"pygeodesy.ecef.EcefMatrix-class.html\" \n          class=\"link\">EcefMatrix</a> iff available and for \n          <code>ChLV</code> only, <code>None</code> otherwise \n          (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.ltpTuples.ChLV9Tuple-class.html\" \n          class=\"link\">ChLV9Tuple</a><code>(Y, X, h_, lat, lon, height, \n          ltp, ecef, M)</code> with the unfalsed <i>Swiss Y, X</i> \n          coordinates, <i>Swiss h_</i> height, the given <i>geodetic</i> \n          <code>lat</code>, <code>lon</code> and <code>height</code>, \n          <code>ecef</code> (<a href=\"pygeodesy.ecef.Ecef9Tuple-class.html\"\n          class=\"link\">Ecef9Tuple</a>) at <i>Bern, Ch</i>, rotation matrix \n          <code>M</code> and <code>ltp</code> this <code>ChLV</code>, \n          <code>ChLVa</code> or <code>ChLVe</code> instance.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.ltp.LocalError-class.html\">LocalError</a></strong></code> - Invalid or non-<code>scalar</code> <b><code>enh_</code></b>, \n        <b><code>n</code></b> or <b><code>h_</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.ltp.LocalCartesian-class.html#reverse\">LocalCartesian.reverse</a>\n        <dd><em class=\"note\">(inherited documentation)</em></dd>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.ltp.ChLVe-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.ltp.ChLVe</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.ltp-module.html\">Module&nbsp;ltp</a> ::\n        Class&nbsp;ChLVe\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.ltp.ChLVe-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class ChLVe</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n          object --+    \n                   |    \n               _ChLV --+\n                       |\n  object --+           |\n           |           |\n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+       |\n               |       |\n<a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+   |\n                   |   |\n      <a href=\"pygeodesy.ltp.LocalCartesian-class.html\">LocalCartesian</a> --+\n                       |\n                      <strong class=\"uidshort\">ChLVe</strong>\n</pre>\n\n<hr />\n<p>Conversion between <i>WGS84 geodetic</i> and <i>Swiss</i> projection \n  coordinates using the <a \n  href=\"https://www.SwissTopo.admin.CH/en/maps-data-online/calculation-services.html\"\n  target=\"_top\">Ellipsoidal approximate</a> formulas, pp 10-11 and <a \n  href=\"https://eMuseum.GGGS.CH/literatur-lv/liste-Dateien/1967_Bolliger_a.pdf\"\n  target=\"_top\">Bolliger, J.</a> pp 148-151 (also <a \n  href=\"https://eMuseum.GGGS.CH/literatur-lv/liste.htm\" \n  target=\"_top\">GGGS</a>).</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Note:</strong>\n        Methods <a href=\"pygeodesy.ltp.ChLVe-class.html#forward\" \n        class=\"link\">ChLVe.forward</a> and <a \n        href=\"pygeodesy.ltp.ChLVe-class.html#reverse\" \n        class=\"link\">ChLVe.reverse</a> have an additional keyword argument \n        <code><b>gamma</b>=False</code> to approximate the <i>meridian \n        convergence</i>. If <code><b>gamma</b>=True</code> a 2-tuple \n        <code>(t, gamma)</code> is returned with <code>t</code> the usual \n        result (<code>ChLV9Tuple</code>) and <code>gamma</code>, the \n        <i>meridian convergence</i> (decimal <code>degrees</code>).  To \n        convert <code>gamma</code> to <code>grades</code> or \n        <code>gons</code>, use function <a \n        href=\"pygeodesy.utily-module.html#degrees2grades\" \n        class=\"link\">pygeodesy.degrees2grades</a>.\n      </p>\n      <p><strong>See Also:</strong>\n        Older <a \n        href=\"https://GitHub.com/alphasldiallo/Swisstopo-WGS84-LV03\" \n        target=\"_top\">references</a>.\n      </p>\n</div><!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ltp.ChLVe-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">name</span>=<span class=\"summary-sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">Bern</code><code class=\"variable-quote\">'</code></span>)</span><br />\n      New <i>Approximate WGS84-Swiss</i> <a \n      href=\"pygeodesy.ltp.ChLVe-class.html\" class=\"link\">ChLVe</a> \n      converter, centered at <i>Bern, Ch</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ltp.ChLVe-class.html#forward\" class=\"summary-sig-name\">forward</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">latlonh</span>,\n        <span class=\"summary-sig-arg\">lon</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">height</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">M</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">gamma</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Convert WGS84 geodetic to <i>Swiss</i> projection coordinates.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ltp.ChLVe-class.html#reverse\" class=\"summary-sig-name\">reverse</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">enh_</span>,\n        <span class=\"summary-sig-arg\">n</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">h_</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">M</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">gamma</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Convert <i>Swiss</i> projection to WGS84 geodetic coordinates.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.ltp.LocalCartesian-class.html\">LocalCartesian</a></code></b>:\n      <code><a href=\"pygeodesy.ltp.LocalCartesian-class.html#__eq__\">__eq__</a></code>,\n      <code><a href=\"pygeodesy.ltp.LocalCartesian-class.html#reset\">reset</a></code>,\n      <code><a href=\"pygeodesy.ltp.LocalCartesian-class.html#toStr\">toStr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#others\">others</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#toRepr\">toRepr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.ltp.LocalCartesian-class.html\">LocalCartesian</a></code></b>:\n      <code><a href=\"pygeodesy.ltp.LocalCartesian-class.html#M\">M</a></code>,\n      <code><a href=\"pygeodesy.ltp.LocalCartesian-class.html#datum\">datum</a></code>,\n      <code><a href=\"pygeodesy.ltp.LocalCartesian-class.html#ecef\">ecef</a></code>,\n      <code><a href=\"pygeodesy.ltp.LocalCartesian-class.html#ellipsoid\">ellipsoid</a></code>,\n      <code><a href=\"pygeodesy.ltp.LocalCartesian-class.html#height0\">height0</a></code>,\n      <code><a href=\"pygeodesy.ltp.LocalCartesian-class.html#lat0\">lat0</a></code>,\n      <code><a href=\"pygeodesy.ltp.LocalCartesian-class.html#latlonheight0\">latlonheight0</a></code>,\n      <code><a href=\"pygeodesy.ltp.LocalCartesian-class.html#lon0\">lon0</a></code>,\n      <code><a href=\"pygeodesy.ltp.LocalCartesian-class.html#lon00\">lon00</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">name</span>=<span class=\"sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">Bern</code><code class=\"variable-quote\">'</code></span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <i>Approximate WGS84-Swiss</i> <a \n  href=\"pygeodesy.ltp.ChLVe-class.html\" class=\"link\">ChLVe</a> converter, \n  centered at <i>Bern, Ch</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=Bern.name</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.ltp.LocalError-class.html\">LocalError</a></strong></code> - If <b><code>latlonh0</code></b> not <code>LatLon</code>, <a \n        href=\"pygeodesy.namedTuples.LatLon4Tuple-class.html\" \n        class=\"link\">LatLon4Tuple</a>, <a \n        href=\"pygeodesy.ltp.Ltp-class.html\" class=\"link\">Ltp</a>, <a \n        href=\"pygeodesy.ltp.LocalCartesian-class.html\" \n        class=\"link\">LocalCartesian</a> or <a \n        href=\"pygeodesy.ecef.Ecef9Tuple-class.html\" \n        class=\"link\">Ecef9Tuple</a> or <b><code>latlonh0</code></b>, \n        <b><code>lon0</code></b>, <b><code>height0</code></b> or \n        <b><code>lon00</code></b> invalid.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>ecef</code></b> or not <a \n        href=\"pygeodesy.ecef.EcefKarney-class.html\" \n        class=\"link\">EcefKarney</a>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"forward\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">forward</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">latlonh</span>,\n        <span class=\"sig-arg\">lon</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">height</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">M</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">gamma</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert WGS84 geodetic to <i>Swiss</i> projection coordinates.  \n  <i>Must be overloaded</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>latlonh</code></strong> - Either a <code>LatLon</code>, <a \n          href=\"pygeodesy.ltp.Ltp-class.html\" class=\"link\">Ltp</a> or \n          <code>scalar</code> (geodetic) latitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lon</code></strong> - Optional, <code>scalar</code> (geodetic) longitude \n          (<code>degrees</code>) iff <b><code>latlonh</code></b> is \n          <code>scalar</code>, ignored otherwise.</li>\n        <li><strong class=\"pname\"><code>height</code></strong> - Optional, height, vertically above (or below) the surface of the \n          ellipsoid (<code>meter</code>) iff <b><code>latlonh</code></b> \n          and <b><code>lon</code></b> are <code>scalar</code>, ignored \n          otherwise.</li>\n        <li><strong class=\"pname\"><code>M</code></strong> - If <code>True</code>, return the <i>concatenated</i> rotation <a \n          href=\"pygeodesy.ecef.EcefMatrix-class.html\" \n          class=\"link\">EcefMatrix</a> iff available and for \n          <code>ChLV</code> only, <code>None</code> otherwise \n          (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.ltpTuples.ChLV9Tuple-class.html\" \n          class=\"link\">ChLV9Tuple</a><code>(Y, X, h_, lat, lon, height, \n          ltp, ecef, M)</code> with the unfalsed <i>Swiss Y, X</i> \n          coordinates, <i>Swiss h_</i> height, the given <i>geodetic</i> \n          <code>lat</code>, <code>lon</code> and <code>height</code>, \n          <code>ecef</code> (<a href=\"pygeodesy.ecef.Ecef9Tuple-class.html\"\n          class=\"link\">Ecef9Tuple</a>) at <i>Bern, Ch</i>, rotation matrix \n          <code>M</code> and <code>ltp</code> this <code>ChLV</code>, \n          <code>ChLVa</code> or <code>ChLVe</code> instance.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.ltp.LocalError-class.html\">LocalError</a></strong></code> - Invalid or non-<code>scalar</code> <b><code>latlonh</code></b>, \n        <b><code>lon</code></b> or <b><code>height</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.ltp.LocalCartesian-class.html#forward\">LocalCartesian.forward</a>\n        <dd><em class=\"note\">(inherited documentation)</em></dd>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"reverse\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">reverse</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">enh_</span>,\n        <span class=\"sig-arg\">n</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">h_</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">M</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">gamma</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert <i>Swiss</i> projection to WGS84 geodetic coordinates.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>enh_</code></strong> - A Swiss projection (<a \n          href=\"pygeodesy.ltpTuples.ChLV9Tuple-class.html\" \n          class=\"link\">ChLV9Tuple</a>) or the <code>scalar</code>, falsed \n          <i>Swiss E_LV95</i> or <i>y_LV03</i> easting \n          (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>n</code></strong> - Falsed <i>Swiss N_LV85</i> or <i>x_LV03</i> northing \n          (<code>meter</code>) iff <b><code>enh_</code></b> is \n          <code>scalar</code>, ignored otherwise.</li>\n        <li><strong class=\"pname\"><code>h_</code></strong> - <i>Swiss h'</i> height (<code>meter</code>) iff \n          <b><code>enh_</code></b> and <b><code>n</code></b> are \n          <code>scalar</code>, ignored otherwise.</li>\n        <li><strong class=\"pname\"><code>M</code></strong> - If <code>True</code>, return the <i>concatenated</i> rotation <a \n          href=\"pygeodesy.ecef.EcefMatrix-class.html\" \n          class=\"link\">EcefMatrix</a> iff available and for \n          <code>ChLV</code> only, <code>None</code> otherwise \n          (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.ltpTuples.ChLV9Tuple-class.html\" \n          class=\"link\">ChLV9Tuple</a><code>(Y, X, h_, lat, lon, height, \n          ltp, ecef, M)</code> with the unfalsed <i>Swiss Y, X</i> \n          coordinates, <i>Swiss h_</i> height, the given <i>geodetic</i> \n          <code>lat</code>, <code>lon</code> and <code>height</code>, \n          <code>ecef</code> (<a href=\"pygeodesy.ecef.Ecef9Tuple-class.html\"\n          class=\"link\">Ecef9Tuple</a>) at <i>Bern, Ch</i>, rotation matrix \n          <code>M</code> and <code>ltp</code> this <code>ChLV</code>, \n          <code>ChLVa</code> or <code>ChLVe</code> instance.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.ltp.LocalError-class.html\">LocalError</a></strong></code> - Invalid or non-<code>scalar</code> <b><code>enh_</code></b>, \n        <b><code>n</code></b> or <b><code>h_</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.ltp.LocalCartesian-class.html#reverse\">LocalCartesian.reverse</a>\n        <dd><em class=\"note\">(inherited documentation)</em></dd>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.ltp.Frustum-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.ltp.Frustum</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.ltp-module.html\">Module&nbsp;ltp</a> ::\n        Class&nbsp;Frustum\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.ltp.Frustum-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Frustum</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+        \n           |        \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n               |    \n<a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+\n                   |\n                  <strong class=\"uidshort\">Frustum</strong>\n</pre>\n\n<hr />\n<p>A rectangular pyramid, typically representing a camera's \n  <i>field-of-view</i> (fov) and the intersection with (or projection to) a\n  <i>local tangent plane</i>.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"https://WikiPedia.org/wiki/Viewing_frustum\" \n        target=\"_top\">Viewing frustum</a>.\n      </p>\n</div><!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ltp.Frustum-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">hfov</span>,\n        <span class=\"summary-sig-arg\">vfov</span>,\n        <span class=\"summary-sig-arg\">ltp</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      New <a href=\"pygeodesy.ltp.Frustum-class.html\" \n      class=\"link\">Frustum</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ltp.Frustum-class.html#footprint5\" class=\"summary-sig-name\">footprint5</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">alt_attitude</span>,\n        <span class=\"summary-sig-arg\">tilt</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">yaw</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">roll</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">z</span>=<span class=\"summary-sig-default\">0.0</span>,\n        <span class=\"summary-sig-arg\">ltp</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Compute the center and corners of the intersection with (or \n      projection to) the <i>local tangent plane</i> (LTP).</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ltp.Frustum-class.html#toStr\" class=\"summary-sig-name\">toStr</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">prec</span>=<span class=\"summary-sig-default\">3</span>,\n        <span class=\"summary-sig-arg\">fmt</span>=<span class=\"summary-sig-default\">'F'</span>,\n        <span class=\"summary-sig-arg\">sep</span>=<span class=\"summary-sig-default\">', '</span>)</span><br />\n      Convert this frustum to a &quot;hfov, vfov, ltp&quot; string.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#others\">others</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#toRepr\">toRepr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltp.Frustum-class.html#hfov\" class=\"summary-name\">hfov</a><br />\n      Get the horizontal <code>fov</code> (<code>degrees</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltp.Frustum-class.html#ltp\" class=\"summary-name\">ltp</a><br />\n      Get the <i>local tangent plane</i> (<a \n      href=\"pygeodesy.ltp.Ltp-class.html\" class=\"link\">Ltp</a>) or \n      <code>None</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltp.Frustum-class.html#vfov\" class=\"summary-name\">vfov</a><br />\n      Get the vertical <code>fov</code> (<code>degrees</code>).\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">hfov</span>,\n        <span class=\"sig-arg\">vfov</span>,\n        <span class=\"sig-arg\">ltp</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.ltp.Frustum-class.html\" \n  class=\"link\">Frustum</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>hfov</code></strong> - Horizontal field-of-view (<code>degrees180</code>).</li>\n        <li><strong class=\"pname\"><code>vfov</code></strong> - Vertical field-of-view (<code>degrees180</code>).</li>\n        <li><strong class=\"pname\"><code>ltp</code></strong> - Optional <i>local tangent plane</i> (<a \n          href=\"pygeodesy.ltp.Ltp-class.html\" class=\"link\">Ltp</a>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.ltp.LocalError-class.html\">LocalError</a></strong></code> - Invalid <b><code>hfov</code></b> or <b><code>vfov</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"footprint5\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">footprint5</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">alt_attitude</span>,\n        <span class=\"sig-arg\">tilt</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">yaw</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">roll</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">z</span>=<span class=\"sig-default\">0.0</span>,\n        <span class=\"sig-arg\">ltp</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the center and corners of the intersection with (or projection\n  to) the <i>local tangent plane</i> (LTP).</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>alt_attitude</code></strong> - An altitude (<code>meter</code>) above <i>local tangent plane</i>\n          or an attitude (<a href=\"pygeodesy.ltp.Attitude-class.html\" \n          class=\"link\">Attitude</a> or <a \n          href=\"pygeodesy.ltpTuples.Attitude4Tuple-class.html\" \n          class=\"link\">Attitude4Tuple</a>) with the \n          <code><b>alt</b>itude</code>, <b><code>tilt</code></b>, \n          <b><code>yaw</code></b> and <b><code>roll</code></b>.</li>\n        <li><strong class=\"pname\"><code>tilt</code></strong> - Pitch, elevation from horizontal (<code>degrees</code>), negative\n          down (clockwise rotation along and around the x- or East axis) \n          iff <b><code>alt_attitude</code></b> is <code>meter</code>, \n          ignored otherwise.</li>\n        <li><strong class=\"pname\"><code>yaw</code></strong> - Bearing, heading (compass <code>degrees</code>), clockwise from \n          North (counter-clockwise rotation along and around the z- or Up \n          axis) iff <b><code>alt_attitude</code></b> is <code>meter</code>,\n          ignored otherwise.</li>\n        <li><strong class=\"pname\"><code>roll</code></strong> - Roll, bank (<code>degrees</code>), positive to the right and down\n          (clockwise rotation along and around the y- or North axis) iff \n          <b><code>alt_attitude</code></b> is <code>meter</code>, ignored \n          otherwise.</li>\n        <li><strong class=\"pname\"><code>z</code></strong> - Optional height of the footprint (<code>meter</code>) above \n          <i>local tangent plane</i>.</li>\n        <li><strong class=\"pname\"><code>ltp</code></strong> - The <i>local tangent plane</i> (<a \n          href=\"pygeodesy.ltp.Ltp-class.html\" class=\"link\">Ltp</a>), \n          overriding this frustum's <code>ltp</code>.</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.ltpTuples.Footprint5Tuple-class.html\" \n          class=\"link\">Footprint5Tuple</a><code>(center, upperleft, \n          upperight, loweright, lowerleft)</code> with the \n          <code>center</code> and 4 corners, each an <a \n          href=\"pygeodesy.ltpTuples.Xyz4Tuple-class.html\" \n          class=\"link\">Xyz4Tuple</a>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>ltp</code></b>.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.UnitError-class.html\">UnitError</a></strong></code> - Invalid <b><code>altitude</code></b>, <b><code>tilt</code></b>, \n        <b><code>roll</code></b> or <b><code>z</code></b>.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - If <b><code>altitude</code></b> too low, <b><code>z</code></b> too \n        high or <b><code>tilt</code></b> or <b><code>roll</code></b> \n        -including <b><code>vfov</code></b> respectively \n        <b><code>hfov</code></b>- over the horizon.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"https://WikiPedia.org/wiki/Aircraft_principal_axes\" \n        target=\"_top\">Principal axes</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"toStr\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toStr</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">prec</span>=<span class=\"sig-default\">3</span>,\n        <span class=\"sig-arg\">fmt</span>=<span class=\"sig-default\">'F'</span>,\n        <span class=\"sig-arg\">sep</span>=<span class=\"sig-default\">', '</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert this frustum to a &quot;hfov, vfov, ltp&quot; string.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>prec</code></strong> - Number of (decimal) digits, unstripped (0..8 or \n          <code>None</code>).</li>\n        <li><strong class=\"pname\"><code>fmt</code></strong> - Optional, <code>float</code> format (<code>letter</code>).</li>\n        <li><strong class=\"pname\"><code>sep</code></strong> - Separator to join (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Frustum in the specified form (<code>str</code>).</dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.named._Named-class.html#toStr\">named._Named.toStr</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"hfov\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">hfov</h3>\n  <p>Get the horizontal <code>fov</code> (<code>degrees</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">hfov(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the horizontal <code>fov</code> (<code>degrees</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"ltp\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">ltp</h3>\n  <p>Get the <i>local tangent plane</i> (<a \n  href=\"pygeodesy.ltp.Ltp-class.html\" class=\"link\">Ltp</a>) or \n  <code>None</code>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">ltp(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <i>local tangent plane</i> (<a href=\"pygeodesy.ltp.Ltp-class.html\" \nclass=\"link\">Ltp</a>) or <code>None</code>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"vfov\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">vfov</h3>\n  <p>Get the vertical <code>fov</code> (<code>degrees</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">vfov(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the vertical <code>fov</code> (<code>degrees</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.ltp.LocalCartesian-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.ltp.LocalCartesian</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.ltp-module.html\">Module&nbsp;ltp</a> ::\n        Class&nbsp;LocalCartesian\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.ltp.LocalCartesian-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class LocalCartesian</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+        \n           |        \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n               |    \n<a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+\n                   |\n                  <strong class=\"uidshort\">LocalCartesian</strong>\n</pre>\n\n<dl><dt>Known Subclasses:</dt>\n<dd>\n      <ul class=\"subclass-list\">\n<li><a href=\"pygeodesy.ltp.Ltp-class.html\">Ltp</a></li><li>, <a href=\"pygeodesy.ltp.ChLVa-class.html\">ChLVa</a></li><li>, <a href=\"pygeodesy.ltp.ChLVe-class.html\">ChLVe</a></li>  </ul>\n</dd></dl>\n\n<hr />\n<p>Conversion between geodetic <code>(lat, lon, height)</code> and \n  <i>local cartesian</i> <code>(x, y, z)</code> coordinates with \n  <i>geodetic</i> origin <code>(lat0, lon0, height0)</code>, transcoded \n  from <i>Karney</i>'s C++ class <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1LocalCartesian.html\"\n  target=\"_top\">LocalCartesian</a>.</p>\n  <p>The <code>z</code> axis is normal to the ellipsoid, the <code>y</code>\n  axis points due North.  The plane <code>z = -height0</code> is tangent to\n  the ellipsoid.</p>\n  <p>The conversions all take place via geocentric coordinates using a \n  geocentric <a href=\"pygeodesy.ecef.EcefKarney-class.html\" \n  class=\"link\">EcefKarney</a>, by default the WGS84 datum/ellipsoid.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Class <a href=\"pygeodesy.ltp.Ltp-class.html\" class=\"link\">Ltp</a>.\n      </p>\n</div><!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ltp.LocalCartesian-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">latlonh0</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">lon0</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">height0</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">ecef</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**lon00_name</span>)</span><br />\n      New <a href=\"pygeodesy.ltp.LocalCartesian-class.html\" \n      class=\"link\">LocalCartesian</a> converter.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ltp.LocalCartesian-class.html#__eq__\" class=\"summary-sig-name\">__eq__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span><br />\n      Compare this and an other instance.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ltp.LocalCartesian-class.html#forward\" class=\"summary-sig-name\">forward</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">latlonh</span>,\n        <span class=\"summary-sig-arg\">lon</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">height</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">M</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Convert <i>geodetic</i> <code>(lat, lon, height)</code> to \n      <i>local</i> cartesian <code>(x, y, z)</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"reset\"></a><span class=\"summary-sig-name\">reset</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">latlonh0</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">lon0</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">height0</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">ecef</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**lon00_name</span>)</span><br />\n      Reset this converter, see <a \n      href=\"pygeodesy.ltp.LocalCartesian-class.html#__init__\" \n      class=\"link\">LocalCartesian.__init__</a> for further details.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ltp.LocalCartesian-class.html#reverse\" class=\"summary-sig-name\">reverse</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">xyz</span>,\n        <span class=\"summary-sig-arg\">y</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">z</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">M</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">**lon00_name</span>)</span><br />\n      Convert <i>local</i> <code>(x, y, z)</code> to <i>geodetic</i> \n      <code>(lat, lon, height)</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ltp.LocalCartesian-class.html#toStr\" class=\"summary-sig-name\">toStr</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">prec</span>=<span class=\"summary-sig-default\">9</span>,\n        <span class=\"summary-sig-arg\">**unused</span>)</span><br />\n      Return this <a href=\"pygeodesy.ltp.LocalCartesian-class.html\" \n      class=\"link\">LocalCartesian</a> as a string.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#others\">others</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#toRepr\">toRepr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltp.LocalCartesian-class.html#datum\" class=\"summary-name\">datum</a><br />\n      Get the ECEF converter's datum (<a \n      href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltp.LocalCartesian-class.html#ecef\" class=\"summary-name\">ecef</a><br />\n      Get the ECEF converter (<a \n      href=\"pygeodesy.ecef.EcefKarney-class.html\" \n      class=\"link\">EcefKarney</a>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltp.LocalCartesian-class.html#ellipsoid\" class=\"summary-name\">ellipsoid</a><br />\n      Get the ECEF converter's ellipsoid (<a \n      href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n      class=\"link\">Ellipsoid</a>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltp.LocalCartesian-class.html#height0\" class=\"summary-name\">height0</a><br />\n      Get the origin's height (<code>meter</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltp.LocalCartesian-class.html#lat0\" class=\"summary-name\">lat0</a><br />\n      Get the origin's latitude (<code>degrees</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltp.LocalCartesian-class.html#latlonheight0\" class=\"summary-name\">latlonheight0</a><br />\n      Get the origin's lat-, longitude and height (<a \n      href=\"pygeodesy.namedTuples.LatLon3Tuple-class.html\" \n      class=\"link\">LatLon3Tuple</a><code>(lat, lon, height)</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltp.LocalCartesian-class.html#lon0\" class=\"summary-name\">lon0</a><br />\n      Get the origin's longitude (<code>degrees</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltp.LocalCartesian-class.html#lon00\" class=\"summary-name\">lon00</a><br />\n      Get the arbitrary, <i>polar</i> longitude (<code>degrees</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltp.LocalCartesian-class.html#M\" class=\"summary-name\">M</a><br />\n      Get the rotation matrix (<code>EcefMatrix</code>).\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">latlonh0</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">lon0</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">height0</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">ecef</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**lon00_name</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.ltp.LocalCartesian-class.html\" \n  class=\"link\">LocalCartesian</a> converter.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>latlonh0</code></strong> - The (geodetic) origin (<code>LatLon</code>, <a \n          href=\"pygeodesy.namedTuples.LatLon4Tuple-class.html\" \n          class=\"link\">LatLon4Tuple</a>, <a \n          href=\"pygeodesy.ltp.Ltp-class.html\" class=\"link\">Ltp</a> <a \n          href=\"pygeodesy.ltp.LocalCartesian-class.html\" \n          class=\"link\">LocalCartesian</a> or <a \n          href=\"pygeodesy.ecef.Ecef9Tuple-class.html\" \n          class=\"link\">Ecef9Tuple</a>) or the <code>scalar</code> latitude \n          of the (goedetic) origin (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lon0</code></strong> - Longitude of the (goedetic) origin (<code>degrees</code>), \n          required if <b><code>latlonh0</code></b> is <code>scalar</code>, \n          ignored otherwise.</li>\n        <li><strong class=\"pname\"><code>height0</code></strong> - Optional height (<code>meter</code>, conventionally) at the \n          (goedetic) origin perpendicular to and above (or below) the \n          ellipsoid's surface, like <b><code>lon0</code></b>.</li>\n        <li><strong class=\"pname\"><code>ecef</code></strong> - An ECEF converter (<a href=\"pygeodesy.ecef.EcefKarney-class.html\"\n          class=\"link\">EcefKarney</a> <i>only</i>), like \n          <b><code>lon0</code></b>.</li>\n        <li><strong class=\"pname\"><code>lon00_name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>) and \n          keyword argument <code><b>lon00</b>=<b>lon0</b></code> for the \n          arbitrary <i>polar</i> longitude (<code>degrees</code>), see \n          method <code>reverse</code> and property <code>lon00</code> for \n          further details.</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.ltp.LocalError-class.html\">LocalError</a></strong></code> - If <b><code>latlonh0</code></b> not <code>LatLon</code>, <a \n        href=\"pygeodesy.namedTuples.LatLon4Tuple-class.html\" \n        class=\"link\">LatLon4Tuple</a>, <a \n        href=\"pygeodesy.ltp.Ltp-class.html\" class=\"link\">Ltp</a>, <a \n        href=\"pygeodesy.ltp.LocalCartesian-class.html\" \n        class=\"link\">LocalCartesian</a> or <a \n        href=\"pygeodesy.ecef.Ecef9Tuple-class.html\" \n        class=\"link\">Ecef9Tuple</a> or <b><code>latlonh0</code></b>, \n        <b><code>lon0</code></b>, <b><code>height0</code></b> or \n        <b><code>lon00</code></b> invalid.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>ecef</code></b> or not <a \n        href=\"pygeodesy.ecef.EcefKarney-class.html\" \n        class=\"link\">EcefKarney</a>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        If B<code>latlonh0</code> is an <a \n        href=\"pygeodesy.ltp.Ltp-class.html\" class=\"link\">Ltp</a> or <a \n        href=\"pygeodesy.ltp.LocalCartesian-class.html\" \n        class=\"link\">LocalCartesian</a>, only <code>lat0</code>, \n        <code>lon0</code>, <code>height0</code> and <i>polar</i> \n        <code>lon00</code> are copied, <i>not</i> the ECEF converter.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"__eq__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__eq__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>)</span>\n    <br /><em class=\"fname\">(Equality operator)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compare this and an other instance.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>other</code></strong> - The other ellipsoid (<a \n          href=\"pygeodesy.ltp.LocalCartesian-class.html\" \n          class=\"link\">LocalCartesian</a> or <a \n          href=\"pygeodesy.ltp.Ltp-class.html\" class=\"link\">Ltp</a>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>True</code> if equal, <code>False</code> otherwise.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"forward\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">forward</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">latlonh</span>,\n        <span class=\"sig-arg\">lon</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">height</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">M</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert <i>geodetic</i> <code>(lat, lon, height)</code> to \n  <i>local</i> cartesian <code>(x, y, z)</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>latlonh</code></strong> - Either a <code>LatLon</code>, <a \n          href=\"pygeodesy.ltp.Ltp-class.html\" class=\"link\">Ltp</a>, <a \n          href=\"pygeodesy.ecef.Ecef9Tuple-class.html\" \n          class=\"link\">Ecef9Tuple</a> or <code>scalar</code> (geodetic) \n          latitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lon</code></strong> - Optional <code>scalar</code> (geodetic) longitude \n          (<code>degrees</code>) iff <b><code>latlonh</code></b> is \n          <code>scalar</code>, ignored otherwise.</li>\n        <li><strong class=\"pname\"><code>height</code></strong> - Optional height (<code>meter</code>, conventionally) \n          perpendicular to and above (or below) the ellipsoid's surface, \n          iff <b><code>latlonh</code></b> is <code>scalar</code>, ignored \n          othewrise.</li>\n        <li><strong class=\"pname\"><code>M</code></strong> - Optionally, return the <i>concatenated</i> rotation <a \n          href=\"pygeodesy.ecef.EcefMatrix-class.html\" \n          class=\"link\">EcefMatrix</a>, iff available (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.ltpTuples.Local9Tuple-class.html\" \n          class=\"link\">Local9Tuple</a><code>(x, y, z, lat, lon, height, \n          ltp, ecef, M)</code> with <i>local</i> <code>x</code>, \n          <code>y</code>, <code>z</code>, <i>geodetic</i> \n          <code>(lat</code>, <code>lon</code>, <code>height</code>, this \n          <code>ltp</code>, <code>ecef</code> (<a \n          href=\"pygeodesy.ecef.Ecef9Tuple-class.html\" \n          class=\"link\">Ecef9Tuple</a>) with <i>geocentric</i> \n          <code>x</code>, <code>y</code>, <code>z</code> (and \n          <i>geodetic</i> <code>lat</code>, <code>lon</code>, \n          <code>height</code>) and the <i>concatenated</i> rotation matrix \n          <code>M</code> (<a href=\"pygeodesy.ecef.EcefMatrix-class.html\" \n          class=\"link\">EcefMatrix</a>) if requested.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.ltp.LocalError-class.html\">LocalError</a></strong></code> - If <b><code>latlonh</code></b> not <code>scalar</code>, \n        <code>LatLon</code>, <a href=\"pygeodesy.ltp.Ltp-class.html\" \n        class=\"link\">Ltp</a>, <a \n        href=\"pygeodesy.ecef.Ecef9Tuple-class.html\" \n        class=\"link\">Ecef9Tuple</a> or invalid or if \n        <b><code>lon</code></b> not <code>scalar</code> for \n        <code>scalar</code> <b><code>latlonh</code></b> or invalid or if \n        <b><code>height</code></b> invalid.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"reverse\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">reverse</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">xyz</span>,\n        <span class=\"sig-arg\">y</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">z</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">M</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">**lon00_name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert <i>local</i> <code>(x, y, z)</code> to <i>geodetic</i> \n  <code>(lat, lon, height)</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>xyz</code></strong> - A <i>local</i> (<a href=\"pygeodesy.ltpTuples.XyzLocal-class.html\"\n          class=\"link\">XyzLocal</a>, <a \n          href=\"pygeodesy.ltpTuples.Enu-class.html\" class=\"link\">Enu</a>, \n          <a href=\"pygeodesy.ltpTuples.Ned-class.html\" \n          class=\"link\">Ned</a>, <a \n          href=\"pygeodesy.ltpTuples.Aer-class.html\" class=\"link\">Aer</a>, \n          <a href=\"pygeodesy.ltpTuples.Local9Tuple-class.html\" \n          class=\"link\">Local9Tuple</a>) or local <code>x</code> coordinate \n          (<code>scalar</code>).</li>\n        <li><strong class=\"pname\"><code>y</code></strong> - Local <code>y</code> coordinate (<code>meter</code>), iff \n          <b><code>xyz</code></b> is <code>scalar</code>, ignored \n          otherwise.</li>\n        <li><strong class=\"pname\"><code>z</code></strong> - Local <code>z</code> coordinate (<code>meter</code>), iff \n          <b><code>xyz</code></b> is <code>scalar</code>, ignored \n          otherwise.</li>\n        <li><strong class=\"pname\"><code>M</code></strong> - Optionally, return the <i>concatenated</i> rotation <a \n          href=\"pygeodesy.ecef.EcefMatrix-class.html\" \n          class=\"link\">EcefMatrix</a>, iff available (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>lon00_name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>) and \n          keyword argument <code><b>lon00</b>=<b>lon0</b></code> for the \n          arbitrary <i>polar</i> longitude (<code>degrees</code>), \n          overriding see the property <code><b>lon00</b>=<b>lon0</b></code>\n          value.  The <i>polar</i> longitude (<code>degrees</code>) is \n          returned with <i>polar</i> latitudes <code>abs(<b>lat0</b>) == \n          90</code> for local <code><b>x</b>=0</code> and \n          <code><b>y</b>=0</code> locations.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>An <a href=\"pygeodesy.ltpTuples.Local9Tuple-class.html\" \n          class=\"link\">Local9Tuple</a><code>(x, y, z, lat, lon, height, \n          ltp, ecef, M)</code> with <i>local</i> <code>x</code>, \n          <code>y</code>, <code>z</code>, <i>geodetic</i> <code>lat</code>,\n          <code>lon</code>, <code>height</code>, this <code>ltp</code>, an \n          <code>ecef</code> (<a href=\"pygeodesy.ecef.Ecef9Tuple-class.html\"\n          class=\"link\">Ecef9Tuple</a>) with the <i>geocentric</i> \n          <code>x</code>, <code>y</code>, <code>z</code> (and \n          <i>geodetic</i> <code>lat</code>, <code>lon</code>, \n          <code>height</code>) and the <i>concatenated</i> rotation matrix \n          <code>M</code> (<a href=\"pygeodesy.ecef.EcefMatrix-class.html\" \n          class=\"link\">EcefMatrix</a>) if requested.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.ltp.LocalError-class.html\">LocalError</a></strong></code> - Invalid <b><code>xyz</code></b> or <code>scalar</code> \n        <code>x</code> or <b><code>y</code></b> and/or \n        <b><code>z</code></b> not <code>scalar</code> for \n        <code>scalar</code> <b><code>xyz</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toStr\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toStr</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">prec</span>=<span class=\"sig-default\">9</span>,\n        <span class=\"sig-arg\">**unused</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return this <a href=\"pygeodesy.ltp.LocalCartesian-class.html\" \n  class=\"link\">LocalCartesian</a> as a string.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>prec</code></strong> - Precision, number of (decimal) digits (0..9).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>This <a href=\"pygeodesy.ltp.LocalCartesian-class.html\" \n          class=\"link\">LocalCartesian</a> representation \n          (<code>str</code>).</dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.named._Named-class.html#toStr\">named._Named.toStr</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"datum\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">datum</h3>\n  <p>Get the ECEF converter's datum (<a \n  href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">datum(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the ECEF converter's datum (<a href=\"pygeodesy.datums.Datum-class.html\"\nclass=\"link\">Datum</a>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"ecef\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">ecef</h3>\n  <p>Get the ECEF converter (<a href=\"pygeodesy.ecef.EcefKarney-class.html\"\n  class=\"link\">EcefKarney</a>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">ecef(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the ECEF converter (<a href=\"pygeodesy.ecef.EcefKarney-class.html\" \nclass=\"link\">EcefKarney</a>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"ellipsoid\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">ellipsoid</h3>\n  <p>Get the ECEF converter's ellipsoid (<a \n  href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n  class=\"link\">Ellipsoid</a>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">ellipsoid(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the ECEF converter's ellipsoid (<a \nhref=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \nclass=\"link\">Ellipsoid</a>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"height0\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">height0</h3>\n  <p>Get the origin's height (<code>meter</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">height0(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the origin's height (<code>meter</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"lat0\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">lat0</h3>\n  <p>Get the origin's latitude (<code>degrees</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">lat0(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the origin's latitude (<code>degrees</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"latlonheight0\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">latlonheight0</h3>\n  <p>Get the origin's lat-, longitude and height (<a \n  href=\"pygeodesy.namedTuples.LatLon3Tuple-class.html\" \n  class=\"link\">LatLon3Tuple</a><code>(lat, lon, height)</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">latlonheight0(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the origin's lat-, longitude and height (<a \nhref=\"pygeodesy.namedTuples.LatLon3Tuple-class.html\" \nclass=\"link\">LatLon3Tuple</a><code>(lat, lon, height)</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"lon0\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">lon0</h3>\n  <p>Get the origin's longitude (<code>degrees</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">lon0(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the origin's longitude (<code>degrees</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"lon00\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">lon00</h3>\n  <p>Get the arbitrary, <i>polar</i> longitude (<code>degrees</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">lon00(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the arbitrary, <i>polar</i> longitude (<code>degrees</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">lon00(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lon00</span>)</span>\n        - Set the arbitrary, <i>polar</i> longitude (<code>degrees</code>).\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"M\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">M</h3>\n  <p>Get the rotation matrix (<code>EcefMatrix</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">M(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the rotation matrix (<code>EcefMatrix</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.ltp.LocalError-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.ltp.LocalError</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.ltp-module.html\">Module&nbsp;ltp</a> ::\n        Class&nbsp;LocalError\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.ltp.LocalError-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class LocalError</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n              object --+                    \n                       |                    \nexceptions.BaseException --+                \n                           |                \n        exceptions.Exception --+            \n                               |            \n        exceptions.StandardError --+        \n                                   |        \n               exceptions.ValueError --+    \n                                       |    \n                      errors._ValueError --+\n                                           |\n                                          <strong class=\"uidshort\">LocalError</strong>\n</pre>\n\n<hr />\n<p>A <a href=\"pygeodesy.ltp.LocalCartesian-class.html\" \n  class=\"link\">LocalCartesian</a> or <a href=\"pygeodesy.ltp.Ltp-class.html\"\n  class=\"link\">Ltp</a> related issue.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>errors._ValueError</code></b>:\n      <code>__init__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.ValueError</code></b>:\n      <code>__new__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.BaseException</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getslice__</code>,\n      <code>__reduce__</code>,\n      <code>__repr__</code>,\n      <code>__setattr__</code>,\n      <code>__setstate__</code>,\n      <code>__str__</code>,\n      <code>__unicode__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__format__</code>,\n      <code>__hash__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.BaseException</code></b>:\n      <code>args</code>,\n      <code>message</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.ltp.Ltp-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.ltp.Ltp</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.ltp-module.html\">Module&nbsp;ltp</a> ::\n        Class&nbsp;Ltp\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.ltp.Ltp-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Ltp</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+            \n           |            \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+        \n               |        \n<a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+    \n                   |    \n      <a href=\"pygeodesy.ltp.LocalCartesian-class.html\">LocalCartesian</a> --+\n                       |\n                      <strong class=\"uidshort\">Ltp</strong>\n</pre>\n\n<dl><dt>Known Subclasses:</dt>\n<dd>\n      <ul class=\"subclass-list\">\n<li><a href=\"pygeodesy.ltp.ChLV-class.html\">ChLV</a></li>  </ul>\n</dd></dl>\n\n<hr />\n<p>A <i>local tangent plan</i> (LTP), a sub-class of \n  <code>LocalCartesian</code> with (re-)configurable ECEF converter.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ltp.Ltp-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">latlonh0</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">lon0</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">height0</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">ecef</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**lon00_name</span>)</span><br />\n      New <code>Ltp</code>, see <a \n      href=\"pygeodesy.ltp.LocalCartesian-class.html#__init__\" \n      class=\"link\">LocalCartesian.__init__</a> for more details.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.ltp.LocalCartesian-class.html\">LocalCartesian</a></code></b>:\n      <code><a href=\"pygeodesy.ltp.LocalCartesian-class.html#__eq__\">__eq__</a></code>,\n      <code><a href=\"pygeodesy.ltp.LocalCartesian-class.html#forward\">forward</a></code>,\n      <code><a href=\"pygeodesy.ltp.LocalCartesian-class.html#reset\">reset</a></code>,\n      <code><a href=\"pygeodesy.ltp.LocalCartesian-class.html#reverse\">reverse</a></code>,\n      <code><a href=\"pygeodesy.ltp.LocalCartesian-class.html#toStr\">toStr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#others\">others</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#toRepr\">toRepr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltp.Ltp-class.html#ecef\" class=\"summary-name\">ecef</a><br />\n      Get this LTP's ECEF converter (<code>Ecef...</code> <i>instance</i>).\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.ltp.LocalCartesian-class.html\">LocalCartesian</a></code></b>:\n      <code><a href=\"pygeodesy.ltp.LocalCartesian-class.html#M\">M</a></code>,\n      <code><a href=\"pygeodesy.ltp.LocalCartesian-class.html#datum\">datum</a></code>,\n      <code><a href=\"pygeodesy.ltp.LocalCartesian-class.html#ellipsoid\">ellipsoid</a></code>,\n      <code><a href=\"pygeodesy.ltp.LocalCartesian-class.html#height0\">height0</a></code>,\n      <code><a href=\"pygeodesy.ltp.LocalCartesian-class.html#lat0\">lat0</a></code>,\n      <code><a href=\"pygeodesy.ltp.LocalCartesian-class.html#latlonheight0\">latlonheight0</a></code>,\n      <code><a href=\"pygeodesy.ltp.LocalCartesian-class.html#lon0\">lon0</a></code>,\n      <code><a href=\"pygeodesy.ltp.LocalCartesian-class.html#lon00\">lon00</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">latlonh0</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">lon0</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">height0</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">ecef</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**lon00_name</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <code>Ltp</code>, see <a \n  href=\"pygeodesy.ltp.LocalCartesian-class.html#__init__\" \n  class=\"link\">LocalCartesian.__init__</a> for more details.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>ecef</code></strong> - Optional ECEF converter (<a \n          href=\"pygeodesy.ecef.EcefKarney-class.html\" \n          class=\"link\">EcefKarney</a>, <a \n          href=\"pygeodesy.ecef.EcefFarrell21-class.html\" \n          class=\"link\">EcefFarrell21</a>, <a \n          href=\"pygeodesy.ecef.EcefFarrell22-class.html\" \n          class=\"link\">EcefFarrell22</a>, <a \n          href=\"pygeodesy.ecef.EcefSudano-class.html\" \n          class=\"link\">EcefSudano</a>, <a \n          href=\"pygeodesy.ecef.EcefVeness-class.html\" \n          class=\"link\">EcefVeness</a> or <a \n          href=\"pygeodesy.ecef.EcefYou-class.html\" class=\"link\">EcefYou</a>\n          <i>instance</i>), overriding the default <a \n          href=\"pygeodesy.ecef.EcefKarney-class.html\" \n          class=\"link\">EcefKarney</a><code>(datum=Datums.WGS84)</code> for \n          <code>scalar</code>.</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>ecef</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Class <a href=\"pygeodesy.ltp.LocalCartesian-class.html#__init__\" \n        class=\"link\">LocalCartesian</a> for further details.\n      </p>\n</div></td></tr></table>\n</div>\n<br />\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"ecef\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">ecef</h3>\n  <p>Get this LTP's ECEF converter (<code>Ecef...</code> \n  <i>instance</i>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">ecef(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get this LTP's ECEF converter (<code>Ecef...</code> <i>instance</i>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">ecef(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">ecef</span>)</span>\n        - Set this LTP's ECEF converter (<code>Ecef...</code> <i>instance</i>).\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.ltpTuples-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.ltpTuples</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        Module&nbsp;ltpTuples\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.ltpTuples-module.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== MODULE DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Module ltpTuples</h1><p class=\"nomargin-top\"></p>\n<p>Named, <i>Local Tangent Plane</i> (LTP) tuples.</p>\n  <p>Local coordinate classes <a \n  href=\"pygeodesy.ltpTuples.XyzLocal-class.html\" class=\"link\">XyzLocal</a>,\n  <a href=\"pygeodesy.ltpTuples.Enu-class.html\" class=\"link\">Enu</a>, <a \n  href=\"pygeodesy.ltpTuples.Ned-class.html\" class=\"link\">Ned</a> and <a \n  href=\"pygeodesy.ltpTuples.Aer-class.html\" class=\"link\">Aer</a> and local \n  coordinate tuples <a href=\"pygeodesy.ltpTuples.Local9Tuple-class.html\" \n  class=\"link\">Local9Tuple</a>, <a \n  href=\"pygeodesy.ltpTuples.Xyz4Tuple-class.html\" \n  class=\"link\">Xyz4Tuple</a>, <a \n  href=\"pygeodesy.ltpTuples.Enu4Tuple-class.html\" \n  class=\"link\">Enu4Tuple</a>, <a \n  href=\"pygeodesy.ltpTuples.Ned4Tuple-class.html\" \n  class=\"link\">Ned4Tuple</a>, <a \n  href=\"pygeodesy.ltpTuples.Aer4Tuple-class.html\" \n  class=\"link\">Aer4Tuple</a>, <a \n  href=\"pygeodesy.ltpTuples.ChLV9Tuple-class.html\" \n  class=\"link\">ChLV9Tuple</a>, <a \n  href=\"pygeodesy.ltpTuples.ChLVEN2Tuple-class.html\" \n  class=\"link\">ChLVEN2Tuple</a>, <a \n  href=\"pygeodesy.ltpTuples.ChLVYX2Tuple-class.html\" \n  class=\"link\">ChLVYX2Tuple</a>, <a \n  href=\"pygeodesy.ltpTuples.ChLVyx2Tuple-class.html\" \n  class=\"link\">ChLVyx2Tuple</a> and <a \n  href=\"pygeodesy.ltpTuples.Footprint5Tuple-class.html\" \n  class=\"link\">Footprint5Tuple</a>.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        References in module <a href=\"pygeodesy.ltp-module.html\" \n        class=\"link\">ltp</a>.\n      </p>\n      <p><strong>Version:</strong>\n        25.05.01\n      </p>\n</div><!-- ==================== CLASSES ==================== -->\n<a name=\"section-Classes\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Classes</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltpTuples._AbcBase-class.html\" class=\"summary-name\">_AbcBase</a><br />\n      (INTERNAL) Base class for classes <code>Aer</code> and \n        <code>Ned</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltpTuples.Aer-class.html\" class=\"summary-name\">Aer</a><br />\n      Local <code>Azimuth-Elevation-Range</code> (AER) in a <i>local \n        tangent plane</i>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltpTuples.Aer4Tuple-class.html\" class=\"summary-name\">Aer4Tuple</a><br />\n      4-Tuple <code>(azimuth, elevation, slantrange, ltp)</code>, all in \n        <code>meter</code> except <code>ltp</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltpTuples.Attitude4Tuple-class.html\" class=\"summary-name\">Attitude4Tuple</a><br />\n      4-Tuple <code>(alt, tilt, yaw, roll)</code> with \n        <code>altitude</code> in (positive) <code>meter</code> and \n        <code>tilt</code>, <code>yaw</code> and <code>roll</code> in \n        <code>degrees</code> representing the attitude of a plane or \n        camera.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltpTuples.Ned-class.html\" class=\"summary-name\">Ned</a><br />\n      Local <code>North-Eeast-Down</code> (NED) location in a <i>local \n        tangent plane</i>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltpTuples.Ned4Tuple-class.html\" class=\"summary-name\">Ned4Tuple</a><br />\n      4-Tuple <code>(north, east, down, ltp)</code>, all in \n        <code>meter</code> except <code>ltp</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltpTuples.XyzLocal-class.html\" class=\"summary-name\">XyzLocal</a><br />\n      Local <code>(x, y, z)</code> in a <i>local tangent plane</i> (LTP),\n        also base class for local <a \n        href=\"pygeodesy.ltpTuples.Enu-class.html\" class=\"link\">Enu</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltpTuples.Xyz4Tuple-class.html\" class=\"summary-name\">Xyz4Tuple</a><br />\n      4-Tuple <code>(x, y, z, ltp)</code>, all in <code>meter</code> \n        except <code>ltp</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltpTuples.Enu-class.html\" class=\"summary-name\">Enu</a><br />\n      Local <code>Eeast-North-Up</code> (ENU) location in a <i>local \n        tangent plane</i>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltpTuples.Enu4Tuple-class.html\" class=\"summary-name\">Enu4Tuple</a><br />\n      4-Tuple <code>(east, north, up, ltp)</code>, in <code>meter</code> \n        except <code>ltp</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltpTuples.Local9Tuple-class.html\" class=\"summary-name\">Local9Tuple</a><br />\n      9-Tuple <code>(x, y, z, lat, lon, height, ltp, ecef, M)</code> with\n        <i>local</i> <code>x</code>, <code>y</code>, <code>z</code> all in \n        <code>meter</code>, <i>geodetic</i> <code>lat</code>, \n        <code>lon</code>, <code>height</code>, <i>local tangent plane</i> \n        <code>ltp</code> (<a href=\"pygeodesy.ltp.Ltp-class.html\" \n        class=\"link\">Ltp</a>), <code>ecef</code> (<a \n        href=\"pygeodesy.ecef.Ecef9Tuple-class.html\" \n        class=\"link\">Ecef9Tuple</a>) with <i>geocentric</i> <code>x</code>,\n        <code>y</code>, <code>z</code>, <i>geodetic</i> <code>lat</code>, \n        <code>lon</code>, <code>height</code> and <i>concatenated</i> \n        rotation matrix <code>M</code> (<a \n        href=\"pygeodesy.ecef.EcefMatrix-class.html\" \n        class=\"link\">EcefMatrix</a>) or <code>None</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltpTuples.Uvw-class.html\" class=\"summary-name\">Uvw</a><br />\n      3-D <code>u-v-w</code> (UVW) components.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltpTuples.Uvw3Tuple-class.html\" class=\"summary-name\">Uvw3Tuple</a><br />\n      3-Tuple <code>(u, v, w)</code>, in <code>meter</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltpTuples.Los-class.html\" class=\"summary-name\">Los</a><br />\n      A Line-Of-Sight (LOS) from a <code>LatLon</code> or \n        <code>Cartesian</code> location.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltpTuples.ChLV9Tuple-class.html\" class=\"summary-name\">ChLV9Tuple</a><br />\n      9-Tuple <code>(Y, X, h_, lat, lon, height, ltp, ecef, M)</code> \n        with <i><b>unfalsed</b> Swiss (Y, X, h_)</i> coordinates and \n        height, all in <code>meter</code>, <code>ltp</code> either a <a \n        href=\"pygeodesy.ltp.ChLV-class.html\" class=\"link\">ChLV</a>, <a \n        href=\"pygeodesy.ltp.ChLVa-class.html\" class=\"link\">ChLVa</a> or <a \n        href=\"pygeodesy.ltp.ChLVe-class.html\" class=\"link\">ChLVe</a> \n        instance and <code>ecef</code> (<a \n        href=\"pygeodesy.ecef.EcefKarney-class.html\" \n        class=\"link\">EcefKarney</a> <i>at Bern, Ch</i>), otherwise like <a \n        href=\"pygeodesy.ltpTuples.Local9Tuple-class.html\" \n        class=\"link\">Local9Tuple</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltpTuples.ChLVYX2Tuple-class.html\" class=\"summary-name\">ChLVYX2Tuple</a><br />\n      2-Tuple <code>(Y, X)</code> with <b>unfalsed</b> <i>Swiss LV95</i> \n        easting and norting in <code>meter</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltpTuples.ChLVEN2Tuple-class.html\" class=\"summary-name\">ChLVEN2Tuple</a><br />\n      2-Tuple <code>(E_LV95, N_LV95)</code> with <b>falsed</b> <i>Swiss \n        LV95</i> easting and norting in <code>meter (2_600_000, \n        1_200_000)</code> and origin at <code>Bern, Ch</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltpTuples.ChLVyx2Tuple-class.html\" class=\"summary-name\">ChLVyx2Tuple</a><br />\n      2-Tuple <code>(y_LV03, x_LV03)</code> with <b>falsed</b> <i>Swiss \n        LV03</i> easting and norting in <code>meter (600_000, \n        200_000)</code> and origin at <code>Bern, Ch</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltpTuples.Footprint5Tuple-class.html\" class=\"summary-name\">Footprint5Tuple</a><br />\n      5-Tuple <code>(center, upperleft, upperight, loweright, \n        lowerleft)</code> with the <code>center</code> and 4 corners of the\n        <i>local</i> projection of a <code>Frustum</code>, each an <a \n        href=\"pygeodesy.ltpTuples.Xyz4Tuple-class.html\" \n        class=\"link\">Xyz4Tuple</a>, <a \n        href=\"pygeodesy.ltpTuples.XyzLocal-class.html\" \n        class=\"link\">XyzLocal</a>, <code>LatLon</code>, etc.\n    </td>\n  </tr>\n</table>\n<!-- ==================== VARIABLES ==================== -->\n<a name=\"section-Variables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Variables</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"__all__\"></a><span class=\"summary-name\">__all__</span> = <code title=\"_ALL_LAZY.ltpTuples\">_ALL_LAZY.ltpTuples</code>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.ltpTuples.Aer-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.ltpTuples.Aer</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.ltpTuples-module.html\">Module&nbsp;ltpTuples</a> ::\n        Class&nbsp;Aer\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.ltpTuples.Aer-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Aer</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+            \n           |            \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+        \n               |        \n<a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+    \n                   |    \n            <a href=\"pygeodesy.ltpTuples._AbcBase-class.html\">_AbcBase</a> --+\n                       |\n                      <strong class=\"uidshort\">Aer</strong>\n</pre>\n\n<dl><dt>Known Subclasses:</dt>\n<dd>\n      <ul class=\"subclass-list\">\n<li><a href=\"pygeodesy.ltpTuples.Los-class.html\">Los</a></li>  </ul>\n</dd></dl>\n\n<hr />\n<p>Local <code>Azimuth-Elevation-Range</code> (AER) in a <i>local tangent\n  plane</i>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ltpTuples.Aer-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">azimuth_aer</span>,\n        <span class=\"summary-sig-arg\">elevation</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">slantrange</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">ltp</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      New <a href=\"pygeodesy.ltpTuples.Aer-class.html\" \n      class=\"link\">Aer</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ltpTuples.Aer-class.html#toRepr\" class=\"summary-sig-name\">toRepr</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">prec</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">fmt</span>=<span class=\"summary-sig-default\">'[%s]'</span>,\n        <span class=\"summary-sig-arg\">sep</span>=<span class=\"summary-sig-default\">', '</span>,\n        <span class=\"summary-sig-arg\">**unused</span>)</span><br />\n      Return a string representation of this AER as azimuth (bearing), \n      elevation and slant range.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ltpTuples.Aer-class.html#toStr\" class=\"summary-sig-name\">toStr</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">**prec_fmt_sep</span>)</span><br />\n      Return a string representation of this AER.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.ltpTuples._AbcBase-class.html\">_AbcBase</a></code></b>:\n      <code><a href=\"pygeodesy.ltpTuples._AbcBase-class.html#toAer\">toAer</a></code>,\n      <code><a href=\"pygeodesy.ltpTuples._AbcBase-class.html#toEnu\">toEnu</a></code>,\n      <code><a href=\"pygeodesy.ltpTuples._AbcBase-class.html#toNed\">toNed</a></code>,\n      <code><a href=\"pygeodesy.ltpTuples._AbcBase-class.html#toXyz\">toXyz</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#others\">others</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltpTuples.Aer-class.html#aer4\" class=\"summary-name\">aer4</a><br />\n      Get the <code>(azimuth, elevation, slantrange, ltp)</code> components\n      (<a href=\"pygeodesy.ltpTuples.Aer4Tuple-class.html\" \n      class=\"link\">Aer4Tuple</a>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltpTuples.Aer-class.html#azimuth\" class=\"summary-name\">azimuth</a><br />\n      Get the Azimuth, bearing from North (<code>degrees360</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltpTuples.Aer-class.html#down\" class=\"summary-name\">down</a><br />\n      Get the Down component (<code>meter</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltpTuples.Aer-class.html#east\" class=\"summary-name\">east</a><br />\n      Get the East component (<code>meter</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltpTuples.Aer-class.html#elevation\" class=\"summary-name\">elevation</a><br />\n      Get the Elevation, tilt above horizon (<code>degrees90</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltpTuples.Aer-class.html#groundrange\" class=\"summary-name\">groundrange</a><br />\n      Get the <i>ground range</i>, distance (<code>meter</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltpTuples.Aer-class.html#north\" class=\"summary-name\">north</a><br />\n      Get the North component (<code>meter</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltpTuples.Aer-class.html#slantrange\" class=\"summary-name\">slantrange</a><br />\n      Get the <i>slant Range</i>, distance (<code>meter</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltpTuples.Aer-class.html#up\" class=\"summary-name\">up</a><br />\n      Get the Up component (<code>meter</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltpTuples.Aer-class.html#x\" class=\"summary-name\">x</a><br />\n      Get the X component (<code>meter</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltpTuples.Aer-class.html#xyz4\" class=\"summary-name\">xyz4</a><br />\n      Get the <code>(x, y, z, ltp)</code> components (<a \n      href=\"pygeodesy.ltpTuples.Xyz4Tuple-class.html\" \n      class=\"link\">Xyz4Tuple</a>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltpTuples.Aer-class.html#y\" class=\"summary-name\">y</a><br />\n      Get the Y component (<code>meter</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltpTuples.Aer-class.html#z\" class=\"summary-name\">z</a><br />\n      Get the Z component (<code>meter</code>).\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.ltpTuples._AbcBase-class.html\">_AbcBase</a></code></b>:\n      <code><a href=\"pygeodesy.ltpTuples._AbcBase-class.html#ltp\">ltp</a></code>,\n      <code><a href=\"pygeodesy.ltpTuples._AbcBase-class.html#xyz\">xyz</a></code>,\n      <code><a href=\"pygeodesy.ltpTuples._AbcBase-class.html#xyz3\">xyz3</a></code>,\n      <code><a href=\"pygeodesy.ltpTuples._AbcBase-class.html#xyzLocal\">xyzLocal</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">azimuth_aer</span>,\n        <span class=\"sig-arg\">elevation</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">slantrange</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">ltp</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.ltpTuples.Aer-class.html\" \n  class=\"link\">Aer</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>azimuth_aer</code></strong> - Scalar azimuth, bearing from North (compass <code>degrees</code>)\n          or a previous <i>local</i> instance (<a \n          href=\"pygeodesy.ltpTuples.Aer-class.html\" class=\"link\">Aer</a>, \n          <a href=\"pygeodesy.ltpTuples.Aer4Tuple-class.html\" \n          class=\"link\">Aer4Tuple</a>, <a \n          href=\"pygeodesy.ltpTuples.Enu-class.html\" class=\"link\">Enu</a>, \n          <a href=\"pygeodesy.ltpTuples.Enu4Tuple-class.html\" \n          class=\"link\">Enu4Tuple</a>, <a \n          href=\"pygeodesy.ltpTuples.Local9Tuple-class.html\" \n          class=\"link\">Local9Tuple</a>, <a \n          href=\"pygeodesy.ltpTuples.Ned-class.html\" class=\"link\">Ned</a>, \n          <a href=\"pygeodesy.ltpTuples.Ned4Tuple-class.html\" \n          class=\"link\">Ned4Tuple</a>, <a \n          href=\"pygeodesy.ltpTuples.XyzLocal-class.html\" \n          class=\"link\">XyzLocal</a> or <a \n          href=\"pygeodesy.ltpTuples.Xyz4Tuple-class.html\" \n          class=\"link\">Xyz4Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>elevation</code></strong> - Scalar angle <i>above</i> the horizon, <i>above</i> \n          <b><code>ltp</code></b> (<code>degrees</code>, horizon is 0, \n          zenith +90 and nadir -90), only used with scalar \n          <b><code>azimuth_aer</code></b>.</li>\n        <li><strong class=\"pname\"><code>slantrange</code></strong> - Scalar distance (<code>meter</code>), only used with scalar \n          <b><code>azimuth_aer</code></b>.</li>\n        <li><strong class=\"pname\"><code>ltp</code></strong> - The <i>local tangent plane</i>, (geodetic) origin (<a \n          href=\"pygeodesy.ltp.Ltp-class.html\" class=\"link\">Ltp</a>, <a \n          href=\"pygeodesy.ltp.LocalCartesian-class.html\" \n          class=\"link\">LocalCartesian</a>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>azimuth_aer</code></b> or <b><code>ltp</code></b>.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.UnitError-class.html\">UnitError</a></strong></code> - Invalid <b><code>azimuth_aer</code></b>, \n        <b><code>elevation</code></b> or or <b><code>slantrange</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toRepr\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toRepr</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">prec</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">fmt</span>=<span class=\"sig-default\">'[%s]'</span>,\n        <span class=\"sig-arg\">sep</span>=<span class=\"sig-default\">', '</span>,\n        <span class=\"sig-arg\">**unused</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return a string representation of this AER as azimuth (bearing), \n  elevation and slant range.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>prec</code></strong> - Number of (decimal) digits, unstripped (<code>int</code>).</li>\n        <li><strong class=\"pname\"><code>fmt</code></strong> - Enclosing backets format (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>sep</code></strong> - Optional separator between AERs (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>This AER as &quot;[A:degrees360, E:degrees90, R:meter]&quot; \n          (<code>str</code>).</dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.named._Named-class.html#toRepr\">named._Named.toRepr</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toStr\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toStr</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">**prec_fmt_sep</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return a string representation of this AER.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>prec_fmt_sep</code></strong> - Keyword arguments <code><b>prec</b>=3</code> for the number of \n          (decimal) digits, unstripped (<code>int</code>), \n          <code><b>fmt</b>='[]'</code> the enclosing backets format \n          (<code>str</code>) and separator <code><b>sep</b>=&quot;, \n          &quot;</code> to join (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>This AER as &quot;[degrees360, degrees90, meter]&quot; \n          (<code>str</code>).</dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.named._Named-class.html#toStr\">named._Named.toStr</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"aer4\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">aer4</h3>\n  <p>Get the <code>(azimuth, elevation, slantrange, ltp)</code> components \n  (<a href=\"pygeodesy.ltpTuples.Aer4Tuple-class.html\" \n  class=\"link\">Aer4Tuple</a>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">aer4(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <code>(azimuth, elevation, slantrange, ltp)</code> components (<a \nhref=\"pygeodesy.ltpTuples.Aer4Tuple-class.html\" \nclass=\"link\">Aer4Tuple</a>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"azimuth\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">azimuth</h3>\n  <p>Get the Azimuth, bearing from North (<code>degrees360</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">azimuth(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the Azimuth, bearing from North (<code>degrees360</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"down\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">down</h3>\n  <p>Get the Down component (<code>meter</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">down(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the Down component (<code>meter</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"east\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">east</h3>\n  <p>Get the East component (<code>meter</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">east(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the East component (<code>meter</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"elevation\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">elevation</h3>\n  <p>Get the Elevation, tilt above horizon (<code>degrees90</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">elevation(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the Elevation, tilt above horizon (<code>degrees90</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"groundrange\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">groundrange</h3>\n  <p>Get the <i>ground range</i>, distance (<code>meter</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">groundrange(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <i>ground range</i>, distance (<code>meter</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"north\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">north</h3>\n  <p>Get the North component (<code>meter</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">north(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the North component (<code>meter</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"slantrange\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">slantrange</h3>\n  <p>Get the <i>slant Range</i>, distance (<code>meter</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">slantrange(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <i>slant Range</i>, distance (<code>meter</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"up\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">up</h3>\n  <p>Get the Up component (<code>meter</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">up(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the Up component (<code>meter</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"x\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">x</h3>\n  <p>Get the X component (<code>meter</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">x(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the X component (<code>meter</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"xyz4\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">xyz4</h3>\n  <p>Get the <code>(x, y, z, ltp)</code> components (<a \n  href=\"pygeodesy.ltpTuples.Xyz4Tuple-class.html\" \n  class=\"link\">Xyz4Tuple</a>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">xyz4(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <code>(x, y, z, ltp)</code> components (<a \nhref=\"pygeodesy.ltpTuples.Xyz4Tuple-class.html\" \nclass=\"link\">Xyz4Tuple</a>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"y\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">y</h3>\n  <p>Get the Y component (<code>meter</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">y(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the Y component (<code>meter</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"z\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">z</h3>\n  <p>Get the Z component (<code>meter</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">z(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the Z component (<code>meter</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.ltpTuples.Aer4Tuple-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.ltpTuples.Aer4Tuple</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.ltpTuples-module.html\">Module&nbsp;ltpTuples</a> ::\n        Class&nbsp;Aer4Tuple\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.ltpTuples.Aer4Tuple-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Aer4Tuple</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n   object --+            \n            |            \n        tuple --+        \n                |        \n   object --+   |        \n            |   |        \n <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+        \n                |        \n<a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a> --+    \n                    |    \n           _Abc4Tuple --+\n                        |\n                       <strong class=\"uidshort\">Aer4Tuple</strong>\n</pre>\n\n<hr />\n<p>4-Tuple <code>(azimuth, elevation, slantrange, ltp)</code>, all in \n  <code>meter</code> except <code>ltp</code>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__delattr__\">__delattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__getattr__\">__getattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__setattr__\">__setattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#items\">items</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iteritems\">iteritems</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iterunits\">iterunits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#reUnit\">reUnit</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toUnits\">toUnits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>tuple</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__eq__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__iter__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__rmul__</code>,\n      <code>count</code>,\n      <code>index</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__new__\">__new__</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltpTuples.Aer4Tuple-class.html#groundrange\" class=\"summary-name\">groundrange</a><br />\n      Get the <i>ground range</i>, distance (<code>meter</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltpTuples.Aer4Tuple-class.html#xyzLocal\" class=\"summary-name\">xyzLocal</a><br />\n      Get this <a href=\"pygeodesy.ltpTuples.Aer4Tuple-class.html\" \n      class=\"link\">Aer4Tuple</a> as an <a \n      href=\"pygeodesy.ltpTuples.XyzLocal-class.html\" \n      class=\"link\">XyzLocal</a>.\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"groundrange\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">groundrange</h3>\n  <p>Get the <i>ground range</i>, distance (<code>meter</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">groundrange(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <i>ground range</i>, distance (<code>meter</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"xyzLocal\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">xyzLocal</h3>\n  <p>Get this <a href=\"pygeodesy.ltpTuples.Aer4Tuple-class.html\" \n  class=\"link\">Aer4Tuple</a> as an <a \n  href=\"pygeodesy.ltpTuples.XyzLocal-class.html\" \n  class=\"link\">XyzLocal</a>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">xyzLocal(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get this <a href=\"pygeodesy.ltpTuples.Aer4Tuple-class.html\" \nclass=\"link\">Aer4Tuple</a> as an <a \nhref=\"pygeodesy.ltpTuples.XyzLocal-class.html\" class=\"link\">XyzLocal</a>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.ltpTuples.Attitude4Tuple-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.ltpTuples.Attitude4Tuple</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.ltpTuples-module.html\">Module&nbsp;ltpTuples</a> ::\n        Class&nbsp;Attitude4Tuple\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.ltpTuples.Attitude4Tuple-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Attitude4Tuple</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n   object --+        \n            |        \n        tuple --+    \n                |    \n   object --+   |    \n            |   |    \n <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n                |    \n<a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a> --+\n                    |\n                   <strong class=\"uidshort\">Attitude4Tuple</strong>\n</pre>\n\n<hr />\n<p>4-Tuple <code>(alt, tilt, yaw, roll)</code> with <code>altitude</code>\n  in (positive) <code>meter</code> and <code>tilt</code>, <code>yaw</code> \n  and <code>roll</code> in <code>degrees</code> representing the attitude \n  of a plane or camera.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__delattr__\">__delattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__getattr__\">__getattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__setattr__\">__setattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#items\">items</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iteritems\">iteritems</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iterunits\">iterunits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#reUnit\">reUnit</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toUnits\">toUnits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>tuple</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__eq__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__iter__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__rmul__</code>,\n      <code>count</code>,\n      <code>index</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__new__\">__new__</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltpTuples.Attitude4Tuple-class.html#atyr\" class=\"summary-name\">atyr</a><br />\n      Return this attitude (<a \n      href=\"pygeodesy.ltpTuples.Attitude4Tuple-class.html\" \n      class=\"link\">Attitude4Tuple</a>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltpTuples.Attitude4Tuple-class.html#tyr3d\" class=\"summary-name\">tyr3d</a><br />\n      Get this attitude's (3-D) directional vector (<a \n      href=\"pygeodesy.vector3d.Vector3d-class.html\" \n      class=\"link\">Vector3d</a>).\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"atyr\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">atyr</h3>\n  <p>Return this attitude (<a \n  href=\"pygeodesy.ltpTuples.Attitude4Tuple-class.html\" \n  class=\"link\">Attitude4Tuple</a>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">atyr(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Return this attitude (<a \nhref=\"pygeodesy.ltpTuples.Attitude4Tuple-class.html\" \nclass=\"link\">Attitude4Tuple</a>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"tyr3d\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">tyr3d</h3>\n  <p>Get this attitude's (3-D) directional vector (<a \n  href=\"pygeodesy.vector3d.Vector3d-class.html\" \n  class=\"link\">Vector3d</a>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">tyr3d(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get this attitude's (3-D) directional vector (<a \nhref=\"pygeodesy.vector3d.Vector3d-class.html\" class=\"link\">Vector3d</a>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.ltpTuples.ChLV9Tuple-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.ltpTuples.ChLV9Tuple</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.ltpTuples-module.html\">Module&nbsp;ltpTuples</a> ::\n        Class&nbsp;ChLV9Tuple\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.ltpTuples.ChLV9Tuple-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class ChLV9Tuple</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n   object --+            \n            |            \n        tuple --+        \n                |        \n   object --+   |        \n            |   |        \n <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+        \n                |        \n<a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a> --+    \n                    |    \n          <a href=\"pygeodesy.ltpTuples.Local9Tuple-class.html\">Local9Tuple</a> --+\n                        |\n                       <strong class=\"uidshort\">ChLV9Tuple</strong>\n</pre>\n\n<hr />\n<p>9-Tuple <code>(Y, X, h_, lat, lon, height, ltp, ecef, M)</code> with \n  <i><b>unfalsed</b> Swiss (Y, X, h_)</i> coordinates and height, all in \n  <code>meter</code>, <code>ltp</code> either a <a \n  href=\"pygeodesy.ltp.ChLV-class.html\" class=\"link\">ChLV</a>, <a \n  href=\"pygeodesy.ltp.ChLVa-class.html\" class=\"link\">ChLVa</a> or <a \n  href=\"pygeodesy.ltp.ChLVe-class.html\" class=\"link\">ChLVe</a> instance and\n  <code>ecef</code> (<a href=\"pygeodesy.ecef.EcefKarney-class.html\" \n  class=\"link\">EcefKarney</a> <i>at Bern, Ch</i>), otherwise like <a \n  href=\"pygeodesy.ltpTuples.Local9Tuple-class.html\" \n  class=\"link\">Local9Tuple</a>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.ltpTuples.Local9Tuple-class.html\">Local9Tuple</a></code></b>:\n      <code><a href=\"pygeodesy.ltpTuples.Local9Tuple-class.html#toAer\">toAer</a></code>,\n      <code><a href=\"pygeodesy.ltpTuples.Local9Tuple-class.html#toCartesian\">toCartesian</a></code>,\n      <code><a href=\"pygeodesy.ltpTuples.Local9Tuple-class.html#toEnu\">toEnu</a></code>,\n      <code><a href=\"pygeodesy.ltpTuples.Local9Tuple-class.html#toLatLon\">toLatLon</a></code>,\n      <code><a href=\"pygeodesy.ltpTuples.Local9Tuple-class.html#toNed\">toNed</a></code>,\n      <code><a href=\"pygeodesy.ltpTuples.Local9Tuple-class.html#toXyz\">toXyz</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__delattr__\">__delattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__getattr__\">__getattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__setattr__\">__setattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#items\">items</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iteritems\">iteritems</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iterunits\">iterunits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#reUnit\">reUnit</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toUnits\">toUnits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>tuple</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__eq__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__iter__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__rmul__</code>,\n      <code>count</code>,\n      <code>index</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__new__\">__new__</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltpTuples.ChLV9Tuple-class.html#E_LV95\" class=\"summary-name\">E_LV95</a><br />\n      Get the <b>falsed</b> <i>Swiss E_LV95</i> easting \n      (<code>meter</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltpTuples.ChLV9Tuple-class.html#EN2_LV95\" class=\"summary-name\">EN2_LV95</a><br />\n      Get the <i>falsed Swiss (E_LV95, N_LV95)</i> easting and northing (<a\n      href=\"pygeodesy.ltpTuples.ChLVEN2Tuple-class.html\" \n      class=\"link\">ChLVEN2Tuple</a>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltpTuples.ChLV9Tuple-class.html#h_LV03\" class=\"summary-name\">h_LV03</a><br />\n      Get the <i>Swiss h_</i> height (<code>meter</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltpTuples.ChLV9Tuple-class.html#h_LV95\" class=\"summary-name\">h_LV95</a><br />\n      Get the <i>Swiss h_</i> height (<code>meter</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltpTuples.ChLV9Tuple-class.html#isChLV\" class=\"summary-name\">isChLV</a><br />\n      Is this a <a href=\"pygeodesy.ltp.ChLV-class.html\" \n      class=\"link\">ChLV</a>-generated <a \n      href=\"pygeodesy.ltpTuples.ChLV9Tuple-class.html\" \n      class=\"link\">ChLV9Tuple</a>?.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltpTuples.ChLV9Tuple-class.html#isChLVa\" class=\"summary-name\">isChLVa</a><br />\n      Is this a <a href=\"pygeodesy.ltp.ChLVa-class.html\" \n      class=\"link\">ChLVa</a>-generated <a \n      href=\"pygeodesy.ltpTuples.ChLV9Tuple-class.html\" \n      class=\"link\">ChLV9Tuple</a>?.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltpTuples.ChLV9Tuple-class.html#isChLVe\" class=\"summary-name\">isChLVe</a><br />\n      Is this a <a href=\"pygeodesy.ltp.ChLVe-class.html\" \n      class=\"link\">ChLVe</a>-generated <a \n      href=\"pygeodesy.ltpTuples.ChLV9Tuple-class.html\" \n      class=\"link\">ChLV9Tuple</a>?.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltpTuples.ChLV9Tuple-class.html#N_LV95\" class=\"summary-name\">N_LV95</a><br />\n      Get the <b>falsed</b> <i>Swiss N_LV95</i> northing \n      (<code>meter</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltpTuples.ChLV9Tuple-class.html#x\" class=\"summary-name\">x</a><br />\n      Get the <i>local x, Swiss Y</i> easting (<code>meter</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltpTuples.ChLV9Tuple-class.html#x_LV03\" class=\"summary-name\">x_LV03</a><br />\n      Get the <b>falsed</b> <i>Swiss x_LV03</i> northing \n      (<code>meter</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltpTuples.ChLV9Tuple-class.html#y\" class=\"summary-name\">y</a><br />\n      Get the <i>local y, Swiss X</i> northing (<code>meter</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltpTuples.ChLV9Tuple-class.html#y_LV03\" class=\"summary-name\">y_LV03</a><br />\n      Get the <b>falsed</b> <i>Swisss y_LV03</i> easting \n      (<code>meter</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltpTuples.ChLV9Tuple-class.html#YX\" class=\"summary-name\">YX</a><br />\n      Get the <b>unfalsed</b> easting and northing (<a \n      href=\"pygeodesy.ltpTuples.ChLVYX2Tuple-class.html\" \n      class=\"link\">ChLVYX2Tuple</a>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltpTuples.ChLV9Tuple-class.html#yx2_LV03\" class=\"summary-name\">yx2_LV03</a><br />\n      Get the <b>falsed</b> <i>Swiss (y_LV03, x_LV03)</i> easting and \n      northing (<a href=\"pygeodesy.ltpTuples.ChLVyx2Tuple-class.html\" \n      class=\"link\">ChLVyx2Tuple</a>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltpTuples.ChLV9Tuple-class.html#z\" class=\"summary-name\">z</a><br />\n      Get the <i>local z, Swiss h_</i> height (<code>meter</code>).\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.ltpTuples.Local9Tuple-class.html\">Local9Tuple</a></code></b>:\n      <code><a href=\"pygeodesy.ltpTuples.Local9Tuple-class.html#azimuth\">azimuth</a></code>,\n      <code><a href=\"pygeodesy.ltpTuples.Local9Tuple-class.html#down\">down</a></code>,\n      <code><a href=\"pygeodesy.ltpTuples.Local9Tuple-class.html#east\">east</a></code>,\n      <code><a href=\"pygeodesy.ltpTuples.Local9Tuple-class.html#elevation\">elevation</a></code>,\n      <code><a href=\"pygeodesy.ltpTuples.Local9Tuple-class.html#groundrange\">groundrange</a></code>,\n      <code><a href=\"pygeodesy.ltpTuples.Local9Tuple-class.html#lam\">lam</a></code>,\n      <code><a href=\"pygeodesy.ltpTuples.Local9Tuple-class.html#latlon\">latlon</a></code>,\n      <code><a href=\"pygeodesy.ltpTuples.Local9Tuple-class.html#latlonheight\">latlonheight</a></code>,\n      <code><a href=\"pygeodesy.ltpTuples.Local9Tuple-class.html#north\">north</a></code>,\n      <code><a href=\"pygeodesy.ltpTuples.Local9Tuple-class.html#phi\">phi</a></code>,\n      <code><a href=\"pygeodesy.ltpTuples.Local9Tuple-class.html#philam\">philam</a></code>,\n      <code><a href=\"pygeodesy.ltpTuples.Local9Tuple-class.html#philamheight\">philamheight</a></code>,\n      <code><a href=\"pygeodesy.ltpTuples.Local9Tuple-class.html#slantrange\">slantrange</a></code>,\n      <code><a href=\"pygeodesy.ltpTuples.Local9Tuple-class.html#up\">up</a></code>,\n      <code><a href=\"pygeodesy.ltpTuples.Local9Tuple-class.html#xyz\">xyz</a></code>,\n      <code><a href=\"pygeodesy.ltpTuples.Local9Tuple-class.html#xyzLocal\">xyzLocal</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"E_LV95\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">E_LV95</h3>\n  <p>Get the <b>falsed</b> <i>Swiss E_LV95</i> easting \n  (<code>meter</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">E_LV95(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <b>falsed</b> <i>Swiss E_LV95</i> easting (<code>meter</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"EN2_LV95\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">EN2_LV95</h3>\n  <p>Get the <i>falsed Swiss (E_LV95, N_LV95)</i> easting and northing (<a \n  href=\"pygeodesy.ltpTuples.ChLVEN2Tuple-class.html\" \n  class=\"link\">ChLVEN2Tuple</a>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">EN2_LV95(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <i>falsed Swiss (E_LV95, N_LV95)</i> easting and northing (<a \nhref=\"pygeodesy.ltpTuples.ChLVEN2Tuple-class.html\" \nclass=\"link\">ChLVEN2Tuple</a>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"h_LV03\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">h_LV03</h3>\n  <p>Get the <i>Swiss h_</i> height (<code>meter</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">h_LV03(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <i>Swiss h_</i> height (<code>meter</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"h_LV95\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">h_LV95</h3>\n  <p>Get the <i>Swiss h_</i> height (<code>meter</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">h_LV95(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <i>Swiss h_</i> height (<code>meter</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"isChLV\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">isChLV</h3>\n  <p>Is this a <a href=\"pygeodesy.ltp.ChLV-class.html\" \n  class=\"link\">ChLV</a>-generated <a \n  href=\"pygeodesy.ltpTuples.ChLV9Tuple-class.html\" \n  class=\"link\">ChLV9Tuple</a>?.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">isChLV(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Is this a <a href=\"pygeodesy.ltp.ChLV-class.html\" \nclass=\"link\">ChLV</a>-generated <a \nhref=\"pygeodesy.ltpTuples.ChLV9Tuple-class.html\" \nclass=\"link\">ChLV9Tuple</a>?.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"isChLVa\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">isChLVa</h3>\n  <p>Is this a <a href=\"pygeodesy.ltp.ChLVa-class.html\" \n  class=\"link\">ChLVa</a>-generated <a \n  href=\"pygeodesy.ltpTuples.ChLV9Tuple-class.html\" \n  class=\"link\">ChLV9Tuple</a>?.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">isChLVa(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Is this a <a href=\"pygeodesy.ltp.ChLVa-class.html\" \nclass=\"link\">ChLVa</a>-generated <a \nhref=\"pygeodesy.ltpTuples.ChLV9Tuple-class.html\" \nclass=\"link\">ChLV9Tuple</a>?.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"isChLVe\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">isChLVe</h3>\n  <p>Is this a <a href=\"pygeodesy.ltp.ChLVe-class.html\" \n  class=\"link\">ChLVe</a>-generated <a \n  href=\"pygeodesy.ltpTuples.ChLV9Tuple-class.html\" \n  class=\"link\">ChLV9Tuple</a>?.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">isChLVe(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Is this a <a href=\"pygeodesy.ltp.ChLVe-class.html\" \nclass=\"link\">ChLVe</a>-generated <a \nhref=\"pygeodesy.ltpTuples.ChLV9Tuple-class.html\" \nclass=\"link\">ChLV9Tuple</a>?.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"N_LV95\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">N_LV95</h3>\n  <p>Get the <b>falsed</b> <i>Swiss N_LV95</i> northing \n  (<code>meter</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">N_LV95(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <b>falsed</b> <i>Swiss N_LV95</i> northing (<code>meter</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"x\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">x</h3>\n  <p>Get the <i>local x, Swiss Y</i> easting (<code>meter</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">x(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <i>local x, Swiss Y</i> easting (<code>meter</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"x_LV03\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">x_LV03</h3>\n  <p>Get the <b>falsed</b> <i>Swiss x_LV03</i> northing \n  (<code>meter</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">x_LV03(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <b>falsed</b> <i>Swiss x_LV03</i> northing (<code>meter</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"y\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">y</h3>\n  <p>Get the <i>local y, Swiss X</i> northing (<code>meter</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">y(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <i>local y, Swiss X</i> northing (<code>meter</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"y_LV03\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">y_LV03</h3>\n  <p>Get the <b>falsed</b> <i>Swisss y_LV03</i> easting \n  (<code>meter</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">y_LV03(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <b>falsed</b> <i>Swisss y_LV03</i> easting (<code>meter</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"YX\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">YX</h3>\n  <p>Get the <b>unfalsed</b> easting and northing (<a \n  href=\"pygeodesy.ltpTuples.ChLVYX2Tuple-class.html\" \n  class=\"link\">ChLVYX2Tuple</a>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">YX(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <b>unfalsed</b> easting and northing (<a \nhref=\"pygeodesy.ltpTuples.ChLVYX2Tuple-class.html\" \nclass=\"link\">ChLVYX2Tuple</a>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"yx2_LV03\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">yx2_LV03</h3>\n  <p>Get the <b>falsed</b> <i>Swiss (y_LV03, x_LV03)</i> easting and \n  northing (<a href=\"pygeodesy.ltpTuples.ChLVyx2Tuple-class.html\" \n  class=\"link\">ChLVyx2Tuple</a>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">yx2_LV03(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <b>falsed</b> <i>Swiss (y_LV03, x_LV03)</i> easting and northing \n(<a href=\"pygeodesy.ltpTuples.ChLVyx2Tuple-class.html\" \nclass=\"link\">ChLVyx2Tuple</a>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"z\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">z</h3>\n  <p>Get the <i>local z, Swiss h_</i> height (<code>meter</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">z(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <i>local z, Swiss h_</i> height (<code>meter</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.ltpTuples.ChLVEN2Tuple-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.ltpTuples.ChLVEN2Tuple</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.ltpTuples-module.html\">Module&nbsp;ltpTuples</a> ::\n        Class&nbsp;ChLVEN2Tuple\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.ltpTuples.ChLVEN2Tuple-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class ChLVEN2Tuple</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n   object --+        \n            |        \n        tuple --+    \n                |    \n   object --+   |    \n            |   |    \n <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n                |    \n<a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a> --+\n                    |\n                   <strong class=\"uidshort\">ChLVEN2Tuple</strong>\n</pre>\n\n<hr />\n<p>2-Tuple <code>(E_LV95, N_LV95)</code> with <b>falsed</b> <i>Swiss \n  LV95</i> easting and norting in <code>meter (2_600_000, 1_200_000)</code>\n  and origin at <code>Bern, Ch</code>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ltpTuples.ChLVEN2Tuple-class.html#unfalse2\" class=\"summary-sig-name\">unfalse2</a>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Return this projection as an <b>unfalsed</b> <a \n      href=\"pygeodesy.ltpTuples.ChLVYX2Tuple-class.html\" \n      class=\"link\">ChLVYX2Tuple</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__delattr__\">__delattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__getattr__\">__getattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__setattr__\">__setattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#items\">items</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iteritems\">iteritems</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iterunits\">iterunits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#reUnit\">reUnit</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toUnits\">toUnits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>tuple</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__eq__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__iter__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__rmul__</code>,\n      <code>count</code>,\n      <code>index</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__new__\">__new__</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"unfalse2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">unfalse2</span>&nbsp;(<span class=\"sig-arg\">self</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return this projection as an <b>unfalsed</b> <a \n  href=\"pygeodesy.ltpTuples.ChLVYX2Tuple-class.html\" \n  class=\"link\">ChLVYX2Tuple</a>.</p>\n  <dl class=\"fields\">\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.ltp.ChLV-class.html#unfalse2\" \n        class=\"link\">ChLV.unfalse2</a> for more information.\n      </p>\n</div></td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.ltpTuples.ChLVYX2Tuple-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.ltpTuples.ChLVyx2Tuple</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.ltpTuples-module.html\">Module&nbsp;ltpTuples</a> ::\n        Class&nbsp;ChLVyx2Tuple\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.ltpTuples.ChLVyx2Tuple-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class ChLVyx2Tuple</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n   object --+        \n            |        \n        tuple --+    \n                |    \n   object --+   |    \n            |   |    \n <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n                |    \n<a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a> --+\n                    |\n                   <strong class=\"uidshort\">ChLVyx2Tuple</strong>\n</pre>\n\n<hr />\n<p>2-Tuple <code>(y_LV03, x_LV03)</code> with <b>falsed</b> <i>Swiss \n  LV03</i> easting and norting in <code>meter (600_000, 200_000)</code> and\n  origin at <code>Bern, Ch</code>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ltpTuples.ChLVyx2Tuple-class.html#unfalse2\" class=\"summary-sig-name\">unfalse2</a>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Return this projection as an <b>unfalsed</b> <a \n      href=\"pygeodesy.ltpTuples.ChLVYX2Tuple-class.html\" \n      class=\"link\">ChLVYX2Tuple</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__delattr__\">__delattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__getattr__\">__getattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__setattr__\">__setattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#items\">items</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iteritems\">iteritems</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iterunits\">iterunits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#reUnit\">reUnit</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toUnits\">toUnits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>tuple</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__eq__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__iter__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__rmul__</code>,\n      <code>count</code>,\n      <code>index</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__new__\">__new__</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"unfalse2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">unfalse2</span>&nbsp;(<span class=\"sig-arg\">self</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return this projection as an <b>unfalsed</b> <a \n  href=\"pygeodesy.ltpTuples.ChLVYX2Tuple-class.html\" \n  class=\"link\">ChLVYX2Tuple</a>.</p>\n  <dl class=\"fields\">\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.ltp.ChLV-class.html#unfalse2\" \n        class=\"link\">ChLV.unfalse2</a> for more information.\n      </p>\n</div></td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.ltpTuples.Enu-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.ltpTuples.Enu</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.ltpTuples-module.html\">Module&nbsp;ltpTuples</a> ::\n        Class&nbsp;Enu\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.ltpTuples.Enu-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Enu</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n       object --+                        \n                |                        \n     <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+                    \n                    |                    \n     <a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+                \n                        |                \n<a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">vector3dBase.Vector3dBase</a> --+            \n                            |            \n            <a href=\"pygeodesy.vector3d.Vector3d-class.html\">vector3d.Vector3d</a> --+        \n                                |        \n                        _Vector3d --+    \n                                    |    \n                             <a href=\"pygeodesy.ltpTuples.XyzLocal-class.html\">XyzLocal</a> --+\n                                        |\n                                       <strong class=\"uidshort\">Enu</strong>\n</pre>\n\n<hr />\n<p>Local <code>Eeast-North-Up</code> (ENU) location in a <i>local tangent\n  plane</i>.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a \n        href=\"https://GSSC.ESA.int/navipedia/index.php/Transformations_between_ECEF_and_ENU_coordinates\"\n        target=\"_top\">East, North, Up (ENU)</a> coordinates.\n      </p>\n</div><!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ltpTuples.Enu-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">east_enu</span>,\n        <span class=\"summary-sig-arg\">north</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">up</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">ltp</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      New <a href=\"pygeodesy.ltpTuples.Enu-class.html\" \n      class=\"link\">Enu</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ltpTuples.Enu-class.html#toUvw\" class=\"summary-sig-name\">toUvw</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">location</span>,\n        <span class=\"summary-sig-arg\">Uvw</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**name_Uvw_kwds</span>)</span><br />\n      Get the <i>u, v, w</i> (UVW) components at a location.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.ltpTuples.XyzLocal-class.html\">XyzLocal</a></code></b>:\n      <code><a href=\"pygeodesy.ltpTuples.XyzLocal-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.ltpTuples.XyzLocal-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.ltpTuples.XyzLocal-class.html#toAer\">toAer</a></code>,\n      <code><a href=\"pygeodesy.ltpTuples.XyzLocal-class.html#toCartesian\">toCartesian</a></code>,\n      <code><a href=\"pygeodesy.ltpTuples.XyzLocal-class.html#toEnu\">toEnu</a></code>,\n      <code><a href=\"pygeodesy.ltpTuples.XyzLocal-class.html#toLatLon\">toLatLon</a></code>,\n      <code><a href=\"pygeodesy.ltpTuples.XyzLocal-class.html#toLocal9Tuple\">toLocal9Tuple</a></code>,\n      <code><a href=\"pygeodesy.ltpTuples.XyzLocal-class.html#toNed\">toNed</a></code>,\n      <code><a href=\"pygeodesy.ltpTuples.XyzLocal-class.html#toXyz\">toXyz</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>_Vector3d</code></b>:\n      <code>toRepr</code>,\n      <code>toStr</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.vector3d.Vector3d-class.html\">vector3d.Vector3d</a></code></b>:\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#bearing\">bearing</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#circin6\">circin6</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#circum3\">circum3</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#circum4_\">circum4_</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#iscolinearWith\">iscolinearWith</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#meeus2\">meeus2</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#nearestOn\">nearestOn</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#nearestOn6\">nearestOn6</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#parse\">parse</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#radii11\">radii11</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#soddy4\">soddy4</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#trilaterate2d2\">trilaterate2d2</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#trilaterate3d2\">trilaterate3d2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">vector3dBase.Vector3dBase</a></code></b>:\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__abs__\">__abs__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__add__\">__add__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__bool__\">__bool__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__ceil__\">__ceil__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__cmp__\">__cmp__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__div__\">__div__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__divmod__\">__divmod__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__eq__\">__eq__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__float__\">__float__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__floor__\">__floor__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__floordiv__\">__floordiv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__ge__\">__ge__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__gt__\">__gt__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__iadd__\">__iadd__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__idiv__\">__idiv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__ifloordiv__\">__ifloordiv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__imod__\">__imod__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__imul__\">__imul__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__int__\">__int__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__ipow__\">__ipow__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__isub__\">__isub__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__itruediv__\">__itruediv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__le__\">__le__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__long__\">__long__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__lt__\">__lt__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__mod__\">__mod__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__mul__\">__mul__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__ne__\">__ne__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__neg__\">__neg__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__nonzero__\">__nonzero__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__pos__\">__pos__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__pow__\">__pow__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__radd__\">__radd__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rdiv__\">__rdiv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rdivmod__\">__rdivmod__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rfloordiv__\">__rfloordiv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rmod__\">__rmod__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rmul__\">__rmul__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__round__\">__round__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rpow__\">__rpow__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rsub__\">__rsub__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rtruediv__\">__rtruediv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__sub__\">__sub__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__truediv__\">__truediv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__trunc__\">__trunc__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#angleTo\">angleTo</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#apply\">apply</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#bools\">bools</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#cmp\">cmp</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#cross\">cross</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#dividedBy\">dividedBy</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#dividedBy_\">dividedBy_</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#dot\">dot</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#equals\">equals</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#equirectangular\">equirectangular</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#fabs\">fabs</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#floats\">floats</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#floorDividedBy\">floorDividedBy</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#floorDividedBy_\">floorDividedBy_</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#intermediateTo\">intermediateTo</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#ints\">ints</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#isconjugateTo\">isconjugateTo</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#isequalTo\">isequalTo</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#minus\">minus</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#minus_\">minus_</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#negate\">negate</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#others\">others</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#plus\">plus</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#plus_\">plus_</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#pow\">pow</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#rotate\">rotate</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#rotateAround\">rotateAround</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#sum\">sum</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#times\">times</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#times_\">times_</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#to3xyz\">to3xyz</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#unit\">unit</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__repr__\">__repr__</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltpTuples.Enu-class.html#xyzLocal\" class=\"summary-name\">xyzLocal</a><br />\n      Get this ENU as an <a href=\"pygeodesy.ltpTuples.XyzLocal-class.html\" \n      class=\"link\">XyzLocal</a>.\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.ltpTuples.XyzLocal-class.html\">XyzLocal</a></code></b>:\n      <code><a href=\"pygeodesy.ltpTuples.XyzLocal-class.html#aer4\">aer4</a></code>,\n      <code><a href=\"pygeodesy.ltpTuples.XyzLocal-class.html#azimuth\">azimuth</a></code>,\n      <code><a href=\"pygeodesy.ltpTuples.XyzLocal-class.html#down\">down</a></code>,\n      <code><a href=\"pygeodesy.ltpTuples.XyzLocal-class.html#east\">east</a></code>,\n      <code><a href=\"pygeodesy.ltpTuples.XyzLocal-class.html#ecef\">ecef</a></code>,\n      <code><a href=\"pygeodesy.ltpTuples.XyzLocal-class.html#elevation\">elevation</a></code>,\n      <code><a href=\"pygeodesy.ltpTuples.XyzLocal-class.html#enu4\">enu4</a></code>,\n      <code><a href=\"pygeodesy.ltpTuples.XyzLocal-class.html#groundrange\">groundrange</a></code>,\n      <code><a href=\"pygeodesy.ltpTuples.XyzLocal-class.html#ltp\">ltp</a></code>,\n      <code><a href=\"pygeodesy.ltpTuples.XyzLocal-class.html#ned4\">ned4</a></code>,\n      <code><a href=\"pygeodesy.ltpTuples.XyzLocal-class.html#north\">north</a></code>,\n      <code><a href=\"pygeodesy.ltpTuples.XyzLocal-class.html#slantrange\">slantrange</a></code>,\n      <code><a href=\"pygeodesy.ltpTuples.XyzLocal-class.html#up\">up</a></code>,\n      <code><a href=\"pygeodesy.ltpTuples.XyzLocal-class.html#xyz4\">xyz4</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">vector3dBase.Vector3dBase</a></code></b>:\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#crosserrors\">crosserrors</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#euclid\">euclid</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#homogeneous\">homogeneous</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#length\">length</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#length2\">length2</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#x\">x</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#x2y2z2\">x2y2z2</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#x2y2z23\">x2y2z23</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#xyz\">xyz</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#xyz3\">xyz3</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#y\">y</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#z\">z</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">east_enu</span>,\n        <span class=\"sig-arg\">north</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">up</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">ltp</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.ltpTuples.Enu-class.html\" \n  class=\"link\">Enu</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>east_enu</code></strong> - Scalar East component (<code>meter</code>) or a previous \n          <i>local</i> instance (<a \n          href=\"pygeodesy.ltpTuples.Enu-class.html\" class=\"link\">Enu</a>, \n          <a href=\"pygeodesy.ltpTuples.Enu4Tuple-class.html\" \n          class=\"link\">Enu4Tuple</a>, <a \n          href=\"pygeodesy.ltpTuples.Aer-class.html\" class=\"link\">Aer</a>, \n          <a href=\"pygeodesy.ltpTuples.Aer4Tuple-class.html\" \n          class=\"link\">Aer4Tuple</a>, <a \n          href=\"pygeodesy.ltpTuples.Local9Tuple-class.html\" \n          class=\"link\">Local9Tuple</a>, <a \n          href=\"pygeodesy.ltpTuples.Ned-class.html\" class=\"link\">Ned</a>, \n          <a href=\"pygeodesy.ltpTuples.Ned4Tuple-class.html\" \n          class=\"link\">Ned4Tuple</a>, <a \n          href=\"pygeodesy.ltpTuples.XyzLocal-class.html\" \n          class=\"link\">XyzLocal</a> or <a \n          href=\"pygeodesy.ltpTuples.Xyz4Tuple-class.html\" \n          class=\"link\">Xyz4Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>north</code></strong> - Scalar North component (<code>meter</code>), iff \n          <b><code>east_enu</code></b> is <code>meter</code>, ignored \n          otherwise.</li>\n        <li><strong class=\"pname\"><code>up</code></strong> - Scalar Up component (<code>meter</code>, normal from the surface \n          of the ellipsoid or sphere), iff <b><code>east_enu</code></b> is \n          <code>meter</code>, ignored otherwise.</li>\n        <li><strong class=\"pname\"><code>ltp</code></strong> - The <i>local tangent plane</i>, (geodetic) origin (<a \n          href=\"pygeodesy.ltp.Ltp-class.html\" class=\"link\">Ltp</a>, <a \n          href=\"pygeodesy.ltp.LocalCartesian-class.html\" \n          class=\"link\">LocalCartesian</a>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>east_enu</code></b> or <b><code>ltp</code></b>.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.UnitError-class.html\">UnitError</a></strong></code> - Invalid <b><code>east_enu</code></b>, <b><code>north</code></b> or \n        <b><code>up</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toUvw\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toUvw</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">location</span>,\n        <span class=\"sig-arg\">Uvw</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**name_Uvw_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Get the <i>u, v, w</i> (UVW) components at a location.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>location</code></strong> - The geodetic (<code>LatLon</code>) or geocentric \n          (<code>Cartesian</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>) location, like a Point-Of-View.</li>\n        <li><strong class=\"pname\"><code>Uvw</code></strong> - Class to return UWV (<a href=\"pygeodesy.ltpTuples.Uvw-class.html\"\n          class=\"link\">Uvw</a>) or <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>name_Uvw_kwds</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>) and \n          optionally, additional <b><a \n          href=\"pygeodesy.ltpTuples.Uvw-class.html\" \n          class=\"link\">Uvw</a></b> keyword arguments, ignored if \n          <code><b>Uvw</b> is None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <b><code>Uvw</code></b> instance or a <a \n          href=\"pygeodesy.ltpTuples.Uvw3Tuple-class.html\" \n          class=\"link\">Uvw3Tuple</a><code>(u, v, w)</code> if \n          <code><b>Uvw</b> is None</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>location</code></b> or \n        <b><code>name_Uvw_kwds</code></b> item.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"https://PyPI.org/project/pymap3d\" \n        target=\"_top\">lookAtSpheroid</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<br />\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"xyzLocal\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">xyzLocal</h3>\n  <p>Get this ENU as an <a href=\"pygeodesy.ltpTuples.XyzLocal-class.html\" \n  class=\"link\">XyzLocal</a>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">xyzLocal(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get this ENU as an <a href=\"pygeodesy.ltpTuples.XyzLocal-class.html\" \nclass=\"link\">XyzLocal</a>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.ltpTuples.Enu4Tuple-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.ltpTuples.Enu4Tuple</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.ltpTuples-module.html\">Module&nbsp;ltpTuples</a> ::\n        Class&nbsp;Enu4Tuple\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.ltpTuples.Enu4Tuple-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Enu4Tuple</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n   object --+            \n            |            \n        tuple --+        \n                |        \n   object --+   |        \n            |   |        \n <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+        \n                |        \n<a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a> --+    \n                    |    \n           _Abc4Tuple --+\n                        |\n                       <strong class=\"uidshort\">Enu4Tuple</strong>\n</pre>\n\n<hr />\n<p>4-Tuple <code>(east, north, up, ltp)</code>, in <code>meter</code> \n  except <code>ltp</code>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__delattr__\">__delattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__getattr__\">__getattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__setattr__\">__setattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#items\">items</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iteritems\">iteritems</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iterunits\">iterunits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#reUnit\">reUnit</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toUnits\">toUnits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>tuple</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__eq__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__iter__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__rmul__</code>,\n      <code>count</code>,\n      <code>index</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__new__\">__new__</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltpTuples.Enu4Tuple-class.html#xyzLocal\" class=\"summary-name\">xyzLocal</a><br />\n      Get this <a href=\"pygeodesy.ltpTuples.Enu4Tuple-class.html\" \n      class=\"link\">Enu4Tuple</a> as an <a \n      href=\"pygeodesy.ltpTuples.XyzLocal-class.html\" \n      class=\"link\">XyzLocal</a>.\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"xyzLocal\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">xyzLocal</h3>\n  <p>Get this <a href=\"pygeodesy.ltpTuples.Enu4Tuple-class.html\" \n  class=\"link\">Enu4Tuple</a> as an <a \n  href=\"pygeodesy.ltpTuples.XyzLocal-class.html\" \n  class=\"link\">XyzLocal</a>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">xyzLocal(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get this <a href=\"pygeodesy.ltpTuples.Enu4Tuple-class.html\" \nclass=\"link\">Enu4Tuple</a> as an <a \nhref=\"pygeodesy.ltpTuples.XyzLocal-class.html\" class=\"link\">XyzLocal</a>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.ltpTuples.Footprint5Tuple-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.ltpTuples.Footprint5Tuple</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.ltpTuples-module.html\">Module&nbsp;ltpTuples</a> ::\n        Class&nbsp;Footprint5Tuple\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.ltpTuples.Footprint5Tuple-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Footprint5Tuple</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n   object --+        \n            |        \n        tuple --+    \n                |    \n   object --+   |    \n            |   |    \n <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n                |    \n<a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a> --+\n                    |\n                   <strong class=\"uidshort\">Footprint5Tuple</strong>\n</pre>\n\n<hr />\n<p>5-Tuple <code>(center, upperleft, upperight, loweright, \n  lowerleft)</code> with the <code>center</code> and 4 corners of the \n  <i>local</i> projection of a <code>Frustum</code>, each an <a \n  href=\"pygeodesy.ltpTuples.Xyz4Tuple-class.html\" \n  class=\"link\">Xyz4Tuple</a>, <a \n  href=\"pygeodesy.ltpTuples.XyzLocal-class.html\" class=\"link\">XyzLocal</a>,\n  <code>LatLon</code>, etc.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Note:</strong>\n        Misspelling of <code>upperight</code> and <code>loweright</code> is\n        <i>intentional</i>.\n      </p>\n</div><!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ltpTuples.Footprint5Tuple-class.html#toLatLon5\" class=\"summary-sig-name\">toLatLon5</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">ltp</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">LatLon</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**name_LatLon_kwds</span>)</span><br />\n      Convert this footprint's <code>center</code> and 4 corners to \n      <i>geodetic</i> <code>LatLon(lat, lon, height)</code>s, \n      <code>LatLon3Tuple</code>s or <code>LatLon4Tuple</code>s.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ltpTuples.Footprint5Tuple-class.html#xyzLocal5\" class=\"summary-sig-name\">xyzLocal5</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">ltp</span>=<span class=\"summary-sig-default\">None</span>)</span><br />\n      Return this footprint's <code>center</code> and 4 corners as 5 <a \n      href=\"pygeodesy.ltpTuples.XyzLocal-class.html\" \n      class=\"link\">XyzLocal</a>s.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__delattr__\">__delattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__getattr__\">__getattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__setattr__\">__setattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#items\">items</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iteritems\">iteritems</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iterunits\">iterunits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#reUnit\">reUnit</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toUnits\">toUnits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>tuple</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__eq__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__iter__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__rmul__</code>,\n      <code>count</code>,\n      <code>index</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__new__\">__new__</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"toLatLon5\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toLatLon5</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">ltp</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">LatLon</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**name_LatLon_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert this footprint's <code>center</code> and 4 corners to \n  <i>geodetic</i> <code>LatLon(lat, lon, height)</code>s, \n  <code>LatLon3Tuple</code>s or <code>LatLon4Tuple</code>s.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>ltp</code></strong> - The <i>local tangent plane</i> (<a \n          href=\"pygeodesy.ltp.Ltp-class.html\" class=\"link\">Ltp</a>), \n          overriding this footprint's <code>center</code> or \n          <code>frustrum</code> <code>ltp</code>.</li>\n        <li><strong class=\"pname\"><code>LatLon</code></strong> - Optional <i>geodetic</i> class (<code>LatLon</code>) or \n          <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>name_LatLon_kwds</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>) and \n          optionally, additional <b><code>LatLon</code></b> keyword \n          arguments, ignored if <code><b>LatLon</b> is None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.ltpTuples.Footprint5Tuple-class.html\" \n          class=\"link\">Footprint5Tuple</a> of 5 <code><b>LatLon</b>(lat, \n          lon, **<b>name_LatLon_kwds</b>)</code> instances or if \n          <code><b>LatLon</b> is None</code>, 5 <a \n          href=\"pygeodesy.namedTuples.LatLon3Tuple-class.html\" \n          class=\"link\">LatLon3Tuple</a><code>(lat, lon, height)</code>s \n          respectively 5 <a \n          href=\"pygeodesy.namedTuples.LatLon4Tuple-class.html\" \n          class=\"link\">LatLon4Tuple</a><code>(lat, lon, height, \n          datum)</code>s depending on whether keyword argument \n          <code>datum</code> is un-/specified.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>ltp</code></b>, <b><code>LatLon</code></b> or \n        <b><code>name_LatLon_kwds</code></b> item.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Methods <a href=\"pygeodesy.ltpTuples.XyzLocal-class.html#toLatLon\" \n        class=\"link\">XyzLocal.toLatLon</a> and <a \n        href=\"pygeodesy.ltpTuples.Footprint5Tuple-class.html#xyzLocal5\" \n        class=\"link\">Footprint5Tuple.xyzLocal5</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"xyzLocal5\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">xyzLocal5</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">ltp</span>=<span class=\"sig-default\">None</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return this footprint's <code>center</code> and 4 corners as 5 <a \n  href=\"pygeodesy.ltpTuples.XyzLocal-class.html\" \n  class=\"link\">XyzLocal</a>s.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>ltp</code></strong> - The <i>local tangent plane</i> (<a \n          href=\"pygeodesy.ltp.Ltp-class.html\" class=\"link\">Ltp</a>), \n          overriding the {center} and corner <code>ltp</code>s.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.ltpTuples.Footprint5Tuple-class.html\" \n          class=\"link\">Footprint5Tuple</a> of 5 <a \n          href=\"pygeodesy.ltpTuples.XyzLocal-class.html\" \n          class=\"link\">XyzLocal</a> instances.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>ltp</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.ltpTuples.Local9Tuple-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.ltpTuples.Local9Tuple</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.ltpTuples-module.html\">Module&nbsp;ltpTuples</a> ::\n        Class&nbsp;Local9Tuple\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.ltpTuples.Local9Tuple-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Local9Tuple</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n   object --+        \n            |        \n        tuple --+    \n                |    \n   object --+   |    \n            |   |    \n <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n                |    \n<a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a> --+\n                    |\n                   <strong class=\"uidshort\">Local9Tuple</strong>\n</pre>\n\n<dl><dt>Known Subclasses:</dt>\n<dd>\n      <ul class=\"subclass-list\">\n<li><a href=\"pygeodesy.ltpTuples.ChLV9Tuple-class.html\">ChLV9Tuple</a></li>  </ul>\n</dd></dl>\n\n<hr />\n<p>9-Tuple <code>(x, y, z, lat, lon, height, ltp, ecef, M)</code> with \n  <i>local</i> <code>x</code>, <code>y</code>, <code>z</code> all in \n  <code>meter</code>, <i>geodetic</i> <code>lat</code>, <code>lon</code>, \n  <code>height</code>, <i>local tangent plane</i> <code>ltp</code> (<a \n  href=\"pygeodesy.ltp.Ltp-class.html\" class=\"link\">Ltp</a>), \n  <code>ecef</code> (<a href=\"pygeodesy.ecef.Ecef9Tuple-class.html\" \n  class=\"link\">Ecef9Tuple</a>) with <i>geocentric</i> <code>x</code>, \n  <code>y</code>, <code>z</code>, <i>geodetic</i> <code>lat</code>, \n  <code>lon</code>, <code>height</code> and <i>concatenated</i> rotation \n  matrix <code>M</code> (<a href=\"pygeodesy.ecef.EcefMatrix-class.html\" \n  class=\"link\">EcefMatrix</a>) or <code>None</code>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ltpTuples.Local9Tuple-class.html#toAer\" class=\"summary-sig-name\">toAer</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">Aer</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**name_Aer_kwds</span>)</span><br />\n      Get the <i>local</i> <i>Azimuth, Elevation, slant Range</i> (AER) \n      components.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ltpTuples.Local9Tuple-class.html#toCartesian\" class=\"summary-sig-name\">toCartesian</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">Cartesian</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**name_Cartesian_kwds</span>)</span><br />\n      Convert this <i>local</i> to <i>geocentric</i> <code>(x, y, z)</code>\n      (ECEF).</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ltpTuples.Local9Tuple-class.html#toEnu\" class=\"summary-sig-name\">toEnu</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">Enu</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**name_Enu_kwds</span>)</span><br />\n      Get the <i>local</i> <i>East, North, Up</i> (ENU) components.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ltpTuples.Local9Tuple-class.html#toLatLon\" class=\"summary-sig-name\">toLatLon</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">LatLon</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**name_LatLon_kwds</span>)</span><br />\n      Convert this <i>local</i> to <i>geodetic</i> <code>(lat, lon, \n      height)</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ltpTuples.Local9Tuple-class.html#toNed\" class=\"summary-sig-name\">toNed</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">Ned</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**name_Ned_kwds</span>)</span><br />\n      Get the <i>local</i> <i>North, East, Down</i> (NED) components.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ltpTuples.Local9Tuple-class.html#toXyz\" class=\"summary-sig-name\">toXyz</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">Xyz</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**name_Xyz_kwds</span>)</span><br />\n      Get the <i>local</i> <i>X, Y, Z</i> (XYZ) components.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__delattr__\">__delattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__getattr__\">__getattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__setattr__\">__setattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#items\">items</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iteritems\">iteritems</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iterunits\">iterunits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#reUnit\">reUnit</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toUnits\">toUnits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>tuple</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__eq__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__iter__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__rmul__</code>,\n      <code>count</code>,\n      <code>index</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__new__\">__new__</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltpTuples.Local9Tuple-class.html#azimuth\" class=\"summary-name\">azimuth</a><br />\n      Get the <i>local</i> Azimuth, bearing from North \n      (<code>degrees360</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltpTuples.Local9Tuple-class.html#down\" class=\"summary-name\">down</a><br />\n      Get the <i>local</i> Down, <code>-z</code> component \n      (<code>meter</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltpTuples.Local9Tuple-class.html#east\" class=\"summary-name\">east</a><br />\n      Get the <i>local</i> East, <code>x</code> component \n      (<code>meter</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltpTuples.Local9Tuple-class.html#elevation\" class=\"summary-name\">elevation</a><br />\n      Get the <i>local</i> Elevation, tilt <i>above</i> horizon \n      (<code>degrees90</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltpTuples.Local9Tuple-class.html#groundrange\" class=\"summary-name\">groundrange</a><br />\n      Get the <i>local</i> ground range, distance (<code>meter</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltpTuples.Local9Tuple-class.html#lam\" class=\"summary-name\">lam</a><br />\n      Get the <i>geodetic</i> longitude in <code>radians</code> \n      (<code>float</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltpTuples.Local9Tuple-class.html#latlon\" class=\"summary-name\">latlon</a><br />\n      Get the <i>geodetic</i> lat-, longitude in <code>degrees</code> (<a \n      href=\"pygeodesy.namedTuples.LatLon2Tuple-class.html\" \n      class=\"link\">LatLon2Tuple</a><code>(lat, lon)</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltpTuples.Local9Tuple-class.html#latlonheight\" class=\"summary-name\">latlonheight</a><br />\n      Get the <i>geodetic</i> lat-, longitude in <code>degrees</code> and \n      height (<a href=\"pygeodesy.namedTuples.LatLon3Tuple-class.html\" \n      class=\"link\">LatLon3Tuple</a><code>(lat, lon, height)</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltpTuples.Local9Tuple-class.html#north\" class=\"summary-name\">north</a><br />\n      Get the <i>local</i> North, <code>y</code> component \n      (<code>meter</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltpTuples.Local9Tuple-class.html#phi\" class=\"summary-name\">phi</a><br />\n      Get the <i>geodetic</i> latitude in <code>radians</code> \n      (<code>float</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltpTuples.Local9Tuple-class.html#philam\" class=\"summary-name\">philam</a><br />\n      Get the <i>geodetic</i> lat-, longitude in <code>radians</code> (<a \n      href=\"pygeodesy.namedTuples.PhiLam2Tuple-class.html\" \n      class=\"link\">PhiLam2Tuple</a><code>(phi, lam)</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltpTuples.Local9Tuple-class.html#philamheight\" class=\"summary-name\">philamheight</a><br />\n      Get the <i>geodetic</i> lat-, longitude in <code>radians</code> and \n      height (<a href=\"pygeodesy.namedTuples.PhiLam3Tuple-class.html\" \n      class=\"link\">PhiLam3Tuple</a><code>(phi, lam, height)</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltpTuples.Local9Tuple-class.html#slantrange\" class=\"summary-name\">slantrange</a><br />\n      Get the <i>local</i> slant Range, distance (<code>meter</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltpTuples.Local9Tuple-class.html#up\" class=\"summary-name\">up</a><br />\n      Get the <i>local</i> Up, <code>z</code> component \n      (<code>meter</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltpTuples.Local9Tuple-class.html#xyz\" class=\"summary-name\">xyz</a><br />\n      Get the <i>local</i> <code>(X, Y, Z)</code> components (<a \n      href=\"pygeodesy.namedTuples.Vector3Tuple-class.html\" \n      class=\"link\">Vector3Tuple</a><code>(x, y, z)</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltpTuples.Local9Tuple-class.html#xyzLocal\" class=\"summary-name\">xyzLocal</a><br />\n      Get this <a href=\"pygeodesy.ltpTuples.Local9Tuple-class.html\" \n      class=\"link\">Local9Tuple</a> as an <a \n      href=\"pygeodesy.ltpTuples.XyzLocal-class.html\" \n      class=\"link\">XyzLocal</a>.\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"toAer\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toAer</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">Aer</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**name_Aer_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Get the <i>local</i> <i>Azimuth, Elevation, slant Range</i> (AER) \n  components.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>Aer</code></strong> - Class to return AER (<a href=\"pygeodesy.ltpTuples.Aer-class.html\"\n          class=\"link\">Aer</a>) or <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>name_Aer_kwds</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>) and \n          optionally, additional <b><a \n          href=\"pygeodesy.ltpTuples.Aer-class.html\" \n          class=\"link\">Aer</a></b> keyword arguments, ignored if \n          <code><b>Aer</b> is None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>An <b><code>Aer</code></b> instance or an <a \n          href=\"pygeodesy.ltpTuples.Aer4Tuple-class.html\" \n          class=\"link\">Aer4Tuple</a><code>(azimuth, elevation, slantrange, \n          ltp)</code> if <code><b>Aer</b> is None</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>Aer</code></b> or \n        <b><code>name_Aer_kwds</code></b> item.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toCartesian\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toCartesian</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">Cartesian</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**name_Cartesian_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert this <i>local</i> to <i>geocentric</i> <code>(x, y, z)</code> \n  (ECEF).</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>Cartesian</code></strong> - Optional <i>geocentric</i> class to return <code>(x, y, z)</code>\n          (<code>Cartesian</code>) or <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>name_Cartesian_kwds</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>) and \n          optionally, additional <b><code>Cartesian</code></b> keyword \n          arguments, ignored if <code><b>Cartesian</b> is None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <code><b>Cartesian</b>(x, y, z, **<b>Cartesian_kwds</b>)</code>\n          instance or a <a \n          href=\"pygeodesy.namedTuples.Vector4Tuple-class.html\" \n          class=\"link\">Vector4Tuple</a><code>(x, y, z, h)</code> if \n          <code><b>Cartesian</b> is None</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>Cartesian</code></b> or \n        <b><code>name_Cartesian_kwds</code></b> item.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toEnu\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toEnu</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">Enu</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**name_Enu_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Get the <i>local</i> <i>East, North, Up</i> (ENU) components.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>Enu</code></strong> - Class to return ENU (<a href=\"pygeodesy.ltpTuples.Enu-class.html\"\n          class=\"link\">Enu</a>) or <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>name_Enu_kwds</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>) and \n          optionally, additional <b><a \n          href=\"pygeodesy.ltpTuples.Enu-class.html\" \n          class=\"link\">Enu</a></b> keyword arguments, ignored if \n          <code><b>Enu</b> is None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>ENU as an <a href=\"pygeodesy.ltpTuples.Enu-class.html\" \n          class=\"link\">Enu</a> instance or if <code><b>Enu</b> is \n          None</code>, an <a \n          href=\"pygeodesy.ltpTuples.Enu4Tuple-class.html\" \n          class=\"link\">Enu4Tuple</a><code>(east, north, up, ltp)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>Enu</code></b> or \n        <b><code>name_Enu_kwds</code></b> item.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toLatLon\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toLatLon</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">LatLon</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**name_LatLon_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert this <i>local</i> to <i>geodetic</i> <code>(lat, lon, \n  height)</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>LatLon</code></strong> - Optional <i>geodetic</i> class to return <code>(lat, lon, \n          height)</code> (<code>LatLon</code>) or <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>name_LatLon_kwds</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>) and \n          optionally, additional <b><code>LatLon</code></b> keyword \n          arguments, ignored if <code><b>LatLon</b> is None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>An <code><b>LatLon</b>(lat, lon, **<b>LatLon_kwds</b>)</code> \n          instance or if <code><b>LatLon</b> is None</code>, a <a \n          href=\"pygeodesy.namedTuples.LatLon4Tuple-class.html\" \n          class=\"link\">LatLon4Tuple</a><code>(lat, lon, height, \n          datum)</code> or <a \n          href=\"pygeodesy.namedTuples.LatLon3Tuple-class.html\" \n          class=\"link\">LatLon3Tuple</a><code>(lat, lon, height)</code> if \n          <code>datum</code> is specified or not.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>LatLon</code></b> or \n        <b><code>name_LatLon_kwds</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toNed\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toNed</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">Ned</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**name_Ned_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Get the <i>local</i> <i>North, East, Down</i> (NED) components.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>Ned</code></strong> - Class to return NED (<a href=\"pygeodesy.ltpTuples.Ned-class.html\"\n          class=\"link\">Ned</a>) or <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>name_Ned_kwds</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>) and \n          optionally, additional <b><a \n          href=\"pygeodesy.ltpTuples.Ned-class.html\" \n          class=\"link\">Ned</a></b> keyword arguments, ignored if \n          <code><b>Ned</b> is None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>An <b><code>Ned</code></b> instance or an <a \n          href=\"pygeodesy.ltpTuples.Ned4Tuple-class.html\" \n          class=\"link\">Ned4Tuple</a><code>(north, east, down, ltp)</code> \n          if <code><b>Ned</b> is None</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>Ned</code></b> or \n        <b><code>name_Ned_kwds</code></b> item.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toXyz\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toXyz</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">Xyz</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**name_Xyz_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Get the <i>local</i> <i>X, Y, Z</i> (XYZ) components.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>Xyz</code></strong> - Class to return XYZ (<a \n          href=\"pygeodesy.ltpTuples.XyzLocal-class.html\" \n          class=\"link\">XyzLocal</a>) or <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>name_Xyz_kwds</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>) and \n          optionally, additional <b><code>Xyz</code></b> keyword arguments,\n          ignored if <code><b>Xyz</b> is None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>An <b><code>Xyz</code></b> instance or an <a \n          href=\"pygeodesy.ltpTuples.Xyz4Tuple-class.html\" \n          class=\"link\">Xyz4Tuple</a><code>(x, y, z, ltp)</code> if \n          <code><b>Xyz</b> is None</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>Xyz</code></b> or \n        <b><code>name_Xyz_kwds</code></b> item.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"azimuth\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">azimuth</h3>\n  <p>Get the <i>local</i> Azimuth, bearing from North \n  (<code>degrees360</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">azimuth(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <i>local</i> Azimuth, bearing from North (<code>degrees360</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"down\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">down</h3>\n  <p>Get the <i>local</i> Down, <code>-z</code> component \n  (<code>meter</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">down(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <i>local</i> Down, <code>-z</code> component (<code>meter</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"east\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">east</h3>\n  <p>Get the <i>local</i> East, <code>x</code> component \n  (<code>meter</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">east(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <i>local</i> East, <code>x</code> component (<code>meter</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"elevation\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">elevation</h3>\n  <p>Get the <i>local</i> Elevation, tilt <i>above</i> horizon \n  (<code>degrees90</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">elevation(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <i>local</i> Elevation, tilt <i>above</i> horizon \n(<code>degrees90</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"groundrange\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">groundrange</h3>\n  <p>Get the <i>local</i> ground range, distance (<code>meter</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">groundrange(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <i>local</i> ground range, distance (<code>meter</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"lam\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">lam</h3>\n  <p>Get the <i>geodetic</i> longitude in <code>radians</code> \n  (<code>float</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">lam(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <i>geodetic</i> longitude in <code>radians</code> \n(<code>float</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"latlon\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">latlon</h3>\n  <p>Get the <i>geodetic</i> lat-, longitude in <code>degrees</code> (<a \n  href=\"pygeodesy.namedTuples.LatLon2Tuple-class.html\" \n  class=\"link\">LatLon2Tuple</a><code>(lat, lon)</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">latlon(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <i>geodetic</i> lat-, longitude in <code>degrees</code> (<a \nhref=\"pygeodesy.namedTuples.LatLon2Tuple-class.html\" \nclass=\"link\">LatLon2Tuple</a><code>(lat, lon)</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"latlonheight\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">latlonheight</h3>\n  <p>Get the <i>geodetic</i> lat-, longitude in <code>degrees</code> and \n  height (<a href=\"pygeodesy.namedTuples.LatLon3Tuple-class.html\" \n  class=\"link\">LatLon3Tuple</a><code>(lat, lon, height)</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">latlonheight(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <i>geodetic</i> lat-, longitude in <code>degrees</code> and height \n(<a href=\"pygeodesy.namedTuples.LatLon3Tuple-class.html\" \nclass=\"link\">LatLon3Tuple</a><code>(lat, lon, height)</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"north\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">north</h3>\n  <p>Get the <i>local</i> North, <code>y</code> component \n  (<code>meter</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">north(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <i>local</i> North, <code>y</code> component (<code>meter</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"phi\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">phi</h3>\n  <p>Get the <i>geodetic</i> latitude in <code>radians</code> \n  (<code>float</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">phi(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <i>geodetic</i> latitude in <code>radians</code> \n(<code>float</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"philam\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">philam</h3>\n  <p>Get the <i>geodetic</i> lat-, longitude in <code>radians</code> (<a \n  href=\"pygeodesy.namedTuples.PhiLam2Tuple-class.html\" \n  class=\"link\">PhiLam2Tuple</a><code>(phi, lam)</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">philam(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <i>geodetic</i> lat-, longitude in <code>radians</code> (<a \nhref=\"pygeodesy.namedTuples.PhiLam2Tuple-class.html\" \nclass=\"link\">PhiLam2Tuple</a><code>(phi, lam)</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"philamheight\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">philamheight</h3>\n  <p>Get the <i>geodetic</i> lat-, longitude in <code>radians</code> and \n  height (<a href=\"pygeodesy.namedTuples.PhiLam3Tuple-class.html\" \n  class=\"link\">PhiLam3Tuple</a><code>(phi, lam, height)</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">philamheight(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <i>geodetic</i> lat-, longitude in <code>radians</code> and height \n(<a href=\"pygeodesy.namedTuples.PhiLam3Tuple-class.html\" \nclass=\"link\">PhiLam3Tuple</a><code>(phi, lam, height)</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"slantrange\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">slantrange</h3>\n  <p>Get the <i>local</i> slant Range, distance (<code>meter</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">slantrange(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <i>local</i> slant Range, distance (<code>meter</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"up\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">up</h3>\n  <p>Get the <i>local</i> Up, <code>z</code> component \n  (<code>meter</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">up(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <i>local</i> Up, <code>z</code> component (<code>meter</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"xyz\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">xyz</h3>\n  <p>Get the <i>local</i> <code>(X, Y, Z)</code> components (<a \n  href=\"pygeodesy.namedTuples.Vector3Tuple-class.html\" \n  class=\"link\">Vector3Tuple</a><code>(x, y, z)</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">xyz(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <i>local</i> <code>(X, Y, Z)</code> components (<a \nhref=\"pygeodesy.namedTuples.Vector3Tuple-class.html\" \nclass=\"link\">Vector3Tuple</a><code>(x, y, z)</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"xyzLocal\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">xyzLocal</h3>\n  <p>Get this <a href=\"pygeodesy.ltpTuples.Local9Tuple-class.html\" \n  class=\"link\">Local9Tuple</a> as an <a \n  href=\"pygeodesy.ltpTuples.XyzLocal-class.html\" \n  class=\"link\">XyzLocal</a>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">xyzLocal(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get this <a href=\"pygeodesy.ltpTuples.Local9Tuple-class.html\" \nclass=\"link\">Local9Tuple</a> as an <a \nhref=\"pygeodesy.ltpTuples.XyzLocal-class.html\" class=\"link\">XyzLocal</a>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.ltpTuples.Los-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.ltpTuples.Los</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.ltpTuples-module.html\">Module&nbsp;ltpTuples</a> ::\n        Class&nbsp;Los\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.ltpTuples.Los-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Los</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+                \n           |                \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+            \n               |            \n<a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+        \n                   |        \n            <a href=\"pygeodesy.ltpTuples._AbcBase-class.html\">_AbcBase</a> --+    \n                       |    \n                     <a href=\"pygeodesy.ltpTuples.Aer-class.html\">Aer</a> --+\n                           |\n                          <strong class=\"uidshort\">Los</strong>\n</pre>\n\n<hr />\n<p>A Line-Of-Sight (LOS) from a <code>LatLon</code> or \n  <code>Cartesian</code> location.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ltpTuples.Los-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">azimuth_aer</span>,\n        <span class=\"summary-sig-arg\">elevation</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      New <a href=\"pygeodesy.ltpTuples.Los-class.html\" \n      class=\"link\">Los</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ltpTuples.Los-class.html#toUvw\" class=\"summary-sig-name\">toUvw</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">location</span>,\n        <span class=\"summary-sig-arg\">Uvw</span>=<span class=\"summary-sig-default\">&lt;class 'pygeodesy.ltpTuples.Uvw'&gt;</span>,\n        <span class=\"summary-sig-arg\">**name_Uvw_kwds</span>)</span><br />\n      Get this LOS' <i>target</i> (UVW) components from a location.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ltpTuples.Los-class.html#toEnu\" class=\"summary-sig-name\">toEnu</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">Enu</span>=<span class=\"summary-sig-default\">&lt;class 'pygeodesy.ltpTuples.Enu'&gt;</span>,\n        <span class=\"summary-sig-arg\">**name_Enu_kwds</span>)</span><br />\n      Get this LOS as <i>East, North, Up</i> (ENU) components.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.ltpTuples.Aer-class.html\">Aer</a></code></b>:\n      <code><a href=\"pygeodesy.ltpTuples.Aer-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.ltpTuples.Aer-class.html#toStr\">toStr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.ltpTuples._AbcBase-class.html\">_AbcBase</a></code></b>:\n      <code><a href=\"pygeodesy.ltpTuples._AbcBase-class.html#toAer\">toAer</a></code>,\n      <code><a href=\"pygeodesy.ltpTuples._AbcBase-class.html#toNed\">toNed</a></code>,\n      <code><a href=\"pygeodesy.ltpTuples._AbcBase-class.html#toXyz\">toXyz</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#others\">others</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.ltpTuples.Aer-class.html\">Aer</a></code></b>:\n      <code><a href=\"pygeodesy.ltpTuples.Aer-class.html#aer4\">aer4</a></code>,\n      <code><a href=\"pygeodesy.ltpTuples.Aer-class.html#azimuth\">azimuth</a></code>,\n      <code><a href=\"pygeodesy.ltpTuples.Aer-class.html#down\">down</a></code>,\n      <code><a href=\"pygeodesy.ltpTuples.Aer-class.html#east\">east</a></code>,\n      <code><a href=\"pygeodesy.ltpTuples.Aer-class.html#elevation\">elevation</a></code>,\n      <code><a href=\"pygeodesy.ltpTuples.Aer-class.html#groundrange\">groundrange</a></code>,\n      <code><a href=\"pygeodesy.ltpTuples.Aer-class.html#north\">north</a></code>,\n      <code><a href=\"pygeodesy.ltpTuples.Aer-class.html#slantrange\">slantrange</a></code>,\n      <code><a href=\"pygeodesy.ltpTuples.Aer-class.html#up\">up</a></code>,\n      <code><a href=\"pygeodesy.ltpTuples.Aer-class.html#x\">x</a></code>,\n      <code><a href=\"pygeodesy.ltpTuples.Aer-class.html#xyz4\">xyz4</a></code>,\n      <code><a href=\"pygeodesy.ltpTuples.Aer-class.html#y\">y</a></code>,\n      <code><a href=\"pygeodesy.ltpTuples.Aer-class.html#z\">z</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.ltpTuples._AbcBase-class.html\">_AbcBase</a></code></b>:\n      <code><a href=\"pygeodesy.ltpTuples._AbcBase-class.html#ltp\">ltp</a></code>,\n      <code><a href=\"pygeodesy.ltpTuples._AbcBase-class.html#xyz\">xyz</a></code>,\n      <code><a href=\"pygeodesy.ltpTuples._AbcBase-class.html#xyz3\">xyz3</a></code>,\n      <code><a href=\"pygeodesy.ltpTuples._AbcBase-class.html#xyzLocal\">xyzLocal</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">azimuth_aer</span>,\n        <span class=\"sig-arg\">elevation</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.ltpTuples.Los-class.html\" \n  class=\"link\">Los</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>azimuth_aer</code></strong> - Scalar azimuth, bearing from North (compass <code>degrees</code>)\n          or a previous instance (<a \n          href=\"pygeodesy.ltpTuples.Aer-class.html\" class=\"link\">Aer</a>, \n          <a href=\"pygeodesy.ltpTuples.Aer4Tuple-class.html\" \n          class=\"link\">Aer4Tuple</a>, <a \n          href=\"pygeodesy.ltpTuples.Enu-class.html\" class=\"link\">Enu</a>, \n          <a href=\"pygeodesy.ltpTuples.Enu4Tuple-class.html\" \n          class=\"link\">Enu4Tuple</a> or <a \n          href=\"pygeodesy.ltpTuples.Los-class.html\" class=\"link\">Los</a>).</li>\n        <li><strong class=\"pname\"><code>elevation</code></strong> - Scalar angle <i>above</i> the horizon (<code>degrees</code>, \n          horizon is 0, zenith +90, nadir -90), if \n          <b><code>azimuth_aer</code></b> is <code>degrees</code>, ignored \n          otherwise.</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>azimuth_aer</code></b>.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.UnitError-class.html\">UnitError</a></strong></code> - Invalid <b><code>azimuth_aer</code></b> or \n        <b><code>elevation</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toUvw\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toUvw</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">location</span>,\n        <span class=\"sig-arg\">Uvw</span>=<span class=\"sig-default\">&lt;class 'pygeodesy.ltpTuples.Uvw'&gt;</span>,\n        <span class=\"sig-arg\">**name_Uvw_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Get this LOS' <i>target</i> (UVW) components from a location.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>location</code></strong> - The geodetic (<code>LatLon</code>) or geocentric \n          (<code>Cartesian</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>) location from where to cast this LOS.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <a href=\"pygeodesy.ltpTuples.Enu-class.html#toUvw\" \n        class=\"link\">Enu.toUvw</a> for further details.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"toEnu\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toEnu</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">Enu</span>=<span class=\"sig-default\">&lt;class 'pygeodesy.ltpTuples.Enu'&gt;</span>,\n        <span class=\"sig-arg\">**name_Enu_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Get this LOS as <i>East, North, Up</i> (ENU) components.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>Enu</code></strong> - Class to return ENU (<a href=\"pygeodesy.ltpTuples.Enu-class.html\"\n          class=\"link\">Enu</a>) or <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>name_Enu_kwds</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>) and \n          optionally, additional <b><a \n          href=\"pygeodesy.ltpTuples.Enu-class.html\" \n          class=\"link\">Enu</a></b> keyword arguments, ignored if \n          <code><b>Enu</b> is None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>An <b><code>Enu</code></b> instance or an <a \n          href=\"pygeodesy.ltpTuples.Enu4Tuple-class.html\" \n          class=\"link\">Enu4Tuple</a><code>(east, north, up, ltp)</code> if \n          <code><b>Enu</b> is None</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>Enu</code></b> or \n        <b><code>name_Enu_kwds</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.ltpTuples._AbcBase-class.html#toEnu\">_AbcBase.toEnu</a>\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <a href=\"pygeodesy.ltpTuples._AbcBase-class.html#toEnu\" \n        class=\"link\">Aer.toEnu</a> for further details.\n      </p>\n</div></td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.ltpTuples.Ned-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.ltpTuples.Ned</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.ltpTuples-module.html\">Module&nbsp;ltpTuples</a> ::\n        Class&nbsp;Ned\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.ltpTuples.Ned-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Ned</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+            \n           |            \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+        \n               |        \n<a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+    \n                   |    \n            <a href=\"pygeodesy.ltpTuples._AbcBase-class.html\">_AbcBase</a> --+\n                       |\n                      <strong class=\"uidshort\">Ned</strong>\n</pre>\n\n<dl><dt>Known Subclasses:</dt>\n<dd>\n      <ul class=\"subclass-list\">\n<li><a href=\"pygeodesy.ellipsoidalNvector.Ned-class.html\">ellipsoidalNvector.Ned</a></li>  </ul>\n</dd></dl>\n\n<hr />\n<p>Local <code>North-Eeast-Down</code> (NED) location in a <i>local \n  tangent plane</i>.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"pygeodesy.ltpTuples.Enu-class.html\" class=\"link\">Enu</a> \n        and <a href=\"pygeodesy.ltp.Ltp-class.html\" class=\"link\">Ltp</a>.\n      </p>\n</div><!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ltpTuples.Ned-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">north_ned</span>,\n        <span class=\"summary-sig-arg\">east</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">down</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">ltp</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      New <a href=\"pygeodesy.ellipsoidalNvector.Ned-class.html\" \n      class=\"link\">Ned</a> vector.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ltpTuples.Ned-class.html#to3ned\" class=\"summary-sig-name\">to3ned</a>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      DEPRECATED, use property <a \n      href=\"pygeodesy.ltpTuples.Ned-class.html#ned4\" class=\"link\">ned4</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ltpTuples.Ned-class.html#toRepr\" class=\"summary-sig-name\">toRepr</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">prec</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">fmt</span>=<span class=\"summary-sig-default\">'[%s]'</span>,\n        <span class=\"summary-sig-arg\">sep</span>=<span class=\"summary-sig-default\">', '</span>,\n        <span class=\"summary-sig-arg\">**unused</span>)</span><br />\n      Return a string representation of this NED.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ltpTuples.Ned-class.html#toStr\" class=\"summary-sig-name\">toStr</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">**prec_fmt_sep</span>)</span><br />\n      Return a string representation of this NED.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ltpTuples.Ned-class.html#toVector3d\" class=\"summary-sig-name\">toVector3d</a>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      DEPRECATED, use property <a \n      href=\"pygeodesy.ltpTuples._AbcBase-class.html#xyz\" \n      class=\"link\">xyz</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.ltpTuples._AbcBase-class.html\">_AbcBase</a></code></b>:\n      <code><a href=\"pygeodesy.ltpTuples._AbcBase-class.html#toAer\">toAer</a></code>,\n      <code><a href=\"pygeodesy.ltpTuples._AbcBase-class.html#toEnu\">toEnu</a></code>,\n      <code><a href=\"pygeodesy.ltpTuples._AbcBase-class.html#toNed\">toNed</a></code>,\n      <code><a href=\"pygeodesy.ltpTuples._AbcBase-class.html#toXyz\">toXyz</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#others\">others</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltpTuples.Ned-class.html#aer4\" class=\"summary-name\">aer4</a><br />\n      Get the <code>(azimuth, elevation, slantrange, ltp)</code> components\n      (<a href=\"pygeodesy.ltpTuples.Aer4Tuple-class.html\" \n      class=\"link\">Aer4Tuple</a>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltpTuples.Ned-class.html#azimuth\" class=\"summary-name\">azimuth</a><br />\n      Get the Azimuth, bearing from North (<code>degrees360</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltpTuples.Ned-class.html#bearing\" class=\"summary-name\">bearing</a><br />\n      DEPRECATED, use <code>azimuth</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltpTuples.Ned-class.html#down\" class=\"summary-name\">down</a><br />\n      Get the Down component (<code>meter</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltpTuples.Ned-class.html#east\" class=\"summary-name\">east</a><br />\n      Get the East component (<code>meter</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltpTuples.Ned-class.html#elevation\" class=\"summary-name\">elevation</a><br />\n      Get the Elevation, tilt above horizon (<code>degrees90</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltpTuples.Ned-class.html#groundrange\" class=\"summary-name\">groundrange</a><br />\n      Get the <i>ground range</i>, distance (<code>meter</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltpTuples.Ned-class.html#length\" class=\"summary-name\">length</a><br />\n      DEPRECATED, use <code>slantrange</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltpTuples.Ned-class.html#ned\" class=\"summary-name\">ned</a><br />\n      DEPRECATED, use property <code>ned4</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltpTuples.Ned-class.html#ned4\" class=\"summary-name\">ned4</a><br />\n      Get the <code>(north, east, down, ltp)</code> components (<a \n      href=\"pygeodesy.ltpTuples.Ned4Tuple-class.html\" \n      class=\"link\">Ned4Tuple</a>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltpTuples.Ned-class.html#north\" class=\"summary-name\">north</a><br />\n      Get the North component (<code>meter</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltpTuples.Ned-class.html#slantrange\" class=\"summary-name\">slantrange</a><br />\n      Get the <i>slant Range</i>, distance (<code>meter</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltpTuples.Ned-class.html#up\" class=\"summary-name\">up</a><br />\n      Get the Up component (<code>meter</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltpTuples.Ned-class.html#x\" class=\"summary-name\">x</a><br />\n      Get the X component (<code>meter</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltpTuples.Ned-class.html#xyz4\" class=\"summary-name\">xyz4</a><br />\n      Get the <code>(x, y, z, ltp)</code> components (<a \n      href=\"pygeodesy.ltpTuples.Xyz4Tuple-class.html\" \n      class=\"link\">Xyz4Tuple</a>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltpTuples.Ned-class.html#y\" class=\"summary-name\">y</a><br />\n      Get the Y component (<code>meter</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltpTuples.Ned-class.html#z\" class=\"summary-name\">z</a><br />\n      Get the Z component (<code>meter</code>).\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.ltpTuples._AbcBase-class.html\">_AbcBase</a></code></b>:\n      <code><a href=\"pygeodesy.ltpTuples._AbcBase-class.html#ltp\">ltp</a></code>,\n      <code><a href=\"pygeodesy.ltpTuples._AbcBase-class.html#xyz\">xyz</a></code>,\n      <code><a href=\"pygeodesy.ltpTuples._AbcBase-class.html#xyz3\">xyz3</a></code>,\n      <code><a href=\"pygeodesy.ltpTuples._AbcBase-class.html#xyzLocal\">xyzLocal</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">north_ned</span>,\n        <span class=\"sig-arg\">east</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">down</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">ltp</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.ellipsoidalNvector.Ned-class.html\" \n  class=\"link\">Ned</a> vector.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>north_ned</code></strong> - Scalar North component (<code>meter</code>) or a previous \n          <i>local</i> instance (<a \n          href=\"pygeodesy.ellipsoidalNvector.Ned-class.html\" \n          class=\"link\">Ned</a>, <a \n          href=\"pygeodesy.ltpTuples.Ned4Tuple-class.html\" \n          class=\"link\">Ned4Tuple</a>, <a \n          href=\"pygeodesy.ltpTuples.Aer-class.html\" class=\"link\">Aer</a>, \n          <a href=\"pygeodesy.ltpTuples.Aer4Tuple-class.html\" \n          class=\"link\">Aer4Tuple</a>, <a \n          href=\"pygeodesy.ltpTuples.Enu-class.html\" class=\"link\">Enu</a>, \n          <a href=\"pygeodesy.ltpTuples.Enu4Tuple-class.html\" \n          class=\"link\">Enu4Tuple</a>, <a \n          href=\"pygeodesy.ltpTuples.Local9Tuple-class.html\" \n          class=\"link\">Local9Tuple</a>, <a \n          href=\"pygeodesy.ltpTuples.XyzLocal-class.html\" \n          class=\"link\">XyzLocal</a> or <a \n          href=\"pygeodesy.ltpTuples.Xyz4Tuple-class.html\" \n          class=\"link\">Xyz4Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>east</code></strong> - Scalar East component (<code>meter</code>), only used with scalar\n          <b><code>north_ned</code></b>.</li>\n        <li><strong class=\"pname\"><code>down</code></strong> - Scalar Down component, normal to <i>inside</i> surface of the \n          ellipsoid or sphere (<code>meter</code>), only used with scalar \n          <b><code>north_ned</code></b>.</li>\n        <li><strong class=\"pname\"><code>ltp</code></strong> - The <i>local tangent plane</i>, (geodetic) origin (<a \n          href=\"pygeodesy.ltp.Ltp-class.html\" class=\"link\">Ltp</a>, <a \n          href=\"pygeodesy.ltp.LocalCartesian-class.html\" \n          class=\"link\">LocalCartesian</a>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>north_ned</code></b> or <b><code>ltp</code></b>.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.UnitError-class.html\">UnitError</a></strong></code> - Invalid <b><code>north_ned</code></b>, <b><code>east</code></b> or \n        <b><code>down</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"to3ned\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">to3ned</span>&nbsp;(<span class=\"sig-arg\">self</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use property <a \n  href=\"pygeodesy.ltpTuples.Ned-class.html#ned4\" class=\"link\">ned4</a>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_method</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toRepr\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toRepr</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">prec</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">fmt</span>=<span class=\"sig-default\">'[%s]'</span>,\n        <span class=\"sig-arg\">sep</span>=<span class=\"sig-default\">', '</span>,\n        <span class=\"sig-arg\">**unused</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return a string representation of this NED.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>prec</code></strong> - Number of (decimal) digits, unstripped (<code>int</code>).</li>\n        <li><strong class=\"pname\"><code>fmt</code></strong> - Enclosing backets format (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>sep</code></strong> - Separator to join (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>This NED as &quot;[N:meter, E:meter, D:meter]&quot; \n          (<code>str</code>).</dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.named._Named-class.html#toRepr\">named._Named.toRepr</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toStr\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toStr</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">**prec_fmt_sep</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return a string representation of this NED.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>prec_fmt_sep</code></strong> - Keyword arguments <code><b>prec</b>=3</code> for the number of \n          (decimal) digits, unstripped (<code>int</code>), \n          <code><b>fmt</b>='[]'</code> the enclosing backets format \n          (<code>str</code>) and separator <code><b>sep</b>=&quot;, \n          &quot;</code> to join (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>This NED as &quot;[meter, meter, meter]&quot; (<code>str</code>).</dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.named._Named-class.html#toStr\">named._Named.toStr</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toVector3d\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toVector3d</span>&nbsp;(<span class=\"sig-arg\">self</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use property <a \n  href=\"pygeodesy.ltpTuples._AbcBase-class.html#xyz\" \n  class=\"link\">xyz</a>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_method</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"aer4\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">aer4</h3>\n  <p>Get the <code>(azimuth, elevation, slantrange, ltp)</code> components \n  (<a href=\"pygeodesy.ltpTuples.Aer4Tuple-class.html\" \n  class=\"link\">Aer4Tuple</a>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">aer4(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <code>(azimuth, elevation, slantrange, ltp)</code> components (<a \nhref=\"pygeodesy.ltpTuples.Aer4Tuple-class.html\" \nclass=\"link\">Aer4Tuple</a>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"azimuth\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">azimuth</h3>\n  <p>Get the Azimuth, bearing from North (<code>degrees360</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">azimuth(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the Azimuth, bearing from North (<code>degrees360</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"bearing\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">bearing</h3>\n  <p>DEPRECATED, use <code>azimuth</code>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">bearing(<span class=\"summary-sig-arg\">self</span>)</span>\n        - DEPRECATED, use <code>azimuth</code>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"down\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">down</h3>\n  <p>Get the Down component (<code>meter</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">down(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the Down component (<code>meter</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"east\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">east</h3>\n  <p>Get the East component (<code>meter</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">east(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the East component (<code>meter</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"elevation\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">elevation</h3>\n  <p>Get the Elevation, tilt above horizon (<code>degrees90</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">elevation(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the Elevation, tilt above horizon (<code>degrees90</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"groundrange\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">groundrange</h3>\n  <p>Get the <i>ground range</i>, distance (<code>meter</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">groundrange(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <i>ground range</i>, distance (<code>meter</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"length\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">length</h3>\n  <p>DEPRECATED, use <code>slantrange</code>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">length(<span class=\"summary-sig-arg\">self</span>)</span>\n        - DEPRECATED, use <code>slantrange</code>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"ned\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">ned</h3>\n  <p>DEPRECATED, use property <code>ned4</code>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">ned(<span class=\"summary-sig-arg\">self</span>)</span>\n        - DEPRECATED, use property <code>ned4</code>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"ned4\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">ned4</h3>\n  <p>Get the <code>(north, east, down, ltp)</code> components (<a \n  href=\"pygeodesy.ltpTuples.Ned4Tuple-class.html\" \n  class=\"link\">Ned4Tuple</a>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">ned4(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <code>(north, east, down, ltp)</code> components (<a \nhref=\"pygeodesy.ltpTuples.Ned4Tuple-class.html\" \nclass=\"link\">Ned4Tuple</a>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"north\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">north</h3>\n  <p>Get the North component (<code>meter</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">north(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the North component (<code>meter</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"slantrange\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">slantrange</h3>\n  <p>Get the <i>slant Range</i>, distance (<code>meter</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">slantrange(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <i>slant Range</i>, distance (<code>meter</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"up\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">up</h3>\n  <p>Get the Up component (<code>meter</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">up(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the Up component (<code>meter</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"x\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">x</h3>\n  <p>Get the X component (<code>meter</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">x(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the X component (<code>meter</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"xyz4\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">xyz4</h3>\n  <p>Get the <code>(x, y, z, ltp)</code> components (<a \n  href=\"pygeodesy.ltpTuples.Xyz4Tuple-class.html\" \n  class=\"link\">Xyz4Tuple</a>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">xyz4(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <code>(x, y, z, ltp)</code> components (<a \nhref=\"pygeodesy.ltpTuples.Xyz4Tuple-class.html\" \nclass=\"link\">Xyz4Tuple</a>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"y\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">y</h3>\n  <p>Get the Y component (<code>meter</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">y(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the Y component (<code>meter</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"z\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">z</h3>\n  <p>Get the Z component (<code>meter</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">z(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the Z component (<code>meter</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.ltpTuples.Ned4Tuple-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.ltpTuples.Ned4Tuple</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.ltpTuples-module.html\">Module&nbsp;ltpTuples</a> ::\n        Class&nbsp;Ned4Tuple\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.ltpTuples.Ned4Tuple-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Ned4Tuple</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n   object --+            \n            |            \n        tuple --+        \n                |        \n   object --+   |        \n            |   |        \n <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+        \n                |        \n<a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a> --+    \n                    |    \n           _Abc4Tuple --+\n                        |\n                       <strong class=\"uidshort\">Ned4Tuple</strong>\n</pre>\n\n<hr />\n<p>4-Tuple <code>(north, east, down, ltp)</code>, all in \n  <code>meter</code> except <code>ltp</code>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__delattr__\">__delattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__getattr__\">__getattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__setattr__\">__setattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#items\">items</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iteritems\">iteritems</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iterunits\">iterunits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#reUnit\">reUnit</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toUnits\">toUnits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>tuple</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__eq__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__iter__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__rmul__</code>,\n      <code>count</code>,\n      <code>index</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__new__\">__new__</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltpTuples.Ned4Tuple-class.html#xyzLocal\" class=\"summary-name\">xyzLocal</a><br />\n      Get this <a href=\"pygeodesy.ltpTuples.Ned4Tuple-class.html\" \n      class=\"link\">Ned4Tuple</a> as an <a \n      href=\"pygeodesy.ltpTuples.XyzLocal-class.html\" \n      class=\"link\">XyzLocal</a>.\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"xyzLocal\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">xyzLocal</h3>\n  <p>Get this <a href=\"pygeodesy.ltpTuples.Ned4Tuple-class.html\" \n  class=\"link\">Ned4Tuple</a> as an <a \n  href=\"pygeodesy.ltpTuples.XyzLocal-class.html\" \n  class=\"link\">XyzLocal</a>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">xyzLocal(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get this <a href=\"pygeodesy.ltpTuples.Ned4Tuple-class.html\" \nclass=\"link\">Ned4Tuple</a> as an <a \nhref=\"pygeodesy.ltpTuples.XyzLocal-class.html\" class=\"link\">XyzLocal</a>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.ltpTuples.Uvw-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.ltpTuples.Uvw</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.ltpTuples-module.html\">Module&nbsp;ltpTuples</a> ::\n        Class&nbsp;Uvw\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.ltpTuples.Uvw-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Uvw</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n       object --+                    \n                |                    \n     <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+                \n                    |                \n     <a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+            \n                        |            \n<a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">vector3dBase.Vector3dBase</a> --+        \n                            |        \n            <a href=\"pygeodesy.vector3d.Vector3d-class.html\">vector3d.Vector3d</a> --+    \n                                |    \n                        _Vector3d --+\n                                    |\n                                   <strong class=\"uidshort\">Uvw</strong>\n</pre>\n\n<hr />\n<p>3-D <code>u-v-w</code> (UVW) components.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ltpTuples.Uvw-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">u_uvw</span>,\n        <span class=\"summary-sig-arg\">v</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">w</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      New <a href=\"pygeodesy.ltpTuples.Uvw-class.html\" \n      class=\"link\">Uvw</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ltpTuples.Uvw-class.html#toEnu\" class=\"summary-sig-name\">toEnu</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">location</span>,\n        <span class=\"summary-sig-arg\">Enu</span>=<span class=\"summary-sig-default\">&lt;class 'pygeodesy.ltpTuples.Enu'&gt;</span>,\n        <span class=\"summary-sig-arg\">**name_Enu_kwds</span>)</span><br />\n      Get the <i>East, North, Up</i> (ENU) components at a location.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>_Vector3d</code></b>:\n      <code>toRepr</code>,\n      <code>toStr</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.vector3d.Vector3d-class.html\">vector3d.Vector3d</a></code></b>:\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#bearing\">bearing</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#circin6\">circin6</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#circum3\">circum3</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#circum4_\">circum4_</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#iscolinearWith\">iscolinearWith</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#meeus2\">meeus2</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#nearestOn\">nearestOn</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#nearestOn6\">nearestOn6</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#parse\">parse</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#radii11\">radii11</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#soddy4\">soddy4</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#toCartesian\">toCartesian</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#trilaterate2d2\">trilaterate2d2</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#trilaterate3d2\">trilaterate3d2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">vector3dBase.Vector3dBase</a></code></b>:\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__abs__\">__abs__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__add__\">__add__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__bool__\">__bool__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__ceil__\">__ceil__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__cmp__\">__cmp__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__div__\">__div__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__divmod__\">__divmod__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__eq__\">__eq__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__float__\">__float__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__floor__\">__floor__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__floordiv__\">__floordiv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__ge__\">__ge__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__gt__\">__gt__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__iadd__\">__iadd__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__idiv__\">__idiv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__ifloordiv__\">__ifloordiv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__imod__\">__imod__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__imul__\">__imul__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__int__\">__int__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__ipow__\">__ipow__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__isub__\">__isub__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__itruediv__\">__itruediv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__le__\">__le__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__long__\">__long__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__lt__\">__lt__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__mod__\">__mod__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__mul__\">__mul__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__ne__\">__ne__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__neg__\">__neg__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__nonzero__\">__nonzero__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__pos__\">__pos__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__pow__\">__pow__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__radd__\">__radd__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rdiv__\">__rdiv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rdivmod__\">__rdivmod__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rfloordiv__\">__rfloordiv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rmod__\">__rmod__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rmul__\">__rmul__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__round__\">__round__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rpow__\">__rpow__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rsub__\">__rsub__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rtruediv__\">__rtruediv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__sub__\">__sub__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__truediv__\">__truediv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__trunc__\">__trunc__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#angleTo\">angleTo</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#apply\">apply</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#bools\">bools</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#cmp\">cmp</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#cross\">cross</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#dividedBy\">dividedBy</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#dividedBy_\">dividedBy_</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#dot\">dot</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#equals\">equals</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#equirectangular\">equirectangular</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#fabs\">fabs</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#floats\">floats</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#floorDividedBy\">floorDividedBy</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#floorDividedBy_\">floorDividedBy_</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#intermediateTo\">intermediateTo</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#ints\">ints</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#isconjugateTo\">isconjugateTo</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#isequalTo\">isequalTo</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#minus\">minus</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#minus_\">minus_</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#negate\">negate</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#others\">others</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#plus\">plus</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#plus_\">plus_</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#pow\">pow</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#rotate\">rotate</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#rotateAround\">rotateAround</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#sum\">sum</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#times\">times</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#times_\">times_</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#to3xyz\">to3xyz</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#unit\">unit</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__str__\">__str__</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltpTuples.Uvw-class.html#u\" class=\"summary-name\">u</a><br />\n      Get the X component (<code>float</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltpTuples.Uvw-class.html#uvw\" class=\"summary-name\">uvw</a><br />\n      Get the <code>(U, V, W)</code> components (<a \n      href=\"pygeodesy.ltpTuples.Uvw3Tuple-class.html\" \n      class=\"link\">Uvw3Tuple</a><code>(u, v, w)</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltpTuples.Uvw-class.html#v\" class=\"summary-name\">v</a><br />\n      Get the Y component (<code>float</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltpTuples.Uvw-class.html#w\" class=\"summary-name\">w</a><br />\n      Get the Z component (<code>float</code>).\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">vector3dBase.Vector3dBase</a></code></b>:\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#crosserrors\">crosserrors</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#euclid\">euclid</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#homogeneous\">homogeneous</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#length\">length</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#length2\">length2</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#x\">x</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#x2y2z2\">x2y2z2</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#x2y2z23\">x2y2z23</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#xyz\">xyz</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#xyz3\">xyz3</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#y\">y</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#z\">z</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">u_uvw</span>,\n        <span class=\"sig-arg\">v</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">w</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.ltpTuples.Uvw-class.html\" \n  class=\"link\">Uvw</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>u_uvw</code></strong> - Scalar U component (<code>meter</code>) or a previous instance \n          (<a href=\"pygeodesy.ltpTuples.Uvw-class.html\" \n          class=\"link\">Uvw</a>, <a \n          href=\"pygeodesy.ltpTuples.Uvw3Tuple-class.html\" \n          class=\"link\">Uvw3Tuple</a>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>).</li>\n        <li><strong class=\"pname\"><code>v</code></strong> - V component (<code>meter</code>), iff <b><code>u_uvw</code></b> \n          is <code>meter</code>, ignored otherwise.</li>\n        <li><strong class=\"pname\"><code>w</code></strong> - W component (<code>meter</code>), iff <b><code>u_uvw</code></b> \n          is <code>meter</code>, ignored otherwise.</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>east_enu</code></b>.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.UnitError-class.html\">UnitError</a></strong></code> - Invalid <b><code>east_enu</code></b>, <b><code>v</code></b> or \n        <b><code>w</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toEnu\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toEnu</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">location</span>,\n        <span class=\"sig-arg\">Enu</span>=<span class=\"sig-default\">&lt;class 'pygeodesy.ltpTuples.Enu'&gt;</span>,\n        <span class=\"sig-arg\">**name_Enu_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Get the <i>East, North, Up</i> (ENU) components at a location.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>location</code></strong> - The geodetic (<code>LatLon</code>) or geocentric \n          (<code>Cartesian</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>) location from where to cast the <a \n          href=\"pygeodesy.ltpTuples.Los-class.html\" class=\"link\">Los</a>.</li>\n        <li><strong class=\"pname\"><code>Enu</code></strong> - Class to return ENU (<a href=\"pygeodesy.ltpTuples.Enu-class.html\"\n          class=\"link\">Enu</a>) or <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>name_Enu_kwds</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>) and \n          optionally, additional <b><a \n          href=\"pygeodesy.ltpTuples.Enu-class.html\" \n          class=\"link\">Enu</a></b> keyword arguments, ignored if \n          <code><b>Enu</b> is None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>An <b><code>Enu</code></b> instance or an <a \n          href=\"pygeodesy.ltpTuples.Enu4Tuple-class.html\" \n          class=\"link\">Enu4Tuple</a><code>(east, north, up, ltp)</code> \n          with <code>ltp=None</code> if <code><b>Enu</b> is None</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>location</code></b>, <b><code>Enu</code></b> or \n        <b><code>name_Enu_kwds</code></b> item.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"https://PyPI.org/project/pymap3d\" \n        target=\"_top\">lookAtSpheroid</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<br />\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"u\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">u</h3>\n  <p>Get the X component (<code>float</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">x(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the X component (<code>float</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">x(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">x</span>)</span>\n        - Set the X component, if different (<code>float</code>).\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"uvw\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">uvw</h3>\n  <p>Get the <code>(U, V, W)</code> components (<a \n  href=\"pygeodesy.ltpTuples.Uvw3Tuple-class.html\" \n  class=\"link\">Uvw3Tuple</a><code>(u, v, w)</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">uvw(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <code>(U, V, W)</code> components (<a \nhref=\"pygeodesy.ltpTuples.Uvw3Tuple-class.html\" \nclass=\"link\">Uvw3Tuple</a><code>(u, v, w)</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"v\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">v</h3>\n  <p>Get the Y component (<code>float</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">y(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the Y component (<code>float</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">y(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">y</span>)</span>\n        - Set the Y component, if different (<code>float</code>).\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"w\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">w</h3>\n  <p>Get the Z component (<code>float</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">z(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the Z component (<code>float</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">z(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">z</span>)</span>\n        - Set the Z component, if different (<code>float</code>).\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.ltpTuples.Uvw3Tuple-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.ltpTuples.Uvw3Tuple</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.ltpTuples-module.html\">Module&nbsp;ltpTuples</a> ::\n        Class&nbsp;Uvw3Tuple\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.ltpTuples.Uvw3Tuple-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Uvw3Tuple</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n   object --+        \n            |        \n        tuple --+    \n                |    \n   object --+   |    \n            |   |    \n <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n                |    \n<a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a> --+\n                    |\n                   <strong class=\"uidshort\">Uvw3Tuple</strong>\n</pre>\n\n<hr />\n<p>3-Tuple <code>(u, v, w)</code>, in <code>meter</code>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__delattr__\">__delattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__getattr__\">__getattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__setattr__\">__setattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#items\">items</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iteritems\">iteritems</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iterunits\">iterunits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#reUnit\">reUnit</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toUnits\">toUnits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>tuple</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__eq__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__iter__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__rmul__</code>,\n      <code>count</code>,\n      <code>index</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__new__\">__new__</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.ltpTuples.Xyz4Tuple-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.ltpTuples.Xyz4Tuple</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.ltpTuples-module.html\">Module&nbsp;ltpTuples</a> ::\n        Class&nbsp;Xyz4Tuple\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.ltpTuples.Xyz4Tuple-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Xyz4Tuple</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n   object --+            \n            |            \n        tuple --+        \n                |        \n   object --+   |        \n            |   |        \n <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+        \n                |        \n<a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a> --+    \n                    |    \n           _Abc4Tuple --+\n                        |\n                       <strong class=\"uidshort\">Xyz4Tuple</strong>\n</pre>\n\n<hr />\n<p>4-Tuple <code>(x, y, z, ltp)</code>, all in <code>meter</code> except \n  <code>ltp</code>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__delattr__\">__delattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__getattr__\">__getattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__setattr__\">__setattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#items\">items</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iteritems\">iteritems</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iterunits\">iterunits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#reUnit\">reUnit</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toUnits\">toUnits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>tuple</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__eq__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__iter__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__rmul__</code>,\n      <code>count</code>,\n      <code>index</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__new__\">__new__</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltpTuples.Xyz4Tuple-class.html#xyz4\" class=\"summary-name\">xyz4</a><br />\n      Get the <code>(x, y, z, ltp)</code> components (<a \n      href=\"pygeodesy.ltpTuples.Xyz4Tuple-class.html\" \n      class=\"link\">Xyz4Tuple</a>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltpTuples.Xyz4Tuple-class.html#xyzLocal\" class=\"summary-name\">xyzLocal</a><br />\n      Get this <a href=\"pygeodesy.ltpTuples.Xyz4Tuple-class.html\" \n      class=\"link\">Xyz4Tuple</a> as an <a \n      href=\"pygeodesy.ltpTuples.XyzLocal-class.html\" \n      class=\"link\">XyzLocal</a>.\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"xyz4\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">xyz4</h3>\n  <p>Get the <code>(x, y, z, ltp)</code> components (<a \n  href=\"pygeodesy.ltpTuples.Xyz4Tuple-class.html\" \n  class=\"link\">Xyz4Tuple</a>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">xyz4(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <code>(x, y, z, ltp)</code> components (<a \nhref=\"pygeodesy.ltpTuples.Xyz4Tuple-class.html\" \nclass=\"link\">Xyz4Tuple</a>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"xyzLocal\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">xyzLocal</h3>\n  <p>Get this <a href=\"pygeodesy.ltpTuples.Xyz4Tuple-class.html\" \n  class=\"link\">Xyz4Tuple</a> as an <a \n  href=\"pygeodesy.ltpTuples.XyzLocal-class.html\" \n  class=\"link\">XyzLocal</a>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">xyzLocal(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get this <a href=\"pygeodesy.ltpTuples.Xyz4Tuple-class.html\" \nclass=\"link\">Xyz4Tuple</a> as an <a \nhref=\"pygeodesy.ltpTuples.XyzLocal-class.html\" class=\"link\">XyzLocal</a>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.ltpTuples.XyzLocal-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.ltpTuples.XyzLocal</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.ltpTuples-module.html\">Module&nbsp;ltpTuples</a> ::\n        Class&nbsp;XyzLocal\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.ltpTuples.XyzLocal-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class XyzLocal</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n       object --+                    \n                |                    \n     <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+                \n                    |                \n     <a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+            \n                        |            \n<a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">vector3dBase.Vector3dBase</a> --+        \n                            |        \n            <a href=\"pygeodesy.vector3d.Vector3d-class.html\">vector3d.Vector3d</a> --+    \n                                |    \n                        _Vector3d --+\n                                    |\n                                   <strong class=\"uidshort\">XyzLocal</strong>\n</pre>\n\n<dl><dt>Known Subclasses:</dt>\n<dd>\n      <ul class=\"subclass-list\">\n<li><a href=\"pygeodesy.ltpTuples.Enu-class.html\">Enu</a></li>  </ul>\n</dd></dl>\n\n<hr />\n<p>Local <code>(x, y, z)</code> in a <i>local tangent plane</i> (LTP), \n  also base class for local <a href=\"pygeodesy.ltpTuples.Enu-class.html\" \n  class=\"link\">Enu</a>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ltpTuples.XyzLocal-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">x_xyz</span>,\n        <span class=\"summary-sig-arg\">y</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">z</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">ltp</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      New <a href=\"pygeodesy.ltpTuples.XyzLocal-class.html\" \n      class=\"link\">XyzLocal</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ltpTuples.XyzLocal-class.html#__str__\" class=\"summary-sig-name\">__str__</a>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Default <code>str(self)</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ltpTuples.XyzLocal-class.html#classof\" class=\"summary-sig-name\">classof</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">*args</span>,\n        <span class=\"summary-sig-arg\">**kwds</span>)</span><br />\n      Create another instance of this very class.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ltpTuples.XyzLocal-class.html#toAer\" class=\"summary-sig-name\">toAer</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">Aer</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**name_Aer_kwds</span>)</span><br />\n      Get the local <i>Azimuth, Elevation, slant Range</i> components.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ltpTuples.XyzLocal-class.html#toCartesian\" class=\"summary-sig-name\">toCartesian</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">Cartesian</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">ltp</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**name_Cartesian_kwds</span>)</span><br />\n      Get the geocentric <code>(x, y, z)</code> (ECEF) coordinates of this \n      local.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ltpTuples.XyzLocal-class.html#toEnu\" class=\"summary-sig-name\">toEnu</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">Enu</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**name_Enu_kwds</span>)</span><br />\n      Get the local <i>East, North, Up</i> (ENU) components.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ltpTuples.XyzLocal-class.html#toLatLon\" class=\"summary-sig-name\">toLatLon</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">LatLon</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">ltp</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**name_LatLon_kwds</span>)</span><br />\n      Get the geodetic <code>(lat, lon, height)</code> coordinates if this \n      local.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ltpTuples.XyzLocal-class.html#toLocal9Tuple\" class=\"summary-sig-name\">toLocal9Tuple</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">M</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Get this local as a <code>Local9Tuple</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ltpTuples.XyzLocal-class.html#toNed\" class=\"summary-sig-name\">toNed</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">Ned</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**name_Ned_kwds</span>)</span><br />\n      Get the local <i>North, East, Down</i> (Ned) components.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ltpTuples.XyzLocal-class.html#toXyz\" class=\"summary-sig-name\">toXyz</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">Xyz</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**name_Xyz_kwds</span>)</span><br />\n      Get the local <i>X, Y, Z</i> (XYZ) components.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>_Vector3d</code></b>:\n      <code>toRepr</code>,\n      <code>toStr</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.vector3d.Vector3d-class.html\">vector3d.Vector3d</a></code></b>:\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#bearing\">bearing</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#circin6\">circin6</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#circum3\">circum3</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#circum4_\">circum4_</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#iscolinearWith\">iscolinearWith</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#meeus2\">meeus2</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#nearestOn\">nearestOn</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#nearestOn6\">nearestOn6</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#parse\">parse</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#radii11\">radii11</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#soddy4\">soddy4</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#trilaterate2d2\">trilaterate2d2</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#trilaterate3d2\">trilaterate3d2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">vector3dBase.Vector3dBase</a></code></b>:\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__abs__\">__abs__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__add__\">__add__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__bool__\">__bool__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__ceil__\">__ceil__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__cmp__\">__cmp__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__div__\">__div__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__divmod__\">__divmod__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__eq__\">__eq__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__float__\">__float__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__floor__\">__floor__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__floordiv__\">__floordiv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__ge__\">__ge__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__gt__\">__gt__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__iadd__\">__iadd__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__idiv__\">__idiv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__ifloordiv__\">__ifloordiv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__imod__\">__imod__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__imul__\">__imul__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__int__\">__int__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__ipow__\">__ipow__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__isub__\">__isub__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__itruediv__\">__itruediv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__le__\">__le__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__long__\">__long__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__lt__\">__lt__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__mod__\">__mod__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__mul__\">__mul__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__ne__\">__ne__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__neg__\">__neg__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__nonzero__\">__nonzero__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__pos__\">__pos__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__pow__\">__pow__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__radd__\">__radd__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rdiv__\">__rdiv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rdivmod__\">__rdivmod__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rfloordiv__\">__rfloordiv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rmod__\">__rmod__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rmul__\">__rmul__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__round__\">__round__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rpow__\">__rpow__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rsub__\">__rsub__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rtruediv__\">__rtruediv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__sub__\">__sub__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__truediv__\">__truediv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__trunc__\">__trunc__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#angleTo\">angleTo</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#apply\">apply</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#bools\">bools</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#cmp\">cmp</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#cross\">cross</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#dividedBy\">dividedBy</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#dividedBy_\">dividedBy_</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#dot\">dot</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#equals\">equals</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#equirectangular\">equirectangular</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#fabs\">fabs</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#floats\">floats</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#floorDividedBy\">floorDividedBy</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#floorDividedBy_\">floorDividedBy_</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#intermediateTo\">intermediateTo</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#ints\">ints</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#isconjugateTo\">isconjugateTo</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#isequalTo\">isequalTo</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#minus\">minus</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#minus_\">minus_</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#negate\">negate</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#others\">others</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#plus\">plus</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#plus_\">plus_</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#pow\">pow</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#rotate\">rotate</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#rotateAround\">rotateAround</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#sum\">sum</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#times\">times</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#times_\">times_</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#to3xyz\">to3xyz</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#unit\">unit</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__repr__\">__repr__</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltpTuples.XyzLocal-class.html#aer4\" class=\"summary-name\">aer4</a><br />\n      Get the <code>(azimuth, elevation, slantrange, ltp)</code> components\n      (<a href=\"pygeodesy.ltpTuples.Aer4Tuple-class.html\" \n      class=\"link\">Aer4Tuple</a>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltpTuples.XyzLocal-class.html#azimuth\" class=\"summary-name\">azimuth</a><br />\n      Get the Azimuth, bearing from North (<code>degrees360</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltpTuples.XyzLocal-class.html#down\" class=\"summary-name\">down</a><br />\n      Get the Down component (<code>meter</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltpTuples.XyzLocal-class.html#ecef\" class=\"summary-name\">ecef</a><br />\n      Get this LTP's ECEF converter (<code>Ecef...</code> <i>instance</i>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltpTuples.XyzLocal-class.html#east\" class=\"summary-name\">east</a><br />\n      Get the East component (<code>meter</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltpTuples.XyzLocal-class.html#elevation\" class=\"summary-name\">elevation</a><br />\n      Get the Elevation, tilt above horizon (<code>degrees90</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltpTuples.XyzLocal-class.html#enu4\" class=\"summary-name\">enu4</a><br />\n      Get the <code>(east, north, up, ltp)</code> components (<a \n      href=\"pygeodesy.ltpTuples.Enu4Tuple-class.html\" \n      class=\"link\">Enu4Tuple</a>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltpTuples.XyzLocal-class.html#groundrange\" class=\"summary-name\">groundrange</a><br />\n      Get the <i>ground range</i>, distance (<code>meter</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltpTuples.XyzLocal-class.html#ltp\" class=\"summary-name\">ltp</a><br />\n      Get the <i>local tangent plane</i> (<a \n      href=\"pygeodesy.ltp.Ltp-class.html\" class=\"link\">Ltp</a>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltpTuples.XyzLocal-class.html#ned4\" class=\"summary-name\">ned4</a><br />\n      Get the <code>(north, east, down, ltp)</code> components (<a \n      href=\"pygeodesy.ltpTuples.Ned4Tuple-class.html\" \n      class=\"link\">Ned4Tuple</a>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltpTuples.XyzLocal-class.html#north\" class=\"summary-name\">north</a><br />\n      Get the North component (<code>meter</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltpTuples.XyzLocal-class.html#slantrange\" class=\"summary-name\">slantrange</a><br />\n      Get the <i>slant Range</i>, distance (<code>meter</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltpTuples.XyzLocal-class.html#up\" class=\"summary-name\">up</a><br />\n      Get the Up component (<code>meter</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltpTuples.XyzLocal-class.html#xyz4\" class=\"summary-name\">xyz4</a><br />\n      Get the <code>(x, y, z, ltp)</code> components (<a \n      href=\"pygeodesy.ltpTuples.Xyz4Tuple-class.html\" \n      class=\"link\">Xyz4Tuple</a>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltpTuples.XyzLocal-class.html#xyzLocal\" class=\"summary-name\">xyzLocal</a><br />\n      Get this <a href=\"pygeodesy.ltpTuples.XyzLocal-class.html\" \n      class=\"link\">XyzLocal</a>.\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">vector3dBase.Vector3dBase</a></code></b>:\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#crosserrors\">crosserrors</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#euclid\">euclid</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#homogeneous\">homogeneous</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#length\">length</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#length2\">length2</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#x\">x</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#x2y2z2\">x2y2z2</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#x2y2z23\">x2y2z23</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#xyz\">xyz</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#xyz3\">xyz3</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#y\">y</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#z\">z</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">x_xyz</span>,\n        <span class=\"sig-arg\">y</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">z</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">ltp</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.ltpTuples.XyzLocal-class.html\" \n  class=\"link\">XyzLocal</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>x_xyz</code></strong> - Scalar X component (<code>meter</code>), <code>positive \n          east</code> or a previous <i>local</i> instance (<a \n          href=\"pygeodesy.ltpTuples.XyzLocal-class.html\" \n          class=\"link\">XyzLocal</a>, <a \n          href=\"pygeodesy.ltpTuples.Xyz4Tuple-class.html\" \n          class=\"link\">Xyz4Tuple</a>, <a \n          href=\"pygeodesy.ltpTuples.Aer-class.html\" class=\"link\">Aer</a>, \n          <a href=\"pygeodesy.ltpTuples.Aer4Tuple-class.html\" \n          class=\"link\">Aer4Tuple</a>, <a \n          href=\"pygeodesy.ltpTuples.Enu-class.html\" class=\"link\">Enu</a>, \n          <a href=\"pygeodesy.ltpTuples.Enu4Tuple-class.html\" \n          class=\"link\">Enu4Tuple</a>, <a \n          href=\"pygeodesy.ltpTuples.Local9Tuple-class.html\" \n          class=\"link\">Local9Tuple</a>, <a \n          href=\"pygeodesy.ltpTuples.Ned-class.html\" class=\"link\">Ned</a> or\n          <a href=\"pygeodesy.ltpTuples.Ned4Tuple-class.html\" \n          class=\"link\">Ned4Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>y</code></strong> - Scalar Y component (<code>meter</code>), only used with scalar \n          <b><code>x_xyz</code></b>, <code>positive north</code>.</li>\n        <li><strong class=\"pname\"><code>z</code></strong> - Scalar Z component, normal <code>positive up</code> from the \n          surface of the ellipsoid or sphere (<code>meter</code>), only \n          used with scalar <b><code>x_xyz</code></b>.</li>\n        <li><strong class=\"pname\"><code>ltp</code></strong> - The <i>local tangent plane</i>, (geodetic) origin (<a \n          href=\"pygeodesy.ltp.Ltp-class.html\" class=\"link\">Ltp</a>, <a \n          href=\"pygeodesy.ltp.LocalCartesian-class.html\" \n          class=\"link\">LocalCartesian</a>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>x_xyz</code></b> or <b><code>ltp</code></b>.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.UnitError-class.html\">UnitError</a></strong></code> - Invalid scalar <b><code>x_xyz</code></b>, <b><code>y</code></b> or \n        <b><code>z</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__str__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__str__</span>&nbsp;(<span class=\"sig-arg\">self</span>)</span>\n    <br /><em class=\"fname\">(Informal representation operator)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Default <code>str(self)</code>.</p>\n  <dl class=\"fields\">\n    <dt>Overrides:\n        object.__str__\n        <dd><em class=\"note\">(inherited documentation)</em></dd>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"classof\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">classof</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">*args</span>,\n        <span class=\"sig-arg\">**kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Create another instance of this very class.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>args</code></strong> - Optional, positional arguments.</li>\n        <li><strong class=\"pname\"><code>kwds</code></strong> - Optional, keyword arguments.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>New instance (<code>self.__class__</code>).</dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.named._Named-class.html#classof\">named._Named.classof</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toAer\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toAer</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">Aer</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**name_Aer_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Get the local <i>Azimuth, Elevation, slant Range</i> components.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>Aer</code></strong> - Class to return AER (<a href=\"pygeodesy.ltpTuples.Aer-class.html\"\n          class=\"link\">Aer</a>) or <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>name_Aer_kwds</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>) and \n          optionally, additional <b><code>Aer</code></b> keyword arguments,\n          ignored if <code><b>Aer</b> is None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>An <b><code>Aer</code></b> instance or an <a \n          href=\"pygeodesy.ltpTuples.Aer4Tuple-class.html\" \n          class=\"link\">Aer4Tuple</a><code>(azimuth, elevation, slantrange, \n          ltp)</code> if <code><b>Aer</b> is None</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>Aer</code></b> or \n        <b><code>name_Aer_kwds</code></b> item.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toCartesian\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toCartesian</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">Cartesian</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">ltp</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**name_Cartesian_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Get the geocentric <code>(x, y, z)</code> (ECEF) coordinates of this \n  local.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>Cartesian</code></strong> - Optional class to return <code>(x, y, z)</code> \n          (<code>Cartesian</code>) or <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>ltp</code></strong> - Optional <i>local tangent plane</i> (LTP) (<a \n          href=\"pygeodesy.ltp.Ltp-class.html\" class=\"link\">Ltp</a>), \n          overriding this <code>ltp</code>.</li>\n        <li><strong class=\"pname\"><code>name_Cartesian_kwds</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>) and \n          optionally, additional <b><code>Cartesian</code></b> keyword \n          arguments, ignored if <code><b>Cartesian</b> is None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <b><code>Cartesian</code></b> instance or if \n          <code><b>Cartesian</b> is None</code>, an <a \n          href=\"pygeodesy.ecef.Ecef9Tuple-class.html\" \n          class=\"link\">Ecef9Tuple</a><code>(x, y, z, lat, lon, height, C, \n          M, datum)</code> with <code>M=None</code>, always.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>ltp</code></b>, <b><code>Cartesian</code></b> or \n        <b><code>name_Cartesian_kwds</code></b> item.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.vector3d.Vector3d-class.html#toCartesian\">vector3d.Vector3d.toCartesian</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toEnu\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toEnu</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">Enu</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**name_Enu_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Get the local <i>East, North, Up</i> (ENU) components.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>Enu</code></strong> - Class to return ENU (<a href=\"pygeodesy.ltpTuples.Enu-class.html\"\n          class=\"link\">Enu</a>) or <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>name_Enu_kwds</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>) and \n          optionally, additional <b><code>Enu</code></b> keyword arguments,\n          ignored if <code><b>Enu</b> is None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>An <b><code>Enu</code></b> instance or an <a \n          href=\"pygeodesy.ltpTuples.Enu4Tuple-class.html\" \n          class=\"link\">Enu4Tuple</a><code>(east, north, up, ltp)</code> if \n          <code><b>Enu</b> is None</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>Enu</code></b> or \n        <b><code>name_Enu_kwds</code></b> item.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toLatLon\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toLatLon</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">LatLon</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">ltp</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**name_LatLon_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Get the geodetic <code>(lat, lon, height)</code> coordinates if this \n  local.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>LatLon</code></strong> - Optional class to return <code>(x, y, z)</code> \n          (<code>LatLon</code>) or <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>ltp</code></strong> - Optional <i>local tangent plane</i> (LTP) (<a \n          href=\"pygeodesy.ltp.Ltp-class.html\" class=\"link\">Ltp</a>), \n          overriding this ENU/NED/AER/XYZ's LTP.</li>\n        <li><strong class=\"pname\"><code>name_LatLon_kwds</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>) and \n          optionally, additional <b><code>LatLon</code></b> keyword \n          arguments, ignored if <code><b>LatLon</b> is None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>An <b><code>LatLon</code></b> instance or an <a \n          href=\"pygeodesy.ecef.Ecef9Tuple-class.html\" \n          class=\"link\">Ecef9Tuple</a><code>(x, y, z, lat, lon, height, C, \n          M, datum)</code> if <code><b>LatLon</b> is None</code>, with \n          <code>M=None</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>LatLon</code></b>, <b><code>ltp</code></b> or \n        <b><code>name_LatLon_kwds</code></b> item.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toLocal9Tuple\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toLocal9Tuple</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">M</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Get this local as a <code>Local9Tuple</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>M</code></strong> - Optionally include the rotation matrix (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><a href=\"pygeodesy.ltpTuples.Local9Tuple-class.html\" \n          class=\"link\">Local9Tuple</a><code>(x, y, z, lat, lon, height, \n          ltp, ecef, M)</code> with <code>ltp</code> this <code>Ltp</code>,\n          <code>ecef</code> an <a \n          href=\"pygeodesy.ecef.Ecef9Tuple-class.html\" \n          class=\"link\">Ecef9Tuple</a> and <code>M</code> an <a \n          href=\"pygeodesy.ecef.EcefMatrix-class.html\" \n          class=\"link\">EcefMatrix</a> or <code>None</code>.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toNed\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toNed</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">Ned</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**name_Ned_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Get the local <i>North, East, Down</i> (Ned) components.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>Ned</code></strong> - Class to return NED (<a href=\"pygeodesy.ltpTuples.Ned-class.html\"\n          class=\"link\">Ned</a>) or <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>name_Ned_kwds</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>) and \n          optionally, additional <b><code>Ned</code></b> keyword arguments,\n          ignored if <code><b>Ned</b> is None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>An <b><code>Ned</code></b> instance or an <a \n          href=\"pygeodesy.ltpTuples.Ned4Tuple-class.html\" \n          class=\"link\">Ned4Tuple</a><code>(north, east, down, ltp)</code> \n          if <code><b>Ned</b> is None</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>Ned</code></b> or \n        <b><code>name_Ned_kwds</code></b> item.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toXyz\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toXyz</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">Xyz</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**name_Xyz_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Get the local <i>X, Y, Z</i> (XYZ) components.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>Xyz</code></strong> - Class to return XYZ (<a \n          href=\"pygeodesy.ltpTuples.XyzLocal-class.html\" \n          class=\"link\">XyzLocal</a>, <a \n          href=\"pygeodesy.ltpTuples.Enu-class.html\" class=\"link\">Enu</a>, \n          <a href=\"pygeodesy.ltpTuples.Ned-class.html\" \n          class=\"link\">Ned</a>, <a \n          href=\"pygeodesy.ltpTuples.Aer-class.html\" class=\"link\">Aer</a>) \n          or <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>name_Xyz_kwds</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>) and \n          optionally, additional <b><code>Xyz</code></b> keyword arguments,\n          ignored if <code><b>Xyz</b> is None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>An <b><code>Xyz</code></b> instance or an <a \n          href=\"pygeodesy.ltpTuples.Xyz4Tuple-class.html\" \n          class=\"link\">Xyz4Tuple</a><code>(x, y, z, ltp)</code> if \n          <code><b>Xyz</b> is None</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>Xyz</code></b> or \n        <b><code>name_Xyz_kwds</code></b> item.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"aer4\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">aer4</h3>\n  <p>Get the <code>(azimuth, elevation, slantrange, ltp)</code> components \n  (<a href=\"pygeodesy.ltpTuples.Aer4Tuple-class.html\" \n  class=\"link\">Aer4Tuple</a>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">aer4(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <code>(azimuth, elevation, slantrange, ltp)</code> components (<a \nhref=\"pygeodesy.ltpTuples.Aer4Tuple-class.html\" \nclass=\"link\">Aer4Tuple</a>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"azimuth\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">azimuth</h3>\n  <p>Get the Azimuth, bearing from North (<code>degrees360</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">azimuth(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the Azimuth, bearing from North (<code>degrees360</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a \n        href=\"https://GSSC.ESA.int/navipedia/index.php/Transformations_between_ECEF_and_ENU_coordinates\"\n        target=\"_top\">Azimuth</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"down\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">down</h3>\n  <p>Get the Down component (<code>meter</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">down(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the Down component (<code>meter</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"ecef\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">ecef</h3>\n  <p>Get this LTP's ECEF converter (<code>Ecef...</code> \n  <i>instance</i>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">ecef(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get this LTP's ECEF converter (<code>Ecef...</code> <i>instance</i>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"east\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">east</h3>\n  <p>Get the East component (<code>meter</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">east(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the East component (<code>meter</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"elevation\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">elevation</h3>\n  <p>Get the Elevation, tilt above horizon (<code>degrees90</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">elevation(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the Elevation, tilt above horizon (<code>degrees90</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a \n        href=\"https://GSSC.ESA.int/navipedia/index.php/Transformations_between_ECEF_and_ENU_coordinates\"\n        target=\"_top\">Elevation</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"enu4\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">enu4</h3>\n  <p>Get the <code>(east, north, up, ltp)</code> components (<a \n  href=\"pygeodesy.ltpTuples.Enu4Tuple-class.html\" \n  class=\"link\">Enu4Tuple</a>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">enu4(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <code>(east, north, up, ltp)</code> components (<a \nhref=\"pygeodesy.ltpTuples.Enu4Tuple-class.html\" \nclass=\"link\">Enu4Tuple</a>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"groundrange\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">groundrange</h3>\n  <p>Get the <i>ground range</i>, distance (<code>meter</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">groundrange(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <i>ground range</i>, distance (<code>meter</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"ltp\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">ltp</h3>\n  <p>Get the <i>local tangent plane</i> (<a \n  href=\"pygeodesy.ltp.Ltp-class.html\" class=\"link\">Ltp</a>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">ltp(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <i>local tangent plane</i> (<a href=\"pygeodesy.ltp.Ltp-class.html\" \nclass=\"link\">Ltp</a>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"ned4\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">ned4</h3>\n  <p>Get the <code>(north, east, down, ltp)</code> components (<a \n  href=\"pygeodesy.ltpTuples.Ned4Tuple-class.html\" \n  class=\"link\">Ned4Tuple</a>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">ned4(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <code>(north, east, down, ltp)</code> components (<a \nhref=\"pygeodesy.ltpTuples.Ned4Tuple-class.html\" \nclass=\"link\">Ned4Tuple</a>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"north\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">north</h3>\n  <p>Get the North component (<code>meter</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">north(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the North component (<code>meter</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"slantrange\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">slantrange</h3>\n  <p>Get the <i>slant Range</i>, distance (<code>meter</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">slantrange(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <i>slant Range</i>, distance (<code>meter</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"up\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">up</h3>\n  <p>Get the Up component (<code>meter</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">up(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the Up component (<code>meter</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"xyz4\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">xyz4</h3>\n  <p>Get the <code>(x, y, z, ltp)</code> components (<a \n  href=\"pygeodesy.ltpTuples.Xyz4Tuple-class.html\" \n  class=\"link\">Xyz4Tuple</a>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">xyz4(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <code>(x, y, z, ltp)</code> components (<a \nhref=\"pygeodesy.ltpTuples.Xyz4Tuple-class.html\" \nclass=\"link\">Xyz4Tuple</a>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"xyzLocal\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">xyzLocal</h3>\n  <p>Get this <a href=\"pygeodesy.ltpTuples.XyzLocal-class.html\" \n  class=\"link\">XyzLocal</a>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">xyzLocal(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get this <a href=\"pygeodesy.ltpTuples.XyzLocal-class.html\" \nclass=\"link\">XyzLocal</a>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.ltpTuples._AbcBase-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.ltpTuples._AbcBase</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.ltpTuples-module.html\">Module&nbsp;ltpTuples</a> ::\n        Class&nbsp;_AbcBase\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.ltpTuples._AbcBase-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class _AbcBase</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+        \n           |        \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n               |    \n<a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+\n                   |\n                  <strong class=\"uidshort\">_AbcBase</strong>\n</pre>\n\n<dl><dt>Known Subclasses:</dt>\n<dd>\n      <ul class=\"subclass-list\">\n<li><a href=\"pygeodesy.ltpTuples.Aer-class.html\">Aer</a></li><li>, <a href=\"pygeodesy.ltpTuples.Ned-class.html\">Ned</a></li>  </ul>\n</dd></dl>\n\n<hr />\n<p>(INTERNAL) Base class for classes <code>Aer</code> and \n  <code>Ned</code>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ltpTuples._AbcBase-class.html#toAer\" class=\"summary-sig-name\">toAer</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">Aer</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**name_Aer_kwds</span>)</span><br />\n      Get the <i>local</i> <i>Azimuth, Elevation, slant Range</i> (AER) \n      components.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ltpTuples._AbcBase-class.html#toEnu\" class=\"summary-sig-name\">toEnu</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">Enu</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**name_Enu_kwds</span>)</span><br />\n      Get the <i>local</i> <i>East, North, Up</i> (ENU) components.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ltpTuples._AbcBase-class.html#toNed\" class=\"summary-sig-name\">toNed</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">Ned</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**name_Ned_kwds</span>)</span><br />\n      Get the <i>local</i> <i>North, East, Down</i> (NED) components.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ltpTuples._AbcBase-class.html#toXyz\" class=\"summary-sig-name\">toXyz</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">Xyz</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**name_Xyz_kwds</span>)</span><br />\n      Get the local <i>X, Y, Z</i> (XYZ) components.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#others\">others</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#toStr\">toStr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__init__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltpTuples._AbcBase-class.html#ltp\" class=\"summary-name\">ltp</a><br />\n      Get the <i>local tangent plane</i> (<a \n      href=\"pygeodesy.ltp.Ltp-class.html\" class=\"link\">Ltp</a>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltpTuples._AbcBase-class.html#xyz\" class=\"summary-name\">xyz</a><br />\n      Get the <i>local</i> <code>(X, Y, Z)</code> coordinates (<a \n      href=\"pygeodesy.namedTuples.Vector3Tuple-class.html\" \n      class=\"link\">Vector3Tuple</a><code>(x, y, z)</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltpTuples._AbcBase-class.html#xyz3\" class=\"summary-name\">xyz3</a><br />\n      Get the <i>local</i> <code>(X, Y, Z)</code> coordinates as \n      <code>3-tuple</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltpTuples._AbcBase-class.html#xyz4\" class=\"summary-name\">xyz4</a><br />\n      <i>Must be overloaded</i>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ltpTuples._AbcBase-class.html#xyzLocal\" class=\"summary-name\">xyzLocal</a><br />\n      Get this AER or NED as an <a \n      href=\"pygeodesy.ltpTuples.XyzLocal-class.html\" \n      class=\"link\">XyzLocal</a>.\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"toAer\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toAer</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">Aer</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**name_Aer_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Get the <i>local</i> <i>Azimuth, Elevation, slant Range</i> (AER) \n  components.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>Aer</code></strong> - Class to return AER (<a href=\"pygeodesy.ltpTuples.Aer-class.html\"\n          class=\"link\">Aer</a>) or <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>name_Aer_kwds</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>) and \n          optionally, additional <b><a \n          href=\"pygeodesy.ltpTuples.Aer-class.html\" \n          class=\"link\">Aer</a></b> keyword arguments, ignored if \n          <code><b>Aer</b> is None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>An <b><code>Aer</code></b> instance or an <a \n          href=\"pygeodesy.ltpTuples.Aer4Tuple-class.html\" \n          class=\"link\">Aer4Tuple</a><code>(azimuth, elevation, slantrange, \n          ltp)</code> if <code><b>Aer</b> is None</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>Aer</code></b> or \n        <b><code>name_Aer_kwds</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toEnu\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toEnu</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">Enu</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**name_Enu_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Get the <i>local</i> <i>East, North, Up</i> (ENU) components.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>Enu</code></strong> - Class to return ENU (<a href=\"pygeodesy.ltpTuples.Enu-class.html\"\n          class=\"link\">Enu</a>) or <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>name_Enu_kwds</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>) and \n          optionally, additional <b><a \n          href=\"pygeodesy.ltpTuples.Enu-class.html\" \n          class=\"link\">Enu</a></b> keyword arguments, ignored if \n          <code><b>Enu</b> is None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>An <b><code>Enu</code></b> instance or an <a \n          href=\"pygeodesy.ltpTuples.Enu4Tuple-class.html\" \n          class=\"link\">Enu4Tuple</a><code>(east, north, up, ltp)</code> if \n          <code><b>Enu</b> is None</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>Enu</code></b> or \n        <b><code>name_Enu_kwds</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toNed\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toNed</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">Ned</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**name_Ned_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Get the <i>local</i> <i>North, East, Down</i> (NED) components.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>Ned</code></strong> - Class to return NED (<a href=\"pygeodesy.ltpTuples.Ned-class.html\"\n          class=\"link\">Ned</a>) or <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>name_Ned_kwds</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>) and \n          optionally, additional <b><a \n          href=\"pygeodesy.ltpTuples.Ned-class.html\" \n          class=\"link\">Ned</a></b> keyword arguments, ignored if \n          <code><b>Ned</b> is None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>An <b><code>Ned</code></b> instance or an <a \n          href=\"pygeodesy.ltpTuples.Ned4Tuple-class.html\" \n          class=\"link\">Ned4Tuple</a><code>(north, east, down, ltp)</code> \n          if <code><b>Ned</b> is None</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>Ned</code></b> or \n        <b><code>name_Ned_kwds</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toXyz\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toXyz</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">Xyz</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**name_Xyz_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Get the local <i>X, Y, Z</i> (XYZ) components.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>Xyz</code></strong> - Class to return XYZ (<a \n          href=\"pygeodesy.ltpTuples.XyzLocal-class.html\" \n          class=\"link\">XyzLocal</a>, <a \n          href=\"pygeodesy.ltpTuples.Enu-class.html\" class=\"link\">Enu</a>, \n          <a href=\"pygeodesy.ltpTuples.Ned-class.html\" \n          class=\"link\">Ned</a>, <a \n          href=\"pygeodesy.ltpTuples.Aer-class.html\" class=\"link\">Aer</a>) \n          or <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>name_Xyz_kwds</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>) and \n          optionally, additional <b><code>Xyz</code></b> keyword arguments,\n          ignored if <code><b>Xyz</b> is None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>An <b><code>Xyz</code></b> instance or an <a \n          href=\"pygeodesy.ltpTuples.Xyz4Tuple-class.html\" \n          class=\"link\">Xyz4Tuple</a><code>(x, y, z, ltp)</code> if \n          <code><b>Xyz</b> is None</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>Xyz</code></b> or \n        <b><code>name_Xyz_kwds</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"ltp\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">ltp</h3>\n  <p>Get the <i>local tangent plane</i> (<a \n  href=\"pygeodesy.ltp.Ltp-class.html\" class=\"link\">Ltp</a>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">ltp(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <i>local tangent plane</i> (<a href=\"pygeodesy.ltp.Ltp-class.html\" \nclass=\"link\">Ltp</a>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"xyz\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">xyz</h3>\n  <p>Get the <i>local</i> <code>(X, Y, Z)</code> coordinates (<a \n  href=\"pygeodesy.namedTuples.Vector3Tuple-class.html\" \n  class=\"link\">Vector3Tuple</a><code>(x, y, z)</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">xyz(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <i>local</i> <code>(X, Y, Z)</code> coordinates (<a \nhref=\"pygeodesy.namedTuples.Vector3Tuple-class.html\" \nclass=\"link\">Vector3Tuple</a><code>(x, y, z)</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"xyz3\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">xyz3</h3>\n  <p>Get the <i>local</i> <code>(X, Y, Z)</code> coordinates as \n  <code>3-tuple</code>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">xyz3(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <i>local</i> <code>(X, Y, Z)</code> coordinates as \n<code>3-tuple</code>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"xyz4\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">xyz4</h3>\n  <p><i>Must be overloaded</i>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">xyz4(<span class=\"summary-sig-arg\">self</span>)</span>\n        - <i>Must be overloaded</i>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"xyzLocal\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">xyzLocal</h3>\n  <p>Get this AER or NED as an <a \n  href=\"pygeodesy.ltpTuples.XyzLocal-class.html\" \n  class=\"link\">XyzLocal</a>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">xyzLocal(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get this AER or NED as an <a href=\"pygeodesy.ltpTuples.XyzLocal-class.html\"\nclass=\"link\">XyzLocal</a>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.mgrs-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.mgrs</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        Module&nbsp;mgrs\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.mgrs-module.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== MODULE DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Module mgrs</h1><p class=\"nomargin-top\"></p>\n<p>Military Grid Reference System (MGRS/NATO) references.</p>\n  <p>Classes <a href=\"pygeodesy.mgrs.Mgrs-class.html\" \n  class=\"link\">Mgrs</a>, <a href=\"pygeodesy.mgrs.Mgrs4Tuple-class.html\" \n  class=\"link\">Mgrs4Tuple</a> and <a \n  href=\"pygeodesy.mgrs.Mgrs6Tuple-class.html\" class=\"link\">Mgrs6Tuple</a> \n  and functions <a href=\"pygeodesy.mgrs-module.html#parseMGRS\" \n  class=\"link\">parseMGRS</a> and <a \n  href=\"pygeodesy.mgrs-module.html#toMgrs\" class=\"link\">toMgrs</a>.</p>\n  <p>Pure Python implementation of MGRS, UTM and UPS conversions covering \n  the entire <i>ellipsoidal</i> earth, transcoded from <i>Chris Veness</i>'\n  JavaScript originals <a \n  href=\"https://www.Movable-Type.co.UK/scripts/latlong-utm-mgrs.html\" \n  target=\"_top\">MGRS</a> and <a \n  href=\"https://www.Movable-Type.co.UK/scripts/geodesy/docs/module-mgrs.html\"\n  target=\"_top\">Module mgrs</a> and from <i>Charles Karney</i>'s C++ class \n  <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1MGRS.html\"\n  target=\"_top\">MGRS</a>.</p>\n  <p>MGRS references comprise a grid zone designation (GZD), a 100 Km grid \n  (square) tile identification and an easting and northing (in \n  <code>meter</code>).  The GZD consists of a longitudinal zone (or column)\n  <i>number</i> and latitudinal band (row) <i>letter</i> in the UTM region \n  between 80&#176;S and 84&#176;N.  Each zone (column) is 6&#176; wide and each band (row)\n  is 8&#176; high, except top band 'X' is 12&#176; tall.  In UPS polar regions below \n  80&#176;S and above 84&#176;N the GZD contains only a single <i>letter</i>, \n  <code>'A'</code> or <code>'B'</code> near the south and <code>'Y'</code> \n  or <code>'Z'</code> around the north pole (for west respectively east \n  longitudes).</p>\n  <p>See also the <a \n  href=\"https://www.FGDC.gov/standards/projects/FGDC-standards-projects/usng/fgdc_std_011_2001_usng.pdf\"\n  target=\"_top\">United States National Grid</a> and <a \n  href=\"https://WikiPedia.org/wiki/Military_grid_reference_system\" \n  target=\"_top\">Military Grid Reference System</a>.</p>\n  <p>See module <a href=\"pygeodesy.ups-module.html\" \n  class=\"link\">pygeodesy.ups</a> for env variable \n  <code>PYGEODESY_UPS_POLES</code> determining the UPS encoding <i>at</i> \n  the south and north pole.</p>\n  <p>Set env variable <code>PYGEODESY_GEOCONVERT</code> to the (fully \n  qualified) path of the <code>GeoConvert</code> executable to run this \n  module as <i>python[3] -m pygeodesy.mgrs</i> and compare the MGRS results\n  with those from <i>Karney</i>'s utility <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/GeoConvert.1.html\" \n  target=\"_top\">GeoConvert</a>.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Version:</strong>\n        25.05.12\n      </p>\n</div><!-- ==================== CLASSES ==================== -->\n<a name=\"section-Classes\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Classes</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.mgrs.Mgrs-class.html\" class=\"summary-name\">Mgrs</a><br />\n      Military Grid Reference System (MGRS/NATO) references, with method \n        to convert to UTM coordinates.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.mgrs.Mgrs4Tuple-class.html\" class=\"summary-name\">Mgrs4Tuple</a><br />\n      4-Tuple <code>(zone, EN, easting, northing)</code>, \n        <code>zone</code> and grid tile <code>EN</code> as \n        <code>str</code>, <code>easting</code> and <code>northing</code> in\n        <code>meter</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.mgrs.Mgrs6Tuple-class.html\" class=\"summary-name\">Mgrs6Tuple</a><br />\n      6-Tuple <code>(zone, EN, easting, northing, band, datum)</code>, \n        with <code>zone</code>, grid tile <code>EN</code> and \n        <code>band</code> as <code>str</code>, <code>easting</code> and \n        <code>northing</code> in <code>meter</code> and <code>datum</code> \n        a <a href=\"pygeodesy.datums.Datum-class.html\" \n        class=\"link\">Datum</a>.\n    </td>\n  </tr>\n</table>\n<!-- ==================== FUNCTIONS ==================== -->\n<a name=\"section-Functions\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Functions</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.mgrs-module.html#parseMGRS\" class=\"summary-sig-name\">parseMGRS</a>(<span class=\"summary-sig-arg\">strMGRS</span>,\n        <span class=\"summary-sig-arg\">datum</span>=<span class=\"summary-sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"summary-sig-arg\">Mgrs</span>=<span class=\"summary-sig-default\">&lt;class 'pygeodesy.mgrs.Mgrs'&gt;</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Parse a string representing a MGRS grid reference, consisting of \n      <code>&quot;[zone]Band, EN, easting, northing&quot;</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.mgrs-module.html#toMgrs\" class=\"summary-sig-name\">toMgrs</a>(<span class=\"summary-sig-arg\">utmups</span>,\n        <span class=\"summary-sig-arg\">Mgrs</span>=<span class=\"summary-sig-default\">&lt;class 'pygeodesy.mgrs.Mgrs'&gt;</span>,\n        <span class=\"summary-sig-arg\">**name_Mgrs_kwds</span>)</span><br />\n      Convert a UTM or UPS coordinate to an MGRS grid reference.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== VARIABLES ==================== -->\n<a name=\"section-Variables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Variables</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"__all__\"></a><span class=\"summary-name\">__all__</span> = <code title=\"_ALL_LAZY.mgrs\">_ALL_LAZY.mgrs</code>\n    </td>\n  </tr>\n</table>\n<!-- ==================== FUNCTION DETAILS ==================== -->\n<a name=\"section-FunctionDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Function Details</span></td>\n</tr>\n</table>\n<a name=\"parseMGRS\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">parseMGRS</span>&nbsp;(<span class=\"sig-arg\">strMGRS</span>,\n        <span class=\"sig-arg\">datum</span>=<span class=\"sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"sig-arg\">Mgrs</span>=<span class=\"sig-default\">&lt;class 'pygeodesy.mgrs.Mgrs'&gt;</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Parse a string representing a MGRS grid reference, consisting of \n  <code>&quot;[zone]Band, EN, easting, northing&quot;</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>strMGRS</code></strong> - MGRS grid reference (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>datum</code></strong> - Optional datum to use (<a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>).</li>\n        <li><strong class=\"pname\"><code>Mgrs</code></strong> - Optional class to return the MGRS grid reference (<a \n          href=\"pygeodesy.mgrs.Mgrs-class.html\" class=\"link\">Mgrs</a>) or \n          <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <b><code>Mgrs</code></b> <code><b>name</b>=NN</code> \n          (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The MGRS grid reference as <b><code>Mgrs</code></b> or if \n          <code><b>Mgrs</b> is None</code> as an <a \n          href=\"pygeodesy.mgrs.Mgrs4Tuple-class.html\" \n          class=\"link\">Mgrs4Tuple</a><code>(zone, EN, easting, \n          northing)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.MGRSError-class.html\">MGRSError</a></strong></code> - Invalid <b><code>strMGRS</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toMgrs\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toMgrs</span>&nbsp;(<span class=\"sig-arg\">utmups</span>,\n        <span class=\"sig-arg\">Mgrs</span>=<span class=\"sig-default\">&lt;class 'pygeodesy.mgrs.Mgrs'&gt;</span>,\n        <span class=\"sig-arg\">**name_Mgrs_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert a UTM or UPS coordinate to an MGRS grid reference.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>utmups</code></strong> - A UTM or UPS coordinate (<a href=\"pygeodesy.utm.Utm-class.html\" \n          class=\"link\">Utm</a>, <a href=\"pygeodesy.etm.Etm-class.html\" \n          class=\"link\">Etm</a> or <a href=\"pygeodesy.ups.Ups-class.html\" \n          class=\"link\">Ups</a>).</li>\n        <li><strong class=\"pname\"><code>Mgrs</code></strong> - Optional class to return the MGRS grid reference (<a \n          href=\"pygeodesy.mgrs.Mgrs-class.html\" class=\"link\">Mgrs</a>) or \n          <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>name_Mgrs_kwds</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>) and \n          optionally, additional <b><code>Mgrs</code></b> keyword \n          arguments, ignored if <code><b>Mgrs</b> is None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The MGRS grid reference as <b><code>Mgrs</code></b> or if \n          <code><b>Mgrs</b> is None</code> as an <a \n          href=\"pygeodesy.mgrs.Mgrs6Tuple-class.html\" \n          class=\"link\">Mgrs6Tuple</a><code>(zone, EN, easting, northing, \n          band, datum)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.MGRSError-class.html\">MGRSError</a></strong></code> - Invalid <b><code>utmups</code></b>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - If <b><code>utmups</code></b> is not <a \n        href=\"pygeodesy.utm.Utm-class.html\" class=\"link\">Utm</a>, <a \n        href=\"pygeodesy.etm.Etm-class.html\" class=\"link\">Etm</a> nor <a \n        href=\"pygeodesy.ups.Ups-class.html\" class=\"link\">Ups</a>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.mgrs.Mgrs-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.mgrs.Mgrs</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.mgrs-module.html\">Module&nbsp;mgrs</a> ::\n        Class&nbsp;Mgrs\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.mgrs.Mgrs-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Mgrs</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+        \n           |        \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n               |    \n<a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+\n                   |\n                  <strong class=\"uidshort\">Mgrs</strong>\n</pre>\n\n<hr />\n<p>Military Grid Reference System (MGRS/NATO) references, with method to \n  convert to UTM coordinates.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.mgrs.Mgrs-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">zone</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">EN</span>=<span class=\"summary-sig-default\">''</span>,\n        <span class=\"summary-sig-arg\">easting</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">northing</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">band</span>=<span class=\"summary-sig-default\">''</span>,\n        <span class=\"summary-sig-arg\">datum</span>=<span class=\"summary-sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"summary-sig-arg\">resolution</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      New <a href=\"pygeodesy.mgrs.Mgrs-class.html\" class=\"link\">Mgrs</a> \n      Military grid reference.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.mgrs.Mgrs-class.html#__str__\" class=\"summary-sig-name\">__str__</a>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Default <code>str(self)</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.mgrs.Mgrs-class.html#parse\" class=\"summary-sig-name\">parse</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">strMGRS</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Parse a string to a similar <a href=\"pygeodesy.mgrs.Mgrs-class.html\" \n      class=\"link\">Mgrs</a> instance.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.mgrs.Mgrs-class.html#toLatLon\" class=\"summary-sig-name\">toLatLon</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">LatLon</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">center</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">**toLatLon_kwds</span>)</span><br />\n      Convert this MGRS grid reference to a UTM coordinate.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.mgrs.Mgrs-class.html#toRepr\" class=\"summary-sig-name\">toRepr</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">fmt</span>=<span class=\"summary-sig-default\">'[%s]'</span>,\n        <span class=\"summary-sig-arg\">sep</span>=<span class=\"summary-sig-default\">', '</span>,\n        <span class=\"summary-sig-arg\">**prec</span>)</span><br />\n      Return a string representation of this MGRS grid reference.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.mgrs.Mgrs-class.html#toStr\" class=\"summary-sig-name\">toStr</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">prec</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">sep</span>=<span class=\"summary-sig-default\">''</span>)</span><br />\n      Return this MGRS grid reference as a string.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.mgrs.Mgrs-class.html#toUps\" class=\"summary-sig-name\">toUps</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">Ups</span>=<span class=\"summary-sig-default\">&lt;class 'pygeodesy.ups.Ups'&gt;</span>,\n        <span class=\"summary-sig-arg\">center</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Convert this MGRS grid reference to a UPS coordinate.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.mgrs.Mgrs-class.html#toUtm\" class=\"summary-sig-name\">toUtm</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">Utm</span>=<span class=\"summary-sig-default\">&lt;class 'pygeodesy.utm.Utm'&gt;</span>,\n        <span class=\"summary-sig-arg\">center</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Convert this MGRS grid reference to a UTM coordinate.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.mgrs.Mgrs-class.html#toUtmUps\" class=\"summary-sig-name\">toUtmUps</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">Utm</span>=<span class=\"summary-sig-default\">&lt;class 'pygeodesy.utm.Utm'&gt;</span>,\n        <span class=\"summary-sig-arg\">Ups</span>=<span class=\"summary-sig-default\">&lt;class 'pygeodesy.ups.Ups'&gt;</span>,\n        <span class=\"summary-sig-arg\">center</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Convert this MGRS grid reference to a UTM or UPS coordinate.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#others\">others</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.mgrs.Mgrs-class.html#band\" class=\"summary-name\">band</a><br />\n      Get the <i>latitudinal</i> band <code>'C'|..|'X'</code> (no \n      <code>'I'|'O'</code>) or <i>polar</i> region \n      <code>'A'|'B'|'Y'|'Z'</code>) letter (<code>str</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.mgrs.Mgrs-class.html#bandLatitude\" class=\"summary-name\">bandLatitude</a><br />\n      Get the band latitude (<code>degrees90</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.mgrs.Mgrs-class.html#datum\" class=\"summary-name\">datum</a><br />\n      Get the datum (<a href=\"pygeodesy.datums.Datum-class.html\" \n      class=\"link\">Datum</a>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.mgrs.Mgrs-class.html#digraph\" class=\"summary-name\">digraph</a><br />\n      DEPRECATED, use property <code>EN</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.mgrs.Mgrs-class.html#EN\" class=\"summary-name\">EN</a><br />\n      Get the 2-letter grid tile (<code>str</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.mgrs.Mgrs-class.html#en100k\" class=\"summary-name\">en100k</a><br />\n      DEPRECATED, use property <code>EN</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.mgrs.Mgrs-class.html#easting\" class=\"summary-name\">easting</a><br />\n      Get the easting (<code>meter</code> within grid tile).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.mgrs.Mgrs-class.html#eastingnorthing\" class=\"summary-name\">eastingnorthing</a><br />\n      Get easting and northing (<a \n      href=\"pygeodesy.namedTuples.EasNor2Tuple-class.html\" \n      class=\"link\">EasNor2Tuple</a><code>(easting, northing)</code>) \n      <i>within</i> the MGRS grid tile, both in <code>meter</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.mgrs.Mgrs-class.html#isUPS\" class=\"summary-name\">isUPS</a><br />\n      Is this MGRS in a (polar) UPS zone (<code>bool</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.mgrs.Mgrs-class.html#isUTM\" class=\"summary-name\">isUTM</a><br />\n      Is this MGRS in a (non-polar) UTM zone (<code>bool</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.mgrs.Mgrs-class.html#northing\" class=\"summary-name\">northing</a><br />\n      Get the northing (<code>meter</code> within grid tile).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.mgrs.Mgrs-class.html#northingBottom\" class=\"summary-name\">northingBottom</a><br />\n      Get the northing of the band bottom (<code>meter</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.mgrs.Mgrs-class.html#resolution\" class=\"summary-name\">resolution</a><br />\n      Get the MGRS resolution (<code>meter</code>, power of 10) or \n      <code>0</code> if undefined.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.mgrs.Mgrs-class.html#tilesize\" class=\"summary-name\">tilesize</a><br />\n      Get the MGRS grid tile size (<code>meter</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.mgrs.Mgrs-class.html#zone\" class=\"summary-name\">zone</a><br />\n      Get the <i>longitudinal</i> zone (<code>int</code>), 1..60 or 0 for \n      <i>polar</i>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.mgrs.Mgrs-class.html#zoneB\" class=\"summary-name\">zoneB</a><br />\n      Get the <i>polar</i> region letter or the <i>longitudinal</i> zone \n      digits plus <i>latitudinal</i> band letter (<code>str</code>).\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">zone</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">EN</span>=<span class=\"sig-default\">''</span>,\n        <span class=\"sig-arg\">easting</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">northing</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">band</span>=<span class=\"sig-default\">''</span>,\n        <span class=\"sig-arg\">datum</span>=<span class=\"sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"sig-arg\">resolution</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.mgrs.Mgrs-class.html\" class=\"link\">Mgrs</a> \n  Military grid reference.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>zone</code></strong> - The 6&#176; <i>longitudinal</i> zone (<code>int</code>), 1..60 \n          covering 180&#176;W..180&#176;E or <code>0</code> for <i>polar</i> regions \n          or (<code>str</code>) with the zone number and <i>latitudinal</i>\n          band letter.</li>\n        <li><strong class=\"pname\"><code>EN</code></strong> - Two-letter EN digraph (<code>str</code>), grid tile <i>using \n          only</i> the <i>AA</i> aka <i>MGRS-New</i> (row) <a \n          href=\"http://Wikipedia.org/wiki/Military_Grid_Reference_System\" \n          target=\"_top\">lettering scheme</a>.</li>\n        <li><strong class=\"pname\"><code>easting</code></strong> - Easting (<code>meter</code>), within 100 Km grid tile.</li>\n        <li><strong class=\"pname\"><code>northing</code></strong> - Northing (<code>meter</code>), within 100 Km grid tile.</li>\n        <li><strong class=\"pname\"><code>band</code></strong> - Optional, <i>latitudinal</i> band or <i>polar</i> region letter \n          (<code>str</code>), 'C'|..|'X' covering 80&#176;S..84&#176;N (no 'I'|'O'), \n          'A'|'B' at the south or 'Y'|'Z' at the north pole.</li>\n        <li><strong class=\"pname\"><code>datum</code></strong> - This reference's datum (<a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>, \n          <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a> or <a \n          href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>resolution</code></strong> - Optional resolution (<code>meter</code>), <code>0</code> for \n          default.</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.MGRSError-class.html\">MGRSError</a></strong></code> - Invalid <b><code>zone</code></b>, <b><code>EN</code></b>, \n        <b><code>easting</code></b>, <b><code>northing</code></b>, \n        <b><code>band</code></b> or <b><code>resolution</code></b>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>datum</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__str__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__str__</span>&nbsp;(<span class=\"sig-arg\">self</span>)</span>\n    <br /><em class=\"fname\">(Informal representation operator)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Default <code>str(self)</code>.</p>\n  <dl class=\"fields\">\n    <dt>Overrides:\n        object.__str__\n        <dd><em class=\"note\">(inherited documentation)</em></dd>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"parse\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">parse</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">strMGRS</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Parse a string to a similar <a href=\"pygeodesy.mgrs.Mgrs-class.html\" \n  class=\"link\">Mgrs</a> instance.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>strMGRS</code></strong> - The MGRS reference (<code>str</code>), see function <a \n          href=\"pygeodesy.mgrs-module.html#parseMGRS\" \n          class=\"link\">parseMGRS</a>.</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>), \n          overriding this name.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The similar instance (<a href=\"pygeodesy.mgrs.Mgrs-class.html\" \n          class=\"link\">Mgrs</a>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.MGRSError-class.html\">MGRSError</a></strong></code> - Invalid <b><code>strMGRS</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toLatLon\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toLatLon</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">LatLon</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">center</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">**toLatLon_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert this MGRS grid reference to a UTM coordinate.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>LatLon</code></strong> - Optional, ellipsoidal class to return the geodetic point \n          (<code>LatLon</code>) or <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>center</code></strong> - Optionally, return the grid's center or lower left corner \n          (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>toLatLon_kwds</code></strong> - Optional, additional <a \n          href=\"pygeodesy.utm.Utm-class.html#toLatLon\" \n          class=\"link\">Utm.toLatLon</a> and <b><code>LatLon</code></b> \n          keyword arguments.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <b><code>LatLon</code></b> instance or if <code><b>LatLon</b> \n          is None</code> a <a \n          href=\"pygeodesy.namedTuples.LatLonDatum5Tuple-class.html\" \n          class=\"link\">LatLonDatum5Tuple</a><code>(lat, lon, datum, gamma, \n          scale)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - If <b><code>LatLon</code></b> is not ellipsoidal.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.utm.UTMError-class.html\">UTMError</a></strong></code> - Invalid meridional radius or H-value.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Methods <a href=\"pygeodesy.mgrs.Mgrs-class.html#toUtm\" \n        class=\"link\">Mgrs.toUtm</a> and <a \n        href=\"pygeodesy.utm.Utm-class.html#toLatLon\" \n        class=\"link\">Utm.toLatLon</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"toRepr\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toRepr</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">fmt</span>=<span class=\"sig-default\">'[%s]'</span>,\n        <span class=\"sig-arg\">sep</span>=<span class=\"sig-default\">', '</span>,\n        <span class=\"sig-arg\">**prec</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return a string representation of this MGRS grid reference.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>fmt</code></strong> - Enclosing backets format (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>sep</code></strong> - Separator between name:values (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>prec</code></strong> - Precision (<code>int</code>), see method <a \n          href=\"pygeodesy.mgrs.Mgrs-class.html#toStr\" \n          class=\"link\">Mgrs.toStr</a>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>This Mgrs as &quot;[Z:[dd]B, G:EN, E:easting, N:northing]&quot; \n          (<code>str</code>), with <code><b>sep</b> &quot;, &quot;</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>prec</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.named._Named-class.html#toRepr\">named._Named.toRepr</a>\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        MGRS grid references are truncated, not rounded (unlike UTM/UPS \n        coordinates).\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"toStr\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toStr</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">prec</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">sep</span>=<span class=\"sig-default\">''</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return this MGRS grid reference as a string.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>prec</code></strong> - Precision, the number of <i>decimal</i> digits (<code>int</code>)\n          or if negative, the number of <i>units to drop</i>, like MGRS <a \n          href=\"https://GeographicLib.SourceForge.io/C++/doc/GeoConvert.1.html#PRECISION\"\n          target=\"_top\">PRECISION</a>.</li>\n        <li><strong class=\"pname\"><code>sep</code></strong> - Optional separator to join (<code>str</code>) or \n          <code>None</code> to return an unjoined 3-<code>tuple</code> of \n          <code>str</code>s.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>This Mgrs as 4-tuple <code>(&quot;dd]B&quot;, &quot;EN&quot;, \n          &quot;easting&quot;, &quot;northing&quot;)</code> if \n          <code><b>sep</b>=NN</code> or &quot;[dd]B EN easting \n          northing&quot; (<code>str</code>) with <code><b>sep</b> &quot; \n          &quot;</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>prec</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.named._Named-class.html#toStr\">named._Named.toStr</a>\n    </dt>\n  </dl>\n<div class=\"fields\">      <strong>Notes:</strong>\n      <ul class=\"nomargin-top\">\n        <li>\n        Both <code>easting</code> and <code>northing</code> strings are \n        <code>NN</code> or missing if <code><b>prec</b> &lt;= -5</code>.\n        </li>\n        <li>\n        MGRS grid references are truncated, not rounded (unlike UTM/UPS).\n        </li>\n      </ul>\n</div></td></tr></table>\n</div>\n<a name=\"toUps\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toUps</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">Ups</span>=<span class=\"sig-default\">&lt;class 'pygeodesy.ups.Ups'&gt;</span>,\n        <span class=\"sig-arg\">center</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert this MGRS grid reference to a UPS coordinate.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>Ups</code></strong> - Optional class to return the UPS coordinate (<a \n          href=\"pygeodesy.ups.Ups-class.html\" class=\"link\">Ups</a>) or \n          <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>center</code></strong> - Optionally, center easting and northing by the resolution \n          (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <b><code>Ups</code></b> instance or if <code><b>Ups</b> is \n          None</code> a <a \n          href=\"pygeodesy.namedTuples.UtmUps5Tuple-class.html\" \n          class=\"link\">UtmUps5Tuple</a><code>(zone, hemipole, easting, \n          northing, band)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.MGRSError-class.html\">MGRSError</a></strong></code> - This MGRS is a <i>non-polar</i> UTM reference.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toUtm\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toUtm</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">Utm</span>=<span class=\"sig-default\">&lt;class 'pygeodesy.utm.Utm'&gt;</span>,\n        <span class=\"sig-arg\">center</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert this MGRS grid reference to a UTM coordinate.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>Utm</code></strong> - Optional class to return the UTM coordinate (<a \n          href=\"pygeodesy.utm.Utm-class.html\" class=\"link\">Utm</a>) or \n          <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>center</code></strong> - Optionally, center easting and northing by the resolution \n          (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <b><code>Utm</code></b> instance or if <code><b>Utm</b> is \n          None</code> a <a \n          href=\"pygeodesy.namedTuples.UtmUps5Tuple-class.html\" \n          class=\"link\">UtmUps5Tuple</a><code>(zone, hemipole, easting, \n          northing, band)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.MGRSError-class.html\">MGRSError</a></strong></code> - This MGRS is a <i>polar</i> UPS reference.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toUtmUps\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toUtmUps</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">Utm</span>=<span class=\"sig-default\">&lt;class 'pygeodesy.utm.Utm'&gt;</span>,\n        <span class=\"sig-arg\">Ups</span>=<span class=\"sig-default\">&lt;class 'pygeodesy.ups.Ups'&gt;</span>,\n        <span class=\"sig-arg\">center</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert this MGRS grid reference to a UTM or UPS coordinate.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>Utm</code></strong> - Optional class to return the UTM coordinate (<a \n          href=\"pygeodesy.utm.Utm-class.html\" class=\"link\">Utm</a>) or \n          <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>Ups</code></strong> - Optional class to return the UPS coordinate (<a \n          href=\"pygeodesy.utm.Utm-class.html\" class=\"link\">Utm</a>) or \n          <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>center</code></strong> - Optionally, center easting and northing by the resolution \n          (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <b><code>Utm</code></b> or <b><code>Ups</code></b> instance or \n          if <code><b>Utm</b> or <b>Ups</b> is None</code> a <a \n          href=\"pygeodesy.namedTuples.UtmUps5Tuple-class.html\" \n          class=\"link\">UtmUps5Tuple</a><code>(zone, hemipole, easting, \n          northing, band)</code>.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"band\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">band</h3>\n  <p>Get the <i>latitudinal</i> band <code>'C'|..|'X'</code> (no \n  <code>'I'|'O'</code>) or <i>polar</i> region \n  <code>'A'|'B'|'Y'|'Z'</code>) letter (<code>str</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">band(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <i>latitudinal</i> band <code>'C'|..|'X'</code> (no \n<code>'I'|'O'</code>) or <i>polar</i> region <code>'A'|'B'|'Y'|'Z'</code>) \nletter (<code>str</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"bandLatitude\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">bandLatitude</h3>\n  <p>Get the band latitude (<code>degrees90</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">bandLatitude(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the band latitude (<code>degrees90</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"datum\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">datum</h3>\n  <p>Get the datum (<a href=\"pygeodesy.datums.Datum-class.html\" \n  class=\"link\">Datum</a>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">datum(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the datum (<a href=\"pygeodesy.datums.Datum-class.html\" \nclass=\"link\">Datum</a>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"digraph\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">digraph</h3>\n  <p>DEPRECATED, use property <code>EN</code>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">digraph(<span class=\"summary-sig-arg\">self</span>)</span>\n        - DEPRECATED, use property <code>EN</code>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"EN\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">EN</h3>\n  <p>Get the 2-letter grid tile (<code>str</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">EN(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the 2-letter grid tile (<code>str</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"en100k\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">en100k</h3>\n  <p>DEPRECATED, use property <code>EN</code>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">en100k(<span class=\"summary-sig-arg\">self</span>)</span>\n        - DEPRECATED, use property <code>EN</code>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"easting\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">easting</h3>\n  <p>Get the easting (<code>meter</code> within grid tile).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">easting(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the easting (<code>meter</code> within grid tile).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"eastingnorthing\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">eastingnorthing</h3>\n  <p>Get easting and northing (<a \n  href=\"pygeodesy.namedTuples.EasNor2Tuple-class.html\" \n  class=\"link\">EasNor2Tuple</a><code>(easting, northing)</code>) \n  <i>within</i> the MGRS grid tile, both in <code>meter</code>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">eastingnorthing(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get easting and northing (<a \nhref=\"pygeodesy.namedTuples.EasNor2Tuple-class.html\" \nclass=\"link\">EasNor2Tuple</a><code>(easting, northing)</code>) \n<i>within</i> the MGRS grid tile, both in <code>meter</code>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"isUPS\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">isUPS</h3>\n  <p>Is this MGRS in a (polar) UPS zone (<code>bool</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">isUPS(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Is this MGRS in a (polar) UPS zone (<code>bool</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"isUTM\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">isUTM</h3>\n  <p>Is this MGRS in a (non-polar) UTM zone (<code>bool</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">isUTM(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Is this MGRS in a (non-polar) UTM zone (<code>bool</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"northing\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">northing</h3>\n  <p>Get the northing (<code>meter</code> within grid tile).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">northing(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the northing (<code>meter</code> within grid tile).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"northingBottom\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">northingBottom</h3>\n  <p>Get the northing of the band bottom (<code>meter</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">northingBottom(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the northing of the band bottom (<code>meter</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"resolution\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">resolution</h3>\n  <p>Get the MGRS resolution (<code>meter</code>, power of 10) or \n  <code>0</code> if undefined.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">resolution(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the MGRS resolution (<code>meter</code>, power of 10) or <code>0</code>\nif undefined.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">resolution(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">resolution</span>)</span>\n        - Set the MGRS resolution (<code>meter</code>, power of 10) or <code>0</code>\nto undefine and disable UPS/UTM centering.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"tilesize\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">tilesize</h3>\n  <p>Get the MGRS grid tile size (<code>meter</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">tilesize(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the MGRS grid tile size (<code>meter</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"zone\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">zone</h3>\n  <p>Get the <i>longitudinal</i> zone (<code>int</code>), 1..60 or 0 for \n  <i>polar</i>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">zone(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <i>longitudinal</i> zone (<code>int</code>), 1..60 or 0 for \n<i>polar</i>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"zoneB\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">zoneB</h3>\n  <p>Get the <i>polar</i> region letter or the <i>longitudinal</i> zone \n  digits plus <i>latitudinal</i> band letter (<code>str</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">zoneB(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <i>polar</i> region letter or the <i>longitudinal</i> zone digits \nplus <i>latitudinal</i> band letter (<code>str</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.mgrs.Mgrs4Tuple-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.mgrs.Mgrs4Tuple</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.mgrs-module.html\">Module&nbsp;mgrs</a> ::\n        Class&nbsp;Mgrs4Tuple\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.mgrs.Mgrs4Tuple-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Mgrs4Tuple</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n   object --+        \n            |        \n        tuple --+    \n                |    \n   object --+   |    \n            |   |    \n <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n                |    \n<a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a> --+\n                    |\n                   <strong class=\"uidshort\">Mgrs4Tuple</strong>\n</pre>\n\n<hr />\n<p>4-Tuple <code>(zone, EN, easting, northing)</code>, <code>zone</code> \n  and grid tile <code>EN</code> as <code>str</code>, <code>easting</code> \n  and <code>northing</code> in <code>meter</code>.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Note:</strong>\n        The <code>zone</code> consists of either the <i>longitudinal</i> \n        zone number plus the <i>latitudinal</i> band letter or only the \n        <i>polar</i> region letter.\n      </p>\n</div><!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"toMgrs\"></a><span class=\"summary-sig-name\">toMgrs</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">**Mgrs_and_kwds</span>)</span><br />\n      Return this <a href=\"pygeodesy.mgrs.Mgrs4Tuple-class.html\" \n      class=\"link\">Mgrs4Tuple</a> as an <a \n      href=\"pygeodesy.mgrs.Mgrs-class.html\" class=\"link\">Mgrs</a> instance.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.mgrs.Mgrs4Tuple-class.html#to6Tuple\" class=\"summary-sig-name\">to6Tuple</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">band</span>=<span class=\"summary-sig-default\">''</span>,\n        <span class=\"summary-sig-arg\">datum</span>=<span class=\"summary-sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>)</span><br />\n      Extend this <a href=\"pygeodesy.mgrs.Mgrs4Tuple-class.html\" \n      class=\"link\">Mgrs4Tuple</a> to a <a \n      href=\"pygeodesy.mgrs.Mgrs6Tuple-class.html\" \n      class=\"link\">Mgrs6Tuple</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__delattr__\">__delattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__getattr__\">__getattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__setattr__\">__setattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#items\">items</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iteritems\">iteritems</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iterunits\">iterunits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#reUnit\">reUnit</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toUnits\">toUnits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>tuple</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__eq__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__iter__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__rmul__</code>,\n      <code>count</code>,\n      <code>index</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__new__\">__new__</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.mgrs.Mgrs4Tuple-class.html#digraph\" class=\"summary-name\">digraph</a><br />\n      DEPRECATED, use attribute <code>EN</code>.\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"to6Tuple\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">to6Tuple</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">band</span>=<span class=\"sig-default\">''</span>,\n        <span class=\"sig-arg\">datum</span>=<span class=\"sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Extend this <a href=\"pygeodesy.mgrs.Mgrs4Tuple-class.html\" \n  class=\"link\">Mgrs4Tuple</a> to a <a \n  href=\"pygeodesy.mgrs.Mgrs6Tuple-class.html\" \n  class=\"link\">Mgrs6Tuple</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>band</code></strong> - The band (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>datum</code></strong> - The datum (<a href=\"pygeodesy.datums.Datum-class.html\" \n          class=\"link\">Datum</a>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>An <a href=\"pygeodesy.mgrs.Mgrs6Tuple-class.html\" \n          class=\"link\">Mgrs6Tuple</a><code>(zone, EN, easting, northing, \n          band, datum)</code>.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"digraph\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">digraph</h3>\n  <p>DEPRECATED, use attribute <code>EN</code>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">digraph(<span class=\"summary-sig-arg\">self</span>)</span>\n        - DEPRECATED, use attribute <code>EN</code>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.mgrs.Mgrs6Tuple-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.mgrs.Mgrs6Tuple</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.mgrs-module.html\">Module&nbsp;mgrs</a> ::\n        Class&nbsp;Mgrs6Tuple\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.mgrs.Mgrs6Tuple-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Mgrs6Tuple</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n   object --+        \n            |        \n        tuple --+    \n                |    \n   object --+   |    \n            |   |    \n <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n                |    \n<a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a> --+\n                    |\n                   <strong class=\"uidshort\">Mgrs6Tuple</strong>\n</pre>\n\n<hr />\n<p>6-Tuple <code>(zone, EN, easting, northing, band, datum)</code>, with \n  <code>zone</code>, grid tile <code>EN</code> and <code>band</code> as \n  <code>str</code>, <code>easting</code> and <code>northing</code> in \n  <code>meter</code> and <code>datum</code> a <a \n  href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Note:</strong>\n        The <code>zone</code> is the <i>longitudinal</i> zone \n        <code>&quot;01&quot;..&quot;60&quot;</code> or \n        <code>&quot;00&quot;</code> for <i>polar</i> regions and \n        <code>band</code> is the <i>latitudinal</i> band or <i>polar</i> \n        region letter.\n      </p>\n</div><!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"toMgrs\"></a><span class=\"summary-sig-name\">toMgrs</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">Mgrs</span>=<span class=\"summary-sig-default\">&lt;class 'pygeodesy.mgrs.Mgrs'&gt;</span>,\n        <span class=\"summary-sig-arg\">**Mgrs_kwds</span>)</span><br />\n      Return this <a href=\"pygeodesy.mgrs.Mgrs6Tuple-class.html\" \n      class=\"link\">Mgrs6Tuple</a> as an <a \n      href=\"pygeodesy.mgrs.Mgrs-class.html\" class=\"link\">Mgrs</a> instance.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__delattr__\">__delattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__getattr__\">__getattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__setattr__\">__setattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#items\">items</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iteritems\">iteritems</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iterunits\">iterunits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#reUnit\">reUnit</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toUnits\">toUnits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>tuple</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__eq__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__iter__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__rmul__</code>,\n      <code>count</code>,\n      <code>index</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__new__\">__new__</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.mgrs.Mgrs6Tuple-class.html#digraph\" class=\"summary-name\">digraph</a><br />\n      DEPRECATED, use attribute <code>EN</code>.\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"digraph\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">digraph</h3>\n  <p>DEPRECATED, use attribute <code>EN</code>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">digraph(<span class=\"summary-sig-arg\">self</span>)</span>\n        - DEPRECATED, use attribute <code>EN</code>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.named-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.named</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        Module&nbsp;named\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.named-module.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== MODULE DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Module named</h1><p class=\"nomargin-top\"></p>\n<p>(INTERNAL) Nameable class instances.</p>\n  <p>Classes <code>_Named</code>, <code>_NamedDict</code>, \n  <code>_NamedEnum</code>, <code>_NamedEnumItem</code> and \n  <code>_NamedTuple</code> and several subclasses thereof, all with \n  nameable instances.</p>\n  <p>The items in a <code>_NamedDict</code> are accessable as attributes \n  and the items in a <code>_NamedTuple</code> are named to be accessable as\n  attributes, similar to standard Python <code>namedtuple</code>s.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Module <a href=\"pygeodesy.namedTuples-module.html\" \n        class=\"link\">pygeodesy.namedTuples</a> for (most of) the \n        <code>Named-Tuples</code>.\n      </p>\n      <p><strong>Version:</strong>\n        26.01.14\n      </p>\n</div><!-- ==================== CLASSES ==================== -->\n<a name=\"section-Classes\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Classes</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.named.ADict-class.html\" class=\"summary-name\">ADict</a><br />\n      A <code>dict</code> with both key <i>and</i> attribute access to \n        the <code>dict</code> items.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.named._Named-class.html\" class=\"summary-name\">_Named</a><br />\n      (INTERNAL) Root class for named objects.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.named._NamedBase-class.html\" class=\"summary-name\">_NamedBase</a><br />\n      (INTERNAL) Base class with name.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.named._NamedEnum-class.html\" class=\"summary-name\">_NamedEnum</a><br />\n      (INTERNAL) Enum-like <code>_NamedDict</code> with attribute access \n        restricted to valid keys.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.named._NamedEnumItem-class.html\" class=\"summary-name\">_NamedEnumItem</a><br />\n      (INTERNAL) Base class for items in a <code>_NamedEnum</code> \n        registry.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.named._NamedTuple-class.html\" class=\"summary-name\">_NamedTuple</a><br />\n      (INTERNAL) Base for named <code>tuple</code>s with both index \n        <i>and</i> attribute name access to the items.\n    </td>\n  </tr>\n</table>\n<!-- ==================== FUNCTIONS ==================== -->\n<a name=\"section-Functions\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Functions</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.named-module.html#callername\" class=\"summary-sig-name\">callername</a>(<span class=\"summary-sig-arg\">up</span>=<span class=\"summary-sig-default\">1</span>,\n        <span class=\"summary-sig-arg\">dflt</span>=<span class=\"summary-sig-default\">''</span>,\n        <span class=\"summary-sig-arg\">source</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">underOK</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Get the name of the invoking callable.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.named-module.html#classname\" class=\"summary-sig-name\">classname</a>(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">prefixed</span>=<span class=\"summary-sig-default\">None</span>)</span><br />\n      Return the instance' class name optionally prefixed with the module \n      name.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.named-module.html#classnaming\" class=\"summary-sig-name\">classnaming</a>(<span class=\"summary-sig-arg\">prefixed</span>=<span class=\"summary-sig-default\">None</span>)</span><br />\n      Get/set the default class naming for <code>[module.]class</code> \n      names.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.named-module.html#modulename\" class=\"summary-sig-name\">modulename</a>(<span class=\"summary-sig-arg\">clas</span>,\n        <span class=\"summary-sig-arg\">prefixed</span>=<span class=\"summary-sig-default\">None</span>)</span><br />\n      Return the class name optionally prefixed with the module name.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.named-module.html#nameof\" class=\"summary-sig-name\">nameof</a>(<span class=\"summary-sig-arg\">inst</span>)</span><br />\n      Get the name of an instance.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.named-module.html#notImplemented\" class=\"summary-sig-name\">notImplemented</a>(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">*args</span>,\n        <span class=\"summary-sig-arg\">**kwds</span>)</span><br />\n      Raise a <code>NotImplementedError</code> for a missing instance \n      method or property or for a missing caller feature.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.named-module.html#notOverloaded\" class=\"summary-sig-name\">notOverloaded</a>(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">*args</span>,\n        <span class=\"summary-sig-arg\">**kwds</span>)</span><br />\n      Raise an <code>AssertionError</code> for a method or property not \n      overloaded.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== VARIABLES ==================== -->\n<a name=\"section-Variables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Variables</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"__all__\"></a><span class=\"summary-name\">__all__</span> = <code title=\"_ALL_LAZY.named\">_ALL_LAZY.named</code>\n    </td>\n  </tr>\n</table>\n<!-- ==================== FUNCTION DETAILS ==================== -->\n<a name=\"section-FunctionDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Function Details</span></td>\n</tr>\n</table>\n<a name=\"callername\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">callername</span>&nbsp;(<span class=\"sig-arg\">up</span>=<span class=\"sig-default\">1</span>,\n        <span class=\"sig-arg\">dflt</span>=<span class=\"sig-default\">''</span>,\n        <span class=\"sig-arg\">source</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">underOK</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Get the name of the invoking callable.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>up</code></strong> - Number of call stack frames up (<code>int</code>).</li>\n        <li><strong class=\"pname\"><code>dflt</code></strong> - Default return value (<code>any</code>).</li>\n        <li><strong class=\"pname\"><code>source</code></strong> - Include source file name and line number (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>underOK</code></strong> - If <code>True</code>, private, internal callables are OK, \n          otherwise private callables are skipped (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The callable name (<code>str</code>) or <b><code>dflt</code></b> \n          if none found.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"classname\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">classname</span>&nbsp;(<span class=\"sig-arg\">inst</span>,\n        <span class=\"sig-arg\">prefixed</span>=<span class=\"sig-default\">None</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the instance' class name optionally prefixed with the module \n  name.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>inst</code></strong> - The object (any <code>type</code>).</li>\n        <li><strong class=\"pname\"><code>prefixed</code></strong> - Include the module name (<code>bool</code>), see function \n          <code>classnaming</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The <b><code>inst</code></b>'s <code>[module.]class</code> name \n          (<code>str</code>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"classnaming\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">classnaming</span>&nbsp;(<span class=\"sig-arg\">prefixed</span>=<span class=\"sig-default\">None</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Get/set the default class naming for <code>[module.]class</code> \n  names.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>prefixed</code></strong> - Include the module name (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Previous class naming setting (<code>bool</code>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"modulename\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">modulename</span>&nbsp;(<span class=\"sig-arg\">clas</span>,\n        <span class=\"sig-arg\">prefixed</span>=<span class=\"sig-default\">None</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the class name optionally prefixed with the module name.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>clas</code></strong> - The class (any <code>class</code> or <code>str</code>).</li>\n        <li><strong class=\"pname\"><code>prefixed</code></strong> - Include the module name (<code>bool</code>), see function \n          <code>classnaming</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The <b><code>class</code></b>'s <code>[module.]class</code> name \n          (<code>str</code>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"nameof\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">nameof</span>&nbsp;(<span class=\"sig-arg\">inst</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Get the name of an instance.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>inst</code></strong> - The object (any <code>type</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The instance' name (<code>str</code>) or \n          <code>&quot;&quot;</code>.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"notImplemented\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">notImplemented</span>&nbsp;(<span class=\"sig-arg\">inst</span>,\n        <span class=\"sig-arg\">*args</span>,\n        <span class=\"sig-arg\">**kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Raise a <code>NotImplementedError</code> for a missing instance method\n  or property or for a missing caller feature.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>inst</code></strong> - Caller instance (<code>any</code>) or <code>None</code> for \n          function.</li>\n        <li><strong class=\"pname\"><code>args</code></strong> - Method or property positional arguments (any <code>type</code>s).</li>\n        <li><strong class=\"pname\"><code>kwds</code></strong> - Method or property keyword arguments (any <code>type</code>s), \n          except <code><b>callername</b>=NN</code>, \n          <code><b>underOK</b>=False</code> and <code><b>up</b>=2</code>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"notOverloaded\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">notOverloaded</span>&nbsp;(<span class=\"sig-arg\">inst</span>,\n        <span class=\"sig-arg\">*args</span>,\n        <span class=\"sig-arg\">**kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Raise an <code>AssertionError</code> for a method or property not \n  overloaded.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>inst</code></strong> - Instance (<code>any</code>).</li>\n        <li><strong class=\"pname\"><code>args</code></strong> - Method or property positional arguments (any <code>type</code>s).</li>\n        <li><strong class=\"pname\"><code>kwds</code></strong> - Method or property keyword arguments (any <code>type</code>s), \n          except <code><b>callername</b>=NN</code>, \n          <code><b>underOK</b>=False</code> and <code><b>up</b>=2</code>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.named.ADict-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.named.ADict</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.named-module.html\">Module&nbsp;named</a> ::\n        Class&nbsp;ADict\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.named.ADict-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class ADict</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\nobject --+    \n         |    \n      dict --+\n             |\n            <strong class=\"uidshort\">ADict</strong>\n</pre>\n\n<dl><dt>Known Subclasses:</dt>\n<dd>\n      <ul class=\"subclass-list\">\n<li><a href=\"pygeodesy.karney.GDict-class.html\">karney.GDict</a></li><li class=\"private\">, _NamedDict</li><li>, <a href=\"pygeodesy.geodesici.XDict-class.html\">geodesici.XDict</a></li><li>, <a href=\"pygeodesy.deprecated.classes.XDist-class.html\">deprecated.classes.XDist</a></li><li class=\"private\">, auxilats._CX_Rs._Rcoeffs</li>  </ul>\n</dd></dl>\n\n<hr />\n<p>A <code>dict</code> with both key <i>and</i> attribute access to the \n  <code>dict</code> items.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__getattr__\"></a><span class=\"summary-sig-name\">__getattr__</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">name</span>)</span><br />\n      Get the value of an item by <b><code>name</code></b>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.named.ADict-class.html#__repr__\" class=\"summary-sig-name\">__repr__</a>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Default <code>repr(self)</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.named.ADict-class.html#__setattr__\" class=\"summary-sig-name\">__setattr__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">name</span>,\n        <span class=\"summary-sig-arg\">value</span>)</span><br />\n      Set the value of a <i>known</i> item by <b><code>name</code></b>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.named.ADict-class.html#__str__\" class=\"summary-sig-name\">__str__</a>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Default <code>str(self)</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.named.ADict-class.html#set_\" class=\"summary-sig-name\">set_</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">iteration</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**items</span>)</span><br />\n      Add one or several new items or replace existing ones.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"toRepr\"></a><span class=\"summary-sig-name\">toRepr</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">**prec_fmt</span>)</span><br />\n      Like <code>repr(dict)</code> but with <code>name</code> prefix and \n      with <code>floats</code> formatted by function <a \n      href=\"pygeodesy.streprs-module.html#fstr\" \n      class=\"link\">pygeodesy.fstr</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"toStr\"></a><span class=\"summary-sig-name\">toStr</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">**prec_fmt</span>)</span><br />\n      Like <code>str(dict)</code> but with <code>floats</code> formatted by\n      function <a href=\"pygeodesy.streprs-module.html#fstr\" \n      class=\"link\">pygeodesy.fstr</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>dict</code></b>:\n      <code>__cmp__</code>,\n      <code>__contains__</code>,\n      <code>__delitem__</code>,\n      <code>__eq__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__gt__</code>,\n      <code>__init__</code>,\n      <code>__iter__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__ne__</code>,\n      <code>__new__</code>,\n      <code>__setitem__</code>,\n      <code>__sizeof__</code>,\n      <code>clear</code>,\n      <code>copy</code>,\n      <code>fromkeys</code>,\n      <code>get</code>,\n      <code>has_key</code>,\n      <code>items</code>,\n      <code>iteritems</code>,\n      <code>iterkeys</code>,\n      <code>itervalues</code>,\n      <code>keys</code>,\n      <code>pop</code>,\n      <code>popitem</code>,\n      <code>setdefault</code>,\n      <code>update</code>,\n      <code>values</code>,\n      <code>viewitems</code>,\n      <code>viewkeys</code>,\n      <code>viewvalues</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__format__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS VARIABLES ==================== -->\n<a name=\"section-ClassVariables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Class Variables</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>dict</code></b>:\n      <code>__hash__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.named.ADict-class.html#iteration\" class=\"summary-name\">iteration</a><br />\n      Get the iteration number (<code>int</code>) or <code>None</code> if \n      not available/applicable.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.named.ADict-class.html#typename\" class=\"summary-name\">typename</a><br />\n      Get this <code>ADict</code>'s type name (<code>str</code>).\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__repr__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__repr__</span>&nbsp;(<span class=\"sig-arg\">self</span>)</span>\n    <br /><em class=\"fname\">(Representation operator)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Default <code>repr(self)</code>.</p>\n  <dl class=\"fields\">\n    <dt>Overrides:\n        object.__repr__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__setattr__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__setattr__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">name</span>,\n        <span class=\"sig-arg\">value</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Set the value of a <i>known</i> item by <b><code>name</code></b>.</p>\n  <dl class=\"fields\">\n    <dt>Overrides:\n        object.__setattr__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__str__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__str__</span>&nbsp;(<span class=\"sig-arg\">self</span>)</span>\n    <br /><em class=\"fname\">(Informal representation operator)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Default <code>str(self)</code>.</p>\n  <dl class=\"fields\">\n    <dt>Overrides:\n        object.__str__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"set_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">set_</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">iteration</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**items</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Add one or several new items or replace existing ones.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>iteration</code></strong> - Optional <code>iteration</code> (<code>int</code>).</li>\n        <li><strong class=\"pname\"><code>items</code></strong> - One or more <code>name=value</code> pairs.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"iteration\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">iteration</h3>\n  <p>Get the iteration number (<code>int</code>) or <code>None</code> if \n  not available/applicable.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">iteration(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the iteration number (<code>int</code>) or <code>None</code> if not \navailable/applicable.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"typename\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">typename</h3>\n  <p>Get this <code>ADict</code>'s type name (<code>str</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">typename(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get this <code>ADict</code>'s type name (<code>str</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.named._Named-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.named._Named</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.named-module.html\">Module&nbsp;named</a> ::\n        Class&nbsp;_Named\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.named._Named-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class _Named</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\nobject --+\n         |\n        <strong class=\"uidshort\">_Named</strong>\n</pre>\n\n<dl><dt>Known Subclasses:</dt>\n<dd>\n      <ul class=\"subclass-list\">\n<li><a href=\"pygeodesy.named._NamedBase-class.html\">_NamedBase</a></li><li>, <a href=\"pygeodesy.named._NamedTuple-class.html\">_NamedTuple</a></li><li>, <a href=\"pygeodesy.angles.Ang-class.html\">angles.Ang</a></li><li>, <a href=\"pygeodesy.unitsBase._NamedUnit-class.html\">unitsBase._NamedUnit</a></li><li>, <a href=\"pygeodesy.booleans._CompositeBase-class.html\">booleans._CompositeBase</a></li><li>, <a href=\"pygeodesy.booleans._LatLonBool-class.html\">booleans._LatLonBool</a></li><li>, <a href=\"pygeodesy.ecefLocals._EcefLocal-class.html\">ecefLocals._EcefLocal</a></li><li>, <a href=\"pygeodesy.elliptic.Elliptic-class.html\">elliptic.Elliptic</a></li><li>, <a href=\"pygeodesy.fsums.Fsum-class.html\">fsums.Fsum</a></li><li>, <a href=\"pygeodesy.fstats._FstatsNamed-class.html\">fstats._FstatsNamed</a></li><li>, <a href=\"pygeodesy.frechet.Frechet-class.html\">frechet.Frechet</a></li><li>, <a href=\"pygeodesy.heights._HeightNamed-class.html\">heights._HeightNamed</a></li><li>, <a href=\"pygeodesy.hausdorff.Hausdorff-class.html\">hausdorff.Hausdorff</a></li><li>, <a href=\"pygeodesy.iters._BaseIter-class.html\">iters._BaseIter</a></li><li class=\"private\">, _NamedDict</li><li>, <a href=\"pygeodesy.trf.TRFXform-class.html\">trf.TRFXform</a></li><li>, <a href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html\">auxilats.auxAngle.AuxAngle</a></li><li>, <a href=\"pygeodesy.booleans._Clip-class.html\">booleans._Clip</a></li><li class=\"private\">, clipy._CS</li><li class=\"private\">, clipy._SH</li><li class=\"private\">, geoids._Gpars</li>  </ul>\n</dd></dl>\n\n<hr />\n<p>(INTERNAL) Root class for named objects.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.named._Named-class.html#__format__\" class=\"summary-sig-name\">__format__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">fmt</span>)</span><br />\n      Not implemented.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__imatmul__\"></a><span class=\"summary-sig-name\">__imatmul__</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span><br />\n      Not implemented.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__matmul__\"></a><span class=\"summary-sig-name\">__matmul__</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span><br />\n      Not implemented.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.named._Named-class.html#__repr__\" class=\"summary-sig-name\">__repr__</a>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Default <code>repr(self)</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__rmatmul__\"></a><span class=\"summary-sig-name\">__rmatmul__</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span><br />\n      Not implemented.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.named._Named-class.html#__str__\" class=\"summary-sig-name\">__str__</a>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Default <code>str(self)</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.named._Named-class.html#attrs\" class=\"summary-sig-name\">attrs</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">*names</span>,\n        <span class=\"summary-sig-arg\">**sep_Nones_pairs_kwds</span>)</span><br />\n      Join named attributes as <i>name=value</i> strings, with \n      <code>float</code>s formatted by function <a \n      href=\"pygeodesy.streprs-module.html#fstr\" \n      class=\"link\">pygeodesy.fstr</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.named._Named-class.html#classof\" class=\"summary-sig-name\">classof</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">*args</span>,\n        <span class=\"summary-sig-arg\">**kwds</span>)</span><br />\n      Create another instance of this very class.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.named._Named-class.html#copy\" class=\"summary-sig-name\">copy</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">deep</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Make a shallow or deep copy of this instance.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.named._Named-class.html#dup\" class=\"summary-sig-name\">dup</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">deep</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">**items</span>)</span><br />\n      Duplicate this instance, replacing some attributes.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.named._Named-class.html#methodname\" class=\"summary-sig-name\">methodname</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">which</span>)</span><br />\n      Get a method <code>[module.]class.method</code> name of this object \n      (<code>str</code>).</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.named._Named-class.html#rename\" class=\"summary-sig-name\">rename</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">name</span>)</span><br />\n      Change the name.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.named._Named-class.html#renamed\" class=\"summary-sig-name\">renamed</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">name</span>)</span><br />\n      Change the name.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"toRepr\"></a><span class=\"summary-sig-name\">toRepr</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">**unused</span>)</span><br />\n      Default <code>repr(self)</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"toStr\"></a><span class=\"summary-sig-name\">toStr</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">**unused</span>)</span><br />\n      Default <code>str(self)</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.named._Named-class.html#toStr2\" class=\"summary-sig-name\">toStr2</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">**kwds</span>)</span><br />\n      DEPRECATED on 23.10.07, use method <code>toRepr</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__init__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.named._Named-class.html#classname\" class=\"summary-name\">classname</a><br />\n      Get this object's <code>[module.]class</code> name \n      (<code>str</code>), see property <code>.classnaming</code> and \n      function <code>classnaming</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.named._Named-class.html#classnaming\" class=\"summary-name\">classnaming</a><br />\n      Class <code>property</code> with a <code>.name</code> attribute.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.named._Named-class.html#iteration\" class=\"summary-name\">iteration</a><br />\n      Get the most recent iteration number (<code>int</code>) or \n      <code>None</code> if not available or not applicable.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.named._Named-class.html#name\" class=\"summary-name\">name</a><br />\n      Class <code>property</code> with a <code>.name</code> attribute.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.named._Named-class.html#named\" class=\"summary-name\">named</a><br />\n      Get the name <i>or</i> class name or <code>&quot;&quot;</code> \n      (<code>str</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.named._Named-class.html#named2\" class=\"summary-name\">named2</a><br />\n      Get the <code>class</code> name <i>and/or</i> the repr(name) or \n      <code>&quot;&quot;</code> (<code>str</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.named._Named-class.html#named3\" class=\"summary-name\">named3</a><br />\n      Get the <i>prefixed</i> <code>class</code> name <i>and/or</i> the \n      name or <code>&quot;&quot;</code> (<code>str</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.named._Named-class.html#named4\" class=\"summary-name\">named4</a><br />\n      Get the <code>package.module.class</code> name <i>and/or</i> the name\n      or <code>&quot;&quot;</code> (<code>str</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.named._Named-class.html#sizeof\" class=\"summary-name\">sizeof</a><br />\n      Get the current size in <code>bytes</code> of this instance \n      (<code>int</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.named._Named-class.html#typename\" class=\"summary-name\">typename</a><br />\n      Get this object's type name (<code>str</code>).\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__format__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__format__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">fmt</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Not implemented.</p>\n  <dl class=\"fields\">\n    <dt>Overrides:\n        object.__format__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__repr__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__repr__</span>&nbsp;(<span class=\"sig-arg\">self</span>)</span>\n    <br /><em class=\"fname\">(Representation operator)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Default <code>repr(self)</code>.</p>\n  <dl class=\"fields\">\n    <dt>Overrides:\n        object.__repr__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__str__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__str__</span>&nbsp;(<span class=\"sig-arg\">self</span>)</span>\n    <br /><em class=\"fname\">(Informal representation operator)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Default <code>str(self)</code>.</p>\n  <dl class=\"fields\">\n    <dt>Overrides:\n        object.__str__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"attrs\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">attrs</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">*names</span>,\n        <span class=\"sig-arg\">**sep_Nones_pairs_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Join named attributes as <i>name=value</i> strings, with \n  <code>float</code>s formatted by function <a \n  href=\"pygeodesy.streprs-module.html#fstr\" \n  class=\"link\">pygeodesy.fstr</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>names</code></strong> - The attribute names, all positional (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>sep_Nones_pairs_kwds</code></strong> - Keyword arguments for function <a \n          href=\"pygeodesy.streprs-module.html#pairs\" \n          class=\"link\">pygeodesy.pairs</a>, except <code><b>sep</b>=&quot;,\n          &quot;</code> and <code><b>Nones</b>=True</code> to in-/exclude \n          missing or <code>None</code>-valued attributes.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>All <code>name=value</code> pairs, joined by \n          <b><code>sep</code></b> (<code>str</code>).</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Functions <a href=\"pygeodesy.streprs-module.html#attrs\" \n        class=\"link\">pygeodesy.attrs</a>, <a \n        href=\"pygeodesy.streprs-module.html#pairs\" \n        class=\"link\">pygeodesy.pairs</a> and <a \n        href=\"pygeodesy.streprs-module.html#fstr\" \n        class=\"link\">pygeodesy.fstr</a>\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"classof\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">classof</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">*args</span>,\n        <span class=\"sig-arg\">**kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Create another instance of this very class.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>args</code></strong> - Optional, positional arguments.</li>\n        <li><strong class=\"pname\"><code>kwds</code></strong> - Optional, keyword arguments.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>New instance (<b>self.__class__</b>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"copy\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">copy</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">deep</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Make a shallow or deep copy of this instance.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>deep</code></strong> - If <code>True</code>, make a deep, otherwise a shallow copy \n          (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional, non-empty <code><b>name</b>=NN</code> \n          (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The copy (<code>This class</code>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"dup\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">dup</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">deep</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">**items</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Duplicate this instance, replacing some attributes.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>deep</code></strong> - If <code>True</code>, duplicate deep, otherwise shallow \n          (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>items</code></strong> - Attributes to be changed (<code>any</code>), including optional \n          <code><b>name</b></code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The duplicate (<code>This class</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>AttributeError</strong></code> - Some <b><code>items</code></b> invalid.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"methodname\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">methodname</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">which</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Get a method <code>[module.]class.method</code> name of this object \n  (<code>str</code>).</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>which</code></strong> - The method (<code>callable</code>).</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"rename\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">rename</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Change the name.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>name</code></strong> - The new name (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The previous name (<code>str</code>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"renamed\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">renamed</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Change the name.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>name</code></strong> - The new name (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>This instance (<code>str</code>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toStr2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toStr2</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">**kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED on 23.10.07, use method <code>toRepr</code>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_method</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"classname\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">classname</h3>\n  <p>Get this object's <code>[module.]class</code> name (<code>str</code>),\n  see property <code>.classnaming</code> and function \n  <code>classnaming</code>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">classname(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get this object's <code>[module.]class</code> name (<code>str</code>), see \nproperty <code>.classnaming</code> and function <code>classnaming</code>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"classnaming\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">classnaming</h3>\n  <p>Class <code>property</code> with a <code>.name</code> attribute.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">classnaming(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the class naming (<code>bool</code>), see function \n<code>classnaming</code>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">classnaming(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">prefixed</span>)</span>\n        - Set the class naming for <code>[module.].class</code> names \n(<code>bool</code>) to <code>True</code> to include the module name.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"iteration\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">iteration</h3>\n  <p>Get the most recent iteration number (<code>int</code>) or \n  <code>None</code> if not available or not applicable.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">iteration(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the most recent iteration number (<code>int</code>) or \n<code>None</code> if not available or not applicable.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        The interation number may be an aggregate number over several, \n        nested functions.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"name\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">name</h3>\n  <p>Class <code>property</code> with a <code>.name</code> attribute.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">name(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the name (<code>str</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">name(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">name</span>)</span>\n        - Set the <code><b>name</b>=NN</code> (<code>str</code>).\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"named\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">named</h3>\n  <p>Get the name <i>or</i> class name or <code>&quot;&quot;</code> \n  (<code>str</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">named(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the name <i>or</i> class name or <code>&quot;&quot;</code> \n(<code>str</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"named2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">named2</h3>\n  <p>Get the <code>class</code> name <i>and/or</i> the repr(name) or \n  <code>&quot;&quot;</code> (<code>str</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">named2(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <code>class</code> name <i>and/or</i> the repr(name) or \n<code>&quot;&quot;</code> (<code>str</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"named3\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">named3</h3>\n  <p>Get the <i>prefixed</i> <code>class</code> name <i>and/or</i> the name\n  or <code>&quot;&quot;</code> (<code>str</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">named3(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <i>prefixed</i> <code>class</code> name <i>and/or</i> the name or \n<code>&quot;&quot;</code> (<code>str</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"named4\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">named4</h3>\n  <p>Get the <code>package.module.class</code> name <i>and/or</i> the name \n  or <code>&quot;&quot;</code> (<code>str</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">named4(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <code>package.module.class</code> name <i>and/or</i> the name or \n<code>&quot;&quot;</code> (<code>str</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"sizeof\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">sizeof</h3>\n  <p>Get the current size in <code>bytes</code> of this instance \n  (<code>int</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">sizeof(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the current size in <code>bytes</code> of this instance \n(<code>int</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"typename\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">typename</h3>\n  <p>Get this object's type name (<code>str</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">typename(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get this object's type name (<code>str</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.named._NamedBase-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.named._NamedBase</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.named-module.html\">Module&nbsp;named</a> ::\n        Class&nbsp;_NamedBase\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.named._NamedBase-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class _NamedBase</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\nobject --+    \n         |    \n    <a href=\"pygeodesy.named._Named-class.html\">_Named</a> --+\n             |\n            <strong class=\"uidshort\">_NamedBase</strong>\n</pre>\n\n<dl><dt>Known Subclasses:</dt>\n<dd>\n      <ul class=\"subclass-list\">\n<li><a href=\"pygeodesy.ltpTuples._AbcBase-class.html\">ltpTuples._AbcBase</a></li><li>, <a href=\"pygeodesy.albers._AlbersBase-class.html\">albers._AlbersBase</a></li><li>, <a href=\"pygeodesy.ltp.Attitude-class.html\">ltp.Attitude</a></li><li>, <a href=\"pygeodesy.css.CassiniSoldner-class.html\">css.CassiniSoldner</a></li><li>, <a href=\"pygeodesy.ltp.LocalCartesian-class.html\">ltp.LocalCartesian</a></li><li>, <a href=\"pygeodesy.ecef._EcefBase-class.html\">ecef._EcefBase</a></li><li>, <a href=\"pygeodesy.named._NamedEnumItem-class.html\">_NamedEnumItem</a></li><li>, <a href=\"pygeodesy.css.Css-class.html\">css.Css</a></li><li>, <a href=\"pygeodesy.ellipses.Ellipse-class.html\">ellipses.Ellipse</a></li><li>, <a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">vector3dBase.Vector3dBase</a></li><li>, <a href=\"pygeodesy.azimuthal._AzimuthalBase-class.html\">azimuthal._AzimuthalBase</a></li><li>, <a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html\">utmupsBase.UtmUpsBase</a></li><li>, <a href=\"pygeodesy.etm.ExactTransverseMercator-class.html\">etm.ExactTransverseMercator</a></li><li>, <a href=\"pygeodesy.ltp.Frustum-class.html\">ltp.Frustum</a></li><li>, <a href=\"pygeodesy.karney._CapsBase-class.html\">karney._CapsBase</a></li><li>, <a href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html\">geodesicx.gxarea.GeodesicAreaExact</a></li><li>, <a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">latlonBase.LatLonBase</a></li><li>, <a href=\"pygeodesy.geodesici._IntersectBase-class.html\">geodesici._IntersectBase</a></li><li>, <a href=\"pygeodesy.ktm.KTransverseMercator-class.html\">ktm.KTransverseMercator</a></li><li>, <a href=\"pygeodesy.lcc.Lcc-class.html\">lcc.Lcc</a></li><li>, <a href=\"pygeodesy.mgrs.Mgrs-class.html\">mgrs.Mgrs</a></li><li>, <a href=\"pygeodesy.osgr.Osgr-class.html\">osgr.Osgr</a></li><li>, <a href=\"pygeodesy.webmercator.Wm-class.html\">webmercator.Wm</a></li><li class=\"private\">, geodesicx.gxarea._Accumulator</li>  </ul>\n</dd></dl>\n\n<hr />\n<p>(INTERNAL) Base class with name.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.named._NamedBase-class.html#__repr__\" class=\"summary-sig-name\">__repr__</a>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Default <code>repr(self)</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.named._NamedBase-class.html#__str__\" class=\"summary-sig-name\">__str__</a>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Default <code>str(self)</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.named._NamedBase-class.html#others\" class=\"summary-sig-name\">others</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">*other</span>,\n        <span class=\"summary-sig-arg\">**name_other_up</span>)</span><br />\n      Refined class comparison, invoked as <code>.others(other)</code>, \n      <code>.others(name=other)</code> or <code>.others(other, \n      name='other')</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.named._NamedBase-class.html#toRepr\" class=\"summary-sig-name\">toRepr</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">**kwds</span>)</span><br />\n      (INTERNAL) <i>Could be overloaded</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.named._NamedBase-class.html#toStr\" class=\"summary-sig-name\">toStr</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">**kwds</span>)</span><br />\n      <i>Must be overloaded</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">_Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__init__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">_Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__repr__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__repr__</span>&nbsp;(<span class=\"sig-arg\">self</span>)</span>\n    <br /><em class=\"fname\">(Representation operator)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Default <code>repr(self)</code>.</p>\n  <dl class=\"fields\">\n    <dt>Overrides:\n        object.__repr__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__str__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__str__</span>&nbsp;(<span class=\"sig-arg\">self</span>)</span>\n    <br /><em class=\"fname\">(Informal representation operator)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Default <code>str(self)</code>.</p>\n  <dl class=\"fields\">\n    <dt>Overrides:\n        object.__str__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"others\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">others</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">*other</span>,\n        <span class=\"sig-arg\">**name_other_up</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Refined class comparison, invoked as <code>.others(other)</code>, \n  <code>.others(name=other)</code> or <code>.others(other, \n  name='other')</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>other</code></strong> - The other instance (any <code>type</code>).</li>\n        <li><strong class=\"pname\"><code>name_other_up</code></strong> - Overriding <code>name=other</code> and <code>up=1</code> keyword \n          arguments.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The <b><code>other</code></b> iff compatible with this instance's\n          <code>class</code> or <code>type</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Mismatch of the <b><code>other</code></b> and this instance's \n        <code>class</code> or <code>type</code>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toRepr\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toRepr</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">**kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>(INTERNAL) <i>Could be overloaded</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>kwds</code></strong> - Optional, <code>toStr</code> keyword arguments.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>toStr</code>() with keyword arguments (as \n          <code>str</code>).</dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.named._Named-class.html#toRepr\">_Named.toRepr</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toStr\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toStr</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">**kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p><i>Must be overloaded</i>.</p>\n  <dl class=\"fields\">\n    <dt>Overrides:\n        <a href=\"pygeodesy.named._Named-class.html#toStr\">_Named.toStr</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.named._NamedEnum-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.named._NamedEnum</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.named-module.html\">Module&nbsp;named</a> ::\n        Class&nbsp;_NamedEnum\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.named._NamedEnum-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class _NamedEnum</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\nobject --+            \n         |            \n      dict --+        \n             |        \n         <a href=\"pygeodesy.named.ADict-class.html\">ADict</a> --+    \n                 |    \n    object --+   |    \n             |   |    \n        <a href=\"pygeodesy.named._Named-class.html\">_Named</a> --+    \n                 |    \n        _NamedDict --+\n                     |\n                    <strong class=\"uidshort\">_NamedEnum</strong>\n</pre>\n\n<dl><dt>Known Subclasses:</dt>\n<dd>\n      <ul class=\"subclass-list\">\n<li class=\"private\">triaxials.bases._TriaxialsBase</li>  </ul>\n</dd></dl>\n\n<hr />\n<p>(INTERNAL) Enum-like <code>_NamedDict</code> with attribute access \n  restricted to valid keys.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.named._NamedEnum-class.html#__getattr__\" class=\"summary-sig-name\">__getattr__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">name</span>)</span><br />\n      Get the value of an attribute or item by <b><code>name</code></b>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\"><pre class=\"literalblock\">\nnew empty dictionary\n\n</pre></span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.named._NamedEnum-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">Class</span>,\n        <span class=\"summary-sig-arg\">*Classes</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      New <code>_NamedEnum</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.named._NamedEnum-class.html#__repr__\" class=\"summary-sig-name\">__repr__</a>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Default <code>repr(self)</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.named._NamedEnum-class.html#__str__\" class=\"summary-sig-name\">__str__</a>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Default <code>str(self)</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.named._NamedEnum-class.html#find\" class=\"summary-sig-name\">find</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">item</span>,\n        <span class=\"summary-sig-arg\">dflt</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">all</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Find a registered item.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">D[k] if k in D, else d</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.named._NamedEnum-class.html#get\" class=\"summary-sig-name\">get</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">name</span>,\n        <span class=\"summary-sig-arg\">dflt</span>=<span class=\"summary-sig-default\">None</span>)</span><br />\n      Get the value of a <i>registered</i> item.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">list of D's (key, value) pairs, as 2-tuples</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.named._NamedEnum-class.html#items\" class=\"summary-sig-name\">items</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">all</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">asorted</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Yield all or only the <i>registered</i> items.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">list of D's keys</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.named._NamedEnum-class.html#keys\" class=\"summary-sig-name\">keys</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">**all_asorted</span>)</span><br />\n      Yield the name (<code>str</code>) of <i>all</i> or only the currently\n      <i>registered</i> items, optionally sorted <i>alphabetically, \n      case-insensitively</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">v, remove specified key and return the corresponding value</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.named._NamedEnum-class.html#pop\" class=\"summary-sig-name\">pop</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">name_or_item</span>)</span><br />\n      Remove a <i>registered</i> item.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">(k, v), remove and return some (key, value) pair as a</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.named._NamedEnum-class.html#popitem\" class=\"summary-sig-name\">popitem</a>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Remove <i>an, any</i> currently <i>registed</i> item.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.named._NamedEnum-class.html#register\" class=\"summary-sig-name\">register</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">item</span>)</span><br />\n      Registed one new item or <i>all</i> or <i>any</i> unregistered ones.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.named._NamedEnum-class.html#toRepr\" class=\"summary-sig-name\">toRepr</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">prec</span>=<span class=\"summary-sig-default\">6</span>,\n        <span class=\"summary-sig-arg\">fmt</span>=<span class=\"summary-sig-default\">'F'</span>,\n        <span class=\"summary-sig-arg\">sep</span>=<span class=\"summary-sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">,\\n</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"summary-sig-arg\">**all_asorted</span>)</span><br />\n      Like <code>repr(dict)</code> but <code>name</code>s optionally sorted\n      and <code>floats</code> formatted by function <a \n      href=\"pygeodesy.streprs-module.html#fstr\" \n      class=\"link\">pygeodesy.fstr</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.named._NamedEnum-class.html#toStr\" class=\"summary-sig-name\">toStr</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">*unused</span>,\n        <span class=\"summary-sig-arg\">**all_asorted</span>)</span><br />\n      Return a string with all <code>name</code>s, optionally sorted.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">v, remove specified key and return the corresponding value</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.named._NamedEnum-class.html#unregister\" class=\"summary-sig-name\">unregister</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">name_or_item</span>)</span><br />\n      Remove a <i>registered</i> item.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">list of D's values</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.named._NamedEnum-class.html#values\" class=\"summary-sig-name\">values</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">**all_asorted</span>)</span><br />\n      Yield the value (<code>type</code>) of all or only the \n      <i>registered</i> items, optionally sorted <i>alphabetically</i> and \n      <i>case-insensitively</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>_NamedDict</code></b>:\n      <code>__delattr__</code>,\n      <code>__getitem__</code>,\n      <code>__setattr__</code>,\n      <code>__setitem__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named.ADict-class.html\">ADict</a></code></b>:\n      <code><a href=\"pygeodesy.named.ADict-class.html#set_\">set_</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>dict</code></b>:\n      <code>__cmp__</code>,\n      <code>__contains__</code>,\n      <code>__delitem__</code>,\n      <code>__eq__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__gt__</code>,\n      <code>__iter__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__ne__</code>,\n      <code>__new__</code>,\n      <code>__sizeof__</code>,\n      <code>clear</code>,\n      <code>copy</code>,\n      <code>fromkeys</code>,\n      <code>has_key</code>,\n      <code>iteritems</code>,\n      <code>iterkeys</code>,\n      <code>itervalues</code>,\n      <code>setdefault</code>,\n      <code>update</code>,\n      <code>viewitems</code>,\n      <code>viewkeys</code>,\n      <code>viewvalues</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">_Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS VARIABLES ==================== -->\n<a name=\"section-ClassVariables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Class Variables</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>dict</code></b>:\n      <code>__hash__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named.ADict-class.html\">ADict</a></code></b>:\n      <code><a href=\"pygeodesy.named.ADict-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named.ADict-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">_Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__getattr__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__getattr__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">name</span>)</span>\n    <br /><em class=\"fname\">(Qualification operator)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Get the value of an attribute or item by <b><code>name</code></b>.</p>\n  <dl class=\"fields\">\n    <dt>Overrides:\n        <a href=\"pygeodesy.named.ADict-class.html#__getattr__\">ADict.__getattr__</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">Class</span>,\n        <span class=\"sig-arg\">*Classes</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <code>_NamedEnum</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>Class</code></strong> - Initial class or type acceptable as items values \n          (<code>type</code>).</li>\n        <li><strong class=\"pname\"><code>Classes</code></strong> - Additional, acceptable classes or <code>type</code>s.</li>\n    </ul></dd>\n    <dt>Returns: <pre class=\"literalblock\">\nnew empty dictionary\n\n</pre></dt>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__repr__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__repr__</span>&nbsp;(<span class=\"sig-arg\">self</span>)</span>\n    <br /><em class=\"fname\">(Representation operator)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Default <code>repr(self)</code>.</p>\n  <dl class=\"fields\">\n    <dt>Overrides:\n        object.__repr__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__str__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__str__</span>&nbsp;(<span class=\"sig-arg\">self</span>)</span>\n    <br /><em class=\"fname\">(Informal representation operator)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Default <code>str(self)</code>.</p>\n  <dl class=\"fields\">\n    <dt>Overrides:\n        object.__str__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"find\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">find</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">item</span>,\n        <span class=\"sig-arg\">dflt</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">all</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Find a registered item.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>item</code></strong> - The item to look for (any <code>type</code>).</li>\n        <li><strong class=\"pname\"><code>dflt</code></strong> - Value to return if not found (any <code>type</code>).</li>\n        <li><strong class=\"pname\"><code>all</code></strong> - Use <code>True</code> to search <i>all</i> items or \n          <code>False</code> only the currently <i>registered</i> ones \n          (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The <b><code>item</code></b>'s name if found (<code>str</code>), \n          or <code>{dflt}</code> if there is no such \n          <b><code>item</code></b>.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"get\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">get</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">name</span>,\n        <span class=\"sig-arg\">dflt</span>=<span class=\"sig-default\">None</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Get the value of a <i>registered</i> item.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>name</code></strong> - The name of the item (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>dflt</code></strong> - Value to return (any <code>type</code>).</li>\n    </ul></dd>\n    <dt>Returns: D[k] if k in D, else d</dt>\n        <dd>The item with <b><code>name</code></b> if found, or \n          <b><code>dflt</code></b> if there is no <i>registered</i> item \n          with that <b><code>name</code></b>.</dd>\n    <dt>Overrides:\n        dict.get\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"items\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">items</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">all</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">asorted</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Yield all or only the <i>registered</i> items.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>all</code></strong> - Use <code>True</code> to yield <i>all</i> items or \n          <code>False</code> for only the currently <i>registered</i> ones \n          (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>asorted</code></strong> - If <code>True</code>, yield the items in <i>alphabetical, \n          case-insensitive</i> order (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns: list of D's (key, value) pairs, as 2-tuples</dt>\n    <dt>Overrides:\n        dict.items\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"keys\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">keys</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">**all_asorted</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Yield the name (<code>str</code>) of <i>all</i> or only the currently \n  <i>registered</i> items, optionally sorted <i>alphabetically, \n  case-insensitively</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>all_asorted</code></strong> - See method <code>items</code>.</li>\n    </ul></dd>\n    <dt>Returns: list of D's keys</dt>\n    <dt>Overrides:\n        dict.keys\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"pop\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">pop</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">name_or_item</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Remove a <i>registered</i> item.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>name_or_item</code></strong> - Name (<code>str</code>) or the item (any <code>type</code>).</li>\n    </ul></dd>\n    <dt>Returns: v, remove specified key and return the corresponding value</dt>\n        <dd>The unregistered item.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>AttributeError</strong></code> - No such <b><code>item</code></b>.</li>\n        <li><code><strong class='fraise'>NameError</strong></code> - No item with that <b><code>name</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        dict.pop\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"popitem\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">popitem</span>&nbsp;(<span class=\"sig-arg\">self</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Remove <i>an, any</i> currently <i>registed</i> item.</p>\n  <dl class=\"fields\">\n    <dt>Returns: (k, v), remove and return some (key, value) pair as a</dt>\n        <dd>The removed item.</dd>\n    <dt>Overrides:\n        dict.popitem\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"register\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">register</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">item</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Registed one new item or <i>all</i> or <i>any</i> unregistered \n  ones.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>item</code></strong> - The item (any <code>type</code>) or <b><i>all</i></b> or \n          <b><code>any</code></b>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The item name (<code>str</code>) or C(&quot;all&quot;) or \n          <code>&quot;any&quot;</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>NameError</strong></code> - An <b><code>item</code></b> with that name is already registered \n        the <b><code>item</code></b> has no or an invalid name.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - The <b><code>item</code></b> type invalid.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toRepr\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toRepr</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">prec</span>=<span class=\"sig-default\">6</span>,\n        <span class=\"sig-arg\">fmt</span>=<span class=\"sig-default\">'F'</span>,\n        <span class=\"sig-arg\">sep</span>=<span class=\"sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">,\\n</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"sig-arg\">**all_asorted</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Like <code>repr(dict)</code> but <code>name</code>s optionally sorted \n  and <code>floats</code> formatted by function <a \n  href=\"pygeodesy.streprs-module.html#fstr\" \n  class=\"link\">pygeodesy.fstr</a>.</p>\n  <dl class=\"fields\">\n    <dt>Overrides:\n        <a href=\"pygeodesy.named._Named-class.html#toRepr\">_Named.toRepr</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toStr\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toStr</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">*unused</span>,\n        <span class=\"sig-arg\">**all_asorted</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return a string with all <code>name</code>s, optionally sorted.</p>\n  <dl class=\"fields\">\n    <dt>Overrides:\n        <a href=\"pygeodesy.named._Named-class.html#toStr\">_Named.toStr</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"unregister\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">unregister</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">name_or_item</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Remove a <i>registered</i> item.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>name_or_item</code></strong> - Name (<code>str</code>) or the item (any <code>type</code>).</li>\n    </ul></dd>\n    <dt>Returns: v, remove specified key and return the corresponding value</dt>\n        <dd>The unregistered item.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>AttributeError</strong></code> - No such <b><code>item</code></b>.</li>\n        <li><code><strong class='fraise'>NameError</strong></code> - No item with that <b><code>name</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"values\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">values</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">**all_asorted</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Yield the value (<code>type</code>) of all or only the \n  <i>registered</i> items, optionally sorted <i>alphabetically</i> and \n  <i>case-insensitively</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>all_asorted</code></strong> - See method <code>items</code>.</li>\n    </ul></dd>\n    <dt>Returns: list of D's values</dt>\n    <dt>Overrides:\n        dict.values\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.named._NamedEnumItem-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.named._NamedEnumItem</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.named-module.html\">Module&nbsp;named</a> ::\n        Class&nbsp;_NamedEnumItem\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.named._NamedEnumItem-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class _NamedEnumItem</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\nobject --+        \n         |        \n    <a href=\"pygeodesy.named._Named-class.html\">_Named</a> --+    \n             |    \n    <a href=\"pygeodesy.named._NamedBase-class.html\">_NamedBase</a> --+\n                 |\n                <strong class=\"uidshort\">_NamedEnumItem</strong>\n</pre>\n\n<dl><dt>Known Subclasses:</dt>\n<dd>\n      <ul class=\"subclass-list\">\n<li><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html\">triaxials.bases._UnOrderedTriaxialBase</a></li><li>, <a href=\"pygeodesy.lcc.Conic-class.html\">lcc.Conic</a></li><li>, <a href=\"pygeodesy.datums.Datum-class.html\">datums.Datum</a></li><li>, <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\">ellipsoids.Ellipsoid</a></li><li>, <a href=\"pygeodesy.trf.RefFrame-class.html\">trf.RefFrame</a></li><li>, <a href=\"pygeodesy.datums.Transform-class.html\">datums.Transform</a></li>  </ul>\n</dd></dl>\n\n<hr />\n<p>(INTERNAL) Base class for items in a <code>_NamedEnum</code> \n  registry.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.named._NamedEnumItem-class.html#unregister\" class=\"summary-sig-name\">unregister</a>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Remove this instance from its <code>_NamedEnum</code> registry.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">_NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#others\">others</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#toStr\">toStr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">_Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__init__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.named._NamedEnumItem-class.html#name\" class=\"summary-name\">name</a><br />\n      Class <code>property</code> with a <code>.name</code> attribute.\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">_Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"unregister\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">unregister</span>&nbsp;(<span class=\"sig-arg\">self</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Remove this instance from its <code>_NamedEnum</code> registry.</p>\n  <dl class=\"fields\">\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>AssertionError</strong></code> - Mismatch of this and registered item.</li>\n        <li><code><strong class='fraise'>NameError</strong></code> - This item is unregistered.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"name\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">name</h3>\n  <p>Class <code>property</code> with a <code>.name</code> attribute.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">name(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <i>registered</i> name (<code>str</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">name(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">name</span>)</span>\n        - Set the name, unless already registered (<code>str</code>).\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.named._NamedTuple-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.named._NamedTuple</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.named-module.html\">Module&nbsp;named</a> ::\n        Class&nbsp;_NamedTuple\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.named._NamedTuple-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class _NamedTuple</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\nobject --+    \n         |    \n     tuple --+\n             |\nobject --+   |\n         |   |\n    <a href=\"pygeodesy.named._Named-class.html\">_Named</a> --+\n             |\n            <strong class=\"uidshort\">_NamedTuple</strong>\n</pre>\n\n<dl><dt>Known Subclasses:</dt>\n<dd>\n      <ul class=\"subclass-list\">\n<li class=\"private\">ltpTuples._Abc4Tuple</li><li>, <a href=\"pygeodesy.albers.Albers7Tuple-class.html\">albers.Albers7Tuple</a></li><li>, <a href=\"pygeodesy.karney.Area3Tuple-class.html\">karney.Area3Tuple</a></li><li>, <a href=\"pygeodesy.ltpTuples.Attitude4Tuple-class.html\">ltpTuples.Attitude4Tuple</a></li><li>, <a href=\"pygeodesy.azimuthal.Azimuthal7Tuple-class.html\">azimuthal.Azimuthal7Tuple</a></li><li>, <a href=\"pygeodesy.namedTuples.Bearing2Tuple-class.html\">namedTuples.Bearing2Tuple</a></li><li class=\"private\">, angles._Ang3Tuple</li><li class=\"private\">, namedTuples._NamedTupleTo</li><li>, <a href=\"pygeodesy.namedTuples.Bounds2Tuple-class.html\">namedTuples.Bounds2Tuple</a></li><li>, <a href=\"pygeodesy.namedTuples.Bounds4Tuple-class.html\">namedTuples.Bounds4Tuple</a></li><li>, <a href=\"pygeodesy.namedTuples.Vector4Tuple-class.html\">namedTuples.Vector4Tuple</a></li><li>, <a href=\"pygeodesy.ltpTuples.Local9Tuple-class.html\">ltpTuples.Local9Tuple</a></li><li>, <a href=\"pygeodesy.ltpTuples.ChLVEN2Tuple-class.html\">ltpTuples.ChLVEN2Tuple</a></li><li>, <a href=\"pygeodesy.ltpTuples.ChLVYX2Tuple-class.html\">ltpTuples.ChLVYX2Tuple</a></li><li>, <a href=\"pygeodesy.ltpTuples.ChLVyx2Tuple-class.html\">ltpTuples.ChLVyx2Tuple</a></li><li>, <a href=\"pygeodesy.vector2d.Circin6Tuple-class.html\">vector2d.Circin6Tuple</a></li><li>, <a href=\"pygeodesy.namedTuples.Circle4Tuple-class.html\">namedTuples.Circle4Tuple</a></li><li>, <a href=\"pygeodesy.vector2d.Circum3Tuple-class.html\">vector2d.Circum3Tuple</a></li><li>, <a href=\"pygeodesy.vector2d.Circum4Tuple-class.html\">vector2d.Circum4Tuple</a></li><li>, <a href=\"pygeodesy.deprecated.classes._Deprecated_NamedTuple-class.html\">deprecated.classes._Deprecated_NamedTuple</a></li><li>, <a href=\"pygeodesy.clipy.ClipCS4Tuple-class.html\">clipy.ClipCS4Tuple</a></li><li>, <a href=\"pygeodesy.clipy.ClipFHP4Tuple-class.html\">clipy.ClipFHP4Tuple</a></li><li>, <a href=\"pygeodesy.clipy.ClipLB6Tuple-class.html\">clipy.ClipLB6Tuple</a></li><li>, <a href=\"pygeodesy.clipy.ClipSH3Tuple-class.html\">clipy.ClipSH3Tuple</a></li><li>, <a href=\"pygeodesy.resections.Collins5Tuple-class.html\">resections.Collins5Tuple</a></li><li class=\"private\">, <a href=\"pygeodesy.triaxials.bases.Conformal5Tuple-class.html\" onclick=\"show_private();\">triaxials.bases.Conformal5Tuple</a></li><li>, <a href=\"pygeodesy.ellipsoids.Curvature2Tuple-class.html\">ellipsoids.Curvature2Tuple</a></li><li>, <a href=\"pygeodesy.namedTuples.Destination2Tuple-class.html\">namedTuples.Destination2Tuple</a></li><li>, <a href=\"pygeodesy.namedTuples.Destination3Tuple-class.html\">namedTuples.Destination3Tuple</a></li><li class=\"private\">, karney._GTuple</li><li>, <a href=\"pygeodesy.namedTuples.Distance2Tuple-class.html\">namedTuples.Distance2Tuple</a></li><li>, <a href=\"pygeodesy.namedTuples.Distance3Tuple-class.html\">namedTuples.Distance3Tuple</a></li><li>, <a href=\"pygeodesy.namedTuples.Distance4Tuple-class.html\">namedTuples.Distance4Tuple</a></li><li>, <a href=\"pygeodesy.fsums.DivMod2Tuple-class.html\">fsums.DivMod2Tuple</a></li><li>, <a href=\"pygeodesy.namedTuples.EasNor2Tuple-class.html\">namedTuples.EasNor2Tuple</a></li><li>, <a href=\"pygeodesy.namedTuples.EasNor3Tuple-class.html\">namedTuples.EasNor3Tuple</a></li><li>, <a href=\"pygeodesy.css.EasNorAziRk4Tuple-class.html\">css.EasNorAziRk4Tuple</a></li><li>, <a href=\"pygeodesy.css.EasNorAziRkEqu6Tuple-class.html\">css.EasNorAziRkEqu6Tuple</a></li><li>, <a href=\"pygeodesy.webmercator.EasNorRadius3Tuple-class.html\">webmercator.EasNorRadius3Tuple</a></li><li>, <a href=\"pygeodesy.ecef.Ecef9Tuple-class.html\">ecef.Ecef9Tuple</a></li><li>, <a href=\"pygeodesy.ecef.EcefMatrix-class.html\">ecef.EcefMatrix</a></li><li>, <a href=\"pygeodesy.elevations.Elevation2Tuple-class.html\">elevations.Elevation2Tuple</a></li><li>, <a href=\"pygeodesy.namedTuples.Ellipse5Tuple-class.html\">namedTuples.Ellipse5Tuple</a></li><li>, <a href=\"pygeodesy.elliptic.Elliptic3Tuple-class.html\">elliptic.Elliptic3Tuple</a></li><li>, <a href=\"pygeodesy.ltpTuples.Footprint5Tuple-class.html\">ltpTuples.Footprint5Tuple</a></li><li>, <a href=\"pygeodesy.namedTuples.Forward4Tuple-class.html\">namedTuples.Forward4Tuple</a></li><li>, <a href=\"pygeodesy.frechet.Frechet6Tuple-class.html\">frechet.Frechet6Tuple</a></li><li>, <a href=\"pygeodesy.fsums.Fsum2Tuple-class.html\">fsums.Fsum2Tuple</a></li><li>, <a href=\"pygeodesy.elevations.GeoidHeight2Tuple-class.html\">elevations.GeoidHeight2Tuple</a></li><li>, <a href=\"pygeodesy.geoids.GeoidHeight5Tuple-class.html\">geoids.GeoidHeight5Tuple</a></li><li>, <a href=\"pygeodesy.hausdorff.Hausdorff6Tuple-class.html\">hausdorff.Hausdorff6Tuple</a></li><li>, <a href=\"pygeodesy.geodesici.Intersect7Tuple-class.html\">geodesici.Intersect7Tuple</a></li><li>, <a href=\"pygeodesy.namedTuples.Intersection3Tuple-class.html\">namedTuples.Intersection3Tuple</a></li><li>, <a href=\"pygeodesy.geodesici.Intersectool5Tuple-class.html\">geodesici.Intersectool5Tuple</a></li><li>, <a href=\"pygeodesy.namedTuples.LatLon2Tuple-class.html\">namedTuples.LatLon2Tuple</a></li><li>, <a href=\"pygeodesy.namedTuples.LatLon3Tuple-class.html\">namedTuples.LatLon3Tuple</a></li><li>, <a href=\"pygeodesy.css.LatLonAziRk4Tuple-class.html\">css.LatLonAziRk4Tuple</a></li><li>, <a href=\"pygeodesy.namedTuples.LatLonDatum3Tuple-class.html\">namedTuples.LatLonDatum3Tuple</a></li><li>, <a href=\"pygeodesy.namedTuples.LatLonPrec3Tuple-class.html\">namedTuples.LatLonPrec3Tuple</a></li><li>, <a href=\"pygeodesy.vector2d.Meeus2Tuple-class.html\">vector2d.Meeus2Tuple</a></li><li>, <a href=\"pygeodesy.mgrs.Mgrs4Tuple-class.html\">mgrs.Mgrs4Tuple</a></li><li>, <a href=\"pygeodesy.mgrs.Mgrs6Tuple-class.html\">mgrs.Mgrs6Tuple</a></li><li>, <a href=\"pygeodesy.namedTuples.NearestOn2Tuple-class.html\">namedTuples.NearestOn2Tuple</a></li><li>, <a href=\"pygeodesy.namedTuples.NearestOn3Tuple-class.html\">namedTuples.NearestOn3Tuple</a></li><li>, <a href=\"pygeodesy.namedTuples.NearestOn6Tuple-class.html\">namedTuples.NearestOn6Tuple</a></li><li>, <a href=\"pygeodesy.namedTuples.NearestOn8Tuple-class.html\">namedTuples.NearestOn8Tuple</a></li><li>, <a href=\"pygeodesy.namedTuples.PhiLam2Tuple-class.html\">namedTuples.PhiLam2Tuple</a></li><li>, <a href=\"pygeodesy.namedTuples.PhiLam3Tuple-class.html\">namedTuples.PhiLam3Tuple</a></li><li>, <a href=\"pygeodesy.namedTuples.PhiLam4Tuple-class.html\">namedTuples.PhiLam4Tuple</a></li><li>, <a href=\"pygeodesy.namedTuples.Point3Tuple-class.html\">namedTuples.Point3Tuple</a></li><li>, <a href=\"pygeodesy.namedTuples.Points2Tuple-class.html\">namedTuples.Points2Tuple</a></li><li>, <a href=\"pygeodesy.formy.Radical2Tuple-class.html\">formy.Radical2Tuple</a></li><li>, <a href=\"pygeodesy.vector2d.Radii11Tuple-class.html\">vector2d.Radii11Tuple</a></li><li>, <a href=\"pygeodesy.geohash.Resolutions2Tuple-class.html\">geohash.Resolutions2Tuple</a></li><li>, <a href=\"pygeodesy.namedTuples.Reverse4Tuple-class.html\">namedTuples.Reverse4Tuple</a></li><li>, <a href=\"pygeodesy.points.Shape2Tuple-class.html\">points.Shape2Tuple</a></li><li>, <a href=\"pygeodesy.geohash.Sizes3Tuple-class.html\">geohash.Sizes3Tuple</a></li><li>, <a href=\"pygeodesy.vector2d.Soddy4Tuple-class.html\">vector2d.Soddy4Tuple</a></li><li>, <a href=\"pygeodesy.resections.Survey3Tuple-class.html\">resections.Survey3Tuple</a></li><li>, <a href=\"pygeodesy.trf.TRFXform7Tuple-class.html\">trf.TRFXform7Tuple</a></li><li>, <a href=\"pygeodesy.resections.Tienstra7Tuple-class.html\">resections.Tienstra7Tuple</a></li><li>, <a href=\"pygeodesy.resections.TriAngle5Tuple-class.html\">resections.TriAngle5Tuple</a></li><li>, <a href=\"pygeodesy.resections.TriSide2Tuple-class.html\">resections.TriSide2Tuple</a></li><li>, <a href=\"pygeodesy.resections.TriSide4Tuple-class.html\">resections.TriSide4Tuple</a></li><li>, <a href=\"pygeodesy.namedTuples.Triangle7Tuple-class.html\">namedTuples.Triangle7Tuple</a></li><li>, <a href=\"pygeodesy.namedTuples.Triangle8Tuple-class.html\">namedTuples.Triangle8Tuple</a></li><li>, <a href=\"pygeodesy.vector2d.Triaxum5Tuple-class.html\">vector2d.Triaxum5Tuple</a></li><li>, <a href=\"pygeodesy.namedTuples.Trilaterate5Tuple-class.html\">namedTuples.Trilaterate5Tuple</a></li><li>, <a href=\"pygeodesy.namedTuples.UtmUps2Tuple-class.html\">namedTuples.UtmUps2Tuple</a></li><li>, <a href=\"pygeodesy.namedTuples.UtmUps5Tuple-class.html\">namedTuples.UtmUps5Tuple</a></li><li>, <a href=\"pygeodesy.namedTuples.UtmUps8Tuple-class.html\">namedTuples.UtmUps8Tuple</a></li><li>, <a href=\"pygeodesy.namedTuples.UtmUpsLatLon5Tuple-class.html\">namedTuples.UtmUpsLatLon5Tuple</a></li><li>, <a href=\"pygeodesy.ltpTuples.Uvw3Tuple-class.html\">ltpTuples.Uvw3Tuple</a></li><li>, <a href=\"pygeodesy.namedTuples.Vector2Tuple-class.html\">namedTuples.Vector2Tuple</a></li><li>, <a href=\"pygeodesy.namedTuples.Vector3Tuple-class.html\">namedTuples.Vector3Tuple</a></li><li>, <a href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\">ellipsoids.a_f2Tuple</a></li><li class=\"private\">, namedTuples.NearestOn5Tuple</li>  </ul>\n</dd></dl>\n\n<hr />\n<p>(INTERNAL) Base for named <code>tuple</code>s with both index \n  <i>and</i> attribute name access to the items.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Note:</strong>\n        This class is similar to Python's <code>namedtuple</code>, but \n        statically defined, lighter and limited.\n      </p>\n</div><!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.named._NamedTuple-class.html#__delattr__\" class=\"summary-sig-name\">__delattr__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">name</span>)</span><br />\n      Delete an attribute by <b><code>name</code></b>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__getattr__\"></a><span class=\"summary-sig-name\">__getattr__</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">name</span>)</span><br />\n      Get the value of an attribute or item by <b><code>name</code></b>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.named._NamedTuple-class.html#__hash__\" class=\"summary-sig-name\">__hash__</a>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      hash(x)</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.named._NamedTuple-class.html#__repr__\" class=\"summary-sig-name\">__repr__</a>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Default <code>repr(self)</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.named._NamedTuple-class.html#__setattr__\" class=\"summary-sig-name\">__setattr__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">name</span>,\n        <span class=\"summary-sig-arg\">value</span>)</span><br />\n      Set attribute or item <b><code>name</code></b> to \n      <b><code>value</code></b>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.named._NamedTuple-class.html#__str__\" class=\"summary-sig-name\">__str__</a>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Default <code>repr(self)</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.named._NamedTuple-class.html#dup\" class=\"summary-sig-name\">dup</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">name</span>=<span class=\"summary-sig-default\">''</span>,\n        <span class=\"summary-sig-arg\">**items</span>)</span><br />\n      Duplicate this tuple replacing one or more items.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.named._NamedTuple-class.html#items\" class=\"summary-sig-name\">items</a>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Yield the items, each as a <code>(name, value)</code> pair \n      (<code>2-tuple</code>).</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.named._NamedTuple-class.html#iteritems\" class=\"summary-sig-name\">iteritems</a>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Yield the items, each as a <code>(name, value)</code> pair \n      (<code>2-tuple</code>).</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.named._NamedTuple-class.html#iterunits\" class=\"summary-sig-name\">iterunits</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">**Error</span>)</span><br />\n      Yield the items, each as a <code>2-tuple (name, value</code>) with \n      the value wrapped as an instance of its <a \n      href=\"pygeodesy.named._NamedTuple-class.html#units\" \n      class=\"link\">units</a> class.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.named._NamedTuple-class.html#reUnit\" class=\"summary-sig-name\">reUnit</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">*Units</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Replace some of this <code>Named-Tuple</code>'s <code>Units</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.named._NamedTuple-class.html#toRepr\" class=\"summary-sig-name\">toRepr</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">prec</span>=<span class=\"summary-sig-default\">6</span>,\n        <span class=\"summary-sig-arg\">sep</span>=<span class=\"summary-sig-default\">', '</span>,\n        <span class=\"summary-sig-arg\">fmt</span>=<span class=\"summary-sig-default\">'F'</span>,\n        <span class=\"summary-sig-arg\">**unused</span>)</span><br />\n      Return this <code>Named-Tuple</code> items as <code>name=value</code>\n      string(s).</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.named._NamedTuple-class.html#toStr\" class=\"summary-sig-name\">toStr</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">prec</span>=<span class=\"summary-sig-default\">6</span>,\n        <span class=\"summary-sig-arg\">sep</span>=<span class=\"summary-sig-default\">', '</span>,\n        <span class=\"summary-sig-arg\">fmt</span>=<span class=\"summary-sig-default\">'F'</span>,\n        <span class=\"summary-sig-arg\">**unused</span>)</span><br />\n      Return this <code>Named-Tuple</code> items as string(s).</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.named._NamedTuple-class.html#toUnits\" class=\"summary-sig-name\">toUnits</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">Error</span>=<span class=\"summary-sig-default\">&lt;class 'pygeodesy.errors.UnitError'&gt;</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Return a copy of this <code>Named-Tuple</code> with each item value \n      wrapped as an instance of its <a \n      href=\"pygeodesy.named._NamedTuple-class.html#units\" \n      class=\"link\">units</a> class.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.named._NamedTuple-class.html#units\" class=\"summary-sig-name\">units</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">**Error</span>)</span><br />\n      Yield the items, each as a <code>2-tuple (name, value</code>) with \n      the value wrapped as an instance of its <a \n      href=\"pygeodesy.named._NamedTuple-class.html#units\" \n      class=\"link\">units</a> class.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>tuple</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__eq__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__iter__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__rmul__</code>,\n      <code>count</code>,\n      <code>index</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">_Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">a new object with type S, a subtype of T</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.named._NamedTuple-class.html#__new__\" class=\"summary-sig-name\">__new__</a>(<span class=\"summary-sig-arg\">cls</span>,\n        <span class=\"summary-sig-arg\">arg</span>,\n        <span class=\"summary-sig-arg\">*args</span>,\n        <span class=\"summary-sig-arg\">**iteration_name</span>)</span><br />\n      New <a href=\"pygeodesy.named._NamedTuple-class.html\" \n      class=\"link\">_NamedTuple</a> initialized with \n      <b><code>positional</code></b> arguments.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">_Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__delattr__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__delattr__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Delete an attribute by <b><code>name</code></b>.</p>\n  <dl class=\"fields\">\n    <dt>Overrides:\n        object.__delattr__\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        Items can not be deleted.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"__hash__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__hash__</span>&nbsp;(<span class=\"sig-arg\">self</span>)</span>\n    <br /><em class=\"fname\">(Hashing function)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>hash(x)</p>\n  <dl class=\"fields\">\n    <dt>Overrides:\n        object.__hash__\n        <dd><em class=\"note\">(inherited documentation)</em></dd>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__new__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__new__</span>&nbsp;(<span class=\"sig-arg\">cls</span>,\n        <span class=\"sig-arg\">arg</span>,\n        <span class=\"sig-arg\">*args</span>,\n        <span class=\"sig-arg\">**iteration_name</span>)</span>\n    <br /><em class=\"fname\">Static Method</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.named._NamedTuple-class.html\" \n  class=\"link\">_NamedTuple</a> initialized with \n  <b><code>positional</code></b> arguments.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>arg</code></strong> - Tuple items (<code>tuple</code>, <code>list</code>, ...) or first\n          tuple item of several more in other positional arguments.</li>\n        <li><strong class=\"pname\"><code>args</code></strong> - Tuple items (<code>any</code>), all positional arguments.</li>\n        <li><strong class=\"pname\"><code>iteration_name</code></strong> - Only keyword arguments <code><b>iteration</b>=None</code> and \n          <code><b>name</b>=NN</code> are used, any other are \n          <i>silently</i> ignored.</li>\n    </ul></dd>\n    <dt>Returns: a new object with type S, a subtype of T</dt>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.LenError-class.html\">LenError</a></strong></code> - Unequal number of positional arguments and number of item \n        <code>_Names_</code> or <code>_Units_</code>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - The <code>_Names_</code> or <code>_Units_</code> attribute is not a\n        <code>tuple</code> of at least 2 items.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Item name is not a <code>str</code> or valid \n        <code>identifier</code> or starts with <code>underscore</code>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__new__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__repr__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__repr__</span>&nbsp;(<span class=\"sig-arg\">self</span>)</span>\n    <br /><em class=\"fname\">(Representation operator)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Default <code>repr(self)</code>.</p>\n  <dl class=\"fields\">\n    <dt>Overrides:\n        object.__repr__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__setattr__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__setattr__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">name</span>,\n        <span class=\"sig-arg\">value</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Set attribute or item <b><code>name</code></b> to \n  <b><code>value</code></b>.</p>\n  <dl class=\"fields\">\n    <dt>Overrides:\n        object.__setattr__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__str__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__str__</span>&nbsp;(<span class=\"sig-arg\">self</span>)</span>\n    <br /><em class=\"fname\">(Informal representation operator)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Default <code>repr(self)</code>.</p>\n  <dl class=\"fields\">\n    <dt>Overrides:\n        object.__str__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"dup\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">dup</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">name</span>=<span class=\"sig-default\">''</span>,\n        <span class=\"sig-arg\">**items</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Duplicate this tuple replacing one or more items.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional new name (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>items</code></strong> - Items to be replaced (<code>name=value</code> pairs), if any.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A copy of this tuple with <b><code>items</code></b>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>NameError</strong></code> - Some <b><code>items</code></b> invalid.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.named._Named-class.html#dup\">_Named.dup</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"items\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">items</span>&nbsp;(<span class=\"sig-arg\">self</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Yield the items, each as a <code>(name, value)</code> pair \n  (<code>2-tuple</code>).</p>\n  <dl class=\"fields\">\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <code>.units</code>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"iteritems\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">iteritems</span>&nbsp;(<span class=\"sig-arg\">self</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Yield the items, each as a <code>(name, value)</code> pair \n  (<code>2-tuple</code>).</p>\n  <dl class=\"fields\">\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <code>.units</code>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"iterunits\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">iterunits</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">**Error</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Yield the items, each as a <code>2-tuple (name, value</code>) with the\n  value wrapped as an instance of its <a \n  href=\"pygeodesy.named._NamedTuple-class.html#units\" \n  class=\"link\">units</a> class.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>Error</code></strong> - Optional <code><b>Error</b>=UnitError</code> to raise.</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>Error</strong></code> - Invalid <code>Named-Tuple</code> item or <a \n        href=\"pygeodesy.named._NamedTuple-class.html#units\" \n        class=\"link\">units</a> class.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <code>.items</code>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"reUnit\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">reUnit</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">*Units</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Replace some of this <code>Named-Tuple</code>'s \n  <code>Units</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>Units</code></strong> - One or more <code>Unit</code> classes, all positional.</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>This instance with updated <code>Units</code>.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        This <code>Named-Tuple</code>'s values are <i>not updated</i>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"toRepr\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toRepr</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">prec</span>=<span class=\"sig-default\">6</span>,\n        <span class=\"sig-arg\">sep</span>=<span class=\"sig-default\">', '</span>,\n        <span class=\"sig-arg\">fmt</span>=<span class=\"sig-default\">'F'</span>,\n        <span class=\"sig-arg\">**unused</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return this <code>Named-Tuple</code> items as <code>name=value</code> \n  string(s).</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>prec</code></strong> - The <code>float</code> precision, number of decimal digits \n          (0..9). Trailing zero decimals are stripped for \n          <b><code>prec</code></b> values of 1 and above, but kept for \n          negative <b><code>prec</code></b> values.</li>\n        <li><strong class=\"pname\"><code>sep</code></strong> - Separator to join (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>fmt</code></strong> - Optional <code>float</code> format (<code>letter</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Tuple items (<code>str</code>).</dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.named._Named-class.html#toRepr\">_Named.toRepr</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toStr\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toStr</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">prec</span>=<span class=\"sig-default\">6</span>,\n        <span class=\"sig-arg\">sep</span>=<span class=\"sig-default\">', '</span>,\n        <span class=\"sig-arg\">fmt</span>=<span class=\"sig-default\">'F'</span>,\n        <span class=\"sig-arg\">**unused</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return this <code>Named-Tuple</code> items as string(s).</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>prec</code></strong> - The <code>float</code> precision, number of decimal digits \n          (0..9). Trailing zero decimals are stripped for \n          <b><code>prec</code></b> values of 1 and above, but kept for \n          negative <b><code>prec</code></b> values.</li>\n        <li><strong class=\"pname\"><code>sep</code></strong> - Separator to join (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>fmt</code></strong> - Optional <code>float</code> format (<code>letter</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Tuple items (<code>str</code>).</dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.named._Named-class.html#toStr\">_Named.toStr</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toUnits\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toUnits</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">Error</span>=<span class=\"sig-default\">&lt;class 'pygeodesy.errors.UnitError'&gt;</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return a copy of this <code>Named-Tuple</code> with each item value \n  wrapped as an instance of its <a \n  href=\"pygeodesy.named._NamedTuple-class.html#units\" \n  class=\"link\">units</a> class.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>Error</code></strong> - Error to raise for <a \n          href=\"pygeodesy.named._NamedTuple-class.html#units\" \n          class=\"link\">units</a> issues (<code>UnitError</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A duplicate of this <code>Named-Tuple</code> \n          (<code><code>Named-Tuple</code></code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>Error</strong></code> - Invalid <code>Named-Tuple</code> item or <a \n        href=\"pygeodesy.named._NamedTuple-class.html#units\" \n        class=\"link\">units</a> class.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"units\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">units</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">**Error</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Yield the items, each as a <code>2-tuple (name, value</code>) with the\n  value wrapped as an instance of its <a \n  href=\"pygeodesy.named._NamedTuple-class.html#units\" \n  class=\"link\">units</a> class.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>Error</code></strong> - Optional <code><b>Error</b>=UnitError</code> to raise.</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>Error</strong></code> - Invalid <code>Named-Tuple</code> item or <a \n        href=\"pygeodesy.named._NamedTuple-class.html#units\" \n        class=\"link\">units</a> class.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <code>.items</code>.\n      </p>\n</div></td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.namedTuples-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.namedTuples</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        Module&nbsp;namedTuples\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.namedTuples-module.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== MODULE DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Module namedTuples</h1><p class=\"nomargin-top\"></p>\n<p>Named tuples.</p>\n  <p>Tuples returned by <code>pygeodesy</code> functions and class methods \n  are all instances of some <code>Named...Tuple</code> class, all \n  sub-classes of <code>_NamedTuple</code> defined in \n  <code>pygeodesy.named</code>.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Version:</strong>\n        26.03.12\n      </p>\n</div><!-- ==================== CLASSES ==================== -->\n<a name=\"section-Classes\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Classes</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.namedTuples.Bearing2Tuple-class.html\" class=\"summary-name\">Bearing2Tuple</a><br />\n      2-Tuple <code>(initial, final)</code> bearings, both in compass \n        <code>degrees360</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.namedTuples.Bounds2Tuple-class.html\" class=\"summary-name\">Bounds2Tuple</a><br />\n      2-Tuple <code>(latlonSW, latlonNE)</code> with the bounds' \n        lower-left and upper-right corner as <code>LatLon</code> instance.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.namedTuples.Bounds4Tuple-class.html\" class=\"summary-name\">Bounds4Tuple</a><br />\n      4-Tuple <code>(latS, lonW, latN, lonE)</code> with the bounds' \n        lower-left <code>(LatS, LowW)</code> and upper-right <code>(latN, \n        lonE)</code> corner lat- and longitudes.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.namedTuples.Circle4Tuple-class.html\" class=\"summary-name\">Circle4Tuple</a><br />\n      4-Tuple <code>(radius, height, lat, beta)</code> with the \n        <code>radius</code> and <code>height</code> of a parallel <i>circle\n        of latitude</i> at (geodetic) latitude <code>lat</code> and \n        <i>parametric (or reduced) auxiliary latitude</i> <code>beta</code>\n        on a <i>biaxial ellipsoid</i>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.namedTuples.Destination2Tuple-class.html\" class=\"summary-name\">Destination2Tuple</a><br />\n      2-Tuple <code>(destination, final)</code>, <code>destination</code>\n        in <code>LatLon</code> and <code>final</code> bearing in compass \n        <code>degrees360</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.namedTuples.Destination3Tuple-class.html\" class=\"summary-name\">Destination3Tuple</a><br />\n      3-Tuple <code>(lat, lon, final)</code>, destination \n        <code>lat</code>, <code>lon</code> in <code>degrees90</code> \n        respectively <code>degrees180</code> and <code>final</code> bearing\n        in compass <code>degrees360</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.namedTuples.Distance2Tuple-class.html\" class=\"summary-name\">Distance2Tuple</a><br />\n      2-Tuple <code>(distance, initial)</code>, <code>distance</code> in \n        <code>meter</code> and <code>initial</code> bearing in compass \n        <code>degrees360</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.namedTuples.Distance3Tuple-class.html\" class=\"summary-name\">Distance3Tuple</a><br />\n      3-Tuple <code>(distance, initial, final)</code>, \n        <code>distance</code> in <code>meter</code> and \n        <code>initial</code> and <code>final</code> bearing, both in \n        compass <code>degrees360</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.namedTuples.Distance4Tuple-class.html\" class=\"summary-name\">Distance4Tuple</a><br />\n      4-Tuple <code>(distance2, delta_lat, delta_lon, unroll_lon2)</code>\n        with the distance in <code>degrees squared</code>, the latitudinal \n        <code>delta_lat = <b>lat2</b> - <b>lat1</b></code>, the wrapped, \n        unrolled and adjusted longitudinal <code>delta_lon = <b>lon2</b> - \n        <b>lon1</b></code> and <code>unroll_lon2</code>, the unrolled or \n        original <b><code>lon2</code></b>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.namedTuples.EasNor2Tuple-class.html\" class=\"summary-name\">EasNor2Tuple</a><br />\n      2-Tuple <code>(easting, northing)</code>, both in \n        <code>meter</code>, conventionally.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.namedTuples.EasNor3Tuple-class.html\" class=\"summary-name\">EasNor3Tuple</a><br />\n      3-Tuple <code>(easting, northing, height)</code>, all in \n        <code>meter</code>, conventionally.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.namedTuples.Ellipse5Tuple-class.html\" class=\"summary-name\">Ellipse5Tuple</a><br />\n      5-Tuple <code>(a, b, height, lat, beta)</code> with semi-axes \n        <code>a</code> and <code>b</code> of a parallel <i>ellipse of \n        latitude</i> at (geodetic) latitude <code>lat</code> and \n        <i>parametric (or reduced) auxiliary latitude</i> <code>beta</code>\n        of a <i>triaxial ellipsoid</i>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.namedTuples.Forward4Tuple-class.html\" class=\"summary-name\">Forward4Tuple</a><br />\n      4-Tuple <code>(easting, northing, gamma, scale)</code> in \n        <code>meter</code>, <code>meter</code>, meridian convergence \n        <code>gamma</code> at point in <code>degrees</code> and the \n        <code>scale</code> of projection at point <code>scalar</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.namedTuples.Intersection3Tuple-class.html\" class=\"summary-name\">Intersection3Tuple</a><br />\n      3-Tuple <code>(point, outside1, outside2)</code> of an intersection\n        <code>point</code> and <code>outside1</code>, the position of the \n        <code>point</code>, <code>-1</code> if before the start, \n        <code>+1</code> if after the end and <code>0</code> if on or \n        between the start and end point of the first line.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.namedTuples.LatLon2Tuple-class.html\" class=\"summary-name\">LatLon2Tuple</a><br />\n      2-Tuple <code>(lat, lon)</code> in <code>degrees90</code> and \n        <code>degrees180</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.namedTuples.LatLon3Tuple-class.html\" class=\"summary-name\">LatLon3Tuple</a><br />\n      3-Tuple <code>(lat, lon, height)</code> in <code>degrees90</code>, \n        <code>degrees180</code> and <code>meter</code>, conventionally.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.namedTuples.LatLon4Tuple-class.html\" class=\"summary-name\">LatLon4Tuple</a><br />\n      4-Tuple <code>(lat, lon, height, datum)</code> in \n        <code>degrees90</code>, <code>degrees180</code>, <code>meter</code>\n        and <a href=\"pygeodesy.datums.Datum-class.html\" \n        class=\"link\">Datum</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.namedTuples.LatLonDatum3Tuple-class.html\" class=\"summary-name\">LatLonDatum3Tuple</a><br />\n      3-Tuple <code>(lat, lon, datum)</code> in <code>degrees90</code>, \n        <code>degrees180</code> and <a \n        href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.namedTuples.LatLonDatum5Tuple-class.html\" class=\"summary-name\">LatLonDatum5Tuple</a><br />\n      5-Tuple <code>(lat, lon, datum, gamma, scale)</code> in \n        <code>degrees90</code>, <code>degrees180</code>, <a \n        href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>, \n        <code>degrees</code> and <code>float</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.namedTuples.LatLonPrec3Tuple-class.html\" class=\"summary-name\">LatLonPrec3Tuple</a><br />\n      3-Tuple <code>(lat, lon, precision)</code> in <code>degrees</code>,\n        <code>degrees</code> and <code>int</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.namedTuples.LatLonPrec5Tuple-class.html\" class=\"summary-name\">LatLonPrec5Tuple</a><br />\n      5-Tuple <code>(lat, lon, precision, height, radius)</code> in \n        <code>degrees</code>, <code>degrees</code>, <code>int</code> and \n        <code>height</code> or <code>radius</code> in <code>meter</code> \n        (or <code>None</code> if missing).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.namedTuples.NearestOn2Tuple-class.html\" class=\"summary-name\">NearestOn2Tuple</a><br />\n      2-Tuple <code>(closest, fraction)</code> of the \n        <code>closest</code> point on and <code>fraction</code> along a \n        line (segment) between two points.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.namedTuples.NearestOn3Tuple-class.html\" class=\"summary-name\">NearestOn3Tuple</a><br />\n      3-Tuple <code>(closest, distance, angle)</code> of the \n        <code>closest</code> point on the polygon, either a \n        <code>LatLon</code> instance or a <a \n        href=\"pygeodesy.namedTuples.LatLon3Tuple-class.html\" \n        class=\"link\">LatLon3Tuple</a><code>(lat, lon, height)</code> and \n        the <code>distance</code> and <code>angle</code> to the \n        <code>closest</code> point are in <code>meter</code> respectively \n        compass <code>degrees360</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.namedTuples.NearestOn6Tuple-class.html\" class=\"summary-name\">NearestOn6Tuple</a><br />\n      6-Tuple <code>(closest, distance, fi, j, start, end)</code> with \n        the <code>closest</code> point, the <code>distance</code> in \n        <code>meter</code>, conventionally and the <code>start</code> and \n        <code>end</code> point of the path or polygon edge.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.namedTuples.NearestOn8Tuple-class.html\" class=\"summary-name\">NearestOn8Tuple</a><br />\n      8-Tuple <code>(closest, distance, fi, j, start, end, initial, \n        final)</code>, like <a \n        href=\"pygeodesy.namedTuples.NearestOn6Tuple-class.html\" \n        class=\"link\">NearestOn6Tuple</a> but extended with the \n        <code>initial</code> and the <code>final</code> bearing at the \n        reference respectively the <code>closest</code> point, both in \n        compass <code>degrees</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.namedTuples.PhiLam2Tuple-class.html\" class=\"summary-name\">PhiLam2Tuple</a><br />\n      2-Tuple <code>(phi, lam)</code> with latitude <code>phi</code> in \n        <code>radians[PI_2]</code> and longitude <code>lam</code> in \n        <code>radians[PI]</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.namedTuples.PhiLam3Tuple-class.html\" class=\"summary-name\">PhiLam3Tuple</a><br />\n      3-Tuple <code>(phi, lam, height)</code> with latitude \n        <code>phi</code> in <code>radians[PI_2]</code>, longitude \n        <code>lam</code> in <code>radians[PI]</code> and \n        <code>height</code> in <code>meter</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.namedTuples.PhiLam4Tuple-class.html\" class=\"summary-name\">PhiLam4Tuple</a><br />\n      4-Tuple <code>(phi, lam, height, datum)</code> with latitude \n        <code>phi</code> in <code>radians[PI_2]</code>, longitude \n        <code>lam</code> in <code>radians[PI]</code>, <code>height</code> \n        in <code>meter</code> and <a \n        href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.namedTuples.Point3Tuple-class.html\" class=\"summary-name\">Point3Tuple</a><br />\n      3-Tuple <code>(x, y, ll)</code> in <code>meter</code>, \n        <code>meter</code> and <code>LatLon</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.namedTuples.Points2Tuple-class.html\" class=\"summary-name\">Points2Tuple</a><br />\n      2-Tuple <code>(number, points)</code> with the <code>number</code> \n        of points and -possible reduced- <code>list</code> or \n        <code>tuple</code> of <code>points</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.namedTuples.Reverse4Tuple-class.html\" class=\"summary-name\">Reverse4Tuple</a><br />\n      4-Tuple <code>(lat, lon, gamma, scale)</code> with \n        <code>lat</code>- and <code>lon</code>gitude in \n        <code>degrees</code>, meridian convergence <code>gamma</code> at \n        point in <code>degrees</code> and the <code>scale</code> of \n        projection at point <code>scalar</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.namedTuples.Triangle7Tuple-class.html\" class=\"summary-name\">Triangle7Tuple</a><br />\n      7-Tuple <code>(A, a, B, b, C, c, area)</code> with interior angles \n        <code>A</code>, <code>B</code> and <code>C</code> in \n        <code>degrees</code>, spherical sides <code>a</code>, \n        <code>b</code> and <code>c</code> in <code>meter</code> \n        conventionally and the <code>area</code> of a (spherical) triangle \n        in <i>square</i> <code>meter</code> conventionally.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.namedTuples.Triangle8Tuple-class.html\" class=\"summary-name\">Triangle8Tuple</a><br />\n      8-Tuple <code>(A, a, B, b, C, c, D, E)</code> with interior angles \n        <code>A</code>, <code>B</code> and <code>C</code>, spherical sides \n        <code>a</code>, <code>b</code> and <code>c</code>, the <i>spherical\n        deficit</i> <code>D</code> and the <i>spherical excess</i> \n        <code>E</code> of a (spherical) triangle, all in \n        <code>radians</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.namedTuples.Trilaterate5Tuple-class.html\" class=\"summary-name\">Trilaterate5Tuple</a><br />\n      5-Tuple <code>(min, minPoint, max, maxPoint, n)</code> with \n        <code>min</code> and <code>max</code> in <code>meter</code>, the \n        corresponding trilaterated <code>minPoint</code> and \n        <code>maxPoint</code> as <code>LatLon</code> and the number \n        <code>n</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.namedTuples.UtmUps2Tuple-class.html\" class=\"summary-name\">UtmUps2Tuple</a><br />\n      2-Tuple <code>(zone, hemipole)</code> as <code>int</code> and \n        <code>str</code>, where <code>zone</code> is <code>1..60</code> for\n        UTM or <code>0</code> for UPS and <code>hemipole</code> \n        <code>'N'|'S'</code> is the UTM hemisphere or the UPS pole.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.namedTuples.UtmUps5Tuple-class.html\" class=\"summary-name\">UtmUps5Tuple</a><br />\n      5-Tuple <code>(zone, hemipole, easting, northing, band)</code> as \n        <code>int</code>, <code>str</code>, <code>meter</code>, \n        <code>meter</code> and <code>band</code> letter, where \n        <code>zone</code> is <code>1..60</code> for UTM or <code>0</code> \n        for UPS, <code>hemipole</code> <code>'N'|'S'</code> is the UTM \n        hemisphere or the UPS pole and <code>band</code> is \n        <code>&quot;&quot;</code> or the <i>longitudinal</i> UTM band \n        <code>'C'|'D'|..|'W'|'X'</code> or <i>polar</i> UPS band \n        <code>'A'|'B'|'Y'|'Z'</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.namedTuples.UtmUps8Tuple-class.html\" class=\"summary-name\">UtmUps8Tuple</a><br />\n      8-Tuple <code>(zone, hemipole, easting, northing, band, datum, \n        gamma, scale)</code> as <code>int</code>, <code>str</code>, \n        <code>meter</code>, <code>meter</code>, <code>band</code> letter, \n        <code>Datum</code>, <code>degrees</code> and <code>scalar</code>, \n        where <code>zone</code> is <code>1..60</code> for UTM or \n        <code>0</code> for UPS, <code>hemipole</code> <code>'N'|'S'</code> \n        is the UTM hemisphere or the UPS pole and <code>band</code> is \n        <code>&quot;&quot;</code> or the <i>longitudinal</i> UTM band \n        <code>'C'|'D'|..|'W'|'X'</code> or <i>polar</i> UPS band \n        <code>'A'|'B'|'Y'|'Z'</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.namedTuples.UtmUpsLatLon5Tuple-class.html\" class=\"summary-name\">UtmUpsLatLon5Tuple</a><br />\n      5-Tuple <code>(zone, band, hemipole, lat, lon)</code> as \n        <code>int</code>, <code>str</code>, <code>str</code>, \n        <code>degrees90</code> and <code>degrees180</code>, where \n        <code>zone</code> is <code>1..60</code> for UTM or <code>0</code> \n        for UPS, <code>band</code> is <code>&quot;&quot;</code> or the \n        <i>longitudinal</i> UTM band <code>'C'|'D'|..|'W'|'X'</code> or \n        <i>polar</i> UPS band <code>'A'|'B'|'Y'|'Z'</code> and \n        <code>hemipole</code> <code>'N'|'S'</code> is the UTM hemisphere or\n        the UPS pole.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.namedTuples.Vector2Tuple-class.html\" class=\"summary-name\">Vector2Tuple</a><br />\n      2-Tuple <code>(x, y)</code> of (geocentric) components, each in \n        <code>meter</code> or the same <code>units</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.namedTuples.Vector3Tuple-class.html\" class=\"summary-name\">Vector3Tuple</a><br />\n      3-Tuple <code>(x, y, z)</code> of (geocentric) components, all in \n        <code>meter</code> or the same <code>units</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.namedTuples.Vector4Tuple-class.html\" class=\"summary-name\">Vector4Tuple</a><br />\n      4-Tuple <code>(x, y, z, h)</code> of (geocentric) components, all \n        in <code>meter</code> or the same <code>units</code>.\n    </td>\n  </tr>\n</table>\n<!-- ==================== VARIABLES ==================== -->\n<a name=\"section-Variables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Variables</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"__all__\"></a><span class=\"summary-name\">__all__</span> = <code title=\"_ALL_LAZY.namedTuples\">_ALL_LAZY.namedTuples</code>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.namedTuples.Bearing2Tuple-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.namedTuples.Bearing2Tuple</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.namedTuples-module.html\">Module&nbsp;namedTuples</a> ::\n        Class&nbsp;Bearing2Tuple\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.namedTuples.Bearing2Tuple-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Bearing2Tuple</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n   object --+        \n            |        \n        tuple --+    \n                |    \n   object --+   |    \n            |   |    \n <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n                |    \n<a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a> --+\n                    |\n                   <strong class=\"uidshort\">Bearing2Tuple</strong>\n</pre>\n\n<hr />\n<p>2-Tuple <code>(initial, final)</code> bearings, both in compass \n  <code>degrees360</code>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__delattr__\">__delattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__getattr__\">__getattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__setattr__\">__setattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#items\">items</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iteritems\">iteritems</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iterunits\">iterunits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#reUnit\">reUnit</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toUnits\">toUnits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>tuple</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__eq__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__iter__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__rmul__</code>,\n      <code>count</code>,\n      <code>index</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__new__\">__new__</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.namedTuples.Bounds2Tuple-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.namedTuples.Bounds2Tuple</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.namedTuples-module.html\">Module&nbsp;namedTuples</a> ::\n        Class&nbsp;Bounds2Tuple\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.namedTuples.Bounds2Tuple-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Bounds2Tuple</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n   object --+        \n            |        \n        tuple --+    \n                |    \n   object --+   |    \n            |   |    \n <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n                |    \n<a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a> --+\n                    |\n                   <strong class=\"uidshort\">Bounds2Tuple</strong>\n</pre>\n\n<hr />\n<p>2-Tuple <code>(latlonSW, latlonNE)</code> with the bounds' lower-left \n  and upper-right corner as <code>LatLon</code> instance.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__delattr__\">__delattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__getattr__\">__getattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__setattr__\">__setattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#items\">items</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iteritems\">iteritems</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iterunits\">iterunits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#reUnit\">reUnit</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toUnits\">toUnits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>tuple</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__eq__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__iter__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__rmul__</code>,\n      <code>count</code>,\n      <code>index</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__new__\">__new__</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.namedTuples.Bounds4Tuple-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.namedTuples.Bounds4Tuple</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.namedTuples-module.html\">Module&nbsp;namedTuples</a> ::\n        Class&nbsp;Bounds4Tuple\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.namedTuples.Bounds4Tuple-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Bounds4Tuple</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n   object --+        \n            |        \n        tuple --+    \n                |    \n   object --+   |    \n            |   |    \n <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n                |    \n<a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a> --+\n                    |\n                   <strong class=\"uidshort\">Bounds4Tuple</strong>\n</pre>\n\n<hr />\n<p>4-Tuple <code>(latS, lonW, latN, lonE)</code> with the bounds' \n  lower-left <code>(LatS, LowW)</code> and upper-right <code>(latN, \n  lonE)</code> corner lat- and longitudes.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.namedTuples.Bounds4Tuple-class.html#enclosures\" class=\"summary-sig-name\">enclosures</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">S_other</span>,\n        <span class=\"summary-sig-arg\">*W_N_E</span>)</span><br />\n      Get the enclosures of this around an other <a \n      href=\"pygeodesy.namedTuples.Bounds4Tuple-class.html\" \n      class=\"link\">Bounds4Tuple</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.namedTuples.Bounds4Tuple-class.html#overlap\" class=\"summary-sig-name\">overlap</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">S_other</span>,\n        <span class=\"summary-sig-arg\">*W_N_E</span>)</span><br />\n      Intersect this with an other <a \n      href=\"pygeodesy.namedTuples.Bounds4Tuple-class.html\" \n      class=\"link\">Bounds4Tuple</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__delattr__\">__delattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__getattr__\">__getattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__setattr__\">__setattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#items\">items</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iteritems\">iteritems</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iterunits\">iterunits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#reUnit\">reUnit</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toUnits\">toUnits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>tuple</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__eq__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__iter__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__rmul__</code>,\n      <code>count</code>,\n      <code>index</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__new__\">__new__</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"enclosures\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">enclosures</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">S_other</span>,\n        <span class=\"sig-arg\">*W_N_E</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Get the enclosures of this around an other <a \n  href=\"pygeodesy.namedTuples.Bounds4Tuple-class.html\" \n  class=\"link\">Bounds4Tuple</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>S_other</code></strong> - Bottom <code>latS</code> (<code>scalar</code>) or an other <a \n          href=\"pygeodesy.namedTuples.Bounds4Tuple-class.html\" \n          class=\"link\">Bounds4Tuple</a> instance.</li>\n        <li><strong class=\"pname\"><code>W_N_E</code></strong> - Left <code>lonW</code>, top <code>latN</code> and right \n          <code>lonE</code>, each a (<code>scalar</code>) for <code>scalar \n          <b>S_other</b></code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.namedTuples.Bounds4Tuple-class.html\" \n          class=\"link\">Bounds4Tuple</a> with the <i>margin</i> at each of \n          the 4 sides, positive if this side <i>encloses</i> (is on the \n          <i>outside</i> of) the other, negative if not or zero if \n          abutting.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"overlap\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">overlap</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">S_other</span>,\n        <span class=\"sig-arg\">*W_N_E</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Intersect this with an other <a \n  href=\"pygeodesy.namedTuples.Bounds4Tuple-class.html\" \n  class=\"link\">Bounds4Tuple</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>S_other</code></strong> - Bottom <code>latS</code> (<code>scalar</code>) or an other <a \n          href=\"pygeodesy.namedTuples.Bounds4Tuple-class.html\" \n          class=\"link\">Bounds4Tuple</a> instance.</li>\n        <li><strong class=\"pname\"><code>W_N_E</code></strong> - Left <code>lonW</code>, top <code>latN</code> and right \n          <code>lonE</code>, each a (<code>scalar</code>) for <code>scalar \n          <b>S_other</b></code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>None</code> if the bounds do not overlap, otherwise the \n          intersection of both as a <a \n          href=\"pygeodesy.namedTuples.Bounds4Tuple-class.html\" \n          class=\"link\">Bounds4Tuple</a>.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.namedTuples.Circle4Tuple-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.namedTuples.Circle4Tuple</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.namedTuples-module.html\">Module&nbsp;namedTuples</a> ::\n        Class&nbsp;Circle4Tuple\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.namedTuples.Circle4Tuple-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Circle4Tuple</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n   object --+        \n            |        \n        tuple --+    \n                |    \n   object --+   |    \n            |   |    \n <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n                |    \n<a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a> --+\n                    |\n                   <strong class=\"uidshort\">Circle4Tuple</strong>\n</pre>\n\n<hr />\n<p>4-Tuple <code>(radius, height, lat, beta)</code> with the \n  <code>radius</code> and <code>height</code> of a parallel <i>circle of \n  latitude</i> at (geodetic) latitude <code>lat</code> and <i>parametric \n  (or reduced) auxiliary latitude</i> <code>beta</code> on a <i>biaxial \n  ellipsoid</i>.</p>\n  <p>The <code>height</code> is the (signed) distance along the z-axis \n  between the parallel and the equator.  At near-polar <code>lat</code>s, \n  the <code>radius</code> is <code>0</code>, the <code>height</code> is the\n  ellipsoid's polar radius (signed) and <code>beta</code> equals \n  <code>lat</code>.  The latter are in <code>degrees90</code>, always.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Class <a href=\"pygeodesy.namedTuples.Ellipse5Tuple-class.html\" \n        class=\"link\">Ellipse5Tuple</a>.\n      </p>\n</div><!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__delattr__\">__delattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__getattr__\">__getattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__setattr__\">__setattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#items\">items</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iteritems\">iteritems</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iterunits\">iterunits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#reUnit\">reUnit</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toUnits\">toUnits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>tuple</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__eq__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__iter__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__rmul__</code>,\n      <code>count</code>,\n      <code>index</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__new__\">__new__</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.namedTuples.Circle4Tuple-class.html#abc3\" class=\"summary-name\">abc3</a><br />\n      Get the non-negative semi-axes as 3-tuple <code>(a, b, c)</code>.\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"abc3\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">abc3</h3>\n  <p>Get the non-negative semi-axes as 3-tuple <code>(a, b, c)</code>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">abc3(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the non-negative semi-axes as 3-tuple <code>(a, b, c)</code>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.namedTuples.Destination2Tuple-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.namedTuples.Destination2Tuple</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.namedTuples-module.html\">Module&nbsp;namedTuples</a> ::\n        Class&nbsp;Destination2Tuple\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.namedTuples.Destination2Tuple-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Destination2Tuple</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n   object --+        \n            |        \n        tuple --+    \n                |    \n   object --+   |    \n            |   |    \n <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n                |    \n<a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a> --+\n                    |\n                   <strong class=\"uidshort\">Destination2Tuple</strong>\n</pre>\n\n<hr />\n<p>2-Tuple <code>(destination, final)</code>, <code>destination</code> in\n  <code>LatLon</code> and <code>final</code> bearing in compass \n  <code>degrees360</code>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__delattr__\">__delattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__getattr__\">__getattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__setattr__\">__setattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#items\">items</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iteritems\">iteritems</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iterunits\">iterunits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#reUnit\">reUnit</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toUnits\">toUnits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>tuple</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__eq__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__iter__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__rmul__</code>,\n      <code>count</code>,\n      <code>index</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__new__\">__new__</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.namedTuples.Destination3Tuple-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.namedTuples.Destination3Tuple</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.namedTuples-module.html\">Module&nbsp;namedTuples</a> ::\n        Class&nbsp;Destination3Tuple\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.namedTuples.Destination3Tuple-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Destination3Tuple</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n   object --+        \n            |        \n        tuple --+    \n                |    \n   object --+   |    \n            |   |    \n <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n                |    \n<a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a> --+\n                    |\n                   <strong class=\"uidshort\">Destination3Tuple</strong>\n</pre>\n\n<hr />\n<p>3-Tuple <code>(lat, lon, final)</code>, destination <code>lat</code>, \n  <code>lon</code> in <code>degrees90</code> respectively \n  <code>degrees180</code> and <code>final</code> bearing in compass \n  <code>degrees360</code>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__delattr__\">__delattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__getattr__\">__getattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__setattr__\">__setattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#items\">items</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iteritems\">iteritems</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iterunits\">iterunits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#reUnit\">reUnit</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toUnits\">toUnits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>tuple</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__eq__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__iter__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__rmul__</code>,\n      <code>count</code>,\n      <code>index</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__new__\">__new__</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.namedTuples.Distance2Tuple-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.namedTuples.Distance2Tuple</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.namedTuples-module.html\">Module&nbsp;namedTuples</a> ::\n        Class&nbsp;Distance2Tuple\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.namedTuples.Distance2Tuple-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Distance2Tuple</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n   object --+        \n            |        \n        tuple --+    \n                |    \n   object --+   |    \n            |   |    \n <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n                |    \n<a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a> --+\n                    |\n                   <strong class=\"uidshort\">Distance2Tuple</strong>\n</pre>\n\n<hr />\n<p>2-Tuple <code>(distance, initial)</code>, <code>distance</code> in \n  <code>meter</code> and <code>initial</code> bearing in compass \n  <code>degrees360</code>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__delattr__\">__delattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__getattr__\">__getattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__setattr__\">__setattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#items\">items</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iteritems\">iteritems</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iterunits\">iterunits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#reUnit\">reUnit</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toUnits\">toUnits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>tuple</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__eq__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__iter__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__rmul__</code>,\n      <code>count</code>,\n      <code>index</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__new__\">__new__</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.namedTuples.Distance3Tuple-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.namedTuples.Distance3Tuple</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.namedTuples-module.html\">Module&nbsp;namedTuples</a> ::\n        Class&nbsp;Distance3Tuple\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.namedTuples.Distance3Tuple-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Distance3Tuple</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n   object --+        \n            |        \n        tuple --+    \n                |    \n   object --+   |    \n            |   |    \n <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n                |    \n<a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a> --+\n                    |\n                   <strong class=\"uidshort\">Distance3Tuple</strong>\n</pre>\n\n<hr />\n<p>3-Tuple <code>(distance, initial, final)</code>, <code>distance</code>\n  in <code>meter</code> and <code>initial</code> and <code>final</code> \n  bearing, both in compass <code>degrees360</code>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__delattr__\">__delattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__getattr__\">__getattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__setattr__\">__setattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#items\">items</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iteritems\">iteritems</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iterunits\">iterunits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#reUnit\">reUnit</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toUnits\">toUnits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>tuple</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__eq__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__iter__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__rmul__</code>,\n      <code>count</code>,\n      <code>index</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__new__\">__new__</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.namedTuples.Distance4Tuple-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.namedTuples.Distance4Tuple</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.namedTuples-module.html\">Module&nbsp;namedTuples</a> ::\n        Class&nbsp;Distance4Tuple\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.namedTuples.Distance4Tuple-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Distance4Tuple</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n   object --+        \n            |        \n        tuple --+    \n                |    \n   object --+   |    \n            |   |    \n <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n                |    \n<a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a> --+\n                    |\n                   <strong class=\"uidshort\">Distance4Tuple</strong>\n</pre>\n\n<hr />\n<p>4-Tuple <code>(distance2, delta_lat, delta_lon, unroll_lon2)</code> \n  with the distance in <code>degrees squared</code>, the latitudinal \n  <code>delta_lat = <b>lat2</b> - <b>lat1</b></code>, the wrapped, unrolled\n  and adjusted longitudinal <code>delta_lon = <b>lon2</b> - \n  <b>lon1</b></code> and <code>unroll_lon2</code>, the unrolled or original\n  <b><code>lon2</code></b>.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Note:</strong>\n        Use Function <a href=\"pygeodesy.utily-module.html#degrees2m\" \n        class=\"link\">pygeodesy.degrees2m</a> to convert <code>degrees \n        squared</code> to <code>meter</code> as <i \n        class=\"math\">degrees2m(sqrt(distance2), ...)</i> or <i \n        class=\"math\">degrees2m(hypot(delta_lat, delta_lon), ...)</i>.\n      </p>\n</div><!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__delattr__\">__delattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__getattr__\">__getattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__setattr__\">__setattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#items\">items</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iteritems\">iteritems</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iterunits\">iterunits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#reUnit\">reUnit</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toUnits\">toUnits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>tuple</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__eq__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__iter__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__rmul__</code>,\n      <code>count</code>,\n      <code>index</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__new__\">__new__</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.namedTuples.EasNor2Tuple-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.namedTuples.EasNor2Tuple</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.namedTuples-module.html\">Module&nbsp;namedTuples</a> ::\n        Class&nbsp;EasNor2Tuple\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.namedTuples.EasNor2Tuple-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class EasNor2Tuple</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n   object --+        \n            |        \n        tuple --+    \n                |    \n   object --+   |    \n            |   |    \n <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n                |    \n<a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a> --+\n                    |\n                   <strong class=\"uidshort\">EasNor2Tuple</strong>\n</pre>\n\n<hr />\n<p>2-Tuple <code>(easting, northing)</code>, both in <code>meter</code>, \n  conventionally.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__delattr__\">__delattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__getattr__\">__getattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__setattr__\">__setattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#items\">items</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iteritems\">iteritems</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iterunits\">iterunits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#reUnit\">reUnit</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toUnits\">toUnits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>tuple</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__eq__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__iter__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__rmul__</code>,\n      <code>count</code>,\n      <code>index</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__new__\">__new__</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.namedTuples.EasNor3Tuple-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.namedTuples.EasNor3Tuple</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.namedTuples-module.html\">Module&nbsp;namedTuples</a> ::\n        Class&nbsp;EasNor3Tuple\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.namedTuples.EasNor3Tuple-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class EasNor3Tuple</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n   object --+        \n            |        \n        tuple --+    \n                |    \n   object --+   |    \n            |   |    \n <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n                |    \n<a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a> --+\n                    |\n                   <strong class=\"uidshort\">EasNor3Tuple</strong>\n</pre>\n\n<hr />\n<p>3-Tuple <code>(easting, northing, height)</code>, all in \n  <code>meter</code>, conventionally.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__delattr__\">__delattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__getattr__\">__getattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__setattr__\">__setattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#items\">items</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iteritems\">iteritems</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iterunits\">iterunits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#reUnit\">reUnit</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toUnits\">toUnits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>tuple</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__eq__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__iter__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__rmul__</code>,\n      <code>count</code>,\n      <code>index</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__new__\">__new__</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.namedTuples.Ellipse5Tuple-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.namedTuples.Ellipse5Tuple</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.namedTuples-module.html\">Module&nbsp;namedTuples</a> ::\n        Class&nbsp;Ellipse5Tuple\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.namedTuples.Ellipse5Tuple-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Ellipse5Tuple</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n   object --+        \n            |        \n        tuple --+    \n                |    \n   object --+   |    \n            |   |    \n <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n                |    \n<a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a> --+\n                    |\n                   <strong class=\"uidshort\">Ellipse5Tuple</strong>\n</pre>\n\n<hr />\n<p>5-Tuple <code>(a, b, height, lat, beta)</code> with semi-axes \n  <code>a</code> and <code>b</code> of a parallel <i>ellipse of \n  latitude</i> at (geodetic) latitude <code>lat</code> and <i>parametric \n  (or reduced) auxiliary latitude</i> <code>beta</code> of a <i>triaxial \n  ellipsoid</i>.</p>\n  <p>The <code>height</code> is the (signed) distance between the parallel \n  and the triaxial's equatorial plane.  At near-polar <code>lat</code>s, \n  <code>a</code> and <code>b</code> are <code>0</code>, the \n  <code>height</code> is the triaxial semi-axis <code>c</code> (signed) and\n  <code>beta</code> equals <code>lat</code>.  The latter are in \n  <code>degrees90</code>, always.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Class <a href=\"pygeodesy.namedTuples.Circle4Tuple-class.html\" \n        class=\"link\">Circle4Tuple</a>.\n      </p>\n</div><!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.namedTuples.Ellipse5Tuple-class.html#toTriaxial\" class=\"summary-sig-name\">toTriaxial</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">**Triaxial_and_kwds</span>)</span><br />\n      Return a <a href=\"pygeodesy.triaxials.triaxial5.Triaxial-class.html\" \n      class=\"link\">Triaxial_</a> from this tuple's semi-axes \n      <code>abc3ordered</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.namedTuples.Ellipse5Tuple-class.html#toTriaxial_\" class=\"summary-sig-name\">toTriaxial_</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">**Triaxial_and_kwds</span>)</span><br />\n      Return a <a href=\"pygeodesy.triaxials.triaxial5.Triaxial_-class.html\"\n      class=\"link\">Triaxial_</a> from this tuple's semi-axes \n      <code>abc3</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__delattr__\">__delattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__getattr__\">__getattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__setattr__\">__setattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#items\">items</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iteritems\">iteritems</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iterunits\">iterunits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#reUnit\">reUnit</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toUnits\">toUnits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>tuple</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__eq__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__iter__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__rmul__</code>,\n      <code>count</code>,\n      <code>index</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__new__\">__new__</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.namedTuples.Ellipse5Tuple-class.html#abc3\" class=\"summary-name\">abc3</a><br />\n      Get the semi-axes as 3-tuple <code>(a, b, c)</code>, non-negative.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.namedTuples.Ellipse5Tuple-class.html#abc3ordered\" class=\"summary-name\">abc3ordered</a><br />\n      Get the semi-axes as 3-tuple <code>(a, b, c)</code>, non-negative, \n      ordered.\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"toTriaxial\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toTriaxial</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">**Triaxial_and_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return a <a href=\"pygeodesy.triaxials.triaxial5.Triaxial-class.html\" \n  class=\"link\">Triaxial_</a> from this tuple's semi-axes \n  <code>abc3ordered</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>Triaxial_and_kwds</code></strong> - Optional <code><b>Triaxial</b>=Triaxial</code> class and \n          additional <code>Triaxial</code> keyword arguments.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toTriaxial_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toTriaxial_</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">**Triaxial_and_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return a <a href=\"pygeodesy.triaxials.triaxial5.Triaxial_-class.html\" \n  class=\"link\">Triaxial_</a> from this tuple's semi-axes \n  <code>abc3</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>Triaxial_and_kwds</code></strong> - Optional <code><b>Triaxial</b>=Triaxial_</code> class and \n          additional <code>Triaxial_</code> keyword arguments.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"abc3\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">abc3</h3>\n  <p>Get the semi-axes as 3-tuple <code>(a, b, c)</code>, non-negative.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">abc3(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the semi-axes as 3-tuple <code>(a, b, c)</code>, non-negative.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"abc3ordered\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">abc3ordered</h3>\n  <p>Get the semi-axes as 3-tuple <code>(a, b, c)</code>, non-negative, \n  ordered.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">abc3ordered(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the semi-axes as 3-tuple <code>(a, b, c)</code>, non-negative, ordered.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.namedTuples.Forward4Tuple-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.namedTuples.Forward4Tuple</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.namedTuples-module.html\">Module&nbsp;namedTuples</a> ::\n        Class&nbsp;Forward4Tuple\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.namedTuples.Forward4Tuple-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Forward4Tuple</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n   object --+        \n            |        \n        tuple --+    \n                |    \n   object --+   |    \n            |   |    \n <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n                |    \n<a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a> --+\n                    |\n       object --+   |\n                |   |\n     _Convergence --+\n                    |\n                   <strong class=\"uidshort\">Forward4Tuple</strong>\n</pre>\n\n<hr />\n<p>4-Tuple <code>(easting, northing, gamma, scale)</code> in \n  <code>meter</code>, <code>meter</code>, meridian convergence \n  <code>gamma</code> at point in <code>degrees</code> and the \n  <code>scale</code> of projection at point <code>scalar</code>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__delattr__\">__delattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__getattr__\">__getattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__setattr__\">__setattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#items\">items</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iteritems\">iteritems</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iterunits\">iterunits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#reUnit\">reUnit</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toUnits\">toUnits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>tuple</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__eq__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__iter__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__rmul__</code>,\n      <code>count</code>,\n      <code>index</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__new__\">__new__</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>_Convergence</code></b>:\n      <code>convergence</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.namedTuples.Intersection3Tuple-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.namedTuples.Intersection3Tuple</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.namedTuples-module.html\">Module&nbsp;namedTuples</a> ::\n        Class&nbsp;Intersection3Tuple\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.namedTuples.Intersection3Tuple-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Intersection3Tuple</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n   object --+        \n            |        \n        tuple --+    \n                |    \n   object --+   |    \n            |   |    \n <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n                |    \n<a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a> --+\n                    |\n                   <strong class=\"uidshort\">Intersection3Tuple</strong>\n</pre>\n\n<hr />\n<p>3-Tuple <code>(point, outside1, outside2)</code> of an intersection \n  <code>point</code> and <code>outside1</code>, the position of the \n  <code>point</code>, <code>-1</code> if before the start, <code>+1</code> \n  if after the end and <code>0</code> if on or between the start and end \n  point of the first line.</p>\n  <p>Similarly, <code>outside2</code> is <code>-2</code>, <code>+2</code> \n  or <code>0</code> to indicate the position of the intersection \n  <code>point</code> on the second line or path.</p>\n  <p>If a path was specified with an initial bearing instead of an end \n  point, <code>outside1</code> and/or <code>outside2</code> will be \n  <code>0</code> if the intersection <code>point</code> is on the start \n  point or <code>+1</code> respectively <code>+2</code> if the intersection\n  <code>point</code> is after the start point, in the direction of the \n  bearing.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__delattr__\">__delattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__getattr__\">__getattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__setattr__\">__setattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#items\">items</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iteritems\">iteritems</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iterunits\">iterunits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#reUnit\">reUnit</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toUnits\">toUnits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>tuple</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__eq__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__iter__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__rmul__</code>,\n      <code>count</code>,\n      <code>index</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__new__\">__new__</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.namedTuples.LatLon2Tuple-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.namedTuples.LatLon2Tuple</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.namedTuples-module.html\">Module&nbsp;namedTuples</a> ::\n        Class&nbsp;LatLon2Tuple\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.namedTuples.LatLon2Tuple-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class LatLon2Tuple</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n   object --+        \n            |        \n        tuple --+    \n                |    \n   object --+   |    \n            |   |    \n <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n                |    \n<a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a> --+\n                    |\n                   <strong class=\"uidshort\">LatLon2Tuple</strong>\n</pre>\n\n<hr />\n<p>2-Tuple <code>(lat, lon)</code> in <code>degrees90</code> and \n  <code>degrees180</code>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.namedTuples.LatLon2Tuple-class.html#to3Tuple\" class=\"summary-sig-name\">to3Tuple</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">height</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Extend this <a href=\"pygeodesy.namedTuples.LatLon2Tuple-class.html\" \n      class=\"link\">LatLon2Tuple</a> to a <a \n      href=\"pygeodesy.namedTuples.LatLon3Tuple-class.html\" \n      class=\"link\">LatLon3Tuple</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.namedTuples.LatLon2Tuple-class.html#to4Tuple\" class=\"summary-sig-name\">to4Tuple</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">height</span>,\n        <span class=\"summary-sig-arg\">datum</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Extend this <a href=\"pygeodesy.namedTuples.LatLon2Tuple-class.html\" \n      class=\"link\">LatLon2Tuple</a> to a <a \n      href=\"pygeodesy.namedTuples.LatLon4Tuple-class.html\" \n      class=\"link\">LatLon4Tuple</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__delattr__\">__delattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__getattr__\">__getattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__setattr__\">__setattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#items\">items</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iteritems\">iteritems</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iterunits\">iterunits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#reUnit\">reUnit</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toUnits\">toUnits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>tuple</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__eq__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__iter__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__rmul__</code>,\n      <code>count</code>,\n      <code>index</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__new__\">__new__</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"to3Tuple\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">to3Tuple</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">height</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Extend this <a href=\"pygeodesy.namedTuples.LatLon2Tuple-class.html\" \n  class=\"link\">LatLon2Tuple</a> to a <a \n  href=\"pygeodesy.namedTuples.LatLon3Tuple-class.html\" \n  class=\"link\">LatLon3Tuple</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>height</code></strong> - The height to add (<code>scalar</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>), \n          overriding this name.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.namedTuples.LatLon3Tuple-class.html\" \n          class=\"link\">LatLon3Tuple</a><code>(lat, lon, height)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>height</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"to4Tuple\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">to4Tuple</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">height</span>,\n        <span class=\"sig-arg\">datum</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Extend this <a href=\"pygeodesy.namedTuples.LatLon2Tuple-class.html\" \n  class=\"link\">LatLon2Tuple</a> to a <a \n  href=\"pygeodesy.namedTuples.LatLon4Tuple-class.html\" \n  class=\"link\">LatLon4Tuple</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>height</code></strong> - The height to add (<code>scalar</code>).</li>\n        <li><strong class=\"pname\"><code>datum</code></strong> - The datum to add (<code>Datum</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>), \n          overriding this name.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.namedTuples.LatLon4Tuple-class.html\" \n          class=\"link\">LatLon4Tuple</a><code>(lat, lon, height, \n          datum)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - If <b><code>datum</code></b> not a <code>Datum</code>.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>height</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.namedTuples.LatLon3Tuple-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.namedTuples.LatLon3Tuple</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.namedTuples-module.html\">Module&nbsp;namedTuples</a> ::\n        Class&nbsp;LatLon3Tuple\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.namedTuples.LatLon3Tuple-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class LatLon3Tuple</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n   object --+        \n            |        \n        tuple --+    \n                |    \n   object --+   |    \n            |   |    \n <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n                |    \n<a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a> --+\n                    |\n                   <strong class=\"uidshort\">LatLon3Tuple</strong>\n</pre>\n\n<dl><dt>Known Subclasses:</dt>\n<dd>\n      <ul class=\"subclass-list\">\n<li><a href=\"pygeodesy.namedTuples.LatLon4Tuple-class.html\">LatLon4Tuple</a></li>  </ul>\n</dd></dl>\n\n<hr />\n<p>3-Tuple <code>(lat, lon, height)</code> in <code>degrees90</code>, \n  <code>degrees180</code> and <code>meter</code>, conventionally.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.namedTuples.LatLon3Tuple-class.html#to4Tuple\" class=\"summary-sig-name\">to4Tuple</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">datum</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Extend this <a href=\"pygeodesy.namedTuples.LatLon3Tuple-class.html\" \n      class=\"link\">LatLon3Tuple</a> to a <a \n      href=\"pygeodesy.namedTuples.LatLon4Tuple-class.html\" \n      class=\"link\">LatLon4Tuple</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__delattr__\">__delattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__getattr__\">__getattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__setattr__\">__setattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#items\">items</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iteritems\">iteritems</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iterunits\">iterunits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#reUnit\">reUnit</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toUnits\">toUnits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>tuple</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__eq__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__iter__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__rmul__</code>,\n      <code>count</code>,\n      <code>index</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__new__\">__new__</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"to4Tuple\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">to4Tuple</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">datum</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Extend this <a href=\"pygeodesy.namedTuples.LatLon3Tuple-class.html\" \n  class=\"link\">LatLon3Tuple</a> to a <a \n  href=\"pygeodesy.namedTuples.LatLon4Tuple-class.html\" \n  class=\"link\">LatLon4Tuple</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>datum</code></strong> - The datum to add (<code>Datum</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>), \n          overriding this name.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.namedTuples.LatLon4Tuple-class.html\" \n          class=\"link\">LatLon4Tuple</a><code>(lat, lon, height, \n          datum)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - If <b><code>datum</code></b> not a <code>Datum</code>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.namedTuples.LatLon4Tuple-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.namedTuples.LatLon4Tuple</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.namedTuples-module.html\">Module&nbsp;namedTuples</a> ::\n        Class&nbsp;LatLon4Tuple\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.namedTuples.LatLon4Tuple-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class LatLon4Tuple</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n   object --+            \n            |            \n        tuple --+        \n                |        \n   object --+   |        \n            |   |        \n <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+        \n                |        \n<a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a> --+    \n                    |    \n         <a href=\"pygeodesy.namedTuples.LatLon3Tuple-class.html\">LatLon3Tuple</a> --+\n                        |\n                       <strong class=\"uidshort\">LatLon4Tuple</strong>\n</pre>\n\n<hr />\n<p>4-Tuple <code>(lat, lon, height, datum)</code> in \n  <code>degrees90</code>, <code>degrees180</code>, <code>meter</code> and \n  <a href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.namedTuples.LatLon3Tuple-class.html\">LatLon3Tuple</a></code></b>:\n      <code><a href=\"pygeodesy.namedTuples.LatLon3Tuple-class.html#to4Tuple\">to4Tuple</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__delattr__\">__delattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__getattr__\">__getattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__setattr__\">__setattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#items\">items</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iteritems\">iteritems</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iterunits\">iterunits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#reUnit\">reUnit</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toUnits\">toUnits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>tuple</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__eq__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__iter__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__rmul__</code>,\n      <code>count</code>,\n      <code>index</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__new__\">__new__</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.namedTuples.LatLonDatum3Tuple-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.namedTuples.LatLonDatum3Tuple</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.namedTuples-module.html\">Module&nbsp;namedTuples</a> ::\n        Class&nbsp;LatLonDatum3Tuple\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.namedTuples.LatLonDatum3Tuple-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class LatLonDatum3Tuple</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n   object --+        \n            |        \n        tuple --+    \n                |    \n   object --+   |    \n            |   |    \n <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n                |    \n<a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a> --+\n                    |\n                   <strong class=\"uidshort\">LatLonDatum3Tuple</strong>\n</pre>\n\n<dl><dt>Known Subclasses:</dt>\n<dd>\n      <ul class=\"subclass-list\">\n<li><a href=\"pygeodesy.namedTuples.LatLonDatum5Tuple-class.html\">LatLonDatum5Tuple</a></li>  </ul>\n</dd></dl>\n\n<hr />\n<p>3-Tuple <code>(lat, lon, datum)</code> in <code>degrees90</code>, \n  <code>degrees180</code> and <a href=\"pygeodesy.datums.Datum-class.html\" \n  class=\"link\">Datum</a>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__delattr__\">__delattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__getattr__\">__getattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__setattr__\">__setattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#items\">items</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iteritems\">iteritems</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iterunits\">iterunits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#reUnit\">reUnit</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toUnits\">toUnits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>tuple</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__eq__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__iter__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__rmul__</code>,\n      <code>count</code>,\n      <code>index</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__new__\">__new__</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.namedTuples.LatLonDatum5Tuple-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.namedTuples.LatLonDatum5Tuple</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.namedTuples-module.html\">Module&nbsp;namedTuples</a> ::\n        Class&nbsp;LatLonDatum5Tuple\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.namedTuples.LatLonDatum5Tuple-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class LatLonDatum5Tuple</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n   object --+            \n            |            \n        tuple --+        \n                |        \n   object --+   |        \n            |   |        \n <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+        \n                |        \n<a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a> --+    \n                    |    \n    <a href=\"pygeodesy.namedTuples.LatLonDatum3Tuple-class.html\">LatLonDatum3Tuple</a> --+\n                        |\n           object --+   |\n                    |   |\n         _Convergence --+\n                        |\n                       <strong class=\"uidshort\">LatLonDatum5Tuple</strong>\n</pre>\n\n<hr />\n<p>5-Tuple <code>(lat, lon, datum, gamma, scale)</code> in \n  <code>degrees90</code>, <code>degrees180</code>, <a \n  href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>, \n  <code>degrees</code> and <code>float</code>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__delattr__\">__delattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__getattr__\">__getattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__setattr__\">__setattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#items\">items</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iteritems\">iteritems</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iterunits\">iterunits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#reUnit\">reUnit</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toUnits\">toUnits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>tuple</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__eq__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__iter__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__rmul__</code>,\n      <code>count</code>,\n      <code>index</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__new__\">__new__</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>_Convergence</code></b>:\n      <code>convergence</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.namedTuples.LatLonPrec3Tuple-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.namedTuples.LatLonPrec3Tuple</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.namedTuples-module.html\">Module&nbsp;namedTuples</a> ::\n        Class&nbsp;LatLonPrec3Tuple\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.namedTuples.LatLonPrec3Tuple-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class LatLonPrec3Tuple</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n   object --+        \n            |        \n        tuple --+    \n                |    \n   object --+   |    \n            |   |    \n <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n                |    \n<a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a> --+\n                    |\n                   <strong class=\"uidshort\">LatLonPrec3Tuple</strong>\n</pre>\n\n<dl><dt>Known Subclasses:</dt>\n<dd>\n      <ul class=\"subclass-list\">\n<li><a href=\"pygeodesy.namedTuples.LatLonPrec5Tuple-class.html\">LatLonPrec5Tuple</a></li>  </ul>\n</dd></dl>\n\n<hr />\n<p>3-Tuple <code>(lat, lon, precision)</code> in <code>degrees</code>, \n  <code>degrees</code> and <code>int</code>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.namedTuples.LatLonPrec3Tuple-class.html#to5Tuple\" class=\"summary-sig-name\">to5Tuple</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">height</span>,\n        <span class=\"summary-sig-arg\">radius</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Extend this <a \n      href=\"pygeodesy.namedTuples.LatLonPrec3Tuple-class.html\" \n      class=\"link\">LatLonPrec3Tuple</a> to a <a \n      href=\"pygeodesy.namedTuples.LatLonPrec5Tuple-class.html\" \n      class=\"link\">LatLonPrec5Tuple</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__delattr__\">__delattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__getattr__\">__getattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__setattr__\">__setattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#items\">items</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iteritems\">iteritems</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iterunits\">iterunits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#reUnit\">reUnit</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toUnits\">toUnits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>tuple</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__eq__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__iter__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__rmul__</code>,\n      <code>count</code>,\n      <code>index</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__new__\">__new__</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"to5Tuple\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">to5Tuple</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">height</span>,\n        <span class=\"sig-arg\">radius</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Extend this <a \n  href=\"pygeodesy.namedTuples.LatLonPrec3Tuple-class.html\" \n  class=\"link\">LatLonPrec3Tuple</a> to a <a \n  href=\"pygeodesy.namedTuples.LatLonPrec5Tuple-class.html\" \n  class=\"link\">LatLonPrec5Tuple</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>height</code></strong> - The height to add (<code>float</code> or <code>None</code>).</li>\n        <li><strong class=\"pname\"><code>radius</code></strong> - The radius to add (<code>float</code> or <code>None</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>), \n          overriding this name.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.namedTuples.LatLonPrec5Tuple-class.html\" \n          class=\"link\">LatLonPrec5Tuple</a><code>(lat, lon, precision, \n          height, radius)</code>.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.namedTuples.LatLonPrec5Tuple-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.namedTuples.LatLonPrec5Tuple</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.namedTuples-module.html\">Module&nbsp;namedTuples</a> ::\n        Class&nbsp;LatLonPrec5Tuple\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.namedTuples.LatLonPrec5Tuple-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class LatLonPrec5Tuple</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n   object --+            \n            |            \n        tuple --+        \n                |        \n   object --+   |        \n            |   |        \n <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+        \n                |        \n<a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a> --+    \n                    |    \n     <a href=\"pygeodesy.namedTuples.LatLonPrec3Tuple-class.html\">LatLonPrec3Tuple</a> --+\n                        |\n                       <strong class=\"uidshort\">LatLonPrec5Tuple</strong>\n</pre>\n\n<hr />\n<p>5-Tuple <code>(lat, lon, precision, height, radius)</code> in \n  <code>degrees</code>, <code>degrees</code>, <code>int</code> and \n  <code>height</code> or <code>radius</code> in <code>meter</code> (or \n  <code>None</code> if missing).</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.namedTuples.LatLonPrec3Tuple-class.html\">LatLonPrec3Tuple</a></code></b>:\n      <code><a href=\"pygeodesy.namedTuples.LatLonPrec3Tuple-class.html#to5Tuple\">to5Tuple</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__delattr__\">__delattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__getattr__\">__getattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__setattr__\">__setattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#items\">items</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iteritems\">iteritems</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iterunits\">iterunits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#reUnit\">reUnit</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toUnits\">toUnits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>tuple</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__eq__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__iter__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__rmul__</code>,\n      <code>count</code>,\n      <code>index</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__new__\">__new__</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.namedTuples.NearestOn2Tuple-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.namedTuples.NearestOn2Tuple</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.namedTuples-module.html\">Module&nbsp;namedTuples</a> ::\n        Class&nbsp;NearestOn2Tuple\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.namedTuples.NearestOn2Tuple-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class NearestOn2Tuple</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n   object --+        \n            |        \n        tuple --+    \n                |    \n   object --+   |    \n            |   |    \n <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n                |    \n<a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a> --+\n                    |\n                   <strong class=\"uidshort\">NearestOn2Tuple</strong>\n</pre>\n\n<hr />\n<p>2-Tuple <code>(closest, fraction)</code> of the <code>closest</code> \n  point on and <code>fraction</code> along a line (segment) between two \n  points.  The <code>fraction</code> is <code>0</code> if the closest point\n  is the first or <code>1</code> the second of the two points. Negative \n  <code>fraction</code>s indicate the closest point is <code>before</code> \n  the first point.  For <code>fraction &gt; 1.0</code> the closest point is\n  after the second point.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__delattr__\">__delattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__getattr__\">__getattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__setattr__\">__setattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#items\">items</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iteritems\">iteritems</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iterunits\">iterunits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#reUnit\">reUnit</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toUnits\">toUnits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>tuple</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__eq__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__iter__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__rmul__</code>,\n      <code>count</code>,\n      <code>index</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__new__\">__new__</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.namedTuples.NearestOn3Tuple-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.namedTuples.NearestOn3Tuple</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.namedTuples-module.html\">Module&nbsp;namedTuples</a> ::\n        Class&nbsp;NearestOn3Tuple\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.namedTuples.NearestOn3Tuple-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class NearestOn3Tuple</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n   object --+        \n            |        \n        tuple --+    \n                |    \n   object --+   |    \n            |   |    \n <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n                |    \n<a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a> --+\n                    |\n                   <strong class=\"uidshort\">NearestOn3Tuple</strong>\n</pre>\n\n<hr />\n<p>3-Tuple <code>(closest, distance, angle)</code> of the \n  <code>closest</code> point on the polygon, either a <code>LatLon</code> \n  instance or a <a href=\"pygeodesy.namedTuples.LatLon3Tuple-class.html\" \n  class=\"link\">LatLon3Tuple</a><code>(lat, lon, height)</code> and the \n  <code>distance</code> and <code>angle</code> to the <code>closest</code> \n  point are in <code>meter</code> respectively compass \n  <code>degrees360</code>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__delattr__\">__delattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__getattr__\">__getattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__setattr__\">__setattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#items\">items</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iteritems\">iteritems</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iterunits\">iterunits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#reUnit\">reUnit</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toUnits\">toUnits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>tuple</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__eq__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__iter__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__rmul__</code>,\n      <code>count</code>,\n      <code>index</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__new__\">__new__</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.namedTuples.NearestOn6Tuple-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.namedTuples.NearestOn6Tuple</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.namedTuples-module.html\">Module&nbsp;namedTuples</a> ::\n        Class&nbsp;NearestOn6Tuple\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.namedTuples.NearestOn6Tuple-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class NearestOn6Tuple</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n   object --+        \n            |        \n        tuple --+    \n                |    \n   object --+   |    \n            |   |    \n <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n                |    \n<a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a> --+\n                    |\n                   <strong class=\"uidshort\">NearestOn6Tuple</strong>\n</pre>\n\n<hr />\n<p>6-Tuple <code>(closest, distance, fi, j, start, end)</code> with the \n  <code>closest</code> point, the <code>distance</code> in \n  <code>meter</code>, conventionally and the <code>start</code> and \n  <code>end</code> point of the path or polygon edge.  Fractional index \n  <code>fi</code> (an <a href=\"pygeodesy.units.FIx-class.html\" \n  class=\"link\">FIx</a> instance) and index <code>j</code> indicate the path\n  or polygon edge and the fraction along that edge with the \n  <code>closest</code> point.  The <code>start</code> and <code>end</code> \n  points may differ from the given path or polygon points at indices \n  <code>fi</code> respectively <code>j</code>, when unrolled \n  (<code>wrap</code> is <code>True</code>).  Also, the <code>start</code> \n  and/or <code>end</code> point may be the same instance as the \n  <code>closest</code> point, for example when the very first path or \n  polygon point is the nearest.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__delattr__\">__delattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__getattr__\">__getattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__setattr__\">__setattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#items\">items</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iteritems\">iteritems</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iterunits\">iterunits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#reUnit\">reUnit</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toUnits\">toUnits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>tuple</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__eq__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__iter__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__rmul__</code>,\n      <code>count</code>,\n      <code>index</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__new__\">__new__</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.namedTuples.NearestOn8Tuple-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.namedTuples.NearestOn8Tuple</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.namedTuples-module.html\">Module&nbsp;namedTuples</a> ::\n        Class&nbsp;NearestOn8Tuple\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.namedTuples.NearestOn8Tuple-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class NearestOn8Tuple</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n   object --+        \n            |        \n        tuple --+    \n                |    \n   object --+   |    \n            |   |    \n <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n                |    \n<a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a> --+\n                    |\n                   <strong class=\"uidshort\">NearestOn8Tuple</strong>\n</pre>\n\n<hr />\n<p>8-Tuple <code>(closest, distance, fi, j, start, end, initial, \n  final)</code>, like <a \n  href=\"pygeodesy.namedTuples.NearestOn6Tuple-class.html\" \n  class=\"link\">NearestOn6Tuple</a> but extended with the \n  <code>initial</code> and the <code>final</code> bearing at the reference \n  respectively the <code>closest</code> point, both in compass \n  <code>degrees</code>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__delattr__\">__delattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__getattr__\">__getattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__setattr__\">__setattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#items\">items</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iteritems\">iteritems</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iterunits\">iterunits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#reUnit\">reUnit</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toUnits\">toUnits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>tuple</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__eq__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__iter__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__rmul__</code>,\n      <code>count</code>,\n      <code>index</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__new__\">__new__</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.namedTuples.PhiLam2Tuple-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.namedTuples.PhiLam2Tuple</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.namedTuples-module.html\">Module&nbsp;namedTuples</a> ::\n        Class&nbsp;PhiLam2Tuple\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.namedTuples.PhiLam2Tuple-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class PhiLam2Tuple</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n   object --+        \n            |        \n        tuple --+    \n                |    \n   object --+   |    \n            |   |    \n <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n                |    \n<a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a> --+\n                    |\n                   <strong class=\"uidshort\">PhiLam2Tuple</strong>\n</pre>\n\n<hr />\n<p>2-Tuple <code>(phi, lam)</code> with latitude <code>phi</code> in \n  <code>radians[PI_2]</code> and longitude <code>lam</code> in \n  <code>radians[PI]</code>.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Note:</strong>\n        Using <code>phi/lambda</code> for lat-/longitude in \n        <code>radians</code> follows Chris Veness' <a \n        href=\"https://www.Movable-Type.co.UK/scripts/latlong.html\" \n        target=\"_top\">convention</a>.\n      </p>\n</div><!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.namedTuples.PhiLam2Tuple-class.html#to3Tuple\" class=\"summary-sig-name\">to3Tuple</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">height</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Extend this <a href=\"pygeodesy.namedTuples.PhiLam2Tuple-class.html\" \n      class=\"link\">PhiLam2Tuple</a> to a <a \n      href=\"pygeodesy.namedTuples.PhiLam3Tuple-class.html\" \n      class=\"link\">PhiLam3Tuple</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.namedTuples.PhiLam2Tuple-class.html#to4Tuple\" class=\"summary-sig-name\">to4Tuple</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">height</span>,\n        <span class=\"summary-sig-arg\">datum</span>)</span><br />\n      Extend this <a href=\"pygeodesy.namedTuples.PhiLam2Tuple-class.html\" \n      class=\"link\">PhiLam2Tuple</a> to a <a \n      href=\"pygeodesy.namedTuples.PhiLam4Tuple-class.html\" \n      class=\"link\">PhiLam4Tuple</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__delattr__\">__delattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__getattr__\">__getattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__setattr__\">__setattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#items\">items</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iteritems\">iteritems</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iterunits\">iterunits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#reUnit\">reUnit</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toUnits\">toUnits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>tuple</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__eq__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__iter__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__rmul__</code>,\n      <code>count</code>,\n      <code>index</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__new__\">__new__</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"to3Tuple\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">to3Tuple</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">height</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Extend this <a href=\"pygeodesy.namedTuples.PhiLam2Tuple-class.html\" \n  class=\"link\">PhiLam2Tuple</a> to a <a \n  href=\"pygeodesy.namedTuples.PhiLam3Tuple-class.html\" \n  class=\"link\">PhiLam3Tuple</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>height</code></strong> - The height to add (<code>scalar</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>), \n          overriding this name.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.namedTuples.PhiLam3Tuple-class.html\" \n          class=\"link\">PhiLam3Tuple</a><code>(phi, lam, height)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>height</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"to4Tuple\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">to4Tuple</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">height</span>,\n        <span class=\"sig-arg\">datum</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Extend this <a href=\"pygeodesy.namedTuples.PhiLam2Tuple-class.html\" \n  class=\"link\">PhiLam2Tuple</a> to a <a \n  href=\"pygeodesy.namedTuples.PhiLam4Tuple-class.html\" \n  class=\"link\">PhiLam4Tuple</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>height</code></strong> - The height to add (<code>scalar</code>).</li>\n        <li><strong class=\"pname\"><code>datum</code></strong> - The datum to add (<code>Datum</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.namedTuples.PhiLam4Tuple-class.html\" \n          class=\"link\">PhiLam4Tuple</a><code>(phi, lam, height, \n          datum)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - If <b><code>datum</code></b> not a <code>Datum</code>.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>height</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.namedTuples.PhiLam3Tuple-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.namedTuples.PhiLam3Tuple</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.namedTuples-module.html\">Module&nbsp;namedTuples</a> ::\n        Class&nbsp;PhiLam3Tuple\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.namedTuples.PhiLam3Tuple-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class PhiLam3Tuple</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n   object --+        \n            |        \n        tuple --+    \n                |    \n   object --+   |    \n            |   |    \n <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n                |    \n<a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a> --+\n                    |\n                   <strong class=\"uidshort\">PhiLam3Tuple</strong>\n</pre>\n\n<hr />\n<p>3-Tuple <code>(phi, lam, height)</code> with latitude <code>phi</code>\n  in <code>radians[PI_2]</code>, longitude <code>lam</code> in \n  <code>radians[PI]</code> and <code>height</code> in \n  <code>meter</code>.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Note:</strong>\n        Using <code>phi/lambda</code> for lat-/longitude in \n        <code>radians</code> follows Chris Veness' <a \n        href=\"https://www.Movable-Type.co.UK/scripts/latlong.html\" \n        target=\"_top\">convention</a>.\n      </p>\n</div><!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.namedTuples.PhiLam3Tuple-class.html#to4Tuple\" class=\"summary-sig-name\">to4Tuple</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">datum</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Extend this <a href=\"pygeodesy.namedTuples.PhiLam3Tuple-class.html\" \n      class=\"link\">PhiLam3Tuple</a> to a <a \n      href=\"pygeodesy.namedTuples.PhiLam4Tuple-class.html\" \n      class=\"link\">PhiLam4Tuple</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__delattr__\">__delattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__getattr__\">__getattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__setattr__\">__setattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#items\">items</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iteritems\">iteritems</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iterunits\">iterunits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#reUnit\">reUnit</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toUnits\">toUnits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>tuple</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__eq__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__iter__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__rmul__</code>,\n      <code>count</code>,\n      <code>index</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__new__\">__new__</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"to4Tuple\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">to4Tuple</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">datum</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Extend this <a href=\"pygeodesy.namedTuples.PhiLam3Tuple-class.html\" \n  class=\"link\">PhiLam3Tuple</a> to a <a \n  href=\"pygeodesy.namedTuples.PhiLam4Tuple-class.html\" \n  class=\"link\">PhiLam4Tuple</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>datum</code></strong> - The datum to add (<code>Datum</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>), \n          overriding this name.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.namedTuples.PhiLam4Tuple-class.html\" \n          class=\"link\">PhiLam4Tuple</a><code>(phi, lam, height, \n          datum)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - If <b><code>datum</code></b> not a <code>Datum</code>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.namedTuples.PhiLam4Tuple-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.namedTuples.PhiLam4Tuple</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.namedTuples-module.html\">Module&nbsp;namedTuples</a> ::\n        Class&nbsp;PhiLam4Tuple\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.namedTuples.PhiLam4Tuple-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class PhiLam4Tuple</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n   object --+        \n            |        \n        tuple --+    \n                |    \n   object --+   |    \n            |   |    \n <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n                |    \n<a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a> --+\n                    |\n                   <strong class=\"uidshort\">PhiLam4Tuple</strong>\n</pre>\n\n<hr />\n<p>4-Tuple <code>(phi, lam, height, datum)</code> with latitude \n  <code>phi</code> in <code>radians[PI_2]</code>, longitude \n  <code>lam</code> in <code>radians[PI]</code>, <code>height</code> in \n  <code>meter</code> and <a href=\"pygeodesy.datums.Datum-class.html\" \n  class=\"link\">Datum</a>.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Note:</strong>\n        Using <code>phi/lambda</code> for lat-/longitude in \n        <code>radians</code> follows Chris Veness' <a \n        href=\"https://www.Movable-Type.co.UK/scripts/latlong.html\" \n        target=\"_top\">convention</a>.\n      </p>\n</div><!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__delattr__\">__delattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__getattr__\">__getattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__setattr__\">__setattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#items\">items</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iteritems\">iteritems</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iterunits\">iterunits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#reUnit\">reUnit</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toUnits\">toUnits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>tuple</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__eq__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__iter__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__rmul__</code>,\n      <code>count</code>,\n      <code>index</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__new__\">__new__</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.namedTuples.Point3Tuple-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.namedTuples.Point3Tuple</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.namedTuples-module.html\">Module&nbsp;namedTuples</a> ::\n        Class&nbsp;Point3Tuple\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.namedTuples.Point3Tuple-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Point3Tuple</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n   object --+        \n            |        \n        tuple --+    \n                |    \n   object --+   |    \n            |   |    \n <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n                |    \n<a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a> --+\n                    |\n                   <strong class=\"uidshort\">Point3Tuple</strong>\n</pre>\n\n<hr />\n<p>3-Tuple <code>(x, y, ll)</code> in <code>meter</code>, \n  <code>meter</code> and <code>LatLon</code>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__delattr__\">__delattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__getattr__\">__getattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__setattr__\">__setattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#items\">items</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iteritems\">iteritems</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iterunits\">iterunits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#reUnit\">reUnit</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toUnits\">toUnits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>tuple</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__eq__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__iter__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__rmul__</code>,\n      <code>count</code>,\n      <code>index</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__new__\">__new__</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.namedTuples.Points2Tuple-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.namedTuples.Points2Tuple</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.namedTuples-module.html\">Module&nbsp;namedTuples</a> ::\n        Class&nbsp;Points2Tuple\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.namedTuples.Points2Tuple-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Points2Tuple</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n   object --+        \n            |        \n        tuple --+    \n                |    \n   object --+   |    \n            |   |    \n <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n                |    \n<a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a> --+\n                    |\n                   <strong class=\"uidshort\">Points2Tuple</strong>\n</pre>\n\n<hr />\n<p>2-Tuple <code>(number, points)</code> with the <code>number</code> of \n  points and -possible reduced- <code>list</code> or <code>tuple</code> of \n  <code>points</code>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__delattr__\">__delattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__getattr__\">__getattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__setattr__\">__setattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#items\">items</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iteritems\">iteritems</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iterunits\">iterunits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#reUnit\">reUnit</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toUnits\">toUnits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>tuple</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__eq__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__iter__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__rmul__</code>,\n      <code>count</code>,\n      <code>index</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__new__\">__new__</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.namedTuples.Reverse4Tuple-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.namedTuples.Reverse4Tuple</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.namedTuples-module.html\">Module&nbsp;namedTuples</a> ::\n        Class&nbsp;Reverse4Tuple\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.namedTuples.Reverse4Tuple-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Reverse4Tuple</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n   object --+        \n            |        \n        tuple --+    \n                |    \n   object --+   |    \n            |   |    \n <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n                |    \n<a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a> --+\n                    |\n       object --+   |\n                |   |\n     _Convergence --+\n                    |\n                   <strong class=\"uidshort\">Reverse4Tuple</strong>\n</pre>\n\n<hr />\n<p>4-Tuple <code>(lat, lon, gamma, scale)</code> with <code>lat</code>- \n  and <code>lon</code>gitude in <code>degrees</code>, meridian convergence \n  <code>gamma</code> at point in <code>degrees</code> and the \n  <code>scale</code> of projection at point <code>scalar</code>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__delattr__\">__delattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__getattr__\">__getattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__setattr__\">__setattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#items\">items</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iteritems\">iteritems</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iterunits\">iterunits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#reUnit\">reUnit</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toUnits\">toUnits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>tuple</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__eq__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__iter__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__rmul__</code>,\n      <code>count</code>,\n      <code>index</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__new__\">__new__</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>_Convergence</code></b>:\n      <code>convergence</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.namedTuples.Triangle7Tuple-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.namedTuples.Triangle7Tuple</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.namedTuples-module.html\">Module&nbsp;namedTuples</a> ::\n        Class&nbsp;Triangle7Tuple\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.namedTuples.Triangle7Tuple-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Triangle7Tuple</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n   object --+        \n            |        \n        tuple --+    \n                |    \n   object --+   |    \n            |   |    \n <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n                |    \n<a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a> --+\n                    |\n                   <strong class=\"uidshort\">Triangle7Tuple</strong>\n</pre>\n\n<hr />\n<p>7-Tuple <code>(A, a, B, b, C, c, area)</code> with interior angles \n  <code>A</code>, <code>B</code> and <code>C</code> in \n  <code>degrees</code>, spherical sides <code>a</code>, <code>b</code> and \n  <code>c</code> in <code>meter</code> conventionally and the \n  <code>area</code> of a (spherical) triangle in <i>square</i> \n  <code>meter</code> conventionally.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__delattr__\">__delattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__getattr__\">__getattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__setattr__\">__setattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#items\">items</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iteritems\">iteritems</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iterunits\">iterunits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#reUnit\">reUnit</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toUnits\">toUnits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>tuple</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__eq__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__iter__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__rmul__</code>,\n      <code>count</code>,\n      <code>index</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__new__\">__new__</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.namedTuples.Triangle8Tuple-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.namedTuples.Triangle8Tuple</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.namedTuples-module.html\">Module&nbsp;namedTuples</a> ::\n        Class&nbsp;Triangle8Tuple\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.namedTuples.Triangle8Tuple-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Triangle8Tuple</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n   object --+        \n            |        \n        tuple --+    \n                |    \n   object --+   |    \n            |   |    \n <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n                |    \n<a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a> --+\n                    |\n                   <strong class=\"uidshort\">Triangle8Tuple</strong>\n</pre>\n\n<hr />\n<p>8-Tuple <code>(A, a, B, b, C, c, D, E)</code> with interior angles \n  <code>A</code>, <code>B</code> and <code>C</code>, spherical sides \n  <code>a</code>, <code>b</code> and <code>c</code>, the <i>spherical \n  deficit</i> <code>D</code> and the <i>spherical excess</i> <code>E</code>\n  of a (spherical) triangle, all in <code>radians</code>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__delattr__\">__delattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__getattr__\">__getattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__setattr__\">__setattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#items\">items</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iteritems\">iteritems</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iterunits\">iterunits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#reUnit\">reUnit</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toUnits\">toUnits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>tuple</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__eq__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__iter__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__rmul__</code>,\n      <code>count</code>,\n      <code>index</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__new__\">__new__</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.namedTuples.Trilaterate5Tuple-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.namedTuples.Trilaterate5Tuple</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.namedTuples-module.html\">Module&nbsp;namedTuples</a> ::\n        Class&nbsp;Trilaterate5Tuple\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.namedTuples.Trilaterate5Tuple-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Trilaterate5Tuple</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n   object --+        \n            |        \n        tuple --+    \n                |    \n   object --+   |    \n            |   |    \n <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n                |    \n<a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a> --+\n                    |\n                   <strong class=\"uidshort\">Trilaterate5Tuple</strong>\n</pre>\n\n<hr />\n<p>5-Tuple <code>(min, minPoint, max, maxPoint, n)</code> with \n  <code>min</code> and <code>max</code> in <code>meter</code>, the \n  corresponding trilaterated <code>minPoint</code> and \n  <code>maxPoint</code> as <code>LatLon</code> and the number \n  <code>n</code>.  For area overlap, <code>min</code> and <code>max</code> \n  are the smallest respectively largest overlap found.  For perimeter \n  intersection, <code>min</code> and <code>max</code> represent the closest\n  respectively farthest intersection margin.  Count <code>n</code> is the \n  total number of trilaterated overlaps or intersections found, <code>0, 1,\n  2...6</code> with <code>0</code> meaning concentric.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        The <code>ellipsoidalKarney-</code>, \n        <code>ellipsoidalVincenty-</code> and \n        <code>sphericalTrigonometry.LatLon.trilaterate5</code> method for \n        further details on corner cases, like concentric or single \n        trilaterated results.\n      </p>\n</div><!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__delattr__\">__delattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__getattr__\">__getattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__setattr__\">__setattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#items\">items</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iteritems\">iteritems</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iterunits\">iterunits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#reUnit\">reUnit</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toUnits\">toUnits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>tuple</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__eq__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__iter__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__rmul__</code>,\n      <code>count</code>,\n      <code>index</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__new__\">__new__</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.namedTuples.UtmUps2Tuple-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.namedTuples.UtmUps2Tuple</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.namedTuples-module.html\">Module&nbsp;namedTuples</a> ::\n        Class&nbsp;UtmUps2Tuple\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.namedTuples.UtmUps2Tuple-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class UtmUps2Tuple</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n   object --+        \n            |        \n        tuple --+    \n                |    \n   object --+   |    \n            |   |    \n <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n                |    \n<a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a> --+\n                    |\n                   <strong class=\"uidshort\">UtmUps2Tuple</strong>\n</pre>\n\n<hr />\n<p>2-Tuple <code>(zone, hemipole)</code> as <code>int</code> and \n  <code>str</code>, where <code>zone</code> is <code>1..60</code> for UTM \n  or <code>0</code> for UPS and <code>hemipole</code> <code>'N'|'S'</code> \n  is the UTM hemisphere or the UPS pole.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__delattr__\">__delattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__getattr__\">__getattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__setattr__\">__setattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#items\">items</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iteritems\">iteritems</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iterunits\">iterunits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#reUnit\">reUnit</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toUnits\">toUnits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>tuple</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__eq__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__iter__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__rmul__</code>,\n      <code>count</code>,\n      <code>index</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__new__\">__new__</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.namedTuples.UtmUps5Tuple-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.namedTuples.UtmUps5Tuple</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.namedTuples-module.html\">Module&nbsp;namedTuples</a> ::\n        Class&nbsp;UtmUps5Tuple\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.namedTuples.UtmUps5Tuple-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class UtmUps5Tuple</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n   object --+        \n            |        \n        tuple --+    \n                |    \n   object --+   |    \n            |   |    \n <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n                |    \n<a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a> --+\n                    |\n                   <strong class=\"uidshort\">UtmUps5Tuple</strong>\n</pre>\n\n<hr />\n<p>5-Tuple <code>(zone, hemipole, easting, northing, band)</code> as \n  <code>int</code>, <code>str</code>, <code>meter</code>, \n  <code>meter</code> and <code>band</code> letter, where <code>zone</code> \n  is <code>1..60</code> for UTM or <code>0</code> for UPS, \n  <code>hemipole</code> <code>'N'|'S'</code> is the UTM hemisphere or the \n  UPS pole and <code>band</code> is <code>&quot;&quot;</code> or the \n  <i>longitudinal</i> UTM band <code>'C'|'D'|..|'W'|'X'</code> or \n  <i>polar</i> UPS band <code>'A'|'B'|'Y'|'Z'</code>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__delattr__\">__delattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__getattr__\">__getattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__setattr__\">__setattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#items\">items</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iteritems\">iteritems</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iterunits\">iterunits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#reUnit\">reUnit</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toUnits\">toUnits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>tuple</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__eq__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__iter__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__rmul__</code>,\n      <code>count</code>,\n      <code>index</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">a new object with type S, a subtype of T</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.namedTuples.UtmUps5Tuple-class.html#__new__\" class=\"summary-sig-name\">__new__</a>(<span class=\"summary-sig-arg\">cls</span>,\n        <span class=\"summary-sig-arg\">z</span>,\n        <span class=\"summary-sig-arg\">h</span>,\n        <span class=\"summary-sig-arg\">e</span>,\n        <span class=\"summary-sig-arg\">n</span>,\n        <span class=\"summary-sig-arg\">B</span>,\n        <span class=\"summary-sig-arg\">Error</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      New <a href=\"pygeodesy.named._NamedTuple-class.html\" \n      class=\"link\">_NamedTuple</a> initialized with \n      <b><code>positional</code></b> arguments.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__new__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__new__</span>&nbsp;(<span class=\"sig-arg\">cls</span>,\n        <span class=\"sig-arg\">z</span>,\n        <span class=\"sig-arg\">h</span>,\n        <span class=\"sig-arg\">e</span>,\n        <span class=\"sig-arg\">n</span>,\n        <span class=\"sig-arg\">B</span>,\n        <span class=\"sig-arg\">Error</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n    <br /><em class=\"fname\">Static Method</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.named._NamedTuple-class.html\" \n  class=\"link\">_NamedTuple</a> initialized with \n  <b><code>positional</code></b> arguments.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>arg</code></strong> - Tuple items (<code>tuple</code>, <code>list</code>, ...) or first\n          tuple item of several more in other positional arguments.</li>\n        <li><strong class=\"pname\"><code>args</code></strong> - Tuple items (<code>any</code>), all positional arguments.</li>\n        <li><strong class=\"pname\"><code>iteration_name</code></strong> - Only keyword arguments <code><b>iteration</b>=None</code> and \n          <code><b>name</b>=NN</code> are used, any other are \n          <i>silently</i> ignored.</li>\n    </ul></dd>\n    <dt>Returns: a new object with type S, a subtype of T</dt>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.LenError-class.html\">LenError</a></strong></code> - Unequal number of positional arguments and number of item \n        <code>_Names_</code> or <code>_Units_</code>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - The <code>_Names_</code> or <code>_Units_</code> attribute is not a\n        <code>tuple</code> of at least 2 items.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Item name is not a <code>str</code> or valid \n        <code>identifier</code> or starts with <code>underscore</code>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__new__\n        <dd><em class=\"note\">(inherited documentation)</em></dd>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.namedTuples.UtmUps8Tuple-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.namedTuples.UtmUps8Tuple</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.namedTuples-module.html\">Module&nbsp;namedTuples</a> ::\n        Class&nbsp;UtmUps8Tuple\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.namedTuples.UtmUps8Tuple-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class UtmUps8Tuple</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n   object --+        \n            |        \n        tuple --+    \n                |    \n   object --+   |    \n            |   |    \n <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n                |    \n<a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a> --+\n                    |\n       object --+   |\n                |   |\n     _Convergence --+\n                    |\n                   <strong class=\"uidshort\">UtmUps8Tuple</strong>\n</pre>\n\n<hr />\n<p>8-Tuple <code>(zone, hemipole, easting, northing, band, datum, gamma, \n  scale)</code> as <code>int</code>, <code>str</code>, <code>meter</code>, \n  <code>meter</code>, <code>band</code> letter, <code>Datum</code>, \n  <code>degrees</code> and <code>scalar</code>, where <code>zone</code> is \n  <code>1..60</code> for UTM or <code>0</code> for UPS, \n  <code>hemipole</code> <code>'N'|'S'</code> is the UTM hemisphere or the \n  UPS pole and <code>band</code> is <code>&quot;&quot;</code> or the \n  <i>longitudinal</i> UTM band <code>'C'|'D'|..|'W'|'X'</code> or \n  <i>polar</i> UPS band <code>'A'|'B'|'Y'|'Z'</code>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__delattr__\">__delattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__getattr__\">__getattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__setattr__\">__setattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#items\">items</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iteritems\">iteritems</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iterunits\">iterunits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#reUnit\">reUnit</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toUnits\">toUnits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>tuple</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__eq__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__iter__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__rmul__</code>,\n      <code>count</code>,\n      <code>index</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">a new object with type S, a subtype of T</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.namedTuples.UtmUps8Tuple-class.html#__new__\" class=\"summary-sig-name\">__new__</a>(<span class=\"summary-sig-arg\">cls</span>,\n        <span class=\"summary-sig-arg\">z</span>,\n        <span class=\"summary-sig-arg\">h</span>,\n        <span class=\"summary-sig-arg\">e</span>,\n        <span class=\"summary-sig-arg\">n</span>,\n        <span class=\"summary-sig-arg\">B</span>,\n        <span class=\"summary-sig-arg\">d</span>,\n        <span class=\"summary-sig-arg\">g</span>,\n        <span class=\"summary-sig-arg\">s</span>,\n        <span class=\"summary-sig-arg\">Error</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      New <a href=\"pygeodesy.named._NamedTuple-class.html\" \n      class=\"link\">_NamedTuple</a> initialized with \n      <b><code>positional</code></b> arguments.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>_Convergence</code></b>:\n      <code>convergence</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__new__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__new__</span>&nbsp;(<span class=\"sig-arg\">cls</span>,\n        <span class=\"sig-arg\">z</span>,\n        <span class=\"sig-arg\">h</span>,\n        <span class=\"sig-arg\">e</span>,\n        <span class=\"sig-arg\">n</span>,\n        <span class=\"sig-arg\">B</span>,\n        <span class=\"sig-arg\">d</span>,\n        <span class=\"sig-arg\">g</span>,\n        <span class=\"sig-arg\">s</span>,\n        <span class=\"sig-arg\">Error</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n    <br /><em class=\"fname\">Static Method</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.named._NamedTuple-class.html\" \n  class=\"link\">_NamedTuple</a> initialized with \n  <b><code>positional</code></b> arguments.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>arg</code></strong> - Tuple items (<code>tuple</code>, <code>list</code>, ...) or first\n          tuple item of several more in other positional arguments.</li>\n        <li><strong class=\"pname\"><code>args</code></strong> - Tuple items (<code>any</code>), all positional arguments.</li>\n        <li><strong class=\"pname\"><code>iteration_name</code></strong> - Only keyword arguments <code><b>iteration</b>=None</code> and \n          <code><b>name</b>=NN</code> are used, any other are \n          <i>silently</i> ignored.</li>\n    </ul></dd>\n    <dt>Returns: a new object with type S, a subtype of T</dt>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.LenError-class.html\">LenError</a></strong></code> - Unequal number of positional arguments and number of item \n        <code>_Names_</code> or <code>_Units_</code>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - The <code>_Names_</code> or <code>_Units_</code> attribute is not a\n        <code>tuple</code> of at least 2 items.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Item name is not a <code>str</code> or valid \n        <code>identifier</code> or starts with <code>underscore</code>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__new__\n        <dd><em class=\"note\">(inherited documentation)</em></dd>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.namedTuples.UtmUpsLatLon5Tuple-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.namedTuples.UtmUpsLatLon5Tuple</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.namedTuples-module.html\">Module&nbsp;namedTuples</a> ::\n        Class&nbsp;UtmUpsLatLon5Tuple\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.namedTuples.UtmUpsLatLon5Tuple-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class UtmUpsLatLon5Tuple</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n   object --+        \n            |        \n        tuple --+    \n                |    \n   object --+   |    \n            |   |    \n <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n                |    \n<a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a> --+\n                    |\n                   <strong class=\"uidshort\">UtmUpsLatLon5Tuple</strong>\n</pre>\n\n<hr />\n<p>5-Tuple <code>(zone, band, hemipole, lat, lon)</code> as \n  <code>int</code>, <code>str</code>, <code>str</code>, \n  <code>degrees90</code> and <code>degrees180</code>, where \n  <code>zone</code> is <code>1..60</code> for UTM or <code>0</code> for \n  UPS, <code>band</code> is <code>&quot;&quot;</code> or the \n  <i>longitudinal</i> UTM band <code>'C'|'D'|..|'W'|'X'</code> or \n  <i>polar</i> UPS band <code>'A'|'B'|'Y'|'Z'</code> and \n  <code>hemipole</code> <code>'N'|'S'</code> is the UTM hemisphere or the \n  UPS pole.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__delattr__\">__delattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__getattr__\">__getattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__setattr__\">__setattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#items\">items</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iteritems\">iteritems</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iterunits\">iterunits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#reUnit\">reUnit</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toUnits\">toUnits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>tuple</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__eq__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__iter__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__rmul__</code>,\n      <code>count</code>,\n      <code>index</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">a new object with type S, a subtype of T</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.namedTuples.UtmUpsLatLon5Tuple-class.html#__new__\" class=\"summary-sig-name\">__new__</a>(<span class=\"summary-sig-arg\">cls</span>,\n        <span class=\"summary-sig-arg\">z</span>,\n        <span class=\"summary-sig-arg\">B</span>,\n        <span class=\"summary-sig-arg\">h</span>,\n        <span class=\"summary-sig-arg\">lat</span>,\n        <span class=\"summary-sig-arg\">lon</span>,\n        <span class=\"summary-sig-arg\">Error</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      New <a href=\"pygeodesy.named._NamedTuple-class.html\" \n      class=\"link\">_NamedTuple</a> initialized with \n      <b><code>positional</code></b> arguments.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__new__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__new__</span>&nbsp;(<span class=\"sig-arg\">cls</span>,\n        <span class=\"sig-arg\">z</span>,\n        <span class=\"sig-arg\">B</span>,\n        <span class=\"sig-arg\">h</span>,\n        <span class=\"sig-arg\">lat</span>,\n        <span class=\"sig-arg\">lon</span>,\n        <span class=\"sig-arg\">Error</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n    <br /><em class=\"fname\">Static Method</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.named._NamedTuple-class.html\" \n  class=\"link\">_NamedTuple</a> initialized with \n  <b><code>positional</code></b> arguments.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>arg</code></strong> - Tuple items (<code>tuple</code>, <code>list</code>, ...) or first\n          tuple item of several more in other positional arguments.</li>\n        <li><strong class=\"pname\"><code>args</code></strong> - Tuple items (<code>any</code>), all positional arguments.</li>\n        <li><strong class=\"pname\"><code>iteration_name</code></strong> - Only keyword arguments <code><b>iteration</b>=None</code> and \n          <code><b>name</b>=NN</code> are used, any other are \n          <i>silently</i> ignored.</li>\n    </ul></dd>\n    <dt>Returns: a new object with type S, a subtype of T</dt>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.LenError-class.html\">LenError</a></strong></code> - Unequal number of positional arguments and number of item \n        <code>_Names_</code> or <code>_Units_</code>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - The <code>_Names_</code> or <code>_Units_</code> attribute is not a\n        <code>tuple</code> of at least 2 items.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Item name is not a <code>str</code> or valid \n        <code>identifier</code> or starts with <code>underscore</code>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__new__\n        <dd><em class=\"note\">(inherited documentation)</em></dd>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.namedTuples.Vector2Tuple-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.namedTuples.Vector2Tuple</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.namedTuples-module.html\">Module&nbsp;namedTuples</a> ::\n        Class&nbsp;Vector2Tuple\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.namedTuples.Vector2Tuple-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Vector2Tuple</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n   object --+        \n            |        \n        tuple --+    \n                |    \n   object --+   |    \n            |   |    \n <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n                |    \n<a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a> --+\n                    |\n                   <strong class=\"uidshort\">Vector2Tuple</strong>\n</pre>\n\n<hr />\n<p>2-Tuple <code>(x, y)</code> of (geocentric) components, each in \n  <code>meter</code> or the same <code>units</code>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.namedTuples.Vector2Tuple-class.html#toCartesian\" class=\"summary-sig-name\">toCartesian</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">Cartesian</span>,\n        <span class=\"summary-sig-arg\">**Cartesian_kwds</span>)</span><br />\n      Return this <code>Vector2Tuple</code> as a <code>Cartesian</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.namedTuples.Vector2Tuple-class.html#to3Tuple\" class=\"summary-sig-name\">to3Tuple</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">z</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Extend this <a href=\"pygeodesy.namedTuples.Vector2Tuple-class.html\" \n      class=\"link\">Vector2Tuple</a> to a <a \n      href=\"pygeodesy.namedTuples.Vector3Tuple-class.html\" \n      class=\"link\">Vector3Tuple</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__delattr__\">__delattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__getattr__\">__getattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__setattr__\">__setattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#items\">items</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iteritems\">iteritems</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iterunits\">iterunits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#reUnit\">reUnit</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toUnits\">toUnits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>tuple</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__eq__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__iter__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__rmul__</code>,\n      <code>count</code>,\n      <code>index</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__new__\">__new__</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.namedTuples.Vector2Tuple-class.html#xyz\" class=\"summary-name\">xyz</a><br />\n      Get X, Y and Z=0 components (<code>Vector3Tuple</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.namedTuples.Vector2Tuple-class.html#xyz3\" class=\"summary-name\">xyz3</a><br />\n      Get X, Y and Z=0 components as <code>3-tuple</code>.\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"toCartesian\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toCartesian</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">Cartesian</span>,\n        <span class=\"sig-arg\">**Cartesian_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return this <code>Vector2Tuple</code> as a <code>Cartesian</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>Cartesian</code></strong> - The <code>Cartesian</code> class to use.</li>\n        <li><strong class=\"pname\"><code>Cartesian_kwds</code></strong> - Optional, additional <code>Cartesian</code> keyword arguments.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The <code><b>Cartesian</b></code> instance with <code>z=0</code>.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"to3Tuple\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">to3Tuple</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">z</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Extend this <a href=\"pygeodesy.namedTuples.Vector2Tuple-class.html\" \n  class=\"link\">Vector2Tuple</a> to a <a \n  href=\"pygeodesy.namedTuples.Vector3Tuple-class.html\" \n  class=\"link\">Vector3Tuple</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>z</code></strong> - The Z component add (<code>scalar</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>), \n          overriding this name.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.namedTuples.Vector3Tuple-class.html\" \n          class=\"link\">Vector3Tuple</a><code>(x, y, z)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>z</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"xyz\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">xyz</h3>\n  <p>Get X, Y and Z=0 components (<code>Vector3Tuple</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">xyz(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get X, Y and Z=0 components (<code>Vector3Tuple</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"xyz3\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">xyz3</h3>\n  <p>Get X, Y and Z=0 components as <code>3-tuple</code>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">xyz3(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get X, Y and Z=0 components as <code>3-tuple</code>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.namedTuples.Vector3Tuple-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.namedTuples.Vector3Tuple</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.namedTuples-module.html\">Module&nbsp;namedTuples</a> ::\n        Class&nbsp;Vector3Tuple\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.namedTuples.Vector3Tuple-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Vector3Tuple</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n   object --+        \n            |        \n        tuple --+    \n                |    \n   object --+   |    \n            |   |    \n <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n                |    \n<a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a> --+\n                    |\n                   <strong class=\"uidshort\">Vector3Tuple</strong>\n</pre>\n\n<hr />\n<p>3-Tuple <code>(x, y, z)</code> of (geocentric) components, all in \n  <code>meter</code> or the same <code>units</code>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.namedTuples.Vector3Tuple-class.html#toCartesian\" class=\"summary-sig-name\">toCartesian</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">Cartesian</span>,\n        <span class=\"summary-sig-arg\">**Cartesian_kwds</span>)</span><br />\n      Return this <code>Vector3Tuple</code> as a <code>Cartesian</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.namedTuples.Vector3Tuple-class.html#to4Tuple\" class=\"summary-sig-name\">to4Tuple</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">h</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Extend this <a href=\"pygeodesy.namedTuples.Vector3Tuple-class.html\" \n      class=\"link\">Vector3Tuple</a> to a <a \n      href=\"pygeodesy.namedTuples.Vector4Tuple-class.html\" \n      class=\"link\">Vector4Tuple</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__delattr__\">__delattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__getattr__\">__getattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__setattr__\">__setattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#items\">items</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iteritems\">iteritems</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iterunits\">iterunits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#reUnit\">reUnit</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toUnits\">toUnits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>tuple</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__eq__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__iter__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__rmul__</code>,\n      <code>count</code>,\n      <code>index</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__new__\">__new__</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.namedTuples.Vector3Tuple-class.html#xyz\" class=\"summary-name\">xyz</a><br />\n      Get X, Y and Z components (<code>Vector3Tuple</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.namedTuples.Vector3Tuple-class.html#xyz3\" class=\"summary-name\">xyz3</a><br />\n      Get X, Y and Z components as <code>3-tuple</code>.\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"toCartesian\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toCartesian</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">Cartesian</span>,\n        <span class=\"sig-arg\">**Cartesian_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return this <code>Vector3Tuple</code> as a <code>Cartesian</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>Cartesian</code></strong> - The <code>Cartesian</code> class to use.</li>\n        <li><strong class=\"pname\"><code>Cartesian_kwds</code></strong> - Optional, additional <code>Cartesian</code> keyword arguments.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The <code><b>Cartesian</b></code> instance.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"to4Tuple\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">to4Tuple</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">h</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Extend this <a href=\"pygeodesy.namedTuples.Vector3Tuple-class.html\" \n  class=\"link\">Vector3Tuple</a> to a <a \n  href=\"pygeodesy.namedTuples.Vector4Tuple-class.html\" \n  class=\"link\">Vector4Tuple</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>h</code></strong> - The height to add (<code>scalar</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>), \n          overriding this name.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.namedTuples.Vector4Tuple-class.html\" \n          class=\"link\">Vector4Tuple</a><code>(x, y, z, h)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>h</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"xyz\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">xyz</h3>\n  <p>Get X, Y and Z components (<code>Vector3Tuple</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">xyz(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get X, Y and Z components (<code>Vector3Tuple</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"xyz3\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">xyz3</h3>\n  <p>Get X, Y and Z components as <code>3-tuple</code>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">xyz3(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get X, Y and Z components as <code>3-tuple</code>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.namedTuples.Vector4Tuple-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.namedTuples.Vector4Tuple</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.namedTuples-module.html\">Module&nbsp;namedTuples</a> ::\n        Class&nbsp;Vector4Tuple\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.namedTuples.Vector4Tuple-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Vector4Tuple</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n   object --+        \n            |        \n        tuple --+    \n                |    \n   object --+   |    \n            |   |    \n <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n                |    \n<a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a> --+\n                    |\n                   <strong class=\"uidshort\">Vector4Tuple</strong>\n</pre>\n\n<dl><dt>Known Subclasses:</dt>\n<dd>\n      <ul class=\"subclass-list\">\n<li><a href=\"pygeodesy.triaxials.triaxial3.Cartesian5Tuple-class.html\">triaxials.triaxial3.Cartesian5Tuple</a></li>  </ul>\n</dd></dl>\n\n<hr />\n<p>4-Tuple <code>(x, y, z, h)</code> of (geocentric) components, all in \n  <code>meter</code> or the same <code>units</code>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.namedTuples.Vector4Tuple-class.html#to3Tuple\" class=\"summary-sig-name\">to3Tuple</a>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Reduce this <a href=\"pygeodesy.namedTuples.Vector4Tuple-class.html\" \n      class=\"link\">Vector4Tuple</a> to a <a \n      href=\"pygeodesy.namedTuples.Vector3Tuple-class.html\" \n      class=\"link\">Vector3Tuple</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.namedTuples.Vector4Tuple-class.html#toCartesian\" class=\"summary-sig-name\">toCartesian</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">Cartesian</span>,\n        <span class=\"summary-sig-arg\">**Cartesian_kwds</span>)</span><br />\n      Return this <code>Vector4Tuple</code> as a <code>Cartesian</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__delattr__\">__delattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__getattr__\">__getattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__setattr__\">__setattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#items\">items</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iteritems\">iteritems</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iterunits\">iterunits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#reUnit\">reUnit</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toUnits\">toUnits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>tuple</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__eq__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__iter__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__rmul__</code>,\n      <code>count</code>,\n      <code>index</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__new__\">__new__</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.namedTuples.Vector4Tuple-class.html#xyz\" class=\"summary-name\">xyz</a><br />\n      Get X, Y and Z components (<a \n      href=\"pygeodesy.namedTuples.Vector3Tuple-class.html\" \n      class=\"link\">Vector3Tuple</a>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.namedTuples.Vector4Tuple-class.html#xyz3\" class=\"summary-name\">xyz3</a><br />\n      Get X, Y and Z components as <code>3-tuple</code>.\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"to3Tuple\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">to3Tuple</span>&nbsp;(<span class=\"sig-arg\">self</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Reduce this <a href=\"pygeodesy.namedTuples.Vector4Tuple-class.html\" \n  class=\"link\">Vector4Tuple</a> to a <a \n  href=\"pygeodesy.namedTuples.Vector3Tuple-class.html\" \n  class=\"link\">Vector3Tuple</a>.</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.namedTuples.Vector3Tuple-class.html\" \n          class=\"link\">Vector3Tuple</a><code>(x, y, z)</code>.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toCartesian\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toCartesian</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">Cartesian</span>,\n        <span class=\"sig-arg\">**Cartesian_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return this <code>Vector4Tuple</code> as a <code>Cartesian</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>Cartesian</code></strong> - The <code>Cartesian</code> class to use.</li>\n        <li><strong class=\"pname\"><code>Cartesian_kwds</code></strong> - Optional, additional <code>Cartesian</code> keyword arguments.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The <code><b>Cartesian</b></code> instance.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"xyz\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">xyz</h3>\n  <p>Get X, Y and Z components (<a \n  href=\"pygeodesy.namedTuples.Vector3Tuple-class.html\" \n  class=\"link\">Vector3Tuple</a>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">xyz(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get X, Y and Z components (<a \nhref=\"pygeodesy.namedTuples.Vector3Tuple-class.html\" \nclass=\"link\">Vector3Tuple</a>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"xyz3\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">xyz3</h3>\n  <p>Get X, Y and Z components as <code>3-tuple</code>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">xyz3(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get X, Y and Z components as <code>3-tuple</code>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.nvectorBase-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.nvectorBase</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        Module&nbsp;nvectorBase\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.nvectorBase-module.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== MODULE DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Module nvectorBase</h1><p class=\"nomargin-top\"></p>\n<p>(INTERNAL) Private elliposiodal and spherical <code>Nvector</code> \n  base classes <a href=\"pygeodesy.nvectorBase.LatLonNvectorBase-class.html\"\n  class=\"link\">LatLonNvectorBase</a> and <a \n  href=\"pygeodesy.nvectorBase.NvectorBase-class.html\" \n  class=\"link\">NvectorBase</a> and function <a \n  href=\"pygeodesy.nvectorBase-module.html#sumOf\" \n  class=\"link\">sumOf</a>.</p>\n  <p>Pure Python implementation of <code>n-vector</code>-based geodesy \n  tools for ellipsoidal earth models, transcoded from JavaScript originals \n  by <i>(C) Chris Veness 2005-2016</i> and published under the same MIT \n  Licence**, see <a \n  href=\"https://www.Movable-Type.co.UK/scripts/latlong-vectors.html\" \n  target=\"_top\">Vector-based geodesy</a>.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Version:</strong>\n        25.08.18\n      </p>\n</div><!-- ==================== CLASSES ==================== -->\n<a name=\"section-Classes\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Classes</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.nvectorBase.NvectorBase-class.html\" class=\"summary-name\">NvectorBase</a><br />\n      (INTERNAL) Base class for ellipsoidal and spherical \n        <code>Nvector</code>s.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.nvectorBase.LatLonNvectorBase-class.html\" class=\"summary-name\">LatLonNvectorBase</a><br />\n      (INTERNAL) Base class for n-vector-based ellipsoidal and spherical \n        <code>LatLon</code>s.\n    </td>\n  </tr>\n</table>\n<!-- ==================== FUNCTIONS ==================== -->\n<a name=\"section-Functions\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Functions</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.nvectorBase-module.html#n_xyz2latlon\" class=\"summary-sig-name\">n_xyz2latlon</a>(<span class=\"summary-sig-arg\">x_xyz</span>,\n        <span class=\"summary-sig-arg\">y</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">z</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Convert <code>n-vector</code> to (geodetic) lat- and longitude in \n      <code>degrees</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.nvectorBase-module.html#n_xyz2philam\" class=\"summary-sig-name\">n_xyz2philam</a>(<span class=\"summary-sig-arg\">x_xyz</span>,\n        <span class=\"summary-sig-arg\">y</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">z</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Convert <code>n-vector</code> to (geodetic) lat- and longitude in \n      <code>radians</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.nvectorBase-module.html#sumOf\" class=\"summary-sig-name\">sumOf</a>(<span class=\"summary-sig-arg\">nvectors</span>,\n        <span class=\"summary-sig-arg\">Vector</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">h</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**Vector_kwds</span>)</span><br />\n      Return the <i>vectorial</i> sum of two or more n-vectors.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== VARIABLES ==================== -->\n<a name=\"section-Variables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Variables</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"__all__\"></a><span class=\"summary-name\">__all__</span> = <code title=\"_ALL_LAZY.nvectorBase\">_ALL_LAZY.nvectorBase</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"NorthPole\"></a><span class=\"summary-name\">NorthPole</span> = <code title=\"_N_Vector(0, 0, 1)\">_N_Vector(0, 0, 1)</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"SouthPole\"></a><span class=\"summary-name\">SouthPole</span> = <code title=\"_N_Vector(0, 0, -1)\">_N_Vector(0, 0, -1)</code>\n    </td>\n  </tr>\n</table>\n<!-- ==================== FUNCTION DETAILS ==================== -->\n<a name=\"section-FunctionDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Function Details</span></td>\n</tr>\n</table>\n<a name=\"n_xyz2latlon\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">n_xyz2latlon</span>&nbsp;(<span class=\"sig-arg\">x_xyz</span>,\n        <span class=\"sig-arg\">y</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">z</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert <code>n-vector</code> to (geodetic) lat- and longitude in \n  <code>degrees</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>x_xyz</code></strong> - X component (<code>scalar</code>) or (3-D) vector \n          (<code>Nvector</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <a \n          href=\"pygeodesy.namedTuples.Vector3Tuple-class.html\" \n          class=\"link\">Vector3Tuple</a> or <a \n          href=\"pygeodesy.namedTuples.Vector4Tuple-class.html\" \n          class=\"link\">Vector4Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>y</code></strong> - Y component of vector (<code>scalar</code>), required if \n          <code><b>x_xyz</b> is scalar</code> and same units as \n          <b><code>x_xyz</code></b>, ignored otherwise.</li>\n        <li><strong class=\"pname\"><code>z</code></strong> - Z component of vector (<code>scalar</code>), like \n          <b><code>y</code></b>.</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.namedTuples.LatLon2Tuple-class.html\" \n          class=\"link\">LatLon2Tuple</a><code>(lat, lon)</code>.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.nvectorBase-module.html#n_xyz2philam\" \n        class=\"link\">n_xyz2philam</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"n_xyz2philam\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">n_xyz2philam</span>&nbsp;(<span class=\"sig-arg\">x_xyz</span>,\n        <span class=\"sig-arg\">y</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">z</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert <code>n-vector</code> to (geodetic) lat- and longitude in \n  <code>radians</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>x_xyz</code></strong> - X component (<code>scalar</code>) or (3-D) vector \n          (<code>Nvector</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <a \n          href=\"pygeodesy.namedTuples.Vector3Tuple-class.html\" \n          class=\"link\">Vector3Tuple</a> or <a \n          href=\"pygeodesy.namedTuples.Vector4Tuple-class.html\" \n          class=\"link\">Vector4Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>y</code></strong> - Y component of vector (<code>scalar</code>), required if \n          <code><b>x_xyz</b> is scalar</code> and same units as \n          <b><code>x_xyz</code></b>, ignored otherwise.</li>\n        <li><strong class=\"pname\"><code>z</code></strong> - Z component of vector (<code>scalar</code>), like \n          <b><code>y</code></b>.</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.namedTuples.PhiLam2Tuple-class.html\" \n          class=\"link\">PhiLam2Tuple</a><code>(phi, lam)</code>.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.nvectorBase-module.html#n_xyz2latlon\" \n        class=\"link\">n_xyz2latlon</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"sumOf\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">sumOf</span>&nbsp;(<span class=\"sig-arg\">nvectors</span>,\n        <span class=\"sig-arg\">Vector</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">h</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**Vector_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the <i>vectorial</i> sum of two or more n-vectors.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>nvectors</code></strong> - Vectors to be added (<code>Nvector</code>[]).</li>\n        <li><strong class=\"pname\"><code>Vector</code></strong> - Optional class for the vectorial sum (<code>Nvector</code>) or \n          <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>h</code></strong> - Optional height, overriding the mean height (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>Vector_kwds</code></strong> - Optional, additional <b><code>Vector</code></b> keyword \n          arguments, ignored if <code><b>Vector</b> is None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Vectorial sum (<b><code>Vector</code></b>) or a <a \n          href=\"pygeodesy.namedTuples.Vector4Tuple-class.html\" \n          class=\"link\">Vector4Tuple</a><code>(x, y, z, h)</code> if \n          <code><b>Vector</b> is None</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.VectorError-class.html\">VectorError</a></strong></code> - No <b><code>nvectors</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.nvectorBase.LatLonNvectorBase-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.nvectorBase.LatLonNvectorBase</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.nvectorBase-module.html\">Module&nbsp;nvectorBase</a> ::\n        Class&nbsp;LatLonNvectorBase\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.nvectorBase.LatLonNvectorBase-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class LatLonNvectorBase</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n       object --+            \n                |            \n     <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+        \n                    |        \n     <a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+    \n                        |    \n       object --+       |    \n                |       |    \n     <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+   |    \n                    |   |    \n<a href=\"pygeodesy.ecefLocals._EcefLocal-class.html\">ecefLocals._EcefLocal</a> --+    \n                        |    \n    <a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">latlonBase.LatLonBase</a> --+\n                            |\n                           <strong class=\"uidshort\">LatLonNvectorBase</strong>\n</pre>\n\n<dl><dt>Known Subclasses:</dt>\n<dd>\n      <ul class=\"subclass-list\">\n<li><a href=\"pygeodesy.ellipsoidalNvector.LatLon-class.html\">ellipsoidalNvector.LatLon</a></li><li>, <a href=\"pygeodesy.sphericalNvector.LatLon-class.html\">sphericalNvector.LatLon</a></li>  </ul>\n</dd></dl>\n\n<hr />\n<p>(INTERNAL) Base class for n-vector-based ellipsoidal and spherical \n  <code>LatLon</code>s.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"intersections2\"></a><span class=\"summary-sig-name\">intersections2</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">radius1</span>,\n        <span class=\"summary-sig-arg\">other</span>,\n        <span class=\"summary-sig-arg\">radius2</span>,\n        <span class=\"summary-sig-arg\">**kwds</span>)</span><br />\n      <b>Not implemented</b>, throws a <code>NotImplementedError</code> \n      always.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.nvectorBase.LatLonNvectorBase-class.html#others\" class=\"summary-sig-name\">others</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">*other</span>,\n        <span class=\"summary-sig-arg\">**name_other_up</span>)</span><br />\n      Refined class comparison.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.nvectorBase.LatLonNvectorBase-class.html#toNvector\" class=\"summary-sig-name\">toNvector</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">**Nvector_and_kwds</span>)</span><br />\n      Convert this point to <code>Nvector</code> components, <i>including \n      height</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.nvectorBase.LatLonNvectorBase-class.html#triangulate\" class=\"summary-sig-name\">triangulate</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">bearing1</span>,\n        <span class=\"summary-sig-arg\">other</span>,\n        <span class=\"summary-sig-arg\">bearing2</span>,\n        <span class=\"summary-sig-arg\">height</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Locate a point given this, an other point and the (initial) bearing \n      from this and the other point.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.nvectorBase.LatLonNvectorBase-class.html#trilaterate\" class=\"summary-sig-name\">trilaterate</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">distance1</span>,\n        <span class=\"summary-sig-arg\">point2</span>,\n        <span class=\"summary-sig-arg\">distance2</span>,\n        <span class=\"summary-sig-arg\">point3</span>,\n        <span class=\"summary-sig-arg\">distance3</span>,\n        <span class=\"summary-sig-arg\">radius</span>=<span class=\"summary-sig-default\">6371008.771415</span>,\n        <span class=\"summary-sig-arg\">height</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">useZ</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Locate a point at given distances from this and two other points.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.nvectorBase.LatLonNvectorBase-class.html#trilaterate5\" class=\"summary-sig-name\">trilaterate5</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">distance1</span>,\n        <span class=\"summary-sig-arg\">point2</span>,\n        <span class=\"summary-sig-arg\">distance2</span>,\n        <span class=\"summary-sig-arg\">point3</span>,\n        <span class=\"summary-sig-arg\">distance3</span>,\n        <span class=\"summary-sig-arg\">area</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">eps</span>=<span class=\"summary-sig-default\">0.9999999999999998</span>,\n        <span class=\"summary-sig-arg\">radius</span>=<span class=\"summary-sig-default\">6371008.771415</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      <b>Not implemented</b> for <code><b>area</b>=True</code> and falls \n      back to method <code>trilaterate</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">latlonBase.LatLonBase</a></code></b>:\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#PointsIter\">PointsIter</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#__eq__\">__eq__</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#__init__\">__init__</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#__ne__\">__ne__</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#antipode\">antipode</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#bounds\">bounds</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#boundsOf\">boundsOf</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#chordTo\">chordTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#circin6\">circin6</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#circum3\">circum3</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#circum4_\">circum4_</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#compassAngle\">compassAngle</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#compassAngleTo\">compassAngleTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#cosineAndoyerLambertTo\">cosineAndoyerLambertTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#cosineForsytheAndoyerLambertTo\">cosineForsytheAndoyerLambertTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#cosineLawTo\">cosineLawTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#destinationXyz\">destinationXyz</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#equals\">equals</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#equals3\">equals3</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#equirectangularTo\">equirectangularTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#euclideanTo\">euclideanTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#flatLocalTo\">flatLocalTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#flatPolarTo\">flatPolarTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#hartzell\">hartzell</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#haversineTo\">haversineTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#height4\">height4</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#heightStr\">heightStr</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#hubenyTo\">hubenyTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#intersecant2\">intersecant2</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isantipode\">isantipode</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isantipodeTo\">isantipodeTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isequalTo\">isequalTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isequalTo3\">isequalTo3</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#latlon2\">latlon2</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#latlon2round\">latlon2round</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#latlon_\">latlon_</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#nearestOn6\">nearestOn6</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#nearestTo\">nearestTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#normal\">normal</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#philam2\">philam2</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#points\">points</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#points2\">points2</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#radii11\">radii11</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#rhumbAzimuthTo\">rhumbAzimuthTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#rhumbDestination\">rhumbDestination</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#rhumbDistanceTo\">rhumbDistanceTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#rhumbIntersecant2\">rhumbIntersecant2</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#rhumbLine\">rhumbLine</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#rhumbMidpointTo\">rhumbMidpointTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#thomasTo\">thomasTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#to2ab\">to2ab</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#to3llh\">to3llh</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#to3xyz\">to3xyz</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toCartesian\">toCartesian</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toDatum\">toDatum</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toEcef\">toEcef</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toNormal\">toNormal</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toVector\">toVector</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toVector3d\">toVector3d</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toWm\">toWm</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#vincentysTo\">vincentysTo</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#toRepr\">toRepr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html\">ecefLocals._EcefLocal</a></code></b>:\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toAer\">toAer</a></code>,\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toEnu\">toEnu</a></code>,\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toLocal\">toLocal</a></code>,\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toLtp\">toLtp</a></code>,\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toNed\">toNed</a></code>,\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toXyz\">toXyz</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">latlonBase.LatLonBase</a></code></b>:\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#clipid\">clipid</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#datum\">datum</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#ellipsoidalLatLon\">ellipsoidalLatLon</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#height\">height</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isEllipsoidal\">isEllipsoidal</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isSpherical\">isSpherical</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isnormal\">isnormal</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#lam\">lam</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#lat\">lat</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#latlon\">latlon</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#latlonheight\">latlonheight</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#lon\">lon</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#phi\">phi</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#philam\">philam</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#philamheight\">philamheight</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#sphericalLatLon\">sphericalLatLon</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#xyz\">xyz</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#xyz3\">xyz3</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#xyzh\">xyzh</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html\">ecefLocals._EcefLocal</a></code></b>:\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#Ecef\">Ecef</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"others\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">others</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">*other</span>,\n        <span class=\"sig-arg\">**name_other_up</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Refined class comparison.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>other</code></strong> - The other instance (<code>LatLonNvectorBase</code>).</li>\n        <li><strong class=\"pname\"><code>name_other_up</code></strong> - Overriding <code>name=other</code> and <code>up=1</code> keyword \n          arguments.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The <b><code>other</code></b> if compatible.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Incompatible <b><code>other</code></b> <code>type</code>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.named._NamedBase-class.html#others\">named._NamedBase.others</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toNvector\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toNvector</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">**Nvector_and_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert this point to <code>Nvector</code> components, <i>including \n  height</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>Nvector_and_kwds</code></strong> - Optional <code>Nvector</code> class and <code>Nvector</code> \n          keyword arguments, Specify <code><b>Nvector</b>=...</code> to \n          override this <code>Nvector</code> class or use \n          <code><b>Nvector</b>=None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>An <code>Nvector</code> or if <code>Nvector is None</code>, a <a \n          href=\"pygeodesy.namedTuples.Vector4Tuple-class.html\" \n          class=\"link\">Vector4Tuple</a><code>(x, y, z, h)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <code>Nvector</code> or other \n        <b><code>Nvector_and_kwds</code></b> item.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toNvector\">latlonBase.LatLonBase.toNvector</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"triangulate\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">triangulate</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">bearing1</span>,\n        <span class=\"sig-arg\">other</span>,\n        <span class=\"sig-arg\">bearing2</span>,\n        <span class=\"sig-arg\">height</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Locate a point given this, an other point and the (initial) bearing \n  from this and the other point.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>bearing1</code></strong> - Bearing at this point (compass <code>degrees360</code>).</li>\n        <li><strong class=\"pname\"><code>other</code></strong> - The other point (<code>LatLon</code>).</li>\n        <li><strong class=\"pname\"><code>bearing2</code></strong> - Bearing at the other point (compass <code>degrees360</code>).</li>\n        <li><strong class=\"pname\"><code>height</code></strong> - Optional height at the triangulated point, overriding the mean \n          height (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, use this and the <b><code>other</code></b> \n          point <i>normalized</i> (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Triangulated point (<code>LatLon</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>other</code></b> point.</li>\n        <li><code><strong class='fraise'>Valuerror</strong></code> - Points coincide.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"trilaterate\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">trilaterate</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">distance1</span>,\n        <span class=\"sig-arg\">point2</span>,\n        <span class=\"sig-arg\">distance2</span>,\n        <span class=\"sig-arg\">point3</span>,\n        <span class=\"sig-arg\">distance3</span>,\n        <span class=\"sig-arg\">radius</span>=<span class=\"sig-default\">6371008.771415</span>,\n        <span class=\"sig-arg\">height</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">useZ</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Locate a point at given distances from this and two other points.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>distance1</code></strong> - Distance to this point (<code>meter</code>, same units as \n          <b><code>radius</code></b>).</li>\n        <li><strong class=\"pname\"><code>point2</code></strong> - Second reference point (<code>LatLon</code>).</li>\n        <li><strong class=\"pname\"><code>distance2</code></strong> - Distance to point2 (<code>meter</code>, same units as \n          <b><code>radius</code></b>).</li>\n        <li><strong class=\"pname\"><code>point3</code></strong> - Third reference point (<code>LatLon</code>).</li>\n        <li><strong class=\"pname\"><code>distance3</code></strong> - Distance to point3 (<code>meter</code>, same units as \n          <b><code>radius</code></b>).</li>\n        <li><strong class=\"pname\"><code>radius</code></strong> - Mean earth radius (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>height</code></strong> - Optional height at trilaterated point, overriding the mean height\n          (<code>meter</code>, same units as <b><code>radius</code></b>).</li>\n        <li><strong class=\"pname\"><code>useZ</code></strong> - Include Z component iff non-NaN, non-zero (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, use this, <b><code>point2</code></b> and \n          <b><code>point3</code></b> <i>normalized</i> (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Trilaterated point (<code>LatLon</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.IntersectionError-class.html\">IntersectionError</a></strong></code> - No intersection, trilateration failed.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>point2</code></b> or <b><code>point3</code></b>.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Some <b><code>points</code></b> coincide or invalid \n        <b><code>distance1</code></b>, <b><code>distance2</code></b>, \n        <b><code>distance3</code></b> or <b><code>radius</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"https://WikiPedia.org/wiki/Trilateration\" \n        target=\"_top\">Trilateration</a>, <i>Veness</i>' JavaScript <a \n        href=\"https://www.Movable-Type.co.UK/scripts/latlong-vectors.html\" \n        target=\"_top\">Trilateration</a> and method \n        <code>LatLon.trilaterate5</code> of other, non-<code>Nvector \n        LatLon</code> classes.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"trilaterate5\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">trilaterate5</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">distance1</span>,\n        <span class=\"sig-arg\">point2</span>,\n        <span class=\"sig-arg\">distance2</span>,\n        <span class=\"sig-arg\">point3</span>,\n        <span class=\"sig-arg\">distance3</span>,\n        <span class=\"sig-arg\">area</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">eps</span>=<span class=\"sig-default\">0.9999999999999998</span>,\n        <span class=\"sig-arg\">radius</span>=<span class=\"sig-default\">6371008.771415</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p><b>Not implemented</b> for <code><b>area</b>=True</code> and falls \n  back to method <code>trilaterate</code>.</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.namedTuples.Trilaterate5Tuple-class.html\" \n          class=\"link\">Trilaterate5Tuple</a><code>(min, minPoint, max, \n          maxPoint, n)</code> with a single trilaterated intersection \n          <code>minPoint <i>is</i> maxPoint</code>, <code>min <i>is</i> \n          max</code> the nearest intersection margin and count <code>n = \n          1</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>NotImplementedError</strong></code> - Keyword argument <code><b>area</b>=True</code> not (yet) supported.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <a \n        href=\"pygeodesy.nvectorBase.LatLonNvectorBase-class.html#trilaterate\"\n        class=\"link\">trilaterate</a> for other and more details.\n      </p>\n</div></td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.nvectorBase.NvectorBase-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.nvectorBase.NvectorBase</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.nvectorBase-module.html\">Module&nbsp;nvectorBase</a> ::\n        Class&nbsp;NvectorBase\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.nvectorBase.NvectorBase-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class NvectorBase</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n       object --+                \n                |                \n     <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+            \n                    |            \n     <a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+        \n                        |        \n<a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">vector3dBase.Vector3dBase</a> --+    \n                            |    \n            <a href=\"pygeodesy.vector3d.Vector3d-class.html\">vector3d.Vector3d</a> --+\n                                |\n                               <strong class=\"uidshort\">NvectorBase</strong>\n</pre>\n\n<dl><dt>Known Subclasses:</dt>\n<dd>\n      <ul class=\"subclass-list\">\n<li><a href=\"pygeodesy.deprecated.nvector.Nvector-class.html\">deprecated.nvector.Nvector</a></li><li>, <a href=\"pygeodesy.ellipsoidalNvector.Nvector-class.html\">ellipsoidalNvector.Nvector</a></li><li class=\"private\">, _N_Vector</li><li>, <a href=\"pygeodesy.sphericalNvector.Nvector-class.html\">sphericalNvector.Nvector</a></li>  </ul>\n</dd></dl>\n\n<hr />\n<p>(INTERNAL) Base class for ellipsoidal and spherical \n  <code>Nvector</code>s.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">x_xyz</span>,\n        <span class=\"summary-sig-arg\">y</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">z</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">h</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">datum</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**ll_name</span>)</span><br />\n      New n-vector normal to the earth's surface.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#hStr\" class=\"summary-sig-name\">hStr</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">prec</span>=<span class=\"summary-sig-default\">-2</span>,\n        <span class=\"summary-sig-arg\">m</span>=<span class=\"summary-sig-default\">''</span>)</span><br />\n      Return a string for the height <b><code>h</code></b>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#to2ab\" class=\"summary-sig-name\">to2ab</a>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      DEPRECATED, use property <a \n      href=\"pygeodesy.nvectorBase.NvectorBase-class.html#philam\" \n      class=\"link\">philam</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#to2ll\" class=\"summary-sig-name\">to2ll</a>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      DEPRECATED, use property <a \n      href=\"pygeodesy.nvectorBase.NvectorBase-class.html#latlon\" \n      class=\"link\">latlon</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#to3abh\" class=\"summary-sig-name\">to3abh</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">height</span>=<span class=\"summary-sig-default\">None</span>)</span><br />\n      DEPRECATED, use property <a \n      href=\"pygeodesy.nvectorBase.NvectorBase-class.html#philamheight\" \n      class=\"link\">philamheight</a> or \n      <code>philam.to3Tuple(<b>height</b>)</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#to3llh\" class=\"summary-sig-name\">to3llh</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">height</span>=<span class=\"summary-sig-default\">None</span>)</span><br />\n      DEPRECATED, use property <code>latlonheight</code> or \n      <code>latlon.to3Tuple(<b>height</b>)</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#to4xyzh\" class=\"summary-sig-name\">to4xyzh</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">h</span>=<span class=\"summary-sig-default\">None</span>)</span><br />\n      DEPRECATED, use property <a \n      href=\"pygeodesy.nvectorBase.NvectorBase-class.html#xyzh\" \n      class=\"link\">xyzh</a> or <code>xyz.to4Tuple(<b>h</b>)</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#toCartesian\" class=\"summary-sig-name\">toCartesian</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">h</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">Cartesian</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">datum</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**name_Cartesian_kwds</span>)</span><br />\n      Convert this n-vector to <code>Nvector</code>-based cartesian (ECEF) \n      coordinates.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#toLatLon\" class=\"summary-sig-name\">toLatLon</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">height</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">LatLon</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">datum</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**name_LatLon_kwds</span>)</span><br />\n      Convert this n-vector to an <code>Nvector</code>-based geodetic \n      point.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#toStr\" class=\"summary-sig-name\">toStr</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">prec</span>=<span class=\"summary-sig-default\">5</span>,\n        <span class=\"summary-sig-arg\">fmt</span>=<span class=\"summary-sig-default\">'(%s)'</span>,\n        <span class=\"summary-sig-arg\">sep</span>=<span class=\"summary-sig-default\">', '</span>)</span><br />\n      Return a string representation of this n-vector.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#toVector3d\" class=\"summary-sig-name\">toVector3d</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">norm</span>=<span class=\"summary-sig-default\">True</span>)</span><br />\n      Convert this n-vector to a 3-D vector, <i>ignoring height</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#unit\" class=\"summary-sig-name\">unit</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">ll</span>=<span class=\"summary-sig-default\">None</span>)</span><br />\n      Normalize this n-vector to unit length.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.vector3d.Vector3d-class.html\">vector3d.Vector3d</a></code></b>:\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#bearing\">bearing</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#circin6\">circin6</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#circum3\">circum3</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#circum4_\">circum4_</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#iscolinearWith\">iscolinearWith</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#meeus2\">meeus2</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#nearestOn\">nearestOn</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#nearestOn6\">nearestOn6</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#parse\">parse</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#radii11\">radii11</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#soddy4\">soddy4</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#trilaterate2d2\">trilaterate2d2</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#trilaterate3d2\">trilaterate3d2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">vector3dBase.Vector3dBase</a></code></b>:\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__abs__\">__abs__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__add__\">__add__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__bool__\">__bool__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__ceil__\">__ceil__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__cmp__\">__cmp__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__div__\">__div__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__divmod__\">__divmod__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__eq__\">__eq__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__float__\">__float__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__floor__\">__floor__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__floordiv__\">__floordiv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__ge__\">__ge__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__gt__\">__gt__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__iadd__\">__iadd__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__idiv__\">__idiv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__ifloordiv__\">__ifloordiv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__imod__\">__imod__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__imul__\">__imul__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__int__\">__int__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__ipow__\">__ipow__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__isub__\">__isub__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__itruediv__\">__itruediv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__le__\">__le__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__long__\">__long__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__lt__\">__lt__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__mod__\">__mod__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__mul__\">__mul__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__ne__\">__ne__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__neg__\">__neg__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__nonzero__\">__nonzero__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__pos__\">__pos__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__pow__\">__pow__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__radd__\">__radd__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rdiv__\">__rdiv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rdivmod__\">__rdivmod__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rfloordiv__\">__rfloordiv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rmod__\">__rmod__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rmul__\">__rmul__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__round__\">__round__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rpow__\">__rpow__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rsub__\">__rsub__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rtruediv__\">__rtruediv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__sub__\">__sub__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__truediv__\">__truediv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__trunc__\">__trunc__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#angleTo\">angleTo</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#apply\">apply</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#bools\">bools</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#cmp\">cmp</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#cross\">cross</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#dividedBy\">dividedBy</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#dividedBy_\">dividedBy_</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#dot\">dot</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#equals\">equals</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#equirectangular\">equirectangular</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#fabs\">fabs</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#floats\">floats</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#floorDividedBy\">floorDividedBy</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#floorDividedBy_\">floorDividedBy_</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#intermediateTo\">intermediateTo</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#ints\">ints</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#isconjugateTo\">isconjugateTo</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#isequalTo\">isequalTo</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#minus\">minus</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#minus_\">minus_</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#negate\">negate</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#others\">others</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#plus\">plus</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#plus_\">plus_</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#pow\">pow</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#rotate\">rotate</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#rotateAround\">rotateAround</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#sum\">sum</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#times\">times</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#times_\">times_</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#to3xyz\">to3xyz</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#toRepr\">toRepr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#Ecef\" class=\"summary-name\">Ecef</a><br />\n      Get the ECEF <i>class</i> (<a \n      href=\"pygeodesy.ecef.EcefKarney-class.html\" \n      class=\"link\">EcefKarney</a>), <i>once</i>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#H\" class=\"summary-name\">H</a><br />\n      Class <code>property</code> with a <code>.name</code> attribute.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#datum\" class=\"summary-name\">datum</a><br />\n      Get the <i>pass-thru</i> datum (<code>Datum</code>) or \n      <code>None</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#ellipsoidalNvector\" class=\"summary-name\">ellipsoidalNvector</a><br />\n      Get the <code>Nvector type</code> iff ellipsoidal, overloaded in <a \n      href=\"pygeodesy.ellipsoidalNvector.Nvector-class.html\" \n      class=\"link\">pygeodesy.ellipsoidalNvector.Nvector</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#h\" class=\"summary-name\">h</a><br />\n      Class <code>property</code> with a <code>.name</code> attribute.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#isEllipsoidal\" class=\"summary-name\">isEllipsoidal</a><br />\n      Check whether this n-vector is ellipsoidal (<code>bool</code> or \n      <code>None</code> if unknown).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#isSpherical\" class=\"summary-name\">isSpherical</a><br />\n      Check whether this n-vector is spherical (<code>bool</code> or \n      <code>None</code> if unknown).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#lam\" class=\"summary-name\">lam</a><br />\n      Get the (geodetic) longitude in <code>radians</code> \n      (<code>float</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#lat\" class=\"summary-name\">lat</a><br />\n      Get the (geodetic) latitude in <code>degrees</code> \n      (<code>float</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#latlon\" class=\"summary-name\">latlon</a><br />\n      Get the (geodetic) lat-, longitude in <code>degrees</code> (<a \n      href=\"pygeodesy.namedTuples.LatLon2Tuple-class.html\" \n      class=\"link\">LatLon2Tuple</a><code>(lat, lon)</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#latlonheight\" class=\"summary-name\">latlonheight</a><br />\n      Get the (geodetic) lat-, longitude in <code>degrees</code> and height\n      (<a href=\"pygeodesy.namedTuples.LatLon3Tuple-class.html\" \n      class=\"link\">LatLon3Tuple</a><code>(lat, lon, height)</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#latlonheightdatum\" class=\"summary-name\">latlonheightdatum</a><br />\n      Get the lat-, longitude in <code>degrees</code> with height and datum\n      (<a href=\"pygeodesy.namedTuples.LatLon4Tuple-class.html\" \n      class=\"link\">LatLon4Tuple</a><code>(lat, lon, height, datum)</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#lon\" class=\"summary-name\">lon</a><br />\n      Get the (geodetic) longitude in <code>degrees</code> \n      (<code>float</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#phi\" class=\"summary-name\">phi</a><br />\n      Get the (geodetic) latitude in <code>radians</code> \n      (<code>float</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#philam\" class=\"summary-name\">philam</a><br />\n      Get the (geodetic) lat-, longitude in <code>radians</code> (<a \n      href=\"pygeodesy.namedTuples.PhiLam2Tuple-class.html\" \n      class=\"link\">PhiLam2Tuple</a><code>(phi, lam)</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#philamheight\" class=\"summary-name\">philamheight</a><br />\n      Get the (geodetic) lat-, longitude in <code>radians</code> and height\n      (<a href=\"pygeodesy.namedTuples.PhiLam3Tuple-class.html\" \n      class=\"link\">PhiLam3Tuple</a><code>(phi, lam, height)</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#philamheightdatum\" class=\"summary-name\">philamheightdatum</a><br />\n      Get the lat-, longitude in <code>radians</code> with height and datum\n      (<a href=\"pygeodesy.namedTuples.PhiLam4Tuple-class.html\" \n      class=\"link\">PhiLam4Tuple</a><code>(phi, lam, height, datum)</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#sphericalNvector\" class=\"summary-name\">sphericalNvector</a><br />\n      Get the <code>Nvector type</code> iff spherical, overloaded in <a \n      href=\"pygeodesy.sphericalNvector.Nvector-class.html\" \n      class=\"link\">pygeodesy.sphericalNvector.Nvector</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#xyzh\" class=\"summary-name\">xyzh</a><br />\n      Get this n-vector's components (<a \n      href=\"pygeodesy.namedTuples.Vector4Tuple-class.html\" \n      class=\"link\">Vector4Tuple</a><code>(x, y, z, h)</code>)\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">vector3dBase.Vector3dBase</a></code></b>:\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#crosserrors\">crosserrors</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#euclid\">euclid</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#homogeneous\">homogeneous</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#length\">length</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#length2\">length2</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#x\">x</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#x2y2z2\">x2y2z2</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#x2y2z23\">x2y2z23</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#xyz\">xyz</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#xyz3\">xyz3</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#y\">y</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#z\">z</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">x_xyz</span>,\n        <span class=\"sig-arg\">y</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">z</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">h</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">datum</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**ll_name</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New n-vector normal to the earth's surface.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>x_xyz</code></strong> - X component of vector (<code>scalar</code>) or (3-D) vector \n          (<code>Nvector</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <a \n          href=\"pygeodesy.namedTuples.Vector3Tuple-class.html\" \n          class=\"link\">Vector3Tuple</a> or <a \n          href=\"pygeodesy.namedTuples.Vector4Tuple-class.html\" \n          class=\"link\">Vector4Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>y</code></strong> - Y component of vector (<code>scalar</code>), required if \n          <b><code>x_xyz</code></b> is <code>scalar</code> and same units \n          as <b><code>x_xyz</code></b>, ignored otherwise.</li>\n        <li><strong class=\"pname\"><code>z</code></strong> - Z component of vector (<code>scalar</code>), like \n          <b><code>y</code></b>.</li>\n        <li><strong class=\"pname\"><code>h</code></strong> - Optional height above surface (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>datum</code></strong> - Optional, <i>pass-thru</i> datum (<a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>).</li>\n        <li><strong class=\"pname\"><code>ll_name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>) and \n          optional, original latlon <code><b>ll</b>=None</code> \n          (<code>LatLon</code>).</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Non-scalar <b><code>x</code></b>, <b><code>y</code></b> or \n        <b><code>z</code></b> coordinate or <b><code>x_xyz</code></b> not \n        an <code>Nvector</code>, <a \n        href=\"pygeodesy.namedTuples.Vector3Tuple-class.html\" \n        class=\"link\">Vector3Tuple</a> or <a \n        href=\"pygeodesy.namedTuples.Vector4Tuple-class.html\" \n        class=\"link\">Vector4Tuple</a> or invalid <b><code>datum</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"hStr\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">hStr</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">prec</span>=<span class=\"sig-default\">-2</span>,\n        <span class=\"sig-arg\">m</span>=<span class=\"sig-default\">''</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return a string for the height <b><code>h</code></b>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>prec</code></strong> - Number of (decimal) digits, unstripped (<code>int</code>).</li>\n        <li><strong class=\"pname\"><code>m</code></strong> - Optional unit of the height (<code>str</code>).</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.streprs-module.html#hstr\" \n        class=\"link\">pygeodesy.hstr</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"to2ab\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">to2ab</span>&nbsp;(<span class=\"sig-arg\">self</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use property <a \n  href=\"pygeodesy.nvectorBase.NvectorBase-class.html#philam\" \n  class=\"link\">philam</a>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_method</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"to2ll\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">to2ll</span>&nbsp;(<span class=\"sig-arg\">self</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use property <a \n  href=\"pygeodesy.nvectorBase.NvectorBase-class.html#latlon\" \n  class=\"link\">latlon</a>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_method</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"to3abh\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">to3abh</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">height</span>=<span class=\"sig-default\">None</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use property <a \n  href=\"pygeodesy.nvectorBase.NvectorBase-class.html#philamheight\" \n  class=\"link\">philamheight</a> or \n  <code>philam.to3Tuple(<b>height</b>)</code>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_method</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"to3llh\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">to3llh</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">height</span>=<span class=\"sig-default\">None</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use property <code>latlonheight</code> or \n  <code>latlon.to3Tuple(<b>height</b>)</code>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_method</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"to4xyzh\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">to4xyzh</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">h</span>=<span class=\"sig-default\">None</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use property <a \n  href=\"pygeodesy.nvectorBase.NvectorBase-class.html#xyzh\" \n  class=\"link\">xyzh</a> or <code>xyz.to4Tuple(<b>h</b>)</code>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_method</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toCartesian\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toCartesian</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">h</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">Cartesian</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">datum</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**name_Cartesian_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert this n-vector to <code>Nvector</code>-based cartesian (ECEF) \n  coordinates.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>h</code></strong> - Optional height, overriding this n-vector's height \n          (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>Cartesian</code></strong> - Optional class to return the (ECEF) coordinates \n          (<code>Cartesian</code>).</li>\n        <li><strong class=\"pname\"><code>datum</code></strong> - Optional datum (<code>Datum</code>), overriding this datum.</li>\n        <li><strong class=\"pname\"><code>name_Cartesian_kwds</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>) and \n          optionally, additional <b><code>Cartesian</code></b> keyword \n          arguments, ignored if <code><b>Cartesian</b> is None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The (ECEF) coordinates (<b><code>Cartesian</code></b>) or if \n          <code><b>Cartesian</b> is None</code>, an <a \n          href=\"pygeodesy.ecef.Ecef9Tuple-class.html\" \n          class=\"link\">Ecef9Tuple</a><code>(x, y, z, lat, lon, height, C, \n          M, datum)</code> with <code>C</code> and <code>M</code> if \n          available.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>Cartesian</code></b> or \n        <b><code>name_Cartesian_kwds</code></b> argument.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>h</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.vector3d.Vector3d-class.html#toCartesian\">vector3d.Vector3d.toCartesian</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toLatLon\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toLatLon</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">height</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">LatLon</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">datum</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**name_LatLon_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert this n-vector to an <code>Nvector</code>-based geodetic \n  point.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>height</code></strong> - Optional height, overriding this n-vector's height \n          (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>LatLon</code></strong> - Optional class to return the geodetic point (<code>LatLon</code>)\n          or <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>datum</code></strong> - Optional, spherical datum (<code>Datum</code>).</li>\n        <li><strong class=\"pname\"><code>name_LatLon_kwds</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>) and \n          optionally, additional <b><code>LatLon</code></b> keyword \n          arguments, ignored if <code><b>LatLon</b> is None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The geodetic point (<code>LatLon</code>) or if \n          <code><b>LatLon</b> is None</code>, an <a \n          href=\"pygeodesy.ecef.Ecef9Tuple-class.html\" \n          class=\"link\">Ecef9Tuple</a><code>(x, y, z, lat, lon, height, C, \n          M, datum)</code> with <code>C</code> and <code>M</code> if \n          available.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>LatLon</code></b> or \n        <b><code>name_LatLon_kwds</code></b> argument.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>height</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toStr\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toStr</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">prec</span>=<span class=\"sig-default\">5</span>,\n        <span class=\"sig-arg\">fmt</span>=<span class=\"sig-default\">'(%s)'</span>,\n        <span class=\"sig-arg\">sep</span>=<span class=\"sig-default\">', '</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return a string representation of this n-vector.</p>\n  <p>Height component is only included if non-zero.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>prec</code></strong> - Number of (decimal) digits, unstripped (<code>int</code>).</li>\n        <li><strong class=\"pname\"><code>fmt</code></strong> - Enclosing backets format (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>sep</code></strong> - Optional separator between components (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Comma-separated <code>&quot;(x, y, z [, h])&quot;</code> enclosed\n          in <b><code>fmt</code></b> brackets (<code>str</code>).</dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.named._Named-class.html#toStr\">named._Named.toStr</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toVector3d\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toVector3d</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">norm</span>=<span class=\"sig-default\">True</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert this n-vector to a 3-D vector, <i>ignoring height</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>norm</code></strong> - If <code>True</code>, normalize the 3-D vector \n          (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The (normalized) vector (<a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"unit\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">unit</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">ll</span>=<span class=\"sig-default\">None</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Normalize this n-vector to unit length.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>ll</code></strong> - Optional, original latlon (<code>LatLon</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Normalized vector (<code>Nvector</code>).</dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#unit\">vector3dBase.Vector3dBase.unit</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"Ecef\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">Ecef</h3>\n  <p>Get the ECEF <i>class</i> (<a \n  href=\"pygeodesy.ecef.EcefKarney-class.html\" class=\"link\">EcefKarney</a>),\n  <i>once</i>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fget(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Get the <code>property</code> value, only <i>once</i> and memoize/cache it.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">*unused</span>)</span>\n        - Silently ignored, always.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"H\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">H</h3>\n  <p>Class <code>property</code> with a <code>.name</code> attribute.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">H(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the height prefix (<code>str</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">H(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">H</span>)</span>\n        - Set the height prefix (<code>str</code>).\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"datum\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">datum</h3>\n  <p>Get the <i>pass-thru</i> datum (<code>Datum</code>) or \n  <code>None</code>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">datum(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <i>pass-thru</i> datum (<code>Datum</code>) or <code>None</code>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"ellipsoidalNvector\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">ellipsoidalNvector</h3>\n  <p>Get the <code>Nvector type</code> iff ellipsoidal, overloaded in <a \n  href=\"pygeodesy.ellipsoidalNvector.Nvector-class.html\" \n  class=\"link\">pygeodesy.ellipsoidalNvector.Nvector</a>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">ellipsoidalNvector(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <code>Nvector type</code> iff ellipsoidal, overloaded in <a \nhref=\"pygeodesy.ellipsoidalNvector.Nvector-class.html\" \nclass=\"link\">pygeodesy.ellipsoidalNvector.Nvector</a>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"h\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">h</h3>\n  <p>Class <code>property</code> with a <code>.name</code> attribute.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">h(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the height above surface (<code>meter</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">h(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">h</span>)</span>\n        - Set the height above surface (<code>meter</code>).\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"isEllipsoidal\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">isEllipsoidal</h3>\n  <p>Check whether this n-vector is ellipsoidal (<code>bool</code> or \n  <code>None</code> if unknown).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">isEllipsoidal(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Check whether this n-vector is ellipsoidal (<code>bool</code> or \n<code>None</code> if unknown).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"isSpherical\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">isSpherical</h3>\n  <p>Check whether this n-vector is spherical (<code>bool</code> or \n  <code>None</code> if unknown).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">isSpherical(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Check whether this n-vector is spherical (<code>bool</code> or \n<code>None</code> if unknown).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"lam\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">lam</h3>\n  <p>Get the (geodetic) longitude in <code>radians</code> \n  (<code>float</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">lam(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the (geodetic) longitude in <code>radians</code> (<code>float</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"lat\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">lat</h3>\n  <p>Get the (geodetic) latitude in <code>degrees</code> \n  (<code>float</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">lat(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the (geodetic) latitude in <code>degrees</code> (<code>float</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"latlon\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">latlon</h3>\n  <p>Get the (geodetic) lat-, longitude in <code>degrees</code> (<a \n  href=\"pygeodesy.namedTuples.LatLon2Tuple-class.html\" \n  class=\"link\">LatLon2Tuple</a><code>(lat, lon)</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">latlon(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the (geodetic) lat-, longitude in <code>degrees</code> (<a \nhref=\"pygeodesy.namedTuples.LatLon2Tuple-class.html\" \nclass=\"link\">LatLon2Tuple</a><code>(lat, lon)</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"latlonheight\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">latlonheight</h3>\n  <p>Get the (geodetic) lat-, longitude in <code>degrees</code> and height \n  (<a href=\"pygeodesy.namedTuples.LatLon3Tuple-class.html\" \n  class=\"link\">LatLon3Tuple</a><code>(lat, lon, height)</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">latlonheight(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the (geodetic) lat-, longitude in <code>degrees</code> and height (<a \nhref=\"pygeodesy.namedTuples.LatLon3Tuple-class.html\" \nclass=\"link\">LatLon3Tuple</a><code>(lat, lon, height)</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"latlonheightdatum\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">latlonheightdatum</h3>\n  <p>Get the lat-, longitude in <code>degrees</code> with height and datum \n  (<a href=\"pygeodesy.namedTuples.LatLon4Tuple-class.html\" \n  class=\"link\">LatLon4Tuple</a><code>(lat, lon, height, datum)</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">latlonheightdatum(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the lat-, longitude in <code>degrees</code> with height and datum (<a \nhref=\"pygeodesy.namedTuples.LatLon4Tuple-class.html\" \nclass=\"link\">LatLon4Tuple</a><code>(lat, lon, height, datum)</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"lon\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">lon</h3>\n  <p>Get the (geodetic) longitude in <code>degrees</code> \n  (<code>float</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">lon(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the (geodetic) longitude in <code>degrees</code> (<code>float</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"phi\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">phi</h3>\n  <p>Get the (geodetic) latitude in <code>radians</code> \n  (<code>float</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">phi(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the (geodetic) latitude in <code>radians</code> (<code>float</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"philam\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">philam</h3>\n  <p>Get the (geodetic) lat-, longitude in <code>radians</code> (<a \n  href=\"pygeodesy.namedTuples.PhiLam2Tuple-class.html\" \n  class=\"link\">PhiLam2Tuple</a><code>(phi, lam)</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">philam(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the (geodetic) lat-, longitude in <code>radians</code> (<a \nhref=\"pygeodesy.namedTuples.PhiLam2Tuple-class.html\" \nclass=\"link\">PhiLam2Tuple</a><code>(phi, lam)</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"philamheight\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">philamheight</h3>\n  <p>Get the (geodetic) lat-, longitude in <code>radians</code> and height \n  (<a href=\"pygeodesy.namedTuples.PhiLam3Tuple-class.html\" \n  class=\"link\">PhiLam3Tuple</a><code>(phi, lam, height)</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">philamheight(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the (geodetic) lat-, longitude in <code>radians</code> and height (<a \nhref=\"pygeodesy.namedTuples.PhiLam3Tuple-class.html\" \nclass=\"link\">PhiLam3Tuple</a><code>(phi, lam, height)</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"philamheightdatum\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">philamheightdatum</h3>\n  <p>Get the lat-, longitude in <code>radians</code> with height and datum \n  (<a href=\"pygeodesy.namedTuples.PhiLam4Tuple-class.html\" \n  class=\"link\">PhiLam4Tuple</a><code>(phi, lam, height, datum)</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">philamheightdatum(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the lat-, longitude in <code>radians</code> with height and datum (<a \nhref=\"pygeodesy.namedTuples.PhiLam4Tuple-class.html\" \nclass=\"link\">PhiLam4Tuple</a><code>(phi, lam, height, datum)</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"sphericalNvector\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">sphericalNvector</h3>\n  <p>Get the <code>Nvector type</code> iff spherical, overloaded in <a \n  href=\"pygeodesy.sphericalNvector.Nvector-class.html\" \n  class=\"link\">pygeodesy.sphericalNvector.Nvector</a>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">sphericalNvector(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <code>Nvector type</code> iff spherical, overloaded in <a \nhref=\"pygeodesy.sphericalNvector.Nvector-class.html\" \nclass=\"link\">pygeodesy.sphericalNvector.Nvector</a>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"xyzh\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">xyzh</h3>\n  <p>Get this n-vector's components (<a \n  href=\"pygeodesy.namedTuples.Vector4Tuple-class.html\" \n  class=\"link\">Vector4Tuple</a><code>(x, y, z, h)</code>)</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">xyzh(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get this n-vector's components (<a \nhref=\"pygeodesy.namedTuples.Vector4Tuple-class.html\" \nclass=\"link\">Vector4Tuple</a><code>(x, y, z, h)</code>)\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.osgr-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.osgr</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        Module&nbsp;osgr\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.osgr-module.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== MODULE DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Module osgr</h1><p class=\"nomargin-top\"></p>\n<p>Ordnance Survey Grid References (OSGR) references on the UK <a \n  href=\"https://www.OrdnanceSurvey.co.UK/documents/resources/guide-to-nationalgrid.pdf\"\n  target=\"_top\">National Grid</a>.</p>\n  <p>Classes <a href=\"pygeodesy.osgr.Osgr-class.html\" class=\"link\">Osgr</a>\n  and <a href=\"pygeodesy.osgr.OSGRError-class.html\" \n  class=\"link\">OSGRError</a> and functions <a \n  href=\"pygeodesy.osgr-module.html#parseOSGR\" class=\"link\">parseOSGR</a> \n  and <a href=\"pygeodesy.osgr-module.html#toOsgr\" \n  class=\"link\">toOsgr</a>.</p>\n  <p>A pure Python implementation, transcoded from <i>Chris Veness</i>' \n  JavaScript originals <a \n  href=\"https://www.Movable-Type.co.UK/scripts/latlong-os-gridref.html\" \n  target=\"_top\">OS National Grid</a> and <a \n  href=\"https://www.Movable-Type.co.UK/scripts/geodesy/docs/module-osgridref.html\"\n  target=\"_top\">Module osgridref</a> and <i>Charles Karney</i>'s C++ class \n  <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1OSGB.html\"\n  target=\"_top\">OSGB</a>.</p>\n  <p>OSGR provides geocoordinate references for UK mapping purposes, \n  converted in 2015 to work with the <code>WGS84</code> or the original \n  <code>OSGB36</code> datum.  In addition, this implementation includes \n  both the OS recommended and the Kr&#252;ger-based method to convert between \n  OSGR and geodetic coordinates (with keyword argument <code>kTM</code> of \n  function <a href=\"pygeodesy.osgr-module.html#toOsgr\" \n  class=\"link\">toOsgr</a>, method <a \n  href=\"pygeodesy.osgr.Osgr-class.html#toLatLon\" \n  class=\"link\">Osgr.toLatLon</a> and method <code>toOsgr</code> of any \n  ellipsoidal <code>LatLon</code> class).</p>\n  <p>See <a \n  href=\"https://WikiPedia.org/wiki/Transverse_Mercator:_Redfearn_series\" \n  target=\"_top\">Transverse Mercator: Redfearn series</a>, Karney's <a \n  href=\"https://ArXiv.org/pdf/1002.1417v3.pdf\" \n  target=\"_top\">&quot;Transverse Mercator with an accuracy of a few \n  nanometers&quot;, 2011</a> (building on <a \n  href=\"https://bib.GFZ-Potsdam.DE/pub/digi/krueger2.pdf\" \n  target=\"_top\">&quot;Konforme Abbildung des Erdellipsoids in der \n  Ebene&quot;, 1912</a>, <a \n  href=\"https://DE.WikiPedia.org/wiki/Gau&#223;-Kr&#252;ger-Koordinatensystem\" \n  target=\"_top\">&quot;Die Mathematik der Gau&#223;-Krueger-Abbildung&quot;, \n  2006</a>, <a \n  href=\"https://www.OrdnanceSurvey.co.UK/documents/resources/guide-coordinate-systems-great-britain.pdf\"\n  target=\"_top\">A Guide</a> and <a \n  href=\"https://WikiPedia.org/wiki/Ordnance_Survey_National_Grid\" \n  target=\"_top\">Ordnance Survey National Grid</a>.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Version:</strong>\n        25.05.12\n      </p>\n</div><!-- ==================== CLASSES ==================== -->\n<a name=\"section-Classes\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Classes</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.osgr.OSGRError-class.html\" class=\"summary-name\">OSGRError</a><br />\n      Error raised for a <a href=\"pygeodesy.osgr-module.html#parseOSGR\" \n        class=\"link\">parseOSGR</a>, <a \n        href=\"pygeodesy.osgr.Osgr-class.html\" class=\"link\">Osgr</a> or \n        other OSGR issue.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.osgr.Osgr-class.html\" class=\"summary-name\">Osgr</a><br />\n      Ordnance Survey Grid References (OSGR) coordinates on the <a \n        href=\"https://www.OrdnanceSurvey.co.UK/documents/resources/guide-to-nationalgrid.pdf\"\n        target=\"_top\">National Grid</a>.\n    </td>\n  </tr>\n</table>\n<!-- ==================== FUNCTIONS ==================== -->\n<a name=\"section-Functions\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Functions</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.osgr-module.html#parseOSGR\" class=\"summary-sig-name\">parseOSGR</a>(<span class=\"summary-sig-arg\">strOSGR</span>,\n        <span class=\"summary-sig-arg\">Osgr</span>=<span class=\"summary-sig-default\">&lt;class 'pygeodesy.osgr.Osgr'&gt;</span>,\n        <span class=\"summary-sig-arg\">**name_Osgr_kwds</span>)</span><br />\n      Parse a string representing an OS Grid Reference, consisting of \n      <code>&quot;[GD] easting northing&quot;</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.osgr-module.html#toOsgr\" class=\"summary-sig-name\">toOsgr</a>(<span class=\"summary-sig-arg\">latlon</span>,\n        <span class=\"summary-sig-arg\">lon</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">kTM</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">datum</span>=<span class=\"summary-sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"summary-sig-arg\">Osgr</span>=<span class=\"summary-sig-default\">&lt;class 'pygeodesy.osgr.Osgr'&gt;</span>,\n        <span class=\"summary-sig-arg\">**prec_name_Osgr_kwds</span>)</span><br />\n      Convert a lat-/longitude point to an OSGR coordinate.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== VARIABLES ==================== -->\n<a name=\"section-Variables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Variables</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"__all__\"></a><span class=\"summary-name\">__all__</span> = <code title=\"_ALL_LAZY.osgr\">_ALL_LAZY.osgr</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"D\"></a><span class=\"summary-name\">D</span> = <code title=\"_NG.datum\">_NG.datum</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"t\"></a><span class=\"summary-name\">t</span> = <code title=\"0\">0</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"i\"></a><span class=\"summary-name\">i</span> = <code title=\"0\">0</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"t2\"></a><span class=\"summary-name\">t2</span> = <code title=\"0, 0, 0, 0\">0, 0, 0, 0</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"t1\"></a><span class=\"summary-name\">t1</span> = <code title=\"0, 0, 0, 0\">0, 0, 0, 0</code>\n    </td>\n  </tr>\n</table>\n<!-- ==================== FUNCTION DETAILS ==================== -->\n<a name=\"section-FunctionDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Function Details</span></td>\n</tr>\n</table>\n<a name=\"parseOSGR\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">parseOSGR</span>&nbsp;(<span class=\"sig-arg\">strOSGR</span>,\n        <span class=\"sig-arg\">Osgr</span>=<span class=\"sig-default\">&lt;class 'pygeodesy.osgr.Osgr'&gt;</span>,\n        <span class=\"sig-arg\">**name_Osgr_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Parse a string representing an OS Grid Reference, consisting of \n  <code>&quot;[GD] easting northing&quot;</code>.</p>\n  <p>Accepts standard OS Grid References like &quot;SU 387 148&quot;, with \n  or without whitespace separators, from 2- up to 22-digit references, or \n  all-numeric, comma-separated references in meters, for example \n  &quot;438700,114800&quot;.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>strOSGR</code></strong> - An OSGR coordinate (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>Osgr</code></strong> - Optional class to return the OSGR coordinate (<a \n          href=\"pygeodesy.osgr.Osgr-class.html\" class=\"link\">Osgr</a>) or \n          <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>name_Osgr_kwds</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>) and \n          optionally, additional <b><code>Osgr</code></b> keyword \n          arguments, ignored if <code><b>Osgr</b> is None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>An (<b><code>Osgr</code></b>) instance or if <code><b>Osgr</b> is\n          None</code>, an <a \n          href=\"pygeodesy.namedTuples.EasNor2Tuple-class.html\" \n          class=\"link\">EasNor2Tuple</a><code>(easting, northing)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.osgr.OSGRError-class.html\">OSGRError</a></strong></code> - Invalid <b><code>strOSGR</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toOsgr\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toOsgr</span>&nbsp;(<span class=\"sig-arg\">latlon</span>,\n        <span class=\"sig-arg\">lon</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">kTM</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">datum</span>=<span class=\"sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"sig-arg\">Osgr</span>=<span class=\"sig-default\">&lt;class 'pygeodesy.osgr.Osgr'&gt;</span>,\n        <span class=\"sig-arg\">**prec_name_Osgr_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert a lat-/longitude point to an OSGR coordinate.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>latlon</code></strong> - Latitude (<code>degrees</code>) or an (ellipsoidal) geodetic \n          <code>LatLon</code> point.</li>\n        <li><strong class=\"pname\"><code>lon</code></strong> - Optional longitude in degrees (scalar or <code>None</code>).</li>\n        <li><strong class=\"pname\"><code>kTM</code></strong> - If <code>True</code>, use <i>Karney</i>'s Kr&#252;ger method from \n          module <a href=\"pygeodesy.ktm-module.html\" class=\"link\">ktm</a>, \n          otherwise use the Ordnance Survey formulation \n          (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>datum</code></strong> - Optional datum to convert <b><code>lat, lon</code></b> from (<a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>, \n          <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a> or <a \n          href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>Osgr</code></strong> - Optional class to return the OSGR coordinate (<a \n          href=\"pygeodesy.osgr.Osgr-class.html\" class=\"link\">Osgr</a>) or \n          <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>prec_name_Osgr_kwds</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>), optional\n          <a href=\"pygeodesy.utily-module.html#truncate\" \n          class=\"link\">truncate</a> precision \n          <code><b>prec</b>=ndigits</code> and additional \n          <b><code>Osgr</code></b> keyword arguments, ignored if \n          <code><b>Osgr</b> is None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>An (<b><code>Osgr</code></b>) instance or if <code><b>Osgr</b> is\n          None</code> an <a \n          href=\"pygeodesy.namedTuples.EasNor2Tuple-class.html\" \n          class=\"link\">EasNor2Tuple</a><code>(easting, northing)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.osgr.OSGRError-class.html\">OSGRError</a></strong></code> - Invalid <b><code>latlon</code></b> or <b><code>lon</code></b>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Non-ellipsoidal <b><code>latlon</code></b> or invalid \n        <b><code>datum</code></b>, <b><code>Osgr</code></b>, \n        <b><code>Osgr_kwds</code></b> or conversion to \n        <code>Datums.OSGB36</code> failed.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        If <a href=\"pygeodesy.basics-module.html#isint\" \n        class=\"link\">isint</a><code>(<b>prec</b>)</code> both easting and \n        northing are <a href=\"pygeodesy.utily-module.html#truncate\" \n        class=\"link\">truncate</a>d to the given number of digits.\n      </p>\n</div></td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.osgr.OSGRError-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.osgr.OSGRError</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.osgr-module.html\">Module&nbsp;osgr</a> ::\n        Class&nbsp;OSGRError\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.osgr.OSGRError-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class OSGRError</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n              object --+                    \n                       |                    \nexceptions.BaseException --+                \n                           |                \n        exceptions.Exception --+            \n                               |            \n        exceptions.StandardError --+        \n                                   |        \n               exceptions.ValueError --+    \n                                       |    \n                      errors._ValueError --+\n                                           |\n                                          <strong class=\"uidshort\">OSGRError</strong>\n</pre>\n\n<hr />\n<p>Error raised for a <a href=\"pygeodesy.osgr-module.html#parseOSGR\" \n  class=\"link\">parseOSGR</a>, <a href=\"pygeodesy.osgr.Osgr-class.html\" \n  class=\"link\">Osgr</a> or other OSGR issue.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>errors._ValueError</code></b>:\n      <code>__init__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.ValueError</code></b>:\n      <code>__new__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.BaseException</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getslice__</code>,\n      <code>__reduce__</code>,\n      <code>__repr__</code>,\n      <code>__setattr__</code>,\n      <code>__setstate__</code>,\n      <code>__str__</code>,\n      <code>__unicode__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__format__</code>,\n      <code>__hash__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.BaseException</code></b>:\n      <code>args</code>,\n      <code>message</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.osgr.Osgr-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.osgr.Osgr</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.osgr-module.html\">Module&nbsp;osgr</a> ::\n        Class&nbsp;Osgr\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.osgr.Osgr-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Osgr</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+        \n           |        \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n               |    \n<a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+\n                   |\n                  <strong class=\"uidshort\">Osgr</strong>\n</pre>\n\n<hr />\n<p>Ordnance Survey Grid References (OSGR) coordinates on the <a \n  href=\"https://www.OrdnanceSurvey.co.UK/documents/resources/guide-to-nationalgrid.pdf\"\n  target=\"_top\">National Grid</a>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.osgr.Osgr-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">easting</span>,\n        <span class=\"summary-sig-arg\">northing</span>,\n        <span class=\"summary-sig-arg\">datum</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">resolution</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      New <a href=\"pygeodesy.osgr.Osgr-class.html\" class=\"link\">Osgr</a> \n      coordinate.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.osgr.Osgr-class.html#__str__\" class=\"summary-sig-name\">__str__</a>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Default <code>str(self)</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.osgr.Osgr-class.html#parse\" class=\"summary-sig-name\">parse</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">strOSGR</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Parse an OSGR reference to a similar <a \n      href=\"pygeodesy.osgr.Osgr-class.html\" class=\"link\">Osgr</a> instance.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.osgr.Osgr-class.html#toLatLon\" class=\"summary-sig-name\">toLatLon</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">LatLon</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">datum</span>=<span class=\"summary-sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"summary-sig-arg\">kTM</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">eps</span>=<span class=\"summary-sig-default\">1e-05</span>,\n        <span class=\"summary-sig-arg\">**LatLon_kwds</span>)</span><br />\n      Convert this <a href=\"pygeodesy.osgr.Osgr-class.html\" \n      class=\"link\">Osgr</a> coordinate to an (ellipsoidal) geodetic point.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.osgr.Osgr-class.html#toRepr\" class=\"summary-sig-name\">toRepr</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">GD</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">fmt</span>=<span class=\"summary-sig-default\">'[%s]'</span>,\n        <span class=\"summary-sig-arg\">sep</span>=<span class=\"summary-sig-default\">', '</span>,\n        <span class=\"summary-sig-arg\">**prec</span>)</span><br />\n      Return a string representation of this <a \n      href=\"pygeodesy.osgr.Osgr-class.html\" class=\"link\">Osgr</a> \n      coordinate.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.osgr.Osgr-class.html#toStr\" class=\"summary-sig-name\">toStr</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">GD</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">sep</span>=<span class=\"summary-sig-default\">''</span>,\n        <span class=\"summary-sig-arg\">**prec</span>)</span><br />\n      Return this <a href=\"pygeodesy.osgr.Osgr-class.html\" \n      class=\"link\">Osgr</a> coordinate as a string.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#others\">others</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.osgr.Osgr-class.html#datum\" class=\"summary-name\">datum</a><br />\n      Get the datum (<a href=\"pygeodesy.datums.Datum-class.html\" \n      class=\"link\">Datum</a>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.osgr.Osgr-class.html#easting\" class=\"summary-name\">easting</a><br />\n      Get the easting (<code>meter</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.osgr.Osgr-class.html#falsing0\" class=\"summary-name\">falsing0</a><br />\n      Get the <code>OS National Grid</code> falsing (<a \n      href=\"pygeodesy.namedTuples.EasNor2Tuple-class.html\" \n      class=\"link\">EasNor2Tuple</a>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.osgr.Osgr-class.html#iteration\" class=\"summary-name\">iteration</a><br />\n      Get the most recent <code>Osgr.toLatLon</code> iteration number \n      (<code>int</code>) or <code>None</code> if not available/applicable.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.osgr.Osgr-class.html#latlon0\" class=\"summary-name\">latlon0</a><br />\n      Get the <code>OS National Grid</code> origin (<a \n      href=\"pygeodesy.namedTuples.LatLon2Tuple-class.html\" \n      class=\"link\">LatLon2Tuple</a>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.osgr.Osgr-class.html#northing\" class=\"summary-name\">northing</a><br />\n      Get the northing (<code>meter</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.osgr.Osgr-class.html#resolution\" class=\"summary-name\">resolution</a><br />\n      Get the OSGR resolution (<code>meter</code>, power of 10) or \n      <code>0</code> if undefined.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.osgr.Osgr-class.html#scale0\" class=\"summary-name\">scale0</a><br />\n      Get the <code>OS National Grid</code> central scale \n      (<code>scalar</code>).\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">easting</span>,\n        <span class=\"sig-arg\">northing</span>,\n        <span class=\"sig-arg\">datum</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">resolution</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.osgr.Osgr-class.html\" class=\"link\">Osgr</a> \n  coordinate.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>easting</code></strong> - Easting from the OS <code>National Grid</code> origin \n          (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>northing</code></strong> - Northing from the OS <code>National Grid</code> origin \n          (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>datum</code></strong> - Override default datum (<code>Datums.OSGB36</code>).</li>\n        <li><strong class=\"pname\"><code>resolution</code></strong> - Optional resolution (<code>meter</code>), <code>0</code> for \n          default.</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.osgr.OSGRError-class.html\">OSGRError</a></strong></code> - Invalid or negative <b><code>easting</code></b> or \n        <b><code>northing</code></b> or <b><code>datum</code></b> not an \n        <code>Datums.OSGB36</code> equivalent.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__str__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__str__</span>&nbsp;(<span class=\"sig-arg\">self</span>)</span>\n    <br /><em class=\"fname\">(Informal representation operator)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Default <code>str(self)</code>.</p>\n  <dl class=\"fields\">\n    <dt>Overrides:\n        object.__str__\n        <dd><em class=\"note\">(inherited documentation)</em></dd>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"parse\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">parse</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">strOSGR</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Parse an OSGR reference to a similar <a \n  href=\"pygeodesy.osgr.Osgr-class.html\" class=\"link\">Osgr</a> instance.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>strOSGR</code></strong> - The OSGR reference (<code>str</code>), see function <a \n          href=\"pygeodesy.osgr-module.html#parseOSGR\" \n          class=\"link\">parseOSGR</a>.</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>), \n          overriding this name.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The similar instance (<a href=\"pygeodesy.osgr.Osgr-class.html\" \n          class=\"link\">Osgr</a>)</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.osgr.OSGRError-class.html\">OSGRError</a></strong></code> - Invalid <b><code>strOSGR</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toLatLon\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toLatLon</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">LatLon</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">datum</span>=<span class=\"sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"sig-arg\">kTM</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">eps</span>=<span class=\"sig-default\">1e-05</span>,\n        <span class=\"sig-arg\">**LatLon_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert this <a href=\"pygeodesy.osgr.Osgr-class.html\" \n  class=\"link\">Osgr</a> coordinate to an (ellipsoidal) geodetic point.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>LatLon</code></strong> - Optional ellipsoidal class to return the geodetic point \n          (<code>LatLon</code>) or <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>datum</code></strong> - Optional datum to convert to (<a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>, \n          <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a> or <a \n          href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>kTM</code></strong> - If <code>True</code>, use <i>Karney</i>'s Kr&#252;ger method from \n          module <a href=\"pygeodesy.ktm-module.html\" class=\"link\">ktm</a>, \n          otherwise use the Ordnance Survey formulation \n          (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>eps</code></strong> - Tolerance for OS convergence (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>LatLon_kwds</code></strong> - Optional, additional <b><code>LatLon</code></b> keyword \n          arguments, ignored if <code><b>LatLon</b> is None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <b><code>LatLon</code></b> instance or if <code><b>LatLon</b> \n          is None</code> a <a \n          href=\"pygeodesy.namedTuples.LatLonDatum3Tuple-class.html\" \n          class=\"link\">LatLonDatum3Tuple</a><code>(lat, lon, datum)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.osgr.OSGRError-class.html\">OSGRError</a></strong></code> - No convergence.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - If <b><code>LatLon</code></b> is not ellipsoidal or \n        <b><code>datum</code></b> is invalid or conversion to \n        <b><code>datum</code></b> failed.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <strong>Notes:</strong>\n      <ul class=\"nomargin-top\">\n        <li>\n        While OS grid references are based on the OSGB36 datum, the \n        Ordnance Survey have deprecated the use of OSGB36 for \n        lat-/longitude coordinates (in favour of WGS84).  Hence, this \n        method returns WGS84 by default with OSGB36 as an option, <a \n        href=\"https://www.OrdnanceSurvey.co.UK/blog/2014/12/2\" \n        target=\"_top\">see</a>.\n        </li>\n        <li>\n        The formulation implemented here due to Thomas, Redfearn, etc. is \n        as published by the Ordnance Survey, but is inferior to Kr&#252;ger as \n        used by e.g. Karney 2011.\n        </li>\n      </ul>\n</div></td></tr></table>\n</div>\n<a name=\"toRepr\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toRepr</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">GD</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">fmt</span>=<span class=\"sig-default\">'[%s]'</span>,\n        <span class=\"sig-arg\">sep</span>=<span class=\"sig-default\">', '</span>,\n        <span class=\"sig-arg\">**prec</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return a string representation of this <a \n  href=\"pygeodesy.osgr.Osgr-class.html\" class=\"link\">Osgr</a> \n  coordinate.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>GD</code></strong> - If <code>bool</code>, in- or exclude the 2-letter grid \n          designation and get the new <b><code>prec</code></b> behavior, \n          otherwise if <code>None</code>, default to the DEPRECATED \n          definition <code><b>prec</b>=5</code> <i>for backward \n          compatibility</i>.</li>\n        <li><strong class=\"pname\"><code>fmt</code></strong> - Enclosing backets format (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>sep</code></strong> - Separator to join (<code>str</code>) or <code>None</code> to \n          return an unjoined 2- or 3-<code>tuple</code> of \n          <code>str</code>s.</li>\n        <li><strong class=\"pname\"><code>prec</code></strong> - Precison <code><b>prec</b>=0</code>, the number of <i>decimal</i>\n          digits (<code>int</code>) or if negative, the number of <i>units \n          to drop</i>, like MGRS <a \n          href=\"https://GeographicLib.SourceForge.io/C++/doc/GeoConvert.1.html#PRECISION\"\n          target=\"_top\">PRECISION</a>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>This OSGR as (<code>str</code>), <code>&quot;[G:GD, E:meter, \n          N:meter]&quot;</code> or if <code><b>GD</b>=False</code> \n          <code>&quot;[OSGR:easting,northing]&quot;</code> or \n          <code><b>GD</b>=False</code> and <code><b>prec</b> &gt; 0</code> \n          if <code>&quot;[OSGR:easting.d,northing.d]&quot;</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.osgr.OSGRError-class.html\">OSGRError</a></strong></code> - If <code><b>GD</b> not in (None, True, False)</code> or if \n        <code><b>prec</b> &lt; -4</code> and <code><b>GD</b>=False</code>.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>prec</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.named._Named-class.html#toRepr\">named._Named.toRepr</a>\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        OSGR easting and northing values are truncated, not rounded.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"toStr\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toStr</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">GD</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">sep</span>=<span class=\"sig-default\">''</span>,\n        <span class=\"sig-arg\">**prec</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return this <a href=\"pygeodesy.osgr.Osgr-class.html\" \n  class=\"link\">Osgr</a> coordinate as a string.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>GD</code></strong> - If <code>bool</code>, in- or exclude the 2-letter grid \n          designation and get the new <b><code>prec</code></b> behavior, \n          otherwise if <code>None</code>, default to the DEPRECATED \n          definition <code><b>prec</b>=5</code> <i>for backward \n          compatibility</i>.</li>\n        <li><strong class=\"pname\"><code>sep</code></strong> - Separator to join (<code>str</code>) or <code>None</code> to \n          return an unjoined 2- or 3-<code>tuple</code> of \n          <code>str</code>s.</li>\n        <li><strong class=\"pname\"><code>prec</code></strong> - Precison <code><b>prec</b>=0</code>, the number of <i>decimal</i>\n          digits (<code>int</code>) or if negative, the number of <i>units \n          to drop</i>, like MGRS <a \n          href=\"https://GeographicLib.SourceForge.io/C++/doc/GeoConvert.1.html#PRECISION\"\n          target=\"_top\">PRECISION</a>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>This OSGR as (<code>str</code>), <code>&quot;GD meter \n          meter&quot;</code> or if <code><b>GD</b>=False</code> \n          <code>&quot;easting,northing&quot;</code> or if \n          <code><b>GD</b>=False</code> and <code><b>prec</b> &gt; 0</code> \n          <code>&quot;easting.d,northing.d&quot;</code></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.osgr.OSGRError-class.html\">OSGRError</a></strong></code> - If <code><b>GD</b> not in (None, True, False)</code> or if \n        <code><b>prec</b> &lt; -4</code> and <code><b>GD</b>=False</code>.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>prec</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.named._Named-class.html#toStr\">named._Named.toStr</a>\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        OSGR easting and northing values are truncated, not rounded.\n      </p>\n</div></td></tr></table>\n</div>\n<br />\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"datum\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">datum</h3>\n  <p>Get the datum (<a href=\"pygeodesy.datums.Datum-class.html\" \n  class=\"link\">Datum</a>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">datum(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the datum (<a href=\"pygeodesy.datums.Datum-class.html\" \nclass=\"link\">Datum</a>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"easting\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">easting</h3>\n  <p>Get the easting (<code>meter</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">easting(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the easting (<code>meter</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"falsing0\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">falsing0</h3>\n  <p>Get the <code>OS National Grid</code> falsing (<a \n  href=\"pygeodesy.namedTuples.EasNor2Tuple-class.html\" \n  class=\"link\">EasNor2Tuple</a>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">falsing0(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <code>OS National Grid</code> falsing (<a \nhref=\"pygeodesy.namedTuples.EasNor2Tuple-class.html\" \nclass=\"link\">EasNor2Tuple</a>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"iteration\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">iteration</h3>\n  <p>Get the most recent <code>Osgr.toLatLon</code> iteration number \n  (<code>int</code>) or <code>None</code> if not available/applicable.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">iteration(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the most recent <code>Osgr.toLatLon</code> iteration number \n(<code>int</code>) or <code>None</code> if not available/applicable.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"latlon0\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">latlon0</h3>\n  <p>Get the <code>OS National Grid</code> origin (<a \n  href=\"pygeodesy.namedTuples.LatLon2Tuple-class.html\" \n  class=\"link\">LatLon2Tuple</a>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">latlon0(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <code>OS National Grid</code> origin (<a \nhref=\"pygeodesy.namedTuples.LatLon2Tuple-class.html\" \nclass=\"link\">LatLon2Tuple</a>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"northing\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">northing</h3>\n  <p>Get the northing (<code>meter</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">northing(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the northing (<code>meter</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"resolution\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">resolution</h3>\n  <p>Get the OSGR resolution (<code>meter</code>, power of 10) or \n  <code>0</code> if undefined.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">resolution(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the OSGR resolution (<code>meter</code>, power of 10) or <code>0</code>\nif undefined.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"scale0\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">scale0</h3>\n  <p>Get the <code>OS National Grid</code> central scale \n  (<code>scalar</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">scale0(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <code>OS National Grid</code> central scale (<code>scalar</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.points-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.points</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        Module&nbsp;points\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.points-module.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== MODULE DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Module points</h1><p class=\"nomargin-top\"></p>\n<p>Utilities for point lists, tuples, etc.</p>\n  <p>Functions to handle collections and sequences of <code>LatLon</code> \n  points specified as 2-d <a href=\"https://www.NumPy.org\" \n  target=\"_top\">NumPy</a>, <code>arrays</code> or tuples as \n  <code>LatLon</code> or as <code>pseudo-x/-y</code> pairs.</p>\n  <p><code>NumPy</code> arrays are assumed to contain rows of points with a\n  lat-, a longitude -and possibly other- values in different columns.  \n  While iterating over the array rows, create an instance of a given \n  <code>LatLon</code> class &quot;on-the-fly&quot; for each row with the \n  row's lat- and longitude.</p>\n  <p>The original <code>NumPy</code> array is read-accessed only and never \n  duplicated, except to return a <i>subset</i> of the original array.</p>\n  <p>For example, to process a <code>NumPy</code> array, wrap the array by \n  instantiating class <a href=\"pygeodesy.points.Numpy2LatLon-class.html\" \n  class=\"link\">Numpy2LatLon</a> and specifying the column index for the \n  lat- and longitude in each row.  Then, pass the <a \n  href=\"pygeodesy.points.Numpy2LatLon-class.html\" \n  class=\"link\">Numpy2LatLon</a> instance to any <a \n  href=\"pygeodesy-module.html\" class=\"link\">pygeodesy</a> function or \n  method accepting a <i>points</i> argument.</p>\n  <p>Similarly, class <a href=\"pygeodesy.points.Tuple2LatLon-class.html\" \n  class=\"link\">Tuple2LatLon</a> is used to instantiate a \n  <code>LatLon</code> from each 2+tuple in a sequence of such 2+tuples \n  using the <code>ilat</code> lat- and <code>ilon</code> longitude index in\n  each 2+tuple.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Version:</strong>\n        25.05.12\n      </p>\n</div><!-- ==================== CLASSES ==================== -->\n<a name=\"section-Classes\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Classes</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.points.LatLon_-class.html\" class=\"summary-name\">LatLon_</a><br />\n      Low-overhead <code>LatLon</code> class, mainly for <a \n        href=\"pygeodesy.points.Numpy2LatLon-class.html\" \n        class=\"link\">Numpy2LatLon</a> and <a \n        href=\"pygeodesy.points.Tuple2LatLon-class.html\" \n        class=\"link\">Tuple2LatLon</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.points._Basequence-class.html\" class=\"summary-name\">_Basequence</a><br />\n      (INTERNAL) Base class.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.points._Array2LatLon-class.html\" class=\"summary-name\">_Array2LatLon</a><br />\n      (INTERNAL) Base class for Numpy2LatLon or Tuple2LatLon.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.points.LatLon2psxy-class.html\" class=\"summary-name\">LatLon2psxy</a><br />\n      Wrapper for <code>LatLon</code> points as &quot;on-the-fly&quot; \n        pseudo-xy coordinates.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.points.Numpy2LatLon-class.html\" class=\"summary-name\">Numpy2LatLon</a><br />\n      Wrapper for <code>NumPy</code> arrays as &quot;on-the-fly&quot; \n        <code>LatLon</code> points.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.points.Shape2Tuple-class.html\" class=\"summary-name\">Shape2Tuple</a><br />\n      2-Tuple <code>(nrows, ncols)</code>, the number of rows and \n        columns, both <code>int</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.points.Tuple2LatLon-class.html\" class=\"summary-name\">Tuple2LatLon</a><br />\n      Wrapper for tuple sequences as &quot;on-the-fly&quot; \n        <code>LatLon</code> points.\n    </td>\n  </tr>\n</table>\n<!-- ==================== FUNCTIONS ==================== -->\n<a name=\"section-Functions\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Functions</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.points-module.html#areaOf\" class=\"summary-sig-name\">areaOf</a>(<span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">adjust</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">radius</span>=<span class=\"summary-sig-default\">6371008.771415</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">True</span>)</span><br />\n      Approximate the area of a polygon or composite.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.points-module.html#boundsOf\" class=\"summary-sig-name\">boundsOf</a>(<span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">LatLon</span>=<span class=\"summary-sig-default\">None</span>)</span><br />\n      Determine the bottom-left SW and top-right NE corners of a path or \n      polygon.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.points-module.html#centroidOf\" class=\"summary-sig-name\">centroidOf</a>(<span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">LatLon</span>=<span class=\"summary-sig-default\">None</span>)</span><br />\n      Determine the centroid of a polygon.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.points-module.html#fractional\" class=\"summary-sig-name\">fractional</a>(<span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">fi</span>,\n        <span class=\"summary-sig-arg\">j</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">LatLon</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">Vector</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**kwds</span>)</span><br />\n      Return the point at a given <i>fractional</i> index.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.points-module.html#isclockwise\" class=\"summary-sig-name\">isclockwise</a>(<span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">adjust</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">True</span>)</span><br />\n      Determine the direction of a path or polygon.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.points-module.html#isconvex\" class=\"summary-sig-name\">isconvex</a>(<span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">adjust</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Determine whether a polygon is convex.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.points-module.html#isconvex_\" class=\"summary-sig-name\">isconvex_</a>(<span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">adjust</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Determine whether a polygon is convex <i>and clockwise</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.points-module.html#isenclosedBy\" class=\"summary-sig-name\">isenclosedBy</a>(<span class=\"summary-sig-arg\">point</span>,\n        <span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Determine whether a point is enclosed by a polygon or composite.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.points-module.html#ispolar\" class=\"summary-sig-name\">ispolar</a>(<span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Check whether a polygon encloses a pole.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.points-module.html#luneOf\" class=\"summary-sig-name\">luneOf</a>(<span class=\"summary-sig-arg\">lon1</span>,\n        <span class=\"summary-sig-arg\">lon2</span>,\n        <span class=\"summary-sig-arg\">closed</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">LatLon</span>=<span class=\"summary-sig-default\">&lt;class 'pygeodesy.points.LatLon_'&gt;</span>,\n        <span class=\"summary-sig-arg\">**LatLon_kwds</span>)</span><br />\n      Generate an ellipsoidal or spherical <a \n      href=\"https://WikiPedia.org/wiki/Spherical_lune\" \n      target=\"_top\">lune</a>-shaped path or polygon.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.points-module.html#nearestOn5\" class=\"summary-sig-name\">nearestOn5</a>(<span class=\"summary-sig-arg\">point</span>,\n        <span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">closed</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">adjust</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">limit</span>=<span class=\"summary-sig-default\">9</span>,\n        <span class=\"summary-sig-arg\">**LatLon_and_kwds</span>)</span><br />\n      Locate the point on a path or polygon closest to a reference point.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.points-module.html#perimeterOf\" class=\"summary-sig-name\">perimeterOf</a>(<span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">closed</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">adjust</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">radius</span>=<span class=\"summary-sig-default\">6371008.771415</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">True</span>)</span><br />\n      <i>Approximate</i> the perimeter of a path, polygon.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.points-module.html#quadOf\" class=\"summary-sig-name\">quadOf</a>(<span class=\"summary-sig-arg\">latS</span>,\n        <span class=\"summary-sig-arg\">lonW</span>,\n        <span class=\"summary-sig-arg\">latN</span>,\n        <span class=\"summary-sig-arg\">lonE</span>,\n        <span class=\"summary-sig-arg\">closed</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">LatLon</span>=<span class=\"summary-sig-default\">&lt;class 'pygeodesy.points.LatLon_'&gt;</span>,\n        <span class=\"summary-sig-arg\">**LatLon_kwds</span>)</span><br />\n      Generate a quadrilateral path or polygon from two points.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== VARIABLES ==================== -->\n<a name=\"section-Variables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Variables</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"__all__\"></a><span class=\"summary-name\">__all__</span> = <code title=\"_ALL_LAZY.points\">_ALL_LAZY.points</code>\n    </td>\n  </tr>\n</table>\n<!-- ==================== FUNCTION DETAILS ==================== -->\n<a name=\"section-FunctionDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Function Details</span></td>\n</tr>\n</table>\n<a name=\"areaOf\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">areaOf</span>&nbsp;(<span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">adjust</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">radius</span>=<span class=\"sig-default\">6371008.771415</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">True</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Approximate the area of a polygon or composite.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>points</code></strong> - The polygon points or clips (<code>LatLon</code>[], <a \n          href=\"pygeodesy.booleans.BooleanFHP-class.html\" \n          class=\"link\">BooleanFHP</a> or <a \n          href=\"pygeodesy.booleans.BooleanGH-class.html\" \n          class=\"link\">BooleanGH</a>).</li>\n        <li><strong class=\"pname\"><code>adjust</code></strong> - Adjust the wrapped, unrolled longitudinal delta by the cosine of \n          the mean latitude (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>radius</code></strong> - Mean earth radius (<code>meter</code>) or <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll the \n          <b><code>points</code></b> (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Approximate area (<i>square</i> <code>meter</code>, same units as\n          <b><code>radius</code></b> or <code>radians</code> <i>squared</i>\n          if <code><b>radius</b> is None</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.PointsError-class.html\">PointsError</a></strong></code> - Insufficient number of <b><code>points</code></b></li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Some <b><code>points</code></b> are not <code>LatLon</code>.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>radius</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        This area approximation has limited accuracy and is ill-suited for \n        regions exceeding several hundred Km or Miles or with near-polar \n        latitudes.\n      </p>\n      <p><strong>See Also:</strong>\n        <a href=\"pygeodesy.sphericalNvector-module.html#areaOf\" \n        class=\"link\">sphericalNvector.areaOf</a>, <a \n        href=\"pygeodesy.sphericalTrigonometry-module.html#areaOf\" \n        class=\"link\">sphericalTrigonometry.areaOf</a>, <a \n        href=\"pygeodesy.ellipsoidalExact-module.html#areaOf\" \n        class=\"link\">ellipsoidalExact.areaOf</a> and <a \n        href=\"pygeodesy.ellipsoidalKarney-module.html#areaOf\" \n        class=\"link\">ellipsoidalKarney.areaOf</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"boundsOf\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">boundsOf</span>&nbsp;(<span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">LatLon</span>=<span class=\"sig-default\">None</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Determine the bottom-left SW and top-right NE corners of a path or \n  polygon.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>points</code></strong> - The path or polygon points (<code>LatLon</code>[]).</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll the \n          <b><code>points</code></b> (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>LatLon</code></strong> - Optional class to return the <code>bounds</code> corners \n          (<code>LatLon</code>) or <code>None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.namedTuples.Bounds2Tuple-class.html\" \n          class=\"link\">Bounds2Tuple</a><code>(latlonSW, latlonNE)</code>, \n          each a <b><code>LatLon</code></b> or if <code><b>LatLon</b> is \n          None</code>, a <a \n          href=\"pygeodesy.namedTuples.Bounds4Tuple-class.html\" \n          class=\"link\">Bounds4Tuple</a><code>(latS, lonW, latN, \n          lonE)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.PointsError-class.html\">PointsError</a></strong></code> - Insufficient number of <b><code>points</code></b></li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Some <b><code>points</code></b> are not <code>LatLon</code>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.points-module.html#quadOf\" \n        class=\"link\">quadOf</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"centroidOf\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">centroidOf</span>&nbsp;(<span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">LatLon</span>=<span class=\"sig-default\">None</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Determine the centroid of a polygon.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>points</code></strong> - The polygon points (<code>LatLon</code>[]).</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll the \n          <b><code>points</code></b> (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>LatLon</code></strong> - Optional class to return the centroid (<code>LatLon</code>) or \n          <code>None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Centroid (<b><code>LatLon</code></b>) or a <a \n          href=\"pygeodesy.namedTuples.LatLon2Tuple-class.html\" \n          class=\"link\">LatLon2Tuple</a><code>(lat, lon)</code> if \n          <code><b>LatLon</b> is None</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.PointsError-class.html\">PointsError</a></strong></code> - Insufficient number of <b><code>points</code></b></li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Some <b><code>points</code></b> are not <code>LatLon</code>.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - The <b><code>points</code></b> enclose a pole or near-zero area.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"https://WikiPedia.org/wiki/Centroid#Of_a_polygon\" \n        target=\"_top\">Centroid</a> and Paul Bourke's <a \n        href=\"https://www.SEAS.UPenn.edu/~ese502/lab-content/extra_materials/Polygon%20Area%20and%20Centroid.pdf\"\n        target=\"_top\">Calculating The Area And Centroid Of A Polygon</a>, \n        1988.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"fractional\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">fractional</span>&nbsp;(<span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">fi</span>,\n        <span class=\"sig-arg\">j</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">LatLon</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">Vector</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the point at a given <i>fractional</i> index.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>points</code></strong> - The points (<code>LatLon</code>[], <a \n          href=\"pygeodesy.points.Numpy2LatLon-class.html\" \n          class=\"link\">Numpy2LatLon</a>[], <a \n          href=\"pygeodesy.points.Tuple2LatLon-class.html\" \n          class=\"link\">Tuple2LatLon</a>[], <code>Cartesian</code>[], \n          <code>Vector3d</code>[], <a \n          href=\"pygeodesy.namedTuples.Vector3Tuple-class.html\" \n          class=\"link\">Vector3Tuple</a>[]).</li>\n        <li><strong class=\"pname\"><code>fi</code></strong> - The fractional index (<a href=\"pygeodesy.units.FIx-class.html\" \n          class=\"link\">FIx</a>, <code>float</code> or <code>int</code>).</li>\n        <li><strong class=\"pname\"><code>j</code></strong> - Optionally, index of the other point (<code>int</code>).</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll the \n          <b>{points}</b> (<code>bool</code>) or <code>None</code> for a \n          backward compatible <a \n          href=\"pygeodesy.namedTuples.LatLon2Tuple-class.html\" \n          class=\"link\">LatLon2Tuple</a> or <b><code>LatLon</code></b> with \n          averaged lat- and longitudes.  Use <code>True</code> or \n          <code>False</code> to get the <i>fractional</i> point computed by\n          method <code><b>points</b>[fi].intermediateTo</code>.</li>\n        <li><strong class=\"pname\"><code>LatLon</code></strong> - Optional class to return the <i>intermediate</i>, \n          <i>fractional</i> point (<code>LatLon</code>) or \n          <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>Vector</code></strong> - Optional class to return the <i>intermediate</i>, \n          <i>fractional</i> point (<code>Cartesian</code>, \n          <code>Vector3d</code>) or <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>kwds</code></strong> - Optional, additional <b><code>LatLon</code></b> <i>or</i> \n          <b><code>Vector</code></b> keyword arguments, ignored if both \n          <code><b>LatLon</b></code> and <code><b>Vector</b></code> are \n          <code>None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.namedTuples.LatLon2Tuple-class.html\" \n          class=\"link\">LatLon2Tuple</a><code>(lat, lon)</code> if \n          <b><code>wrap</code></b>, <b><code>LatLon</code></b> and \n          <b><code>Vector</code></b> all are <code>None</code>, the \n          defaults.\n          <p>An instance of <b><code>LatLon</code></b> if not \n          <code>None</code> <i>or</i> an instance of \n          <b><code>Vector</code></b> if not <code>None</code>.</p>\n          <p>Otherwise with <b><code>wrap</code></b> either \n          <code>True</code> or <code>False</code> and \n          <b><code>LatLon</code></b> and <b><code>Vector</code></b> both \n          <code>None</code>, an instance of <b><code>points</code></b>' \n          (sub-)class <code>intermediateTo</code> <i>fractional</i>.</p>\n          <p>Summarized as follows:</p>\n<pre class=\"py-doctest\">\n<span class=\"py-prompt\">&gt;&gt;&gt; </span> wrap  | LatLon | Vector | returned type/value\n<span class=\"py-output\">#   -------+--------+--------+--------------+------</span>\n<span class=\"py-output\">#          |        |        | LatLon2Tuple | favg</span>\n<span class=\"py-output\">#    None  |  None  |  None  |   or**       |</span>\n<span class=\"py-output\">#          |        |        | Vector3Tuple | favg</span>\n<span class=\"py-output\">#    None  | LatLon |  None  | LatLon       | favg</span>\n<span class=\"py-output\">#    None  |  None  | Vector | Vector       | favg</span>\n<span class=\"py-output\">#   -------+--------+--------+--------------+------</span>\n<span class=\"py-output\">#    True  |  None  |  None  | points'      | .iTo</span>\n<span class=\"py-output\">#    True  | LatLon |  None  | LatLon       | .iTo</span>\n<span class=\"py-output\">#    True  |  None  | Vector | Vector       | .iTo</span>\n<span class=\"py-output\">#   -------+--------+--------+--------------+------</span>\n<span class=\"py-output\">#    False |  None  |  None  | points'      | .iTo</span>\n<span class=\"py-output\">#    False | LatLon |  None  | LatLon       | .iTo</span>\n<span class=\"py-output\">#    False |  None  | Vector | Vector       | .iTo</span>\n<span class=\"py-output\"># _____</span>\n<span class=\"py-output\"># favg) averaged lat, lon or x, y, z values</span>\n<span class=\"py-output\"># .iTo) value from points[fi].intermediateTo</span>\n<span class=\"py-output\"># **) depends on base class of points[fi]</span></pre></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>IndexError</strong></code> - Fractional index <b><code>fi</code></b> invalid or \n        <b><code>points</code></b> not subscriptable or not closed.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>LatLon</code></b>, <b><code>Vector</code></b> or \n        <b><code>kwds</code></b> argument.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Class <a href=\"pygeodesy.units.FIx-class.html\" class=\"link\">FIx</a>\n        and method <a href=\"pygeodesy.units.FIx-class.html#fractional\" \n        class=\"link\">FIx.fractional</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"isclockwise\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">isclockwise</span>&nbsp;(<span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">adjust</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">True</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Determine the direction of a path or polygon.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>points</code></strong> - The path or polygon points (<code>LatLon</code>[]).</li>\n        <li><strong class=\"pname\"><code>adjust</code></strong> - Adjust the wrapped, unrolled longitudinal delta by the cosine of \n          the mean latitude (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll the \n          <b><code>points</code></b> (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>True</code> if <b><code>points</code></b> are clockwise, \n          <code>False</code> otherwise.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.PointsError-class.html\">PointsError</a></strong></code> - Insufficient number of <b><code>points</code></b></li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Some <b><code>points</code></b> are not <code>LatLon</code>.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - The <b><code>points</code></b> enclose a pole or zero area.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"isconvex\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">isconvex</span>&nbsp;(<span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">adjust</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Determine whether a polygon is convex.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>points</code></strong> - The polygon points (<code>LatLon</code>[]).</li>\n        <li><strong class=\"pname\"><code>adjust</code></strong> - Adjust the wrapped, unrolled longitudinal delta by the cosine of \n          the mean latitude (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll the \n          <b><code>points</code></b> (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>True</code> if <b><code>points</code></b> are convex, \n          <code>False</code> otherwise.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.CrossError-class.html\">CrossError</a></strong></code> - Some <b><code>points</code></b> are colinear.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.PointsError-class.html\">PointsError</a></strong></code> - Insufficient number of <b><code>points</code></b></li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Some <b><code>points</code></b> are not <code>LatLon</code>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"isconvex_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">isconvex_</span>&nbsp;(<span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">adjust</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Determine whether a polygon is convex <i>and clockwise</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>points</code></strong> - The polygon points (<code>LatLon</code>[]).</li>\n        <li><strong class=\"pname\"><code>adjust</code></strong> - Adjust the wrapped, unrolled longitudinal delta by the cosine of \n          the mean latitude (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll the \n          <b><code>points</code></b> (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>+1</code> if <b><code>points</code></b> are convex \n          clockwise, <code>-1</code> for convex counter-clockwise \n          <b><code>points</code></b>, <code>0</code> otherwise.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.CrossError-class.html\">CrossError</a></strong></code> - Some <b><code>points</code></b> are colinear.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.PointsError-class.html\">PointsError</a></strong></code> - Insufficient number of <b><code>points</code></b></li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Some <b><code>points</code></b> are not <code>LatLon</code>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"isenclosedBy\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">isenclosedBy</span>&nbsp;(<span class=\"sig-arg\">point</span>,\n        <span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Determine whether a point is enclosed by a polygon or composite.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>point</code></strong> - The point (<code>LatLon</code> or 2-tuple <code>(lat, \n          lon)</code>).</li>\n        <li><strong class=\"pname\"><code>points</code></strong> - The polygon points or clips (<code>LatLon</code>[], <a \n          href=\"pygeodesy.booleans.BooleanFHP-class.html\" \n          class=\"link\">BooleanFHP</a> or <a \n          href=\"pygeodesy.booleans.BooleanGH-class.html\" \n          class=\"link\">BooleanGH</a>).</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll the \n          <b><code>points</code></b> (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>True</code> if the <b><code>point</code></b> is inside the \n          polygon or composite, <code>False</code> otherwise.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.PointsError-class.html\">PointsError</a></strong></code> - Insufficient number of <b><code>points</code></b></li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Some <b><code>points</code></b> are not <code>LatLon</code>.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>point</code></b>, lat- or longitude.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Functions <a href=\"pygeodesy.points-module.html#isconvex\" \n        class=\"link\">pygeodesy.isconvex</a> and <a \n        href=\"pygeodesy.points-module.html#ispolar\" \n        class=\"link\">pygeodesy.ispolar</a> especially if the \n        <b><code>points</code></b> may enclose a pole or wrap around the \n        earth <i>longitudinally</i>, methods <a \n        href=\"pygeodesy.sphericalNvector.LatLon-class.html#isenclosedBy\" \n        class=\"link\">sphericalNvector.LatLon.isenclosedBy</a>, <a \n        href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html#isenclosedBy\"\n        class=\"link\">sphericalTrigonometry.LatLon.isenclosedBy</a> and <a \n        href=\"https://GitHub.com/NASA/MultiDop\" target=\"_top\">MultiDop \n        GeogContainPt</a> (<a \n        href=\"https://Journals.AMetSoc.org/doi/abs/10.1175/2009JTECHA1256.1\"\n        target=\"_top\">Shapiro et.al. 2009, JTECH</a> and <a \n        href=\"https://Journals.AMetSoc.org/doi/abs/10.1175/JTECH-D-11-00019.1\"\n        target=\"_top\">Potvin et al. 2012, JTECH</a>).\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"ispolar\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">ispolar</span>&nbsp;(<span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Check whether a polygon encloses a pole.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>points</code></strong> - The polygon points (<code>LatLon</code>[]).</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll the \n          <b><code>points</code></b> (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>True</code> if the polygon encloses a pole, \n          <code>False</code> otherwise.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.PointsError-class.html\">PointsError</a></strong></code> - Insufficient number of <b><code>points</code></b></li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Some <b><code>points</code></b> are not <code>LatLon</code> or \n        don't have <code>bearingTo2</code>, <code>initialBearingTo</code> \n        and <code>finalBearingTo</code> methods.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"luneOf\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">luneOf</span>&nbsp;(<span class=\"sig-arg\">lon1</span>,\n        <span class=\"sig-arg\">lon2</span>,\n        <span class=\"sig-arg\">closed</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">LatLon</span>=<span class=\"sig-default\">&lt;class 'pygeodesy.points.LatLon_'&gt;</span>,\n        <span class=\"sig-arg\">**LatLon_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Generate an ellipsoidal or spherical <a \n  href=\"https://WikiPedia.org/wiki/Spherical_lune\" \n  target=\"_top\">lune</a>-shaped path or polygon.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lon1</code></strong> - Left longitude (<code>degrees90</code>).</li>\n        <li><strong class=\"pname\"><code>lon2</code></strong> - Right longitude (<code>degrees90</code>).</li>\n        <li><strong class=\"pname\"><code>closed</code></strong> - Optionally, close the path (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>LatLon</code></strong> - Class to use (<a href=\"pygeodesy.points.LatLon_-class.html\" \n          class=\"link\">LatLon_</a>).</li>\n        <li><strong class=\"pname\"><code>LatLon_kwds</code></strong> - Optional, additional <b><code>LatLon</code></b> keyword \n          arguments.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A tuple of 4 or 5 <b><code>LatLon</code></b> instances outlining \n          the lune shape.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"https://www.MathWorks.com/help/map/ref/areaquad.html\" \n        target=\"_top\">Latitude-longitude quadrangle</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"nearestOn5\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">nearestOn5</span>&nbsp;(<span class=\"sig-arg\">point</span>,\n        <span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">closed</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">adjust</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">limit</span>=<span class=\"sig-default\">9</span>,\n        <span class=\"sig-arg\">**LatLon_and_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Locate the point on a path or polygon closest to a reference \n  point.</p>\n  <p>The closest point on each polygon edge is either the nearest of that \n  edge's end points or a point in between.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>point</code></strong> - The reference point (<code>LatLon</code>).</li>\n        <li><strong class=\"pname\"><code>points</code></strong> - The path or polygon points (<code>LatLon</code>[]).</li>\n        <li><strong class=\"pname\"><code>closed</code></strong> - Optionally, close the path or polygon (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll the \n          <b><code>points</code></b> (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>adjust</code></strong> - See function <a \n          href=\"pygeodesy.geohash-module.html#equirectangular4\" \n          class=\"link\">pygeodesy.equirectangular4</a> (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>limit</code></strong> - See function <a \n          href=\"pygeodesy.geohash-module.html#equirectangular4\" \n          class=\"link\">pygeodesy.equirectangular4</a> \n          (<code>degrees</code>), default <code>9 degrees</code> is about \n          <code>1,000 Kmeter</code> (for mean spherical earth radius <a \n          href=\"pygeodesy-module.html#R_KM\" class=\"link\">R_KM</a>).</li>\n        <li><strong class=\"pname\"><code>LatLon_and_kwds</code></strong> - Optional, <code><b>LatLon</b>=None</code> class to use for the \n          closest point and additional <b><code>LatLon</code></b> keyword \n          arguments, ignored if <code><b>LatLon</b> is None</code> or not \n          given.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.namedTuples.NearestOn3Tuple-class.html\" \n          class=\"link\">NearestOn3Tuple</a><code>(closest, distance, \n          angle)</code> with the {closest} point \n          (<b><code>LatLon</code></b>) or if <code><b>LatLon</b> is \n          None</code>, a NearestOn5Tuple<code>(lat, lon, distance, angle, \n          height)</code>. The <code>distance</code> is the <a \n          href=\"pygeodesy.formy-module.html#equirectangular\" \n          class=\"link\">pygeodesy.equirectangular</a> distance between the \n          <code>closest</code> and reference <b><code>point</code></b> in \n          <code>degrees</code>. The <code>angle</code> from the \n          <b><code>point</code></b> to the <code>closest</code> is in \n          compass <code>degrees</code>, like function <a \n          href=\"pygeodesy.formy-module.html#compassAngle\" \n          class=\"link\">pygeodesy.compassAngle</a>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.LimitError-class.html\">LimitError</a></strong></code> - Lat- and/or longitudinal delta exceeds the \n        <b><code>limit</code></b>, see function <a \n        href=\"pygeodesy.geohash-module.html#equirectangular4\" \n        class=\"link\">pygeodesy.equirectangular4</a>.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.PointsError-class.html\">PointsError</a></strong></code> - Insufficient number of <b><code>points</code></b></li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Some <b><code>points</code></b> are not <code>LatLon</code>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        Distances are <i>approximated</i> by function <a \n        href=\"pygeodesy.geohash-module.html#equirectangular4\" \n        class=\"link\">pygeodesy.equirectangular4</a>. For more accuracy use \n        one of the <code>LatLon.nearestOn6</code> methods.\n      </p>\n      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.utily-module.html#degrees2m\" \n        class=\"link\">pygeodesy.degrees2m</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"perimeterOf\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">perimeterOf</span>&nbsp;(<span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">closed</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">adjust</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">radius</span>=<span class=\"sig-default\">6371008.771415</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">True</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p><i>Approximate</i> the perimeter of a path, polygon. or composite.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>points</code></strong> - The path or polygon points or clips (<code>LatLon</code>[], <a \n          href=\"pygeodesy.booleans.BooleanFHP-class.html\" \n          class=\"link\">BooleanFHP</a> or <a \n          href=\"pygeodesy.booleans.BooleanGH-class.html\" \n          class=\"link\">BooleanGH</a>).</li>\n        <li><strong class=\"pname\"><code>closed</code></strong> - Optionally, close the path or polygon (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>adjust</code></strong> - Adjust the wrapped, unrolled longitudinal delta by the cosine of \n          the mean latitude (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>radius</code></strong> - Mean earth radius (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll the \n          <b><code>points</code></b> (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Approximate perimeter (<code>meter</code>, same units as \n          <b><code>radius</code></b>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.PointsError-class.html\">PointsError</a></strong></code> - Insufficient number of <b><code>points</code></b></li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Some <b><code>points</code></b> are not <code>LatLon</code>.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>radius</code></b> or \n        <code><b>closed</b>=False</code> with <code><b>points</b></code> a \n        composite.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        This perimeter is based on the <a \n        href=\"pygeodesy.geohash-module.html#equirectangular4\" \n        class=\"link\">pygeodesy.equirectangular4</a> distance approximation \n        and is ill-suited for regions exceeding several hundred Km or Miles\n        or with near-polar latitudes.\n      </p>\n      <p><strong>See Also:</strong>\n        Functions <a \n        href=\"pygeodesy.sphericalTrigonometry-module.html#perimeterOf\" \n        class=\"link\">sphericalTrigonometry.perimeterOf</a> and <a \n        href=\"pygeodesy.ellipsoidalKarney-module.html#perimeterOf\" \n        class=\"link\">ellipsoidalKarney.perimeterOf</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"quadOf\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">quadOf</span>&nbsp;(<span class=\"sig-arg\">latS</span>,\n        <span class=\"sig-arg\">lonW</span>,\n        <span class=\"sig-arg\">latN</span>,\n        <span class=\"sig-arg\">lonE</span>,\n        <span class=\"sig-arg\">closed</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">LatLon</span>=<span class=\"sig-default\">&lt;class 'pygeodesy.points.LatLon_'&gt;</span>,\n        <span class=\"sig-arg\">**LatLon_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Generate a quadrilateral path or polygon from two points.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>latS</code></strong> - Souther-nmost latitude (<code>degrees90</code>).</li>\n        <li><strong class=\"pname\"><code>lonW</code></strong> - Western-most longitude (<code>degrees180</code>).</li>\n        <li><strong class=\"pname\"><code>latN</code></strong> - Norther-nmost latitude (<code>degrees90</code>).</li>\n        <li><strong class=\"pname\"><code>lonE</code></strong> - Eastern-most longitude (<code>degrees180</code>).</li>\n        <li><strong class=\"pname\"><code>closed</code></strong> - Optionally, close the path (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>LatLon</code></strong> - Class to use (<a href=\"pygeodesy.points.LatLon_-class.html\" \n          class=\"link\">LatLon_</a>).</li>\n        <li><strong class=\"pname\"><code>LatLon_kwds</code></strong> - Optional, additional <b><code>LatLon</code></b> keyword \n          arguments.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Return a tuple of 4 or 5 <b><code>LatLon</code></b> instances \n          outlining the quadrilateral.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.points-module.html#boundsOf\" \n        class=\"link\">boundsOf</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.points.LatLon2psxy-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.points.LatLon2psxy</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.points-module.html\">Module&nbsp;points</a> ::\n        Class&nbsp;LatLon2psxy\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.points.LatLon2psxy-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class LatLon2psxy</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n       object --+            \n                |            \n    _abcoll.Sized --+        \n                    |        \n       object --+   |        \n                |   |        \n _abcoll.Iterable --+        \n                    |        \n       object --+   |        \n                |   |        \n_abcoll.Container --+        \n                    |        \n     _abcoll.Sequence --+    \n                        |    \n              <a href=\"pygeodesy.points._Basequence-class.html\">_Basequence</a> --+\n                            |\n                           <strong class=\"uidshort\">LatLon2psxy</strong>\n</pre>\n\n<hr />\n<p>Wrapper for <code>LatLon</code> points as &quot;on-the-fly&quot; \n  pseudo-xy coordinates.</p>\n\n<!-- ==================== NESTED CLASSES ==================== -->\n<a name=\"section-NestedClasses\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Nested Classes</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>_abcoll.Sized</code></b>:\n      <code><a href=\"abc.ABCMeta-class.html\">__metaclass__</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.points.LatLon2psxy-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">latlons</span>,\n        <span class=\"summary-sig-arg\">closed</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">radius</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">True</span>)</span><br />\n      Handle <code>LatLon</code> points as pseudo-xy coordinates.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.points.LatLon2psxy-class.html#__contains__\" class=\"summary-sig-name\">__contains__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">xy</span>)</span><br />\n      Check for a matching point.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.points.LatLon2psxy-class.html#__getitem__\" class=\"summary-sig-name\">__getitem__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">index</span>)</span><br />\n      Return the pseudo-xy or return a <a \n      href=\"pygeodesy.points.LatLon2psxy-class.html\" \n      class=\"link\">LatLon2psxy</a> slice.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.points.LatLon2psxy-class.html#__iter__\" class=\"summary-sig-name\">__iter__</a>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Yield all pseudo-xy's.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.points.LatLon2psxy-class.html#__len__\" class=\"summary-sig-name\">__len__</a>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Return the number of pseudo-xy's.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.points.LatLon2psxy-class.html#__repr__\" class=\"summary-sig-name\">__repr__</a>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Return a string representation.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.points.LatLon2psxy-class.html#__reversed__\" class=\"summary-sig-name\">__reversed__</a>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Yield all pseudo-xy's in reverse order.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.points.LatLon2psxy-class.html#__str__\" class=\"summary-sig-name\">__str__</a>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Return a string representation.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">integer</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.points.LatLon2psxy-class.html#count\" class=\"summary-sig-name\">count</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">xy</span>)</span><br />\n      Count the number of matching points.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.points.LatLon2psxy-class.html#find\" class=\"summary-sig-name\">find</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">xy</span>,\n        <span class=\"summary-sig-arg\">*start_end</span>)</span><br />\n      Find the first matching point.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.points.LatLon2psxy-class.html#findall\" class=\"summary-sig-name\">findall</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">xy</span>,\n        <span class=\"summary-sig-arg\">*start_end</span>)</span><br />\n      Yield indices of all matching points.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">integer</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.points.LatLon2psxy-class.html#index\" class=\"summary-sig-name\">index</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">xy</span>,\n        <span class=\"summary-sig-arg\">*start_end</span>)</span><br />\n      Find the first matching point.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.points.LatLon2psxy-class.html#point\" class=\"summary-sig-name\">point</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">ll</span>)</span><br />\n      Create a pseudo-xy.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.points.LatLon2psxy-class.html#rfind\" class=\"summary-sig-name\">rfind</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">xy</span>,\n        <span class=\"summary-sig-arg\">*start_end</span>)</span><br />\n      Find the last matching point.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.points._Basequence-class.html\">_Basequence</a></code></b>:\n      <code><a href=\"pygeodesy.points._Basequence-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.points._Basequence-class.html#dup\">dup</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__format__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS METHODS ==================== -->\n<a name=\"section-ClassMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Class Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>_abcoll.Sized</code></b>:\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS VARIABLES ==================== -->\n<a name=\"section-ClassVariables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Class Variables</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"__abstractmethods__\"></a><span class=\"summary-name\">__abstractmethods__</span> = <code title=\"frozenset([])\"><code class=\"variable-group\">frozenset([</code><code class=\"variable-group\">])</code></code>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.points.LatLon2psxy-class.html#isPoints2\" class=\"summary-name\">isPoints2</a><br />\n      Is this a LatLon2 wrapper/converter?\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.points._Basequence-class.html\">_Basequence</a></code></b>:\n      <code><a href=\"pygeodesy.points._Basequence-class.html#epsilon\">epsilon</a></code>,\n      <code><a href=\"pygeodesy.points._Basequence-class.html#isNumpy2\">isNumpy2</a></code>,\n      <code><a href=\"pygeodesy.points._Basequence-class.html#isTuple2\">isTuple2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">latlons</span>,\n        <span class=\"sig-arg\">closed</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">radius</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">True</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Handle <code>LatLon</code> points as pseudo-xy coordinates.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>latlons</code></strong> - Points <code>list</code>, <code>sequence</code>, \n          <code>set</code>, <code>tuple</code>, etc. \n          (<code>LatLon[]</code>).</li>\n        <li><strong class=\"pname\"><code>closed</code></strong> - Optionally, close the polygon (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>radius</code></strong> - Mean earth radius (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll the \n          <b><code>latlons</code></b> points (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.PointsError-class.html\">PointsError</a></strong></code> - Insufficient number of <b><code>latlons</code></b>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Some <b><code>points</code></b> are not <b><code>base</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        The <code>LatLon</code> latitude is considered the <i>pseudo-y</i> \n        and longitude the <i>pseudo-x</i> coordinate, likewise for <a \n        href=\"pygeodesy.namedTuples.LatLon2Tuple-class.html\" \n        class=\"link\">LatLon2Tuple</a>.  However, 2-tuples <code>(x, \n        y)</code> are considered as <i>(longitude, latitude)</i>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"__contains__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__contains__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">xy</span>)</span>\n    <br /><em class=\"fname\">(In operator)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Check for a matching point.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>xy</code></strong> - Point (<code>LatLon</code>, <a \n          href=\"pygeodesy.namedTuples.LatLon2Tuple-class.html\" \n          class=\"link\">LatLon2Tuple</a> or 2-tuple <code>(x, y)</code>) in \n          (<code>degrees</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>True</code> if <b><code>xy</code></b> is present, \n          <code>False</code> otherwise.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>xy</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        _abcoll.Container.__contains__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__getitem__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__getitem__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">index</span>)</span>\n    <br /><em class=\"fname\">(Indexing operator)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the pseudo-xy or return a <a \n  href=\"pygeodesy.points.LatLon2psxy-class.html\" \n  class=\"link\">LatLon2psxy</a> slice.</p>\n  <dl class=\"fields\">\n    <dt>Overrides:\n        _abcoll.Sequence.__getitem__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__iter__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__iter__</span>&nbsp;(<span class=\"sig-arg\">self</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Yield all pseudo-xy's.</p>\n  <dl class=\"fields\">\n    <dt>Overrides:\n        _abcoll.Iterable.__iter__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__len__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__len__</span>&nbsp;(<span class=\"sig-arg\">self</span>)</span>\n    <br /><em class=\"fname\">(Length operator)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the number of pseudo-xy's.</p>\n  <dl class=\"fields\">\n    <dt>Overrides:\n        _abcoll.Sized.__len__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__repr__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__repr__</span>&nbsp;(<span class=\"sig-arg\">self</span>)</span>\n    <br /><em class=\"fname\">(Representation operator)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return a string representation.</p>\n  <dl class=\"fields\">\n    <dt>Overrides:\n        object.__repr__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__reversed__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__reversed__</span>&nbsp;(<span class=\"sig-arg\">self</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Yield all pseudo-xy's in reverse order.</p>\n  <dl class=\"fields\">\n    <dt>Overrides:\n        _abcoll.Sequence.__reversed__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__str__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__str__</span>&nbsp;(<span class=\"sig-arg\">self</span>)</span>\n    <br /><em class=\"fname\">(Informal representation operator)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return a string representation.</p>\n  <dl class=\"fields\">\n    <dt>Overrides:\n        object.__str__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"count\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">count</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">xy</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Count the number of matching points.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>xy</code></strong> - Point (<code>LatLon</code>, <a \n          href=\"pygeodesy.namedTuples.LatLon2Tuple-class.html\" \n          class=\"link\">LatLon2Tuple</a> or 2-tuple <code>(x, y)</code>) in \n          (<code>degrees</code>.</li>\n    </ul></dd>\n    <dt>Returns: integer</dt>\n        <dd>Count (<code>int</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>xy</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        _abcoll.Sequence.count\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"find\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">find</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">xy</span>,\n        <span class=\"sig-arg\">*start_end</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Find the first matching point.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>xy</code></strong> - Point (<code>LatLon</code>, <a \n          href=\"pygeodesy.namedTuples.LatLon2Tuple-class.html\" \n          class=\"link\">LatLon2Tuple</a> or 2-tuple <code>(x, y)</code>) in \n          (<code>degrees</code>.</li>\n        <li><strong class=\"pname\"><code>start_end</code></strong> - Optional <code>[start[, end]]</code> index (<code>int</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Index or -1 if not found (<code>int</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>xy</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"findall\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">findall</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">xy</span>,\n        <span class=\"sig-arg\">*start_end</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Yield indices of all matching points.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>xy</code></strong> - Point (<code>LatLon</code>, <a \n          href=\"pygeodesy.namedTuples.LatLon2Tuple-class.html\" \n          class=\"link\">LatLon2Tuple</a> or 2-tuple <code>(x, y)</code>) in \n          (<code>degrees</code>.</li>\n        <li><strong class=\"pname\"><code>start_end</code></strong> - Optional <code>[start[, end]]</code> index (<code>int</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Indices (<code>iterator</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>xy</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"index\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">index</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">xy</span>,\n        <span class=\"sig-arg\">*start_end</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Find the first matching point.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>xy</code></strong> - Point (<code>LatLon</code>) or 2-tuple (x, y) in \n          (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>start_end</code></strong> - Optional <code>[start[, end]]</code> index (<code>int</code>).</li>\n    </ul></dd>\n    <dt>Returns: integer</dt>\n        <dd>Index (<code>int</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>IndexError</strong></code> - Point not found.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>xy</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        _abcoll.Sequence.index\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"point\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">point</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">ll</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Create a pseudo-xy.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>ll</code></strong> - Point (<code>LatLon</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>An <a href=\"pygeodesy.namedTuples.Point3Tuple-class.html\" \n          class=\"link\">Point3Tuple</a><code>(x, y, ll)</code>.</dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.points._Basequence-class.html#point\">_Basequence.point</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"rfind\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">rfind</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">xy</span>,\n        <span class=\"sig-arg\">*start_end</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Find the last matching point.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>xy</code></strong> - Point (<code>LatLon</code>, <a \n          href=\"pygeodesy.namedTuples.LatLon2Tuple-class.html\" \n          class=\"link\">LatLon2Tuple</a> or 2-tuple <code>(x, y)</code>) in \n          (<code>degrees</code>.</li>\n        <li><strong class=\"pname\"><code>start_end</code></strong> - Optional <code>[start[, end]]</code> index (<code>int</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Index or -1 if not found (<code>int</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>xy</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"isPoints2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">isPoints2</h3>\n  <p>Is this a LatLon2 wrapper/converter?</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">isPoints2(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Is this a LatLon2 wrapper/converter?\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.points.LatLon_-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.points.LatLon_</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.points-module.html\">Module&nbsp;points</a> ::\n        Class&nbsp;LatLon_\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.points.LatLon_-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class LatLon_</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n       object --+            \n                |            \n     <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+        \n                    |        \n     <a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+    \n                        |    \n       object --+       |    \n                |       |    \n     <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+   |    \n                    |   |    \n<a href=\"pygeodesy.ecefLocals._EcefLocal-class.html\">ecefLocals._EcefLocal</a> --+    \n                        |    \n    <a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">latlonBase.LatLonBase</a> --+\n                            |\n                           <strong class=\"uidshort\">LatLon_</strong>\n</pre>\n\n<dl><dt>Known Subclasses:</dt>\n<dd>\n      <ul class=\"subclass-list\">\n<li class=\"private\">clipy._SHlli</li>  </ul>\n</dd></dl>\n\n<hr />\n<p>Low-overhead <code>LatLon</code> class, mainly for <a \n  href=\"pygeodesy.points.Numpy2LatLon-class.html\" \n  class=\"link\">Numpy2LatLon</a> and <a \n  href=\"pygeodesy.points.Tuple2LatLon-class.html\" \n  class=\"link\">Tuple2LatLon</a>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.points.LatLon_-class.html#__eq__\" class=\"summary-sig-name\">__eq__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span></td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.points.LatLon_-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">latlonh</span>,\n        <span class=\"summary-sig-arg\">lon</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">height</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">datum</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      New <a href=\"pygeodesy.points.LatLon_-class.html\" \n      class=\"link\">LatLon_</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.points.LatLon_-class.html#__ne__\" class=\"summary-sig-name\">__ne__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span></td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.points.LatLon_-class.html#intermediateTo\" class=\"summary-sig-name\">intermediateTo</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>,\n        <span class=\"summary-sig-arg\">fraction</span>,\n        <span class=\"summary-sig-arg\">height</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Locate the point at a given fraction, <i>linearly</i> between (or \n      along) this and an other point.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.points.LatLon_-class.html#toRepr\" class=\"summary-sig-name\">toRepr</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">**kwds</span>)</span><br />\n      This <a href=\"pygeodesy.points.LatLon_-class.html\" \n      class=\"link\">LatLon_</a> as a string &quot;class(&lt;degrees&gt;, \n      ...)&quot;, ignoring keyword argument <code><b>std</b>=N/A</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.points.LatLon_-class.html#toStr\" class=\"summary-sig-name\">toStr</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">form</span>=<span class=\"summary-sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">d</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"summary-sig-arg\">joined</span>=<span class=\"summary-sig-default\">', '</span>,\n        <span class=\"summary-sig-arg\">**m_prec_sep_s_D_M_S</span>)</span><br />\n      Convert this point to a &quot;lat, lon[, height][, name][, ...]&quot;\n      string, formatted in the given <code><b>form</b>at</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">latlonBase.LatLonBase</a></code></b>:\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#PointsIter\">PointsIter</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#antipode\">antipode</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#bounds\">bounds</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#boundsOf\">boundsOf</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#chordTo\">chordTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#circin6\">circin6</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#circum3\">circum3</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#circum4_\">circum4_</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#compassAngle\">compassAngle</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#compassAngleTo\">compassAngleTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#cosineAndoyerLambertTo\">cosineAndoyerLambertTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#cosineForsytheAndoyerLambertTo\">cosineForsytheAndoyerLambertTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#cosineLawTo\">cosineLawTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#destinationXyz\">destinationXyz</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#equals\">equals</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#equals3\">equals3</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#equirectangularTo\">equirectangularTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#euclideanTo\">euclideanTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#flatLocalTo\">flatLocalTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#flatPolarTo\">flatPolarTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#hartzell\">hartzell</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#haversineTo\">haversineTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#height4\">height4</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#heightStr\">heightStr</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#hubenyTo\">hubenyTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#intersecant2\">intersecant2</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isantipode\">isantipode</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isantipodeTo\">isantipodeTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isequalTo\">isequalTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isequalTo3\">isequalTo3</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#latlon2\">latlon2</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#latlon2round\">latlon2round</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#latlon_\">latlon_</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#nearestOn6\">nearestOn6</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#nearestTo\">nearestTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#normal\">normal</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#philam2\">philam2</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#points\">points</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#points2\">points2</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#radii11\">radii11</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#rhumbAzimuthTo\">rhumbAzimuthTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#rhumbDestination\">rhumbDestination</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#rhumbDistanceTo\">rhumbDistanceTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#rhumbIntersecant2\">rhumbIntersecant2</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#rhumbLine\">rhumbLine</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#rhumbMidpointTo\">rhumbMidpointTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#thomasTo\">thomasTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#to2ab\">to2ab</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#to3llh\">to3llh</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#to3xyz\">to3xyz</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toCartesian\">toCartesian</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toDatum\">toDatum</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toEcef\">toEcef</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toNormal\">toNormal</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toNvector\">toNvector</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toVector\">toVector</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toVector3d\">toVector3d</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toWm\">toWm</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#vincentysTo\">vincentysTo</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#others\">others</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html\">ecefLocals._EcefLocal</a></code></b>:\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toAer\">toAer</a></code>,\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toEnu\">toEnu</a></code>,\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toLocal\">toLocal</a></code>,\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toLtp\">toLtp</a></code>,\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toNed\">toNed</a></code>,\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toXyz\">toXyz</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.points.LatLon_-class.html#datum\" class=\"summary-name\">datum</a><br />\n      Get the <code>datum</code> (<a \n      href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>) or \n      <code>None</code>.\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">latlonBase.LatLonBase</a></code></b>:\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#clipid\">clipid</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#ellipsoidalLatLon\">ellipsoidalLatLon</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#height\">height</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isEllipsoidal\">isEllipsoidal</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isSpherical\">isSpherical</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isnormal\">isnormal</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#lam\">lam</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#lat\">lat</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#latlon\">latlon</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#latlonheight\">latlonheight</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#lon\">lon</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#phi\">phi</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#philam\">philam</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#philamheight\">philamheight</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#sphericalLatLon\">sphericalLatLon</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#xyz\">xyz</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#xyz3\">xyz3</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#xyzh\">xyzh</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html\">ecefLocals._EcefLocal</a></code></b>:\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#Ecef\">Ecef</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__eq__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__eq__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>)</span>\n    <br /><em class=\"fname\">(Equality operator)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  \n  <dl class=\"fields\">\n    <dt>Overrides:\n        <a href=\"pygeodesy.latlonBase.LatLonBase-class.html#__eq__\">latlonBase.LatLonBase.__eq__</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">latlonh</span>,\n        <span class=\"sig-arg\">lon</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">height</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">datum</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.points.LatLon_-class.html\" \n  class=\"link\">LatLon_</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat_llh</code></strong> - Latitude (<code>degrees</code> or DMS <code>str</code> with N or \n          S suffix) or a previous <code>LatLon</code> instance provided \n          <code><b>lon</b>=None</code>.</li>\n        <li><strong class=\"pname\"><code>lon</code></strong> - Longitude (<code>degrees</code> or DMS <code>str</code> with E or\n          W suffix), required if <b><code>lat_llh</code></b> is \n          <code>degrees</code> or <code>str</code>.</li>\n        <li><strong class=\"pname\"><code>height</code></strong> - Optional height above (or below) the earth surface \n          (<code>meter</code>, conventionally).</li>\n        <li><strong class=\"pname\"><code>datum</code></strong> - Optional datum (<a href=\"pygeodesy.datums.Datum-class.html\" \n          class=\"link\">Datum</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a>, <a \n          href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a> or <i>scalar</i> radius) or \n          <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>wrap_name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>) and \n          optional keyword argument <code><b>wrap</b>=False</code>, if \n          <code>True</code>, wrap or <i>normalize</i> \n          <b><code>lat</code></b> and <b><code>lon</code></b> \n          (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>New instance (<code>LatLon</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.RangeError-class.html\">RangeError</a></strong></code> - A <b><code>lon</code></b> or <code>lat</code> value outside the \n        valid range and <a href=\"pygeodesy.errors-module.html#rangerrors\" \n        class=\"link\">rangerrors</a> set to <code>True</code>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - If <b><code>lat_llh</code></b> is not a <code>LatLon</code>.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.UnitError-class.html\">UnitError</a></strong></code> - Invalid <code>lat</code>, <b><code>lon</code></b> or \n        <b><code>height</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        The lat- and longitude values are taken <i>as-given, un-clipped and\n        un-validated</i>.\n      </p>\n      <p><strong>See Also:</strong>\n        <a href=\"pygeodesy.latlonBase.LatLonBase-class.html\" \n        class=\"link\">latlonBase.LatLonBase</a> for further details.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"__ne__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__ne__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  \n  <dl class=\"fields\">\n    <dt>Overrides:\n        <a href=\"pygeodesy.latlonBase.LatLonBase-class.html#__ne__\">latlonBase.LatLonBase.__ne__</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"intermediateTo\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">intermediateTo</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>,\n        <span class=\"sig-arg\">fraction</span>,\n        <span class=\"sig-arg\">height</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Locate the point at a given fraction, <i>linearly</i> between (or \n  along) this and an other point.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>other</code></strong> - The other point (<code>LatLon</code>).</li>\n        <li><strong class=\"pname\"><code>fraction</code></strong> - Fraction between both points (<code>float</code>, 0.0 for this \n          and 1.0 for the other point).</li>\n        <li><strong class=\"pname\"><code>height</code></strong> - Optional height (<code>meter</code>), overriding the intermediate\n          height.</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll the \n          <b><code>other</code></b> point (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Intermediate point (same <code>LatLon</code> class).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Incompatible <b><code>other</code></b> <code>type</code>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toRepr\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toRepr</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">**kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>This <a href=\"pygeodesy.points.LatLon_-class.html\" \n  class=\"link\">LatLon_</a> as a string &quot;class(&lt;degrees&gt;, \n  ...)&quot;, ignoring keyword argument <code><b>std</b>=N/A</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>kwds</code></strong> - Optional, <code>toStr</code> keyword arguments.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>toStr</code>() with keyword arguments (as \n          <code>str</code>).</dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.named._Named-class.html#toRepr\">named._Named.toRepr</a>\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"pygeodesy.named._NamedBase-class.html#toRepr\" \n        class=\"link\">latlonBase.LatLonBase.toRepr</a> for further details.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"toStr\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toStr</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">form</span>=<span class=\"sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">d</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"sig-arg\">joined</span>=<span class=\"sig-default\">', '</span>,\n        <span class=\"sig-arg\">**m_prec_sep_s_D_M_S</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert this point to a &quot;lat, lon[, height][, name][, ...]&quot; \n  string, formatted in the given <code><b>form</b>at</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>form</code></strong> - The lat-/longitude <code><b>form</b>at</code> to use \n          (<code>str</code>), see functions <a \n          href=\"pygeodesy.dms-module.html#latDMS\" \n          class=\"link\">pygeodesy.latDMS</a> or <a \n          href=\"pygeodesy.dms-module.html#lonDMS\" \n          class=\"link\">pygeodesy.lonDMS</a>.</li>\n        <li><strong class=\"pname\"><code>joined</code></strong> - Separator to join the lat-, longitude and height strings \n          (<code>str</code> or <code>None</code> or <code>NN</code> for \n          non-joined).</li>\n        <li><strong class=\"pname\"><code>m</code></strong> - Optional unit of the height (<code>str</code>), use \n          <code>None</code> to exclude height from the returned string.</li>\n        <li><strong class=\"pname\"><code>prec_sep_s_D_M_S</code></strong> - Optional <code><b>prec</b>ision</code>, \n          <code><b>sep</b>arator</code>, <b><code>s_D</code></b>, \n          <b><code>s_M</code></b>, <b><code>s_S</code></b> and \n          <b><code>s_DMS</code></b> keyword arguments, see function <a \n          href=\"pygeodesy.dms-module.html#toDMS\" \n          class=\"link\">pygeodesy.toDMS</a> for details.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>This point in the specified <code><b>form</b>at</code>, etc. \n          (<code>str</code> or a 2- or 3-tuple <code>(lat_str, lon_str[, \n          height_str])</code> if <b><code>joined</code></b> is \n          <code>NN</code> or <code>None</code>).</dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.named._Named-class.html#toStr\">named._Named.toStr</a>\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toStr\" \n        class=\"link\">latlonBase.LatLonBase.toStr</a> for further details.\n      </p>\n</div></td></tr></table>\n</div>\n<br />\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"datum\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">datum</h3>\n  <p>Get the <code>datum</code> (<a \n  href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>) or \n  <code>None</code>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">datum(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <code>datum</code> (<a href=\"pygeodesy.datums.Datum-class.html\" \nclass=\"link\">Datum</a>) or <code>None</code>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.points.Numpy2LatLon-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.points.Numpy2LatLon</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.points-module.html\">Module&nbsp;points</a> ::\n        Class&nbsp;Numpy2LatLon\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.points.Numpy2LatLon-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Numpy2LatLon</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n       object --+                \n                |                \n    _abcoll.Sized --+            \n                    |            \n       object --+   |            \n                |   |            \n _abcoll.Iterable --+            \n                    |            \n       object --+   |            \n                |   |            \n_abcoll.Container --+            \n                    |            \n     _abcoll.Sequence --+        \n                        |        \n              <a href=\"pygeodesy.points._Basequence-class.html\">_Basequence</a> --+    \n                            |    \n                <a href=\"pygeodesy.points._Array2LatLon-class.html\">_Array2LatLon</a> --+\n                                |\n                               <strong class=\"uidshort\">Numpy2LatLon</strong>\n</pre>\n\n<hr />\n<p>Wrapper for <code>NumPy</code> arrays as &quot;on-the-fly&quot; \n  <code>LatLon</code> points.</p>\n\n<!-- ==================== NESTED CLASSES ==================== -->\n<a name=\"section-NestedClasses\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Nested Classes</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>_abcoll.Sized</code></b>:\n      <code><a href=\"abc.ABCMeta-class.html\">__metaclass__</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.points.Numpy2LatLon-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">array</span>,\n        <span class=\"summary-sig-arg\">ilat</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">ilon</span>=<span class=\"summary-sig-default\">1</span>,\n        <span class=\"summary-sig-arg\">LatLon</span>=<span class=\"summary-sig-default\">None</span>)</span><br />\n      Handle a <code>NumPy</code> array as a sequence of \n      <code>LatLon</code> points.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.points._Array2LatLon-class.html\">_Array2LatLon</a></code></b>:\n      <code><a href=\"pygeodesy.points._Array2LatLon-class.html#__contains__\">__contains__</a></code>,\n      <code><a href=\"pygeodesy.points._Array2LatLon-class.html#__getitem__\">__getitem__</a></code>,\n      <code><a href=\"pygeodesy.points._Array2LatLon-class.html#__iter__\">__iter__</a></code>,\n      <code><a href=\"pygeodesy.points._Array2LatLon-class.html#__len__\">__len__</a></code>,\n      <code><a href=\"pygeodesy.points._Array2LatLon-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.points._Array2LatLon-class.html#__reversed__\">__reversed__</a></code>,\n      <code><a href=\"pygeodesy.points._Array2LatLon-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.points._Array2LatLon-class.html#count\">count</a></code>,\n      <code><a href=\"pygeodesy.points._Array2LatLon-class.html#find\">find</a></code>,\n      <code><a href=\"pygeodesy.points._Array2LatLon-class.html#findall\">findall</a></code>,\n      <code><a href=\"pygeodesy.points._Array2LatLon-class.html#index\">index</a></code>,\n      <code><a href=\"pygeodesy.points._Array2LatLon-class.html#point\">point</a></code>,\n      <code><a href=\"pygeodesy.points._Array2LatLon-class.html#rfind\">rfind</a></code>,\n      <code><a href=\"pygeodesy.points._Array2LatLon-class.html#subset\">subset</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.points._Basequence-class.html\">_Basequence</a></code></b>:\n      <code><a href=\"pygeodesy.points._Basequence-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.points._Basequence-class.html#dup\">dup</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__format__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS METHODS ==================== -->\n<a name=\"section-ClassMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Class Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>_abcoll.Sized</code></b>:\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS VARIABLES ==================== -->\n<a name=\"section-ClassVariables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Class Variables</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.points._Array2LatLon-class.html\">_Array2LatLon</a></code></b>:\n      <code><a href=\"pygeodesy.points._Array2LatLon-class.html#__abstractmethods__\">__abstractmethods__</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.points.Numpy2LatLon-class.html#isNumpy2\" class=\"summary-name\">isNumpy2</a><br />\n      Is this a Numpy2 wrapper?\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.points._Array2LatLon-class.html\">_Array2LatLon</a></code></b>:\n      <code><a href=\"pygeodesy.points._Array2LatLon-class.html#ilat\">ilat</a></code>,\n      <code><a href=\"pygeodesy.points._Array2LatLon-class.html#ilon\">ilon</a></code>,\n      <code><a href=\"pygeodesy.points._Array2LatLon-class.html#shape\">shape</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.points._Basequence-class.html\">_Basequence</a></code></b>:\n      <code><a href=\"pygeodesy.points._Basequence-class.html#epsilon\">epsilon</a></code>,\n      <code><a href=\"pygeodesy.points._Basequence-class.html#isPoints2\">isPoints2</a></code>,\n      <code><a href=\"pygeodesy.points._Basequence-class.html#isTuple2\">isTuple2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">array</span>,\n        <span class=\"sig-arg\">ilat</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">ilon</span>=<span class=\"sig-default\">1</span>,\n        <span class=\"sig-arg\">LatLon</span>=<span class=\"sig-default\">None</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Handle a <code>NumPy</code> array as a sequence of <code>LatLon</code>\n  points.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>array</code></strong> - <code>NumPy</code> array (<code>numpy.array</code>).</li>\n        <li><strong class=\"pname\"><code>ilat</code></strong> - Optional index of the latitudes column (<code>int</code>).</li>\n        <li><strong class=\"pname\"><code>ilon</code></strong> - Optional index of the longitudes column (<code>int</code>).</li>\n        <li><strong class=\"pname\"><code>LatLon</code></strong> - Optional <code>LatLon</code> class to use (<a \n          href=\"pygeodesy.points.LatLon_-class.html\" \n          class=\"link\">LatLon_</a>).</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>IndexError</strong></code> - If <b><code>array.shape</code></b> is not (1+, 2+).</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - If <b><code>array</code></b> is not a <code>NumPy</code> array or \n        <code>LatLon</code> is not a class with <code>lat</code> and \n        <code>lon</code> attributes.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - If the <b><code>ilat</code></b> and/or <b><code>ilon</code></b> \n        values are the same or out of range.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>Example:</strong>\n        <pre class=\"py-doctest\">\n<span class=\"py-prompt\">&gt;&gt;&gt; </span>type(array)\n<span class=\"py-output\">&lt;type 'numpy.ndarray'&gt;  # &lt;class ...&gt; in Python 3+</span>\n<span class=\"py-output\"></span><span class=\"py-prompt\">&gt;&gt;&gt; </span>points = Numpy2LatLon(array, lat=0, lon=1)\n<span class=\"py-prompt\">&gt;&gt;&gt; </span>simply = simplifyRDP(points, ...)\n<span class=\"py-prompt\">&gt;&gt;&gt; </span>type(simply)\n<span class=\"py-output\">&lt;type 'numpy.ndarray'&gt;  # &lt;class ...&gt; in Python 3+</span>\n<span class=\"py-output\"></span><span class=\"py-prompt\">&gt;&gt;&gt; </span>sliced = points[1:-1]\n<span class=\"py-prompt\">&gt;&gt;&gt; </span>type(sliced)\n<span class=\"py-output\">&lt;class '...Numpy2LatLon'&gt;</span></pre>\n      </p>\n</div></td></tr></table>\n</div>\n<br />\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"isNumpy2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">isNumpy2</h3>\n  <p>Is this a Numpy2 wrapper?</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">isNumpy2(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Is this a Numpy2 wrapper?\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.points.Shape2Tuple-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.points.Shape2Tuple</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.points-module.html\">Module&nbsp;points</a> ::\n        Class&nbsp;Shape2Tuple\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.points.Shape2Tuple-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Shape2Tuple</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n   object --+        \n            |        \n        tuple --+    \n                |    \n   object --+   |    \n            |   |    \n <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n                |    \n<a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a> --+\n                    |\n                   <strong class=\"uidshort\">Shape2Tuple</strong>\n</pre>\n\n<hr />\n<p>2-Tuple <code>(nrows, ncols)</code>, the number of rows and columns, \n  both <code>int</code>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__delattr__\">__delattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__getattr__\">__getattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__setattr__\">__setattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#items\">items</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iteritems\">iteritems</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iterunits\">iterunits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#reUnit\">reUnit</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toUnits\">toUnits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>tuple</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__eq__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__iter__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__rmul__</code>,\n      <code>count</code>,\n      <code>index</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__new__\">__new__</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.points.Tuple2LatLon-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.points.Tuple2LatLon</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.points-module.html\">Module&nbsp;points</a> ::\n        Class&nbsp;Tuple2LatLon\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.points.Tuple2LatLon-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Tuple2LatLon</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n       object --+                \n                |                \n    _abcoll.Sized --+            \n                    |            \n       object --+   |            \n                |   |            \n _abcoll.Iterable --+            \n                    |            \n       object --+   |            \n                |   |            \n_abcoll.Container --+            \n                    |            \n     _abcoll.Sequence --+        \n                        |        \n              <a href=\"pygeodesy.points._Basequence-class.html\">_Basequence</a> --+    \n                            |    \n                <a href=\"pygeodesy.points._Array2LatLon-class.html\">_Array2LatLon</a> --+\n                                |\n                               <strong class=\"uidshort\">Tuple2LatLon</strong>\n</pre>\n\n<hr />\n<p>Wrapper for tuple sequences as &quot;on-the-fly&quot; \n  <code>LatLon</code> points.</p>\n\n<!-- ==================== NESTED CLASSES ==================== -->\n<a name=\"section-NestedClasses\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Nested Classes</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>_abcoll.Sized</code></b>:\n      <code><a href=\"abc.ABCMeta-class.html\">__metaclass__</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.points.Tuple2LatLon-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">tuples</span>,\n        <span class=\"summary-sig-arg\">ilat</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">ilon</span>=<span class=\"summary-sig-default\">1</span>,\n        <span class=\"summary-sig-arg\">LatLon</span>=<span class=\"summary-sig-default\">None</span>)</span><br />\n      Handle a list of tuples, each containing a lat- and longitude and \n      perhaps other values as a sequence of <code>LatLon</code> points.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.points._Array2LatLon-class.html\">_Array2LatLon</a></code></b>:\n      <code><a href=\"pygeodesy.points._Array2LatLon-class.html#__contains__\">__contains__</a></code>,\n      <code><a href=\"pygeodesy.points._Array2LatLon-class.html#__getitem__\">__getitem__</a></code>,\n      <code><a href=\"pygeodesy.points._Array2LatLon-class.html#__iter__\">__iter__</a></code>,\n      <code><a href=\"pygeodesy.points._Array2LatLon-class.html#__len__\">__len__</a></code>,\n      <code><a href=\"pygeodesy.points._Array2LatLon-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.points._Array2LatLon-class.html#__reversed__\">__reversed__</a></code>,\n      <code><a href=\"pygeodesy.points._Array2LatLon-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.points._Array2LatLon-class.html#count\">count</a></code>,\n      <code><a href=\"pygeodesy.points._Array2LatLon-class.html#find\">find</a></code>,\n      <code><a href=\"pygeodesy.points._Array2LatLon-class.html#findall\">findall</a></code>,\n      <code><a href=\"pygeodesy.points._Array2LatLon-class.html#index\">index</a></code>,\n      <code><a href=\"pygeodesy.points._Array2LatLon-class.html#point\">point</a></code>,\n      <code><a href=\"pygeodesy.points._Array2LatLon-class.html#rfind\">rfind</a></code>,\n      <code><a href=\"pygeodesy.points._Array2LatLon-class.html#subset\">subset</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.points._Basequence-class.html\">_Basequence</a></code></b>:\n      <code><a href=\"pygeodesy.points._Basequence-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.points._Basequence-class.html#dup\">dup</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__format__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS METHODS ==================== -->\n<a name=\"section-ClassMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Class Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>_abcoll.Sized</code></b>:\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS VARIABLES ==================== -->\n<a name=\"section-ClassVariables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Class Variables</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.points._Array2LatLon-class.html\">_Array2LatLon</a></code></b>:\n      <code><a href=\"pygeodesy.points._Array2LatLon-class.html#__abstractmethods__\">__abstractmethods__</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.points.Tuple2LatLon-class.html#isTuple2\" class=\"summary-name\">isTuple2</a><br />\n      Is this a Tuple2 wrapper?\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.points._Array2LatLon-class.html\">_Array2LatLon</a></code></b>:\n      <code><a href=\"pygeodesy.points._Array2LatLon-class.html#ilat\">ilat</a></code>,\n      <code><a href=\"pygeodesy.points._Array2LatLon-class.html#ilon\">ilon</a></code>,\n      <code><a href=\"pygeodesy.points._Array2LatLon-class.html#shape\">shape</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.points._Basequence-class.html\">_Basequence</a></code></b>:\n      <code><a href=\"pygeodesy.points._Basequence-class.html#epsilon\">epsilon</a></code>,\n      <code><a href=\"pygeodesy.points._Basequence-class.html#isNumpy2\">isNumpy2</a></code>,\n      <code><a href=\"pygeodesy.points._Basequence-class.html#isPoints2\">isPoints2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">tuples</span>,\n        <span class=\"sig-arg\">ilat</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">ilon</span>=<span class=\"sig-default\">1</span>,\n        <span class=\"sig-arg\">LatLon</span>=<span class=\"sig-default\">None</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Handle a list of tuples, each containing a lat- and longitude and \n  perhaps other values as a sequence of <code>LatLon</code> points.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>tuples</code></strong> - The <code>list</code>, <code>tuple</code> or \n          <code>sequence</code> of tuples (<code>tuple</code>[]).</li>\n        <li><strong class=\"pname\"><code>ilat</code></strong> - Optional index of the latitudes value (<code>int</code>).</li>\n        <li><strong class=\"pname\"><code>ilon</code></strong> - Optional index of the longitudes value (<code>int</code>).</li>\n        <li><strong class=\"pname\"><code>LatLon</code></strong> - Optional <code>LatLon</code> class to use (<a \n          href=\"pygeodesy.points.LatLon_-class.html\" \n          class=\"link\">LatLon_</a>).</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>IndexError</strong></code> - If <code>(len(<b>tuples</b>), min(len(t) for t in \n        <b>tuples</b>))</code> is not (1+, 2+).</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - If <b><code>tuples</code></b> is not a <code>list</code>, \n        <code>tuple</code> or <code>sequence</code> or if \n        <b><code>LatLon</code></b> is not a <code>LatLon</code> with \n        <code>lat</code>, <code>lon</code> and <code>name</code> \n        attributes.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - If the <b><code>ilat</code></b> and/or <b><code>ilon</code></b> \n        values are the same or out of range.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>Example:</strong>\n        <pre class=\"py-doctest\">\n<span class=\"py-prompt\">&gt;&gt;&gt; </span>tuples = [(0, 1), (2, 3), (4, 5)]\n<span class=\"py-prompt\">&gt;&gt;&gt; </span>type(tuples)\n<span class=\"py-output\">&lt;type 'list'&gt;  # &lt;class ...&gt; in Python 3+</span>\n<span class=\"py-output\"></span><span class=\"py-prompt\">&gt;&gt;&gt; </span>points = Tuple2LatLon(tuples, lat=0, lon=1)\n<span class=\"py-prompt\">&gt;&gt;&gt; </span>simply = simplifyRW(points, 0.5, ...)\n<span class=\"py-prompt\">&gt;&gt;&gt; </span>type(simply)\n<span class=\"py-output\">&lt;type 'list'&gt;  # &lt;class ...&gt; in Python 3+</span>\n<span class=\"py-output\"></span><span class=\"py-prompt\">&gt;&gt;&gt; </span>simply\n<span class=\"py-output\">[(0, 1), (4, 5)]</span>\n<span class=\"py-output\"></span><span class=\"py-prompt\">&gt;&gt;&gt; </span>sliced = points[1:-1]\n<span class=\"py-prompt\">&gt;&gt;&gt; </span>type(sliced)\n<span class=\"py-output\">&lt;class '...Tuple2LatLon'&gt;</span>\n<span class=\"py-output\"></span><span class=\"py-prompt\">&gt;&gt;&gt; </span>sliced\n...Tuple2LatLon([(2, 3), ...][1], ilat=0, ilon=1)</pre>\n<pre class=\"py-doctest\">\n<span class=\"py-prompt\">&gt;&gt;&gt; </span>closest, _ = nearestOn2(LatLon_(2, 1), points, adjust=False)\n<span class=\"py-prompt\">&gt;&gt;&gt; </span>closest\n<span class=\"py-output\">LatLon_(lat=1.0, lon=2.0)</span></pre>\n<pre class=\"py-doctest\">\n<span class=\"py-prompt\">&gt;&gt;&gt; </span>closest, _ = nearestOn2(LatLon_(3, 2), points)\n<span class=\"py-prompt\">&gt;&gt;&gt; </span>closest\n<span class=\"py-output\">LatLon_(lat=2.001162, lon=3.001162)</span></pre>\n      </p>\n</div></td></tr></table>\n</div>\n<br />\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"isTuple2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">isTuple2</h3>\n  <p>Is this a Tuple2 wrapper?</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">isTuple2(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Is this a Tuple2 wrapper?\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.points._Array2LatLon-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.points._Array2LatLon</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.points-module.html\">Module&nbsp;points</a> ::\n        Class&nbsp;_Array2LatLon\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.points._Array2LatLon-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class _Array2LatLon</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n       object --+            \n                |            \n    _abcoll.Sized --+        \n                    |        \n       object --+   |        \n                |   |        \n _abcoll.Iterable --+        \n                    |        \n       object --+   |        \n                |   |        \n_abcoll.Container --+        \n                    |        \n     _abcoll.Sequence --+    \n                        |    \n              <a href=\"pygeodesy.points._Basequence-class.html\">_Basequence</a> --+\n                            |\n                           <strong class=\"uidshort\">_Array2LatLon</strong>\n</pre>\n\n<dl><dt>Known Subclasses:</dt>\n<dd>\n      <ul class=\"subclass-list\">\n<li><a href=\"pygeodesy.points.Numpy2LatLon-class.html\">Numpy2LatLon</a></li><li>, <a href=\"pygeodesy.points.Tuple2LatLon-class.html\">Tuple2LatLon</a></li>  </ul>\n</dd></dl>\n\n<hr />\n<p>(INTERNAL) Base class for Numpy2LatLon or Tuple2LatLon.</p>\n\n<!-- ==================== NESTED CLASSES ==================== -->\n<a name=\"section-NestedClasses\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Nested Classes</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>_abcoll.Sized</code></b>:\n      <code><a href=\"abc.ABCMeta-class.html\">__metaclass__</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.points._Array2LatLon-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">array</span>,\n        <span class=\"summary-sig-arg\">ilat</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">ilon</span>=<span class=\"summary-sig-default\">1</span>,\n        <span class=\"summary-sig-arg\">LatLon</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">shape</span>=<span class=\"summary-sig-default\"><code class=\"variable-group\">(</code><code class=\"variable-group\">)</code></span>)</span><br />\n      Handle a <code>NumPy</code> or <code>Tuple</code> array as a sequence\n      of <code>LatLon</code> points.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.points._Array2LatLon-class.html#__contains__\" class=\"summary-sig-name\">__contains__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">latlon</span>)</span><br />\n      Check for a specific lat-/longitude.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.points._Array2LatLon-class.html#__getitem__\" class=\"summary-sig-name\">__getitem__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">index</span>)</span><br />\n      Return row[index] as <code>LatLon</code> or return a <a \n      href=\"pygeodesy.points.Numpy2LatLon-class.html\" \n      class=\"link\">Numpy2LatLon</a> slice.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.points._Array2LatLon-class.html#__iter__\" class=\"summary-sig-name\">__iter__</a>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Yield rows as <code>LatLon</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.points._Array2LatLon-class.html#__len__\" class=\"summary-sig-name\">__len__</a>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Return the number of rows.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.points._Array2LatLon-class.html#__repr__\" class=\"summary-sig-name\">__repr__</a>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Return a string representation.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.points._Array2LatLon-class.html#__reversed__\" class=\"summary-sig-name\">__reversed__</a>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Yield rows as <code>LatLon</code> in reverse order.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.points._Array2LatLon-class.html#__str__\" class=\"summary-sig-name\">__str__</a>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Return a string representation.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">integer</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.points._Array2LatLon-class.html#count\" class=\"summary-sig-name\">count</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">latlon</span>)</span><br />\n      Count the number of rows with a specific lat-/longitude.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.points._Array2LatLon-class.html#find\" class=\"summary-sig-name\">find</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">latlon</span>,\n        <span class=\"summary-sig-arg\">*start_end</span>)</span><br />\n      Find the first row with a specific lat-/longitude.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.points._Array2LatLon-class.html#findall\" class=\"summary-sig-name\">findall</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">latlon</span>,\n        <span class=\"summary-sig-arg\">*start_end</span>)</span><br />\n      Yield indices of all rows with a specific lat-/longitude.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">integer</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.points._Array2LatLon-class.html#index\" class=\"summary-sig-name\">index</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">latlon</span>,\n        <span class=\"summary-sig-arg\">*start_end</span>)</span><br />\n      Find index of the first row with a specific lat-/longitude.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.points._Array2LatLon-class.html#point\" class=\"summary-sig-name\">point</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">row</span>)</span><br />\n      Instantiate a point <code>LatLon</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.points._Array2LatLon-class.html#rfind\" class=\"summary-sig-name\">rfind</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">latlon</span>,\n        <span class=\"summary-sig-arg\">*start_end</span>)</span><br />\n      Find the last row with a specific lat-/longitude.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.points._Array2LatLon-class.html#subset\" class=\"summary-sig-name\">subset</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">indices</span>)</span><br />\n      Return a subset of the <code>NumPy</code> array.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.points._Basequence-class.html\">_Basequence</a></code></b>:\n      <code><a href=\"pygeodesy.points._Basequence-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.points._Basequence-class.html#dup\">dup</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__format__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS METHODS ==================== -->\n<a name=\"section-ClassMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Class Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>_abcoll.Sized</code></b>:\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS VARIABLES ==================== -->\n<a name=\"section-ClassVariables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Class Variables</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"__abstractmethods__\"></a><span class=\"summary-name\">__abstractmethods__</span> = <code title=\"frozenset([])\"><code class=\"variable-group\">frozenset([</code><code class=\"variable-group\">])</code></code>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.points._Array2LatLon-class.html#ilat\" class=\"summary-name\">ilat</a><br />\n      Get the latitudes column index (<code>int</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.points._Array2LatLon-class.html#ilon\" class=\"summary-name\">ilon</a><br />\n      Get the longitudes column index (<code>int</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.points._Array2LatLon-class.html#shape\" class=\"summary-name\">shape</a><br />\n      Get the shape of the <code>NumPy</code> array or the \n      <code>Tuples</code> as <a \n      href=\"pygeodesy.points.Shape2Tuple-class.html\" \n      class=\"link\">Shape2Tuple</a><code>(nrows, ncols)</code>.\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.points._Basequence-class.html\">_Basequence</a></code></b>:\n      <code><a href=\"pygeodesy.points._Basequence-class.html#epsilon\">epsilon</a></code>,\n      <code><a href=\"pygeodesy.points._Basequence-class.html#isNumpy2\">isNumpy2</a></code>,\n      <code><a href=\"pygeodesy.points._Basequence-class.html#isPoints2\">isPoints2</a></code>,\n      <code><a href=\"pygeodesy.points._Basequence-class.html#isTuple2\">isTuple2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">array</span>,\n        <span class=\"sig-arg\">ilat</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">ilon</span>=<span class=\"sig-default\">1</span>,\n        <span class=\"sig-arg\">LatLon</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">shape</span>=<span class=\"sig-default\"><code class=\"variable-group\">(</code><code class=\"variable-group\">)</code></span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Handle a <code>NumPy</code> or <code>Tuple</code> array as a sequence \n  of <code>LatLon</code> points.</p>\n  <dl class=\"fields\">\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__contains__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__contains__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">latlon</span>)</span>\n    <br /><em class=\"fname\">(In operator)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Check for a specific lat-/longitude.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>latlon</code></strong> - Point (<code>LatLon</code>, <a \n          href=\"pygeodesy.namedTuples.LatLon2Tuple-class.html\" \n          class=\"link\">LatLon2Tuple</a> or 2-tuple <code>(lat, \n          lon)</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>True</code> if <b><code>latlon</code></b> is present, \n          <code>False</code> otherwise.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>latlon</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        _abcoll.Container.__contains__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__getitem__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__getitem__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">index</span>)</span>\n    <br /><em class=\"fname\">(Indexing operator)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return row[index] as <code>LatLon</code> or return a <a \n  href=\"pygeodesy.points.Numpy2LatLon-class.html\" \n  class=\"link\">Numpy2LatLon</a> slice.</p>\n  <dl class=\"fields\">\n    <dt>Overrides:\n        _abcoll.Sequence.__getitem__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__iter__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__iter__</span>&nbsp;(<span class=\"sig-arg\">self</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Yield rows as <code>LatLon</code>.</p>\n  <dl class=\"fields\">\n    <dt>Overrides:\n        _abcoll.Iterable.__iter__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__len__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__len__</span>&nbsp;(<span class=\"sig-arg\">self</span>)</span>\n    <br /><em class=\"fname\">(Length operator)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the number of rows.</p>\n  <dl class=\"fields\">\n    <dt>Overrides:\n        _abcoll.Sized.__len__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__repr__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__repr__</span>&nbsp;(<span class=\"sig-arg\">self</span>)</span>\n    <br /><em class=\"fname\">(Representation operator)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return a string representation.</p>\n  <dl class=\"fields\">\n    <dt>Overrides:\n        object.__repr__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__reversed__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__reversed__</span>&nbsp;(<span class=\"sig-arg\">self</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Yield rows as <code>LatLon</code> in reverse order.</p>\n  <dl class=\"fields\">\n    <dt>Overrides:\n        _abcoll.Sequence.__reversed__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__str__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__str__</span>&nbsp;(<span class=\"sig-arg\">self</span>)</span>\n    <br /><em class=\"fname\">(Informal representation operator)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return a string representation.</p>\n  <dl class=\"fields\">\n    <dt>Overrides:\n        object.__str__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"count\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">count</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">latlon</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Count the number of rows with a specific lat-/longitude.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>latlon</code></strong> - Point (<code>LatLon</code>, <a \n          href=\"pygeodesy.namedTuples.LatLon2Tuple-class.html\" \n          class=\"link\">LatLon2Tuple</a> or 2-tuple <code>(lat, \n          lon)</code>).</li>\n    </ul></dd>\n    <dt>Returns: integer</dt>\n        <dd>Count (<code>int</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>latlon</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        _abcoll.Sequence.count\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"find\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">find</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">latlon</span>,\n        <span class=\"sig-arg\">*start_end</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Find the first row with a specific lat-/longitude.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>latlon</code></strong> - Point (<code>LatLon</code>) or 2-tuple (lat, lon).</li>\n        <li><strong class=\"pname\"><code>start_end</code></strong> - Optional <code>[start[, end]]</code> index (integers).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Index or -1 if not found (<code>int</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>latlon</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"findall\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">findall</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">latlon</span>,\n        <span class=\"sig-arg\">*start_end</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Yield indices of all rows with a specific lat-/longitude.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>latlon</code></strong> - Point (<code>LatLon</code>, <a \n          href=\"pygeodesy.namedTuples.LatLon2Tuple-class.html\" \n          class=\"link\">LatLon2Tuple</a> or 2-tuple <code>(lat, \n          lon)</code>).</li>\n        <li><strong class=\"pname\"><code>start_end</code></strong> - Optional <code>[start[, end]]</code> index (<code>int</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Indices (<code>iterable</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>latlon</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"index\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">index</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">latlon</span>,\n        <span class=\"sig-arg\">*start_end</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Find index of the first row with a specific lat-/longitude.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>latlon</code></strong> - Point (<code>LatLon</code>, <a \n          href=\"pygeodesy.namedTuples.LatLon2Tuple-class.html\" \n          class=\"link\">LatLon2Tuple</a> or 2-tuple <code>(lat, \n          lon)</code>).</li>\n        <li><strong class=\"pname\"><code>start_end</code></strong> - Optional <code>[start[, end]]</code> index (<code>int</code>).</li>\n    </ul></dd>\n    <dt>Returns: integer</dt>\n        <dd>Index (<code>int</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>IndexError</strong></code> - Point not found.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>latlon</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        _abcoll.Sequence.index\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"point\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">point</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">row</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Instantiate a point <code>LatLon</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>row</code></strong> - Array row (numpy.array).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Point (<code>LatLon</code>).</dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.points._Basequence-class.html#point\">_Basequence.point</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"rfind\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">rfind</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">latlon</span>,\n        <span class=\"sig-arg\">*start_end</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Find the last row with a specific lat-/longitude.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>latlon</code></strong> - Point (<code>LatLon</code>, <a \n          href=\"pygeodesy.namedTuples.LatLon2Tuple-class.html\" \n          class=\"link\">LatLon2Tuple</a> or 2-tuple <code>(lat, \n          lon)</code>).</li>\n        <li><strong class=\"pname\"><code>start_end</code></strong> - Optional <code>[start[, end]]</code> index (<code>int</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Index or -1 if not found (<code>int</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>latlon</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        Keyword order, first stop, then start.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"subset\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">subset</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">indices</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return a subset of the <code>NumPy</code> array.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>indices</code></strong> - Row indices (<code>range</code> or <code>int</code>[]).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Sub-array (<code>numpy.array</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>IndexError</strong></code> - Out-of-range <b><code>indices</code></b> value.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - If <b><code>indices</code></b> is not a <code>range</code> nor an \n        <code>int</code>[].</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        A <code>subset</code> is different from a <code>slice</code> in 2 \n        ways: (a) the <code>subset</code> is typically specified as a list \n        of (un-)ordered indices and (b) the <code>subset</code> allocates a\n        new, separate <code>NumPy</code> array while a <code>slice</code> \n        is just an other <code>view</code> of the original \n        <code>NumPy</code> array.\n      </p>\n</div></td></tr></table>\n</div>\n<br />\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"ilat\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">ilat</h3>\n  <p>Get the latitudes column index (<code>int</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">ilat(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the latitudes column index (<code>int</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"ilon\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">ilon</h3>\n  <p>Get the longitudes column index (<code>int</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">ilon(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the longitudes column index (<code>int</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"shape\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">shape</h3>\n  <p>Get the shape of the <code>NumPy</code> array or the \n  <code>Tuples</code> as <a href=\"pygeodesy.points.Shape2Tuple-class.html\" \n  class=\"link\">Shape2Tuple</a><code>(nrows, ncols)</code>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">shape(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the shape of the <code>NumPy</code> array or the <code>Tuples</code> as\n<a href=\"pygeodesy.points.Shape2Tuple-class.html\" \nclass=\"link\">Shape2Tuple</a><code>(nrows, ncols)</code>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.points._Basequence-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.points._Basequence</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.points-module.html\">Module&nbsp;points</a> ::\n        Class&nbsp;_Basequence\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.points._Basequence-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class _Basequence</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n       object --+        \n                |        \n    _abcoll.Sized --+    \n                    |    \n       object --+   |    \n                |   |    \n _abcoll.Iterable --+    \n                    |    \n       object --+   |    \n                |   |    \n_abcoll.Container --+    \n                    |    \n     _abcoll.Sequence --+\n                        |\n                       <strong class=\"uidshort\">_Basequence</strong>\n</pre>\n\n<dl><dt>Known Subclasses:</dt>\n<dd>\n      <ul class=\"subclass-list\">\n<li><a href=\"pygeodesy.points.LatLon2psxy-class.html\">LatLon2psxy</a></li><li>, <a href=\"pygeodesy.points._Array2LatLon-class.html\">_Array2LatLon</a></li>  </ul>\n</dd></dl>\n\n<hr />\n<p>(INTERNAL) Base class.</p>\n\n<!-- ==================== NESTED CLASSES ==================== -->\n<a name=\"section-NestedClasses\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Nested Classes</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>_abcoll.Sized</code></b>:\n      <code><a href=\"abc.ABCMeta-class.html\">__metaclass__</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.points._Basequence-class.html#copy\" class=\"summary-sig-name\">copy</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">deep</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Make a shallow or deep copy of this instance.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.points._Basequence-class.html#dup\" class=\"summary-sig-name\">dup</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">**items</span>)</span><br />\n      Duplicate this instance, <i>without replacing items</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"point\"></a><span class=\"summary-sig-name\">point</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">*attrs</span>)</span><br />\n      <i>Must be overloaded</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>_abcoll.Sequence</code></b>:\n      <code>__contains__</code>,\n      <code>__getitem__</code>,\n      <code>__iter__</code>,\n      <code>__reversed__</code>,\n      <code>count</code>,\n      <code>index</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>_abcoll.Sized</code></b>:\n      <code>__len__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__format__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__init__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__repr__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__str__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS METHODS ==================== -->\n<a name=\"section-ClassMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Class Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>_abcoll.Sized</code></b>:\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS VARIABLES ==================== -->\n<a name=\"section-ClassVariables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Class Variables</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>_abcoll.Sequence</code></b>:\n      <code>__abstractmethods__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.points._Basequence-class.html#epsilon\" class=\"summary-name\">epsilon</a><br />\n      Class <code>property</code> with a <code>.name</code> attribute.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.points._Basequence-class.html#isNumpy2\" class=\"summary-name\">isNumpy2</a><br />\n      Is this a Numpy2 wrapper?\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.points._Basequence-class.html#isPoints2\" class=\"summary-name\">isPoints2</a><br />\n      Is this a LatLon2 wrapper/converter?\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.points._Basequence-class.html#isTuple2\" class=\"summary-name\">isTuple2</a><br />\n      Is this a Tuple2 wrapper?\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"copy\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">copy</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">deep</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Make a shallow or deep copy of this instance.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>deep</code></strong> - If <code>True</code>, make a deep, otherwise a shallow copy \n          (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The copy (<code>This class</code>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"dup\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">dup</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">**items</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Duplicate this instance, <i>without replacing items</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>items</code></strong> - No attributes (<i>not allowed</i>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The duplicate (<code>This class</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Any <b><code>items</code></b> invalid.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"epsilon\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">epsilon</h3>\n  <p>Class <code>property</code> with a <code>.name</code> attribute.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">epsilon(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the tolerance for equality tests (<code>float</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">epsilon(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">tol</span>)</span>\n        - Set the tolerance for equality tests (<code>scalar</code>).\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"isNumpy2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">isNumpy2</h3>\n  <p>Is this a Numpy2 wrapper?</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">isNumpy2(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Is this a Numpy2 wrapper?\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"isPoints2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">isPoints2</h3>\n  <p>Is this a LatLon2 wrapper/converter?</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">isPoints2(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Is this a LatLon2 wrapper/converter?\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"isTuple2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">isTuple2</h3>\n  <p>Is this a Tuple2 wrapper?</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">isTuple2(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Is this a Tuple2 wrapper?\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.props-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.props</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        Module&nbsp;props\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.props-module.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== MODULE DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Module props</h1><p class=\"nomargin-top\"></p>\n<p>Mutable, immutable and caching/memoizing properties and deprecation \n  decorators.</p>\n  <p>To enable <code>DeprecationWarning</code>s from \n  <code>PyGeodesy</code>, set env var <code>PYGEODESY_WARNINGS</code> to a \n  non-empty string <i>AND</i> run <code>python</code> with command line \n  option <code>-X dev</code> or with one of the <code>-W</code> choices, \n  see callable <a href=\"pygeodesy.props.DeprecationWarnings-class.html\" \n  class=\"link\">DeprecationWarnings</a> below.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Version:</strong>\n        25.12.31\n      </p>\n</div><!-- ==================== CLASSES ==================== -->\n<a name=\"section-Classes\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Classes</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.props.Property_RO-class.html\" class=\"summary-name\">Property_RO</a>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.props.Property-class.html\" class=\"summary-name\">Property</a>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.props.property_RO-class.html\" class=\"summary-name\">property_RO</a>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.props.property_ROnce-class.html\" class=\"summary-name\">property_ROnce</a>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.props.property_ROver-class.html\" class=\"summary-name\">property_ROver</a>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.props.DeprecationWarnings-class.html\" class=\"summary-name\">DeprecationWarnings</a><br />\n      (INTERNAL) Handle <code>DeprecationWaring</code>s.\n    </td>\n  </tr>\n</table>\n<!-- ==================== FUNCTIONS ==================== -->\n<a name=\"section-Functions\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Functions</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.props-module.html#property_doc_\" class=\"summary-sig-name\">property_doc_</a>(<span class=\"summary-sig-arg\">doc</span>)</span><br />\n      Decorator for a standard <code>property</code> with basic \n      documentation.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.props-module.html#deprecated_class\" class=\"summary-sig-name\">deprecated_class</a>(<span class=\"summary-sig-arg\">cls_or_class</span>)</span><br />\n      Use inside __new__ or __init__ of a DEPRECATED class.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.props-module.html#deprecated_function\" class=\"summary-sig-name\">deprecated_function</a>(<span class=\"summary-sig-arg\">call</span>)</span><br />\n      Decorator for a DEPRECATED function.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.props-module.html#deprecated_method\" class=\"summary-sig-name\">deprecated_method</a>(<span class=\"summary-sig-arg\">call</span>)</span><br />\n      Decorator for a DEPRECATED method.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.props-module.html#deprecated_Property_RO\" class=\"summary-sig-name\">deprecated_Property_RO</a>(<span class=\"summary-sig-arg\">method</span>)</span><br />\n      Decorator for a DEPRECATED <a \n      href=\"pygeodesy.props.Property_RO-class.html\" \n      class=\"link\">Property_RO</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.props-module.html#deprecated_property_RO\" class=\"summary-sig-name\">deprecated_property_RO</a>(<span class=\"summary-sig-arg\">method</span>)</span><br />\n      Decorator for a DEPRECATED <a \n      href=\"pygeodesy.props.property_RO-class.html\" \n      class=\"link\">property_RO</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== VARIABLES ==================== -->\n<a name=\"section-Variables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Variables</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"__all__\"></a><span class=\"summary-name\">__all__</span> = <code title=\"_ALL_LAZY.props\">_ALL_LAZY.props</code>\n    </td>\n  </tr>\n</table>\n<!-- ==================== FUNCTION DETAILS ==================== -->\n<a name=\"section-FunctionDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Function Details</span></td>\n</tr>\n</table>\n<a name=\"property_doc_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">property_doc_</span>&nbsp;(<span class=\"sig-arg\">doc</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Decorator for a standard <code>property</code> with basic \n  documentation.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>doc</code></strong> - The property documentation (<code>str</code>).</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Example:</strong>\n        <p>&gt;&gt;&gt;class Clas(object): &gt;&gt;&gt; &gt;&gt;&gt;     \n        @property_doc_(&quot;documentation text.&quot;) &gt;&gt;&gt;     \n        def name(self): &gt;&gt;&gt;         ... &gt;&gt;&gt; &gt;&gt;&gt;\n        @name.setter &gt;&gt;&gt;     def name(self, value): &gt;&gt;&gt;\n        ...</p>\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"deprecated_class\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">deprecated_class</span>&nbsp;(<span class=\"sig-arg\">cls_or_class</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Use inside __new__ or __init__ of a DEPRECATED class.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>cls_or_class</code></strong> - The class (<code>cls</code> or <code>Class</code>).</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        NOT a decorator!\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"deprecated_function\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">deprecated_function</span>&nbsp;(<span class=\"sig-arg\">call</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Decorator for a DEPRECATED function.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>call</code></strong> - The deprecated function (<code>callable</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The <b><code>call</code></b> DEPRECATED.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"deprecated_method\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">deprecated_method</span>&nbsp;(<span class=\"sig-arg\">call</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Decorator for a DEPRECATED method.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>call</code></strong> - The deprecated method (<code>callable</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The <b><code>call</code></b> DEPRECATED.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"deprecated_Property_RO\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">deprecated_Property_RO</span>&nbsp;(<span class=\"sig-arg\">method</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Decorator for a DEPRECATED <a \n  href=\"pygeodesy.props.Property_RO-class.html\" \n  class=\"link\">Property_RO</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>method</code></strong> - The <code>Property_RO.fget</code> method (<code>callable</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The <b><code>method</code></b> DEPRECATED.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"deprecated_property_RO\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">deprecated_property_RO</span>&nbsp;(<span class=\"sig-arg\">method</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Decorator for a DEPRECATED <a \n  href=\"pygeodesy.props.property_RO-class.html\" \n  class=\"link\">property_RO</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>method</code></strong> - The <code>property_RO.fget</code> method (<code>callable</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The <b><code>method</code></b> DEPRECATED.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.props.DeprecationWarnings-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.props.DeprecationWarnings</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.props-module.html\">Module&nbsp;props</a> ::\n        Class&nbsp;DeprecationWarnings\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.props.DeprecationWarnings-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class DeprecationWarnings</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\nobject --+\n         |\n        <strong class=\"uidshort\">DeprecationWarnings</strong>\n</pre>\n\n<hr />\n<p>(INTERNAL) Handle <code>DeprecationWaring</code>s.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.props.DeprecationWarnings-class.html#__call__\" class=\"summary-sig-name\">__call__</a>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Have any <code>DeprecationWarning</code>s been reported or raised?</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.props.DeprecationWarnings-class.html#throw\" class=\"summary-sig-name\">throw</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">kind</span>,\n        <span class=\"summary-sig-arg\">name</span>,\n        <span class=\"summary-sig-arg\">doc</span>,\n        <span class=\"summary-sig-arg\">**stacklevel</span>)</span><br />\n      Report or raise a <code>DeprecationWarning</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__format__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__init__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__repr__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__str__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.props.DeprecationWarnings-class.html#Warnings\" class=\"summary-name\">Warnings</a><br />\n      Get the number of <code>DeprecationWarning</code>s (<code>int</code>)\n      so far or <code>None</code> if not enabled.\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__call__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__call__</span>&nbsp;(<span class=\"sig-arg\">self</span>)</span>\n    <br /><em class=\"fname\">(Call operator)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Have any <code>DeprecationWarning</code>s been reported or raised?</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd>The number of <code>DeprecationWarning</code>s (<code>int</code>)\n          so far or <code>None</code> if not enabled.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        To get <code>DeprecationWarning</code>s if any, run \n        <code>python</code> with env var <code>PYGEODESY_WARNINGS</code> \n        set to a non-empty string <i>AND</i> use <code>python[3]</code> \n        command line option <code>-X dev</code>, <code>-W always</code> or \n        <code>-W error</code>, etc.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"throw\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">throw</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">kind</span>,\n        <span class=\"sig-arg\">name</span>,\n        <span class=\"sig-arg\">doc</span>,\n        <span class=\"sig-arg\">**stacklevel</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Report or raise a <code>DeprecationWarning</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>kind</code></strong> - Warning kind (<code>str</code>), <code>&quot;method&quot;</code>,\n          <code>&quot;funtion&quot;</code>, ...</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Qualified name (<code>str</code>) of <b><code>kind</code></b>.</li>\n        <li><strong class=\"pname\"><code>doc</code></strong> - The __doc__ (<code>str</code>) of <b><code>kind</code></b>, \n          <code>&quot;DEPRECATED ...</code>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"Warnings\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">Warnings</h3>\n  <p>Get the number of <code>DeprecationWarning</code>s (<code>int</code>) \n  so far or <code>None</code> if not enabled.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">Warnings(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the number of <code>DeprecationWarning</code>s (<code>int</code>) so \nfar or <code>None</code> if not enabled.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.props.Property-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.props.Property</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.props-module.html\">Module&nbsp;props</a> ::\n        Class&nbsp;Property\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.props.Property-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Property</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\nobject --+            \n         |            \n  property --+        \n             |        \n _PropertyBase --+    \n                 |    \n       <a href=\"pygeodesy.props.Property_RO-class.html\">Property_RO</a> --+\n                     |\n                    <strong class=\"uidshort\">Property</strong>\n</pre>\n\n<hr />\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.props.Property-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">method</span>,\n        <span class=\"summary-sig-arg\">doc</span>=<span class=\"summary-sig-default\">''</span>)</span><br />\n      New <i>mutable</i>, <i>caching</i>, <i>memoizing</i> \n      <code>property</code> <i>Factory</i> to be used as \n      <code>decorator</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.props.Property-class.html#setter\" class=\"summary-sig-name\">setter</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">method</span>)</span><br />\n      Make this <code>Property</code> <i>mutable</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.props.Property-class.html#setter_\" class=\"summary-sig-name\">setter_</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">method</span>)</span><br />\n      Make this <code>Property</code> <i>mutable</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.props.Property_RO-class.html\">Property_RO</a></code></b>:\n      <code><a href=\"pygeodesy.props.Property_RO-class.html#__get__\">__get__</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>_PropertyBase</code></b>:\n      <code>deleter</code>,\n      <code>getter</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>property</code></b>:\n      <code>__delete__</code>,\n      <code>__getattribute__</code>,\n      <code>__new__</code>,\n      <code>__set__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__format__</code>,\n      <code>__hash__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__repr__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__str__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>property</code></b>:\n      <code>fdel</code>,\n      <code>fget</code>,\n      <code>fset</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">method</span>,\n        <span class=\"sig-arg\">doc</span>=<span class=\"sig-default\">''</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <i>mutable</i>, <i>caching</i>, <i>memoizing</i> \n  <code>property</code> <i>Factory</i> to be used as \n  <code>decorator</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>method</code></strong> - The callable being decorated as this <code>property</code>'s \n          <code>getter</code>, to be invoked only once.</li>\n        <li><strong class=\"pname\"><code>doc</code></strong> - Optional property documentation (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        Like standard Python <code>property</code> without a \n        <code>setter</code>, but with a more descriptive error message when\n        set.\n      </p>\n      <dl><dt>See Also:</dt>\n        <dd>\n          Python 3's <a \n          href=\"https://docs.Python.org/3/library/functools.html#functools.cached_property\"\n          target=\"_top\">functools.cached_property</a> and <a \n          href=\"https://Docs.Python.org/3/library/functools.html#functools.cache\"\n          target=\"_top\">-.cache</a> to <i>cache</i> or <i>memoize</i> the \n          property value.,\n          Luciano Ramalho, &quot;Fluent Python&quot;, O'Reilly, 2016 p. 636\n          Example 19-24 or 2022 p. 870 Example 22-28 and <a \n          href=\"https://docs.Python.org/3/howto/descriptor.html\" \n          target=\"_top\">class Property</a>.\n        </dd>\n      </dl>\n</div></td></tr></table>\n</div>\n<a name=\"setter\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">setter</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">method</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Make this <code>Property</code> <i>mutable</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>method</code></strong> - The callable being decorated as this <code>Property</code>'s \n          <code>setter</code>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        property.setter\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        Setting a new property value always clears the previously \n        <i>cached</i> or <i>memoized</i> value <i>after</i> invoking the \n        <b><code>method</code></b>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"setter_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">setter_</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">method</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Make this <code>Property</code> <i>mutable</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>method</code></strong> - The callable being decorated as this <code>Property</code>'s \n          <code>setter</code> and returning the new property value to be \n          <i>cached</i> or <i>memoized</i>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.props.Property_RO-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.props.property_RO</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.props-module.html\">Module&nbsp;props</a> ::\n        Class&nbsp;property_RO\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.props.property_RO-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class property_RO</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\nobject --+        \n         |        \n  property --+    \n             |    \n _PropertyBase --+\n                 |\n                <strong class=\"uidshort\">property_RO</strong>\n</pre>\n\n<dl><dt>Known Subclasses:</dt>\n<dd>\n      <ul class=\"subclass-list\">\n<li class=\"private\">named._LazyNamedEnumItem</li>  </ul>\n</dd></dl>\n\n<hr />\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\"><pre class=\"literalblock\">\nproperty attribute\n\n</pre></span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.props.property_RO-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">method</span>,\n        <span class=\"summary-sig-arg\">doc</span>=<span class=\"summary-sig-default\">''</span>)</span><br />\n      New <i>immutable</i>, standard <code>property</code> to be used as \n      <code>decorator</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>_PropertyBase</code></b>:\n      <code>deleter</code>,\n      <code>getter</code>,\n      <code>setter</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>property</code></b>:\n      <code>__delete__</code>,\n      <code>__get__</code>,\n      <code>__getattribute__</code>,\n      <code>__new__</code>,\n      <code>__set__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__format__</code>,\n      <code>__hash__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__repr__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__str__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>property</code></b>:\n      <code>fdel</code>,\n      <code>fget</code>,\n      <code>fset</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">method</span>,\n        <span class=\"sig-arg\">doc</span>=<span class=\"sig-default\">''</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <i>immutable</i>, standard <code>property</code> to be used as \n  <code>decorator</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>method</code></strong> - The callable being decorated as <code>property</code>'s \n          <code>getter</code>.</li>\n        <li><strong class=\"pname\"><code>doc</code></strong> - Optional property documentation (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns: <pre class=\"literalblock\">\nproperty attribute\n\n</pre></dt>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        Like standard Python <code>property</code> without a setter, but \n        with a more descriptive error message when set.\n      </p>\n      <p><strong>See Also:</strong>\n        <a href=\"pygeodesy.props.Property_RO-class.html\" \n        class=\"link\">Property_RO</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.props.property_ROnce-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.props.property_ROnce</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.props-module.html\">Module&nbsp;props</a> ::\n        Class&nbsp;property_ROnce\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.props.property_ROnce-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class property_ROnce</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\nobject --+            \n         |            \n  property --+        \n             |        \n _PropertyBase --+    \n                 |    \n   _property_RO___ --+\n                     |\n                    <strong class=\"uidshort\">property_ROnce</strong>\n</pre>\n\n<hr />\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>_property_RO___</code></b>:\n      <code>__init__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>_PropertyBase</code></b>:\n      <code>deleter</code>,\n      <code>getter</code>,\n      <code>setter</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>property</code></b>:\n      <code>__delete__</code>,\n      <code>__get__</code>,\n      <code>__getattribute__</code>,\n      <code>__new__</code>,\n      <code>__set__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__format__</code>,\n      <code>__hash__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__repr__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__str__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>property</code></b>:\n      <code>fdel</code>,\n      <code>fget</code>,\n      <code>fset</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.props.property_ROver-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.props.property_ROver</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.props-module.html\">Module&nbsp;props</a> ::\n        Class&nbsp;property_ROver\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.props.property_ROver-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class property_ROver</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\nobject --+            \n         |            \n  property --+        \n             |        \n _PropertyBase --+    \n                 |    \n   _property_RO___ --+\n                     |\n                    <strong class=\"uidshort\">property_ROver</strong>\n</pre>\n\n<hr />\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>_property_RO___</code></b>:\n      <code>__init__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>_PropertyBase</code></b>:\n      <code>deleter</code>,\n      <code>getter</code>,\n      <code>setter</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>property</code></b>:\n      <code>__delete__</code>,\n      <code>__get__</code>,\n      <code>__getattribute__</code>,\n      <code>__new__</code>,\n      <code>__set__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__format__</code>,\n      <code>__hash__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__repr__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__str__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>property</code></b>:\n      <code>fdel</code>,\n      <code>fget</code>,\n      <code>fset</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.resections-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.resections</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        Module&nbsp;resections\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.resections-module.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== MODULE DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Module resections</h1><p class=\"nomargin-top\"></p>\n<p>3-Point resection functions <a \n  href=\"pygeodesy.resections-module.html#cassini\" class=\"link\">cassini</a>,\n  <a href=\"pygeodesy.resections-module.html#collins5\" \n  class=\"link\">collins5</a>, <a \n  href=\"pygeodesy.resections-module.html#pierlot\" class=\"link\">pierlot</a>,\n  <a href=\"pygeodesy.resections-module.html#pierlotx\" \n  class=\"link\">pierlotx</a> and <a \n  href=\"pygeodesy.resections-module.html#tienstra7\" \n  class=\"link\">tienstra7</a>, survey functions <a \n  href=\"pygeodesy.resections-module.html#snellius3\" \n  class=\"link\">snellius3</a> and <a \n  href=\"pygeodesy.resections-module.html#wildberger3\" \n  class=\"link\">wildberger3</a> and triangle functions <a \n  href=\"pygeodesy.resections-module.html#triAngle\" \n  class=\"link\">triAngle</a>, <a \n  href=\"pygeodesy.resections-module.html#triAngle5\" \n  class=\"link\">triAngle5</a>, <a \n  href=\"pygeodesy.resections-module.html#triSide\" class=\"link\">triSide</a>,\n  <a href=\"pygeodesy.resections-module.html#triSide2\" \n  class=\"link\">triSide2</a> and <a \n  href=\"pygeodesy.resections-module.html#triSide4\" \n  class=\"link\">triSide4</a>.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Note:</strong>\n        Functions <a href=\"pygeodesy.resections-module.html#pierlot\" \n        class=\"link\">pierlot</a> and <a \n        href=\"pygeodesy.resections-module.html#pierlotx\" \n        class=\"link\">pierlotx</a> are transcoded to Python with permission \n        from <a \n        href=\"http://www.Telecom.ULg.ac.BE/triangulation/doc/total_8c.html\"\n        target=\"_top\">triangulationPierlot</a> and <a \n        href=\"http://www.Telecom.ULg.ac.BE/publi/publications/pierlot/Pierlot2014ANewThree\"\n        target=\"_top\">Pierlot</a>.\n      </p>\n      <p><strong>Version:</strong>\n        25.05.12\n      </p>\n</div><!-- ==================== CLASSES ==================== -->\n<a name=\"section-Classes\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Classes</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.resections.Collins5Tuple-class.html\" class=\"summary-name\">Collins5Tuple</a><br />\n      5-Tuple <code>(pointP, pointH, a, b, c)</code> with survey \n        <code>pointP</code>, auxiliary <code>pointH</code>, each an \n        instance of <b><code>pointA</code></b>'s (sub-)class and triangle \n        sides <code>a</code>, <code>b</code> and <code>c</code> in \n        <code>meter</code>, conventionally.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.resections.ResectionError-class.html\" class=\"summary-name\">ResectionError</a><br />\n      Error raised for issues in <a \n        href=\"pygeodesy.resections-module.html\" \n        class=\"link\">pygeodesy.resections</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.resections.Survey3Tuple-class.html\" class=\"summary-name\">Survey3Tuple</a><br />\n      3-Tuple <code>(PA, PB, PC)</code> with distance from survey point \n        <code>P</code> to each of the triangle corners <code>A</code>, \n        <code>B</code> and <code>C</code> in <code>meter</code>, \n        conventionally.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.resections.Tienstra7Tuple-class.html\" class=\"summary-name\">Tienstra7Tuple</a><br />\n      7-Tuple <code>(pointP, A, B, C, a, b, c)</code> with survey \n        <code>pointP</code>, interior triangle angles <code>A</code>, \n        <code>B</code> and <code>C</code> in <code>degrees</code> and \n        triangle sides <code>a</code>, <code>b</code> and <code>c</code> in\n        <code>meter</code>, conventionally.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.resections.TriAngle5Tuple-class.html\" class=\"summary-name\">TriAngle5Tuple</a><br />\n      5-Tuple <code>(radA, radB, radC, rIn, area)</code> with the \n        interior angles at triangle corners <code>A</code>, <code>B</code> \n        and <code>C</code> in <code>radians</code>, the \n        <code>InCircle</code> radius <code>rIn</code> aka \n        <code>inradius</code> in <code>meter</code> and the triangle \n        <code>area</code> in <code>meter</code> <i>squared</i>, \n        conventionally.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.resections.TriSide2Tuple-class.html\" class=\"summary-name\">TriSide2Tuple</a><br />\n      2-Tuple <code>(a, radA)</code> with triangle side <code>a</code> in\n        <code>meter</code>, conventionally and angle <code>radA</code> at \n        the opposite triangle corner in <code>radians</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.resections.TriSide4Tuple-class.html\" class=\"summary-name\">TriSide4Tuple</a><br />\n      4-Tuple <code>(a, b, radC, d)</code> with interior angle \n        <code>radC</code> at triangle corner <code>C</code> in \n        <code>radians</code>with the length of triangle sides \n        <code>a</code> and <code>b</code> and with triangle height \n        <code>d</code> perpendicular to triangle side <code>c</code>, in \n        the same units as triangle sides <code>a</code> and <code>b</code>.\n    </td>\n  </tr>\n</table>\n<!-- ==================== FUNCTIONS ==================== -->\n<a name=\"section-Functions\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Functions</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.resections-module.html#cassini\" class=\"summary-sig-name\">cassini</a>(<span class=\"summary-sig-arg\">pointA</span>,\n        <span class=\"summary-sig-arg\">pointB</span>,\n        <span class=\"summary-sig-arg\">pointC</span>,\n        <span class=\"summary-sig-arg\">alpha</span>,\n        <span class=\"summary-sig-arg\">beta</span>,\n        <span class=\"summary-sig-arg\">useZ</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">**Clas_and_kwds</span>)</span><br />\n      3-Point resection using <a \n      href=\"https://NL.WikiPedia.org/wiki/Achterwaartse_insnijding\" \n      target=\"_top\">Cassini</a>'s method.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.resections-module.html#collins5\" class=\"summary-sig-name\">collins5</a>(<span class=\"summary-sig-arg\">pointA</span>,\n        <span class=\"summary-sig-arg\">pointB</span>,\n        <span class=\"summary-sig-arg\">pointC</span>,\n        <span class=\"summary-sig-arg\">alpha</span>,\n        <span class=\"summary-sig-arg\">beta</span>,\n        <span class=\"summary-sig-arg\">useZ</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">**Clas_and_kwds</span>)</span><br />\n      3-Point resection using <a \n      href=\"https://Dokumen.tips/documents/three-point-resection-problem-introduction-kaestner-burkhardt-method.html\"\n      target=\"_top\">Collins</a>' method.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.resections-module.html#pierlot\" class=\"summary-sig-name\">pierlot</a>(<span class=\"summary-sig-arg\">point1</span>,\n        <span class=\"summary-sig-arg\">point2</span>,\n        <span class=\"summary-sig-arg\">point3</span>,\n        <span class=\"summary-sig-arg\">alpha12</span>,\n        <span class=\"summary-sig-arg\">alpha23</span>,\n        <span class=\"summary-sig-arg\">useZ</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">eps</span>=<span class=\"summary-sig-default\">2.220446049250313e-16</span>,\n        <span class=\"summary-sig-arg\">**Clas_and_kwds</span>)</span><br />\n      3-Point resection using <a \n      href=\"http://www.Telecom.ULg.ac.BE/publi/publications/pierlot/Pierlot2014ANewThree\"\n      target=\"_top\">Pierlot</a>'s method <code>ToTal</code> with \n      <i>approximate</i> limits for the (pseudo-)singularities.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.resections-module.html#pierlotx\" class=\"summary-sig-name\">pierlotx</a>(<span class=\"summary-sig-arg\">point1</span>,\n        <span class=\"summary-sig-arg\">point2</span>,\n        <span class=\"summary-sig-arg\">point3</span>,\n        <span class=\"summary-sig-arg\">alpha1</span>,\n        <span class=\"summary-sig-arg\">alpha2</span>,\n        <span class=\"summary-sig-arg\">alpha3</span>,\n        <span class=\"summary-sig-arg\">useZ</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">**Clas_and_kwds</span>)</span><br />\n      3-Point resection using <a \n      href=\"http://www.Telecom.ULg.ac.BE/publi/publications/pierlot/Pierlot2014ANewThree\"\n      target=\"_top\">Pierlot</a>'s method <code>ToTal</code> with \n      <i>exact</i> limits for the (pseudo-)singularities.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.resections-module.html#snellius3\" class=\"summary-sig-name\">snellius3</a>(<span class=\"summary-sig-arg\">a</span>,\n        <span class=\"summary-sig-arg\">b</span>,\n        <span class=\"summary-sig-arg\">degC</span>,\n        <span class=\"summary-sig-arg\">alpha</span>,\n        <span class=\"summary-sig-arg\">beta</span>)</span><br />\n      Snellius' surveying using <a \n      href=\"https://WikiPedia.org/wiki/Snellius&#8211;Pothenot_problem\" \n      target=\"_top\">Snellius Pothenot</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.resections-module.html#tienstra7\" class=\"summary-sig-name\">tienstra7</a>(<span class=\"summary-sig-arg\">pointA</span>,\n        <span class=\"summary-sig-arg\">pointB</span>,\n        <span class=\"summary-sig-arg\">pointC</span>,\n        <span class=\"summary-sig-arg\">alpha</span>,\n        <span class=\"summary-sig-arg\">beta</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">gamma</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">useZ</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">**Clas_and_kwds</span>)</span><br />\n      3-Point resection using <a \n      href=\"https://WikiPedia.org/wiki/Tienstra_formula\" \n      target=\"_top\">Tienstra</a>'s formula.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.resections-module.html#triAngle\" class=\"summary-sig-name\">triAngle</a>(<span class=\"summary-sig-arg\">a</span>,\n        <span class=\"summary-sig-arg\">b</span>,\n        <span class=\"summary-sig-arg\">c</span>)</span><br />\n      Compute one angle of a triangle.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.resections-module.html#triAngle5\" class=\"summary-sig-name\">triAngle5</a>(<span class=\"summary-sig-arg\">a</span>,\n        <span class=\"summary-sig-arg\">b</span>,\n        <span class=\"summary-sig-arg\">c</span>)</span><br />\n      Compute the angles of a triangle.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.resections-module.html#triArea\" class=\"summary-sig-name\">triArea</a>(<span class=\"summary-sig-arg\">a</span>,\n        <span class=\"summary-sig-arg\">b</span>,\n        <span class=\"summary-sig-arg\">c</span>)</span><br />\n      Compute the area of a triangle using <a \n      href=\"https://WikiPedia.org/wiki/Heron%27s_formula\" \n      target=\"_top\">Heron's</a> <code>stable</code> formula.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.resections-module.html#triSide\" class=\"summary-sig-name\">triSide</a>(<span class=\"summary-sig-arg\">a</span>,\n        <span class=\"summary-sig-arg\">b</span>,\n        <span class=\"summary-sig-arg\">radC</span>)</span><br />\n      Compute one side of a triangle.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.resections-module.html#triSide2\" class=\"summary-sig-name\">triSide2</a>(<span class=\"summary-sig-arg\">b</span>,\n        <span class=\"summary-sig-arg\">c</span>,\n        <span class=\"summary-sig-arg\">radB</span>)</span><br />\n      Compute a side and its opposite angle of a triangle.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.resections-module.html#triSide4\" class=\"summary-sig-name\">triSide4</a>(<span class=\"summary-sig-arg\">radA</span>,\n        <span class=\"summary-sig-arg\">radB</span>,\n        <span class=\"summary-sig-arg\">c</span>)</span><br />\n      Compute two sides and the height of a triangle.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.resections-module.html#wildberger3\" class=\"summary-sig-name\">wildberger3</a>(<span class=\"summary-sig-arg\">a</span>,\n        <span class=\"summary-sig-arg\">b</span>,\n        <span class=\"summary-sig-arg\">c</span>,\n        <span class=\"summary-sig-arg\">alpha</span>,\n        <span class=\"summary-sig-arg\">beta</span>,\n        <span class=\"summary-sig-arg\">R3</span>=<span class=\"summary-sig-default\">&lt;built-in function min&gt;</span>)</span><br />\n      Snellius' surveying using <a \n      href=\"https://WikiPedia.org/wiki/Snellius&#8211;Pothenot_problem\" \n      target=\"_top\">Rational Trigonometry</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== VARIABLES ==================== -->\n<a name=\"section-Variables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Variables</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"__all__\"></a><span class=\"summary-name\">__all__</span> = <code title=\"_ALL_LAZY.resections\">_ALL_LAZY.resections</code>\n    </td>\n  </tr>\n</table>\n<!-- ==================== FUNCTION DETAILS ==================== -->\n<a name=\"section-FunctionDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Function Details</span></td>\n</tr>\n</table>\n<a name=\"cassini\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">cassini</span>&nbsp;(<span class=\"sig-arg\">pointA</span>,\n        <span class=\"sig-arg\">pointB</span>,\n        <span class=\"sig-arg\">pointC</span>,\n        <span class=\"sig-arg\">alpha</span>,\n        <span class=\"sig-arg\">beta</span>,\n        <span class=\"sig-arg\">useZ</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">**Clas_and_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>3-Point resection using <a \n  href=\"https://NL.WikiPedia.org/wiki/Achterwaartse_insnijding\" \n  target=\"_top\">Cassini</a>'s method.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>pointA</code></strong> - First point (<code>Cartesian</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <code>Vector3Tuple</code>, \n          <code>Vector4Tuple</code> or <code>Vector2Tuple</code> if \n          <code><b>useZ</b>=False</code>).</li>\n        <li><strong class=\"pname\"><code>pointB</code></strong> - Second point (<code>Cartesian</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <code>Vector3Tuple</code>, \n          <code>Vector4Tuple</code> or <code>Vector2Tuple</code> if \n          <code><b>useZ</b>=False</code>).</li>\n        <li><strong class=\"pname\"><code>pointC</code></strong> - Center point (<code>Cartesian</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <code>Vector3Tuple</code>, \n          <code>Vector4Tuple</code> or <code>Vector2Tuple</code> if \n          <code><b>useZ</b>=False</code>).</li>\n        <li><strong class=\"pname\"><code>alpha</code></strong> - Angle subtended by triangle side <b><code>pointA</code></b> to \n          <b><code>pointC</code></b> (<code>degrees</code>, non-negative).</li>\n        <li><strong class=\"pname\"><code>beta</code></strong> - Angle subtended by triangle side <b><code>pointB</code></b> to \n          <b><code>pointC</code></b> (<code>degrees</code>, non-negative).</li>\n        <li><strong class=\"pname\"><code>useZ</code></strong> - If <code>True</code>, use and interpolate the Z component, \n          otherwise force <code>z=INT0</code> (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>Clas_and_kwds</code></strong> - Optional class <code><b>Clas</b>=<b>pointA</b>.classof</code> to \n          return the survey point with optionally other \n          <b><code>Clas</code></b> keyword arguments to instantiate the \n          survey point.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The survey point, an instance of <b><code>Clas</code></b> or \n          <b><code>pointA</code></b>'s (sub-)class.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.resections.ResectionError-class.html\">ResectionError</a></strong></code> - Near-coincident, -colinear or -concyclic points or negative or \n        invalid <b><code>alpha</code></b> or <b><code>beta</code></b>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>pointA</code></b>, <b><code>pointB</code></b> or \n        <b><code>pointM</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        Typically, <b><code>pointC</code></b> is between \n        <b><code>pointA</code></b> and <b><code>pointB</code></b>.\n      </p>\n      <p><strong>See Also:</strong>\n        <a \n        href=\"https://Dokumen.tips/documents/three-point-resection-problem-introduction-kaestner-burkhardt-method.html\"\n        target=\"_top\">Three Point Resection Problem</a> and functions <a \n        href=\"pygeodesy.resections-module.html#collins5\" \n        class=\"link\">collins5</a>, <a \n        href=\"pygeodesy.resections-module.html#pierlot\" \n        class=\"link\">pierlot</a>, <a \n        href=\"pygeodesy.resections-module.html#pierlotx\" \n        class=\"link\">pierlotx</a> and <a \n        href=\"pygeodesy.resections-module.html#tienstra7\" \n        class=\"link\">tienstra7</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"collins5\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">collins5</span>&nbsp;(<span class=\"sig-arg\">pointA</span>,\n        <span class=\"sig-arg\">pointB</span>,\n        <span class=\"sig-arg\">pointC</span>,\n        <span class=\"sig-arg\">alpha</span>,\n        <span class=\"sig-arg\">beta</span>,\n        <span class=\"sig-arg\">useZ</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">**Clas_and_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>3-Point resection using <a \n  href=\"https://Dokumen.tips/documents/three-point-resection-problem-introduction-kaestner-burkhardt-method.html\"\n  target=\"_top\">Collins</a>' method.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>pointA</code></strong> - First point (<code>Cartesian</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <code>Vector3Tuple</code>, \n          <code>Vector4Tuple</code> or <code>Vector2Tuple</code> if \n          <code><b>useZ</b>=False</code>).</li>\n        <li><strong class=\"pname\"><code>pointB</code></strong> - Second point (<code>Cartesian</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <code>Vector3Tuple</code>, \n          <code>Vector4Tuple</code> or <code>Vector2Tuple</code> if \n          <code><b>useZ</b>=False</code>).</li>\n        <li><strong class=\"pname\"><code>pointC</code></strong> - Center point (<code>Cartesian</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <code>Vector3Tuple</code>, \n          <code>Vector4Tuple</code> or <code>Vector2Tuple</code> if \n          <code><b>useZ</b>=False</code>).</li>\n        <li><strong class=\"pname\"><code>alpha</code></strong> - Angle subtended by triangle side <code>b</code> from \n          <b><code>pointA</code></b> to <b><code>pointC</code></b> \n          (<code>degrees</code>, non-negative).</li>\n        <li><strong class=\"pname\"><code>beta</code></strong> - Angle subtended by triangle side <code>a</code> from \n          <b><code>pointB</code></b> to <b><code>pointC</code></b> \n          (<code>degrees</code>, non-negative).</li>\n        <li><strong class=\"pname\"><code>useZ</code></strong> - If <code>True</code>, use and interpolate the Z component, \n          otherwise force <code>z=INT0</code> (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>Clas_and_kwds</code></strong> - Optional class <code><b>Clas</b>=<b>pointA</b>.classof</code> to \n          return the survey point with optionally other \n          <b><code>Clas</code></b> keyword arguments to instantiate the \n          survey point.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><a href=\"pygeodesy.resections.Collins5Tuple-class.html\" \n          class=\"link\">Collins5Tuple</a><code>(pointP, pointH, a, b, \n          c)</code> with survey <code>pointP</code>, auxiliary \n          <code>pointH</code>, each an instance of <b><code>Clas</code></b>\n          or <b><code>pointA</code></b>'s (sub-)class and triangle sides \n          <code>a</code>, <code>b</code> and <code>c</code> in \n          <code>meter</code>, conventionally.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.resections.ResectionError-class.html\">ResectionError</a></strong></code> - Near-coincident, -colinear or -concyclic points or negative or \n        invalid <b><code>alpha</code></b> or <b><code>beta</code></b>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>pointA</code></b>, <b><code>pointB</code></b> or \n        <b><code>pointM</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        Typically, <b><code>pointC</code></b> is between \n        <b><code>pointA</code></b> and <b><code>pointB</code></b>.\n      </p>\n      <p><strong>See Also:</strong>\n        <a href=\"https://NL.WikiPedia.org/wiki/Achterwaartse_insnijding\" \n        target=\"_top\">Collins' methode</a> and functions <a \n        href=\"pygeodesy.resections-module.html#cassini\" \n        class=\"link\">cassini</a>, <a \n        href=\"pygeodesy.resections-module.html#pierlot\" \n        class=\"link\">pierlot</a>, <a \n        href=\"pygeodesy.resections-module.html#pierlotx\" \n        class=\"link\">pierlotx</a> and <a \n        href=\"pygeodesy.resections-module.html#tienstra7\" \n        class=\"link\">tienstra7</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"pierlot\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">pierlot</span>&nbsp;(<span class=\"sig-arg\">point1</span>,\n        <span class=\"sig-arg\">point2</span>,\n        <span class=\"sig-arg\">point3</span>,\n        <span class=\"sig-arg\">alpha12</span>,\n        <span class=\"sig-arg\">alpha23</span>,\n        <span class=\"sig-arg\">useZ</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">eps</span>=<span class=\"sig-default\">2.220446049250313e-16</span>,\n        <span class=\"sig-arg\">**Clas_and_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>3-Point resection using <a \n  href=\"http://www.Telecom.ULg.ac.BE/publi/publications/pierlot/Pierlot2014ANewThree\"\n  target=\"_top\">Pierlot</a>'s method <code>ToTal</code> with \n  <i>approximate</i> limits for the (pseudo-)singularities.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>point1</code></strong> - First point (<code>Cartesian</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <code>Vector3Tuple</code>, \n          <code>Vector4Tuple</code> or <code>Vector2Tuple</code> if \n          <code><b>useZ</b>=False</code>).</li>\n        <li><strong class=\"pname\"><code>point2</code></strong> - Second point (<code>Cartesian</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <code>Vector3Tuple</code>, \n          <code>Vector4Tuple</code> or <code>Vector2Tuple</code> if \n          <code><b>useZ</b>=False</code>).</li>\n        <li><strong class=\"pname\"><code>point3</code></strong> - Third point (<code>Cartesian</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <code>Vector3Tuple</code>, \n          <code>Vector4Tuple</code> or <code>Vector2Tuple</code> if \n          <code><b>useZ</b>=False</code>).</li>\n        <li><strong class=\"pname\"><code>alpha12</code></strong> - Angle subtended from <b><code>point1</code></b> to \n          <b><code>point2</code></b> or <b><code>alpha2 - alpha1</code></b>\n          (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>alpha23</code></strong> - Angle subtended from <b><code>point2</code></b> to \n          <b><code>point3</code></b> or <b><code>alpha3 - \n          alpha2</code></b>(<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>useZ</code></strong> - If <code>True</code>, interpolate the survey point's Z component,\n          otherwise use <code>z=INT0</code> (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>eps</code></strong> - Tolerance for <code>cot</code>angent (pseudo-)singularities \n          (<code>float</code>).</li>\n        <li><strong class=\"pname\"><code>Clas_and_kwds</code></strong> - Optional class <code><b>Clas</b>=<b>point1</b>.classof</code> to \n          return the survey point with optionally other \n          <b><code>Clas</code></b> keyword arguments to instantiate the \n          survey point.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The survey (or robot) point, an instance of \n          <b><code>Clas</code></b> or <b><code>point1</code></b>'s \n          (sub-)class.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.resections.ResectionError-class.html\">ResectionError</a></strong></code> - Near-coincident, -colinear or -concyclic points or invalid \n        <b><code>alpha12</code></b> or <b><code>alpha23</code></b> or \n        non-positive <b><code>eps</code></b>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>point1</code></b>, <b><code>point2</code></b> or \n        <b><code>point3</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        Typically, <b><code>point1</code></b>, <b><code>point2</code></b> \n        and <b><code>point3</code></b> are ordered by angle, modulo 360, \n        counter-clockwise.\n      </p>\n      <p><strong>See Also:</strong>\n        <i>Pierlot</i>'s C function <a \n        href=\"http://www.Telecom.ULg.ac.BE/triangulation/doc/total_8c_source.html\"\n        target=\"_top\">triangulationPierlot</a>, <a \n        href=\"https://ORBi.ULiege.BE/bitstream/2268/157469/1/Pierlot2014ANewThree.pdf\"\n        target=\"_top\">V. Pierlot, M. Van Droogenbroeck, &quot;A New Three \n        Object Triangulation Algorithm for Mobile Robot \n        Positioning&quot;</a>, <a \n        href=\"http://www.Telecom.ULg.ac.BE/triangulation\" \n        target=\"_top\">Vincent Pierlot, Marc Van Droogenbroeck, &quot;18 \n        Triangulation Algorithms for 2D Positioning (also known as the \n        Resection Problem)&quot;</a> and functions <a \n        href=\"pygeodesy.resections-module.html#pierlotx\" \n        class=\"link\">pierlotx</a>, <a \n        href=\"pygeodesy.resections-module.html#cassini\" \n        class=\"link\">cassini</a>, <a \n        href=\"pygeodesy.resections-module.html#collins5\" \n        class=\"link\">collins5</a> and <a \n        href=\"pygeodesy.resections-module.html#tienstra7\" \n        class=\"link\">tienstra7</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"pierlotx\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">pierlotx</span>&nbsp;(<span class=\"sig-arg\">point1</span>,\n        <span class=\"sig-arg\">point2</span>,\n        <span class=\"sig-arg\">point3</span>,\n        <span class=\"sig-arg\">alpha1</span>,\n        <span class=\"sig-arg\">alpha2</span>,\n        <span class=\"sig-arg\">alpha3</span>,\n        <span class=\"sig-arg\">useZ</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">**Clas_and_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>3-Point resection using <a \n  href=\"http://www.Telecom.ULg.ac.BE/publi/publications/pierlot/Pierlot2014ANewThree\"\n  target=\"_top\">Pierlot</a>'s method <code>ToTal</code> with <i>exact</i> \n  limits for the (pseudo-)singularities.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>point1</code></strong> - First point (<code>Cartesian</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <code>Vector3Tuple</code>, \n          <code>Vector4Tuple</code> or <code>Vector2Tuple</code> if \n          <code><b>useZ</b>=False</code>).</li>\n        <li><strong class=\"pname\"><code>point2</code></strong> - Second point (<code>Cartesian</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <code>Vector3Tuple</code>, \n          <code>Vector4Tuple</code> or <code>Vector2Tuple</code> if \n          <code><b>useZ</b>=False</code>).</li>\n        <li><strong class=\"pname\"><code>point3</code></strong> - Third point (<code>Cartesian</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <code>Vector3Tuple</code>, \n          <code>Vector4Tuple</code> or <code>Vector2Tuple</code> if \n          <code><b>useZ</b>=False</code>).</li>\n        <li><strong class=\"pname\"><code>alpha1</code></strong> - Angle at <b><code>point1</code></b> (<code>degrees</code>, \n          counter-clockwise).</li>\n        <li><strong class=\"pname\"><code>alpha2</code></strong> - Angle at <b><code>point2</code></b> (<code>degrees</code>, \n          counter-clockwise).</li>\n        <li><strong class=\"pname\"><code>alpha3</code></strong> - Angle at <b><code>point3</code></b> (<code>degrees</code>, \n          counter-clockwise).</li>\n        <li><strong class=\"pname\"><code>useZ</code></strong> - If <code>True</code>, interpolate the survey point's Z component,\n          otherwise use <code>z=INT0</code> (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>Clas_and_kwds</code></strong> - Optional class <code><b>Clas</b>=<b>point1</b>.classof</code> to \n          return the survey point with optionally other \n          <b><code>Clas</code></b> keyword arguments to instantiate the \n          survey point.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The survey (or robot) point, an instance of \n          <b><code>Clas</code></b> or <b><code>point1</code></b>'s \n          (sub-)class.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.resections.ResectionError-class.html\">ResectionError</a></strong></code> - Near-coincident, -colinear or -concyclic points or invalid \n        <b><code>alpha1</code></b>, <b><code>alpha2</code></b> or \n        <b><code>alpha3</code></b>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>point1</code></b>, <b><code>point2</code></b> or \n        <b><code>point3</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <i>Pierlot</i>'s C function <a \n        href=\"http://www.Telecom.ULg.ac.BE/triangulation/doc/total_8c_source.html\"\n        target=\"_top\">triangulationPierlot2</a> and function <a \n        href=\"pygeodesy.resections-module.html#pierlot\" \n        class=\"link\">pierlot</a>, <a \n        href=\"pygeodesy.resections-module.html#cassini\" \n        class=\"link\">cassini</a>, <a \n        href=\"pygeodesy.resections-module.html#collins5\" \n        class=\"link\">collins5</a> and <a \n        href=\"pygeodesy.resections-module.html#tienstra7\" \n        class=\"link\">tienstra7</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"snellius3\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">snellius3</span>&nbsp;(<span class=\"sig-arg\">a</span>,\n        <span class=\"sig-arg\">b</span>,\n        <span class=\"sig-arg\">degC</span>,\n        <span class=\"sig-arg\">alpha</span>,\n        <span class=\"sig-arg\">beta</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Snellius' surveying using <a \n  href=\"https://WikiPedia.org/wiki/Snellius&#8211;Pothenot_problem\" \n  target=\"_top\">Snellius Pothenot</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>a</code></strong> - Length of the triangle side between corners <code>B</code> and \n          <code>C</code> and opposite of triangle corner <code>A</code> \n          (<code>scalar</code>, non-negative <code>meter</code>, \n          conventionally).</li>\n        <li><strong class=\"pname\"><code>b</code></strong> - Length of the triangle side between corners <code>C</code> and \n          <code>A</code> and opposite of triangle corner <code>B</code> \n          (<code>scalar</code>, non-negative <code>meter</code>, \n          conventionally).</li>\n        <li><strong class=\"pname\"><code>degC</code></strong> - Angle at triangle corner <code>C</code>, opposite triangle side \n          <code>c</code> (non-negative <code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>alpha</code></strong> - Angle subtended by triangle side <b><code>b</code></b> \n          (non-negative <code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>beta</code></strong> - Angle subtended by triangle side <b><code>a</code></b> \n          (non-negative <code>degrees</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><a href=\"pygeodesy.resections.Survey3Tuple-class.html\" \n          class=\"link\">Survey3Tuple</a><code>(PA, PB, PC)</code> with \n          distance from survey point <code>P</code> to each of the triangle\n          corners <code>A</code>, <code>B</code> and <code>C</code>, same \n          units as triangle sides <b><code>a</code></b>, \n          <b><code>b</code></b> and <b><code>c</code></b>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.TriangleError-class.html\">TriangleError</a></strong></code> - Invalid <b><code>a</code></b>, <b><code>b</code></b> or \n        <b><code>degC</code></b> or negative <b><code>alpha</code></b> or \n        <b><code>beta</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.resections-module.html#wildberger3\" \n        class=\"link\">wildberger3</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"tienstra7\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">tienstra7</span>&nbsp;(<span class=\"sig-arg\">pointA</span>,\n        <span class=\"sig-arg\">pointB</span>,\n        <span class=\"sig-arg\">pointC</span>,\n        <span class=\"sig-arg\">alpha</span>,\n        <span class=\"sig-arg\">beta</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">gamma</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">useZ</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">**Clas_and_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>3-Point resection using <a \n  href=\"https://WikiPedia.org/wiki/Tienstra_formula\" \n  target=\"_top\">Tienstra</a>'s formula.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>pointA</code></strong> - First point (<code>Cartesian</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <code>Vector3Tuple</code>, \n          <code>Vector4Tuple</code> or <code>Vector2Tuple</code> if \n          <code><b>useZ</b>=False</code>).</li>\n        <li><strong class=\"pname\"><code>pointB</code></strong> - Second point (<code>Cartesian</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <code>Vector3Tuple</code>, \n          <code>Vector4Tuple</code> or <code>Vector2Tuple</code> if \n          <code><b>useZ</b>=False</code>).</li>\n        <li><strong class=\"pname\"><code>pointC</code></strong> - Third point (<code>Cartesian</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <code>Vector3Tuple</code>, \n          <code>Vector4Tuple</code> or <code>Vector2Tuple</code> if \n          <code><b>useZ</b>=False</code>).</li>\n        <li><strong class=\"pname\"><code>alpha</code></strong> - Angle subtended by triangle side <code>a</code> from \n          <b><code>pointB</code></b> to <b><code>pointC</code></b> \n          (<code>degrees</code>, non-negative).</li>\n        <li><strong class=\"pname\"><code>beta</code></strong> - Angle subtended by triangle side <code>b</code> from \n          <b><code>pointA</code></b> to <b><code>pointC</code></b> \n          (<code>degrees</code>, non-negative) or <code>None</code> if \n          <code><b>gamma</b> is not None</code>.</li>\n        <li><strong class=\"pname\"><code>gamma</code></strong> - Angle subtended by triangle side <code>c</code> from \n          <b><code>pointA</code></b> to <b><code>pointB</code></b> \n          (<code>degrees</code>, non-negative) or <code>None</code> if \n          <code><b>beta</b> is not None</code>.</li>\n        <li><strong class=\"pname\"><code>useZ</code></strong> - If <code>True</code>, use and interpolate the Z component, \n          otherwise force <code>z=INT0</code> (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>Clas_and_kwds</code></strong> - Optional class <code><b>Clas</b>=<b>pointA</b>.classof</code> to \n          return the survey point with optionally other \n          <b><code>Clas</code></b> keyword arguments to instantiate the \n          survey point.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><a href=\"pygeodesy.resections.Tienstra7Tuple-class.html\" \n          class=\"link\">Tienstra7Tuple</a><code>(pointP, A, B, C, a, b, \n          c)</code> with survey <code>pointP</code>, an instance of \n          <b><code>Clas</code></b> or <b><code>pointA</code></b>'s \n          (sub-)class, with triangle angles <code>A</code> at \n          <b><code>pointA</code></b>, <code>B</code> at \n          <b><code>pointB</code></b> and <code>C</code> at \n          <b><code>pointC</code></b> in <code>degrees</code> and with \n          triangle sides <code>a</code>, <code>b</code> and <code>c</code> \n          in <code>meter</code>, conventionally.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.resections.ResectionError-class.html\">ResectionError</a></strong></code> - Near-coincident, -colinear or -concyclic points or sum of \n        <b><code>alpha</code></b>, <b><code>beta</code></b> and \n        <b><code>gamma</code></b> not <code>360</code> or negative \n        <b><code>alpha</code></b>, <b><code>beta</code></b> or \n        <b><code>gamma</code></b>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>pointA</code></b>, <b><code>pointB</code></b> or \n        <b><code>pointC</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        Points <b><code>pointA</code></b>, <b><code>pointB</code></b> and \n        <b><code>pointC</code></b> are ordered clockwise.\n      </p>\n      <p><strong>See Also:</strong>\n        <a href=\"http://MesaMike.org/geocache/GC1B0Q9/tienstra/\" \n        target=\"_top\">3-Point Resection Solver</a>, <a \n        href=\"http://www.Telecom.ULg.ac.BE/publi/publications/pierlot/Pierlot2014ANewThree/\"\n        target=\"_top\">V. Pierlot, M. Van Droogenbroeck, &quot;A New Three \n        Object Triangulation...&quot;</a>, <a \n        href=\"http://www.Telecom.ULg.ac.BE/triangulation/\" target=\"_top\">18\n        Triangulation Algorithms...</a> and functions <a \n        href=\"pygeodesy.resections-module.html#cassini\" \n        class=\"link\">cassini</a>, <a \n        href=\"pygeodesy.resections-module.html#collins5\" \n        class=\"link\">collins5</a>, <a \n        href=\"pygeodesy.resections-module.html#pierlot\" \n        class=\"link\">pierlot</a> and <a \n        href=\"pygeodesy.resections-module.html#pierlotx\" \n        class=\"link\">pierlotx</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"triAngle\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">triAngle</span>&nbsp;(<span class=\"sig-arg\">a</span>,\n        <span class=\"sig-arg\">b</span>,\n        <span class=\"sig-arg\">c</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute one angle of a triangle.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>a</code></strong> - Adjacent triangle side length (<code>scalar</code>, non-negative \n          <code>meter</code>, conventionally).</li>\n        <li><strong class=\"pname\"><code>b</code></strong> - Adjacent triangle side length (<code>scalar</code>, non-negative \n          <code>meter</code>, conventionally).</li>\n        <li><strong class=\"pname\"><code>c</code></strong> - Opposite triangle side length (<code>scalar</code>, non-negative \n          <code>meter</code>, conventionally).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Angle in <code>radians</code> at triangle corner <code>C</code>, \n          opposite triangle side <b><code>c</code></b>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.TriangleError-class.html\">TriangleError</a></strong></code> - Invalid or negative <b><code>a</code></b>, <b><code>b</code></b> or\n        <b><code>c</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Functions <a href=\"pygeodesy.resections-module.html#triAngle5\" \n        class=\"link\">triAngle5</a> and <a \n        href=\"pygeodesy.resections-module.html#triSide\" \n        class=\"link\">triSide</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"triAngle5\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">triAngle5</span>&nbsp;(<span class=\"sig-arg\">a</span>,\n        <span class=\"sig-arg\">b</span>,\n        <span class=\"sig-arg\">c</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the angles of a triangle.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>a</code></strong> - Length of the triangle side opposite of triangle corner \n          <code>A</code> (<code>scalar</code>, non-negative \n          <code>meter</code>, conventionally).</li>\n        <li><strong class=\"pname\"><code>b</code></strong> - Length of the triangle side opposite of triangle corner \n          <code>B</code> (<code>scalar</code>, non-negative \n          <code>meter</code>, conventionally).</li>\n        <li><strong class=\"pname\"><code>c</code></strong> - Length of the triangle side opposite of triangle corner \n          <code>C</code> (<code>scalar</code>, non-negative \n          <code>meter</code>, conventionally).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><a href=\"pygeodesy.resections.TriAngle5Tuple-class.html\" \n          class=\"link\">TriAngle5Tuple</a><code>(radA, radB, radC, rIn, \n          area)</code> with angles <code>radA</code>, <code>radB</code> and\n          <code>radC</code> at triangle corners <code>A</code>, \n          <code>B</code> and <code>C</code>, all in <code>radians</code>, \n          the <code>InCircle</code> radius <code>rIn</code> aka \n          <code>inradius</code>, same units as triangle sides \n          <b><code>a</code></b>, <b><code>b</code></b> and \n          <b><code>c</code></b> and the triangle <code>area</code> in the \n          same units <i>squared</i>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.TriangleError-class.html\">TriangleError</a></strong></code> - Invalid or negative <b><code>a</code></b>, <b><code>b</code></b> or\n        <b><code>c</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Functions <a href=\"pygeodesy.resections-module.html#triAngle\" \n        class=\"link\">triAngle</a> and <a \n        href=\"pygeodesy.resections-module.html#triArea\" \n        class=\"link\">triArea</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"triArea\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">triArea</span>&nbsp;(<span class=\"sig-arg\">a</span>,\n        <span class=\"sig-arg\">b</span>,\n        <span class=\"sig-arg\">c</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the area of a triangle using <a \n  href=\"https://WikiPedia.org/wiki/Heron%27s_formula\" \n  target=\"_top\">Heron's</a> <code>stable</code> formula.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>a</code></strong> - Length of the triangle side opposite of triangle corner \n          <code>A</code> (<code>scalar</code>, non-negative \n          <code>meter</code>, conventionally).</li>\n        <li><strong class=\"pname\"><code>b</code></strong> - Length of the triangle side opposite of triangle corner \n          <code>B</code> (<code>scalar</code>, non-negative \n          <code>meter</code>, conventionally).</li>\n        <li><strong class=\"pname\"><code>c</code></strong> - Length of the triangle side opposite of triangle corner \n          <code>C</code> (<code>scalar</code>, non-negative \n          <code>meter</code>, conventionally).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The triangle area (<code>float</code>, conventionally \n          <code>meter</code> or same units as <b><code>a</code></b>, \n          <b><code>b</code></b> and <b><code>c</code></b> <i>squared</i>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.TriangleError-class.html\">TriangleError</a></strong></code> - Invalid or negative <b><code>a</code></b>, <b><code>b</code></b> or\n        <b><code>c</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"triSide\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">triSide</span>&nbsp;(<span class=\"sig-arg\">a</span>,\n        <span class=\"sig-arg\">b</span>,\n        <span class=\"sig-arg\">radC</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute one side of a triangle.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>a</code></strong> - Adjacent triangle side length (<code>scalar</code>, non-negative \n          <code>meter</code>, conventionally).</li>\n        <li><strong class=\"pname\"><code>b</code></strong> - Adjacent triangle side length (<code>scalar</code>, non-negative \n          <code>meter</code>, conventionally).</li>\n        <li><strong class=\"pname\"><code>radC</code></strong> - Angle included by sides <b><code>a</code></b> and \n          <b><code>b</code></b>, opposite triangle side <code>c</code> \n          (<code>radians</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Length of triangle side <code>c</code>, opposite triangle corner \n          <code>C</code> and angle <b><code>radC</code></b>, same units as \n          <b><code>a</code></b> and <b><code>b</code></b>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.TriangleError-class.html\">TriangleError</a></strong></code> - Invalid <b><code>a</code></b>, <b><code>b</code></b> or \n        <b><code>radC</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Functions <a href=\"pygeodesy.fmath-module.html#sqrt_a\" \n        class=\"link\">sqrt_a</a>, <a \n        href=\"pygeodesy.resections-module.html#triAngle\" \n        class=\"link\">triAngle</a>, <a \n        href=\"pygeodesy.resections-module.html#triSide2\" \n        class=\"link\">triSide2</a> and <a \n        href=\"pygeodesy.resections-module.html#triSide4\" \n        class=\"link\">triSide4</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"triSide2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">triSide2</span>&nbsp;(<span class=\"sig-arg\">b</span>,\n        <span class=\"sig-arg\">c</span>,\n        <span class=\"sig-arg\">radB</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute a side and its opposite angle of a triangle.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>b</code></strong> - Adjacent triangle side length (<code>scalar</code>, non-negative \n          <code>meter</code>, conventionally).</li>\n        <li><strong class=\"pname\"><code>c</code></strong> - Adjacent triangle side length (<code>scalar</code>, non-negative \n          <code>meter</code>, conventionally).</li>\n        <li><strong class=\"pname\"><code>radB</code></strong> - Angle included by sides <b><code>a</code></b> and \n          <b><code>c</code></b>, opposite triangle side <code>b</code> \n          (<code>radians</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><a href=\"pygeodesy.resections.TriSide2Tuple-class.html\" \n          class=\"link\">TriSide2Tuple</a><code>(a, radA)</code> with \n          triangle angle <code>radA</code> in <code>radians</code> and \n          length of the opposite triangle side <code>a</code>, same units \n          as <b><code>b</code></b> and <b><code>c</code></b>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.TriangleError-class.html\">TriangleError</a></strong></code> - Invalid <b><code>b</code></b> or <b><code>c</code></b> or either \n        <b><code>b</code></b> or <b><code>radB</code></b> near zero.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Functions <a href=\"pygeodesy.fmath-module.html#sqrt_a\" \n        class=\"link\">sqrt_a</a>, <a \n        href=\"pygeodesy.resections-module.html#triSide\" \n        class=\"link\">triSide</a> and <a \n        href=\"pygeodesy.resections-module.html#triSide4\" \n        class=\"link\">triSide4</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"triSide4\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">triSide4</span>&nbsp;(<span class=\"sig-arg\">radA</span>,\n        <span class=\"sig-arg\">radB</span>,\n        <span class=\"sig-arg\">c</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute two sides and the height of a triangle.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>radA</code></strong> - Angle at triangle corner <code>A</code>, opposite triangle side \n          <code>a</code> (non-negative <code>radians</code>).</li>\n        <li><strong class=\"pname\"><code>radB</code></strong> - Angle at triangle corner <code>B</code>, opposite triangle side \n          <code>b</code> (non-negative <code>radians</code>).</li>\n        <li><strong class=\"pname\"><code>c</code></strong> - Length of triangle side between triangle corners <code>A</code> \n          and <code>B</code>, (<code>scalar</code>, non-negative \n          <code>meter</code>, conventionally).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><a href=\"pygeodesy.resections.TriSide4Tuple-class.html\" \n          class=\"link\">TriSide4Tuple</a><code>(a, b, radC, d)</code> with \n          triangle sides <code>a</code> and <code>b</code> and triangle \n          height <code>d</code> perpendicular to triangle side \n          <b><code>c</code></b>, all in the same units as \n          <b><code>c</code></b> and interior angle <code>radC</code> in \n          <code>radians</code> at triangle corner <code>C</code>, opposite \n          triangle side <b><code>c</code></b>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.TriangleError-class.html\">TriangleError</a></strong></code> - Invalid or negative <b><code>radA</code></b>, \n        <b><code>radB</code></b> or <b><code>c</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"https://WikiPedia.org/wiki/Triangulation_(surveying)\" \n        target=\"_top\">Triangulation, Surveying</a> and functions <a \n        href=\"pygeodesy.fmath-module.html#sqrt_a\" class=\"link\">sqrt_a</a>, \n        <a href=\"pygeodesy.resections-module.html#triSide\" \n        class=\"link\">triSide</a> and <a \n        href=\"pygeodesy.resections-module.html#triSide2\" \n        class=\"link\">triSide2</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"wildberger3\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">wildberger3</span>&nbsp;(<span class=\"sig-arg\">a</span>,\n        <span class=\"sig-arg\">b</span>,\n        <span class=\"sig-arg\">c</span>,\n        <span class=\"sig-arg\">alpha</span>,\n        <span class=\"sig-arg\">beta</span>,\n        <span class=\"sig-arg\">R3</span>=<span class=\"sig-default\">&lt;built-in function min&gt;</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Snellius' surveying using <a \n  href=\"https://WikiPedia.org/wiki/Snellius&#8211;Pothenot_problem\" \n  target=\"_top\">Rational Trigonometry</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>a</code></strong> - Length of the triangle side between corners <code>B</code> and \n          <code>C</code> and opposite of triangle corner <code>A</code> \n          (<code>scalar</code>, non-negative <code>meter</code>, \n          conventionally).</li>\n        <li><strong class=\"pname\"><code>b</code></strong> - Length of the triangle side between corners <code>C</code> and \n          <code>A</code> and opposite of triangle corner <code>B</code> \n          (<code>scalar</code>, non-negative <code>meter</code>, \n          conventionally).</li>\n        <li><strong class=\"pname\"><code>c</code></strong> - Length of the triangle side between corners <code>A</code> and \n          <code>B</code> and opposite of triangle corner <code>C</code> \n          (<code>scalar</code>, non-negative <code>meter</code>, \n          conventionally).</li>\n        <li><strong class=\"pname\"><code>alpha</code></strong> - Angle subtended by triangle side <b><code>b</code></b> \n          (<code>degrees</code>, non-negative).</li>\n        <li><strong class=\"pname\"><code>beta</code></strong> - Angle subtended by triangle side <b><code>a</code></b> \n          (<code>degrees</code>, non-negative).</li>\n        <li><strong class=\"pname\"><code>R3</code></strong> - Callable to determine <code>R3</code> from <code>(R3 - C)**2 = \n          D</code>, typically standard Python function <code>min</code> or \n          <code>max</code>, invoked with 2 arguments, each \n          <code>float</code> or an <a \n          href=\"pygeodesy.fsums.Fsum-class.html\" class=\"link\">Fsum</a>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><a href=\"pygeodesy.resections.Survey3Tuple-class.html\" \n          class=\"link\">Survey3Tuple</a><code>(PA, PB, PC)</code> with \n          distance from survey point <code>P</code> to each of the triangle\n          corners <code>A</code>, <code>B</code> and <code>C</code>, same \n          units as <b><code>a</code></b>, <b><code>b</code></b> and \n          <b><code>c</code></b>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.TriangleError-class.html\">TriangleError</a></strong></code> - Invalid <b><code>a</code></b>, <b><code>b</code></b> or \n        <b><code>c</code></b> or negative <b><code>alpha</code></b> or \n        <b><code>beta</code></b> or <b><code>R3</code></b> not \n        <code>callable</code>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a \n        href=\"https://Math.Sc.Chula.ac.TH/cjm/content/survey-article-greek-geometry-rational-trigonometry-and-snellius-&#8211;-pothenot-surveying\"\n        target=\"_top\">Wildberger, Norman J.</a>, <a \n        href=\"http://www.MS.LT/derlius/WildbergerDivineProportions.pdf\" \n        target=\"_top\">Devine Proportions, page 252</a> and function <a \n        href=\"pygeodesy.resections-module.html#snellius3\" \n        class=\"link\">snellius3</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.resections.Collins5Tuple-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.resections.Collins5Tuple</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.resections-module.html\">Module&nbsp;resections</a> ::\n        Class&nbsp;Collins5Tuple\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.resections.Collins5Tuple-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Collins5Tuple</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n   object --+        \n            |        \n        tuple --+    \n                |    \n   object --+   |    \n            |   |    \n <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n                |    \n<a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a> --+\n                    |\n                   <strong class=\"uidshort\">Collins5Tuple</strong>\n</pre>\n\n<hr />\n<p>5-Tuple <code>(pointP, pointH, a, b, c)</code> with survey \n  <code>pointP</code>, auxiliary <code>pointH</code>, each an instance of \n  <b><code>pointA</code></b>'s (sub-)class and triangle sides \n  <code>a</code>, <code>b</code> and <code>c</code> in <code>meter</code>, \n  conventionally.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__delattr__\">__delattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__getattr__\">__getattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__setattr__\">__setattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#items\">items</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iteritems\">iteritems</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iterunits\">iterunits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#reUnit\">reUnit</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toUnits\">toUnits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>tuple</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__eq__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__iter__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__rmul__</code>,\n      <code>count</code>,\n      <code>index</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__new__\">__new__</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.resections.ResectionError-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.resections.ResectionError</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.resections-module.html\">Module&nbsp;resections</a> ::\n        Class&nbsp;ResectionError\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.resections.ResectionError-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class ResectionError</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n              object --+                    \n                       |                    \nexceptions.BaseException --+                \n                           |                \n        exceptions.Exception --+            \n                               |            \n        exceptions.StandardError --+        \n                                   |        \n               exceptions.ValueError --+    \n                                       |    \n                      errors._ValueError --+\n                                           |\n                                          <strong class=\"uidshort\">ResectionError</strong>\n</pre>\n\n<hr />\n<p>Error raised for issues in <a href=\"pygeodesy.resections-module.html\" \n  class=\"link\">pygeodesy.resections</a>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>errors._ValueError</code></b>:\n      <code>__init__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.ValueError</code></b>:\n      <code>__new__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.BaseException</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getslice__</code>,\n      <code>__reduce__</code>,\n      <code>__repr__</code>,\n      <code>__setattr__</code>,\n      <code>__setstate__</code>,\n      <code>__str__</code>,\n      <code>__unicode__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__format__</code>,\n      <code>__hash__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.BaseException</code></b>:\n      <code>args</code>,\n      <code>message</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.resections.Survey3Tuple-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.resections.Survey3Tuple</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.resections-module.html\">Module&nbsp;resections</a> ::\n        Class&nbsp;Survey3Tuple\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.resections.Survey3Tuple-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Survey3Tuple</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n   object --+        \n            |        \n        tuple --+    \n                |    \n   object --+   |    \n            |   |    \n <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n                |    \n<a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a> --+\n                    |\n                   <strong class=\"uidshort\">Survey3Tuple</strong>\n</pre>\n\n<hr />\n<p>3-Tuple <code>(PA, PB, PC)</code> with distance from survey point \n  <code>P</code> to each of the triangle corners <code>A</code>, \n  <code>B</code> and <code>C</code> in <code>meter</code>, \n  conventionally.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__delattr__\">__delattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__getattr__\">__getattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__setattr__\">__setattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#items\">items</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iteritems\">iteritems</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iterunits\">iterunits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#reUnit\">reUnit</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toUnits\">toUnits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>tuple</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__eq__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__iter__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__rmul__</code>,\n      <code>count</code>,\n      <code>index</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__new__\">__new__</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.resections.Tienstra7Tuple-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.resections.Tienstra7Tuple</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.resections-module.html\">Module&nbsp;resections</a> ::\n        Class&nbsp;Tienstra7Tuple\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.resections.Tienstra7Tuple-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Tienstra7Tuple</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n   object --+        \n            |        \n        tuple --+    \n                |    \n   object --+   |    \n            |   |    \n <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n                |    \n<a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a> --+\n                    |\n                   <strong class=\"uidshort\">Tienstra7Tuple</strong>\n</pre>\n\n<hr />\n<p>7-Tuple <code>(pointP, A, B, C, a, b, c)</code> with survey \n  <code>pointP</code>, interior triangle angles <code>A</code>, \n  <code>B</code> and <code>C</code> in <code>degrees</code> and triangle \n  sides <code>a</code>, <code>b</code> and <code>c</code> in \n  <code>meter</code>, conventionally.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__delattr__\">__delattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__getattr__\">__getattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__setattr__\">__setattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#items\">items</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iteritems\">iteritems</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iterunits\">iterunits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#reUnit\">reUnit</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toUnits\">toUnits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>tuple</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__eq__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__iter__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__rmul__</code>,\n      <code>count</code>,\n      <code>index</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__new__\">__new__</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.resections.TriAngle5Tuple-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.resections.TriAngle5Tuple</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.resections-module.html\">Module&nbsp;resections</a> ::\n        Class&nbsp;TriAngle5Tuple\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.resections.TriAngle5Tuple-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class TriAngle5Tuple</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n   object --+        \n            |        \n        tuple --+    \n                |    \n   object --+   |    \n            |   |    \n <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n                |    \n<a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a> --+\n                    |\n                   <strong class=\"uidshort\">TriAngle5Tuple</strong>\n</pre>\n\n<hr />\n<p>5-Tuple <code>(radA, radB, radC, rIn, area)</code> with the interior \n  angles at triangle corners <code>A</code>, <code>B</code> and \n  <code>C</code> in <code>radians</code>, the <code>InCircle</code> radius \n  <code>rIn</code> aka <code>inradius</code> in <code>meter</code> and the \n  triangle <code>area</code> in <code>meter</code> <i>squared</i>, \n  conventionally.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__delattr__\">__delattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__getattr__\">__getattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__setattr__\">__setattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#items\">items</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iteritems\">iteritems</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iterunits\">iterunits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#reUnit\">reUnit</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toUnits\">toUnits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>tuple</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__eq__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__iter__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__rmul__</code>,\n      <code>count</code>,\n      <code>index</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__new__\">__new__</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.resections.TriSide2Tuple-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.resections.TriSide2Tuple</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.resections-module.html\">Module&nbsp;resections</a> ::\n        Class&nbsp;TriSide2Tuple\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.resections.TriSide2Tuple-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class TriSide2Tuple</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n   object --+        \n            |        \n        tuple --+    \n                |    \n   object --+   |    \n            |   |    \n <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n                |    \n<a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a> --+\n                    |\n                   <strong class=\"uidshort\">TriSide2Tuple</strong>\n</pre>\n\n<hr />\n<p>2-Tuple <code>(a, radA)</code> with triangle side <code>a</code> in \n  <code>meter</code>, conventionally and angle <code>radA</code> at the \n  opposite triangle corner in <code>radians</code>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__delattr__\">__delattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__getattr__\">__getattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__setattr__\">__setattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#items\">items</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iteritems\">iteritems</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iterunits\">iterunits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#reUnit\">reUnit</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toUnits\">toUnits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>tuple</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__eq__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__iter__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__rmul__</code>,\n      <code>count</code>,\n      <code>index</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__new__\">__new__</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.resections.TriSide4Tuple-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.resections.TriSide4Tuple</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.resections-module.html\">Module&nbsp;resections</a> ::\n        Class&nbsp;TriSide4Tuple\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.resections.TriSide4Tuple-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class TriSide4Tuple</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n   object --+        \n            |        \n        tuple --+    \n                |    \n   object --+   |    \n            |   |    \n <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n                |    \n<a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a> --+\n                    |\n                   <strong class=\"uidshort\">TriSide4Tuple</strong>\n</pre>\n\n<hr />\n<p>4-Tuple <code>(a, b, radC, d)</code> with interior angle \n  <code>radC</code> at triangle corner <code>C</code> in \n  <code>radians</code>with the length of triangle sides <code>a</code> and \n  <code>b</code> and with triangle height <code>d</code> perpendicular to \n  triangle side <code>c</code>, in the same units as triangle sides \n  <code>a</code> and <code>b</code>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__delattr__\">__delattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__getattr__\">__getattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__setattr__\">__setattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#items\">items</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iteritems\">iteritems</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iterunits\">iterunits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#reUnit\">reUnit</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toUnits\">toUnits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>tuple</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__eq__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__iter__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__rmul__</code>,\n      <code>count</code>,\n      <code>index</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__new__\">__new__</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.rhumb-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.rhumb</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        Package&nbsp;rhumb\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.rhumb-module.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PACKAGE DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Package rhumb</h1><p class=\"nomargin-top\"></p>\n<p>Package of lazily imported <code>rhumb</code> modules <a \n  href=\"pygeodesy.rhumb.aux_-module.html\" class=\"link\" \n  onclick=\"show_private();\">rhumb.aux_</a>, <a \n  href=\"pygeodesy.rhumb.ekx-module.html\" class=\"link\" \n  onclick=\"show_private();\">rhumb.ekx</a> and <a \n  href=\"pygeodesy.rhumb.solve-module.html\" class=\"link\" \n  onclick=\"show_private();\">rhumb.solve</a>.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Note:</strong>\n        <code>S12</code> area calculations in classes <a \n        href=\"pygeodesy.rhumb.aux_.RhumbAux-class.html\" \n        class=\"link\">RhumbAux</a> and <a \n        href=\"pygeodesy.rhumb.aux_.RhumbLineAux-class.html\" \n        class=\"link\">RhumbLineAux</a> depend on class <a \n        href=\"pygeodesy.auxilats.auxDST.AuxDST-class.html\" \n        class=\"link\">AuxDST</a> which requires <a \n        href=\"https://PyPI.org/project/numpy\" target=\"_top\">numpy</a> to be\n        installed, version 1.16 or newer.\n      </p>\n      <p><strong>Version:</strong>\n        25.12.06\n      </p>\n</div><!-- ==================== SUBMODULES ==================== -->\n<a name=\"section-Submodules\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Submodules</span></td>\n</tr>\n  <tr><td class=\"summary\">\n  <ul class=\"nomargin\">\n    <li class=\"private\"> <strong class=\"uidlink\"><a href=\"pygeodesy.rhumb.aux_-module.html\" onclick=\"show_private();\">pygeodesy.rhumb.aux_</a></strong>: <em class=\"summary\">A pure Python version of <i>Karney</i>'s <i>Auxiliary \n        Latitudes</i>, C++ classes <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Rhumb.html\"\n        target=\"_top\">Rhumb</a> and <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1RhumbLine.html\"\n        target=\"_top\">RhumbLine</a> from <i>GeographicLib version 2.2+</i> \n        renamed to <a href=\"pygeodesy.rhumb.aux_.RhumbAux-class.html\" \n        class=\"link\">RhumbAux</a> respectively <a \n        href=\"pygeodesy.rhumb.aux_.RhumbLineAux-class.html\" \n        class=\"link\">RhumbLineAux</a>.</em>    </li>\n    <li class=\"private\"> <strong class=\"uidlink\"><a href=\"pygeodesy.rhumb.bases-module.html\" onclick=\"show_private();\">pygeodesy.rhumb.bases</a></strong>: <em class=\"summary\">(INTERNAL) base classes <code>RhumbBase</code> and \n        <code>RhumbLineBase</code>, pure Python version of <i>Karney</i>'s \n        C++ classes <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Rhumb.html\"\n        target=\"_top\">Rhumb</a> and <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1RhumbLine.html\"\n        target=\"_top\">RhumbLine</a> from <i>GeographicLib versions 2.0</i> \n        and <i>2.2</i> and <i>Karney</i>'s C++ example <a \n        href=\"https://SourceForge.net/p/geographiclib/discussion/1026620/thread/2ddc295e/\"\n        target=\"_top\">Rhumb intersect</a>.</em>    </li>\n    <li class=\"private\"> <strong class=\"uidlink\"><a href=\"pygeodesy.rhumb.ekx-module.html\" onclick=\"show_private();\">pygeodesy.rhumb.ekx</a></strong>: <em class=\"summary\">A pure Python version of <i>Karney</i>'s <i>elliptic functions</i>,\n        <i>Kr&#252;ger series expansion</i>, C++ classes <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Rhumb.html\"\n        target=\"_top\">Rhumb</a> and and <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1RhumbLine.html\"\n        target=\"_top\">RhumbLine</a> from <i>GeographicLib version 2.0</i>, \n        kept for backward compatibility.</em>    </li>\n    <li class=\"private\"> <strong class=\"uidlink\"><a href=\"pygeodesy.rhumb.solve-module.html\" onclick=\"show_private();\">pygeodesy.rhumb.solve</a></strong>: <em class=\"summary\">Wrapper to invoke <i>Karney</i>'s <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/RhumbSolve.1.html\"\n        target=\"_top\">RhumbSolve</a> utility as an (exact) rhumb or rhumb \n        line from <i>either GeographicLib 2.0 or 2.2+</i>.</em>    </li>\n  </ul></td></tr>\n</table>\n\n<br />\n<!-- ==================== CLASSES ==================== -->\n<a name=\"section-Classes\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Classes</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.rhumb.aux_.RhumbAux-class.html\" class=\"summary-name\">RhumbAux</a><br />\n      Class to solve the <i>direct</i> and <i>inverse rhumb</i> problems,\n        based on <i>Auxiliary Latitudes</i> for accuracy near the poles.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.rhumb.aux_.RhumbLineAux-class.html\" class=\"summary-name\">RhumbLineAux</a><br />\n      Compute one or several points on a single rhumb line.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.rhumb.ekx.Rhumb-class.html\" class=\"summary-name\">Rhumb</a><br />\n      Class to solve the <i>direct</i> and <i>inverse rhumb</i> problems,\n        based on <i>elliptic functions</i> or <i>Kr&#252;ger series \n        expansion</i>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.rhumb.ekx.RhumbLine-class.html\" class=\"summary-name\">RhumbLine</a><br />\n      Compute one or several points on a single rhumb line.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.rhumb.solve.RhumbSolve-class.html\" class=\"summary-name\">RhumbSolve</a><br />\n      Wrapper to invoke <i>Karney</i>'s <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/RhumbSolve.1.html\"\n        target=\"_top\">RhumbSolve</a> like a class, similar to <a \n        href=\"pygeodesy.rhumb.ekx.Rhumb-class.html\" \n        class=\"link\">pygeodesy.Rhumb</a> and <a \n        href=\"pygeodesy.rhumb.aux_.RhumbAux-class.html\" \n        class=\"link\">pygeodesy.RhumbAux</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.rhumb.solve.RhumbLineSolve-class.html\" class=\"summary-name\">RhumbLineSolve</a><br />\n      Wrapper to invoke <i>Karney</i>'s <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/RhumbSolve.1.html\"\n        target=\"_top\">RhumbSolve</a> like a class, similar to <a \n        href=\"pygeodesy.rhumb.ekx.RhumbLine-class.html\" \n        class=\"link\">pygeodesy.RhumbLine</a> and <a \n        href=\"pygeodesy.rhumb.aux_.RhumbLineAux-class.html\" \n        class=\"link\">pygeodesy.RhumbLineAux</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.rhumb.solve.RhumbSolve7Tuple-class.html\" class=\"summary-name\">RhumbSolve7Tuple</a><br />\n      7-Tuple <code>(lat1, lon1, lat2, lon2, azi12, s12, S12)</code> with\n        lat- <code>lat1</code>, <code>lat2</code> and longitudes \n        <code>lon1</code>, <code>lon2</code> of both points, the azimuth of\n        the rhumb line <code>azi12</code>, the distance <code>s12</code> \n        and the area <code>S12</code> under the rhumb line between both \n        points.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.karney.Rhumb8Tuple-class.html\" class=\"summary-name\">Rhumb8Tuple</a><br />\n      8-Tuple <code>(lat1, lon1, lat2, lon2, azi12, s12, S12, a12)</code>\n        with lat- <code>lat1</code>, <code>lat2</code> and longitudes \n        <code>lon1</code>, <code>lon2</code> of both points, the azimuth of\n        the rhumb line <code>azi12</code>, the distance <code>s12</code>, \n        the area <code>S12</code> under the rhumb line and the angular \n        distance <code>a12</code> between both points.\n    </td>\n  </tr>\n</table>\n<!-- ==================== VARIABLES ==================== -->\n<a name=\"section-Variables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Variables</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"__all__\"></a><span class=\"summary-name\">__all__</span> = <code title=\"_ALL_LAZY.rhumb\">_ALL_LAZY.rhumb</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"__getattr__\"></a><span class=\"summary-name\">__getattr__</span> = <code title=\"_lazy_import_as(__name__)\">_lazy_import_as(__name__)</code>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.rhumb.aux_-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.rhumb.aux_</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.rhumb-module.html\">Package&nbsp;rhumb</a> ::\n        Module&nbsp;aux_\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.rhumb.aux_-module.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== MODULE DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Module aux_</h1><p class=\"nomargin-top\"></p>\n<p>A pure Python version of <i>Karney</i>'s <i>Auxiliary Latitudes</i>, \n  C++ classes <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Rhumb.html\"\n  target=\"_top\">Rhumb</a> and <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1RhumbLine.html\"\n  target=\"_top\">RhumbLine</a> from <i>GeographicLib version 2.2+</i> \n  renamed to <a href=\"pygeodesy.rhumb.aux_.RhumbAux-class.html\" \n  class=\"link\">RhumbAux</a> respectively <a \n  href=\"pygeodesy.rhumb.aux_.RhumbLineAux-class.html\" \n  class=\"link\">RhumbLineAux</a>.</p>\n  <p>Class <a href=\"pygeodesy.rhumb.aux_.RhumbLineAux-class.html\" \n  class=\"link\">RhumbLineAux</a> has been enhanced with methods \n  <code>Intersecant2</code>, <code>Intersection</code> and \n  <code>PlumbTo</code> to iteratively find the intersection of a rhumb line\n  and a circle or an other rhumb line, respectively a perpendicular \n  geodesic or other rhumb line.</p>\n  <p>For more details, see the <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/index.html\" \n  target=\"_top\">GeographicLib</a> <i>2.2</i> documentation, especially the \n  <a href=\"https://GeographicLib.SourceForge.io/C++/doc/annotated.html\" \n  target=\"_top\">Class List</a>, the background information on <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/rhumb.html\" \n  target=\"_top\">Rhumb lines</a>, utility <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/RhumbSolve.1.html\" \n  target=\"_top\">RhumbSolve</a> and <a \n  href=\"https://GeographicLib.SourceForge.io/cgi-bin/RhumbSolve\" \n  target=\"_top\">Online rhumb line calculations</a>.</p>\n  <p>Copyright (C) <a href=\"mailto:Karney@Alum.MIT.edu\" \n  target=\"_top\">Charles Karney</a> (2022-2024) and licensed under the \n  MIT/X11 License.  For more information, see the <a \n  href=\"https://GeographicLib.SourceForge.io\" \n  target=\"_top\">GeographicLib</a> documentation.</p>\n\n<hr />\n<div class=\"fields\">      <strong>Notes:</strong>\n      <ul class=\"nomargin-top\">\n        <li>\n        <code>S12</code> area calculations in classes <a \n        href=\"pygeodesy.rhumb.aux_.RhumbAux-class.html\" \n        class=\"link\">RhumbAux</a> and <a \n        href=\"pygeodesy.rhumb.aux_.RhumbLineAux-class.html\" \n        class=\"link\">RhumbLineAux</a> depend on class <a \n        href=\"pygeodesy.auxilats.auxDST.AuxDST-class.html\" \n        class=\"link\">AuxDST</a> which requires <a \n        href=\"https://PyPI.org/project/numpy\" target=\"_top\">numpy</a> to be\n        installed, version 1.16 or newer.\n        </li>\n        <li>\n        Windows reserves file names <a \n        href=\"https://learn.Microsoft.com/en-us/windows/win32/fileio/naming-a-file#naming-conventions\"\n        target=\"_top\">AUX, COM[#], CON, LPT[#], NUL, PRN</a> with and \n        without extension.\n        </li>\n      </ul>\n      <p><strong>Version:</strong>\n        25.08.31\n      </p>\n</div><!-- ==================== CLASSES ==================== -->\n<a name=\"section-Classes\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Classes</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.karney.Caps-class.html\" class=\"summary-name\">Caps</a><br />\n      <i>Enum</i>-style masks to be bit-<code>or</code>'ed to specify \n        <code>geodesic</code>, <code>rhumb</code> or <code>-lines</code> \n        capabilities (<code>caps</code>) and method results \n        (<code>outmask</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.rhumb.aux_.RhumbAux-class.html\" class=\"summary-name\">RhumbAux</a><br />\n      Class to solve the <i>direct</i> and <i>inverse rhumb</i> problems,\n        based on <i>Auxiliary Latitudes</i> for accuracy near the poles.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.rhumb.aux_.RhumbLineAux-class.html\" class=\"summary-name\">RhumbLineAux</a><br />\n      Compute one or several points on a single rhumb line.\n    </td>\n  </tr>\n</table>\n<!-- ==================== VARIABLES ==================== -->\n<a name=\"section-Variables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Variables</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"__all__\"></a><span class=\"summary-name\">__all__</span> = <code title=\"_ALL_LAZY.rhumb_aux_\">_ALL_LAZY.rhumb_aux_</code>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.rhumb.aux_.RhumbAux-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.rhumb.aux_.RhumbAux</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.rhumb-module.html\">Package&nbsp;rhumb</a> ::\n        <a href=\"pygeodesy.rhumb.aux_-module.html\" onclick=\"show_private();\">Module&nbsp;aux_</a> ::\n        Class&nbsp;RhumbAux\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.rhumb.aux_.RhumbAux-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class RhumbAux</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+                \n           |                \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+            \n               |            \n<a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+        \n                   |        \n    <a href=\"pygeodesy.karney._CapsBase-class.html\">karney._CapsBase</a> --+    \n                       |    \n         <a href=\"pygeodesy.rhumb.bases.RhumbBase-class.html\">bases.RhumbBase</a> --+\n                           |\n                          <strong class=\"uidshort\">RhumbAux</strong>\n</pre>\n\n<hr />\n<p>Class to solve the <i>direct</i> and <i>inverse rhumb</i> problems, \n  based on <i>Auxiliary Latitudes</i> for accuracy near the poles.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Note:</strong>\n        Package <a href=\"https://PyPI.org/project/numpy\" \n        target=\"_top\">numpy</a> must be installed, version 1.16 or later.\n      </p>\n</div><!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.rhumb.aux_.RhumbAux-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">a_earth</span>=<span class=\"summary-sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"summary-sig-arg\">f</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">exact</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">**TMorder_name</span>)</span><br />\n      New <code>RhumbAux</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.rhumb.aux_.RhumbAux-class.html#areaux\" class=\"summary-sig-name\">areaux</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">**exact</span>)</span><br />\n      Get this ellipsoid's <b><code>exact</code></b> surface area \n      (<code>meter</code> <i>squared</i>).</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.rhumb.bases.RhumbBase-class.html\">bases.RhumbBase</a></code></b>:\n      <code><a href=\"pygeodesy.rhumb.bases.RhumbBase-class.html#ArcDirect\">ArcDirect</a></code>,\n      <code><a href=\"pygeodesy.rhumb.bases.RhumbBase-class.html#Direct\">Direct</a></code>,\n      <code><a href=\"pygeodesy.rhumb.bases.RhumbBase-class.html#Direct8\">Direct8</a></code>,\n      <code><a href=\"pygeodesy.rhumb.bases.RhumbBase-class.html#DirectLine\">DirectLine</a></code>,\n      <code><a href=\"pygeodesy.rhumb.bases.RhumbBase-class.html#Inverse\">Inverse</a></code>,\n      <code><a href=\"pygeodesy.rhumb.bases.RhumbBase-class.html#Inverse8\">Inverse8</a></code>,\n      <code><a href=\"pygeodesy.rhumb.bases.RhumbBase-class.html#InverseLine\">InverseLine</a></code>,\n      <code><a href=\"pygeodesy.rhumb.bases.RhumbBase-class.html#Line\">Line</a></code>,\n      <code><a href=\"pygeodesy.rhumb.bases.RhumbBase-class.html#toStr\">toStr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.karney._CapsBase-class.html\">karney._CapsBase</a></code></b>:\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#caps_\">caps_</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#others\">others</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#toRepr\">toRepr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS VARIABLES ==================== -->\n<a name=\"section-ClassVariables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Class Variables</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.karney._CapsBase-class.html\">karney._CapsBase</a></code></b>:\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#ALL\">ALL</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#AREA\">AREA</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#AZIMUTH\">AZIMUTH</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#DISTANCE\">DISTANCE</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#DISTANCE_IN\">DISTANCE_IN</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#EMPTY\">EMPTY</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#GEODESICSCALE\">GEODESICSCALE</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#LATITUDE\">LATITUDE</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#LINE_CAPS\">LINE_CAPS</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#LINE_OFF\">LINE_OFF</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#LONGITUDE\">LONGITUDE</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#LONG_UNROLL\">LONG_UNROLL</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#NONFINITONAN\">NONFINITONAN</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#REDUCEDLENGTH\">REDUCEDLENGTH</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#STANDARD\">STANDARD</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#STANDARD_LINE\">STANDARD_LINE</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.rhumb.bases.RhumbBase-class.html\">bases.RhumbBase</a></code></b>:\n      <code><a href=\"pygeodesy.rhumb.bases.RhumbBase-class.html#RAorder\">RAorder</a></code>,\n      <code><a href=\"pygeodesy.rhumb.bases.RhumbBase-class.html#TMorder\">TMorder</a></code>,\n      <code><a href=\"pygeodesy.rhumb.bases.RhumbBase-class.html#a\">a</a></code>,\n      <code><a href=\"pygeodesy.rhumb.bases.RhumbBase-class.html#b\">b</a></code>,\n      <code><a href=\"pygeodesy.rhumb.bases.RhumbBase-class.html#datum\">datum</a></code>,\n      <code><a href=\"pygeodesy.rhumb.bases.RhumbBase-class.html#ellipsoid\">ellipsoid</a></code>,\n      <code><a href=\"pygeodesy.rhumb.bases.RhumbBase-class.html#equatoradius\">equatoradius</a></code>,\n      <code><a href=\"pygeodesy.rhumb.bases.RhumbBase-class.html#exact\">exact</a></code>,\n      <code><a href=\"pygeodesy.rhumb.bases.RhumbBase-class.html#f\">f</a></code>,\n      <code><a href=\"pygeodesy.rhumb.bases.RhumbBase-class.html#f_max\">f_max</a></code>,\n      <code><a href=\"pygeodesy.rhumb.bases.RhumbBase-class.html#flattening\">flattening</a></code>,\n      <code><a href=\"pygeodesy.rhumb.bases.RhumbBase-class.html#polaradius\">polaradius</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.karney._CapsBase-class.html\">karney._CapsBase</a></code></b>:\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#caps\">caps</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#debug\">debug</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">a_earth</span>=<span class=\"sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"sig-arg\">f</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">exact</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">**TMorder_name</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <code>RhumbAux</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>a_earth</code></strong> - This rhumb's earth model (<a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>, \n          <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a>, <a \n          href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>, 2-tuple <code>(a, f)</code>) or the \n          (equatorial) radius (<code>meter</code>, conventionally).</li>\n        <li><strong class=\"pname\"><code>f</code></strong> - The ellipsoid's flattening (<code>scalar</code>), required if \n          <b><code>a_earth</code></b> is <code>scalar</code>, ignored \n          otherwise.</li>\n        <li><strong class=\"pname\"><code>exact</code></strong> - If <code>True</code>, use the exact expressions for the \n          <i>Auxiliary Latitudes</i>, otherwise use the <i>Fourier</i> \n          series expansion (<code>bool</code>), see also property \n          <code>exact</code>.</li>\n        <li><strong class=\"pname\"><code>TMorder_name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>) and \n          optional keyword argument <code><b>TMorder</b>=6</code>, the \n          order of the <a \n          href=\"pygeodesy.ktm.KTransverseMercator-class.html\" \n          class=\"link\">KTransverseMercator</a>, see property \n          <code>TMorder</code>.</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ImportError</strong></code> - Package <code>numpy</code> not found or not installed, only \n        required for area <code>S12</code> when <code><b>exact</b> is \n        True</code>.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.RhumbError-class.html\">RhumbError</a></strong></code> - Invalid <b><code>a_earth</code></b>, <b><code>f</code></b> or \n        <b><code>TMorder</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"areaux\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">areaux</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">**exact</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Get this ellipsoid's <b><code>exact</code></b> surface area \n  (<code>meter</code> <i>squared</i>).</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>exact</code></strong> - Optional <code>exact</code> (<code>bool</code>), overriding this \n          rhumb's <code>exact</code> setting, if <code>True</code>, use the\n          exact expression for the authalic radius otherwise the \n          <i>Taylor</i> series.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The (signed?) surface area (<code>meter</code> <i>squared</i>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.AuxError-class.html\">AuxError</a></strong></code> - If <code><b>exact</b>=False</code> and <code>abs(flattening)</code>\n        exceeds property <code>f_max</code>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        The area of a polygon encircling a pole can be found by adding \n        <code>areaux / 2</code> to the sum of <code>S12</code> for each \n        side of the polygon.\n      </p>\n      <p><strong>See Also:</strong>\n        <a href=\"https://ArXiv.org/pdf/2303.03219.pdf\" target=\"_top\">The \n        area of rhumb polygons</a> and method <a \n        href=\"pygeodesy.auxilats.auxLat.AuxLat-class.html#AuthalicRadius2\" \n        class=\"link\">auxilats.AuxLat.AuthalicRadius2</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.rhumb.aux_.RhumbLineAux-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.rhumb.aux_.RhumbLineAux</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.rhumb-module.html\">Package&nbsp;rhumb</a> ::\n        <a href=\"pygeodesy.rhumb.aux_-module.html\" onclick=\"show_private();\">Module&nbsp;aux_</a> ::\n        Class&nbsp;RhumbLineAux\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.rhumb.aux_.RhumbLineAux-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class RhumbLineAux</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+                \n           |                \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+            \n               |            \n<a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+        \n                   |        \n    <a href=\"pygeodesy.karney._CapsBase-class.html\">karney._CapsBase</a> --+    \n                       |    \n     <a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html\">bases.RhumbLineBase</a> --+\n                           |\n                          <strong class=\"uidshort\">RhumbLineAux</strong>\n</pre>\n\n<hr />\n<p>Compute one or several points on a single rhumb line.</p>\n  <p>Class <code>RhumbLineAux</code> facilitates the determination of \n  points on a single rhumb line.  The starting point (<code>lat1</code>, \n  <code>lon1</code>) and the azimuth <code>azi12</code> are specified \n  once.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.rhumb.aux_.RhumbLineAux-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">rhumb</span>,\n        <span class=\"summary-sig-arg\">lat1</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">lon1</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">azi12</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**caps_name</span>)</span><br />\n      New <code>RhumbLineAux</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html\">bases.RhumbLineBase</a></code></b>:\n      <code><a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#ArcPosition\">ArcPosition</a></code>,\n      <code><a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#Intersecant2\">Intersecant2</a></code>,\n      <code><a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#Intersection\">Intersection</a></code>,\n      <code><a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#Inverse\">Inverse</a></code>,\n      <code><a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#NearestOn\">NearestOn</a></code>,\n      <code><a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#PlumbTo\">PlumbTo</a></code>,\n      <code><a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#Position\">Position</a></code>,\n      <code><a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#__del__\">__del__</a></code>,\n      <code><a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#degrees2m\">degrees2m</a></code>,\n      <code><a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#distance2\">distance2</a></code>,\n      <code><a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#intersection2\">intersection2</a></code>,\n      <code><a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#m2degrees\">m2degrees</a></code>,\n      <code><a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#nearestOn4\">nearestOn4</a></code>,\n      <code><a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#toStr\">toStr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.karney._CapsBase-class.html\">karney._CapsBase</a></code></b>:\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#caps_\">caps_</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#others\">others</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#toRepr\">toRepr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS VARIABLES ==================== -->\n<a name=\"section-ClassVariables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Class Variables</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.karney._CapsBase-class.html\">karney._CapsBase</a></code></b>:\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#ALL\">ALL</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#AREA\">AREA</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#AZIMUTH\">AZIMUTH</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#DISTANCE\">DISTANCE</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#DISTANCE_IN\">DISTANCE_IN</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#EMPTY\">EMPTY</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#GEODESICSCALE\">GEODESICSCALE</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#LATITUDE\">LATITUDE</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#LINE_CAPS\">LINE_CAPS</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#LINE_OFF\">LINE_OFF</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#LONGITUDE\">LONGITUDE</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#LONG_UNROLL\">LONG_UNROLL</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#NONFINITONAN\">NONFINITONAN</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#REDUCEDLENGTH\">REDUCEDLENGTH</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#STANDARD\">STANDARD</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#STANDARD_LINE\">STANDARD_LINE</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html\">bases.RhumbLineBase</a></code></b>:\n      <code><a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#TMorder\">TMorder</a></code>,\n      <code><a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#azi12\">azi12</a></code>,\n      <code><a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#azi12_sincos2\">azi12_sincos2</a></code>,\n      <code><a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#datum\">datum</a></code>,\n      <code><a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#ellipsoid\">ellipsoid</a></code>,\n      <code><a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#exact\">exact</a></code>,\n      <code><a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#isLoxodrome\">isLoxodrome</a></code>,\n      <code><a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#lat1\">lat1</a></code>,\n      <code><a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#latlon1\">latlon1</a></code>,\n      <code><a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#lon1\">lon1</a></code>,\n      <code><a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#rhumb\">rhumb</a></code>,\n      <code><a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#xTM\">xTM</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.karney._CapsBase-class.html\">karney._CapsBase</a></code></b>:\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#caps\">caps</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#debug\">debug</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">rhumb</span>,\n        <span class=\"sig-arg\">lat1</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">lon1</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">azi12</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**caps_name</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <code>RhumbLineAux</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>rhumb</code></strong> - The rhumb reference (<a \n          href=\"pygeodesy.rhumb.aux_.RhumbAux-class.html\" \n          class=\"link\">RhumbAux</a>).</li>\n        <li><strong class=\"pname\"><code>lat1</code></strong> - Latitude of the start point (<code>degrees90</code>).</li>\n        <li><strong class=\"pname\"><code>lon1</code></strong> - Longitude of the start point (<code>degrees180</code>).</li>\n        <li><strong class=\"pname\"><code>azi12</code></strong> - Azimuth of this rhumb line (compass <code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>caps_name</code></strong> - Optional keyword arguments <code><b>name</b>=NN</code> and \n          <code><b>caps</b>=0</code>, a bit-or'ed combination of <a \n          href=\"pygeodesy.karney.Caps-class.html\" class=\"link\">Caps</a> \n          values specifying the required capabilities.  Include \n          <code>Caps.LINE_OFF</code> if updates to the \n          <b><code>rhumb</code></b> should <i>not be reflected</i> in this \n          rhumb line.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.rhumb.bases-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.rhumb.bases</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.rhumb-module.html\">Package&nbsp;rhumb</a> ::\n        Module&nbsp;bases\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.rhumb.bases-module.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== MODULE DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Module bases</h1><p class=\"nomargin-top\"></p>\n<p>(INTERNAL) base classes <code>RhumbBase</code> and \n  <code>RhumbLineBase</code>, pure Python version of <i>Karney</i>'s C++ \n  classes <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Rhumb.html\"\n  target=\"_top\">Rhumb</a> and <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1RhumbLine.html\"\n  target=\"_top\">RhumbLine</a> from <i>GeographicLib versions 2.0</i> and \n  <i>2.2</i> and <i>Karney</i>'s C++ example <a \n  href=\"https://SourceForge.net/p/geographiclib/discussion/1026620/thread/2ddc295e/\"\n  target=\"_top\">Rhumb intersect</a>.</p>\n  <p>Class <a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html\" \n  class=\"link\">RhumbLineBase</a> has been enhanced with methods \n  <code>Intersecant2</code>, <code>Intersection</code> and \n  <code>PlumbTo</code> to iteratively find the intersection of a rhumb line\n  and a circle or an other rhumb line, respectively a perpendicular \n  geodesic or other rhumb line.</p>\n  <p>For more details, see the C++ <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/index.html\" \n  target=\"_top\">GeographicLib</a> documentation, especially the <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/annotated.html\" \n  target=\"_top\">Class List</a>, the background information on <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/rhumb.html\" \n  target=\"_top\">Rhumb lines</a>, the utily <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/RhumbSolve.1.html\" \n  target=\"_top\">RhumbSolve</a> and <a \n  href=\"https://GeographicLib.SourceForge.io/cgi-bin/RhumbSolve\" \n  target=\"_top\">Online rhumb line calculations</a>.</p>\n  <p>Copyright (C) <a href=\"mailto:Karney@Alum.MIT.edu\" \n  target=\"_top\">Charles Karney</a> (2014-2024) and licensed under the \n  MIT/X11 License.  For more information, see the <a \n  href=\"https://GeographicLib.SourceForge.io\" \n  target=\"_top\">GeographicLib</a> documentation.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Version:</strong>\n        25.05.12\n      </p>\n</div><!-- ==================== CLASSES ==================== -->\n<a name=\"section-Classes\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Classes</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.rhumb.bases.RhumbBase-class.html\" class=\"summary-name\">RhumbBase</a><br />\n      (INTERNAL) Base class for <code>rhumb.aux_.RhumbAux</code> and \n        <code>rhumb.ekx.Rhumb</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html\" class=\"summary-name\">RhumbLineBase</a><br />\n      (INTERNAL) Base class for <code>rhumb.aux_.RhumbLineAux</code> and \n        <code>rhumb.ekx.RhumbLine</code>.\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.rhumb.bases.RhumbBase-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.rhumb.bases.RhumbBase</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.rhumb-module.html\">Package&nbsp;rhumb</a> ::\n        <a href=\"pygeodesy.rhumb.bases-module.html\" onclick=\"show_private();\">Module&nbsp;bases</a> ::\n        Class&nbsp;RhumbBase\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.rhumb.bases.RhumbBase-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class RhumbBase</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+            \n           |            \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+        \n               |        \n<a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+    \n                   |    \n    <a href=\"pygeodesy.karney._CapsBase-class.html\">karney._CapsBase</a> --+\n                       |\n                      <strong class=\"uidshort\">RhumbBase</strong>\n</pre>\n\n<dl><dt>Known Subclasses:</dt>\n<dd>\n      <ul class=\"subclass-list\">\n<li><a href=\"pygeodesy.rhumb.ekx.Rhumb-class.html\">ekx.Rhumb</a></li><li>, <a href=\"pygeodesy.rhumb.aux_.RhumbAux-class.html\">aux_.RhumbAux</a></li>  </ul>\n</dd></dl>\n\n<hr />\n<p>(INTERNAL) Base class for <code>rhumb.aux_.RhumbAux</code> and \n  <code>rhumb.ekx.Rhumb</code>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.rhumb.bases.RhumbBase-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">a_earth</span>,\n        <span class=\"summary-sig-arg\">f</span>,\n        <span class=\"summary-sig-arg\">exact</span>,\n        <span class=\"summary-sig-arg\">TMorder_name</span>)</span><br />\n      New <code>RhumbAux</code> or <code>Rhumb</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.rhumb.bases.RhumbBase-class.html#ArcDirect\" class=\"summary-sig-name\">ArcDirect</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lat1</span>,\n        <span class=\"summary-sig-arg\">lon1</span>,\n        <span class=\"summary-sig-arg\">azi12</span>,\n        <span class=\"summary-sig-arg\">a12</span>,\n        <span class=\"summary-sig-arg\">outmask</span>=<span class=\"summary-sig-default\">392</span>)</span><br />\n      Solve the <i>direct rhumb</i> problem, optionally with area.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.rhumb.bases.RhumbBase-class.html#Direct\" class=\"summary-sig-name\">Direct</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lat1</span>,\n        <span class=\"summary-sig-arg\">lon1</span>,\n        <span class=\"summary-sig-arg\">azi12</span>,\n        <span class=\"summary-sig-arg\">s12</span>,\n        <span class=\"summary-sig-arg\">outmask</span>=<span class=\"summary-sig-default\">392</span>)</span><br />\n      Solve the <i>direct rhumb</i> problem, optionally with area.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"Direct8\"></a><span class=\"summary-sig-name\">Direct8</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lat1</span>,\n        <span class=\"summary-sig-arg\">lon1</span>,\n        <span class=\"summary-sig-arg\">azi12</span>,\n        <span class=\"summary-sig-arg\">s12</span>,\n        <span class=\"summary-sig-arg\">outmask</span>=<span class=\"summary-sig-default\">16792</span>)</span><br />\n      Like method <a \n      href=\"pygeodesy.rhumb.bases.RhumbBase-class.html#Direct\" \n      class=\"link\">Rhumb.Direct</a> but returning a <a \n      href=\"pygeodesy.karney.Rhumb8Tuple-class.html\" class=\"link\" \n      onclick=\"show_private();\">Rhumb8Tuple</a> with area <code>S12</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.rhumb.bases.RhumbBase-class.html#DirectLine\" class=\"summary-sig-name\">DirectLine</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lat1</span>,\n        <span class=\"summary-sig-arg\">lon1</span>,\n        <span class=\"summary-sig-arg\">azi12</span>,\n        <span class=\"summary-sig-arg\">**caps_name</span>)</span><br />\n      Define a <code>RhumbLine</code> in terms of the <i>direct</i> rhumb \n      problem to compute several points on a single rhumb line.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.rhumb.bases.RhumbBase-class.html#Line\" class=\"summary-sig-name\">Line</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lat1</span>,\n        <span class=\"summary-sig-arg\">lon1</span>,\n        <span class=\"summary-sig-arg\">azi12</span>,\n        <span class=\"summary-sig-arg\">**caps_name</span>)</span><br />\n      Define a <code>RhumbLine</code> in terms of the <i>direct</i> rhumb \n      problem to compute several points on a single rhumb line.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.rhumb.bases.RhumbBase-class.html#Inverse\" class=\"summary-sig-name\">Inverse</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lat1</span>,\n        <span class=\"summary-sig-arg\">lon1</span>,\n        <span class=\"summary-sig-arg\">lat2</span>,\n        <span class=\"summary-sig-arg\">lon2</span>,\n        <span class=\"summary-sig-arg\">outmask</span>=<span class=\"summary-sig-default\">1537</span>)</span><br />\n      Solve the <i>inverse rhumb</i> problem.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"Inverse8\"></a><span class=\"summary-sig-name\">Inverse8</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lat1</span>,\n        <span class=\"summary-sig-arg\">lon1</span>,\n        <span class=\"summary-sig-arg\">azi12</span>,\n        <span class=\"summary-sig-arg\">s12</span>,\n        <span class=\"summary-sig-arg\">outmask</span>=<span class=\"summary-sig-default\">17937</span>)</span><br />\n      Like method <a \n      href=\"pygeodesy.rhumb.bases.RhumbBase-class.html#Inverse\" \n      class=\"link\">Rhumb.Inverse</a> but returning a <a \n      href=\"pygeodesy.karney.Rhumb8Tuple-class.html\" class=\"link\" \n      onclick=\"show_private();\">Rhumb8Tuple</a> with area <code>S12</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.rhumb.bases.RhumbBase-class.html#InverseLine\" class=\"summary-sig-name\">InverseLine</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lat1</span>,\n        <span class=\"summary-sig-arg\">lon1</span>,\n        <span class=\"summary-sig-arg\">lat2</span>,\n        <span class=\"summary-sig-arg\">lon2</span>,\n        <span class=\"summary-sig-arg\">**caps_name</span>)</span><br />\n      Define a <code>RhumbLine</code> in terms of the <i>inverse</i> rhumb \n      problem.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.rhumb.bases.RhumbBase-class.html#toStr\" class=\"summary-sig-name\">toStr</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">prec</span>=<span class=\"summary-sig-default\">6</span>,\n        <span class=\"summary-sig-arg\">sep</span>=<span class=\"summary-sig-default\">', '</span>,\n        <span class=\"summary-sig-arg\">**unused</span>)</span><br />\n      Return this <code>Rhumb</code> as string.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.karney._CapsBase-class.html\">karney._CapsBase</a></code></b>:\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#caps_\">caps_</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#others\">others</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#toRepr\">toRepr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS VARIABLES ==================== -->\n<a name=\"section-ClassVariables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Class Variables</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.karney._CapsBase-class.html\">karney._CapsBase</a></code></b>:\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#ALL\">ALL</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#AREA\">AREA</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#AZIMUTH\">AZIMUTH</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#DISTANCE\">DISTANCE</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#DISTANCE_IN\">DISTANCE_IN</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#EMPTY\">EMPTY</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#GEODESICSCALE\">GEODESICSCALE</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#LATITUDE\">LATITUDE</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#LINE_CAPS\">LINE_CAPS</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#LINE_OFF\">LINE_OFF</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#LONGITUDE\">LONGITUDE</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#LONG_UNROLL\">LONG_UNROLL</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#NONFINITONAN\">NONFINITONAN</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#REDUCEDLENGTH\">REDUCEDLENGTH</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#STANDARD\">STANDARD</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#STANDARD_LINE\">STANDARD_LINE</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.rhumb.bases.RhumbBase-class.html#a\" class=\"summary-name\">a</a><br />\n      Get the <code>ellipsoid</code>'s equatorial radius, semi-axis \n      (<code>meter</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.rhumb.bases.RhumbBase-class.html#equatoradius\" class=\"summary-name\">equatoradius</a><br />\n      Get the <code>ellipsoid</code>'s equatorial radius, semi-axis \n      (<code>meter</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.rhumb.bases.RhumbBase-class.html#b\" class=\"summary-name\">b</a><br />\n      Get the <code>ellipsoid</code>'s polar radius, semi-axis \n      (<code>meter</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.rhumb.bases.RhumbBase-class.html#polaradius\" class=\"summary-name\">polaradius</a><br />\n      Get the <code>ellipsoid</code>'s polar radius, semi-axis \n      (<code>meter</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.rhumb.bases.RhumbBase-class.html#datum\" class=\"summary-name\">datum</a><br />\n      Get this rhumb's datum (<a href=\"pygeodesy.datums.Datum-class.html\" \n      class=\"link\">Datum</a>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.rhumb.bases.RhumbBase-class.html#ellipsoid\" class=\"summary-name\">ellipsoid</a><br />\n      Get this rhumb's ellipsoid (<a \n      href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n      class=\"link\">Ellipsoid</a>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.rhumb.bases.RhumbBase-class.html#exact\" class=\"summary-name\">exact</a><br />\n      Get the <i>exact</i> option (<code>bool</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.rhumb.bases.RhumbBase-class.html#f\" class=\"summary-name\">f</a><br />\n      Get the <code>ellipsoid</code>'s flattening (<code>float</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.rhumb.bases.RhumbBase-class.html#flattening\" class=\"summary-name\">flattening</a><br />\n      Get the <code>ellipsoid</code>'s flattening (<code>float</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.rhumb.bases.RhumbBase-class.html#f_max\" class=\"summary-name\">f_max</a><br />\n      Get the <i>max.</i> flattening (<code>float</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.rhumb.bases.RhumbBase-class.html#RAorder\" class=\"summary-name\">RAorder</a><br />\n      Get the <i>Rhumb Area</i> order, <code>None</code> always.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.rhumb.bases.RhumbBase-class.html#TMorder\" class=\"summary-name\">TMorder</a><br />\n      Get the <a href=\"pygeodesy.ktm.KTransverseMercator-class.html\" \n      class=\"link\">KTransverseMercator</a> order (<code>int</code>, 4, 5, \n      6, 7 or 8).\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.karney._CapsBase-class.html\">karney._CapsBase</a></code></b>:\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#caps\">caps</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#debug\">debug</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">a_earth</span>,\n        <span class=\"sig-arg\">f</span>,\n        <span class=\"sig-arg\">exact</span>,\n        <span class=\"sig-arg\">TMorder_name</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <code>RhumbAux</code> or <code>Rhumb</code>.</p>\n  <dl class=\"fields\">\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"ArcDirect\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">ArcDirect</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lat1</span>,\n        <span class=\"sig-arg\">lon1</span>,\n        <span class=\"sig-arg\">azi12</span>,\n        <span class=\"sig-arg\">a12</span>,\n        <span class=\"sig-arg\">outmask</span>=<span class=\"sig-default\">392</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Solve the <i>direct rhumb</i> problem, optionally with area.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat1</code></strong> - Latitude of the first point (<code>degrees90</code>).</li>\n        <li><strong class=\"pname\"><code>lon1</code></strong> - Longitude of the first point (<code>degrees180</code>).</li>\n        <li><strong class=\"pname\"><code>azi12</code></strong> - Azimuth of the rhumb line (compass <code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>a12</code></strong> - Angle along the rhumb line from the given to the destination \n          point (<code>degrees</code>), can be negative.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><a href=\"pygeodesy.karney.GDict-class.html\" \n          class=\"link\">GDict</a> with 2 up to 8 items <code>lat2, lon2, \n          a12, S12, lat1, lon1, azi12, s12</code> with the destination \n          point's latitude <code>lat2</code> and longitude \n          <code>lon2</code> in <code>degrees</code>, the rhumb angle \n          <code>a12</code> in <code>degrees</code> and area \n          <code>S12</code> under the rhumb line in <code>meter</code> \n          <i>squared</i>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ImportError</strong></code> - Package <code>numpy</code> not found or not installed, only \n        required for area <code>S12</code> when <code><b>exact</b> is \n        True</code> and <a href=\"pygeodesy.rhumb.aux_.RhumbAux-class.html\" \n        class=\"link\">RhumbAux</a>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <strong>Notes:</strong>\n      <ul class=\"nomargin-top\">\n        <li>\n        If <b><code>a12</code></b> is large enough that the rhumb line \n        crosses a pole, the longitude of the second point is indeterminate \n        and <code>NAN</code> is returned for <code>lon2</code> and area \n        <code>S12</code>.\n        </li>\n        <li>\n        If the given point is a pole, the cosine of its latitude is taken \n        to be <code>sqrt(EPS)</code>.  This position is extremely close to \n        the actual pole and allows the calculation to be carried out in \n        finite terms.\n        </li>\n      </ul>\n</div></td></tr></table>\n</div>\n<a name=\"Direct\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">Direct</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lat1</span>,\n        <span class=\"sig-arg\">lon1</span>,\n        <span class=\"sig-arg\">azi12</span>,\n        <span class=\"sig-arg\">s12</span>,\n        <span class=\"sig-arg\">outmask</span>=<span class=\"sig-default\">392</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Solve the <i>direct rhumb</i> problem, optionally with area.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat1</code></strong> - Latitude of the first point (<code>degrees90</code>).</li>\n        <li><strong class=\"pname\"><code>lon1</code></strong> - Longitude of the first point (<code>degrees180</code>).</li>\n        <li><strong class=\"pname\"><code>azi12</code></strong> - Azimuth of the rhumb line (compass <code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>s12</code></strong> - Distance along the rhumb line from the given to the destination \n          point (<code>meter</code>), can be negative.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><a href=\"pygeodesy.karney.GDict-class.html\" \n          class=\"link\">GDict</a> with 2 up to 8 items <code>lat2, lon2, \n          a12, S12, lat1, lon1, azi12, s12</code> with the destination \n          point's latitude <code>lat2</code> and longitude \n          <code>lon2</code> in <code>degrees</code>, the rhumb angle \n          <code>a12</code> in <code>degrees</code> and area \n          <code>S12</code> under the rhumb line in <code>meter</code> \n          <i>squared</i>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ImportError</strong></code> - Package <code>numpy</code> not found or not installed, only \n        required for area <code>S12</code> when <code><b>exact</b> is \n        True</code> and <a href=\"pygeodesy.rhumb.aux_.RhumbAux-class.html\" \n        class=\"link\">RhumbAux</a>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <strong>Notes:</strong>\n      <ul class=\"nomargin-top\">\n        <li>\n        If <b><code>s12</code></b> is large enough that the rhumb line \n        crosses a pole, the longitude of the second point is indeterminate \n        and <code>NAN</code> is returned for <code>lon2</code> and area \n        <code>S12</code>.\n        </li>\n        <li>\n        If the given point is a pole, the cosine of its latitude is taken \n        to be <code>sqrt(EPS)</code>.  This position is extremely close to \n        the actual pole and allows the calculation to be carried out in \n        finite terms.\n        </li>\n      </ul>\n</div></td></tr></table>\n</div>\n<a name=\"DirectLine\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">DirectLine</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lat1</span>,\n        <span class=\"sig-arg\">lon1</span>,\n        <span class=\"sig-arg\">azi12</span>,\n        <span class=\"sig-arg\">**caps_name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Define a <code>RhumbLine</code> in terms of the <i>direct</i> rhumb \n  problem to compute several points on a single rhumb line.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat1</code></strong> - Latitude of the first point (<code>degrees90</code>).</li>\n        <li><strong class=\"pname\"><code>lon1</code></strong> - Longitude of the first point (<code>degrees180</code>).</li>\n        <li><strong class=\"pname\"><code>azi12</code></strong> - Azimuth of the rhumb line (compass <code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>caps_name</code></strong> - Optional keyword arguments <code><b>name</b>=NN</code> and \n          <code><b>caps</b>=Caps.STANDARD</code>, a bit-or'ed combination \n          of <a href=\"pygeodesy.karney.Caps-class.html\" \n          class=\"link\">Caps</a> values specifying the required \n          capabilities.  Include <code>Caps.LINE_OFF</code> if updates to \n          the <b><code>rhumb</code></b> should <i>not be reflected</i> in \n          this rhumb line.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <code>RhumbLine...</code> instance and invoke its method \n          <code>.Position</code> to compute each point.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        Updates to this rhumb are reflected in the returned rhumb line, \n        unless <code><b>caps</b> |= Caps.LINE_OFF</code>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"Line\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">Line</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lat1</span>,\n        <span class=\"sig-arg\">lon1</span>,\n        <span class=\"sig-arg\">azi12</span>,\n        <span class=\"sig-arg\">**caps_name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Define a <code>RhumbLine</code> in terms of the <i>direct</i> rhumb \n  problem to compute several points on a single rhumb line.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat1</code></strong> - Latitude of the first point (<code>degrees90</code>).</li>\n        <li><strong class=\"pname\"><code>lon1</code></strong> - Longitude of the first point (<code>degrees180</code>).</li>\n        <li><strong class=\"pname\"><code>azi12</code></strong> - Azimuth of the rhumb line (compass <code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>caps_name</code></strong> - Optional keyword arguments <code><b>name</b>=NN</code> and \n          <code><b>caps</b>=Caps.STANDARD</code>, a bit-or'ed combination \n          of <a href=\"pygeodesy.karney.Caps-class.html\" \n          class=\"link\">Caps</a> values specifying the required \n          capabilities.  Include <code>Caps.LINE_OFF</code> if updates to \n          the <b><code>rhumb</code></b> should <i>not be reflected</i> in \n          this rhumb line.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <code>RhumbLine...</code> instance and invoke its method \n          <code>.Position</code> to compute each point.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        Updates to this rhumb are reflected in the returned rhumb line, \n        unless <code><b>caps</b> |= Caps.LINE_OFF</code>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"Inverse\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">Inverse</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lat1</span>,\n        <span class=\"sig-arg\">lon1</span>,\n        <span class=\"sig-arg\">lat2</span>,\n        <span class=\"sig-arg\">lon2</span>,\n        <span class=\"sig-arg\">outmask</span>=<span class=\"sig-default\">1537</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Solve the <i>inverse rhumb</i> problem.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat1</code></strong> - Latitude of the first point (<code>degrees90</code>).</li>\n        <li><strong class=\"pname\"><code>lon1</code></strong> - Longitude of the first point (<code>degrees180</code>).</li>\n        <li><strong class=\"pname\"><code>lat2</code></strong> - Latitude of the second point (<code>degrees90</code>).</li>\n        <li><strong class=\"pname\"><code>lon2</code></strong> - Longitude of the second point (<code>degrees180</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><a href=\"pygeodesy.karney.GDict-class.html\" \n          class=\"link\">GDict</a> with 4 to 9 items <code>lat1, lon1, lat2, \n          lon2, azi12, azi21, s12, a12, S12</code>, the rhumb line's \n          azimuth <code>azi12</code> and <i>reverse</i> azimuth \n          <code>azi21</code>, both in compass <code>degrees</code> between \n          <code>-180</code> and <code>+180</code>, the rhumb distance \n          <code>s12</code> and rhumb angle <code>a12</code> between both \n          points in <code>meter</code> respectively <code>degrees</code> \n          and the area <code>S12</code> under the rhumb line in \n          <code>meter</code> <i>squared</i>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ImportError</strong></code> - Package <code>numpy</code> not found or not installed, only \n        required for <a href=\"pygeodesy.rhumb.aux_.RhumbAux-class.html\" \n        class=\"link\">RhumbAux</a> area <code>S12</code> when \n        <code><b>exact</b> is True</code>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <strong>Notes:</strong>\n      <ul class=\"nomargin-top\">\n        <li>\n        The shortest rhumb line is found.  If the end points are on \n        opposite meridians, there are two shortest rhumb lines and the \n        East-going one is chosen.\n        </li>\n        <li>\n        If either point is a pole, the cosine of its latitude is taken to \n        be <code>sqrt(EPS)</code>.  This position is extremely close to the\n        actual pole and allows the calculation to be carried out in finite \n        terms.\n        </li>\n      </ul>\n</div></td></tr></table>\n</div>\n<a name=\"InverseLine\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">InverseLine</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lat1</span>,\n        <span class=\"sig-arg\">lon1</span>,\n        <span class=\"sig-arg\">lat2</span>,\n        <span class=\"sig-arg\">lon2</span>,\n        <span class=\"sig-arg\">**caps_name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Define a <code>RhumbLine</code> in terms of the <i>inverse</i> rhumb \n  problem.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat1</code></strong> - Latitude of the first point (<code>degrees90</code>).</li>\n        <li><strong class=\"pname\"><code>lon1</code></strong> - Longitude of the first point (<code>degrees180</code>).</li>\n        <li><strong class=\"pname\"><code>lat2</code></strong> - Latitude of the second point (<code>degrees90</code>).</li>\n        <li><strong class=\"pname\"><code>lon2</code></strong> - Longitude of the second point (<code>degrees180</code>).</li>\n        <li><strong class=\"pname\"><code>caps_name</code></strong> - Optional keyword arguments <code><b>name</b>=NN</code> and \n          <code><b>caps</b>=Caps.STANDARD</code>, a bit-or'ed combination \n          of <a href=\"pygeodesy.karney.Caps-class.html\" \n          class=\"link\">Caps</a> values specifying the required \n          capabilities.  Include <code>Caps.LINE_OFF</code> if updates to \n          the <b><code>rhumb</code></b> should <i>not be reflected</i> in \n          this rhumb line.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <code>RhumbLine...</code> instance and invoke its method \n          <code>ArcPosition</code> or <code>Position</code> to compute \n          points.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        Updates to this rhumb are reflected in the returned rhumb line, \n        unless <code><b>caps</b> |= Caps.LINE_OFF</code>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"toStr\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toStr</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">prec</span>=<span class=\"sig-default\">6</span>,\n        <span class=\"sig-arg\">sep</span>=<span class=\"sig-default\">', '</span>,\n        <span class=\"sig-arg\">**unused</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return this <code>Rhumb</code> as string.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>prec</code></strong> - The <code>float</code> precision, number of decimal digits \n          (0..9). Trailing zero decimals are stripped for \n          <b><code>prec</code></b> values of 1 and above, but kept for \n          negative <b><code>prec</code></b> values.</li>\n        <li><strong class=\"pname\"><code>sep</code></strong> - Separator to join (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Tuple items (<code>str</code>).</dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.named._Named-class.html#toStr\">named._Named.toStr</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"a\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">a</h3>\n  <p>Get the <code>ellipsoid</code>'s equatorial radius, semi-axis \n  (<code>meter</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">a(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <code>ellipsoid</code>'s equatorial radius, semi-axis \n(<code>meter</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"equatoradius\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">equatoradius</h3>\n  <p>Get the <code>ellipsoid</code>'s equatorial radius, semi-axis \n  (<code>meter</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">a(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <code>ellipsoid</code>'s equatorial radius, semi-axis \n(<code>meter</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"b\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">b</h3>\n  <p>Get the <code>ellipsoid</code>'s polar radius, semi-axis \n  (<code>meter</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">b(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <code>ellipsoid</code>'s polar radius, semi-axis \n(<code>meter</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"polaradius\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">polaradius</h3>\n  <p>Get the <code>ellipsoid</code>'s polar radius, semi-axis \n  (<code>meter</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">b(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <code>ellipsoid</code>'s polar radius, semi-axis \n(<code>meter</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"datum\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">datum</h3>\n  <p>Get this rhumb's datum (<a href=\"pygeodesy.datums.Datum-class.html\" \n  class=\"link\">Datum</a>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">datum(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get this rhumb's datum (<a href=\"pygeodesy.datums.Datum-class.html\" \nclass=\"link\">Datum</a>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">datum(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">datum</span>)</span>\n        - Set this rhumb's datum (<a href=\"pygeodesy.datums.Datum-class.html\" \nclass=\"link\">Datum</a>).\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"ellipsoid\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">ellipsoid</h3>\n  <p>Get this rhumb's ellipsoid (<a \n  href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n  class=\"link\">Ellipsoid</a>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">ellipsoid(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get this rhumb's ellipsoid (<a \nhref=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \nclass=\"link\">Ellipsoid</a>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">ellipsoid(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">a_earth_f</span>)</span>\n        - Set this rhumb's ellipsoid (<a \nhref=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \nclass=\"link\">Ellipsoid</a>, <a \nhref=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \nclass=\"link\">Ellipsoid2</a>, <a href=\"pygeodesy.datums.Datum-class.html\" \nclass=\"link\">Datum</a> or <a \nhref=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \nclass=\"link\">a_f2Tuple</a>) or (equatorial) radius and flattening (2-tuple \n<code>(a, f)</code>).\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"exact\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">exact</h3>\n  <p>Get the <i>exact</i> option (<code>bool</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">exact(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <i>exact</i> option (<code>bool</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">exact(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">exact</span>)</span>\n        - Set the <i>exact</i> option (<code>bool</code>).\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"f\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">f</h3>\n  <p>Get the <code>ellipsoid</code>'s flattening (<code>float</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">f(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <code>ellipsoid</code>'s flattening (<code>float</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"flattening\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">flattening</h3>\n  <p>Get the <code>ellipsoid</code>'s flattening (<code>float</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">f(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <code>ellipsoid</code>'s flattening (<code>float</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"f_max\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">f_max</h3>\n  <p>Get the <i>max.</i> flattening (<code>float</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">f_max(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <i>max.</i> flattening (<code>float</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">f_max(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">f_max</span>)</span>\n        - Set the <i>max.</i> flattening, not to exceed (<code>float</code>).\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"RAorder\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">RAorder</h3>\n  <p>Get the <i>Rhumb Area</i> order, <code>None</code> always.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">RAorder(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <i>Rhumb Area</i> order, <code>None</code> always.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"TMorder\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">TMorder</h3>\n  <p>Get the <a href=\"pygeodesy.ktm.KTransverseMercator-class.html\" \n  class=\"link\">KTransverseMercator</a> order (<code>int</code>, 4, 5, 6, 7 \n  or 8).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">TMorder(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <a href=\"pygeodesy.ktm.KTransverseMercator-class.html\" \nclass=\"link\">KTransverseMercator</a> order (<code>int</code>, 4, 5, 6, 7 or\n8).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">TMorder(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">order</span>)</span>\n        - Set the <a href=\"pygeodesy.ktm.KTransverseMercator-class.html\" \nclass=\"link\">KTransverseMercator</a> order (<code>int</code>, 4, 5, 6, 7 or\n8).\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.rhumb.bases.RhumbLineBase-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.rhumb.bases.RhumbLineBase</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.rhumb-module.html\">Package&nbsp;rhumb</a> ::\n        <a href=\"pygeodesy.rhumb.bases-module.html\" onclick=\"show_private();\">Module&nbsp;bases</a> ::\n        Class&nbsp;RhumbLineBase\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class RhumbLineBase</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+            \n           |            \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+        \n               |        \n<a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+    \n                   |    \n    <a href=\"pygeodesy.karney._CapsBase-class.html\">karney._CapsBase</a> --+\n                       |\n                      <strong class=\"uidshort\">RhumbLineBase</strong>\n</pre>\n\n<dl><dt>Known Subclasses:</dt>\n<dd>\n      <ul class=\"subclass-list\">\n<li><a href=\"pygeodesy.rhumb.ekx.RhumbLine-class.html\">ekx.RhumbLine</a></li><li>, <a href=\"pygeodesy.rhumb.aux_.RhumbLineAux-class.html\">aux_.RhumbLineAux</a></li><li class=\"private\">, _PseudoRhumbLine</li>  </ul>\n</dd></dl>\n\n<hr />\n<p>(INTERNAL) Base class for <code>rhumb.aux_.RhumbLineAux</code> and \n  <code>rhumb.ekx.RhumbLine</code>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">rhumb</span>,\n        <span class=\"summary-sig-arg\">lat1</span>,\n        <span class=\"summary-sig-arg\">lon1</span>,\n        <span class=\"summary-sig-arg\">azi12</span>,\n        <span class=\"summary-sig-arg\">caps</span>=<span class=\"summary-sig-default\">1929</span>,\n        <span class=\"summary-sig-arg\">name</span>=<span class=\"summary-sig-default\">''</span>)</span><br />\n      New <code>RhumbLine</code> or <code>RhumbLineAux</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__del__\"></a><span class=\"summary-sig-name\">__del__</span>(<span class=\"summary-sig-arg\">self</span>)</span></td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#ArcPosition\" class=\"summary-sig-name\">ArcPosition</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">a12</span>,\n        <span class=\"summary-sig-arg\">outmask</span>=<span class=\"summary-sig-default\">392</span>)</span><br />\n      Compute a point at a given angular distance on this rhumb line.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#degrees2m\" class=\"summary-sig-name\">degrees2m</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">angle</span>)</span><br />\n      Convert an angular distance along this rhumb line to \n      <code>meter</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#distance2\" class=\"summary-sig-name\">distance2</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lat</span>,\n        <span class=\"summary-sig-arg\">lon</span>)</span><br />\n      DEPRECATED on 23.09.23, use method <a \n      href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#Inverse\" \n      class=\"link\">RhumbLineAux.Inverse</a> or <a \n      href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#Inverse\" \n      class=\"link\">RhumbLine.Inverse</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#Intersecant2\" class=\"summary-sig-name\">Intersecant2</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lat0</span>,\n        <span class=\"summary-sig-arg\">lon0</span>,\n        <span class=\"summary-sig-arg\">radius</span>,\n        <span class=\"summary-sig-arg\">napier</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">**tol_eps</span>)</span><br />\n      Compute the intersection(s) of this rhumb line and a circle.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#intersection2\" class=\"summary-sig-name\">intersection2</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>,\n        <span class=\"summary-sig-arg\">**tol_eps</span>)</span><br />\n      DEPRECATED on 23.10.10, use method <a \n      href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#Intersection\" \n      class=\"link\">Intersection</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#Intersection\" class=\"summary-sig-name\">Intersection</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>,\n        <span class=\"summary-sig-arg\">tol</span>=<span class=\"summary-sig-default\">1.4901161193847656e-08</span>,\n        <span class=\"summary-sig-arg\">**eps</span>)</span><br />\n      <i>Iteratively</i> find the intersection of this and an other rhumb \n      line.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#Inverse\" class=\"summary-sig-name\">Inverse</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lat2</span>,\n        <span class=\"summary-sig-arg\">lon2</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">**outmask</span>)</span><br />\n      Return the rhumb angle, distance, azimuth, <i>reverse</i> azimuth, \n      etc.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#m2degrees\" class=\"summary-sig-name\">m2degrees</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">distance</span>)</span><br />\n      Convert a distance along this rhumb line to an angular distance.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#nearestOn4\" class=\"summary-sig-name\">nearestOn4</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lat0</span>,\n        <span class=\"summary-sig-arg\">lon0</span>,\n        <span class=\"summary-sig-arg\">**exact_eps_est_tol</span>)</span><br />\n      DEPRECATED on 23.10.10, use method <a \n      href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#PlumbTo\" \n      class=\"link\">PlumbTo</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#NearestOn\" class=\"summary-sig-name\">NearestOn</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lat0</span>,\n        <span class=\"summary-sig-arg\">lon0</span>,\n        <span class=\"summary-sig-arg\">**exact_eps_est_tol</span>)</span><br />\n      DEPRECATED on 23.10.30, use method <a \n      href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#PlumbTo\" \n      class=\"link\">PlumbTo</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#PlumbTo\" class=\"summary-sig-name\">PlumbTo</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lat0</span>,\n        <span class=\"summary-sig-arg\">lon0</span>,\n        <span class=\"summary-sig-arg\">exact</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">eps</span>=<span class=\"summary-sig-default\">2.220446049250313e-16</span>,\n        <span class=\"summary-sig-arg\">est</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">tol</span>=<span class=\"summary-sig-default\">1.4901161193847656e-08</span>)</span><br />\n      Compute the <i>perpendicular</i> intersection of this rhumb line with\n      a geodesic from the given point (transcoded from <i>Karney</i>'s C++ \n      <a \n      href=\"https://SourceForge.net/p/geographiclib/discussion/1026620/thread/2ddc295e/\"\n      target=\"_top\">rhumb-intercept</a>).</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#Position\" class=\"summary-sig-name\">Position</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">s12</span>,\n        <span class=\"summary-sig-arg\">outmask</span>=<span class=\"summary-sig-default\">392</span>)</span><br />\n      Compute a point at a given distance on this rhumb line.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#toStr\" class=\"summary-sig-name\">toStr</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">prec</span>=<span class=\"summary-sig-default\">6</span>,\n        <span class=\"summary-sig-arg\">sep</span>=<span class=\"summary-sig-default\">', '</span>,\n        <span class=\"summary-sig-arg\">**unused</span>)</span><br />\n      Return this <code>RhumbLine</code> as string.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.karney._CapsBase-class.html\">karney._CapsBase</a></code></b>:\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#caps_\">caps_</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#others\">others</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#toRepr\">toRepr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS VARIABLES ==================== -->\n<a name=\"section-ClassVariables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Class Variables</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.karney._CapsBase-class.html\">karney._CapsBase</a></code></b>:\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#ALL\">ALL</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#AREA\">AREA</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#AZIMUTH\">AZIMUTH</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#DISTANCE\">DISTANCE</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#DISTANCE_IN\">DISTANCE_IN</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#EMPTY\">EMPTY</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#GEODESICSCALE\">GEODESICSCALE</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#LATITUDE\">LATITUDE</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#LINE_CAPS\">LINE_CAPS</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#LINE_OFF\">LINE_OFF</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#LONGITUDE\">LONGITUDE</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#LONG_UNROLL\">LONG_UNROLL</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#NONFINITONAN\">NONFINITONAN</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#REDUCEDLENGTH\">REDUCEDLENGTH</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#STANDARD\">STANDARD</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#STANDARD_LINE\">STANDARD_LINE</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#azi12\" class=\"summary-name\">azi12</a><br />\n      Get this rhumb line's <i>azimuth</i> (compass <code>degrees</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#azi12_sincos2\" class=\"summary-name\">azi12_sincos2</a><br />\n      Get the sine and cosine of this rhumb line's <i>azimuth</i> (2-tuple \n      <code>(sin, cos)</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#datum\" class=\"summary-name\">datum</a><br />\n      Get this rhumb line's datum (<a \n      href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#ellipsoid\" class=\"summary-name\">ellipsoid</a><br />\n      Get this rhumb line's ellipsoid (<a \n      href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n      class=\"link\">Ellipsoid</a>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#exact\" class=\"summary-name\">exact</a><br />\n      Get this rhumb line's <i>exact</i> option (<code>bool</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#isLoxodrome\" class=\"summary-name\">isLoxodrome</a><br />\n      Is this rhumb line a meridional (<code>None</code>), a parallel \n      (<code>False</code>) or a <code>True</code> loxodrome?\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#lat1\" class=\"summary-name\">lat1</a><br />\n      Get this rhumb line's latitude (<code>degrees90</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#lon1\" class=\"summary-name\">lon1</a><br />\n      Get this rhumb line's longitude (<code>degrees180</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#latlon1\" class=\"summary-name\">latlon1</a><br />\n      Get this rhumb line's lat- and longitude (<a \n      href=\"pygeodesy.namedTuples.LatLon2Tuple-class.html\" \n      class=\"link\">LatLon2Tuple</a><code>(lat, lon)</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#rhumb\" class=\"summary-name\">rhumb</a><br />\n      Get this rhumb line's rhumb (<a \n      href=\"pygeodesy.rhumb.aux_.RhumbAux-class.html\" \n      class=\"link\">RhumbAux</a> or <a \n      href=\"pygeodesy.rhumb.ekx.Rhumb-class.html\" class=\"link\">Rhumb</a>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#TMorder\" class=\"summary-name\">TMorder</a><br />\n      Get this rhumb line's <i>Transverse Mercator</i> order \n      (<code>int</code>, 4, 5, 6, 7 or 8).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#xTM\" class=\"summary-name\">xTM</a><br />\n      Get this rhumb line's <i>Transverse Mercator</i> projection (<a \n      href=\"pygeodesy.etm.ExactTransverseMercator-class.html\" \n      class=\"link\">ExactTransverseMercator</a> if <i>exact</i> and \n      <i>ellipsoidal</i>, otherwise <a \n      href=\"pygeodesy.ktm.KTransverseMercator-class.html\" \n      class=\"link\">KTransverseMercator</a> for <code>TMorder</code>).\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.karney._CapsBase-class.html\">karney._CapsBase</a></code></b>:\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#caps\">caps</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#debug\">debug</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">rhumb</span>,\n        <span class=\"sig-arg\">lat1</span>,\n        <span class=\"sig-arg\">lon1</span>,\n        <span class=\"sig-arg\">azi12</span>,\n        <span class=\"sig-arg\">caps</span>=<span class=\"sig-default\">1929</span>,\n        <span class=\"sig-arg\">name</span>=<span class=\"sig-default\">''</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <code>RhumbLine</code> or <code>RhumbLineAux</code>.</p>\n  <dl class=\"fields\">\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"ArcPosition\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">ArcPosition</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">a12</span>,\n        <span class=\"sig-arg\">outmask</span>=<span class=\"sig-default\">392</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute a point at a given angular distance on this rhumb line.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>a12</code></strong> - The angle along this rhumb line from its origin to the point \n          (<code>degrees</code>), can be negative.</li>\n        <li><strong class=\"pname\"><code>outmask</code></strong> - Bit-or'ed combination of <a \n          href=\"pygeodesy.karney.Caps-class.html\" class=\"link\">Caps</a> \n          values specifying the quantities to be returned.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><a href=\"pygeodesy.karney.GDict-class.html\" \n          class=\"link\">GDict</a> with 4 to 8 items <code>azi12, a12, s12, \n          S12, lat2, lon2, lat1, lon1</code> with latitude \n          <code>lat2</code> and longitude <code>lon2</code> of the point in\n          <code>degrees</code>, the rhumb distance <code>s12</code> in \n          <code>meter</code> from the start point of and the area \n          <code>S12</code> under this rhumb line in <code>meter</code> \n          <i>squared</i>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ImportError</strong></code> - Package <code>numpy</code> not found or not installed, only \n        required for <a href=\"pygeodesy.rhumb.aux_.RhumbLineAux-class.html\"\n        class=\"link\">RhumbLineAux</a> area <code>S12</code> when \n        <code><b>exact</b> is True</code>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        If <b><code>a12</code></b> is large enough that the rhumb line \n        crosses a pole, the longitude of the second point is indeterminate \n        and <code>NAN</code> is returned for <code>lon2</code> and area \n        <code>S12</code>.\n        <p>If the first point is a pole, the cosine of its latitude is \n        taken to be <code>sqrt(EPS)</code>.  This position is extremely \n        close to the actual pole and allows the calculation to be carried \n        out in finite terms.</p>\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"degrees2m\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">degrees2m</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">angle</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert an angular distance along this rhumb line to \n  <code>meter</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>angle</code></strong> - Angular distance (<code>degrees</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Distance (<code>meter</code>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"distance2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">distance2</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lat</span>,\n        <span class=\"sig-arg\">lon</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED on 23.09.23, use method <a \n  href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#Inverse\" \n  class=\"link\">RhumbLineAux.Inverse</a> or <a \n  href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#Inverse\" \n  class=\"link\">RhumbLine.Inverse</a>.</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.namedTuples.Distance2Tuple-class.html\" \n          class=\"link\">Distance2Tuple</a><code>(distance, initial)</code> \n          with the <code>distance</code> in <code>meter</code> and \n          <code>initial</code> bearing (azimuth) in <code>degrees</code>.</dd>\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_method</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"Intersecant2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">Intersecant2</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lat0</span>,\n        <span class=\"sig-arg\">lon0</span>,\n        <span class=\"sig-arg\">radius</span>,\n        <span class=\"sig-arg\">napier</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">**tol_eps</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the intersection(s) of this rhumb line and a circle.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat0</code></strong> - Latitude of the circle center (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lon0</code></strong> - Longitude of the circle center (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>radius</code></strong> - Radius of the circle (<code>meter</code>, conventionally).</li>\n        <li><strong class=\"pname\"><code>napier</code></strong> - If <code>True</code>, apply <i>Napier</i>'s spherical triangle \n          instead of planar trigonometry (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>tol_eps</code></strong> - Optional keyword arguments, see method method <a \n          href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#Intersection\"\n          class=\"link\">Intersection</a> for further details.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>2-Tuple <code>(P, Q)</code> with both intersections (representing\n          a rhumb chord), each a <a \n          href=\"pygeodesy.karney.GDict-class.html\" class=\"link\">GDict</a> \n          from method <a \n          href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#Intersection\"\n          class=\"link\">Intersection</a> extended to 18 items by <code>lat3,\n          lon3, azi03, a03, s03</code> with azimuth <code>azi03</code> of, \n          distance <code>a03</code> in <code>degrees</code> and \n          <code>s03</code> in <code>meter</code> along the rhumb line from \n          the circle <code>lat0, lon0</code> to the chord center \n          <code>lat3, lon3</code>.  If this rhumb line is tangential to the\n          circle, both points are the same <a \n          href=\"pygeodesy.karney.GDict-class.html\" class=\"link\">GDict</a> \n          instance with distances <code>s02</code> and <code>s03</code> \n          near-equal to the <b><code>radius</code></b>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.IntersectionError-class.html\">IntersectionError</a></strong></code> - The circle and this rhumb line do not intersect.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.UnitError-class.html\">UnitError</a></strong></code> - Invalid <b><code>radius</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"intersection2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">intersection2</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>,\n        <span class=\"sig-arg\">**tol_eps</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED on 23.10.10, use method <a \n  href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#Intersection\" \n  class=\"link\">Intersection</a>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_method</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"Intersection\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">Intersection</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>,\n        <span class=\"sig-arg\">tol</span>=<span class=\"sig-default\">1.4901161193847656e-08</span>,\n        <span class=\"sig-arg\">**eps</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p><i>Iteratively</i> find the intersection of this and an other rhumb \n  line.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>other</code></strong> - The other rhumb line (<code>RhumbLine</code>).</li>\n        <li><strong class=\"pname\"><code>tol</code></strong> - Tolerance for longitudinal convergence and parallel error \n          (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>eps</code></strong> - Tolerance for <a \n          href=\"pygeodesy.vector3d-module.html#intersection3d3\" \n          class=\"link\">pygeodesy.intersection3d3</a> (<code>EPS</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The intersection point, a <a \n          href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#Position\" \n          class=\"link\">Position</a>-like <a \n          href=\"pygeodesy.karney.GDict-class.html\" class=\"link\">GDict</a> \n          with 13 items <code>lat1, lon1, azi12, a12, s12, lat2, lon2, \n          lat0, lon0, azi02, a02, s02, at</code> with the rhumb angle \n          <code>a02</code> and rhumb distance <code>s02</code> between the \n          start point <code>lat0, lon0</code> of the \n          <b><code>other</code></b> rhumb line and the intersection \n          <code>lat2, lon2</code>, the azimuth <code>azi02</code> of the \n          <b><code>other</code></b> rhumb line and the angle \n          <code>at</code> between both rhumb lines. See method <a \n          href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#Position\" \n          class=\"link\">Position</a> for further details.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.IntersectionError-class.html\">IntersectionError</a></strong></code> - No convergence for this <b><code>tol</code></b> or no intersection \n        for an other reason.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Methods <code>distance2</code> and <code>PlumbTo</code> and \n        function <a href=\"pygeodesy.vector3d-module.html#intersection3d3\" \n        class=\"link\">pygeodesy.intersection3d3</a>.\n      </p>\n      <p><strong>Note:</strong>\n        Each iteration involves a round trip to this rhumb line's <a \n        href=\"pygeodesy.etm.ExactTransverseMercator-class.html\" \n        class=\"link\">ExactTransverseMercator</a> or <a \n        href=\"pygeodesy.ktm.KTransverseMercator-class.html\" \n        class=\"link\">KTransverseMercator</a> projection and function <a \n        href=\"pygeodesy.vector3d-module.html#intersection3d3\" \n        class=\"link\">pygeodesy.intersection3d3</a> in that domain.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"Inverse\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">Inverse</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lat2</span>,\n        <span class=\"sig-arg\">lon2</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">**outmask</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the rhumb angle, distance, azimuth, <i>reverse</i> azimuth, \n  etc. of a rhumb line between the given point and this rhumb line's start \n  point.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat2</code></strong> - Latitude of the point (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lon2</code></strong> - Longitude of the points (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll \n          <b><code>lat2</code></b> and <b><code>lon2</code></b> \n          (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><a href=\"pygeodesy.karney.GDict-class.html\" \n          class=\"link\">GDict</a> with 8 items <code>a12, s12, azi12, azi21,\n          lat1, lon1, lat2, lon2</code>, the rhumb angle <code>a12</code> \n          and rhumb distance <code>s12</code> between both points in \n          <code>degrees</code> respectively <code>meter</code>, the rhumb \n          line's azimuth <code>azi12</code> and <i>reverse</i> azimuth \n          <code>azi21</code> both in compass <code>degrees</code> between \n          <code>-180</code> and <code>+180</code>.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"m2degrees\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">m2degrees</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">distance</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert a distance along this rhumb line to an angular distance.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>distance</code></strong> - Distance (<code>meter</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Angular distance (<code>degrees</code>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"nearestOn4\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">nearestOn4</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lat0</span>,\n        <span class=\"sig-arg\">lon0</span>,\n        <span class=\"sig-arg\">**exact_eps_est_tol</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED on 23.10.10, use method <a \n  href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#PlumbTo\" \n  class=\"link\">PlumbTo</a>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_method</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"NearestOn\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">NearestOn</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lat0</span>,\n        <span class=\"sig-arg\">lon0</span>,\n        <span class=\"sig-arg\">**exact_eps_est_tol</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED on 23.10.30, use method <a \n  href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#PlumbTo\" \n  class=\"link\">PlumbTo</a>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_method</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"PlumbTo\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">PlumbTo</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lat0</span>,\n        <span class=\"sig-arg\">lon0</span>,\n        <span class=\"sig-arg\">exact</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">eps</span>=<span class=\"sig-default\">2.220446049250313e-16</span>,\n        <span class=\"sig-arg\">est</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">tol</span>=<span class=\"sig-default\">1.4901161193847656e-08</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the <i>perpendicular</i> intersection of this rhumb line with \n  a geodesic from the given point (transcoded from <i>Karney</i>'s C++ <a \n  href=\"https://SourceForge.net/p/geographiclib/discussion/1026620/thread/2ddc295e/\"\n  target=\"_top\">rhumb-intercept</a>).</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat0</code></strong> - Latitude of the point on the geodesic (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lon0</code></strong> - Longitude of the point on the geodesic (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>exact</code></strong> - If <code>None</code>, use a rhumb line perpendicular to this \n          rhumb line, otherwise use an <i>exact</i> \n          <code>Geodesic...</code> from the given point perpendicular to \n          this rhumb line (<code>bool</code> or <code>Geodesic...</code>), \n          see method <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#geodesic_\" \n          class=\"link\">geodesic_</a>.</li>\n        <li><strong class=\"pname\"><code>eps</code></strong> - Optional tolerance (<code>EPS</code>), used only if \n          <code><b>exact</b> is None</code>, see function <a \n          href=\"pygeodesy.vector3d-module.html#intersection3d3\" \n          class=\"link\">intersection3d3</a>.</li>\n        <li><strong class=\"pname\"><code>est</code></strong> - Optionally, an initial estimate for the distance <code>s12</code>\n          of the intersection <i>along</i> this rhumb line \n          (<code>meter</code>), used only if <code><b>exact</b> is not \n          None</code>.</li>\n        <li><strong class=\"pname\"><code>tol</code></strong> - Longitudinal convergence tolerance (<code>degrees</code>) or \n          distance tolerance (C(meter)) when <code><b>exact</b> is \n          None</code>, respectively <code>not None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The intersection point on this rhumb line, a <a \n          href=\"pygeodesy.karney.GDict-class.html\" class=\"link\">GDict</a> \n          from method <a \n          href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#Intersection\"\n          class=\"link\">Intersection</a> if <b><code>exact</code>=None</b>.\n          If <code><b>exact</b> is not None</code>, a <a \n          href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#Position\" \n          class=\"link\">Position</a>-like <a \n          href=\"pygeodesy.karney.GDict-class.html\" class=\"link\">GDict</a> \n          of 13 items <code>azi12, a12, s12, lat2, lat1, lat0, lon2, lon1, \n          lon0, azi0, a02, s02, at</code> with distance <code>a02</code> in\n          <code>degrees</code> and <code>s02</code> in <code>meter</code> \n          between the given point <code>lat0, lon0</code> and the \n          intersection <code>lat2, lon2</code>, geodesic azimuth \n          <code>azi0</code> at the given point and the (perpendicular) \n          angle <code>at</code> between the geodesic and this rhumb line at\n          the intersection.  The <i>geodesic</i> azimuth at the \n          intersection is <code>(at + azi12)</code>.  See method <a \n          href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#Position\" \n          class=\"link\">Position</a> for further details.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ImportError</strong></code> - <i>Karney</i>'s <a href=\"https://PyPI.org/project/geographiclib\" \n        target=\"_top\">geographiclib</a> package not found or not installed.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.IntersectionError-class.html\">IntersectionError</a></strong></code> - No convergence for this <b><code>eps</code></b> or \n        <b><code>tol</code></b> or no intersection for some other reason.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Methods <code>distance2</code>, <code>Intersecant2</code> and \n        <code>Intersection</code> and function <a \n        href=\"pygeodesy.vector3d-module.html#intersection3d3\" \n        class=\"link\">intersection3d3</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"Position\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">Position</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">s12</span>,\n        <span class=\"sig-arg\">outmask</span>=<span class=\"sig-default\">392</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute a point at a given distance on this rhumb line.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>s12</code></strong> - The distance along this rhumb line from its origin to the point \n          (<code>meters</code>), can be negative.</li>\n        <li><strong class=\"pname\"><code>outmask</code></strong> - Bit-or'ed combination of <a \n          href=\"pygeodesy.karney.Caps-class.html\" class=\"link\">Caps</a> \n          values specifying the quantities to be returned.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><a href=\"pygeodesy.karney.GDict-class.html\" \n          class=\"link\">GDict</a> with 4 to 8 items <code>azi12, a12, s12, \n          S12, lat2, lat1, lon2, lon1</code> with latitude \n          <code>lat2</code> and longitude <code>lon2</code> of the point in\n          <code>degrees</code>, the rhumb angle <code>a12</code> in \n          <code>degrees</code> from the start point of and the area \n          <code>S12</code> under this rhumb line in <code>meter</code> \n          <i>squared</i>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ImportError</strong></code> - Package <code>numpy</code> not found or not installed, required \n        only for <a href=\"pygeodesy.rhumb.aux_.RhumbLineAux-class.html\" \n        class=\"link\">RhumbLineAux</a> area <code>S12</code> when \n        <code><b>exact</b> is True</code>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        If <b><code>s12</code></b> is large enough that the rhumb line \n        crosses a pole, the longitude of the second point is indeterminate \n        and <code>NAN</code> is returned for <code>lon2</code> and area \n        <code>S12</code>.\n        <p>If the first point is a pole, the cosine of its latitude is \n        taken to be <code>sqrt(EPS)</code>.  This position is extremely \n        close to the actual pole and allows the calculation to be carried \n        out in finite terms.</p>\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"toStr\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toStr</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">prec</span>=<span class=\"sig-default\">6</span>,\n        <span class=\"sig-arg\">sep</span>=<span class=\"sig-default\">', '</span>,\n        <span class=\"sig-arg\">**unused</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return this <code>RhumbLine</code> as string.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>prec</code></strong> - The <code>float</code> precision, number of decimal digits \n          (0..9). Trailing zero decimals are stripped for \n          <b><code>prec</code></b> values of 1 and above, but kept for \n          negative <b><code>prec</code></b> values.</li>\n        <li><strong class=\"pname\"><code>sep</code></strong> - Separator to join (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>RhumbLine</code> (<code>str</code>).</dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.named._Named-class.html#toStr\">named._Named.toStr</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"azi12\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">azi12</h3>\n  <p>Get this rhumb line's <i>azimuth</i> (compass \n  <code>degrees</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">azi12(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get this rhumb line's <i>azimuth</i> (compass <code>degrees</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">azi12(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">azi12</span>)</span>\n        - Set this rhumb line's <i>azimuth</i> (compass <code>degrees</code>).\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"azi12_sincos2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">azi12_sincos2</h3>\n  <p>Get the sine and cosine of this rhumb line's <i>azimuth</i> (2-tuple \n  <code>(sin, cos)</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">azi12_sincos2(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the sine and cosine of this rhumb line's <i>azimuth</i> (2-tuple \n<code>(sin, cos)</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"datum\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">datum</h3>\n  <p>Get this rhumb line's datum (<a \n  href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">datum(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get this rhumb line's datum (<a href=\"pygeodesy.datums.Datum-class.html\" \nclass=\"link\">Datum</a>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"ellipsoid\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">ellipsoid</h3>\n  <p>Get this rhumb line's ellipsoid (<a \n  href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n  class=\"link\">Ellipsoid</a>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">ellipsoid(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get this rhumb line's ellipsoid (<a \nhref=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \nclass=\"link\">Ellipsoid</a>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"exact\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">exact</h3>\n  <p>Get this rhumb line's <i>exact</i> option (<code>bool</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">exact(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get this rhumb line's <i>exact</i> option (<code>bool</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"isLoxodrome\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">isLoxodrome</h3>\n  <p>Is this rhumb line a meridional (<code>None</code>), a parallel \n  (<code>False</code>) or a <code>True</code> loxodrome?</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">isLoxodrome(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Is this rhumb line a meridional (<code>None</code>), a parallel \n(<code>False</code>) or a <code>True</code> loxodrome?\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <i>Osborne's</i> <a href=\"https://Zenodo.org/record/35392\" \n        target=\"_top\">2.5 Rumb lines and loxodromes</a>, page 37.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"lat1\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">lat1</h3>\n  <p>Get this rhumb line's latitude (<code>degrees90</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">lat1(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get this rhumb line's latitude (<code>degrees90</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"lon1\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">lon1</h3>\n  <p>Get this rhumb line's longitude (<code>degrees180</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">lon1(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get this rhumb line's longitude (<code>degrees180</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"latlon1\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">latlon1</h3>\n  <p>Get this rhumb line's lat- and longitude (<a \n  href=\"pygeodesy.namedTuples.LatLon2Tuple-class.html\" \n  class=\"link\">LatLon2Tuple</a><code>(lat, lon)</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">latlon1(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get this rhumb line's lat- and longitude (<a \nhref=\"pygeodesy.namedTuples.LatLon2Tuple-class.html\" \nclass=\"link\">LatLon2Tuple</a><code>(lat, lon)</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"rhumb\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">rhumb</h3>\n  <p>Get this rhumb line's rhumb (<a \n  href=\"pygeodesy.rhumb.aux_.RhumbAux-class.html\" class=\"link\">RhumbAux</a>\n  or <a href=\"pygeodesy.rhumb.ekx.Rhumb-class.html\" \n  class=\"link\">Rhumb</a>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">rhumb(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get this rhumb line's rhumb (<a \nhref=\"pygeodesy.rhumb.aux_.RhumbAux-class.html\" class=\"link\">RhumbAux</a> \nor <a href=\"pygeodesy.rhumb.ekx.Rhumb-class.html\" class=\"link\">Rhumb</a>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"TMorder\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">TMorder</h3>\n  <p>Get this rhumb line's <i>Transverse Mercator</i> order \n  (<code>int</code>, 4, 5, 6, 7 or 8).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">TMorder(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get this rhumb line's <i>Transverse Mercator</i> order (<code>int</code>, \n4, 5, 6, 7 or 8).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"xTM\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">xTM</h3>\n  <p>Get this rhumb line's <i>Transverse Mercator</i> projection (<a \n  href=\"pygeodesy.etm.ExactTransverseMercator-class.html\" \n  class=\"link\">ExactTransverseMercator</a> if <i>exact</i> and \n  <i>ellipsoidal</i>, otherwise <a \n  href=\"pygeodesy.ktm.KTransverseMercator-class.html\" \n  class=\"link\">KTransverseMercator</a> for <code>TMorder</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">xTM(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get this rhumb line's <i>Transverse Mercator</i> projection (<a \nhref=\"pygeodesy.etm.ExactTransverseMercator-class.html\" \nclass=\"link\">ExactTransverseMercator</a> if <i>exact</i> and \n<i>ellipsoidal</i>, otherwise <a \nhref=\"pygeodesy.ktm.KTransverseMercator-class.html\" \nclass=\"link\">KTransverseMercator</a> for <code>TMorder</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.rhumb.ekx-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.rhumb.ekx</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.rhumb-module.html\">Package&nbsp;rhumb</a> ::\n        Module&nbsp;ekx\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.rhumb.ekx-module.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== MODULE DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Module ekx</h1><p class=\"nomargin-top\"></p>\n<p>A pure Python version of <i>Karney</i>'s <i>elliptic functions</i>, \n  <i>Kr&#252;ger series expansion</i>, C++ classes <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Rhumb.html\"\n  target=\"_top\">Rhumb</a> and and <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1RhumbLine.html\"\n  target=\"_top\">RhumbLine</a> from <i>GeographicLib version 2.0</i>, kept \n  for backward compatibility.</p>\n  <p>Class <a href=\"pygeodesy.rhumb.ekx.RhumbLine-class.html\" \n  class=\"link\">RhumbLine</a> has been enhanced with methods \n  <code>Intersecant2</code>, <code>Intersection</code> and \n  <code>PlumbTo</code> to iteratively find the intersection of a rhumb line\n  and a circle or an other rhumb line, respectively a perpendicular \n  geodesic or other rhumb line.</p>\n  <p>For more details, see the C++ <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/index.html\" \n  target=\"_top\">GeographicLib</a> documentation, especially the <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/annotated.html\" \n  target=\"_top\">Class List</a>, the background information on <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/rhumb.html\" \n  target=\"_top\">Rhumb lines</a>, the utily <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/RhumbSolve.1.html\" \n  target=\"_top\">RhumbSolve</a> and <a \n  href=\"https://GeographicLib.SourceForge.io/cgi-bin/RhumbSolve\" \n  target=\"_top\">Online rhumb line calculations</a>.</p>\n  <p>Copyright (C) <a href=\"mailto:Karney@Alum.MIT.edu\" \n  target=\"_top\">Charles Karney</a> (2014-2024) and licensed under the \n  MIT/X11 License.  For more information, see the <a \n  href=\"https://GeographicLib.SourceForge.io\" \n  target=\"_top\">GeographicLib</a> documentation.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Version:</strong>\n        25.08.31\n      </p>\n</div><!-- ==================== CLASSES ==================== -->\n<a name=\"section-Classes\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Classes</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.karney.Caps-class.html\" class=\"summary-name\">Caps</a><br />\n      <i>Enum</i>-style masks to be bit-<code>or</code>'ed to specify \n        <code>geodesic</code>, <code>rhumb</code> or <code>-lines</code> \n        capabilities (<code>caps</code>) and method results \n        (<code>outmask</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.rhumb.ekx.Rhumb-class.html\" class=\"summary-name\">Rhumb</a><br />\n      Class to solve the <i>direct</i> and <i>inverse rhumb</i> problems,\n        based on <i>elliptic functions</i> or <i>Kr&#252;ger series \n        expansion</i>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.rhumb.ekx.RhumbLine-class.html\" class=\"summary-name\">RhumbLine</a><br />\n      Compute one or several points on a single rhumb line.\n    </td>\n  </tr>\n</table>\n<!-- ==================== VARIABLES ==================== -->\n<a name=\"section-Variables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Variables</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"__all__\"></a><span class=\"summary-name\">__all__</span> = <code title=\"_ALL_LAZY.rhumb_ekx\">_ALL_LAZY.rhumb_ekx</code>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.rhumb.ekx.Rhumb-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.rhumb.ekx.Rhumb</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.rhumb-module.html\">Package&nbsp;rhumb</a> ::\n        <a href=\"pygeodesy.rhumb.ekx-module.html\" onclick=\"show_private();\">Module&nbsp;ekx</a> ::\n        Class&nbsp;Rhumb\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.rhumb.ekx.Rhumb-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Rhumb</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+                \n           |                \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+            \n               |            \n<a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+        \n                   |        \n    <a href=\"pygeodesy.karney._CapsBase-class.html\">karney._CapsBase</a> --+    \n                       |    \n         <a href=\"pygeodesy.rhumb.bases.RhumbBase-class.html\">bases.RhumbBase</a> --+\n                           |\n                          <strong class=\"uidshort\">Rhumb</strong>\n</pre>\n\n<hr />\n<p>Class to solve the <i>direct</i> and <i>inverse rhumb</i> problems, \n  based on <i>elliptic functions</i> or <i>Kr&#252;ger series expansion</i></p>\n\n<hr />\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        The <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Rhumb.html\"\n        target=\"_top\">Detailed Description</a> of <i>Karney</i>'s C++ \n        <code>Rhumb Class</code>.\n      </p>\n</div><!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.rhumb.ekx.Rhumb-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">a_earth</span>=<span class=\"summary-sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"summary-sig-arg\">f</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">exact</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">**RA_TMorder_name</span>)</span><br />\n      New <code>Rhumb</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.rhumb.ekx.Rhumb-class.html#Direct7\" class=\"summary-sig-name\">Direct7</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lat1</span>,\n        <span class=\"summary-sig-arg\">lon1</span>,\n        <span class=\"summary-sig-arg\">azi12</span>,\n        <span class=\"summary-sig-arg\">s12</span>,\n        <span class=\"summary-sig-arg\">outmask</span>=<span class=\"summary-sig-default\">16792</span>)</span><br />\n      DEPRECATED, use method <a \n      href=\"pygeodesy.rhumb.bases.RhumbBase-class.html#Direct8\" \n      class=\"link\">Rhumb.Direct8</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.rhumb.ekx.Rhumb-class.html#Inverse7\" class=\"summary-sig-name\">Inverse7</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lat1</span>,\n        <span class=\"summary-sig-arg\">lon1</span>,\n        <span class=\"summary-sig-arg\">azi12</span>,\n        <span class=\"summary-sig-arg\">s12</span>,\n        <span class=\"summary-sig-arg\">outmask</span>=<span class=\"summary-sig-default\">17937</span>)</span><br />\n      DEPRECATED, use method <a \n      href=\"pygeodesy.rhumb.bases.RhumbBase-class.html#Inverse8\" \n      class=\"link\">Rhumb.Inverse8</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.rhumb.ekx.Rhumb-class.html#orders\" class=\"summary-sig-name\">orders</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">RAorder</span>=<span class=\"summary-sig-default\">6</span>,\n        <span class=\"summary-sig-arg\">TMorder</span>=<span class=\"summary-sig-default\">6</span>)</span><br />\n      DEPRECATED, use properties <code>RAorder</code> and/or \n      <code>TMorder</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.rhumb.bases.RhumbBase-class.html\">bases.RhumbBase</a></code></b>:\n      <code><a href=\"pygeodesy.rhumb.bases.RhumbBase-class.html#ArcDirect\">ArcDirect</a></code>,\n      <code><a href=\"pygeodesy.rhumb.bases.RhumbBase-class.html#Direct\">Direct</a></code>,\n      <code><a href=\"pygeodesy.rhumb.bases.RhumbBase-class.html#Direct8\">Direct8</a></code>,\n      <code><a href=\"pygeodesy.rhumb.bases.RhumbBase-class.html#DirectLine\">DirectLine</a></code>,\n      <code><a href=\"pygeodesy.rhumb.bases.RhumbBase-class.html#Inverse\">Inverse</a></code>,\n      <code><a href=\"pygeodesy.rhumb.bases.RhumbBase-class.html#Inverse8\">Inverse8</a></code>,\n      <code><a href=\"pygeodesy.rhumb.bases.RhumbBase-class.html#InverseLine\">InverseLine</a></code>,\n      <code><a href=\"pygeodesy.rhumb.bases.RhumbBase-class.html#Line\">Line</a></code>,\n      <code><a href=\"pygeodesy.rhumb.bases.RhumbBase-class.html#toStr\">toStr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.karney._CapsBase-class.html\">karney._CapsBase</a></code></b>:\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#caps_\">caps_</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#others\">others</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#toRepr\">toRepr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS VARIABLES ==================== -->\n<a name=\"section-ClassVariables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Class Variables</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.karney._CapsBase-class.html\">karney._CapsBase</a></code></b>:\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#ALL\">ALL</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#AREA\">AREA</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#AZIMUTH\">AZIMUTH</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#DISTANCE\">DISTANCE</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#DISTANCE_IN\">DISTANCE_IN</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#EMPTY\">EMPTY</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#GEODESICSCALE\">GEODESICSCALE</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#LATITUDE\">LATITUDE</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#LINE_CAPS\">LINE_CAPS</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#LINE_OFF\">LINE_OFF</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#LONGITUDE\">LONGITUDE</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#LONG_UNROLL\">LONG_UNROLL</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#NONFINITONAN\">NONFINITONAN</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#REDUCEDLENGTH\">REDUCEDLENGTH</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#STANDARD\">STANDARD</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#STANDARD_LINE\">STANDARD_LINE</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.rhumb.ekx.Rhumb-class.html#RAorder\" class=\"summary-name\">RAorder</a><br />\n      Get the <i>Rhumb Area</i> order (<code>int</code>, 4, 5, 6, 7 or 8).\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.rhumb.bases.RhumbBase-class.html\">bases.RhumbBase</a></code></b>:\n      <code><a href=\"pygeodesy.rhumb.bases.RhumbBase-class.html#TMorder\">TMorder</a></code>,\n      <code><a href=\"pygeodesy.rhumb.bases.RhumbBase-class.html#a\">a</a></code>,\n      <code><a href=\"pygeodesy.rhumb.bases.RhumbBase-class.html#b\">b</a></code>,\n      <code><a href=\"pygeodesy.rhumb.bases.RhumbBase-class.html#datum\">datum</a></code>,\n      <code><a href=\"pygeodesy.rhumb.bases.RhumbBase-class.html#ellipsoid\">ellipsoid</a></code>,\n      <code><a href=\"pygeodesy.rhumb.bases.RhumbBase-class.html#equatoradius\">equatoradius</a></code>,\n      <code><a href=\"pygeodesy.rhumb.bases.RhumbBase-class.html#exact\">exact</a></code>,\n      <code><a href=\"pygeodesy.rhumb.bases.RhumbBase-class.html#f\">f</a></code>,\n      <code><a href=\"pygeodesy.rhumb.bases.RhumbBase-class.html#f_max\">f_max</a></code>,\n      <code><a href=\"pygeodesy.rhumb.bases.RhumbBase-class.html#flattening\">flattening</a></code>,\n      <code><a href=\"pygeodesy.rhumb.bases.RhumbBase-class.html#polaradius\">polaradius</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.karney._CapsBase-class.html\">karney._CapsBase</a></code></b>:\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#caps\">caps</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#debug\">debug</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">a_earth</span>=<span class=\"sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"sig-arg\">f</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">exact</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">**RA_TMorder_name</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <code>Rhumb</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>a_earth</code></strong> - This rhumb's earth model (<a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>, \n          <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a>, <a \n          href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>, 2-tuple <code>(a, f)</code>) or the \n          (equatorial) radius (<code>meter</code>, conventionally).</li>\n        <li><strong class=\"pname\"><code>f</code></strong> - The ellipsoid's flattening (<code>scalar</code>), required if \n          <b><code>a_earth</code></b> is <code>scalar</code>, ignored \n          otherwise.</li>\n        <li><strong class=\"pname\"><code>exact</code></strong> - If <code>True</code>, use an addition theorem for elliptic \n          integrals to compute <i>Divided differences</i>, otherwise use \n          the <i>Kr&#252;ger</i> series expansion (<code>bool</code> or \n          <code>None</code>), see also properties <code>exact</code> and \n          <code>TMorder</code>.</li>\n        <li><strong class=\"pname\"><code>RA_TMorder_name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>) and \n          optional keyword arguments <b><code>RAorder</code>=6</b> and \n          <b><code>TMorder</code>=6</b> to set the respective \n          <code>order</code>, see properties <code>RAorder</code> and \n          <code>TMorder</code>.</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.RhumbError-class.html\">RhumbError</a></strong></code> - Invalid <b><code>a_earth</code></b>, <b><code>f</code></b>, \n        <b><code>RAorder</code></b> or <b><code>TMorder</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"Direct7\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">Direct7</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lat1</span>,\n        <span class=\"sig-arg\">lon1</span>,\n        <span class=\"sig-arg\">azi12</span>,\n        <span class=\"sig-arg\">s12</span>,\n        <span class=\"sig-arg\">outmask</span>=<span class=\"sig-default\">16792</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use method <a \n  href=\"pygeodesy.rhumb.bases.RhumbBase-class.html#Direct8\" \n  class=\"link\">Rhumb.Direct8</a>.</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd>A <i>DEPRECATED</i> <a \n          href=\"pygeodesy.deprecated.classes.Rhumb7Tuple-class.html\" \n          class=\"link\">Rhumb7Tuple</a>.</dd>\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_method</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"Inverse7\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">Inverse7</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lat1</span>,\n        <span class=\"sig-arg\">lon1</span>,\n        <span class=\"sig-arg\">azi12</span>,\n        <span class=\"sig-arg\">s12</span>,\n        <span class=\"sig-arg\">outmask</span>=<span class=\"sig-default\">17937</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use method <a \n  href=\"pygeodesy.rhumb.bases.RhumbBase-class.html#Inverse8\" \n  class=\"link\">Rhumb.Inverse8</a>.</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd>A <i>DEPRECATED</i> <a \n          href=\"pygeodesy.deprecated.classes.Rhumb7Tuple-class.html\" \n          class=\"link\">Rhumb7Tuple</a>.</dd>\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_method</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"orders\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">orders</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">RAorder</span>=<span class=\"sig-default\">6</span>,\n        <span class=\"sig-arg\">TMorder</span>=<span class=\"sig-default\">6</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use properties <code>RAorder</code> and/or \n  <code>TMorder</code>.</p>\n  <p>Get and set the <i>RAorder</i> and/or <i>TMorder</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>RAorder</code></strong> - <i>Rhumb Area</i> order (<code>int</code>, 4, 5, 6, 7 or 8).</li>\n        <li><strong class=\"pname\"><code>TMorder</code></strong> - <i>Transverse Mercator</i> order (<code>int</code>, 4, 5, 6, 7 or\n          8).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>DEPRECATED <a \n          href=\"pygeodesy.deprecated.classes.RhumbOrder2Tuple-class.html\" \n          class=\"link\">RhumbOrder2Tuple</a><code>(RAorder, TMorder)</code> \n          with the previous <code>RAorder</code> and <code>TMorder</code> \n          setting.</dd>\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_method</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"RAorder\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">RAorder</h3>\n  <p>Get the <i>Rhumb Area</i> order (<code>int</code>, 4, 5, 6, 7 or \n  8).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">RAorder(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <i>Rhumb Area</i> order (<code>int</code>, 4, 5, 6, 7 or 8).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">RAorder(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">order</span>)</span>\n        - Set the <i>Rhumb Area</i> order (<code>int</code>, 4, 5, 6, 7 or 8).\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.rhumb.ekx.RhumbLine-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.rhumb.ekx.RhumbLine</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.rhumb-module.html\">Package&nbsp;rhumb</a> ::\n        <a href=\"pygeodesy.rhumb.ekx-module.html\" onclick=\"show_private();\">Module&nbsp;ekx</a> ::\n        Class&nbsp;RhumbLine\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.rhumb.ekx.RhumbLine-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class RhumbLine</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+                \n           |                \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+            \n               |            \n<a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+        \n                   |        \n    <a href=\"pygeodesy.karney._CapsBase-class.html\">karney._CapsBase</a> --+    \n                       |    \n     <a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html\">bases.RhumbLineBase</a> --+\n                           |\n                          <strong class=\"uidshort\">RhumbLine</strong>\n</pre>\n\n<hr />\n<p>Compute one or several points on a single rhumb line.</p>\n  <p>Class <code>RhumbLine</code> facilitates the determination of points \n  on a single rhumb line.  The starting point (<code>lat1</code>, \n  <code>lon1</code>) and the azimuth <code>azi12</code> are specified \n  once.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.rhumb.ekx.RhumbLine-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">rhumb</span>,\n        <span class=\"summary-sig-arg\">lat1</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">lon1</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">azi12</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**caps_name</span>)</span><br />\n      New <code>RhumbLine</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html\">bases.RhumbLineBase</a></code></b>:\n      <code><a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#ArcPosition\">ArcPosition</a></code>,\n      <code><a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#Intersecant2\">Intersecant2</a></code>,\n      <code><a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#Intersection\">Intersection</a></code>,\n      <code><a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#Inverse\">Inverse</a></code>,\n      <code><a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#NearestOn\">NearestOn</a></code>,\n      <code><a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#PlumbTo\">PlumbTo</a></code>,\n      <code><a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#Position\">Position</a></code>,\n      <code><a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#__del__\">__del__</a></code>,\n      <code><a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#degrees2m\">degrees2m</a></code>,\n      <code><a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#distance2\">distance2</a></code>,\n      <code><a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#intersection2\">intersection2</a></code>,\n      <code><a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#m2degrees\">m2degrees</a></code>,\n      <code><a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#nearestOn4\">nearestOn4</a></code>,\n      <code><a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#toStr\">toStr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.karney._CapsBase-class.html\">karney._CapsBase</a></code></b>:\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#caps_\">caps_</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#others\">others</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#toRepr\">toRepr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS VARIABLES ==================== -->\n<a name=\"section-ClassVariables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Class Variables</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.karney._CapsBase-class.html\">karney._CapsBase</a></code></b>:\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#ALL\">ALL</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#AREA\">AREA</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#AZIMUTH\">AZIMUTH</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#DISTANCE\">DISTANCE</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#DISTANCE_IN\">DISTANCE_IN</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#EMPTY\">EMPTY</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#GEODESICSCALE\">GEODESICSCALE</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#LATITUDE\">LATITUDE</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#LINE_CAPS\">LINE_CAPS</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#LINE_OFF\">LINE_OFF</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#LONGITUDE\">LONGITUDE</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#LONG_UNROLL\">LONG_UNROLL</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#NONFINITONAN\">NONFINITONAN</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#REDUCEDLENGTH\">REDUCEDLENGTH</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#STANDARD\">STANDARD</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#STANDARD_LINE\">STANDARD_LINE</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.rhumb.ekx.RhumbLine-class.html#RAorder\" class=\"summary-name\">RAorder</a><br />\n      Get this rhumb line's <i>Rhumb Area</i> order (<code>int</code>, 4, \n      5, 6, 7 or 8).\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html\">bases.RhumbLineBase</a></code></b>:\n      <code><a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#TMorder\">TMorder</a></code>,\n      <code><a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#azi12\">azi12</a></code>,\n      <code><a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#azi12_sincos2\">azi12_sincos2</a></code>,\n      <code><a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#datum\">datum</a></code>,\n      <code><a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#ellipsoid\">ellipsoid</a></code>,\n      <code><a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#exact\">exact</a></code>,\n      <code><a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#isLoxodrome\">isLoxodrome</a></code>,\n      <code><a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#lat1\">lat1</a></code>,\n      <code><a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#latlon1\">latlon1</a></code>,\n      <code><a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#lon1\">lon1</a></code>,\n      <code><a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#rhumb\">rhumb</a></code>,\n      <code><a href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#xTM\">xTM</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.karney._CapsBase-class.html\">karney._CapsBase</a></code></b>:\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#caps\">caps</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#debug\">debug</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">rhumb</span>,\n        <span class=\"sig-arg\">lat1</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">lon1</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">azi12</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**caps_name</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <code>RhumbLine</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>rhumb</code></strong> - The rhumb reference (<a \n          href=\"pygeodesy.rhumb.ekx.Rhumb-class.html\" \n          class=\"link\">Rhumb</a>).</li>\n        <li><strong class=\"pname\"><code>lat1</code></strong> - Latitude of the start point (<code>degrees90</code>).</li>\n        <li><strong class=\"pname\"><code>lon1</code></strong> - Longitude of the start point (<code>degrees180</code>).</li>\n        <li><strong class=\"pname\"><code>azi12</code></strong> - Azimuth of this rhumb line (compass <code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>caps_name</code></strong> - Optional keyword arguments <code><b>name</b>=NN</code> and \n          <code><b>caps</b>=0</code>, a bit-or'ed combination of <a \n          href=\"pygeodesy.karney.Caps-class.html\" class=\"link\">Caps</a> \n          values specifying the required capabilities.  Include \n          <code>Caps.LINE_OFF</code> if updates to the \n          <b><code>rhumb</code></b> should <i>not be reflected</i> in this \n          rhumb line.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"RAorder\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">RAorder</h3>\n  <p>Get this rhumb line's <i>Rhumb Area</i> order (<code>int</code>, 4, 5,\n  6, 7 or 8).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">RAorder(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get this rhumb line's <i>Rhumb Area</i> order (<code>int</code>, 4, 5, 6, 7\nor 8).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.rhumb.solve-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.rhumb.solve</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.rhumb-module.html\">Package&nbsp;rhumb</a> ::\n        Module&nbsp;solve\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.rhumb.solve-module.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== MODULE DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Module solve</h1><p class=\"nomargin-top\"></p>\n<p>Wrapper to invoke <i>Karney</i>'s <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/RhumbSolve.1.html\" \n  target=\"_top\">RhumbSolve</a> utility as an (exact) rhumb or rhumb line \n  from <i>either GeographicLib 2.0 or 2.2+</i>.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Note:</strong>\n        Set env variable <code>PYGEODESY_RHUMBSOLVE</code> to the (fully \n        qualified) path of the <code>RhumbSolve</code> executable.\n      </p>\n      <p><strong>Version:</strong>\n        25.12.06\n      </p>\n</div><!-- ==================== CLASSES ==================== -->\n<a name=\"section-Classes\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Classes</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.karney.Rhumb8Tuple-class.html\" class=\"summary-name\">Rhumb8Tuple</a><br />\n      8-Tuple <code>(lat1, lon1, lat2, lon2, azi12, s12, S12, a12)</code>\n        with lat- <code>lat1</code>, <code>lat2</code> and longitudes \n        <code>lon1</code>, <code>lon2</code> of both points, the azimuth of\n        the rhumb line <code>azi12</code>, the distance <code>s12</code>, \n        the area <code>S12</code> under the rhumb line and the angular \n        distance <code>a12</code> between both points.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.rhumb.solve._RhumbSolveBase-class.html\" class=\"summary-name\">_RhumbSolveBase</a><br />\n      (INTERNAL) Base class for <a \n        href=\"pygeodesy.rhumb.solve._RhumbSolveBase-class.html#RhumbSolve\" \n        class=\"link\">RhumbSolve</a> and <a \n        href=\"pygeodesy.rhumb.solve.RhumbLineSolve-class.html\" \n        class=\"link\">RhumbLineSolve</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.rhumb.solve.RhumbSolve-class.html\" class=\"summary-name\">RhumbSolve</a><br />\n      Wrapper to invoke <i>Karney</i>'s <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/RhumbSolve.1.html\"\n        target=\"_top\">RhumbSolve</a> like a class, similar to <a \n        href=\"pygeodesy.rhumb.ekx.Rhumb-class.html\" \n        class=\"link\">pygeodesy.Rhumb</a> and <a \n        href=\"pygeodesy.rhumb.aux_.RhumbAux-class.html\" \n        class=\"link\">pygeodesy.RhumbAux</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.rhumb.solve.RhumbLineSolve-class.html\" class=\"summary-name\">RhumbLineSolve</a><br />\n      Wrapper to invoke <i>Karney</i>'s <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/RhumbSolve.1.html\"\n        target=\"_top\">RhumbSolve</a> like a class, similar to <a \n        href=\"pygeodesy.rhumb.ekx.RhumbLine-class.html\" \n        class=\"link\">pygeodesy.RhumbLine</a> and <a \n        href=\"pygeodesy.rhumb.aux_.RhumbLineAux-class.html\" \n        class=\"link\">pygeodesy.RhumbLineAux</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.rhumb.solve.RhumbSolve7Tuple-class.html\" class=\"summary-name\">RhumbSolve7Tuple</a><br />\n      7-Tuple <code>(lat1, lon1, lat2, lon2, azi12, s12, S12)</code> with\n        lat- <code>lat1</code>, <code>lat2</code> and longitudes \n        <code>lon1</code>, <code>lon2</code> of both points, the azimuth of\n        the rhumb line <code>azi12</code>, the distance <code>s12</code> \n        and the area <code>S12</code> under the rhumb line between both \n        points.\n    </td>\n  </tr>\n</table>\n<!-- ==================== FUNCTIONS ==================== -->\n<a name=\"section-Functions\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Functions</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"rhumb_intercept\"></a><span class=\"summary-sig-name\">rhumb_intercept</span>(<span class=\"summary-sig-arg\">rS</span>,\n        <span class=\"summary-sig-arg\">lat1</span>,\n        <span class=\"summary-sig-arg\">lon1</span>,\n        <span class=\"summary-sig-arg\">lat2</span>,\n        <span class=\"summary-sig-arg\">lon2</span>,\n        <span class=\"summary-sig-arg\">azi2</span>,\n        <span class=\"summary-sig-arg\">s23</span>)</span></td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== VARIABLES ==================== -->\n<a name=\"section-Variables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Variables</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"__all__\"></a><span class=\"summary-name\">__all__</span> = <code title=\"_ALL_LAZY.rhumb_solve\">_ALL_LAZY.rhumb_solve</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"rS\"></a><span class=\"summary-name\">rS</span> = <code title=\"RhumbSolve(name= 'Test')\">RhumbSolve(name= 'Test')</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"v\"></a><span class=\"summary-name\">v</span> = <code title=\"'--verbose' in argv\">'--verbose' in argv</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"t\"></a><span class=\"summary-name\">t</span> = <code title=\"14, 's23', (7, 'lat3'), (11, 'lon3'), (13, 'cos()')\">14, 's23', (7, 'lat3'), (11, 'lon3'), (13, 'cos()')</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"r\"></a><span class=\"summary-name\">r</span> = <code title=\"rS.Direct(40.6,-73.8, 51, 5.5e6)\">rS.Direct(40.6,-73.8, 51, 5.5e6)</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"rlS\"></a><span class=\"summary-name\">rlS</span> = <code title=\"RhumbLineSolve(rS, 40.6,-73.8, 51, name= 'LineTest')\">RhumbLineSolve(rS, 40.6,-73.8, 51, name= 'LineTest')</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"p\"></a><span class=\"summary-name\">p</span> = <code title=\"rlS.Position(5.5e6)\">rlS.Position(5.5e6)</code>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.rhumb.solve.RhumbLineSolve-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.rhumb.solve.RhumbLineSolve</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.rhumb-module.html\">Package&nbsp;rhumb</a> ::\n        <a href=\"pygeodesy.rhumb.solve-module.html\" onclick=\"show_private();\">Module&nbsp;solve</a> ::\n        Class&nbsp;RhumbLineSolve\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.rhumb.solve.RhumbLineSolve-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class RhumbLineSolve</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+                                \n           |                                \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+                            \n               |                            \n<a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+                        \n                   |                        \n    <a href=\"pygeodesy.karney._CapsBase-class.html\">karney._CapsBase</a> --+                    \n                       |                    \n<a href=\"pygeodesy.solveBase._SolveCapsBase-class.html\">solveBase._SolveCapsBase</a> --+                \n                           |                \n        <a href=\"pygeodesy.solveBase._SolveBase-class.html\">solveBase._SolveBase</a> --+            \n                               |            \n           solveBase._Solve3Base --+        \n                                   |        \n           <a href=\"pygeodesy.solveBase._SolveGDictBase-class.html\">solveBase._SolveGDictBase</a> --+    \n                                       |    \n                         <a href=\"pygeodesy.rhumb.solve._RhumbSolveBase-class.html\">_RhumbSolveBase</a> --+\n                                           |\n  object --+                               |\n           |                               |\n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+                           |\n               |                           |\n<a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+                       |\n                   |                       |\n    <a href=\"pygeodesy.karney._CapsBase-class.html\">karney._CapsBase</a> --+                   |\n                       |                   |\n<a href=\"pygeodesy.solveBase._SolveCapsBase-class.html\">solveBase._SolveCapsBase</a> --+               |\n                           |               |\n        <a href=\"pygeodesy.solveBase._SolveBase-class.html\">solveBase._SolveBase</a> --+           |\n                               |           |\n           solveBase._Solve3Base --+       |\n                                   |       |\n           <a href=\"pygeodesy.solveBase._SolveGDictBase-class.html\">solveBase._SolveGDictBase</a> --+   |\n                                       |   |\n           <a href=\"pygeodesy.solveBase._SolveGDictLineBase-class.html\">solveBase._SolveGDictLineBase</a> --+\n                                           |\n                                          <strong class=\"uidshort\">RhumbLineSolve</strong>\n</pre>\n\n<hr />\n<p>Wrapper to invoke <i>Karney</i>'s <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/RhumbSolve.1.html\" \n  target=\"_top\">RhumbSolve</a> like a class, similar to <a \n  href=\"pygeodesy.rhumb.ekx.RhumbLine-class.html\" \n  class=\"link\">pygeodesy.RhumbLine</a> and <a \n  href=\"pygeodesy.rhumb.aux_.RhumbLineAux-class.html\" \n  class=\"link\">pygeodesy.RhumbLineAux</a>.</p>\n\n<hr />\n<div class=\"fields\">      <strong>Notes:</strong>\n      <ul class=\"nomargin-top\">\n        <li>\n        Use property <code>RhumbSolve</code> or env variable \n        <code>PYGEODESY_RHUMBSOLVE</code> to specify the (fully qualified) \n        path to the <code>RhumbSolve</code> executable.\n        </li>\n        <li>\n        This <code>rhumb line</code> is intended <i>for testing purposes \n        only</i>, it invokes the <code>RhumbSolve</code> executable for \n        <i>every</i> method call.\n        </li>\n      </ul>\n</div><!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.rhumb.solve.RhumbLineSolve-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">rhumb</span>,\n        <span class=\"summary-sig-arg\">lat1</span>,\n        <span class=\"summary-sig-arg\">lon1</span>,\n        <span class=\"summary-sig-arg\">azi12</span>,\n        <span class=\"summary-sig-arg\">caps</span>=<span class=\"summary-sig-default\">1929</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      New <a href=\"pygeodesy.rhumb.solve.RhumbLineSolve-class.html\" \n      class=\"link\">RhumbLineSolve</a> instance, allowing points to be found\n      along a rhumb starting at <code>(<b>lat1</b>, <b>lon1</b>)</code> \n      with azimuth <b><code>azi12</code></b>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.rhumb.solve.RhumbLineSolve-class.html#Position\" class=\"summary-sig-name\">Position</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">s12</span>,\n        <span class=\"summary-sig-arg\">**unused</span>)</span><br />\n      Find the position on the line given <b><code>s12</code></b>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.rhumb.solve.RhumbLineSolve-class.html#toStr\" class=\"summary-sig-name\">toStr</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">**prec_sep_other</span>)</span><br />\n      Return this <code>RhumbLineSolve</code> as string.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.solveBase._SolveGDictBase-class.html\">solveBase._SolveGDictBase</a></code></b>:\n      <code><a href=\"pygeodesy.solveBase._SolveGDictBase-class.html#ArcDirect\">ArcDirect</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveGDictBase-class.html#Direct\">Direct</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveGDictBase-class.html#Inverse\">Inverse</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveGDictBase-class.html#Inverse1\">Inverse1</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html\">solveBase._SolveCapsBase</a></code></b>:\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#invokat\">invokat</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#invoke\">invoke</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#linelimit\">linelimit</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.karney._CapsBase-class.html\">karney._CapsBase</a></code></b>:\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#caps_\">caps_</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#others\">others</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#toRepr\">toRepr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS VARIABLES ==================== -->\n<a name=\"section-ClassVariables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Class Variables</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.karney._CapsBase-class.html\">karney._CapsBase</a></code></b>:\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#ALL\">ALL</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#AREA\">AREA</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#AZIMUTH\">AZIMUTH</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#DISTANCE\">DISTANCE</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#DISTANCE_IN\">DISTANCE_IN</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#EMPTY\">EMPTY</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#GEODESICSCALE\">GEODESICSCALE</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#LATITUDE\">LATITUDE</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#LINE_CAPS\">LINE_CAPS</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#LINE_OFF\">LINE_OFF</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#LONGITUDE\">LONGITUDE</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#LONG_UNROLL\">LONG_UNROLL</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#NONFINITONAN\">NONFINITONAN</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#REDUCEDLENGTH\">REDUCEDLENGTH</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#STANDARD\">STANDARD</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#STANDARD_LINE\">STANDARD_LINE</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.rhumb.solve.RhumbLineSolve-class.html#azi12\" class=\"summary-name\">azi12</a><br />\n      Get this rhumb line's azimuth (compass <code>degrees</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.rhumb.solve.RhumbLineSolve-class.html#azi1\" class=\"summary-name\">azi1</a><br />\n      Get this rhumb line's azimuth (compass <code>degrees</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.rhumb.solve.RhumbLineSolve-class.html#azi12_sincos2\" class=\"summary-name\">azi12_sincos2</a><br />\n      Get the sine and cosine of this rhumb line's azimuth (2-tuple \n      <code>(sin, cos)</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.rhumb.solve.RhumbLineSolve-class.html#azi1_sincos2\" class=\"summary-name\">azi1_sincos2</a><br />\n      Get the sine and cosine of this rhumb line's azimuth (2-tuple \n      <code>(sin, cos)</code>).\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.rhumb.solve._RhumbSolveBase-class.html\">_RhumbSolveBase</a></code></b>:\n      <code><a href=\"pygeodesy.rhumb.solve._RhumbSolveBase-class.html#RhumbSolve\">RhumbSolve</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.solveBase._SolveGDictLineBase-class.html\">solveBase._SolveGDictLineBase</a></code></b>:\n      <code><a href=\"pygeodesy.solveBase._SolveGDictLineBase-class.html#datum\">datum</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveGDictLineBase-class.html#ellipsoid\">ellipsoid</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveGDictLineBase-class.html#lat1\">lat1</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveGDictLineBase-class.html#lon1\">lon1</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.solveBase._SolveBase-class.html\">solveBase._SolveBase</a></code></b>:\n      <code><a href=\"pygeodesy.solveBase._SolveBase-class.html#reverse2\">reverse2</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveBase-class.html#unroll\">unroll</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html\">solveBase._SolveCapsBase</a></code></b>:\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#Exact\">Exact</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#a\">a</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#b\">b</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#f\">f</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#flattening\">flattening</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#invokation\">invokation</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#prec\">prec</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#status\">status</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#verbose\">verbose</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#version\">version</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.karney._CapsBase-class.html\">karney._CapsBase</a></code></b>:\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#caps\">caps</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#debug\">debug</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">rhumb</span>,\n        <span class=\"sig-arg\">lat1</span>,\n        <span class=\"sig-arg\">lon1</span>,\n        <span class=\"sig-arg\">azi12</span>,\n        <span class=\"sig-arg\">caps</span>=<span class=\"sig-default\">1929</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.rhumb.solve.RhumbLineSolve-class.html\" \n  class=\"link\">RhumbLineSolve</a> instance, allowing points to be found \n  along a rhumb starting at <code>(<b>lat1</b>, <b>lon1</b>)</code> with \n  azimuth <b><code>azi12</code></b>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>rhumb</code></strong> - The rhumb to use (<a \n          href=\"pygeodesy.rhumb.solve._RhumbSolveBase-class.html#RhumbSolve\"\n          class=\"link\">RhumbSolve</a>).</li>\n        <li><strong class=\"pname\"><code>lat1</code></strong> - Latitude of the first point (<code>degrees90</code>).</li>\n        <li><strong class=\"pname\"><code>lon1</code></strong> - Longitude of the first point (<code>degrees180</code>).</li>\n        <li><strong class=\"pname\"><code>azi12</code></strong> - Azimuth of the rhumb line (compass <code>degrees180</code>).</li>\n        <li><strong class=\"pname\"><code>caps</code></strong> - Bit-or'ed combination of <a \n          href=\"pygeodesy.karney.Caps-class.html\" class=\"link\">Caps</a> \n          values specifying the capabilities the <a \n          href=\"pygeodesy.rhumb.solve.RhumbLineSolve-class.html\" \n          class=\"link\">RhumbLineSolve</a> instance should possess, always \n          <code>Caps.ALL</code>.  Include <code>Caps.LINE_OFF</code> if \n          updates to the <b><code>rhumb</code></b> should <i>not be \n          reflected</i> in this <a \n          href=\"pygeodesy.rhumb.solve.RhumbLineSolve-class.html\" \n          class=\"link\">RhumbLineSolve</a> instance.</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional name (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.RhumbError-class.html\">RhumbError</a></strong></code> - Invalid path for <code>RhumbSolve</code> executable or isn't the \n        <code>RhumbSolve</code> executable, see property \n        <code><b>rhumb</b>.RhumbSolve</code>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>rhumb</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"Position\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">Position</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">s12</span>,\n        <span class=\"sig-arg\">**unused</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Find the position on the line given <b><code>s12</code></b>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>s12</code></strong> - Distance from the first point to the second (<code>meter</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.karney.GDict-class.html\" \n          class=\"link\">GDict</a> with 7 items <code>lat1, lon1, lat2, lon2,\n          azi12, s12, S12</code>.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toStr\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toStr</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">**prec_sep_other</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return this <code>RhumbLineSolve</code> as string.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>prec_sep</code></strong> - See <a href=\"pygeodesy.solveBase._SolveBase-class.html#toStr\" \n          class=\"link\">toStr</a>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>RhumbLineSolve items (<code>str</code>).</dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.named._Named-class.html#toStr\">named._Named.toStr</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"azi12\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">azi12</h3>\n  <p>Get this rhumb line's azimuth (compass <code>degrees</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">azi12(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get this rhumb line's azimuth (compass <code>degrees</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"azi1\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">azi1</h3>\n  <p>Get this rhumb line's azimuth (compass <code>degrees</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">azi12(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get this rhumb line's azimuth (compass <code>degrees</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"azi12_sincos2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">azi12_sincos2</h3>\n  <p>Get the sine and cosine of this rhumb line's azimuth (2-tuple \n  <code>(sin, cos)</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">azi12_sincos2(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the sine and cosine of this rhumb line's azimuth (2-tuple <code>(sin, \ncos)</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"azi1_sincos2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">azi1_sincos2</h3>\n  <p>Get the sine and cosine of this rhumb line's azimuth (2-tuple \n  <code>(sin, cos)</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">azi12_sincos2(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the sine and cosine of this rhumb line's azimuth (2-tuple <code>(sin, \ncos)</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.rhumb.solve.RhumbSolve-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.rhumb.solve.RhumbSolve</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.rhumb-module.html\">Package&nbsp;rhumb</a> ::\n        <a href=\"pygeodesy.rhumb.solve-module.html\" onclick=\"show_private();\">Module&nbsp;solve</a> ::\n        Class&nbsp;RhumbSolve\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.rhumb.solve.RhumbSolve-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class RhumbSolve</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+                                \n           |                                \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+                            \n               |                            \n<a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+                        \n                   |                        \n    <a href=\"pygeodesy.karney._CapsBase-class.html\">karney._CapsBase</a> --+                    \n                       |                    \n<a href=\"pygeodesy.solveBase._SolveCapsBase-class.html\">solveBase._SolveCapsBase</a> --+                \n                           |                \n        <a href=\"pygeodesy.solveBase._SolveBase-class.html\">solveBase._SolveBase</a> --+            \n                               |            \n           solveBase._Solve3Base --+        \n                                   |        \n           <a href=\"pygeodesy.solveBase._SolveGDictBase-class.html\">solveBase._SolveGDictBase</a> --+    \n                                       |    \n                         <a href=\"pygeodesy.rhumb.solve._RhumbSolveBase-class.html\">_RhumbSolveBase</a> --+\n                                           |\n                                          <strong class=\"uidshort\">RhumbSolve</strong>\n</pre>\n\n<hr />\n<p>Wrapper to invoke <i>Karney</i>'s <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/RhumbSolve.1.html\" \n  target=\"_top\">RhumbSolve</a> like a class, similar to <a \n  href=\"pygeodesy.rhumb.ekx.Rhumb-class.html\" \n  class=\"link\">pygeodesy.Rhumb</a> and <a \n  href=\"pygeodesy.rhumb.aux_.RhumbAux-class.html\" \n  class=\"link\">pygeodesy.RhumbAux</a>.</p>\n\n<hr />\n<div class=\"fields\">      <strong>Notes:</strong>\n      <ul class=\"nomargin-top\">\n        <li>\n        Use property <code>RhumbSolve</code> or env variable \n        <code>PYGEODESY_RHUMBSOLVE</code> to specify the (fully qualified) \n        path to the <code>RhumbSolve</code> executable.\n        </li>\n        <li>\n        This <code>rhumb</code> is intended <i>for testing purposes \n        only</i>, it invokes the <code>RhumbSolve</code> executable for \n        <i>every</i> method call.\n        </li>\n      </ul>\n</div><!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.rhumb.solve.RhumbSolve-class.html#Direct3\" class=\"summary-sig-name\">Direct3</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lat1</span>,\n        <span class=\"summary-sig-arg\">lon1</span>,\n        <span class=\"summary-sig-arg\">azi1</span>,\n        <span class=\"summary-sig-arg\">s12</span>)</span><br />\n      Return the destination lat, lon and reverse azimuth (final bearing) \n      in <code>degrees</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.rhumb.solve.RhumbSolve-class.html#DirectLine\" class=\"summary-sig-name\">DirectLine</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lat1</span>,\n        <span class=\"summary-sig-arg\">lon1</span>,\n        <span class=\"summary-sig-arg\">azi1</span>,\n        <span class=\"summary-sig-arg\">caps</span>=<span class=\"summary-sig-default\">1929</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Set up a <a href=\"pygeodesy.rhumb.solve.RhumbLineSolve-class.html\" \n      class=\"link\">RhumbLineSolve</a> in terms of the <i>direct</i> rhumb \n      problem to compute several points on a single rhumb line.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.rhumb.solve.RhumbSolve-class.html#Inverse3\" class=\"summary-sig-name\">Inverse3</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lat1</span>,\n        <span class=\"summary-sig-arg\">lon1</span>,\n        <span class=\"summary-sig-arg\">lat2</span>,\n        <span class=\"summary-sig-arg\">lon2</span>)</span><br />\n      Return the distance in <code>meter</code> and the forward and reverse\n      azimuths (initial and final bearing) in <code>degrees</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.rhumb.solve.RhumbSolve-class.html#InverseLine\" class=\"summary-sig-name\">InverseLine</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lat1</span>,\n        <span class=\"summary-sig-arg\">lon1</span>,\n        <span class=\"summary-sig-arg\">lat2</span>,\n        <span class=\"summary-sig-arg\">lon2</span>,\n        <span class=\"summary-sig-arg\">caps</span>=<span class=\"summary-sig-default\">1929</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Define a <a href=\"pygeodesy.rhumb.solve.RhumbLineSolve-class.html\" \n      class=\"link\">RhumbLineSolve</a> in terms of the <i>inverse</i> rhumb \n      problem.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.rhumb.solve.RhumbSolve-class.html#Line\" class=\"summary-sig-name\">Line</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lat1</span>,\n        <span class=\"summary-sig-arg\">lon1</span>,\n        <span class=\"summary-sig-arg\">azi1</span>,\n        <span class=\"summary-sig-arg\">caps</span>=<span class=\"summary-sig-default\">1929</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Set up a <a href=\"pygeodesy.rhumb.solve.RhumbLineSolve-class.html\" \n      class=\"link\">RhumbLineSolve</a> in terms of the <i>direct</i> rhumb \n      problem to compute several points on a single rhumb line.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.rhumb.solve.RhumbSolve-class.html#toStr\" class=\"summary-sig-name\">toStr</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">**prec_sep_other</span>)</span><br />\n      Return this <code>RhumbSolve</code> as string.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.solveBase._SolveGDictBase-class.html\">solveBase._SolveGDictBase</a></code></b>:\n      <code><a href=\"pygeodesy.solveBase._SolveGDictBase-class.html#ArcDirect\">ArcDirect</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveGDictBase-class.html#Direct\">Direct</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveGDictBase-class.html#Inverse\">Inverse</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveGDictBase-class.html#Inverse1\">Inverse1</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveGDictBase-class.html#__init__\">__init__</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html\">solveBase._SolveCapsBase</a></code></b>:\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#invokat\">invokat</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#invoke\">invoke</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#linelimit\">linelimit</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.karney._CapsBase-class.html\">karney._CapsBase</a></code></b>:\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#caps_\">caps_</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#others\">others</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#toRepr\">toRepr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS VARIABLES ==================== -->\n<a name=\"section-ClassVariables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Class Variables</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.karney._CapsBase-class.html\">karney._CapsBase</a></code></b>:\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#ALL\">ALL</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#AREA\">AREA</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#AZIMUTH\">AZIMUTH</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#DISTANCE\">DISTANCE</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#DISTANCE_IN\">DISTANCE_IN</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#EMPTY\">EMPTY</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#GEODESICSCALE\">GEODESICSCALE</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#LATITUDE\">LATITUDE</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#LINE_CAPS\">LINE_CAPS</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#LINE_OFF\">LINE_OFF</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#LONGITUDE\">LONGITUDE</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#LONG_UNROLL\">LONG_UNROLL</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#NONFINITONAN\">NONFINITONAN</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#REDUCEDLENGTH\">REDUCEDLENGTH</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#STANDARD\">STANDARD</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#STANDARD_LINE\">STANDARD_LINE</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.rhumb.solve._RhumbSolveBase-class.html\">_RhumbSolveBase</a></code></b>:\n      <code><a href=\"pygeodesy.rhumb.solve._RhumbSolveBase-class.html#RhumbSolve\">RhumbSolve</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.solveBase._SolveBase-class.html\">solveBase._SolveBase</a></code></b>:\n      <code><a href=\"pygeodesy.solveBase._SolveBase-class.html#reverse2\">reverse2</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveBase-class.html#unroll\">unroll</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html\">solveBase._SolveCapsBase</a></code></b>:\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#Exact\">Exact</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#a\">a</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#b\">b</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#datum\">datum</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#ellipsoid\">ellipsoid</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#f\">f</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#flattening\">flattening</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#invokation\">invokation</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#prec\">prec</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#status\">status</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#verbose\">verbose</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#version\">version</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.karney._CapsBase-class.html\">karney._CapsBase</a></code></b>:\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#caps\">caps</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#debug\">debug</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"Direct3\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">Direct3</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lat1</span>,\n        <span class=\"sig-arg\">lon1</span>,\n        <span class=\"sig-arg\">azi1</span>,\n        <span class=\"sig-arg\">s12</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the destination lat, lon and reverse azimuth (final bearing) in\n  <code>degrees</code>.</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd><a href=\"pygeodesy.namedTuples.Destination3Tuple-class.html\" \n          class=\"link\">Destination3Tuple</a><code>(lat, lon, final)</code>.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"DirectLine\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">DirectLine</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lat1</span>,\n        <span class=\"sig-arg\">lon1</span>,\n        <span class=\"sig-arg\">azi1</span>,\n        <span class=\"sig-arg\">caps</span>=<span class=\"sig-default\">1929</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Set up a <a href=\"pygeodesy.rhumb.solve.RhumbLineSolve-class.html\" \n  class=\"link\">RhumbLineSolve</a> in terms of the <i>direct</i> rhumb \n  problem to compute several points on a single rhumb line.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat1</code></strong> - Latitude of the first point (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lon1</code></strong> - Longitude of the first point (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>azi1</code></strong> - Azimuth at the first point (compass <code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>caps</code></strong> - Bit-or'ed combination of <a \n          href=\"pygeodesy.karney.Caps-class.html\" class=\"link\">Caps</a> \n          values specifying the capabilities the <a \n          href=\"pygeodesy.rhumb.solve.RhumbLineSolve-class.html\" \n          class=\"link\">RhumbLineSolve</a> instance should possess, always \n          <code>Caps.ALL</code>.</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.rhumb.solve.RhumbLineSolve-class.html\" \n          class=\"link\">RhumbLineSolve</a> instance.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        If the point is at a pole, the azimuth is defined by keeping \n        <b><code>lon1</code></b> fixed, writing <code><b>lat1</b> = &#177;(90 &#8722; \n        &#949;)</code>, and taking the limit <code>&#949; &#8594; 0+</code>.\n      </p>\n      <p><strong>See Also:</strong>\n        C++ <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1RhumbExact.html\"\n        target=\"_top\">RhumbExact.Line</a> and Python <a \n        href=\"https://GeographicLib.SourceForge.io/Python/doc/code.html\" \n        target=\"_top\">Rhumb.Line</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"Inverse3\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">Inverse3</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lat1</span>,\n        <span class=\"sig-arg\">lon1</span>,\n        <span class=\"sig-arg\">lat2</span>,\n        <span class=\"sig-arg\">lon2</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the distance in <code>meter</code> and the forward and reverse \n  azimuths (initial and final bearing) in <code>degrees</code>.</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd><a href=\"pygeodesy.namedTuples.Distance3Tuple-class.html\" \n          class=\"link\">Distance3Tuple</a><code>(distance, initial, \n          final)</code>.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"InverseLine\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">InverseLine</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lat1</span>,\n        <span class=\"sig-arg\">lon1</span>,\n        <span class=\"sig-arg\">lat2</span>,\n        <span class=\"sig-arg\">lon2</span>,\n        <span class=\"sig-arg\">caps</span>=<span class=\"sig-default\">1929</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Define a <a href=\"pygeodesy.rhumb.solve.RhumbLineSolve-class.html\" \n  class=\"link\">RhumbLineSolve</a> in terms of the <i>inverse</i> rhumb \n  problem.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat1</code></strong> - Latitude of the first point (<code>degrees90</code>).</li>\n        <li><strong class=\"pname\"><code>lon1</code></strong> - Longitude of the first point (<code>degrees180</code>).</li>\n        <li><strong class=\"pname\"><code>lat2</code></strong> - Latitude of the second point (<code>degrees90</code>).</li>\n        <li><strong class=\"pname\"><code>lon2</code></strong> - Longitude of the second point (<code>degrees180</code>).</li>\n        <li><strong class=\"pname\"><code>caps</code></strong> - Optional <code>caps</code>, see <a \n          href=\"pygeodesy.rhumb.ekx.RhumbLine-class.html\" \n          class=\"link\">RhumbLine</a> <code><b>caps</b></code>.</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.rhumb.solve.RhumbLineSolve-class.html\" \n          class=\"link\">RhumbLineSolve</a> instance and invoke its method <a\n          href=\"pygeodesy.rhumb.bases.RhumbLineBase-class.html#Position\" \n          class=\"link\">RhumbLine.Position</a> to compute each point.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        Updates to this rhumb are reflected in the returned rhumb line.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"Line\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">Line</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lat1</span>,\n        <span class=\"sig-arg\">lon1</span>,\n        <span class=\"sig-arg\">azi1</span>,\n        <span class=\"sig-arg\">caps</span>=<span class=\"sig-default\">1929</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Set up a <a href=\"pygeodesy.rhumb.solve.RhumbLineSolve-class.html\" \n  class=\"link\">RhumbLineSolve</a> in terms of the <i>direct</i> rhumb \n  problem to compute several points on a single rhumb line.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat1</code></strong> - Latitude of the first point (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lon1</code></strong> - Longitude of the first point (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>azi1</code></strong> - Azimuth at the first point (compass <code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>caps</code></strong> - Bit-or'ed combination of <a \n          href=\"pygeodesy.karney.Caps-class.html\" class=\"link\">Caps</a> \n          values specifying the capabilities the <a \n          href=\"pygeodesy.rhumb.solve.RhumbLineSolve-class.html\" \n          class=\"link\">RhumbLineSolve</a> instance should possess, always \n          <code>Caps.ALL</code>.</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.rhumb.solve.RhumbLineSolve-class.html\" \n          class=\"link\">RhumbLineSolve</a> instance.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        If the point is at a pole, the azimuth is defined by keeping \n        <b><code>lon1</code></b> fixed, writing <code><b>lat1</b> = &#177;(90 &#8722; \n        &#949;)</code>, and taking the limit <code>&#949; &#8594; 0+</code>.\n      </p>\n      <p><strong>See Also:</strong>\n        C++ <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1RhumbExact.html\"\n        target=\"_top\">RhumbExact.Line</a> and Python <a \n        href=\"https://GeographicLib.SourceForge.io/Python/doc/code.html\" \n        target=\"_top\">Rhumb.Line</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"toStr\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toStr</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">**prec_sep_other</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return this <code>RhumbSolve</code> as string.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>prec_sep</code></strong> - See <a href=\"pygeodesy.solveBase._SolveBase-class.html#toStr\" \n          class=\"link\">toStr</a>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>RhumbSolve items (<code>str</code>).</dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.named._Named-class.html#toStr\">named._Named.toStr</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.rhumb.solve.RhumbSolve7Tuple-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.rhumb.solve.RhumbSolve7Tuple</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.rhumb-module.html\">Package&nbsp;rhumb</a> ::\n        <a href=\"pygeodesy.rhumb.solve-module.html\" onclick=\"show_private();\">Module&nbsp;solve</a> ::\n        Class&nbsp;RhumbSolve7Tuple\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.rhumb.solve.RhumbSolve7Tuple-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class RhumbSolve7Tuple</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n   object --+                \n            |                \n        tuple --+            \n                |            \n   object --+   |            \n            |   |            \n <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+            \n                |            \n<a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a> --+        \n                    |        \n       karney._GTuple --+    \n                        |    \n       <a href=\"pygeodesy.karney.Rhumb8Tuple-class.html\" onclick=\"show_private();\">karney.Rhumb8Tuple</a> --+\n                            |\n                           <strong class=\"uidshort\">RhumbSolve7Tuple</strong>\n</pre>\n\n<hr />\n<p>7-Tuple <code>(lat1, lon1, lat2, lon2, azi12, s12, S12)</code> with \n  lat- <code>lat1</code>, <code>lat2</code> and longitudes \n  <code>lon1</code>, <code>lon2</code> of both points, the azimuth of the \n  rhumb line <code>azi12</code>, the distance <code>s12</code> and the area\n  <code>S12</code> under the rhumb line between both points.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.karney.Rhumb8Tuple-class.html\" onclick=\"show_private();\">karney.Rhumb8Tuple</a></code></b>:\n      <code><a href=\"pygeodesy.karney.Rhumb8Tuple-class.html#toDirect9Tuple\">toDirect9Tuple</a></code>,\n      <code><a href=\"pygeodesy.karney.Rhumb8Tuple-class.html#toInverse10Tuple\">toInverse10Tuple</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>karney._GTuple</code></b>:\n      <code>toGDict</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__delattr__\">__delattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__getattr__\">__getattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__setattr__\">__setattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#items\">items</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iteritems\">iteritems</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iterunits\">iterunits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#reUnit\">reUnit</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toUnits\">toUnits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>tuple</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__eq__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__iter__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__rmul__</code>,\n      <code>count</code>,\n      <code>index</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__new__\">__new__</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.rhumb.solve._RhumbSolveBase-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.rhumb.solve._RhumbSolveBase</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.rhumb-module.html\">Package&nbsp;rhumb</a> ::\n        <a href=\"pygeodesy.rhumb.solve-module.html\" onclick=\"show_private();\">Module&nbsp;solve</a> ::\n        Class&nbsp;_RhumbSolveBase\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.rhumb.solve._RhumbSolveBase-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class _RhumbSolveBase</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+                            \n           |                            \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+                        \n               |                        \n<a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+                    \n                   |                    \n    <a href=\"pygeodesy.karney._CapsBase-class.html\">karney._CapsBase</a> --+                \n                       |                \n<a href=\"pygeodesy.solveBase._SolveCapsBase-class.html\">solveBase._SolveCapsBase</a> --+            \n                           |            \n        <a href=\"pygeodesy.solveBase._SolveBase-class.html\">solveBase._SolveBase</a> --+        \n                               |        \n           solveBase._Solve3Base --+    \n                                   |    \n           <a href=\"pygeodesy.solveBase._SolveGDictBase-class.html\">solveBase._SolveGDictBase</a> --+\n                                       |\n                                      <strong class=\"uidshort\">_RhumbSolveBase</strong>\n</pre>\n\n<dl><dt>Known Subclasses:</dt>\n<dd>\n      <ul class=\"subclass-list\">\n<li><a href=\"pygeodesy.rhumb.solve.RhumbLineSolve-class.html\">RhumbLineSolve</a></li><li>, <a href=\"pygeodesy.rhumb.solve.RhumbSolve-class.html\">RhumbSolve</a></li>  </ul>\n</dd></dl>\n\n<hr />\n<p>(INTERNAL) Base class for <a \n  href=\"pygeodesy.rhumb.solve._RhumbSolveBase-class.html#RhumbSolve\" \n  class=\"link\">RhumbSolve</a> and <a \n  href=\"pygeodesy.rhumb.solve.RhumbLineSolve-class.html\" \n  class=\"link\">RhumbLineSolve</a>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.solveBase._SolveGDictBase-class.html\">solveBase._SolveGDictBase</a></code></b>:\n      <code><a href=\"pygeodesy.solveBase._SolveGDictBase-class.html#ArcDirect\">ArcDirect</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveGDictBase-class.html#Direct\">Direct</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveGDictBase-class.html#Inverse\">Inverse</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveGDictBase-class.html#Inverse1\">Inverse1</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveGDictBase-class.html#__init__\">__init__</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveGDictBase-class.html#toStr\">toStr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html\">solveBase._SolveCapsBase</a></code></b>:\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#invokat\">invokat</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#invoke\">invoke</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#linelimit\">linelimit</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.karney._CapsBase-class.html\">karney._CapsBase</a></code></b>:\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#caps_\">caps_</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#others\">others</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#toRepr\">toRepr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS VARIABLES ==================== -->\n<a name=\"section-ClassVariables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Class Variables</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.karney._CapsBase-class.html\">karney._CapsBase</a></code></b>:\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#ALL\">ALL</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#AREA\">AREA</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#AZIMUTH\">AZIMUTH</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#DISTANCE\">DISTANCE</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#DISTANCE_IN\">DISTANCE_IN</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#EMPTY\">EMPTY</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#GEODESICSCALE\">GEODESICSCALE</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#LATITUDE\">LATITUDE</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#LINE_CAPS\">LINE_CAPS</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#LINE_OFF\">LINE_OFF</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#LONGITUDE\">LONGITUDE</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#LONG_UNROLL\">LONG_UNROLL</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#NONFINITONAN\">NONFINITONAN</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#REDUCEDLENGTH\">REDUCEDLENGTH</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#STANDARD\">STANDARD</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#STANDARD_LINE\">STANDARD_LINE</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.rhumb.solve._RhumbSolveBase-class.html#RhumbSolve\" class=\"summary-name\">RhumbSolve</a><br />\n      Get the <a \n      href=\"https://GeographicLib.SourceForge.io/C++/doc/RhumbSolve.1.html\"\n      target=\"_top\">RhumbSolve</a> executable (<code>filename</code>).\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.solveBase._SolveBase-class.html\">solveBase._SolveBase</a></code></b>:\n      <code><a href=\"pygeodesy.solveBase._SolveBase-class.html#reverse2\">reverse2</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveBase-class.html#unroll\">unroll</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html\">solveBase._SolveCapsBase</a></code></b>:\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#Exact\">Exact</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#a\">a</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#b\">b</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#datum\">datum</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#ellipsoid\">ellipsoid</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#f\">f</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#flattening\">flattening</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#invokation\">invokation</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#prec\">prec</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#status\">status</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#verbose\">verbose</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#version\">version</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.karney._CapsBase-class.html\">karney._CapsBase</a></code></b>:\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#caps\">caps</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#debug\">debug</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"RhumbSolve\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">RhumbSolve</h3>\n  <p>Get the <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/RhumbSolve.1.html\" \n  target=\"_top\">RhumbSolve</a> executable (<code>filename</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">RhumbSolve(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <a \nhref=\"https://GeographicLib.SourceForge.io/C++/doc/RhumbSolve.1.html\" \ntarget=\"_top\">RhumbSolve</a> executable (<code>filename</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">RhumbSolve(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">path</span>)</span>\n        - Set the <a \nhref=\"https://GeographicLib.SourceForge.io/C++/doc/RhumbSolve.1.html\" \ntarget=\"_top\">RhumbSolve</a> executable (<code>filename</code>), the (fully\nqualified) path to the <code>RhumbSolve</code> executable.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.simplify-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.simplify</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        Module&nbsp;simplify\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.simplify-module.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== MODULE DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Module simplify</h1><p class=\"nomargin-top\"></p>\n<p>Simplify or linearize a path of <code>LatLon</code> points.</p>\n  <p>Each of the 4 <i>simplify</i> functions is based on a different \n  algorithm and produces different, simplified results in (very) different \n  run times for the same path:</p>\n  <ul>\n    <li>\n      Function <a href=\"pygeodesy.simplify-module.html#simplify1\" \n      class=\"link\">simplify1</a> eliminates points with edge lengths \n      shorter than the given tolerance.\n    </li>\n    <li>\n      Function <a href=\"pygeodesy.simplify-module.html#simplifyRDP\" \n      class=\"link\">simplifyRDP</a> implements the \n      <i>Ramer-Douglas-Peucker</i> (RDP) algorithm, iteratively finding the\n      point farthest from each path edge. Original RDP exhaustively \n      searches the most distant point in each iteration, <i>modified</i> \n      RDP stops at the first point exceeding the distance tolerance.\n    </li>\n    <li>\n      Function <a href=\"pygeodesy.simplify-module.html#simplifyRW\" \n      class=\"link\">simplifyRW</a> uses the <i>Reumann-Witkam</i> (RW) \n      method, sliding a &quot;pipe&quot; over each path edge, removing all \n      subsequent points within the pipe radius, up to the first point \n      outside the pipe.\n    </li>\n    <li>\n      Function <a href=\"pygeodesy.simplify-module.html#simplifyVW\" \n      class=\"link\">simplifyVW</a> provides the <i>Visvalingam-Whyatt</i> \n      (VW) method using the area of the triangle formed by three neigboring\n      points.  Original VW removes only a single point per iteration, \n      <i>modified</i> VW eliminates all points with a triangular area not \n      exceeding the tolerance in each iteration.\n    </li>\n  </ul>\n  <p>Keyword argument <i>shortest</i> of functions <a \n  href=\"pygeodesy.simplify-module.html#simplifyRDP\" \n  class=\"link\">simplifyRDP</a> and <a \n  href=\"pygeodesy.simplify-module.html#simplifyRW\" \n  class=\"link\">simplifyRW</a> specifies of the distance between a point and\n  a path edge.  If <code>True</code>, use the <i>shortest</i> distance to \n  the path edge or edge points, otherwise use the <i>perpendicular</i> \n  distance to the (extended) edge through both points.</p>\n  <p>Keyword argument <b><code>radius</code></b> of all fuctions is set to \n  the mean earth radius in <code>meter</code>, conventionally.  Other units\n  may be used, provided that radius and tolerance are specified in the same\n  units.</p>\n  <p>Use keyword argument <code><b>indices</b>=True</code> in any function \n  to return a list of <i>indices</i> of simplified point instead of the \n  simplified points with the first and last index are always the first and \n  last original index.</p>\n  <p>Finally, any additional keyword arguments <b><code>options</code></b> \n  to all functions are passed thru to function <a \n  href=\"pygeodesy.geohash-module.html#equirectangular4\" \n  class=\"link\">pygeodesy.equirectangular4</a> to specify the distance \n  approximation.</p>\n  <p>To process <code>NumPy</code> arrays containing rows of lat-, \n  longitude and possibly other values, use class <a \n  href=\"pygeodesy.points.Numpy2LatLon-class.html\" \n  class=\"link\">Numpy2LatLon</a> to wrap the <code>NumPy</code> array into \n  <i>on-the-fly-LatLon</i> points.  Pass the <a \n  href=\"pygeodesy.points.Numpy2LatLon-class.html\" \n  class=\"link\">Numpy2LatLon</a> instance to any <i>simplify</i> function \n  and the returned result will be a <code>NumPy</code> array containing the\n  simplified subset, a partial copy of the original <code>NumPy</code> \n  array.  Use keyword argument <code><b>indices</b>=True</code> to return a\n  list of array row indices inlieu of the simplified array subset.</p>\n  <p>See:</p>\n  <ul>\n    <li>\n      <a href=\"https://Bost.Ocks.org/mike/simplify\" \n      target=\"_top\">https://Bost.Ocks.org/mike/simplify</a>\n    </li>\n    <li>\n      <a href=\"https://WikiPedia.org/wiki/Ramer-Douglas-Peucker_algorithm\" \n      target=\"_top\">https://WikiPedia.org/wiki/Ramer-Douglas-Peucker_algorithm</a>\n    </li>\n    <li>\n      <a \n      href=\"https://www.ScienceDirect.com/science/article/pii/S0098300402000092\"\n      \n      target=\"_top\">https://www.ScienceDirect.com/science/article/pii/S0098300402000092</a>\n    </li>\n    <li>\n      <a href=\"https://hydra.Hull.ac.UK/resources/hull:8338\" \n      target=\"_top\">https://hydra.Hull.ac.UK/resources/hull:8338</a>\n    </li>\n    <li>\n      <a href=\"https://psimpl.SourceForge.net/reumann-witkam.html\" \n      target=\"_top\">https://psimpl.SourceForge.net/reumann-witkam.html</a>\n    </li>\n    <li>\n      <a href=\"https://www.CS.UBC.Ca/cgi-bin/tr/1992/TR-92-07.pdf\" \n      target=\"_top\">https://www.CS.UBC.Ca/cgi-bin/tr/1992/TR-92-07.pdf</a>\n    </li>\n    <li>\n      <a href=\"https://GitHub.com/FlorianWilhelm/gps_data_with_python\" \n      target=\"_top\">https://GitHub.com/FlorianWilhelm/gps_data_with_python</a>\n    </li>\n    <li>\n      <a href=\"https://www.BDCC.co.UK/Gmaps/GDouglasPeuker.js\" \n      target=\"_top\">https://www.BDCC.co.UK/Gmaps/GDouglasPeuker.js</a>\n    </li>\n    <li>\n      <a href=\"https://GitHub.com/mourner/simplify-js\" \n      target=\"_top\">https://GitHub.com/mourner/simplify-js</a>\n    </li>\n    <li>\n      <a href=\"https://GitHub.com/OmarEstrella/simplify.py\" \n      target=\"_top\">https://GitHub.com/OmarEstrella/simplify.py</a>\n    </li>\n    <li>\n      <a href=\"https://PyPI.org/project/rdp\" \n      target=\"_top\">https://PyPI.org/project/rdp</a>\n    </li>\n    <li>\n      <a href=\"https://PyPI.org/project/visvalingam\" \n      target=\"_top\">https://PyPI.org/project/visvalingam</a>\n    </li>\n    <li>\n      <a href=\"https://PyPI.org/project/simplification\" \n      target=\"_top\">https://PyPI.org/project/simplification</a>\n    </li>\n  </ul>\n\n<hr />\n<div class=\"fields\">      <p><strong>Version:</strong>\n        25.05.12\n      </p>\n</div><!-- ==================== FUNCTIONS ==================== -->\n<a name=\"section-Functions\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Functions</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.simplify-module.html#simplify1\" class=\"summary-sig-name\">simplify1</a>(<span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">distance</span>=<span class=\"summary-sig-default\">0.001</span>,\n        <span class=\"summary-sig-arg\">radius</span>=<span class=\"summary-sig-default\">6371008.771415</span>,\n        <span class=\"summary-sig-arg\">indices</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">**options</span>)</span><br />\n      Basic simplification of a path of <code>LatLon</code> points by \n      eliminating any points closer together than the given <i>distance</i>\n      tolerance.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.simplify-module.html#simplifyRDP\" class=\"summary-sig-name\">simplifyRDP</a>(<span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">distance</span>=<span class=\"summary-sig-default\">0.001</span>,\n        <span class=\"summary-sig-arg\">radius</span>=<span class=\"summary-sig-default\">6371008.771415</span>,\n        <span class=\"summary-sig-arg\">shortest</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">indices</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">modified</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">**options</span>)</span><br />\n      <i>Ramer-Douglas-Peucker</i> (RDP) simplification of a path of \n      <code>LatLon</code> points by eliminating any points too close \n      together or closer to an edge than the given <i>distance</i> \n      tolerance.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.simplify-module.html#simplifyRW\" class=\"summary-sig-name\">simplifyRW</a>(<span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">pipe</span>=<span class=\"summary-sig-default\">0.001</span>,\n        <span class=\"summary-sig-arg\">radius</span>=<span class=\"summary-sig-default\">6371008.771415</span>,\n        <span class=\"summary-sig-arg\">shortest</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">indices</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">**options</span>)</span><br />\n      <i>Reumann-Witkam</i> (RW) simplification of a path of \n      <code>LatLon</code> points by eliminating any points too close \n      together or within the given <i>pipe</i> tolerance along an edge.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.simplify-module.html#simplifyVW\" class=\"summary-sig-name\">simplifyVW</a>(<span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">area</span>=<span class=\"summary-sig-default\">0.001</span>,\n        <span class=\"summary-sig-arg\">radius</span>=<span class=\"summary-sig-default\">6371008.771415</span>,\n        <span class=\"summary-sig-arg\">indices</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">attr</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">modified</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">**options</span>)</span><br />\n      <i>Visvalingam-Whyatt</i> (VW) simplification of a path of \n      <code>LatLon</code> points by eliminating any points too close or \n      with a triangular area not exceeding the given <i>area</i> tolerance \n      <i>squared</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== VARIABLES ==================== -->\n<a name=\"section-Variables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Variables</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"__all__\"></a><span class=\"summary-name\">__all__</span> = <code title=\"_ALL_LAZY.simplify\">_ALL_LAZY.simplify</code>\n    </td>\n  </tr>\n</table>\n<!-- ==================== FUNCTION DETAILS ==================== -->\n<a name=\"section-FunctionDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Function Details</span></td>\n</tr>\n</table>\n<a name=\"simplify1\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">simplify1</span>&nbsp;(<span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">distance</span>=<span class=\"sig-default\">0.001</span>,\n        <span class=\"sig-arg\">radius</span>=<span class=\"sig-default\">6371008.771415</span>,\n        <span class=\"sig-arg\">indices</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">**options</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Basic simplification of a path of <code>LatLon</code> points by \n  eliminating any points closer together than the given <i>distance</i> \n  tolerance.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>points</code></strong> - Iterable with the path points (<code>LatLon</code>[]).</li>\n        <li><strong class=\"pname\"><code>distance</code></strong> - Tolerance (<code>meter</code>, same units as \n          <b><code>radius</code></b>).</li>\n        <li><strong class=\"pname\"><code>radius</code></strong> - Mean earth radius (<code>meter</code>, conventionally).</li>\n        <li><strong class=\"pname\"><code>indices</code></strong> - If <code>True</code>, return <b><code>points</code></b> indices \n          instead of the simplified points (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>options</code></strong> - Optional keyword arguments passed thru to function <a \n          href=\"pygeodesy.geohash-module.html#equirectangular4\" \n          class=\"link\">pygeodesy.equirectangular4</a>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Simplified points (<code>LatLon</code>[]) or \n          <b><code>points</code></b> indices.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.LimitError-class.html\">LimitError</a></strong></code> - Lat- and/or longitudinal delta exceeds the \n        <b><code>limit</code></b>, see function <a \n        href=\"pygeodesy.geohash-module.html#equirectangular4\" \n        class=\"link\">pygeodesy.equirectangular4</a>.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Tolerance <b><code>distance</code></b> or \n        <b><code>radius</code></b> too small.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"simplifyRDP\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">simplifyRDP</span>&nbsp;(<span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">distance</span>=<span class=\"sig-default\">0.001</span>,\n        <span class=\"sig-arg\">radius</span>=<span class=\"sig-default\">6371008.771415</span>,\n        <span class=\"sig-arg\">shortest</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">indices</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">modified</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">**options</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p><i>Ramer-Douglas-Peucker</i> (RDP) simplification of a path of \n  <code>LatLon</code> points by eliminating any points too close together \n  or closer to an edge than the given <i>distance</i> tolerance.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>points</code></strong> - Iterable with the path points (<code>LatLon</code>[]).</li>\n        <li><strong class=\"pname\"><code>distance</code></strong> - Tolerance (<code>meter</code>, same units as \n          <b><code>radius</code></b>).</li>\n        <li><strong class=\"pname\"><code>radius</code></strong> - Mean earth radius (<code>meter</code>, conventionally).</li>\n        <li><strong class=\"pname\"><code>shortest</code></strong> - If <code>True</code>, use the <i>shortest</i> otherwise the \n          <i>perpendicular</i> distance (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>indices</code></strong> - If <code>True</code>, return <b><code>points</code></b> indices \n          instead of the simplified points (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>modified</code></strong> - If <code>True</code>, use the <code>modified RDP</code> method \n          (<code>bool</code>), see the <b>note</b>.</li>\n        <li><strong class=\"pname\"><code>options</code></strong> - Optional keyword arguments passed thru to function <a \n          href=\"pygeodesy.geohash-module.html#equirectangular4\" \n          class=\"link\">pygeodesy.equirectangular4</a>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Simplified points (<code>LatLon</code>[]) or \n          <b><code>points</code></b> indices.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.LimitError-class.html\">LimitError</a></strong></code> - Lat- and/or longitudinal delta exceeds the \n        <b><code>limit</code></b>, see function <a \n        href=\"pygeodesy.geohash-module.html#equirectangular4\" \n        class=\"link\">pygeodesy.equirectangular4</a>.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Tolerance <b><code>distance</code></b> or \n        <b><code>radius</code></b> too small.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        The original <code>RDP</code> method exhaustively searches for the \n        point with the largest distance (resulting in complexity <i \n        class=\"math\">O(n**2)</i> with <i class=\"math\">n</i> is the number \n        of points).  The <b><code>modified</code></b> <code>RDP</code> \n        method stops at the first point farther than the \n        <b><code>distance</code></b> tolerance, significantly reducing the \n        run time (but producing results different from the original \n        <code>RDP</code> method).\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"simplifyRW\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">simplifyRW</span>&nbsp;(<span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">pipe</span>=<span class=\"sig-default\">0.001</span>,\n        <span class=\"sig-arg\">radius</span>=<span class=\"sig-default\">6371008.771415</span>,\n        <span class=\"sig-arg\">shortest</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">indices</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">**options</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p><i>Reumann-Witkam</i> (RW) simplification of a path of \n  <code>LatLon</code> points by eliminating any points too close together \n  or within the given <i>pipe</i> tolerance along an edge.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>points</code></strong> - Iterable with the path points (<code>LatLon</code>[]).</li>\n        <li><strong class=\"pname\"><code>pipe</code></strong> - Pipe radius, half-width (<code>meter</code>, same units as \n          <b><code>radius</code></b>).</li>\n        <li><strong class=\"pname\"><code>radius</code></strong> - Mean earth radius (<code>meter</code>, conventionally).</li>\n        <li><strong class=\"pname\"><code>shortest</code></strong> - If <code>True</code>, use the <i>shortest</i> otherwise the \n          <i>perpendicular</i> distance (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>indices</code></strong> - If <code>True</code>, return <b><code>points</code></b> indices \n          instead of the simplified points (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>options</code></strong> - Optional keyword arguments passed thru to function <a \n          href=\"pygeodesy.geohash-module.html#equirectangular4\" \n          class=\"link\">pygeodesy.equirectangular4</a>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Simplified points (<code>LatLon</code>[]) or \n          <b><code>points</code></b> indices.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.LimitError-class.html\">LimitError</a></strong></code> - Lat- and/or longitudinal delta exceeds the \n        <b><code>limit</code></b>, see function <a \n        href=\"pygeodesy.geohash-module.html#equirectangular4\" \n        class=\"link\">pygeodesy.equirectangular4</a>.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Tolerance <b><code>pipe</code></b> or <b><code>radius</code></b> \n        too small.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"simplifyVW\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">simplifyVW</span>&nbsp;(<span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">area</span>=<span class=\"sig-default\">0.001</span>,\n        <span class=\"sig-arg\">radius</span>=<span class=\"sig-default\">6371008.771415</span>,\n        <span class=\"sig-arg\">indices</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">attr</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">modified</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">**options</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p><i>Visvalingam-Whyatt</i> (VW) simplification of a path of \n  <code>LatLon</code> points by eliminating any points too close or with a \n  triangular area not exceeding the given <i>area</i> tolerance \n  <i>squared</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>points</code></strong> - Iterable with the path points (<code>LatLon</code>[]).</li>\n        <li><strong class=\"pname\"><code>area</code></strong> - Tolerance (<code>meter</code>, same units as \n          <b><code>radius</code></b>).</li>\n        <li><strong class=\"pname\"><code>radius</code></strong> - Mean earth radius (<code>meter</code>, conventionally).</li>\n        <li><strong class=\"pname\"><code>indices</code></strong> - If <code>True</code>, return <b><code>points</code></b> indices \n          instead of the simplified points (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>attr</code></strong> - Optional, <b><code>points</code></b> attribute to save the area \n          value (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>modified</code></strong> - If <code>True</code>, use the <code>modified VW</code> method \n          (<code>bool</code>), see the <b>note</b>.</li>\n        <li><strong class=\"pname\"><code>options</code></strong> - Optional keyword arguments passed thru to function <a \n          href=\"pygeodesy.geohash-module.html#equirectangular4\" \n          class=\"link\">pygeodesy.equirectangular4</a>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Simplified points (<code>LatLon</code>[]) or \n          <b><code>points</code></b> indices.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>AttributeError</strong></code> - An <b><code>attr</code></b> isinvalid for <i>Numpy2</i> \n        <b><code>points</code></b>.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.LimitError-class.html\">LimitError</a></strong></code> - Lat- and/or longitudinal delta exceeds the \n        <b><code>limit</code></b>, see function <a \n        href=\"pygeodesy.geohash-module.html#equirectangular4\" \n        class=\"link\">pygeodesy.equirectangular4</a>.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Tolerance <b><code>area</code></b> or <b><code>radius</code></b> \n        too small.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        The original <code>VW</code> method exhaustively searches for the \n        point with the smallest triangular <i>area</i> (resulting in \n        complexity <i class=\"math\">O(n**2)</i> with <i class=\"math\">n</i> \n        the number of points).  The <b><code>modified</code></b> \n        <code>VW</code> method removes <i>all</i> points with a triangular \n        <i>area</i> below the tolerance in each iteration, significantly \n        reducing the run time (but producing results different from the \n        original <code>VW</code> method).\n      </p>\n</div></td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.solveBase-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.solveBase</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        Module&nbsp;solveBase\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.solveBase-module.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== MODULE DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Module solveBase</h1><p class=\"nomargin-top\"></p>\n<p>(INTERNAL) Private base classes for <a \n  href=\"pygeodesy.geodsolve-module.html\" \n  class=\"link\">pygeodesy.geodsolve</a> and <a \n  href=\"pygeodesy.rhumb.solve-module.html\" class=\"link\" \n  onclick=\"show_private();\">pygeodesy.rhumb.solve</a>.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Version:</strong>\n        25.12.06\n      </p>\n</div><!-- ==================== CLASSES ==================== -->\n<a name=\"section-Classes\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Classes</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.solveBase._SolveCapsBase-class.html\" class=\"summary-name\">_SolveCapsBase</a><br />\n      (NTERNAL) Base class for <code>_SolveBase</code> and \n        <code>_LineSolveBase</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.solveBase._SolveBase-class.html\" class=\"summary-name\">_SolveBase</a><br />\n      (INTERNAL) Base class for <code>_SolveBase</code> and \n        <code>_SolveLineBase</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.solveBase._SolveGDictBase-class.html\" class=\"summary-name\">_SolveGDictBase</a><br />\n      (NTERNAL) Base class for <code>_GeodesicSolveBase</code> and \n        <code>_RhumbSolveBase</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.solveBase._SolveGDictLineBase-class.html\" class=\"summary-name\">_SolveGDictLineBase</a><br />\n      (NTERNAL) Base class for <code>GeodesicLineSolve</code> and \n        <code>RhumbLineSolve</code>.\n    </td>\n  </tr>\n</table>\n<!-- ==================== VARIABLES ==================== -->\n<a name=\"section-Variables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Variables</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"__all__\"></a><span class=\"summary-name\">__all__</span> = <code title=\"_ALL_LAZY.solveBase\">_ALL_LAZY.solveBase</code>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.solveBase._SolveBase-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.solveBase._SolveBase</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.solveBase-module.html\">Module&nbsp;solveBase</a> ::\n        Class&nbsp;_SolveBase\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.solveBase._SolveBase-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class _SolveBase</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+                \n           |                \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+            \n               |            \n<a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+        \n                   |        \n    <a href=\"pygeodesy.karney._CapsBase-class.html\">karney._CapsBase</a> --+    \n                       |    \n          <a href=\"pygeodesy.solveBase._SolveCapsBase-class.html\">_SolveCapsBase</a> --+\n                           |\n                          <strong class=\"uidshort\">_SolveBase</strong>\n</pre>\n\n<dl><dt>Known Subclasses:</dt>\n<dd>\n      <ul class=\"subclass-list\">\n<li class=\"private\">_Solve3Base</li>  </ul>\n</dd></dl>\n\n<hr />\n<p>(INTERNAL) Base class for <code>_SolveBase</code> and \n  <code>_SolveLineBase</code>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.solveBase._SolveBase-class.html#toStr\" class=\"summary-sig-name\">toStr</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">prec</span>=<span class=\"summary-sig-default\">6</span>,\n        <span class=\"summary-sig-arg\">sep</span>=<span class=\"summary-sig-default\">', '</span>,\n        <span class=\"summary-sig-arg\">**other</span>)</span><br />\n      Return this instance as string.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html\">_SolveCapsBase</a></code></b>:\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#invokat\">invokat</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#invoke\">invoke</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#linelimit\">linelimit</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.karney._CapsBase-class.html\">karney._CapsBase</a></code></b>:\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#caps_\">caps_</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#others\">others</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#toRepr\">toRepr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__init__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS VARIABLES ==================== -->\n<a name=\"section-ClassVariables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Class Variables</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.karney._CapsBase-class.html\">karney._CapsBase</a></code></b>:\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#ALL\">ALL</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#AREA\">AREA</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#AZIMUTH\">AZIMUTH</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#DISTANCE\">DISTANCE</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#DISTANCE_IN\">DISTANCE_IN</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#EMPTY\">EMPTY</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#GEODESICSCALE\">GEODESICSCALE</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#LATITUDE\">LATITUDE</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#LINE_CAPS\">LINE_CAPS</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#LINE_OFF\">LINE_OFF</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#LONGITUDE\">LONGITUDE</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#LONG_UNROLL\">LONG_UNROLL</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#NONFINITONAN\">NONFINITONAN</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#REDUCEDLENGTH\">REDUCEDLENGTH</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#STANDARD\">STANDARD</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#STANDARD_LINE\">STANDARD_LINE</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.solveBase._SolveBase-class.html#reverse2\" class=\"summary-name\">reverse2</a><br />\n      Get the <code>azi2</code> direction (<code>bool</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.solveBase._SolveBase-class.html#unroll\" class=\"summary-name\">unroll</a><br />\n      Get the <code>lon2</code> unroll'ing (<code>bool</code>).\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html\">_SolveCapsBase</a></code></b>:\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#Exact\">Exact</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#a\">a</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#b\">b</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#datum\">datum</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#ellipsoid\">ellipsoid</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#f\">f</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#flattening\">flattening</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#invokation\">invokation</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#prec\">prec</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#status\">status</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#verbose\">verbose</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#version\">version</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.karney._CapsBase-class.html\">karney._CapsBase</a></code></b>:\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#caps\">caps</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#debug\">debug</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"toStr\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toStr</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">prec</span>=<span class=\"sig-default\">6</span>,\n        <span class=\"sig-arg\">sep</span>=<span class=\"sig-default\">', '</span>,\n        <span class=\"sig-arg\">**other</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return this instance as string.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>prec_sep</code></strong> - Keyword argumens <code><b>prec</b>=6</code> and \n          <code><b>sep</b>=&quot;, &quot;</code> for the <code>float</code>\n          <code>prec</code>ision, number of decimal digits (0..9) and the \n          <code>sep</code>arator string to join.  Trailing zero decimals \n          are stripped for <b><code>prec</code></b> values of 1 and above, \n          but kept for negative <b><code>prec</code></b> values.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.named._Named-class.html#toStr\">named._Named.toStr</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"reverse2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">reverse2</h3>\n  <p>Get the <code>azi2</code> direction (<code>bool</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">reverse2(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <code>azi2</code> direction (<code>bool</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">reverse2(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">reverse2</span>)</span>\n        - Set the direction for <code>azi2</code> (<code>bool</code>), if \n<code>True</code> reverse <code>azi2</code>.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"unroll\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">unroll</h3>\n  <p>Get the <code>lon2</code> unroll'ing (<code>bool</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">unroll(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <code>lon2</code> unroll'ing (<code>bool</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">unroll(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">unroll</span>)</span>\n        - Set unroll'ing for <code>lon2</code> (<code>bool</code>), if \n<code>True</code> unroll <code>lon2</code>, otherwise don't.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.solveBase._SolveCapsBase-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.solveBase._SolveCapsBase</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.solveBase-module.html\">Module&nbsp;solveBase</a> ::\n        Class&nbsp;_SolveCapsBase\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.solveBase._SolveCapsBase-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class _SolveCapsBase</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+            \n           |            \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+        \n               |        \n<a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+    \n                   |    \n    <a href=\"pygeodesy.karney._CapsBase-class.html\">karney._CapsBase</a> --+\n                       |\n                      <strong class=\"uidshort\">_SolveCapsBase</strong>\n</pre>\n\n<dl><dt>Known Subclasses:</dt>\n<dd>\n      <ul class=\"subclass-list\">\n<li><a href=\"pygeodesy.solveBase._SolveBase-class.html\">_SolveBase</a></li><li>, <a href=\"pygeodesy.geodesici.Intersectool-class.html\">geodesici.Intersectool</a></li>  </ul>\n</dd></dl>\n\n<hr />\n<p>(NTERNAL) Base class for <code>_SolveBase</code> and \n  <code>_LineSolveBase</code>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#invokat\" class=\"summary-sig-name\">invokat</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">*prefix</span>)</span><br />\n      Get and set the invokation number <code>&quot;@&quot;</code> prefix \n      (<code>str</code>).</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#invoke\" class=\"summary-sig-name\">invoke</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">*options</span>,\n        <span class=\"summary-sig-arg\">**stdin</span>)</span><br />\n      Invoke the <code>Solve</code> executable and return the result.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#linelimit\" class=\"summary-sig-name\">linelimit</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">*limit</span>)</span><br />\n      Set and get the print line length limit.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.karney._CapsBase-class.html\">karney._CapsBase</a></code></b>:\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#caps_\">caps_</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#others\">others</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#toStr\">toStr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__init__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS VARIABLES ==================== -->\n<a name=\"section-ClassVariables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Class Variables</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.karney._CapsBase-class.html\">karney._CapsBase</a></code></b>:\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#ALL\">ALL</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#AREA\">AREA</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#AZIMUTH\">AZIMUTH</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#DISTANCE\">DISTANCE</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#DISTANCE_IN\">DISTANCE_IN</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#EMPTY\">EMPTY</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#GEODESICSCALE\">GEODESICSCALE</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#LATITUDE\">LATITUDE</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#LINE_CAPS\">LINE_CAPS</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#LINE_OFF\">LINE_OFF</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#LONGITUDE\">LONGITUDE</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#LONG_UNROLL\">LONG_UNROLL</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#NONFINITONAN\">NONFINITONAN</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#REDUCEDLENGTH\">REDUCEDLENGTH</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#STANDARD\">STANDARD</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#STANDARD_LINE\">STANDARD_LINE</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#a\" class=\"summary-name\">a</a><br />\n      Get the ellipsoid's <i>equatorial</i> radius, semi-axis \n      (<code>meter</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#b\" class=\"summary-name\">b</a><br />\n      Get the ellipsoid's <i>polar</i> radius, semi-axis \n      (<code>meter</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#datum\" class=\"summary-name\">datum</a><br />\n      Get the datum (<code>Datum</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#Exact\" class=\"summary-name\">Exact</a><br />\n      Get the Solve's <code>exact</code> setting (<code>bool</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#ellipsoid\" class=\"summary-name\">ellipsoid</a><br />\n      Get the ellipsoid (<code>Ellipsoid</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#flattening\" class=\"summary-name\">flattening</a><br />\n      Get the <code>ellipsoid</code>'s <i>flattening</i> \n      (<code>scalar</code>), <i class=\"math\">(a - b) / a</i>, \n      <code>0</code> for spherical, negative for prolate.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#f\" class=\"summary-name\">f</a><br />\n      Get the <code>ellipsoid</code>'s <i>flattening</i> \n      (<code>scalar</code>), <i class=\"math\">(a - b) / a</i>, \n      <code>0</code> for spherical, negative for prolate.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#invokation\" class=\"summary-name\">invokation</a><br />\n      Get the most recent <code>Solve</code> invokation number \n      (<code>int</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#prec\" class=\"summary-name\">prec</a><br />\n      Get the precision, number of (decimal) digits (<code>int</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#status\" class=\"summary-name\">status</a><br />\n      Get the most recent <code>Solve</code> return code (<code>int</code>,\n      <code>str</code>) or <code>None</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#verbose\" class=\"summary-name\">verbose</a><br />\n      Get the <code>verbose</code> option (<code>bool</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#version\" class=\"summary-name\">version</a><br />\n      Get the result of <code>&quot;GeodSolve --version&quot;</code> or \n      <code>&quot;RhumbSolve --version&quot;</code>.\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.karney._CapsBase-class.html\">karney._CapsBase</a></code></b>:\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#caps\">caps</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#debug\">debug</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"invokat\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">invokat</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">*prefix</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Get and set the invokation number <code>&quot;@&quot;</code> prefix \n  (<code>str</code>).</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd>Previous prefix (<code>str</code>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"invoke\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">invoke</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">*options</span>,\n        <span class=\"sig-arg\">**stdin</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Invoke the <code>Solve</code> executable and return the result.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>options</code></strong> - No, one or several <code>Solve</code> command line options \n          (<code>str</code>s).</li>\n        <li><strong class=\"pname\"><code>stdin</code></strong> - Optional input to pass to <code>Solve.stdin</code> \n          (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The <code>Solve.stdout</code> and <code>.stderr</code> output \n          (<code>str</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.GeodesicError-class.html\">GeodesicError</a></strong></code> - On any error, including a non-zero return code from \n        <code>GeodSolve</code>.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.RhumbError-class.html\">RhumbError</a></strong></code> - On any error, including a non-zero return code from \n        <code>RhumbSolve</code>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        The <code>Solve</code> return code is in property <a \n        href=\"pygeodesy.solveBase._SolveCapsBase-class.html#status\" \n        class=\"link\">status</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"linelimit\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">linelimit</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">*limit</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Set and get the print line length limit.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>limit</code></strong> - New line limit (<code>int</code>) or <code>0</code> or \n          <code>None</code> for unlimited.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Teh previous limit (<code>int</code>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"a\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">a</h3>\n  <p>Get the ellipsoid's <i>equatorial</i> radius, semi-axis \n  (<code>meter</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">a(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the ellipsoid's <i>equatorial</i> radius, semi-axis \n(<code>meter</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"b\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">b</h3>\n  <p>Get the ellipsoid's <i>polar</i> radius, semi-axis \n  (<code>meter</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">b(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the ellipsoid's <i>polar</i> radius, semi-axis (<code>meter</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"datum\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">datum</h3>\n  <p>Get the datum (<code>Datum</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">datum(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the datum (<code>Datum</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"Exact\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">Exact</h3>\n  <p>Get the Solve's <code>exact</code> setting (<code>bool</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">Exact(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the Solve's <code>exact</code> setting (<code>bool</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">Exact(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">Exact</span>)</span>\n        - Set the Solve's <code>exact</code> setting (<code>bool</code>), if \n<code>True</code> use <i>exact</i> version.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"ellipsoid\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">ellipsoid</h3>\n  <p>Get the ellipsoid (<code>Ellipsoid</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">ellipsoid(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the ellipsoid (<code>Ellipsoid</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"flattening\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">flattening</h3>\n  <p>Get the <code>ellipsoid</code>'s <i>flattening</i> \n  (<code>scalar</code>), <i class=\"math\">(a - b) / a</i>, <code>0</code> \n  for spherical, negative for prolate.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">flattening(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <code>ellipsoid</code>'s <i>flattening</i> (<code>scalar</code>), \n<i class=\"math\">(a - b) / a</i>, <code>0</code> for spherical, negative for\nprolate.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"f\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">f</h3>\n  <p>Get the <code>ellipsoid</code>'s <i>flattening</i> \n  (<code>scalar</code>), <i class=\"math\">(a - b) / a</i>, <code>0</code> \n  for spherical, negative for prolate.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">flattening(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <code>ellipsoid</code>'s <i>flattening</i> (<code>scalar</code>), \n<i class=\"math\">(a - b) / a</i>, <code>0</code> for spherical, negative for\nprolate.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"invokation\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">invokation</h3>\n  <p>Get the most recent <code>Solve</code> invokation number \n  (<code>int</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">invokation(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the most recent <code>Solve</code> invokation number \n(<code>int</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"prec\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">prec</h3>\n  <p>Get the precision, number of (decimal) digits (<code>int</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">prec(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the precision, number of (decimal) digits (<code>int</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">prec(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">prec</span>)</span>\n        - Set the precision for <code>angles</code> in <code>degrees</code>, like \n<code>lat</code>, <code>lon</code>, <code>azimuth</code> and \n<code>arc</code> in number of decimal digits (<code>int</code>, \n<code>0</code>..\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"status\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">status</h3>\n  <p>Get the most recent <code>Solve</code> return code (<code>int</code>, \n  <code>str</code>) or <code>None</code>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">status(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the most recent <code>Solve</code> return code (<code>int</code>, \n<code>str</code>) or <code>None</code>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"verbose\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">verbose</h3>\n  <p>Get the <code>verbose</code> option (<code>bool</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">verbose(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <code>verbose</code> option (<code>bool</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">verbose(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">verbose</span>)</span>\n        - Set the <code>verbose</code> option (<code>bool</code>), <code>True</code> \nprints a message around each <code>RhumbSolve</code> invokation.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"version\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">version</h3>\n  <p>Get the result of <code>&quot;GeodSolve --version&quot;</code> or \n  <code>&quot;RhumbSolve --version&quot;</code>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">version(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the result of <code>&quot;GeodSolve --version&quot;</code> or \n<code>&quot;RhumbSolve --version&quot;</code>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.solveBase._SolveGDictBase-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.solveBase._SolveGDictBase</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.solveBase-module.html\">Module&nbsp;solveBase</a> ::\n        Class&nbsp;_SolveGDictBase\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.solveBase._SolveGDictBase-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class _SolveGDictBase</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+                        \n           |                        \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+                    \n               |                    \n<a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+                \n                   |                \n    <a href=\"pygeodesy.karney._CapsBase-class.html\">karney._CapsBase</a> --+            \n                       |            \n          <a href=\"pygeodesy.solveBase._SolveCapsBase-class.html\">_SolveCapsBase</a> --+        \n                           |        \n                  <a href=\"pygeodesy.solveBase._SolveBase-class.html\">_SolveBase</a> --+    \n                               |    \n                     _Solve3Base --+\n                                   |\n                                  <strong class=\"uidshort\">_SolveGDictBase</strong>\n</pre>\n\n<dl><dt>Known Subclasses:</dt>\n<dd>\n      <ul class=\"subclass-list\">\n<li><a href=\"pygeodesy.geodsolve._GeodesicSolveBase-class.html\">geodsolve._GeodesicSolveBase</a></li><li>, <a href=\"pygeodesy.solveBase._SolveGDictLineBase-class.html\">_SolveGDictLineBase</a></li><li>, <a href=\"pygeodesy.rhumb.solve._RhumbSolveBase-class.html\">rhumb.solve._RhumbSolveBase</a></li>  </ul>\n</dd></dl>\n\n<hr />\n<p>(NTERNAL) Base class for <code>_GeodesicSolveBase</code> and \n  <code>_RhumbSolveBase</code>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"ArcDirect\"></a><span class=\"summary-sig-name\">ArcDirect</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lat1</span>,\n        <span class=\"summary-sig-arg\">lon1</span>,\n        <span class=\"summary-sig-arg\">azi1</span>,\n        <span class=\"summary-sig-arg\">a12</span>,\n        <span class=\"summary-sig-arg\">outmask</span>=<span class=\"summary-sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">UNUSED</code><code class=\"variable-quote\">'</code></span>)</span><br />\n      Return the <code>Direct</code> result at <code>a12</code> degrees.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"Direct\"></a><span class=\"summary-sig-name\">Direct</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lat1</span>,\n        <span class=\"summary-sig-arg\">lon1</span>,\n        <span class=\"summary-sig-arg\">azi1</span>,\n        <span class=\"summary-sig-arg\">s12</span>,\n        <span class=\"summary-sig-arg\">outmask</span>=<span class=\"summary-sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">UNUSED</code><code class=\"variable-quote\">'</code></span>)</span><br />\n      Return the <code>Direct</code> result at distance <code>s12</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"Inverse\"></a><span class=\"summary-sig-name\">Inverse</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lat1</span>,\n        <span class=\"summary-sig-arg\">lon1</span>,\n        <span class=\"summary-sig-arg\">lat2</span>,\n        <span class=\"summary-sig-arg\">lon2</span>,\n        <span class=\"summary-sig-arg\">outmask</span>=<span class=\"summary-sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">UNUSED</code><code class=\"variable-quote\">'</code></span>)</span><br />\n      Return the <code>Inverse</code> result.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"Inverse1\"></a><span class=\"summary-sig-name\">Inverse1</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lat1</span>,\n        <span class=\"summary-sig-arg\">lon1</span>,\n        <span class=\"summary-sig-arg\">lat2</span>,\n        <span class=\"summary-sig-arg\">lon2</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Return the non-negative, <i>angular</i> distance in \n      <code>degrees</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.solveBase._SolveGDictBase-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">a_ellipsoid</span>=<span class=\"summary-sig-default\">Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.257223<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"summary-sig-arg\">f</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">path</span>=<span class=\"summary-sig-default\">''</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      New <code>Solve</code> instance.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.solveBase._SolveGDictBase-class.html#toStr\" class=\"summary-sig-name\">toStr</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">**prec_sep_other</span>)</span><br />\n      Return this <code>_Solve</code> as string.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html\">_SolveCapsBase</a></code></b>:\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#invokat\">invokat</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#invoke\">invoke</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#linelimit\">linelimit</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.karney._CapsBase-class.html\">karney._CapsBase</a></code></b>:\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#caps_\">caps_</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#others\">others</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#toRepr\">toRepr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS VARIABLES ==================== -->\n<a name=\"section-ClassVariables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Class Variables</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.karney._CapsBase-class.html\">karney._CapsBase</a></code></b>:\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#ALL\">ALL</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#AREA\">AREA</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#AZIMUTH\">AZIMUTH</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#DISTANCE\">DISTANCE</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#DISTANCE_IN\">DISTANCE_IN</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#EMPTY\">EMPTY</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#GEODESICSCALE\">GEODESICSCALE</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#LATITUDE\">LATITUDE</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#LINE_CAPS\">LINE_CAPS</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#LINE_OFF\">LINE_OFF</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#LONGITUDE\">LONGITUDE</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#LONG_UNROLL\">LONG_UNROLL</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#NONFINITONAN\">NONFINITONAN</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#REDUCEDLENGTH\">REDUCEDLENGTH</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#STANDARD\">STANDARD</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#STANDARD_LINE\">STANDARD_LINE</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.solveBase._SolveBase-class.html\">_SolveBase</a></code></b>:\n      <code><a href=\"pygeodesy.solveBase._SolveBase-class.html#reverse2\">reverse2</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveBase-class.html#unroll\">unroll</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html\">_SolveCapsBase</a></code></b>:\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#Exact\">Exact</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#a\">a</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#b\">b</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#datum\">datum</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#ellipsoid\">ellipsoid</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#f\">f</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#flattening\">flattening</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#invokation\">invokation</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#prec\">prec</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#status\">status</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#verbose\">verbose</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#version\">version</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.karney._CapsBase-class.html\">karney._CapsBase</a></code></b>:\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#caps\">caps</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#debug\">debug</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">a_ellipsoid</span>=<span class=\"sig-default\">Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.257223<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"sig-arg\">f</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">path</span>=<span class=\"sig-default\">''</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <code>Solve</code> instance.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>a_ellipsoid</code></strong> - An ellipsoid (<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\"\n          class=\"link\">Ellipsoid</a>) or datum (<a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>) \n          or the equatorial radius of the ellipsoid (<code>scalar</code>, \n          conventionally in <code>meter</code>), see <b><code>f</code></b>.</li>\n        <li><strong class=\"pname\"><code>f</code></strong> - The flattening of the ellipsoid (<code>scalar</code>) if \n          <b><code>a_ellipsoid</code></b> is specified as \n          <code>scalar</code>.</li>\n        <li><strong class=\"pname\"><code>path</code></strong> - Optionally, the (fully qualified) path to the \n          <code>GeodSolve</code> or <code>RhumbSolve</code> executable \n          (<code>filename</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>a_ellipsoid</code></b> or <b><code>f</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toStr\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toStr</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">**prec_sep_other</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return this <code>_Solve</code> as string.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>prec_sep</code></strong> - See <a href=\"pygeodesy.solveBase._SolveBase-class.html#toStr\" \n          class=\"link\">toStr</a>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.named._Named-class.html#toStr\">named._Named.toStr</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.solveBase._SolveGDictLineBase-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.solveBase._SolveGDictLineBase</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.solveBase-module.html\">Module&nbsp;solveBase</a> ::\n        Class&nbsp;_SolveGDictLineBase\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.solveBase._SolveGDictLineBase-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class _SolveGDictLineBase</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+                            \n           |                            \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+                        \n               |                        \n<a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+                    \n                   |                    \n    <a href=\"pygeodesy.karney._CapsBase-class.html\">karney._CapsBase</a> --+                \n                       |                \n          <a href=\"pygeodesy.solveBase._SolveCapsBase-class.html\">_SolveCapsBase</a> --+            \n                           |            \n                  <a href=\"pygeodesy.solveBase._SolveBase-class.html\">_SolveBase</a> --+        \n                               |        \n                     _Solve3Base --+    \n                                   |    \n                     <a href=\"pygeodesy.solveBase._SolveGDictBase-class.html\">_SolveGDictBase</a> --+\n                                       |\n                                      <strong class=\"uidshort\">_SolveGDictLineBase</strong>\n</pre>\n\n<dl><dt>Known Subclasses:</dt>\n<dd>\n      <ul class=\"subclass-list\">\n<li><a href=\"pygeodesy.geodsolve.GeodesicLineSolve-class.html\">geodsolve.GeodesicLineSolve</a></li><li>, <a href=\"pygeodesy.rhumb.solve.RhumbLineSolve-class.html\">rhumb.solve.RhumbLineSolve</a></li>  </ul>\n</dd></dl>\n\n<hr />\n<p>(NTERNAL) Base class for <code>GeodesicLineSolve</code> and \n  <code>RhumbLineSolve</code>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.solveBase._SolveGDictLineBase-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">solve</span>,\n        <span class=\"summary-sig-arg\">lat1</span>,\n        <span class=\"summary-sig-arg\">lon1</span>,\n        <span class=\"summary-sig-arg\">caps</span>,\n        <span class=\"summary-sig-arg\">**azi_name</span>)</span><br />\n      New <code>Solve</code> instance.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.solveBase._SolveGDictLineBase-class.html#toStr\" class=\"summary-sig-name\">toStr</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">**prec_sep_other</span>)</span><br />\n      Return this <code>_LineSolve</code> as string.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.solveBase._SolveGDictBase-class.html\">_SolveGDictBase</a></code></b>:\n      <code><a href=\"pygeodesy.solveBase._SolveGDictBase-class.html#ArcDirect\">ArcDirect</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveGDictBase-class.html#Direct\">Direct</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveGDictBase-class.html#Inverse\">Inverse</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveGDictBase-class.html#Inverse1\">Inverse1</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html\">_SolveCapsBase</a></code></b>:\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#invokat\">invokat</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#invoke\">invoke</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#linelimit\">linelimit</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.karney._CapsBase-class.html\">karney._CapsBase</a></code></b>:\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#caps_\">caps_</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#others\">others</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#toRepr\">toRepr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS VARIABLES ==================== -->\n<a name=\"section-ClassVariables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Class Variables</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.karney._CapsBase-class.html\">karney._CapsBase</a></code></b>:\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#ALL\">ALL</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#AREA\">AREA</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#AZIMUTH\">AZIMUTH</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#DISTANCE\">DISTANCE</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#DISTANCE_IN\">DISTANCE_IN</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#EMPTY\">EMPTY</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#GEODESICSCALE\">GEODESICSCALE</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#LATITUDE\">LATITUDE</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#LINE_CAPS\">LINE_CAPS</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#LINE_OFF\">LINE_OFF</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#LONGITUDE\">LONGITUDE</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#LONG_UNROLL\">LONG_UNROLL</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#NONFINITONAN\">NONFINITONAN</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#REDUCEDLENGTH\">REDUCEDLENGTH</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#STANDARD\">STANDARD</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#STANDARD_LINE\">STANDARD_LINE</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.solveBase._SolveGDictLineBase-class.html#datum\" class=\"summary-name\">datum</a><br />\n      Get the datum (<code>Datum</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.solveBase._SolveGDictLineBase-class.html#ellipsoid\" class=\"summary-name\">ellipsoid</a><br />\n      Get the ellipsoid (<code>Ellipsoid</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.solveBase._SolveGDictLineBase-class.html#lat1\" class=\"summary-name\">lat1</a><br />\n      Get the latitude of the first point (<code>degrees</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.solveBase._SolveGDictLineBase-class.html#lon1\" class=\"summary-name\">lon1</a><br />\n      Get the longitude of the first point (<code>degrees</code>).\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.solveBase._SolveBase-class.html\">_SolveBase</a></code></b>:\n      <code><a href=\"pygeodesy.solveBase._SolveBase-class.html#reverse2\">reverse2</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveBase-class.html#unroll\">unroll</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html\">_SolveCapsBase</a></code></b>:\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#Exact\">Exact</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#a\">a</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#b\">b</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#f\">f</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#flattening\">flattening</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#invokation\">invokation</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#prec\">prec</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#status\">status</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#verbose\">verbose</a></code>,\n      <code><a href=\"pygeodesy.solveBase._SolveCapsBase-class.html#version\">version</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.karney._CapsBase-class.html\">karney._CapsBase</a></code></b>:\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#caps\">caps</a></code>,\n      <code><a href=\"pygeodesy.karney._CapsBase-class.html#debug\">debug</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">solve</span>,\n        <span class=\"sig-arg\">lat1</span>,\n        <span class=\"sig-arg\">lon1</span>,\n        <span class=\"sig-arg\">caps</span>,\n        <span class=\"sig-arg\">**azi_name</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <code>Solve</code> instance.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>a_ellipsoid</code></strong> - An ellipsoid (<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\"\n          class=\"link\">Ellipsoid</a>) or datum (<a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>) \n          or the equatorial radius of the ellipsoid (<code>scalar</code>, \n          conventionally in <code>meter</code>), see <b><code>f</code></b>.</li>\n        <li><strong class=\"pname\"><code>f</code></strong> - The flattening of the ellipsoid (<code>scalar</code>) if \n          <b><code>a_ellipsoid</code></b> is specified as \n          <code>scalar</code>.</li>\n        <li><strong class=\"pname\"><code>path</code></strong> - Optionally, the (fully qualified) path to the \n          <code>GeodSolve</code> or <code>RhumbSolve</code> executable \n          (<code>filename</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>a_ellipsoid</code></b> or <b><code>f</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n        <dd><em class=\"note\">(inherited documentation)</em></dd>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toStr\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toStr</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">**prec_sep_other</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return this <code>_LineSolve</code> as string.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>prec_sep</code></strong> - See <a href=\"pygeodesy.solveBase._SolveBase-class.html#toStr\" \n          class=\"link\">toStr</a>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.named._Named-class.html#toStr\">named._Named.toStr</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"datum\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">datum</h3>\n  <p>Get the datum (<code>Datum</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">datum(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the datum (<code>Datum</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"ellipsoid\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">ellipsoid</h3>\n  <p>Get the ellipsoid (<code>Ellipsoid</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">ellipsoid(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the ellipsoid (<code>Ellipsoid</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"lat1\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">lat1</h3>\n  <p>Get the latitude of the first point (<code>degrees</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">lat1(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the latitude of the first point (<code>degrees</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"lon1\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">lon1</h3>\n  <p>Get the longitude of the first point (<code>degrees</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">lon1(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the longitude of the first point (<code>degrees</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.sphericalBase-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.sphericalBase</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        Module&nbsp;sphericalBase\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.sphericalBase-module.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== MODULE DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Module sphericalBase</h1><p class=\"nomargin-top\"></p>\n<p>(INTERNAL) Private spherical base classes \n  <code>CartesianSphericalBase</code> and <code>LatLonSphericalBase</code> \n  for <a href=\"pygeodesy.sphericalNvector-module.html\" \n  class=\"link\">sphericalNvector</a> and <a \n  href=\"pygeodesy.sphericalTrigonometry-module.html\" \n  class=\"link\">sphericalTrigonometry</a>.</p>\n  <p>A pure Python implementation of geodetic (lat-/longitude) functions, \n  transcoded in part from JavaScript originals by <i>(C) Chris Veness \n  2011-2024</i> and published under the same MIT Licence**, see <a \n  href=\"https://www.Movable-Type.co.UK/scripts/latlong.html\" \n  target=\"_top\">Latitude/Longitude</a>.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Version:</strong>\n        25.05.26\n      </p>\n</div><!-- ==================== CLASSES ==================== -->\n<a name=\"section-Classes\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Classes</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.sphericalBase.CartesianSphericalBase-class.html\" class=\"summary-name\">CartesianSphericalBase</a><br />\n      (INTERNAL) Base class for spherical <code>Cartesian</code>s.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html\" class=\"summary-name\">LatLonSphericalBase</a><br />\n      (INTERNAL) Base class for spherical <code>LatLon</code>s.\n    </td>\n  </tr>\n</table>\n<!-- ==================== VARIABLES ==================== -->\n<a name=\"section-Variables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Variables</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"__all__\"></a><span class=\"summary-name\">__all__</span> = <code title=\"_ALL_LAZY.sphericalBase\">_ALL_LAZY.sphericalBase</code>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.sphericalBase.CartesianSphericalBase-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.sphericalBase.CartesianSphericalBase</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.sphericalBase-module.html\">Module&nbsp;sphericalBase</a> ::\n        Class&nbsp;CartesianSphericalBase\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.sphericalBase.CartesianSphericalBase-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class CartesianSphericalBase</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n       object --+                    \n                |                    \n     <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+                \n                    |                \n     <a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+            \n                        |            \n<a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">vector3dBase.Vector3dBase</a> --+        \n                            |        \n            <a href=\"pygeodesy.vector3d.Vector3d-class.html\">vector3d.Vector3d</a> --+    \n                                |    \n               object --+       |    \n                        |       |    \n             <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+   |    \n                            |   |    \n        <a href=\"pygeodesy.ecefLocals._EcefLocal-class.html\">ecefLocals._EcefLocal</a> --+    \n                                |    \n      <a href=\"pygeodesy.cartesianBase.CartesianBase-class.html\">cartesianBase.CartesianBase</a> --+\n                                    |\n                                   <strong class=\"uidshort\">CartesianSphericalBase</strong>\n</pre>\n\n<dl><dt>Known Subclasses:</dt>\n<dd>\n      <ul class=\"subclass-list\">\n<li><a href=\"pygeodesy.sphericalNvector.Cartesian-class.html\">sphericalNvector.Cartesian</a></li><li>, <a href=\"pygeodesy.sphericalTrigonometry.Cartesian-class.html\">sphericalTrigonometry.Cartesian</a></li>  </ul>\n</dd></dl>\n\n<hr />\n<p>(INTERNAL) Base class for spherical <code>Cartesian</code>s.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.sphericalBase.CartesianSphericalBase-class.html#intersections2\" class=\"summary-sig-name\">intersections2</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">rad1</span>,\n        <span class=\"summary-sig-arg\">other</span>,\n        <span class=\"summary-sig-arg\">rad2</span>,\n        <span class=\"summary-sig-arg\">radius</span>=<span class=\"summary-sig-default\">6371008.771415</span>)</span><br />\n      Compute the intersection points of two circles each defined by a \n      center point and a radius.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html\">cartesianBase.CartesianBase</a></code></b>:\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#Roc2\">Roc2</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#__init__\">__init__</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#cassini\">cassini</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#collins\">collins</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#collins5\">collins5</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#convertDatum\">convertDatum</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#destinationXyz\">destinationXyz</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#hartzell\">hartzell</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#height3\">height3</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#height4\">height4</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#pierlot\">pierlot</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#pierlotx\">pierlotx</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#tienstra\">tienstra</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#tienstra7\">tienstra7</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#to2ab\">to2ab</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#to2ll\">to2ll</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#to3llh\">to3llh</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#toDatum\">toDatum</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#toEcef\">toEcef</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#toLatLon\">toLatLon</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#toNvector\">toNvector</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#toRtp\">toRtp</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#toTransform\">toTransform</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#toVector\">toVector</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.vector3d.Vector3d-class.html\">vector3d.Vector3d</a></code></b>:\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#bearing\">bearing</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#circin6\">circin6</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#circum3\">circum3</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#circum4_\">circum4_</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#iscolinearWith\">iscolinearWith</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#meeus2\">meeus2</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#nearestOn\">nearestOn</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#nearestOn6\">nearestOn6</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#parse\">parse</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#radii11\">radii11</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#soddy4\">soddy4</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#toCartesian\">toCartesian</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#trilaterate2d2\">trilaterate2d2</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#trilaterate3d2\">trilaterate3d2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">vector3dBase.Vector3dBase</a></code></b>:\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__abs__\">__abs__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__add__\">__add__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__bool__\">__bool__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__ceil__\">__ceil__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__cmp__\">__cmp__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__div__\">__div__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__divmod__\">__divmod__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__eq__\">__eq__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__float__\">__float__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__floor__\">__floor__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__floordiv__\">__floordiv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__ge__\">__ge__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__gt__\">__gt__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__iadd__\">__iadd__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__idiv__\">__idiv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__ifloordiv__\">__ifloordiv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__imod__\">__imod__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__imul__\">__imul__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__int__\">__int__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__ipow__\">__ipow__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__isub__\">__isub__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__itruediv__\">__itruediv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__le__\">__le__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__long__\">__long__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__lt__\">__lt__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__mod__\">__mod__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__mul__\">__mul__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__ne__\">__ne__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__neg__\">__neg__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__nonzero__\">__nonzero__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__pos__\">__pos__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__pow__\">__pow__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__radd__\">__radd__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rdiv__\">__rdiv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rdivmod__\">__rdivmod__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rfloordiv__\">__rfloordiv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rmod__\">__rmod__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rmul__\">__rmul__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__round__\">__round__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rpow__\">__rpow__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rsub__\">__rsub__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rtruediv__\">__rtruediv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__sub__\">__sub__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__truediv__\">__truediv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__trunc__\">__trunc__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#angleTo\">angleTo</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#apply\">apply</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#bools\">bools</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#cmp\">cmp</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#cross\">cross</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#dividedBy\">dividedBy</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#dividedBy_\">dividedBy_</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#dot\">dot</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#equals\">equals</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#equirectangular\">equirectangular</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#fabs\">fabs</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#floats\">floats</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#floorDividedBy\">floorDividedBy</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#floorDividedBy_\">floorDividedBy_</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#intermediateTo\">intermediateTo</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#ints\">ints</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#isconjugateTo\">isconjugateTo</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#isequalTo\">isequalTo</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#minus\">minus</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#minus_\">minus_</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#negate\">negate</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#others\">others</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#plus\">plus</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#plus_\">plus_</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#pow\">pow</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#rotate\">rotate</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#rotateAround\">rotateAround</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#sum\">sum</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#times\">times</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#times_\">times_</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#to3xyz\">to3xyz</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#unit\">unit</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#toRepr\">toRepr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html\">ecefLocals._EcefLocal</a></code></b>:\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toAer\">toAer</a></code>,\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toEnu\">toEnu</a></code>,\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toLocal\">toLocal</a></code>,\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toLtp\">toLtp</a></code>,\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toNed\">toNed</a></code>,\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toXyz\">toXyz</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.sphericalBase.CartesianSphericalBase-class.html#sphericalCartesian\" class=\"summary-name\">sphericalCartesian</a><br />\n      Get this <code>Cartesian</code>'s spherical class.\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html\">cartesianBase.CartesianBase</a></code></b>:\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#datum\">datum</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#ellipsoidalCartesian\">ellipsoidalCartesian</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#height\">height</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#isEllipsoidal\">isEllipsoidal</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#isSpherical\">isSpherical</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#latlon\">latlon</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#latlonheight\">latlonheight</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#latlonheightdatum\">latlonheightdatum</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#philam\">philam</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#philamheight\">philamheight</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#philamheightdatum\">philamheightdatum</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">vector3dBase.Vector3dBase</a></code></b>:\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#crosserrors\">crosserrors</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#euclid\">euclid</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#homogeneous\">homogeneous</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#length\">length</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#length2\">length2</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#x\">x</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#x2y2z2\">x2y2z2</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#x2y2z23\">x2y2z23</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#xyz\">xyz</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#xyz3\">xyz3</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#y\">y</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#z\">z</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html\">ecefLocals._EcefLocal</a></code></b>:\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#Ecef\">Ecef</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"intersections2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">intersections2</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">rad1</span>,\n        <span class=\"sig-arg\">other</span>,\n        <span class=\"sig-arg\">rad2</span>,\n        <span class=\"sig-arg\">radius</span>=<span class=\"sig-default\">6371008.771415</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the intersection points of two circles each defined by a \n  center point and a radius.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>rad1</code></strong> - Radius of the this circle (<code>meter</code> or \n          <code>radians</code>, see <b><code>radius</code></b>).</li>\n        <li><strong class=\"pname\"><code>other</code></strong> - Center of the other circle (<code>Cartesian</code>).</li>\n        <li><strong class=\"pname\"><code>rad2</code></strong> - Radius of the other circle (<code>meter</code> or \n          <code>radians</code>, see <b><code>radius</code></b>).</li>\n        <li><strong class=\"pname\"><code>radius</code></strong> - Mean earth radius (<code>meter</code> or <code>None</code> if \n          both <b><code>rad1</code></b> and <b><code>rad2</code></b> are \n          given in <code>radians</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>2-Tuple of the intersection points, each <code>Cartesian</code>. \n          For abutting circles, the intersection points are the same \n          <code>Cartesian</code> instance, aka the <i>radical center</i>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.IntersectionError-class.html\">IntersectionError</a></strong></code> - Concentric, antipodal, invalid or non-intersecting circles.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - If <b><code>other</code></b> is not <code>Cartesian</code>.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>rad1</code></b>, <b><code>rad2</code></b> or \n        <b><code>radius</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a \n        href=\"https://GIS.StackExchange.com/questions/48937/calculating-intersection-of-two-circles\"\n        target=\"_top\">Calculating intersection of two Circles</a> and \n        method or function <code>trilaterate3d2</code>.\n      </p>\n</div></td></tr></table>\n</div>\n<br />\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"sphericalCartesian\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">sphericalCartesian</h3>\n  <p>Get this <code>Cartesian</code>'s spherical class.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">sphericalCartesian(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get this <code>Cartesian</code>'s spherical class.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.sphericalBase.LatLonSphericalBase-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.sphericalBase.LatLonSphericalBase</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.sphericalBase-module.html\">Module&nbsp;sphericalBase</a> ::\n        Class&nbsp;LatLonSphericalBase\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class LatLonSphericalBase</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n       object --+            \n                |            \n     <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+        \n                    |        \n     <a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+    \n                        |    \n       object --+       |    \n                |       |    \n     <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+   |    \n                    |   |    \n<a href=\"pygeodesy.ecefLocals._EcefLocal-class.html\">ecefLocals._EcefLocal</a> --+    \n                        |    \n    <a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">latlonBase.LatLonBase</a> --+\n                            |\n                           <strong class=\"uidshort\">LatLonSphericalBase</strong>\n</pre>\n\n<dl><dt>Known Subclasses:</dt>\n<dd>\n      <ul class=\"subclass-list\">\n<li><a href=\"pygeodesy.sphericalNvector.LatLon-class.html\">sphericalNvector.LatLon</a></li><li>, <a href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html\">sphericalTrigonometry.LatLon</a></li>  </ul>\n</dd></dl>\n\n<hr />\n<p>(INTERNAL) Base class for spherical <code>LatLon</code>s.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">latlonh</span>,\n        <span class=\"summary-sig-arg\">lon</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">height</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">datum</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Create a spherical <code>LatLon</code> point frome the given lat-, \n      longitude and height on the given datum.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html#bearingTo2\" class=\"summary-sig-name\">bearingTo2</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">raiser</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Return the initial and final bearing (forward and reverse azimuth) \n      from this to an other point.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html#finalBearingTo\" class=\"summary-sig-name\">finalBearingTo</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">raiser</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Return the final bearing (reverse azimuth) from this to an other \n      point.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html#intersecant2\" class=\"summary-sig-name\">intersecant2</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">circle</span>,\n        <span class=\"summary-sig-arg\">point</span>,\n        <span class=\"summary-sig-arg\">other</span>,\n        <span class=\"summary-sig-arg\">radius</span>=<span class=\"summary-sig-default\">6371008.771415</span>,\n        <span class=\"summary-sig-arg\">exact</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">height</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Compute the intersections of a circle and a (great circle) line given\n      as two points or as a point and bearing.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html#maxLat\" class=\"summary-sig-name\">maxLat</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">bearing</span>)</span><br />\n      Return the maximum latitude reached when travelling on a great circle\n      on given bearing from this point based on Clairaut's formula.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html#minLat\" class=\"summary-sig-name\">minLat</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">bearing</span>)</span><br />\n      Return the minimum latitude reached when travelling on a great circle\n      on given bearing from this point.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html#parse\" class=\"summary-sig-name\">parse</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">strllh</span>,\n        <span class=\"summary-sig-arg\">height</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">sep</span>=<span class=\"summary-sig-default\">','</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Parse a string representing a similar, spherical <code>LatLon</code> \n      point, consisting of <code>&quot;lat, lon[, height]&quot;</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html#rhumbAzimuthTo\" class=\"summary-sig-name\">rhumbAzimuthTo</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>,\n        <span class=\"summary-sig-arg\">radius</span>=<span class=\"summary-sig-default\">6371008.771415</span>,\n        <span class=\"summary-sig-arg\">exact</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">b360</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Return the azimuth (bearing) of a rhumb line (loxodrome) between this\n      and an other (spherical) point.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html#rhumbBearingTo\" class=\"summary-sig-name\">rhumbBearingTo</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span><br />\n      DEPRECATED, use method <code>.rhumbAzimuthTo</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html#rhumbDestination\" class=\"summary-sig-name\">rhumbDestination</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">distance</span>,\n        <span class=\"summary-sig-arg\">azimuth</span>,\n        <span class=\"summary-sig-arg\">radius</span>=<span class=\"summary-sig-default\">6371008.771415</span>,\n        <span class=\"summary-sig-arg\">height</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">exact</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Return the destination point having travelled the given distance from\n      this point along a rhumb line (loxodrome) of the given azimuth.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html#rhumbDistanceTo\" class=\"summary-sig-name\">rhumbDistanceTo</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>,\n        <span class=\"summary-sig-arg\">radius</span>=<span class=\"summary-sig-default\">6371008.771415</span>,\n        <span class=\"summary-sig-arg\">exact</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Return the distance from this to an other point along a rhumb line \n      (loxodrome).</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html#rhumbIntersecant2\" class=\"summary-sig-name\">rhumbIntersecant2</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">circle</span>,\n        <span class=\"summary-sig-arg\">point</span>,\n        <span class=\"summary-sig-arg\">other</span>,\n        <span class=\"summary-sig-arg\">radius</span>=<span class=\"summary-sig-default\">6371008.771415</span>,\n        <span class=\"summary-sig-arg\">exact</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">height</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Compute the intersections of a circle and a rhumb line given as two \n      points and as a point and azimuth.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html#rhumbMidpointTo\" class=\"summary-sig-name\">rhumbMidpointTo</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>,\n        <span class=\"summary-sig-arg\">height</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">radius</span>=<span class=\"summary-sig-default\">6371008.771415</span>,\n        <span class=\"summary-sig-arg\">exact</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">fraction</span>=<span class=\"summary-sig-default\">0.5</span>,\n        <span class=\"summary-sig-arg\">**wrap_name</span>)</span><br />\n      Return the (loxodromic) midpoint on the rhumb line between this and \n      an other point.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html#toNvector\" class=\"summary-sig-name\">toNvector</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">Nvector</span>=<span class=\"summary-sig-default\">&lt;class 'pygeodesy.nvectorBase.NvectorBase'&gt;</span>,\n        <span class=\"summary-sig-arg\">**Nvector_kwds</span>)</span><br />\n      Convert this point to <code>Nvector</code> components, <i>including \n      height</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">latlonBase.LatLonBase</a></code></b>:\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#PointsIter\">PointsIter</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#__eq__\">__eq__</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#__ne__\">__ne__</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#antipode\">antipode</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#bounds\">bounds</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#boundsOf\">boundsOf</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#chordTo\">chordTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#circin6\">circin6</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#circum3\">circum3</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#circum4_\">circum4_</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#compassAngle\">compassAngle</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#compassAngleTo\">compassAngleTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#cosineAndoyerLambertTo\">cosineAndoyerLambertTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#cosineForsytheAndoyerLambertTo\">cosineForsytheAndoyerLambertTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#cosineLawTo\">cosineLawTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#destinationXyz\">destinationXyz</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#equals\">equals</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#equals3\">equals3</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#equirectangularTo\">equirectangularTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#euclideanTo\">euclideanTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#flatLocalTo\">flatLocalTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#flatPolarTo\">flatPolarTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#hartzell\">hartzell</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#haversineTo\">haversineTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#height4\">height4</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#heightStr\">heightStr</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#hubenyTo\">hubenyTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isantipode\">isantipode</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isantipodeTo\">isantipodeTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isequalTo\">isequalTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isequalTo3\">isequalTo3</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#latlon2\">latlon2</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#latlon2round\">latlon2round</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#latlon_\">latlon_</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#nearestOn6\">nearestOn6</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#nearestTo\">nearestTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#normal\">normal</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#philam2\">philam2</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#points\">points</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#points2\">points2</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#radii11\">radii11</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#rhumbLine\">rhumbLine</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#thomasTo\">thomasTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#to2ab\">to2ab</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#to3llh\">to3llh</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#to3xyz\">to3xyz</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toCartesian\">toCartesian</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toDatum\">toDatum</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toEcef\">toEcef</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toNormal\">toNormal</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toVector\">toVector</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toVector3d\">toVector3d</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toWm\">toWm</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#vincentysTo\">vincentysTo</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#others\">others</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#toRepr\">toRepr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html\">ecefLocals._EcefLocal</a></code></b>:\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toAer\">toAer</a></code>,\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toEnu\">toEnu</a></code>,\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toLocal\">toLocal</a></code>,\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toLtp\">toLtp</a></code>,\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toNed\">toNed</a></code>,\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toXyz\">toXyz</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html#datum\" class=\"summary-name\">datum</a><br />\n      Class <code>property</code> with a <code>.name</code> attribute.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html#napieradius\" class=\"summary-name\">napieradius</a><br />\n      Class <code>property</code> with a <code>.name</code> attribute.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html#sphericalLatLon\" class=\"summary-name\">sphericalLatLon</a><br />\n      Get this <code>LatLon</code>'s spherical class.\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">latlonBase.LatLonBase</a></code></b>:\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#clipid\">clipid</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#ellipsoidalLatLon\">ellipsoidalLatLon</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#height\">height</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isEllipsoidal\">isEllipsoidal</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isSpherical\">isSpherical</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isnormal\">isnormal</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#lam\">lam</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#lat\">lat</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#latlon\">latlon</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#latlonheight\">latlonheight</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#lon\">lon</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#phi\">phi</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#philam\">philam</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#philamheight\">philamheight</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#xyz\">xyz</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#xyz3\">xyz3</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#xyzh\">xyzh</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html\">ecefLocals._EcefLocal</a></code></b>:\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#Ecef\">Ecef</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">latlonh</span>,\n        <span class=\"sig-arg\">lon</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">height</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">datum</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Create a spherical <code>LatLon</code> point frome the given lat-, \n  longitude and height on the given datum.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>latlonh</code></strong> - Latitude (<code>degrees</code> or DMS <code>str</code> with N or \n          S suffix) or a previous <code>LatLon</code> instance provided \n          <code><b>lon</b>=None</code>.</li>\n        <li><strong class=\"pname\"><code>lon</code></strong> - Longitude (<code>degrees</code> or DMS <code>str</code> with E or\n          W suffix) or C(None), indicating <b><code>latlonh</code></b> is a\n          <code>LatLon</code>.</li>\n        <li><strong class=\"pname\"><code>height</code></strong> - Optional height above (or below) the earth surface \n          (<code>meter</code>, same units as the datum's radius or axes).</li>\n        <li><strong class=\"pname\"><code>datum</code></strong> - Optional, spherical datum to use (<a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>, \n          <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a>, <a \n          href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>) or the mean earth radius \n          (<code>meter</code>, conventionally).</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> \n          <b><code>lat</code></b> and <b><code>lon</code></b> \n          (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>New instance (<code>LatLon</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>latlonh</code></b> or <b><code>datum</code></b> \n        not spherical.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"bearingTo2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">bearingTo2</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">raiser</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the initial and final bearing (forward and reverse azimuth) \n  from this to an other point.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>other</code></strong> - The other point (<code>LatLon</code>).</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll the \n          <b><code>other</code></b> point (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.namedTuples.Bearing2Tuple-class.html\" \n          class=\"link\">Bearing2Tuple</a><code>(initial, final)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - The <b><code>other</code></b> point is not spherical.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Methods <code>initialBearingTo</code> and \n        <code>finalBearingTo</code>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"finalBearingTo\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">finalBearingTo</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">raiser</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the final bearing (reverse azimuth) from this to an other \n  point.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>other</code></strong> - The other point (spherical <code>LatLon</code>).</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll the \n          <b><code>other</code></b> point (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Final bearing (compass <code>degrees360</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - The <b><code>other</code></b> point is not spherical.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"intersecant2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">intersecant2</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">circle</span>,\n        <span class=\"sig-arg\">point</span>,\n        <span class=\"sig-arg\">other</span>,\n        <span class=\"sig-arg\">radius</span>=<span class=\"sig-default\">6371008.771415</span>,\n        <span class=\"sig-arg\">exact</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">height</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the intersections of a circle and a (great circle) line given \n  as two points or as a point and bearing.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>circle</code></strong> - Radius of the circle centered at this location \n          (<code>meter</code>, same units as <b><code>radius</code></b>) or\n          a point on the circle (same <code>LatLon</code> class).</li>\n        <li><strong class=\"pname\"><code>point</code></strong> - A point on the (great circle) line (same <code>LatLon</code> \n          class).</li>\n        <li><strong class=\"pname\"><code>other</code></strong> - An other point <i>on</i> (same <code>LatLon</code> class) or the \n          bearing at <b><code>point</code></b> <i>of</i> the (great circle)\n          line (compass <code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>radius</code></strong> - Mean earth radius (<code>meter</code>, conventionally).</li>\n        <li><strong class=\"pname\"><code>exact</code></strong> - If <code>True</code>, use the <i>exact</i> rhumb methods for \n          azimuth, destination and distance, if <code>False</code> use the \n          basic rhumb methods (<code>bool</code>) or if <code>None</code> \n          use the <i>great circle</i> methods.</li>\n        <li><strong class=\"pname\"><code>height</code></strong> - Optional height for the intersection points (<code>meter</code>, \n          conventionally) or <code>None</code> for interpolated heights.</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll \n          <b><code>circle</code></b>, <b><code>point</code></b> and \n          <b><code>other</code></b> iff points (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>2-Tuple of the intersection points (representing a chord), each \n          an instance of the <b><code>point</code></b> class.  Both points \n          are the same instance if the (great circle) line is tangent to \n          the circle.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.IntersectionError-class.html\">IntersectionError</a></strong></code> - The circle and line do not intersect.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>point</code></b>, <b><code>circle</code></b> or \n        <b><code>other</code></b>.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.UnitError-class.html\">UnitError</a></strong></code> - Invalid <b><code>circle</code></b>, <b><code>other</code></b>, \n        <b><code>radius</code></b>, <b><code>exact</code></b>, \n        <b><code>height</code></b> or <b><code>napieradius</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.latlonBase.LatLonBase-class.html#intersecant2\">latlonBase.LatLonBase.intersecant2</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"maxLat\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">maxLat</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">bearing</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the maximum latitude reached when travelling on a great circle \n  on given bearing from this point based on Clairaut's formula.</p>\n  <p>The maximum latitude is independent of longitude and the same for all \n  points on a given latitude.</p>\n  <p>Negate the result for the minimum latitude (on the Southern \n  hemisphere).</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>bearing</code></strong> - Initial bearing (compass <code>degrees360</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Maximum latitude (<code>degrees90</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>bearing</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"minLat\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">minLat</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">bearing</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the minimum latitude reached when travelling on a great circle \n  on given bearing from this point.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>bearing</code></strong> - Initial bearing (compass <code>degrees360</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Minimum latitude (<code>degrees90</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>bearing</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <a \n        href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html#maxLat\"\n        class=\"link\">maxLat</a> for more details.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"parse\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">parse</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">strllh</span>,\n        <span class=\"sig-arg\">height</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">sep</span>=<span class=\"sig-default\">','</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Parse a string representing a similar, spherical <code>LatLon</code> \n  point, consisting of <code>&quot;lat, lon[, height]&quot;</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>strllh</code></strong> - Lat, lon and optional height (<code>str</code>), see function <a \n          href=\"pygeodesy.dms-module.html#parse3llh\" \n          class=\"link\">pygeodesy.parse3llh</a>.</li>\n        <li><strong class=\"pname\"><code>height</code></strong> - Optional, default height (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>sep</code></strong> - Optional separator (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>), \n          overriding this name.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The similar point (spherical <code>LatLon</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.ParseError-class.html\">ParseError</a></strong></code> - Invalid <b><code>strllh</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"rhumbAzimuthTo\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">rhumbAzimuthTo</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>,\n        <span class=\"sig-arg\">radius</span>=<span class=\"sig-default\">6371008.771415</span>,\n        <span class=\"sig-arg\">exact</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">b360</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the azimuth (bearing) of a rhumb line (loxodrome) between this \n  and an other (spherical) point.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>other</code></strong> - The other point (spherical <code>LatLon</code>).</li>\n        <li><strong class=\"pname\"><code>radius</code></strong> - Earth radius (<code>meter</code>) or earth model (<a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>, \n          <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a> or <a \n          href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>exact</code></strong> - If <code>True</code>, use <i>Elliptic, Kr&#252;ger</i> <a \n          href=\"pygeodesy.rhumb.ekx.Rhumb-class.html\" \n          class=\"link\">Rhumb</a> (<code>bool</code>), default \n          <code>False</code> for backward compatibility.</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll the \n          <b><code>other</code></b> point (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>b360</code></strong> - If <code>True</code>, return the azimuth in the bearing range.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Rhumb azimuth (compass <code>degrees180</code> or \n          <code>degrees360</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - The <b><code>other</code></b> point is incompatible or \n        <b><code>radius</code></b> is invalid.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.latlonBase.LatLonBase-class.html#rhumbAzimuthTo\">latlonBase.LatLonBase.rhumbAzimuthTo</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"rhumbBearingTo\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">rhumbBearingTo</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use method <code>.rhumbAzimuthTo</code>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_method</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"rhumbDestination\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">rhumbDestination</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">distance</span>,\n        <span class=\"sig-arg\">azimuth</span>,\n        <span class=\"sig-arg\">radius</span>=<span class=\"sig-default\">6371008.771415</span>,\n        <span class=\"sig-arg\">height</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">exact</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the destination point having travelled the given distance from \n  this point along a rhumb line (loxodrome) of the given azimuth.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>distance</code></strong> - Distance travelled (<code>meter</code>, same units as \n          <b><code>radius</code></b>), may be negative if \n          <code><b>exact</b>=True</code>.</li>\n        <li><strong class=\"pname\"><code>azimuth</code></strong> - Azimuth (bearing) of the rhumb line (compass \n          <code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>radius</code></strong> - Earth radius (<code>meter</code>) or earth model (<a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>, \n          <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a> or <a \n          href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>) if <code><b>exact</b>=True</code>.</li>\n        <li><strong class=\"pname\"><code>height</code></strong> - Optional height, overriding the default height \n          (<code>meter</code>.</li>\n        <li><strong class=\"pname\"><code>exact</code></strong> - If <code>True</code>, use <i>Elliptic, Kr&#252;ger</i> <a \n          href=\"pygeodesy.rhumb.ekx.Rhumb-class.html\" \n          class=\"link\">Rhumb</a> (<code>bool</code>), default \n          <code>False</code> for backward compatibility.</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The destination point (spherical <code>LatLon</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>distance</code></b>, <b><code>azimuth</code></b>, \n        <b><code>radius</code></b> or <b><code>height</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.latlonBase.LatLonBase-class.html#rhumbDestination\">latlonBase.LatLonBase.rhumbDestination</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"rhumbDistanceTo\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">rhumbDistanceTo</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>,\n        <span class=\"sig-arg\">radius</span>=<span class=\"sig-default\">6371008.771415</span>,\n        <span class=\"sig-arg\">exact</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the distance from this to an other point along a rhumb line \n  (loxodrome).</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>other</code></strong> - The other point (spherical <code>LatLon</code>).</li>\n        <li><strong class=\"pname\"><code>radius</code></strong> - Earth radius (<code>meter</code>) or earth model (<a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>, \n          <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a> or <a \n          href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>) if <code><b>exact</b>=True</code>.</li>\n        <li><strong class=\"pname\"><code>exact</code></strong> - If <code>True</code>, use <i>Elliptic, Kr&#252;ger</i> <a \n          href=\"pygeodesy.rhumb.ekx.Rhumb-class.html\" \n          class=\"link\">Rhumb</a> (<code>bool</code>), default \n          <code>False</code> for backward compatibility.</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll the \n          <b><code>other</code></b> point (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Distance (<code>meter</code>, the same units as \n          <b><code>radius</code></b> or <code>radians</code> if \n          <code><b>radius</b> is None</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - The <b><code>other</code></b> point is incompatible.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>radius</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.latlonBase.LatLonBase-class.html#rhumbDistanceTo\">latlonBase.LatLonBase.rhumbDistanceTo</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"rhumbIntersecant2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">rhumbIntersecant2</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">circle</span>,\n        <span class=\"sig-arg\">point</span>,\n        <span class=\"sig-arg\">other</span>,\n        <span class=\"sig-arg\">radius</span>=<span class=\"sig-default\">6371008.771415</span>,\n        <span class=\"sig-arg\">exact</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">height</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the intersections of a circle and a rhumb line given as two \n  points and as a point and azimuth.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>circle</code></strong> - Radius of the circle centered at this location \n          (<code>meter</code>, same units as <b><code>radius</code></b>) or\n          a point on the circle (same <code>LatLon</code> class).</li>\n        <li><strong class=\"pname\"><code>point</code></strong> - The rhumb line's start point (same <code>LatLon</code> class).</li>\n        <li><strong class=\"pname\"><code>other</code></strong> - An other point (this <i>on</i> <code>LatLon</code>) or the \n          azimuth <i>of</i> (compass <code>degrees</code>) the rhumb line.</li>\n        <li><strong class=\"pname\"><code>radius</code></strong> - Mean earth radius (<code>meter</code>, conventionally).</li>\n        <li><strong class=\"pname\"><code>exact</code></strong> - If <code>True</code>, use the <i>exact</i> rhumb methods for \n          azimuth, destination and distance, if <code>False</code> use the \n          basic rhumb methods (<code>bool</code>) or if <code>None</code> \n          use the <i>great circle</i> methods.</li>\n        <li><strong class=\"pname\"><code>height</code></strong> - Optional height for the intersection points (<code>meter</code>, \n          conventionally) or <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll the \n          points <b><code>circle</code></b>, <b><code>point</code></b> \n          and/or <b><code>other</code></b> (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>2-Tuple of the intersection points (representing a chord), each \n          an instance of this class.  For a tangent line, both points are \n          the same instance, wrapped or <i>normalized</i>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.IntersectionError-class.html\">IntersectionError</a></strong></code> - The circle and line do not intersect.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>point</code></b>, <b><code>circle</code></b> or \n        <b><code>other</code></b>.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.UnitError-class.html\">UnitError</a></strong></code> - Invalid <b><code>circle</code></b>, <b><code>other</code></b>, \n        <b><code>radius</code></b>, <b><code>exact</code></b> or \n        <b><code>height</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.latlonBase.LatLonBase-class.html#rhumbIntersecant2\">latlonBase.LatLonBase.rhumbIntersecant2</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"rhumbMidpointTo\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">rhumbMidpointTo</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>,\n        <span class=\"sig-arg\">height</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">radius</span>=<span class=\"sig-default\">6371008.771415</span>,\n        <span class=\"sig-arg\">exact</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">fraction</span>=<span class=\"sig-default\">0.5</span>,\n        <span class=\"sig-arg\">**wrap_name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the (loxodromic) midpoint on the rhumb line between this and an\n  other point.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>other</code></strong> - The other point (spherical LatLon).</li>\n        <li><strong class=\"pname\"><code>height</code></strong> - Optional height, overriding the mean height (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>radius</code></strong> - Earth radius (<code>meter</code>) or earth model (<a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>, \n          <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a> or <a \n          href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>exact</code></strong> - If <code>True</code>, use <i>Elliptic, Kr&#252;ger</i> <a \n          href=\"pygeodesy.rhumb.ekx.Rhumb-class.html\" \n          class=\"link\">Rhumb</a> (<code>bool</code>), default \n          <code>False</code> for backward compatibility.</li>\n        <li><strong class=\"pname\"><code>fraction</code></strong> - Midpoint location from this point (<code>scalar</code>), may be \n          negative if <code><b>exact</b>=True</code>.</li>\n        <li><strong class=\"pname\"><code>wrap_name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>) and \n          optional keyword argument <code><b>wrap</b>=False</code>, if \n          <code>True</code>, wrap or <i>normalize</i> and unroll the \n          <b><code>other</code></b> point (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The (mid)point at the given <b><code>fraction</code></b> along \n          the rhumb line (spherical <code>LatLon</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - The <b><code>other</code></b> point is incompatible.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>height</code></b> or <b><code>fraction</code></b></li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.latlonBase.LatLonBase-class.html#rhumbMidpointTo\">latlonBase.LatLonBase.rhumbMidpointTo</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toNvector\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toNvector</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">Nvector</span>=<span class=\"sig-default\">&lt;class 'pygeodesy.nvectorBase.NvectorBase'&gt;</span>,\n        <span class=\"sig-arg\">**Nvector_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert this point to <code>Nvector</code> components, <i>including \n  height</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>Nvector_kwds</code></strong> - Optional, additional <b><code>Nvector</code></b> keyword \n          arguments, ignored if <code><b>Nvector</b> is None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>An <b><code>Nvector</code></b> or a <a \n          href=\"pygeodesy.namedTuples.Vector4Tuple-class.html\" \n          class=\"link\">Vector4Tuple</a><code>(x, y, z, h)</code> if \n          <b><code>Nvector</code> is None</b>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>Nvector</code></b> or \n        <b><code>Nvector_kwds</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toNvector\">latlonBase.LatLonBase.toNvector</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"datum\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">datum</h3>\n  <p>Class <code>property</code> with a <code>.name</code> attribute.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">datum(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get this point's datum (<a href=\"pygeodesy.datums.Datum-class.html\" \nclass=\"link\">Datum</a>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">datum(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">datum</span>)</span>\n        - Set this point's datum <i>without conversion</i> (<a \nhref=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>, <a \nhref=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \nclass=\"link\">Ellipsoid</a>, <a \nhref=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \nclass=\"link\">Ellipsoid2</a>, <a \nhref=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \nclass=\"link\">a_f2Tuple</a>) or <code>scalar</code> spherical earth radius).\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"napieradius\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">napieradius</h3>\n  <p>Class <code>property</code> with a <code>.name</code> attribute.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">napieradius(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <i>Napier</i> radius (<code>meter</code>, conventionally).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">napieradius(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">radius</span>)</span>\n        - Set this <i>Napier</i> radius (<code>meter</code>, conventionally) or \n<code>0</code>.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"sphericalLatLon\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">sphericalLatLon</h3>\n  <p>Get this <code>LatLon</code>'s spherical class.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">sphericalLatLon(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get this <code>LatLon</code>'s spherical class.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.sphericalNvector-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.sphericalNvector</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        Module&nbsp;sphericalNvector\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.sphericalNvector-module.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== MODULE DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Module sphericalNvector</h1><p class=\"nomargin-top\"></p>\n<p>Spherical, <code>N-vector</code>-based geodesy.</p>\n  <p>N-vector-based classes geodetic (lat-/longitude) <a \n  href=\"pygeodesy.sphericalNvector.LatLon-class.html\" \n  class=\"link\">LatLon</a>, geocentric (ECEF) <a \n  href=\"pygeodesy.sphericalNvector.Cartesian-class.html\" \n  class=\"link\">Cartesian</a> and <code>Nvector</code> and functions <a \n  href=\"pygeodesy.sphericalNvector-module.html#areaOf\" \n  class=\"link\">areaOf</a>, <a \n  href=\"pygeodesy.sphericalNvector-module.html#intersection\" \n  class=\"link\">intersection</a>, <a \n  href=\"pygeodesy.sphericalNvector-module.html#meanOf\" \n  class=\"link\">meanOf</a>, <a \n  href=\"pygeodesy.sphericalNvector-module.html#nearestOn3\" \n  class=\"link\">nearestOn3</a>, <a \n  href=\"pygeodesy.sphericalNvector-module.html#perimeterOf\" \n  class=\"link\">perimeterOf</a>, <a \n  href=\"pygeodesy.sphericalNvector-module.html#sumOf\" \n  class=\"link\">sumOf</a>, <a \n  href=\"pygeodesy.sphericalNvector-module.html#triangulate\" \n  class=\"link\">triangulate</a> and <a \n  href=\"pygeodesy.sphericalNvector-module.html#trilaterate\" \n  class=\"link\">trilaterate</a>, <i>all spherical</i>.</p>\n  <p>Pure Python implementation of n-vector-based spherical geodetic \n  (lat-/longitude) methods, transcoded from JavaScript originals by <i>(C) \n  Chris Veness 2011-2024</i>, published under the same MIT Licence**.  See \n  <a href=\"https://www.Movable-Type.co.UK/scripts/latlong-vectors.html\" \n  target=\"_top\">Vector-based geodesy</a> and <a \n  href=\"https://www.Movable-Type.co.UK/scripts/geodesy/docs/module-latlon-nvector-spherical.html\"\n  target=\"_top\">Module latlon-nvector-spherical</a>.</p>\n  <p>Tools for working with points and lines on (a spherical model of) the \n  earth&#8217;s surface using using n-vectors rather than the more common \n  spherical trigonometry.  N-vectors make many calculations much simpler, \n  and easier to follow, compared with the trigonometric equivalents.</p>\n  <p>Based on Kenneth Gade&#8217;s <a \n  href=\"https://www.NavLab.net/Publications/A_Nonsingular_Horizontal_Position_Representation.pdf\"\n  target=\"_top\">&#8216;Non-singular Horizontal Position Representation&#8217;</a>, The \n  Journal of Navigation (2010), vol 63, nr 3, pp 395-417.</p>\n  <p>Note that the formulations below take x =&gt; 0&#176;N,0&#176;E, y =&gt; \n  0&#176;N,90&#176;E and z =&gt; 90&#176;N while Gade uses x =&gt; 90&#176;N, y =&gt; 0&#176;N,90&#176;E,\n  z =&gt; 0&#176;N,0&#176;E.</p>\n  <p>Also note that on a spherical earth model, an n-vector is equivalent \n  to a normalised version of an (ECEF) cartesian coordinate.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Version:</strong>\n        25.05.27\n      </p>\n</div><!-- ==================== CLASSES ==================== -->\n<a name=\"section-Classes\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Classes</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.sphericalNvector.Cartesian-class.html\" class=\"summary-name\">Cartesian</a><br />\n      Extended to convert geocentric, <a \n        href=\"pygeodesy.sphericalNvector.Cartesian-class.html\" \n        class=\"link\">Cartesian</a> points to <code>Nvector</code> and \n        n-vector-based, spherical <a \n        href=\"pygeodesy.sphericalNvector.LatLon-class.html\" \n        class=\"link\">LatLon</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.sphericalNvector.LatLon-class.html\" class=\"summary-name\">LatLon</a><br />\n      New n-vector-based point on a spherical earth model.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.sphericalNvector.Nvector-class.html\" class=\"summary-name\">Nvector</a><br />\n      An n-vector is a position representation using a (unit) vector \n        normal to the earth's surface.\n    </td>\n  </tr>\n</table>\n<!-- ==================== FUNCTIONS ==================== -->\n<a name=\"section-Functions\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Functions</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.sphericalNvector-module.html#ispolar\" class=\"summary-sig-name\">ispolar</a>(<span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Check whether a polygon encloses a pole.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.sphericalNvector-module.html#areaOf\" class=\"summary-sig-name\">areaOf</a>(<span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">radius</span>=<span class=\"summary-sig-default\">6371008.771415</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">polar</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Calculate the area of a (spherical) polygon or composite (with great \n      circle arcs joining consecutive points).</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.sphericalNvector-module.html#intersecant2\" class=\"summary-sig-name\">intersecant2</a>(<span class=\"summary-sig-arg\">center</span>,\n        <span class=\"summary-sig-arg\">circle</span>,\n        <span class=\"summary-sig-arg\">point</span>,\n        <span class=\"summary-sig-arg\">other</span>,\n        <span class=\"summary-sig-arg\">**radius_exact_height_wrap</span>)</span><br />\n      Compute the intersections of a circle and a (great circle) line given\n      as two points or as a point and bearing.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.sphericalNvector-module.html#intersection\" class=\"summary-sig-name\">intersection</a>(<span class=\"summary-sig-arg\">start1</span>,\n        <span class=\"summary-sig-arg\">end1</span>,\n        <span class=\"summary-sig-arg\">start2</span>,\n        <span class=\"summary-sig-arg\">end2</span>,\n        <span class=\"summary-sig-arg\">height</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">**LatLon_and_kwds</span>)</span><br />\n      Locate an intersection point of two (great circle) lines each defined\n      by two points or by a point and an (initial) bearing.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.sphericalNvector-module.html#intersection2\" class=\"summary-sig-name\">intersection2</a>(<span class=\"summary-sig-arg\">start1</span>,\n        <span class=\"summary-sig-arg\">end1</span>,\n        <span class=\"summary-sig-arg\">start2</span>,\n        <span class=\"summary-sig-arg\">end2</span>,\n        <span class=\"summary-sig-arg\">height</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">**LatLon_and_kwds</span>)</span><br />\n      Locate both intersections of two (great circle) lines each defined by\n      two points or by a point and an (initial) bearing.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.sphericalNvector-module.html#meanOf\" class=\"summary-sig-name\">meanOf</a>(<span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">height</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">**LatLon_and_kwds</span>)</span><br />\n      Compute the <i>geographic</i> mean of the supplied points.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.sphericalNvector-module.html#nearestOn2\" class=\"summary-sig-name\">nearestOn2</a>(<span class=\"summary-sig-arg\">point</span>,\n        <span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">**closed_radius_height</span>)</span><br />\n      DEPRECATED, use method <a \n      href=\"pygeodesy.sphericalNvector-module.html#nearestOn3\" \n      class=\"link\">sphericalNvector.nearestOn3</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.sphericalNvector-module.html#nearestOn3\" class=\"summary-sig-name\">nearestOn3</a>(<span class=\"summary-sig-arg\">point</span>,\n        <span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">closed</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">radius</span>=<span class=\"summary-sig-default\">6371008.771415</span>,\n        <span class=\"summary-sig-arg\">height</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Locate the point on a polygon (with great circle arcs joining \n      consecutive points) closest to an other point.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.sphericalNvector-module.html#perimeterOf\" class=\"summary-sig-name\">perimeterOf</a>(<span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">closed</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">radius</span>=<span class=\"summary-sig-default\">6371008.771415</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Compute the perimeter of a (spherical) polygon or composite (with \n      great circle arcs joining consecutive points).</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.sphericalNvector-module.html#sumOf\" class=\"summary-sig-name\">sumOf</a>(<span class=\"summary-sig-arg\">nvectors</span>,\n        <span class=\"summary-sig-arg\">Vector</span>=<span class=\"summary-sig-default\">&lt;class 'pygeodesy.sphericalNvector.Nvector'&gt;</span>,\n        <span class=\"summary-sig-arg\">h</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**Vector_kwds</span>)</span><br />\n      Return the <i>vectorial</i> sum of two or more n-vectors.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.sphericalNvector-module.html#triangulate\" class=\"summary-sig-name\">triangulate</a>(<span class=\"summary-sig-arg\">point1</span>,\n        <span class=\"summary-sig-arg\">bearing1</span>,\n        <span class=\"summary-sig-arg\">point2</span>,\n        <span class=\"summary-sig-arg\">bearing2</span>,\n        <span class=\"summary-sig-arg\">height</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">LatLon</span>=<span class=\"summary-sig-default\">&lt;class 'pygeodesy.sphericalNvector.LatLon'&gt;</span>,\n        <span class=\"summary-sig-arg\">**LatLon_kwds</span>)</span><br />\n      Locate a point given two known, reference points and the (initial) \n      bearing from those points.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.sphericalNvector-module.html#trilaterate\" class=\"summary-sig-name\">trilaterate</a>(<span class=\"summary-sig-arg\">point1</span>,\n        <span class=\"summary-sig-arg\">distance1</span>,\n        <span class=\"summary-sig-arg\">point2</span>,\n        <span class=\"summary-sig-arg\">distance2</span>,\n        <span class=\"summary-sig-arg\">point3</span>,\n        <span class=\"summary-sig-arg\">distance3</span>,\n        <span class=\"summary-sig-arg\">radius</span>=<span class=\"summary-sig-default\">6371008.771415</span>,\n        <span class=\"summary-sig-arg\">height</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">useZ</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">LatLon</span>=<span class=\"summary-sig-default\">&lt;class 'pygeodesy.sphericalNvector.LatLon'&gt;</span>,\n        <span class=\"summary-sig-arg\">**LatLon_kwds</span>)</span><br />\n      Locate a point at given distances from three other points.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== VARIABLES ==================== -->\n<a name=\"section-Variables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Variables</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"__all__\"></a><span class=\"summary-name\">__all__</span> = <code title=\"_ALL_LAZY.sphericalNvector\">_ALL_LAZY.sphericalNvector</code>\n    </td>\n  </tr>\n</table>\n<!-- ==================== FUNCTION DETAILS ==================== -->\n<a name=\"section-FunctionDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Function Details</span></td>\n</tr>\n</table>\n<a name=\"ispolar\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">ispolar</span>&nbsp;(<span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Check whether a polygon encloses a pole.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>points</code></strong> - The polygon points (<code>LatLon</code>[]).</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll the \n          <b><code>points</code></b> (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>True</code> if the polygon encloses a pole, \n          <code>False</code> otherwise.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.PointsError-class.html\">PointsError</a></strong></code> - Insufficient number of <b><code>points</code></b></li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Some <b><code>points</code></b> are not <code>LatLon</code> or \n        don't have <code>bearingTo2</code>, <code>initialBearingTo</code> \n        and <code>finalBearingTo</code> methods.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"areaOf\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">areaOf</span>&nbsp;(<span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">radius</span>=<span class=\"sig-default\">6371008.771415</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">polar</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Calculate the area of a (spherical) polygon or composite (with great \n  circle arcs joining consecutive points).</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>points</code></strong> - The polygon points or clips (<code>LatLon</code>[], <a \n          href=\"pygeodesy.booleans.BooleanFHP-class.html\" \n          class=\"link\">BooleanFHP</a> or <a \n          href=\"pygeodesy.booleans.BooleanGH-class.html\" \n          class=\"link\">BooleanGH</a>).</li>\n        <li><strong class=\"pname\"><code>radius</code></strong> - Mean earth radius (<code>meter</code>) or <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll the \n          <b><code>points</code></b> (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>polar</code></strong> - Use of <code><b>polar</b>=True</code> not implemented \n          (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Polygon area (<code>meter</code> <i>squared</i>, same units as \n          <b><code>radius</code></b>, or <code>radians</code> if \n          <code><b>radius</b> is None</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.PointsError-class.html\">PointsError</a></strong></code> - Insufficient number of <b><code>points</code></b>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Some <b><code>points</code></b> are not <a \n        href=\"pygeodesy.sphericalNvector.LatLon-class.html\" \n        class=\"link\">LatLon</a>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Functions <a href=\"pygeodesy.points-module.html#areaOf\" \n        class=\"link\">pygeodesy.areaOf</a>, <a \n        href=\"pygeodesy.sphericalTrigonometry-module.html#areaOf\" \n        class=\"link\">sphericalTrigonometry.areaOf</a> and <a \n        href=\"pygeodesy.ellipsoidalKarney-module.html#areaOf\" \n        class=\"link\">ellipsoidalKarney.areaOf</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"intersecant2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">intersecant2</span>&nbsp;(<span class=\"sig-arg\">center</span>,\n        <span class=\"sig-arg\">circle</span>,\n        <span class=\"sig-arg\">point</span>,\n        <span class=\"sig-arg\">other</span>,\n        <span class=\"sig-arg\">**radius_exact_height_wrap</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the intersections of a circle and a (great circle) line given \n  as two points or as a point and bearing.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>center</code></strong> - Center of the circle (<a \n          href=\"pygeodesy.sphericalNvector.LatLon-class.html\" \n          class=\"link\">LatLon</a>).</li>\n        <li><strong class=\"pname\"><code>circle</code></strong> - Radius of the circle (<code>meter</code>, same units as the earth\n          <b><code>radius</code></b>) or a point on the circle (<a \n          href=\"pygeodesy.sphericalNvector.LatLon-class.html\" \n          class=\"link\">LatLon</a>).</li>\n        <li><strong class=\"pname\"><code>point</code></strong> - A point on the (great circle) line (<a \n          href=\"pygeodesy.sphericalNvector.LatLon-class.html\" \n          class=\"link\">LatLon</a>).</li>\n        <li><strong class=\"pname\"><code>other</code></strong> - An other point on the (great circle) line (<a \n          href=\"pygeodesy.sphericalNvector.LatLon-class.html\" \n          class=\"link\">LatLon</a>) or the bearing at the \n          <b><code>point</code></b> (compass <code>degrees360</code>).</li>\n        <li><strong class=\"pname\"><code>radius_exact_height_wrap</code></strong> - Optional keyword arguments, see method <a \n          href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html#intersecant2\"\n          class=\"link\">intersecant2</a> for further details.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>2-Tuple of the intersection points (representing a chord), each \n          an instance of the <b><code>point</code></b> class.  Both points \n          are the same instance if the (great circle) line is tangent to \n          the circle.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.IntersectionError-class.html\">IntersectionError</a></strong></code> - The circle and line do not intersect.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - If <b><code>center</code></b>, <b><code>point</code></b>, \n        <b><code>circle</code></b> or <b><code>other</code></b> not <a \n        href=\"pygeodesy.sphericalNvector.LatLon-class.html\" \n        class=\"link\">LatLon</a>.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.UnitError-class.html\">UnitError</a></strong></code> - Invalid <b><code>circle</code></b>, <b><code>other</code></b>, \n        <b><code>radius</code></b>, <b><code>exact</code></b>, \n        <b><code>height</code></b> or <b><code>napieradius</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"intersection\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">intersection</span>&nbsp;(<span class=\"sig-arg\">start1</span>,\n        <span class=\"sig-arg\">end1</span>,\n        <span class=\"sig-arg\">start2</span>,\n        <span class=\"sig-arg\">end2</span>,\n        <span class=\"sig-arg\">height</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">**LatLon_and_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Locate an intersection point of two (great circle) lines each defined \n  by two points or by a point and an (initial) bearing.</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd>The intersection point (<a \n          href=\"pygeodesy.sphericalNvector.LatLon-class.html\" \n          class=\"link\">LatLon</a>) or if <code><b>LatLon</b>=None</code>, a\n          cartesian <a href=\"pygeodesy.ecef.Ecef9Tuple-class.html\" \n          class=\"link\">Ecef9Tuple</a><code>(x, y, z, lat, lon, height, C, \n          M, datum)</code> with <code>C</code> and <code>M</code> if \n          available.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a \n        href=\"pygeodesy.sphericalNvector-module.html#intersection2\" \n        class=\"link\">intersection2</a> for further details.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"intersection2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">intersection2</span>&nbsp;(<span class=\"sig-arg\">start1</span>,\n        <span class=\"sig-arg\">end1</span>,\n        <span class=\"sig-arg\">start2</span>,\n        <span class=\"sig-arg\">end2</span>,\n        <span class=\"sig-arg\">height</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">**LatLon_and_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Locate both intersections of two (great circle) lines each defined by \n  two points or by a point and an (initial) bearing.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>start1</code></strong> - Start point of the first line (<a \n          href=\"pygeodesy.sphericalNvector.LatLon-class.html\" \n          class=\"link\">LatLon</a>).</li>\n        <li><strong class=\"pname\"><code>end1</code></strong> - End point of the first line (<a \n          href=\"pygeodesy.sphericalNvector.LatLon-class.html\" \n          class=\"link\">LatLon</a>) or the bearing at \n          <b><code>start1</code></b> (compass <code>degrees360</code>).</li>\n        <li><strong class=\"pname\"><code>start2</code></strong> - Start point of the second line (<a \n          href=\"pygeodesy.sphericalNvector.LatLon-class.html\" \n          class=\"link\">LatLon</a>).</li>\n        <li><strong class=\"pname\"><code>end2</code></strong> - End point of the second line (<a \n          href=\"pygeodesy.sphericalNvector.LatLon-class.html\" \n          class=\"link\">LatLon</a>) or the bearing at \n          <b><code>start2</code></b> (compass <code>degrees360</code>).</li>\n        <li><strong class=\"pname\"><code>height</code></strong> - Optional height at the intersection and antipodal point, \n          overriding the mean height (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll \n          <b><code>start2</code></b> and both <b><code>end*</code></b> \n          points (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>LatLon_and_kwds</code></strong> - Optional class <code><b>LatLon</b>=</code><a \n          href=\"pygeodesy.sphericalNvector.LatLon-class.html\" \n          class=\"link\">LatLon</a> to return the intersection points and \n          optionally, additional <b><code>LatLon</code></b> keyword \n          arguments, ignored if <code><b>LatLon</b> is None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>2-Tuple <code>(intersection, antipode)</code>, each a \n          (<b><code>LatLon</code></b>) or if \n          <code><b>LatLon</b>=None</code>, a cartesian <a \n          href=\"pygeodesy.ecef.Ecef9Tuple-class.html\" \n          class=\"link\">Ecef9Tuple</a><code>(x, y, z, lat, lon, height, C, \n          M, datum)</code> with <code>C</code> and <code>M</code> if \n          available.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - If <b><code>start*</code></b> or <b><code>end*</code></b> is not <a\n        href=\"pygeodesy.sphericalNvector.LatLon-class.html\" \n        class=\"link\">LatLon</a>.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Intersection is ambiguous or infinite or the lines are parallel, \n        coincident or null.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a \n        href=\"pygeodesy.sphericalNvector-module.html#intersection\" \n        class=\"link\">sphericalNvector.intersection</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"meanOf\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">meanOf</span>&nbsp;(<span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">height</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">**LatLon_and_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the <i>geographic</i> mean of the supplied points.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>points</code></strong> - Array of points to be averaged (<a \n          href=\"pygeodesy.sphericalNvector.LatLon-class.html\" \n          class=\"link\">LatLon</a>[]).</li>\n        <li><strong class=\"pname\"><code>height</code></strong> - Optional height, overriding the mean height (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> \n          <b><code>points</code></b> (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>LatLon_and_kwds</code></strong> - Optional class <code><b>LatLon</b>=</code><a \n          href=\"pygeodesy.sphericalNvector.LatLon-class.html\" \n          class=\"link\">LatLon</a> to return the mean point and optionally, \n          additional <b><code>LatLon</code></b> keyword arguments, ignored \n          if <code><b>LatLon</b> is None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Point at geographic mean and mean height \n          (<b><code>LatLon</code></b>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.PointsError-class.html\">PointsError</a></strong></code> - Insufficient number of <b><code>points</code></b> or some \n        <b><code>points</code></b> are not <code>LatLon</code>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"nearestOn2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">nearestOn2</span>&nbsp;(<span class=\"sig-arg\">point</span>,\n        <span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">**closed_radius_height</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use method <a \n  href=\"pygeodesy.sphericalNvector-module.html#nearestOn3\" \n  class=\"link\">sphericalNvector.nearestOn3</a>.</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd>... 2-Tuple <code>(closest, distance)</code> of the \n          <code>closest</code> point (<a \n          href=\"pygeodesy.sphericalNvector.LatLon-class.html\" \n          class=\"link\">LatLon</a>) on the polygon and the \n          <code>distance</code> between the <code>closest</code> and the \n          given <b><code>point</code></b> ...</dd>\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"nearestOn3\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">nearestOn3</span>&nbsp;(<span class=\"sig-arg\">point</span>,\n        <span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">closed</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">radius</span>=<span class=\"sig-default\">6371008.771415</span>,\n        <span class=\"sig-arg\">height</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Locate the point on a polygon (with great circle arcs joining \n  consecutive points) closest to an other point.</p>\n  <p>If the given point is between the end points of a great circle arc, \n  the closest point is on that arc.  Otherwise, the closest point is the \n  nearest of the arc's end points.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>point</code></strong> - The other, reference point (<a \n          href=\"pygeodesy.sphericalNvector.LatLon-class.html\" \n          class=\"link\">LatLon</a>).</li>\n        <li><strong class=\"pname\"><code>points</code></strong> - The polygon points (<a \n          href=\"pygeodesy.sphericalNvector.LatLon-class.html\" \n          class=\"link\">LatLon</a>[]).</li>\n        <li><strong class=\"pname\"><code>closed</code></strong> - Optionally, close the polygon (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>radius</code></strong> - Mean earth radius (<code>meter</code>) or <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>height</code></strong> - Optional height, overriding the mean height for a point within \n          the (great circle) arc (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll the \n          <b><code>points</code></b> (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.namedTuples.NearestOn3Tuple-class.html\" \n          class=\"link\">NearestOn3Tuple</a><code>(closest, distance, \n          angle)</code> of the <code>closest</code> point (<a \n          href=\"pygeodesy.sphericalNvector.LatLon-class.html\" \n          class=\"link\">LatLon</a>) on the polygon, the \n          <code>distance</code> and the <code>angle</code> between the \n          <code>closest</code> and the given <b><code>point</code></b>.  \n          The <code>distance</code> is in <code>meter</code>, same units as\n          <b><code>radius</code></b> or in <code>radians</code> if \n          <code><b>radius</b> is None</code>, the <code>angle</code> is in \n          compass <code>degrees360</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.PointsError-class.html\">PointsError</a></strong></code> - Insufficient number of <b><code>points</code></b>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Some <b><code>points</code></b> or <b><code>point</code></b> not \n        <code>LatLon</code>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"perimeterOf\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">perimeterOf</span>&nbsp;(<span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">closed</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">radius</span>=<span class=\"sig-default\">6371008.771415</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the perimeter of a (spherical) polygon or composite (with \n  great circle arcs joining consecutive points).</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>points</code></strong> - The polygon points (<a \n          href=\"pygeodesy.sphericalNvector.LatLon-class.html\" \n          class=\"link\">LatLon</a>[]).</li>\n        <li><strong class=\"pname\"><code>closed</code></strong> - Optionally, close the polygon (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>radius</code></strong> - Mean earth radius (<code>meter</code>) or <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll the \n          <b><code>points</code></b> (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Polygon perimeter (<code>meter</code>, same units as \n          <b><code>radius</code></b> or <code>radians</code> if \n          <code><b>radius</b> is None</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.PointsError-class.html\">PointsError</a></strong></code> - Insufficient number of <b><code>points</code></b>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Some <b><code>points</code></b> are not <a \n        href=\"pygeodesy.sphericalNvector.LatLon-class.html\" \n        class=\"link\">LatLon</a>.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>radius</code></b> or \n        <code><b>closed</b>=False</code> with <code><b>points</b></code> a \n        composite.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Functions <a href=\"pygeodesy.points-module.html#perimeterOf\" \n        class=\"link\">pygeodesy.perimeterOf</a>, <a \n        href=\"pygeodesy.ellipsoidalKarney-module.html#perimeterOf\" \n        class=\"link\">ellipsoidalKarney.perimeterOf</a> and <a \n        href=\"pygeodesy.sphericalTrigonometry-module.html#perimeterOf\" \n        class=\"link\">sphericalTrigonometry.perimeterOf</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"sumOf\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">sumOf</span>&nbsp;(<span class=\"sig-arg\">nvectors</span>,\n        <span class=\"sig-arg\">Vector</span>=<span class=\"sig-default\">&lt;class 'pygeodesy.sphericalNvector.Nvector'&gt;</span>,\n        <span class=\"sig-arg\">h</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**Vector_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the <i>vectorial</i> sum of two or more n-vectors.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>nvectors</code></strong> - Vectors to be added (<code>Nvector</code>[]).</li>\n        <li><strong class=\"pname\"><code>Vector</code></strong> - Optional class for the vectorial sum (<code>Nvector</code>).</li>\n        <li><strong class=\"pname\"><code>h</code></strong> - Optional height, overriding the mean height (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>Vector_kwds</code></strong> - Optional, additional <b><code>Vector</code></b> keyword \n          arguments.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Vectorial sum (<b><code>Vector</code></b>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.VectorError-class.html\">VectorError</a></strong></code> - No <b><code>nvectors</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"triangulate\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">triangulate</span>&nbsp;(<span class=\"sig-arg\">point1</span>,\n        <span class=\"sig-arg\">bearing1</span>,\n        <span class=\"sig-arg\">point2</span>,\n        <span class=\"sig-arg\">bearing2</span>,\n        <span class=\"sig-arg\">height</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">LatLon</span>=<span class=\"sig-default\">&lt;class 'pygeodesy.sphericalNvector.LatLon'&gt;</span>,\n        <span class=\"sig-arg\">**LatLon_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Locate a point given two known, reference points and the (initial) \n  bearing from those points.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>point1</code></strong> - First reference point (<a \n          href=\"pygeodesy.sphericalNvector.LatLon-class.html\" \n          class=\"link\">LatLon</a>).</li>\n        <li><strong class=\"pname\"><code>bearing1</code></strong> - Bearing at the first point (compass <code>degrees360</code>).</li>\n        <li><strong class=\"pname\"><code>point2</code></strong> - Second reference point (<a \n          href=\"pygeodesy.sphericalNvector.LatLon-class.html\" \n          class=\"link\">LatLon</a>).</li>\n        <li><strong class=\"pname\"><code>bearing2</code></strong> - Bearing at the second point (compass <code>degrees360</code>).</li>\n        <li><strong class=\"pname\"><code>height</code></strong> - Optional height at the triangulated point, overriding the mean \n          height (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll \n          <b><code>point2</code></b> (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>LatLon</code></strong> - Optional class to return the triangulated point (<a \n          href=\"pygeodesy.sphericalNvector.LatLon-class.html\" \n          class=\"link\">LatLon</a>).</li>\n        <li><strong class=\"pname\"><code>LatLon_kwds</code></strong> - Optional, additional <b><code>LatLon</code></b> keyword \n          arguments, ignored if <code><b>LatLon</b> is None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Triangulated point (<b><code>LatLon</code></b>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - If <b><code>point1</code></b> or <b><code>point2</code></b> is not \n        <a href=\"pygeodesy.sphericalNvector.LatLon-class.html\" \n        class=\"link\">LatLon</a>.</li>\n        <li><code><strong class='fraise'>Valuerror</strong></code> - Points coincide.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"trilaterate\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">trilaterate</span>&nbsp;(<span class=\"sig-arg\">point1</span>,\n        <span class=\"sig-arg\">distance1</span>,\n        <span class=\"sig-arg\">point2</span>,\n        <span class=\"sig-arg\">distance2</span>,\n        <span class=\"sig-arg\">point3</span>,\n        <span class=\"sig-arg\">distance3</span>,\n        <span class=\"sig-arg\">radius</span>=<span class=\"sig-default\">6371008.771415</span>,\n        <span class=\"sig-arg\">height</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">useZ</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">LatLon</span>=<span class=\"sig-default\">&lt;class 'pygeodesy.sphericalNvector.LatLon'&gt;</span>,\n        <span class=\"sig-arg\">**LatLon_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Locate a point at given distances from three other points.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>point1</code></strong> - First point (<a \n          href=\"pygeodesy.sphericalNvector.LatLon-class.html\" \n          class=\"link\">LatLon</a>).</li>\n        <li><strong class=\"pname\"><code>distance1</code></strong> - Distance to the first point (<code>meter</code>, same units as \n          <b><code>radius</code></b>).</li>\n        <li><strong class=\"pname\"><code>point2</code></strong> - Second point (<a \n          href=\"pygeodesy.sphericalNvector.LatLon-class.html\" \n          class=\"link\">LatLon</a>).</li>\n        <li><strong class=\"pname\"><code>distance2</code></strong> - Distance to the second point (<code>meter</code>, same units as \n          <b><code>radius</code></b>).</li>\n        <li><strong class=\"pname\"><code>point3</code></strong> - Third point (<a \n          href=\"pygeodesy.sphericalNvector.LatLon-class.html\" \n          class=\"link\">LatLon</a>).</li>\n        <li><strong class=\"pname\"><code>distance3</code></strong> - Distance to the third point (<code>meter</code>, same units as \n          <b><code>radius</code></b>).</li>\n        <li><strong class=\"pname\"><code>radius</code></strong> - Mean earth radius (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>height</code></strong> - Optional height at the trilaterated point, overriding the IDW \n          height (<code>meter</code>, same units as \n          <b><code>radius</code></b>).</li>\n        <li><strong class=\"pname\"><code>useZ</code></strong> - Include Z component iff non-NaN, non-zero (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll \n          <b><code>point2</code></b> and <b><code>point3</code></b> \n          (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>LatLon</code></strong> - Optional class to return the trilaterated point (<a \n          href=\"pygeodesy.sphericalNvector.LatLon-class.html\" \n          class=\"link\">LatLon</a>).</li>\n        <li><strong class=\"pname\"><code>LatLon_kwds</code></strong> - Optional, additional <b><code>LatLon</code></b> keyword \n          arguments, ignored if <code><b>LatLon</b> is None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Trilaterated point (<b><code>LatLon</code></b>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.IntersectionError-class.html\">IntersectionError</a></strong></code> - No intersection, trilateration failed.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>point1</code></b>, <b><code>point2</code></b> or \n        <b><code>point3</code></b>.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Coincident <b><code>points</code></b> or invalid \n        <b><code>distance1</code></b>, <b><code>distance2</code></b>, \n        <b><code>distance3</code></b> or <b><code>radius</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"https://WikiPedia.org/wiki/Trilateration\" \n        target=\"_top\">Trilateration</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.sphericalNvector.Cartesian-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.sphericalNvector.Cartesian</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.sphericalNvector-module.html\">Module&nbsp;sphericalNvector</a> ::\n        Class&nbsp;Cartesian\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.sphericalNvector.Cartesian-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Cartesian</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n       object --+                        \n                |                        \n     <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+                    \n                    |                    \n     <a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+                \n                        |                \n<a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">vector3dBase.Vector3dBase</a> --+            \n                            |            \n            <a href=\"pygeodesy.vector3d.Vector3d-class.html\">vector3d.Vector3d</a> --+        \n                                |        \n               object --+       |        \n                        |       |        \n             <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+   |        \n                            |   |        \n        <a href=\"pygeodesy.ecefLocals._EcefLocal-class.html\">ecefLocals._EcefLocal</a> --+        \n                                |        \n      <a href=\"pygeodesy.cartesianBase.CartesianBase-class.html\">cartesianBase.CartesianBase</a> --+    \n                                    |    \n <a href=\"pygeodesy.sphericalBase.CartesianSphericalBase-class.html\">sphericalBase.CartesianSphericalBase</a> --+\n                                        |\n                                       <strong class=\"uidshort\">Cartesian</strong>\n</pre>\n\n<hr />\n<p>Extended to convert geocentric, <a \n  href=\"pygeodesy.sphericalNvector.Cartesian-class.html\" \n  class=\"link\">Cartesian</a> points to <code>Nvector</code> and \n  n-vector-based, spherical <a \n  href=\"pygeodesy.sphericalNvector.LatLon-class.html\" \n  class=\"link\">LatLon</a>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.sphericalNvector.Cartesian-class.html#toLatLon\" class=\"summary-sig-name\">toLatLon</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">**LatLon_and_kwds</span>)</span><br />\n      Convert this cartesian to an <code>Nvector</code>-based geodetic \n      point.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.sphericalNvector.Cartesian-class.html#toNvector\" class=\"summary-sig-name\">toNvector</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">**Nvector_and_kwds</span>)</span><br />\n      Convert this cartesian to <code>Nvector</code> components, \n      <i>including height</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.sphericalBase.CartesianSphericalBase-class.html\">sphericalBase.CartesianSphericalBase</a></code></b>:\n      <code><a href=\"pygeodesy.sphericalBase.CartesianSphericalBase-class.html#intersections2\">intersections2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html\">cartesianBase.CartesianBase</a></code></b>:\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#Roc2\">Roc2</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#__init__\">__init__</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#cassini\">cassini</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#collins\">collins</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#collins5\">collins5</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#convertDatum\">convertDatum</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#destinationXyz\">destinationXyz</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#hartzell\">hartzell</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#height3\">height3</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#height4\">height4</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#pierlot\">pierlot</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#pierlotx\">pierlotx</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#tienstra\">tienstra</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#tienstra7\">tienstra7</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#to2ab\">to2ab</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#to2ll\">to2ll</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#to3llh\">to3llh</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#toDatum\">toDatum</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#toEcef\">toEcef</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#toRtp\">toRtp</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#toTransform\">toTransform</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#toVector\">toVector</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.vector3d.Vector3d-class.html\">vector3d.Vector3d</a></code></b>:\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#bearing\">bearing</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#circin6\">circin6</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#circum3\">circum3</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#circum4_\">circum4_</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#iscolinearWith\">iscolinearWith</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#meeus2\">meeus2</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#nearestOn\">nearestOn</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#nearestOn6\">nearestOn6</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#parse\">parse</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#radii11\">radii11</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#soddy4\">soddy4</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#toCartesian\">toCartesian</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#trilaterate2d2\">trilaterate2d2</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#trilaterate3d2\">trilaterate3d2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">vector3dBase.Vector3dBase</a></code></b>:\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__abs__\">__abs__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__add__\">__add__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__bool__\">__bool__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__ceil__\">__ceil__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__cmp__\">__cmp__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__div__\">__div__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__divmod__\">__divmod__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__eq__\">__eq__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__float__\">__float__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__floor__\">__floor__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__floordiv__\">__floordiv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__ge__\">__ge__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__gt__\">__gt__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__iadd__\">__iadd__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__idiv__\">__idiv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__ifloordiv__\">__ifloordiv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__imod__\">__imod__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__imul__\">__imul__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__int__\">__int__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__ipow__\">__ipow__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__isub__\">__isub__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__itruediv__\">__itruediv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__le__\">__le__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__long__\">__long__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__lt__\">__lt__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__mod__\">__mod__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__mul__\">__mul__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__ne__\">__ne__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__neg__\">__neg__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__nonzero__\">__nonzero__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__pos__\">__pos__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__pow__\">__pow__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__radd__\">__radd__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rdiv__\">__rdiv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rdivmod__\">__rdivmod__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rfloordiv__\">__rfloordiv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rmod__\">__rmod__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rmul__\">__rmul__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__round__\">__round__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rpow__\">__rpow__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rsub__\">__rsub__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rtruediv__\">__rtruediv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__sub__\">__sub__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__truediv__\">__truediv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__trunc__\">__trunc__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#angleTo\">angleTo</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#apply\">apply</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#bools\">bools</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#cmp\">cmp</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#cross\">cross</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#dividedBy\">dividedBy</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#dividedBy_\">dividedBy_</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#dot\">dot</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#equals\">equals</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#equirectangular\">equirectangular</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#fabs\">fabs</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#floats\">floats</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#floorDividedBy\">floorDividedBy</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#floorDividedBy_\">floorDividedBy_</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#intermediateTo\">intermediateTo</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#ints\">ints</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#isconjugateTo\">isconjugateTo</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#isequalTo\">isequalTo</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#minus\">minus</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#minus_\">minus_</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#negate\">negate</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#others\">others</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#plus\">plus</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#plus_\">plus_</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#pow\">pow</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#rotate\">rotate</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#rotateAround\">rotateAround</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#sum\">sum</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#times\">times</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#times_\">times_</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#to3xyz\">to3xyz</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#unit\">unit</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#toRepr\">toRepr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html\">ecefLocals._EcefLocal</a></code></b>:\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toAer\">toAer</a></code>,\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toEnu\">toEnu</a></code>,\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toLocal\">toLocal</a></code>,\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toLtp\">toLtp</a></code>,\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toNed\">toNed</a></code>,\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toXyz\">toXyz</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.sphericalBase.CartesianSphericalBase-class.html\">sphericalBase.CartesianSphericalBase</a></code></b>:\n      <code><a href=\"pygeodesy.sphericalBase.CartesianSphericalBase-class.html#sphericalCartesian\">sphericalCartesian</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html\">cartesianBase.CartesianBase</a></code></b>:\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#datum\">datum</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#ellipsoidalCartesian\">ellipsoidalCartesian</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#height\">height</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#isEllipsoidal\">isEllipsoidal</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#isSpherical\">isSpherical</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#latlon\">latlon</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#latlonheight\">latlonheight</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#latlonheightdatum\">latlonheightdatum</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#philam\">philam</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#philamheight\">philamheight</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#philamheightdatum\">philamheightdatum</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">vector3dBase.Vector3dBase</a></code></b>:\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#crosserrors\">crosserrors</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#euclid\">euclid</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#homogeneous\">homogeneous</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#length\">length</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#length2\">length2</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#x\">x</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#x2y2z2\">x2y2z2</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#x2y2z23\">x2y2z23</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#xyz\">xyz</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#xyz3\">xyz3</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#y\">y</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#z\">z</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html\">ecefLocals._EcefLocal</a></code></b>:\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#Ecef\">Ecef</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"toLatLon\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toLatLon</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">**LatLon_and_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert this cartesian to an <code>Nvector</code>-based geodetic \n  point.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>LatLon_and_kwds</code></strong> - Optional <code>LatLon</code> class and <code>LatLon</code> \n          keyword arguments, like <code>datum</code>.  Use \n          <code><b>LatLon</b>=...</code> to override this <a \n          href=\"pygeodesy.sphericalNvector.LatLon-class.html\" \n          class=\"link\">LatLon</a> class or specify \n          <code><b>LatLon</b>=None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <code>LatLon</code> or if <code>LatLon is None</code>, an <a \n          href=\"pygeodesy.ecef.Ecef9Tuple-class.html\" \n          class=\"link\">Ecef9Tuple</a><code>(x, y, z, lat, lon, height, C, \n          M, datum)</code> with <code>C</code> and <code>M</code> if \n          available.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <code>LatLon</code> or other \n        <b><code>LatLon_and_kwds</code></b> item.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#toLatLon\">cartesianBase.CartesianBase.toLatLon</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toNvector\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toNvector</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">**Nvector_and_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert this cartesian to <code>Nvector</code> components, \n  <i>including height</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>Nvector_and_kwds</code></strong> - Optional <code>Nvector</code> class and <code>Nvector</code> \n          keyword arguments, like <code>datum</code>.  Use \n          <code><b>Nvector</b>=...</code> to override this \n          <code>Nvector</code> class or specify \n          <code><b>Nvector</b>=None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>An <code>Nvector</code>) or if <code>Nvector is None</code>, a <a\n          href=\"pygeodesy.namedTuples.Vector4Tuple-class.html\" \n          class=\"link\">Vector4Tuple</a><code>(x, y, z, h)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <code>Nvector</code> or other \n        <b><code>Nvector_and_kwds</code></b> item.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#toNvector\">cartesianBase.CartesianBase.toNvector</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.sphericalNvector.LatLon-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.sphericalNvector.LatLon</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.sphericalNvector-module.html\">Module&nbsp;sphericalNvector</a> ::\n        Class&nbsp;LatLon\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.sphericalNvector.LatLon-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class LatLon</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n           object --+                \n                    |                \n         <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+            \n                        |            \n         <a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+        \n                            |        \n           object --+       |        \n                    |       |        \n         <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+   |        \n                        |   |        \n    <a href=\"pygeodesy.ecefLocals._EcefLocal-class.html\">ecefLocals._EcefLocal</a> --+        \n                            |        \n        <a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">latlonBase.LatLonBase</a> --+    \n                                |    \n    <a href=\"pygeodesy.nvectorBase.LatLonNvectorBase-class.html\">nvectorBase.LatLonNvectorBase</a> --+\n                                    |\n           object --+               |\n                    |               |\n         <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+           |\n                        |           |\n         <a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+       |\n                            |       |\n           object --+       |       |\n                    |       |       |\n         <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+   |       |\n                        |   |       |\n    <a href=\"pygeodesy.ecefLocals._EcefLocal-class.html\">ecefLocals._EcefLocal</a> --+       |\n                            |       |\n        <a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">latlonBase.LatLonBase</a> --+   |\n                                |   |\n<a href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html\">sphericalBase.LatLonSphericalBase</a> --+\n                                    |\n                                   <strong class=\"uidshort\">LatLon</strong>\n</pre>\n\n<hr />\n<p>New n-vector-based point on a spherical earth model.</p>\n  <p>Tools for working with points, lines and paths on (a spherical model \n  of) the earth's surface using vector-based methods.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.sphericalNvector.LatLon-class.html#alongTrackDistanceTo\" class=\"summary-sig-name\">alongTrackDistanceTo</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">start</span>,\n        <span class=\"summary-sig-arg\">end</span>,\n        <span class=\"summary-sig-arg\">radius</span>=<span class=\"summary-sig-default\">6371008.771415</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Compute the (signed) distance from the start to the closest point on \n      the great circle line defined by a start and an end point.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.sphericalNvector.LatLon-class.html#bearingTo\" class=\"summary-sig-name\">bearingTo</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>,\n        <span class=\"summary-sig-arg\">**unused</span>)</span><br />\n      DEPRECATED, use method <a \n      href=\"pygeodesy.sphericalNvector.LatLon-class.html#initialBearingTo\" \n      class=\"link\">initialBearingTo</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.sphericalNvector.LatLon-class.html#crossTrackDistanceTo\" class=\"summary-sig-name\">crossTrackDistanceTo</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">start</span>,\n        <span class=\"summary-sig-arg\">end</span>,\n        <span class=\"summary-sig-arg\">radius</span>=<span class=\"summary-sig-default\">6371008.771415</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Compute the (signed) distance from this point to great circle defined\n      by a start and end point.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.sphericalNvector.LatLon-class.html#destination\" class=\"summary-sig-name\">destination</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">distance</span>,\n        <span class=\"summary-sig-arg\">bearing</span>,\n        <span class=\"summary-sig-arg\">radius</span>=<span class=\"summary-sig-default\">6371008.771415</span>,\n        <span class=\"summary-sig-arg\">height</span>=<span class=\"summary-sig-default\">None</span>)</span><br />\n      Locate the destination from this point after having travelled the \n      given distance on the given bearing.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.sphericalNvector.LatLon-class.html#distanceTo\" class=\"summary-sig-name\">distanceTo</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>,\n        <span class=\"summary-sig-arg\">radius</span>=<span class=\"summary-sig-default\">6371008.771415</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Compute the distance from this to an other point.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.sphericalNvector.LatLon-class.html#greatCircle\" class=\"summary-sig-name\">greatCircle</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">bearing</span>)</span><br />\n      Compute the vector normal to great circle obtained by heading on the \n      given bearing from this point.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.sphericalNvector.LatLon-class.html#greatCircleTo\" class=\"summary-sig-name\">greatCircleTo</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Compute the vector normal to great circle obtained by heading from \n      this to an other point or on a given bearing.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.sphericalNvector.LatLon-class.html#initialBearingTo\" class=\"summary-sig-name\">initialBearingTo</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">**unused</span>)</span><br />\n      Compute the initial bearing (forward azimuth) from this to an other \n      point.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.sphericalNvector.LatLon-class.html#intermediateChordTo\" class=\"summary-sig-name\">intermediateChordTo</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>,\n        <span class=\"summary-sig-arg\">fraction</span>,\n        <span class=\"summary-sig-arg\">height</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Locate the point projected from the point at given fraction on a \n      straight line (chord) between this and an other point.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.sphericalNvector.LatLon-class.html#intermediateTo\" class=\"summary-sig-name\">intermediateTo</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>,\n        <span class=\"summary-sig-arg\">fraction</span>,\n        <span class=\"summary-sig-arg\">height</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Locate the point at a given fraction between this and an other point.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.sphericalNvector.LatLon-class.html#intersection\" class=\"summary-sig-name\">intersection</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">end1</span>,\n        <span class=\"summary-sig-arg\">start2</span>,\n        <span class=\"summary-sig-arg\">end2</span>,\n        <span class=\"summary-sig-arg\">height</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Locate an intersection point of two lines each defined by two points \n      or by a point and an (initial) bearing.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.sphericalNvector.LatLon-class.html#intersection2\" class=\"summary-sig-name\">intersection2</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">end1</span>,\n        <span class=\"summary-sig-arg\">start2</span>,\n        <span class=\"summary-sig-arg\">end2</span>,\n        <span class=\"summary-sig-arg\">height</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Locate both intersections of two (great circle) lines each defined by\n      two points or by a point and an (initial) bearing.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.sphericalNvector.LatLon-class.html#isenclosedBy\" class=\"summary-sig-name\">isenclosedBy</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Check whether a (convex) polygon or composite encloses this point.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.sphericalNvector.LatLon-class.html#isEnclosedBy\" class=\"summary-sig-name\">isEnclosedBy</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">points</span>)</span><br />\n      DEPRECATED, use method <code>isenclosedBy</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.sphericalNvector.LatLon-class.html#iswithin\" class=\"summary-sig-name\">iswithin</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">point1</span>,\n        <span class=\"summary-sig-arg\">point2</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Check whether this point is between two other points.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.sphericalNvector.LatLon-class.html#isWithin\" class=\"summary-sig-name\">isWithin</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">point1</span>,\n        <span class=\"summary-sig-arg\">point2</span>)</span><br />\n      DEPRECATED, use method <code>iswithin</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.sphericalNvector.LatLon-class.html#midpointTo\" class=\"summary-sig-name\">midpointTo</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>,\n        <span class=\"summary-sig-arg\">height</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">fraction</span>=<span class=\"summary-sig-default\">0.5</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Find the midpoint between this and an other point.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.sphericalNvector.LatLon-class.html#nearestOn\" class=\"summary-sig-name\">nearestOn</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">point1</span>,\n        <span class=\"summary-sig-arg\">point2</span>,\n        <span class=\"summary-sig-arg\">height</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">within</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Locate the point on the great circle arc between two points closest \n      to this point.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.sphericalNvector.LatLon-class.html#nearestOn2\" class=\"summary-sig-name\">nearestOn2</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">**closed_radius_height</span>)</span><br />\n      DEPRECATED, use method <a \n      href=\"pygeodesy.sphericalNvector.LatLon-class.html#nearestOn3\" \n      class=\"link\">sphericalNvector.LatLon.nearestOn3</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.sphericalNvector.LatLon-class.html#nearestOn3\" class=\"summary-sig-name\">nearestOn3</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">closed</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">radius</span>=<span class=\"summary-sig-default\">6371008.771415</span>,\n        <span class=\"summary-sig-arg\">height</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Locate the point on a path or polygon (with great circle arcs joining\n      consecutive points) closest to this point.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.sphericalNvector.LatLon-class.html#toCartesian\" class=\"summary-sig-name\">toCartesian</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">**Cartesian_and_kwds</span>)</span><br />\n      Convert this point to <code>Nvector</code>-based cartesian (ECEF) \n      coordinates.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.sphericalNvector.LatLon-class.html#toNvector\" class=\"summary-sig-name\">toNvector</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">**Nvector_and_kwds</span>)</span><br />\n      Convert this point to <code>Nvector</code> components, <i>including \n      height</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.nvectorBase.LatLonNvectorBase-class.html\">nvectorBase.LatLonNvectorBase</a></code></b>:\n      <code><a href=\"pygeodesy.nvectorBase.LatLonNvectorBase-class.html#intersections2\">intersections2</a></code>,\n      <code><a href=\"pygeodesy.nvectorBase.LatLonNvectorBase-class.html#others\">others</a></code>,\n      <code><a href=\"pygeodesy.nvectorBase.LatLonNvectorBase-class.html#triangulate\">triangulate</a></code>,\n      <code><a href=\"pygeodesy.nvectorBase.LatLonNvectorBase-class.html#trilaterate\">trilaterate</a></code>,\n      <code><a href=\"pygeodesy.nvectorBase.LatLonNvectorBase-class.html#trilaterate5\">trilaterate5</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html\">sphericalBase.LatLonSphericalBase</a></code></b>:\n      <code><a href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html#__init__\">__init__</a></code>,\n      <code><a href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html#bearingTo2\">bearingTo2</a></code>,\n      <code><a href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html#finalBearingTo\">finalBearingTo</a></code>,\n      <code><a href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html#intersecant2\">intersecant2</a></code>,\n      <code><a href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html#maxLat\">maxLat</a></code>,\n      <code><a href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html#minLat\">minLat</a></code>,\n      <code><a href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html#parse\">parse</a></code>,\n      <code><a href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html#rhumbAzimuthTo\">rhumbAzimuthTo</a></code>,\n      <code><a href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html#rhumbBearingTo\">rhumbBearingTo</a></code>,\n      <code><a href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html#rhumbDestination\">rhumbDestination</a></code>,\n      <code><a href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html#rhumbDistanceTo\">rhumbDistanceTo</a></code>,\n      <code><a href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html#rhumbIntersecant2\">rhumbIntersecant2</a></code>,\n      <code><a href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html#rhumbMidpointTo\">rhumbMidpointTo</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">latlonBase.LatLonBase</a></code></b>:\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#PointsIter\">PointsIter</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#__eq__\">__eq__</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#__ne__\">__ne__</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#antipode\">antipode</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#bounds\">bounds</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#boundsOf\">boundsOf</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#chordTo\">chordTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#circin6\">circin6</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#circum3\">circum3</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#circum4_\">circum4_</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#compassAngle\">compassAngle</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#compassAngleTo\">compassAngleTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#cosineAndoyerLambertTo\">cosineAndoyerLambertTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#cosineForsytheAndoyerLambertTo\">cosineForsytheAndoyerLambertTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#cosineLawTo\">cosineLawTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#destinationXyz\">destinationXyz</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#equals\">equals</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#equals3\">equals3</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#equirectangularTo\">equirectangularTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#euclideanTo\">euclideanTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#flatLocalTo\">flatLocalTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#flatPolarTo\">flatPolarTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#hartzell\">hartzell</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#haversineTo\">haversineTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#height4\">height4</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#heightStr\">heightStr</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#hubenyTo\">hubenyTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isantipode\">isantipode</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isantipodeTo\">isantipodeTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isequalTo\">isequalTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isequalTo3\">isequalTo3</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#latlon2\">latlon2</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#latlon2round\">latlon2round</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#latlon_\">latlon_</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#nearestOn6\">nearestOn6</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#nearestTo\">nearestTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#normal\">normal</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#philam2\">philam2</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#points\">points</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#points2\">points2</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#radii11\">radii11</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#rhumbLine\">rhumbLine</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#thomasTo\">thomasTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#to2ab\">to2ab</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#to3llh\">to3llh</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#to3xyz\">to3xyz</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toDatum\">toDatum</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toEcef\">toEcef</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toNormal\">toNormal</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toVector\">toVector</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toVector3d\">toVector3d</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toWm\">toWm</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#vincentysTo\">vincentysTo</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#toRepr\">toRepr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html\">ecefLocals._EcefLocal</a></code></b>:\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toAer\">toAer</a></code>,\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toEnu\">toEnu</a></code>,\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toLocal\">toLocal</a></code>,\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toLtp\">toLtp</a></code>,\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toNed\">toNed</a></code>,\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toXyz\">toXyz</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html\">sphericalBase.LatLonSphericalBase</a></code></b>:\n      <code><a href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html#datum\">datum</a></code>,\n      <code><a href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html#napieradius\">napieradius</a></code>,\n      <code><a href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html#sphericalLatLon\">sphericalLatLon</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">latlonBase.LatLonBase</a></code></b>:\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#clipid\">clipid</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#ellipsoidalLatLon\">ellipsoidalLatLon</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#height\">height</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isEllipsoidal\">isEllipsoidal</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isSpherical\">isSpherical</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isnormal\">isnormal</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#lam\">lam</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#lat\">lat</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#latlon\">latlon</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#latlonheight\">latlonheight</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#lon\">lon</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#phi\">phi</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#philam\">philam</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#philamheight\">philamheight</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#xyz\">xyz</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#xyz3\">xyz3</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#xyzh\">xyzh</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html\">ecefLocals._EcefLocal</a></code></b>:\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#Ecef\">Ecef</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"alongTrackDistanceTo\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">alongTrackDistanceTo</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">start</span>,\n        <span class=\"sig-arg\">end</span>,\n        <span class=\"sig-arg\">radius</span>=<span class=\"sig-default\">6371008.771415</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the (signed) distance from the start to the closest point on \n  the great circle line defined by a start and an end point.</p>\n  <p>That is, if a perpendicular is drawn from this point to the great \n  circle line, the along-track distance is the distance from the start \n  point to the point where the perpendicular crosses the line.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>start</code></strong> - Start point of great circle line (<a \n          href=\"pygeodesy.sphericalNvector.LatLon-class.html\" \n          class=\"link\">LatLon</a>).</li>\n        <li><strong class=\"pname\"><code>end</code></strong> - End point of great circle line (<a \n          href=\"pygeodesy.sphericalNvector.LatLon-class.html\" \n          class=\"link\">LatLon</a>) or initial bearing from start point \n          (compass <code>degrees360</code>).</li>\n        <li><strong class=\"pname\"><code>radius</code></strong> - Mean earth radius (<code>meter</code>) or <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll the \n          <b><code>start</code></b> and <b><code>end</code></b> points \n          (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Distance along the great circle line (<code>radians</code> if \n          <code><b>radius</b> is None</code> else <code>meter</code>, same \n          units as <b><code>radius</code></b>), positive if \n          &quot;after&quot; the start toward the end point of the line or \n          negative if &quot;before&quot; the start point.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - If <b><code>start</code></b> or <b><code>end</code></b> point is \n        not <a href=\"pygeodesy.sphericalNvector.LatLon-class.html\" \n        class=\"link\">LatLon</a>.</li>\n        <li><code><strong class='fraise'>Valuerror</strong></code> - Some points coincide.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"bearingTo\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">bearingTo</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>,\n        <span class=\"sig-arg\">**unused</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use method <a \n  href=\"pygeodesy.sphericalNvector.LatLon-class.html#initialBearingTo\" \n  class=\"link\">initialBearingTo</a>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_method</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"crossTrackDistanceTo\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">crossTrackDistanceTo</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">start</span>,\n        <span class=\"sig-arg\">end</span>,\n        <span class=\"sig-arg\">radius</span>=<span class=\"sig-default\">6371008.771415</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the (signed) distance from this point to great circle defined \n  by a start and end point.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>start</code></strong> - Start point of great circle line (<a \n          href=\"pygeodesy.sphericalNvector.LatLon-class.html\" \n          class=\"link\">LatLon</a>).</li>\n        <li><strong class=\"pname\"><code>end</code></strong> - End point of great circle line (<a \n          href=\"pygeodesy.sphericalNvector.LatLon-class.html\" \n          class=\"link\">LatLon</a>) or initial bearing from start point \n          (compass <code>degrees360</code>).</li>\n        <li><strong class=\"pname\"><code>radius</code></strong> - Mean earth radius (<code>meter</code>) or <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll the \n          <b><code>start</code></b> and <b><code>end</code></b> points \n          (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Distance to great circle (<code>radians</code> if \n          <code><b>radius</b> is None</code> else <code>meter</code>, same \n          units as <b><code>radius</code></b>), negative if to the left  or\n          positive if to the right of the line .</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - If <b><code>start</code></b> or <b><code>end</code></b> point is \n        not <a href=\"pygeodesy.sphericalNvector.LatLon-class.html\" \n        class=\"link\">LatLon</a>.</li>\n        <li><code><strong class='fraise'>Valuerror</strong></code> - Some points coincide.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"destination\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">destination</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">distance</span>,\n        <span class=\"sig-arg\">bearing</span>,\n        <span class=\"sig-arg\">radius</span>=<span class=\"sig-default\">6371008.771415</span>,\n        <span class=\"sig-arg\">height</span>=<span class=\"sig-default\">None</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Locate the destination from this point after having travelled the \n  given distance on the given bearing.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>distance</code></strong> - Distance travelled (<code>meter</code>, same units as \n          <b><code>radius</code></b>).</li>\n        <li><strong class=\"pname\"><code>bearing</code></strong> - Bearing from this point (compass <code>degrees360</code>).</li>\n        <li><strong class=\"pname\"><code>radius</code></strong> - Mean earth radius (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>height</code></strong> - Optional height at destination, overriding the default height \n          (<code>meter</code>, same units as <b><code>radius</code></b>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Destination point (<a \n          href=\"pygeodesy.sphericalNvector.LatLon-class.html\" \n          class=\"link\">LatLon</a>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>Valuerror</strong></code> - Polar coincidence or invalid <b><code>distance</code></b>, \n        <b><code>bearing</code></b>, <b><code>radius</code></b> or \n        <b><code>height</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"distanceTo\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">distanceTo</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>,\n        <span class=\"sig-arg\">radius</span>=<span class=\"sig-default\">6371008.771415</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the distance from this to an other point.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>other</code></strong> - The other point (<a \n          href=\"pygeodesy.sphericalNvector.LatLon-class.html\" \n          class=\"link\">LatLon</a>).</li>\n        <li><strong class=\"pname\"><code>radius</code></strong> - Mean earth radius (<code>meter</code>) or <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll the \n          <b><code>other</code></b> point (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Distance between this and the <b><code>other</code></b> point \n          (<code>meter</code>, same units as <b><code>radius</code></b> or \n          <code>radians</code> if <code><b>radius</b> is None</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>other</code></b> point.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"greatCircle\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">greatCircle</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">bearing</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the vector normal to great circle obtained by heading on the \n  given bearing from this point.</p>\n  <p>Direction of vector is such that initial bearing vector b = c &#215; n, \n  where n is an n-vector representing this point.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>bearing</code></strong> - Bearing from this point (compass <code>degrees360</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>N-vector representing the great circle (<code>Nvector</code>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"greatCircleTo\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">greatCircleTo</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the vector normal to great circle obtained by heading from \n  this to an other point or on a given bearing.</p>\n  <p>Direction of vector is such that initial bearing vector b = c &#215; n, \n  where n is an n-vector representing this point.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>other</code></strong> - The other point (<a \n          href=\"pygeodesy.sphericalNvector.LatLon-class.html\" \n          class=\"link\">LatLon</a>) or the bearing from this point (compass \n          <code>degrees360</code>).</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll the \n          <b><code>other</code></b> point (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>N-vector representing the great circle (<code>Nvector</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - The <b><code>other</code></b> point is not <a \n        href=\"pygeodesy.sphericalNvector.LatLon-class.html\" \n        class=\"link\">LatLon</a>.</li>\n        <li><code><strong class='fraise'>Valuerror</strong></code> - Points coincide.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"initialBearingTo\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">initialBearingTo</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">**unused</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the initial bearing (forward azimuth) from this to an other \n  point.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>other</code></strong> - The other point (<a \n          href=\"pygeodesy.sphericalNvector.LatLon-class.html\" \n          class=\"link\">LatLon</a>).</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll the \n          <b><code>other</code></b> point (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Initial bearing (compass <code>degrees360</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>Crosserror</strong></code> - This point coincides with the <b><code>other</code></b> point or \n        the <code>NorthPole</code> and <a \n        href=\"pygeodesy.errors-module.html#crosserrors\" \n        class=\"link\">crosserrors</a> is <code>True</code>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - The <b><code>other</code></b> point is not <a \n        href=\"pygeodesy.sphericalNvector.LatLon-class.html\" \n        class=\"link\">LatLon</a>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"intermediateChordTo\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">intermediateChordTo</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>,\n        <span class=\"sig-arg\">fraction</span>,\n        <span class=\"sig-arg\">height</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Locate the point projected from the point at given fraction on a \n  straight line (chord) between this and an other point.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>other</code></strong> - The other point (<a \n          href=\"pygeodesy.sphericalNvector.LatLon-class.html\" \n          class=\"link\">LatLon</a>).</li>\n        <li><strong class=\"pname\"><code>fraction</code></strong> - Fraction between both points (float, between 0.0 for this and 1.0\n          for the other point).</li>\n        <li><strong class=\"pname\"><code>height</code></strong> - Optional height at the intermediate point, overriding the \n          fractional height (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll the \n          <b><code>other</code></b> point (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Intermediate point (<a \n          href=\"pygeodesy.sphericalNvector.LatLon-class.html\" \n          class=\"link\">LatLon</a>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - The <b><code>other</code></b> point is not <a \n        href=\"pygeodesy.sphericalNvector.LatLon-class.html\" \n        class=\"link\">LatLon</a>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"intermediateTo\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">intermediateTo</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>,\n        <span class=\"sig-arg\">fraction</span>,\n        <span class=\"sig-arg\">height</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Locate the point at a given fraction between this and an other \n  point.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>other</code></strong> - The other point (<a \n          href=\"pygeodesy.sphericalNvector.LatLon-class.html\" \n          class=\"link\">LatLon</a>).</li>\n        <li><strong class=\"pname\"><code>fraction</code></strong> - Fraction between both points (<code>float</code>, between 0.0 for\n          this and 1.0 for the other point).</li>\n        <li><strong class=\"pname\"><code>height</code></strong> - Optional height at the intermediate point, overriding the \n          fractional height (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll the \n          <b><code>other</code></b> point (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Intermediate point (<a \n          href=\"pygeodesy.sphericalNvector.LatLon-class.html\" \n          class=\"link\">LatLon</a>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - The <b><code>other</code></b> point is not <a \n        href=\"pygeodesy.sphericalNvector.LatLon-class.html\" \n        class=\"link\">LatLon</a>.</li>\n        <li><code><strong class='fraise'>Valuerror</strong></code> - Points coincide or invalid <b><code>height</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Methods <code>midpointTo</code> and <code>rhumbMidpointTo</code>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"intersection\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">intersection</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">end1</span>,\n        <span class=\"sig-arg\">start2</span>,\n        <span class=\"sig-arg\">end2</span>,\n        <span class=\"sig-arg\">height</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Locate an intersection point of two lines each defined by two points \n  or by a point and an (initial) bearing.</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd>The intersection point (<a \n          href=\"pygeodesy.sphericalNvector.LatLon-class.html\" \n          class=\"link\">LatLon</a>).</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <a \n        href=\"pygeodesy.sphericalNvector.LatLon-class.html#intersection2\" \n        class=\"link\">intersection2</a> for further details.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"intersection2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">intersection2</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">end1</span>,\n        <span class=\"sig-arg\">start2</span>,\n        <span class=\"sig-arg\">end2</span>,\n        <span class=\"sig-arg\">height</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Locate both intersections of two (great circle) lines each defined by \n  two points or by a point and an (initial) bearing.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>end1</code></strong> - End point of the line starting at this point (<a \n          href=\"pygeodesy.sphericalNvector.LatLon-class.html\" \n          class=\"link\">LatLon</a>) or the bearing at this point (compass \n          <code>degrees360</code>).</li>\n        <li><strong class=\"pname\"><code>start2</code></strong> - Start point of the other line (<a \n          href=\"pygeodesy.sphericalNvector.LatLon-class.html\" \n          class=\"link\">LatLon</a>).</li>\n        <li><strong class=\"pname\"><code>end2</code></strong> - End point of the other line (<a \n          href=\"pygeodesy.sphericalNvector.LatLon-class.html\" \n          class=\"link\">LatLon</a>) or the bearing at \n          <b><code>start2</code></b> (compass <code>degrees360</code>).</li>\n        <li><strong class=\"pname\"><code>height</code></strong> - Optional height at the intersection and antipodal point, \n          overriding the mean height (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll the \n          <b><code>start2</code></b> and both <b><code>end*</code></b> \n          points (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>2-Tuple <code>(intersection, antipode)</code>, each a \n          <b><code>LatLon</code></b>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - If <b><code>start2</code></b>, <b><code>end1</code></b> or \n        <b><code>end2</code></b> point is not <a \n        href=\"pygeodesy.sphericalNvector.LatLon-class.html\" \n        class=\"link\">LatLon</a>.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Intersection is ambiguous or infinite or the lines are parallel, \n        coincident or null.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a \n        href=\"pygeodesy.sphericalNvector-module.html#intersection2\" \n        class=\"link\">sphericalNvector.intersection2</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"isenclosedBy\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">isenclosedBy</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Check whether a (convex) polygon or composite encloses this point.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>points</code></strong> - The polygon points or composite (<a \n          href=\"pygeodesy.sphericalNvector.LatLon-class.html\" \n          class=\"link\">LatLon</a>[], <a \n          href=\"pygeodesy.booleans.BooleanFHP-class.html\" \n          class=\"link\">BooleanFHP</a> or <a \n          href=\"pygeodesy.booleans.BooleanGH-class.html\" \n          class=\"link\">BooleanGH</a>).</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll the \n          <b><code>points</code></b> (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>True</code> if this point is inside the polygon or \n          composite, <code>False</code> otherwise.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.PointsError-class.html\">PointsError</a></strong></code> - Insufficient number of <b><code>points</code></b>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Some <b><code>points</code></b> are not <a \n        href=\"pygeodesy.sphericalNvector.LatLon-class.html\" \n        class=\"link\">LatLon</a>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Functions <a href=\"pygeodesy.points-module.html#isconvex\" \n        class=\"link\">pygeodesy.isconvex</a>, <a \n        href=\"pygeodesy.points-module.html#isenclosedBy\" \n        class=\"link\">pygeodesy.isenclosedBy</a> and <a \n        href=\"pygeodesy.points-module.html#ispolar\" \n        class=\"link\">pygeodesy.ispolar</a> especially if the \n        <b><code>points</code></b> may enclose a pole or wrap around the \n        earth <i>longitudinally</i>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"isEnclosedBy\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">isEnclosedBy</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">points</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use method <code>isenclosedBy</code>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_method</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"iswithin\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">iswithin</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">point1</span>,\n        <span class=\"sig-arg\">point2</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Check whether this point is between two other points.</p>\n  <p>If this point is not on the great circle arc defined by both points, \n  return whether it is within the area bound by perpendiculars to the great\n  circle at each point (in the same hemispere).</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>point1</code></strong> - Start point of the arc (<a \n          href=\"pygeodesy.sphericalNvector.LatLon-class.html\" \n          class=\"link\">LatLon</a>).</li>\n        <li><strong class=\"pname\"><code>point2</code></strong> - End point of the arc (<a \n          href=\"pygeodesy.sphericalNvector.LatLon-class.html\" \n          class=\"link\">LatLon</a>).</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll \n          <b><code>point1</code></b> and <b><code>point2</code></b> \n          (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>True</code> if this point is within the (great circle) arc,\n          <code>False</code> otherwise.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - If <b><code>point1</code></b> or <b><code>point2</code></b> is not \n        <a href=\"pygeodesy.sphericalNvector.LatLon-class.html\" \n        class=\"link\">LatLon</a>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"isWithin\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">isWithin</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">point1</span>,\n        <span class=\"sig-arg\">point2</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use method <code>iswithin</code>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_method</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"midpointTo\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">midpointTo</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>,\n        <span class=\"sig-arg\">height</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">fraction</span>=<span class=\"sig-default\">0.5</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Find the midpoint between this and an other point.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>other</code></strong> - The other point (<a \n          href=\"pygeodesy.sphericalNvector.LatLon-class.html\" \n          class=\"link\">LatLon</a>).</li>\n        <li><strong class=\"pname\"><code>height</code></strong> - Optional height at the midpoint, overriding the mean height \n          (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>fraction</code></strong> - Midpoint location from this point (<code>scalar</code>), may be \n          negative or greater than 1.0.</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll the \n          <b><code>other</code></b> point (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Midpoint (<a href=\"pygeodesy.sphericalNvector.LatLon-class.html\" \n          class=\"link\">LatLon</a>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - The <b><code>other</code></b> point is not <a \n        href=\"pygeodesy.sphericalNvector.LatLon-class.html\" \n        class=\"link\">LatLon</a>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Methods <code>intermediateTo</code> and \n        <code>rhumbMidpointTo</code>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"nearestOn\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">nearestOn</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">point1</span>,\n        <span class=\"sig-arg\">point2</span>,\n        <span class=\"sig-arg\">height</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">within</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Locate the point on the great circle arc between two points closest to\n  this point.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>point1</code></strong> - Start point of the arc (<a \n          href=\"pygeodesy.sphericalNvector.LatLon-class.html\" \n          class=\"link\">LatLon</a>).</li>\n        <li><strong class=\"pname\"><code>point2</code></strong> - End point of the arc (<a \n          href=\"pygeodesy.sphericalNvector.LatLon-class.html\" \n          class=\"link\">LatLon</a>).</li>\n        <li><strong class=\"pname\"><code>height</code></strong> - Optional height, overriding the mean height for the point within \n          the arc (<code>meter</code>), or <code>None</code> to interpolate\n          the height.</li>\n        <li><strong class=\"pname\"><code>within</code></strong> - If <code>True</code>, return the closest point between both given\n          points, otherwise the closest point elsewhere on the great circle\n          arc (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll \n          <b><code>point1</code></b> and <b><code>point2</code></b> \n          (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Closest point on the arc (<a \n          href=\"pygeodesy.sphericalNvector.LatLon-class.html\" \n          class=\"link\">LatLon</a>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>NotImplementedError</strong></code> - Keyword argument <code><b>wrap</b>=True</code> not supported.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>point1</code></b> or <b><code>point2</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"nearestOn2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">nearestOn2</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">**closed_radius_height</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use method <a \n  href=\"pygeodesy.sphericalNvector.LatLon-class.html#nearestOn3\" \n  class=\"link\">sphericalNvector.LatLon.nearestOn3</a>.</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd>... 2-Tuple <code>(closest, distance)</code> of the \n          <code>closest</code> point (<a \n          href=\"pygeodesy.sphericalNvector.LatLon-class.html\" \n          class=\"link\">LatLon</a>) on the polygon and the \n          <code>distance</code> to that point from this point ...</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"nearestOn3\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">nearestOn3</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">closed</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">radius</span>=<span class=\"sig-default\">6371008.771415</span>,\n        <span class=\"sig-arg\">height</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Locate the point on a path or polygon (with great circle arcs joining \n  consecutive points) closest to this point.</p>\n  <p>The closest point is either on within the extent of any great circle \n  arc or the nearest of the arc's end points.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>points</code></strong> - The path or polygon points (<a \n          href=\"pygeodesy.sphericalNvector.LatLon-class.html\" \n          class=\"link\">LatLon</a>[]).</li>\n        <li><strong class=\"pname\"><code>closed</code></strong> - Optionally, close the polygon (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>radius</code></strong> - Mean earth radius (<code>meter</code>) or <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>height</code></strong> - Optional height, overriding the mean height for a point within \n          the arc (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll the \n          <b><code>points</code></b> (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.namedTuples.NearestOn3Tuple-class.html\" \n          class=\"link\">NearestOn3Tuple</a><code>(closest, distance, \n          angle)</code> of the <code>closest</code> point (<a \n          href=\"pygeodesy.sphericalNvector.LatLon-class.html\" \n          class=\"link\">LatLon</a>), the <code>distance</code> between this \n          and the <code>closest</code> point in <code>meter</code>, same \n          units as <b><code>radius</code></b> (or in <code>radians</code> \n          if <code><b>radius</b> is None</code>) and the <code>angle</code>\n          from this to the <code>closest</code> point in compass \n          <code>degrees360</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Some <b><code>points</code></b> are not <code>LatLon</code>.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - No <b><code>points</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toCartesian\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toCartesian</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">**Cartesian_and_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert this point to <code>Nvector</code>-based cartesian (ECEF) \n  coordinates.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>Cartesian_and_kwds</code></strong> - Optional <a \n          href=\"pygeodesy.sphericalNvector.Cartesian-class.html\" \n          class=\"link\">Cartesian</a> and <a \n          href=\"pygeodesy.sphericalNvector.Cartesian-class.html\" \n          class=\"link\">Cartesian</a> keyword arguments, like \n          <code>datum</code>.  Use <code><b>Cartesian</b>=...</code> to \n          override this <a \n          href=\"pygeodesy.sphericalNvector.Cartesian-class.html\" \n          class=\"link\">Cartesian</a> class or specify \n          <code><b>Cartesian</b>=None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.sphericalNvector.Cartesian-class.html\" \n          class=\"link\">Cartesian</a> or if <code><b>Cartesian</b> is \n          None</code>, an <a href=\"pygeodesy.ecef.Ecef9Tuple-class.html\" \n          class=\"link\">Ecef9Tuple</a><code>(x, y, z, lat, lon, height, C, \n          M, datum)</code> with <code>C</code> and <code>M</code> if \n          available.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <a href=\"pygeodesy.sphericalNvector.Cartesian-class.html\" \n        class=\"link\">Cartesian</a> or other \n        <b><code>Cartesian_and_kwds</code></b> item.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toCartesian\">latlonBase.LatLonBase.toCartesian</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toNvector\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toNvector</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">**Nvector_and_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert this point to <code>Nvector</code> components, <i>including \n  height</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>Nvector_and_kwds</code></strong> - Optional <code>Nvector</code> and <code>Nvector</code> keyword \n          arguments. Specify <code><b>Nvector</b>=...</code> to override \n          this <code>Nvector</code> class or use \n          <code><b>Nvector</b>=None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>An <code>Nvector</code> or if <code><b>Nvector</b> is \n          None</code>, a <a \n          href=\"pygeodesy.namedTuples.Vector4Tuple-class.html\" \n          class=\"link\">Vector4Tuple</a><code>(x, y, z, h)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <code>Nvector</code> or other \n        <b><code>Nvector_and_kwds</code></b> item.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toNvector\">latlonBase.LatLonBase.toNvector</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.sphericalNvector.Nvector-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.sphericalNvector.Nvector</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.sphericalNvector-module.html\">Module&nbsp;sphericalNvector</a> ::\n        Class&nbsp;Nvector\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.sphericalNvector.Nvector-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Nvector</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n       object --+                    \n                |                    \n     <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+                \n                    |                \n     <a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+            \n                        |            \n<a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">vector3dBase.Vector3dBase</a> --+        \n                            |        \n            <a href=\"pygeodesy.vector3d.Vector3d-class.html\">vector3d.Vector3d</a> --+    \n                                |    \n          <a href=\"pygeodesy.nvectorBase.NvectorBase-class.html\">nvectorBase.NvectorBase</a> --+\n                                    |\n                                   <strong class=\"uidshort\">Nvector</strong>\n</pre>\n\n<hr />\n<p>An n-vector is a position representation using a (unit) vector normal \n  to the earth's surface.  Unlike lat-/longitude points, n-vectors have no \n  singularities or discontinuities.</p>\n  <p>For many applications, n-vectors are more convenient to work with than\n  other position representations like lat-/longitude, earth-centred \n  earth-fixed (ECEF) vectors, UTM coordinates, etc.</p>\n  <p>On a spherical model earth, an n-vector is equivalent to an \n  earth-centred earth-fixed (ECEF) vector.</p>\n  <p>Note commonality with <a \n  href=\"pygeodesy.ellipsoidalNvector.Nvector-class.html\" \n  class=\"link\">pygeodesy.ellipsoidalNvector.Nvector</a>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.sphericalNvector.Nvector-class.html#toCartesian\" class=\"summary-sig-name\">toCartesian</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">**Cartesian_and_kwds</span>)</span><br />\n      Convert this n-vector to <code>Nvector</code>-based cartesian (ECEF) \n      coordinates.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.sphericalNvector.Nvector-class.html#toLatLon\" class=\"summary-sig-name\">toLatLon</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">**LatLon_and_kwds</span>)</span><br />\n      Convert this n-vector to an <code>Nvector</code>-based geodetic \n      point.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.sphericalNvector.Nvector-class.html#greatCircle\" class=\"summary-sig-name\">greatCircle</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">bearing</span>)</span><br />\n      Compute the n-vector normal to great circle obtained by heading on \n      given (initial) bearing from this point as its n-vector.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html\">nvectorBase.NvectorBase</a></code></b>:\n      <code><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#__init__\">__init__</a></code>,\n      <code><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#hStr\">hStr</a></code>,\n      <code><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#to2ab\">to2ab</a></code>,\n      <code><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#to2ll\">to2ll</a></code>,\n      <code><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#to3abh\">to3abh</a></code>,\n      <code><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#to3llh\">to3llh</a></code>,\n      <code><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#to4xyzh\">to4xyzh</a></code>,\n      <code><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#toVector3d\">toVector3d</a></code>,\n      <code><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#unit\">unit</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.vector3d.Vector3d-class.html\">vector3d.Vector3d</a></code></b>:\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#bearing\">bearing</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#circin6\">circin6</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#circum3\">circum3</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#circum4_\">circum4_</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#iscolinearWith\">iscolinearWith</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#meeus2\">meeus2</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#nearestOn\">nearestOn</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#nearestOn6\">nearestOn6</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#parse\">parse</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#radii11\">radii11</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#soddy4\">soddy4</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#trilaterate2d2\">trilaterate2d2</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#trilaterate3d2\">trilaterate3d2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">vector3dBase.Vector3dBase</a></code></b>:\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__abs__\">__abs__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__add__\">__add__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__bool__\">__bool__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__ceil__\">__ceil__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__cmp__\">__cmp__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__div__\">__div__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__divmod__\">__divmod__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__eq__\">__eq__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__float__\">__float__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__floor__\">__floor__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__floordiv__\">__floordiv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__ge__\">__ge__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__gt__\">__gt__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__iadd__\">__iadd__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__idiv__\">__idiv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__ifloordiv__\">__ifloordiv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__imod__\">__imod__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__imul__\">__imul__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__int__\">__int__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__ipow__\">__ipow__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__isub__\">__isub__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__itruediv__\">__itruediv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__le__\">__le__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__long__\">__long__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__lt__\">__lt__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__mod__\">__mod__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__mul__\">__mul__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__ne__\">__ne__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__neg__\">__neg__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__nonzero__\">__nonzero__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__pos__\">__pos__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__pow__\">__pow__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__radd__\">__radd__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rdiv__\">__rdiv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rdivmod__\">__rdivmod__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rfloordiv__\">__rfloordiv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rmod__\">__rmod__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rmul__\">__rmul__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__round__\">__round__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rpow__\">__rpow__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rsub__\">__rsub__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rtruediv__\">__rtruediv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__sub__\">__sub__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__truediv__\">__truediv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__trunc__\">__trunc__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#angleTo\">angleTo</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#apply\">apply</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#bools\">bools</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#cmp\">cmp</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#cross\">cross</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#dividedBy\">dividedBy</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#dividedBy_\">dividedBy_</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#dot\">dot</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#equals\">equals</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#equirectangular\">equirectangular</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#fabs\">fabs</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#floats\">floats</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#floorDividedBy\">floorDividedBy</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#floorDividedBy_\">floorDividedBy_</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#intermediateTo\">intermediateTo</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#ints\">ints</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#isconjugateTo\">isconjugateTo</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#isequalTo\">isequalTo</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#minus\">minus</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#minus_\">minus_</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#negate\">negate</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#others\">others</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#plus\">plus</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#plus_\">plus_</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#pow\">pow</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#rotate\">rotate</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#rotateAround\">rotateAround</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#sum\">sum</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#times\">times</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#times_\">times_</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#to3xyz\">to3xyz</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#toRepr\">toRepr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.sphericalNvector.Nvector-class.html#sphericalNvector\" class=\"summary-name\">sphericalNvector</a><br />\n      Get this <code>Nvector</code>'s spherical class.\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html\">nvectorBase.NvectorBase</a></code></b>:\n      <code><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#Ecef\">Ecef</a></code>,\n      <code><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#H\">H</a></code>,\n      <code><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#datum\">datum</a></code>,\n      <code><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#ellipsoidalNvector\">ellipsoidalNvector</a></code>,\n      <code><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#h\">h</a></code>,\n      <code><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#isEllipsoidal\">isEllipsoidal</a></code>,\n      <code><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#isSpherical\">isSpherical</a></code>,\n      <code><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#lam\">lam</a></code>,\n      <code><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#lat\">lat</a></code>,\n      <code><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#latlon\">latlon</a></code>,\n      <code><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#latlonheight\">latlonheight</a></code>,\n      <code><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#latlonheightdatum\">latlonheightdatum</a></code>,\n      <code><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#lon\">lon</a></code>,\n      <code><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#phi\">phi</a></code>,\n      <code><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#philam\">philam</a></code>,\n      <code><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#philamheight\">philamheight</a></code>,\n      <code><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#philamheightdatum\">philamheightdatum</a></code>,\n      <code><a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#xyzh\">xyzh</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">vector3dBase.Vector3dBase</a></code></b>:\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#crosserrors\">crosserrors</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#euclid\">euclid</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#homogeneous\">homogeneous</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#length\">length</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#length2\">length2</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#x\">x</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#x2y2z2\">x2y2z2</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#x2y2z23\">x2y2z23</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#xyz\">xyz</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#xyz3\">xyz3</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#y\">y</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#z\">z</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"toCartesian\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toCartesian</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">**Cartesian_and_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert this n-vector to <code>Nvector</code>-based cartesian (ECEF) \n  coordinates.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>Cartesian_and_kwds</code></strong> - Optional <a \n          href=\"pygeodesy.sphericalNvector.Cartesian-class.html\" \n          class=\"link\">Cartesian</a> and <a \n          href=\"pygeodesy.sphericalNvector.Cartesian-class.html\" \n          class=\"link\">Cartesian</a> keyword arguments, like \n          <code>h</code>.  Use <code><b>Cartesian</b>=...</code> to \n          override this <a \n          href=\"pygeodesy.sphericalNvector.Cartesian-class.html\" \n          class=\"link\">Cartesian</a> class or specify \n          <code><b>Cartesian</b>=None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The cartesian point (<a \n          href=\"pygeodesy.sphericalNvector.Cartesian-class.html\" \n          class=\"link\">Cartesian</a>) or if <b><code>Cartesian</code></b> \n          is set to <code>None</code>, an <a \n          href=\"pygeodesy.ecef.Ecef9Tuple-class.html\" \n          class=\"link\">Ecef9Tuple</a><code>(x, y, z, lat, lon, height, C, \n          M, datum)</code> with <code>C</code> and <code>M</code> if \n          available.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>Cartesian_and_kwds</code></b> argument.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.vector3d.Vector3d-class.html#toCartesian\">vector3d.Vector3d.toCartesian</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toLatLon\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toLatLon</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">**LatLon_and_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert this n-vector to an <code>Nvector</code>-based geodetic \n  point.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>LatLon_and_kwds</code></strong> - Optional <a href=\"pygeodesy.sphericalNvector.LatLon-class.html\" \n          class=\"link\">LatLon</a> and <a \n          href=\"pygeodesy.sphericalNvector.LatLon-class.html\" \n          class=\"link\">LatLon</a> keyword arguments, like \n          <code>height</code>.  Use <code><b>LatLon</b>=...</code> to \n          override this <a \n          href=\"pygeodesy.sphericalNvector.LatLon-class.html\" \n          class=\"link\">LatLon</a> class or specify \n          <code><b>LatLon</b>=None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The geodetic point (<a \n          href=\"pygeodesy.sphericalNvector.LatLon-class.html\" \n          class=\"link\">LatLon</a>) or if <b><code>LatLon</code></b> is set \n          to <code>None</code>, an <a \n          href=\"pygeodesy.ecef.Ecef9Tuple-class.html\" \n          class=\"link\">Ecef9Tuple</a><code>(x, y, z, lat, lon, height, C, \n          M, datum)</code> with <code>C</code> and <code>M</code> if \n          available.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>LatLon_and_kwds</code></b> argument.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>height</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.nvectorBase.NvectorBase-class.html#toLatLon\">nvectorBase.NvectorBase.toLatLon</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"greatCircle\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">greatCircle</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">bearing</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the n-vector normal to great circle obtained by heading on \n  given (initial) bearing from this point as its n-vector.</p>\n  <p>Direction of vector is such that initial bearing vector b = c &#215; p.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>bearing</code></strong> - Initial bearing (compass <code>degrees360</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>N-vector representing great circle (<code>Nvector</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>Valuerror</strong></code> - Polar coincidence.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"sphericalNvector\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">sphericalNvector</h3>\n  <p>Get this <code>Nvector</code>'s spherical class.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">sphericalNvector(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get this <code>Nvector</code>'s spherical class.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.sphericalTrigonometry-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.sphericalTrigonometry</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        Module&nbsp;sphericalTrigonometry\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.sphericalTrigonometry-module.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== MODULE DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Module sphericalTrigonometry</h1><p class=\"nomargin-top\"></p>\n<p>Spherical, <code>trigonometry</code>-based geodesy.</p>\n  <p>Trigonometric classes geodetic (lat-/longitude) <a \n  href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html\" \n  class=\"link\">LatLon</a> and geocentric (ECEF) <a \n  href=\"pygeodesy.sphericalTrigonometry.Cartesian-class.html\" \n  class=\"link\">Cartesian</a> and functions <a \n  href=\"pygeodesy.sphericalTrigonometry-module.html#areaOf\" \n  class=\"link\">areaOf</a>, <a \n  href=\"pygeodesy.sphericalTrigonometry-module.html#intersection\" \n  class=\"link\">intersection</a>, <a \n  href=\"pygeodesy.sphericalTrigonometry-module.html#intersections2\" \n  class=\"link\">intersections2</a>, <a \n  href=\"pygeodesy.sphericalTrigonometry-module.html#isPoleEnclosedBy\" \n  class=\"link\">isPoleEnclosedBy</a>, <a \n  href=\"pygeodesy.sphericalTrigonometry-module.html#meanOf\" \n  class=\"link\">meanOf</a>, <a \n  href=\"pygeodesy.sphericalTrigonometry-module.html#nearestOn3\" \n  class=\"link\">nearestOn3</a> and <a \n  href=\"pygeodesy.sphericalTrigonometry-module.html#perimeterOf\" \n  class=\"link\">perimeterOf</a>, <i>all spherical</i>.</p>\n  <p>Pure Python implementation of geodetic (lat-/longitude) methods using \n  spherical trigonometry, transcoded from JavaScript originals by <i>(C) \n  Chris Veness 2011-2024</i> published under the same MIT Licence**, see <a\n  href=\"https://www.Movable-Type.co.UK/scripts/latlong.html\" \n  target=\"_top\">Latitude/Longitude</a>.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Version:</strong>\n        25.08.31\n      </p>\n</div><!-- ==================== CLASSES ==================== -->\n<a name=\"section-Classes\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Classes</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.sphericalTrigonometry.Cartesian-class.html\" class=\"summary-name\">Cartesian</a><br />\n      Extended to convert geocentric, <a \n        href=\"pygeodesy.sphericalTrigonometry.Cartesian-class.html\" \n        class=\"link\">Cartesian</a> points to spherical, geodetic <a \n        href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html\" \n        class=\"link\">LatLon</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html\" class=\"summary-name\">LatLon</a><br />\n      New point on a spherical earth model, based on trigonometry \n        formulae.\n    </td>\n  </tr>\n</table>\n<!-- ==================== FUNCTIONS ==================== -->\n<a name=\"section-Functions\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Functions</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.sphericalTrigonometry-module.html#ispolar\" class=\"summary-sig-name\">ispolar</a>(<span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Check whether a polygon encloses a pole.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.sphericalTrigonometry-module.html#sumOf\" class=\"summary-sig-name\">sumOf</a>(<span class=\"summary-sig-arg\">vectors</span>,\n        <span class=\"summary-sig-arg\">Vector</span>=<span class=\"summary-sig-default\">&lt;class 'pygeodesy.vector3d.Vector3d'&gt;</span>,\n        <span class=\"summary-sig-arg\">**Vector_kwds</span>)</span><br />\n      Compute the <i>vectorial</i> sum of two oe more vectors.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.sphericalTrigonometry-module.html#areaOf\" class=\"summary-sig-name\">areaOf</a>(<span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">radius</span>=<span class=\"summary-sig-default\">6371008.771415</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">polar</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Calculate the area of a (spherical) polygon or composite (with the \n      points joined by great circle arcs).</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.sphericalTrigonometry-module.html#intersecant2\" class=\"summary-sig-name\">intersecant2</a>(<span class=\"summary-sig-arg\">center</span>,\n        <span class=\"summary-sig-arg\">circle</span>,\n        <span class=\"summary-sig-arg\">point</span>,\n        <span class=\"summary-sig-arg\">other</span>,\n        <span class=\"summary-sig-arg\">**radius_exact_height_wrap</span>)</span><br />\n      Compute the intersections of a circle and a (great circle) line given\n      as two points or as a point and a bearing from North.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.sphericalTrigonometry-module.html#intersection\" class=\"summary-sig-name\">intersection</a>(<span class=\"summary-sig-arg\">start1</span>,\n        <span class=\"summary-sig-arg\">end1</span>,\n        <span class=\"summary-sig-arg\">start2</span>,\n        <span class=\"summary-sig-arg\">end2</span>,\n        <span class=\"summary-sig-arg\">height</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">**LatLon_and_kwds</span>)</span><br />\n      Compute the intersection point of two lines, each defined by two \n      points or by a start point and a bearing from North.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.sphericalTrigonometry-module.html#intersections2\" class=\"summary-sig-name\">intersections2</a>(<span class=\"summary-sig-arg\">center1</span>,\n        <span class=\"summary-sig-arg\">rad1</span>,\n        <span class=\"summary-sig-arg\">center2</span>,\n        <span class=\"summary-sig-arg\">rad2</span>,\n        <span class=\"summary-sig-arg\">radius</span>=<span class=\"summary-sig-default\">6371008.771415</span>,\n        <span class=\"summary-sig-arg\">eps</span>=<span class=\"summary-sig-default\">0.0</span>,\n        <span class=\"summary-sig-arg\">height</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">**LatLon_and_kwds</span>)</span><br />\n      Compute the intersection points of two circles each defined by a \n      center point and a radius.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.sphericalTrigonometry-module.html#isPoleEnclosedBy\" class=\"summary-sig-name\">isPoleEnclosedBy</a>(<span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      DEPRECATED, use function <a \n      href=\"pygeodesy.points-module.html#ispolar\" \n      class=\"link\">pygeodesy.ispolar</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.sphericalTrigonometry-module.html#meanOf\" class=\"summary-sig-name\">meanOf</a>(<span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">height</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">LatLon</span>=<span class=\"summary-sig-default\">&lt;class 'pygeodesy.sphericalTrigonometry.LatLon'&gt;</span>,\n        <span class=\"summary-sig-arg\">**LatLon_kwds</span>)</span><br />\n      Compute the <i>geographic</i> mean of several points.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.sphericalTrigonometry-module.html#nearestOn2\" class=\"summary-sig-name\">nearestOn2</a>(<span class=\"summary-sig-arg\">point</span>,\n        <span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">**closed_radius_LatLon_options</span>)</span><br />\n      DEPRECATED, use function <a \n      href=\"pygeodesy.sphericalTrigonometry-module.html#nearestOn3\" \n      class=\"link\">sphericalTrigonometry.nearestOn3</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.sphericalTrigonometry-module.html#nearestOn3\" class=\"summary-sig-name\">nearestOn3</a>(<span class=\"summary-sig-arg\">point</span>,\n        <span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">closed</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">radius</span>=<span class=\"summary-sig-default\">6371008.771415</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">adjust</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">limit</span>=<span class=\"summary-sig-default\">9</span>,\n        <span class=\"summary-sig-arg\">**LatLon_and_kwds</span>)</span><br />\n      Locate the point on a path or polygon closest to a reference point.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.sphericalTrigonometry-module.html#perimeterOf\" class=\"summary-sig-name\">perimeterOf</a>(<span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">closed</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">radius</span>=<span class=\"summary-sig-default\">6371008.771415</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">True</span>)</span><br />\n      Compute the perimeter of a (spherical) polygon or composite (with \n      great circle arcs joining the points).</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.sphericalTrigonometry-module.html#triangle7\" class=\"summary-sig-name\">triangle7</a>(<span class=\"summary-sig-arg\">latA</span>,\n        <span class=\"summary-sig-arg\">lonA</span>,\n        <span class=\"summary-sig-arg\">latB</span>,\n        <span class=\"summary-sig-arg\">lonB</span>,\n        <span class=\"summary-sig-arg\">latC</span>,\n        <span class=\"summary-sig-arg\">lonC</span>,\n        <span class=\"summary-sig-arg\">radius</span>=<span class=\"summary-sig-default\">6371008.771415</span>,\n        <span class=\"summary-sig-arg\">excess</span>=<span class=\"summary-sig-default\">&lt;function excessAbc_ at 0x7fc1d84b7550&gt;</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Compute the angles, sides, and area of a (spherical) triangle.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.sphericalTrigonometry-module.html#triangle8_\" class=\"summary-sig-name\">triangle8_</a>(<span class=\"summary-sig-arg\">phiA</span>,\n        <span class=\"summary-sig-arg\">lamA</span>,\n        <span class=\"summary-sig-arg\">phiB</span>,\n        <span class=\"summary-sig-arg\">lamB</span>,\n        <span class=\"summary-sig-arg\">phiC</span>,\n        <span class=\"summary-sig-arg\">lamC</span>,\n        <span class=\"summary-sig-arg\">excess</span>=<span class=\"summary-sig-default\">&lt;function excessAbc_ at 0x7fc1d84b7550&gt;</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Compute the angles, sides, <i>spherical deficit</i> and <i>spherical \n      excess</i> of a (spherical) triangle.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== VARIABLES ==================== -->\n<a name=\"section-Variables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Variables</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"__all__\"></a><span class=\"summary-name\">__all__</span> = <code title=\"_ALL_LAZY.sphericalTrigonometry\">_ALL_LAZY.sphericalTrigonometry</code>\n    </td>\n  </tr>\n</table>\n<!-- ==================== FUNCTION DETAILS ==================== -->\n<a name=\"section-FunctionDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Function Details</span></td>\n</tr>\n</table>\n<a name=\"ispolar\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">ispolar</span>&nbsp;(<span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Check whether a polygon encloses a pole.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>points</code></strong> - The polygon points (<code>LatLon</code>[]).</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll the \n          <b><code>points</code></b> (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>True</code> if the polygon encloses a pole, \n          <code>False</code> otherwise.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.PointsError-class.html\">PointsError</a></strong></code> - Insufficient number of <b><code>points</code></b></li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Some <b><code>points</code></b> are not <code>LatLon</code> or \n        don't have <code>bearingTo2</code>, <code>initialBearingTo</code> \n        and <code>finalBearingTo</code> methods.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"sumOf\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">sumOf</span>&nbsp;(<span class=\"sig-arg\">vectors</span>,\n        <span class=\"sig-arg\">Vector</span>=<span class=\"sig-default\">&lt;class 'pygeodesy.vector3d.Vector3d'&gt;</span>,\n        <span class=\"sig-arg\">**Vector_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the <i>vectorial</i> sum of two oe more vectors.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>vectors</code></strong> - Vectors to be added (<a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>[]).</li>\n        <li><strong class=\"pname\"><code>Vector</code></strong> - Optional class for the vectorial sum (<a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>).</li>\n        <li><strong class=\"pname\"><code>Vector_kwds</code></strong> - Optional <b><code>Vector</code></b> keyword arguments, ignored if\n          <code><b>Vector</b> is None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Vectorial sum as <b><code>Vector</code></b> or if \n          <b><code>Vector</code> is None</b>, a named <a \n          href=\"pygeodesy.namedTuples.Vector3Tuple-class.html\" \n          class=\"link\">Vector3Tuple</a><code>(x, y, z)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.VectorError-class.html\">VectorError</a></strong></code> - No <b><code>vectors</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"areaOf\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">areaOf</span>&nbsp;(<span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">radius</span>=<span class=\"sig-default\">6371008.771415</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">polar</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Calculate the area of a (spherical) polygon or composite (with the \n  points joined by great circle arcs).</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>points</code></strong> - The polygon points or clips (<a \n          href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html\" \n          class=\"link\">LatLon</a>[], <a \n          href=\"pygeodesy.booleans.BooleanFHP-class.html\" \n          class=\"link\">BooleanFHP</a> or <a \n          href=\"pygeodesy.booleans.BooleanGH-class.html\" \n          class=\"link\">BooleanGH</a>).</li>\n        <li><strong class=\"pname\"><code>radius</code></strong> - Mean earth radius, ellipsoid or datum (<code>meter</code>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a>, <a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a> \n          or <a href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>) or <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll the \n          <b><code>points</code></b> (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>polar</code></strong> - Use <code><b>polar</b>=True</code> if the polygon encloses a pole\n          (<code>bool</code>), see function <a \n          href=\"pygeodesy.points-module.html#ispolar\" \n          class=\"link\">ispolar</a> and <a \n          href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1GeodesicExact.html#a3d7a9155e838a09a48dc14d0c3fac525\"\n          target=\"_top\">area of a polygon enclosing a pole</a>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Polygon area (<code>meter</code> <i>quared</i>, same units as \n          <b><code>radius</code></b> or <code>radians</code> if \n          <code><b>radius</b> is None</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.PointsError-class.html\">PointsError</a></strong></code> - Insufficient number of <b><code>points</code></b>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Some <b><code>points</code></b> are not <a \n        href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html\" \n        class=\"link\">LatLon</a>.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>radius</code></b> or semi-circular polygon edge.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        The area is based on <i>Karney</i>'s <a \n        href=\"https://MathOverflow.net/questions/97711/the-area-of-spherical-polygons\"\n        target=\"_top\">'Area of a spherical polygon'</a>, 3rd Answer.\n      </p>\n      <p><strong>See Also:</strong>\n        Functions <a href=\"pygeodesy.points-module.html#areaOf\" \n        class=\"link\">pygeodesy.areaOf</a>, <a \n        href=\"pygeodesy.sphericalNvector-module.html#areaOf\" \n        class=\"link\">sphericalNvector.areaOf</a>, <a \n        href=\"pygeodesy.formy-module.html#excessKarney\" \n        class=\"link\">pygeodesy.excessKarney</a>, <a \n        href=\"pygeodesy.ellipsoidalExact-module.html#areaOf\" \n        class=\"link\">ellipsoidalExact.areaOf</a> and <a \n        href=\"pygeodesy.ellipsoidalKarney-module.html#areaOf\" \n        class=\"link\">ellipsoidalKarney.areaOf</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"intersecant2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">intersecant2</span>&nbsp;(<span class=\"sig-arg\">center</span>,\n        <span class=\"sig-arg\">circle</span>,\n        <span class=\"sig-arg\">point</span>,\n        <span class=\"sig-arg\">other</span>,\n        <span class=\"sig-arg\">**radius_exact_height_wrap</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the intersections of a circle and a (great circle) line given \n  as two points or as a point and a bearing from North.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>center</code></strong> - Center of the circle (<a \n          href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html\" \n          class=\"link\">LatLon</a>).</li>\n        <li><strong class=\"pname\"><code>circle</code></strong> - Radius of the circle (<code>meter</code>, same units as the earth\n          <b><code>radius</code></b>) or a point on the circle (<a \n          href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html\" \n          class=\"link\">LatLon</a>).</li>\n        <li><strong class=\"pname\"><code>point</code></strong> - A point on the (great circle) line (<a \n          href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html\" \n          class=\"link\">LatLon</a>).</li>\n        <li><strong class=\"pname\"><code>other</code></strong> - An other point on the (great circle) line (<a \n          href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html\" \n          class=\"link\">LatLon</a>) or the bearing at the \n          <b><code>point</code></b> (compass <code>degrees360</code>).</li>\n        <li><strong class=\"pname\"><code>radius_exact_height_wrap</code></strong> - Optional keyword arguments, see method <a \n          href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html#intersecant2\"\n          class=\"link\">intersecant2</a> for further details.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>2-Tuple of the intersection points (representing a chord), each \n          an instance of the <b><code>point</code></b> class.  Both points \n          are the same instance if the (great circle) line is tangent to \n          the circle.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.IntersectionError-class.html\">IntersectionError</a></strong></code> - The circle and line do not intersect.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - If <b><code>center</code></b>, <b><code>point</code></b>, \n        <b><code>circle</code></b> or <b><code>other</code></b> not <a \n        href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html\" \n        class=\"link\">LatLon</a>.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.UnitError-class.html\">UnitError</a></strong></code> - Invalid <b><code>circle</code></b>, <b><code>other</code></b>, \n        <b><code>radius</code></b>, <b><code>exact</code></b>, \n        <b><code>height</code></b> or <b><code>napieradius</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"intersection\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">intersection</span>&nbsp;(<span class=\"sig-arg\">start1</span>,\n        <span class=\"sig-arg\">end1</span>,\n        <span class=\"sig-arg\">start2</span>,\n        <span class=\"sig-arg\">end2</span>,\n        <span class=\"sig-arg\">height</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">**LatLon_and_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the intersection point of two lines, each defined by two \n  points or by a start point and a bearing from North.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>start1</code></strong> - Start point of the first line (<a \n          href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html\" \n          class=\"link\">LatLon</a>).</li>\n        <li><strong class=\"pname\"><code>end1</code></strong> - End point of the first line (<a \n          href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html\" \n          class=\"link\">LatLon</a>) or the bearing at the first start point \n          (compass <code>degrees360</code>).</li>\n        <li><strong class=\"pname\"><code>start2</code></strong> - Start point of the second line (<a \n          href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html\" \n          class=\"link\">LatLon</a>).</li>\n        <li><strong class=\"pname\"><code>end2</code></strong> - End point of the second line (<a \n          href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html\" \n          class=\"link\">LatLon</a>) or the bearing at the second start point\n          (compass <code>degrees360</code>).</li>\n        <li><strong class=\"pname\"><code>height</code></strong> - Optional height for the intersection point, overriding the mean \n          height (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll \n          <b><code>start2</code></b> and both <b><code>end*</code></b> \n          points (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>LatLon_and_kwds</code></strong> - Optional class <code><b>LatLon</b>=</code><a \n          href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html\" \n          class=\"link\">LatLon</a> to use for the intersection point and \n          optionally additional <b><code>LatLon</code></b> keyword \n          arguments, ignored if <code><b>LatLon</b> is None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The intersection point as a (<b><code>LatLon</code></b>) or if \n          <code><b>LatLon</b> is None</code> a <a \n          href=\"pygeodesy.namedTuples.LatLon3Tuple-class.html\" \n          class=\"link\">LatLon3Tuple</a><code>(lat, lon, height)</code>.  An\n          alternate intersection point might be the <a \n          href=\"pygeodesy.formy-module.html#antipode\" \n          class=\"link\">antipode</a> to the returned result.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.IntersectionError-class.html\">IntersectionError</a></strong></code> - Ambiguous or infinite intersection or colinear, parallel or \n        otherwise non-intersecting lines.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - A <b><code>start1</code></b>, <b><code>end1</code></b>, \n        <b><code>start2</code></b> or <b><code>end2</code></b> point not <a\n        href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html\" \n        class=\"link\">LatLon</a>.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>height</code></b> or <code>null</code> line.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"intersections2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">intersections2</span>&nbsp;(<span class=\"sig-arg\">center1</span>,\n        <span class=\"sig-arg\">rad1</span>,\n        <span class=\"sig-arg\">center2</span>,\n        <span class=\"sig-arg\">rad2</span>,\n        <span class=\"sig-arg\">radius</span>=<span class=\"sig-default\">6371008.771415</span>,\n        <span class=\"sig-arg\">eps</span>=<span class=\"sig-default\">0.0</span>,\n        <span class=\"sig-arg\">height</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">**LatLon_and_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the intersection points of two circles each defined by a \n  center point and a radius.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>center1</code></strong> - Center of the first circle (<a \n          href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html\" \n          class=\"link\">LatLon</a>).</li>\n        <li><strong class=\"pname\"><code>rad1</code></strong> - Radius of the first circle (<code>meter</code> or \n          <code>radians</code>, see <b><code>radius</code></b>).</li>\n        <li><strong class=\"pname\"><code>center2</code></strong> - Center of the second circle (<a \n          href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html\" \n          class=\"link\">LatLon</a>).</li>\n        <li><strong class=\"pname\"><code>rad2</code></strong> - Radius of the second circle (<code>meter</code> or \n          <code>radians</code>, see <b><code>radius</code></b>).</li>\n        <li><strong class=\"pname\"><code>radius</code></strong> - Mean earth radius (<code>meter</code> or <code>None</code> if \n          <b><code>rad1</code></b>, <b><code>rad2</code></b> and \n          <b><code>eps</code></b> are given in <code>radians</code>).</li>\n        <li><strong class=\"pname\"><code>eps</code></strong> - Required overlap (<code>meter</code> or <code>radians</code>, see\n          <b><code>radius</code></b>).</li>\n        <li><strong class=\"pname\"><code>height</code></strong> - Optional height for the intersection points (<code>meter</code>, \n          conventionally) or <code>None</code> for the <i>&quot;radical \n          height&quot;</i> at the <i>radical line</i> between both centers.</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll \n          <b><code>center2</code></b> (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>LatLon_and_kwds</code></strong> - Optional class <code><b>LatLon</b>=</code><a \n          href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html\" \n          class=\"link\">LatLon</a> to use for the intersection points and \n          optionally additional <b><code>LatLon</code></b> keyword \n          arguments, ignored if <code><b>LatLon</b> is None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>2-Tuple of the intersection points, each a \n          <b><code>LatLon</code></b> instance or if <code><b>LatLon</b> is \n          None</code> a <a \n          href=\"pygeodesy.namedTuples.LatLon3Tuple-class.html\" \n          class=\"link\">LatLon3Tuple</a><code>(lat, lon, height)</code>.  \n          For abutting circles, both intersection points are the same \n          instance, aka the <i>radical center</i>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.IntersectionError-class.html\">IntersectionError</a></strong></code> - Concentric, antipodal, invalid or non-intersecting circles.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - If <b><code>center1</code></b> or <b><code>center2</code></b> not \n        <a href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html\" \n        class=\"link\">LatLon</a>.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>rad1</code></b>, <b><code>rad2</code></b>, \n        <b><code>radius</code></b>, <b><code>eps</code></b> or \n        <b><code>height</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        Courtesy of <a \n        href=\"https://GitHub.com/mrJean1/PyGeodesy/issues/41\" \n        target=\"_top\">Samuel &#268;avoj</a>.\n      </p>\n      <p><strong>See Also:</strong>\n        This <a \n        href=\"https://StackOverflow.com/questions/53324667/find-intersection-coordinates-of-two-circles-on-earth/53331953\"\n        target=\"_top\">Answer</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"isPoleEnclosedBy\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">isPoleEnclosedBy</span>&nbsp;(<span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use function <a \n  href=\"pygeodesy.points-module.html#ispolar\" \n  class=\"link\">pygeodesy.ispolar</a>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"meanOf\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">meanOf</span>&nbsp;(<span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">height</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">LatLon</span>=<span class=\"sig-default\">&lt;class 'pygeodesy.sphericalTrigonometry.LatLon'&gt;</span>,\n        <span class=\"sig-arg\">**LatLon_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the <i>geographic</i> mean of several points.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>points</code></strong> - Points to be averaged (<a \n          href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html\" \n          class=\"link\">LatLon</a>[]).</li>\n        <li><strong class=\"pname\"><code>height</code></strong> - Optional height at mean point, overriding the mean height \n          (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> the \n          <b><code>points</code></b> (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>LatLon</code></strong> - Optional class to return the mean point (<a \n          href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html\" \n          class=\"link\">LatLon</a>) or <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>LatLon_kwds</code></strong> - Optional, additional <b><code>LatLon</code></b> keyword \n          arguments, ignored if <code><b>LatLon</b> is None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The geographic mean and height (<b><code>LatLon</code></b>) or if\n          <code><b>LatLon</b> is None</code>, a <a \n          href=\"pygeodesy.namedTuples.LatLon3Tuple-class.html\" \n          class=\"link\">LatLon3Tuple</a><code>(lat, lon, height)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Some <b><code>points</code></b> are not <a \n        href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html\" \n        class=\"link\">LatLon</a>.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - No <b><code>points</code></b> or invalid \n        <b><code>height</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"nearestOn2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">nearestOn2</span>&nbsp;(<span class=\"sig-arg\">point</span>,\n        <span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">**closed_radius_LatLon_options</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use function <a \n  href=\"pygeodesy.sphericalTrigonometry-module.html#nearestOn3\" \n  class=\"link\">sphericalTrigonometry.nearestOn3</a>.</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd>... 2-tuple <code>(closest, distance)</code> of the \n          <code>closest</code> point (<a \n          href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html\" \n          class=\"link\">LatLon</a>) on the polygon and the \n          <code>distance</code> between the <code>closest</code> and the \n          given <b><code>point</code></b>.  The <code>closest</code> is a \n          <b><code>LatLon</code></b> or a <a \n          href=\"pygeodesy.namedTuples.LatLon2Tuple-class.html\" \n          class=\"link\">LatLon2Tuple</a><code>(lat, lon)</code> if \n          <code><b>LatLon</b> is None</code> ...</dd>\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_function</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"nearestOn3\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">nearestOn3</span>&nbsp;(<span class=\"sig-arg\">point</span>,\n        <span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">closed</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">radius</span>=<span class=\"sig-default\">6371008.771415</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">adjust</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">limit</span>=<span class=\"sig-default\">9</span>,\n        <span class=\"sig-arg\">**LatLon_and_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Locate the point on a path or polygon closest to a reference \n  point.</p>\n  <p>Distances are <i>approximated</i> using function <a \n  href=\"pygeodesy.geohash-module.html#equirectangular4\" \n  class=\"link\">equirectangular4</a>, subject to the supplied \n  <b><code>options</code></b>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>point</code></strong> - The reference point (<a \n          href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html\" \n          class=\"link\">LatLon</a>).</li>\n        <li><strong class=\"pname\"><code>points</code></strong> - The path or polygon points (<a \n          href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html\" \n          class=\"link\">LatLon</a>[]).</li>\n        <li><strong class=\"pname\"><code>closed</code></strong> - Optionally, close the polygon (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>radius</code></strong> - Mean earth radius (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll the \n          <b><code>points</code></b> (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>adjust</code></strong> - See function <a \n          href=\"pygeodesy.geohash-module.html#equirectangular4\" \n          class=\"link\">equirectangular4</a> (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>limit</code></strong> - See function <a \n          href=\"pygeodesy.geohash-module.html#equirectangular4\" \n          class=\"link\">equirectangular4</a> (<code>degrees</code>), default\n          <code>9 degrees</code> is about <code>1,000 Km</code> (for (mean \n          spherical earth radius <a href=\"pygeodesy-module.html#R_KM\" \n          class=\"link\">R_KM</a>).</li>\n        <li><strong class=\"pname\"><code>LatLon_and_kwds</code></strong> - Optional class <code><b>LatLon</b>=<a \n          href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html\" \n          class=\"link\">LatLon</a></code> to return the closest point and \n          optionally additional <code><b>LatLon</b></code> keyword \n          arguments or specify <code><b>LatLon</b>=None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.namedTuples.NearestOn3Tuple-class.html\" \n          class=\"link\">NearestOn3Tuple</a><code>(closest, distance, \n          angle)</code> with the <code>closest</code> point as \n          <b><code>LatLon</code></b> or <a \n          href=\"pygeodesy.namedTuples.LatLon3Tuple-class.html\" \n          class=\"link\">LatLon3Tuple</a><code>(lat, lon, height)</code> if \n          <code><b>LatLon</b> is None</code>.  The <code>distance</code> is\n          the <a href=\"pygeodesy.geohash-module.html#equirectangular4\" \n          class=\"link\">equirectangular4</a> distance between the \n          <code>closest</code> and the given <b><code>point</code></b> \n          converted to <code>meter</code>, same units as \n          <b><code>radius</code></b>.  The <code>angle</code> from the \n          given <b><code>point</code></b> to the <code>closest</code> is in\n          compass <code>degrees360</code>, like function <a \n          href=\"pygeodesy.formy-module.html#compassAngle\" \n          class=\"link\">compassAngle</a>.  The <code>height</code> is the \n          (interpolated) height at the <code>closest</code> point.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.LimitError-class.html\">LimitError</a></strong></code> - Lat- and/or longitudinal delta exceeds the \n        <b><code>limit</code></b>, see function <a \n        href=\"pygeodesy.geohash-module.html#equirectangular4\" \n        class=\"link\">equirectangular4</a>.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.PointsError-class.html\">PointsError</a></strong></code> - Insufficient number of <b><code>points</code></b>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Some <b><code>points</code></b> are not <code>LatLon</code>.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>radius</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Functions <a href=\"pygeodesy.geohash-module.html#equirectangular4\" \n        class=\"link\">equirectangular4</a> and <a \n        href=\"pygeodesy.points-module.html#nearestOn5\" \n        class=\"link\">nearestOn5</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"perimeterOf\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">perimeterOf</span>&nbsp;(<span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">closed</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">radius</span>=<span class=\"sig-default\">6371008.771415</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">True</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the perimeter of a (spherical) polygon or composite (with \n  great circle arcs joining the points).</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>points</code></strong> - The polygon points or clips (<a \n          href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html\" \n          class=\"link\">LatLon</a>[], <a \n          href=\"pygeodesy.booleans.BooleanFHP-class.html\" \n          class=\"link\">BooleanFHP</a> or <a \n          href=\"pygeodesy.booleans.BooleanGH-class.html\" \n          class=\"link\">BooleanGH</a>).</li>\n        <li><strong class=\"pname\"><code>closed</code></strong> - Optionally, close the polygon (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>radius</code></strong> - Mean earth radius (<code>meter</code>) or <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll the \n          <b><code>points</code></b> (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Polygon perimeter (<code>meter</code>, same units as \n          <b><code>radius</code></b> or <code>radians</code> if \n          <code><b>radius</b> is None</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.PointsError-class.html\">PointsError</a></strong></code> - Insufficient number of <b><code>points</code></b>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Some <b><code>points</code></b> are not <a \n        href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html\" \n        class=\"link\">LatLon</a>.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>radius</code></b> or \n        <code><b>closed</b>=False</code> with <code><b>points</b></code> a \n        composite.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        Distances are based on function <a \n        href=\"pygeodesy.geohash-module.html#vincentys_\" \n        class=\"link\">vincentys_</a>.\n      </p>\n      <p><strong>See Also:</strong>\n        Functions <a href=\"pygeodesy.points-module.html#perimeterOf\" \n        class=\"link\">perimeterOf</a>, <a \n        href=\"pygeodesy.sphericalNvector-module.html#perimeterOf\" \n        class=\"link\">sphericalNvector.perimeterOf</a> and <a \n        href=\"pygeodesy.ellipsoidalKarney-module.html#perimeterOf\" \n        class=\"link\">ellipsoidalKarney.perimeterOf</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"triangle7\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">triangle7</span>&nbsp;(<span class=\"sig-arg\">latA</span>,\n        <span class=\"sig-arg\">lonA</span>,\n        <span class=\"sig-arg\">latB</span>,\n        <span class=\"sig-arg\">lonB</span>,\n        <span class=\"sig-arg\">latC</span>,\n        <span class=\"sig-arg\">lonC</span>,\n        <span class=\"sig-arg\">radius</span>=<span class=\"sig-default\">6371008.771415</span>,\n        <span class=\"sig-arg\">excess</span>=<span class=\"sig-default\">&lt;function excessAbc_ at 0x7fc1d84b7550&gt;</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the angles, sides, and area of a (spherical) triangle.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>latA</code></strong> - First corner latitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lonA</code></strong> - First corner longitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>latB</code></strong> - Second corner latitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lonB</code></strong> - Second corner longitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>latC</code></strong> - Third corner latitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lonC</code></strong> - Third corner longitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>radius</code></strong> - Mean earth radius, ellipsoid or datum (<code>meter</code>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a>, <a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a> \n          or <a href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>) or <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>excess</code></strong> - <i>Spherical excess</i> callable (<a \n          href=\"pygeodesy.formy-module.html#excessAbc_\" \n          class=\"link\">excessAbc_</a>, <a \n          href=\"pygeodesy.formy-module.html#excessGirard_\" \n          class=\"link\">excessGirard_</a> or <a \n          href=\"pygeodesy.formy-module.html#excessLHuilier_\" \n          class=\"link\">excessLHuilier_</a>).</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap and <a \n          href=\"pygeodesy.utily-module.html#unroll180\" \n          class=\"link\">unroll180</a> longitudes (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.namedTuples.Triangle7Tuple-class.html\" \n          class=\"link\">Triangle7Tuple</a><code>(A, a, B, b, C, c, \n          area)</code> with spherical angles <code>A</code>, <code>B</code>\n          and <code>C</code>, angular sides <code>a</code>, <code>b</code> \n          and <code>c</code> all in <code>degrees</code> and \n          <code>area</code> in <i>square</i> <code>meter</code> or same \n          units as <b><code>radius</code></b> <i>squared</i> or if \n          <code><b>radius</b>=0</code> or <code>None</code>, a <a \n          href=\"pygeodesy.namedTuples.Triangle8Tuple-class.html\" \n          class=\"link\">Triangle8Tuple</a><code>(A, a, B, b, C, c, D, \n          E)</code> with <i>spherical deficit</i> <code>D</code> and \n          <i>spherical excess</i> <code>E</code> as the <code>unit \n          area</code>, all in <code>radians</code>.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"triangle8_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">triangle8_</span>&nbsp;(<span class=\"sig-arg\">phiA</span>,\n        <span class=\"sig-arg\">lamA</span>,\n        <span class=\"sig-arg\">phiB</span>,\n        <span class=\"sig-arg\">lamB</span>,\n        <span class=\"sig-arg\">phiC</span>,\n        <span class=\"sig-arg\">lamC</span>,\n        <span class=\"sig-arg\">excess</span>=<span class=\"sig-default\">&lt;function excessAbc_ at 0x7fc1d84b7550&gt;</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the angles, sides, <i>spherical deficit</i> and <i>spherical \n  excess</i> of a (spherical) triangle.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>phiA</code></strong> - First corner latitude (<code>radians</code>).</li>\n        <li><strong class=\"pname\"><code>lamA</code></strong> - First corner longitude (<code>radians</code>).</li>\n        <li><strong class=\"pname\"><code>phiB</code></strong> - Second corner latitude (<code>radians</code>).</li>\n        <li><strong class=\"pname\"><code>lamB</code></strong> - Second corner longitude (<code>radians</code>).</li>\n        <li><strong class=\"pname\"><code>phiC</code></strong> - Third corner latitude (<code>radians</code>).</li>\n        <li><strong class=\"pname\"><code>lamC</code></strong> - Third corner longitude (<code>radians</code>).</li>\n        <li><strong class=\"pname\"><code>excess</code></strong> - <i>Spherical excess</i> callable (<a \n          href=\"pygeodesy.formy-module.html#excessAbc_\" \n          class=\"link\">excessAbc_</a>, <a \n          href=\"pygeodesy.formy-module.html#excessGirard_\" \n          class=\"link\">excessGirard_</a> or <a \n          href=\"pygeodesy.formy-module.html#excessLHuilier_\" \n          class=\"link\">excessLHuilier_</a>).</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, <a \n          href=\"pygeodesy.utily-module.html#unrollPI\" \n          class=\"link\">unrollPI</a> the longitudinal deltas \n          (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.namedTuples.Triangle8Tuple-class.html\" \n          class=\"link\">Triangle8Tuple</a><code>(A, a, B, b, C, c, D, \n          E)</code> with spherical angles <code>A</code>, <code>B</code> \n          and <code>C</code>, angular sides <code>a</code>, <code>b</code> \n          and <code>c</code>, <i>spherical deficit</i> <code>D</code> and \n          <i>spherical excess</i> <code>E</code>, all in \n          <code>radians</code>.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.sphericalTrigonometry.Cartesian-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.sphericalTrigonometry.Cartesian</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.sphericalTrigonometry-module.html\">Module&nbsp;sphericalTrigonometry</a> ::\n        Class&nbsp;Cartesian\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.sphericalTrigonometry.Cartesian-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Cartesian</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n       object --+                        \n                |                        \n     <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+                    \n                    |                    \n     <a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+                \n                        |                \n<a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">vector3dBase.Vector3dBase</a> --+            \n                            |            \n            <a href=\"pygeodesy.vector3d.Vector3d-class.html\">vector3d.Vector3d</a> --+        \n                                |        \n               object --+       |        \n                        |       |        \n             <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+   |        \n                            |   |        \n        <a href=\"pygeodesy.ecefLocals._EcefLocal-class.html\">ecefLocals._EcefLocal</a> --+        \n                                |        \n      <a href=\"pygeodesy.cartesianBase.CartesianBase-class.html\">cartesianBase.CartesianBase</a> --+    \n                                    |    \n <a href=\"pygeodesy.sphericalBase.CartesianSphericalBase-class.html\">sphericalBase.CartesianSphericalBase</a> --+\n                                        |\n                                       <strong class=\"uidshort\">Cartesian</strong>\n</pre>\n\n<hr />\n<p>Extended to convert geocentric, <a \n  href=\"pygeodesy.sphericalTrigonometry.Cartesian-class.html\" \n  class=\"link\">Cartesian</a> points to spherical, geodetic <a \n  href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html\" \n  class=\"link\">LatLon</a>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.sphericalTrigonometry.Cartesian-class.html#toLatLon\" class=\"summary-sig-name\">toLatLon</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">**LatLon_and_kwds</span>)</span><br />\n      Convert this cartesian point to a <code>spherical</code> geodetic \n      point.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.sphericalBase.CartesianSphericalBase-class.html\">sphericalBase.CartesianSphericalBase</a></code></b>:\n      <code><a href=\"pygeodesy.sphericalBase.CartesianSphericalBase-class.html#intersections2\">intersections2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html\">cartesianBase.CartesianBase</a></code></b>:\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#Roc2\">Roc2</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#__init__\">__init__</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#cassini\">cassini</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#collins\">collins</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#collins5\">collins5</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#convertDatum\">convertDatum</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#destinationXyz\">destinationXyz</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#hartzell\">hartzell</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#height3\">height3</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#height4\">height4</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#pierlot\">pierlot</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#pierlotx\">pierlotx</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#tienstra\">tienstra</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#tienstra7\">tienstra7</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#to2ab\">to2ab</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#to2ll\">to2ll</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#to3llh\">to3llh</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#toDatum\">toDatum</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#toEcef\">toEcef</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#toNvector\">toNvector</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#toRtp\">toRtp</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#toTransform\">toTransform</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#toVector\">toVector</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.vector3d.Vector3d-class.html\">vector3d.Vector3d</a></code></b>:\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#bearing\">bearing</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#circin6\">circin6</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#circum3\">circum3</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#circum4_\">circum4_</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#iscolinearWith\">iscolinearWith</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#meeus2\">meeus2</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#nearestOn\">nearestOn</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#nearestOn6\">nearestOn6</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#parse\">parse</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#radii11\">radii11</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#soddy4\">soddy4</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#toCartesian\">toCartesian</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#trilaterate2d2\">trilaterate2d2</a></code>,\n      <code><a href=\"pygeodesy.vector3d.Vector3d-class.html#trilaterate3d2\">trilaterate3d2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">vector3dBase.Vector3dBase</a></code></b>:\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__abs__\">__abs__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__add__\">__add__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__bool__\">__bool__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__ceil__\">__ceil__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__cmp__\">__cmp__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__div__\">__div__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__divmod__\">__divmod__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__eq__\">__eq__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__float__\">__float__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__floor__\">__floor__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__floordiv__\">__floordiv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__ge__\">__ge__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__gt__\">__gt__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__iadd__\">__iadd__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__idiv__\">__idiv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__ifloordiv__\">__ifloordiv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__imod__\">__imod__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__imul__\">__imul__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__int__\">__int__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__ipow__\">__ipow__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__isub__\">__isub__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__itruediv__\">__itruediv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__le__\">__le__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__long__\">__long__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__lt__\">__lt__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__mod__\">__mod__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__mul__\">__mul__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__ne__\">__ne__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__neg__\">__neg__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__nonzero__\">__nonzero__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__pos__\">__pos__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__pow__\">__pow__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__radd__\">__radd__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rdiv__\">__rdiv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rdivmod__\">__rdivmod__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rfloordiv__\">__rfloordiv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rmod__\">__rmod__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rmul__\">__rmul__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__round__\">__round__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rpow__\">__rpow__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rsub__\">__rsub__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rtruediv__\">__rtruediv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__sub__\">__sub__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__truediv__\">__truediv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__trunc__\">__trunc__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#angleTo\">angleTo</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#apply\">apply</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#bools\">bools</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#cmp\">cmp</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#cross\">cross</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#dividedBy\">dividedBy</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#dividedBy_\">dividedBy_</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#dot\">dot</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#equals\">equals</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#equirectangular\">equirectangular</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#fabs\">fabs</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#floats\">floats</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#floorDividedBy\">floorDividedBy</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#floorDividedBy_\">floorDividedBy_</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#intermediateTo\">intermediateTo</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#ints\">ints</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#isconjugateTo\">isconjugateTo</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#isequalTo\">isequalTo</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#minus\">minus</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#minus_\">minus_</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#negate\">negate</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#others\">others</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#plus\">plus</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#plus_\">plus_</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#pow\">pow</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#rotate\">rotate</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#rotateAround\">rotateAround</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#sum\">sum</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#times\">times</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#times_\">times_</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#to3xyz\">to3xyz</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#unit\">unit</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#toRepr\">toRepr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html\">ecefLocals._EcefLocal</a></code></b>:\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toAer\">toAer</a></code>,\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toEnu\">toEnu</a></code>,\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toLocal\">toLocal</a></code>,\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toLtp\">toLtp</a></code>,\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toNed\">toNed</a></code>,\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toXyz\">toXyz</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.sphericalBase.CartesianSphericalBase-class.html\">sphericalBase.CartesianSphericalBase</a></code></b>:\n      <code><a href=\"pygeodesy.sphericalBase.CartesianSphericalBase-class.html#sphericalCartesian\">sphericalCartesian</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html\">cartesianBase.CartesianBase</a></code></b>:\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#datum\">datum</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#ellipsoidalCartesian\">ellipsoidalCartesian</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#height\">height</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#isEllipsoidal\">isEllipsoidal</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#isSpherical\">isSpherical</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#latlon\">latlon</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#latlonheight\">latlonheight</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#latlonheightdatum\">latlonheightdatum</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#philam\">philam</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#philamheight\">philamheight</a></code>,\n      <code><a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#philamheightdatum\">philamheightdatum</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">vector3dBase.Vector3dBase</a></code></b>:\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#crosserrors\">crosserrors</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#euclid\">euclid</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#homogeneous\">homogeneous</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#length\">length</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#length2\">length2</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#x\">x</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#x2y2z2\">x2y2z2</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#x2y2z23\">x2y2z23</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#xyz\">xyz</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#xyz3\">xyz3</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#y\">y</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#z\">z</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html\">ecefLocals._EcefLocal</a></code></b>:\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#Ecef\">Ecef</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"toLatLon\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toLatLon</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">**LatLon_and_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert this cartesian point to a <code>spherical</code> geodetic \n  point.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>LatLon_and_kwds</code></strong> - Optional <a \n          href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html\" \n          class=\"link\">LatLon</a> and <a \n          href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html\" \n          class=\"link\">LatLon</a> keyword arguments.  Use \n          <code><b>LatLon</b>=...</code> to override this <a \n          href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html\" \n          class=\"link\">LatLon</a> class or specify \n          <code><b>LatLon</b>=None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The geodetic point (<a \n          href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html\" \n          class=\"link\">LatLon</a>) or if <code><b>LatLon</b> is \n          None</code>, an <a href=\"pygeodesy.ecef.Ecef9Tuple-class.html\" \n          class=\"link\">Ecef9Tuple</a><code>(x, y, z, lat, lon, height, C, \n          M, datum)</code> with <code>C</code> and <code>M</code> if \n          available.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>LatLon_and_kwds</code></b> argument.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.cartesianBase.CartesianBase-class.html#toLatLon\">cartesianBase.CartesianBase.toLatLon</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.sphericalTrigonometry.LatLon-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.sphericalTrigonometry.LatLon</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.sphericalTrigonometry-module.html\">Module&nbsp;sphericalTrigonometry</a> ::\n        Class&nbsp;LatLon\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class LatLon</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n           object --+                \n                    |                \n         <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+            \n                        |            \n         <a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+        \n                            |        \n           object --+       |        \n                    |       |        \n         <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+   |        \n                        |   |        \n    <a href=\"pygeodesy.ecefLocals._EcefLocal-class.html\">ecefLocals._EcefLocal</a> --+        \n                            |        \n        <a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">latlonBase.LatLonBase</a> --+    \n                                |    \n<a href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html\">sphericalBase.LatLonSphericalBase</a> --+\n                                    |\n                                   <strong class=\"uidshort\">LatLon</strong>\n</pre>\n\n<hr />\n<p>New point on a spherical earth model, based on trigonometry \n  formulae.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html#alongTrackDistanceTo\" class=\"summary-sig-name\">alongTrackDistanceTo</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">start</span>,\n        <span class=\"summary-sig-arg\">end</span>,\n        <span class=\"summary-sig-arg\">radius</span>=<span class=\"summary-sig-default\">6371008.771415</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Compute the (signed) distance from the start to the closest point on \n      the great circle line defined by a start and an end point.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html#bearingTo\" class=\"summary-sig-name\">bearingTo</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">raiser</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      DEPRECATED, use method <a \n      href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html#initialBearingTo\"\n      class=\"link\">initialBearingTo</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html#crossingParallels\" class=\"summary-sig-name\">crossingParallels</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>,\n        <span class=\"summary-sig-arg\">lat</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Return the pair of meridians at which a great circle defined by this \n      and an other point crosses the given latitude.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html#crossTrackDistanceTo\" class=\"summary-sig-name\">crossTrackDistanceTo</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">start</span>,\n        <span class=\"summary-sig-arg\">end</span>,\n        <span class=\"summary-sig-arg\">radius</span>=<span class=\"summary-sig-default\">6371008.771415</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Compute the (signed) distance from this point to a great circle from \n      a start to an end point.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html#destination\" class=\"summary-sig-name\">destination</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">distance</span>,\n        <span class=\"summary-sig-arg\">bearing</span>,\n        <span class=\"summary-sig-arg\">radius</span>=<span class=\"summary-sig-default\">6371008.771415</span>,\n        <span class=\"summary-sig-arg\">height</span>=<span class=\"summary-sig-default\">None</span>)</span><br />\n      Locate the destination from this point after having travelled the \n      given distance on a bearing from North.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html#distanceTo\" class=\"summary-sig-name\">distanceTo</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>,\n        <span class=\"summary-sig-arg\">radius</span>=<span class=\"summary-sig-default\">6371008.771415</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Compute the (angular) distance from this to an other point.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html#greatCircle\" class=\"summary-sig-name\">greatCircle</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">bearing</span>,\n        <span class=\"summary-sig-arg\">Vector</span>=<span class=\"summary-sig-default\">&lt;class 'pygeodesy.vector3d.Vector3d'&gt;</span>,\n        <span class=\"summary-sig-arg\">**Vector_kwds</span>)</span><br />\n      Compute the vector normal to great circle obtained by heading from \n      this point on the bearing from North.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html#initialBearingTo\" class=\"summary-sig-name\">initialBearingTo</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">raiser</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Compute the initial bearing (forward azimuth) from this to an other \n      point.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html#intermediateTo\" class=\"summary-sig-name\">intermediateTo</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>,\n        <span class=\"summary-sig-arg\">fraction</span>,\n        <span class=\"summary-sig-arg\">height</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Locate the point at given fraction between (or along) this and an \n      other point.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html#intersection\" class=\"summary-sig-name\">intersection</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">end1</span>,\n        <span class=\"summary-sig-arg\">other</span>,\n        <span class=\"summary-sig-arg\">end2</span>,\n        <span class=\"summary-sig-arg\">height</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Compute the intersection point of two lines, each defined by two \n      points or a start point and a bearing from North.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html#intersections2\" class=\"summary-sig-name\">intersections2</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">rad1</span>,\n        <span class=\"summary-sig-arg\">other</span>,\n        <span class=\"summary-sig-arg\">rad2</span>,\n        <span class=\"summary-sig-arg\">radius</span>=<span class=\"summary-sig-default\">6371008.771415</span>,\n        <span class=\"summary-sig-arg\">eps</span>=<span class=\"summary-sig-default\">0.0</span>,\n        <span class=\"summary-sig-arg\">height</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">True</span>)</span><br />\n      Compute the intersection points of two circles, each defined by a \n      center point and a radius.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html#isEnclosedBy\" class=\"summary-sig-name\">isEnclosedBy</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">points</span>)</span><br />\n      DEPRECATED, use method <code>isenclosedBy</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html#isenclosedBy\" class=\"summary-sig-name\">isenclosedBy</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Check whether a (convex) polygon or composite encloses this point.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html#midpointTo\" class=\"summary-sig-name\">midpointTo</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>,\n        <span class=\"summary-sig-arg\">height</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">fraction</span>=<span class=\"summary-sig-default\">0.5</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Find the midpoint between this and an other point.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html#nearestOn\" class=\"summary-sig-name\">nearestOn</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">point1</span>,\n        <span class=\"summary-sig-arg\">point2</span>,\n        <span class=\"summary-sig-arg\">radius</span>=<span class=\"summary-sig-default\">6371008.771415</span>,\n        <span class=\"summary-sig-arg\">**wrap_adjust_limit</span>)</span><br />\n      Locate the point between two other points closest to this point.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html#nearestOn2\" class=\"summary-sig-name\">nearestOn2</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">closed</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">radius</span>=<span class=\"summary-sig-default\">6371008.771415</span>,\n        <span class=\"summary-sig-arg\">**options</span>)</span><br />\n      DEPRECATED, use method <a \n      href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html#nearestOn3\" \n      class=\"link\">sphericalTrigonometry.LatLon.nearestOn3</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html#nearestOn3\" class=\"summary-sig-name\">nearestOn3</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">closed</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">radius</span>=<span class=\"summary-sig-default\">6371008.771415</span>,\n        <span class=\"summary-sig-arg\">**wrap_adjust_limit</span>)</span><br />\n      Locate the point on a polygon closest to this point.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html#toCartesian\" class=\"summary-sig-name\">toCartesian</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">**Cartesian_datum_kwds</span>)</span><br />\n      Convert this point to <code>Karney</code>-based cartesian (ECEF) \n      coordinates.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html#triangle7\" class=\"summary-sig-name\">triangle7</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">otherB</span>,\n        <span class=\"summary-sig-arg\">otherC</span>,\n        <span class=\"summary-sig-arg\">radius</span>=<span class=\"summary-sig-default\">6371008.771415</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Compute the angles, sides and area of a spherical triangle.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html#triangulate\" class=\"summary-sig-name\">triangulate</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">bearing1</span>,\n        <span class=\"summary-sig-arg\">other</span>,\n        <span class=\"summary-sig-arg\">bearing2</span>,\n        <span class=\"summary-sig-arg\">**height_wrap</span>)</span><br />\n      Locate a point given this, an other point and a bearing from North at\n      both points.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html#trilaterate5\" class=\"summary-sig-name\">trilaterate5</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">distance1</span>,\n        <span class=\"summary-sig-arg\">point2</span>,\n        <span class=\"summary-sig-arg\">distance2</span>,\n        <span class=\"summary-sig-arg\">point3</span>,\n        <span class=\"summary-sig-arg\">distance3</span>,\n        <span class=\"summary-sig-arg\">area</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">eps</span>=<span class=\"summary-sig-default\">0.9999999999999998</span>,\n        <span class=\"summary-sig-arg\">radius</span>=<span class=\"summary-sig-default\">6371008.771415</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Trilaterate three points by <i>area overlap</i> or <i>perimeter \n      intersection</i> of three corresponding circles.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html\">sphericalBase.LatLonSphericalBase</a></code></b>:\n      <code><a href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html#__init__\">__init__</a></code>,\n      <code><a href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html#bearingTo2\">bearingTo2</a></code>,\n      <code><a href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html#finalBearingTo\">finalBearingTo</a></code>,\n      <code><a href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html#intersecant2\">intersecant2</a></code>,\n      <code><a href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html#maxLat\">maxLat</a></code>,\n      <code><a href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html#minLat\">minLat</a></code>,\n      <code><a href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html#parse\">parse</a></code>,\n      <code><a href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html#rhumbAzimuthTo\">rhumbAzimuthTo</a></code>,\n      <code><a href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html#rhumbBearingTo\">rhumbBearingTo</a></code>,\n      <code><a href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html#rhumbDestination\">rhumbDestination</a></code>,\n      <code><a href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html#rhumbDistanceTo\">rhumbDistanceTo</a></code>,\n      <code><a href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html#rhumbIntersecant2\">rhumbIntersecant2</a></code>,\n      <code><a href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html#rhumbMidpointTo\">rhumbMidpointTo</a></code>,\n      <code><a href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html#toNvector\">toNvector</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">latlonBase.LatLonBase</a></code></b>:\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#PointsIter\">PointsIter</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#__eq__\">__eq__</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#__ne__\">__ne__</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#antipode\">antipode</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#bounds\">bounds</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#boundsOf\">boundsOf</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#chordTo\">chordTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#circin6\">circin6</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#circum3\">circum3</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#circum4_\">circum4_</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#compassAngle\">compassAngle</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#compassAngleTo\">compassAngleTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#cosineAndoyerLambertTo\">cosineAndoyerLambertTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#cosineForsytheAndoyerLambertTo\">cosineForsytheAndoyerLambertTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#cosineLawTo\">cosineLawTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#destinationXyz\">destinationXyz</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#equals\">equals</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#equals3\">equals3</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#equirectangularTo\">equirectangularTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#euclideanTo\">euclideanTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#flatLocalTo\">flatLocalTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#flatPolarTo\">flatPolarTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#hartzell\">hartzell</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#haversineTo\">haversineTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#height4\">height4</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#heightStr\">heightStr</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#hubenyTo\">hubenyTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isantipode\">isantipode</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isantipodeTo\">isantipodeTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isequalTo\">isequalTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isequalTo3\">isequalTo3</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#latlon2\">latlon2</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#latlon2round\">latlon2round</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#latlon_\">latlon_</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#nearestOn6\">nearestOn6</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#nearestTo\">nearestTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#normal\">normal</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#philam2\">philam2</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#points\">points</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#points2\">points2</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#radii11\">radii11</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#rhumbLine\">rhumbLine</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#thomasTo\">thomasTo</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#to2ab\">to2ab</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#to3llh\">to3llh</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#to3xyz\">to3xyz</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toDatum\">toDatum</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toEcef\">toEcef</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toNormal\">toNormal</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toVector\">toVector</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toVector3d\">toVector3d</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toWm\">toWm</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#vincentysTo\">vincentysTo</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#others\">others</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#toRepr\">toRepr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html\">ecefLocals._EcefLocal</a></code></b>:\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toAer\">toAer</a></code>,\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toEnu\">toEnu</a></code>,\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toLocal\">toLocal</a></code>,\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toLtp\">toLtp</a></code>,\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toNed\">toNed</a></code>,\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#toXyz\">toXyz</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html\">sphericalBase.LatLonSphericalBase</a></code></b>:\n      <code><a href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html#datum\">datum</a></code>,\n      <code><a href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html#napieradius\">napieradius</a></code>,\n      <code><a href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html#sphericalLatLon\">sphericalLatLon</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html\">latlonBase.LatLonBase</a></code></b>:\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#clipid\">clipid</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#ellipsoidalLatLon\">ellipsoidalLatLon</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#height\">height</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isEllipsoidal\">isEllipsoidal</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isSpherical\">isSpherical</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#isnormal\">isnormal</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#lam\">lam</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#lat\">lat</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#latlon\">latlon</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#latlonheight\">latlonheight</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#lon\">lon</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#phi\">phi</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#philam\">philam</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#philamheight\">philamheight</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#xyz\">xyz</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#xyz3\">xyz3</a></code>,\n      <code><a href=\"pygeodesy.latlonBase.LatLonBase-class.html#xyzh\">xyzh</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html\">ecefLocals._EcefLocal</a></code></b>:\n      <code><a href=\"pygeodesy.ecefLocals._EcefLocal-class.html#Ecef\">Ecef</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"alongTrackDistanceTo\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">alongTrackDistanceTo</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">start</span>,\n        <span class=\"sig-arg\">end</span>,\n        <span class=\"sig-arg\">radius</span>=<span class=\"sig-default\">6371008.771415</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the (signed) distance from the start to the closest point on \n  the great circle line defined by a start and an end point.</p>\n  <p>That is, if a perpendicular is drawn from this point to the great \n  circle line, the along-track distance is the distance from the start \n  point to the point where the perpendicular crosses the line.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>start</code></strong> - Start point of the great circle line (<a \n          href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html\" \n          class=\"link\">LatLon</a>).</li>\n        <li><strong class=\"pname\"><code>end</code></strong> - End point of the great circle line (<a \n          href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html\" \n          class=\"link\">LatLon</a>).</li>\n        <li><strong class=\"pname\"><code>radius</code></strong> - Mean earth radius (<code>meter</code>) or <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll the \n          <b><code>start</code></b> and <b><code>end</code></b> point \n          (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Distance along the great circle line (<code>radians</code> if \n          <code><b>radius</b> is None</code> or <code>meter</code>, same \n          units as <b><code>radius</code></b>), positive if <i>after</i> \n          the <b><code>start</code></b> toward the <b><code>end</code></b> \n          point of the line, <i>negative</i> if before or <code>0</code> if\n          at the <b><code>start</code></b> point.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>start</code></b> or <b><code>end</code></b> point.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>radius</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"bearingTo\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">bearingTo</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">raiser</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use method <a \n  href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html#initialBearingTo\"\n  class=\"link\">initialBearingTo</a>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_method</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"crossingParallels\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">crossingParallels</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>,\n        <span class=\"sig-arg\">lat</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the pair of meridians at which a great circle defined by this \n  and an other point crosses the given latitude.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>other</code></strong> - The other point defining great circle (<a \n          href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html\" \n          class=\"link\">LatLon</a>).</li>\n        <li><strong class=\"pname\"><code>lat</code></strong> - Latitude at the crossing (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll the \n          <b><code>other</code></b> point (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>2-Tuple <code>(lon1, lon2)</code>, both in \n          <code>degrees180</code> or <code>None</code> if the great circle \n          doesn't reach <b><code>lat</code></b>.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"crossTrackDistanceTo\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">crossTrackDistanceTo</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">start</span>,\n        <span class=\"sig-arg\">end</span>,\n        <span class=\"sig-arg\">radius</span>=<span class=\"sig-default\">6371008.771415</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the (signed) distance from this point to a great circle from a\n  start to an end point.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>start</code></strong> - Start point of the great circle line (<a \n          href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html\" \n          class=\"link\">LatLon</a>).</li>\n        <li><strong class=\"pname\"><code>end</code></strong> - End point of the great circle line (<a \n          href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html\" \n          class=\"link\">LatLon</a>).</li>\n        <li><strong class=\"pname\"><code>radius</code></strong> - Mean earth radius (<code>meter</code>) or <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll the \n          <b><code>start</code></b> and <b><code>end</code></b> point \n          (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Distance to the great circle (<code>radians</code> if \n          <b><code>radius</code></b> or <code>meter</code>, same units as \n          <b><code>radius</code></b>), <i>negative</i> if to the left or \n          <i>positive</i> if to the right of the line.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - If <b><code>start</code></b> or <b><code>end</code></b> is not <a \n        href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html\" \n        class=\"link\">LatLon</a>.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>radius</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"destination\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">destination</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">distance</span>,\n        <span class=\"sig-arg\">bearing</span>,\n        <span class=\"sig-arg\">radius</span>=<span class=\"sig-default\">6371008.771415</span>,\n        <span class=\"sig-arg\">height</span>=<span class=\"sig-default\">None</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Locate the destination from this point after having travelled the \n  given distance on a bearing from North.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>distance</code></strong> - Distance travelled (<code>meter</code>, same units as \n          <b><code>radius</code></b>).</li>\n        <li><strong class=\"pname\"><code>bearing</code></strong> - Bearing from this point (compass <code>degrees360</code>).</li>\n        <li><strong class=\"pname\"><code>radius</code></strong> - Mean earth radius (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>height</code></strong> - Optional height at destination (<code>meter</code>, same units a \n          <b><code>radius</code></b>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Destination point (<a \n          href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html\" \n          class=\"link\">LatLon</a>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>distance</code></b>, <b><code>bearing</code></b>, \n        <b><code>radius</code></b> or <b><code>height</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"distanceTo\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">distanceTo</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>,\n        <span class=\"sig-arg\">radius</span>=<span class=\"sig-default\">6371008.771415</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the (angular) distance from this to an other point.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>other</code></strong> - The other point (<a \n          href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html\" \n          class=\"link\">LatLon</a>).</li>\n        <li><strong class=\"pname\"><code>radius</code></strong> - Mean earth radius (<code>meter</code>) or <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll the \n          <b><code>other</code></b> point (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Distance between this and the <b><code>other</code></b> point \n          (<code>meter</code>, same units as <b><code>radius</code></b> or \n          <code>radians</code> if <code><b>radius</b> is None</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - The <b><code>other</code></b> point is not <a \n        href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html\" \n        class=\"link\">LatLon</a>.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>radius</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"greatCircle\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">greatCircle</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">bearing</span>,\n        <span class=\"sig-arg\">Vector</span>=<span class=\"sig-default\">&lt;class 'pygeodesy.vector3d.Vector3d'&gt;</span>,\n        <span class=\"sig-arg\">**Vector_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the vector normal to great circle obtained by heading from \n  this point on the bearing from North.</p>\n  <p>Direction of vector is such that initial bearing vector b = c &#215; n, \n  where n is an n-vector representing this point.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>bearing</code></strong> - Bearing from this point (compass <code>degrees360</code>).</li>\n        <li><strong class=\"pname\"><code>Vector</code></strong> - Vector class to return the great circle, overriding the default \n          <a href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>.</li>\n        <li><strong class=\"pname\"><code>Vector_kwds</code></strong> - Optional, additional keyword argunents for \n          <b><code>Vector</code></b>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Vector representing great circle (<code>Vector</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>bearing</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"initialBearingTo\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">initialBearingTo</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">raiser</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the initial bearing (forward azimuth) from this to an other \n  point.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>other</code></strong> - The other point (spherical <a \n          href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html\" \n          class=\"link\">LatLon</a>).</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll the \n          <b><code>other</code></b> point (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>raiser</code></strong> - Optionally, raise <a \n          href=\"pygeodesy.errors.CrossError-class.html\" \n          class=\"link\">CrossError</a> (<code>bool</code>), use \n          <code><b>raiser</b>=True</code> for behavior like \n          <code>sphericalNvector.LatLon.initialBearingTo</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Initial bearing (compass <code>degrees360</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.CrossError-class.html\">CrossError</a></strong></code> - If this and the <b><code>other</code></b> point coincide and if \n        <b><code>raiser</code></b> and <a \n        href=\"pygeodesy.errors-module.html#crosserrors\" \n        class=\"link\">crosserrors</a> are both <code>True</code>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - The <b><code>other</code></b> point is not <a \n        href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html\" \n        class=\"link\">LatLon</a>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"intermediateTo\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">intermediateTo</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>,\n        <span class=\"sig-arg\">fraction</span>,\n        <span class=\"sig-arg\">height</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Locate the point at given fraction between (or along) this and an \n  other point.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>other</code></strong> - The other point (<a \n          href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html\" \n          class=\"link\">LatLon</a>).</li>\n        <li><strong class=\"pname\"><code>fraction</code></strong> - Fraction between both points (<code>scalar</code>, 0.0 at this \n          and 1.0 at the other point).</li>\n        <li><strong class=\"pname\"><code>height</code></strong> - Optional height, overriding the intermediate height \n          (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll the \n          <b><code>other</code></b> point (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Intermediate point (<a \n          href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html\" \n          class=\"link\">LatLon</a>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - The <b><code>other</code></b> point is not <a \n        href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html\" \n        class=\"link\">LatLon</a>.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>fraction</code></b> or <b><code>height</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Methods <code>midpointTo</code> and <code>rhumbMidpointTo</code>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"intersection\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">intersection</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">end1</span>,\n        <span class=\"sig-arg\">other</span>,\n        <span class=\"sig-arg\">end2</span>,\n        <span class=\"sig-arg\">height</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the intersection point of two lines, each defined by two \n  points or a start point and a bearing from North.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>end1</code></strong> - End point of this line (<a \n          href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html\" \n          class=\"link\">LatLon</a>) or the initial bearing at this point \n          (compass <code>degrees360</code>).</li>\n        <li><strong class=\"pname\"><code>other</code></strong> - Start point of the other line (<a \n          href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html\" \n          class=\"link\">LatLon</a>).</li>\n        <li><strong class=\"pname\"><code>end2</code></strong> - End point of the other line (<a \n          href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html\" \n          class=\"link\">LatLon</a>) or the initial bearing at the \n          <b><code>other</code></b> point (compass \n          <code>degrees360</code>).</li>\n        <li><strong class=\"pname\"><code>height</code></strong> - Optional height for intersection point, overriding the mean \n          height (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll \n          <b><code>start2</code></b> and both <b><code>end*</code></b> \n          points (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The intersection point (<a \n          href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html\" \n          class=\"link\">LatLon</a>).  An alternate intersection point might \n          be the <a \n          href=\"pygeodesy.latlonBase.LatLonBase-class.html#antipode\" \n          class=\"link\">antipode</a> to the returned result.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.IntersectionError-class.html\">IntersectionError</a></strong></code> - Ambiguous or infinite intersection or colinear, parallel or \n        otherwise non-intersecting lines.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - If <b><code>other</code></b> is not <a \n        href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html\" \n        class=\"link\">LatLon</a> or <b><code>end1</code></b> or \n        <b><code>end2</code></b> not <code>scalar</code> nor <a \n        href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html\" \n        class=\"link\">LatLon</a>.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>height</code></b> or <code>null</code> line.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"intersections2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">intersections2</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">rad1</span>,\n        <span class=\"sig-arg\">other</span>,\n        <span class=\"sig-arg\">rad2</span>,\n        <span class=\"sig-arg\">radius</span>=<span class=\"sig-default\">6371008.771415</span>,\n        <span class=\"sig-arg\">eps</span>=<span class=\"sig-default\">0.0</span>,\n        <span class=\"sig-arg\">height</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">True</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the intersection points of two circles, each defined by a \n  center point and a radius.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>rad1</code></strong> - Radius of the this circle (<code>meter</code> or \n          <code>radians</code>, see <b><code>radius</code></b>).</li>\n        <li><strong class=\"pname\"><code>other</code></strong> - Center point of the other circle (<a \n          href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html\" \n          class=\"link\">LatLon</a>).</li>\n        <li><strong class=\"pname\"><code>rad2</code></strong> - Radius of the other circle (<code>meter</code> or \n          <code>radians</code>, see <b><code>radius</code></b>).</li>\n        <li><strong class=\"pname\"><code>radius</code></strong> - Mean earth radius (<code>meter</code> or <code>None</code> if \n          <b><code>rad1</code></b>, <b><code>rad2</code></b> and \n          <b><code>eps</code></b> are given in <code>radians</code>).</li>\n        <li><strong class=\"pname\"><code>eps</code></strong> - Required overlap (<code>meter</code> or <code>radians</code>, see\n          <b><code>radius</code></b>).</li>\n        <li><strong class=\"pname\"><code>height</code></strong> - Optional height for the intersection points (<code>meter</code>, \n          conventionally) or <code>None</code> for the <i>&quot;radical \n          height&quot;</i> at the <i>radical line</i> between both centers.</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll the \n          <b><code>other</code></b> point (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>2-Tuple of the intersection points, each a <a \n          href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html\" \n          class=\"link\">LatLon</a> instance.  For abutting circles, both \n          intersection points are the same instance, aka the <i>radical \n          center</i>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.IntersectionError-class.html\">IntersectionError</a></strong></code> - Concentric, antipodal, invalid or non-intersecting circles.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - If <b><code>other</code></b> is not <a \n        href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html\" \n        class=\"link\">LatLon</a>.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>rad1</code></b>, <b><code>rad2</code></b>, \n        <b><code>radius</code></b>, <b><code>eps</code></b> or \n        <b><code>height</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"isEnclosedBy\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">isEnclosedBy</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">points</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use method <code>isenclosedBy</code>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_method</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"isenclosedBy\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">isenclosedBy</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Check whether a (convex) polygon or composite encloses this point.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>points</code></strong> - The polygon points or composite (<a \n          href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html\" \n          class=\"link\">LatLon</a>[], <a \n          href=\"pygeodesy.booleans.BooleanFHP-class.html\" \n          class=\"link\">BooleanFHP</a> or <a \n          href=\"pygeodesy.booleans.BooleanGH-class.html\" \n          class=\"link\">BooleanGH</a>).</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll the \n          <b><code>points</code></b> (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>True</code> if this point is inside the polygon or \n          composite, <code>False</code> otherwise.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.PointsError-class.html\">PointsError</a></strong></code> - Insufficient number of <b><code>points</code></b>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Some <b><code>points</code></b> are not <a \n        href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html\" \n        class=\"link\">LatLon</a>.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>points</code></b>, non-convex polygon.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Functions <a href=\"pygeodesy.points-module.html#isconvex\" \n        class=\"link\">pygeodesy.isconvex</a>, <a \n        href=\"pygeodesy.points-module.html#isenclosedBy\" \n        class=\"link\">pygeodesy.isenclosedBy</a> and <a \n        href=\"pygeodesy.points-module.html#ispolar\" \n        class=\"link\">pygeodesy.ispolar</a> especially if the \n        <b><code>points</code></b> may enclose a pole or wrap around the \n        earth <i>longitudinally</i>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"midpointTo\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">midpointTo</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>,\n        <span class=\"sig-arg\">height</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">fraction</span>=<span class=\"sig-default\">0.5</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Find the midpoint between this and an other point.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>other</code></strong> - The other point (<a \n          href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html\" \n          class=\"link\">LatLon</a>).</li>\n        <li><strong class=\"pname\"><code>height</code></strong> - Optional height for midpoint, overriding the mean height \n          (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>fraction</code></strong> - Midpoint location from this point (<code>scalar</code>), may be \n          negative or greater than 1.0.</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll the \n          <b><code>other</code></b> point (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Midpoint (<a \n          href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html\" \n          class=\"link\">LatLon</a>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - The <b><code>other</code></b> point is not <a \n        href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html\" \n        class=\"link\">LatLon</a>.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>height</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Methods <code>intermediateTo</code> and \n        <code>rhumbMidpointTo</code>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"nearestOn\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">nearestOn</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">point1</span>,\n        <span class=\"sig-arg\">point2</span>,\n        <span class=\"sig-arg\">radius</span>=<span class=\"sig-default\">6371008.771415</span>,\n        <span class=\"sig-arg\">**wrap_adjust_limit</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Locate the point between two other points closest to this point.</p>\n  <p>Distances are approximated by function <a \n  href=\"pygeodesy.geohash-module.html#equirectangular4\" \n  class=\"link\">pygeodesy.equirectangular4</a>, subject to the supplied \n  <b><code>options</code></b>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>point1</code></strong> - Start point (<a \n          href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html\" \n          class=\"link\">LatLon</a>).</li>\n        <li><strong class=\"pname\"><code>point2</code></strong> - End point (<a \n          href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html\" \n          class=\"link\">LatLon</a>).</li>\n        <li><strong class=\"pname\"><code>radius</code></strong> - Mean earth radius (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>wrap_adjust_limit</code></strong> - Optional keyword arguments for functions <a \n          href=\"pygeodesy.sphericalTrigonometry-module.html#nearestOn3\" \n          class=\"link\">sphericalTrigonometry.nearestOn3</a> and <a \n          href=\"pygeodesy.geohash-module.html#equirectangular4\" \n          class=\"link\">pygeodesy.equirectangular4</a>,</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Closest point on the great circle line (<a \n          href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html\" \n          class=\"link\">LatLon</a>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.LimitError-class.html\">LimitError</a></strong></code> - Lat- and/or longitudinal delta exceeds <b><code>limit</code></b>, \n        see function <a \n        href=\"pygeodesy.geohash-module.html#equirectangular4\" \n        class=\"link\">pygeodesy.equirectangular4</a>.</li>\n        <li><code><strong class='fraise'>NotImplementedError</strong></code> - Keyword argument <code><b>within</b>=False</code> is not (yet) \n        supported.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>point1</code></b> or <b><code>point2</code></b>.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>radius</code></b> or <b><code>options</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Functions <a href=\"pygeodesy.geohash-module.html#equirectangular4\" \n        class=\"link\">pygeodesy.equirectangular4</a> and <a \n        href=\"pygeodesy.points-module.html#nearestOn5\" \n        class=\"link\">pygeodesy.nearestOn5</a> and method <a \n        href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html#nearestOn3\"\n        class=\"link\">sphericalTrigonometry.LatLon.nearestOn3</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"nearestOn2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">nearestOn2</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">closed</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">radius</span>=<span class=\"sig-default\">6371008.771415</span>,\n        <span class=\"sig-arg\">**options</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use method <a \n  href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html#nearestOn3\" \n  class=\"link\">sphericalTrigonometry.LatLon.nearestOn3</a>.</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd>... 2-Tuple <code>(closest, distance)</code> of the closest point\n          (<a href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html\" \n          class=\"link\">LatLon</a>) on the polygon and the distance to that \n          point from this point in <code>meter</code>, same units of \n          <b><code>radius</code></b>.</dd>\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_method</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"nearestOn3\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">nearestOn3</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">closed</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">radius</span>=<span class=\"sig-default\">6371008.771415</span>,\n        <span class=\"sig-arg\">**wrap_adjust_limit</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Locate the point on a polygon closest to this point.</p>\n  <p>Distances are approximated by function <a \n  href=\"pygeodesy.geohash-module.html#equirectangular4\" \n  class=\"link\">pygeodesy.equirectangular4</a>, subject to the supplied \n  <b><code>options</code></b>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>points</code></strong> - The polygon points (<a \n          href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html\" \n          class=\"link\">LatLon</a>[]).</li>\n        <li><strong class=\"pname\"><code>closed</code></strong> - Optionally, close the polygon (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>radius</code></strong> - Mean earth radius (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>wrap_adjust_limit</code></strong> - Optional keyword arguments for function <a \n          href=\"pygeodesy.sphericalTrigonometry-module.html#nearestOn3\" \n          class=\"link\">sphericalTrigonometry.nearestOn3</a> and <a \n          href=\"pygeodesy.geohash-module.html#equirectangular4\" \n          class=\"link\">pygeodesy.equirectangular4</a>,</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.namedTuples.NearestOn3Tuple-class.html\" \n          class=\"link\">NearestOn3Tuple</a><code>(closest, distance, \n          angle)</code> of the <code>closest</code> point (<a \n          href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html\" \n          class=\"link\">LatLon</a>), the <a \n          href=\"pygeodesy.geohash-module.html#equirectangular4\" \n          class=\"link\">pygeodesy.equirectangular4</a> <code>distance</code>\n          between this and the <code>closest</code> point converted to \n          <code>meter</code>, same units as <b><code>radius</code></b>.  \n          The <code>angle</code> from this to the <code>closest</code> \n          point is in compass <code>degrees360</code>, like function <a \n          href=\"pygeodesy.formy-module.html#compassAngle\" \n          class=\"link\">pygeodesy.compassAngle</a>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.LimitError-class.html\">LimitError</a></strong></code> - Lat- and/or longitudinal delta exceeds <b><code>limit</code></b>, \n        see function <a \n        href=\"pygeodesy.geohash-module.html#equirectangular4\" \n        class=\"link\">pygeodesy.equirectangular4</a>.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.PointsError-class.html\">PointsError</a></strong></code> - Insufficient number of <b><code>points</code></b>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Some <b><code>points</code></b> are not <code>LatLon</code>.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>radius</code></b> or <b><code>options</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Functions <a href=\"pygeodesy.formy-module.html#compassAngle\" \n        class=\"link\">pygeodesy.compassAngle</a>, <a \n        href=\"pygeodesy.geohash-module.html#equirectangular4\" \n        class=\"link\">pygeodesy.equirectangular4</a> and <a \n        href=\"pygeodesy.points-module.html#nearestOn5\" \n        class=\"link\">pygeodesy.nearestOn5</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"toCartesian\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toCartesian</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">**Cartesian_datum_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert this point to <code>Karney</code>-based cartesian (ECEF) \n  coordinates.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>Cartesian_datum_kwds</code></strong> - Optional <a \n          href=\"pygeodesy.sphericalTrigonometry.Cartesian-class.html\" \n          class=\"link\">Cartesian</a>, <b><code>datum</code></b> and other \n          keyword arguments, ignored if <code><b>Cartesian</b> is \n          None</code>.  Use <code><b>Cartesian</b>=...</code> to override \n          this <a \n          href=\"pygeodesy.sphericalTrigonometry.Cartesian-class.html\" \n          class=\"link\">Cartesian</a> class or specify \n          <code><b>Cartesian</b>=None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The cartesian point (<a \n          href=\"pygeodesy.sphericalTrigonometry.Cartesian-class.html\" \n          class=\"link\">Cartesian</a>) or if <code><b>Cartesian</b> is \n          None</code>, an <a href=\"pygeodesy.ecef.Ecef9Tuple-class.html\" \n          class=\"link\">Ecef9Tuple</a><code>(x, y, z, lat, lon, height, C, \n          M, datum)</code> with <code>C</code> and <code>M</code> if \n          available.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>Cartesian_datum_kwds</code></b> argument.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.latlonBase.LatLonBase-class.html#toCartesian\">latlonBase.LatLonBase.toCartesian</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"triangle7\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">triangle7</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">otherB</span>,\n        <span class=\"sig-arg\">otherC</span>,\n        <span class=\"sig-arg\">radius</span>=<span class=\"sig-default\">6371008.771415</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the angles, sides and area of a spherical triangle.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>otherB</code></strong> - Second triangle point (<code>LatLon</code>).</li>\n        <li><strong class=\"pname\"><code>otherC</code></strong> - Third triangle point (<code>LatLon</code>).</li>\n        <li><strong class=\"pname\"><code>radius</code></strong> - Mean earth radius, ellipsoid or datum (<code>meter</code>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a>, <a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a> \n          or <a href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>) or <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll points \n          <b><code>otherB</code></b> and <b><code>otherC</code></b> \n          (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><a href=\"pygeodesy.namedTuples.Triangle7Tuple-class.html\" \n          class=\"link\">Triangle7Tuple</a><code>(A, a, B, b, C, c, \n          area)</code> or if <b><code>radius</code> is None</b>, a <a \n          href=\"pygeodesy.namedTuples.Triangle8Tuple-class.html\" \n          class=\"link\">Triangle8Tuple</a><code>(A, a, B, b, C, c, D, \n          E)</code>.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a \n        href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html#triangle7\" \n        class=\"link\">triangle7</a> and <a \n        href=\"https://WikiPedia.org/wiki/Spherical_trigonometry\" \n        target=\"_top\">Spherical trigonometry</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"triangulate\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">triangulate</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">bearing1</span>,\n        <span class=\"sig-arg\">other</span>,\n        <span class=\"sig-arg\">bearing2</span>,\n        <span class=\"sig-arg\">**height_wrap</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Locate a point given this, an other point and a bearing from North at \n  both points.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>bearing1</code></strong> - Bearing at this point (compass <code>degrees360</code>).</li>\n        <li><strong class=\"pname\"><code>other</code></strong> - The other point (<code>LatLon</code>).</li>\n        <li><strong class=\"pname\"><code>bearing2</code></strong> - Bearing at the other point (compass <code>degrees360</code>).</li>\n        <li><strong class=\"pname\"><code>height_wrap_tol</code></strong> - Optional keyword arguments <code><b>height</b>=None</code>, \n          <code><b>wrap</b>=False</code>, see method <a \n          href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html#intersection\"\n          class=\"link\">intersection</a>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Triangulated point (<code>LatLon</code>).</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <a \n        href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html#intersection\"\n        class=\"link\">intersection</a> for further details.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"trilaterate5\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">trilaterate5</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">distance1</span>,\n        <span class=\"sig-arg\">point2</span>,\n        <span class=\"sig-arg\">distance2</span>,\n        <span class=\"sig-arg\">point3</span>,\n        <span class=\"sig-arg\">distance3</span>,\n        <span class=\"sig-arg\">area</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">eps</span>=<span class=\"sig-default\">0.9999999999999998</span>,\n        <span class=\"sig-arg\">radius</span>=<span class=\"sig-default\">6371008.771415</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Trilaterate three points by <i>area overlap</i> or <i>perimeter \n  intersection</i> of three corresponding circles.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>distance1</code></strong> - Distance to this point (<code>meter</code>, same units as \n          <b><code>radius</code></b>).</li>\n        <li><strong class=\"pname\"><code>point2</code></strong> - Second center point (<code>LatLon</code>).</li>\n        <li><strong class=\"pname\"><code>distance2</code></strong> - Distance to point2 (<code>meter</code>, same units as \n          <b><code>radius</code></b>).</li>\n        <li><strong class=\"pname\"><code>point3</code></strong> - Third center point (<code>LatLon</code>).</li>\n        <li><strong class=\"pname\"><code>distance3</code></strong> - Distance to point3 (<code>meter</code>, same units as \n          <b><code>radius</code></b>).</li>\n        <li><strong class=\"pname\"><code>area</code></strong> - If <code>True</code>, compute the area overlap, otherwise the \n          perimeter intersection of the circles (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>eps</code></strong> - The required <i>minimal overlap</i> for \n          <code><b>area</b>=True</code> or the <i>intersection margin</i> \n          if <code><b>area</b>=False</code> (<code>meter</code>, same units\n          as <b><code>radius</code></b>).</li>\n        <li><strong class=\"pname\"><code>radius</code></strong> - Mean earth radius (<code>meter</code>, conventionally).</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll \n          <b><code>point2</code></b> and <b><code>point3</code></b> \n          (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.namedTuples.Trilaterate5Tuple-class.html\" \n          class=\"link\">Trilaterate5Tuple</a><code>(min, minPoint, max, \n          maxPoint, n)</code> with <code>min</code> and <code>max</code> in\n          <code>meter</code>, same units as <b><code>eps</code></b>, the \n          corresponding trilaterated points <code>minPoint</code> and \n          <code>maxPoint</code> as <i>spherical</i> <code>LatLon</code> and\n          <code>n</code>, the number of trilatered points found for the \n          given <b><code>eps</code></b>.\n          <p>If only a single trilaterated point is found, <code>min \n          <i>is</i> max</code>, <code>minPoint <i>is</i> maxPoint</code> \n          and <code>n = 1</code>.</p>\n          <p>For <code><b>area</b>=True</code>, <code>min</code> and \n          <code>max</code> are the smallest respectively largest \n          <i>radial</i> overlap found.</p>\n          <p>For <code><b>area</b>=False</code>, <code>min</code> and \n          <code>max</code> represent the nearest respectively farthest \n          intersection margin.</p>\n          <p>If <code><b>area</b>=True</code> and all 3 circles are \n          concentric, <code>n=0</code> and <code>minPoint</code> and \n          <code>maxPoint</code> are both the <b><code>point#</code></b> \n          with the smallest <b><code>distance#</code></b> <code>min</code> \n          and <code>max</code> the largest \n          <b><code>distance#</code></b>.</p></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.IntersectionError-class.html\">IntersectionError</a></strong></code> - Trilateration failed for the given <b><code>eps</code></b>, \n        insufficient overlap for <code><b>area</b>=True</code> or no \n        intersection or all (near-)concentric if \n        <code><b>area</b>=False</code>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>point2</code></b> or <b><code>point3</code></b>.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Coincident <b><code>point2</code></b> or <b><code>point3</code></b>\n        or invalid <b><code>distance1</code></b>, \n        <b><code>distance2</code></b>, <b><code>distance3</code></b> or \n        <b><code>radius</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.streprs-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.streprs</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        Module&nbsp;streprs\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.streprs-module.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== MODULE DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Module streprs</h1><p class=\"nomargin-top\"></p>\n<p>Floating point and other formatting utilities.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Version:</strong>\n        25.11.24\n      </p>\n</div><!-- ==================== FUNCTIONS ==================== -->\n<a name=\"section-Functions\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Functions</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.streprs-module.html#anstr\" class=\"summary-sig-name\">anstr</a>(<span class=\"summary-sig-arg\">name</span>,\n        <span class=\"summary-sig-arg\">OKd</span>=<span class=\"summary-sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">._-</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"summary-sig-arg\">sub</span>=<span class=\"summary-sig-default\">'_'</span>)</span><br />\n      Make a valid name of alphanumeric and OKd characters.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.streprs-module.html#attrs\" class=\"summary-sig-name\">attrs</a>(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">*names</span>,\n        <span class=\"summary-sig-arg\">**Nones_True__pairs_kwds</span>)</span><br />\n      Get instance attributes as <i>name=value</i> strings, with \n      <code>float</code>s formatted by function <a \n      href=\"pygeodesy.streprs-module.html#fstr\" class=\"link\">fstr</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.streprs-module.html#enstr2\" class=\"summary-sig-name\">enstr2</a>(<span class=\"summary-sig-arg\">easting</span>,\n        <span class=\"summary-sig-arg\">northing</span>,\n        <span class=\"summary-sig-arg\">prec</span>,\n        <span class=\"summary-sig-arg\">*extras</span>,\n        <span class=\"summary-sig-arg\">**wide_dot</span>)</span><br />\n      Return an MGRS/OSGR easting, northing string representations.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.streprs-module.html#fstr\" class=\"summary-sig-name\">fstr</a>(<span class=\"summary-sig-arg\">floats</span>,\n        <span class=\"summary-sig-arg\">prec</span>=<span class=\"summary-sig-default\">6</span>,\n        <span class=\"summary-sig-arg\">fmt</span>=<span class=\"summary-sig-default\">'F'</span>,\n        <span class=\"summary-sig-arg\">ints</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">sep</span>=<span class=\"summary-sig-default\">', '</span>,\n        <span class=\"summary-sig-arg\">strepr</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">force</span>=<span class=\"summary-sig-default\">True</span>)</span><br />\n      Convert one or more floats to string, optionally stripped of trailing\n      zero decimals.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.streprs-module.html#fstrzs\" class=\"summary-sig-name\">fstrzs</a>(<span class=\"summary-sig-arg\">efstr</span>,\n        <span class=\"summary-sig-arg\">ap1z</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Strip trailing zero decimals from a <code>float</code> string.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.streprs-module.html#hstr\" class=\"summary-sig-name\">hstr</a>(<span class=\"summary-sig-arg\">height</span>,\n        <span class=\"summary-sig-arg\">prec</span>=<span class=\"summary-sig-default\">2</span>,\n        <span class=\"summary-sig-arg\">fmt</span>=<span class=\"summary-sig-default\">'%+.*f'</span>,\n        <span class=\"summary-sig-arg\">ints</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">m</span>=<span class=\"summary-sig-default\">''</span>)</span><br />\n      Return a string for the height value.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.streprs-module.html#instr\" class=\"summary-sig-name\">instr</a>(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">*args</span>,\n        <span class=\"summary-sig-arg\">**kwds</span>)</span><br />\n      Return the string representation of an instantiation.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.streprs-module.html#lrstrip\" class=\"summary-sig-name\">lrstrip</a>(<span class=\"summary-sig-arg\">txt</span>,\n        <span class=\"summary-sig-arg\">lrpairs</span>=<span class=\"summary-sig-default\"><code class=\"variable-group\">{</code><code class=\"variable-quote\">'</code><code class=\"variable-string\">(</code><code class=\"variable-quote\">'</code><code class=\"variable-op\">: </code><code class=\"variable-quote\">'</code><code class=\"variable-string\">)</code><code class=\"variable-quote\">'</code><code class=\"variable-op\">, </code><code class=\"variable-quote\">'</code><code class=\"variable-string\">&lt;</code><code class=\"variable-quote\">'</code><code class=\"variable-op\">: </code><code class=\"variable-quote\">'</code><code class=\"variable-string\">&gt;</code><code class=\"variable-quote\">'</code><code class=\"variable-op\">, </code><code class=\"variable-quote\">'</code><code class=\"variable-string\">[</code><code class=\"variable-quote\">'</code><code class=\"variable-op\">: </code><code class=\"variable-quote\">'</code><code class=\"variable-string\">]</code><code class=\"variable-quote\">'</code><code class=\"variable-op\">, </code><code class=\"variable-quote\">'</code><code class=\"variable-string\">{</code><code class=\"variable-quote\">'</code><code class=\"variable-op\">: </code><code class=\"variable-quote\">'</code><code class=\"variable-string\">}</code><code class=\"variable-quote\">'</code><code class=\"variable-group\">}</code></span>)</span><br />\n      Left- <i>and</i> right-strip parentheses, brackets, etc.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.streprs-module.html#pairs\" class=\"summary-sig-name\">pairs</a>(<span class=\"summary-sig-arg\">items</span>,\n        <span class=\"summary-sig-arg\">prec</span>=<span class=\"summary-sig-default\">6</span>,\n        <span class=\"summary-sig-arg\">fmt</span>=<span class=\"summary-sig-default\">'F'</span>,\n        <span class=\"summary-sig-arg\">ints</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">sep</span>=<span class=\"summary-sig-default\">'='</span>)</span><br />\n      Convert items to <i>name=value</i> strings, with <code>float</code>s \n      handled like <a href=\"pygeodesy.streprs-module.html#fstr\" \n      class=\"link\">fstr</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.streprs-module.html#reprs\" class=\"summary-sig-name\">reprs</a>(<span class=\"summary-sig-arg\">objs</span>,\n        <span class=\"summary-sig-arg\">prec</span>=<span class=\"summary-sig-default\">6</span>,\n        <span class=\"summary-sig-arg\">fmt</span>=<span class=\"summary-sig-default\">'F'</span>,\n        <span class=\"summary-sig-arg\">ints</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Convert objects to <code>repr</code> strings, with \n      <code>float</code>s handled like <a \n      href=\"pygeodesy.streprs-module.html#fstr\" class=\"link\">fstr</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.streprs-module.html#strs\" class=\"summary-sig-name\">strs</a>(<span class=\"summary-sig-arg\">objs</span>,\n        <span class=\"summary-sig-arg\">prec</span>=<span class=\"summary-sig-default\">6</span>,\n        <span class=\"summary-sig-arg\">fmt</span>=<span class=\"summary-sig-default\">'F'</span>,\n        <span class=\"summary-sig-arg\">ints</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Convert objects to <code>str</code> strings, with <code>float</code>s\n      handled like <a href=\"pygeodesy.streprs-module.html#fstr\" \n      class=\"link\">fstr</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.streprs-module.html#unstr\" class=\"summary-sig-name\">unstr</a>(<span class=\"summary-sig-arg\">where</span>,\n        <span class=\"summary-sig-arg\">*args</span>,\n        <span class=\"summary-sig-arg\">**kwds_</span>)</span><br />\n      Return the string representation of an invokation.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== VARIABLES ==================== -->\n<a name=\"section-Variables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Variables</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"__all__\"></a><span class=\"summary-name\">__all__</span> = <code title=\"_ALL_LAZY.streprs\">_ALL_LAZY.streprs</code>\n    </td>\n  </tr>\n</table>\n<!-- ==================== FUNCTION DETAILS ==================== -->\n<a name=\"section-FunctionDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Function Details</span></td>\n</tr>\n</table>\n<a name=\"anstr\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">anstr</span>&nbsp;(<span class=\"sig-arg\">name</span>,\n        <span class=\"sig-arg\">OKd</span>=<span class=\"sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">._-</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"sig-arg\">sub</span>=<span class=\"sig-default\">'_'</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Make a valid name of alphanumeric and OKd characters.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>name</code></strong> - The original name (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>OKd</code></strong> - Other acceptable characters (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>sub</code></strong> - Substitute for invalid charactes (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The modified name (<code>str</code>).</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        Leading and trailing whitespace characters are removed, \n        intermediate whitespace characters are coalesced and substituted.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"attrs\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">attrs</span>&nbsp;(<span class=\"sig-arg\">inst</span>,\n        <span class=\"sig-arg\">*names</span>,\n        <span class=\"sig-arg\">**Nones_True__pairs_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Get instance attributes as <i>name=value</i> strings, with \n  <code>float</code>s formatted by function <a \n  href=\"pygeodesy.streprs-module.html#fstr\" class=\"link\">fstr</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>inst</code></strong> - The instance (any <code>type</code>).</li>\n        <li><strong class=\"pname\"><code>names</code></strong> - The attribute names, all other positional (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>Nones_True__pairs_kwds</code></strong> - Keyword argument for function <a \n          href=\"pygeodesy.streprs-module.html#pairs\" \n          class=\"link\">pairs</a>, except <code><b>Nones</b>=True</code> to \n          in-/exclude missing or <code>None</code>-valued attributes.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <code>tuple(<b>sep</b>.join(t) for t in zip(<b>names</b>, \n          reprs(values, ...)))</code> of <code>str</code>s.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"enstr2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">enstr2</span>&nbsp;(<span class=\"sig-arg\">easting</span>,\n        <span class=\"sig-arg\">northing</span>,\n        <span class=\"sig-arg\">prec</span>,\n        <span class=\"sig-arg\">*extras</span>,\n        <span class=\"sig-arg\">**wide_dot</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return an MGRS/OSGR easting, northing string representations.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>easting</code></strong> - Easting from false easting (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>northing</code></strong> - Northing from from false northing (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>prec</code></strong> - Precision, the number of <i>decimal</i> digits (<code>int</code>)\n          or if negative, the number of <i>units to drop</i>, like MGRS <a \n          href=\"https://GeographicLib.SourceForge.io/C++/doc/GeoConvert.1.html#PRECISION\"\n          target=\"_top\">PRECISION</a>.</li>\n        <li><strong class=\"pname\"><code>extras</code></strong> - Optional leading items (<code>str</code>s).</li>\n        <li><strong class=\"pname\"><code>wide_dot</code></strong> - Optional keword argument <code><b>wide</b>=5</code> for the \n          number of <i>unit digits</i> (<code>int</code>) and \n          <code><b>dot</b>=False</code> (<code>bool</code>) to insert a \n          decimal point.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><b><code>extras</code></b> + 2-tuple <code>(str(<b>easting</b>), \n          str(<b>northing</b>))</code> or + 2-tuple <code>(&quot;&quot;, \n          &quot;&quot;)</code> for <code><b>prec</b> &lt;= \n          -<b>wide</b></code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>easting</code></b>, <b><code>northing</code></b> \n        or <b><code>prec</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        The <b><code>easting</code></b> and <b><code>northing</code></b> \n        values are <i>truncated, not rounded</i>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"fstr\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">fstr</span>&nbsp;(<span class=\"sig-arg\">floats</span>,\n        <span class=\"sig-arg\">prec</span>=<span class=\"sig-default\">6</span>,\n        <span class=\"sig-arg\">fmt</span>=<span class=\"sig-default\">'F'</span>,\n        <span class=\"sig-arg\">ints</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">sep</span>=<span class=\"sig-default\">', '</span>,\n        <span class=\"sig-arg\">strepr</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">force</span>=<span class=\"sig-default\">True</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert one or more floats to string, optionally stripped of trailing \n  zero decimals.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>floats</code></strong> - Single or a list, sequence, tuple, etc. (<code>scalar</code>s).</li>\n        <li><strong class=\"pname\"><code>prec</code></strong> - The <code>float</code> precision, number of decimal digits \n          (0..9). Trailing zero decimals are stripped if \n          <b><code>prec</code></b> is positive, but kept for negative \n          <b><code>prec</code></b> values.  In addition, trailing decimal \n          zeros are stripped for <a \n          href=\"https://docs.Python.org/3/library/stdtypes.html#printf-style-string-formatting\"\n          target=\"_top\">alternate, form '#'</a>.</li>\n        <li><strong class=\"pname\"><code>fmt</code></strong> - Optional <code>float</code> format (<code>letter</code>).</li>\n        <li><strong class=\"pname\"><code>ints</code></strong> - Optionally, remove the decimal dot for <code>int</code> values \n          (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>sep</code></strong> - Separator joining the <b><code>floats</code></b> \n          (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>strepr</code></strong> - Optional callable to format non-<code>floats</code> (typically \n          <code>repr</code>, <code>str</code>) or <code>None</code> to \n          raise a TypeError and used only if <code><b>force</b> is not \n          True</code>.</li>\n        <li><strong class=\"pname\"><code>force</code></strong> - If <code>True</code>, format all <b><code>floats</code></b> using\n          <b><code>fmt</code></b>, otherwise use <b><code>strepr</code></b>\n          for non-<code>floats</code> (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The <code>sep.join(strs(floats, ...)</code> joined \n          (<code>str</code>) or single <code>strs((floats,), ...)</code> \n          (<code>str</code>) if <b><code>floats</code></b> is \n          <code>scalar</code>.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"fstrzs\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">fstrzs</span>&nbsp;(<span class=\"sig-arg\">efstr</span>,\n        <span class=\"sig-arg\">ap1z</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Strip trailing zero decimals from a <code>float</code> string.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>efstr</code></strong> - Float with or without exponent (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>ap1z</code></strong> - Append the decimal point and one zero decimal if the \n          <b><code>efstr</code></b> is all digits (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Float (<code>str</code>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"hstr\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">hstr</span>&nbsp;(<span class=\"sig-arg\">height</span>,\n        <span class=\"sig-arg\">prec</span>=<span class=\"sig-default\">2</span>,\n        <span class=\"sig-arg\">fmt</span>=<span class=\"sig-default\">'%+.*f'</span>,\n        <span class=\"sig-arg\">ints</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">m</span>=<span class=\"sig-default\">''</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return a string for the height value.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>height</code></strong> - Height value (<code>float</code>).</li>\n        <li><strong class=\"pname\"><code>prec</code></strong> - The <code>float</code> precision, number of decimal digits \n          (0..9). Trailing zero decimals are stripped if \n          <b><code>prec</code></b> is positive, but kept for negative \n          <b><code>prec</code></b> values.</li>\n        <li><strong class=\"pname\"><code>fmt</code></strong> - Optional <code>float</code> format (<code>letter</code>).</li>\n        <li><strong class=\"pname\"><code>ints</code></strong> - Optionally, remove the decimal dot for <code>int</code> values \n          (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>m</code></strong> - Optional unit of the height (<code>str</code>).</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"instr\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">instr</span>&nbsp;(<span class=\"sig-arg\">inst</span>,\n        <span class=\"sig-arg\">*args</span>,\n        <span class=\"sig-arg\">**kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the string representation of an instantiation.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>inst</code></strong> - The instance (any <code>type</code>).</li>\n        <li><strong class=\"pname\"><code>args</code></strong> - Optional positional arguments.</li>\n        <li><strong class=\"pname\"><code>kwds</code></strong> - Optional keyword arguments.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Representation (<code>str</code>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"lrstrip\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">lrstrip</span>&nbsp;(<span class=\"sig-arg\">txt</span>,\n        <span class=\"sig-arg\">lrpairs</span>=<span class=\"sig-default\"><code class=\"variable-group\">{</code><code class=\"variable-quote\">'</code><code class=\"variable-string\">(</code><code class=\"variable-quote\">'</code><code class=\"variable-op\">: </code><code class=\"variable-quote\">'</code><code class=\"variable-string\">)</code><code class=\"variable-quote\">'</code><code class=\"variable-op\">, </code><code class=\"variable-quote\">'</code><code class=\"variable-string\">&lt;</code><code class=\"variable-quote\">'</code><code class=\"variable-op\">: </code><code class=\"variable-quote\">'</code><code class=\"variable-string\">&gt;</code><code class=\"variable-quote\">'</code><code class=\"variable-op\">, </code><code class=\"variable-quote\">'</code><code class=\"variable-string\">[</code><code class=\"variable-quote\">'</code><code class=\"variable-op\">: </code><code class=\"variable-quote\">'</code><code class=\"variable-string\">]</code><code class=\"variable-quote\">'</code><code class=\"variable-op\">, </code><code class=\"variable-quote\">'</code><code class=\"variable-string\">{</code><code class=\"variable-quote\">'</code><code class=\"variable-op\">: </code><code class=\"variable-quote\">'</code><code class=\"variable-string\">}</code><code class=\"variable-quote\">'</code><code class=\"variable-group\">}</code></span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Left- <i>and</i> right-strip parentheses, brackets, etc. from a \n  string.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>txt</code></strong> - String to be stripped (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>lrpairs</code></strong> - Parentheses, etc. to remove (<code>dict</code> of one or several \n          <code>(Left, Right)</code> pairs).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Stripped <b><code>txt</code></b> (<code>str</code>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"pairs\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">pairs</span>&nbsp;(<span class=\"sig-arg\">items</span>,\n        <span class=\"sig-arg\">prec</span>=<span class=\"sig-default\">6</span>,\n        <span class=\"sig-arg\">fmt</span>=<span class=\"sig-default\">'F'</span>,\n        <span class=\"sig-arg\">ints</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">sep</span>=<span class=\"sig-default\">'='</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert items to <i>name=value</i> strings, with <code>float</code>s \n  handled like <a href=\"pygeodesy.streprs-module.html#fstr\" \n  class=\"link\">fstr</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>items</code></strong> - Name-value pairs (<code>dict</code> or 2-{tuple}s of any \n          <code>type</code>s).</li>\n        <li><strong class=\"pname\"><code>prec</code></strong> - The <code>float</code> precision, number of decimal digits \n          (0..9). Trailing zero decimals are stripped if \n          <b><code>prec</code></b> is positive, but kept for negative \n          <b><code>prec</code></b> values.</li>\n        <li><strong class=\"pname\"><code>fmt</code></strong> - Optional <code>float</code> format (<code>letter</code>).</li>\n        <li><strong class=\"pname\"><code>ints</code></strong> - Optionally, remove the decimal dot for <code>int</code> values \n          (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>sep</code></strong> - Separator joining <i>names</i> and <i>values</i> \n          (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <code>tuple(<b>sep</b>.join(t) for t in <b>items</b>))</code> \n          of <code>str</code>s.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"reprs\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">reprs</span>&nbsp;(<span class=\"sig-arg\">objs</span>,\n        <span class=\"sig-arg\">prec</span>=<span class=\"sig-default\">6</span>,\n        <span class=\"sig-arg\">fmt</span>=<span class=\"sig-default\">'F'</span>,\n        <span class=\"sig-arg\">ints</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert objects to <code>repr</code> strings, with <code>float</code>s\n  handled like <a href=\"pygeodesy.streprs-module.html#fstr\" \n  class=\"link\">fstr</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>objs</code></strong> - List, sequence, tuple, etc. (any <code>type</code>s).</li>\n        <li><strong class=\"pname\"><code>prec</code></strong> - The <code>float</code> precision, number of decimal digits \n          (0..9). Trailing zero decimals are stripped if \n          <b><code>prec</code></b> is positive, but kept for negative \n          <b><code>prec</code></b> values.</li>\n        <li><strong class=\"pname\"><code>fmt</code></strong> - Optional <code>float</code> format (<code>letter</code>).</li>\n        <li><strong class=\"pname\"><code>ints</code></strong> - Optionally, remove the decimal dot for <code>int</code> values \n          (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <code>tuple(map(fstr|repr, objs))</code> of <code>str</code>s.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"strs\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">strs</span>&nbsp;(<span class=\"sig-arg\">objs</span>,\n        <span class=\"sig-arg\">prec</span>=<span class=\"sig-default\">6</span>,\n        <span class=\"sig-arg\">fmt</span>=<span class=\"sig-default\">'F'</span>,\n        <span class=\"sig-arg\">ints</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert objects to <code>str</code> strings, with <code>float</code>s \n  handled like <a href=\"pygeodesy.streprs-module.html#fstr\" \n  class=\"link\">fstr</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>objs</code></strong> - List, sequence, tuple, etc. (any <code>type</code>s).</li>\n        <li><strong class=\"pname\"><code>prec</code></strong> - The <code>float</code> precision, number of decimal digits \n          (0..9). Trailing zero decimals are stripped if \n          <b><code>prec</code></b> is positive, but kept for negative \n          <b><code>prec</code></b> values.</li>\n        <li><strong class=\"pname\"><code>fmt</code></strong> - Optional <code>float</code> format (<code>letter</code>).</li>\n        <li><strong class=\"pname\"><code>ints</code></strong> - Optionally, remove the decimal dot for <code>int</code> values \n          (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <code>tuple(map(fstr|str, objs))</code> of <code>str</code>s.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"unstr\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">unstr</span>&nbsp;(<span class=\"sig-arg\">where</span>,\n        <span class=\"sig-arg\">*args</span>,\n        <span class=\"sig-arg\">**kwds_</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the string representation of an invokation.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>where</code></strong> - Class, function, method (<code>type</code>) or name \n          (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>args</code></strong> - Optional positional arguments.</li>\n        <li><strong class=\"pname\"><code>kwds_</code></strong> - Optional keyword arguments, except \n          <code><b>_Cdot</b>=None</code>, \n          <code><b>_ELLIPSIS</b>=False</code>, \n          <code><b>_fmt</b>=Fmt.g</code> and <code><b>_prec</b>=6</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Representation (<code>str</code>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.trf-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.trf</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        Module&nbsp;trf\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.trf-module.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== MODULE DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Module trf</h1><p class=\"nomargin-top\"></p>\n<p><i>Veness</i>' Terrestrial Reference Frames (TRF), classes <a \n  href=\"pygeodesy.trf.RefFrame-class.html\" class=\"link\">RefFrame</a>, \n  registry <a href=\"pygeodesy.trf-module.html#RefFrames\" \n  class=\"link\">RefFrames</a> and <a \n  href=\"pygeodesy.errors.TRFError-class.html\" \n  class=\"link\">TRFError</a>.</p>\n  <p>Transcoded from <i>Chris Veness'</i> (C) 2006-2024 JavaScript \n  originals <a \n  href=\"https://GitHub.com/ChrisVeness/geodesy/blob/master/latlon-ellipsoidal-referenceframe.js\"\n  target=\"_top\">latlon-ellipsoidal-referenceframe.js</a> and <a \n  href=\"https://GitHub.com/ChrisVeness/geodesy/blob/master/latlon-ellipsoidal-referenceframe-txparams.js\"\n  target=\"_top\">latlon-ellipsoidal-referenceframe-txparams.js</a>.</p>\n  <p>Following is a copy of the comments in <i>Veness</i>' <a \n  href=\"https://GitHub.com/ChrisVeness/geodesy/blob/master/latlon-ellipsoidal-referenceframe.js\"\n  target=\"_top\">latlon-ellipsoidal-referenceframe.js</a>.</p>\n  <p>Modern geodetic reference frames: a latitude/longitude point defines a\n  geographic location on, above or below the earth&#8217;s surface, measured in \n  degrees from the equator and the <a \n  href=\"https://WikiPedia.org/wiki/IERS_Reference_Meridian\" \n  target=\"_top\">International Reference Meridian</a> (IRM) and metres above\n  the ellipsoid within a given <i>Terrestrial Reference Frame</i> at a \n  given <i>epoch</i>.</p>\n  <p>This is scratching the surface of complexities involved in high \n  precision geodesy, but may be of interest and/or value to those with less\n  demanding requirements.  More information <a \n  href=\"https://www.Movable-Type.co.UK/scripts/geodesy-library.html\" \n  target=\"_top\">here</a> and <a \n  href=\"https://www.Movable-Type.co.UK/scripts/geodesy-library.html#latlon-ellipsoidal-referenceframe\"\n  target=\"_top\">here</a>.</p>\n  <p>Note that <i>ITRF solutions</i> do not directly use an ellipsoid, but \n  are specified by Cartesian coordinates.  The GRS80 ellipsoid is \n  recommended for transformations to geographical coordinates.</p>\n  <p>Note WGS84(G730/G873/G1150) are coincident with ITRF at 10-centimetre \n  level, see also <a href=\"ftp://ITRF.ENSG.IGN.Fr/pub/itrf/WGS84.TXT\" \n  target=\"_top\">here</a>.  WGS84(G1674) and ITRF20014 / ITRF2008 \n  <i>&quot;are likely to agree at the centimeter level&quot;</i>, see also \n  <a \n  href=\"https://Confluence.QPS.NL/qinsy/en/how-to-deal-with-etrs89-datum-and-time-dependent-transformation-parameters-45353274.html\"\n  target=\"_top\">QPS/Qinsy</a>.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Version:</strong>\n        25.09.11\n      </p>\n</div><!-- ==================== CLASSES ==================== -->\n<a name=\"section-Classes\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Classes</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.trf.RefFrame-class.html\" class=\"summary-name\">RefFrame</a><br />\n      Terrestrial Reference Frame (TRF) parameters.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.trf.TransformXform-class.html\" class=\"summary-name\">TransformXform</a><br />\n      Helmert transformation, extended with an <code>Xform</code> TRF \n        converter.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.trf.TRFXform7Tuple-class.html\" class=\"summary-name\">TRFXform7Tuple</a><br />\n      7-Tuple <code>(tx, ty, tz, s, sx, sy, sz)</code> of conversion \n        parameters with translations <code>tx</code>, <code>ty</code> and \n        <code>tz</code> in <code>milli-meter</code>, scale <code>s</code> \n        in <code>ppB</code> and rotations <code>sx</code>, <code>sy</code> \n        and <code>sz</code> in <code>milli-arc-seconds</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.trf.TRFXform-class.html\" class=\"summary-name\">TRFXform</a><br />\n      A Terrestrial Reference Frame (TRF) converter between two reference\n        frames observed at an <code>epoch</code>.\n    </td>\n  </tr>\n</table>\n<!-- ==================== FUNCTIONS ==================== -->\n<a name=\"section-Functions\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Functions</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.trf-module.html#date2epoch\" class=\"summary-sig-name\">date2epoch</a>(<span class=\"summary-sig-arg\">year</span>,\n        <span class=\"summary-sig-arg\">month</span>,\n        <span class=\"summary-sig-arg\">day</span>)</span><br />\n      Return the <code>epoch</code> for a calendar day.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.trf-module.html#epoch2date\" class=\"summary-sig-name\">epoch2date</a>(<span class=\"summary-sig-arg\">epoch</span>)</span><br />\n      Return the date for a reference frame <code>epoch</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.trf-module.html#trfTransform0\" class=\"summary-sig-name\">trfTransform0</a>(<span class=\"summary-sig-arg\">reframe</span>,\n        <span class=\"summary-sig-arg\">reframe2</span>,\n        <span class=\"summary-sig-arg\">epoch</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">epoch2</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">indirect</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">inverse</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">exhaust</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Get a Helmert transform to convert one <code>reframe</code> observed \n      at <code>epoch</code> to an other <code>reframe2</code> at observed \n      at <code>epoch2 or epoch</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.trf-module.html#trfTransforms\" class=\"summary-sig-name\">trfTransforms</a>(<span class=\"summary-sig-arg\">reframe</span>,\n        <span class=\"summary-sig-arg\">reframe2</span>,\n        <span class=\"summary-sig-arg\">epoch</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">epoch2</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">indirect</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">inverse</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">exhaust</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Yield all Helmert transform to convert one <code>reframe</code> \n      observed at <code>epoch</code> to an other <code>reframe2</code> at \n      observed at <code>epoch2 or epoch</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.trf-module.html#trfXform\" class=\"summary-sig-name\">trfXform</a>(<span class=\"summary-sig-arg\">reframe1</span>,\n        <span class=\"summary-sig-arg\">reframe2</span>,\n        <span class=\"summary-sig-arg\">epoch</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">xform</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">rates</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">raiser</span>=<span class=\"summary-sig-default\">True</span>)</span><br />\n      Define a new Terrestrial Reference Frame (TRF) converter or get an \n      existing one.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== VARIABLES ==================== -->\n<a name=\"section-Variables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Variables</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"__all__\"></a><span class=\"summary-name\">__all__</span> = <code title=\"_ALL_LAZY.trf\">_ALL_LAZY.trf</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.trf-module.html#RefFrames\" class=\"summary-name\">RefFrames</a> = <code title=\"RefFrames.ETRF89: RefFrame(name='ETRF89', epoch=1989, datum=Datums.GRS\\\n80),\nRefFrames.NAD83cors96: RefFrame(name='NAD83cors96', epoch=1997, datum=\\\nDatums.GRS80),\nRefFrames.GDA2020: RefFrame(name='GDA2020', epoch=2020, datum=Datums.G\\\nRS80),\nRefFrames.ETRF92: RefFrame(name='ETRF92', epoch=1992, datum=Datums.GRS\\\n80),\n...\">RefFrames.ETRF89: RefFrame(name='ETRF89', epoch=19<code class=\"variable-ellipsis\">...</code></code><br />\n      Some pre-defined <a href=\"pygeodesy.trf.RefFrame-class.html\" \n      class=\"link\">RefFrame</a>s, all <i>lazily</i> instantiated.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"RefFrames.ETRF2000\"></a><span class=\"summary-name\">RefFrames.ETRF2000</span><br />\n      RefFrame(name='ETRF2000', epoch=2005, datum=Datums.GRS80) .Xforms=(0,\n      -14)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"RefFrames.ETRF2005\"></a><span class=\"summary-name\">RefFrames.ETRF2005</span><br />\n      RefFrame(name='ETRF2005', epoch=2005, datum=Datums.GRS80) .Xforms=(0,\n      -1)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"RefFrames.ETRF2008\"></a><span class=\"summary-name\">RefFrames.ETRF2008</span><br />\n      RefFrame(name='ETRF2008', epoch=2008, datum=Datums.GRS80) .Xforms=(0,\n      0)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"RefFrames.ETRF2014\"></a><span class=\"summary-name\">RefFrames.ETRF2014</span><br />\n      RefFrame(name='ETRF2014', epoch=2014, datum=Datums.GRS80) .Xforms=(0,\n      -14)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"RefFrames.ETRF2020\"></a><span class=\"summary-name\">RefFrames.ETRF2020</span><br />\n      RefFrame(name='ETRF2020', epoch=2020, datum=Datums.GRS80) .Xforms=(0,\n      -14)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"RefFrames.ETRF88\"></a><span class=\"summary-name\">RefFrames.ETRF88</span><br />\n      RefFrame(name='ETRF88', epoch=1988, datum=Datums.GRS80) .Xforms=(0, \n      0)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"RefFrames.ETRF89\"></a><span class=\"summary-name\">RefFrames.ETRF89</span><br />\n      RefFrame(name='ETRF89', epoch=1989, datum=Datums.GRS80) .Xforms=(0, \n      -1)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"RefFrames.ETRF90\"></a><span class=\"summary-name\">RefFrames.ETRF90</span><br />\n      RefFrame(name='ETRF90', epoch=1990, datum=Datums.GRS80) .Xforms=(0, \n      -1)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"RefFrames.ETRF91\"></a><span class=\"summary-name\">RefFrames.ETRF91</span><br />\n      RefFrame(name='ETRF91', epoch=1991, datum=Datums.GRS80) .Xforms=(0, \n      -1)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"RefFrames.ETRF92\"></a><span class=\"summary-name\">RefFrames.ETRF92</span><br />\n      RefFrame(name='ETRF92', epoch=1992, datum=Datums.GRS80) .Xforms=(0, \n      -1)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"RefFrames.ETRF93\"></a><span class=\"summary-name\">RefFrames.ETRF93</span><br />\n      RefFrame(name='ETRF93', epoch=1993, datum=Datums.GRS80) .Xforms=(0, \n      -1)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"RefFrames.ETRF94\"></a><span class=\"summary-name\">RefFrames.ETRF94</span><br />\n      RefFrame(name='ETRF94', epoch=1994, datum=Datums.GRS80) .Xforms=(0, \n      -1)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"RefFrames.ETRF96\"></a><span class=\"summary-name\">RefFrames.ETRF96</span><br />\n      RefFrame(name='ETRF96', epoch=1996, datum=Datums.GRS80) .Xforms=(0, \n      -1)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"RefFrames.ETRF97\"></a><span class=\"summary-name\">RefFrames.ETRF97</span><br />\n      RefFrame(name='ETRF97', epoch=1997, datum=Datums.GRS80) .Xforms=(0, \n      -1)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"RefFrames.GDA2020\"></a><span class=\"summary-name\">RefFrames.GDA2020</span><br />\n      RefFrame(name='GDA2020', epoch=2020, datum=Datums.GRS80) .Xforms=(0, \n      -4)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"RefFrames.GDA94\"></a><span class=\"summary-name\">RefFrames.GDA94</span><br />\n      RefFrame(name='GDA94', epoch=1994, datum=Datums.GRS80) .Xforms=(0, \n      -3)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"RefFrames.ITRF2000\"></a><span class=\"summary-name\">RefFrames.ITRF2000</span><br />\n      RefFrame(name='ITRF2000', epoch=1997, datum=Datums.GRS80) \n      .Xforms=(15, -5)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"RefFrames.ITRF2005\"></a><span class=\"summary-name\">RefFrames.ITRF2005</span><br />\n      RefFrame(name='ITRF2005', epoch=2000, datum=Datums.GRS80) .Xforms=(8,\n      -3)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"RefFrames.ITRF2008\"></a><span class=\"summary-name\">RefFrames.ITRF2008</span><br />\n      RefFrame(name='ITRF2008', epoch=2005, datum=Datums.GRS80) \n      .Xforms=(17, -2)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"RefFrames.ITRF2014\"></a><span class=\"summary-name\">RefFrames.ITRF2014</span><br />\n      RefFrame(name='ITRF2014', epoch=2010, datum=Datums.GRS80) \n      .Xforms=(16, -1)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"RefFrames.ITRF2020\"></a><span class=\"summary-name\">RefFrames.ITRF2020</span><br />\n      RefFrame(name='ITRF2020', epoch=2015, datum=Datums.GRS80) \n      .Xforms=(16, 0)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"RefFrames.ITRF88\"></a><span class=\"summary-name\">RefFrames.ITRF88</span><br />\n      RefFrame(name='ITRF88', epoch=1988, datum=Datums.GRS80) .Xforms=(3, \n      -4)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"RefFrames.ITRF89\"></a><span class=\"summary-name\">RefFrames.ITRF89</span><br />\n      RefFrame(name='ITRF89', epoch=1989, datum=Datums.GRS80) .Xforms=(4, \n      -4)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"RefFrames.ITRF90\"></a><span class=\"summary-name\">RefFrames.ITRF90</span><br />\n      RefFrame(name='ITRF90', epoch=1988, datum=Datums.GRS80) .Xforms=(6, \n      -4)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"RefFrames.ITRF91\"></a><span class=\"summary-name\">RefFrames.ITRF91</span><br />\n      RefFrame(name='ITRF91', epoch=1988, datum=Datums.GRS80) .Xforms=(4, \n      -4)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"RefFrames.ITRF92\"></a><span class=\"summary-name\">RefFrames.ITRF92</span><br />\n      RefFrame(name='ITRF92', epoch=1988, datum=Datums.GRS80) .Xforms=(4, \n      -4)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"RefFrames.ITRF93\"></a><span class=\"summary-name\">RefFrames.ITRF93</span><br />\n      RefFrame(name='ITRF93', epoch=1988, datum=Datums.GRS80) .Xforms=(4, \n      -4)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"RefFrames.ITRF94\"></a><span class=\"summary-name\">RefFrames.ITRF94</span><br />\n      RefFrame(name='ITRF94', epoch=1993, datum=Datums.GRS80) .Xforms=(4, \n      -4)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"RefFrames.ITRF96\"></a><span class=\"summary-name\">RefFrames.ITRF96</span><br />\n      RefFrame(name='ITRF96', epoch=1997, datum=Datums.GRS80) .Xforms=(5, \n      -5)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"RefFrames.ITRF97\"></a><span class=\"summary-name\">RefFrames.ITRF97</span><br />\n      RefFrame(name='ITRF97', epoch=1997, datum=Datums.GRS80) .Xforms=(5, \n      -4)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"RefFrames.NAD83\"></a><span class=\"summary-name\">RefFrames.NAD83</span><br />\n      RefFrame(name='NAD83', epoch=1997, datum=Datums.GRS80) .Xforms=(0, \n      -6)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"RefFrames.NAD83cors96\"></a><span class=\"summary-name\">RefFrames.NAD83cors96</span><br />\n      RefFrame(name='NAD83cors96', epoch=1997, datum=Datums.GRS80) \n      .Xforms=(1, 0)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"RefFrames.WGS84\"></a><span class=\"summary-name\">RefFrames.WGS84</span><br />\n      RefFrame(name='WGS84', epoch=1984, datum=Datums.GRS80) .Xforms=(0, \n      -1)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"RefFrames.WGS84g1150\"></a><span class=\"summary-name\">RefFrames.WGS84g1150</span><br />\n      RefFrame(name='WGS84g1150', epoch=2001, datum=Datums.GRS80) \n      .Xforms=(1, 0)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"RefFrames.WGS84g1674\"></a><span class=\"summary-name\">RefFrames.WGS84g1674</span><br />\n      RefFrame(name='WGS84g1674', epoch=2005, datum=Datums.GRS80) \n      .Xforms=(0, 0)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"RefFrames.WGS84g1762\"></a><span class=\"summary-name\">RefFrames.WGS84g1762</span><br />\n      RefFrame(name='WGS84g1762', epoch=2005, datum=Datums.GRS80) \n      .Xforms=(0, 0)\n    </td>\n  </tr>\n</table>\n<!-- ==================== FUNCTION DETAILS ==================== -->\n<a name=\"section-FunctionDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Function Details</span></td>\n</tr>\n</table>\n<a name=\"date2epoch\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">date2epoch</span>&nbsp;(<span class=\"sig-arg\">year</span>,\n        <span class=\"sig-arg\">month</span>,\n        <span class=\"sig-arg\">day</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the <code>epoch</code> for a calendar day.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>year</code></strong> - Year of the date (<code>scalar</code>).</li>\n        <li><strong class=\"pname\"><code>month</code></strong> - Month in the <b><code>year</code></b> (<code>scalar</code>, \n          1..12).</li>\n        <li><strong class=\"pname\"><code>day</code></strong> - Day in the <b><code>month</code></b> (<code>scalar</code>, \n          1..31).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Epoch, the fractional year (<code>float</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.TRFError-class.html\">TRFError</a></strong></code> - Invalid <b><code>year</code></b>, <b><code>month</code></b> or \n        <b><code>day</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        Any <b><code>year</code></b> is considered a leap year, i.e. having\n        29 days in February.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"epoch2date\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">epoch2date</span>&nbsp;(<span class=\"sig-arg\">epoch</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the date for a reference frame <code>epoch</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>epoch</code></strong> - Fractional year (<code>scalar</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>3-Tuple <code>(year, month, day)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.TRFError-class.html\">TRFError</a></strong></code> - Invalid <b><code>epoch</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        Any <b><code>year</code></b> is considered a leap year, i.e. having\n        29 days in February.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"trfTransform0\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">trfTransform0</span>&nbsp;(<span class=\"sig-arg\">reframe</span>,\n        <span class=\"sig-arg\">reframe2</span>,\n        <span class=\"sig-arg\">epoch</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">epoch2</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">indirect</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">inverse</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">exhaust</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Get a Helmert transform to convert one <code>reframe</code> observed \n  at <code>epoch</code> to an other <code>reframe2</code> at observed at \n  <code>epoch2 or epoch</code>.</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.trf.TransformXform-class.html\" \n          class=\"link\">TransformXform</a> instance, a <code>0-tuple</code> \n          for <i>unity, identity</i> or <code>None</code> if no conversion \n          exists.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.trf-module.html#trfTransforms\" \n        class=\"link\">trfTransforms</a> for futher details.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"trfTransforms\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">trfTransforms</span>&nbsp;(<span class=\"sig-arg\">reframe</span>,\n        <span class=\"sig-arg\">reframe2</span>,\n        <span class=\"sig-arg\">epoch</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">epoch2</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">indirect</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">inverse</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">exhaust</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Yield all Helmert transform to convert one <code>reframe</code> \n  observed at <code>epoch</code> to an other <code>reframe2</code> at \n  observed at <code>epoch2 or epoch</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>reframe</code></strong> - The frame to convert <i>from</i> (<a \n          href=\"pygeodesy.trf.RefFrame-class.html\" \n          class=\"link\">RefFrame</a> or <code>str</code>).</li>\n        <li><strong class=\"pname\"><code>reframe2</code></strong> - The frame to convert <i>to</i> (<a \n          href=\"pygeodesy.trf.RefFrame-class.html\" \n          class=\"link\">RefFrame</a> or <code>str</code>).</li>\n        <li><strong class=\"pname\"><code>epoch</code></strong> - Epoch to observe <i>from</i> (<a \n          href=\"pygeodesy.units.Epoch-class.html\" class=\"link\">Epoch</a>, \n          <code>scalar</code> or <code>str</code>), otherwise \n          <code><b>reframe</b></code>'s <code>epoch</code>.</li>\n        <li><strong class=\"pname\"><code>epoch2</code></strong> - Optional epoch to observe <i>to</i> (<a \n          href=\"pygeodesy.units.Epoch-class.html\" class=\"link\">Epoch</a>, \n          <code>scalar</code> or <code>str</code>), otherwise \n          <b><code>epoch</code></b>.</li>\n        <li><strong class=\"pname\"><code>indirect</code></strong> - If <code>True</code>, include transforms via <i>one</i> \n          intermediate reframe, otherwise only <i>direct</i> \n          <b><code>reframe</code></b> to <b><code>reframe2</code></b> \n          transforms (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>inverse</code></strong> - If <code>True</code>, include inverse, otherwise only forward \n          transforms (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>exhaust</code></strong> - If <code>True</code>, exhaustively generate all transforms, \n          forward and inverse and via any number of intermediate reframes \n          (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.trf.TransformXform-class.html\" \n          class=\"link\">TransformXform</a> instance for each available \n          conversion, without duplicates.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.TRFError-class.html\">TRFError</a></strong></code> - Invalid <b><code>reframe</code></b>, <b><code>reframe2</code></b>, \n        <b><code>epoch</code></b> or <b><code>epoch2</code></b>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>reframe</code></b> or \n        <b><code>reframe2</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"trfXform\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">trfXform</span>&nbsp;(<span class=\"sig-arg\">reframe1</span>,\n        <span class=\"sig-arg\">reframe2</span>,\n        <span class=\"sig-arg\">epoch</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">xform</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">rates</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">raiser</span>=<span class=\"sig-default\">True</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Define a new Terrestrial Reference Frame (TRF) converter or get an \n  existing one.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>reframe1</code></strong> - Source frame (<a href=\"pygeodesy.trf.RefFrame-class.html\" \n          class=\"link\">RefFrame</a> or <code>str</code>), converting \n          <i>from</i>.</li>\n        <li><strong class=\"pname\"><code>reframe2</code></strong> - Destination frame (<a href=\"pygeodesy.trf.RefFrame-class.html\" \n          class=\"link\">RefFrame</a> or <code>str</code>), converting \n          <i>to</i>.</li>\n        <li><strong class=\"pname\"><code>epoch</code></strong> - Epoch, a fractional year (<a \n          href=\"pygeodesy.units.Epoch-class.html\" class=\"link\">Epoch</a>, \n          <code>scalar</code> or <code>str</code>) or <code>None</code> for\n          <code><b>reframe2</b></code>'s epoch.</li>\n        <li><strong class=\"pname\"><code>xform</code></strong> - <i>Transform</i> parameters (<a \n          href=\"pygeodesy.trf.TRFXform7Tuple-class.html\" \n          class=\"link\">TRFXform7Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>rates</code></strong> - <i>Rate</i> parameters (<a \n          href=\"pygeodesy.trf.TRFXform7Tuple-class.html\" \n          class=\"link\">TRFXform7Tuple</a>), as <b><code>xform</code></b>, \n          but in <code>units-per-year</code>.</li>\n        <li><strong class=\"pname\"><code>raiser</code></strong> - If <code>False</code>, do not raise an error if the converter \n          exists, replace it (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The new TRF converter (<a \n          href=\"pygeodesy.trf.TRFXform-class.html\" \n          class=\"link\">TRFXform</a>) or if no <b><code>epoch</code></b>, \n          <b><code>xform</code></b> and <b><code>rates</code></b> are \n          given, return the existing one (<a \n          href=\"pygeodesy.trf.TRFXform-class.html\" \n          class=\"link\">TRFXform</a>) or <code>None</code> if not available.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.TRFError-class.html\">TRFError</a></strong></code> - Invalid <b><code>reframe1</code></b>, <b><code>reframe2</code></b>,\n        <b><code>epoch</code></b>, <b><code>xform</code></b> or \n        <b><code>rates</code></b> or the TRF converter already exists.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== VARIABLES DETAILS ==================== -->\n<a name=\"section-VariablesDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Variables Details</span></td>\n</tr>\n</table>\n<a name=\"RefFrames\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">RefFrames</h3>\n  <p>Some pre-defined <a href=\"pygeodesy.trf.RefFrame-class.html\" \n  class=\"link\">RefFrame</a>s, all <i>lazily</i> instantiated.</p>\n  <dl class=\"fields\">\n  </dl>\n  <dl class=\"fields\">\n    <dt>Value:</dt>\n      <dd><table><tr><td><pre class=\"variable\">\nRefFrames.ETRF89: RefFrame(name='ETRF89', epoch=1989, datum=Datums.GRS<span class=\"variable-linewrap\"><img src=\"crarr.png\" alt=\"\\\" /></span>\n80),\nRefFrames.NAD83cors96: RefFrame(name='NAD83cors96', epoch=1997, datum=<span class=\"variable-linewrap\"><img src=\"crarr.png\" alt=\"\\\" /></span>\nDatums.GRS80),\nRefFrames.GDA2020: RefFrame(name='GDA2020', epoch=2020, datum=Datums.G<span class=\"variable-linewrap\"><img src=\"crarr.png\" alt=\"\\\" /></span>\nRS80),\nRefFrames.ETRF92: RefFrame(name='ETRF92', epoch=1992, datum=Datums.GRS<span class=\"variable-linewrap\"><img src=\"crarr.png\" alt=\"\\\" /></span>\n80),\n<code class=\"variable-ellipsis\">...</code>\n</pre></td></tr></table>\n</dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.trf.RefFrame-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.trf.RefFrame</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.trf-module.html\">Module&nbsp;trf</a> ::\n        Class&nbsp;RefFrame\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.trf.RefFrame-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class RefFrame</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+            \n           |            \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+        \n               |        \n<a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+    \n                   |    \n<a href=\"pygeodesy.named._NamedEnumItem-class.html\">named._NamedEnumItem</a> --+\n                       |\n                      <strong class=\"uidshort\">RefFrame</strong>\n</pre>\n\n<hr />\n<p>Terrestrial Reference Frame (TRF) parameters.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.trf.RefFrame-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">epoch</span>,\n        <span class=\"summary-sig-arg\">datum</span>=<span class=\"summary-sig-default\">Datum(name='GRS80', ellipsoid=Ellipsoids.GRS80, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"summary-sig-arg\">name</span>=<span class=\"summary-sig-default\">''</span>)</span><br />\n      New <a href=\"pygeodesy.trf.RefFrame-class.html\" \n      class=\"link\">RefFrame</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__eq__\"></a><span class=\"summary-sig-name\">__eq__</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span></td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__lt__\"></a><span class=\"summary-sig-name\">__lt__</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span></td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.trf.RefFrame-class.html#__matmul__\" class=\"summary-sig-name\">__matmul__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">point</span>)</span><br />\n      DEPRECATED on 2024.02.16, use method \n      <code><b>point</b>.toRefFrame</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.trf.RefFrame-class.html#toRefFrame\" class=\"summary-sig-name\">toRefFrame</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">point</span>,\n        <span class=\"summary-sig-arg\">reframe2</span>,\n        <span class=\"summary-sig-arg\">**epoch_epoch2_name</span>)</span><br />\n      Convert an ellipsoidal point from this reframe and from \n      <code>epoch</code> to an other <code>reframe2</code> and <code>epoch2\n      or epoch</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.trf.RefFrame-class.html#toStr\" class=\"summary-sig-name\">toStr</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">epoch</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">name</span>=<span class=\"summary-sig-default\">''</span>,\n        <span class=\"summary-sig-arg\">**unused</span>)</span><br />\n      Return this reference frame as a string.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.trf.RefFrame-class.html#Xform\" class=\"summary-sig-name\">Xform</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">reframe2</span>)</span><br />\n      Get the converter Xform <i>from</i> this reference frame <i>to</i> \n      <code>reframe2</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.trf.RefFrame-class.html#Xforms\" class=\"summary-sig-name\">Xforms</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">inverse</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Return all Xforms converting <i>from</i> or <i>to</i> this reference \n      frame or both.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedEnumItem-class.html\">named._NamedEnumItem</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedEnumItem-class.html#unregister\">unregister</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#others\">others</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#toRepr\">toRepr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.trf.RefFrame-class.html#datum\" class=\"summary-name\">datum</a><br />\n      Get this reference frame's datum (<a \n      href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.trf.RefFrame-class.html#ellipsoid\" class=\"summary-name\">ellipsoid</a><br />\n      Get this reference frame's ellipsoid (<a \n      href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n      class=\"link\">Ellipsoid</a> or <a \n      href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n      class=\"link\">Ellipsoid2</a>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.trf.RefFrame-class.html#epoch\" class=\"summary-name\">epoch</a><br />\n      Get this reference frame's epoch (<code>Epoch</code>).\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedEnumItem-class.html\">named._NamedEnumItem</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedEnumItem-class.html#name\">name</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">epoch</span>,\n        <span class=\"sig-arg\">datum</span>=<span class=\"sig-default\">Datum(name='GRS80', ellipsoid=Ellipsoids.GRS80, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"sig-arg\">name</span>=<span class=\"sig-default\">''</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.trf.RefFrame-class.html\" \n  class=\"link\">RefFrame</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>epoch</code></strong> - Epoch, a fractional calendar year (<code>scalar</code> or \n          <code>str</code>).</li>\n        <li><strong class=\"pname\"><code>datum</code></strong> - Datum or ellipsoid (<a href=\"pygeodesy.datums.Datum-class.html\" \n          class=\"link\">Datum</a>, {Ellipsoid}, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a> or <a \n          href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Unique, non-empty name (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>NameError</strong></code> - A <a href=\"pygeodesy.trf.RefFrame-class.html\" \n        class=\"link\">RefFrame</a> with that <b><code>name</code></b> \n        already exists.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.TRFError-class.html\">TRFError</a></strong></code> - Invalid <b><code>epoch</code></b>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>datum</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__matmul__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__matmul__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">point</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED on 2024.02.16, use method \n  <code><b>point</b>.toRefFrame</code>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_method</code></li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.named._Named-class.html#__matmul__\">named._Named.__matmul__</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toRefFrame\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toRefFrame</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">point</span>,\n        <span class=\"sig-arg\">reframe2</span>,\n        <span class=\"sig-arg\">**epoch_epoch2_name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert an ellipsoidal point from this reframe and from \n  <code>epoch</code> to an other <code>reframe2</code> and <code>epoch2 or \n  epoch</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>point</code></strong> - The point to convert (<code>LatLon</code> or \n          <code>Cartesian</code>).</li>\n        <li><strong class=\"pname\"><code>reframe2</code></strong> - Reference frame to convert <i>to</i> (<a \n          href=\"pygeodesy.trf.RefFrame-class.html\" \n          class=\"link\">RefFrame</a>).</li>\n        <li><strong class=\"pname\"><code>epoch_epoch2_name</code></strong> - Optional keyword arguments <code><b>epoch</b>=None</code>, \n          <code><b>epoch2</b>=None</code> and \n          <code><b>name</b>=<b>reframe2</b>.name</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A copy of the <b><code>point</code></b>, converted and renamed.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>point</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        The <code><b>point</b>.reframe</code> is overridden by this reframe\n        and <code><b>point</b>.epoch</code> by <code><b>epoch</b></code> or\n        this reframe.<code>epoch</code>.\n      </p>\n      <p><strong>See Also:</strong>\n        Methods <a \n        href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html#toRefFrame\"\n        class=\"link\">LatLon.toRefFrame</a> and <a \n        href=\"pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html#toRefFrame\"\n        class=\"link\">Cartesian.toRefFrame</a> for more details.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"toStr\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toStr</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">epoch</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">name</span>=<span class=\"sig-default\">''</span>,\n        <span class=\"sig-arg\">**unused</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return this reference frame as a string.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>epoch</code></strong> - Override this reframe's epoch (<code>scalar</code> or \n          <code>str</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Override name (<code>str</code>) or <code>None</code> to exclude \n          the reframe's name.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>This <a href=\"pygeodesy.trf.RefFrame-class.html\" \n          class=\"link\">RefFrame</a>'s attributes (<code>str</code>).</dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.named._Named-class.html#toStr\">named._Named.toStr</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"Xform\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">Xform</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">reframe2</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Get the converter Xform <i>from</i> this reference frame <i>to</i> \n  <code>reframe2</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>reframe2</code></strong> - Destination frame to convert <i>to</i> (<a \n          href=\"pygeodesy.trf.RefFrame-class.html\" \n          class=\"link\">RefFrame</a> or <code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The <a href=\"pygeodesy.trf.TRFXform-class.html\" \n          class=\"link\">TRFXform</a> instance or <code>None</code> if not \n          available.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>reframe2</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"Xforms\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">Xforms</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">inverse</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return all Xforms converting <i>from</i> or <i>to</i> this reference \n  frame or both.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>inverse</code></strong> - If <code>True</code>, get all <i>from</i> otherwise <i>to</i> \n          Xforms <i>un-inverted</i> (<code>bool</code>) or if \n          <code><b>inverse</b>=2</code> (<code>int</code>) get all \n          <i>to</i> Xforms <i>inverted</i> plus all <i>from</i>s.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>An <a href=\"pygeodesy.named.ADict-class.html\" \n          class=\"link\">ADict</a> of <code>name=</code><a \n          href=\"pygeodesy.trf.TRFXform-class.html\" \n          class=\"link\">TRFXform</a>s <i>from</i> this reframe or if \n          <code><b>inverse</b>=True</code> <i>to</i> this reframe or both \n          if <code><b>inverse</b>=2</code>.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"datum\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">datum</h3>\n  <p>Get this reference frame's datum (<a \n  href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">datum(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get this reference frame's datum (<a \nhref=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"ellipsoid\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">ellipsoid</h3>\n  <p>Get this reference frame's ellipsoid (<a \n  href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n  class=\"link\">Ellipsoid</a> or <a \n  href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n  class=\"link\">Ellipsoid2</a>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">ellipsoid(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get this reference frame's ellipsoid (<a \nhref=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" class=\"link\">Ellipsoid</a>\nor <a href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \nclass=\"link\">Ellipsoid2</a>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"epoch\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">epoch</h3>\n  <p>Get this reference frame's epoch (<code>Epoch</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">epoch(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get this reference frame's epoch (<code>Epoch</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.trf.TRFXform-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.trf.TRFXform</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.trf-module.html\">Module&nbsp;trf</a> ::\n        Class&nbsp;TRFXform\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.trf.TRFXform-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class TRFXform</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+    \n           |    \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+\n               |\n              <strong class=\"uidshort\">TRFXform</strong>\n</pre>\n\n<hr />\n<p>A Terrestrial Reference Frame (TRF) converter between two reference \n  frames observed at an <code>epoch</code>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.trf.TRFXform-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">refName1</span>,\n        <span class=\"summary-sig-arg\">refName2</span>,\n        <span class=\"summary-sig-arg\">epoch</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">xform</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">rates</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">name</span>=<span class=\"summary-sig-default\">''</span>)</span><br />\n      New <a href=\"pygeodesy.trf.TRFXform-class.html\" \n      class=\"link\">TRFXform</a> TRF converter.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__add__\"></a><span class=\"summary-sig-name\">__add__</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span></td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__eq__\"></a><span class=\"summary-sig-name\">__eq__</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span></td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__lt__\"></a><span class=\"summary-sig-name\">__lt__</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span></td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__neg__\"></a><span class=\"summary-sig-name\">__neg__</span>(<span class=\"summary-sig-arg\">self</span>)</span></td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.trf.TRFXform-class.html#__repr__\" class=\"summary-sig-name\">__repr__</a>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Default <code>repr(self)</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.trf.TRFXform-class.html#__str__\" class=\"summary-sig-name\">__str__</a>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Default <code>str(self)</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__sub__\"></a><span class=\"summary-sig-name\">__sub__</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span></td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.trf.TRFXform-class.html#inverse\" class=\"summary-sig-name\">inverse</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">name</span>=<span class=\"summary-sig-default\">''</span>)</span><br />\n      Return this Xform {inversed}, <code>refName1</code> and \n      <code>-2</code> swapped.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.trf.TRFXform-class.html#rename\" class=\"summary-sig-name\">rename</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">name</span>=<span class=\"summary-sig-default\">''</span>)</span><br />\n      Change this Xform's name.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.trf.TRFXform-class.html#toEpoch\" class=\"summary-sig-name\">toEpoch</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">epoch</span>)</span><br />\n      Convert this Xform to <b><code>epoch</code></b>, if needed.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.trf.TRFXform-class.html#toHelmert\" class=\"summary-sig-name\">toHelmert</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">factor</span>=<span class=\"summary-sig-default\">0.001</span>)</span><br />\n      Return the Helmert transform from this Xform scaled accordingly.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.trf.TRFXform-class.html#toRefFrame\" class=\"summary-sig-name\">toRefFrame</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">point</span>,\n        <span class=\"summary-sig-arg\">datum</span>=<span class=\"summary-sig-default\">Datum(name='GRS80', ellipsoid=Ellipsoids.GRS80, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"summary-sig-arg\">**epoch_epoch2_name</span>)</span><br />\n      Convert an ellipsoidal point from this Xform's <code>refName1</code> \n      and <code>epoch</code> to this Xform's <code>refName2</code> and \n      <code>epoch2 or epoch</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.trf.TRFXform-class.html#toRepr\" class=\"summary-sig-name\">toRepr</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">**unused</span>)</span><br />\n      Return the represention of this Xform (<code>str</code>).</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.trf.TRFXform-class.html#toStr\" class=\"summary-sig-name\">toStr</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">epoch</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**unused</span>)</span><br />\n      Return this Xform as \n      <code>&quot;refName1<b>@</b>epoch<b>x</b>refName2&quot;</code> \n      (<code>str</code>).</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.trf.TRFXform-class.html#toTransform\" class=\"summary-sig-name\">toTransform</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">epoch</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">epoch2</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">inverse</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Combine this Xform observed at <b><code>epoch</code></b> into a \n      Helmert <a href=\"pygeodesy.trf.TransformXform-class.html\" \n      class=\"link\">TransformXform</a>, optionally at <b><code>epoch2 or \n      epoch</code></b>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS VARIABLES ==================== -->\n<a name=\"section-ClassVariables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Class Variables</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"refName2\"></a><span class=\"summary-name\">refName2</span> = <code title=\"''\">''</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"refName1\"></a><span class=\"summary-name\">refName1</span> = <code title=\"''\">''</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"xform\"></a><span class=\"summary-name\">xform</span> = <code title=\"None\">None</code><br />\n      hash(x)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"rates\"></a><span class=\"summary-name\">rates</span> = <code title=\"None\">None</code><br />\n      hash(x)\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.trf.TRFXform-class.html#epoch\" class=\"summary-name\">epoch</a><br />\n      Class <code>property</code> with a <code>.name</code> attribute.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.trf.TRFXform-class.html#epoched\" class=\"summary-name\">epoched</a><br />\n      Get this Xform's aggregate <i>epoch</i> deltas (<code>float</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.trf.TRFXform-class.html#indirected\" class=\"summary-name\">indirected</a><br />\n      Is this an <i>indirected</i> Xform? (<code>str</code> of \n      space-separated refNames) or <code>NN</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.trf.TRFXform-class.html#inversed\" class=\"summary-name\">inversed</a><br />\n      Is this an <i>inversed</i> Xform? (<code>bool</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.trf.TRFXform-class.html#reframe1\" class=\"summary-name\">reframe1</a><br />\n      Get the un-/registered <i>from</i> frame (<code>RefFrame</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.trf.TRFXform-class.html#reframe2\" class=\"summary-name\">reframe2</a><br />\n      Get the un-/registered <i>to</i> frame (<code>RefFrame</code>).\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">refName1</span>,\n        <span class=\"sig-arg\">refName2</span>,\n        <span class=\"sig-arg\">epoch</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">xform</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">rates</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">name</span>=<span class=\"sig-default\">''</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.trf.TRFXform-class.html\" \n  class=\"link\">TRFXform</a> TRF converter.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>refName1</code></strong> - Source reframe (<code>str</code>), converting <i>from</i>.</li>\n        <li><strong class=\"pname\"><code>refName2</code></strong> - Destination reframe (<code>str</code>), converting <i>to</i>.</li>\n        <li><strong class=\"pname\"><code>epoch</code></strong> - Epoch, a fractional year (<a \n          href=\"pygeodesy.units.Epoch-class.html\" class=\"link\">Epoch</a>, \n          <code>scalar</code> or <code>str</code>).</li>\n        <li><strong class=\"pname\"><code>xform</code></strong> - <i>Transform</i> parameters at <b><code>epoch</code></b> (<a \n          href=\"pygeodesy.trf.TRFXform7Tuple-class.html\" \n          class=\"link\">TRFXform7Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>rates</code></strong> - <i>Rate</i> parameters (<a \n          href=\"pygeodesy.trf.TRFXform7Tuple-class.html\" \n          class=\"link\">TRFXform7Tuple</a>), like <b><code>xform</code></b>,\n          but in <code>units-per-year</code>.</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional name (<code>str</code>), overriding the default from \n          method <a href=\"pygeodesy.trf.TRFXform-class.html#toStr\" \n          class=\"link\">toStr</a>.</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.TRFError-class.html\">TRFError</a></strong></code> - Invalid <b><code>refName1</code></b>, <b><code>refName2</code></b> \n        or <b><code>epoch</code></b>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>xform</code></b> or <b><code>rates</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Functions <a href=\"pygeodesy.trf-module.html#trfXform\" \n        class=\"link\">trfXform</a>, <a \n        href=\"pygeodesy.trf-module.html#trfTransform0\" \n        class=\"link\">trfTransform0</a> and <a \n        href=\"pygeodesy.trf-module.html#trfTransforms\" \n        class=\"link\">trfTransforms</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"__repr__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__repr__</span>&nbsp;(<span class=\"sig-arg\">self</span>)</span>\n    <br /><em class=\"fname\">(Representation operator)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Default <code>repr(self)</code>.</p>\n  <dl class=\"fields\">\n    <dt>Overrides:\n        object.__repr__\n        <dd><em class=\"note\">(inherited documentation)</em></dd>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__str__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__str__</span>&nbsp;(<span class=\"sig-arg\">self</span>)</span>\n    <br /><em class=\"fname\">(Informal representation operator)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Default <code>str(self)</code>.</p>\n  <dl class=\"fields\">\n    <dt>Overrides:\n        object.__str__\n        <dd><em class=\"note\">(inherited documentation)</em></dd>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"inverse\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">inverse</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">name</span>=<span class=\"sig-default\">''</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return this Xform {inversed}, <code>refName1</code> and \n  <code>-2</code> swapped.</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd>The inverse (<a href=\"pygeodesy.trf.TRFXform-class.html\" \n          class=\"link\">TRFXform</a>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"rename\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">rename</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">name</span>=<span class=\"sig-default\">''</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Change this Xform's name.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>name</code></strong> - New name (<code>str</code>), overriding the base name \n          <code>&quot;refName1<b>@</b>epoch<b>x</b>refName2&quot;</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The old name (<code>str</code>).</dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.named._Named-class.html#rename\">named._Named.rename</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toEpoch\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toEpoch</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">epoch</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert this Xform to <b><code>epoch</code></b>, if needed.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>epoch</code></strong> - Epoch, fractional year (<code>Epoch</code>, <code>scalar</code> \n          or <code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>This Xform or a copy converted to <b><code>epoch</code></b>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.TRFError-class.html\">TRFError</a></strong></code> - Invalid <b><code>epoch</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toHelmert\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toHelmert</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">factor</span>=<span class=\"sig-default\">0.001</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the Helmert transform from this Xform scaled accordingly.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>factor</code></strong> - Factor to scale this Xform's <code>xform</code> \n          (<code>scalar</code>), default from <code>milli-meter-</code> to \n          <code>meter-</code>, from <code>milli-arc-</code> to \n          <code>arc-seconds</code> and from <code>ppB</code> to \n          <code>ppM</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The Helmert transform (<a \n          href=\"pygeodesy.trf.TransformXform-class.html\" \n          class=\"link\">TransformXform</a>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toRefFrame\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toRefFrame</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">point</span>,\n        <span class=\"sig-arg\">datum</span>=<span class=\"sig-default\">Datum(name='GRS80', ellipsoid=Ellipsoids.GRS80, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"sig-arg\">**epoch_epoch2_name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert an ellipsoidal point from this Xform's <code>refName1</code> \n  and <code>epoch</code> to this Xform's <code>refName2</code> and \n  <code>epoch2 or epoch</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>point</code></strong> - The point to convert (<code>Cartesian</code> or \n          <code>LatLon</code>).</li>\n        <li><strong class=\"pname\"><code>datum</code></strong> - Optional datum to define a temporary <a \n          href=\"pygeodesy.trf.RefFrame-class.html\" \n          class=\"link\">RefFrame</a> from this Xform's <code>refName1</code>\n          or <code>refName2</code> (<code>datum</code>).</li>\n        <li><strong class=\"pname\"><code>epoch_epoch2_name</code></strong> - Optional keyword arguments <code><b>epoch</b>=None</code>, \n          <b><code>epoch2</code>=None</b> and \n          <code><b>name</b>=refName1</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A copy of the <b><code>point</code></b>, converted and renamed.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <a href=\"pygeodesy.trf.RefFrame-class.html#toRefFrame\" \n        class=\"link\">RefFrame.toRefFrame</a> for more details.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"toRepr\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toRepr</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">**unused</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the represention of this Xform (<code>str</code>).</p>\n  <dl class=\"fields\">\n    <dt>Overrides:\n        <a href=\"pygeodesy.named._Named-class.html#toRepr\">named._Named.toRepr</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toStr\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toStr</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">epoch</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**unused</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return this Xform as \n  <code>&quot;refName1<b>@</b>epoch<b>x</b>refName2&quot;</code> \n  (<code>str</code>).</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>epoch</code></strong> - Epoch (<code>Epoch</code>, <code>scalar</code> or \n          <code>str</code>), overriding this Xform's epoch.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.named._Named-class.html#toStr\">named._Named.toStr</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toTransform\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toTransform</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">epoch</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">epoch2</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">inverse</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Combine this Xform observed at <b><code>epoch</code></b> into a \n  Helmert <a href=\"pygeodesy.trf.TransformXform-class.html\" \n  class=\"link\">TransformXform</a>, optionally at <b><code>epoch2 or \n  epoch</code></b>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>epoch</code></strong> - Epoch to observe <i>from</i> (<code>scalar</code>), overriding \n          this converter's epoch.</li>\n        <li><strong class=\"pname\"><code>epoch2</code></strong> - Optional epoch to observe <i>to</i> (<code>scalar</code>), \n          overriding <b><code>epoch</code></b>.</li>\n        <li><strong class=\"pname\"><code>inverse</code></strong> - Use the Xform's inverse (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The Helmert transform (<a \n          href=\"pygeodesy.trf.TransformXform-class.html\" \n          class=\"link\">TransformXform</a>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.TRFError-class.html\">TRFError</a></strong></code> - Invalid <b><code>epoch</code></b> or <b><code>epoch2</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <a href=\"pygeodesy.trf.TRFXform-class.html#toHelmert\" \n        class=\"link\">toHelmert</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<br />\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"epoch\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">epoch</h3>\n  <p>Class <code>property</code> with a <code>.name</code> attribute.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">epoch(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the epoch (<a href=\"pygeodesy.units.Epoch-class.html\" \nclass=\"link\">Epoch</a>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">epoch(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">epoch</span>)</span>\n        - Set the epoch (<a href=\"pygeodesy.units.Epoch-class.html\" \nclass=\"link\">Epoch</a>, <code>scalar</code> or <code>str</code>).\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"epoched\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">epoched</h3>\n  <p>Get this Xform's aggregate <i>epoch</i> deltas \n  (<code>float</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">epoched(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get this Xform's aggregate <i>epoch</i> deltas (<code>float</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"indirected\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">indirected</h3>\n  <p>Is this an <i>indirected</i> Xform? (<code>str</code> of \n  space-separated refNames) or <code>NN</code>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">indirected(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Is this an <i>indirected</i> Xform? (<code>str</code> of space-separated \nrefNames) or <code>NN</code>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"inversed\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">inversed</h3>\n  <p>Is this an <i>inversed</i> Xform? (<code>bool</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">inversed(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Is this an <i>inversed</i> Xform? (<code>bool</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"reframe1\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">reframe1</h3>\n  <p>Get the un-/registered <i>from</i> frame (<code>RefFrame</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">reframe1(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the un-/registered <i>from</i> frame (<code>RefFrame</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"reframe2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">reframe2</h3>\n  <p>Get the un-/registered <i>to</i> frame (<code>RefFrame</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">reframe2(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the un-/registered <i>to</i> frame (<code>RefFrame</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.trf.TRFXform7Tuple-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.trf.TRFXform7Tuple</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.trf-module.html\">Module&nbsp;trf</a> ::\n        Class&nbsp;TRFXform7Tuple\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.trf.TRFXform7Tuple-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class TRFXform7Tuple</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n   object --+        \n            |        \n        tuple --+    \n                |    \n   object --+   |    \n            |   |    \n <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n                |    \n<a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a> --+\n                    |\n                   <strong class=\"uidshort\">TRFXform7Tuple</strong>\n</pre>\n\n<hr />\n<p>7-Tuple <code>(tx, ty, tz, s, sx, sy, sz)</code> of conversion \n  parameters with translations <code>tx</code>, <code>ty</code> and \n  <code>tz</code> in <code>milli-meter</code>, scale <code>s</code> in \n  <code>ppB</code> and rotations <code>sx</code>, <code>sy</code> and \n  <code>sz</code> in <code>milli-arc-seconds</code>. For <code>rates</code>\n  all are <code>units-per-year</code>.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Note:</strong>\n        The parameters are also named as <code>(Tx, Ty, Tz, D, Rx, Ry, \n        Rz)</code> or <code>(T1, T2, T3, D, R1, R2, R3)</code>.\n      </p>\n      <p><strong>See Also:</strong>\n        Class <a href=\"pygeodesy.trf.TransformXform-class.html\" \n        class=\"link\">TransformXform</a>'s matching keyword argument names.\n      </p>\n</div><!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.trf.TRFXform7Tuple-class.html#__add__\" class=\"summary-sig-name\">__add__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span><br />\n      x+y</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.trf.TRFXform7Tuple-class.html#__eq__\" class=\"summary-sig-name\">__eq__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span><br />\n      x==y</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.trf.TRFXform7Tuple-class.html#__hash__\" class=\"summary-sig-name\">__hash__</a>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      hash(x)</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.trf.TRFXform7Tuple-class.html#__mul__\" class=\"summary-sig-name\">__mul__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">factor</span>)</span><br />\n      x*n</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__neg__\"></a><span class=\"summary-sig-name\">__neg__</span>(<span class=\"summary-sig-arg\">self</span>)</span></td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__sub__\"></a><span class=\"summary-sig-name\">__sub__</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span></td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.trf.TRFXform7Tuple-class.html#inverse\" class=\"summary-sig-name\">inverse</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">name</span>=<span class=\"summary-sig-default\">''</span>)</span><br />\n      Return the inverse of this transform.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__delattr__\">__delattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__getattr__\">__getattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__setattr__\">__setattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#items\">items</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iteritems\">iteritems</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iterunits\">iterunits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#reUnit\">reUnit</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toUnits\">toUnits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>tuple</code></b>:\n      <code>__contains__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__iter__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__ne__</code>,\n      <code>__rmul__</code>,\n      <code>count</code>,\n      <code>index</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__new__\">__new__</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.trf.TRFXform7Tuple-class.html#isunity\" class=\"summary-name\">isunity</a><br />\n      Is this a <code>unity, identity</code> transform (<code>bool</code>).\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__add__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__add__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>)</span>\n    <br /><em class=\"fname\">(Addition operator)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>x+y</p>\n  <dl class=\"fields\">\n    <dt>Overrides:\n        tuple.__add__\n        <dd><em class=\"note\">(inherited documentation)</em></dd>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__eq__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__eq__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>)</span>\n    <br /><em class=\"fname\">(Equality operator)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>x==y</p>\n  <dl class=\"fields\">\n    <dt>Overrides:\n        tuple.__eq__\n        <dd><em class=\"note\">(inherited documentation)</em></dd>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__hash__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__hash__</span>&nbsp;(<span class=\"sig-arg\">self</span>)</span>\n    <br /><em class=\"fname\">(Hashing function)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>hash(x)</p>\n  <dl class=\"fields\">\n    <dt>Overrides:\n        object.__hash__\n        <dd><em class=\"note\">(inherited documentation)</em></dd>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__mul__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__mul__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">factor</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>x*n</p>\n  <dl class=\"fields\">\n    <dt>Overrides:\n        tuple.__mul__\n        <dd><em class=\"note\">(inherited documentation)</em></dd>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"inverse\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">inverse</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">name</span>=<span class=\"sig-default\">''</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the inverse of this transform.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional name (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Inverse (<a href=\"pygeodesy.trf.TransformXform-class.html\" \n          class=\"link\">TransformXform</a>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"isunity\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">isunity</h3>\n  <p>Is this a <code>unity, identity</code> transform \n  (<code>bool</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">isunity(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Is this a <code>unity, identity</code> transform (<code>bool</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.trf.TransformXform-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.trf.TransformXform</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.trf-module.html\">Module&nbsp;trf</a> ::\n        Class&nbsp;TransformXform\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.trf.TransformXform-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class TransformXform</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+                \n           |                \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+            \n               |            \n<a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+        \n                   |        \n<a href=\"pygeodesy.named._NamedEnumItem-class.html\">named._NamedEnumItem</a> --+    \n                       |    \n        <a href=\"pygeodesy.datums.Transform-class.html\">datums.Transform</a> --+\n                           |\n                          <strong class=\"uidshort\">TransformXform</strong>\n</pre>\n\n<hr />\n<p>Helmert transformation, extended with an <code>Xform</code> TRF \n  converter.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"pygeodesy.datums.Transform-class.html\" \n        class=\"link\">Transform</a> and <a \n        href=\"pygeodesy.trf.TRFXform-class.html\" class=\"link\">Xform</a>.\n      </p>\n</div><!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.trf.TransformXform-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">name</span>=<span class=\"summary-sig-default\">''</span>,\n        <span class=\"summary-sig-arg\">**tx_ty_tz_s_sx_sy_sz</span>)</span><br />\n      New <a href=\"pygeodesy.trf.TransformXform-class.html\" \n      class=\"link\">TransformXform</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.trf.TransformXform-class.html#__eq__\" class=\"summary-sig-name\">__eq__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span><br />\n      Compare this and an other transform.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.trf.TransformXform-class.html#__hash__\" class=\"summary-sig-name\">__hash__</a>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      hash(x)</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.trf.TransformXform-class.html#inverse\" class=\"summary-sig-name\">inverse</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Return the inverse of this transform.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.trf.TransformXform-class.html#rename\" class=\"summary-sig-name\">rename</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">name</span>=<span class=\"summary-sig-default\">''</span>)</span><br />\n      Change this transform's name.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.trf.TransformXform-class.html#toRefFrame\" class=\"summary-sig-name\">toRefFrame</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">point</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Convert an ellipsoidal point using this transform and Xform.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.trf.TransformXform-class.html#toTransform\" class=\"summary-sig-name\">toTransform</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">epoch1</span>,\n        <span class=\"summary-sig-arg\">**epoch2_inverse</span>)</span><br />\n      Return this transform observed at <b><code>epoch1</code></b> as a \n      Helmert <a href=\"pygeodesy.trf.TransformXform-class.html\" \n      class=\"link\">TransformXform</a>, optionally at <b><code>epoch2 or \n      epoch1</code></b>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.trf.TransformXform-class.html#transform2\" class=\"summary-sig-name\">transform2</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">x</span>,\n        <span class=\"summary-sig-arg\">y</span>,\n        <span class=\"summary-sig-arg\">z</span>,\n        <span class=\"summary-sig-arg\">vx</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">vy</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">vz</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">inverse</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">factor</span>=<span class=\"summary-sig-default\">0.001</span>,\n        <span class=\"summary-sig-arg\">**Vector_and_kwds</span>)</span><br />\n      Transform a (cartesian) position <i>with</i> velocities, forward or \n      inverse.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.trf.TransformXform-class.html#velocities\" class=\"summary-sig-name\">velocities</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">factor</span>=<span class=\"summary-sig-default\">0.001</span>,\n        <span class=\"summary-sig-arg\">**Vector_and_kwds</span>)</span><br />\n      Compute the X, Y and Z <i>velocities</i> of this transform.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.datums.Transform-class.html\">datums.Transform</a></code></b>:\n      <code><a href=\"pygeodesy.datums.Transform-class.html#__iter__\">__iter__</a></code>,\n      <code><a href=\"pygeodesy.datums.Transform-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.datums.Transform-class.html#__neg__\">__neg__</a></code>,\n      <code><a href=\"pygeodesy.datums.Transform-class.html#items\">items</a></code>,\n      <code><a href=\"pygeodesy.datums.Transform-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.datums.Transform-class.html#transform\">transform</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedEnumItem-class.html\">named._NamedEnumItem</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedEnumItem-class.html#unregister\">unregister</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#others\">others</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#toRepr\">toRepr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS VARIABLES ==================== -->\n<a name=\"section-ClassVariables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Class Variables</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.datums.Transform-class.html\">datums.Transform</a></code></b>:\n      <code><a href=\"pygeodesy.datums.Transform-class.html#rx\">rx</a></code>,\n      <code><a href=\"pygeodesy.datums.Transform-class.html#ry\">ry</a></code>,\n      <code><a href=\"pygeodesy.datums.Transform-class.html#rz\">rz</a></code>,\n      <code><a href=\"pygeodesy.datums.Transform-class.html#s\">s</a></code>,\n      <code><a href=\"pygeodesy.datums.Transform-class.html#s1\">s1</a></code>,\n      <code><a href=\"pygeodesy.datums.Transform-class.html#sx\">sx</a></code>,\n      <code><a href=\"pygeodesy.datums.Transform-class.html#sy\">sy</a></code>,\n      <code><a href=\"pygeodesy.datums.Transform-class.html#sz\">sz</a></code>,\n      <code><a href=\"pygeodesy.datums.Transform-class.html#tx\">tx</a></code>,\n      <code><a href=\"pygeodesy.datums.Transform-class.html#ty\">ty</a></code>,\n      <code><a href=\"pygeodesy.datums.Transform-class.html#tz\">tz</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.trf.TransformXform-class.html#Xform\" class=\"summary-name\">Xform</a><br />\n      Class <code>property</code> with a <code>.name</code> attribute.\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.datums.Transform-class.html\">datums.Transform</a></code></b>:\n      <code><a href=\"pygeodesy.datums.Transform-class.html#isunity\">isunity</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedEnumItem-class.html\">named._NamedEnumItem</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedEnumItem-class.html#name\">name</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">name</span>=<span class=\"sig-default\">''</span>,\n        <span class=\"sig-arg\">**tx_ty_tz_s_sx_sy_sz</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.trf.TransformXform-class.html\" \n  class=\"link\">TransformXform</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional name (<code>str</code>), <i>not registered</i>.</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>NameError</strong></code> - Transform with that <b><code>name</code></b> already exists.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"pygeodesy.datums.Transform-class.html\" \n        class=\"link\">Transform</a> for details.\n      </p>\n      <p><strong>Note:</strong>\n        This <a href=\"pygeodesy.trf.TransformXform-class.html\" \n        class=\"link\">TransformXform</a>'s name starts with \n        <code>&quot;-&quot;</code> iff <i>inversed</i>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"__eq__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__eq__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>)</span>\n    <br /><em class=\"fname\">(Equality operator)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compare this and an other transform.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>other</code></strong> - The other transform (<a \n          href=\"pygeodesy.datums.Transform-class.html\" \n          class=\"link\">Transform</a>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>True</code> if equal, <code>False</code> otherwise.</dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.datums.Transform-class.html#__eq__\">datums.Transform.__eq__</a>\n        <dd><em class=\"note\">(inherited documentation)</em></dd>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__hash__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__hash__</span>&nbsp;(<span class=\"sig-arg\">self</span>)</span>\n    <br /><em class=\"fname\">(Hashing function)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>hash(x)</p>\n  <dl class=\"fields\">\n    <dt>Overrides:\n        object.__hash__\n        <dd><em class=\"note\">(inherited documentation)</em></dd>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"inverse\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">inverse</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the inverse of this transform.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional, unique <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Inverse (<a href=\"pygeodesy.trf.TransformXform-class.html\" \n          class=\"link\">TransformXform</a>), unregistered.</dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.datums.Transform-class.html#inverse\">datums.Transform.inverse</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"rename\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">rename</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">name</span>=<span class=\"sig-default\">''</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Change this transform's name.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>name</code></strong> - New name (<code>str</code>), overriding this transform's Xform's \n          name.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The previous name (<code>str</code>).</dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.named._Named-class.html#rename\">named._Named.rename</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toRefFrame\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toRefFrame</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">point</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert an ellipsoidal point using this transform and Xform.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>point</code></strong> - The point to convert (<code>Cartesian</code> or \n          <code>LatLon</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A copy of the <b><code>point</code></b>, converted \n          <i>directly</i> to this transform's Xform's <code>refName2</code>\n          and <code>epoch</code>.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        The <b><code>point</code></b>'s original <code>reframe</code> and \n        <code>epoch</code> are <i>ignored</i>, its <code>datum</code> and \n        <code>height</code> are preserved but <i>not</i> taken into \n        account.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"toTransform\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toTransform</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">epoch1</span>,\n        <span class=\"sig-arg\">**epoch2_inverse</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return this transform observed at <b><code>epoch1</code></b> as a \n  Helmert <a href=\"pygeodesy.trf.TransformXform-class.html\" \n  class=\"link\">TransformXform</a>, optionally at <b><code>epoch2 or \n  epoch1</code></b>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>epoch1</code></strong> - Epoch to observe <i>from</i> (<code>scalar</code>).</li>\n        <li><strong class=\"pname\"><code>epoch2_inverse</code></strong> - Optional <code><b>epoch2</b>=None</code> to observe <i>to</i> and\n          <code><b>inverse</b>=False</code>, see method <a \n          href=\"pygeodesy.trf.TRFXform-class.html#toTransform\" \n          class=\"link\">toTransform</a> from <a \n          href=\"pygeodesy.trf.TRFXform-class.html\" \n          class=\"link\">TRFXform</a>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The Helmert transform (<a \n          href=\"pygeodesy.trf.TransformXform-class.html\" \n          class=\"link\">TransformXform</a>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.TRFError-class.html\">TRFError</a></strong></code> - Invalid <b><code>epoch1</code></b>, <b><code>epoch2</code></b> or \n        missing Xform.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"transform2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">transform2</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">x</span>,\n        <span class=\"sig-arg\">y</span>,\n        <span class=\"sig-arg\">z</span>,\n        <span class=\"sig-arg\">vx</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">vy</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">vz</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">inverse</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">factor</span>=<span class=\"sig-default\">0.001</span>,\n        <span class=\"sig-arg\">**Vector_and_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Transform a (cartesian) position <i>with</i> velocities, forward or \n  inverse.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>x</code></strong> - X coordinate (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>y</code></strong> - Y coordinate (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>z</code></strong> - Z coordinate (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>vx</code></strong> - X velocity (<code>meter-per-year</code>).</li>\n        <li><strong class=\"pname\"><code>vy</code></strong> - Y velocity (<code>meter-per-year</code>).</li>\n        <li><strong class=\"pname\"><code>vz</code></strong> - Z velocity (<code>meter-per-year</code>).</li>\n        <li><strong class=\"pname\"><code>inverse</code></strong> - If <code>True</code>, apply the inverse transform \n          (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>factor</code></strong> - Factor to scale this Xform's <code>rates</code> \n          (<code>scalar</code>), default from <code>milli-meter-</code> to \n          <code>meter-per-year</code>, from <code>milli-arc-</code> to \n          <code>arc-seconds-per-year</code> and from <code>ppB-</code> to \n          <code>ppM-per-year</code>.</li>\n        <li><strong class=\"pname\"><code>Vector_and_kwds</code></strong> - An optional, (3-D) <code><b>Vector</b>=None</code> or cartesian \n          class and additional <code><b>Vector</b></code> keyword arguments\n          to return the transformed position and the <i>velocities</i>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>2-Tuple <code>(position, velocities)</code>, the tranformed \n          <code>position</code> and <code>velocities</code>, each a <a \n          href=\"pygeodesy.namedTuples.Vector3Tuple-class.html\" \n          class=\"link\">Vector3Tuple</a><code>(x, y, z)</code> unless some \n          <b><code>Vector_and_kwds</code></b> are specified.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Non-scalar <b><code>factor</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        If this transform's Xform is missing, the returned \n        <code>velocities</code> are the given ones, <i>un-transformed</i>.\n      </p>\n      <p><strong>See Also:</strong>\n        Soler, T. &amp; Snay, R.A. &quot;Transforming Positions and \n        Velocities ...&quot;, <a \n        href=\"https://www.NGS.NOAA.gov/CORS/Articles/SolerSnayASCE.pdf\" \n        target=\"_top\">equations (4) and (5)</a> and HTDP functions \n        <code>VTRANF</code> and <code>VTRANF_IERS</code> in file <a \n        href=\"https://Geodesy.NOAA.gov/TOOLS/Htdp/Htdp.shtml\" \n        target=\"_top\">HTDP/hdtp.f</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"velocities\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">velocities</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">factor</span>=<span class=\"sig-default\">0.001</span>,\n        <span class=\"sig-arg\">**Vector_and_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the X, Y and Z <i>velocities</i> of this transform.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>factor</code></strong> - Factor to scale this Xform's <code>rates</code> \n          (<code>scalar</code>), default from <code>milli-meter-</code> to \n          <code>meter-per-year</code>, from <code>milli-arc-</code> to \n          <code>arc-seconds-per-year</code> and from <code>ppB-</code> to \n          <code>ppM-per-year</code>.</li>\n        <li><strong class=\"pname\"><code>Vector_and_kwds</code></strong> - An optional, (3-D) <code><b>Vector</b>=None</code> or cartesian \n          class and additional <code><b>Vector</b></code> keyword arguments\n          to return the <i>velocities</i>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.namedTuples.Vector3Tuple-class.html\" \n          class=\"link\">Vector3Tuple</a><code>(x, y, z)</code> unless some \n          <b><code>Vector_and_kwds</code></b> are specified or \n          <code>None</code> if this transform's Xform is missing.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Non-scalar <b><code>factor</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Altamimi, Z. &quot;EUREF-TN-1-Jan-31-2024&quot;, <a \n        href=\"http://ETRS89.ENSG.IGN.FR/pub/EUREF-TN-1-Jan-31-2024.pdf\" \n        target=\"_top\">Appendix A, equation (3)</a> and method <a \n        href=\"pygeodesy.trf.TransformXform-class.html#transform2\" \n        class=\"link\">transform2</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<br />\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"Xform\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">Xform</h3>\n  <p>Class <code>property</code> with a <code>.name</code> attribute.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">Xform(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get this Helmert transform's Xform (<a \nhref=\"pygeodesy.trf.TRFXform-class.html\" class=\"link\">TRFXform</a> or \n<code>None</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">Xform(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">Xform</span>)</span>\n        - Set this Helmert transform's Xform (<a \nhref=\"pygeodesy.trf.TRFXform-class.html\" class=\"link\">TRFXform</a>).\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.triaxials-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.triaxials</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        Package&nbsp;triaxials\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.triaxials-module.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PACKAGE DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Package triaxials</h1><p class=\"nomargin-top\"></p>\n<p>Package of lazily imported modules <a \n  href=\"pygeodesy.triaxials.conformal3-module.html\" class=\"link\" \n  onclick=\"show_private();\">triaxials.conformal3</a>, <a \n  href=\"pygeodesy.triaxials.triaxial3-module.html\" class=\"link\" \n  onclick=\"show_private();\">triaxials.triaxial3</a> and <a \n  href=\"pygeodesy.triaxials.triaxial5-module.html\" class=\"link\" \n  onclick=\"show_private();\">triaxials.triaxial5</a> for triaxial \n  ellipsoids.</p>\n  <p>Mostly transcoded to pure Python from <i>Karney</i>'s <a \n  href=\"https://GeographicLib2.7Triaxial&lt;https://GeographicLib.SourceForge.io/C++/doc/namespaceGeographicLib_1_1Triaxial.html\"\n  target=\"_top\">GeographicLib 2.7 Triaxial&lt;https:// \n  GeographicLib.SourceForge.io/C++/doc/namespaceGeographicLib_1_1Triaxial.html</a>\n  classes and the <i>experimental</i> <a \n  href=\"https://GeographicLib.SourceForge.io/C++/2.5.2/jacobi.html\" \n  target=\"_top\">GeographicLib 2.52 Jacobi</a> class.</p>\n  <p>Copyright (C) <a href=\"mailto:Karney@Alum.MIT.edu\" \n  target=\"_top\">Charles Karney</a> (2008-2024, 2024-2025) and licensed \n  under the MIT/X11 License.  For more information, see the <a \n  href=\"https://GeographicLib.SourceForge.io\" target=\"_top\">GeographicLib \n  2.5.2 and 2.7</a> documentation.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Version:</strong>\n        26.02.06\n      </p>\n</div><!-- ==================== SUBMODULES ==================== -->\n<a name=\"section-Submodules\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Submodules</span></td>\n</tr>\n  <tr><td class=\"summary\">\n  <ul class=\"nomargin\">\n    <li class=\"private\"> <strong class=\"uidlink\"><a href=\"pygeodesy.triaxials.bases-module.html\" onclick=\"show_private();\">pygeodesy.triaxials.bases</a></strong>: <em class=\"summary\">(INTERNAL) Base classes for <i>ordered</i> triaxial ellipsoid \n        classes <a \n        href=\"pygeodesy.triaxials.triaxial5.Conformal-class.html\" \n        class=\"link\">Conformal</a>, <a \n        href=\"pygeodesy.triaxials.conformal3.Conformal3-class.html\" \n        class=\"link\">Conformal3</a>, <a \n        href=\"pygeodesy.triaxials.triaxial5.Triaxial-class.html\" \n        class=\"link\">Triaxial</a>, <a \n        href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html\" \n        class=\"link\">Triaxial3</a> and <i>unordered</i> <a \n        href=\"pygeodesy.triaxials.triaxial5.Triaxial_-class.html\" \n        class=\"link\">Triaxial_</a>.</em>    </li>\n    <li class=\"private\"> <strong class=\"uidlink\"><a href=\"pygeodesy.triaxials.conformal3-module.html\" onclick=\"show_private();\">pygeodesy.triaxials.conformal3</a></strong>: <em class=\"summary\"><i>Jacobi Conformal projection</i> classes <a \n        href=\"pygeodesy.triaxials.conformal3.Conformal3-class.html\" \n        class=\"link\">Conformal3</a>, <a \n        href=\"pygeodesy.triaxials.conformal3.Conformal3B-class.html\" \n        class=\"link\">Conformal3B</a> and <a \n        href=\"pygeodesy.triaxials.conformal3.Conformal3Sphere-class.html\" \n        class=\"link\">Conformal3Sphere</a> on triaxial ellipsoids and \n        spheres using <a href=\"pygeodesy.angles.Ang-class.html\" \n        class=\"link\">Ang</a>, <a href=\"pygeodesy.angles-module.html#Deg\" \n        class=\"link\">Deg</a>, <a href=\"pygeodesy.angles-module.html#Rad\" \n        class=\"link\">Rad</a> lat-, longitude, heading and meridian \n        (convergence) angles.</em>    </li>\n    <li class=\"private\"> <strong class=\"uidlink\"><a href=\"pygeodesy.triaxials.triaxial3-module.html\" onclick=\"show_private();\">pygeodesy.triaxials.triaxial3</a></strong>: <em class=\"summary\"><i>Ordered</i> triaxial ellipsoid classes <a \n        href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html\" \n        class=\"link\">Triaxial3</a> and <a \n        href=\"pygeodesy.triaxials.triaxial3.Triaxial3B-class.html\" \n        class=\"link\">Triaxial3B</a> for conversion between variuos \n        lat-/longitudal and cartesian coordinates on a triaxial ellipsoid \n        using <a href=\"pygeodesy.angles.Ang-class.html\" \n        class=\"link\">Ang</a>, <a href=\"pygeodesy.angles-module.html#Deg\" \n        class=\"link\">Deg</a>, <a href=\"pygeodesy.angles-module.html#Rad\" \n        class=\"link\">Rad</a> lat-, longitude and heading angles.</em>    </li>\n    <li class=\"private\"> <strong class=\"uidlink\"><a href=\"pygeodesy.triaxials.triaxial5-module.html\" onclick=\"show_private();\">pygeodesy.triaxials.triaxial5</a></strong>: <em class=\"summary\">Triaxal ellipsoid classes <a \n        href=\"pygeodesy.triaxials.triaxial5.Triaxial-class.html\" \n        class=\"link\">Triaxial</a> and <i>unordered</i> <a \n        href=\"pygeodesy.triaxials.triaxial5.Triaxial_-class.html\" \n        class=\"link\">Triaxial_</a> and Jacobi conformal projections <a \n        href=\"pygeodesy.triaxials.triaxial5.Conformal-class.html\" \n        class=\"link\">Conformal</a> and <a \n        href=\"pygeodesy.triaxials.triaxial5.ConformalSphere-class.html\" \n        class=\"link\">ConformalSphere</a>, transcoded from <i>Karney</i>'s \n        GeographicLib 2.5.2 C++ class <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1JacobiConformal.html#details\"\n        target=\"_top\">JacobiConformal</a> to pure Python and miscellaneous \n        classes <a \n        href=\"pygeodesy.triaxials.triaxial5.BetaOmega2Tuple-class.html\" \n        class=\"link\">BetaOmega2Tuple</a>, <a \n        href=\"pygeodesy.triaxials.triaxial5.BetaOmega3Tuple-class.html\" \n        class=\"link\">BetaOmega3Tuple</a> and <a \n        href=\"pygeodesy.triaxials.triaxial5.Conformal2Tuple-class.html\" \n        class=\"link\">Conformal2Tuple</a>, <i>all kept for backward \n        copability</i>.</em>    </li>\n  </ul></td></tr>\n</table>\n\n<br />\n<!-- ==================== CLASSES ==================== -->\n<a name=\"section-Classes\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Classes</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.triaxials.bases.LLK-class.html\" class=\"summary-name\">LLK</a><br />\n      Enum-like <code>Lat-/Longitude Kinds (LLK)</code>, see <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Triaxial_1_1Cartesian3.html\"\n        target=\"_top\">coord</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.triaxials.bases.TriaxialError-class.html\" class=\"summary-name\">TriaxialError</a><br />\n      Raised for any triaxial issue.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.triaxials.conformal3.BetOmgGam5Tuple-class.html\" class=\"summary-name\">BetOmgGam5Tuple</a><br />\n      5-Tuple <code>(bet, omg, gam, scale, llk)</code> with \n        <i>ellipsoidal</i> lat- <code>bet</code>, longitude \n        <code>omg</code> and meridian convergence <code>gam</code> all <a \n        href=\"pygeodesy.angles.Ang-class.html\" class=\"link\">Ang</a>les, \n        <code>scale</code> <i>and kind</i> <code>llk</code> <i>set to</i> \n        <code>LLK.CONFORMAL</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.triaxials.conformal3.Conformal3-class.html\" class=\"summary-name\">Conformal3</a><br />\n      <i>Jacobi Conformal</i> projection of triaxial ellipsoid using \n        class <a href=\"pygeodesy.angles.Ang-class.html\" \n        class=\"link\">Ang</a> lat- and longitudes.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.triaxials.conformal3.Conformal3B-class.html\" class=\"summary-name\">Conformal3B</a><br />\n      <i>Jacobi Conformal projection</i> on a triaxial ellipsoid \n        specified by its middle semi-axis and shape.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.triaxials.conformal3.Conformal3Sphere-class.html\" class=\"summary-name\">Conformal3Sphere</a><br />\n      <i>Jacobi Conformal projection</i> on a <i>spherical</i> triaxial.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.triaxials.bases.Conformal5Tuple-class.html\" class=\"summary-name\">Conformal5Tuple</a><br />\n      5-Tuple <code>(x, y, z, scale, llk)</code> with the easting \n        <code>x</code> and northing <code>y</code> projection, \n        <code>scale</code> or <code>NAN</code> <i>but with</i> \n        <code>z=INT0</code> <i>and kind</i> <code>llk=LLK.CONFORMAL</code> \n        <i>always</i>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.triaxials.triaxial3.BetOmgAlp5Tuple-class.html\" class=\"summary-name\">BetOmgAlp5Tuple</a><br />\n      5-Tuple <code>(bet, omg, alp, h, llk)</code> with \n        <i>ellipsoidal</i> lat- <code>bet</code>, longitude \n        <code>omg</code> and azimuth <code>alp</code>, all in <a \n        href=\"pygeodesy.angles.Ang-class.html\" class=\"link\">Ang</a>les on \n        and height <code>h</code> off the triaxial's surface and kind \n        <code>llk</code> set to <code>LLK.ELLIPSOIDAL</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.triaxials.triaxial3.Cartesian5Tuple-class.html\" class=\"summary-name\">Cartesian5Tuple</a><br />\n      5-Tuple <code>(x, y, z, h, llk)</code> with <i>cartesian</i> \n        <code>x</code>, <code>y</code> and <code>z</code> coordinates on \n        and height <code>h</code> above or below the triaxial's surface and\n        kind <code>llk</code> set to the original <code>LLK</code> or \n        <code>None</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.triaxials.triaxial3.PhiLamZet5Tuple-class.html\" class=\"summary-name\">PhiLamZet5Tuple</a><br />\n      5-Tuple <code>(phi, lam, zet, h, llk)</code> with trixial lat- lat-\n        <code>phi</code>, longitude <code>lam</code> and azimuth \n        <code>zet</code>, all in <a href=\"pygeodesy.angles.Ang-class.html\" \n        class=\"link\">Ang</a>les on and height <code>h</code> off the \n        triaxial's surface and kind <code>llk</code> set to an \n        <code>LLK</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html\" class=\"summary-name\">Triaxial3</a><br />\n      <i>Ordered</i> triaxial ellipsoid convering between cartesian and \n        lat-/longitudes using using class <a \n        href=\"pygeodesy.angles.Ang-class.html\" class=\"link\">Ang</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.triaxials.triaxial3.Triaxial3B-class.html\" class=\"summary-name\">Triaxial3B</a><br />\n      Triaxial ellipsoid specified by its middle semi-axis and shape.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.triaxials.triaxial5.BetaOmega2Tuple-class.html\" class=\"summary-name\">BetaOmega2Tuple</a><br />\n      2-Tuple <code>(beta, omega)</code> with <i>ellipsoidal</i> lat- and\n        longitude <code>beta</code> and <code>omega</code> both in <a \n        href=\"pygeodesy.units.Radians-class.html\" class=\"link\">Radians</a> \n        (or <a href=\"pygeodesy.units.Degrees-class.html\" \n        class=\"link\">Degrees</a>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.triaxials.triaxial5.BetaOmega3Tuple-class.html\" class=\"summary-name\">BetaOmega3Tuple</a><br />\n      3-Tuple <code>(beta, omega, height)</code> with <i>ellipsoidal</i> \n        lat- and longitude <code>beta</code> and <code>omega</code> both in\n        <a href=\"pygeodesy.units.Radians-class.html\" \n        class=\"link\">Radians</a> (or <a \n        href=\"pygeodesy.units.Degrees-class.html\" class=\"link\">Degrees</a>)\n        and the <code>height</code>, rather the (signed) <i>distance</i> to\n        the triaxial's surface (measured along the radial line to the \n        triaxial's center) in <code>meter</code>, conventionally.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.triaxials.triaxial5.Conformal-class.html\" class=\"summary-name\">Conformal</a><br />\n      This is a <i>Jacobi Conformal</i> projection of a triaxial \n        ellipsoid to a plane where the <code>X</code> and <code>Y</code> \n        grid lines are straight.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.triaxials.triaxial5.ConformalSphere-class.html\" class=\"summary-name\">ConformalSphere</a><br />\n      Alternate, <i>Jacobi Conformal projection</i> on a <i>spherical</i>\n        triaxial.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.triaxials.triaxial5.Conformal2Tuple-class.html\" class=\"summary-name\">Conformal2Tuple</a><br />\n      2-Tuple <code>(x, y)</code> with a <i>Jacobi Conformal</i> \n        <code>x</code> and <code>y</code> projection, both in <a \n        href=\"pygeodesy.units.Radians-class.html\" class=\"link\">Radians</a> \n        (or <a href=\"pygeodesy.units.Degrees-class.html\" \n        class=\"link\">Degrees</a>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.triaxials.triaxial5.Triaxial-class.html\" class=\"summary-name\">Triaxial</a><br />\n      <i>Ordered</i> triaxial ellipsoid.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.triaxials.triaxial5.Triaxial_-class.html\" class=\"summary-name\">Triaxial_</a><br />\n      <i>Unordered</i> triaxial ellipsoid.\n    </td>\n  </tr>\n</table>\n<!-- ==================== FUNCTIONS ==================== -->\n<a name=\"section-Functions\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Functions</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.triaxials-module.html#hartzell4\" class=\"summary-sig-name\">hartzell4</a>(<span class=\"summary-sig-arg\">pov</span>,\n        <span class=\"summary-sig-arg\">los</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">tri_biax</span>=<span class=\"summary-sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Compute the intersection of a tri-/biaxial ellipsoid and a \n      Line-Of-Sight from a Point-Of-View outside.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.triaxials-module.html#height4\" class=\"summary-sig-name\">height4</a>(<span class=\"summary-sig-arg\">x_xyz</span>,\n        <span class=\"summary-sig-arg\">y</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">z</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">tri_biax</span>=<span class=\"summary-sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"summary-sig-arg\">normal</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">eps</span>=<span class=\"summary-sig-default\">2.220446049250313e-16</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Compute the projection on and the height above or below a \n      tri-/biaxial ellipsoid's surface.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== VARIABLES ==================== -->\n<a name=\"section-Variables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Variables</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"__all__\"></a><span class=\"summary-name\">__all__</span> = <code title=\"_ALL_LAZY.triaxials\">_ALL_LAZY.triaxials</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.triaxials-module.html#Triaxial3s\" class=\"summary-name\">Triaxial3s</a> = <code title=\"Triaxial3s.WGS84_3r: Triaxial3(name='WGS84_3r', a=6378172, b=6378102, \\\nc=6356752, k2=0.996726547, kp2=0.003273453, volume=1083207266220584468\\\n480, area=510065604942135.875, R2=6371007.076110449)\">Triaxial3s.WGS84_3r: Triaxial3(name='WGS84_3r', a<code class=\"variable-ellipsis\">...</code></code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"Triaxials\"></a><span class=\"summary-name\">Triaxials</span> = <code title=\"\"></code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"__getattr__\"></a><span class=\"summary-name\">__getattr__</span> = <code title=\"_lazy_import_as(__name__)\">_lazy_import_as(__name__)</code>\n    </td>\n  </tr>\n</table>\n<!-- ==================== FUNCTION DETAILS ==================== -->\n<a name=\"section-FunctionDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Function Details</span></td>\n</tr>\n</table>\n<a name=\"hartzell4\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">hartzell4</span>&nbsp;(<span class=\"sig-arg\">pov</span>,\n        <span class=\"sig-arg\">los</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">tri_biax</span>=<span class=\"sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the intersection of a tri-/biaxial ellipsoid and a \n  Line-Of-Sight from a Point-Of-View outside.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>pov</code></strong> - Point-Of-View outside the tri-/biaxial (<code>Cartesian</code>, \n          <a href=\"pygeodesy.ecef.Ecef9Tuple-class.html\" \n          class=\"link\">Ecef9Tuple</a>, <code>LatLon</code> or <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>).</li>\n        <li><strong class=\"pname\"><code>los</code></strong> - Line-Of-Sight, <i>direction</i> to the tri-/biaxial (<a \n          href=\"pygeodesy.ltpTuples.Los-class.html\" class=\"link\">Los</a>, \n          <a href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>) or <code>True</code> for the \n          <i>normal, perpendicular, plumb</i> to the surface of the \n          tri-/biaxial or <code>False</code> or <code>None</code> to point \n          to its center.</li>\n        <li><strong class=\"pname\"><code>tri_biax</code></strong> - A triaxial (<a \n          href=\"pygeodesy.triaxials.triaxial5.Triaxial-class.html\" \n          class=\"link\">Triaxial</a>, <a \n          href=\"pygeodesy.triaxials.triaxial5.Triaxial_-class.html\" \n          class=\"link\">Triaxial_</a>, <a \n          href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html\" \n          class=\"link\">Triaxial3</a>, <a \n          href=\"pygeodesy.triaxials.triaxial3.Triaxial3B-class.html\" \n          class=\"link\">Triaxial3B</a>, <a \n          href=\"pygeodesy.triaxials.triaxial5.Conformal-class.html\" \n          class=\"link\">Conformal</a> or <a \n          href=\"pygeodesy.triaxials.triaxial5.ConformalSphere-class.html\" \n          class=\"link\">ConformalSphere</a>) or biaxial ellipsoid (<a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>, \n          <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a>, <a \n          href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>) or spherical earth radius \n          (<code>scalar</code>, conventionally in <code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional name (<code>str</code>), overriding \n          <code><b>name</b>=&quot;hartzell4&quot;</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><a href=\"pygeodesy.namedTuples.Vector4Tuple-class.html\" \n          class=\"link\">Vector4Tuple</a><code>(x, y, z, h)</code> on the \n          tri-/biaxial's surface, with <code>h</code> the distance from \n          <b><code>pov</code></b> to <code>(x, y, z)</code> <i>along \n          the</i> <b><code>los</code></b>, all in <code>meter</code>, \n          conventionally.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.triaxials.bases.TriaxialError-class.html\">TriaxialError</a></strong></code> - Invalid <b><code>pov</code></b> or <b><code>pov</code></b> inside \n        the tri-/biaxial or invalid <b><code>los</code></b> or \n        <b><code>los</code></b> points outside or away from the \n        tri-/biaxial.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>tri_biax</code></b>, <code>ellipsoid</code> or \n        <code>datum</code>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Class <a href=\"pygeodesy.ltpTuples.Los-class.html\" \n        class=\"link\">pygeodesy3.Los</a>, functions <a \n        href=\"pygeodesy.ltp-module.html#tyr3d\" \n        class=\"link\">pygeodesy.tyr3d</a> and <a \n        href=\"pygeodesy.formy-module.html#hartzell\" \n        class=\"link\">pygeodesy.hartzell</a> and <a \n        href=\"https://PyPI.org/project/pymap3d\" \n        target=\"_top\">lookAtSpheroid</a> and <a \n        href=\"https://StephenHartzell.Medium.com/satellite-line-of-sight-intersection-with-earth-d786b4a6a9b6\"\n        target=\"_top\">&quot;Satellite Line-of-Sight Intersection with \n        Earth&quot;</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"height4\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">height4</span>&nbsp;(<span class=\"sig-arg\">x_xyz</span>,\n        <span class=\"sig-arg\">y</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">z</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">tri_biax</span>=<span class=\"sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"sig-arg\">normal</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">eps</span>=<span class=\"sig-default\">2.220446049250313e-16</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the projection on and the height above or below a tri-/biaxial\n  ellipsoid's surface.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>x_xyz</code></strong> - X component (<code>scalar</code>) or a cartesian \n          (<code>Cartesian</code>, <a \n          href=\"pygeodesy.ecef.Ecef9Tuple-class.html\" \n          class=\"link\">Ecef9Tuple</a>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <a \n          href=\"pygeodesy.namedTuples.Vector3Tuple-class.html\" \n          class=\"link\">Vector3Tuple</a> or <a \n          href=\"pygeodesy.namedTuples.Vector4Tuple-class.html\" \n          class=\"link\">Vector4Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>y</code></strong> - Y component (<code>scalar</code>), required if \n          <b><code>x_xyz</code></b> if <code>scalar</code>, ignored \n          otherwise.</li>\n        <li><strong class=\"pname\"><code>z</code></strong> - Z component (<code>scalar</code>), like <b><code>y</code></b>.</li>\n        <li><strong class=\"pname\"><code>tri_biax</code></strong> - A triaxial (<a \n          href=\"pygeodesy.triaxials.triaxial5.Triaxial-class.html\" \n          class=\"link\">Triaxial</a>, <a \n          href=\"pygeodesy.triaxials.triaxial5.Triaxial_-class.html\" \n          class=\"link\">Triaxial_</a>, <a \n          href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html\" \n          class=\"link\">Triaxial3</a>, <a \n          href=\"pygeodesy.triaxials.triaxial3.Triaxial3B-class.html\" \n          class=\"link\">Triaxial3B</a>, <a \n          href=\"pygeodesy.triaxials.triaxial5.Conformal-class.html\" \n          class=\"link\">Conformal</a> or <a \n          href=\"pygeodesy.triaxials.triaxial5.ConformalSphere-class.html\" \n          class=\"link\">ConformalSphere</a>) or biaxial ellipsoid (<a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>, \n          <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a>, <a \n          href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>) or spherical earth radius \n          (<code>scalar</code>, conventionally in <code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>normal</code></strong> - If <code>True</code>, the projection is the <i>perpendicular, \n          plumb</i> to the tri-/biaxial's surface, otherwise the \n          <code>radial</code> line to the center of the tri-/biaxial \n          (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>eps</code></strong> - Tolerance for root finding and validation (<code>scalar</code>), \n          use a negative value to skip validation.</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=&quot;height4&quot;</code> \n          (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><a href=\"pygeodesy.namedTuples.Vector4Tuple-class.html\" \n          class=\"link\">Vector4Tuple</a><code>(x, y, z, h)</code> with the \n          cartesian coordinates <code>x</code>, <code>y</code> and \n          <code>z</code> of the projection on or the intersection with and \n          with the height <code>h</code> above or below the tri-/biaxial's \n          surface in <code>meter</code>, conventionally.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.triaxials.bases.TriaxialError-class.html\">TriaxialError</a></strong></code> - Non-cartesian <b><code>xyz</code></b>, invalid \n        <b><code>eps</code></b>, no convergence in root finding or \n        validation failed.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Methods <a \n        href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#normal3d\"\n        class=\"link\">Triaxial.normal3d</a> and <a \n        href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#height4\" \n        class=\"link\">Ellipsoid.height4</a>, <i>Eberly</i>'s <a \n        href=\"https://www.GeometricTools.com/Documentation/DistancePointEllipseEllipsoid.pdf\"\n        target=\"_top\">Distance from a Point to ...</a> and <i>Bektas</i>' \n        <a \n        href=\"https://www.ResearchGate.net/publication/272149005_SHORTEST_DISTANCE_FROM_A_POINT_TO_TRIAXIAL_ELLIPSOID\"\n        target=\"_top\">Shortest Distance from a Point to Triaxial \n        Ellipsoid</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<br />\n<!-- ==================== VARIABLES DETAILS ==================== -->\n<a name=\"section-VariablesDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Variables Details</span></td>\n</tr>\n</table>\n<a name=\"Triaxial3s\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">Triaxial3s</h3>\n  \n  <dl class=\"fields\">\n  </dl>\n  <dl class=\"fields\">\n    <dt>Value:</dt>\n      <dd><table><tr><td><pre class=\"variable\">\nTriaxial3s.WGS84_3r: Triaxial3(name='WGS84_3r', a=6378172, b=6378102, <span class=\"variable-linewrap\"><img src=\"crarr.png\" alt=\"\\\" /></span>\nc=6356752, k2=0.996726547, kp2=0.003273453, volume=1083207266220584468<span class=\"variable-linewrap\"><img src=\"crarr.png\" alt=\"\\\" /></span>\n480, area=510065604942135.875, R2=6371007.076110449)\n</pre></td></tr></table>\n</dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.triaxials.bases-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.triaxials.bases</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.triaxials-module.html\">Package&nbsp;triaxials</a> ::\n        Module&nbsp;bases\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.triaxials.bases-module.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== MODULE DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Module bases</h1><p class=\"nomargin-top\"></p>\n<p>(INTERNAL) Base classes for <i>ordered</i> triaxial ellipsoid classes \n  <a href=\"pygeodesy.triaxials.triaxial5.Conformal-class.html\" \n  class=\"link\">Conformal</a>, <a \n  href=\"pygeodesy.triaxials.conformal3.Conformal3-class.html\" \n  class=\"link\">Conformal3</a>, <a \n  href=\"pygeodesy.triaxials.triaxial5.Triaxial-class.html\" \n  class=\"link\">Triaxial</a>, <a \n  href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html\" \n  class=\"link\">Triaxial3</a> and <i>unordered</i> <a \n  href=\"pygeodesy.triaxials.triaxial5.Triaxial_-class.html\" \n  class=\"link\">Triaxial_</a>.</p>\n  <p>Transcoded to pure Python from <i>Karney</i>'s GeographicLib 2.7 C++ \n  classes <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Triaxial_1_1Ellipsoid3.html\"\n  target=\"_top\">Ellipsoid3</a>, <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Triaxial_1_1Cartesian3.html\"\n  target=\"_top\">Cartesian3</a> and <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Triaxial_1_1Conformal3.html\"\n  target=\"_top\">Conformal3</a>.</p>\n  <p>GeographicLib 2.5.2 C++ class <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1JacobiConformal.html#details\"\n  target=\"_top\">JacobiConformal</a>.</p>\n  <p>Copyright (C) <a href=\"mailto:Karney@Alum.MIT.edu\" \n  target=\"_top\">Charles Karney</a> (2008-2024, 2025) and licensed under the\n  MIT/X11 License. For more information, see the <a \n  href=\"https://GeographicLib.SourceForge.io/\" target=\"_top\">GeographicLib \n  2.5.2 and 2.7</a> documentation.</p>\n  <p>Enum-like <code>Lat-/Longitude Kinds (LLK)</code>, see <i>Karney</i>'s\n  <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Triaxial_1_1Cartesian3.html\"\n  target=\"_top\">coord</a>:</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Version:</strong>\n        26.03.12\n      </p>\n</div><!-- ==================== CLASSES ==================== -->\n<a name=\"section-Classes\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Classes</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.triaxials.bases.LLK-class.html\" class=\"summary-name\">LLK</a><br />\n      Enum-like <code>Lat-/Longitude Kinds (LLK)</code>, see <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Triaxial_1_1Cartesian3.html\"\n        target=\"_top\">coord</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html\" class=\"summary-name\">_UnOrderedTriaxialBase</a><br />\n      (INTERNAL) Base class for all <i>unordered</i> triaxial classes.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.triaxials.bases._OrderedTriaxialBase-class.html\" class=\"summary-name\">_OrderedTriaxialBase</a><br />\n      (INTERNAL) Base class for all <i>ordered</i> triaxial classes.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.triaxials.bases._Triaxial3Base-class.html\" class=\"summary-name\">_Triaxial3Base</a><br />\n      (INTERNAL) Base class for <i>unordered</i> triaxial<code>3</code> \n        classes.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.triaxials.bases.TriaxialError-class.html\" class=\"summary-name\">TriaxialError</a><br />\n      Raised for any triaxial issue.\n    </td>\n  </tr>\n</table>\n<!-- ==================== VARIABLES ==================== -->\n<a name=\"section-Variables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Variables</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"__all__\"></a><span class=\"summary-name\">__all__</span> = <code title=\"_ALL_LAZY.triaxials_bases\">_ALL_LAZY.triaxials_bases</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"LLK.CONFORMAL\"></a><span class=\"summary-name\">LLK.CONFORMAL</span><br />\n      Jacobi conformal X and Y projection\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"LLK.ELLIPSOIDAL\"></a><span class=\"summary-name\">LLK.ELLIPSOIDAL</span><br />\n      Ellipsoidal lat-, longitude and heading <code>bet</code>, \n      <code>omg</code>, <code>alp</code> (<a \n      href=\"pygeodesy.angles.Ang-class.html\" class=\"link\">Ang</a>)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"LLK.GEOCENTRIC\"></a><span class=\"summary-name\">LLK.GEOCENTRIC</span><br />\n      Geocentric lat-, longitude and heading <code>phi</code>&quot;, \n      <code>lam</code>&quot; and <code>zet</code> (<a \n      href=\"pygeodesy.angles.Ang-class.html\" class=\"link\">Ang</a>)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"LLK.GEOCENTRIC_X\"></a><span class=\"summary-name\">LLK.GEOCENTRIC_X</span><br />\n      Geocentric with pole along major X axis\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"LLK.GEODETIC\"></a><span class=\"summary-name\">LLK.GEODETIC</span><br />\n      Geodetic lat-, longitude and heading <code>phi</code>, \n      <code>lam</code> and <code>zet</code> (<a \n      href=\"pygeodesy.angles.Ang-class.html\" class=\"link\">Ang</a>)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"LLK.GEODETIC_LON0\"></a><span class=\"summary-name\">LLK.GEODETIC_LON0</span><br />\n      Geodetic lat-, longitude <i>- lon0</i> and heading <code>phi</code>, \n      <code>lam</code> and <code>zet</code> (<a \n      href=\"pygeodesy.angles.Ang-class.html\" class=\"link\">Ang</a>) @var \n      LLK.GEOGRAPHIC = LLK.GEODETIC\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"LLK.GEODETIC_X\"></a><span class=\"summary-name\">LLK.GEODETIC_X</span><br />\n      Geodetic with pole along major X axis\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"LLK.PARAMETRIC\"></a><span class=\"summary-name\">LLK.PARAMETRIC</span><br />\n      Parametric lat-, longitude and heading <code>phi</code>', \n      <code>lam</code>' and <code>zet</code> (<a \n      href=\"pygeodesy.angles.Ang-class.html\" class=\"link\">Ang</a>)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"LLK.PARAMETRIC_X\"></a><span class=\"summary-name\">LLK.PARAMETRIC_X</span><br />\n      Parametric with pole along major X axis @var LLK.PLANETODETIC = \n      LLK.GEODETIC @var LLK.PLANETOCENTRIC = LLK.GEOCENTRIC\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.triaxials.bases.Conformal5Tuple-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.triaxials.bases.Conformal5Tuple</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.triaxials-module.html\">Package&nbsp;triaxials</a> ::\n        <a href=\"pygeodesy.triaxials.bases-module.html\" onclick=\"show_private();\">Module&nbsp;bases</a> ::\n        Class&nbsp;Conformal5Tuple\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.triaxials.bases.Conformal5Tuple-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Conformal5Tuple</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n   object --+        \n            |        \n        tuple --+    \n                |    \n   object --+   |    \n            |   |    \n <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n                |    \n<a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a> --+\n                    |\n                   <strong class=\"uidshort\">Conformal5Tuple</strong>\n</pre>\n\n<hr />\n<p>5-Tuple <code>(x, y, z, scale, llk)</code> with the easting \n  <code>x</code> and northing <code>y</code> projection, <code>scale</code>\n  or <code>NAN</code> <i>but with</i> <code>z=INT0</code> <i>and kind</i> \n  <code>llk=LLK.CONFORMAL</code> <i>always</i>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__delattr__\">__delattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__getattr__\">__getattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__setattr__\">__setattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#items\">items</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iteritems\">iteritems</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iterunits\">iterunits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#reUnit\">reUnit</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toUnits\">toUnits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>tuple</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__eq__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__iter__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__rmul__</code>,\n      <code>count</code>,\n      <code>index</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">a new object with type S, a subtype of T</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.triaxials.bases.Conformal5Tuple-class.html#__new__\" class=\"summary-sig-name\">__new__</a>(<span class=\"summary-sig-arg\">cls</span>,\n        <span class=\"summary-sig-arg\">x</span>,\n        <span class=\"summary-sig-arg\">y</span>,\n        <span class=\"summary-sig-arg\">z</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">scale</span>=<span class=\"summary-sig-default\">nan</span>,\n        <span class=\"summary-sig-arg\">llk</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**kwds</span>)</span><br />\n      New <a href=\"pygeodesy.named._NamedTuple-class.html\" \n      class=\"link\">_NamedTuple</a> initialized with \n      <b><code>positional</code></b> arguments.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__new__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__new__</span>&nbsp;(<span class=\"sig-arg\">cls</span>,\n        <span class=\"sig-arg\">x</span>,\n        <span class=\"sig-arg\">y</span>,\n        <span class=\"sig-arg\">z</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">scale</span>=<span class=\"sig-default\">nan</span>,\n        <span class=\"sig-arg\">llk</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**kwds</span>)</span>\n    <br /><em class=\"fname\">Static Method</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.named._NamedTuple-class.html\" \n  class=\"link\">_NamedTuple</a> initialized with \n  <b><code>positional</code></b> arguments.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>arg</code></strong> - Tuple items (<code>tuple</code>, <code>list</code>, ...) or first\n          tuple item of several more in other positional arguments.</li>\n        <li><strong class=\"pname\"><code>args</code></strong> - Tuple items (<code>any</code>), all positional arguments.</li>\n        <li><strong class=\"pname\"><code>iteration_name</code></strong> - Only keyword arguments <code><b>iteration</b>=None</code> and \n          <code><b>name</b>=NN</code> are used, any other are \n          <i>silently</i> ignored.</li>\n    </ul></dd>\n    <dt>Returns: a new object with type S, a subtype of T</dt>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.LenError-class.html\">LenError</a></strong></code> - Unequal number of positional arguments and number of item \n        <code>_Names_</code> or <code>_Units_</code>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - The <code>_Names_</code> or <code>_Units_</code> attribute is not a\n        <code>tuple</code> of at least 2 items.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Item name is not a <code>str</code> or valid \n        <code>identifier</code> or starts with <code>underscore</code>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__new__\n        <dd><em class=\"note\">(inherited documentation)</em></dd>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.triaxials.bases.LLK-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.triaxials.bases.LLK</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.triaxials-module.html\">Package&nbsp;triaxials</a> ::\n        <a href=\"pygeodesy.triaxials.bases-module.html\" onclick=\"show_private();\">Module&nbsp;bases</a> ::\n        Class&nbsp;LLK\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.triaxials.bases.LLK-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class LLK</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\nobject --+\n         |\n        <strong class=\"uidshort\">LLK</strong>\n</pre>\n\n<hr />\n<p>Enum-like <code>Lat-/Longitude Kinds (LLK)</code>, see <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Triaxial_1_1Cartesian3.html\"\n  target=\"_top\">coord</a>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__getitem__\"></a><span class=\"summary-sig-name\">__getitem__</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">name</span>)</span></td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"get\"></a><span class=\"summary-sig-name\">get</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">name</span>,\n        <span class=\"summary-sig-arg\">dflt</span>=<span class=\"summary-sig-default\">None</span>)</span><br />\n      Get an <code>LLK</code> by <code>name</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"items\"></a><span class=\"summary-sig-name\">items</span>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Yield all <code>LLK (name, value)</code> pairs.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"keys\"></a><span class=\"summary-sig-name\">keys</span>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Yield all <code>LLK</code> names.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"values\"></a><span class=\"summary-sig-name\">values</span>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Yield all <code>LLK</code> values.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__format__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__init__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__repr__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__str__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS VARIABLES ==================== -->\n<a name=\"section-ClassVariables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Class Variables</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"CONFORMAL\"></a><span class=\"summary-name\">CONFORMAL</span> = <code title=\"'CONFORMAL'\">'CONFORMAL'</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"ELLIPSOIDAL\"></a><span class=\"summary-name\">ELLIPSOIDAL</span> = <code title=\"'ELLIPSOIDAL'\">'ELLIPSOIDAL'</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"GEOCENTRIC\"></a><span class=\"summary-name\">GEOCENTRIC</span> = <code title=\"'GEOCENTRIC'\">'GEOCENTRIC'</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"GEOCENTRIC_X\"></a><span class=\"summary-name\">GEOCENTRIC_X</span> = <code title=\"'GEOCENTRIC_X'\">'GEOCENTRIC_X'</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"GEODETIC\"></a><span class=\"summary-name\">GEODETIC</span> = <code title=\"'GEODETIC'\">'GEODETIC'</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"GEODETIC_LON0\"></a><span class=\"summary-name\">GEODETIC_LON0</span> = <code title=\"'GEODETIC_LON0'\">'GEODETIC_LON0'</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"GEODETIC_X\"></a><span class=\"summary-name\">GEODETIC_X</span> = <code title=\"'GEODETIC_X'\">'GEODETIC_X'</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"GEOGRAPHIC\"></a><span class=\"summary-name\">GEOGRAPHIC</span> = <code title=\"'GEODETIC'\">'GEODETIC'</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"PARAMETRIC\"></a><span class=\"summary-name\">PARAMETRIC</span> = <code title=\"'PARAMETRIC'\">'PARAMETRIC'</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"PARAMETRIC_X\"></a><span class=\"summary-name\">PARAMETRIC_X</span> = <code title=\"'PARAMETRIC_X'\">'PARAMETRIC_X'</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"PLANETOCENTRIC\"></a><span class=\"summary-name\">PLANETOCENTRIC</span> = <code title=\"'GEOCENTRIC'\">'GEOCENTRIC'</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"PLANETODETIC\"></a><span class=\"summary-name\">PLANETODETIC</span> = <code title=\"'GEODETIC'\">'GEODETIC'</code>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.triaxials.bases.TriaxialError-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.triaxials.bases.TriaxialError</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.triaxials-module.html\">Package&nbsp;triaxials</a> ::\n        <a href=\"pygeodesy.triaxials.bases-module.html\" onclick=\"show_private();\">Module&nbsp;bases</a> ::\n        Class&nbsp;TriaxialError\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.triaxials.bases.TriaxialError-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class TriaxialError</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n              object --+                    \n                       |                    \nexceptions.BaseException --+                \n                           |                \n        exceptions.Exception --+            \n                               |            \n        exceptions.StandardError --+        \n                                   |        \n               exceptions.ValueError --+    \n                                       |    \n                      errors._ValueError --+\n                                           |\n                                          <strong class=\"uidshort\">TriaxialError</strong>\n</pre>\n\n<hr />\n<p>Raised for any triaxial issue.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>errors._ValueError</code></b>:\n      <code>__init__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.ValueError</code></b>:\n      <code>__new__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.BaseException</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getslice__</code>,\n      <code>__reduce__</code>,\n      <code>__repr__</code>,\n      <code>__setattr__</code>,\n      <code>__setstate__</code>,\n      <code>__str__</code>,\n      <code>__unicode__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__format__</code>,\n      <code>__hash__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.BaseException</code></b>:\n      <code>args</code>,\n      <code>message</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.triaxials.bases._OrderedTriaxialBase-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.triaxials.bases._OrderedTriaxialBase</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.triaxials-module.html\">Package&nbsp;triaxials</a> ::\n        <a href=\"pygeodesy.triaxials.bases-module.html\" onclick=\"show_private();\">Module&nbsp;bases</a> ::\n        Class&nbsp;_OrderedTriaxialBase\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.triaxials.bases._OrderedTriaxialBase-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class _OrderedTriaxialBase</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+                \n           |                \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+            \n               |            \n<a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+        \n                   |        \n<a href=\"pygeodesy.named._NamedEnumItem-class.html\">named._NamedEnumItem</a> --+    \n                       |    \n  <a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html\">_UnOrderedTriaxialBase</a> --+\n                           |\n                          <strong class=\"uidshort\">_OrderedTriaxialBase</strong>\n</pre>\n\n<dl><dt>Known Subclasses:</dt>\n<dd>\n      <ul class=\"subclass-list\">\n<li><a href=\"pygeodesy.triaxials.triaxial5.Triaxial-class.html\">triaxial5.Triaxial</a></li><li>, <a href=\"pygeodesy.triaxials.bases._Triaxial3Base-class.html\">_Triaxial3Base</a></li>  </ul>\n</dd></dl>\n\n<hr />\n<p>(INTERNAL) Base class for all <i>ordered</i> triaxial classes.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.triaxials.bases._OrderedTriaxialBase-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">a_triaxial</span>,\n        <span class=\"summary-sig-arg\">b</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">c</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      New <i>ordered</i> <a \n      href=\"pygeodesy.triaxials.triaxial5.Triaxial-class.html\" \n      class=\"link\">Triaxial</a>, <a \n      href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html\" \n      class=\"link\">Triaxial3</a>, <a \n      href=\"pygeodesy.triaxials.triaxial5.Conformal-class.html\" \n      class=\"link\">Conformal</a> or <a \n      href=\"pygeodesy.triaxials.conformal3.Conformal3-class.html\" \n      class=\"link\">Conformal3</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html\">_UnOrderedTriaxialBase</a></code></b>:\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#areaKT\">areaKT</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#area_p\">area_p</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#ellipse5\">ellipse5</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#hartzell4\">hartzell4</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#height4\">height4</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#normal3d\">normal3d</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#normal4\">normal4</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#sideOf\">sideOf</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#toBiaxial\">toBiaxial</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#toEllipsoid\">toEllipsoid</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#toStr\">toStr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedEnumItem-class.html\">named._NamedEnumItem</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedEnumItem-class.html#unregister\">unregister</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#others\">others</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#toRepr\">toRepr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.triaxials.bases._OrderedTriaxialBase-class.html#area\" class=\"summary-name\">area</a><br />\n      Get the surface area (<code>meter</code> <i>squared</i>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.triaxials.bases._OrderedTriaxialBase-class.html#area21k\" class=\"summary-name\">area21k</a><br />\n      Get the surface area using incomplete elliptic integrals of the 2nd \n      and 1st kind (<code>meter</code> <i>squared</i>), see also \n      <code>Elliptic.fE</code> respectively <code>Elliptic.fF</code>.\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html\">_UnOrderedTriaxialBase</a></code></b>:\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#R2\">R2</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#R3\">R3</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#Rauthalic\">Rauthalic</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#Rvolumetric\">Rvolumetric</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#a\">a</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#a2\">a2</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#abc3\">abc3</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#areaRG\">areaRG</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#b\">b</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#b2\">b2</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#c\">c</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#c2\">c2</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#e2ab\">e2ab</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#e2ac\">e2ac</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#e2bc\">e2bc</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#isFlat\">isFlat</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#isOblate\">isOblate</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#isOrdered\">isOrdered</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#isProlate\">isProlate</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#isSpherical\">isSpherical</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#perimeter4ab\">perimeter4ab</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#perimeter4ac\">perimeter4ac</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#perimeter4bc\">perimeter4bc</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#unOrdered\">unOrdered</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#volume\">volume</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedEnumItem-class.html\">named._NamedEnumItem</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedEnumItem-class.html#name\">name</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">a_triaxial</span>,\n        <span class=\"sig-arg\">b</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">c</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <i>ordered</i> <a \n  href=\"pygeodesy.triaxials.triaxial5.Triaxial-class.html\" \n  class=\"link\">Triaxial</a>, <a \n  href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html\" \n  class=\"link\">Triaxial3</a>, <a \n  href=\"pygeodesy.triaxials.triaxial5.Conformal-class.html\" \n  class=\"link\">Conformal</a> or <a \n  href=\"pygeodesy.triaxials.conformal3.Conformal3-class.html\" \n  class=\"link\">Conformal3</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>a_triaxial</code></strong> - Largest semi-axis (<code>scalar</code>, conventionally in \n          <code>meter</code>) or an other <a \n          href=\"pygeodesy.triaxials.triaxial5.Triaxial-class.html\" \n          class=\"link\">Triaxial</a> or <a \n          href=\"pygeodesy.triaxials.triaxial5.Triaxial_-class.html\" \n          class=\"link\">Triaxial_</a> instance.</li>\n        <li><strong class=\"pname\"><code>b</code></strong> - Middle semi-axis (<code>meter</code>, same units as \n          <b><code>a</code></b>), required if <code><b>a_triaxial</b> is \n          scalar</code>, ignored otherwise.</li>\n        <li><strong class=\"pname\"><code>c</code></strong> - Smallest semi-axis (<code>meter</code>, like \n          <b><code>b</code></b>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.triaxials.bases.TriaxialError-class.html\">TriaxialError</a></strong></code> - Semi-axes unordered, spherical or invalid.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        The semi-axes must be ordered as <code><b>a</b> &gt;= <b>b</b> \n        &gt;= <b>c</b> &gt; 0</code> and must be ellipsoidal, \n        <code><b>a</b> &gt; <b>c</b></code>.\n      </p>\n</div></td></tr></table>\n</div>\n<br />\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"area\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">area</h3>\n  <p>Get the surface area (<code>meter</code> <i>squared</i>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">area(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the surface area (<code>meter</code> <i>squared</i>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"https://WikiPedia.org/wiki/Ellipsoid#Surface_area\" \n        target=\"_top\">Surface area</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"area21k\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">area21k</h3>\n  <p>Get the surface area using incomplete elliptic integrals of the 2nd \n  and 1st kind (<code>meter</code> <i>squared</i>), see also \n  <code>Elliptic.fE</code> respectively <code>Elliptic.fF</code>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">area21k(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the surface area using incomplete elliptic integrals of the 2nd and 1st\nkind (<code>meter</code> <i>squared</i>), see also <code>Elliptic.fE</code>\nrespectively <code>Elliptic.fF</code>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.triaxials.bases._Triaxial3Base-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.triaxials.bases._Triaxial3Base</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.triaxials-module.html\">Package&nbsp;triaxials</a> ::\n        <a href=\"pygeodesy.triaxials.bases-module.html\" onclick=\"show_private();\">Module&nbsp;bases</a> ::\n        Class&nbsp;_Triaxial3Base\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.triaxials.bases._Triaxial3Base-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class _Triaxial3Base</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+                    \n           |                    \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+                \n               |                \n<a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+            \n                   |            \n<a href=\"pygeodesy.named._NamedEnumItem-class.html\">named._NamedEnumItem</a> --+        \n                       |        \n  <a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html\">_UnOrderedTriaxialBase</a> --+    \n                           |    \n        <a href=\"pygeodesy.triaxials.bases._OrderedTriaxialBase-class.html\">_OrderedTriaxialBase</a> --+\n                               |\n                              <strong class=\"uidshort\">_Triaxial3Base</strong>\n</pre>\n\n<dl><dt>Known Subclasses:</dt>\n<dd>\n      <ul class=\"subclass-list\">\n<li><a href=\"pygeodesy.triaxials.conformal3.Conformal3-class.html\">conformal3.Conformal3</a></li><li>, <a href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html\">triaxial3.Triaxial3</a></li><li class=\"private\">, triaxial5.TriaxialB</li>  </ul>\n</dd></dl>\n\n<hr />\n<p>(INTERNAL) Base class for <i>unordered</i> triaxial<code>3</code> \n  classes.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.triaxials.bases._OrderedTriaxialBase-class.html\">_OrderedTriaxialBase</a></code></b>:\n      <code><a href=\"pygeodesy.triaxials.bases._OrderedTriaxialBase-class.html#__init__\">__init__</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html\">_UnOrderedTriaxialBase</a></code></b>:\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#areaKT\">areaKT</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#area_p\">area_p</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#ellipse5\">ellipse5</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#hartzell4\">hartzell4</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#height4\">height4</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#normal3d\">normal3d</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#normal4\">normal4</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#sideOf\">sideOf</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#toBiaxial\">toBiaxial</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#toEllipsoid\">toEllipsoid</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#toStr\">toStr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedEnumItem-class.html\">named._NamedEnumItem</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedEnumItem-class.html#unregister\">unregister</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#others\">others</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#toRepr\">toRepr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.triaxials.bases._Triaxial3Base-class.html#Lon0\" class=\"summary-name\">Lon0</a><br />\n      Class <code>property</code> with a <code>.name</code> attribute.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.triaxials.bases._Triaxial3Base-class.html#e2\" class=\"summary-name\">e2</a><br />\n      Get the <i>squared eccentricity</i> (<code>scalar</code>), <i \n      class=\"math\">(a**2 - c**2) / b**2</i>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.triaxials.bases._Triaxial3Base-class.html#isBiaxial\" class=\"summary-name\">isBiaxial</a><br />\n      Is this triaxial <i>biaxial</i> (<code>bool</code>), <code>a</code> \n      == <code>b</code> or <code>b</code> == <code>c</code>?\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.triaxials.bases._Triaxial3Base-class.html#isOblate\" class=\"summary-name\">isOblate</a><br />\n      Is this triaxial <i>oblate</i> (<code>bool</code>), <code>a</code> ==\n      <code>b</code>?\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.triaxials.bases._Triaxial3Base-class.html#isProlate\" class=\"summary-name\">isProlate</a><br />\n      Is this triaxial <i>prolate</i> (<code>bool</code>), <code>b</code> \n      == <code>c</code>?\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.triaxials.bases._Triaxial3Base-class.html#k2\" class=\"summary-name\">k2</a><br />\n      (INTERNAL) Get the oblate <code>k2</code> parameter <i>squared</i>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.triaxials.bases._Triaxial3Base-class.html#kp2\" class=\"summary-name\">kp2</a><br />\n      (INTERNAL) Get the prolate <code>kp2</code> parameter <i>squared</i>.\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.triaxials.bases._OrderedTriaxialBase-class.html\">_OrderedTriaxialBase</a></code></b>:\n      <code><a href=\"pygeodesy.triaxials.bases._OrderedTriaxialBase-class.html#area\">area</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._OrderedTriaxialBase-class.html#area21k\">area21k</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html\">_UnOrderedTriaxialBase</a></code></b>:\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#R2\">R2</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#R3\">R3</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#Rauthalic\">Rauthalic</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#Rvolumetric\">Rvolumetric</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#a\">a</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#a2\">a2</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#abc3\">abc3</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#areaRG\">areaRG</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#b\">b</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#b2\">b2</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#c\">c</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#c2\">c2</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#e2ab\">e2ab</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#e2ac\">e2ac</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#e2bc\">e2bc</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#isFlat\">isFlat</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#isOrdered\">isOrdered</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#isSpherical\">isSpherical</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#perimeter4ab\">perimeter4ab</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#perimeter4ac\">perimeter4ac</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#perimeter4bc\">perimeter4bc</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#unOrdered\">unOrdered</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#volume\">volume</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedEnumItem-class.html\">named._NamedEnumItem</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedEnumItem-class.html#name\">name</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"Lon0\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">Lon0</h3>\n  <p>Class <code>property</code> with a <code>.name</code> attribute.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">Lon0(<span class=\"summary-sig-arg\">self</span>)</span>\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">Lon0(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lon0</span>)</span>\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"e2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">e2</h3>\n  <p>Get the <i>squared eccentricity</i> (<code>scalar</code>), <i \n  class=\"math\">(a**2 - c**2) / b**2</i>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">e2(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <i>squared eccentricity</i> (<code>scalar</code>), <i \nclass=\"math\">(a**2 - c**2) / b**2</i>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"isBiaxial\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">isBiaxial</h3>\n  <p>Is this triaxial <i>biaxial</i> (<code>bool</code>), <code>a</code> ==\n  <code>b</code> or <code>b</code> == <code>c</code>?</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">isBiaxial(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Is this triaxial <i>biaxial</i> (<code>bool</code>), <code>a</code> == \n<code>b</code> or <code>b</code> == <code>c</code>?\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"isOblate\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">isOblate</h3>\n  <p>Is this triaxial <i>oblate</i> (<code>bool</code>), <code>a</code> == \n  <code>b</code>?</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">isOblate(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Is this triaxial <i>oblate</i> (<code>bool</code>), <code>a</code> == \n<code>b</code>?\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"isProlate\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">isProlate</h3>\n  <p>Is this triaxial <i>prolate</i> (<code>bool</code>), <code>b</code> ==\n  <code>c</code>?</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">isProlate(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Is this triaxial <i>prolate</i> (<code>bool</code>), <code>b</code> == \n<code>c</code>?\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"k2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">k2</h3>\n  <p>(INTERNAL) Get the oblate <code>k2</code> parameter \n  <i>squared</i>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">k2(<span class=\"summary-sig-arg\">self</span>)</span>\n        - (INTERNAL) Get the oblate <code>k2</code> parameter <i>squared</i>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"kp2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">kp2</h3>\n  <p>(INTERNAL) Get the prolate <code>kp2</code> parameter \n  <i>squared</i>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">kp2(<span class=\"summary-sig-arg\">self</span>)</span>\n        - (INTERNAL) Get the prolate <code>kp2</code> parameter <i>squared</i>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.triaxials.bases._UnOrderedTriaxialBase</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.triaxials-module.html\">Package&nbsp;triaxials</a> ::\n        <a href=\"pygeodesy.triaxials.bases-module.html\" onclick=\"show_private();\">Module&nbsp;bases</a> ::\n        Class&nbsp;_UnOrderedTriaxialBase\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class _UnOrderedTriaxialBase</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+            \n           |            \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+        \n               |        \n<a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+    \n                   |    \n<a href=\"pygeodesy.named._NamedEnumItem-class.html\">named._NamedEnumItem</a> --+\n                       |\n                      <strong class=\"uidshort\">_UnOrderedTriaxialBase</strong>\n</pre>\n\n<dl><dt>Known Subclasses:</dt>\n<dd>\n      <ul class=\"subclass-list\">\n<li><a href=\"pygeodesy.triaxials.bases._OrderedTriaxialBase-class.html\">_OrderedTriaxialBase</a></li><li>, <a href=\"pygeodesy.triaxials.triaxial5.Triaxial_-class.html\">triaxial5.Triaxial_</a></li>  </ul>\n</dd></dl>\n\n<hr />\n<p>(INTERNAL) Base class for all <i>unordered</i> triaxial classes.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">a_triaxial</span>,\n        <span class=\"summary-sig-arg\">b</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">c</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      New <i>unordered</i> <code>Triaxial_</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#__repr__\" class=\"summary-sig-name\">__repr__</a>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Default <code>repr(self)</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#areaKT\" class=\"summary-sig-name\">areaKT</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">*p</span>)</span><br />\n      <i>Approximate</i> the surface area using <a \n      href=\"https://WikiPedia.org/wiki/Ellipsoid#Approximate_formula\" \n      target=\"_top\">Knud Thomson's</a> formula (<code>meter</code> \n      <i>squared</i>).</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#area_p\" class=\"summary-sig-name\">area_p</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">p</span>=<span class=\"summary-sig-default\">1.6075</span>)</span><br />\n      DEPRECATED on 2026-02-15, use method <a \n      href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#areaKT\"\n      class=\"link\">areaKT</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#ellipse5\" class=\"summary-sig-name\">ellipse5</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lat</span>)</span><br />\n      Get the equatorial or a parallel <i>ellipse of lattitude</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#hartzell4\" class=\"summary-sig-name\">hartzell4</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">pov</span>,\n        <span class=\"summary-sig-arg\">los</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Compute the intersection of this triaxial's surface with a \n      Line-Of-Sight from a Point-Of-View in space.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#height4\" class=\"summary-sig-name\">height4</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">x_xyz</span>,\n        <span class=\"summary-sig-arg\">y</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">z</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">normal</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">eps</span>=<span class=\"summary-sig-default\">2.220446049250313e-16</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Compute the projection on and the height above or below this \n      triaxial's surface.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#normal3d\" class=\"summary-sig-name\">normal3d</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">x_xyz</span>,\n        <span class=\"summary-sig-arg\">y</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">z</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">length</span>=<span class=\"summary-sig-default\">1.0</span>)</span><br />\n      Get a 3-D vector <i>on and perpendicular to</i> this triaxial's \n      surface.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#normal4\" class=\"summary-sig-name\">normal4</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">x_xyz</span>,\n        <span class=\"summary-sig-arg\">y</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">z</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">height</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">normal</span>=<span class=\"summary-sig-default\">True</span>)</span><br />\n      Compute a cartesian at a <b><code>height</code></b> above or below \n      this triaxial's surface.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#sideOf\" class=\"summary-sig-name\">sideOf</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">x_xyz</span>,\n        <span class=\"summary-sig-arg\">y</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">z</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">eps</span>=<span class=\"summary-sig-default\">8.881784197001252e-16</span>)</span><br />\n      Is a cartesian on, above or below the surface of this triaxial?</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#toBiaxial\" class=\"summary-sig-name\">toBiaxial</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Convert this triaxial to a <i>biaxial</i> <a \n      href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n      class=\"link\">Ellipsoid</a>, provided 2 axes match.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#toEllipsoid\" class=\"summary-sig-name\">toEllipsoid</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Convert this triaxial to a <i>biaxial</i> <a \n      href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n      class=\"link\">Ellipsoid</a>, provided 2 axes match.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#toStr\" class=\"summary-sig-name\">toStr</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">prec</span>=<span class=\"summary-sig-default\">9</span>,\n        <span class=\"summary-sig-arg\">terse</span>=<span class=\"summary-sig-default\">-3</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Return this <code>Triaxial</code> as a string.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedEnumItem-class.html\">named._NamedEnumItem</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedEnumItem-class.html#unregister\">unregister</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#others\">others</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#toRepr\">toRepr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#R2\" class=\"summary-name\">R2</a><br />\n      Get the <i>authalic</i> earth radius (<code>meter</code>), <i \n      class=\"math\">sqrt(area / PI4)</i>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#R3\" class=\"summary-name\">R3</a><br />\n      Get the <i>volumetric</i> earth radius (<code>meter</code>), <i \n      class=\"math\">(a * b * c)**(1/3)</i>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#Rauthalic\" class=\"summary-name\">Rauthalic</a><br />\n      Get the <i>authalic</i> earth radius (<code>meter</code>), <i \n      class=\"math\">sqrt(area / PI4)</i>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#Rvolumetric\" class=\"summary-name\">Rvolumetric</a><br />\n      Get the <i>volumetric</i> earth radius (<code>meter</code>), <i \n      class=\"math\">(a * b * c)**(1/3)</i>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#a\" class=\"summary-name\">a</a><br />\n      Get the <code>largest, x</code> semi-axis (<code>meter</code>, \n      conventionally).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#a2\" class=\"summary-name\">a2</a><br />\n      Get <code>a**2</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#abc3\" class=\"summary-name\">abc3</a><br />\n      Get the semi-axes as 3-tuple <code>(a, b, c)</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#area\" class=\"summary-name\">area</a><br />\n      Get the surface area (<code>meter</code> <i>squared</i>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#areaRG\" class=\"summary-name\">areaRG</a><br />\n      Get the surface area using Carlson's <a \n      href=\"https://WikiPedia.org/wiki/Ellipsoid#Surface_Area\" \n      target=\"_top\">symmetric RG</a> form (<code>meter</code> \n      <i>squared</i>), see also <code>Elliptic.fRG</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#b\" class=\"summary-name\">b</a><br />\n      Get the <code>middle, y</code> semi-axis (<code>meter</code>, same \n      units as <b><code>a</code></b>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#b2\" class=\"summary-name\">b2</a><br />\n      Get <code>b**2</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#c\" class=\"summary-name\">c</a><br />\n      Get the <code>smallest, z</code> semi-axis (<code>meter</code>, same \n      units as <b><code>a</code></b>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#c2\" class=\"summary-name\">c2</a><br />\n      Get <code>c**2</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#e2ab\" class=\"summary-name\">e2ab</a><br />\n      Get the <code>ab</code> ellipse' <i>(1st) eccentricity squared</i> \n      (<code>scalar</code>), <i class=\"math\">1 - (b/a)**2</i>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#e2ac\" class=\"summary-name\">e2ac</a><br />\n      Get the <code>ac</code> ellipse' <i>(1st) eccentricity squared</i> \n      (<code>scalar</code>), <i class=\"math\">1 - (c/a)**2</i>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#e2bc\" class=\"summary-name\">e2bc</a><br />\n      Get the <code>bc</code> ellipse' <i>(1st) eccentricity squared</i> \n      (<code>scalar</code>), <i class=\"math\">1 - (c/b)**2</i>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#isFlat\" class=\"summary-name\">isFlat</a><br />\n      Is this triaxial &quot;flat&quot;, too pro-/oblate \n      (<code>bool</code>)?\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#isOblate\" class=\"summary-name\">isOblate</a><br />\n      Is this triaxial oblate (<code>bool</code>)?\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#isOrdered\" class=\"summary-name\">isOrdered</a><br />\n      Is this triaxial <i>ordered</i> and <i>not spherical</i> \n      (<code>bool</code>)?\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#isProlate\" class=\"summary-name\">isProlate</a><br />\n      Is this triaxial prolate (<code>bool</code>)?\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#isSpherical\" class=\"summary-name\">isSpherical</a><br />\n      Is this triaxial <i>spherical</i> (<code>Radius</code> or INT0)?\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#perimeter4ab\" class=\"summary-name\">perimeter4ab</a><br />\n      DEPRECATED on 2026.02.09, use property <a \n      href=\"pygeodesy.ellipses.Ellipse-class.html\" \n      class=\"link\">Ellipse</a><code>(a, b).perimeter2k_</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#perimeter4ac\" class=\"summary-name\">perimeter4ac</a><br />\n      DEPRECATED on 2026.02.09, use property <a \n      href=\"pygeodesy.ellipses.Ellipse-class.html\" \n      class=\"link\">Ellipse</a><code>(a, c).perimeter2k_</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#perimeter4bc\" class=\"summary-name\">perimeter4bc</a><br />\n      DEPRECATED on 2026.02.09, use property <a \n      href=\"pygeodesy.ellipses.Ellipse-class.html\" \n      class=\"link\">Ellipse</a><code>(b, c).perimeter2k_</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#unOrdered\" class=\"summary-name\">unOrdered</a><br />\n      Is this triaxial <i>un-ordered</i> and <i>not spherical</i> \n      (<code>bool</code>)?\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#volume\" class=\"summary-name\">volume</a><br />\n      Get the volume (<code>meter**3</code>), <i class=\"math\">4 / 3 * PI * \n      a * b * c</i>.\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedEnumItem-class.html\">named._NamedEnumItem</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedEnumItem-class.html#name\">name</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">a_triaxial</span>,\n        <span class=\"sig-arg\">b</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">c</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <i>unordered</i> <code>Triaxial_</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>a_triaxial</code></strong> - Large, <code>X</code> semi-axis (<code>scalar</code>, \n          conventionally in <code>meter</code>) or an other <a \n          href=\"pygeodesy.triaxials.triaxial5.Triaxial-class.html\" \n          class=\"link\">Triaxial</a>, <a \n          href=\"pygeodesy.triaxials.triaxial5.Triaxial_-class.html\" \n          class=\"link\">Triaxial_</a> or TriaxialB instance.</li>\n        <li><strong class=\"pname\"><code>b</code></strong> - Middle, <code>Y</code> semi-axis (<code>meter</code>, same units \n          as <b><code>a</code></b>), required if <code><b>a_triaxial</b> is\n          scalar</code>, ignored otherwise.</li>\n        <li><strong class=\"pname\"><code>c</code></strong> - Small, <code>Z</code> semi-axis (<code>meter</code>, like \n          <b><code>b</code></b>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.triaxials.bases.TriaxialError-class.html\">TriaxialError</a></strong></code> - Invalid semi-axis or -axes.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__repr__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__repr__</span>&nbsp;(<span class=\"sig-arg\">self</span>)</span>\n    <br /><em class=\"fname\">(Representation operator)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Default <code>repr(self)</code>.</p>\n  <dl class=\"fields\">\n    <dt>Overrides:\n        object.__repr__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"areaKT\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">areaKT</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">*p</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p><i>Approximate</i> the surface area using <a \n  href=\"https://WikiPedia.org/wiki/Ellipsoid#Approximate_formula\" \n  target=\"_top\">Knud Thomson's</a> formula (<code>meter</code> \n  <i>squared</i>).</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>p</code></strong> - Exponent (<code>scalar</code> &gt; 0), 1.6075 for near-spherical \n          or 1.5849625007 for &quot;near-flat&quot; triaxials.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"area_p\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">area_p</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">p</span>=<span class=\"sig-default\">1.6075</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED on 2026-02-15, use method <a \n  href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#areaKT\"\n  class=\"link\">areaKT</a>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_method</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"ellipse5\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">ellipse5</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lat</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Get the equatorial or a parallel <i>ellipse of lattitude</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat</code></strong> - Geodetic latitude (<code>degrees90</code>, <code>str</code> or \n          <code>Ang</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>An <a href=\"pygeodesy.namedTuples.Ellipse5Tuple-class.html\" \n          class=\"link\">Ellipse5Tuple</a><code>(a, b, height, lat, \n          beta)</code> with <code>a</code>, <code>b</code> and \n          <code>height</code> measured along this trixial's semi-axis \n          <code>a</code>, <code>b</code> and <code>c</code>, respectively.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#circle4\" \n        class=\"link\">Ellipsoid.circle4</a> for further details.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"hartzell4\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">hartzell4</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">pov</span>,\n        <span class=\"sig-arg\">los</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the intersection of this triaxial's surface with a \n  Line-Of-Sight from a Point-Of-View in space.</p>\n  <dl class=\"fields\">\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a \n        href=\"pygeodesy.triaxials.triaxial5-module.html#hartzell4\" \n        class=\"link\">hartzell4</a> for further details.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"height4\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">height4</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">x_xyz</span>,\n        <span class=\"sig-arg\">y</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">z</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">normal</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">eps</span>=<span class=\"sig-default\">2.220446049250313e-16</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the projection on and the height above or below this \n  triaxial's surface.</p>\n  <dl class=\"fields\">\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a \n        href=\"pygeodesy.triaxials.triaxial5-module.html#height4\" \n        class=\"link\">height4</a> for further details.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"normal3d\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">normal3d</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">x_xyz</span>,\n        <span class=\"sig-arg\">y</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">z</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">length</span>=<span class=\"sig-default\">1.0</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Get a 3-D vector <i>on and perpendicular to</i> this triaxial's \n  surface.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>x_xyz</code></strong> - X component (<code>scalar</code>) or a cartesian \n          (<code>Cartesian</code>, <a \n          href=\"pygeodesy.ecef.Ecef9Tuple-class.html\" \n          class=\"link\">Ecef9Tuple</a>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <a \n          href=\"pygeodesy.namedTuples.Vector3Tuple-class.html\" \n          class=\"link\">Vector3Tuple</a> or <a \n          href=\"pygeodesy.namedTuples.Vector4Tuple-class.html\" \n          class=\"link\">Vector4Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>y</code></strong> - Y component (<code>scalar</code>), required if \n          <b><code>x_xyz</code></b> if <code>scalar</code>, ignored \n          otherwise.</li>\n        <li><strong class=\"pname\"><code>z</code></strong> - Z component (<code>scalar</code>), like <b><code>y</code></b>.</li>\n        <li><strong class=\"pname\"><code>length</code></strong> - Optional, signed length in out-/inward direction \n          (<code>scalar</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <code>Vector3d(x_, y_, z_)</code> normalized to \n          <b><code>length</code></b>, pointing out- or inward for postive \n          respectively negative <b><code>length</code></b>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.triaxials.bases.TriaxialError-class.html\">TriaxialError</a></strong></code> - Zero length cartesian or vector.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        Cartesian <code>(<b>x</b>, <b>y</b>, <b>z</b>)</code> <i>must be \n        on</i> this triaxial's surface, use method <a \n        href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#sideOf\"\n        class=\"link\">Triaxial.sideOf</a> to validate.\n      </p>\n      <p><strong>See Also:</strong>\n        Methods <a \n        href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#height4\"\n        class=\"link\">Triaxial.height4</a> and <a \n        href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#sideOf\"\n        class=\"link\">Triaxial.sideOf</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"normal4\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">normal4</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">x_xyz</span>,\n        <span class=\"sig-arg\">y</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">z</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">height</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">normal</span>=<span class=\"sig-default\">True</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute a cartesian at a <b><code>height</code></b> above or below \n  this triaxial's surface.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>x_xyz</code></strong> - X component (<code>scalar</code>) or a cartesian \n          (<code>Cartesian</code>, <a \n          href=\"pygeodesy.ecef.Ecef9Tuple-class.html\" \n          class=\"link\">Ecef9Tuple</a>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <a \n          href=\"pygeodesy.namedTuples.Vector3Tuple-class.html\" \n          class=\"link\">Vector3Tuple</a> or <a \n          href=\"pygeodesy.namedTuples.Vector4Tuple-class.html\" \n          class=\"link\">Vector4Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>y</code></strong> - Y component (<code>scalar</code>), required if \n          <b><code>x_xyz</code></b> if <code>scalar</code>, ignored \n          otherwise.</li>\n        <li><strong class=\"pname\"><code>z</code></strong> - Z component (<code>scalar</code>), like <b><code>y</code></b>.</li>\n        <li><strong class=\"pname\"><code>normal</code></strong> - If <code>True</code>, the <b><code>height</code></b> is \n          <i>perpendicular, plumb</i> to the triaxial's surface, otherwise \n          <code>radially</code> to the center of this triaxial \n          (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><a href=\"pygeodesy.namedTuples.Vector4Tuple-class.html\" \n          class=\"link\">Vector4Tuple</a><code>(x, y, z, h)</code> with the \n          cartesian coordinates <code>x</code>, <code>y</code> and \n          <code>z</code> and <code>h</code> the <i>signed, normal \n          distance</i> to the triaxial's surface in <code>meter</code>, \n          conventionally.  Positive <code>h</code> indicates, the cartesian\n          is outside the triaxial, negative <code>h</code> means inside.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.triaxials.bases.TriaxialError-class.html\">TriaxialError</a></strong></code> - Zero length cartesian or vector.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        Cartesian <code>(<b>x</b>, <b>y</b>, <b>z</b>)</code> <i>must be \n        on</i> this triaxial's surface, use method <a \n        href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#sideOf\"\n        class=\"link\">Triaxial.sideOf</a> to validate.\n      </p>\n      <p><strong>See Also:</strong>\n        Methods <a \n        href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#normal3d\"\n        class=\"link\">Triaxial.normal3d</a> and <a \n        href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#height4\"\n        class=\"link\">Triaxial.height4</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"sideOf\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">sideOf</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">x_xyz</span>,\n        <span class=\"sig-arg\">y</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">z</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">eps</span>=<span class=\"sig-default\">8.881784197001252e-16</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Is a cartesian on, above or below the surface of this triaxial?</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>x_xyz</code></strong> - X component (<code>scalar</code>) or a cartesian \n          (<code>Cartesian</code>, <a \n          href=\"pygeodesy.ecef.Ecef9Tuple-class.html\" \n          class=\"link\">Ecef9Tuple</a>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <a \n          href=\"pygeodesy.namedTuples.Vector3Tuple-class.html\" \n          class=\"link\">Vector3Tuple</a> or <a \n          href=\"pygeodesy.namedTuples.Vector4Tuple-class.html\" \n          class=\"link\">Vector4Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>y</code></strong> - Y component (<code>scalar</code>), required if \n          <b><code>x_xyz</code></b> is <code>scalar</code>, ignored \n          otherwise.</li>\n        <li><strong class=\"pname\"><code>z</code></strong> - Z component (<code>scalar</code>), like <b><code>y</code></b>.</li>\n        <li><strong class=\"pname\"><code>eps</code></strong> - On-surface tolerance (<code>scalar</code>, distance \n          <i>squared</i>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>INT0</code> if <code>(<b>x</b>, <b>y</b>, <b>z</b>)</code> \n          is near this triaxial's surface within tolerance \n          <b><code>eps</code></b>, otherwise the signed, radial distance \n          <i>squared</i> (<code>float</code>), nega-/positive for in- \n          respectively outside this triaxial.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Methods <a \n        href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#height4\"\n        class=\"link\">Triaxial.height4</a> and <a \n        href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#normal3d\"\n        class=\"link\">Triaxial.normal3d</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"toBiaxial\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toBiaxial</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert this triaxial to a <i>biaxial</i> <a \n  href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n  class=\"link\">Ellipsoid</a>, provided 2 axes match.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>An <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a> with north along this <code>Z</code> \n          axis if <code>a == b</code>, this <code>Y</code> axis if <code>a \n          == c</code> or this <code>X</code> axis if <code>b == c</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.triaxials.bases.TriaxialError-class.html\">TriaxialError</a></strong></code> - This <code>a != b</code>, <code>b != c</code> and <code>c != \n        a</code>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <a \n        href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#toTriaxial\" \n        class=\"link\">Ellipsoid.toTriaxial</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"toEllipsoid\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toEllipsoid</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert this triaxial to a <i>biaxial</i> <a \n  href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n  class=\"link\">Ellipsoid</a>, provided 2 axes match.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>An <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a> with north along this <code>Z</code> \n          axis if <code>a == b</code>, this <code>Y</code> axis if <code>a \n          == c</code> or this <code>X</code> axis if <code>b == c</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.triaxials.bases.TriaxialError-class.html\">TriaxialError</a></strong></code> - This <code>a != b</code>, <code>b != c</code> and <code>c != \n        a</code>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <a \n        href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#toTriaxial\" \n        class=\"link\">Ellipsoid.toTriaxial</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"toStr\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toStr</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">prec</span>=<span class=\"sig-default\">9</span>,\n        <span class=\"sig-arg\">terse</span>=<span class=\"sig-default\">-3</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return this <code>Triaxial</code> as a string.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>prec</code></strong> - Precision, number of decimal digits (0..9).</li>\n        <li><strong class=\"pname\"><code>terse</code></strong> - Limit the number of items (<code>int</code>, 3..11), use \n          <code><b>terse</b>=0</code> or <code>=None</code> for all.</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional name (<code>str</code>), to override or \n          <code>None</code> to exclude this triaxial's name.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>This <code>Triaxial</code>'s attributes (<code>str</code>).</dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.named._Named-class.html#toStr\">named._Named.toStr</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"R2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">R2</h3>\n  <p>Get the <i>authalic</i> earth radius (<code>meter</code>), <i \n  class=\"math\">sqrt(area / PI4)</i>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">R2(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <i>authalic</i> earth radius (<code>meter</code>), <i \nclass=\"math\">sqrt(area / PI4)</i>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"R3\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">R3</h3>\n  <p>Get the <i>volumetric</i> earth radius (<code>meter</code>), <i \n  class=\"math\">(a * b * c)**(1/3)</i>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">R3(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <i>volumetric</i> earth radius (<code>meter</code>), <i \nclass=\"math\">(a * b * c)**(1/3)</i>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"Rauthalic\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">Rauthalic</h3>\n  <p>Get the <i>authalic</i> earth radius (<code>meter</code>), <i \n  class=\"math\">sqrt(area / PI4)</i>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">R2(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <i>authalic</i> earth radius (<code>meter</code>), <i \nclass=\"math\">sqrt(area / PI4)</i>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"Rvolumetric\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">Rvolumetric</h3>\n  <p>Get the <i>volumetric</i> earth radius (<code>meter</code>), <i \n  class=\"math\">(a * b * c)**(1/3)</i>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">R3(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <i>volumetric</i> earth radius (<code>meter</code>), <i \nclass=\"math\">(a * b * c)**(1/3)</i>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"a\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">a</h3>\n  <p>Get the <code>largest, x</code> semi-axis (<code>meter</code>, \n  conventionally).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">a(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <code>largest, x</code> semi-axis (<code>meter</code>, \nconventionally).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"a2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">a2</h3>\n  <p>Get <code>a**2</code>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">a2(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get <code>a**2</code>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"abc3\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">abc3</h3>\n  <p>Get the semi-axes as 3-tuple <code>(a, b, c)</code>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">abc3(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the semi-axes as 3-tuple <code>(a, b, c)</code>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"area\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">area</h3>\n  <p>Get the surface area (<code>meter</code> <i>squared</i>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">area(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the surface area (<code>meter</code> <i>squared</i>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"areaRG\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">areaRG</h3>\n  <p>Get the surface area using Carlson's <a \n  href=\"https://WikiPedia.org/wiki/Ellipsoid#Surface_Area\" \n  target=\"_top\">symmetric RG</a> form (<code>meter</code> <i>squared</i>), \n  see also <code>Elliptic.fRG</code></p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">areaRG(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the surface area using Carlson's <a \nhref=\"https://WikiPedia.org/wiki/Ellipsoid#Surface_Area\" \ntarget=\"_top\">symmetric RG</a> form (<code>meter</code> <i>squared</i>), \nsee also <code>Elliptic.fRG</code>\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"b\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">b</h3>\n  <p>Get the <code>middle, y</code> semi-axis (<code>meter</code>, same \n  units as <b><code>a</code></b>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">b(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <code>middle, y</code> semi-axis (<code>meter</code>, same units as\n<b><code>a</code></b>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"b2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">b2</h3>\n  <p>Get <code>b**2</code>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">b2(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get <code>b**2</code>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"c\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">c</h3>\n  <p>Get the <code>smallest, z</code> semi-axis (<code>meter</code>, same \n  units as <b><code>a</code></b>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">c(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <code>smallest, z</code> semi-axis (<code>meter</code>, same units \nas <b><code>a</code></b>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"c2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">c2</h3>\n  <p>Get <code>c**2</code>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">c2(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get <code>c**2</code>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"e2ab\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">e2ab</h3>\n  <p>Get the <code>ab</code> ellipse' <i>(1st) eccentricity squared</i> \n  (<code>scalar</code>), <i class=\"math\">1 - (b/a)**2</i>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">e2ab(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <code>ab</code> ellipse' <i>(1st) eccentricity squared</i> \n(<code>scalar</code>), <i class=\"math\">1 - (b/a)**2</i>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"e2ac\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">e2ac</h3>\n  <p>Get the <code>ac</code> ellipse' <i>(1st) eccentricity squared</i> \n  (<code>scalar</code>), <i class=\"math\">1 - (c/a)**2</i>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">e2ac(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <code>ac</code> ellipse' <i>(1st) eccentricity squared</i> \n(<code>scalar</code>), <i class=\"math\">1 - (c/a)**2</i>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"e2bc\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">e2bc</h3>\n  <p>Get the <code>bc</code> ellipse' <i>(1st) eccentricity squared</i> \n  (<code>scalar</code>), <i class=\"math\">1 - (c/b)**2</i>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">e2bc(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <code>bc</code> ellipse' <i>(1st) eccentricity squared</i> \n(<code>scalar</code>), <i class=\"math\">1 - (c/b)**2</i>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"isFlat\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">isFlat</h3>\n  <p>Is this triaxial &quot;flat&quot;, too pro-/oblate \n  (<code>bool</code>)?</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">isFlat(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Is this triaxial &quot;flat&quot;, too pro-/oblate (<code>bool</code>)?\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"isOblate\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">isOblate</h3>\n  <p>Is this triaxial oblate (<code>bool</code>)?</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">isOblate(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Is this triaxial oblate (<code>bool</code>)?\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"isOrdered\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">isOrdered</h3>\n  <p>Is this triaxial <i>ordered</i> and <i>not spherical</i> \n  (<code>bool</code>)?</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">isOrdered(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Is this triaxial <i>ordered</i> and <i>not spherical</i> \n(<code>bool</code>)?\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"isProlate\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">isProlate</h3>\n  <p>Is this triaxial prolate (<code>bool</code>)?</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">isProlate(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Is this triaxial prolate (<code>bool</code>)?\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"isSpherical\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">isSpherical</h3>\n  <p>Is this triaxial <i>spherical</i> (<code>Radius</code> or INT0)?</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">isSpherical(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Is this triaxial <i>spherical</i> (<code>Radius</code> or INT0)?\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"perimeter4ab\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">perimeter4ab</h3>\n  <p>DEPRECATED on 2026.02.09, use property <a \n  href=\"pygeodesy.ellipses.Ellipse-class.html\" \n  class=\"link\">Ellipse</a><code>(a, b).perimeter2k_</code>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">perimeter4ab(<span class=\"summary-sig-arg\">self</span>)</span>\n        - DEPRECATED on 2026.02.09, use property <a \nhref=\"pygeodesy.ellipses.Ellipse-class.html\" \nclass=\"link\">Ellipse</a><code>(a, b).perimeter2k_</code>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"perimeter4ac\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">perimeter4ac</h3>\n  <p>DEPRECATED on 2026.02.09, use property <a \n  href=\"pygeodesy.ellipses.Ellipse-class.html\" \n  class=\"link\">Ellipse</a><code>(a, c).perimeter2k_</code>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">perimeter4ac(<span class=\"summary-sig-arg\">self</span>)</span>\n        - DEPRECATED on 2026.02.09, use property <a \nhref=\"pygeodesy.ellipses.Ellipse-class.html\" \nclass=\"link\">Ellipse</a><code>(a, c).perimeter2k_</code>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"perimeter4bc\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">perimeter4bc</h3>\n  <p>DEPRECATED on 2026.02.09, use property <a \n  href=\"pygeodesy.ellipses.Ellipse-class.html\" \n  class=\"link\">Ellipse</a><code>(b, c).perimeter2k_</code>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">perimeter4bc(<span class=\"summary-sig-arg\">self</span>)</span>\n        - DEPRECATED on 2026.02.09, use property <a \nhref=\"pygeodesy.ellipses.Ellipse-class.html\" \nclass=\"link\">Ellipse</a><code>(b, c).perimeter2k_</code>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"unOrdered\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">unOrdered</h3>\n  <p>Is this triaxial <i>un-ordered</i> and <i>not spherical</i> \n  (<code>bool</code>)?</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">unOrdered(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Is this triaxial <i>un-ordered</i> and <i>not spherical</i> \n(<code>bool</code>)?\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"volume\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">volume</h3>\n  <p>Get the volume (<code>meter**3</code>), <i class=\"math\">4 / 3 * PI * a\n  * b * c</i>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">volume(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the volume (<code>meter**3</code>), <i class=\"math\">4 / 3 * PI * a * b \n* c</i>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.triaxials.conformal3-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.triaxials.conformal3</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.triaxials-module.html\">Package&nbsp;triaxials</a> ::\n        Module&nbsp;conformal3\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.triaxials.conformal3-module.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== MODULE DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Module conformal3</h1><p class=\"nomargin-top\"></p>\n<p><i>Jacobi Conformal projection</i> classes <a \n  href=\"pygeodesy.triaxials.conformal3.Conformal3-class.html\" \n  class=\"link\">Conformal3</a>, <a \n  href=\"pygeodesy.triaxials.conformal3.Conformal3B-class.html\" \n  class=\"link\">Conformal3B</a> and <a \n  href=\"pygeodesy.triaxials.conformal3.Conformal3Sphere-class.html\" \n  class=\"link\">Conformal3Sphere</a> on triaxial ellipsoids and spheres \n  using <a href=\"pygeodesy.angles.Ang-class.html\" class=\"link\">Ang</a>, <a \n  href=\"pygeodesy.angles-module.html#Deg\" class=\"link\">Deg</a>, <a \n  href=\"pygeodesy.angles-module.html#Rad\" class=\"link\">Rad</a> lat-, \n  longitude, heading and meridian (convergence) angles.</p>\n  <p>Transcoded to pure Python from <i>Karney</i>'s GeographicLib 2.7 C++ \n  class <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Triaxial_1_1Conformal3.html\"\n  target=\"_top\">Conformal3</a>.</p>\n  <p>Copyright (C) <a href=\"malto:Karney@Alum.MIT.edu\" \n  target=\"_top\">Charles Karney</a> (2024-2025) and licensed under the \n  MIT/X11 License.  For more information, see the <a \n  href=\"https://GeographicLib.SourceForge.io/\" target=\"_top\">GeographicLib \n  2.7</a> documentation.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Version:</strong>\n        26.02.15\n      </p>\n</div><!-- ==================== CLASSES ==================== -->\n<a name=\"section-Classes\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Classes</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.triaxials.bases.Conformal5Tuple-class.html\" class=\"summary-name\">Conformal5Tuple</a><br />\n      5-Tuple <code>(x, y, z, scale, llk)</code> with the easting \n        <code>x</code> and northing <code>y</code> projection, \n        <code>scale</code> or <code>NAN</code> <i>but with</i> \n        <code>z=INT0</code> <i>and kind</i> <code>llk=LLK.CONFORMAL</code> \n        <i>always</i>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.triaxials.conformal3.BetOmgGam5Tuple-class.html\" class=\"summary-name\">BetOmgGam5Tuple</a><br />\n      5-Tuple <code>(bet, omg, gam, scale, llk)</code> with \n        <i>ellipsoidal</i> lat- <code>bet</code>, longitude \n        <code>omg</code> and meridian convergence <code>gam</code> all <a \n        href=\"pygeodesy.angles.Ang-class.html\" class=\"link\">Ang</a>les, \n        <code>scale</code> <i>and kind</i> <code>llk</code> <i>set to</i> \n        <code>LLK.CONFORMAL</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.triaxials.conformal3.Conformal3-class.html\" class=\"summary-name\">Conformal3</a><br />\n      <i>Jacobi Conformal</i> projection of triaxial ellipsoid using \n        class <a href=\"pygeodesy.angles.Ang-class.html\" \n        class=\"link\">Ang</a> lat- and longitudes.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.triaxials.conformal3.Conformal3B-class.html\" class=\"summary-name\">Conformal3B</a><br />\n      <i>Jacobi Conformal projection</i> on a triaxial ellipsoid \n        specified by its middle semi-axis and shape.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.triaxials.conformal3.Conformal3Sphere-class.html\" class=\"summary-name\">Conformal3Sphere</a><br />\n      <i>Jacobi Conformal projection</i> on a <i>spherical</i> triaxial.\n    </td>\n  </tr>\n</table>\n<!-- ==================== VARIABLES ==================== -->\n<a name=\"section-Variables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Variables</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"__all__\"></a><span class=\"summary-name\">__all__</span> = <code title=\"_ALL_LAZY.triaxials_conformal3\">_ALL_LAZY.triaxials_conformal3</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"c\"></a><span class=\"summary-name\">c</span> = <code title=\"6378137*(1-1/(298257223563/ 1000000000))\">6378137*(1-1/(298257223563/ 1000000000))</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"T\"></a><span class=\"summary-name\">T</span> = <code title=\"Conformal3(6378172, 6378102, c)\">Conformal3(6378172, 6378102, c)</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"t\"></a><span class=\"summary-name\">t</span> = <code title=\"T.reverseBetOmg(* t [: 2], M= True)\">T.reverseBetOmg(* t [: 2], M= True)</code>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.triaxials.conformal3.BetOmgGam5Tuple-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.triaxials.conformal3.BetOmgGam5Tuple</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.triaxials-module.html\">Package&nbsp;triaxials</a> ::\n        <a href=\"pygeodesy.triaxials.conformal3-module.html\" onclick=\"show_private();\">Module&nbsp;conformal3</a> ::\n        Class&nbsp;BetOmgGam5Tuple\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.triaxials.conformal3.BetOmgGam5Tuple-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class BetOmgGam5Tuple</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n   object --+            \n            |            \n        tuple --+        \n                |        \n   object --+   |        \n            |   |        \n <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+        \n                |        \n<a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a> --+    \n                    |    \n    angles._Ang3Tuple --+\n                        |\n                       <strong class=\"uidshort\">BetOmgGam5Tuple</strong>\n</pre>\n\n<hr />\n<p>5-Tuple <code>(bet, omg, gam, scale, llk)</code> with \n  <i>ellipsoidal</i> lat- <code>bet</code>, longitude <code>omg</code> and \n  meridian convergence <code>gam</code> all <a \n  href=\"pygeodesy.angles.Ang-class.html\" class=\"link\">Ang</a>les, \n  <code>scale</code> <i>and kind</i> <code>llk</code> <i>set to</i> \n  <code>LLK.CONFORMAL</code>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>angles._Ang3Tuple</code></b>:\n      <code>toDegrees</code>,\n      <code>toLambertian</code>,\n      <code>toRadians</code>,\n      <code>toUnit</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__delattr__\">__delattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__getattr__\">__getattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__setattr__\">__setattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#items\">items</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iteritems\">iteritems</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iterunits\">iterunits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#reUnit\">reUnit</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toUnits\">toUnits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>tuple</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__eq__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__iter__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__rmul__</code>,\n      <code>count</code>,\n      <code>index</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">a new object with type S, a subtype of T</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.triaxials.conformal3.BetOmgGam5Tuple-class.html#__new__\" class=\"summary-sig-name\">__new__</a>(<span class=\"summary-sig-arg\">cls</span>,\n        <span class=\"summary-sig-arg\">bet</span>,\n        <span class=\"summary-sig-arg\">omg</span>,\n        <span class=\"summary-sig-arg\">gam</span>,\n        <span class=\"summary-sig-arg\">scale</span>=<span class=\"summary-sig-default\">nan</span>,\n        <span class=\"summary-sig-arg\">llk</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">unit</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**kwds</span>)</span><br />\n      New <a href=\"pygeodesy.named._NamedTuple-class.html\" \n      class=\"link\">_NamedTuple</a> initialized with \n      <b><code>positional</code></b> arguments.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__new__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__new__</span>&nbsp;(<span class=\"sig-arg\">cls</span>,\n        <span class=\"sig-arg\">bet</span>,\n        <span class=\"sig-arg\">omg</span>,\n        <span class=\"sig-arg\">gam</span>,\n        <span class=\"sig-arg\">scale</span>=<span class=\"sig-default\">nan</span>,\n        <span class=\"sig-arg\">llk</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">unit</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**kwds</span>)</span>\n    <br /><em class=\"fname\">Static Method</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.named._NamedTuple-class.html\" \n  class=\"link\">_NamedTuple</a> initialized with \n  <b><code>positional</code></b> arguments.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>arg</code></strong> - Tuple items (<code>tuple</code>, <code>list</code>, ...) or first\n          tuple item of several more in other positional arguments.</li>\n        <li><strong class=\"pname\"><code>args</code></strong> - Tuple items (<code>any</code>), all positional arguments.</li>\n        <li><strong class=\"pname\"><code>iteration_name</code></strong> - Only keyword arguments <code><b>iteration</b>=None</code> and \n          <code><b>name</b>=NN</code> are used, any other are \n          <i>silently</i> ignored.</li>\n    </ul></dd>\n    <dt>Returns: a new object with type S, a subtype of T</dt>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.LenError-class.html\">LenError</a></strong></code> - Unequal number of positional arguments and number of item \n        <code>_Names_</code> or <code>_Units_</code>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - The <code>_Names_</code> or <code>_Units_</code> attribute is not a\n        <code>tuple</code> of at least 2 items.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Item name is not a <code>str</code> or valid \n        <code>identifier</code> or starts with <code>underscore</code>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__new__\n        <dd><em class=\"note\">(inherited documentation)</em></dd>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.triaxials.conformal3.Conformal3-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.triaxials.conformal3.Conformal3</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.triaxials-module.html\">Package&nbsp;triaxials</a> ::\n        <a href=\"pygeodesy.triaxials.conformal3-module.html\" onclick=\"show_private();\">Module&nbsp;conformal3</a> ::\n        Class&nbsp;Conformal3\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.triaxials.conformal3.Conformal3-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Conformal3</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n      object --+                        \n               |                        \n    <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+                    \n                   |                    \n    <a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+                \n                       |                \n    <a href=\"pygeodesy.named._NamedEnumItem-class.html\">named._NamedEnumItem</a> --+            \n                           |            \n<a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html\">bases._UnOrderedTriaxialBase</a> --+        \n                               |        \n      <a href=\"pygeodesy.triaxials.bases._OrderedTriaxialBase-class.html\">bases._OrderedTriaxialBase</a> --+    \n                                   |    \n                <a href=\"pygeodesy.triaxials.bases._Triaxial3Base-class.html\">bases._Triaxial3Base</a> --+\n                                       |\n                                      <strong class=\"uidshort\">Conformal3</strong>\n</pre>\n\n<dl><dt>Known Subclasses:</dt>\n<dd>\n      <ul class=\"subclass-list\">\n<li><a href=\"pygeodesy.triaxials.conformal3.Conformal3B-class.html\">Conformal3B</a></li>  </ul>\n</dd></dl>\n\n<hr />\n<p><i>Jacobi Conformal</i> projection of triaxial ellipsoid using class \n  <a href=\"pygeodesy.angles.Ang-class.html\" class=\"link\">Ang</a> lat- and \n  longitudes.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"pygeodesy.triaxials.triaxial5.Triaxial-class.html\" \n        class=\"link\">Triaxial</a> for details.\n      </p>\n</div><!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.triaxials.conformal3.Conformal3-class.html#equi3Sphere\" class=\"summary-sig-name\">equi3Sphere</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">x</span>,\n        <span class=\"summary-sig-arg\">y</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Get this projection's <i>equivalent Conformal Sphere</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.triaxials.conformal3.Conformal3-class.html#forwardBetOmg\" class=\"summary-sig-name\">forwardBetOmg</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">bet</span>,\n        <span class=\"summary-sig-arg\">omg</span>,\n        <span class=\"summary-sig-arg\">M</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">**unit_name</span>)</span><br />\n      Compute the projection to this conformal triaxial.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.triaxials.conformal3.Conformal3-class.html#forwardOther\" class=\"summary-sig-name\">forwardOther</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>,\n        <span class=\"summary-sig-arg\">bet</span>,\n        <span class=\"summary-sig-arg\">omg</span>,\n        <span class=\"summary-sig-arg\">M</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">**unit_name</span>)</span><br />\n      Compute the projection to an other conformal triaxial.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.triaxials.conformal3.Conformal3-class.html#forwardSphere3\" class=\"summary-sig-name\">forwardSphere3</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">bet</span>,\n        <span class=\"summary-sig-arg\">omg</span>,\n        <span class=\"summary-sig-arg\">M</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">**unit_name</span>)</span><br />\n      Compute the projection to and direction on the equivalent \n      <i>Conformal Sphere</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.triaxials.conformal3.Conformal3-class.html#reverseBetOmg\" class=\"summary-sig-name\">reverseBetOmg</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">x_cf</span>,\n        <span class=\"summary-sig-arg\">y</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">M</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">**unit_name</span>)</span><br />\n      Reverse a projection from this conformal triaxial.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.triaxials.conformal3.Conformal3-class.html#reverseOther\" class=\"summary-sig-name\">reverseOther</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>,\n        <span class=\"summary-sig-arg\">beto</span>,\n        <span class=\"summary-sig-arg\">omgo</span>,\n        <span class=\"summary-sig-arg\">M</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">**unit_name</span>)</span><br />\n      Reverse a projection from an other conformal triaxial.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.triaxials.conformal3.Conformal3-class.html#reverseSphere\" class=\"summary-sig-name\">reverseSphere</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">x_ct</span>,\n        <span class=\"summary-sig-arg\">y</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">z</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">dir3d</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">M</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">**unit_name</span>)</span><br />\n      Reverse a projection from this <code>Conformal Sphere</code> to this \n      triaxial.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.triaxials.bases._OrderedTriaxialBase-class.html\">bases._OrderedTriaxialBase</a></code></b>:\n      <code><a href=\"pygeodesy.triaxials.bases._OrderedTriaxialBase-class.html#__init__\">__init__</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html\">bases._UnOrderedTriaxialBase</a></code></b>:\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#areaKT\">areaKT</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#area_p\">area_p</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#ellipse5\">ellipse5</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#hartzell4\">hartzell4</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#height4\">height4</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#normal3d\">normal3d</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#normal4\">normal4</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#sideOf\">sideOf</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#toBiaxial\">toBiaxial</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#toEllipsoid\">toEllipsoid</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#toStr\">toStr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedEnumItem-class.html\">named._NamedEnumItem</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedEnumItem-class.html#unregister\">unregister</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#others\">others</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#toRepr\">toRepr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.triaxials.conformal3.Conformal3-class.html#xyQ2\" class=\"summary-name\">xyQ2</a><br />\n      Get the quadrant length in x and y direction (Vector2Tuple{x, y}).\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.triaxials.bases._Triaxial3Base-class.html\">bases._Triaxial3Base</a></code></b>:\n      <code><a href=\"pygeodesy.triaxials.bases._Triaxial3Base-class.html#Lon0\">Lon0</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._Triaxial3Base-class.html#e2\">e2</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._Triaxial3Base-class.html#isBiaxial\">isBiaxial</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._Triaxial3Base-class.html#isOblate\">isOblate</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._Triaxial3Base-class.html#isProlate\">isProlate</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._Triaxial3Base-class.html#k2\">k2</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._Triaxial3Base-class.html#kp2\">kp2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.triaxials.bases._OrderedTriaxialBase-class.html\">bases._OrderedTriaxialBase</a></code></b>:\n      <code><a href=\"pygeodesy.triaxials.bases._OrderedTriaxialBase-class.html#area\">area</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._OrderedTriaxialBase-class.html#area21k\">area21k</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html\">bases._UnOrderedTriaxialBase</a></code></b>:\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#R2\">R2</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#R3\">R3</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#Rauthalic\">Rauthalic</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#Rvolumetric\">Rvolumetric</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#a\">a</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#a2\">a2</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#abc3\">abc3</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#areaRG\">areaRG</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#b\">b</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#b2\">b2</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#c\">c</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#c2\">c2</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#e2ab\">e2ab</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#e2ac\">e2ac</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#e2bc\">e2bc</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#isFlat\">isFlat</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#isOrdered\">isOrdered</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#isSpherical\">isSpherical</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#perimeter4ab\">perimeter4ab</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#perimeter4ac\">perimeter4ac</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#perimeter4bc\">perimeter4bc</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#unOrdered\">unOrdered</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#volume\">volume</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedEnumItem-class.html\">named._NamedEnumItem</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedEnumItem-class.html#name\">name</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"equi3Sphere\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">equi3Sphere</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">x</span>,\n        <span class=\"sig-arg\">y</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Get this projection's <i>equivalent Conformal Sphere</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>x</code></strong> - Quadrant x length, easting (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>y</code></strong> - Quadrant y length, northing (<code>meter</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The <code>Comformal3Sphere</code> of this projection.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Classes <a \n        href=\"pygeodesy.triaxials.conformal3.Conformal3Sphere-class.html\" \n        class=\"link\">Conformal3Sphere</a> and <a \n        href=\"pygeodesy.triaxials.triaxial5.ConformalSphere-class.html\" \n        class=\"link\">ConformalSphere</a> and <i>Karney</i>'s GeographicLib \n        2.7 C++ <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Triaxial_1_1Conformal3.html\"\n        target=\"_top\">Triaxial::Conformal3</a> for more information.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"forwardBetOmg\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">forwardBetOmg</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">bet</span>,\n        <span class=\"sig-arg\">omg</span>,\n        <span class=\"sig-arg\">M</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">**unit_name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the projection to this conformal triaxial.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>bet</code></strong> - Ellipsoidal latitude (<code>Ang</code> or \n          <b><code>unit</code></b>).</li>\n        <li><strong class=\"pname\"><code>omg</code></strong> - Ellipsoidal longitude (<code>Ang</code> or \n          <b><code>unit</code></b>)..</li>\n        <li><strong class=\"pname\"><code>M</code></strong> - If <code>True</code>, compute and include the scale \n          (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>unit_name</code></strong> - Optional <code><b>unit</b>=</code><a \n          href=\"pygeodesy.units.Radians-class.html\" \n          class=\"link\">Radians</a> and <code><b>name</b>=NN</code> \n          (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.triaxials.bases.Conformal5Tuple-class.html\" \n          class=\"link\" \n          onclick=\"show_private();\">Conformal5Tuple</a><code>(x, y, z, \n          scale, llk)</code> with <code>z = INT0</code> <i>always</i> and \n          <code>scale</code> if <code><b>M</b>=True</code>, otherwise \n          <code>scale = NAN</code>.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"forwardOther\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">forwardOther</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>,\n        <span class=\"sig-arg\">bet</span>,\n        <span class=\"sig-arg\">omg</span>,\n        <span class=\"sig-arg\">M</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">**unit_name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the projection to an other conformal triaxial.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>other</code></strong> - A conformal triaxial (<code>Conformal3</code>).</li>\n        <li><strong class=\"pname\"><code>bet</code></strong> - Ellipsoidal latitude (<code>Ang</code> or \n          <b><code>unit</code></b>).</li>\n        <li><strong class=\"pname\"><code>omg</code></strong> - Ellipsoidal longitude (<code>Ang</code> or \n          <b><code>unit</code></b>).</li>\n        <li><strong class=\"pname\"><code>M</code></strong> - If <code>True</code>, compute and include the scale \n          (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>unit_name</code></strong> - Optional <code><b>unit</b>=</code><a \n          href=\"pygeodesy.units.Radians-class.html\" \n          class=\"link\">Radians</a> and <code><b>name</b>=NN</code> \n          (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a \n          href=\"pygeodesy.triaxials.conformal3.BetOmgGam5Tuple-class.html\" \n          class=\"link\">BetOmgGam5Tuple</a><code>(bet, omg, gam, scale, \n          llk)</code> with <code>scale</code> if \n          <code><b>M</b>=True</code>, otherwise <code>scale = NAN</code>.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"forwardSphere3\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">forwardSphere3</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">bet</span>,\n        <span class=\"sig-arg\">omg</span>,\n        <span class=\"sig-arg\">M</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">**unit_name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the projection to and direction on the equivalent <i>Conformal\n  Sphere</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>bet</code></strong> - Ellipsoidal latitude (<code>Ang</code> or \n          <b><code>unit</code></b>).</li>\n        <li><strong class=\"pname\"><code>omg</code></strong> - Ellipsoidal longitude (<code>Ang</code> or \n          <b><code>unit</code></b>).</li>\n        <li><strong class=\"pname\"><code>M</code></strong> - If <code>True</code>, compute and include the scale \n          (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>unit_name</code></strong> - Optional <code><b>unit</b>=</code><a \n          href=\"pygeodesy.units.Radians-class.html\" \n          class=\"link\">Radians</a> and <code><b>name</b>=NN</code> \n          (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>3-Tuple <code>(cartesian, direction, scale)</code> with a \n          <code>cartesian</code> <a \n          href=\"pygeodesy.triaxials.triaxial3.Cartesian5Tuple-class.html\" \n          class=\"link\">Cartesian5Tuple</a><code>(x, y, z, h, llk)</code> on\n          and <code>direction</code> a <code>Vector3d</code> due North and \n          tangent to the <i>Conformal Sphere</i> and <code>scale</code> if \n          <code><b>M</b>=True</code>, otherwise <code>scale = NAN</code>.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"reverseBetOmg\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">reverseBetOmg</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">x_cf</span>,\n        <span class=\"sig-arg\">y</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">M</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">**unit_name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Reverse a projection from this conformal triaxial.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>x_cf</code></strong> - Easting (<code>scalar</code>) or a conformal projection \n          (<code>Conformal5Tuple</code>).</li>\n        <li><strong class=\"pname\"><code>y</code></strong> - Northing (<code>scalar</code>), required if \n          <b><code>x_cf</code></b> is <code>scalar</code>, ignored \n          otherwise.</li>\n        <li><strong class=\"pname\"><code>M</code></strong> - If <code>True</code>, compute and include the scale \n          (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>unit_name</code></strong> - Optional <code><b>unit</b>=</code><a \n          href=\"pygeodesy.units.Radians-class.html\" \n          class=\"link\">Radians</a> and <code><b>name</b>=NN</code> \n          (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a \n          href=\"pygeodesy.triaxials.conformal3.BetOmgGam5Tuple-class.html\" \n          class=\"link\">BetOmgGam5Tuple</a><code>(bet, omg, gam, scale, \n          llk)</code> with <code>gam</code> set to <code>None</code> and \n          <code>scale</code> only if <code><b>M</b>=True</code>, otherwise \n          <code>scale is NAN</code>.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"reverseOther\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">reverseOther</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>,\n        <span class=\"sig-arg\">beto</span>,\n        <span class=\"sig-arg\">omgo</span>,\n        <span class=\"sig-arg\">M</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">**unit_name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Reverse a projection from an other conformal triaxial.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>other</code></strong> - A conformal triaxial (<code>Conformal3</code>).</li>\n        <li><strong class=\"pname\"><code>beto</code></strong> - Ellipsoidal latitude on the <b><code>other</code></b> triaxial \n          (<code>Ang</code> or <b><code>unit</code></b>).</li>\n        <li><strong class=\"pname\"><code>omgo</code></strong> - Ellipsoidal longitude on the <b><code>other</code></b> triaxial \n          (<code>Ang</code> or <b><code>unit</code></b>).</li>\n        <li><strong class=\"pname\"><code>M</code></strong> - If <code>True</code>, compute and include the scale \n          (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>unit_name</code></strong> - Optional <code><b>unit</b>=</code><a \n          href=\"pygeodesy.units.Radians-class.html\" \n          class=\"link\">Radians</a> and <code><b>name</b>=NN</code> \n          (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a \n          href=\"pygeodesy.triaxials.conformal3.BetOmgGam5Tuple-class.html\" \n          class=\"link\">BetOmgGam5Tuple</a><code>(bet, omg, gam, scale, \n          llk)</code> with <code>scale</code> if \n          <code><b>M</b>=True</code>, otherwise <code>scale = NAN</code>.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"reverseSphere\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">reverseSphere</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">x_ct</span>,\n        <span class=\"sig-arg\">y</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">z</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">dir3d</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">M</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">**unit_name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Reverse a projection from this <code>Conformal Sphere</code> to this \n  triaxial.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>x_ct</code></strong> - X component (<code>scalar</code>) of or a cartesian on the \n          <code>Conformal Sphere</code> (<code>Cartesian5Tuple</code>).</li>\n        <li><strong class=\"pname\"><code>y</code></strong> - Y component (<code>scalar</code>), required if \n          <b><code>x_ct</code></b> is <code>scalar</code>, ignored \n          otherwise.</li>\n        <li><strong class=\"pname\"><code>z</code></strong> - Z component (<code>scalar</code>), like <b><code>y</code></b>.</li>\n        <li><strong class=\"pname\"><code>dir3d</code></strong> - The direction (<code>Vector3d</code> or <code>None</code>), \n          reference.</li>\n        <li><strong class=\"pname\"><code>M</code></strong> - If <code>True</code>, compute and include the scale \n          (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>unit_name</code></strong> - Optional <code><b>unit</b>=</code><a \n          href=\"pygeodesy.units.Radians-class.html\" \n          class=\"link\">Radians</a> and <code><b>name</b>=NN</code> \n          (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a \n          href=\"pygeodesy.triaxials.conformal3.BetOmgGam5Tuple-class.html\" \n          class=\"link\">BetOmgGam5Tuple</a><code>(bet, omg, gam, scale, \n          llk)</code> with <code>scale</code> only if \n          <code><b>M</b>=True</code>, otherwise <code>scale = NAN</code>.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"xyQ2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">xyQ2</h3>\n  <p>Get the quadrant length in x and y direction (Vector2Tuple{x, y}).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">xyQ2(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the quadrant length in x and y direction (Vector2Tuple{x, y}).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:20 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.triaxials.conformal3.Conformal3B-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.triaxials.conformal3.Conformal3B</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.triaxials-module.html\">Package&nbsp;triaxials</a> ::\n        <a href=\"pygeodesy.triaxials.conformal3-module.html\" onclick=\"show_private();\">Module&nbsp;conformal3</a> ::\n        Class&nbsp;Conformal3B\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.triaxials.conformal3.Conformal3B-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Conformal3B</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n      object --+                            \n               |                            \n    <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+                        \n                   |                        \n    <a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+                    \n                       |                    \n    <a href=\"pygeodesy.named._NamedEnumItem-class.html\">named._NamedEnumItem</a> --+                \n                           |                \n<a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html\">bases._UnOrderedTriaxialBase</a> --+            \n                               |            \n      <a href=\"pygeodesy.triaxials.bases._OrderedTriaxialBase-class.html\">bases._OrderedTriaxialBase</a> --+        \n                                   |        \n                <a href=\"pygeodesy.triaxials.bases._Triaxial3Base-class.html\">bases._Triaxial3Base</a> --+    \n                                       |    \n                              <a href=\"pygeodesy.triaxials.conformal3.Conformal3-class.html\">Conformal3</a> --+\n                                           |\n                                          <strong class=\"uidshort\">Conformal3B</strong>\n</pre>\n\n<hr />\n<p><i>Jacobi Conformal projection</i> on a triaxial ellipsoid specified \n  by its middle semi-axis and shape.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"pygeodesy.triaxials.conformal3.Conformal3-class.html\" \n        class=\"link\">Conformal3</a> for details and more information.\n      </p>\n</div><!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.triaxials.conformal3.Conformal3B-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">b</span>,\n        <span class=\"summary-sig-arg\">e2</span>=<span class=\"summary-sig-default\">0.0</span>,\n        <span class=\"summary-sig-arg\">k2</span>=<span class=\"summary-sig-default\">1.0</span>,\n        <span class=\"summary-sig-arg\">kp2</span>=<span class=\"summary-sig-default\">0.0</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      New <a href=\"pygeodesy.triaxials.conformal3.Conformal3B-class.html\" \n      class=\"link\">Conformal3B</a> triaxial.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.triaxials.conformal3.Conformal3-class.html\">Conformal3</a></code></b>:\n      <code><a href=\"pygeodesy.triaxials.conformal3.Conformal3-class.html#equi3Sphere\">equi3Sphere</a></code>,\n      <code><a href=\"pygeodesy.triaxials.conformal3.Conformal3-class.html#forwardBetOmg\">forwardBetOmg</a></code>,\n      <code><a href=\"pygeodesy.triaxials.conformal3.Conformal3-class.html#forwardOther\">forwardOther</a></code>,\n      <code><a href=\"pygeodesy.triaxials.conformal3.Conformal3-class.html#forwardSphere3\">forwardSphere3</a></code>,\n      <code><a href=\"pygeodesy.triaxials.conformal3.Conformal3-class.html#reverseBetOmg\">reverseBetOmg</a></code>,\n      <code><a href=\"pygeodesy.triaxials.conformal3.Conformal3-class.html#reverseOther\">reverseOther</a></code>,\n      <code><a href=\"pygeodesy.triaxials.conformal3.Conformal3-class.html#reverseSphere\">reverseSphere</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html\">bases._UnOrderedTriaxialBase</a></code></b>:\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#areaKT\">areaKT</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#area_p\">area_p</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#ellipse5\">ellipse5</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#hartzell4\">hartzell4</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#height4\">height4</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#normal3d\">normal3d</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#normal4\">normal4</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#sideOf\">sideOf</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#toBiaxial\">toBiaxial</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#toEllipsoid\">toEllipsoid</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#toStr\">toStr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedEnumItem-class.html\">named._NamedEnumItem</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedEnumItem-class.html#unregister\">unregister</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#others\">others</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#toRepr\">toRepr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.triaxials.conformal3.Conformal3-class.html\">Conformal3</a></code></b>:\n      <code><a href=\"pygeodesy.triaxials.conformal3.Conformal3-class.html#xyQ2\">xyQ2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.triaxials.bases._Triaxial3Base-class.html\">bases._Triaxial3Base</a></code></b>:\n      <code><a href=\"pygeodesy.triaxials.bases._Triaxial3Base-class.html#Lon0\">Lon0</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._Triaxial3Base-class.html#e2\">e2</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._Triaxial3Base-class.html#isBiaxial\">isBiaxial</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._Triaxial3Base-class.html#isOblate\">isOblate</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._Triaxial3Base-class.html#isProlate\">isProlate</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._Triaxial3Base-class.html#k2\">k2</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._Triaxial3Base-class.html#kp2\">kp2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.triaxials.bases._OrderedTriaxialBase-class.html\">bases._OrderedTriaxialBase</a></code></b>:\n      <code><a href=\"pygeodesy.triaxials.bases._OrderedTriaxialBase-class.html#area\">area</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._OrderedTriaxialBase-class.html#area21k\">area21k</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html\">bases._UnOrderedTriaxialBase</a></code></b>:\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#R2\">R2</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#R3\">R3</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#Rauthalic\">Rauthalic</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#Rvolumetric\">Rvolumetric</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#a\">a</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#a2\">a2</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#abc3\">abc3</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#areaRG\">areaRG</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#b\">b</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#b2\">b2</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#c\">c</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#c2\">c2</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#e2ab\">e2ab</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#e2ac\">e2ac</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#e2bc\">e2bc</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#isFlat\">isFlat</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#isOrdered\">isOrdered</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#isSpherical\">isSpherical</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#perimeter4ab\">perimeter4ab</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#perimeter4ac\">perimeter4ac</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#perimeter4bc\">perimeter4bc</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#unOrdered\">unOrdered</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#volume\">volume</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedEnumItem-class.html\">named._NamedEnumItem</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedEnumItem-class.html#name\">name</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">b</span>,\n        <span class=\"sig-arg\">e2</span>=<span class=\"sig-default\">0.0</span>,\n        <span class=\"sig-arg\">k2</span>=<span class=\"sig-default\">1.0</span>,\n        <span class=\"sig-arg\">kp2</span>=<span class=\"sig-default\">0.0</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.triaxials.conformal3.Conformal3B-class.html\" \n  class=\"link\">Conformal3B</a> triaxial.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>a_triaxial</code></strong> - Largest semi-axis (<code>scalar</code>, conventionally in \n          <code>meter</code>) or an other <a \n          href=\"pygeodesy.triaxials.triaxial5.Triaxial-class.html\" \n          class=\"link\">Triaxial</a> or <a \n          href=\"pygeodesy.triaxials.triaxial5.Triaxial_-class.html\" \n          class=\"link\">Triaxial_</a> instance.</li>\n        <li><strong class=\"pname\"><code>b</code></strong> - Middle semi-axis (<code>meter</code>, same units as \n          <b><code>a</code></b>), required if <code><b>a_triaxial</b> is \n          scalar</code>, ignored otherwise.</li>\n        <li><strong class=\"pname\"><code>c</code></strong> - Smallest semi-axis (<code>meter</code>, like \n          <b><code>b</code></b>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.triaxials.bases.TriaxialError-class.html\">TriaxialError</a></strong></code> - Semi-axes unordered, spherical or invalid.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        Use <code><b>b</b>=radius</code> and <code><b>e2</b>=0</code> for a\n        conformal <i>spherical</i> projection.\n      </p>\n      <p><strong>See Also:</strong>\n        <a \n        href=\"pygeodesy.triaxials.bases._OrderedTriaxialBase-class.html#__init__\"\n        class=\"link\">Conformal</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:21 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.triaxials.conformal3.Conformal3Sphere-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.triaxials.conformal3.Conformal3Sphere</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.triaxials-module.html\">Package&nbsp;triaxials</a> ::\n        <a href=\"pygeodesy.triaxials.conformal3-module.html\" onclick=\"show_private();\">Module&nbsp;conformal3</a> ::\n        Class&nbsp;Conformal3Sphere\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.triaxials.conformal3.Conformal3Sphere-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Conformal3Sphere</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n      object --+                                \n               |                                \n    <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+                            \n                   |                            \n    <a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+                        \n                       |                        \n    <a href=\"pygeodesy.named._NamedEnumItem-class.html\">named._NamedEnumItem</a> --+                    \n                           |                    \n<a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html\">bases._UnOrderedTriaxialBase</a> --+                \n                               |                \n      <a href=\"pygeodesy.triaxials.bases._OrderedTriaxialBase-class.html\">bases._OrderedTriaxialBase</a> --+            \n                                   |            \n                <a href=\"pygeodesy.triaxials.bases._Triaxial3Base-class.html\">bases._Triaxial3Base</a> --+        \n                                       |        \n                     <a href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html\">triaxial3.Triaxial3</a> --+    \n                                           |    \n                        <a href=\"pygeodesy.triaxials.triaxial3.Triaxial3B-class.html\">triaxial3.Triaxial3B</a> --+\n                                               |\n                                              <strong class=\"uidshort\">Conformal3Sphere</strong>\n</pre>\n\n<hr />\n<p><i>Jacobi Conformal projection</i> on a <i>spherical</i> triaxial.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <a \n        href=\"pygeodesy.triaxials.conformal3.Conformal3-class.html#equi3Sphere\"\n        class=\"link\">equiv3Sphere</a>.\n      </p>\n</div><!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.triaxials.conformal3.Conformal3Sphere-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">radius</span>,\n        <span class=\"summary-sig-arg\">k2</span>=<span class=\"summary-sig-default\">1.0</span>,\n        <span class=\"summary-sig-arg\">kp2</span>=<span class=\"summary-sig-default\">0.0</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      New, <a \n      href=\"pygeodesy.triaxials.conformal3.Conformal3Sphere-class.html\" \n      class=\"link\">Conformal3Sphere</a> instance.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html\">triaxial3.Triaxial3</a></code></b>:\n      <code><a href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html#forwardBetOmg\">forwardBetOmg</a></code>,\n      <code><a href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html#forwardBetOmgAlp2\">forwardBetOmgAlp2</a></code>,\n      <code><a href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html#forwardBetaOmega\">forwardBetaOmega</a></code>,\n      <code><a href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html#forwardBetaOmega_\">forwardBetaOmega_</a></code>,\n      <code><a href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html#forwardCartesian\">forwardCartesian</a></code>,\n      <code><a href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html#forwardLatLon\">forwardLatLon</a></code>,\n      <code><a href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html#forwardPhiLam\">forwardPhiLam</a></code>,\n      <code><a href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html#forwardPhiLamZet2\">forwardPhiLamZet2</a></code>,\n      <code><a href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html#normed2\">normed2</a></code>,\n      <code><a href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html#random2\">random2</a></code>,\n      <code><a href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html#reverseBetOmg\">reverseBetOmg</a></code>,\n      <code><a href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html#reverseBetOmgAlp\">reverseBetOmgAlp</a></code>,\n      <code><a href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html#reverseBetaOmega\">reverseBetaOmega</a></code>,\n      <code><a href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html#reverseCartesian\">reverseCartesian</a></code>,\n      <code><a href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html#reverseLatLon\">reverseLatLon</a></code>,\n      <code><a href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html#reversePhiLam\">reversePhiLam</a></code>,\n      <code><a href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html#reversePhiLamZet\">reversePhiLamZet</a></code>,\n      <code><a href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html#toOther\">toOther</a></code>,\n      <code><a href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html#toTriaxial5\">toTriaxial5</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html\">bases._UnOrderedTriaxialBase</a></code></b>:\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#areaKT\">areaKT</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#area_p\">area_p</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#ellipse5\">ellipse5</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#hartzell4\">hartzell4</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#height4\">height4</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#normal3d\">normal3d</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#normal4\">normal4</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#sideOf\">sideOf</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#toBiaxial\">toBiaxial</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#toEllipsoid\">toEllipsoid</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#toStr\">toStr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedEnumItem-class.html\">named._NamedEnumItem</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedEnumItem-class.html#unregister\">unregister</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#others\">others</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#toRepr\">toRepr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.triaxials.bases._Triaxial3Base-class.html\">bases._Triaxial3Base</a></code></b>:\n      <code><a href=\"pygeodesy.triaxials.bases._Triaxial3Base-class.html#Lon0\">Lon0</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._Triaxial3Base-class.html#e2\">e2</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._Triaxial3Base-class.html#isBiaxial\">isBiaxial</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._Triaxial3Base-class.html#isOblate\">isOblate</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._Triaxial3Base-class.html#isProlate\">isProlate</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._Triaxial3Base-class.html#k2\">k2</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._Triaxial3Base-class.html#kp2\">kp2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.triaxials.bases._OrderedTriaxialBase-class.html\">bases._OrderedTriaxialBase</a></code></b>:\n      <code><a href=\"pygeodesy.triaxials.bases._OrderedTriaxialBase-class.html#area\">area</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._OrderedTriaxialBase-class.html#area21k\">area21k</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html\">bases._UnOrderedTriaxialBase</a></code></b>:\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#R2\">R2</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#R3\">R3</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#Rauthalic\">Rauthalic</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#Rvolumetric\">Rvolumetric</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#a\">a</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#a2\">a2</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#abc3\">abc3</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#areaRG\">areaRG</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#b\">b</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#b2\">b2</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#c\">c</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#c2\">c2</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#e2ab\">e2ab</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#e2ac\">e2ac</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#e2bc\">e2bc</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#isFlat\">isFlat</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#isOrdered\">isOrdered</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#isSpherical\">isSpherical</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#perimeter4ab\">perimeter4ab</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#perimeter4ac\">perimeter4ac</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#perimeter4bc\">perimeter4bc</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#unOrdered\">unOrdered</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#volume\">volume</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedEnumItem-class.html\">named._NamedEnumItem</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedEnumItem-class.html#name\">name</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">radius</span>,\n        <span class=\"sig-arg\">k2</span>=<span class=\"sig-default\">1.0</span>,\n        <span class=\"sig-arg\">kp2</span>=<span class=\"sig-default\">0.0</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New, <a \n  href=\"pygeodesy.triaxials.conformal3.Conformal3Sphere-class.html\" \n  class=\"link\">Conformal3Sphere</a> instance.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>a_triaxial</code></strong> - Largest semi-axis (<code>scalar</code>, conventionally in \n          <code>meter</code>) or an other <a \n          href=\"pygeodesy.triaxials.triaxial5.Triaxial-class.html\" \n          class=\"link\">Triaxial</a> or <a \n          href=\"pygeodesy.triaxials.triaxial5.Triaxial_-class.html\" \n          class=\"link\">Triaxial_</a> instance.</li>\n        <li><strong class=\"pname\"><code>b</code></strong> - Middle semi-axis (<code>meter</code>, same units as \n          <b><code>a</code></b>), required if <code><b>a_triaxial</b> is \n          scalar</code>, ignored otherwise.</li>\n        <li><strong class=\"pname\"><code>c</code></strong> - Smallest semi-axis (<code>meter</code>, like \n          <b><code>b</code></b>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.triaxials.bases.TriaxialError-class.html\">TriaxialError</a></strong></code> - Semi-axes unordered, spherical or invalid.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html\" \n        class=\"link\">Triaxial3</a> for more information.\n      </p>\n</div></td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:21 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.triaxials.triaxial3-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.triaxials.triaxial3</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.triaxials-module.html\">Package&nbsp;triaxials</a> ::\n        Module&nbsp;triaxial3\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.triaxials.triaxial3-module.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== MODULE DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Module triaxial3</h1><p class=\"nomargin-top\"></p>\n<p><i>Ordered</i> triaxial ellipsoid classes <a \n  href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html\" \n  class=\"link\">Triaxial3</a> and <a \n  href=\"pygeodesy.triaxials.triaxial3.Triaxial3B-class.html\" \n  class=\"link\">Triaxial3B</a> for conversion between variuos \n  lat-/longitudal and cartesian coordinates on a triaxial ellipsoid using \n  <a href=\"pygeodesy.angles.Ang-class.html\" class=\"link\">Ang</a>, <a \n  href=\"pygeodesy.angles-module.html#Deg\" class=\"link\">Deg</a>, <a \n  href=\"pygeodesy.angles-module.html#Rad\" class=\"link\">Rad</a> lat-, \n  longitude and heading angles.</p>\n  <p>Transcoded to pure Python from <i>Karney</i>'s GeographicLib 2.7 C++ \n  classes <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Triaxial_1_1Ellipsoidal3.html\"\n  target=\"_top\">Ellipsoidal3</a> and <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Triaxial_1_1Cartesian3.html\"\n  target=\"_top\">Cartesian3</a>.</p>\n  <p>Copyright (C) <a href=\"mailto:Karney@Alum.MIT.edu\" \n  target=\"_top\">Charles Karney</a> (2024-2025) and licensed under the \n  MIT/X11 License.  For more information, see the <a \n  href=\"https://GeographicLib.SourceForge.io/\" target=\"_top\">GeographicLib \n  2.7</a> documentation.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Version:</strong>\n        26.02.20\n      </p>\n</div><!-- ==================== CLASSES ==================== -->\n<a name=\"section-Classes\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Classes</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.triaxials.triaxial3.BetOmgAlp5Tuple-class.html\" class=\"summary-name\">BetOmgAlp5Tuple</a><br />\n      5-Tuple <code>(bet, omg, alp, h, llk)</code> with \n        <i>ellipsoidal</i> lat- <code>bet</code>, longitude \n        <code>omg</code> and azimuth <code>alp</code>, all in <a \n        href=\"pygeodesy.angles.Ang-class.html\" class=\"link\">Ang</a>les on \n        and height <code>h</code> off the triaxial's surface and kind \n        <code>llk</code> set to <code>LLK.ELLIPSOIDAL</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.triaxials.triaxial3.Cartesian5Tuple-class.html\" class=\"summary-name\">Cartesian5Tuple</a><br />\n      5-Tuple <code>(x, y, z, h, llk)</code> with <i>cartesian</i> \n        <code>x</code>, <code>y</code> and <code>z</code> coordinates on \n        and height <code>h</code> above or below the triaxial's surface and\n        kind <code>llk</code> set to the original <code>LLK</code> or \n        <code>None</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.triaxials.triaxial3.PhiLamZet5Tuple-class.html\" class=\"summary-name\">PhiLamZet5Tuple</a><br />\n      5-Tuple <code>(phi, lam, zet, h, llk)</code> with trixial lat- lat-\n        <code>phi</code>, longitude <code>lam</code> and azimuth \n        <code>zet</code>, all in <a href=\"pygeodesy.angles.Ang-class.html\" \n        class=\"link\">Ang</a>les on and height <code>h</code> off the \n        triaxial's surface and kind <code>llk</code> set to an \n        <code>LLK</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html\" class=\"summary-name\">Triaxial3</a><br />\n      <i>Ordered</i> triaxial ellipsoid convering between cartesian and \n        lat-/longitudes using using class <a \n        href=\"pygeodesy.angles.Ang-class.html\" class=\"link\">Ang</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.triaxials.triaxial3.Triaxial3B-class.html\" class=\"summary-name\">Triaxial3B</a><br />\n      Triaxial ellipsoid specified by its middle semi-axis and shape.\n    </td>\n  </tr>\n</table>\n<!-- ==================== VARIABLES ==================== -->\n<a name=\"section-Variables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Variables</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"__all__\"></a><span class=\"summary-name\">__all__</span> = <code title=\"_ALL_LAZY.triaxials_triaxial3\">_ALL_LAZY.triaxials_triaxial3</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.triaxials.triaxial3-module.html#Triaxial3s\" class=\"summary-name\">Triaxial3s</a> = <code title=\"Triaxial3s.WGS84_3r: Triaxial3(name='WGS84_3r', a=6378172, b=6378102, \\\nc=6356752, k2=0.996726547, kp2=0.003273453, volume=1083207266220584468\\\n480, area=510065604942135.875, R2=6371007.076110449)\">Triaxial3s.WGS84_3r: Triaxial3(name='WGS84_3r', a<code class=\"variable-ellipsis\">...</code></code><br />\n      Some pre-defined <a \n      href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html\" \n      class=\"link\">Triaxial3</a>s, like <a \n      href=\"pygeodesy.triaxials.triaxial5-module.html#Triaxials\" \n      class=\"link\">Triaxials</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"Triaxial3s.Amalthea\"></a><span class=\"summary-name\">Triaxial3s.Amalthea</span><br />\n      Triaxial3(name='Amalthea', a=125000, b=73000, c=64000, \n      k2=0.106947697, kp2=0.893052303, volume=2446253479595252, \n      area=93239507787.490356445, R2=86138.05359954)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"Triaxial3s.Ariel\"></a><span class=\"summary-name\">Triaxial3s.Ariel</span><br />\n      Triaxial3(name='Ariel', a=581100, b=577900, c=577700, k2=0.05866109, \n      kp2=0.94133891, volume=812633172614203904, \n      area=4211301462766.580078125, R2=578899.578791275)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"Triaxial3s.Earth\"></a><span class=\"summary-name\">Triaxial3s.Earth</span><br />\n      Triaxial3(name='Earth', a=6378173.435, b=6378103.9, \n      c=6356754.399999999, k2=0.996748146, kp2=0.003251854, \n      volume=1083208241574987694080, area=510065911057440.9375, \n      R2=6371008.987886564)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"Triaxial3s.Enceladus\"></a><span class=\"summary-name\">Triaxial3s.Enceladus</span><br />\n      Triaxial3(name='Enceladus', a=256600, b=251400, c=248300, \n      k2=0.369647336, kp2=0.630352664, volume=67094551514082248, \n      area=798618496278.596679688, R2=252095.300756832)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"Triaxial3s.Europa\"></a><span class=\"summary-name\">Triaxial3s.Europa</span><br />\n      Triaxial3(name='Europa', a=1564130, b=1561230, c=1560930, \n      k2=0.093663002, kp2=0.906336998, volume=15966575194402123776, \n      area=30663773697323.51953125, R2=1562096.533153486)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"Triaxial3s.Io\"></a><span class=\"summary-name\">Triaxial3s.Io</span><br />\n      Triaxial3(name='Io', a=1829400, b=1819300, c=1815700, k2=0.262045618,\n      kp2=0.737954382, volume=25313121117889765376, \n      area=41691875849096.734375, R2=1821464.812747882)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"Triaxial3s.Mars\"></a><span class=\"summary-name\">Triaxial3s.Mars</span><br />\n      Triaxial3(name='Mars', a=3394600, b=3393300, c=3376300, \n      k2=0.92878339, kp2=0.07121661, volume=162907283585817247744, \n      area=144249140795107.4375, R2=3388064.624110653)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"Triaxial3s.Mimas\"></a><span class=\"summary-name\">Triaxial3s.Mimas</span><br />\n      Triaxial3(name='Mimas', a=207400, b=196800, c=190600, k2=0.359218713,\n      kp2=0.640781287, volume=32587072869017956, \n      area=493855762247.691833496, R2=198241.75359411)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"Triaxial3s.Miranda\"></a><span class=\"summary-name\">Triaxial3s.Miranda</span><br />\n      Triaxial3(name='Miranda', a=240400, b=234200, c=232900, \n      k2=0.171062751, kp2=0.828937249, volume=54926187094835456, \n      area=698880863325.757080078, R2=235828.692095158)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"Triaxial3s.Moon\"></a><span class=\"summary-name\">Triaxial3s.Moon</span><br />\n      Triaxial3(name='Moon', a=1735550, b=1735324, c=1734898, \n      k2=0.653331685, kp2=0.346668315, volume=21886698675223740416, \n      area=37838824729886.09375, R2=1735257.329122863)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"Triaxial3s.Tethys\"></a><span class=\"summary-name\">Triaxial3s.Tethys</span><br />\n      Triaxial3(name='Tethys', a=535600, b=528200, c=525800, \n      k2=0.243190549, kp2=0.756809451, volume=623086233855821440, \n      area=3528073490771.393554688, R2=529863.348254881)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"Triaxial3s.WGS84_3\"></a><span class=\"summary-name\">Triaxial3s.WGS84_3</span><br />\n      Triaxial3(name='WGS84_3', a=6378171.36, b=6378101.609999999, \n      c=6356751.84, k2=0.996738165, kp2=0.003261835, \n      volume=1083207064030173855744, area=510065541435967.5, \n      R2=6371006.679496506)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"Triaxial3s.WGS84_35\"></a><span class=\"summary-name\">Triaxial3s.WGS84_35</span><br />\n      Triaxial3(name='WGS84_35', a=6378172, b=6378102, c=6356752.314245179,\n      k2=0.996726499, kp2=0.003273501, volume=1083207319768789942272, \n      area=510065621722018.25, R2=6371007.180905545)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"Triaxial3s.WGS84_3r\"></a><span class=\"summary-name\">Triaxial3s.WGS84_3r</span><br />\n      Triaxial3(name='WGS84_3r', a=6378172, b=6378102, c=6356752, \n      k2=0.996726547, kp2=0.003273453, volume=1083207266220584468480, \n      area=510065604942135.875, R2=6371007.076110449)\n    </td>\n  </tr>\n</table>\n<!-- ==================== VARIABLES DETAILS ==================== -->\n<a name=\"section-VariablesDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Variables Details</span></td>\n</tr>\n</table>\n<a name=\"Triaxial3s\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">Triaxial3s</h3>\n  <p>Some pre-defined <a \n  href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html\" \n  class=\"link\">Triaxial3</a>s, like <a \n  href=\"pygeodesy.triaxials.triaxial5-module.html#Triaxials\" \n  class=\"link\">Triaxials</a>.</p>\n  <dl class=\"fields\">\n  </dl>\n  <dl class=\"fields\">\n    <dt>Value:</dt>\n      <dd><table><tr><td><pre class=\"variable\">\nTriaxial3s.WGS84_3r: Triaxial3(name='WGS84_3r', a=6378172, b=6378102, <span class=\"variable-linewrap\"><img src=\"crarr.png\" alt=\"\\\" /></span>\nc=6356752, k2=0.996726547, kp2=0.003273453, volume=1083207266220584468<span class=\"variable-linewrap\"><img src=\"crarr.png\" alt=\"\\\" /></span>\n480, area=510065604942135.875, R2=6371007.076110449)\n</pre></td></tr></table>\n</dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.triaxials.triaxial3.BetOmgAlp5Tuple-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.triaxials.triaxial3.BetOmgAlp5Tuple</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.triaxials-module.html\">Package&nbsp;triaxials</a> ::\n        <a href=\"pygeodesy.triaxials.triaxial3-module.html\" onclick=\"show_private();\">Module&nbsp;triaxial3</a> ::\n        Class&nbsp;BetOmgAlp5Tuple\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.triaxials.triaxial3.BetOmgAlp5Tuple-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class BetOmgAlp5Tuple</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n   object --+            \n            |            \n        tuple --+        \n                |        \n   object --+   |        \n            |   |        \n <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+        \n                |        \n<a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a> --+    \n                    |    \n    angles._Ang3Tuple --+\n                        |\n                       <strong class=\"uidshort\">BetOmgAlp5Tuple</strong>\n</pre>\n\n<hr />\n<p>5-Tuple <code>(bet, omg, alp, h, llk)</code> with <i>ellipsoidal</i> \n  lat- <code>bet</code>, longitude <code>omg</code> and azimuth \n  <code>alp</code>, all in <a href=\"pygeodesy.angles.Ang-class.html\" \n  class=\"link\">Ang</a>les on and height <code>h</code> off the triaxial's \n  surface and kind <code>llk</code> set to \n  <code>LLK.ELLIPSOIDAL</code>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>angles._Ang3Tuple</code></b>:\n      <code>toDegrees</code>,\n      <code>toLambertian</code>,\n      <code>toRadians</code>,\n      <code>toUnit</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__delattr__\">__delattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__getattr__\">__getattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__setattr__\">__setattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#items\">items</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iteritems\">iteritems</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iterunits\">iterunits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#reUnit\">reUnit</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toUnits\">toUnits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>tuple</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__eq__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__iter__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__rmul__</code>,\n      <code>count</code>,\n      <code>index</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__new__\">__new__</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:21 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.triaxials.triaxial3.Cartesian5Tuple-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.triaxials.triaxial3.Cartesian5Tuple</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.triaxials-module.html\">Package&nbsp;triaxials</a> ::\n        <a href=\"pygeodesy.triaxials.triaxial3-module.html\" onclick=\"show_private();\">Module&nbsp;triaxial3</a> ::\n        Class&nbsp;Cartesian5Tuple\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.triaxials.triaxial3.Cartesian5Tuple-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Cartesian5Tuple</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n      object --+            \n               |            \n           tuple --+        \n                   |        \n      object --+   |        \n               |   |        \n    <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+        \n                   |        \n   <a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a> --+    \n                       |    \n<a href=\"pygeodesy.namedTuples.Vector4Tuple-class.html\">namedTuples.Vector4Tuple</a> --+\n                           |\n                          <strong class=\"uidshort\">Cartesian5Tuple</strong>\n</pre>\n\n<hr />\n<p>5-Tuple <code>(x, y, z, h, llk)</code> with <i>cartesian</i> \n  <code>x</code>, <code>y</code> and <code>z</code> coordinates on and \n  height <code>h</code> above or below the triaxial's surface and kind \n  <code>llk</code> set to the original <code>LLK</code> or \n  <code>None</code>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.namedTuples.Vector4Tuple-class.html\">namedTuples.Vector4Tuple</a></code></b>:\n      <code><a href=\"pygeodesy.namedTuples.Vector4Tuple-class.html#to3Tuple\">to3Tuple</a></code>,\n      <code><a href=\"pygeodesy.namedTuples.Vector4Tuple-class.html#toCartesian\">toCartesian</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__delattr__\">__delattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__getattr__\">__getattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__setattr__\">__setattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#items\">items</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iteritems\">iteritems</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iterunits\">iterunits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#reUnit\">reUnit</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toUnits\">toUnits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>tuple</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__eq__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__iter__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__rmul__</code>,\n      <code>count</code>,\n      <code>index</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">a new object with type S, a subtype of T</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.triaxials.triaxial3.Cartesian5Tuple-class.html#__new__\" class=\"summary-sig-name\">__new__</a>(<span class=\"summary-sig-arg\">cls</span>,\n        <span class=\"summary-sig-arg\">x</span>,\n        <span class=\"summary-sig-arg\">y</span>,\n        <span class=\"summary-sig-arg\">z</span>,\n        <span class=\"summary-sig-arg\">h</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">llk</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**kwds</span>)</span><br />\n      New <a href=\"pygeodesy.named._NamedTuple-class.html\" \n      class=\"link\">_NamedTuple</a> initialized with \n      <b><code>positional</code></b> arguments.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.namedTuples.Vector4Tuple-class.html\">namedTuples.Vector4Tuple</a></code></b>:\n      <code><a href=\"pygeodesy.namedTuples.Vector4Tuple-class.html#xyz\">xyz</a></code>,\n      <code><a href=\"pygeodesy.namedTuples.Vector4Tuple-class.html#xyz3\">xyz3</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__new__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__new__</span>&nbsp;(<span class=\"sig-arg\">cls</span>,\n        <span class=\"sig-arg\">x</span>,\n        <span class=\"sig-arg\">y</span>,\n        <span class=\"sig-arg\">z</span>,\n        <span class=\"sig-arg\">h</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">llk</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**kwds</span>)</span>\n    <br /><em class=\"fname\">Static Method</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.named._NamedTuple-class.html\" \n  class=\"link\">_NamedTuple</a> initialized with \n  <b><code>positional</code></b> arguments.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>arg</code></strong> - Tuple items (<code>tuple</code>, <code>list</code>, ...) or first\n          tuple item of several more in other positional arguments.</li>\n        <li><strong class=\"pname\"><code>args</code></strong> - Tuple items (<code>any</code>), all positional arguments.</li>\n        <li><strong class=\"pname\"><code>iteration_name</code></strong> - Only keyword arguments <code><b>iteration</b>=None</code> and \n          <code><b>name</b>=NN</code> are used, any other are \n          <i>silently</i> ignored.</li>\n    </ul></dd>\n    <dt>Returns: a new object with type S, a subtype of T</dt>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.LenError-class.html\">LenError</a></strong></code> - Unequal number of positional arguments and number of item \n        <code>_Names_</code> or <code>_Units_</code>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - The <code>_Names_</code> or <code>_Units_</code> attribute is not a\n        <code>tuple</code> of at least 2 items.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Item name is not a <code>str</code> or valid \n        <code>identifier</code> or starts with <code>underscore</code>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__new__\n        <dd><em class=\"note\">(inherited documentation)</em></dd>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:21 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.triaxials.triaxial3.PhiLamZet5Tuple-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.triaxials.triaxial3.PhiLamZet5Tuple</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.triaxials-module.html\">Package&nbsp;triaxials</a> ::\n        <a href=\"pygeodesy.triaxials.triaxial3-module.html\" onclick=\"show_private();\">Module&nbsp;triaxial3</a> ::\n        Class&nbsp;PhiLamZet5Tuple\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.triaxials.triaxial3.PhiLamZet5Tuple-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class PhiLamZet5Tuple</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n   object --+            \n            |            \n        tuple --+        \n                |        \n   object --+   |        \n            |   |        \n <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+        \n                |        \n<a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a> --+    \n                    |    \n    angles._Ang3Tuple --+\n                        |\n                       <strong class=\"uidshort\">PhiLamZet5Tuple</strong>\n</pre>\n\n<hr />\n<p>5-Tuple <code>(phi, lam, zet, h, llk)</code> with trixial lat- lat- \n  <code>phi</code>, longitude <code>lam</code> and azimuth \n  <code>zet</code>, all in <a href=\"pygeodesy.angles.Ang-class.html\" \n  class=\"link\">Ang</a>les on and height <code>h</code> off the triaxial's \n  surface and kind <code>llk</code> set to an <code>LLK</code>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>angles._Ang3Tuple</code></b>:\n      <code>toDegrees</code>,\n      <code>toLambertian</code>,\n      <code>toRadians</code>,\n      <code>toUnit</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__delattr__\">__delattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__getattr__\">__getattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__setattr__\">__setattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#items\">items</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iteritems\">iteritems</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iterunits\">iterunits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#reUnit\">reUnit</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toUnits\">toUnits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>tuple</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__eq__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__iter__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__rmul__</code>,\n      <code>count</code>,\n      <code>index</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__new__\">__new__</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:21 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.triaxials.triaxial3.Triaxial3-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.triaxials.triaxial3.Triaxial3</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.triaxials-module.html\">Package&nbsp;triaxials</a> ::\n        <a href=\"pygeodesy.triaxials.triaxial3-module.html\" onclick=\"show_private();\">Module&nbsp;triaxial3</a> ::\n        Class&nbsp;Triaxial3\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Triaxial3</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n      object --+                        \n               |                        \n    <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+                    \n                   |                    \n    <a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+                \n                       |                \n    <a href=\"pygeodesy.named._NamedEnumItem-class.html\">named._NamedEnumItem</a> --+            \n                           |            \n<a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html\">bases._UnOrderedTriaxialBase</a> --+        \n                               |        \n      <a href=\"pygeodesy.triaxials.bases._OrderedTriaxialBase-class.html\">bases._OrderedTriaxialBase</a> --+    \n                                   |    \n                <a href=\"pygeodesy.triaxials.bases._Triaxial3Base-class.html\">bases._Triaxial3Base</a> --+\n                                       |\n                                      <strong class=\"uidshort\">Triaxial3</strong>\n</pre>\n\n<dl><dt>Known Subclasses:</dt>\n<dd>\n      <ul class=\"subclass-list\">\n<li><a href=\"pygeodesy.triaxials.triaxial3.Triaxial3B-class.html\">Triaxial3B</a></li>  </ul>\n</dd></dl>\n\n<hr />\n<p><i>Ordered</i> triaxial ellipsoid convering between cartesian and \n  lat-/longitudes using using class <a \n  href=\"pygeodesy.angles.Ang-class.html\" class=\"link\">Ang</a>.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"pygeodesy.triaxials.triaxial5.Triaxial-class.html\" \n        class=\"link\">Triaxial</a> for details.\n      </p>\n</div><!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html#forwardBetOmg\" class=\"summary-sig-name\">forwardBetOmg</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">bet</span>,\n        <span class=\"summary-sig-arg\">omg</span>,\n        <span class=\"summary-sig-arg\">height</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">**unit_name</span>)</span><br />\n      Convert an <i>ellipsoidal</i> lat- and longitude to a cartesian on \n      this triaxial's surface.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html#forwardBetaOmega\" class=\"summary-sig-name\">forwardBetaOmega</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">bet</span>,\n        <span class=\"summary-sig-arg\">omg</span>,\n        <span class=\"summary-sig-arg\">height</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">**unit_name</span>)</span><br />\n      Convert an <i>ellipsoidal</i> lat- and longitude to a cartesian on \n      this triaxial's surface.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"forwardBetaOmega_\"></a><span class=\"summary-sig-name\">forwardBetaOmega_</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">sbeta</span>,\n        <span class=\"summary-sig-arg\">cbeta</span>,\n        <span class=\"summary-sig-arg\">somega</span>,\n        <span class=\"summary-sig-arg\">comega</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      DEPRECATED on 2025.11.15, like \n      <code>Triaxial.forwardBetaOmega_</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html#forwardBetOmgAlp2\" class=\"summary-sig-name\">forwardBetOmgAlp2</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">bet</span>,\n        <span class=\"summary-sig-arg\">omg</span>,\n        <span class=\"summary-sig-arg\">alp</span>,\n        <span class=\"summary-sig-arg\">height</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">**unit_name</span>)</span><br />\n      Convert an <i>ellipsoidal</i> lat-, longitude and heading to a \n      cartesian and a direction on this triaxial's surface.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html#forwardCartesian\" class=\"summary-sig-name\">forwardCartesian</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">x_ct</span>,\n        <span class=\"summary-sig-arg\">y</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">z</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">normal</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">**eps_llk_name</span>)</span><br />\n      Project any cartesian <i>onto</i> this triaxial's surface.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html#forwardLatLon\" class=\"summary-sig-name\">forwardLatLon</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lat</span>,\n        <span class=\"summary-sig-arg\">lon</span>,\n        <span class=\"summary-sig-arg\">height</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">llk</span>=<span class=\"summary-sig-default\">'ELLIPSOIDAL'</span>,\n        <span class=\"summary-sig-arg\">**unit_name</span>)</span><br />\n      Convert any lat-/longitude kind to a cartesian on this triaxial's \n      surface.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html#forwardPhiLam\" class=\"summary-sig-name\">forwardPhiLam</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">phi</span>,\n        <span class=\"summary-sig-arg\">lam</span>,\n        <span class=\"summary-sig-arg\">height</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">llk</span>=<span class=\"summary-sig-default\">'GEODETIC'</span>,\n        <span class=\"summary-sig-arg\">**unit_name</span>)</span><br />\n      Convert any lat-/longitude kind to a cartesian on this triaxial's \n      surface.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html#forwardPhiLamZet2\" class=\"summary-sig-name\">forwardPhiLamZet2</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">phi</span>,\n        <span class=\"summary-sig-arg\">lam</span>,\n        <span class=\"summary-sig-arg\">zet</span>,\n        <span class=\"summary-sig-arg\">height</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">llk</span>=<span class=\"summary-sig-default\">'GEODETIC'</span>,\n        <span class=\"summary-sig-arg\">**unit_name</span>)</span><br />\n      Convert a lat-, longitude and heading to a cartesian and a direction \n      on this trixial's surface.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html#normed2\" class=\"summary-sig-name\">normed2</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">x_ct</span>,\n        <span class=\"summary-sig-arg\">y</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">z</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">dir3d</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**llk_name</span>)</span><br />\n      Scale a cartesian and direction to this triaxial's surface.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html#reverseBetOmg\" class=\"summary-sig-name\">reverseBetOmg</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">x_ct</span>,\n        <span class=\"summary-sig-arg\">y</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">z</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**llk_name</span>)</span><br />\n      Convert a cartesian <i>on this triaxial's surface</i> to an \n      <i>ellipsoidal</i> lat-/longitude.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html#reverseBetaOmega\" class=\"summary-sig-name\">reverseBetaOmega</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">x_ct</span>,\n        <span class=\"summary-sig-arg\">y</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">z</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**llk_name</span>)</span><br />\n      Convert a cartesian <i>on this triaxial's surface</i> to an \n      <i>ellipsoidal</i> lat-/longitude.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html#reverseBetOmgAlp\" class=\"summary-sig-name\">reverseBetOmgAlp</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">x_ct</span>,\n        <span class=\"summary-sig-arg\">y</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">z</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">dir3d</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**llk_name</span>)</span><br />\n      Convert a cartesian and direction <i>on this triaxial's surface</i> \n      to an <i>ellipsoidal</i> lat-, longitude and heading.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html#reverseCartesian\" class=\"summary-sig-name\">reverseCartesian</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">x_ct</span>,\n        <span class=\"summary-sig-arg\">y</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">z</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">height</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">normal</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">**llk_name</span>)</span><br />\n      &quot;Unproject&quot; a cartesian <i>off</i> this triaxial's surface.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html#reverseLatLon\" class=\"summary-sig-name\">reverseLatLon</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">x_ct</span>,\n        <span class=\"summary-sig-arg\">y</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">z</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**llk_name</span>)</span><br />\n      Convert a cartesian <i>on this triaxial's surface</i> to a \n      lat-/longitude.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html#reversePhiLam\" class=\"summary-sig-name\">reversePhiLam</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">x_ct</span>,\n        <span class=\"summary-sig-arg\">y</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">z</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**llk_name</span>)</span><br />\n      Convert a cartesian <i>on this triaxial's surface</i> to \n      lat-/longitude.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html#reversePhiLamZet\" class=\"summary-sig-name\">reversePhiLamZet</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">x_ct</span>,\n        <span class=\"summary-sig-arg\">y</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">z</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">dir3d</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**llk_name</span>)</span><br />\n      Convert a cartesian and direction to lat-, longitude and azimuth.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html#random2\" class=\"summary-sig-name\">random2</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">llk</span>=<span class=\"summary-sig-default\">'ELLIPSOIDAL'</span>,\n        <span class=\"summary-sig-arg\">both</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">_rand</span>=<span class=\"summary-sig-default\">&lt;built-in method random of Random object at 0x7fc1e686e220&gt;</span>)</span><br />\n      Return a random cartesian with/out direction on this triaxial's \n      surface.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html#toOther\" class=\"summary-sig-name\">toOther</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lat</span>,\n        <span class=\"summary-sig-arg\">lon</span>,\n        <span class=\"summary-sig-arg\">llk1</span>=<span class=\"summary-sig-default\">'GEODETIC'</span>,\n        <span class=\"summary-sig-arg\">llk2</span>=<span class=\"summary-sig-default\">'GEODETIC'</span>,\n        <span class=\"summary-sig-arg\">**unit_name</span>)</span><br />\n      Convert one lat-/longitude kind to an other.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html#toTriaxial5\" class=\"summary-sig-name\">toTriaxial5</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">x_ct</span>,\n        <span class=\"summary-sig-arg\">y</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">z</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**triaxial_h_llk_name</span>)</span><br />\n      Find the closest cartesian on this or on another triaxial's surface.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.triaxials.bases._OrderedTriaxialBase-class.html\">bases._OrderedTriaxialBase</a></code></b>:\n      <code><a href=\"pygeodesy.triaxials.bases._OrderedTriaxialBase-class.html#__init__\">__init__</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html\">bases._UnOrderedTriaxialBase</a></code></b>:\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#areaKT\">areaKT</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#area_p\">area_p</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#ellipse5\">ellipse5</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#hartzell4\">hartzell4</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#height4\">height4</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#normal3d\">normal3d</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#normal4\">normal4</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#sideOf\">sideOf</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#toBiaxial\">toBiaxial</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#toEllipsoid\">toEllipsoid</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#toStr\">toStr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedEnumItem-class.html\">named._NamedEnumItem</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedEnumItem-class.html#unregister\">unregister</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#others\">others</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#toRepr\">toRepr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.triaxials.bases._Triaxial3Base-class.html\">bases._Triaxial3Base</a></code></b>:\n      <code><a href=\"pygeodesy.triaxials.bases._Triaxial3Base-class.html#Lon0\">Lon0</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._Triaxial3Base-class.html#e2\">e2</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._Triaxial3Base-class.html#isBiaxial\">isBiaxial</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._Triaxial3Base-class.html#isOblate\">isOblate</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._Triaxial3Base-class.html#isProlate\">isProlate</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._Triaxial3Base-class.html#k2\">k2</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._Triaxial3Base-class.html#kp2\">kp2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.triaxials.bases._OrderedTriaxialBase-class.html\">bases._OrderedTriaxialBase</a></code></b>:\n      <code><a href=\"pygeodesy.triaxials.bases._OrderedTriaxialBase-class.html#area\">area</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._OrderedTriaxialBase-class.html#area21k\">area21k</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html\">bases._UnOrderedTriaxialBase</a></code></b>:\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#R2\">R2</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#R3\">R3</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#Rauthalic\">Rauthalic</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#Rvolumetric\">Rvolumetric</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#a\">a</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#a2\">a2</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#abc3\">abc3</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#areaRG\">areaRG</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#b\">b</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#b2\">b2</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#c\">c</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#c2\">c2</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#e2ab\">e2ab</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#e2ac\">e2ac</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#e2bc\">e2bc</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#isFlat\">isFlat</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#isOrdered\">isOrdered</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#isSpherical\">isSpherical</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#perimeter4ab\">perimeter4ab</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#perimeter4ac\">perimeter4ac</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#perimeter4bc\">perimeter4bc</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#unOrdered\">unOrdered</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#volume\">volume</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedEnumItem-class.html\">named._NamedEnumItem</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedEnumItem-class.html#name\">name</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"forwardBetOmg\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">forwardBetOmg</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">bet</span>,\n        <span class=\"sig-arg\">omg</span>,\n        <span class=\"sig-arg\">height</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">**unit_name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert an <i>ellipsoidal</i> lat- and longitude to a cartesian on \n  this triaxial's surface.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>bet</code></strong> - Ellipsoidal latitude (<code>Ang</code> or \n          <b><code>unit</code></b>).</li>\n        <li><strong class=\"pname\"><code>omg</code></strong> - Ellipsoidal longitude (<code>Ang</code> or \n          <b><code>unit</code></b>).</li>\n        <li><strong class=\"pname\"><code>height</code></strong> - Height above or below this triaxial's surface \n          (<code>meter</code>, same units as this triaxial's semi-axes).</li>\n        <li><strong class=\"pname\"><code>unit_name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>) and \n          scalar <code><b>unit</b>=</code><a \n          href=\"pygeodesy.units.Radians-class.html\" \n          class=\"link\">Radians</a> (or <a \n          href=\"pygeodesy.units.Degrees-class.html\" \n          class=\"link\">Degrees</a>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a \n          href=\"pygeodesy.triaxials.triaxial3.Cartesian5Tuple-class.html\" \n          class=\"link\">Cartesian5Tuple</a><code>(x, y, z, h, llk)</code> \n          with <code>h=<b>height</b></code> and kind \n          <code>llk=LLK.ELLIPSOIDAL</code>.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <a \n        href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html#reverseBetOmg\"\n        class=\"link\">Triaxial3.reverseBetOmg</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"forwardBetaOmega\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">forwardBetaOmega</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">bet</span>,\n        <span class=\"sig-arg\">omg</span>,\n        <span class=\"sig-arg\">height</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">**unit_name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert an <i>ellipsoidal</i> lat- and longitude to a cartesian on \n  this triaxial's surface.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>bet</code></strong> - Ellipsoidal latitude (<code>Ang</code> or \n          <b><code>unit</code></b>).</li>\n        <li><strong class=\"pname\"><code>omg</code></strong> - Ellipsoidal longitude (<code>Ang</code> or \n          <b><code>unit</code></b>).</li>\n        <li><strong class=\"pname\"><code>height</code></strong> - Height above or below this triaxial's surface \n          (<code>meter</code>, same units as this triaxial's semi-axes).</li>\n        <li><strong class=\"pname\"><code>unit_name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>) and \n          scalar <code><b>unit</b>=</code><a \n          href=\"pygeodesy.units.Radians-class.html\" \n          class=\"link\">Radians</a> (or <a \n          href=\"pygeodesy.units.Degrees-class.html\" \n          class=\"link\">Degrees</a>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a \n          href=\"pygeodesy.triaxials.triaxial3.Cartesian5Tuple-class.html\" \n          class=\"link\">Cartesian5Tuple</a><code>(x, y, z, h, llk)</code> \n          with <code>h=<b>height</b></code> and kind \n          <code>llk=LLK.ELLIPSOIDAL</code>.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <a \n        href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html#reverseBetOmg\"\n        class=\"link\">Triaxial3.reverseBetOmg</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"forwardBetOmgAlp2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">forwardBetOmgAlp2</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">bet</span>,\n        <span class=\"sig-arg\">omg</span>,\n        <span class=\"sig-arg\">alp</span>,\n        <span class=\"sig-arg\">height</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">**unit_name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert an <i>ellipsoidal</i> lat-, longitude and heading to a \n  cartesian and a direction on this triaxial's surface.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>bet</code></strong> - Ellipsoidal latitude (<code>Ang</code> or \n          <b><code>unit</code></b>).</li>\n        <li><strong class=\"pname\"><code>omg</code></strong> - Ellipsoidal longitude (<code>Ang</code> or \n          <b><code>unit</code></b>).</li>\n        <li><strong class=\"pname\"><code>alp</code></strong> - Azimuth of the heading (<code>Ang</code>, \n          <b><code>unit</code></b> or <code>None</code>).</li>\n        <li><strong class=\"pname\"><code>height</code></strong> - Height above or below this triaxial's surface \n          (<code>meter</code>, same units as this triaxial's semi-axes).</li>\n        <li><strong class=\"pname\"><code>unit_name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>), scalar \n          <code><b>unit</b>=</code><a \n          href=\"pygeodesy.units.Radians-class.html\" \n          class=\"link\">Radians</a> (or <a \n          href=\"pygeodesy.units.Degrees-class.html\" \n          class=\"link\">Degrees</a>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>2-Tuple <code>(cartesian, direction)</code> with \n          <code>cartesian</code> a <a \n          href=\"pygeodesy.triaxials.triaxial3.Cartesian5Tuple-class.html\" \n          class=\"link\">Cartesian5Tuple</a><code>(x, y, z, h, llk)</code> \n          with <code>h=<b>height</b></code>, kind \n          <code>llk=LLK.ELLIPSOIDAL</code> and <code>direction</code> a \n          <code>Vector3d</code> tangent to this triaxial's surface or \n          <code>None</code>.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <a \n        href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html#reverseBetOmgAlp\"\n        class=\"link\">Triaxial3.reverseBetOmgAlp</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"forwardCartesian\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">forwardCartesian</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">x_ct</span>,\n        <span class=\"sig-arg\">y</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">z</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">normal</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">**eps_llk_name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Project any cartesian <i>onto</i> this triaxial's surface.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>x_ct</code></strong> - X component (<code>scalar</code>) or a cartesian (<a \n          href=\"pygeodesy.triaxials.triaxial3.Cartesian5Tuple-class.html\" \n          class=\"link\">Cartesian5Tuple</a> or any <code>Cartesian</code>, \n          <a href=\"pygeodesy.ecef.Ecef9Tuple-class.html\" \n          class=\"link\">Ecef9Tuple</a>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <a \n          href=\"pygeodesy.namedTuples.Vector3Tuple-class.html\" \n          class=\"link\">Vector3Tuple</a> or <a \n          href=\"pygeodesy.namedTuples.Vector4Tuple-class.html\" \n          class=\"link\">Vector4Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>y</code></strong> - Y component (<code>scalar</code>), required if \n          <b><code>x_xyz</code></b> is <code>scalar</code>, ignored \n          otherwise.</li>\n        <li><strong class=\"pname\"><code>z</code></strong> - Z component (<code>scalar</code>), like <b><code>y</code></b>.</li>\n        <li><strong class=\"pname\"><code>normal</code></strong> - If <code>True</code>, the projection is \n          <code>perpendicular</code> to the surface, otherwise \n          <code>radial</code> to the center of this triaxial \n          (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>eps_llk_name</code></strong> - Root finder tolerance <code><b>eps</b>=EPS</code>, kind \n          <code><b>llk</b>=None</code> overriding \n          <code><b>x_ct</b>.llk</code> and optional \n          <code><b>name</b>=&quot;height4&quot;</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a \n          href=\"pygeodesy.triaxials.triaxial3.Cartesian5Tuple-class.html\" \n          class=\"link\">Cartesian5Tuple</a><code>(x, y, z, h, llk)</code>.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <a \n        href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html#reverseCartesian\"\n        class=\"link\">Triaxial3.reverseCartesian</a> to reverse the \n        projection and function <a \n        href=\"pygeodesy.triaxials.triaxial5-module.html#height4\" \n        class=\"link\">height4</a> for more details.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"forwardLatLon\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">forwardLatLon</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lat</span>,\n        <span class=\"sig-arg\">lon</span>,\n        <span class=\"sig-arg\">height</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">llk</span>=<span class=\"sig-default\">'ELLIPSOIDAL'</span>,\n        <span class=\"sig-arg\">**unit_name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert any lat-/longitude kind to a cartesian on this triaxial's \n  surface.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat</code></strong> - Latitude (<code>Ang</code> or <b><code>unit</code></b>).</li>\n        <li><strong class=\"pname\"><code>lon</code></strong> - Longitude (<code>Ang</code> or <b><code>unit</code></b>).</li>\n        <li><strong class=\"pname\"><code>height</code></strong> - Height above or below this triaxial's surface \n          (<code>meter</code>, same units as this triaxial's semi-axes).</li>\n        <li><strong class=\"pname\"><code>llk</code></strong> - The kind (an <a href=\"pygeodesy.triaxials.bases.LLK-class.html\" \n          class=\"link\">LLK</a>).</li>\n        <li><strong class=\"pname\"><code>unit_name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>) and \n          scalar <code><b>unit</b>=</code><a \n          href=\"pygeodesy.units.Degrees-class.html\" \n          class=\"link\">Degrees</a> (or <a \n          href=\"pygeodesy.units.Radians-class.html\" \n          class=\"link\">Radians</a>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a \n          href=\"pygeodesy.triaxials.triaxial3.Cartesian5Tuple-class.html\" \n          class=\"link\">Cartesian5Tuple</a><code>(x, y, z, h, llk)</code> \n          with height <code>h=<b>height</b></code> and kind \n          <code>llk=<b>llk</b></code>.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <a \n        href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html#reverseLatLon\"\n        class=\"link\">Triaxial3.reverseLatLon</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"forwardPhiLam\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">forwardPhiLam</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">phi</span>,\n        <span class=\"sig-arg\">lam</span>,\n        <span class=\"sig-arg\">height</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">llk</span>=<span class=\"sig-default\">'GEODETIC'</span>,\n        <span class=\"sig-arg\">**unit_name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert any lat-/longitude kind to a cartesian on this triaxial's \n  surface.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>phi</code></strong> - Latitude (<code>Ang</code> or <b><code>unit</code></b>).</li>\n        <li><strong class=\"pname\"><code>lam</code></strong> - Longitude (<code>Ang</code> or <b><code>unit</code></b>).</li>\n        <li><strong class=\"pname\"><code>height</code></strong> - Height above or below this triaxial's surface \n          (<code>meter</code>, same units as this triaxial's semi-axes).</li>\n        <li><strong class=\"pname\"><code>llk</code></strong> - The kind (an <a href=\"pygeodesy.triaxials.bases.LLK-class.html\" \n          class=\"link\">LLK</a>).</li>\n        <li><strong class=\"pname\"><code>unit_name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>) and \n          scalar <code><b>unit</b>=</code><a \n          href=\"pygeodesy.units.Radians-class.html\" \n          class=\"link\">Radians</a> (or <a \n          href=\"pygeodesy.units.Degrees-class.html\" \n          class=\"link\">Degrees</a>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a \n          href=\"pygeodesy.triaxials.triaxial3.Cartesian5Tuple-class.html\" \n          class=\"link\">Cartesian5Tuple</a><code>(x, y, z, h, llk)</code> \n          with height <code>h=0</code> and kind \n          <code>llk=<b>llk</b></code>.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        Longitude <code><b>lam</b> -= Lon0</code> if <code><b>llk</b> is \n        LLK.GEODETIC_LON0</code>.\n      </p>\n      <p><strong>See Also:</strong>\n        Method <a \n        href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html#reverseLatLon\"\n        class=\"link\">Triaxial3.reverseLatLon</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"forwardPhiLamZet2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">forwardPhiLamZet2</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">phi</span>,\n        <span class=\"sig-arg\">lam</span>,\n        <span class=\"sig-arg\">zet</span>,\n        <span class=\"sig-arg\">height</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">llk</span>=<span class=\"sig-default\">'GEODETIC'</span>,\n        <span class=\"sig-arg\">**unit_name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert a lat-, longitude and heading to a cartesian and a direction \n  on this trixial's surface.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>phi</code></strong> - Latitude (<code>Ang</code> or <b><code>unit</code></b>).</li>\n        <li><strong class=\"pname\"><code>lam</code></strong> - Longitude (<code>Ang</code> or <b><code>unit</code></b>).</li>\n        <li><strong class=\"pname\"><code>zet</code></strong> - Azimuth of the heading (<code>Ang</code>, \n          <b><code>unit</code></b> or <code>None</code>).</li>\n        <li><strong class=\"pname\"><code>height</code></strong> - Height above or below this triaxial's surface \n          (<code>meter</code>, same units as this triaxial's semi-axes).</li>\n        <li><strong class=\"pname\"><code>llk</code></strong> - The kind (an <a href=\"pygeodesy.triaxials.bases.LLK-class.html\" \n          class=\"link\">LLK</a>).</li>\n        <li><strong class=\"pname\"><code>unit_name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>) and \n          scalar <code><b>unit</b>=</code><a \n          href=\"pygeodesy.units.Radians-class.html\" \n          class=\"link\">Radians</a> (or <a \n          href=\"pygeodesy.units.Degrees-class.html\" \n          class=\"link\">Degrees</a>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>2-Tuple <code>(cartesian, direction)</code> with the \n          <code>cartesian</code> a <a \n          href=\"pygeodesy.triaxials.triaxial3.Cartesian5Tuple-class.html\" \n          class=\"link\">Cartesian5Tuple</a><code>(x, y, z, h, llk)</code> \n          with height <code>h=0</code>, kind <code>llk=<b>llk</b></code> \n          and <code>direction</code>, a <code>Vector3d</code> on and \n          tangent to this triaxial's surface.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        Longitude <code><b>lam</b> -= Lon0</code> if <code><b>llk</b> is \n        LLK.GEODETIC_LON0</code>.\n      </p>\n      <p><strong>See Also:</strong>\n        Method <a \n        href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html#reversePhiLamZet\"\n        class=\"link\">Triaxial3.reversePhiLamZet</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"normed2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">normed2</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">x_ct</span>,\n        <span class=\"sig-arg\">y</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">z</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">dir3d</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**llk_name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Scale a cartesian and direction to this triaxial's surface.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>x_ct</code></strong> - X component (<code>scalar</code>) or a cartesian (<a \n          href=\"pygeodesy.triaxials.triaxial3.Cartesian5Tuple-class.html\" \n          class=\"link\">Cartesian5Tuple</a> or any <code>Cartesian</code>, \n          <a href=\"pygeodesy.ecef.Ecef9Tuple-class.html\" \n          class=\"link\">Ecef9Tuple</a>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <a \n          href=\"pygeodesy.namedTuples.Vector3Tuple-class.html\" \n          class=\"link\">Vector3Tuple</a> or <a \n          href=\"pygeodesy.namedTuples.Vector4Tuple-class.html\" \n          class=\"link\">Vector4Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>y</code></strong> - Y component (<code>scalar</code>), required if \n          <b><code>x_xyz</code></b> is <code>scalar</code>, ignored \n          otherwise.</li>\n        <li><strong class=\"pname\"><code>z</code></strong> - Z component (<code>scalar</code>), like <b><code>y</code></b>.</li>\n        <li><strong class=\"pname\"><code>dir3d</code></strong> - The direction (<code>Vector3d</code> or <code>None</code>).</li>\n        <li><strong class=\"pname\"><code>llk_name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>) and kind \n          <code><b>llk</b>=None</code> overriding \n          <code><b>x_ct</b>.llk</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>2-Tuple <code>(cartesian, direction)</code> with the \n          <code>cartesian</code> a <a \n          href=\"pygeodesy.triaxials.triaxial3.Cartesian5Tuple-class.html\" \n          class=\"link\">Cartesian5Tuple</a><code>(x, y, z, h, llk)</code> \n          and <code>direction</code>, a <code>Vector3d</code> tangent to \n          this triaxial's surface or <code>None</code> iff \n          <code><b>dir3d</b> is None</code>.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"reverseBetOmg\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">reverseBetOmg</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">x_ct</span>,\n        <span class=\"sig-arg\">y</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">z</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**llk_name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert a cartesian <i>on this triaxial's surface</i> to an \n  <i>ellipsoidal</i> lat-/longitude.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>x_ct</code></strong> - X component (<code>scalar</code>) or a cartesian (<a \n          href=\"pygeodesy.triaxials.triaxial3.Cartesian5Tuple-class.html\" \n          class=\"link\">Cartesian5Tuple</a> or any <code>Cartesian</code>, \n          <a href=\"pygeodesy.ecef.Ecef9Tuple-class.html\" \n          class=\"link\">Ecef9Tuple</a>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <a \n          href=\"pygeodesy.namedTuples.Vector3Tuple-class.html\" \n          class=\"link\">Vector3Tuple</a> or <a \n          href=\"pygeodesy.namedTuples.Vector4Tuple-class.html\" \n          class=\"link\">Vector4Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>y</code></strong> - Y component (<code>scalar</code>), required if \n          <b><code>x_xyz</code></b> is <code>scalar</code>, ignored \n          otherwise.</li>\n        <li><strong class=\"pname\"><code>z</code></strong> - Z component (<code>scalar</code>), like <b><code>y</code></b>.</li>\n        <li><strong class=\"pname\"><code>llk_name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>) and kind \n          <code><b>llk</b>=None</code> overriding \n          <code><b>x_ct</b>.llk</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a \n          href=\"pygeodesy.triaxials.triaxial3.BetOmgAlp5Tuple-class.html\" \n          class=\"link\">BetOmgAlp5Tuple</a><code>(bet, omg, alp, h, \n          llk)</code> with <code>alp=None</code> and \n          <code>llk=LLK.ELLIPSOIDAL</code>.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"reverseBetaOmega\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">reverseBetaOmega</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">x_ct</span>,\n        <span class=\"sig-arg\">y</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">z</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**llk_name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert a cartesian <i>on this triaxial's surface</i> to an \n  <i>ellipsoidal</i> lat-/longitude.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>x_ct</code></strong> - X component (<code>scalar</code>) or a cartesian (<a \n          href=\"pygeodesy.triaxials.triaxial3.Cartesian5Tuple-class.html\" \n          class=\"link\">Cartesian5Tuple</a> or any <code>Cartesian</code>, \n          <a href=\"pygeodesy.ecef.Ecef9Tuple-class.html\" \n          class=\"link\">Ecef9Tuple</a>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <a \n          href=\"pygeodesy.namedTuples.Vector3Tuple-class.html\" \n          class=\"link\">Vector3Tuple</a> or <a \n          href=\"pygeodesy.namedTuples.Vector4Tuple-class.html\" \n          class=\"link\">Vector4Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>y</code></strong> - Y component (<code>scalar</code>), required if \n          <b><code>x_xyz</code></b> is <code>scalar</code>, ignored \n          otherwise.</li>\n        <li><strong class=\"pname\"><code>z</code></strong> - Z component (<code>scalar</code>), like <b><code>y</code></b>.</li>\n        <li><strong class=\"pname\"><code>llk_name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>) and kind \n          <code><b>llk</b>=None</code> overriding \n          <code><b>x_ct</b>.llk</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a \n          href=\"pygeodesy.triaxials.triaxial3.BetOmgAlp5Tuple-class.html\" \n          class=\"link\">BetOmgAlp5Tuple</a><code>(bet, omg, alp, h, \n          llk)</code> with <code>alp=None</code> and \n          <code>llk=LLK.ELLIPSOIDAL</code>.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"reverseBetOmgAlp\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">reverseBetOmgAlp</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">x_ct</span>,\n        <span class=\"sig-arg\">y</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">z</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">dir3d</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**llk_name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert a cartesian and direction <i>on this triaxial's surface</i> to\n  an <i>ellipsoidal</i> lat-, longitude and heading.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>x_ct</code></strong> - X component (<code>scalar</code>) or a cartesian (<a \n          href=\"pygeodesy.triaxials.triaxial3.Cartesian5Tuple-class.html\" \n          class=\"link\">Cartesian5Tuple</a> or any <code>Cartesian</code>, \n          <a href=\"pygeodesy.ecef.Ecef9Tuple-class.html\" \n          class=\"link\">Ecef9Tuple</a>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <a \n          href=\"pygeodesy.namedTuples.Vector3Tuple-class.html\" \n          class=\"link\">Vector3Tuple</a> or <a \n          href=\"pygeodesy.namedTuples.Vector4Tuple-class.html\" \n          class=\"link\">Vector4Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>y</code></strong> - Y component (<code>scalar</code>), required if \n          <b><code>x_ct</code></b> is <code>scalar</code>, ignored \n          otherwise.</li>\n        <li><strong class=\"pname\"><code>z</code></strong> - Z component (<code>scalar</code>), like <b><code>y</code></b>.</li>\n        <li><strong class=\"pname\"><code>dir3d</code></strong> - The direction (<code>Vector3d</code> or <code>None</code>).</li>\n        <li><strong class=\"pname\"><code>llk_name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>) and kind \n          <code><b>llk</b>=None</code> overriding \n          <code><b>x_ct</b>.llk</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a \n          href=\"pygeodesy.triaxials.triaxial3.BetOmgAlp5Tuple-class.html\" \n          class=\"link\">BetOmgAlp5Tuple</a><code>(bet, omg, alp, h, \n          llk)</code> with <code>alp=None</code> if <code><b>dir3d</b> is \n          None</code> and <code>llk=LLK.ELLIPSOIDAL</code>.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"reverseCartesian\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">reverseCartesian</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">x_ct</span>,\n        <span class=\"sig-arg\">y</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">z</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">height</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">normal</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">**llk_name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>&quot;Unproject&quot; a cartesian <i>off</i> this triaxial's \n  surface.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>x_ct</code></strong> - X component (<code>scalar</code>) or a cartesian (<a \n          href=\"pygeodesy.triaxials.triaxial3.Cartesian5Tuple-class.html\" \n          class=\"link\">Cartesian5Tuple</a> or any <code>Cartesian</code>, \n          <a href=\"pygeodesy.ecef.Ecef9Tuple-class.html\" \n          class=\"link\">Ecef9Tuple</a>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <a \n          href=\"pygeodesy.namedTuples.Vector3Tuple-class.html\" \n          class=\"link\">Vector3Tuple</a> or <a \n          href=\"pygeodesy.namedTuples.Vector4Tuple-class.html\" \n          class=\"link\">Vector4Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>y</code></strong> - Y component (<code>scalar</code>), required if \n          <b><code>x_xyz</code></b> is <code>scalar</code>, ignored \n          otherwise.</li>\n        <li><strong class=\"pname\"><code>z</code></strong> - Z component (<code>scalar</code>), like <b><code>y</code></b>.</li>\n        <li><strong class=\"pname\"><code>height</code></strong> - Height above or below this triaxial's surface \n          (<code>meter</code>, same units as this triaxial's semi-axes).</li>\n        <li><strong class=\"pname\"><code>normal</code></strong> - If <code>True</code>, <b><code>height</code></b> is \n          <code>perpendicular</code> to the surface, otherwise \n          <code>radial</code> to the center of this triaxial \n          (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>llk_name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>) and kind \n          <code><b>llk</b></code> overriding <code><b>x_ct</b>.llk</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><a \n          href=\"pygeodesy.triaxials.triaxial3.Cartesian5Tuple-class.html\" \n          class=\"link\">Cartesian5Tuple</a><code>(x, y, z, h, llk)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TrialError</strong></code> - Cartesian <b><code>x_ct</code></b> or <code>(x, y, z)</code> not on\n        this triaxial's surface.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Methods <a \n        href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html#forwardCartesian\"\n        class=\"link\">Triaxial3.forwardCartesian</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"reverseLatLon\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">reverseLatLon</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">x_ct</span>,\n        <span class=\"sig-arg\">y</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">z</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**llk_name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert a cartesian <i>on this triaxial's surface</i> to a \n  lat-/longitude.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>x_ct</code></strong> - X component (<code>scalar</code>) or a cartesian (<a \n          href=\"pygeodesy.triaxials.triaxial3.Cartesian5Tuple-class.html\" \n          class=\"link\">Cartesian5Tuple</a> or any <code>Cartesian</code>, \n          <a href=\"pygeodesy.ecef.Ecef9Tuple-class.html\" \n          class=\"link\">Ecef9Tuple</a>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <a \n          href=\"pygeodesy.namedTuples.Vector3Tuple-class.html\" \n          class=\"link\">Vector3Tuple</a> or <a \n          href=\"pygeodesy.namedTuples.Vector4Tuple-class.html\" \n          class=\"link\">Vector4Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>y</code></strong> - Y component (<code>scalar</code>), required if \n          <b><code>x_xyz</code></b> is <code>scalar</code>, ignored \n          otherwise.</li>\n        <li><strong class=\"pname\"><code>z</code></strong> - Z component (<code>scalar</code>), like <b><code>y</code></b>.</li>\n        <li><strong class=\"pname\"><code>llk_name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>) and kind \n          <code><b>llk</b>=None</code> overriding \n          <code><b>x_ct</b>.llk</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a \n          href=\"pygeodesy.triaxials.triaxial3.BetOmgAlp5Tuple-class.html\" \n          class=\"link\">BetOmgAlp5Tuple</a><code>(bet, omg, alp, h, \n          llk)</code> with <code>alp=None</code> or a <a \n          href=\"pygeodesy.triaxials.triaxial3.PhiLamZet5Tuple-class.html\" \n          class=\"link\">PhiLamZet5Tuple</a><code>(phi, lam, zet, h, \n          llk)</code> with <code>zet=None</code>.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        Longitude <code><b>lam</b> += Lon0</code> if <code><b>llk</b> is \n        LLK.GEODETIC_LON0</code>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"reversePhiLam\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">reversePhiLam</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">x_ct</span>,\n        <span class=\"sig-arg\">y</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">z</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**llk_name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert a cartesian <i>on this triaxial's surface</i> to \n  lat-/longitude.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>x_ct</code></strong> - X component (<code>scalar</code>) or a cartesian (<a \n          href=\"pygeodesy.triaxials.triaxial3.Cartesian5Tuple-class.html\" \n          class=\"link\">Cartesian5Tuple</a> or any <code>Cartesian</code>, \n          <a href=\"pygeodesy.ecef.Ecef9Tuple-class.html\" \n          class=\"link\">Ecef9Tuple</a>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <a \n          href=\"pygeodesy.namedTuples.Vector3Tuple-class.html\" \n          class=\"link\">Vector3Tuple</a> or <a \n          href=\"pygeodesy.namedTuples.Vector4Tuple-class.html\" \n          class=\"link\">Vector4Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>y</code></strong> - Y component (<code>scalar</code>), required if \n          <b><code>x_xyz</code></b> is <code>scalar</code>, ignored \n          otherwise.</li>\n        <li><strong class=\"pname\"><code>z</code></strong> - Z component (<code>scalar</code>), like <b><code>y</code></b>.</li>\n        <li><strong class=\"pname\"><code>llk_name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>) and kind \n          <code><b>llk</b>=None</code> overriding \n          <code><b>x_ct</b>.llk</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a \n          href=\"pygeodesy.triaxials.triaxial3.PhiLamZet5Tuple-class.html\" \n          class=\"link\">PhiLamZet5Tuple</a><code>(phi, lam, zet, h, \n          llk)</code> with <code>zet=None</code>.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        Longitude <code><b>lam</b> += Lon0</code> if <code><b>llk</b> is \n        LLK.GEODETIC_LON0</code>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"reversePhiLamZet\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">reversePhiLamZet</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">x_ct</span>,\n        <span class=\"sig-arg\">y</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">z</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">dir3d</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**llk_name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert a cartesian and direction to lat-, longitude and azimuth.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>x_ct</code></strong> - X component (<code>scalar</code>) or a cartesian (<a \n          href=\"pygeodesy.triaxials.triaxial3.Cartesian5Tuple-class.html\" \n          class=\"link\">Cartesian5Tuple</a> or any <code>Cartesian</code>, \n          <a href=\"pygeodesy.ecef.Ecef9Tuple-class.html\" \n          class=\"link\">Ecef9Tuple</a>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <a \n          href=\"pygeodesy.namedTuples.Vector3Tuple-class.html\" \n          class=\"link\">Vector3Tuple</a> or <a \n          href=\"pygeodesy.namedTuples.Vector4Tuple-class.html\" \n          class=\"link\">Vector4Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>y</code></strong> - Y component (<code>scalar</code>), required if \n          <b><code>x_xyz</code></b> is <code>scalar</code>, ignored \n          otherwise.</li>\n        <li><strong class=\"pname\"><code>z</code></strong> - Z component (<code>scalar</code>), like <b><code>y</code></b>.</li>\n        <li><strong class=\"pname\"><code>dir3d</code></strong> - Optional direction (<code>Vector3d</code> or <code>None</code>).</li>\n        <li><strong class=\"pname\"><code>llk_name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>) and kind \n          <code><b>llk</b>=None</code> overriding \n          <code><b>x_ct</b>.llk</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a \n          href=\"pygeodesy.triaxials.triaxial3.PhiLamZet5Tuple-class.html\" \n          class=\"link\">PhiLamZet5Tuple</a><code>(phi, lam, zet, h, \n          llk)</code> with <code>zet=None</code> if <code><b>dir3d</b> is \n          None</code>.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        Longitude <code><b>lam</b> += Lon0</code> if <code><b>llk</b> is \n        LLK.GEODETIC_LON0</code>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"random2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">random2</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">llk</span>=<span class=\"sig-default\">'ELLIPSOIDAL'</span>,\n        <span class=\"sig-arg\">both</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">_rand</span>=<span class=\"sig-default\">&lt;built-in method random of Random object at 0x7fc1e686e220&gt;</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return a random cartesian with/out direction on this triaxial's \n  surface.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>llk</code></strong> - The kind (an <a href=\"pygeodesy.triaxials.bases.LLK-class.html\" \n          class=\"link\">LLK</a>).</li>\n        <li><strong class=\"pname\"><code>both</code></strong> - If <code>True</code>, generate a random direction \n          (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>2-Tuple <code>(cartesian, direction)</code> with the \n          <code>cartesian</code> a <a \n          href=\"pygeodesy.triaxials.triaxial3.Cartesian5Tuple-class.html\" \n          class=\"link\">Cartesian5Tuple</a><code>(x, y, z, h, llk)</code> \n          and <code>direction</code>, a <code>Vector3d</code> tangent to \n          this triaxial's surface or <code>None</code> iff \n          <code><b>both</b> is False</code>.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toOther\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toOther</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lat</span>,\n        <span class=\"sig-arg\">lon</span>,\n        <span class=\"sig-arg\">llk1</span>=<span class=\"sig-default\">'GEODETIC'</span>,\n        <span class=\"sig-arg\">llk2</span>=<span class=\"sig-default\">'GEODETIC'</span>,\n        <span class=\"sig-arg\">**unit_name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert one lat-/longitude kind to an other.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat</code></strong> - Latitude (<code>Ang</code> or <b><code>unit</code></b>).</li>\n        <li><strong class=\"pname\"><code>lon</code></strong> - Longitude (<code>Ang</code> or <b><code>unit</code></b>).</li>\n        <li><strong class=\"pname\"><code>llk1</code></strong> - The given kind (an <a \n          href=\"pygeodesy.triaxials.bases.LLK-class.html\" \n          class=\"link\">LLK</a>).</li>\n        <li><strong class=\"pname\"><code>llk2</code></strong> - The result kind (an <a \n          href=\"pygeodesy.triaxials.bases.LLK-class.html\" \n          class=\"link\">LLK</a>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a \n          href=\"pygeodesy.triaxials.triaxial3.BetOmgAlp5Tuple-class.html\" \n          class=\"link\">BetOmgAlp5Tuple</a><code>(bet, omg, alp, h, \n          llk)</code> with <code>alp=None</code> or a <a \n          href=\"pygeodesy.triaxials.triaxial3.PhiLamZet5Tuple-class.html\" \n          class=\"link\">PhiLamZet5Tuple</a><code>(phi, lam, zet, h, \n          llk)</code> with <code>zet=None</code>.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Methods <a \n        href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html#forwardLatLon\"\n        class=\"link\">Triaxial3.forwardLatLon</a> and -<a \n        href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html#reverseLatLon\"\n        class=\"link\">reverseLatLon</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"toTriaxial5\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toTriaxial5</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">x_ct</span>,\n        <span class=\"sig-arg\">y</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">z</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**triaxial_h_llk_name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Find the closest cartesian on this or on another triaxial's \n  surface.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>x_ct</code></strong> - X component (<code>scalar</code>) or a cartesian (<a \n          href=\"pygeodesy.triaxials.triaxial3.Cartesian5Tuple-class.html\" \n          class=\"link\">Cartesian5Tuple</a> or any <code>Cartesian</code>, \n          <a href=\"pygeodesy.ecef.Ecef9Tuple-class.html\" \n          class=\"link\">Ecef9Tuple</a>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <a \n          href=\"pygeodesy.namedTuples.Vector3Tuple-class.html\" \n          class=\"link\">Vector3Tuple</a> or <a \n          href=\"pygeodesy.namedTuples.Vector4Tuple-class.html\" \n          class=\"link\">Vector4Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>y</code></strong> - Y component (<code>scalar</code>), required if \n          <b><code>x_xyz</code></b> is <code>scalar</code>, ignored \n          otherwise.</li>\n        <li><strong class=\"pname\"><code>z</code></strong> - Z component (<code>scalar</code>), like <b><code>y</code></b>.</li>\n        <li><strong class=\"pname\"><code>triaxial_llk_name</code></strong> - Optional <code><b>triaxial</b>=self</code> \n          (<code>Triaxial3</code>), <code><b>name</b>=NN</code> \n          (<code>str</code>), height <code><b>h</b></code> and kind \n          <code><b>llk</b></code> overriding <code><b>x_ct</b>.h</code> \n          respectively <code><b>x_ct</b>.llk</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><a \n          href=\"pygeodesy.triaxials.triaxial3.Cartesian5Tuple-class.html\" \n          class=\"link\">Cartesian5Tuple</a><code>(x, y, z, h, llk)</code></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.triaxials.bases.TriaxialError-class.html\">TriaxialError</a></strong></code> - If <code><b>triaxial</b></code> is not a <a \n        href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html\" \n        class=\"link\">Triaxial3</a>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Functions <a \n        href=\"pygeodesy.triaxials.triaxial5-module.html#hartzell4\" \n        class=\"link\">hartzell4</a> and <a \n        href=\"pygeodesy.triaxials.triaxial5-module.html#height4\" \n        class=\"link\">height4</a> and methods.\n      </p>\n</div></td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:21 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.triaxials.triaxial3.Triaxial3B-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.triaxials.triaxial3.Triaxial3B</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.triaxials-module.html\">Package&nbsp;triaxials</a> ::\n        <a href=\"pygeodesy.triaxials.triaxial3-module.html\" onclick=\"show_private();\">Module&nbsp;triaxial3</a> ::\n        Class&nbsp;Triaxial3B\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.triaxials.triaxial3.Triaxial3B-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Triaxial3B</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n      object --+                            \n               |                            \n    <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+                        \n                   |                        \n    <a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+                    \n                       |                    \n    <a href=\"pygeodesy.named._NamedEnumItem-class.html\">named._NamedEnumItem</a> --+                \n                           |                \n<a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html\">bases._UnOrderedTriaxialBase</a> --+            \n                               |            \n      <a href=\"pygeodesy.triaxials.bases._OrderedTriaxialBase-class.html\">bases._OrderedTriaxialBase</a> --+        \n                                   |        \n                <a href=\"pygeodesy.triaxials.bases._Triaxial3Base-class.html\">bases._Triaxial3Base</a> --+    \n                                       |    \n                               <a href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html\">Triaxial3</a> --+\n                                           |\n                                          <strong class=\"uidshort\">Triaxial3B</strong>\n</pre>\n\n<dl><dt>Known Subclasses:</dt>\n<dd>\n      <ul class=\"subclass-list\">\n<li><a href=\"pygeodesy.triaxials.conformal3.Conformal3Sphere-class.html\">conformal3.Conformal3Sphere</a></li>  </ul>\n</dd></dl>\n\n<hr />\n<p>Triaxial ellipsoid specified by its middle semi-axis and shape.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html\" \n        class=\"link\">Triaxial3</a> for more information.\n      </p>\n</div><!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.triaxials.triaxial3.Triaxial3B-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">b</span>,\n        <span class=\"summary-sig-arg\">e2</span>=<span class=\"summary-sig-default\">0.0</span>,\n        <span class=\"summary-sig-arg\">k2</span>=<span class=\"summary-sig-default\">1.0</span>,\n        <span class=\"summary-sig-arg\">kp2</span>=<span class=\"summary-sig-default\">0.0</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      New, <a href=\"pygeodesy.triaxials.triaxial3.Triaxial3B-class.html\" \n      class=\"link\">Triaxial3B</a> instance.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html\">Triaxial3</a></code></b>:\n      <code><a href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html#forwardBetOmg\">forwardBetOmg</a></code>,\n      <code><a href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html#forwardBetOmgAlp2\">forwardBetOmgAlp2</a></code>,\n      <code><a href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html#forwardBetaOmega\">forwardBetaOmega</a></code>,\n      <code><a href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html#forwardBetaOmega_\">forwardBetaOmega_</a></code>,\n      <code><a href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html#forwardCartesian\">forwardCartesian</a></code>,\n      <code><a href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html#forwardLatLon\">forwardLatLon</a></code>,\n      <code><a href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html#forwardPhiLam\">forwardPhiLam</a></code>,\n      <code><a href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html#forwardPhiLamZet2\">forwardPhiLamZet2</a></code>,\n      <code><a href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html#normed2\">normed2</a></code>,\n      <code><a href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html#random2\">random2</a></code>,\n      <code><a href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html#reverseBetOmg\">reverseBetOmg</a></code>,\n      <code><a href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html#reverseBetOmgAlp\">reverseBetOmgAlp</a></code>,\n      <code><a href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html#reverseBetaOmega\">reverseBetaOmega</a></code>,\n      <code><a href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html#reverseCartesian\">reverseCartesian</a></code>,\n      <code><a href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html#reverseLatLon\">reverseLatLon</a></code>,\n      <code><a href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html#reversePhiLam\">reversePhiLam</a></code>,\n      <code><a href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html#reversePhiLamZet\">reversePhiLamZet</a></code>,\n      <code><a href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html#toOther\">toOther</a></code>,\n      <code><a href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html#toTriaxial5\">toTriaxial5</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html\">bases._UnOrderedTriaxialBase</a></code></b>:\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#areaKT\">areaKT</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#area_p\">area_p</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#ellipse5\">ellipse5</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#hartzell4\">hartzell4</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#height4\">height4</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#normal3d\">normal3d</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#normal4\">normal4</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#sideOf\">sideOf</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#toBiaxial\">toBiaxial</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#toEllipsoid\">toEllipsoid</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#toStr\">toStr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedEnumItem-class.html\">named._NamedEnumItem</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedEnumItem-class.html#unregister\">unregister</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#others\">others</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#toRepr\">toRepr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.triaxials.bases._Triaxial3Base-class.html\">bases._Triaxial3Base</a></code></b>:\n      <code><a href=\"pygeodesy.triaxials.bases._Triaxial3Base-class.html#Lon0\">Lon0</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._Triaxial3Base-class.html#e2\">e2</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._Triaxial3Base-class.html#isBiaxial\">isBiaxial</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._Triaxial3Base-class.html#isOblate\">isOblate</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._Triaxial3Base-class.html#isProlate\">isProlate</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._Triaxial3Base-class.html#k2\">k2</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._Triaxial3Base-class.html#kp2\">kp2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.triaxials.bases._OrderedTriaxialBase-class.html\">bases._OrderedTriaxialBase</a></code></b>:\n      <code><a href=\"pygeodesy.triaxials.bases._OrderedTriaxialBase-class.html#area\">area</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._OrderedTriaxialBase-class.html#area21k\">area21k</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html\">bases._UnOrderedTriaxialBase</a></code></b>:\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#R2\">R2</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#R3\">R3</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#Rauthalic\">Rauthalic</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#Rvolumetric\">Rvolumetric</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#a\">a</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#a2\">a2</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#abc3\">abc3</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#areaRG\">areaRG</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#b\">b</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#b2\">b2</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#c\">c</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#c2\">c2</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#e2ab\">e2ab</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#e2ac\">e2ac</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#e2bc\">e2bc</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#isFlat\">isFlat</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#isOrdered\">isOrdered</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#isSpherical\">isSpherical</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#perimeter4ab\">perimeter4ab</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#perimeter4ac\">perimeter4ac</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#perimeter4bc\">perimeter4bc</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#unOrdered\">unOrdered</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#volume\">volume</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedEnumItem-class.html\">named._NamedEnumItem</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedEnumItem-class.html#name\">name</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">b</span>,\n        <span class=\"sig-arg\">e2</span>=<span class=\"sig-default\">0.0</span>,\n        <span class=\"sig-arg\">k2</span>=<span class=\"sig-default\">1.0</span>,\n        <span class=\"sig-arg\">kp2</span>=<span class=\"sig-default\">0.0</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New, <a href=\"pygeodesy.triaxials.triaxial3.Triaxial3B-class.html\" \n  class=\"link\">Triaxial3B</a> instance.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>a_triaxial</code></strong> - Largest semi-axis (<code>scalar</code>, conventionally in \n          <code>meter</code>) or an other <a \n          href=\"pygeodesy.triaxials.triaxial5.Triaxial-class.html\" \n          class=\"link\">Triaxial</a> or <a \n          href=\"pygeodesy.triaxials.triaxial5.Triaxial_-class.html\" \n          class=\"link\">Triaxial_</a> instance.</li>\n        <li><strong class=\"pname\"><code>b</code></strong> - Middle semi-axis (<code>meter</code>, same units as \n          <b><code>a</code></b>), required if <code><b>a_triaxial</b> is \n          scalar</code>, ignored otherwise.</li>\n        <li><strong class=\"pname\"><code>c</code></strong> - Smallest semi-axis (<code>meter</code>, like \n          <b><code>b</code></b>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.triaxials.bases.TriaxialError-class.html\">TriaxialError</a></strong></code> - Semi-axes unordered, spherical or invalid.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"pygeodesy.triaxials.triaxial5.Triaxial-class.html\" \n        class=\"link\">Triaxial</a> for details.\n      </p>\n</div></td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:21 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.triaxials.triaxial5-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.triaxials.triaxial5</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.triaxials-module.html\">Package&nbsp;triaxials</a> ::\n        Module&nbsp;triaxial5\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.triaxials.triaxial5-module.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== MODULE DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Module triaxial5</h1><p class=\"nomargin-top\"></p>\n<p>Triaxal ellipsoid classes <a \n  href=\"pygeodesy.triaxials.triaxial5.Triaxial-class.html\" \n  class=\"link\">Triaxial</a> and <i>unordered</i> <a \n  href=\"pygeodesy.triaxials.triaxial5.Triaxial_-class.html\" \n  class=\"link\">Triaxial_</a> and Jacobi conformal projections <a \n  href=\"pygeodesy.triaxials.triaxial5.Conformal-class.html\" \n  class=\"link\">Conformal</a> and <a \n  href=\"pygeodesy.triaxials.triaxial5.ConformalSphere-class.html\" \n  class=\"link\">ConformalSphere</a>, transcoded from <i>Karney</i>'s \n  GeographicLib 2.5.2 C++ class <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1JacobiConformal.html#details\"\n  target=\"_top\">JacobiConformal</a> to pure Python and miscellaneous \n  classes <a \n  href=\"pygeodesy.triaxials.triaxial5.BetaOmega2Tuple-class.html\" \n  class=\"link\">BetaOmega2Tuple</a>, <a \n  href=\"pygeodesy.triaxials.triaxial5.BetaOmega3Tuple-class.html\" \n  class=\"link\">BetaOmega3Tuple</a> and <a \n  href=\"pygeodesy.triaxials.triaxial5.Conformal2Tuple-class.html\" \n  class=\"link\">Conformal2Tuple</a>, <i>all kept for backward \n  copability</i>.</p>\n  <p>Copyright (C) <a href=\"mailto:Karney@Alum.MIT.edu\" \n  target=\"_top\">Charles Karney</a> (2008-2024) and licensed under the \n  MIT/X11 License.  For more information, see the <a \n  href=\"https://GeographicLib.SourceForge.io\" target=\"_top\">GeographicLib \n  2.5.2</a> <i>experimental</i> documentation.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a \n        href=\"https://WikiPedia.org/wiki/Geodesics_on_an_ellipsoid#Geodesics_on_a_triaxial_ellipsoid\"\n        target=\"_top\">Geodesics on a triaxial ellipsoid</a> and <a \n        href=\"https://OLD.Topo.Auth.GR/wp-content/uploads/sites/111/2021/12/09_Panou.pdf\"\n        target=\"_top\">Triaxial coordinate systems and their geometrical \n        interpretation</a>.\n      </p>\n      <p><strong>Version:</strong>\n        26.03.09\n      </p>\n</div><!-- ==================== CLASSES ==================== -->\n<a name=\"section-Classes\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Classes</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.triaxials.triaxial5.BetaOmega2Tuple-class.html\" class=\"summary-name\">BetaOmega2Tuple</a><br />\n      2-Tuple <code>(beta, omega)</code> with <i>ellipsoidal</i> lat- and\n        longitude <code>beta</code> and <code>omega</code> both in <a \n        href=\"pygeodesy.units.Radians-class.html\" class=\"link\">Radians</a> \n        (or <a href=\"pygeodesy.units.Degrees-class.html\" \n        class=\"link\">Degrees</a>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.triaxials.triaxial5.BetaOmega3Tuple-class.html\" class=\"summary-name\">BetaOmega3Tuple</a><br />\n      3-Tuple <code>(beta, omega, height)</code> with <i>ellipsoidal</i> \n        lat- and longitude <code>beta</code> and <code>omega</code> both in\n        <a href=\"pygeodesy.units.Radians-class.html\" \n        class=\"link\">Radians</a> (or <a \n        href=\"pygeodesy.units.Degrees-class.html\" class=\"link\">Degrees</a>)\n        and the <code>height</code>, rather the (signed) <i>distance</i> to\n        the triaxial's surface (measured along the radial line to the \n        triaxial's center) in <code>meter</code>, conventionally.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.triaxials.triaxial5.Conformal2Tuple-class.html\" class=\"summary-name\">Conformal2Tuple</a><br />\n      2-Tuple <code>(x, y)</code> with a <i>Jacobi Conformal</i> \n        <code>x</code> and <code>y</code> projection, both in <a \n        href=\"pygeodesy.units.Radians-class.html\" class=\"link\">Radians</a> \n        (or <a href=\"pygeodesy.units.Degrees-class.html\" \n        class=\"link\">Degrees</a>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.triaxials.triaxial5.Triaxial_-class.html\" class=\"summary-name\">Triaxial_</a><br />\n      <i>Unordered</i> triaxial ellipsoid.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.triaxials.triaxial5.Triaxial-class.html\" class=\"summary-name\">Triaxial</a><br />\n      <i>Ordered</i> triaxial ellipsoid.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.triaxials.triaxial5.Conformal-class.html\" class=\"summary-name\">Conformal</a><br />\n      This is a <i>Jacobi Conformal</i> projection of a triaxial \n        ellipsoid to a plane where the <code>X</code> and <code>Y</code> \n        grid lines are straight.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.triaxials.triaxial5.ConformalSphere-class.html\" class=\"summary-name\">ConformalSphere</a><br />\n      Alternate, <i>Jacobi Conformal projection</i> on a <i>spherical</i>\n        triaxial.\n    </td>\n  </tr>\n</table>\n<!-- ==================== FUNCTIONS ==================== -->\n<a name=\"section-Functions\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Functions</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.triaxials.triaxial5-module.html#hartzell4\" class=\"summary-sig-name\">hartzell4</a>(<span class=\"summary-sig-arg\">pov</span>,\n        <span class=\"summary-sig-arg\">los</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">tri_biax</span>=<span class=\"summary-sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Compute the intersection of a tri-/biaxial ellipsoid and a \n      Line-Of-Sight from a Point-Of-View outside.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.triaxials.triaxial5-module.html#height4\" class=\"summary-sig-name\">height4</a>(<span class=\"summary-sig-arg\">x_xyz</span>,\n        <span class=\"summary-sig-arg\">y</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">z</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">tri_biax</span>=<span class=\"summary-sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"summary-sig-arg\">normal</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">eps</span>=<span class=\"summary-sig-default\">2.220446049250313e-16</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Compute the projection on and the height above or below a \n      tri-/biaxial ellipsoid's surface.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== VARIABLES ==================== -->\n<a name=\"section-Variables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Variables</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"__all__\"></a><span class=\"summary-name\">__all__</span> = <code title=\"_ALL_LAZY.triaxials_triaxial5\">_ALL_LAZY.triaxials_triaxial5</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"Triaxials\"></a><span class=\"summary-name\">Triaxials</span> = <code title=\"\"></code><br />\n      Some pre-defined <a \n      href=\"pygeodesy.triaxials.triaxial5.Triaxial-class.html\" \n      class=\"link\">Triaxial</a>s, all <i>lazily</i> instantiated.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"T\"></a><span class=\"summary-name\">T</span> = <code title=\"Triaxial_(6378388.0, 6378318.0, 6356911.9461)\">Triaxial_(6378388.0, 6378318.0, 6356911.9461)</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"t\"></a><span class=\"summary-name\">t</span> = <code title=\"T.height4(3909863.9271, 3909778.123, 3170932.5016)\">T.height4(3909863.9271, 3909778.123, 3170932.5016)</code>\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"Triaxials.Amalthea\"></a><span class=\"summary-name\">Triaxials.Amalthea</span><br />\n      Triaxial(name='Amalthea', a=125000, b=73000, c=64000, e2ab=0.658944, \n      e2bc=0.231375493, e2ac=0.737856, volume=2446253479595252, \n      area=93239507787.490356445, R2=86138.05359954)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"Triaxials.Ariel\"></a><span class=\"summary-name\">Triaxials.Ariel</span><br />\n      Triaxial(name='Ariel', a=581100, b=577900, c=577700, e2ab=0.01098327,\n      e2bc=0.000692042, e2ac=0.011667711, volume=812633172614203904, \n      area=4211301462766.580078125, R2=578899.578791275)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"Triaxials.Earth\"></a><span class=\"summary-name\">Triaxials.Earth</span><br />\n      Triaxial(name='Earth', a=6378173.435, b=6378103.9, \n      c=6356754.399999999, e2ab=0.000021804, e2bc=0.006683418, \n      e2ac=0.006705077, volume=1083208241574987694080, \n      area=510065911057440.9375, R2=6371008.987886564)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"Triaxials.Enceladus\"></a><span class=\"summary-name\">Triaxials.Enceladus</span><br />\n      Triaxial(name='Enceladus', a=256600, b=251400, c=248300, \n      e2ab=0.040119337, e2bc=0.024509841, e2ac=0.06364586, \n      volume=67094551514082248, area=798618496278.596679688, \n      R2=252095.300756832)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"Triaxials.Europa\"></a><span class=\"summary-name\">Triaxials.Europa</span><br />\n      Triaxial(name='Europa', a=1564130, b=1561230, c=1560930, \n      e2ab=0.003704694, e2bc=0.000384275, e2ac=0.004087546, \n      volume=15966575194402123776, area=30663773697323.51953125, \n      R2=1562096.533153486)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"Triaxials.Io\"></a><span class=\"summary-name\">Triaxials.Io</span><br />\n      Triaxial(name='Io', a=1829400, b=1819300, c=1815700, \n      e2ab=0.011011391, e2bc=0.003953651, e2ac=0.014921506, \n      volume=25313121117889765376, area=41691875849096.734375, \n      R2=1821464.812747882)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"Triaxials.Mars\"></a><span class=\"summary-name\">Triaxials.Mars</span><br />\n      Triaxial(name='Mars', a=3394600, b=3393300, c=3376300, \n      e2ab=0.000765776, e2bc=0.009994646, e2ac=0.010752768, \n      volume=162907283585817247744, area=144249140795107.4375, \n      R2=3388064.624110653)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"Triaxials.Mimas\"></a><span class=\"summary-name\">Triaxials.Mimas</span><br />\n      Triaxial(name='Mimas', a=207400, b=196800, c=190600, e2ab=0.09960581,\n      e2bc=0.062015624, e2ac=0.155444317, volume=32587072869017956, \n      area=493855762247.691833496, R2=198241.75359411)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"Triaxials.Miranda\"></a><span class=\"summary-name\">Triaxials.Miranda</span><br />\n      Triaxial(name='Miranda', a=240400, b=234200, c=232900, \n      e2ab=0.050915557, e2bc=0.011070811, e2ac=0.061422691, \n      volume=54926187094835456, area=698880863325.757080078, \n      R2=235828.692095158)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"Triaxials.Moon\"></a><span class=\"summary-name\">Triaxials.Moon</span><br />\n      Triaxial(name='Moon', a=1735550, b=1735324, c=1734898, \n      e2ab=0.000260419, e2bc=0.000490914, e2ac=0.000751206, \n      volume=21886698675223740416, area=37838824729886.09375, \n      R2=1735257.329122863)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"Triaxials.Tethys\"></a><span class=\"summary-name\">Triaxials.Tethys</span><br />\n      Triaxial(name='Tethys', a=535600, b=528200, c=525800, \n      e2ab=0.027441672, e2bc=0.009066821, e2ac=0.036259685, \n      volume=623086233855821440, area=3528073490771.393554688, \n      R2=529863.348254881)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"Triaxials.WGS84_3\"></a><span class=\"summary-name\">Triaxials.WGS84_3</span><br />\n      Triaxial(name='WGS84_3', a=6378171.36, b=6378101.609999999, \n      c=6356751.84, e2ab=0.000021871, e2bc=0.006683505, e2ac=0.00670523, \n      volume=1083207064030173855744, area=510065541435967.5, \n      R2=6371006.679496506)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"Triaxials.WGS84_35\"></a><span class=\"summary-name\">Triaxials.WGS84_35</span><br />\n      Triaxial(name='WGS84_35', a=6378172, b=6378102, c=6356752.314245179, \n      e2ab=0.00002195, e2bc=0.006683478, e2ac=0.006705281, \n      volume=1083207319768789942272, area=510065621722018.25, \n      R2=6371007.180905545)\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"Triaxials.WGS84_3r\"></a><span class=\"summary-name\">Triaxials.WGS84_3r</span><br />\n      Triaxial(name='WGS84_3r', a=6378172, b=6378102, c=6356752, \n      e2ab=0.00002195, e2bc=0.006683577, e2ac=0.00670538, \n      volume=1083207266220584468480, area=510065604942135.875, \n      R2=6371007.076110449)\n    </td>\n  </tr>\n</table>\n<!-- ==================== FUNCTION DETAILS ==================== -->\n<a name=\"section-FunctionDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Function Details</span></td>\n</tr>\n</table>\n<a name=\"hartzell4\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">hartzell4</span>&nbsp;(<span class=\"sig-arg\">pov</span>,\n        <span class=\"sig-arg\">los</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">tri_biax</span>=<span class=\"sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the intersection of a tri-/biaxial ellipsoid and a \n  Line-Of-Sight from a Point-Of-View outside.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>pov</code></strong> - Point-Of-View outside the tri-/biaxial (<code>Cartesian</code>, \n          <a href=\"pygeodesy.ecef.Ecef9Tuple-class.html\" \n          class=\"link\">Ecef9Tuple</a>, <code>LatLon</code> or <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>).</li>\n        <li><strong class=\"pname\"><code>los</code></strong> - Line-Of-Sight, <i>direction</i> to the tri-/biaxial (<a \n          href=\"pygeodesy.ltpTuples.Los-class.html\" class=\"link\">Los</a>, \n          <a href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>) or <code>True</code> for the \n          <i>normal, perpendicular, plumb</i> to the surface of the \n          tri-/biaxial or <code>False</code> or <code>None</code> to point \n          to its center.</li>\n        <li><strong class=\"pname\"><code>tri_biax</code></strong> - A triaxial (<a \n          href=\"pygeodesy.triaxials.triaxial5.Triaxial-class.html\" \n          class=\"link\">Triaxial</a>, <a \n          href=\"pygeodesy.triaxials.triaxial5.Triaxial_-class.html\" \n          class=\"link\">Triaxial_</a>, <a \n          href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html\" \n          class=\"link\">Triaxial3</a>, <a \n          href=\"pygeodesy.triaxials.triaxial3.Triaxial3B-class.html\" \n          class=\"link\">Triaxial3B</a>, <a \n          href=\"pygeodesy.triaxials.triaxial5.Conformal-class.html\" \n          class=\"link\">Conformal</a> or <a \n          href=\"pygeodesy.triaxials.triaxial5.ConformalSphere-class.html\" \n          class=\"link\">ConformalSphere</a>) or biaxial ellipsoid (<a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>, \n          <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a>, <a \n          href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>) or spherical earth radius \n          (<code>scalar</code>, conventionally in <code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional name (<code>str</code>), overriding \n          <code><b>name</b>=&quot;hartzell4&quot;</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><a href=\"pygeodesy.namedTuples.Vector4Tuple-class.html\" \n          class=\"link\">Vector4Tuple</a><code>(x, y, z, h)</code> on the \n          tri-/biaxial's surface, with <code>h</code> the distance from \n          <b><code>pov</code></b> to <code>(x, y, z)</code> <i>along \n          the</i> <b><code>los</code></b>, all in <code>meter</code>, \n          conventionally.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.triaxials.bases.TriaxialError-class.html\">TriaxialError</a></strong></code> - Invalid <b><code>pov</code></b> or <b><code>pov</code></b> inside \n        the tri-/biaxial or invalid <b><code>los</code></b> or \n        <b><code>los</code></b> points outside or away from the \n        tri-/biaxial.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>tri_biax</code></b>, <code>ellipsoid</code> or \n        <code>datum</code>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Class <a href=\"pygeodesy.ltpTuples.Los-class.html\" \n        class=\"link\">pygeodesy3.Los</a>, functions <a \n        href=\"pygeodesy.ltp-module.html#tyr3d\" \n        class=\"link\">pygeodesy.tyr3d</a> and <a \n        href=\"pygeodesy.formy-module.html#hartzell\" \n        class=\"link\">pygeodesy.hartzell</a> and <a \n        href=\"https://PyPI.org/project/pymap3d\" \n        target=\"_top\">lookAtSpheroid</a> and <a \n        href=\"https://StephenHartzell.Medium.com/satellite-line-of-sight-intersection-with-earth-d786b4a6a9b6\"\n        target=\"_top\">&quot;Satellite Line-of-Sight Intersection with \n        Earth&quot;</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"height4\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">height4</span>&nbsp;(<span class=\"sig-arg\">x_xyz</span>,\n        <span class=\"sig-arg\">y</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">z</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">tri_biax</span>=<span class=\"sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"sig-arg\">normal</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">eps</span>=<span class=\"sig-default\">2.220446049250313e-16</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the projection on and the height above or below a tri-/biaxial\n  ellipsoid's surface.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>x_xyz</code></strong> - X component (<code>scalar</code>) or a cartesian \n          (<code>Cartesian</code>, <a \n          href=\"pygeodesy.ecef.Ecef9Tuple-class.html\" \n          class=\"link\">Ecef9Tuple</a>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <a \n          href=\"pygeodesy.namedTuples.Vector3Tuple-class.html\" \n          class=\"link\">Vector3Tuple</a> or <a \n          href=\"pygeodesy.namedTuples.Vector4Tuple-class.html\" \n          class=\"link\">Vector4Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>y</code></strong> - Y component (<code>scalar</code>), required if \n          <b><code>x_xyz</code></b> if <code>scalar</code>, ignored \n          otherwise.</li>\n        <li><strong class=\"pname\"><code>z</code></strong> - Z component (<code>scalar</code>), like <b><code>y</code></b>.</li>\n        <li><strong class=\"pname\"><code>tri_biax</code></strong> - A triaxial (<a \n          href=\"pygeodesy.triaxials.triaxial5.Triaxial-class.html\" \n          class=\"link\">Triaxial</a>, <a \n          href=\"pygeodesy.triaxials.triaxial5.Triaxial_-class.html\" \n          class=\"link\">Triaxial_</a>, <a \n          href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html\" \n          class=\"link\">Triaxial3</a>, <a \n          href=\"pygeodesy.triaxials.triaxial3.Triaxial3B-class.html\" \n          class=\"link\">Triaxial3B</a>, <a \n          href=\"pygeodesy.triaxials.triaxial5.Conformal-class.html\" \n          class=\"link\">Conformal</a> or <a \n          href=\"pygeodesy.triaxials.triaxial5.ConformalSphere-class.html\" \n          class=\"link\">ConformalSphere</a>) or biaxial ellipsoid (<a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>, \n          <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a>, <a \n          href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>) or spherical earth radius \n          (<code>scalar</code>, conventionally in <code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>normal</code></strong> - If <code>True</code>, the projection is the <i>perpendicular, \n          plumb</i> to the tri-/biaxial's surface, otherwise the \n          <code>radial</code> line to the center of the tri-/biaxial \n          (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>eps</code></strong> - Tolerance for root finding and validation (<code>scalar</code>), \n          use a negative value to skip validation.</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=&quot;height4&quot;</code> \n          (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><a href=\"pygeodesy.namedTuples.Vector4Tuple-class.html\" \n          class=\"link\">Vector4Tuple</a><code>(x, y, z, h)</code> with the \n          cartesian coordinates <code>x</code>, <code>y</code> and \n          <code>z</code> of the projection on or the intersection with and \n          with the height <code>h</code> above or below the tri-/biaxial's \n          surface in <code>meter</code>, conventionally.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.triaxials.bases.TriaxialError-class.html\">TriaxialError</a></strong></code> - Non-cartesian <b><code>xyz</code></b>, invalid \n        <b><code>eps</code></b>, no convergence in root finding or \n        validation failed.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Methods <a \n        href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#normal3d\"\n        class=\"link\">Triaxial.normal3d</a> and <a \n        href=\"pygeodesy.ellipsoids.Ellipsoid-class.html#height4\" \n        class=\"link\">Ellipsoid.height4</a>, <i>Eberly</i>'s <a \n        href=\"https://www.GeometricTools.com/Documentation/DistancePointEllipseEllipsoid.pdf\"\n        target=\"_top\">Distance from a Point to ...</a> and <i>Bektas</i>' \n        <a \n        href=\"https://www.ResearchGate.net/publication/272149005_SHORTEST_DISTANCE_FROM_A_POINT_TO_TRIAXIAL_ELLIPSOID\"\n        target=\"_top\">Shortest Distance from a Point to Triaxial \n        Ellipsoid</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.triaxials.triaxial5.BetaOmega2Tuple-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.triaxials.triaxial5.BetaOmega2Tuple</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.triaxials-module.html\">Package&nbsp;triaxials</a> ::\n        <a href=\"pygeodesy.triaxials.triaxial5-module.html\" onclick=\"show_private();\">Module&nbsp;triaxial5</a> ::\n        Class&nbsp;BetaOmega2Tuple\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.triaxials.triaxial5.BetaOmega2Tuple-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class BetaOmega2Tuple</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n       object --+                \n                |                \n            tuple --+            \n                    |            \n       object --+   |            \n                |   |            \n     <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+            \n                    |            \n    <a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a> --+        \n                        |        \nnamedTuples._NamedTupleTo --+    \n                            |    \n               _NamedTupleToX --+\n                                |\n                               <strong class=\"uidshort\">BetaOmega2Tuple</strong>\n</pre>\n\n<hr />\n<p>2-Tuple <code>(beta, omega)</code> with <i>ellipsoidal</i> lat- and \n  longitude <code>beta</code> and <code>omega</code> both in <a \n  href=\"pygeodesy.units.Radians-class.html\" class=\"link\">Radians</a> (or <a\n  href=\"pygeodesy.units.Degrees-class.html\" class=\"link\">Degrees</a>).</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.triaxials.triaxial5.BetaOmega2Tuple-class.html#toDegrees\" class=\"summary-sig-name\">toDegrees</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">name</span>=<span class=\"summary-sig-default\">''</span>,\n        <span class=\"summary-sig-arg\">**toDMS_kwds</span>)</span><br />\n      Convert this <a \n      href=\"pygeodesy.triaxials.triaxial5.BetaOmega2Tuple-class.html\" \n      class=\"link\">BetaOmega2Tuple</a> to <a \n      href=\"pygeodesy.units.Degrees-class.html\" class=\"link\">Degrees</a> or\n      <code>toDMS</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.triaxials.triaxial5.BetaOmega2Tuple-class.html#toRadians\" class=\"summary-sig-name\">toRadians</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Convert this <a \n      href=\"pygeodesy.triaxials.triaxial5.BetaOmega2Tuple-class.html\" \n      class=\"link\">BetaOmega2Tuple</a> to <a \n      href=\"pygeodesy.units.Radians-class.html\" class=\"link\">Radians</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__delattr__\">__delattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__getattr__\">__getattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__setattr__\">__setattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#items\">items</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iteritems\">iteritems</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iterunits\">iterunits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#reUnit\">reUnit</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toUnits\">toUnits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>tuple</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__eq__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__iter__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__rmul__</code>,\n      <code>count</code>,\n      <code>index</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__new__\">__new__</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"toDegrees\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toDegrees</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">name</span>=<span class=\"sig-default\">''</span>,\n        <span class=\"sig-arg\">**toDMS_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert this <a \n  href=\"pygeodesy.triaxials.triaxial5.BetaOmega2Tuple-class.html\" \n  class=\"link\">BetaOmega2Tuple</a> to <a \n  href=\"pygeodesy.units.Degrees-class.html\" class=\"link\">Degrees</a> or \n  <code>toDMS</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><a \n          href=\"pygeodesy.triaxials.triaxial5.BetaOmega2Tuple-class.html\" \n          class=\"link\">BetaOmega2Tuple</a><code>(beta, omega)</code> with \n          <code>beta</code> and <code>omega</code> both in <a \n          href=\"pygeodesy.units.Degrees-class.html\" \n          class=\"link\">Degrees</a> or as <a \n          href=\"pygeodesy.dms-module.html#toDMS\" class=\"link\">toDMS</a> \n          strings provided some <b><code>toDMS_kwds</code></b> keyword \n          arguments are specified.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toRadians\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toRadians</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert this <a \n  href=\"pygeodesy.triaxials.triaxial5.BetaOmega2Tuple-class.html\" \n  class=\"link\">BetaOmega2Tuple</a> to <a \n  href=\"pygeodesy.units.Radians-class.html\" class=\"link\">Radians</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><a \n          href=\"pygeodesy.triaxials.triaxial5.BetaOmega2Tuple-class.html\" \n          class=\"link\">BetaOmega2Tuple</a><code>(beta, omega)</code> with \n          <code>beta</code> and <code>omega</code> both in <a \n          href=\"pygeodesy.units.Radians-class.html\" \n          class=\"link\">Radians</a>.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:21 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.triaxials.triaxial5.BetaOmega3Tuple-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.triaxials.triaxial5.BetaOmega3Tuple</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.triaxials-module.html\">Package&nbsp;triaxials</a> ::\n        <a href=\"pygeodesy.triaxials.triaxial5-module.html\" onclick=\"show_private();\">Module&nbsp;triaxial5</a> ::\n        Class&nbsp;BetaOmega3Tuple\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.triaxials.triaxial5.BetaOmega3Tuple-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class BetaOmega3Tuple</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n       object --+                \n                |                \n            tuple --+            \n                    |            \n       object --+   |            \n                |   |            \n     <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+            \n                    |            \n    <a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a> --+        \n                        |        \nnamedTuples._NamedTupleTo --+    \n                            |    \n               _NamedTupleToX --+\n                                |\n                               <strong class=\"uidshort\">BetaOmega3Tuple</strong>\n</pre>\n\n<hr />\n<p>3-Tuple <code>(beta, omega, height)</code> with <i>ellipsoidal</i> \n  lat- and longitude <code>beta</code> and <code>omega</code> both in <a \n  href=\"pygeodesy.units.Radians-class.html\" class=\"link\">Radians</a> (or <a\n  href=\"pygeodesy.units.Degrees-class.html\" class=\"link\">Degrees</a>) and \n  the <code>height</code>, rather the (signed) <i>distance</i> to the \n  triaxial's surface (measured along the radial line to the triaxial's \n  center) in <code>meter</code>, conventionally.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.triaxials.triaxial5.BetaOmega3Tuple-class.html#toDegrees\" class=\"summary-sig-name\">toDegrees</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">name</span>=<span class=\"summary-sig-default\">''</span>,\n        <span class=\"summary-sig-arg\">**toDMS_kwds</span>)</span><br />\n      Convert this <a \n      href=\"pygeodesy.triaxials.triaxial5.BetaOmega3Tuple-class.html\" \n      class=\"link\">BetaOmega3Tuple</a> to <a \n      href=\"pygeodesy.units.Degrees-class.html\" class=\"link\">Degrees</a> or\n      <code>toDMS</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.triaxials.triaxial5.BetaOmega3Tuple-class.html#toRadians\" class=\"summary-sig-name\">toRadians</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Convert this <a \n      href=\"pygeodesy.triaxials.triaxial5.BetaOmega3Tuple-class.html\" \n      class=\"link\">BetaOmega3Tuple</a> to <a \n      href=\"pygeodesy.units.Radians-class.html\" class=\"link\">Radians</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.triaxials.triaxial5.BetaOmega3Tuple-class.html#to2Tuple\" class=\"summary-sig-name\">to2Tuple</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Reduce this <a \n      href=\"pygeodesy.triaxials.triaxial5.BetaOmega3Tuple-class.html\" \n      class=\"link\">BetaOmega3Tuple</a> to a <a \n      href=\"pygeodesy.triaxials.triaxial5.BetaOmega2Tuple-class.html\" \n      class=\"link\">BetaOmega2Tuple</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__delattr__\">__delattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__getattr__\">__getattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__setattr__\">__setattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#items\">items</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iteritems\">iteritems</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iterunits\">iterunits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#reUnit\">reUnit</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toUnits\">toUnits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>tuple</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__eq__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__iter__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__rmul__</code>,\n      <code>count</code>,\n      <code>index</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__new__\">__new__</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"toDegrees\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toDegrees</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">name</span>=<span class=\"sig-default\">''</span>,\n        <span class=\"sig-arg\">**toDMS_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert this <a \n  href=\"pygeodesy.triaxials.triaxial5.BetaOmega3Tuple-class.html\" \n  class=\"link\">BetaOmega3Tuple</a> to <a \n  href=\"pygeodesy.units.Degrees-class.html\" class=\"link\">Degrees</a> or \n  <code>toDMS</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><a \n          href=\"pygeodesy.triaxials.triaxial5.BetaOmega3Tuple-class.html\" \n          class=\"link\">BetaOmega3Tuple</a><code>(beta, omega, \n          height)</code> with <code>beta</code> and <code>omega</code> both\n          in <a href=\"pygeodesy.units.Degrees-class.html\" \n          class=\"link\">Degrees</a> or as <a \n          href=\"pygeodesy.dms-module.html#toDMS\" class=\"link\">toDMS</a> \n          strings provided some <b><code>toDMS_kwds</code></b> keyword \n          arguments are specified.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toRadians\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toRadians</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert this <a \n  href=\"pygeodesy.triaxials.triaxial5.BetaOmega3Tuple-class.html\" \n  class=\"link\">BetaOmega3Tuple</a> to <a \n  href=\"pygeodesy.units.Radians-class.html\" class=\"link\">Radians</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>), \n          overriding this name.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><a \n          href=\"pygeodesy.triaxials.triaxial5.BetaOmega3Tuple-class.html\" \n          class=\"link\">BetaOmega3Tuple</a><code>(beta, omega, \n          height)</code> with <code>beta</code> and <code>omega</code> both\n          in <a href=\"pygeodesy.units.Radians-class.html\" \n          class=\"link\">Radians</a>.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"to2Tuple\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">to2Tuple</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Reduce this <a \n  href=\"pygeodesy.triaxials.triaxial5.BetaOmega3Tuple-class.html\" \n  class=\"link\">BetaOmega3Tuple</a> to a <a \n  href=\"pygeodesy.triaxials.triaxial5.BetaOmega2Tuple-class.html\" \n  class=\"link\">BetaOmega2Tuple</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>), \n          overriding this name.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:21 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.triaxials.triaxial5.Conformal-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.triaxials.triaxial5.Conformal</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.triaxials-module.html\">Package&nbsp;triaxials</a> ::\n        <a href=\"pygeodesy.triaxials.triaxial5-module.html\" onclick=\"show_private();\">Module&nbsp;triaxial5</a> ::\n        Class&nbsp;Conformal\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.triaxials.triaxial5.Conformal-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Conformal</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n      object --+                        \n               |                        \n    <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+                    \n                   |                    \n    <a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+                \n                       |                \n    <a href=\"pygeodesy.named._NamedEnumItem-class.html\">named._NamedEnumItem</a> --+            \n                           |            \n<a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html\">bases._UnOrderedTriaxialBase</a> --+        \n                               |        \n      <a href=\"pygeodesy.triaxials.bases._OrderedTriaxialBase-class.html\">bases._OrderedTriaxialBase</a> --+    \n                                   |    \n                            <a href=\"pygeodesy.triaxials.triaxial5.Triaxial-class.html\">Triaxial</a> --+\n                                       |\n                                      <strong class=\"uidshort\">Conformal</strong>\n</pre>\n\n<dl><dt>Known Subclasses:</dt>\n<dd>\n      <ul class=\"subclass-list\">\n<li><a href=\"pygeodesy.triaxials.triaxial5.ConformalSphere-class.html\">ConformalSphere</a></li><li>, <a href=\"pygeodesy.deprecated.classes.JacobiConformal-class.html\">deprecated.classes.JacobiConformal</a></li><li class=\"private\">, deprecated.classes.ConformalTriaxial</li>  </ul>\n</dd></dl>\n\n<hr />\n<p>This is a <i>Jacobi Conformal</i> projection of a triaxial ellipsoid \n  to a plane where the <code>X</code> and <code>Y</code> grid lines are \n  straight.</p>\n  <p><i>Ellipsoidal</i> coordinates <i>beta</i> and <i>omega</i> are \n  converted to Jacobi Conformal <i>y</i> respectively <i>x</i> separately.\n  Jacobi's coordinates have been multiplied by <code>sqrt(<b>a</b>**2 - \n  <b>c</b>**2) / (2 * <b>b</b>)</code> so that the customary results are \n  returned in the case of an ellipsoid of revolution.</p>\n  <p>Copyright (C) <a href=\"mailto:Karney@Alum.MIT.edu\" \n  target=\"_top\">Charles Karney</a> (2014-2024) and licensed under the \n  MIT/X11 License.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Note:</strong>\n        This constructor can <i>not be used to specify a sphere</i>, see \n        alternate <a \n        href=\"pygeodesy.triaxials.triaxial5.ConformalSphere-class.html\" \n        class=\"link\">ConformalSphere</a>.\n      </p>\n      <p><strong>See Also:</strong>\n        <a href=\"pygeodesy.triaxials.triaxial5.Triaxial-class.html\" \n        class=\"link\">Triaxial</a>, C++ class <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1JacobiConformal.html#details\"\n        target=\"_top\">JacobiConformal</a>, <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/jacobi.html\" \n        target=\"_top\">Jacobi's conformal projection</a> and Jacobi, C. G. \n        J. <i><a \n        href=\"https://Books.Google.com/books?id=ryEOAAAAQAAJ&amp;pg=PA212\" \n        target=\"_top\">Vorlesungen &#252;ber Dynamik</a></i>, page 212ff.\n      </p>\n</div><!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.triaxials.triaxial5.Conformal-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">a_triaxial</span>,\n        <span class=\"summary-sig-arg\">b</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">c</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      New <i>ordered</i> <a \n      href=\"pygeodesy.triaxials.triaxial5.Triaxial-class.html\" \n      class=\"link\">Triaxial</a>, <a \n      href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html\" \n      class=\"link\">Triaxial3</a>, <a \n      href=\"pygeodesy.triaxials.triaxial5.Conformal-class.html\" \n      class=\"link\">Conformal</a> or <a \n      href=\"pygeodesy.triaxials.conformal3.Conformal3-class.html\" \n      class=\"link\">Conformal3</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.triaxials.triaxial5.Conformal-class.html#x\" class=\"summary-sig-name\">x</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">omega</span>,\n        <span class=\"summary-sig-arg\">unit</span>=<span class=\"summary-sig-default\">&lt;class 'pygeodesy.units.Radians'&gt;</span>)</span><br />\n      Compute a <i>Jacobi Conformal</i> <code>x</code> projection.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.triaxials.triaxial5.Conformal-class.html#xR\" class=\"summary-sig-name\">xR</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">omega</span>,\n        <span class=\"summary-sig-arg\">unit</span>=<span class=\"summary-sig-default\">&lt;class 'pygeodesy.units.Radians'&gt;</span>)</span><br />\n      Compute a <i>Jacobi Conformal</i> <code>x</code> projection.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.triaxials.triaxial5.Conformal-class.html#xR_\" class=\"summary-sig-name\">xR_</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">somega</span>,\n        <span class=\"summary-sig-arg\">comega</span>)</span><br />\n      Compute a <i>Jacobi Conformal</i> <code>x</code> projection.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.triaxials.triaxial5.Conformal-class.html#xy\" class=\"summary-sig-name\">xy</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">beta</span>,\n        <span class=\"summary-sig-arg\">omega</span>,\n        <span class=\"summary-sig-arg\">**unit_name</span>)</span><br />\n      Compute a <i>Jacobi Conformal</i> <code>x</code> and <code>y</code> \n      projection.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.triaxials.triaxial5.Conformal-class.html#xyR2\" class=\"summary-sig-name\">xyR2</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">beta</span>,\n        <span class=\"summary-sig-arg\">omega</span>,\n        <span class=\"summary-sig-arg\">**unit_name</span>)</span><br />\n      Compute a <i>Jacobi Conformal</i> <code>x</code> and <code>y</code> \n      projection.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.triaxials.triaxial5.Conformal-class.html#xyR2_\" class=\"summary-sig-name\">xyR2_</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">sbeta</span>,\n        <span class=\"summary-sig-arg\">cbeta</span>,\n        <span class=\"summary-sig-arg\">somega</span>,\n        <span class=\"summary-sig-arg\">comega</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Compute a <i>Jacobi Conformal</i> <code>x</code> and <code>y</code> \n      projection.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.triaxials.triaxial5.Conformal-class.html#y\" class=\"summary-sig-name\">y</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">beta</span>,\n        <span class=\"summary-sig-arg\">unit</span>=<span class=\"summary-sig-default\">&lt;class 'pygeodesy.units.Radians'&gt;</span>)</span><br />\n      Compute a <i>Jacobi Conformal</i> <code>y</code> projection.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.triaxials.triaxial5.Conformal-class.html#yR\" class=\"summary-sig-name\">yR</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">beta</span>,\n        <span class=\"summary-sig-arg\">unit</span>=<span class=\"summary-sig-default\">&lt;class 'pygeodesy.units.Radians'&gt;</span>)</span><br />\n      Compute a <i>Jacobi Conformal</i> <code>y</code> projection.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.triaxials.triaxial5.Conformal-class.html#yR_\" class=\"summary-sig-name\">yR_</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">sbeta</span>,\n        <span class=\"summary-sig-arg\">cbeta</span>)</span><br />\n      Compute a <i>Jacobi Conformal</i> <code>y</code> projection.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.triaxials.triaxial5.Triaxial-class.html\">Triaxial</a></code></b>:\n      <code><a href=\"pygeodesy.triaxials.triaxial5.Triaxial-class.html#forwardBetaOmega\">forwardBetaOmega</a></code>,\n      <code><a href=\"pygeodesy.triaxials.triaxial5.Triaxial-class.html#forwardBetaOmega_\">forwardBetaOmega_</a></code>,\n      <code><a href=\"pygeodesy.triaxials.triaxial5.Triaxial-class.html#forwardCartesian\">forwardCartesian</a></code>,\n      <code><a href=\"pygeodesy.triaxials.triaxial5.Triaxial-class.html#forwardLatLon\">forwardLatLon</a></code>,\n      <code><a href=\"pygeodesy.triaxials.triaxial5.Triaxial-class.html#forwardLatLon_\">forwardLatLon_</a></code>,\n      <code><a href=\"pygeodesy.triaxials.triaxial5.Triaxial-class.html#reverseBetaOmega\">reverseBetaOmega</a></code>,\n      <code><a href=\"pygeodesy.triaxials.triaxial5.Triaxial-class.html#reverseCartesian\">reverseCartesian</a></code>,\n      <code><a href=\"pygeodesy.triaxials.triaxial5.Triaxial-class.html#reverseLatLon\">reverseLatLon</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html\">bases._UnOrderedTriaxialBase</a></code></b>:\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#areaKT\">areaKT</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#area_p\">area_p</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#ellipse5\">ellipse5</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#hartzell4\">hartzell4</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#height4\">height4</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#normal3d\">normal3d</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#normal4\">normal4</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#sideOf\">sideOf</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#toBiaxial\">toBiaxial</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#toEllipsoid\">toEllipsoid</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#toStr\">toStr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedEnumItem-class.html\">named._NamedEnumItem</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedEnumItem-class.html#unregister\">unregister</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#others\">others</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#toRepr\">toRepr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.triaxials.triaxial5.Conformal-class.html#xyQ2\" class=\"summary-name\">xyQ2</a><br />\n      Get the <i>Jacobi Conformal</i> quadrant size in <code>meter</code> \n      (<a href=\"pygeodesy.namedTuples.Vector2Tuple-class.html\" \n      class=\"link\">Vector2Tuple</a><code>(x, y)</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.triaxials.triaxial5.Conformal-class.html#xyQR2\" class=\"summary-name\">xyQR2</a><br />\n      Get the <i>Jacobi Conformal</i> quadrant size in <code>Radians</code>\n      (<a href=\"pygeodesy.triaxials.triaxial5.Conformal2Tuple-class.html\" \n      class=\"link\">Conformal2Tuple</a><code>(x, y)</code>).\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.triaxials.bases._OrderedTriaxialBase-class.html\">bases._OrderedTriaxialBase</a></code></b>:\n      <code><a href=\"pygeodesy.triaxials.bases._OrderedTriaxialBase-class.html#area\">area</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._OrderedTriaxialBase-class.html#area21k\">area21k</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html\">bases._UnOrderedTriaxialBase</a></code></b>:\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#R2\">R2</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#R3\">R3</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#Rauthalic\">Rauthalic</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#Rvolumetric\">Rvolumetric</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#a\">a</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#a2\">a2</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#abc3\">abc3</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#areaRG\">areaRG</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#b\">b</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#b2\">b2</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#c\">c</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#c2\">c2</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#e2ab\">e2ab</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#e2ac\">e2ac</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#e2bc\">e2bc</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#isFlat\">isFlat</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#isOblate\">isOblate</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#isOrdered\">isOrdered</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#isProlate\">isProlate</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#isSpherical\">isSpherical</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#perimeter4ab\">perimeter4ab</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#perimeter4ac\">perimeter4ac</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#perimeter4bc\">perimeter4bc</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#unOrdered\">unOrdered</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#volume\">volume</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedEnumItem-class.html\">named._NamedEnumItem</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedEnumItem-class.html#name\">name</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">a_triaxial</span>,\n        <span class=\"sig-arg\">b</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">c</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <i>ordered</i> <a \n  href=\"pygeodesy.triaxials.triaxial5.Triaxial-class.html\" \n  class=\"link\">Triaxial</a>, <a \n  href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html\" \n  class=\"link\">Triaxial3</a>, <a \n  href=\"pygeodesy.triaxials.triaxial5.Conformal-class.html\" \n  class=\"link\">Conformal</a> or <a \n  href=\"pygeodesy.triaxials.conformal3.Conformal3-class.html\" \n  class=\"link\">Conformal3</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>a_triaxial</code></strong> - Largest semi-axis (<code>scalar</code>, conventionally in \n          <code>meter</code>) or an other <a \n          href=\"pygeodesy.triaxials.triaxial5.Triaxial-class.html\" \n          class=\"link\">Triaxial</a> or <a \n          href=\"pygeodesy.triaxials.triaxial5.Triaxial_-class.html\" \n          class=\"link\">Triaxial_</a> instance.</li>\n        <li><strong class=\"pname\"><code>b</code></strong> - Middle semi-axis (<code>meter</code>, same units as \n          <b><code>a</code></b>), required if <code><b>a_triaxial</b> is \n          scalar</code>, ignored otherwise.</li>\n        <li><strong class=\"pname\"><code>c</code></strong> - Smallest semi-axis (<code>meter</code>, like \n          <b><code>b</code></b>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.triaxials.bases.TriaxialError-class.html\">TriaxialError</a></strong></code> - Semi-axes unordered, spherical or invalid.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        The semi-axes must be ordered as <code><b>a</b> &gt;= <b>b</b> \n        &gt;= <b>c</b> &gt; 0</code> and must be ellipsoidal, \n        <code><b>a</b> &gt; <b>c</b></code>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"x\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">x</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">omega</span>,\n        <span class=\"sig-arg\">unit</span>=<span class=\"sig-default\">&lt;class 'pygeodesy.units.Radians'&gt;</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute a <i>Jacobi Conformal</i> <code>x</code> projection.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>omega</code></strong> - Ellipsoidal longitude (<code>Ang</code> or \n          <b><code>unit</code></b>).</li>\n        <li><strong class=\"pname\"><code>unit</code></strong> - Unit of scalar <b><code>omega</code></b> (or \n          <code>Degrees</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The <code>x</code> projection (<a \n          href=\"pygeodesy.units.Meter-class.html\" class=\"link\">Meter</a>), \n          same units as this triaxial's semi-axes.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"xR\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">xR</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">omega</span>,\n        <span class=\"sig-arg\">unit</span>=<span class=\"sig-default\">&lt;class 'pygeodesy.units.Radians'&gt;</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute a <i>Jacobi Conformal</i> <code>x</code> projection.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>omega</code></strong> - Ellipsoidal longitude (<code>Ang</code> or \n          <b><code>unit</code></b>).</li>\n        <li><strong class=\"pname\"><code>unit</code></strong> - Unit of scalar <b><code>omega</code></b> (or \n          <code>Degrees</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The <code>x</code> projection (<a \n          href=\"pygeodesy.units.Radians-class.html\" \n          class=\"link\">Radians</a>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"xR_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">xR_</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">somega</span>,\n        <span class=\"sig-arg\">comega</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute a <i>Jacobi Conformal</i> <code>x</code> projection.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>somega</code></strong> - Ellipsoidal longitude <code>sin(omega)</code> \n          (<code>scalar</code>).</li>\n        <li><strong class=\"pname\"><code>comega</code></strong> - Ellipsoidal longitude <code>cos(omega)</code> \n          (<code>scalar</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The <code>x</code> projection (<a \n          href=\"pygeodesy.units.Radians-class.html\" \n          class=\"link\">Radians</a>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"xy\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">xy</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">beta</span>,\n        <span class=\"sig-arg\">omega</span>,\n        <span class=\"sig-arg\">**unit_name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute a <i>Jacobi Conformal</i> <code>x</code> and <code>y</code> \n  projection.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>beta</code></strong> - Ellipsoidal latitude (<code>Ang</code> or \n          <b><code>unit</code></b>).</li>\n        <li><strong class=\"pname\"><code>omega</code></strong> - Ellipsoidal longitude (<code>Ang</code> or \n          <b><code>unit</code></b>).</li>\n        <li><strong class=\"pname\"><code>unit_name</code></strong> - Optional scalar <code><b>unit</b>=</code><a \n          href=\"pygeodesy.units.Radians-class.html\" \n          class=\"link\">Radians</a> and name (<code>str</code>), overriding \n          <code><b>name</b>=&quot;xyR2&quot;</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A (<a href=\"pygeodesy.namedTuples.Vector2Tuple-class.html\" \n          class=\"link\">Vector2Tuple</a><code>(x, y)</code>), both in \n          <code>Meter</code>, same units as this triaxial's semi-axes..</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"xyR2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">xyR2</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">beta</span>,\n        <span class=\"sig-arg\">omega</span>,\n        <span class=\"sig-arg\">**unit_name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute a <i>Jacobi Conformal</i> <code>x</code> and <code>y</code> \n  projection.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>beta</code></strong> - Ellipsoidal latitude (<code>Ang</code> or \n          <b><code>unit</code></b>).</li>\n        <li><strong class=\"pname\"><code>omega</code></strong> - Ellipsoidal longitude (<code>Ang</code> or \n          <b><code>unit</code></b>).</li>\n        <li><strong class=\"pname\"><code>unit_name</code></strong> - Optional scalar <code><b>unit</b>=</code><a \n          href=\"pygeodesy.units.Radians-class.html\" \n          class=\"link\">Radians</a> and name (<code>str</code>), overriding \n          <code><b>name</b>=&quot;xyR2&quot;</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a \n          href=\"pygeodesy.triaxials.triaxial5.Conformal2Tuple-class.html\" \n          class=\"link\">Conformal2Tuple</a><code>(x, y)</code>, both in \n          <code>Radians</code>.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"xyR2_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">xyR2_</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">sbeta</span>,\n        <span class=\"sig-arg\">cbeta</span>,\n        <span class=\"sig-arg\">somega</span>,\n        <span class=\"sig-arg\">comega</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute a <i>Jacobi Conformal</i> <code>x</code> and <code>y</code> \n  projection.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>sbeta</code></strong> - Ellipsoidal latitude <code>sin(beta)</code> \n          (<code>scalar</code>).</li>\n        <li><strong class=\"pname\"><code>cbeta</code></strong> - Ellipsoidal latitude <code>cos(beta)</code> \n          (<code>scalar</code>).</li>\n        <li><strong class=\"pname\"><code>somega</code></strong> - Ellipsoidal longitude <code>sin(omega)</code> \n          (<code>scalar</code>).</li>\n        <li><strong class=\"pname\"><code>comega</code></strong> - Ellipsoidal longitude <code>cos(omega)</code> \n          (<code>scalar</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional name (<code>str</code>), overriding \n          <code><b>name</b>=&quot;xyR2_&quot;</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a \n          href=\"pygeodesy.triaxials.triaxial5.Conformal2Tuple-class.html\" \n          class=\"link\">Conformal2Tuple</a><code>(x, y)</code>.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"y\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">y</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">beta</span>,\n        <span class=\"sig-arg\">unit</span>=<span class=\"sig-default\">&lt;class 'pygeodesy.units.Radians'&gt;</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute a <i>Jacobi Conformal</i> <code>y</code> projection.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>beta</code></strong> - Ellipsoidal latitude (<code>Ang</code> or \n          <b><code>unit</code></b>).</li>\n        <li><strong class=\"pname\"><code>unit</code></strong> - Unit of scalar <b><code>beta</code></b> (or \n          <code>Degrees</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The <code>y</code> projection (<a \n          href=\"pygeodesy.units.Meter-class.html\" class=\"link\">Meter</a>), \n          same units as this triaxial's semi-axes.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"yR\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">yR</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">beta</span>,\n        <span class=\"sig-arg\">unit</span>=<span class=\"sig-default\">&lt;class 'pygeodesy.units.Radians'&gt;</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute a <i>Jacobi Conformal</i> <code>y</code> projection.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>beta</code></strong> - Ellipsoidal latitude (<code>Ang</code> or \n          <b><code>unit</code></b>).</li>\n        <li><strong class=\"pname\"><code>unit</code></strong> - Unit of scalar <b><code>beta</code></b> (or \n          <code>Degrees</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The <code>y</code> projection (<a \n          href=\"pygeodesy.units.Radians-class.html\" \n          class=\"link\">Radians</a>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"yR_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">yR_</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">sbeta</span>,\n        <span class=\"sig-arg\">cbeta</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute a <i>Jacobi Conformal</i> <code>y</code> projection.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>sbeta</code></strong> - Ellipsoidal latitude <code>sin(beta)</code> \n          (<code>scalar</code>).</li>\n        <li><strong class=\"pname\"><code>cbeta</code></strong> - Ellipsoidal latitude <code>cos(beta)</code> \n          (<code>scalar</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The <code>y</code> projection (<a \n          href=\"pygeodesy.units.Radians-class.html\" \n          class=\"link\">Radians</a>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"xyQ2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">xyQ2</h3>\n  <p>Get the <i>Jacobi Conformal</i> quadrant size in <code>meter</code> \n  (<a href=\"pygeodesy.namedTuples.Vector2Tuple-class.html\" \n  class=\"link\">Vector2Tuple</a><code>(x, y)</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">xyQ2(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <i>Jacobi Conformal</i> quadrant size in <code>meter</code> (<a \nhref=\"pygeodesy.namedTuples.Vector2Tuple-class.html\" \nclass=\"link\">Vector2Tuple</a><code>(x, y)</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"xyQR2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">xyQR2</h3>\n  <p>Get the <i>Jacobi Conformal</i> quadrant size in <code>Radians</code> \n  (<a href=\"pygeodesy.triaxials.triaxial5.Conformal2Tuple-class.html\" \n  class=\"link\">Conformal2Tuple</a><code>(x, y)</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">xyQR2(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <i>Jacobi Conformal</i> quadrant size in <code>Radians</code> (<a \nhref=\"pygeodesy.triaxials.triaxial5.Conformal2Tuple-class.html\" \nclass=\"link\">Conformal2Tuple</a><code>(x, y)</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:21 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.triaxials.triaxial5.Conformal2Tuple-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.triaxials.triaxial5.Conformal2Tuple</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.triaxials-module.html\">Package&nbsp;triaxials</a> ::\n        <a href=\"pygeodesy.triaxials.triaxial5-module.html\" onclick=\"show_private();\">Module&nbsp;triaxial5</a> ::\n        Class&nbsp;Conformal2Tuple\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.triaxials.triaxial5.Conformal2Tuple-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Conformal2Tuple</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n       object --+                \n                |                \n            tuple --+            \n                    |            \n       object --+   |            \n                |   |            \n     <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+            \n                    |            \n    <a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a> --+        \n                        |        \nnamedTuples._NamedTupleTo --+    \n                            |    \n               _NamedTupleToX --+\n                                |\n                               <strong class=\"uidshort\">Conformal2Tuple</strong>\n</pre>\n\n<dl><dt>Known Subclasses:</dt>\n<dd>\n      <ul class=\"subclass-list\">\n<li><a href=\"pygeodesy.deprecated.classes.Jacobi2Tuple-class.html\">deprecated.classes.Jacobi2Tuple</a></li>  </ul>\n</dd></dl>\n\n<hr />\n<p>2-Tuple <code>(x, y)</code> with a <i>Jacobi Conformal</i> \n  <code>x</code> and <code>y</code> projection, both in <a \n  href=\"pygeodesy.units.Radians-class.html\" class=\"link\">Radians</a> (or <a\n  href=\"pygeodesy.units.Degrees-class.html\" class=\"link\">Degrees</a>).</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.triaxials.triaxial5.Conformal2Tuple-class.html#to5Tuple\" class=\"summary-sig-name\">to5Tuple</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">b_conformal</span>,\n        <span class=\"summary-sig-arg\">**z_scale_name</span>)</span><br />\n      Return this <a \n      href=\"pygeodesy.triaxials.triaxial5.Conformal2Tuple-class.html\" \n      class=\"link\">Conformal2Tuple</a> as a <a \n      href=\"pygeodesy.triaxials.bases.Conformal5Tuple-class.html\" \n      class=\"link\" onclick=\"show_private();\">Conformal5Tuple</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.triaxials.triaxial5.Conformal2Tuple-class.html#toDegrees\" class=\"summary-sig-name\">toDegrees</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">name</span>=<span class=\"summary-sig-default\">''</span>,\n        <span class=\"summary-sig-arg\">**toDMS_kwds</span>)</span><br />\n      Convert this <a \n      href=\"pygeodesy.triaxials.triaxial5.Conformal2Tuple-class.html\" \n      class=\"link\">Conformal2Tuple</a> to <a \n      href=\"pygeodesy.units.Degrees-class.html\" class=\"link\">Degrees</a> or\n      <code>toDMS</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.triaxials.triaxial5.Conformal2Tuple-class.html#toRadians\" class=\"summary-sig-name\">toRadians</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Convert this <a \n      href=\"pygeodesy.triaxials.triaxial5.Conformal2Tuple-class.html\" \n      class=\"link\">Conformal2Tuple</a> to <a \n      href=\"pygeodesy.units.Radians-class.html\" class=\"link\">Radians</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__delattr__\">__delattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__getattr__\">__getattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__setattr__\">__setattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#items\">items</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iteritems\">iteritems</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iterunits\">iterunits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#reUnit\">reUnit</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toUnits\">toUnits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>tuple</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__eq__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__iter__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__rmul__</code>,\n      <code>count</code>,\n      <code>index</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__new__\">__new__</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"to5Tuple\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">to5Tuple</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">b_conformal</span>,\n        <span class=\"sig-arg\">**z_scale_name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return this <a \n  href=\"pygeodesy.triaxials.triaxial5.Conformal2Tuple-class.html\" \n  class=\"link\">Conformal2Tuple</a> as a <a \n  href=\"pygeodesy.triaxials.bases.Conformal5Tuple-class.html\" class=\"link\" \n  onclick=\"show_private();\">Conformal5Tuple</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>b_conformal</code></strong> - Middle semi-axis (<code>meter</code>, conventionally) or the \n          original <a \n          href=\"pygeodesy.triaxials.triaxial5.Conformal-class.html\" \n          class=\"link\">Conformal</a> of this 2-tuple.</li>\n        <li><strong class=\"pname\"><code>z_scale_name</code></strong> - Optional <code><b>z</b>=0</code> meter, \n          <code><b>scale</b>=NAN</code> and <code><b>name</b>=NN</code> \n          (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.triaxials.bases.Conformal5Tuple-class.html\" \n          class=\"link\" onclick=\"show_private();\">Conformal5Tuple</a>.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toDegrees\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toDegrees</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">name</span>=<span class=\"sig-default\">''</span>,\n        <span class=\"sig-arg\">**toDMS_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert this <a \n  href=\"pygeodesy.triaxials.triaxial5.Conformal2Tuple-class.html\" \n  class=\"link\">Conformal2Tuple</a> to <a \n  href=\"pygeodesy.units.Degrees-class.html\" class=\"link\">Degrees</a> or \n  <code>toDMS</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><a \n          href=\"pygeodesy.triaxials.triaxial5.Conformal2Tuple-class.html\" \n          class=\"link\">Conformal2Tuple</a><code>(x, y)</code> with \n          <code>x</code> and <code>y</code> both in <a \n          href=\"pygeodesy.units.Degrees-class.html\" \n          class=\"link\">Degrees</a> or as <a \n          href=\"pygeodesy.dms-module.html#toDMS\" class=\"link\">toDMS</a> \n          strings provided some <b><code>toDMS_kwds</code></b> keyword \n          arguments are specified.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toRadians\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toRadians</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert this <a \n  href=\"pygeodesy.triaxials.triaxial5.Conformal2Tuple-class.html\" \n  class=\"link\">Conformal2Tuple</a> to <a \n  href=\"pygeodesy.units.Radians-class.html\" class=\"link\">Radians</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><a \n          href=\"pygeodesy.triaxials.triaxial5.Conformal2Tuple-class.html\" \n          class=\"link\">Conformal2Tuple</a><code>(x, y)</code> with \n          <code>x</code> and <code>y</code> both in <a \n          href=\"pygeodesy.units.Radians-class.html\" \n          class=\"link\">Radians</a>.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:21 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.triaxials.triaxial5.ConformalSphere-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.triaxials.triaxial5.ConformalSphere</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.triaxials-module.html\">Package&nbsp;triaxials</a> ::\n        <a href=\"pygeodesy.triaxials.triaxial5-module.html\" onclick=\"show_private();\">Module&nbsp;triaxial5</a> ::\n        Class&nbsp;ConformalSphere\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.triaxials.triaxial5.ConformalSphere-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class ConformalSphere</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n      object --+                            \n               |                            \n    <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+                        \n                   |                        \n    <a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+                    \n                       |                    \n    <a href=\"pygeodesy.named._NamedEnumItem-class.html\">named._NamedEnumItem</a> --+                \n                           |                \n<a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html\">bases._UnOrderedTriaxialBase</a> --+            \n                               |            \n      <a href=\"pygeodesy.triaxials.bases._OrderedTriaxialBase-class.html\">bases._OrderedTriaxialBase</a> --+        \n                                   |        \n                            <a href=\"pygeodesy.triaxials.triaxial5.Triaxial-class.html\">Triaxial</a> --+    \n                                       |    \n                               <a href=\"pygeodesy.triaxials.triaxial5.Conformal-class.html\">Conformal</a> --+\n                                           |\n                                          <strong class=\"uidshort\">ConformalSphere</strong>\n</pre>\n\n<dl><dt>Known Subclasses:</dt>\n<dd>\n      <ul class=\"subclass-list\">\n<li><a href=\"pygeodesy.deprecated.classes.JacobiConformalSpherical-class.html\">deprecated.classes.JacobiConformalSpherical</a></li>  </ul>\n</dd></dl>\n\n<hr />\n<p>Alternate, <i>Jacobi Conformal projection</i> on a <i>spherical</i> \n  triaxial.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"pygeodesy.triaxials.triaxial5.Conformal-class.html\" \n        class=\"link\">Conformal</a> for more information.\n      </p>\n</div><!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.triaxials.triaxial5.ConformalSphere-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">radius_conformal</span>,\n        <span class=\"summary-sig-arg\">ab</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">bc</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      New <a \n      href=\"pygeodesy.triaxials.triaxial5.ConformalSphere-class.html\" \n      class=\"link\">ConformalSphere</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.triaxials.triaxial5.Conformal-class.html\">Conformal</a></code></b>:\n      <code><a href=\"pygeodesy.triaxials.triaxial5.Conformal-class.html#x\">x</a></code>,\n      <code><a href=\"pygeodesy.triaxials.triaxial5.Conformal-class.html#xR\">xR</a></code>,\n      <code><a href=\"pygeodesy.triaxials.triaxial5.Conformal-class.html#xR_\">xR_</a></code>,\n      <code><a href=\"pygeodesy.triaxials.triaxial5.Conformal-class.html#xy\">xy</a></code>,\n      <code><a href=\"pygeodesy.triaxials.triaxial5.Conformal-class.html#xyR2\">xyR2</a></code>,\n      <code><a href=\"pygeodesy.triaxials.triaxial5.Conformal-class.html#xyR2_\">xyR2_</a></code>,\n      <code><a href=\"pygeodesy.triaxials.triaxial5.Conformal-class.html#y\">y</a></code>,\n      <code><a href=\"pygeodesy.triaxials.triaxial5.Conformal-class.html#yR\">yR</a></code>,\n      <code><a href=\"pygeodesy.triaxials.triaxial5.Conformal-class.html#yR_\">yR_</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.triaxials.triaxial5.Triaxial-class.html\">Triaxial</a></code></b>:\n      <code><a href=\"pygeodesy.triaxials.triaxial5.Triaxial-class.html#forwardBetaOmega\">forwardBetaOmega</a></code>,\n      <code><a href=\"pygeodesy.triaxials.triaxial5.Triaxial-class.html#forwardBetaOmega_\">forwardBetaOmega_</a></code>,\n      <code><a href=\"pygeodesy.triaxials.triaxial5.Triaxial-class.html#forwardCartesian\">forwardCartesian</a></code>,\n      <code><a href=\"pygeodesy.triaxials.triaxial5.Triaxial-class.html#forwardLatLon\">forwardLatLon</a></code>,\n      <code><a href=\"pygeodesy.triaxials.triaxial5.Triaxial-class.html#forwardLatLon_\">forwardLatLon_</a></code>,\n      <code><a href=\"pygeodesy.triaxials.triaxial5.Triaxial-class.html#reverseBetaOmega\">reverseBetaOmega</a></code>,\n      <code><a href=\"pygeodesy.triaxials.triaxial5.Triaxial-class.html#reverseCartesian\">reverseCartesian</a></code>,\n      <code><a href=\"pygeodesy.triaxials.triaxial5.Triaxial-class.html#reverseLatLon\">reverseLatLon</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html\">bases._UnOrderedTriaxialBase</a></code></b>:\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#areaKT\">areaKT</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#area_p\">area_p</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#ellipse5\">ellipse5</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#hartzell4\">hartzell4</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#height4\">height4</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#normal3d\">normal3d</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#normal4\">normal4</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#sideOf\">sideOf</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#toBiaxial\">toBiaxial</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#toEllipsoid\">toEllipsoid</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#toStr\">toStr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedEnumItem-class.html\">named._NamedEnumItem</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedEnumItem-class.html#unregister\">unregister</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#others\">others</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#toRepr\">toRepr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.triaxials.triaxial5.ConformalSphere-class.html#ab\" class=\"summary-name\">ab</a><br />\n      Get relative magnitude <code>a - b</code> (<code>meter</code>, same \n      units as <b><code>a</code></b>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.triaxials.triaxial5.ConformalSphere-class.html#bc\" class=\"summary-name\">bc</a><br />\n      Get relative magnitude <code>b - c</code> (<code>meter</code>, same \n      units as <b><code>a</code></b>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.triaxials.triaxial5.ConformalSphere-class.html#radius\" class=\"summary-name\">radius</a><br />\n      Get radius (<code>meter</code>, conventionally).\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.triaxials.triaxial5.Conformal-class.html\">Conformal</a></code></b>:\n      <code><a href=\"pygeodesy.triaxials.triaxial5.Conformal-class.html#xyQ2\">xyQ2</a></code>,\n      <code><a href=\"pygeodesy.triaxials.triaxial5.Conformal-class.html#xyQR2\">xyQR2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.triaxials.bases._OrderedTriaxialBase-class.html\">bases._OrderedTriaxialBase</a></code></b>:\n      <code><a href=\"pygeodesy.triaxials.bases._OrderedTriaxialBase-class.html#area\">area</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._OrderedTriaxialBase-class.html#area21k\">area21k</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html\">bases._UnOrderedTriaxialBase</a></code></b>:\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#R2\">R2</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#R3\">R3</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#Rauthalic\">Rauthalic</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#Rvolumetric\">Rvolumetric</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#a\">a</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#a2\">a2</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#abc3\">abc3</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#areaRG\">areaRG</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#b\">b</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#b2\">b2</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#c\">c</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#c2\">c2</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#e2ab\">e2ab</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#e2ac\">e2ac</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#e2bc\">e2bc</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#isFlat\">isFlat</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#isOblate\">isOblate</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#isOrdered\">isOrdered</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#isProlate\">isProlate</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#isSpherical\">isSpherical</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#perimeter4ab\">perimeter4ab</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#perimeter4ac\">perimeter4ac</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#perimeter4bc\">perimeter4bc</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#unOrdered\">unOrdered</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#volume\">volume</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedEnumItem-class.html\">named._NamedEnumItem</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedEnumItem-class.html#name\">name</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">radius_conformal</span>,\n        <span class=\"sig-arg\">ab</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">bc</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.triaxials.triaxial5.ConformalSphere-class.html\"\n  class=\"link\">ConformalSphere</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>radius_conformal</code></strong> - Radius (<code>scalar</code>, conventionally in \n          <code>meter</code>) or an other <a \n          href=\"pygeodesy.triaxials.triaxial5.ConformalSphere-class.html\" \n          class=\"link\">ConformalSphere</a> or <a \n          href=\"pygeodesy.triaxials.triaxial5.Conformal-class.html\" \n          class=\"link\">Conformal</a>.</li>\n        <li><strong class=\"pname\"><code>ab</code></strong> - Relative magnitude of <code><b>a</b> - <b>b</b></code> \n          (<code>meter</code>, same units as <code>scalar \n          <b>radius</b></code>.</li>\n        <li><strong class=\"pname\"><code>bc</code></strong> - Relative magnitude of <code><b>b</b> - <b>c</b></code> \n          (<code>meter</code>, same units as <code>scalar \n          <b>radius</b></code>.</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.triaxials.bases.TriaxialError-class.html\">TriaxialError</a></strong></code> - Invalid <b><code>radius_conformal</code></b>, negative \n        <b><code>ab</code></b>, negative <b><code>bc</code></b> or \n        <code>(<b>ab</b> + <b>bc</b>)</code> not positive.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        If <b><code>radius_conformal</code></b> is a <a \n        href=\"pygeodesy.triaxials.triaxial5.ConformalSphere-class.html\" \n        class=\"link\">ConformalSphere</a> and if <b><code>ab</code></b> and \n        <b><code>bc</code></b> are both zero or <code>None</code>, the \n        <b><code>radius_conformal</code></b>'s <code>ab</code>, \n        <code>bc</code>, <code>a</code>, <code>b</code> and <code>c</code> \n        are copied.\n      </p>\n</div></td></tr></table>\n</div>\n<br />\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"ab\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">ab</h3>\n  <p>Get relative magnitude <code>a - b</code> (<code>meter</code>, same \n  units as <b><code>a</code></b>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">ab(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get relative magnitude <code>a - b</code> (<code>meter</code>, same units \nas <b><code>a</code></b>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"bc\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">bc</h3>\n  <p>Get relative magnitude <code>b - c</code> (<code>meter</code>, same \n  units as <b><code>a</code></b>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">bc(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get relative magnitude <code>b - c</code> (<code>meter</code>, same units \nas <b><code>a</code></b>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"radius\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">radius</h3>\n  <p>Get radius (<code>meter</code>, conventionally).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">radius(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get radius (<code>meter</code>, conventionally).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:21 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.triaxials.triaxial5.Triaxial-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.triaxials.triaxial5.Triaxial</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.triaxials-module.html\">Package&nbsp;triaxials</a> ::\n        <a href=\"pygeodesy.triaxials.triaxial5-module.html\" onclick=\"show_private();\">Module&nbsp;triaxial5</a> ::\n        Class&nbsp;Triaxial\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.triaxials.triaxial5.Triaxial-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Triaxial</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n      object --+                    \n               |                    \n    <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+                \n                   |                \n    <a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+            \n                       |            \n    <a href=\"pygeodesy.named._NamedEnumItem-class.html\">named._NamedEnumItem</a> --+        \n                           |        \n<a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html\">bases._UnOrderedTriaxialBase</a> --+    \n                               |    \n      <a href=\"pygeodesy.triaxials.bases._OrderedTriaxialBase-class.html\">bases._OrderedTriaxialBase</a> --+\n                                   |\n                                  <strong class=\"uidshort\">Triaxial</strong>\n</pre>\n\n<dl><dt>Known Subclasses:</dt>\n<dd>\n      <ul class=\"subclass-list\">\n<li><a href=\"pygeodesy.triaxials.triaxial5.Conformal-class.html\">Conformal</a></li>  </ul>\n</dd></dl>\n\n<hr />\n<p><i>Ordered</i> triaxial ellipsoid.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"pygeodesy.triaxials.triaxial5.Triaxial_-class.html\" \n        class=\"link\">Triaxial_</a> for more information.\n      </p>\n</div><!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.triaxials.triaxial5.Triaxial-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">a_triaxial</span>,\n        <span class=\"summary-sig-arg\">b</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">c</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      New <i>ordered</i> <a \n      href=\"pygeodesy.triaxials.triaxial5.Triaxial-class.html\" \n      class=\"link\">Triaxial</a>, <a \n      href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html\" \n      class=\"link\">Triaxial3</a>, <a \n      href=\"pygeodesy.triaxials.triaxial5.Conformal-class.html\" \n      class=\"link\">Conformal</a> or <a \n      href=\"pygeodesy.triaxials.conformal3.Conformal3-class.html\" \n      class=\"link\">Conformal3</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.triaxials.triaxial5.Triaxial-class.html#forwardBetaOmega\" class=\"summary-sig-name\">forwardBetaOmega</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">beta</span>,\n        <span class=\"summary-sig-arg\">omega</span>,\n        <span class=\"summary-sig-arg\">height</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">**unit_name</span>)</span><br />\n      Convert <i>ellipsoidal</i> lat- <code>beta</code>, longitude \n      <code>omega</code> and <code>height</code> to cartesian.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.triaxials.triaxial5.Triaxial-class.html#forwardBetaOmega_\" class=\"summary-sig-name\">forwardBetaOmega_</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">sbeta</span>,\n        <span class=\"summary-sig-arg\">cbeta</span>,\n        <span class=\"summary-sig-arg\">somega</span>,\n        <span class=\"summary-sig-arg\">comega</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Convert <i>ellipsoidal</i> lat- and longitude <code>beta</code> and \n      <code>omega</code> to cartesian coordinates <i>on this triaxial's \n      surface</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.triaxials.triaxial5.Triaxial-class.html#forwardCartesian\" class=\"summary-sig-name\">forwardCartesian</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">x_xyz</span>,\n        <span class=\"summary-sig-arg\">y</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">z</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">normal</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">**eps_name</span>)</span><br />\n      Project any cartesian to a cartesian <i>on this triaxial's \n      surface</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.triaxials.triaxial5.Triaxial-class.html#forwardLatLon\" class=\"summary-sig-name\">forwardLatLon</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lat</span>,\n        <span class=\"summary-sig-arg\">lon</span>,\n        <span class=\"summary-sig-arg\">height</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">**unit_name</span>)</span><br />\n      Convert <i>geodetic</i> lat-, longitude and height to cartesian.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.triaxials.triaxial5.Triaxial-class.html#forwardLatLon_\" class=\"summary-sig-name\">forwardLatLon_</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">slat</span>,\n        <span class=\"summary-sig-arg\">clat</span>,\n        <span class=\"summary-sig-arg\">slon</span>,\n        <span class=\"summary-sig-arg\">clon</span>,\n        <span class=\"summary-sig-arg\">height</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Convert <i>geodetic</i> lat-, longitude and height to cartesian.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.triaxials.triaxial5.Triaxial-class.html#reverseBetaOmega\" class=\"summary-sig-name\">reverseBetaOmega</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">x_xyz</span>,\n        <span class=\"summary-sig-arg\">y</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">z</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Convert cartesian to <i>ellipsoidal</i> lat- and longitude, \n      <code>beta</code>, <code>omega</code> and height.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.triaxials.triaxial5.Triaxial-class.html#reverseCartesian\" class=\"summary-sig-name\">reverseCartesian</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">x_xyz</span>,\n        <span class=\"summary-sig-arg\">y</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">z</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">height</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">normal</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">eps</span>=<span class=\"summary-sig-default\">4.440892098500626e-12</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      &quot;Unproject&quot; a cartesian <i>off</i> this triaxial's surface.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.triaxials.triaxial5.Triaxial-class.html#reverseLatLon\" class=\"summary-sig-name\">reverseLatLon</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">x_xyz</span>,\n        <span class=\"summary-sig-arg\">y</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">z</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Convert cartesian to <i>geodetic</i> lat-, longitude and height.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html\">bases._UnOrderedTriaxialBase</a></code></b>:\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#areaKT\">areaKT</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#area_p\">area_p</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#ellipse5\">ellipse5</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#hartzell4\">hartzell4</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#height4\">height4</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#normal3d\">normal3d</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#normal4\">normal4</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#sideOf\">sideOf</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#toBiaxial\">toBiaxial</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#toEllipsoid\">toEllipsoid</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#toStr\">toStr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedEnumItem-class.html\">named._NamedEnumItem</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedEnumItem-class.html#unregister\">unregister</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#others\">others</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#toRepr\">toRepr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.triaxials.bases._OrderedTriaxialBase-class.html\">bases._OrderedTriaxialBase</a></code></b>:\n      <code><a href=\"pygeodesy.triaxials.bases._OrderedTriaxialBase-class.html#area\">area</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._OrderedTriaxialBase-class.html#area21k\">area21k</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html\">bases._UnOrderedTriaxialBase</a></code></b>:\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#R2\">R2</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#R3\">R3</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#Rauthalic\">Rauthalic</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#Rvolumetric\">Rvolumetric</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#a\">a</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#a2\">a2</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#abc3\">abc3</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#areaRG\">areaRG</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#b\">b</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#b2\">b2</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#c\">c</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#c2\">c2</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#e2ab\">e2ab</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#e2ac\">e2ac</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#e2bc\">e2bc</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#isFlat\">isFlat</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#isOblate\">isOblate</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#isOrdered\">isOrdered</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#isProlate\">isProlate</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#isSpherical\">isSpherical</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#perimeter4ab\">perimeter4ab</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#perimeter4ac\">perimeter4ac</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#perimeter4bc\">perimeter4bc</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#unOrdered\">unOrdered</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#volume\">volume</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedEnumItem-class.html\">named._NamedEnumItem</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedEnumItem-class.html#name\">name</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">a_triaxial</span>,\n        <span class=\"sig-arg\">b</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">c</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <i>ordered</i> <a \n  href=\"pygeodesy.triaxials.triaxial5.Triaxial-class.html\" \n  class=\"link\">Triaxial</a>, <a \n  href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html\" \n  class=\"link\">Triaxial3</a>, <a \n  href=\"pygeodesy.triaxials.triaxial5.Conformal-class.html\" \n  class=\"link\">Conformal</a> or <a \n  href=\"pygeodesy.triaxials.conformal3.Conformal3-class.html\" \n  class=\"link\">Conformal3</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>a_triaxial</code></strong> - Largest semi-axis (<code>scalar</code>, conventionally in \n          <code>meter</code>) or an other <a \n          href=\"pygeodesy.triaxials.triaxial5.Triaxial-class.html\" \n          class=\"link\">Triaxial</a> or <a \n          href=\"pygeodesy.triaxials.triaxial5.Triaxial_-class.html\" \n          class=\"link\">Triaxial_</a> instance.</li>\n        <li><strong class=\"pname\"><code>b</code></strong> - Middle semi-axis (<code>meter</code>, same units as \n          <b><code>a</code></b>), required if <code><b>a_triaxial</b> is \n          scalar</code>, ignored otherwise.</li>\n        <li><strong class=\"pname\"><code>c</code></strong> - Smallest semi-axis (<code>meter</code>, like \n          <b><code>b</code></b>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.triaxials.bases.TriaxialError-class.html\">TriaxialError</a></strong></code> - Semi-axes unordered, spherical or invalid.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        The semi-axes must be ordered as <code><b>a</b> &gt;= <b>b</b> \n        &gt;= <b>c</b> &gt; 0</code> and must be ellipsoidal, \n        <code><b>a</b> &gt; <b>c</b></code>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"forwardBetaOmega\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">forwardBetaOmega</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">beta</span>,\n        <span class=\"sig-arg\">omega</span>,\n        <span class=\"sig-arg\">height</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">**unit_name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert <i>ellipsoidal</i> lat- <code>beta</code>, longitude \n  <code>omega</code> and <code>height</code> to cartesian.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>beta</code></strong> - Ellipsoidal latitude (<code>Ang</code> or \n          <b><code>unit</code></b>).</li>\n        <li><strong class=\"pname\"><code>omega</code></strong> - Ellipsoidal longitude (<code>Ang</code> or \n          <b><code>unit</code></b>).</li>\n        <li><strong class=\"pname\"><code>height</code></strong> - Height above or below the triaxial's surface (<code>meter</code>,\n          same units as this triaxial's semi-axes.</li>\n        <li><strong class=\"pname\"><code>unit_name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>) and \n          scalar <code><b>unit</b>=</code><a \n          href=\"pygeodesy.units.Radians-class.html\" \n          class=\"link\">Radians</a> (or <a \n          href=\"pygeodesy.units.Degrees-class.html\" \n          class=\"link\">Degrees</a>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.namedTuples.Vector3Tuple-class.html\" \n          class=\"link\">Vector3Tuple</a><code>(x, y, z)</code>.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <a \n        href=\"pygeodesy.triaxials.triaxial5.Triaxial-class.html#reverseBetaOmega\"\n        class=\"link\">Triaxial.reverseBetaOmega</a> and <a \n        href=\"https://OLD.Topo.Auth.GR/wp-content/uploads/sites/111/2021/12/09_Panou.pdf\"\n        target=\"_top\">equations (23-25)</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"forwardBetaOmega_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">forwardBetaOmega_</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">sbeta</span>,\n        <span class=\"sig-arg\">cbeta</span>,\n        <span class=\"sig-arg\">somega</span>,\n        <span class=\"sig-arg\">comega</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert <i>ellipsoidal</i> lat- and longitude <code>beta</code> and \n  <code>omega</code> to cartesian coordinates <i>on this triaxial's \n  surface</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>sbeta</code></strong> - Ellipsoidal latitude <code>sin(beta)</code> \n          (<code>scalar</code>).</li>\n        <li><strong class=\"pname\"><code>cbeta</code></strong> - Ellipsoidal latitude <code>cos(beta)</code> \n          (<code>scalar</code>).</li>\n        <li><strong class=\"pname\"><code>somega</code></strong> - Ellipsoidal longitude <code>sin(omega)</code> \n          (<code>scalar</code>).</li>\n        <li><strong class=\"pname\"><code>comega</code></strong> - Ellipsoidal longitude <code>cos(omega)</code> \n          (<code>scalar</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.namedTuples.Vector3Tuple-class.html\" \n          class=\"link\">Vector3Tuple</a><code>(x, y, z)</code> on the \n          surface.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.triaxials.bases.TriaxialError-class.html\">TriaxialError</a></strong></code> - This triaxial is near-spherical.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <a \n        href=\"pygeodesy.triaxials.triaxial5.Triaxial-class.html#reverseBetaOmega\"\n        class=\"link\">Triaxial.reverseBetaOmega</a>, <a \n        href=\"https://WikiPedia.org/wiki/Geodesics_on_an_ellipsoid#Triaxial_ellipsoid_coordinate_system\"\n        target=\"_top\">Triaxial ellipsoid coordinate system</a> and <a \n        href=\"https://OLD.Topo.Auth.GR/wp-content/uploads/sites/111/2021/12/09_Panou.pdf\"\n        target=\"_top\">equations (23-25)</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"forwardCartesian\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">forwardCartesian</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">x_xyz</span>,\n        <span class=\"sig-arg\">y</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">z</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">normal</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">**eps_name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Project any cartesian to a cartesian <i>on this triaxial's \n  surface</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>x_xyz</code></strong> - X component (<code>scalar</code>) or a cartesian \n          (<code>Cartesian</code>, <a \n          href=\"pygeodesy.ecef.Ecef9Tuple-class.html\" \n          class=\"link\">Ecef9Tuple</a>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <a \n          href=\"pygeodesy.namedTuples.Vector3Tuple-class.html\" \n          class=\"link\">Vector3Tuple</a> or <a \n          href=\"pygeodesy.namedTuples.Vector4Tuple-class.html\" \n          class=\"link\">Vector4Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>y</code></strong> - Y component (<code>scalar</code>), required if \n          <b><code>x_xyz</code></b> is <code>scalar</code>, ignored \n          otherwise.</li>\n        <li><strong class=\"pname\"><code>z</code></strong> - Z component (<code>scalar</code>), like <b><code>y</code></b>.</li>\n        <li><strong class=\"pname\"><code>normal</code></strong> - If <code>True</code>, the projection is \n          <code>perpendicular</code> to the surface, otherwise \n          <code>radial</code> to the center of this triaxial \n          (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>eps_name</code></strong> - Root finder tolerance <code><b>eps</b>=EPS</code> and optional \n          <code><b>name</b>=&quot;height4&quot;</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.namedTuples.Vector4Tuple-class.html\" \n          class=\"link\">Vector4Tuple</a><code>(x, y, z, h)</code>.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <a \n        href=\"pygeodesy.triaxials.triaxial5.Triaxial-class.html#reverseCartesian\"\n        class=\"link\">Triaxial.reverseCartesian</a> to reverse the \n        projection and function <a \n        href=\"pygeodesy.triaxials.triaxial5-module.html#height4\" \n        class=\"link\">height4</a> for more details.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"forwardLatLon\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">forwardLatLon</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lat</span>,\n        <span class=\"sig-arg\">lon</span>,\n        <span class=\"sig-arg\">height</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">**unit_name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert <i>geodetic</i> lat-, longitude and height to cartesian.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat</code></strong> - Geodetic latitude (<code>Ang</code> or <b><code>unit</code></b>).</li>\n        <li><strong class=\"pname\"><code>lon</code></strong> - Geodetic longitude (<code>Ang</code> or \n          <b><code>unit</code></b>).</li>\n        <li><strong class=\"pname\"><code>height</code></strong> - Height above the ellipsoid (<code>meter</code>, same units as \n          this triaxial's semi-axes).</li>\n        <li><strong class=\"pname\"><code>unit_name</code></strong> - Optional scalar <code><b>unit</b>=</code><a \n          href=\"pygeodesy.units.Degrees-class.html\" \n          class=\"link\">Degrees</a> and <code><b>name</b>=NN</code> \n          (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.namedTuples.Vector3Tuple-class.html\" \n          class=\"link\">Vector3Tuple</a><code>(x, y, z)</code>.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <a \n        href=\"pygeodesy.triaxials.triaxial5.Triaxial-class.html#reverseLatLon\"\n        class=\"link\">Triaxial.reverseLatLon</a> and <a \n        href=\"https://OLD.Topo.Auth.GR/wp-content/uploads/sites/111/2021/12/09_Panou.pdf\"\n        target=\"_top\">equations (9-11)</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"forwardLatLon_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">forwardLatLon_</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">slat</span>,\n        <span class=\"sig-arg\">clat</span>,\n        <span class=\"sig-arg\">slon</span>,\n        <span class=\"sig-arg\">clon</span>,\n        <span class=\"sig-arg\">height</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert <i>geodetic</i> lat-, longitude and height to cartesian.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>slat</code></strong> - Geodetic latitude <code>sin(lat)</code> (<code>scalar</code>).</li>\n        <li><strong class=\"pname\"><code>clat</code></strong> - Geodetic latitude <code>cos(lat)</code> (<code>scalar</code>).</li>\n        <li><strong class=\"pname\"><code>slon</code></strong> - Geodetic longitude <code>sin(lon)</code> (<code>scalar</code>).</li>\n        <li><strong class=\"pname\"><code>clon</code></strong> - Geodetic longitude <code>cos(lon)</code> (<code>scalar</code>).</li>\n        <li><strong class=\"pname\"><code>height</code></strong> - Height above the ellipsoid (<code>meter</code>, same units as \n          this triaxial's semi-axes).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.namedTuples.Vector3Tuple-class.html\" \n          class=\"link\">Vector3Tuple</a><code>(x, y, z)</code>.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <a \n        href=\"pygeodesy.triaxials.triaxial5.Triaxial-class.html#reverseLatLon\"\n        class=\"link\">Triaxial.reverseLatLon</a> and <a \n        href=\"https://OLD.Topo.Auth.GR/wp-content/uploads/sites/111/2021/12/09_Panou.pdf\"\n        target=\"_top\">equations (9-11)</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"reverseBetaOmega\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">reverseBetaOmega</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">x_xyz</span>,\n        <span class=\"sig-arg\">y</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">z</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert cartesian to <i>ellipsoidal</i> lat- and longitude, \n  <code>beta</code>, <code>omega</code> and height.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>x_xyz</code></strong> - X component (<code>scalar</code>) or a cartesian \n          (<code>Cartesian</code>, <a \n          href=\"pygeodesy.ecef.Ecef9Tuple-class.html\" \n          class=\"link\">Ecef9Tuple</a>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <a \n          href=\"pygeodesy.namedTuples.Vector3Tuple-class.html\" \n          class=\"link\">Vector3Tuple</a> or <a \n          href=\"pygeodesy.namedTuples.Vector4Tuple-class.html\" \n          class=\"link\">Vector4Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>y</code></strong> - Y component (<code>scalar</code>), required if \n          <b><code>x_xyz</code></b> is <code>scalar</code>, ignored \n          otherwise.</li>\n        <li><strong class=\"pname\"><code>z</code></strong> - Z component (<code>scalar</code>), like <b><code>y</code></b>.</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a \n          href=\"pygeodesy.triaxials.triaxial5.BetaOmega3Tuple-class.html\" \n          class=\"link\">BetaOmega3Tuple</a><code>(beta, omega, \n          height)</code> with <code>beta</code> and <code>omega</code> in \n          <a href=\"pygeodesy.units.Radians-class.html\" \n          class=\"link\">Radians</a> and (radial) <code>height</code> in \n          <code>meter</code>, same units as this triaxial's semi-axes.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Methods <a \n        href=\"pygeodesy.triaxials.triaxial5.Triaxial-class.html#forwardBetaOmega\"\n        class=\"link\">Triaxial.forwardBetaOmega</a> and <a \n        href=\"pygeodesy.triaxials.triaxial5.Triaxial-class.html#forwardBetaOmega_\"\n        class=\"link\">Triaxial.forwardBetaOmega_</a> and <a \n        href=\"https://OLD.Topo.Auth.GR/wp-content/uploads/sites/111/2021/12/09_Panou.pdf\"\n        target=\"_top\">equations (21-22)</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"reverseCartesian\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">reverseCartesian</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">x_xyz</span>,\n        <span class=\"sig-arg\">y</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">z</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">height</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">normal</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">eps</span>=<span class=\"sig-default\">4.440892098500626e-12</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>&quot;Unproject&quot; a cartesian <i>off</i> this triaxial's \n  surface.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>x_xyz</code></strong> - X component (<code>scalar</code>) or a cartesian \n          (<code>Cartesian</code>, <a \n          href=\"pygeodesy.ecef.Ecef9Tuple-class.html\" \n          class=\"link\">Ecef9Tuple</a>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <a \n          href=\"pygeodesy.namedTuples.Vector3Tuple-class.html\" \n          class=\"link\">Vector3Tuple</a> or <a \n          href=\"pygeodesy.namedTuples.Vector4Tuple-class.html\" \n          class=\"link\">Vector4Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>y</code></strong> - Y component (<code>scalar</code>), required if \n          <b><code>x_xyz</code></b> is <code>scalar</code>, ignored \n          otherwise.</li>\n        <li><strong class=\"pname\"><code>z</code></strong> - Z component (<code>scalar</code>), like <b><code>y</code></b>.</li>\n        <li><strong class=\"pname\"><code>height</code></strong> - Height above or below this triaxial's surface \n          (<code>meter</code>, same units as this triaxial's semi-axes).</li>\n        <li><strong class=\"pname\"><code>normal</code></strong> - If <code>True</code>, <b><code>height</code></b> is \n          <code>perpendicular</code> to the surface, otherwise \n          <code>radial</code> to the center of this triaxial \n          (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>eps</code></strong> - Tolerance for on-surface test (<code>scalar</code>), see method \n          <a \n          href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#sideOf\"\n          class=\"link\">Triaxial.sideOf</a>.</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.namedTuples.Vector3Tuple-class.html\" \n          class=\"link\">Vector3Tuple</a><code>(x, y, z)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TrialError</strong></code> - Cartesian <b><code>x_xyz</code></b> or <code>(x, y, z)</code> not \n        on this triaxial's surface.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Methods <a \n        href=\"pygeodesy.triaxials.triaxial5.Triaxial-class.html#forwardCartesian\"\n        class=\"link\">Triaxial.forwardCartesian</a> and <a \n        href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#height4\"\n        class=\"link\">Triaxial.height4</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"reverseLatLon\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">reverseLatLon</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">x_xyz</span>,\n        <span class=\"sig-arg\">y</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">z</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert cartesian to <i>geodetic</i> lat-, longitude and height.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>x_xyz</code></strong> - X component (<code>scalar</code>) or a cartesian \n          (<code>Cartesian</code>, <a \n          href=\"pygeodesy.ecef.Ecef9Tuple-class.html\" \n          class=\"link\">Ecef9Tuple</a>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <a \n          href=\"pygeodesy.namedTuples.Vector3Tuple-class.html\" \n          class=\"link\">Vector3Tuple</a> or <a \n          href=\"pygeodesy.namedTuples.Vector4Tuple-class.html\" \n          class=\"link\">Vector4Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>y</code></strong> - Y component (<code>scalar</code>), required if \n          <b><code>x_xyz</code></b> is <code>scalar</code>, ignored \n          otherwise.</li>\n        <li><strong class=\"pname\"><code>z</code></strong> - Z component (<code>scalar</code>), like <b><code>y</code></b>.</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.namedTuples.LatLon3Tuple-class.html\" \n          class=\"link\">LatLon3Tuple</a><code>(lat, lon, height)</code> with\n          <code>lat</code> and <code>lon</code> in <code>degrees</code> and\n          (radial) <code>height</code> in <code>meter</code>, same units as\n          this triaxial's semi-axes.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Methods <a \n        href=\"pygeodesy.triaxials.triaxial5.Triaxial-class.html#forwardLatLon\"\n        class=\"link\">Triaxial.forwardLatLon</a> and <a \n        href=\"pygeodesy.triaxials.triaxial5.Triaxial-class.html#forwardLatLon_\"\n        class=\"link\">Triaxial.forwardLatLon_</a> and <a \n        href=\"https://OLD.Topo.Auth.GR/wp-content/uploads/sites/111/2021/12/09_Panou.pdf\"\n        target=\"_top\">equations (4-5)</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:21 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.triaxials.triaxial5.Triaxial_-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.triaxials.triaxial5.Triaxial_</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.triaxials-module.html\">Package&nbsp;triaxials</a> ::\n        <a href=\"pygeodesy.triaxials.triaxial5-module.html\" onclick=\"show_private();\">Module&nbsp;triaxial5</a> ::\n        Class&nbsp;Triaxial_\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.triaxials.triaxial5.Triaxial_-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Triaxial_</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n      object --+                \n               |                \n    <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+            \n                   |            \n    <a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+        \n                       |        \n    <a href=\"pygeodesy.named._NamedEnumItem-class.html\">named._NamedEnumItem</a> --+    \n                           |    \n<a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html\">bases._UnOrderedTriaxialBase</a> --+\n                               |\n                              <strong class=\"uidshort\">Triaxial_</strong>\n</pre>\n\n<hr />\n<p><i>Unordered</i> triaxial ellipsoid.</p>\n  <p>Triaxial ellipsoids with right-handed semi-axes <code>a</code>, \n  <code>b</code> and <code>c</code>, oriented such that the large principal\n  ellipse <code>ab</code> is the equator <i>Z</i>=0, <i>beta</i>=0, while \n  the small principal ellipse <code>ac</code> is the prime meridian, plane \n  <i>Y</i>=0, <i>omega</i>=0.</p>\n  <p>The four umbilic points, <code>abs</code>(<i>omega</i>) = \n  <code>abs</code>(<i>beta</i>) = <code>PI/2</code>, lie on the middle \n  principal ellipse <code>bc</code> in plane <i>X</i>=0, \n  <i>omega</i>=<code>PI/2</code>.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Note:</strong>\n        <i>Geodetic</i> <code>lat</code>- and <code>lon</code>gitudes are \n        in <code>degrees</code>, <i>geodetic</i> <code>phi</code> and \n        <code>lam</code>bda are in <code>radians</code>, but \n        <i>ellipsoidal</i> lat- and longitude <code>beta</code> and \n        <code>omega</code> are in <a \n        href=\"pygeodesy.units.Radians-class.html\" class=\"link\">Radians</a> \n        by default (or in <a href=\"pygeodesy.units.Degrees-class.html\" \n        class=\"link\">Degrees</a> if converted).\n      </p>\n</div><!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.triaxials.triaxial5.Triaxial_-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">a_triaxial</span>,\n        <span class=\"summary-sig-arg\">b</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">c</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      New <i>unordered</i> <code>Triaxial_</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html\">bases._UnOrderedTriaxialBase</a></code></b>:\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#areaKT\">areaKT</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#area_p\">area_p</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#ellipse5\">ellipse5</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#hartzell4\">hartzell4</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#height4\">height4</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#normal3d\">normal3d</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#normal4\">normal4</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#sideOf\">sideOf</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#toBiaxial\">toBiaxial</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#toEllipsoid\">toEllipsoid</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#toStr\">toStr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedEnumItem-class.html\">named._NamedEnumItem</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedEnumItem-class.html#unregister\">unregister</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#others\">others</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#toRepr\">toRepr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html\">bases._UnOrderedTriaxialBase</a></code></b>:\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#R2\">R2</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#R3\">R3</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#Rauthalic\">Rauthalic</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#Rvolumetric\">Rvolumetric</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#a\">a</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#a2\">a2</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#abc3\">abc3</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#area\">area</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#areaRG\">areaRG</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#b\">b</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#b2\">b2</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#c\">c</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#c2\">c2</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#e2ab\">e2ab</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#e2ac\">e2ac</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#e2bc\">e2bc</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#isFlat\">isFlat</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#isOblate\">isOblate</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#isOrdered\">isOrdered</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#isProlate\">isProlate</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#isSpherical\">isSpherical</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#perimeter4ab\">perimeter4ab</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#perimeter4ac\">perimeter4ac</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#perimeter4bc\">perimeter4bc</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#unOrdered\">unOrdered</a></code>,\n      <code><a href=\"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-class.html#volume\">volume</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedEnumItem-class.html\">named._NamedEnumItem</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedEnumItem-class.html#name\">name</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">a_triaxial</span>,\n        <span class=\"sig-arg\">b</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">c</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <i>unordered</i> <code>Triaxial_</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>a_triaxial</code></strong> - Large, <code>X</code> semi-axis (<code>scalar</code>, \n          conventionally in <code>meter</code>) or an other <a \n          href=\"pygeodesy.triaxials.triaxial5.Triaxial-class.html\" \n          class=\"link\">Triaxial</a>, <a \n          href=\"pygeodesy.triaxials.triaxial5.Triaxial_-class.html\" \n          class=\"link\">Triaxial_</a> or TriaxialB instance.</li>\n        <li><strong class=\"pname\"><code>b</code></strong> - Middle, <code>Y</code> semi-axis (<code>meter</code>, same units \n          as <b><code>a</code></b>), required if <code><b>a_triaxial</b> is\n          scalar</code>, ignored otherwise.</li>\n        <li><strong class=\"pname\"><code>c</code></strong> - Small, <code>Z</code> semi-axis (<code>meter</code>, like \n          <b><code>b</code></b>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.triaxials.bases.TriaxialError-class.html\">TriaxialError</a></strong></code> - Invalid semi-axis or -axes.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:21 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.units-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.units</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        Module&nbsp;units\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.units-module.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== MODULE DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Module units</h1><p class=\"nomargin-top\"></p>\n<p>Various named units, all sub-classes of <code>Float</code>, \n  <code>Int</code> or <code>Str</code> from basic <code>float</code>, \n  <code>int</code> respectively <code>str</code> to named units as <a \n  href=\"pygeodesy.units.Degrees-class.html\" class=\"link\">Degrees</a>, <a \n  href=\"pygeodesy.units.Feet-class.html\" class=\"link\">Feet</a>, <a \n  href=\"pygeodesy.units.Meter-class.html\" class=\"link\">Meter</a>, <a \n  href=\"pygeodesy.units.Radians-class.html\" class=\"link\">Radians</a>, \n  etc.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Version:</strong>\n        26.03.12\n      </p>\n</div><!-- ==================== CLASSES ==================== -->\n<a name=\"section-Classes\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Classes</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.unitsBase._NamedUnit-class.html\" class=\"summary-name\">_NamedUnit</a><br />\n      (INTERNAL) Base class for <code>units</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.units.Float_-class.html\" class=\"summary-name\">Float_</a><br />\n      Named <code>float</code> with optional <code>low</code> and \n        <code>high</code> limit.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.units.Int_-class.html\" class=\"summary-name\">Int_</a><br />\n      Named <code>int</code> with optional limits <code>low</code> and \n        <code>high</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.units.Bool-class.html\" class=\"summary-name\">Bool</a><br />\n      Named <code>bool</code>, a sub-class of <code>int</code> like \n        Python's <code>bool</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.units.Band-class.html\" class=\"summary-name\">Band</a><br />\n      Named <code>str</code> representing a UTM/UPS band letter, \n        unchecked.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.units.Degrees-class.html\" class=\"summary-name\">Degrees</a><br />\n      Named <code>float</code> representing a coordinate in \n        <code>degrees</code>, optionally clipped.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.units.Degrees_-class.html\" class=\"summary-name\">Degrees_</a><br />\n      Named <code>Degrees</code> representing a coordinate in \n        <code>degrees</code> with optional limits <code>low</code> and \n        <code>high</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.units.Degrees2-class.html\" class=\"summary-name\">Degrees2</a><br />\n      Named <code>float</code> representing a distance in <code>degrees \n        squared</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.units.Radians-class.html\" class=\"summary-name\">Radians</a><br />\n      Named <code>float</code> representing a coordinate in \n        <code>radians</code>, optionally clipped.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.units.Radians_-class.html\" class=\"summary-name\">Radians_</a><br />\n      Named <code>float</code> representing a coordinate in \n        <code>radians</code> with optional limits <code>low</code> and \n        <code>high</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.units.Radians2-class.html\" class=\"summary-name\">Radians2</a><br />\n      Named <code>float</code> representing a distance in <code>radians \n        squared</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.units.Azimuth-class.html\" class=\"summary-name\">Azimuth</a><br />\n      Named <code>float</code> representing an azimuth in compass \n        <code>degrees</code> from (true) North.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.units.Bearing-class.html\" class=\"summary-name\">Bearing</a><br />\n      Named <code>float</code> representing a bearing in compass \n        <code>degrees</code> from (true) North.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.units.Bearing_-class.html\" class=\"summary-name\">Bearing_</a><br />\n      Named <code>float</code> representing a bearing in \n        <code>radians</code> from compass <code>degrees</code> from (true) \n        North.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.units.Distance-class.html\" class=\"summary-name\">Distance</a><br />\n      Named <code>float</code> representing a distance, conventionally in\n        <code>meter</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.units.Distance_-class.html\" class=\"summary-name\">Distance_</a><br />\n      Named <code>float</code> with optional <code>low</code> and \n        <code>high</code> limits representing a distance, conventionally in\n        <code>meter</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.units.Easting-class.html\" class=\"summary-name\">Easting</a><br />\n      Named <code>float</code> representing an easting, conventionally in\n        <code>meter</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.units.Epoch-class.html\" class=\"summary-name\">Epoch</a><br />\n      Named <code>epoch</code> with optional <code>low</code> and \n        <code>high</code> limits representing a fractional calendar year.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.units.Feet-class.html\" class=\"summary-name\">Feet</a><br />\n      Named <code>float</code> representing a distance or length in \n        <code>feet</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.units.FIx-class.html\" class=\"summary-name\">FIx</a><br />\n      A named <i>Fractional Index</i>, an <code>int</code> or \n        <code>float</code> index into a <code>list</code> or \n        <code>tuple</code> of <code>points</code>, typically.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.units.Height-class.html\" class=\"summary-name\">Height</a><br />\n      Named <code>float</code> representing a height, conventionally in \n        <code>meter</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.units.Height_-class.html\" class=\"summary-name\">Height_</a><br />\n      Named <code>float</code> with optional <code>low</code> and \n        <code>high</code> limits representing a height, conventionally in \n        <code>meter</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.units.HeightX-class.html\" class=\"summary-name\">HeightX</a><br />\n      Like <a href=\"pygeodesy.units.Height-class.html\" \n        class=\"link\">Height</a>, used to distinguish the interpolated \n        height from an original <a href=\"pygeodesy.units.Height-class.html\"\n        class=\"link\">Height</a> at a clip intersection.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.units.Lam-class.html\" class=\"summary-name\">Lam</a><br />\n      Named <code>float</code> representing a longitude in \n        <code>radians</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.units.Lamd-class.html\" class=\"summary-name\">Lamd</a><br />\n      Named <code>float</code> representing a longitude in \n        <code>radians</code> converted from <code>degrees</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.units.Lat-class.html\" class=\"summary-name\">Lat</a><br />\n      Named <code>float</code> representing a latitude in \n        <code>degrees</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.units.Lat_-class.html\" class=\"summary-name\">Lat_</a><br />\n      Named <code>float</code> representing a latitude in \n        <code>degrees</code> within limits <code>low</code> and \n        <code>high</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.units.Lon-class.html\" class=\"summary-name\">Lon</a><br />\n      Named <code>float</code> representing a longitude in \n        <code>degrees</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.units.Lon_-class.html\" class=\"summary-name\">Lon_</a><br />\n      Named <code>float</code> representing a longitude in \n        <code>degrees</code> within limits <code>low</code> and \n        <code>high</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.units.Meter-class.html\" class=\"summary-name\">Meter</a><br />\n      Named <code>float</code> representing a distance or length in \n        <code>meter</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.units.Meter_-class.html\" class=\"summary-name\">Meter_</a><br />\n      Named <code>float</code> representing a distance or length in \n        <code>meter</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.units.Meter2-class.html\" class=\"summary-name\">Meter2</a><br />\n      Named <code>float</code> representing an area in <code>meter \n        squared</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.units.Meter3-class.html\" class=\"summary-name\">Meter3</a><br />\n      Named <code>float</code> representing a volume in <code>meter \n        cubed</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.units.Northing-class.html\" class=\"summary-name\">Northing</a><br />\n      Named <code>float</code> representing a northing, conventionally in\n        <code>meter</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.units.Number_-class.html\" class=\"summary-name\">Number_</a><br />\n      Named <code>int</code> representing a non-negative number.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.units.Phi-class.html\" class=\"summary-name\">Phi</a><br />\n      Named <code>float</code> representing a latitude in \n        <code>radians</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.units.Phid-class.html\" class=\"summary-name\">Phid</a><br />\n      Named <code>float</code> representing a latitude in \n        <code>radians</code> converted from <code>degrees</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.units.Precision_-class.html\" class=\"summary-name\">Precision_</a><br />\n      Named <code>int</code> with optional <code>low</code> and \n        <code>high</code> limits representing a precision.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.units.Radius_-class.html\" class=\"summary-name\">Radius_</a><br />\n      Named <code>float</code> with optional <code>low</code> and \n        <code>high</code> limits representing a radius, conventionally in \n        <code>meter</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.units.Scalar-class.html\" class=\"summary-name\">Scalar</a><br />\n      Named <code>float</code> representing a factor, fraction, scale, \n        etc.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.units.Scalar_-class.html\" class=\"summary-name\">Scalar_</a><br />\n      Named <code>float</code> with optional <code>low</code> and \n        <code>high</code> limits representing a factor, fraction, scale, \n        etc.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.units.Zone-class.html\" class=\"summary-name\">Zone</a><br />\n      Named <code>int</code> representing a UTM/UPS zone number.\n    </td>\n  </tr>\n</table>\n<!-- ==================== VARIABLES ==================== -->\n<a name=\"section-Variables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Variables</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"__all__\"></a><span class=\"summary-name\">__all__</span> = <code title=\"_ALL_LAZY.units\">_ALL_LAZY.units</code>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.units.Azimuth-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.units.Azimuth</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.units-module.html\">Module&nbsp;units</a> ::\n        Class&nbsp;Azimuth\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.units.Azimuth-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Azimuth</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n          object --+            \n                   |            \n               float --+        \n                       |        \n      object --+       |        \n               |       |        \n    <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+   |        \n                   |   |        \n<a href=\"pygeodesy.unitsBase._NamedUnit-class.html\">unitsBase._NamedUnit</a> --+        \n                       |        \n         <a href=\"pygeodesy.unitsBase.Float-class.html\">unitsBase.Float</a> --+    \n                           |    \n                     <a href=\"pygeodesy.units.Degrees-class.html\">Degrees</a> --+\n                               |\n                              <strong class=\"uidshort\">Azimuth</strong>\n</pre>\n\n<hr />\n<p>Named <code>float</code> representing an azimuth in compass \n  <code>degrees</code> from (true) North.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.units.Degrees-class.html\">Degrees</a></code></b>:\n      <code><a href=\"pygeodesy.units.Degrees-class.html#toDegrees\">toDegrees</a></code>,\n      <code><a href=\"pygeodesy.units.Degrees-class.html#toRadians\">toRadians</a></code>,\n      <code><a href=\"pygeodesy.units.Degrees-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.units.Degrees-class.html#toStr\">toStr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase.Float-class.html\">unitsBase.Float</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#__str__\">__str__</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>float</code></b>:\n      <code>__abs__</code>,\n      <code>__add__</code>,\n      <code>__coerce__</code>,\n      <code>__div__</code>,\n      <code>__divmod__</code>,\n      <code>__eq__</code>,\n      <code>__float__</code>,\n      <code>__floordiv__</code>,\n      <code>__format__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getformat__</code>,\n      <code>__getnewargs__</code>,\n      <code>__gt__</code>,\n      <code>__hash__</code>,\n      <code>__int__</code>,\n      <code>__le__</code>,\n      <code>__long__</code>,\n      <code>__lt__</code>,\n      <code>__mod__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__neg__</code>,\n      <code>__nonzero__</code>,\n      <code>__pos__</code>,\n      <code>__pow__</code>,\n      <code>__radd__</code>,\n      <code>__rdiv__</code>,\n      <code>__rdivmod__</code>,\n      <code>__rfloordiv__</code>,\n      <code>__rmod__</code>,\n      <code>__rmul__</code>,\n      <code>__rpow__</code>,\n      <code>__rsub__</code>,\n      <code>__rtruediv__</code>,\n      <code>__setformat__</code>,\n      <code>__sub__</code>,\n      <code>__truediv__</code>,\n      <code>__trunc__</code>,\n      <code>as_integer_ratio</code>,\n      <code>conjugate</code>,\n      <code>fromhex</code>,\n      <code>hex</code>,\n      <code>is_integer</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">a new object with type S, a subtype of T</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.units.Azimuth-class.html#__new__\" class=\"summary-sig-name\">__new__</a>(<span class=\"summary-sig-arg\">cls</span>,\n        <span class=\"summary-sig-arg\">arg</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">name</span>=<span class=\"summary-sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">azimuth</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"summary-sig-arg\">**clip_Error_name_arg</span>)</span><br />\n      New, named <a href=\"pygeodesy.units.Azimuth-class.html\" \n      class=\"link\">Azimuth</a> with optional suffix 'E' for clockwise or \n      'W' for anti-clockwise, see <a \n      href=\"pygeodesy.units.Degrees-class.html\" class=\"link\">Degrees</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase.Float-class.html\">unitsBase.Float</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#isneg0\">isneg0</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>float</code></b>:\n      <code>imag</code>,\n      <code>real</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html\">unitsBase._NamedUnit</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html#std_repr\">std_repr</a></code>,\n      <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__new__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__new__</span>&nbsp;(<span class=\"sig-arg\">cls</span>,\n        <span class=\"sig-arg\">arg</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">name</span>=<span class=\"sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">azimuth</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"sig-arg\">**clip_Error_name_arg</span>)</span>\n    <br /><em class=\"fname\">Static Method</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New, named <a href=\"pygeodesy.units.Azimuth-class.html\" \n  class=\"link\">Azimuth</a> with optional suffix 'E' for clockwise or 'W' \n  for anti-clockwise, see <a href=\"pygeodesy.units.Degrees-class.html\" \n  class=\"link\">Degrees</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>cls</code></strong> - This class (<code>Degrees</code> or sub-class).</li>\n        <li><strong class=\"pname\"><code>arg</code></strong> - The value (any <code>type</code> convertable to \n          <code>float</code> or parsable by function <a \n          href=\"pygeodesy.dms-module.html#parseDMS\" \n          class=\"link\">parseDMS</a>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional instance name (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>suffix</code></strong> - Optional, valid compass direction suffixes (<code>NSEW</code>).</li>\n        <li><strong class=\"pname\"><code>clip</code></strong> - Optional <b><code>arg</code></b> range \n          <b><code>-clip..+clip</code></b> (<code>degrees</code> or \n          <code>0</code> or <code>None</code> for unclipped).</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - Optionally adjust the <b><code>arg</code></b> value (<a \n          href=\"pygeodesy.utily-module.html#wrap90\" \n          class=\"link\">wrap90</a>, <a \n          href=\"pygeodesy.utily-module.html#wrap180\" \n          class=\"link\">wrap180</a> or <a \n          href=\"pygeodesy.utily-module.html#wrap360\" \n          class=\"link\">wrap360</a>).</li>\n        <li><strong class=\"pname\"><code>Error</code></strong> - Optional error to raise, overriding the default <a \n          href=\"pygeodesy.errors.UnitError-class.html\" \n          class=\"link\">UnitError</a>.</li>\n        <li><strong class=\"pname\"><code>name_arg</code></strong> - Optional <code>name=arg</code> keyword argument, inlieu of \n          separate <b><code>arg</code></b> and <b><code>name</code></b> \n          ones.</li>\n    </ul></dd>\n    <dt>Returns: a new object with type S, a subtype of T</dt>\n        <dd>A <code>Degrees</code> instance.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>Error</strong></code> - Invalid <b><code>arg</code></b> or <b><code>abs(arg)</code></b> \n        outside the <b><code>clip</code></b> range and <a \n        href=\"pygeodesy.errors-module.html#rangerrors\" \n        class=\"link\">rangerrors</a> is <code>True</code>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__new__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:21 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.units.Band-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.units.Band</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.units-module.html\">Module&nbsp;units</a> ::\n        Class&nbsp;Band\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.units.Band-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Band</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n      object --+            \n               |            \n      basestring --+        \n                   |        \n                 str --+    \n                       |    \n      object --+       |    \n               |       |    \n    <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+   |    \n                   |   |    \n<a href=\"pygeodesy.unitsBase._NamedUnit-class.html\">unitsBase._NamedUnit</a> --+    \n                       |    \n           <a href=\"pygeodesy.unitsBase.Str-class.html\">unitsBase.Str</a> --+\n                           |\n                          <strong class=\"uidshort\">Band</strong>\n</pre>\n\n<hr />\n<p>Named <code>str</code> representing a UTM/UPS band letter, \n  unchecked.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase.Str-class.html\">unitsBase.Str</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase.Str-class.html#__call__\">__call__</a></code>,\n      <code><a href=\"pygeodesy.unitsBase.Str-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.unitsBase.Str-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.unitsBase.Str-class.html#join_\">join_</a></code>,\n      <code><a href=\"pygeodesy.unitsBase.Str-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.unitsBase.Str-class.html#toStr\">toStr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>str</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__eq__</code>,\n      <code>__format__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__hash__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__mod__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__rmod__</code>,\n      <code>__rmul__</code>,\n      <code>__sizeof__</code>,\n      <code>capitalize</code>,\n      <code>center</code>,\n      <code>count</code>,\n      <code>decode</code>,\n      <code>encode</code>,\n      <code>endswith</code>,\n      <code>expandtabs</code>,\n      <code>find</code>,\n      <code>format</code>,\n      <code>index</code>,\n      <code>isalnum</code>,\n      <code>isalpha</code>,\n      <code>isdigit</code>,\n      <code>islower</code>,\n      <code>isspace</code>,\n      <code>istitle</code>,\n      <code>isupper</code>,\n      <code>join</code>,\n      <code>ljust</code>,\n      <code>lower</code>,\n      <code>lstrip</code>,\n      <code>partition</code>,\n      <code>replace</code>,\n      <code>rfind</code>,\n      <code>rindex</code>,\n      <code>rjust</code>,\n      <code>rpartition</code>,\n      <code>rsplit</code>,\n      <code>rstrip</code>,\n      <code>split</code>,\n      <code>splitlines</code>,\n      <code>startswith</code>,\n      <code>strip</code>,\n      <code>swapcase</code>,\n      <code>title</code>,\n      <code>translate</code>,\n      <code>upper</code>,\n      <code>zfill</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">a new object with type S, a subtype of T</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.units.Band-class.html#__new__\" class=\"summary-sig-name\">__new__</a>(<span class=\"summary-sig-arg\">cls</span>,\n        <span class=\"summary-sig-arg\">arg</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">name</span>=<span class=\"summary-sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">band</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"summary-sig-arg\">**Error_name_arg</span>)</span><br />\n      New, named <a href=\"pygeodesy.units.Band-class.html\" \n      class=\"link\">Band</a>, see <a \n      href=\"pygeodesy.unitsBase.Str-class.html\" class=\"link\">Str</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html\">unitsBase._NamedUnit</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html#std_repr\">std_repr</a></code>,\n      <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__new__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__new__</span>&nbsp;(<span class=\"sig-arg\">cls</span>,\n        <span class=\"sig-arg\">arg</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">name</span>=<span class=\"sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">band</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"sig-arg\">**Error_name_arg</span>)</span>\n    <br /><em class=\"fname\">Static Method</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New, named <a href=\"pygeodesy.units.Band-class.html\" \n  class=\"link\">Band</a>, see <a href=\"pygeodesy.unitsBase.Str-class.html\" \n  class=\"link\">Str</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>cls</code></strong> - This class (<code>Str</code> or sub-class).</li>\n        <li><strong class=\"pname\"><code>arg</code></strong> - The value (any <code>type</code> acceptable to <code>str</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional name (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>Error_name_arg</code></strong> - Optional <code><b>Error</b>=UnitError</code> to raise and \n          optional <code>name=arg</code> keyword argument, inlieu of \n          separate <b><code>arg</code></b> and <b><code>name</code></b> \n          ones.</li>\n    </ul></dd>\n    <dt>Returns: a new object with type S, a subtype of T</dt>\n        <dd>A named <a href=\"pygeodesy.unitsBase.Str-class.html\" \n          class=\"link\">Str</a>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>Error</strong></code> - Invalid <b><code>arg</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__new__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:21 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.units.Bearing-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.units.Bearing</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.units-module.html\">Module&nbsp;units</a> ::\n        Class&nbsp;Bearing\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.units.Bearing-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Bearing</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n          object --+            \n                   |            \n               float --+        \n                       |        \n      object --+       |        \n               |       |        \n    <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+   |        \n                   |   |        \n<a href=\"pygeodesy.unitsBase._NamedUnit-class.html\">unitsBase._NamedUnit</a> --+        \n                       |        \n         <a href=\"pygeodesy.unitsBase.Float-class.html\">unitsBase.Float</a> --+    \n                           |    \n                     <a href=\"pygeodesy.units.Degrees-class.html\">Degrees</a> --+\n                               |\n                              <strong class=\"uidshort\">Bearing</strong>\n</pre>\n\n<hr />\n<p>Named <code>float</code> representing a bearing in compass \n  <code>degrees</code> from (true) North.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.units.Degrees-class.html\">Degrees</a></code></b>:\n      <code><a href=\"pygeodesy.units.Degrees-class.html#toDegrees\">toDegrees</a></code>,\n      <code><a href=\"pygeodesy.units.Degrees-class.html#toRadians\">toRadians</a></code>,\n      <code><a href=\"pygeodesy.units.Degrees-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.units.Degrees-class.html#toStr\">toStr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase.Float-class.html\">unitsBase.Float</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#__str__\">__str__</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>float</code></b>:\n      <code>__abs__</code>,\n      <code>__add__</code>,\n      <code>__coerce__</code>,\n      <code>__div__</code>,\n      <code>__divmod__</code>,\n      <code>__eq__</code>,\n      <code>__float__</code>,\n      <code>__floordiv__</code>,\n      <code>__format__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getformat__</code>,\n      <code>__getnewargs__</code>,\n      <code>__gt__</code>,\n      <code>__hash__</code>,\n      <code>__int__</code>,\n      <code>__le__</code>,\n      <code>__long__</code>,\n      <code>__lt__</code>,\n      <code>__mod__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__neg__</code>,\n      <code>__nonzero__</code>,\n      <code>__pos__</code>,\n      <code>__pow__</code>,\n      <code>__radd__</code>,\n      <code>__rdiv__</code>,\n      <code>__rdivmod__</code>,\n      <code>__rfloordiv__</code>,\n      <code>__rmod__</code>,\n      <code>__rmul__</code>,\n      <code>__rpow__</code>,\n      <code>__rsub__</code>,\n      <code>__rtruediv__</code>,\n      <code>__setformat__</code>,\n      <code>__sub__</code>,\n      <code>__truediv__</code>,\n      <code>__trunc__</code>,\n      <code>as_integer_ratio</code>,\n      <code>conjugate</code>,\n      <code>fromhex</code>,\n      <code>hex</code>,\n      <code>is_integer</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">a new object with type S, a subtype of T</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.units.Bearing-class.html#__new__\" class=\"summary-sig-name\">__new__</a>(<span class=\"summary-sig-arg\">cls</span>,\n        <span class=\"summary-sig-arg\">arg</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">name</span>=<span class=\"summary-sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">bearing</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"summary-sig-arg\">**clip_Error_name_arg</span>)</span><br />\n      New, named <a href=\"pygeodesy.units.Bearing-class.html\" \n      class=\"link\">Bearing</a>, see <a \n      href=\"pygeodesy.units.Degrees-class.html\" class=\"link\">Degrees</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase.Float-class.html\">unitsBase.Float</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#isneg0\">isneg0</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>float</code></b>:\n      <code>imag</code>,\n      <code>real</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html\">unitsBase._NamedUnit</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html#std_repr\">std_repr</a></code>,\n      <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__new__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__new__</span>&nbsp;(<span class=\"sig-arg\">cls</span>,\n        <span class=\"sig-arg\">arg</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">name</span>=<span class=\"sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">bearing</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"sig-arg\">**clip_Error_name_arg</span>)</span>\n    <br /><em class=\"fname\">Static Method</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New, named <a href=\"pygeodesy.units.Bearing-class.html\" \n  class=\"link\">Bearing</a>, see <a \n  href=\"pygeodesy.units.Degrees-class.html\" class=\"link\">Degrees</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>cls</code></strong> - This class (<code>Degrees</code> or sub-class).</li>\n        <li><strong class=\"pname\"><code>arg</code></strong> - The value (any <code>type</code> convertable to \n          <code>float</code> or parsable by function <a \n          href=\"pygeodesy.dms-module.html#parseDMS\" \n          class=\"link\">parseDMS</a>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional instance name (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>suffix</code></strong> - Optional, valid compass direction suffixes (<code>NSEW</code>).</li>\n        <li><strong class=\"pname\"><code>clip</code></strong> - Optional <b><code>arg</code></b> range \n          <b><code>-clip..+clip</code></b> (<code>degrees</code> or \n          <code>0</code> or <code>None</code> for unclipped).</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - Optionally adjust the <b><code>arg</code></b> value (<a \n          href=\"pygeodesy.utily-module.html#wrap90\" \n          class=\"link\">wrap90</a>, <a \n          href=\"pygeodesy.utily-module.html#wrap180\" \n          class=\"link\">wrap180</a> or <a \n          href=\"pygeodesy.utily-module.html#wrap360\" \n          class=\"link\">wrap360</a>).</li>\n        <li><strong class=\"pname\"><code>Error</code></strong> - Optional error to raise, overriding the default <a \n          href=\"pygeodesy.errors.UnitError-class.html\" \n          class=\"link\">UnitError</a>.</li>\n        <li><strong class=\"pname\"><code>name_arg</code></strong> - Optional <code>name=arg</code> keyword argument, inlieu of \n          separate <b><code>arg</code></b> and <b><code>name</code></b> \n          ones.</li>\n    </ul></dd>\n    <dt>Returns: a new object with type S, a subtype of T</dt>\n        <dd>A <code>Degrees</code> instance.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>Error</strong></code> - Invalid <b><code>arg</code></b> or <b><code>abs(arg)</code></b> \n        outside the <b><code>clip</code></b> range and <a \n        href=\"pygeodesy.errors-module.html#rangerrors\" \n        class=\"link\">rangerrors</a> is <code>True</code>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__new__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:21 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.units.Bearing_-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.units.Bearing_</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.units-module.html\">Module&nbsp;units</a> ::\n        Class&nbsp;Bearing_\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.units.Bearing_-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Bearing_</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n          object --+            \n                   |            \n               float --+        \n                       |        \n      object --+       |        \n               |       |        \n    <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+   |        \n                   |   |        \n<a href=\"pygeodesy.unitsBase._NamedUnit-class.html\">unitsBase._NamedUnit</a> --+        \n                       |        \n         <a href=\"pygeodesy.unitsBase.Float-class.html\">unitsBase.Float</a> --+    \n                           |    \n                     <a href=\"pygeodesy.units.Radians-class.html\">Radians</a> --+\n                               |\n                              <strong class=\"uidshort\">Bearing_</strong>\n</pre>\n\n<hr />\n<p>Named <code>float</code> representing a bearing in \n  <code>radians</code> from compass <code>degrees</code> from (true) \n  North.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.units.Radians-class.html\">Radians</a></code></b>:\n      <code><a href=\"pygeodesy.units.Radians-class.html#toDegrees\">toDegrees</a></code>,\n      <code><a href=\"pygeodesy.units.Radians-class.html#toRadians\">toRadians</a></code>,\n      <code><a href=\"pygeodesy.units.Radians-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.units.Radians-class.html#toStr\">toStr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase.Float-class.html\">unitsBase.Float</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#__str__\">__str__</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>float</code></b>:\n      <code>__abs__</code>,\n      <code>__add__</code>,\n      <code>__coerce__</code>,\n      <code>__div__</code>,\n      <code>__divmod__</code>,\n      <code>__eq__</code>,\n      <code>__float__</code>,\n      <code>__floordiv__</code>,\n      <code>__format__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getformat__</code>,\n      <code>__getnewargs__</code>,\n      <code>__gt__</code>,\n      <code>__hash__</code>,\n      <code>__int__</code>,\n      <code>__le__</code>,\n      <code>__long__</code>,\n      <code>__lt__</code>,\n      <code>__mod__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__neg__</code>,\n      <code>__nonzero__</code>,\n      <code>__pos__</code>,\n      <code>__pow__</code>,\n      <code>__radd__</code>,\n      <code>__rdiv__</code>,\n      <code>__rdivmod__</code>,\n      <code>__rfloordiv__</code>,\n      <code>__rmod__</code>,\n      <code>__rmul__</code>,\n      <code>__rpow__</code>,\n      <code>__rsub__</code>,\n      <code>__rtruediv__</code>,\n      <code>__setformat__</code>,\n      <code>__sub__</code>,\n      <code>__truediv__</code>,\n      <code>__trunc__</code>,\n      <code>as_integer_ratio</code>,\n      <code>conjugate</code>,\n      <code>fromhex</code>,\n      <code>hex</code>,\n      <code>is_integer</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">a new object with type S, a subtype of T</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.units.Bearing_-class.html#__new__\" class=\"summary-sig-name\">__new__</a>(<span class=\"summary-sig-arg\">cls</span>,\n        <span class=\"summary-sig-arg\">arg</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**name_clip_Error_name_arg</span>)</span><br />\n      New, named <a href=\"pygeodesy.units.Bearing_-class.html\" \n      class=\"link\">Bearing_</a>, see <a \n      href=\"pygeodesy.units.Bearing-class.html\" class=\"link\">Bearing</a> \n      and <a href=\"pygeodesy.units.Radians-class.html\" \n      class=\"link\">Radians</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase.Float-class.html\">unitsBase.Float</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#isneg0\">isneg0</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>float</code></b>:\n      <code>imag</code>,\n      <code>real</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html\">unitsBase._NamedUnit</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html#std_repr\">std_repr</a></code>,\n      <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__new__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__new__</span>&nbsp;(<span class=\"sig-arg\">cls</span>,\n        <span class=\"sig-arg\">arg</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**name_clip_Error_name_arg</span>)</span>\n    <br /><em class=\"fname\">Static Method</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New, named <a href=\"pygeodesy.units.Bearing_-class.html\" \n  class=\"link\">Bearing_</a>, see <a \n  href=\"pygeodesy.units.Bearing-class.html\" class=\"link\">Bearing</a> and <a\n  href=\"pygeodesy.units.Radians-class.html\" class=\"link\">Radians</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>cls</code></strong> - This class (<code>Radians</code> or sub-class).</li>\n        <li><strong class=\"pname\"><code>arg</code></strong> - The value (any <code>type</code> convertable to \n          <code>float</code> or parsable by <a \n          href=\"pygeodesy.dms-module.html#parseRad\" \n          class=\"link\">pygeodesy.parseRad</a>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional instance name (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>suffix</code></strong> - Optional, valid compass direction suffixes (<code>NSEW</code>).</li>\n        <li><strong class=\"pname\"><code>clip</code></strong> - Optional <b><code>arg</code></b> range \n          <b><code>-clip..+clip</code></b> (<code>radians</code> or \n          <code>0</code> or <code>None</code> for unclipped).</li>\n        <li><strong class=\"pname\"><code>Error</code></strong> - Optional error to raise, overriding the default <a \n          href=\"pygeodesy.errors.UnitError-class.html\" \n          class=\"link\">UnitError</a>.</li>\n        <li><strong class=\"pname\"><code>name_arg</code></strong> - Optional <code>name=arg</code> keyword argument, inlieu of \n          separate <b><code>arg</code></b> and <b><code>name</code></b> \n          ones.</li>\n    </ul></dd>\n    <dt>Returns: a new object with type S, a subtype of T</dt>\n        <dd>A named <code>Radians</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>Error</strong></code> - Invalid <b><code>arg</code></b> or <b><code>abs(arg)</code></b> \n        outside the <b><code>clip</code></b> range and <a \n        href=\"pygeodesy.errors-module.html#rangerrors\" \n        class=\"link\">rangerrors</a> is <code>True</code>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__new__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:21 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.units.Bool-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.units.Bool</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.units-module.html\">Module&nbsp;units</a> ::\n        Class&nbsp;Bool\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.units.Bool-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Bool</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n          object --+        \n                   |        \n                 int --+    \n                       |    \n      object --+       |    \n               |       |    \n    <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+   |    \n                   |   |    \n<a href=\"pygeodesy.unitsBase._NamedUnit-class.html\">unitsBase._NamedUnit</a> --+    \n                       |    \n           <a href=\"pygeodesy.unitsBase.Int-class.html\">unitsBase.Int</a> --+\n                           |\n          object --+       |\n                   |       |\n        <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+   |\n                       |   |\n    <a href=\"pygeodesy.unitsBase._NamedUnit-class.html\">unitsBase._NamedUnit</a> --+\n                           |\n                          <strong class=\"uidshort\">Bool</strong>\n</pre>\n\n<hr />\n<p>Named <code>bool</code>, a sub-class of <code>int</code> like Python's\n  <code>bool</code>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__bool__\"></a><span class=\"summary-sig-name\">__bool__</span>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      x != 0</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.units.Bool-class.html#__nonzero__\" class=\"summary-sig-name\">__nonzero__</a>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      x != 0</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.units.Bool-class.html#toRepr\" class=\"summary-sig-name\">toRepr</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">std</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">**unused</span>)</span><br />\n      Return a representation of this <code>Bool</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.units.Bool-class.html#toStr\" class=\"summary-sig-name\">toStr</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">**unused</span>)</span><br />\n      Return this <code>Bool</code> as standard <code>str</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase.Int-class.html\">unitsBase.Int</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase.Int-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.unitsBase.Int-class.html#__str__\">__str__</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>int</code></b>:\n      <code>__abs__</code>,\n      <code>__add__</code>,\n      <code>__and__</code>,\n      <code>__cmp__</code>,\n      <code>__coerce__</code>,\n      <code>__div__</code>,\n      <code>__divmod__</code>,\n      <code>__float__</code>,\n      <code>__floordiv__</code>,\n      <code>__format__</code>,\n      <code>__getattribute__</code>,\n      <code>__getnewargs__</code>,\n      <code>__hash__</code>,\n      <code>__hex__</code>,\n      <code>__index__</code>,\n      <code>__int__</code>,\n      <code>__invert__</code>,\n      <code>__long__</code>,\n      <code>__lshift__</code>,\n      <code>__mod__</code>,\n      <code>__mul__</code>,\n      <code>__neg__</code>,\n      <code>__oct__</code>,\n      <code>__or__</code>,\n      <code>__pos__</code>,\n      <code>__pow__</code>,\n      <code>__radd__</code>,\n      <code>__rand__</code>,\n      <code>__rdiv__</code>,\n      <code>__rdivmod__</code>,\n      <code>__rfloordiv__</code>,\n      <code>__rlshift__</code>,\n      <code>__rmod__</code>,\n      <code>__rmul__</code>,\n      <code>__ror__</code>,\n      <code>__rpow__</code>,\n      <code>__rrshift__</code>,\n      <code>__rshift__</code>,\n      <code>__rsub__</code>,\n      <code>__rtruediv__</code>,\n      <code>__rxor__</code>,\n      <code>__sub__</code>,\n      <code>__truediv__</code>,\n      <code>__trunc__</code>,\n      <code>__xor__</code>,\n      <code>bit_length</code>,\n      <code>conjugate</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">a new object with type S, a subtype of T</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.units.Bool-class.html#__new__\" class=\"summary-sig-name\">__new__</a>(<span class=\"summary-sig-arg\">cls</span>,\n        <span class=\"summary-sig-arg\">arg</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">name</span>=<span class=\"summary-sig-default\">''</span>,\n        <span class=\"summary-sig-arg\">Error</span>=<span class=\"summary-sig-default\">&lt;class 'pygeodesy.errors.UnitError'&gt;</span>,\n        <span class=\"summary-sig-arg\">**name_arg</span>)</span><br />\n      New, named <code>Bool</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>int</code></b>:\n      <code>denominator</code>,\n      <code>imag</code>,\n      <code>numerator</code>,\n      <code>real</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html\">unitsBase._NamedUnit</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html#std_repr\">std_repr</a></code>,\n      <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__new__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__new__</span>&nbsp;(<span class=\"sig-arg\">cls</span>,\n        <span class=\"sig-arg\">arg</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">name</span>=<span class=\"sig-default\">''</span>,\n        <span class=\"sig-arg\">Error</span>=<span class=\"sig-default\">&lt;class 'pygeodesy.errors.UnitError'&gt;</span>,\n        <span class=\"sig-arg\">**name_arg</span>)</span>\n    <br /><em class=\"fname\">Static Method</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New, named <code>Bool</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>cls</code></strong> - This class (<code>Bool</code> or sub-class).</li>\n        <li><strong class=\"pname\"><code>arg</code></strong> - The value (any <code>type</code> convertable to \n          <code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional instance name (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>Error</code></strong> - Optional error to raise, overriding the default <a \n          href=\"pygeodesy.errors.UnitError-class.html\" \n          class=\"link\">UnitError</a>.</li>\n        <li><strong class=\"pname\"><code>name_arg</code></strong> - Optional <code>name=arg</code> keyword argument, inlieu of \n          separate <b><code>arg</code></b> and <b><code>name</code></b> \n          ones.</li>\n    </ul></dd>\n    <dt>Returns: a new object with type S, a subtype of T</dt>\n        <dd>A named <a href=\"pygeodesy.units.Bool-class.html\" \n          class=\"link\">Bool</a>, <code>bool</code>-like.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>Error</strong></code> - Invalid <b><code>arg</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__new__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__nonzero__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__nonzero__</span>&nbsp;(<span class=\"sig-arg\">self</span>)</span>\n    <br /><em class=\"fname\">(Boolean test operator)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>x != 0</p>\n  <dl class=\"fields\">\n    <dt>Overrides:\n        int.__nonzero__\n        <dd><em class=\"note\">(inherited documentation)</em></dd>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toRepr\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toRepr</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">std</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">**unused</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return a representation of this <code>Bool</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>std</code></strong> - Use the standard <code>repr</code> or the named representation \n          (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.named._Named-class.html#toRepr\">named._Named.toRepr</a>\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        Use <code>env</code> variable \n        <code>PYGEODESY_BOOL_STD_REPR=std</code> prior to <code>import \n        pygeodesy</code> to get the standard <code>repr</code> or set \n        property <code>std_repr=False</code> to always get the named \n        <code>toRepr</code> representation.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"toStr\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toStr</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">**unused</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return this <code>Bool</code> as standard <code>str</code>.</p>\n  <dl class=\"fields\">\n    <dt>Overrides:\n        <a href=\"pygeodesy.named._Named-class.html#toStr\">named._Named.toStr</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:21 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.units.Degrees-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.units.Degrees</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.units-module.html\">Module&nbsp;units</a> ::\n        Class&nbsp;Degrees\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.units.Degrees-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Degrees</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n          object --+        \n                   |        \n               float --+    \n                       |    \n      object --+       |    \n               |       |    \n    <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+   |    \n                   |   |    \n<a href=\"pygeodesy.unitsBase._NamedUnit-class.html\">unitsBase._NamedUnit</a> --+    \n                       |    \n         <a href=\"pygeodesy.unitsBase.Float-class.html\">unitsBase.Float</a> --+\n                           |\n                          <strong class=\"uidshort\">Degrees</strong>\n</pre>\n\n<dl><dt>Known Subclasses:</dt>\n<dd>\n      <ul class=\"subclass-list\">\n<li><a href=\"pygeodesy.units.Azimuth-class.html\">Azimuth</a></li><li>, <a href=\"pygeodesy.units.Bearing-class.html\">Bearing</a></li><li>, <a href=\"pygeodesy.units.Degrees_-class.html\">Degrees_</a></li><li>, <a href=\"pygeodesy.units.Lat-class.html\">Lat</a></li><li>, <a href=\"pygeodesy.units.Lon-class.html\">Lon</a></li>  </ul>\n</dd></dl>\n\n<hr />\n<p>Named <code>float</code> representing a coordinate in \n  <code>degrees</code>, optionally clipped.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"toDegrees\"></a><span class=\"summary-sig-name\">toDegrees</span>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Convert <code>Degrees</code> to <code>Degrees</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"toRadians\"></a><span class=\"summary-sig-name\">toRadians</span>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Convert <code>Degrees</code> to <code>Radians</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.units.Degrees-class.html#toRepr\" class=\"summary-sig-name\">toRepr</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">std</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">**prec_fmt_ints</span>)</span><br />\n      Return a representation of this <code>Degrees</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.units.Degrees-class.html#toStr\" class=\"summary-sig-name\">toStr</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">prec</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">fmt</span>=<span class=\"summary-sig-default\">'-f'</span>,\n        <span class=\"summary-sig-arg\">ints</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">**s_D_M_S</span>)</span><br />\n      Return this <code>Degrees</code> as standard <code>str</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase.Float-class.html\">unitsBase.Float</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#__str__\">__str__</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>float</code></b>:\n      <code>__abs__</code>,\n      <code>__add__</code>,\n      <code>__coerce__</code>,\n      <code>__div__</code>,\n      <code>__divmod__</code>,\n      <code>__eq__</code>,\n      <code>__float__</code>,\n      <code>__floordiv__</code>,\n      <code>__format__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getformat__</code>,\n      <code>__getnewargs__</code>,\n      <code>__gt__</code>,\n      <code>__hash__</code>,\n      <code>__int__</code>,\n      <code>__le__</code>,\n      <code>__long__</code>,\n      <code>__lt__</code>,\n      <code>__mod__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__neg__</code>,\n      <code>__nonzero__</code>,\n      <code>__pos__</code>,\n      <code>__pow__</code>,\n      <code>__radd__</code>,\n      <code>__rdiv__</code>,\n      <code>__rdivmod__</code>,\n      <code>__rfloordiv__</code>,\n      <code>__rmod__</code>,\n      <code>__rmul__</code>,\n      <code>__rpow__</code>,\n      <code>__rsub__</code>,\n      <code>__rtruediv__</code>,\n      <code>__setformat__</code>,\n      <code>__sub__</code>,\n      <code>__truediv__</code>,\n      <code>__trunc__</code>,\n      <code>as_integer_ratio</code>,\n      <code>conjugate</code>,\n      <code>fromhex</code>,\n      <code>hex</code>,\n      <code>is_integer</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">a new object with type S, a subtype of T</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.units.Degrees-class.html#__new__\" class=\"summary-sig-name\">__new__</a>(<span class=\"summary-sig-arg\">cls</span>,\n        <span class=\"summary-sig-arg\">arg</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">name</span>=<span class=\"summary-sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">degrees</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"summary-sig-arg\">suffix</span>=<span class=\"summary-sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">NSEW</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"summary-sig-arg\">clip</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">Error</span>=<span class=\"summary-sig-default\">&lt;class 'pygeodesy.errors.UnitError'&gt;</span>,\n        <span class=\"summary-sig-arg\">**name_arg</span>)</span><br />\n      New <code>Degrees</code> instance, see <a \n      href=\"pygeodesy.unitsBase.Float-class.html\" class=\"link\">Float</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase.Float-class.html\">unitsBase.Float</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#isneg0\">isneg0</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>float</code></b>:\n      <code>imag</code>,\n      <code>real</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html\">unitsBase._NamedUnit</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html#std_repr\">std_repr</a></code>,\n      <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__new__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__new__</span>&nbsp;(<span class=\"sig-arg\">cls</span>,\n        <span class=\"sig-arg\">arg</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">name</span>=<span class=\"sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">degrees</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"sig-arg\">suffix</span>=<span class=\"sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">NSEW</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"sig-arg\">clip</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">Error</span>=<span class=\"sig-default\">&lt;class 'pygeodesy.errors.UnitError'&gt;</span>,\n        <span class=\"sig-arg\">**name_arg</span>)</span>\n    <br /><em class=\"fname\">Static Method</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <code>Degrees</code> instance, see <a \n  href=\"pygeodesy.unitsBase.Float-class.html\" class=\"link\">Float</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>cls</code></strong> - This class (<code>Degrees</code> or sub-class).</li>\n        <li><strong class=\"pname\"><code>arg</code></strong> - The value (any <code>type</code> convertable to \n          <code>float</code> or parsable by function <a \n          href=\"pygeodesy.dms-module.html#parseDMS\" \n          class=\"link\">parseDMS</a>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional instance name (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>suffix</code></strong> - Optional, valid compass direction suffixes (<code>NSEW</code>).</li>\n        <li><strong class=\"pname\"><code>clip</code></strong> - Optional <b><code>arg</code></b> range \n          <b><code>-clip..+clip</code></b> (<code>degrees</code> or \n          <code>0</code> or <code>None</code> for unclipped).</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - Optionally adjust the <b><code>arg</code></b> value (<a \n          href=\"pygeodesy.utily-module.html#wrap90\" \n          class=\"link\">wrap90</a>, <a \n          href=\"pygeodesy.utily-module.html#wrap180\" \n          class=\"link\">wrap180</a> or <a \n          href=\"pygeodesy.utily-module.html#wrap360\" \n          class=\"link\">wrap360</a>).</li>\n        <li><strong class=\"pname\"><code>Error</code></strong> - Optional error to raise, overriding the default <a \n          href=\"pygeodesy.errors.UnitError-class.html\" \n          class=\"link\">UnitError</a>.</li>\n        <li><strong class=\"pname\"><code>name_arg</code></strong> - Optional <code>name=arg</code> keyword argument, inlieu of \n          separate <b><code>arg</code></b> and <b><code>name</code></b> \n          ones.</li>\n    </ul></dd>\n    <dt>Returns: a new object with type S, a subtype of T</dt>\n        <dd>A <code>Degrees</code> instance.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>Error</strong></code> - Invalid <b><code>arg</code></b> or <b><code>abs(arg)</code></b> \n        outside the <b><code>clip</code></b> range and <a \n        href=\"pygeodesy.errors-module.html#rangerrors\" \n        class=\"link\">rangerrors</a> is <code>True</code>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__new__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toRepr\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toRepr</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">std</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">**prec_fmt_ints</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return a representation of this <code>Degrees</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>std</code></strong> - If <code>True</code>, return the standard <code>repr</code>, \n          otherwise the named representation (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.named._Named-class.html#toRepr\">named._Named.toRepr</a>\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Methods <a href=\"pygeodesy.units.Degrees-class.html#toStr\" \n        class=\"link\">Degrees.toStr</a>, <a \n        href=\"pygeodesy.unitsBase.Float-class.html#toRepr\" \n        class=\"link\">Float.toRepr</a> and function <a \n        href=\"pygeodesy.dms-module.html#toDMS\" \n        class=\"link\">pygeodesy.toDMS</a> for futher \n        <code>prec_fmt_ints</code> details.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"toStr\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toStr</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">prec</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">fmt</span>=<span class=\"sig-default\">'-f'</span>,\n        <span class=\"sig-arg\">ints</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">**s_D_M_S</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return this <code>Degrees</code> as standard <code>str</code>.</p>\n  <dl class=\"fields\">\n    <dt>Overrides:\n        <a href=\"pygeodesy.named._Named-class.html#toStr\">named._Named.toStr</a>\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.dms-module.html#toDMS\" \n        class=\"link\">pygeodesy.toDMS</a> for futher details.\n      </p>\n</div></td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:21 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.units.Degrees2-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.units.Degrees2</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.units-module.html\">Module&nbsp;units</a> ::\n        Class&nbsp;Degrees2\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.units.Degrees2-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Degrees2</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n          object --+        \n                   |        \n               float --+    \n                       |    \n      object --+       |    \n               |       |    \n    <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+   |    \n                   |   |    \n<a href=\"pygeodesy.unitsBase._NamedUnit-class.html\">unitsBase._NamedUnit</a> --+    \n                       |    \n         <a href=\"pygeodesy.unitsBase.Float-class.html\">unitsBase.Float</a> --+\n                           |\n                          <strong class=\"uidshort\">Degrees2</strong>\n</pre>\n\n<hr />\n<p>Named <code>float</code> representing a distance in <code>degrees \n  squared</code>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase.Float-class.html\">unitsBase.Float</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#toStr\">toStr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>float</code></b>:\n      <code>__abs__</code>,\n      <code>__add__</code>,\n      <code>__coerce__</code>,\n      <code>__div__</code>,\n      <code>__divmod__</code>,\n      <code>__eq__</code>,\n      <code>__float__</code>,\n      <code>__floordiv__</code>,\n      <code>__format__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getformat__</code>,\n      <code>__getnewargs__</code>,\n      <code>__gt__</code>,\n      <code>__hash__</code>,\n      <code>__int__</code>,\n      <code>__le__</code>,\n      <code>__long__</code>,\n      <code>__lt__</code>,\n      <code>__mod__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__neg__</code>,\n      <code>__nonzero__</code>,\n      <code>__pos__</code>,\n      <code>__pow__</code>,\n      <code>__radd__</code>,\n      <code>__rdiv__</code>,\n      <code>__rdivmod__</code>,\n      <code>__rfloordiv__</code>,\n      <code>__rmod__</code>,\n      <code>__rmul__</code>,\n      <code>__rpow__</code>,\n      <code>__rsub__</code>,\n      <code>__rtruediv__</code>,\n      <code>__setformat__</code>,\n      <code>__sub__</code>,\n      <code>__truediv__</code>,\n      <code>__trunc__</code>,\n      <code>as_integer_ratio</code>,\n      <code>conjugate</code>,\n      <code>fromhex</code>,\n      <code>hex</code>,\n      <code>is_integer</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">a new object with type S, a subtype of T</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.units.Degrees2-class.html#__new__\" class=\"summary-sig-name\">__new__</a>(<span class=\"summary-sig-arg\">cls</span>,\n        <span class=\"summary-sig-arg\">arg</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">name</span>=<span class=\"summary-sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">degrees2</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"summary-sig-arg\">**Error_name_arg</span>)</span><br />\n      See <a href=\"pygeodesy.unitsBase.Float-class.html\" \n      class=\"link\">Float</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase.Float-class.html\">unitsBase.Float</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#isneg0\">isneg0</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>float</code></b>:\n      <code>imag</code>,\n      <code>real</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html\">unitsBase._NamedUnit</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html#std_repr\">std_repr</a></code>,\n      <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__new__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__new__</span>&nbsp;(<span class=\"sig-arg\">cls</span>,\n        <span class=\"sig-arg\">arg</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">name</span>=<span class=\"sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">degrees2</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"sig-arg\">**Error_name_arg</span>)</span>\n    <br /><em class=\"fname\">Static Method</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>See <a href=\"pygeodesy.unitsBase.Float-class.html\" \n  class=\"link\">Float</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>arg</code></strong> - The value (any <code>type</code> acceptable to \n          <code>float</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional name (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>Error_name_arg</code></strong> - Optional <code><b>Error</b>=UnitError</code> to raise and \n          optional <code>name=arg</code> keyword argument, inlieu of \n          separate <b><code>arg</code></b> and <b><code>name</code></b> \n          ones.</li>\n    </ul></dd>\n    <dt>Returns: a new object with type S, a subtype of T</dt>\n        <dd>A named <code>Float</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>Error</strong></code> - Invalid <b><code>arg</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__new__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:21 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.units.Degrees_-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.units.Degrees_</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.units-module.html\">Module&nbsp;units</a> ::\n        Class&nbsp;Degrees_\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.units.Degrees_-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Degrees_</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n          object --+            \n                   |            \n               float --+        \n                       |        \n      object --+       |        \n               |       |        \n    <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+   |        \n                   |   |        \n<a href=\"pygeodesy.unitsBase._NamedUnit-class.html\">unitsBase._NamedUnit</a> --+        \n                       |        \n         <a href=\"pygeodesy.unitsBase.Float-class.html\">unitsBase.Float</a> --+    \n                           |    \n                     <a href=\"pygeodesy.units.Degrees-class.html\">Degrees</a> --+\n                               |\n                              <strong class=\"uidshort\">Degrees_</strong>\n</pre>\n\n<dl><dt>Known Subclasses:</dt>\n<dd>\n      <ul class=\"subclass-list\">\n<li><a href=\"pygeodesy.units.Lat_-class.html\">Lat_</a></li><li>, <a href=\"pygeodesy.units.Lon_-class.html\">Lon_</a></li>  </ul>\n</dd></dl>\n\n<hr />\n<p>Named <code>Degrees</code> representing a coordinate in \n  <code>degrees</code> with optional limits <code>low</code> and \n  <code>high</code>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.units.Degrees-class.html\">Degrees</a></code></b>:\n      <code><a href=\"pygeodesy.units.Degrees-class.html#toDegrees\">toDegrees</a></code>,\n      <code><a href=\"pygeodesy.units.Degrees-class.html#toRadians\">toRadians</a></code>,\n      <code><a href=\"pygeodesy.units.Degrees-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.units.Degrees-class.html#toStr\">toStr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase.Float-class.html\">unitsBase.Float</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#__str__\">__str__</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>float</code></b>:\n      <code>__abs__</code>,\n      <code>__add__</code>,\n      <code>__coerce__</code>,\n      <code>__div__</code>,\n      <code>__divmod__</code>,\n      <code>__eq__</code>,\n      <code>__float__</code>,\n      <code>__floordiv__</code>,\n      <code>__format__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getformat__</code>,\n      <code>__getnewargs__</code>,\n      <code>__gt__</code>,\n      <code>__hash__</code>,\n      <code>__int__</code>,\n      <code>__le__</code>,\n      <code>__long__</code>,\n      <code>__lt__</code>,\n      <code>__mod__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__neg__</code>,\n      <code>__nonzero__</code>,\n      <code>__pos__</code>,\n      <code>__pow__</code>,\n      <code>__radd__</code>,\n      <code>__rdiv__</code>,\n      <code>__rdivmod__</code>,\n      <code>__rfloordiv__</code>,\n      <code>__rmod__</code>,\n      <code>__rmul__</code>,\n      <code>__rpow__</code>,\n      <code>__rsub__</code>,\n      <code>__rtruediv__</code>,\n      <code>__setformat__</code>,\n      <code>__sub__</code>,\n      <code>__truediv__</code>,\n      <code>__trunc__</code>,\n      <code>as_integer_ratio</code>,\n      <code>conjugate</code>,\n      <code>fromhex</code>,\n      <code>hex</code>,\n      <code>is_integer</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">a new object with type S, a subtype of T</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.units.Degrees_-class.html#__new__\" class=\"summary-sig-name\">__new__</a>(<span class=\"summary-sig-arg\">cls</span>,\n        <span class=\"summary-sig-arg\">arg</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">name</span>=<span class=\"summary-sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">degrees</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"summary-sig-arg\">low</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">high</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**suffix_Error_name_arg</span>)</span><br />\n      New, named <code>Degrees_</code>, see  <a \n      href=\"pygeodesy.units.Degrees-class.html\" class=\"link\">Degrees</a> \n      and <a href=\"pygeodesy.unitsBase.Float-class.html\" \n      class=\"link\">Float</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase.Float-class.html\">unitsBase.Float</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#isneg0\">isneg0</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>float</code></b>:\n      <code>imag</code>,\n      <code>real</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html\">unitsBase._NamedUnit</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html#std_repr\">std_repr</a></code>,\n      <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__new__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__new__</span>&nbsp;(<span class=\"sig-arg\">cls</span>,\n        <span class=\"sig-arg\">arg</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">name</span>=<span class=\"sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">degrees</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"sig-arg\">low</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">high</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**suffix_Error_name_arg</span>)</span>\n    <br /><em class=\"fname\">Static Method</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New, named <code>Degrees_</code>, see  <a \n  href=\"pygeodesy.units.Degrees-class.html\" class=\"link\">Degrees</a> and <a\n  href=\"pygeodesy.unitsBase.Float-class.html\" class=\"link\">Float</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>cls</code></strong> - This class (<code>Degrees_</code> or sub-class).</li>\n        <li><strong class=\"pname\"><code>arg</code></strong> - The value (any <code>type</code> convertable to \n          <code>float</code> or parsable by function <a \n          href=\"pygeodesy.dms-module.html#parseDMS\" \n          class=\"link\">parseDMS</a>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional instance name (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>low</code></strong> - Optional lower <b><code>arg</code></b> limit (<code>float</code> \n          or <code>None</code>).</li>\n        <li><strong class=\"pname\"><code>high</code></strong> - Optional upper <b><code>arg</code></b> limit (<code>float</code> \n          or <code>None</code>).</li>\n    </ul></dd>\n    <dt>Returns: a new object with type S, a subtype of T</dt>\n        <dd>A named <code>Degrees</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>Error</strong></code> - Invalid <b><code>arg</code></b> or <b><code>arg</code></b> below \n        <b><code>low</code></b> or above <b><code>high</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__new__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:21 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.units.Distance-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.units.Distance</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.units-module.html\">Module&nbsp;units</a> ::\n        Class&nbsp;Distance\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.units.Distance-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Distance</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n          object --+        \n                   |        \n               float --+    \n                       |    \n      object --+       |    \n               |       |    \n    <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+   |    \n                   |   |    \n<a href=\"pygeodesy.unitsBase._NamedUnit-class.html\">unitsBase._NamedUnit</a> --+    \n                       |    \n         <a href=\"pygeodesy.unitsBase.Float-class.html\">unitsBase.Float</a> --+\n                           |\n                          <strong class=\"uidshort\">Distance</strong>\n</pre>\n\n<hr />\n<p>Named <code>float</code> representing a distance, conventionally in \n  <code>meter</code>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase.Float-class.html\">unitsBase.Float</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#toStr\">toStr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>float</code></b>:\n      <code>__abs__</code>,\n      <code>__add__</code>,\n      <code>__coerce__</code>,\n      <code>__div__</code>,\n      <code>__divmod__</code>,\n      <code>__eq__</code>,\n      <code>__float__</code>,\n      <code>__floordiv__</code>,\n      <code>__format__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getformat__</code>,\n      <code>__getnewargs__</code>,\n      <code>__gt__</code>,\n      <code>__hash__</code>,\n      <code>__int__</code>,\n      <code>__le__</code>,\n      <code>__long__</code>,\n      <code>__lt__</code>,\n      <code>__mod__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__neg__</code>,\n      <code>__nonzero__</code>,\n      <code>__pos__</code>,\n      <code>__pow__</code>,\n      <code>__radd__</code>,\n      <code>__rdiv__</code>,\n      <code>__rdivmod__</code>,\n      <code>__rfloordiv__</code>,\n      <code>__rmod__</code>,\n      <code>__rmul__</code>,\n      <code>__rpow__</code>,\n      <code>__rsub__</code>,\n      <code>__rtruediv__</code>,\n      <code>__setformat__</code>,\n      <code>__sub__</code>,\n      <code>__truediv__</code>,\n      <code>__trunc__</code>,\n      <code>as_integer_ratio</code>,\n      <code>conjugate</code>,\n      <code>fromhex</code>,\n      <code>hex</code>,\n      <code>is_integer</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">a new object with type S, a subtype of T</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.units.Distance-class.html#__new__\" class=\"summary-sig-name\">__new__</a>(<span class=\"summary-sig-arg\">cls</span>,\n        <span class=\"summary-sig-arg\">arg</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">name</span>=<span class=\"summary-sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">distance</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"summary-sig-arg\">**Error_name_arg</span>)</span><br />\n      New, named <a href=\"pygeodesy.units.Distance-class.html\" \n      class=\"link\">Distance</a>, see <a \n      href=\"pygeodesy.unitsBase.Float-class.html\" class=\"link\">Float</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase.Float-class.html\">unitsBase.Float</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#isneg0\">isneg0</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>float</code></b>:\n      <code>imag</code>,\n      <code>real</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html\">unitsBase._NamedUnit</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html#std_repr\">std_repr</a></code>,\n      <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__new__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__new__</span>&nbsp;(<span class=\"sig-arg\">cls</span>,\n        <span class=\"sig-arg\">arg</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">name</span>=<span class=\"sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">distance</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"sig-arg\">**Error_name_arg</span>)</span>\n    <br /><em class=\"fname\">Static Method</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New, named <a href=\"pygeodesy.units.Distance-class.html\" \n  class=\"link\">Distance</a>, see <a \n  href=\"pygeodesy.unitsBase.Float-class.html\" class=\"link\">Float</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>arg</code></strong> - The value (any <code>type</code> acceptable to \n          <code>float</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional name (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>Error_name_arg</code></strong> - Optional <code><b>Error</b>=UnitError</code> to raise and \n          optional <code>name=arg</code> keyword argument, inlieu of \n          separate <b><code>arg</code></b> and <b><code>name</code></b> \n          ones.</li>\n    </ul></dd>\n    <dt>Returns: a new object with type S, a subtype of T</dt>\n        <dd>A named <code>Float</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>Error</strong></code> - Invalid <b><code>arg</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__new__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:21 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.units.Distance_-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.units.Distance_</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.units-module.html\">Module&nbsp;units</a> ::\n        Class&nbsp;Distance_\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.units.Distance_-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Distance_</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n          object --+            \n                   |            \n               float --+        \n                       |        \n      object --+       |        \n               |       |        \n    <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+   |        \n                   |   |        \n<a href=\"pygeodesy.unitsBase._NamedUnit-class.html\">unitsBase._NamedUnit</a> --+        \n                       |        \n         <a href=\"pygeodesy.unitsBase.Float-class.html\">unitsBase.Float</a> --+    \n                           |    \n                      <a href=\"pygeodesy.units.Float_-class.html\">Float_</a> --+\n                               |\n                              <strong class=\"uidshort\">Distance_</strong>\n</pre>\n\n<hr />\n<p>Named <code>float</code> with optional <code>low</code> and \n  <code>high</code> limits representing a distance, conventionally in \n  <code>meter</code>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase.Float-class.html\">unitsBase.Float</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#toStr\">toStr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>float</code></b>:\n      <code>__abs__</code>,\n      <code>__add__</code>,\n      <code>__coerce__</code>,\n      <code>__div__</code>,\n      <code>__divmod__</code>,\n      <code>__eq__</code>,\n      <code>__float__</code>,\n      <code>__floordiv__</code>,\n      <code>__format__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getformat__</code>,\n      <code>__getnewargs__</code>,\n      <code>__gt__</code>,\n      <code>__hash__</code>,\n      <code>__int__</code>,\n      <code>__le__</code>,\n      <code>__long__</code>,\n      <code>__lt__</code>,\n      <code>__mod__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__neg__</code>,\n      <code>__nonzero__</code>,\n      <code>__pos__</code>,\n      <code>__pow__</code>,\n      <code>__radd__</code>,\n      <code>__rdiv__</code>,\n      <code>__rdivmod__</code>,\n      <code>__rfloordiv__</code>,\n      <code>__rmod__</code>,\n      <code>__rmul__</code>,\n      <code>__rpow__</code>,\n      <code>__rsub__</code>,\n      <code>__rtruediv__</code>,\n      <code>__setformat__</code>,\n      <code>__sub__</code>,\n      <code>__truediv__</code>,\n      <code>__trunc__</code>,\n      <code>as_integer_ratio</code>,\n      <code>conjugate</code>,\n      <code>fromhex</code>,\n      <code>hex</code>,\n      <code>is_integer</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">a new object with type S, a subtype of T</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.units.Distance_-class.html#__new__\" class=\"summary-sig-name\">__new__</a>(<span class=\"summary-sig-arg\">cls</span>,\n        <span class=\"summary-sig-arg\">arg</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">name</span>=<span class=\"summary-sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">distance</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"summary-sig-arg\">**low_high_Error_name_arg</span>)</span><br />\n      New <a href=\"pygeodesy.units.Distance_-class.html\" \n      class=\"link\">Distance_</a> instance, see <a \n      href=\"pygeodesy.unitsBase.Float-class.html\" class=\"link\">Float</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase.Float-class.html\">unitsBase.Float</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#isneg0\">isneg0</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>float</code></b>:\n      <code>imag</code>,\n      <code>real</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html\">unitsBase._NamedUnit</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html#std_repr\">std_repr</a></code>,\n      <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__new__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__new__</span>&nbsp;(<span class=\"sig-arg\">cls</span>,\n        <span class=\"sig-arg\">arg</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">name</span>=<span class=\"sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">distance</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"sig-arg\">**low_high_Error_name_arg</span>)</span>\n    <br /><em class=\"fname\">Static Method</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.units.Distance_-class.html\" \n  class=\"link\">Distance_</a> instance, see <a \n  href=\"pygeodesy.unitsBase.Float-class.html\" class=\"link\">Float</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>cls</code></strong> - This class (<code>Float_</code> or sub-class).</li>\n        <li><strong class=\"pname\"><code>arg</code></strong> - The value (any <code>type</code> convertable to \n          <code>float</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional instance name (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>low</code></strong> - Optional lower <b><code>arg</code></b> limit (<code>float</code> \n          or <code>None</code>).</li>\n        <li><strong class=\"pname\"><code>high</code></strong> - Optional upper <b><code>arg</code></b> limit (<code>float</code> \n          or <code>None</code>).</li>\n    </ul></dd>\n    <dt>Returns: a new object with type S, a subtype of T</dt>\n        <dd>A named <code>Float_</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>Error</strong></code> - Invalid <b><code>arg</code></b> or <b><code>arg</code></b> below \n        <b><code>low</code></b> or above <b><code>high</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__new__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:21 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.units.Easting-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.units.Easting</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.units-module.html\">Module&nbsp;units</a> ::\n        Class&nbsp;Easting\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.units.Easting-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Easting</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n          object --+            \n                   |            \n               float --+        \n                       |        \n      object --+       |        \n               |       |        \n    <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+   |        \n                   |   |        \n<a href=\"pygeodesy.unitsBase._NamedUnit-class.html\">unitsBase._NamedUnit</a> --+        \n                       |        \n         <a href=\"pygeodesy.unitsBase.Float-class.html\">unitsBase.Float</a> --+    \n                           |    \n                 _EasNorBase --+\n                               |\n                              <strong class=\"uidshort\">Easting</strong>\n</pre>\n\n<hr />\n<p>Named <code>float</code> representing an easting, conventionally in \n  <code>meter</code>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase.Float-class.html\">unitsBase.Float</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#toStr\">toStr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>float</code></b>:\n      <code>__abs__</code>,\n      <code>__add__</code>,\n      <code>__coerce__</code>,\n      <code>__div__</code>,\n      <code>__divmod__</code>,\n      <code>__eq__</code>,\n      <code>__float__</code>,\n      <code>__floordiv__</code>,\n      <code>__format__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getformat__</code>,\n      <code>__getnewargs__</code>,\n      <code>__gt__</code>,\n      <code>__hash__</code>,\n      <code>__int__</code>,\n      <code>__le__</code>,\n      <code>__long__</code>,\n      <code>__lt__</code>,\n      <code>__mod__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__neg__</code>,\n      <code>__nonzero__</code>,\n      <code>__pos__</code>,\n      <code>__pow__</code>,\n      <code>__radd__</code>,\n      <code>__rdiv__</code>,\n      <code>__rdivmod__</code>,\n      <code>__rfloordiv__</code>,\n      <code>__rmod__</code>,\n      <code>__rmul__</code>,\n      <code>__rpow__</code>,\n      <code>__rsub__</code>,\n      <code>__rtruediv__</code>,\n      <code>__setformat__</code>,\n      <code>__sub__</code>,\n      <code>__truediv__</code>,\n      <code>__trunc__</code>,\n      <code>as_integer_ratio</code>,\n      <code>conjugate</code>,\n      <code>fromhex</code>,\n      <code>hex</code>,\n      <code>is_integer</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">a new object with type S, a subtype of T</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.units.Easting-class.html#__new__\" class=\"summary-sig-name\">__new__</a>(<span class=\"summary-sig-arg\">cls</span>,\n        <span class=\"summary-sig-arg\">arg</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">name</span>=<span class=\"summary-sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">easting</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"summary-sig-arg\">falsed</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">high</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**Error_name_arg</span>)</span><br />\n      New, named <code>Easting</code> or <code>Easting of Point</code>, see\n      <a href=\"pygeodesy.unitsBase.Float-class.html\" \n      class=\"link\">Float</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase.Float-class.html\">unitsBase.Float</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#isneg0\">isneg0</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>float</code></b>:\n      <code>imag</code>,\n      <code>real</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html\">unitsBase._NamedUnit</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html#std_repr\">std_repr</a></code>,\n      <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__new__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__new__</span>&nbsp;(<span class=\"sig-arg\">cls</span>,\n        <span class=\"sig-arg\">arg</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">name</span>=<span class=\"sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">easting</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"sig-arg\">falsed</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">high</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**Error_name_arg</span>)</span>\n    <br /><em class=\"fname\">Static Method</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New, named <code>Easting</code> or <code>Easting of Point</code>, see \n  <a href=\"pygeodesy.unitsBase.Float-class.html\" \n  class=\"link\">Float</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>cls</code></strong> - This class (<code>Easting</code> or sub-class).</li>\n        <li><strong class=\"pname\"><code>arg</code></strong> - The value (any <code>type</code> convertable to \n          <code>float</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional name (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>falsed</code></strong> - If <code>True</code>, the <b><code>arg</code></b> value is falsed\n          (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>high</code></strong> - Optional upper <b><code>arg</code></b> limit (<code>scalar</code>\n          or <code>None</code>).</li>\n    </ul></dd>\n    <dt>Returns: a new object with type S, a subtype of T</dt>\n        <dd>A named <code>Easting</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>Error</strong></code> - Invalid <b><code>arg</code></b>, above <b><code>high</code></b> or \n        negative, falsed <b><code>arg</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__new__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:21 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.units.Epoch-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.units.Epoch</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.units-module.html\">Module&nbsp;units</a> ::\n        Class&nbsp;Epoch\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.units.Epoch-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Epoch</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n          object --+            \n                   |            \n               float --+        \n                       |        \n      object --+       |        \n               |       |        \n    <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+   |        \n                   |   |        \n<a href=\"pygeodesy.unitsBase._NamedUnit-class.html\">unitsBase._NamedUnit</a> --+        \n                       |        \n         <a href=\"pygeodesy.unitsBase.Float-class.html\">unitsBase.Float</a> --+    \n                           |    \n                      <a href=\"pygeodesy.units.Float_-class.html\">Float_</a> --+\n                               |\n                              <strong class=\"uidshort\">Epoch</strong>\n</pre>\n\n<hr />\n<p>Named <code>epoch</code> with optional <code>low</code> and \n  <code>high</code> limits representing a fractional calendar year.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.units.Epoch-class.html#toRepr\" class=\"summary-sig-name\">toRepr</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">prec</span>=<span class=\"summary-sig-default\">3</span>,\n        <span class=\"summary-sig-arg\">std</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">**unused</span>)</span><br />\n      Return a representation of this <code>Epoch</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.units.Epoch-class.html#toStr\" class=\"summary-sig-name\">toStr</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">prec</span>=<span class=\"summary-sig-default\">3</span>,\n        <span class=\"summary-sig-arg\">**unused</span>)</span><br />\n      Format this <code>Epoch</code> as <code>str</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.units.Epoch-class.html#__str__\" class=\"summary-sig-name\">__str__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">prec</span>=<span class=\"summary-sig-default\">3</span>,\n        <span class=\"summary-sig-arg\">**unused</span>)</span><br />\n      Format this <code>Epoch</code> as <code>str</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase.Float-class.html\">unitsBase.Float</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#__repr__\">__repr__</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>float</code></b>:\n      <code>__abs__</code>,\n      <code>__add__</code>,\n      <code>__coerce__</code>,\n      <code>__div__</code>,\n      <code>__divmod__</code>,\n      <code>__eq__</code>,\n      <code>__float__</code>,\n      <code>__floordiv__</code>,\n      <code>__format__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getformat__</code>,\n      <code>__getnewargs__</code>,\n      <code>__gt__</code>,\n      <code>__hash__</code>,\n      <code>__int__</code>,\n      <code>__le__</code>,\n      <code>__long__</code>,\n      <code>__lt__</code>,\n      <code>__mod__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__neg__</code>,\n      <code>__nonzero__</code>,\n      <code>__pos__</code>,\n      <code>__pow__</code>,\n      <code>__radd__</code>,\n      <code>__rdiv__</code>,\n      <code>__rdivmod__</code>,\n      <code>__rfloordiv__</code>,\n      <code>__rmod__</code>,\n      <code>__rmul__</code>,\n      <code>__rpow__</code>,\n      <code>__rsub__</code>,\n      <code>__rtruediv__</code>,\n      <code>__setformat__</code>,\n      <code>__sub__</code>,\n      <code>__truediv__</code>,\n      <code>__trunc__</code>,\n      <code>as_integer_ratio</code>,\n      <code>conjugate</code>,\n      <code>fromhex</code>,\n      <code>hex</code>,\n      <code>is_integer</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">a new object with type S, a subtype of T</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.units.Epoch-class.html#__new__\" class=\"summary-sig-name\">__new__</a>(<span class=\"summary-sig-arg\">cls</span>,\n        <span class=\"summary-sig-arg\">arg</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">name</span>=<span class=\"summary-sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">epoch</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"summary-sig-arg\">low</span>=<span class=\"summary-sig-default\">1900</span>,\n        <span class=\"summary-sig-arg\">high</span>=<span class=\"summary-sig-default\">9999</span>,\n        <span class=\"summary-sig-arg\">Error</span>=<span class=\"summary-sig-default\">&lt;class 'pygeodesy.errors.TRFError'&gt;</span>,\n        <span class=\"summary-sig-arg\">**name_arg</span>)</span><br />\n      New, named <a href=\"pygeodesy.units.Epoch-class.html\" \n      class=\"link\">Epoch</a>, see <a \n      href=\"pygeodesy.units.Float_-class.html\" class=\"link\">Float_</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase.Float-class.html\">unitsBase.Float</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#isneg0\">isneg0</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>float</code></b>:\n      <code>imag</code>,\n      <code>real</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html\">unitsBase._NamedUnit</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html#std_repr\">std_repr</a></code>,\n      <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__new__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__new__</span>&nbsp;(<span class=\"sig-arg\">cls</span>,\n        <span class=\"sig-arg\">arg</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">name</span>=<span class=\"sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">epoch</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"sig-arg\">low</span>=<span class=\"sig-default\">1900</span>,\n        <span class=\"sig-arg\">high</span>=<span class=\"sig-default\">9999</span>,\n        <span class=\"sig-arg\">Error</span>=<span class=\"sig-default\">&lt;class 'pygeodesy.errors.TRFError'&gt;</span>,\n        <span class=\"sig-arg\">**name_arg</span>)</span>\n    <br /><em class=\"fname\">Static Method</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New, named <a href=\"pygeodesy.units.Epoch-class.html\" \n  class=\"link\">Epoch</a>, see <a href=\"pygeodesy.units.Float_-class.html\" \n  class=\"link\">Float_</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>cls</code></strong> - This class (<code>Float_</code> or sub-class).</li>\n        <li><strong class=\"pname\"><code>arg</code></strong> - The value (any <code>type</code> convertable to \n          <code>float</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional instance name (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>low</code></strong> - Optional lower <b><code>arg</code></b> limit (<code>float</code> \n          or <code>None</code>).</li>\n        <li><strong class=\"pname\"><code>high</code></strong> - Optional upper <b><code>arg</code></b> limit (<code>float</code> \n          or <code>None</code>).</li>\n    </ul></dd>\n    <dt>Returns: a new object with type S, a subtype of T</dt>\n        <dd>A named <code>Float_</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>Error</strong></code> - Invalid <b><code>arg</code></b> or <b><code>arg</code></b> below \n        <b><code>low</code></b> or above <b><code>high</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__new__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toRepr\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toRepr</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">prec</span>=<span class=\"sig-default\">3</span>,\n        <span class=\"sig-arg\">std</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">**unused</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return a representation of this <code>Epoch</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>std</code></strong> - Use the standard <code>repr</code> or the named representation \n          (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.named._Named-class.html#toRepr\">named._Named.toRepr</a>\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <a href=\"pygeodesy.unitsBase.Float-class.html#toRepr\" \n        class=\"link\">Float.toRepr</a> for more documentation.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"toStr\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toStr</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">prec</span>=<span class=\"sig-default\">3</span>,\n        <span class=\"sig-arg\">**unused</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Format this <code>Epoch</code> as <code>str</code>.</p>\n  <dl class=\"fields\">\n    <dt>Overrides:\n        <a href=\"pygeodesy.named._Named-class.html#toStr\">named._Named.toStr</a>\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.streprs-module.html#fstr\" \n        class=\"link\">pygeodesy.fstr</a> for more documentation.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"__str__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__str__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">prec</span>=<span class=\"sig-default\">3</span>,\n        <span class=\"sig-arg\">**unused</span>)</span>\n    <br /><em class=\"fname\">(Informal representation operator)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Format this <code>Epoch</code> as <code>str</code>.</p>\n  <dl class=\"fields\">\n    <dt>Overrides:\n        object.__str__\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.streprs-module.html#fstr\" \n        class=\"link\">pygeodesy.fstr</a> for more documentation.\n      </p>\n</div></td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:21 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.units.FIx-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.units.FIx</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.units-module.html\">Module&nbsp;units</a> ::\n        Class&nbsp;FIx\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.units.FIx-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class FIx</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n          object --+            \n                   |            \n               float --+        \n                       |        \n      object --+       |        \n               |       |        \n    <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+   |        \n                   |   |        \n<a href=\"pygeodesy.unitsBase._NamedUnit-class.html\">unitsBase._NamedUnit</a> --+        \n                       |        \n         <a href=\"pygeodesy.unitsBase.Float-class.html\">unitsBase.Float</a> --+    \n                           |    \n                      <a href=\"pygeodesy.units.Float_-class.html\">Float_</a> --+\n                               |\n                              <strong class=\"uidshort\">FIx</strong>\n</pre>\n\n<hr />\n<p>A named <i>Fractional Index</i>, an <code>int</code> or \n  <code>float</code> index into a <code>list</code> or <code>tuple</code> \n  of <code>points</code>, typically.  A <code>float</code> <i>Fractional \n  Index</i> <code>fi</code> represents a location on the edge between \n  <code>points[int(fi)]</code> and <code>points[(int(fi) + 1) % \n  len(points)]</code>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.units.FIx-class.html#fractional\" class=\"summary-sig-name\">fractional</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**LatLon_or_Vector_and_kwds</span>)</span><br />\n      Return the point at this <i>Fractional Index</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase.Float-class.html\">unitsBase.Float</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#toStr\">toStr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>float</code></b>:\n      <code>__abs__</code>,\n      <code>__add__</code>,\n      <code>__coerce__</code>,\n      <code>__div__</code>,\n      <code>__divmod__</code>,\n      <code>__eq__</code>,\n      <code>__float__</code>,\n      <code>__floordiv__</code>,\n      <code>__format__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getformat__</code>,\n      <code>__getnewargs__</code>,\n      <code>__gt__</code>,\n      <code>__hash__</code>,\n      <code>__int__</code>,\n      <code>__le__</code>,\n      <code>__long__</code>,\n      <code>__lt__</code>,\n      <code>__mod__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__neg__</code>,\n      <code>__nonzero__</code>,\n      <code>__pos__</code>,\n      <code>__pow__</code>,\n      <code>__radd__</code>,\n      <code>__rdiv__</code>,\n      <code>__rdivmod__</code>,\n      <code>__rfloordiv__</code>,\n      <code>__rmod__</code>,\n      <code>__rmul__</code>,\n      <code>__rpow__</code>,\n      <code>__rsub__</code>,\n      <code>__rtruediv__</code>,\n      <code>__setformat__</code>,\n      <code>__sub__</code>,\n      <code>__truediv__</code>,\n      <code>__trunc__</code>,\n      <code>as_integer_ratio</code>,\n      <code>conjugate</code>,\n      <code>fromhex</code>,\n      <code>hex</code>,\n      <code>is_integer</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">a new object with type S, a subtype of T</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.units.FIx-class.html#__new__\" class=\"summary-sig-name\">__new__</a>(<span class=\"summary-sig-arg\">cls</span>,\n        <span class=\"summary-sig-arg\">fi</span>,\n        <span class=\"summary-sig-arg\">fin</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">Error</span>=<span class=\"summary-sig-default\">&lt;class 'pygeodesy.errors.UnitError'&gt;</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      New, named <i>Fractional Index</i> in a <code>list</code> or \n      <code>tuple</code> of points.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.units.FIx-class.html#fin\" class=\"summary-name\">fin</a><br />\n      Get the given <code>len</code>, the index <code>[n]</code> wrapped to\n      <code>[0]</code> (<code>int</code>).\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase.Float-class.html\">unitsBase.Float</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#isneg0\">isneg0</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>float</code></b>:\n      <code>imag</code>,\n      <code>real</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html\">unitsBase._NamedUnit</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html#std_repr\">std_repr</a></code>,\n      <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__new__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__new__</span>&nbsp;(<span class=\"sig-arg\">cls</span>,\n        <span class=\"sig-arg\">fi</span>,\n        <span class=\"sig-arg\">fin</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">Error</span>=<span class=\"sig-default\">&lt;class 'pygeodesy.errors.UnitError'&gt;</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n    <br /><em class=\"fname\">Static Method</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New, named <i>Fractional Index</i> in a <code>list</code> or \n  <code>tuple</code> of points.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>fi</code></strong> - The fractional index (<code>float</code> or <code>int</code>).</li>\n        <li><strong class=\"pname\"><code>fin</code></strong> - Optional <code>len</code>, the number of <code>points</code>, the\n          index <code>[n]</code> wrapped to <code>[0]</code> \n          (<code>int</code> or <code>None</code>).</li>\n        <li><strong class=\"pname\"><code>Error</code></strong> - Optional error to raise.</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns: a new object with type S, a subtype of T</dt>\n        <dd>A named <b><code>fi</code></b> (<a \n          href=\"pygeodesy.units.FIx-class.html\" class=\"link\">FIx</a>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>Error</strong></code> - Invalid <b><code>arg</code></b> or <b><code>arg</code></b> below \n        <b><code>low</code></b> or above <b><code>high</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__new__\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        The returned <b><code>fi</code></b> may exceed the \n        <b><code>len</code></b>, number of original <code>points</code> in \n        certain open/closed cases.\n      </p>\n      <p><strong>See Also:</strong>\n        Method <a href=\"pygeodesy.units.FIx-class.html#fractional\" \n        class=\"link\">fractional</a> or function <a \n        href=\"pygeodesy.points-module.html#fractional\" \n        class=\"link\">pygeodesy.fractional</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"fractional\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">fractional</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**LatLon_or_Vector_and_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the point at this <i>Fractional Index</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>points</code></strong> - The points (<code>LatLon</code>[], <a \n          href=\"pygeodesy.points.Numpy2LatLon-class.html\" \n          class=\"link\">Numpy2LatLon</a>[], <a \n          href=\"pygeodesy.points.Tuple2LatLon-class.html\" \n          class=\"link\">Tuple2LatLon</a>[] or <code>other</code>[]).</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap or <i>normalize</i> and unroll the \n          <b><code>points</code></b> (<code>bool</code>) or \n          <code>None</code> for backward compatible <a \n          href=\"pygeodesy.namedTuples.LatLon2Tuple-class.html\" \n          class=\"link\">LatLon2Tuple</a> or <b><code>LatLon</code></b> with \n          <i>averaged</i> lat- and longitudes.</li>\n        <li><strong class=\"pname\"><code>LatLon_or_Vector_and_kwds</code></strong> - Optional <code><b>LatLon</b>=None</code> <i>or</i> \n          <code><b>Vector</b>=None</code> to return the \n          <i>intermediate</i>, <i>fractional</i> point and optionally, \n          additional <b><code>LatLon</code></b> <i>or</i> \n          <b><code>Vector</code></b> keyword arguments, see function <a \n          href=\"pygeodesy.points-module.html#fractional\" \n          class=\"link\">fractional</a>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>See function <a href=\"pygeodesy.points-module.html#fractional\" \n          class=\"link\">fractional</a>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>IndexError</strong></code> - In fractional index invalid or <b><code>points</code></b> not \n        subscriptable or not closed.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>LatLon</code></b>, <b><code>Vector</code></b> or \n        <b><code>kwds</code></b> argument.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.points-module.html#fractional\" \n        class=\"link\">pygeodesy.fractional</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<br />\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"fin\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">fin</h3>\n  <p>Get the given <code>len</code>, the index <code>[n]</code> wrapped to \n  <code>[0]</code> (<code>int</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">fin(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the given <code>len</code>, the index <code>[n]</code> wrapped to \n<code>[0]</code> (<code>int</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:21 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.units.Feet-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.units.Feet</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.units-module.html\">Module&nbsp;units</a> ::\n        Class&nbsp;Feet\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.units.Feet-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Feet</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n          object --+        \n                   |        \n               float --+    \n                       |    \n      object --+       |    \n               |       |    \n    <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+   |    \n                   |   |    \n<a href=\"pygeodesy.unitsBase._NamedUnit-class.html\">unitsBase._NamedUnit</a> --+    \n                       |    \n         <a href=\"pygeodesy.unitsBase.Float-class.html\">unitsBase.Float</a> --+\n                           |\n                          <strong class=\"uidshort\">Feet</strong>\n</pre>\n\n<hr />\n<p>Named <code>float</code> representing a distance or length in \n  <code>feet</code>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase.Float-class.html\">unitsBase.Float</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#toStr\">toStr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>float</code></b>:\n      <code>__abs__</code>,\n      <code>__add__</code>,\n      <code>__coerce__</code>,\n      <code>__div__</code>,\n      <code>__divmod__</code>,\n      <code>__eq__</code>,\n      <code>__float__</code>,\n      <code>__floordiv__</code>,\n      <code>__format__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getformat__</code>,\n      <code>__getnewargs__</code>,\n      <code>__gt__</code>,\n      <code>__hash__</code>,\n      <code>__int__</code>,\n      <code>__le__</code>,\n      <code>__long__</code>,\n      <code>__lt__</code>,\n      <code>__mod__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__neg__</code>,\n      <code>__nonzero__</code>,\n      <code>__pos__</code>,\n      <code>__pow__</code>,\n      <code>__radd__</code>,\n      <code>__rdiv__</code>,\n      <code>__rdivmod__</code>,\n      <code>__rfloordiv__</code>,\n      <code>__rmod__</code>,\n      <code>__rmul__</code>,\n      <code>__rpow__</code>,\n      <code>__rsub__</code>,\n      <code>__rtruediv__</code>,\n      <code>__setformat__</code>,\n      <code>__sub__</code>,\n      <code>__truediv__</code>,\n      <code>__trunc__</code>,\n      <code>as_integer_ratio</code>,\n      <code>conjugate</code>,\n      <code>fromhex</code>,\n      <code>hex</code>,\n      <code>is_integer</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">a new object with type S, a subtype of T</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.units.Feet-class.html#__new__\" class=\"summary-sig-name\">__new__</a>(<span class=\"summary-sig-arg\">cls</span>,\n        <span class=\"summary-sig-arg\">arg</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">name</span>=<span class=\"summary-sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">feet</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"summary-sig-arg\">**Error_name_arg</span>)</span><br />\n      New, named <a href=\"pygeodesy.units.Feet-class.html\" \n      class=\"link\">Feet</a>, see <a \n      href=\"pygeodesy.unitsBase.Float-class.html\" class=\"link\">Float</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase.Float-class.html\">unitsBase.Float</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#isneg0\">isneg0</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>float</code></b>:\n      <code>imag</code>,\n      <code>real</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html\">unitsBase._NamedUnit</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html#std_repr\">std_repr</a></code>,\n      <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__new__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__new__</span>&nbsp;(<span class=\"sig-arg\">cls</span>,\n        <span class=\"sig-arg\">arg</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">name</span>=<span class=\"sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">feet</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"sig-arg\">**Error_name_arg</span>)</span>\n    <br /><em class=\"fname\">Static Method</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New, named <a href=\"pygeodesy.units.Feet-class.html\" \n  class=\"link\">Feet</a>, see <a href=\"pygeodesy.unitsBase.Float-class.html\"\n  class=\"link\">Float</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>arg</code></strong> - The value (any <code>type</code> acceptable to \n          <code>float</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional name (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>Error_name_arg</code></strong> - Optional <code><b>Error</b>=UnitError</code> to raise and \n          optional <code>name=arg</code> keyword argument, inlieu of \n          separate <b><code>arg</code></b> and <b><code>name</code></b> \n          ones.</li>\n    </ul></dd>\n    <dt>Returns: a new object with type S, a subtype of T</dt>\n        <dd>A named <code>Float</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>Error</strong></code> - Invalid <b><code>arg</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__new__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:21 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.units.Float_-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.units.Float_</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.units-module.html\">Module&nbsp;units</a> ::\n        Class&nbsp;Float_\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.units.Float_-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Float_</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n          object --+        \n                   |        \n               float --+    \n                       |    \n      object --+       |    \n               |       |    \n    <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+   |    \n                   |   |    \n<a href=\"pygeodesy.unitsBase._NamedUnit-class.html\">unitsBase._NamedUnit</a> --+    \n                       |    \n         <a href=\"pygeodesy.unitsBase.Float-class.html\">unitsBase.Float</a> --+\n                           |\n                          <strong class=\"uidshort\">Float_</strong>\n</pre>\n\n<dl><dt>Known Subclasses:</dt>\n<dd>\n      <ul class=\"subclass-list\">\n<li><a href=\"pygeodesy.units.Distance_-class.html\">Distance_</a></li><li>, <a href=\"pygeodesy.units.Epoch-class.html\">Epoch</a></li><li>, <a href=\"pygeodesy.units.FIx-class.html\">FIx</a></li><li>, <a href=\"pygeodesy.units.Height_-class.html\">Height_</a></li><li>, <a href=\"pygeodesy.units.Meter2-class.html\">Meter2</a></li><li>, <a href=\"pygeodesy.units.Meter3-class.html\">Meter3</a></li><li>, <a href=\"pygeodesy.units.Meter_-class.html\">Meter_</a></li><li>, <a href=\"pygeodesy.units.Radians2-class.html\">Radians2</a></li><li>, <a href=\"pygeodesy.units.Radius_-class.html\">Radius_</a></li><li>, <a href=\"pygeodesy.units.Scalar_-class.html\">Scalar_</a></li>  </ul>\n</dd></dl>\n\n<hr />\n<p>Named <code>float</code> with optional <code>low</code> and \n  <code>high</code> limit.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase.Float-class.html\">unitsBase.Float</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#toStr\">toStr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>float</code></b>:\n      <code>__abs__</code>,\n      <code>__add__</code>,\n      <code>__coerce__</code>,\n      <code>__div__</code>,\n      <code>__divmod__</code>,\n      <code>__eq__</code>,\n      <code>__float__</code>,\n      <code>__floordiv__</code>,\n      <code>__format__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getformat__</code>,\n      <code>__getnewargs__</code>,\n      <code>__gt__</code>,\n      <code>__hash__</code>,\n      <code>__int__</code>,\n      <code>__le__</code>,\n      <code>__long__</code>,\n      <code>__lt__</code>,\n      <code>__mod__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__neg__</code>,\n      <code>__nonzero__</code>,\n      <code>__pos__</code>,\n      <code>__pow__</code>,\n      <code>__radd__</code>,\n      <code>__rdiv__</code>,\n      <code>__rdivmod__</code>,\n      <code>__rfloordiv__</code>,\n      <code>__rmod__</code>,\n      <code>__rmul__</code>,\n      <code>__rpow__</code>,\n      <code>__rsub__</code>,\n      <code>__rtruediv__</code>,\n      <code>__setformat__</code>,\n      <code>__sub__</code>,\n      <code>__truediv__</code>,\n      <code>__trunc__</code>,\n      <code>as_integer_ratio</code>,\n      <code>conjugate</code>,\n      <code>fromhex</code>,\n      <code>hex</code>,\n      <code>is_integer</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">a new object with type S, a subtype of T</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.units.Float_-class.html#__new__\" class=\"summary-sig-name\">__new__</a>(<span class=\"summary-sig-arg\">cls</span>,\n        <span class=\"summary-sig-arg\">arg</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">name</span>=<span class=\"summary-sig-default\">''</span>,\n        <span class=\"summary-sig-arg\">low</span>=<span class=\"summary-sig-default\">2.220446049250313e-16</span>,\n        <span class=\"summary-sig-arg\">high</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**Error_name_arg</span>)</span><br />\n      New, named <code>Float_</code>, see <a \n      href=\"pygeodesy.unitsBase.Float-class.html\" class=\"link\">Float</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase.Float-class.html\">unitsBase.Float</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#isneg0\">isneg0</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>float</code></b>:\n      <code>imag</code>,\n      <code>real</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html\">unitsBase._NamedUnit</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html#std_repr\">std_repr</a></code>,\n      <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__new__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__new__</span>&nbsp;(<span class=\"sig-arg\">cls</span>,\n        <span class=\"sig-arg\">arg</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">name</span>=<span class=\"sig-default\">''</span>,\n        <span class=\"sig-arg\">low</span>=<span class=\"sig-default\">2.220446049250313e-16</span>,\n        <span class=\"sig-arg\">high</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**Error_name_arg</span>)</span>\n    <br /><em class=\"fname\">Static Method</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New, named <code>Float_</code>, see <a \n  href=\"pygeodesy.unitsBase.Float-class.html\" class=\"link\">Float</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>cls</code></strong> - This class (<code>Float_</code> or sub-class).</li>\n        <li><strong class=\"pname\"><code>arg</code></strong> - The value (any <code>type</code> convertable to \n          <code>float</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional instance name (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>low</code></strong> - Optional lower <b><code>arg</code></b> limit (<code>float</code> \n          or <code>None</code>).</li>\n        <li><strong class=\"pname\"><code>high</code></strong> - Optional upper <b><code>arg</code></b> limit (<code>float</code> \n          or <code>None</code>).</li>\n    </ul></dd>\n    <dt>Returns: a new object with type S, a subtype of T</dt>\n        <dd>A named <code>Float_</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>Error</strong></code> - Invalid <b><code>arg</code></b> or <b><code>arg</code></b> below \n        <b><code>low</code></b> or above <b><code>high</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__new__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:21 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.units.Height-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.units.Height</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.units-module.html\">Module&nbsp;units</a> ::\n        Class&nbsp;Height\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.units.Height-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Height</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n          object --+        \n                   |        \n               float --+    \n                       |    \n      object --+       |    \n               |       |    \n    <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+   |    \n                   |   |    \n<a href=\"pygeodesy.unitsBase._NamedUnit-class.html\">unitsBase._NamedUnit</a> --+    \n                       |    \n         <a href=\"pygeodesy.unitsBase.Float-class.html\">unitsBase.Float</a> --+\n                           |\n                          <strong class=\"uidshort\">Height</strong>\n</pre>\n\n<dl><dt>Known Subclasses:</dt>\n<dd>\n      <ul class=\"subclass-list\">\n<li><a href=\"pygeodesy.units.HeightX-class.html\">HeightX</a></li>  </ul>\n</dd></dl>\n\n<hr />\n<p>Named <code>float</code> representing a height, conventionally in \n  <code>meter</code>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase.Float-class.html\">unitsBase.Float</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#toStr\">toStr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>float</code></b>:\n      <code>__abs__</code>,\n      <code>__add__</code>,\n      <code>__coerce__</code>,\n      <code>__div__</code>,\n      <code>__divmod__</code>,\n      <code>__eq__</code>,\n      <code>__float__</code>,\n      <code>__floordiv__</code>,\n      <code>__format__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getformat__</code>,\n      <code>__getnewargs__</code>,\n      <code>__gt__</code>,\n      <code>__hash__</code>,\n      <code>__int__</code>,\n      <code>__le__</code>,\n      <code>__long__</code>,\n      <code>__lt__</code>,\n      <code>__mod__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__neg__</code>,\n      <code>__nonzero__</code>,\n      <code>__pos__</code>,\n      <code>__pow__</code>,\n      <code>__radd__</code>,\n      <code>__rdiv__</code>,\n      <code>__rdivmod__</code>,\n      <code>__rfloordiv__</code>,\n      <code>__rmod__</code>,\n      <code>__rmul__</code>,\n      <code>__rpow__</code>,\n      <code>__rsub__</code>,\n      <code>__rtruediv__</code>,\n      <code>__setformat__</code>,\n      <code>__sub__</code>,\n      <code>__truediv__</code>,\n      <code>__trunc__</code>,\n      <code>as_integer_ratio</code>,\n      <code>conjugate</code>,\n      <code>fromhex</code>,\n      <code>hex</code>,\n      <code>is_integer</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">a new object with type S, a subtype of T</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.units.Height-class.html#__new__\" class=\"summary-sig-name\">__new__</a>(<span class=\"summary-sig-arg\">cls</span>,\n        <span class=\"summary-sig-arg\">arg</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">name</span>=<span class=\"summary-sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">height</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"summary-sig-arg\">**Error_name_arg</span>)</span><br />\n      New, named <a href=\"pygeodesy.units.Height-class.html\" \n      class=\"link\">Height</a>, see <a \n      href=\"pygeodesy.unitsBase.Float-class.html\" class=\"link\">Float</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase.Float-class.html\">unitsBase.Float</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#isneg0\">isneg0</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>float</code></b>:\n      <code>imag</code>,\n      <code>real</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html\">unitsBase._NamedUnit</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html#std_repr\">std_repr</a></code>,\n      <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__new__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__new__</span>&nbsp;(<span class=\"sig-arg\">cls</span>,\n        <span class=\"sig-arg\">arg</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">name</span>=<span class=\"sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">height</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"sig-arg\">**Error_name_arg</span>)</span>\n    <br /><em class=\"fname\">Static Method</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New, named <a href=\"pygeodesy.units.Height-class.html\" \n  class=\"link\">Height</a>, see <a \n  href=\"pygeodesy.unitsBase.Float-class.html\" class=\"link\">Float</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>arg</code></strong> - The value (any <code>type</code> acceptable to \n          <code>float</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional name (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>Error_name_arg</code></strong> - Optional <code><b>Error</b>=UnitError</code> to raise and \n          optional <code>name=arg</code> keyword argument, inlieu of \n          separate <b><code>arg</code></b> and <b><code>name</code></b> \n          ones.</li>\n    </ul></dd>\n    <dt>Returns: a new object with type S, a subtype of T</dt>\n        <dd>A named <code>Float</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>Error</strong></code> - Invalid <b><code>arg</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__new__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:21 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.units.HeightX-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.units.HeightX</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.units-module.html\">Module&nbsp;units</a> ::\n        Class&nbsp;HeightX\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.units.HeightX-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class HeightX</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n          object --+            \n                   |            \n               float --+        \n                       |        \n      object --+       |        \n               |       |        \n    <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+   |        \n                   |   |        \n<a href=\"pygeodesy.unitsBase._NamedUnit-class.html\">unitsBase._NamedUnit</a> --+        \n                       |        \n         <a href=\"pygeodesy.unitsBase.Float-class.html\">unitsBase.Float</a> --+    \n                           |    \n                      <a href=\"pygeodesy.units.Height-class.html\">Height</a> --+\n                               |\n                              <strong class=\"uidshort\">HeightX</strong>\n</pre>\n\n<hr />\n<p>Like <a href=\"pygeodesy.units.Height-class.html\" \n  class=\"link\">Height</a>, used to distinguish the interpolated height from\n  an original <a href=\"pygeodesy.units.Height-class.html\" \n  class=\"link\">Height</a> at a clip intersection.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase.Float-class.html\">unitsBase.Float</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#toStr\">toStr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>float</code></b>:\n      <code>__abs__</code>,\n      <code>__add__</code>,\n      <code>__coerce__</code>,\n      <code>__div__</code>,\n      <code>__divmod__</code>,\n      <code>__eq__</code>,\n      <code>__float__</code>,\n      <code>__floordiv__</code>,\n      <code>__format__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getformat__</code>,\n      <code>__getnewargs__</code>,\n      <code>__gt__</code>,\n      <code>__hash__</code>,\n      <code>__int__</code>,\n      <code>__le__</code>,\n      <code>__long__</code>,\n      <code>__lt__</code>,\n      <code>__mod__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__neg__</code>,\n      <code>__nonzero__</code>,\n      <code>__pos__</code>,\n      <code>__pow__</code>,\n      <code>__radd__</code>,\n      <code>__rdiv__</code>,\n      <code>__rdivmod__</code>,\n      <code>__rfloordiv__</code>,\n      <code>__rmod__</code>,\n      <code>__rmul__</code>,\n      <code>__rpow__</code>,\n      <code>__rsub__</code>,\n      <code>__rtruediv__</code>,\n      <code>__setformat__</code>,\n      <code>__sub__</code>,\n      <code>__truediv__</code>,\n      <code>__trunc__</code>,\n      <code>as_integer_ratio</code>,\n      <code>conjugate</code>,\n      <code>fromhex</code>,\n      <code>hex</code>,\n      <code>is_integer</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.units.Height-class.html\">Height</a></code></b>:\n      <code><a href=\"pygeodesy.units.Height-class.html#__new__\">__new__</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase.Float-class.html\">unitsBase.Float</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#isneg0\">isneg0</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>float</code></b>:\n      <code>imag</code>,\n      <code>real</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html\">unitsBase._NamedUnit</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html#std_repr\">std_repr</a></code>,\n      <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:21 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.units.Height_-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.units.Height_</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.units-module.html\">Module&nbsp;units</a> ::\n        Class&nbsp;Height_\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.units.Height_-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Height_</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n          object --+            \n                   |            \n               float --+        \n                       |        \n      object --+       |        \n               |       |        \n    <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+   |        \n                   |   |        \n<a href=\"pygeodesy.unitsBase._NamedUnit-class.html\">unitsBase._NamedUnit</a> --+        \n                       |        \n         <a href=\"pygeodesy.unitsBase.Float-class.html\">unitsBase.Float</a> --+    \n                           |    \n                      <a href=\"pygeodesy.units.Float_-class.html\">Float_</a> --+\n                               |\n                              <strong class=\"uidshort\">Height_</strong>\n</pre>\n\n<hr />\n<p>Named <code>float</code> with optional <code>low</code> and \n  <code>high</code> limits representing a height, conventionally in \n  <code>meter</code>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase.Float-class.html\">unitsBase.Float</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#toStr\">toStr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>float</code></b>:\n      <code>__abs__</code>,\n      <code>__add__</code>,\n      <code>__coerce__</code>,\n      <code>__div__</code>,\n      <code>__divmod__</code>,\n      <code>__eq__</code>,\n      <code>__float__</code>,\n      <code>__floordiv__</code>,\n      <code>__format__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getformat__</code>,\n      <code>__getnewargs__</code>,\n      <code>__gt__</code>,\n      <code>__hash__</code>,\n      <code>__int__</code>,\n      <code>__le__</code>,\n      <code>__long__</code>,\n      <code>__lt__</code>,\n      <code>__mod__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__neg__</code>,\n      <code>__nonzero__</code>,\n      <code>__pos__</code>,\n      <code>__pow__</code>,\n      <code>__radd__</code>,\n      <code>__rdiv__</code>,\n      <code>__rdivmod__</code>,\n      <code>__rfloordiv__</code>,\n      <code>__rmod__</code>,\n      <code>__rmul__</code>,\n      <code>__rpow__</code>,\n      <code>__rsub__</code>,\n      <code>__rtruediv__</code>,\n      <code>__setformat__</code>,\n      <code>__sub__</code>,\n      <code>__truediv__</code>,\n      <code>__trunc__</code>,\n      <code>as_integer_ratio</code>,\n      <code>conjugate</code>,\n      <code>fromhex</code>,\n      <code>hex</code>,\n      <code>is_integer</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">a new object with type S, a subtype of T</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.units.Height_-class.html#__new__\" class=\"summary-sig-name\">__new__</a>(<span class=\"summary-sig-arg\">cls</span>,\n        <span class=\"summary-sig-arg\">arg</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">name</span>=<span class=\"summary-sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">height</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"summary-sig-arg\">**low_high_Error_name_arg</span>)</span><br />\n      New, named <a href=\"pygeodesy.units.Height-class.html\" \n      class=\"link\">Height</a>, see <a \n      href=\"pygeodesy.unitsBase.Float-class.html\" class=\"link\">Float</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase.Float-class.html\">unitsBase.Float</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#isneg0\">isneg0</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>float</code></b>:\n      <code>imag</code>,\n      <code>real</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html\">unitsBase._NamedUnit</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html#std_repr\">std_repr</a></code>,\n      <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__new__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__new__</span>&nbsp;(<span class=\"sig-arg\">cls</span>,\n        <span class=\"sig-arg\">arg</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">name</span>=<span class=\"sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">height</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"sig-arg\">**low_high_Error_name_arg</span>)</span>\n    <br /><em class=\"fname\">Static Method</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New, named <a href=\"pygeodesy.units.Height-class.html\" \n  class=\"link\">Height</a>, see <a \n  href=\"pygeodesy.unitsBase.Float-class.html\" class=\"link\">Float</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>cls</code></strong> - This class (<code>Float_</code> or sub-class).</li>\n        <li><strong class=\"pname\"><code>arg</code></strong> - The value (any <code>type</code> convertable to \n          <code>float</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional instance name (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>low</code></strong> - Optional lower <b><code>arg</code></b> limit (<code>float</code> \n          or <code>None</code>).</li>\n        <li><strong class=\"pname\"><code>high</code></strong> - Optional upper <b><code>arg</code></b> limit (<code>float</code> \n          or <code>None</code>).</li>\n    </ul></dd>\n    <dt>Returns: a new object with type S, a subtype of T</dt>\n        <dd>A named <code>Float_</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>Error</strong></code> - Invalid <b><code>arg</code></b> or <b><code>arg</code></b> below \n        <b><code>low</code></b> or above <b><code>high</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__new__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:21 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.units.Int_-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.units.Int_</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.units-module.html\">Module&nbsp;units</a> ::\n        Class&nbsp;Int_\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.units.Int_-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Int_</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n          object --+        \n                   |        \n                 int --+    \n                       |    \n      object --+       |    \n               |       |    \n    <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+   |    \n                   |   |    \n<a href=\"pygeodesy.unitsBase._NamedUnit-class.html\">unitsBase._NamedUnit</a> --+    \n                       |    \n           <a href=\"pygeodesy.unitsBase.Int-class.html\">unitsBase.Int</a> --+\n                           |\n                          <strong class=\"uidshort\">Int_</strong>\n</pre>\n\n<dl><dt>Known Subclasses:</dt>\n<dd>\n      <ul class=\"subclass-list\">\n<li><a href=\"pygeodesy.units.Number_-class.html\">Number_</a></li><li>, <a href=\"pygeodesy.units.Precision_-class.html\">Precision_</a></li>  </ul>\n</dd></dl>\n\n<hr />\n<p>Named <code>int</code> with optional limits <code>low</code> and \n  <code>high</code>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase.Int-class.html\">unitsBase.Int</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase.Int-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.unitsBase.Int-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.unitsBase.Int-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.unitsBase.Int-class.html#toStr\">toStr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>int</code></b>:\n      <code>__abs__</code>,\n      <code>__add__</code>,\n      <code>__and__</code>,\n      <code>__cmp__</code>,\n      <code>__coerce__</code>,\n      <code>__div__</code>,\n      <code>__divmod__</code>,\n      <code>__float__</code>,\n      <code>__floordiv__</code>,\n      <code>__format__</code>,\n      <code>__getattribute__</code>,\n      <code>__getnewargs__</code>,\n      <code>__hash__</code>,\n      <code>__hex__</code>,\n      <code>__index__</code>,\n      <code>__int__</code>,\n      <code>__invert__</code>,\n      <code>__long__</code>,\n      <code>__lshift__</code>,\n      <code>__mod__</code>,\n      <code>__mul__</code>,\n      <code>__neg__</code>,\n      <code>__nonzero__</code>,\n      <code>__oct__</code>,\n      <code>__or__</code>,\n      <code>__pos__</code>,\n      <code>__pow__</code>,\n      <code>__radd__</code>,\n      <code>__rand__</code>,\n      <code>__rdiv__</code>,\n      <code>__rdivmod__</code>,\n      <code>__rfloordiv__</code>,\n      <code>__rlshift__</code>,\n      <code>__rmod__</code>,\n      <code>__rmul__</code>,\n      <code>__ror__</code>,\n      <code>__rpow__</code>,\n      <code>__rrshift__</code>,\n      <code>__rshift__</code>,\n      <code>__rsub__</code>,\n      <code>__rtruediv__</code>,\n      <code>__rxor__</code>,\n      <code>__sub__</code>,\n      <code>__truediv__</code>,\n      <code>__trunc__</code>,\n      <code>__xor__</code>,\n      <code>bit_length</code>,\n      <code>conjugate</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">a new object with type S, a subtype of T</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.units.Int_-class.html#__new__\" class=\"summary-sig-name\">__new__</a>(<span class=\"summary-sig-arg\">cls</span>,\n        <span class=\"summary-sig-arg\">arg</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">name</span>=<span class=\"summary-sig-default\">''</span>,\n        <span class=\"summary-sig-arg\">low</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">high</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**Error_name_arg</span>)</span><br />\n      New, named <code>int</code> instance with limits, see <a \n      href=\"pygeodesy.unitsBase.Int-class.html\" class=\"link\">Int</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>int</code></b>:\n      <code>denominator</code>,\n      <code>imag</code>,\n      <code>numerator</code>,\n      <code>real</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html\">unitsBase._NamedUnit</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html#std_repr\">std_repr</a></code>,\n      <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__new__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__new__</span>&nbsp;(<span class=\"sig-arg\">cls</span>,\n        <span class=\"sig-arg\">arg</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">name</span>=<span class=\"sig-default\">''</span>,\n        <span class=\"sig-arg\">low</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">high</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**Error_name_arg</span>)</span>\n    <br /><em class=\"fname\">Static Method</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New, named <code>int</code> instance with limits, see <a \n  href=\"pygeodesy.unitsBase.Int-class.html\" class=\"link\">Int</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>cls</code></strong> - This class (<code>Int_</code> or sub-class).</li>\n        <li><strong class=\"pname\"><code>arg</code></strong> - The value (any <code>type</code> convertable to \n          <code>int</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional instance name (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>low</code></strong> - Optional lower <b><code>arg</code></b> limit (<code>int</code> or\n          <code>None</code>).</li>\n        <li><strong class=\"pname\"><code>high</code></strong> - Optional upper <b><code>arg</code></b> limit (<code>int</code> or\n          <code>None</code>).</li>\n    </ul></dd>\n    <dt>Returns: a new object with type S, a subtype of T</dt>\n        <dd>A named <a href=\"pygeodesy.units.Int_-class.html\" \n          class=\"link\">Int_</a>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>Error</strong></code> - Invalid <b><code>arg</code></b> or <b><code>arg</code></b> below \n        <b><code>low</code></b> or above <b><code>high</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__new__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:21 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.units.Lam-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.units.Lam</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.units-module.html\">Module&nbsp;units</a> ::\n        Class&nbsp;Lam\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.units.Lam-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Lam</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n          object --+            \n                   |            \n               float --+        \n                       |        \n      object --+       |        \n               |       |        \n    <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+   |        \n                   |   |        \n<a href=\"pygeodesy.unitsBase._NamedUnit-class.html\">unitsBase._NamedUnit</a> --+        \n                       |        \n         <a href=\"pygeodesy.unitsBase.Float-class.html\">unitsBase.Float</a> --+    \n                           |    \n                     <a href=\"pygeodesy.units.Radians-class.html\">Radians</a> --+\n                               |\n                              <strong class=\"uidshort\">Lam</strong>\n</pre>\n\n<dl><dt>Known Subclasses:</dt>\n<dd>\n      <ul class=\"subclass-list\">\n<li><a href=\"pygeodesy.units.Lamd-class.html\">Lamd</a></li>  </ul>\n</dd></dl>\n\n<hr />\n<p>Named <code>float</code> representing a longitude in \n  <code>radians</code>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.units.Radians-class.html\">Radians</a></code></b>:\n      <code><a href=\"pygeodesy.units.Radians-class.html#toDegrees\">toDegrees</a></code>,\n      <code><a href=\"pygeodesy.units.Radians-class.html#toRadians\">toRadians</a></code>,\n      <code><a href=\"pygeodesy.units.Radians-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.units.Radians-class.html#toStr\">toStr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase.Float-class.html\">unitsBase.Float</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#__str__\">__str__</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>float</code></b>:\n      <code>__abs__</code>,\n      <code>__add__</code>,\n      <code>__coerce__</code>,\n      <code>__div__</code>,\n      <code>__divmod__</code>,\n      <code>__eq__</code>,\n      <code>__float__</code>,\n      <code>__floordiv__</code>,\n      <code>__format__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getformat__</code>,\n      <code>__getnewargs__</code>,\n      <code>__gt__</code>,\n      <code>__hash__</code>,\n      <code>__int__</code>,\n      <code>__le__</code>,\n      <code>__long__</code>,\n      <code>__lt__</code>,\n      <code>__mod__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__neg__</code>,\n      <code>__nonzero__</code>,\n      <code>__pos__</code>,\n      <code>__pow__</code>,\n      <code>__radd__</code>,\n      <code>__rdiv__</code>,\n      <code>__rdivmod__</code>,\n      <code>__rfloordiv__</code>,\n      <code>__rmod__</code>,\n      <code>__rmul__</code>,\n      <code>__rpow__</code>,\n      <code>__rsub__</code>,\n      <code>__rtruediv__</code>,\n      <code>__setformat__</code>,\n      <code>__sub__</code>,\n      <code>__truediv__</code>,\n      <code>__trunc__</code>,\n      <code>as_integer_ratio</code>,\n      <code>conjugate</code>,\n      <code>fromhex</code>,\n      <code>hex</code>,\n      <code>is_integer</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">a new object with type S, a subtype of T</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.units.Lam-class.html#__new__\" class=\"summary-sig-name\">__new__</a>(<span class=\"summary-sig-arg\">cls</span>,\n        <span class=\"summary-sig-arg\">arg</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">name</span>=<span class=\"summary-sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">lam</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"summary-sig-arg\">clip</span>=<span class=\"summary-sig-default\">3.141592653589793</span>,\n        <span class=\"summary-sig-arg\">**Error_name_arg</span>)</span><br />\n      New, named <a href=\"pygeodesy.units.Lam-class.html\" \n      class=\"link\">Lam</a>, see <a \n      href=\"pygeodesy.units.Radians-class.html\" class=\"link\">Radians</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase.Float-class.html\">unitsBase.Float</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#isneg0\">isneg0</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>float</code></b>:\n      <code>imag</code>,\n      <code>real</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html\">unitsBase._NamedUnit</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html#std_repr\">std_repr</a></code>,\n      <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__new__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__new__</span>&nbsp;(<span class=\"sig-arg\">cls</span>,\n        <span class=\"sig-arg\">arg</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">name</span>=<span class=\"sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">lam</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"sig-arg\">clip</span>=<span class=\"sig-default\">3.141592653589793</span>,\n        <span class=\"sig-arg\">**Error_name_arg</span>)</span>\n    <br /><em class=\"fname\">Static Method</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New, named <a href=\"pygeodesy.units.Lam-class.html\" \n  class=\"link\">Lam</a>, see <a href=\"pygeodesy.units.Radians-class.html\" \n  class=\"link\">Radians</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>cls</code></strong> - This class (<code>Radians</code> or sub-class).</li>\n        <li><strong class=\"pname\"><code>arg</code></strong> - The value (any <code>type</code> convertable to \n          <code>float</code> or parsable by <a \n          href=\"pygeodesy.dms-module.html#parseRad\" \n          class=\"link\">pygeodesy.parseRad</a>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional instance name (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>suffix</code></strong> - Optional, valid compass direction suffixes (<code>NSEW</code>).</li>\n        <li><strong class=\"pname\"><code>clip</code></strong> - Optional <b><code>arg</code></b> range \n          <b><code>-clip..+clip</code></b> (<code>radians</code> or \n          <code>0</code> or <code>None</code> for unclipped).</li>\n        <li><strong class=\"pname\"><code>Error</code></strong> - Optional error to raise, overriding the default <a \n          href=\"pygeodesy.errors.UnitError-class.html\" \n          class=\"link\">UnitError</a>.</li>\n        <li><strong class=\"pname\"><code>name_arg</code></strong> - Optional <code>name=arg</code> keyword argument, inlieu of \n          separate <b><code>arg</code></b> and <b><code>name</code></b> \n          ones.</li>\n    </ul></dd>\n    <dt>Returns: a new object with type S, a subtype of T</dt>\n        <dd>A named <code>Radians</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>Error</strong></code> - Invalid <b><code>arg</code></b> or <b><code>abs(arg)</code></b> \n        outside the <b><code>clip</code></b> range and <a \n        href=\"pygeodesy.errors-module.html#rangerrors\" \n        class=\"link\">rangerrors</a> is <code>True</code>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__new__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:21 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.units.Lamd-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.units.Lamd</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.units-module.html\">Module&nbsp;units</a> ::\n        Class&nbsp;Lamd\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.units.Lamd-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Lamd</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n          object --+                \n                   |                \n               float --+            \n                       |            \n      object --+       |            \n               |       |            \n    <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+   |            \n                   |   |            \n<a href=\"pygeodesy.unitsBase._NamedUnit-class.html\">unitsBase._NamedUnit</a> --+            \n                       |            \n         <a href=\"pygeodesy.unitsBase.Float-class.html\">unitsBase.Float</a> --+        \n                           |        \n                     <a href=\"pygeodesy.units.Radians-class.html\">Radians</a> --+    \n                               |    \n                             <a href=\"pygeodesy.units.Lam-class.html\">Lam</a> --+\n                                   |\n                                  <strong class=\"uidshort\">Lamd</strong>\n</pre>\n\n<dl><dt>Known Subclasses:</dt>\n<dd>\n      <ul class=\"subclass-list\">\n<li><a href=\"pygeodesy.deprecated.classes.Lam_-class.html\">deprecated.classes.Lam_</a></li>  </ul>\n</dd></dl>\n\n<hr />\n<p>Named <code>float</code> representing a longitude in \n  <code>radians</code> converted from <code>degrees</code>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.units.Radians-class.html\">Radians</a></code></b>:\n      <code><a href=\"pygeodesy.units.Radians-class.html#toDegrees\">toDegrees</a></code>,\n      <code><a href=\"pygeodesy.units.Radians-class.html#toRadians\">toRadians</a></code>,\n      <code><a href=\"pygeodesy.units.Radians-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.units.Radians-class.html#toStr\">toStr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase.Float-class.html\">unitsBase.Float</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#__str__\">__str__</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>float</code></b>:\n      <code>__abs__</code>,\n      <code>__add__</code>,\n      <code>__coerce__</code>,\n      <code>__div__</code>,\n      <code>__divmod__</code>,\n      <code>__eq__</code>,\n      <code>__float__</code>,\n      <code>__floordiv__</code>,\n      <code>__format__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getformat__</code>,\n      <code>__getnewargs__</code>,\n      <code>__gt__</code>,\n      <code>__hash__</code>,\n      <code>__int__</code>,\n      <code>__le__</code>,\n      <code>__long__</code>,\n      <code>__lt__</code>,\n      <code>__mod__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__neg__</code>,\n      <code>__nonzero__</code>,\n      <code>__pos__</code>,\n      <code>__pow__</code>,\n      <code>__radd__</code>,\n      <code>__rdiv__</code>,\n      <code>__rdivmod__</code>,\n      <code>__rfloordiv__</code>,\n      <code>__rmod__</code>,\n      <code>__rmul__</code>,\n      <code>__rpow__</code>,\n      <code>__rsub__</code>,\n      <code>__rtruediv__</code>,\n      <code>__setformat__</code>,\n      <code>__sub__</code>,\n      <code>__truediv__</code>,\n      <code>__trunc__</code>,\n      <code>as_integer_ratio</code>,\n      <code>conjugate</code>,\n      <code>fromhex</code>,\n      <code>hex</code>,\n      <code>is_integer</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">a new object with type S, a subtype of T</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.units.Lamd-class.html#__new__\" class=\"summary-sig-name\">__new__</a>(<span class=\"summary-sig-arg\">cls</span>,\n        <span class=\"summary-sig-arg\">arg</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">name</span>=<span class=\"summary-sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">lon</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"summary-sig-arg\">clip</span>=<span class=\"summary-sig-default\">180</span>,\n        <span class=\"summary-sig-arg\">**Error_name_arg</span>)</span><br />\n      New, named <a href=\"pygeodesy.units.Lamd-class.html\" \n      class=\"link\">Lamd</a>, see <a href=\"pygeodesy.units.Lam-class.html\" \n      class=\"link\">Lam</a> and <a href=\"pygeodesy.units.Radians-class.html\"\n      class=\"link\">Radians</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase.Float-class.html\">unitsBase.Float</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#isneg0\">isneg0</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>float</code></b>:\n      <code>imag</code>,\n      <code>real</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html\">unitsBase._NamedUnit</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html#std_repr\">std_repr</a></code>,\n      <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__new__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__new__</span>&nbsp;(<span class=\"sig-arg\">cls</span>,\n        <span class=\"sig-arg\">arg</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">name</span>=<span class=\"sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">lon</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"sig-arg\">clip</span>=<span class=\"sig-default\">180</span>,\n        <span class=\"sig-arg\">**Error_name_arg</span>)</span>\n    <br /><em class=\"fname\">Static Method</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New, named <a href=\"pygeodesy.units.Lamd-class.html\" \n  class=\"link\">Lamd</a>, see <a href=\"pygeodesy.units.Lam-class.html\" \n  class=\"link\">Lam</a> and <a href=\"pygeodesy.units.Radians-class.html\" \n  class=\"link\">Radians</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>cls</code></strong> - This class (<code>Radians</code> or sub-class).</li>\n        <li><strong class=\"pname\"><code>arg</code></strong> - The value (any <code>type</code> convertable to \n          <code>float</code> or parsable by <a \n          href=\"pygeodesy.dms-module.html#parseRad\" \n          class=\"link\">pygeodesy.parseRad</a>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional instance name (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>suffix</code></strong> - Optional, valid compass direction suffixes (<code>NSEW</code>).</li>\n        <li><strong class=\"pname\"><code>clip</code></strong> - Optional <b><code>arg</code></b> range \n          <b><code>-clip..+clip</code></b> (<code>radians</code> or \n          <code>0</code> or <code>None</code> for unclipped).</li>\n        <li><strong class=\"pname\"><code>Error</code></strong> - Optional error to raise, overriding the default <a \n          href=\"pygeodesy.errors.UnitError-class.html\" \n          class=\"link\">UnitError</a>.</li>\n        <li><strong class=\"pname\"><code>name_arg</code></strong> - Optional <code>name=arg</code> keyword argument, inlieu of \n          separate <b><code>arg</code></b> and <b><code>name</code></b> \n          ones.</li>\n    </ul></dd>\n    <dt>Returns: a new object with type S, a subtype of T</dt>\n        <dd>A named <code>Radians</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>Error</strong></code> - Invalid <b><code>arg</code></b> or <b><code>abs(arg)</code></b> \n        outside the <b><code>clip</code></b> range and <a \n        href=\"pygeodesy.errors-module.html#rangerrors\" \n        class=\"link\">rangerrors</a> is <code>True</code>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__new__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:21 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.units.Lat-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.units.Lat</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.units-module.html\">Module&nbsp;units</a> ::\n        Class&nbsp;Lat\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.units.Lat-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Lat</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n          object --+            \n                   |            \n               float --+        \n                       |        \n      object --+       |        \n               |       |        \n    <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+   |        \n                   |   |        \n<a href=\"pygeodesy.unitsBase._NamedUnit-class.html\">unitsBase._NamedUnit</a> --+        \n                       |        \n         <a href=\"pygeodesy.unitsBase.Float-class.html\">unitsBase.Float</a> --+    \n                           |    \n                     <a href=\"pygeodesy.units.Degrees-class.html\">Degrees</a> --+\n                               |\n                              <strong class=\"uidshort\">Lat</strong>\n</pre>\n\n<dl><dt>Known Subclasses:</dt>\n<dd>\n      <ul class=\"subclass-list\">\n<li class=\"private\">karney._Lat</li><li class=\"private\">, rhumb.bases._Lat</li>  </ul>\n</dd></dl>\n\n<hr />\n<p>Named <code>float</code> representing a latitude in \n  <code>degrees</code>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.units.Degrees-class.html\">Degrees</a></code></b>:\n      <code><a href=\"pygeodesy.units.Degrees-class.html#toDegrees\">toDegrees</a></code>,\n      <code><a href=\"pygeodesy.units.Degrees-class.html#toRadians\">toRadians</a></code>,\n      <code><a href=\"pygeodesy.units.Degrees-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.units.Degrees-class.html#toStr\">toStr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase.Float-class.html\">unitsBase.Float</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#__str__\">__str__</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>float</code></b>:\n      <code>__abs__</code>,\n      <code>__add__</code>,\n      <code>__coerce__</code>,\n      <code>__div__</code>,\n      <code>__divmod__</code>,\n      <code>__eq__</code>,\n      <code>__float__</code>,\n      <code>__floordiv__</code>,\n      <code>__format__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getformat__</code>,\n      <code>__getnewargs__</code>,\n      <code>__gt__</code>,\n      <code>__hash__</code>,\n      <code>__int__</code>,\n      <code>__le__</code>,\n      <code>__long__</code>,\n      <code>__lt__</code>,\n      <code>__mod__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__neg__</code>,\n      <code>__nonzero__</code>,\n      <code>__pos__</code>,\n      <code>__pow__</code>,\n      <code>__radd__</code>,\n      <code>__rdiv__</code>,\n      <code>__rdivmod__</code>,\n      <code>__rfloordiv__</code>,\n      <code>__rmod__</code>,\n      <code>__rmul__</code>,\n      <code>__rpow__</code>,\n      <code>__rsub__</code>,\n      <code>__rtruediv__</code>,\n      <code>__setformat__</code>,\n      <code>__sub__</code>,\n      <code>__truediv__</code>,\n      <code>__trunc__</code>,\n      <code>as_integer_ratio</code>,\n      <code>conjugate</code>,\n      <code>fromhex</code>,\n      <code>hex</code>,\n      <code>is_integer</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">a new object with type S, a subtype of T</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.units.Lat-class.html#__new__\" class=\"summary-sig-name\">__new__</a>(<span class=\"summary-sig-arg\">cls</span>,\n        <span class=\"summary-sig-arg\">arg</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">name</span>=<span class=\"summary-sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">lat</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"summary-sig-arg\">clip</span>=<span class=\"summary-sig-default\">90</span>,\n        <span class=\"summary-sig-arg\">**Error_name_arg</span>)</span><br />\n      New, named <a href=\"pygeodesy.units.Lat-class.html\" \n      class=\"link\">Lat</a>, see <a \n      href=\"pygeodesy.units.Degrees-class.html\" class=\"link\">Degrees</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase.Float-class.html\">unitsBase.Float</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#isneg0\">isneg0</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>float</code></b>:\n      <code>imag</code>,\n      <code>real</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html\">unitsBase._NamedUnit</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html#std_repr\">std_repr</a></code>,\n      <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__new__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__new__</span>&nbsp;(<span class=\"sig-arg\">cls</span>,\n        <span class=\"sig-arg\">arg</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">name</span>=<span class=\"sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">lat</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"sig-arg\">clip</span>=<span class=\"sig-default\">90</span>,\n        <span class=\"sig-arg\">**Error_name_arg</span>)</span>\n    <br /><em class=\"fname\">Static Method</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New, named <a href=\"pygeodesy.units.Lat-class.html\" \n  class=\"link\">Lat</a>, see <a href=\"pygeodesy.units.Degrees-class.html\" \n  class=\"link\">Degrees</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>cls</code></strong> - This class (<code>Degrees</code> or sub-class).</li>\n        <li><strong class=\"pname\"><code>arg</code></strong> - The value (any <code>type</code> convertable to \n          <code>float</code> or parsable by function <a \n          href=\"pygeodesy.dms-module.html#parseDMS\" \n          class=\"link\">parseDMS</a>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional instance name (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>suffix</code></strong> - Optional, valid compass direction suffixes (<code>NSEW</code>).</li>\n        <li><strong class=\"pname\"><code>clip</code></strong> - Optional <b><code>arg</code></b> range \n          <b><code>-clip..+clip</code></b> (<code>degrees</code> or \n          <code>0</code> or <code>None</code> for unclipped).</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - Optionally adjust the <b><code>arg</code></b> value (<a \n          href=\"pygeodesy.utily-module.html#wrap90\" \n          class=\"link\">wrap90</a>, <a \n          href=\"pygeodesy.utily-module.html#wrap180\" \n          class=\"link\">wrap180</a> or <a \n          href=\"pygeodesy.utily-module.html#wrap360\" \n          class=\"link\">wrap360</a>).</li>\n        <li><strong class=\"pname\"><code>Error</code></strong> - Optional error to raise, overriding the default <a \n          href=\"pygeodesy.errors.UnitError-class.html\" \n          class=\"link\">UnitError</a>.</li>\n        <li><strong class=\"pname\"><code>name_arg</code></strong> - Optional <code>name=arg</code> keyword argument, inlieu of \n          separate <b><code>arg</code></b> and <b><code>name</code></b> \n          ones.</li>\n    </ul></dd>\n    <dt>Returns: a new object with type S, a subtype of T</dt>\n        <dd>A <code>Degrees</code> instance.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>Error</strong></code> - Invalid <b><code>arg</code></b> or <b><code>abs(arg)</code></b> \n        outside the <b><code>clip</code></b> range and <a \n        href=\"pygeodesy.errors-module.html#rangerrors\" \n        class=\"link\">rangerrors</a> is <code>True</code>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__new__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:21 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.units.Lat_-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.units.Lat_</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.units-module.html\">Module&nbsp;units</a> ::\n        Class&nbsp;Lat_\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.units.Lat_-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Lat_</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n          object --+                \n                   |                \n               float --+            \n                       |            \n      object --+       |            \n               |       |            \n    <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+   |            \n                   |   |            \n<a href=\"pygeodesy.unitsBase._NamedUnit-class.html\">unitsBase._NamedUnit</a> --+            \n                       |            \n         <a href=\"pygeodesy.unitsBase.Float-class.html\">unitsBase.Float</a> --+        \n                           |        \n                     <a href=\"pygeodesy.units.Degrees-class.html\">Degrees</a> --+    \n                               |    \n                        <a href=\"pygeodesy.units.Degrees_-class.html\">Degrees_</a> --+\n                                   |\n                                  <strong class=\"uidshort\">Lat_</strong>\n</pre>\n\n<hr />\n<p>Named <code>float</code> representing a latitude in \n  <code>degrees</code> within limits <code>low</code> and \n  <code>high</code>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.units.Degrees-class.html\">Degrees</a></code></b>:\n      <code><a href=\"pygeodesy.units.Degrees-class.html#toDegrees\">toDegrees</a></code>,\n      <code><a href=\"pygeodesy.units.Degrees-class.html#toRadians\">toRadians</a></code>,\n      <code><a href=\"pygeodesy.units.Degrees-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.units.Degrees-class.html#toStr\">toStr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase.Float-class.html\">unitsBase.Float</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#__str__\">__str__</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>float</code></b>:\n      <code>__abs__</code>,\n      <code>__add__</code>,\n      <code>__coerce__</code>,\n      <code>__div__</code>,\n      <code>__divmod__</code>,\n      <code>__eq__</code>,\n      <code>__float__</code>,\n      <code>__floordiv__</code>,\n      <code>__format__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getformat__</code>,\n      <code>__getnewargs__</code>,\n      <code>__gt__</code>,\n      <code>__hash__</code>,\n      <code>__int__</code>,\n      <code>__le__</code>,\n      <code>__long__</code>,\n      <code>__lt__</code>,\n      <code>__mod__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__neg__</code>,\n      <code>__nonzero__</code>,\n      <code>__pos__</code>,\n      <code>__pow__</code>,\n      <code>__radd__</code>,\n      <code>__rdiv__</code>,\n      <code>__rdivmod__</code>,\n      <code>__rfloordiv__</code>,\n      <code>__rmod__</code>,\n      <code>__rmul__</code>,\n      <code>__rpow__</code>,\n      <code>__rsub__</code>,\n      <code>__rtruediv__</code>,\n      <code>__setformat__</code>,\n      <code>__sub__</code>,\n      <code>__truediv__</code>,\n      <code>__trunc__</code>,\n      <code>as_integer_ratio</code>,\n      <code>conjugate</code>,\n      <code>fromhex</code>,\n      <code>hex</code>,\n      <code>is_integer</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">a new object with type S, a subtype of T</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.units.Lat_-class.html#__new__\" class=\"summary-sig-name\">__new__</a>(<span class=\"summary-sig-arg\">cls</span>,\n        <span class=\"summary-sig-arg\">arg</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">name</span>=<span class=\"summary-sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">lat</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"summary-sig-arg\">low</span>=<span class=\"summary-sig-default\">-90</span>,\n        <span class=\"summary-sig-arg\">high</span>=<span class=\"summary-sig-default\">90</span>,\n        <span class=\"summary-sig-arg\">**Error_name_arg</span>)</span><br />\n      See <a href=\"pygeodesy.units.Degrees_-class.html\" \n      class=\"link\">Degrees_</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase.Float-class.html\">unitsBase.Float</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#isneg0\">isneg0</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>float</code></b>:\n      <code>imag</code>,\n      <code>real</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html\">unitsBase._NamedUnit</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html#std_repr\">std_repr</a></code>,\n      <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__new__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__new__</span>&nbsp;(<span class=\"sig-arg\">cls</span>,\n        <span class=\"sig-arg\">arg</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">name</span>=<span class=\"sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">lat</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"sig-arg\">low</span>=<span class=\"sig-default\">-90</span>,\n        <span class=\"sig-arg\">high</span>=<span class=\"sig-default\">90</span>,\n        <span class=\"sig-arg\">**Error_name_arg</span>)</span>\n    <br /><em class=\"fname\">Static Method</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>See <a href=\"pygeodesy.units.Degrees_-class.html\" \n  class=\"link\">Degrees_</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>cls</code></strong> - This class (<code>Degrees_</code> or sub-class).</li>\n        <li><strong class=\"pname\"><code>arg</code></strong> - The value (any <code>type</code> convertable to \n          <code>float</code> or parsable by function <a \n          href=\"pygeodesy.dms-module.html#parseDMS\" \n          class=\"link\">parseDMS</a>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional instance name (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>low</code></strong> - Optional lower <b><code>arg</code></b> limit (<code>float</code> \n          or <code>None</code>).</li>\n        <li><strong class=\"pname\"><code>high</code></strong> - Optional upper <b><code>arg</code></b> limit (<code>float</code> \n          or <code>None</code>).</li>\n    </ul></dd>\n    <dt>Returns: a new object with type S, a subtype of T</dt>\n        <dd>A named <code>Degrees</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>Error</strong></code> - Invalid <b><code>arg</code></b> or <b><code>arg</code></b> below \n        <b><code>low</code></b> or above <b><code>high</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__new__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:21 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.units.Lon-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.units.Lon</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.units-module.html\">Module&nbsp;units</a> ::\n        Class&nbsp;Lon\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.units.Lon-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Lon</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n          object --+            \n                   |            \n               float --+        \n                       |        \n      object --+       |        \n               |       |        \n    <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+   |        \n                   |   |        \n<a href=\"pygeodesy.unitsBase._NamedUnit-class.html\">unitsBase._NamedUnit</a> --+        \n                       |        \n         <a href=\"pygeodesy.unitsBase.Float-class.html\">unitsBase.Float</a> --+    \n                           |    \n                     <a href=\"pygeodesy.units.Degrees-class.html\">Degrees</a> --+\n                               |\n                              <strong class=\"uidshort\">Lon</strong>\n</pre>\n\n<dl><dt>Known Subclasses:</dt>\n<dd>\n      <ul class=\"subclass-list\">\n<li class=\"private\">karney._Lon</li><li class=\"private\">, rhumb.bases._Lon</li>  </ul>\n</dd></dl>\n\n<hr />\n<p>Named <code>float</code> representing a longitude in \n  <code>degrees</code>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.units.Degrees-class.html\">Degrees</a></code></b>:\n      <code><a href=\"pygeodesy.units.Degrees-class.html#toDegrees\">toDegrees</a></code>,\n      <code><a href=\"pygeodesy.units.Degrees-class.html#toRadians\">toRadians</a></code>,\n      <code><a href=\"pygeodesy.units.Degrees-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.units.Degrees-class.html#toStr\">toStr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase.Float-class.html\">unitsBase.Float</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#__str__\">__str__</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>float</code></b>:\n      <code>__abs__</code>,\n      <code>__add__</code>,\n      <code>__coerce__</code>,\n      <code>__div__</code>,\n      <code>__divmod__</code>,\n      <code>__eq__</code>,\n      <code>__float__</code>,\n      <code>__floordiv__</code>,\n      <code>__format__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getformat__</code>,\n      <code>__getnewargs__</code>,\n      <code>__gt__</code>,\n      <code>__hash__</code>,\n      <code>__int__</code>,\n      <code>__le__</code>,\n      <code>__long__</code>,\n      <code>__lt__</code>,\n      <code>__mod__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__neg__</code>,\n      <code>__nonzero__</code>,\n      <code>__pos__</code>,\n      <code>__pow__</code>,\n      <code>__radd__</code>,\n      <code>__rdiv__</code>,\n      <code>__rdivmod__</code>,\n      <code>__rfloordiv__</code>,\n      <code>__rmod__</code>,\n      <code>__rmul__</code>,\n      <code>__rpow__</code>,\n      <code>__rsub__</code>,\n      <code>__rtruediv__</code>,\n      <code>__setformat__</code>,\n      <code>__sub__</code>,\n      <code>__truediv__</code>,\n      <code>__trunc__</code>,\n      <code>as_integer_ratio</code>,\n      <code>conjugate</code>,\n      <code>fromhex</code>,\n      <code>hex</code>,\n      <code>is_integer</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">a new object with type S, a subtype of T</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.units.Lon-class.html#__new__\" class=\"summary-sig-name\">__new__</a>(<span class=\"summary-sig-arg\">cls</span>,\n        <span class=\"summary-sig-arg\">arg</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">name</span>=<span class=\"summary-sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">lon</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"summary-sig-arg\">clip</span>=<span class=\"summary-sig-default\">180</span>,\n        <span class=\"summary-sig-arg\">**Error_name_arg</span>)</span><br />\n      New, named <a href=\"pygeodesy.units.Lon-class.html\" \n      class=\"link\">Lon</a>, see <a \n      href=\"pygeodesy.units.Degrees-class.html\" class=\"link\">Degrees</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase.Float-class.html\">unitsBase.Float</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#isneg0\">isneg0</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>float</code></b>:\n      <code>imag</code>,\n      <code>real</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html\">unitsBase._NamedUnit</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html#std_repr\">std_repr</a></code>,\n      <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__new__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__new__</span>&nbsp;(<span class=\"sig-arg\">cls</span>,\n        <span class=\"sig-arg\">arg</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">name</span>=<span class=\"sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">lon</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"sig-arg\">clip</span>=<span class=\"sig-default\">180</span>,\n        <span class=\"sig-arg\">**Error_name_arg</span>)</span>\n    <br /><em class=\"fname\">Static Method</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New, named <a href=\"pygeodesy.units.Lon-class.html\" \n  class=\"link\">Lon</a>, see <a href=\"pygeodesy.units.Degrees-class.html\" \n  class=\"link\">Degrees</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>cls</code></strong> - This class (<code>Degrees</code> or sub-class).</li>\n        <li><strong class=\"pname\"><code>arg</code></strong> - The value (any <code>type</code> convertable to \n          <code>float</code> or parsable by function <a \n          href=\"pygeodesy.dms-module.html#parseDMS\" \n          class=\"link\">parseDMS</a>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional instance name (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>suffix</code></strong> - Optional, valid compass direction suffixes (<code>NSEW</code>).</li>\n        <li><strong class=\"pname\"><code>clip</code></strong> - Optional <b><code>arg</code></b> range \n          <b><code>-clip..+clip</code></b> (<code>degrees</code> or \n          <code>0</code> or <code>None</code> for unclipped).</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - Optionally adjust the <b><code>arg</code></b> value (<a \n          href=\"pygeodesy.utily-module.html#wrap90\" \n          class=\"link\">wrap90</a>, <a \n          href=\"pygeodesy.utily-module.html#wrap180\" \n          class=\"link\">wrap180</a> or <a \n          href=\"pygeodesy.utily-module.html#wrap360\" \n          class=\"link\">wrap360</a>).</li>\n        <li><strong class=\"pname\"><code>Error</code></strong> - Optional error to raise, overriding the default <a \n          href=\"pygeodesy.errors.UnitError-class.html\" \n          class=\"link\">UnitError</a>.</li>\n        <li><strong class=\"pname\"><code>name_arg</code></strong> - Optional <code>name=arg</code> keyword argument, inlieu of \n          separate <b><code>arg</code></b> and <b><code>name</code></b> \n          ones.</li>\n    </ul></dd>\n    <dt>Returns: a new object with type S, a subtype of T</dt>\n        <dd>A <code>Degrees</code> instance.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>Error</strong></code> - Invalid <b><code>arg</code></b> or <b><code>abs(arg)</code></b> \n        outside the <b><code>clip</code></b> range and <a \n        href=\"pygeodesy.errors-module.html#rangerrors\" \n        class=\"link\">rangerrors</a> is <code>True</code>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__new__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:21 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.units.Lon_-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.units.Lon_</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.units-module.html\">Module&nbsp;units</a> ::\n        Class&nbsp;Lon_\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.units.Lon_-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Lon_</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n          object --+                \n                   |                \n               float --+            \n                       |            \n      object --+       |            \n               |       |            \n    <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+   |            \n                   |   |            \n<a href=\"pygeodesy.unitsBase._NamedUnit-class.html\">unitsBase._NamedUnit</a> --+            \n                       |            \n         <a href=\"pygeodesy.unitsBase.Float-class.html\">unitsBase.Float</a> --+        \n                           |        \n                     <a href=\"pygeodesy.units.Degrees-class.html\">Degrees</a> --+    \n                               |    \n                        <a href=\"pygeodesy.units.Degrees_-class.html\">Degrees_</a> --+\n                                   |\n                                  <strong class=\"uidshort\">Lon_</strong>\n</pre>\n\n<hr />\n<p>Named <code>float</code> representing a longitude in \n  <code>degrees</code> within limits <code>low</code> and \n  <code>high</code>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.units.Degrees-class.html\">Degrees</a></code></b>:\n      <code><a href=\"pygeodesy.units.Degrees-class.html#toDegrees\">toDegrees</a></code>,\n      <code><a href=\"pygeodesy.units.Degrees-class.html#toRadians\">toRadians</a></code>,\n      <code><a href=\"pygeodesy.units.Degrees-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.units.Degrees-class.html#toStr\">toStr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase.Float-class.html\">unitsBase.Float</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#__str__\">__str__</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>float</code></b>:\n      <code>__abs__</code>,\n      <code>__add__</code>,\n      <code>__coerce__</code>,\n      <code>__div__</code>,\n      <code>__divmod__</code>,\n      <code>__eq__</code>,\n      <code>__float__</code>,\n      <code>__floordiv__</code>,\n      <code>__format__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getformat__</code>,\n      <code>__getnewargs__</code>,\n      <code>__gt__</code>,\n      <code>__hash__</code>,\n      <code>__int__</code>,\n      <code>__le__</code>,\n      <code>__long__</code>,\n      <code>__lt__</code>,\n      <code>__mod__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__neg__</code>,\n      <code>__nonzero__</code>,\n      <code>__pos__</code>,\n      <code>__pow__</code>,\n      <code>__radd__</code>,\n      <code>__rdiv__</code>,\n      <code>__rdivmod__</code>,\n      <code>__rfloordiv__</code>,\n      <code>__rmod__</code>,\n      <code>__rmul__</code>,\n      <code>__rpow__</code>,\n      <code>__rsub__</code>,\n      <code>__rtruediv__</code>,\n      <code>__setformat__</code>,\n      <code>__sub__</code>,\n      <code>__truediv__</code>,\n      <code>__trunc__</code>,\n      <code>as_integer_ratio</code>,\n      <code>conjugate</code>,\n      <code>fromhex</code>,\n      <code>hex</code>,\n      <code>is_integer</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">a new object with type S, a subtype of T</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.units.Lon_-class.html#__new__\" class=\"summary-sig-name\">__new__</a>(<span class=\"summary-sig-arg\">cls</span>,\n        <span class=\"summary-sig-arg\">arg</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">name</span>=<span class=\"summary-sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">lon</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"summary-sig-arg\">low</span>=<span class=\"summary-sig-default\">-180</span>,\n        <span class=\"summary-sig-arg\">high</span>=<span class=\"summary-sig-default\">180</span>,\n        <span class=\"summary-sig-arg\">**Error_name_arg</span>)</span><br />\n      New, named <a href=\"pygeodesy.units.Lon_-class.html\" \n      class=\"link\">Lon_</a>, see <a href=\"pygeodesy.units.Lon-class.html\" \n      class=\"link\">Lon</a> and <a \n      href=\"pygeodesy.units.Degrees_-class.html\" class=\"link\">Degrees_</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase.Float-class.html\">unitsBase.Float</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#isneg0\">isneg0</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>float</code></b>:\n      <code>imag</code>,\n      <code>real</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html\">unitsBase._NamedUnit</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html#std_repr\">std_repr</a></code>,\n      <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__new__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__new__</span>&nbsp;(<span class=\"sig-arg\">cls</span>,\n        <span class=\"sig-arg\">arg</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">name</span>=<span class=\"sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">lon</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"sig-arg\">low</span>=<span class=\"sig-default\">-180</span>,\n        <span class=\"sig-arg\">high</span>=<span class=\"sig-default\">180</span>,\n        <span class=\"sig-arg\">**Error_name_arg</span>)</span>\n    <br /><em class=\"fname\">Static Method</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New, named <a href=\"pygeodesy.units.Lon_-class.html\" \n  class=\"link\">Lon_</a>, see <a href=\"pygeodesy.units.Lon-class.html\" \n  class=\"link\">Lon</a> and <a href=\"pygeodesy.units.Degrees_-class.html\" \n  class=\"link\">Degrees_</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>cls</code></strong> - This class (<code>Degrees_</code> or sub-class).</li>\n        <li><strong class=\"pname\"><code>arg</code></strong> - The value (any <code>type</code> convertable to \n          <code>float</code> or parsable by function <a \n          href=\"pygeodesy.dms-module.html#parseDMS\" \n          class=\"link\">parseDMS</a>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional instance name (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>low</code></strong> - Optional lower <b><code>arg</code></b> limit (<code>float</code> \n          or <code>None</code>).</li>\n        <li><strong class=\"pname\"><code>high</code></strong> - Optional upper <b><code>arg</code></b> limit (<code>float</code> \n          or <code>None</code>).</li>\n    </ul></dd>\n    <dt>Returns: a new object with type S, a subtype of T</dt>\n        <dd>A named <code>Degrees</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>Error</strong></code> - Invalid <b><code>arg</code></b> or <b><code>arg</code></b> below \n        <b><code>low</code></b> or above <b><code>high</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__new__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:21 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.units.Meter-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.units.Meter</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.units-module.html\">Module&nbsp;units</a> ::\n        Class&nbsp;Meter\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.units.Meter-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Meter</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n          object --+        \n                   |        \n               float --+    \n                       |    \n      object --+       |    \n               |       |    \n    <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+   |    \n                   |   |    \n<a href=\"pygeodesy.unitsBase._NamedUnit-class.html\">unitsBase._NamedUnit</a> --+    \n                       |    \n         <a href=\"pygeodesy.unitsBase.Float-class.html\">unitsBase.Float</a> --+\n                           |\n                          <strong class=\"uidshort\">Meter</strong>\n</pre>\n\n<hr />\n<p>Named <code>float</code> representing a distance or length in \n  <code>meter</code>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.units.Meter-class.html#__repr__\" class=\"summary-sig-name\">__repr__</a>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Return a representation of this <code>Meter</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase.Float-class.html\">unitsBase.Float</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#toStr\">toStr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>float</code></b>:\n      <code>__abs__</code>,\n      <code>__add__</code>,\n      <code>__coerce__</code>,\n      <code>__div__</code>,\n      <code>__divmod__</code>,\n      <code>__eq__</code>,\n      <code>__float__</code>,\n      <code>__floordiv__</code>,\n      <code>__format__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getformat__</code>,\n      <code>__getnewargs__</code>,\n      <code>__gt__</code>,\n      <code>__hash__</code>,\n      <code>__int__</code>,\n      <code>__le__</code>,\n      <code>__long__</code>,\n      <code>__lt__</code>,\n      <code>__mod__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__neg__</code>,\n      <code>__nonzero__</code>,\n      <code>__pos__</code>,\n      <code>__pow__</code>,\n      <code>__radd__</code>,\n      <code>__rdiv__</code>,\n      <code>__rdivmod__</code>,\n      <code>__rfloordiv__</code>,\n      <code>__rmod__</code>,\n      <code>__rmul__</code>,\n      <code>__rpow__</code>,\n      <code>__rsub__</code>,\n      <code>__rtruediv__</code>,\n      <code>__setformat__</code>,\n      <code>__sub__</code>,\n      <code>__truediv__</code>,\n      <code>__trunc__</code>,\n      <code>as_integer_ratio</code>,\n      <code>conjugate</code>,\n      <code>fromhex</code>,\n      <code>hex</code>,\n      <code>is_integer</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">a new object with type S, a subtype of T</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.units.Meter-class.html#__new__\" class=\"summary-sig-name\">__new__</a>(<span class=\"summary-sig-arg\">cls</span>,\n        <span class=\"summary-sig-arg\">arg</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">name</span>=<span class=\"summary-sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">meter</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"summary-sig-arg\">**Error_name_arg</span>)</span><br />\n      New, named <a href=\"pygeodesy.units.Meter-class.html\" \n      class=\"link\">Meter</a>, see <a \n      href=\"pygeodesy.unitsBase.Float-class.html\" class=\"link\">Float</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase.Float-class.html\">unitsBase.Float</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#isneg0\">isneg0</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>float</code></b>:\n      <code>imag</code>,\n      <code>real</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html\">unitsBase._NamedUnit</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html#std_repr\">std_repr</a></code>,\n      <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__new__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__new__</span>&nbsp;(<span class=\"sig-arg\">cls</span>,\n        <span class=\"sig-arg\">arg</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">name</span>=<span class=\"sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">meter</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"sig-arg\">**Error_name_arg</span>)</span>\n    <br /><em class=\"fname\">Static Method</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New, named <a href=\"pygeodesy.units.Meter-class.html\" \n  class=\"link\">Meter</a>, see <a \n  href=\"pygeodesy.unitsBase.Float-class.html\" class=\"link\">Float</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>arg</code></strong> - The value (any <code>type</code> acceptable to \n          <code>float</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional name (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>Error_name_arg</code></strong> - Optional <code><b>Error</b>=UnitError</code> to raise and \n          optional <code>name=arg</code> keyword argument, inlieu of \n          separate <b><code>arg</code></b> and <b><code>name</code></b> \n          ones.</li>\n    </ul></dd>\n    <dt>Returns: a new object with type S, a subtype of T</dt>\n        <dd>A named <code>Float</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>Error</strong></code> - Invalid <b><code>arg</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__new__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__repr__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__repr__</span>&nbsp;(<span class=\"sig-arg\">self</span>)</span>\n    <br /><em class=\"fname\">(Representation operator)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return a representation of this <code>Meter</code>.</p>\n  <dl class=\"fields\">\n    <dt>Overrides:\n        object.__repr__\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <code>Str.toRepr</code> and property \n        <code>Str.std_repr</code>.\n      </p>\n      <p><strong>Note:</strong>\n        Use <code>env</code> variable \n        <code>PYGEODESY_METER_STD_REPR=std</code> prior to <code>import \n        pygeodesy</code> to get the standard <code>repr</code> or set \n        property <code>std_repr=False</code> to always get the named \n        <code>toRepr</code> representation.\n      </p>\n</div></td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:21 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.units.Meter2-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.units.Meter2</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.units-module.html\">Module&nbsp;units</a> ::\n        Class&nbsp;Meter2\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.units.Meter2-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Meter2</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n          object --+            \n                   |            \n               float --+        \n                       |        \n      object --+       |        \n               |       |        \n    <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+   |        \n                   |   |        \n<a href=\"pygeodesy.unitsBase._NamedUnit-class.html\">unitsBase._NamedUnit</a> --+        \n                       |        \n         <a href=\"pygeodesy.unitsBase.Float-class.html\">unitsBase.Float</a> --+    \n                           |    \n                      <a href=\"pygeodesy.units.Float_-class.html\">Float_</a> --+\n                               |\n                              <strong class=\"uidshort\">Meter2</strong>\n</pre>\n\n<hr />\n<p>Named <code>float</code> representing an area in <code>meter \n  squared</code>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase.Float-class.html\">unitsBase.Float</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#toStr\">toStr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>float</code></b>:\n      <code>__abs__</code>,\n      <code>__add__</code>,\n      <code>__coerce__</code>,\n      <code>__div__</code>,\n      <code>__divmod__</code>,\n      <code>__eq__</code>,\n      <code>__float__</code>,\n      <code>__floordiv__</code>,\n      <code>__format__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getformat__</code>,\n      <code>__getnewargs__</code>,\n      <code>__gt__</code>,\n      <code>__hash__</code>,\n      <code>__int__</code>,\n      <code>__le__</code>,\n      <code>__long__</code>,\n      <code>__lt__</code>,\n      <code>__mod__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__neg__</code>,\n      <code>__nonzero__</code>,\n      <code>__pos__</code>,\n      <code>__pow__</code>,\n      <code>__radd__</code>,\n      <code>__rdiv__</code>,\n      <code>__rdivmod__</code>,\n      <code>__rfloordiv__</code>,\n      <code>__rmod__</code>,\n      <code>__rmul__</code>,\n      <code>__rpow__</code>,\n      <code>__rsub__</code>,\n      <code>__rtruediv__</code>,\n      <code>__setformat__</code>,\n      <code>__sub__</code>,\n      <code>__truediv__</code>,\n      <code>__trunc__</code>,\n      <code>as_integer_ratio</code>,\n      <code>conjugate</code>,\n      <code>fromhex</code>,\n      <code>hex</code>,\n      <code>is_integer</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">a new object with type S, a subtype of T</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.units.Meter2-class.html#__new__\" class=\"summary-sig-name\">__new__</a>(<span class=\"summary-sig-arg\">cls</span>,\n        <span class=\"summary-sig-arg\">arg</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">name</span>=<span class=\"summary-sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">meter2</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"summary-sig-arg\">**Error_name_arg</span>)</span><br />\n      New, named <a href=\"pygeodesy.units.Meter2-class.html\" \n      class=\"link\">Meter2</a>, see <a \n      href=\"pygeodesy.units.Float_-class.html\" class=\"link\">Float_</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase.Float-class.html\">unitsBase.Float</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#isneg0\">isneg0</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>float</code></b>:\n      <code>imag</code>,\n      <code>real</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html\">unitsBase._NamedUnit</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html#std_repr\">std_repr</a></code>,\n      <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__new__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__new__</span>&nbsp;(<span class=\"sig-arg\">cls</span>,\n        <span class=\"sig-arg\">arg</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">name</span>=<span class=\"sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">meter2</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"sig-arg\">**Error_name_arg</span>)</span>\n    <br /><em class=\"fname\">Static Method</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New, named <a href=\"pygeodesy.units.Meter2-class.html\" \n  class=\"link\">Meter2</a>, see <a href=\"pygeodesy.units.Float_-class.html\" \n  class=\"link\">Float_</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>cls</code></strong> - This class (<code>Float_</code> or sub-class).</li>\n        <li><strong class=\"pname\"><code>arg</code></strong> - The value (any <code>type</code> convertable to \n          <code>float</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional instance name (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>low</code></strong> - Optional lower <b><code>arg</code></b> limit (<code>float</code> \n          or <code>None</code>).</li>\n        <li><strong class=\"pname\"><code>high</code></strong> - Optional upper <b><code>arg</code></b> limit (<code>float</code> \n          or <code>None</code>).</li>\n    </ul></dd>\n    <dt>Returns: a new object with type S, a subtype of T</dt>\n        <dd>A named <code>Float_</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>Error</strong></code> - Invalid <b><code>arg</code></b> or <b><code>arg</code></b> below \n        <b><code>low</code></b> or above <b><code>high</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__new__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:21 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.units.Meter3-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.units.Meter3</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.units-module.html\">Module&nbsp;units</a> ::\n        Class&nbsp;Meter3\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.units.Meter3-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Meter3</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n          object --+            \n                   |            \n               float --+        \n                       |        \n      object --+       |        \n               |       |        \n    <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+   |        \n                   |   |        \n<a href=\"pygeodesy.unitsBase._NamedUnit-class.html\">unitsBase._NamedUnit</a> --+        \n                       |        \n         <a href=\"pygeodesy.unitsBase.Float-class.html\">unitsBase.Float</a> --+    \n                           |    \n                      <a href=\"pygeodesy.units.Float_-class.html\">Float_</a> --+\n                               |\n                              <strong class=\"uidshort\">Meter3</strong>\n</pre>\n\n<hr />\n<p>Named <code>float</code> representing a volume in <code>meter \n  cubed</code>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase.Float-class.html\">unitsBase.Float</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#toStr\">toStr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>float</code></b>:\n      <code>__abs__</code>,\n      <code>__add__</code>,\n      <code>__coerce__</code>,\n      <code>__div__</code>,\n      <code>__divmod__</code>,\n      <code>__eq__</code>,\n      <code>__float__</code>,\n      <code>__floordiv__</code>,\n      <code>__format__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getformat__</code>,\n      <code>__getnewargs__</code>,\n      <code>__gt__</code>,\n      <code>__hash__</code>,\n      <code>__int__</code>,\n      <code>__le__</code>,\n      <code>__long__</code>,\n      <code>__lt__</code>,\n      <code>__mod__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__neg__</code>,\n      <code>__nonzero__</code>,\n      <code>__pos__</code>,\n      <code>__pow__</code>,\n      <code>__radd__</code>,\n      <code>__rdiv__</code>,\n      <code>__rdivmod__</code>,\n      <code>__rfloordiv__</code>,\n      <code>__rmod__</code>,\n      <code>__rmul__</code>,\n      <code>__rpow__</code>,\n      <code>__rsub__</code>,\n      <code>__rtruediv__</code>,\n      <code>__setformat__</code>,\n      <code>__sub__</code>,\n      <code>__truediv__</code>,\n      <code>__trunc__</code>,\n      <code>as_integer_ratio</code>,\n      <code>conjugate</code>,\n      <code>fromhex</code>,\n      <code>hex</code>,\n      <code>is_integer</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">a new object with type S, a subtype of T</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.units.Meter3-class.html#__new__\" class=\"summary-sig-name\">__new__</a>(<span class=\"summary-sig-arg\">cls</span>,\n        <span class=\"summary-sig-arg\">arg</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">name</span>=<span class=\"summary-sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">meter3</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"summary-sig-arg\">**Error_name_arg</span>)</span><br />\n      New, named <a href=\"pygeodesy.units.Meter3-class.html\" \n      class=\"link\">Meter3</a>, see <a \n      href=\"pygeodesy.units.Float_-class.html\" class=\"link\">Float_</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase.Float-class.html\">unitsBase.Float</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#isneg0\">isneg0</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>float</code></b>:\n      <code>imag</code>,\n      <code>real</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html\">unitsBase._NamedUnit</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html#std_repr\">std_repr</a></code>,\n      <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__new__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__new__</span>&nbsp;(<span class=\"sig-arg\">cls</span>,\n        <span class=\"sig-arg\">arg</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">name</span>=<span class=\"sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">meter3</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"sig-arg\">**Error_name_arg</span>)</span>\n    <br /><em class=\"fname\">Static Method</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New, named <a href=\"pygeodesy.units.Meter3-class.html\" \n  class=\"link\">Meter3</a>, see <a href=\"pygeodesy.units.Float_-class.html\" \n  class=\"link\">Float_</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>cls</code></strong> - This class (<code>Float_</code> or sub-class).</li>\n        <li><strong class=\"pname\"><code>arg</code></strong> - The value (any <code>type</code> convertable to \n          <code>float</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional instance name (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>low</code></strong> - Optional lower <b><code>arg</code></b> limit (<code>float</code> \n          or <code>None</code>).</li>\n        <li><strong class=\"pname\"><code>high</code></strong> - Optional upper <b><code>arg</code></b> limit (<code>float</code> \n          or <code>None</code>).</li>\n    </ul></dd>\n    <dt>Returns: a new object with type S, a subtype of T</dt>\n        <dd>A named <code>Float_</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>Error</strong></code> - Invalid <b><code>arg</code></b> or <b><code>arg</code></b> below \n        <b><code>low</code></b> or above <b><code>high</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__new__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:21 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.units.Meter_-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.units.Meter_</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.units-module.html\">Module&nbsp;units</a> ::\n        Class&nbsp;Meter_\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.units.Meter_-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Meter_</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n          object --+            \n                   |            \n               float --+        \n                       |        \n      object --+       |        \n               |       |        \n    <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+   |        \n                   |   |        \n<a href=\"pygeodesy.unitsBase._NamedUnit-class.html\">unitsBase._NamedUnit</a> --+        \n                       |        \n         <a href=\"pygeodesy.unitsBase.Float-class.html\">unitsBase.Float</a> --+    \n                           |    \n                      <a href=\"pygeodesy.units.Float_-class.html\">Float_</a> --+\n                               |\n                              <strong class=\"uidshort\">Meter_</strong>\n</pre>\n\n<hr />\n<p>Named <code>float</code> representing a distance or length in \n  <code>meter</code>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase.Float-class.html\">unitsBase.Float</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#toStr\">toStr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>float</code></b>:\n      <code>__abs__</code>,\n      <code>__add__</code>,\n      <code>__coerce__</code>,\n      <code>__div__</code>,\n      <code>__divmod__</code>,\n      <code>__eq__</code>,\n      <code>__float__</code>,\n      <code>__floordiv__</code>,\n      <code>__format__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getformat__</code>,\n      <code>__getnewargs__</code>,\n      <code>__gt__</code>,\n      <code>__hash__</code>,\n      <code>__int__</code>,\n      <code>__le__</code>,\n      <code>__long__</code>,\n      <code>__lt__</code>,\n      <code>__mod__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__neg__</code>,\n      <code>__nonzero__</code>,\n      <code>__pos__</code>,\n      <code>__pow__</code>,\n      <code>__radd__</code>,\n      <code>__rdiv__</code>,\n      <code>__rdivmod__</code>,\n      <code>__rfloordiv__</code>,\n      <code>__rmod__</code>,\n      <code>__rmul__</code>,\n      <code>__rpow__</code>,\n      <code>__rsub__</code>,\n      <code>__rtruediv__</code>,\n      <code>__setformat__</code>,\n      <code>__sub__</code>,\n      <code>__truediv__</code>,\n      <code>__trunc__</code>,\n      <code>as_integer_ratio</code>,\n      <code>conjugate</code>,\n      <code>fromhex</code>,\n      <code>hex</code>,\n      <code>is_integer</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">a new object with type S, a subtype of T</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.units.Meter_-class.html#__new__\" class=\"summary-sig-name\">__new__</a>(<span class=\"summary-sig-arg\">cls</span>,\n        <span class=\"summary-sig-arg\">arg</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">name</span>=<span class=\"summary-sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">meter</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"summary-sig-arg\">low</span>=<span class=\"summary-sig-default\">0.0</span>,\n        <span class=\"summary-sig-arg\">**high_Error_name_arg</span>)</span><br />\n      New, named <a href=\"pygeodesy.units.Meter_-class.html\" \n      class=\"link\">Meter_</a>, see <a \n      href=\"pygeodesy.units.Meter-class.html\" class=\"link\">Meter</a> and <a\n      href=\"pygeodesy.units.Float_-class.html\" class=\"link\">Float_</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase.Float-class.html\">unitsBase.Float</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#isneg0\">isneg0</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>float</code></b>:\n      <code>imag</code>,\n      <code>real</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html\">unitsBase._NamedUnit</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html#std_repr\">std_repr</a></code>,\n      <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__new__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__new__</span>&nbsp;(<span class=\"sig-arg\">cls</span>,\n        <span class=\"sig-arg\">arg</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">name</span>=<span class=\"sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">meter</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"sig-arg\">low</span>=<span class=\"sig-default\">0.0</span>,\n        <span class=\"sig-arg\">**high_Error_name_arg</span>)</span>\n    <br /><em class=\"fname\">Static Method</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New, named <a href=\"pygeodesy.units.Meter_-class.html\" \n  class=\"link\">Meter_</a>, see <a href=\"pygeodesy.units.Meter-class.html\" \n  class=\"link\">Meter</a> and <a href=\"pygeodesy.units.Float_-class.html\" \n  class=\"link\">Float_</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>cls</code></strong> - This class (<code>Float_</code> or sub-class).</li>\n        <li><strong class=\"pname\"><code>arg</code></strong> - The value (any <code>type</code> convertable to \n          <code>float</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional instance name (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>low</code></strong> - Optional lower <b><code>arg</code></b> limit (<code>float</code> \n          or <code>None</code>).</li>\n        <li><strong class=\"pname\"><code>high</code></strong> - Optional upper <b><code>arg</code></b> limit (<code>float</code> \n          or <code>None</code>).</li>\n    </ul></dd>\n    <dt>Returns: a new object with type S, a subtype of T</dt>\n        <dd>A named <code>Float_</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>Error</strong></code> - Invalid <b><code>arg</code></b> or <b><code>arg</code></b> below \n        <b><code>low</code></b> or above <b><code>high</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__new__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:21 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.units.Northing-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.units.Northing</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.units-module.html\">Module&nbsp;units</a> ::\n        Class&nbsp;Northing\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.units.Northing-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Northing</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n          object --+            \n                   |            \n               float --+        \n                       |        \n      object --+       |        \n               |       |        \n    <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+   |        \n                   |   |        \n<a href=\"pygeodesy.unitsBase._NamedUnit-class.html\">unitsBase._NamedUnit</a> --+        \n                       |        \n         <a href=\"pygeodesy.unitsBase.Float-class.html\">unitsBase.Float</a> --+    \n                           |    \n                 _EasNorBase --+\n                               |\n                              <strong class=\"uidshort\">Northing</strong>\n</pre>\n\n<hr />\n<p>Named <code>float</code> representing a northing, conventionally in \n  <code>meter</code>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase.Float-class.html\">unitsBase.Float</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#toStr\">toStr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>float</code></b>:\n      <code>__abs__</code>,\n      <code>__add__</code>,\n      <code>__coerce__</code>,\n      <code>__div__</code>,\n      <code>__divmod__</code>,\n      <code>__eq__</code>,\n      <code>__float__</code>,\n      <code>__floordiv__</code>,\n      <code>__format__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getformat__</code>,\n      <code>__getnewargs__</code>,\n      <code>__gt__</code>,\n      <code>__hash__</code>,\n      <code>__int__</code>,\n      <code>__le__</code>,\n      <code>__long__</code>,\n      <code>__lt__</code>,\n      <code>__mod__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__neg__</code>,\n      <code>__nonzero__</code>,\n      <code>__pos__</code>,\n      <code>__pow__</code>,\n      <code>__radd__</code>,\n      <code>__rdiv__</code>,\n      <code>__rdivmod__</code>,\n      <code>__rfloordiv__</code>,\n      <code>__rmod__</code>,\n      <code>__rmul__</code>,\n      <code>__rpow__</code>,\n      <code>__rsub__</code>,\n      <code>__rtruediv__</code>,\n      <code>__setformat__</code>,\n      <code>__sub__</code>,\n      <code>__truediv__</code>,\n      <code>__trunc__</code>,\n      <code>as_integer_ratio</code>,\n      <code>conjugate</code>,\n      <code>fromhex</code>,\n      <code>hex</code>,\n      <code>is_integer</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">a new object with type S, a subtype of T</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.units.Northing-class.html#__new__\" class=\"summary-sig-name\">__new__</a>(<span class=\"summary-sig-arg\">cls</span>,\n        <span class=\"summary-sig-arg\">arg</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">name</span>=<span class=\"summary-sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">northing</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"summary-sig-arg\">falsed</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">high</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**Error_name_arg</span>)</span><br />\n      New, named <code>Northing</code> or <code>Northing of point</code>, \n      see <a href=\"pygeodesy.unitsBase.Float-class.html\" \n      class=\"link\">Float</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase.Float-class.html\">unitsBase.Float</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#isneg0\">isneg0</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>float</code></b>:\n      <code>imag</code>,\n      <code>real</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html\">unitsBase._NamedUnit</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html#std_repr\">std_repr</a></code>,\n      <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__new__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__new__</span>&nbsp;(<span class=\"sig-arg\">cls</span>,\n        <span class=\"sig-arg\">arg</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">name</span>=<span class=\"sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">northing</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"sig-arg\">falsed</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">high</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**Error_name_arg</span>)</span>\n    <br /><em class=\"fname\">Static Method</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New, named <code>Northing</code> or <code>Northing of point</code>, \n  see <a href=\"pygeodesy.unitsBase.Float-class.html\" \n  class=\"link\">Float</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>cls</code></strong> - This class (<code>Northing</code> or sub-class).</li>\n        <li><strong class=\"pname\"><code>arg</code></strong> - The value (any <code>type</code> convertable to \n          <code>float</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional name (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>falsed</code></strong> - If <code>True</code>, the <b><code>arg</code></b> value is falsed\n          (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>high</code></strong> - Optional upper <b><code>arg</code></b> limit (<code>scalar</code>\n          or <code>None</code>).</li>\n    </ul></dd>\n    <dt>Returns: a new object with type S, a subtype of T</dt>\n        <dd>A named <code>Northing</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>Error</strong></code> - Invalid <b><code>arg</code></b>, above <b><code>high</code></b> or \n        negative, falsed <b><code>arg</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__new__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:21 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.units.Number_-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.units.Number_</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.units-module.html\">Module&nbsp;units</a> ::\n        Class&nbsp;Number_\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.units.Number_-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Number_</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n          object --+            \n                   |            \n                 int --+        \n                       |        \n      object --+       |        \n               |       |        \n    <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+   |        \n                   |   |        \n<a href=\"pygeodesy.unitsBase._NamedUnit-class.html\">unitsBase._NamedUnit</a> --+        \n                       |        \n           <a href=\"pygeodesy.unitsBase.Int-class.html\">unitsBase.Int</a> --+    \n                           |    \n                        <a href=\"pygeodesy.units.Int_-class.html\">Int_</a> --+\n                               |\n                              <strong class=\"uidshort\">Number_</strong>\n</pre>\n\n<hr />\n<p>Named <code>int</code> representing a non-negative number.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase.Int-class.html\">unitsBase.Int</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase.Int-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.unitsBase.Int-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.unitsBase.Int-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.unitsBase.Int-class.html#toStr\">toStr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>int</code></b>:\n      <code>__abs__</code>,\n      <code>__add__</code>,\n      <code>__and__</code>,\n      <code>__cmp__</code>,\n      <code>__coerce__</code>,\n      <code>__div__</code>,\n      <code>__divmod__</code>,\n      <code>__float__</code>,\n      <code>__floordiv__</code>,\n      <code>__format__</code>,\n      <code>__getattribute__</code>,\n      <code>__getnewargs__</code>,\n      <code>__hash__</code>,\n      <code>__hex__</code>,\n      <code>__index__</code>,\n      <code>__int__</code>,\n      <code>__invert__</code>,\n      <code>__long__</code>,\n      <code>__lshift__</code>,\n      <code>__mod__</code>,\n      <code>__mul__</code>,\n      <code>__neg__</code>,\n      <code>__nonzero__</code>,\n      <code>__oct__</code>,\n      <code>__or__</code>,\n      <code>__pos__</code>,\n      <code>__pow__</code>,\n      <code>__radd__</code>,\n      <code>__rand__</code>,\n      <code>__rdiv__</code>,\n      <code>__rdivmod__</code>,\n      <code>__rfloordiv__</code>,\n      <code>__rlshift__</code>,\n      <code>__rmod__</code>,\n      <code>__rmul__</code>,\n      <code>__ror__</code>,\n      <code>__rpow__</code>,\n      <code>__rrshift__</code>,\n      <code>__rshift__</code>,\n      <code>__rsub__</code>,\n      <code>__rtruediv__</code>,\n      <code>__rxor__</code>,\n      <code>__sub__</code>,\n      <code>__truediv__</code>,\n      <code>__trunc__</code>,\n      <code>__xor__</code>,\n      <code>bit_length</code>,\n      <code>conjugate</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">a new object with type S, a subtype of T</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.units.Number_-class.html#__new__\" class=\"summary-sig-name\">__new__</a>(<span class=\"summary-sig-arg\">cls</span>,\n        <span class=\"summary-sig-arg\">arg</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">name</span>=<span class=\"summary-sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">number</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"summary-sig-arg\">**low_high_Error_name_arg</span>)</span><br />\n      New, named <a href=\"pygeodesy.units.Number_-class.html\" \n      class=\"link\">Number_</a>, see <a \n      href=\"pygeodesy.units.Int_-class.html\" class=\"link\">Int_</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>int</code></b>:\n      <code>denominator</code>,\n      <code>imag</code>,\n      <code>numerator</code>,\n      <code>real</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html\">unitsBase._NamedUnit</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html#std_repr\">std_repr</a></code>,\n      <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__new__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__new__</span>&nbsp;(<span class=\"sig-arg\">cls</span>,\n        <span class=\"sig-arg\">arg</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">name</span>=<span class=\"sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">number</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"sig-arg\">**low_high_Error_name_arg</span>)</span>\n    <br /><em class=\"fname\">Static Method</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New, named <a href=\"pygeodesy.units.Number_-class.html\" \n  class=\"link\">Number_</a>, see <a href=\"pygeodesy.units.Int_-class.html\" \n  class=\"link\">Int_</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>cls</code></strong> - This class (<code>Int_</code> or sub-class).</li>\n        <li><strong class=\"pname\"><code>arg</code></strong> - The value (any <code>type</code> convertable to \n          <code>int</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional instance name (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>low</code></strong> - Optional lower <b><code>arg</code></b> limit (<code>int</code> or\n          <code>None</code>).</li>\n        <li><strong class=\"pname\"><code>high</code></strong> - Optional upper <b><code>arg</code></b> limit (<code>int</code> or\n          <code>None</code>).</li>\n    </ul></dd>\n    <dt>Returns: a new object with type S, a subtype of T</dt>\n        <dd>A named <a href=\"pygeodesy.units.Int_-class.html\" \n          class=\"link\">Int_</a>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>Error</strong></code> - Invalid <b><code>arg</code></b> or <b><code>arg</code></b> below \n        <b><code>low</code></b> or above <b><code>high</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__new__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:21 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.units.Phi-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.units.Phi</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.units-module.html\">Module&nbsp;units</a> ::\n        Class&nbsp;Phi\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.units.Phi-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Phi</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n          object --+            \n                   |            \n               float --+        \n                       |        \n      object --+       |        \n               |       |        \n    <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+   |        \n                   |   |        \n<a href=\"pygeodesy.unitsBase._NamedUnit-class.html\">unitsBase._NamedUnit</a> --+        \n                       |        \n         <a href=\"pygeodesy.unitsBase.Float-class.html\">unitsBase.Float</a> --+    \n                           |    \n                     <a href=\"pygeodesy.units.Radians-class.html\">Radians</a> --+\n                               |\n                              <strong class=\"uidshort\">Phi</strong>\n</pre>\n\n<dl><dt>Known Subclasses:</dt>\n<dd>\n      <ul class=\"subclass-list\">\n<li><a href=\"pygeodesy.units.Phid-class.html\">Phid</a></li>  </ul>\n</dd></dl>\n\n<hr />\n<p>Named <code>float</code> representing a latitude in \n  <code>radians</code>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.units.Radians-class.html\">Radians</a></code></b>:\n      <code><a href=\"pygeodesy.units.Radians-class.html#toDegrees\">toDegrees</a></code>,\n      <code><a href=\"pygeodesy.units.Radians-class.html#toRadians\">toRadians</a></code>,\n      <code><a href=\"pygeodesy.units.Radians-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.units.Radians-class.html#toStr\">toStr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase.Float-class.html\">unitsBase.Float</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#__str__\">__str__</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>float</code></b>:\n      <code>__abs__</code>,\n      <code>__add__</code>,\n      <code>__coerce__</code>,\n      <code>__div__</code>,\n      <code>__divmod__</code>,\n      <code>__eq__</code>,\n      <code>__float__</code>,\n      <code>__floordiv__</code>,\n      <code>__format__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getformat__</code>,\n      <code>__getnewargs__</code>,\n      <code>__gt__</code>,\n      <code>__hash__</code>,\n      <code>__int__</code>,\n      <code>__le__</code>,\n      <code>__long__</code>,\n      <code>__lt__</code>,\n      <code>__mod__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__neg__</code>,\n      <code>__nonzero__</code>,\n      <code>__pos__</code>,\n      <code>__pow__</code>,\n      <code>__radd__</code>,\n      <code>__rdiv__</code>,\n      <code>__rdivmod__</code>,\n      <code>__rfloordiv__</code>,\n      <code>__rmod__</code>,\n      <code>__rmul__</code>,\n      <code>__rpow__</code>,\n      <code>__rsub__</code>,\n      <code>__rtruediv__</code>,\n      <code>__setformat__</code>,\n      <code>__sub__</code>,\n      <code>__truediv__</code>,\n      <code>__trunc__</code>,\n      <code>as_integer_ratio</code>,\n      <code>conjugate</code>,\n      <code>fromhex</code>,\n      <code>hex</code>,\n      <code>is_integer</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">a new object with type S, a subtype of T</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.units.Phi-class.html#__new__\" class=\"summary-sig-name\">__new__</a>(<span class=\"summary-sig-arg\">cls</span>,\n        <span class=\"summary-sig-arg\">arg</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">name</span>=<span class=\"summary-sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">phi</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"summary-sig-arg\">clip</span>=<span class=\"summary-sig-default\">1.5707963267948966</span>,\n        <span class=\"summary-sig-arg\">**Error_name_arg</span>)</span><br />\n      New, named <a href=\"pygeodesy.units.Phi-class.html\" \n      class=\"link\">Phi</a>, see <a \n      href=\"pygeodesy.units.Radians-class.html\" class=\"link\">Radians</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase.Float-class.html\">unitsBase.Float</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#isneg0\">isneg0</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>float</code></b>:\n      <code>imag</code>,\n      <code>real</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html\">unitsBase._NamedUnit</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html#std_repr\">std_repr</a></code>,\n      <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__new__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__new__</span>&nbsp;(<span class=\"sig-arg\">cls</span>,\n        <span class=\"sig-arg\">arg</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">name</span>=<span class=\"sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">phi</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"sig-arg\">clip</span>=<span class=\"sig-default\">1.5707963267948966</span>,\n        <span class=\"sig-arg\">**Error_name_arg</span>)</span>\n    <br /><em class=\"fname\">Static Method</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New, named <a href=\"pygeodesy.units.Phi-class.html\" \n  class=\"link\">Phi</a>, see <a href=\"pygeodesy.units.Radians-class.html\" \n  class=\"link\">Radians</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>cls</code></strong> - This class (<code>Radians</code> or sub-class).</li>\n        <li><strong class=\"pname\"><code>arg</code></strong> - The value (any <code>type</code> convertable to \n          <code>float</code> or parsable by <a \n          href=\"pygeodesy.dms-module.html#parseRad\" \n          class=\"link\">pygeodesy.parseRad</a>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional instance name (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>suffix</code></strong> - Optional, valid compass direction suffixes (<code>NSEW</code>).</li>\n        <li><strong class=\"pname\"><code>clip</code></strong> - Optional <b><code>arg</code></b> range \n          <b><code>-clip..+clip</code></b> (<code>radians</code> or \n          <code>0</code> or <code>None</code> for unclipped).</li>\n        <li><strong class=\"pname\"><code>Error</code></strong> - Optional error to raise, overriding the default <a \n          href=\"pygeodesy.errors.UnitError-class.html\" \n          class=\"link\">UnitError</a>.</li>\n        <li><strong class=\"pname\"><code>name_arg</code></strong> - Optional <code>name=arg</code> keyword argument, inlieu of \n          separate <b><code>arg</code></b> and <b><code>name</code></b> \n          ones.</li>\n    </ul></dd>\n    <dt>Returns: a new object with type S, a subtype of T</dt>\n        <dd>A named <code>Radians</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>Error</strong></code> - Invalid <b><code>arg</code></b> or <b><code>abs(arg)</code></b> \n        outside the <b><code>clip</code></b> range and <a \n        href=\"pygeodesy.errors-module.html#rangerrors\" \n        class=\"link\">rangerrors</a> is <code>True</code>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__new__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:21 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.units.Phid-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.units.Phid</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.units-module.html\">Module&nbsp;units</a> ::\n        Class&nbsp;Phid\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.units.Phid-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Phid</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n          object --+                \n                   |                \n               float --+            \n                       |            \n      object --+       |            \n               |       |            \n    <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+   |            \n                   |   |            \n<a href=\"pygeodesy.unitsBase._NamedUnit-class.html\">unitsBase._NamedUnit</a> --+            \n                       |            \n         <a href=\"pygeodesy.unitsBase.Float-class.html\">unitsBase.Float</a> --+        \n                           |        \n                     <a href=\"pygeodesy.units.Radians-class.html\">Radians</a> --+    \n                               |    \n                             <a href=\"pygeodesy.units.Phi-class.html\">Phi</a> --+\n                                   |\n                                  <strong class=\"uidshort\">Phid</strong>\n</pre>\n\n<dl><dt>Known Subclasses:</dt>\n<dd>\n      <ul class=\"subclass-list\">\n<li><a href=\"pygeodesy.deprecated.classes.Phi_-class.html\">deprecated.classes.Phi_</a></li>  </ul>\n</dd></dl>\n\n<hr />\n<p>Named <code>float</code> representing a latitude in \n  <code>radians</code> converted from <code>degrees</code>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.units.Radians-class.html\">Radians</a></code></b>:\n      <code><a href=\"pygeodesy.units.Radians-class.html#toDegrees\">toDegrees</a></code>,\n      <code><a href=\"pygeodesy.units.Radians-class.html#toRadians\">toRadians</a></code>,\n      <code><a href=\"pygeodesy.units.Radians-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.units.Radians-class.html#toStr\">toStr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase.Float-class.html\">unitsBase.Float</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#__str__\">__str__</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>float</code></b>:\n      <code>__abs__</code>,\n      <code>__add__</code>,\n      <code>__coerce__</code>,\n      <code>__div__</code>,\n      <code>__divmod__</code>,\n      <code>__eq__</code>,\n      <code>__float__</code>,\n      <code>__floordiv__</code>,\n      <code>__format__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getformat__</code>,\n      <code>__getnewargs__</code>,\n      <code>__gt__</code>,\n      <code>__hash__</code>,\n      <code>__int__</code>,\n      <code>__le__</code>,\n      <code>__long__</code>,\n      <code>__lt__</code>,\n      <code>__mod__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__neg__</code>,\n      <code>__nonzero__</code>,\n      <code>__pos__</code>,\n      <code>__pow__</code>,\n      <code>__radd__</code>,\n      <code>__rdiv__</code>,\n      <code>__rdivmod__</code>,\n      <code>__rfloordiv__</code>,\n      <code>__rmod__</code>,\n      <code>__rmul__</code>,\n      <code>__rpow__</code>,\n      <code>__rsub__</code>,\n      <code>__rtruediv__</code>,\n      <code>__setformat__</code>,\n      <code>__sub__</code>,\n      <code>__truediv__</code>,\n      <code>__trunc__</code>,\n      <code>as_integer_ratio</code>,\n      <code>conjugate</code>,\n      <code>fromhex</code>,\n      <code>hex</code>,\n      <code>is_integer</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">a new object with type S, a subtype of T</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.units.Phid-class.html#__new__\" class=\"summary-sig-name\">__new__</a>(<span class=\"summary-sig-arg\">cls</span>,\n        <span class=\"summary-sig-arg\">arg</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">name</span>=<span class=\"summary-sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">lat</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"summary-sig-arg\">clip</span>=<span class=\"summary-sig-default\">90</span>,\n        <span class=\"summary-sig-arg\">**Error_name_arg</span>)</span><br />\n      New, named <a href=\"pygeodesy.units.Phid-class.html\" \n      class=\"link\">Phid</a>, see <a href=\"pygeodesy.units.Phi-class.html\" \n      class=\"link\">Phi</a> and <a href=\"pygeodesy.units.Radians-class.html\"\n      class=\"link\">Radians</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase.Float-class.html\">unitsBase.Float</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#isneg0\">isneg0</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>float</code></b>:\n      <code>imag</code>,\n      <code>real</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html\">unitsBase._NamedUnit</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html#std_repr\">std_repr</a></code>,\n      <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__new__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__new__</span>&nbsp;(<span class=\"sig-arg\">cls</span>,\n        <span class=\"sig-arg\">arg</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">name</span>=<span class=\"sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">lat</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"sig-arg\">clip</span>=<span class=\"sig-default\">90</span>,\n        <span class=\"sig-arg\">**Error_name_arg</span>)</span>\n    <br /><em class=\"fname\">Static Method</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New, named <a href=\"pygeodesy.units.Phid-class.html\" \n  class=\"link\">Phid</a>, see <a href=\"pygeodesy.units.Phi-class.html\" \n  class=\"link\">Phi</a> and <a href=\"pygeodesy.units.Radians-class.html\" \n  class=\"link\">Radians</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>cls</code></strong> - This class (<code>Radians</code> or sub-class).</li>\n        <li><strong class=\"pname\"><code>arg</code></strong> - The value (any <code>type</code> convertable to \n          <code>float</code> or parsable by <a \n          href=\"pygeodesy.dms-module.html#parseRad\" \n          class=\"link\">pygeodesy.parseRad</a>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional instance name (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>suffix</code></strong> - Optional, valid compass direction suffixes (<code>NSEW</code>).</li>\n        <li><strong class=\"pname\"><code>clip</code></strong> - Optional <b><code>arg</code></b> range \n          <b><code>-clip..+clip</code></b> (<code>radians</code> or \n          <code>0</code> or <code>None</code> for unclipped).</li>\n        <li><strong class=\"pname\"><code>Error</code></strong> - Optional error to raise, overriding the default <a \n          href=\"pygeodesy.errors.UnitError-class.html\" \n          class=\"link\">UnitError</a>.</li>\n        <li><strong class=\"pname\"><code>name_arg</code></strong> - Optional <code>name=arg</code> keyword argument, inlieu of \n          separate <b><code>arg</code></b> and <b><code>name</code></b> \n          ones.</li>\n    </ul></dd>\n    <dt>Returns: a new object with type S, a subtype of T</dt>\n        <dd>A named <code>Radians</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>Error</strong></code> - Invalid <b><code>arg</code></b> or <b><code>abs(arg)</code></b> \n        outside the <b><code>clip</code></b> range and <a \n        href=\"pygeodesy.errors-module.html#rangerrors\" \n        class=\"link\">rangerrors</a> is <code>True</code>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__new__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:21 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.units.Precision_-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.units.Precision_</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.units-module.html\">Module&nbsp;units</a> ::\n        Class&nbsp;Precision_\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.units.Precision_-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Precision_</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n          object --+            \n                   |            \n                 int --+        \n                       |        \n      object --+       |        \n               |       |        \n    <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+   |        \n                   |   |        \n<a href=\"pygeodesy.unitsBase._NamedUnit-class.html\">unitsBase._NamedUnit</a> --+        \n                       |        \n           <a href=\"pygeodesy.unitsBase.Int-class.html\">unitsBase.Int</a> --+    \n                           |    \n                        <a href=\"pygeodesy.units.Int_-class.html\">Int_</a> --+\n                               |\n                              <strong class=\"uidshort\">Precision_</strong>\n</pre>\n\n<hr />\n<p>Named <code>int</code> with optional <code>low</code> and \n  <code>high</code> limits representing a precision.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase.Int-class.html\">unitsBase.Int</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase.Int-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.unitsBase.Int-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.unitsBase.Int-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.unitsBase.Int-class.html#toStr\">toStr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>int</code></b>:\n      <code>__abs__</code>,\n      <code>__add__</code>,\n      <code>__and__</code>,\n      <code>__cmp__</code>,\n      <code>__coerce__</code>,\n      <code>__div__</code>,\n      <code>__divmod__</code>,\n      <code>__float__</code>,\n      <code>__floordiv__</code>,\n      <code>__format__</code>,\n      <code>__getattribute__</code>,\n      <code>__getnewargs__</code>,\n      <code>__hash__</code>,\n      <code>__hex__</code>,\n      <code>__index__</code>,\n      <code>__int__</code>,\n      <code>__invert__</code>,\n      <code>__long__</code>,\n      <code>__lshift__</code>,\n      <code>__mod__</code>,\n      <code>__mul__</code>,\n      <code>__neg__</code>,\n      <code>__nonzero__</code>,\n      <code>__oct__</code>,\n      <code>__or__</code>,\n      <code>__pos__</code>,\n      <code>__pow__</code>,\n      <code>__radd__</code>,\n      <code>__rand__</code>,\n      <code>__rdiv__</code>,\n      <code>__rdivmod__</code>,\n      <code>__rfloordiv__</code>,\n      <code>__rlshift__</code>,\n      <code>__rmod__</code>,\n      <code>__rmul__</code>,\n      <code>__ror__</code>,\n      <code>__rpow__</code>,\n      <code>__rrshift__</code>,\n      <code>__rshift__</code>,\n      <code>__rsub__</code>,\n      <code>__rtruediv__</code>,\n      <code>__rxor__</code>,\n      <code>__sub__</code>,\n      <code>__truediv__</code>,\n      <code>__trunc__</code>,\n      <code>__xor__</code>,\n      <code>bit_length</code>,\n      <code>conjugate</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">a new object with type S, a subtype of T</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.units.Precision_-class.html#__new__\" class=\"summary-sig-name\">__new__</a>(<span class=\"summary-sig-arg\">cls</span>,\n        <span class=\"summary-sig-arg\">arg</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">name</span>=<span class=\"summary-sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">precision</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"summary-sig-arg\">**low_high_Error_name_arg</span>)</span><br />\n      New, named <a href=\"pygeodesy.units.Precision_-class.html\" \n      class=\"link\">Precision_</a>, see <a \n      href=\"pygeodesy.units.Int_-class.html\" class=\"link\">Int_</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>int</code></b>:\n      <code>denominator</code>,\n      <code>imag</code>,\n      <code>numerator</code>,\n      <code>real</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html\">unitsBase._NamedUnit</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html#std_repr\">std_repr</a></code>,\n      <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__new__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__new__</span>&nbsp;(<span class=\"sig-arg\">cls</span>,\n        <span class=\"sig-arg\">arg</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">name</span>=<span class=\"sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">precision</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"sig-arg\">**low_high_Error_name_arg</span>)</span>\n    <br /><em class=\"fname\">Static Method</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New, named <a href=\"pygeodesy.units.Precision_-class.html\" \n  class=\"link\">Precision_</a>, see <a \n  href=\"pygeodesy.units.Int_-class.html\" class=\"link\">Int_</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>cls</code></strong> - This class (<code>Int_</code> or sub-class).</li>\n        <li><strong class=\"pname\"><code>arg</code></strong> - The value (any <code>type</code> convertable to \n          <code>int</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional instance name (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>low</code></strong> - Optional lower <b><code>arg</code></b> limit (<code>int</code> or\n          <code>None</code>).</li>\n        <li><strong class=\"pname\"><code>high</code></strong> - Optional upper <b><code>arg</code></b> limit (<code>int</code> or\n          <code>None</code>).</li>\n    </ul></dd>\n    <dt>Returns: a new object with type S, a subtype of T</dt>\n        <dd>A named <a href=\"pygeodesy.units.Int_-class.html\" \n          class=\"link\">Int_</a>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>Error</strong></code> - Invalid <b><code>arg</code></b> or <b><code>arg</code></b> below \n        <b><code>low</code></b> or above <b><code>high</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__new__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:21 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.units.Radians-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.units.Radians</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.units-module.html\">Module&nbsp;units</a> ::\n        Class&nbsp;Radians\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.units.Radians-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Radians</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n          object --+        \n                   |        \n               float --+    \n                       |    \n      object --+       |    \n               |       |    \n    <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+   |    \n                   |   |    \n<a href=\"pygeodesy.unitsBase._NamedUnit-class.html\">unitsBase._NamedUnit</a> --+    \n                       |    \n         <a href=\"pygeodesy.unitsBase.Float-class.html\">unitsBase.Float</a> --+\n                           |\n                          <strong class=\"uidshort\">Radians</strong>\n</pre>\n\n<dl><dt>Known Subclasses:</dt>\n<dd>\n      <ul class=\"subclass-list\">\n<li><a href=\"pygeodesy.units.Bearing_-class.html\">Bearing_</a></li><li>, <a href=\"pygeodesy.units.Lam-class.html\">Lam</a></li><li>, <a href=\"pygeodesy.angles.Lambertian-class.html\">angles.Lambertian</a></li><li>, <a href=\"pygeodesy.units.Phi-class.html\">Phi</a></li><li>, <a href=\"pygeodesy.units.Radians_-class.html\">Radians_</a></li>  </ul>\n</dd></dl>\n\n<hr />\n<p>Named <code>float</code> representing a coordinate in \n  <code>radians</code>, optionally clipped.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"toDegrees\"></a><span class=\"summary-sig-name\">toDegrees</span>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Convert <code>Radians</code> to <code>Degrees</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"toRadians\"></a><span class=\"summary-sig-name\">toRadians</span>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Convert <code>Radians</code> to <code>Radians</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.units.Radians-class.html#toRepr\" class=\"summary-sig-name\">toRepr</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">std</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">**prec_fmt_ints</span>)</span><br />\n      Return a representation of this <code>Radians</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.units.Radians-class.html#toStr\" class=\"summary-sig-name\">toStr</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">prec</span>=<span class=\"summary-sig-default\">8</span>,\n        <span class=\"summary-sig-arg\">fmt</span>=<span class=\"summary-sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">f</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"summary-sig-arg\">ints</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Return this <code>Radians</code> as standard <code>str</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase.Float-class.html\">unitsBase.Float</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#__str__\">__str__</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>float</code></b>:\n      <code>__abs__</code>,\n      <code>__add__</code>,\n      <code>__coerce__</code>,\n      <code>__div__</code>,\n      <code>__divmod__</code>,\n      <code>__eq__</code>,\n      <code>__float__</code>,\n      <code>__floordiv__</code>,\n      <code>__format__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getformat__</code>,\n      <code>__getnewargs__</code>,\n      <code>__gt__</code>,\n      <code>__hash__</code>,\n      <code>__int__</code>,\n      <code>__le__</code>,\n      <code>__long__</code>,\n      <code>__lt__</code>,\n      <code>__mod__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__neg__</code>,\n      <code>__nonzero__</code>,\n      <code>__pos__</code>,\n      <code>__pow__</code>,\n      <code>__radd__</code>,\n      <code>__rdiv__</code>,\n      <code>__rdivmod__</code>,\n      <code>__rfloordiv__</code>,\n      <code>__rmod__</code>,\n      <code>__rmul__</code>,\n      <code>__rpow__</code>,\n      <code>__rsub__</code>,\n      <code>__rtruediv__</code>,\n      <code>__setformat__</code>,\n      <code>__sub__</code>,\n      <code>__truediv__</code>,\n      <code>__trunc__</code>,\n      <code>as_integer_ratio</code>,\n      <code>conjugate</code>,\n      <code>fromhex</code>,\n      <code>hex</code>,\n      <code>is_integer</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">a new object with type S, a subtype of T</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.units.Radians-class.html#__new__\" class=\"summary-sig-name\">__new__</a>(<span class=\"summary-sig-arg\">cls</span>,\n        <span class=\"summary-sig-arg\">arg</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">name</span>=<span class=\"summary-sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">radians</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"summary-sig-arg\">suffix</span>=<span class=\"summary-sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">NSEW</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"summary-sig-arg\">clip</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">Error</span>=<span class=\"summary-sig-default\">&lt;class 'pygeodesy.errors.UnitError'&gt;</span>,\n        <span class=\"summary-sig-arg\">**name_arg</span>)</span><br />\n      New, named <code>Radians</code>, see <a \n      href=\"pygeodesy.unitsBase.Float-class.html\" class=\"link\">Float</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase.Float-class.html\">unitsBase.Float</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#isneg0\">isneg0</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>float</code></b>:\n      <code>imag</code>,\n      <code>real</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html\">unitsBase._NamedUnit</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html#std_repr\">std_repr</a></code>,\n      <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__new__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__new__</span>&nbsp;(<span class=\"sig-arg\">cls</span>,\n        <span class=\"sig-arg\">arg</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">name</span>=<span class=\"sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">radians</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"sig-arg\">suffix</span>=<span class=\"sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">NSEW</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"sig-arg\">clip</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">Error</span>=<span class=\"sig-default\">&lt;class 'pygeodesy.errors.UnitError'&gt;</span>,\n        <span class=\"sig-arg\">**name_arg</span>)</span>\n    <br /><em class=\"fname\">Static Method</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New, named <code>Radians</code>, see <a \n  href=\"pygeodesy.unitsBase.Float-class.html\" class=\"link\">Float</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>cls</code></strong> - This class (<code>Radians</code> or sub-class).</li>\n        <li><strong class=\"pname\"><code>arg</code></strong> - The value (any <code>type</code> convertable to \n          <code>float</code> or parsable by <a \n          href=\"pygeodesy.dms-module.html#parseRad\" \n          class=\"link\">pygeodesy.parseRad</a>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional instance name (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>suffix</code></strong> - Optional, valid compass direction suffixes (<code>NSEW</code>).</li>\n        <li><strong class=\"pname\"><code>clip</code></strong> - Optional <b><code>arg</code></b> range \n          <b><code>-clip..+clip</code></b> (<code>radians</code> or \n          <code>0</code> or <code>None</code> for unclipped).</li>\n        <li><strong class=\"pname\"><code>Error</code></strong> - Optional error to raise, overriding the default <a \n          href=\"pygeodesy.errors.UnitError-class.html\" \n          class=\"link\">UnitError</a>.</li>\n        <li><strong class=\"pname\"><code>name_arg</code></strong> - Optional <code>name=arg</code> keyword argument, inlieu of \n          separate <b><code>arg</code></b> and <b><code>name</code></b> \n          ones.</li>\n    </ul></dd>\n    <dt>Returns: a new object with type S, a subtype of T</dt>\n        <dd>A named <code>Radians</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>Error</strong></code> - Invalid <b><code>arg</code></b> or <b><code>abs(arg)</code></b> \n        outside the <b><code>clip</code></b> range and <a \n        href=\"pygeodesy.errors-module.html#rangerrors\" \n        class=\"link\">rangerrors</a> is <code>True</code>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__new__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toRepr\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toRepr</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">std</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">**prec_fmt_ints</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return a representation of this <code>Radians</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>std</code></strong> - If <code>True</code>, return the standard <code>repr</code>, \n          otherwise the named representation (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.named._Named-class.html#toRepr\">named._Named.toRepr</a>\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Methods <a href=\"pygeodesy.units.Radians-class.html#toStr\" \n        class=\"link\">Radians.toStr</a>, <a \n        href=\"pygeodesy.unitsBase.Float-class.html#toRepr\" \n        class=\"link\">Float.toRepr</a> and function <a \n        href=\"pygeodesy.dms-module.html#toDMS\" \n        class=\"link\">pygeodesy.toDMS</a> for more documentation.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"toStr\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toStr</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">prec</span>=<span class=\"sig-default\">8</span>,\n        <span class=\"sig-arg\">fmt</span>=<span class=\"sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">f</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"sig-arg\">ints</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return this <code>Radians</code> as standard <code>str</code>.</p>\n  <dl class=\"fields\">\n    <dt>Overrides:\n        <a href=\"pygeodesy.named._Named-class.html#toStr\">named._Named.toStr</a>\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.streprs-module.html#fstr\" \n        class=\"link\">pygeodesy.fstr</a> for keyword argument details.\n      </p>\n</div></td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:21 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.units.Radians2-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.units.Radians2</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.units-module.html\">Module&nbsp;units</a> ::\n        Class&nbsp;Radians2\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.units.Radians2-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Radians2</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n          object --+            \n                   |            \n               float --+        \n                       |        \n      object --+       |        \n               |       |        \n    <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+   |        \n                   |   |        \n<a href=\"pygeodesy.unitsBase._NamedUnit-class.html\">unitsBase._NamedUnit</a> --+        \n                       |        \n         <a href=\"pygeodesy.unitsBase.Float-class.html\">unitsBase.Float</a> --+    \n                           |    \n                      <a href=\"pygeodesy.units.Float_-class.html\">Float_</a> --+\n                               |\n                              <strong class=\"uidshort\">Radians2</strong>\n</pre>\n\n<hr />\n<p>Named <code>float</code> representing a distance in <code>radians \n  squared</code>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase.Float-class.html\">unitsBase.Float</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#toStr\">toStr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>float</code></b>:\n      <code>__abs__</code>,\n      <code>__add__</code>,\n      <code>__coerce__</code>,\n      <code>__div__</code>,\n      <code>__divmod__</code>,\n      <code>__eq__</code>,\n      <code>__float__</code>,\n      <code>__floordiv__</code>,\n      <code>__format__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getformat__</code>,\n      <code>__getnewargs__</code>,\n      <code>__gt__</code>,\n      <code>__hash__</code>,\n      <code>__int__</code>,\n      <code>__le__</code>,\n      <code>__long__</code>,\n      <code>__lt__</code>,\n      <code>__mod__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__neg__</code>,\n      <code>__nonzero__</code>,\n      <code>__pos__</code>,\n      <code>__pow__</code>,\n      <code>__radd__</code>,\n      <code>__rdiv__</code>,\n      <code>__rdivmod__</code>,\n      <code>__rfloordiv__</code>,\n      <code>__rmod__</code>,\n      <code>__rmul__</code>,\n      <code>__rpow__</code>,\n      <code>__rsub__</code>,\n      <code>__rtruediv__</code>,\n      <code>__setformat__</code>,\n      <code>__sub__</code>,\n      <code>__truediv__</code>,\n      <code>__trunc__</code>,\n      <code>as_integer_ratio</code>,\n      <code>conjugate</code>,\n      <code>fromhex</code>,\n      <code>hex</code>,\n      <code>is_integer</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">a new object with type S, a subtype of T</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.units.Radians2-class.html#__new__\" class=\"summary-sig-name\">__new__</a>(<span class=\"summary-sig-arg\">cls</span>,\n        <span class=\"summary-sig-arg\">arg</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">name</span>=<span class=\"summary-sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">radians2</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"summary-sig-arg\">**Error_name_arg</span>)</span><br />\n      New, named <a href=\"pygeodesy.units.Radians2-class.html\" \n      class=\"link\">Radians2</a>, see <a \n      href=\"pygeodesy.units.Float_-class.html\" class=\"link\">Float_</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase.Float-class.html\">unitsBase.Float</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#isneg0\">isneg0</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>float</code></b>:\n      <code>imag</code>,\n      <code>real</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html\">unitsBase._NamedUnit</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html#std_repr\">std_repr</a></code>,\n      <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__new__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__new__</span>&nbsp;(<span class=\"sig-arg\">cls</span>,\n        <span class=\"sig-arg\">arg</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">name</span>=<span class=\"sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">radians2</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"sig-arg\">**Error_name_arg</span>)</span>\n    <br /><em class=\"fname\">Static Method</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New, named <a href=\"pygeodesy.units.Radians2-class.html\" \n  class=\"link\">Radians2</a>, see <a \n  href=\"pygeodesy.units.Float_-class.html\" class=\"link\">Float_</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>cls</code></strong> - This class (<code>Float_</code> or sub-class).</li>\n        <li><strong class=\"pname\"><code>arg</code></strong> - The value (any <code>type</code> convertable to \n          <code>float</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional instance name (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>low</code></strong> - Optional lower <b><code>arg</code></b> limit (<code>float</code> \n          or <code>None</code>).</li>\n        <li><strong class=\"pname\"><code>high</code></strong> - Optional upper <b><code>arg</code></b> limit (<code>float</code> \n          or <code>None</code>).</li>\n    </ul></dd>\n    <dt>Returns: a new object with type S, a subtype of T</dt>\n        <dd>A named <code>Float_</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>Error</strong></code> - Invalid <b><code>arg</code></b> or <b><code>arg</code></b> below \n        <b><code>low</code></b> or above <b><code>high</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__new__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:21 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.units.Radians_-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.units.Radians_</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.units-module.html\">Module&nbsp;units</a> ::\n        Class&nbsp;Radians_\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.units.Radians_-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Radians_</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n          object --+            \n                   |            \n               float --+        \n                       |        \n      object --+       |        \n               |       |        \n    <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+   |        \n                   |   |        \n<a href=\"pygeodesy.unitsBase._NamedUnit-class.html\">unitsBase._NamedUnit</a> --+        \n                       |        \n         <a href=\"pygeodesy.unitsBase.Float-class.html\">unitsBase.Float</a> --+    \n                           |    \n                     <a href=\"pygeodesy.units.Radians-class.html\">Radians</a> --+\n                               |\n                              <strong class=\"uidshort\">Radians_</strong>\n</pre>\n\n<hr />\n<p>Named <code>float</code> representing a coordinate in \n  <code>radians</code> with optional limits <code>low</code> and \n  <code>high</code>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.units.Radians-class.html\">Radians</a></code></b>:\n      <code><a href=\"pygeodesy.units.Radians-class.html#toDegrees\">toDegrees</a></code>,\n      <code><a href=\"pygeodesy.units.Radians-class.html#toRadians\">toRadians</a></code>,\n      <code><a href=\"pygeodesy.units.Radians-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.units.Radians-class.html#toStr\">toStr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase.Float-class.html\">unitsBase.Float</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#__str__\">__str__</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>float</code></b>:\n      <code>__abs__</code>,\n      <code>__add__</code>,\n      <code>__coerce__</code>,\n      <code>__div__</code>,\n      <code>__divmod__</code>,\n      <code>__eq__</code>,\n      <code>__float__</code>,\n      <code>__floordiv__</code>,\n      <code>__format__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getformat__</code>,\n      <code>__getnewargs__</code>,\n      <code>__gt__</code>,\n      <code>__hash__</code>,\n      <code>__int__</code>,\n      <code>__le__</code>,\n      <code>__long__</code>,\n      <code>__lt__</code>,\n      <code>__mod__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__neg__</code>,\n      <code>__nonzero__</code>,\n      <code>__pos__</code>,\n      <code>__pow__</code>,\n      <code>__radd__</code>,\n      <code>__rdiv__</code>,\n      <code>__rdivmod__</code>,\n      <code>__rfloordiv__</code>,\n      <code>__rmod__</code>,\n      <code>__rmul__</code>,\n      <code>__rpow__</code>,\n      <code>__rsub__</code>,\n      <code>__rtruediv__</code>,\n      <code>__setformat__</code>,\n      <code>__sub__</code>,\n      <code>__truediv__</code>,\n      <code>__trunc__</code>,\n      <code>as_integer_ratio</code>,\n      <code>conjugate</code>,\n      <code>fromhex</code>,\n      <code>hex</code>,\n      <code>is_integer</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">a new object with type S, a subtype of T</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.units.Radians_-class.html#__new__\" class=\"summary-sig-name\">__new__</a>(<span class=\"summary-sig-arg\">cls</span>,\n        <span class=\"summary-sig-arg\">arg</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">name</span>=<span class=\"summary-sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">radians</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"summary-sig-arg\">low</span>=<span class=\"summary-sig-default\">0.0</span>,\n        <span class=\"summary-sig-arg\">high</span>=<span class=\"summary-sig-default\">6.283185307179586</span>,\n        <span class=\"summary-sig-arg\">**suffix_Error_name_arg</span>)</span><br />\n      New, named <code>Radians_</code>, see <a \n      href=\"pygeodesy.units.Radians-class.html\" class=\"link\">Radians</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase.Float-class.html\">unitsBase.Float</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#isneg0\">isneg0</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>float</code></b>:\n      <code>imag</code>,\n      <code>real</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html\">unitsBase._NamedUnit</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html#std_repr\">std_repr</a></code>,\n      <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__new__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__new__</span>&nbsp;(<span class=\"sig-arg\">cls</span>,\n        <span class=\"sig-arg\">arg</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">name</span>=<span class=\"sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">radians</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"sig-arg\">low</span>=<span class=\"sig-default\">0.0</span>,\n        <span class=\"sig-arg\">high</span>=<span class=\"sig-default\">6.283185307179586</span>,\n        <span class=\"sig-arg\">**suffix_Error_name_arg</span>)</span>\n    <br /><em class=\"fname\">Static Method</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New, named <code>Radians_</code>, see <a \n  href=\"pygeodesy.units.Radians-class.html\" class=\"link\">Radians</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>cls</code></strong> - This class (<code>Radians_</code> or sub-class).</li>\n        <li><strong class=\"pname\"><code>arg</code></strong> - The value (any <code>type</code> convertable to \n          <code>float</code> or parsable by function <a \n          href=\"pygeodesy.dms-module.html#parseRad\" \n          class=\"link\">parseRad</a>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional name (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>low</code></strong> - Optional lower <b><code>arg</code></b> limit (<code>float</code> \n          or <code>None</code>).</li>\n        <li><strong class=\"pname\"><code>high</code></strong> - Optional upper <b><code>arg</code></b> limit (<code>float</code> \n          or <code>None</code>).</li>\n    </ul></dd>\n    <dt>Returns: a new object with type S, a subtype of T</dt>\n        <dd>A named <code>Radians_</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>Error</strong></code> - Invalid <b><code>arg</code></b> or <b><code>arg</code></b> below \n        <b><code>low</code></b> or above <b><code>high</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__new__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:21 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.units.Radius_-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.units.Radius_</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.units-module.html\">Module&nbsp;units</a> ::\n        Class&nbsp;Radius_\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.units.Radius_-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Radius_</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n          object --+            \n                   |            \n               float --+        \n                       |        \n      object --+       |        \n               |       |        \n    <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+   |        \n                   |   |        \n<a href=\"pygeodesy.unitsBase._NamedUnit-class.html\">unitsBase._NamedUnit</a> --+        \n                       |        \n         <a href=\"pygeodesy.unitsBase.Float-class.html\">unitsBase.Float</a> --+    \n                           |    \n                      <a href=\"pygeodesy.units.Float_-class.html\">Float_</a> --+\n                               |\n                              <strong class=\"uidshort\">Radius_</strong>\n</pre>\n\n<hr />\n<p>Named <code>float</code> with optional <code>low</code> and \n  <code>high</code> limits representing a radius, conventionally in \n  <code>meter</code>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase.Float-class.html\">unitsBase.Float</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#toStr\">toStr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>float</code></b>:\n      <code>__abs__</code>,\n      <code>__add__</code>,\n      <code>__coerce__</code>,\n      <code>__div__</code>,\n      <code>__divmod__</code>,\n      <code>__eq__</code>,\n      <code>__float__</code>,\n      <code>__floordiv__</code>,\n      <code>__format__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getformat__</code>,\n      <code>__getnewargs__</code>,\n      <code>__gt__</code>,\n      <code>__hash__</code>,\n      <code>__int__</code>,\n      <code>__le__</code>,\n      <code>__long__</code>,\n      <code>__lt__</code>,\n      <code>__mod__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__neg__</code>,\n      <code>__nonzero__</code>,\n      <code>__pos__</code>,\n      <code>__pow__</code>,\n      <code>__radd__</code>,\n      <code>__rdiv__</code>,\n      <code>__rdivmod__</code>,\n      <code>__rfloordiv__</code>,\n      <code>__rmod__</code>,\n      <code>__rmul__</code>,\n      <code>__rpow__</code>,\n      <code>__rsub__</code>,\n      <code>__rtruediv__</code>,\n      <code>__setformat__</code>,\n      <code>__sub__</code>,\n      <code>__truediv__</code>,\n      <code>__trunc__</code>,\n      <code>as_integer_ratio</code>,\n      <code>conjugate</code>,\n      <code>fromhex</code>,\n      <code>hex</code>,\n      <code>is_integer</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">a new object with type S, a subtype of T</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.units.Radius_-class.html#__new__\" class=\"summary-sig-name\">__new__</a>(<span class=\"summary-sig-arg\">cls</span>,\n        <span class=\"summary-sig-arg\">arg</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">name</span>=<span class=\"summary-sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">radius</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"summary-sig-arg\">**low_high_Error_name_arg</span>)</span><br />\n      New, named <a href=\"pygeodesy.units.Radius_-class.html\" \n      class=\"link\">Radius_</a>, see <a \n      href=\"pygeodesy.unitsBase.Radius-class.html\" class=\"link\">Radius</a> \n      and <a href=\"pygeodesy.unitsBase.Float-class.html\" \n      class=\"link\">Float</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase.Float-class.html\">unitsBase.Float</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#isneg0\">isneg0</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>float</code></b>:\n      <code>imag</code>,\n      <code>real</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html\">unitsBase._NamedUnit</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html#std_repr\">std_repr</a></code>,\n      <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__new__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__new__</span>&nbsp;(<span class=\"sig-arg\">cls</span>,\n        <span class=\"sig-arg\">arg</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">name</span>=<span class=\"sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">radius</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"sig-arg\">**low_high_Error_name_arg</span>)</span>\n    <br /><em class=\"fname\">Static Method</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New, named <a href=\"pygeodesy.units.Radius_-class.html\" \n  class=\"link\">Radius_</a>, see <a \n  href=\"pygeodesy.unitsBase.Radius-class.html\" class=\"link\">Radius</a> and \n  <a href=\"pygeodesy.unitsBase.Float-class.html\" \n  class=\"link\">Float</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>cls</code></strong> - This class (<code>Float_</code> or sub-class).</li>\n        <li><strong class=\"pname\"><code>arg</code></strong> - The value (any <code>type</code> convertable to \n          <code>float</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional instance name (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>low</code></strong> - Optional lower <b><code>arg</code></b> limit (<code>float</code> \n          or <code>None</code>).</li>\n        <li><strong class=\"pname\"><code>high</code></strong> - Optional upper <b><code>arg</code></b> limit (<code>float</code> \n          or <code>None</code>).</li>\n    </ul></dd>\n    <dt>Returns: a new object with type S, a subtype of T</dt>\n        <dd>A named <code>Float_</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>Error</strong></code> - Invalid <b><code>arg</code></b> or <b><code>arg</code></b> below \n        <b><code>low</code></b> or above <b><code>high</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__new__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:21 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.units.Scalar-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.units.Scalar</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.units-module.html\">Module&nbsp;units</a> ::\n        Class&nbsp;Scalar\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.units.Scalar-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Scalar</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n          object --+        \n                   |        \n               float --+    \n                       |    \n      object --+       |    \n               |       |    \n    <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+   |    \n                   |   |    \n<a href=\"pygeodesy.unitsBase._NamedUnit-class.html\">unitsBase._NamedUnit</a> --+    \n                       |    \n         <a href=\"pygeodesy.unitsBase.Float-class.html\">unitsBase.Float</a> --+\n                           |\n                          <strong class=\"uidshort\">Scalar</strong>\n</pre>\n\n<hr />\n<p>Named <code>float</code> representing a factor, fraction, scale, \n  etc.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase.Float-class.html\">unitsBase.Float</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#toStr\">toStr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>float</code></b>:\n      <code>__abs__</code>,\n      <code>__add__</code>,\n      <code>__coerce__</code>,\n      <code>__div__</code>,\n      <code>__divmod__</code>,\n      <code>__eq__</code>,\n      <code>__float__</code>,\n      <code>__floordiv__</code>,\n      <code>__format__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getformat__</code>,\n      <code>__getnewargs__</code>,\n      <code>__gt__</code>,\n      <code>__hash__</code>,\n      <code>__int__</code>,\n      <code>__le__</code>,\n      <code>__long__</code>,\n      <code>__lt__</code>,\n      <code>__mod__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__neg__</code>,\n      <code>__nonzero__</code>,\n      <code>__pos__</code>,\n      <code>__pow__</code>,\n      <code>__radd__</code>,\n      <code>__rdiv__</code>,\n      <code>__rdivmod__</code>,\n      <code>__rfloordiv__</code>,\n      <code>__rmod__</code>,\n      <code>__rmul__</code>,\n      <code>__rpow__</code>,\n      <code>__rsub__</code>,\n      <code>__rtruediv__</code>,\n      <code>__setformat__</code>,\n      <code>__sub__</code>,\n      <code>__truediv__</code>,\n      <code>__trunc__</code>,\n      <code>as_integer_ratio</code>,\n      <code>conjugate</code>,\n      <code>fromhex</code>,\n      <code>hex</code>,\n      <code>is_integer</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">a new object with type S, a subtype of T</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.units.Scalar-class.html#__new__\" class=\"summary-sig-name\">__new__</a>(<span class=\"summary-sig-arg\">cls</span>,\n        <span class=\"summary-sig-arg\">arg</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">name</span>=<span class=\"summary-sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">scalar</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"summary-sig-arg\">**Error_name_arg</span>)</span><br />\n      New, named <a href=\"pygeodesy.units.Scalar-class.html\" \n      class=\"link\">Scalar</a>, see <a \n      href=\"pygeodesy.unitsBase.Float-class.html\" class=\"link\">Float</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase.Float-class.html\">unitsBase.Float</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#isneg0\">isneg0</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>float</code></b>:\n      <code>imag</code>,\n      <code>real</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html\">unitsBase._NamedUnit</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html#std_repr\">std_repr</a></code>,\n      <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__new__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__new__</span>&nbsp;(<span class=\"sig-arg\">cls</span>,\n        <span class=\"sig-arg\">arg</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">name</span>=<span class=\"sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">scalar</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"sig-arg\">**Error_name_arg</span>)</span>\n    <br /><em class=\"fname\">Static Method</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New, named <a href=\"pygeodesy.units.Scalar-class.html\" \n  class=\"link\">Scalar</a>, see <a \n  href=\"pygeodesy.unitsBase.Float-class.html\" class=\"link\">Float</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>arg</code></strong> - The value (any <code>type</code> acceptable to \n          <code>float</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional name (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>Error_name_arg</code></strong> - Optional <code><b>Error</b>=UnitError</code> to raise and \n          optional <code>name=arg</code> keyword argument, inlieu of \n          separate <b><code>arg</code></b> and <b><code>name</code></b> \n          ones.</li>\n    </ul></dd>\n    <dt>Returns: a new object with type S, a subtype of T</dt>\n        <dd>A named <code>Float</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>Error</strong></code> - Invalid <b><code>arg</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__new__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:21 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.units.Scalar_-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.units.Scalar_</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.units-module.html\">Module&nbsp;units</a> ::\n        Class&nbsp;Scalar_\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.units.Scalar_-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Scalar_</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n          object --+            \n                   |            \n               float --+        \n                       |        \n      object --+       |        \n               |       |        \n    <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+   |        \n                   |   |        \n<a href=\"pygeodesy.unitsBase._NamedUnit-class.html\">unitsBase._NamedUnit</a> --+        \n                       |        \n         <a href=\"pygeodesy.unitsBase.Float-class.html\">unitsBase.Float</a> --+    \n                           |    \n                      <a href=\"pygeodesy.units.Float_-class.html\">Float_</a> --+\n                               |\n                              <strong class=\"uidshort\">Scalar_</strong>\n</pre>\n\n<hr />\n<p>Named <code>float</code> with optional <code>low</code> and \n  <code>high</code> limits representing a factor, fraction, scale, etc.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase.Float-class.html\">unitsBase.Float</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#toStr\">toStr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>float</code></b>:\n      <code>__abs__</code>,\n      <code>__add__</code>,\n      <code>__coerce__</code>,\n      <code>__div__</code>,\n      <code>__divmod__</code>,\n      <code>__eq__</code>,\n      <code>__float__</code>,\n      <code>__floordiv__</code>,\n      <code>__format__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getformat__</code>,\n      <code>__getnewargs__</code>,\n      <code>__gt__</code>,\n      <code>__hash__</code>,\n      <code>__int__</code>,\n      <code>__le__</code>,\n      <code>__long__</code>,\n      <code>__lt__</code>,\n      <code>__mod__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__neg__</code>,\n      <code>__nonzero__</code>,\n      <code>__pos__</code>,\n      <code>__pow__</code>,\n      <code>__radd__</code>,\n      <code>__rdiv__</code>,\n      <code>__rdivmod__</code>,\n      <code>__rfloordiv__</code>,\n      <code>__rmod__</code>,\n      <code>__rmul__</code>,\n      <code>__rpow__</code>,\n      <code>__rsub__</code>,\n      <code>__rtruediv__</code>,\n      <code>__setformat__</code>,\n      <code>__sub__</code>,\n      <code>__truediv__</code>,\n      <code>__trunc__</code>,\n      <code>as_integer_ratio</code>,\n      <code>conjugate</code>,\n      <code>fromhex</code>,\n      <code>hex</code>,\n      <code>is_integer</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">a new object with type S, a subtype of T</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.units.Scalar_-class.html#__new__\" class=\"summary-sig-name\">__new__</a>(<span class=\"summary-sig-arg\">cls</span>,\n        <span class=\"summary-sig-arg\">arg</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">name</span>=<span class=\"summary-sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">scalar</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"summary-sig-arg\">low</span>=<span class=\"summary-sig-default\">0.0</span>,\n        <span class=\"summary-sig-arg\">**high_Error_name_arg</span>)</span><br />\n      New, named <a href=\"pygeodesy.units.Scalar_-class.html\" \n      class=\"link\">Scalar_</a>, see <a \n      href=\"pygeodesy.units.Scalar-class.html\" class=\"link\">Scalar</a> and \n      <a href=\"pygeodesy.units.Float_-class.html\" class=\"link\">Float_</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase.Float-class.html\">unitsBase.Float</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#isneg0\">isneg0</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>float</code></b>:\n      <code>imag</code>,\n      <code>real</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html\">unitsBase._NamedUnit</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html#std_repr\">std_repr</a></code>,\n      <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__new__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__new__</span>&nbsp;(<span class=\"sig-arg\">cls</span>,\n        <span class=\"sig-arg\">arg</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">name</span>=<span class=\"sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">scalar</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"sig-arg\">low</span>=<span class=\"sig-default\">0.0</span>,\n        <span class=\"sig-arg\">**high_Error_name_arg</span>)</span>\n    <br /><em class=\"fname\">Static Method</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New, named <a href=\"pygeodesy.units.Scalar_-class.html\" \n  class=\"link\">Scalar_</a>, see <a href=\"pygeodesy.units.Scalar-class.html\"\n  class=\"link\">Scalar</a> and <a href=\"pygeodesy.units.Float_-class.html\" \n  class=\"link\">Float_</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>cls</code></strong> - This class (<code>Float_</code> or sub-class).</li>\n        <li><strong class=\"pname\"><code>arg</code></strong> - The value (any <code>type</code> convertable to \n          <code>float</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional instance name (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>low</code></strong> - Optional lower <b><code>arg</code></b> limit (<code>float</code> \n          or <code>None</code>).</li>\n        <li><strong class=\"pname\"><code>high</code></strong> - Optional upper <b><code>arg</code></b> limit (<code>float</code> \n          or <code>None</code>).</li>\n    </ul></dd>\n    <dt>Returns: a new object with type S, a subtype of T</dt>\n        <dd>A named <code>Float_</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>Error</strong></code> - Invalid <b><code>arg</code></b> or <b><code>arg</code></b> below \n        <b><code>low</code></b> or above <b><code>high</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__new__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:21 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.units.Zone-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.units.Zone</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.units-module.html\">Module&nbsp;units</a> ::\n        Class&nbsp;Zone\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.units.Zone-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Zone</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n          object --+        \n                   |        \n                 int --+    \n                       |    \n      object --+       |    \n               |       |    \n    <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+   |    \n                   |   |    \n<a href=\"pygeodesy.unitsBase._NamedUnit-class.html\">unitsBase._NamedUnit</a> --+    \n                       |    \n           <a href=\"pygeodesy.unitsBase.Int-class.html\">unitsBase.Int</a> --+\n                           |\n                          <strong class=\"uidshort\">Zone</strong>\n</pre>\n\n<hr />\n<p>Named <code>int</code> representing a UTM/UPS zone number.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase.Int-class.html\">unitsBase.Int</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase.Int-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.unitsBase.Int-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.unitsBase.Int-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.unitsBase.Int-class.html#toStr\">toStr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>int</code></b>:\n      <code>__abs__</code>,\n      <code>__add__</code>,\n      <code>__and__</code>,\n      <code>__cmp__</code>,\n      <code>__coerce__</code>,\n      <code>__div__</code>,\n      <code>__divmod__</code>,\n      <code>__float__</code>,\n      <code>__floordiv__</code>,\n      <code>__format__</code>,\n      <code>__getattribute__</code>,\n      <code>__getnewargs__</code>,\n      <code>__hash__</code>,\n      <code>__hex__</code>,\n      <code>__index__</code>,\n      <code>__int__</code>,\n      <code>__invert__</code>,\n      <code>__long__</code>,\n      <code>__lshift__</code>,\n      <code>__mod__</code>,\n      <code>__mul__</code>,\n      <code>__neg__</code>,\n      <code>__nonzero__</code>,\n      <code>__oct__</code>,\n      <code>__or__</code>,\n      <code>__pos__</code>,\n      <code>__pow__</code>,\n      <code>__radd__</code>,\n      <code>__rand__</code>,\n      <code>__rdiv__</code>,\n      <code>__rdivmod__</code>,\n      <code>__rfloordiv__</code>,\n      <code>__rlshift__</code>,\n      <code>__rmod__</code>,\n      <code>__rmul__</code>,\n      <code>__ror__</code>,\n      <code>__rpow__</code>,\n      <code>__rrshift__</code>,\n      <code>__rshift__</code>,\n      <code>__rsub__</code>,\n      <code>__rtruediv__</code>,\n      <code>__rxor__</code>,\n      <code>__sub__</code>,\n      <code>__truediv__</code>,\n      <code>__trunc__</code>,\n      <code>__xor__</code>,\n      <code>bit_length</code>,\n      <code>conjugate</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">a new object with type S, a subtype of T</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.units.Zone-class.html#__new__\" class=\"summary-sig-name\">__new__</a>(<span class=\"summary-sig-arg\">cls</span>,\n        <span class=\"summary-sig-arg\">arg</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">name</span>=<span class=\"summary-sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">zone</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"summary-sig-arg\">**Error_name_arg</span>)</span><br />\n      New, named <a href=\"pygeodesy.units.Zone-class.html\" \n      class=\"link\">Zone</a>, see <a \n      href=\"pygeodesy.unitsBase.Int-class.html\" class=\"link\">Int</a></td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>int</code></b>:\n      <code>denominator</code>,\n      <code>imag</code>,\n      <code>numerator</code>,\n      <code>real</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html\">unitsBase._NamedUnit</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html#std_repr\">std_repr</a></code>,\n      <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__new__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__new__</span>&nbsp;(<span class=\"sig-arg\">cls</span>,\n        <span class=\"sig-arg\">arg</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">name</span>=<span class=\"sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">zone</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"sig-arg\">**Error_name_arg</span>)</span>\n    <br /><em class=\"fname\">Static Method</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New, named <a href=\"pygeodesy.units.Zone-class.html\" \n  class=\"link\">Zone</a>, see <a href=\"pygeodesy.unitsBase.Int-class.html\" \n  class=\"link\">Int</a></p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>arg</code></strong> - The value (any <code>type</code> acceptable to <code>int</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional name (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>Error_name_arg</code></strong> - Optional <code><b>Error</b>=UnitError</code> to raise and \n          optional <code>name=arg</code> keyword argument, inlieu of \n          separate <b><code>arg</code></b> and <b><code>name</code></b> \n          ones.</li>\n    </ul></dd>\n    <dt>Returns: a new object with type S, a subtype of T</dt>\n        <dd>A named <code>Int</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>Error</strong></code> - Invalid <b><code>arg</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__new__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:21 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.unitsBase-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.unitsBase</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        Module&nbsp;unitsBase\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.unitsBase-module.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== MODULE DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Module unitsBase</h1><p class=\"nomargin-top\"></p>\n<p>Basic <code>Float</code>, <code>Int</code> and <code>Str</code>ing \n  units classes.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Version:</strong>\n        26.02.22\n      </p>\n</div><!-- ==================== CLASSES ==================== -->\n<a name=\"section-Classes\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Classes</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.unitsBase._NamedUnit-class.html\" class=\"summary-name\">_NamedUnit</a><br />\n      (INTERNAL) Base class for <code>units</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.unitsBase.Float-class.html\" class=\"summary-name\">Float</a><br />\n      Named <code>float</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.unitsBase.Int-class.html\" class=\"summary-name\">Int</a><br />\n      Named <code>int</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.unitsBase.Radius-class.html\" class=\"summary-name\">Radius</a><br />\n      Named <code>float</code> representing a radius, conventionally in \n        <code>meter</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.unitsBase.Str-class.html\" class=\"summary-name\">Str</a><br />\n      Named, callable <code>str</code>.\n    </td>\n  </tr>\n</table>\n<!-- ==================== VARIABLES ==================== -->\n<a name=\"section-Variables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Variables</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"__all__\"></a><span class=\"summary-name\">__all__</span> = <code title=\"_ALL_LAZY.unitsBase\">_ALL_LAZY.unitsBase</code>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.unitsBase.Float-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.unitsBase.Float</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.unitsBase-module.html\">Module&nbsp;unitsBase</a> ::\n        Class&nbsp;Float\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.unitsBase.Float-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Float</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n      object --+    \n               |    \n           float --+\n                   |\n  object --+       |\n           |       |\n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+   |\n               |   |\n      <a href=\"pygeodesy.unitsBase._NamedUnit-class.html\">_NamedUnit</a> --+\n                   |\n                  <strong class=\"uidshort\">Float</strong>\n</pre>\n\n<dl><dt>Known Subclasses:</dt>\n<dd>\n      <ul class=\"subclass-list\">\n<li><a href=\"pygeodesy.units.Radians-class.html\">units.Radians</a></li><li>, <a href=\"pygeodesy.units.Degrees-class.html\">units.Degrees</a></li><li>, <a href=\"pygeodesy.units.Degrees2-class.html\">units.Degrees2</a></li><li>, <a href=\"pygeodesy.units.Distance-class.html\">units.Distance</a></li><li>, <a href=\"pygeodesy.units.Float_-class.html\">units.Float_</a></li><li class=\"private\">, units._EasNorBase</li><li>, <a href=\"pygeodesy.units.Feet-class.html\">units.Feet</a></li><li>, <a href=\"pygeodesy.units.Height-class.html\">units.Height</a></li><li>, <a href=\"pygeodesy.units.Meter-class.html\">units.Meter</a></li><li>, <a href=\"pygeodesy.unitsBase.Radius-class.html\">Radius</a></li><li>, <a href=\"pygeodesy.units.Scalar-class.html\">units.Scalar</a></li><li class=\"private\">, deprecated.consterns._Deprecated_Float</li>  </ul>\n</dd></dl>\n\n<hr />\n<p>Named <code>float</code>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.unitsBase.Float-class.html#__repr__\" class=\"summary-sig-name\">__repr__</a>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Return a representation of this <code>Float</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.unitsBase.Float-class.html#__str__\" class=\"summary-sig-name\">__str__</a>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Return this <code>Float</code> as standard <code>str</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.unitsBase.Float-class.html#toRepr\" class=\"summary-sig-name\">toRepr</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">std</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">**prec_fmt_ints</span>)</span><br />\n      Return a representation of this <code>Float</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.unitsBase.Float-class.html#toStr\" class=\"summary-sig-name\">toStr</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">prec</span>=<span class=\"summary-sig-default\">12</span>,\n        <span class=\"summary-sig-arg\">fmt</span>=<span class=\"summary-sig-default\">'g'</span>,\n        <span class=\"summary-sig-arg\">ints</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Format this <code>Float</code> as <code>str</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>float</code></b>:\n      <code>__abs__</code>,\n      <code>__add__</code>,\n      <code>__coerce__</code>,\n      <code>__div__</code>,\n      <code>__divmod__</code>,\n      <code>__eq__</code>,\n      <code>__float__</code>,\n      <code>__floordiv__</code>,\n      <code>__format__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getformat__</code>,\n      <code>__getnewargs__</code>,\n      <code>__gt__</code>,\n      <code>__hash__</code>,\n      <code>__int__</code>,\n      <code>__le__</code>,\n      <code>__long__</code>,\n      <code>__lt__</code>,\n      <code>__mod__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__neg__</code>,\n      <code>__nonzero__</code>,\n      <code>__pos__</code>,\n      <code>__pow__</code>,\n      <code>__radd__</code>,\n      <code>__rdiv__</code>,\n      <code>__rdivmod__</code>,\n      <code>__rfloordiv__</code>,\n      <code>__rmod__</code>,\n      <code>__rmul__</code>,\n      <code>__rpow__</code>,\n      <code>__rsub__</code>,\n      <code>__rtruediv__</code>,\n      <code>__setformat__</code>,\n      <code>__sub__</code>,\n      <code>__truediv__</code>,\n      <code>__trunc__</code>,\n      <code>as_integer_ratio</code>,\n      <code>conjugate</code>,\n      <code>fromhex</code>,\n      <code>hex</code>,\n      <code>is_integer</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">a new object with type S, a subtype of T</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.unitsBase.Float-class.html#__new__\" class=\"summary-sig-name\">__new__</a>(<span class=\"summary-sig-arg\">cls</span>,\n        <span class=\"summary-sig-arg\">arg</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">name</span>=<span class=\"summary-sig-default\">''</span>,\n        <span class=\"summary-sig-arg\">**Error_name_arg</span>)</span><br />\n      New, named <code>Ffloat</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.unitsBase.Float-class.html#isneg0\" class=\"summary-name\">isneg0</a><br />\n      Is this value <a href=\"pygeodesy-module.html#NEG0\" \n      class=\"link\">NEG0</a>, <code>-0.0</code> or <code>-0</code>? \n      (<code>bool</code>).\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>float</code></b>:\n      <code>imag</code>,\n      <code>real</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html\">_NamedUnit</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html#std_repr\">std_repr</a></code>,\n      <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__new__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__new__</span>&nbsp;(<span class=\"sig-arg\">cls</span>,\n        <span class=\"sig-arg\">arg</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">name</span>=<span class=\"sig-default\">''</span>,\n        <span class=\"sig-arg\">**Error_name_arg</span>)</span>\n    <br /><em class=\"fname\">Static Method</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New, named <code>Ffloat</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>arg</code></strong> - The value (any <code>type</code> acceptable to \n          <code>float</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional name (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>Error_name_arg</code></strong> - Optional <code><b>Error</b>=UnitError</code> to raise and \n          optional <code>name=arg</code> keyword argument, inlieu of \n          separate <b><code>arg</code></b> and <b><code>name</code></b> \n          ones.</li>\n    </ul></dd>\n    <dt>Returns: a new object with type S, a subtype of T</dt>\n        <dd>A named <code>Float</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>Error</strong></code> - Invalid <b><code>arg</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__new__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__repr__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__repr__</span>&nbsp;(<span class=\"sig-arg\">self</span>)</span>\n    <br /><em class=\"fname\">(Representation operator)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return a representation of this <code>Float</code>.</p>\n  <dl class=\"fields\">\n    <dt>Overrides:\n        object.__repr__\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <code>Float.toRepr</code> and property \n        <code>Float.std_repr</code>.\n      </p>\n      <p><strong>Note:</strong>\n        Use <code>env</code> variable \n        <code>PYGEODESY_FLOAT_STD_REPR=std</code> prior to <code>import \n        pygeodesy</code> to get the standard <code>repr</code> or set \n        property <code>std_repr=False</code> to always get the named \n        <code>toRepr</code> representation.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"__str__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__str__</span>&nbsp;(<span class=\"sig-arg\">self</span>)</span>\n    <br /><em class=\"fname\">(Informal representation operator)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return this <code>Float</code> as standard <code>str</code>.</p>\n  <dl class=\"fields\">\n    <dt>Overrides:\n        object.__str__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toRepr\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toRepr</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">std</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">**prec_fmt_ints</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return a representation of this <code>Float</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>std</code></strong> - If <code>True</code>, return the standard <code>repr</code>, \n          otherwise the named representation (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.named._Named-class.html#toRepr\">named._Named.toRepr</a>\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.streprs-module.html#fstr\" \n        class=\"link\">fstr</a> and methods <a \n        href=\"pygeodesy.unitsBase.Float-class.html#__repr__\" \n        class=\"link\">Float.__repr__</a>, <a \n        href=\"pygeodesy.unitsBase.Float-class.html#toStr\" \n        class=\"link\">Float.toStr</a> for further details.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"toStr\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toStr</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">prec</span>=<span class=\"sig-default\">12</span>,\n        <span class=\"sig-arg\">fmt</span>=<span class=\"sig-default\">'g'</span>,\n        <span class=\"sig-arg\">ints</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Format this <code>Float</code> as <code>str</code>.</p>\n  <dl class=\"fields\">\n    <dt>Overrides:\n        <a href=\"pygeodesy.named._Named-class.html#toStr\">named._Named.toStr</a>\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.streprs-module.html#fstr\" \n        class=\"link\">fstr</a> and method <a \n        href=\"pygeodesy.unitsBase.Float-class.html#__repr__\" \n        class=\"link\">Float.__repr__</a> and for further information.\n      </p>\n</div></td></tr></table>\n</div>\n<br />\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"isneg0\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">isneg0</h3>\n  <p>Is this value <a href=\"pygeodesy-module.html#NEG0\" \n  class=\"link\">NEG0</a>, <code>-0.0</code> or <code>-0</code>? \n  (<code>bool</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">isneg0(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Is this value <a href=\"pygeodesy-module.html#NEG0\" class=\"link\">NEG0</a>, \n<code>-0.0</code> or <code>-0</code>? (<code>bool</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:21 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.unitsBase.Int-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.unitsBase.Int</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.unitsBase-module.html\">Module&nbsp;unitsBase</a> ::\n        Class&nbsp;Int\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.unitsBase.Int-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Int</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n      object --+    \n               |    \n             int --+\n                   |\n  object --+       |\n           |       |\n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+   |\n               |   |\n      <a href=\"pygeodesy.unitsBase._NamedUnit-class.html\">_NamedUnit</a> --+\n                   |\n                  <strong class=\"uidshort\">Int</strong>\n</pre>\n\n<dl><dt>Known Subclasses:</dt>\n<dd>\n      <ul class=\"subclass-list\">\n<li><a href=\"pygeodesy.units.Bool-class.html\">units.Bool</a></li><li>, <a href=\"pygeodesy.epsg.Epsg-class.html\">epsg.Epsg</a></li><li>, <a href=\"pygeodesy.units.Int_-class.html\">units.Int_</a></li><li>, <a href=\"pygeodesy.units.Zone-class.html\">units.Zone</a></li><li class=\"private\">, deprecated.consterns._Deprecated_Int</li>  </ul>\n</dd></dl>\n\n<hr />\n<p>Named <code>int</code>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.unitsBase.Int-class.html#__repr__\" class=\"summary-sig-name\">__repr__</a>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Return a representation of this named <code>int</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.unitsBase.Int-class.html#__str__\" class=\"summary-sig-name\">__str__</a>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Return this <code>Int</code> as standard <code>str</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.unitsBase.Int-class.html#toRepr\" class=\"summary-sig-name\">toRepr</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">std</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">**unused</span>)</span><br />\n      Return a representation of this <code>Int</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.unitsBase.Int-class.html#toStr\" class=\"summary-sig-name\">toStr</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">**unused</span>)</span><br />\n      Return this <code>Int</code> as standard <code>str</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>int</code></b>:\n      <code>__abs__</code>,\n      <code>__add__</code>,\n      <code>__and__</code>,\n      <code>__cmp__</code>,\n      <code>__coerce__</code>,\n      <code>__div__</code>,\n      <code>__divmod__</code>,\n      <code>__float__</code>,\n      <code>__floordiv__</code>,\n      <code>__format__</code>,\n      <code>__getattribute__</code>,\n      <code>__getnewargs__</code>,\n      <code>__hash__</code>,\n      <code>__hex__</code>,\n      <code>__index__</code>,\n      <code>__int__</code>,\n      <code>__invert__</code>,\n      <code>__long__</code>,\n      <code>__lshift__</code>,\n      <code>__mod__</code>,\n      <code>__mul__</code>,\n      <code>__neg__</code>,\n      <code>__nonzero__</code>,\n      <code>__oct__</code>,\n      <code>__or__</code>,\n      <code>__pos__</code>,\n      <code>__pow__</code>,\n      <code>__radd__</code>,\n      <code>__rand__</code>,\n      <code>__rdiv__</code>,\n      <code>__rdivmod__</code>,\n      <code>__rfloordiv__</code>,\n      <code>__rlshift__</code>,\n      <code>__rmod__</code>,\n      <code>__rmul__</code>,\n      <code>__ror__</code>,\n      <code>__rpow__</code>,\n      <code>__rrshift__</code>,\n      <code>__rshift__</code>,\n      <code>__rsub__</code>,\n      <code>__rtruediv__</code>,\n      <code>__rxor__</code>,\n      <code>__sub__</code>,\n      <code>__truediv__</code>,\n      <code>__trunc__</code>,\n      <code>__xor__</code>,\n      <code>bit_length</code>,\n      <code>conjugate</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">a new object with type S, a subtype of T</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.unitsBase.Int-class.html#__new__\" class=\"summary-sig-name\">__new__</a>(<span class=\"summary-sig-arg\">cls</span>,\n        <span class=\"summary-sig-arg\">arg</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">name</span>=<span class=\"summary-sig-default\">''</span>,\n        <span class=\"summary-sig-arg\">**Error_name_arg</span>)</span><br />\n      New, named <code>Int</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>int</code></b>:\n      <code>denominator</code>,\n      <code>imag</code>,\n      <code>numerator</code>,\n      <code>real</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html\">_NamedUnit</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html#std_repr\">std_repr</a></code>,\n      <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__new__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__new__</span>&nbsp;(<span class=\"sig-arg\">cls</span>,\n        <span class=\"sig-arg\">arg</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">name</span>=<span class=\"sig-default\">''</span>,\n        <span class=\"sig-arg\">**Error_name_arg</span>)</span>\n    <br /><em class=\"fname\">Static Method</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New, named <code>Int</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>arg</code></strong> - The value (any <code>type</code> acceptable to <code>int</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional name (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>Error_name_arg</code></strong> - Optional <code><b>Error</b>=UnitError</code> to raise and \n          optional <code>name=arg</code> keyword argument, inlieu of \n          separate <b><code>arg</code></b> and <b><code>name</code></b> \n          ones.</li>\n    </ul></dd>\n    <dt>Returns: a new object with type S, a subtype of T</dt>\n        <dd>A named <code>Int</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>Error</strong></code> - Invalid <b><code>arg</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__new__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__repr__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__repr__</span>&nbsp;(<span class=\"sig-arg\">self</span>)</span>\n    <br /><em class=\"fname\">(Representation operator)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return a representation of this named <code>int</code>.</p>\n  <dl class=\"fields\">\n    <dt>Overrides:\n        object.__repr__\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <code>Int.toRepr</code> and property \n        <code>Int.std_repr</code>.\n      </p>\n      <p><strong>Note:</strong>\n        Use <code>env</code> variable \n        <code>PYGEODESY_INT_STD_REPR=std</code> prior to <code>import \n        pygeodesy</code> to get the standard <code>repr</code> or set \n        property <code>std_repr=False</code> to always get the named \n        <code>toRepr</code> representation.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"__str__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__str__</span>&nbsp;(<span class=\"sig-arg\">self</span>)</span>\n    <br /><em class=\"fname\">(Informal representation operator)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return this <code>Int</code> as standard <code>str</code>.</p>\n  <dl class=\"fields\">\n    <dt>Overrides:\n        object.__str__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toRepr\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toRepr</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">std</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">**unused</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return a representation of this <code>Int</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>std</code></strong> - If <code>True</code>, return the standard <code>repr</code>, \n          otherwise the named representation (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.named._Named-class.html#toRepr\">named._Named.toRepr</a>\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <a href=\"pygeodesy.unitsBase.Int-class.html#__repr__\" \n        class=\"link\">Int.__repr__</a> for more documentation.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"toStr\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toStr</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">**unused</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return this <code>Int</code> as standard <code>str</code>.</p>\n  <dl class=\"fields\">\n    <dt>Overrides:\n        <a href=\"pygeodesy.named._Named-class.html#toStr\">named._Named.toStr</a>\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <a href=\"pygeodesy.unitsBase.Int-class.html#__repr__\" \n        class=\"link\">Int.__repr__</a> for more documentation.\n      </p>\n</div></td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:21 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.unitsBase.Radius-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.unitsBase.Radius</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.unitsBase-module.html\">Module&nbsp;unitsBase</a> ::\n        Class&nbsp;Radius\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.unitsBase.Radius-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Radius</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n      object --+        \n               |        \n           float --+    \n                   |    \n  object --+       |    \n           |       |    \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+   |    \n               |   |    \n      <a href=\"pygeodesy.unitsBase._NamedUnit-class.html\">_NamedUnit</a> --+    \n                   |    \n               <a href=\"pygeodesy.unitsBase.Float-class.html\">Float</a> --+\n                       |\n                      <strong class=\"uidshort\">Radius</strong>\n</pre>\n\n<hr />\n<p>Named <code>float</code> representing a radius, conventionally in \n  <code>meter</code>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase.Float-class.html\">Float</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#toStr\">toStr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>float</code></b>:\n      <code>__abs__</code>,\n      <code>__add__</code>,\n      <code>__coerce__</code>,\n      <code>__div__</code>,\n      <code>__divmod__</code>,\n      <code>__eq__</code>,\n      <code>__float__</code>,\n      <code>__floordiv__</code>,\n      <code>__format__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getformat__</code>,\n      <code>__getnewargs__</code>,\n      <code>__gt__</code>,\n      <code>__hash__</code>,\n      <code>__int__</code>,\n      <code>__le__</code>,\n      <code>__long__</code>,\n      <code>__lt__</code>,\n      <code>__mod__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__neg__</code>,\n      <code>__nonzero__</code>,\n      <code>__pos__</code>,\n      <code>__pow__</code>,\n      <code>__radd__</code>,\n      <code>__rdiv__</code>,\n      <code>__rdivmod__</code>,\n      <code>__rfloordiv__</code>,\n      <code>__rmod__</code>,\n      <code>__rmul__</code>,\n      <code>__rpow__</code>,\n      <code>__rsub__</code>,\n      <code>__rtruediv__</code>,\n      <code>__setformat__</code>,\n      <code>__sub__</code>,\n      <code>__truediv__</code>,\n      <code>__trunc__</code>,\n      <code>as_integer_ratio</code>,\n      <code>conjugate</code>,\n      <code>fromhex</code>,\n      <code>hex</code>,\n      <code>is_integer</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">a new object with type S, a subtype of T</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.unitsBase.Radius-class.html#__new__\" class=\"summary-sig-name\">__new__</a>(<span class=\"summary-sig-arg\">cls</span>,\n        <span class=\"summary-sig-arg\">arg</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">name</span>=<span class=\"summary-sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">radius</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"summary-sig-arg\">**Error_name_arg</span>)</span><br />\n      New <a href=\"pygeodesy.unitsBase.Radius-class.html\" \n      class=\"link\">Radius</a> instance, see <a \n      href=\"pygeodesy.unitsBase.Float-class.html\" class=\"link\">Float</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase.Float-class.html\">Float</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase.Float-class.html#isneg0\">isneg0</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>float</code></b>:\n      <code>imag</code>,\n      <code>real</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html\">_NamedUnit</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html#std_repr\">std_repr</a></code>,\n      <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__new__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__new__</span>&nbsp;(<span class=\"sig-arg\">cls</span>,\n        <span class=\"sig-arg\">arg</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">name</span>=<span class=\"sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">radius</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"sig-arg\">**Error_name_arg</span>)</span>\n    <br /><em class=\"fname\">Static Method</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.unitsBase.Radius-class.html\" \n  class=\"link\">Radius</a> instance, see <a \n  href=\"pygeodesy.unitsBase.Float-class.html\" class=\"link\">Float</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>arg</code></strong> - The value (any <code>type</code> acceptable to \n          <code>float</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional name (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>Error_name_arg</code></strong> - Optional <code><b>Error</b>=UnitError</code> to raise and \n          optional <code>name=arg</code> keyword argument, inlieu of \n          separate <b><code>arg</code></b> and <b><code>name</code></b> \n          ones.</li>\n    </ul></dd>\n    <dt>Returns: a new object with type S, a subtype of T</dt>\n        <dd>A named <code>Float</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>Error</strong></code> - Invalid <b><code>arg</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__new__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:21 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.unitsBase.Str-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.unitsBase.Str</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.unitsBase-module.html\">Module&nbsp;unitsBase</a> ::\n        Class&nbsp;Str\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.unitsBase.Str-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Str</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+        \n           |        \n  basestring --+    \n               |    \n             str --+\n                   |\n  object --+       |\n           |       |\n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+   |\n               |   |\n      <a href=\"pygeodesy.unitsBase._NamedUnit-class.html\">_NamedUnit</a> --+\n                   |\n                  <strong class=\"uidshort\">Str</strong>\n</pre>\n\n<dl><dt>Known Subclasses:</dt>\n<dd>\n      <ul class=\"subclass-list\">\n<li><a href=\"pygeodesy.units.Band-class.html\">units.Band</a></li><li>, <a href=\"pygeodesy.gars.Garef-class.html\">gars.Garef</a></li><li>, <a href=\"pygeodesy.geohash.Geohash-class.html\">geohash.Geohash</a></li><li>, <a href=\"pygeodesy.wgrs.Georef-class.html\">wgrs.Georef</a></li><li class=\"private\">, deprecated.consterns._Deprecated_Str</li>  </ul>\n</dd></dl>\n\n<hr />\n<p>Named, callable <code>str</code>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.unitsBase.Str-class.html#__call__\" class=\"summary-sig-name\">__call__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">*args</span>,\n        <span class=\"summary-sig-arg\">**name_Error</span>)</span><br />\n      Join all positional <b><code>args</code></b> like \n      <code>self.join(<b>args</b>)</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.unitsBase.Str-class.html#__repr__\" class=\"summary-sig-name\">__repr__</a>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Return a representation of this <code>Str</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.unitsBase.Str-class.html#__str__\" class=\"summary-sig-name\">__str__</a>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Return this <code>Str</code> as standard <code>str</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.unitsBase.Str-class.html#join_\" class=\"summary-sig-name\">join_</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">*args</span>,\n        <span class=\"summary-sig-arg\">**name_Error</span>)</span><br />\n      Join all positional <b><code>args</code></b> like \n      <code>self.join(<b>args</b>)</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.unitsBase.Str-class.html#toRepr\" class=\"summary-sig-name\">toRepr</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">std</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">**unused</span>)</span><br />\n      Return a representation of this <code>Str</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.unitsBase.Str-class.html#toStr\" class=\"summary-sig-name\">toStr</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">**unused</span>)</span><br />\n      Return this <code>Str</code> as standard <code>str</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>str</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__eq__</code>,\n      <code>__format__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__hash__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__mod__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__rmod__</code>,\n      <code>__rmul__</code>,\n      <code>__sizeof__</code>,\n      <code>capitalize</code>,\n      <code>center</code>,\n      <code>count</code>,\n      <code>decode</code>,\n      <code>encode</code>,\n      <code>endswith</code>,\n      <code>expandtabs</code>,\n      <code>find</code>,\n      <code>format</code>,\n      <code>index</code>,\n      <code>isalnum</code>,\n      <code>isalpha</code>,\n      <code>isdigit</code>,\n      <code>islower</code>,\n      <code>isspace</code>,\n      <code>istitle</code>,\n      <code>isupper</code>,\n      <code>join</code>,\n      <code>ljust</code>,\n      <code>lower</code>,\n      <code>lstrip</code>,\n      <code>partition</code>,\n      <code>replace</code>,\n      <code>rfind</code>,\n      <code>rindex</code>,\n      <code>rjust</code>,\n      <code>rpartition</code>,\n      <code>rsplit</code>,\n      <code>rstrip</code>,\n      <code>split</code>,\n      <code>splitlines</code>,\n      <code>startswith</code>,\n      <code>strip</code>,\n      <code>swapcase</code>,\n      <code>title</code>,\n      <code>translate</code>,\n      <code>upper</code>,\n      <code>zfill</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">a new object with type S, a subtype of T</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.unitsBase.Str-class.html#__new__\" class=\"summary-sig-name\">__new__</a>(<span class=\"summary-sig-arg\">cls</span>,\n        <span class=\"summary-sig-arg\">arg</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">name</span>=<span class=\"summary-sig-default\">''</span>,\n        <span class=\"summary-sig-arg\">**Error_name_arg</span>)</span><br />\n      New, named and callable <code>Str</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html\">_NamedUnit</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html#std_repr\">std_repr</a></code>,\n      <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__call__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__call__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">*args</span>,\n        <span class=\"sig-arg\">**name_Error</span>)</span>\n    <br /><em class=\"fname\">(Call operator)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Join all positional <b><code>args</code></b> like \n  <code>self.join(<b>args</b>)</code>.</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd>All <b><code>args</code></b> joined by this instance (<a \n          href=\"pygeodesy.interns.Str_-class.html\" class=\"link\">Str_</a>).</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        An other <a href=\"pygeodesy.unitsBase.Str-class.html\" \n        class=\"link\">Str</a> instance is returned to make the result \n        re-callable.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"__new__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__new__</span>&nbsp;(<span class=\"sig-arg\">cls</span>,\n        <span class=\"sig-arg\">arg</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">name</span>=<span class=\"sig-default\">''</span>,\n        <span class=\"sig-arg\">**Error_name_arg</span>)</span>\n    <br /><em class=\"fname\">Static Method</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New, named and callable <code>Str</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>cls</code></strong> - This class (<code>Str</code> or sub-class).</li>\n        <li><strong class=\"pname\"><code>arg</code></strong> - The value (any <code>type</code> acceptable to <code>str</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional name (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>Error_name_arg</code></strong> - Optional <code><b>Error</b>=UnitError</code> to raise and \n          optional <code>name=arg</code> keyword argument, inlieu of \n          separate <b><code>arg</code></b> and <b><code>name</code></b> \n          ones.</li>\n    </ul></dd>\n    <dt>Returns: a new object with type S, a subtype of T</dt>\n        <dd>A named <a href=\"pygeodesy.unitsBase.Str-class.html\" \n          class=\"link\">Str</a>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>Error</strong></code> - Invalid <b><code>arg</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__new__\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Callable, not nameable class <a \n        href=\"pygeodesy.interns.Str_-class.html\" class=\"link\">Str_</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"__repr__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__repr__</span>&nbsp;(<span class=\"sig-arg\">self</span>)</span>\n    <br /><em class=\"fname\">(Representation operator)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return a representation of this <code>Str</code>.</p>\n  <dl class=\"fields\">\n    <dt>Overrides:\n        object.__repr__\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <code>Str.toRepr</code> and property \n        <code>Str.std_repr</code>.\n      </p>\n      <p><strong>Note:</strong>\n        Use <code>env</code> variable \n        <code>PYGEODESY_STR_STD_REPR=std</code> prior to <code>import \n        pygeodesy</code> to get the standard <code>repr</code> or set \n        property <code>std_repr=False</code> to always get the named \n        <code>toRepr</code> representation.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"__str__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__str__</span>&nbsp;(<span class=\"sig-arg\">self</span>)</span>\n    <br /><em class=\"fname\">(Informal representation operator)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return this <code>Str</code> as standard <code>str</code>.</p>\n  <dl class=\"fields\">\n    <dt>Overrides:\n        object.__str__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"join_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">join_</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">*args</span>,\n        <span class=\"sig-arg\">**name_Error</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Join all positional <b><code>args</code></b> like \n  <code>self.join(<b>args</b>)</code>.</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd>All <b><code>args</code></b> joined by this instance (<a \n          href=\"pygeodesy.interns.Str_-class.html\" class=\"link\">Str_</a>).</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        An other <a href=\"pygeodesy.unitsBase.Str-class.html\" \n        class=\"link\">Str</a> instance is returned to make the result \n        re-callable.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"toRepr\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toRepr</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">std</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">**unused</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return a representation of this <code>Str</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>std</code></strong> - If <code>True</code>, return the standard <code>repr</code>, \n          otherwise the named representation (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.named._Named-class.html#toRepr\">named._Named.toRepr</a>\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <a href=\"pygeodesy.unitsBase.Str-class.html#__repr__\" \n        class=\"link\">Str.__repr__</a> for more documentation.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"toStr\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toStr</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">**unused</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return this <code>Str</code> as standard <code>str</code>.</p>\n  <dl class=\"fields\">\n    <dt>Overrides:\n        <a href=\"pygeodesy.named._Named-class.html#toStr\">named._Named.toStr</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:21 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.unitsBase._NamedUnit-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.unitsBase._NamedUnit</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.unitsBase-module.html\">Module&nbsp;unitsBase</a> ::\n        Class&nbsp;_NamedUnit\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.unitsBase._NamedUnit-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class _NamedUnit</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+    \n           |    \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+\n               |\n              <strong class=\"uidshort\">_NamedUnit</strong>\n</pre>\n\n<dl><dt>Known Subclasses:</dt>\n<dd>\n      <ul class=\"subclass-list\">\n<li><a href=\"pygeodesy.unitsBase.Float-class.html\">Float</a></li><li>, <a href=\"pygeodesy.unitsBase.Str-class.html\">Str</a></li><li>, <a href=\"pygeodesy.unitsBase.Int-class.html\">Int</a></li><li>, <a href=\"pygeodesy.units.Bool-class.html\">units.Bool</a></li>  </ul>\n</dd></dl>\n\n<hr />\n<p>(INTERNAL) Base class for <code>units</code>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">a new object with type S, a subtype of T</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.unitsBase._NamedUnit-class.html#__new__\" class=\"summary-sig-name\">__new__</a>(<span class=\"summary-sig-arg\">cls</span>,\n        <span class=\"summary-sig-arg\">typ</span>,\n        <span class=\"summary-sig-arg\">arg</span>,\n        <span class=\"summary-sig-arg\">name</span>,\n        <span class=\"summary-sig-arg\">Error</span>=<span class=\"summary-sig-default\">&lt;class 'pygeodesy.errors.UnitError'&gt;</span>,\n        <span class=\"summary-sig-arg\">**name_arg</span>)</span><br />\n      (INTERNAL) Return a named <code>typ.__new__(cls, arg)</code> \n      instance.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.unitsBase._NamedUnit-class.html#std_repr\" class=\"summary-name\">std_repr</a><br />\n      Class <code>property</code> with a <code>.name</code> attribute.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.unitsBase._NamedUnit-class.html#units\" class=\"summary-name\">units</a><br />\n      Class <code>property</code> with a <code>.name</code> attribute.\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__new__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__new__</span>&nbsp;(<span class=\"sig-arg\">cls</span>,\n        <span class=\"sig-arg\">typ</span>,\n        <span class=\"sig-arg\">arg</span>,\n        <span class=\"sig-arg\">name</span>,\n        <span class=\"sig-arg\">Error</span>=<span class=\"sig-default\">&lt;class 'pygeodesy.errors.UnitError'&gt;</span>,\n        <span class=\"sig-arg\">**name_arg</span>)</span>\n    <br /><em class=\"fname\">Static Method</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>(INTERNAL) Return a named <code>typ.__new__(cls, arg)</code> \n  instance.</p>\n  <dl class=\"fields\">\n    <dt>Returns: a new object with type S, a subtype of T</dt>\n    <dt>Overrides:\n        object.__new__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"std_repr\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">std_repr</h3>\n  <p>Class <code>property</code> with a <code>.name</code> attribute.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">std_repr(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the representation (<code>bool</code>, <code>True</code> means \nstandard).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">std_repr(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">std</span>)</span>\n        - Set the representation (<code>True</code> or <code>&quot;std&quot;</code> \nfor standard).\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"units\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">units</h3>\n  <p>Class <code>property</code> with a <code>.name</code> attribute.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">units(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the units name (<code>str</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">units(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">units</span>)</span>\n        - Set the units name for this instance (<code>str</code> or <code>None</code>\nfor default).\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:21 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.ups-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.ups</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        Module&nbsp;ups\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.ups-module.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== MODULE DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Module ups</h1><p class=\"nomargin-top\"></p>\n<p><i>Karney</i>'s Universal Polar Stereographic (UPS) projection.</p>\n  <p>Classes <a href=\"pygeodesy.ups.Ups-class.html\" class=\"link\">Ups</a> \n  and <a href=\"pygeodesy.ups.UPSError-class.html\" class=\"link\">UPSError</a>\n  and functions <a href=\"pygeodesy.ups-module.html#parseUPS5\" \n  class=\"link\">parseUPS5</a>, <a href=\"pygeodesy.ups-module.html#toUps8\" \n  class=\"link\">toUps8</a> and <a \n  href=\"pygeodesy.ups-module.html#upsZoneBand5\" \n  class=\"link\">upsZoneBand5</a>.</p>\n  <p>A pure Python implementation, partially transcoded from \n  <i>Karney</i>'s C++ class <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1PolarStereographic.html\"\n  target=\"_top\">PolarStereographic</a>.</p>\n  <p>The <a \n  href=\"https://WikiPedia.org/wiki/Universal_polar_stereographic_coordinate_system\"\n  target=\"_top\">UPS</a> system is used in conjuction with <a \n  href=\"https://WikiPedia.org/wiki/Universal_Transverse_Mercator_coordinate_system\"\n  target=\"_top\">UTM</a> for locations on the polar regions of the earth.  \n  UPS covers areas south of 79.5&#176;S and north of 83.5&#176;N, slightly \n  overlapping the UTM range from 80&#176;S to 84&#176;N by 30' at each end.</p>\n  <p>Env variable <code>PYGEODESY_UPS_POLES</code> determines the UPS zones\n  <i>at</i> latitude 90&#176;S and 90&#176;N.  By default, the encoding follows \n  <i>Karney</i>'s and <a \n  href=\"https://Web.Archive.org/web/20161226192038/http://earth-info.nga.mil/GandG/publications/tm8358.1/pdf/TM8358_1.pdf\"\n  target=\"_top\">Appendix B-3 of DMA TM8358.1</a>, using only zones \n  <code>'B'</code> respectively <code>'Z'</code> and digraph \n  <code>'AN'</code>.  If <code>PYGEODESY_UPS_POLES</code> is set to \n  anything other than <code>&quot;std&quot;</code>, zones <code>'A'</code> \n  and <code>'Y'</code> are used for negative, west longitudes <i>at</i> \n  latitude 90&#176;S respectively 90&#176;N (for backward compatibility).</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Version:</strong>\n        25.04.14\n      </p>\n</div><!-- ==================== CLASSES ==================== -->\n<a name=\"section-Classes\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Classes</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ups.UPSError-class.html\" class=\"summary-name\">UPSError</a><br />\n      Universal Polar Stereographic (UPS) parse or other <a \n        href=\"pygeodesy.ups.Ups-class.html\" class=\"link\">Ups</a> issue.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ups.Ups-class.html\" class=\"summary-name\">Ups</a><br />\n      Universal Polar Stereographic (UPS) coordinate.\n    </td>\n  </tr>\n</table>\n<!-- ==================== FUNCTIONS ==================== -->\n<a name=\"section-Functions\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Functions</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ups-module.html#parseUPS5\" class=\"summary-sig-name\">parseUPS5</a>(<span class=\"summary-sig-arg\">strUPS</span>,\n        <span class=\"summary-sig-arg\">datum</span>=<span class=\"summary-sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"summary-sig-arg\">Ups</span>=<span class=\"summary-sig-default\">&lt;class 'pygeodesy.ups.Ups'&gt;</span>,\n        <span class=\"summary-sig-arg\">falsed</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Parse a string representing a UPS coordinate, consisting of \n      <code>&quot;[zone][band] pole easting northing&quot;</code> where \n      <b><code>zone</code></b> is pseudo zone \n      <code>&quot;00&quot;|&quot;0&quot;|&quot;&quot;</code> and \n      <code>band</code> is <code>'A'|'B'|'Y'|'Z'|''</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ups-module.html#toUps8\" class=\"summary-sig-name\">toUps8</a>(<span class=\"summary-sig-arg\">latlon</span>,\n        <span class=\"summary-sig-arg\">lon</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">datum</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">Ups</span>=<span class=\"summary-sig-default\">&lt;class 'pygeodesy.ups.Ups'&gt;</span>,\n        <span class=\"summary-sig-arg\">pole</span>=<span class=\"summary-sig-default\">''</span>,\n        <span class=\"summary-sig-arg\">falsed</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">strict</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Convert a lat-/longitude point to a UPS coordinate.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ups-module.html#upsZoneBand5\" class=\"summary-sig-name\">upsZoneBand5</a>(<span class=\"summary-sig-arg\">lat</span>,\n        <span class=\"summary-sig-arg\">lon</span>,\n        <span class=\"summary-sig-arg\">strict</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Return the UTM/UPS zone number, <i>polar</i> Band letter, pole and \n      clipped lat- and longitude for a given location.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== VARIABLES ==================== -->\n<a name=\"section-Variables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Variables</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"__all__\"></a><span class=\"summary-name\">__all__</span> = <code title=\"_ALL_LAZY.ups\">_ALL_LAZY.ups</code>\n    </td>\n  </tr>\n</table>\n<!-- ==================== FUNCTION DETAILS ==================== -->\n<a name=\"section-FunctionDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Function Details</span></td>\n</tr>\n</table>\n<a name=\"parseUPS5\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">parseUPS5</span>&nbsp;(<span class=\"sig-arg\">strUPS</span>,\n        <span class=\"sig-arg\">datum</span>=<span class=\"sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"sig-arg\">Ups</span>=<span class=\"sig-default\">&lt;class 'pygeodesy.ups.Ups'&gt;</span>,\n        <span class=\"sig-arg\">falsed</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Parse a string representing a UPS coordinate, consisting of \n  <code>&quot;[zone][band] pole easting northing&quot;</code> where \n  <b><code>zone</code></b> is pseudo zone \n  <code>&quot;00&quot;|&quot;0&quot;|&quot;&quot;</code> and \n  <code>band</code> is <code>'A'|'B'|'Y'|'Z'|''</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>strUPS</code></strong> - A UPS coordinate (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>datum</code></strong> - Optional datum to use (<a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>).</li>\n        <li><strong class=\"pname\"><code>Ups</code></strong> - Optional class to return the UPS coordinate (<a \n          href=\"pygeodesy.ups.Ups-class.html\" class=\"link\">Ups</a>) or \n          <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>falsed</code></strong> - If <code>True</code>, both <b><code>easting</code></b> and \n          <b><code>northing</code></b> are falsed (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <b><code>Ups</code></b> <code><b>name</b>=NN</code> \n          (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The UPS coordinate (<b><code>Ups</code></b>) or if \n          <code><b>Ups</b> is None</code>, a <a \n          href=\"pygeodesy.namedTuples.UtmUps5Tuple-class.html\" \n          class=\"link\">UtmUps5Tuple</a><code>(zone, hemipole, easting, \n          northing, band)</code>. The <code>hemipole</code> is the \n          <code>'N'|'S'</code> pole, the UPS projection top/center.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.ups.UPSError-class.html\">UPSError</a></strong></code> - Invalid <b><code>strUPS</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toUps8\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toUps8</span>&nbsp;(<span class=\"sig-arg\">latlon</span>,\n        <span class=\"sig-arg\">lon</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">datum</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">Ups</span>=<span class=\"sig-default\">&lt;class 'pygeodesy.ups.Ups'&gt;</span>,\n        <span class=\"sig-arg\">pole</span>=<span class=\"sig-default\">''</span>,\n        <span class=\"sig-arg\">falsed</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">strict</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert a lat-/longitude point to a UPS coordinate.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>latlon</code></strong> - Latitude (<code>degrees</code>) or an (ellipsoidal) geodetic \n          <code>LatLon</code> point.</li>\n        <li><strong class=\"pname\"><code>lon</code></strong> - Optional longitude (<code>degrees</code>) or <code>None</code> if\n          <b><code>latlon</code></b> is a <code>LatLon</code>.</li>\n        <li><strong class=\"pname\"><code>datum</code></strong> - Optional datum for this UPS coordinate, overriding \n          <b><code>latlon</code></b>'s datum (<code>Datum</code>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a> or <a \n          href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>Ups</code></strong> - Optional class to return the UPS coordinate (<a \n          href=\"pygeodesy.ups.Ups-class.html\" class=\"link\">Ups</a>) or \n          <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>pole</code></strong> - Optional top/center of (stereographic) projection \n          (<code>str</code>, <code>'N[orth]'</code> or \n          <code>'S[outh]'</code>).</li>\n        <li><strong class=\"pname\"><code>falsed</code></strong> - If <code>True</code>, false both easting and northing \n          (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>strict</code></strong> - Restrict <b><code>lat</code></b> to UPS ranges \n          (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <b><code>Ups</code></b> <code><b>name</b>=NN</code> \n          (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The UPS coordinate (<b><code>Ups</code></b>) or if \n          <code><b>Ups</b> is None</code>, a <a \n          href=\"pygeodesy.namedTuples.UtmUps8Tuple-class.html\" \n          class=\"link\">UtmUps8Tuple</a><code>(zone, hemipole, easting, \n          northing, band, datum, gamma, scale)</code> where \n          <code>hemipole</code> is the <code>'N'|'S'</code> pole, the UPS \n          projection top/center.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.RangeError-class.html\">RangeError</a></strong></code> - If <b><code>strict</code></b> and <b><code>lat</code></b> outside \n        the valid UPS bands or if <b><code>lat</code></b> or \n        <b><code>lon</code></b> outside the valid range and <a \n        href=\"pygeodesy.errors-module.html#rangerrors\" \n        class=\"link\">rangerrors</a> is <code>True</code>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - If <b><code>latlon</code></b> is not ellipsoidal or if \n        <b><code>datum</code></b> is invalid.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - If <b><code>lon</code></b> value is missing or if \n        <b><code>latlon</code></b> is invalid.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <i>Karney</i>'s C++ class <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1UPS.html\"\n        target=\"_top\">UPS</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"upsZoneBand5\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">upsZoneBand5</span>&nbsp;(<span class=\"sig-arg\">lat</span>,\n        <span class=\"sig-arg\">lon</span>,\n        <span class=\"sig-arg\">strict</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the UTM/UPS zone number, <i>polar</i> Band letter, pole and \n  clipped lat- and longitude for a given location.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat</code></strong> - Latitude in degrees (<code>scalar</code> or <code>str</code>).</li>\n        <li><strong class=\"pname\"><code>lon</code></strong> - Longitude in degrees (<code>scalar</code> or <code>str</code>).</li>\n        <li><strong class=\"pname\"><code>strict</code></strong> - Restrict <b><code>lat</code></b> to UPS ranges \n          (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <b><code>Ups</code></b> <code><b>name</b>=NN</code> \n          (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.namedTuples.UtmUpsLatLon5Tuple-class.html\" \n          class=\"link\">UtmUpsLatLon5Tuple</a><code>(zone, band, hemipole, \n          lat, lon)</code> where <code>hemipole</code> is the \n          <code>'N'|'S'</code> pole, the UPS projection top/center and \n          <code>lon</code> [-180..180).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.RangeError-class.html\">RangeError</a></strong></code> - If <b><code>strict</code> is True</b> and <b><code>lat</code></b> \n        within the UTM but not the UPS range or if <b><code>lat</code></b> \n        or <b><code>lon</code></b> outside the valid range and <a \n        href=\"pygeodesy.errors-module.html#rangerrors\" \n        class=\"link\">rangerrors</a> is <code>True</code>.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>lat</code></b> or <b><code>lon</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        The <code>lon</code> is set to <code>0</code> if \n        <b><code>lat</code></b> is <code>-90</code> or <code>90</code>, see\n        env variable <code>PYGEODESY_UPS_POLES</code> in module <a \n        href=\"pygeodesy.ups-module.html\" class=\"link\">ups</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.ups.UPSError-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.ups.UPSError</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.ups-module.html\">Module&nbsp;ups</a> ::\n        Class&nbsp;UPSError\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.ups.UPSError-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class UPSError</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n              object --+                    \n                       |                    \nexceptions.BaseException --+                \n                           |                \n        exceptions.Exception --+            \n                               |            \n        exceptions.StandardError --+        \n                                   |        \n               exceptions.ValueError --+    \n                                       |    \n                      errors._ValueError --+\n                                           |\n                                          <strong class=\"uidshort\">UPSError</strong>\n</pre>\n\n<hr />\n<p>Universal Polar Stereographic (UPS) parse or other <a \n  href=\"pygeodesy.ups.Ups-class.html\" class=\"link\">Ups</a> issue.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>errors._ValueError</code></b>:\n      <code>__init__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.ValueError</code></b>:\n      <code>__new__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.BaseException</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getslice__</code>,\n      <code>__reduce__</code>,\n      <code>__repr__</code>,\n      <code>__setattr__</code>,\n      <code>__setstate__</code>,\n      <code>__str__</code>,\n      <code>__unicode__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__format__</code>,\n      <code>__hash__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.BaseException</code></b>:\n      <code>args</code>,\n      <code>message</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:21 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.ups.Ups-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.ups.Ups</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.ups-module.html\">Module&nbsp;ups</a> ::\n        Class&nbsp;Ups\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.ups.Ups-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Ups</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n   object --+            \n            |            \n <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+        \n                |        \n <a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+    \n                    |    \n<a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html\">utmupsBase.UtmUpsBase</a> --+\n                        |\n                       <strong class=\"uidshort\">Ups</strong>\n</pre>\n\n<dl><dt>Known Subclasses:</dt>\n<dd>\n      <ul class=\"subclass-list\">\n<li class=\"private\">_Ups_K1</li>  </ul>\n</dd></dl>\n\n<hr />\n<p>Universal Polar Stereographic (UPS) coordinate.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ups.Ups-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">zone</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">pole</span>=<span class=\"summary-sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">N</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"summary-sig-arg\">easting</span>=<span class=\"summary-sig-default\">2000000.0</span>,\n        <span class=\"summary-sig-arg\">northing</span>=<span class=\"summary-sig-default\">2000000.0</span>,\n        <span class=\"summary-sig-arg\">band</span>=<span class=\"summary-sig-default\">''</span>,\n        <span class=\"summary-sig-arg\">datum</span>=<span class=\"summary-sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"summary-sig-arg\">falsed</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">gamma</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">scale</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**name_convergence</span>)</span><br />\n      New <a href=\"pygeodesy.ups.Ups-class.html\" class=\"link\">Ups</a> UPS \n      coordinate.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__eq__\"></a><span class=\"summary-sig-name\">__eq__</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span></td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ups.Ups-class.html#parse\" class=\"summary-sig-name\">parse</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">strUPS</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Parse a string to a similar <a href=\"pygeodesy.ups.Ups-class.html\" \n      class=\"link\">Ups</a> instance.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ups.Ups-class.html#parseUPS\" class=\"summary-sig-name\">parseUPS</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">strUPS</span>)</span><br />\n      DEPRECATED, use method <a href=\"pygeodesy.ups.Ups-class.html#parse\" \n      class=\"link\">parse</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ups.Ups-class.html#rescale0\" class=\"summary-sig-name\">rescale0</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">lat</span>,\n        <span class=\"summary-sig-arg\">scale0</span>=<span class=\"summary-sig-default\">0.994</span>)</span><br />\n      Set the central scale factor for this UPS projection.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ups.Ups-class.html#toLatLon\" class=\"summary-sig-name\">toLatLon</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">LatLon</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">unfalse</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">**LatLon_kwds</span>)</span><br />\n      Convert this UPS coordinate to an (ellipsoidal) geodetic point.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ups.Ups-class.html#toRepr\" class=\"summary-sig-name\">toRepr</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">prec</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">fmt</span>=<span class=\"summary-sig-default\">'[%s]'</span>,\n        <span class=\"summary-sig-arg\">sep</span>=<span class=\"summary-sig-default\">', '</span>,\n        <span class=\"summary-sig-arg\">B</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">cs</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">**unused</span>)</span><br />\n      Return a string representation of this UPS coordinate.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ups.Ups-class.html#toStr\" class=\"summary-sig-name\">toStr</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">prec</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">sep</span>=<span class=\"summary-sig-default\">' '</span>,\n        <span class=\"summary-sig-arg\">B</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">cs</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Return a string representation of this UPS coordinate.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ups.Ups-class.html#toUps\" class=\"summary-sig-name\">toUps</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">pole</span>=<span class=\"summary-sig-default\">''</span>,\n        <span class=\"summary-sig-arg\">**unused</span>)</span><br />\n      Duplicate this UPS coordinate.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.ups.Ups-class.html#toUtm\" class=\"summary-sig-name\">toUtm</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">zone</span>,\n        <span class=\"summary-sig-arg\">falsed</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">**unused</span>)</span><br />\n      Convert this UPS coordinate to a UTM coordinate.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html\">utmupsBase.UtmUpsBase</a></code></b>:\n      <code><a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html#eastingnorthing2\">eastingnorthing2</a></code>,\n      <code><a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html#latFootPoint\">latFootPoint</a></code>,\n      <code><a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html#phiFootPoint\">phiFootPoint</a></code>,\n      <code><a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html#to2en\">to2en</a></code>,\n      <code><a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html#toEpsg\">toEpsg</a></code>,\n      <code><a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html#toMgrs\">toMgrs</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#others\">others</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ups.Ups-class.html#band\" class=\"summary-name\">band</a><br />\n      Class <code>property</code> with a <code>.name</code> attribute.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ups.Ups-class.html#falsed2\" class=\"summary-name\">falsed2</a><br />\n      Get the easting and northing falsing (<a \n      href=\"pygeodesy.namedTuples.EasNor2Tuple-class.html\" \n      class=\"link\">EasNor2Tuple</a><code>(easting, northing)</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ups.Ups-class.html#pole\" class=\"summary-name\">pole</a><br />\n      Get the top/center of (stereographic) projection \n      (<code>'N'|'S'</code> or <code>&quot;&quot;</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.ups.Ups-class.html#zone\" class=\"summary-name\">zone</a><br />\n      Get the polar pseudo zone (<code>0</code>), like <i>Karney</i>'s <a \n      href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1UTMUPS.html\"\n      target=\"_top\">zone UPS</a>.\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html\">utmupsBase.UtmUpsBase</a></code></b>:\n      <code><a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html#convergence\">convergence</a></code>,\n      <code><a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html#datum\">datum</a></code>,\n      <code><a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html#easting\">easting</a></code>,\n      <code><a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html#eastingnorthing\">eastingnorthing</a></code>,\n      <code><a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html#falsed\">falsed</a></code>,\n      <code><a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html#gamma\">gamma</a></code>,\n      <code><a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html#hemisphere\">hemisphere</a></code>,\n      <code><a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html#northing\">northing</a></code>,\n      <code><a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html#scale\">scale</a></code>,\n      <code><a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html#scale0\">scale0</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">zone</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">pole</span>=<span class=\"sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">N</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"sig-arg\">easting</span>=<span class=\"sig-default\">2000000.0</span>,\n        <span class=\"sig-arg\">northing</span>=<span class=\"sig-default\">2000000.0</span>,\n        <span class=\"sig-arg\">band</span>=<span class=\"sig-default\">''</span>,\n        <span class=\"sig-arg\">datum</span>=<span class=\"sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"sig-arg\">falsed</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">gamma</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">scale</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**name_convergence</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.ups.Ups-class.html\" class=\"link\">Ups</a> UPS \n  coordinate.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>zone</code></strong> - UPS zone (<code>int</code>, zero) or zone with/-out <i>polar</i> \n          Band letter (<code>str</code>, '00', '00A', '00B', '00Y' or \n          '00Z').</li>\n        <li><strong class=\"pname\"><code>pole</code></strong> - Top/center of (stereographic) projection (<code>str</code>, \n          <code>'N[orth]'</code> or <code>'S[outh]'</code>).</li>\n        <li><strong class=\"pname\"><code>easting</code></strong> - Easting, see <b><code>falsed</code></b> (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>northing</code></strong> - Northing, see <b><code>falsed</code></b> (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>band</code></strong> - Optional, <i>polar</i> Band (<code>str</code>, 'A'|'B'|'Y'|'Z').</li>\n        <li><strong class=\"pname\"><code>datum</code></strong> - Optional, this coordinate's datum (<a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>, \n          <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a> or <a \n          href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>falsed</code></strong> - If <code>True</code>, both <b><code>easting</code></b> and \n          <b><code>northing</code></b> are falsed (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>gamma</code></strong> - Optional meridian convergence, bearing off grid North, clockwise \n          from true North to save (<code>degrees</code>) or \n          <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>scale</code></strong> - Optional grid scale factor to save (<code>scalar</code>) or \n          <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>name_convergence</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>) and \n          DEPRECATED keyword argument <code><b>convergence</b>=None</code>,\n          use <b><code>gamma</code></b>.</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>datum</code></b>.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.ups.UPSError-class.html\">UPSError</a></strong></code> - Invalid <b><code>zone</code></b>, <b><code>pole</code></b>, \n        <b><code>easting</code></b>, <b><code>northing</code></b>, \n        <b><code>band</code></b>, <b><code>convergence</code></b> or \n        <b><code>scale</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"parse\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">parse</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">strUPS</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Parse a string to a similar <a href=\"pygeodesy.ups.Ups-class.html\" \n  class=\"link\">Ups</a> instance.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>strUPS</code></strong> - The UPS coordinate (<code>str</code>), see function <a \n          href=\"pygeodesy.ups-module.html#parseUPS5\" \n          class=\"link\">parseUPS5</a>.</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>), \n          overriding this name.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The similar instance (<a href=\"pygeodesy.ups.Ups-class.html\" \n          class=\"link\">Ups</a>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.utm.UTMError-class.html\">UTMError</a></strong></code> - Invalid <b><code>strUPS</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Functions <a href=\"pygeodesy.utm-module.html#parseUTM5\" \n        class=\"link\">parseUTM5</a> and <a \n        href=\"pygeodesy.utmups-module.html#parseUTMUPS5\" \n        class=\"link\">pygeodesy.parseUTMUPS5</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"parseUPS\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">parseUPS</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">strUPS</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use method <a href=\"pygeodesy.ups.Ups-class.html#parse\" \n  class=\"link\">parse</a>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_method</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"rescale0\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">rescale0</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">lat</span>,\n        <span class=\"sig-arg\">scale0</span>=<span class=\"sig-default\">0.994</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Set the central scale factor for this UPS projection.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat</code></strong> - Northern latitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>scale0</code></strong> - UPS k0 scale at <b><code>lat</code></b> latitude \n          (<code>scalar</code>).</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.RangeError-class.html\">RangeError</a></strong></code> - If <b><code>lat</code></b> outside the valid range and <a \n        href=\"pygeodesy.errors-module.html#rangerrors\" \n        class=\"link\">rangerrors</a> is <code>True</code>.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.ups.UPSError-class.html\">UPSError</a></strong></code> - Invalid <b><code>scale</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toLatLon\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toLatLon</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">LatLon</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">unfalse</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">**LatLon_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert this UPS coordinate to an (ellipsoidal) geodetic point.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>LatLon</code></strong> - Optional, ellipsoidal class to return the geodetic point \n          (<code>LatLon</code>) or <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>unfalse</code></strong> - Unfalse <b><code>easting</code></b> and \n          <b><code>northing</code></b> if falsed (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>LatLon_kwds</code></strong> - Optional, additional <b><code>LatLon</code></b> keyword \n          arguments, ignored if <code><b>LatLon</b> is None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>This UPS coordinate (<b><code>LatLon</code></b>) or if \n          <code><b>LatLon</b> is None</code>, a <a \n          href=\"pygeodesy.namedTuples.LatLonDatum5Tuple-class.html\" \n          class=\"link\">LatLonDatum5Tuple</a><code>(lat, lon, datum, gamma, \n          scale)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - If <b><code>LatLon</code></b> is not ellipsoidal.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.ups.UPSError-class.html\">UPSError</a></strong></code> - Invalid meridional radius or H-value.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toRepr\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toRepr</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">prec</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">fmt</span>=<span class=\"sig-default\">'[%s]'</span>,\n        <span class=\"sig-arg\">sep</span>=<span class=\"sig-default\">', '</span>,\n        <span class=\"sig-arg\">B</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">cs</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">**unused</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return a string representation of this UPS coordinate.</p>\n  <p>Note that UPS coordinates are rounded, not truncated (unlike MGRS grid\n  references).</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>prec</code></strong> - Number of (decimal) digits, unstripped (<code>int</code>).</li>\n        <li><strong class=\"pname\"><code>fmt</code></strong> - Enclosing backets format (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>sep</code></strong> - Optional separator between name:value pairs (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>B</code></strong> - Optionally, include polar band letter (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>cs</code></strong> - Optionally, include gamma meridian convergence and point scale \n          factor (<code>bool</code> or non-zero <code>int</code> to specify\n          the precison like <b><code>prec</code></b>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>This UPS as a string with <code>00[Band] pole, easting, northing,\n          [convergence, scale]</code> as <code>&quot;[Z:00[Band], P:N|S, \n          E:meter, N:meter]&quot;</code> plus <code>&quot;, C:DMS, \n          S:float&quot;</code> if <code><b>cs</b> is True</code>, where \n          <code>[Band]</code> is present and <code>'A'|'B'|'Y'|'Z'</code> \n          only if <code><b>B</b> is True</code> and convergence \n          <code>DMS</code> is in <i>either</i> degrees, minutes <i>or</i> \n          seconds (<code>str</code>).</dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.named._Named-class.html#toRepr\">named._Named.toRepr</a>\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        Pseudo zone zero (<code>&quot;00&quot;</code>) for UPS follows \n        <i>Karney</i>'s <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1UTMUPS.html\"\n        target=\"_top\">zone UPS</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"toStr\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toStr</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">prec</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">sep</span>=<span class=\"sig-default\">' '</span>,\n        <span class=\"sig-arg\">B</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">cs</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return a string representation of this UPS coordinate.</p>\n  <p>Note that UPS coordinates are rounded, not truncated (unlike MGRS grid\n  references).</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>prec</code></strong> - Number of (decimal) digits, unstripped (<code>int</code>).</li>\n        <li><strong class=\"pname\"><code>sep</code></strong> - Optional separator to join (<code>str</code>) or \n          <code>None</code> to return an unjoined <code>tuple</code> of \n          <code>str</code>s.</li>\n        <li><strong class=\"pname\"><code>B</code></strong> - Optionally, include and polar band letter (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>cs</code></strong> - Optionally, include gamma meridian convergence and point scale \n          factor (<code>bool</code> or non-zero <code>int</code> to specify\n          the precison like <b><code>prec</code></b>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>This UPS as a string with <code>00[Band] pole, easting, northing,\n          [convergence, scale]</code> as <code>&quot;00[B] N|S meter \n          meter&quot;</code> plus <code>&quot; DMS float&quot;</code> if \n          <b><code>cs</code></b> is <code>True</code>, where \n          <code>[Band]</code> is present and <code>'A'|'B'|'Y'|'Z'</code> \n          only if <b><code>B</code></b> is <code>True</code> and \n          convergence <code>DMS</code> is in <i>either</i> degrees, minutes\n          <i>or</i> seconds (<code>str</code>).</dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.named._Named-class.html#toStr\">named._Named.toStr</a>\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        Zone zero (<code>&quot;00&quot;</code>) for UPS follows \n        <i>Karney</i>'s <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1UTMUPS.html\"\n        target=\"_top\">zone UPS</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"toUps\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toUps</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">pole</span>=<span class=\"sig-default\">''</span>,\n        <span class=\"sig-arg\">**unused</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Duplicate this UPS coordinate.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>pole</code></strong> - Optional top/center of the UPS projection, (<code>str</code>, \n          'N[orth]'|'S[outh]').</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A copy of this UPS coordinate (<a \n          href=\"pygeodesy.ups.Ups-class.html\" class=\"link\">Ups</a>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.ups.UPSError-class.html\">UPSError</a></strong></code> - Invalid <b><code>pole</code></b> or attempt to transfer the \n        projection top/center.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toUtm\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toUtm</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">zone</span>,\n        <span class=\"sig-arg\">falsed</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">**unused</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert this UPS coordinate to a UTM coordinate.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>zone</code></strong> - The UTM zone (<code>int</code>).</li>\n        <li><strong class=\"pname\"><code>falsed</code></strong> - False both easting and northing (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The UTM coordinate (<a href=\"pygeodesy.utm.Utm-class.html\" \n          class=\"link\">Utm</a>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"band\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">band</h3>\n  <p>Class <code>property</code> with a <code>.name</code> attribute.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">band(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <i>polar</i> band (<code>'A'|'B'|'Y'|'Z'</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">band(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">band</span>)</span>\n        - Set or reset the <i>polar</i> band letter (<code>'A'|'B'|'Y'|'Z'</code>) or\n<code>None</code> or <code>&quot;&quot;</code> to reset.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"falsed2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">falsed2</h3>\n  <p>Get the easting and northing falsing (<a \n  href=\"pygeodesy.namedTuples.EasNor2Tuple-class.html\" \n  class=\"link\">EasNor2Tuple</a><code>(easting, northing)</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">falsed2(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the easting and northing falsing (<a \nhref=\"pygeodesy.namedTuples.EasNor2Tuple-class.html\" \nclass=\"link\">EasNor2Tuple</a><code>(easting, northing)</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"pole\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">pole</h3>\n  <p>Get the top/center of (stereographic) projection (<code>'N'|'S'</code>\n  or <code>&quot;&quot;</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">pole(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the top/center of (stereographic) projection (<code>'N'|'S'</code> or \n<code>&quot;&quot;</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"zone\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">zone</h3>\n  <p>Get the polar pseudo zone (<code>0</code>), like <i>Karney</i>'s <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1UTMUPS.html\"\n  target=\"_top\">zone UPS</a>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">zone(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the polar pseudo zone (<code>0</code>), like <i>Karney</i>'s <a \nhref=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1UTMUPS.html\"\ntarget=\"_top\">zone UPS</a>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:21 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.utily-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.utily</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        Module&nbsp;utily\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.utily-module.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== MODULE DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Module utily</h1><p class=\"nomargin-top\"></p>\n<p>Various utility functions.</p>\n  <p>After <i>Karney</i>'s C++ <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Math.html\"\n  target=\"_top\">Math</a> class and <i>Veness</i>' <a \n  href=\"https://www.Movable-Type.co.UK/scripts/latlong.html\" \n  target=\"_top\">Latitude/Longitude</a> and <a \n  href=\"https://www.Movable-Type.co.UK/scripts/latlong-vectors.html\" \n  target=\"_top\">Vector-based geodesy</a> and published under the same MIT \n  Licence**.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Version:</strong>\n        26.03.20\n      </p>\n</div><!-- ==================== FUNCTIONS ==================== -->\n<a name=\"section-Functions\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Functions</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"degrees\"></a><span class=\"summary-sig-name\">degrees</span>(<span class=\"summary-sig-arg\">x</span>)</span><br />\n      Convert angle x from radians to degrees.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"radians\"></a><span class=\"summary-sig-name\">radians</span>(<span class=\"summary-sig-arg\">x</span>)</span><br />\n      Convert angle x from degrees to radians.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"acos1\"></a><span class=\"summary-sig-name\">acos1</span>(<span class=\"summary-sig-arg\">x</span>)</span><br />\n      Return <code>math.acos(max(-1, min(1, <b>x</b>)))</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.utily-module.html#acre2ha\" class=\"summary-sig-name\">acre2ha</a>(<span class=\"summary-sig-arg\">acres</span>)</span><br />\n      Convert an area in <i>acres</i> to <i>hectares</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.utily-module.html#acre2m2\" class=\"summary-sig-name\">acre2m2</a>(<span class=\"summary-sig-arg\">acres</span>)</span><br />\n      Convert an area in <i>acres</i> to <i>square</i> meter.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.utily-module.html#agdf\" class=\"summary-sig-name\">agdf</a>(<span class=\"summary-sig-arg\">phi</span>)</span><br />\n      Inverse <a href=\"https://WikiPedia.org/wiki/Gudermannian_function\" \n      target=\"_top\">Gudermannian function</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"asin1\"></a><span class=\"summary-sig-name\">asin1</span>(<span class=\"summary-sig-arg\">x</span>)</span><br />\n      Return <code>math.asin(max(-1, min(1, <b>x</b>)))</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"atan1\"></a><span class=\"summary-sig-name\">atan1</span>(<span class=\"summary-sig-arg\">y</span>,\n        <span class=\"summary-sig-arg\">x</span>=<span class=\"summary-sig-default\">1.0</span>)</span><br />\n      Return <code>atan(<b>y</b> / <b>x</b>)</code> angle in \n      <code>radians</code> <i class=\"math\">[-PI/2..+PI/2]</i> using \n      <code>atan2</code> for consistency and to avoid \n      <code>ZeroDivisionError</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.utily-module.html#atan1d\" class=\"summary-sig-name\">atan1d</a>(<span class=\"summary-sig-arg\">y</span>,\n        <span class=\"summary-sig-arg\">x</span>=<span class=\"summary-sig-default\">1.0</span>)</span><br />\n      Return <code>atan(<b>y</b> / <b>x</b>)</code> angle in \n      <code>degrees</code> <i class=\"math\">[-90..+90]</i> using \n      <code>atan2d</code> for consistency and to avoid \n      <code>ZeroDivisionError</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.utily-module.html#atan2\" class=\"summary-sig-name\">atan2</a>(<span class=\"summary-sig-arg\">y</span>,\n        <span class=\"summary-sig-arg\">x</span>)</span><br />\n      Return <code>atan2(<b>y</b>, <b>x</b>)</code> in radians <i \n      class=\"math\">[-PI..+PI]</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.utily-module.html#atan2b\" class=\"summary-sig-name\">atan2b</a>(<span class=\"summary-sig-arg\">y</span>,\n        <span class=\"summary-sig-arg\">x</span>)</span><br />\n      Return <code>atan2(<b>y</b>, <b>x</b>)</code> in degrees <i \n      class=\"math\">[0..+360), counter-clockwise</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.utily-module.html#atan2d\" class=\"summary-sig-name\">atan2d</a>(<span class=\"summary-sig-arg\">y</span>,\n        <span class=\"summary-sig-arg\">x</span>,\n        <span class=\"summary-sig-arg\">reverse</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Return <code>atan2(<b>y</b>, <b>x</b>)</code> in degrees <i \n      class=\"math\">[-180..+180]</i>, optionally <i>reversed</i> (by 180 \n      degrees for <code>azimuth</code>s).</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.utily-module.html#atan2p\" class=\"summary-sig-name\">atan2p</a>(<span class=\"summary-sig-arg\">y</span>,\n        <span class=\"summary-sig-arg\">x</span>)</span><br />\n      Return <code>atan2(<b>y</b>, <b>x</b>)</code> in radians <i \n      class=\"math\">[0..+PI2), counter-clockwise</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.utily-module.html#chain2m\" class=\"summary-sig-name\">chain2m</a>(<span class=\"summary-sig-arg\">chains</span>)</span><br />\n      Convert a length in <i>UK</i> chains to meter.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.utily-module.html#circle4\" class=\"summary-sig-name\">circle4</a>(<span class=\"summary-sig-arg\">earth</span>,\n        <span class=\"summary-sig-arg\">lat</span>)</span><br />\n      Get the equatorial or a parallel <i>circle of latitude</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.utily-module.html#cot\" class=\"summary-sig-name\">cot</a>(<span class=\"summary-sig-arg\">rad</span>,\n        <span class=\"summary-sig-arg\">**raiser_kwds</span>)</span><br />\n      Return the <code>cotangent</code> of an angle in \n      <code>radians</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.utily-module.html#cot_\" class=\"summary-sig-name\">cot_</a>(<span class=\"summary-sig-arg\">*rads</span>,\n        <span class=\"summary-sig-arg\">**raiser_kwds</span>)</span><br />\n      Yield the <code>cotangent</code> of angle(s) in <code>radians</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.utily-module.html#cotd\" class=\"summary-sig-name\">cotd</a>(<span class=\"summary-sig-arg\">deg</span>,\n        <span class=\"summary-sig-arg\">**raiser_kwds</span>)</span><br />\n      Return the <code>cotangent</code> of an angle in \n      <code>degrees</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.utily-module.html#cotd_\" class=\"summary-sig-name\">cotd_</a>(<span class=\"summary-sig-arg\">*degs</span>,\n        <span class=\"summary-sig-arg\">**raiser_kwds</span>)</span><br />\n      Yield the <code>cotangent</code> of angle(s) in <code>degrees</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.utily-module.html#degrees90\" class=\"summary-sig-name\">degrees90</a>(<span class=\"summary-sig-arg\">rad</span>)</span><br />\n      Convert radians to degrees and wrap <i class=\"math\">[-90..+90)</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.utily-module.html#degrees180\" class=\"summary-sig-name\">degrees180</a>(<span class=\"summary-sig-arg\">rad</span>)</span><br />\n      Convert radians to degrees and wrap <i class=\"math\">[-180..+180)</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.utily-module.html#degrees360\" class=\"summary-sig-name\">degrees360</a>(<span class=\"summary-sig-arg\">rad</span>)</span><br />\n      Convert radians to degrees and wrap <i class=\"math\">[0..+360)</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.utily-module.html#degrees2grades\" class=\"summary-sig-name\">degrees2grades</a>(<span class=\"summary-sig-arg\">deg</span>)</span><br />\n      Convert degrees to <i>grades</i> (aka <i>gons</i> or \n      <i>gradians</i>).</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.utily-module.html#degrees2m\" class=\"summary-sig-name\">degrees2m</a>(<span class=\"summary-sig-arg\">deg</span>,\n        <span class=\"summary-sig-arg\">earth</span>=<span class=\"summary-sig-default\">6371008.771415</span>,\n        <span class=\"summary-sig-arg\">lat</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">**radius</span>)</span><br />\n      Convert an arc in degrees to a distance along the equator or along a \n      parallel at (geodetic) latitude.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.utily-module.html#fathom2m\" class=\"summary-sig-name\">fathom2m</a>(<span class=\"summary-sig-arg\">fathoms</span>)</span><br />\n      Convert a length in <i>Imperial</i> fathoms to meter.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.utily-module.html#ft2m\" class=\"summary-sig-name\">ft2m</a>(<span class=\"summary-sig-arg\">feet</span>,\n        <span class=\"summary-sig-arg\">usurvey</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">pied</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">india</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">fuss</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Convert a length in <i>International</i>, <i>US Survey</i>, \n      <i>French</i>, <i>Indian</i> or <i>German</i> feet to meter.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.utily-module.html#furlong2m\" class=\"summary-sig-name\">furlong2m</a>(<span class=\"summary-sig-arg\">furlongs</span>)</span><br />\n      Convert a length in <i>furlongs</i> to meter.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.utily-module.html#gdf\" class=\"summary-sig-name\">gdf</a>(<span class=\"summary-sig-arg\">psi</span>)</span><br />\n      <a href=\"https://WikiPedia.org/wiki/Gudermannian_function\" \n      target=\"_top\">Gudermannian function</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.utily-module.html#grades\" class=\"summary-sig-name\">grades</a>(<span class=\"summary-sig-arg\">rad</span>)</span><br />\n      Convert radians to <i>grades</i> (aka <i>gons</i> or \n      <i>gradians</i>).</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.utily-module.html#grades400\" class=\"summary-sig-name\">grades400</a>(<span class=\"summary-sig-arg\">rad</span>)</span><br />\n      Convert radians to <i>grades</i> (aka <i>gons</i> or <i>gradians</i>)\n      and wrap <i class=\"math\">[0..+400)</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.utily-module.html#grades2degrees\" class=\"summary-sig-name\">grades2degrees</a>(<span class=\"summary-sig-arg\">gon</span>)</span><br />\n      Convert <i>grades</i> (aka <i>gons</i> or <i>gradians</i>) to \n      <code>degrees</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.utily-module.html#grades2radians\" class=\"summary-sig-name\">grades2radians</a>(<span class=\"summary-sig-arg\">gon</span>)</span><br />\n      Convert <i>grades</i> (aka <i>gons</i> or <i>gradians</i>) to \n      <code>radians</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.utily-module.html#ha2acre\" class=\"summary-sig-name\">ha2acre</a>(<span class=\"summary-sig-arg\">ha</span>)</span><br />\n      Convert an area in <i>hectares</i> to <i>acres</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.utily-module.html#ha2m2\" class=\"summary-sig-name\">ha2m2</a>(<span class=\"summary-sig-arg\">ha</span>)</span><br />\n      Convert an area in <i>hectares</i> to <i>square</i> meter.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.utily-module.html#hav\" class=\"summary-sig-name\">hav</a>(<span class=\"summary-sig-arg\">rad</span>)</span><br />\n      Return the <a href=\"https://WikiPedia.org/wiki/Haversine_formula\" \n      target=\"_top\">haversine</a> of an angle.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.utily-module.html#km2m\" class=\"summary-sig-name\">km2m</a>(<span class=\"summary-sig-arg\">km</span>)</span><br />\n      Convert a length in <i>kilo meter</i> to meter (<code>m</code>).</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.utily-module.html#m2acre\" class=\"summary-sig-name\">m2acre</a>(<span class=\"summary-sig-arg\">meter2</span>)</span><br />\n      Convert an area in <i>square</i> meter to <i>acres</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.utily-module.html#m2chain\" class=\"summary-sig-name\">m2chain</a>(<span class=\"summary-sig-arg\">meter</span>)</span><br />\n      Convert a length in meter to <i>UK</i> chains.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.utily-module.html#m2degrees\" class=\"summary-sig-name\">m2degrees</a>(<span class=\"summary-sig-arg\">distance</span>,\n        <span class=\"summary-sig-arg\">earth</span>=<span class=\"summary-sig-default\">6371008.771415</span>,\n        <span class=\"summary-sig-arg\">lat</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">**radius</span>)</span><br />\n      Convert a distance to an arc in degrees along the equator or along a \n      parallel at (geodetic) latitude.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.utily-module.html#m2fathom\" class=\"summary-sig-name\">m2fathom</a>(<span class=\"summary-sig-arg\">meter</span>)</span><br />\n      Convert a length in meter to <i>Imperial</i> fathoms.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.utily-module.html#m2ft\" class=\"summary-sig-name\">m2ft</a>(<span class=\"summary-sig-arg\">meter</span>,\n        <span class=\"summary-sig-arg\">usurvey</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">pied</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">india</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">fuss</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Convert a length in meter to <i>International</i>, <i>US Survey</i>, \n      <i>French</i>, <i>Indian</i> or <i>German</i> feet (<code>ft</code>).</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.utily-module.html#m2furlong\" class=\"summary-sig-name\">m2furlong</a>(<span class=\"summary-sig-arg\">meter</span>)</span><br />\n      Convert a length in meter to furlongs.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.utily-module.html#m2ha\" class=\"summary-sig-name\">m2ha</a>(<span class=\"summary-sig-arg\">meter2</span>)</span><br />\n      Convert an area in <i>square</i> meter to <i>hectares</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.utily-module.html#m2km\" class=\"summary-sig-name\">m2km</a>(<span class=\"summary-sig-arg\">meter</span>)</span><br />\n      Convert a length in meter to kilo meter (<code>Km</code>).</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.utily-module.html#m2NM\" class=\"summary-sig-name\">m2NM</a>(<span class=\"summary-sig-arg\">meter</span>)</span><br />\n      Convert a length in meter to nautical miles (<code>NM</code>).</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.utily-module.html#m2radians\" class=\"summary-sig-name\">m2radians</a>(<span class=\"summary-sig-arg\">distance</span>,\n        <span class=\"summary-sig-arg\">earth</span>=<span class=\"summary-sig-default\">6371008.771415</span>,\n        <span class=\"summary-sig-arg\">lat</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">**radius</span>)</span><br />\n      Convert a distance to an arc in radians along the equator or along a \n      parallel at (geodetic) latitude.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.utily-module.html#m2SM\" class=\"summary-sig-name\">m2SM</a>(<span class=\"summary-sig-arg\">meter</span>)</span><br />\n      Convert a length in meter to statute miles (SM).</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.utily-module.html#m2toise\" class=\"summary-sig-name\">m2toise</a>(<span class=\"summary-sig-arg\">meter</span>)</span><br />\n      Convert a length in meter to French <a \n      href=\"https://WikiPedia.org/wiki/Toise\" target=\"_top\">toises</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.utily-module.html#m2yard\" class=\"summary-sig-name\">m2yard</a>(<span class=\"summary-sig-arg\">meter</span>,\n        <span class=\"summary-sig-arg\">imperial</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Convert a length in meter to <i>International</i> or <a \n      href=\"https://WikiPedia.org/wiki/Imperial_units\" \n      target=\"_top\">Imperial Standard</a> yards.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.utily-module.html#NM2m\" class=\"summary-sig-name\">NM2m</a>(<span class=\"summary-sig-arg\">nm</span>)</span><br />\n      Convert a length in nautical miles to meter (<code>m</code>).</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.utily-module.html#radians2m\" class=\"summary-sig-name\">radians2m</a>(<span class=\"summary-sig-arg\">rad</span>,\n        <span class=\"summary-sig-arg\">earth</span>=<span class=\"summary-sig-default\">6371008.771415</span>,\n        <span class=\"summary-sig-arg\">lat</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">**radius</span>)</span><br />\n      Convert an arc in radians to a distance along the equator or along a \n      parallel at (geodetic) latitude.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.utily-module.html#radiansPI\" class=\"summary-sig-name\">radiansPI</a>(<span class=\"summary-sig-arg\">deg</span>)</span><br />\n      Convert and wrap degrees to radians <i class=\"math\">[-PI..+PI]</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.utily-module.html#radiansPI2\" class=\"summary-sig-name\">radiansPI2</a>(<span class=\"summary-sig-arg\">deg</span>)</span><br />\n      Convert and wrap degrees to radians <i class=\"math\">[0..+2PI)</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.utily-module.html#radiansPI_2\" class=\"summary-sig-name\">radiansPI_2</a>(<span class=\"summary-sig-arg\">deg</span>)</span><br />\n      Convert and wrap degrees to radians <i \n      class=\"math\">[-3PI/2..+PI/2]</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.utily-module.html#SinCos2\" class=\"summary-sig-name\">SinCos2</a>(<span class=\"summary-sig-arg\">x</span>,\n        <span class=\"summary-sig-arg\">unit</span>=<span class=\"summary-sig-default\">&lt;class 'pygeodesy.units.Radians'&gt;</span>)</span><br />\n      Get <code>sin</code> and <code>cos</code> of <i>typed</i> angle.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.utily-module.html#sincos2\" class=\"summary-sig-name\">sincos2</a>(<span class=\"summary-sig-arg\">rad</span>)</span><br />\n      Return the <code>sine</code> and <code>cosine</code> of an angle in \n      <code>radians</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.utily-module.html#sincos2_\" class=\"summary-sig-name\">sincos2_</a>(<span class=\"summary-sig-arg\">*rads</span>)</span><br />\n      Yield the <code>sine</code> and <code>cosine</code> of angle(s) in \n      <code>radians</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.utily-module.html#sincos2d\" class=\"summary-sig-name\">sincos2d</a>(<span class=\"summary-sig-arg\">deg</span>,\n        <span class=\"summary-sig-arg\">adeg</span>=<span class=\"summary-sig-default\">0.0</span>)</span><br />\n      Return the <code>sine</code> and <code>cosine</code> of an angle in \n      <code>degrees</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.utily-module.html#sincos2d_\" class=\"summary-sig-name\">sincos2d_</a>(<span class=\"summary-sig-arg\">*degs</span>)</span><br />\n      Yield the <code>sine</code> and <code>cosine</code> of angle(s) in \n      <code>degrees</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.utily-module.html#sincostan3\" class=\"summary-sig-name\">sincostan3</a>(<span class=\"summary-sig-arg\">rad</span>)</span><br />\n      Return the <code>sine</code>, <code>cosine</code> and \n      <code>tangent</code> of an angle in <code>radians</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.utily-module.html#sincostan3d\" class=\"summary-sig-name\">sincostan3d</a>(<span class=\"summary-sig-arg\">deg</span>)</span><br />\n      Return the <code>sine</code>, <code>cosine</code> and \n      <code>tangent</code> of an angle in <code>degrees</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.utily-module.html#SM2m\" class=\"summary-sig-name\">SM2m</a>(<span class=\"summary-sig-arg\">sm</span>)</span><br />\n      Convert a length in statute miles to meter (<code>m</code>).</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.utily-module.html#tan_2\" class=\"summary-sig-name\">tan_2</a>(<span class=\"summary-sig-arg\">rad</span>,\n        <span class=\"summary-sig-arg\">**semi</span>)</span><br />\n      Compute the tangent of half angle.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.utily-module.html#tan\" class=\"summary-sig-name\">tan</a>(<span class=\"summary-sig-arg\">rad</span>,\n        <span class=\"summary-sig-arg\">**raiser_kwds</span>)</span><br />\n      Return the <code>tangent</code> of an angle in <code>radians</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.utily-module.html#tan_\" class=\"summary-sig-name\">tan_</a>(<span class=\"summary-sig-arg\">*rads</span>,\n        <span class=\"summary-sig-arg\">**raiser_kwds</span>)</span><br />\n      Yield the <code>tangent</code> of angle(s) in <code>radians</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.utily-module.html#tand\" class=\"summary-sig-name\">tand</a>(<span class=\"summary-sig-arg\">deg</span>,\n        <span class=\"summary-sig-arg\">**raiser_clamp_kwds</span>)</span><br />\n      Return the <code>tangent</code> of an angle in <code>degrees</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.utily-module.html#tand_\" class=\"summary-sig-name\">tand_</a>(<span class=\"summary-sig-arg\">*degs</span>,\n        <span class=\"summary-sig-arg\">**raiser_clamp_kwds</span>)</span><br />\n      Yield the <code>tangent</code> of angle(s) in <code>degrees</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.utily-module.html#tanPI_2_2\" class=\"summary-sig-name\">tanPI_2_2</a>(<span class=\"summary-sig-arg\">rad</span>)</span><br />\n      Compute the tangent of half angle, 90 degrees rotated.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.utily-module.html#toise2m\" class=\"summary-sig-name\">toise2m</a>(<span class=\"summary-sig-arg\">toises</span>)</span><br />\n      Convert a length in French <a href=\"https://WikiPedia.org/wiki/Toise\"\n      target=\"_top\">toises</a> to meter.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.utily-module.html#truncate\" class=\"summary-sig-name\">truncate</a>(<span class=\"summary-sig-arg\">x</span>,\n        <span class=\"summary-sig-arg\">ndigits</span>=<span class=\"summary-sig-default\">None</span>)</span><br />\n      Truncate to the given number of digits.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.utily-module.html#unroll180\" class=\"summary-sig-name\">unroll180</a>(<span class=\"summary-sig-arg\">lon1</span>,\n        <span class=\"summary-sig-arg\">lon2</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">True</span>)</span><br />\n      Unroll longitudinal delta and wrap longitude in degrees.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.utily-module.html#unrollPI\" class=\"summary-sig-name\">unrollPI</a>(<span class=\"summary-sig-arg\">rad1</span>,\n        <span class=\"summary-sig-arg\">rad2</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">True</span>)</span><br />\n      Unroll longitudinal delta and wrap longitude in radians.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.utily-module.html#wrap90\" class=\"summary-sig-name\">wrap90</a>(<span class=\"summary-sig-arg\">deg</span>)</span><br />\n      Wrap degrees to <i class=\"math\">[-90..+90]</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.utily-module.html#wrap180\" class=\"summary-sig-name\">wrap180</a>(<span class=\"summary-sig-arg\">deg</span>)</span><br />\n      Wrap degrees to <i class=\"math\">[-180..+180]</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.utily-module.html#wrap360\" class=\"summary-sig-name\">wrap360</a>(<span class=\"summary-sig-arg\">deg</span>)</span><br />\n      Wrap degrees to <i class=\"math\">[0..+360)</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.utily-module.html#wrapPI\" class=\"summary-sig-name\">wrapPI</a>(<span class=\"summary-sig-arg\">rad</span>)</span><br />\n      Wrap radians to <i class=\"math\">[-PI..+PI]</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.utily-module.html#wrapPI2\" class=\"summary-sig-name\">wrapPI2</a>(<span class=\"summary-sig-arg\">rad</span>)</span><br />\n      Wrap radians to <i class=\"math\">[0..+2PI)</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.utily-module.html#wrapPI_2\" class=\"summary-sig-name\">wrapPI_2</a>(<span class=\"summary-sig-arg\">rad</span>)</span><br />\n      Wrap radians to <i class=\"math\">[-PI/2..+PI/2]</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.utily-module.html#wrap_normal\" class=\"summary-sig-name\">wrap_normal</a>(<span class=\"summary-sig-arg\">*normal</span>)</span><br />\n      Define the operation for the keyword argument \n      <code><b>wrap</b>=True</code>, across <a href=\"pygeodesy-module.html\"\n      class=\"link\">pygeodesy</a>: <i>wrap</i>, <i>normalize</i> or \n      <i>no-op</i>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.utily-module.html#yard2m\" class=\"summary-sig-name\">yard2m</a>(<span class=\"summary-sig-arg\">yards</span>,\n        <span class=\"summary-sig-arg\">imperial</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Convert a length in <i>International</i> or <a \n      href=\"https://WikiPedia.org/wiki/Imperial_units\" \n      target=\"_top\">Imperial Standard</a> yards to meter.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== VARIABLES ==================== -->\n<a name=\"section-Variables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Variables</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"__all__\"></a><span class=\"summary-name\">__all__</span> = <code title=\"_ALL_LAZY.utily\">_ALL_LAZY.utily</code>\n    </td>\n  </tr>\n</table>\n<!-- ==================== FUNCTION DETAILS ==================== -->\n<a name=\"section-FunctionDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Function Details</span></td>\n</tr>\n</table>\n<a name=\"acre2ha\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">acre2ha</span>&nbsp;(<span class=\"sig-arg\">acres</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert an area in <i>acres</i> to <i>hectares</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>acres</code></strong> - Area in acres (<code>scalar</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Area in hectares (<code>float</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>acres</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"acre2m2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">acre2m2</span>&nbsp;(<span class=\"sig-arg\">acres</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert an area in <i>acres</i> to <i>square</i> meter.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>acres</code></strong> - Area in acres (<code>scalar</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Area in <code>square</code> meter (<code>float</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>acres</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"agdf\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">agdf</span>&nbsp;(<span class=\"sig-arg\">phi</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Inverse <a href=\"https://WikiPedia.org/wiki/Gudermannian_function\" \n  target=\"_top\">Gudermannian function</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>phi</code></strong> - Angle (<code>radians</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Gudermannian (psi, <code>float</code>).</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.utily-module.html#gdf\" \n        class=\"link\">gdf</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"atan1d\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">atan1d</span>&nbsp;(<span class=\"sig-arg\">y</span>,\n        <span class=\"sig-arg\">x</span>=<span class=\"sig-default\">1.0</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return <code>atan(<b>y</b> / <b>x</b>)</code> angle in \n  <code>degrees</code> <i class=\"math\">[-90..+90]</i> using \n  <code>atan2d</code> for consistency and to avoid \n  <code>ZeroDivisionError</code>.</p>\n  <dl class=\"fields\">\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.utily-module.html#atan2d\" \n        class=\"link\">pygeodesy.atan2d</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"atan2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">atan2</span>&nbsp;(<span class=\"sig-arg\">y</span>,\n        <span class=\"sig-arg\">x</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return <code>atan2(<b>y</b>, <b>x</b>)</code> in radians <i \n  class=\"math\">[-PI..+PI]</i>.</p>\n  <dl class=\"fields\">\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"atan2b\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">atan2b</span>&nbsp;(<span class=\"sig-arg\">y</span>,\n        <span class=\"sig-arg\">x</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return <code>atan2(<b>y</b>, <b>x</b>)</code> in degrees <i \n  class=\"math\">[0..+360), counter-clockwise</i>.</p>\n  <dl class=\"fields\">\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.utily-module.html#atan2p\" \n        class=\"link\">pygeodesy.atan2p</a> and <a \n        href=\"pygeodesy.utily-module.html#atan2d\" \n        class=\"link\">pygeodesy.atan2d</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"atan2d\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">atan2d</span>&nbsp;(<span class=\"sig-arg\">y</span>,\n        <span class=\"sig-arg\">x</span>,\n        <span class=\"sig-arg\">reverse</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return <code>atan2(<b>y</b>, <b>x</b>)</code> in degrees <i \n  class=\"math\">[-180..+180]</i>, optionally <i>reversed</i> (by 180 degrees\n  for <code>azimuth</code>s).</p>\n  <dl class=\"fields\">\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <i>Karney</i>'s C++ function <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Math.html\"\n        target=\"_top\">Math.atan2d</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"atan2p\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">atan2p</span>&nbsp;(<span class=\"sig-arg\">y</span>,\n        <span class=\"sig-arg\">x</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return <code>atan2(<b>y</b>, <b>x</b>)</code> in radians <i \n  class=\"math\">[0..+PI2), counter-clockwise</i>.</p>\n  <dl class=\"fields\">\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.utily-module.html#atan2b\" \n        class=\"link\">pygeodesy.atan2b</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"chain2m\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">chain2m</span>&nbsp;(<span class=\"sig-arg\">chains</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert a length in <i>UK</i> chains to meter.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>chains</code></strong> - Length in chains (<code>scalar</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Length in <code>meter</code> (<code>float</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>chains</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"circle4\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">circle4</span>&nbsp;(<span class=\"sig-arg\">earth</span>,\n        <span class=\"sig-arg\">lat</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Get the equatorial or a parallel <i>circle of latitude</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>earth</code></strong> - The earth radius (<code>meter</code>) or an ellipsoid or datum \n          (<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a>, <a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a> \n          or <a href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>lat</code></strong> - Geodetic latitude (<code>degrees90</code>, <code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.namedTuples.Circle4Tuple-class.html\" \n          class=\"link\">Circle4Tuple</a><code>(radius, height, lat, \n          beta)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.RangeError-class.html\">RangeError</a></strong></code> - Latitude <b><code>lat</code></b> outside valid range and <a \n        href=\"pygeodesy.errors-module.html#rangerrors\" \n        class=\"link\">rangerrors</a> is <code>True</code>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>earth</code></b>.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - invalid <b><code>earth</code></b> or <b><code>lat</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"cot\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">cot</span>&nbsp;(<span class=\"sig-arg\">rad</span>,\n        <span class=\"sig-arg\">**raiser_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the <code>cotangent</code> of an angle in \n  <code>radians</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>rad</code></strong> - Angle (<code>radians</code>).</li>\n        <li><strong class=\"pname\"><code>raiser_kwds</code></strong> - Use <code><b>raiser</b>=False</code> to avoid ValueErrors and \n          optional, additional ValueError keyword argments.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>cot(<b>rad</b>)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>Error</strong></code> - If <a href=\"pygeodesy.constants-module.html#isnear0\" \n        class=\"link\">pygeodesy.isnear0</a><code>(sin(<b>rad</b>)</code>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"cot_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">cot_</span>&nbsp;(<span class=\"sig-arg\">*rads</span>,\n        <span class=\"sig-arg\">**raiser_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Yield the <code>cotangent</code> of angle(s) in \n  <code>radians</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>rads</code></strong> - One or more angles (each in <code>radians</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Yield <code>cot(<b>rad</b>)</code> for each angle.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.utily-module.html#cot\" \n        class=\"link\">pygeodesy.cot</a> for further details.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"cotd\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">cotd</span>&nbsp;(<span class=\"sig-arg\">deg</span>,\n        <span class=\"sig-arg\">**raiser_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the <code>cotangent</code> of an angle in \n  <code>degrees</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>deg</code></strong> - Angle (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>raiser_kwds</code></strong> - Use <code><b>raiser</b>=False</code> to avoid ValueErrors and \n          optional, additional ValueError keyword argments.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>cot(<b>deg</b>)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>Error</strong></code> - If <a href=\"pygeodesy.constants-module.html#isnear0\" \n        class=\"link\">pygeodesy.isnear0</a><code>(sin(<b>deg</b>)</code>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"cotd_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">cotd_</span>&nbsp;(<span class=\"sig-arg\">*degs</span>,\n        <span class=\"sig-arg\">**raiser_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Yield the <code>cotangent</code> of angle(s) in \n  <code>degrees</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>degs</code></strong> - One or more angles (each in <code>degrees</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Yield <code>cotd(<b>deg</b>)</code> for each angle.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.utily-module.html#cotd\" \n        class=\"link\">pygeodesy.cotd</a> for further details.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"degrees90\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">degrees90</span>&nbsp;(<span class=\"sig-arg\">rad</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert radians to degrees and wrap <i \n  class=\"math\">[-90..+90)</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>rad</code></strong> - Angle (<code>radians</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Angle, wrapped (<code>degrees90</code>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"degrees180\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">degrees180</span>&nbsp;(<span class=\"sig-arg\">rad</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert radians to degrees and wrap <i \n  class=\"math\">[-180..+180)</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>rad</code></strong> - Angle (<code>radians</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Angle, wrapped (<code>degrees180</code>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"degrees360\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">degrees360</span>&nbsp;(<span class=\"sig-arg\">rad</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert radians to degrees and wrap <i class=\"math\">[0..+360)</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>rad</code></strong> - Angle (<code>radians</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Angle, wrapped (<code>degrees360</code>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"degrees2grades\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">degrees2grades</span>&nbsp;(<span class=\"sig-arg\">deg</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert degrees to <i>grades</i> (aka <i>gons</i> or \n  <i>gradians</i>).</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>deg</code></strong> - Angle (<code>degrees</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Angle (<code>grades</code>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"degrees2m\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">degrees2m</span>&nbsp;(<span class=\"sig-arg\">deg</span>,\n        <span class=\"sig-arg\">earth</span>=<span class=\"sig-default\">6371008.771415</span>,\n        <span class=\"sig-arg\">lat</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">**radius</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert an arc in degrees to a distance along the equator or along a \n  parallel at (geodetic) latitude.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>deg</code></strong> - The (longitudinal) angle (<code>degrees</code> or \n          <code>str</code>).</li>\n        <li><strong class=\"pname\"><code>earth</code></strong> - The earth radius (<code>meter</code>) or an ellipsoid or datum \n          (<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a>, <a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a> \n          or <a href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>lat</code></strong> - Parallel latitude (<code>degrees90</code>, <code>str</code>).</li>\n        <li><strong class=\"pname\"><code>radius</code></strong> - For backward compatibility \n          <code><b>radius</b>=<b>earth</b></code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Distance (<code>meter</code>, same units as \n          <b><code>earth</code></b> or polar and equatorial radii) or \n          <code>0.0</code> for near-polar <b><code>lat</code></b>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.RangeError-class.html\">RangeError</a></strong></code> - Latitude <b><code>lat</code></b> outside valid range, only if <a \n        href=\"pygeodesy.errors-module.html#rangerrors\" \n        class=\"link\">rangerrors</a> is <code>True</code>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>earth</code></b> or <b><code>radius</code></b>.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>deg</code></b>, <b><code>earth</code></b> or \n        <b><code>lat</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.utily-module.html#radians2m\" \n        class=\"link\">radians2m</a> and <a \n        href=\"pygeodesy.utily-module.html#m2degrees\" \n        class=\"link\">m2degrees</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"fathom2m\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">fathom2m</span>&nbsp;(<span class=\"sig-arg\">fathoms</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert a length in <i>Imperial</i> fathoms to meter.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>fathoms</code></strong> - Length in fathoms (<code>scalar</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Length in <code>meter</code> (<code>float</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>fathoms</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.utily-module.html#toise2m\" \n        class=\"link\">toise2m</a>, <a \n        href=\"https://WikiPedia.org/wiki/Fathom\" target=\"_top\">Fathom</a> \n        and <a href=\"https://WikiPedia.org/wiki/Klafter\" \n        target=\"_top\">Klafter</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"ft2m\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">ft2m</span>&nbsp;(<span class=\"sig-arg\">feet</span>,\n        <span class=\"sig-arg\">usurvey</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">pied</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">india</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">fuss</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert a length in <i>International</i>, <i>US Survey</i>, \n  <i>French</i>, <i>Indian</i> or <i>German</i> feet to meter.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>feet</code></strong> - Length in feet (<code>scalar</code>).</li>\n        <li><strong class=\"pname\"><code>usurvey</code></strong> - If <code>True</code>, convert <i>US Survey</i> foot else ...</li>\n        <li><strong class=\"pname\"><code>pied</code></strong> - If <code>True</code>, convert French <i>pied-du-Roi</i> else ...</li>\n        <li><strong class=\"pname\"><code>india</code></strong> - If <code>True</code>, convert <i>India foot</i> else ...</li>\n        <li><strong class=\"pname\"><code>fuss</code></strong> - If <code>True</code>, convert German <i>Fuss</i>, otherwise \n          <i>International</i> foot to <code>meter</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Length in <code>meter</code> (<code>float</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>feet</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"furlong2m\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">furlong2m</span>&nbsp;(<span class=\"sig-arg\">furlongs</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert a length in <i>furlongs</i> to meter.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>furlongs</code></strong> - Length in furlongs (<code>scalar</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Length in <code>meter</code> (<code>float</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>furlongs</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"gdf\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">gdf</span>&nbsp;(<span class=\"sig-arg\">psi</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p><a href=\"https://WikiPedia.org/wiki/Gudermannian_function\" \n  target=\"_top\">Gudermannian function</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>psi</code></strong> - Gudermannian (<code>float</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Angle (<code>radians</code>).</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.utily-module.html#agdf\" \n        class=\"link\">agdf</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"grades\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">grades</span>&nbsp;(<span class=\"sig-arg\">rad</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert radians to <i>grades</i> (aka <i>gons</i> or \n  <i>gradians</i>).</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>rad</code></strong> - Angle (<code>radians</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Angle (<code>grades</code>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"grades400\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">grades400</span>&nbsp;(<span class=\"sig-arg\">rad</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert radians to <i>grades</i> (aka <i>gons</i> or <i>gradians</i>) \n  and wrap <i class=\"math\">[0..+400)</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>rad</code></strong> - Angle (<code>radians</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Angle, wrapped (<code>grades</code>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"grades2degrees\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">grades2degrees</span>&nbsp;(<span class=\"sig-arg\">gon</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert <i>grades</i> (aka <i>gons</i> or <i>gradians</i>) to \n  <code>degrees</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>gon</code></strong> - Angle (<code>grades</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Angle (<code>degrees</code>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"grades2radians\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">grades2radians</span>&nbsp;(<span class=\"sig-arg\">gon</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert <i>grades</i> (aka <i>gons</i> or <i>gradians</i>) to \n  <code>radians</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>gon</code></strong> - Angle (<code>grades</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Angle (<code>radians</code>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"ha2acre\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">ha2acre</span>&nbsp;(<span class=\"sig-arg\">ha</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert an area in <i>hectares</i> to <i>acres</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>ha</code></strong> - Area in hectares (<code>scalar</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Area in <code>acres</code> (<code>float</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>ha</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"ha2m2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">ha2m2</span>&nbsp;(<span class=\"sig-arg\">ha</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert an area in <i>hectares</i> to <i>square</i> meter.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>ha</code></strong> - Area in hectares (<code>scalar</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Area in <code>square</code> meter (<code>float</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>ha</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"hav\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">hav</span>&nbsp;(<span class=\"sig-arg\">rad</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the <a href=\"https://WikiPedia.org/wiki/Haversine_formula\" \n  target=\"_top\">haversine</a> of an angle.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>rad</code></strong> - Angle (<code>radians</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>sin(<b>rad</b> / 2)**2</code>.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"km2m\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">km2m</span>&nbsp;(<span class=\"sig-arg\">km</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert a length in <i>kilo meter</i> to meter (<code>m</code>).</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>km</code></strong> - Length in kilo meter (<code>scalar</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Length in meter (<code>float</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>km</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"m2acre\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">m2acre</span>&nbsp;(<span class=\"sig-arg\">meter2</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert an area in <i>square</i> meter to <i>acres</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>meter2</code></strong> - Area in <code>square</code> meter (<code>scalar</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Area in acres (<code>float</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>meter2</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"m2chain\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">m2chain</span>&nbsp;(<span class=\"sig-arg\">meter</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert a length in meter to <i>UK</i> chains.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>meter</code></strong> - Length in meter (<code>scalar</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Length in <code>chains</code> (<code>float</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>meter</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"m2degrees\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">m2degrees</span>&nbsp;(<span class=\"sig-arg\">distance</span>,\n        <span class=\"sig-arg\">earth</span>=<span class=\"sig-default\">6371008.771415</span>,\n        <span class=\"sig-arg\">lat</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">**radius</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert a distance to an arc in degrees along the equator or along a \n  parallel at (geodetic) latitude.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>distance</code></strong> - Distance (<code>meter</code>, same units as \n          <b><code>radius</code></b>).</li>\n        <li><strong class=\"pname\"><code>earth</code></strong> - Mean earth radius (<code>meter</code>) or an ellipsoid or datum \n          (<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a>, <a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a> \n          or <a href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>lat</code></strong> - Parallel latitude (<code>degrees90</code>, <code>str</code>).</li>\n        <li><strong class=\"pname\"><code>radius</code></strong> - For backward compatibility \n          <code><b>radius</b>=<b>earth</b></code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Angle (<code>degrees</code>) or <code>0.0,</code> for near-polar \n          <b><code>lat</code></b>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.RangeError-class.html\">RangeError</a></strong></code> - Latitude <b><code>lat</code></b> outside valid range, only if <a \n        href=\"pygeodesy.errors-module.html#rangerrors\" \n        class=\"link\">rangerrors</a> is <code>True</code>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>earth</code></b> or <b><code>radius</code></b>.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>distance</code></b>, <b><code>earth</code></b> or \n        <b><code>lat</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.utily-module.html#m2radians\" \n        class=\"link\">m2radians</a> and <a \n        href=\"pygeodesy.utily-module.html#degrees2m\" \n        class=\"link\">degrees2m</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"m2fathom\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">m2fathom</span>&nbsp;(<span class=\"sig-arg\">meter</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert a length in meter to <i>Imperial</i> fathoms.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>meter</code></strong> - Length in meter (<code>scalar</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Length in <code>fathoms</code> (<code>float</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>meter</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.utily-module.html#m2toise\" \n        class=\"link\">m2toise</a>, <a \n        href=\"https://WikiPedia.org/wiki/Fathom\" target=\"_top\">Fathom</a> \n        and <a href=\"https://WikiPedia.org/wiki/Klafter\" \n        target=\"_top\">Klafter</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"m2ft\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">m2ft</span>&nbsp;(<span class=\"sig-arg\">meter</span>,\n        <span class=\"sig-arg\">usurvey</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">pied</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">india</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">fuss</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert a length in meter to <i>International</i>, <i>US Survey</i>, \n  <i>French</i>, <i>Indian</i> or <i>German</i> feet (<code>ft</code>).</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>meter</code></strong> - Length in meter (<code>scalar</code>).</li>\n        <li><strong class=\"pname\"><code>usurvey</code></strong> - If <code>True</code>, convert to <i>US Survey</i> foot else ...</li>\n        <li><strong class=\"pname\"><code>pied</code></strong> - If <code>True</code>, convert to French <i>pied-du-Roi</i> else \n          ...</li>\n        <li><strong class=\"pname\"><code>india</code></strong> - If <code>True</code>, convert to <i>India foot</i> else ...</li>\n        <li><strong class=\"pname\"><code>fuss</code></strong> - If <code>True</code>, convert to German <i>Fuss</i>, otherwise to\n          <i>International</i> foot.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Length in <code>feet</code> (<code>float</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>meter</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"m2furlong\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">m2furlong</span>&nbsp;(<span class=\"sig-arg\">meter</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert a length in meter to furlongs.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>meter</code></strong> - Length in meter (<code>scalar</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Length in <code>furlongs</code> (<code>float</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>meter</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"m2ha\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">m2ha</span>&nbsp;(<span class=\"sig-arg\">meter2</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert an area in <i>square</i> meter to <i>hectares</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>meter2</code></strong> - Area in <code>square</code> meter (<code>scalar</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Area in hectares (<code>float</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>meter2</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"m2km\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">m2km</span>&nbsp;(<span class=\"sig-arg\">meter</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert a length in meter to kilo meter (<code>Km</code>).</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>meter</code></strong> - Length in meter (<code>scalar</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Length in <code>Km</code> (<code>float</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>meter</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"m2NM\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">m2NM</span>&nbsp;(<span class=\"sig-arg\">meter</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert a length in meter to nautical miles (<code>NM</code>).</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>meter</code></strong> - Length in meter (<code>scalar</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Length in <code>NM</code> (<code>float</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>meter</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"m2radians\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">m2radians</span>&nbsp;(<span class=\"sig-arg\">distance</span>,\n        <span class=\"sig-arg\">earth</span>=<span class=\"sig-default\">6371008.771415</span>,\n        <span class=\"sig-arg\">lat</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">**radius</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert a distance to an arc in radians along the equator or along a \n  parallel at (geodetic) latitude.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>distance</code></strong> - Distance (<code>meter</code>, same units as \n          <b><code>radius</code></b>).</li>\n        <li><strong class=\"pname\"><code>earth</code></strong> - Mean earth radius (<code>meter</code>) or an ellipsoid or datum \n          (<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a>, <a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a> \n          or <a href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>lat</code></strong> - Parallel latitude (<code>degrees90</code>, <code>str</code>).</li>\n        <li><strong class=\"pname\"><code>radius</code></strong> - For backward compatibility \n          <code><b>radius</b>=<b>earth</b></code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Angle (<code>radians</code>) or <code>0.0</code> for near-polar \n          <b><code>lat</code></b>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.RangeError-class.html\">RangeError</a></strong></code> - Latitude <b><code>lat</code></b> outside valid range, only if <a \n        href=\"pygeodesy.errors-module.html#rangerrors\" \n        class=\"link\">rangerrors</a> is <code>True</code>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>earth</code></b> or <b><code>radius</code></b>.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>distance</code></b>, <b><code>earth</code></b> or \n        <b><code>lat</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.utily-module.html#m2degrees\" \n        class=\"link\">m2degrees</a> and <a \n        href=\"pygeodesy.utily-module.html#radians2m\" \n        class=\"link\">radians2m</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"m2SM\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">m2SM</span>&nbsp;(<span class=\"sig-arg\">meter</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert a length in meter to statute miles (SM).</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>meter</code></strong> - Length in meter (<code>scalar</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Length in <code>SM</code> (<code>float</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>meter</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"m2toise\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">m2toise</span>&nbsp;(<span class=\"sig-arg\">meter</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert a length in meter to French <a \n  href=\"https://WikiPedia.org/wiki/Toise\" target=\"_top\">toises</a>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>meter</code></strong> - Length in meter (<code>scalar</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Length in <code>toises</code> (<code>float</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>meter</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.utily-module.html#m2fathom\" \n        class=\"link\">m2fathom</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"m2yard\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">m2yard</span>&nbsp;(<span class=\"sig-arg\">meter</span>,\n        <span class=\"sig-arg\">imperial</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert a length in meter to <i>International</i> or <a \n  href=\"https://WikiPedia.org/wiki/Imperial_units\" target=\"_top\">Imperial \n  Standard</a> yards.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>meter</code></strong> - Length in meter (<code>scalar</code>).</li>\n        <li><strong class=\"pname\"><code>imperial</code></strong> - If <code>True</code>, convert to <i>Imperial Standard</i> yards.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Length in <code>yards</code> (<code>float</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>meter</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"NM2m\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">NM2m</span>&nbsp;(<span class=\"sig-arg\">nm</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert a length in nautical miles to meter (<code>m</code>).</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>nm</code></strong> - Length in nautical miles (<code>scalar</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Length in meter (<code>float</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>nm</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"radians2m\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">radians2m</span>&nbsp;(<span class=\"sig-arg\">rad</span>,\n        <span class=\"sig-arg\">earth</span>=<span class=\"sig-default\">6371008.771415</span>,\n        <span class=\"sig-arg\">lat</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">**radius</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert an arc in radians to a distance along the equator or along a \n  parallel at (geodetic) latitude.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>rad</code></strong> - The (longitudinal) angle (<code>radians</code> or \n          <code>str</code>).</li>\n        <li><strong class=\"pname\"><code>earth</code></strong> - Mean earth radius (<code>meter</code>) or an ellipsoid or datum \n          (<a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a>, <a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a> \n          or <a href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>lat</code></strong> - Parallel latitude (<code>degrees90</code>, <code>str</code>).</li>\n        <li><strong class=\"pname\"><code>radius</code></strong> - For backward compatibility \n          <code><b>radius</b>=<b>earth</b></code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Distance (<code>meter</code>, same units as \n          <b><code>earth</code></b> or polar and equatorial radii) or \n          <code>0.0</code> for near-polar <b><code>lat</code></b>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.RangeError-class.html\">RangeError</a></strong></code> - Latitude <b><code>lat</code></b> outside valid range, only if <a \n        href=\"pygeodesy.errors-module.html#rangerrors\" \n        class=\"link\">rangerrors</a> is <code>True</code>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>earth</code></b> or <b><code>radius</code></b>.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>rad</code></b>, <b><code>earth</code></b> or \n        <b><code>lat</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.utily-module.html#degrees2m\" \n        class=\"link\">degrees2m</a> and <a \n        href=\"pygeodesy.utily-module.html#m2radians\" \n        class=\"link\">m2radians</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"radiansPI\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">radiansPI</span>&nbsp;(<span class=\"sig-arg\">deg</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert and wrap degrees to radians <i \n  class=\"math\">[-PI..+PI]</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>deg</code></strong> - Angle (<code>degrees</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Radians, wrapped (<code>radiansPI</code>)</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"radiansPI2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">radiansPI2</span>&nbsp;(<span class=\"sig-arg\">deg</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert and wrap degrees to radians <i class=\"math\">[0..+2PI)</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>deg</code></strong> - Angle (<code>degrees</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Radians, wrapped (<code>radiansPI2</code>)</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"radiansPI_2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">radiansPI_2</span>&nbsp;(<span class=\"sig-arg\">deg</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert and wrap degrees to radians <i \n  class=\"math\">[-3PI/2..+PI/2]</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>deg</code></strong> - Angle (<code>degrees</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Radians, wrapped (<code>radiansPI_2</code>)</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"SinCos2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">SinCos2</span>&nbsp;(<span class=\"sig-arg\">x</span>,\n        <span class=\"sig-arg\">unit</span>=<span class=\"sig-default\">&lt;class 'pygeodesy.units.Radians'&gt;</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Get <code>sin</code> and <code>cos</code> of <i>typed</i> angle.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>x</code></strong> - Angle (<a href=\"pygeodesy.units.Degrees-class.html\" \n          class=\"link\">Degrees</a>, <a \n          href=\"pygeodesy.units.Radians-class.html\" \n          class=\"link\">Radians</a> or scalar <code>radians</code>).</li>\n        <li><strong class=\"pname\"><code>unit</code></strong> - The <code><b>x</b></code> unit (<a \n          href=\"pygeodesy.units.Degrees-class.html\" \n          class=\"link\">Degrees</a>, <a \n          href=\"pygeodesy.units.Radians-class.html\" \n          class=\"link\">Radians</a>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>2-Tuple (<code>sin(<b>x</b>)</code>, <code>cos(<b>x</b>)</code>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"sincos2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">sincos2</span>&nbsp;(<span class=\"sig-arg\">rad</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the <code>sine</code> and <code>cosine</code> of an angle in \n  <code>radians</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>rad</code></strong> - Angle (<code>radians</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>2-Tuple (<code>sin(<b>rad</b>)</code>, \n          <code>cos(<b>rad</b>)</code>).</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Math.html#sincosd\"\n        target=\"_top\">GeographicLib</a> function <a \n        href=\"https://SourceForge.net/p/geographiclib/code/ci/release/tree/python/geographiclib/geomath.py#l155\"\n        target=\"_top\">sincosd</a> and C++ <a \n        href=\"https://SourceForge.net/p/geographiclib/code/ci/release/tree/include/GeographicLib/Math.hpp#l558\"\n        target=\"_top\">sincosd</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"sincos2_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">sincos2_</span>&nbsp;(<span class=\"sig-arg\">*rads</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Yield the <code>sine</code> and <code>cosine</code> of angle(s) in \n  <code>radians</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>rads</code></strong> - One or more angles (<code>radians</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Yield <code>sin(<b>rad</b>)</code> and \n          <code>cos(<b>rad</b>)</code> for each angle.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.utily-module.html#sincos2\" \n        class=\"link\">sincos2</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"sincos2d\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">sincos2d</span>&nbsp;(<span class=\"sig-arg\">deg</span>,\n        <span class=\"sig-arg\">adeg</span>=<span class=\"sig-default\">0.0</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the <code>sine</code> and <code>cosine</code> of an angle in \n  <code>degrees</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>deg</code></strong> - Angle (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>adeg</code></strong> - Optional correction (<code>degrees</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>2-Tuple (<code>sin(<b>deg_</b>)</code>, \n          <code>cos(<b>deg_</b>)</code> with <code><b>deg_</b> = <b>deg</b>\n          + <b>adeg</b></code>).</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Math.html#sincosd\"\n        target=\"_top\">GeographicLib</a> function <a \n        href=\"https://SourceForge.net/p/geographiclib/code/ci/release/tree/python/geographiclib/geomath.py#l155\"\n        target=\"_top\">sincosd</a> and C++ <a \n        href=\"https://SourceForge.net/p/geographiclib/code/ci/release/tree/include/GeographicLib/Math.hpp#l558\"\n        target=\"_top\">sincosd</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"sincos2d_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">sincos2d_</span>&nbsp;(<span class=\"sig-arg\">*degs</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Yield the <code>sine</code> and <code>cosine</code> of angle(s) in \n  <code>degrees</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>degs</code></strong> - One or more angles (<code>degrees</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Yield <code>sind(<b>deg</b>)</code> and \n          <code>cosd(<b>deg</b>)</code> for each angle.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.utily-module.html#sincos2d\" \n        class=\"link\">sincos2d</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"sincostan3\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">sincostan3</span>&nbsp;(<span class=\"sig-arg\">rad</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the <code>sine</code>, <code>cosine</code> and \n  <code>tangent</code> of an angle in <code>radians</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>rad</code></strong> - Angle (<code>radians</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>3-Tuple (<code>sin(<b>rad</b>)</code>, \n          <code>cos(<b>rad</b>)</code>, <code>tan(<b>rad</b>)</code>).</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.utily-module.html#sincos2\" \n        class=\"link\">sincos2</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"sincostan3d\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">sincostan3d</span>&nbsp;(<span class=\"sig-arg\">deg</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the <code>sine</code>, <code>cosine</code> and \n  <code>tangent</code> of an angle in <code>degrees</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>deg</code></strong> - Angle (<code>degrees</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>3-Tuple (<code>sind(<b>deg</b>)</code>, \n          <code>cosd(<b>deg</b>)</code>, <code>tand(<b>deg</b>)</code>).</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.utily-module.html#sincos2d\" \n        class=\"link\">sincos2d</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"SM2m\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">SM2m</span>&nbsp;(<span class=\"sig-arg\">sm</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert a length in statute miles to meter (<code>m</code>).</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>sm</code></strong> - Length in statute miles (<code>scalar</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Length in meter (<code>float</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>sm</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"tan_2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">tan_2</span>&nbsp;(<span class=\"sig-arg\">rad</span>,\n        <span class=\"sig-arg\">**semi</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the tangent of half angle.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>rad</code></strong> - Angle (<code>radians</code>).</li>\n        <li><strong class=\"pname\"><code>semi</code></strong> - Angle or edge name and index for semi-circular error.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><i class=\"math\">tan(rad / 2)</i> (<code>float</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ValueError</strong></code> - If <b><code>rad</code></b> is semi-circular and \n        <b><code>semi</code></b> is given.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"tan\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">tan</span>&nbsp;(<span class=\"sig-arg\">rad</span>,\n        <span class=\"sig-arg\">**raiser_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the <code>tangent</code> of an angle in \n  <code>radians</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>rad</code></strong> - Angle (<code>radians</code>).</li>\n        <li><strong class=\"pname\"><code>raiser_kwds</code></strong> - Use <code><b>raiser</b>=False</code> to avoid ValueErrors and \n          optional, additional ValueError keyword argments.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>tan(<b>rad</b>)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>Error</strong></code> - If <a href=\"pygeodesy.constants-module.html#isnear0\" \n        class=\"link\">pygeodesy.isnear0</a><code>(cos(<b>rad</b>)</code>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"tan_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">tan_</span>&nbsp;(<span class=\"sig-arg\">*rads</span>,\n        <span class=\"sig-arg\">**raiser_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Yield the <code>tangent</code> of angle(s) in \n  <code>radians</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>rads</code></strong> - One or more angles (each in <code>radians</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Yield <code>tan(<b>rad</b>)</code> for each angle.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.utily-module.html#tan\" \n        class=\"link\">pygeodesy.tan</a> for futher details.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"tand\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">tand</span>&nbsp;(<span class=\"sig-arg\">deg</span>,\n        <span class=\"sig-arg\">**raiser_clamp_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the <code>tangent</code> of an angle in \n  <code>degrees</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>deg</code></strong> - Angle (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>raiser_clamp_kwds</code></strong> - Use <code><b>raiser</b>=False</code> to avoid ValueErrors, \n          <code><b>clamp</b>=</code>OVERFLOW and optional, additional \n          ValueError keyword argments.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>tan(<b>deg</b>)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>Error</strong></code> - If <a href=\"pygeodesy.constants-module.html#isnear0\" \n        class=\"link\">pygeodesy.isnear0</a><code>(cos(<b>deg</b>)</code>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"tand_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">tand_</span>&nbsp;(<span class=\"sig-arg\">*degs</span>,\n        <span class=\"sig-arg\">**raiser_clamp_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Yield the <code>tangent</code> of angle(s) in \n  <code>degrees</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>degs</code></strong> - One or more angles (each in <code>degrees</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Yield <code>tand(<b>deg</b>)</code> for each angle.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.utily-module.html#tand\" \n        class=\"link\">pygeodesy.tand</a> for futher details.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"tanPI_2_2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">tanPI_2_2</span>&nbsp;(<span class=\"sig-arg\">rad</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the tangent of half angle, 90 degrees rotated.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>rad</code></strong> - Angle (<code>radians</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><i class=\"math\">tan((rad + PI/2) / 2)</i> (<code>float</code>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toise2m\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toise2m</span>&nbsp;(<span class=\"sig-arg\">toises</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert a length in French <a href=\"https://WikiPedia.org/wiki/Toise\" \n  target=\"_top\">toises</a> to meter.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>toises</code></strong> - Length in toises (<code>scalar</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Length in <code>meter</code> (<code>float</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>toises</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.utily-module.html#fathom2m\" \n        class=\"link\">fathom2m</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"truncate\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">truncate</span>&nbsp;(<span class=\"sig-arg\">x</span>,\n        <span class=\"sig-arg\">ndigits</span>=<span class=\"sig-default\">None</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Truncate to the given number of digits.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>x</code></strong> - Value to truncate (<code>scalar</code>).</li>\n        <li><strong class=\"pname\"><code>ndigits</code></strong> - Number of digits (<code>int</code>), aka <i>precision</i>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Truncated <b><code>x</code></b> (<code>float</code>).</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Python function <code>round</code>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"unroll180\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">unroll180</span>&nbsp;(<span class=\"sig-arg\">lon1</span>,\n        <span class=\"sig-arg\">lon2</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">True</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Unroll longitudinal delta and wrap longitude in degrees.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lon1</code></strong> - Start longitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lon2</code></strong> - End longitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap and unroll to the <i \n          class=\"math\">(-180..+180]</i> range (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>2-Tuple <code>(<b>lon2</b>-<b>lon1</b>, <b>lon2</b>)</code> \n          unrolled (<code>degrees</code>, <code>degrees</code>).</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Capability <code>LONG_UNROLL</code> in <a \n        href=\"https://GeographicLib.SourceForge.io/html/python/interface.html#outmask\"\n        target=\"_top\">GeographicLib</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"unrollPI\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">unrollPI</span>&nbsp;(<span class=\"sig-arg\">rad1</span>,\n        <span class=\"sig-arg\">rad2</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">True</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Unroll longitudinal delta and wrap longitude in radians.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>rad1</code></strong> - Start longitude (<code>radians</code>).</li>\n        <li><strong class=\"pname\"><code>rad2</code></strong> - End longitude (<code>radians</code>).</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap and unroll to the <i \n          class=\"math\">(-PI..+PI]</i> range (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>2-Tuple <code>(<b>rad2</b>-<b>rad1</b>, <b>rad2</b>)</code> \n          unrolled (<code>radians</code>, <code>radians</code>).</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Capability <code>LONG_UNROLL</code> in <a \n        href=\"https://GeographicLib.SourceForge.io/html/python/interface.html#outmask\"\n        target=\"_top\">GeographicLib</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"wrap90\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">wrap90</span>&nbsp;(<span class=\"sig-arg\">deg</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Wrap degrees to <i class=\"math\">[-90..+90]</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>deg</code></strong> - Angle (<code>degrees</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Degrees, wrapped (<code>degrees90</code>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"wrap180\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">wrap180</span>&nbsp;(<span class=\"sig-arg\">deg</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Wrap degrees to <i class=\"math\">[-180..+180]</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>deg</code></strong> - Angle (<code>degrees</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Degrees, wrapped (<code>degrees180</code>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"wrap360\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">wrap360</span>&nbsp;(<span class=\"sig-arg\">deg</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Wrap degrees to <i class=\"math\">[0..+360)</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>deg</code></strong> - Angle (<code>degrees</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Degrees, wrapped (<code>degrees360</code>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"wrapPI\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">wrapPI</span>&nbsp;(<span class=\"sig-arg\">rad</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Wrap radians to <i class=\"math\">[-PI..+PI]</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>rad</code></strong> - Angle (<code>radians</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Radians, wrapped (<code>radiansPI</code>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"wrapPI2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">wrapPI2</span>&nbsp;(<span class=\"sig-arg\">rad</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Wrap radians to <i class=\"math\">[0..+2PI)</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>rad</code></strong> - Angle (<code>radians</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Radians, wrapped (<code>radiansPI2</code>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"wrapPI_2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">wrapPI_2</span>&nbsp;(<span class=\"sig-arg\">rad</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Wrap radians to <i class=\"math\">[-PI/2..+PI/2]</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>rad</code></strong> - Angle (<code>radians</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Radians, wrapped (<code>radiansPI_2</code>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"wrap_normal\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">wrap_normal</span>&nbsp;(<span class=\"sig-arg\">*normal</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Define the operation for the keyword argument \n  <code><b>wrap</b>=True</code>, across <a href=\"pygeodesy-module.html\" \n  class=\"link\">pygeodesy</a>: <i>wrap</i>, <i>normalize</i> or \n  <i>no-op</i>.  For backward compatibility, the default is \n  <i>wrap</i>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>normal</code></strong> - If <code>True</code>, <i>normalize</i> lat- and longitude using \n          <a href=\"pygeodesy.formy-module.html#normal\" \n          class=\"link\">normal</a> or <a \n          href=\"pygeodesy.formy-module.html#normal_\" \n          class=\"link\">normal_</a>, if <code>False</code>, <i>wrap</i> the \n          lat- and longitude individually by <a \n          href=\"pygeodesy.utily-module.html#wrap90\" class=\"link\">wrap90</a>\n          or <a href=\"pygeodesy.utily-module.html#wrapPI_2\" \n          class=\"link\">wrapPI_2</a> respectively <a \n          href=\"pygeodesy.utily-module.html#wrap180\" \n          class=\"link\">wrap180</a>, <a \n          href=\"pygeodesy.utily-module.html#wrapPI\" class=\"link\">wrapPI</a>\n          or if <code>None</code>, leave lat- and longitude \n          <i>unchanged</i>. To get the current setting, do not specify.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The previous <a href=\"pygeodesy.utily-module.html#wrap_normal\" \n          class=\"link\">wrap_normal</a> setting (<code>bool</code> or \n          <code>None</code>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"yard2m\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">yard2m</span>&nbsp;(<span class=\"sig-arg\">yards</span>,\n        <span class=\"sig-arg\">imperial</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert a length in <i>International</i> or <a \n  href=\"https://WikiPedia.org/wiki/Imperial_units\" target=\"_top\">Imperial \n  Standard</a> yards to meter.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>yards</code></strong> - Length in yards (<code>scalar</code>).</li>\n        <li><strong class=\"pname\"><code>imperial</code></strong> - If <code>True</code>, convert from <i>Imperial Standard</i> \n          yards.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Length in <code>meter</code> (<code>float</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>yards</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.utm-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.utm</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        Module&nbsp;utm\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.utm-module.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== MODULE DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Module utm</h1><p class=\"nomargin-top\"></p>\n<p><i>Veness</i>' Universal Transverse Mercator (UTM) projection.</p>\n  <p>Classes <a href=\"pygeodesy.utm.Utm-class.html\" class=\"link\">Utm</a> \n  and <a href=\"pygeodesy.utm.UTMError-class.html\" class=\"link\">UTMError</a>\n  and functions <a href=\"pygeodesy.utm-module.html#parseUTM5\" \n  class=\"link\">parseUTM5</a>, <a href=\"pygeodesy.utm-module.html#toUtm8\" \n  class=\"link\">toUtm8</a> and <a \n  href=\"pygeodesy.utm-module.html#utmZoneBand5\" \n  class=\"link\">utmZoneBand5</a>.</p>\n  <p>Pure Python implementation of UTM / WGS-84 conversion functions using \n  an ellipsoidal earth model, transcoded from JavaScript originals by \n  <i>(C) Chris Veness 2011-2024</i> published under the same MIT Licence**,\n  see <a \n  href=\"https://www.Movable-Type.co.UK/scripts/latlong-utm-mgrs.html\" \n  target=\"_top\">UTM</a> and <a \n  href=\"https://www.Movable-Type.co.UK/scripts/geodesy/docs/module-utm.html\"\n  target=\"_top\">Module utm</a>.</p>\n  <p>The <a \n  href=\"https://WikiPedia.org/wiki/Universal_Transverse_Mercator_coordinate_system\"\n  target=\"_top\">UTM</a> system is a 2-dimensional Cartesian coordinate \n  system providing another way to identify locations on the surface of the \n  earth.  UTM is a set of 60 transverse Mercator projections, normally \n  based on the WGS-84 ellipsoid. Within each zone, coordinates are \n  represented as <b><code>easting</code></b>s and \n  <b><code>northing</code></b>s, measured in metres.</p>\n  <p>This module includes some of <i>Charles Karney</i>'s <a \n  href=\"https://ArXiv.org/pdf/1002.1417v3.pdf\" target=\"_top\">'Transverse \n  Mercator with an accuracy of a few nanometers'</a>, 2011 (building on \n  Kr&#252;ger's <a href=\"https://bib.GFZ-Potsdam.DE/pub/digi/krueger2.pdf\" \n  target=\"_top\">'Konforme Abbildung des Erdellipsoids in der Ebene'</a>, \n  1912) and C++ class <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1TransverseMercator.html\"\n  target=\"_top\">TransverseMercator</a>.</p>\n  <p>Some other references are <a \n  href=\"https://WikiPedia.org/wiki/Universal_Transverse_Mercator_coordinate_system\"\n  target=\"_top\">Universal Transverse Mercator coordinate system</a>, <a \n  href=\"https://GeographicLib.SourceForge.io/tm.html\" \n  target=\"_top\">Transverse Mercator Projection</a> and Henrik Seidel <a \n  href=\"https://DE.WikiPedia.org/wiki/Gau&#223;-Kr&#252;ger-Koordinatensystem\" \n  target=\"_top\">'Die Mathematik der Gau&#223;-Krueger-Abbildung'</a>, 2006.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Version:</strong>\n        24.11.26\n      </p>\n</div><!-- ==================== CLASSES ==================== -->\n<a name=\"section-Classes\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Classes</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.utm.UTMError-class.html\" class=\"summary-name\">UTMError</a><br />\n      Universal Transverse Mercator (UTM parse or other <a \n        href=\"pygeodesy.utm.Utm-class.html\" class=\"link\">Utm</a> issue.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.utm.Utm-class.html\" class=\"summary-name\">Utm</a><br />\n      Universal Transverse Mercator (UTM) coordinate.\n    </td>\n  </tr>\n</table>\n<!-- ==================== FUNCTIONS ==================== -->\n<a name=\"section-Functions\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Functions</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.utm-module.html#parseUTM5\" class=\"summary-sig-name\">parseUTM5</a>(<span class=\"summary-sig-arg\">strUTM</span>,\n        <span class=\"summary-sig-arg\">datum</span>=<span class=\"summary-sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"summary-sig-arg\">Utm</span>=<span class=\"summary-sig-default\">&lt;class 'pygeodesy.utm.Utm'&gt;</span>,\n        <span class=\"summary-sig-arg\">falsed</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Parse a string representing a UTM coordinate, consisting of \n      <code>&quot;zone[band] hemisphere easting northing&quot;</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.utm-module.html#toUtm8\" class=\"summary-sig-name\">toUtm8</a>(<span class=\"summary-sig-arg\">latlon</span>,\n        <span class=\"summary-sig-arg\">lon</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">datum</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">Utm</span>=<span class=\"summary-sig-default\">&lt;class 'pygeodesy.utm.Utm'&gt;</span>,\n        <span class=\"summary-sig-arg\">falsed</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">strict</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">zone</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**name_cmoff</span>)</span><br />\n      Convert a lat-/longitude point to a UTM coordinate.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.utm-module.html#utmZoneBand5\" class=\"summary-sig-name\">utmZoneBand5</a>(<span class=\"summary-sig-arg\">lat</span>,\n        <span class=\"summary-sig-arg\">lon</span>,\n        <span class=\"summary-sig-arg\">cmoff</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Return the UTM zone number, Band letter, hemisphere and (clipped) \n      lat- and longitude for a given location.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== VARIABLES ==================== -->\n<a name=\"section-Variables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Variables</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"__all__\"></a><span class=\"summary-name\">__all__</span> = <code title=\"_ALL_LAZY.utm\">_ALL_LAZY.utm</code>\n    </td>\n  </tr>\n</table>\n<!-- ==================== FUNCTION DETAILS ==================== -->\n<a name=\"section-FunctionDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Function Details</span></td>\n</tr>\n</table>\n<a name=\"parseUTM5\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">parseUTM5</span>&nbsp;(<span class=\"sig-arg\">strUTM</span>,\n        <span class=\"sig-arg\">datum</span>=<span class=\"sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"sig-arg\">Utm</span>=<span class=\"sig-default\">&lt;class 'pygeodesy.utm.Utm'&gt;</span>,\n        <span class=\"sig-arg\">falsed</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Parse a string representing a UTM coordinate, consisting of \n  <code>&quot;zone[band] hemisphere easting northing&quot;</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>strUTM</code></strong> - A UTM coordinate (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>datum</code></strong> - Optional datum to use (<a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>, \n          <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a> or <a \n          href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>Utm</code></strong> - Optional class to return the UTM coordinate (<a \n          href=\"pygeodesy.utm.Utm-class.html\" class=\"link\">Utm</a>) or \n          <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>falsed</code></strong> - Use <code><b>falsed</b>=False</code> if both easting and northing\n          are <i>not falsed</i> (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The UTM coordinate (<b><code>Utm</code></b>) or if \n          <code><b>Utm</b> is None</code>, a <a \n          href=\"pygeodesy.namedTuples.UtmUps5Tuple-class.html\" \n          class=\"link\">UtmUps5Tuple</a><code>(zone, hemipole, easting, \n          northing, band)</code>. The <code>hemipole</code> is the \n          <code>'N'|'S'</code> hemisphere.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.utm.UTMError-class.html\">UTMError</a></strong></code> - Invalid <b><code>strUTM</code></b>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>datum</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toUtm8\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toUtm8</span>&nbsp;(<span class=\"sig-arg\">latlon</span>,\n        <span class=\"sig-arg\">lon</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">datum</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">Utm</span>=<span class=\"sig-default\">&lt;class 'pygeodesy.utm.Utm'&gt;</span>,\n        <span class=\"sig-arg\">falsed</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">strict</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">zone</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**name_cmoff</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert a lat-/longitude point to a UTM coordinate.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>latlon</code></strong> - Latitude (<code>degrees</code>) or an (ellipsoidal) geodetic \n          <code>LatLon</code> point.</li>\n        <li><strong class=\"pname\"><code>lon</code></strong> - Longitude (<code>degrees</code>), required if \n          <b><code>latlon</code></b> is <code>degrees</code>, ignored \n          otherwise.</li>\n        <li><strong class=\"pname\"><code>datum</code></strong> - Optional datum for this UTM coordinate, overriding \n          <b><code>latlon</code></b>'s datum (<a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>, \n          <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a> or <a \n          href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>Utm</code></strong> - Optional class to return the UTM coordinate (<a \n          href=\"pygeodesy.utm.Utm-class.html\" class=\"link\">Utm</a>) or \n          <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>falsed</code></strong> - If <code>True</code>, false both easting and northing \n          (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>strict</code></strong> - If <code>True</code>, restrict <b><code>lat</code></b> to UTM \n          ranges (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>zone</code></strong> - Optional UTM zone to enforce (<code>int</code> or \n          <code>str</code>).</li>\n        <li><strong class=\"pname\"><code>name_cmoff</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>) and \n          DEPRECATED keyword argument <code><b>cmoff</b>=True</code> to \n          offset the longitude from the zone's central meridian \n          (<code>bool</code>), use <code><b>falsed</b></code> instead.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The UTM coordinate (<b><code>Utm</code></b>) or if \n          <code><b>Utm</b> is None</code> or <code><b>falsed</b> is \n          False</code>, a <a \n          href=\"pygeodesy.namedTuples.UtmUps8Tuple-class.html\" \n          class=\"link\">UtmUps8Tuple</a><code>(zone, hemipole, easting, \n          northing, band, datum, gamma, scale)</code> where \n          <code>hemipole</code> is the <code>'N'|'S'</code> hemisphere.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.RangeError-class.html\">RangeError</a></strong></code> - If <b><code>lat</code></b> outside the valid UTM bands or if \n        <b><code>lat</code></b> or <b><code>lon</code></b> outside the \n        valid range and <a href=\"pygeodesy.errors-module.html#rangerrors\" \n        class=\"link\">rangerrors</a> is <code>True</code>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>datum</code></b> or <b><code>latlon</code></b> not\n        ellipsoidal.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.utm.UTMError-class.html\">UTMError</a></strong></code> - Invalid <b><code>zone</code></b>.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - If <b><code>lon</code></b> is missing or <b><code>latlon</code></b>\n        is invalid.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        Implements Karney&#8217;s method, using 8-th order Kr&#252;ger series, giving \n        results accurate to 5 nm (or better) for distances up to 3,900 Km \n        from the central meridian.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"utmZoneBand5\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">utmZoneBand5</span>&nbsp;(<span class=\"sig-arg\">lat</span>,\n        <span class=\"sig-arg\">lon</span>,\n        <span class=\"sig-arg\">cmoff</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the UTM zone number, Band letter, hemisphere and (clipped) lat-\n  and longitude for a given location.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat</code></strong> - Latitude in degrees (<code>scalar</code> or <code>str</code>).</li>\n        <li><strong class=\"pname\"><code>lon</code></strong> - Longitude in degrees (<code>scalar</code> or <code>str</code>).</li>\n        <li><strong class=\"pname\"><code>cmoff</code></strong> - If <code>True</code>, offset longitude from the zone's central \n          meridian (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.namedTuples.UtmUpsLatLon5Tuple-class.html\" \n          class=\"link\">UtmUpsLatLon5Tuple</a><code>(zone, band, hemipole, \n          lat, lon)</code> where <code>hemipole</code> is the \n          <code>'N'|'S'</code> UTM hemisphere.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.RangeError-class.html\">RangeError</a></strong></code> - If <b><code>lat</code></b> outside the valid UTM bands or if \n        <b><code>lat</code></b> or <b><code>lon</code></b> outside the \n        valid range and <a href=\"pygeodesy.errors-module.html#rangerrors\" \n        class=\"link\">rangerrors</a> is <code>True</code>.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>lat</code></b> or <b><code>lon</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.utm.UTMError-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.utm.UTMError</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.utm-module.html\">Module&nbsp;utm</a> ::\n        Class&nbsp;UTMError\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.utm.UTMError-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class UTMError</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n              object --+                    \n                       |                    \nexceptions.BaseException --+                \n                           |                \n        exceptions.Exception --+            \n                               |            \n        exceptions.StandardError --+        \n                                   |        \n               exceptions.ValueError --+    \n                                       |    \n                      errors._ValueError --+\n                                           |\n                                          <strong class=\"uidshort\">UTMError</strong>\n</pre>\n\n<dl><dt>Known Subclasses:</dt>\n<dd>\n      <ul class=\"subclass-list\">\n<li><a href=\"pygeodesy.etm.ETMError-class.html\">etm.ETMError</a></li>  </ul>\n</dd></dl>\n\n<hr />\n<p>Universal Transverse Mercator (UTM parse or other <a \n  href=\"pygeodesy.utm.Utm-class.html\" class=\"link\">Utm</a> issue.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>errors._ValueError</code></b>:\n      <code>__init__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.ValueError</code></b>:\n      <code>__new__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.BaseException</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getslice__</code>,\n      <code>__reduce__</code>,\n      <code>__repr__</code>,\n      <code>__setattr__</code>,\n      <code>__setstate__</code>,\n      <code>__str__</code>,\n      <code>__unicode__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__format__</code>,\n      <code>__hash__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.BaseException</code></b>:\n      <code>args</code>,\n      <code>message</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:21 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.utm.Utm-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.utm.Utm</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.utm-module.html\">Module&nbsp;utm</a> ::\n        Class&nbsp;Utm\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.utm.Utm-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Utm</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n   object --+            \n            |            \n <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+        \n                |        \n <a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+    \n                    |    \n<a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html\">utmupsBase.UtmUpsBase</a> --+\n                        |\n                       <strong class=\"uidshort\">Utm</strong>\n</pre>\n\n<dl><dt>Known Subclasses:</dt>\n<dd>\n      <ul class=\"subclass-list\">\n<li><a href=\"pygeodesy.etm.Etm-class.html\">etm.Etm</a></li>  </ul>\n</dd></dl>\n\n<hr />\n<p>Universal Transverse Mercator (UTM) coordinate.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__eq__\"></a><span class=\"summary-sig-name\">__eq__</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span></td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.utm.Utm-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">zone</span>=<span class=\"summary-sig-default\">31</span>,\n        <span class=\"summary-sig-arg\">hemisphere</span>=<span class=\"summary-sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">N</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"summary-sig-arg\">easting</span>=<span class=\"summary-sig-default\">166022</span>,\n        <span class=\"summary-sig-arg\">northing</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">band</span>=<span class=\"summary-sig-default\">''</span>,\n        <span class=\"summary-sig-arg\">datum</span>=<span class=\"summary-sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"summary-sig-arg\">falsed</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">gamma</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">scale</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**name_convergence</span>)</span><br />\n      New <a href=\"pygeodesy.utm.Utm-class.html\" class=\"link\">Utm</a> UTM \n      coordinate.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.utm.Utm-class.html#__repr__\" class=\"summary-sig-name\">__repr__</a>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Default <code>repr(self)</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.utm.Utm-class.html#__str__\" class=\"summary-sig-name\">__str__</a>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Default <code>str(self)</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.utm.Utm-class.html#parse\" class=\"summary-sig-name\">parse</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">strUTM</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Parse a string to a similar <a href=\"pygeodesy.utm.Utm-class.html\" \n      class=\"link\">Utm</a> instance.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.utm.Utm-class.html#parseUTM\" class=\"summary-sig-name\">parseUTM</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">strUTM</span>)</span><br />\n      DEPRECATED, use method <a href=\"pygeodesy.utm.Utm-class.html#parse\" \n      class=\"link\">Utm.parse</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.utm.Utm-class.html#toEtm\" class=\"summary-sig-name\">toEtm</a>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Copy this UTM to an ETM coordinate.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.utm.Utm-class.html#toLatLon\" class=\"summary-sig-name\">toLatLon</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">LatLon</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">eps</span>=<span class=\"summary-sig-default\">2.220446049250313e-16</span>,\n        <span class=\"summary-sig-arg\">unfalse</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">**LatLon_kwds</span>)</span><br />\n      Convert this UTM coordinate to an (ellipsoidal) geodetic point.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.utm.Utm-class.html#toRepr\" class=\"summary-sig-name\">toRepr</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">prec</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">fmt</span>=<span class=\"summary-sig-default\">'[%s]'</span>,\n        <span class=\"summary-sig-arg\">sep</span>=<span class=\"summary-sig-default\">', '</span>,\n        <span class=\"summary-sig-arg\">B</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">cs</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">**unused</span>)</span><br />\n      Return a string representation of this UTM coordinate.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.utm.Utm-class.html#toStr\" class=\"summary-sig-name\">toStr</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">prec</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">sep</span>=<span class=\"summary-sig-default\">' '</span>,\n        <span class=\"summary-sig-arg\">B</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">cs</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Return a string representation of this UTM coordinate.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.utm.Utm-class.html#toUps\" class=\"summary-sig-name\">toUps</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">pole</span>=<span class=\"summary-sig-default\">''</span>,\n        <span class=\"summary-sig-arg\">eps</span>=<span class=\"summary-sig-default\">2.220446049250313e-16</span>,\n        <span class=\"summary-sig-arg\">falsed</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">**unused</span>)</span><br />\n      Convert this UTM coordinate to a UPS coordinate.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.utm.Utm-class.html#toUtm\" class=\"summary-sig-name\">toUtm</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">zone</span>,\n        <span class=\"summary-sig-arg\">eps</span>=<span class=\"summary-sig-default\">2.220446049250313e-16</span>,\n        <span class=\"summary-sig-arg\">falsed</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">**unused</span>)</span><br />\n      Convert this UTM coordinate to a different zone.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html\">utmupsBase.UtmUpsBase</a></code></b>:\n      <code><a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html#eastingnorthing2\">eastingnorthing2</a></code>,\n      <code><a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html#latFootPoint\">latFootPoint</a></code>,\n      <code><a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html#phiFootPoint\">phiFootPoint</a></code>,\n      <code><a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html#to2en\">to2en</a></code>,\n      <code><a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html#toEpsg\">toEpsg</a></code>,\n      <code><a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html#toMgrs\">toMgrs</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#others\">others</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.utm.Utm-class.html#band\" class=\"summary-name\">band</a><br />\n      Class <code>property</code> with a <code>.name</code> attribute.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.utm.Utm-class.html#falsed2\" class=\"summary-name\">falsed2</a><br />\n      Get the easting and northing falsing (<a \n      href=\"pygeodesy.namedTuples.EasNor2Tuple-class.html\" \n      class=\"link\">EasNor2Tuple</a><code>(easting, northing)</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.utm.Utm-class.html#pole\" class=\"summary-name\">pole</a><br />\n      Get the top center of (stereographic) projection, \n      <code>&quot;&quot;</code> always.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.utm.Utm-class.html#zone\" class=\"summary-name\">zone</a><br />\n      Get the (longitudinal) zone (<code>int</code>, 1..60).\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html\">utmupsBase.UtmUpsBase</a></code></b>:\n      <code><a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html#convergence\">convergence</a></code>,\n      <code><a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html#datum\">datum</a></code>,\n      <code><a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html#easting\">easting</a></code>,\n      <code><a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html#eastingnorthing\">eastingnorthing</a></code>,\n      <code><a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html#falsed\">falsed</a></code>,\n      <code><a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html#gamma\">gamma</a></code>,\n      <code><a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html#hemisphere\">hemisphere</a></code>,\n      <code><a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html#northing\">northing</a></code>,\n      <code><a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html#scale\">scale</a></code>,\n      <code><a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html#scale0\">scale0</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">zone</span>=<span class=\"sig-default\">31</span>,\n        <span class=\"sig-arg\">hemisphere</span>=<span class=\"sig-default\"><code class=\"variable-quote\">'</code><code class=\"variable-string\">N</code><code class=\"variable-quote\">'</code></span>,\n        <span class=\"sig-arg\">easting</span>=<span class=\"sig-default\">166022</span>,\n        <span class=\"sig-arg\">northing</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">band</span>=<span class=\"sig-default\">''</span>,\n        <span class=\"sig-arg\">datum</span>=<span class=\"sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"sig-arg\">falsed</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">gamma</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">scale</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**name_convergence</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.utm.Utm-class.html\" class=\"link\">Utm</a> UTM \n  coordinate.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>zone</code></strong> - Longitudinal UTM zone (<code>int</code>, 1..60) or zone with/-out\n          <i>latitudinal</i> Band letter (<code>str</code>, '1C'|..|'60X').</li>\n        <li><strong class=\"pname\"><code>hemisphere</code></strong> - Northern or southern hemisphere (<code>str</code>, \n          <code>'N[orth]'</code> or <code>'S[outh]'</code>).</li>\n        <li><strong class=\"pname\"><code>easting</code></strong> - Easting, see <b><code>falsed</code></b> (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>northing</code></strong> - Northing, see <b><code>falsed</code></b> (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>band</code></strong> - Optional, <i>latitudinal</i> band (<code>str</code>, 'C'|..|'X', \n          no 'I'|'O').</li>\n        <li><strong class=\"pname\"><code>datum</code></strong> - Optional, this coordinate's datum (<a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>, \n          <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a> or <a \n          href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>falsed</code></strong> - If <code>True</code>, both <b><code>easting</code></b> and \n          <b><code>northing</code></b> are falsed (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>gamma</code></strong> - Optional meridian convergence, bearing off grid North, clockwise \n          from true North to save (<code>degrees</code>) or \n          <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>scale</code></strong> - Optional grid scale factor to save (<code>scalar</code>) or \n          <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>name_convergence</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>) and \n          DEPRECATED keyword argument <code><b>convergence</b>=None</code>,\n          use <b><code>gamma</code></b>.</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid or near-spherical <b><code>datum</code></b>.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.utm.UTMError-class.html\">UTMError</a></strong></code> - Invalid <b><code>zone</code></b>, <b><code>hemishere</code></b>, \n        <b><code>easting</code></b>, <b><code>northing</code></b>, \n        <b><code>band</code></b>, <b><code>convergence</code></b> or \n        <b><code>scale</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__repr__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__repr__</span>&nbsp;(<span class=\"sig-arg\">self</span>)</span>\n    <br /><em class=\"fname\">(Representation operator)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Default <code>repr(self)</code>.</p>\n  <dl class=\"fields\">\n    <dt>Overrides:\n        object.__repr__\n        <dd><em class=\"note\">(inherited documentation)</em></dd>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__str__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__str__</span>&nbsp;(<span class=\"sig-arg\">self</span>)</span>\n    <br /><em class=\"fname\">(Informal representation operator)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Default <code>str(self)</code>.</p>\n  <dl class=\"fields\">\n    <dt>Overrides:\n        object.__str__\n        <dd><em class=\"note\">(inherited documentation)</em></dd>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"parse\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">parse</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">strUTM</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Parse a string to a similar <a href=\"pygeodesy.utm.Utm-class.html\" \n  class=\"link\">Utm</a> instance.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>strUTM</code></strong> - The UTM coordinate (<code>str</code>), see function <a \n          href=\"pygeodesy.utm-module.html#parseUTM5\" \n          class=\"link\">parseUTM5</a>.</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional instance name (<code>str</code>), overriding this name.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The similar instance (<a href=\"pygeodesy.utm.Utm-class.html\" \n          class=\"link\">Utm</a>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.utm.UTMError-class.html\">UTMError</a></strong></code> - Invalid <b><code>strUTM</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Functions <a href=\"pygeodesy.ups-module.html#parseUPS5\" \n        class=\"link\">pygeodesy.parseUPS5</a> and <a \n        href=\"pygeodesy.utmups-module.html#parseUTMUPS5\" \n        class=\"link\">pygeodesy.parseUTMUPS5</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"parseUTM\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">parseUTM</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">strUTM</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use method <a href=\"pygeodesy.utm.Utm-class.html#parse\" \n  class=\"link\">Utm.parse</a>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_method</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toEtm\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toEtm</span>&nbsp;(<span class=\"sig-arg\">self</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Copy this UTM to an ETM coordinate.</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd>The ETM coordinate (<a href=\"pygeodesy.etm.Etm-class.html\" \n          class=\"link\">Etm</a>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toLatLon\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toLatLon</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">LatLon</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">eps</span>=<span class=\"sig-default\">2.220446049250313e-16</span>,\n        <span class=\"sig-arg\">unfalse</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">**LatLon_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert this UTM coordinate to an (ellipsoidal) geodetic point.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>LatLon</code></strong> - Optional, ellipsoidal class to return the geodetic point \n          (<code>LatLon</code>) or <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>eps</code></strong> - Optional convergence limit, EPS or above (<code>float</code>).</li>\n        <li><strong class=\"pname\"><code>unfalse</code></strong> - Unfalse <b><code>easting</code></b> and \n          <b><code>northing</code></b> if falsed (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>LatLon_kwds</code></strong> - Optional, additional <b><code>LatLon</code></b> keyword \n          arguments, ignored if <code><b>LatLon</b> is None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>This UTM as (<b><code>LatLon</code></b>) or if \n          <b><code>LatLon</code></b> is <code>None</code>, as <a \n          href=\"pygeodesy.namedTuples.LatLonDatum5Tuple-class.html\" \n          class=\"link\">LatLonDatum5Tuple</a><code>(lat, lon, datum, gamma, \n          scale)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>datum</code></b> or <b><code>LatLon</code></b> is \n        not ellipsoidal.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.utm.UTMError-class.html\">UTMError</a></strong></code> - Invalid meridional radius or H-value.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toRepr\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toRepr</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">prec</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">fmt</span>=<span class=\"sig-default\">'[%s]'</span>,\n        <span class=\"sig-arg\">sep</span>=<span class=\"sig-default\">', '</span>,\n        <span class=\"sig-arg\">B</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">cs</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">**unused</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return a string representation of this UTM coordinate.</p>\n  <p>Note that UTM coordinates are rounded, not truncated (unlike MGRS grid\n  references).</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>prec</code></strong> - Number of (decimal) digits, unstripped (<code>int</code>).</li>\n        <li><strong class=\"pname\"><code>fmt</code></strong> - Enclosing backets format (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>sep</code></strong> - Optional separator between name:value pairs (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>B</code></strong> - Optionally, include latitudinal band (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>cs</code></strong> - Optionally, include meridian convergence and grid scale factor \n          (<code>bool</code> or non-zero <code>int</code> to specify the \n          precison like <b><code>prec</code></b>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>This UTM as a string <code>&quot;[Z:09[band], H:N|S, E:meter, \n          N:meter]&quot;</code> plus <code>&quot;, C:degrees, \n          S:float&quot;</code> if <code><b>cs</b> is True</code> \n          (<code>str</code>).</dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.named._Named-class.html#toRepr\">named._Named.toRepr</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toStr\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toStr</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">prec</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">sep</span>=<span class=\"sig-default\">' '</span>,\n        <span class=\"sig-arg\">B</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">cs</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return a string representation of this UTM coordinate.</p>\n  <p>To distinguish from MGRS grid zone designators, a space is left \n  between the zone and the hemisphere.</p>\n  <p>Note that UTM coordinates are rounded, not truncated (unlike MGRS grid\n  references).</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>prec</code></strong> - Number of (decimal) digits, unstripped (<code>int</code>).</li>\n        <li><strong class=\"pname\"><code>sep</code></strong> - Optional separator to join (<code>str</code>) or \n          <code>None</code> to return an unjoined <code>tuple</code> of \n          <code>str</code>s.</li>\n        <li><strong class=\"pname\"><code>B</code></strong> - Optionally, include latitudinal band (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>cs</code></strong> - Optionally, include meridian convergence and grid scale factor \n          (<code>bool</code> or non-zero <code>int</code> to specify the \n          precison like <b><code>prec</code></b>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>This UTM as a string with <code>zone[band], hemisphere, easting, \n          northing, [convergence, scale]</code> in <code>&quot;00 N|S meter\n          meter&quot;</code> plus <code>&quot; degrees float&quot;</code> \n          if <code><b>cs</b> is True</code> (<code>str</code>).</dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.named._Named-class.html#toStr\">named._Named.toStr</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toUps\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toUps</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">pole</span>=<span class=\"sig-default\">''</span>,\n        <span class=\"sig-arg\">eps</span>=<span class=\"sig-default\">2.220446049250313e-16</span>,\n        <span class=\"sig-arg\">falsed</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">**unused</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert this UTM coordinate to a UPS coordinate.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>pole</code></strong> - Optional top/center of the UPS projection, (<code>str</code>, \n          'N[orth]'|'S[outh]').</li>\n        <li><strong class=\"pname\"><code>eps</code></strong> - Optional convergence limit, EPS or above (<code>float</code>), \n          see method <a href=\"pygeodesy.utm.Utm-class.html#toLatLon\" \n          class=\"link\">Utm.toLatLon</a>.</li>\n        <li><strong class=\"pname\"><code>falsed</code></strong> - If <code>True</code>, false both easting and northing \n          (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The UPS coordinate (<a href=\"pygeodesy.ups.Ups-class.html\" \n          class=\"link\">Ups</a>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toUtm\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toUtm</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">zone</span>,\n        <span class=\"sig-arg\">eps</span>=<span class=\"sig-default\">2.220446049250313e-16</span>,\n        <span class=\"sig-arg\">falsed</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">**unused</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert this UTM coordinate to a different zone.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>zone</code></strong> - New UTM zone (<code>int</code>).</li>\n        <li><strong class=\"pname\"><code>eps</code></strong> - Optional convergence limit, <a href=\"pygeodesy-module.html#EPS\" \n          class=\"link\">EPS</a> or above (<code>float</code>), see method <a\n          href=\"pygeodesy.utm.Utm-class.html#toLatLon\" \n          class=\"link\">Utm.toLatLon</a>.</li>\n        <li><strong class=\"pname\"><code>falsed</code></strong> - If <code>True</code>, fFalse both easting and northing \n          (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The UTM coordinate (<a href=\"pygeodesy.utm.Utm-class.html\" \n          class=\"link\">Utm</a>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"band\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">band</h3>\n  <p>Class <code>property</code> with a <code>.name</code> attribute.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">band(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the <i>latitudinal</i> band (<code>'C'|..|'X'</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">band(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">band</span>)</span>\n        - Set or reset the <i>latitudinal</i> band letter (<code>'C'|..|'X'</code>) \nor <code>None</code> or <code>&quot;&quot;</code> to reset.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"falsed2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">falsed2</h3>\n  <p>Get the easting and northing falsing (<a \n  href=\"pygeodesy.namedTuples.EasNor2Tuple-class.html\" \n  class=\"link\">EasNor2Tuple</a><code>(easting, northing)</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">falsed2(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the easting and northing falsing (<a \nhref=\"pygeodesy.namedTuples.EasNor2Tuple-class.html\" \nclass=\"link\">EasNor2Tuple</a><code>(easting, northing)</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"pole\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">pole</h3>\n  <p>Get the top center of (stereographic) projection, \n  <code>&quot;&quot;</code> always.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">pole(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the top center of (stereographic) projection, <code>&quot;&quot;</code>\nalways.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"zone\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">zone</h3>\n  <p>Get the (longitudinal) zone (<code>int</code>, 1..60).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">zone(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the (longitudinal) zone (<code>int</code>, 1..60).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:21 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.utmups-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.utmups</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        Module&nbsp;utmups\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.utmups-module.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== MODULE DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Module utmups</h1><p class=\"nomargin-top\"></p>\n<p><i>Karney</i>'s UTM and UPS utilities.</p>\n  <p>Functions <a href=\"pygeodesy.utmups-module.html#parseUTMUPS5\" \n  class=\"link\">parseUTMUPS5</a>, <a \n  href=\"pygeodesy.utmups-module.html#toUtmUps8\" class=\"link\">toUtmUps8</a>,\n  <a href=\"pygeodesy.utmups-module.html#UtmUps\" class=\"link\">UtmUps</a> and\n  <a href=\"pygeodesy.utmups-module.html#utmupsZoneBand5\" \n  class=\"link\">utmupsZoneBand5</a> to handle both <i>Universal Transverse \n  Mercator</i> (<a \n  href=\"https://WikiPedia.org/wiki/Universal_Transverse_Mercator_coordinate_system\"\n  target=\"_top\">UTM</a>) and <i>Universal Polar Stereographic</i> (<a \n  href=\"https://WikiPedia.org/wiki/Universal_polar_stereographic_coordinate_system\"\n  target=\"_top\">UPS</a>) coordinates.</p>\n  <p>A pure Python implementation, partially transcoded from C++ class <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1UTMUPS.html\"\n  target=\"_top\">UTMUPS</a> by <i>Charles Karney</i>.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Version:</strong>\n        25.04.14\n      </p>\n</div><!-- ==================== CLASSES ==================== -->\n<a name=\"section-Classes\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Classes</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.utmups.UTMUPSError-class.html\" class=\"summary-name\">UTMUPSError</a><br />\n      Universal Transverse Mercator/Universal Polar Stereographic \n        (UTM/UPS) parse, validate or other issue.\n    </td>\n  </tr>\n</table>\n<!-- ==================== FUNCTIONS ==================== -->\n<a name=\"section-Functions\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Functions</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.utmups-module.html#parseUTMUPS5\" class=\"summary-sig-name\">parseUTMUPS5</a>(<span class=\"summary-sig-arg\">strUTMUPS</span>,\n        <span class=\"summary-sig-arg\">datum</span>=<span class=\"summary-sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"summary-sig-arg\">Utm</span>=<span class=\"summary-sig-default\">&lt;class 'pygeodesy.utm.Utm'&gt;</span>,\n        <span class=\"summary-sig-arg\">Ups</span>=<span class=\"summary-sig-default\">&lt;class 'pygeodesy.ups.Ups'&gt;</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Parse a string representing a UTM or UPS coordinate, consisting of \n      <code>&quot;zone[band] hemisphere/pole easting northing&quot;</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.utmups-module.html#toUtmUps8\" class=\"summary-sig-name\">toUtmUps8</a>(<span class=\"summary-sig-arg\">latlon</span>,\n        <span class=\"summary-sig-arg\">lon</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">datum</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">falsed</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">Utm</span>=<span class=\"summary-sig-default\">&lt;class 'pygeodesy.utm.Utm'&gt;</span>,\n        <span class=\"summary-sig-arg\">Ups</span>=<span class=\"summary-sig-default\">&lt;class 'pygeodesy.ups.Ups'&gt;</span>,\n        <span class=\"summary-sig-arg\">pole</span>=<span class=\"summary-sig-default\">''</span>,\n        <span class=\"summary-sig-arg\">**name_cmoff</span>)</span><br />\n      Convert a lat-/longitude point to a UTM or UPS coordinate.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.utmups-module.html#UtmUps\" class=\"summary-sig-name\">UtmUps</a>(<span class=\"summary-sig-arg\">zone</span>,\n        <span class=\"summary-sig-arg\">hemipole</span>,\n        <span class=\"summary-sig-arg\">easting</span>,\n        <span class=\"summary-sig-arg\">northing</span>,\n        <span class=\"summary-sig-arg\">band</span>=<span class=\"summary-sig-default\">''</span>,\n        <span class=\"summary-sig-arg\">datum</span>=<span class=\"summary-sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"summary-sig-arg\">falsed</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Class-like function to create a UTM/UPS coordinate.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.utmups-module.html#utmupsValidate\" class=\"summary-sig-name\">utmupsValidate</a>(<span class=\"summary-sig-arg\">coord</span>,\n        <span class=\"summary-sig-arg\">falsed</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">MGRS</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">Error</span>=<span class=\"summary-sig-default\">&lt;class 'pygeodesy.utmups.UTMUPSError'&gt;</span>)</span><br />\n      Check a UTM or UPS coordinate.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.utmups-module.html#utmupsValidateOK\" class=\"summary-sig-name\">utmupsValidateOK</a>(<span class=\"summary-sig-arg\">coord</span>,\n        <span class=\"summary-sig-arg\">falsed</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">ok</span>=<span class=\"summary-sig-default\">True</span>)</span><br />\n      Check a UTM or UPS coordinate.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.utmups-module.html#utmupsZoneBand5\" class=\"summary-sig-name\">utmupsZoneBand5</a>(<span class=\"summary-sig-arg\">lat</span>,\n        <span class=\"summary-sig-arg\">lon</span>,\n        <span class=\"summary-sig-arg\">cmoff</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Return the UTM/UPS zone number, Band letter, hemisphere/pole and \n      clipped lat- and longitude for a given location.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== VARIABLES ==================== -->\n<a name=\"section-Variables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Variables</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"__all__\"></a><span class=\"summary-name\">__all__</span> = <code title=\"_ALL_LAZY.utmups\">_ALL_LAZY.utmups</code>\n    </td>\n  </tr>\n</table>\n<!-- ==================== FUNCTION DETAILS ==================== -->\n<a name=\"section-FunctionDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Function Details</span></td>\n</tr>\n</table>\n<a name=\"parseUTMUPS5\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">parseUTMUPS5</span>&nbsp;(<span class=\"sig-arg\">strUTMUPS</span>,\n        <span class=\"sig-arg\">datum</span>=<span class=\"sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"sig-arg\">Utm</span>=<span class=\"sig-default\">&lt;class 'pygeodesy.utm.Utm'&gt;</span>,\n        <span class=\"sig-arg\">Ups</span>=<span class=\"sig-default\">&lt;class 'pygeodesy.ups.Ups'&gt;</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Parse a string representing a UTM or UPS coordinate, consisting of \n  <code>&quot;zone[band] hemisphere/pole easting northing&quot;</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>strUTMUPS</code></strong> - A UTM or UPS coordinate (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>datum</code></strong> - Optional datum to use (<a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>).</li>\n        <li><strong class=\"pname\"><code>Utm</code></strong> - Optional class to return the UTM coordinate (<a \n          href=\"pygeodesy.utm.Utm-class.html\" class=\"link\">Utm</a>) or \n          <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>Ups</code></strong> - Optional class to return the UPS coordinate (<a \n          href=\"pygeodesy.ups.Ups-class.html\" class=\"link\">Ups</a>) or \n          <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <b><code>Utm</code></b> or <b><code>Ups</code></b> \n          <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The UTM or UPS instance (<b><code>Utm</code></b> or \n          <b><code>Ups</code></b>) or a <a \n          href=\"pygeodesy.namedTuples.UtmUps5Tuple-class.html\" \n          class=\"link\">UtmUps5Tuple</a><code>(zone, hemipole, easting, \n          northing, band)</code> if <b><code>Utm</code></b> respectively \n          <b><code>Ups</code></b> or both are <code>None</code>. The \n          <code>hemipole</code> is <code>'N'|'S'</code>, the UTM hemisphere\n          or UPS pole, the UPS projection top/center.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.utmups.UTMUPSError-class.html\">UTMUPSError</a></strong></code> - Invalid <b><code>strUTMUPS</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Functions <a href=\"pygeodesy.utm-module.html#parseUTM5\" \n        class=\"link\">pygeodesy.parseUTM5</a> and <a \n        href=\"pygeodesy.ups-module.html#parseUPS5\" \n        class=\"link\">pygeodesy.parseUPS5</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"toUtmUps8\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toUtmUps8</span>&nbsp;(<span class=\"sig-arg\">latlon</span>,\n        <span class=\"sig-arg\">lon</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">datum</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">falsed</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">Utm</span>=<span class=\"sig-default\">&lt;class 'pygeodesy.utm.Utm'&gt;</span>,\n        <span class=\"sig-arg\">Ups</span>=<span class=\"sig-default\">&lt;class 'pygeodesy.ups.Ups'&gt;</span>,\n        <span class=\"sig-arg\">pole</span>=<span class=\"sig-default\">''</span>,\n        <span class=\"sig-arg\">**name_cmoff</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert a lat-/longitude point to a UTM or UPS coordinate.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>latlon</code></strong> - Latitude (<code>degrees</code>) or an (ellipsoidal) geodetic \n          <code>LatLon</code> point.</li>\n        <li><strong class=\"pname\"><code>lon</code></strong> - Longitude (<code>degrees</code>), required if \n          <b><code>latlon</code></b> is <code>degrees</code>, ignored \n          otherwise.</li>\n        <li><strong class=\"pname\"><code>datum</code></strong> - Optional datum to use this UTM coordinate, overriding the \n          <b><code>latlon</code></b>'s datum (<code>Datum</code>).</li>\n        <li><strong class=\"pname\"><code>falsed</code></strong> - If <code>True</code>, false both easting and northing \n          (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>Utm</code></strong> - Optional class to return the UTM coordinate (<a \n          href=\"pygeodesy.utm.Utm-class.html\" class=\"link\">Utm</a>) or \n          <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>Ups</code></strong> - Optional class to return the UPS coordinate (<a \n          href=\"pygeodesy.ups.Ups-class.html\" class=\"link\">Ups</a>) or \n          <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>pole</code></strong> - Optional top/center of UPS (stereographic) projection \n          (<code>str</code>, <code>'N[orth]'</code> or \n          <code>'S[outh]'</code>).</li>\n        <li><strong class=\"pname\"><code>name_cmoff</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>) and \n          DEPRECATED keyword argument <code><b>cmoff</b>=True</code> to \n          offset the longitude from the zone's central meridian \n          (<code>bool</code>), use <b><code>falsed</code></b> instead and \n          <i>for UTM only</i>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The UTM or UPS coordinate (<b><code>Utm</code></b> respectively \n          <b><code>Ups</code></b>) or a <a \n          href=\"pygeodesy.namedTuples.UtmUps8Tuple-class.html\" \n          class=\"link\">UtmUps8Tuple</a><code>(zone, hemipole, easting, \n          northing, band, datum, gamma, scale)</code> if \n          <b><code>Utm</code></b> respectively <code><b>Ups</b> is \n          None</code> or if <code><b>falsed</b> is False</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.RangeError-class.html\">RangeError</a></strong></code> - If <b><code>lat</code></b> outside the valid UTM or UPS bands or if\n        <b><code>lat</code></b> or <b><code>lon</code></b> outside the \n        valid range and <a href=\"pygeodesy.errors-module.html#rangerrors\" \n        class=\"link\">rangerrors</a> is <code>True</code>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - If <b><code>latlon</code></b> is not ellipsoidal or \n        <b><code>lon</code></b> is missing or <b><code>datum</code></b> is \n        invalid.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.utmups.UTMUPSError-class.html\">UTMUPSError</a></strong></code> - UTM or UPS validation failed.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>lat</code></b> or <b><code>lon</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Functions <a href=\"pygeodesy.utm-module.html#toUtm8\" \n        class=\"link\">pygeodesy.toUtm8</a> and <a \n        href=\"pygeodesy.ups-module.html#toUps8\" \n        class=\"link\">pygeodesy.toUps8</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"UtmUps\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">UtmUps</span>&nbsp;(<span class=\"sig-arg\">zone</span>,\n        <span class=\"sig-arg\">hemipole</span>,\n        <span class=\"sig-arg\">easting</span>,\n        <span class=\"sig-arg\">northing</span>,\n        <span class=\"sig-arg\">band</span>=<span class=\"sig-default\">''</span>,\n        <span class=\"sig-arg\">datum</span>=<span class=\"sig-default\">Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran<code class=\"variable-ellipsis\">...</code></span>,\n        <span class=\"sig-arg\">falsed</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Class-like function to create a UTM/UPS coordinate.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>zone</code></strong> - The UTM zone with/-out <i>longitudinal</i> Band or UPS zone \n          <code>0</code> or <code>&quot;00&quot;</code> with/-out \n          <i>polar</i> Band (<code>str</code> or <code>int</code>).</li>\n        <li><strong class=\"pname\"><code>hemipole</code></strong> - UTM hemisphere or UPS top/center of projection (<code>str</code>,\n          <code>'N[orth]'</code> or <code>'S[outh]'</code>).</li>\n        <li><strong class=\"pname\"><code>easting</code></strong> - Easting, see <b><code>falsed</code></b> (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>northing</code></strong> - Northing, see <b><code>falsed</code></b> (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>band</code></strong> - Optional, UTM <i>latitudinal</i> <code>'C'|'D'|..|'W'|'X'</code> \n          or UPS <i>polar</i> Band letter <code>'A'|'B'|'Y'|'Z'</code> Band\n          letter (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>datum</code></strong> - The coordinate's datum (<a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>).</li>\n        <li><strong class=\"pname\"><code>falsed</code></strong> - If <code>True</code>, both <b><code>easting</code></b> and \n          <b><code>northing</code></b> are falsed (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <a href=\"pygeodesy.utm.Utm-class.html\" \n          class=\"link\">Utm</a> or <a href=\"pygeodesy.ups.Ups-class.html\" \n          class=\"link\">Ups</a> <code><b>name</b>=NN</code> \n          (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>New UTM or UPS instance (<a href=\"pygeodesy.utm.Utm-class.html\" \n          class=\"link\">Utm</a> or <a href=\"pygeodesy.ups.Ups-class.html\" \n          class=\"link\">Ups</a>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>datum</code></b>.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.utmups.UTMUPSError-class.html\">UTMUPSError</a></strong></code> - UTM or UPS validation failed.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Classes <a href=\"pygeodesy.utm.Utm-class.html\" class=\"link\">Utm</a>\n        and <a href=\"pygeodesy.ups.Ups-class.html\" class=\"link\">Ups</a> and\n        <i>Karney</i>'s <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1UTMUPS.html\"\n        target=\"_top\">UTMUPS</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"utmupsValidate\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">utmupsValidate</span>&nbsp;(<span class=\"sig-arg\">coord</span>,\n        <span class=\"sig-arg\">falsed</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">MGRS</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">Error</span>=<span class=\"sig-default\">&lt;class 'pygeodesy.utmups.UTMUPSError'&gt;</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Check a UTM or UPS coordinate.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>coord</code></strong> - The UTM or UPS coordinate (<a href=\"pygeodesy.utm.Utm-class.html\"\n          class=\"link\">Utm</a>, <a href=\"pygeodesy.etm.Etm-class.html\" \n          class=\"link\">Etm</a>, <a href=\"pygeodesy.ups.Ups-class.html\" \n          class=\"link\">Ups</a> or <code>5+Tuple</code>).</li>\n        <li><strong class=\"pname\"><code>falsed</code></strong> - If <code>True</code>, easting and northing are falsed in the \n          <code><b>coord</b> 5+Tuple</code> (<code>bool</code>), ignored \n          otherwise.</li>\n        <li><strong class=\"pname\"><code>MGRS</code></strong> - Increase easting and northing ranges (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>Error</code></strong> - Optional error to raise, overriding the default (<a \n          href=\"pygeodesy.utmups.UTMUPSError-class.html\" \n          class=\"link\">UTMUPSError</a>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>None</code> if validation passed.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>Error</strong></code> - Validation failed.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.utmups-module.html#utmupsValidateOK\" \n        class=\"link\">utmupsValidateOK</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"utmupsValidateOK\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">utmupsValidateOK</span>&nbsp;(<span class=\"sig-arg\">coord</span>,\n        <span class=\"sig-arg\">falsed</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">ok</span>=<span class=\"sig-default\">True</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Check a UTM or UPS coordinate.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>coord</code></strong> - The UTM or UPS coordinate (<a href=\"pygeodesy.utm.Utm-class.html\"\n          class=\"link\">Utm</a>, <a href=\"pygeodesy.ups.Ups-class.html\" \n          class=\"link\">Ups</a> or <code>5+Tuple</code>).</li>\n        <li><strong class=\"pname\"><code>falsed</code></strong> - If <code>True</code>, easting and northing are falsed in the \n          <code><b>coord</b> 5+Tuple</code> (<code>bool</code>), ignored \n          otherwise.</li>\n        <li><strong class=\"pname\"><code>ok</code></strong> - Result to return if validation passed (<b><code>ok</code></b>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><b><code>ok</code></b> if validation passed, otherwise the <a \n          href=\"pygeodesy.utmups.UTMUPSError-class.html\" \n          class=\"link\">UTMUPSError</a>.</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.utmups-module.html#utmupsValidate\" \n        class=\"link\">utmupsValidate</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"utmupsZoneBand5\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">utmupsZoneBand5</span>&nbsp;(<span class=\"sig-arg\">lat</span>,\n        <span class=\"sig-arg\">lon</span>,\n        <span class=\"sig-arg\">cmoff</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the UTM/UPS zone number, Band letter, hemisphere/pole and \n  clipped lat- and longitude for a given location.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat</code></strong> - Latitude in degrees (<code>scalar</code> or <code>str</code>).</li>\n        <li><strong class=\"pname\"><code>lon</code></strong> - Longitude in degrees (<code>scalar</code> or <code>str</code>).</li>\n        <li><strong class=\"pname\"><code>cmoff</code></strong> - If <code>True</code>, offset longitude from the zone's central \n          meridian, <i>for UTM only</i> (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.namedTuples.UtmUpsLatLon5Tuple-class.html\" \n          class=\"link\">UtmUpsLatLon5Tuple</a><code>(zone, band, hemipole, \n          lat, lon)</code> where <code>hemipole</code> is \n          <code>'N'|'S'</code>, the UTM hemisphere or UPS pole, projection \n          top/center.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.RangeError-class.html\">RangeError</a></strong></code> - If <b><code>lat</code></b> outside the valid UTM or UPS bands or if\n        <b><code>lat</code></b> or <b><code>lon</code></b> outside the \n        valid range and <a href=\"pygeodesy.errors-module.html#rangerrors\" \n        class=\"link\">rangerrors</a> is <code>True</code>.</li>\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>lat</code></b> or <b><code>lon</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Functions <a href=\"pygeodesy.utm-module.html#utmZoneBand5\" \n        class=\"link\">pygeodesy.utmZoneBand5</a> and <a \n        href=\"pygeodesy.ups-module.html#upsZoneBand5\" \n        class=\"link\">pygeodesy.upsZoneBand5</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.utmups.UTMUPSError-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.utmups.UTMUPSError</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.utmups-module.html\">Module&nbsp;utmups</a> ::\n        Class&nbsp;UTMUPSError\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.utmups.UTMUPSError-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class UTMUPSError</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n              object --+                    \n                       |                    \nexceptions.BaseException --+                \n                           |                \n        exceptions.Exception --+            \n                               |            \n        exceptions.StandardError --+        \n                                   |        \n               exceptions.ValueError --+    \n                                       |    \n                      errors._ValueError --+\n                                           |\n                                          <strong class=\"uidshort\">UTMUPSError</strong>\n</pre>\n\n<hr />\n<p>Universal Transverse Mercator/Universal Polar Stereographic (UTM/UPS) \n  parse, validate or other issue.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>errors._ValueError</code></b>:\n      <code>__init__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.ValueError</code></b>:\n      <code>__new__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.BaseException</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getslice__</code>,\n      <code>__reduce__</code>,\n      <code>__repr__</code>,\n      <code>__setattr__</code>,\n      <code>__setstate__</code>,\n      <code>__str__</code>,\n      <code>__unicode__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__format__</code>,\n      <code>__hash__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.BaseException</code></b>:\n      <code>args</code>,\n      <code>message</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:21 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.utmupsBase-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.utmupsBase</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        Module&nbsp;utmupsBase\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.utmupsBase-module.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== MODULE DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Module utmupsBase</h1><p class=\"nomargin-top\"></p>\n<p>(INTERNAL) Private class <code>UtmUpsBase</code>, functions and \n  constants for modules <a href=\"pygeodesy.epsg-module.html\" \n  class=\"link\">epsg</a>, <a href=\"pygeodesy.etm-module.html\" \n  class=\"link\">etm</a>, <a href=\"pygeodesy.mgrs-module.html\" \n  class=\"link\">mgrs</a>, <a href=\"pygeodesy.ups-module.html\" \n  class=\"link\">ups</a> and <a href=\"pygeodesy.utm-module.html\" \n  class=\"link\">utm</a>.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Version:</strong>\n        25.05.12\n      </p>\n</div><!-- ==================== CLASSES ==================== -->\n<a name=\"section-Classes\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Classes</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html\" class=\"summary-name\">UtmUpsBase</a><br />\n      (INTERNAL) Base class for <a href=\"pygeodesy.utm.Utm-class.html\" \n        class=\"link\">Utm</a> and <a href=\"pygeodesy.ups.Ups-class.html\" \n        class=\"link\">Ups</a> coordinates.\n    </td>\n  </tr>\n</table>\n<!-- ==================== VARIABLES ==================== -->\n<a name=\"section-Variables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Variables</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"__all__\"></a><span class=\"summary-name\">__all__</span> = <code title=\"_ALL_LAZY.utmupsBase\">_ALL_LAZY.utmupsBase</code>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.utmupsBase.UtmUpsBase-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.utmupsBase.UtmUpsBase</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.utmupsBase-module.html\">Module&nbsp;utmupsBase</a> ::\n        Class&nbsp;UtmUpsBase\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class UtmUpsBase</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+        \n           |        \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n               |    \n<a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+\n                   |\n                  <strong class=\"uidshort\">UtmUpsBase</strong>\n</pre>\n\n<dl><dt>Known Subclasses:</dt>\n<dd>\n      <ul class=\"subclass-list\">\n<li><a href=\"pygeodesy.utm.Utm-class.html\">utm.Utm</a></li><li>, <a href=\"pygeodesy.ups.Ups-class.html\">ups.Ups</a></li>  </ul>\n</dd></dl>\n\n<hr />\n<p>(INTERNAL) Base class for <a href=\"pygeodesy.utm.Utm-class.html\" \n  class=\"link\">Utm</a> and <a href=\"pygeodesy.ups.Ups-class.html\" \n  class=\"link\">Ups</a> coordinates.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">easting</span>,\n        <span class=\"summary-sig-arg\">northing</span>,\n        <span class=\"summary-sig-arg\">band</span>=<span class=\"summary-sig-default\">''</span>,\n        <span class=\"summary-sig-arg\">datum</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">falsed</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">gamma</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">scale</span>=<span class=\"summary-sig-default\">None</span>)</span><br />\n      (INTERNAL) New <a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html\" \n      class=\"link\">UtmUpsBase</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html#__repr__\" class=\"summary-sig-name\">__repr__</a>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Default <code>repr(self)</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html#__str__\" class=\"summary-sig-name\">__str__</a>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Default <code>str(self)</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html#eastingnorthing2\" class=\"summary-sig-name\">eastingnorthing2</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">falsed</span>=<span class=\"summary-sig-default\">True</span>)</span><br />\n      Return easting and northing, falsed or unfalsed.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html#latFootPoint\" class=\"summary-sig-name\">latFootPoint</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">northing</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">lat0</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">makris</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Compute the foot-point latitude in <code>degrees</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html#phiFootPoint\" class=\"summary-sig-name\">phiFootPoint</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">northing</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">lat0</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">makris</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Compute the foot-point latitude in <code>radians</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html#to2en\" class=\"summary-sig-name\">to2en</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">falsed</span>=<span class=\"summary-sig-default\">True</span>)</span><br />\n      DEPRECATED, use method <code>eastingnorthing2</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html#toEpsg\" class=\"summary-sig-name\">toEpsg</a>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Determine the <b>EPSG (European Petroleum Survey Group)</b> code.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html#toMgrs\" class=\"summary-sig-name\">toMgrs</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">center</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Convert this UTM/UPS coordinate to an MGRS grid reference.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#others\">others</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#toStr\">toStr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html#convergence\" class=\"summary-name\">convergence</a><br />\n      DEPRECATED, use property <code>gamma</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html#datum\" class=\"summary-name\">datum</a><br />\n      Class <code>property</code> with a <code>.name</code> attribute.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html#easting\" class=\"summary-name\">easting</a><br />\n      Get the easting (<code>meter</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html#eastingnorthing\" class=\"summary-name\">eastingnorthing</a><br />\n      Get easting and northing (<a \n      href=\"pygeodesy.namedTuples.EasNor2Tuple-class.html\" \n      class=\"link\">EasNor2Tuple</a><code>(easting, northing)</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html#falsed\" class=\"summary-name\">falsed</a><br />\n      Are easting and northing falsed (<code>bool</code>)?\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html#falsed2\" class=\"summary-name\">falsed2</a><br />\n      <i>Must be overloaded</i>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html#gamma\" class=\"summary-name\">gamma</a><br />\n      Get the meridian convergence (<code>degrees</code>) or \n      <code>None</code> if not available.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html#hemisphere\" class=\"summary-name\">hemisphere</a><br />\n      Get the hemisphere (<code>str</code>, 'N'|'S').\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html#northing\" class=\"summary-name\">northing</a><br />\n      Get the northing (<code>meter</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html#scale\" class=\"summary-name\">scale</a><br />\n      Get the grid scale (<code>float</code>) or <code>None</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html#scale0\" class=\"summary-name\">scale0</a><br />\n      Get the central scale factor (<code>float</code>).\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">easting</span>,\n        <span class=\"sig-arg\">northing</span>,\n        <span class=\"sig-arg\">band</span>=<span class=\"sig-default\">''</span>,\n        <span class=\"sig-arg\">datum</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">falsed</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">gamma</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">scale</span>=<span class=\"sig-default\">None</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>(INTERNAL) New <a href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html\" \n  class=\"link\">UtmUpsBase</a>.</p>\n  <dl class=\"fields\">\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__repr__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__repr__</span>&nbsp;(<span class=\"sig-arg\">self</span>)</span>\n    <br /><em class=\"fname\">(Representation operator)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Default <code>repr(self)</code>.</p>\n  <dl class=\"fields\">\n    <dt>Overrides:\n        object.__repr__\n        <dd><em class=\"note\">(inherited documentation)</em></dd>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__str__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__str__</span>&nbsp;(<span class=\"sig-arg\">self</span>)</span>\n    <br /><em class=\"fname\">(Informal representation operator)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Default <code>str(self)</code>.</p>\n  <dl class=\"fields\">\n    <dt>Overrides:\n        object.__str__\n        <dd><em class=\"note\">(inherited documentation)</em></dd>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"eastingnorthing2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">eastingnorthing2</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">falsed</span>=<span class=\"sig-default\">True</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return easting and northing, falsed or unfalsed.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>falsed</code></strong> - If <code>True</code>, return easting and northing falsed, \n          otherwise unfalsed (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>An <a href=\"pygeodesy.namedTuples.EasNor2Tuple-class.html\" \n          class=\"link\">EasNor2Tuple</a><code>(easting, northing)</code> in \n          <code>meter</code>.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"latFootPoint\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">latFootPoint</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">northing</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">lat0</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">makris</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the foot-point latitude in <code>degrees</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>northing</code></strong> - Northing (<code>meter</code>, same units this ellipsoid's axes), \n          overriding this northing, <i>unfalsed</i>.</li>\n        <li><strong class=\"pname\"><code>lat0</code></strong> - Geodetic latitude of the meridian's origin \n          (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>makris</code></strong> - If <code>True</code>, use <code>Makris</code>' formula, otherwise\n          <code>PyGeodetics</code>'.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Foot-point latitude (<code>degrees</code>).</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"https://GitHub.com/paarnes/pygeodetics\" \n        target=\"_top\">PyGeodetics</a>, <a \n        href=\"https://GitHub.com/APRIL-ZJU/clins/blob/master/include/utils/gps_convert_utils.h#L143\"\n        target=\"_top\">FootpointLatitude</a>, <a \n        href=\"https://www.TandFonline.com/doi/abs/10.1179/sre.1982.26.205.345\"\n        target=\"_top\">Makris</a> and <a \n        href=\"https://Geomatics.CC/legacy-files/mercator.pdf\" \n        target=\"_top\">Geomatics' Mercator, page 60</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"phiFootPoint\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">phiFootPoint</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">northing</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">lat0</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">makris</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the foot-point latitude in <code>radians</code>.</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd>Foot-point latitude (<code>radians</code>).</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <a \n        href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html#latFootPoint\" \n        class=\"link\">latFootPoint</a> for further details.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"to2en\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">to2en</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">falsed</span>=<span class=\"sig-default\">True</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use method <code>eastingnorthing2</code>.</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd>An <a href=\"pygeodesy.namedTuples.EasNor2Tuple-class.html\" \n          class=\"link\">EasNor2Tuple</a><code>(easting, northing)</code>.</dd>\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_method</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toEpsg\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toEpsg</span>&nbsp;(<span class=\"sig-arg\">self</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Determine the <b>EPSG (European Petroleum Survey Group)</b> code.</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd><code>EPSG</code> code (<code>int</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.epsg.EPSGError-class.html\">EPSGError</a></strong></code> - See <a href=\"pygeodesy.epsg.Epsg-class.html\" class=\"link\">Epsg</a>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toMgrs\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toMgrs</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">center</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert this UTM/UPS coordinate to an MGRS grid reference.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>center</code></strong> - If <code>True</code>, <i>un</i>-center this UTM or UPS to its \n          <code>lowerleft</code> (<code>bool</code>) or by \n          <code><b>center</b> meter</code> (<code>scalar</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The MGRS grid reference (<a href=\"pygeodesy.mgrs.Mgrs-class.html\"\n          class=\"link\">Mgrs</a>).</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.mgrs-module.html#toMgrs\" \n        class=\"link\">pygeodesy.toMgrs</a> in module <a \n        href=\"pygeodesy.mgrs-module.html\" class=\"link\">mgrs</a> for more \n        details.\n      </p>\n      <p><strong>Note:</strong>\n        If not specified, the <i>latitudinal</i> <code>band</code> is \n        computed from the (geodetic) latitude and the <code>datum</code>.\n      </p>\n</div></td></tr></table>\n</div>\n<br />\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"convergence\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">convergence</h3>\n  <p>DEPRECATED, use property <code>gamma</code>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">convergence(<span class=\"summary-sig-arg\">self</span>)</span>\n        - DEPRECATED, use property <code>gamma</code>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"datum\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">datum</h3>\n  <p>Class <code>property</code> with a <code>.name</code> attribute.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">datum(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the datum (<a href=\"pygeodesy.datums.Datum-class.html\" \nclass=\"link\">Datum</a>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">datum(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">datum</span>)</span>\n        - Set the (ellipsoidal) datum <a href=\"pygeodesy.datums.Datum-class.html\" \nclass=\"link\">Datum</a>, <a href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\"\nclass=\"link\">Ellipsoid</a>, <a \nhref=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \nclass=\"link\">Ellipsoid2</a> or <a \nhref=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \nclass=\"link\">a_f2Tuple</a>).\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"easting\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">easting</h3>\n  <p>Get the easting (<code>meter</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">easting(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the easting (<code>meter</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"eastingnorthing\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">eastingnorthing</h3>\n  <p>Get easting and northing (<a \n  href=\"pygeodesy.namedTuples.EasNor2Tuple-class.html\" \n  class=\"link\">EasNor2Tuple</a><code>(easting, northing)</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">eastingnorthing(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get easting and northing (<a \nhref=\"pygeodesy.namedTuples.EasNor2Tuple-class.html\" \nclass=\"link\">EasNor2Tuple</a><code>(easting, northing)</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"falsed\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">falsed</h3>\n  <p>Are easting and northing falsed (<code>bool</code>)?</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">falsed(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Are easting and northing falsed (<code>bool</code>)?\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"falsed2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">falsed2</h3>\n  <p><i>Must be overloaded</i>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">falsed2(<span class=\"summary-sig-arg\">self</span>)</span>\n        - <i>Must be overloaded</i>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"gamma\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">gamma</h3>\n  <p>Get the meridian convergence (<code>degrees</code>) or \n  <code>None</code> if not available.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">gamma(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the meridian convergence (<code>degrees</code>) or <code>None</code> if\nnot available.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"hemisphere\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">hemisphere</h3>\n  <p>Get the hemisphere (<code>str</code>, 'N'|'S').</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">hemisphere(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the hemisphere (<code>str</code>, 'N'|'S').\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"northing\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">northing</h3>\n  <p>Get the northing (<code>meter</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">northing(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the northing (<code>meter</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"scale\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">scale</h3>\n  <p>Get the grid scale (<code>float</code>) or <code>None</code>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">scale(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the grid scale (<code>float</code>) or <code>None</code>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"scale0\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">scale0</h3>\n  <p>Get the central scale factor (<code>float</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">scale0(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the central scale factor (<code>float</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:21 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.vector2d-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.vector2d</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        Module&nbsp;vector2d\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.vector2d-module.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== MODULE DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Module vector2d</h1><p class=\"nomargin-top\"></p>\n<p>2- or 3-D vectorial functions <a \n  href=\"pygeodesy.vector2d-module.html#circin6\" class=\"link\">circin6</a>, \n  <a href=\"pygeodesy.vector2d-module.html#circum3\" \n  class=\"link\">circum3</a>, <a \n  href=\"pygeodesy.vector2d-module.html#circum4_\" class=\"link\">circum4_</a>,\n  <a href=\"pygeodesy.vector3d-module.html#iscolinearWith\" \n  class=\"link\">iscolinearWith</a>, <a \n  href=\"pygeodesy.vector2d-module.html#meeus2\" class=\"link\">meeus2</a>, <a \n  href=\"pygeodesy.vector2d-module.html#radii11\" class=\"link\">radii11</a>, \n  <a href=\"pygeodesy.vector2d-module.html#soddy4\" class=\"link\">soddy4</a>, \n  <a href=\"pygeodesy.vector2d-module.html#triaxum5\" \n  class=\"link\">triaxum5</a> and <a \n  href=\"pygeodesy.vector2d-module.html#trilaterate2d2\" \n  class=\"link\">trilaterate2d2</a>.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Note:</strong>\n        Functions <a href=\"pygeodesy.vector2d-module.html#circin6\" \n        class=\"link\">circin6</a>, <a \n        href=\"pygeodesy.vector2d-module.html#circum3\" \n        class=\"link\">circum3</a>, <a \n        href=\"pygeodesy.vector2d-module.html#circum4_\" \n        class=\"link\">circum4_</a>, <a \n        href=\"pygeodesy.vector2d-module.html#soddy4\" \n        class=\"link\">soddy4</a> and <a \n        href=\"pygeodesy.vector2d-module.html#triaxum5\" \n        class=\"link\">triaxum5</a> require <a \n        href=\"numpyhttps://PyPI.org/project/numpy&gt;\" \n        target=\"_top\">numpyhttps://PyPI.org/project/numpy&gt;</a> version \n        1.10 or newer to be installed.\n      </p>\n      <p><strong>Version:</strong>\n        26.02.27\n      </p>\n</div><!-- ==================== CLASSES ==================== -->\n<a name=\"section-Classes\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Classes</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.vector2d.Circin6Tuple-class.html\" class=\"summary-name\">Circin6Tuple</a><br />\n      6-Tuple <code>(radius, center, deltas, cA, cB, cC)</code> with the \n        <code>radius</code>, the trilaterated <code>center</code> and \n        contact points of the <i>inscribed</i> aka <i>In- circle</i> of a \n        triangle.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.vector2d.Circum3Tuple-class.html\" class=\"summary-name\">Circum3Tuple</a><br />\n      3-Tuple <code>(radius, center, deltas)</code> with the \n        <code>circumradius</code> and trilaterated \n        <code>circumcenter</code> of the <code>circumcircle</code> through \n        3 points (aka {Meeus}' Type II circle) or the <code>radius</code> \n        and <code>center</code> of the smallest <i>Meeus</i>' Type I \n        circle.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.vector2d.Circum4Tuple-class.html\" class=\"summary-name\">Circum4Tuple</a><br />\n      4-Tuple <code>(radius, center, rank, residuals)</code> with \n        <code>radius</code> and <code>center</code> of a sphere \n        <i>least-squares</i> fitted through given points and the \n        <code>rank</code> and <code>residuals</code> -if any- from <a \n        href=\"https://NumPy.org/doc/stable/reference/generated/numpy.linalg.lstsq.html\"\n        target=\"_top\">numpy.linalg.lstsq</a>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.vector2d.Meeus2Tuple-class.html\" class=\"summary-name\">Meeus2Tuple</a><br />\n      2-Tuple <code>(radius, Type)</code> with <code>radius</code> and \n        <i>Meeus</i>' <code>Type</code> of the smallest circle \n        <i>containing</i> 3 points.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.vector2d.Radii11Tuple-class.html\" class=\"summary-name\">Radii11Tuple</a><br />\n      11-Tuple <code>(rA, rB, rC, cR, rIn, riS, roS, a, b, c, s)</code> \n        with the <code>Tangent</code> circle radii <code>rA</code>, \n        <code>rB</code> and <code>rC</code>, the <code>circumradius</code> \n        <code>cR</code>, the <code>Incircle</code> radius <code>rIn</code> \n        aka <code>inradius</code>, the inner and outer <i>Soddy</i> circle \n        radii <code>riS</code> and <code>roS</code>, the sides \n        <code>a</code>, <code>b</code> and <code>c</code> and \n        semi-perimeter <code>s</code> of a triangle, all in \n        <code>meter</code> conventionally.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.vector2d.Soddy4Tuple-class.html\" class=\"summary-name\">Soddy4Tuple</a><br />\n      4-Tuple <code>(radius, center, deltas, outer)</code> with \n        <code>radius</code> and (trilaterated) <code>center</code> of the \n        <i>inner</i> <i>Soddy</i> circle and the radius of the \n        <code>outer</code> <i>Soddy</i> circle.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.vector2d.Triaxum5Tuple-class.html\" class=\"summary-name\">Triaxum5Tuple</a><br />\n      5-Tuple <code>(a, b, c, rank, residuals)</code> with the \n        (unordered) triaxial radii <code>a</code>, <code>b</code> and \n        <code>c</code> of an ellipsoid <i>least-squares</i> fitted through \n        given points and the <code>rank</code> and <code>residuals</code> \n        -if any- from <a \n        href=\"https://NumPy.org/doc/stable/reference/generated/numpy.linalg.lstsq.html\"\n        target=\"_top\">numpy.linalg.lstsq</a>.\n    </td>\n  </tr>\n</table>\n<!-- ==================== FUNCTIONS ==================== -->\n<a name=\"section-Functions\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Functions</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.vector2d-module.html#circin6\" class=\"summary-sig-name\">circin6</a>(<span class=\"summary-sig-arg\">point1</span>,\n        <span class=\"summary-sig-arg\">point2</span>,\n        <span class=\"summary-sig-arg\">point3</span>,\n        <span class=\"summary-sig-arg\">eps</span>=<span class=\"summary-sig-default\">8.881784197001252e-16</span>,\n        <span class=\"summary-sig-arg\">useZ</span>=<span class=\"summary-sig-default\">True</span>)</span><br />\n      Return the radius and center of the <i>inscribed</i> aka \n      <i>Incircle</i> of a (2- or 3-D) triangle.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.vector2d-module.html#circum3\" class=\"summary-sig-name\">circum3</a>(<span class=\"summary-sig-arg\">point1</span>,\n        <span class=\"summary-sig-arg\">point2</span>,\n        <span class=\"summary-sig-arg\">point3</span>,\n        <span class=\"summary-sig-arg\">circum</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">eps</span>=<span class=\"summary-sig-default\">8.881784197001252e-16</span>,\n        <span class=\"summary-sig-arg\">useZ</span>=<span class=\"summary-sig-default\">True</span>)</span><br />\n      Return the radius and center of the smallest circle <i>through</i> or\n      <i>containing</i> three (2- or 3-D) points.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.vector2d-module.html#circum4\" class=\"summary-sig-name\">circum4</a>(<span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">useZ</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">**Vector_and_kwds</span>)</span><br />\n      Best-fit a sphere through three or more (3-D) points.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.vector2d-module.html#circum4_\" class=\"summary-sig-name\">circum4_</a>(<span class=\"summary-sig-arg\">*points</span>,\n        <span class=\"summary-sig-arg\">**useZ_Vector_and_kwds</span>)</span><br />\n      Best-fit a sphere through three or more (3-D) positional points.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.vector2d-module.html#meeus2\" class=\"summary-sig-name\">meeus2</a>(<span class=\"summary-sig-arg\">point1</span>,\n        <span class=\"summary-sig-arg\">point2</span>,\n        <span class=\"summary-sig-arg\">point3</span>,\n        <span class=\"summary-sig-arg\">circum</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">useZ</span>=<span class=\"summary-sig-default\">True</span>)</span><br />\n      Return the radius and <i>Meeus</i>' Type of the smallest circle \n      <i>through</i> or <i>containing</i> three (2- or 3-D) points.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.vector2d-module.html#radii11\" class=\"summary-sig-name\">radii11</a>(<span class=\"summary-sig-arg\">point1</span>,\n        <span class=\"summary-sig-arg\">point2</span>,\n        <span class=\"summary-sig-arg\">point3</span>,\n        <span class=\"summary-sig-arg\">useZ</span>=<span class=\"summary-sig-default\">True</span>)</span><br />\n      Return the radii of the <code>In-</code>, <i>Soddy</i> and \n      <code>Tangent</code> circles of a (2- or 3-D) triangle.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.vector2d-module.html#soddy4\" class=\"summary-sig-name\">soddy4</a>(<span class=\"summary-sig-arg\">point1</span>,\n        <span class=\"summary-sig-arg\">point2</span>,\n        <span class=\"summary-sig-arg\">point3</span>,\n        <span class=\"summary-sig-arg\">eps</span>=<span class=\"summary-sig-default\">8.881784197001252e-16</span>,\n        <span class=\"summary-sig-arg\">useZ</span>=<span class=\"summary-sig-default\">True</span>)</span><br />\n      Return the radius and center of the <code>inner</code> <i>Soddy</i> \n      circle of a (2- or 3-D) triangle.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.vector2d-module.html#triaxum5\" class=\"summary-sig-name\">triaxum5</a>(<span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">useZ</span>=<span class=\"summary-sig-default\">True</span>)</span><br />\n      Best-fit a triaxial ellipsoid through three or more (3-D) points.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.vector2d-module.html#trilaterate2d2\" class=\"summary-sig-name\">trilaterate2d2</a>(<span class=\"summary-sig-arg\">x1</span>,\n        <span class=\"summary-sig-arg\">y1</span>,\n        <span class=\"summary-sig-arg\">radius1</span>,\n        <span class=\"summary-sig-arg\">x2</span>,\n        <span class=\"summary-sig-arg\">y2</span>,\n        <span class=\"summary-sig-arg\">radius2</span>,\n        <span class=\"summary-sig-arg\">x3</span>,\n        <span class=\"summary-sig-arg\">y3</span>,\n        <span class=\"summary-sig-arg\">radius3</span>,\n        <span class=\"summary-sig-arg\">eps</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**Vector_and_kwds</span>)</span><br />\n      Trilaterate three circles, each given as a (2-D) center and a radius.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== VARIABLES ==================== -->\n<a name=\"section-Variables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Variables</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"__all__\"></a><span class=\"summary-name\">__all__</span> = <code title=\"_ALL_LAZY.vector2d\">_ALL_LAZY.vector2d</code>\n    </td>\n  </tr>\n</table>\n<!-- ==================== FUNCTION DETAILS ==================== -->\n<a name=\"section-FunctionDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Function Details</span></td>\n</tr>\n</table>\n<a name=\"circin6\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">circin6</span>&nbsp;(<span class=\"sig-arg\">point1</span>,\n        <span class=\"sig-arg\">point2</span>,\n        <span class=\"sig-arg\">point3</span>,\n        <span class=\"sig-arg\">eps</span>=<span class=\"sig-default\">8.881784197001252e-16</span>,\n        <span class=\"sig-arg\">useZ</span>=<span class=\"sig-default\">True</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the radius and center of the <i>inscribed</i> aka \n  <i>Incircle</i> of a (2- or 3-D) triangle.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>point1</code></strong> - First point (<code>Cartesian</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <code>Vector3Tuple</code>, \n          <code>Vector4Tuple</code> or <code>Vector2Tuple</code> if \n          <code><b>useZ</b>=False</code>).</li>\n        <li><strong class=\"pname\"><code>point2</code></strong> - Second point (<code>Cartesian</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <code>Vector3Tuple</code>, \n          <code>Vector4Tuple</code> or <code>Vector2Tuple</code> if \n          <code><b>useZ</b>=False</code>).</li>\n        <li><strong class=\"pname\"><code>point3</code></strong> - Third point (<code>Cartesian</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <code>Vector3Tuple</code>, \n          <code>Vector4Tuple</code> or <code>Vector2Tuple</code> if \n          <code><b>useZ</b>=False</code>).</li>\n        <li><strong class=\"pname\"><code>eps</code></strong> - Tolerance for function <a \n          href=\"pygeodesy.vector3d-module.html#trilaterate3d2\" \n          class=\"link\">pygeodesy.trilaterate3d2</a> if <code><b>useZ</b> is\n          True</code> else <a \n          href=\"pygeodesy.vector2d-module.html#trilaterate2d2\" \n          class=\"link\">pygeodesy.trilaterate2d2</a>.</li>\n        <li><strong class=\"pname\"><code>useZ</code></strong> - If <code>True</code>, use the Z components, otherwise force \n          <code>z=INT0</code> (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><a href=\"pygeodesy.vector2d.Circin6Tuple-class.html\" \n          class=\"link\">Circin6Tuple</a><code>(radius, center, deltas, cA, \n          cB, cC)</code>.  The <code>center</code> and contact points \n          <code>cA</code>, <code>cB</code> and <code>cC</code>, each an \n          instance of <b><code>point1</code></b>'s (sub-)class, are \n          co-planar with the three given points.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ImportError</strong></code> - Package <code>numpy</code> not found, not installed or older than \n        version 1.10 and <code><b>useZ</b> is True</code>.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.IntersectionError-class.html\">IntersectionError</a></strong></code> - Near-coincident or -colinear points or a trilateration or \n        <code>numpy</code> issue.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>point1</code></b>, <b><code>point2</code></b> or \n        <b><code>point3</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Functions <a href=\"pygeodesy.vector2d-module.html#radii11\" \n        class=\"link\">radii11</a> and <a \n        href=\"pygeodesy.vector2d-module.html#circum3\" \n        class=\"link\">circum3</a>, <a \n        href=\"https://MathWorld.Wolfram.com/ContactTriangle.html\" \n        target=\"_top\">Contact Triangle</a> and <a \n        href=\"https://MathWorld.Wolfram.com/Incircle.html\" \n        target=\"_top\">Incircle</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"circum3\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">circum3</span>&nbsp;(<span class=\"sig-arg\">point1</span>,\n        <span class=\"sig-arg\">point2</span>,\n        <span class=\"sig-arg\">point3</span>,\n        <span class=\"sig-arg\">circum</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">eps</span>=<span class=\"sig-default\">8.881784197001252e-16</span>,\n        <span class=\"sig-arg\">useZ</span>=<span class=\"sig-default\">True</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the radius and center of the smallest circle <i>through</i> or \n  <i>containing</i> three (2- or 3-D) points.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>point1</code></strong> - First point (<code>Cartesian</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <code>Vector3Tuple</code> or \n          <code>Vector4Tuple</code>).</li>\n        <li><strong class=\"pname\"><code>point2</code></strong> - Second point (<code>Cartesian</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <code>Vector3Tuple</code> or \n          <code>Vector4Tuple</code>).</li>\n        <li><strong class=\"pname\"><code>point3</code></strong> - Third point (<code>Cartesian</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <code>Vector3Tuple</code> or \n          <code>Vector4Tuple</code>).</li>\n        <li><strong class=\"pname\"><code>circum</code></strong> - If <code>True</code>, return the <code>circumradius</code> and \n          <code>circumcenter</code> always, ignoring the <i>Meeus</i>' Type\n          I case (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>eps</code></strong> - Tolerance for function <a \n          href=\"pygeodesy.vector3d-module.html#trilaterate3d2\" \n          class=\"link\">pygeodesy.trilaterate3d2</a> if <code><b>useZ</b> is\n          True</code> else <a \n          href=\"pygeodesy.vector2d-module.html#trilaterate2d2\" \n          class=\"link\">pygeodesy.trilaterate2d2</a>.</li>\n        <li><strong class=\"pname\"><code>useZ</code></strong> - If <code>True</code>, use the Z components, otherwise force \n          <code>z=INT0</code> (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.vector2d.Circum3Tuple-class.html\" \n          class=\"link\">Circum3Tuple</a><code>(radius, center, \n          deltas)</code>.  The <code>center</code>, an instance of \n          <b><code>point1</code></b>'s (sub-)class, is co-planar with the \n          three given points.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ImportError</strong></code> - Package <code>numpy</code> not found, not installed or older than \n        version 1.10 and <code><b>useZ</b> is True</code>.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.IntersectionError-class.html\">IntersectionError</a></strong></code> - Near-coincident or -colinear points or a trilateration or \n        <code>numpy</code> issue.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>point1</code></b>, <b><code>point2</code></b> or \n        <b><code>point3</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Functions <a href=\"pygeodesy.vector2d-module.html#circum4_\" \n        class=\"link\">pygeodesy.circum4_</a> and <a \n        href=\"pygeodesy.vector2d-module.html#meeus2\" \n        class=\"link\">pygeodesy.meeus2</a> and Meeus, J. <a \n        href=\"http://www.Agopax.IT/Libri_astronomia/pdf/Astronomical%20Algorithms.pdf\"\n        target=\"_top\"><i>Astronomical Algorithms</i></a>, 2nd Ed. 1998, \n        page 127ff, <a \n        href=\"https://MathWorld.Wolfram.com/Circumradius.html\" \n        target=\"_top\">circumradius</a> and <a \n        href=\"https://MathWorld.Wolfram.com/Circumcircle.html\" \n        target=\"_top\">circumcircle</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"circum4\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">circum4</span>&nbsp;(<span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">useZ</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">**Vector_and_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Best-fit a sphere through three or more (3-D) points.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>points</code></strong> - Iterable of points (each a <code>Cartesian</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <code>Vector3Tuple</code> or \n          <code>Vector4Tuple</code>).</li>\n        <li><strong class=\"pname\"><code>useZ</code></strong> - If <code>True</code>, use the points' Z component, otherwise \n          force <code>z=INT0</code> (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>Vector_and_kwds</code></strong> - Optional class <code><b>Vector</b>=None</code> to return the \n          center point and optionally, additional \n          <b><code>Vector</code></b> keyword arguments, otherwise the \n          <b><code>points</code></b>' (sub-)class.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><a href=\"pygeodesy.vector2d.Circum4Tuple-class.html\" \n          class=\"link\">Circum4Tuple</a><code>(radius, center, rank, \n          residuals)</code> with <code>center</code> an instance of \n          <code><b>points</b>[0]</code>' (sub-)class or \n          <b><code>Vector</code></b> if specified.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ImportError</strong></code> - Package <code>numpy</code> not found, not installed or older than \n        version 1.10.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.NumPyError-class.html\">NumPyError</a></strong></code> - Some <code>numpy</code> issue.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.PointsError-class.html\">PointsError</a></strong></code> - Too few <b><code>points</code></b>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - One of the <b><code>points</code></b> is invalid.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Functions <a href=\"pygeodesy.vector2d-module.html#circum3\" \n        class=\"link\">pygeodesy.circum3</a> and <a \n        href=\"pygeodesy.vector2d-module.html#meeus2\" \n        class=\"link\">pygeodesy.meeus2</a>, <i>Charles Jekel</i>'s <a \n        href=\"https://Jekel.me/2015/Least-Squares-Sphere-Fit/\" \n        target=\"_top\">&quot;Least Squares Sphere Fit&quot;</a>, <a \n        href=\"https://hdl.handle.net/10019.1/98627\" target=\"_top\">Appendix \n        A</a>, <a \n        href=\"https://NumPy.org/doc/stable/reference/generated/numpy.linalg.lstsq.html\"\n        target=\"_top\">numpy.linalg.lstsq</a> and <a \n        href=\"https://www.sci.Utah.edu/~balling/FEtools/doc_files/LeastSquaresFitting.pdf\"\n        target=\"_top\">Eberly 6</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"circum4_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">circum4_</span>&nbsp;(<span class=\"sig-arg\">*points</span>,\n        <span class=\"sig-arg\">**useZ_Vector_and_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Best-fit a sphere through three or more (3-D) positional points.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>points</code></strong> - The points (each a <code>Cartesian</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <code>Vector3Tuple</code> or \n          <code>Vector4Tuple</code>), all positional.</li>\n        <li><strong class=\"pname\"><code>useZ_Vector_and_kwds</code></strong> - Keyword arguments <code><b>useZ</b>=True</code> and \n          <code><b>Vector</b>=None</code>, see function <a \n          href=\"pygeodesy.vector2d-module.html#circum4\" \n          class=\"link\">circum4</a>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.vector2d-module.html#circum4\" \n        class=\"link\">circum4</a> for further details.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"meeus2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">meeus2</span>&nbsp;(<span class=\"sig-arg\">point1</span>,\n        <span class=\"sig-arg\">point2</span>,\n        <span class=\"sig-arg\">point3</span>,\n        <span class=\"sig-arg\">circum</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">useZ</span>=<span class=\"sig-default\">True</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the radius and <i>Meeus</i>' Type of the smallest circle \n  <i>through</i> or <i>containing</i> three (2- or 3-D) points.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>point1</code></strong> - First point (<code>Cartesian</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <code>Vector3Tuple</code>, \n          <code>Vector4Tuple</code> or <code>Vector2Tuple</code> if \n          <code><b>useZ</b>=False</code>).</li>\n        <li><strong class=\"pname\"><code>point2</code></strong> - Second point (<code>Cartesian</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <code>Vector3Tuple</code>, \n          <code>Vector4Tuple</code> or <code>Vector2Tuple</code> if \n          <code><b>useZ</b>=False</code>).</li>\n        <li><strong class=\"pname\"><code>point3</code></strong> - Third point (<code>Cartesian</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <code>Vector3Tuple</code>, \n          <code>Vector4Tuple</code> or <code>Vector2Tuple</code> if \n          <code><b>useZ</b>=False</code>).</li>\n        <li><strong class=\"pname\"><code>circum</code></strong> - If <code>True</code>, return the <code>circumradius</code> and \n          <code>circumcenter</code> always, overriding <i>Meeus</i>' Type \n          II case (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>useZ</code></strong> - If <code>True</code>, use the Z components, otherwise force \n          <code>z=INT0</code> (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><a href=\"pygeodesy.vector2d.Meeus2Tuple-class.html\" \n          class=\"link\">Meeus2Tuple</a><code>(radius, Type)</code>, with \n          <code>Type</code> the <code>circumcenter</code> iff \n          <code><b>circum</b>=True</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.IntersectionError-class.html\">IntersectionError</a></strong></code> - Near-coincident or -colinear points, iff \n        <code><b>circum</b>=True</code>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>point1</code></b>, <b><code>point2</code></b> or \n        <b><code>point3</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Functions <a href=\"pygeodesy.vector2d-module.html#circum3\" \n        class=\"link\">pygeodesy.circum3</a> and <a \n        href=\"pygeodesy.vector2d-module.html#circum4_\" \n        class=\"link\">pygeodesy.circum4_</a> and Meeus, J. <a \n        href=\"http://www.Agopax.IT/Libri_astronomia/pdf/Astronomical%20Algorithms.pdf\"\n        target=\"_top\"><i>Astronomical Algorithms</i></a>, 2nd Ed. 1998, \n        page 127ff, <a \n        href=\"https://MathWorld.Wolfram.com/Circumradius.html\" \n        target=\"_top\">circumradius</a> and <a \n        href=\"https://MathWorld.Wolfram.com/Circumcircle.html\" \n        target=\"_top\">circumcircle</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"radii11\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">radii11</span>&nbsp;(<span class=\"sig-arg\">point1</span>,\n        <span class=\"sig-arg\">point2</span>,\n        <span class=\"sig-arg\">point3</span>,\n        <span class=\"sig-arg\">useZ</span>=<span class=\"sig-default\">True</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the radii of the <code>In-</code>, <i>Soddy</i> and \n  <code>Tangent</code> circles of a (2- or 3-D) triangle.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>point1</code></strong> - First point (<code>Cartesian</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <code>Vector3Tuple</code>, \n          <code>Vector4Tuple</code> or <code>Vector2Tuple</code> if \n          <code><b>useZ</b>=False</code>).</li>\n        <li><strong class=\"pname\"><code>point2</code></strong> - Second point (<code>Cartesian</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <code>Vector3Tuple</code>, \n          <code>Vector4Tuple</code> or <code>Vector2Tuple</code> if \n          <code><b>useZ</b>=False</code>).</li>\n        <li><strong class=\"pname\"><code>point3</code></strong> - Third point (<code>Cartesian</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <code>Vector3Tuple</code>, \n          <code>Vector4Tuple</code> or <code>Vector2Tuple</code> if \n          <code><b>useZ</b>=False</code>).</li>\n        <li><strong class=\"pname\"><code>useZ</code></strong> - If <code>True</code>, use the Z components, otherwise force \n          <code>z=INT0</code> (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><a href=\"pygeodesy.vector2d.Radii11Tuple-class.html\" \n          class=\"link\">Radii11Tuple</a><code>(rA, rB, rC, cR, rIn, riS, \n          roS, a, b, c, s)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.TriangleError-class.html\">TriangleError</a></strong></code> - Near-coincident or -colinear points.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>point1</code></b>, <b><code>point2</code></b> or \n        <b><code>point3</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"https://MathWorld.Wolfram.com/Circumradius.html\" \n        target=\"_top\">Circumradius</a>, <a \n        href=\"https://MathWorld.Wolfram.com/Incircle.html\" \n        target=\"_top\">Incircle</a>, <a \n        href=\"https://MathWorld.Wolfram.com/SoddyCircles.html\" \n        target=\"_top\">Soddy Circles</a> and <a \n        href=\"https://MathWorld.Wolfram.com/TangentCircles.html\" \n        target=\"_top\">Tangent Circles</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"soddy4\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">soddy4</span>&nbsp;(<span class=\"sig-arg\">point1</span>,\n        <span class=\"sig-arg\">point2</span>,\n        <span class=\"sig-arg\">point3</span>,\n        <span class=\"sig-arg\">eps</span>=<span class=\"sig-default\">8.881784197001252e-16</span>,\n        <span class=\"sig-arg\">useZ</span>=<span class=\"sig-default\">True</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the radius and center of the <code>inner</code> <i>Soddy</i> \n  circle of a (2- or 3-D) triangle.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>point1</code></strong> - First point (<code>Cartesian</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <code>Vector3Tuple</code>, \n          <code>Vector4Tuple</code> or <code>Vector2Tuple</code> if \n          <code><b>useZ</b>=False</code>).</li>\n        <li><strong class=\"pname\"><code>point2</code></strong> - Second point (<code>Cartesian</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <code>Vector3Tuple</code>, \n          <code>Vector4Tuple</code> or <code>Vector2Tuple</code> if \n          <code><b>useZ</b>=False</code>).</li>\n        <li><strong class=\"pname\"><code>point3</code></strong> - Third point (<code>Cartesian</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <code>Vector3Tuple</code>, \n          <code>Vector4Tuple</code> or <code>Vector2Tuple</code> if \n          <code><b>useZ</b>=False</code>).</li>\n        <li><strong class=\"pname\"><code>eps</code></strong> - Tolerance for function <a \n          href=\"pygeodesy.vector3d-module.html#trilaterate3d2\" \n          class=\"link\">pygeodesy.trilaterate3d2</a> if <code><b>useZ</b> is\n          True</code> otherwise <a \n          href=\"pygeodesy.vector2d-module.html#trilaterate2d2\" \n          class=\"link\">pygeodesy.trilaterate2d2</a>.</li>\n        <li><strong class=\"pname\"><code>useZ</code></strong> - If <code>True</code>, use the Z components, otherwise force \n          <code>z=INT0</code> (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><a href=\"pygeodesy.vector2d.Soddy4Tuple-class.html\" \n          class=\"link\">Soddy4Tuple</a><code>(radius, center, deltas, \n          outer)</code>.  The <code>center</code>, an instance of \n          <b><code>point1</code></b>'s (sub-)class, is co-planar with the \n          three given points.  The <code>outer</code> <i>Soddy</i> radius \n          may be <code>INF</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ImportError</strong></code> - Package <code>numpy</code> not found, not installed or older than \n        version 1.10 and <code><b>useZ</b> is True</code>.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.IntersectionError-class.html\">IntersectionError</a></strong></code> - Near-coincident or -colinear points or a trilateration or \n        <code>numpy</code> issue.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>point1</code></b>, <b><code>point2</code></b> or \n        <b><code>point3</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Functions <a href=\"pygeodesy.vector2d-module.html#radii11\" \n        class=\"link\">radii11</a> and <a \n        href=\"pygeodesy.vector2d-module.html#circum3\" \n        class=\"link\">circum3</a> and <a \n        href=\"https://MathWorld.Wolfram.com/SoddyCircles.html\" \n        target=\"_top\">Soddy Circles</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"triaxum5\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">triaxum5</span>&nbsp;(<span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">useZ</span>=<span class=\"sig-default\">True</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Best-fit a triaxial ellipsoid through three or more (3-D) points.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>points</code></strong> - Iterable of points (each a <code>Cartesian</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <code>Vector3Tuple</code> or \n          <code>Vector4Tuple</code>).</li>\n        <li><strong class=\"pname\"><code>useZ</code></strong> - If <code>True</code>, use the points' Z component, otherwise \n          force <code>z=INT0</code> (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><a href=\"pygeodesy.vector2d.Triaxum5Tuple-class.html\" \n          class=\"link\">Triaxum5Tuple</a><code>(a, b, c, rank, \n          residuals)</code> with the unordered triaxial radii \n          <code>a</code>, <code>b</code> and <code>c</code> in \n          <code>meter</code>, same units as the points' coordinates.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ImportError</strong></code> - Package <code>numpy</code> not found, not installed or older than \n        version 1.10.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.NumPyError-class.html\">NumPyError</a></strong></code> - Some <code>numpy</code> issue.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.PointsError-class.html\">PointsError</a></strong></code> - Too few <b><code>points</code></b>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - One of the <b><code>points</code></b> is invalid.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <i>Charles Jekel</i>'s <a \n        href=\"https://Jekel.me/2020/Least-Squares-Ellipsoid-Fit/\" \n        target=\"_top\">&quot;Least Squares Ellipsoid Fit&quot;</a> and <a \n        href=\"https://NumPy.org/doc/stable/reference/generated/numpy.linalg.lstsq.html\"\n        target=\"_top\">numpy.linalg.lstsq</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"trilaterate2d2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">trilaterate2d2</span>&nbsp;(<span class=\"sig-arg\">x1</span>,\n        <span class=\"sig-arg\">y1</span>,\n        <span class=\"sig-arg\">radius1</span>,\n        <span class=\"sig-arg\">x2</span>,\n        <span class=\"sig-arg\">y2</span>,\n        <span class=\"sig-arg\">radius2</span>,\n        <span class=\"sig-arg\">x3</span>,\n        <span class=\"sig-arg\">y3</span>,\n        <span class=\"sig-arg\">radius3</span>,\n        <span class=\"sig-arg\">eps</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**Vector_and_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Trilaterate three circles, each given as a (2-D) center and a \n  radius.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>x1</code></strong> - Center <code>x</code> coordinate of the 1st circle \n          (<code>scalar</code>).</li>\n        <li><strong class=\"pname\"><code>y1</code></strong> - Center <code>y</code> coordinate of the 1st circle \n          (<code>scalar</code>).</li>\n        <li><strong class=\"pname\"><code>radius1</code></strong> - Radius of the 1st circle (<code>scalar</code>).</li>\n        <li><strong class=\"pname\"><code>x2</code></strong> - Center <code>x</code> coordinate of the 2nd circle \n          (<code>scalar</code>).</li>\n        <li><strong class=\"pname\"><code>y2</code></strong> - Center <code>y</code> coordinate of the 2nd circle \n          (<code>scalar</code>).</li>\n        <li><strong class=\"pname\"><code>radius2</code></strong> - Radius of the 2nd circle (<code>scalar</code>).</li>\n        <li><strong class=\"pname\"><code>x3</code></strong> - Center <code>x</code> coordinate of the 3rd circle \n          (<code>scalar</code>).</li>\n        <li><strong class=\"pname\"><code>y3</code></strong> - Center <code>y</code> coordinate of the 3rd circle \n          (<code>scalar</code>).</li>\n        <li><strong class=\"pname\"><code>radius3</code></strong> - Radius of the 3rd circle (<code>scalar</code>).</li>\n        <li><strong class=\"pname\"><code>eps</code></strong> - Tolerance to check the trilaterated point <i>delta</i> on all 3 \n          circles (<code>scalar</code>) or <code>None</code> for no \n          checking.</li>\n        <li><strong class=\"pname\"><code>Vector_and_kwds</code></strong> - Optional class <code><b>Vector</b>=None</code> to return the \n          trilateration and optionally, additional \n          <b><code>Vector</code></b> keyword arguments).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Trilaterated point as <code><b>Vector</b>(x, y, \n          **<b>Vector_kwds</b>)</code> or <a \n          href=\"pygeodesy.namedTuples.Vector2Tuple-class.html\" \n          class=\"link\">Vector2Tuple</a><code>(x, y)</code> if \n          <code><b>Vector</b> is None</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.IntersectionError-class.html\">IntersectionError</a></strong></code> - No intersection, near-concentric or -colinear centers, \n        trilateration failed some other way or the trilaterated point is \n        off one circle by more than <b><code>eps</code></b>.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.UnitError-class.html\">UnitError</a></strong></code> - Invalid <b><code>radius1</code></b>, <b><code>radius2</code></b> or\n        <b><code>radius3</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a href=\"https://GitHub.com/mrJean1/PyGeodesy/issues/49\" \n        target=\"_top\">Issue #49</a>, <a \n        href=\"https://math.StackExchange.com/questions/884807\" \n        target=\"_top\">Find X location using 3 known (X,Y) location using \n        trilateration</a> and function <a \n        href=\"pygeodesy.vector3d-module.html#trilaterate3d2\" \n        class=\"link\">pygeodesy.trilaterate3d2</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.vector2d.Circin6Tuple-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.vector2d.Circin6Tuple</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.vector2d-module.html\">Module&nbsp;vector2d</a> ::\n        Class&nbsp;Circin6Tuple\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.vector2d.Circin6Tuple-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Circin6Tuple</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n   object --+        \n            |        \n        tuple --+    \n                |    \n   object --+   |    \n            |   |    \n <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n                |    \n<a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a> --+\n                    |\n                   <strong class=\"uidshort\">Circin6Tuple</strong>\n</pre>\n\n<hr />\n<p>6-Tuple <code>(radius, center, deltas, cA, cB, cC)</code> with the \n  <code>radius</code>, the trilaterated <code>center</code> and contact \n  points of the <i>inscribed</i> aka <i>In- circle</i> of a triangle.  The \n  <code>center</code> is <i>un</i>ambiguous if <code>deltas</code> is \n  <code>None</code>, otherwise <code>center</code> is the mean and \n  <code>deltas</code> the differences of the <a \n  href=\"pygeodesy.vector3d-module.html#trilaterate3d2\" \n  class=\"link\">pygeodesy.trilaterate3d2</a> results.  Contact points \n  <code>cA</code>, <code>cB</code> and <code>cC</code> are the points of \n  tangency, aka the corners of the <a \n  href=\"https://MathWorld.Wolfram.com/ContactTriangle.html\" \n  target=\"_top\">Contact Triangle</a>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__delattr__\">__delattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__getattr__\">__getattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__setattr__\">__setattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#items\">items</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iteritems\">iteritems</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iterunits\">iterunits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#reUnit\">reUnit</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toUnits\">toUnits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>tuple</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__eq__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__iter__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__rmul__</code>,\n      <code>count</code>,\n      <code>index</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__new__\">__new__</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:21 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.vector2d.Circum3Tuple-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.vector2d.Circum3Tuple</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.vector2d-module.html\">Module&nbsp;vector2d</a> ::\n        Class&nbsp;Circum3Tuple\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.vector2d.Circum3Tuple-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Circum3Tuple</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n   object --+        \n            |        \n        tuple --+    \n                |    \n   object --+   |    \n            |   |    \n <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n                |    \n<a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a> --+\n                    |\n                   <strong class=\"uidshort\">Circum3Tuple</strong>\n</pre>\n\n<hr />\n<p>3-Tuple <code>(radius, center, deltas)</code> with the \n  <code>circumradius</code> and trilaterated <code>circumcenter</code> of \n  the <code>circumcircle</code> through 3 points (aka {Meeus}' Type II \n  circle) or the <code>radius</code> and <code>center</code> of the \n  smallest <i>Meeus</i>' Type I circle. The <code>center</code> is \n  <i>un</i>ambiguous if <code>deltas</code> is <code>None</code>, otherwise\n  <code>center</code> is the mean and <code>deltas</code> the differences \n  of the <a href=\"pygeodesy.vector3d-module.html#trilaterate3d2\" \n  class=\"link\">pygeodesy.trilaterate3d2</a> results.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__delattr__\">__delattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__getattr__\">__getattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__setattr__\">__setattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#items\">items</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iteritems\">iteritems</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iterunits\">iterunits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#reUnit\">reUnit</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toUnits\">toUnits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>tuple</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__eq__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__iter__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__rmul__</code>,\n      <code>count</code>,\n      <code>index</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__new__\">__new__</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:21 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.vector2d.Circum4Tuple-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.vector2d.Circum4Tuple</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.vector2d-module.html\">Module&nbsp;vector2d</a> ::\n        Class&nbsp;Circum4Tuple\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.vector2d.Circum4Tuple-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Circum4Tuple</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n   object --+        \n            |        \n        tuple --+    \n                |    \n   object --+   |    \n            |   |    \n <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n                |    \n<a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a> --+\n                    |\n                   <strong class=\"uidshort\">Circum4Tuple</strong>\n</pre>\n\n<hr />\n<p>4-Tuple <code>(radius, center, rank, residuals)</code> with \n  <code>radius</code> and <code>center</code> of a sphere \n  <i>least-squares</i> fitted through given points and the \n  <code>rank</code> and <code>residuals</code> -if any- from <a \n  href=\"https://NumPy.org/doc/stable/reference/generated/numpy.linalg.lstsq.html\"\n  target=\"_top\">numpy.linalg.lstsq</a>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__delattr__\">__delattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__getattr__\">__getattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__setattr__\">__setattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#items\">items</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iteritems\">iteritems</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iterunits\">iterunits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#reUnit\">reUnit</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toUnits\">toUnits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>tuple</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__eq__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__iter__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__rmul__</code>,\n      <code>count</code>,\n      <code>index</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__new__\">__new__</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:21 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.vector2d.Meeus2Tuple-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.vector2d.Meeus2Tuple</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.vector2d-module.html\">Module&nbsp;vector2d</a> ::\n        Class&nbsp;Meeus2Tuple\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.vector2d.Meeus2Tuple-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Meeus2Tuple</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n   object --+        \n            |        \n        tuple --+    \n                |    \n   object --+   |    \n            |   |    \n <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n                |    \n<a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a> --+\n                    |\n                   <strong class=\"uidshort\">Meeus2Tuple</strong>\n</pre>\n\n<hr />\n<p>2-Tuple <code>(radius, Type)</code> with <code>radius</code> and \n  <i>Meeus</i>' <code>Type</code> of the smallest circle <i>containing</i> \n  3 points.  <code>Type</code> is <code>None</code> for a <i>Meeus</i>' \n  Type II <code>circumcircle</code> passing through all 3 points.  \n  Otherwise <code>Type</code> is the center of a <i>Meeus</i>' Type I \n  circle with 2 points on (a diameter of) and 1 point inside the \n  circle.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__delattr__\">__delattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__getattr__\">__getattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__setattr__\">__setattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#items\">items</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iteritems\">iteritems</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iterunits\">iterunits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#reUnit\">reUnit</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toUnits\">toUnits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>tuple</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__eq__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__iter__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__rmul__</code>,\n      <code>count</code>,\n      <code>index</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__new__\">__new__</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:21 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.vector2d.Radii11Tuple-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.vector2d.Radii11Tuple</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.vector2d-module.html\">Module&nbsp;vector2d</a> ::\n        Class&nbsp;Radii11Tuple\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.vector2d.Radii11Tuple-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Radii11Tuple</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n   object --+        \n            |        \n        tuple --+    \n                |    \n   object --+   |    \n            |   |    \n <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n                |    \n<a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a> --+\n                    |\n                   <strong class=\"uidshort\">Radii11Tuple</strong>\n</pre>\n\n<hr />\n<p>11-Tuple <code>(rA, rB, rC, cR, rIn, riS, roS, a, b, c, s)</code> with\n  the <code>Tangent</code> circle radii <code>rA</code>, <code>rB</code> \n  and <code>rC</code>, the <code>circumradius</code> <code>cR</code>, the \n  <code>Incircle</code> radius <code>rIn</code> aka <code>inradius</code>, \n  the inner and outer <i>Soddy</i> circle radii <code>riS</code> and \n  <code>roS</code>, the sides <code>a</code>, <code>b</code> and \n  <code>c</code> and semi-perimeter <code>s</code> of a triangle, all in \n  <code>meter</code> conventionally.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Note:</strong>\n        <code>Circumradius</code> <code>cR</code> and outer <i>Soddy</i> \n        radius <code>roS</code> may be <code>INF</code>.\n      </p>\n</div><!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__delattr__\">__delattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__getattr__\">__getattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__setattr__\">__setattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#items\">items</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iteritems\">iteritems</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iterunits\">iterunits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#reUnit\">reUnit</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toUnits\">toUnits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>tuple</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__eq__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__iter__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__rmul__</code>,\n      <code>count</code>,\n      <code>index</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__new__\">__new__</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:21 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.vector2d.Soddy4Tuple-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.vector2d.Soddy4Tuple</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.vector2d-module.html\">Module&nbsp;vector2d</a> ::\n        Class&nbsp;Soddy4Tuple\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.vector2d.Soddy4Tuple-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Soddy4Tuple</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n   object --+        \n            |        \n        tuple --+    \n                |    \n   object --+   |    \n            |   |    \n <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n                |    \n<a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a> --+\n                    |\n                   <strong class=\"uidshort\">Soddy4Tuple</strong>\n</pre>\n\n<hr />\n<p>4-Tuple <code>(radius, center, deltas, outer)</code> with \n  <code>radius</code> and (trilaterated) <code>center</code> of the \n  <i>inner</i> <i>Soddy</i> circle and the radius of the <code>outer</code>\n  <i>Soddy</i> circle.  The <code>center</code> is <i>un</i>ambiguous if \n  <code>deltas</code> is <code>None</code>, otherwise <code>center</code> \n  is the mean and <code>deltas</code> the differences of the <a \n  href=\"pygeodesy.vector3d-module.html#trilaterate3d2\" \n  class=\"link\">pygeodesy.trilaterate3d2</a> results.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Note:</strong>\n        The outer <i>Soddy</i> radius <code>outer</code> may be \n        <code>INF</code>.\n      </p>\n</div><!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__delattr__\">__delattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__getattr__\">__getattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__setattr__\">__setattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#items\">items</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iteritems\">iteritems</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iterunits\">iterunits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#reUnit\">reUnit</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toUnits\">toUnits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>tuple</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__eq__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__iter__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__rmul__</code>,\n      <code>count</code>,\n      <code>index</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__new__\">__new__</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:21 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.vector2d.Triaxum5Tuple-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.vector2d.Triaxum5Tuple</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.vector2d-module.html\">Module&nbsp;vector2d</a> ::\n        Class&nbsp;Triaxum5Tuple\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.vector2d.Triaxum5Tuple-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Triaxum5Tuple</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n   object --+        \n            |        \n        tuple --+    \n                |    \n   object --+   |    \n            |   |    \n <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n                |    \n<a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a> --+\n                    |\n                   <strong class=\"uidshort\">Triaxum5Tuple</strong>\n</pre>\n\n<hr />\n<p>5-Tuple <code>(a, b, c, rank, residuals)</code> with the (unordered) \n  triaxial radii <code>a</code>, <code>b</code> and <code>c</code> of an \n  ellipsoid <i>least-squares</i> fitted through given points and the \n  <code>rank</code> and <code>residuals</code> -if any- from <a \n  href=\"https://NumPy.org/doc/stable/reference/generated/numpy.linalg.lstsq.html\"\n  target=\"_top\">numpy.linalg.lstsq</a>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__delattr__\">__delattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__getattr__\">__getattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__setattr__\">__setattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#items\">items</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iteritems\">iteritems</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iterunits\">iterunits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#reUnit\">reUnit</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toUnits\">toUnits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>tuple</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__eq__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__iter__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__rmul__</code>,\n      <code>count</code>,\n      <code>index</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__new__\">__new__</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:21 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.vector3d-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.vector3d</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        Module&nbsp;vector3d\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.vector3d-module.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== MODULE DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Module vector3d</h1><p class=\"nomargin-top\"></p>\n<p>Extended 3-D vector class <a \n  href=\"pygeodesy.vector3d.Vector3d-class.html\" class=\"link\">Vector3d</a> \n  and functions.</p>\n  <p>Functions <a href=\"pygeodesy.vector3d-module.html#intersection3d3\" \n  class=\"link\">intersection3d3</a>, <a \n  href=\"pygeodesy.vector3d-module.html#intersections2\" \n  class=\"link\">intersections2</a>, <a \n  href=\"pygeodesy.vector3d-module.html#nearestOn\" \n  class=\"link\">nearestOn</a>, <a \n  href=\"pygeodesy.vector3d-module.html#parse3d\" class=\"link\">parse3d</a>, \n  <a href=\"pygeodesy.vector3d-module.html#sumOf\" class=\"link\">sumOf</a> and\n  <a href=\"pygeodesy.vector3d-module.html#trilaterate3d2\" \n  class=\"link\">trilaterate3d2</a>.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Version:</strong>\n        25.05.07\n      </p>\n</div><!-- ==================== CLASSES ==================== -->\n<a name=\"section-Classes\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Classes</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\" class=\"summary-name\">Vector3dBase</a><br />\n      (INTERNAL) Generic 3-D vector base class.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.vector3d.Vector3d-class.html\" class=\"summary-name\">Vector3d</a><br />\n      Extended 3-D vector.\n    </td>\n  </tr>\n</table>\n<!-- ==================== FUNCTIONS ==================== -->\n<a name=\"section-Functions\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Functions</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.vector3d-module.html#intersection3d3\" class=\"summary-sig-name\">intersection3d3</a>(<span class=\"summary-sig-arg\">start1</span>,\n        <span class=\"summary-sig-arg\">end1</span>,\n        <span class=\"summary-sig-arg\">start2</span>,\n        <span class=\"summary-sig-arg\">end2</span>,\n        <span class=\"summary-sig-arg\">eps</span>=<span class=\"summary-sig-default\">2.220446049250313e-16</span>,\n        <span class=\"summary-sig-arg\">useZ</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">**Vector_and_kwds</span>)</span><br />\n      Compute the intersection point of two (2- or 3-D) lines, each defined\n      by two points or by a point and a bearing.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.vector3d-module.html#intersections2\" class=\"summary-sig-name\">intersections2</a>(<span class=\"summary-sig-arg\">center1</span>,\n        <span class=\"summary-sig-arg\">radius1</span>,\n        <span class=\"summary-sig-arg\">center2</span>,\n        <span class=\"summary-sig-arg\">radius2</span>,\n        <span class=\"summary-sig-arg\">sphere</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">**Vector_and_kwds</span>)</span><br />\n      Compute the intersection of two spheres or circles, each defined by a\n      (3-D) center point and a radius.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.vector3d-module.html#iscolinearWith\" class=\"summary-sig-name\">iscolinearWith</a>(<span class=\"summary-sig-arg\">point</span>,\n        <span class=\"summary-sig-arg\">point1</span>,\n        <span class=\"summary-sig-arg\">point2</span>,\n        <span class=\"summary-sig-arg\">eps</span>=<span class=\"summary-sig-default\">2.220446049250313e-16</span>,\n        <span class=\"summary-sig-arg\">useZ</span>=<span class=\"summary-sig-default\">True</span>)</span><br />\n      Check whether a point is colinear with two other (2- or 3-D) points.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.vector3d-module.html#nearestOn\" class=\"summary-sig-name\">nearestOn</a>(<span class=\"summary-sig-arg\">point</span>,\n        <span class=\"summary-sig-arg\">point1</span>,\n        <span class=\"summary-sig-arg\">point2</span>,\n        <span class=\"summary-sig-arg\">within</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">useZ</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">Vector</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**Vector_kwds</span>)</span><br />\n      Locate the point between two points closest to a reference (2- or \n      3-D).</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.vector3d-module.html#nearestOn6\" class=\"summary-sig-name\">nearestOn6</a>(<span class=\"summary-sig-arg\">point</span>,\n        <span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">closed</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">useZ</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">**Vector_and_kwds</span>)</span><br />\n      Locate the point on a path or polygon closest to a reference point.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.vector3d-module.html#parse3d\" class=\"summary-sig-name\">parse3d</a>(<span class=\"summary-sig-arg\">str3d</span>,\n        <span class=\"summary-sig-arg\">sep</span>=<span class=\"summary-sig-default\">','</span>,\n        <span class=\"summary-sig-arg\">Vector</span>=<span class=\"summary-sig-default\">&lt;class 'pygeodesy.vector3d.Vector3d'&gt;</span>,\n        <span class=\"summary-sig-arg\">**Vector_kwds</span>)</span><br />\n      Parse an <code>&quot;x, y, z&quot;</code> string.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.vector3d-module.html#sumOf\" class=\"summary-sig-name\">sumOf</a>(<span class=\"summary-sig-arg\">vectors</span>,\n        <span class=\"summary-sig-arg\">Vector</span>=<span class=\"summary-sig-default\">&lt;class 'pygeodesy.vector3d.Vector3d'&gt;</span>,\n        <span class=\"summary-sig-arg\">**Vector_kwds</span>)</span><br />\n      Compute the <i>vectorial</i> sum of two oe more vectors.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.vector3d-module.html#trilaterate3d2\" class=\"summary-sig-name\">trilaterate3d2</a>(<span class=\"summary-sig-arg\">center1</span>,\n        <span class=\"summary-sig-arg\">radius1</span>,\n        <span class=\"summary-sig-arg\">center2</span>,\n        <span class=\"summary-sig-arg\">radius2</span>,\n        <span class=\"summary-sig-arg\">center3</span>,\n        <span class=\"summary-sig-arg\">radius3</span>,\n        <span class=\"summary-sig-arg\">eps</span>=<span class=\"summary-sig-default\">2.220446049250313e-16</span>,\n        <span class=\"summary-sig-arg\">**Vector_and_kwds</span>)</span><br />\n      Trilaterate three spheres, each given as a (3-D) center and a radius.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== VARIABLES ==================== -->\n<a name=\"section-Variables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Variables</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"__all__\"></a><span class=\"summary-name\">__all__</span> = <code title=\"_ALL_LAZY.vector3d\">_ALL_LAZY.vector3d</code>\n    </td>\n  </tr>\n</table>\n<!-- ==================== FUNCTION DETAILS ==================== -->\n<a name=\"section-FunctionDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Function Details</span></td>\n</tr>\n</table>\n<a name=\"intersection3d3\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">intersection3d3</span>&nbsp;(<span class=\"sig-arg\">start1</span>,\n        <span class=\"sig-arg\">end1</span>,\n        <span class=\"sig-arg\">start2</span>,\n        <span class=\"sig-arg\">end2</span>,\n        <span class=\"sig-arg\">eps</span>=<span class=\"sig-default\">2.220446049250313e-16</span>,\n        <span class=\"sig-arg\">useZ</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">**Vector_and_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the intersection point of two (2- or 3-D) lines, each defined \n  by two points or by a point and a bearing.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>start1</code></strong> - Start point of the first line (<code>Cartesian</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <code>Vector3Tuple</code> or \n          <code>Vector4Tuple</code>).</li>\n        <li><strong class=\"pname\"><code>end1</code></strong> - End point of the first line (<code>Cartesian</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <code>Vector3Tuple</code> or \n          <code>Vector4Tuple</code>) or the bearing at \n          <b><code>start1</code></b> (compass <code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>start2</code></strong> - Start point of the second line (<code>Cartesian</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <code>Vector3Tuple</code> or \n          <code>Vector4Tuple</code>).</li>\n        <li><strong class=\"pname\"><code>end2</code></strong> - End point of the second line (<code>Cartesian</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <code>Vector3Tuple</code> or \n          <code>Vector4Tuple</code>) or the bearing at \n          <b><code>start2</code></b> (Ccompass <code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>eps</code></strong> - Tolerance for skew line distance and length (<code>EPS</code>).</li>\n        <li><strong class=\"pname\"><code>useZ</code></strong> - If <code>True</code>, use the Z components, otherwise force \n          <code>z=INT0</code> (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>Vector_and_kwds</code></strong> - Optional class <code><b>Vector</b>=None</code> to return the \n          intersection points and optional, additional \n          <b><code>Vector</code></b> keyword arguments, otherwise \n          <b><code>start1</code></b>'s (sub-)class.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>An <a href=\"pygeodesy.namedTuples.Intersection3Tuple-class.html\" \n          class=\"link\">Intersection3Tuple</a><code>(point, outside1, \n          outside2)</code> with <code>point</code> an instance of \n          <b><code>Vector</code></b> or <b><code>start1</code></b>'s \n          (sub-)class.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.IntersectionError-class.html\">IntersectionError</a></strong></code> - Invalid, skew, non-co-planar or otherwise non-intersecting lines.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        The <code>outside</code> values is <code>0</code> for lines \n        specified by point and bearing.\n      </p>\n      <p><strong>See Also:</strong>\n        <a href=\"https://MathWorld.Wolfram.com/Line-LineIntersection.html\" \n        target=\"_top\">Line-line intersection</a> and <a \n        href=\"https://MathWorld.Wolfram.com/Line-LineDistance.html\" \n        target=\"_top\">line-line distance</a>, <a \n        href=\"https://MathWorld.Wolfram.com/SkewLines.html\" \n        target=\"_top\">skew lines</a> and <a \n        href=\"https://MathWorld.Wolfram.com/Point-LineDistance3-Dimensional.html\"\n        target=\"_top\">point-line distance</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"intersections2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">intersections2</span>&nbsp;(<span class=\"sig-arg\">center1</span>,\n        <span class=\"sig-arg\">radius1</span>,\n        <span class=\"sig-arg\">center2</span>,\n        <span class=\"sig-arg\">radius2</span>,\n        <span class=\"sig-arg\">sphere</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">**Vector_and_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the intersection of two spheres or circles, each defined by a \n  (3-D) center point and a radius.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>center1</code></strong> - Center of the first sphere or circle (<code>Cartesian</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <code>Vector3Tuple</code> or \n          <code>Vector4Tuple</code>).</li>\n        <li><strong class=\"pname\"><code>radius1</code></strong> - Radius of the first sphere or circle (same units as the \n          <b><code>center1</code></b> coordinates).</li>\n        <li><strong class=\"pname\"><code>center2</code></strong> - Center of the second sphere or circle (<code>Cartesian</code>, <a\n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <code>Vector3Tuple</code> or \n          <code>Vector4Tuple</code>).</li>\n        <li><strong class=\"pname\"><code>radius2</code></strong> - Radius of the second sphere or circle (same units as the \n          <b><code>center1</code></b> and <b><code>center2</code></b> \n          coordinates).</li>\n        <li><strong class=\"pname\"><code>sphere</code></strong> - If <code>True</code>, compute the center and radius of the \n          intersection of two spheres.  If <code>False</code>, ignore the \n          <code>z</code>-component and compute the intersection of two \n          circles (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>Vector_and_kwds</code></strong> - Optional class <code><b>Vector</b>=None</code> to return the \n          intersection points and optionally, additional \n          <b><code>Vector</code></b> keyword arguments, otherwise \n          <b><code>center1</code></b>'s (sub-)class.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>If <code><b>sphere</b> is True</code>, a 2-tuple of the \n          <code>center</code> and <code>radius</code> of the intersection \n          of the <i>spheres</i>.  For abutting circles, <code>radius</code>\n          is <code>0.0</code> and <code>center</code> is the <i>radical \n          center</i>.\n          <p>If <code><b>sphere</b> is False</code>, a 2-tuple with the two\n          intersection points of the <i>circles</i>.  For abutting circles,\n          both points are the same instance, aka the <i>radical \n          center</i>.</p></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.IntersectionError-class.html\">IntersectionError</a></strong></code> - Concentric, invalid or non-intersecting spheres or circles.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>center1</code></b> or <b><code>center2</code></b>.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.UnitError-class.html\">UnitError</a></strong></code> - Invalid <b><code>radius1</code></b> or <b><code>radius2</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a \n        href=\"https://MathWorld.Wolfram.com/Sphere-SphereIntersection.html\"\n        target=\"_top\">Sphere-Sphere</a> and <a \n        href=\"https://MathWorld.Wolfram.com/Circle-CircleIntersection.html\"\n        target=\"_top\">Circle-Circle</a> Intersection.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"iscolinearWith\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">iscolinearWith</span>&nbsp;(<span class=\"sig-arg\">point</span>,\n        <span class=\"sig-arg\">point1</span>,\n        <span class=\"sig-arg\">point2</span>,\n        <span class=\"sig-arg\">eps</span>=<span class=\"sig-default\">2.220446049250313e-16</span>,\n        <span class=\"sig-arg\">useZ</span>=<span class=\"sig-default\">True</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Check whether a point is colinear with two other (2- or 3-D) \n  points.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>point</code></strong> - The point (<a href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <code>Vector3Tuple</code> or \n          <code>Vector4Tuple</code>).</li>\n        <li><strong class=\"pname\"><code>point1</code></strong> - First point (<a href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <code>Vector3Tuple</code> or \n          <code>Vector4Tuple</code>).</li>\n        <li><strong class=\"pname\"><code>point2</code></strong> - Second point (<a href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <code>Vector3Tuple</code> or \n          <code>Vector4Tuple</code>).</li>\n        <li><strong class=\"pname\"><code>eps</code></strong> - Tolerance (<code>scalar</code>), same units as <code>x</code>, \n          <code>y</code> and <code>z</code>.</li>\n        <li><strong class=\"pname\"><code>useZ</code></strong> - If <code>True</code>, use the Z components, otherwise force \n          <code>z=INT0</code> (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>True</code> if <b><code>point</code></b> is colinear \n          <b><code>point1</code></b> and <b><code>point2</code></b>, \n          <code>False</code> otherwise.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>point</code></b>, <b><code>point1</code></b> or \n        <b><code>point2</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.vector3d-module.html#nearestOn\" \n        class=\"link\">nearestOn</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"nearestOn\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">nearestOn</span>&nbsp;(<span class=\"sig-arg\">point</span>,\n        <span class=\"sig-arg\">point1</span>,\n        <span class=\"sig-arg\">point2</span>,\n        <span class=\"sig-arg\">within</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">useZ</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">Vector</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**Vector_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Locate the point between two points closest to a reference (2- or \n  3-D).</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>point</code></strong> - Reference point (<code>Cartesian</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <code>Vector3Tuple</code> or \n          <code>Vector4Tuple</code>).</li>\n        <li><strong class=\"pname\"><code>point1</code></strong> - Start point (<code>Cartesian</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <code>Vector3Tuple</code> or \n          <code>Vector4Tuple</code>).</li>\n        <li><strong class=\"pname\"><code>point2</code></strong> - End point (<code>Cartesian</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <code>Vector3Tuple</code> or \n          <code>Vector4Tuple</code>).</li>\n        <li><strong class=\"pname\"><code>within</code></strong> - If <code>True</code>, return the closest point between both given\n          points, otherwise the closest point on the extended line through \n          both points (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>useZ</code></strong> - If <code>True</code>, use the Z components, otherwise force \n          <code>z=INT0</code> (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>Vector</code></strong> - Class to return closest point (<code>Cartesian</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a> or <code>Vector3Tuple</code>) or \n          <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>Vector_kwds</code></strong> - Optional, additional <b><code>Vector</code></b> keyword \n          arguments, ignored if <code><b>Vector</b> is None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Closest point, either <b><code>point1</code></b> or \n          <b><code>point2</code></b> or an instance of the \n          <b><code>point</code></b>'s (sub-)class or \n          <b><code>Vector</code></b> if not <code>None</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>point</code></b>, <b><code>point1</code></b> or \n        <b><code>point2</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a \n        href=\"https://MathWorld.Wolfram.com/Point-LineDistance3-Dimensional.html\"\n        target=\"_top\">3-D Point-Line Distance</a>, <code>Cartesian</code> \n        and <code>LatLon</code> methods <code>nearestOn</code>, method <a \n        href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html#nearestOn3\"\n        class=\"link\">sphericalTrigonometry.LatLon.nearestOn3</a> and \n        function <a \n        href=\"pygeodesy.sphericalTrigonometry-module.html#nearestOn3\" \n        class=\"link\">sphericalTrigonometry.nearestOn3</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"nearestOn6\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">nearestOn6</span>&nbsp;(<span class=\"sig-arg\">point</span>,\n        <span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">closed</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">useZ</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">**Vector_and_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Locate the point on a path or polygon closest to a reference \n  point.</p>\n  <p>The closest point on each polygon edge is either the nearest of that \n  edge's end points or a point in between.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>point</code></strong> - Reference point (<code>Cartesian</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <code>Vector3Tuple</code> or \n          <code>Vector4Tuple</code>).</li>\n        <li><strong class=\"pname\"><code>points</code></strong> - The path or polygon points (<code>Cartesian</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <code>Vector3Tuple</code> or \n          <code>Vector4Tuple</code>[]).</li>\n        <li><strong class=\"pname\"><code>closed</code></strong> - Optionally, close the path or polygon (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>useZ</code></strong> - If <code>True</code>, use the Z components, otherwise force \n          <code>z=INT0</code> (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>Vector_and_kwds</code></strong> - Optional class <code><b>Vector</b>=None</code> to return the \n          closest point and optionally, additional \n          <b><code>Vector</code></b> keyword arguments, otherwise \n          <b><code>point</code></b>'s (sub-)class.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.namedTuples.NearestOn6Tuple-class.html\" \n          class=\"link\">NearestOn6Tuple</a><code>(closest, distance, fi, j, \n          start, end)</code> with the <code>closest</code>, the \n          <code>start</code> and the <code>end</code> point each an \n          instance of the <b><code>Vector</code></b> keyword argument or if\n          {<b>Vector</b>=None} or not specified, an instance of the \n          reference <b><code>point</code></b>'s (sub-)class.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.PointsError-class.html\">PointsError</a></strong></code> - Insufficient number of <b><code>points</code></b></li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Non-cartesian <b><code>point</code></b> and \n        <b><code>points</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        Distances measured with method <a \n        href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#equirectangular\"\n        class=\"link\">Vector3d.equirectangular</a>.  For geodetic distances \n        use function <a href=\"pygeodesy.points-module.html#nearestOn5\" \n        class=\"link\">nearestOn5</a> or one of the \n        <code>LatLon.nearestOn6</code> methods.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"parse3d\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">parse3d</span>&nbsp;(<span class=\"sig-arg\">str3d</span>,\n        <span class=\"sig-arg\">sep</span>=<span class=\"sig-default\">','</span>,\n        <span class=\"sig-arg\">Vector</span>=<span class=\"sig-default\">&lt;class 'pygeodesy.vector3d.Vector3d'&gt;</span>,\n        <span class=\"sig-arg\">**Vector_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Parse an <code>&quot;x, y, z&quot;</code> string.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>str3d</code></strong> - X, y and z values (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>sep</code></strong> - Optional separator (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>Vector</code></strong> - Optional class (<a href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>).</li>\n        <li><strong class=\"pname\"><code>Vector_kwds</code></strong> - Optional <b><code>Vector</code></b> keyword arguments, ignored if\n          <code><b>Vector</b> is None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <b><code>Vector</code></b> instance or if <code><b>Vector</b> \n          is None</code>, a named <a \n          href=\"pygeodesy.namedTuples.Vector3Tuple-class.html\" \n          class=\"link\">Vector3Tuple</a><code>(x, y, z)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.VectorError-class.html\">VectorError</a></strong></code> - Invalid <b><code>str3d</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"sumOf\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">sumOf</span>&nbsp;(<span class=\"sig-arg\">vectors</span>,\n        <span class=\"sig-arg\">Vector</span>=<span class=\"sig-default\">&lt;class 'pygeodesy.vector3d.Vector3d'&gt;</span>,\n        <span class=\"sig-arg\">**Vector_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the <i>vectorial</i> sum of two oe more vectors.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>vectors</code></strong> - Vectors to be added (<a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>[]).</li>\n        <li><strong class=\"pname\"><code>Vector</code></strong> - Optional class for the vectorial sum (<a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>).</li>\n        <li><strong class=\"pname\"><code>Vector_kwds</code></strong> - Optional <b><code>Vector</code></b> keyword arguments, ignored if\n          <code><b>Vector</b> is None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Vectorial sum as <b><code>Vector</code></b> or if \n          <b><code>Vector</code> is None</b>, a named <a \n          href=\"pygeodesy.namedTuples.Vector3Tuple-class.html\" \n          class=\"link\">Vector3Tuple</a><code>(x, y, z)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.VectorError-class.html\">VectorError</a></strong></code> - No <b><code>vectors</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"trilaterate3d2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">trilaterate3d2</span>&nbsp;(<span class=\"sig-arg\">center1</span>,\n        <span class=\"sig-arg\">radius1</span>,\n        <span class=\"sig-arg\">center2</span>,\n        <span class=\"sig-arg\">radius2</span>,\n        <span class=\"sig-arg\">center3</span>,\n        <span class=\"sig-arg\">radius3</span>,\n        <span class=\"sig-arg\">eps</span>=<span class=\"sig-default\">2.220446049250313e-16</span>,\n        <span class=\"sig-arg\">**Vector_and_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Trilaterate three spheres, each given as a (3-D) center and a \n  radius.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>center1</code></strong> - Center of the 1st sphere (<code>Cartesian</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <code>Vector3Tuple</code> or \n          <code>Vector4Tuple</code>).</li>\n        <li><strong class=\"pname\"><code>radius1</code></strong> - Radius of the 1st sphere (same <code>units</code> as \n          <code>x</code>, <code>y</code> and <code>z</code>).</li>\n        <li><strong class=\"pname\"><code>center2</code></strong> - Center of the 2nd sphere (<code>Cartesian</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <code>Vector3Tuple</code> or \n          <code>Vector4Tuple</code>).</li>\n        <li><strong class=\"pname\"><code>radius2</code></strong> - Radius of this sphere (same <code>units</code> as <code>x</code>,\n          <code>y</code> and <code>z</code>).</li>\n        <li><strong class=\"pname\"><code>center3</code></strong> - Center of the 3rd sphere (<code>Cartesian</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <code>Vector3Tuple</code> or \n          <code>Vector4Tuple</code>).</li>\n        <li><strong class=\"pname\"><code>radius3</code></strong> - Radius of the 3rd sphere (same <code>units</code> as \n          <code>x</code>, <code>y</code> and <code>z</code>).</li>\n        <li><strong class=\"pname\"><code>eps</code></strong> - Pertubation tolerance (<code>scalar</code>), same units as \n          <code>x</code>, <code>y</code> and <code>z</code> or \n          <code>None</code> for no pertubations.</li>\n        <li><strong class=\"pname\"><code>Vector_and_kwds</code></strong> - Optional class <code><b>Vector</b>=None</code> to return the \n          trilateration and optionally, additional \n          <b><code>Vector</code></b> keyword arguments, otherwise \n          <b><code>center1</code></b>'s (sub-)class.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>2-Tuple with two trilaterated points, each a \n          <b><code>Vector</code></b> instance.  Both points are the same \n          instance if all three spheres abut/intersect in a single point.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ImportError</strong></code> - Package <code>numpy</code> not found, not installed or older than \n        version 1.10.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.IntersectionError-class.html\">IntersectionError</a></strong></code> - Near-concentric, -colinear, too distant or non-intersecting \n        spheres.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.NumPyError-class.html\">NumPyError</a></strong></code> - Some <code>numpy</code> issue.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>center1</code></b>, <b><code>center2</code></b> or\n        <b><code>center3</code></b>.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.UnitError-class.html\">UnitError</a></strong></code> - Invalid <b><code>radius1</code></b>, <b><code>radius2</code></b> or\n        <b><code>radius3</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Norrdine, A. <a \n        href=\"https://www.ResearchGate.net/publication/275027725\" \n        target=\"_top\"><i>An Algebraic Solution to the Multilateration \n        Problem</i></a>, the <a \n        href=\"https://www.ResearchGate.net/publication/288825016\" \n        target=\"_top\"><i>implementation</i></a> and function <a \n        href=\"pygeodesy.vector2d-module.html#trilaterate2d2\" \n        class=\"link\">pygeodesy.trilaterate2d2</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.vector3d.Vector3d-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.vector3d.Vector3d</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.vector3d-module.html\">Module&nbsp;vector3d</a> ::\n        Class&nbsp;Vector3d\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.vector3d.Vector3d-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Vector3d</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n       object --+            \n                |            \n     <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+        \n                    |        \n     <a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+    \n                        |    \n<a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">vector3dBase.Vector3dBase</a> --+\n                            |\n                           <strong class=\"uidshort\">Vector3d</strong>\n</pre>\n\n<dl><dt>Known Subclasses:</dt>\n<dd>\n      <ul class=\"subclass-list\">\n<li class=\"private\">ltpTuples._Vector3d</li><li>, <a href=\"pygeodesy.nvectorBase.NvectorBase-class.html\">nvectorBase.NvectorBase</a></li><li>, <a href=\"pygeodesy.cartesianBase.CartesianBase-class.html\">cartesianBase.CartesianBase</a></li>  </ul>\n</dd></dl>\n\n<hr />\n<p>Extended 3-D vector.</p>\n  <p>In a geodesy context, these may be used to represent:</p>\n  <ul>\n    <li>\n      n-vector, the normal to a point on the earth's surface\n    </li>\n    <li>\n      Earth-Centered, Earth-Fixed (ECEF) cartesian (== spherical n-vector)\n    </li>\n    <li>\n      great circle normal to the vector\n    </li>\n    <li>\n      motion vector on the earth's surface\n    </li>\n    <li>\n      etc.\n    </li>\n  </ul>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.vector3d.Vector3d-class.html#bearing\" class=\"summary-sig-name\">bearing</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">useZ</span>=<span class=\"summary-sig-default\">True</span>)</span><br />\n      Get this vector's &quot;bearing&quot;, the angle off the +Z axis, \n      clockwise.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.vector3d.Vector3d-class.html#circin6\" class=\"summary-sig-name\">circin6</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">point2</span>,\n        <span class=\"summary-sig-arg\">point3</span>,\n        <span class=\"summary-sig-arg\">eps</span>=<span class=\"summary-sig-default\">8.881784197001252e-16</span>)</span><br />\n      Return the radius and center of the <i>inscribed</i> aka <i>In- \n      circle</i> of a (3-D) triangle formed by this and two other points.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.vector3d.Vector3d-class.html#circum3\" class=\"summary-sig-name\">circum3</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">point2</span>,\n        <span class=\"summary-sig-arg\">point3</span>,\n        <span class=\"summary-sig-arg\">circum</span>=<span class=\"summary-sig-default\">True</span>,\n        <span class=\"summary-sig-arg\">eps</span>=<span class=\"summary-sig-default\">8.881784197001252e-16</span>)</span><br />\n      Return the radius and center of the smallest circle <i>through</i> or\n      <i>containing</i> this and two other (3-D) points.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.vector3d.Vector3d-class.html#circum4_\" class=\"summary-sig-name\">circum4_</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">*points</span>)</span><br />\n      Best-fit a sphere through this and two or more other (3-D) points.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.vector3d.Vector3d-class.html#iscolinearWith\" class=\"summary-sig-name\">iscolinearWith</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">point1</span>,\n        <span class=\"summary-sig-arg\">point2</span>,\n        <span class=\"summary-sig-arg\">eps</span>=<span class=\"summary-sig-default\">2.220446049250313e-16</span>)</span><br />\n      Check whether this and two other (3-D) points are colinear.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.vector3d.Vector3d-class.html#meeus2\" class=\"summary-sig-name\">meeus2</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">point2</span>,\n        <span class=\"summary-sig-arg\">point3</span>,\n        <span class=\"summary-sig-arg\">circum</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Return the radius and <i>Meeus</i>' Type of the smallest circle \n      <i>through</i> or <i>containing</i> this and two other (3-D) points.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.vector3d.Vector3d-class.html#nearestOn\" class=\"summary-sig-name\">nearestOn</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">point1</span>,\n        <span class=\"summary-sig-arg\">point2</span>,\n        <span class=\"summary-sig-arg\">within</span>=<span class=\"summary-sig-default\">True</span>)</span><br />\n      Locate the point between two points closest to this point.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.vector3d.Vector3d-class.html#nearestOn6\" class=\"summary-sig-name\">nearestOn6</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">points</span>,\n        <span class=\"summary-sig-arg\">closed</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">useZ</span>=<span class=\"summary-sig-default\">True</span>)</span><br />\n      Locate the point on a path or polygon closest to this point.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.vector3d.Vector3d-class.html#parse\" class=\"summary-sig-name\">parse</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">str3d</span>,\n        <span class=\"summary-sig-arg\">sep</span>=<span class=\"summary-sig-default\">','</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Parse an <code>&quot;x, y, z&quot;</code> string to a <a \n      href=\"pygeodesy.vector3d.Vector3d-class.html\" \n      class=\"link\">Vector3d</a> instance.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.vector3d.Vector3d-class.html#radii11\" class=\"summary-sig-name\">radii11</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">point2</span>,\n        <span class=\"summary-sig-arg\">point3</span>)</span><br />\n      Return the radii of the <code>Circum-</code>, <code>In-</code>, \n      <i>Soddy</i> and <code>Tangent</code> circles of a (3-D) triangle.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.vector3d.Vector3d-class.html#soddy4\" class=\"summary-sig-name\">soddy4</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">point2</span>,\n        <span class=\"summary-sig-arg\">point3</span>,\n        <span class=\"summary-sig-arg\">eps</span>=<span class=\"summary-sig-default\">8.881784197001252e-16</span>)</span><br />\n      Return the radius and center of the <code>inner</code> <i>Soddy</i> \n      circle of a (3-D) triangle.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.vector3d.Vector3d-class.html#toCartesian\" class=\"summary-sig-name\">toCartesian</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">Cartesian</span>,\n        <span class=\"summary-sig-arg\">**Cartesian_kwds</span>)</span><br />\n      Return this <code>Vector3d</code> as a <code>Cartesian</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.vector3d.Vector3d-class.html#trilaterate2d2\" class=\"summary-sig-name\">trilaterate2d2</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">radius</span>,\n        <span class=\"summary-sig-arg\">center2</span>,\n        <span class=\"summary-sig-arg\">radius2</span>,\n        <span class=\"summary-sig-arg\">center3</span>,\n        <span class=\"summary-sig-arg\">radius3</span>,\n        <span class=\"summary-sig-arg\">eps</span>=<span class=\"summary-sig-default\">8.881784197001252e-16</span>,\n        <span class=\"summary-sig-arg\">z</span>=<span class=\"summary-sig-default\">0</span>)</span><br />\n      Trilaterate this and two other circles, each given as a (2-D) center \n      and a radius.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.vector3d.Vector3d-class.html#trilaterate3d2\" class=\"summary-sig-name\">trilaterate3d2</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">radius</span>,\n        <span class=\"summary-sig-arg\">center2</span>,\n        <span class=\"summary-sig-arg\">radius2</span>,\n        <span class=\"summary-sig-arg\">center3</span>,\n        <span class=\"summary-sig-arg\">radius3</span>,\n        <span class=\"summary-sig-arg\">eps</span>=<span class=\"summary-sig-default\">8.881784197001252e-16</span>)</span><br />\n      Trilaterate this and two other spheres, each given as a (3-D) center \n      and a radius.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">vector3dBase.Vector3dBase</a></code></b>:\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__abs__\">__abs__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__add__\">__add__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__bool__\">__bool__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__ceil__\">__ceil__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__cmp__\">__cmp__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__div__\">__div__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__divmod__\">__divmod__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__eq__\">__eq__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__float__\">__float__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__floor__\">__floor__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__floordiv__\">__floordiv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__ge__\">__ge__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__gt__\">__gt__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__iadd__\">__iadd__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__idiv__\">__idiv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__ifloordiv__\">__ifloordiv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__imod__\">__imod__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__imul__\">__imul__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__init__\">__init__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__int__\">__int__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__ipow__\">__ipow__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__isub__\">__isub__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__itruediv__\">__itruediv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__le__\">__le__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__long__\">__long__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__lt__\">__lt__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__mod__\">__mod__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__mul__\">__mul__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__ne__\">__ne__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__neg__\">__neg__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__nonzero__\">__nonzero__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__pos__\">__pos__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__pow__\">__pow__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__radd__\">__radd__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rdiv__\">__rdiv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rdivmod__\">__rdivmod__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rfloordiv__\">__rfloordiv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rmod__\">__rmod__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rmul__\">__rmul__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__round__\">__round__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rpow__\">__rpow__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rsub__\">__rsub__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rtruediv__\">__rtruediv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__sub__\">__sub__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__truediv__\">__truediv__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__trunc__\">__trunc__</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#angleTo\">angleTo</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#apply\">apply</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#bools\">bools</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#cmp\">cmp</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#cross\">cross</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#dividedBy\">dividedBy</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#dividedBy_\">dividedBy_</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#dot\">dot</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#equals\">equals</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#equirectangular\">equirectangular</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#fabs\">fabs</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#floats\">floats</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#floorDividedBy\">floorDividedBy</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#floorDividedBy_\">floorDividedBy_</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#intermediateTo\">intermediateTo</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#ints\">ints</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#isconjugateTo\">isconjugateTo</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#isequalTo\">isequalTo</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#minus\">minus</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#minus_\">minus_</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#negate\">negate</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#others\">others</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#plus\">plus</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#plus_\">plus_</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#pow\">pow</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#rotate\">rotate</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#rotateAround\">rotateAround</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#sum\">sum</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#times\">times</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#times_\">times_</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#to3xyz\">to3xyz</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#unit\">unit</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#toRepr\">toRepr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\">vector3dBase.Vector3dBase</a></code></b>:\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#crosserrors\">crosserrors</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#euclid\">euclid</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#homogeneous\">homogeneous</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#length\">length</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#length2\">length2</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#x\">x</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#x2y2z2\">x2y2z2</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#x2y2z23\">x2y2z23</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#xyz\">xyz</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#xyz3\">xyz3</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#y\">y</a></code>,\n      <code><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#z\">z</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"bearing\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">bearing</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">useZ</span>=<span class=\"sig-default\">True</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Get this vector's &quot;bearing&quot;, the angle off the +Z axis, \n  clockwise.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>useZ</code></strong> - If <code>True</code>, use the Z component, otherwise ignore the Z\n          component and consider the +Y as the +Z axis.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Bearing (compass <code>degrees</code>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"circin6\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">circin6</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">point2</span>,\n        <span class=\"sig-arg\">point3</span>,\n        <span class=\"sig-arg\">eps</span>=<span class=\"sig-default\">8.881784197001252e-16</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the radius and center of the <i>inscribed</i> aka <i>In- \n  circle</i> of a (3-D) triangle formed by this and two other points.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>point2</code></strong> - Second point (<code>Cartesian</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <code>Vector3Tuple</code>, \n          <code>Vector4Tuple</code> or <code>Vector2Tuple</code> if \n          <code><b>useZ</b>=False</code>).</li>\n        <li><strong class=\"pname\"><code>point3</code></strong> - Third point (<code>Cartesian</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <code>Vector3Tuple</code>, \n          <code>Vector4Tuple</code> or <code>Vector2Tuple</code> if \n          <code><b>useZ</b>=False</code>).</li>\n        <li><strong class=\"pname\"><code>eps</code></strong> - Tolerance for function <a \n          href=\"pygeodesy.vector3d-module.html#trilaterate3d2\" \n          class=\"link\">pygeodesy.trilaterate3d2</a> if <code><b>useZ</b> is\n          True</code> otherwise <a \n          href=\"pygeodesy.vector2d-module.html#trilaterate2d2\" \n          class=\"link\">pygeodesy.trilaterate2d2</a>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><a href=\"pygeodesy.vector2d.Circin6Tuple-class.html\" \n          class=\"link\">Circin6Tuple</a><code>(radius, center, deltas, cA, \n          cB, cC)</code>.  The <code>center</code> and contact points \n          <code>cA</code>, <code>cB</code> and <code>cC</code>, each an \n          instance of this (sub-)class, are co-planar with this and the two\n          given points.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ImportError</strong></code> - Package <code>numpy</code> not found, not installed or older than \n        version 1.10.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.IntersectionError-class.html\">IntersectionError</a></strong></code> - Near-coincident or -colinear points or a trilateration or \n        <code>numpy</code> issue.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>point2</code></b> or <b><code>point3</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.vector2d-module.html#circin6\" \n        class=\"link\">pygeodesy.circin6</a>, <a \n        href=\"https://MathWorld.Wolfram.com/Incircle.html\" \n        target=\"_top\">Incircle</a> and <a \n        href=\"https://MathWorld.Wolfram.com/ContactTriangle.html\" \n        target=\"_top\">Contact Triangle</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"circum3\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">circum3</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">point2</span>,\n        <span class=\"sig-arg\">point3</span>,\n        <span class=\"sig-arg\">circum</span>=<span class=\"sig-default\">True</span>,\n        <span class=\"sig-arg\">eps</span>=<span class=\"sig-default\">8.881784197001252e-16</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the radius and center of the smallest circle <i>through</i> or \n  <i>containing</i> this and two other (3-D) points.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>point2</code></strong> - Second point (<code>Cartesian</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <code>Vector3Tuple</code> or \n          <code>Vector4Tuple</code>).</li>\n        <li><strong class=\"pname\"><code>point3</code></strong> - Third point (<code>Cartesian</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <code>Vector3Tuple</code> or \n          <code>Vector4Tuple</code>).</li>\n        <li><strong class=\"pname\"><code>circum</code></strong> - If <code>True</code>, return the <code>circumradius</code> and \n          <code>circumcenter</code>, always, ignoring the <i>Meeus</i>' \n          Type I case (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>eps</code></strong> - Tolerance passed to function <a \n          href=\"pygeodesy.vector3d-module.html#trilaterate3d2\" \n          class=\"link\">pygeodesy.trilaterate3d2</a>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.vector2d.Circum3Tuple-class.html\" \n          class=\"link\">Circum3Tuple</a><code>(radius, center, \n          deltas)</code>.  The <code>center</code>, an instance of this \n          (sub-)class, is co-planar with this and the two given points.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ImportError</strong></code> - Package <code>numpy</code> not found, not installed or older than \n        version 1.10.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.IntersectionError-class.html\">IntersectionError</a></strong></code> - Near-concentric, -coincident or -colinear points or a trilateration\n        or <code>numpy</code> issue.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>point2</code></b> or <b><code>point3</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.vector2d-module.html#circum3\" \n        class=\"link\">pygeodesy.circum3</a> and methods <a \n        href=\"pygeodesy.vector3d.Vector3d-class.html#circum4_\" \n        class=\"link\">circum4_</a> and <a \n        href=\"pygeodesy.vector3d.Vector3d-class.html#meeus2\" \n        class=\"link\">meeus2</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"circum4_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">circum4_</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">*points</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Best-fit a sphere through this and two or more other (3-D) points.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>points</code></strong> - Other points (each a <code>Cartesian</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <code>Vector3Tuple</code> or \n          <code>Vector4Tuple</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><a href=\"pygeodesy.vector2d.Circum4Tuple-class.html\" \n          class=\"link\">Circum4Tuple</a><code>(radius, center, rank, \n          residuals)</code> with <code>center</code> an instance if this \n          (sub-)class.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ImportError</strong></code> - Package <code>numpy</code> not found, not installed or older than \n        version 1.10.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.NumPyError-class.html\">NumPyError</a></strong></code> - Some <code>numpy</code> issue.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.PointsError-class.html\">PointsError</a></strong></code> - Too few <b><code>points</code></b>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - One of the <b><code>points</code></b> invalid.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.vector2d-module.html#circum4_\" \n        class=\"link\">pygeodesy.circum4_</a> and methods <a \n        href=\"pygeodesy.vector3d.Vector3d-class.html#circum3\" \n        class=\"link\">circum3</a> and <a \n        href=\"pygeodesy.vector3d.Vector3d-class.html#meeus2\" \n        class=\"link\">meeus2</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"iscolinearWith\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">iscolinearWith</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">point1</span>,\n        <span class=\"sig-arg\">point2</span>,\n        <span class=\"sig-arg\">eps</span>=<span class=\"sig-default\">2.220446049250313e-16</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Check whether this and two other (3-D) points are colinear.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>point1</code></strong> - One point (<code>Cartesian</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <code>Vector3Tuple</code> or \n          <code>Vector4Tuple</code>).</li>\n        <li><strong class=\"pname\"><code>point2</code></strong> - An other point (<code>Cartesian</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <code>Vector3Tuple</code> or \n          <code>Vector4Tuple</code>).</li>\n        <li><strong class=\"pname\"><code>eps</code></strong> - Tolerance (<code>scalar</code>), same units as <code>x</code>, \n          <code>y</code>, and <code>z</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>True</code> if this point is colinear with \n          <b><code>point1</code></b> and <b><code>point2</code></b>, \n          <code>False</code> otherwise.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>point1</code></b> or <b><code>point2</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <a href=\"pygeodesy.vector3d.Vector3d-class.html#nearestOn\" \n        class=\"link\">nearestOn</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"meeus2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">meeus2</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">point2</span>,\n        <span class=\"sig-arg\">point3</span>,\n        <span class=\"sig-arg\">circum</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the radius and <i>Meeus</i>' Type of the smallest circle \n  <i>through</i> or <i>containing</i> this and two other (3-D) points.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>point2</code></strong> - Second point (<code>Cartesian</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <code>Vector3Tuple</code> or \n          <code>Vector4Tuple</code>).</li>\n        <li><strong class=\"pname\"><code>point3</code></strong> - Third point (<code>Cartesian</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <code>Vector3Tuple</code> or \n          <code>Vector4Tuple</code>).</li>\n        <li><strong class=\"pname\"><code>circum</code></strong> - If <code>True</code>, return the <code>circumradius</code> and \n          <code>circumcenter</code> always, overriding <i>Meeus</i>' Type \n          II case (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><a href=\"pygeodesy.vector2d.Meeus2Tuple-class.html\" \n          class=\"link\">Meeus2Tuple</a><code>(radius, Type)</code>, with \n          <code>Type</code> the <code>circumcenter</code> iff \n          <code><b>circum</b>=True</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.IntersectionError-class.html\">IntersectionError</a></strong></code> - Coincident or colinear points, iff <code><b>circum</b>=True</code>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>point2</code></b> or <b><code>point3</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.vector2d-module.html#meeus2\" \n        class=\"link\">pygeodesy.meeus2</a> and methods <a \n        href=\"pygeodesy.vector3d.Vector3d-class.html#circum3\" \n        class=\"link\">circum3</a> and <a \n        href=\"pygeodesy.vector3d.Vector3d-class.html#circum4_\" \n        class=\"link\">circum4_</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"nearestOn\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">nearestOn</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">point1</span>,\n        <span class=\"sig-arg\">point2</span>,\n        <span class=\"sig-arg\">within</span>=<span class=\"sig-default\">True</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Locate the point between two points closest to this point.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>point1</code></strong> - Start point (<code>Cartesian</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <code>Vector3Tuple</code> or \n          <code>Vector4Tuple</code>).</li>\n        <li><strong class=\"pname\"><code>point2</code></strong> - End point (<code>Cartesian</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <code>Vector3Tuple</code> or \n          <code>Vector4Tuple</code>).</li>\n        <li><strong class=\"pname\"><code>within</code></strong> - If <code>True</code>, return the closest point between the given \n          points, otherwise the closest point on the extended line through \n          both points (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Closest point, either <b><code>point1</code></b> or \n          <b><code>point2</code></b> or an instance of this (sub-)class.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>point1</code></b> or <b><code>point2</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <a \n        href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html#nearestOn3\"\n        class=\"link\">sphericalTrigonometry.LatLon.nearestOn3</a> and <a \n        href=\"https://MathWorld.Wolfram.com/Point-LineDistance3-Dimensional.html\"\n        target=\"_top\">3-D Point-Line Distance</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"nearestOn6\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">nearestOn6</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">points</span>,\n        <span class=\"sig-arg\">closed</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">useZ</span>=<span class=\"sig-default\">True</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Locate the point on a path or polygon closest to this point.</p>\n  <p>The closest point is either on and within the extent of a polygon edge\n  or the nearest of that edge's end points.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>points</code></strong> - The path or polygon points (<code>Cartesian</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <code>Vector3Tuple</code> or \n          <code>Vector4Tuple</code>[]).</li>\n        <li><strong class=\"pname\"><code>closed</code></strong> - Optionally, close the path or polygon (<code>bool</code>).</li>\n        <li><strong class=\"pname\"><code>useZ</code></strong> - If <code>True</code>, use the Z components, otherwise force \n          <code>z=INT0</code> (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.namedTuples.NearestOn6Tuple-class.html\" \n          class=\"link\">NearestOn6Tuple</a><code>(closest, distance, fi, j, \n          start, end)</code> with the <code>closest</code>, the \n          <code>start</code> and the <code>end</code> point each an \n          instance of this point's (sub-)class.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.PointsError-class.html\">PointsError</a></strong></code> - Insufficient number of <b><code>points</code></b></li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Non-cartesian <b><code>points</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        Distances measured with method <a \n        href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#equirectangular\"\n        class=\"link\">Vector3d.equirectangular</a>.\n      </p>\n      <p><strong>See Also:</strong>\n        Function <a \n        href=\"pygeodesy.vector3d.Vector3d-class.html#nearestOn6\" \n        class=\"link\">nearestOn6</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"parse\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">parse</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">str3d</span>,\n        <span class=\"sig-arg\">sep</span>=<span class=\"sig-default\">','</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Parse an <code>&quot;x, y, z&quot;</code> string to a <a \n  href=\"pygeodesy.vector3d.Vector3d-class.html\" class=\"link\">Vector3d</a> \n  instance.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>str3d</code></strong> - X, y and z string (<code>str</code>), see function <a \n          href=\"pygeodesy.vector3d-module.html#parse3d\" \n          class=\"link\">parse3d</a>.</li>\n        <li><strong class=\"pname\"><code>sep</code></strong> - Optional separator (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional instance <code><b>name</b>=NN</code> (<code>str</code>),\n          overriding this name.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The instance (<a href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.VectorError-class.html\">VectorError</a></strong></code> - Invalid <b><code>str3d</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"radii11\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">radii11</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">point2</span>,\n        <span class=\"sig-arg\">point3</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the radii of the <code>Circum-</code>, <code>In-</code>, \n  <i>Soddy</i> and <code>Tangent</code> circles of a (3-D) triangle.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>point2</code></strong> - Second point (<code>Cartesian</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <code>Vector3Tuple</code>, \n          <code>Vector4Tuple</code> or <code>Vector2Tuple</code> if \n          <code><b>useZ</b>=False</code>).</li>\n        <li><strong class=\"pname\"><code>point3</code></strong> - Third point (<code>Cartesian</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <code>Vector3Tuple</code>, \n          <code>Vector4Tuple</code> or <code>Vector2Tuple</code> if \n          <code><b>useZ</b>=False</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><a href=\"pygeodesy.vector2d.Radii11Tuple-class.html\" \n          class=\"link\">Radii11Tuple</a><code>(rA, rB, rC, cR, rIn, riS, \n          roS, a, b, c, s)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.TriangleError-class.html\">TriangleError</a></strong></code> - Near-coincident or -colinear points.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>point2</code></b> or <b><code>point3</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.vector2d-module.html#radii11\" \n        class=\"link\">pygeodesy.radii11</a>, <a \n        href=\"https://MathWorld.Wolfram.com/Incircle.html\" \n        target=\"_top\">Incircle</a>, <a \n        href=\"https://MathWorld.Wolfram.com/SoddyCircles.html\" \n        target=\"_top\">Soddy Circles</a> and <a \n        href=\"https://MathWorld.Wolfram.com/TangentCircles.html\" \n        target=\"_top\">Tangent Circles</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"soddy4\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">soddy4</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">point2</span>,\n        <span class=\"sig-arg\">point3</span>,\n        <span class=\"sig-arg\">eps</span>=<span class=\"sig-default\">8.881784197001252e-16</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the radius and center of the <code>inner</code> <i>Soddy</i> \n  circle of a (3-D) triangle.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>point2</code></strong> - Second point (<code>Cartesian</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <code>Vector3Tuple</code>, \n          <code>Vector4Tuple</code> or <code>Vector2Tuple</code> if \n          <code><b>useZ</b>=False</code>).</li>\n        <li><strong class=\"pname\"><code>point3</code></strong> - Third point (<code>Cartesian</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <code>Vector3Tuple</code>, \n          <code>Vector4Tuple</code> or <code>Vector2Tuple</code> if \n          <code><b>useZ</b>=False</code>).</li>\n        <li><strong class=\"pname\"><code>eps</code></strong> - Tolerance for function <a \n          href=\"pygeodesy.vector3d-module.html#trilaterate3d2\" \n          class=\"link\">pygeodesy.trilaterate3d2</a> if <code><b>useZ</b> is\n          True</code> otherwise <a \n          href=\"pygeodesy.vector2d-module.html#trilaterate2d2\" \n          class=\"link\">pygeodesy.trilaterate2d2</a>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><a href=\"pygeodesy.vector2d.Soddy4Tuple-class.html\" \n          class=\"link\">Soddy4Tuple</a><code>(radius, center, deltas, \n          outer)</code>.  The <code>center</code>, an instance of \n          <b><code>point1</code></b>'s (sub-)class, is co-planar with the \n          three given points.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ImportError</strong></code> - Package <code>numpy</code> not found, not installed or older than \n        version 1.10.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.IntersectionError-class.html\">IntersectionError</a></strong></code> - Near-coincident or -colinear points or a trilateration or \n        <code>numpy</code> issue.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>point2</code></b> or <b><code>point3</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.vector2d-module.html#soddy4\" \n        class=\"link\">pygeodesy.soddy4</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"toCartesian\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toCartesian</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">Cartesian</span>,\n        <span class=\"sig-arg\">**Cartesian_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return this <code>Vector3d</code> as a <code>Cartesian</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>Cartesian</code></strong> - The <code>Cartesian</code> class to use.</li>\n        <li><strong class=\"pname\"><code>Cartesian_kwds</code></strong> - Optional, additional <code>Cartesian</code> keyword arguments.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The <code><b>Cartesian</b></code> instance.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"trilaterate2d2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">trilaterate2d2</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">radius</span>,\n        <span class=\"sig-arg\">center2</span>,\n        <span class=\"sig-arg\">radius2</span>,\n        <span class=\"sig-arg\">center3</span>,\n        <span class=\"sig-arg\">radius3</span>,\n        <span class=\"sig-arg\">eps</span>=<span class=\"sig-default\">8.881784197001252e-16</span>,\n        <span class=\"sig-arg\">z</span>=<span class=\"sig-default\">0</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Trilaterate this and two other circles, each given as a (2-D) center \n  and a radius.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>radius</code></strong> - Radius of this circle (same <code>units</code> as this \n          <code>x</code> and <code>y</code>.</li>\n        <li><strong class=\"pname\"><code>center2</code></strong> - Center of the 2nd circle (<code>Cartesian</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <code>Vector2Tuple</code>, \n          <code>Vector3Tuple</code> or <code>Vector4Tuple</code>).</li>\n        <li><strong class=\"pname\"><code>radius2</code></strong> - Radius of this circle (same <code>units</code> as this \n          <code>x</code> and <code>y</code>.</li>\n        <li><strong class=\"pname\"><code>center3</code></strong> - Center of the 3rd circle (<code>Cartesian</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <code>Vector2Tuple</code>, \n          <code>Vector3Tuple</code> or <code>Vector4Tuple</code>).</li>\n        <li><strong class=\"pname\"><code>radius3</code></strong> - Radius of the 3rd circle (same <code>units</code> as this \n          <code>x</code> and <code>y</code>.</li>\n        <li><strong class=\"pname\"><code>eps</code></strong> - Tolerance to check the trilaterated point <i>delta</i> on all 3 \n          circles (<code>scalar</code>) or <code>None</code> for no \n          checking.</li>\n        <li><strong class=\"pname\"><code>z</code></strong> - Optional Z component of the trilaterated point \n          (<code>scalar</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Trilaterated point, an instance of this (sub-)class with \n          <code>z=<b>z</b></code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.IntersectionError-class.html\">IntersectionError</a></strong></code> - No intersection, near-concentric or -colinear centers, \n        trilateration failed some other way or the trilaterated point is \n        off one circle by more than <b><code>eps</code></b>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>center2</code></b> or <b><code>center3</code></b>.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.UnitError-class.html\">UnitError</a></strong></code> - Invalid <b><code>radius1</code></b>, <b><code>radius2</code></b> or\n        <b><code>radius3</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.vector2d-module.html#trilaterate2d2\" \n        class=\"link\">pygeodesy.trilaterate2d2</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"trilaterate3d2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">trilaterate3d2</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">radius</span>,\n        <span class=\"sig-arg\">center2</span>,\n        <span class=\"sig-arg\">radius2</span>,\n        <span class=\"sig-arg\">center3</span>,\n        <span class=\"sig-arg\">radius3</span>,\n        <span class=\"sig-arg\">eps</span>=<span class=\"sig-default\">8.881784197001252e-16</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Trilaterate this and two other spheres, each given as a (3-D) center \n  and a radius.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>radius</code></strong> - Radius of this sphere (same <code>units</code> as this \n          <code>x</code>, <code>y</code> and <code>z</code>).</li>\n        <li><strong class=\"pname\"><code>center2</code></strong> - Center of the 2nd sphere (<code>Cartesian</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <code>Vector3Tuple</code> or \n          <code>Vector4Tuple</code>).</li>\n        <li><strong class=\"pname\"><code>radius2</code></strong> - Radius of this sphere (same <code>units</code> as this \n          <code>x</code>, <code>y</code> and <code>z</code>).</li>\n        <li><strong class=\"pname\"><code>center3</code></strong> - Center of the 3rd sphere (<code>Cartesian</code>, , <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <code>Vector3Tuple</code> or \n          <code>Vector4Tuple</code>).</li>\n        <li><strong class=\"pname\"><code>radius3</code></strong> - Radius of the 3rd sphere (same <code>units</code> as this \n          <code>x</code>, <code>y</code> and <code>z</code>).</li>\n        <li><strong class=\"pname\"><code>eps</code></strong> - Pertubation tolerance (<code>scalar</code>), same units as \n          <code>x</code>, <code>y</code> and <code>z</code> or \n          <code>None</code> for no pertubations.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>2-Tuple with two trilaterated points, each an instance of this \n          (sub-)class.  Both points are the same instance if all three \n          spheres intersect or abut in a single point.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ImportError</strong></code> - Package <code>numpy</code> not found, not installed or older than \n        version 1.10.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.IntersectionError-class.html\">IntersectionError</a></strong></code> - Near-concentric, -colinear, too distant or non-intersecting spheres\n        or <code>numpy</code> issue.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.NumPyError-class.html\">NumPyError</a></strong></code> - Some <code>numpy</code> issue.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>center2</code></b> or <b><code>center3</code></b>.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.UnitError-class.html\">UnitError</a></strong></code> - Invalid <b><code>radius</code></b>, <b><code>radius2</code></b> or \n        <b><code>radius3</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        Package <a href=\"https://PyPI.org/project/numpy\" \n        target=\"_top\">numpy</a> is required, version 1.10 or later.\n      </p>\n      <p><strong>See Also:</strong>\n        Norrdine, A. <a \n        href=\"https://www.ResearchGate.net/publication/275027725\" \n        target=\"_top\"><i>An Algebraic Solution to the Multilateration \n        Problem</i></a> and <a \n        href=\"https://www.ResearchGate.net/publication/288825016\" \n        target=\"_top\"><i>implementation</i></a>.\n      </p>\n</div></td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:21 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.vector3dBase-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.vector3dBase</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        Module&nbsp;vector3dBase\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.vector3dBase-module.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== MODULE DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Module vector3dBase</h1><p class=\"nomargin-top\"></p>\n<p>(INTERNAL) Private, 3-D vector base class \n  <code>Vector3dBase</code>.</p>\n  <p>A pure Python implementation of vector-based functions by <i>(C) Chris\n  Veness 2011-2024</i> published under the same MIT Licence**, see <a \n  href=\"https://www.Movable-Type.co.UK/scripts/latlong-vectors.html\" \n  target=\"_top\">Vector-based geodesy</a>.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>Version:</strong>\n        25.10.25\n      </p>\n</div><!-- ==================== CLASSES ==================== -->\n<a name=\"section-Classes\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Classes</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\" class=\"summary-name\">Vector3dBase</a><br />\n      (INTERNAL) Generic 3-D vector base class.\n    </td>\n  </tr>\n</table>\n<!-- ==================== VARIABLES ==================== -->\n<a name=\"section-Variables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Variables</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"__all__\"></a><span class=\"summary-name\">__all__</span> = <code title=\"_ALL_LAZY.vector3dBase\">_ALL_LAZY.vector3dBase</code>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.vector3dBase.Vector3dBase-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.vector3dBase.Vector3dBase</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.vector3dBase-module.html\">Module&nbsp;vector3dBase</a> ::\n        Class&nbsp;Vector3dBase\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Vector3dBase</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+        \n           |        \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n               |    \n<a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+\n                   |\n                  <strong class=\"uidshort\">Vector3dBase</strong>\n</pre>\n\n<dl><dt>Known Subclasses:</dt>\n<dd>\n      <ul class=\"subclass-list\">\n<li><a href=\"pygeodesy.vector3d.Vector3d-class.html\">vector3d.Vector3d</a></li>  </ul>\n</dd></dl>\n\n<hr />\n<p>(INTERNAL) Generic 3-D vector base class.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">x_xyz</span>,\n        <span class=\"summary-sig-arg\">y</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">z</span>=<span class=\"summary-sig-default\">0</span>,\n        <span class=\"summary-sig-arg\">ll</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      New <a href=\"pygeodesy.vector3d.Vector3d-class.html\" \n      class=\"link\">Vector3d</a> or <code>Vector3dBase</code> instance.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__abs__\" class=\"summary-sig-name\">__abs__</a>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Return the norm of this vector.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__add__\" class=\"summary-sig-name\">__add__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span><br />\n      Add this to an other vector (<a \n      href=\"pygeodesy.vector3d.Vector3d-class.html\" \n      class=\"link\">Vector3d</a>).</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__bool__\" class=\"summary-sig-name\">__bool__</a>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Is this vector non-zero?</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__ceil__\" class=\"summary-sig-name\">__ceil__</a>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Return a vector with the <code>ceil</code> of these components.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__cmp__\" class=\"summary-sig-name\">__cmp__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span><br />\n      Compare this and an other vector (<a \n      href=\"pygeodesy.vector3d.Vector3d-class.html\" \n      class=\"link\">Vector3d</a>).</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#cmp\" class=\"summary-sig-name\">cmp</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span><br />\n      Compare this and an other vector (<a \n      href=\"pygeodesy.vector3d.Vector3d-class.html\" \n      class=\"link\">Vector3d</a>).</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__divmod__\" class=\"summary-sig-name\">__divmod__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">scalar</span>)</span><br />\n      Apply <code>scalar</code> divmod to this vector's components.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__eq__\" class=\"summary-sig-name\">__eq__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span><br />\n      Is this vector equal to an other vector?</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__float__\"></a><span class=\"summary-sig-name\">__float__</span>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Not implemented, see method <code>float</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__floor__\" class=\"summary-sig-name\">__floor__</a>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Return a vector with the <code>floor</code> of each components.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__floordiv__\" class=\"summary-sig-name\">__floordiv__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">scalar</span>)</span><br />\n      Floor-divide this vector by a scalar, <code>this // \n      <b>scalar</b></code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__ge__\" class=\"summary-sig-name\">__ge__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span><br />\n      Is this vector longer than or equal to an other vector?</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__gt__\" class=\"summary-sig-name\">__gt__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span><br />\n      Is this vector longer than an other vector?</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__hash__\" class=\"summary-sig-name\">__hash__</a>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Return this instance' <code>hash</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__iadd__\" class=\"summary-sig-name\">__iadd__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span><br />\n      Add this and an other vector <i>in-place</i>, <code>this += \n      <b>other</b></code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__ifloordiv__\" class=\"summary-sig-name\">__ifloordiv__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">scalar</span>)</span><br />\n      Floor-divide this vector by a scalar <i>in-place</i>, <code>this //= \n      <b>scalar</b></code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__imatmul__\" class=\"summary-sig-name\">__imatmul__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span><br />\n      Cross multiply this and an other vector <i>in-place</i>, <code>this \n      @= <b>other</b></code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__imod__\"></a><span class=\"summary-sig-name\">__imod__</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span><br />\n      Not implemented.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__imul__\" class=\"summary-sig-name\">__imul__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">scalar</span>)</span><br />\n      Multiply this vector by a scalar <i>in-place</i>, <code>this *= \n      <b>scalar</b></code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__int__\"></a><span class=\"summary-sig-name\">__int__</span>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Not implemented, see method <code>ints</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__ipow__\" class=\"summary-sig-name\">__ipow__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">scalar</span>,\n        <span class=\"summary-sig-arg\">*mod</span>)</span><br />\n      Raise each component <i>in-place</i> as <code>pow(C, \n      <b>scalar</b>)</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__isub__\" class=\"summary-sig-name\">__isub__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span><br />\n      Subtract an other vector from this one <i>in-place</i>, <code>this -=\n      <b>other</b></code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__itruediv__\" class=\"summary-sig-name\">__itruediv__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">scalar</span>)</span><br />\n      Divide this vector by a scalar <i>in-place</i>, <code>this /= \n      <b>scalar</b></code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__le__\" class=\"summary-sig-name\">__le__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span><br />\n      Is this vector shorter than or equal to an other vector?</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__lt__\" class=\"summary-sig-name\">__lt__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span><br />\n      Is this vector shorter than an other vector?</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__matmul__\" class=\"summary-sig-name\">__matmul__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span><br />\n      Compute the cross product of this and an other vector, <code>this @ \n      <b>other</b></code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__mod__\" class=\"summary-sig-name\">__mod__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">modulus</span>)</span><br />\n      Apply <code>scalar</code> modulo to this vector's components.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__mul__\" class=\"summary-sig-name\">__mul__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">scalar</span>)</span><br />\n      Multiply this vector by a scalar, <code>this * <b>scalar</b></code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__ne__\" class=\"summary-sig-name\">__ne__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span><br />\n      Is this vector not equal to an other vector?</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__neg__\" class=\"summary-sig-name\">__neg__</a>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Return the opposite of this vector.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__pos__\" class=\"summary-sig-name\">__pos__</a>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Return this vector <i>as-is</i> or a copy.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__pow__\" class=\"summary-sig-name\">__pow__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">scalar</span>,\n        <span class=\"summary-sig-arg\">*mod</span>)</span><br />\n      Return a vector with components as <code>pow(C, \n      <b>scalar</b>)</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__radd__\" class=\"summary-sig-name\">__radd__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span><br />\n      Add this vector to an other vector, <code><b>other</b> + this</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__rdivmod__\"></a><span class=\"summary-sig-name\">__rdivmod__</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span><br />\n      Not implemented.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__rfloordiv__\"></a><span class=\"summary-sig-name\">__rfloordiv__</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span><br />\n      Not implemented.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rmatmul__\" class=\"summary-sig-name\">__rmatmul__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span><br />\n      Compute the cross product of an other and this vector, \n      <code><b>other</b> @ this</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__rmod__\"></a><span class=\"summary-sig-name\">__rmod__</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span><br />\n      Not implemented.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rmul__\" class=\"summary-sig-name\">__rmul__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">scalar</span>)</span><br />\n      Multiply this vector by a scalar, <code>this * <b>scalar</b></code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__round__\" class=\"summary-sig-name\">__round__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">*ndigits</span>)</span><br />\n      Return a vector with these components <code>rounded</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__rpow__\"></a><span class=\"summary-sig-name\">__rpow__</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>,\n        <span class=\"summary-sig-arg\">*mod</span>)</span><br />\n      Not implemented.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__rsub__\" class=\"summary-sig-name\">__rsub__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span><br />\n      Subtract this vector from an other vector, <code><b>other</b> - \n      this</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__rtruediv__\"></a><span class=\"summary-sig-name\">__rtruediv__</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span><br />\n      Not implemented.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__sub__\" class=\"summary-sig-name\">__sub__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span><br />\n      Subtract an other vector from this vector, <code>this - \n      <b>other</b></code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__truediv__\" class=\"summary-sig-name\">__truediv__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">scalar</span>)</span><br />\n      Divide this vector by a scalar, <code>this / <b>scalar</b></code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__trunc__\" class=\"summary-sig-name\">__trunc__</a>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Return a vector with the <code>trunc</code> of these components.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__div__\" class=\"summary-sig-name\">__div__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">scalar</span>)</span><br />\n      Divide this vector by a scalar, <code>this / <b>scalar</b></code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__idiv__\" class=\"summary-sig-name\">__idiv__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">scalar</span>)</span><br />\n      Divide this vector by a scalar <i>in-place</i>, <code>this /= \n      <b>scalar</b></code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__long__\"></a><span class=\"summary-sig-name\">__long__</span>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Not implemented, see method <code>ints</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#__nonzero__\" class=\"summary-sig-name\">__nonzero__</a>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Is this vector non-zero?</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"__rdiv__\"></a><span class=\"summary-sig-name\">__rdiv__</span>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span><br />\n      Not implemented.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#angleTo\" class=\"summary-sig-name\">angleTo</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>,\n        <span class=\"summary-sig-arg\">vSign</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">wrap</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Compute the angle between this and an other vector.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#apply\" class=\"summary-sig-name\">apply</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">fun2</span>,\n        <span class=\"summary-sig-arg\">other_x</span>,\n        <span class=\"summary-sig-arg\">*y_z</span>,\n        <span class=\"summary-sig-arg\">**fun2_kwds</span>)</span><br />\n      Apply a 2-argument function pairwise to the components of this and an\n      other vector.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"bools\"></a><span class=\"summary-sig-name\">bools</span>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Return the vector with <code>bool</code> components.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#cross\" class=\"summary-sig-name\">cross</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>,\n        <span class=\"summary-sig-arg\">raiser</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">eps0</span>=<span class=\"summary-sig-default\">2.220446049250313e-16</span>)</span><br />\n      Compute the cross product of this and an other vector.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#dividedBy\" class=\"summary-sig-name\">dividedBy</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">scalar</span>)</span><br />\n      Divide this vector by a scalar.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#dividedBy_\" class=\"summary-sig-name\">dividedBy_</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">scalar_x</span>,\n        <span class=\"summary-sig-arg\">*y_z</span>)</span><br />\n      Divide this vector by separate X, Y and Z divisors.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#dot\" class=\"summary-sig-name\">dot</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span><br />\n      Compute the dot (scalar) product of this and an other vector.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#equals\" class=\"summary-sig-name\">equals</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>,\n        <span class=\"summary-sig-arg\">units</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      DEPRECATED, use method <code>isequalTo</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#equirectangular\" class=\"summary-sig-name\">equirectangular</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span><br />\n      <i>Approximate</i> the difference between this and an other vector.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"fabs\"></a><span class=\"summary-sig-name\">fabs</span>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Return the vector with <code>fabs</code> components.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"floats\"></a><span class=\"summary-sig-name\">floats</span>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Return the vector with <code>float</code> components.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#floorDividedBy\" class=\"summary-sig-name\">floorDividedBy</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">scalar</span>)</span><br />\n      Floor-divide this vector by a scalar.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#floorDividedBy_\" class=\"summary-sig-name\">floorDividedBy_</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">scalar_x</span>,\n        <span class=\"summary-sig-arg\">*y_z</span>)</span><br />\n      Floor-divide this vector by separate X, Y and Z divisors.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#intermediateTo\" class=\"summary-sig-name\">intermediateTo</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>,\n        <span class=\"summary-sig-arg\">fraction</span>,\n        <span class=\"summary-sig-arg\">**unused</span>)</span><br />\n      Locate the vector at a given fraction between (or along) this and an \n      other vector.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a name=\"ints\"></a><span class=\"summary-sig-name\">ints</span>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Return the vector with <code>int</code> components.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#isconjugateTo\" class=\"summary-sig-name\">isconjugateTo</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>,\n        <span class=\"summary-sig-arg\">minum</span>=<span class=\"summary-sig-default\">1</span>,\n        <span class=\"summary-sig-arg\">eps</span>=<span class=\"summary-sig-default\">2.220446049250313e-16</span>)</span><br />\n      Determine whether this and an other vector are conjugates.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#isequalTo\" class=\"summary-sig-name\">isequalTo</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>,\n        <span class=\"summary-sig-arg\">units</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">eps</span>=<span class=\"summary-sig-default\">2.220446049250313e-16</span>)</span><br />\n      Check if this and an other vector are equal or equivalent.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#minus\" class=\"summary-sig-name\">minus</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span><br />\n      Subtract an other vector from this vector.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#minus_\" class=\"summary-sig-name\">minus_</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other_x</span>,\n        <span class=\"summary-sig-arg\">*y_z</span>)</span><br />\n      Subtract separate X, Y and Z components from this vector.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#negate\" class=\"summary-sig-name\">negate</a>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      Return the opposite of this vector.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#others\" class=\"summary-sig-name\">others</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">*other</span>,\n        <span class=\"summary-sig-arg\">**name_other_up</span>)</span><br />\n      Refined class comparison.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#plus\" class=\"summary-sig-name\">plus</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span><br />\n      Add this vector and an other vector.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#sum\" class=\"summary-sig-name\">sum</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other</span>)</span><br />\n      Add this vector and an other vector.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#plus_\" class=\"summary-sig-name\">plus_</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other_x</span>,\n        <span class=\"summary-sig-arg\">*y_z</span>)</span><br />\n      Sum of this vector and separate X, Y and Z components.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#pow\" class=\"summary-sig-name\">pow</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">scalar</span>,\n        <span class=\"summary-sig-arg\">*mod</span>)</span><br />\n      Raise each X, Y and Z to <code>scalar</code> power.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#rotate\" class=\"summary-sig-name\">rotate</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">axis</span>,\n        <span class=\"summary-sig-arg\">theta</span>,\n        <span class=\"summary-sig-arg\">fma</span>=<span class=\"summary-sig-default\">False</span>)</span><br />\n      Rotate this vector around an axis by a specified angle.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#rotateAround\" class=\"summary-sig-name\">rotateAround</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">axis</span>,\n        <span class=\"summary-sig-arg\">theta</span>)</span><br />\n      DEPRECATED, use method <code>rotate</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#times\" class=\"summary-sig-name\">times</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">factor</span>)</span><br />\n      Multiply this vector by a scalar.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#times_\" class=\"summary-sig-name\">times_</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">other_x</span>,\n        <span class=\"summary-sig-arg\">*y_z</span>)</span><br />\n      Multiply this vector's components by separate X, Y and Z factors.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#to3xyz\" class=\"summary-sig-name\">to3xyz</a>(<span class=\"summary-sig-arg\">self</span>)</span><br />\n      DEPRECATED, use property <a \n      href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#xyz\" \n      class=\"link\">xyz</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#toStr\" class=\"summary-sig-name\">toStr</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">prec</span>=<span class=\"summary-sig-default\">5</span>,\n        <span class=\"summary-sig-arg\">fmt</span>=<span class=\"summary-sig-default\">'(%s)'</span>,\n        <span class=\"summary-sig-arg\">sep</span>=<span class=\"summary-sig-default\">', '</span>)</span><br />\n      Return a string representation of this vector.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#unit\" class=\"summary-sig-name\">unit</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">ll</span>=<span class=\"summary-sig-default\">None</span>)</span><br />\n      Normalize this vector to unit length.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#toRepr\">toRepr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#crosserrors\" class=\"summary-name\">crosserrors</a><br />\n      Class <code>property</code> with a <code>.name</code> attribute.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#euclid\" class=\"summary-name\">euclid</a><br />\n      <i>Approximate</i> the length (norm, magnitude) of this vector \n      (<code>Float</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#homogeneous\" class=\"summary-name\">homogeneous</a><br />\n      Get this vector's homogeneous representation (<a \n      href=\"pygeodesy.vector3d.Vector3d-class.html\" \n      class=\"link\">Vector3d</a>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#length\" class=\"summary-name\">length</a><br />\n      Get the length (norm, magnitude) of this vector (<code>Float</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#length2\" class=\"summary-name\">length2</a><br />\n      Get the length <i>squared</i> of this vector (<code>Float</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#x\" class=\"summary-name\">x</a><br />\n      Get the X component (<code>float</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#xyz\" class=\"summary-name\">xyz</a><br />\n      Get the X, Y and Z components (<a \n      href=\"pygeodesy.namedTuples.Vector3Tuple-class.html\" \n      class=\"link\">Vector3Tuple</a><code>(x, y, z)</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#xyz3\" class=\"summary-name\">xyz3</a><br />\n      Get the X, Y and Z components as <code>3-tuple</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#x2y2z2\" class=\"summary-name\">x2y2z2</a><br />\n      Get the X, Y and Z components, <i>squared</i> (<a \n      href=\"pygeodesy.namedTuples.Vector3Tuple-class.html\" \n      class=\"link\">Vector3Tuple</a>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#x2y2z23\" class=\"summary-name\">x2y2z23</a><br />\n      Get the X, Y and Z components, <i>squared</i> (3-tuple <code>(x**2, \n      y**2, z**2)</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#y\" class=\"summary-name\">y</a><br />\n      Get the Y component (<code>float</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#z\" class=\"summary-name\">z</a><br />\n      Get the Z component (<code>float</code>).\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">x_xyz</span>,\n        <span class=\"sig-arg\">y</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">z</span>=<span class=\"sig-default\">0</span>,\n        <span class=\"sig-arg\">ll</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.vector3d.Vector3d-class.html\" \n  class=\"link\">Vector3d</a> or <code>Vector3dBase</code> instance.</p>\n  <p>The vector may be normalised or use x, y, z for position and distance \n  from earth centre or height relative to the surface of the earth' sphere \n  or ellipsoid.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>x_xyz</code></strong> - X component of vector (<code>scalar</code>) or a (3-D) vector \n          (<code>Cartesian</code>, <a \n          href=\"pygeodesy.ecef.Ecef9Tuple-class.html\" \n          class=\"link\">Ecef9Tuple</a>, <code>Nvector</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <a \n          href=\"pygeodesy.namedTuples.Vector3Tuple-class.html\" \n          class=\"link\">Vector3Tuple</a>, <a \n          href=\"pygeodesy.namedTuples.Vector4Tuple-class.html\" \n          class=\"link\">Vector4Tuple</a> or a <code>tuple</code> or \n          <code>list</code> of 3+ <code>scalar</code> items).</li>\n        <li><strong class=\"pname\"><code>y</code></strong> - Y component of vector (<code>scalar</code>), ignored if \n          <b><code>x_xyz</code></b> is not <code>scalar</code>, otherwise \n          same units as <b><code>x_xyz</code></b>.</li>\n        <li><strong class=\"pname\"><code>z</code></strong> - Z component of vector (<code>scalar</code>), ignored if \n          <b><code>x_xyz</code></b> is not <code>scalar</code>, otherwise \n          same units as <b><code>x_xyz</code></b>.</li>\n        <li><strong class=\"pname\"><code>ll</code></strong> - Optional latlon reference (<code>LatLon</code>).</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.VectorError-class.html\">VectorError</a></strong></code> - Invalid <b><code>x_xyz</code></b>, <b><code>y</code></b> or \n        <b><code>z</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__abs__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__abs__</span>&nbsp;(<span class=\"sig-arg\">self</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the norm of this vector.</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd>Norm, unit length (<code>float</code>);</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__add__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__add__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>)</span>\n    <br /><em class=\"fname\">(Addition operator)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Add this to an other vector (<a \n  href=\"pygeodesy.vector3d.Vector3d-class.html\" \n  class=\"link\">Vector3d</a>).</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd>Vectorial sum (<a href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Incompatible <b><code>other</code></b> <code>type</code>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__bool__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__bool__</span>&nbsp;(<span class=\"sig-arg\">self</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Is this vector non-zero?</p>\n  <dl class=\"fields\">\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <code>bools</code>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"__ceil__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__ceil__</span>&nbsp;(<span class=\"sig-arg\">self</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return a vector with the <code>ceil</code> of these components.</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd>Ceil-ed (<a href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__cmp__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__cmp__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>)</span>\n    <br /><em class=\"fname\">(Comparison operator)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compare this and an other vector (<a \n  href=\"pygeodesy.vector3d.Vector3d-class.html\" \n  class=\"link\">Vector3d</a>).</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd>-1, 0 or +1 (<code>int</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Incompatible <b><code>other</code></b> <code>type</code>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"cmp\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">cmp</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compare this and an other vector (<a \n  href=\"pygeodesy.vector3d.Vector3d-class.html\" \n  class=\"link\">Vector3d</a>).</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd>-1, 0 or +1 (<code>int</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Incompatible <b><code>other</code></b> <code>type</code>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__divmod__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__divmod__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">scalar</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Apply <code>scalar</code> divmod to this vector's components.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>scalar</code></strong> - Divisor (<code>scalar</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>2-Tuple <code>(d, m)</code> each a <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>.</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__eq__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__eq__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>)</span>\n    <br /><em class=\"fname\">(Equality operator)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Is this vector equal to an other vector?</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>other</code></strong> - The other vector (<a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>True</code> if equal, <code>False</code> otherwise.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Incompatible <b><code>other</code></b> <code>type</code>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__floor__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__floor__</span>&nbsp;(<span class=\"sig-arg\">self</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return a vector with the <code>floor</code> of each components.</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd>Floor-ed (<a href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__floordiv__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__floordiv__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">scalar</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Floor-divide this vector by a scalar, <code>this // \n  <b>scalar</b></code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>scalar</code></strong> - The divisor (<code>scalar</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Floored quotient (<a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Non-scalar <b><code>scalar</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__ge__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__ge__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>)</span>\n    <br /><em class=\"fname\">(Greater-than-or-equals operator)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Is this vector longer than or equal to an other vector?</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>other</code></strong> - The other vector (<a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>True</code> if so, <code>False</code> otherwise.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Incompatible <b><code>other</code></b> <code>type</code>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__gt__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__gt__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>)</span>\n    <br /><em class=\"fname\">(Greater-than operator)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Is this vector longer than an other vector?</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>other</code></strong> - The other vector (<a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>True</code> if so, <code>False</code> otherwise.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Incompatible <b><code>other</code></b> <code>type</code>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__hash__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__hash__</span>&nbsp;(<span class=\"sig-arg\">self</span>)</span>\n    <br /><em class=\"fname\">(Hashing function)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return this instance' <code>hash</code>.</p>\n  <dl class=\"fields\">\n    <dt>Overrides:\n        object.__hash__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__iadd__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__iadd__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Add this and an other vector <i>in-place</i>, <code>this += \n  <b>other</b></code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>other</code></strong> - The other vector (<a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>).</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Incompatible <b><code>other</code></b> <code>type</code>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__ifloordiv__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__ifloordiv__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">scalar</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Floor-divide this vector by a scalar <i>in-place</i>, <code>this //= \n  <b>scalar</b></code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>scalar</code></strong> - The divisor (<code>scalar</code>).</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Non-scalar <b><code>scalar</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__imatmul__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__imatmul__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Cross multiply this and an other vector <i>in-place</i>, <code>this @=\n  <b>other</b></code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>other</code></strong> - The other vector (<a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>).</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Incompatible <b><code>other</code></b> <code>type</code>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.named._Named-class.html#__imatmul__\">named._Named.__imatmul__</a>\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Luciano Ramalho, &quot;Fluent Python&quot;, O'Reilly, 2016 p. 397+,\n        2022 p. 578+.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"__imul__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__imul__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">scalar</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Multiply this vector by a scalar <i>in-place</i>, <code>this *= \n  <b>scalar</b></code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>scalar</code></strong> - Factor (<code>scalar</code>).</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Non-scalar <b><code>scalar</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__ipow__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__ipow__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">scalar</span>,\n        <span class=\"sig-arg\">*mod</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Raise each component <i>in-place</i> as <code>pow(C, \n  <b>scalar</b>)</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>scalar</code></strong> - Exponent (<code>scalar</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Power (<a href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Non-scalar <b><code>scalar</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__isub__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__isub__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Subtract an other vector from this one <i>in-place</i>, <code>this -= \n  <b>other</b></code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>other</code></strong> - The other vector (<a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>).</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Incompatible <b><code>other</code></b> <code>type</code>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__itruediv__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__itruediv__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">scalar</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Divide this vector by a scalar <i>in-place</i>, <code>this /= \n  <b>scalar</b></code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>scalar</code></strong> - The divisor (<code>scalar</code>).</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Non-scalar <b><code>scalar</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__le__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__le__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>)</span>\n    <br /><em class=\"fname\">(Less-than-or-equals operator)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Is this vector shorter than or equal to an other vector?</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>other</code></strong> - The other vector (<a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>True</code> if so, <code>False</code> otherwise.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Incompatible <b><code>other</code></b> <code>type</code>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__lt__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__lt__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>)</span>\n    <br /><em class=\"fname\">(Less-than operator)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Is this vector shorter than an other vector?</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>other</code></strong> - The other vector (<a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>True</code> if so, <code>False</code> otherwise.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Incompatible <b><code>other</code></b> <code>type</code>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__matmul__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__matmul__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the cross product of this and an other vector, <code>this @ \n  <b>other</b></code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>other</code></strong> - The other vector (<a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Cross product (<a href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Incompatible <b><code>other</code></b> <code>type</code>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.named._Named-class.html#__matmul__\">named._Named.__matmul__</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__mod__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__mod__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">modulus</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Apply <code>scalar</code> modulo to this vector's components.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>modulus</code></strong> - Modulus (<code>scalar</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Modulo (<a href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__mul__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__mul__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">scalar</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Multiply this vector by a scalar, <code>this * \n  <b>scalar</b></code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>scalar</code></strong> - Factor (<code>scalar</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Product (<a href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__ne__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__ne__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Is this vector not equal to an other vector?</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>other</code></strong> - The other vector (<a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>True</code> if so, <code>False</code> otherwise.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Incompatible <b><code>other</code></b> <code>type</code>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__neg__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__neg__</span>&nbsp;(<span class=\"sig-arg\">self</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the opposite of this vector.</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd>A negated copy (<a href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>)</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__pos__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__pos__</span>&nbsp;(<span class=\"sig-arg\">self</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return this vector <i>as-is</i> or a copy.</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd>This instance (<a href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>)</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__pow__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__pow__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">scalar</span>,\n        <span class=\"sig-arg\">*mod</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return a vector with components as <code>pow(C, \n  <b>scalar</b>)</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>scalar</code></strong> - Exponent (<code>scalar</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Power (<a href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Non-scalar <b><code>scalar</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__radd__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__radd__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>)</span>\n    <br /><em class=\"fname\">(Right-side addition operator)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Add this vector to an other vector, <code><b>other</b> + \n  this</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>other</code></strong> - The other vector (<a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Sum (<a href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Incompatible <b><code>other</code></b> <code>type</code>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__rmatmul__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__rmatmul__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the cross product of an other and this vector, \n  <code><b>other</b> @ this</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>other</code></strong> - The other vector (<a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Cross product (<a href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Incompatible <b><code>other</code></b> <code>type</code>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">named._Named.__rmatmul__</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__rmul__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__rmul__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">scalar</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Multiply this vector by a scalar, <code>this * \n  <b>scalar</b></code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>scalar</code></strong> - Factor (<code>scalar</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Product (<a href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__round__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__round__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">*ndigits</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return a vector with these components <code>rounded</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>ndigits</code></strong> - Optional number of digits (<code>int</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Rounded (<a href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__rsub__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__rsub__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Subtract this vector from an other vector, <code><b>other</b> - \n  this</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>other</code></strong> - The other vector (<a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Difference (<a href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Incompatible <b><code>other</code></b> <code>type</code>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__sub__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__sub__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>)</span>\n    <br /><em class=\"fname\">(Subtraction operator)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Subtract an other vector from this vector, <code>this - \n  <b>other</b></code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>other</code></strong> - The other vector (<a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Difference (<a href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Incompatible <b><code>other</code></b> <code>type</code>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__truediv__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__truediv__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">scalar</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Divide this vector by a scalar, <code>this / <b>scalar</b></code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>scalar</code></strong> - The divisor (<code>scalar</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Quotient (<a href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Non-scalar <b><code>scalar</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__trunc__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__trunc__</span>&nbsp;(<span class=\"sig-arg\">self</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return a vector with the <code>trunc</code> of these components.</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd>Trunc-ed (<a href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__div__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__div__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">scalar</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Divide this vector by a scalar, <code>this / <b>scalar</b></code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>scalar</code></strong> - The divisor (<code>scalar</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Quotient (<a href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Non-scalar <b><code>scalar</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__idiv__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__idiv__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">scalar</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Divide this vector by a scalar <i>in-place</i>, <code>this /= \n  <b>scalar</b></code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>scalar</code></strong> - The divisor (<code>scalar</code>).</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Non-scalar <b><code>scalar</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"__nonzero__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__nonzero__</span>&nbsp;(<span class=\"sig-arg\">self</span>)</span>\n    <br /><em class=\"fname\">(Boolean test operator)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Is this vector non-zero?</p>\n  <dl class=\"fields\">\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <code>bools</code>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"angleTo\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">angleTo</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>,\n        <span class=\"sig-arg\">vSign</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">wrap</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the angle between this and an other vector.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>other</code></strong> - The other vector (<a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>).</li>\n        <li><strong class=\"pname\"><code>vSign</code></strong> - Optional vector, if supplied (and out of the plane of this and \n          the other), angle is signed positive if this-&gt;other is \n          clockwise looking along vSign or negative in opposite direction, \n          otherwise angle is unsigned.</li>\n        <li><strong class=\"pname\"><code>wrap</code></strong> - If <code>True</code>, wrap/unroll the angle to +/-PI \n          (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Angle (<code>radians</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - If <b><code>other</code></b> or <b><code>vSign</code></b> not a <a \n        href=\"pygeodesy.vector3d.Vector3d-class.html\" \n        class=\"link\">Vector3d</a>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"apply\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">apply</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">fun2</span>,\n        <span class=\"sig-arg\">other_x</span>,\n        <span class=\"sig-arg\">*y_z</span>,\n        <span class=\"sig-arg\">**fun2_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Apply a 2-argument function pairwise to the components of this and an \n  other vector.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>fun2</code></strong> - 2-Argument callable (<code>any(scalar, scalar</code>), return a \n          <code>scalar</code> or INT0 result.</li>\n        <li><strong class=\"pname\"><code>other_x</code></strong> - Other X component (<code>scalar</code>) or a vector with X, Y and\n          Z components (<code>Cartesian</code>, <a \n          href=\"pygeodesy.ecef.Ecef9Tuple-class.html\" \n          class=\"link\">Ecef9Tuple</a>, <code>Nvector</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <a \n          href=\"pygeodesy.namedTuples.Vector3Tuple-class.html\" \n          class=\"link\">Vector3Tuple</a> or <a \n          href=\"pygeodesy.namedTuples.Vector4Tuple-class.html\" \n          class=\"link\">Vector4Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>y_z</code></strong> - Other Y and Z components, positional (<code>scalar</code>, \n          <code>scalar</code>).</li>\n        <li><strong class=\"pname\"><code>fun2_kwds</code></strong> - Optional keyword arguments for <b><code>fun2</code></b>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>New, applied vector (<a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>other_x</code></b> or <b><code>y_z</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"cross\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">cross</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>,\n        <span class=\"sig-arg\">raiser</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">eps0</span>=<span class=\"sig-default\">2.220446049250313e-16</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the cross product of this and an other vector.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>other</code></strong> - The other vector (<a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>).</li>\n        <li><strong class=\"pname\"><code>raiser</code></strong> - Optional, <a href=\"pygeodesy.errors.CrossError-class.html\" \n          class=\"link\">CrossError</a> label if raised (<code>str</code>, \n          non-<a href=\"pygeodesy-module.html#NN\" class=\"link\">NN</a>).</li>\n        <li><strong class=\"pname\"><code>eps0</code></strong> - Near-zero tolerance (<code>scalar</code>), same units as \n          <code>x</code>, <code>y</code> and <code>z</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Cross product (<a href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.CrossError-class.html\">CrossError</a></strong></code> - Zero or near-zero cross product and if <b><code>raiser</code></b> \n        and <a href=\"pygeodesy.errors-module.html#crosserrors\" \n        class=\"link\">crosserrors</a> are both <code>True</code>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Incompatible <b><code>other</code></b> <code>type</code>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"dividedBy\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">dividedBy</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">scalar</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Divide this vector by a scalar.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>scalar</code></strong> - The divisor (<code>scalar</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>New, scaled vector (<a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Non-scalar <b><code>scalar</code></b>.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.VectorError-class.html\">VectorError</a></strong></code> - Invalid or zero <b><code>scalar</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"dividedBy_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">dividedBy_</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">scalar_x</span>,\n        <span class=\"sig-arg\">*y_z</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Divide this vector by separate X, Y and Z divisors.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>scalar_x</code></strong> - X divisor (<code>scalar</code>) or a vector's X, Y, and Z \n          components as divisors (<code>Cartesian</code>, <a \n          href=\"pygeodesy.ecef.Ecef9Tuple-class.html\" \n          class=\"link\">Ecef9Tuple</a>, <code>Nvector</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <a \n          href=\"pygeodesy.namedTuples.Vector3Tuple-class.html\" \n          class=\"link\">Vector3Tuple</a>, <a \n          href=\"pygeodesy.namedTuples.Vector4Tuple-class.html\" \n          class=\"link\">Vector4Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>y_z</code></strong> - Y and Z divisors (<code>scalar</code>, <code>scalar</code>), \n          ignored if <b><code>scalar_x</code></b> is not \n          <code>scalar</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>New, scaled vector (<a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.VectorError-class.html\">VectorError</a></strong></code> - Invalid <b><code>scalar_x</code></b> or <b><code>y_z</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"dot\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">dot</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Compute the dot (scalar) product of this and an other vector.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>other</code></strong> - The other vector (<a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Dot product (<code>float</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Incompatible <b><code>other</code></b> <code>type</code>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"equals\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">equals</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>,\n        <span class=\"sig-arg\">units</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use method <code>isequalTo</code>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_method</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"equirectangular\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">equirectangular</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p><i>Approximate</i> the difference between this and an other \n  vector.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>other</code></strong> - Vector to subtract (<code>Vector3dBase</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The length <i>squared</i> of the difference (<code>Float</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Incompatible <b><code>other</code></b> <code>type</code>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Property <code>length2</code>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"floorDividedBy\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">floorDividedBy</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">scalar</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Floor-divide this vector by a scalar.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>scalar</code></strong> - The divisor (<code>scalar</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>New, scaled vector (<a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Non-scalar <b><code>scalar</code></b>.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.VectorError-class.html\">VectorError</a></strong></code> - Invalid or zero <b><code>scalar</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"floorDividedBy_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">floorDividedBy_</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">scalar_x</span>,\n        <span class=\"sig-arg\">*y_z</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Floor-divide this vector by separate X, Y and Z divisors.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>scalar_x</code></strong> - X divisor (<code>scalar</code>) or a vector's X, Y, and Z \n          components as divisors (<code>Cartesian</code>, <a \n          href=\"pygeodesy.ecef.Ecef9Tuple-class.html\" \n          class=\"link\">Ecef9Tuple</a>, <code>Nvector</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <a \n          href=\"pygeodesy.namedTuples.Vector3Tuple-class.html\" \n          class=\"link\">Vector3Tuple</a>, <a \n          href=\"pygeodesy.namedTuples.Vector4Tuple-class.html\" \n          class=\"link\">Vector4Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>y_z</code></strong> - Y and Z divisors (<code>scalar</code>, <code>scalar</code>), \n          ignored if <b><code>scalar_x</code></b> is not \n          <code>scalar</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>New, scaled vector (<a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.VectorError-class.html\">VectorError</a></strong></code> - Invalid <b><code>scalar_x</code></b> or <b><code>y_z</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"intermediateTo\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">intermediateTo</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>,\n        <span class=\"sig-arg\">fraction</span>,\n        <span class=\"sig-arg\">**unused</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Locate the vector at a given fraction between (or along) this and an \n  other vector.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>other</code></strong> - The other vector (<a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>).</li>\n        <li><strong class=\"pname\"><code>fraction</code></strong> - Fraction between both vectors (<code>scalar</code>, 0.0 for this \n          and 1.0 for the other vector).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Intermediate vector (<a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Incompatible <b><code>other</code></b> <code>type</code>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"isconjugateTo\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">isconjugateTo</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>,\n        <span class=\"sig-arg\">minum</span>=<span class=\"sig-default\">1</span>,\n        <span class=\"sig-arg\">eps</span>=<span class=\"sig-default\">2.220446049250313e-16</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Determine whether this and an other vector are conjugates.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>other</code></strong> - The other vector (<code>Cartesian</code>, <a \n          href=\"pygeodesy.ecef.Ecef9Tuple-class.html\" \n          class=\"link\">Ecef9Tuple</a>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <code>Vector3Tuple</code> or \n          <code>Vector4Tuple</code>).</li>\n        <li><strong class=\"pname\"><code>minum</code></strong> - Minimal number of conjugates required (<code>int</code>, 0..3).</li>\n        <li><strong class=\"pname\"><code>eps</code></strong> - Tolerance for equality and conjugation (<code>scalar</code>), \n          same units as <code>x</code>, <code>y</code>, and <code>z</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>True</code> if both vector's components either match or at \n          least <code><b>minum</b></code> have opposite signs.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Incompatible <b><code>other</code></b> <code>type</code>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <code>isequalTo</code>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"isequalTo\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">isequalTo</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>,\n        <span class=\"sig-arg\">units</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">eps</span>=<span class=\"sig-default\">2.220446049250313e-16</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Check if this and an other vector are equal or equivalent.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>other</code></strong> - The other vector (<a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>).</li>\n        <li><strong class=\"pname\"><code>units</code></strong> - Optionally, compare the normalized, unit version of both vectors.</li>\n        <li><strong class=\"pname\"><code>eps</code></strong> - Tolerance for equality (<code>scalar</code>), same units as \n          <code>x</code>, <code>y</code>, and <code>z</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd><code>True</code> if vectors are identical, <code>False</code> \n          otherwise.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Incompatible <b><code>other</code></b> <code>type</code>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Method <code>isconjugateTo</code>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"minus\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">minus</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Subtract an other vector from this vector.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>other</code></strong> - The other vector (<a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>New vector difference (<a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Incompatible <b><code>other</code></b> <code>type</code>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"minus_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">minus_</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other_x</span>,\n        <span class=\"sig-arg\">*y_z</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Subtract separate X, Y and Z components from this vector.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>other_x</code></strong> - X component (<code>scalar</code>) or a vector's X, Y, and Z \n          components (<code>Cartesian</code>, <a \n          href=\"pygeodesy.ecef.Ecef9Tuple-class.html\" \n          class=\"link\">Ecef9Tuple</a>, <code>Nvector</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <a \n          href=\"pygeodesy.namedTuples.Vector3Tuple-class.html\" \n          class=\"link\">Vector3Tuple</a>, <a \n          href=\"pygeodesy.namedTuples.Vector4Tuple-class.html\" \n          class=\"link\">Vector4Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>y_z</code></strong> - Y and Z components (<code>scalar</code>, <code>scalar</code>), \n          ignored if <b><code>other_x</code></b> is not \n          <code>scalar</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>New, vectiorial vector (<a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>other_x</code></b> or <b><code>y_z</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"negate\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">negate</span>&nbsp;(<span class=\"sig-arg\">self</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return the opposite of this vector.</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd>A negated copy (<a href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>)</dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"others\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">others</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">*other</span>,\n        <span class=\"sig-arg\">**name_other_up</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Refined class comparison.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>other</code></strong> - The other vector (<a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>).</li>\n        <li><strong class=\"pname\"><code>name_other_up</code></strong> - Overriding <code>name=other</code> and <code>up=1</code> keyword \n          arguments.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The <b><code>other</code></b> if compatible.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Incompatible <b><code>other</code></b> <code>type</code>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.named._NamedBase-class.html#others\">named._NamedBase.others</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"plus\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">plus</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Add this vector and an other vector.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>other</code></strong> - The other vector (<a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Vectorial sum (<a href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Incompatible <b><code>other</code></b> <code>type</code>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"sum\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">sum</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Add this vector and an other vector.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>other</code></strong> - The other vector (<a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Vectorial sum (<a href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Incompatible <b><code>other</code></b> <code>type</code>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"plus_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">plus_</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other_x</span>,\n        <span class=\"sig-arg\">*y_z</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Sum of this vector and separate X, Y and Z components.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>other_x</code></strong> - X component (<code>scalar</code>) or a vector's X, Y, and Z \n          components (<code>Cartesian</code>, <a \n          href=\"pygeodesy.ecef.Ecef9Tuple-class.html\" \n          class=\"link\">Ecef9Tuple</a>, <code>Nvector</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <a \n          href=\"pygeodesy.namedTuples.Vector3Tuple-class.html\" \n          class=\"link\">Vector3Tuple</a>, <a \n          href=\"pygeodesy.namedTuples.Vector4Tuple-class.html\" \n          class=\"link\">Vector4Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>y_z</code></strong> - Y and Z components (<code>scalar</code>, <code>scalar</code>), \n          ignored if <b><code>other_x</code></b> is not \n          <code>scalar</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>New, vectorial vector (<a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>other_x</code></b> or <b><code>y_z</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"pow\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">pow</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">scalar</span>,\n        <span class=\"sig-arg\">*mod</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Raise each X, Y and Z to <code>scalar</code> power.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>scalar</code></strong> - Exponent (<code>scalar</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Power (<a href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Non-scalar <b><code>scalar</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"rotate\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">rotate</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">axis</span>,\n        <span class=\"sig-arg\">theta</span>,\n        <span class=\"sig-arg\">fma</span>=<span class=\"sig-default\">False</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Rotate this vector around an axis by a specified angle.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>axis</code></strong> - The axis being rotated around (<a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>).</li>\n        <li><strong class=\"pname\"><code>theta</code></strong> - The angle of rotation (<code>radians</code>).</li>\n        <li><strong class=\"pname\"><code>fma</code></strong> - If <code>True</code>, use fused-multiply-add (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>New, rotated vector (<a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>).</dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a \n        href=\"https://WikiPedia.org/wiki/Rotation_matrix#Rotation_matrix_from_axis_and_angle\"\n        target=\"_top\">Rotation matrix from axis and angle</a> and <a \n        href=\"https://WikiPedia.org/wiki/Quaternions_and_spatial_rotation#Quaternion-derived_rotation_matrix\"\n        target=\"_top\">Quaternion-derived rotation matrix</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"rotateAround\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">rotateAround</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">axis</span>,\n        <span class=\"sig-arg\">theta</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use method <code>rotate</code>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_method</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"times\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">times</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">factor</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Multiply this vector by a scalar.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>factor</code></strong> - Scale factor (<code>scalar</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>New, scaled vector (<a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Non-scalar <b><code>factor</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"times_\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">times_</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">other_x</span>,\n        <span class=\"sig-arg\">*y_z</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Multiply this vector's components by separate X, Y and Z factors.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>other_x</code></strong> - X scale factor (<code>scalar</code>) or a vector's X, Y, and Z \n          components as scale factors (<code>Cartesian</code>, <a \n          href=\"pygeodesy.ecef.Ecef9Tuple-class.html\" \n          class=\"link\">Ecef9Tuple</a>, <code>Nvector</code>, <a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>, <a \n          href=\"pygeodesy.namedTuples.Vector3Tuple-class.html\" \n          class=\"link\">Vector3Tuple</a>, <a \n          href=\"pygeodesy.namedTuples.Vector4Tuple-class.html\" \n          class=\"link\">Vector4Tuple</a>).</li>\n        <li><strong class=\"pname\"><code>y_z</code></strong> - Y and Z scale factors (<code>scalar</code>, <code>scalar</code>),\n          ignored if <b><code>other_x</code></b> is not \n          <code>scalar</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>New, scaled vector (<a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>other_x</code></b> or <b><code>y_z</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"to3xyz\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">to3xyz</span>&nbsp;(<span class=\"sig-arg\">self</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use property <a \n  href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#xyz\" \n  class=\"link\">xyz</a>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_method</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toStr\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toStr</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">prec</span>=<span class=\"sig-default\">5</span>,\n        <span class=\"sig-arg\">fmt</span>=<span class=\"sig-default\">'(%s)'</span>,\n        <span class=\"sig-arg\">sep</span>=<span class=\"sig-default\">', '</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return a string representation of this vector.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>prec</code></strong> - Number of decimal places (<code>int</code>).</li>\n        <li><strong class=\"pname\"><code>fmt</code></strong> - Enclosing format to use (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>sep</code></strong> - Separator between components (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Vector as &quot;(x, y, z)&quot; (<code>str</code>).</dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.named._Named-class.html#toStr\">named._Named.toStr</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"unit\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">unit</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">ll</span>=<span class=\"sig-default\">None</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Normalize this vector to unit length.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>ll</code></strong> - Optional, original location (<code>LatLon</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>Normalized vector (<a \n          href=\"pygeodesy.vector3d.Vector3d-class.html\" \n          class=\"link\">Vector3d</a>).</dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"crosserrors\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">crosserrors</h3>\n  <p>Class <code>property</code> with a <code>.name</code> attribute.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">crosserrors(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get <a href=\"pygeodesy.errors.CrossError-class.html\" \nclass=\"link\">CrossError</a> exceptions (<code>bool</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">crosserrors(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">raiser</span>)</span>\n        - Raise or ignore <a href=\"pygeodesy.errors.CrossError-class.html\" \nclass=\"link\">CrossError</a> exceptions (<code>bool</code>).\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"euclid\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">euclid</h3>\n  <p><i>Approximate</i> the length (norm, magnitude) of this vector \n  (<code>Float</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">euclid(<span class=\"summary-sig-arg\">self</span>)</span>\n        - <i>Approximate</i> the length (norm, magnitude) of this vector \n(<code>Float</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Properties <code>length</code> and <code>length2</code> and \n        function <a href=\"pygeodesy.fmath-module.html#euclid_\" \n        class=\"link\">pygeodesy.euclid_</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"homogeneous\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">homogeneous</h3>\n  <p>Get this vector's homogeneous representation (<a \n  href=\"pygeodesy.vector3d.Vector3d-class.html\" \n  class=\"link\">Vector3d</a>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">homogeneous(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get this vector's homogeneous representation (<a \nhref=\"pygeodesy.vector3d.Vector3d-class.html\" class=\"link\">Vector3d</a>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"length\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">length</h3>\n  <p>Get the length (norm, magnitude) of this vector \n  (<code>Float</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">length(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the length (norm, magnitude) of this vector (<code>Float</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Properties <a \n        href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#length2\" \n        class=\"link\">length2</a> and <a \n        href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#euclid\" \n        class=\"link\">euclid</a>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"length2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">length2</h3>\n  <p>Get the length <i>squared</i> of this vector (<code>Float</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">length2(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the length <i>squared</i> of this vector (<code>Float</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Property <a \n        href=\"pygeodesy.vector3dBase.Vector3dBase-class.html#length\" \n        class=\"link\">length</a> and method <code>equirectangular</code>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"x\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">x</h3>\n  <p>Get the X component (<code>float</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">x(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the X component (<code>float</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">x(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">x</span>)</span>\n        - Set the X component, if different (<code>float</code>).\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"xyz\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">xyz</h3>\n  <p>Get the X, Y and Z components (<a \n  href=\"pygeodesy.namedTuples.Vector3Tuple-class.html\" \n  class=\"link\">Vector3Tuple</a><code>(x, y, z)</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">xyz(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the X, Y and Z components (<a \nhref=\"pygeodesy.namedTuples.Vector3Tuple-class.html\" \nclass=\"link\">Vector3Tuple</a><code>(x, y, z)</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">xyz(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">xyz</span>)</span>\n        - Set the X, Y and Z components (<code>Cartesian</code>, <a \nhref=\"pygeodesy.ecef.Ecef9Tuple-class.html\" class=\"link\">Ecef9Tuple</a>, \n<code>Nvector</code>, <a href=\"pygeodesy.vector3d.Vector3d-class.html\" \nclass=\"link\">Vector3d</a>, <a \nhref=\"pygeodesy.namedTuples.Vector3Tuple-class.html\" \nclass=\"link\">Vector3Tuple</a>, <a \nhref=\"pygeodesy.namedTuples.Vector4Tuple-class.html\" \nclass=\"link\">Vector4Tuple</a> or a <code>tuple</code> or <code>list</code> \nof 3+ <code>scalar</code> items).\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"xyz3\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">xyz3</h3>\n  <p>Get the X, Y and Z components as <code>3-tuple</code>.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">xyz3(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the X, Y and Z components as <code>3-tuple</code>.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"x2y2z2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">x2y2z2</h3>\n  <p>Get the X, Y and Z components, <i>squared</i> (<a \n  href=\"pygeodesy.namedTuples.Vector3Tuple-class.html\" \n  class=\"link\">Vector3Tuple</a>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">x2y2z2(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the X, Y and Z components, <i>squared</i> (<a \nhref=\"pygeodesy.namedTuples.Vector3Tuple-class.html\" \nclass=\"link\">Vector3Tuple</a>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"x2y2z23\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">x2y2z23</h3>\n  <p>Get the X, Y and Z components, <i>squared</i> (3-tuple <code>(x**2, \n  y**2, z**2)</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">x2y2z23(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the X, Y and Z components, <i>squared</i> (3-tuple <code>(x**2, y**2, \nz**2)</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"y\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">y</h3>\n  <p>Get the Y component (<code>float</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">y(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the Y component (<code>float</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">y(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">y</span>)</span>\n        - Set the Y component, if different (<code>float</code>).\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"z\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">z</h3>\n  <p>Get the Z component (<code>float</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">z(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the Z component (<code>float</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">z(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">z</span>)</span>\n        - Set the Z component, if different (<code>float</code>).\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:21 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.webmercator-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.webmercator</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        Module&nbsp;webmercator\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.webmercator-module.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== MODULE DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Module webmercator</h1><p class=\"nomargin-top\"></p>\n<p>Web Mercator (WM) projection.</p>\n  <p>Classes <a href=\"pygeodesy.webmercator.Wm-class.html\" \n  class=\"link\">Wm</a> and <a \n  href=\"pygeodesy.webmercator.WebMercatorError-class.html\" \n  class=\"link\">WebMercatorError</a> and functions <a \n  href=\"pygeodesy.webmercator-module.html#parseWM\" class=\"link\">parseWM</a>\n  and <a href=\"pygeodesy.webmercator-module.html#toWm\" \n  class=\"link\">toWm</a>.</p>\n  <p>Pure Python implementation of a <a \n  href=\"https://WikiPedia.org/wiki/Web_Mercator\" target=\"_top\">Web \n  Mercator</a> (aka <i>Pseudo-Mercator</i>) class and conversion functions \n  for spherical and near-spherical earth models.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a \n        href=\"https://AlastairA.WordPress.com/2011/01/23/the-google-maps-bing-maps-spherical-mercator-projection\"\n        target=\"_top\">Google Maps / Bing Maps Spherical Mercator \n        Projection</a>, <a \n        href=\"https://www.IOGP.org/wp-content/uploads/2019/09/373-07-02.pdf\"\n        target=\"_top\">Geomatics Guidance Note 7, part 2</a> and <a \n        href=\"https://Web.Archive.org/web/20141009142830/http://earth-info.nga.mil/GandG/wgs84/web_mercator/(U)%20NGA_SIG_0011_1.0.0_WEBMERC.pdf\"\n        target=\"_top\">Implementation Practice Web Mercator Map \n        Projection</a>.\n      </p>\n      <p><strong>Version:</strong>\n        25.05.12\n      </p>\n</div><!-- ==================== CLASSES ==================== -->\n<a name=\"section-Classes\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Classes</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.webmercator.EasNorRadius3Tuple-class.html\" class=\"summary-name\">EasNorRadius3Tuple</a><br />\n      3-Tuple <code>(easting, northing, radius)</code>, all in \n        <code>meter</code>.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.webmercator.WebMercatorError-class.html\" class=\"summary-name\">WebMercatorError</a><br />\n      Web Mercator (WM) parser or <a \n        href=\"pygeodesy.webmercator.Wm-class.html\" class=\"link\">Wm</a> \n        issue.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.webmercator.Wm-class.html\" class=\"summary-name\">Wm</a><br />\n      Web Mercator (WM) coordinate.\n    </td>\n  </tr>\n</table>\n<!-- ==================== FUNCTIONS ==================== -->\n<a name=\"section-Functions\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Functions</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.webmercator-module.html#parseWM\" class=\"summary-sig-name\">parseWM</a>(<span class=\"summary-sig-arg\">strWM</span>,\n        <span class=\"summary-sig-arg\">radius</span>=<span class=\"summary-sig-default\">6378137.0</span>,\n        <span class=\"summary-sig-arg\">Wm</span>=<span class=\"summary-sig-default\">&lt;class 'pygeodesy.webmercator.Wm'&gt;</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Parse a string <code>&quot;e n [r]&quot;</code> representing a WM \n      coordinate, consisting of easting, northing and an optional radius.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.webmercator-module.html#toWm\" class=\"summary-sig-name\">toWm</a>(<span class=\"summary-sig-arg\">latlon</span>,\n        <span class=\"summary-sig-arg\">lon</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">earth</span>=<span class=\"summary-sig-default\">6378137.0</span>,\n        <span class=\"summary-sig-arg\">Wm</span>=<span class=\"summary-sig-default\">&lt;class 'pygeodesy.webmercator.Wm'&gt;</span>,\n        <span class=\"summary-sig-arg\">**name_Wm_kwds_radius</span>)</span><br />\n      Convert a lat-/longitude point to a WM coordinate.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== VARIABLES ==================== -->\n<a name=\"section-Variables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Variables</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"__all__\"></a><span class=\"summary-name\">__all__</span> = <code title=\"_ALL_LAZY.webmercator\">_ALL_LAZY.webmercator</code>\n    </td>\n  </tr>\n</table>\n<!-- ==================== FUNCTION DETAILS ==================== -->\n<a name=\"section-FunctionDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Function Details</span></td>\n</tr>\n</table>\n<a name=\"parseWM\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">parseWM</span>&nbsp;(<span class=\"sig-arg\">strWM</span>,\n        <span class=\"sig-arg\">radius</span>=<span class=\"sig-default\">6378137.0</span>,\n        <span class=\"sig-arg\">Wm</span>=<span class=\"sig-default\">&lt;class 'pygeodesy.webmercator.Wm'&gt;</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Parse a string <code>&quot;e n [r]&quot;</code> representing a WM \n  coordinate, consisting of easting, northing and an optional radius.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>strWM</code></strong> - A WM coordinate (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>radius</code></strong> - Optional earth radius (<code>meter</code>), needed in case \n          <b><code>strWM</code></b> doesn't include <code>r</code>.</li>\n        <li><strong class=\"pname\"><code>Wm</code></strong> - Optional class to return the WM coordinate (<a \n          href=\"pygeodesy.webmercator.Wm-class.html\" class=\"link\">Wm</a>) \n          or <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The WM coordinate (<b><code>Wm</code></b>) or if <code><b>Wm</b> \n          is None</code>, an <a \n          href=\"pygeodesy.webmercator.EasNorRadius3Tuple-class.html\" \n          class=\"link\">EasNorRadius3Tuple</a><code>(easting, northing, \n          radius)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.webmercator.WebMercatorError-class.html\">WebMercatorError</a></strong></code> - Invalid <b><code>strWM</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toWm\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toWm</span>&nbsp;(<span class=\"sig-arg\">latlon</span>,\n        <span class=\"sig-arg\">lon</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">earth</span>=<span class=\"sig-default\">6378137.0</span>,\n        <span class=\"sig-arg\">Wm</span>=<span class=\"sig-default\">&lt;class 'pygeodesy.webmercator.Wm'&gt;</span>,\n        <span class=\"sig-arg\">**name_Wm_kwds_radius</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert a lat-/longitude point to a WM coordinate.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>latlon</code></strong> - Latitude (<code>degrees</code>) or an (ellipsoidal or spherical) \n          geodetic <code>LatLon</code> point.</li>\n        <li><strong class=\"pname\"><code>lon</code></strong> - Optional longitude (<code>degrees</code> or <code>None</code>).</li>\n        <li><strong class=\"pname\"><code>earth</code></strong> - Earth radius (<code>meter</code>), datum or ellipsoid (<a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>, \n          <a href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a> or <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a>), overridden by \n          <b><code>latlon</code></b>'s datum if present.</li>\n        <li><strong class=\"pname\"><code>Wm</code></strong> - Optional class to return the WM coordinate (<a \n          href=\"pygeodesy.webmercator.Wm-class.html\" class=\"link\">Wm</a>) \n          or <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>name_Wm_kwds_radius</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>), \n          optionally, additional <b><code>Wm</code></b> keyword arguments, \n          ignored if <code><b>Wm</b> is None</code> and DEPRECATED keyword \n          argument <code><b>radius</b>=earth</code>, use \n          <b><code>earth</code></b>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The WM coordinate (<b><code>Wm</code></b>) or if <code><b>Wm</b> \n          is None</code>, an <a \n          href=\"pygeodesy.webmercator.EasNorRadius3Tuple-class.html\" \n          class=\"link\">EasNorRadius3Tuple</a><code>(easting, northing, \n          radius)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ValueError</strong></code> - If <b><code>earth</code></b> is invalid, if <b><code>lon</code></b>\n        value is missing, if <b><code>latlon</code></b> is not scalar, or \n        if <b><code>latlon</code></b> is beyond the valid WM range and <a \n        href=\"pygeodesy.errors-module.html#rangerrors\" \n        class=\"link\">rangerrrors</a> is <code>True</code>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.webmercator.EasNorRadius3Tuple-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.webmercator.EasNorRadius3Tuple</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.webmercator-module.html\">Module&nbsp;webmercator</a> ::\n        Class&nbsp;EasNorRadius3Tuple\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.webmercator.EasNorRadius3Tuple-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class EasNorRadius3Tuple</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n   object --+        \n            |        \n        tuple --+    \n                |    \n   object --+   |    \n            |   |    \n <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n                |    \n<a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a> --+\n                    |\n                   <strong class=\"uidshort\">EasNorRadius3Tuple</strong>\n</pre>\n\n<hr />\n<p>3-Tuple <code>(easting, northing, radius)</code>, all in \n  <code>meter</code>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__delattr__\">__delattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__getattr__\">__getattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__hash__\">__hash__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__setattr__\">__setattr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#items\">items</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iteritems\">iteritems</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#iterunits\">iterunits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#reUnit\">reUnit</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toStr\">toStr</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#toUnits\">toUnits</a></code>,\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>tuple</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__eq__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__iter__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__rmul__</code>,\n      <code>count</code>,\n      <code>index</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedTuple-class.html\">named._NamedTuple</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedTuple-class.html#__new__\">__new__</a></code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:21 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.webmercator.WebMercatorError-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.webmercator.WebMercatorError</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.webmercator-module.html\">Module&nbsp;webmercator</a> ::\n        Class&nbsp;WebMercatorError\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.webmercator.WebMercatorError-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class WebMercatorError</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n              object --+                    \n                       |                    \nexceptions.BaseException --+                \n                           |                \n        exceptions.Exception --+            \n                               |            \n        exceptions.StandardError --+        \n                                   |        \n               exceptions.ValueError --+    \n                                       |    \n                      errors._ValueError --+\n                                           |\n                                          <strong class=\"uidshort\">WebMercatorError</strong>\n</pre>\n\n<hr />\n<p>Web Mercator (WM) parser or <a \n  href=\"pygeodesy.webmercator.Wm-class.html\" class=\"link\">Wm</a> issue.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>errors._ValueError</code></b>:\n      <code>__init__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.ValueError</code></b>:\n      <code>__new__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.BaseException</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getslice__</code>,\n      <code>__reduce__</code>,\n      <code>__repr__</code>,\n      <code>__setattr__</code>,\n      <code>__setstate__</code>,\n      <code>__str__</code>,\n      <code>__unicode__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__format__</code>,\n      <code>__hash__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.BaseException</code></b>:\n      <code>args</code>,\n      <code>message</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:21 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.webmercator.Wm-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.webmercator.Wm</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.webmercator-module.html\">Module&nbsp;webmercator</a> ::\n        Class&nbsp;Wm\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.webmercator.Wm-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Wm</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n  object --+        \n           |        \n<a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+    \n               |    \n<a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a> --+\n                   |\n                  <strong class=\"uidshort\">Wm</strong>\n</pre>\n\n<hr />\n<p>Web Mercator (WM) coordinate.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.webmercator.Wm-class.html#__init__\" class=\"summary-sig-name\">__init__</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">x</span>,\n        <span class=\"summary-sig-arg\">y</span>,\n        <span class=\"summary-sig-arg\">earth</span>=<span class=\"summary-sig-default\">6378137.0</span>,\n        <span class=\"summary-sig-arg\">**name_radius</span>)</span><br />\n      New <a href=\"pygeodesy.webmercator.Wm-class.html\" class=\"link\">Wm</a>\n      Web Mercator (WM) coordinate.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.webmercator.Wm-class.html#latlon2\" class=\"summary-sig-name\">latlon2</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">datum</span>=<span class=\"summary-sig-default\">None</span>)</span><br />\n      Convert this WM coordinate to a lat- and longitude.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.webmercator.Wm-class.html#parse\" class=\"summary-sig-name\">parse</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">strWM</span>,\n        <span class=\"summary-sig-arg\">**name</span>)</span><br />\n      Parse a string to a similar <a \n      href=\"pygeodesy.webmercator.Wm-class.html\" class=\"link\">Wm</a> \n      instance.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.webmercator.Wm-class.html#parseWM\" class=\"summary-sig-name\">parseWM</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">strWM</span>,\n        <span class=\"summary-sig-arg\">name</span>=<span class=\"summary-sig-default\">''</span>)</span><br />\n      DEPRECATED, use method <a \n      href=\"pygeodesy.webmercator.Wm-class.html#parse\" \n      class=\"link\">Wm.parse</a>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.webmercator.Wm-class.html#to2ll\" class=\"summary-sig-name\">to2ll</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">datum</span>=<span class=\"summary-sig-default\">None</span>)</span><br />\n      DEPRECATED, use method <code>latlon2</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.webmercator.Wm-class.html#toLatLon\" class=\"summary-sig-name\">toLatLon</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">LatLon</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">datum</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**LatLon_kwds</span>)</span><br />\n      Convert this WM coordinate to a geodetic point.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.webmercator.Wm-class.html#toRepr\" class=\"summary-sig-name\">toRepr</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">prec</span>=<span class=\"summary-sig-default\">3</span>,\n        <span class=\"summary-sig-arg\">fmt</span>=<span class=\"summary-sig-default\">'[%s]'</span>,\n        <span class=\"summary-sig-arg\">sep</span>=<span class=\"summary-sig-default\">', '</span>,\n        <span class=\"summary-sig-arg\">radius</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">**unused</span>)</span><br />\n      Return a string representation of this WM coordinate.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.webmercator.Wm-class.html#toStr\" class=\"summary-sig-name\">toStr</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">prec</span>=<span class=\"summary-sig-default\">3</span>,\n        <span class=\"summary-sig-arg\">fmt</span>=<span class=\"summary-sig-default\">'F'</span>,\n        <span class=\"summary-sig-arg\">sep</span>=<span class=\"summary-sig-default\">' '</span>,\n        <span class=\"summary-sig-arg\">radius</span>=<span class=\"summary-sig-default\">False</span>,\n        <span class=\"summary-sig-arg\">**unused</span>)</span><br />\n      Return a string representation of this WM coordinate.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._NamedBase-class.html\">named._NamedBase</a></code></b>:\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.named._NamedBase-class.html#others\">others</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__format__\">__format__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__hash__</code>,\n      <code>__new__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.webmercator.Wm-class.html#datum\" class=\"summary-name\">datum</a><br />\n      Get the datum (<code>Datum</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.webmercator.Wm-class.html#ellipsoid\" class=\"summary-name\">ellipsoid</a><br />\n      Get the ellipsoid (<code>Ellipsoid</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.webmercator.Wm-class.html#latlon\" class=\"summary-name\">latlon</a><br />\n      Get the lat- and longitude (<a \n      href=\"pygeodesy.namedTuples.LatLon2Tuple-class.html\" \n      class=\"link\">LatLon2Tuple</a>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.webmercator.Wm-class.html#philam\" class=\"summary-name\">philam</a><br />\n      Get the lat- and longitude ((<a \n      href=\"pygeodesy.namedTuples.PhiLam2Tuple-class.html\" \n      class=\"link\">PhiLam2Tuple</a>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.webmercator.Wm-class.html#radius\" class=\"summary-name\">radius</a><br />\n      Get the earth radius (<code>meter</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.webmercator.Wm-class.html#x\" class=\"summary-name\">x</a><br />\n      Get the easting (<code>meter</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.webmercator.Wm-class.html#y\" class=\"summary-name\">y</a><br />\n      Get the northing (<code>meter</code>).\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__init__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__init__</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">x</span>,\n        <span class=\"sig-arg\">y</span>,\n        <span class=\"sig-arg\">earth</span>=<span class=\"sig-default\">6378137.0</span>,\n        <span class=\"sig-arg\">**name_radius</span>)</span>\n    <br /><em class=\"fname\">(Constructor)</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.webmercator.Wm-class.html\" class=\"link\">Wm</a> \n  Web Mercator (WM) coordinate.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>x</code></strong> - Easting from central meridian (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>y</code></strong> - Northing from equator (<code>meter</code>).</li>\n        <li><strong class=\"pname\"><code>earth</code></strong> - Earth radius (<code>meter</code>), datum or ellipsoid (<a \n          href=\"pygeodesy.datums.Datum-class.html\" class=\"link\">Datum</a>, \n          <a href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a> or <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a>).</li>\n        <li><strong class=\"pname\"><code>name_radius</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>) and \n          DEPRECATED keyword argument <code><b>radius</b>=earth</code>, use\n          <b><code>earth</code></b>.</li>\n    </ul></dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.webmercator.WebMercatorError-class.html\">WebMercatorError</a></strong></code> - Invalid <b><code>x</code></b>, <b><code>y</code></b> or \n        <b><code>radius</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__init__\n    </dt>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        WM is strictly defined for spherical and WGS84 ellipsoidal earth \n        models only.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"latlon2\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">latlon2</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">datum</span>=<span class=\"sig-default\">None</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert this WM coordinate to a lat- and longitude.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>datum</code></strong> - Optional datum (<a href=\"pygeodesy.datums.Datum-class.html\" \n          class=\"link\">Datum</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\" \n          class=\"link\">Ellipsoid</a>, <a \n          href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\" \n          class=\"link\">Ellipsoid2</a> or <a \n          href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\" \n          class=\"link\">a_f2Tuple</a>) or earth radius (<code>meter</code>),\n          overriding this WM's <code>radius</code> and <code>datum</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.namedTuples.LatLon2Tuple-class.html\" \n          class=\"link\">LatLon2Tuple</a><code>(lat, lon)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid or non-ellipsoidal <b><code>datum</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        WM is strictly defined for spherical and WGS84 ellipsoidal earth \n        models only.\n      </p>\n      <p><strong>See Also:</strong>\n        Method <code>toLatLon</code> for other return types.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"parse\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">parse</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">strWM</span>,\n        <span class=\"sig-arg\">**name</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Parse a string to a similar <a \n  href=\"pygeodesy.webmercator.Wm-class.html\" class=\"link\">Wm</a> \n  instance.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>strWM</code></strong> - The WM coordinate (<code>str</code>), see function <a \n          href=\"pygeodesy.webmercator.Wm-class.html#parseWM\" \n          class=\"link\">parseWM</a>.</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>), \n          overriding this name.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The similar instance (<a \n          href=\"pygeodesy.webmercator.Wm-class.html\" class=\"link\">Wm</a>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.webmercator.WebMercatorError-class.html\">WebMercatorError</a></strong></code> - Invalid <b><code>strWM</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"parseWM\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">parseWM</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">strWM</span>,\n        <span class=\"sig-arg\">name</span>=<span class=\"sig-default\">''</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use method <a \n  href=\"pygeodesy.webmercator.Wm-class.html#parse\" \n  class=\"link\">Wm.parse</a>.</p>\n  <dl class=\"fields\">\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_method</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"to2ll\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">to2ll</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">datum</span>=<span class=\"sig-default\">None</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>DEPRECATED, use method <code>latlon2</code>.</p>\n  <dl class=\"fields\">\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.namedTuples.LatLon2Tuple-class.html\" \n          class=\"link\">LatLon2Tuple</a><code>(lat, lon)</code>.</dd>\n    <dt>Decorators:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code>@deprecated_method</code></li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toLatLon\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toLatLon</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">LatLon</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">datum</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**LatLon_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Convert this WM coordinate to a geodetic point.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>LatLon</code></strong> - Ellipsoidal or sphperical <code>LatLon</code> class to return the\n          geodetic point (<code>LatLon</code>) or <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>datum</code></strong> - Optional, datum (<code>Datum</code>) overriding this WM's.</li>\n        <li><strong class=\"pname\"><code>LatLon_kwds</code></strong> - Optional, additional <b><code>LatLon</code></b> keyword \n          arguments, ignored if <code><b>LatLon</b> is None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>This WM coordinate as <b><code>LatLon</code></b> or if \n          <code><b>LatLon</b> is None</code> a <a \n          href=\"pygeodesy.namedTuples.LatLonDatum3Tuple-class.html\" \n          class=\"link\">LatLonDatum3Tuple</a>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - If <b><code>datum</code></b> is invalid or if \n        <b><code>LatLon</code></b> and <b><code>datum</code></b> are \n        incompatible.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toRepr\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toRepr</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">prec</span>=<span class=\"sig-default\">3</span>,\n        <span class=\"sig-arg\">fmt</span>=<span class=\"sig-default\">'[%s]'</span>,\n        <span class=\"sig-arg\">sep</span>=<span class=\"sig-default\">', '</span>,\n        <span class=\"sig-arg\">radius</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">**unused</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return a string representation of this WM coordinate.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>prec</code></strong> - Number of (decimal) digits, unstripped (<code>int</code>).</li>\n        <li><strong class=\"pname\"><code>fmt</code></strong> - Enclosing backets format (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>sep</code></strong> - Optional separator between name:value pairs (<code>str</code>).</li>\n        <li><strong class=\"pname\"><code>radius</code></strong> - If <code>True</code>, include the radius (<code>bool</code>) or \n          <code>scalar</code> to override this WM's radius.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>This WM as &quot;[x:meter, y:meter]&quot; (<code>str</code>) or \n          as &quot;[x:meter, y:meter], radius:meter]&quot; if \n          <b><code>radius</code></b> is <code>True</code> or \n          <code>scalar</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.webmercator.WebMercatorError-class.html\">WebMercatorError</a></strong></code> - Invalid <b><code>radius</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.named._Named-class.html#toRepr\">named._Named.toRepr</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toStr\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toStr</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">prec</span>=<span class=\"sig-default\">3</span>,\n        <span class=\"sig-arg\">fmt</span>=<span class=\"sig-default\">'F'</span>,\n        <span class=\"sig-arg\">sep</span>=<span class=\"sig-default\">' '</span>,\n        <span class=\"sig-arg\">radius</span>=<span class=\"sig-default\">False</span>,\n        <span class=\"sig-arg\">**unused</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return a string representation of this WM coordinate.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>prec</code></strong> - Number of (decimal) digits, unstripped (<code>int</code>).</li>\n        <li><strong class=\"pname\"><code>fmt</code></strong> - Optional <code>float</code> format (<code>letter</code>).</li>\n        <li><strong class=\"pname\"><code>sep</code></strong> - Optional separator to join (<code>str</code>) or \n          <code>None</code> to return an unjoined <code>tuple</code> of \n          <code>str</code>s.</li>\n        <li><strong class=\"pname\"><code>radius</code></strong> - If <code>True</code>, include the radius (<code>bool</code>) or \n          <code>scalar</code> to override this WM's radius.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>This WM as &quot;meter meter&quot; (<code>str</code>) or as \n          &quot;meter meter radius&quot; if <b><code>radius</code></b> is \n          <code>True</code> or <code>scalar</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.webmercator.WebMercatorError-class.html\">WebMercatorError</a></strong></code> - Invalid <b><code>radius</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        <a href=\"pygeodesy.named._Named-class.html#toStr\">named._Named.toStr</a>\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"datum\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">datum</h3>\n  <p>Get the datum (<code>Datum</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">datum(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the datum (<code>Datum</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"ellipsoid\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">ellipsoid</h3>\n  <p>Get the ellipsoid (<code>Ellipsoid</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">ellipsoid(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the ellipsoid (<code>Ellipsoid</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"latlon\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">latlon</h3>\n  <p>Get the lat- and longitude (<a \n  href=\"pygeodesy.namedTuples.LatLon2Tuple-class.html\" \n  class=\"link\">LatLon2Tuple</a>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">latlon(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the lat- and longitude (<a \nhref=\"pygeodesy.namedTuples.LatLon2Tuple-class.html\" \nclass=\"link\">LatLon2Tuple</a>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"philam\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">philam</h3>\n  <p>Get the lat- and longitude ((<a \n  href=\"pygeodesy.namedTuples.PhiLam2Tuple-class.html\" \n  class=\"link\">PhiLam2Tuple</a>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">philam(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the lat- and longitude ((<a \nhref=\"pygeodesy.namedTuples.PhiLam2Tuple-class.html\" \nclass=\"link\">PhiLam2Tuple</a>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"radius\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">radius</h3>\n  <p>Get the earth radius (<code>meter</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">radius(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the earth radius (<code>meter</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"x\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">x</h3>\n  <p>Get the easting (<code>meter</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">x(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the easting (<code>meter</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"y\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">y</h3>\n  <p>Get the northing (<code>meter</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">y(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get the northing (<code>meter</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:21 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.wgrs-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.wgrs</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        Module&nbsp;wgrs\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.wgrs-module.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== MODULE DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Module wgrs</h1><p class=\"nomargin-top\"></p>\n<p>World Geographic Reference System (WGRS) en-/decoding, aka GEOREF.</p>\n  <p>Class <a href=\"pygeodesy.wgrs.Georef-class.html\" \n  class=\"link\">Georef</a> and several functions to encode, decode and \n  inspect WGRS (or GEOREF) references.</p>\n  <p>Transcoded from <i>Charles Karney</i>'s C++ class <a \n  href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Georef.html\"\n  target=\"_top\">Georef</a>, but with modified <code>precision</code> and \n  extended with <code>height</code> and <code>radius</code>.</p>\n\n<hr />\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        <a \n        href=\"https://WikiPedia.org/wiki/World_Geographic_Reference_System\"\n        target=\"_top\">World Geographic Reference System</a>.\n      </p>\n      <p><strong>Version:</strong>\n        25.04.14\n      </p>\n</div><!-- ==================== CLASSES ==================== -->\n<a name=\"section-Classes\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Classes</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.wgrs.WGRSError-class.html\" class=\"summary-name\">WGRSError</a><br />\n      World Geographic Reference System (WGRS) encode, decode or other <a\n        href=\"pygeodesy.wgrs.Georef-class.html\" class=\"link\">Georef</a> \n        issue.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.wgrs.Georef-class.html\" class=\"summary-name\">Georef</a><br />\n      Georef class, a named <code>str</code>.\n    </td>\n  </tr>\n</table>\n<!-- ==================== FUNCTIONS ==================== -->\n<a name=\"section-Functions\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Functions</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.wgrs-module.html#decode3\" class=\"summary-sig-name\">decode3</a>(<span class=\"summary-sig-arg\">georef</span>,\n        <span class=\"summary-sig-arg\">center</span>=<span class=\"summary-sig-default\">True</span>)</span><br />\n      Decode a <code>georef</code> to lat-, longitude and precision.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.wgrs-module.html#decode5\" class=\"summary-sig-name\">decode5</a>(<span class=\"summary-sig-arg\">georef</span>,\n        <span class=\"summary-sig-arg\">center</span>=<span class=\"summary-sig-default\">True</span>)</span><br />\n      Decode a <code>georef</code> to lat-, longitude, precision, height \n      and radius.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.wgrs-module.html#encode\" class=\"summary-sig-name\">encode</a>(<span class=\"summary-sig-arg\">lat</span>,\n        <span class=\"summary-sig-arg\">lon</span>,\n        <span class=\"summary-sig-arg\">precision</span>=<span class=\"summary-sig-default\">3</span>,\n        <span class=\"summary-sig-arg\">height</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">radius</span>=<span class=\"summary-sig-default\">None</span>)</span><br />\n      Encode a lat-/longitude as a <code>georef</code> of the given \n      precision.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.wgrs-module.html#precision\" class=\"summary-sig-name\">precision</a>(<span class=\"summary-sig-arg\">res</span>)</span><br />\n      Determine the <a href=\"pygeodesy.wgrs.Georef-class.html\" \n      class=\"link\">Georef</a> precision to meet a required (geographic) \n      resolution.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.wgrs-module.html#resolution\" class=\"summary-sig-name\">resolution</a>(<span class=\"summary-sig-arg\">prec</span>)</span><br />\n      Determine the (geographic) resolution of a given <a \n      href=\"pygeodesy.wgrs.Georef-class.html\" class=\"link\">Georef</a> \n      precision.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== VARIABLES ==================== -->\n<a name=\"section-Variables\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Variables</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a name=\"__all__\"></a><span class=\"summary-name\">__all__</span> = <code title=\"_ALL_LAZY.wgrs\">_ALL_LAZY.wgrs</code>\n    </td>\n  </tr>\n</table>\n<!-- ==================== FUNCTION DETAILS ==================== -->\n<a name=\"section-FunctionDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Function Details</span></td>\n</tr>\n</table>\n<a name=\"decode3\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">decode3</span>&nbsp;(<span class=\"sig-arg\">georef</span>,\n        <span class=\"sig-arg\">center</span>=<span class=\"sig-default\">True</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Decode a <code>georef</code> to lat-, longitude and precision.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>georef</code></strong> - To be decoded (<a href=\"pygeodesy.wgrs.Georef-class.html\" \n          class=\"link\">Georef</a> or <code>str</code>).</li>\n        <li><strong class=\"pname\"><code>center</code></strong> - If <code>True</code>, use the georef's center, otherwise the \n          south-west, lower-left corner (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.namedTuples.LatLonPrec3Tuple-class.html\" \n          class=\"link\">LatLonPrec3Tuple</a><code>(lat, lon, \n          precision)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.wgrs.WGRSError-class.html\">WGRSError</a></strong></code> - Invalid <b><code>georef</code></b>, INValid, non-alphanumeric or \n        odd length <b><code>georef</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"decode5\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">decode5</span>&nbsp;(<span class=\"sig-arg\">georef</span>,\n        <span class=\"sig-arg\">center</span>=<span class=\"sig-default\">True</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Decode a <code>georef</code> to lat-, longitude, precision, height and\n  radius.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>georef</code></strong> - To be decoded (<a href=\"pygeodesy.wgrs.Georef-class.html\" \n          class=\"link\">Georef</a> or <code>str</code>).</li>\n        <li><strong class=\"pname\"><code>center</code></strong> - If <code>True</code>, use the georef's center, otherwise the \n          south-west, lower-left corner (<code>bool</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>A <a href=\"pygeodesy.namedTuples.LatLonPrec5Tuple-class.html\" \n          class=\"link\">LatLonPrec5Tuple</a><code>(lat, lon, precision, \n          height, radius)</code> where <code>height</code> and/or \n          <code>radius</code> are <code>None</code> if missing.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.wgrs.WGRSError-class.html\">WGRSError</a></strong></code> - Invalid <b><code>georef</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"encode\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">encode</span>&nbsp;(<span class=\"sig-arg\">lat</span>,\n        <span class=\"sig-arg\">lon</span>,\n        <span class=\"sig-arg\">precision</span>=<span class=\"sig-default\">3</span>,\n        <span class=\"sig-arg\">height</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">radius</span>=<span class=\"sig-default\">None</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Encode a lat-/longitude as a <code>georef</code> of the given \n  precision.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat</code></strong> - Latitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>lon</code></strong> - Longitude (<code>degrees</code>).</li>\n        <li><strong class=\"pname\"><code>precision</code></strong> - Optional, the desired <code>georef</code> resolution and length \n          (<code>int</code> 0..11).</li>\n        <li><strong class=\"pname\"><code>height</code></strong> - Optional, height in <code>meter</code>, see <a \n          href=\"https://WikiPedia.org/wiki/World_Geographic_Reference_System\"\n          target=\"_top\">Designation of area</a>.</li>\n        <li><strong class=\"pname\"><code>radius</code></strong> - Optional, radius in <code>meter</code>, see <a \n          href=\"https://WikiPedia.org/wiki/World_Geographic_Reference_System\"\n          target=\"_top\">Designation of area</a>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The <code>georef</code> (<code>str</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.RangeError-class.html\">RangeError</a></strong></code> - Invalid <b><code>lat</code></b> or <b><code>lon</code></b>.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.wgrs.WGRSError-class.html\">WGRSError</a></strong></code> - Invalid <b><code>precision</code></b>, <b><code>height</code></b> \n        or <b><code>radius</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>Note:</strong>\n        The <b><code>precision</code></b> value differs from \n        <i>Karney</i>'s <a \n        href=\"https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Georef.html\"\n        target=\"_top\">Georef</a>. The <code>georef</code> length is <i \n        class=\"math\">2 * (precision + 1)</i> and the <code>georef</code> \n        resolution is <i>15&#176;</i> for <b><code>precision</code></b> 0:, \n        <i>1&#176;</i> for 1, <i>1&#8242;</i> for 2, <i>0.1&#8242;</i> for 3, <i>0.01&#8242;</i> \n        for 4, ... up to <i>10**(2 - precision)&#8242;</i>.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"precision\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">precision</span>&nbsp;(<span class=\"sig-arg\">res</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Determine the <a href=\"pygeodesy.wgrs.Georef-class.html\" \n  class=\"link\">Georef</a> precision to meet a required (geographic) \n  resolution.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>res</code></strong> - The required resolution (<code>degrees</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The <a href=\"pygeodesy.wgrs.Georef-class.html\" \n          class=\"link\">Georef</a> precision (<code>int</code> 0..11).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>res</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.wgrs-module.html#encode\" \n        class=\"link\">wgrs.encode</a> for more <code>precision</code> \n        details.\n      </p>\n</div></td></tr></table>\n</div>\n<a name=\"resolution\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">resolution</span>&nbsp;(<span class=\"sig-arg\">prec</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Determine the (geographic) resolution of a given <a \n  href=\"pygeodesy.wgrs.Georef-class.html\" class=\"link\">Georef</a> \n  precision.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>prec</code></strong> - The given precision (<code>int</code>).</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>The (geographic) resolution (<code>degrees</code>).</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>ValueError</strong></code> - Invalid <b><code>prec</code></b>.</li>\n    </ul></dd>\n  </dl>\n<div class=\"fields\">      <p><strong>See Also:</strong>\n        Function <a href=\"pygeodesy.wgrs-module.html#encode\" \n        class=\"link\">wgrs.encode</a> for more <code>precision</code> \n        details.\n      </p>\n</div></td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:18 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.wgrs.Georef-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.wgrs.Georef</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.wgrs-module.html\">Module&nbsp;wgrs</a> ::\n        Class&nbsp;Georef\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.wgrs.Georef-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class Georef</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n      object --+            \n               |            \n      basestring --+        \n                   |        \n                 str --+    \n                       |    \n      object --+       |    \n               |       |    \n    <a href=\"pygeodesy.named._Named-class.html\">named._Named</a> --+   |    \n                   |   |    \n<a href=\"pygeodesy.unitsBase._NamedUnit-class.html\">unitsBase._NamedUnit</a> --+    \n                       |    \n           <a href=\"pygeodesy.unitsBase.Str-class.html\">unitsBase.Str</a> --+\n                           |\n                          <strong class=\"uidshort\">Georef</strong>\n</pre>\n\n<hr />\n<p>Georef class, a named <code>str</code>.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.wgrs.Georef-class.html#toLatLon\" class=\"summary-sig-name\">toLatLon</a>(<span class=\"summary-sig-arg\">self</span>,\n        <span class=\"summary-sig-arg\">LatLon</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">height</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">**name_LatLon_kwds</span>)</span><br />\n      Return (the center of) this georef cell as a <code>LatLon</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase.Str-class.html\">unitsBase.Str</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase.Str-class.html#__call__\">__call__</a></code>,\n      <code><a href=\"pygeodesy.unitsBase.Str-class.html#__repr__\">__repr__</a></code>,\n      <code><a href=\"pygeodesy.unitsBase.Str-class.html#__str__\">__str__</a></code>,\n      <code><a href=\"pygeodesy.unitsBase.Str-class.html#join_\">join_</a></code>,\n      <code><a href=\"pygeodesy.unitsBase.Str-class.html#toRepr\">toRepr</a></code>,\n      <code><a href=\"pygeodesy.unitsBase.Str-class.html#toStr\">toStr</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>str</code></b>:\n      <code>__add__</code>,\n      <code>__contains__</code>,\n      <code>__eq__</code>,\n      <code>__format__</code>,\n      <code>__ge__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getnewargs__</code>,\n      <code>__getslice__</code>,\n      <code>__gt__</code>,\n      <code>__hash__</code>,\n      <code>__le__</code>,\n      <code>__len__</code>,\n      <code>__lt__</code>,\n      <code>__mod__</code>,\n      <code>__mul__</code>,\n      <code>__ne__</code>,\n      <code>__rmod__</code>,\n      <code>__rmul__</code>,\n      <code>__sizeof__</code>,\n      <code>capitalize</code>,\n      <code>center</code>,\n      <code>count</code>,\n      <code>decode</code>,\n      <code>encode</code>,\n      <code>endswith</code>,\n      <code>expandtabs</code>,\n      <code>find</code>,\n      <code>format</code>,\n      <code>index</code>,\n      <code>isalnum</code>,\n      <code>isalpha</code>,\n      <code>isdigit</code>,\n      <code>islower</code>,\n      <code>isspace</code>,\n      <code>istitle</code>,\n      <code>isupper</code>,\n      <code>join</code>,\n      <code>ljust</code>,\n      <code>lower</code>,\n      <code>lstrip</code>,\n      <code>partition</code>,\n      <code>replace</code>,\n      <code>rfind</code>,\n      <code>rindex</code>,\n      <code>rjust</code>,\n      <code>rpartition</code>,\n      <code>rsplit</code>,\n      <code>rstrip</code>,\n      <code>split</code>,\n      <code>splitlines</code>,\n      <code>startswith</code>,\n      <code>strip</code>,\n      <code>swapcase</code>,\n      <code>title</code>,\n      <code>translate</code>,\n      <code>upper</code>,\n      <code>zfill</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#__imatmul__\">__imatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__matmul__\">__matmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#__rmatmul__\">__rmatmul__</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#attrs\">attrs</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classof\">classof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#copy\">copy</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#dup\">dup</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#methodname\">methodname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#rename\">rename</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#renamed\">renamed</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#toStr2\">toStr2</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__delattr__</code>,\n      <code>__init__</code>,\n      <code>__reduce__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__setattr__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== STATIC METHODS ==================== -->\n<a name=\"section-StaticMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Static Methods</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">a new object with type S, a subtype of T</span>\n    </td><td class=\"summary\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n        <tr>\n          <td><span class=\"summary-sig\"><a href=\"pygeodesy.wgrs.Georef-class.html#__new__\" class=\"summary-sig-name\">__new__</a>(<span class=\"summary-sig-arg\">cls</span>,\n        <span class=\"summary-sig-arg\">lat_gll</span>,\n        <span class=\"summary-sig-arg\">lon</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">height</span>=<span class=\"summary-sig-default\">None</span>,\n        <span class=\"summary-sig-arg\">precision</span>=<span class=\"summary-sig-default\">3</span>,\n        <span class=\"summary-sig-arg\">name</span>=<span class=\"summary-sig-default\">''</span>)</span><br />\n      New <a href=\"pygeodesy.wgrs.Georef-class.html\" \n      class=\"link\">Georef</a> from an other <a \n      href=\"pygeodesy.wgrs.Georef-class.html\" class=\"link\">Georef</a> \n      instance or georef <code>str</code> or from a <code>LatLon</code> \n      instance or lat-/longitude <code>str</code>.</td>\n          <td align=\"right\" valign=\"top\">\n            \n            \n          </td>\n        </tr>\n      </table>\n      \n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.wgrs.Georef-class.html#decoded3\" class=\"summary-name\">decoded3</a><br />\n      Get this georef's attributes (<a \n      href=\"pygeodesy.namedTuples.LatLonPrec3Tuple-class.html\" \n      class=\"link\">LatLonPrec3Tuple</a>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.wgrs.Georef-class.html#decoded5\" class=\"summary-name\">decoded5</a><br />\n      Get this georef's attributes (<a \n      href=\"pygeodesy.namedTuples.LatLonPrec5Tuple-class.html\" \n      class=\"link\">LatLonPrec5Tuple</a>) with height and radius set to \n      <code>None</code> if missing.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.wgrs.Georef-class.html#height\" class=\"summary-name\">height</a><br />\n      Get this georef's height in <code>meter</code> or <code>None</code> \n      if missing.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.wgrs.Georef-class.html#latlon\" class=\"summary-name\">latlon</a><br />\n      Get this georef's (center) lat- and longitude (<a \n      href=\"pygeodesy.namedTuples.LatLon2Tuple-class.html\" \n      class=\"link\">LatLon2Tuple</a>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.wgrs.Georef-class.html#latlonheight\" class=\"summary-name\">latlonheight</a><br />\n      Get this georef's (center) lat-, longitude and height (<a \n      href=\"pygeodesy.namedTuples.LatLon3Tuple-class.html\" \n      class=\"link\">LatLon3Tuple</a>), with height set to <code>INT0</code> \n      if missing.\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.wgrs.Georef-class.html#precision\" class=\"summary-name\">precision</a><br />\n      Get this georef's precision (<code>int</code>).\n    </td>\n  </tr>\n<tr>\n    <td width=\"15%\" align=\"right\" valign=\"top\" class=\"summary\">\n      <span class=\"summary-type\">&nbsp;</span>\n    </td><td class=\"summary\">\n        <a href=\"pygeodesy.wgrs.Georef-class.html#radius\" class=\"summary-name\">radius</a><br />\n      Get this georef's radius in <code>meter</code> or <code>None</code> \n      if missing.\n    </td>\n  </tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html\">unitsBase._NamedUnit</a></code></b>:\n      <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html#std_repr\">std_repr</a></code>,\n      <code><a href=\"pygeodesy.unitsBase._NamedUnit-class.html#units\">units</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code><a href=\"pygeodesy.named._Named-class.html\">named._Named</a></code></b>:\n      <code><a href=\"pygeodesy.named._Named-class.html#classname\">classname</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#classnaming\">classnaming</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#iteration\">iteration</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#name\">name</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named\">named</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named2\">named2</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named3\">named3</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#named4\">named4</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#sizeof\">sizeof</a></code>,\n      <code><a href=\"pygeodesy.named._Named-class.html#typename\">typename</a></code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== METHOD DETAILS ==================== -->\n<a name=\"section-MethodDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Method Details</span></td>\n</tr>\n</table>\n<a name=\"__new__\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">__new__</span>&nbsp;(<span class=\"sig-arg\">cls</span>,\n        <span class=\"sig-arg\">lat_gll</span>,\n        <span class=\"sig-arg\">lon</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">height</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">precision</span>=<span class=\"sig-default\">3</span>,\n        <span class=\"sig-arg\">name</span>=<span class=\"sig-default\">''</span>)</span>\n    <br /><em class=\"fname\">Static Method</em>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>New <a href=\"pygeodesy.wgrs.Georef-class.html\" class=\"link\">Georef</a>\n  from an other <a href=\"pygeodesy.wgrs.Georef-class.html\" \n  class=\"link\">Georef</a> instance or georef <code>str</code> or from a \n  <code>LatLon</code> instance or lat-/longitude <code>str</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>lat_gll</code></strong> - Latitude (<code>degrees90</code>), a georef (<a \n          href=\"pygeodesy.wgrs.Georef-class.html\" class=\"link\">Georef</a>, \n          <code>str</code>) or a location (<code>LatLon</code>, \n          <code>LatLon*Tuple</code>).</li>\n        <li><strong class=\"pname\"><code>lon</code></strong> - Logitude (<code>degrees180)</code>, required if \n          <b><code>lat_gll</code></b> is <code>degrees90</code>, ignored \n          otherwise.</li>\n        <li><strong class=\"pname\"><code>height</code></strong> - Optional height in <code>meter</code>, used if \n          <b><code>lat_gll</code></b> is a location.</li>\n        <li><strong class=\"pname\"><code>precision</code></strong> - The desired georef resolution and length (<code>int</code> \n          0..11), see <a href=\"pygeodesy.wgrs-module.html#encode\" \n          class=\"link\">encode</a>.</li>\n        <li><strong class=\"pname\"><code>name</code></strong> - Optional name (<code>str</code>).</li>\n    </ul></dd>\n    <dt>Returns: a new object with type S, a subtype of T</dt>\n        <dd>New <a href=\"pygeodesy.wgrs.Georef-class.html\" \n          class=\"link\">Georef</a>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'><a href=\"pygeodesy.errors.RangeError-class.html\">RangeError</a></strong></code> - Invalid <b><code>lat_gll</code></b> or <b><code>lon</code></b>.</li>\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>lat_gll</code></b> or <b><code>lon</code></b>.</li>\n        <li><code><strong class='fraise'><a href=\"pygeodesy.wgrs.WGRSError-class.html\">WGRSError</a></strong></code> - INValid <b><code>lat_gll</code></b>.</li>\n    </ul></dd>\n    <dt>Overrides:\n        object.__new__\n    </dt>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"toLatLon\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n  <tr valign=\"top\"><td>\n  <h3 class=\"epydoc\"><span class=\"sig\"><span class=\"sig-name\">toLatLon</span>&nbsp;(<span class=\"sig-arg\">self</span>,\n        <span class=\"sig-arg\">LatLon</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">height</span>=<span class=\"sig-default\">None</span>,\n        <span class=\"sig-arg\">**name_LatLon_kwds</span>)</span>\n  </h3>\n  </td><td align=\"right\" valign=\"top\"\n    >&nbsp;\n    </td>\n  </tr></table>\n  \n  <p>Return (the center of) this georef cell as a <code>LatLon</code>.</p>\n  <dl class=\"fields\">\n    <dt>Arguments:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><strong class=\"pname\"><code>LatLon</code></strong> - Class to use (<code>LatLon</code>) or <code>None</code>.</li>\n        <li><strong class=\"pname\"><code>height</code></strong> - Optional height (<code>meter</code>), overriding this height.</li>\n        <li><strong class=\"pname\"><code>name_LatLon_kwds</code></strong> - Optional <code><b>name</b>=NN</code> (<code>str</code>) and \n          optionally, additional <b><code>LatLon</code></b> keyword \n          arguments, ignored if <code><b>LatLon</b> is None</code>.</li>\n    </ul></dd>\n    <dt>Returns:</dt>\n        <dd>This georef location (<b><code>LatLon</code></b>) or if \n          <code><b>LatLon</b> is None</code>, a <a \n          href=\"pygeodesy.namedTuples.LatLon3Tuple-class.html\" \n          class=\"link\">LatLon3Tuple</a><code>(lat, lon, height)</code>.</dd>\n    <dt>Raises:</dt>\n    <dd><ul class=\"nomargin-top\">\n        <li><code><strong class='fraise'>TypeError</strong></code> - Invalid <b><code>LatLon</code></b> or \n        <b><code>name_LatLon_kwds</code></b>.</li>\n    </ul></dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== PROPERTY DETAILS ==================== -->\n<a name=\"section-PropertyDetails\"></a>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Property Details</span></td>\n</tr>\n</table>\n<a name=\"decoded3\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">decoded3</h3>\n  <p>Get this georef's attributes (<a \n  href=\"pygeodesy.namedTuples.LatLonPrec3Tuple-class.html\" \n  class=\"link\">LatLonPrec3Tuple</a>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">decoded3(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get this georef's attributes (<a \nhref=\"pygeodesy.namedTuples.LatLonPrec3Tuple-class.html\" \nclass=\"link\">LatLonPrec3Tuple</a>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"decoded5\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">decoded5</h3>\n  <p>Get this georef's attributes (<a \n  href=\"pygeodesy.namedTuples.LatLonPrec5Tuple-class.html\" \n  class=\"link\">LatLonPrec5Tuple</a>) with height and radius set to \n  <code>None</code> if missing.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">decoded5(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get this georef's attributes (<a \nhref=\"pygeodesy.namedTuples.LatLonPrec5Tuple-class.html\" \nclass=\"link\">LatLonPrec5Tuple</a>) with height and radius set to \n<code>None</code> if missing.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"height\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">height</h3>\n  <p>Get this georef's height in <code>meter</code> or <code>None</code> if\n  missing.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">height(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get this georef's height in <code>meter</code> or <code>None</code> if \nmissing.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"latlon\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">latlon</h3>\n  <p>Get this georef's (center) lat- and longitude (<a \n  href=\"pygeodesy.namedTuples.LatLon2Tuple-class.html\" \n  class=\"link\">LatLon2Tuple</a>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">latlon(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get this georef's (center) lat- and longitude (<a \nhref=\"pygeodesy.namedTuples.LatLon2Tuple-class.html\" \nclass=\"link\">LatLon2Tuple</a>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"latlonheight\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">latlonheight</h3>\n  <p>Get this georef's (center) lat-, longitude and height (<a \n  href=\"pygeodesy.namedTuples.LatLon3Tuple-class.html\" \n  class=\"link\">LatLon3Tuple</a>), with height set to <code>INT0</code> if \n  missing.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">latlonheight(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get this georef's (center) lat-, longitude and height (<a \nhref=\"pygeodesy.namedTuples.LatLon3Tuple-class.html\" \nclass=\"link\">LatLon3Tuple</a>), with height set to <code>INT0</code> if \nmissing.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"precision\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">precision</h3>\n  <p>Get this georef's precision (<code>int</code>).</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">precision(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get this georef's precision (<code>int</code>).\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<a name=\"radius\"></a>\n<div>\n<table class=\"details\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr><td>\n  <h3 class=\"epydoc\">radius</h3>\n  <p>Get this georef's radius in <code>meter</code> or <code>None</code> if\n  missing.</p>\n  <dl class=\"fields\">\n    <dt>Get method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">radius(<span class=\"summary-sig-arg\">self</span>)</span>\n        - Get this georef's radius in <code>meter</code> or <code>None</code> if \nmissing.\n    </dd>\n    <dt>Set method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fset_error(<span class=\"summary-sig-arg\">inst</span>,\n        <span class=\"summary-sig-arg\">val</span>)</span>\n        - Throws an <code>AttributeError</code>, always.\n    </dd>\n    <dt>Delete Method:</dt>\n    <dd class=\"value\"><span class=\"summary-sig\">_fdel(<span class=\"summary-sig-arg\">inst</span>)</span>\n        - Zap the <i>cached/memoized</i> <code>property</code> value.\n    </dd>\n  </dl>\n</td></tr></table>\n</div>\n<br />\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:21 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/pygeodesy.wgrs.WGRSError-class.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy.wgrs.WGRSError</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">\n      <span class=\"breadcrumbs\">\n        <a href=\"pygeodesy-module.html\">Package&nbsp;pygeodesy</a> ::\n        <a href=\"pygeodesy.wgrs-module.html\">Module&nbsp;wgrs</a> ::\n        Class&nbsp;WGRSError\n      </span>\n    </td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"pygeodesy.wgrs.WGRSError-class.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<!-- ==================== CLASS DESCRIPTION ==================== -->\n<h1 class=\"epydoc\">Class WGRSError</h1><p class=\"nomargin-top\"></p>\n<pre class=\"base-tree\">\n              object --+                    \n                       |                    \nexceptions.BaseException --+                \n                           |                \n        exceptions.Exception --+            \n                               |            \n        exceptions.StandardError --+        \n                                   |        \n               exceptions.ValueError --+    \n                                       |    \n                      errors._ValueError --+\n                                           |\n                                          <strong class=\"uidshort\">WGRSError</strong>\n</pre>\n\n<hr />\n<p>World Geographic Reference System (WGRS) encode, decode or other <a \n  href=\"pygeodesy.wgrs.Georef-class.html\" class=\"link\">Georef</a> \n  issue.</p>\n\n<!-- ==================== INSTANCE METHODS ==================== -->\n<a name=\"section-InstanceMethods\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Instance Methods</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>errors._ValueError</code></b>:\n      <code>__init__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.ValueError</code></b>:\n      <code>__new__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.BaseException</code></b>:\n      <code>__delattr__</code>,\n      <code>__getattribute__</code>,\n      <code>__getitem__</code>,\n      <code>__getslice__</code>,\n      <code>__reduce__</code>,\n      <code>__repr__</code>,\n      <code>__setattr__</code>,\n      <code>__setstate__</code>,\n      <code>__str__</code>,\n      <code>__unicode__</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__format__</code>,\n      <code>__hash__</code>,\n      <code>__reduce_ex__</code>,\n      <code>__sizeof__</code>,\n      <code>__subclasshook__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== PROPERTIES ==================== -->\n<a name=\"section-Properties\"></a>\n<table class=\"summary\" border=\"1\" cellpadding=\"3\"\n       cellspacing=\"0\" width=\"100%\" bgcolor=\"white\">\n<tr bgcolor=\"#70b0f0\" class=\"table-header\">\n  <td align=\"left\" colspan=\"2\" class=\"table-header\">\n    <span class=\"table-header\">Properties</span></td>\n</tr>\n  <tr>\n    <td colspan=\"2\" class=\"summary\">\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>exceptions.BaseException</code></b>:\n      <code>args</code>,\n      <code>message</code>\n      </p>\n    <p class=\"indent-wrapped-lines\"><b>Inherited from <code>object</code></b>:\n      <code>__class__</code>\n      </p>\n    </td>\n  </tr>\n</table>\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"identifier-index.html\">Indices</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:21 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/redirect.html",
    "content": "<html><head><title>Epydoc Redirect Page</title>\n<meta http-equiv=\"cache-control\" content=\"no-cache\" />\n<meta http-equiv=\"expires\" content=\"0\" />\n<meta http-equiv=\"pragma\" content=\"no-cache\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n<body>\n<script type=\"text/javascript\">\n<!--\nvar pages = [\"pygeodesy.deprecated.classes.JacobiConformalSpherical-c\", \"pygeodesy.deprecated.classes._Deprecated_NamedTuple-c\", \"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-c\", \"pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-c\", \"pygeodesy.triaxials.bases._UnOrderedTriaxialBase-c\", \"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-c\", \"pygeodesy.triaxials.conformal3.Conformal3Sphere-c\", \"pygeodesy.deprecated.classes.EasNorExact4Tuple-c\", \"pygeodesy.deprecated.classes.LatLonExact4Tuple-c\", \"pygeodesy.sphericalBase.CartesianSphericalBase-c\", \"pygeodesy.triaxials.bases._OrderedTriaxialBase-c\", \"pygeodesy.triaxials.conformal3.BetOmgGam5Tuple-c\", \"pygeodesy.deprecated.classes.RhumbOrder2Tuple-c\", \"pygeodesy.geodesicx.gxline._GeodesicLineExact-c\", \"pygeodesy.triaxials.triaxial3.BetOmgAlp5Tuple-c\", \"pygeodesy.triaxials.triaxial3.Cartesian5Tuple-c\", \"pygeodesy.triaxials.triaxial3.PhiLamZet5Tuple-c\", \"pygeodesy.triaxials.triaxial5.BetaOmega2Tuple-c\", \"pygeodesy.triaxials.triaxial5.BetaOmega3Tuple-c\", \"pygeodesy.triaxials.triaxial5.Conformal2Tuple-c\", \"pygeodesy.triaxials.triaxial5.ConformalSphere-c\", \"pygeodesy.cartesianBase.RadiusThetaPhi3Tuple-c\", \"pygeodesy.deprecated.classes.JacobiConformal-c\", \"pygeodesy.deprecated.classes.NearestOn4Tuple-c\", \"pygeodesy.deprecated.classes.Transform7Tuple-c\", \"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-c\", \"pygeodesy.hausdorff.HausdorffEquirectangular-c\", \"pygeodesy.albers.AlbersEqualAreaCylindrical-c\", \"pygeodesy.deprecated.bases.LatLonHeightBase-c\", \"pygeodesy.deprecated.classes.TriAngle4Tuple-c\", \"pygeodesy.ellipsoidalVincenty.VincentyError-c\", \"pygeodesy.sphericalBase.LatLonSphericalBase-c\", \"pygeodesy.heights.HeightIDWequirectangular-c\", \"pygeodesy.triaxials.conformal3.Conformal3B-c\", \"pygeodesy.deprecated.classes.ClipCS3Tuple-c\", \"pygeodesy.deprecated.classes.Jacobi2Tuple-c\", \"pygeodesy.deprecated.classes.UtmUps4Tuple-c\", \"pygeodesy.sphericalTrigonometry.Cartesian-c\", \"pygeodesy.triaxials.bases.Conformal5Tuple-c\", \"pygeodesy.triaxials.conformal3.Conformal3-c\", \"pygeodesy.azimuthal.EquidistantGeodSolve-c\", \"pygeodesy.deprecated.classes.Rhumb7Tuple-c\", \"pygeodesy.deprecated.consterns.Elliperim-c\", \"pygeodesy.ellipsoidalGeodSolve.Cartesian-c\", \"pygeodesy.frechet.FrechetEquirectangular-c\", \"pygeodesy.geod3solve._Geodesic3SolveBase-c\", \"pygeodesy.geodesicx.gx.GeodesicLineExact-c\", \"pygeodesy.namedTuples.Intersection3Tuple-c\", \"pygeodesy.namedTuples.UtmUpsLatLon5Tuple-c\", \"pygeodesy.triaxials.bases._Triaxial3Base-c\", \"pygeodesy.triaxials.triaxial3.Triaxial3B-c\", \"pygeodesy.webmercator.EasNorRadius3Tuple-c\", \"pygeodesy.ellipsoidalVincenty.Cartesian-c\", \"pygeodesy.geod3solve.GeodesicLine3Solve-c\", \"pygeodesy.hausdorff.HausdorffDistanceTo-c\", \"pygeodesy.namedTuples.Destination2Tuple-c\", \"pygeodesy.namedTuples.Destination3Tuple-c\", \"pygeodesy.namedTuples.LatLonDatum3Tuple-c\", \"pygeodesy.namedTuples.LatLonDatum5Tuple-c\", \"pygeodesy.namedTuples.Trilaterate5Tuple-c\", \"pygeodesy.nvectorBase.LatLonNvectorBase-c\", \"pygeodesy.solveBase._SolveGDictLineBase-c\", \"pygeodesy.triaxials.bases.TriaxialError-c\", \"pygeodesy.triaxials.triaxial3.Triaxial3-c\", \"pygeodesy.triaxials.triaxial5.Conformal-c\", \"pygeodesy.triaxials.triaxial5.Triaxial_-c\", \"pygeodesy.azimuthal._AzimuthalGeodesic-c\", \"pygeodesy.deprecated.classes.Ned3Tuple-c\", \"pygeodesy.elevations.GeoidHeight2Tuple-c\", \"pygeodesy.ellipsoidalNvector.Cartesian-c\", \"pygeodesy.geodesici.Intersectool5Tuple-c\", \"pygeodesy.geodesicx.gxarea.PolygonArea-c\", \"pygeodesy.geodsolve._GeodesicSolveBase-c\", \"pygeodesy.hausdorff.HausdorffCosineLaw-c\", \"pygeodesy.hausdorff.HausdorffEuclidean-c\", \"pygeodesy.hausdorff.HausdorffFlatLocal-c\", \"pygeodesy.hausdorff.HausdorffFlatPolar-c\", \"pygeodesy.hausdorff.HausdorffHaversine-c\", \"pygeodesy.hausdorff.HausdorffVincentys-c\", \"pygeodesy.heights.HeightSmoothBiSpline-c\", \"pygeodesy.namedTuples.LatLonPrec3Tuple-c\", \"pygeodesy.namedTuples.LatLonPrec5Tuple-c\", \"pygeodesy.rhumb.solve.RhumbSolve7Tuple-c\", \"pygeodesy.sphericalTrigonometry.LatLon-c\", \"pygeodesy.triaxials.triaxial5.Triaxial-c\", \"pygeodesy.webmercator.WebMercatorError-c\", \"pygeodesy.albers.AlbersEqualAreaNorth-c\", \"pygeodesy.albers.AlbersEqualAreaSouth-c\", \"pygeodesy.azimuthal.EquidistantKarney-c\", \"pygeodesy.azimuthal.GnomonicGeodSolve-c\", \"pygeodesy.cartesianBase.CartesianBase-c\", \"pygeodesy.ellipsoidalGeodSolve.LatLon-c\", \"pygeodesy.ellipsoidalKarney.Cartesian-c\", \"pygeodesy.etm.ExactTransverseMercator-c\", \"pygeodesy.geod3solve.Geod3Solve8Tuple-c\", \"pygeodesy.geodesici.Intersector5Tuple-c\", \"pygeodesy.geodsolve.GeodesicLineSolve-c\", \"pygeodesy.heights.HeightIDWdistanceTo-c\", \"pygeodesy.namedTuples.NearestOn2Tuple-c\", \"pygeodesy.namedTuples.NearestOn3Tuple-c\", \"pygeodesy.namedTuples.NearestOn6Tuple-c\", \"pygeodesy.namedTuples.NearestOn8Tuple-c\", \"pygeodesy.rhumb.solve._RhumbSolveBase-c\", \"pygeodesy.auxilats.auxAngle.AuxAngle-c\", \"pygeodesy.auxilats.auxAngle.AuxTheta-c\", \"pygeodesy.azimuthal.EquidistantExact-c\", \"pygeodesy.azimuthal.LambertEqualArea-c\", \"pygeodesy.azimuthal._EquidistantBase-c\", \"pygeodesy.deprecated.nvector.Nvector-c\", \"pygeodesy.elevations.Elevation2Tuple-c\", \"pygeodesy.ellipsoidalExact.Cartesian-c\", \"pygeodesy.ellipsoidalNvector.Nvector-c\", \"pygeodesy.ellipsoidalVincenty.LatLon-c\", \"pygeodesy.ellipsoids.Curvature2Tuple-c\", \"pygeodesy.geodesicx.gx.GeodesicExact-c\", \"pygeodesy.geodsolve.GeodSolve12Tuple-c\", \"pygeodesy.hausdorff.HausdorffDegrees-c\", \"pygeodesy.hausdorff.HausdorffRadians-c\", \"pygeodesy.heights.HeightIDWcosineLaw-c\", \"pygeodesy.heights.HeightIDWeuclidean-c\", \"pygeodesy.heights.HeightIDWflatLocal-c\", \"pygeodesy.heights.HeightIDWflatPolar-c\", \"pygeodesy.heights.HeightIDWhaversine-c\", \"pygeodesy.heights.HeightIDWvincentys-c\", \"pygeodesy.namedTuples.Distance2Tuple-c\", \"pygeodesy.namedTuples.Distance3Tuple-c\", \"pygeodesy.namedTuples.Distance4Tuple-c\", \"pygeodesy.namedTuples.Triangle7Tuple-c\", \"pygeodesy.namedTuples.Triangle8Tuple-c\", \"pygeodesy.rhumb.solve.RhumbLineSolve-c\", \"pygeodesy.sphericalNvector.Cartesian-c\", \"pygeodesy.auxilats.auxAngle.AuxBeta-c\", \"pygeodesy.azimuthal.Azimuthal7Tuple-c\", \"pygeodesy.ellipsoidalNvector.LatLon-c\", \"pygeodesy.frechet.FrechetDistanceTo-c\", \"pygeodesy.geod3solve.Geodesic3Error-c\", \"pygeodesy.geod3solve.Geodesic3Solve-c\", \"pygeodesy.geodesici.Intersect7Tuple-c\", \"pygeodesy.geohash.Resolutions2Tuple-c\", \"pygeodesy.hausdorff.Hausdorff6Tuple-c\", \"pygeodesy.hausdorff.HausdorffHubeny-c\", \"pygeodesy.hausdorff.HausdorffKarney-c\", \"pygeodesy.hausdorff.HausdorffThomas-c\", \"pygeodesy.heights.HeightLSQBiSpline-c\", \"pygeodesy.lazily.LazyAttributeError-c\", \"pygeodesy.ltpTuples.Footprint5Tuple-c\", \"pygeodesy.namedTuples.Bearing2Tuple-c\", \"pygeodesy.namedTuples.Ellipse5Tuple-c\", \"pygeodesy.namedTuples.Forward4Tuple-c\", \"pygeodesy.namedTuples.Reverse4Tuple-c\", \"pygeodesy.props.DeprecationWarnings-c\", \"pygeodesy.resections.ResectionError-c\", \"pygeodesy.resections.Tienstra7Tuple-c\", \"pygeodesy.resections.TriAngle5Tuple-c\", \"pygeodesy.rhumb.bases.RhumbLineBase-c\", \"pygeodesy.solveBase._SolveGDictBase-c\", \"pygeodesy.vector3dBase.Vector3dBase-c\", \"pygeodesy.auxilats.auxAngle.AuxChi-c\", \"pygeodesy.auxilats.auxAngle.AuxPhi-c\", \"pygeodesy.auxilats.auxDLat.AuxDLat-c\", \"pygeodesy.azimuthal.AzimuthalError-c\", \"pygeodesy.azimuthal.GnomonicKarney-c\", \"pygeodesy.azimuthal._AzimuthalBase-c\", \"pygeodesy.css.EasNorAziRkEqu6Tuple-c\", \"pygeodesy.deprecated.classes.XDist-c\", \"pygeodesy.ellipsoidalKarney.LatLon-c\", \"pygeodesy.errors.IntersectionError-c\", \"pygeodesy.frechet.FrechetCosineLaw-c\", \"pygeodesy.frechet.FrechetEuclidean-c\", \"pygeodesy.frechet.FrechetFlatLocal-c\", \"pygeodesy.frechet.FrechetFlatPolar-c\", \"pygeodesy.frechet.FrechetHaversine-c\", \"pygeodesy.frechet.FrechetVincentys-c\", \"pygeodesy.geodesici._IntersectBase-c\", \"pygeodesy.geoids.GeoidHeight5Tuple-c\", \"pygeodesy.hausdorff.HausdorffError-c\", \"pygeodesy.hausdorff.HausdorffExact-c\", \"pygeodesy.ltpTuples.Attitude4Tuple-c\", \"pygeodesy.namedTuples.Bounds2Tuple-c\", \"pygeodesy.namedTuples.Bounds4Tuple-c\", \"pygeodesy.namedTuples.Circle4Tuple-c\", \"pygeodesy.namedTuples.EasNor2Tuple-c\", \"pygeodesy.namedTuples.EasNor3Tuple-c\", \"pygeodesy.namedTuples.LatLon2Tuple-c\", \"pygeodesy.namedTuples.LatLon3Tuple-c\", \"pygeodesy.namedTuples.LatLon4Tuple-c\", \"pygeodesy.namedTuples.PhiLam2Tuple-c\", \"pygeodesy.namedTuples.PhiLam3Tuple-c\", \"pygeodesy.namedTuples.PhiLam4Tuple-c\", \"pygeodesy.namedTuples.Points2Tuple-c\", \"pygeodesy.namedTuples.UtmUps2Tuple-c\", \"pygeodesy.namedTuples.UtmUps5Tuple-c\", \"pygeodesy.namedTuples.UtmUps8Tuple-c\", \"pygeodesy.namedTuples.Vector2Tuple-c\", \"pygeodesy.namedTuples.Vector3Tuple-c\", \"pygeodesy.namedTuples.Vector4Tuple-c\", \"pygeodesy.resections.Collins5Tuple-c\", \"pygeodesy.resections.TriSide2Tuple-c\", \"pygeodesy.resections.TriSide4Tuple-c\", \"pygeodesy.solveBase._SolveCapsBase-c\", \"pygeodesy.sphericalNvector.Nvector-c\", \"pygeodesy.albers.AlbersEqualArea2-c\", \"pygeodesy.albers.AlbersEqualArea4-c\", \"pygeodesy.auxilats.auxAngle.AuxMu-c\", \"pygeodesy.auxilats.auxAngle.AuxXi-c\", \"pygeodesy.azimuthal.GnomonicExact-c\", \"pygeodesy.azimuthal.Stereographic-c\", \"pygeodesy.azimuthal._GnomonicBase-c\", \"pygeodesy.booleans._CompositeBase-c\", \"pygeodesy.deprecated.classes.Lam_-c\", \"pygeodesy.deprecated.classes.Phi_-c\", \"pygeodesy.ellipsoidalExact.LatLon-c\", \"pygeodesy.elliptic.Elliptic3Tuple-c\", \"pygeodesy.geodsolve.GeodesicSolve-c\", \"pygeodesy.heights.HeightIDWhubeny-c\", \"pygeodesy.heights.HeightIDWkarney-c\", \"pygeodesy.heights.HeightIDWthomas-c\", \"pygeodesy.ktm.KTransverseMercator-c\", \"pygeodesy.namedTuples.Point3Tuple-c\", \"pygeodesy.nvectorBase.NvectorBase-c\", \"pygeodesy.resections.Survey3Tuple-c\", \"pygeodesy.rhumb.aux_.RhumbLineAux-c\", \"pygeodesy.sphericalNvector.LatLon-c\", \"pygeodesy.albers.AlbersEqualArea-c\", \"pygeodesy.auxilats.auxDST.AuxDST-c\", \"pygeodesy.auxilats.auxLat.AuxLat-c\", \"pygeodesy.azimuthal.Orthographic-c\", \"pygeodesy.booleans._CompositeFHP-c\", \"pygeodesy.ellipsoidalNvector.Ned-c\", \"pygeodesy.elliptic.EllipticError-c\", \"pygeodesy.frechet.FrechetDegrees-c\", \"pygeodesy.frechet.FrechetRadians-c\", \"pygeodesy.geodesici.Intersectool-c\", \"pygeodesy.geodesici.Middle5Tuple-c\", \"pygeodesy.geodesicw.GeodesicLine-c\", \"pygeodesy.geohash.Neighbors8Dict-c\", \"pygeodesy.heights.HeightIDWexact-c\", \"pygeodesy.lazily.LazyImportError-c\", \"pygeodesy.ltpTuples.ChLVEN2Tuple-c\", \"pygeodesy.ltpTuples.ChLVYX2Tuple-c\", \"pygeodesy.ltpTuples.ChLVyx2Tuple-c\", \"pygeodesy.rhumb.solve.RhumbSolve-c\", \"pygeodesy.vector2d.Triaxum5Tuple-c\", \"pygeodesy.deprecated.rhumbsolve-m\", \"pygeodesy.sphericalTrigonometry-m\", \"pygeodesy.azimuthal.Equidistant-c\", \"pygeodesy.booleans._BooleanBase-c\", \"pygeodesy.booleans._CompositeGH-c\", \"pygeodesy.css.EasNorAziRk4Tuple-c\", \"pygeodesy.css.LatLonAziRk4Tuple-c\", \"pygeodesy.ecefLocals._EcefLocal-c\", \"pygeodesy.ellipses.EllipseError-c\", \"pygeodesy.ellipsoids.Ellipsoid2-c\", \"pygeodesy.frechet.Frechet6Tuple-c\", \"pygeodesy.frechet.FrechetHubeny-c\", \"pygeodesy.frechet.FrechetKarney-c\", \"pygeodesy.frechet.FrechetThomas-c\", \"pygeodesy.geodesici.Intersector-c\", \"pygeodesy.iters.LatLon2PsxyIter-c\", \"pygeodesy.karney.Inverse10Tuple-c\", \"pygeodesy.latlonBase.LatLonBase-c\", \"pygeodesy.ltpTuples.Local9Tuple-c\", \"pygeodesy.rhumb.bases.RhumbBase-c\", \"pygeodesy.utmupsBase.UtmUpsBase-c\", \"pygeodesy.vector2d.Circin6Tuple-c\", \"pygeodesy.vector2d.Circum3Tuple-c\", \"pygeodesy.vector2d.Circum4Tuple-c\", \"pygeodesy.vector2d.Radii11Tuple-c\", \"pygeodesy.deprecated.consterns-m\", \"pygeodesy.deprecated.functions-m\", \"pygeodesy.deprecated.rhumbBase-m\", \"pygeodesy.ellipsoidalGeodSolve-m\", \"pygeodesy.triaxials.conformal3-m\", \"pygeodesy.booleans._LatLonBool-c\", \"pygeodesy.ellipsoids.Ellipsoid-c\", \"pygeodesy.ellipsoids.a_f2Tuple-c\", \"pygeodesy.errors.GeodesicError-c\", \"pygeodesy.errors.TriangleError-c\", \"pygeodesy.frechet.FrechetError-c\", \"pygeodesy.frechet.FrechetExact-c\", \"pygeodesy.geohash.GeohashError-c\", \"pygeodesy.heights.HeightLinear-c\", \"pygeodesy.heights._HeightNamed-c\", \"pygeodesy.ltpTuples.ChLV9Tuple-c\", \"pygeodesy.named._NamedEnumItem-c\", \"pygeodesy.points._Array2LatLon-c\", \"pygeodesy.props.property_ROnce-c\", \"pygeodesy.props.property_ROver-c\", \"pygeodesy.solveBase._SolveBase-c\", \"pygeodesy.unitsBase._NamedUnit-c\", \"pygeodesy.vector2d.Meeus2Tuple-c\", \"pygeodesy.vector2d.Soddy4Tuple-c\", \"pygeodesy.deprecated.rhumbaux-m\", \"pygeodesy.ellipsoidalVincenty-m\", \"pygeodesy.triaxials.triaxial3-m\", \"pygeodesy.triaxials.triaxial5-m\", \"pygeodesy.albers.Albers7Tuple-c\", \"pygeodesy.booleans.BooleanFHP-c\", \"pygeodesy.clipy.ClipFHP4Tuple-c\", \"pygeodesy.errors.SciPyWarning-c\", \"pygeodesy.formy.Radical2Tuple-c\", \"pygeodesy.fstats._FstatsNamed-c\", \"pygeodesy.fsums.ResidualError-c\", \"pygeodesy.geohash.Sizes3Tuple-c\", \"pygeodesy.hausdorff.Hausdorff-c\", \"pygeodesy.heights.HeightCubic-c\", \"pygeodesy.heights.HeightError-c\", \"pygeodesy.heights._HeightBase-c\", \"pygeodesy.karney.Direct9Tuple-c\", \"pygeodesy.ltpTuples.Aer4Tuple-c\", \"pygeodesy.ltpTuples.Enu4Tuple-c\", \"pygeodesy.ltpTuples.Ned4Tuple-c\", \"pygeodesy.ltpTuples.Uvw3Tuple-c\", \"pygeodesy.ltpTuples.Xyz4Tuple-c\", \"pygeodesy.points.Numpy2LatLon-c\", \"pygeodesy.points.Tuple2LatLon-c\", \"pygeodesy.rhumb.aux_.RhumbAux-c\", \"pygeodesy.rhumb.ekx.RhumbLine-c\", \"pygeodesy.triaxials.bases.LLK-c\", \"pygeodesy.deprecated.classes-m\", \"pygeodesy.deprecated.nvector-m\", \"pygeodesy.ellipsoidalNvector-m\", \"pygeodesy.geodesicx.__main__-m\", \"pygeodesy.albers.AlbersError-c\", \"pygeodesy.albers._AlbersBase-c\", \"pygeodesy.azimuthal.Gnomonic-c\", \"pygeodesy.booleans.BooleanGH-c\", \"pygeodesy.booleans.LatLonFHP-c\", \"pygeodesy.clipy.ClipCS4Tuple-c\", \"pygeodesy.clipy.ClipGH4Tuple-c\", \"pygeodesy.clipy.ClipLB6Tuple-c\", \"pygeodesy.clipy.ClipSH3Tuple-c\", \"pygeodesy.css.CassiniSoldner-c\", \"pygeodesy.ecef.EcefFarrell21-c\", \"pygeodesy.ecef.EcefFarrell22-c\", \"pygeodesy.errors.PointsError-c\", \"pygeodesy.errors.VectorError-c\", \"pygeodesy.fstats._FstatsBase-c\", \"pygeodesy.fsums.DivMod2Tuple-c\", \"pygeodesy.geodesicw.Geodesic-c\", \"pygeodesy.geoids.GeoidG2012B-c\", \"pygeodesy.geoids.GeoidKarney-c\", \"pygeodesy.heights._HeightIDW-c\", \"pygeodesy.karney.Rhumb8Tuple-c\", \"pygeodesy.ltp.LocalCartesian-c\", \"pygeodesy.ltpTuples.XyzLocal-c\", \"pygeodesy.ltpTuples._AbcBase-c\", \"pygeodesy.points.LatLon2psxy-c\", \"pygeodesy.points.Shape2Tuple-c\", \"pygeodesy.points._Basequence-c\", \"pygeodesy.trf.TRFXform7Tuple-c\", \"pygeodesy.trf.TransformXform-c\", \"pygeodesy.utmups.UTMUPSError-c\", \"pygeodesy.auxilats.__main__-m\", \"pygeodesy.auxilats.auxAngle-m\", \"pygeodesy.deprecated.rhumbx-m\", \"pygeodesy.ellipsoidalBaseDI-m\", \"pygeodesy.ellipsoidalKarney-m\", \"pygeodesy.geodesicx.gxbases-m\", \"pygeodesy.angles.Lambertian-c\", \"pygeodesy.booleans.LatLonGH-c\", \"pygeodesy.elliptic.Elliptic-c\", \"pygeodesy.errors.CrossError-c\", \"pygeodesy.errors.LimitError-c\", \"pygeodesy.errors.NumPyError-c\", \"pygeodesy.errors.ParseError-c\", \"pygeodesy.errors.RangeError-c\", \"pygeodesy.errors.RhumbError-c\", \"pygeodesy.errors.SciPyError-c\", \"pygeodesy.fmath.Fpolynomial-c\", \"pygeodesy.geohash.Geohashed-c\", \"pygeodesy.geoids.GeoidEGM96-c\", \"pygeodesy.geoids.GeoidError-c\", \"pygeodesy.geoids._GeoidBase-c\", \"pygeodesy.karney.Area3Tuple-c\", \"pygeodesy.ltp.AttitudeError-c\", \"pygeodesy.named._NamedTuple-c\", \"pygeodesy.props.Property_RO-c\", \"pygeodesy.props.property_RO-c\", \"pygeodesy.vector3d.Vector3d-c\", \"pygeodesy.auxilats.auxDLat-m\", \"pygeodesy.deprecated.bases-m\", \"pygeodesy.deprecated.datum-m\", \"pygeodesy.ellipsoidalExact-m\", \"pygeodesy.geodesicx._C4_24-m\", \"pygeodesy.geodesicx._C4_27-m\", \"pygeodesy.geodesicx._C4_30-m\", \"pygeodesy.geodesicx.gxarea-m\", \"pygeodesy.geodesicx.gxline-m\", \"pygeodesy.sphericalNvector-m\", \"pygeodesy.datums.Transform-c\", \"pygeodesy.ellipses.Ellipse-c\", \"pygeodesy.errors.ClipError-c\", \"pygeodesy.errors.MGRSError-c\", \"pygeodesy.errors.UnitError-c\", \"pygeodesy.fsums.Fsum2Tuple-c\", \"pygeodesy.iters.PointsIter-c\", \"pygeodesy.karney._CapsBase-c\", \"pygeodesy.named._NamedBase-c\", \"pygeodesy.named._NamedEnum-c\", \"pygeodesy.units.Precision_-c\", \"pygeodesy.unitsBase.Radius-c\", \"pygeodesy.auxilats._CX_Rs-m\", \"pygeodesy.auxilats.auxDST-m\", \"pygeodesy.auxilats.auxLat-m\", \"pygeodesy.auxilats.auxily-m\", \"pygeodesy.ellipsoidalBase-m\", \"pygeodesy.triaxials.bases-m\", \"pygeodesy.ecef.Ecef9Tuple-c\", \"pygeodesy.ecef.EcefKarney-c\", \"pygeodesy.ecef.EcefMatrix-c\", \"pygeodesy.ecef.EcefSudano-c\", \"pygeodesy.ecef.EcefVeness-c\", \"pygeodesy.errors.AuxError-c\", \"pygeodesy.errors.LenError-c\", \"pygeodesy.errors.TRFError-c\", \"pygeodesy.frechet.Frechet-c\", \"pygeodesy.fstats.Fwelford-c\", \"pygeodesy.geodesici.XDict-c\", \"pygeodesy.geohash.Geohash-c\", \"pygeodesy.geoids.GeoidPGM-c\", \"pygeodesy.geoids.PGMError-c\", \"pygeodesy.iters._BaseIter-c\", \"pygeodesy.mgrs.Mgrs4Tuple-c\", \"pygeodesy.mgrs.Mgrs6Tuple-c\", \"pygeodesy.rhumb.ekx.Rhumb-c\", \"pygeodesy.units.Distance_-c\", \"pygeodesy.unitsBase.Float-c\", \"pygeodesy.auxilats._CX_4-m\", \"pygeodesy.auxilats._CX_6-m\", \"pygeodesy.auxilats._CX_8-m\", \"pygeodesy.booleans._Clip-c\", \"pygeodesy.ecef.EcefError-c\", \"pygeodesy.ecef._EcefBase-c\", \"pygeodesy.epsg.EPSGError-c\", \"pygeodesy.fstats.Flinear-c\", \"pygeodesy.gars.GARSError-c\", \"pygeodesy.ltp.LocalError-c\", \"pygeodesy.osgr.OSGRError-c\", \"pygeodesy.points.LatLon_-c\", \"pygeodesy.props.Property-c\", \"pygeodesy.units.Bearing_-c\", \"pygeodesy.units.Degrees2-c\", \"pygeodesy.units.Degrees_-c\", \"pygeodesy.units.Distance-c\", \"pygeodesy.units.Northing-c\", \"pygeodesy.units.Radians2-c\", \"pygeodesy.units.Radians_-c\", \"pygeodesy.webmercator.Wm-c\", \"pygeodesy.wgrs.WGRSError-c\", \"pygeodesy.cartesianBase-m\", \"pygeodesy.sphericalBase-m\", \"pygeodesy.fmath.Fhorner-c\", \"pygeodesy.fmath.Fpowers-c\", \"pygeodesy.ltpTuples.Aer-c\", \"pygeodesy.ltpTuples.Enu-c\", \"pygeodesy.ltpTuples.Los-c\", \"pygeodesy.ltpTuples.Ned-c\", \"pygeodesy.ltpTuples.Uvw-c\", \"pygeodesy.units.Azimuth-c\", \"pygeodesy.units.Bearing-c\", \"pygeodesy.units.Degrees-c\", \"pygeodesy.units.Easting-c\", \"pygeodesy.units.HeightX-c\", \"pygeodesy.units.Height_-c\", \"pygeodesy.units.Number_-c\", \"pygeodesy.units.Radians-c\", \"pygeodesy.units.Radius_-c\", \"pygeodesy.units.Scalar_-c\", \"pygeodesy.unitsBase.Int-c\", \"pygeodesy.unitsBase.Str-c\", \"pygeodesy.geodesicx.gx-m\", \"pygeodesy.vector3dBase-m\", \"pygeodesy.css.CSSError-c\", \"pygeodesy.datums.Datum-c\", \"pygeodesy.ecef.EcefUPC-c\", \"pygeodesy.ecef.EcefYou-c\", \"pygeodesy.etm.ETMError-c\", \"pygeodesy.fmath.Fhypot-c\", \"pygeodesy.fstats.Fcook-c\", \"pygeodesy.interns.Str_-c\", \"pygeodesy.karney.GDict-c\", \"pygeodesy.ktm.KTMError-c\", \"pygeodesy.lcc.LCCError-c\", \"pygeodesy.ltp.Attitude-c\", \"pygeodesy.named._Named-c\", \"pygeodesy.trf.RefFrame-c\", \"pygeodesy.trf.TRFXform-c\", \"pygeodesy.units.Float_-c\", \"pygeodesy.units.Height-c\", \"pygeodesy.units.Meter2-c\", \"pygeodesy.units.Meter3-c\", \"pygeodesy.units.Meter_-c\", \"pygeodesy.units.Scalar-c\", \"pygeodesy.ups.UPSError-c\", \"pygeodesy.utm.UTMError-c\", \"pygeodesy.namedTuples-m\", \"pygeodesy.nvectorBase-m\", \"pygeodesy.rhumb.bases-m\", \"pygeodesy.rhumb.solve-m\", \"pygeodesy.webmercator-m\", \"pygeodesy.fmath.Fcbrt-c\", \"pygeodesy.fmath.Fdot_-c\", \"pygeodesy.fmath.Froot-c\", \"pygeodesy.fmath.Fsqrt-c\", \"pygeodesy.karney.Caps-c\", \"pygeodesy.ltp.Frustum-c\", \"pygeodesy.named.ADict-c\", \"pygeodesy.units.Epoch-c\", \"pygeodesy.units.Meter-c\", \"pygeodesy.wgrs.Georef-c\", \"pygeodesy.deprecated-m\", \"pygeodesy.ecefLocals-m\", \"pygeodesy.elevations-m\", \"pygeodesy.ellipsoids-m\", \"pygeodesy.geod3solve-m\", \"pygeodesy.latlonBase-m\", \"pygeodesy.resections-m\", \"pygeodesy.rhumb.aux_-m\", \"pygeodesy.utmupsBase-m\", \"pygeodesy.angles.Ang-c\", \"pygeodesy.fmath.Fdot-c\", \"pygeodesy.fsums.Fsum-c\", \"pygeodesy.gars.Garef-c\", \"pygeodesy.units.Band-c\", \"pygeodesy.units.Bool-c\", \"pygeodesy.units.Feet-c\", \"pygeodesy.units.Int_-c\", \"pygeodesy.units.Lamd-c\", \"pygeodesy.units.Lat_-c\", \"pygeodesy.units.Lon_-c\", \"pygeodesy.units.Phid-c\", \"pygeodesy.units.Zone-c\", \"pygeodesy.azimuthal-m\", \"pygeodesy.constants-m\", \"pygeodesy.geodesici-m\", \"pygeodesy.geodesicw-m\", \"pygeodesy.geodesicx-m\", \"pygeodesy.geodsolve-m\", \"pygeodesy.hausdorff-m\", \"pygeodesy.internals-m\", \"pygeodesy.ltpTuples-m\", \"pygeodesy.rhumb.ekx-m\", \"pygeodesy.solveBase-m\", \"pygeodesy.triaxials-m\", \"pygeodesy.unitsBase-m\", \"pygeodesy.epsg.Epsg-c\", \"pygeodesy.lcc.Conic-c\", \"pygeodesy.ltp.ChLVa-c\", \"pygeodesy.ltp.ChLVe-c\", \"pygeodesy.mgrs.Mgrs-c\", \"pygeodesy.osgr.Osgr-c\", \"pygeodesy.units.FIx-c\", \"pygeodesy.units.Lam-c\", \"pygeodesy.units.Lat-c\", \"pygeodesy.units.Lon-c\", \"pygeodesy.units.Phi-c\", \"pygeodesy.__main__-m\", \"pygeodesy.auxilats-m\", \"pygeodesy.booleans-m\", \"pygeodesy.ellipses-m\", \"pygeodesy.elliptic-m\", \"pygeodesy.simplify-m\", \"pygeodesy.vector2d-m\", \"pygeodesy.vector3d-m\", \"pygeodesy.ltp.ChLV-c\", \"pygeodesy.frechet-m\", \"pygeodesy.geohash-m\", \"pygeodesy.heights-m\", \"pygeodesy.interns-m\", \"pygeodesy.streprs-m\", \"pygeodesy.css.Css-c\", \"pygeodesy.etm.Etm-c\", \"pygeodesy.lcc.Lcc-c\", \"pygeodesy.ltp.Ltp-c\", \"pygeodesy.ups.Ups-c\", \"pygeodesy.utm.Utm-c\", \"pygeodesy.albers-m\", \"pygeodesy.angles-m\", \"pygeodesy.basics-m\", \"pygeodesy.datums-m\", \"pygeodesy.errors-m\", \"pygeodesy.fstats-m\", \"pygeodesy.geoids-m\", \"pygeodesy.karney-m\", \"pygeodesy.lazily-m\", \"pygeodesy.points-m\", \"pygeodesy.utmups-m\", \"pygeodesy.clipy-m\", \"pygeodesy.fmath-m\", \"pygeodesy.formy-m\", \"pygeodesy.fsums-m\", \"pygeodesy.iters-m\", \"pygeodesy.named-m\", \"pygeodesy.props-m\", \"pygeodesy.rhumb-m\", \"pygeodesy.units-m\", \"pygeodesy.utily-m\", \"pygeodesy.ecef-m\", \"pygeodesy.epsg-m\", \"pygeodesy.gars-m\", \"pygeodesy.mgrs-m\", \"pygeodesy.osgr-m\", \"pygeodesy.wgrs-m\", \"pygeodesy.css-m\", \"pygeodesy.dms-m\", \"pygeodesy.etm-m\", \"pygeodesy.ktm-m\", \"pygeodesy.lcc-m\", \"pygeodesy.ltp-m\", \"pygeodesy.trf-m\", \"pygeodesy.ups-m\", \"pygeodesy.utm-m\", \"abc.ABCMeta-c\", \"pygeodesy-m\"];\nvar dottedName = get_anchor();\nif (dottedName) {\n    var target = redirect_url(dottedName);\n    if (target) window.location.replace(target);\n}\n// -->\n</script>\n\n<h3>Epydoc Auto-redirect page</h3>\n\n<p>When javascript is enabled, this page will redirect URLs of\nthe form <tt>redirect.html#<i>dotted.name</i></tt> to the\ndocumentation for the object with the given fully-qualified\ndotted name.</p>\n<p><a id=\"message\"> &nbsp; </a></p>\n\n<script type=\"text/javascript\">\n<!--\nif (dottedName) {\n    var msg = document.getElementById(\"message\");\n    msg.innerHTML = \"No documentation found for <tt>\"+\n                    dottedName+\"</tt>\";\n}\n// -->\n</script>\n\n</body>\n</html>\n"
  },
  {
    "path": "docs/term-index.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>Term Definition Index</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th bgcolor=\"#70b0f0\" class=\"navbar-select\"\n          >&nbsp;&nbsp;&nbsp;Indices&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n  <tr valign=\"top\">\n    <td width=\"100%\">&nbsp;</td>\n    <td>\n      <table cellpadding=\"0\" cellspacing=\"0\">\n        <!-- hide/show private -->\n        <tr><td align=\"right\"><span class=\"options\"\n            >[<a href=\"frames.html\" target=\"_top\">frames</a\n            >]&nbsp;|&nbsp;<a href=\"term-index.html\"\n            target=\"_top\">no&nbsp;frames</a>]</span></td></tr>\n      </table>\n    </td>\n  </tr>\n</table>\n<center><b>[\n <a href=\"identifier-index.html\">Identifiers</a>\n| <a href=\"term-index.html\">Term Definitions</a>\n]</b></center><br />\n<table border=\"0\" width=\"100%\">\n<tr valign=\"bottom\"><td>\n<h1 class=\"epydoc\">Term Definition Index</h1>\n</td><td>\n[\n  A\n  B\n  C\n  D\n <a href=\"#E\">E</a>\n  F\n  G\n  H\n  I\n  J\n  K\n  L\n  M\n  N\n  O\n  P\n  Q\n  R\n  S\n  T\n  U\n  V\n  W\n  X\n  Y\n  Z\n  _\n]\n</td></table>\n<table border=\"0\" width=\"100%\">\n<tr valign=\"top\"><td valign=\"top\" width=\"1%\"><h2 class=\"epydoc\"><a name=\"E\">E</a></h2></td>\n<td valign=\"top\">\n<table class=\"link-index\" width=\"100%\" border=\"1\">\n<tr>\n<td width=\"33%\" class=\"link-index\"><a href=\"pygeodesy.etm.ExactTransverseMercator-class.html#index-extendp\">extendp</a><br />\n<span class=\"index-where\">(in&nbsp;<a href=\"pygeodesy.etm.ExactTransverseMercator-class.html#__init__\">__init__</a>)</span></td>\n<td width=\"33%\" class=\"link-index\">&nbsp;</td>\n<td width=\"33%\" class=\"link-index\">&nbsp;</td>\n</tr>\n<tr><td class=\"link-index\">&nbsp;</td><td class=\"link-index\">&nbsp;</td><td class=\"link-index\">&nbsp;</td></tr>\n</table>\n</td></tr>\n</table>\n<br /><br /><!-- ==================== NAVIGATION BAR ==================== -->\n<table class=\"navbar\" border=\"0\" width=\"100%\" cellpadding=\"0\"\n       bgcolor=\"#a0c0ff\" cellspacing=\"0\">\n  <tr valign=\"middle\">\n  <!-- Home link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"pygeodesy-module.html\">Home</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Tree link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"module-tree.html\">Trees</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Index link -->\n      <th bgcolor=\"#70b0f0\" class=\"navbar-select\"\n          >&nbsp;&nbsp;&nbsp;Indices&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Help link -->\n      <th>&nbsp;&nbsp;&nbsp;<a\n        href=\"help.html\">Help</a>&nbsp;&nbsp;&nbsp;</th>\n\n  <!-- Project homepage -->\n      <th class=\"navbar\" align=\"right\" width=\"100%\">\n        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n          <tr><th class=\"navbar\" align=\"center\"\n            ><a class=\"navbar\" target=\"_top\" href=\"https://GitHub.com/mrJean1/PyGeodesy\">pygeodesy</a></th>\n          </tr></table></th>\n  </tr>\n</table>\n<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%%\">\n  <tr>\n    <td align=\"left\" class=\"footer\">\n    Generated by Epydoc 3.0.1 on Wed Mar 25 13:27:17 2026\n    </td>\n    <td align=\"right\" class=\"footer\">\n      <a target=\"mainFrame\" href=\"http://epydoc.sourceforge.net\"\n        >http://epydoc.sourceforge.net</a>\n    </td>\n  </tr>\n</table>\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/toc-everything.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>Everything</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<h1 class=\"toc\">Everything</h1>\n<hr />\n  <h2 class=\"toc\">All Classes</h2>\n    <a target=\"mainFrame\" href=\"abc.ABCMeta-class.html\"\n     >abc.ABCMeta</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.albers.Albers7Tuple-class.html\"\n     >pygeodesy.albers.Albers7Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.albers.AlbersEqualArea-class.html\"\n     >pygeodesy.albers.AlbersEqualArea</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.albers.AlbersEqualArea2-class.html\"\n     >pygeodesy.albers.AlbersEqualArea2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.albers.AlbersEqualArea4-class.html\"\n     >pygeodesy.albers.AlbersEqualArea4</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.albers.AlbersEqualAreaCylindrical-class.html\"\n     >pygeodesy.albers.AlbersEqualAreaCylindrical</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.albers.AlbersEqualAreaNorth-class.html\"\n     >pygeodesy.albers.AlbersEqualAreaNorth</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.albers.AlbersEqualAreaSouth-class.html\"\n     >pygeodesy.albers.AlbersEqualAreaSouth</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.albers.AlbersError-class.html\"\n     >pygeodesy.albers.AlbersError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.albers._AlbersBase-class.html\"\n     >pygeodesy.albers._AlbersBase</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.angles.Ang-class.html\"\n     >pygeodesy.angles.Ang</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.angles.Lambertian-class.html\"\n     >pygeodesy.angles.Lambertian</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.azimuthal.Azimuthal7Tuple-class.html\"\n     >pygeodesy.azimuthal.Azimuthal7Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.azimuthal.AzimuthalError-class.html\"\n     >pygeodesy.azimuthal.AzimuthalError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.azimuthal.Equidistant-class.html\"\n     >pygeodesy.azimuthal.Equidistant</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.azimuthal.EquidistantExact-class.html\"\n     >pygeodesy.azimuthal.EquidistantExact</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.azimuthal.EquidistantGeodSolve-class.html\"\n     >pygeodesy.azimuthal.EquidistantGeodSolve</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.azimuthal.EquidistantKarney-class.html\"\n     >pygeodesy.azimuthal.EquidistantKarney</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.azimuthal.Gnomonic-class.html\"\n     >pygeodesy.azimuthal.Gnomonic</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.azimuthal.GnomonicExact-class.html\"\n     >pygeodesy.azimuthal.GnomonicExact</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.azimuthal.GnomonicGeodSolve-class.html\"\n     >pygeodesy.azimuthal.GnomonicGeodSolve</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.azimuthal.GnomonicKarney-class.html\"\n     >pygeodesy.azimuthal.GnomonicKarney</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.azimuthal.LambertEqualArea-class.html\"\n     >pygeodesy.azimuthal.LambertEqualArea</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.azimuthal.Orthographic-class.html\"\n     >pygeodesy.azimuthal.Orthographic</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.azimuthal.Stereographic-class.html\"\n     >pygeodesy.azimuthal.Stereographic</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.azimuthal._AzimuthalBase-class.html\"\n     >pygeodesy.azimuthal._AzimuthalBase</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.azimuthal._AzimuthalGeodesic-class.html\"\n     >pygeodesy.azimuthal._AzimuthalGeodesic</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.azimuthal._EquidistantBase-class.html\"\n     >pygeodesy.azimuthal._EquidistantBase</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.azimuthal._GnomonicBase-class.html\"\n     >pygeodesy.azimuthal._GnomonicBase</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.booleans.BooleanFHP-class.html\"\n     >pygeodesy.booleans.BooleanFHP</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.booleans.BooleanGH-class.html\"\n     >pygeodesy.booleans.BooleanGH</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.booleans.LatLonFHP-class.html\"\n     >pygeodesy.booleans.LatLonFHP</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.booleans.LatLonGH-class.html\"\n     >pygeodesy.booleans.LatLonGH</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.booleans._BooleanBase-class.html\"\n     >pygeodesy.booleans._BooleanBase</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.booleans._Clip-class.html\"\n     >pygeodesy.booleans._Clip</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.booleans._CompositeBase-class.html\"\n     >pygeodesy.booleans._CompositeBase</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.booleans._CompositeFHP-class.html\"\n     >pygeodesy.booleans._CompositeFHP</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.booleans._CompositeGH-class.html\"\n     >pygeodesy.booleans._CompositeGH</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.booleans._LatLonBool-class.html\"\n     >pygeodesy.booleans._LatLonBool</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.cartesianBase.CartesianBase-class.html\"\n     >pygeodesy.cartesianBase.CartesianBase</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.cartesianBase.RadiusThetaPhi3Tuple-class.html\"\n     >pygeodesy.cartesianBase.RadiusThetaPhi3Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.clipy.ClipCS4Tuple-class.html\"\n     >pygeodesy.clipy.ClipCS4Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.clipy.ClipFHP4Tuple-class.html\"\n     >pygeodesy.clipy.ClipFHP4Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.clipy.ClipGH4Tuple-class.html\"\n     >pygeodesy.clipy.ClipGH4Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.clipy.ClipLB6Tuple-class.html\"\n     >pygeodesy.clipy.ClipLB6Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.clipy.ClipSH3Tuple-class.html\"\n     >pygeodesy.clipy.ClipSH3Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.css.CSSError-class.html\"\n     >pygeodesy.css.CSSError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.css.CassiniSoldner-class.html\"\n     >pygeodesy.css.CassiniSoldner</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.css.Css-class.html\"\n     >pygeodesy.css.Css</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.css.EasNorAziRk4Tuple-class.html\"\n     >pygeodesy.css.EasNorAziRk4Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.css.EasNorAziRkEqu6Tuple-class.html\"\n     >pygeodesy.css.EasNorAziRkEqu6Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.css.LatLonAziRk4Tuple-class.html\"\n     >pygeodesy.css.LatLonAziRk4Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.datums.Datum-class.html\"\n     >pygeodesy.datums.Datum</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.datums.Transform-class.html\"\n     >pygeodesy.datums.Transform</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated.bases.LatLonHeightBase-class.html\"\n     >pygeodesy.deprecated.bases.LatLonHeightBase</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated.nvector.Nvector-class.html\"\n     >pygeodesy.deprecated.nvector.Nvector</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ecef.Ecef9Tuple-class.html\"\n     >pygeodesy.ecef.Ecef9Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ecef.EcefError-class.html\"\n     >pygeodesy.ecef.EcefError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ecef.EcefFarrell21-class.html\"\n     >pygeodesy.ecef.EcefFarrell21</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ecef.EcefFarrell22-class.html\"\n     >pygeodesy.ecef.EcefFarrell22</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ecef.EcefKarney-class.html\"\n     >pygeodesy.ecef.EcefKarney</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ecef.EcefMatrix-class.html\"\n     >pygeodesy.ecef.EcefMatrix</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ecef.EcefSudano-class.html\"\n     >pygeodesy.ecef.EcefSudano</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ecef.EcefUPC-class.html\"\n     >pygeodesy.ecef.EcefUPC</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ecef.EcefVeness-class.html\"\n     >pygeodesy.ecef.EcefVeness</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ecef.EcefYou-class.html\"\n     >pygeodesy.ecef.EcefYou</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ecef._EcefBase-class.html\"\n     >pygeodesy.ecef._EcefBase</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ecefLocals._EcefLocal-class.html\"\n     >pygeodesy.ecefLocals._EcefLocal</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.elevations.Elevation2Tuple-class.html\"\n     >pygeodesy.elevations.Elevation2Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.elevations.GeoidHeight2Tuple-class.html\"\n     >pygeodesy.elevations.GeoidHeight2Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipses.Ellipse-class.html\"\n     >pygeodesy.ellipses.Ellipse</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipses.EllipseError-class.html\"\n     >pygeodesy.ellipses.EllipseError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html\"\n     >pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html\"\n     >pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html\"\n     >pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoidalExact.Cartesian-class.html\"\n     >pygeodesy.ellipsoidalExact.Cartesian</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoidalExact.LatLon-class.html\"\n     >pygeodesy.ellipsoidalExact.LatLon</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoidalGeodSolve.Cartesian-class.html\"\n     >pygeodesy.ellipsoidalGeodSolve.Cartesian</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoidalGeodSolve.LatLon-class.html\"\n     >pygeodesy.ellipsoidalGeodSolve.LatLon</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoidalKarney.Cartesian-class.html\"\n     >pygeodesy.ellipsoidalKarney.Cartesian</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoidalKarney.LatLon-class.html\"\n     >pygeodesy.ellipsoidalKarney.LatLon</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoidalNvector.Cartesian-class.html\"\n     >pygeodesy.ellipsoidalNvector.Cartesian</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoidalNvector.LatLon-class.html\"\n     >pygeodesy.ellipsoidalNvector.LatLon</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoidalNvector.Ned-class.html\"\n     >pygeodesy.ellipsoidalNvector.Ned</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoidalNvector.Nvector-class.html\"\n     >pygeodesy.ellipsoidalNvector.Nvector</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoidalVincenty.Cartesian-class.html\"\n     >pygeodesy.ellipsoidalVincenty.Cartesian</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoidalVincenty.LatLon-class.html\"\n     >pygeodesy.ellipsoidalVincenty.LatLon</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoidalVincenty.VincentyError-class.html\"\n     >pygeodesy.ellipsoidalVincenty.VincentyError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids.Curvature2Tuple-class.html\"\n     >pygeodesy.ellipsoids.Curvature2Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\"\n     >pygeodesy.ellipsoids.Ellipsoid</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\"\n     >pygeodesy.ellipsoids.Ellipsoid2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\"\n     >pygeodesy.ellipsoids.a_f2Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.elliptic.Elliptic-class.html\"\n     >pygeodesy.elliptic.Elliptic</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.elliptic.Elliptic3Tuple-class.html\"\n     >pygeodesy.elliptic.Elliptic3Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.elliptic.EllipticError-class.html\"\n     >pygeodesy.elliptic.EllipticError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.epsg.EPSGError-class.html\"\n     >pygeodesy.epsg.EPSGError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.epsg.Epsg-class.html\"\n     >pygeodesy.epsg.Epsg</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.errors.AuxError-class.html\"\n     >pygeodesy.errors.AuxError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.errors.ClipError-class.html\"\n     >pygeodesy.errors.ClipError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.errors.CrossError-class.html\"\n     >pygeodesy.errors.CrossError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.errors.GeodesicError-class.html\"\n     >pygeodesy.errors.GeodesicError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.errors.IntersectionError-class.html\"\n     >pygeodesy.errors.IntersectionError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.errors.LenError-class.html\"\n     >pygeodesy.errors.LenError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.errors.LimitError-class.html\"\n     >pygeodesy.errors.LimitError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.errors.MGRSError-class.html\"\n     >pygeodesy.errors.MGRSError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.errors.NumPyError-class.html\"\n     >pygeodesy.errors.NumPyError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.errors.ParseError-class.html\"\n     >pygeodesy.errors.ParseError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.errors.PointsError-class.html\"\n     >pygeodesy.errors.PointsError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.errors.RangeError-class.html\"\n     >pygeodesy.errors.RangeError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.errors.RhumbError-class.html\"\n     >pygeodesy.errors.RhumbError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.errors.SciPyError-class.html\"\n     >pygeodesy.errors.SciPyError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.errors.SciPyWarning-class.html\"\n     >pygeodesy.errors.SciPyWarning</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.errors.TRFError-class.html\"\n     >pygeodesy.errors.TRFError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.errors.TriangleError-class.html\"\n     >pygeodesy.errors.TriangleError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.errors.UnitError-class.html\"\n     >pygeodesy.errors.UnitError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.errors.VectorError-class.html\"\n     >pygeodesy.errors.VectorError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.etm.ETMError-class.html\"\n     >pygeodesy.etm.ETMError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.etm.Etm-class.html\"\n     >pygeodesy.etm.Etm</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.etm.ExactTransverseMercator-class.html\"\n     >pygeodesy.etm.ExactTransverseMercator</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fmath.Fcbrt-class.html\"\n     >pygeodesy.fmath.Fcbrt</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fmath.Fdot-class.html\"\n     >pygeodesy.fmath.Fdot</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fmath.Fdot_-class.html\"\n     >pygeodesy.fmath.Fdot_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fmath.Fhorner-class.html\"\n     >pygeodesy.fmath.Fhorner</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fmath.Fhypot-class.html\"\n     >pygeodesy.fmath.Fhypot</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fmath.Fpolynomial-class.html\"\n     >pygeodesy.fmath.Fpolynomial</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fmath.Fpowers-class.html\"\n     >pygeodesy.fmath.Fpowers</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fmath.Froot-class.html\"\n     >pygeodesy.fmath.Froot</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fmath.Fsqrt-class.html\"\n     >pygeodesy.fmath.Fsqrt</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.formy.Radical2Tuple-class.html\"\n     >pygeodesy.formy.Radical2Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.frechet.Frechet-class.html\"\n     >pygeodesy.frechet.Frechet</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.frechet.Frechet6Tuple-class.html\"\n     >pygeodesy.frechet.Frechet6Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.frechet.FrechetCosineLaw-class.html\"\n     >pygeodesy.frechet.FrechetCosineLaw</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.frechet.FrechetDegrees-class.html\"\n     >pygeodesy.frechet.FrechetDegrees</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.frechet.FrechetDistanceTo-class.html\"\n     >pygeodesy.frechet.FrechetDistanceTo</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.frechet.FrechetEquirectangular-class.html\"\n     >pygeodesy.frechet.FrechetEquirectangular</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.frechet.FrechetError-class.html\"\n     >pygeodesy.frechet.FrechetError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.frechet.FrechetEuclidean-class.html\"\n     >pygeodesy.frechet.FrechetEuclidean</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.frechet.FrechetExact-class.html\"\n     >pygeodesy.frechet.FrechetExact</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.frechet.FrechetFlatLocal-class.html\"\n     >pygeodesy.frechet.FrechetFlatLocal</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.frechet.FrechetFlatPolar-class.html\"\n     >pygeodesy.frechet.FrechetFlatPolar</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.frechet.FrechetHaversine-class.html\"\n     >pygeodesy.frechet.FrechetHaversine</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.frechet.FrechetHubeny-class.html\"\n     >pygeodesy.frechet.FrechetHubeny</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.frechet.FrechetKarney-class.html\"\n     >pygeodesy.frechet.FrechetKarney</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.frechet.FrechetRadians-class.html\"\n     >pygeodesy.frechet.FrechetRadians</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.frechet.FrechetThomas-class.html\"\n     >pygeodesy.frechet.FrechetThomas</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.frechet.FrechetVincentys-class.html\"\n     >pygeodesy.frechet.FrechetVincentys</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fstats.Fcook-class.html\"\n     >pygeodesy.fstats.Fcook</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fstats.Flinear-class.html\"\n     >pygeodesy.fstats.Flinear</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fstats.Fwelford-class.html\"\n     >pygeodesy.fstats.Fwelford</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fstats._FstatsBase-class.html\"\n     >pygeodesy.fstats._FstatsBase</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fstats._FstatsNamed-class.html\"\n     >pygeodesy.fstats._FstatsNamed</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fsums.DivMod2Tuple-class.html\"\n     >pygeodesy.fsums.DivMod2Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fsums.Fsum-class.html\"\n     >pygeodesy.fsums.Fsum</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fsums.Fsum2Tuple-class.html\"\n     >pygeodesy.fsums.Fsum2Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fsums.ResidualError-class.html\"\n     >pygeodesy.fsums.ResidualError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.gars.GARSError-class.html\"\n     >pygeodesy.gars.GARSError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.gars.Garef-class.html\"\n     >pygeodesy.gars.Garef</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geod3solve.Geod3Solve8Tuple-class.html\"\n     >pygeodesy.geod3solve.Geod3Solve8Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geod3solve.Geodesic3Error-class.html\"\n     >pygeodesy.geod3solve.Geodesic3Error</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geod3solve.Geodesic3Solve-class.html\"\n     >pygeodesy.geod3solve.Geodesic3Solve</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geod3solve.GeodesicLine3Solve-class.html\"\n     >pygeodesy.geod3solve.GeodesicLine3Solve</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geod3solve._Geodesic3SolveBase-class.html\"\n     >pygeodesy.geod3solve._Geodesic3SolveBase</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geodesici.Intersect7Tuple-class.html\"\n     >pygeodesy.geodesici.Intersect7Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geodesici.Intersectool-class.html\"\n     >pygeodesy.geodesici.Intersectool</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geodesici.Intersectool5Tuple-class.html\"\n     >pygeodesy.geodesici.Intersectool5Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geodesici.Intersector-class.html\"\n     >pygeodesy.geodesici.Intersector</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geodesici.Intersector5Tuple-class.html\"\n     >pygeodesy.geodesici.Intersector5Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geodesici.Middle5Tuple-class.html\"\n     >pygeodesy.geodesici.Middle5Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geodesici.XDict-class.html\"\n     >pygeodesy.geodesici.XDict</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geodesici._IntersectBase-class.html\"\n     >pygeodesy.geodesici._IntersectBase</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geodesicw.Geodesic-class.html\"\n     >pygeodesy.geodesicw.Geodesic</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geodesicw.GeodesicLine-class.html\"\n     >pygeodesy.geodesicw.GeodesicLine</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html\"\n     >pygeodesy.geodesicx.gx.GeodesicExact</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geodesicx.gx.GeodesicLineExact-class.html\"\n     >pygeodesy.geodesicx.gx.GeodesicLineExact</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html\"\n     >pygeodesy.geodesicx.gxarea.GeodesicAreaExact</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geodesicx.gxarea.PolygonArea-class.html\"\n     >pygeodesy.geodesicx.gxarea.PolygonArea</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html\"\n     >pygeodesy.geodesicx.gxline._GeodesicLineExact</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geodsolve.GeodSolve12Tuple-class.html\"\n     >pygeodesy.geodsolve.GeodSolve12Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geodsolve.GeodesicLineSolve-class.html\"\n     >pygeodesy.geodsolve.GeodesicLineSolve</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geodsolve.GeodesicSolve-class.html\"\n     >pygeodesy.geodsolve.GeodesicSolve</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geodsolve._GeodesicSolveBase-class.html\"\n     >pygeodesy.geodsolve._GeodesicSolveBase</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geohash.Geohash-class.html\"\n     >pygeodesy.geohash.Geohash</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geohash.GeohashError-class.html\"\n     >pygeodesy.geohash.GeohashError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geohash.Geohashed-class.html\"\n     >pygeodesy.geohash.Geohashed</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geohash.Neighbors8Dict-class.html\"\n     >pygeodesy.geohash.Neighbors8Dict</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geohash.Resolutions2Tuple-class.html\"\n     >pygeodesy.geohash.Resolutions2Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geohash.Sizes3Tuple-class.html\"\n     >pygeodesy.geohash.Sizes3Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geoids.GeoidEGM96-class.html\"\n     >pygeodesy.geoids.GeoidEGM96</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geoids.GeoidError-class.html\"\n     >pygeodesy.geoids.GeoidError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geoids.GeoidG2012B-class.html\"\n     >pygeodesy.geoids.GeoidG2012B</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geoids.GeoidHeight5Tuple-class.html\"\n     >pygeodesy.geoids.GeoidHeight5Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geoids.GeoidKarney-class.html\"\n     >pygeodesy.geoids.GeoidKarney</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geoids.GeoidPGM-class.html\"\n     >pygeodesy.geoids.GeoidPGM</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geoids.PGMError-class.html\"\n     >pygeodesy.geoids.PGMError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geoids._GeoidBase-class.html\"\n     >pygeodesy.geoids._GeoidBase</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.hausdorff.Hausdorff-class.html\"\n     >pygeodesy.hausdorff.Hausdorff</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.hausdorff.Hausdorff6Tuple-class.html\"\n     >pygeodesy.hausdorff.Hausdorff6Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.hausdorff.HausdorffCosineLaw-class.html\"\n     >pygeodesy.hausdorff.HausdorffCosineLaw</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.hausdorff.HausdorffDegrees-class.html\"\n     >pygeodesy.hausdorff.HausdorffDegrees</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.hausdorff.HausdorffDistanceTo-class.html\"\n     >pygeodesy.hausdorff.HausdorffDistanceTo</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.hausdorff.HausdorffEquirectangular-class.html\"\n     >pygeodesy.hausdorff.HausdorffEquirectangular</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.hausdorff.HausdorffError-class.html\"\n     >pygeodesy.hausdorff.HausdorffError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.hausdorff.HausdorffEuclidean-class.html\"\n     >pygeodesy.hausdorff.HausdorffEuclidean</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.hausdorff.HausdorffExact-class.html\"\n     >pygeodesy.hausdorff.HausdorffExact</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.hausdorff.HausdorffFlatLocal-class.html\"\n     >pygeodesy.hausdorff.HausdorffFlatLocal</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.hausdorff.HausdorffFlatPolar-class.html\"\n     >pygeodesy.hausdorff.HausdorffFlatPolar</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.hausdorff.HausdorffHaversine-class.html\"\n     >pygeodesy.hausdorff.HausdorffHaversine</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.hausdorff.HausdorffHubeny-class.html\"\n     >pygeodesy.hausdorff.HausdorffHubeny</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.hausdorff.HausdorffKarney-class.html\"\n     >pygeodesy.hausdorff.HausdorffKarney</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.hausdorff.HausdorffRadians-class.html\"\n     >pygeodesy.hausdorff.HausdorffRadians</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.hausdorff.HausdorffThomas-class.html\"\n     >pygeodesy.hausdorff.HausdorffThomas</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.hausdorff.HausdorffVincentys-class.html\"\n     >pygeodesy.hausdorff.HausdorffVincentys</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.heights.HeightCubic-class.html\"\n     >pygeodesy.heights.HeightCubic</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.heights.HeightError-class.html\"\n     >pygeodesy.heights.HeightError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.heights.HeightIDWcosineLaw-class.html\"\n     >pygeodesy.heights.HeightIDWcosineLaw</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.heights.HeightIDWdistanceTo-class.html\"\n     >pygeodesy.heights.HeightIDWdistanceTo</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.heights.HeightIDWequirectangular-class.html\"\n     >pygeodesy.heights.HeightIDWequirectangular</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.heights.HeightIDWeuclidean-class.html\"\n     >pygeodesy.heights.HeightIDWeuclidean</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.heights.HeightIDWexact-class.html\"\n     >pygeodesy.heights.HeightIDWexact</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.heights.HeightIDWflatLocal-class.html\"\n     >pygeodesy.heights.HeightIDWflatLocal</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.heights.HeightIDWflatPolar-class.html\"\n     >pygeodesy.heights.HeightIDWflatPolar</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.heights.HeightIDWhaversine-class.html\"\n     >pygeodesy.heights.HeightIDWhaversine</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.heights.HeightIDWhubeny-class.html\"\n     >pygeodesy.heights.HeightIDWhubeny</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.heights.HeightIDWkarney-class.html\"\n     >pygeodesy.heights.HeightIDWkarney</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.heights.HeightIDWthomas-class.html\"\n     >pygeodesy.heights.HeightIDWthomas</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.heights.HeightIDWvincentys-class.html\"\n     >pygeodesy.heights.HeightIDWvincentys</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.heights.HeightLSQBiSpline-class.html\"\n     >pygeodesy.heights.HeightLSQBiSpline</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.heights.HeightLinear-class.html\"\n     >pygeodesy.heights.HeightLinear</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.heights.HeightSmoothBiSpline-class.html\"\n     >pygeodesy.heights.HeightSmoothBiSpline</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.heights._HeightBase-class.html\"\n     >pygeodesy.heights._HeightBase</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.heights._HeightIDW-class.html\"\n     >pygeodesy.heights._HeightIDW</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.heights._HeightNamed-class.html\"\n     >pygeodesy.heights._HeightNamed</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.interns.Str_-class.html\"\n     >pygeodesy.interns.Str_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.iters.LatLon2PsxyIter-class.html\"\n     >pygeodesy.iters.LatLon2PsxyIter</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.iters.PointsIter-class.html\"\n     >pygeodesy.iters.PointsIter</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.iters._BaseIter-class.html\"\n     >pygeodesy.iters._BaseIter</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.karney.Area3Tuple-class.html\"\n     >pygeodesy.karney.Area3Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.karney.Caps-class.html\"\n     >pygeodesy.karney.Caps</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.karney.Direct9Tuple-class.html\"\n     >pygeodesy.karney.Direct9Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.karney.GDict-class.html\"\n     >pygeodesy.karney.GDict</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.karney.Inverse10Tuple-class.html\"\n     >pygeodesy.karney.Inverse10Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.karney._CapsBase-class.html\"\n     >pygeodesy.karney._CapsBase</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ktm.KTMError-class.html\"\n     >pygeodesy.ktm.KTMError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ktm.KTransverseMercator-class.html\"\n     >pygeodesy.ktm.KTransverseMercator</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.latlonBase.LatLonBase-class.html\"\n     >pygeodesy.latlonBase.LatLonBase</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.lazily.LazyAttributeError-class.html\"\n     >pygeodesy.lazily.LazyAttributeError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.lazily.LazyImportError-class.html\"\n     >pygeodesy.lazily.LazyImportError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.lcc.Conic-class.html\"\n     >pygeodesy.lcc.Conic</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.lcc.LCCError-class.html\"\n     >pygeodesy.lcc.LCCError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.lcc.Lcc-class.html\"\n     >pygeodesy.lcc.Lcc</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ltp.Attitude-class.html\"\n     >pygeodesy.ltp.Attitude</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ltp.AttitudeError-class.html\"\n     >pygeodesy.ltp.AttitudeError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ltp.ChLV-class.html\"\n     >pygeodesy.ltp.ChLV</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ltp.ChLVa-class.html\"\n     >pygeodesy.ltp.ChLVa</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ltp.ChLVe-class.html\"\n     >pygeodesy.ltp.ChLVe</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ltp.Frustum-class.html\"\n     >pygeodesy.ltp.Frustum</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ltp.LocalCartesian-class.html\"\n     >pygeodesy.ltp.LocalCartesian</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ltp.LocalError-class.html\"\n     >pygeodesy.ltp.LocalError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ltp.Ltp-class.html\"\n     >pygeodesy.ltp.Ltp</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ltpTuples.Aer-class.html\"\n     >pygeodesy.ltpTuples.Aer</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ltpTuples.Aer4Tuple-class.html\"\n     >pygeodesy.ltpTuples.Aer4Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ltpTuples.Attitude4Tuple-class.html\"\n     >pygeodesy.ltpTuples.Attitude4Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ltpTuples.ChLV9Tuple-class.html\"\n     >pygeodesy.ltpTuples.ChLV9Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ltpTuples.ChLVEN2Tuple-class.html\"\n     >pygeodesy.ltpTuples.ChLVEN2Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ltpTuples.ChLVYX2Tuple-class.html\"\n     >pygeodesy.ltpTuples.ChLVYX2Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ltpTuples.ChLVyx2Tuple-class.html\"\n     >pygeodesy.ltpTuples.ChLVyx2Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ltpTuples.Enu-class.html\"\n     >pygeodesy.ltpTuples.Enu</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ltpTuples.Enu4Tuple-class.html\"\n     >pygeodesy.ltpTuples.Enu4Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ltpTuples.Footprint5Tuple-class.html\"\n     >pygeodesy.ltpTuples.Footprint5Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ltpTuples.Local9Tuple-class.html\"\n     >pygeodesy.ltpTuples.Local9Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ltpTuples.Los-class.html\"\n     >pygeodesy.ltpTuples.Los</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ltpTuples.Ned-class.html\"\n     >pygeodesy.ltpTuples.Ned</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ltpTuples.Ned4Tuple-class.html\"\n     >pygeodesy.ltpTuples.Ned4Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ltpTuples.Uvw-class.html\"\n     >pygeodesy.ltpTuples.Uvw</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ltpTuples.Uvw3Tuple-class.html\"\n     >pygeodesy.ltpTuples.Uvw3Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ltpTuples.Xyz4Tuple-class.html\"\n     >pygeodesy.ltpTuples.Xyz4Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ltpTuples.XyzLocal-class.html\"\n     >pygeodesy.ltpTuples.XyzLocal</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ltpTuples._AbcBase-class.html\"\n     >pygeodesy.ltpTuples._AbcBase</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.mgrs.Mgrs-class.html\"\n     >pygeodesy.mgrs.Mgrs</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.mgrs.Mgrs4Tuple-class.html\"\n     >pygeodesy.mgrs.Mgrs4Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.mgrs.Mgrs6Tuple-class.html\"\n     >pygeodesy.mgrs.Mgrs6Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.named.ADict-class.html\"\n     >pygeodesy.named.ADict</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.named._Named-class.html\"\n     >pygeodesy.named._Named</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.named._NamedBase-class.html\"\n     >pygeodesy.named._NamedBase</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.named._NamedEnum-class.html\"\n     >pygeodesy.named._NamedEnum</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.named._NamedEnumItem-class.html\"\n     >pygeodesy.named._NamedEnumItem</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.named._NamedTuple-class.html\"\n     >pygeodesy.named._NamedTuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.namedTuples.Bearing2Tuple-class.html\"\n     >pygeodesy.namedTuples.Bearing2Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.namedTuples.Bounds2Tuple-class.html\"\n     >pygeodesy.namedTuples.Bounds2Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.namedTuples.Bounds4Tuple-class.html\"\n     >pygeodesy.namedTuples.Bounds4Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.namedTuples.Circle4Tuple-class.html\"\n     >pygeodesy.namedTuples.Circle4Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.namedTuples.Destination2Tuple-class.html\"\n     >pygeodesy.namedTuples.Destination2Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.namedTuples.Destination3Tuple-class.html\"\n     >pygeodesy.namedTuples.Destination3Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.namedTuples.Distance2Tuple-class.html\"\n     >pygeodesy.namedTuples.Distance2Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.namedTuples.Distance3Tuple-class.html\"\n     >pygeodesy.namedTuples.Distance3Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.namedTuples.Distance4Tuple-class.html\"\n     >pygeodesy.namedTuples.Distance4Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.namedTuples.EasNor2Tuple-class.html\"\n     >pygeodesy.namedTuples.EasNor2Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.namedTuples.EasNor3Tuple-class.html\"\n     >pygeodesy.namedTuples.EasNor3Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.namedTuples.Ellipse5Tuple-class.html\"\n     >pygeodesy.namedTuples.Ellipse5Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.namedTuples.Forward4Tuple-class.html\"\n     >pygeodesy.namedTuples.Forward4Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.namedTuples.Intersection3Tuple-class.html\"\n     >pygeodesy.namedTuples.Intersection3Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.namedTuples.LatLon2Tuple-class.html\"\n     >pygeodesy.namedTuples.LatLon2Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.namedTuples.LatLon3Tuple-class.html\"\n     >pygeodesy.namedTuples.LatLon3Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.namedTuples.LatLon4Tuple-class.html\"\n     >pygeodesy.namedTuples.LatLon4Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.namedTuples.LatLonDatum3Tuple-class.html\"\n     >pygeodesy.namedTuples.LatLonDatum3Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.namedTuples.LatLonDatum5Tuple-class.html\"\n     >pygeodesy.namedTuples.LatLonDatum5Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.namedTuples.LatLonPrec3Tuple-class.html\"\n     >pygeodesy.namedTuples.LatLonPrec3Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.namedTuples.LatLonPrec5Tuple-class.html\"\n     >pygeodesy.namedTuples.LatLonPrec5Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.namedTuples.NearestOn2Tuple-class.html\"\n     >pygeodesy.namedTuples.NearestOn2Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.namedTuples.NearestOn3Tuple-class.html\"\n     >pygeodesy.namedTuples.NearestOn3Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.namedTuples.NearestOn6Tuple-class.html\"\n     >pygeodesy.namedTuples.NearestOn6Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.namedTuples.NearestOn8Tuple-class.html\"\n     >pygeodesy.namedTuples.NearestOn8Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.namedTuples.PhiLam2Tuple-class.html\"\n     >pygeodesy.namedTuples.PhiLam2Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.namedTuples.PhiLam3Tuple-class.html\"\n     >pygeodesy.namedTuples.PhiLam3Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.namedTuples.PhiLam4Tuple-class.html\"\n     >pygeodesy.namedTuples.PhiLam4Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.namedTuples.Point3Tuple-class.html\"\n     >pygeodesy.namedTuples.Point3Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.namedTuples.Points2Tuple-class.html\"\n     >pygeodesy.namedTuples.Points2Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.namedTuples.Reverse4Tuple-class.html\"\n     >pygeodesy.namedTuples.Reverse4Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.namedTuples.Triangle7Tuple-class.html\"\n     >pygeodesy.namedTuples.Triangle7Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.namedTuples.Triangle8Tuple-class.html\"\n     >pygeodesy.namedTuples.Triangle8Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.namedTuples.Trilaterate5Tuple-class.html\"\n     >pygeodesy.namedTuples.Trilaterate5Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.namedTuples.UtmUps2Tuple-class.html\"\n     >pygeodesy.namedTuples.UtmUps2Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.namedTuples.UtmUps5Tuple-class.html\"\n     >pygeodesy.namedTuples.UtmUps5Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.namedTuples.UtmUps8Tuple-class.html\"\n     >pygeodesy.namedTuples.UtmUps8Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.namedTuples.UtmUpsLatLon5Tuple-class.html\"\n     >pygeodesy.namedTuples.UtmUpsLatLon5Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.namedTuples.Vector2Tuple-class.html\"\n     >pygeodesy.namedTuples.Vector2Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.namedTuples.Vector3Tuple-class.html\"\n     >pygeodesy.namedTuples.Vector3Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.namedTuples.Vector4Tuple-class.html\"\n     >pygeodesy.namedTuples.Vector4Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.nvectorBase.LatLonNvectorBase-class.html\"\n     >pygeodesy.nvectorBase.LatLonNvectorBase</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.nvectorBase.NvectorBase-class.html\"\n     >pygeodesy.nvectorBase.NvectorBase</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.osgr.OSGRError-class.html\"\n     >pygeodesy.osgr.OSGRError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.osgr.Osgr-class.html\"\n     >pygeodesy.osgr.Osgr</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.points.LatLon2psxy-class.html\"\n     >pygeodesy.points.LatLon2psxy</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.points.LatLon_-class.html\"\n     >pygeodesy.points.LatLon_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.points.Numpy2LatLon-class.html\"\n     >pygeodesy.points.Numpy2LatLon</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.points.Shape2Tuple-class.html\"\n     >pygeodesy.points.Shape2Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.points.Tuple2LatLon-class.html\"\n     >pygeodesy.points.Tuple2LatLon</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.points._Array2LatLon-class.html\"\n     >pygeodesy.points._Array2LatLon</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.points._Basequence-class.html\"\n     >pygeodesy.points._Basequence</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.props.DeprecationWarnings-class.html\"\n     >pygeodesy.props.DeprecationWarnings</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.props.Property-class.html\"\n     >pygeodesy.props.Property</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.props.Property_RO-class.html\"\n     >pygeodesy.props.Property_RO</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.props.property_RO-class.html\"\n     >pygeodesy.props.property_RO</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.props.property_ROnce-class.html\"\n     >pygeodesy.props.property_ROnce</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.props.property_ROver-class.html\"\n     >pygeodesy.props.property_ROver</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.resections.Collins5Tuple-class.html\"\n     >pygeodesy.resections.Collins5Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.resections.ResectionError-class.html\"\n     >pygeodesy.resections.ResectionError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.resections.Survey3Tuple-class.html\"\n     >pygeodesy.resections.Survey3Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.resections.Tienstra7Tuple-class.html\"\n     >pygeodesy.resections.Tienstra7Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.resections.TriAngle5Tuple-class.html\"\n     >pygeodesy.resections.TriAngle5Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.resections.TriSide2Tuple-class.html\"\n     >pygeodesy.resections.TriSide2Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.resections.TriSide4Tuple-class.html\"\n     >pygeodesy.resections.TriSide4Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.solveBase._SolveBase-class.html\"\n     >pygeodesy.solveBase._SolveBase</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.solveBase._SolveCapsBase-class.html\"\n     >pygeodesy.solveBase._SolveCapsBase</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.solveBase._SolveGDictBase-class.html\"\n     >pygeodesy.solveBase._SolveGDictBase</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.solveBase._SolveGDictLineBase-class.html\"\n     >pygeodesy.solveBase._SolveGDictLineBase</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.sphericalBase.CartesianSphericalBase-class.html\"\n     >pygeodesy.sphericalBase.CartesianSphericalBase</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html\"\n     >pygeodesy.sphericalBase.LatLonSphericalBase</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.sphericalNvector.Cartesian-class.html\"\n     >pygeodesy.sphericalNvector.Cartesian</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.sphericalNvector.LatLon-class.html\"\n     >pygeodesy.sphericalNvector.LatLon</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.sphericalNvector.Nvector-class.html\"\n     >pygeodesy.sphericalNvector.Nvector</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.sphericalTrigonometry.Cartesian-class.html\"\n     >pygeodesy.sphericalTrigonometry.Cartesian</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html\"\n     >pygeodesy.sphericalTrigonometry.LatLon</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.trf.RefFrame-class.html\"\n     >pygeodesy.trf.RefFrame</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.trf.TRFXform-class.html\"\n     >pygeodesy.trf.TRFXform</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.trf.TRFXform7Tuple-class.html\"\n     >pygeodesy.trf.TRFXform7Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.trf.TransformXform-class.html\"\n     >pygeodesy.trf.TransformXform</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.units.Azimuth-class.html\"\n     >pygeodesy.units.Azimuth</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.units.Band-class.html\"\n     >pygeodesy.units.Band</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.units.Bearing-class.html\"\n     >pygeodesy.units.Bearing</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.units.Bearing_-class.html\"\n     >pygeodesy.units.Bearing_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.units.Bool-class.html\"\n     >pygeodesy.units.Bool</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.units.Degrees-class.html\"\n     >pygeodesy.units.Degrees</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.units.Degrees2-class.html\"\n     >pygeodesy.units.Degrees2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.units.Degrees_-class.html\"\n     >pygeodesy.units.Degrees_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.units.Distance-class.html\"\n     >pygeodesy.units.Distance</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.units.Distance_-class.html\"\n     >pygeodesy.units.Distance_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.units.Easting-class.html\"\n     >pygeodesy.units.Easting</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.units.Epoch-class.html\"\n     >pygeodesy.units.Epoch</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.units.FIx-class.html\"\n     >pygeodesy.units.FIx</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.units.Feet-class.html\"\n     >pygeodesy.units.Feet</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.units.Float_-class.html\"\n     >pygeodesy.units.Float_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.units.Height-class.html\"\n     >pygeodesy.units.Height</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.units.HeightX-class.html\"\n     >pygeodesy.units.HeightX</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.units.Height_-class.html\"\n     >pygeodesy.units.Height_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.units.Int_-class.html\"\n     >pygeodesy.units.Int_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.units.Lam-class.html\"\n     >pygeodesy.units.Lam</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.units.Lamd-class.html\"\n     >pygeodesy.units.Lamd</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.units.Lat-class.html\"\n     >pygeodesy.units.Lat</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.units.Lat_-class.html\"\n     >pygeodesy.units.Lat_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.units.Lon-class.html\"\n     >pygeodesy.units.Lon</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.units.Lon_-class.html\"\n     >pygeodesy.units.Lon_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.units.Meter-class.html\"\n     >pygeodesy.units.Meter</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.units.Meter2-class.html\"\n     >pygeodesy.units.Meter2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.units.Meter3-class.html\"\n     >pygeodesy.units.Meter3</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.units.Meter_-class.html\"\n     >pygeodesy.units.Meter_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.units.Northing-class.html\"\n     >pygeodesy.units.Northing</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.units.Number_-class.html\"\n     >pygeodesy.units.Number_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.units.Phi-class.html\"\n     >pygeodesy.units.Phi</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.units.Phid-class.html\"\n     >pygeodesy.units.Phid</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.units.Precision_-class.html\"\n     >pygeodesy.units.Precision_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.units.Radians-class.html\"\n     >pygeodesy.units.Radians</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.units.Radians2-class.html\"\n     >pygeodesy.units.Radians2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.units.Radians_-class.html\"\n     >pygeodesy.units.Radians_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.units.Radius_-class.html\"\n     >pygeodesy.units.Radius_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.units.Scalar-class.html\"\n     >pygeodesy.units.Scalar</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.units.Scalar_-class.html\"\n     >pygeodesy.units.Scalar_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.units.Zone-class.html\"\n     >pygeodesy.units.Zone</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.unitsBase.Float-class.html\"\n     >pygeodesy.unitsBase.Float</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.unitsBase.Int-class.html\"\n     >pygeodesy.unitsBase.Int</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.unitsBase.Radius-class.html\"\n     >pygeodesy.unitsBase.Radius</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.unitsBase.Str-class.html\"\n     >pygeodesy.unitsBase.Str</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.unitsBase._NamedUnit-class.html\"\n     >pygeodesy.unitsBase._NamedUnit</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ups.UPSError-class.html\"\n     >pygeodesy.ups.UPSError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ups.Ups-class.html\"\n     >pygeodesy.ups.Ups</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utm.UTMError-class.html\"\n     >pygeodesy.utm.UTMError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utm.Utm-class.html\"\n     >pygeodesy.utm.Utm</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utmups.UTMUPSError-class.html\"\n     >pygeodesy.utmups.UTMUPSError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html\"\n     >pygeodesy.utmupsBase.UtmUpsBase</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.vector2d.Circin6Tuple-class.html\"\n     >pygeodesy.vector2d.Circin6Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.vector2d.Circum3Tuple-class.html\"\n     >pygeodesy.vector2d.Circum3Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.vector2d.Circum4Tuple-class.html\"\n     >pygeodesy.vector2d.Circum4Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.vector2d.Meeus2Tuple-class.html\"\n     >pygeodesy.vector2d.Meeus2Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.vector2d.Radii11Tuple-class.html\"\n     >pygeodesy.vector2d.Radii11Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.vector2d.Soddy4Tuple-class.html\"\n     >pygeodesy.vector2d.Soddy4Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.vector2d.Triaxum5Tuple-class.html\"\n     >pygeodesy.vector2d.Triaxum5Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.vector3d.Vector3d-class.html\"\n     >pygeodesy.vector3d.Vector3d</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\"\n     >pygeodesy.vector3dBase.Vector3dBase</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.webmercator.EasNorRadius3Tuple-class.html\"\n     >pygeodesy.webmercator.EasNorRadius3Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.webmercator.WebMercatorError-class.html\"\n     >pygeodesy.webmercator.WebMercatorError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.webmercator.Wm-class.html\"\n     >pygeodesy.webmercator.Wm</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.wgrs.Georef-class.html\"\n     >pygeodesy.wgrs.Georef</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.wgrs.WGRSError-class.html\"\n     >pygeodesy.wgrs.WGRSError</a><br />  <h2 class=\"toc\">All Functions</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.angles-module.html#Deg\"\n     >pygeodesy.angles.Deg</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.angles-module.html#Rad\"\n     >pygeodesy.angles.Rad</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.angles-module.html#isAng\"\n     >pygeodesy.angles.isAng</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.azimuthal-module.html#equidistant\"\n     >pygeodesy.azimuthal.equidistant</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.azimuthal-module.html#gnomonic\"\n     >pygeodesy.azimuthal.gnomonic</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.basics-module.html#clips\"\n     >pygeodesy.basics.clips</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.basics-module.html#copysign0\"\n     >pygeodesy.basics.copysign0</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.basics-module.html#copytype\"\n     >pygeodesy.basics.copytype</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.basics-module.html#halfs2\"\n     >pygeodesy.basics.halfs2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.basics-module.html#int1s\"\n     >pygeodesy.basics.int1s</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.basics-module.html#isCartesian\"\n     >pygeodesy.basics.isCartesian</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.basics-module.html#isDEPRECATED\"\n     >pygeodesy.basics.isDEPRECATED</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.basics-module.html#isLatLon\"\n     >pygeodesy.basics.isLatLon</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.basics-module.html#isNvector\"\n     >pygeodesy.basics.isNvector</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.basics-module.html#isbool\"\n     >pygeodesy.basics.isbool</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.basics-module.html#isclass\"\n     >pygeodesy.basics.isclass</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.basics-module.html#iscomplex\"\n     >pygeodesy.basics.iscomplex</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.basics-module.html#isfloat\"\n     >pygeodesy.basics.isfloat</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.basics-module.html#isidentifier\"\n     >pygeodesy.basics.isidentifier</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.basics-module.html#isinstanceof\"\n     >pygeodesy.basics.isinstanceof</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.basics-module.html#isint\"\n     >pygeodesy.basics.isint</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.basics-module.html#isiterable\"\n     >pygeodesy.basics.isiterable</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.basics-module.html#isiterablen\"\n     >pygeodesy.basics.isiterablen</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.basics-module.html#isiterabletype\"\n     >pygeodesy.basics.isiterabletype</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.basics-module.html#iskeyword\"\n     >pygeodesy.basics.iskeyword</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.basics-module.html#islistuple\"\n     >pygeodesy.basics.islistuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.basics-module.html#isodd\"\n     >pygeodesy.basics.isodd</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.basics-module.html#isscalar\"\n     >pygeodesy.basics.isscalar</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.basics-module.html#issequence\"\n     >pygeodesy.basics.issequence</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.basics-module.html#isstr\"\n     >pygeodesy.basics.isstr</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.basics-module.html#issubclassof\"\n     >pygeodesy.basics.issubclassof</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.basics-module.html#itemsorted\"\n     >pygeodesy.basics.itemsorted</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.basics-module.html#len2\"\n     >pygeodesy.basics.len2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.basics-module.html#map1\"\n     >pygeodesy.basics.map1</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.basics-module.html#map2\"\n     >pygeodesy.basics.map2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.basics-module.html#max2\"\n     >pygeodesy.basics.max2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.basics-module.html#min2\"\n     >pygeodesy.basics.min2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.basics-module.html#neg\"\n     >pygeodesy.basics.neg</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.basics-module.html#neg_\"\n     >pygeodesy.basics.neg_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.basics-module.html#signBit\"\n     >pygeodesy.basics.signBit</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.basics-module.html#signOf\"\n     >pygeodesy.basics.signOf</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.basics-module.html#splice\"\n     >pygeodesy.basics.splice</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.basics-module.html#unsigned0\"\n     >pygeodesy.basics.unsigned0</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.booleans-module.html#isBoolean\"\n     >pygeodesy.booleans.isBoolean</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.cartesianBase-module.html#rtp2xyz\"\n     >pygeodesy.cartesianBase.rtp2xyz</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.cartesianBase-module.html#rtp2xyz_\"\n     >pygeodesy.cartesianBase.rtp2xyz_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.cartesianBase-module.html#xyz2rtp\"\n     >pygeodesy.cartesianBase.xyz2rtp</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.cartesianBase-module.html#xyz2rtp_\"\n     >pygeodesy.cartesianBase.xyz2rtp_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.clipy-module.html#clipCS4\"\n     >pygeodesy.clipy.clipCS4</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.clipy-module.html#clipFHP4\"\n     >pygeodesy.clipy.clipFHP4</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.clipy-module.html#clipGH4\"\n     >pygeodesy.clipy.clipGH4</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.clipy-module.html#clipLB6\"\n     >pygeodesy.clipy.clipLB6</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.clipy-module.html#clipSH\"\n     >pygeodesy.clipy.clipSH</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.clipy-module.html#clipSH3\"\n     >pygeodesy.clipy.clipSH3</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.constants-module.html#float0_\"\n     >pygeodesy.constants.float0_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.constants-module.html#float_\"\n     >pygeodesy.constants.float_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.constants-module.html#floats_\"\n     >pygeodesy.constants.floats_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.constants-module.html#isclose\"\n     >pygeodesy.constants.isclose</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.constants-module.html#isfinite\"\n     >pygeodesy.constants.isfinite</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.constants-module.html#isinf\"\n     >pygeodesy.constants.isinf</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.constants-module.html#isint0\"\n     >pygeodesy.constants.isint0</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.constants-module.html#isnan\"\n     >pygeodesy.constants.isnan</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.constants-module.html#isnear0\"\n     >pygeodesy.constants.isnear0</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.constants-module.html#isnear1\"\n     >pygeodesy.constants.isnear1</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.constants-module.html#isnear90\"\n     >pygeodesy.constants.isnear90</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.constants-module.html#isneg\"\n     >pygeodesy.constants.isneg</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.constants-module.html#isneg0\"\n     >pygeodesy.constants.isneg0</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.constants-module.html#isninf\"\n     >pygeodesy.constants.isninf</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.constants-module.html#isnon0\"\n     >pygeodesy.constants.isnon0</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.constants-module.html#remainder\"\n     >pygeodesy.constants.remainder</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.css-module.html#toCss\"\n     >pygeodesy.css.toCss</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.dms-module.html#bearingDMS\"\n     >pygeodesy.dms.bearingDMS</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.dms-module.html#clipDegrees\"\n     >pygeodesy.dms.clipDegrees</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.dms-module.html#clipRadians\"\n     >pygeodesy.dms.clipRadians</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.dms-module.html#compassDMS\"\n     >pygeodesy.dms.compassDMS</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.dms-module.html#compassPoint\"\n     >pygeodesy.dms.compassPoint</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.dms-module.html#degDMS\"\n     >pygeodesy.dms.degDMS</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.dms-module.html#latDMS\"\n     >pygeodesy.dms.latDMS</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.dms-module.html#latlonDMS\"\n     >pygeodesy.dms.latlonDMS</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.dms-module.html#latlonDMS_\"\n     >pygeodesy.dms.latlonDMS_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.dms-module.html#lonDMS\"\n     >pygeodesy.dms.lonDMS</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.dms-module.html#normDMS\"\n     >pygeodesy.dms.normDMS</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.dms-module.html#parse3llh\"\n     >pygeodesy.dms.parse3llh</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.dms-module.html#parseDDDMMSS\"\n     >pygeodesy.dms.parseDDDMMSS</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.dms-module.html#parseDMS\"\n     >pygeodesy.dms.parseDMS</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.dms-module.html#parseDMS2\"\n     >pygeodesy.dms.parseDMS2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.dms-module.html#parseRad\"\n     >pygeodesy.dms.parseRad</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.dms-module.html#precision\"\n     >pygeodesy.dms.precision</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.dms-module.html#toDMS\"\n     >pygeodesy.dms.toDMS</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.elevations-module.html#elevation2\"\n     >pygeodesy.elevations.elevation2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.elevations-module.html#geoidHeight2\"\n     >pygeodesy.elevations.geoidHeight2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoidalBaseDI-module.html#intersecant2\"\n     >pygeodesy.ellipsoidalBaseDI.intersecant2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoidalExact-module.html#areaOf\"\n     >pygeodesy.ellipsoidalExact.areaOf</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoidalExact-module.html#intersection3\"\n     >pygeodesy.ellipsoidalExact.intersection3</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoidalExact-module.html#intersections2\"\n     >pygeodesy.ellipsoidalExact.intersections2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoidalExact-module.html#isclockwise\"\n     >pygeodesy.ellipsoidalExact.isclockwise</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoidalExact-module.html#nearestOn\"\n     >pygeodesy.ellipsoidalExact.nearestOn</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoidalExact-module.html#perimeterOf\"\n     >pygeodesy.ellipsoidalExact.perimeterOf</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoidalGeodSolve-module.html#areaOf\"\n     >pygeodesy.ellipsoidalGeodSolve.areaOf</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoidalGeodSolve-module.html#intersection3\"\n     >pygeodesy.ellipsoidalGeodSolve.intersection3</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoidalGeodSolve-module.html#intersections2\"\n     >pygeodesy.ellipsoidalGeodSolve.intersections2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoidalGeodSolve-module.html#isclockwise\"\n     >pygeodesy.ellipsoidalGeodSolve.isclockwise</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoidalGeodSolve-module.html#nearestOn\"\n     >pygeodesy.ellipsoidalGeodSolve.nearestOn</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoidalGeodSolve-module.html#perimeterOf\"\n     >pygeodesy.ellipsoidalGeodSolve.perimeterOf</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoidalKarney-module.html#areaOf\"\n     >pygeodesy.ellipsoidalKarney.areaOf</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoidalKarney-module.html#intersection3\"\n     >pygeodesy.ellipsoidalKarney.intersection3</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoidalKarney-module.html#intersections2\"\n     >pygeodesy.ellipsoidalKarney.intersections2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoidalKarney-module.html#isclockwise\"\n     >pygeodesy.ellipsoidalKarney.isclockwise</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoidalKarney-module.html#nearestOn\"\n     >pygeodesy.ellipsoidalKarney.nearestOn</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoidalKarney-module.html#perimeterOf\"\n     >pygeodesy.ellipsoidalKarney.perimeterOf</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoidalNvector-module.html#meanOf\"\n     >pygeodesy.ellipsoidalNvector.meanOf</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoidalNvector-module.html#sumOf\"\n     >pygeodesy.ellipsoidalNvector.sumOf</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoidalNvector-module.html#toNed\"\n     >pygeodesy.ellipsoidalNvector.toNed</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoidalVincenty-module.html#areaOf\"\n     >pygeodesy.ellipsoidalVincenty.areaOf</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoidalVincenty-module.html#intersection3\"\n     >pygeodesy.ellipsoidalVincenty.intersection3</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoidalVincenty-module.html#intersections2\"\n     >pygeodesy.ellipsoidalVincenty.intersections2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoidalVincenty-module.html#nearestOn\"\n     >pygeodesy.ellipsoidalVincenty.nearestOn</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoidalVincenty-module.html#perimeterOf\"\n     >pygeodesy.ellipsoidalVincenty.perimeterOf</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#a_b2e\"\n     >pygeodesy.ellipsoids.a_b2e</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#a_b2e2\"\n     >pygeodesy.ellipsoids.a_b2e2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#a_b2e22\"\n     >pygeodesy.ellipsoids.a_b2e22</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#a_b2e32\"\n     >pygeodesy.ellipsoids.a_b2e32</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#a_b2f\"\n     >pygeodesy.ellipsoids.a_b2f</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#a_b2f2\"\n     >pygeodesy.ellipsoids.a_b2f2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#a_b2f_\"\n     >pygeodesy.ellipsoids.a_b2f_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#a_b2n\"\n     >pygeodesy.ellipsoids.a_b2n</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#a_f2b\"\n     >pygeodesy.ellipsoids.a_f2b</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#a_f_2b\"\n     >pygeodesy.ellipsoids.a_f_2b</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#b_f2a\"\n     >pygeodesy.ellipsoids.b_f2a</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#b_f_2a\"\n     >pygeodesy.ellipsoids.b_f_2a</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#e22f\"\n     >pygeodesy.ellipsoids.e22f</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#e2f\"\n     >pygeodesy.ellipsoids.e2f</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#f2e2\"\n     >pygeodesy.ellipsoids.f2e2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#f2e22\"\n     >pygeodesy.ellipsoids.f2e22</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#f2e32\"\n     >pygeodesy.ellipsoids.f2e32</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#f2f2\"\n     >pygeodesy.ellipsoids.f2f2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#f2f_\"\n     >pygeodesy.ellipsoids.f2f_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#f2n\"\n     >pygeodesy.ellipsoids.f2n</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#f_2f\"\n     >pygeodesy.ellipsoids.f_2f</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#n2e2\"\n     >pygeodesy.ellipsoids.n2e2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#n2f\"\n     >pygeodesy.ellipsoids.n2f</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#n2f_\"\n     >pygeodesy.ellipsoids.n2f_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.epsg-module.html#decode2\"\n     >pygeodesy.epsg.decode2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.epsg-module.html#encode\"\n     >pygeodesy.epsg.encode</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.errors-module.html#crosserrors\"\n     >pygeodesy.errors.crosserrors</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.errors-module.html#exception_chaining\"\n     >pygeodesy.errors.exception_chaining</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.errors-module.html#isError\"\n     >pygeodesy.errors.isError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.errors-module.html#limiterrors\"\n     >pygeodesy.errors.limiterrors</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.errors-module.html#rangerrors\"\n     >pygeodesy.errors.rangerrors</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.etm-module.html#parseETM5\"\n     >pygeodesy.etm.parseETM5</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.etm-module.html#toEtm8\"\n     >pygeodesy.etm.toEtm8</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fmath-module.html#bqrt\"\n     >pygeodesy.fmath.bqrt</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fmath-module.html#cbrt\"\n     >pygeodesy.fmath.cbrt</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fmath-module.html#cbrt2\"\n     >pygeodesy.fmath.cbrt2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fmath-module.html#euclid\"\n     >pygeodesy.fmath.euclid</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fmath-module.html#euclid_\"\n     >pygeodesy.fmath.euclid_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fmath-module.html#f2mul_\"\n     >pygeodesy.fmath.f2mul_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fmath-module.html#facos1\"\n     >pygeodesy.fmath.facos1</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fmath-module.html#fasin1\"\n     >pygeodesy.fmath.fasin1</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fmath-module.html#fatan\"\n     >pygeodesy.fmath.fatan</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fmath-module.html#fatan1\"\n     >pygeodesy.fmath.fatan1</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fmath-module.html#fatan2\"\n     >pygeodesy.fmath.fatan2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fmath-module.html#favg\"\n     >pygeodesy.fmath.favg</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fmath-module.html#fdot\"\n     >pygeodesy.fmath.fdot</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fmath-module.html#fdot3\"\n     >pygeodesy.fmath.fdot3</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fmath-module.html#fdot_\"\n     >pygeodesy.fmath.fdot_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fmath-module.html#fhorner\"\n     >pygeodesy.fmath.fhorner</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fmath-module.html#fidw\"\n     >pygeodesy.fmath.fidw</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fmath-module.html#fma\"\n     >pygeodesy.fmath.fma</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fmath-module.html#fmean\"\n     >pygeodesy.fmath.fmean</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fmath-module.html#fmean_\"\n     >pygeodesy.fmath.fmean_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fmath-module.html#fpolynomial\"\n     >pygeodesy.fmath.fpolynomial</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fmath-module.html#fpowers\"\n     >pygeodesy.fmath.fpowers</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fmath-module.html#fprod\"\n     >pygeodesy.fmath.fprod</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fmath-module.html#frandoms\"\n     >pygeodesy.fmath.frandoms</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fmath-module.html#frange\"\n     >pygeodesy.fmath.frange</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fmath-module.html#freduce\"\n     >pygeodesy.fmath.freduce</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fmath-module.html#fremainder\"\n     >pygeodesy.fmath.fremainder</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fmath-module.html#hypot\"\n     >pygeodesy.fmath.hypot</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fmath-module.html#hypot1\"\n     >pygeodesy.fmath.hypot1</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fmath-module.html#hypot2\"\n     >pygeodesy.fmath.hypot2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fmath-module.html#hypot2_\"\n     >pygeodesy.fmath.hypot2_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fmath-module.html#hypot_\"\n     >pygeodesy.fmath.hypot_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fmath-module.html#norm2\"\n     >pygeodesy.fmath.norm2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fmath-module.html#norm_\"\n     >pygeodesy.fmath.norm_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fmath-module.html#polar2\"\n     >pygeodesy.fmath.polar2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fmath-module.html#polar2d\"\n     >pygeodesy.fmath.polar2d</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fmath-module.html#sqrt0\"\n     >pygeodesy.fmath.sqrt0</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fmath-module.html#sqrt3\"\n     >pygeodesy.fmath.sqrt3</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fmath-module.html#sqrt_a\"\n     >pygeodesy.fmath.sqrt_a</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fmath-module.html#zcrt\"\n     >pygeodesy.fmath.zcrt</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fmath-module.html#zqrt\"\n     >pygeodesy.fmath.zqrt</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.formy-module.html#angle2chord\"\n     >pygeodesy.formy.angle2chord</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.formy-module.html#antipode\"\n     >pygeodesy.formy.antipode</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.formy-module.html#antipode_\"\n     >pygeodesy.formy.antipode_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.formy-module.html#bearing\"\n     >pygeodesy.formy.bearing</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.formy-module.html#bearing_\"\n     >pygeodesy.formy.bearing_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.formy-module.html#chord2angle\"\n     >pygeodesy.formy.chord2angle</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.formy-module.html#compassAngle\"\n     >pygeodesy.formy.compassAngle</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.formy-module.html#cosineLaw\"\n     >pygeodesy.formy.cosineLaw</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.formy-module.html#cosineLaw_\"\n     >pygeodesy.formy.cosineLaw_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.formy-module.html#equirectangular\"\n     >pygeodesy.formy.equirectangular</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.formy-module.html#equirectangular4\"\n     >pygeodesy.formy.equirectangular4</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.formy-module.html#euclidean\"\n     >pygeodesy.formy.euclidean</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.formy-module.html#euclidean_\"\n     >pygeodesy.formy.euclidean_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.formy-module.html#excessAbc_\"\n     >pygeodesy.formy.excessAbc_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.formy-module.html#excessCagnoli_\"\n     >pygeodesy.formy.excessCagnoli_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.formy-module.html#excessGirard_\"\n     >pygeodesy.formy.excessGirard_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.formy-module.html#excessKarney\"\n     >pygeodesy.formy.excessKarney</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.formy-module.html#excessKarney_\"\n     >pygeodesy.formy.excessKarney_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.formy-module.html#excessLHuilier_\"\n     >pygeodesy.formy.excessLHuilier_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.formy-module.html#excessQuad\"\n     >pygeodesy.formy.excessQuad</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.formy-module.html#excessQuad_\"\n     >pygeodesy.formy.excessQuad_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.formy-module.html#flatLocal\"\n     >pygeodesy.formy.flatLocal</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.formy-module.html#flatLocal_\"\n     >pygeodesy.formy.flatLocal_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.formy-module.html#flatPolar\"\n     >pygeodesy.formy.flatPolar</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.formy-module.html#flatPolar_\"\n     >pygeodesy.formy.flatPolar_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.formy-module.html#hartzell\"\n     >pygeodesy.formy.hartzell</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.formy-module.html#haversine\"\n     >pygeodesy.formy.haversine</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.formy-module.html#haversine_\"\n     >pygeodesy.formy.haversine_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.formy-module.html#heightOf\"\n     >pygeodesy.formy.heightOf</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.formy-module.html#heightOrthometric\"\n     >pygeodesy.formy.heightOrthometric</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.formy-module.html#horizon\"\n     >pygeodesy.formy.horizon</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.formy-module.html#intersection2\"\n     >pygeodesy.formy.intersection2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.formy-module.html#intersections2\"\n     >pygeodesy.formy.intersections2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.formy-module.html#isantipode\"\n     >pygeodesy.formy.isantipode</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.formy-module.html#isantipode_\"\n     >pygeodesy.formy.isantipode_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.formy-module.html#isnormal\"\n     >pygeodesy.formy.isnormal</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.formy-module.html#isnormal_\"\n     >pygeodesy.formy.isnormal_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.formy-module.html#normal\"\n     >pygeodesy.formy.normal</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.formy-module.html#normal_\"\n     >pygeodesy.formy.normal_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.formy-module.html#opposing\"\n     >pygeodesy.formy.opposing</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.formy-module.html#opposing_\"\n     >pygeodesy.formy.opposing_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.formy-module.html#radical2\"\n     >pygeodesy.formy.radical2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.formy-module.html#thomas\"\n     >pygeodesy.formy.thomas</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.formy-module.html#thomas_\"\n     >pygeodesy.formy.thomas_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.formy-module.html#vincentys\"\n     >pygeodesy.formy.vincentys</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.formy-module.html#vincentys_\"\n     >pygeodesy.formy.vincentys_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.frechet-module.html#frechet_\"\n     >pygeodesy.frechet.frechet_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fsums-module.html#f2product\"\n     >pygeodesy.fsums.f2product</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fsums-module.html#fsum\"\n     >pygeodesy.fsums.fsum</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fsums-module.html#fsum1\"\n     >pygeodesy.fsums.fsum1</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fsums-module.html#fsum1_\"\n     >pygeodesy.fsums.fsum1_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fsums-module.html#fsum1f_\"\n     >pygeodesy.fsums.fsum1f_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fsums-module.html#fsum_\"\n     >pygeodesy.fsums.fsum_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fsums-module.html#fsumf_\"\n     >pygeodesy.fsums.fsumf_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fsums-module.html#nonfiniterrors\"\n     >pygeodesy.fsums.nonfiniterrors</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.gars-module.html#decode3\"\n     >pygeodesy.gars.decode3</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.gars-module.html#encode\"\n     >pygeodesy.gars.encode</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.gars-module.html#precision\"\n     >pygeodesy.gars.precision</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.gars-module.html#resolution\"\n     >pygeodesy.gars.resolution</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geodesicw-module.html#Geodesic_WGS84\"\n     >pygeodesy.geodesicw.Geodesic_WGS84</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geohash-module.html#bounds\"\n     >pygeodesy.geohash.bounds</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geohash-module.html#decode\"\n     >pygeodesy.geohash.decode</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geohash-module.html#decode2\"\n     >pygeodesy.geohash.decode2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geohash-module.html#decode_error\"\n     >pygeodesy.geohash.decode_error</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geohash-module.html#decode_error2\"\n     >pygeodesy.geohash.decode_error2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geohash-module.html#distance_\"\n     >pygeodesy.geohash.distance_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geohash-module.html#encode\"\n     >pygeodesy.geohash.encode</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geohash-module.html#equirectangular4\"\n     >pygeodesy.geohash.equirectangular4</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geohash-module.html#euclidean_\"\n     >pygeodesy.geohash.euclidean_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geohash-module.html#haversine_\"\n     >pygeodesy.geohash.haversine_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geohash-module.html#neighbors\"\n     >pygeodesy.geohash.neighbors</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geohash-module.html#precision\"\n     >pygeodesy.geohash.precision</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geohash-module.html#resolution2\"\n     >pygeodesy.geohash.resolution2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geohash-module.html#sizes\"\n     >pygeodesy.geohash.sizes</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geohash-module.html#sizes3\"\n     >pygeodesy.geohash.sizes3</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geohash-module.html#vincentys_\"\n     >pygeodesy.geohash.vincentys_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geoids-module.html#egmGeoidHeights\"\n     >pygeodesy.geoids.egmGeoidHeights</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.hausdorff-module.html#hausdorff_\"\n     >pygeodesy.hausdorff.hausdorff_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.hausdorff-module.html#randomrangenerator\"\n     >pygeodesy.hausdorff.randomrangenerator</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.internals-module.html#machine\"\n     >pygeodesy.internals.machine</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.internals-module.html#print_\"\n     >pygeodesy.internals.print_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.internals-module.html#printf\"\n     >pygeodesy.internals.printf</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.internals-module.html#typename\"\n     >pygeodesy.internals.typename</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.iters-module.html#isNumpy2\"\n     >pygeodesy.iters.isNumpy2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.iters-module.html#isPoints2\"\n     >pygeodesy.iters.isPoints2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.iters-module.html#isTuple2\"\n     >pygeodesy.iters.isTuple2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.iters-module.html#iterNumpy2\"\n     >pygeodesy.iters.iterNumpy2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.iters-module.html#iterNumpy2over\"\n     >pygeodesy.iters.iterNumpy2over</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.iters-module.html#points2\"\n     >pygeodesy.iters.points2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.latlonBase-module.html#latlon2n_xyz\"\n     >pygeodesy.latlonBase.latlon2n_xyz</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.latlonBase-module.html#philam2n_xyz\"\n     >pygeodesy.latlonBase.philam2n_xyz</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.lcc-module.html#toLcc\"\n     >pygeodesy.lcc.toLcc</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ltp-module.html#tyr3d\"\n     >pygeodesy.ltp.tyr3d</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.mgrs-module.html#parseMGRS\"\n     >pygeodesy.mgrs.parseMGRS</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.mgrs-module.html#toMgrs\"\n     >pygeodesy.mgrs.toMgrs</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.named-module.html#callername\"\n     >pygeodesy.named.callername</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.named-module.html#classname\"\n     >pygeodesy.named.classname</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.named-module.html#classnaming\"\n     >pygeodesy.named.classnaming</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.named-module.html#modulename\"\n     >pygeodesy.named.modulename</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.named-module.html#nameof\"\n     >pygeodesy.named.nameof</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.named-module.html#notImplemented\"\n     >pygeodesy.named.notImplemented</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.named-module.html#notOverloaded\"\n     >pygeodesy.named.notOverloaded</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.nvectorBase-module.html#n_xyz2latlon\"\n     >pygeodesy.nvectorBase.n_xyz2latlon</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.nvectorBase-module.html#n_xyz2philam\"\n     >pygeodesy.nvectorBase.n_xyz2philam</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.nvectorBase-module.html#sumOf\"\n     >pygeodesy.nvectorBase.sumOf</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.osgr-module.html#parseOSGR\"\n     >pygeodesy.osgr.parseOSGR</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.osgr-module.html#toOsgr\"\n     >pygeodesy.osgr.toOsgr</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.points-module.html#areaOf\"\n     >pygeodesy.points.areaOf</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.points-module.html#boundsOf\"\n     >pygeodesy.points.boundsOf</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.points-module.html#centroidOf\"\n     >pygeodesy.points.centroidOf</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.points-module.html#fractional\"\n     >pygeodesy.points.fractional</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.points-module.html#isclockwise\"\n     >pygeodesy.points.isclockwise</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.points-module.html#isconvex\"\n     >pygeodesy.points.isconvex</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.points-module.html#isconvex_\"\n     >pygeodesy.points.isconvex_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.points-module.html#isenclosedBy\"\n     >pygeodesy.points.isenclosedBy</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.points-module.html#ispolar\"\n     >pygeodesy.points.ispolar</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.points-module.html#luneOf\"\n     >pygeodesy.points.luneOf</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.points-module.html#nearestOn5\"\n     >pygeodesy.points.nearestOn5</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.points-module.html#perimeterOf\"\n     >pygeodesy.points.perimeterOf</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.points-module.html#quadOf\"\n     >pygeodesy.points.quadOf</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.props-module.html#deprecated_Property_RO\"\n     >pygeodesy.props.deprecated_Property_RO</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.props-module.html#deprecated_class\"\n     >pygeodesy.props.deprecated_class</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.props-module.html#deprecated_function\"\n     >pygeodesy.props.deprecated_function</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.props-module.html#deprecated_method\"\n     >pygeodesy.props.deprecated_method</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.props-module.html#deprecated_property_RO\"\n     >pygeodesy.props.deprecated_property_RO</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.props-module.html#property_doc_\"\n     >pygeodesy.props.property_doc_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.resections-module.html#cassini\"\n     >pygeodesy.resections.cassini</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.resections-module.html#collins5\"\n     >pygeodesy.resections.collins5</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.resections-module.html#pierlot\"\n     >pygeodesy.resections.pierlot</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.resections-module.html#pierlotx\"\n     >pygeodesy.resections.pierlotx</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.resections-module.html#snellius3\"\n     >pygeodesy.resections.snellius3</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.resections-module.html#tienstra7\"\n     >pygeodesy.resections.tienstra7</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.resections-module.html#triAngle\"\n     >pygeodesy.resections.triAngle</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.resections-module.html#triAngle5\"\n     >pygeodesy.resections.triAngle5</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.resections-module.html#triArea\"\n     >pygeodesy.resections.triArea</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.resections-module.html#triSide\"\n     >pygeodesy.resections.triSide</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.resections-module.html#triSide2\"\n     >pygeodesy.resections.triSide2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.resections-module.html#triSide4\"\n     >pygeodesy.resections.triSide4</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.resections-module.html#wildberger3\"\n     >pygeodesy.resections.wildberger3</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.simplify-module.html#simplify1\"\n     >pygeodesy.simplify.simplify1</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.simplify-module.html#simplifyRDP\"\n     >pygeodesy.simplify.simplifyRDP</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.simplify-module.html#simplifyRW\"\n     >pygeodesy.simplify.simplifyRW</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.simplify-module.html#simplifyVW\"\n     >pygeodesy.simplify.simplifyVW</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.sphericalNvector-module.html#areaOf\"\n     >pygeodesy.sphericalNvector.areaOf</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.sphericalNvector-module.html#intersecant2\"\n     >pygeodesy.sphericalNvector.intersecant2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.sphericalNvector-module.html#intersection\"\n     >pygeodesy.sphericalNvector.intersection</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.sphericalNvector-module.html#intersection2\"\n     >pygeodesy.sphericalNvector.intersection2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.sphericalNvector-module.html#meanOf\"\n     >pygeodesy.sphericalNvector.meanOf</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.sphericalNvector-module.html#nearestOn2\"\n     >pygeodesy.sphericalNvector.nearestOn2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.sphericalNvector-module.html#nearestOn3\"\n     >pygeodesy.sphericalNvector.nearestOn3</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.sphericalNvector-module.html#perimeterOf\"\n     >pygeodesy.sphericalNvector.perimeterOf</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.sphericalNvector-module.html#sumOf\"\n     >pygeodesy.sphericalNvector.sumOf</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.sphericalNvector-module.html#triangulate\"\n     >pygeodesy.sphericalNvector.triangulate</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.sphericalNvector-module.html#trilaterate\"\n     >pygeodesy.sphericalNvector.trilaterate</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.sphericalTrigonometry-module.html#areaOf\"\n     >pygeodesy.sphericalTrigonometry.areaOf</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.sphericalTrigonometry-module.html#intersecant2\"\n     >pygeodesy.sphericalTrigonometry.intersecant2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.sphericalTrigonometry-module.html#intersection\"\n     >pygeodesy.sphericalTrigonometry.intersection</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.sphericalTrigonometry-module.html#intersections2\"\n     >pygeodesy.sphericalTrigonometry.intersections2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.sphericalTrigonometry-module.html#isPoleEnclosedBy\"\n     >pygeodesy.sphericalTrigonometry.isPoleEnclosedBy</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.sphericalTrigonometry-module.html#meanOf\"\n     >pygeodesy.sphericalTrigonometry.meanOf</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.sphericalTrigonometry-module.html#nearestOn2\"\n     >pygeodesy.sphericalTrigonometry.nearestOn2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.sphericalTrigonometry-module.html#nearestOn3\"\n     >pygeodesy.sphericalTrigonometry.nearestOn3</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.sphericalTrigonometry-module.html#perimeterOf\"\n     >pygeodesy.sphericalTrigonometry.perimeterOf</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.sphericalTrigonometry-module.html#triangle7\"\n     >pygeodesy.sphericalTrigonometry.triangle7</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.sphericalTrigonometry-module.html#triangle8_\"\n     >pygeodesy.sphericalTrigonometry.triangle8_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.streprs-module.html#anstr\"\n     >pygeodesy.streprs.anstr</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.streprs-module.html#attrs\"\n     >pygeodesy.streprs.attrs</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.streprs-module.html#enstr2\"\n     >pygeodesy.streprs.enstr2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.streprs-module.html#fstr\"\n     >pygeodesy.streprs.fstr</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.streprs-module.html#fstrzs\"\n     >pygeodesy.streprs.fstrzs</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.streprs-module.html#hstr\"\n     >pygeodesy.streprs.hstr</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.streprs-module.html#instr\"\n     >pygeodesy.streprs.instr</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.streprs-module.html#lrstrip\"\n     >pygeodesy.streprs.lrstrip</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.streprs-module.html#pairs\"\n     >pygeodesy.streprs.pairs</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.streprs-module.html#reprs\"\n     >pygeodesy.streprs.reprs</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.streprs-module.html#strs\"\n     >pygeodesy.streprs.strs</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.streprs-module.html#unstr\"\n     >pygeodesy.streprs.unstr</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.trf-module.html#date2epoch\"\n     >pygeodesy.trf.date2epoch</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.trf-module.html#epoch2date\"\n     >pygeodesy.trf.epoch2date</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.trf-module.html#trfTransform0\"\n     >pygeodesy.trf.trfTransform0</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.trf-module.html#trfTransforms\"\n     >pygeodesy.trf.trfTransforms</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.trf-module.html#trfXform\"\n     >pygeodesy.trf.trfXform</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ups-module.html#parseUPS5\"\n     >pygeodesy.ups.parseUPS5</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ups-module.html#toUps8\"\n     >pygeodesy.ups.toUps8</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ups-module.html#upsZoneBand5\"\n     >pygeodesy.ups.upsZoneBand5</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#NM2m\"\n     >pygeodesy.utily.NM2m</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#SM2m\"\n     >pygeodesy.utily.SM2m</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#SinCos2\"\n     >pygeodesy.utily.SinCos2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#acos1\"\n     >pygeodesy.utily.acos1</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#acre2ha\"\n     >pygeodesy.utily.acre2ha</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#acre2m2\"\n     >pygeodesy.utily.acre2m2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#agdf\"\n     >pygeodesy.utily.agdf</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#asin1\"\n     >pygeodesy.utily.asin1</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#atan1\"\n     >pygeodesy.utily.atan1</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#atan1d\"\n     >pygeodesy.utily.atan1d</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#atan2\"\n     >pygeodesy.utily.atan2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#atan2b\"\n     >pygeodesy.utily.atan2b</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#atan2d\"\n     >pygeodesy.utily.atan2d</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#atan2p\"\n     >pygeodesy.utily.atan2p</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#chain2m\"\n     >pygeodesy.utily.chain2m</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#circle4\"\n     >pygeodesy.utily.circle4</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#cot\"\n     >pygeodesy.utily.cot</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#cot_\"\n     >pygeodesy.utily.cot_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#cotd\"\n     >pygeodesy.utily.cotd</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#cotd_\"\n     >pygeodesy.utily.cotd_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#degrees\"\n     >pygeodesy.utily.degrees</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#degrees180\"\n     >pygeodesy.utily.degrees180</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#degrees2grades\"\n     >pygeodesy.utily.degrees2grades</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#degrees2m\"\n     >pygeodesy.utily.degrees2m</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#degrees360\"\n     >pygeodesy.utily.degrees360</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#degrees90\"\n     >pygeodesy.utily.degrees90</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#fathom2m\"\n     >pygeodesy.utily.fathom2m</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#ft2m\"\n     >pygeodesy.utily.ft2m</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#furlong2m\"\n     >pygeodesy.utily.furlong2m</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#gdf\"\n     >pygeodesy.utily.gdf</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#grades\"\n     >pygeodesy.utily.grades</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#grades2degrees\"\n     >pygeodesy.utily.grades2degrees</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#grades2radians\"\n     >pygeodesy.utily.grades2radians</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#grades400\"\n     >pygeodesy.utily.grades400</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#ha2acre\"\n     >pygeodesy.utily.ha2acre</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#ha2m2\"\n     >pygeodesy.utily.ha2m2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#hav\"\n     >pygeodesy.utily.hav</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#km2m\"\n     >pygeodesy.utily.km2m</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#m2NM\"\n     >pygeodesy.utily.m2NM</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#m2SM\"\n     >pygeodesy.utily.m2SM</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#m2acre\"\n     >pygeodesy.utily.m2acre</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#m2chain\"\n     >pygeodesy.utily.m2chain</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#m2degrees\"\n     >pygeodesy.utily.m2degrees</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#m2fathom\"\n     >pygeodesy.utily.m2fathom</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#m2ft\"\n     >pygeodesy.utily.m2ft</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#m2furlong\"\n     >pygeodesy.utily.m2furlong</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#m2ha\"\n     >pygeodesy.utily.m2ha</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#m2km\"\n     >pygeodesy.utily.m2km</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#m2radians\"\n     >pygeodesy.utily.m2radians</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#m2toise\"\n     >pygeodesy.utily.m2toise</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#m2yard\"\n     >pygeodesy.utily.m2yard</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#radians\"\n     >pygeodesy.utily.radians</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#radians2m\"\n     >pygeodesy.utily.radians2m</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#radiansPI\"\n     >pygeodesy.utily.radiansPI</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#radiansPI2\"\n     >pygeodesy.utily.radiansPI2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#radiansPI_2\"\n     >pygeodesy.utily.radiansPI_2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#sincos2\"\n     >pygeodesy.utily.sincos2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#sincos2_\"\n     >pygeodesy.utily.sincos2_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#sincos2d\"\n     >pygeodesy.utily.sincos2d</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#sincos2d_\"\n     >pygeodesy.utily.sincos2d_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#sincostan3\"\n     >pygeodesy.utily.sincostan3</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#sincostan3d\"\n     >pygeodesy.utily.sincostan3d</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#tan\"\n     >pygeodesy.utily.tan</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#tanPI_2_2\"\n     >pygeodesy.utily.tanPI_2_2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#tan_\"\n     >pygeodesy.utily.tan_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#tan_2\"\n     >pygeodesy.utily.tan_2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#tand\"\n     >pygeodesy.utily.tand</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#tand_\"\n     >pygeodesy.utily.tand_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#toise2m\"\n     >pygeodesy.utily.toise2m</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#truncate\"\n     >pygeodesy.utily.truncate</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#unroll180\"\n     >pygeodesy.utily.unroll180</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#unrollPI\"\n     >pygeodesy.utily.unrollPI</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#wrap180\"\n     >pygeodesy.utily.wrap180</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#wrap360\"\n     >pygeodesy.utily.wrap360</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#wrap90\"\n     >pygeodesy.utily.wrap90</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#wrapPI\"\n     >pygeodesy.utily.wrapPI</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#wrapPI2\"\n     >pygeodesy.utily.wrapPI2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#wrapPI_2\"\n     >pygeodesy.utily.wrapPI_2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#wrap_normal\"\n     >pygeodesy.utily.wrap_normal</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#yard2m\"\n     >pygeodesy.utily.yard2m</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utm-module.html#parseUTM5\"\n     >pygeodesy.utm.parseUTM5</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utm-module.html#toUtm8\"\n     >pygeodesy.utm.toUtm8</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utm-module.html#utmZoneBand5\"\n     >pygeodesy.utm.utmZoneBand5</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utmups-module.html#UtmUps\"\n     >pygeodesy.utmups.UtmUps</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utmups-module.html#parseUTMUPS5\"\n     >pygeodesy.utmups.parseUTMUPS5</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utmups-module.html#toUtmUps8\"\n     >pygeodesy.utmups.toUtmUps8</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utmups-module.html#utmupsValidate\"\n     >pygeodesy.utmups.utmupsValidate</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utmups-module.html#utmupsValidateOK\"\n     >pygeodesy.utmups.utmupsValidateOK</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utmups-module.html#utmupsZoneBand5\"\n     >pygeodesy.utmups.utmupsZoneBand5</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.vector2d-module.html#circin6\"\n     >pygeodesy.vector2d.circin6</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.vector2d-module.html#circum3\"\n     >pygeodesy.vector2d.circum3</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.vector2d-module.html#circum4\"\n     >pygeodesy.vector2d.circum4</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.vector2d-module.html#circum4_\"\n     >pygeodesy.vector2d.circum4_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.vector2d-module.html#meeus2\"\n     >pygeodesy.vector2d.meeus2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.vector2d-module.html#radii11\"\n     >pygeodesy.vector2d.radii11</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.vector2d-module.html#soddy4\"\n     >pygeodesy.vector2d.soddy4</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.vector2d-module.html#triaxum5\"\n     >pygeodesy.vector2d.triaxum5</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.vector2d-module.html#trilaterate2d2\"\n     >pygeodesy.vector2d.trilaterate2d2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.vector3d-module.html#intersection3d3\"\n     >pygeodesy.vector3d.intersection3d3</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.vector3d-module.html#intersections2\"\n     >pygeodesy.vector3d.intersections2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.vector3d-module.html#iscolinearWith\"\n     >pygeodesy.vector3d.iscolinearWith</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.vector3d-module.html#nearestOn\"\n     >pygeodesy.vector3d.nearestOn</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.vector3d-module.html#nearestOn6\"\n     >pygeodesy.vector3d.nearestOn6</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.vector3d-module.html#parse3d\"\n     >pygeodesy.vector3d.parse3d</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.vector3d-module.html#sumOf\"\n     >pygeodesy.vector3d.sumOf</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.vector3d-module.html#trilaterate3d2\"\n     >pygeodesy.vector3d.trilaterate3d2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.webmercator-module.html#parseWM\"\n     >pygeodesy.webmercator.parseWM</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.webmercator-module.html#toWm\"\n     >pygeodesy.webmercator.toWm</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.wgrs-module.html#decode3\"\n     >pygeodesy.wgrs.decode3</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.wgrs-module.html#decode5\"\n     >pygeodesy.wgrs.decode5</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.wgrs-module.html#encode\"\n     >pygeodesy.wgrs.encode</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.wgrs-module.html#precision\"\n     >pygeodesy.wgrs.precision</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.wgrs-module.html#resolution\"\n     >pygeodesy.wgrs.resolution</a><br />  <h2 class=\"toc\">All Variables</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy-module.html#Conics\"\n     >pygeodesy.Conics</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#DIG\"\n     >pygeodesy.DIG</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#Datums\"\n     >pygeodesy.Datums</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#EPS\"\n     >pygeodesy.EPS</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#EPS0\"\n     >pygeodesy.EPS0</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#EPS02\"\n     >pygeodesy.EPS02</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#EPS1\"\n     >pygeodesy.EPS1</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#EPS1_2\"\n     >pygeodesy.EPS1_2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#EPS2\"\n     >pygeodesy.EPS2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#EPS4\"\n     >pygeodesy.EPS4</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#EPS8\"\n     >pygeodesy.EPS8</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#EPS_2\"\n     >pygeodesy.EPS_2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#Ellipsoids\"\n     >pygeodesy.Ellipsoids</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#F_D\"\n     >pygeodesy.F_D</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#F_D60\"\n     >pygeodesy.F_D60</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#F_D60_\"\n     >pygeodesy.F_D60_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#F_D60__\"\n     >pygeodesy.F_D60__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#F_DEG\"\n     >pygeodesy.F_DEG</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#F_DEG_\"\n     >pygeodesy.F_DEG_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#F_DEG__\"\n     >pygeodesy.F_DEG__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#F_DM\"\n     >pygeodesy.F_DM</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#F_DMS\"\n     >pygeodesy.F_DMS</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#F_DMS_\"\n     >pygeodesy.F_DMS_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#F_DMS__\"\n     >pygeodesy.F_DMS__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#F_DM_\"\n     >pygeodesy.F_DM_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#F_DM__\"\n     >pygeodesy.F_DM__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#F_D_\"\n     >pygeodesy.F_D_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#F_D__\"\n     >pygeodesy.F_D__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#F_MIN\"\n     >pygeodesy.F_MIN</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#F_MIN_\"\n     >pygeodesy.F_MIN_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#F_MIN__\"\n     >pygeodesy.F_MIN__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#F_RAD\"\n     >pygeodesy.F_RAD</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#F_RAD_\"\n     >pygeodesy.F_RAD_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#F_RAD__\"\n     >pygeodesy.F_RAD__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#F_SEC\"\n     >pygeodesy.F_SEC</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#F_SEC_\"\n     >pygeodesy.F_SEC_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#F_SEC__\"\n     >pygeodesy.F_SEC__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#F__E\"\n     >pygeodesy.F__E</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#F__E_\"\n     >pygeodesy.F__E_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#F__E__\"\n     >pygeodesy.F__E__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#F__F\"\n     >pygeodesy.F__F</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#F__F_\"\n     >pygeodesy.F__F_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#F__F__\"\n     >pygeodesy.F__F__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#F__G\"\n     >pygeodesy.F__G</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#F__G_\"\n     >pygeodesy.F__G_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#F__G__\"\n     >pygeodesy.F__G__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#INF\"\n     >pygeodesy.INF</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#INT0\"\n     >pygeodesy.INT0</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#MANTIS\"\n     >pygeodesy.MANTIS</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#MANT_DIG\"\n     >pygeodesy.MANT_DIG</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#MAX\"\n     >pygeodesy.MAX</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#MAX_EXP\"\n     >pygeodesy.MAX_EXP</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#MIN\"\n     >pygeodesy.MIN</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#MIN_EXP\"\n     >pygeodesy.MIN_EXP</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#NAN\"\n     >pygeodesy.NAN</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#NEG0\"\n     >pygeodesy.NEG0</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#NINF\"\n     >pygeodesy.NINF</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#NN\"\n     >pygeodesy.NN</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#NorthPole\"\n     >pygeodesy.NorthPole</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#OK\"\n     >pygeodesy.OK</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#OVERFLOW\"\n     >pygeodesy.OVERFLOW</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#PI\"\n     >pygeodesy.PI</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#PI2\"\n     >pygeodesy.PI2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#PI3\"\n     >pygeodesy.PI3</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#PI3_2\"\n     >pygeodesy.PI3_2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#PI4\"\n     >pygeodesy.PI4</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#PI_2\"\n     >pygeodesy.PI_2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#PI_3\"\n     >pygeodesy.PI_3</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#PI_4\"\n     >pygeodesy.PI_4</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#PI_6\"\n     >pygeodesy.PI_6</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#R_FM\"\n     >pygeodesy.R_FM</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#R_GM\"\n     >pygeodesy.R_GM</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#R_KM\"\n     >pygeodesy.R_KM</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#R_M\"\n     >pygeodesy.R_M</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#R_MA\"\n     >pygeodesy.R_MA</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#R_MB\"\n     >pygeodesy.R_MB</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#R_NM\"\n     >pygeodesy.R_NM</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#R_QM\"\n     >pygeodesy.R_QM</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#R_SM\"\n     >pygeodesy.R_SM</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#R_VM\"\n     >pygeodesy.R_VM</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#RefFrames\"\n     >pygeodesy.RefFrames</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#S_DEG\"\n     >pygeodesy.S_DEG</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#S_DMS\"\n     >pygeodesy.S_DMS</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#S_MIN\"\n     >pygeodesy.S_MIN</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#S_RAD\"\n     >pygeodesy.S_RAD</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#S_SEC\"\n     >pygeodesy.S_SEC</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#S_SEP\"\n     >pygeodesy.S_SEP</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#SouthPole\"\n     >pygeodesy.SouthPole</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#Transforms\"\n     >pygeodesy.Transforms</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#Triaxial3s\"\n     >pygeodesy.Triaxial3s</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#Triaxials\"\n     >pygeodesy.Triaxials</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.albers-module.html#__all__\"\n     >pygeodesy.albers.__all__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.angles-module.html#__all__\"\n     >pygeodesy.angles.__all__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.auxilats-module.html#Aux\"\n     >pygeodesy.auxilats.Aux</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.azimuthal-module.html#__all__\"\n     >pygeodesy.azimuthal.__all__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.basics-module.html#__all__\"\n     >pygeodesy.basics.__all__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.booleans-module.html#__all__\"\n     >pygeodesy.booleans.__all__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.cartesianBase-module.html#__all__\"\n     >pygeodesy.cartesianBase.__all__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.clipy-module.html#__all__\"\n     >pygeodesy.clipy.__all__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.constants-module.html#DIG\"\n     >pygeodesy.constants.DIG</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.constants-module.html#EPS\"\n     >pygeodesy.constants.EPS</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.constants-module.html#EPS0\"\n     >pygeodesy.constants.EPS0</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.constants-module.html#EPS02\"\n     >pygeodesy.constants.EPS02</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.constants-module.html#EPS1\"\n     >pygeodesy.constants.EPS1</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.constants-module.html#EPS2\"\n     >pygeodesy.constants.EPS2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.constants-module.html#EPS4\"\n     >pygeodesy.constants.EPS4</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.constants-module.html#EPS8\"\n     >pygeodesy.constants.EPS8</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.constants-module.html#EPS_2\"\n     >pygeodesy.constants.EPS_2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.constants-module.html#INF\"\n     >pygeodesy.constants.INF</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.constants-module.html#INT0\"\n     >pygeodesy.constants.INT0</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.constants-module.html#MANT_DIG\"\n     >pygeodesy.constants.MANT_DIG</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.constants-module.html#MAX\"\n     >pygeodesy.constants.MAX</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.constants-module.html#MAX_EXP\"\n     >pygeodesy.constants.MAX_EXP</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.constants-module.html#MIN\"\n     >pygeodesy.constants.MIN</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.constants-module.html#MIN_EXP\"\n     >pygeodesy.constants.MIN_EXP</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.constants-module.html#NAN\"\n     >pygeodesy.constants.NAN</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.constants-module.html#NEG0\"\n     >pygeodesy.constants.NEG0</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.constants-module.html#NINF\"\n     >pygeodesy.constants.NINF</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.constants-module.html#OVERFLOW\"\n     >pygeodesy.constants.OVERFLOW</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.constants-module.html#PI\"\n     >pygeodesy.constants.PI</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.constants-module.html#PI2\"\n     >pygeodesy.constants.PI2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.constants-module.html#PI3\"\n     >pygeodesy.constants.PI3</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.constants-module.html#PI3_2\"\n     >pygeodesy.constants.PI3_2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.constants-module.html#PI4\"\n     >pygeodesy.constants.PI4</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.constants-module.html#PI_2\"\n     >pygeodesy.constants.PI_2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.constants-module.html#PI_3\"\n     >pygeodesy.constants.PI_3</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.constants-module.html#PI_4\"\n     >pygeodesy.constants.PI_4</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.constants-module.html#PI_6\"\n     >pygeodesy.constants.PI_6</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.constants-module.html#R_FM\"\n     >pygeodesy.constants.R_FM</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.constants-module.html#R_GM\"\n     >pygeodesy.constants.R_GM</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.constants-module.html#R_KM\"\n     >pygeodesy.constants.R_KM</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.constants-module.html#R_M\"\n     >pygeodesy.constants.R_M</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.constants-module.html#R_MA\"\n     >pygeodesy.constants.R_MA</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.constants-module.html#R_MB\"\n     >pygeodesy.constants.R_MB</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.constants-module.html#R_NM\"\n     >pygeodesy.constants.R_NM</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.constants-module.html#R_QM\"\n     >pygeodesy.constants.R_QM</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.constants-module.html#R_SM\"\n     >pygeodesy.constants.R_SM</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.constants-module.html#R_VM\"\n     >pygeodesy.constants.R_VM</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.constants-module.html#__all__\"\n     >pygeodesy.constants.__all__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.css-module.html#__all__\"\n     >pygeodesy.css.__all__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.datums-module.html#Datums\"\n     >pygeodesy.datums.Datums</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.datums-module.html#Datums.BD72\"\n     >pygeodesy.datums.Datums.BD72</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.datums-module.html#Datums.DHDN\"\n     >pygeodesy.datums.Datums.DHDN</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.datums-module.html#Datums.ED50\"\n     >pygeodesy.datums.Datums.ED50</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.datums-module.html#Datums.GDA2020\"\n     >pygeodesy.datums.Datums.GDA2020</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.datums-module.html#Datums.GRS80\"\n     >pygeodesy.datums.Datums.GRS80</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.datums-module.html#Datums.Irl1975\"\n     >pygeodesy.datums.Datums.Irl1975</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.datums-module.html#Datums.Krassovski1940\"\n     >pygeodesy.datums.Datums.Krassovski1940</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.datums-module.html#Datums.Krassowsky1940\"\n     >pygeodesy.datums.Datums.Krassowsky1940</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.datums-module.html#Datums.MGI\"\n     >pygeodesy.datums.Datums.MGI</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.datums-module.html#Datums.NAD27\"\n     >pygeodesy.datums.Datums.NAD27</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.datums-module.html#Datums.NAD83\"\n     >pygeodesy.datums.Datums.NAD83</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.datums-module.html#Datums.NTF\"\n     >pygeodesy.datums.Datums.NTF</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.datums-module.html#Datums.OSGB36\"\n     >pygeodesy.datums.Datums.OSGB36</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.datums-module.html#Datums.Potsdam\"\n     >pygeodesy.datums.Datums.Potsdam</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.datums-module.html#Datums.Sphere\"\n     >pygeodesy.datums.Datums.Sphere</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.datums-module.html#Datums.TokyoJapan\"\n     >pygeodesy.datums.Datums.TokyoJapan</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.datums-module.html#Datums.WGS72\"\n     >pygeodesy.datums.Datums.WGS72</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.datums-module.html#Datums.WGS84\"\n     >pygeodesy.datums.Datums.WGS84</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.datums-module.html#Transforms\"\n     >pygeodesy.datums.Transforms</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.datums-module.html#Transforms.BD72\"\n     >pygeodesy.datums.Transforms.BD72</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.datums-module.html#Transforms.Bessel1841\"\n     >pygeodesy.datums.Transforms.Bessel1841</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.datums-module.html#Transforms.Clarke1866\"\n     >pygeodesy.datums.Transforms.Clarke1866</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.datums-module.html#Transforms.DHDN\"\n     >pygeodesy.datums.Transforms.DHDN</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.datums-module.html#Transforms.DHDNE\"\n     >pygeodesy.datums.Transforms.DHDNE</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.datums-module.html#Transforms.DHDNW\"\n     >pygeodesy.datums.Transforms.DHDNW</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.datums-module.html#Transforms.ED50\"\n     >pygeodesy.datums.Transforms.ED50</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.datums-module.html#Transforms.Identity\"\n     >pygeodesy.datums.Transforms.Identity</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.datums-module.html#Transforms.Irl1965\"\n     >pygeodesy.datums.Transforms.Irl1965</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.datums-module.html#Transforms.Irl1975\"\n     >pygeodesy.datums.Transforms.Irl1975</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.datums-module.html#Transforms.Krassovski1940\"\n     >pygeodesy.datums.Transforms.Krassovski1940</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.datums-module.html#Transforms.Krassowsky1940\"\n     >pygeodesy.datums.Transforms.Krassowsky1940</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.datums-module.html#Transforms.MGI\"\n     >pygeodesy.datums.Transforms.MGI</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.datums-module.html#Transforms.NAD27\"\n     >pygeodesy.datums.Transforms.NAD27</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.datums-module.html#Transforms.NAD83\"\n     >pygeodesy.datums.Transforms.NAD83</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.datums-module.html#Transforms.NTF\"\n     >pygeodesy.datums.Transforms.NTF</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.datums-module.html#Transforms.OSGB36\"\n     >pygeodesy.datums.Transforms.OSGB36</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.datums-module.html#Transforms.TokyoJapan\"\n     >pygeodesy.datums.Transforms.TokyoJapan</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.datums-module.html#Transforms.WGS72\"\n     >pygeodesy.datums.Transforms.WGS72</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.datums-module.html#Transforms.WGS84\"\n     >pygeodesy.datums.Transforms.WGS84</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.datums-module.html#__all__\"\n     >pygeodesy.datums.__all__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated-module.html#Datums\"\n     >pygeodesy.deprecated.Datums</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated-module.html#EPS1_2\"\n     >pygeodesy.deprecated.EPS1_2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated-module.html#Ellipsoids\"\n     >pygeodesy.deprecated.Ellipsoids</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated-module.html#MANTIS\"\n     >pygeodesy.deprecated.MANTIS</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated-module.html#NorthPole\"\n     >pygeodesy.deprecated.NorthPole</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated-module.html#OK\"\n     >pygeodesy.deprecated.OK</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated-module.html#R_FM\"\n     >pygeodesy.deprecated.R_FM</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated-module.html#R_KM\"\n     >pygeodesy.deprecated.R_KM</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated-module.html#R_M\"\n     >pygeodesy.deprecated.R_M</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated-module.html#R_MA\"\n     >pygeodesy.deprecated.R_MA</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated-module.html#R_MB\"\n     >pygeodesy.deprecated.R_MB</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated-module.html#R_NM\"\n     >pygeodesy.deprecated.R_NM</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated-module.html#R_SM\"\n     >pygeodesy.deprecated.R_SM</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated-module.html#R_VM\"\n     >pygeodesy.deprecated.R_VM</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated-module.html#SouthPole\"\n     >pygeodesy.deprecated.SouthPole</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated-module.html#Transforms\"\n     >pygeodesy.deprecated.Transforms</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated-module.html#__getattr__\"\n     >pygeodesy.deprecated.__getattr__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated.bases-module.html#__all__\"\n     >pygeodesy.deprecated.bases.__all__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated.datum-module.html#Datums\"\n     >pygeodesy.deprecated.datum.Datums</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated.datum-module.html#Ellipsoids\"\n     >pygeodesy.deprecated.datum.Ellipsoids</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated.datum-module.html#R_FM\"\n     >pygeodesy.deprecated.datum.R_FM</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated.datum-module.html#R_KM\"\n     >pygeodesy.deprecated.datum.R_KM</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated.datum-module.html#R_M\"\n     >pygeodesy.deprecated.datum.R_M</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated.datum-module.html#R_MA\"\n     >pygeodesy.deprecated.datum.R_MA</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated.datum-module.html#R_MB\"\n     >pygeodesy.deprecated.datum.R_MB</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated.datum-module.html#R_NM\"\n     >pygeodesy.deprecated.datum.R_NM</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated.datum-module.html#R_SM\"\n     >pygeodesy.deprecated.datum.R_SM</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated.datum-module.html#R_VM\"\n     >pygeodesy.deprecated.datum.R_VM</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated.datum-module.html#Transforms\"\n     >pygeodesy.deprecated.datum.Transforms</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated.datum-module.html#__all__\"\n     >pygeodesy.deprecated.datum.__all__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated.nvector-module.html#NorthPole\"\n     >pygeodesy.deprecated.nvector.NorthPole</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated.nvector-module.html#SouthPole\"\n     >pygeodesy.deprecated.nvector.SouthPole</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated.nvector-module.html#__all__\"\n     >pygeodesy.deprecated.nvector.__all__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated.rhumbaux-module.html#__all__\"\n     >pygeodesy.deprecated.rhumbaux.__all__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated.rhumbsolve-module.html#__all__\"\n     >pygeodesy.deprecated.rhumbsolve.__all__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated.rhumbx-module.html#__all__\"\n     >pygeodesy.deprecated.rhumbx.__all__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.dms-module.html#F_D\"\n     >pygeodesy.dms.F_D</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.dms-module.html#F_D60\"\n     >pygeodesy.dms.F_D60</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.dms-module.html#F_D60_\"\n     >pygeodesy.dms.F_D60_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.dms-module.html#F_D60__\"\n     >pygeodesy.dms.F_D60__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.dms-module.html#F_DEG\"\n     >pygeodesy.dms.F_DEG</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.dms-module.html#F_DEG_\"\n     >pygeodesy.dms.F_DEG_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.dms-module.html#F_DEG__\"\n     >pygeodesy.dms.F_DEG__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.dms-module.html#F_DM\"\n     >pygeodesy.dms.F_DM</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.dms-module.html#F_DMS\"\n     >pygeodesy.dms.F_DMS</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.dms-module.html#F_DMS_\"\n     >pygeodesy.dms.F_DMS_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.dms-module.html#F_DMS__\"\n     >pygeodesy.dms.F_DMS__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.dms-module.html#F_DM_\"\n     >pygeodesy.dms.F_DM_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.dms-module.html#F_DM__\"\n     >pygeodesy.dms.F_DM__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.dms-module.html#F_D_\"\n     >pygeodesy.dms.F_D_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.dms-module.html#F_D__\"\n     >pygeodesy.dms.F_D__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.dms-module.html#F_MIN\"\n     >pygeodesy.dms.F_MIN</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.dms-module.html#F_MIN_\"\n     >pygeodesy.dms.F_MIN_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.dms-module.html#F_MIN__\"\n     >pygeodesy.dms.F_MIN__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.dms-module.html#F_RAD\"\n     >pygeodesy.dms.F_RAD</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.dms-module.html#F_RAD_\"\n     >pygeodesy.dms.F_RAD_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.dms-module.html#F_RAD__\"\n     >pygeodesy.dms.F_RAD__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.dms-module.html#F_SEC\"\n     >pygeodesy.dms.F_SEC</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.dms-module.html#F_SEC_\"\n     >pygeodesy.dms.F_SEC_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.dms-module.html#F_SEC__\"\n     >pygeodesy.dms.F_SEC__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.dms-module.html#F__E\"\n     >pygeodesy.dms.F__E</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.dms-module.html#F__E_\"\n     >pygeodesy.dms.F__E_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.dms-module.html#F__E__\"\n     >pygeodesy.dms.F__E__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.dms-module.html#F__F\"\n     >pygeodesy.dms.F__F</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.dms-module.html#F__F_\"\n     >pygeodesy.dms.F__F_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.dms-module.html#F__F__\"\n     >pygeodesy.dms.F__F__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.dms-module.html#F__G\"\n     >pygeodesy.dms.F__G</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.dms-module.html#F__G_\"\n     >pygeodesy.dms.F__G_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.dms-module.html#F__G__\"\n     >pygeodesy.dms.F__G__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.dms-module.html#S_DEG\"\n     >pygeodesy.dms.S_DEG</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.dms-module.html#S_DMS\"\n     >pygeodesy.dms.S_DMS</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.dms-module.html#S_MIN\"\n     >pygeodesy.dms.S_MIN</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.dms-module.html#S_RAD\"\n     >pygeodesy.dms.S_RAD</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.dms-module.html#S_SEC\"\n     >pygeodesy.dms.S_SEC</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.dms-module.html#S_SEP\"\n     >pygeodesy.dms.S_SEP</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.dms-module.html#__all__\"\n     >pygeodesy.dms.__all__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ecef-module.html#__all__\"\n     >pygeodesy.ecef.__all__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ecefLocals-module.html#__all__\"\n     >pygeodesy.ecefLocals.__all__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.elevations-module.html#__all__\"\n     >pygeodesy.elevations.__all__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipses-module.html#__all__\"\n     >pygeodesy.ellipses.__all__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoidalBase-module.html#__all__\"\n     >pygeodesy.ellipsoidalBase.__all__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoidalBaseDI-module.html#__all__\"\n     >pygeodesy.ellipsoidalBaseDI.__all__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoidalExact-module.html#__all__\"\n     >pygeodesy.ellipsoidalExact.__all__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoidalGeodSolve-module.html#__all__\"\n     >pygeodesy.ellipsoidalGeodSolve.__all__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoidalKarney-module.html#__all__\"\n     >pygeodesy.ellipsoidalKarney.__all__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoidalNvector-module.html#__all__\"\n     >pygeodesy.ellipsoidalNvector.__all__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoidalVincenty-module.html#__all__\"\n     >pygeodesy.ellipsoidalVincenty.__all__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#Ellipsoids\"\n     >pygeodesy.ellipsoids.Ellipsoids</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#Ellipsoids.ATS1977\"\n     >pygeodesy.ellipsoids.Ellipsoids.ATS1977</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#Ellipsoids.Airy1830\"\n     >pygeodesy.ellipsoids.Ellipsoids.Airy1830</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#Ellipsoids.AiryModified\"\n     >pygeodesy.ellipsoids.Ellipsoids.AiryModified</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#Ellipsoids.Australia1966\"\n     >pygeodesy.ellipsoids.Ellipsoids.Australia1966</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#Ellipsoids.Bessel1841\"\n     >pygeodesy.ellipsoids.Ellipsoids.Bessel1841</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#Ellipsoids.BesselModified\"\n     >pygeodesy.ellipsoids.Ellipsoids.BesselModified</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#Ellipsoids.CGCS2000\"\n     >pygeodesy.ellipsoids.Ellipsoids.CGCS2000</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#Ellipsoids.CPM1799\"\n     >pygeodesy.ellipsoids.Ellipsoids.CPM1799</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#Ellipsoids.Clarke1866\"\n     >pygeodesy.ellipsoids.Ellipsoids.Clarke1866</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#Ellipsoids.Clarke1880\"\n     >pygeodesy.ellipsoids.Ellipsoids.Clarke1880</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#Ellipsoids.Clarke1880IGN\"\n     >pygeodesy.ellipsoids.Ellipsoids.Clarke1880IGN</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#Ellipsoids.Clarke1880Mod\"\n     >pygeodesy.ellipsoids.Ellipsoids.Clarke1880Mod</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#Ellipsoids.Delambre1810\"\n     >pygeodesy.ellipsoids.Ellipsoids.Delambre1810</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#Ellipsoids.Engelis1985\"\n     >pygeodesy.ellipsoids.Ellipsoids.Engelis1985</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#Ellipsoids.Everest1969\"\n     >pygeodesy.ellipsoids.Ellipsoids.Everest1969</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#Ellipsoids.Everest1975\"\n     >pygeodesy.ellipsoids.Ellipsoids.Everest1975</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#Ellipsoids.Fisher1968\"\n     >pygeodesy.ellipsoids.Ellipsoids.Fisher1968</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#Ellipsoids.GEM10C\"\n     >pygeodesy.ellipsoids.Ellipsoids.GEM10C</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#Ellipsoids.GPES\"\n     >pygeodesy.ellipsoids.Ellipsoids.GPES</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#Ellipsoids.GRS67\"\n     >pygeodesy.ellipsoids.Ellipsoids.GRS67</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#Ellipsoids.GRS80\"\n     >pygeodesy.ellipsoids.Ellipsoids.GRS80</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#Ellipsoids.Helmert1906\"\n     >pygeodesy.ellipsoids.Ellipsoids.Helmert1906</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#Ellipsoids.IAU76\"\n     >pygeodesy.ellipsoids.Ellipsoids.IAU76</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#Ellipsoids.IERS1989\"\n     >pygeodesy.ellipsoids.Ellipsoids.IERS1989</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#Ellipsoids.IERS1992TOPEX\"\n     >pygeodesy.ellipsoids.Ellipsoids.IERS1992TOPEX</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#Ellipsoids.IERS2003\"\n     >pygeodesy.ellipsoids.Ellipsoids.IERS2003</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#Ellipsoids.Intl1924\"\n     >pygeodesy.ellipsoids.Ellipsoids.Intl1924</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#Ellipsoids.Intl1967\"\n     >pygeodesy.ellipsoids.Ellipsoids.Intl1967</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#Ellipsoids.Krassovski1940\"\n     >pygeodesy.ellipsoids.Ellipsoids.Krassovski1940</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#Ellipsoids.Krassowsky1940\"\n     >pygeodesy.ellipsoids.Ellipsoids.Krassowsky1940</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#Ellipsoids.Maupertuis1738\"\n     >pygeodesy.ellipsoids.Ellipsoids.Maupertuis1738</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#Ellipsoids.Mercury1960\"\n     >pygeodesy.ellipsoids.Ellipsoids.Mercury1960</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#Ellipsoids.Mercury1968Mod\"\n     >pygeodesy.ellipsoids.Ellipsoids.Mercury1968Mod</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#Ellipsoids.NWL1965\"\n     >pygeodesy.ellipsoids.Ellipsoids.NWL1965</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#Ellipsoids.OSU86F\"\n     >pygeodesy.ellipsoids.Ellipsoids.OSU86F</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#Ellipsoids.OSU91A\"\n     >pygeodesy.ellipsoids.Ellipsoids.OSU91A</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#Ellipsoids.PZ90\"\n     >pygeodesy.ellipsoids.Ellipsoids.PZ90</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#Ellipsoids.Plessis1817\"\n     >pygeodesy.ellipsoids.Ellipsoids.Plessis1817</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#Ellipsoids.SGS85\"\n     >pygeodesy.ellipsoids.Ellipsoids.SGS85</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#Ellipsoids.SoAmerican1969\"\n     >pygeodesy.ellipsoids.Ellipsoids.SoAmerican1969</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#Ellipsoids.Sphere\"\n     >pygeodesy.ellipsoids.Ellipsoids.Sphere</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#Ellipsoids.SphereAuthalic\"\n     >pygeodesy.ellipsoids.Ellipsoids.SphereAuthalic</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#Ellipsoids.SpherePopular\"\n     >pygeodesy.ellipsoids.Ellipsoids.SpherePopular</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#Ellipsoids.Struve1860\"\n     >pygeodesy.ellipsoids.Ellipsoids.Struve1860</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#Ellipsoids.WGS60\"\n     >pygeodesy.ellipsoids.Ellipsoids.WGS60</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#Ellipsoids.WGS66\"\n     >pygeodesy.ellipsoids.Ellipsoids.WGS66</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#Ellipsoids.WGS72\"\n     >pygeodesy.ellipsoids.Ellipsoids.WGS72</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#Ellipsoids.WGS84\"\n     >pygeodesy.ellipsoids.Ellipsoids.WGS84</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#Ellipsoids.WGS84_NGS\"\n     >pygeodesy.ellipsoids.Ellipsoids.WGS84_NGS</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#__all__\"\n     >pygeodesy.ellipsoids.__all__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.elliptic-module.html#__all__\"\n     >pygeodesy.elliptic.__all__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.epsg-module.html#__all__\"\n     >pygeodesy.epsg.__all__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.errors-module.html#__all__\"\n     >pygeodesy.errors.__all__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.etm-module.html#__all__\"\n     >pygeodesy.etm.__all__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fmath-module.html#__all__\"\n     >pygeodesy.fmath.__all__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.formy-module.html#__all__\"\n     >pygeodesy.formy.__all__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.frechet-module.html#__all__\"\n     >pygeodesy.frechet.__all__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fstats-module.html#__all__\"\n     >pygeodesy.fstats.__all__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fsums-module.html#__all__\"\n     >pygeodesy.fsums.__all__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.gars-module.html#__all__\"\n     >pygeodesy.gars.__all__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geod3solve-module.html#__all__\"\n     >pygeodesy.geod3solve.__all__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geodesici-module.html#__all__\"\n     >pygeodesy.geodesici.__all__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geodesici-module.html#x\"\n     >pygeodesy.geodesici.x</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geodesicw-module.html#__all__\"\n     >pygeodesy.geodesicw.__all__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geodsolve-module.html#__all__\"\n     >pygeodesy.geodsolve.__all__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geohash-module.html#__all__\"\n     >pygeodesy.geohash.__all__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geoids-module.html#__all__\"\n     >pygeodesy.geoids.__all__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geoids-module.html#geoids\"\n     >pygeodesy.geoids.geoids</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.hausdorff-module.html#__all__\"\n     >pygeodesy.hausdorff.__all__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.heights-module.html#__all__\"\n     >pygeodesy.heights.__all__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.interns-module.html#NN\"\n     >pygeodesy.interns.NN</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#isLazy\"\n     >pygeodesy.isLazy</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.iters-module.html#__all__\"\n     >pygeodesy.iters.__all__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.karney-module.html#__all__\"\n     >pygeodesy.karney.__all__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ktm-module.html#__all__\"\n     >pygeodesy.ktm.__all__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.latlonBase-module.html#__all__\"\n     >pygeodesy.latlonBase.__all__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.lazily-module.html#isLazy\"\n     >pygeodesy.lazily.isLazy</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.lcc-module.html#Conics\"\n     >pygeodesy.lcc.Conics</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.lcc-module.html#Conics.Be08Lb\"\n     >pygeodesy.lcc.Conics.Be08Lb</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.lcc-module.html#Conics.Be72Lb\"\n     >pygeodesy.lcc.Conics.Be72Lb</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.lcc-module.html#Conics.Fr93Lb\"\n     >pygeodesy.lcc.Conics.Fr93Lb</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.lcc-module.html#Conics.MaNLb\"\n     >pygeodesy.lcc.Conics.MaNLb</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.lcc-module.html#Conics.MxLb\"\n     >pygeodesy.lcc.Conics.MxLb</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.lcc-module.html#Conics.PyT_Lb\"\n     >pygeodesy.lcc.Conics.PyT_Lb</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.lcc-module.html#Conics.USA_Lb\"\n     >pygeodesy.lcc.Conics.USA_Lb</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.lcc-module.html#Conics.WRF_Lb\"\n     >pygeodesy.lcc.Conics.WRF_Lb</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.lcc-module.html#__all__\"\n     >pygeodesy.lcc.__all__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ltp-module.html#__all__\"\n     >pygeodesy.ltp.__all__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ltpTuples-module.html#__all__\"\n     >pygeodesy.ltpTuples.__all__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.mgrs-module.html#__all__\"\n     >pygeodesy.mgrs.__all__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.named-module.html#__all__\"\n     >pygeodesy.named.__all__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.namedTuples-module.html#__all__\"\n     >pygeodesy.namedTuples.__all__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.nvectorBase-module.html#NorthPole\"\n     >pygeodesy.nvectorBase.NorthPole</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.nvectorBase-module.html#SouthPole\"\n     >pygeodesy.nvectorBase.SouthPole</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.nvectorBase-module.html#__all__\"\n     >pygeodesy.nvectorBase.__all__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.osgr-module.html#D\"\n     >pygeodesy.osgr.D</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.osgr-module.html#__all__\"\n     >pygeodesy.osgr.__all__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.osgr-module.html#i\"\n     >pygeodesy.osgr.i</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.osgr-module.html#t\"\n     >pygeodesy.osgr.t</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.osgr-module.html#t1\"\n     >pygeodesy.osgr.t1</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.osgr-module.html#t2\"\n     >pygeodesy.osgr.t2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.points-module.html#__all__\"\n     >pygeodesy.points.__all__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.props-module.html#__all__\"\n     >pygeodesy.props.__all__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#pygeodesy_abspath\"\n     >pygeodesy.pygeodesy_abspath</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.resections-module.html#__all__\"\n     >pygeodesy.resections.__all__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.rhumb-module.html#__all__\"\n     >pygeodesy.rhumb.__all__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.rhumb-module.html#__getattr__\"\n     >pygeodesy.rhumb.__getattr__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.simplify-module.html#__all__\"\n     >pygeodesy.simplify.__all__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.solveBase-module.html#__all__\"\n     >pygeodesy.solveBase.__all__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.sphericalBase-module.html#__all__\"\n     >pygeodesy.sphericalBase.__all__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.sphericalNvector-module.html#__all__\"\n     >pygeodesy.sphericalNvector.__all__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.sphericalTrigonometry-module.html#__all__\"\n     >pygeodesy.sphericalTrigonometry.__all__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.streprs-module.html#__all__\"\n     >pygeodesy.streprs.__all__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.trf-module.html#RefFrames\"\n     >pygeodesy.trf.RefFrames</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.trf-module.html#RefFrames.ETRF2000\"\n     >pygeodesy.trf.RefFrames.ETRF2000</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.trf-module.html#RefFrames.ETRF2005\"\n     >pygeodesy.trf.RefFrames.ETRF2005</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.trf-module.html#RefFrames.ETRF2008\"\n     >pygeodesy.trf.RefFrames.ETRF2008</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.trf-module.html#RefFrames.ETRF2014\"\n     >pygeodesy.trf.RefFrames.ETRF2014</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.trf-module.html#RefFrames.ETRF2020\"\n     >pygeodesy.trf.RefFrames.ETRF2020</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.trf-module.html#RefFrames.ETRF88\"\n     >pygeodesy.trf.RefFrames.ETRF88</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.trf-module.html#RefFrames.ETRF89\"\n     >pygeodesy.trf.RefFrames.ETRF89</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.trf-module.html#RefFrames.ETRF90\"\n     >pygeodesy.trf.RefFrames.ETRF90</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.trf-module.html#RefFrames.ETRF91\"\n     >pygeodesy.trf.RefFrames.ETRF91</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.trf-module.html#RefFrames.ETRF92\"\n     >pygeodesy.trf.RefFrames.ETRF92</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.trf-module.html#RefFrames.ETRF93\"\n     >pygeodesy.trf.RefFrames.ETRF93</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.trf-module.html#RefFrames.ETRF94\"\n     >pygeodesy.trf.RefFrames.ETRF94</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.trf-module.html#RefFrames.ETRF96\"\n     >pygeodesy.trf.RefFrames.ETRF96</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.trf-module.html#RefFrames.ETRF97\"\n     >pygeodesy.trf.RefFrames.ETRF97</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.trf-module.html#RefFrames.GDA2020\"\n     >pygeodesy.trf.RefFrames.GDA2020</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.trf-module.html#RefFrames.GDA94\"\n     >pygeodesy.trf.RefFrames.GDA94</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.trf-module.html#RefFrames.ITRF2000\"\n     >pygeodesy.trf.RefFrames.ITRF2000</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.trf-module.html#RefFrames.ITRF2005\"\n     >pygeodesy.trf.RefFrames.ITRF2005</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.trf-module.html#RefFrames.ITRF2008\"\n     >pygeodesy.trf.RefFrames.ITRF2008</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.trf-module.html#RefFrames.ITRF2014\"\n     >pygeodesy.trf.RefFrames.ITRF2014</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.trf-module.html#RefFrames.ITRF2020\"\n     >pygeodesy.trf.RefFrames.ITRF2020</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.trf-module.html#RefFrames.ITRF88\"\n     >pygeodesy.trf.RefFrames.ITRF88</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.trf-module.html#RefFrames.ITRF89\"\n     >pygeodesy.trf.RefFrames.ITRF89</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.trf-module.html#RefFrames.ITRF90\"\n     >pygeodesy.trf.RefFrames.ITRF90</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.trf-module.html#RefFrames.ITRF91\"\n     >pygeodesy.trf.RefFrames.ITRF91</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.trf-module.html#RefFrames.ITRF92\"\n     >pygeodesy.trf.RefFrames.ITRF92</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.trf-module.html#RefFrames.ITRF93\"\n     >pygeodesy.trf.RefFrames.ITRF93</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.trf-module.html#RefFrames.ITRF94\"\n     >pygeodesy.trf.RefFrames.ITRF94</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.trf-module.html#RefFrames.ITRF96\"\n     >pygeodesy.trf.RefFrames.ITRF96</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.trf-module.html#RefFrames.ITRF97\"\n     >pygeodesy.trf.RefFrames.ITRF97</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.trf-module.html#RefFrames.NAD83\"\n     >pygeodesy.trf.RefFrames.NAD83</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.trf-module.html#RefFrames.NAD83cors96\"\n     >pygeodesy.trf.RefFrames.NAD83cors96</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.trf-module.html#RefFrames.WGS84\"\n     >pygeodesy.trf.RefFrames.WGS84</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.trf-module.html#RefFrames.WGS84g1150\"\n     >pygeodesy.trf.RefFrames.WGS84g1150</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.trf-module.html#RefFrames.WGS84g1674\"\n     >pygeodesy.trf.RefFrames.WGS84g1674</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.trf-module.html#RefFrames.WGS84g1762\"\n     >pygeodesy.trf.RefFrames.WGS84g1762</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.trf-module.html#__all__\"\n     >pygeodesy.trf.__all__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.triaxials-module.html#Triaxial3s\"\n     >pygeodesy.triaxials.Triaxial3s</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.triaxials-module.html#Triaxials\"\n     >pygeodesy.triaxials.Triaxials</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.triaxials-module.html#__all__\"\n     >pygeodesy.triaxials.__all__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.triaxials-module.html#__getattr__\"\n     >pygeodesy.triaxials.__getattr__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.units-module.html#__all__\"\n     >pygeodesy.units.__all__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.unitsBase-module.html#__all__\"\n     >pygeodesy.unitsBase.__all__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ups-module.html#__all__\"\n     >pygeodesy.ups.__all__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#__all__\"\n     >pygeodesy.utily.__all__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utm-module.html#__all__\"\n     >pygeodesy.utm.__all__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utmups-module.html#__all__\"\n     >pygeodesy.utmups.__all__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utmupsBase-module.html#__all__\"\n     >pygeodesy.utmupsBase.__all__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.vector2d-module.html#__all__\"\n     >pygeodesy.vector2d.__all__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.vector3d-module.html#__all__\"\n     >pygeodesy.vector3d.__all__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.vector3dBase-module.html#__all__\"\n     >pygeodesy.vector3dBase.__all__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#version\"\n     >pygeodesy.version</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.webmercator-module.html#__all__\"\n     >pygeodesy.webmercator.__all__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.wgrs-module.html#__all__\"\n     >pygeodesy.wgrs.__all__</a><br /><hr />\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/toc-pygeodesy-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>pygeodesy</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<h1 class=\"toc\">Module pygeodesy</h1>\n<hr />\n  <h2 class=\"toc\">Classes</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.named.ADict-class.html\"\n     >ADict</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ltpTuples.Aer-class.html\"\n     >Aer</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ltpTuples.Aer4Tuple-class.html\"\n     >Aer4Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.albers.Albers7Tuple-class.html\"\n     >Albers7Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.albers.AlbersEqualArea-class.html\"\n     >AlbersEqualArea</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.albers.AlbersEqualArea2-class.html\"\n     >AlbersEqualArea2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.albers.AlbersEqualArea4-class.html\"\n     >AlbersEqualArea4</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.albers.AlbersEqualAreaCylindrical-class.html\"\n     >AlbersEqualAreaCylindrical</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.albers.AlbersEqualAreaNorth-class.html\"\n     >AlbersEqualAreaNorth</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.albers.AlbersEqualAreaSouth-class.html\"\n     >AlbersEqualAreaSouth</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.albers.AlbersError-class.html\"\n     >AlbersError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.angles.Ang-class.html\"\n     >Ang</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.karney.Area3Tuple-class.html\"\n     >Area3Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ltp.Attitude-class.html\"\n     >Attitude</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ltpTuples.Attitude4Tuple-class.html\"\n     >Attitude4Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ltp.AttitudeError-class.html\"\n     >AttitudeError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.errors.AuxError-class.html\"\n     >AuxError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.units.Azimuth-class.html\"\n     >Azimuth</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.azimuthal.Azimuthal7Tuple-class.html\"\n     >Azimuthal7Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.azimuthal.AzimuthalError-class.html\"\n     >AzimuthalError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.units.Band-class.html\"\n     >Band</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.units.Bearing-class.html\"\n     >Bearing</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.namedTuples.Bearing2Tuple-class.html\"\n     >Bearing2Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.units.Bearing_-class.html\"\n     >Bearing_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.triaxials.triaxial3.BetOmgAlp5Tuple-class.html\"\n     >BetOmgAlp5Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.triaxials.conformal3.BetOmgGam5Tuple-class.html\"\n     >BetOmgGam5Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.triaxials.triaxial5.BetaOmega2Tuple-class.html\"\n     >BetaOmega2Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.triaxials.triaxial5.BetaOmega3Tuple-class.html\"\n     >BetaOmega3Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.units.Bool-class.html\"\n     >Bool</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.booleans.BooleanFHP-class.html\"\n     >BooleanFHP</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.booleans.BooleanGH-class.html\"\n     >BooleanGH</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.namedTuples.Bounds2Tuple-class.html\"\n     >Bounds2Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.namedTuples.Bounds4Tuple-class.html\"\n     >Bounds4Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.css.CSSError-class.html\"\n     >CSSError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.karney.Caps-class.html\"\n     >Caps</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.triaxials.triaxial3.Cartesian5Tuple-class.html\"\n     >Cartesian5Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.css.CassiniSoldner-class.html\"\n     >CassiniSoldner</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ltp.ChLV-class.html\"\n     >ChLV</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ltpTuples.ChLV9Tuple-class.html\"\n     >ChLV9Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ltpTuples.ChLVEN2Tuple-class.html\"\n     >ChLVEN2Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ltpTuples.ChLVYX2Tuple-class.html\"\n     >ChLVYX2Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ltp.ChLVa-class.html\"\n     >ChLVa</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ltp.ChLVe-class.html\"\n     >ChLVe</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ltpTuples.ChLVyx2Tuple-class.html\"\n     >ChLVyx2Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.vector2d.Circin6Tuple-class.html\"\n     >Circin6Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.namedTuples.Circle4Tuple-class.html\"\n     >Circle4Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.vector2d.Circum3Tuple-class.html\"\n     >Circum3Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.vector2d.Circum4Tuple-class.html\"\n     >Circum4Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated.classes.ClipCS3Tuple-class.html\"\n     >ClipCS3Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.clipy.ClipCS4Tuple-class.html\"\n     >ClipCS4Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.errors.ClipError-class.html\"\n     >ClipError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.clipy.ClipFHP4Tuple-class.html\"\n     >ClipFHP4Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.clipy.ClipGH4Tuple-class.html\"\n     >ClipGH4Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.clipy.ClipLB6Tuple-class.html\"\n     >ClipLB6Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.clipy.ClipSH3Tuple-class.html\"\n     >ClipSH3Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.resections.Collins5Tuple-class.html\"\n     >Collins5Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.triaxials.triaxial5.Conformal-class.html\"\n     >Conformal</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.triaxials.triaxial5.Conformal2Tuple-class.html\"\n     >Conformal2Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.triaxials.conformal3.Conformal3-class.html\"\n     >Conformal3</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.triaxials.conformal3.Conformal3B-class.html\"\n     >Conformal3B</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.triaxials.conformal3.Conformal3Sphere-class.html\"\n     >Conformal3Sphere</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.triaxials.bases.Conformal5Tuple-class.html\"\n     >Conformal5Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.triaxials.triaxial5.ConformalSphere-class.html\"\n     >ConformalSphere</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.lcc.Conic-class.html\"\n     >Conic</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.errors.CrossError-class.html\"\n     >CrossError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.css.Css-class.html\"\n     >Css</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids.Curvature2Tuple-class.html\"\n     >Curvature2Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.datums.Datum-class.html\"\n     >Datum</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.units.Degrees-class.html\"\n     >Degrees</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.units.Degrees2-class.html\"\n     >Degrees2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.units.Degrees_-class.html\"\n     >Degrees_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.props.DeprecationWarnings-class.html\"\n     >DeprecationWarnings</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.namedTuples.Destination2Tuple-class.html\"\n     >Destination2Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.namedTuples.Destination3Tuple-class.html\"\n     >Destination3Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.karney.Direct9Tuple-class.html\"\n     >Direct9Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.units.Distance-class.html\"\n     >Distance</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.namedTuples.Distance2Tuple-class.html\"\n     >Distance2Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.namedTuples.Distance3Tuple-class.html\"\n     >Distance3Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.namedTuples.Distance4Tuple-class.html\"\n     >Distance4Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.units.Distance_-class.html\"\n     >Distance_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fsums.DivMod2Tuple-class.html\"\n     >DivMod2Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.epsg.EPSGError-class.html\"\n     >EPSGError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.etm.ETMError-class.html\"\n     >ETMError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.namedTuples.EasNor2Tuple-class.html\"\n     >EasNor2Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.namedTuples.EasNor3Tuple-class.html\"\n     >EasNor3Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.css.EasNorAziRk4Tuple-class.html\"\n     >EasNorAziRk4Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.css.EasNorAziRkEqu6Tuple-class.html\"\n     >EasNorAziRkEqu6Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated.classes.EasNorExact4Tuple-class.html\"\n     >EasNorExact4Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.webmercator.EasNorRadius3Tuple-class.html\"\n     >EasNorRadius3Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.units.Easting-class.html\"\n     >Easting</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ecef.Ecef9Tuple-class.html\"\n     >Ecef9Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ecef.EcefError-class.html\"\n     >EcefError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ecef.EcefFarrell21-class.html\"\n     >EcefFarrell21</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ecef.EcefFarrell22-class.html\"\n     >EcefFarrell22</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ecef.EcefKarney-class.html\"\n     >EcefKarney</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ecef.EcefMatrix-class.html\"\n     >EcefMatrix</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ecef.EcefSudano-class.html\"\n     >EcefSudano</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ecef.EcefUPC-class.html\"\n     >EcefUPC</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ecef.EcefVeness-class.html\"\n     >EcefVeness</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ecef.EcefYou-class.html\"\n     >EcefYou</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.elevations.Elevation2Tuple-class.html\"\n     >Elevation2Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated.consterns.Elliperim-class.html\"\n     >Elliperim</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipses.Ellipse-class.html\"\n     >Ellipse</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.namedTuples.Ellipse5Tuple-class.html\"\n     >Ellipse5Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipses.EllipseError-class.html\"\n     >EllipseError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\"\n     >Ellipsoid</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\"\n     >Ellipsoid2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.elliptic.Elliptic-class.html\"\n     >Elliptic</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.elliptic.Elliptic3Tuple-class.html\"\n     >Elliptic3Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.elliptic.EllipticError-class.html\"\n     >EllipticError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ltpTuples.Enu-class.html\"\n     >Enu</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ltpTuples.Enu4Tuple-class.html\"\n     >Enu4Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.units.Epoch-class.html\"\n     >Epoch</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.epsg.Epsg-class.html\"\n     >Epsg</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.azimuthal.Equidistant-class.html\"\n     >Equidistant</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.azimuthal.EquidistantExact-class.html\"\n     >EquidistantExact</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.azimuthal.EquidistantGeodSolve-class.html\"\n     >EquidistantGeodSolve</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.azimuthal.EquidistantKarney-class.html\"\n     >EquidistantKarney</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.etm.Etm-class.html\"\n     >Etm</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.etm.ExactTransverseMercator-class.html\"\n     >ExactTransverseMercator</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.units.FIx-class.html\"\n     >FIx</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fmath.Fcbrt-class.html\"\n     >Fcbrt</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fstats.Fcook-class.html\"\n     >Fcook</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fmath.Fdot-class.html\"\n     >Fdot</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fmath.Fdot_-class.html\"\n     >Fdot_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.units.Feet-class.html\"\n     >Feet</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fmath.Fhorner-class.html\"\n     >Fhorner</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fmath.Fhypot-class.html\"\n     >Fhypot</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fstats.Flinear-class.html\"\n     >Flinear</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.unitsBase.Float-class.html\"\n     >Float</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.units.Float_-class.html\"\n     >Float_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ltpTuples.Footprint5Tuple-class.html\"\n     >Footprint5Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.namedTuples.Forward4Tuple-class.html\"\n     >Forward4Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fmath.Fpolynomial-class.html\"\n     >Fpolynomial</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fmath.Fpowers-class.html\"\n     >Fpowers</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.frechet.Frechet-class.html\"\n     >Frechet</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.frechet.Frechet6Tuple-class.html\"\n     >Frechet6Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.frechet.FrechetCosineLaw-class.html\"\n     >FrechetCosineLaw</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.frechet.FrechetDegrees-class.html\"\n     >FrechetDegrees</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.frechet.FrechetDistanceTo-class.html\"\n     >FrechetDistanceTo</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.frechet.FrechetEquirectangular-class.html\"\n     >FrechetEquirectangular</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.frechet.FrechetError-class.html\"\n     >FrechetError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.frechet.FrechetEuclidean-class.html\"\n     >FrechetEuclidean</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.frechet.FrechetExact-class.html\"\n     >FrechetExact</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.frechet.FrechetFlatLocal-class.html\"\n     >FrechetFlatLocal</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.frechet.FrechetFlatPolar-class.html\"\n     >FrechetFlatPolar</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.frechet.FrechetHaversine-class.html\"\n     >FrechetHaversine</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.frechet.FrechetHubeny-class.html\"\n     >FrechetHubeny</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.frechet.FrechetKarney-class.html\"\n     >FrechetKarney</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.frechet.FrechetRadians-class.html\"\n     >FrechetRadians</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.frechet.FrechetThomas-class.html\"\n     >FrechetThomas</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.frechet.FrechetVincentys-class.html\"\n     >FrechetVincentys</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fmath.Froot-class.html\"\n     >Froot</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ltp.Frustum-class.html\"\n     >Frustum</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fmath.Fsqrt-class.html\"\n     >Fsqrt</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fsums.Fsum-class.html\"\n     >Fsum</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fsums.Fsum2Tuple-class.html\"\n     >Fsum2Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fstats.Fwelford-class.html\"\n     >Fwelford</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.gars.GARSError-class.html\"\n     >GARSError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.karney.GDict-class.html\"\n     >GDict</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.gars.Garef-class.html\"\n     >Garef</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geod3solve.Geod3Solve8Tuple-class.html\"\n     >Geod3Solve8Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geodsolve.GeodSolve12Tuple-class.html\"\n     >GeodSolve12Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geodesicw.Geodesic-class.html\"\n     >Geodesic</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geod3solve.Geodesic3Error-class.html\"\n     >Geodesic3Error</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geod3solve.Geodesic3Solve-class.html\"\n     >Geodesic3Solve</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html\"\n     >GeodesicAreaExact</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.errors.GeodesicError-class.html\"\n     >GeodesicError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html\"\n     >GeodesicExact</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geodesicw.GeodesicLine-class.html\"\n     >GeodesicLine</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geod3solve.GeodesicLine3Solve-class.html\"\n     >GeodesicLine3Solve</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geodesicx.gx.GeodesicLineExact-class.html\"\n     >GeodesicLineExact</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geodsolve.GeodesicLineSolve-class.html\"\n     >GeodesicLineSolve</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geodsolve.GeodesicSolve-class.html\"\n     >GeodesicSolve</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geohash.Geohash-class.html\"\n     >Geohash</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geohash.GeohashError-class.html\"\n     >GeohashError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geohash.Geohashed-class.html\"\n     >Geohashed</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geoids.GeoidEGM96-class.html\"\n     >GeoidEGM96</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geoids.GeoidError-class.html\"\n     >GeoidError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geoids.GeoidG2012B-class.html\"\n     >GeoidG2012B</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.elevations.GeoidHeight2Tuple-class.html\"\n     >GeoidHeight2Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geoids.GeoidHeight5Tuple-class.html\"\n     >GeoidHeight5Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geoids.GeoidKarney-class.html\"\n     >GeoidKarney</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geoids.GeoidPGM-class.html\"\n     >GeoidPGM</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.wgrs.Georef-class.html\"\n     >Georef</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.azimuthal.Gnomonic-class.html\"\n     >Gnomonic</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.azimuthal.GnomonicExact-class.html\"\n     >GnomonicExact</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.azimuthal.GnomonicGeodSolve-class.html\"\n     >GnomonicGeodSolve</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.azimuthal.GnomonicKarney-class.html\"\n     >GnomonicKarney</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.hausdorff.Hausdorff-class.html\"\n     >Hausdorff</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.hausdorff.Hausdorff6Tuple-class.html\"\n     >Hausdorff6Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.hausdorff.HausdorffCosineLaw-class.html\"\n     >HausdorffCosineLaw</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.hausdorff.HausdorffDegrees-class.html\"\n     >HausdorffDegrees</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.hausdorff.HausdorffDistanceTo-class.html\"\n     >HausdorffDistanceTo</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.hausdorff.HausdorffEquirectangular-class.html\"\n     >HausdorffEquirectangular</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.hausdorff.HausdorffError-class.html\"\n     >HausdorffError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.hausdorff.HausdorffEuclidean-class.html\"\n     >HausdorffEuclidean</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.hausdorff.HausdorffExact-class.html\"\n     >HausdorffExact</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.hausdorff.HausdorffFlatLocal-class.html\"\n     >HausdorffFlatLocal</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.hausdorff.HausdorffFlatPolar-class.html\"\n     >HausdorffFlatPolar</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.hausdorff.HausdorffHaversine-class.html\"\n     >HausdorffHaversine</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.hausdorff.HausdorffHubeny-class.html\"\n     >HausdorffHubeny</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.hausdorff.HausdorffKarney-class.html\"\n     >HausdorffKarney</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.hausdorff.HausdorffRadians-class.html\"\n     >HausdorffRadians</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.hausdorff.HausdorffThomas-class.html\"\n     >HausdorffThomas</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.hausdorff.HausdorffVincentys-class.html\"\n     >HausdorffVincentys</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.units.Height-class.html\"\n     >Height</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.heights.HeightCubic-class.html\"\n     >HeightCubic</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.heights.HeightError-class.html\"\n     >HeightError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.heights.HeightIDWcosineLaw-class.html\"\n     >HeightIDWcosineLaw</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.heights.HeightIDWdistanceTo-class.html\"\n     >HeightIDWdistanceTo</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.heights.HeightIDWequirectangular-class.html\"\n     >HeightIDWequirectangular</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.heights.HeightIDWeuclidean-class.html\"\n     >HeightIDWeuclidean</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.heights.HeightIDWexact-class.html\"\n     >HeightIDWexact</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.heights.HeightIDWflatLocal-class.html\"\n     >HeightIDWflatLocal</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.heights.HeightIDWflatPolar-class.html\"\n     >HeightIDWflatPolar</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.heights.HeightIDWhaversine-class.html\"\n     >HeightIDWhaversine</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.heights.HeightIDWhubeny-class.html\"\n     >HeightIDWhubeny</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.heights.HeightIDWkarney-class.html\"\n     >HeightIDWkarney</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.heights.HeightIDWthomas-class.html\"\n     >HeightIDWthomas</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.heights.HeightIDWvincentys-class.html\"\n     >HeightIDWvincentys</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.heights.HeightLSQBiSpline-class.html\"\n     >HeightLSQBiSpline</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.heights.HeightLinear-class.html\"\n     >HeightLinear</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.heights.HeightSmoothBiSpline-class.html\"\n     >HeightSmoothBiSpline</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.units.HeightX-class.html\"\n     >HeightX</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.units.Height_-class.html\"\n     >Height_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated.classes.Transform7Tuple-class.html\"\n     >Helmert7Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.unitsBase.Int-class.html\"\n     >Int</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.units.Int_-class.html\"\n     >Int_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geodesici.Intersect7Tuple-class.html\"\n     >Intersect7Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.namedTuples.Intersection3Tuple-class.html\"\n     >Intersection3Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.errors.IntersectionError-class.html\"\n     >IntersectionError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geodesici.Intersectool-class.html\"\n     >Intersectool</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geodesici.Intersectool5Tuple-class.html\"\n     >Intersectool5Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geodesici.Intersector-class.html\"\n     >Intersector</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geodesici.Intersector5Tuple-class.html\"\n     >Intersector5Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.karney.Inverse10Tuple-class.html\"\n     >Inverse10Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated.classes.Jacobi2Tuple-class.html\"\n     >Jacobi2Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated.classes.JacobiConformal-class.html\"\n     >JacobiConformal</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated.classes.JacobiConformalSpherical-class.html\"\n     >JacobiConformalSpherical</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ktm.KTMError-class.html\"\n     >KTMError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ktm.KTransverseMercator-class.html\"\n     >KTransverseMercator</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.lcc.LCCError-class.html\"\n     >LCCError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.triaxials.bases.LLK-class.html\"\n     >LLK</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.units.Lam-class.html\"\n     >Lam</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated.classes.Lam_-class.html\"\n     >Lam_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.azimuthal.LambertEqualArea-class.html\"\n     >LambertEqualArea</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.angles.Lambertian-class.html\"\n     >Lambertian</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.units.Lamd-class.html\"\n     >Lamd</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.units.Lat-class.html\"\n     >Lat</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.iters.LatLon2PsxyIter-class.html\"\n     >LatLon2PsxyIter</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.namedTuples.LatLon2Tuple-class.html\"\n     >LatLon2Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.points.LatLon2psxy-class.html\"\n     >LatLon2psxy</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.namedTuples.LatLon3Tuple-class.html\"\n     >LatLon3Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.namedTuples.LatLon4Tuple-class.html\"\n     >LatLon4Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.css.LatLonAziRk4Tuple-class.html\"\n     >LatLonAziRk4Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.namedTuples.LatLonDatum3Tuple-class.html\"\n     >LatLonDatum3Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.namedTuples.LatLonDatum5Tuple-class.html\"\n     >LatLonDatum5Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated.classes.LatLonExact4Tuple-class.html\"\n     >LatLonExact4Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.booleans.LatLonFHP-class.html\"\n     >LatLonFHP</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.booleans.LatLonGH-class.html\"\n     >LatLonGH</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated.bases.LatLonHeightBase-class.html\"\n     >LatLonHeightBase</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.nvectorBase.LatLonNvectorBase-class.html\"\n     >LatLonNvectorBase</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.namedTuples.LatLonPrec3Tuple-class.html\"\n     >LatLonPrec3Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.namedTuples.LatLonPrec5Tuple-class.html\"\n     >LatLonPrec5Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.points.LatLon_-class.html\"\n     >LatLon_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.units.Lat_-class.html\"\n     >Lat_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.lazily.LazyAttributeError-class.html\"\n     >LazyAttributeError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.lazily.LazyImportError-class.html\"\n     >LazyImportError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.lcc.Lcc-class.html\"\n     >Lcc</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.errors.LenError-class.html\"\n     >LenError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.errors.LimitError-class.html\"\n     >LimitError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ltpTuples.Local9Tuple-class.html\"\n     >Local9Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ltp.LocalCartesian-class.html\"\n     >LocalCartesian</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ltp.LocalError-class.html\"\n     >LocalError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.units.Lon-class.html\"\n     >Lon</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.units.Lon_-class.html\"\n     >Lon_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ltpTuples.Los-class.html\"\n     >Los</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ltp.Ltp-class.html\"\n     >Ltp</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.errors.MGRSError-class.html\"\n     >MGRSError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.vector2d.Meeus2Tuple-class.html\"\n     >Meeus2Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.units.Meter-class.html\"\n     >Meter</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.units.Meter2-class.html\"\n     >Meter2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.units.Meter3-class.html\"\n     >Meter3</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.units.Meter_-class.html\"\n     >Meter_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.mgrs.Mgrs-class.html\"\n     >Mgrs</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.mgrs.Mgrs4Tuple-class.html\"\n     >Mgrs4Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.mgrs.Mgrs6Tuple-class.html\"\n     >Mgrs6Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geodesici.Middle5Tuple-class.html\"\n     >Middle5Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.namedTuples.NearestOn2Tuple-class.html\"\n     >NearestOn2Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.namedTuples.NearestOn3Tuple-class.html\"\n     >NearestOn3Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated.classes.NearestOn4Tuple-class.html\"\n     >NearestOn4Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.namedTuples.NearestOn6Tuple-class.html\"\n     >NearestOn6Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.namedTuples.NearestOn8Tuple-class.html\"\n     >NearestOn8Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ltpTuples.Ned-class.html\"\n     >Ned</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated.classes.Ned3Tuple-class.html\"\n     >Ned3Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ltpTuples.Ned4Tuple-class.html\"\n     >Ned4Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geohash.Neighbors8Dict-class.html\"\n     >Neighbors8Dict</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.units.Northing-class.html\"\n     >Northing</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.errors.NumPyError-class.html\"\n     >NumPyError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.units.Number_-class.html\"\n     >Number_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.points.Numpy2LatLon-class.html\"\n     >Numpy2LatLon</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated.nvector.Nvector-class.html\"\n     >Nvector</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.osgr.OSGRError-class.html\"\n     >OSGRError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.azimuthal.Orthographic-class.html\"\n     >Orthographic</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.osgr.Osgr-class.html\"\n     >Osgr</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geoids.PGMError-class.html\"\n     >PGMError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.errors.ParseError-class.html\"\n     >ParseError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.units.Phi-class.html\"\n     >Phi</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.namedTuples.PhiLam2Tuple-class.html\"\n     >PhiLam2Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.namedTuples.PhiLam3Tuple-class.html\"\n     >PhiLam3Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.namedTuples.PhiLam4Tuple-class.html\"\n     >PhiLam4Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.triaxials.triaxial3.PhiLamZet5Tuple-class.html\"\n     >PhiLamZet5Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated.classes.Phi_-class.html\"\n     >Phi_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.units.Phid-class.html\"\n     >Phid</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.namedTuples.Point3Tuple-class.html\"\n     >Point3Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.namedTuples.Points2Tuple-class.html\"\n     >Points2Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.errors.PointsError-class.html\"\n     >PointsError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.iters.PointsIter-class.html\"\n     >PointsIter</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geodesicx.gxarea.PolygonArea-class.html\"\n     >PolygonArea</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.units.Precision_-class.html\"\n     >Precision_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.props.Property-class.html\"\n     >Property</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.props.Property_RO-class.html\"\n     >Property_RO</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.units.Radians-class.html\"\n     >Radians</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.units.Radians2-class.html\"\n     >Radians2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.units.Radians_-class.html\"\n     >Radians_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.formy.Radical2Tuple-class.html\"\n     >Radical2Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.vector2d.Radii11Tuple-class.html\"\n     >Radii11Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.unitsBase.Radius-class.html\"\n     >Radius</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.cartesianBase.RadiusThetaPhi3Tuple-class.html\"\n     >RadiusThetaPhi3Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.units.Radius_-class.html\"\n     >Radius_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.errors.RangeError-class.html\"\n     >RangeError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.trf.RefFrame-class.html\"\n     >RefFrame</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.resections.ResectionError-class.html\"\n     >ResectionError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fsums.ResidualError-class.html\"\n     >ResidualError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geohash.Resolutions2Tuple-class.html\"\n     >Resolutions2Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.namedTuples.Reverse4Tuple-class.html\"\n     >Reverse4Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.rhumb.ekx.Rhumb-class.html\"\n     >Rhumb</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated.classes.Rhumb7Tuple-class.html\"\n     >Rhumb7Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.karney.Rhumb8Tuple-class.html\"\n     >Rhumb8Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.rhumb.aux_.RhumbAux-class.html\"\n     >RhumbAux</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.errors.RhumbError-class.html\"\n     >RhumbError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.rhumb.ekx.RhumbLine-class.html\"\n     >RhumbLine</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.rhumb.aux_.RhumbLineAux-class.html\"\n     >RhumbLineAux</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.rhumb.solve.RhumbLineSolve-class.html\"\n     >RhumbLineSolve</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated.classes.RhumbOrder2Tuple-class.html\"\n     >RhumbOrder2Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.rhumb.solve.RhumbSolve-class.html\"\n     >RhumbSolve</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.rhumb.solve.RhumbSolve7Tuple-class.html\"\n     >RhumbSolve7Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.units.Scalar-class.html\"\n     >Scalar</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.units.Scalar_-class.html\"\n     >Scalar_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.errors.SciPyError-class.html\"\n     >SciPyError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.errors.SciPyWarning-class.html\"\n     >SciPyWarning</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.points.Shape2Tuple-class.html\"\n     >Shape2Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geohash.Sizes3Tuple-class.html\"\n     >Sizes3Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.vector2d.Soddy4Tuple-class.html\"\n     >Soddy4Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.azimuthal.Stereographic-class.html\"\n     >Stereographic</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.unitsBase.Str-class.html\"\n     >Str</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.interns.Str_-class.html\"\n     >Str_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.resections.Survey3Tuple-class.html\"\n     >Survey3Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.errors.TRFError-class.html\"\n     >TRFError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.trf.TRFXform-class.html\"\n     >TRFXform</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.trf.TRFXform7Tuple-class.html\"\n     >TRFXform7Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.resections.Tienstra7Tuple-class.html\"\n     >Tienstra7Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.datums.Transform-class.html\"\n     >Transform</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated.classes.Transform7Tuple-class.html\"\n     >Transform7Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.trf.TransformXform-class.html\"\n     >TransformXform</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated.classes.TriAngle4Tuple-class.html\"\n     >TriAngle4Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.resections.TriAngle5Tuple-class.html\"\n     >TriAngle5Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.resections.TriSide2Tuple-class.html\"\n     >TriSide2Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.resections.TriSide4Tuple-class.html\"\n     >TriSide4Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.namedTuples.Triangle7Tuple-class.html\"\n     >Triangle7Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.namedTuples.Triangle8Tuple-class.html\"\n     >Triangle8Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.errors.TriangleError-class.html\"\n     >TriangleError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.triaxials.triaxial5.Triaxial-class.html\"\n     >Triaxial</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html\"\n     >Triaxial3</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.triaxials.triaxial3.Triaxial3B-class.html\"\n     >Triaxial3B</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.triaxials.bases.TriaxialError-class.html\"\n     >TriaxialError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.triaxials.triaxial5.Triaxial_-class.html\"\n     >Triaxial_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.vector2d.Triaxum5Tuple-class.html\"\n     >Triaxum5Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.namedTuples.Trilaterate5Tuple-class.html\"\n     >Trilaterate5Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.points.Tuple2LatLon-class.html\"\n     >Tuple2LatLon</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ups.UPSError-class.html\"\n     >UPSError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utm.UTMError-class.html\"\n     >UTMError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utmups.UTMUPSError-class.html\"\n     >UTMUPSError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.errors.UnitError-class.html\"\n     >UnitError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ups.Ups-class.html\"\n     >Ups</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utm.Utm-class.html\"\n     >Utm</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.namedTuples.UtmUps2Tuple-class.html\"\n     >UtmUps2Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated.classes.UtmUps4Tuple-class.html\"\n     >UtmUps4Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.namedTuples.UtmUps5Tuple-class.html\"\n     >UtmUps5Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.namedTuples.UtmUps8Tuple-class.html\"\n     >UtmUps8Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.namedTuples.UtmUpsLatLon5Tuple-class.html\"\n     >UtmUpsLatLon5Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ltpTuples.Uvw-class.html\"\n     >Uvw</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ltpTuples.Uvw3Tuple-class.html\"\n     >Uvw3Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.namedTuples.Vector2Tuple-class.html\"\n     >Vector2Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.namedTuples.Vector3Tuple-class.html\"\n     >Vector3Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.vector3d.Vector3d-class.html\"\n     >Vector3d</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.namedTuples.Vector4Tuple-class.html\"\n     >Vector4Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.errors.VectorError-class.html\"\n     >VectorError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoidalVincenty.VincentyError-class.html\"\n     >VincentyError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.wgrs.WGRSError-class.html\"\n     >WGRSError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.webmercator.WebMercatorError-class.html\"\n     >WebMercatorError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.webmercator.Wm-class.html\"\n     >Wm</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geodesici.XDict-class.html\"\n     >XDict</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated.classes.XDist-class.html\"\n     >XDist</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ltpTuples.Xyz4Tuple-class.html\"\n     >Xyz4Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ltpTuples.XyzLocal-class.html\"\n     >XyzLocal</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.units.Zone-class.html\"\n     >Zone</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\"\n     >a_f2Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.props.property_RO-class.html\"\n     >property_RO</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.props.property_ROnce-class.html\"\n     >property_ROnce</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.props.property_ROver-class.html\"\n     >property_ROver</a><br />  <h2 class=\"toc\">Functions</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy-module.html#Deg\"\n     >Deg</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#EcefCartesian\"\n     >EcefCartesian</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#Fn_rt\"\n     >Fn_rt</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#FrechetCosineAndoyerLambert\"\n     >FrechetCosineAndoyerLambert</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#FrechetCosineForsytheAndoyerLambert\"\n     >FrechetCosineForsytheAndoyerLambert</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#Fsum2product\"\n     >Fsum2product</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#Geodesic_WGS84\"\n     >Geodesic_WGS84</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#HausdorffCosineAndoyerLambert\"\n     >HausdorffCosineAndoyerLambert</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#HausdorffCosineForsytheAndoyerLambert\"\n     >HausdorffCosineForsytheAndoyerLambert</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#HeightIDW\"\n     >HeightIDW</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#HeightIDW2\"\n     >HeightIDW2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#HeightIDW3\"\n     >HeightIDW3</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#HeightIDWcosineAndoyerLambert\"\n     >HeightIDWcosineAndoyerLambert</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#HeightIDWcosineForsytheAndoyerLambert\"\n     >HeightIDWcosineForsytheAndoyerLambert</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#NM2m\"\n     >NM2m</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#Rad\"\n     >Rad</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#RefFrameError\"\n     >RefFrameError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#SM2m\"\n     >SM2m</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#SinCos2\"\n     >SinCos2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#UtmUps\"\n     >UtmUps</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#a_b2e\"\n     >a_b2e</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#a_b2e2\"\n     >a_b2e2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#a_b2e22\"\n     >a_b2e22</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#a_b2e32\"\n     >a_b2e32</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#a_b2f\"\n     >a_b2f</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#a_b2f2\"\n     >a_b2f2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#a_b2f_\"\n     >a_b2f_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#a_b2n\"\n     >a_b2n</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#a_f2b\"\n     >a_f2b</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#a_f_2b\"\n     >a_f_2b</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#acos1\"\n     >acos1</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#acre2ha\"\n     >acre2ha</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#acre2m2\"\n     >acre2m2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#agdf\"\n     >agdf</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#anStr\"\n     >anStr</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#angle2chord\"\n     >angle2chord</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#anstr\"\n     >anstr</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#antipode\"\n     >antipode</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#antipode_\"\n     >antipode_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#areaOf\"\n     >areaOf</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#areaof\"\n     >areaof</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#asin1\"\n     >asin1</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#atan1\"\n     >atan1</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#atan1d\"\n     >atan1d</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#atan2\"\n     >atan2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#atan2b\"\n     >atan2b</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#atan2d\"\n     >atan2d</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#atan2p\"\n     >atan2p</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#atand\"\n     >atand</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#attrs\"\n     >attrs</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#b_f2a\"\n     >b_f2a</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#b_f_2a\"\n     >b_f_2a</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#bearing\"\n     >bearing</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#bearingDMS\"\n     >bearingDMS</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#bearing_\"\n     >bearing_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#bounds\"\n     >bounds</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#boundsOf\"\n     >boundsOf</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#bqrt\"\n     >bqrt</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#callername\"\n     >callername</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#cassini\"\n     >cassini</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#cbrt\"\n     >cbrt</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#cbrt2\"\n     >cbrt2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#centroidOf\"\n     >centroidOf</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#chain2m\"\n     >chain2m</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#chord2angle\"\n     >chord2angle</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#circin6\"\n     >circin6</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#circle4\"\n     >circle4</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#circum3\"\n     >circum3</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#circum4\"\n     >circum4</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#circum4_\"\n     >circum4_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#classname\"\n     >classname</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#classnaming\"\n     >classnaming</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#clipCS3\"\n     >clipCS3</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#clipCS4\"\n     >clipCS4</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#clipDMS\"\n     >clipDMS</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#clipDegrees\"\n     >clipDegrees</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#clipFHP4\"\n     >clipFHP4</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#clipGH4\"\n     >clipGH4</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#clipLB6\"\n     >clipLB6</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#clipRadians\"\n     >clipRadians</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#clipSH\"\n     >clipSH</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#clipSH3\"\n     >clipSH3</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#clipStr\"\n     >clipStr</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#clips\"\n     >clips</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#collins\"\n     >collins</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#collins5\"\n     >collins5</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#compassAngle\"\n     >compassAngle</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#compassDMS\"\n     >compassDMS</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#compassPoint\"\n     >compassPoint</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#copysign\"\n     >copysign</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#copysign0\"\n     >copysign0</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#copytype\"\n     >copytype</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#cosineAndoyerLambert\"\n     >cosineAndoyerLambert</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#cosineAndoyerLambert_\"\n     >cosineAndoyerLambert_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#cosineForsytheAndoyerLambert\"\n     >cosineForsytheAndoyerLambert</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#cosineForsytheAndoyerLambert_\"\n     >cosineForsytheAndoyerLambert_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#cosineLaw\"\n     >cosineLaw</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#cosineLaw_\"\n     >cosineLaw_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#cot\"\n     >cot</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#cot_\"\n     >cot_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#cotd\"\n     >cotd</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#cotd_\"\n     >cotd_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#crosserrors\"\n     >crosserrors</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#date2epoch\"\n     >date2epoch</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#decodeEPSG2\"\n     >decodeEPSG2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#degDMS\"\n     >degDMS</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#degrees\"\n     >degrees</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#degrees180\"\n     >degrees180</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#degrees2grades\"\n     >degrees2grades</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#degrees2m\"\n     >degrees2m</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#degrees360\"\n     >degrees360</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#degrees90\"\n     >degrees90</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#deprecated_Property_RO\"\n     >deprecated_Property_RO</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#deprecated_class\"\n     >deprecated_class</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#deprecated_function\"\n     >deprecated_function</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#deprecated_method\"\n     >deprecated_method</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#deprecated_property_RO\"\n     >deprecated_property_RO</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#e22f\"\n     >e22f</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#e2f\"\n     >e2f</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#egmGeoidHeights\"\n     >egmGeoidHeights</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#elevation2\"\n     >elevation2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#elliperim\"\n     >elliperim</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#elliperim_\"\n     >elliperim_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#enStr2\"\n     >enStr2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#encodeEPSG\"\n     >encodeEPSG</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#enstr2\"\n     >enstr2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#epoch2date\"\n     >epoch2date</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#equidistant\"\n     >equidistant</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#equirectangular\"\n     >equirectangular</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#equirectangular3\"\n     >equirectangular3</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#equirectangular4\"\n     >equirectangular4</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#equirectangular_\"\n     >equirectangular_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#euclid\"\n     >euclid</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#euclid_\"\n     >euclid_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#euclidean\"\n     >euclidean</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#euclidean_\"\n     >euclidean_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#exception_chaining\"\n     >exception_chaining</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#excessAbc\"\n     >excessAbc</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#excessAbc_\"\n     >excessAbc_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#excessCagnoli_\"\n     >excessCagnoli_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#excessGirard\"\n     >excessGirard</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#excessGirard_\"\n     >excessGirard_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#excessKarney\"\n     >excessKarney</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#excessKarney_\"\n     >excessKarney_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#excessLHuilier\"\n     >excessLHuilier</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#excessLHuilier_\"\n     >excessLHuilier_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#excessQuad\"\n     >excessQuad</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#excessQuad_\"\n     >excessQuad_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#f2e2\"\n     >f2e2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#f2e22\"\n     >f2e22</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#f2e32\"\n     >f2e32</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#f2f2\"\n     >f2f2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#f2f_\"\n     >f2f_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#f2mul_\"\n     >f2mul_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#f2n\"\n     >f2n</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#f2product\"\n     >f2product</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#fStr\"\n     >fStr</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#fStrzs\"\n     >fStrzs</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#f_2f\"\n     >f_2f</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#facos1\"\n     >facos1</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#false2f\"\n     >false2f</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#falsed2f\"\n     >falsed2f</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#fasin1\"\n     >fasin1</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#fatan\"\n     >fatan</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#fatan1\"\n     >fatan1</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#fatan2\"\n     >fatan2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#fathom2m\"\n     >fathom2m</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#favg\"\n     >favg</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#fdot\"\n     >fdot</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#fdot3\"\n     >fdot3</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#fdot_\"\n     >fdot_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#fhorner\"\n     >fhorner</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#fidw\"\n     >fidw</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#flatLocal\"\n     >flatLocal</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#flatLocal_\"\n     >flatLocal_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#flatPolar\"\n     >flatPolar</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#flatPolar_\"\n     >flatPolar_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#float0\"\n     >float0</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#float0_\"\n     >float0_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#float_\"\n     >float_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#floats_\"\n     >floats_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#fma\"\n     >fma</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#fmean\"\n     >fmean</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#fmean_\"\n     >fmean_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#fpolynomial\"\n     >fpolynomial</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#fpowers\"\n     >fpowers</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#fprod\"\n     >fprod</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#fractional\"\n     >fractional</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#frandoms\"\n     >frandoms</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#frange\"\n     >frange</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#frechet_\"\n     >frechet_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#freduce\"\n     >freduce</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#fremainder\"\n     >fremainder</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#fstr\"\n     >fstr</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#fstrzs\"\n     >fstrzs</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#fsum\"\n     >fsum</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#fsum1\"\n     >fsum1</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#fsum1_\"\n     >fsum1_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#fsum1f_\"\n     >fsum1f_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#fsum_\"\n     >fsum_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#fsumf_\"\n     >fsumf_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#ft2m\"\n     >ft2m</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#furlong2m\"\n     >furlong2m</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#gdf\"\n     >gdf</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#geoidHeight2\"\n     >geoidHeight2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#gnomonic\"\n     >gnomonic</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#grades\"\n     >grades</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#grades2degrees\"\n     >grades2degrees</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#grades2radians\"\n     >grades2radians</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#grades400\"\n     >grades400</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#ha2acre\"\n     >ha2acre</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#ha2m2\"\n     >ha2m2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#halfs2\"\n     >halfs2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#hartzell\"\n     >hartzell</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#hartzell4\"\n     >hartzell4</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#hausdorff_\"\n     >hausdorff_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#hav\"\n     >hav</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#haversine\"\n     >haversine</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#haversine_\"\n     >haversine_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#height4\"\n     >height4</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#heightOf\"\n     >heightOf</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#heightOrthometric\"\n     >heightOrthometric</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#horizon\"\n     >horizon</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#hstr\"\n     >hstr</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#hubeny\"\n     >hubeny</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#hubeny_\"\n     >hubeny_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#hypot\"\n     >hypot</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#hypot1\"\n     >hypot1</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#hypot2\"\n     >hypot2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#hypot2_\"\n     >hypot2_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#hypot3\"\n     >hypot3</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#hypot_\"\n     >hypot_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#inStr\"\n     >inStr</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#instr\"\n     >instr</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#int1s\"\n     >int1s</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#intersection2\"\n     >intersection2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#intersection3d3\"\n     >intersection3d3</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#intersections2\"\n     >intersections2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#isAng\"\n     >isAng</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#isBoolean\"\n     >isBoolean</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#isCartesian\"\n     >isCartesian</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#isDEPRECATED\"\n     >isDEPRECATED</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#isError\"\n     >isError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#isLatLon\"\n     >isLatLon</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#isNumpy2\"\n     >isNumpy2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#isNvector\"\n     >isNvector</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#isPoints2\"\n     >isPoints2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#isTuple2\"\n     >isTuple2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#isantipode\"\n     >isantipode</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#isantipode_\"\n     >isantipode_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#isbool\"\n     >isbool</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#isclass\"\n     >isclass</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#isclockwise\"\n     >isclockwise</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#isclose\"\n     >isclose</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#iscolinearWith\"\n     >iscolinearWith</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#iscomplex\"\n     >iscomplex</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#isconvex\"\n     >isconvex</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#isconvex_\"\n     >isconvex_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#isenclosedBy\"\n     >isenclosedBy</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#isenclosedby\"\n     >isenclosedby</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#isfinite\"\n     >isfinite</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#isfloat\"\n     >isfloat</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#isidentifier\"\n     >isidentifier</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#isinf\"\n     >isinf</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#isinstanceof\"\n     >isinstanceof</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#isint\"\n     >isint</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#isint0\"\n     >isint0</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#isiterable\"\n     >isiterable</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#isiterablen\"\n     >isiterablen</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#isiterabletype\"\n     >isiterabletype</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#iskeyword\"\n     >iskeyword</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#islistuple\"\n     >islistuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#isnan\"\n     >isnan</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#isnear0\"\n     >isnear0</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#isnear1\"\n     >isnear1</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#isnear90\"\n     >isnear90</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#isneg\"\n     >isneg</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#isneg0\"\n     >isneg0</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#isninf\"\n     >isninf</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#isnon0\"\n     >isnon0</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#isnormal\"\n     >isnormal</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#isnormal_\"\n     >isnormal_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#isodd\"\n     >isodd</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#ispolar\"\n     >ispolar</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#isscalar\"\n     >isscalar</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#issequence\"\n     >issequence</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#isstr\"\n     >isstr</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#issubclassof\"\n     >issubclassof</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#istuplist\"\n     >istuplist</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#itemsorted\"\n     >itemsorted</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#iterNumpy2\"\n     >iterNumpy2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#iterNumpy2over\"\n     >iterNumpy2over</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#joined\"\n     >joined</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#joined_\"\n     >joined_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#km2m\"\n     >km2m</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#latDMS\"\n     >latDMS</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#latlon2n_xyz\"\n     >latlon2n_xyz</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#latlonDMS\"\n     >latlonDMS</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#latlonDMS_\"\n     >latlonDMS_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#len2\"\n     >len2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#limiterrors\"\n     >limiterrors</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#lonDMS\"\n     >lonDMS</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#lrstrip\"\n     >lrstrip</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#luneOf\"\n     >luneOf</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#m2NM\"\n     >m2NM</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#m2SM\"\n     >m2SM</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#m2acre\"\n     >m2acre</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#m2chain\"\n     >m2chain</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#m2degrees\"\n     >m2degrees</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#m2fathom\"\n     >m2fathom</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#m2ft\"\n     >m2ft</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#m2furlong\"\n     >m2furlong</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#m2ha\"\n     >m2ha</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#m2km\"\n     >m2km</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#m2radians\"\n     >m2radians</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#m2toise\"\n     >m2toise</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#m2yard\"\n     >m2yard</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#machine\"\n     >machine</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#map1\"\n     >map1</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#map2\"\n     >map2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#max2\"\n     >max2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#meeus2\"\n     >meeus2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#min2\"\n     >min2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#modulename\"\n     >modulename</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#n2e2\"\n     >n2e2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#n2f\"\n     >n2f</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#n2f_\"\n     >n2f_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#n_xyz2latlon\"\n     >n_xyz2latlon</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#n_xyz2philam\"\n     >n_xyz2philam</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#nameof\"\n     >nameof</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#nearestOn\"\n     >nearestOn</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#nearestOn3\"\n     >nearestOn3</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#nearestOn4\"\n     >nearestOn4</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#nearestOn5\"\n     >nearestOn5</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#nearestOn6\"\n     >nearestOn6</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#neg\"\n     >neg</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#neg_\"\n     >neg_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#nonfiniterrors\"\n     >nonfiniterrors</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#norm2\"\n     >norm2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#normDMS\"\n     >normDMS</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#norm_\"\n     >norm_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#normal\"\n     >normal</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#normal_\"\n     >normal_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#notImplemented\"\n     >notImplemented</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#notOverloaded\"\n     >notOverloaded</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#opposing\"\n     >opposing</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#opposing_\"\n     >opposing_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#pairs\"\n     >pairs</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#parse3d\"\n     >parse3d</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#parse3llh\"\n     >parse3llh</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#parseDDDMMSS\"\n     >parseDDDMMSS</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#parseDMS\"\n     >parseDMS</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#parseDMS2\"\n     >parseDMS2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#parseETM5\"\n     >parseETM5</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#parseMGRS\"\n     >parseMGRS</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#parseOSGR\"\n     >parseOSGR</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#parseRad\"\n     >parseRad</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#parseUPS5\"\n     >parseUPS5</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#parseUTM\"\n     >parseUTM</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#parseUTM5\"\n     >parseUTM5</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#parseUTMUPS5\"\n     >parseUTMUPS5</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#parseWM\"\n     >parseWM</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#perimeterOf\"\n     >perimeterOf</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#perimeterof\"\n     >perimeterof</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#philam2n_xyz\"\n     >philam2n_xyz</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#pierlot\"\n     >pierlot</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#pierlotx\"\n     >pierlotx</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#points2\"\n     >points2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#polar2\"\n     >polar2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#polar2d\"\n     >polar2d</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#polygon\"\n     >polygon</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#precision\"\n     >precision</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#print_\"\n     >print_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#printf\"\n     >printf</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#property_doc_\"\n     >property_doc_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#quadOf\"\n     >quadOf</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#radians\"\n     >radians</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#radians2m\"\n     >radians2m</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#radiansPI\"\n     >radiansPI</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#radiansPI2\"\n     >radiansPI2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#radiansPI_2\"\n     >radiansPI_2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#radical2\"\n     >radical2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#radii11\"\n     >radii11</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#randomrangenerator\"\n     >randomrangenerator</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#rangerrors\"\n     >rangerrors</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#remainder\"\n     >remainder</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#reprs\"\n     >reprs</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#rtp2xyz\"\n     >rtp2xyz</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#rtp2xyz_\"\n     >rtp2xyz_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#scalar\"\n     >scalar</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#signBit\"\n     >signBit</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#signOf\"\n     >signOf</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#simplify1\"\n     >simplify1</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#simplify2\"\n     >simplify2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#simplifyRDP\"\n     >simplifyRDP</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#simplifyRDPm\"\n     >simplifyRDPm</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#simplifyRW\"\n     >simplifyRW</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#simplifyVW\"\n     >simplifyVW</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#simplifyVWm\"\n     >simplifyVWm</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#sincos2\"\n     >sincos2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#sincos2_\"\n     >sincos2_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#sincos2d\"\n     >sincos2d</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#sincos2d_\"\n     >sincos2d_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#sincostan3\"\n     >sincostan3</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#sincostan3d\"\n     >sincostan3d</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#snellius3\"\n     >snellius3</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#soddy4\"\n     >soddy4</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#splice\"\n     >splice</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#sqrt0\"\n     >sqrt0</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#sqrt3\"\n     >sqrt3</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#sqrt_a\"\n     >sqrt_a</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#str2ub\"\n     >str2ub</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#strs\"\n     >strs</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#sumOf\"\n     >sumOf</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#tan\"\n     >tan</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#tanPI_2_2\"\n     >tanPI_2_2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#tan_\"\n     >tan_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#tan_2\"\n     >tan_2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#tand\"\n     >tand</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#tand_\"\n     >tand_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#thomas\"\n     >thomas</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#thomas_\"\n     >thomas_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#tienstra\"\n     >tienstra</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#tienstra7\"\n     >tienstra7</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#toCss\"\n     >toCss</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#toDMS\"\n     >toDMS</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#toEtm8\"\n     >toEtm8</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#toLcc\"\n     >toLcc</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#toMgrs\"\n     >toMgrs</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#toOsgr\"\n     >toOsgr</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#toUps8\"\n     >toUps8</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#toUtm\"\n     >toUtm</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#toUtm8\"\n     >toUtm8</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#toUtmUps8\"\n     >toUtmUps8</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#toWm\"\n     >toWm</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#toise2m\"\n     >toise2m</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#trfTransform0\"\n     >trfTransform0</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#trfTransforms\"\n     >trfTransforms</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#trfXform\"\n     >trfXform</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#triAngle\"\n     >triAngle</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#triAngle4\"\n     >triAngle4</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#triAngle5\"\n     >triAngle5</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#triArea\"\n     >triArea</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#triSide\"\n     >triSide</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#triSide2\"\n     >triSide2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#triSide4\"\n     >triSide4</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#triaxum5\"\n     >triaxum5</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#trilaterate2d2\"\n     >trilaterate2d2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#trilaterate3d2\"\n     >trilaterate3d2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#truncate\"\n     >truncate</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#typename\"\n     >typename</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#tyr3d\"\n     >tyr3d</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#ub2str\"\n     >ub2str</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#unStr\"\n     >unStr</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#unroll180\"\n     >unroll180</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#unrollPI\"\n     >unrollPI</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#unsign0\"\n     >unsign0</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#unsigned0\"\n     >unsigned0</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#unstr\"\n     >unstr</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#upsZoneBand5\"\n     >upsZoneBand5</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#utmZoneBand2\"\n     >utmZoneBand2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#utmZoneBand5\"\n     >utmZoneBand5</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#utmupsValidate\"\n     >utmupsValidate</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#utmupsValidateOK\"\n     >utmupsValidateOK</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#utmupsZoneBand5\"\n     >utmupsZoneBand5</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#vincentys\"\n     >vincentys</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#vincentys_\"\n     >vincentys_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#wildberger3\"\n     >wildberger3</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#wrap180\"\n     >wrap180</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#wrap360\"\n     >wrap360</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#wrap90\"\n     >wrap90</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#wrapPI\"\n     >wrapPI</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#wrapPI2\"\n     >wrapPI2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#wrapPI_2\"\n     >wrapPI_2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#wrap_normal\"\n     >wrap_normal</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#xyz2rtp\"\n     >xyz2rtp</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#xyz2rtp_\"\n     >xyz2rtp_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#yard2m\"\n     >yard2m</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#zcrt\"\n     >zcrt</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#zqrt\"\n     >zqrt</a><br />  <h2 class=\"toc\">Variables</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy-module.html#Conics\"\n     >Conics</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#DIG\"\n     >DIG</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#Datums\"\n     >Datums</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#EPS\"\n     >EPS</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#EPS0\"\n     >EPS0</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#EPS02\"\n     >EPS02</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#EPS1\"\n     >EPS1</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#EPS1_2\"\n     >EPS1_2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#EPS2\"\n     >EPS2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#EPS4\"\n     >EPS4</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#EPS8\"\n     >EPS8</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#EPS_2\"\n     >EPS_2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#Ellipsoids\"\n     >Ellipsoids</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#F_D\"\n     >F_D</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#F_D60\"\n     >F_D60</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#F_D60_\"\n     >F_D60_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#F_D60__\"\n     >F_D60__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#F_DEG\"\n     >F_DEG</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#F_DEG_\"\n     >F_DEG_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#F_DEG__\"\n     >F_DEG__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#F_DM\"\n     >F_DM</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#F_DMS\"\n     >F_DMS</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#F_DMS_\"\n     >F_DMS_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#F_DMS__\"\n     >F_DMS__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#F_DM_\"\n     >F_DM_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#F_DM__\"\n     >F_DM__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#F_D_\"\n     >F_D_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#F_D__\"\n     >F_D__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#F_MIN\"\n     >F_MIN</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#F_MIN_\"\n     >F_MIN_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#F_MIN__\"\n     >F_MIN__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#F_RAD\"\n     >F_RAD</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#F_RAD_\"\n     >F_RAD_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#F_RAD__\"\n     >F_RAD__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#F_SEC\"\n     >F_SEC</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#F_SEC_\"\n     >F_SEC_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#F_SEC__\"\n     >F_SEC__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#F__E\"\n     >F__E</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#F__E_\"\n     >F__E_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#F__E__\"\n     >F__E__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#F__F\"\n     >F__F</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#F__F_\"\n     >F__F_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#F__F__\"\n     >F__F__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#F__G\"\n     >F__G</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#F__G_\"\n     >F__G_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#F__G__\"\n     >F__G__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#INF\"\n     >INF</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#INT0\"\n     >INT0</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#MANTIS\"\n     >MANTIS</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#MANT_DIG\"\n     >MANT_DIG</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#MAX\"\n     >MAX</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#MAX_EXP\"\n     >MAX_EXP</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#MIN\"\n     >MIN</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#MIN_EXP\"\n     >MIN_EXP</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#NAN\"\n     >NAN</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#NEG0\"\n     >NEG0</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#NINF\"\n     >NINF</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#NN\"\n     >NN</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#NorthPole\"\n     >NorthPole</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#OK\"\n     >OK</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#OVERFLOW\"\n     >OVERFLOW</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#PI\"\n     >PI</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#PI2\"\n     >PI2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#PI3\"\n     >PI3</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#PI3_2\"\n     >PI3_2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#PI4\"\n     >PI4</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#PI_2\"\n     >PI_2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#PI_3\"\n     >PI_3</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#PI_4\"\n     >PI_4</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#PI_6\"\n     >PI_6</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#R_FM\"\n     >R_FM</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#R_GM\"\n     >R_GM</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#R_KM\"\n     >R_KM</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#R_M\"\n     >R_M</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#R_MA\"\n     >R_MA</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#R_MB\"\n     >R_MB</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#R_NM\"\n     >R_NM</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#R_QM\"\n     >R_QM</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#R_SM\"\n     >R_SM</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#R_VM\"\n     >R_VM</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#RefFrames\"\n     >RefFrames</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#S_DEG\"\n     >S_DEG</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#S_DMS\"\n     >S_DMS</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#S_MIN\"\n     >S_MIN</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#S_RAD\"\n     >S_RAD</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#S_SEC\"\n     >S_SEC</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#S_SEP\"\n     >S_SEP</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#SouthPole\"\n     >SouthPole</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#Transforms\"\n     >Transforms</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#Triaxial3s\"\n     >Triaxial3s</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#Triaxials\"\n     >Triaxials</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#isLazy\"\n     >isLazy</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#pygeodesy_abspath\"\n     >pygeodesy_abspath</a><br />    <a target=\"mainFrame\" href=\"pygeodesy-module.html#version\"\n     >version</a><br /><hr />\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/toc-pygeodesy.__main__-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>__main__</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<h1 class=\"toc\">Module __main__</h1>\n<hr />\n<hr />\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/toc-pygeodesy.albers-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>albers</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<h1 class=\"toc\">Module albers</h1>\n<hr />\n  <h2 class=\"toc\">Classes</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.albers.Albers7Tuple-class.html\"\n     >Albers7Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.albers.AlbersEqualArea-class.html\"\n     >AlbersEqualArea</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.albers.AlbersEqualArea2-class.html\"\n     >AlbersEqualArea2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.albers.AlbersEqualArea4-class.html\"\n     >AlbersEqualArea4</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.albers.AlbersEqualAreaCylindrical-class.html\"\n     >AlbersEqualAreaCylindrical</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.albers.AlbersEqualAreaNorth-class.html\"\n     >AlbersEqualAreaNorth</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.albers.AlbersEqualAreaSouth-class.html\"\n     >AlbersEqualAreaSouth</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.albers.AlbersError-class.html\"\n     >AlbersError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.albers._AlbersBase-class.html\"\n     >_AlbersBase</a><br />  <h2 class=\"toc\">Variables</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.albers-module.html#__all__\"\n     >__all__</a><br /><hr />\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/toc-pygeodesy.angles-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>angles</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<h1 class=\"toc\">Module angles</h1>\n<hr />\n  <h2 class=\"toc\">Classes</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.angles.Ang-class.html\"\n     >Ang</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.angles.Lambertian-class.html\"\n     >Lambertian</a><br />  <h2 class=\"toc\">Functions</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.angles-module.html#Deg\"\n     >Deg</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.angles-module.html#Rad\"\n     >Rad</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.angles-module.html#isAng\"\n     >isAng</a><br />  <h2 class=\"toc\">Variables</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.angles-module.html#__all__\"\n     >__all__</a><br /><hr />\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/toc-pygeodesy.auxilats-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>auxilats</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<h1 class=\"toc\">Module auxilats</h1>\n<hr />\n  <h2 class=\"toc\">Classes</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.auxilats.auxAngle.AuxAngle-class.html\"\n     >AuxAngle</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.auxilats.auxAngle.AuxBeta-class.html\"\n     >AuxBeta</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.auxilats.auxAngle.AuxChi-class.html\"\n     >AuxChi</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.auxilats.auxDLat.AuxDLat-class.html\"\n     >AuxDLat</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.auxilats.auxDST.AuxDST-class.html\"\n     >AuxDST</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.auxilats.auxLat.AuxLat-class.html\"\n     >AuxLat</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.auxilats.auxAngle.AuxMu-class.html\"\n     >AuxMu</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.auxilats.auxAngle.AuxPhi-class.html\"\n     >AuxPhi</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.auxilats.auxAngle.AuxTheta-class.html\"\n     >AuxTheta</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.auxilats.auxAngle.AuxXi-class.html\"\n     >AuxXi</a><br />  <h2 class=\"toc\">Variables</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.auxilats-module.html#Aux\"\n     >Aux</a><br /><hr />\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/toc-pygeodesy.auxilats._CX_4-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>_CX_4</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<h1 class=\"toc\">Module _CX_4</h1>\n<hr />\n<hr />\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/toc-pygeodesy.auxilats._CX_6-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>_CX_6</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<h1 class=\"toc\">Module _CX_6</h1>\n<hr />\n<hr />\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/toc-pygeodesy.auxilats._CX_8-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>_CX_8</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<h1 class=\"toc\">Module _CX_8</h1>\n<hr />\n<hr />\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/toc-pygeodesy.auxilats._CX_Rs-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>_CX_Rs</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<h1 class=\"toc\">Module _CX_Rs</h1>\n<hr />\n<hr />\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/toc-pygeodesy.auxilats.__main__-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>__main__</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<h1 class=\"toc\">Module __main__</h1>\n<hr />\n<hr />\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/toc-pygeodesy.auxilats.auxAngle-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>auxAngle</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<h1 class=\"toc\">Module auxAngle</h1>\n<hr />\n  <h2 class=\"toc\">Classes</h2>\n<hr />\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/toc-pygeodesy.auxilats.auxDLat-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>auxDLat</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<h1 class=\"toc\">Module auxDLat</h1>\n<hr />\n  <h2 class=\"toc\">Classes</h2>\n<hr />\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/toc-pygeodesy.auxilats.auxDST-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>auxDST</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<h1 class=\"toc\">Module auxDST</h1>\n<hr />\n  <h2 class=\"toc\">Classes</h2>\n<hr />\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/toc-pygeodesy.auxilats.auxLat-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>auxLat</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<h1 class=\"toc\">Module auxLat</h1>\n<hr />\n  <h2 class=\"toc\">Classes</h2>\n<hr />\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/toc-pygeodesy.auxilats.auxily-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>auxily</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<h1 class=\"toc\">Module auxily</h1>\n<hr />\n  <h2 class=\"toc\">Variables</h2>\n<hr />\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/toc-pygeodesy.azimuthal-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>azimuthal</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<h1 class=\"toc\">Module azimuthal</h1>\n<hr />\n  <h2 class=\"toc\">Classes</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.azimuthal.Azimuthal7Tuple-class.html\"\n     >Azimuthal7Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.azimuthal.AzimuthalError-class.html\"\n     >AzimuthalError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.azimuthal.Equidistant-class.html\"\n     >Equidistant</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.azimuthal.EquidistantExact-class.html\"\n     >EquidistantExact</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.azimuthal.EquidistantGeodSolve-class.html\"\n     >EquidistantGeodSolve</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.azimuthal.EquidistantKarney-class.html\"\n     >EquidistantKarney</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.azimuthal.Gnomonic-class.html\"\n     >Gnomonic</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.azimuthal.GnomonicExact-class.html\"\n     >GnomonicExact</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.azimuthal.GnomonicGeodSolve-class.html\"\n     >GnomonicGeodSolve</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.azimuthal.GnomonicKarney-class.html\"\n     >GnomonicKarney</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.azimuthal.LambertEqualArea-class.html\"\n     >LambertEqualArea</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.azimuthal.Orthographic-class.html\"\n     >Orthographic</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.azimuthal.Stereographic-class.html\"\n     >Stereographic</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.azimuthal._AzimuthalBase-class.html\"\n     >_AzimuthalBase</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.azimuthal._AzimuthalGeodesic-class.html\"\n     >_AzimuthalGeodesic</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.azimuthal._EquidistantBase-class.html\"\n     >_EquidistantBase</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.azimuthal._GnomonicBase-class.html\"\n     >_GnomonicBase</a><br />  <h2 class=\"toc\">Functions</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.azimuthal-module.html#equidistant\"\n     >equidistant</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.azimuthal-module.html#gnomonic\"\n     >gnomonic</a><br />  <h2 class=\"toc\">Variables</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.azimuthal-module.html#__all__\"\n     >__all__</a><br /><hr />\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/toc-pygeodesy.basics-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>basics</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<h1 class=\"toc\">Module basics</h1>\n<hr />\n  <h2 class=\"toc\">Functions</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.basics-module.html#clips\"\n     >clips</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.basics-module.html#copysign0\"\n     >copysign0</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.basics-module.html#copytype\"\n     >copytype</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.basics-module.html#halfs2\"\n     >halfs2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.basics-module.html#int1s\"\n     >int1s</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.basics-module.html#isCartesian\"\n     >isCartesian</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.basics-module.html#isDEPRECATED\"\n     >isDEPRECATED</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.basics-module.html#isLatLon\"\n     >isLatLon</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.basics-module.html#isNvector\"\n     >isNvector</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.basics-module.html#isbool\"\n     >isbool</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.basics-module.html#isclass\"\n     >isclass</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.basics-module.html#iscomplex\"\n     >iscomplex</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.basics-module.html#isfloat\"\n     >isfloat</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.basics-module.html#isidentifier\"\n     >isidentifier</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.basics-module.html#isinstanceof\"\n     >isinstanceof</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.basics-module.html#isint\"\n     >isint</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.basics-module.html#isiterable\"\n     >isiterable</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.basics-module.html#isiterablen\"\n     >isiterablen</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.basics-module.html#isiterabletype\"\n     >isiterabletype</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.basics-module.html#iskeyword\"\n     >iskeyword</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.basics-module.html#islistuple\"\n     >islistuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.basics-module.html#isodd\"\n     >isodd</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.basics-module.html#isscalar\"\n     >isscalar</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.basics-module.html#issequence\"\n     >issequence</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.basics-module.html#isstr\"\n     >isstr</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.basics-module.html#issubclassof\"\n     >issubclassof</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.basics-module.html#itemsorted\"\n     >itemsorted</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.basics-module.html#len2\"\n     >len2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.basics-module.html#map1\"\n     >map1</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.basics-module.html#map2\"\n     >map2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.basics-module.html#max2\"\n     >max2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.basics-module.html#min2\"\n     >min2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.basics-module.html#neg\"\n     >neg</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.basics-module.html#neg_\"\n     >neg_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.basics-module.html#signBit\"\n     >signBit</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.basics-module.html#signOf\"\n     >signOf</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.basics-module.html#splice\"\n     >splice</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.basics-module.html#str2ub\"\n     >str2ub</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.basics-module.html#ub2str\"\n     >ub2str</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.basics-module.html#unsigned0\"\n     >unsigned0</a><br />  <h2 class=\"toc\">Variables</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.basics-module.html#__all__\"\n     >__all__</a><br /><hr />\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/toc-pygeodesy.booleans-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>booleans</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<h1 class=\"toc\">Module booleans</h1>\n<hr />\n  <h2 class=\"toc\">Classes</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.booleans.BooleanFHP-class.html\"\n     >BooleanFHP</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.booleans.BooleanGH-class.html\"\n     >BooleanGH</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.booleans.LatLonFHP-class.html\"\n     >LatLonFHP</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.booleans.LatLonGH-class.html\"\n     >LatLonGH</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.booleans._BooleanBase-class.html\"\n     >_BooleanBase</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.booleans._Clip-class.html\"\n     >_Clip</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.booleans._CompositeBase-class.html\"\n     >_CompositeBase</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.booleans._CompositeFHP-class.html\"\n     >_CompositeFHP</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.booleans._CompositeGH-class.html\"\n     >_CompositeGH</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.booleans._LatLonBool-class.html\"\n     >_LatLonBool</a><br />  <h2 class=\"toc\">Functions</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.booleans-module.html#isBoolean\"\n     >isBoolean</a><br />  <h2 class=\"toc\">Variables</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.booleans-module.html#__all__\"\n     >__all__</a><br /><hr />\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/toc-pygeodesy.cartesianBase-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>cartesianBase</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<h1 class=\"toc\">Module cartesianBase</h1>\n<hr />\n  <h2 class=\"toc\">Classes</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.cartesianBase.CartesianBase-class.html\"\n     >CartesianBase</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.cartesianBase.RadiusThetaPhi3Tuple-class.html\"\n     >RadiusThetaPhi3Tuple</a><br />  <h2 class=\"toc\">Functions</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.cartesianBase-module.html#rtp2xyz\"\n     >rtp2xyz</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.cartesianBase-module.html#rtp2xyz_\"\n     >rtp2xyz_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.cartesianBase-module.html#xyz2rtp\"\n     >xyz2rtp</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.cartesianBase-module.html#xyz2rtp_\"\n     >xyz2rtp_</a><br />  <h2 class=\"toc\">Variables</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.cartesianBase-module.html#__all__\"\n     >__all__</a><br /><hr />\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/toc-pygeodesy.clipy-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>clipy</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<h1 class=\"toc\">Module clipy</h1>\n<hr />\n  <h2 class=\"toc\">Classes</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.clipy.ClipCS4Tuple-class.html\"\n     >ClipCS4Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.clipy.ClipFHP4Tuple-class.html\"\n     >ClipFHP4Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.clipy.ClipGH4Tuple-class.html\"\n     >ClipGH4Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.clipy.ClipLB6Tuple-class.html\"\n     >ClipLB6Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.clipy.ClipSH3Tuple-class.html\"\n     >ClipSH3Tuple</a><br />  <h2 class=\"toc\">Functions</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.clipy-module.html#clipCS4\"\n     >clipCS4</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.clipy-module.html#clipFHP4\"\n     >clipFHP4</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.clipy-module.html#clipGH4\"\n     >clipGH4</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.clipy-module.html#clipLB6\"\n     >clipLB6</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.clipy-module.html#clipSH\"\n     >clipSH</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.clipy-module.html#clipSH3\"\n     >clipSH3</a><br />  <h2 class=\"toc\">Variables</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.clipy-module.html#__all__\"\n     >__all__</a><br /><hr />\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/toc-pygeodesy.constants-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>constants</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<h1 class=\"toc\">Module constants</h1>\n<hr />\n  <h2 class=\"toc\">Functions</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.constants-module.html#float0_\"\n     >float0_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.constants-module.html#float_\"\n     >float_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.constants-module.html#floats_\"\n     >floats_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.constants-module.html#isclose\"\n     >isclose</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.constants-module.html#isfinite\"\n     >isfinite</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.constants-module.html#isinf\"\n     >isinf</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.constants-module.html#isint0\"\n     >isint0</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.constants-module.html#isnan\"\n     >isnan</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.constants-module.html#isnear0\"\n     >isnear0</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.constants-module.html#isnear1\"\n     >isnear1</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.constants-module.html#isnear90\"\n     >isnear90</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.constants-module.html#isneg\"\n     >isneg</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.constants-module.html#isneg0\"\n     >isneg0</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.constants-module.html#isninf\"\n     >isninf</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.constants-module.html#isnon0\"\n     >isnon0</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.constants-module.html#remainder\"\n     >remainder</a><br />  <h2 class=\"toc\">Variables</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.constants-module.html#DIG\"\n     >DIG</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.constants-module.html#EPS\"\n     >EPS</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.constants-module.html#EPS0\"\n     >EPS0</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.constants-module.html#EPS02\"\n     >EPS02</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.constants-module.html#EPS1\"\n     >EPS1</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.constants-module.html#EPS2\"\n     >EPS2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.constants-module.html#EPS4\"\n     >EPS4</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.constants-module.html#EPS8\"\n     >EPS8</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.constants-module.html#EPS_2\"\n     >EPS_2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.constants-module.html#INF\"\n     >INF</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.constants-module.html#INT0\"\n     >INT0</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.constants-module.html#MANT_DIG\"\n     >MANT_DIG</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.constants-module.html#MAX\"\n     >MAX</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.constants-module.html#MAX_EXP\"\n     >MAX_EXP</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.constants-module.html#MIN\"\n     >MIN</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.constants-module.html#MIN_EXP\"\n     >MIN_EXP</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.constants-module.html#NAN\"\n     >NAN</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.constants-module.html#NEG0\"\n     >NEG0</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.constants-module.html#NINF\"\n     >NINF</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.constants-module.html#OVERFLOW\"\n     >OVERFLOW</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.constants-module.html#PI\"\n     >PI</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.constants-module.html#PI2\"\n     >PI2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.constants-module.html#PI3\"\n     >PI3</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.constants-module.html#PI3_2\"\n     >PI3_2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.constants-module.html#PI4\"\n     >PI4</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.constants-module.html#PI_2\"\n     >PI_2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.constants-module.html#PI_3\"\n     >PI_3</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.constants-module.html#PI_4\"\n     >PI_4</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.constants-module.html#PI_6\"\n     >PI_6</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.constants-module.html#R_FM\"\n     >R_FM</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.constants-module.html#R_GM\"\n     >R_GM</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.constants-module.html#R_KM\"\n     >R_KM</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.constants-module.html#R_M\"\n     >R_M</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.constants-module.html#R_MA\"\n     >R_MA</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.constants-module.html#R_MB\"\n     >R_MB</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.constants-module.html#R_NM\"\n     >R_NM</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.constants-module.html#R_QM\"\n     >R_QM</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.constants-module.html#R_SM\"\n     >R_SM</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.constants-module.html#R_VM\"\n     >R_VM</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.constants-module.html#__all__\"\n     >__all__</a><br /><hr />\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/toc-pygeodesy.css-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>css</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<h1 class=\"toc\">Module css</h1>\n<hr />\n  <h2 class=\"toc\">Classes</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.css.CSSError-class.html\"\n     >CSSError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.css.CassiniSoldner-class.html\"\n     >CassiniSoldner</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.css.Css-class.html\"\n     >Css</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.css.EasNorAziRk4Tuple-class.html\"\n     >EasNorAziRk4Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.css.EasNorAziRkEqu6Tuple-class.html\"\n     >EasNorAziRkEqu6Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.css.LatLonAziRk4Tuple-class.html\"\n     >LatLonAziRk4Tuple</a><br />  <h2 class=\"toc\">Functions</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.css-module.html#toCss\"\n     >toCss</a><br />  <h2 class=\"toc\">Variables</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.css-module.html#__all__\"\n     >__all__</a><br /><hr />\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/toc-pygeodesy.datums-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>datums</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<h1 class=\"toc\">Module datums</h1>\n<hr />\n  <h2 class=\"toc\">Classes</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.datums.Datum-class.html\"\n     >Datum</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.datums.Transform-class.html\"\n     >Transform</a><br />  <h2 class=\"toc\">Variables</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.datums-module.html#Datums.BD72\"\n     >BD72</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.datums-module.html#Transforms.BD72\"\n     >BD72</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.datums-module.html#Transforms.Bessel1841\"\n     >Bessel1841</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.datums-module.html#Transforms.Clarke1866\"\n     >Clarke1866</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.datums-module.html#Datums.DHDN\"\n     >DHDN</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.datums-module.html#Transforms.DHDN\"\n     >DHDN</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.datums-module.html#Transforms.DHDNE\"\n     >DHDNE</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.datums-module.html#Transforms.DHDNW\"\n     >DHDNW</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.datums-module.html#Datums\"\n     >Datums</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.datums-module.html#Datums.ED50\"\n     >ED50</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.datums-module.html#Transforms.ED50\"\n     >ED50</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.datums-module.html#Datums.GDA2020\"\n     >GDA2020</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.datums-module.html#Datums.GRS80\"\n     >GRS80</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.datums-module.html#Transforms.Identity\"\n     >Identity</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.datums-module.html#Transforms.Irl1965\"\n     >Irl1965</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.datums-module.html#Datums.Irl1975\"\n     >Irl1975</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.datums-module.html#Transforms.Irl1975\"\n     >Irl1975</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.datums-module.html#Datums.Krassovski1940\"\n     >Krassovski1940</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.datums-module.html#Transforms.Krassovski1940\"\n     >Krassovski1940</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.datums-module.html#Datums.Krassowsky1940\"\n     >Krassowsky1940</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.datums-module.html#Transforms.Krassowsky1940\"\n     >Krassowsky1940</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.datums-module.html#Datums.MGI\"\n     >MGI</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.datums-module.html#Transforms.MGI\"\n     >MGI</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.datums-module.html#Datums.NAD27\"\n     >NAD27</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.datums-module.html#Transforms.NAD27\"\n     >NAD27</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.datums-module.html#Datums.NAD83\"\n     >NAD83</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.datums-module.html#Transforms.NAD83\"\n     >NAD83</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.datums-module.html#Datums.NTF\"\n     >NTF</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.datums-module.html#Transforms.NTF\"\n     >NTF</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.datums-module.html#Datums.OSGB36\"\n     >OSGB36</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.datums-module.html#Transforms.OSGB36\"\n     >OSGB36</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.datums-module.html#Datums.Potsdam\"\n     >Potsdam</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.datums-module.html#Datums.Sphere\"\n     >Sphere</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.datums-module.html#Datums.TokyoJapan\"\n     >TokyoJapan</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.datums-module.html#Transforms.TokyoJapan\"\n     >TokyoJapan</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.datums-module.html#Transforms\"\n     >Transforms</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.datums-module.html#Datums.WGS72\"\n     >WGS72</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.datums-module.html#Transforms.WGS72\"\n     >WGS72</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.datums-module.html#Datums.WGS84\"\n     >WGS84</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.datums-module.html#Transforms.WGS84\"\n     >WGS84</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.datums-module.html#__all__\"\n     >__all__</a><br /><hr />\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/toc-pygeodesy.deprecated-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>deprecated</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<h1 class=\"toc\">Module deprecated</h1>\n<hr />\n  <h2 class=\"toc\">Classes</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.deprecated.classes.ClipCS3Tuple-class.html\"\n     >ClipCS3Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids.Curvature2Tuple-class.html\"\n     >Curvature2Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.datums.Datum-class.html\"\n     >Datum</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated.classes.EasNorExact4Tuple-class.html\"\n     >EasNorExact4Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated.consterns.Elliperim-class.html\"\n     >Elliperim</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\"\n     >Ellipsoid</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated.classes.Transform7Tuple-class.html\"\n     >Helmert7Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated.classes.Jacobi2Tuple-class.html\"\n     >Jacobi2Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated.classes.JacobiConformal-class.html\"\n     >JacobiConformal</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated.classes.JacobiConformalSpherical-class.html\"\n     >JacobiConformalSpherical</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated.classes.Lam_-class.html\"\n     >Lam_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated.classes.LatLonExact4Tuple-class.html\"\n     >LatLonExact4Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated.bases.LatLonHeightBase-class.html\"\n     >LatLonHeightBase</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.nvectorBase.LatLonNvectorBase-class.html\"\n     >LatLonNvectorBase</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated.classes.NearestOn4Tuple-class.html\"\n     >NearestOn4Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated.classes.Ned3Tuple-class.html\"\n     >Ned3Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated.nvector.Nvector-class.html\"\n     >Nvector</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated.classes.Phi_-class.html\"\n     >Phi_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated.classes.Rhumb7Tuple-class.html\"\n     >Rhumb7Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated.classes.RhumbOrder2Tuple-class.html\"\n     >RhumbOrder2Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.datums.Transform-class.html\"\n     >Transform</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated.classes.Transform7Tuple-class.html\"\n     >Transform7Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated.classes.TriAngle4Tuple-class.html\"\n     >TriAngle4Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated.classes.UtmUps4Tuple-class.html\"\n     >UtmUps4Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated.classes.XDist-class.html\"\n     >XDist</a><br />  <h2 class=\"toc\">Functions</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.deprecated-module.html#EcefCartesian\"\n     >EcefCartesian</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated-module.html#Fn_rt\"\n     >Fn_rt</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated-module.html#FrechetCosineAndoyerLambert\"\n     >FrechetCosineAndoyerLambert</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated-module.html#FrechetCosineForsytheAndoyerLambert\"\n     >FrechetCosineForsytheAndoyerLambert</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated-module.html#Fsum2product\"\n     >Fsum2product</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated-module.html#HausdorffCosineAndoyerLambert\"\n     >HausdorffCosineAndoyerLambert</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated-module.html#HausdorffCosineForsytheAndoyerLambert\"\n     >HausdorffCosineForsytheAndoyerLambert</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated-module.html#HeightIDW\"\n     >HeightIDW</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated-module.html#HeightIDW2\"\n     >HeightIDW2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated-module.html#HeightIDW3\"\n     >HeightIDW3</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated-module.html#HeightIDWcosineAndoyerLambert\"\n     >HeightIDWcosineAndoyerLambert</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated-module.html#HeightIDWcosineForsytheAndoyerLambert\"\n     >HeightIDWcosineForsytheAndoyerLambert</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated-module.html#RefFrameError\"\n     >RefFrameError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated-module.html#anStr\"\n     >anStr</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated-module.html#areaof\"\n     >areaof</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated-module.html#atand\"\n     >atand</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated-module.html#bounds\"\n     >bounds</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated-module.html#clipCS3\"\n     >clipCS3</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated-module.html#clipDMS\"\n     >clipDMS</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated-module.html#clipStr\"\n     >clipStr</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated-module.html#collins\"\n     >collins</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated-module.html#copysign\"\n     >copysign</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated-module.html#cosineAndoyerLambert\"\n     >cosineAndoyerLambert</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated-module.html#cosineAndoyerLambert_\"\n     >cosineAndoyerLambert_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated-module.html#cosineForsytheAndoyerLambert\"\n     >cosineForsytheAndoyerLambert</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated-module.html#cosineForsytheAndoyerLambert_\"\n     >cosineForsytheAndoyerLambert_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated-module.html#decodeEPSG2\"\n     >decodeEPSG2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated-module.html#elliperim\"\n     >elliperim</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated-module.html#elliperim_\"\n     >elliperim_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated-module.html#enStr2\"\n     >enStr2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated-module.html#encodeEPSG\"\n     >encodeEPSG</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated-module.html#equirectangular3\"\n     >equirectangular3</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated-module.html#equirectangular_\"\n     >equirectangular_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated-module.html#excessAbc\"\n     >excessAbc</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated-module.html#excessGirard\"\n     >excessGirard</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated-module.html#excessLHuilier\"\n     >excessLHuilier</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated-module.html#fStr\"\n     >fStr</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated-module.html#fStrzs\"\n     >fStrzs</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated-module.html#false2f\"\n     >false2f</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated-module.html#falsed2f\"\n     >falsed2f</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated-module.html#float0\"\n     >float0</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated-module.html#hypot3\"\n     >hypot3</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated-module.html#inStr\"\n     >inStr</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated-module.html#isenclosedby\"\n     >isenclosedby</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated-module.html#istuplist\"\n     >istuplist</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated-module.html#joined\"\n     >joined</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated-module.html#joined_\"\n     >joined_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated-module.html#nearestOn3\"\n     >nearestOn3</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated-module.html#nearestOn4\"\n     >nearestOn4</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated-module.html#parseUTM\"\n     >parseUTM</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated-module.html#perimeterof\"\n     >perimeterof</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated-module.html#points2\"\n     >points2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated-module.html#polygon\"\n     >polygon</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated-module.html#scalar\"\n     >scalar</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated-module.html#simplify2\"\n     >simplify2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated-module.html#simplifyRDPm\"\n     >simplifyRDPm</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated-module.html#simplifyVWm\"\n     >simplifyVWm</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated-module.html#sumOf\"\n     >sumOf</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated-module.html#tienstra\"\n     >tienstra</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated-module.html#toUtm\"\n     >toUtm</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated-module.html#triAngle4\"\n     >triAngle4</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated-module.html#unStr\"\n     >unStr</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated-module.html#unsign0\"\n     >unsign0</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated-module.html#utmZoneBand2\"\n     >utmZoneBand2</a><br />  <h2 class=\"toc\">Variables</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.deprecated-module.html#Datums\"\n     >Datums</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated-module.html#EPS1_2\"\n     >EPS1_2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated-module.html#Ellipsoids\"\n     >Ellipsoids</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated-module.html#MANTIS\"\n     >MANTIS</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated-module.html#NorthPole\"\n     >NorthPole</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated-module.html#OK\"\n     >OK</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated-module.html#R_FM\"\n     >R_FM</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated-module.html#R_KM\"\n     >R_KM</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated-module.html#R_M\"\n     >R_M</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated-module.html#R_MA\"\n     >R_MA</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated-module.html#R_MB\"\n     >R_MB</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated-module.html#R_NM\"\n     >R_NM</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated-module.html#R_SM\"\n     >R_SM</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated-module.html#R_VM\"\n     >R_VM</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated-module.html#SouthPole\"\n     >SouthPole</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated-module.html#Transforms\"\n     >Transforms</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated-module.html#__getattr__\"\n     >__getattr__</a><br /><hr />\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/toc-pygeodesy.deprecated.bases-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>bases</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<h1 class=\"toc\">Module bases</h1>\n<hr />\n  <h2 class=\"toc\">Classes</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.deprecated.bases.LatLonHeightBase-class.html\"\n     >LatLonHeightBase</a><br />  <h2 class=\"toc\">Functions</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.deprecated.bases-module.html#points2\"\n     >points2</a><br />  <h2 class=\"toc\">Variables</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.deprecated.bases-module.html#__all__\"\n     >__all__</a><br /><hr />\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/toc-pygeodesy.deprecated.classes-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>classes</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<h1 class=\"toc\">Module classes</h1>\n<hr />\n  <h2 class=\"toc\">Classes</h2>\n  <h2 class=\"toc\">Functions</h2>\n  <h2 class=\"toc\">Variables</h2>\n<hr />\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/toc-pygeodesy.deprecated.consterns-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>consterns</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<h1 class=\"toc\">Module consterns</h1>\n<hr />\n  <h2 class=\"toc\">Classes</h2>\n  <h2 class=\"toc\">Variables</h2>\n<hr />\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/toc-pygeodesy.deprecated.datum-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>datum</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<h1 class=\"toc\">Module datum</h1>\n<hr />\n  <h2 class=\"toc\">Classes</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids.Curvature2Tuple-class.html\"\n     >Curvature2Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.datums.Datum-class.html\"\n     >Datum</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\"\n     >Ellipsoid</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.datums.Transform-class.html\"\n     >Transform</a><br />  <h2 class=\"toc\">Variables</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.deprecated.datum-module.html#Datums\"\n     >Datums</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated.datum-module.html#Ellipsoids\"\n     >Ellipsoids</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated.datum-module.html#R_FM\"\n     >R_FM</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated.datum-module.html#R_KM\"\n     >R_KM</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated.datum-module.html#R_M\"\n     >R_M</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated.datum-module.html#R_MA\"\n     >R_MA</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated.datum-module.html#R_MB\"\n     >R_MB</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated.datum-module.html#R_NM\"\n     >R_NM</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated.datum-module.html#R_SM\"\n     >R_SM</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated.datum-module.html#R_VM\"\n     >R_VM</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated.datum-module.html#Transforms\"\n     >Transforms</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated.datum-module.html#__all__\"\n     >__all__</a><br /><hr />\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/toc-pygeodesy.deprecated.functions-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>functions</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<h1 class=\"toc\">Module functions</h1>\n<hr />\n  <h2 class=\"toc\">Functions</h2>\n  <h2 class=\"toc\">Variables</h2>\n<hr />\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/toc-pygeodesy.deprecated.nvector-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>nvector</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<h1 class=\"toc\">Module nvector</h1>\n<hr />\n  <h2 class=\"toc\">Classes</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.nvectorBase.LatLonNvectorBase-class.html\"\n     >LatLonNvectorBase</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated.nvector.Nvector-class.html\"\n     >Nvector</a><br />  <h2 class=\"toc\">Functions</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.deprecated.nvector-module.html#sumOf\"\n     >sumOf</a><br />  <h2 class=\"toc\">Variables</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.deprecated.nvector-module.html#NorthPole\"\n     >NorthPole</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated.nvector-module.html#SouthPole\"\n     >SouthPole</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.deprecated.nvector-module.html#__all__\"\n     >__all__</a><br /><hr />\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/toc-pygeodesy.deprecated.rhumbBase-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>rhumbBase</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<h1 class=\"toc\">Module rhumbBase</h1>\n<hr />\n<hr />\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/toc-pygeodesy.deprecated.rhumbaux-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>rhumbaux</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<h1 class=\"toc\">Module rhumbaux</h1>\n<hr />\n  <h2 class=\"toc\">Classes</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.rhumb.aux_.RhumbAux-class.html\"\n     >RhumbAux</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.rhumb.aux_.RhumbLineAux-class.html\"\n     >RhumbLineAux</a><br />  <h2 class=\"toc\">Variables</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.deprecated.rhumbaux-module.html#__all__\"\n     >__all__</a><br /><hr />\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/toc-pygeodesy.deprecated.rhumbsolve-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>rhumbsolve</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<h1 class=\"toc\">Module rhumbsolve</h1>\n<hr />\n  <h2 class=\"toc\">Classes</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.karney.Rhumb8Tuple-class.html\"\n     >Rhumb8Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.rhumb.solve.RhumbLineSolve-class.html\"\n     >RhumbLineSolve</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.rhumb.solve.RhumbSolve-class.html\"\n     >RhumbSolve</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.rhumb.solve.RhumbSolve7Tuple-class.html\"\n     >RhumbSolve7Tuple</a><br />  <h2 class=\"toc\">Variables</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.deprecated.rhumbsolve-module.html#__all__\"\n     >__all__</a><br /><hr />\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/toc-pygeodesy.deprecated.rhumbx-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>rhumbx</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<h1 class=\"toc\">Module rhumbx</h1>\n<hr />\n  <h2 class=\"toc\">Classes</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.rhumb.ekx.Rhumb-class.html\"\n     >Rhumb</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.rhumb.ekx.RhumbLine-class.html\"\n     >RhumbLine</a><br />  <h2 class=\"toc\">Variables</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.deprecated.rhumbx-module.html#__all__\"\n     >__all__</a><br /><hr />\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/toc-pygeodesy.dms-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>dms</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<h1 class=\"toc\">Module dms</h1>\n<hr />\n  <h2 class=\"toc\">Functions</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.dms-module.html#bearingDMS\"\n     >bearingDMS</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.dms-module.html#clipDegrees\"\n     >clipDegrees</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.dms-module.html#clipRadians\"\n     >clipRadians</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.dms-module.html#compassDMS\"\n     >compassDMS</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.dms-module.html#compassPoint\"\n     >compassPoint</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.dms-module.html#degDMS\"\n     >degDMS</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.dms-module.html#latDMS\"\n     >latDMS</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.dms-module.html#latlonDMS\"\n     >latlonDMS</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.dms-module.html#latlonDMS_\"\n     >latlonDMS_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.dms-module.html#lonDMS\"\n     >lonDMS</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.dms-module.html#normDMS\"\n     >normDMS</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.dms-module.html#parse3llh\"\n     >parse3llh</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.dms-module.html#parseDDDMMSS\"\n     >parseDDDMMSS</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.dms-module.html#parseDMS\"\n     >parseDMS</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.dms-module.html#parseDMS2\"\n     >parseDMS2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.dms-module.html#parseRad\"\n     >parseRad</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.dms-module.html#precision\"\n     >precision</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.dms-module.html#toDMS\"\n     >toDMS</a><br />  <h2 class=\"toc\">Variables</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.dms-module.html#F_D\"\n     >F_D</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.dms-module.html#F_D60\"\n     >F_D60</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.dms-module.html#F_D60_\"\n     >F_D60_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.dms-module.html#F_D60__\"\n     >F_D60__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.dms-module.html#F_DEG\"\n     >F_DEG</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.dms-module.html#F_DEG_\"\n     >F_DEG_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.dms-module.html#F_DEG__\"\n     >F_DEG__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.dms-module.html#F_DM\"\n     >F_DM</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.dms-module.html#F_DMS\"\n     >F_DMS</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.dms-module.html#F_DMS_\"\n     >F_DMS_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.dms-module.html#F_DMS__\"\n     >F_DMS__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.dms-module.html#F_DM_\"\n     >F_DM_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.dms-module.html#F_DM__\"\n     >F_DM__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.dms-module.html#F_D_\"\n     >F_D_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.dms-module.html#F_D__\"\n     >F_D__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.dms-module.html#F_MIN\"\n     >F_MIN</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.dms-module.html#F_MIN_\"\n     >F_MIN_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.dms-module.html#F_MIN__\"\n     >F_MIN__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.dms-module.html#F_RAD\"\n     >F_RAD</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.dms-module.html#F_RAD_\"\n     >F_RAD_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.dms-module.html#F_RAD__\"\n     >F_RAD__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.dms-module.html#F_SEC\"\n     >F_SEC</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.dms-module.html#F_SEC_\"\n     >F_SEC_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.dms-module.html#F_SEC__\"\n     >F_SEC__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.dms-module.html#F__E\"\n     >F__E</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.dms-module.html#F__E_\"\n     >F__E_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.dms-module.html#F__E__\"\n     >F__E__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.dms-module.html#F__F\"\n     >F__F</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.dms-module.html#F__F_\"\n     >F__F_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.dms-module.html#F__F__\"\n     >F__F__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.dms-module.html#F__G\"\n     >F__G</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.dms-module.html#F__G_\"\n     >F__G_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.dms-module.html#F__G__\"\n     >F__G__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.dms-module.html#S_DEG\"\n     >S_DEG</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.dms-module.html#S_DMS\"\n     >S_DMS</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.dms-module.html#S_MIN\"\n     >S_MIN</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.dms-module.html#S_RAD\"\n     >S_RAD</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.dms-module.html#S_SEC\"\n     >S_SEC</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.dms-module.html#S_SEP\"\n     >S_SEP</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.dms-module.html#__all__\"\n     >__all__</a><br /><hr />\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/toc-pygeodesy.ecef-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>ecef</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<h1 class=\"toc\">Module ecef</h1>\n<hr />\n  <h2 class=\"toc\">Classes</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.ecef.Ecef9Tuple-class.html\"\n     >Ecef9Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ecef.EcefError-class.html\"\n     >EcefError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ecef.EcefFarrell21-class.html\"\n     >EcefFarrell21</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ecef.EcefFarrell22-class.html\"\n     >EcefFarrell22</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ecef.EcefKarney-class.html\"\n     >EcefKarney</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ecef.EcefMatrix-class.html\"\n     >EcefMatrix</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ecef.EcefSudano-class.html\"\n     >EcefSudano</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ecef.EcefUPC-class.html\"\n     >EcefUPC</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ecef.EcefVeness-class.html\"\n     >EcefVeness</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ecef.EcefYou-class.html\"\n     >EcefYou</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ecef._EcefBase-class.html\"\n     >_EcefBase</a><br />  <h2 class=\"toc\">Variables</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.ecef-module.html#__all__\"\n     >__all__</a><br /><hr />\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/toc-pygeodesy.ecefLocals-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>ecefLocals</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<h1 class=\"toc\">Module ecefLocals</h1>\n<hr />\n  <h2 class=\"toc\">Classes</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.ecefLocals._EcefLocal-class.html\"\n     >_EcefLocal</a><br />  <h2 class=\"toc\">Variables</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.ecefLocals-module.html#__all__\"\n     >__all__</a><br /><hr />\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/toc-pygeodesy.elevations-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>elevations</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<h1 class=\"toc\">Module elevations</h1>\n<hr />\n  <h2 class=\"toc\">Classes</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.elevations.Elevation2Tuple-class.html\"\n     >Elevation2Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.elevations.GeoidHeight2Tuple-class.html\"\n     >GeoidHeight2Tuple</a><br />  <h2 class=\"toc\">Functions</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.elevations-module.html#elevation2\"\n     >elevation2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.elevations-module.html#geoidHeight2\"\n     >geoidHeight2</a><br />  <h2 class=\"toc\">Variables</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.elevations-module.html#__all__\"\n     >__all__</a><br /><hr />\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/toc-pygeodesy.ellipses-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>ellipses</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<h1 class=\"toc\">Module ellipses</h1>\n<hr />\n  <h2 class=\"toc\">Classes</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.ellipses.Ellipse-class.html\"\n     >Ellipse</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipses.EllipseError-class.html\"\n     >EllipseError</a><br />  <h2 class=\"toc\">Variables</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.ellipses-module.html#__all__\"\n     >__all__</a><br /><hr />\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/toc-pygeodesy.ellipsoidalBase-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>ellipsoidalBase</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<h1 class=\"toc\">Module ellipsoidalBase</h1>\n<hr />\n  <h2 class=\"toc\">Classes</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase-class.html\"\n     >CartesianEllipsoidalBase</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase-class.html\"\n     >LatLonEllipsoidalBase</a><br />  <h2 class=\"toc\">Variables</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoidalBase-module.html#__all__\"\n     >__all__</a><br /><hr />\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/toc-pygeodesy.ellipsoidalBaseDI-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>ellipsoidalBaseDI</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<h1 class=\"toc\">Module ellipsoidalBaseDI</h1>\n<hr />\n  <h2 class=\"toc\">Classes</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI-class.html\"\n     >LatLonEllipsoidalBaseDI</a><br />  <h2 class=\"toc\">Functions</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoidalBaseDI-module.html#intersecant2\"\n     >intersecant2</a><br />  <h2 class=\"toc\">Variables</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoidalBaseDI-module.html#__all__\"\n     >__all__</a><br /><hr />\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/toc-pygeodesy.ellipsoidalExact-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>ellipsoidalExact</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<h1 class=\"toc\">Module ellipsoidalExact</h1>\n<hr />\n  <h2 class=\"toc\">Classes</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoidalExact.Cartesian-class.html\"\n     >Cartesian</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoidalExact.LatLon-class.html\"\n     >LatLon</a><br />  <h2 class=\"toc\">Functions</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoidalExact-module.html#areaOf\"\n     >areaOf</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoidalExact-module.html#intersecant2\"\n     >intersecant2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoidalExact-module.html#intersection3\"\n     >intersection3</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoidalExact-module.html#intersections2\"\n     >intersections2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoidalExact-module.html#isclockwise\"\n     >isclockwise</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoidalExact-module.html#ispolar\"\n     >ispolar</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoidalExact-module.html#nearestOn\"\n     >nearestOn</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoidalExact-module.html#perimeterOf\"\n     >perimeterOf</a><br />  <h2 class=\"toc\">Variables</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoidalExact-module.html#__all__\"\n     >__all__</a><br /><hr />\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/toc-pygeodesy.ellipsoidalGeodSolve-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>ellipsoidalGeodSolve</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<h1 class=\"toc\">Module ellipsoidalGeodSolve</h1>\n<hr />\n  <h2 class=\"toc\">Classes</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoidalGeodSolve.Cartesian-class.html\"\n     >Cartesian</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoidalGeodSolve.LatLon-class.html\"\n     >LatLon</a><br />  <h2 class=\"toc\">Functions</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoidalGeodSolve-module.html#areaOf\"\n     >areaOf</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoidalGeodSolve-module.html#intersection3\"\n     >intersection3</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoidalGeodSolve-module.html#intersections2\"\n     >intersections2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoidalGeodSolve-module.html#isclockwise\"\n     >isclockwise</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoidalGeodSolve-module.html#ispolar\"\n     >ispolar</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoidalGeodSolve-module.html#nearestOn\"\n     >nearestOn</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoidalGeodSolve-module.html#perimeterOf\"\n     >perimeterOf</a><br />  <h2 class=\"toc\">Variables</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoidalGeodSolve-module.html#__all__\"\n     >__all__</a><br /><hr />\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/toc-pygeodesy.ellipsoidalKarney-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>ellipsoidalKarney</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<h1 class=\"toc\">Module ellipsoidalKarney</h1>\n<hr />\n  <h2 class=\"toc\">Classes</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoidalKarney.Cartesian-class.html\"\n     >Cartesian</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoidalKarney.LatLon-class.html\"\n     >LatLon</a><br />  <h2 class=\"toc\">Functions</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoidalKarney-module.html#areaOf\"\n     >areaOf</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoidalKarney-module.html#intersecant2\"\n     >intersecant2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoidalKarney-module.html#intersection3\"\n     >intersection3</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoidalKarney-module.html#intersections2\"\n     >intersections2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoidalKarney-module.html#isclockwise\"\n     >isclockwise</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoidalKarney-module.html#ispolar\"\n     >ispolar</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoidalKarney-module.html#nearestOn\"\n     >nearestOn</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoidalKarney-module.html#perimeterOf\"\n     >perimeterOf</a><br />  <h2 class=\"toc\">Variables</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoidalKarney-module.html#__all__\"\n     >__all__</a><br /><hr />\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/toc-pygeodesy.ellipsoidalNvector-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>ellipsoidalNvector</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<h1 class=\"toc\">Module ellipsoidalNvector</h1>\n<hr />\n  <h2 class=\"toc\">Classes</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoidalNvector.Cartesian-class.html\"\n     >Cartesian</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoidalNvector.LatLon-class.html\"\n     >LatLon</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoidalNvector.Ned-class.html\"\n     >Ned</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoidalNvector.Nvector-class.html\"\n     >Nvector</a><br />  <h2 class=\"toc\">Functions</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoidalNvector-module.html#meanOf\"\n     >meanOf</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoidalNvector-module.html#sumOf\"\n     >sumOf</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoidalNvector-module.html#toNed\"\n     >toNed</a><br />  <h2 class=\"toc\">Variables</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoidalNvector-module.html#__all__\"\n     >__all__</a><br /><hr />\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/toc-pygeodesy.ellipsoidalVincenty-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>ellipsoidalVincenty</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<h1 class=\"toc\">Module ellipsoidalVincenty</h1>\n<hr />\n  <h2 class=\"toc\">Classes</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoidalVincenty.Cartesian-class.html\"\n     >Cartesian</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoidalVincenty.LatLon-class.html\"\n     >LatLon</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoidalVincenty.VincentyError-class.html\"\n     >VincentyError</a><br />  <h2 class=\"toc\">Functions</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoidalVincenty-module.html#areaOf\"\n     >areaOf</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoidalVincenty-module.html#intersecant2\"\n     >intersecant2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoidalVincenty-module.html#intersection3\"\n     >intersection3</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoidalVincenty-module.html#intersections2\"\n     >intersections2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoidalVincenty-module.html#ispolar\"\n     >ispolar</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoidalVincenty-module.html#nearestOn\"\n     >nearestOn</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoidalVincenty-module.html#perimeterOf\"\n     >perimeterOf</a><br />  <h2 class=\"toc\">Variables</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoidalVincenty-module.html#__all__\"\n     >__all__</a><br /><hr />\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/toc-pygeodesy.ellipsoids-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>ellipsoids</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<h1 class=\"toc\">Module ellipsoids</h1>\n<hr />\n  <h2 class=\"toc\">Classes</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids.Curvature2Tuple-class.html\"\n     >Curvature2Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids.Ellipsoid-class.html\"\n     >Ellipsoid</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids.Ellipsoid2-class.html\"\n     >Ellipsoid2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids.a_f2Tuple-class.html\"\n     >a_f2Tuple</a><br />  <h2 class=\"toc\">Functions</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#a_b2e\"\n     >a_b2e</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#a_b2e2\"\n     >a_b2e2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#a_b2e22\"\n     >a_b2e22</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#a_b2e32\"\n     >a_b2e32</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#a_b2f\"\n     >a_b2f</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#a_b2f2\"\n     >a_b2f2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#a_b2f_\"\n     >a_b2f_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#a_b2n\"\n     >a_b2n</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#a_f2b\"\n     >a_f2b</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#a_f_2b\"\n     >a_f_2b</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#b_f2a\"\n     >b_f2a</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#b_f_2a\"\n     >b_f_2a</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#e22f\"\n     >e22f</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#e2f\"\n     >e2f</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#f2e2\"\n     >f2e2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#f2e22\"\n     >f2e22</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#f2e32\"\n     >f2e32</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#f2f2\"\n     >f2f2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#f2f_\"\n     >f2f_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#f2n\"\n     >f2n</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#f_2f\"\n     >f_2f</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#n2e2\"\n     >n2e2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#n2f\"\n     >n2f</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#n2f_\"\n     >n2f_</a><br />  <h2 class=\"toc\">Variables</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#Ellipsoids.ATS1977\"\n     >ATS1977</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#Ellipsoids.Airy1830\"\n     >Airy1830</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#Ellipsoids.AiryModified\"\n     >AiryModified</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#Ellipsoids.Australia1966\"\n     >Australia1966</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#Ellipsoids.Bessel1841\"\n     >Bessel1841</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#Ellipsoids.BesselModified\"\n     >BesselModified</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#Ellipsoids.CGCS2000\"\n     >CGCS2000</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#Ellipsoids.CPM1799\"\n     >CPM1799</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#Ellipsoids.Clarke1866\"\n     >Clarke1866</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#Ellipsoids.Clarke1880\"\n     >Clarke1880</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#Ellipsoids.Clarke1880IGN\"\n     >Clarke1880IGN</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#Ellipsoids.Clarke1880Mod\"\n     >Clarke1880Mod</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#Ellipsoids.Delambre1810\"\n     >Delambre1810</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#Ellipsoids\"\n     >Ellipsoids</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#Ellipsoids.Engelis1985\"\n     >Engelis1985</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#Ellipsoids.Everest1969\"\n     >Everest1969</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#Ellipsoids.Everest1975\"\n     >Everest1975</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#Ellipsoids.Fisher1968\"\n     >Fisher1968</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#Ellipsoids.GEM10C\"\n     >GEM10C</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#Ellipsoids.GPES\"\n     >GPES</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#Ellipsoids.GRS67\"\n     >GRS67</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#Ellipsoids.GRS80\"\n     >GRS80</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#Ellipsoids.Helmert1906\"\n     >Helmert1906</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#Ellipsoids.IAU76\"\n     >IAU76</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#Ellipsoids.IERS1989\"\n     >IERS1989</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#Ellipsoids.IERS1992TOPEX\"\n     >IERS1992TOPEX</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#Ellipsoids.IERS2003\"\n     >IERS2003</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#Ellipsoids.Intl1924\"\n     >Intl1924</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#Ellipsoids.Intl1967\"\n     >Intl1967</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#Ellipsoids.Krassovski1940\"\n     >Krassovski1940</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#Ellipsoids.Krassowsky1940\"\n     >Krassowsky1940</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#Ellipsoids.Maupertuis1738\"\n     >Maupertuis1738</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#Ellipsoids.Mercury1960\"\n     >Mercury1960</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#Ellipsoids.Mercury1968Mod\"\n     >Mercury1968Mod</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#Ellipsoids.NWL1965\"\n     >NWL1965</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#Ellipsoids.OSU86F\"\n     >OSU86F</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#Ellipsoids.OSU91A\"\n     >OSU91A</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#Ellipsoids.PZ90\"\n     >PZ90</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#Ellipsoids.Plessis1817\"\n     >Plessis1817</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#Ellipsoids.SGS85\"\n     >SGS85</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#Ellipsoids.SoAmerican1969\"\n     >SoAmerican1969</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#Ellipsoids.Sphere\"\n     >Sphere</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#Ellipsoids.SphereAuthalic\"\n     >SphereAuthalic</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#Ellipsoids.SpherePopular\"\n     >SpherePopular</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#Ellipsoids.Struve1860\"\n     >Struve1860</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#Ellipsoids.WGS60\"\n     >WGS60</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#Ellipsoids.WGS66\"\n     >WGS66</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#Ellipsoids.WGS72\"\n     >WGS72</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#Ellipsoids.WGS84\"\n     >WGS84</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#Ellipsoids.WGS84_NGS\"\n     >WGS84_NGS</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ellipsoids-module.html#__all__\"\n     >__all__</a><br /><hr />\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/toc-pygeodesy.elliptic-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>elliptic</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<h1 class=\"toc\">Module elliptic</h1>\n<hr />\n  <h2 class=\"toc\">Classes</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.elliptic.Elliptic-class.html\"\n     >Elliptic</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.elliptic.Elliptic3Tuple-class.html\"\n     >Elliptic3Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.elliptic.EllipticError-class.html\"\n     >EllipticError</a><br />  <h2 class=\"toc\">Variables</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.elliptic-module.html#__all__\"\n     >__all__</a><br /><hr />\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/toc-pygeodesy.epsg-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>epsg</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<h1 class=\"toc\">Module epsg</h1>\n<hr />\n  <h2 class=\"toc\">Classes</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.epsg.EPSGError-class.html\"\n     >EPSGError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.epsg.Epsg-class.html\"\n     >Epsg</a><br />  <h2 class=\"toc\">Functions</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.epsg-module.html#decode2\"\n     >decode2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.epsg-module.html#encode\"\n     >encode</a><br />  <h2 class=\"toc\">Variables</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.epsg-module.html#__all__\"\n     >__all__</a><br /><hr />\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/toc-pygeodesy.errors-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>errors</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<h1 class=\"toc\">Module errors</h1>\n<hr />\n  <h2 class=\"toc\">Classes</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.errors.AuxError-class.html\"\n     >AuxError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.errors.ClipError-class.html\"\n     >ClipError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.errors.CrossError-class.html\"\n     >CrossError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.errors.GeodesicError-class.html\"\n     >GeodesicError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.errors.IntersectionError-class.html\"\n     >IntersectionError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.errors.LenError-class.html\"\n     >LenError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.errors.LimitError-class.html\"\n     >LimitError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.errors.MGRSError-class.html\"\n     >MGRSError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.errors.NumPyError-class.html\"\n     >NumPyError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.errors.ParseError-class.html\"\n     >ParseError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.errors.PointsError-class.html\"\n     >PointsError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.errors.RangeError-class.html\"\n     >RangeError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.errors.RhumbError-class.html\"\n     >RhumbError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.errors.SciPyError-class.html\"\n     >SciPyError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.errors.SciPyWarning-class.html\"\n     >SciPyWarning</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.errors.TRFError-class.html\"\n     >TRFError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.errors.TriangleError-class.html\"\n     >TriangleError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.errors.UnitError-class.html\"\n     >UnitError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.errors.VectorError-class.html\"\n     >VectorError</a><br />  <h2 class=\"toc\">Functions</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.errors-module.html#crosserrors\"\n     >crosserrors</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.errors-module.html#exception_chaining\"\n     >exception_chaining</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.errors-module.html#isError\"\n     >isError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.errors-module.html#limiterrors\"\n     >limiterrors</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.errors-module.html#rangerrors\"\n     >rangerrors</a><br />  <h2 class=\"toc\">Variables</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.errors-module.html#__all__\"\n     >__all__</a><br /><hr />\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/toc-pygeodesy.etm-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>etm</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<h1 class=\"toc\">Module etm</h1>\n<hr />\n  <h2 class=\"toc\">Classes</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.etm.ETMError-class.html\"\n     >ETMError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.etm.Etm-class.html\"\n     >Etm</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.etm.ExactTransverseMercator-class.html\"\n     >ExactTransverseMercator</a><br />  <h2 class=\"toc\">Functions</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.etm-module.html#parseETM5\"\n     >parseETM5</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.etm-module.html#toEtm8\"\n     >toEtm8</a><br />  <h2 class=\"toc\">Variables</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.etm-module.html#__all__\"\n     >__all__</a><br /><hr />\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/toc-pygeodesy.fmath-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>fmath</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<h1 class=\"toc\">Module fmath</h1>\n<hr />\n  <h2 class=\"toc\">Classes</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.fmath.Fcbrt-class.html\"\n     >Fcbrt</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fmath.Fdot-class.html\"\n     >Fdot</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fmath.Fdot_-class.html\"\n     >Fdot_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fmath.Fhorner-class.html\"\n     >Fhorner</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fmath.Fhypot-class.html\"\n     >Fhypot</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fmath.Fpolynomial-class.html\"\n     >Fpolynomial</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fmath.Fpowers-class.html\"\n     >Fpowers</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fmath.Froot-class.html\"\n     >Froot</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fmath.Fsqrt-class.html\"\n     >Fsqrt</a><br />  <h2 class=\"toc\">Functions</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.fmath-module.html#bqrt\"\n     >bqrt</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fmath-module.html#cbrt\"\n     >cbrt</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fmath-module.html#cbrt2\"\n     >cbrt2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fmath-module.html#euclid\"\n     >euclid</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fmath-module.html#euclid_\"\n     >euclid_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fmath-module.html#f2mul_\"\n     >f2mul_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fmath-module.html#facos1\"\n     >facos1</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fmath-module.html#fasin1\"\n     >fasin1</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fmath-module.html#fatan\"\n     >fatan</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fmath-module.html#fatan1\"\n     >fatan1</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fmath-module.html#fatan2\"\n     >fatan2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fmath-module.html#favg\"\n     >favg</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fmath-module.html#fdot\"\n     >fdot</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fmath-module.html#fdot3\"\n     >fdot3</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fmath-module.html#fdot_\"\n     >fdot_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fmath-module.html#fhorner\"\n     >fhorner</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fmath-module.html#fidw\"\n     >fidw</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fmath-module.html#fma\"\n     >fma</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fmath-module.html#fmean\"\n     >fmean</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fmath-module.html#fmean_\"\n     >fmean_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fmath-module.html#fpolynomial\"\n     >fpolynomial</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fmath-module.html#fpowers\"\n     >fpowers</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fmath-module.html#fprod\"\n     >fprod</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fmath-module.html#frandoms\"\n     >frandoms</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fmath-module.html#frange\"\n     >frange</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fmath-module.html#freduce\"\n     >freduce</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fmath-module.html#fremainder\"\n     >fremainder</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fmath-module.html#hypot\"\n     >hypot</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fmath-module.html#hypot1\"\n     >hypot1</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fmath-module.html#hypot2\"\n     >hypot2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fmath-module.html#hypot2_\"\n     >hypot2_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fmath-module.html#hypot_\"\n     >hypot_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fmath-module.html#norm2\"\n     >norm2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fmath-module.html#norm_\"\n     >norm_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fmath-module.html#polar2\"\n     >polar2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fmath-module.html#polar2d\"\n     >polar2d</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fmath-module.html#sqrt0\"\n     >sqrt0</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fmath-module.html#sqrt3\"\n     >sqrt3</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fmath-module.html#sqrt_a\"\n     >sqrt_a</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fmath-module.html#zcrt\"\n     >zcrt</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fmath-module.html#zqrt\"\n     >zqrt</a><br />  <h2 class=\"toc\">Variables</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.fmath-module.html#__all__\"\n     >__all__</a><br /><hr />\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/toc-pygeodesy.formy-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>formy</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<h1 class=\"toc\">Module formy</h1>\n<hr />\n  <h2 class=\"toc\">Classes</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.formy.Radical2Tuple-class.html\"\n     >Radical2Tuple</a><br />  <h2 class=\"toc\">Functions</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.formy-module.html#angle2chord\"\n     >angle2chord</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.formy-module.html#antipode\"\n     >antipode</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.formy-module.html#antipode_\"\n     >antipode_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.formy-module.html#bearing\"\n     >bearing</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.formy-module.html#bearing_\"\n     >bearing_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.formy-module.html#chord2angle\"\n     >chord2angle</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.formy-module.html#compassAngle\"\n     >compassAngle</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.formy-module.html#cosineLaw\"\n     >cosineLaw</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.formy-module.html#cosineLaw_\"\n     >cosineLaw_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.formy-module.html#equirectangular\"\n     >equirectangular</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.formy-module.html#equirectangular4\"\n     >equirectangular4</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.formy-module.html#euclidean\"\n     >euclidean</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.formy-module.html#euclidean_\"\n     >euclidean_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.formy-module.html#excessAbc_\"\n     >excessAbc_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.formy-module.html#excessCagnoli_\"\n     >excessCagnoli_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.formy-module.html#excessGirard_\"\n     >excessGirard_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.formy-module.html#excessKarney\"\n     >excessKarney</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.formy-module.html#excessKarney_\"\n     >excessKarney_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.formy-module.html#excessLHuilier_\"\n     >excessLHuilier_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.formy-module.html#excessQuad\"\n     >excessQuad</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.formy-module.html#excessQuad_\"\n     >excessQuad_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.formy-module.html#flatLocal\"\n     >flatLocal</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.formy-module.html#flatLocal_\"\n     >flatLocal_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.formy-module.html#flatPolar\"\n     >flatPolar</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.formy-module.html#flatPolar_\"\n     >flatPolar_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.formy-module.html#hartzell\"\n     >hartzell</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.formy-module.html#haversine\"\n     >haversine</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.formy-module.html#haversine_\"\n     >haversine_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.formy-module.html#heightOf\"\n     >heightOf</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.formy-module.html#heightOrthometric\"\n     >heightOrthometric</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.formy-module.html#horizon\"\n     >horizon</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.formy-module.html#hubeny\"\n     >hubeny</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.formy-module.html#hubeny_\"\n     >hubeny_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.formy-module.html#intersection2\"\n     >intersection2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.formy-module.html#intersections2\"\n     >intersections2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.formy-module.html#isantipode\"\n     >isantipode</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.formy-module.html#isantipode_\"\n     >isantipode_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.formy-module.html#isnormal\"\n     >isnormal</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.formy-module.html#isnormal_\"\n     >isnormal_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.formy-module.html#normal\"\n     >normal</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.formy-module.html#normal_\"\n     >normal_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.formy-module.html#opposing\"\n     >opposing</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.formy-module.html#opposing_\"\n     >opposing_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.formy-module.html#radical2\"\n     >radical2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.formy-module.html#thomas\"\n     >thomas</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.formy-module.html#thomas_\"\n     >thomas_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.formy-module.html#vincentys\"\n     >vincentys</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.formy-module.html#vincentys_\"\n     >vincentys_</a><br />  <h2 class=\"toc\">Variables</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.formy-module.html#__all__\"\n     >__all__</a><br /><hr />\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/toc-pygeodesy.frechet-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>frechet</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<h1 class=\"toc\">Module frechet</h1>\n<hr />\n  <h2 class=\"toc\">Classes</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.frechet.Frechet-class.html\"\n     >Frechet</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.frechet.Frechet6Tuple-class.html\"\n     >Frechet6Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.frechet.FrechetCosineLaw-class.html\"\n     >FrechetCosineLaw</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.frechet.FrechetDegrees-class.html\"\n     >FrechetDegrees</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.frechet.FrechetDistanceTo-class.html\"\n     >FrechetDistanceTo</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.frechet.FrechetEquirectangular-class.html\"\n     >FrechetEquirectangular</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.frechet.FrechetError-class.html\"\n     >FrechetError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.frechet.FrechetEuclidean-class.html\"\n     >FrechetEuclidean</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.frechet.FrechetExact-class.html\"\n     >FrechetExact</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.frechet.FrechetFlatLocal-class.html\"\n     >FrechetFlatLocal</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.frechet.FrechetFlatPolar-class.html\"\n     >FrechetFlatPolar</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.frechet.FrechetHaversine-class.html\"\n     >FrechetHaversine</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.frechet.FrechetHubeny-class.html\"\n     >FrechetHubeny</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.frechet.FrechetKarney-class.html\"\n     >FrechetKarney</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.frechet.FrechetRadians-class.html\"\n     >FrechetRadians</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.frechet.FrechetThomas-class.html\"\n     >FrechetThomas</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.frechet.FrechetVincentys-class.html\"\n     >FrechetVincentys</a><br />  <h2 class=\"toc\">Functions</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.frechet-module.html#frechet_\"\n     >frechet_</a><br />  <h2 class=\"toc\">Variables</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.frechet-module.html#__all__\"\n     >__all__</a><br /><hr />\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/toc-pygeodesy.fstats-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>fstats</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<h1 class=\"toc\">Module fstats</h1>\n<hr />\n  <h2 class=\"toc\">Classes</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.fstats.Fcook-class.html\"\n     >Fcook</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fstats.Flinear-class.html\"\n     >Flinear</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fstats.Fwelford-class.html\"\n     >Fwelford</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fstats._FstatsBase-class.html\"\n     >_FstatsBase</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fstats._FstatsNamed-class.html\"\n     >_FstatsNamed</a><br />  <h2 class=\"toc\">Variables</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.fstats-module.html#__all__\"\n     >__all__</a><br /><hr />\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/toc-pygeodesy.fsums-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>fsums</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<h1 class=\"toc\">Module fsums</h1>\n<hr />\n  <h2 class=\"toc\">Classes</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.fsums.DivMod2Tuple-class.html\"\n     >DivMod2Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fsums.Fsum-class.html\"\n     >Fsum</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fsums.Fsum2Tuple-class.html\"\n     >Fsum2Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fsums.ResidualError-class.html\"\n     >ResidualError</a><br />  <h2 class=\"toc\">Functions</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.fsums-module.html#f2product\"\n     >f2product</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fsums-module.html#fsum\"\n     >fsum</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fsums-module.html#fsum1\"\n     >fsum1</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fsums-module.html#fsum1_\"\n     >fsum1_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fsums-module.html#fsum1f_\"\n     >fsum1f_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fsums-module.html#fsum_\"\n     >fsum_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fsums-module.html#fsumf_\"\n     >fsumf_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.fsums-module.html#nonfiniterrors\"\n     >nonfiniterrors</a><br />  <h2 class=\"toc\">Variables</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.fsums-module.html#__all__\"\n     >__all__</a><br /><hr />\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/toc-pygeodesy.gars-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>gars</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<h1 class=\"toc\">Module gars</h1>\n<hr />\n  <h2 class=\"toc\">Classes</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.gars.GARSError-class.html\"\n     >GARSError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.gars.Garef-class.html\"\n     >Garef</a><br />  <h2 class=\"toc\">Functions</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.gars-module.html#decode3\"\n     >decode3</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.gars-module.html#encode\"\n     >encode</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.gars-module.html#precision\"\n     >precision</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.gars-module.html#resolution\"\n     >resolution</a><br />  <h2 class=\"toc\">Variables</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.gars-module.html#__all__\"\n     >__all__</a><br /><hr />\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/toc-pygeodesy.geod3solve-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>geod3solve</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<h1 class=\"toc\">Module geod3solve</h1>\n<hr />\n  <h2 class=\"toc\">Classes</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.geod3solve.Geod3Solve8Tuple-class.html\"\n     >Geod3Solve8Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geod3solve.Geodesic3Error-class.html\"\n     >Geodesic3Error</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geod3solve.Geodesic3Solve-class.html\"\n     >Geodesic3Solve</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geod3solve.GeodesicLine3Solve-class.html\"\n     >GeodesicLine3Solve</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geod3solve._Geodesic3SolveBase-class.html\"\n     >_Geodesic3SolveBase</a><br />  <h2 class=\"toc\">Variables</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.geod3solve-module.html#__all__\"\n     >__all__</a><br /><hr />\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/toc-pygeodesy.geodesici-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>geodesici</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<h1 class=\"toc\">Module geodesici</h1>\n<hr />\n  <h2 class=\"toc\">Classes</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.geodesici.Intersect7Tuple-class.html\"\n     >Intersect7Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geodesici.Intersectool-class.html\"\n     >Intersectool</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geodesici.Intersectool5Tuple-class.html\"\n     >Intersectool5Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geodesici.Intersector-class.html\"\n     >Intersector</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geodesici.Intersector5Tuple-class.html\"\n     >Intersector5Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geodesici.Middle5Tuple-class.html\"\n     >Middle5Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geodesici.XDict-class.html\"\n     >XDict</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geodesici._IntersectBase-class.html\"\n     >_IntersectBase</a><br />  <h2 class=\"toc\">Variables</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.geodesici-module.html#__all__\"\n     >__all__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geodesici-module.html#x\"\n     >x</a><br /><hr />\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/toc-pygeodesy.geodesicw-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>geodesicw</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<h1 class=\"toc\">Module geodesicw</h1>\n<hr />\n  <h2 class=\"toc\">Classes</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.geodesicw.Geodesic-class.html\"\n     >Geodesic</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geodesicw.GeodesicLine-class.html\"\n     >GeodesicLine</a><br />  <h2 class=\"toc\">Functions</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.geodesicw-module.html#Geodesic_WGS84\"\n     >Geodesic_WGS84</a><br />  <h2 class=\"toc\">Variables</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.geodesicw-module.html#__all__\"\n     >__all__</a><br /><hr />\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/toc-pygeodesy.geodesicx-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>geodesicx</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<h1 class=\"toc\">Module geodesicx</h1>\n<hr />\n  <h2 class=\"toc\">Classes</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.karney.Caps-class.html\"\n     >Caps</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html\"\n     >GeodesicAreaExact</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.errors.GeodesicError-class.html\"\n     >GeodesicError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html\"\n     >GeodesicExact</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geodesicx.gx.GeodesicLineExact-class.html\"\n     >GeodesicLineExact</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geodesicx.gxarea.PolygonArea-class.html\"\n     >PolygonArea</a><br /><hr />\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/toc-pygeodesy.geodesicx._C4_24-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>_C4_24</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<h1 class=\"toc\">Module _C4_24</h1>\n<hr />\n<hr />\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/toc-pygeodesy.geodesicx._C4_27-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>_C4_27</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<h1 class=\"toc\">Module _C4_27</h1>\n<hr />\n<hr />\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/toc-pygeodesy.geodesicx._C4_30-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>_C4_30</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<h1 class=\"toc\">Module _C4_30</h1>\n<hr />\n<hr />\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/toc-pygeodesy.geodesicx.__main__-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>__main__</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<h1 class=\"toc\">Module __main__</h1>\n<hr />\n<hr />\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/toc-pygeodesy.geodesicx.gx-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>gx</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<h1 class=\"toc\">Module gx</h1>\n<hr />\n  <h2 class=\"toc\">Classes</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.geodesicx.gx.GeodesicExact-class.html\"\n     >GeodesicExact</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geodesicx.gx.GeodesicLineExact-class.html\"\n     >GeodesicLineExact</a><br /><hr />\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/toc-pygeodesy.geodesicx.gxarea-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>gxarea</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<h1 class=\"toc\">Module gxarea</h1>\n<hr />\n  <h2 class=\"toc\">Classes</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.geodesicx.gxarea.GeodesicAreaExact-class.html\"\n     >GeodesicAreaExact</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geodesicx.gxarea.PolygonArea-class.html\"\n     >PolygonArea</a><br /><hr />\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/toc-pygeodesy.geodesicx.gxbases-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>gxbases</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<h1 class=\"toc\">Module gxbases</h1>\n<hr />\n<hr />\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/toc-pygeodesy.geodesicx.gxline-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>gxline</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<h1 class=\"toc\">Module gxline</h1>\n<hr />\n  <h2 class=\"toc\">Classes</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.geodesicx.gxline._GeodesicLineExact-class.html\"\n     >_GeodesicLineExact</a><br /><hr />\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/toc-pygeodesy.geodsolve-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>geodsolve</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<h1 class=\"toc\">Module geodsolve</h1>\n<hr />\n  <h2 class=\"toc\">Classes</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.geodsolve.GeodSolve12Tuple-class.html\"\n     >GeodSolve12Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geodsolve.GeodesicLineSolve-class.html\"\n     >GeodesicLineSolve</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geodsolve.GeodesicSolve-class.html\"\n     >GeodesicSolve</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geodsolve._GeodesicSolveBase-class.html\"\n     >_GeodesicSolveBase</a><br />  <h2 class=\"toc\">Variables</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.geodsolve-module.html#__all__\"\n     >__all__</a><br /><hr />\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/toc-pygeodesy.geohash-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>geohash</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<h1 class=\"toc\">Module geohash</h1>\n<hr />\n  <h2 class=\"toc\">Classes</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.geohash.Geohash-class.html\"\n     >Geohash</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geohash.GeohashError-class.html\"\n     >GeohashError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geohash.Geohashed-class.html\"\n     >Geohashed</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geohash.Neighbors8Dict-class.html\"\n     >Neighbors8Dict</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geohash.Resolutions2Tuple-class.html\"\n     >Resolutions2Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geohash.Sizes3Tuple-class.html\"\n     >Sizes3Tuple</a><br />  <h2 class=\"toc\">Functions</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.geohash-module.html#bounds\"\n     >bounds</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geohash-module.html#decode\"\n     >decode</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geohash-module.html#decode2\"\n     >decode2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geohash-module.html#decode_error\"\n     >decode_error</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geohash-module.html#decode_error2\"\n     >decode_error2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geohash-module.html#distance_\"\n     >distance_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geohash-module.html#encode\"\n     >encode</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geohash-module.html#equirectangular4\"\n     >equirectangular4</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geohash-module.html#euclidean_\"\n     >euclidean_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geohash-module.html#haversine_\"\n     >haversine_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geohash-module.html#neighbors\"\n     >neighbors</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geohash-module.html#precision\"\n     >precision</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geohash-module.html#resolution2\"\n     >resolution2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geohash-module.html#sizes\"\n     >sizes</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geohash-module.html#sizes3\"\n     >sizes3</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geohash-module.html#vincentys_\"\n     >vincentys_</a><br />  <h2 class=\"toc\">Variables</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.geohash-module.html#__all__\"\n     >__all__</a><br /><hr />\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/toc-pygeodesy.geoids-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>geoids</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<h1 class=\"toc\">Module geoids</h1>\n<hr />\n  <h2 class=\"toc\">Classes</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.geoids.GeoidEGM96-class.html\"\n     >GeoidEGM96</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geoids.GeoidError-class.html\"\n     >GeoidError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geoids.GeoidG2012B-class.html\"\n     >GeoidG2012B</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geoids.GeoidHeight5Tuple-class.html\"\n     >GeoidHeight5Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geoids.GeoidKarney-class.html\"\n     >GeoidKarney</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geoids.GeoidPGM-class.html\"\n     >GeoidPGM</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geoids.PGMError-class.html\"\n     >PGMError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geoids._GeoidBase-class.html\"\n     >_GeoidBase</a><br />  <h2 class=\"toc\">Functions</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.geoids-module.html#egmGeoidHeights\"\n     >egmGeoidHeights</a><br />  <h2 class=\"toc\">Variables</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.geoids-module.html#__all__\"\n     >__all__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.geoids-module.html#geoids\"\n     >geoids</a><br /><hr />\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/toc-pygeodesy.hausdorff-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>hausdorff</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<h1 class=\"toc\">Module hausdorff</h1>\n<hr />\n  <h2 class=\"toc\">Classes</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.hausdorff.Hausdorff-class.html\"\n     >Hausdorff</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.hausdorff.Hausdorff6Tuple-class.html\"\n     >Hausdorff6Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.hausdorff.HausdorffCosineLaw-class.html\"\n     >HausdorffCosineLaw</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.hausdorff.HausdorffDegrees-class.html\"\n     >HausdorffDegrees</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.hausdorff.HausdorffDistanceTo-class.html\"\n     >HausdorffDistanceTo</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.hausdorff.HausdorffEquirectangular-class.html\"\n     >HausdorffEquirectangular</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.hausdorff.HausdorffError-class.html\"\n     >HausdorffError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.hausdorff.HausdorffEuclidean-class.html\"\n     >HausdorffEuclidean</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.hausdorff.HausdorffExact-class.html\"\n     >HausdorffExact</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.hausdorff.HausdorffFlatLocal-class.html\"\n     >HausdorffFlatLocal</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.hausdorff.HausdorffFlatPolar-class.html\"\n     >HausdorffFlatPolar</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.hausdorff.HausdorffHaversine-class.html\"\n     >HausdorffHaversine</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.hausdorff.HausdorffHubeny-class.html\"\n     >HausdorffHubeny</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.hausdorff.HausdorffKarney-class.html\"\n     >HausdorffKarney</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.hausdorff.HausdorffRadians-class.html\"\n     >HausdorffRadians</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.hausdorff.HausdorffThomas-class.html\"\n     >HausdorffThomas</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.hausdorff.HausdorffVincentys-class.html\"\n     >HausdorffVincentys</a><br />  <h2 class=\"toc\">Functions</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.hausdorff-module.html#hausdorff_\"\n     >hausdorff_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.hausdorff-module.html#randomrangenerator\"\n     >randomrangenerator</a><br />  <h2 class=\"toc\">Variables</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.hausdorff-module.html#__all__\"\n     >__all__</a><br /><hr />\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/toc-pygeodesy.heights-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>heights</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<h1 class=\"toc\">Module heights</h1>\n<hr />\n  <h2 class=\"toc\">Classes</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.heights.HeightCubic-class.html\"\n     >HeightCubic</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.heights.HeightError-class.html\"\n     >HeightError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.heights.HeightIDWcosineLaw-class.html\"\n     >HeightIDWcosineLaw</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.heights.HeightIDWdistanceTo-class.html\"\n     >HeightIDWdistanceTo</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.heights.HeightIDWequirectangular-class.html\"\n     >HeightIDWequirectangular</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.heights.HeightIDWeuclidean-class.html\"\n     >HeightIDWeuclidean</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.heights.HeightIDWexact-class.html\"\n     >HeightIDWexact</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.heights.HeightIDWflatLocal-class.html\"\n     >HeightIDWflatLocal</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.heights.HeightIDWflatPolar-class.html\"\n     >HeightIDWflatPolar</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.heights.HeightIDWhaversine-class.html\"\n     >HeightIDWhaversine</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.heights.HeightIDWhubeny-class.html\"\n     >HeightIDWhubeny</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.heights.HeightIDWkarney-class.html\"\n     >HeightIDWkarney</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.heights.HeightIDWthomas-class.html\"\n     >HeightIDWthomas</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.heights.HeightIDWvincentys-class.html\"\n     >HeightIDWvincentys</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.heights.HeightLSQBiSpline-class.html\"\n     >HeightLSQBiSpline</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.heights.HeightLinear-class.html\"\n     >HeightLinear</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.heights.HeightSmoothBiSpline-class.html\"\n     >HeightSmoothBiSpline</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.heights._HeightBase-class.html\"\n     >_HeightBase</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.heights._HeightIDW-class.html\"\n     >_HeightIDW</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.heights._HeightNamed-class.html\"\n     >_HeightNamed</a><br />  <h2 class=\"toc\">Variables</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.heights-module.html#__all__\"\n     >__all__</a><br /><hr />\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/toc-pygeodesy.internals-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>internals</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<h1 class=\"toc\">Module internals</h1>\n<hr />\n  <h2 class=\"toc\">Functions</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.internals-module.html#machine\"\n     >machine</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.internals-module.html#print_\"\n     >print_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.internals-module.html#printf\"\n     >printf</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.internals-module.html#typename\"\n     >typename</a><br /><hr />\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/toc-pygeodesy.interns-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>interns</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<h1 class=\"toc\">Module interns</h1>\n<hr />\n  <h2 class=\"toc\">Classes</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.interns.Str_-class.html\"\n     >Str_</a><br />  <h2 class=\"toc\">Variables</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.interns-module.html#NN\"\n     >NN</a><br /><hr />\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/toc-pygeodesy.iters-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>iters</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<h1 class=\"toc\">Module iters</h1>\n<hr />\n  <h2 class=\"toc\">Classes</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.iters.LatLon2PsxyIter-class.html\"\n     >LatLon2PsxyIter</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.iters.PointsIter-class.html\"\n     >PointsIter</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.iters._BaseIter-class.html\"\n     >_BaseIter</a><br />  <h2 class=\"toc\">Functions</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.iters-module.html#isNumpy2\"\n     >isNumpy2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.iters-module.html#isPoints2\"\n     >isPoints2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.iters-module.html#isTuple2\"\n     >isTuple2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.iters-module.html#iterNumpy2\"\n     >iterNumpy2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.iters-module.html#iterNumpy2over\"\n     >iterNumpy2over</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.iters-module.html#points2\"\n     >points2</a><br />  <h2 class=\"toc\">Variables</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.iters-module.html#__all__\"\n     >__all__</a><br /><hr />\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/toc-pygeodesy.karney-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>karney</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<h1 class=\"toc\">Module karney</h1>\n<hr />\n  <h2 class=\"toc\">Classes</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.karney.Area3Tuple-class.html\"\n     >Area3Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.karney.Caps-class.html\"\n     >Caps</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.karney.Direct9Tuple-class.html\"\n     >Direct9Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.karney.GDict-class.html\"\n     >GDict</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.karney.Inverse10Tuple-class.html\"\n     >Inverse10Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.karney._CapsBase-class.html\"\n     >_CapsBase</a><br />  <h2 class=\"toc\">Variables</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.karney-module.html#__all__\"\n     >__all__</a><br /><hr />\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/toc-pygeodesy.ktm-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>ktm</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<h1 class=\"toc\">Module ktm</h1>\n<hr />\n  <h2 class=\"toc\">Classes</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.ktm.KTMError-class.html\"\n     >KTMError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ktm.KTransverseMercator-class.html\"\n     >KTransverseMercator</a><br />  <h2 class=\"toc\">Variables</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.ktm-module.html#__all__\"\n     >__all__</a><br /><hr />\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/toc-pygeodesy.latlonBase-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>latlonBase</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<h1 class=\"toc\">Module latlonBase</h1>\n<hr />\n  <h2 class=\"toc\">Classes</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.latlonBase.LatLonBase-class.html\"\n     >LatLonBase</a><br />  <h2 class=\"toc\">Functions</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.latlonBase-module.html#latlon2n_xyz\"\n     >latlon2n_xyz</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.latlonBase-module.html#philam2n_xyz\"\n     >philam2n_xyz</a><br />  <h2 class=\"toc\">Variables</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.latlonBase-module.html#__all__\"\n     >__all__</a><br /><hr />\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/toc-pygeodesy.lazily-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>lazily</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<h1 class=\"toc\">Module lazily</h1>\n<hr />\n  <h2 class=\"toc\">Classes</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.lazily.LazyAttributeError-class.html\"\n     >LazyAttributeError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.lazily.LazyImportError-class.html\"\n     >LazyImportError</a><br />  <h2 class=\"toc\">Variables</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.lazily-module.html#isLazy\"\n     >isLazy</a><br /><hr />\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/toc-pygeodesy.lcc-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>lcc</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<h1 class=\"toc\">Module lcc</h1>\n<hr />\n  <h2 class=\"toc\">Classes</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.lcc.Conic-class.html\"\n     >Conic</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.lcc.LCCError-class.html\"\n     >LCCError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.lcc.Lcc-class.html\"\n     >Lcc</a><br />  <h2 class=\"toc\">Functions</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.lcc-module.html#toLcc\"\n     >toLcc</a><br />  <h2 class=\"toc\">Variables</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.lcc-module.html#Conics.Be08Lb\"\n     >Be08Lb</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.lcc-module.html#Conics.Be72Lb\"\n     >Be72Lb</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.lcc-module.html#Conics\"\n     >Conics</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.lcc-module.html#Conics.Fr93Lb\"\n     >Fr93Lb</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.lcc-module.html#Conics.MaNLb\"\n     >MaNLb</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.lcc-module.html#Conics.MxLb\"\n     >MxLb</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.lcc-module.html#Conics.PyT_Lb\"\n     >PyT_Lb</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.lcc-module.html#Conics.USA_Lb\"\n     >USA_Lb</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.lcc-module.html#Conics.WRF_Lb\"\n     >WRF_Lb</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.lcc-module.html#__all__\"\n     >__all__</a><br /><hr />\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/toc-pygeodesy.ltp-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>ltp</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<h1 class=\"toc\">Module ltp</h1>\n<hr />\n  <h2 class=\"toc\">Classes</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.ltp.Attitude-class.html\"\n     >Attitude</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ltp.AttitudeError-class.html\"\n     >AttitudeError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ltp.ChLV-class.html\"\n     >ChLV</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ltp.ChLVa-class.html\"\n     >ChLVa</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ltp.ChLVe-class.html\"\n     >ChLVe</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ltp.Frustum-class.html\"\n     >Frustum</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ltp.LocalCartesian-class.html\"\n     >LocalCartesian</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ltp.LocalError-class.html\"\n     >LocalError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ltp.Ltp-class.html\"\n     >Ltp</a><br />  <h2 class=\"toc\">Functions</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.ltp-module.html#tyr3d\"\n     >tyr3d</a><br />  <h2 class=\"toc\">Variables</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.ltp-module.html#__all__\"\n     >__all__</a><br /><hr />\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/toc-pygeodesy.ltpTuples-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>ltpTuples</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<h1 class=\"toc\">Module ltpTuples</h1>\n<hr />\n  <h2 class=\"toc\">Classes</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.ltpTuples.Aer-class.html\"\n     >Aer</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ltpTuples.Aer4Tuple-class.html\"\n     >Aer4Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ltpTuples.Attitude4Tuple-class.html\"\n     >Attitude4Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ltpTuples.ChLV9Tuple-class.html\"\n     >ChLV9Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ltpTuples.ChLVEN2Tuple-class.html\"\n     >ChLVEN2Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ltpTuples.ChLVYX2Tuple-class.html\"\n     >ChLVYX2Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ltpTuples.ChLVyx2Tuple-class.html\"\n     >ChLVyx2Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ltpTuples.Enu-class.html\"\n     >Enu</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ltpTuples.Enu4Tuple-class.html\"\n     >Enu4Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ltpTuples.Footprint5Tuple-class.html\"\n     >Footprint5Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ltpTuples.Local9Tuple-class.html\"\n     >Local9Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ltpTuples.Los-class.html\"\n     >Los</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ltpTuples.Ned-class.html\"\n     >Ned</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ltpTuples.Ned4Tuple-class.html\"\n     >Ned4Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ltpTuples.Uvw-class.html\"\n     >Uvw</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ltpTuples.Uvw3Tuple-class.html\"\n     >Uvw3Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ltpTuples.Xyz4Tuple-class.html\"\n     >Xyz4Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ltpTuples.XyzLocal-class.html\"\n     >XyzLocal</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ltpTuples._AbcBase-class.html\"\n     >_AbcBase</a><br />  <h2 class=\"toc\">Variables</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.ltpTuples-module.html#__all__\"\n     >__all__</a><br /><hr />\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/toc-pygeodesy.mgrs-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>mgrs</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<h1 class=\"toc\">Module mgrs</h1>\n<hr />\n  <h2 class=\"toc\">Classes</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.mgrs.Mgrs-class.html\"\n     >Mgrs</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.mgrs.Mgrs4Tuple-class.html\"\n     >Mgrs4Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.mgrs.Mgrs6Tuple-class.html\"\n     >Mgrs6Tuple</a><br />  <h2 class=\"toc\">Functions</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.mgrs-module.html#parseMGRS\"\n     >parseMGRS</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.mgrs-module.html#toMgrs\"\n     >toMgrs</a><br />  <h2 class=\"toc\">Variables</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.mgrs-module.html#__all__\"\n     >__all__</a><br /><hr />\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/toc-pygeodesy.named-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>named</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<h1 class=\"toc\">Module named</h1>\n<hr />\n  <h2 class=\"toc\">Classes</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.named.ADict-class.html\"\n     >ADict</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.named._Named-class.html\"\n     >_Named</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.named._NamedBase-class.html\"\n     >_NamedBase</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.named._NamedEnum-class.html\"\n     >_NamedEnum</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.named._NamedEnumItem-class.html\"\n     >_NamedEnumItem</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.named._NamedTuple-class.html\"\n     >_NamedTuple</a><br />  <h2 class=\"toc\">Functions</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.named-module.html#callername\"\n     >callername</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.named-module.html#classname\"\n     >classname</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.named-module.html#classnaming\"\n     >classnaming</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.named-module.html#modulename\"\n     >modulename</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.named-module.html#nameof\"\n     >nameof</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.named-module.html#notImplemented\"\n     >notImplemented</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.named-module.html#notOverloaded\"\n     >notOverloaded</a><br />  <h2 class=\"toc\">Variables</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.named-module.html#__all__\"\n     >__all__</a><br /><hr />\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/toc-pygeodesy.namedTuples-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>namedTuples</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<h1 class=\"toc\">Module namedTuples</h1>\n<hr />\n  <h2 class=\"toc\">Classes</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.namedTuples.Bearing2Tuple-class.html\"\n     >Bearing2Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.namedTuples.Bounds2Tuple-class.html\"\n     >Bounds2Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.namedTuples.Bounds4Tuple-class.html\"\n     >Bounds4Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.namedTuples.Circle4Tuple-class.html\"\n     >Circle4Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.namedTuples.Destination2Tuple-class.html\"\n     >Destination2Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.namedTuples.Destination3Tuple-class.html\"\n     >Destination3Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.namedTuples.Distance2Tuple-class.html\"\n     >Distance2Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.namedTuples.Distance3Tuple-class.html\"\n     >Distance3Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.namedTuples.Distance4Tuple-class.html\"\n     >Distance4Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.namedTuples.EasNor2Tuple-class.html\"\n     >EasNor2Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.namedTuples.EasNor3Tuple-class.html\"\n     >EasNor3Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.namedTuples.Ellipse5Tuple-class.html\"\n     >Ellipse5Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.namedTuples.Forward4Tuple-class.html\"\n     >Forward4Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.namedTuples.Intersection3Tuple-class.html\"\n     >Intersection3Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.namedTuples.LatLon2Tuple-class.html\"\n     >LatLon2Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.namedTuples.LatLon3Tuple-class.html\"\n     >LatLon3Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.namedTuples.LatLon4Tuple-class.html\"\n     >LatLon4Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.namedTuples.LatLonDatum3Tuple-class.html\"\n     >LatLonDatum3Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.namedTuples.LatLonDatum5Tuple-class.html\"\n     >LatLonDatum5Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.namedTuples.LatLonPrec3Tuple-class.html\"\n     >LatLonPrec3Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.namedTuples.LatLonPrec5Tuple-class.html\"\n     >LatLonPrec5Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.namedTuples.NearestOn2Tuple-class.html\"\n     >NearestOn2Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.namedTuples.NearestOn3Tuple-class.html\"\n     >NearestOn3Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.namedTuples.NearestOn6Tuple-class.html\"\n     >NearestOn6Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.namedTuples.NearestOn8Tuple-class.html\"\n     >NearestOn8Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.namedTuples.PhiLam2Tuple-class.html\"\n     >PhiLam2Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.namedTuples.PhiLam3Tuple-class.html\"\n     >PhiLam3Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.namedTuples.PhiLam4Tuple-class.html\"\n     >PhiLam4Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.namedTuples.Point3Tuple-class.html\"\n     >Point3Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.namedTuples.Points2Tuple-class.html\"\n     >Points2Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.namedTuples.Reverse4Tuple-class.html\"\n     >Reverse4Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.namedTuples.Triangle7Tuple-class.html\"\n     >Triangle7Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.namedTuples.Triangle8Tuple-class.html\"\n     >Triangle8Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.namedTuples.Trilaterate5Tuple-class.html\"\n     >Trilaterate5Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.namedTuples.UtmUps2Tuple-class.html\"\n     >UtmUps2Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.namedTuples.UtmUps5Tuple-class.html\"\n     >UtmUps5Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.namedTuples.UtmUps8Tuple-class.html\"\n     >UtmUps8Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.namedTuples.UtmUpsLatLon5Tuple-class.html\"\n     >UtmUpsLatLon5Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.namedTuples.Vector2Tuple-class.html\"\n     >Vector2Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.namedTuples.Vector3Tuple-class.html\"\n     >Vector3Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.namedTuples.Vector4Tuple-class.html\"\n     >Vector4Tuple</a><br />  <h2 class=\"toc\">Variables</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.namedTuples-module.html#__all__\"\n     >__all__</a><br /><hr />\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/toc-pygeodesy.nvectorBase-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>nvectorBase</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<h1 class=\"toc\">Module nvectorBase</h1>\n<hr />\n  <h2 class=\"toc\">Classes</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.nvectorBase.LatLonNvectorBase-class.html\"\n     >LatLonNvectorBase</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.nvectorBase.NvectorBase-class.html\"\n     >NvectorBase</a><br />  <h2 class=\"toc\">Functions</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.nvectorBase-module.html#n_xyz2latlon\"\n     >n_xyz2latlon</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.nvectorBase-module.html#n_xyz2philam\"\n     >n_xyz2philam</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.nvectorBase-module.html#sumOf\"\n     >sumOf</a><br />  <h2 class=\"toc\">Variables</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.nvectorBase-module.html#NorthPole\"\n     >NorthPole</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.nvectorBase-module.html#SouthPole\"\n     >SouthPole</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.nvectorBase-module.html#__all__\"\n     >__all__</a><br /><hr />\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/toc-pygeodesy.osgr-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>osgr</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<h1 class=\"toc\">Module osgr</h1>\n<hr />\n  <h2 class=\"toc\">Classes</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.osgr.OSGRError-class.html\"\n     >OSGRError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.osgr.Osgr-class.html\"\n     >Osgr</a><br />  <h2 class=\"toc\">Functions</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.osgr-module.html#parseOSGR\"\n     >parseOSGR</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.osgr-module.html#toOsgr\"\n     >toOsgr</a><br />  <h2 class=\"toc\">Variables</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.osgr-module.html#D\"\n     >D</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.osgr-module.html#__all__\"\n     >__all__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.osgr-module.html#i\"\n     >i</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.osgr-module.html#t\"\n     >t</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.osgr-module.html#t1\"\n     >t1</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.osgr-module.html#t2\"\n     >t2</a><br /><hr />\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/toc-pygeodesy.points-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>points</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<h1 class=\"toc\">Module points</h1>\n<hr />\n  <h2 class=\"toc\">Classes</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.points.LatLon2psxy-class.html\"\n     >LatLon2psxy</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.points.LatLon_-class.html\"\n     >LatLon_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.points.Numpy2LatLon-class.html\"\n     >Numpy2LatLon</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.points.Shape2Tuple-class.html\"\n     >Shape2Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.points.Tuple2LatLon-class.html\"\n     >Tuple2LatLon</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.points._Array2LatLon-class.html\"\n     >_Array2LatLon</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.points._Basequence-class.html\"\n     >_Basequence</a><br />  <h2 class=\"toc\">Functions</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.points-module.html#areaOf\"\n     >areaOf</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.points-module.html#boundsOf\"\n     >boundsOf</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.points-module.html#centroidOf\"\n     >centroidOf</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.points-module.html#fractional\"\n     >fractional</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.points-module.html#isclockwise\"\n     >isclockwise</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.points-module.html#isconvex\"\n     >isconvex</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.points-module.html#isconvex_\"\n     >isconvex_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.points-module.html#isenclosedBy\"\n     >isenclosedBy</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.points-module.html#ispolar\"\n     >ispolar</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.points-module.html#luneOf\"\n     >luneOf</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.points-module.html#nearestOn5\"\n     >nearestOn5</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.points-module.html#perimeterOf\"\n     >perimeterOf</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.points-module.html#quadOf\"\n     >quadOf</a><br />  <h2 class=\"toc\">Variables</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.points-module.html#__all__\"\n     >__all__</a><br /><hr />\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/toc-pygeodesy.props-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>props</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<h1 class=\"toc\">Module props</h1>\n<hr />\n  <h2 class=\"toc\">Classes</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.props.DeprecationWarnings-class.html\"\n     >DeprecationWarnings</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.props.Property-class.html\"\n     >Property</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.props.Property_RO-class.html\"\n     >Property_RO</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.props.property_RO-class.html\"\n     >property_RO</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.props.property_ROnce-class.html\"\n     >property_ROnce</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.props.property_ROver-class.html\"\n     >property_ROver</a><br />  <h2 class=\"toc\">Functions</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.props-module.html#deprecated_Property_RO\"\n     >deprecated_Property_RO</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.props-module.html#deprecated_class\"\n     >deprecated_class</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.props-module.html#deprecated_function\"\n     >deprecated_function</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.props-module.html#deprecated_method\"\n     >deprecated_method</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.props-module.html#deprecated_property_RO\"\n     >deprecated_property_RO</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.props-module.html#property_doc_\"\n     >property_doc_</a><br />  <h2 class=\"toc\">Variables</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.props-module.html#__all__\"\n     >__all__</a><br /><hr />\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/toc-pygeodesy.resections-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>resections</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<h1 class=\"toc\">Module resections</h1>\n<hr />\n  <h2 class=\"toc\">Classes</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.resections.Collins5Tuple-class.html\"\n     >Collins5Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.resections.ResectionError-class.html\"\n     >ResectionError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.resections.Survey3Tuple-class.html\"\n     >Survey3Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.resections.Tienstra7Tuple-class.html\"\n     >Tienstra7Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.resections.TriAngle5Tuple-class.html\"\n     >TriAngle5Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.resections.TriSide2Tuple-class.html\"\n     >TriSide2Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.resections.TriSide4Tuple-class.html\"\n     >TriSide4Tuple</a><br />  <h2 class=\"toc\">Functions</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.resections-module.html#cassini\"\n     >cassini</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.resections-module.html#collins5\"\n     >collins5</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.resections-module.html#pierlot\"\n     >pierlot</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.resections-module.html#pierlotx\"\n     >pierlotx</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.resections-module.html#snellius3\"\n     >snellius3</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.resections-module.html#tienstra7\"\n     >tienstra7</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.resections-module.html#triAngle\"\n     >triAngle</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.resections-module.html#triAngle5\"\n     >triAngle5</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.resections-module.html#triArea\"\n     >triArea</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.resections-module.html#triSide\"\n     >triSide</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.resections-module.html#triSide2\"\n     >triSide2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.resections-module.html#triSide4\"\n     >triSide4</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.resections-module.html#wildberger3\"\n     >wildberger3</a><br />  <h2 class=\"toc\">Variables</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.resections-module.html#__all__\"\n     >__all__</a><br /><hr />\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/toc-pygeodesy.rhumb-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>rhumb</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<h1 class=\"toc\">Module rhumb</h1>\n<hr />\n  <h2 class=\"toc\">Classes</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.rhumb.ekx.Rhumb-class.html\"\n     >Rhumb</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.karney.Rhumb8Tuple-class.html\"\n     >Rhumb8Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.rhumb.aux_.RhumbAux-class.html\"\n     >RhumbAux</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.rhumb.ekx.RhumbLine-class.html\"\n     >RhumbLine</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.rhumb.aux_.RhumbLineAux-class.html\"\n     >RhumbLineAux</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.rhumb.solve.RhumbLineSolve-class.html\"\n     >RhumbLineSolve</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.rhumb.solve.RhumbSolve-class.html\"\n     >RhumbSolve</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.rhumb.solve.RhumbSolve7Tuple-class.html\"\n     >RhumbSolve7Tuple</a><br />  <h2 class=\"toc\">Variables</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.rhumb-module.html#__all__\"\n     >__all__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.rhumb-module.html#__getattr__\"\n     >__getattr__</a><br /><hr />\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/toc-pygeodesy.rhumb.aux_-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>aux_</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<h1 class=\"toc\">Module aux_</h1>\n<hr />\n  <h2 class=\"toc\">Classes</h2>\n  <h2 class=\"toc\">Variables</h2>\n<hr />\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/toc-pygeodesy.rhumb.bases-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>bases</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<h1 class=\"toc\">Module bases</h1>\n<hr />\n  <h2 class=\"toc\">Classes</h2>\n<hr />\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/toc-pygeodesy.rhumb.ekx-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>ekx</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<h1 class=\"toc\">Module ekx</h1>\n<hr />\n  <h2 class=\"toc\">Classes</h2>\n  <h2 class=\"toc\">Variables</h2>\n<hr />\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/toc-pygeodesy.rhumb.solve-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>solve</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<h1 class=\"toc\">Module solve</h1>\n<hr />\n  <h2 class=\"toc\">Classes</h2>\n  <h2 class=\"toc\">Functions</h2>\n  <h2 class=\"toc\">Variables</h2>\n<hr />\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/toc-pygeodesy.simplify-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>simplify</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<h1 class=\"toc\">Module simplify</h1>\n<hr />\n  <h2 class=\"toc\">Functions</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.simplify-module.html#simplify1\"\n     >simplify1</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.simplify-module.html#simplifyRDP\"\n     >simplifyRDP</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.simplify-module.html#simplifyRW\"\n     >simplifyRW</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.simplify-module.html#simplifyVW\"\n     >simplifyVW</a><br />  <h2 class=\"toc\">Variables</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.simplify-module.html#__all__\"\n     >__all__</a><br /><hr />\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/toc-pygeodesy.solveBase-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>solveBase</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<h1 class=\"toc\">Module solveBase</h1>\n<hr />\n  <h2 class=\"toc\">Classes</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.solveBase._SolveBase-class.html\"\n     >_SolveBase</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.solveBase._SolveCapsBase-class.html\"\n     >_SolveCapsBase</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.solveBase._SolveGDictBase-class.html\"\n     >_SolveGDictBase</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.solveBase._SolveGDictLineBase-class.html\"\n     >_SolveGDictLineBase</a><br />  <h2 class=\"toc\">Variables</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.solveBase-module.html#__all__\"\n     >__all__</a><br /><hr />\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/toc-pygeodesy.sphericalBase-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>sphericalBase</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<h1 class=\"toc\">Module sphericalBase</h1>\n<hr />\n  <h2 class=\"toc\">Classes</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.sphericalBase.CartesianSphericalBase-class.html\"\n     >CartesianSphericalBase</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.sphericalBase.LatLonSphericalBase-class.html\"\n     >LatLonSphericalBase</a><br />  <h2 class=\"toc\">Variables</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.sphericalBase-module.html#__all__\"\n     >__all__</a><br /><hr />\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/toc-pygeodesy.sphericalNvector-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>sphericalNvector</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<h1 class=\"toc\">Module sphericalNvector</h1>\n<hr />\n  <h2 class=\"toc\">Classes</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.sphericalNvector.Cartesian-class.html\"\n     >Cartesian</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.sphericalNvector.LatLon-class.html\"\n     >LatLon</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.sphericalNvector.Nvector-class.html\"\n     >Nvector</a><br />  <h2 class=\"toc\">Functions</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.sphericalNvector-module.html#areaOf\"\n     >areaOf</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.sphericalNvector-module.html#intersecant2\"\n     >intersecant2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.sphericalNvector-module.html#intersection\"\n     >intersection</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.sphericalNvector-module.html#intersection2\"\n     >intersection2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.sphericalNvector-module.html#ispolar\"\n     >ispolar</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.sphericalNvector-module.html#meanOf\"\n     >meanOf</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.sphericalNvector-module.html#nearestOn2\"\n     >nearestOn2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.sphericalNvector-module.html#nearestOn3\"\n     >nearestOn3</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.sphericalNvector-module.html#perimeterOf\"\n     >perimeterOf</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.sphericalNvector-module.html#sumOf\"\n     >sumOf</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.sphericalNvector-module.html#triangulate\"\n     >triangulate</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.sphericalNvector-module.html#trilaterate\"\n     >trilaterate</a><br />  <h2 class=\"toc\">Variables</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.sphericalNvector-module.html#__all__\"\n     >__all__</a><br /><hr />\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/toc-pygeodesy.sphericalTrigonometry-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>sphericalTrigonometry</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<h1 class=\"toc\">Module sphericalTrigonometry</h1>\n<hr />\n  <h2 class=\"toc\">Classes</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.sphericalTrigonometry.Cartesian-class.html\"\n     >Cartesian</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.sphericalTrigonometry.LatLon-class.html\"\n     >LatLon</a><br />  <h2 class=\"toc\">Functions</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.sphericalTrigonometry-module.html#areaOf\"\n     >areaOf</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.sphericalTrigonometry-module.html#intersecant2\"\n     >intersecant2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.sphericalTrigonometry-module.html#intersection\"\n     >intersection</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.sphericalTrigonometry-module.html#intersections2\"\n     >intersections2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.sphericalTrigonometry-module.html#isPoleEnclosedBy\"\n     >isPoleEnclosedBy</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.sphericalTrigonometry-module.html#ispolar\"\n     >ispolar</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.sphericalTrigonometry-module.html#meanOf\"\n     >meanOf</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.sphericalTrigonometry-module.html#nearestOn2\"\n     >nearestOn2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.sphericalTrigonometry-module.html#nearestOn3\"\n     >nearestOn3</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.sphericalTrigonometry-module.html#perimeterOf\"\n     >perimeterOf</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.sphericalTrigonometry-module.html#sumOf\"\n     >sumOf</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.sphericalTrigonometry-module.html#triangle7\"\n     >triangle7</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.sphericalTrigonometry-module.html#triangle8_\"\n     >triangle8_</a><br />  <h2 class=\"toc\">Variables</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.sphericalTrigonometry-module.html#__all__\"\n     >__all__</a><br /><hr />\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/toc-pygeodesy.streprs-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>streprs</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<h1 class=\"toc\">Module streprs</h1>\n<hr />\n  <h2 class=\"toc\">Functions</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.streprs-module.html#anstr\"\n     >anstr</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.streprs-module.html#attrs\"\n     >attrs</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.streprs-module.html#enstr2\"\n     >enstr2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.streprs-module.html#fstr\"\n     >fstr</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.streprs-module.html#fstrzs\"\n     >fstrzs</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.streprs-module.html#hstr\"\n     >hstr</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.streprs-module.html#instr\"\n     >instr</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.streprs-module.html#lrstrip\"\n     >lrstrip</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.streprs-module.html#pairs\"\n     >pairs</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.streprs-module.html#reprs\"\n     >reprs</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.streprs-module.html#strs\"\n     >strs</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.streprs-module.html#unstr\"\n     >unstr</a><br />  <h2 class=\"toc\">Variables</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.streprs-module.html#__all__\"\n     >__all__</a><br /><hr />\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/toc-pygeodesy.trf-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>trf</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<h1 class=\"toc\">Module trf</h1>\n<hr />\n  <h2 class=\"toc\">Classes</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.trf.RefFrame-class.html\"\n     >RefFrame</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.trf.TRFXform-class.html\"\n     >TRFXform</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.trf.TRFXform7Tuple-class.html\"\n     >TRFXform7Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.trf.TransformXform-class.html\"\n     >TransformXform</a><br />  <h2 class=\"toc\">Functions</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.trf-module.html#date2epoch\"\n     >date2epoch</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.trf-module.html#epoch2date\"\n     >epoch2date</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.trf-module.html#trfTransform0\"\n     >trfTransform0</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.trf-module.html#trfTransforms\"\n     >trfTransforms</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.trf-module.html#trfXform\"\n     >trfXform</a><br />  <h2 class=\"toc\">Variables</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.trf-module.html#RefFrames.ETRF2000\"\n     >ETRF2000</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.trf-module.html#RefFrames.ETRF2005\"\n     >ETRF2005</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.trf-module.html#RefFrames.ETRF2008\"\n     >ETRF2008</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.trf-module.html#RefFrames.ETRF2014\"\n     >ETRF2014</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.trf-module.html#RefFrames.ETRF2020\"\n     >ETRF2020</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.trf-module.html#RefFrames.ETRF88\"\n     >ETRF88</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.trf-module.html#RefFrames.ETRF89\"\n     >ETRF89</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.trf-module.html#RefFrames.ETRF90\"\n     >ETRF90</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.trf-module.html#RefFrames.ETRF91\"\n     >ETRF91</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.trf-module.html#RefFrames.ETRF92\"\n     >ETRF92</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.trf-module.html#RefFrames.ETRF93\"\n     >ETRF93</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.trf-module.html#RefFrames.ETRF94\"\n     >ETRF94</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.trf-module.html#RefFrames.ETRF96\"\n     >ETRF96</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.trf-module.html#RefFrames.ETRF97\"\n     >ETRF97</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.trf-module.html#RefFrames.GDA2020\"\n     >GDA2020</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.trf-module.html#RefFrames.GDA94\"\n     >GDA94</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.trf-module.html#RefFrames.ITRF2000\"\n     >ITRF2000</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.trf-module.html#RefFrames.ITRF2005\"\n     >ITRF2005</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.trf-module.html#RefFrames.ITRF2008\"\n     >ITRF2008</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.trf-module.html#RefFrames.ITRF2014\"\n     >ITRF2014</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.trf-module.html#RefFrames.ITRF2020\"\n     >ITRF2020</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.trf-module.html#RefFrames.ITRF88\"\n     >ITRF88</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.trf-module.html#RefFrames.ITRF89\"\n     >ITRF89</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.trf-module.html#RefFrames.ITRF90\"\n     >ITRF90</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.trf-module.html#RefFrames.ITRF91\"\n     >ITRF91</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.trf-module.html#RefFrames.ITRF92\"\n     >ITRF92</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.trf-module.html#RefFrames.ITRF93\"\n     >ITRF93</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.trf-module.html#RefFrames.ITRF94\"\n     >ITRF94</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.trf-module.html#RefFrames.ITRF96\"\n     >ITRF96</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.trf-module.html#RefFrames.ITRF97\"\n     >ITRF97</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.trf-module.html#RefFrames.NAD83\"\n     >NAD83</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.trf-module.html#RefFrames.NAD83cors96\"\n     >NAD83cors96</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.trf-module.html#RefFrames\"\n     >RefFrames</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.trf-module.html#RefFrames.WGS84\"\n     >WGS84</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.trf-module.html#RefFrames.WGS84g1150\"\n     >WGS84g1150</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.trf-module.html#RefFrames.WGS84g1674\"\n     >WGS84g1674</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.trf-module.html#RefFrames.WGS84g1762\"\n     >WGS84g1762</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.trf-module.html#__all__\"\n     >__all__</a><br /><hr />\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/toc-pygeodesy.triaxials-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>triaxials</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<h1 class=\"toc\">Module triaxials</h1>\n<hr />\n  <h2 class=\"toc\">Classes</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.triaxials.triaxial3.BetOmgAlp5Tuple-class.html\"\n     >BetOmgAlp5Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.triaxials.conformal3.BetOmgGam5Tuple-class.html\"\n     >BetOmgGam5Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.triaxials.triaxial5.BetaOmega2Tuple-class.html\"\n     >BetaOmega2Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.triaxials.triaxial5.BetaOmega3Tuple-class.html\"\n     >BetaOmega3Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.triaxials.triaxial3.Cartesian5Tuple-class.html\"\n     >Cartesian5Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.triaxials.triaxial5.Conformal-class.html\"\n     >Conformal</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.triaxials.triaxial5.Conformal2Tuple-class.html\"\n     >Conformal2Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.triaxials.conformal3.Conformal3-class.html\"\n     >Conformal3</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.triaxials.conformal3.Conformal3B-class.html\"\n     >Conformal3B</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.triaxials.conformal3.Conformal3Sphere-class.html\"\n     >Conformal3Sphere</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.triaxials.bases.Conformal5Tuple-class.html\"\n     >Conformal5Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.triaxials.triaxial5.ConformalSphere-class.html\"\n     >ConformalSphere</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.triaxials.bases.LLK-class.html\"\n     >LLK</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.triaxials.triaxial3.PhiLamZet5Tuple-class.html\"\n     >PhiLamZet5Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.triaxials.triaxial5.Triaxial-class.html\"\n     >Triaxial</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.triaxials.triaxial3.Triaxial3-class.html\"\n     >Triaxial3</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.triaxials.triaxial3.Triaxial3B-class.html\"\n     >Triaxial3B</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.triaxials.bases.TriaxialError-class.html\"\n     >TriaxialError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.triaxials.triaxial5.Triaxial_-class.html\"\n     >Triaxial_</a><br />  <h2 class=\"toc\">Functions</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.triaxials-module.html#hartzell4\"\n     >hartzell4</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.triaxials-module.html#height4\"\n     >height4</a><br />  <h2 class=\"toc\">Variables</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.triaxials-module.html#Triaxial3s\"\n     >Triaxial3s</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.triaxials-module.html#Triaxials\"\n     >Triaxials</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.triaxials-module.html#__all__\"\n     >__all__</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.triaxials-module.html#__getattr__\"\n     >__getattr__</a><br /><hr />\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/toc-pygeodesy.triaxials.bases-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>bases</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<h1 class=\"toc\">Module bases</h1>\n<hr />\n  <h2 class=\"toc\">Classes</h2>\n  <h2 class=\"toc\">Variables</h2>\n<hr />\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/toc-pygeodesy.triaxials.conformal3-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>conformal3</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<h1 class=\"toc\">Module conformal3</h1>\n<hr />\n  <h2 class=\"toc\">Classes</h2>\n  <h2 class=\"toc\">Variables</h2>\n<hr />\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/toc-pygeodesy.triaxials.triaxial3-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>triaxial3</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<h1 class=\"toc\">Module triaxial3</h1>\n<hr />\n  <h2 class=\"toc\">Classes</h2>\n  <h2 class=\"toc\">Variables</h2>\n<hr />\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/toc-pygeodesy.triaxials.triaxial5-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>triaxial5</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<h1 class=\"toc\">Module triaxial5</h1>\n<hr />\n  <h2 class=\"toc\">Classes</h2>\n  <h2 class=\"toc\">Functions</h2>\n  <h2 class=\"toc\">Variables</h2>\n<hr />\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/toc-pygeodesy.units-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>units</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<h1 class=\"toc\">Module units</h1>\n<hr />\n  <h2 class=\"toc\">Classes</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.units.Azimuth-class.html\"\n     >Azimuth</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.units.Band-class.html\"\n     >Band</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.units.Bearing-class.html\"\n     >Bearing</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.units.Bearing_-class.html\"\n     >Bearing_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.units.Bool-class.html\"\n     >Bool</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.units.Degrees-class.html\"\n     >Degrees</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.units.Degrees2-class.html\"\n     >Degrees2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.units.Degrees_-class.html\"\n     >Degrees_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.units.Distance-class.html\"\n     >Distance</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.units.Distance_-class.html\"\n     >Distance_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.units.Easting-class.html\"\n     >Easting</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.units.Epoch-class.html\"\n     >Epoch</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.units.FIx-class.html\"\n     >FIx</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.units.Feet-class.html\"\n     >Feet</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.units.Float_-class.html\"\n     >Float_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.units.Height-class.html\"\n     >Height</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.units.HeightX-class.html\"\n     >HeightX</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.units.Height_-class.html\"\n     >Height_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.units.Int_-class.html\"\n     >Int_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.units.Lam-class.html\"\n     >Lam</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.units.Lamd-class.html\"\n     >Lamd</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.units.Lat-class.html\"\n     >Lat</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.units.Lat_-class.html\"\n     >Lat_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.units.Lon-class.html\"\n     >Lon</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.units.Lon_-class.html\"\n     >Lon_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.units.Meter-class.html\"\n     >Meter</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.units.Meter2-class.html\"\n     >Meter2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.units.Meter3-class.html\"\n     >Meter3</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.units.Meter_-class.html\"\n     >Meter_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.units.Northing-class.html\"\n     >Northing</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.units.Number_-class.html\"\n     >Number_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.units.Phi-class.html\"\n     >Phi</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.units.Phid-class.html\"\n     >Phid</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.units.Precision_-class.html\"\n     >Precision_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.units.Radians-class.html\"\n     >Radians</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.units.Radians2-class.html\"\n     >Radians2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.units.Radians_-class.html\"\n     >Radians_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.units.Radius_-class.html\"\n     >Radius_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.units.Scalar-class.html\"\n     >Scalar</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.units.Scalar_-class.html\"\n     >Scalar_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.units.Zone-class.html\"\n     >Zone</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.unitsBase._NamedUnit-class.html\"\n     >_NamedUnit</a><br />  <h2 class=\"toc\">Variables</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.units-module.html#__all__\"\n     >__all__</a><br /><hr />\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/toc-pygeodesy.unitsBase-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>unitsBase</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<h1 class=\"toc\">Module unitsBase</h1>\n<hr />\n  <h2 class=\"toc\">Classes</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.unitsBase.Float-class.html\"\n     >Float</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.unitsBase.Int-class.html\"\n     >Int</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.unitsBase.Radius-class.html\"\n     >Radius</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.unitsBase.Str-class.html\"\n     >Str</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.unitsBase._NamedUnit-class.html\"\n     >_NamedUnit</a><br />  <h2 class=\"toc\">Variables</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.unitsBase-module.html#__all__\"\n     >__all__</a><br /><hr />\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/toc-pygeodesy.ups-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>ups</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<h1 class=\"toc\">Module ups</h1>\n<hr />\n  <h2 class=\"toc\">Classes</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.ups.UPSError-class.html\"\n     >UPSError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ups.Ups-class.html\"\n     >Ups</a><br />  <h2 class=\"toc\">Functions</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.ups-module.html#parseUPS5\"\n     >parseUPS5</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ups-module.html#toUps8\"\n     >toUps8</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.ups-module.html#upsZoneBand5\"\n     >upsZoneBand5</a><br />  <h2 class=\"toc\">Variables</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.ups-module.html#__all__\"\n     >__all__</a><br /><hr />\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/toc-pygeodesy.utily-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>utily</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<h1 class=\"toc\">Module utily</h1>\n<hr />\n  <h2 class=\"toc\">Functions</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#NM2m\"\n     >NM2m</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#SM2m\"\n     >SM2m</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#SinCos2\"\n     >SinCos2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#acos1\"\n     >acos1</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#acre2ha\"\n     >acre2ha</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#acre2m2\"\n     >acre2m2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#agdf\"\n     >agdf</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#asin1\"\n     >asin1</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#atan1\"\n     >atan1</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#atan1d\"\n     >atan1d</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#atan2\"\n     >atan2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#atan2b\"\n     >atan2b</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#atan2d\"\n     >atan2d</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#atan2p\"\n     >atan2p</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#chain2m\"\n     >chain2m</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#circle4\"\n     >circle4</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#cot\"\n     >cot</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#cot_\"\n     >cot_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#cotd\"\n     >cotd</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#cotd_\"\n     >cotd_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#degrees\"\n     >degrees</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#degrees180\"\n     >degrees180</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#degrees2grades\"\n     >degrees2grades</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#degrees2m\"\n     >degrees2m</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#degrees360\"\n     >degrees360</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#degrees90\"\n     >degrees90</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#fathom2m\"\n     >fathom2m</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#ft2m\"\n     >ft2m</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#furlong2m\"\n     >furlong2m</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#gdf\"\n     >gdf</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#grades\"\n     >grades</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#grades2degrees\"\n     >grades2degrees</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#grades2radians\"\n     >grades2radians</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#grades400\"\n     >grades400</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#ha2acre\"\n     >ha2acre</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#ha2m2\"\n     >ha2m2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#hav\"\n     >hav</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#km2m\"\n     >km2m</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#m2NM\"\n     >m2NM</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#m2SM\"\n     >m2SM</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#m2acre\"\n     >m2acre</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#m2chain\"\n     >m2chain</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#m2degrees\"\n     >m2degrees</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#m2fathom\"\n     >m2fathom</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#m2ft\"\n     >m2ft</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#m2furlong\"\n     >m2furlong</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#m2ha\"\n     >m2ha</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#m2km\"\n     >m2km</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#m2radians\"\n     >m2radians</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#m2toise\"\n     >m2toise</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#m2yard\"\n     >m2yard</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#radians\"\n     >radians</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#radians2m\"\n     >radians2m</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#radiansPI\"\n     >radiansPI</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#radiansPI2\"\n     >radiansPI2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#radiansPI_2\"\n     >radiansPI_2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#sincos2\"\n     >sincos2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#sincos2_\"\n     >sincos2_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#sincos2d\"\n     >sincos2d</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#sincos2d_\"\n     >sincos2d_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#sincostan3\"\n     >sincostan3</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#sincostan3d\"\n     >sincostan3d</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#tan\"\n     >tan</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#tanPI_2_2\"\n     >tanPI_2_2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#tan_\"\n     >tan_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#tan_2\"\n     >tan_2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#tand\"\n     >tand</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#tand_\"\n     >tand_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#toise2m\"\n     >toise2m</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#truncate\"\n     >truncate</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#unroll180\"\n     >unroll180</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#unrollPI\"\n     >unrollPI</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#wrap180\"\n     >wrap180</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#wrap360\"\n     >wrap360</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#wrap90\"\n     >wrap90</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#wrapPI\"\n     >wrapPI</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#wrapPI2\"\n     >wrapPI2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#wrapPI_2\"\n     >wrapPI_2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#wrap_normal\"\n     >wrap_normal</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#yard2m\"\n     >yard2m</a><br />  <h2 class=\"toc\">Variables</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.utily-module.html#__all__\"\n     >__all__</a><br /><hr />\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/toc-pygeodesy.utm-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>utm</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<h1 class=\"toc\">Module utm</h1>\n<hr />\n  <h2 class=\"toc\">Classes</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.utm.UTMError-class.html\"\n     >UTMError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utm.Utm-class.html\"\n     >Utm</a><br />  <h2 class=\"toc\">Functions</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.utm-module.html#parseUTM5\"\n     >parseUTM5</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utm-module.html#toUtm8\"\n     >toUtm8</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utm-module.html#utmZoneBand5\"\n     >utmZoneBand5</a><br />  <h2 class=\"toc\">Variables</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.utm-module.html#__all__\"\n     >__all__</a><br /><hr />\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/toc-pygeodesy.utmups-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>utmups</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<h1 class=\"toc\">Module utmups</h1>\n<hr />\n  <h2 class=\"toc\">Classes</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.utmups.UTMUPSError-class.html\"\n     >UTMUPSError</a><br />  <h2 class=\"toc\">Functions</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.utmups-module.html#UtmUps\"\n     >UtmUps</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utmups-module.html#parseUTMUPS5\"\n     >parseUTMUPS5</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utmups-module.html#toUtmUps8\"\n     >toUtmUps8</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utmups-module.html#utmupsValidate\"\n     >utmupsValidate</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utmups-module.html#utmupsValidateOK\"\n     >utmupsValidateOK</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.utmups-module.html#utmupsZoneBand5\"\n     >utmupsZoneBand5</a><br />  <h2 class=\"toc\">Variables</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.utmups-module.html#__all__\"\n     >__all__</a><br /><hr />\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/toc-pygeodesy.utmupsBase-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>utmupsBase</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<h1 class=\"toc\">Module utmupsBase</h1>\n<hr />\n  <h2 class=\"toc\">Classes</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.utmupsBase.UtmUpsBase-class.html\"\n     >UtmUpsBase</a><br />  <h2 class=\"toc\">Variables</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.utmupsBase-module.html#__all__\"\n     >__all__</a><br /><hr />\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/toc-pygeodesy.vector2d-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>vector2d</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<h1 class=\"toc\">Module vector2d</h1>\n<hr />\n  <h2 class=\"toc\">Classes</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.vector2d.Circin6Tuple-class.html\"\n     >Circin6Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.vector2d.Circum3Tuple-class.html\"\n     >Circum3Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.vector2d.Circum4Tuple-class.html\"\n     >Circum4Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.vector2d.Meeus2Tuple-class.html\"\n     >Meeus2Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.vector2d.Radii11Tuple-class.html\"\n     >Radii11Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.vector2d.Soddy4Tuple-class.html\"\n     >Soddy4Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.vector2d.Triaxum5Tuple-class.html\"\n     >Triaxum5Tuple</a><br />  <h2 class=\"toc\">Functions</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.vector2d-module.html#circin6\"\n     >circin6</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.vector2d-module.html#circum3\"\n     >circum3</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.vector2d-module.html#circum4\"\n     >circum4</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.vector2d-module.html#circum4_\"\n     >circum4_</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.vector2d-module.html#meeus2\"\n     >meeus2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.vector2d-module.html#radii11\"\n     >radii11</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.vector2d-module.html#soddy4\"\n     >soddy4</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.vector2d-module.html#triaxum5\"\n     >triaxum5</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.vector2d-module.html#trilaterate2d2\"\n     >trilaterate2d2</a><br />  <h2 class=\"toc\">Variables</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.vector2d-module.html#__all__\"\n     >__all__</a><br /><hr />\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/toc-pygeodesy.vector3d-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>vector3d</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<h1 class=\"toc\">Module vector3d</h1>\n<hr />\n  <h2 class=\"toc\">Classes</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.vector3d.Vector3d-class.html\"\n     >Vector3d</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\"\n     >Vector3dBase</a><br />  <h2 class=\"toc\">Functions</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.vector3d-module.html#intersection3d3\"\n     >intersection3d3</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.vector3d-module.html#intersections2\"\n     >intersections2</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.vector3d-module.html#iscolinearWith\"\n     >iscolinearWith</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.vector3d-module.html#nearestOn\"\n     >nearestOn</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.vector3d-module.html#nearestOn6\"\n     >nearestOn6</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.vector3d-module.html#parse3d\"\n     >parse3d</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.vector3d-module.html#sumOf\"\n     >sumOf</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.vector3d-module.html#trilaterate3d2\"\n     >trilaterate3d2</a><br />  <h2 class=\"toc\">Variables</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.vector3d-module.html#__all__\"\n     >__all__</a><br /><hr />\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/toc-pygeodesy.vector3dBase-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>vector3dBase</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<h1 class=\"toc\">Module vector3dBase</h1>\n<hr />\n  <h2 class=\"toc\">Classes</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.vector3dBase.Vector3dBase-class.html\"\n     >Vector3dBase</a><br />  <h2 class=\"toc\">Variables</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.vector3dBase-module.html#__all__\"\n     >__all__</a><br /><hr />\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/toc-pygeodesy.webmercator-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>webmercator</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<h1 class=\"toc\">Module webmercator</h1>\n<hr />\n  <h2 class=\"toc\">Classes</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.webmercator.EasNorRadius3Tuple-class.html\"\n     >EasNorRadius3Tuple</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.webmercator.WebMercatorError-class.html\"\n     >WebMercatorError</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.webmercator.Wm-class.html\"\n     >Wm</a><br />  <h2 class=\"toc\">Functions</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.webmercator-module.html#parseWM\"\n     >parseWM</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.webmercator-module.html#toWm\"\n     >toWm</a><br />  <h2 class=\"toc\">Variables</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.webmercator-module.html#__all__\"\n     >__all__</a><br /><hr />\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/toc-pygeodesy.wgrs-module.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>wgrs</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<h1 class=\"toc\">Module wgrs</h1>\n<hr />\n  <h2 class=\"toc\">Classes</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.wgrs.Georef-class.html\"\n     >Georef</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.wgrs.WGRSError-class.html\"\n     >WGRSError</a><br />  <h2 class=\"toc\">Functions</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.wgrs-module.html#decode3\"\n     >decode3</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.wgrs-module.html#decode5\"\n     >decode5</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.wgrs-module.html#encode\"\n     >encode</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.wgrs-module.html#precision\"\n     >precision</a><br />    <a target=\"mainFrame\" href=\"pygeodesy.wgrs-module.html#resolution\"\n     >resolution</a><br />  <h2 class=\"toc\">Variables</h2>\n    <a target=\"mainFrame\" href=\"pygeodesy.wgrs-module.html#__all__\"\n     >__all__</a><br /><hr />\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/toc.html",
    "content": "<?xml version=\"1.0\" encoding=\"ascii\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n          \"DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title>Table of Contents</title>\n  <link rel=\"stylesheet\" href=\"epydoc.css\" type=\"text/css\" />\n  <script type=\"text/javascript\" src=\"epydoc.js\"></script>\n</head>\n\n<body bgcolor=\"white\" text=\"black\" link=\"blue\" vlink=\"#204080\"\n      alink=\"#204080\">\n<h1 class=\"toc\">Table&nbsp;of&nbsp;Contents</h1>\n<hr />\n  <a target=\"moduleFrame\" href=\"toc-everything.html\">Everything</a>\n  <br />\n  <h2 class=\"toc\">Modules</h2>\n    <a target=\"moduleFrame\" href=\"toc-pygeodesy-module.html\"\n     onclick=\"setFrame('toc-pygeodesy-module.html','pygeodesy-module.html');\"     >pygeodesy</a><br />    <a target=\"moduleFrame\" href=\"toc-pygeodesy.albers-module.html\"\n     onclick=\"setFrame('toc-pygeodesy.albers-module.html','pygeodesy.albers-module.html');\"     >pygeodesy.albers</a><br />    <a target=\"moduleFrame\" href=\"toc-pygeodesy.angles-module.html\"\n     onclick=\"setFrame('toc-pygeodesy.angles-module.html','pygeodesy.angles-module.html');\"     >pygeodesy.angles</a><br />    <a target=\"moduleFrame\" href=\"toc-pygeodesy.auxilats-module.html\"\n     onclick=\"setFrame('toc-pygeodesy.auxilats-module.html','pygeodesy.auxilats-module.html');\"     >pygeodesy.auxilats</a><br />    <a target=\"moduleFrame\" href=\"toc-pygeodesy.azimuthal-module.html\"\n     onclick=\"setFrame('toc-pygeodesy.azimuthal-module.html','pygeodesy.azimuthal-module.html');\"     >pygeodesy.azimuthal</a><br />    <a target=\"moduleFrame\" href=\"toc-pygeodesy.basics-module.html\"\n     onclick=\"setFrame('toc-pygeodesy.basics-module.html','pygeodesy.basics-module.html');\"     >pygeodesy.basics</a><br />    <a target=\"moduleFrame\" href=\"toc-pygeodesy.booleans-module.html\"\n     onclick=\"setFrame('toc-pygeodesy.booleans-module.html','pygeodesy.booleans-module.html');\"     >pygeodesy.booleans</a><br />    <a target=\"moduleFrame\" href=\"toc-pygeodesy.cartesianBase-module.html\"\n     onclick=\"setFrame('toc-pygeodesy.cartesianBase-module.html','pygeodesy.cartesianBase-module.html');\"     >pygeodesy.cartesianBase</a><br />    <a target=\"moduleFrame\" href=\"toc-pygeodesy.clipy-module.html\"\n     onclick=\"setFrame('toc-pygeodesy.clipy-module.html','pygeodesy.clipy-module.html');\"     >pygeodesy.clipy</a><br />    <a target=\"moduleFrame\" href=\"toc-pygeodesy.constants-module.html\"\n     onclick=\"setFrame('toc-pygeodesy.constants-module.html','pygeodesy.constants-module.html');\"     >pygeodesy.constants</a><br />    <a target=\"moduleFrame\" href=\"toc-pygeodesy.css-module.html\"\n     onclick=\"setFrame('toc-pygeodesy.css-module.html','pygeodesy.css-module.html');\"     >pygeodesy.css</a><br />    <a target=\"moduleFrame\" href=\"toc-pygeodesy.datums-module.html\"\n     onclick=\"setFrame('toc-pygeodesy.datums-module.html','pygeodesy.datums-module.html');\"     >pygeodesy.datums</a><br />    <a target=\"moduleFrame\" href=\"toc-pygeodesy.deprecated-module.html\"\n     onclick=\"setFrame('toc-pygeodesy.deprecated-module.html','pygeodesy.deprecated-module.html');\"     >pygeodesy.deprecated</a><br />    <a target=\"moduleFrame\" href=\"toc-pygeodesy.deprecated.bases-module.html\"\n     onclick=\"setFrame('toc-pygeodesy.deprecated.bases-module.html','pygeodesy.deprecated.bases-module.html');\"     >pygeodesy.deprecated.bases</a><br />    <a target=\"moduleFrame\" href=\"toc-pygeodesy.deprecated.datum-module.html\"\n     onclick=\"setFrame('toc-pygeodesy.deprecated.datum-module.html','pygeodesy.deprecated.datum-module.html');\"     >pygeodesy.deprecated.datum</a><br />    <a target=\"moduleFrame\" href=\"toc-pygeodesy.deprecated.nvector-module.html\"\n     onclick=\"setFrame('toc-pygeodesy.deprecated.nvector-module.html','pygeodesy.deprecated.nvector-module.html');\"     >pygeodesy.deprecated.nvector</a><br />    <a target=\"moduleFrame\" href=\"toc-pygeodesy.deprecated.rhumbBase-module.html\"\n     onclick=\"setFrame('toc-pygeodesy.deprecated.rhumbBase-module.html','pygeodesy.deprecated.rhumbBase-module.html');\"     >pygeodesy.deprecated.rhumbBase</a><br />    <a target=\"moduleFrame\" href=\"toc-pygeodesy.deprecated.rhumbaux-module.html\"\n     onclick=\"setFrame('toc-pygeodesy.deprecated.rhumbaux-module.html','pygeodesy.deprecated.rhumbaux-module.html');\"     >pygeodesy.deprecated.rhumbaux</a><br />    <a target=\"moduleFrame\" href=\"toc-pygeodesy.deprecated.rhumbsolve-module.html\"\n     onclick=\"setFrame('toc-pygeodesy.deprecated.rhumbsolve-module.html','pygeodesy.deprecated.rhumbsolve-module.html');\"     >pygeodesy.deprecated.rhumbsolve</a><br />    <a target=\"moduleFrame\" href=\"toc-pygeodesy.deprecated.rhumbx-module.html\"\n     onclick=\"setFrame('toc-pygeodesy.deprecated.rhumbx-module.html','pygeodesy.deprecated.rhumbx-module.html');\"     >pygeodesy.deprecated.rhumbx</a><br />    <a target=\"moduleFrame\" href=\"toc-pygeodesy.dms-module.html\"\n     onclick=\"setFrame('toc-pygeodesy.dms-module.html','pygeodesy.dms-module.html');\"     >pygeodesy.dms</a><br />    <a target=\"moduleFrame\" href=\"toc-pygeodesy.ecef-module.html\"\n     onclick=\"setFrame('toc-pygeodesy.ecef-module.html','pygeodesy.ecef-module.html');\"     >pygeodesy.ecef</a><br />    <a target=\"moduleFrame\" href=\"toc-pygeodesy.ecefLocals-module.html\"\n     onclick=\"setFrame('toc-pygeodesy.ecefLocals-module.html','pygeodesy.ecefLocals-module.html');\"     >pygeodesy.ecefLocals</a><br />    <a target=\"moduleFrame\" href=\"toc-pygeodesy.elevations-module.html\"\n     onclick=\"setFrame('toc-pygeodesy.elevations-module.html','pygeodesy.elevations-module.html');\"     >pygeodesy.elevations</a><br />    <a target=\"moduleFrame\" href=\"toc-pygeodesy.ellipses-module.html\"\n     onclick=\"setFrame('toc-pygeodesy.ellipses-module.html','pygeodesy.ellipses-module.html');\"     >pygeodesy.ellipses</a><br />    <a target=\"moduleFrame\" href=\"toc-pygeodesy.ellipsoidalBase-module.html\"\n     onclick=\"setFrame('toc-pygeodesy.ellipsoidalBase-module.html','pygeodesy.ellipsoidalBase-module.html');\"     >pygeodesy.ellipsoidalBase</a><br />    <a target=\"moduleFrame\" href=\"toc-pygeodesy.ellipsoidalBaseDI-module.html\"\n     onclick=\"setFrame('toc-pygeodesy.ellipsoidalBaseDI-module.html','pygeodesy.ellipsoidalBaseDI-module.html');\"     >pygeodesy.ellipsoidalBaseDI</a><br />    <a target=\"moduleFrame\" href=\"toc-pygeodesy.ellipsoidalExact-module.html\"\n     onclick=\"setFrame('toc-pygeodesy.ellipsoidalExact-module.html','pygeodesy.ellipsoidalExact-module.html');\"     >pygeodesy.ellipsoidalExact</a><br />    <a target=\"moduleFrame\" href=\"toc-pygeodesy.ellipsoidalGeodSolve-module.html\"\n     onclick=\"setFrame('toc-pygeodesy.ellipsoidalGeodSolve-module.html','pygeodesy.ellipsoidalGeodSolve-module.html');\"     >pygeodesy.ellipsoidalGeodSolve</a><br />    <a target=\"moduleFrame\" href=\"toc-pygeodesy.ellipsoidalKarney-module.html\"\n     onclick=\"setFrame('toc-pygeodesy.ellipsoidalKarney-module.html','pygeodesy.ellipsoidalKarney-module.html');\"     >pygeodesy.ellipsoidalKarney</a><br />    <a target=\"moduleFrame\" href=\"toc-pygeodesy.ellipsoidalNvector-module.html\"\n     onclick=\"setFrame('toc-pygeodesy.ellipsoidalNvector-module.html','pygeodesy.ellipsoidalNvector-module.html');\"     >pygeodesy.ellipsoidalNvector</a><br />    <a target=\"moduleFrame\" href=\"toc-pygeodesy.ellipsoidalVincenty-module.html\"\n     onclick=\"setFrame('toc-pygeodesy.ellipsoidalVincenty-module.html','pygeodesy.ellipsoidalVincenty-module.html');\"     >pygeodesy.ellipsoidalVincenty</a><br />    <a target=\"moduleFrame\" href=\"toc-pygeodesy.ellipsoids-module.html\"\n     onclick=\"setFrame('toc-pygeodesy.ellipsoids-module.html','pygeodesy.ellipsoids-module.html');\"     >pygeodesy.ellipsoids</a><br />    <a target=\"moduleFrame\" href=\"toc-pygeodesy.elliptic-module.html\"\n     onclick=\"setFrame('toc-pygeodesy.elliptic-module.html','pygeodesy.elliptic-module.html');\"     >pygeodesy.elliptic</a><br />    <a target=\"moduleFrame\" href=\"toc-pygeodesy.epsg-module.html\"\n     onclick=\"setFrame('toc-pygeodesy.epsg-module.html','pygeodesy.epsg-module.html');\"     >pygeodesy.epsg</a><br />    <a target=\"moduleFrame\" href=\"toc-pygeodesy.errors-module.html\"\n     onclick=\"setFrame('toc-pygeodesy.errors-module.html','pygeodesy.errors-module.html');\"     >pygeodesy.errors</a><br />    <a target=\"moduleFrame\" href=\"toc-pygeodesy.etm-module.html\"\n     onclick=\"setFrame('toc-pygeodesy.etm-module.html','pygeodesy.etm-module.html');\"     >pygeodesy.etm</a><br />    <a target=\"moduleFrame\" href=\"toc-pygeodesy.fmath-module.html\"\n     onclick=\"setFrame('toc-pygeodesy.fmath-module.html','pygeodesy.fmath-module.html');\"     >pygeodesy.fmath</a><br />    <a target=\"moduleFrame\" href=\"toc-pygeodesy.formy-module.html\"\n     onclick=\"setFrame('toc-pygeodesy.formy-module.html','pygeodesy.formy-module.html');\"     >pygeodesy.formy</a><br />    <a target=\"moduleFrame\" href=\"toc-pygeodesy.frechet-module.html\"\n     onclick=\"setFrame('toc-pygeodesy.frechet-module.html','pygeodesy.frechet-module.html');\"     >pygeodesy.frechet</a><br />    <a target=\"moduleFrame\" href=\"toc-pygeodesy.fstats-module.html\"\n     onclick=\"setFrame('toc-pygeodesy.fstats-module.html','pygeodesy.fstats-module.html');\"     >pygeodesy.fstats</a><br />    <a target=\"moduleFrame\" href=\"toc-pygeodesy.fsums-module.html\"\n     onclick=\"setFrame('toc-pygeodesy.fsums-module.html','pygeodesy.fsums-module.html');\"     >pygeodesy.fsums</a><br />    <a target=\"moduleFrame\" href=\"toc-pygeodesy.gars-module.html\"\n     onclick=\"setFrame('toc-pygeodesy.gars-module.html','pygeodesy.gars-module.html');\"     >pygeodesy.gars</a><br />    <a target=\"moduleFrame\" href=\"toc-pygeodesy.geod3solve-module.html\"\n     onclick=\"setFrame('toc-pygeodesy.geod3solve-module.html','pygeodesy.geod3solve-module.html');\"     >pygeodesy.geod3solve</a><br />    <a target=\"moduleFrame\" href=\"toc-pygeodesy.geodesici-module.html\"\n     onclick=\"setFrame('toc-pygeodesy.geodesici-module.html','pygeodesy.geodesici-module.html');\"     >pygeodesy.geodesici</a><br />    <a target=\"moduleFrame\" href=\"toc-pygeodesy.geodesicw-module.html\"\n     onclick=\"setFrame('toc-pygeodesy.geodesicw-module.html','pygeodesy.geodesicw-module.html');\"     >pygeodesy.geodesicw</a><br />    <a target=\"moduleFrame\" href=\"toc-pygeodesy.geodesicx-module.html\"\n     onclick=\"setFrame('toc-pygeodesy.geodesicx-module.html','pygeodesy.geodesicx-module.html');\"     >pygeodesy.geodesicx</a><br />    <a target=\"moduleFrame\" href=\"toc-pygeodesy.geodesicx.gx-module.html\"\n     onclick=\"setFrame('toc-pygeodesy.geodesicx.gx-module.html','pygeodesy.geodesicx.gx-module.html');\"     >pygeodesy.geodesicx.gx</a><br />    <a target=\"moduleFrame\" href=\"toc-pygeodesy.geodesicx.gxarea-module.html\"\n     onclick=\"setFrame('toc-pygeodesy.geodesicx.gxarea-module.html','pygeodesy.geodesicx.gxarea-module.html');\"     >pygeodesy.geodesicx.gxarea</a><br />    <a target=\"moduleFrame\" href=\"toc-pygeodesy.geodesicx.gxbases-module.html\"\n     onclick=\"setFrame('toc-pygeodesy.geodesicx.gxbases-module.html','pygeodesy.geodesicx.gxbases-module.html');\"     >pygeodesy.geodesicx.gxbases</a><br />    <a target=\"moduleFrame\" href=\"toc-pygeodesy.geodesicx.gxline-module.html\"\n     onclick=\"setFrame('toc-pygeodesy.geodesicx.gxline-module.html','pygeodesy.geodesicx.gxline-module.html');\"     >pygeodesy.geodesicx.gxline</a><br />    <a target=\"moduleFrame\" href=\"toc-pygeodesy.geodsolve-module.html\"\n     onclick=\"setFrame('toc-pygeodesy.geodsolve-module.html','pygeodesy.geodsolve-module.html');\"     >pygeodesy.geodsolve</a><br />    <a target=\"moduleFrame\" href=\"toc-pygeodesy.geohash-module.html\"\n     onclick=\"setFrame('toc-pygeodesy.geohash-module.html','pygeodesy.geohash-module.html');\"     >pygeodesy.geohash</a><br />    <a target=\"moduleFrame\" href=\"toc-pygeodesy.geoids-module.html\"\n     onclick=\"setFrame('toc-pygeodesy.geoids-module.html','pygeodesy.geoids-module.html');\"     >pygeodesy.geoids</a><br />    <a target=\"moduleFrame\" href=\"toc-pygeodesy.hausdorff-module.html\"\n     onclick=\"setFrame('toc-pygeodesy.hausdorff-module.html','pygeodesy.hausdorff-module.html');\"     >pygeodesy.hausdorff</a><br />    <a target=\"moduleFrame\" href=\"toc-pygeodesy.heights-module.html\"\n     onclick=\"setFrame('toc-pygeodesy.heights-module.html','pygeodesy.heights-module.html');\"     >pygeodesy.heights</a><br />    <a target=\"moduleFrame\" href=\"toc-pygeodesy.internals-module.html\"\n     onclick=\"setFrame('toc-pygeodesy.internals-module.html','pygeodesy.internals-module.html');\"     >pygeodesy.internals</a><br />    <a target=\"moduleFrame\" href=\"toc-pygeodesy.interns-module.html\"\n     onclick=\"setFrame('toc-pygeodesy.interns-module.html','pygeodesy.interns-module.html');\"     >pygeodesy.interns</a><br />    <a target=\"moduleFrame\" href=\"toc-pygeodesy.iters-module.html\"\n     onclick=\"setFrame('toc-pygeodesy.iters-module.html','pygeodesy.iters-module.html');\"     >pygeodesy.iters</a><br />    <a target=\"moduleFrame\" href=\"toc-pygeodesy.karney-module.html\"\n     onclick=\"setFrame('toc-pygeodesy.karney-module.html','pygeodesy.karney-module.html');\"     >pygeodesy.karney</a><br />    <a target=\"moduleFrame\" href=\"toc-pygeodesy.ktm-module.html\"\n     onclick=\"setFrame('toc-pygeodesy.ktm-module.html','pygeodesy.ktm-module.html');\"     >pygeodesy.ktm</a><br />    <a target=\"moduleFrame\" href=\"toc-pygeodesy.latlonBase-module.html\"\n     onclick=\"setFrame('toc-pygeodesy.latlonBase-module.html','pygeodesy.latlonBase-module.html');\"     >pygeodesy.latlonBase</a><br />    <a target=\"moduleFrame\" href=\"toc-pygeodesy.lazily-module.html\"\n     onclick=\"setFrame('toc-pygeodesy.lazily-module.html','pygeodesy.lazily-module.html');\"     >pygeodesy.lazily</a><br />    <a target=\"moduleFrame\" href=\"toc-pygeodesy.lcc-module.html\"\n     onclick=\"setFrame('toc-pygeodesy.lcc-module.html','pygeodesy.lcc-module.html');\"     >pygeodesy.lcc</a><br />    <a target=\"moduleFrame\" href=\"toc-pygeodesy.ltp-module.html\"\n     onclick=\"setFrame('toc-pygeodesy.ltp-module.html','pygeodesy.ltp-module.html');\"     >pygeodesy.ltp</a><br />    <a target=\"moduleFrame\" href=\"toc-pygeodesy.ltpTuples-module.html\"\n     onclick=\"setFrame('toc-pygeodesy.ltpTuples-module.html','pygeodesy.ltpTuples-module.html');\"     >pygeodesy.ltpTuples</a><br />    <a target=\"moduleFrame\" href=\"toc-pygeodesy.mgrs-module.html\"\n     onclick=\"setFrame('toc-pygeodesy.mgrs-module.html','pygeodesy.mgrs-module.html');\"     >pygeodesy.mgrs</a><br />    <a target=\"moduleFrame\" href=\"toc-pygeodesy.named-module.html\"\n     onclick=\"setFrame('toc-pygeodesy.named-module.html','pygeodesy.named-module.html');\"     >pygeodesy.named</a><br />    <a target=\"moduleFrame\" href=\"toc-pygeodesy.namedTuples-module.html\"\n     onclick=\"setFrame('toc-pygeodesy.namedTuples-module.html','pygeodesy.namedTuples-module.html');\"     >pygeodesy.namedTuples</a><br />    <a target=\"moduleFrame\" href=\"toc-pygeodesy.nvectorBase-module.html\"\n     onclick=\"setFrame('toc-pygeodesy.nvectorBase-module.html','pygeodesy.nvectorBase-module.html');\"     >pygeodesy.nvectorBase</a><br />    <a target=\"moduleFrame\" href=\"toc-pygeodesy.osgr-module.html\"\n     onclick=\"setFrame('toc-pygeodesy.osgr-module.html','pygeodesy.osgr-module.html');\"     >pygeodesy.osgr</a><br />    <a target=\"moduleFrame\" href=\"toc-pygeodesy.points-module.html\"\n     onclick=\"setFrame('toc-pygeodesy.points-module.html','pygeodesy.points-module.html');\"     >pygeodesy.points</a><br />    <a target=\"moduleFrame\" href=\"toc-pygeodesy.props-module.html\"\n     onclick=\"setFrame('toc-pygeodesy.props-module.html','pygeodesy.props-module.html');\"     >pygeodesy.props</a><br />    <a target=\"moduleFrame\" href=\"toc-pygeodesy.resections-module.html\"\n     onclick=\"setFrame('toc-pygeodesy.resections-module.html','pygeodesy.resections-module.html');\"     >pygeodesy.resections</a><br />    <a target=\"moduleFrame\" href=\"toc-pygeodesy.rhumb-module.html\"\n     onclick=\"setFrame('toc-pygeodesy.rhumb-module.html','pygeodesy.rhumb-module.html');\"     >pygeodesy.rhumb</a><br />    <a target=\"moduleFrame\" href=\"toc-pygeodesy.simplify-module.html\"\n     onclick=\"setFrame('toc-pygeodesy.simplify-module.html','pygeodesy.simplify-module.html');\"     >pygeodesy.simplify</a><br />    <a target=\"moduleFrame\" href=\"toc-pygeodesy.solveBase-module.html\"\n     onclick=\"setFrame('toc-pygeodesy.solveBase-module.html','pygeodesy.solveBase-module.html');\"     >pygeodesy.solveBase</a><br />    <a target=\"moduleFrame\" href=\"toc-pygeodesy.sphericalBase-module.html\"\n     onclick=\"setFrame('toc-pygeodesy.sphericalBase-module.html','pygeodesy.sphericalBase-module.html');\"     >pygeodesy.sphericalBase</a><br />    <a target=\"moduleFrame\" href=\"toc-pygeodesy.sphericalNvector-module.html\"\n     onclick=\"setFrame('toc-pygeodesy.sphericalNvector-module.html','pygeodesy.sphericalNvector-module.html');\"     >pygeodesy.sphericalNvector</a><br />    <a target=\"moduleFrame\" href=\"toc-pygeodesy.sphericalTrigonometry-module.html\"\n     onclick=\"setFrame('toc-pygeodesy.sphericalTrigonometry-module.html','pygeodesy.sphericalTrigonometry-module.html');\"     >pygeodesy.sphericalTrigonometry</a><br />    <a target=\"moduleFrame\" href=\"toc-pygeodesy.streprs-module.html\"\n     onclick=\"setFrame('toc-pygeodesy.streprs-module.html','pygeodesy.streprs-module.html');\"     >pygeodesy.streprs</a><br />    <a target=\"moduleFrame\" href=\"toc-pygeodesy.trf-module.html\"\n     onclick=\"setFrame('toc-pygeodesy.trf-module.html','pygeodesy.trf-module.html');\"     >pygeodesy.trf</a><br />    <a target=\"moduleFrame\" href=\"toc-pygeodesy.triaxials-module.html\"\n     onclick=\"setFrame('toc-pygeodesy.triaxials-module.html','pygeodesy.triaxials-module.html');\"     >pygeodesy.triaxials</a><br />    <a target=\"moduleFrame\" href=\"toc-pygeodesy.units-module.html\"\n     onclick=\"setFrame('toc-pygeodesy.units-module.html','pygeodesy.units-module.html');\"     >pygeodesy.units</a><br />    <a target=\"moduleFrame\" href=\"toc-pygeodesy.unitsBase-module.html\"\n     onclick=\"setFrame('toc-pygeodesy.unitsBase-module.html','pygeodesy.unitsBase-module.html');\"     >pygeodesy.unitsBase</a><br />    <a target=\"moduleFrame\" href=\"toc-pygeodesy.ups-module.html\"\n     onclick=\"setFrame('toc-pygeodesy.ups-module.html','pygeodesy.ups-module.html');\"     >pygeodesy.ups</a><br />    <a target=\"moduleFrame\" href=\"toc-pygeodesy.utily-module.html\"\n     onclick=\"setFrame('toc-pygeodesy.utily-module.html','pygeodesy.utily-module.html');\"     >pygeodesy.utily</a><br />    <a target=\"moduleFrame\" href=\"toc-pygeodesy.utm-module.html\"\n     onclick=\"setFrame('toc-pygeodesy.utm-module.html','pygeodesy.utm-module.html');\"     >pygeodesy.utm</a><br />    <a target=\"moduleFrame\" href=\"toc-pygeodesy.utmups-module.html\"\n     onclick=\"setFrame('toc-pygeodesy.utmups-module.html','pygeodesy.utmups-module.html');\"     >pygeodesy.utmups</a><br />    <a target=\"moduleFrame\" href=\"toc-pygeodesy.utmupsBase-module.html\"\n     onclick=\"setFrame('toc-pygeodesy.utmupsBase-module.html','pygeodesy.utmupsBase-module.html');\"     >pygeodesy.utmupsBase</a><br />    <a target=\"moduleFrame\" href=\"toc-pygeodesy.vector2d-module.html\"\n     onclick=\"setFrame('toc-pygeodesy.vector2d-module.html','pygeodesy.vector2d-module.html');\"     >pygeodesy.vector2d</a><br />    <a target=\"moduleFrame\" href=\"toc-pygeodesy.vector3d-module.html\"\n     onclick=\"setFrame('toc-pygeodesy.vector3d-module.html','pygeodesy.vector3d-module.html');\"     >pygeodesy.vector3d</a><br />    <a target=\"moduleFrame\" href=\"toc-pygeodesy.vector3dBase-module.html\"\n     onclick=\"setFrame('toc-pygeodesy.vector3dBase-module.html','pygeodesy.vector3dBase-module.html');\"     >pygeodesy.vector3dBase</a><br />    <a target=\"moduleFrame\" href=\"toc-pygeodesy.webmercator-module.html\"\n     onclick=\"setFrame('toc-pygeodesy.webmercator-module.html','pygeodesy.webmercator-module.html');\"     >pygeodesy.webmercator</a><br />    <a target=\"moduleFrame\" href=\"toc-pygeodesy.wgrs-module.html\"\n     onclick=\"setFrame('toc-pygeodesy.wgrs-module.html','pygeodesy.wgrs-module.html');\"     >pygeodesy.wgrs</a><br /><hr />\n\n<script type=\"text/javascript\">\n  <!--\n  // Private objects are initially displayed (because if\n  // javascript is turned off then we want them to be\n  // visible); but by default, we want to hide them.  So hide\n  // them unless we have a cookie that says to show them.\n  checkCookie();\n  // -->\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs.html",
    "content": "<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Frameset//EN\"\n          \"DTD/xhtml1-frameset.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title> PyGeodesy </title>\n  <! https://GitHub.com/mrJean1/PyGeodesy !>\n</head>\n<frameset cols=\"20%,80%\">\n  <frameset rows=\"50%,50%\">\n    <frame src=\"docs/toc.html\" name=\"moduleListFrame\"\n           id=\"moduleListFrame\" />\n    <frame src=\"docs/toc-everything.html\" name=\"moduleFrame\"\n           id=\"moduleFrame\" />\n  </frameset>\n  <frame src=\"docs/pygeodesy-module.html\" name=\"mainFrame\"\n         id=\"mainFrame\" />\n</frameset>\n</html>\n\n"
  },
  {
    "path": "index.html",
    "content": "<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Frameset//EN\"\n          \"DTD/xhtml1-frameset.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n  <title> PyGeodesy </title>\n  <! https://GitHub.com/mrJean1/PyGeodesy !>\n</head>\n<frameset cols=\"20%,80%\">\n  <frameset rows=\"50%,50%\">\n    <frame src=\"docs/toc.html\" name=\"moduleListFrame\"\n           id=\"moduleListFrame\" />\n    <frame src=\"docs/toc-everything.html\" name=\"moduleFrame\"\n           id=\"moduleFrame\" />\n  </frameset>\n  <frame src=\"docs/pygeodesy-module.html\" name=\"mainFrame\"\n         id=\"mainFrame\" />\n</frameset>\n</html>\n\n"
  },
  {
    "path": "pygeodesy/LICENSE",
    "content": "MIT License <https://OpenSource.org/licenses/MIT>\n\nCopyright (C) 2016-2024 -- mrJean1 at Gmail -- All Rights Reserved.\n\nPermission is hereby granted, free of charge, to any person obtaining a\ncopy of this software and associated documentation files (the \"Software\"),\nto deal in the Software without restriction, including without limitation\nthe rights to use, copy, modify, merge, publish, distribute, sublicense,\nand/or sell copies of the Software, and to permit persons to whom the\nSoftware is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included\nin all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\nOR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL\nTHE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR\nOTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\nARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\nOTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "pygeodesy/__init__.py",
    "content": "\n# -*- coding: utf-8 -*-\n\nu'''A pure Python implementation of geodesy tools for various ellipsoidal and spherical earth models\nusing precision exact, elliptic, trigonometric, vector-based, iterative and approximate methods for\ngeodetic (lat-/longitude), geocentric (U{ECEF<https://WikiPedia.org/wiki/ECEF>} cartesian), local (U{LTP\n<https://WikiPedia.org/wiki/Local_tangent_plane_coordinates>}) and certain U{triaxial ellipsoidal\n<https://GeographicLib.SourceForge.io/1.44/triaxial.html>} coordinates.\n\nTranscoded in part from U{JavaScript originals<https://GitHub.com/ChrisVeness/geodesy>} by I{Chris Veness (C)\n2005-2025} and from several U{C++ classes<https://GeographicLib.SourceForge.io/C++/doc/annotated.html>} by I{Charles\nF. F. Karney (C) 2008-2025} and published under the same U{MIT License<https://OpenSource.org/licenses/MIT>}**.\n\nThere are four modules for ellipsoidal earth models, C{ellipsoidalExact}, C{-Karney}, C{-Vincenty} and C{-Nvector}\nand two for spherical ones, C{sphericalTrigonometry} and C{-Nvector}.  Each module provides a geodetic B{C{LatLon}}\nand a geocentric B{C{Cartesian}} class with methods and functions to compute distance, surface area, perimeter,\nforward and reverse azimuth, initial and final bearing, intermediate and nearest points, intersections of geodesic,\ngreat circle and rhumb lines, circle intersections and secants, U{3-point resections\n<https://WikiPedia.org/wiki/Position_resection_and_intersection>}, triangulation, trilateration (by intersection,\nby overlap and in 3-D), among other things.\n\nAlso included are modules for conversions to and from U{Cassini-Soldner\n<https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1CassiniSoldner.html>},\nU{ECEF<https://WikiPedia.org/wiki/ECEF>} (Earth-Centered, Earth-Fixed cartesian), U{UTM\n<https://www.Movable-Type.co.UK/scripts/latlong-utm-mgrs.html>} (Universal Transverse Mercator\nand U{Exact<https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1TransverseMercatorExact.html>}),\nU{UPS<https://WikiPedia.org/wiki/Universal_polar_stereographic_coordinate_system>} (Universal Polar\nStereographic) and U{Web Mercator<https://WikiPedia.org/wiki/Web_Mercator>} (Pseudo-Mercator) coordinates,\nU{MGRS<https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1MGRS.html>} (Military Grid Reference\nSystem, UTM I{and} UPS) and U{OSGR<https://www.Movable-Type.co.UK/scripts/latlong-os-gridref.html>} (British\nOrdinance Survery Grid Reference) grid references, U{TRF<http://ITRF.ENSG.IGN.Fr>} (Terrestrial Reference\nFrames) and modules to encode and decode U{EPSG<https://EPSG.org>}, U{Geohashes\n<https://www.Movable-Type.co.UK/scripts/geohash.html>}, U{Georefs (WGRS)\n<https://WikiPedia.org/wiki/World_Geographic_Reference_System>} and U{Garefs (GARS)\n<https://WikiPedia.org/wiki/Global_Area_Reference_System>}.\n\nOther modules provide U{Albers equal-area\n<https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1AlbersEqualArea.html>} projections, U{equidistant\n<https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1AzimuthalEquidistant.html>} and other I{azimuthal}\nprojections, Lambert I{conformal conic} projections and positions, functions to clip paths or polygons of C{LatLon}\npoints using the U{Cohen-Sutherland<https://WikiPedia.org/wiki/Cohen-Sutherland_algorithm>},\nU{Forster-Hormann-Popa<https://www.ScienceDirect.com/science/article/pii/S259014861930007X>},\nU{Greiner-Hormann<http://www.inf.USI.CH/hormann/papers/Greiner.1998.ECO.pdf>},\nU{Liang-Barsky<https://www.CS.Helsinki.FI/group/goa/viewing/leikkaus/intro.html>} and\nU{Sutherland-Hodgman<https://WikiPedia.org/wiki/Sutherland-Hodgman_algorithm>} methods,\nfunctions to U{simplify<https://Bost.Ocks.org/mike/simplify>} or linearize a path of C{LatLon}\npoints (or a U{NumPy array<https://docs.SciPy.org/doc/numpy/reference/generated/numpy.array.html>}),\nincluding implementations of the U{Ramer-Douglas-Peucker<https://WikiPedia.org/wiki/\nRamer-Douglas-Peucker_algorithm>}, the U{Visvalingam-Whyatt<https://hydra.Hull.ac.UK/\nresources/hull:8338>} and the U{Reumann-Witkam<https://psimpl.SourceForge.net/reumann-witkam.html>}\nalgorithms and modified versions of the former.\n\nPlus modules and classes to U{interpolate<https://docs.SciPy.org/doc/scipy/reference/interpolate.html>} the\nL{height<pygeodesy.heights>} of C{LatLon} points and L{Geoid<pygeodesy.geoids>} models, to compute various U{Fréchet\n<https://WikiPedia.org/wiki/Frechet_distance>} or U{Hausdorff<https://WikiPedia.org/wiki/Hausdorff_distance>}\ndistances or to perform I{boolean} operations between (composite) polygons of C{LatLon} points.\n\nFor further details see the U{documentation<https://mrJean1.GitHub.io/PyGeodesy>}, the descriptions of\nU{Latitude/Longitude<https://www.Movable-Type.co.UK/scripts/latlong.html>}, U{Vincenty\n<https://www.Movable-Type.co.UK/scripts/latlong-vincenty.html>} and U{Vector-based\n<https://www.Movable-Type.co.UK/scripts/latlong-vectors.html>} geodesy, the original U{JavaScript source\n<https://GitHub.com/ChrisVeness/geodesy>} or U{docs<https://www.Movable-Type.co.UK/scripts/geodesy/docs>}\nand I{Karney}'s Python U{geographiclib<https://PyPI.org/project/geographiclib>} and C++ U{GeographicLib\n<https://GeographicLib.SourceForge.io/C++/doc/index.html>}.\n\nInstallation\n============\n\nTo install C{pygeodesy}, type C{python[3] -m pip install pygeodesy} or C{python[3] -m easy_install\npygeodesy} in a terminal or command window.\n\nIf the wheel C{pygeodesy-yy.m.d-py2.py3-none-any.whl} is missing in U{PyPI Download files<https://\nPyPI.org/project/pygeodesy/#files>}, download the file from U{GitHub/dist<https://GitHub.com/mrJean1/\nPyGeodesy/tree/master/dist>}.  Install that with C{python[3] -m pip install <path-to-downloaded-wheel>}\nand verify with C{python[3] -m pygeodesy}.\n\nAlternatively, download C{pygeodesy-yy.m.d.tar.gz} from U{PyPI<https://PyPI.org/project/pygeodesy>}\nor U{GitHub<https://GitHub.com/mrJean1/PyGeodesy>}, C{unzip} the downloaded file, C{cd} to\ndirectory C{pygeodesy-yy.m.d} and type C{python[3] setup.py install}.\n\nTo run all C{pygeodesy} tests, type C{python[3] test/run.py} or type C{python[3] test/unitTestSuite.py}\nbefore or after installation.\n\nDependencies\n============\n\nInstallation of I{Karney}'s Python package U{geographiclib<https://PyPI.org/project/geographiclib>}\nis optional, but required for module L{ellipsoidalKarney}, L{azimuthal} classes L{EquidistantKarney}\nand L{GnomonicKarney} and the L{HeightIDWkarney} interpolator.\n\nBoth U{numpy<https://PyPI.org/project/numpy>} and U{scipy<https://PyPI.org/project/scipy>} must be\ninstalled for most L{Geoid...<pygeodesy.geoids>} and L{Height...<pygeodesy.heights>} interpolators,\nexcept L{GeoidKarney} and the L{HeightIDW...<pygeodesy.heights>} ones.\n\nFunctions and C{LatLon} methods L{circin6}, L{circum3}, L{circum4_} and L{soddy4} and functions\nL{triaxum5} and L{trilaterate3d2} require U{numpy<https://PyPI.org/project/numpy>} to be installed,\nmodules L{auxilats} and L{rhumb} may need U{numpy<https://PyPI.org/project/numpy>}.\n\nModules L{ellipsoidalGeodSolve} and L{geodsolve} and L{azimuthal} classes L{EquidistantGeodSolve}\nand L{GnomonicGeodSolve} depend on I{Karney}'s C++ utility U{GeodSolve\n<https://GeographicLib.SourceForge.io/C++/doc/GeodSolve.1.html>} to be executable and set with\nenv variable C{PYGEODESY_GEODSOLVE} or with property L{Ellipsoid.geodsolve}.\n\nTriaxial geodesic classes L{Geodesic3Solve} and L{GeodesicLine3Solve} in module L{geod3solve} need\nI{Karney}'s C++ utility U{Geod3Solve<https://GeographicLib.SourceForge.io/C++/doc/Geod3Solve.1.html>}\nto be executable and set with env variable C{PYGEODESY_GEOD3SOLVE} or with property\nL{Geodesic3Solve.Geod3Solve<geod3solve._Geodesic3SolveBase.Geod3Solve>}.\n\nClass L{Intersectool} in module L{geodesici} needs I{Karney}'s C++ utility U{IntersectTool\n<https://GeographicLib.SourceForge.io/C++/doc/IntersectTool.1.html>} to be executable and set with\nenv variable C{PYGEODESY_INTERSECTTOOL} or with property L{Intersectool.IntersectTool\n<geodesici.Intersectool.IntersectTool>}.\n\nTo compare C{MGRS} results from modules L{mgrs} and C{testMgrs} with I{Karney}'s C++ utility\nU{GeoConvert<https://GeographicLib.SourceForge.io/C++/doc/GeoConvert.1.html>}, the latter must\nbe executable and set with env variable C{PYGEODESY_GEOCONVERT}.\n\nModule L{rhumb.solve} needs I{Karney}'s C++ utility U{RhumbSolve\n<https://GeographicLib.SourceForge.io/C++/doc/RhumbSolve.1.html>} to be executable and set with\nenv variable C{PYGEODESY_RHUMBSOLVE} or with property L{Ellipsoid.rhumbsolve}.\n\nDocumentation\n=============\n\nIn addition to the C{pygeodesy} package, the U{pygeodesy<https://PyPI.org/project/pygeodesy>}\nU{distribution files<https://GitHub.com/mrJean1/PyGeodesy/tree/master/dist>} contain the tests,\nthe test results (on macOS only) and the complete U{documentation<https://mrJean1.GitHub.io/PyGeodesy>}\n(generated by U{Epydoc<https://PyPI.org/project/epydoc>} using command line:\nC{epydoc --html --no-private --no-source --name=pygeodesy --url=... -v pygeodesy}).\n\nTests\n=====\n\nThe tests ran with Python 3.14.3 (with U{geographiclib<https://PyPI.org/project/geographiclib>} 2.1),\nPython 3.13.12 (with U{geographiclib<https://PyPI.org/project/geographiclib>} 2.1),\nU{numpy<https://PyPI.org/project/numpy>} 2.3.3, U{scipy<https://PyPI.org/project/scipy>} 1.16.2,\nU{GeoConvert<https://GeographicLib.SourceForge.io/C++/doc/utilities.html>} 2.7 and\nU{GeodSolve<https://GeographicLib.SourceForge.io/C++/doc/utilities.html>} 2.7),\nPython 3.12.10 (with U{geographiclib<https://PyPI.org/project/geographiclib>} 2.0,\nU{numpy<https://PyPI.org/project/numpy>} 2.1.0, U{scipy<https://PyPI.org/project/scipy>} 1.14.1,\nU{GeodSolve<https://GeographicLib.SourceForge.io/C++/doc/utilities.html>} 2.7,\nU{GeodS3olve<https://GeographicLib.SourceForge.io/C++/doc/utilities.html>} 2.7,\nU{IntersectTool<https://GeographicLib.SourceForge.io/C++/doc/utilities.html>} 2.7 and\nU{RhumbSolve<https://GeographicLib.SourceForge.io/C++/doc/utilities.html>} 2.7),\nPython 3.11.9 (with U{geographiclib<https://PyPI.org/project/geographiclib>} 2.0,\nU{numpy<https://PyPI.org/project/numpy>} 1.24.2 and U{scipy<https://PyPI.org/project/scipy>} 1.10.1),\nand with Python 2.7.18 (with U{geographiclib<https://PyPI.org/project/geographiclib>} 1.50,\nU{numpy<https://PyPI.org/project/numpy>} 1.16.6, U{scipy<https://PyPI.org/project/scipy>} 1.2.2,\nU{GeoConvert<https://GeographicLib.SourceForge.io/C++/doc/utilities.html>} 2.7,\nU{GeodSolve<https://GeographicLib.SourceForge.io/C++/doc/utilities.html>} 2.7,\nU{Geod3Solve<https://GeographicLib.SourceForge.io/C++/doc/utilities.html>} 2.7,\nU{IntersectTool<https://GeographicLib.SourceForge.io/C++/doc/utilities.html>} 2.7 and\nU{RhumbSolve<https://GeographicLib.SourceForge.io/C++/doc/utilities.html>} 2.7), all in 64-bit on\nmacOS 26.3 Tahoe.\n\nAll tests ran with and without C{lazy import} for Python 3 and with command line option C{-W default} and\nenv variable C{PYGEODESY_WARNINGS=on} for all Python versions.  The results of those tests are included in\nthe distribution files.\n\nTest coverage has been measured with U{coverage<https://PyPI.org/project/coverage>} 7.10.7 using Python\n3.14.3, 3.13.12 and 3.12.10.  The complete coverage report in HTML and a PDF summary are included in the\ndistribution files.\n\nPython 3.14.3, 3.13.12, 3.12.10 and 3.11.9 run on Apple Si M4 (C{arm64}), I{natively}.  Python 2.7.18 runs\non Intel (C{x86_64}) or Intel I{emulation} (\"C{arm64_x86_64}\", see function L{machine<pygeodesy.machine>}).\n\nThe tests also ran with Python 3.14.3 (and U{geographiclib<https://PyPI.org/project/geographiclib>} 2.1) on\nU{Debian 12<https://Cirrus-CI.com/github/mrJean1/PyGeodesy/master>} in 64-bit only, with Python 3.13.12 (and\nU{geographiclib<https://PyPI.org/project/geographiclib>} 2.0) on U{Windows 2019Server\n<https://CI.AppVeyor.com/project/mrJean1/pygeodesy>} in 64-bit only and with Python 2.7.18 (and U{geographiclib\n<https://PyPI.org/project/geographiclib>} 1.52) on U{Windows 10<https://CI.AppVeyor.com/project/mrJean1/pygeodesy>}\nin 64- and 32-bit.\n\nA single-File and single-Directory application with C{pygeodesy} has been bundled using U{PyInstaller\n<https://PyPI.org/project/pyinstaller>} 3.4 and 64-bit Python 3.7.3 on macOS 10.13.6 High Sierra.\n\nPreviously, the tests were run with Python 3.13.0-9, 3.12.0-7, 3.11.2-5, 3.10.1-7, 3.9.6, 3.9.1, 3.8.7, 3.7.1, 2.7.15,\nU{PyPy<https://PyPy.org>} 7.3.12 (Python 3.10.12), 7.3.1 (Python 3.6.9) and U{PyPy<https://PyPy.org>} 7.1.1 (Python\n2.7.13) (and U{geographiclib <https://PyPI.org/project/geographiclib>} 1.52, U{numpy<https://PyPI.org/project/numpy>}\n1.16.3, 1.16.4, 1.16.6, 1.19.0, 1.19.4, 1.19.5 or 1.22.4 and U{scipy<https://PyPI.org/project/scipy>} 1.2.1, 1.4.1,\n1.5.2 or 1.8.1) on U{Ubuntu 16.04<https://Travis-CI.com/mrJean1/PyGeodesy>}, with Python 3.10.0-1, 3.9.0-5, 3.8.0-6,\n3.7.2-6, 3.7.0, 3.6.2-5, 3.5.3, 2.7.13-17, 2.7.10 and 2.6.9 (and U{numpy<https://PyPI.org/project/numpy>} 1.19.0,\n1.16.5, 1.16.2, 1.15.2, 1.14.0, 1.13.1, 1.8.0rc1 or 1.6.2 and U{scipy<https://PyPI.org/project/scipy>} 1.5.0), U{PyPy\n<https://PyPy.org>} 7.3.0 (Python 2.7.13 and 3.6.9), U{PyPy<https://PyPy.org>} 6.0.0 (Python 2.7.13 and 3.5.3)\nand U{Intel-Python<https://software.Intel.com/en-us/distribution-for-python>} 3.5.3 (and U{numpy\n<https://PyPI.org/project/numpy>} 1.11.3) on macOS 15.0-6 Sequoia, 14.0-6.1 Sonoma, 13.0-5.2 Ventura, 12.1-6 Monterey,\n11.0-5.2-6.1 Big Sur (aka 10.16), 10.15.3, 10.15.5-7 Catalina, 10.14 Mojave, 10.13.6 High Sierra and 10.12 Sierra,\nMacOS X 10.11 El Capitan and/or MacOS X 10.10 Yosemite, with U{Pythonista<https://OMZ-Software.com/pythonista>}3.2\n(with geographiclib 1.50 or 1.49 and numpy 1.8.0) on iOS 14.4.2, 11.4.1, 12.0-3 on iPad4, iPhone6, iPhone10 and/or\niPhone12, with U{Pythonista<https://OMZ-Software.com/pythonista>} 3.1 on iOS 10.3.3, 11.0.3, 11.1.2 and 11.3 on iPad4,\nall in 64-bit only and with 32-bit Python 2.7.14 on Windows Server 2012R2, Windows 10 Pro and with 32-bit Python 2.6.6\non Windows XP SP3.\n\nNotes\n=====\n\nAll Python source code has been statically U{checked<https://GitHub.com/ActiveState/code/tree/master/recipes/Python/\n546532_PyChecker_postprocessor>} with U{Ruff<https://GitHub.com/astral-sh/ruff>} using Python 3.13.12 and with\nU{PyChecker<https://PyPI.org/project/pychecker>}, U{PyFlakes<https://PyPI.org/project/pyflakes>}, U{PyCodeStyle\n<https://PyPI.org/project/pycodestyle>} (formerly Pep8) and U{McCabe<https://PyPI.org/project/mccabe>} using Python\n2.7.18, both in 64-bit on macOS 26.3 Tahoe.\n\nFor a summary of all I{Karney}-based functionality in C{pygeodesy}, see module U{karney\n<https://mrJean1.GitHub.io/PyGeodesy/docs/pygeodesy.karney-module.html>}.\n\nIn Python 2, symbols L{S_DEG}, L{S_MIN}, L{S_SEC}, L{S_RAD} and L{S_SEP} may be multi-byte, non-ascii\ncharacters and if so, I{not} C{unicode}.\n\nEnv variables\n=============\n\nThe following environment variables are observed by C{pygeodesy}:\n\n - C{PYGEODESY_EXCEPTION_CHAINING} - see module L{errors<pygeodesy.errors>}.\n - C{PYGEODESY_FMT_FORM} - see module L{dms<pygeodesy.dms>}.\n - C{PYGEODESY_FSUM_F2PRODUCT} - see module L{fsums<pygeodesy.fsums>} and method L{f2product<pygeodesy.Fsum.f2product>}.\n - C{PYGEODESY_FSUM_NONFINITES} - see module L{fsums<pygeodesy.fsums>} and method L{nonfinites<pygeodesy.Fsum.nonfinites>}.\n - C{PYGEODESY_FSUM_RESIDUAL} - see module L{fsums<pygeodesy.fsums>} and method L{RESIDUAL<pygeodesy.Fsum.RESIDUAL>}.\n - C{PYGEODESY_GEOCONVERT} - see module L{mgrs<pygeodesy.mgrs>}.\n - C{PYGEODESY_GEODSOLVE} - see module L{geodsolve<pygeodesy.geodsolve>}.\n - C{PYGEODESY_GEOD3SOLVE} - see module L{geod3solve<pygeodesy.geod3solve>}.\n - C{PYGEODESY_INTERSECTTOOL} - see module L{geodesici<pygeodesy.geodesici>}.\n - C{PYGEODESY_LAZY_IMPORT} - see module L{lazily<pygeodesy.lazily>} and variable L{isLazy<pygeodesy.isLazy>}.\n - C{PYGEODESY_NOTIMPLEMENTED} - C{__special__} methods return C{NotImplemented} if set to \"std\".\n - C{PYGEODESY_RHUMBSOLVE} - see module L{rhumb.solve<pygeodesy.rhumb.solve>}.\n - C{PYGEODESY_UPS_POLES} - see modules L{ups<pygeodesy.ups>} and L{mgrs<pygeodesy.mgrs>}.\n\nand these to specify standard or I{named} C{repr}esentations:\n\n - C{PYGEODESY_AZIMUTH_STD_REPR} - see method L{Azimuth<pygeodesy.Azimuth>}C{.__repr__}.\n - C{PYGEODESY_BEARING_STD_REPR} - see method L{Bearing<pygeodesy.Bearing>}C{.__repr__}.\n - C{PYGEODESY_BOOL_STD_REPR} - see method L{Bool<pygeodesy.Bool>}C{.__repr__}.\n - C{PYGEODESY_DEGREES_STD_REPR} - see method L{Degrees<pygeodesy.Degrees>}C{.__repr__}.\n - C{PYGEODESY_EPOCH_STD_REPR} - see method L{Float<pygeodesy.Epoch>}C{.__repr__}.\n - C{PYGEODESY_FLOAT_STD_REPR} - see method L{Float<pygeodesy.Float>}C{.__repr__}.\n - C{PYGEODESY_INT_STD_REPR} - see method L{Int<pygeodesy.Int>}C{.__repr__}.\n - C{PYGEODESY_METER_STD_REPR} - see method L{Meter<pygeodesy.Meter>}C{.__repr__}.\n - C{PYGEODESY_RADIANS_STD_REPR} - see method L{Radians<pygeodesy.Radians>}C{.__repr__}.\n - C{PYGEODESY_STR_STD_REPR} - see method L{Str<pygeodesy.Str>}C{.__repr__}.\n\nplus during development:\n\n - C{PYGEODESY_FOR_DOCS} - for extended documentation by C{epydoc}.\n - C{PYGEODESY_GEOGRAPHICLIB} - see module L{karney<pygeodesy.karney>}.\n - C{PYGEODESY_WARNINGS} - see module L{props<pygeodesy.props>} and function L{DeprecationWarnings<pygeodesy.DeprecationWarnings>}.\n - C{PYGEODESY_XPACKAGES} - see module L{basics<pygeodesy.basics>}.\n - C{PYTHONDEVMODE} - see modules L{errors<pygeodesy.errors>} and L{props<pygeodesy.props>}.\n\nand:\n\n - C{PYGEODESY_INIT__ALL__} - Set env variable C{PYGEODESY_INIT__ALL__} to anything other than C{\"__all__\"} to avoid\n   importing all C{pygeodesy} modules unnecessarily (in Python 2 or with C{PYGEODESY_LAZY_IMPORT} turned off in Python\n   3).  However, to import a C{pygeodesy} item, the item name must be qualified with the C{module} name, for example\n   C{ from pygeodesy.ellipsoidalExact import LatLon } or C{ from pygeodesy.deprecated import collins }\n\nLicense\n=======\n\n**) U{Copyright (C) 2016-2026 -- mrJean1 at Gmail -- All Rights Reserved.<https://OpenSource.org/licenses/MIT>}\n\nC{Permission is hereby granted, free of charge, to any person obtaining a copy of this software\nand associated documentation files (the \"Software\"), to deal in the Software without restriction,\nincluding without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense,\nand/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so,\nsubject to the following conditions:}\n\nC{The above copyright notice and this permission notice shall be included in all copies or substantial\nportions of the Software.}\n\nC{THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT\nNOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\nWHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.}\n\n@newfield example: Example, Examples\n\n@var EPS:    System's M{epsilon} ≈ 2.22044604925e-16 (C{float}).\n@var EPS0:   M{EPS**2}  ≈ 4.9e-32 for near-zero comparison\n@var EPS02:  M{EPS**4}  ≈ 2.4e-63 for near-zero squared comparison\n@var EPS1:   M{1 - EPS} ≈ 0.9999999999999998 (C{float}).\n@var EPS2:   M{EPS * 2} ≈ 4.440892098501e-16 (C{float}).\n@var EPS_2:  M{EPS / 2} ≈ 1.110223024625e-16 (C{float}).\n@var EPS4:   M{EPS * 4} ≈ 8.881784197001e-16 (C{float}).\n@var EPS8:   M{EPS * 8} ≈ 1.776356839400e-15 (C{float}).\n\n@var F_D:   Format degrees as unsigned \"deg°\" with symbol, plus compass point suffix C{N, S, E} or C{W} (C{str}).\n@var F_DM:  Format degrees as unsigned \"deg°min′\" with symbols, plus suffix (C{str}).\n@var F_DMS: Format degrees as unsigned \"deg°min′sec″\" with symbols, plus suffix (C{str}).\n@var F_DEG: Format degrees as unsigned \"[D]DD\" I{without} symbol, plus suffix (C{str}).\n@var F_MIN: Format degrees as unsigned \"[D]DDMM\" I{without} symbols, plus suffix (C{str}).\n@var F_SEC: Format degrees as unsigned \"[D]DDMMSS\" I{without} symbols, plus suffix (C{str}).\n@var F_D60: Format degrees as unsigned \"[D]DD.MMSS\" C{sexagecimal} I{without} symbols, plus suffix (C{str}).\n@var F__E:  Format degrees as unsigned \"%E\" I{without} symbols, plus suffix (C{str}).\n@var F__F:  Format degrees as unsigned \"%F\" I{without} symbols, plus suffix (C{str}).\n@var F__G:  Format degrees as unsigned \"%G\" I{without} symbols, plus suffix (C{str}).\n@var F_RAD: Convert degrees to radians and format as unsigned \"RR\" with symbol, plus suffix (C{str}).\n\n@var F_D_:   Format degrees as signed \"-/deg°\" with symbol, I{without} suffix (C{str}).\n@var F_DM_:  Format degrees as signed \"-/deg°min′\" with symbols, I{without} suffix (C{str}).\n@var F_DMS_: Format degrees as signed \"-/deg°min′sec″\" with symbols, I{without} suffix (C{str}).\n@var F_DEG_: Format degrees as signed \"-/[D]DD\" I{without} symbol, I{without} suffix (C{str}).\n@var F_MIN_: Format degrees as signed \"-/[D]DDMM\" I{without} symbols, I{without} suffix (C{str}).\n@var F_SEC_: Format degrees as signed \"-/[D]DDMMSS\" I{without} symbols, I{without} suffix (C{str}).\n@var F_D60_: Format degrees as signed \"-/[D]DD.MMSS\" C{sexagecimal} I{without} symbols, I{without} suffix (C{str}).\n@var F__E_:  Format degrees as signed \"-/%E\" I{without} symbols, I{without} suffix (C{str}).\n@var F__F_:  Format degrees as signed \"-/%F\" I{without} symbols, I{without} suffix (C{str}).\n@var F__G_:  Format degrees as signed \"-/%G\" I{without} symbols, I{without} suffix (C{str}).\n@var F_RAD_: Convert degrees to radians and format as signed \"-/RR\" I{without} symbol, I{without} suffix (C{str}).\n\n@var F_D__:   Format degrees as signed \"-/+deg°\" with symbol, I{without} suffix (C{str}).\n@var F_DM__:  Format degrees as signed \"-/+deg°min′\" with symbols, I{without} suffix (C{str}).\n@var F_DMS__: Format degrees as signed \"-/+deg°min′sec″\" with symbols, I{without} suffix (C{str}).\n@var F_DEG__: Format degrees as signed \"-/+[D]DD\" I{without} symbol, I{without} suffix (C{str}).\n@var F_MIN__: Format degrees as signed \"-/+[D]DDMM\" I{without} symbols, without suffix (C{str}).\n@var F_SEC__: Format degrees as signed \"-/+[D]DDMMSS\" I{without} symbols, I{without} suffix (C{str}).\n@var F_D60__: Format degrees as signed \"-/+[D]DD.MMSS\" C{sexagecimal} I{without} symbols, I{without} suffix (C{str}).\n@var F__E__:  Format degrees as signed \"-/+%E\" I{without} symbols, I{without} suffix (C{str}).\n@var F__F__:  Format degrees as signed \"-/+%F\" I{without} symbols, I{without} suffix (C{str}).\n@var F__G__:  Format degrees as signed \"-/+%G\" I{without} symbols, I{without} suffix (C{str}).\n@var F_RAD__: Convert degrees to radians and format as signed \"-/+RR\" I{without} symbol, I{without} suffix (C{str}).\n\n@var DIG:      System's M{float decimal digits} = 15 (C{int}).\n@var INF:      Infinity (C{float}), see functions L{isinf<pygeodesy.isinf>} and L{isfinite<pygeodesy.isfinite>} and C{NINF}.\n@var INT0:     C{int(0)}, missing Z-components, C{if B{z}=B{INT0}}, see functions L{isint0<pygeodesy.isint0>}, L{meeus2<pygeodesy.meeus2>}\n@var MANT_DIG: System's M{float mantissa bits} = 53 (C{int}).\n@var MAX:      System's M{float max} ≈ 1.798e+308 (C{float}).\n@var MIN:      System's M{float min} ≈ 2.225e-308 (C{float}).\n@var NAN:      Not-A-Number (C{float}), see function L{isnan<pygeodesy.isnan>}.\n@var NEG0:     Negative 0.0 (C{float}), see function L{isneg0<pygeodesy.isneg0>}.\n@var NINF:     Negative infinity (C{float}), see function L{isninf<pygeodesy.isninf>} and C{INF}.\n@var NN:       Empty (C{str}), U{I{Nomen Nescio}<https://Wiktionary.org/wiki/N.N.>}.\n\n@var OVERFLOW: Object representing C{overflow} (1 / L{EPS0<pygeodesy.constants.EPS0>} = 4.9e+32).\n\n@var PI:    Constant M{math.pi} (C{float}).\n@var PI2:   Two PI, M{PI * 2}, aka I{Tau} (C{float}).\n@var PI_2:  Half PI, M{PI / 2} (C{float}).\n@var PI3:   Three PI, M{PI * 3} (C{float}).\n@var PI3_2: One and a half PI, M{PI * 3 / 2} (C{float}).\n@var PI_3:  One third PI, M{PI / 3} (C{float}).\n@var PI4:   Four PI, M{PI * 4} (C{float}).\n@var PI_4:  Quarter PI, M{PI / 4} (C{float}).\n@var PI_6:  One sixth PI, M{PI / 6} (C{float}).\n\n@var R_MA: Equatorial earth radius (C{meter}), WGS84, EPSG:3785.\n@var R_MB: Polar earth radius (C{meter}), WGS84, EPSG:3785.\n@var R_M:  Mean (spherical) earth radius (C{meter}).\n@var R_KM: Mean (spherical) earth radius (C{Km}, kilometer).\n@var R_NM: Mean (spherical) earth radius (C{NM}, nautical miles).\n@var R_SM: Mean (spherical) earth radius (C{SM}, statute miles).\n@var R_FM: Former FAI-Sphere earth radius (C{meter}).\n@var R_GM: Average earth radius, distance to geoid surface (C{meter})\n@var R_QM: Earth' (triaxial) quadratic mean radius (C{meter})\n@var R_VM: Aviation/Navigation earth radius (C{meter}).\n\n@var S_DEG: Degrees symbol, default C{\"°\"}\n@var S_MIN: Minutes symbol, default C{\"′\"} aka I{PRIME}\n@var S_SEC: Seconds symbol, default C{\"″\"} aka I{DOUBLE_PRIME}\n@var S_RAD: Radians symbol, default C{\"\"} aka L{NN<pygeodesy.NN>}\n@var S_DMS: If C{True}, include, otherwise cancel all DMS symbols, default C{True}.\n@var S_SEP: Separator between C{deg°|min′|sec″|suffix}, default C{\"\"} aka L{NN<pygeodesy.NN>}\n\n@var Conics:     Registered, predefined L{conics<pygeodesy.Conic>} (C{enum-like}).\n@var Datums:     Registered, predefined L{datums<pygeodesy.Datum>} (C{enum-like}).\n@var Ellipsoids: Registered, predefined L{ellipsoids<pygeodesy.Ellipsoid>} (C{enum-like}).\n@var RefFrames:  Registered, predefined L{reference frames<pygeodesy.RefFrame>} (C{enum-like}).\n@var Transforms: Registered, predefined L{transforms<pygeodesy.Transform>} (C{enum-like}).\n@var Triaxials:  Registered, predefined L{triaxial ellipsoids<pygeodesy.Triaxial>} (C{enum-like}).\n@var Triaxial3s: Registered, predefined L{triaxial3 ellipsoids<pygeodesy.Triaxial3>} (C{enum-like}).\n\n@var isLazy: Lazy import setting (C{int} 0, 1, 2 or 3+) from C{env} variable C{PYGEODESY_LAZY_IMPORT}, or C{None} if C{lazy import} is not supported or not enabled, or C{False} if initializing C{lazy import} failed.\n\n@var pygeodesy_abspath: Fully qualified C{pygeodesy} directory name (C{str}).\n\n@var version: Normalized C{pygeodesy} version (C{str}).\n'''\n\nimport os.path as _os_path\nimport sys as _sys\n\n_init__all__      =  True\n# <https://PyInstaller.ReadTheDocs.io/en/stable/runtime-information.html>\n_isfrozen         =  getattr(_sys, 'frozen', False)\npygeodesy_abspath = _os_path.dirname(_os_path.abspath(__file__))  # _sys._MEIPASS + '/pygeodesy'\n_pygeodesy_       = __package__ or   _os_path.basename(pygeodesy_abspath)\n\nif _isfrozen:  # avoid lazy import\n    _lazy_import2 = None\nelse:\n    # setting __path__ should ...\n    __path__ = [pygeodesy_abspath]\n    try:  # ... make this import work, ...\n        import pygeodesy.lazily as _\n    except ImportError:  # ... if it doesn't, extend _sys.path to include\n        # this very directory such that all public and private sub-modules\n        # can be imported (by epydoc, checked by PyChecker, etc.)\n        _sys.path.insert(0, pygeodesy_abspath)  # XXX __path__[0]\n\n    try:  # lazily requires Python 3.7+, see lazily.__doc__\n        from pygeodesy.lazily import _init__all__, _lazy_import2  # PYCHOK expected\n        _, __getattr__ = _lazy_import2(_pygeodesy_)  # PYCHOK expected\n\n    except (ImportError, NotImplementedError):  # LazyImportError\n        _lazy_import2 = None\n\nif _init__all__ and not _lazy_import2:  # import and set __all__\n\n    # import all public modules and export as such\n    import pygeodesy.albers                as albers                 # noqa: F401\n    import pygeodesy.angles                as angles                 # noqa: F401\n    import pygeodesy.auxilats              as auxilats               # noqa: F401\n    import pygeodesy.azimuthal             as azimuthal              # noqa: F401\n    import pygeodesy.basics                as basics                 # noqa: F401\n    import pygeodesy.booleans              as booleans               # noqa: F401\n    import pygeodesy.cartesianBase         as cartesianBase          # noqa: F401 INTERNAL\n    import pygeodesy.clipy                 as clipy                  # noqa: F401\n    import pygeodesy.constants             as constants              # noqa: F401\n    import pygeodesy.css                   as css                    # noqa: F401\n    import pygeodesy.datums                as datums                 # noqa: F401\n    import pygeodesy.deprecated            as deprecated             # noqa: F401\n    import pygeodesy.dms                   as dms                    # noqa: F401\n    import pygeodesy.ecef                  as ecef                   # noqa: F401\n    import pygeodesy.ecefLocals            as ecefLocals             # noqa: F401\n    import pygeodesy.elevations            as elevations             # noqa: F401\n    import pygeodesy.ellipses              as ellipses               # noqa: F401\n    import pygeodesy.ellipsoidalBase       as ellipsoidalBase        # noqa: F401 INTERNAL\n    import pygeodesy.ellipsoidalBaseDI     as ellipsoidalBaseDI      # noqa: F401 INTERNAL\n    import pygeodesy.ellipsoidalExact      as ellipsoidalExact       # noqa: F401\n    import pygeodesy.ellipsoidalGeodSolve  as ellipsoidalGeodSolve   # noqa: F401\n    import pygeodesy.ellipsoidalKarney     as ellipsoidalKarney      # noqa: F401\n    import pygeodesy.ellipsoidalNvector    as ellipsoidalNvector     # noqa: F401\n    import pygeodesy.ellipsoidalVincenty   as ellipsoidalVincenty    # noqa: F401\n    import pygeodesy.ellipsoids            as ellipsoids             # noqa: F401\n    import pygeodesy.elliptic              as elliptic               # noqa: F401\n    import pygeodesy.epsg                  as epsg                   # noqa: F401\n    import pygeodesy.etm                   as etm                    # noqa: F401\n    import pygeodesy.errors                as errors                 # noqa: F401\n    import pygeodesy.fmath                 as fmath                  # noqa: F401\n    import pygeodesy.formy                 as formy                  # noqa: F401\n    import pygeodesy.frechet               as frechet                # noqa: F401\n    import pygeodesy.fstats                as fstats                 # noqa: F401\n    import pygeodesy.fsums                 as fsums                  # noqa: F401\n    import pygeodesy.gars                  as gars                   # noqa: F401\n    import pygeodesy.geodesici             as geodesici              # noqa: F401\n    import pygeodesy.geodesicw             as geodesicw              # noqa: F401\n    import pygeodesy.geodesicx             as geodesicx              # noqa: F401\n    import pygeodesy.geodsolve             as geodsolve              # noqa: F401\n    import pygeodesy.geod3solve            as geod3solve             # noqa: F401\n    import pygeodesy.geohash               as geohash                # noqa: F401\n    import pygeodesy.geoids                as geoids                 # noqa: F401\n    import pygeodesy.hausdorff             as hausdorff              # noqa: F401\n    import pygeodesy.heights               as heights                # noqa: F401\n    import pygeodesy.internals             as internals              # noqa: F401\n    import pygeodesy.interns               as interns                # noqa: F401\n    import pygeodesy.iters                 as iters                  # noqa: F401\n    import pygeodesy.karney                as karney                 # noqa: F401\n    import pygeodesy.ktm                   as ktm                    # noqa: F401\n    import pygeodesy.latlonBase            as latlonBase             # noqa: F401 INTERNAL\n    import pygeodesy.lazily                as lazily                 # noqa: F401\n    import pygeodesy.lcc                   as lcc                    # noqa: F401\n    import pygeodesy.ltp                   as ltp                    # noqa: F401\n    import pygeodesy.ltpTuples             as ltpTuples              # noqa: F401\n    import pygeodesy.mgrs                  as mgrs                   # noqa: F401\n    import pygeodesy.named                 as named                  # noqa: F401\n    import pygeodesy.namedTuples           as namedTuples            # noqa: F401\n    import pygeodesy.nvectorBase           as nvectorBase            # noqa: F401 INTERNAL\n    import pygeodesy.osgr                  as osgr                   # noqa: F401\n    import pygeodesy.points                as points                 # noqa: F401\n    import pygeodesy.props                 as props                  # noqa: F401\n    import pygeodesy.resections            as resections             # noqa: F401\n    import pygeodesy.rhumb                 as rhumb                  # noqa: F401\n    import pygeodesy.simplify              as simplify               # noqa: F401\n    import pygeodesy.sphericalBase         as sphericalBase          # noqa: F401 INTERNAL\n    import pygeodesy.sphericalNvector      as sphericalNvector       # noqa: F401\n    import pygeodesy.sphericalTrigonometry as sphericalTrigonometry  # noqa: F401\n    import pygeodesy.solveBase             as solveBase              # noqa: F401\n    import pygeodesy.streprs               as streprs                # noqa: F401\n    import pygeodesy.trf                   as trf                    # noqa: F401\n    import pygeodesy.triaxials             as triaxials              # noqa: F401\n    import pygeodesy.units                 as units                  # noqa: F401\n    import pygeodesy.unitsBase             as unitsBase              # noqa: F401 INTERNAL\n    import pygeodesy.ups                   as ups                    # noqa: F401\n    import pygeodesy.utily                 as utily                  # noqa: F401\n    import pygeodesy.utm                   as utm                    # noqa: F401\n    import pygeodesy.utmups                as utmups                 # noqa: F401\n    import pygeodesy.utmupsBase            as utmupsBase             # noqa: F401 INTERNAL\n    import pygeodesy.vector2d              as vector2d               # noqa: F401\n    import pygeodesy.vector3d              as vector3d               # noqa: F401\n    import pygeodesy.vector3dBase          as vector3dBase           # noqa: F401 INTERNAL\n    import pygeodesy.webmercator           as webmercator            # noqa: F401\n    import pygeodesy.wgrs                  as wgrs                   # noqa: F401\n\n    # lift all public classes, constants, functions, etc. but ONLY\n    # from the following modules ... (see also David Beazley's\n    # talk <https://DaBeaz.com/modulepackage/index.html>) ... BUT\n    # NOT modules ellipsoidal*, epsg, gars, geohash, spherical*,\n    # vector and wgrs ... in order keep those as modules ONLY\n    from pygeodesy.albers                import *  # noqa: F403\n    from pygeodesy.angles                import *  # noqa: F403\n    from pygeodesy.azimuthal             import *  # noqa: F403\n#   from pygeodesy.auxilats              import *  # noqa: F403\n    from pygeodesy.basics                import *  # noqa: F403\n    from pygeodesy.booleans              import *  # noqa: F403\n    from pygeodesy.cartesianBase         import *  # noqa: F403 INTERNAL\n    from pygeodesy.clipy                 import *  # noqa: F403\n    from pygeodesy.constants             import *  # noqa: F403\n    from pygeodesy.css                   import *  # noqa: F403\n    from pygeodesy.datums                import *  # noqa: F403\n    from pygeodesy.deprecated            import *  # noqa: F403 DEPRECATED\n    from pygeodesy.dms                   import *  # noqa: F403\n    from pygeodesy.ecef                  import *  # noqa: F403\n#   from pygeodesy.ecefLocals            import *  # noqa: F403\n    from pygeodesy.elevations            import *  # noqa: F403\n    from pygeodesy.ellipses              import *  # noqa: F403\n#   from pygeodesy.ellipsoidalBase       import *  # noqa: F403 INTERNAL\n#   from pygeodesy.ellipsoidalBaseDI     import *  # noqa: F403 INTERNAL\n#   from pygeodesy.ellipsoidalExact      import *  # noqa: F403\n#   from pygeodesy.ellipsoidalGeodSolve  import *  # noqa: F403\n#   from pygeodesy.ellipsoidalKarney     import *  # noqa: F403\n#   from pygeodesy.ellipsoidalNvector    import *  # noqa: F403\n    from pygeodesy.ellipsoidalVincenty   import *  # noqa: F403\n    from pygeodesy.ellipsoids            import *  # noqa: F403\n    from pygeodesy.elliptic              import *  # noqa: F403\n    from pygeodesy.epsg                  import *  # noqa: F403\n    from pygeodesy.etm                   import *  # noqa: F403\n    from pygeodesy.errors                import *  # noqa: F403\n    from pygeodesy.fmath                 import *  # noqa: F403\n    from pygeodesy.formy                 import *  # noqa: F403\n    from pygeodesy.frechet               import *  # noqa: F403\n    from pygeodesy.fstats                import *  # noqa: F403\n    from pygeodesy.fsums                 import *  # noqa: F403\n    from pygeodesy.gars                  import *  # noqa: F403\n    from pygeodesy.geodesici             import *  # noqa: F403\n    from pygeodesy.geodesicw             import *  # noqa: F403\n    from pygeodesy.geodesicx             import *  # noqa: F403\n    from pygeodesy.geodsolve             import *  # noqa: F403\n    from pygeodesy.geod3solve            import *  # noqa: F403\n    from pygeodesy.geohash               import *  # noqa: F403\n    from pygeodesy.geoids                import *  # noqa: F403\n    from pygeodesy.hausdorff             import *  # noqa: F403\n    from pygeodesy.heights               import *  # noqa: F403\n    from pygeodesy.internals             import *  # noqa: F403\n    from pygeodesy.interns               import *  # noqa: F403\n    from pygeodesy.iters                 import *  # noqa: F403\n    from pygeodesy.karney                import *  # noqa: F403\n    from pygeodesy.ktm                   import *  # noqa: F403\n    from pygeodesy.latlonBase            import *  # noqa: F403 INTERNAL\n    from pygeodesy.lazily                import *  # noqa: F403\n    from pygeodesy.lcc                   import *  # noqa: F403\n    from pygeodesy.ltp                   import *  # noqa: F403\n    from pygeodesy.ltpTuples             import *  # noqa: F403\n    from pygeodesy.mgrs                  import *  # noqa: F403\n    from pygeodesy.named                 import *  # noqa: F403\n    from pygeodesy.namedTuples           import *  # noqa: F403\n    from pygeodesy.nvectorBase           import *  # noqa: F403 INTERNAL\n    from pygeodesy.osgr                  import *  # noqa: F403\n    from pygeodesy.points                import *  # noqa: F403\n    from pygeodesy.props                 import *  # noqa: F403\n    from pygeodesy.resections            import *  # noqa: F403\n    from pygeodesy.rhumb                 import *  # noqa: F403\n    from pygeodesy.simplify              import *  # noqa: F403\n#   from pygeodesy.sphericalBase         import *  # noqa: F403 INTERNAL\n#   from pygeodesy.sphericalNvector      import *  # noqa: F403\n#   from pygeodesy.sphericalTrigonometry import *  # noqa: F403\n#   from pygeodesy.solveBase             import *  # noqa: F403 INTERNAL\n    from pygeodesy.streprs               import *  # noqa: F403\n    from pygeodesy.trf                   import *  # noqa: F403\n    from pygeodesy.triaxials             import *  # noqa: F403\n#   from pygeodesy.triaxials.bases       import *  # noqa: F403\n#   from pygeodesy.triaxials.conformals  import *  # noqa: F403\n#   from pygeodesy.triaxials.spheres     import *  # noqa: F403\n#   from pygeodesy.triaxials.triaxial3   import *  # noqa: F403\n#   from pygeodesy.triaxials.triaxial5   import *  # noqa: F403\n    from pygeodesy.units                 import *  # noqa: F403\n    from pygeodesy.unitsBase             import *  # noqa: F403 Float, ...\n    from pygeodesy.ups                   import *  # noqa: F403\n    from pygeodesy.utily                 import *  # noqa: F403\n    from pygeodesy.utm                   import *  # noqa: F403\n    from pygeodesy.utmups                import *  # noqa: F403\n#   from pygeodesy.utmupsBase            import *  # noqa: F403 INTERNAL\n    from pygeodesy.vector2d              import *  # noqa: F403\n    from pygeodesy.vector3d              import *  # noqa: F403\n    from pygeodesy.vector3dBase          import *  # noqa: F403 INTERNAL\n    from pygeodesy.webmercator           import *  # noqa: F403\n    from pygeodesy.wgrs                  import *  # noqa: F403\n\n    def _all(globalocals):\n        from pygeodesy.internals import _headof,  _DOT_  # PYCHOK expected\n        from pygeodesy.interns import NN as _NN, _attribute_, _COMMASPACE_, \\\n                                     _module_, _s_  # PYCHOK expected\n        from pygeodesy.streprs import Fmt as _Fmt  # PYCHOK expected\n        # collect all public module and attribute names and check\n        # that modules are imported from this package, 'pygeodesy'\n        # (but the latter only when not bundled with PyInstaller or\n        # Py2Exe, since the file-layout is different.  Courtesy of\n        # GilderGeek<https://GitHub.com/mrJean1/PyGeodesy/issues/31>)\n        ns = list(lazily._ALL_INIT)\n# XXX   ps = () if _isfrozen else set([_pygeodesy_] + __name__.split(_DOT_))\n        for mod, attrs in lazily._all_enums():\n            mod = _headof(_headof(mod))\n            if mod not in globalocals:\n                t = _DOT_(_pygeodesy_, mod)\n                raise ImportError('missing %s%s: %s' % (_module_, _NN, t))\n            ns.append(mod)\n            # check that all other public attrs do exist\n            if attrs and isinstance(attrs, tuple):\n                attrs = lazily._ALL_ATTRS(attrs)\n                t = tuple(a for a in attrs if a not in globalocals)\n                if t:\n                    s = _Fmt.SQUARE(_s_, len(t)) if len(t) > 1 else _NN\n                    t = _COMMASPACE_.join(_DOT_(_pygeodesy_, mod, a) for a in t)\n                    raise ImportError('missing %s%s: %s' % (_attribute_, s, t))\n                ns.extend(attrs)\n# XXX       if ps:  # check that mod is a _pygeodesy_ module\n# XXX           m = globalocals[mod]  # assert(typename(m) == mod)\n# XXX           f = getattr(m, _dunder_file_, _NN)\n# XXX           d = _os_path.dirname(_os_path.abspath(f)) if f else pygeodesy_abspath\n# XXX           p = getattr(m, _dunder_package_, _NN) or _pygeodesy_\n# XXX           if p not in ps or d != pygeodesy_abspath:\n# XXX               t = '%s from %r' % (_DOT_(p, mod), f or p)\n# XXX               raise ImportError('foreign %s: %s' % (_module_, t))\n        return tuple(set(ns))  # remove duplicates\n\n    __all__ = _all(globals())  # or locals()\nelse:\n    __all__ = ()\n    _init__all__ = False\n\nfrom pygeodesy.internals import _version2,  _DOT_  # noqa: E402\n# from pygeodesy.interns import _DOT_  # from .internals\n__version__ = '26.03.26'\n# see setup.py for similar logic\nversion     = _DOT_(*_version2(__version__, n=3))\n\ndel _DOT_, _lazy_import2, _os_path, _sys, _version2\n\n# **) MIT License\n#\n# Copyright (C) 2016-2026 -- mrJean1 at Gmail -- All Rights Reserved.\n#\n# Permission is hereby granted, free of charge, to any person obtaining a\n# copy of this software and associated documentation files (the \"Software\"),\n# to deal in the Software without restriction, including without limitation\n# the rights to use, copy, modify, merge, publish, distribute, sublicense,\n# and/or sell copies of the Software, and to permit persons to whom the\n# Software is furnished to do so, subject to the following conditions:\n#\n# The above copyright notice and this permission notice shall be included\n# in all copies or substantial portions of the Software.\n#\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL\n# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR\n# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\n# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n# OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "pygeodesy/__main__.py",
    "content": "\n# -*- coding: utf-8 -*-\n\nu'''Print L{pygeodesy} version, etc. using C{python -m pygeodesy}.\n'''\n\n__all__ = ()\n__version__ = '25.06.26'\n\nfrom os.path import basename, dirname\n\n\ndef _main():  # PYCHOK no cover\n\n    try:\n        from pygeodesy import constants, _isfrozen, pygeodesy_abspath, version\n        from pygeodesy.basics import _xcoverage,_xgeographiclib, _xnumpy, _xscipy\n        from pygeodesy.internals import _name_version, printf, _usage, _versions\n        from pygeodesy.interns import NN, _COMMASPACE_, _DALL_, _DEPRECATED_, _DOT_, \\\n                                     _EQUAL_, _pygeodesy_abspath_, _version_\n        from pygeodesy.lazily import _all_deprecates, _all_imports, isLazy\n\n        def _p(name_value):\n            return _DOT_(NN, _EQUAL_(*name_value))\n\n        p = list(_p(t) for t in ((_version_,                     version),\n                                 (_pygeodesy_abspath_, pygeodesy_abspath),\n                                 ('isLazy',                       isLazy),\n                                 ('_isfrozen',                 _isfrozen),\n                                 ('_floats',      len(constants._floats)),\n#                                ('_interns', len(interns.__dict__) - 22),\n                                 (_DALL_,            len(_all_imports())),\n                                 (_DEPRECATED_,   len(_all_deprecates()))))\n\n        def _nv(_xpkg, p):\n            try:\n                pkg = _xpkg(_main)\n            except ImportError:\n                pkg = None\n            if pkg is not None:\n                p.append(_name_version(pkg))\n\n        _nv(_xcoverage, p)\n        _nv(_xgeographiclib, p)\n        _nv(_xnumpy, p)\n        _nv(_xscipy, p)\n\n        x = basename(pygeodesy_abspath)\n        printf('%s%s (%s)', x, _COMMASPACE_.join(p), _versions())\n\n    except ImportError:\n        from pygeodesy.internals import printf, _usage\n        printf(_usage(__file__))\n\n\ntry:\n    _main()\nexcept ImportError:\n    from sys import executable as x\n    t = 'usage:', basename(x), '-m', basename(dirname(__file__))\n    print(' '.join(t))\n\n# % python3.13 -m pygeodesy\n# pygeodesy.version=25.5.25, .pygeodesy_abspath=/Users/jean/Dropbox/Projects/geodesy/PyGeodesy/pygeodesy, .isLazy=1, ._isfrozen=False, ._floats=81, .__all__=947, .DEPRECATED=113, coverage 7.6.1, geographiclib 2.0 (pygeodesy 25.5.25 Python 3.13.3 64bit arm64 macOS 15.4.1)\n\n# % python3.12 -m pygeodesy\n# pygeodesy.version=24.9.6, .pygeodesy_abspath=.../PyGeodesy/pygeodesy, .isLazy=1, ._isfrozen=False, ._floats=81, .__all__=936, .DEPRECATED=100, coverage 7.6.0, geographiclib 2.0, numpy 2.1.0, scipy 1.14.1 (pygeodesy 24.9.6 Python 3.12.5 64bit arm64 macOS 14.6.1)\n\n# % python3.11 -m pygeodesy\n# pygeodesy.version=24.9.6, .pygeodesy_abspath=.../PyGeodesy/pygeodesy, .isLazy=1, ._isfrozen=False, ._floats=81, .__all__=936, .DEPRECATED=100, coverage 7.6.0, geographiclib 2.0, numpy 1.24.2, scipy 1.10.1 (pygeodesy 24.9.6 Python 3.11.5 64bit arm64 macOS 14.6.1)\n\n# % python3.10 -m pygeodesy\n# pygeodesy.version=24.9.6, .pygeodesy_abspath=.../PyGeodesy/pygeodesy, .isLazy=1, ._isfrozen=False, ._floats=81, .__all__=936, .DEPRECATED=100, coverage 7.6.0, geographiclib 2.0, numpy 1.23.3, scipy 1.9.1 (pygeodesy 24.9.6 Python 3.10.8 64bit arm64 macOS 14.6.1)\n\n# % python3.9 -m pygeodesy\n# pygeodesy.version=24.9.6, .pygeodesy_abspath=.../PyGeodesy/pygeodesy, .isLazy=1, ._isfrozen=False, ._floats=81, .__all__=936, .DEPRECATED=100, coverage 7.2.2 (pygeodesy 24.9.6 Python 3.9.6 64bit arm64 macOS 14.6.1)\n\n# % python3.8 -m pygeodesy\n# pygeodesy.version=24.9.6, .pygeodesy_abspath=.../PyGeodesy/pygeodesy, .isLazy=1, ._isfrozen=False, ._floats=81, .__all__=936, .DEPRECATED=100, coverage 7.2.2, geographiclib 1.52, numpy 1.19.2, scipy 1.5.2 (pygeodesy 24.9.6 Python 3.8.10 64bit arm64_x86_64 macOS 10.16)\n\n# % python3.7 -m pygeodesy\n# pygeodesy.version=24.9.6, .pygeodesy_abspath=.../PyGeodesy/pygeodesy, .isLazy=1, ._isfrozen=False, ._floats=81, .__all__=936, .DEPRECATED=100, coverage 4.5.4, geographiclib 1.50, numpy 1.17.2, scipy 1.3.1 (pygeodesy 24.9.6 Python 3.7.6 64bit arm64_x86_64 macOS 10.16)\n\n# % python2.7 -m pygeodesy\n# pygeodesy.version=25.5.25, .pygeodesy_abspath=/Users/jean/Dropbox/Projects/geodesy/PyGeodesy/pygeodesy, .isLazy=None, ._isfrozen=False, ._floats=796, .__all__=947, .DEPRECATED=113, coverage 5.5, geographiclib 1.50, numpy 1.16.6, scipy 1.2.2 (pygeodesy 25.5.25 Python 2.7.18 64bit arm64_x86_64 macOS 10.16)\n\n# **) MIT License\n#\n# Copyright (C) 2016-2026 -- mrJean1 at Gmail -- All Rights Reserved.\n#\n# Permission is hereby granted, free of charge, to any person obtaining a\n# copy of this software and associated documentation files (the \"Software\"),\n# to deal in the Software without restriction, including without limitation\n# the rights to use, copy, modify, merge, publish, distribute, sublicense,\n# and/or sell copies of the Software, and to permit persons to whom the\n# Software is furnished to do so, subject to the following conditions:\n#\n# The above copyright notice and this permission notice shall be included\n# in all copies or substantial portions of the Software.\n#\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL\n# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR\n# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\n# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n# OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "pygeodesy/albers.py",
    "content": "\n# -*- coding: utf-8 -*-\n\nu'''Albers Equal-Area projections.\n\nClasses L{AlbersEqualArea}, L{AlbersEqualArea2}, L{AlbersEqualArea4},\nL{AlbersEqualAreaCylindrical}, L{AlbersEqualAreaNorth}, L{AlbersEqualAreaSouth}\nand L{AlbersError}, transcoded from I{Charles Karney}'s C++ class U{AlbersEqualArea\n<https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1AlbersEqualArea.html>}.\n\nSee also I{Albers Equal-Area Conic Projection} in U{John P. Snyder, \"Map Projections\n-- A Working Manual\", 1987<https://Pubs.USGS.gov/pp/1395/report.pdf>}, pp 98-106\nand the Albers Conical Equal-Area examples on pp 291-294.\n'''\n# make sure int/int division yields float quotient, see .basics\nfrom __future__ import division as _; del _  # noqa: E702 ;\n\nfrom pygeodesy.basics import _isin, neg, neg_\nfrom pygeodesy.constants import EPS0, EPS02, _EPSqrt as _TOL, \\\n                               _0_0, _0_5, _1_0, _N_1_0, _2_0, \\\n                               _N_2_0, _4_0, _6_0, _90_0, _N_90_0\nfrom pygeodesy.datums import _ellipsoidal_datum, _WGS84\nfrom pygeodesy.errors import _ValueError, _xkwds\nfrom pygeodesy.fmath import hypot, hypot1, sqrt3\nfrom pygeodesy.fsums import Fsum, _Fsum1f_, fsum1f_\nfrom pygeodesy.interns import NN, _COMMASPACE_, _datum_, _gamma_, _k0_, \\\n                             _lat_, _lat1_, _lat2_, _lon_, _negative_, \\\n                             _scale_, _SPACE_, _x_, _y_\nfrom pygeodesy.karney import _diff182, _norm180, _signBit\nfrom pygeodesy.lazily import _ALL_DOCS, _ALL_LAZY\nfrom pygeodesy.named import _name2__, _NamedBase, _NamedTuple, _Pass\nfrom pygeodesy.props import deprecated_Property_RO, Property_RO, _update_all\nfrom pygeodesy.streprs import Fmt, strs, unstr\nfrom pygeodesy.units import Bearing, Float_, Lat, Lat_, Lon, Meter, Scalar_\nfrom pygeodesy.utily import atan1, atan1d, atan2, degrees360, sincos2, \\\n                            sincos2d, sincos2d_\n\nfrom math import atanh, degrees, fabs, radians, sqrt\n\n__all__ = _ALL_LAZY.albers\n__version__ = '26.02.27'\n\n_k1_    = 'k1'\n_MAXIT  =   9  # XXX 4?\n_MAXIT0 =  41  # XXX 21?\n_TERMS  =  31  # XXX 16?\n_TOL0   =  sqrt3(_TOL)\n\n\ndef _ct2(s, c):\n    '''(INTERNAL) Avoid singularities at poles.\n    '''\n    c = max(EPS0, c)\n    return c, (s / c)\n\n\ndef _Ks(**name_k):\n    '''(INTERNAL) Scale C{B{k} >= EPS0}.\n    '''\n    return Scalar_(Error=AlbersError, low=EPS0, **name_k)  # > 0\n\n\ndef _Lat(*lat, **Error_name_lat):\n    '''(INTERNAL) Latitude C{-90 <= B{lat} <= 90}.\n    '''\n    kwds = _xkwds(Error_name_lat, Error=AlbersError)\n    return Lat_(*lat, **kwds)\n\n\ndef _qZx(albs):\n    '''(INTERNAL) Set C{albs._qZ} and C{albs._qx}.\n    '''\n    E = albs._datum.ellipsoid  # _AlbersBase\n    albs._qZ = qZ =  _1_0 + E.e21 * _atanheE(_1_0, E)\n    albs._qx = qZ / (_2_0 * E.e21)\n    return qZ\n\n\nclass AlbersError(_ValueError):\n    '''An L{AlbersEqualArea}, L{AlbersEqualArea2}, L{AlbersEqualArea4},\n       L{AlbersEqualAreaCylindrical}, L{AlbersEqualAreaNorth},\n       L{AlbersEqualAreaSouth} or L{Albers7Tuple} issue.\n    '''\n    pass\n\n\nclass _AlbersBase(_NamedBase):\n    '''(INTERNAL) Base class for C{AlbersEqualArea...} projections.\n\n       @see: I{Karney}'s C++ class U{AlbersEqualArea<https://GeographicLib.SourceForge.io/\n             C++/doc/classGeographicLib_1_1AlbersEqualArea.html>}, method C{Init}.\n    '''\n    _datum  = _WGS84\n    _k      =  NN    # or _k0_ or _k1_\n    _k0     = _Ks(k0=_1_0)\n#   _k0n0   =  None  # (INTERNAL) k0 * no\n    _k02    = _1_0   # (INTERNAL) k0**2\n#   _k02n0  =  None  # (INTERNAL) k02 * n0\n#   _lat0   =  None  # lat origin\n    _lat1   =  None  # let 1st parallel\n    _lat2   =  None  # lat 2nd parallel\n    _m0     = _0_0   # if polar else sqrt(m02)\n#   _m02    =  None  # (INTERNAL) cached\n#   _n0     =  None  # (INTERNAL) cached\n    _nrho0  = _0_0   # if polar else m0 * E.a\n    _polar  =  False\n    _qx     =  None  # (INTERNAL) see _qZx\n    _qZ     =  None  # (INTERNAL) see _qZx\n#   _scxi0_ =  None  # (INTERNAL) sec(xi) / (qZ * E.a2)\n    _sign   = +1\n#   _sxi0   =  None  # (INTERNAL) sin(xi)\n#   _txi0   =  None  # (INTERNAL) tan(xi)\n\n    def __init__(self, sa1, ca1, sa2, ca2, k, datum, **name):\n        '''(INTERNAL) New C{AlbersEqualArea...} instance.\n        '''\n        qZ = self._qZ\n        if not _isin(datum, None, self._datum):\n            self._datum = _ellipsoidal_datum(datum, **name)\n            qZ = _qZx(self)\n        elif qZ is None:\n            qZ = _qZx(_AlbersBase)\n        if name:\n            self.name = name\n\n        E = self.ellipsoid\n        c = min(ca1, ca2)\n        if _signBit(c):\n            raise AlbersError(clat1=ca1, clat2=ca2, txt=_negative_)\n        polar = c < EPS0  # == 0\n\n        # determine hemisphere of tangent latitude\n        if sa1 < 0:  # and sa2 < 0:\n            self._sign = -1\n            # internally, tangent latitude positive\n            sa1, sa2 = neg_(sa1, sa2)\n        if sa1 > sa2:  # make phi1 < phi2\n            sa1, sa2 = sa2, sa1\n            ca1, ca2 = ca2, ca1\n        if sa1 < 0:  # or sa2 < 0:\n            raise AlbersError(slat1=sa1, slat2=sa2, txt=_negative_)\n        ca1, ta1 = _ct2(sa1, ca1)\n        ca2, ta2 = _ct2(sa2, ca2)\n\n        par1 = fabs(ta1 - ta2) < EPS02  # ta1 == ta2\n        ta0, C = (ta2, _1_0) if par1 or polar else \\\n                  self._ta0C2(ca1, sa1, ta1, ca2, sa2, ta2)\n\n        self._lat0 = _Lat(lat0=self._sign * atan1d(ta0))\n        self._m02  =  m02 = _1_x21(E.f1 * ta0)\n        self._n0   =  n0  =  ta0 / hypot1(ta0)\n        if polar:\n            self._polar = True\n#           self._nrho0 = self._m0 = _0_0\n        else:  # m0 = nrho0 / E.a\n            self._m0    = t = sqrt(m02)\n            self._nrho0 = t * E.a\n        t = self._txi0  = self._txif(ta0)\n        h = hypot1(t)\n        s = self._sxi0  = t / h\n        if par1:\n            self._k0n0  = self._k02n0 = n0\n        else:\n            self._k0s(k * sqrt(C / (m02 + n0 * qZ * s)))\n        self._scxi0_ = h / (qZ * E.a2)\n\n    def _a_b_sxi3(self, *ca_sa_ta_scb_4s):\n        '''(INTERNAL) Sum of C{sm1} terms and C{sin(xi)}s for ._ta0C2.\n        '''\n        _1 = _1_0\n        a  =  b = s = _0_0\n        for ca, sa, ta, scb in ca_sa_ta_scb_4s:\n            cxi, sxi, _ = self._cstxif3(ta)\n            if sa > 0:\n                sa += _1\n                a  += (cxi / ca)**2 * sa / (sxi + _1)\n                b  +=  scb * ca**2  / sa\n            else:\n                sa =  _1 - sa\n                a += (_1 - sxi) / sa\n                b +=  scb * sa\n            s += sxi\n        return a, b, s\n\n    def _azik(self, t, ta):\n        '''(INTERNAL) Compute the azimuthal scale C{_Ks(k=k)}.\n        '''\n        E = self.ellipsoid\n        return _Ks(k=hypot1(E.b_a * ta) * self._k0 * t / E.a)\n\n    def _cstxif3(self, ta):\n        '''(INTERNAL) Get 3-tuple C{(cos, sin, tan)} of M{xi(ta)}.\n        '''\n        t =  self._txif(ta)\n        c = _1_0 / hypot1(t)\n        s =  c * t\n        return c, s, t\n\n    @Property_RO\n    def datum(self):\n        '''Get the datum (L{Datum}).\n        '''\n        return self._datum\n\n    @Property_RO\n    def ellipsoid(self):\n        '''Get the datum's ellipsoid (L{Ellipsoid}).\n        '''\n        return self.datum.ellipsoid\n\n    @Property_RO\n    def equatoradius(self):\n        '''Get the C{ellipsoid}'s equatorial radius, semi-axis (C{meter}).\n        '''\n        return self.ellipsoid.a\n\n    a = equatoradius\n\n    @Property_RO\n    def flattening(self):\n        '''Get the C{ellipsoid}'s flattening (C{scalar}).\n        '''\n        return self.ellipsoid.f\n\n    f = flattening\n\n    def forward(self, lat, lon, lon0=0, **name):\n        '''Convert a geodetic location to east- and northing.\n\n           @arg lat: Latitude of the location (C{degrees}).\n           @arg lon: Longitude of the location (C{degrees}).\n           @kwarg lon0: Optional central meridian longitude (C{degrees}).\n           @kwarg name: Optional C{B{name}=NN} for the location (C{str}).\n\n           @return: An L{Albers7Tuple}C{(x, y, lat, lon, gamma, scale, datum)},\n                    with C{lon} offset by B{C{lon0}} and reduced C{[-180,180]}.\n\n           @note: The origin latitude is returned by C{property lat0}.  No\n                  false easting or northing is added.  The value of B{C{lat}}\n                  should be in the range C{[-90..90] degrees}.  The returned\n                  values C{x} and C{y} will be large but finite for points\n                  projecting to infinity, i.e. one or both of the poles.\n        '''\n        a = self.ellipsoid.a\n        s = self._sign\n\n        k0    = self._k0\n        n0    = self._n0\n        nrho0 = self._nrho0\n        txi0  = self._txi0\n\n        _, ta = _ct2(*sincos2d(s * _Lat(lat=lat)))\n\n        _, sxi, txi = self._cstxif3(ta)\n        dq = _Dsn(txi,  txi0, sxi, self._sxi0) * \\\n                 (txi - txi0) * self._qZ\n        drho = a * dq / (sqrt(self._m02 - n0 * dq) + self._m0)\n\n        lon, _ = _diff182(lon0, lon)\n        x  = radians(lon)\n        th = self._k02n0 * x\n        sth, cth = sincos2(th)  # XXX sin, cos\n        if n0:\n            x  = sth / n0\n            y  = (_1_0 - cth) if cth < 0 else (sth**2 / (cth + _1_0))\n            y *= nrho0 / n0\n        else:\n            x *= self._k02\n            y = _0_0\n        t = nrho0 - n0 * drho\n        x = t *  x / k0\n        y = s * (y + drho * cth) / k0\n\n        g = degrees360(s * th)\n        if t:\n            k0 = self._azik(t, ta)\n        return Albers7Tuple(x, y, lat, lon, g, k0, self.datum,\n                                       name=self._name__(name))\n\n    @Property_RO\n    def ispolar(self):\n        '''Is this projection polar (C{bool})?\n        '''\n        return self._polar\n\n    isPolar = ispolar  # synonym\n\n    def _k0s(self, k0):\n        '''(INTERNAL) Set C{._k0}, C{._k02}, etc.\n        '''\n        self._k0    = k0  = _Ks(k0=k0)\n        self._k02   = k02 =  k0**2\n        self._k0n0  = k0  *  self._n0\n        self._k02n0 = k02 *  self._n0\n\n    @Property_RO\n    def lat0(self):\n        '''Get the latitude of the projection origin (C{degrees}).\n\n           This is the latitude of minimum azimuthal scale and\n           equals the B{C{lat}} in the 1-parallel L{AlbersEqualArea}\n           and lies between B{C{lat1}} and B{C{lat2}} for the\n           2-parallel L{AlbersEqualArea2} and L{AlbersEqualArea4}\n           projections.\n        '''\n        return self._lat0\n\n    @Property_RO\n    def lat1(self):\n        '''Get the latitude of the first parallel (C{degrees}).\n        '''\n        return self._lat1\n\n    @Property_RO\n    def lat2(self):\n        '''Get the latitude of the second parallel (C{degrees}).\n\n           @note: The second and first parallel latitudes are the\n                  same instance for 1-parallel C{AlbersEqualArea*}\n                  projections.\n        '''\n        return self._lat2\n\n    @deprecated_Property_RO\n    def majoradius(self):  # PYCHOK no cover\n        '''DEPRECATED, use property C{equatoradius}.'''\n        return self.equatoradius\n\n    def rescale0(self, lat, k=1):  # PYCHOK no cover\n        '''Set the azimuthal scale for this projection.\n\n           @arg lat: Northern latitude (C{degrees}).\n           @arg k: Azimuthal scale at latitude B{C{lat}} (C{scalar}).\n\n           @raise AlbersError: Invalid B{C{lat}} or B{C{k}}.\n\n           @note: This allows a I{latitude of conformality} to be specified.\n        '''\n        k0 = _Ks(k=k) / self.forward(lat, _0_0).scale\n        if self._k0 != k0:\n            _update_all(self)\n            self._k0s(k0)\n\n    def reverse(self, x, y, lon0=0, LatLon=None, **name_LatLon_kwds):\n        '''Convert an east- and northing location to geodetic lat- and longitude.\n\n           @arg x: Easting of the location (C{meter}).\n           @arg y: Northing of the location (C{meter}).\n           @kwarg lon0: Optional central meridian longitude (C{degrees}).\n           @kwarg LatLon: Class to use (C{LatLon}) or C{None}.\n           @kwarg name_LatLon_kwds: Optional C{B{name}=NN} for the location\n                              and optional, additional B{C{LatLon}} keyword\n                              arguments, ignored if C{B{LatLon} is None}.\n\n           @return: The geodetic (C{LatLon}) or if C{B{LatLon} is None} an\n                    L{Albers7Tuple}C{(x, y, lat, lon, gamma, scale, datum)}.\n\n           @note: The origin latitude is returned by C{property lat0}.  No\n                  false easting or northing is added.  The returned value of\n                  C{lon} is in the range C{[-180..180] degrees} and C{lat}\n                  is in the range C{[-90..90] degrees}.  If the given\n                  B{C{x}} or B{C{y}} point is outside the valid projected\n                  space the nearest pole is returned.\n        '''\n        k0   = self._k0\n        n0   = self._n0\n        k0n0 = self._k0n0\n        s    = self._sign\n        txi  = self._txi0\n\n        x  = Meter(x=x)\n        nx = k0n0 * x\n        y  = Meter(y=y)\n        y_ = s    * y\n        ny = k0n0 * y_\n        t  = nrho0 = self._nrho0\n        y1 = nrho0 - ny\n\n        den = hypot(nx, y1) + nrho0  # 0 implies origin with polar aspect\n        if den:\n            drho = _Fsum1f_(x * nx, y_ * nrho0 * _N_2_0, y_ * ny).fover(den / k0)\n            # dsxia = scxi0 * dsxi\n            t  +=  drho  * n0  # k0 below\n            d_  = (nrho0 + t) * drho * self._scxi0_  # / (qZ * E.a2)\n            t_  =  txi - d_\n            d_  = (txi + t_) * d_ + _1_0\n            txi =  t_ / (sqrt(d_) if d_ > EPS02 else EPS0)\n\n        ta  = self._tanf(txi)\n        lat = atan1d(s * ta)\n\n        th  = atan2(nx, y1)\n        lon = degrees((th / self._k02n0) if n0 else (x / (y1 * k0)))\n        if lon0:\n            lon += _norm180(lon0)\n        lon = _norm180(lon)\n\n        n, LatLon_kwds = _name2__(name_LatLon_kwds, _or_nameof=self)\n        if LatLon is None:\n            g = degrees360(s * th)\n            if den:\n                k0 = self._azik(t, ta)\n            r = Albers7Tuple(x, y, lat, lon, g, k0, self.datum, name=n)\n        else:  # PYCHOK no cover\n            kwds = _xkwds(LatLon_kwds, datum=self.datum, name=n)\n            r = LatLon(lat, lon, **kwds)\n        return r\n\n    @Property_RO\n    def scale0(self):\n        '''Get the central scale for the projection (C{float}).\n\n           This is the azimuthal scale on the latitude of origin\n           of the projection, see C{property lat0}.\n        '''\n        return self._k0\n\n    def _ta0(self, s1_qZ, ta0, E):\n        '''(INTERNAL) Refine C{ta0} for C{._ta0C2}.\n        '''\n        e2     =  E.e2\n        e21    =  E.e21\n        e22    =  E.e22  # == e2 / e21\n        tol    = _tol(_TOL0, ta0)\n        _Ta02  =  Fsum(ta0).fsum2f_\n        _1, _2 = _1_0, _2_0\n        _4, _6 = _4_0, _6_0\n        for self._iteration in range(1, _MAXIT0):  # 4 trips\n            ta02  =  ta0**2\n            sca02 =  ta02 + _1\n            sca0  =  sqrt(sca02)\n            sa0   =  ta0 / sca0\n            sa01  =  sa0 + _1\n            sa02  =  sa0**2\n            # sa0m = 1 - sa0 = 1 / (sec(a0) * (tan(a0) + sec(a0)))\n            sa0m  = _1 / (sca0 * (ta0 + sca0))  # scb0^2 * sa0\n            sa0m1 =  sa0m / (_1 - e2 * sa0)\n            sa021 =          _1 - e2 * sa02\n\n            g  = (_1 + ta02 * e21) * sa0\n            dg = (_1 + ta02 * _2)  * sca02 * e21 + e2\n            D  = (_1 - (_1 + sa0 * _2  * sa01) * e2) * sa0m / (e21 * sa01)  # dD/dsa0\n            dD = (_2 - (_6 + sa0 * _4) * sa02  * e2)       /  (e21 * sa01**2)\n            BA = (_atanh1(e2 * sa0m1**2) * e21 - e2 * sa0m) * sa0m1 \\\n               - (_2 + (_1 + e2) * sa0) * sa0m**2 * e22 / sa021  # B + A\n            d  = (_4 - (_1 + sa02) * e2 * _2) * e22    / (sa021**2 * sca02)  # dAB\n            u  = fsum1f_(s1_qZ *  g, -D,  g * BA)\n            du = fsum1f_(s1_qZ * dg, dD, dg * BA, g * d)\n            ta0, d = _Ta02(-u / du * (sca0 * sca02))\n            if fabs(d) < tol:\n                return ta0\n        raise AlbersError(Fmt.no_convergence(d, tol), txt=repr(self))\n\n    def _ta0C2(self, ca1, sa1, ta1, ca2, sa2, ta2):\n        '''(INTERNAL) Compute C{ta0} and C{C} for C{.__init__}.\n        '''\n        E      =  self.ellipsoid\n        f1, e2 =  E.f1, E.e2\n        _1     = _1_0\n\n        tb1    = f1 *  ta1\n        tb2    = f1 *  ta2\n        dtb12  = f1 * (tb1 + tb2)\n        scb12  = _1 +  tb1**2\n        scb22  = _1 +  tb2**2\n\n        dsn_2  = _Dsn(ta2, ta1, sa2, sa1) * _0_5\n        sa12   =  sa1 * sa2\n\n        esa1_2 = (_1 - e2 * sa1**2) \\\n               * (_1 - e2 * sa2**2)\n        esa12  =  _1 + e2 * sa12\n\n        axi, bxi, sxi = self._a_b_sxi3((ca1, sa1, ta1, scb12),\n                                       (ca2, sa2, ta2, scb22))\n\n        dsxi  = ((esa12 / esa1_2) + _DatanheE(sa2, sa1, E)) * dsn_2 / self._qx\n        C     = _Fsum1f_(sxi * dtb12 / dsxi, scb22, scb12).fover(scb22 * scb12 * _2_0)\n\n        S     = _Fsum1f_(sa1, sa2, sa12)\n        axi  *= (S * e2 + _1).fover(S + _1, raiser=False)\n        bxi  *= _Fsum1f_(  sa1, sa2, esa12).fover(esa1_2) * e2 + \\\n                _D2atanheE(sa1, sa2, E) * E.e21\n        s1_qZ = (axi * self._qZ - bxi) * dsn_2 / dtb12\n        ta0   =  self._ta0(s1_qZ, (ta1 + ta2) * _0_5, E)\n        return ta0, C\n\n    def _tanf(self, txi):  # in .Ellipsoid.auxAuthalic\n        '''(INTERNAL) Function M{tan-phi from tan-xi}.\n        '''\n        e2   =  self.ellipsoid.e2\n        ta   =  txi\n        tol  = _tol(_TOL, ta)\n        _Ta2 =  Fsum(ta).fsum2f_\n        for self._iteration in range(1, _MAXIT):  # max 2, mean 1.99\n            # dtxi / dta = (scxi / sca)^3 * 2 * (1 - e^2)\n            #            / (qZ * (1 - e^2 * sa^2)^2)\n            ta2   =  ta**2\n            sca2  = _1_0 + ta2\n            txia  =  self._txif(ta)\n            s3    =  sqrt3(sca2 / (txia**2 + _1_0))  # * _1_x21(txia)\n            s3   *= (e2 * ta2 / sca2 - _1_0)**2 * self._qx\n            ta, d = _Ta2((txi - txia) * s3)\n            if fabs(d) < tol:\n                return ta\n        raise AlbersError(Fmt.no_convergence(d, tol), txt=repr(self))\n\n    def toRepr(self, prec=6, **unused):  # PYCHOK expected\n        '''Return a string representation of this projection.\n\n           @kwarg prec: Number of (decimal) digits, unstripped (C{int}).\n\n           @return: This projection as C{\"<classname>(lat1, lat2, ...)\"}\n                    (C{str}).\n        '''\n        t = self.toStr(prec=prec, sep=_COMMASPACE_)\n        return Fmt.PAREN(self.classname, t)\n\n    def toStr(self, prec=6, sep=_SPACE_, **unused):  # PYCHOK expected\n        '''Return a string representation of this projection.\n\n           @kwarg prec: Number of (decimal) digits, unstripped (C{int}).\n           @kwarg sep: Separator to join (C{str}).\n\n           @return: This projection as C{\"lat1 lat2\"} (C{str}).\n        '''\n        k =  self._k\n        t = (self.lat1, self.lat2, self._k0) if k is _k1_ else (\n            (self.lat1,            self._k0) if k is _k0_ else\n            (self.lat1,))\n        t = strs(t, prec=prec)\n        if k:\n            t  = t[:-1] + (Fmt.EQUAL(k, t[-1]),)\n        if self.datum != _WGS84:\n            t += Fmt.EQUAL(datum=self.datum),\n        if self.name:\n            t += Fmt.EQUAL(name=repr(self.name)),\n        return t if sep is None else sep.join(t)\n\n    def _txif(self, ta):  # in .Ellipsoid.auxAuthalic\n        '''(INTERNAL) Function M{tan-xi from tan-phi}.\n        '''\n        E   =  self.ellipsoid\n        ca2 = _1_x21(ta)\n        sa  =  sqrt(ca2) * fabs(ta)  # enforce odd parity\n        sa1 = _1_0 + sa\n\n        es1    =  sa  * E.e2\n        es1m1  =  sa1 * (_1_0 - es1)\n        es1p1  =  sa1 / (_1_0 + es1)\n        es2m1  = _1_0 -    sa * es1\n        es2m1a =  es2m1 * E.e21  # e2m\n        s  = ca2 / (es1p1 * es2m1a) + _atanheE(ca2 / es1m1, E)\n        s *=        es1m1 / es2m1a  + _atanheE(      es1p1, E)\n        t  = _Fsum1f_( sa / es2m1,    _atanheE(         sa, E)).fover(sqrt(s))\n        return neg(t) if ta < 0 else t\n\n\nclass AlbersEqualArea(_AlbersBase):\n    '''An Albers equal-area (authalic) projection with a single standard parallel.\n\n       @see: L{AlbersEqualArea2} and L{AlbersEqualArea4}.\n    '''\n    _k = _k0_\n\n    def __init__(self, lat, k0=1, datum=_WGS84, **name):\n        '''New L{AlbersEqualArea} projection.\n\n           @arg lat: Standard parallel (C{degrees}).\n           @kwarg k0: Azimuthal scale on the standard parallel (C{scalar}).\n           @kwarg datum: Optional datum or ellipsoid (L{Datum}, L{Ellipsoid},\n                         L{Ellipsoid2} or L{a_f2Tuple}).\n           @kwarg name: Optional C{B{name}=NN} for the projection (C{str}).\n\n           @raise AlbersError: Invalid B{C{lat}}, B{C{k0}} or no convergence.\n        '''\n        self._lat1 = self._lat2 = lat = _Lat(lat1=lat)\n        args = tuple(sincos2d(lat)) * 2 + (_Ks(k0=k0), datum)\n        _AlbersBase.__init__(self, *args, **name)\n\n\nclass AlbersEqualArea2(_AlbersBase):\n    '''An Albers equal-area (authalic) projection with two standard parallels.\n\n       @see: L{AlbersEqualArea} and L{AlbersEqualArea4}.\n    '''\n    _k = _k1_\n\n    def __init__(self, lat1, lat2, k1=1, datum=_WGS84, **name):\n        '''New L{AlbersEqualArea2} projection.\n\n           @arg lat1: First standard parallel (C{degrees}).\n           @arg lat2: Second standard parallel (C{degrees}).\n           @kwarg k1: Azimuthal scale on the standard parallels (C{scalar}).\n           @kwarg datum: Optional datum or ellipsoid (L{Datum}, L{Ellipsoid},\n                         L{Ellipsoid2} or L{a_f2Tuple}).\n           @kwarg name: Optional C{B{name}=NN} for the projection (C{str}).\n\n           @raise AlbersError: Invalid B{C{lat1}}m B{C{lat2}}, B{C{k1}}\n                               or no convergence.\n        '''\n        self._lat1, self._lat2 = lats = _Lat(lat1=lat1), _Lat(lat2=lat2)\n        args = tuple(sincos2d_(*lats)) + (_Ks(k1=k1), datum)\n        _AlbersBase.__init__(self, *args, **name)\n\n\nclass AlbersEqualArea4(_AlbersBase):\n    '''An Albers equal-area (authalic) projection specified by the C{sin}\n       and C{cos} of both standard parallels.\n\n       @see: L{AlbersEqualArea} and L{AlbersEqualArea2}.\n    '''\n    _k = _k1_\n\n    def __init__(self, slat1, clat1, slat2, clat2, k1=1, datum=_WGS84, **name):\n        '''New L{AlbersEqualArea4} projection.\n\n           @arg slat1: Sine of first standard parallel (C{scalar}).\n           @arg clat1: Cosine of first standard parallel (non-negative C{scalar}).\n           @arg slat2: Sine of second standard parallel (C{scalar}).\n           @arg clat2: Cosine of second standard parallel (non-negative C{scalar}).\n           @kwarg k1: Azimuthal scale on the standard parallels (C{scalar}).\n           @kwarg datum: Optional datum or ellipsoid (L{Datum}, L{Ellipsoid},\n                         L{Ellipsoid2} or L{a_f2Tuple}).\n           @kwarg name: Optional C{B{name}=NN} for the projection (C{str}).\n\n           @raise AlbersError: Negative B{C{clat1}} or B{C{clat2}}, B{C{slat1}}\n                               and B{C{slat2}} have opposite signs (hemispheres),\n                               invalid B{C{k1}} or no convergence.\n        '''\n        def _Lat_s_c3(n, s, c):\n            r =  Float_(hypot(s, c), name=n, Error=AlbersError)\n            L = _Lat(  atan1d(s, c), name=n)\n            return L, (s / r), (c / r)\n\n        self._lat1, sa1, ca1 = _Lat_s_c3(_lat1_, slat1, clat1)\n        self._lat2, sa2, ca2 = _Lat_s_c3(_lat2_, slat2, clat2)\n        _AlbersBase.__init__(self, sa1, ca1, sa2, ca2, _Ks(k1=k1), datum, **name)\n\n\nclass AlbersEqualAreaCylindrical(_AlbersBase):\n    '''An L{AlbersEqualArea} projection at C{lat=0} and C{k0=1} degenerating\n       to the cylindrical-equal-area projection.\n    '''\n    _lat1 = _lat2 = _Lat(lat1=_0_0)\n\n    def __init__(self, lat=_0_0, datum=_WGS84, **name):\n        '''New L{AlbersEqualAreaCylindrical} projection.\n\n           @kwarg lat: Standard parallel (C{0 degrees} I{fixed}).\n           @kwarg datum: Optional datum or ellipsoid (L{Datum}, L{Ellipsoid},\n                         L{Ellipsoid2} or L{a_f2Tuple}).\n           @kwarg name: Optional C{B{name}=NN} for the projection (C{str}).\n        '''\n        _xlat(lat, _0_0, AlbersEqualAreaCylindrical)\n        _AlbersBase.__init__(self, _0_0, _1_0, _0_0, _1_0, 1, datum, **name)\n\n\nclass AlbersEqualAreaNorth(_AlbersBase):\n    '''An azimuthal L{AlbersEqualArea} projection at C{lat=90} and C{k0=1}\n       degenerating to the L{azimuthal} L{LambertEqualArea} projection.\n    '''\n    _lat1 = _lat2 = _Lat(lat1=_90_0)\n\n    def __init__(self, lat=_90_0, datum=_WGS84, **name):\n        '''New L{AlbersEqualAreaNorth} projection.\n\n           @kwarg lat: Standard parallel (C{90 degrees} I{fixed}).\n           @kwarg datum: Optional datum or ellipsoid (L{Datum}, L{Ellipsoid},\n                         L{Ellipsoid2} or L{a_f2Tuple}).\n           @kwarg name: Optional C{B{name}=NN} for the projection (C{str}).\n        '''\n        _xlat(lat, _90_0, AlbersEqualAreaNorth)\n        _AlbersBase.__init__(self, _1_0, _0_0, _1_0, _0_0, 1, datum, **name)\n\n\nclass AlbersEqualAreaSouth(_AlbersBase):\n    '''An azimuthal L{AlbersEqualArea} projection at C{lat=-90} and C{k0=1}\n       degenerating to the L{azimuthal} L{LambertEqualArea} projection.\n    '''\n    _lat1 = _lat2 = _Lat(lat1=_N_90_0)\n\n    def __init__(self, lat=_N_90_0, datum=_WGS84, **name):\n        '''New L{AlbersEqualAreaSouth} projection.\n\n           @kwarg lat: Standard parallel (C{-90 degrees} I{fixed}).\n           @kwarg datum: Optional datum or ellipsoid (L{Datum}, L{Ellipsoid},\n                         L{Ellipsoid2} or L{a_f2Tuple}).\n           @kwarg name: Optional C{B{name}=NN} for the projection (C{str}).\n        '''\n        _xlat(lat, _N_90_0, AlbersEqualAreaSouth)\n        _AlbersBase.__init__(self, _N_1_0, _0_0, _N_1_0, _0_0, 1, datum, **name)\n\n\nclass Albers7Tuple(_NamedTuple):\n    '''7-Tuple C{(x, y, lat, lon, gamma, scale, datum)}, in C{meter},\n       C{meter}, C{degrees90}, C{degrees180}, C{degrees360}, C{scalar} and\n       C{Datum} where C{(x, y)} is the projected, C{(lat, lon)} the geodetic\n       location, C{gamma} the meridian convergence at point, the bearing of\n       the y-axis measured clockwise from true North and C{scale} is the\n       azimuthal scale of the projection at point.  The radial scale is\n       the reciprocal C{1 / scale}.\n    '''\n    _Names_ = (_x_,   _y_,   _lat_, _lon_, _gamma_,  _scale_, _datum_)\n    _Units_ = ( Meter, Meter, Lat,   Lon,   Bearing, _Pass,   _Pass)\n\n\ndef _atanh1(x):\n    '''(INTERNAL) Function M{atanh(sqrt(x)) / sqrt(x) - 1}.\n    '''\n    s = fabs(x)\n    if 0 < s < _0_5:  # for typical ...\n        # x < E.e^2 == 2 * E.f use ...\n        # x / 3 + x^2 / 5 + x^3 / 7 + ...\n        y, k = x, 3\n        _S2  = Fsum(y / k).fsum2f_\n        for _ in range(_TERMS):  # 9 terms\n            y *= x  # x**n\n            k += 2  # 2*n + 1\n            s, d = _S2(y / k)\n            if not d:\n                break\n    elif s:\n        s =  sqrt(s)\n        s = (atanh(s) if x > 0 else atan1(s)) / s - _1_0\n    return s\n\n\ndef _atanheE(x, E):  # see Ellipsoid._es_atanh, .AuxLat._atanhee\n    '''(INTERNAL) Function M{atanhee(x)}, defined as ...\n       atanh(      E.e   * x) /       E.e   if f > 0  # oblate\n       atan (sqrt(-E.e2) * x) / sqrt(-E.e2) if f < 0  # prolate\n       x                                    if f = 0.\n    '''\n    e = E.e  # == sqrt(E.e2abs)\n    if e and x:\n        if E.f > 0:  # .isOblate\n            x = atanh(x * e) / e\n        elif E.f < 0:  # .isProlate\n            x = atan1(x * e) / e\n    return x\n\n\ndef _DatanheE(x, y, E):  # see .rhumb.ekx._DeatanhE\n    '''(INTERNAL) Function M{Datanhee(x, y)}, defined as\n       M{atanhee((x - y) / (1 - E.e^2 * x * y)) / (x - y)}.\n    '''\n    e = _1_0 - E.e2 * x * y\n    if e:\n        d = x - y\n        e = (_atanheE(d / e, E) / d) if d else (_1_0 / e)\n    return e\n\n\ndef _D2atanheE(x, y, E):\n    '''(INTERNAL) Function M{D2atanhee(x, y)}, defined as\n       M{(Datanhee(1, y) - Datanhee(1, x)) / (y - x)}.\n    '''\n    s, e2 = _0_0, E.e2\n    if e2:\n        if ((fabs(x) + fabs(y)) * e2) < _0_5:\n            e = z = _1_0\n            k = 1\n            T   = Fsum()  # Taylor expansion\n            _T  = T.Fsumf_\n            _C  = Fsum().Fsum_\n            _S2 = Fsum().fsum2_\n            for _ in range(_TERMS):  # 15 terms\n                T *= y; P = _T(z); z *= x  # noqa: E702 ;\n                T *= y; Q = _T(z); z *= x  # noqa: E702 ;\n                e *= e2\n                k += 2\n                s, d = _S2(_C(P, Q) * e / k)\n                if not d:\n                    break\n        else:  # PYCHOK no cover\n            s = _1_0 - x\n            if s:\n                s = (_DatanheE(_1_0, y, E) - _DatanheE(x, y, E)) / s\n    return s\n\n\ndef _Dsn(x, y, sx, sy):\n    '''(INTERNAL) Divided differences, defined as M{Df(x, y) = (f(x) - f(y)) / (x - y)}\n       with M{sn(x) = x / sqrt(1 + x^2)}: M{Dsn(x, y) = (x + y) / ((sn(x) + sn(y)) *\n       (1 + x^2) * (1 + y^2))}.\n\n       @see: U{W. M. Kahan and R. J. Fateman, \"Sympbolic Computation of Divided\n             Differences\"<https://People.EECS.Berkeley.edu/~fateman/papers/divdiff.pdf>},\n             U{ACM SIGSAM Bulletin 33(2), 7-28 (1999)<https://DOI.org/10.1145/334714.334716>}\n             and U{AlbersEqualArea.hpp\n             <https://GeographicLib.SourceForge.io/C++/doc/AlbersEqualArea_8hpp_source.html>}.\n    '''\n    # sx = x / hypot1(x)\n    d, t = _1_0, (x * y)\n    if t > 0:\n        s = sx + sy\n        if s:\n            t = sx * sy / t\n            d = t**2 * (x + y) / s\n    elif x != y:\n        d = (sx - sy) / (x - y)\n    return d\n\n\ndef _tol(tol, x):\n    '''(INTERNAL) Converge tolerance.\n    '''\n    return tol * max(_1_0, fabs(x))\n\n\ndef _1_x21(x):\n    '''(INTERNAL) Return M{1 / (x**2 + 1)}.\n    '''\n    return _1_0 / (x**2 + _1_0)\n\n\ndef _xlat(lat, f, where):\n    '''(INTERNAL) check fixed C{lat}.\n    '''\n    if lat is not f and _Lat(lat=lat) != f:\n        t = unstr(where, lat=lat)\n        raise AlbersError(t, txt_not_=f)\n\n\n__all__ += _ALL_DOCS(_AlbersBase)\n\n# **) MIT License\n#\n# Copyright (C) 2016-2026 -- mrJean1 at Gmail -- All Rights Reserved.\n#\n# Permission is hereby granted, free of charge, to any person obtaining a\n# copy of this software and associated documentation files (the \"Software\"),\n# to deal in the Software without restriction, including without limitation\n# the rights to use, copy, modify, merge, publish, distribute, sublicense,\n# and/or sell copies of the Software, and to permit persons to whom the\n# Software is furnished to do so, subject to the following conditions:\n#\n# The above copyright notice and this permission notice shall be included\n# in all copies or substantial portions of the Software.\n#\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL\n# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR\n# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\n# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n# OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "pygeodesy/angles.py",
    "content": "\n# -*- coding: utf-8 -*-\n\nu'''Classes L{Ang}, L{Deg}, L{Rad} and L{Lambertian} accurately representing an angle\nas a 3-tuple C{(sine, cosine, turns)}, with C{turns} the number of full turns.\n\nTranscoded to pure Python from I{Karney}'s GeographicLib 2.7 C++ class U{AngleT\n<https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1AngleT.html>}.\n\nCopyright (C) U{Charles Karney <mailto:Karney@Alum.MIT.edu>} (2024-2025) and licensed\nunder the MIT/X11 License.  For more information, see the U{GeographicLib 2.7\n<https://GeographicLib.SourceForge.io/>} documentation.\n'''\n# make sure int/int division yields float quotient, see .basics\nfrom __future__ import division as _; del _  # noqa: E702 ;\n\nfrom pygeodesy.basics import _copysign, map1, signBit, _signOf\nfrom pygeodesy.constants import EPS, EPS0, NAN, PI2, _0_0, _N_0_0, \\\n                               _0_25, _1_0, _N_1_0, _4_0, _360_0, \\\n                               _copysign_0_0, _copysign_1_0, \\\n                               _flipsign, float_, _isfinite, \\\n                               _over, _pos_self, remainder\nfrom pygeodesy.errors import _xkwds, _xkwds_get, _xkwds_pop2\nfrom pygeodesy.fmath import hypot,  _ALL_LAZY, _MODS\n# from pygeodesy.interns import _COMMASPACE_  # from .streprs\n# from pygeodesy.lazily import _ALL_LAZY, _ALL_MODS as _MODS  # from .fmath\nfrom pygeodesy.named import _Named, _NamedTuple, _Pass\nfrom pygeodesy.props import Property_RO, property_doc_, property_RO, \\\n                           _allPropertiesOf_n, _update_all\nfrom pygeodesy.streprs import Fmt, fstr, unstr,  _COMMASPACE_\nfrom pygeodesy.units import Degrees, _isDegrees, _isRadians, Radians\nfrom pygeodesy.utily import atan2, atan2d, sincos2, sincos2d, SinCos2\n\nfrom math import asinh, ceil as _ceil, fabs, floor as _floor, \\\n                 isinf, isnan, sinh\n\n__all__ = _ALL_LAZY.angles\n__version__ = '25.12.02'\n\n_EPS03 = EPS / (1 << 20)\n# _HD = _180_0\n# _QD =  _90_0\n# _TD = _360_0\n# _DM = _SM = _60_0\n# _DS = _3600_0\n_ZRND = _1_0 / 1024\n\n_CARDINAL2 = {-2: (_N_0_0, _N_1_0),\n              -1: (_N_1_0,   _0_0),\n               1: (  _1_0,   _0_0),\n               2: (  _0_0, _N_1_0)}.get\n\n\ndef _fint(f):\n    # float of C{int(f)} preserving signed C{0}.\n    i = int(f)\n    return float_(i) if i else _copysign_0_0(f)\n\n\ndef _ncardinal(s, c, n):\n    if n:\n        n *= _4_0\n    i = (1 if (-c) < fabs(s) else 2) if signBit(c) else \\\n        (1 if   c  < fabs(s) else 0)\n    if i:\n        n += _copysign(i, s)\n    return n\n\n\ndef _normalize2(s, c):\n    h = hypot(s, c)\n    if _isfinite(h):\n        sc = ((s / h), (c / h)) if h else (\n             # If y is +/-0 and x = -0, +/-pi is returned,\n             # or y is +/-0 and x = +0, +/-0 is returned,\n             # so, retain the sign of s = +/-0\n             _orthogonal2(False, s, c))\n    elif isnan(h) or (isinf(s) and isinf(c)):\n        sc =  NAN, NAN\n    else:\n        sc = _orthogonal2(isinf(s), s, c)\n    return sc\n\n\ndef _other(x, unit=Radians, **unused):\n    # get C{x} as C{Ang} from C{Degrees}, C{Radians} or C{Lambertian}\n    return Ang.fromLambertian(x) if                       unit is Lambertian else (\n           Ang.fromRadians(x)    if _isRadians(x, iscalar=unit is Radians)   else (\n           Ang.fromDegrees(x)    if _isDegrees(x, iscalar=unit is Degrees)   else\n          _raiseError(unit, x)))  # PYCHOK indent\n\n\ndef _orthogonal2(pred, s, c):\n    return (_copysign_1_0(s), _copysign_0_0(c)) if pred else \\\n           (_copysign_0_0(s), _copysign_1_0(c))\n\n\ndef _raiseError(unit, arg, **kwds):\n    raise TypeError(unstr(unit, arg, **kwds))\n\n\ndef _rnd(x):\n    w = _ZRND - fabs(x)\n    if w > 0:\n        x = _copysign(_ZRND - w, x)\n    return x\n\n\ndef _scnu4(s, c, n, unit=Radians, **unused):  # unit=Ang._unit\n    s, c, n = map1(float, s, c, n)\n    return _normalize2(s, c) + (n, unit)\n\n\nclass Ang(_Named):\n    '''An accurate representation of angles, as 3-tuple C{(s, c, n)}.\n\n       This class represents an angle via its sine C{s}, cosine C{c} and\n       the number of full turns C{n}.  The angle is then C{atan2(s, c) +\n       n * PI2}.  This representation offers several advantages:\n\n         - cardinal directions (multiples of 90 degrees) are exactly represented\n           (a benefit shared by representing angles as degrees)\n\n         - angles very close to any cardinal direction are accurately represented\n\n         - there's no loss of precision with large angles (outside the \"normal\"\n           range [-180, +180])\n\n         - various operations, such as adding a multiple of 90 degrees to an\n           angle are performed exactly.\n\n       @note: B{C{n}} is a C{float}, this allows it to be NAN, INF or NINF.\n    '''\n    _unit = Radians  # see _scnu4\n\n    def __init__(self, s_ang=0, c=None, n=0, normal=True, **unit_name):\n        '''New L{Ang}.\n\n           @kwarg s_ang: A previous L{Ang}, C{Degrees}, C{Radians} if C{B{c}\n                         is None}, otherwise the sine component (C{float}).\n           @kwarg c: The cosine component (C{float}) iff C{not None}.\n           @kwarg n: The number of L{PI2} turns (C{float}).\n           @kwarg normal: If C{True}, B{C{s}} and B{C{c}} are normalized, i.e.\n                          on the unit circle (C{boo}).\n           @kwarg unit_name: Type C{B{unit}=}L{Radians} or L{Degrees} of scalar\n                       scalar values (L{Degrees} or L{Radians}).\n\n           @note: Either B{C{s}} or B{C{c}} can be INF or NINF, but not both.\n\n           @note: By default, the point B{C{(s, c)}} is scaled to lie on the\n                  unit circle.\n        '''\n        s, c, n, u = s_ang.scnu4 if isAng(s_ang) else (\n                    _other(s_ang, **unit_name).scnu4 if c is None else\n                    _scnu4(s_ang, c, n, **unit_name))\n        if unit_name:\n            u, name = _xkwds_pop2(unit_name, unit=u)\n            if name:\n                self.name = name\n        self._n = _fint(n)\n        self._s, self._c = (s, c) if normal else _normalize2(s, c)\n        self.unit = u\n\n    def __abs__(self):\n        s, _ = self._float2()\n        return self._float1(fabs(s))\n\n    def __add__(self, other):\n        return self.copy().__iadd__(other)\n\n    def __bool__(self):  # PYCHOK Python 3+\n        s, c, n = self.scn3\n        return bool(s or c or n)\n\n#   def __call__(self, *args, **kwds):  # PYCHOK no cover\n#       return self._NotImplemented(*args, **kwds)\n\n    def __ceil__(self):  # PYCHOK not special in Python 2-\n        s, _ = self._float2()\n        return self._float1(_ceil(s))\n\n    def __cmp__(self, other):  # PYCHOK no cover\n        s, r = self._float2(other)\n        return _signOf(s, r)  # -1, 0, +1\n\n    def __divmod__(self, other):\n        s, r = self._float2(other)\n        q, r = divmod(s, r)\n        return q, self._float1(r)\n\n    def __eq__(self, other):\n        s, r = self._float2(other)\n        return fabs(s - r) < EPS0\n\n    def __float__(self):\n        u = self.unit\n        return self.radians    if u is Radians else (\n               self.degrees    if u is Degrees else (\n               self.lambertian if u is Lambertian else\n              _raiseError(float, u)))  # PYCHOK indent\n\n    def __floor__(self):  # PYCHOK not special in Python 2-\n        s, _ = self._float2()\n        return self._float1(_floor(s))\n\n    def __floordiv__(self, other):\n        return self.copy().__ifloordiv__(other)\n\n#   def __format__(self, *other):  # PYCHOK no cover\n#       return self._NotImplemented(self, *other)\n\n    def __ge__(self, other):\n        s, r = self._float2(other)\n        return s >= r\n\n    def __gt__(self, other):\n        s, r = self._float2(other)\n        return s > r\n\n    def __hash__(self):  # PYCHOK no cover\n        # @see: U{Notes for type implementors<https://docs.Python.org/\n        #       3/library/numbers.html#numbers.Rational>}\n        return hash(self.scn3)  # tuple.__hash__()\n\n    def __iadd__(self, other):\n        p = self._other(other)\n        q = p.ncardinal + self.ncardinal\n        s, c, n = self.scn3\n        s, c = _normalize2(s * p.c + c * p.s,\n                           c * p.c - s * p.s)\n        q -= _ncardinal(s, c, n)\n        n  = _fint(q * _0_25) + p.n\n        if n:\n            self._n += n\n            self._s  = s\n            self._c  = c\n            _update_all(self)\n        return self._update(s, c)\n\n    def __ifloordiv__(self, other):\n        s, r = self._float2(other)\n        return self._ifloat(s // r)\n\n    def __imatmul__(self, other):  # PYCHOK no cover\n        return self._notImplemented()\n\n    def __imod__(self, other):\n        s, r = self._float2(other)\n        return self._ifloat(s % r)\n\n    def __imul__(self, other):\n        s, r = self._float2(other)\n        return self._ifloat(s * r)\n\n    def __int__(self):\n        s, _ = self._float2(0)\n        return int(s)\n\n    def __invert__(self):  # PYCHOK no cover\n        # Luciano Ramalho, \"Fluent Python\", O'Reilly, 2nd Ed, 2022 p. 567\n        return self._notImplemented()\n\n    def __ipow__(self, other, *mod):  # PYCHOK 2 vs 3 args\n        s, r = self._float2(other)\n        return self._ifloat(pow(s, r, *mod))\n\n    def __isub__(self, other):\n        return self.__iadd__(-other)\n\n#   def __iter__(self):\n#       '''\n#       return self._NotImplemented()\n\n    def __itruediv__(self, other):\n        s, r = self._float2(other)\n        return self._ifloat(s / r)\n\n    def __le__(self, other):\n        s, r = self._float2(other)\n        return s <= r\n\n    def __lt__(self, other):\n        s, r = self._float2(other)\n        return s < r\n\n    def __matmul__(self, other):  # PYCHOK no cover\n        return self._notImplemented(other)\n\n    def __mod__(self, other):\n        s, r = self._float2(other)\n        return self._float1(s % r)\n\n    def __mul__(self, other):\n        return self.copy().__imul__(other)\n\n    def __ne__(self, other):\n        return not self.__eq__(other)\n\n    def __neg__(self):\n        s, c, n =  self.scn3\n        s,    n = _flipsign(s), _flipsign(n)\n        return self._Ang(s, c, n)  # normal=True\n\n    def __pos__(self):\n        return self if _pos_self else self.copy()\n\n    def __pow__(self, other, *mod):  # PYCHOK 2 vs 3 args\n        return self.copy().__ipow__(other, *mod)\n\n    def __radd__(self, other):\n        return self._other(other) + self\n\n    def __rdivmod__(self, other):\n        return divmod(self._other(other), self)\n\n    def __repr__(self):\n        return self.toRepr()\n\n    def __rfloordiv__(self, other):\n        return self._other(other) // self\n\n    def __rmatmul__(self, other):  # PYCHOK no cover\n        return self._notImplemented(self, other)\n\n    def __rmod__(self, other):\n        return self._other(other) % self\n\n    def __rmul__(self, other):\n        return self._other(other) * self\n\n    def __round__(self, *ndigits):  # PYCHOK Python 3+\n        return self.round(*ndigits)\n\n    def __rpow__(self, other, *mod):\n        return pow(self._other(other), self, *mod)\n\n    def __rsub__(self, other):\n        return self._other(other) - self\n\n    def __rtruediv__(self, other):\n        return self._other(other) / self\n\n    def __str__(self):\n        return self.toStr(0)  # ignore turns\n\n    def __sub__(self, other):\n        return self.copy().__isub__(other)\n\n    def __truediv__(self, other):\n        return self.copy().__itruediv__(other)\n\n    __trunc__ = __int__\n\n    if _MODS.sys_version_info2 < (3, 0):  # PYCHOK no cover\n        # <https://docs.Python.org/2/library/operator.html#mapping-operators-to-functions>\n        __div__     = __truediv__\n        __idiv__    = __itruediv__\n        __long__    = __int__\n        __nonzero__ = __bool__\n        __rdiv__    = __rtruediv__\n\n    def _Ang(self, s, *cn, **normal_unit_name):\n        # return an C{Ang} like C{self}\n        return Ang(s, *cn, **self._kwds(normal_unit_name))\n\n    def base(self, *center):\n        '''Return this C{Angle}'s base, optionally centered.\n        '''\n        r = self.copy()\n        if center:\n            c  = self._other(center[0])\n            b  = self - c\n            b  = b.base()\n            b += c\n            r.n0 = b.n0\n        else:\n            r.n = 0\n        return r\n\n    @property_RO\n    def c(self):\n        '''Get the cosine of this C{Angle} (C{float}).\n        '''\n        return self._c\n\n    @staticmethod\n    def cardinal(q=0, **unit_name):\n        '''A cardinal direction.\n\n           @kwarg q: The number of I{quarter} turns (C{scalar}).\n\n           @return: An C{Ang} equivalent to B{C{q}} quarter turns.\n\n           @note: B{C{q}} is truncated to an integer and signed\n                  C{0} is distinguished.  C{Ang.NAN} is returned\n                  if B{C{q}} is not finite.\n        '''\n        if _isfinite(q):\n            if q:\n                q = _fint(q)\n                i =  int(remainder(q, _4_0))  # i is in [-2, 2]\n                n = _fint((q - i) * _0_25)\n                s, c = _CARDINAL2(i, ((_0_0 if q else q), _1_0))\n                t = s is not q\n            else:\n                s, c, n, t = _copysign_0_0(q), 1, 0, True\n            r = Ang(s, c, n, normal=t, **unit_name)\n        else:\n            r = Ang.NAN(**unit_name)\n        return r\n\n    def copy(self, **unit_name):  # PYCHOK signature\n        '''Return a copy of this C{Ang}.\n        '''\n        return self._Ang(self, **self._kwds(unit_name))\n\n    @Property_RO\n    def degrees(self):\n        '''Get this C{Ang} in C{degrees}.\n        '''\n        d = self.degrees0\n        if self.n:\n            d += self.n * _360_0\n        return d  # XXX Degrees(d, self.name)\n\n    @Property_RO\n    def degrees0(self):\n        '''Get this C{Ang} in C{degrees} ignoring the turns.\n        '''\n        return atan2d(*self.sc2)  # XXX Degrees(d, self.name)\n\n    divmod = __divmod__\n\n    @staticmethod\n    def EPS0(**unit_name):\n        '''Get a tiny C{Ang}.\n\n           @note: This allows angles extremely close to the cardinal\n                  directions to be generated.  The C{.round} method\n                  will flush this angle to C{0}.\n        '''\n        return Ang(_EPS03, 1, **unit_name)\n\n    @staticmethod\n    def _flip(bet, omg, alp=None):\n        '''(INTERNAL) Reflect C{bet}, C{omg} and C{alp} inplace.\n        '''  # Ellipsoid3.Flip\n        bet.reflect(flipc=True)\n        omg.reflect(flips=True)\n        if alp:\n            alp.reflect(flips=True, flipc=True)\n\n    def flipsign(self, mul=-1, **name):\n        '''Copy this C{Ang} with sign flipped.\n        '''\n        r = (-self) if signBit(mul) else self\n        return self._Ang(r, **name) if name else r\n\n    def _float1(self, f, **name):\n        # return C{f} as C{Ang} in this C{unit}\n        return _Ang_from[self.unit](f, **name)\n\n    def _float2(self, other=None):\n        # get self and C{other} as floats\n        r = other if other is None or isinstance(other, int) else \\\n            float(_Ang_from[self.unit](other))\n        return float(self), r\n\n    def _ifloat(self, f):  # PYCHOK expected\n        # set self to C{f} degrees or radians\n        scn = self._float1(f).scn3\n        self._s, self._c, self._n = scn\n        return self._update()\n\n    @staticmethod\n    def fromDegrees(deg, **unit_name):\n        '''Get an C{Ang} from degrees.\n        '''\n        if isAng(deg):\n            s, c, n = deg.scn3\n            d       = deg.degrees0\n        elif _isDegrees(deg, iscalar=True):\n            s, c = sincos2d(deg)\n            d    = atan2d(s, c)\n            n    = round((deg - d) / _360_0)\n        else:\n            _raiseError(Ang.fromDegrees, deg, **unit_name)\n        a = Ang(s, c, n, **_xkwds(unit_name, unit=Degrees))\n        a.__dict__.update(degrees0=d)  # Property_RO\n        return a\n\n    @staticmethod\n    def fromLambertian(psi, **unit_name):\n        '''Get an C{Ang} from C{lamberterian} radians.\n        '''\n        s = psi.lambertian if isAng(psi) else sinh(psi)\n        return Ang(s, 1, normal=False, **_xkwds(unit_name, unit=Lambertian))\n\n    @staticmethod\n    def fromRadians(rad, **unit_name):\n        '''Get an C{Ang} from radians.\n        '''\n        if isAng(rad):\n            s, c, n = rad.scn3\n            r       = rad.radians0\n        elif _isRadians(rad, iscalar=True):\n            s, c = sincos2(rad)\n            r = atan2(s, c)\n            n = round((rad - r) / PI2)\n        else:\n            _raiseError(Ang.fromRadians, rad, **unit_name)\n        a = Ang(s, c, n, **_xkwds(unit_name, unit=Radians))\n        a.__dict__.update(radians0=r)  # Property_RO\n        return a\n\n    @staticmethod\n    def fromScalar(ang, **unit_name):\n        '''Get an C{Ang} from C{Degrees}, C{Radians} or another C{Ang}.\n        '''\n        if isAng(ang):\n            r = Ang(ang, **_xkwds(unit_name, unit=ang.unit))\n        else:\n            u = _xkwds_get(unit_name, unit=None)\n            if u is Lambertian:\n                r = Ang.fromLambertian(ang, **unit_name)\n            elif _isDegrees(ang, iscalar=u is Degrees):\n                r = Ang.fromDegrees(ang, **unit_name)\n            elif _isRadians(ang, iscalar=u is Radians):\n                r = Ang.fromRadians(ang, **unit_name)\n            else:\n                _raiseError(Ang.fromScalar, ang, **unit_name)\n        return r\n\n    def is_integer(self, *n):\n        '''Is this C{Ang}'s degrees C{integer}? (C{bool}).\n        '''\n        return self.toDegrees(*n).is_integer()\n\n    def isnear0(self, eps0=EPS0):  # aka zerop\n        '''Is this C{Ang} near C{0} within a tolerance?\n        '''\n        s, c, n = self.scn3\n        return bool(n == 0 and c > 0 and fabs(s) <= eps0)\n\n    def _kwds(self, kwds, **dflt):\n        return _xkwds(kwds, **_xkwds(dflt, unit=self.unit,\n                                           name=self.name))\n\n    @Property_RO\n    def lambertian(self):\n        '''Get this C{Ang}'s Lambertian, C{asinh(tan(radians))}.\n        '''\n        return asinh(self.t)  # XXX Lambertian(self.t)\n\n    def mod(self, mul=_1_0, **unit_name):\n        '''Return the I{reduced latitude} C{atan(B{mul} *\n           tan(B{this}))} as an C{Ang}.\n\n           @arg mul: Factor (C{scalar}, positive).\n\n           @note: The quadrant of the result tracks that of\n                  this C{Ang} through multiples turns.\n        '''\n        kwds = self._kwds(unit_name)\n        if signBit(mul):\n            r = self._Ang(Ang.NAN(), **kwds)\n        else:\n            s, c, n = self.scn3\n            if mul > 1:\n                c = c / mul  # /= chokes PyChecker\n            else:  # mul <= 1\n                s *= mul\n            r = self._Ang(s, c, n, normal=False, **kwds)\n        return r\n\n    @staticmethod\n    def N(**unit_name):\n        '''Get North C{Ang}.\n        '''\n        return Ang(0, 1, **unit_name)\n\n    @property\n    def n(self):\n        '''Return the number of turns (C{float}) or C{0.0}.\n        '''\n        return self._n or _0_0\n\n    @n.setter  # PYCHOK setter!\n    def n(self, n):\n        self._n_0(_fint(n))\n\n    def _n_0(self, n):\n        '''(INTERNAL) Set C{n} or C{n0}.\n        '''\n        if self._n != n:\n            self._n, n = n, self._n\n            self._update()\n        return n\n\n    @property\n    def n0(self):\n        '''Return the number of turns, treating C{-180} as C{180 - 1 turn} (C{float}).\n        '''\n        return (self.n - self._n01) or _0_0\n\n    @n0.setter  # PYCHOK setter!\n    def n0(self, n):\n        self._n_0(_fint(n) + self._n01)\n\n    @Property_RO\n    def _n01(self):\n        s, c = self.sc2\n        return int(c < 0 and s == 0 and signBit(s))\n\n    @staticmethod\n    def NAN(**unit_name):\n        '''Get an invalid C{Ang}.\n        '''\n        return Ang(NAN, NAN, **unit_name)\n\n    @Property_RO\n    def ncardinal(self):\n        '''Get the nearest cardinal direction (C{float_int}).\n\n           @note: This is the reverse of C{cardinal}.\n        '''\n        return _ncardinal(*self.scn3)\n\n    def nearest(self, ind=0, **name):\n        '''Return the closest cardinal direction (C{Ang}).\n\n           @arg ind: An indicator, if C{B{ind}=0} the closest cardinal\n                     direction, otherwise, if B{C{ind}} is even, the\n                     closest even (N/S) cardinal direction or if B{C{ind}}\n                     is odd, the closest odd (E/W) cardinal direction.\n        '''\n        s, c, n = self.scn3\n        p = (ind == 0 and fabs(s) > fabs(c)) or (ind & 1)\n        s, c = _orthogonal2(p, s, c)\n        return self._Ang(s, c, n, **self._kwds(name))\n\n    @staticmethod\n    def _norm(bet, omg, alp=None, alt=False):\n        '''(INTERNAL) Put C{bet}, C{ong} and C{alp} in range.\n        '''  # Ellipsoid3.AngNorm\n        flip = signBit(omg.s if alt else bet.c)\n        if flip:\n            Ang._flip(bet, omg, alp)\n        return flip\n\n    def normalize(self, *n):\n        '''Re-normalize this C{Ang}, optionally replacing turns.\n        '''\n        sc = _normalize2(*self.sc2)\n        if n:\n            self.n, n = n[0], self.n\n            if self.n != n:  # updated\n                self._s, self._c = sc\n                return self\n        return self._update(*sc)\n\n    def _other(self, other):\n        # get C{other} as C{Ang} from C{unit}\n        return other if isAng(other) else _other(other, self.unit)\n\n    pow = __pow__\n\n    @Property_RO\n    def _quadrant(self):\n        s, c = map(int, map(signBit, self.sc2))\n        return s + s + (c ^ s)\n\n    @property_doc_(\"this C{Ang}'s quadrant (C{int} 0..3)\")\n    def quadrant(self):\n        return self._quadrant\n\n    @quadrant.setter  # PYCHOK setter!\n    def quadrant(self, quadrant):\n        s, c = map(fabs, self.sc2)\n        q = int(quadrant)\n        if (q & 2):\n            s = -s  # _copysign(self.s, -1 if (q & 2) else 1)\n        if (((q >> 1) ^ q) & 1):\n            c = -c  # _copysign(self.c, -1 if (((q >> 1) ^ q) & 1) else 1)\n        self._update(s, c)\n\n    @Property_RO\n    def radians(self):\n        '''Get this C{Ang} in C{radians}.\n        '''\n        r = self.radians0\n        if self.n:\n            r += self.n * PI2\n        return r  # XXX Radians(r, self.name)\n\n    @Property_RO\n    def radians0(self):\n        '''Get this C{Ang} in C{radians} ignoring the turns.\n        '''\n        return atan2(*self.sc2)  # XXX Radians(r, self.name)\n\n    def reflect(self, flips=False, flipc=False, swapsc=False):\n        '''Reflect this C{Ang} in various ways.\n\n           @kwarg flips: Flip the sign of C{s}.\n           @kwarg flipc: Flip the sign of C{c}.\n           @kwarg swapsc: Swap C{s} and C{c}.\n\n           @note: The operations are carried out in the order\n                  of the arguments.\n        '''\n        s, c = self.sc2\n        if flips:\n            s = -s\n        if flipc:\n            c = -c\n        if swapsc:\n            s, c = c, s\n        return self._update(s, c)\n\n    def round(self, *ndigits, **name):\n        '''Return this C{Ang}, optionally rounded to C{ndigits} (C{Ang}).\n        '''\n        s, c, n = self.scn3\n        if ndigits:\n            s = round(s, *ndigits)\n            c = round(c, *ndigits)\n        else:\n            s, c = map1(_rnd, s, c)\n        return self._Ang(s, c, n, **self._kwds(name))\n\n    @property_RO\n    def s(self):\n        '''Get the sine of this C{Ang} (C{float}).\n        '''\n        return self._s\n\n    @property_RO\n    def sc2(self):\n        '''Get the 2-tuple C{(s, c)}.\n        '''\n        return self.s, self.c\n\n    @Property_RO\n    def scn3(self):\n        '''Get the 3-tuple C{(s, c, n)}.\n        '''\n        return self.s, self.c, self.n\n\n    @property_RO\n    def scnu4(self):\n        '''Get the 4-tuple C{(s, c, n, unit)}.\n        '''\n        return self.s, self.c, self.n, self.unit\n\n    def shift(self, q=0, **unit_name):\n        '''Shift this C{Ang} by C{q} I{quarter} turns (C{scalar}).\n        '''\n        kwds = self._kwds(unit_name)\n        if _isfinite(q):\n            s = self.copy(**kwds)\n            if q:\n                s -= Ang.cardinal(q)\n        else:\n            s = Ang.NAN(**kwds)\n        return s\n\n    def signOf(self, *n):\n        '''Determine this C{Ang}'s sign, optionally replacing the turns.\n\n           @return: The sign (C{int}, -1, 0 or +1).\n        '''\n        return _signOf(self.toDegrees(*n), 0)\n\n    @Property_RO\n    def t(self):\n        '''Get the tangent of this C{Ang} (C{float}).\n        '''\n        return _over(*self.sc2)\n\n    def toDegrees(self, *n):\n        '''Return this C{Ang} as C{Degrees}, optionally replacing the turns.\n        '''\n        if n:\n            d = self.degrees0\n            n = float(n[0])\n            if n:\n                d += n * _360_0\n        else:\n            d = self.degrees\n        return Degrees(d, self.name)\n\n    def toLambertian(self, **name):\n        '''Return this C{Ang} as L{Lambertian}.\n        '''\n        name = _xkwds(name, name=self.name)\n        return Lambertian(self.lambertian, **name)\n\n    def toRadians(self, *n):\n        '''Return this C{Ang} as C{Radians}, optionally replacing the turns.\n        '''\n        if n:\n            r = self.radians0\n            n = float(n[0])\n            if n:\n                r += n * PI2\n        else:\n            r = self.radians\n        return Radians(r, self.name)\n\n    def toRepr(self, *n, **prec_fmt):  # PYCHOK signature\n        '''Return this C{Ang} as C{\"<name>(<value>)\"} with/out turns (C{str}).\n        '''\n        return self.toUnit(*n).toRepr(**prec_fmt)\n\n    def toStr(self, *n, **prec_fmt):  # PYCHOK signature\n        '''Return this C{Ang} as C{\"<value>\"} with/out turns (C{str}).\n        '''\n        return self.toUnit(*n).toStr(**prec_fmt)\n\n    def toTuple(self, **prec_fmt_sep):\n        '''Return string C{\"(s, c, n)\"} or tuple C{('s', 'c', 'n')} if C{sep is None}.\n        '''\n        return fstr(self.scn3, **prec_fmt_sep)\n\n    def toUnit(self, *n):\n        '''Return this C{Ang} as C{self.unit}s, optionally replacing the turns.\n        '''\n        u = self.unit\n        return self.toRadians(*n)  if u is Radians else (\n               self.toDegrees(*n)  if u is Degrees else (\n               self.toLambertian() if u is Lambertian else\n              _raiseError(self.toUnit, u)))  # PYCHOK indent\n\n    @property_doc_(' the scalar unit to L{Degrees} or L{Radians}')\n    def unit(self):\n        return self._unit\n\n    @unit.setter  # PYCHOK setter!\n    def unit(self, unit):\n        if unit not in _Ang_types:  # PYCHOK no cover\n            _raiseError(Ang.unit, unit)\n        if self._unit != unit:\n            self._unit = unit\n\n    def _update(self, *sc):\n        if sc:\n            if sc == self.sc2:\n                return self\n            self._s, self._c = sc\n        _update_all(self)\n        return self\n\n_allPropertiesOf_n(14, Ang)  # PYCHOK assert\n\n\nclass _Ang3Tuple(_NamedTuple):\n    '''(INTERNAL) Methods C{.toDegrees}, C{.toLambertian}, C{.toRadians} and C{.toUnit}.\n    '''\n    _Names_ = (Ang.__name__,) * 3  # needed for ...\n    _Units_ =  Ang, Ang, _Pass  # ...testNamedTuples\n\n    def toDegrees(self, *n, **fmt_prec_sep):\n        '''Change any C{Ang} to C{unit Degrees} or to C{Degrees.toStr} if any B{C{fmt_prec_sep}}.\n        '''\n        t = self.toUnit(Degrees, *n)\n        if fmt_prec_sep:  # see C{Degrees.toStr}\n            sep, fmt_prec = _xkwds_pop2(fmt_prec_sep, sep=_COMMASPACE_)\n            s = self.toStr(sep=None) if sep else self\n            t = (a.toStr(**fmt_prec) if isAng(a) else s for a, s in zip(t, s))\n            t = Fmt.PAREN(sep.join(t)) if sep else tuple(t)\n        return t\n\n    def toLambertian(self):\n        '''Change any C{Ang} to C{unit Lambertian}.\n        '''\n        return self.toUnit(Lambertian)\n\n    def toRadians(self, *n):\n        '''Change any C{Ang} to C{unit Radians}.\n        '''\n        return self.toUnit(Radians, *n)\n\n    def toUnit(self, unit, *n):\n        '''Change any C{Ang} to C{unit}, .\n        '''\n        for a in self:\n            if isAng(a):  # and a.unit is not unit:\n                a.unit = unit\n                if n:\n                    a.n = n[0]\n        return self\n\n\nclass Lambertian(Radians):\n    '''A C{Lambertian} in C{radians}.\n    '''\n    def __new__(cls, *args, **kwds):\n        return Radians.__new__(cls, *args, **_xkwds(kwds, name='psi'))\n\n\n_Ang_from = {Radians:    Ang.fromRadians,\n             Degrees:    Ang.fromDegrees,\n             Lambertian: Ang.fromLambertian}\n_Ang_types = tuple(_Ang_from.keys())  # PYCHOK used!\n\n\ndef Ang_(s, c=None, n=1, **unit_name):\n    '''(INTERNAL) New, non-normal C{Ang}.\n    '''\n    return Ang(s, c, n, **_xkwds(unit_name, normal=False))\n\n\ndef Deg(deg, **name):\n    '''Return an L{Ang} from C{deg} degrees or an other L{Ang}.\n    '''\n    return Ang(deg, unit=Degrees, **name)\n\n\ndef isAng(ang):\n    '''Is C{ang} an L{Ang} instance?\n    '''\n    return isinstance(ang, Ang)\n\n\ndef Rad(rad, **name):\n    '''Return an L{Ang} from C{rad} radians or an other L{Ang}.\n    '''\n    return Ang(rad, unit=Radians, **name)\n\n\ndef _SinCos2(ang, *unit):\n    '''Get C{sin} and C{cos} of an L{Ang}, any I{typed} C{ang}le\n       or C{unit} if C{ang}le is scalar.\n\n       @see: Function L{SinCos2<pygeodesy.utily.SinCos2>}.\n    '''\n    return ang.sc2 if isAng(ang) else SinCos2(ang, *unit)\n\n# **) MIT License\n#\n# Copyright (C) 2025-2026 -- mrJean1 at Gmail -- All Rights Reserved.\n#\n# Permission is hereby granted, free of charge, to any person obtaining a\n# copy of this software and associated documentation files (the \"Software\"),\n# to deal in the Software without restriction, including without limitation\n# the rights to use, copy, modify, merge, publish, distribute, sublicense,\n# and/or sell copies of the Software, and to permit persons to whom the\n# Software is furnished to do so, subject to the following conditions:\n#\n# The above copyright notice and this permission notice shall be included\n# in all copies or substantial portions of the Software.\n#\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL\n# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR\n# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\n# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n# OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "pygeodesy/auxilats/_CX_4.py",
    "content": "\n# -*- coding: utf-8 -*-\n\nu'''Coefficients for C{_AUXLATITUDE_ORDER} 4 from I{Karney}'s C++ class U{AuxLatitude\n<https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1AuxLatitude.html>}\ntranscoded to a Python C{_Rdict[auxout][auxin]} of C{_Rtuple}s.\n\nCopyright (C) Charles Karney (2022-2024) Karney@Alum.MIT.edu> and licensed under the\nMIT/X11 License.  For more information, see <https://GeographicLib.SourceForge.io>.\n'''\nfrom pygeodesy.auxilats.auxily import Aux\nfrom pygeodesy.auxilats._CX_Rs import _Rcoeffs, _Rdict, _Rtuple\n\n__all__ = ()\n__version__ = '25.04.09'\n\n_coeffs_4 = _Rcoeffs(4, {  # GEOGRAPHICLIB_AUXLATITUDE_ORDER == 4\n    Aux.PHI: _Rdict(38,\n       # C[phi,phi] skipped\n       _Rtuple(Aux.BETA, 6,  # C[phi,beta]; even coeffs only\n                  '0, 1, 0, 1/2, 1/3, 1/4'),\n       _Rtuple(Aux.THETA, 6,  # C[phi,theta]; even coeffs only\n                  '-2, 2, -4, 2, 8/3, 4'),\n       _Rtuple(Aux.MU, 6,  # C[phi,mu]; even coeffs only\n                  '-27/32, 3/2, -55/32, 21/16, 151/96, 1097/512'),\n       _Rtuple(Aux.CHI, 10,  # C[phi,chi]\n                  '116/45, -2, -2/3, 2, -227/45, -8/5',\n                  '7/3, -136/35, 56/15, 4279/630'),\n       _Rtuple(Aux.XI, 10,  # C[phi,xi]\n                  '-2582/14175, -16/35, 4/45, 4/3, -11966/14175',\n                  '152/945, 46/45, 3802/14175, 3044/2835, 6059/4725')\n    ),\n    Aux.BETA: _Rdict(38,\n       _Rtuple(Aux.PHI, 6,  # C[beta,phi]; even coeffs only\n                  '0, -1, 0, 1/2, -1/3, 1/4'),\n       # C[beta,beta] skipped\n       _Rtuple(Aux.THETA, 6,  # C[beta,theta]; even coeffs only\n                  '0, 1, 0, 1/2, 1/3, 1/4'),\n       _Rtuple(Aux.MU, 6,  # C[beta,mu]; even coeffs only\n                  '-9/32, 1/2, -37/96, 5/16, 29/96, 539/1536'),\n       _Rtuple(Aux.CHI, 10,  # C[beta,chi]\n                  '38/45, -1/3, -2/3, 1, -7/9, -14/15',\n                  '5/6, -34/21, 16/15, 2069/1260'),\n       _Rtuple(Aux.XI, 10,  # C[beta,xi]\n                  '-1082/14175, -46/315, 4/45, 1/3, -338/2025',\n                  '68/945, 17/90, 1102/14175, 461/2835, 3161/18900')\n    ),\n    Aux.THETA: _Rdict(38,\n       _Rtuple(Aux.PHI, 6,  # C[theta,phi]; even coeffs only\n                  '2, -2, -4, 2, -8/3, 4'),\n       _Rtuple(Aux.BETA, 6,  # C[theta,beta]; even coeffs only\n                  '0, -1, 0, 1/2, -1/3, 1/4'),\n       # C[theta,theta] skipped\n       _Rtuple(Aux.MU, 6,  # C[theta,mu]; even coeffs only\n                  '-23/32, -1/2, -5/96, 5/16, 1/32, 283/1536'),\n       _Rtuple(Aux.CHI, 10,  # C[theta,chi]\n                  '4/9, -2/3, -2/3, 0, -23/45',\n                  '-4/15, 1/3, -24/35, 2/5, 83/126'),\n       _Rtuple(Aux.XI, 10,  # C[thet',a,xi]\n                  '-2102/14175, -158/315, 4/45, -2/3, 934/14175',\n                  '-16/945, 16/45, 922/14175, -232/2835, 719/4725')\n    ),\n    Aux.MU: _Rdict(38,\n       _Rtuple(Aux.PHI, 6,  # C[mu,phi]; even coeffs only\n                  '9/16, -3/2, -15/32, 15/16, -35/48, 315/512'),\n       _Rtuple(Aux.BETA, 6,  # C[mu,beta]; even coeffs only\n                  '3/16, -1/2, 1/32, -1/16, -1/48, -5/512'),\n       _Rtuple(Aux.THETA, 6,  # C[mu,theta]; even coeffs only\n                  '13/16, 1/2, 33/32, -1/16, -5/16, -261/512'),\n       # C[mu,mu] skipped\n       _Rtuple(Aux.CHI, 10,  # C[mu,chi]\n                  '41/180, 5/16, -2/3, 1/2, 557/1440',\n                  '-3/5, 13/48, -103/140, 61/240, 49561/161280'),\n       _Rtuple(Aux.XI, 10,  # C[mu,xi]\n                  '-1609/28350, 121/1680, 4/45, -1/6, 16463/453600',\n                  '26/945, -29/720, 449/28350, -1003/45360, -40457/2419200')\n    ),\n    Aux.CHI: _Rdict(50,\n       _Rtuple(Aux.PHI, 10,  # C[chi,phi]\n                  '-82/45, 4/3, 2/3, -2, -13/9',\n                  '-16/15, 5/3, 34/21, -26/15, 1237/630'),\n       _Rtuple(Aux.BETA, 10,  # C[chi,beta]\n                  '-16/45, 0, 2/3, -1, 19/45',\n                  '-2/5, 1/6, 16/105, -1/15, 17/1260'),\n       _Rtuple(Aux.THETA, 10,  # C[chi,theta]\n                  '-2/9, 2/3, 2/3, 0, 43/45',\n                  '4/15, -1/3, 2/105, -2/5, -55/126'),\n       _Rtuple(Aux.MU, 10,  # C[chi,mu]\n                  '1/360, -37/96, 2/3, -1/2, 437/1440',\n                  '-1/15, -1/48, 37/840, -17/480, -4397/161280'),\n       # C[chi,chi] skipped\n       _Rtuple(Aux.XI, 10,  # C[chi,xi]\n                  '-2312/14175, -88/315, 34/45, -2/3, 6079/14175',\n                  '-184/945, 1/45, 772/14175, -106/2835, -167/9450')\n    ),\n    Aux.XI: _Rdict(50,\n       _Rtuple(Aux.PHI, 10,  # C[xi,phi]\n                  '538/4725, 88/315, -4/45, -4/3, -2482/14175',\n                  '8/105, 34/45, -898/14175, -1532/2835, 6007/14175'),\n       _Rtuple(Aux.BETA, 10,  # C[xi,beta]\n                  '34/675, 32/315, -4/45, -1/3, 74/2025',\n                  '-4/315, -7/90, 2/14175, -83/2835, -797/56700'),\n       _Rtuple(Aux.THETA, 10,  # C[xi,theta]\n                  '778/4725, 62/105, -4/45, 2/3, 12338/14175',\n                  '-32/315, 4/45, -1618/14175, -524/2835, -5933/14175'),\n       _Rtuple(Aux.MU, 10,  # C[xi,mu]\n                  '1297/18900, -817/10080, -4/45, 1/6, -29609/453600',\n                  '-2/35, 49/720, -2917/56700, 4463/90720, 331799/7257600'),\n       _Rtuple(Aux.CHI, 10,  # C[xi,chi]\n                  '2458/4725, 46/315, -34/45, 2/3, 3413/14175',\n                  '-256/315, 19/45, -15958/14175, 248/567, 16049/28350')  # PYCHOK exported\n       # C[xi,xi] skipped\n    )\n})\n# _ptrs_4 = (0,   0,   6,  12,  18,  28,  38,  44,  44,  50,  56,  66,\n#           76,  82,  88,  88,  94, 104, 114, 120, 126, 132, 132, 142,\n#          152, 162, 172, 182, 192, 192, 202, 212, 222, 232, 242, 252,\n#          252)  # PYCHOK exported\ndel _Rcoeffs, _Rdict, _Rtuple\n\n# **) MIT License\n#\n# Copyright (C) 2023-2026 -- mrJean1 at Gmail -- All Rights Reserved.\n#\n# Permission is hereby granted, free of charge, to any person obtaining a\n# copy of this software and associated documentation files (the \"Software\"),\n# to deal in the Software without restriction, including without limitation\n# the rights to use, copy, modify, merge, publish, distribute, sublicense,\n# and/or sell copies of the Software, and to permit persons to whom the\n# Software is furnished to do so, subject to the following conditions:\n#\n# The above copyright notice and this permission notice shall be included\n# in all copies or substantial portions of the Software.\n#\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL\n# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR\n# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\n# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n# OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "pygeodesy/auxilats/_CX_6.py",
    "content": "\n# -*- coding: utf-8 -*-\n\nu'''Coefficients for C{_AUXLATITUDE_ORDER} 6 from I{Karney}'s C++ class U{AuxLatitude\n<https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1AuxLatitude.html>}\ntranscoded to a Python C{_Rdict[auxout][auxin]} of C{_Rtuple}s.\n\nCopyright (C) Charles Karney (2022-2024) Karney@Alum.MIT.edu> and licensed under the\nMIT/X11 License.  For more information, see <https://GeographicLib.SourceForge.io>.\n'''\nfrom pygeodesy.auxilats.auxily import Aux\nfrom pygeodesy.auxilats._CX_Rs import _Rcoeffs, _Rdict, _Rtuple\n\n__all__ = ()\n__version__ = '25.04.09'\n\n_coeffs_6 = _Rcoeffs(6, {  # GEOGRAPHICLIB_AUXLATITUDE_ORDER == 6\n    Aux.PHI: _Rdict(78,\n       # C[phi,phi] skipped\n       _Rtuple(Aux.BETA, 12,  # C[phi,beta]; even coeffs only\n                  '0, 0, 1, 0, 0, 1/2, 0, 1/3, 0, 1/4, 1/5, 1/6'),\n       _Rtuple(Aux.THETA, 12,  # C[phi,theta]; even coeffs only\n                  '2, -2, 2, 6, -4, 2, -8, 8/3, -16, 4, 32/5, 32/3'),\n       _Rtuple(Aux.MU, 12,  # C[phi,mu]; even coeffs only\n                  '269/512, -27/32, 3/2, 6759/4096, -55/32, 21/16, -417/128',\n                  '151/96, -15543/2560, 1097/512, 8011/2560, 293393/61440'),\n       _Rtuple(Aux.CHI, 21,  # C[phi,chi]\n                  '-2854/675, 26/45, 116/45, -2, -2/3, 2, 2323/945, 2704/315, -227/45',\n                  '-8/5, 7/3, 73814/2835, -1262/105, -136/35, 56/15, -399572/14175',\n                  '-332/35, 4279/630, -144838/6237, 4174/315, 601676/22275'),\n       _Rtuple(Aux.XI, 21,  # C[phi,xi]\n                  '28112932/212837625, 60136/467775, -2582/14175, -16/35, 4/45',\n                  '4/3, 251310128/638512875, -21016/51975, -11966/14175, 152/945',\n                  '46/45, -8797648/10945935, -94388/66825, 3802/14175, 3044/2835',\n                  '-1472637812/638512875, 41072/93555, 6059/4725, 455935736/638512875',\n                  '768272/467775, 4210684958/1915538625')\n    ),\n    Aux.BETA: _Rdict(78,\n       _Rtuple(Aux.PHI, 12,  # C[beta,phi]; even coeffs only\n                  '0, 0, -1, 0, 0, 1/2, 0, -1/3, 0, 1/4, -1/5, 1/6'),\n       # C[beta,beta] skipped\n       _Rtuple(Aux.THETA, 12,  # C[beta,theta]; even coeffs only\n                  '0, 0, 1, 0, 0, 1/2, 0, 1/3, 0, 1/4, 1/5, 1/6'),\n       _Rtuple(Aux.MU, 12,  # C[beta,mu]; even coeffs only\n                  '205/1536, -9/32, 1/2, 1335/4096, -37/96, 5/16, -75/128',\n                  '29/96, -2391/2560, 539/1536, 3467/7680, 38081/61440'),\n       _Rtuple(Aux.CHI, 21,  # C[beta,chi]\n                  '-3118/4725, -1/3, 38/45, -1/3, -2/3, 1, -247/270, 50/21, -7/9',\n                  '-14/15, 5/6, 17564/2835, -5/3, -34/21, 16/15, -49877/14175',\n                  '-28/9, 2069/1260, -28244/4455, 883/315, 797222/155925'),\n       _Rtuple(Aux.XI, 21,  # C[beta,xi]\n                  '7947332/212837625, 11824/467775, -1082/14175, -46/315, 4/45',\n                  '1/3, 39946703/638512875, -16672/155925, -338/2025, 68/945',\n                  '17/90, -255454/1563705, -101069/467775, 1102/14175, 461/2835',\n                  '-189032762/638512875, 1786/18711, 3161/18900',\n                  '80274086/638512875, 88868/467775, 880980241/3831077250')\n    ),\n    Aux.THETA: _Rdict(78,\n       _Rtuple(Aux.PHI, 12,  # C[theta,phi]; even coeffs only\n                  '-2, 2, -2, 6, -4, 2, 8, -8/3, -16, 4, -32/5, 32/3'),\n       _Rtuple(Aux.BETA, 12,  # C[theta,beta]; even coeffs only\n                  '0, 0, -1, 0, 0, 1/2, 0, -1/3, 0, 1/4, -1/5, 1/6'),\n       # C[theta,theta] skipped\n       _Rtuple(Aux.MU, 12,  # C[theta,mu]; even coeffs only\n                  '499/1536, -23/32, -1/2, 6565/12288, -5/96, 5/16, -77/128',\n                  '1/32, -4037/7680, 283/1536, 1301/7680, 17089/61440'),\n       _Rtuple(Aux.CHI, 21,  # C[theta,chi]\n                  '-3658/4725, 2/9, 4/9, -2/3, -2/3, 0, 61/135, 68/45, -23/45',\n                  '-4/15, 1/3, 9446/2835, -46/35, -24/35, 2/5, -34712/14175',\n                  '-80/63, 83/126, -2362/891, 52/45, 335882/155925'),\n       _Rtuple(Aux.XI, 21,  # C[theta,xi]\n                  '216932/2627625, 109042/467775, -2102/14175, -158/315, 4/45',\n                  '-2/3, 117952358/638512875, -7256/155925, 934/14175, -16/945',\n                  '16/45, -7391576/54729675, -25286/66825, 922/14175, -232/2835',\n                  '-67048172/638512875, 268/18711, 719/4725',\n                  '46774256/638512875, 14354/467775, 253129538/1915538625')\n    ),\n    Aux.MU: _Rdict(78,\n       _Rtuple(Aux.PHI, 12,  # C[mu,phi]; even coeffs only\n                  '-3/32, 9/16, -3/2, 135/2048, -15/32, 15/16, 105/256, -35/48',\n                  '-189/512, 315/512, -693/1280, 1001/2048'),\n       _Rtuple(Aux.BETA, 12,  # C[mu,beta]; even coeffs only\n                  '-1/32, 3/16, -1/2, -9/2048, 1/32, -1/16, 3/256, -1/48',\n                  '3/512, -5/512, -7/1280, -7/2048'),\n       _Rtuple(Aux.THETA, 12,  # C[mu,theta]; even coeffs only\n                  '-15/32, 13/16, 1/2, -1673/2048, 33/32, -1/16, 349/256, -5/16',\n                  '963/512, -261/512, -921/1280, -6037/6144'),\n       # C[mu,mu] skipped\n       _Rtuple(Aux.CHI, 21,  # C[mu,chi]\n                  '7891/37800, -127/288, 41/180, 5/16, -2/3, 1/2',\n                  '-1983433/1935360, 281/630, 557/1440, -3/5, 13/48',\n                  '167603/181440, 15061/26880, -103/140, 61/240',\n                  '6601661/7257600, -179/168, 49561/161280',\n                  '-3418889/1995840, 34729/80640, 212378941/319334400'),\n       _Rtuple(Aux.XI, 21,  # C[mu,xi]\n                  '12674323/851350500, -384229/14968800, -1609/28350, 121/1680',\n                  '4/45, -1/6, -31621753811/1307674368000, -431/17325, 16463/453600',\n                  '26/945, -29/720, -32844781/1751349600, 3746047/119750400, 449/28350',\n                  '-1003/45360, 10650637121/326918592000, 629/53460, -40457/2419200',\n                  '205072597/20432412000, -1800439/119750400, -59109051671/3923023104000')\n    ),\n    Aux.CHI: _Rdict(105,\n       _Rtuple(Aux.PHI, 21,  # C[chi,phi]\n                  '4642/4725, 32/45, -82/45, 4/3, 2/3, -2, -1522/945, 904/315',\n                  '-13/9, -16/15, 5/3, -12686/2835, 8/5, 34/21, -26/15, -24832/14175',\n                  '-12/5, 1237/630, 109598/31185, -734/315, 444337/155925'),\n       _Rtuple(Aux.BETA, 21,  # C[chi,beta]\n                  '-998/4725, 2/5, -16/45, 0, 2/3, -1, -2/27, -22/105, 19/45',\n                  '-2/5, 1/6, 116/567, -22/105, 16/105, -1/15, 2123/14175, -8/105',\n                  '17/1260, 128/4455, -1/105, 149/311850'),\n       _Rtuple(Aux.THETA, 21,  # C[chi,theta]\n                  '1042/4725, -14/45, -2/9, 2/3, 2/3, 0, -712/945, -4/45, 43/45',\n                  '4/15, -1/3, 274/2835, 124/105, 2/105, -2/5, 21068/14175, -16/105',\n                  '-55/126, -9202/31185, -22/45, -90263/155925'),\n       _Rtuple(Aux.MU, 21,  # C[chi,mu]\n                  '-96199/604800, 81/512, 1/360, -37/96, 2/3, -1/2',\n                  '1118711/3870720, -46/105, 437/1440, -1/15, -1/48',\n                  '-5569/90720, 209/4480, 37/840, -17/480',\n                  '830251/7257600, 11/504, -4397/161280',\n                  '108847/3991680, -4583/161280, -20648693/638668800'),\n       # C[chi,chi] skipped\n       _Rtuple(Aux.XI, 21,  # C[chi,xi]\n                  '-55271278/212837625, 27128/93555, -2312/14175, -88/315, 34/45',\n                  '-2/3, 106691108/638512875, -65864/155925, 6079/14175, -184/945',\n                  '1/45, 5921152/54729675, -14246/467775, 772/14175, -106/2835',\n                  '75594328/638512875, -5312/467775, -167/9450',\n                  '2837636/638512875, -248/13365, -34761247/1915538625')\n    ),\n    Aux.XI: _Rdict(105,\n       _Rtuple(Aux.PHI, 21,  # C[xi,phi]\n                  '-44732/2837835, 20824/467775, 538/4725, 88/315, -4/45, -4/3',\n                  '-12467764/212837625, -37192/467775, -2482/14175, 8/105, 34/45',\n                  '100320856/1915538625, 54968/467775, -898/14175, -1532/2835',\n                  '-5884124/70945875, 24496/467775, 6007/14175',\n                  '-839792/19348875, -23356/66825, 570284222/1915538625'),\n       _Rtuple(Aux.BETA, 21,  # C[xi,beta]\n                  '-70496/8513505, 2476/467775, 34/675, 32/315, -4/45, -1/3',\n                  '53836/212837625, 3992/467775, 74/2025, -4/315, -7/90',\n                  '-661844/1915538625, 7052/467775, 2/14175, -83/2835',\n                  '1425778/212837625, 934/467775, -797/56700',\n                  '390088/212837625, -3673/467775, -18623681/3831077250'),\n       _Rtuple(Aux.THETA, 21,  # C[xi,theta]\n                  '-4286228/42567525, -193082/467775, 778/4725, 62/105, -4/45, 2/3',\n                  '-61623938/70945875, 92696/467775, 12338/14175, -32/315, 4/45',\n                  '427003576/1915538625, 612536/467775, -1618/14175, -524/2835',\n                  '427770788/212837625, -8324/66825, -5933/14175',\n                  '-9153184/70945875, -320044/467775, -1978771378/1915538625'),\n       _Rtuple(Aux.MU, 21,  # C[xi,mu]\n                  '-9292991/302702400, 7764059/239500800, 1297/18900, -817/10080, -4/45, 1/6',\n                  '36019108271/871782912000, 35474/467775, -29609/453600, -2/35, 49/720',\n                  '3026004511/30648618000, -4306823/59875200, -2917/56700, 4463/90720',\n                  '-368661577/4036032000, -102293/1871100, 331799/7257600',\n                  '-875457073/13621608000, 11744233/239500800, 453002260127/7846046208000'),\n       _Rtuple(Aux.CHI, 21,  # C[xi,chi]\n                  '2706758/42567525, -55222/93555, 2458/4725, 46/315, -34/45, 2/3',\n                  '-340492279/212837625, 516944/467775, 3413/14175, -256/315, 19/45',\n                  '4430783356/1915538625, 206834/467775, -15958/14175, 248/567',\n                  '62016436/70945875, -832976/467775, 16049/28350',\n                  '-651151712/212837625, 15602/18711, 2561772812/1915538625')  # PYCHOK exported\n       # C[xi,xi] skipped\n    )\n})\n# _ptrs_6 = (0,   0,  12,  24,  36,  57,  78,  90,  90, 102, 114, 135,\n#          156, 168, 180, 180, 192, 213, 234, 246, 258, 270, 270, 291,\n#          312, 333, 354, 375, 396, 396, 417, 438, 459, 480, 501, 522,\n#          522)  # PYCHOK exported\ndel _Rcoeffs, _Rdict, _Rtuple\n\n# **) MIT License\n#\n# Copyright (C) 2023-2026 -- mrJean1 at Gmail -- All Rights Reserved.\n#\n# Permission is hereby granted, free of charge, to any person obtaining a\n# copy of this software and associated documentation files (the \"Software\"),\n# to deal in the Software without restriction, including without limitation\n# the rights to use, copy, modify, merge, publish, distribute, sublicense,\n# and/or sell copies of the Software, and to permit persons to whom the\n# Software is furnished to do so, subject to the following conditions:\n#\n# The above copyright notice and this permission notice shall be included\n# in all copies or substantial portions of the Software.\n#\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL\n# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR\n# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\n# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n# OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "pygeodesy/auxilats/_CX_8.py",
    "content": "\n# -*- coding: utf-8 -*-\n\nu'''Coefficients for C{_AUXLATITUDE_ORDER} 8 from I{Karney}'s C++ class U{AuxLatitude\n<https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1AuxLatitude.html>}\ntranscoded to a Python C{_Rdict[auxout][auxin]} of C{_Rtuple}s.\n\nCopyright (C) Charles Karney (2022-2024) Karney@Alum.MIT.edu> and licensed under the\nMIT/X11 License.  For more information, see <https://GeographicLib.SourceForge.io>.\n'''\nfrom pygeodesy.auxilats.auxily import Aux\nfrom pygeodesy.auxilats._CX_Rs import _Rcoeffs, _Rdict, _Rtuple\n\n__all__ = ()\n__version__ = '25.04.09'\n\n_coeffs_8 = _Rcoeffs(8, {  # GEOGRAPHICLIB_AUXLATITUDE_ORDER == 8\n    Aux.PHI: _Rdict(132,\n       # C[phi,phi] skipped\n       _Rtuple(Aux.BETA, 20,  # C[phi,beta]; even coeffs only\n                  '0, 0, 0, 1, 0, 0, 0, 1/2, 0, 0, 1/3',\n                  '0, 0, 1/4, 0, 1/5, 0, 1/6, 1/7, 1/8'),\n       _Rtuple(Aux.THETA, 20,  # C[phi,theta]; even coeffs only\n                  '-2, 2, -2, 2, -8, 6, -4, 2, 16, -8, 8/3',\n                  '40, -16, 4, -32, 32/5, -64, 32/3, 128/7, 32'),\n       _Rtuple(Aux.MU, 20,  # C[phi,mu]; even coeffs only\n                  '-6607/24576, 269/512, -27/32, 3/2, -155113/122880, 6759/4096, -55/32, 21/16',\n                  '87963/20480, -417/128, 151/96, 2514467/245760, -15543/2560, 1097/512',\n                  '-69119/6144, 8011/2560, -5962461/286720, 293393/61440, 6459601/860160',\n                  '332287993/27525120'),\n       _Rtuple(Aux.CHI, 36,  # C[phi,chi]\n                  '189416/99225, 16822/4725, -2854/675, 26/45, 116/45, -2, -2/3, 2',\n                  '141514/8505, -31256/1575, 2323/945, 2704/315, -227/45, -8/5, 7/3',\n                  '-2363828/31185, 98738/14175, 73814/2835, -1262/105, -136/35, 56/15',\n                  '14416399/935550, 11763988/155925, -399572/14175, -332/35, 4279/630',\n                  '258316372/1216215, -2046082/31185, -144838/6237, 4174/315',\n                  '-2155215124/14189175, -115444544/2027025, 601676/22275',\n                  '-170079376/1216215, 38341552/675675, 1383243703/11351340'),\n       _Rtuple(Aux.XI, 36,  # C[phi,xi]\n                  '-1683291094/37574026875, 22947844/1915538625, 28112932/212837625, 60136/467775',\n                  '-2582/14175, -16/35, 4/45, 4/3, -14351220203/488462349375, 1228352/3007125',\n                  '251310128/638512875, -21016/51975, -11966/14175, 152/945, 46/45',\n                  '505559334506/488462349375, 138128272/147349125, -8797648/10945935, -94388/66825',\n                  '3802/14175, 3044/2835, 973080708361/488462349375, -45079184/29469825',\n                  '-1472637812/638512875, 41072/93555, 6059/4725, -1385645336626/488462349375',\n                  '-550000184/147349125, 455935736/638512875, 768272/467775, -2939205114427/488462349375',\n                  '443810768/383107725, 4210684958/1915538625, 101885255158/54273594375',\n                  '387227992/127702575, 1392441148867/325641566250')\n    ),\n    Aux.BETA: _Rdict(132,\n       _Rtuple(Aux.PHI, 20,  # C[beta,phi]; even coeffs only\n                  '0, 0, 0, -1, 0, 0, 0, 1/2, 0, 0, -1/3',\n                  '0, 0, 1/4, 0, -1/5, 0, 1/6, -1/7, 1/8'),\n       # C[beta,beta] skipped\n       _Rtuple(Aux.THETA, 20,  # C[beta,theta]; even coeffs only\n                  '0, 0, 0, 1, 0, 0, 0, 1/2, 0, 0, 1/3',\n                  '0, 0, 1/4, 0, 1/5, 0, 1/6, 1/7, 1/8'),\n       _Rtuple(Aux.MU, 20,  # C[beta,mu]; even coeffs only\n                  '-4879/73728, 205/1536, -9/32, 1/2, -86171/368640, 1335/4096, -37/96, 5/16',\n                  '2901/4096, -75/128, 29/96, 1082857/737280, -2391/2560, 539/1536, -28223/18432',\n                  '3467/7680, -733437/286720, 38081/61440, 459485/516096, 109167851/82575360'),\n       _Rtuple(Aux.CHI, 36,  # C[beta,chi]\n                  '-25666/99225, 4769/4725, -3118/4725, -1/3, 38/45, -1/3, -2/3, 1, 193931/42525',\n                  '-14404/4725, -247/270, 50/21, -7/9, -14/15, 5/6, -1709614/155925, -36521/14175',\n                  '17564/2835, -5/3, -34/21, 16/15, -637699/85050, 2454416/155925, -49877/14175',\n                  '-28/9, 2069/1260, 48124558/1216215, -20989/2835, -28244/4455, 883/315',\n                  '-16969807/1091475, -2471888/184275, 797222/155925, -1238578/42525, 2199332/225225',\n                  '87600385/4540536'),\n       _Rtuple(Aux.XI, 36,  # C[beta,xi]\n                  '-5946082372/488462349375, 9708931/1915538625, 7947332/212837625, 11824/467775',\n                  '-1082/14175, -46/315, 4/45, 1/3, 190673521/69780335625, 164328266/1915538625',\n                  '39946703/638512875, -16672/155925, -338/2025, 68/945, 17/90, 86402898356/488462349375',\n                  '236067184/1915538625, -255454/1563705, -101069/467775, 1102/14175, 461/2835',\n                  '110123070361/488462349375, -98401826/383107725, -189032762/638512875, 1786/18711',\n                  '3161/18900, -200020620676/488462349375, -802887278/1915538625, 80274086/638512875',\n                  '88868/467775, -296107325077/488462349375, 66263486/383107725, 880980241/3831077250',\n                  '4433064236/18091198125, 37151038/127702575, 495248998393/1302566265000')\n    ),\n    Aux.THETA: _Rdict(132,\n       _Rtuple(Aux.PHI, 20,  # C[theta,phi]; even coeffs only\n                  '2, -2, 2, -2, -8, 6, -4, 2, -16, 8, -8/3, 40, -16, 4',\n                  '32, -32/5, -64, 32/3, -128/7, 32'),\n       _Rtuple(Aux.BETA, 20,  # C[theta,beta]; even coeffs only\n                  '0, 0, 0, -1, 0, 0, 0, 1/2, 0, 0, -1/3, 0, 0, 1/4',\n                  '0, -1/5, 0, 1/6, -1/7, 1/8'),\n       # C[theta,theta] skipped\n       _Rtuple(Aux.MU, 20,  # C[theta,mu]; even coeffs only\n                  '-14321/73728, 499/1536, -23/32, -1/2, -201467/368640, 6565/12288, -5/96, 5/16',\n                  '2939/4096, -77/128, 1/32, 1155049/737280, -4037/7680, 283/1536, -19465/18432',\n                  '1301/7680, -442269/286720, 17089/61440, 198115/516096, 48689387/82575360'),\n       _Rtuple(Aux.CHI, 36,  # C[theta,chi]\n                  '64424/99225, 76/225, -3658/4725, 2/9, 4/9, -2/3, -2/3, 0, 2146/1215, -2728/945',\n                  '61/135, 68/45, -23/45, -4/15, 1/3, -95948/10395, 428/945, 9446/2835, -46/35',\n                  '-24/35, 2/5, 29741/85050, 4472/525, -34712/14175, -80/63, 83/126, 280108/13365',\n                  '-17432/3465, -2362/891, 52/45, -48965632/4729725, -548752/96525, 335882/155925',\n                  '-197456/15795, 51368/12285, 1461335/174636'),\n       _Rtuple(Aux.XI, 36,  # C[theta,xi]\n                  '-230886326/6343666875, -189115382/1915538625, 216932/2627625, 109042/467775, -2102/14175',\n                  '-158/315, 4/45, -2/3, -11696145869/69780335625, 288456008/1915538625, 117952358/638512875',\n                  '-7256/155925, 934/14175, -16/945, 16/45, 91546732346/488462349375, 478700902/1915538625',\n                  '-7391576/54729675, -25286/66825, 922/14175, -232/2835, 218929662961/488462349375',\n                  '-67330724/383107725, -67048172/638512875, 268/18711, 719/4725, -129039188386/488462349375',\n                  '-117954842/273648375, 46774256/638512875, 14354/467775, -178084928947/488462349375',\n                  '2114368/34827975, 253129538/1915538625, 6489189398/54273594375, 13805944/127702575',\n                  '59983985827/325641566250')\n    ),\n    Aux.MU: _Rdict(132,\n       _Rtuple(Aux.PHI, 20,  # C[mu,phi]; even coeffs only\n                  '57/2048, -3/32, 9/16, -3/2, -105/4096, 135/2048, -15/32, 15/16',\n                  '-105/2048, 105/256, -35/48, 693/16384, -189/512, 315/512, 693/2048',\n                  '-693/1280, -1287/4096, 1001/2048, -6435/14336, 109395/262144'),\n       _Rtuple(Aux.BETA, 20,  # C[mu,beta]; even coeffs only\n                  '19/2048, -1/32, 3/16, -1/2, 7/4096, -9/2048, 1/32, -1/16, -3/2048, 3/256, -1/48',\n                  '-11/16384, 3/512, -5/512, 7/2048, -7/1280, 9/4096, -7/2048, -33/14336, -429/262144'),\n       _Rtuple(Aux.THETA, 20,  # C[mu,theta]; even coeffs only\n                  '509/2048, -15/32, 13/16, 1/2, 2599/4096, -1673/2048, 33/32, -1/16',\n                  '-2989/2048, 349/256, -5/16, -43531/16384, 963/512, -261/512, 5545/2048',\n                  '-921/1280, 16617/4096, -6037/6144, -19279/14336, -490925/262144'),\n       # C[mu,mu] skipped\n       _Rtuple(Aux.CHI, 36,  # C[mu,chi]\n                  '-18975107/50803200, 72161/387072, 7891/37800, -127/288, 41/180, 5/16, -2/3, 1/2',\n                  '148003883/174182400, 13769/28800, -1983433/1935360, 281/630, 557/1440, -3/5, 13/48',\n                  '79682431/79833600, -67102379/29030400, 167603/181440, 15061/26880, -103/140, 61/240',\n                  '-40176129013/7664025600, 97445/49896, 6601661/7257600, -179/168, 49561/161280',\n                  '2605413599/622702080, 14644087/9123840, -3418889/1995840, 34729/80640',\n                  '175214326799/58118860800, -30705481/10378368, 212378941/319334400',\n                  '-16759934899/3113510400, 1522256789/1383782400, 1424729850961/743921418240'),\n       _Rtuple(Aux.XI, 36,  # C[mu,xi]\n                  '-375027460897/125046361440000, 7183403063/560431872000, 12674323/851350500',\n                  '-384229/14968800, -1609/28350, 121/1680, 4/45, -1/6, 30410873385097/2000741783040000',\n                  '1117820213/122594472000, -31621753811/1307674368000, -431/17325, 16463/453600, 26/945',\n                  '-29/720, 151567502183/17863765920000, -116359346641/3923023104000, -32844781/1751349600',\n                  '3746047/119750400, 449/28350, -1003/45360, -317251099510901/8002967132160000',\n                  '-13060303/766215450, 10650637121/326918592000, 629/53460, -40457/2419200',\n                  '-2105440822861/125046361440000, 146875240637/3923023104000, 205072597/20432412000',\n                  '-1800439/119750400, 91496147778023/2000741783040000, 228253559/24518894400',\n                  '-59109051671/3923023104000, 126430355893/13894040160000, -4255034947/261534873600',\n                  '-791820407649841/42682491371520000')\n    ),\n    Aux.CHI: _Rdict(180,\n       _Rtuple(Aux.PHI, 36,  # C[chi,phi]\n                  '1514/1323, -8384/4725, 4642/4725, 32/45, -82/45, 4/3, 2/3, -2, 142607/42525, -2288/1575',\n                  '-1522/945, 904/315, -13/9, -16/15, 5/3, 120202/51975, 44644/14175, -12686/2835, 8/5',\n                  '34/21, -26/15, -1097407/187110, 1077964/155925, -24832/14175, -12/5, 1237/630',\n                  '-12870194/1216215, 1040/567, 109598/31185, -734/315, -126463/72765, -941912/184275',\n                  '444337/155925, 3463678/467775, -2405834/675675, 256663081/56756700'),\n       _Rtuple(Aux.BETA, 36,  # C[chi,beta]\n                  '1384/11025, -34/4725, -998/4725, 2/5, -16/45, 0, 2/3, -1, -12616/42525, 1268/4725, -2/27',\n                  '-22/105, 19/45, -2/5, 1/6, 1724/51975, -1858/14175, 116/567, -22/105, 16/105, -1/15',\n                  '115249/935550, -26836/155925, 2123/14175, -8/105, 17/1260, 140836/1216215, -424/6237',\n                  '128/4455, -1/105, 210152/4729725, -31232/2027025, 149/311850, 30208/6081075, -499/225225',\n                  '-68251/113513400'),\n       _Rtuple(Aux.THETA, 36,  # C[chi,theta]\n                  '-1738/11025, 18/175, 1042/4725, -14/45, -2/9, 2/3, 2/3, 0, 23159/42525, 332/945, -712/945',\n                  '-4/45, 43/45, 4/15, -1/3, 13102/31185, -1352/945, 274/2835, 124/105, 2/105, -2/5',\n                  '-2414843/935550, 1528/4725, 21068/14175, -16/105, -55/126, 60334/93555, 20704/10395',\n                  '-9202/31185, -22/45, 40458083/14189175, -299444/675675, -90263/155925, -3818498/6081075',\n                  '-8962/12285, -4259027/4365900'),\n       _Rtuple(Aux.MU, 36,  # C[chi,mu]\n                  '-7944359/67737600, 5406467/38707200, -96199/604800, 81/512, 1/360, -37/96, 2/3, -1/2',\n                  '-24749483/348364800, -51841/1209600, 1118711/3870720, -46/105, 437/1440, -1/15, -1/48',\n                  '6457463/17740800, -9261899/58060800, -5569/90720, 209/4480, 37/840, -17/480',\n                  '-324154477/7664025600, -466511/2494800, 830251/7257600, 11/504, -4397/161280',\n                  '-22894433/124540416, 8005831/63866880, 108847/3991680, -4583/161280, 2204645983/12915302400',\n                  '16363163/518918400, -20648693/638668800, 497323811/12454041600, -219941297/5535129600',\n                  '-191773887257/3719607091200'),\n       # C[chi,chi] skipped\n       _Rtuple(Aux.XI, 36,  # C[chi,xi]\n                  '-17451293242/488462349375, 308365186/1915538625, -55271278/212837625, 27128/93555, -2312/14175',\n                  '-88/315, 34/45, -2/3, -101520127208/488462349375, 149984636/1915538625, 106691108/638512875',\n                  '-65864/155925, 6079/14175, -184/945, 1/45, 10010741462/37574026875, -99534832/383107725',\n                  '5921152/54729675, -14246/467775, 772/14175, -106/2835, 1615002539/75148053750, -35573728/273648375',\n                  '75594328/638512875, -5312/467775, -167/9450, -3358119706/488462349375, 130601488/1915538625',\n                  '2837636/638512875, -248/13365, 46771947158/488462349375, -3196/3553875, -34761247/1915538625',\n                  '-18696014/18091198125, -2530364/127702575, -14744861191/651283132500')\n    ),\n    Aux.XI: _Rdict(180,\n       _Rtuple(Aux.PHI, 36,  # C[xi,phi]\n                  '-88002076/13956067125, -86728/16372125, -44732/2837835, 20824/467775, 538/4725, 88/315',\n                  '-4/45, -4/3, -2641983469/488462349375, -895712/147349125, -12467764/212837625, -37192/467775',\n                  '-2482/14175, 8/105, 34/45, 8457703444/488462349375, 240616/4209975, 100320856/1915538625',\n                  '54968/467775, -898/14175, -1532/2835, -4910552477/97692469875, -4832848/147349125',\n                  '-5884124/70945875, 24496/467775, 6007/14175, 9393713176/488462349375, 816824/13395375',\n                  '-839792/19348875, -23356/66825, -4532926649/97692469875, 1980656/54729675, 570284222/1915538625',\n                  '-14848113968/488462349375, -496894276/1915538625, 224557742191/976924698750'),\n       _Rtuple(Aux.BETA, 36,  # C[xi,beta]\n                  '29232878/97692469875, -18484/4343625, -70496/8513505, 2476/467775, 34/675, 32/315, -4/45, -1/3',\n                  '-324943819/488462349375, -4160804/1915538625, 53836/212837625, 3992/467775, 74/2025, -4/315',\n                  '-7/90, -168643106/488462349375, 237052/383107725, -661844/1915538625, 7052/467775, 2/14175',\n                  '-83/2835, 113042383/97692469875, -2915326/1915538625, 1425778/212837625, 934/467775, -797/56700',\n                  '-558526274/488462349375, 6064888/1915538625, 390088/212837625, -3673/467775, 155665021/97692469875',\n                  '41288/29469825, -18623681/3831077250, 504234982/488462349375, -6205669/1915538625',\n                  '-8913001661/3907698795000'),\n       _Rtuple(Aux.THETA, 36,  # C[xi,theta]\n                  '182466964/8881133625, 53702182/212837625, -4286228/42567525, -193082/467775, 778/4725, 62/105',\n                  '-4/45, 2/3, 367082779691/488462349375, -32500616/273648375, -61623938/70945875, 92696/467775',\n                  '12338/14175, -32/315, 4/45, -42668482796/488462349375, -663111728/383107725, 427003576/1915538625',\n                  '612536/467775, -1618/14175, -524/2835, -327791986997/97692469875, 421877252/1915538625',\n                  '427770788/212837625, -8324/66825, -5933/14175, 74612072536/488462349375, 6024982024/1915538625',\n                  '-9153184/70945875, -320044/467775, 489898512247/97692469875, -46140784/383107725',\n                  '-1978771378/1915538625, -42056042768/488462349375, -2926201612/1915538625, -2209250801969/976924698750'),\n       _Rtuple(Aux.MU, 36,  # C[xi,mu]\n                  '39534358147/2858202547200, -25359310709/1743565824000, -9292991/302702400, 7764059/239500800',\n                  '1297/18900, -817/10080, -4/45, 1/6, -13216941177599/571640509440000, -14814966289/245188944000',\n                  '36019108271/871782912000, 35474/467775, -29609/453600, -2/35, 49/720, -27782109847927/250092722880000',\n                  '99871724539/1569209241600, 3026004511/30648618000, -4306823/59875200, -2917/56700, 4463/90720',\n                  '168979300892599/1600593426432000, 2123926699/15324309000, -368661577/4036032000, -102293/1871100',\n                  '331799/7257600, 1959350112697/9618950880000, -493031379277/3923023104000, -875457073/13621608000',\n                  '11744233/239500800, -145659994071373/800296713216000, -793693009/9807557760, 453002260127/7846046208000',\n                  '-53583096419057/500185445760000, 103558761539/1426553856000, 12272105438887727/128047474114560000'),\n       _Rtuple(Aux.CHI, 36,  # C[xi,chi]\n                  '-64724382148/97692469875, 16676974/30405375, 2706758/42567525, -55222/93555, 2458/4725, 46/315, -34/45',\n                  '2/3, 85904355287/37574026875, 158999572/1915538625, -340492279/212837625, 516944/467775, 3413/14175',\n                  '-256/315, 19/45, 2986003168/37574026875, -7597644214/1915538625, 4430783356/1915538625, 206834/467775',\n                  '-15958/14175, 248/567, -375566203/39037950, 851209552/174139875, 62016436/70945875, -832976/467775',\n                  '16049/28350, 5106181018156/488462349375, 3475643362/1915538625, -651151712/212837625, 15602/18711',\n                  '34581190223/8881133625, -10656173804/1915538625, 2561772812/1915538625, -5150169424688/488462349375',\n                  '873037408/383107725, 7939103697617/1953849397500')  # PYCHOK exported\n       # C[xi,xi] skipped\n    )\n})\n# _ptrs_8 = (0,   0,  20,  40,  60,  96, 132, 152, 152, 172, 192, 228,\n#          264, 284, 304, 304, 324, 360, 396, 416, 436, 456, 456, 492,\n#          528, 564, 600, 636, 672, 672, 708, 744, 780, 816, 852, 888,\n#          888)  # PYCHOK exported\ndel _Rcoeffs, _Rdict, _Rtuple\n\n# **) MIT License\n#\n# Copyright (C) 2023-2026 -- mrJean1 at Gmail -- All Rights Reserved.\n#\n# Permission is hereby granted, free of charge, to any person obtaining a\n# copy of this software and associated documentation files (the \"Software\"),\n# to deal in the Software without restriction, including without limitation\n# the rights to use, copy, modify, merge, publish, distribute, sublicense,\n# and/or sell copies of the Software, and to permit persons to whom the\n# Software is furnished to do so, subject to the following conditions:\n#\n# The above copyright notice and this permission notice shall be included\n# in all copies or substantial portions of the Software.\n#\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL\n# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR\n# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\n# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n# OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "pygeodesy/auxilats/_CX_Rs.py",
    "content": "\n# -*- coding: utf-8 -*-\n\nu'''(INTERNAL) Classes C{_Rcoeffs}, C{_Rdict} and C{_Rtuple} to store the deferred\nPython versions of coefficients from I{Karney}'s C++ class U{AuxLatitude\n<https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1AuxLatitude.html>}.\n\nCopyright (C) Charles Karney (2022-2024) Karney@Alum.MIT.edu> and licensed under the\nMIT/X11 License.  For more information, see <https://GeographicLib.SourceForge.io>.\n'''\n# make sure int/int division yields float quotient, see .basics\nfrom __future__ import division as _; del _  # noqa: E702 ;\n\n# from pygeodesy.basics import _splituple  # _MODS\nfrom pygeodesy.constants import _floats as _constants_floats\nfrom pygeodesy.errors import _AssertionError,  _MODS\n# from pygeodesy.internals import _sizeof  # _MODS\nfrom pygeodesy.interns import NN, MISSING, _duplicate_, _NL_, \\\n                             _QUOTE3_, _SLASH_,  _ELLIPSIS4_  # PYCHOK used!\n# from pygeodesy.lazily import _ALL_MODS as _MODS  # from .errors\nfrom pygeodesy.named import ADict,  Property_RO\n# from pygeodesy.props import Property_RO  # from .named\n\n__all__ = ()\n__version__ = '25.05.12'\n\n\nclass _Rcoeffs(ADict):\n    '''(INTERNAL) With string-ified C{keys}.\n    '''\n    def __init__(self, ALorder, coeffs):\n        '''New C{_Rcoeffs} from a C{coeffs} dict.\n        '''\n        try:\n            if not isinstance(coeffs, dict):\n                raise _RsError(coeffs=type(coeffs))\n            n = 0\n            for k, d in coeffs.items():\n                if not isinstance(k, _Rkey):\n                    raise _RsError(k=type(k))\n                if not isinstance(d, _Rdict):\n                    raise _RsError(k=k, d=type(d))\n                n += d.n\n\n            ADict.__init__(self, coeffs)\n            self.set_(ALorder=ALorder, n=n)  # in .validate\n        except Exception as x:\n            raise _RsError(ALorder=ALorder, cause=x)\n\n    def bnuz4(self):  # in .auxilats.__main__  # PYCHOK no cover\n        # get C{(strB, number, unique, floatB)} rationals\n        b = n = u = z = 0\n        _zB = _MODS.internals._sizeof\n        for R in self._Rtuples():\n            _, _, rs = R.k_n_rs\n            b += _zB(rs)\n            t  =  R._tuple\n            z += _zB(t)  # Float\n            # assert R.Rdict is None\n            n +=  len(t)\n            u +=  sum(1 for f in t if f in _constants_floats)\n        return b, n, (n - u), z\n\n    def items(self):  # string-ify keys  # PYCHOK no cover\n        for n, v in ADict.items(self):\n            yield str(n), v\n\n    def _Rtuples(self):  # PYCHOK no cover\n        for d in self.values():\n            if isinstance(d, _Rdict):\n                # yield from d.values()\n                for R in d.values():\n                    yield R\n\n    def _validate(self, aL, lenAux):\n        # in .auxily.Aux._CXcoeffs(al, Aux.len(aL))\n        a, n = self.ALorder, self.n  # PYCHOK ADict!\n#       for R in self._Rtuples():\n#           assert isinstance(R, _Rtuple)\n        if aL != a or lenAux != n:\n            raise _RsError(aL=aL, ALorder=a, lenAux=lenAux, n=n)\n        return self\n\n\nclass _Rdict(dict):  # in ._CX_#, .auxLat, .rhumb.aux_\n    '''(INTERNAL) Dict of C{_Rtuple}s.\n    '''\n    n = 0  # sum(R.k_n_k[1] for R in Rtuples)\n\n    def __init__(self, nt, *Rtuples):\n        '''New C{_Rdict}.\n        '''\n        if not Rtuples:\n            raise _RsError(Rtuples=MISSING)\n\n        for R in Rtuples:\n            if not isinstance(R, _Rtuple):\n                raise _RsError(R, R=type(R))\n            k, n, _ = R.k_n_rs\n            if k in self:\n                raise _RsError(_duplicate_, k=k)\n            R.Rdict = self\n            self[k] = R  # overwritten in self._floatuple\n            self.n += n\n        if self.n != nt:\n            raise _RsError(n=n, nt=nt)\n\n    def _floats(self, rs):\n        # yield floats from a string of comma-separated rationals\n        def _p_q(p=NN, q=1, *x):\n            return (NN if x else p), q\n\n        _get = _constants_floats.get\n        for r in _MODS.basics._splituple(rs):\n            p, q = _p_q(*r.split(_SLASH_))\n            if p:\n                f = int(p) / int(q)  # fractions.Fraction?\n                if not isinstance(f, float):\n                    raise _RsError(rs, f=f, p=p, q=q, r=r)\n                yield _get(f, f)  # from .constants\n            else:\n                raise _RsError(rs, r=r)\n\n    def _floatuple(self, Rtuple):\n        # return a tuple of floats from an C{_Rtuple}\n        k, n, rs = Rtuple.k_n_rs\n        t = tuple(f for m in map(self._floats, rs)\n                        for f in m)  # == yield f\n        # @see: <https://StackOverflow.com/questions/10632839/>\n        #       and <https://realPython.com/python-flatten-list/>\n        if len(t) != n:\n            raise _RsError(*rs, len=len(t), n=n)\n        self[k] = t  # replace _Rtuple with tuple instance\n        return t\n\n\nclass _Rkey(int):\n    '''(INTERNAL) For C{_Rcoeffs}, C{_Rdict} and C{_Rtuple} keys.\n    '''\n    def __new__(cls, k):\n        if not isinstance(k, int):\n            raise _RsError(k=type(k))\n        if not 0 <= k <= 8:  # 0.._MODS.auxilats.auxily.Aux.N + 2\n            raise _RsError(k=k)\n        return int.__new__(cls, k)\n\n\nclass _RsError(_AssertionError):\n    '''(INTERNAL) For C{_Rcoeffs}, C{_Rdict or} C{_Rtuple} issues.\n    '''\n    def __init__(self, *rs, **kwds_cause):  # PYCHOK no cover\n        if rs:\n            if len(rs) > 1:\n                t = _NL_(NN, *rs)\n                t =  NN(_QUOTE3_, t, _QUOTE3_)\n            else:  # single rs\n                t =  repr(rs[0])\n            kwds_cause.update(txt=t)\n        _AssertionError.__init__(self, **kwds_cause)\n\n\nclass _Rtuple(list):  # MUST be list, NOT tuple!\n    '''(INTERNAL) I{Pseudo-tuple} of float rationals used in C{_Rdict}s.\n    '''\n    Rdict  = None  # set by _Rdict.__init__\n    k_n_rs = None, 0, ()\n\n    def __init__(self, k, n, *rs):\n        '''New C{_Rtuple} with key C{k}, number of floats C{n} and with\n           each C{rs} a C{str} of comma-separated rationals C{\"p/q, ...\"}\n           where C{p} and C{q} are C{int} digits only.\n        '''\n        try:\n            if not isinstance(k, _Rkey):\n                raise _RsError(k=type(k))\n            if not (isinstance(n, int) and n > 0):\n                raise _RsError(n=type(n))\n            if not rs:\n                raise _RsError(rs=MISSING)\n            for t in rs:\n                if not isinstance(t, str):\n                    raise _RsError(rs=type(t))\n            self.k_n_rs = k, n, rs\n        except Exception as x:\n            raise _RsError(*rs, k=k, n=n, cause=x)\n\n    def __getitem__(self, i):\n        return self._tuple[i]\n\n    if _MODS.sys_version_info2 < (3, 0):\n        def __getslice__(self, *i_j):  # PYCHOK 3 args\n            return self._tuple[slice(*i_j)]\n\n    def __iter__(self):\n        return iter(self._tuple)\n\n    def __len__(self):\n        return len(self._tuple)\n\n    @Property_RO\n    def _tuple(self):\n        # build the C{tuple} I{once} and replace\n        # C{_Rdict[key]} item with the C{tuple}\n        try:\n            k, n, rs = self.k_n_rs  # for except ...\n            t = self.Rdict._floatuple(self)\n#           self[:] = t  # MUST copy into self?\n        except Exception as x:\n            if len(rs) > 1 and _QUOTE3_ in str(x):\n                rs = rs[0], _ELLIPSIS4_\n            raise _RsError(k=k, n=n, rs=rs, cause=x)\n        del self.Rdict, self.k_n_rs  # trash refs\n        return t\n\n    def append(self, arg):\n        raise _RsError(append=arg)\n\n    def extend(self, arg):\n        raise _RsError(extend=arg)\n\n# **) MIT License\n#\n# Copyright (C) 2024-2026 -- mrJean1 at Gmail -- All Rights Reserved.\n#\n# Permission is hereby granted, free of charge, to any person obtaining a\n# copy of this software and associated documentation files (the \"Software\"),\n# to deal in the Software without restriction, including without limitation\n# the rights to use, copy, modify, merge, publish, distribute, sublicense,\n# and/or sell copies of the Software, and to permit persons to whom the\n# Software is furnished to do so, subject to the following conditions:\n#\n# The above copyright notice and this permission notice shall be included\n# in all copies or substantial portions of the Software.\n#\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL\n# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR\n# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\n# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n# OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "pygeodesy/auxilats/__init__.py",
    "content": "\n# -*- coding: utf-8 -*-\n\nu'''Classes L{AuxAngle}, L{AuxDLat}, L{AuxDST} and L{AuxLat} transcoded to Python from I{Karney}'s\nC++ class U{AuxAngle<https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1AuxAngle.html>},\nU{DAuxLatitude<https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1DAuxLatitude.html>},\nU{DST<https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1DST.html>}, repectively\nU{AuxLatitude<https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1AuxLatitude.html>} all\nin I{GeographicLib version 2.2+}.\n\nCopyright (C) U{Charles Karney<mailto:Karney@Alum.MIT.edu>} (2022-2024) and licensed under the MIT/X11\nLicense.  For more information, see the U{GeographicLib<https://GeographicLib.SourceForge.io>} documentation.\n\n@note: Class L{AuxDST} requires U{numpy<https://PyPI.org/project/numpy>} to be installed, version 1.16\n       or newer.\n\n@see: U{Auxiliary latitudes<https://GeographicLib.SourceForge.io/C++/doc/auxlat.html>} and\n      U{On auxiliary latitudes<https://ArXiv.org/abs/2212.05818>}.\n'''\n\nfrom pygeodesy.auxilats.auxAngle import AuxAngle, AuxBeta, AuxChi, AuxMu, \\\n                                        AuxPhi, AuxTheta, AuxXi  # PYCHOK exported\nfrom pygeodesy.auxilats.auxDLat import AuxDLat  # PYCHOK exported\nfrom pygeodesy.auxilats.auxDST import AuxDST  # PYCHOK exported\nfrom pygeodesy.auxilats.auxily import Aux  # PYCHOK exported\nfrom pygeodesy.auxilats.auxLat import AuxLat  # PYCHOK exported\nfrom pygeodesy.lazily import _ALL_OTHER\n\n# no modules: auxAngle, auxDLat, auxDST, auxily, auxLat\n__all__ = _ALL_OTHER(Aux, AuxAngle, AuxDLat, AuxDST, AuxLat,\n                     AuxBeta, AuxChi, AuxMu, AuxPhi, AuxTheta, AuxXi)\n__version__ = '25.12.02'\n\n# **) MIT License\n#\n# Copyright (C) 2023-2026 -- mrJean1 at Gmail -- All Rights Reserved.\n#\n# Permission is hereby granted, free of charge, to any person obtaining a\n# copy of this software and associated documentation files (the \"Software\"),\n# to deal in the Software without restriction, including without limitation\n# the rights to use, copy, modify, merge, publish, distribute, sublicense,\n# and/or sell copies of the Software, and to permit persons to whom the\n# Software is furnished to do so, subject to the following conditions:\n#\n# The above copyright notice and this permission notice shall be included\n# in all copies or substantial portions of the Software.\n#\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL\n# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR\n# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\n# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n# OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "pygeodesy/auxilats/__main__.py",
    "content": "\n# -*- coding: utf-8 -*-\n\nu'''Print L{auxilats} version, etc. using C{python -m pygeodesy.auxilats}.\n'''\n\n__all__ = ()\n__version__ = '25.04.14'\n\n\ndef _main(**ALorder):  # PYCHOK no cover\n\n    try:\n        from pygeodesy import ADict, auxilats\n        from pygeodesy.internals import _fper, _name_version, \\\n                                         printf, _versions\n        from pygeodesy.interns import _COMMASPACE_\n\n        A  = auxilats.AuxLat(**ALorder)\n        Cx = A._CXcoeffs  # PropertyRO: Adict of _Rdicts\n        b, n, u, z = Cx.bnuz4()\n        p  = ADict(ALorder=A.ALorder, CXb=b, CXb_z=_fper(b, z),\n                               CXn=n, CXu=u, CXu_n=_fper(u, n))._toL()\n        try:\n            import geographiclib\n            p.append(_name_version(geographiclib))\n        except ImportError:\n            pass\n\n        a = _name_version(auxilats)\n        printf('%s: %s (%s)', a, _COMMASPACE_(*p), _versions())\n\n    except ImportError:\n        from pygeodesy.internals import _usage\n        print(_usage(__file__))\n\n\nfrom sys import argv  # .internals._isPyChOK\n_main(ALorder=int(argv[1])) if len(argv) == 2 and argv[1].isdigit() else _main()\n\n# % python3.13 -m pygeodesy.auxilats\n# pygeodesy.auxilats 25.04.14: ALorder=6, CXb=11099, CXb_z=64.1%, CXn=522, CXu=448, CXu_n=85.8%, geographiclib 2.0 (pygeodesy 25.4.24 Python 3.13.3 64bit arm64 macOS 15.4)\n\n# % python3.12 -m pygeodesy.auxilats 8\n# pygeodesy.auxilats 24.09.04: ALorder=8, CXb=20310, CXb_z=71.5%, CXn=888, CXu=780, CXu_n=87.8%, geographiclib 2.0 (pygeodesy 24.9.9 Python 3.12.5 64bit arm64 macOS 14.6.1)\n\n# % python3.12 -m pygeodesy.auxilats 6\n# pygeodesy.auxilats 24.09.04: ALorder=6, CXb=11099, CXb_z=64.1%, CXn=522, CXu=448, CXu_n=85.8%, geographiclib 2.0 (pygeodesy 24.9.9 Python 3.12.5 64bit arm64 macOS 14.6.1)\n\n# % python3.12 -m pygeodesy.auxilats 4\n# pygeodesy.auxilats 24.09.04: ALorder=4, CXb=5367, CXb_z=58.8%, CXn=252, CXu=203, CXu_n=80.6%, geographiclib 2.0 (pygeodesy 24.9.9 Python 3.12.5 64bit arm64 macOS 14.6.1)\n\n\n# **) MIT License\n#\n# Copyright (C) 2023-2026 -- mrJean1 at Gmail -- All Rights Reserved.\n#\n# Permission is hereby granted, free of charge, to any person obtaining a\n# copy of this software and associated documentation files (the \"Software\"),\n# to deal in the Software without restriction, including without limitation\n# the rights to use, copy, modify, merge, publish, distribute, sublicense,\n# and/or sell copies of the Software, and to permit persons to whom the\n# Software is furnished to do so, subject to the following conditions:\n#\n# The above copyright notice and this permission notice shall be included\n# in all copies or substantial portions of the Software.\n#\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL\n# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR\n# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\n# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n# OTHER DEALINGS IN THE SOFTWARE.\n\n# % python3 -m pygeodesy.geodesicx\n# pygeodesy.auxilats.version=24.05.31, .ALorder=6, .CXlen=522, .CXset=418, .CXset_len=80.1%, .CXx=6 (Python 3.12.3, 64bit, arm64, geographiclib 2.0)\n"
  },
  {
    "path": "pygeodesy/auxilats/auxAngle.py",
    "content": "\n# -*- coding: utf-8 -*-\n\nu'''(INTERNAL) I{Auxiliary} latitudes' base classes, constants and functions.\n\nClass L{AuxAngle} transcoded to Python from I{Karney}'s C++ class U{AuxAngle\n<https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1AuxAngle.html>}\nin I{GeographicLib version 2.2+}.\n\nCopyright (C) U{Charles Karney<mailto:Karney@Alum.MIT.edu>} (2022-2024) and licensed\nunder the MIT/X11 License.  For more information, see the U{GeographicLib\n<https://GeographicLib.SourceForge.io>} documentation.\n'''\n# make sure int/int division yields float quotient, see .basics\nfrom __future__ import division as _; del _  # noqa: E702 ;\n\nfrom pygeodesy.auxilats.auxily import Aux, _Aux2Greek,  AuxError\nfrom pygeodesy.basics import map1, map2, _xinstanceof\nfrom pygeodesy.constants import EPS, MAX, NAN, _0_0, _0_5, _1_0, _copysign_1_0, \\\n                                isfinite, isnan, _over, _pos_self\n# from pygeodesy.errors import AuxError  # from .auxilats.auxily\nfrom pygeodesy.fmath import hypot,  unstr\nfrom pygeodesy.fsums import _add_op_, _iadd_op_, _isub_op_, _sub_op_\nfrom pygeodesy.named import _Named,  _ALL_DOCS, _MODS\n# from pygeodesy.lazily import _ALL_DOCS, _ALL_MODS as _MODS  # from .named\nfrom pygeodesy.props import Property, Property_RO, property_RO, property_ROver, \\\n                           _update_all\n# from pygeodesy.streprs import unstr  # from .fmath\nfrom pygeodesy.units import Degrees, Radians\nfrom pygeodesy.utily import atan2, atan2d, sincos2, sincos2d\n\nfrom math import asinh, copysign, degrees, fabs, radians, sinh\n\n__all__ = ()\n__version__ = '25.12.02'\n\n_MAX_2 = MAX * _0_5  # PYCHOK used!\n# del MAX\n\n\nclass AuxAngle(_Named):\n    '''U{An accurate representation of angles\n       <https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1AuxAngle.html>}\n    '''\n    _AUX  =  None  # overloaded/-ridden\n    _diff =  NAN   # default\n    _iter =  None  # like ._NamedBase\n    _y    = _0_0\n    _x    = _1_0\n\n    def __init__(self, y_angle=_0_0, x=_1_0, aux=None, **name):\n        '''New L{AuxAngle}.\n\n           @kwarg y_angle: The Y component (C{scalar}, including C{INF}, C{NAN}\n                           and C{NINF}) or a previous L{AuxAngle} instance.\n           @kwarg x: The X component, required if C{B{y_angle}} is C{scalar},\n                     ignored otherwise.\n           @kwarg aux: I{Auxiliary} kind (C{Aux.KIND}), like B{C{x}}.\n           @kwarg name: Optional C{B{name}=NN} see (C{str}).\n\n           @raise AuxError: Invalid B{C{y_angle}}, B{C{x}} or B{C{aux}}.\n        '''\n        try:\n            try:\n                yx  = y_angle._yx\n                aux = y_angle._AUX\n                if self._diff != y_angle._diff:\n                    self._diff = y_angle._diff\n            except AttributeError:\n                yx  = y_angle, x\n            if aux in _AUXClass:\n                if self._AUX != aux:\n                    self._AUX = aux\n            elif aux is not None:\n                raise ValueError()  # _invalid_\n        except Exception as X:\n            raise AuxError(y=y_angle, x=x, aux=aux, cause=X)\n        self._y, self._x = _yx2(yx)\n        if name:\n            self.name = name\n\n    def __abs__(self):\n        '''Return this angle's absolute value (L{AuxAngle}).\n        '''\n        a     = self._copy_2(self.__abs__)\n        a._yx = map2(fabs, self._yx)\n        return a\n\n    def __add__(self, other):\n        '''Return C{B{self} + B{other}} as an L{AuxAngle}.\n\n           @arg other: An L{AuxAngle}.\n\n           @return: The sum (L{AuxAngle}).\n\n           @raise TypeError: Invalid B{C{other}}.\n        '''\n        a = self._copy_2(self.__add__)\n        return a._iadd(other, _add_op_)\n\n    def __bool__(self):  # PYCHOK not special in Python 2-\n        '''Return C{True} if this angle is non-zero.\n        '''\n        return bool(self.tan)\n\n    def __eq__(self, other):\n        '''Return C{B{self} == B{other}} as C{bool}.\n        '''\n        return not self.__ne__(other)\n\n    def __float__(self):\n        '''Return this angle's C{tan} (C{float}).\n        '''\n        return self.tan\n\n    def __iadd__(self, other):\n        '''Apply C{B{self} += B{other}} to this angle.\n\n           @arg other: An L{AuxAngle}.\n\n           @return: This angle, updated (L{AuxAngle}).\n\n           @raise TypeError: Invalid B{C{other}}.\n        '''\n        return self._iadd(other, _iadd_op_)\n\n    def __isub__(self, other):\n        '''Apply C{B{self} -= B{other}} to this angle.\n\n           @arg other: An L{AuxAngle}.\n\n           @return: This instance, updated (L{AuxAngle}).\n\n           @raise TypeError: Invalid B{C{other}} type.\n        '''\n        return self._iadd(-other, _isub_op_)\n\n    def __ne__(self, other):\n        '''Return C{B{self} != B{other}} as C{bool}.\n        '''\n        _xinstanceof(AuxAngle, other=other)\n        y, x, r =  self._yxr_normalized()\n        s, c, t = other._yxr_normalized()\n        return fabs(y - s) > EPS or fabs(x - c) > EPS \\\n                                 or fabs(r - t) > EPS\n\n    def __neg__(self):\n        '''Return I{a copy of} this angle, negated.\n        '''\n        a = self._copy_2(self.__neg__)\n        if a.y or not a.x:\n            a.y = -a.y\n        else:\n            a.x = -a.x\n        return a\n\n    def __pos__(self):\n        '''Return this angle I{as-is}, like C{float.__pos__()}.\n        '''\n        return self if _pos_self else self._copy_2(self.__pos__)\n\n    def __radd__(self, other):\n        '''Return C{B{other} + B{self}} as an L{AuxAngle}.\n\n           @see: Method L{AuxAngle.__add__}.\n        '''\n        a = self._copy_r2(other, self.__radd__)\n        return a._iadd(self, _add_op_)\n\n    def __rsub__(self, other):\n        '''Return C{B{other} - B{self}} as an L{AuxAngle}.\n\n           @see: Method L{AuxAngle.__sub__}.\n        '''\n        a = self._copy_r2(other, self.__rsub__)\n        return a._iadd(-self, _sub_op_)\n\n    def __str__(self):\n        n = _Aux2Greek.get(self._AUX, self.classname)\n        return unstr(n, y=self.y, x=self.x, tan=self.tan)\n\n    def __sub__(self, other):\n        '''Return C{B{self} - B{other}} as an L{AuxAngle}.\n\n           @arg other: An L{AuxAngle}.\n\n           @return: The difference (L{AuxAngle}).\n\n           @raise TypeError: Invalid B{C{other}} type.\n        '''\n        a = self._copy_2(self.__sub__)\n        return a._iadd(-other, _sub_op_)\n\n    def _iadd(self, other, *unused):  # op\n        '''(INTERNAL) Apply C{B{self} += B{other}}.\n        '''\n        _xinstanceof(AuxAngle, other=other)\n        # ignore zero other to preserve signs of _y and _x\n        if other.tan:\n            s, c = other._yx\n            y, x = self._yx\n            self._yx = (y * c + x * s), \\\n                       (x * c - y * s)\n        return self\n\n    def _copy_2(self, which):\n        '''(INTERNAL) Copy for I{dyadic} operators.\n        '''\n        return _Named.copy(self, deep=False, name__=which)\n\n    def _copy_r2(self, other, which):\n        '''(INTERNAL) Copy for I{reverse-dyadic} operators.\n        '''\n        _xinstanceof(AuxAngle, other=other)\n        return other._copy_2(which)\n\n    def copyquadrant(self, other):\n        '''Copy an B{C{other}} angle's quadrant into this angle (L{auxAngle}).\n        '''\n        _xinstanceof(AuxAngle, other=other)\n        self._yx = copysign(self.y, other.y), \\\n                   copysign(self.x, other.x)\n        return self\n\n    @Property_RO\n    def diff(self):\n        '''Get derivative C{dtan(Eta) / dtan(Phi)} (C{float} or C{NAN}).\n        '''\n        return self._diff\n\n    @staticmethod\n    def fromDegrees(deg, **aux_name):\n        '''Get an L{AuxAngle} from degrees.\n        '''\n        return _AuxClass(**aux_name)(*sincos2d(deg), **aux_name)\n\n    @staticmethod\n    def fromLambertianDegrees(psi, **aux_name):\n        '''Get an L{AuxAngle} from I{Lambertian} degrees.\n        '''\n        return _AuxClass(**aux_name)(sinh(radians(psi)), **aux_name)\n\n    @staticmethod\n    def fromLambertianRadians(psi, **aux_name):\n        '''Get an L{AuxAngle} from I{Lambertian} radians.\n        '''\n        return _AuxClass(**aux_name)(sinh(psi), **aux_name)\n\n    @staticmethod\n    def fromRadians(rad, **aux_name):\n        '''Get an L{AuxAngle} from radians.\n        '''\n        return _AuxClass(**aux_name)(*sincos2(rad), **aux_name)\n\n    @Property_RO\n    def iteration(self):\n        '''Get the iteration (C{int} or C{None}).\n        '''\n        return self._iter\n\n    def normal(self):\n        '''Normalize this angle I{in-place}.\n\n           @return: This angle, normalized (L{AuxAngle}).\n        '''\n        self._yx = self._yx_normalized\n        return self\n\n    @Property_RO\n    def normalized(self):\n        '''Get a normalized copy of this angle (L{AuxAngle}).\n        '''\n        y, x = self._yx_normalized\n        return self.classof(y, x, name=self.name, aux=self._AUX)\n\n    @property_ROver\n    def _RhumbAux(self):\n        '''(INTERNAL) Import the L{RhumbAux} class, I{once}.\n        '''\n        return _MODS.rhumb.aux_.RhumbAux  # overwrite property_ROver\n\n    @Property_RO\n    def tan(self):\n        '''Get this angle's C{tan} (C{float}).\n        '''\n        y, x = self._yx\n        return _over(y, x) if isfinite(y) and y else y\n\n    def toBeta(self, rhumb):\n        '''Short for C{rhumb.auxDLat.convert(Aux.BETA, self, exact=rhumb.exact)}\n        '''\n        return self._toRhumbAux(rhumb, Aux.BETA)\n\n    def toChi(self, rhumb):\n        '''Short for C{rhumb.auxDLat.convert(Aux.CHI, self, exact=rhumb.exact)}\n        '''\n        return self._toRhumbAux(rhumb, Aux.CHI)\n\n    @Property_RO\n    def toDegrees(self):\n        '''Get this angle as L{Degrees}.\n        '''\n        return Degrees(atan2d(*self._yx), name=self.name)\n\n    @Property_RO\n    def toLambertianDegrees(self):  # PYCHOK no cover\n        '''Get this angle's I{Lambertian} in L{Degrees}.\n        '''\n        r = self.toLambertianRadians\n        return Degrees(degrees(r), name=r.name)\n\n    @Property_RO\n    def toLambertianRadians(self):\n        '''Get this angle's I{Lambertian} in L{Radians}.\n        '''\n        return Radians(asinh(self.tan), name=self.name)\n\n    def toMu(self, rhumb):\n        '''Short for C{rhumb.auxDLat.convert(Aux.MU, self, exact=rhumb.exact)}\n        '''\n        return self._toRhumbAux(rhumb, Aux.MU)\n\n    def toPhi(self, rhumb):\n        '''Short for C{rhumb.auxDLat.convert(Aux.PHI, self, exact=rhumb.exact)}\n        '''\n        return self._toRhumbAux(rhumb, Aux.PHI)\n\n    @Property_RO\n    def toRadians(self):\n        '''Get this angle as L{Radians}.\n        '''\n        return Radians(atan2(*self._yx), name=self.name)\n\n    def _toRhumbAux(self, rhumb, aux):\n        '''(INTERNAL) Create an C{aux}-KIND angle from this angle.\n        '''\n        _xinstanceof(self._RhumbAux, rhumb=rhumb)\n        return rhumb._auxD.convert(aux, self, exact=rhumb.exact)\n\n    @Property\n    def x(self):\n        '''Get this angle's C{x} (C{float}).\n        '''\n        return self._x\n\n    @x.setter  # PYCHOK setter!\n    def x(self, x):  # PYCHOK no cover\n        '''Set this angle's C{x} (C{float}).\n        '''\n        x = float(x)\n        if self._x != x:\n            _update_all(self)\n            self._x = x\n\n    @property_RO\n    def _x_normalized(self):\n        '''(INTERNAL) Get the I{normalized} C{x}.\n        '''\n        _, x = self._yx_normalized\n        return x\n\n    @Property\n    def y(self):\n        '''Get this angle's C{y} (C{float}).\n        '''\n        return self._y\n\n    @y.setter  # PYCHOK setter!\n    def y(self, y):  # PYCHOK no cover\n        '''Set this angle's C{y} (C{float}).\n        '''\n        y = float(y)\n        if self.y != y:\n            _update_all(self)\n            self._y = y\n\n    @Property\n    def _yx(self):\n        '''(INTERNAL) Get this angle as 2-tuple C{(y, x)}.\n        '''\n        return self._y, self._x\n\n    @_yx.setter  # PYCHOK setter!\n    def _yx(self, yx):\n        '''(INTERNAL) Set this angle's C{y} and C{x}.\n        '''\n        yx = _yx2(yx)\n        if self._yx != yx:\n            _update_all(self)\n            self._y, self._x = yx\n\n    @Property_RO\n    def _yx_normalized(self):\n        '''(INTERNAL) Get this angle as 2-tuple C{(y, x)}, I{normalized}.\n        '''\n        y, x = self._yx\n        if isfinite(y) and fabs(y) < _MAX_2 \\\n                       and fabs(x) < _MAX_2 \\\n                       and isfinite(self.tan):\n            h = hypot(y, x)\n            if h > 0 and y:\n                y = y / h  # /= chokes PyChecker\n                x = x / h\n                if isnan(y):  # PYCHOK no cover\n                    y = _copysign_1_0(self.y)\n                if isnan(x):  # PYCHOK no cover\n                    x = _copysign_1_0(self.x)\n            else:  # scalar 0\n                y, x = _0_0, _copysign_1_0(y * x)\n        else:  # scalar NAN\n            y, x = NAN, _copysign_1_0(y * x)\n        return y, x\n\n    def _yxr_normalized(self, abs_y=False):\n        '''(INTERNAL) Get 3-tuple C{(y, x, r)}, I{normalized}\n           with C{y} or C{abs(y)} and C{r} as C{.toRadians}.\n        '''\n        y, x = self._yx_normalized\n        if abs_y:\n            y = fabs(y)  # only y, not x\n        return y, x, atan2(y, x)  # .toRadians\n\n\nclass AuxBeta(AuxAngle):\n    '''A I{Parametric, Auxiliary} latitude.\n    '''\n    _AUX = Aux.BETA\n\n    @staticmethod\n    def fromDegrees(deg, **name):\n        '''Get an L{AuxBeta} from degrees.\n        '''\n        return AuxBeta(*sincos2d(deg), **name)\n\n    @staticmethod\n    def fromRadians(rad, **name):\n        '''Get an L{AuxBeta} from radians.\n        '''\n        return AuxBeta(*sincos2(rad), **name)\n\n\nclass AuxChi(AuxAngle):\n    '''A I{Conformal, Auxiliary} latitude.\n    '''\n    _AUX = Aux.CHI\n\n    @staticmethod\n    def fromDegrees(deg, **name):\n        '''Get an L{AuxChi} from degrees.\n        '''\n        return AuxChi(*sincos2d(deg), **name)\n\n\nclass AuxMu(AuxAngle):\n    '''A I{Rectifying, Auxiliary} latitude.\n    '''\n    _AUX = Aux.MU\n\n    @staticmethod\n    def fromDegrees(deg, **name):\n        '''Get an L{AuxMu} from degrees.\n        '''\n        return AuxMu(*sincos2d(deg), **name)\n\n\nclass AuxPhi(AuxAngle):\n    '''A I{Geodetic or Geographic, Auxiliary} latitude.\n    '''\n    _AUX  =  Aux.PHI\n    _diff = _1_0  # see .auxLat._Newton\n\n    @staticmethod\n    def fromDegrees(deg, **name):\n        '''Get an L{AuxPhi} from degrees.\n        '''\n        return AuxPhi(*sincos2d(deg), **name)\n\n\nclass AuxTheta(AuxAngle):\n    '''A I{Geocentric, Auxiliary} latitude.\n    '''\n    _AUX = Aux.THETA\n\n    @staticmethod\n    def fromDegrees(deg, **name):\n        '''Get an L{AuxTheta} from degrees.\n        '''\n        return AuxTheta(*sincos2d(deg), **name)\n\n\nclass AuxXi(AuxAngle):\n    '''An I{Authalic, Auxiliary} latitude.\n    '''\n    _AUX = Aux.XI\n\n    @staticmethod\n    def fromDegrees(deg, **name):\n        '''Get an L{AuxXi} from degrees.\n        '''\n        return AuxXi(*sincos2d(deg), **name)\n\n\n_AUXClass = {Aux.BETA:  AuxBeta,\n             Aux.CHI:   AuxChi,\n             Aux.MU:    AuxMu,\n             Aux.PHI:   AuxPhi,\n#            Aux.PSI:   AuxPSI,  # Isometric\n             Aux.THETA: AuxTheta,\n             Aux.XI:    AuxXi}\n\ndef _AuxClass(aux=None, **unused):  # PYCHOK C{classof(aux)}\n    return _AUXClass.get(aux, AuxAngle)\n\n\ndef _yx2(yx):\n    '''(INTERNAL) Validate 2-tuple C{(y, x)}.\n    '''\n    try:\n        y, x = yx\n        y, x = map1(float, y, x)\n        if not (y and isfinite(y)):\n            x = _copysign_1_0(x)\n    except (TypeError, ValueError) as X:\n        raise AuxError(y=y, x=x, cause=X)\n    return y, x\n\n\n__all__ += _ALL_DOCS(AuxAngle, *_AUXClass.values())\n\n# **) MIT License\n#\n# Copyright (C) 2023-2026 -- mrJean1 at Gmail -- All Rights Reserved.\n#\n# Permission is hereby granted, free of charge, to any person obtaining a\n# copy of this software and associated documentation files (the \"Software\"),\n# to deal in the Software without restriction, including without limitation\n# the rights to use, copy, modify, merge, publish, distribute, sublicense,\n# and/or sell copies of the Software, and to permit persons to whom the\n# Software is furnished to do so, subject to the following conditions:\n#\n# The above copyright notice and this permission notice shall be included\n# in all copies or substantial portions of the Software.\n#\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL\n# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR\n# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\n# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n# OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "pygeodesy/auxilats/auxDLat.py",
    "content": "# -*- coding: utf-8 -*-\n\nu'''Class L{AuxDLat} transcoded to Python from I{Karney}'s C++ class U{DAuxLatitude\n<https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1DAuxLatitude.html>}\nin I{GeographicLib version 2.2+}.\n\nCopyright (C) U{Charles Karney<mailto:Karney@Alum.MIT.edu>} (2022-2024) and licensed\nunder the MIT/X11 License.  For more information, see the U{GeographicLib\n<https://GeographicLib.SourceForge.io>} documentation.\n'''\n# make sure int/int division yields float quotient, see .basics\nfrom __future__ import division as _; del _  # noqa: E702 ;\n\nfrom pygeodesy.auxilats.auxily import Aux, _Datan, _Dasinh, _Dm, _sc, _sn, \\\n                                      AuxError\nfrom pygeodesy.auxilats.auxLat import AuxLat,  _ALL_DOCS\nfrom pygeodesy.basics import map1, _reverange\nfrom pygeodesy.constants import INF, NAN, isfinite, isinf, isnan, _0_0, _0_5, \\\n                               _1_0, _2_0, _N_2_0, _naninf, _over, _1_over\nfrom pygeodesy.elliptic import Elliptic as _Ef,  Fsum\n# from pygeodesy.errors import AuxError  # from .auxilats.auxily\n# from pygeodesy.fsums import Fsum  # from .elliptic\n# from pygeodesy.lazily import _ALL_DOCS  # from .auxilats.auxLat\nfrom pygeodesy.utily import atan1, atan2  # from .auxilats.auxily\n\nfrom math import cos, sin, sqrt\n\n__all__ = ()\n__version__ = '26.01.20'\n\n\nclass AuxDLat(AuxLat):\n    '''Class to compute C{Divided Differences} of I{Auxiliary}\n       latitudes and other C{Divided Differences} needed for\n       L{RhumbAux} and L{RhumbLineAux} calculations.\n    '''\n\n    def CParametric(self, Zeta1, Zeta2):\n        '''Short for C{.Dconvert(Aux.BETA, B{Zeta1}, B{Zeta2})}.\n        '''\n        return self.Dconvert(Aux.BETA, Zeta1, Zeta2)\n\n    def CRectifying(self, Zeta1, Zeta2):\n        '''Short for C{.Dconvert(Aux.MU, B{Zeta1}, B{Zeta2})}.\n        '''\n        return self.Dconvert(Aux.MU, Zeta1, Zeta2)\n\n    def _Datanhee(self, x, y):\n        # atan(e*sn(tphi))/e:\n        #  Datan(e*sn(x),e*sn(y))*Dsn(x,y)/Datan(x,y)\n        # asinh(e1*sn(fm1*tphi)):\n        #  Dasinh(e1*sn(fm1*x)), e1*sn(fm1*y)) *\n        # e1 * Dsn(fm1*x, fm1*y) *fm1 / (e * Datan(x,y))\n        # = Dasinh(e1*sn(fm1*x)), e1*sn(fm1*y)) *\n        #  Dsn(fm1*x, fm1*y) / Datan(x,y)\n        if self.f < 0:\n            e  =  self._e\n            r  = _Datan(e * _sn(x), e * _sn(y))\n        else:\n            x *=  self._fm1\n            y *=  self._fm1\n            e1 =  self._e1\n            r  = _Dasinh(e1 * _sn(x), e1 * _sn(y))\n        return _Dsn(x, y) * r\n\n    def Dconvert(self, auxout, Zeta1, Zeta2):\n        '''I{Divided Difference} of one auxiliary latitude wrt another.\n        '''\n        auxin = Zeta1._AUX\n        # assert Zeta2._AUX == auxin\n        try:\n            if auxout != auxin:\n                cs =  self._coeffs(auxout, auxin)\n                # assert len(cs) == self.ALorder\n                r  = _DClenshaw(True, Zeta1, Zeta2, cs, self.ALorder)\n            else:\n                r  = _1_0\n        except AuxError:  # no _coeffs\n            r = NAN\n        return r\n\n    def DE(self, X, Y):\n        # We assume that X and Y are in [-90d, 90d] and\n        # have the same sign. If not we would include\n        #    if (Xn.y() * Yn.y() < 0)\n        #      return d != 0 ? (E(X) - E(Y)) / d : 1\n        # The general formula fails for x = y = 0d and\n        # x = y = 90d.  Probably this is fixable (the\n        # formula works for other x = y.  But let's\n        # also stipulate that x != y.\n\n        # Make both y positive, so we can do the swap a <-> b trick\n        sx, cx, x =  X._yxr_normalized(True)\n        sy, cy, y =  Y._yxr_normalized(True)\n        k2,     d = -self._e12, (y - x)\n        # Switch prolate to oblate, then use formulas for k2 < 0\n        if self.f < 0:  # XXX and False?\n            sx, cx = cx, sx\n            sy, cy = cy, sy\n            d,  k2 = -d, self._e2\n        # See DLMF: Eqs (19.11.2) and (19.11.4) letting\n        Dt = _Dsin(x, y) * (sx + sy)\n        if Dt:\n            t   = _sxk2y(sx, sy, k2) + _sxk2y(sy, sx, k2)\n            Dt  = _over(Dt, t * (cx + cy))\n            t   =  d * Dt\n            t2  = _1_0 + t**2\n            Dt *= _2_0 / t2\n            sk2 = (d * Dt)**2 * k2\n            c2  = ((_1_0 - t) * (_1_0 + t) / t2)**2 if t else _1_0\n            # E(z)/sin(z)\n            Dt *= _Ef._fRF3RD(c2, _1_0, sk2) - k2 * sx * sy\n        return Dt\n\n    def DIsometric(self, Phi1, Phi2):\n        '''I{Divided Difference} of the isometric wrt the geographic latitude.\n        '''\n        tx, ty = Phi1.tan, Phi2.tan\n        if isnan(ty) or isnan(tx):  # PYCHOK no cover\n            r =  NAN\n        elif isinf(ty) or isinf(tx):  # PYCHOK no cover\n            r =  INF\n        else:  # psi = asinh(tan(Phi)) - e^2 * atanhee(tan(Phi))\n            r =  self._Datanhee(tx, ty) * self._e2\n            r = _over(_Dasinh(tx, ty) - r, _Datan(tx, ty))\n        return r\n\n    def DParametric(self, Phi1, Phi2):\n        '''I{Divided Difference} of the parametric wrt the geographic latitude.\n        '''\n        fm1, e2m1 = self._fm1, self._e2m1\n        tx,  ty   = Phi1.tan,  Phi2.tan\n        # DbetaDphi = Datan(fm1*tx, fm1*ty) * fm1 / Datan(tx, ty)\n        # Datan(x, y) =  1 / (1 + x^2)                if x == y\n        #             = (atan1(y) - atan1(x)) / (y-x) if x*y < 0\n        #             =  atan1(y-x, x*y + 1) / (y-x)  if x*y > 0\n        txy = tx * ty\n        if txy < 0 or (isinf(ty) and not tx):\n            _a =  atan1\n            r  = _a(fm1 * ty) - _a(fm1 * tx)\n            r  = _over(r, _a(ty) - _a(tx))\n        elif tx == ty:  # includes tx = ty = inf\n            if txy > 1:  # == tx**2\n                txy = _1_over(txy)\n                r   =  txy + e2m1\n            else:\n                r   =  txy * e2m1 + _1_0\n            r = _over((txy + _1_0) * fm1, r)\n        else:\n            if txy > 1:\n                tx  = _1_over(tx)\n                ty  = _1_over(ty)\n                txy = _1_over(txy)\n                t   =  txy + e2m1\n            else:\n                t   =  txy * e2m1 + _1_0\n            r =  ty - tx\n            r = _over(atan2(r * fm1, t), atan2(r, txy + _1_0))\n        return r\n\n    def DRectifying(self, Phi1, Phi2):\n        '''I{Divided Difference} of the rectifying wrt the geographic latitude.\n        '''\n        # Stipulate that Phi1 and Phi2 are in [-90d, 90d]\n        x, y = Phi1.toRadians, Phi2.toRadians\n        if y == x:  # isnear0\n            Mu1 = self.Rectifying(Phi1, diff=True)\n            tphi1, r = Phi1.tan, Mu1.diff\n            if isfinite(tphi1):\n                r *= _over(_sc(tphi1), _sc(Mu1.tan))**2\n            else:  # PYCHOK no cover\n                r  = _1_over(r)\n        elif (x * y) < 0:\n            r = _over(self.Rectifying(Phi2).toRadians -\n                      self.Rectifying(Phi1).toRadians, y - x)\n        else:\n            r  = _over(self.b, self.RectifyingRadius(True))\n            r *=  self.DE(*map1(self.Parametric, Phi1, Phi2))\n            r *=  self.DParametric(Phi1, Phi2)\n        return r  # or INF or NAN\n\n\ndef _DClenshaw(sinp, Zeta1, Zeta2, cs, K):\n    '''(INTERNAL) I{Divided Difference} of L{AuxLat._Clenshaw}.\n\n        @return: C{float} if B{C{sinp}} otherwise a C{Fsum}.\n    '''\n    s1, c1, r1 = Zeta1._yxr_normalized(False)\n    s2, c2, r2 = Zeta2._yxr_normalized(False)\n    Delta = r2 - r1\n    # Evaluate (Clenshaw(sinp, szeta2, czeta2, cs, K) -\n    #           Clenshaw(sinp, szeta1, czeta1, cs, K)) / Delta\n    #        or f = sin if sinp else cos\n    #           sum(cs[k] * (f((2*k+2) * Zeta2) -\n    #                        f((2*k+2) * Zeta2))) / Delta\n    #\n    # Delta is EITHER 1, giving the plain difference OR (Zeta2 - Zeta1)\n    # in radians, giving the I{Divided Difference}.  Other values will\n    # produce nonsense.\n    #\n    # Suffices a and b denote [1,1], [2,1] elements of matrix/vector\n    cp = cm = c2 * c1\n    t       = s2 * s1\n    cp -= t  # not +\n    cm += t  # not -\n\n    sp = s2 * c1\n    t  = c2 * s1\n    smd = ((sin(Delta) / Delta) if Delta != _1_0 else\n           (sp - t))  if Delta  else _1_0\n    sp += t\n\n    xa = cp * cm  * _2_0\n    xb = sp * smd * _N_2_0\n    xD = xb * Delta**2\n\n    if isfinite(xD) and isfinite(xb) and isfinite(xa):\n        U0a, U1a = Fsum(), Fsum()\n        U0b, U1b = Fsum(), Fsum()\n        for k in _reverange(K):  # assert len(cs) == K\n            # t = x . U0 - U1 + cs[k] * I\n            U1a -= U0a * xa + U0b * xD + cs[k]\n            U1b -= U0a * xb + U0b * xa\n            U1a, U0a = U0a, -U1a\n            U1b, U0b = U0b, -U1b\n        # F0a  = (sp if sinp else  cp) * cm\n        # F0b  = (cp if sinp else -sp) * smd\n        # Fm1a =   0 if sinp else   1  # Fm1b = 0\n        # return (U0b * F0a + U0a * F0b - U1b * Fm1a) * 2\n        if sinp:\n            U1b = _0_0\n        else:\n            sp, cp = cp, -sp\n        U0b *=  sp * cm\n        U0a *=  cp * smd\n        U0a +=  U0b\n        U0a  = _Dm(U0a, U1b, _2_0)\n        r = float(U0a) if sinp else U0a  # Fsum\n    else:\n        r = _naninf(xD, xb, xa)\n    return r\n\n\ndef _Dsin(x, y):  # see also .rhumb.ekx._Dsin\n    r = cos((x + y) * _0_5)\n    d =     (x - y) * _0_5\n    if d:\n        r *= sin(d) / d\n    return r\n\n\ndef _Dsn(x, y):\n    # (sn(y) - sn(x)) / (y - x)\n    if x != y:\n        snx, sny = _sn(x), _sn(y)\n        if (x * y) > 0:\n            scx, scy = _sc(x), _sc(y)\n            r = _over((snx / scy) + (sny / scx),\n                      (snx + sny) *  scy * scx)\n        else:\n            r = (sny - snx) / (y - x)\n    elif x:\n        r = _1_over(_sc(x) * (x**2 + _1_0))  # == 1 / sqrt3(x**2 + 1)\n    else:\n        r = _1_0\n    return r\n\n\ndef _sxk2y(sx, sy, k2):\n    # .DE helper\n    sy *= sy * k2\n    if sy:\n        try:\n            sx *= sqrt(_1_0 - sy)\n        except ValueError:  # domain error\n            sx  = NAN\n    return sx\n\n\n__all__ += _ALL_DOCS(AuxDLat)\n\n# **) MIT License\n#\n# Copyright (C) 2023-2026 -- mrJean1 at Gmail -- All Rights Reserved.\n#\n# Permission is hereby granted, free of charge, to any person obtaining a\n# copy of this software and associated documentation files (the \"Software\"),\n# to deal in the Software without restriction, including without limitation\n# the rights to use, copy, modify, merge, publish, distribute, sublicense,\n# and/or sell copies of the Software, and to permit persons to whom the\n# Software is furnished to do so, subject to the following conditions:\n#\n# The above copyright notice and this permission notice shall be included\n# in all copies or substantial portions of the Software.\n#\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL\n# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR\n# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\n# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n# OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "pygeodesy/auxilats/auxDST.py",
    "content": "\n# -*- coding: utf-8 -*-\n\nu'''Discrete Sine Transforms (AuxDST) in Python, transcoded from I{Karney}'s C++ class\nU{DST<https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1DST.html>}\nin I{GeographicLib version 2.2+}.\n\nCopyright (C) U{Charles Karney<mailto:Karney@Alum.MIT.edu>} (2022-2024) and licensed\nunder the MIT/X11 License.  For more information, see the U{GeographicLib\n<https://GeographicLib.SourceForge.io>} documentation.\n\n@note: Class L{AuxDST} requires U{numpy<https://PyPI.org/project/numpy>} to be\n       installed, version 1.16 or newer.\n'''\n# make sure int/int division yields float quotient, see .basics\nfrom __future__ import division as _; del _  # noqa: E702 ;\n\nfrom pygeodesy.auxilats.auxily import _Dm\nfrom pygeodesy.basics import isodd, neg, _reverange, _xnumpy\nfrom pygeodesy.constants import PI_2, PI_4, isfinite, _0_0, _0_5, _naninf\nfrom pygeodesy.fsums import Fsum as _Fsum\nfrom pygeodesy.karney import _2cos2x,  _ALL_DOCS\n# from pygeodesy.lazily import _ALL_DOCS  # from .karney\nfrom pygeodesy.props import property_RO, property_ROver\n\n__all__ = ()\n__version__ = '25.05.12'\n\n\nclass AuxDST(object):\n    '''Discrete Sine Transforms (DST) for I{Auxiliary} latitudes.\n\n       @see: I{Karney}'s C++ class U{DST\n             <https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1DST.html>}.\n    '''\n    _N = 0\n\n    def __init__(self, N):\n        '''New L{AuxDST} instance.\n\n           @arg N: Size, number of points (C{int}).\n        '''\n        if N > 0:\n            self._N = int(N)\n        # kissfft(N, False)  # size, inverse\n\n    @staticmethod\n    def evaluate(sinx, cosx, F, *N):\n        '''Evaluate the Fourier sum given the sine and cosine of the angle,\n           using precision I{Clenshaw} summation.\n\n           @arg sinx: The sin(I{sigma}) (C{float}).\n           @arg cosx: The cos(I{sigma}) (C{float}).\n           @arg F: The Fourier coefficients (C{float}[]).\n           @arg N: Optional, (smaller) number of terms to evaluate (C{int}).\n\n           @return: Precison I{Clenshaw} sum (C{float}).\n\n           @see: Methods C{AuxDST.integral} and C{AuxDST.integral2}.\n        '''\n        a = -_2cos2x(cosx, sinx)\n        if isfinite(a):\n            Y0, Y1 = _Fsum(), _Fsum()\n            n  = _len_N(F, *N)\n            Fn =  list(F[:n])\n            _F =  Fn.pop\n            if isodd(n):\n                Y0 -= _F()\n            while Fn:  # Y0, Y1 negated\n                Y1 -= Y0 * a + _F()\n                Y0 -= Y1 * a + _F()\n            r = float(_Dm(-Y0, Y1, sinx))\n        else:\n            r = _naninf(-a)\n        return r\n\n    @property_ROver\n    def _fft_numpy(self):\n        '''(INTERNAL) Get the C{numpy.fft} module, I{once}.\n        '''\n        return _xnumpy(AuxDST, 1, 16).fft  # overwrite property_ROver\n\n    def _fft_real(self, data):\n        '''(INTERNAL) NumPy's I{kissfft}-like C{transform_real} function,\n           taking C{float}[:N] B{C{data}} and returning C{complex}[:N*2].\n        '''\n        # <https://GitHub.com/mborgerding/kissfft/blob/master/test/testkiss.py>\n        return self._fft_numpy.rfftn(data)\n\n    def _ffts(self, data, cIV):\n        '''(INTERNAL) Compute the DST-III or DST-IV FFTransforms.\n\n           @arg data: Elements DST-III[0:N+1] or DST-IV[0:N] (C{float}[])\n                      with DST_III[0] = 0.\n           @arg cIV: If C{True}, DST-IV, otherwise DST-III.\n\n           @return: FFTransforms (C{float}[0:N]).\n        '''\n        T, N = (), self.N\n        if N > 0:\n            N2 = N * 2\n            d  = tuple(data)\n            # assert len(d) == N + (0 if cIV else 1)\n\n            if cIV:  # DST-IV\n                from cmath import exp as _cexp\n\n                def _cF(c, j, r=-PI_4 / N):\n                    return c * _cexp(complex(0, r * j))\n\n                i = 0\n            else:  # DST-III\n                i = 1\n                # assert d[0] == _0_0\n\n                def _cF(c, *unused):  # PYCHOK redef\n                    return c\n\n            d += tuple(reversed(d[i:N]))  # i == len(d) - N\n            d += tuple(map(neg, d[:N2]))\n            c  = self._fft_real(d)  # complex[0:N*2]\n            n2 = float(-N2)\n            T  = tuple(_cF(c[j], j).imag / n2 for j in range(1, N2, 2))\n        return T\n\n    def _ffts2(self, data, F):\n        '''(INTERNAL) Doubled FFTransforms.\n\n           @arg data: Grid centers (C{float}[N]).\n           @arg F: The transforms (C{float}[N])\n\n           @return: Doubled FFTransforms (C{float}[N*2]).\n        '''\n        __2 = _0_5  # N = self._N\n        # copy DST-IV order N transform to D[0:N]\n        D = self._ffts(data, True)\n        # assert len(D) == N and len(F) >= N\n        # (DST-IV order N - DST-III order N) / 2\n        M = tuple((d - f) * __2 for d, f in zip(D, F))  # strict=False\n        # (DST-IV order N + DST-III order N) / 2\n        P = tuple((d + f) * __2 for d, f in zip(D, F))  # strict=False\n        # assert len(M) == len(P) == self._N\n        return P + tuple(reversed(M))\n\n    @staticmethod\n    def integral(sinx, cosx, F, *N):\n        '''Evaluate the integral of Fourier sum given the sine and\n           cosine of the angle, using precision I{Clenshaw} summation.\n\n           @arg sinx: The sin(I{sigma}) (C{float}).\n           @arg cosx: The cos(I{sigma}) (C{float}).\n           @arg F: The Fourier coefficients (C{float}[]).\n           @arg N: Optional, C{len(B{F})} or a (smaller) number of\n                   terms to evaluate (C{int}).\n\n           @return: Precison I{Clenshaw} intergral (C{float}).\n\n           @see: Methods C{AuxDST.evaluate} and C{AuxDST.integral2}.\n        '''\n        a = _2cos2x(cosx - sinx, cosx + sinx)\n        if isfinite(a):\n            Y0, Y1 = _Fsum(), _Fsum()\n            for r in _reverscaled(F, *N):\n                Y1 -= Y0 * a + r\n                Y1, Y0 = Y0, -Y1\n            r = float(_Dm(Y1, Y0, cosx))\n        else:\n            r = _naninf(a)\n        return r\n\n    @staticmethod\n    def integral2(sinx, cosx, siny, cosy, F, *N):  # PYCHOK no cover\n        '''Compute the definite integral of Fourier sum given the\n           sine and cosine of the angles at the end points, using\n           precision I{Clenshaw} summation.\n\n           @arg sinx: The sin(I{sigma1}) (C{float}).\n           @arg cosx: The cos(I{sigma1}) (C{float}).\n           @arg siny: The sin(I{sigma2}) (C{float}).\n           @arg cosy: The cos(I{sigma2}) (C{float}).\n           @arg F: The Fourier coefficients (C{float}[]).\n           @arg N: Optional, C{len(B{F})} or a (smaller) number of\n                   terms to evaluate (C{int}).\n\n           @return: Precison I{Clenshaw} integral (C{float}).\n\n           @see: Methods C{AuxDST.evaluate} and C{AuxDST.integral}.\n        '''\n        #  2 * cos(y - x) * cos(y + x) -> 2 * cos(2 * x)\n        c =  _2cos2x(cosy * cosx, siny * sinx)\n        # -2 * sin(y - x) * sin(y + x) -> 0\n        s = -_2cos2x(siny * cosx, cosy * sinx)\n        if isfinite(c) and isfinite(s):\n            Y0, Y1 = _Fsum(), _Fsum()\n            Z0, Z1 = _Fsum(), _Fsum()\n            for r in _reverscaled(F, *N):\n                Y1 -= Y0 * c + Z0 * s + r\n                Z1 -= Y0 * s + Z0 * c\n                Y1, Y0 = Y0, -Y1\n                Z1, Z0 = Z0, -Z1\n            r = float(_Dm(Y1, Y0, cosy - cosx) +\n                      _Dm(Z1, Z0, cosy + cosx))\n        else:\n            r = _naninf(c, s)\n        return r\n\n    @property_RO\n    def N(self):\n        '''Get this DST's size, number of points (C{int}).\n        '''\n        return self._N\n\n    def refine(self, f, F, *sentinel):\n        '''Refine the Fourier series by doubling the sampled points.\n\n           @arg f: Single-argument callable (C{B{f}(sigma)}).\n           @arg F: Initial Fourier series coefficients (C{float}[:N]).\n           @arg sentinel: Optional coefficient(s) to append (C{float}(s)).\n\n           @return: Fourier series coefficients (C{float}[:N*2]).\n\n           @note: Any initial C{B{F}[N:]} sentinel coefficients are ignored.\n        '''\n        def _data(_f, N):  # [:N]\n            if N > 0:\n                r = PI_4 / N\n                for j in range(1, N*2, 2):\n                    yield _f(r * j)\n\n        # F = F[:self.N] handled by zip strict=False in ._ffts2 above\n        return self._ffts2(_data(f, self.N), F) + sentinel\n\n    def reset(self, N):\n        '''Reset this DST.\n\n           @arg N: Size, number of points (C{int}).\n\n           @return: The new size (C{int}, non-negative).\n        '''\n        self._N = N = max(0, N)\n        # kissfft.assign(N*2, False)  # \"reset\" size, inverse\n        return N\n\n    def transform(self, f):\n        '''Determine C{[N + 1]} terms in the Fourier series.\n\n           @arg f: Single-argument callable (C{B{f}(sigma)}).\n\n           @return: Fourier series coefficients (C{float}[:N+1],\n                    leading 0).\n        '''\n        def _data(_f, N):  # [:N + 1]\n            yield _0_0  # data[0] = 0\n            if N > 0:\n                r = PI_2 / N\n                for i in range(1, N + 1):\n                    yield _f(r * i)\n\n        return self._ffts(_data(f, self.N), False)\n\n\ndef _len_N(F, *N):\n    # Adjusted C{len(B{F})}.\n    return min(len(F), *N) if N else len(F)\n\n\ndef _reverscaled(F, *N):\n    # Yield F[:N], reversed and scaled\n    for n in _reverange(_len_N(F, *N)):\n        yield F[n] / float(n * 2 + 1)\n\n\n__all__ += _ALL_DOCS(AuxDST)\n\n# **) MIT License\n#\n# Copyright (C) 2023-2026 -- mrJean1 at Gmail -- All Rights Reserved.\n#\n# Permission is hereby granted, free of charge, to any person obtaining a\n# copy of this software and associated documentation files (the \"Software\"),\n# to deal in the Software without restriction, including without limitation\n# the rights to use, copy, modify, merge, publish, distribute, sublicense,\n# and/or sell copies of the Software, and to permit persons to whom the\n# Software is furnished to do so, subject to the following conditions:\n#\n# The above copyright notice and this permission notice shall be included\n# in all copies or substantial portions of the Software.\n#\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL\n# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR\n# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\n# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n# OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "pygeodesy/auxilats/auxLat.py",
    "content": "\n# -*- coding: utf-8 -*-\n\nu'''Class L{AuxLat} transcoded to Python from I{Karney}'s C++ class U{AuxLatitude\n<https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1AuxLatitude.html>}\nin I{GeographicLib version 2.2+}.\n\nCopyright (C) U{Charles Karney<mailto:Karney@Alum.MIT.edu>} (2022-2024) and licensed\nunder the MIT/X11 License.  For more information, see the U{GeographicLib\n<https://GeographicLib.SourceForge.io>} documentation.\n\n@see: U{Auxiliary latitudes<https://GeographicLib.SourceForge.io/C++/doc/auxlat.html>}\n      U{On auxiliary latitudes<https://ArXiv.org/abs/2212.05818>}.\n'''\n# make sure int/int division yields float quotient, see .basics\nfrom __future__ import division as _; del _  # noqa: E702 ;\n\nfrom pygeodesy.auxilats.auxAngle import AuxAngle, AuxBeta, AuxChi, _AuxClass, \\\n                                        AuxMu, AuxPhi, AuxTheta, AuxXi\nfrom pygeodesy.auxilats.auxily import Aux, _sc, _sn\nfrom pygeodesy.auxilats._CX_Rs import _Rdict, _Rkey, _Rtuple\nfrom pygeodesy.basics import _isin, _reverange, _xinstanceof,  _passarg\nfrom pygeodesy.constants import INF, MAX_EXP, MIN_EXP, NAN, PI_2, PI_4, _EPSqrt, \\\n                               _0_0, _0_0s, _0_1, _0_5, _1_0, _2_0, _3_0, _360_0, \\\n                               _log2, _over, isfinite, isinf, isnan\nfrom pygeodesy.datums import _ellipsoidal_datum, _WGS84, \\\n                              Ellipsoid, _name__, _EWGS84\n# from pygeodesy.ellipsoids import Ellipsoid, _EWGS84  # from .datums\nfrom pygeodesy.elliptic import Elliptic as _Ef\nfrom pygeodesy.errors import AuxError, _xkwds_not, _xkwds_pop2, _Xorder\n# from pygeodesy.fmath import cbrt  # from .karney\nfrom pygeodesy.fsums import Fsum, _Fsumf_, _sum\n# from pygeodesy.internals import _passarg  # from .basics\nfrom pygeodesy.interns import NN, _not_scalar_, _UNDER_\nfrom pygeodesy.karney import _2cos2x, _polynomial,  _ALL_DOCS, cbrt\n# from pygeodesy.lazily import _ALL_DOCS  # from .karney\n# from pygeodesy.named import _name__  # from .datums\nfrom pygeodesy.props import Property, Property_RO, _update_all\nfrom pygeodesy.units import _isDegrees, _isRadius, Degrees, Meter\nfrom pygeodesy.utily import atan1, atan2\n\nfrom math import asinh, copysign, cosh, fabs, sin, sinh, sqrt\ntry:\n    from math import exp2 as _exp2\nexcept ImportError:  # Python 3.11-\n\n    def _exp2(x):\n        return pow(_2_0, x)\n\n__all__ = ()\n__version__ = '26.01.20'\n\n_TRIPS = 1024  # XXX 2 or 3?\n\n\nclass AuxLat(AuxAngle):\n    '''Base class for accurate conversion between I{Auxiliary} latitudes\n       on an ellipsoid.\n\n       Latitudes are represented by L{AuxAngle} instances in order to\n       maintain precision near the poles, I{Authalic} latitude C{Xi},\n       I{Conformal} C{Chi}, I{Geocentric} C{Theta}, I{Geographic} C{Phi},\n       I{Parametric} C{Beta} and I{Rectifying} C{Mu}.\n\n       @see: I{Karney}'s C++ class U{AuxLatitude\n             <https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1AuxLatitude.html>}.\n    '''\n    _csc  =  dict()  # global coeffs cache: [aL][k], upto max(k) * (4 + 6 + 8) floats\n    _E    = _EWGS84\n#   _Lmax =  0       # overwritten below\n    _mAL  =  6       # 4, 6 or 8 aka Lmax\n\n    def __init__(self, a_earth=_EWGS84, f=None, b=None, **ALorder_name):\n        '''New L{AuxLat} instance on an ellipsoid or datum.\n\n           @arg a_earth: Equatorial radius, semi-axis (C{meter}) or an ellipsoid or\n                         datum (L{Datum}, L{Ellipsoid}, L{Ellipsoid2} or L{a_f2Tuple}).\n           @kwarg f: Flattening: M{(a - b) / a} (C{float}, near zero for spherical),\n                     required if B{C{a_earth}} is C{scalar} and C{B{b}=None}.\n           @kwarg b: Optional polar radius, semi-axis (C{meter}, required if B{C{a_earth}}\n                     is C{scalar} and C{B{f}=None}.\n           @kwarg ALorder_name: Optional C{B{name}=NN} (C{str}) and optional order of\n                          this L{AuxLat} C{B{ALorder}=6}, see property C{ALorder}.\n        '''\n        if ALorder_name:\n            M = self._mAL\n            m, name = _xkwds_pop2(ALorder_name, ALorder=M)\n            if m != M:\n                self.ALorder = m\n        else:\n            name = NN\n        try:\n            if not _isin(a_earth, _EWGS84, _WGS84):\n                n = _name__(name, name__=AuxLat)\n                if b is f is None:\n                    E = _ellipsoidal_datum(a_earth, name=n).ellipsoid  # XXX raiser=_earth_\n                elif _isRadius(a_earth):\n                    E =  Ellipsoid(a_earth, f=f, b=b, name=_UNDER_(NN, n))\n                else:\n                    raise ValueError(_not_scalar_)\n                self._E = E\n            elif not (b is f is None):\n                # turn _UnexpectedError into AuxError\n                name = _name__(name, **_xkwds_not(None, b=b, f=f))\n\n            if name:\n                self.name = name\n        except Exception as x:\n            raise AuxError(a_earth=a_earth, f=f, b=b, cause=x)\n\n    @Property_RO\n    def a(self):\n        '''Get the C{ellipsoid}'s equatorial radius (C{meter}, conventionally).\n        '''\n        return self.ellipsoid.a\n\n    equatoradius = a\n\n    @Property\n    def ALorder(self):\n        '''Get the I{AuxLat} order (C{int}, 4, 6 or 8).\n        '''\n        return self._mAL\n\n    @ALorder.setter  # PYCHOK setter!\n    def ALorder(self, order):\n        '''Set the I{AuxLat} order (C{int}, 4, 6 or 8).\n        '''\n        m = _Xorder(_AR2Coeffs, AuxError, ALorder=order)\n        if self._mAL != m:\n            _update_all(self)\n            self._mAL = m\n\n    def _atanhee(self, tphi):  # see Ellipsoid._es_atanh, .albers._atanhee\n        # atanh(e * sphi) = asinh(e' * sbeta)\n        f =  self.f\n        s = _sn(self._fm1 * tphi) if f > 0 else _sn(tphi)\n        if f:  # atanh(e * sphi) = asinh(e' * sbeta)\n            e =  self._e\n            s = _over(atan1(e * s) if f < 0 else asinh(self._e1 * s), e)\n        return s\n\n    def Authalic(self, Phi, **diff_name):\n        '''Convert I{Geographic} to I{Aunthalic} latitude.\n\n           @arg Phi: Geographic latitude (L{AuxAngle}).\n           @kwarg diff_name: Use C{B{diff}=True} to set C{diff}\n                             optional C{B{name}=NN}.\n\n           @return: Parametric latitude, C{Beta} (L{AuxAngle}).\n        '''\n        _xinstanceof(AuxAngle, Phi=Phi)\n        # assert Phi._AUX == Aux.PHI\n        tphi = fabs(Phi.tan)\n        if isfinite(tphi) and tphi and self.f:\n            y, x =  Phi._yx_normalized\n            q    =  self._q\n            qv   =  self._qf(tphi)\n            Dq2  =  self._Dq(tphi)\n            Dq2 *= (q + qv) / (fabs(y) + _1_0)  # _Dq(-tphi)\n            d, n = _diff_name2(Phi, **diff_name)\n            Xi   =  AuxXi(copysign(qv, Phi.y), x * sqrt(Dq2), name=n)\n\n            if d:\n                if isnan(tphi):\n                    d = self._e2m1_sq2\n                else:\n                    c  =  self.Parametric(Phi)._x_normalized\n                    d  = _over(c, Xi._x_normalized)**3\n                    d *= _over(c, x) * _over(_2_0, q)\n                Xi._diff = d\n        else:\n            Xi = AuxXi(*Phi._yx)  # diff default\n        # assert Xi._AUX == Aux.XI\n        return Xi\n\n    def AuthalicRadius2(self, exact=False, f_max=_0_1):\n        '''Get the I{Authalic} radius I{squared}.\n\n           @kwarg exact: If C{True}, use the exact expression, otherwise\n                         the I{Taylor} series.\n           @kwarg f_max: C{Flattening} not to exceed (C{float}).\n\n           @return: Authalic radius I{squared} (C{meter} I{squared}, same\n                    units as the ellipsoid axes).\n\n           @raise AuxError: If C{B{exact}=False} and C{abs(flattening)}\n                            exceeds C{f_max}.\n        '''\n        f = self.f\n        if exact or not f:\n            c2 = self.ellipsoid.b2 * self._q  # == ellipsoid.c2x * 2\n        elif fabs(f) < f_max:\n            # Using a * (a + b) / 2 as the multiplying factor leads to a rapidly\n            # converging series in n.  Of course, using this series isn't really\n            # necessary, since the exact expression is simple to evaluate.  However,\n            # we do it for consistency with RectifyingRadius and, presumably, the\n            # roundoff error is smaller compared to that for the exact expression.\n            m   =  self.ALorder\n            c2  = _polynomial(self._n, _AR2Coeffs[m], 0, m)\n            c2 *=  self.a * (self.a + self.b)\n        else:\n            raise AuxError(exact=exact, f=f, f_max=f_max)\n        return c2 * _0_5\n\n    @Property_RO\n    def b(self):\n        '''Get the C{ellipsoid}'s polar radius (C{meter}, conventionally).\n        '''\n        return self.ellipsoid.b  # a * (_1_0 - f)\n\n    polaradius = b\n\n    def _coeffs(self, auxout, auxin):\n        # Get the polynomial coefficients as 4-, 6- or 8-tuple\n        aL = self.ALorder  # aka Lmax\n        if auxout == auxin:\n            return _0_0s(aL)  # uncached\n\n        k = Aux._1d(auxout, auxin)\n        try:  # cached\n            return AuxLat._csc[aL][k]\n        except KeyError:\n            pass\n\n        try:\n            Cx = self._CXcoeffs[auxout][auxin]  # _Rtuple!\n        except KeyError as x:\n            raise AuxError(auxout=auxout, auxin=auxin, cause=x)\n\n        d = x = n = self._n\n        if Aux.use_n2(auxin) and Aux.use_n2(auxout):\n            x = self._n2\n\n            def _m(aL):\n                for m in _reverange(aL):\n                    yield m // 2\n        else:\n            _m = _reverange  # PYCHOK expected\n\n        i  =  0\n        cs = []\n        _p = _polynomial\n        for m in _m(aL):\n            j  = i + m + 1  # order m = j - i - 1\n            cs.append(_p(x, Cx, i, j) * d)\n            d *= n\n            i  = j\n        # assert i == len(Cx) and len(cs) == aL\n        AuxLat._csc.setdefault(aL, {})[k] = cs = tuple(cs)\n        return cs\n\n    def Conformal(self, Phi, **diff_name):\n        '''Convert I{Geographic} to I{Conformal} latitude.\n\n           @arg Phi: Geographic latitude (L{AuxAngle}).\n           @kwarg diff_name: Use C{B{diff}=True} to set C{diff}\n                             and an optional C{B{name}=NN}.\n\n           @return: Conformal latitude, C{Chi} (L{AuxAngle}).\n        '''\n        _xinstanceof(AuxAngle, Phi=Phi)\n        # assert Phi._AUX == Aux.PHI\n        tphi = tchi = fabs(Phi.tan)\n        if isfinite(tphi) and tphi and self.f:\n            sig   =  sinh(self._atanhee(tphi) * self._e2)\n            scsig = _sc(sig)\n            scphi = _sc(tphi)\n            if self.f > 0:\n                # The general expression for tchi is\n                #   tphi * scsig - sig * scphi\n                # This involves cancellation if f > 0, so change to\n                #   (tphi - sig) * (tphi + sig) / (tphi * scsig + sig * scphi)\n                # To control overflow, write as (sigtphi = sig / tphi)\n                #   (tphi - sig) * (1 + sigtphi) / (scsig + sigtphi * scphi)\n                sigtphi = sig / tphi\n                if sig < (tphi * _0_5):\n                    t = tphi - sig\n                else:\n                    def _asinh_2(x):\n                        return asinh(x) * _0_5\n                    # Still possibly dangerous cancellation in tphi - sig.\n                    # Write tphi - sig = (1 - e) * Dg(1, e)\n                    #   Dg(x, y) = (g(x) - g(y)) / (x - y)\n                    #   g(x) = sinh(x * atanh(sphi * x))\n                    # Note sinh(atanh(sphi)) = tphi\n                    # Turn the crank on divided differences, substitute\n                    #   sphi = tphi / _sc(tphi)\n                    #   atanh(x) = asinh(x / sqrt(1 - x^2))\n                    e   = self._e\n                    em1 = self._e2m1 / (_1_0 + e)\n                    # assert em1 != 0\n                    scb = self._scbeta(tphi)\n                    scphib =  scphi / scb  # sec(phi) / sec(beta)\n                    atphib = _asinh_2(tphi * e / scb)  # atanh(e * sphi)\n                    atphi  = _asinh_2(tphi)  # atanh(sphi)\n                    t      = _asinh_2(em1 * (tphi * scphib)) / em1\n                    try:\n                        Dg = _Fsumf_(atphi, atphib, t, e * t)\n                    except ValueError:  # Fsum(NAN) exception\n                        Dg = _sum((atphi, atphib, t, e * t))\n                    e *= atphib\n                    t  = atphi - e\n                    if t:  # sinh(0) == 0\n                        Dg *= sinh(t) / t * cosh(atphi + e) * em1\n                        t   = float(Dg)  # tphi - sig\n                tchi = _over(t * (_1_0 + sigtphi),\n                         scsig + scphi * sigtphi) if t else _0_0\n            else:\n                tchi =  tphi * scsig - sig * scphi\n\n        d, n = _diff_name2(Phi, **diff_name)\n        Chi  =  AuxChi(tchi, name=n).copyquadrant(Phi)\n\n        if d:\n            if isinf(tphi):  # PYCHOK np cover\n                d = self._conformal_diff\n            else:\n                d = self.Parametric(Phi)._x_normalized\n                if d:\n                    d = _over(d, Chi._x_normalized) * \\\n                        _over(d, Phi._x_normalized) * self._e2m1\n            Chi._diff = d\n        # assrt Chi._AUX == Aux.CHI\n        return Chi\n\n    @Property_RO\n    def _conformal_diff(self):  # PYCHOK no cover\n        '''(INTERNAL) Constant I{Conformal} diff.\n        '''\n        e = self._e\n        if self.f > 0:\n            ss = sinh(asinh(self._e1) * e)\n            d = _over(_1_0, _sc(ss) + ss)\n        elif e:\n            ss = sinh(-atan1(e) * e)\n            d = _sc(ss) - ss\n        else:\n            d = _1_0\n        return d\n\n    def convert(self, auxout, Zeta_d, exact=False):\n        # Convert I{Auxiliary} or I{scalar} latitude\n        Z = d = Zeta_d\n        if isinstance(Z, AuxAngle):\n            A, auxin = _AuxClass(auxout), Z._AUX\n            if auxin == auxout:\n                pass\n            elif not (isfinite(Z.tan) and Z.tan):  # XXX\n                Z = A(*Z._yx, aux=auxout, name=Z.name)\n            elif exact:\n                p = Aux.power(auxout, auxin)\n                if p is None:\n                    P = self._fromAux(Z)  # Phi\n                    Z = self._toAux(auxout, P)\n                    Z._iter = P.iteration\n                else:\n                    y, x = Z._yx\n                    if p:\n                        y *= pow(self._fm1, p)\n                    Z = A(y, x, aux=auxout, name=Z.name)\n            else:\n                cs =  self._coeffs(auxout, auxin)\n                yx =  Z._yx_normalized\n                Z  =  A(*yx, aux=auxout, name=Z.name)\n                # assert Z._yx == yx\n                r  = _Clenshaw(True, Z, cs, self.ALorder)\n                Z +=  AuxAngle.fromRadians(r, aux=auxout)\n            # assert Z._AUX == auxout\n            return Z\n\n        elif _isDegrees(d):\n            Z  = AuxPhi.fromDegrees(d)\n            d  = round((d - Z.toDegrees) / _360_0) * _360_0\n            d += self.convert(auxout, Z, exact).toDegrees\n            return Degrees(d, name=Aux.Greek(auxout))\n\n        raise AuxError(auxout=auxout, Zeta_d=Zeta_d, exact=exact)\n\n    @Property_RO\n    def _CXcoeffs(self):  # in .auxilats.__main__, .testAuxilats\n        '''(INTERNAL) Get the C{CX_4}, C{_6} or C{_8} coefficients.\n        '''\n        return Aux._CXcoeffs(self.ALorder)\n\n    def _Dq(self, tphi):\n        # I{Divided Difference} of (q(1) - q(sphi)) / (1 - sphi).\n        sphi = _sn(tphi)\n        if tphi > 0:\n            scphi = _sc(tphi)\n            d = _1_0 / (scphi**2 * (_1_0 + sphi))  # XXX - sphi\n            if d:\n                # General expression for _Dq(1, sphi) is\n                # atanh(e * d / (1 - e2 * sphi)) / (e * d) +\n                # (1 + e2 * sphi) / ((1 - e2 * sphi * sphi) * e2m1)\n                # with atanh(e * d / (1 - e2 * sphi)) =\n                #      atanh(e * d * scphi / (scphi - e2 * tphi))\n                e2m1, ed = self._e2m1, (self._e * d)\n                if e2m1 and ed:\n                    e2 = self._e2\n                    if e2 > 0:  # assert self.f > 0\n                        scb =  self._scbeta(tphi)\n                        q   =  scphib = scphi / scb\n                        q  *= (scphi + tphi * e2) / (e2m1 * scb)\n                        q  +=  asinh(self._e1 * d * scphib) / ed\n                    else:\n                        s2  =  sphi * e2\n                        q   = (_1_0 + s2) / ((_1_0 - sphi * s2) * e2m1)\n                        q  += (atan2(ed, _1_0 - s2) / ed) if e2 < 0 else _1_0\n                else:  # PYCHOK no cover\n                    q = INF\n            else:  # PYCHOK no cover\n                q = self._2_e2m12\n        else:  # not reached, open-coded in .Authalic\n            q = _over(self._q - self._qf(tphi), _1_0 - sphi)\n        return q\n\n    @Property_RO\n    def _e(self):  # unsigned, (1st) eccentricity\n        return self.ellipsoid.e  # sqrt(fabs(self._e2))\n\n    @Property_RO\n    def _e1(self):\n        return sqrt(fabs(self._e12))\n\n    @Property_RO\n    def _e12(self):\n        return _over(self._e2, _1_0 - self._e2)\n\n    @Property_RO\n    def _e12p1(self):\n        return _1_0 / self._e2m1\n\n    @Property_RO\n    def _e2(self):  # signed, (1st) eccentricity squared\n        return self.ellipsoid.e2\n\n    @Property_RO\n    def _e2m1(self):  # 1 less 1st eccentricity squared\n        return self.ellipsoid.e21  # == ._fm1**2\n\n    @Property_RO\n    def _e2m1_sq2(self):\n        return self._e2m1 * sqrt(self._q * _0_5)\n\n    @Property_RO\n    def _2_e2m12(self):\n        return _2_0 / self._e2m1**2\n\n    @Property_RO\n    def _Ef_fRG_a2b2_PI_4(self):\n        E = self.ellipsoid\n        return _Ef.fRG(E.a2, E.b2) / PI_4\n\n    @Property_RO\n    def ellipsoid(self):\n        '''Get the ellipsoid (L{Ellipsoid}).\n        '''\n        return self._E\n\n    @Property_RO\n    def f(self):\n        '''Get the C{ellipsoid}'s flattening (C{scalar}).\n        '''\n        return self.ellipsoid.f\n\n    flattening = f\n\n    @Property_RO\n    def _fm1(self):  # 1 - flattening\n        return self.ellipsoid.f1\n\n    def _fromAux(self, Zeta, **name):\n        '''Convert I{Auxiliary} to I{Geographic} latitude.\n\n           @arg Zeta: Auxiliary latitude (L{AuxAngle}).\n           @kwarg name: Optional C{B{name}=NN} (C{str}).\n\n           @return: Geographic latitude, I{Phi} (L{AuxAngle}).\n        '''\n        _xinstanceof(AuxAngle, Zeta=Zeta)\n        aux =  Zeta._AUX\n        n   = _name__(name, _or_nameof=Zeta)\n        f   =  self._fromAuxCase.get(aux, None)\n        if f is None:\n            Phi = AuxPhi(NAN, name=n)\n        elif callable(f):\n            t   =  self._fm1\n            t  *=  f(t)\n            Phi = _Newton(t, Zeta, self._toZeta(aux), name=n)\n        else:  # assert isscalar(f)\n            y, x = Zeta._yx\n            Phi  = AuxPhi(y / f, x, name=n)\n        # assert Phi._AUX == Aux.PHI\n        return Phi\n\n    @Property_RO\n    def _fromAuxCase(self):\n        '''(INTERNAL) switch(auxin): ...\n        '''\n        return {Aux.AUTHALIC:         cbrt,\n                Aux.CONFORMAL:    _passarg,\n                Aux.GEOCENTRIC: self._e2m1,\n                Aux.GEOGRAPHIC:       _1_0,\n                Aux.PARAMETRIC:  self._fm1,\n                Aux.RECTIFYING:       sqrt}\n\n    def Geocentric(self, Phi, **diff_name):\n        '''Convert I{Geographic} to I{Geocentric} latitude.\n\n           @arg Phi: Geographic latitude (L{AuxAngle}).\n           @kwarg diff_name: Use C{B{diff}=True} to set C{diff}\n                             and an optional C{B{name}=NN}.\n\n           @return: Geocentric latitude, C{Phi} (L{AuxAngle}).\n        '''\n        _xinstanceof(AuxAngle, Phi=Phi)\n        # assert Phi._AUX == Aux.PHI\n        d, n  = _diff_name2(Phi, **diff_name)\n        Theta =  AuxTheta(Phi.y * self._e2m1, Phi.x, name=n)\n        if d:\n            Theta._diff = self._e2m1\n        return Theta\n\n    def Geodetic(self, Phi, **name):  # PYCHOK no cover\n        '''Convert I{Geographic} to I{Geodetic} latitude.\n\n           @arg Phi: Geographic latitude (L{AuxAngle}).\n           @kwarg name: Optional C{B{name}=NN} (C{str}).\n\n           @return: Geodetic latitude, C{Phi} (L{AuxAngle}).\n        '''\n        _xinstanceof(AuxAngle, Phi=Phi)\n        # assert Phi._AUX == Aux.PHI\n        _, n = _diff_name2(Phi, **name)\n        return AuxPhi(Phi, name=n)\n\n    @Property_RO\n    def _n(self):  # 3rd flattening\n        return self.ellipsoid.n\n\n    @Property_RO\n    def _n2(self):\n        return self._n**2\n\n    def Parametric(self, Phi, **diff_name):\n        '''Convert I{Geographic} to I{Parametric} latitude.\n\n           @arg Phi: Geographic latitude (L{AuxAngle}).\n           @kwarg diff_name: Use C{B{diff}=True} to set C{diff}\n                             and an optional C{B{name}=NN}.\n\n           @return: Parametric latitude, C{Beta} (L{AuxAngle}).\n        '''\n        _xinstanceof(AuxAngle, Phi=Phi)\n        # assert Phi._AUX == Aux.PHI\n        d, n = _diff_name2(Phi, **diff_name)\n        Beta =  AuxBeta(Phi.y * self._fm1, Phi.x, name=n)\n        if d:\n            Beta._diff = self._fm1\n        return Beta\n\n    Reduced = Parametric\n\n    @Property_RO\n    def _q(self):  # constant _q\n        q, f = self._e12p1, self.f\n        if f:\n            e  =  self._e\n            q += _over(asinh(self._e1) if f > 0 else atan1(e), e)\n        else:\n            q += _1_0\n        return q\n\n    def _qf(self, tphi):\n        # function _q: atanh(e * sphi) / e + sphi / (1 - (e * sphi)^2)\n        scb  = self._scbeta(tphi)\n        return self._atanhee(tphi) + (tphi / scb) * (_sc(tphi) / scb)\n\n    def _qIntegrand(self, beta):\n        # pbeta(beta) = integrate(q(beta), beta), with beta in radians\n        #   q(beta) = (1-f) * (sin(xi) - sin(chi)) / cos(phi)\n        #           = (1-f) * (cos(chi) - cos(xi)) / cos(phi) *\n        #                     (cos(xi) + cos(chi)) / (sin(xi) + sin(chi))\n        # Fit q(beta)/cos(beta) with Fourier transform\n        #   q(beta)/cos(beta) = sum(c[k] * sin((2*k+1)*beta), k, 0, K-1)\n        # then the integral is\n        #   pbeta = sum(d[k] * cos((2*k+2)*beta), k, 0, K-1)\n        # where\n        #   d[k] = -1/(4*(k+1)) * (c[k] + c[k+1]) for k in 0..K-2\n        #   d[K-1] = -1/(4*K) * c[K-1]\n        Beta = AuxBeta.fromRadians(beta)\n        if Beta.x:  # and self._fm1:\n            Ax, _cv    = Aux, self.convert\n            Phi        = _cv(Ax.PHI, Beta, exact=True)\n            schi, cchi = _cv(Ax.CHI, Phi,  exact=True)._yx_normalized\n            sxi,  cxi  = _cv(Ax.XI,  Phi,  exact=True)._yx_normalized\n            r  = (sxi - schi) if fabs(schi) < fabs(cchi) else \\\n                 _over(_2cos2x(cchi, cxi), (sxi + schi) * _2_0)\n            r *= _over(self._fm1, Phi._x_normalized * Beta._x_normalized)\n        else:  # beta == PI_2, PI3_2, ...\n            r  = _0_0  # XXX 0 avoids NAN summation exceptions\n        return r\n\n    def Rectifying(self, Phi, **diff_name):\n        '''Convert I{Geographic} to I{Rectifying} latitude.\n\n           @arg Phi: Geographic latitude (L{AuxAngle}).\n           @kwarg diff_name: Use C{B{diff}=True} to set C{diff}\n                             and an optional C{B{name}=NN}.\n\n           @return: Rectifying latitude, C{Mu} (L{AuxAngle}).\n        '''\n        Beta = self.Parametric(Phi)\n        # assert Beta._AUX == Aux.BETA\n        sb, cb = map(fabs, Beta._yx_normalized)\n        a, ka, ka1 =      _1_0,  self._e2,  self._e2m1\n        b, kb, kb1 = self._fm1, -self._e12, self._e12p1\n        if self.f < 0:\n            a,   b   = b,   a\n            ka,  kb  = kb,  ka\n            ka1, kb1 = kb1, ka1\n            sb,  cb  = cb,  sb\n        # now a, b = larger/smaller semi-axis\n        # Beta measured from larger semi-axis\n        # kb, ka = modulus-squared for distance from Beta = 0, pi/2\n        # NB kb <= 0; 0 <= ka <= 1\n        # sa = b*E(Beta, sqrt(kb))\n        # sb = a*E(Beta',sqrt(ka))\n        # 1 - ka * (1 - sb2) = 1 - ka + ka*sb2\n        sb2 = sb**2\n        cb2 = cb**2\n        da2 = ka1 + ka * sb2\n        # DLMF Eq. 19.25.9\n        my = b * sb * _Ef._fRF3RD(cb2, _1_0, kb * sb2)\n        # DLMF Eq. 19.25.10 with complementary angles\n        mx = a * cb * (_Ef.fRF(sb2,  da2, _1_0) * ka1 +\n            ka * cb2 * _Ef.fRD(sb2, _1_0,  da2, _3_0) * ka1 +\n            ka * sb / sqrt(da2))\n        # my + mx = 2*_Ef.fRG(a*a, b*b) = a*E(e) = b*E(i*e')\n        # mr = a*E(e)*(2/pi) = b*E(i*e')*(2/pi)\n        if self.f < 0:\n            a,  b  = b,  a\n            my, mx = mx, my\n        mr = (my + mx) / PI_2\n        if mr:\n            my = sin(my / mr)\n            mx = sin(mx / mr)  # XXX zero?\n        else:  # zero Mu\n            my, mx = _0_0, _1_0\n        d, n = _diff_name2(Phi, **diff_name)\n        Mu   =  AuxMu(my, mx,  # normalized\n                      name=n).copyquadrant(Phi)\n        if d:\n            d, x = _0_0, Beta._x_normalized\n            if x and mr:\n                if Mu.x and Phi.x and not isinf(Phi.tan):\n                    d = b / mr * (x / Mu.x)**2 \\\n                               * (x / Phi._x_normalized)\n                else:\n                    d = mr / a\n            Mu._diff = self._fm1 * d\n        return Mu\n\n    def RectifyingRadius(self, exact=False):\n        '''Get the I{Rectifying} radius.\n\n           @arg exact: If C{True}, use the exact expression,\n                       otherwise the I{Taylor} series.\n\n           @return: Rectifying radius (L{Meter}, same units\n                    as the ellipsoid axes).\n        '''\n        r = self._Ef_fRG_a2b2_PI_4 if exact else self._RectifyingR\n        return Meter(r, name__=self.RectifyingRadius)\n\n    @Property_RO\n    def _RectifyingR(self):\n        m =  self.ALorder\n        d = _polynomial(self._n2, _RRCoeffs[m], 0, m // 2)\n        return d * (self.a + self.b) * _0_5\n\n    def _scbeta(self, tphi):\n        return _sc(self._fm1 * tphi)\n\n    def _toAux(self, auxout, Phi, **diff_name):\n        '''Convert I{Geographic} to I{Auxiliary} latitude.\n\n           @arg auxout: I{Auxiliary} kind (C{Aux.KIND}).\n           @arg Phi: Geographic latitude (L{AuxLat}).\n           @kwarg diff_name: Use C{B{diff}=True} to set C{diff}\n                             and an optional C{B{name}=NN}.\n\n           @return: Auxiliary latitude, I{Eta} (L{AuxLat}).\n        '''\n        _xinstanceof(AuxAngle, Phi=Phi)\n        # assert Phi._AUX == Aux.PHI\n        d, n = _diff_name2(Phi, **diff_name)\n        m    = _toAuxCase.get(auxout, None)\n        if m:  # callable\n            A = m(self, Phi, diff=d, name=n)\n        elif auxout == Aux.GEODETIC:  # == GEOGRAPHIC\n            A = AuxPhi(Phi, name=n)\n        else:  # auxout?\n            A = AuxPhi(NAN, name=n)\n        # assert A._AUX == auxout\n        return A\n\n    def _toZeta(self, zetaux):\n        '''Return a (lean) function to create C{AuxPhi(tphi)} and\n           convert that into C{AuxAngle} of (fixed) kind C{zetaux}\n           for use only inside the C{_Newton} loop.\n        '''\n        class _AuxPhy(AuxPhi):\n            # lean C{AuxPhi} instance.\n            # _diff = _1_0\n            # _x    = _1_0\n\n            def __init__(self, tphi):  # PYCHOK signature\n                self._y = tphi\n\n        m = _toAuxCase.get(zetaux, None)\n        if m:  # callable\n\n            def _toZeta(tphi):\n                return m(self, _AuxPhy(tphi), diff=True)\n\n        elif zetaux == Aux.GEODETIC:  # GEOGRAPHIC\n            _toZeta = _AuxPhy\n\n        else:  # zetaux?\n\n            def _toZeta(unused):  # PYCHOK expected\n                return _AuxPhy(NAN)\n\n        return _toZeta\n\n\n# switch(auxout): ...\n_toAuxCase = {Aux.AUTHALIC:   AuxLat.Authalic,\n              Aux.CONFORMAL:  AuxLat.Conformal,\n              Aux.GEOCENTRIC: AuxLat.Geocentric,\n              Aux.PARAMETRIC: AuxLat.Parametric,\n              Aux.RECTIFYING: AuxLat.Rectifying}\n\n\ndef _Clenshaw(sinp, Zeta, cs, K):\n    sz, cz = Zeta._yx  # isnormal\n    # Evaluate sum(c[k] * sin((2*k+2) * Zeta)) if sinp else\n    #          sum(c[k] * cos((2*k+2) * Zeta))\n    x = _2cos2x(cz, sz)  # 2 * cos(2*Zeta)\n    if isfinite(x):\n        U0, U1 = Fsum(), Fsum()\n        # assert len(cs) == K\n        for r in _reverange(K):\n            U1 -= U0 * x + cs[r]\n            U1, U0 = U0, -U1\n        # u0*f0(Zeta) - u1*fm1(Zeta)\n        # f0  = sin(2*Zeta) if sinp else cos(2*Zeta)\n        # fm1 = 0 if sinp else 1\n        if sinp:\n            U0 *= sz * cz * _2_0\n        else:\n            U0 *= x * _0_5\n            U0 -= U1\n        x = float(U0)\n    return x\n\n\ndef _diff_name2(Phi, diff=False, **name):\n    '''(INTERNAL) Get C{{Bdiff}=False} and C{B{name}=NN}.\n    '''\n    n = _name__(name, _or_nameof=Phi)  # if name else Phi.name\n    return diff, n\n\n\ndef _Newton(tphi, Zeta, _toZeta, **name):\n    # Newton's method from AuxLat._fromAux\n    try:\n        _lg2  = _log2\n        _abs  =  fabs\n        tz    = _abs(Zeta.tan)\n        tphi  =  tz / tphi  # **)\n        ltz   = _lg2(tz)    # **)\n        ltphi = _lg2(tphi)  # **)\n        ltmin =  min(ltphi, MIN_EXP)\n        ltmax =  max(ltphi, MAX_EXP)\n#       auxin =  Zeta._AUX\n        s, n, __2  =  0, 3, _0_5  # n = i + 2\n        _TOL, _xp2 = _EPSqrt, _exp2\n        for i in range(1, _TRIPS):  # up to 1 Ki!\n            # _toAux(auxin, AuxPhi(tphi), diff=True)\n            Z = _toZeta(tphi)\n            # assert Z._AUX == auxin\n            t, s_ = Z.tan, s\n            if t > tz:\n                ltmax, s = ltphi, +1\n            elif t < tz:\n                ltmin, s = ltphi, -1\n            else:\n                break\n            # derivative dtan(Z)/dtan(Phi)\n            # to dlog(tan(Z))/dlog(tan(Phi))\n            d = (ltz - _lg2(t)) * t  # **)\n            if d:\n                d = d / (Z.diff * tphi)  # **)\n                ltphi += d\n                tphi = _xp2(ltphi)\n            if _abs(d) < _TOL:\n                i += 1\n                # _toAux(auxin, AuxPhi(tphi), diff=True)\n                Z = _toZeta(tphi)\n                tphi -= _over(Z.tan - tz, Z.diff)\n                break\n            if (i > n and (s * s_) < 0) or not ltmin < ltphi < ltmax:\n                s, n  =  0, (i + 2)\n                ltphi = (ltmin + ltmax) * __2\n                tphi  = _xp2(ltphi)\n        else:\n            i = _TRIPS\n        Phi = AuxPhi(tphi, **name).copyquadrant(Zeta)\n        Phi._iter = i\n    except (ValueError, ZeroDivisionError):  # **) zero t, tphi, tz or Z.diff\n        Phi = AuxPhi(Zeta, **name)  # diff as-as\n        Phi._iter = 0\n    # assert Phi._AUX == Aux.PHI\n    return Phi\n\n\n_AR2Coeffs = _Rdict(18,\n    _Rtuple(_Rkey(4), 4, '4/315,  4/105,  4/15,  -1/3'),\n    _Rtuple(_Rkey(6), 6, '4/1287, 4/693,  4/15,   4/105, 4/315, -1/3'),\n    _Rtuple(_Rkey(8), 8, '4/3315, 4/2145, 4/1287, 4/693, 4/315,  4/105, 4/15, -1/3'))\n\n_RRCoeffs = _Rdict(9,\n    _Rtuple(_Rkey(4), 2,  '1/64,    1/4'),\n    _Rtuple(_Rkey(6), 3,  '1/256,   1/64,  1/4'),\n    _Rtuple(_Rkey(8), 4, '25/16384, 1/256, 1/64, 1/4'))  # PYCHOK used!\n\ndel _Rdict, _Rkey, _Rtuple\n# assert set(_AR2Coeffs.keys()) == set(_RRCoeffs.keys())\n\n# AuxLat._Lmax = max(_AR2Coeffs.keys())  # == max(ALorder)\n\n__all__ += _ALL_DOCS(AuxLat)\n\n# **) MIT License\n#\n# Copyright (C) 2023-2026 -- mrJean1 at Gmail -- All Rights Reserved.\n#\n# Permission is hereby granted, free of charge, to any person obtaining a\n# copy of this software and associated documentation files (the \"Software\"),\n# to deal in the Software without restriction, including without limitation\n# the rights to use, copy, modify, merge, publish, distribute, sublicense,\n# and/or sell copies of the Software, and to permit persons to whom the\n# Software is furnished to do so, subject to the following conditions:\n#\n# The above copyright notice and this permission notice shall be included\n# in all copies or substantial portions of the Software.\n#\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL\n# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR\n# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\n# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n# OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "pygeodesy/auxilats/auxily.py",
    "content": "\n# -*- coding: utf-8 -*-\n\nu'''(INTERNAL) I{Auxiliary} latitudes' classes, constants and functions.\n\nClass L{AuxAngle} transcoded to Python from I{Karney}'s C++ class U{AuxAngle\n<https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1AuxAngle.html>}\nin I{GeographicLib version 2.2+}.\n\nCopyright (C) U{Charles Karney<mailto:Karney@Alum.MIT.edu>} (2022-2024) and licensed\nunder the MIT/X11 License.  For more information, see the U{GeographicLib\n<https://GeographicLib.SourceForge.io>} documentation.\n'''\n# make sure int/int division yields float quotient, see .basics\nfrom __future__ import division as _; del _  # noqa: E702 ;\n\n# from pygeodesy import auxilats  # _MODS\nfrom pygeodesy.auxilats._CX_Rs import _Rkey\nfrom pygeodesy.basics import _isin,  typename\nfrom pygeodesy.constants import INF, NAN, isinf, isnan, _0_0, _0_5, _1_0, \\\n                               _copysign_1_0, _over, _1_over\nfrom pygeodesy.errors import AuxError\nfrom pygeodesy.fmath import hypot1 as _sc, hypot2_\n# from pygeodesy.internals import typename  # from .basics\nfrom pygeodesy.interns import NN,  _DOT_, _UNDER_  # PYCHOK used!\nfrom pygeodesy.lazily import _ALL_DOCS,  _ALL_MODS as _MODS  # PYCHOK used!\nfrom pygeodesy.utily import atan1\n\nfrom math import asinh, copysign\n\n__all__ = ()\n__version__ = '25.08.31'\n\n\nclass Aux(object):\n    '''Enum-style Aux names.\n    '''\n    _coeffs    = {}\n    GEOGRAPHIC = PHI   =  GEODETIC = _Rkey(0)\n    PARAMETRIC = BETA  =  REDUCED  = _Rkey(1)\n    GEOCENTRIC = THETA = _Rkey(2)  # all ...\n    RECTIFYING = MU    = _Rkey(3)  # use n^2\n    CONFORMAL  = CHI   = _Rkey(4)  # use n\n    AUTHALIC   = XI    = _Rkey(5)  # use n\n    N  = 6\n    N2 = 36\n\n    def __index__(self, aux):\n        # throws KeyError, not IndexError\n        return _Aux2Greek[aux]\n\n    def __len__(self):\n        return Aux.N\n\n    def _CXcoeffs(self, aL):  # in .auxLat.AuxLat._CXcoeffs\n        '''(INTERNAL) Get the C{_CX_4._coeffs_4}, C{_CX_6._coeffs_6}\n           or C{_CS_8._coeffs_8} coefficients, once.\n        '''\n        try:\n            _coeffs = Aux._coeffs[aL]\n        except KeyError:\n            try:  # from pygeodesy.auxilats._CX_x import _coeffs_x as _coeffs\n                _CX_x   = _DOT_(typename(_MODS.auxilats), _UNDER_('_CX', aL))\n                _coeffs = _MODS.getattr(_CX_x, _UNDER_('_coeffs', aL))\n            except (AttributeError, ImportError, KeyError, TypeError) as x:\n                raise AuxError(ALorder=aL, cause=x)\n            Aux._coeffs[aL] = _coeffs._validate(aL, Aux.len(aL))\n        return _coeffs\n\n    def _1d(self, auxout, auxin):\n        '''Get the 1-d index into N^2 coeffs.\n        '''\n        N = Aux.N\n        if 0 <= auxout < N and 0 <= auxin < N:\n            return N * auxout + auxin\n        raise AuxError(auxout=auxout, auxin=auxin, N=N)\n\n    def Greek(self, aux):\n        '''Get an angle's name (C{str}).\n        '''\n        return _Aux2Greek.get(aux, NN)\n\n    def len(self, ALorder):  # PYCHOK no cover\n        aL = ALorder  # aka Lmax\n        mu = Aux.MU * (Aux.MU + 1)\n        nu = Aux.N2 -  Aux.N - mu\n        return (mu * (aL * (aL + 3) - (aL // 2) * 2) // 4 +\n                nu * (aL * (aL + 1)) // 2)\n\n    def power(self, auxout, auxin):\n        '''Get the C{convert} exponent (C{int} or C{None}).\n        '''\n        self._1d(auxout, auxin)  # validate\n        return (auxout - auxin) if max(auxin, auxout) < Aux.MU else None\n\n    def use_n2(self, aux):\n        return not _isin(aux, Aux.CHI, Aux.XI)\n\nAux = Aux()  # PYCHOK singleton\n\n_Aux2Greek = {Aux.AUTHALIC:   'Xi',\n              Aux.CONFORMAL:  'Chi',\n              Aux.GEOCENTRIC: 'Theta',\n              Aux.GEODETIC:   'Phi',   # == .GEOGRAPHIC\n              Aux.PARAMETRIC: 'Beta',  # == .REDUCED\n              Aux.RECTIFYING: 'Mu'}\n_Greek2Aux = dict(map(reversed, _Aux2Greek.items()))  # PYCHOK exported\n# _Greek2Aux.update((_g.upper(), _x) for _g, _x in _Greek2Aux.items())\n\n\ndef _Dasinh(x, y):\n    d = y - x\n    if isinf(d):  # PYCHOK no cover\n        r = _0_0\n    elif isnan(d):  # PYCHOK no cover\n        r =  NAN\n    elif d:\n        xy = x * y\n        if xy > 0:\n            hx, hy = _sc(x), _sc(y)\n            if xy < 1:\n                hx, hy = hy, hx\n            else:\n                x = _1_0 / x\n                y = _1_0 / y\n            r = _over(x + y, hx * x + hy * y)\n            r =  asinh(r * d) / d\n        else:\n            r = (asinh(y) - asinh(x)) / d\n    else:\n        r = _1_over(_sc(x))\n    return r\n\n\ndef _Datan(x, y):\n    xy = x * y\n    r = xy + _1_0\n    if isnan(r):  # PYCHOK no cover\n        pass\n    elif x == y:\n        r = _1_over(r)\n    elif x > 0 and isinf(xy):  # PYCHOK no cover\n        r = _0_0\n    else:\n        d = y - x\n        if (r + xy) > 0:\n            r =  atan1(d, r) / d  # atan(d / r) / d\n        else:\n            r = (atan1(y) - atan1(x)) / d\n    return r\n\n\ndef _Dh(x, y):\n    r = x + y\n    if isnan(r):\n        pass  # N.B. NAN for inf-inf\n    elif isinf(x):  # PYCHOK no cover\n        r = copysign(_0_5, x)\n    elif isinf(y):  # PYCHOK no cover\n        r = copysign(_0_5, y)\n    else:\n        snx, sny = _sn(x), _sn(y)\n        dy = sny * y\n        dx = snx * x\n        d  = dy + dx\n        if (d * _0_5):\n            if (x * y) > 0:\n                r *= hypot2_(snx / _sc(y), snx * sny,\n                             sny / _sc(x)) / (d + d)\n            else:\n                r = _over((dy - dx) * _0_5, y - x)\n        else:  # underflow and x == y == d == 0\n            r *= _0_5  # PYCHOK no cover\n    return r\n\n\ndef _Dlam(x, y):  # Chi1.tan, Chi2.tan\n    # I{Divided difference} of the isometric latitude\n    # with respect to the conformal latitude\n    if isnan(x) or isnan(y):  # PYCHOK no cover\n        r =  NAN\n    elif isinf(x) or isinf(y):  # PYCHOK no cover\n        r =  INF\n    elif x == y:\n        r = _sc(x)\n    else:\n        r = _over(_Dasinh(x, y), _Datan(x, y))\n    return r\n\n\ndef _Dm(X, Y, s):  # in .auxDLat, .auxDST\n    # Return M{(X - Y) * s}, inplace X\n    X -= Y\n    X *= s\n    return X  # Fsum\n\n\ndef _Dp0Dpsi(x, y):  # Chi1.tan, Chi2.tan\n    # I{Divided difference} of the spherical rhumb area\n    # term with respect to the isometric latitude\n    r = x + y\n    if isnan(r):  # PYCHOK no cover\n        pass  # NAN for inf-inf\n    elif isinf(x):  # PYCHOK no cover\n        r = _copysign_1_0(x)\n    elif isinf(y):  # PYCHOK no cover\n        r = _copysign_1_0(y)\n    elif x == y:\n        r = _sn(x)\n    else:\n        r = _Dasinh(_h(x), _h(y))\n        r = _over(_Dh(x, y) * r, _Dasinh(x, y))\n    return r\n\n\ndef _h(tx):\n    '''(INTERNAL) M{h(tan(x)) = tan(x) * sin(x) / 2}\n    '''\n    if tx:\n        tx *= _sn(tx) * _0_5\n    return tx  # preserve signed-0\n\n\ndef _sn(tx):\n    '''(INTERNAL) M{sin(x) = tan(x) / sqrt(tan(x)**2 + 1)}.\n    '''\n    if tx:\n        tx = _copysign_1_0(tx) if isinf(tx) else (\n                           NAN if isnan(tx) else (tx / _sc(tx)))\n    return tx  # preserve signed-0\n\n\n__all__ += _ALL_DOCS(Aux.__class__)\ndel _Rkey\n\n# **) MIT License\n#\n# Copyright (C) 2023-2026 -- mrJean1 at Gmail -- All Rights Reserved.\n#\n# Permission is hereby granted, free of charge, to any person obtaining a\n# copy of this software and associated documentation files (the \"Software\"),\n# to deal in the Software without restriction, including without limitation\n# the rights to use, copy, modify, merge, publish, distribute, sublicense,\n# and/or sell copies of the Software, and to permit persons to whom the\n# Software is furnished to do so, subject to the following conditions:\n#\n# The above copyright notice and this permission notice shall be included\n# in all copies or substantial portions of the Software.\n#\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL\n# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR\n# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\n# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n# OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "pygeodesy/azimuthal.py",
    "content": "\n# -*- coding: utf-8 -*-\n\nu'''Equidistant, Equal-Area, and other Azimuthal projections.\n\nClasses L{Equidistant}, L{EquidistantExact}, L{EquidistantGeodSolve},\nL{EquidistantKarney}, L{Gnomonic}, L{GnomonicExact}, L{GnomonicKarney},\nL{LambertEqualArea}, L{Orthographic} and L{Stereographic}, classes\nL{AzimuthalError}, L{Azimuthal7Tuple} and functions L{equidistant}\nand L{gnomonic}.\n\nL{EquidistantExact} and L{GnomonicExact} are based on exact geodesic classes\nL{GeodesicExact} and L{GeodesicLineExact}, Python versions of I{Charles Karney}'s\nC++ original U{GeodesicExact<https://GeographicLib.SourceForge.io/C++/doc/\nclassGeographicLib_1_1GeodesicExact.html>}, respectively U{GeodesicLineExact\n<https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1GeodesicLineExact.html>}.\n\nUsing L{EquidistantGeodSolve} requires I{Karney}'s utility U{GeodSolve\n<https://GeographicLib.SourceForge.io/C++/doc/GeodSolve.1.html>} to be\nexecutable and set in env variable C{PYGEODESY_GEODSOLVE}, see module\nL{geodsolve} for more details.\n\nL{EquidistantKarney} and L{GnomonicKarney} require I{Karney}'s Python package\nU{geographiclib<https://PyPI.org/project/geographiclib>} to be installed.\n\nOther azimuthal classes implement only (***) U{Snyder's FORMULAS FOR THE SPHERE\n<https://Pubs.USGS.gov/pp/1395/report.pdf>} and use those for any datum,\nspherical and ellipsoidal.  The radius used for the latter is the ellipsoid's\nI{mean radius of curvature} at the latitude of the projection center point.  For\nfurther justification, see the first paragraph under U{Snyder's FORMULAS FOR THE\nELLIPSOID, page 197<https://Pubs.USGS.gov/pp/1395/report.pdf>}.\n\nPage numbers in C{Snyder} references apply to U{John P. Snyder, \"Map Projections\n-- A Working Manual\", 1987<https://Pubs.USGS.gov/pp/1395/report.pdf>}.\n\nSee also U{here<https://WikiPedia.org/wiki/Azimuthal_equidistant_projection>},\nespecially the U{Comparison of the Azimuthal equidistant projection and some\nazimuthal projections centred on 90° N at the same scale, ordered by projection\naltitude in Earth radii<https://WikiPedia.org/wiki/Azimuthal_equidistant_projection\n#/media/File:Comparison_azimuthal_projections.svg>}.\n'''\n# make sure int/int division yields float quotient, see .basics\nfrom __future__ import division as _; del _  # noqa: E702 ;\n\n# from pygeodesy.basics import _isin, _xinstanceof  # from .ellipsoidalBase\nfrom pygeodesy.constants import EPS, EPS0, EPS1, NAN, isnon0, _umod_360, \\\n                               _EPStol, _0_0, _0_1, _0_5, _1_0, _N_1_0, _2_0\nfrom pygeodesy.ellipsoidalBase import LatLonEllipsoidalBase as _LLEB, \\\n                                     _isin, _xinstanceof\nfrom pygeodesy.datums import _spherical_datum, _WGS84\nfrom pygeodesy.errors import _ValueError, _xattr, _xdatum, _xkwds\nfrom pygeodesy.fmath import euclid, hypot as _hypot,  Fsum\n# from pygeodesy.fsums import Fsum  # from .fmath\n# from pygeodesy.formy import antipode  # _MODS\n# from pygeodesy.internals import typename  # from .karney\nfrom pygeodesy.interns import _azimuth_, _datum_, _lat_, _lon_, _scale_, \\\n                              _SPACE_, _x_, _y_\nfrom pygeodesy.karney import _norm180,  typename\nfrom pygeodesy.latlonBase import _MODS, LatLonBase as _LLB\nfrom pygeodesy.lazily import _ALL_DOCS, _ALL_LAZY, _FOR_DOCS  # ALL_MODS\nfrom pygeodesy.named import _name__, _name2__, _NamedBase, _NamedTuple, _Pass\nfrom pygeodesy.namedTuples import LatLon2Tuple, LatLon4Tuple\nfrom pygeodesy.props import deprecated_Property_RO, Property_RO, \\\n                            property_doc_, _update_all\nfrom pygeodesy.streprs import Fmt, _fstrLL0, unstr\nfrom pygeodesy.units import Azimuth, Easting, Lat_, Lon_, Northing, \\\n                            Scalar, Scalar_\nfrom pygeodesy.utily import asin1, atan1, atan2, atan2b, atan2d, \\\n                            sincos2, sincos2d, sincos2d_\n\nfrom math import acos, degrees, fabs, sin, sqrt\n\n__all__ = _ALL_LAZY.azimuthal\n__version__ = '25.11.29'\n\n_EPS_K         = _EPStol * _0_1  # Karney's eps_ or _EPSmin * _0_1?\n_over_horizon_ = 'over horizon'\n_TRIPS         =  21  # numit, 4 sufficient\n\n\ndef _enzh4(x, y, *h):\n    '''(INTERNAL) Return 4-tuple (easting, northing, azimuth, hypot).\n    '''\n    e = Easting( x=x)\n    n = Northing(y=y)\n    z = atan2b(e, n)  # (x, y) for azimuth from true North\n    return e, n, z, (h[0] if h else _hypot(e, n))\n\n\nclass _AzimuthalBase(_NamedBase):\n    '''(INTERNAL) Base class for azimuthal projections.\n\n       @see: I{Karney}'s C++ class U{AzimuthalEquidistant<https://GeographicLib.SourceForge.io/\n             C++/doc/classGeographicLib_1_1AzimuthalEquidistant.html>} and U{Gnomonic\n             <https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Gnomonic.html>} or\n             the C{PyGeodesy} versions thereof L{EquidistantKarney} respectively L{GnomonicKarney}.\n    '''\n    _datum   = _WGS84  # L{Datum}\n    _latlon0 =  LatLon2Tuple(_0_0, _0_0)  # lat0, lon0 (L{LatLon2Tuple})\n    _sc0     = _0_0, _1_0  # 2-Tuple C{sincos2d(lat0)}\n\n    def __init__(self, lat0, lon0, datum=None, **name):\n        '''New azimuthal projection.\n\n           @arg lat0: Latitude of the center point (C{degrees90}).\n           @arg lon0: Longitude of the center point (C{degrees180}).\n           @kwarg datum: Optional datum or ellipsoid (L{Datum}, L{Ellipsoid},\n                         L{Ellipsoid2} or L{a_f2Tuple}) or I{scalar} earth\n                         radius (C{meter}).\n           @kwarg name: Optional C{B{name}=NN} for the projection (C{str}).\n\n           @raise AzimuthalError: Invalid B{C{lat0}} or B{C{lon0}} or (spherical) B{C{datum}}.\n\n           @raise TypeError: Invalid B{C{datum}}.\n       '''\n        if not _isin(datum, None, self._datum):\n            self._datum = _spherical_datum(datum, **name)\n        if name:\n            self.name = name\n\n        if lat0 or lon0:  # often both 0\n            self._reset(lat0, lon0)\n\n    @Property_RO\n    def datum(self):\n        '''Get the datum (L{Datum}).\n        '''\n        return self._datum\n\n    @Property_RO\n    def equatoradius(self):\n        '''Get the geodesic's equatorial radius, semi-axis (C{meter}).\n        '''\n        return self.datum.ellipsoid.a\n\n    a = equatoradius\n\n    @Property_RO\n    def flattening(self):\n        '''Get the geodesic's flattening (C{scalar}).\n        '''\n        return self.datum.ellipsoid.f\n\n    f = flattening\n\n    def forward(self, lat, lon, **name):  # PYCHOK no cover\n        '''I{Must be overloaded}.'''\n        self._notOverloaded(lat, lon, **name)\n\n    def _forward(self, lat, lon, name, _k_t):\n        '''(INTERNAL) Azimuthal (spherical) forward C{lat, lon} to C{x, y}.\n        '''\n        lat, lon = Lat_(lat), Lon_(lon)\n        sa, ca, sb, cb = sincos2d_(lat, lon - self.lon0)\n        s0, c0 = self._sc0\n\n        cb  *= ca\n        k, t = _k_t(c0 * cb + s0 * sa)\n        if t:\n            r = k * self.radius\n            y = r * (c0 * sa - s0 * cb)\n            e, n, z, _ = _enzh4(r * sb * ca, y, None)\n        else:  # 0 or 180\n            e = n = z = _0_0\n\n        t = Azimuthal7Tuple(e, n, lat, lon, z, k, self.datum,\n                                                  name=self._name__(name))\n        return t\n\n    def _forwards(self, *lls):\n        '''(INTERNAL) One or more C{.forward} calls, see .ellipsoidalBaseDI.\n        '''\n        _fwd = self.forward\n        for ll in lls:\n            yield _fwd(ll.lat, ll.lon)\n\n    @Property_RO\n    def lat0(self):\n        '''Get the center latitude (C{degrees90}).\n        '''\n        return self._latlon0.lat\n\n    @property\n    def latlon0(self):\n        '''Get the center lat- and longitude (L{LatLon2Tuple}C{(lat, lon)}) in (C{degrees90}, C{degrees180}).\n        '''\n        return self._latlon0\n\n    @latlon0.setter  # PYCHOK setter!\n    def latlon0(self, latlon0):\n        '''Set the center lat- and longitude (C{LatLon}, L{LatLon2Tuple} or L{LatLon4Tuple}).\n\n           @raise AzimuthalError: Invalid B{C{lat0}} or B{C{lon0}} or ellipsoidal mismatch\n                                  of B{C{latlon0}} and this projection.\n        '''\n        B = _LLEB if self.datum.isEllipsoidal else _LLB\n        _xinstanceof(B, LatLon2Tuple, LatLon4Tuple, latlon0=latlon0)\n        D = _xattr(latlon0, datum=B)\n        if D is not B:\n            _xdatum(self.datum, D, Error=AzimuthalError)\n        self.reset(latlon0.lat, latlon0.lon)\n\n    @Property_RO\n    def lon0(self):\n        '''Get the center longitude (C{degrees180}).\n        '''\n        return self._latlon0.lon\n\n    @deprecated_Property_RO\n    def majoradius(self):  # PYCHOK no cover\n        '''DEPRECATED, use property C{equatoradius}.'''\n        return self.equatoradius\n\n    @Property_RO\n    def radius(self):\n        '''Get this projection's mean radius of curvature (C{meter}).\n        '''\n        return self.datum.ellipsoid.rocMean(self.lat0)\n\n    def reset(self, lat0, lon0):\n        '''Set or reset the center point of this azimuthal projection.\n\n           @arg lat0: Center point latitude (C{degrees90}).\n           @arg lon0: Center point longitude (C{degrees180}).\n\n           @raise AzimuthalError: Invalid B{C{lat0}} or B{C{lon0}}.\n        '''\n        _update_all(self)  # zap caches\n        self._reset(lat0, lon0)\n\n    def _reset(self, lat0, lon0):\n        '''(INTERNAL) Update the center point.\n        '''\n        self._latlon0 = LatLon2Tuple(Lat_(lat0=lat0, Error=AzimuthalError),\n                                     Lon_(lon0=lon0, Error=AzimuthalError))\n        self._sc0     = sincos2d(self.lat0)\n\n    def reverse(self, x, y, **name_LatLon_and_kwds):\n        '''I{Must be overloaded}.'''\n        self._notOverloaded(x, y, **name_LatLon_and_kwds)  # PYCHOK no cover\n\n    def _reverse(self, x, y, _c, lea, LatLon=None, **name_LatLon_kwds):\n        '''(INTERNAL) Azimuthal (spherical) reverse C{x, y} to C{lat, lon}.\n        '''\n        e, n, z, r = _enzh4(x, y)\n\n        c = _c(r / self.radius)\n        if c is None:\n            lat, lon = self.latlon0\n            k, z = _1_0, _0_0\n        else:\n            s0, c0 = self._sc0\n            sc, cc = sincos2(c)\n            k = c  / sc\n            s = s0 * cc\n            if r > EPS0:\n                s += c0 * sc * (n / r)\n            lat = degrees(asin1(s))\n            if lea or fabs(c0) > EPS:\n                d = atan2d(e * sc, r * c0 * cc - n * s0 * sc)\n            else:\n                d = atan2d(e,     (n if s0 < 0 else -n))\n            lon = _norm180(self.lon0 + d)\n\n        if LatLon is None:\n            t, _ = _name2__(name_LatLon_kwds, _or_nameof=self)\n            t = Azimuthal7Tuple(e, n, lat, lon, z, k, self.datum, name=t)\n        else:\n            t = self._toLatLon(lat, lon, LatLon, name_LatLon_kwds)\n        return t\n\n    def _reverse2(self, x_t, *y):\n        '''(INTERNAL) See iterating functions .ellipsoidalBaseDI._intersect3,\n           .ellipsoidalBaseDI._intersects2 and .ellipsoidalBaseDI._nearestOne.\n        '''\n        t = self.reverse(x_t, *y) if y else self.reverse(x_t.x, x_t.y)  # LatLon=None\n        d = euclid(t.lat - self.lat0, t.lon - self.lon0)  # degrees\n        return t, d\n\n    def _toLatLon(self, lat, lon, LatLon, name_LatLon_kwds):\n        '''(INTERNAL) Check B{C{LatLon}} and return an instance.\n        '''\n        kwds = _xkwds(name_LatLon_kwds, datum=self.datum, _or_nameof=self)\n        r =  LatLon(lat, lon, **kwds)  # handle .classof\n        B = _LLEB if self.datum.isEllipsoidal else _LLB\n        _xinstanceof(B, LatLon=r)\n        return r\n\n    def toRepr(self, prec=6, **unused):  # PYCHOK expected\n        '''Return a string representation of this projection.\n\n           @kwarg prec: Number of (decimal) digits, unstripped (C{int}).\n\n           @return: This projection as C{\"<classname>(lat0, lon0, ...)\"}\n                    (C{str}).\n        '''\n        return _fstrLL0(self, prec, True)\n\n    def toStr(self, prec=6, sep=_SPACE_, **unused):  # PYCHOK expected\n        '''Return a string representation of this projection.\n\n           @kwarg prec: Number of (decimal) digits, unstripped (C{int}).\n           @kwarg sep: Separator to join (C{str}).\n\n           @return: This projection as C{\"lat0 lon0\"} (C{str}).\n        '''\n        t = _fstrLL0(self, prec, False)\n        return t if sep is None else sep.join(t)\n\n\nclass AzimuthalError(_ValueError):\n    '''An azimuthal L{Equidistant}, L{EquidistantKarney}, L{Gnomonic},\n       L{LambertEqualArea}, L{Orthographic}, L{Stereographic} or\n       L{Azimuthal7Tuple} issue.\n    '''\n    pass\n\n\nclass Azimuthal7Tuple(_NamedTuple):\n    '''7-Tuple C{(x, y, lat, lon, azimuth, scale, datum)}, in C{meter}, C{meter},\n       C{degrees90}, C{degrees180}, compass C{degrees}, C{scalar} and C{Datum}\n       where C{(x, y)} is the easting and northing of a projected point, C{(lat,\n       lon)} the geodetic location, C{azimuth} the azimuth, clockwise from true\n       North and C{scale} is the projection scale, either C{1 / reciprocal} or\n       C{1} or C{-1} in the L{Equidistant} case.\n    '''\n    _Names_ = (_x_,     _y_,      _lat_, _lon_, _azimuth_, _scale_, _datum_)\n    _Units_ = ( Easting, Northing, Lat_,  Lon_,  Azimuth,   Scalar, _Pass)\n\n    def antipodal(self, azimuth=None):\n        '''Return this tuple with the antipodal C{lat} and C{lon}.\n\n           @kwarg azimuth: Optional azimuth, overriding the current azimuth\n                           (C{compass degrees360}).\n        '''\n        a = _MODS.formy.antipode(self.lat, self.lon)  # PYCHOK named\n        z = self.azimuth if azimuth is None else Azimuth(azimuth)  # PYCHOK named\n        return _NamedTuple.dup(self, lat=a.lat, lon=a.lon, azimuth=z)\n\n\nclass Equidistant(_AzimuthalBase):\n    '''Azimuthal equidistant projection for the sphere***, see U{Snyder, pp 195-197\n       <https://Pubs.USGS.gov/pp/1395/report.pdf>} and U{MathWorld-Wolfram\n       <https://MathWorld.Wolfram.com/AzimuthalEquidistantProjection.html>}.\n\n       @note: Results from this L{Equidistant} and an L{EquidistantExact},\n              L{EquidistantGeodSolve} or L{EquidistantKarney} projection\n              C{may differ} by 10% or more.  For an example, see method\n              C{testDiscrepancies} in module C{testAzimuthal.py}.\n    '''\n    if _FOR_DOCS:\n        __init__ = _AzimuthalBase.__init__\n\n    def forward(self, lat, lon, **name):\n        '''Convert a geodetic location to azimuthal equidistant east- and northing.\n\n           @arg lat: Latitude of the location (C{degrees90}).\n           @arg lon: Longitude of the location (C{degrees180}).\n           @kwarg name: Optional C{B{name}=NN} for the location (C{str}).\n\n           @return: An L{Azimuthal7Tuple}C{(x, y, lat, lon, azimuth, scale, datum)}\n                    with easting C{x} and northing C{y} of point in C{meter} and C{lat}\n                    and C{lon} in C{degrees} and C{azimuth} clockwise from true North.\n                    The C{scale} of the projection is C{1} in I{radial} direction and\n                    is C{1 / reciprocal} in the direction perpendicular to this.\n\n           @raise AzimuthalError: Invalid B{C{lat}} or B{C{lon}}.\n\n           @note: The C{scale} will be C{-1} if B{C{(lat, lon)}} is antipodal to the\n                  projection center C{(lat0, lon0)}.\n        '''\n        def _k_t(c):\n            k = _N_1_0 if c < 0 else _1_0\n            t =  fabs(c) < EPS1\n            if t:\n                a = acos(c)\n                s = sin(a)\n                if s:\n                    k = a / s\n            return k, t\n\n        return self._forward(lat, lon, name, _k_t)\n\n    def reverse(self, x, y, **name_LatLon_and_kwds):\n        '''Convert an azimuthal equidistant location to geodetic lat- and longitude.\n\n           @arg x: Easting of the location (C{meter}).\n           @arg y: Northing of the location (C{meter}).\n           @kwarg name_LatLon_and_kwds: Optional C{B{name}=NN} and class C{B{LatLon}=None}\n                       to use and optionally, additional B{C{LatLon}} keyword arguments,\n                       ignored if C{B{LatLon} is None}.\n\n           @return: The geodetic (C{LatLon}) or if C{B{LatLon} is None} an\n                    L{Azimuthal7Tuple}C{(x, y, lat, lon, azimuth, scale, datum)}.\n\n           @note: The C{lat} will be in the range C{[-90..90] degrees} and C{lon}\n                  in the range C{[-180..180] degrees}.  The C{scale} of the\n                  projection is C{1} in I{radial} direction, C{azimuth} clockwise\n                  from true North and is C{1 / reciprocal} in the direction\n                  perpendicular to this.\n        '''\n        def _c(c):\n            return c if c > EPS else None\n\n        return self._reverse(x, y, _c, False, **name_LatLon_and_kwds)\n\n\ndef equidistant(lat0, lon0, datum=_WGS84, exact=False, geodsolve=False, **name):\n    '''Return an L{EquidistantExact}, L{EquidistantGeodSolve} or (if I{Karney}'s\n       U{geographiclib<https://PyPI.org/project/geographiclib>} package is\n       installed) an L{EquidistantKarney}, otherwise an L{Equidistant} instance.\n\n       @arg lat0: Latitude of center point (C{degrees90}).\n       @arg lon0: Longitude of center point (C{degrees180}).\n       @kwarg datum: Optional datum or ellipsoid (L{Datum}, L{Ellipsoid},\n                     L{Ellipsoid2} or L{a_f2Tuple}) or I{scalar} earth\n                     radius (C{meter}).\n       @kwarg exact: Return an L{EquidistantExact} instance.\n       @kwarg geodsolve: Return an L{EquidistantGeodSolve} instance.\n       @kwarg name: Optional C{B{name}=NN} for the projection (C{str}).\n\n       @return: An L{EquidistantExact}, L{EquidistantGeodSolve},\n                L{EquidistantKarney} or L{Equidistant} instance.\n\n       @raise AzimuthalError: Invalid B{C{lat0}} or B{C{lon0}} or (spherical) B{C{datum}}.\n\n       @raise GeodesicError: Issue with L{GeodesicExact}, L{GeodesicSolve}\n                             or I{Karney}'s wrapped C{Geodesic}.\n\n       @raise TypeError: Invalid B{C{datum}}.\n    '''\n\n    E = EquidistantExact if exact else (EquidistantGeodSolve if geodsolve else Equidistant)\n    if E is Equidistant:\n        try:\n            return EquidistantKarney(lat0, lon0, datum=datum, **name)  # PYCHOK types\n        except ImportError:\n            pass\n    return E(lat0, lon0, datum=datum, **name)  # PYCHOK types\n\n\nclass _AzimuthalGeodesic(_AzimuthalBase):\n    '''(INTERNAL) Base class for azimuthal projections using the\n       I{wrapped} U{geodesic.Geodesic and geodesicline.GeodesicLine\n       <https://GeographicLib.SourceForge.io/Python/doc/code.html>} or the\n       I{exact} geodesic classes L{GeodesicExact} and L{GeodesicLineExact}.\n    '''\n    _mask = 0\n\n    @Property_RO\n    def geodesic(self):  # PYCHOK no cover\n        '''I{Must be overloaded}.'''\n        self._notOverloaded()\n\n    def _7Tuple(self, e, n, r, name_LatLon_kwds, M=None):\n        '''(INTERNAL) Return an C{Azimuthal7Tuple}.\n        '''\n        s = M\n        if s is None:  # reciprocal, azimuthal scale\n            s = (r.m12 / r.s12) if r.a12 > _EPS_K else _1_0\n        z = _umod_360(r.azi2)  # -180 <= r.azi2 < 180 ... 0 <= z < 360\n        t, _ = _name2__(name_LatLon_kwds, _or_nameof=self)\n        return Azimuthal7Tuple(e, n, r.lat2, r.lon2, z, s, self.datum, name=t)\n\n\nclass _EquidistantBase(_AzimuthalGeodesic):\n    '''(INTERNAL) Base for classes L{EquidistantExact}, L{EquidistantGeodSolve}\n       and L{EquidistantKarney}.\n    '''\n    def __init__(self, lat0, lon0, datum=_WGS84, **name):\n        '''New azimuthal L{EquidistantExact}, L{EquidistantGeodSolve} or\n           L{EquidistantKarney} projection.\n        '''\n        _AzimuthalGeodesic.__init__(self, lat0, lon0, datum=datum, **name)\n\n        g = self.geodesic\n        # g.STANDARD = g.AZIMUTH | g.DISTANCE | g.LATITUDE | g.LONGITUDE\n        self._mask = g.REDUCEDLENGTH | g.STANDARD  # | g.LONG_UNROLL\n\n    def forward(self, lat, lon, **name):\n        '''Convert an (ellipsoidal) geodetic location to azimuthal equidistant east- and northing.\n\n           @arg lat: Latitude of the location (C{degrees90}).\n           @arg lon: Longitude of the location (C{degrees180}).\n           @kwarg name: Optional C{B{name}=NN} for the location (C{str}).\n\n           @return: An L{Azimuthal7Tuple}C{(x, y, lat, lon, azimuth, scale, datum)}\n                    with easting C{x} and northing C{y} of point in C{meter} and C{lat}\n                    and C{lon} in C{degrees} and C{azimuth} clockwise from true North.\n                    The C{scale} of the projection is C{1} in I{radial} direction and\n                    is C{1 / reciprocal} in the direction perpendicular to this.\n\n           @raise AzimuthalError: Invalid B{C{lat}} or B{C{lon}}.\n\n           @note: A call to C{.forward} followed by a call to C{.reverse} will return\n                  the original C{lat, lon} to within roundoff.\n       '''\n        r = self.geodesic.Inverse(self.lat0, self.lon0,\n                                  Lat_(lat), Lon_(lon), outmask=self._mask)\n        x, y = sincos2d(r.azi1)\n        return self._7Tuple(x * r.s12, y * r.s12, r, _name__(name))\n\n    def reverse(self, x, y, LatLon=None, **name_LatLon_kwds):  # PYCHOK signature\n        '''Convert an azimuthal equidistant location to (ellipsoidal) geodetic lat- and longitude.\n\n           @arg x: Easting of the location (C{meter}).\n           @arg y: Northing of the location (C{meter}).\n           @kwarg LatLon: Class to use (C{LatLon}) or C{None}.\n           @kwarg name_LatLon_kwds: Optional C{B{name}=NN} and optionally, additional\n                       B{C{LatLon}} keyword arguments, ignored if C{B{LatLon} is None}.\n\n           @return: The geodetic (C{LatLon}) or if C{B{LatLon} is None} an\n                    L{Azimuthal7Tuple}C{(x, y, lat, lon, azimuth, scale, datum)}.\n\n           @note: The C{lat} will be in the range C{[-90..90] degrees} and C{lon}\n                  in the range C{[-180..180] degrees}.  The scale of the projection\n                  is C{1} in I{radial} direction, C{azimuth} clockwise from true\n                  North and is C{1 / reciprocal} in the direction perpendicular\n                  to this.\n        '''\n        e, n, z, s = _enzh4(x, y)\n\n        r = self.geodesic.Direct(self.lat0, self.lon0, z, s, outmask=self._mask)\n        return self._7Tuple(e, n, r, name_LatLon_kwds) if LatLon is None else \\\n               self._toLatLon(r.lat2, r.lon2, LatLon, name_LatLon_kwds)\n\n\nclass EquidistantExact(_EquidistantBase):\n    '''Azimuthal equidistant projection, a Python version of I{Karney}'s C++ class U{AzimuthalEquidistant\n       <https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1AzimuthalEquidistant.html>},\n       based on exact geodesic classes L{GeodesicExact} and L{GeodesicLineExact}.\n\n       An azimuthal equidistant projection is centered at an arbitrary position on the ellipsoid.\n       For a point in projected space C{(x, y)}, the geodesic distance from the center position\n       is C{hypot(x, y)} and the C{azimuth} of the geodesic from the center point is C{atan2(x, y)},\n       clockwise from true North.\n\n       The C{.forward} and C{.reverse} methods also return the C{azimuth} of the geodesic at C{(x,\n       y)} and the C{scale} in the azimuthal direction which, together with the basic properties\n       of the projection, serve to specify completely the local affine transformation between\n       geographic and projected coordinates.\n    '''\n    def __init__(self, lat0, lon0, datum=_WGS84, **name):\n        '''New azimuthal L{EquidistantExact} projection.\n\n           @arg lat0: Latitude of center point (C{degrees90}).\n           @arg lon0: Longitude of center point (C{degrees180}).\n           @kwarg datum: Optional datum or ellipsoid (L{Datum}, L{Ellipsoid},\n                         L{Ellipsoid2} or L{a_f2Tuple}) or I{scalar} earth\n                         radius (C{meter}).\n           @kwarg name: Optional C{B{name}=NN} for the projection (C{str}).\n\n           @raise AzimuthalError: Invalid B{C{lat0}} or B{C{lon0}} or B{C{datum}}.\n        '''\n        _EquidistantBase.__init__(self, lat0, lon0, datum=datum, **name)\n\n    if _FOR_DOCS:\n        forward = _EquidistantBase.forward\n        reverse = _EquidistantBase.reverse\n\n    @Property_RO\n    def geodesic(self):\n        '''Get this projection's exact geodesic (L{GeodesicExact}).\n        '''\n        return self.datum.ellipsoid.geodesicx\n\n\nclass EquidistantGeodSolve(_EquidistantBase):\n    '''Azimuthal equidistant projection, a Python version of I{Karney}'s C++ class U{AzimuthalEquidistant\n       <https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1AzimuthalEquidistant.html>},\n       based on (exact) geodesic I{wrappers} L{GeodesicSolve} and L{GeodesicLineSolve} and intended\n       I{for testing purposes only}.\n\n       @see: L{EquidistantExact} and module L{geodsolve}.\n    '''\n    def __init__(self, lat0, lon0, datum=_WGS84, **name):\n        '''New azimuthal L{EquidistantGeodSolve} projection.\n\n           @arg lat0: Latitude of center point (C{degrees90}).\n           @arg lon0: Longitude of center point (C{degrees180}).\n           @kwarg datum: Optional datum or ellipsoid (L{Datum}, L{Ellipsoid},\n                         L{Ellipsoid2} or L{a_f2Tuple}) or I{scalar} earth\n                         radius (C{meter}).\n           @kwarg name: Optional C{B{name}=NN} for the projection (C{str}).\n\n           @raise AzimuthalError: Invalid B{C{lat0}} or B{C{lon0}} or B{C{datum}}.\n        '''\n        _EquidistantBase.__init__(self, lat0, lon0, datum=datum, **name)\n\n    if _FOR_DOCS:\n        forward = _EquidistantBase.forward\n        reverse = _EquidistantBase.reverse\n\n    @Property_RO\n    def geodesic(self):\n        '''Get this projection's (exact) geodesic (L{GeodesicSolve}).\n        '''\n        return self.datum.ellipsoid.geodsolve\n\n\nclass EquidistantKarney(_EquidistantBase):\n    '''Azimuthal equidistant projection, a Python version of I{Karney}'s C++ class U{AzimuthalEquidistant\n       <https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1AzimuthalEquidistant.html>},\n       requiring package U{geographiclib<https://PyPI.org/project/geographiclib>} to be installed.\n\n       @see: L{EquidistantExact}.\n    '''\n    def __init__(self, lat0, lon0, datum=_WGS84, **name):\n        '''New azimuthal L{EquidistantKarney} projection.\n\n           @arg lat0: Latitude of center point (C{degrees90}).\n           @arg lon0: Longitude of center point (C{degrees180}).\n           @kwarg datum: Optional datum or ellipsoid (L{Datum}, L{Ellipsoid},\n                         L{Ellipsoid2} or L{a_f2Tuple}) or I{scalar} earth\n                         radius (C{meter}).\n           @kwarg name: Optional C{B{name}=NN} for the projection (C{str}).\n\n           @raise ImportError: Package U{geographiclib<https://PyPI.org/project/geographiclib>}\n                               not installed or not found.\n\n           @raise AzimuthalError: Invalid B{C{lat0}} or B{C{lon0}} or B{C{datum}}.\n        '''\n        _EquidistantBase.__init__(self, lat0, lon0, datum=datum, **name)\n\n    if _FOR_DOCS:\n        forward = _EquidistantBase.forward\n        reverse = _EquidistantBase.reverse\n\n    @Property_RO\n    def geodesic(self):\n        '''Get this projection's I{wrapped} U{geodesic.Geodesic\n           <https://GeographicLib.SourceForge.io/Python/doc/code.html>}, provided\n           I{Karney}'s U{geographiclib<https://PyPI.org/project/geographiclib>}\n           package is installed.\n        '''\n        return self.datum.ellipsoid.geodesic\n\n\n_Equidistants = (Equidistant, EquidistantExact, EquidistantGeodSolve,\n                 EquidistantKarney)  # PYCHOK in .ellipsoidalBaseDI\n\n\nclass Gnomonic(_AzimuthalBase):\n    '''Azimuthal gnomonic projection for the sphere***, see U{Snyder, pp 164-168\n       <https://Pubs.USGS.gov/pp/1395/report.pdf>} and U{MathWorld-Wolfram\n       <https://MathWorld.Wolfram.com/GnomonicProjection.html>}.\n    '''\n    if _FOR_DOCS:\n        __init__ = _AzimuthalBase.__init__\n\n    def forward(self, lat, lon, **name):\n        '''Convert a geodetic location to azimuthal equidistant east- and northing.\n\n           @arg lat: Latitude of the location (C{degrees90}).\n           @arg lon: Longitude of the location (C{degrees180}).\n           @kwarg name: Optional C{B{name}=NN} for the location (C{str}).\n\n           @return: An L{Azimuthal7Tuple}C{(x, y, lat, lon, azimuth, scale, datum)}\n                    with easting C{x} and northing C{y} of point in C{meter} and C{lat}\n                    and C{lon} in C{degrees} and C{azimuth} clockwise from true North.\n                    The C{scale} of the projection is C{1} in I{radial} direction and\n                    is C{1 / reciprocal} in the direction perpendicular to this.\n\n           @raise AzimuthalError: Invalid B{C{lat}} or B{C{lon}}.\n        '''\n        def _k_t(c):\n            t = c > EPS\n            k = (_1_0 / c) if t else _1_0\n            return k, t\n\n        return self._forward(lat, lon, name, _k_t)\n\n    def reverse(self, x, y, **name_LatLon_and_kwds):\n        '''Convert an azimuthal equidistant location to geodetic lat- and longitude.\n\n           @arg x: Easting of the location (C{meter}).\n           @arg y: Northing of the location (C{meter}).\n           @kwarg name_LatLon_and_kwds: Optional C{B{name}=NN} and class C{B{LatLon}=None}\n                       for the location and optionally, additional B{C{LatLon}} keyword\n                       arguments, ignored if C{B{LatLon} is None}.\n\n           @return: The geodetic (C{LatLon}) or if C{B{LatLon} is None} an\n                    L{Azimuthal7Tuple}C{(x, y, lat, lon, azimuth, scale, datum)}.\n\n           @note: The C{lat} will be in the range C{[-90..90] degrees} and C{lon}\n                  in the range C{[-180..180] degrees}.  The C{scale} of the\n                  projection is C{1} in I{radial} direction, C{azimuth} clockwise\n                  from true North and C{1 / reciprocal} in the direction\n                  perpendicular to this.\n        '''\n        def _c(c):\n            return atan1(c) if c > EPS else None\n\n        return self._reverse(x, y, _c, False, **name_LatLon_and_kwds)\n\n\ndef gnomonic(lat0, lon0, datum=_WGS84, exact=False, geodsolve=False, **name):\n    '''Return a L{GnomonicExact} or (if I{Karney}'s U{geographiclib\n       <https://PyPI.org/project/geographiclib>} package is installed)\n       a L{GnomonicKarney}, otherwise a L{Gnomonic} instance.\n\n       @arg lat0: Latitude of center point (C{degrees90}).\n       @arg lon0: Longitude of center point (C{degrees180}).\n       @kwarg datum: Optional datum or ellipsoid (L{Datum}, L{Ellipsoid},\n                     L{Ellipsoid2} or L{a_f2Tuple}) or I{scalar} earth\n                     radius (C{meter}).\n       @kwarg exact: Return a L{GnomonicExact} instance.\n       @kwarg geodsolve: Return a L{GnomonicGeodSolve} instance.\n       @kwarg name: Optional C{B{name}=NN} for the projection (C{str}).\n\n       @return: A L{GnomonicExact}, L{GnomonicGeodSolve},\n                L{GnomonicKarney} or L{Gnomonic} instance.\n\n       @raise AzimuthalError: Invalid B{C{lat0}} or B{C{lon0}} or\n                              (spherical) B{C{datum}}.\n\n       @raise GeodesicError: Issue with L{GeodesicExact}, L{GeodesicSolve}\n                             or I{Karney}'s wrapped C{Geodesic}.\n\n       @raise TypeError: Invalid B{C{datum}}.\n    '''\n    G = GnomonicExact if exact else (GnomonicGeodSolve if geodsolve else Gnomonic)\n    if G is Gnomonic:\n        try:\n            return GnomonicKarney(lat0, lon0, datum=datum, **name)  # PYCHOK types\n        except ImportError:\n            pass\n    return G(lat0, lon0, datum=datum, **name)  # PYCHOK types\n\n\nclass _GnomonicBase(_AzimuthalGeodesic):\n    '''(INTERNAL) Base for classes L{GnomonicExact}, L{GnomonicGeodSolve}\n       and L{GnomonicKarney}.\n    '''\n    def __init__(self, lat0, lon0, datum=_WGS84, **name):\n        '''New azimuthal L{GnomonicExact} or L{GnomonicKarney} projection.\n        '''\n        _AzimuthalGeodesic.__init__(self, lat0, lon0, datum=datum, **name)\n\n        g = self.geodesic\n        self._mask = g.ALL  # | g.LONG_UNROLL\n\n    def forward(self, lat, lon, raiser=True, **name):  # PYCHOK signature\n        '''Convert an (ellipsoidal) geodetic location to azimuthal gnomonic east-\n           and northing.\n\n           @arg lat: Latitude of the location (C{degrees90}).\n           @arg lon: Longitude of the location (C{degrees180}).\n           @kwarg raiser: If C{False}, do not throw an error if the location lies\n                          over the horizon (C{bool}).\n           @kwarg name: Optional C{B{name}=NN} for the location (C{str}).\n\n           @return: An L{Azimuthal7Tuple}C{(x, y, lat, lon, azimuth, scale, datum)}\n                    with easting C{x} and northing C{y} in C{meter} and C{lat} and\n                    C{lon} in C{degrees} and C{azimuth} clockwise from true North.\n                    The C{scale} of the projection is C{1 / reciprocal**2} in I{radial}\n                    direction and C{1 / reciprocal} in the direction perpendicular to\n                    this.  Both C{x} and C{y} will be C{NAN} if the (geodetic) location\n                    lies over the horizon and C{B{raiser}=False}.\n\n           @raise AzimuthalError: Invalid B{C{lat}}, B{C{lon}} or the location lies\n                                  over the horizon and C{B{raiser}=True}.\n        '''\n        r = self.geodesic.Inverse(self.lat0, self.lon0,\n                                  Lat_(lat), Lon_(lon), outmask=self._mask)\n        M = r.M21\n        if M > EPS0:\n            q = r.m12 / M  # .M12\n            e, n = sincos2d(r.azi1)\n            e *= q\n            n *= q\n        elif raiser:  # PYCHOK no cover\n            raise AzimuthalError(lat=lat, lon=lon, txt=_over_horizon_)\n        else:  # PYCHOK no cover\n            e = n = NAN\n\n        t = self._7Tuple(e, n, r, _name__(name), M=M)\n        t._iteration = self._iteration = 0\n        return t\n\n    def reverse(self, x, y, LatLon=None, **name_LatLon_kwds):  # PYCHOK signature\n        '''Convert an azimuthal gnomonic location to (ellipsoidal) geodetic lat- and longitude.\n\n           @arg x: Easting of the location (C{meter}).\n           @arg y: Northing of the location (C{meter}).\n           @kwarg LatLon: Class to use (C{LatLon}) or C{None}.\n           @kwarg name_LatLon_kwds: Optional C{B{name}=NN} for the location and optionally,\n                       additional B{C{LatLon}} keyword arguments, ignored if C{B{LatLon} is None}.\n\n           @return: The geodetic (C{LatLon}) or if C{B{LatLon} is None} an\n                    L{Azimuthal7Tuple}C{(x, y, lat, lon, azimuth, scale, datum)}.\n\n           @raise AzimuthalError: No convergence.\n\n           @note: The C{lat} will be in the range C{[-90..90] degrees} and C{lon} in the range\n                  C{[-180..180] degrees}.  The C{azimuth} is clockwise from true North.  The\n                  scale is C{1 / reciprocal**2} in C{radial} direction and C{1 / reciprocal}\n                  in the direction perpendicular to this.\n        '''\n        e, n, z, q = _enzh4(x, y)\n\n        d = a = self.equatoradius\n        s = a * atan1(q, a)\n        if q > a:  # PYCHOK no cover\n            def _d(r, q):\n                return (r.M12 - q * r.m12) * r.m12  # negated\n\n            q = _1_0 / q\n        else:  # little == True\n            def _d(r, q):  # PYCHOK _d\n                return (q * r.M12 - r.m12) * r.M12  # negated\n\n        a *= _EPS_K\n        m  =  self._mask\n        g  =  self.geodesic\n\n        _P   = g.Line(self.lat0, self.lon0, z, caps=m | g.LINE_OFF).Position\n        _S2  = Fsum(s).fsum2f_\n        _abs = fabs\n        for i in range(1, _TRIPS):\n            r = _P(s, outmask=m)\n            if _abs(d) < a:\n                break\n            s, d = _S2(_d(r, q))\n        else:  # PYCHOK no cover\n            self._iteration = _TRIPS\n            raise AzimuthalError(Fmt.no_convergence(d, a),\n                                 txt=unstr(self.reverse, x, y))\n\n        t = self._7Tuple(e, n, r, name_LatLon_kwds, M=r.M12) if LatLon is None else \\\n            self._toLatLon(r.lat2, r.lon2, LatLon, name_LatLon_kwds)\n        t._iteration = self._iteration = i\n        return t\n\n\nclass GnomonicExact(_GnomonicBase):\n    '''Azimuthal gnomonic projection, a Python version of I{Karney}'s C++ class U{Gnomonic\n       <https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Gnomonic.html>},\n       based on exact geodesic classes L{GeodesicExact} and L{GeodesicLineExact}.\n\n       @see: I{Karney}'s U{Detailed Description<https://GeographicLib.SourceForge.io/C++/doc/\n             classGeographicLib_1_1Gnomonic.html>}, especially the B{Warning}.\n    '''\n    def __init__(self, lat0, lon0, datum=_WGS84, **name):\n        '''New azimuthal L{GnomonicExact} projection.\n\n           @arg lat0: Latitude of center point (C{degrees90}).\n           @arg lon0: Longitude of center point (C{degrees180}).\n           @kwarg datum: Optional datum or ellipsoid (L{Datum}, L{Ellipsoid},\n                         L{Ellipsoid2} or L{a_f2Tuple}) or I{scalar} earth\n                         radius (C{meter}).\n           @kwarg name: Optional C{B{name}=NN} for the projection (C{str}).\n\n           @raise AzimuthalError: Invalid B{C{lat0}} or B{C{lon0}}.\n        '''\n        _GnomonicBase.__init__(self, lat0, lon0, datum=datum, **name)\n\n    if _FOR_DOCS:\n        forward = _GnomonicBase.forward\n        reverse = _GnomonicBase.reverse\n\n    @Property_RO\n    def geodesic(self):\n        '''Get this projection's exact geodesic (L{GeodesicExact}).\n        '''\n        return self.datum.ellipsoid.geodesicx\n\n\nclass GnomonicGeodSolve(_GnomonicBase):\n    '''Azimuthal gnomonic projection, a Python version of I{Karney}'s C++ class U{Gnomonic\n       <https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Gnomonic.html>},\n       based on (exact) geodesic I{wrappers} L{GeodesicSolve} and L{GeodesicLineSolve} and\n       intended I{for testing purposes only}.\n\n       @see: L{GnomonicExact} and module L{geodsolve}.\n    '''\n    def __init__(self, lat0, lon0, datum=_WGS84, **name):\n        '''New azimuthal L{GnomonicGeodSolve} projection.\n\n           @arg lat0: Latitude of center point (C{degrees90}).\n           @arg lon0: Longitude of center point (C{degrees180}).\n           @kwarg datum: Optional datum or ellipsoid (L{Datum}, L{Ellipsoid},\n                         L{Ellipsoid2} or L{a_f2Tuple}) or I{scalar} earth\n                         radius (C{meter}).\n           @kwarg name: Optional C{B{name}=NN} for the projection (C{str}).\n\n           @raise AzimuthalError: Invalid B{C{lat0}} or B{C{lon0}}.\n        '''\n        _GnomonicBase.__init__(self, lat0, lon0, datum=datum, **name)\n\n    if _FOR_DOCS:\n        forward = _GnomonicBase.forward\n        reverse = _GnomonicBase.reverse\n\n    @Property_RO\n    def geodesic(self):\n        '''Get this projection's (exact) geodesic (L{GeodesicSolve}).\n        '''\n        return self.datum.ellipsoid.geodsolve\n\n\nclass GnomonicKarney(_GnomonicBase):\n    '''Azimuthal gnomonic projection, a Python version of I{Karney}'s C++ class U{Gnomonic\n       <https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Gnomonic.html>},\n       requiring package U{geographiclib<https://PyPI.org/project/geographiclib>} to be installed.\n\n       @see: L{GnomonicExact}.\n    '''\n    def __init__(self, lat0, lon0, datum=_WGS84, **name):\n        '''New azimuthal L{GnomonicKarney} projection.\n\n           @arg lat0: Latitude of center point (C{degrees90}).\n           @arg lon0: Longitude of center point (C{degrees180}).\n           @kwarg datum: Optional datum or ellipsoid (L{Datum}, L{Ellipsoid},\n                         L{Ellipsoid2} or L{a_f2Tuple}) or I{scalar} earth\n                         radius (C{meter}).\n           @kwarg name: Optional C{B{name}=NN} for the projection (C{str}).\n\n           @raise ImportError: Package U{geographiclib<https://PyPI.org/project/geographiclib>}\n                               not installed or not found.\n\n           @raise AzimuthalError: Invalid B{C{lat0}} or B{C{lon0}}.\n        '''\n        _GnomonicBase.__init__(self, lat0, lon0, datum=datum, **name)\n\n    if _FOR_DOCS:\n        forward = _GnomonicBase.forward\n        reverse = _GnomonicBase.reverse\n\n    @Property_RO\n    def geodesic(self):\n        '''Get this projection's I{wrapped} U{geodesic.Geodesic\n           <https://GeographicLib.SourceForge.io/Python/doc/code.html>}, provided\n           I{Karney}'s U{geographiclib<https://PyPI.org/project/geographiclib>}\n           package is installed.\n        '''\n        return self.datum.ellipsoid.geodesic\n\n\nclass LambertEqualArea(_AzimuthalBase):\n    '''Lambert-equal-area projection for the sphere*** (aka U{Lambert zenithal equal-area\n       projection<https://WikiPedia.org/wiki/Lambert_azimuthal_equal-area_projection>}, see\n       U{Snyder, pp 185-187<https://Pubs.USGS.gov/pp/1395/report.pdf>} and U{MathWorld-Wolfram\n       <https://MathWorld.Wolfram.com/LambertAzimuthalEqual-AreaProjection.html>}.\n    '''\n    if _FOR_DOCS:\n        __init__ = _AzimuthalBase.__init__\n\n    def forward(self, lat, lon, **name):\n        '''Convert a geodetic location to azimuthal Lambert-equal-area east- and northing.\n\n           @arg lat: Latitude of the location (C{degrees90}).\n           @arg lon: Longitude of the location (C{degrees180}).\n           @kwarg name: Optional C{B{name}=NN} for the location (C{str}).\n\n           @return: An L{Azimuthal7Tuple}C{(x, y, lat, lon, azimuth, scale, datum)}\n                    with easting C{x} and northing C{y} of point in C{meter} and C{lat}\n                    and C{lon} in C{degrees} and C{azimuth} clockwise from true North.\n                    The C{scale} of the projection is C{1} in I{radial} direction and\n                    is C{1 / reciprocal} in the direction perpendicular to this.\n\n           @raise AzimuthalError: Invalid B{C{lat}} or B{C{lon}}.\n        '''\n        def _k_t(c):\n            c += _1_0\n            t  =  c > EPS0\n            k  =  sqrt(_2_0 / c) if t else _1_0\n            return k, t\n\n        return self._forward(lat, lon, name, _k_t)\n\n    def reverse(self, x, y, **name_LatLon_and_kwds):\n        '''Convert an azimuthal Lambert-equal-area location to geodetic lat- and longitude.\n\n           @arg x: Easting of the location (C{meter}).\n           @arg y: Northing of the location (C{meter}).\n           @kwarg name_LatLon_and_kwds: Optional C{B{name}=NN} and class C{B{LatLon}=None}\n                       to use and optionally, additional B{C{LatLon}} keyword arguments,\n                       ignored if C{B{LatLon} is None}.\n\n           @return: The geodetic (C{LatLon}) or if C{B{LatLon} is None} an\n                    L{Azimuthal7Tuple}C{(x, y, lat, lon, azimuth, scale, datum)}.\n\n           @note: The C{lat} will be in the range C{[-90..90] degrees} and C{lon} in the\n                  range C{[-180..180] degrees}.  The C{scale} of the projection is C{1}\n                  in I{radial} direction, C{azimuth} clockwise from true North and is C{1\n                  / reciprocal} in the direction perpendicular to this.\n        '''\n        def _c(c):\n            c *= _0_5\n            return (asin1(c) * _2_0) if c > EPS else None\n\n        return self._reverse(x, y, _c, True, **name_LatLon_and_kwds)\n\n\nclass Orthographic(_AzimuthalBase):\n    '''Orthographic projection for the sphere***, see U{Snyder, pp 148-153\n       <https://Pubs.USGS.gov/pp/1395/report.pdf>} and U{MathWorld-Wolfram\n       <https://MathWorld.Wolfram.com/OrthographicProjection.html>}.\n    '''\n    if _FOR_DOCS:\n        __init__ = _AzimuthalBase.__init__\n\n    def forward(self, lat, lon, **name):\n        '''Convert a geodetic location to azimuthal orthographic east- and northing.\n\n           @arg lat: Latitude of the location (C{degrees90}).\n           @arg lon: Longitude of the location (C{degrees180}).\n           @kwarg name: Optional C{B{name}=NN} for the location (C{str}).\n\n           @return: An L{Azimuthal7Tuple}C{(x, y, lat, lon, azimuth, scale, datum)}\n                    with easting C{x} and northing C{y} of point in C{meter} and C{lat}\n                    and C{lon} in C{degrees} and C{azimuth} clockwise from true North.\n                    The C{scale} of the projection is C{1} in I{radial} direction and\n                    is C{1 / reciprocal} in the direction perpendicular to this.\n\n           @raise AzimuthalError: Invalid B{C{lat}} or B{C{lon}}.\n        '''\n        def _k_t(c):\n            return _1_0, (c >= 0)\n\n        return self._forward(lat, lon, name, _k_t)\n\n    def reverse(self, x, y, **name_LatLon_and_kwds):\n        '''Convert an azimuthal orthographic location to geodetic lat- and longitude.\n\n           @arg x: Easting of the location (C{meter}).\n           @arg y: Northing of the location (C{meter}).\n           @kwarg name_LatLon_and_kwds: Optional C{B{name}=NN} and class C{B{LatLon}=None}\n                       to use and optionally, additional B{C{LatLon}} keyword arguments,\n                       ignored if C{B{LatLon} is None}.\n\n           @return: The geodetic (C{LatLon}) or if C{B{LatLon} is None} an\n                    L{Azimuthal7Tuple}C{(x, y, lat, lon, azimuth, scale, datum)}.\n\n           @note: The C{lat} will be in the range C{[-90..90] degrees} and C{lon} in the\n                  range C{[-180..180] degrees}.  The C{scale} of the projection is C{1}\n                  in I{radial} direction, C{azimuth} clockwise from true North and is C{1\n                  / reciprocal} in the direction perpendicular to this.\n        '''\n        def _c(c):\n            return asin1(c) if c > EPS else None\n\n        return self._reverse(x, y, _c, False, **name_LatLon_and_kwds)\n\n\nclass Stereographic(_AzimuthalBase):\n    '''Stereographic projection for the sphere***, see U{Snyder, pp 157-160\n       <https://Pubs.USGS.gov/pp/1395/report.pdf>} and U{MathWorld-Wolfram\n       <https://MathWorld.Wolfram.com/StereographicProjection.html>}.\n    '''\n    _k0  = _1_0  # central scale factor (C{scalar})\n    _k02 = _2_0  # double ._k0\n\n    if _FOR_DOCS:\n        __init__ = _AzimuthalBase.__init__\n\n    def forward(self, lat, lon, **name):\n        '''Convert a geodetic location to azimuthal stereographic east- and northing.\n\n           @arg lat: Latitude of the location (C{degrees90}).\n           @arg lon: Longitude of the location (C{degrees180}).\n           @kwarg name: Optional C{B{name}=NN} for the location (C{str}).\n\n           @return: An L{Azimuthal7Tuple}C{(x, y, lat, lon, azimuth, scale, datum)}\n                    with easting C{x} and northing C{y} of point in C{meter} and C{lat}\n                    and C{lon} in C{degrees} and C{azimuth} clockwise from true North.\n                    The C{scale} of the projection is C{1} in I{radial} direction and\n                    is C{1 / reciprocal} in the direction perpendicular to this.\n\n           @raise AzimuthalError: Invalid B{C{lat}} or B{C{lon}}.\n        '''\n        def _k_t(c):\n            c += _1_0\n            t  =  isnon0(c)\n            k  = (self._k02 / c) if t else _1_0\n            return k, t\n\n        return self._forward(lat, lon, name, _k_t)\n\n    @property_doc_(''' optional, central scale factor (C{scalar}).''')\n    def k0(self):\n        '''Get the central scale factor (C{scalar}).\n        '''\n        return self._k0\n\n    @k0.setter  # PYCHOK setter!\n    def k0(self, factor):\n        '''Set the central scale factor (C{scalar}).\n        '''\n        n = typename(Stereographic.k0.fget)  # 'k0', name__=Stereographic.k0.fget\n        self._k0  = Scalar_(factor, name=n, low=EPS, high=2)  # XXX high=1, 2, other?\n        self._k02 = self._k0 * _2_0\n\n    def reverse(self, x, y, **name_LatLon_and_kwds):\n        '''Convert an azimuthal stereographic location to geodetic lat- and longitude.\n\n           @arg x: Easting of the location (C{meter}).\n           @arg y: Northing of the location (C{meter}).\n           @kwarg name_LatLon_and_kwds: Optional C{B{name}=NN} and class C{B{LatLon}=None}\n                       to use and optionally, additional B{C{LatLon}} keyword arguments,\n                       ignored if C{B{LatLon} is None}.\n\n           @return: The geodetic (C{LatLon}) or if C{B{LatLon} is None} an\n                    L{Azimuthal7Tuple}C{(x, y, lat, lon, azimuth, scale, datum)}.\n\n           @note: The C{lat} will be in range C{[-90..90] degrees}, C{lon} in range\n                  C{[-180..180] degrees} and C{azimuth} clockwise from true North.  The\n                  C{scale} of the projection is C{1} in I{radial} direction and is C{1\n                  / reciprocal} in the direction perpendicular to this.\n        '''\n        def _c(c):\n            return (atan2(c, self._k02) * _2_0) if c > EPS else None\n\n        return self._reverse(x, y, _c, False, **name_LatLon_and_kwds)\n\n\n__all__ += _ALL_DOCS(_AzimuthalBase, _AzimuthalGeodesic, _EquidistantBase, _GnomonicBase)\n\n# **) MIT License\n#\n# Copyright (C) 2016-2026 -- mrJean1 at Gmail -- All Rights Reserved.\n#\n# Permission is hereby granted, free of charge, to any person obtaining a\n# copy of this software and associated documentation files (the \"Software\"),\n# to deal in the Software without restriction, including without limitation\n# the rights to use, copy, modify, merge, publish, distribute, sublicense,\n# and/or sell copies of the Software, and to permit persons to whom the\n# Software is furnished to do so, subject to the following conditions:\n#\n# The above copyright notice and this permission notice shall be included\n# in all copies or substantial portions of the Software.\n#\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL\n# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR\n# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\n# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n# OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "pygeodesy/basics.py",
    "content": "\n# -*- coding: utf-8 -*-\n\nu'''Some, basic definitions, functions and dependencies.\n\nUse env variable C{PYGEODESY_XPACKAGES} to avoid import of dependencies\nC{geographiclib}, C{numpy} and/or C{scipy}.  Set C{PYGEODESY_XPACKAGES}\nto a comma-separated list of package names to be excluded from import.\n'''\n# make sure int/int division yields float quotient\nfrom __future__ import division\ndivision = 1 / 2  # .albers, .azimuthal, .constants, etc., .utily\nif not division:\n    raise ImportError('%s 1/2 == %s' % ('division', division))\ndel division\n\n# from pygeodesy.cartesianBase import CartesianBase  # _MODS\n# from pygeodesy.constants import NEG0  # _MODS\nfrom pygeodesy.errors import _AttributeError, _ImportError, _NotImplementedError, \\\n                             _TypeError, _TypesError, _ValueError, _xAssertionError, \\\n                             _xkwds_get1\n# from pygeodesy.fsums import _isFsum_2Tuple  # _MODS\nfrom pygeodesy.internals import _0_0, _enquote, _envPYGEODESY, _getenv, _passarg, \\\n                                _PYGEODESY_ENV, typename, _version_info\nfrom pygeodesy.interns import MISSING, NN, _1_, _by_, _COMMA_, _DOT_, _DEPRECATED_, \\\n                             _ELLIPSIS4_, _EQUAL_, _in_, _invalid_, _N_A_, _not_, \\\n                             _not_scalar_, _odd_, _SPACE_, _UNDER_, _version_\n# from pygeodesy.latlonBase import LatLonBase  # _MODS\nfrom pygeodesy.lazily import _ALL_LAZY, _ALL_MODS as _MODS, LazyImportError\n# from pygeodesy.named import classname, modulename, _name__  # _MODS\n# from pygeodesy.nvectorBase import NvectorBase  # _MODS\n# from pygeodesy.props import _update_all  # _MODS\n# from pygeodesy.streprs import Fmt  # _MODS\n\nfrom copy import copy as _copy, deepcopy as _deepcopy\nfrom math import copysign as _copysign\n# import inspect as _inspect  # _MODS\n\n__all__ = _ALL_LAZY.basics\n__version__ = '26.02.22'\n\n_below_           = 'below'\n_list_tuple_types = (list, tuple)\n_required_        = 'required'\n\ntry:  # Luciano Ramalho, \"Fluent Python\", O'Reilly, 2016 p. 395, 2022 p. 577+\n    from numbers import Integral as _Ints, Real as _Scalars  # .units\nexcept ImportError:\n    try:\n        _Ints = int, long  # int objects (C{tuple})\n    except NameError:  # Python 3+\n        _Ints = int,  # int objects (C{tuple})\n    _Scalars = (float,) + _Ints\n\ntry:\n    try:  # use C{from collections.abc import ...} in Python 3.9+\n        from collections.abc import Sequence as _Sequence  # in .points\n    except ImportError:  # no .abc in Python 3.8- and 2.7-\n        from collections import Sequence as _Sequence  # in .points\n    if isinstance([], _Sequence) and isinstance((), _Sequence):\n        #                        and isinstance(range(1), _Sequence):\n        _Seqs = _Sequence\n    else:\n        raise ImportError()  # _AssertionError\nexcept ImportError:\n    _Sequence = tuple  # immutable for .points._Basequence\n    _Seqs     = list, _Sequence  # range for function len2 below\n\ntry:\n    _Bytes = unicode, bytearray  # PYCHOK in .internals\n    _Strs  = basestring, str  # XXX str == bytes\n    str2ub = ub2str = _passarg  # avoids UnicodeDecodeError\n\n    def _Xstr(exc):  # PYCHOK no cover\n        '''I{Invoke only with caught ImportError} B{C{exc}}.\n\n           C{... \"can't import name _distributor_init\" ...}\n\n           only for C{numpy}, C{scipy} import errors occurring\n           on arm64 Apple Silicon running macOS' Python 2.7.16?\n        '''\n        t = str(exc)\n        if '_distributor_init' in t:\n            from sys import exc_info\n            from traceback import extract_tb\n            tb = exc_info()[2]  # 3-tuple (type, value, traceback)\n            t4 = extract_tb(tb, 1)[0]  # 4-tuple (file, line, name, 'import ...')\n            t = _SPACE_(\"can't\", t4[3] or _N_A_)\n            del tb, t4\n        return t\n\nexcept NameError:  # Python 3+\n    from pygeodesy.interns import _utf_8_\n\n    _Bytes = bytes, bytearray  # in .internals\n    _Strs  = str,  # tuple\n    _Xstr  = str\n\n    def str2ub(sb):\n        '''Convert C{str} to C{unicode bytes}.\n        '''\n        if isinstance(sb, _Strs):\n            sb = sb.encode(_utf_8_)\n        return sb\n\n    def ub2str(ub):\n        '''Convert C{unicode bytes} to C{str}.\n        '''\n        if isinstance(ub, _Bytes):\n            ub = str(ub.decode(_utf_8_))\n        return ub\n\n\n# def _args_kwds_count2(func, exelf=True):  # in .formy\n#     '''(INTERNAL) Get a C{func}'s args and kwds count as 2-tuple\n#        C{(nargs, nkwds)}, including arg C{self} for methods.\n#\n#        @kwarg exelf: If C{True}, exclude C{self} in the C{args}\n#                      of a method (C{bool}).\n#     '''\n#     i = _MODS.inspect\n#     try:\n#         a = k = 0\n#         for _, p in i.signature(func).parameters.items():\n#             if p.kind is p.POSITIONAL_OR_KEYWORD:\n#                 if p.default is p.empty:\n#                     a += 1\n#                 else:\n#                     k += 1\n#     except AttributeError:  # Python 2-\n#         s = i.getargspec(func)\n#         k = len(s.defaults or ())\n#         a = len(s.args) - k\n#     if exelf and a > 0 and i.ismethod(func):\n#         a -= 1\n#     return a, k\n\n\ndef _args_kwds_names(func, splast=False):\n    '''(INTERNAL) Get a C{func}'s args and kwds names, including\n       C{self} for methods.\n\n       @kwarg splast: If C{True}, split the last keyword argument\n                      at UNDERscores (C{bool}).\n\n       @note: Python 2 may I{not} include the C{*args} nor the\n              C{**kwds} names.\n    '''\n    i = _MODS.inspect\n    try:\n        args_kwds = i.signature(func).parameters.keys()\n    except AttributeError:  # Python 2-\n        args_kwds = i.getargspec(func).args\n    if splast and args_kwds:  # PYCHOK no cover\n        args_kwds = list(args_kwds)\n        t = args_kwds[-1:]\n        if t:\n            s = t[0].strip(_UNDER_).split(_UNDER_)\n            if len(s) > 1 or s != t:\n                args_kwds += s\n    return tuple(args_kwds)\n\n\ndef clips(sb, limit=50, white=NN, length=False):\n    '''Clip a string to the given length limit.\n\n       @arg sb: String (C{str} or C{bytes}).\n       @kwarg limit: Length limit (C{int}).\n       @kwarg white: Optionally, replace all whitespace (C{str}).\n       @kwarg length: If C{True}, append the original I{[length]} (C{bool}).\n\n       @return: The clipped or unclipped B{C{sb}}.\n    '''\n    T, n = type(sb), len(sb)\n    if n > limit > 8:\n        h  = limit // 2\n        sb = T(_ELLIPSIS4_).join((sb[:h], sb[-h:]))\n        if length:\n            n  = _MODS.streprs.Fmt.SQUARE(n)\n            sb =  T(NN).join((sb, n))\n    if white:  # replace whitespace\n        sb = T(white).join(sb.split())\n    return sb\n\n\ndef copysign0(x, y):\n    '''Like C{math.copysign(x, y)} except C{zero}, I{unsigned}.\n\n       @return: C{math.copysign(B{x}, B{y})} if B{C{x}} else\n                C{type(B{x})(0)}.\n    '''\n    return _copysign(x, (y if y else 0)) if x else copytype(0, x)\n\n\ndef copytype(x, y):\n    '''Return the value of B{x} as C{type} of C{y}.\n\n       @return: C{type(B{y})(B{x})}.\n    '''\n    return type(y)(x if x else _0_0)\n\n\ndef _enumereverse(iterable):\n    '''(INTERNAL) Reversed C{enumerate}.\n    '''\n    for j in _reverange(len(iterable)):\n        yield j, iterable[j]\n\n\ntry:\n    from math import gcd as _gcd\nexcept ImportError:  # 3.4-\n\n    def _gcd(a, b):  # PYCHOK redef\n        # <https://WikiPedia.org/wiki/Greatest_common_divisor>\n        a, b = int(a), int(b)\n        if b > a:\n            a, b = b, a\n#       if b <= 0:\n#           return 1\n        while b:\n            a, b = b, (a % b)\n        return a\n\n\ndef halfs2(str2):\n    '''Split a string in 2 halfs.\n\n       @arg str2: String to split (C{str}).\n\n       @return: 2-Tuple C{(_1st, _2nd)} half (C{str}).\n\n       @raise ValueError: Zero or odd C{len(B{str2})}.\n    '''\n    h, r = divmod(len(str2), 2)\n    if r or not h:\n        raise _ValueError(str2=str2, txt=_odd_)\n    return str2[:h], str2[h:]\n\n\ndef _integer_ratio2(x):  # PYCHOK no cover\n    '''(INTERNAL) Return C{B{x}.as_interger_ratio()}.\n    '''\n    try:  # int.as_integer_ratio in 3.8+\n        return  x.as_integer_ratio()\n    except (AttributeError, OverflowError, TypeError, ValueError):\n        return (x if isint(x) else float(x)), 1\n\n\ndef int1s(x):  # PYCHOK no cover\n    '''Count the number of 1-bits in an C{int}, I{unsigned}.\n\n       @note: C{int1s(-B{x}) == int1s(abs(B{x}))}.\n    '''\n    try:\n        return x.bit_count()  # Python 3.10+\n    except AttributeError:\n        # bin(-x) = '-' + bin(abs(x))\n        return bin(x).count(_1_)\n\n\ndef isbool(obj):\n    '''Is B{C{obj}}ect a C{bool}ean?\n\n       @arg obj: The object (any C{type}).\n\n       @return: C{True} if C{bool}ean, C{False} otherwise.\n    '''\n    return isinstance(obj, bool)  # and (obj is False\n#                                     or obj is True)\n\nassert not (isbool(1) or isbool(0) or isbool(None))  # PYCHOK 2\n\n\ndef isCartesian(obj, ellipsoidal=None):\n    '''Is B{C{obj}}ect some C{Cartesian}?\n\n       @arg obj: The object (any C{type}).\n       @kwarg ellipsoidal: If C{None}, return the type of any C{Cartesian},\n                           if C{True}, only an ellipsoidal C{Cartesian type}\n                           or if C{False}, only a spherical C{Cartesian type}.\n\n       @return: C{type(B{obj}} if a C{Cartesian} of the required type, C{False}\n                if a C{Cartesian} of an other type or {None} otherwise.\n    '''\n    if ellipsoidal is not None:\n        try:\n            return obj.ellipsoidalCartesian if ellipsoidal else obj.sphericalCartesian\n        except AttributeError:\n            return None\n    return isinstanceof(obj, _MODS.cartesianBase.CartesianBase)\n\n\ndef isclass(obj):  # XXX avoid epydoc Python 2.7 error\n    '''Is B{C{obj}}ect a C{Class} or C{type}?\n    '''\n    return _MODS.inspect.isclass(obj)\n\n\ndef iscomplex(obj, both=False):\n    '''Is B{C{obj}}ect a C{complex} or complex literal C{str}?\n\n       @arg obj: The object (any C{type}).\n       @kwarg both: If C{True}, check complex C{str} (C{bool}).\n\n       @return: C{True} if C{complex}, C{False} otherwise.\n    '''\n    try:  # hasattr('conjugate', 'real' and 'imag')\n        return isinstance(obj, complex) or bool(both and isstr(obj) and\n               isinstance(complex(obj), complex))  # numbers.Complex?\n    except (TypeError, ValueError):\n        return False\n\n\ndef isDEPRECATED(obj, outer=1):\n    '''Is B{C{obj}}ect or its outer C{type} a C{DEPRECATED}\n       class, constant, method or function?\n\n       @return: C{True} if C{DEPRECATED}, {False} if not or\n                C{None} if undetermined.\n    '''\n    r = None\n    for _ in range(max(0, outer) + 1):\n        try:  # inspect.getdoc(obj)\n            if _DEPRECATED_ in obj.__doc__:\n                return True\n            r = False\n        except AttributeError:\n            pass\n        obj = type(obj)\n    return r\n\n\ndef isfloat(obj, both=False):\n    '''Is B{C{obj}}ect a C{float} or float literal C{str}?\n\n       @arg obj: The object (any C{type}).\n       @kwarg both: If C{True}, check float C{str} (C{bool}).\n\n       @return: C{True} if C{float}, C{False} otherwise.\n    '''\n    try:\n        return isinstance(obj, float) or bool(both and\n               isstr(obj) and isinstance(float(obj), float))\n    except (TypeError, ValueError):\n        return False\n\n\ntry:\n    isidentifier = str.isidentifier  # must be str\nexcept AttributeError:  # 2.0-\n\n    def isidentifier(obj):\n        '''Is B{C{obj}}ect a Python identifier?\n        '''\n        return bool(obj and isstr(obj)\n                        and obj.replace(_UNDER_, NN).isalnum()\n                        and not obj[:1].isdigit())\n\n\ndef _isin(obj, *objs):\n    '''(INTERNAL) Return C{bool(obj in objs)} with C{True} and C{False} matching.\n    '''\n    return any(o is obj for o in objs) or \\\n           any(o == obj for o in objs if not isbool(o))\n\n\ndef isinstanceof(obj, *Classes):\n    '''Is B{C{obj}}ect an instance of one of the C{Classes}?\n\n       @arg obj: The object (any C{type}).\n       @arg Classes: One or more classes (C{Class}).\n\n       @return: C{type(B{obj}} if one of the B{C{Classes}},\n                C{None} otherwise.\n    '''\n    return type(obj) if isinstance(obj, Classes) else None\n\n\ndef isint(obj, both=False):\n    '''Is B{C{obj}}ect an C{int} or integer C{float} value?\n\n       @arg obj: The object (any C{type}).\n       @kwarg both: If C{True}, check C{float} and L{Fsum}\n                    type and value (C{bool}).\n\n       @return: C{True} if C{int} or I{integer} C{float}\n                or L{Fsum}, C{False} otherwise.\n\n       @note: Both C{isint(True)} and C{isint(False)} return\n              C{False} (and no longer C{True}).\n    '''\n    if isinstance(obj, _Ints):\n        return not isbool(obj)\n    elif both:  # and isinstance(obj, (float, Fsum))\n        try:  # NOT , _Scalars) to include Fsum!\n            return obj.is_integer()\n        except AttributeError:\n            pass  # XXX float(int(obj)) == obj?\n    return False\n\n\ndef isiterable(obj, strict=False):\n    '''Is B{C{obj}}ect C{iterable}?\n\n       @arg obj: The object (any C{type}).\n       @kwarg strict: If C{True}, check class attributes (C{bool}).\n\n       @return: C{True} if C{iterable}, C{False} otherwise.\n    '''\n    # <https://PyPI.org/project/isiterable/>\n    return bool(isiterabletype(obj)) if strict else hasattr(obj, '__iter__')  # map, range, set\n\n\ndef isiterablen(obj, strict=False):\n    '''Is B{C{obj}}ect C{iterable} and has C{len}gth?\n\n       @arg obj: The object (any C{type}).\n       @kwarg strict: If C{True}, check class attributes (C{bool}).\n\n       @return: C{True} if C{iterable} with C{len}gth, C{False} otherwise.\n    '''\n    _has = isiterabletype if strict else hasattr\n    return bool(_has(obj, '__len__') and _has(obj, '__getitem__'))\n\n\ndef isiterabletype(obj, method='__iter__'):\n    '''Is B{C{obj}}ect an instance of an C{iterable} class or type?\n\n       @arg obj: The object (any C{type}).\n       @kwarg method: The name of the required method (C{str}).\n\n       @return: The C{base-class} if C{iterable}, C{None} otherwise.\n    '''\n    try:  # <https://StackOverflow.com/questions/73568964>\n        for b in type(obj).__mro__[:-1]:  # ignore C{object}\n            try:\n                if callable(b.__dict__[method]):\n                    return b\n            except (AttributeError, KeyError):\n                pass\n    except (AttributeError, TypeError):\n        pass\n    return None\n\n\ntry:\n    from keyword import iskeyword  # 2.7+\nexcept ImportError:\n\n    def iskeyword(unused):\n        '''Not Implemented, C{False} always.\n        '''\n        return False\n\n\ndef isLatLon(obj, ellipsoidal=None):\n    '''Is B{C{obj}}ect some C{LatLon}?\n\n       @arg obj: The object (any C{type}).\n       @kwarg ellipsoidal: If C{None}, return the type of any C{LatLon},\n                           if C{True}, only an ellipsoidal C{LatLon type}\n                           or if C{False}, only a spherical C{LatLon type}.\n\n       @return: C{type(B{obj}} if a C{LatLon} of the required type, C{False}\n                if a C{LatLon} of an other type or {None} otherwise.\n    '''\n    if ellipsoidal is not None:\n        try:\n            return obj.ellipsoidalLatLon if ellipsoidal else obj.sphericalLatLon\n        except AttributeError:\n            return None\n    return isinstanceof(obj, _MODS.latlonBase.LatLonBase)\n\n\ndef islistuple(obj, minum=0):\n    '''Is B{C{obj}}ect a C{list} or C{tuple} with non-zero length?\n\n       @arg obj: The object (any C{type}).\n       @kwarg minum: Minimal C{len} required C({int}).\n\n       @return: C{True} if a C{list} or C{tuple} with C{len} at\n                least B{C{minum}}, C{False} otherwise.\n    '''\n    return isinstance(obj, _list_tuple_types) and len(obj) >= minum\n\n\ndef isNvector(obj, ellipsoidal=None):\n    '''Is B{C{obj}}ect some C{Nvector}?\n\n       @arg obj: The object (any C{type}).\n       @kwarg ellipsoidal: If C{None}, return the type of any C{Nvector},\n                           if C{True}, only an ellipsoidal C{Nvector type}\n                           or if C{False}, only a spherical C{Nvector type}.\n\n       @return: C{type(B{obj}} if an C{Nvector} of the required type, C{False}\n                if an C{Nvector} of an other type or {None} otherwise.\n    '''\n    if ellipsoidal is not None:\n        try:\n            return obj.ellipsoidalNvector if ellipsoidal else obj.sphericalNvector\n        except AttributeError:\n            return None\n    return isinstanceof(obj, _MODS.nvectorBase.NvectorBase)\n\n\ndef isodd(x):\n    '''Is B{C{x}} odd?\n\n       @arg x: Value (C{scalar}).\n\n       @return: C{True} if odd, C{False} otherwise.\n    '''\n    return bool(int(x) & 1)  # == bool(int(x) % 2)\n\n\ndef isscalar(obj, both=False):\n    '''Is B{C{obj}}ect an C{int} or integer C{float} value?\n\n       @arg obj: The object (any C{type}).\n       @kwarg both: If C{True}, check L{Fsum} and L{Fsum2Tuple}\n                    residuals.\n\n       @return: C{True} if C{int}, C{float} or C{Fsum/-2Tuple}\n                with zero residual, C{False} otherwise.\n    '''\n    if isinstance(obj, _Scalars):\n        return not isbool(obj)  # exclude bool\n    elif both and _MODS.fsums._isFsum_2Tuple(obj):\n        return bool(obj.residual == 0)\n    return False\n\n\ndef issequence(obj, *excls):\n    '''Is B{C{obj}}ect some sequence type?\n\n       @arg obj: The object (any C{type}).\n       @arg excls: Classes to exclude (C{type}), all positional.\n\n       @note: Excluding C{tuple} implies excluding C{namedtuple}.\n\n       @return: C{True} if a sequence, C{False} otherwise.\n    '''\n    return isinstance(obj, _Seqs) and not (excls and isinstance(obj, excls))\n\n\ndef isstr(obj):\n    '''Is B{C{obj}}ect some string type?\n\n       @arg obj: The object (any C{type}).\n\n       @return: C{True} if a C{str}, C{bytes}, ...,\n                C{False} otherwise.\n    '''\n    return isinstance(obj, _Strs)\n\n\ndef issubclassof(Sub, *Supers):\n    '''Is B{C{Sub}} a class and sub-class of some other class(es)?\n\n       @arg Sub: The sub-class (C{Class}).\n       @arg Supers: One or more C(super) classes (C{Class}).\n\n       @return: C{True} if a sub-class of any B{C{Supers}}, C{False}\n                if not (C{bool}) or C{None} if not a class or if no\n                B{C{Supers}} are given or none of those are a class.\n    '''\n    if isclass(Sub):\n        t = tuple(S for S in Supers if isclass(S))\n        if t:\n            return bool(issubclass(Sub, t))  # built-in\n    return None\n\n\ndef itemsorted(adict, *items_args, **asorted_reverse):\n    '''Return the items of C{B{adict}} sorted I{alphabetically,\n       case-insensitively} and in I{ascending} order.\n\n       @arg items_args: Optional positional argument(s) for method\n                        C{B{adict}.items(B*{items_args})}.\n       @kwarg asorted_reverse: Use C{B{asorted}=False} for I{alphabetical,\n                      case-sensitive} sorting and C{B{reverse}=True} for\n                      sorting in C{descending} order.\n    '''\n    def _ins(item):  # functools.cmp_to_key\n        k, v = item\n        return k.lower()\n\n    def _reverse_key(asorted=True, reverse=False):\n        return dict(reverse=reverse, key=_ins if asorted else None)\n\n    items = adict.items(*items_args) if items_args else adict.items()\n    return sorted(items, **_reverse_key(**asorted_reverse))\n\n\ndef len2(items):\n    '''Make built-in function L{len} work for generators, iterators,\n       etc. since those can only be started exactly once.\n\n       @arg items: Generator, iterator, list, range, tuple, etc.\n\n       @return: 2-Tuple C{(n, items)} of the number of items (C{int})\n                and the items (C{list} or C{tuple}).\n    '''\n    if not isinstance(items, _Seqs):  # NOT hasattr(items, '__len__'):\n        items = list(items)\n    return len(items), items\n\n\ndef map1(fun1, *xs):  # XXX map_\n    '''Call a single-argument function to each B{C{xs}}\n       and return a C{tuple} of results.\n\n       @arg fun1: 1-Arg function (C{callable}).\n       @arg xs: Arguments (C{any positional}).\n\n       @return: Function results (C{tuple}).\n    '''\n    return tuple(map(fun1, xs))  # if len(xs) != 1 else fun1(xs[0])\n\n\ndef map2(fun, *xs, **strict):\n    '''Like Python's B{C{map}} but returning a C{tuple} of results.\n\n       Unlike Python 2's built-in L{map}, Python 3+ L{map} returns a\n       L{map} object, an iterator-like object which generates the\n       results only once.  Converting the L{map} object to a tuple\n       maintains the Python 2 behavior.\n\n       @arg fun: Function (C{callable}).\n       @arg xs: Arguments (C{all positional}).\n       @kwarg strict: See U{Python 3.14+ map<https://docs.Python.org/\n                      3.14/library/functions.html#map>} (C{bool}).\n\n       @return: Function results (C{tuple}).\n    '''\n    return tuple(map(fun, *xs, **strict) if strict else map(fun, *xs))\n\n\ndef max2(*xs):\n    '''Return 2-tuple C{(max(xs), xs.index(max(xs)))}.\n    '''\n    return _max2min2(xs, max, max2)\n\n\ndef _max2min2(xs, _m, _m2):\n    '''(INTERNAL) Helper for C{max2} and C{min2}.\n    '''\n    if len(xs) == 1:\n        x = xs[0]\n        if isiterable(x) or isiterablen(x):\n            x, i = _m2(*x)\n        else:\n            i = 0\n    else:\n        x = _m(xs)  # max or min\n        i =  xs.index(x)\n    return x, i\n\n\ndef min2(*xs):\n    '''Return 2-tuple C{(min(xs), xs.index(min(xs)))}.\n    '''\n    return _max2min2(xs, min, min2)\n\n\ndef neg(x, neg0=None):\n    '''Negate C{x} and optionally, negate C{0.0} and C{-0.0}.\n\n       @kwarg neg0: Defines the return value for zero C{B{x}}: if C{None}\n                    return C{0.0}, if C{True} return C{NEG0 if B{x}=0.0}\n                    and C{0.0 if B{x}=NEG0} or if C{False} return C{B{x}}\n                    I{as-is} (C{bool} or C{None}).\n\n       @return: C{-B{x} if B{x} else 0.0, NEG0 or B{x}}.\n    '''\n    return (-x) if x else (\n           _0_0 if neg0 is None else (\n             x  if not neg0 else (\n           _0_0 if signBit(x) else _MODS.constants.\n           NEG0)))  # PYCHOK indent\n\n\ndef neg_(*xs):\n    '''Negate all C{xs} with L{neg}.\n\n       @return: A C{map(neg, B{xs})}.\n    '''\n    return map(neg, xs)\n\n\ndef _neg0(x):\n    '''(INTERNAL) Return C{NEG0 if x < 0 else _0_0},\n       unlike C{_copysign_0_0} which returns C{_N_0_0}.\n    '''\n    return _MODS.constants.NEG0 if x < 0 else _0_0\n\n\ndef _req_d_by(where, **name):\n    '''(INTERNAL) Get the fully qualified name.\n    '''\n    m = _MODS.named\n    n =  m._name__(**name)\n    m =  m.modulename(where, prefixed=True)\n    if n:\n        m = _DOT_(m, n)\n    return _SPACE_(_required_, _by_, m)\n\n\ndef _reverange(n, stop=-1, step=-1):\n    '''(INTERNAL) Reversed range yielding C{n-1, n-1-step, ..., stop+1}.\n    '''\n    return range(n - 1, stop, step)\n\n\ntry:\n    from math import signbit as signBit  # 3.15+\nexcept ImportError:\n\n    def signBit(x):\n        '''Return C{signbit(B{x})}, like C++, see also L{isneg}.\n\n           @return: C{True} if C{B{x} < 0} or C{NEG0} (C{bool}).\n        '''\n        return (x or _copysign(1, x)) < 0\n\n\ndef _signOf(x, ref):  # in .fsums\n    '''(INTERNAL) Return the sign of B{C{x}} versus B{C{ref}}.\n    '''\n    return (-1) if x < ref else (+1 if x > ref else 0)\n\n\ndef signOf(x):\n    '''Return sign of C{x} as C{int}.\n\n       @return: -1, 0 or +1 (C{int}).\n    '''\n    try:\n        s = x.signOf()  # Fsum instance?\n    except AttributeError:\n        s =  _signOf(x, 0)\n    return s\n\n\ndef splice(iterable, n=2, **fill):\n    '''Split an iterable into C{n} slices.\n\n       @arg iterable: Items to be spliced (C{list}, C{tuple}, ...).\n       @kwarg n: Number of slices to generate (C{int}).\n       @kwarg fill: Optional fill value for missing items.\n\n       @return: A generator for each of B{C{n}} slices,\n                M{iterable[i::n] for i=0..n}.\n\n       @raise TypeError: Invalid B{C{n}}.\n\n       @note: Each generated slice is a C{tuple} or a C{list},\n              the latter only if the B{C{iterable}} is a C{list}.\n\n       @example:\n\n        >>> from pygeodesy import splice\n\n        >>> a, b = splice(range(10))\n        >>> a, b\n        ((0, 2, 4, 6, 8), (1, 3, 5, 7, 9))\n\n        >>> a, b, c = splice(range(10), n=3)\n        >>> a, b, c\n        ((0, 3, 6, 9), (1, 4, 7), (2, 5, 8))\n\n        >>> a, b, c = splice(range(10), n=3, fill=-1)\n        >>> a, b, c\n        ((0, 3, 6, 9), (1, 4, 7, -1), (2, 5, 8, -1))\n\n        >>> tuple(splice(list(range(9)), n=5))\n        ([0, 5], [1, 6], [2, 7], [3, 8], [4])\n\n        >>> splice(range(9), n=1)\n        <generator object splice at 0x0...>\n    '''\n    if not isint(n):\n        raise _TypeError(n=n)\n\n    t = _xiterablen(iterable)\n    if not isinstance(t, _list_tuple_types):\n        t = tuple(t)\n\n    if n > 1:\n        if fill:\n            fill = _xkwds_get1(fill, fill=MISSING)\n            if fill is not MISSING:\n                m = len(t) % n\n                if m > 0:  # same type fill\n                    t = t + type(t)((fill,) * (n - m))\n        for i in range(n):\n            # XXX t[i::n] chokes PyChecker\n            yield t[slice(i, None, n)]\n    else:\n        yield t  # 1 slice, all\n\n\ndef _splituple(strs, *sep_splits):  # in .mgrs, ...\n    '''(INTERNAL) Split a C{comma}- or C{whitespace}-separated\n       string into a C{tuple} of stripped C{str}ings.\n    '''\n    if sep_splits:\n        t = (t.strip() for t in strs.split(*sep_splits))\n    else:\n        t = strs.strip()\n        if t:\n            t = t.replace(_COMMA_, _SPACE_).split()\n    return tuple(t) if t else ()\n\n\ndef unsigned0(x):\n    '''Unsign if C{0.0}.\n\n       @return: C{B{x}} if B{C{x}} else C{0.0}.\n    '''\n    return x if x else _0_0\n\n\ndef _xcopy(obj, deep=False):\n    '''(INTERNAL) Copy an object, shallow or deep.\n\n       @arg obj: The object to copy (any C{type}).\n       @kwarg deep: If C{True}, make a deep, otherwise\n                    a shallow copy (C{bool}).\n\n       @return: The copy of B{C{obj}}.\n    '''\n    return _deepcopy(obj) if deep else _copy(obj)\n\n\ndef _xcoverage(where, *required):  # in .__main__  # PYCHOK no cover\n    '''(INTERNAL) Import C{coverage} and check required version.\n    '''\n    try:\n        _xpackages(_xcoverage)\n        import coverage\n    except ImportError as x:\n        raise _xImportError(x, where)\n    return _xversion(coverage, where, *required)\n\n\ndef _xdup(obj, deep=False, **items):\n    '''(INTERNAL) Duplicate an object, replacing some attributes.\n\n       @arg obj: The object to copy (any C{type}).\n       @kwarg deep: If C{True}, copy deep, otherwise shallow (C{bool}).\n       @kwarg items: Attributes to be changed (C{any}).\n\n       @return: A duplicate of B{C{obj}} with modified\n                attributes, if any B{C{items}}.\n\n       @raise AttributeError: Some B{C{items}} invalid.\n    '''\n    d = _xcopy(obj, deep=deep)\n    for n, v in items.items():\n        if getattr(d, n, v) != v:\n            setattr(d, n, v)\n        elif not hasattr(d, n):\n            t = _MODS.named.classname(obj)\n            t = _SPACE_(_DOT_(t, n), _invalid_)\n            raise _AttributeError(txt=t, obj=obj, **items)\n#   if items:\n#       _MODS.props._update_all(d)\n    return d\n\n\ndef _xgeographiclib(where, *required):\n    '''(INTERNAL) Import C{geographiclib} and check required version.\n    '''\n    try:\n        _xpackages(_xgeographiclib)\n        import geographiclib\n    except ImportError as x:\n        raise _xImportError(x, where, Error=LazyImportError)\n    return _xversion(geographiclib, where, *required)\n\n\ndef _xImportError(exc, where, Error=_ImportError, **name):\n    '''(INTERNAL) Embellish an C{Lazy/ImportError}.\n    '''\n    t = _req_d_by(where, **name)\n    return Error(_Xstr(exc), txt=t, cause=exc)\n\n\ndef _xinstanceof(*Types, **names_values):\n    '''(INTERNAL) Check C{Types} of all C{name=value} pairs.\n\n       @arg Types: One or more classes or types (C{class}), all\n                   positional.\n       @kwarg names_values: One or more C{B{name}=value} pairs\n                            with the C{value} to be checked.\n\n       @raise TypeError: One B{C{names_values}} pair is not an\n                         instance of any of the B{C{Types}}.\n    '''\n    if not (Types and names_values):\n        raise _xAssertionError(_xinstanceof, *Types, **names_values)\n\n    for n, v in names_values.items():\n        if not isinstance(v, Types):\n            raise _TypesError(n, v, *Types)\n\n\ndef _xiterable(obj):\n    '''(INTERNAL) Return C{obj} if iterable, otherwise raise C{TypeError}.\n    '''\n    return obj if isiterable(obj) else _xiterror(obj, _xiterable)  # PYCHOK None\n\n\ndef _xiterablen(obj):\n    '''(INTERNAL) Return C{obj} if iterable with C{__len__}, otherwise raise C{TypeError}.\n    '''\n    return obj if isiterablen(obj) else _xiterror(obj, _xiterablen)  # PYCHOK None\n\n\ndef _xiterror(obj, _xwhich):\n    '''(INTERNAL) Helper for C{_xinterable} and C{_xiterablen}.\n    '''\n    t = typename(_xwhich)[2:]  # less '_x'\n    raise _TypeError(repr(obj), txt=_not_(t))\n\n\ndef _xnumpy(where, *required):\n    '''(INTERNAL) Import C{numpy} and check required version.\n    '''\n    try:\n        _xpackages(_xnumpy)\n        import numpy\n    except ImportError as x:\n        raise _xImportError(x, where)\n    return _xversion(numpy, where, *required)\n\n\ndef _xor(x, *xs):\n    '''(INTERNAL) Exclusive-or C{x} and C{xs}.\n    '''\n    for x_ in xs:\n        x ^= x_\n    return x\n\n\ndef _xpackages(_xhich):\n    '''(INTERNAL) Check dependency to be excluded.\n    '''\n    if _XPACKAGES:  # PYCHOK no cover\n        n = typename(_xhich)[2:]  # less '_x'\n        if n.lower() in _XPACKAGES:\n            E = _PYGEODESY_ENV(_xpackages_)\n            x = _SPACE_(n, _in_, E)\n            e = _enquote(_getenv(E, NN))\n            raise ImportError(_EQUAL_(x, e))\n\n\ndef _xscalar(**names_values):\n    '''(INTERNAL) Check all C{name=value} pairs to be C{scalar}.\n    '''\n    for n, v in names_values.items():\n        if not isscalar(v):\n            raise _TypeError(n, v, txt=_not_scalar_)\n\n\ndef _xscipy(where, *required):\n    '''(INTERNAL) Import C{scipy} and check required version.\n    '''\n    try:\n        _xpackages(_xscipy)\n        import scipy\n    except ImportError as x:\n        raise _xImportError(x, where)\n    return _xversion(scipy, where, *required)\n\n\ndef _xsubclassof(*Classes, **names_values):\n    '''(INTERNAL) Check (super) class of all C{name=value} pairs.\n\n       @arg Classes: One or more classes or types (C{class}), all\n                     positional.\n       @kwarg names_values: One or more C{B{name}=value} pairs\n                            with the C{value} to be checked.\n\n       @raise TypeError: One B{C{names_values}} pair is not a\n                         (sub-)class of any of the B{C{Classes}}.\n    '''\n    if not (Classes and names_values):\n        raise _xAssertionError(_xsubclassof, *Classes, **names_values)\n\n    for n, v in names_values.items():\n        if not issubclassof(v, *Classes):\n            raise _TypesError(n, v, *Classes)\n\n\ndef _xversion(package, where, *required, **name):\n    '''(INTERNAL) Check the C{package} version vs B{C{required}}.\n    '''\n    if required:\n        t = _version_info(package)\n        if t[:len(required)] < required:\n            t = _SPACE_(typename(package),\n                       _version_, _DOT_(*t),\n                       _below_, _DOT_(*required),\n                       _req_d_by(where, **name))\n            raise ImportError(t)\n    return package\n\n\ndef _xzip(*args, **strict):  # PYCHOK no cover\n    '''(INTERNAL) Standard C{zip(..., strict=True)}.\n    '''\n    s = _xkwds_get1(strict, strict=True)\n    if s:\n        if _zip is zip:  # < (3, 10)\n            t = _MODS.streprs.unstr(_xzip, *args, strict=s)\n            raise _NotImplementedError(t, txt=None)\n        return _zip(*args)\n    return zip(*args)\n\n\nif _MODS.sys_version_info2 < (3, 10):  # see .errors\n    _zip = zip  # PYCHOK exported\nelse:  # Python 3.10+\n\n    def _zip(*args):\n        return zip(*args, strict=True)\n\n_xpackages_ =  typename(_xpackages).lstrip(_UNDER_)\n_XPACKAGES  = _splituple(_envPYGEODESY(_xpackages_).lower())  # test/bases._X_OK\n\n# **) MIT License\n#\n# Copyright (C) 2016-2026 -- mrJean1 at Gmail -- All Rights Reserved.\n#\n# Permission is hereby granted, free of charge, to any person obtaining a\n# copy of this software and associated documentation files (the \"Software\"),\n# to deal in the Software without restriction, including without limitation\n# the rights to use, copy, modify, merge, publish, distribute, sublicense,\n# and/or sell copies of the Software, and to permit persons to whom the\n# Software is furnished to do so, subject to the following conditions:\n#\n# The above copyright notice and this permission notice shall be included\n# in all copies or substantial portions of the Software.\n#\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL\n# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR\n# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\n# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n# OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "pygeodesy/booleans.py",
    "content": "\r\n# -*- coding: utf-8 -*-\r\n\r\nu'''I{Boolean} operations on I{composite} polygons and I{clip}s.\r\n\r\nClasses L{BooleanFHP} and L{BooleanGH} are I{composites} and\r\nprovide I{boolean} operations C{intersection}, C{difference},\r\nC{reverse-difference}, C{sum} and C{union}.\r\n\r\n@note: A I{clip} is defined as a single, usually closed polygon,\r\n       a I{composite} is a collection of one or more I{clip}s.\r\n\r\n@see: U{Forster-Hormann-Popa<https://www.ScienceDirect.com/science/\r\n      article/pii/S259014861930007X>} and U{Greiner-Hormann\r\n      <http://www.Inf.USI.CH/hormann/papers/Greiner.1998.ECO.pdf>}.\r\n'''\r\n# make sure int/int division yields float quotient, see .basics\r\nfrom __future__ import division as _; del _  # noqa: E702 ;\r\n\r\nfrom pygeodesy.basics import _isin, isodd, issubclassof, map2, \\\r\n                             _xscalar,  typename\r\nfrom pygeodesy.constants import EPS, EPS2, INT0, _0_0, _0_5, _1_0\r\nfrom pygeodesy.errors import ClipError, _IsnotError, _TypeError, \\\r\n                            _ValueError, _xattr, _xkwds_get, _xkwds_pop2\r\nfrom pygeodesy.fmath import favg, Fdot_, fdot_, hypot, hypot2\r\n# from pygeodesy.fsums import fsum1  # _MODS\r\n# from pygeodesy.internals import typename  # from .basics\r\nfrom pygeodesy.interns import NN, _BANG_, _clipid_, _COMMASPACE_, \\\r\n                             _composite_, _DOT_, _duplicate_, _e_, \\\r\n                             _ELLIPSIS_, _few_, _height_, _lat_, _LatLon_, \\\r\n                             _lon_, _not_, _points_, _SPACE_, _too_, _X_, \\\r\n                             _x_,  _B_, _d_, _R_  # PYCHOK used!\r\nfrom pygeodesy.lazily import _ALL_DOCS, _ALL_LAZY, _ALL_MODS as _MODS\r\nfrom pygeodesy.latlonBase import LatLonBase, \\\r\n                                 LatLon2Tuple, Property_RO, property_RO\r\nfrom pygeodesy.named import _name__, _Named, _NotImplemented, \\\r\n                             Fmt, pairs, unstr\r\n# from pygeodesy.namedTuples import LatLon2Tupe  # from .latlonBase\r\n# from pygeodesy.points import boundsOf  # _MODS\r\n# from pygeodesy.props import Property_RO, property_RO  # from .latlonBase\r\n# from pygeodesy.streprs import Fmt, pairs, unstr  # from .named\r\nfrom pygeodesy.units import Height, HeightX\r\nfrom pygeodesy.utily import fabs, _unrollon, _Wrap\r\n\r\n# from math import fabs  # from .utily\r\n\r\n__all__ = _ALL_LAZY.booleans\r\n__version__ = '25.10.30'\r\n\r\n_0EPS  =  EPS  # near-zero, positive\r\n_EPS0  = -EPS  # near-zero, negative\r\n_1EPS  = _1_0 + EPS   # near-one, over\r\n_EPS1  = _1_0 - EPS   # near-one, under\r\n_10EPS =  EPS * 10    # see ._2Abs, ._10eps\r\n\r\n_alpha_   = 'alpha'\r\n_boolean_ = 'boolean'\r\n_case_    = 'case'\r\n_corners_ = 'corners'\r\n_open_    = 'open'\r\n\r\n\r\ndef _Cnum(txt, enum):  # PYCHOK unused\r\n    return txt  # NN(txt, _TILDE_, enum)\r\n\r\n\r\nclass _L(object):  # Intersection labels\r\n    CROSSING      = _Cnum(_X_, 1)  # C++ enum\r\n    CROSSING_D    = _Cnum(_X_ + _d_, 8)\r\n    CROSSINGs     = (CROSSING, CROSSING_D)\r\n    BOUNCING      = _Cnum(_B_, 2)\r\n    BOUNCING_D    = _Cnum(_B_ + _d_, 9)\r\n    BOUNCINGs     = (BOUNCING, BOUNCING_D) + CROSSINGs\r\n    LEFT_ON       = _Cnum('Lo', 3)\r\n    ON_ON         = _Cnum('oo', 5)\r\n    ON_LEFT       = _Cnum('oL', 6)\r\n    ON_RIGHT      = _Cnum('oR', 7)\r\n    RIGHT_ON      = _Cnum('Ro', 4)\r\n    RIGHT_LEFT_ON = (RIGHT_ON, LEFT_ON)\r\n    # Entry/Exit flags\r\n    ENTRY         = _Cnum(_e_, 1)\r\n    EXIT          = _Cnum(_x_, 0)\r\n    Toggle        = {ENTRY: EXIT,\r\n                     EXIT: ENTRY,\r\n                     None: None}\r\n\r\n_L = _L()  # PYCHOK singleton\r\n\r\n\r\nclass _RP(object):  # RelativePositions\r\n    IS_Pm = _Cnum('Pm', 2)  # C++ enum\r\n    IS_Pp = _Cnum('Pp', 3)\r\n    LEFT  = _Cnum('L',  0)\r\n    RIGHT = _Cnum(_R_,  1)\r\n\r\n_RP = _RP()  # PYCHOK singleton\r\n\r\n_RP2L = {(_RP.LEFT,  _RP.RIGHT): _L.CROSSING,\r\n         (_RP.RIGHT, _RP.LEFT):  _L.CROSSING,\r\n         (_RP.LEFT,  _RP.LEFT):  _L.BOUNCING,\r\n         (_RP.RIGHT, _RP.RIGHT): _L.BOUNCING,\r\n         # overlapping cases\r\n         (_RP.RIGHT, _RP.IS_Pp): _L.LEFT_ON,\r\n         (_RP.IS_Pp, _RP.RIGHT): _L.LEFT_ON,\r\n         (_RP.LEFT,  _RP.IS_Pp): _L.RIGHT_ON,\r\n         (_RP.IS_Pp, _RP.LEFT):  _L.RIGHT_ON,\r\n         (_RP.IS_Pm, _RP.IS_Pp): _L.ON_ON,\r\n         (_RP.IS_Pp, _RP.IS_Pm): _L.ON_ON,\r\n         (_RP.IS_Pm, _RP.RIGHT): _L.ON_LEFT,\r\n         (_RP.RIGHT, _RP.IS_Pm): _L.ON_LEFT,\r\n         (_RP.LEFT,  _RP.IS_Pm): _L.ON_RIGHT,\r\n         (_RP.IS_Pm, _RP.LEFT):  _L.ON_RIGHT}\r\n\r\n\r\nclass _LatLonBool(_Named):\r\n    '''(INTERNAL) Base class for L{LatLonFHP} and L{LatLonGH}.\r\n    '''\r\n    _alpha   = None       # point AND intersection else length\r\n    _checked = False      # checked in phase 3 iff intersection\r\n    _clipid  = INT0       # (polygonal) clip identifier, number\r\n    _dupof   = None       # original of a duplicate\r\n#   _e_x_str = NN         # shut up PyChecker\r\n    _height  = Height(0)  # interpolated height, usually meter\r\n    _linked  = None       # link to neighbor iff intersection\r\n    _next    = None       # link to the next vertex\r\n    _prev    = None       # link to the previous vertex\r\n\r\n    def __init__(self, lat_ll, lon=None, height=0, clipid=INT0, wrap=False, **name):\r\n        '''New C{LatLon[FHP|GH]} from separate C{lat}, C{lon}, C{height} and C{clipid}\r\n           scalars or from a previous C{LatLon[FHP|GH]}, C{Clip[FHP|GH]4Tuple} or some\r\n           other C{LatLon} instance.\r\n\r\n           @arg lat_ll: Latitude (C{scalar}) or a lat-/longitude (C{LatLon[FHP|GH]},\r\n                        C{Clip[FHP|GH]4Tuple} or some other C{LatLon}).\r\n           @kwarg lon: Longitude (C{scalar}), required B{C{lat_ll}} is scalar,\r\n                       ignored otherwise.\r\n           @kwarg height: Height (C{scalar}), conventionally C{meter}.\r\n           @kwarg clipid: Clip identifier (C{int}).\r\n           @kwarg wrap: If C{True}, wrap or I{normalize} B{C{lat}} and B{C{lon}} (C{bool}).\r\n           @kwarg name: Optional C{B{name}=NN} (C{str}).\r\n        '''\r\n        h, name = _xkwds_pop2(name, h=height) if name else (height, name)\r\n\r\n        if lon is None:\r\n            y, x = lat_ll.lat, lat_ll.lon\r\n            h = _xattr(lat_ll, height=h)\r\n            c = _xattr(lat_ll, clipid=clipid)\r\n        else:\r\n            y, x, c = lat_ll, lon, clipid\r\n        self.y, self.x = _Wrap.latlon(y, x) if wrap else (y, x)\r\n        # don't duplicate defaults\r\n        if self._height != h:\r\n            self._height = h\r\n        if self._clipid != c:\r\n            self._clipid = c\r\n        if name:\r\n            self.name = name\r\n\r\n    def __abs__(self):\r\n        return max(fabs(self.x), fabs(self.y))\r\n\r\n    def __eq__(self, other):\r\n        return other is self or bool(_other(self, other) and\r\n                                      other.x == self.x  and\r\n                                      other.y == self.y)\r\n\r\n    def __ne__(self, other):  # required for Python 2  # PYCHOK no cover\r\n        return not self.__eq__(other)\r\n\r\n    def __repr__(self):\r\n        '''String C{repr} of this lat-/longitude.\r\n        '''\r\n        if self._prev or self._next:\r\n            t = _ELLIPSIS_(self._prev, self._next)\r\n            t = _SPACE_(self, Fmt.ANGLE(t))\r\n        else:\r\n            t =  str(self)\r\n        return t\r\n\r\n    def __str__(self):\r\n        '''String C{str} of this lat-/longitude.\r\n        '''\r\n        t = (_lat_, self.lat), (_lon_, self.lon)\r\n        if self._height:\r\n            X  = _X_ if self.isintersection else NN\r\n            t += (_height_ + X, self._height),\r\n        if self._clipid:\r\n            t += (_clipid_, self._clipid),\r\n        if self._alpha is not None:\r\n            t += (_alpha_, self._alpha),\r\n#       if self._dupof:  # recursion risk\r\n#           t += (_dupof_, self._dupof.name),\r\n        t = pairs(t, prec=8, fmt=Fmt.g, ints=True)\r\n        t = Fmt.PAREN(_COMMASPACE_.join(t))\r\n        if self._linked:\r\n            k = _DOT_ if self._checked else _BANG_\r\n            t =  NN(t, self._e_x_str(k))  # PYCHOK expected\r\n        return NN(self.name, t)\r\n\r\n    def __sub__(self, other):\r\n        _other(self, other)\r\n        return type(self)(self.y - other.y,  # classof\r\n                          self.x - other.x)\r\n\r\n    def _2A(self, p2, p3):\r\n        # I{Signed} area of a triangle, I{doubled}.\r\n        x, y = self.x, self.y\r\n        return (p2.x - x) * (p3.y - y) - \\\r\n               (p3.x - x) * (p2.y - y)\r\n\r\n    def _2Abs(self, p2, p3, eps=_10EPS):\r\n        # I{Unsigned} area of a triangle, I{doubled}\r\n        # or 0 if below the given threshold C{eps}.\r\n        a = fabs(self._2A(p2, p3))\r\n        return 0 if a < eps else a\r\n\r\n    @property_RO\r\n    def clipid(self):\r\n        '''Get the I{clipid} (C{int} or C{0}).\r\n        '''\r\n        return self._clipid\r\n\r\n    def _equi(self, llb, eps):\r\n        # Is this LLB I{equivalent} to B{C{llb}} within\r\n        # the given I{non-negative} tolerance B{C{eps}}?\r\n        return not (fabs(llb.lon - self.x) > eps or\r\n                    fabs(llb.lat - self.y) > eps)\r\n\r\n    @property_RO\r\n    def height(self):\r\n        '''Get the I{height} (C{Height} or C{int}).\r\n        '''\r\n        h = self._height\r\n        return HeightX(h) if self.isintersection else (\r\n               Height(h)  if h else _LatLonBool._height)\r\n\r\n    def isequalTo(self, other, eps=None):\r\n        '''Is this point equal to an B{C{other}} within a given,\r\n           I{non-negative} tolerance, ignoring C{height}?\r\n\r\n           @arg other: The other point (C{LatLon}).\r\n           @kwarg eps: Tolerance for equality (C{degrees} or C{None}).\r\n\r\n           @return: C{True} if equivalent, C{False} otherwise (C{bool}).\r\n\r\n           @raise TypeError: Invalid B{C{other}}.\r\n        '''\r\n        try:\r\n            return self._equi(other, _eps0(eps))\r\n        except (AttributeError, TypeError, ValueError):\r\n            raise _IsnotError(_LatLon_, other=other)\r\n\r\n    @property_RO\r\n    def isintersection(self):\r\n        '''Is this an intersection?  May be C{ispoint} too!\r\n        '''\r\n        return bool(self._linked)\r\n\r\n    @property_RO\r\n    def ispoint(self):\r\n        '''Is this an I{original} point?  May be C{isintersection} too!\r\n        '''\r\n        return self._alpha is None\r\n\r\n    @property_RO\r\n    def lat(self):\r\n        '''Get the latitude (C{scalar}).\r\n        '''\r\n        return self.y\r\n\r\n    @property_RO\r\n    def latlon(self):\r\n        '''Get the lat- and longitude (L{LatLon2Tuple}).\r\n        '''\r\n        return LatLon2Tuple(self.y, self.x)\r\n\r\n    def _link(self, other):\r\n        # Make this and an other point neighbors.\r\n        # assert _other(self, other)\r\n        self._linked = other\r\n        other._linked = self\r\n\r\n    @property_RO\r\n    def lon(self):\r\n        '''Get the longitude (C{scalar}).\r\n        '''\r\n        return self.x\r\n\r\n    def _toClas(self, Clas, clipid):\r\n        # Return this vertex as a C{Clas} instance\r\n        # (L{Clip[FHP|GH]4Tuple} or L{LatLon[FHP|GH]}).\r\n        return Clas(self.lat, self.lon, self.height, clipid)\r\n\r\n\r\nclass LatLonFHP(_LatLonBool):\r\n    '''A point or intersection in a L{BooleanFHP} clip or composite.\r\n    '''\r\n    _en_ex  = None\r\n    _label  = None\r\n    _2split = None  # or C{._Clip}\r\n    _2xing  = False\r\n\r\n    def __init__(self, lat_ll, lon=None, height=0, clipid=INT0, **wrap_name):\r\n        '''New C{LatLonFHP} from separate C{lat}, C{lon}, C{h}eight and C{clipid}\r\n           scalars, or from a previous L{LatLonFHP}, L{ClipFHP4Tuple} or some other\r\n           C{LatLon} instance.\r\n\r\n           @arg lat_ll: Latitude (C{scalar}) or a lat-/longitude (L{LatLonFHP},\r\n                        L{ClipFHP4Tuple} or some other C{LatLon}).\r\n\r\n           @see: L{Here<_LatLonBool.__init__>} for further details.\r\n           '''\r\n        _LatLonBool.__init__(self, lat_ll, lon, height, clipid, **wrap_name)\r\n\r\n    def __add__(self, other):\r\n        _other(self, other)\r\n        return type(self)(self.y + other.y, self.x + other.x)\r\n\r\n    def __mod__(self, other):  # cross product\r\n        _other(self, other)\r\n        return fdot_(self.x, other.y, -self.y, other.x)\r\n\r\n    def __mul__(self, other):  # dot product\r\n        _other(self, other)\r\n        return fdot_(self.x, other.x,  self.y, other.y)\r\n\r\n    def __rmul__(self, other):  # scalar product\r\n        _xscalar(other=other)\r\n        return type(self)(self.y * other, self.x * other)\r\n\r\n#   def _edge2(self):\r\n#       # Return the start and end point of the\r\n#       # edge containing I{intersection} C{v}.\r\n#       n = p = self\r\n#       while p.isintersection:\r\n#           p = p._prev\r\n#           if p is self:\r\n#               break\r\n#       while n.isintersection:\r\n#           n = n._next\r\n#           if n is self:\r\n#               break\r\n#       # assert p == self or not p._2Abs(self, n)\r\n#       return p, n\r\n\r\n    def _e_x_str(self, t):  # PYCHOK no cover\r\n        if self._label:\r\n            t = NN(self._label, t)\r\n        if self._en_ex:\r\n            t = NN(t, self._en_ex)\r\n        return t\r\n\r\n    @property_RO\r\n    def _isduplicate(self):\r\n        # Is this point a I{duplicate} intersection?\r\n        p = self._dupof\r\n        return bool(p and  self._linked\r\n                      and  p is not self\r\n                      and  p == self\r\n#                     and _isin(p._alpha, None, self._alpha)\r\n                      and _isin(self._alpha, _0_0, p._alpha))\r\n\r\n#   @property_RO\r\n#   def _isduplicated(self):\r\n#       # Return the number of I{duplicates}?\r\n#       d, v = 0, self\r\n#       while v:\r\n#           if v._dupof is self:\r\n#               d += 1\r\n#           v = v._next\r\n#           if v is self:\r\n#              break\r\n#       return d\r\n\r\n    def isenclosedBy(self, *composites_points, **wrap):\r\n        '''Is this point inside one or more composites or polygons based on\r\n           the U{winding number<https://www.ScienceDirect.com/science/article/\r\n           pii/S0925772101000128>}?\r\n\r\n           @arg composites_points: Composites and/or iterables of points\r\n                           (L{ClipFHP4Tuple}, L{ClipGH4Tuple}, L{LatLonFHP},\r\n                           L{LatLonGH} or any C{LatLon}).\r\n           @kwarg wrap: Optional keyword argument C{B{wrap}=False}, if C{True},\r\n                        wrap or I{normalize} and unroll all C{points} (C{bool}).\r\n\r\n           @raise ValueError: Some C{points} invalid.\r\n\r\n           @see: U{Algorithm 6<https://www.ScienceDirect.com/science/\r\n                 article/pii/S0925772101000128>}.\r\n        '''\r\n        class _Pseudo(object):\r\n            # Pseudo-_CompositeBase._clips tuple\r\n\r\n            @property_RO\r\n            def _clips(self):\r\n                for cp in _Cps(_CompositeFHP, composites_points,\r\n                                   LatLonFHP.isenclosedBy):  # PYCHOK yield\r\n                    for c in cp._clips:\r\n                        yield c\r\n\r\n        return self._isinside(_Pseudo(), **wrap)\r\n\r\n    def _isinside(self, composite, *excludes, **wrap):\r\n        # Is this point inside a composite, excluding\r\n        # certain C{_Clip}s?  I{winding number}?\r\n        x, y, i = self.x, self.y, False\r\n        for c in composite._clips:\r\n            if c not in excludes:\r\n                w = 0\r\n                for p1, p2 in c._edges2(**wrap):\r\n                    # edge [p1,p2] must straddle y\r\n                    if (p1.y < y) is not (p2.y < y):  # or ^\r\n                        r = p2.x > x\r\n                        s = p2.y > p1.y\r\n                        if p1.x < x:\r\n                            b = r and (s is (p1._2A(p2, self) > 0))\r\n                        else:\r\n                            b = r or  (s is (p1._2A(p2, self) > 0))\r\n                        if b:\r\n                            w += 1 if s else -1\r\n                if isodd(w):\r\n                    i = not i\r\n        return i\r\n\r\n    @property_RO\r\n    def _prev_next2(self):\r\n        # Adjust 2-tuple (._prev, ._next) iff a I{duplicate} intersection\r\n        p, n = self, self._next\r\n        if self._isduplicate:  # PYCHOK no cover\r\n            p = self._dupof\r\n            while p._isduplicate:\r\n                p = p._dupof\r\n            while n._isduplicate:\r\n                n = n._next\r\n        return p._prev, n\r\n\r\n    def _RPoracle(self, p1, p2, p3):\r\n        # Relative Position oracle\r\n        if p1._linked is self:  # or p1._linked2(self):\r\n            T = _RP.IS_Pm\r\n        elif p3._linked is self:  # or p3._linked2(self):\r\n            T = _RP.IS_Pp\r\n        elif p1._2A(p2, p3) > 0:  # left turn\r\n            T = _RP.LEFT if self._2A(p1, p2) > 0 and \\\r\n                            self._2A(p2, p3) > 0 else \\\r\n                _RP.RIGHT  # PYCHOK indent\r\n        else:  # right turn (or straight)\r\n            T = _RP.RIGHT if self._2A(p1, p2) < 0 and \\\r\n                             self._2A(p2, p3) < 0 else \\\r\n                _RP.LEFT  # PYCHOK indent\r\n        return T\r\n\r\n\r\nclass LatLonGH(_LatLonBool):\r\n    '''A point or intersection in a L{BooleanGH} clip or composite.\r\n    '''\r\n    _entry = None   # entry or exit iff intersection\r\n\r\n    def __init__(self, lat_ll, lon=None, height=0, clipid=INT0, **wrap_name):\r\n        '''New C{LatLonGH} from separate C{lat}, C{lon}, C{h}eight and C{clipid}\r\n           scalars, or from a previous L{LatLonGH}, L{ClipGH4Tuple} or some other\r\n           C{LatLon} instance.\r\n\r\n           @arg lat_ll: Latitude (C{scalar}) or a lat-/longitude (L{LatLonGH},\r\n                        L{ClipGH4Tuple} or some other C{LatLon}).\r\n\r\n           @see: L{Here<_LatLonBool.__init__>} for further details.\r\n        '''\r\n        _LatLonBool.__init__(self, lat_ll, lon, height, clipid, **wrap_name)\r\n\r\n    def _check(self):\r\n        # Check-mark this vertex and its link.\r\n        self._checked = True\r\n        k = self._linked\r\n        if k and not k._checked:\r\n            k._checked = True\r\n\r\n    def _e_x_str(self, t):  # PYCHOK no cover\r\n        return t  if self._entry is None else NN(t,\r\n             (_e_ if self._entry else _x_))\r\n\r\n    def isenclosedBy(self, *composites_points, **wrap):\r\n        '''Is this point inside one or more composites or polygons based\r\n           on the U{even-odd-rule<https://www.ScienceDirect.com/science/\r\n           article/pii/S0925772101000128>}?\r\n\r\n           @arg composites_points: Composites and/or iterables of points\r\n                           (L{ClipFHP4Tuple}, L{ClipGH4Tuple}, L{LatLonFHP},\r\n                           L{LatLonGH} or any C{LatLon}).\r\n           @kwarg wrap: Optional keyword argument C{B{wrap}=False}, if C{True},\r\n                        wrap or I{normalize} and unroll all C{points} (C{bool}).\r\n\r\n           @raise ValueError: Some B{C{points}} invalid.\r\n        '''\r\n        class _Pseudo(object):\r\n            # Pseudo-_CompositeBase._edges3 method\r\n\r\n            def _edges3(self, **kwds):\r\n                for cp in _Cps(_CompositeGH, composites_points,\r\n                                   LatLonGH.isenclosedBy):  # PYCHOK yield\r\n                    for e in cp._edges3(**kwds):\r\n                        yield e\r\n\r\n        return self._isinside(_Pseudo(), **wrap)\r\n\r\n    def _isinside(self, composite, *bottom_top, **wrap):\r\n        # Is this vertex inside the composite? I{even-odd rule}?\r\n\r\n        def _x(y, p1, p2):\r\n            # return C{x} at given C{y} on edge [p1,p2]\r\n            return (y - p1.y) / (p2.y - p1.y) * (p2.x - p1.x)\r\n\r\n        # The I{even-odd} rule counts the number of edges\r\n        # intersecting a ray emitted from this point to\r\n        # east-bound infinity.  When I{odd} this point lies\r\n        # inside, if I{even} outside.\r\n        y, i = self.y, False\r\n        if not (bottom_top and _outside(y, y, *bottom_top)):\r\n            x = self.x\r\n            for p1, p2, _ in composite._edges3(**wrap):\r\n                if (p1.y < y) is not (p2.y < y):  # or ^\r\n                    r = p2.x > x\r\n                    if p1.x < x:\r\n                        b = r and (_x(y, p1, p2) > x)\r\n                    else:\r\n                        b = r or  (_x(y, p1, p2) > x)\r\n                    if b:\r\n                        i = not i\r\n        return i\r\n\r\n\r\nclass _Clip(_Named):\r\n    '''(INTERNAL) A I{doubly-linked} list representing a I{closed}\r\n       polygon of L{LatLonFHP} or L{LatLonGH} points, duplicates\r\n       and intersections with other clips.\r\n    '''\r\n    _composite = None\r\n    _dups      = 0\r\n    _first     = None\r\n    _id        = 0\r\n    _identical = False\r\n    _noInters  = False\r\n    _last      = None\r\n    _LL        = None\r\n    _len       = 0\r\n    _pushback  = False\r\n\r\n    def __init__(self, composite, clipid=INT0):\r\n        '''(INTERNAL) New C{_Clip}.\r\n        '''\r\n        # assert isinstance(composite, _CompositeBase)\r\n        if clipid in composite._clipids:\r\n            raise ClipError(clipid=clipid, txt=_duplicate_)\r\n        self._composite  = composite\r\n        self._id         = clipid\r\n        self._LL         = composite._LL\r\n        composite._clips = composite._clips + (self,)\r\n\r\n    def __contains__(self, point):  # PYCHOK no cover\r\n        '''Is the B{C{point}} in this clip?\r\n        '''\r\n        for v in self:\r\n            if v is point:  # or ==?\r\n                return True\r\n        return False\r\n\r\n    def __eq__(self, other):\r\n        '''Is this clip I{equivalent} to an B{C{other}} clip,\r\n           do both have the same C{len}, the same points, in\r\n           the same order, possibly rotated?\r\n        '''\r\n        return self._equi(_other(self, other), 0)\r\n\r\n    def __ge__(self, other):\r\n        '''See method C{__lt__}.\r\n        '''\r\n        return not self.__lt__(other)\r\n\r\n    def __gt__(self, other):\r\n        '''Is this clip C{\"above\"} an B{C{other}} clip,\r\n           located or stretched farther North or East?\r\n        '''\r\n        return self._bltr4 > _other(self, other)._bltr4\r\n\r\n    def __hash__(self):  # PYCHOK no cover\r\n        return hash(self._bltr4)\r\n\r\n    def __iter__(self):\r\n        '''Yield the points, duplicates and intersections.\r\n        '''\r\n        v = f = self._first\r\n        while v:\r\n            yield v\r\n            v = v._next\r\n            if v is f:\r\n                break\r\n\r\n    def __le__(self, other):\r\n        '''See method C{__gt__}.\r\n        '''\r\n        return not self.__gt__(other)\r\n\r\n    def __len__(self):\r\n        '''Return the number of points, duplicates and\r\n           intersections in this clip.\r\n        '''\r\n        return self._len\r\n\r\n    def __lt__(self, other):\r\n        '''Is this clip C{\"below\"} an B{C{other}} clip,\r\n           located or stretched farther South or West?\r\n        '''\r\n        return self._bltr4 < _other(self, other)._bltr4\r\n\r\n    def __ne__(self, other):  # required for Python 2  # PYCHOK no cover\r\n        '''See method C{__eq__}.\r\n        '''\r\n        return not self.__eq__(other)\r\n\r\n    _all = __iter__\r\n\r\n    @property_RO\r\n    def _all_ON_ON(self):\r\n        # Check whether all vertices are ON_ON.\r\n        L_ON_ON = _L.ON_ON\r\n        return all(v._label is L_ON_ON for v in self)\r\n\r\n    def _append(self, y_v, *x_h_clipid):\r\n        # Append a point given as C{y}, C{x}, C{h}eight and\r\n        # C{clipid} args or as a C{LatLon[FHP|GH]}.\r\n        self._last = v = self._LL(y_v, *x_h_clipid) if x_h_clipid else y_v\r\n        self._len += 1\r\n        # assert v._clipid == self._id\r\n\r\n        v._next = n = self._first\r\n        if n is None:  # set ._first\r\n            self._first = p = n = v\r\n        else:  # insert before ._first\r\n            v._prev = p = n._prev\r\n        p._next = n._prev = v\r\n        return v\r\n\r\n#   def _appendedup(self, v, clipid=0):\r\n#       # Like C{._append}, but only append C{v} if not a\r\n#       # duplicate of the one previously append[edup]'ed.\r\n#       y, x, p = v.y, v.x, self._last\r\n#       if p is None or y != p.y or x != p.x or clipid != p._clipid:\r\n#           p = self._append(y, x, v._height, clipid)\r\n#           if v._linked:\r\n#               p._linked = True  # to force errors\r\n#       return p\r\n\r\n    @Property_RO\r\n    def _bltr4(self):\r\n        # Get the bounds as 4-tuple C{(bottom, left, top, right)}.\r\n        return map2(float, _MODS.points.boundsOf(self, wrap=False))\r\n\r\n    def _bltr4eps(self, eps):\r\n        # Get the ._bltr4 bounds tuple, slightly oversized.\r\n        if eps > 0:  # > EPS\r\n            yb, xl, yt, xr = self._bltr4\r\n            yb, yt = _low_high_eps2(yb, yt, eps)\r\n            xl, xr = _low_high_eps2(xl, xr, eps)\r\n            t = yb, xl, yt, xr\r\n        else:\r\n            t = self._bltr4\r\n        return t\r\n\r\n    def _closed(self, raiser):  # PYCHOK unused\r\n        # End a clip, un-close it and check C{len}.\r\n        p, f = self._last, self._first\r\n        if f and f._prev is p and p is not f and \\\r\n                 p._next is f and p == f:  # PYCHOK no cover\r\n            # un-close the clip\r\n            f._prev = p = p._prev\r\n            p._next = f\r\n            self._len -= 1\r\n#       elif f and raiser:\r\n#           raise self._OpenClipError(p, f)\r\n        if len(self) < 3:\r\n            raise self._Error(_too_(_few_))\r\n\r\n    def _dup(self, q):\r\n        # Duplicate a point (or intersection) as intersection.\r\n        v = self._insert(q.y, q.x, q)\r\n        v._alpha = q._alpha or _0_0  # _0_0 replaces None\r\n        v._dupof = q._dupof or q\r\n        # assert v._prev is q\r\n        # assert q._next is v\r\n        return v\r\n\r\n    def _edges2(self, wrap=False, **unused):\r\n        # Yield each I{original} edge as a 2-tuple\r\n        # (p1, p2), a pair of C{LatLon[FHP|GH])}s.\r\n        p1 = p = f = self._first\r\n        while p:\r\n            p2 = p = p._next\r\n            if p.ispoint:\r\n                if wrap and p is not f:\r\n                    p2 = _unrollon(p1, p)\r\n                yield p1, p2\r\n                p1 = p2\r\n            if p is f:\r\n                break\r\n\r\n    def _equi(self, clip, eps):\r\n        # Is this clip I{equivalent} to B{C{clip}} within\r\n        # the given I{non-negative} tolerance B{C{eps}}?\r\n        r, f = len(self), self._first\r\n        if f and r == len(clip) and self._bltr4eps(eps) \\\r\n                                 == clip._bltr4eps(eps):\r\n            _equi = _LatLonBool._equi\r\n            for v in clip:\r\n                if _equi(f, v, eps):\r\n                    s, n = f, v\r\n                    for _ in range(r):\r\n                        s, n = s._next, n._next\r\n                        if not _equi(s, n, eps):\r\n                            break  # next v\r\n                    else:  # equivalent\r\n                        return True\r\n        return False\r\n\r\n    def _Error(self, txt):  # PYCHOK no cover\r\n        # Build a C{ClipError} instance\r\n        kwds = dict(len=len(self), txt=txt)\r\n        if self._dups:\r\n            kwds.update(dups=self._dups)\r\n        cp = self._composite\r\n        if self._id:\r\n            try:\r\n                i = cp._clips.index(self)\r\n                if i != self._id:\r\n                    kwds.update(clip=i)\r\n            except ValueError:\r\n                pass\r\n            kwds[_clipid_] = self._id\r\n        return ClipError(cp._kind, cp.name, **kwds)\r\n\r\n    def _index(self, clips, eps):\r\n        # see _CompositeBase._equi\r\n        for i, c in enumerate(clips):\r\n            if c._equi(self, eps):\r\n                return i\r\n        raise ValueError(NN)  # like clips.index(self)\r\n\r\n    def _insert(self, y, x, start, *end_alpha):\r\n        # insertVertex between points C{start} and\r\n        # C{end}, ordered by C{alpha} iff given.\r\n        v = self._LL(y, x, start._height, start._clipid)\r\n        n = start._next\r\n        if end_alpha:\r\n            end, alpha = end_alpha\r\n            v._alpha   = alpha\r\n            v._height  = favg(v._height, end._height, f=alpha)\r\n            # assert start is not end\r\n            while n is not end and n._alpha < alpha:\r\n                n = n._next\r\n        v._next = n\r\n        v._prev = p = n._prev\r\n        p._next = n._prev = v\r\n        self._len += 1\r\n#       _Clip._bltr4._update(self)\r\n#       _Clip._ishole._update(self)\r\n        return v\r\n\r\n    def _intersection(self, unused, q, *p1_p2_alpha):\r\n        # insert an intersection or make a point both\r\n        if p1_p2_alpha:  # intersection on edge\r\n            v = self._insert(q.y, q.x, *p1_p2_alpha)\r\n        else:  # intersection at point\r\n            v = q\r\n            # assert not v._linked\r\n            # assert v._alpha is None\r\n        return v\r\n\r\n    def _intersections(self):\r\n        # Yield all intersections, some may be points too.\r\n        for v in self:\r\n            if v.isintersection:\r\n                yield v\r\n\r\n    @Property_RO\r\n    def _ishole(self):  # PYCHOK no cover\r\n        # Is this clip a hole inside its composite?\r\n        v = self._first\r\n        return v._isinside(self._composite, self) if v else False\r\n\r\n    @property_RO\r\n    def _nodups(self):\r\n        # Yield all non-duplicates.\r\n        for v in self:\r\n            if not v._dupof:\r\n                yield v\r\n\r\n    def _noXings(self, Union):\r\n        # Are all intersections non-CROSSINGs, -BOUNCINGs?\r\n        Xings = _L.BOUNCINGs if Union else _L.CROSSINGs\r\n        return all(v._label not in Xings for v in self._intersections())\r\n\r\n    def _OpenClipError(self, s, e):  # PYCHOK no cover\r\n        # Return a C{CloseError} instance\r\n        t = NN(s, _ELLIPSIS_(_COMMASPACE_, e))\r\n        return self._Error(_SPACE_(_open_, t))\r\n\r\n    def _point2(self, insert):\r\n        # getNonIntersectionPoint and -Vertex\r\n        if not (insert and self._noInters):\r\n            for p in self._points(may_be=False):  # not p._isduplicated?\r\n                return p, None\r\n            for n in self._intersections():\r\n                p, _ = n._prev_next2\r\n                k = p._linked\r\n                if k:\r\n                    if n._linked not in k._prev_next2:\r\n                        # create a pseudo-point\r\n                        k = _0_5 * (p + n)\r\n                        if insert:\r\n                            k = self._insert(k.y, k.x, n._prev)\r\n                            r = k  # to remove later\r\n                        else:  # no ._prev, ._next\r\n                            k._clipid = n._clipid\r\n                            r = None\r\n                        return k, r\r\n        return None, None\r\n\r\n    def _points(self, may_be=True):\r\n        # Yield all points I{in original order}, which may be intersections too.\r\n        for v in self:\r\n            if v.ispoint and (may_be or not v.isintersection):\r\n                yield v\r\n\r\n    def _remove2(self, v):\r\n        # Remove vertex C{v}.\r\n        # assert not v._isduplicated\r\n        if len(self) > 1:\r\n            p = v._prev\r\n            p._next = n = v._next\r\n            n._prev = p\r\n            if self._first is v:\r\n                self._first = n\r\n            if self._last is v:\r\n                self._last = p\r\n            self._len -= 1\r\n        else:\r\n            n = self._last = \\\r\n            p = self._first = None\r\n            self._len = 0\r\n        return p, n\r\n\r\n    def _update_all(self):  # PYCHOK no cover\r\n        # Zap the I{cached} properties.\r\n        _Clip._bltr4._update( self)\r\n        _Clip._ishole._update(self)\r\n        return self  # for _special_identicals\r\n\r\n    def _Xings(self):\r\n        # Yield all I{un-checked} CROSSING intersections.\r\n        CROSSING = _L.CROSSING\r\n        for v in self._intersections():\r\n            if v._label is CROSSING and not v._checked:\r\n                yield v\r\n\r\n\r\nclass _CompositeBase(_Named):\r\n    '''(INTERNAL) Base class for L{BooleanFHP} and L{BooleanGH}\r\n       (C{_CompositeFHP} and C{_CompositeGH}).\r\n    '''\r\n    _clips  =  ()   # tuple of C{_Clips}\r\n    _eps    =  EPS  # null edges\r\n    _kind   = _corners_\r\n    _LL     = _LatLonBool  # shut up PyChecker\r\n    _raiser =  False\r\n    _xtend  =  False\r\n\r\n    def __init__(self, lls, kind=NN, eps=EPS, **name):\r\n        '''(INTERNAL) See L{BooleanFHP} and L{BooleanGH}.\r\n        '''\r\n        n = _name__(name, _or_nameof=lls)\r\n        if n:\r\n            self.name = n\r\n        if kind:\r\n            self._kind = kind\r\n        if self._eps < eps:\r\n            self._eps = eps\r\n\r\n        c = _Clip(self)\r\n        lp = None\r\n        for ll in lls:\r\n            ll = self._LL(ll)\r\n            if lp is None:\r\n                c._id = ll._clipid  # keep clipid\r\n                lp = c._append(ll)\r\n            elif ll._clipid != lp._clipid:  # new clip\r\n                c._closed(self.raiser)\r\n                c = _Clip(self, ll._clipid)\r\n                lp = c._append(ll)\r\n            elif abs(ll - lp) > eps:  # PYCHOK lp\r\n                lp = c._append(ll)\r\n            else:\r\n                c._dups += 1\r\n        c._closed(self.raiser)\r\n\r\n    def __contains__(self, point):  # PYCHOK no cover\r\n        '''Is the B{C{point}} in one of the clips?\r\n        '''\r\n        for c in self._clips:\r\n            if point in c:\r\n                return True\r\n        return False\r\n\r\n    def __eq__(self, other):\r\n        '''Is this I{composite} equivalent to an B{C{other}}, i.e.\r\n           do both contain I{equivalent} clips in the same or in a\r\n           different order?  Two clips are considered I{equivalent}\r\n           if both have the same points etc. in the same order,\r\n           possibly rotated.\r\n        '''\r\n        return self._equi(_other(self, other), 0)\r\n\r\n    def __iter__(self):\r\n        '''Yield all points, duplicates and intersections.\r\n        '''\r\n        for c in self._clips:\r\n            for v in c:\r\n                yield v\r\n\r\n    def __ne__(self, other):  # required for Python 2\r\n        '''See method C{__eq__}.\r\n        '''\r\n        return not self.__eq__(other)\r\n\r\n    def __len__(self):\r\n        '''Return the I{total} number of points.\r\n        '''\r\n        return sum(map(len, self._clips)) if self._clips else 0\r\n\r\n    def __repr__(self):\r\n        '''String C{repr} of this composite.\r\n        '''\r\n        c = len(self._clips)\r\n        c = Fmt.SQUARE(c) if c > 1 else NN\r\n        n = Fmt.SQUARE(len(self))\r\n        t = Fmt.PAREN(self)  # XXX not unstr\r\n        return NN(self.typename, c, n, t)\r\n\r\n    def __str__(self):\r\n        '''String C{str} of this composite.\r\n        '''\r\n        return _COMMASPACE_.join(map(str, self))\r\n\r\n    @property_RO\r\n    def _bottom_top_eps2(self):\r\n        # Get the bottom and top C{y} bounds, oversized.\r\n        return _min_max_eps2(min(v.y for v in self),\r\n                             max(v.y for v in self))\r\n\r\n    def _class(self, corners, kwds, **dflts):\r\n        # Return a new instance\r\n        _g = kwds.get\r\n        kwds = dict((n, _g(n, v)) for n, v in dflts.items())\r\n        return type(self)(corners or (), **kwds)\r\n\r\n    @property_RO\r\n    def _clipids(self):  # PYCHOK no cover\r\n        for c in self._clips:\r\n            yield c._id\r\n\r\n    def clipids(self):\r\n        '''Return a tuple with all C{clipid}s, I{ordered}.\r\n        '''\r\n        return tuple(self._clipids)\r\n\r\n#   def _clipidups(self, other):\r\n#       # Number common C{clipid}s between this and an C{other} composite\r\n#       return len(set(self._clipids).intersection(set(other._clipids)))\r\n\r\n    def _edges3(self, **raiser_wrap):\r\n        # Yield each I{original} edge as a 3-tuple\r\n        # C{(LatLon[FHP|GH], LatLon[FHP|GH], _Clip)}.\r\n        for c in self._clips:\r\n            for p1, p2 in c._edges2(**raiser_wrap):\r\n                yield p1, p2, c\r\n\r\n    def _encloses(self, lat, lon, **wrap):\r\n        # see function .points.isenclosedBy\r\n        return self._LL(lat, lon).isenclosedBy(self, **wrap)\r\n\r\n    @property\r\n    def eps(self):\r\n        '''Get the null edges tolerance (C{degrees}, usually).\r\n        '''\r\n        return self._eps\r\n\r\n    @eps.setter  # PYCHOK setter!\r\n    def eps(self, eps):\r\n        '''Set the null edges tolerance (C{degrees}, usually).\r\n        '''\r\n        self._eps = eps\r\n\r\n    def _10eps(self, **eps_):\r\n        # Get eps for _LatLonBool._2Abs\r\n        e = _xkwds_get(eps_, eps=self._eps)\r\n        if e != EPS:\r\n            e *= _10EPS / EPS\r\n        else:\r\n            e  = _10EPS\r\n        return e\r\n\r\n    def _equi(self, other, eps):\r\n        # Is this composite I{equivalent} to an B{C{other}} within\r\n        # the given, I{non-negative} tolerance B{C{eps}}?\r\n        cs, co = self._clips, other._clips\r\n        if cs and len(cs) == len(co):\r\n            if eps > 0:\r\n                _index = _Clip._index\r\n            else:\r\n                def _index(c, cs, unused):\r\n                    return cs.index(c)\r\n            try:\r\n                cs = list(sorted(cs))\r\n                for c in sorted(co):\r\n                    cs.pop(_index(c, cs, eps))\r\n            except ValueError:  # from ._index\r\n                pass\r\n            return False if cs else True\r\n        else:  # both null?\r\n            return False if cs or co else True\r\n\r\n    def _intersections(self):\r\n        # Yield all intersections.\r\n        for c in self._clips:\r\n            for v in c._intersections():\r\n                yield v\r\n\r\n    def isequalTo(self, other, eps=None):\r\n        '''Is this boolean/composite equal to an B{C{other}} within\r\n           a given, I{non-negative} tolerance?\r\n\r\n           @arg other: The other boolean/composite (C{Boolean[FHP|GB]}).\r\n           @kwarg eps: Tolerance for equality (C{degrees} or C{None}).\r\n\r\n           @return: C{True} if equivalent, C{False} otherwise (C{bool}).\r\n\r\n           @raise TypeError: Invalid B{C{other}}.\r\n\r\n           @see: Method C{__eq__}.\r\n        '''\r\n        if isinstance(other, _CompositeBase):\r\n            return self._equi(other, _eps0(eps))\r\n        raise _IsnotError(_boolean_, _composite_, other=other)\r\n\r\n    def _kwds(self, op, **more):\r\n        # Get all keyword arguments as C{dict}.\r\n        kwds = dict(raiser=self.raiser, eps=self.eps,\r\n                      name=self.name or typename(op))\r\n        kwds.update(more)\r\n        return kwds\r\n\r\n    @property_RO\r\n    def _left_right_eps2(self):\r\n        # Get the left and right C{x} bounds, oversized.\r\n        return _min_max_eps2(min(v.x for v in self),\r\n                             max(v.x for v in self))\r\n\r\n    def _points(self, may_be=True):  # PYCHOK no cover\r\n        # Yield all I{original} points, which may be intersections too.\r\n        for c in self._clips:\r\n            for v in c._points(may_be=may_be):\r\n                yield v\r\n\r\n    @property\r\n    def raiser(self):\r\n        '''Get the option to throw L{ClipError} exceptions (C{bool}).\r\n        '''\r\n        return self._raiser\r\n\r\n    @raiser.setter  # PYCHOK setter!\r\n    def raiser(self, throw):\r\n        '''Set the option to throw L{ClipError} exceptions (C{bool}).\r\n        '''\r\n        self._raiser = bool(throw)\r\n\r\n    def _results(self, _presults, Clas, closed=False, inull=False, **eps):\r\n        # Yield the dedup'd results, as L{ClipFHP4Tuple}s\r\n        C = self._LL if Clas is None else Clas\r\n        e = self._10eps(**eps)\r\n        for clipid, ns in enumerate(_presults):\r\n            f = p = v = None\r\n            for n in ns:\r\n                if f is None:\r\n                    yield n._toClas(C, clipid)\r\n                    f = p = n\r\n                elif v is None:\r\n                    v = n  # got f, p, v\r\n                elif inull or p._2Abs(v, n, eps=e):\r\n                    yield v._toClas(C, clipid)\r\n                    p, v = v, n\r\n                else:  # null, colinear, ... skipped\r\n                    v = n\r\n            if v and (inull or p._2Abs(v, f, eps=e)):\r\n                yield v._toClas(C, clipid)\r\n                p = v\r\n            if f and p != f and closed:  # close clip\r\n                yield f._toClas(C, clipid)\r\n\r\n    def _sum(self, other, op):\r\n        # Combine this and an C{other} composite\r\n        LL = self._LL\r\n        sp = self.copy(name=self.name or typename(op))\r\n        sp._clips, sid = (), INT0  # new clips\r\n        for cp in (self, other):\r\n            for c in cp._clips:\r\n                _ap = _Clip(sp, sid)._append\r\n                for v in c._nodups:\r\n                    _ap(LL(v.y, v.x, v.height, sid))\r\n                sid += 1\r\n        return sp\r\n\r\n    def _sum1(self, _a_p, *args, **kwds):  # in .karney, .points\r\n        # Sum the area or perimeter of all clips\r\n        return _MODS.fsums.fsum1((_a_p(c, *args, **kwds) for c in self._clips))\r\n\r\n    def _sum2(self, LL, _a_p, *args, **kwds):  # in .sphericalNvector, -Trigonometry\r\n        # Sum the area or perimeter of all clips\r\n\r\n        def _lls(clip):  # convert clip to LLs\r\n            _LL = LL\r\n            for v in clip:\r\n                yield _LL(v.lat, v.lon)  # datum=Sphere\r\n\r\n        return _MODS.fsums.fsum1((_a_p(_lls(c), *args, **kwds) for c in self._clips))\r\n\r\n    def toLatLon(self, LatLon=None, closed=False, **LatLon_kwds):\r\n        '''Yield all (non-duplicate) points and intersections\r\n           as an instance of B{C{LatLon}}.\r\n\r\n           @kwarg LatLon: Class to use (C{LatLon}) or if C{None},\r\n                          L{LatLonFHP} or L{LatLonGH}.\r\n           @kwarg closed: If C{True}, close each clip (C{bool}).\r\n           @kwarg LatLon_kwds: Optional, additional B{C{LatLon}}\r\n                               keyword arguments, ignore if\r\n                               C{B{LatLon} is None}.\r\n\r\n           @raise TypeError: Invalid B{C{LatLon}}.\r\n\r\n           @note: For intersections, C{height} is an instance\r\n                  of L{HeightX}, otherwise of L{Height}.\r\n        '''\r\n        if LatLon is None:\r\n            LL, kwds = self._LL, {}\r\n        elif issubclassof(LatLon, _LatLonBool, LatLonBase):\r\n            LL, kwds = LatLon, LatLon_kwds\r\n        else:\r\n            raise _TypeError(LatLon=LatLon)\r\n\r\n        for c in self._clips:\r\n            lf, cid = None, c._id\r\n            for v in c._nodups:\r\n                ll = LL(v.y, v.x, **kwds)\r\n                ll._height = v.height\r\n                if ll._clipid != cid:\r\n                    ll._clipid = cid\r\n                yield ll\r\n                if lf is None:\r\n                    lf = ll\r\n            if closed and lf:\r\n                yield lf\r\n\r\n\r\nclass _CompositeFHP(_CompositeBase):\r\n    '''(INTERNAL) A list of clips representing a I{composite}\r\n       of L{LatLonFHP} points, duplicates and intersections\r\n       with an other I{composite}.\r\n    '''\r\n    _LL    = LatLonFHP\r\n    _Union = False\r\n\r\n    def __init__(self, lls, raiser=False, **name_kind_eps):\r\n        # New L{_CompositeFHP}.\r\n        if raiser:\r\n            self._raiser = True\r\n        _CompositeBase.__init__(self, lls, **name_kind_eps)\r\n\r\n    def _classify(self):\r\n        # 2) Classify intersection chains.\r\n        L = _L\r\n        for v in self._intersections():\r\n            n, b = v, v._label\r\n            if b in L.RIGHT_LEFT_ON:  # next chain\r\n                while True:\r\n                    n._label = None  # _xkwds_pop(n.__dict__, _label=None)\r\n                    n = n._next\r\n                    if n is v or n._label is not L.ON_ON:  # n._label and ...\r\n                        break\r\n                a = L.LEFT_ON if n._label is L.ON_LEFT else L.RIGHT_ON\r\n                v._label = n._label = L.BOUNCING_D if a is b else L.CROSSING_D\r\n\r\n        # 3) Copy labels\r\n        for v in self._intersections():\r\n            v._linked._label = v._label\r\n\r\n    def _clip(self, corners, Union=False, Clas=None,\r\n                           **closed_inull_raiser_eps):\r\n        # Clip this composite with another one, C{corners},\r\n        # using the Foster-Hormann-Popa's algorithm.\r\n        P = self\r\n        Q = self._class(corners, closed_inull_raiser_eps,\r\n                                 eps=P._eps, raiser=False)\r\n        if Union:\r\n            P._Union = Q._Union = True\r\n\r\n        bt = Q._bottom_top_eps2\r\n        lr = Q._left_right_eps2\r\n        # compute and insert intersections\r\n        for p1, p2, Pc in P._edges3(**closed_inull_raiser_eps):\r\n            if not (_outside(p1.x, p2.x, *lr) or\r\n                    _outside(p1.y, p2.y, *bt)):\r\n                e = _EdgeFHP(p1, p2)\r\n                if e._dp2 > EPS2:  # non-null edge\r\n                    for q1, q2, Qc in Q._edges3(**closed_inull_raiser_eps):\r\n                        for T, p, q in e._intersect3(q1, q2):\r\n                            p = Pc._intersection(T, *p)\r\n                            q = Qc._intersection(T, *q)\r\n                            # assert not p._linked\r\n                            # assert not q._linked\r\n                            p._link(q)\r\n\r\n        # label and classify intersections\r\n        P._labelize()\r\n        P._classify()\r\n\r\n        # check for special cases\r\n        P._special_cases(Q)\r\n        Q._special_cases(P)\r\n        # handle identicals\r\n        P._special_identicals(Q)\r\n\r\n        # set Entry/Exit flags\r\n        P._set_entry_exits(Q)\r\n        Q._set_entry_exits(P)\r\n\r\n        # handle splits and crossings\r\n        P._splits_xings(Q)\r\n\r\n        # yield the results\r\n        return P._results(P._presults(Q), Clas, **closed_inull_raiser_eps)\r\n\r\n    @property_RO\r\n    def _identicals(self):\r\n        # Yield all clips marked C{._identical}.\r\n        for c in self._clips:\r\n            if c._identical:\r\n                yield c\r\n\r\n    def _labelize(self):\r\n        # 1) Intersections classification\r\n        for p in self._intersections():\r\n            q = p._linked\r\n            # determine local configuration at this intersection\r\n            # and positions of Q- and Q+ relative to (P-, I, P+)\r\n            p1, p3 = p._prev_next2\r\n            q1, q3 = q._prev_next2\r\n            t = (q1._RPoracle(p1, p, p3),\r\n                 q3._RPoracle(p1, p, p3))\r\n            # check intersecting and overlapping cases\r\n            p._label = _RP2L.get(t, None)\r\n\r\n    def _presults(self, other):\r\n        # Yield the result clips, each as a generator\r\n        # of the L{_LatLonFHP}s in that clip\r\n        for cp in (self, other):\r\n            for c in cp._clips:\r\n                if c._pushback:\r\n                    yield c._all()\r\n        for c in self._clips:\r\n            for X in c._Xings():\r\n                yield self._resultX(X)\r\n\r\n    def _resultX(self, X):\r\n        # Yield the results from CROSSING C{X}.\r\n        L, U, v = _L, self._Union, X\r\n        while v:\r\n            v._checked = True\r\n            r = v  # in P or Q\r\n            s = L.Toggle[v._en_ex]\r\n            e = (s is L.EXIT) ^ U\r\n            while True:\r\n                v = v._next if e else v._prev\r\n                yield v\r\n                v._checked = True\r\n                if v._en_ex is s or v is X:\r\n                    break\r\n                if v is r:  # full circle\r\n                    raise ClipError(full_circle=v, clipid=v._clipid)\r\n            if v is not X:\r\n                v = v._linked\r\n            if v is X:\r\n                break\r\n\r\n    def _set_entry_exits(self, other):  # MCCABE 14\r\n        # 4) Set entry/exit flags\r\n        L, U = _L, self._Union\r\n        for c in self._clips:\r\n            n, k = c._point2(True)\r\n            if n:\r\n                f = n\r\n                s = L.EXIT if n._isinside(other) else L.ENTRY\r\n                t = L.EXIT  # first_chain_vertex = True\r\n                while True:\r\n                    if n.isintersection:\r\n                        b = n._label\r\n                        if b is L.CROSSING:\r\n                            n._en_ex = s\r\n                            s = L.Toggle[s]\r\n                        elif b is L.BOUNCING and ((s is L.EXIT) ^ U):\r\n                            n._2split = c  # see ._splits_xings\r\n                        elif b is L.CROSSING_D:\r\n                            n._en_ex = s\r\n                            if (s is t) ^ U:\r\n                                n._label = L.CROSSING\r\n                            t = L.Toggle[t]\r\n                            if t is L.EXIT:  # first_chain_vertex == True\r\n                                s = L.Toggle[s]\r\n                        elif b is L.BOUNCING_D:\r\n                            n._en_ex = s\r\n                            if (s is t) ^ U:\r\n                                n._2xing = True  # see ._splits_xings\r\n                            s = L.Toggle[s]\r\n                            t = L.Toggle[t]\r\n                    n = n._next  # _, n = n._prev_next2\r\n                    if n is f:\r\n                        break  # PYCHOK attr?\r\n                if k:\r\n                    c._remove2(k)\r\n\r\n    def _special_cases(self, other):\r\n        # 3.5) Check special cases\r\n        U = self._Union\r\n        for c in self._clips:\r\n            if c._noXings(U):\r\n                c._noInters = True\r\n                if c._all_ON_ON:\r\n                    c._identical = True\r\n                else:\r\n                    p, _ = c._point2(False)\r\n                    if p and (p._isinside(other) ^ U):\r\n                        c._pushback = True\r\n\r\n    def _special_identicals(self, other):\r\n        # 3.5) Handle identicals\r\n        _u = _Clip._update_all\r\n        cds = dict((c._id, _u(c)) for c in other._identicals)\r\n        # assert len(cds) == len(other._identicals)\r\n        if cds:  # PYCHOK no cover\r\n            for c in self._identicals:\r\n                c._update_all()\r\n                for v in c._intersections():\r\n                    d = cds.get(v._linked._clipid, None)\r\n                    if d and d._ishole is c._ishole:\r\n                        c._pushback = True\r\n                        break  # next c\r\n\r\n    @property_RO\r\n    def _2splits(self):\r\n        # Yield all intersections marked C{._2split}\r\n        for p in self._intersections():\r\n            if p._2split:\r\n                # assert isinstance(p._2split, _Clip)\r\n                yield p\r\n\r\n    def _splits_xings(self, other):  # MCCABE 15\r\n        # 5) Handle split pairs and 6) crossing candidates\r\n\r\n        def _2A_dup2(p, P):  # PYCHOK unused\r\n            p1, p2 = p._prev_next2\r\n            ap = p1._2A(p, p2)\r\n            Pc = p._2split\r\n            # assert Pc in P._clips\r\n            # assert p in Pc\r\n            return ap, Pc._dup(p)\r\n\r\n        def _links2(ps, qs):  # PYCHOK P unused?\r\n            # Yield each link as a 2-tuple(p, q)\r\n            id_qs = set(map(id, qs))\r\n            if id_qs:\r\n                for p in ps:\r\n                    q = p._linked\r\n                    if q and id(q) in id_qs:\r\n                        yield p, q\r\n\r\n        L = _L\r\n        E =  L.ENTRY if self._Union else L.EXIT\r\n        X =  L.Toggle[E]\r\n        for p, q in _links2(self._2splits, other._2splits):\r\n            ap, pp = _2A_dup2(p, self)\r\n            aq, qq = _2A_dup2(q, other)\r\n            if (ap * aq) > 0:  # PYCHOK no cover\r\n                p._link(qq)  # overwrites ...\r\n                q._link(pp)  # ... p-q link\r\n            else:\r\n                pp._link(qq)\r\n            p._en_ex  = q._en_ex  = E\r\n            pp._en_ex = qq._en_ex = X\r\n            p._label  = pp._label = \\\r\n            q._label  = qq._label = L.CROSSING\r\n\r\n        for p, q in _links2(self._2xings, other._2xings):\r\n            p._label = q._label = L.CROSSING\r\n\r\n    @property_RO\r\n    def _2xings(self):\r\n        # Yield all intersections marked C{._2xing}\r\n        for p in self._intersections():\r\n            if p._2xing:\r\n                yield p\r\n\r\n\r\nclass _CompositeGH(_CompositeBase):\r\n    '''(INTERNAL) A list of clips representing a I{composite}\r\n       of L{LatLonGH} points, duplicates and intersections\r\n       with an other I{composite}.\r\n    '''\r\n    _LL    = LatLonGH\r\n    _xtend = False\r\n\r\n    def __init__(self, lls, raiser=False, xtend=False, **name_kind_eps):\r\n        # New L{_CompositeGH}.\r\n        if xtend:\r\n            self._xtend = True\r\n        elif raiser:\r\n            self._raiser = True\r\n        _CompositeBase.__init__(self, lls, **name_kind_eps)\r\n\r\n    def _clip(self, corners, s_entry, c_entry, Clas=None,\r\n                           **closed_inull_raiser_xtend_eps):\r\n        # Clip this polygon with another one, C{corners}, using\r\n        # Greiner/Hormann's algorithm extended to optionally\r\n        # handle some so-called \"degenerate cases\"\r\n        S = self\r\n        C = self._class(corners, closed_inull_raiser_xtend_eps,\r\n                                 raiser=False, xtend=False)\r\n        bt = C._bottom_top_eps2\r\n        lr = C._left_right_eps2\r\n        # 1. find intersections\r\n        for s1, s2, Sc in S._edges3(**closed_inull_raiser_xtend_eps):\r\n            if not (_outside(s1.x, s2.x, *lr) or\r\n                    _outside(s1.y, s2.y, *bt)):\r\n                e = _EdgeGH(s1, s2, **closed_inull_raiser_xtend_eps)\r\n                if e._hypot2 > EPS2:  # non-null edge\r\n                    for c1, c2, Cc in C._edges3(**closed_inull_raiser_xtend_eps):\r\n                        for y, x, sa, ca in e._intersect4(c1, c2):\r\n                            s = Sc._insert(y, x, s1, s2, sa)\r\n                            c = Cc._insert(y, x, c1, c2, ca)\r\n                            s._link(c)\r\n\r\n        # 2. identify entry/exit intersections\r\n        if S._first:\r\n            s_entry ^= S._first._isinside(C, *bt)\r\n            for v in S._intersections():\r\n                v._entry = s_entry = not s_entry\r\n\r\n        if C._first:\r\n            c_entry ^= C._first._isinside(S)\r\n            for v in C._intersections():\r\n                v._entry = c_entry = not c_entry\r\n\r\n        # 3. yield the result(s)\r\n        return S._results(S._presults(), Clas, **closed_inull_raiser_xtend_eps)\r\n\r\n    @property_RO\r\n    def _first(self):\r\n        # Get the very first vertex of the first clip\r\n        for v in self:\r\n            return v\r\n        return None  # PYCHOK no cover\r\n\r\n    def _kwds(self, op, **more):\r\n        # Get the kwds C{dict}.\r\n        return _CompositeBase._kwds(self, op, xtend=self.xtend, **more)\r\n\r\n    def _presults(self):\r\n        # Yield the unchecked intersection(s).\r\n        for c in self._clips:\r\n            for v in c._intersections():\r\n                if not v._checked:\r\n                    yield self._resultU(v)\r\n\r\n    def _resultU(self, v):\r\n        # Yield the result from an un-checked intersection.\r\n        while v and not v._checked:\r\n            v._check()\r\n            yield v\r\n            r = v\r\n            e = v._entry\r\n            while True:\r\n                v = v._next if e else v._prev\r\n                yield v\r\n                if v._linked:\r\n                    break\r\n                if v is r:\r\n                    raise ClipError(full_circle=v, clipid=v._clipid)\r\n            v = v._linked  # switch\r\n\r\n    @property\r\n    def xtend(self):\r\n        '''Get the option to handle some I{degenerate cases} (C{bool}).\r\n        '''\r\n        return self._xtend\r\n\r\n    @xtend.setter  # PYCHOK setter!\r\n    def xtend(self, xtend):\r\n        '''Set the option to handle some I{degenerate cases} (C{bool}).\r\n        '''\r\n        self._xtend = bool(xtend)\r\n\r\n\r\nclass _EdgeFHP(object):\r\n    # An edge between two L{LatLonFHP} points.\r\n\r\n    X_INTERSECT = _Cnum('Xi', 1)  # C++ enum\r\n    X_OVERLAP   = _Cnum('Xo', 5)\r\n    P_INTERSECT = _Cnum('Pi', 3)\r\n    P_OVERLAP   = _Cnum('Po', 7)\r\n    Ps          = (P_INTERSECT, P_OVERLAP, X_OVERLAP)\r\n    Q_INTERSECT = _Cnum('Qi', 2)\r\n    Q_OVERLAP   = _Cnum('Qo', 6)\r\n    Qs          = (Q_INTERSECT, Q_OVERLAP, X_OVERLAP)\r\n    V_INTERSECT = _Cnum('Vi', 4)\r\n    V_OVERLAP   = _Cnum('Vo', 8)\r\n    Vs          = (V_INTERSECT, V_OVERLAP)\r\n\r\n    def __init__(self, p1, p2, **unused):\r\n        # New edge between points C{p1} and C{p2}, each a L{LatLonFHP}.\r\n        self._p1_p2 = p1, p2\r\n        self._dp    = dp = p2 - p1\r\n        self._dp2   = dp * dp  # dot product, hypot2\r\n\r\n        self._lr, \\\r\n        self._bt  = _left_right_bottom_top_eps2(p1, p2)\r\n\r\n    def _intersect3(self, q1, q2):\r\n        # Yield intersection(s) Type or C{None}\r\n        if not (_outside(q1.x, q2.x, *self._lr) or\r\n                _outside(q1.y, q2.y, *self._bt)):\r\n            dq  = q2 - q1\r\n            dq2 = dq * dq  # dot product, hypot2\r\n            if dq2 > EPS2:  # like ._clip\r\n                T, _E  = None, _EdgeFHP  # type(self)\r\n                p1, p2 = self._p1_p2\r\n                ap1   = p1._2A(q1, q2)\r\n                ap2_1 = p2._2A(q1, q2) - ap1\r\n                if fabs(ap2_1) > _0EPS:  # non-parallel edges\r\n                    aq1   = q1._2A(p1, p2)\r\n                    aq2_1 = q2._2A(p1, p2) - aq1\r\n                    if fabs(aq2_1) > _0EPS:\r\n                        # compute and classify alpha and beta\r\n                        a, a_0, a_0_1, _ = _alpha4(-ap1 / ap2_1)\r\n                        b, b_0, b_0_1, _ = _alpha4(-aq1 / aq2_1)\r\n                        # distinguish intersection types\r\n                        T = _E.X_INTERSECT if a_0_1 and b_0_1 else (\r\n                            _E.P_INTERSECT if a_0_1 and b_0   else (\r\n                            _E.Q_INTERSECT if a_0   and b_0_1 else (\r\n                            _E.V_INTERSECT if a_0   and b_0   else None)))\r\n\r\n                elif fabs(ap1) < _0EPS:  # parallel or colinear edges\r\n                    dp = self._dp\r\n                    d1 = q1 - p1\r\n                    # compute and classify alpha and beta\r\n                    a, a_0, a_0_1, _a_0_1 = _alpha4((d1 * dp) / self._dp2)\r\n                    b, b_0, b_0_1, _b_0_1 = _alpha4((d1 * dq) /     (-dq2))\r\n                    # distinguish overlap type\r\n                    T = _E.X_OVERLAP if  a_0_1 and  b_0_1 else (\r\n                        _E.P_OVERLAP if  a_0_1 and _b_0_1 else (\r\n                        _E.Q_OVERLAP if _a_0_1 and  b_0_1 else (\r\n                        _E.V_OVERLAP if  a_0   and  b_0   else None)))\r\n\r\n                if T:\r\n                    if T is _E.X_INTERSECT:\r\n                        v = p1 + a * self._dp\r\n                        yield T, (v, p1, p2, a), (v, q1, q2, b)\r\n                    elif T in _E.Vs:\r\n                        yield T, (p1,), (q1,)\r\n                    else:\r\n                        if T in _E.Qs:\r\n                            yield T, (p1,), (p1, q1, q2, b)\r\n                        if T in _E.Ps:\r\n                            yield T, (q1, p1, p2, a), (q1,)\r\n\r\n\r\nclass _EdgeGH(object):\r\n    # An edge between two L{LatLonGH} points.\r\n\r\n    _raiser = False\r\n    _xtend  = False\r\n\r\n    def __init__(self, s1, s2, raiser=False, xtend=False, **unused):\r\n        # New edge between points C{s1} and C{s2}, each a L{LatLonGH}.\r\n        self._s1, self._s2 = s1, s2\r\n        self._x_sx_y_sy = (s1.x, s2.x - s1.x,\r\n                           s1.y, s2.y - s1.y)\r\n        self._lr, \\\r\n        self._bt  = _left_right_bottom_top_eps2(s1, s2)\r\n\r\n        if xtend:\r\n            self._xtend = True\r\n        elif raiser:\r\n            self._raiser = True\r\n\r\n    def _alpha2(self, x, y, dx, dy):\r\n        # Return C{(alpha)}, see .points.nearestOn5\r\n        a = Fdot_(y, dy,  x, dx).fover(self._hypot2)\r\n        d = Fdot_(y, dx, -x, dy).fover(self._hypot0)\r\n        return a, fabs(d)\r\n\r\n    def _Error(self, n, *args, **kwds):  # PYCHOK no cover\r\n        t = _DOT_(unstr(_EdgeGH, self._s1, self._s2),\r\n                  unstr(_EdgeGH._intersect4, *args, **kwds))\r\n        return ClipError(_case_, n, txt=t)\r\n\r\n    @Property_RO\r\n    def _hypot0(self):\r\n        _, sx, _, sy = self._x_sx_y_sy\r\n        return hypot(sx, sy) * _0EPS\r\n\r\n    @Property_RO\r\n    def _hypot2(self):\r\n        _, sx, _, sy = self._x_sx_y_sy\r\n        return hypot2(sx, sy)\r\n\r\n    def _intersect4(self, c1, c2, parallel=True):  # MCCABE 14\r\n        # Yield the intersection(s) of this and another edge.\r\n\r\n        # @return: None, 1 or 2 intersections, each a 4-Tuple\r\n        #          (y, x, s_alpha, c_alpha) with intersection\r\n        #          coordinates x and y and both alphas.\r\n\r\n        # @raise ClipError: Intersection unhandled.\r\n\r\n        # @see: U{Intersection point of two line segments\r\n        #       <http://PaulBourke.net/geometry/pointlineplane/>}.\r\n        c1_x, c1_y = c1.x, c1.y\r\n        if not (_outside(c1_x, c2.x, *self._lr) or\r\n                _outside(c1_y, c2.y, *self._bt)):\r\n            x, sx, \\\r\n            y, sy = self._x_sx_y_sy\r\n\r\n            cx = c2.x - c1_x\r\n            cy = c2.y - c1_y\r\n            d  = cy * sx - cx * sy\r\n\r\n            if fabs(d) > _0EPS:  # non-parallel edges\r\n                dx = x - c1_x\r\n                dy = y - c1_y\r\n                ca = Fdot_(sx, dy, -sy, dx).fover(d)\r\n                if _0EPS < ca < _EPS1 or (self._xtend and\r\n                   _EPS0 < ca < _1EPS):\r\n                    sa = Fdot_(cx, dy, -cy, dx).fover(d)\r\n                    if _0EPS < sa < _EPS1 or (self._xtend and\r\n                       _EPS0 < sa < _1EPS):\r\n                        yield (y + sa * sy), (x + sa * sx), sa, ca\r\n\r\n                    # unhandled, \"degenerate\" cases 1, 2 or 3\r\n                    elif self._raiser and not (sa < _EPS0 or sa > _1EPS):  # PYCHOK no cover\r\n                        raise self._Error(1, c1, c2, sa=sa)  # intersection at s1 or s2\r\n\r\n                elif self._raiser and not (ca < _EPS0 or ca > _1EPS):  # PYCHOK no cover\r\n                    # intersection at c1 or c2 or at c1 or c2 and s1 or s2\r\n                    sa = Fdot_(cx, dy, -cy, dx).fover(d)\r\n                    e  = 2 if sa < _EPS0 or sa > _1EPS else 3\r\n                    raise self._Error(e, c1, c2, ca=ca)\r\n\r\n            elif parallel and (sx or sy) and (cx or cy):  # PYCHOK no cover\r\n                # non-null, parallel or colinear edges\r\n                sa1, d1 = self._alpha2(c1_x - x, c1_y - y, sx, sy)\r\n                sa2, d2 = self._alpha2(c2.x - x, c2.y - y, sx, sy)\r\n                if max(d1, d2) < _0EPS:\r\n                    if self._xtend and not _outside(sa1, sa2, _EPS0, _1EPS):\r\n                        if sa1 > sa2:  # anti-parallel\r\n                            sa1, sa2 =  sa2,  sa1\r\n                            ca1, ca2 = _1_0, _0_0\r\n                        else:  # parallel\r\n                            ca1, ca2 = _0_0, _1_0\r\n                        ca = fabs((sx / cx) if cx else (sy / cy))\r\n                        #  = hypot(sx, sy) / hypot(cx, cy)\r\n                        if sa1 < 0:  # s1 is between c1 and c2\r\n                            ca *= ca1 + sa1\r\n                            yield y, x, ca1, _alpha1(ca)\r\n                        else:  # c1 is between s1 and s2\r\n                            yield (y + sa1 * sy), (x + sa1 * sx), sa1, ca1\r\n                        if sa2 > 1:  # s2 is between c1 and c2\r\n                            ca *= sa2 - _1_0\r\n                            yield (y + sy), (x + sx), ca2, _alpha1(ca2 - ca)\r\n                        else:  # c2 is between s1 and s2\r\n                            yield (y + sa2 * sy), (x + sa2 * sx), sa2, ca2\r\n                    elif self._raiser and not _outside(sa1, sa2, _0_0, _1EPS):\r\n                        raise self._Error(4, c1, c2, d1=d1, d2=d2)\r\n\r\n\r\nclass _BooleanBase(object):\r\n    # Shared C{Boolean[FHP|GH]} methods.\r\n\r\n    def __add__(self, other):\r\n        '''Sum: C{this + other} clips.\r\n        '''\r\n        return self._sum(_other(self, other), self.__add__)  # PYCHOK OK\r\n\r\n    def __and__(self, other):\r\n        '''Intersection: C{this & other}.\r\n        '''\r\n        return self._boolean(other, False, False, self.__and__)  # PYCHOK OK\r\n\r\n    def __iadd__(self, other):\r\n        '''In-place sum: C{this += other} clips.\r\n        '''\r\n        return self._inplace(self.__add__(other))\r\n\r\n    def __iand__(self, other):\r\n        '''In-place intersection: C{this &= other}.\r\n        '''\r\n        return self._inplace(self.__and__(other))\r\n\r\n    def __ior__(self, other):\r\n        '''In-place union: C{this |= other}.\r\n        '''\r\n        return self._inplace(self.__or__(other))\r\n\r\n    def __or__(self, other):\r\n        '''Union: C{this | other}.\r\n        '''\r\n        return self._boolean(other, True, True, self.__or__)  # PYCHOK OK\r\n\r\n    def __radd__(self, other):\r\n        '''Reverse sum: C{other + this} clips.\r\n        '''\r\n        return _other(self, other)._sum(self, self.__radd__)\r\n\r\n    def __rand__(self, other):\r\n        '''Reverse intersection: C{other & this}\r\n        '''\r\n        return _other(self, other).__and__(self)\r\n\r\n    def __ror__(self, other):\r\n        '''Reverse union: C{other | this}\r\n        '''\r\n        return _other(self, other).__or__(self)\r\n\r\n    def _boolean4(self, other, op):\r\n        # Set up a new C{Boolean[FHP|GH]}.\r\n        C = type(self)\r\n        kwds = C._kwds(self, op)  # PYCHOK in _Composite[FHP|GH]\r\n        a =  C(self, **kwds)\r\n        b = _other(self, other)\r\n        return a, b, C, kwds\r\n\r\n    def _inplace(self, r):\r\n        # Replace this with a L{Boolean*} result.\r\n        self._clips, r._clips = r._clips, None\r\n#       if self._raiser != r._raiser:\r\n#           self._raiser = r._raiser\r\n#       if self._xtend != r._xtend:\r\n#           self._xtend = r._xtend\r\n#       if self._eps != r._eps:\r\n#           self._eps = r._eps\r\n        return self\r\n\r\n\r\nclass BooleanFHP(_CompositeFHP, _BooleanBase):\r\n    '''I{Composite} class providing I{boolean} operations between two\r\n       I{composites} using U{Forster-Hormann-Popa<https://www.ScienceDirect.com/\r\n       science/article/pii/S259014861930007X>}'s C++ implementation, transcoded\r\n       to pure Python.\r\n\r\n       The supported operations between (composite) polygon A and B are:\r\n\r\n        -  C = A & B  or  A &= B,  intersection of A and B\r\n\r\n        -  C = A + B  or  A += B,  sum of A and B clips\r\n\r\n        -  C = A | B  or  A |= B,  union of A and B\r\n\r\n        -  A == B     or  A != B,  equivalent A and B clips\r\n\r\n        -  A.isequalTo(B, eps), equivalent within tolerance\r\n\r\n       @see: Methods C{__eq__} and C{isequalTo}, function L{clipFHP4}\r\n             and class L{BooleanGH}.\r\n    '''\r\n    _kind = _boolean_\r\n\r\n    def __init__(self, lls, raiser=False, eps=EPS, **name):\r\n        '''New L{BooleanFHP} operand for I{boolean} operation.\r\n\r\n           @arg lls: The polygon points and clips (iterable of L{LatLonFHP}s,\r\n                      L{ClipFHP4Tuple}s or other C{LatLon}s).\r\n           @kwarg raiser: If C{True}, throw L{ClipError} exceptions (C{bool}).\r\n           @kwarg esp: Tolerance for eliminating null edges (C{degrees}, same\r\n                       units as the B{C{lls}} coordinates).\r\n           @kwarg name: Optional C{B{name}=NN} (C{str}).\r\n        '''\r\n        _CompositeFHP.__init__(self, lls, raiser=raiser, eps=eps, **name)\r\n\r\n    def __isub__(self, other):\r\n        '''Not implemented.'''\r\n        return _NotImplemented(self, other)\r\n\r\n    def __rsub__(self, other):\r\n        '''Not implemented.'''\r\n        return _NotImplemented(self, other)\r\n\r\n    def __sub__(self, other):\r\n        '''Not implemented.'''\r\n        return _NotImplemented(self, other)\r\n\r\n    def _boolean(self, other, Union, unused, op):\r\n        # One C{BooleanFHP} operation.\r\n        p, q, C, kwds = self._boolean4(other, op)\r\n        r = p._clip(q, Union=Union, **kwds)\r\n        return C(r, **kwds)\r\n\r\n\r\nclass BooleanGH(_CompositeGH, _BooleanBase):\r\n    '''I{Composite} class providing I{boolean} operations between two\r\n       I{composites} using the U{Greiner-Hormann<http://www.Inf.USI.CH/\r\n       hormann/papers/Greiner.1998.ECO.pdf>} algorithm, extended.\r\n\r\n       The supported operations between (composite) polygon A and B are:\r\n\r\n        -  C = A - B  or  A -= B,  difference A less B\r\n\r\n        -  C = B - A  or  B -= A,  difference B less B\r\n\r\n        -  C = A & B  or  A &= B,  intersection of A and B\r\n\r\n        -  C = A + B  or  A += B,  sum of A and B clips\r\n\r\n        -  C = A | B  or  A |= B,  union of A and B\r\n\r\n        -  A == B     or  A != B,  equivalent A and B clips\r\n\r\n        -  A.isequalTo(B, eps), equivalent within tolerance\r\n\r\n       @note: To handle I{degenerate cases} like C{point-edge} and\r\n              C{point-point} intersections, use class L{BooleanFHP}.\r\n\r\n       @see: Methods C{__eq__} and C{isequalTo}, function L{clipGH4}\r\n             and class L{BooleanFHP}.\r\n    '''\r\n    _kind = _boolean_\r\n\r\n    def __init__(self, lls, raiser=True, xtend=False, eps=EPS, **name):\r\n        '''New L{BooleanFHP} operand for I{boolean} operation.\r\n\r\n           @arg lls: The polygon points and clips (iterable of L{LatLonGH}s,\r\n                      L{ClipGH4Tuple}s or other C{LatLon}s).\r\n           @kwarg raiser: If C{True}, throw L{ClipError} exceptions (C{bool}).\r\n           @kwarg xtend: If C{True}, extend edges of I{degenerate cases}, an\r\n                         attempt to handle the latter (C{bool}).\r\n           @kwarg esp: Tolerance for eliminating null edges (C{degrees}, same\r\n                       units as the B{C{lls}} coordinates).\r\n           @kwarg name: Optional C{B{name}=NN} (C{str}).\r\n        '''\r\n        _CompositeGH.__init__(self, lls, raiser=raiser, xtend=xtend, eps=eps, **name)\r\n\r\n    def _boolean(self, other, s_entry, c_entry, op):\r\n        # One C{BooleanGH} operation.\r\n        s, c, C, kwds = self._boolean4(other, op)\r\n        r = s._clip(c, s_entry, c_entry, **kwds)\r\n        return C(r, **kwds)\r\n\r\n    def __isub__(self, other):\r\n        '''In-place difference: C{this -= other}.\r\n        '''\r\n        return self._inplace(self.__sub__(other))\r\n\r\n    def __rsub__(self, other):\r\n        ''' Reverse difference: C{other - this}\r\n        '''\r\n        return _other(self, other).__sub__(self)\r\n\r\n    def __sub__(self, other):\r\n        '''Difference: C{this - other}.\r\n        '''\r\n        return self._boolean(other, True, False, self.__sub__)\r\n\r\n\r\ndef _alpha1(alpha):  # PYCHOK no cover\r\n    # Return C{alpha} in C{[0..1]} range\r\n    if _EPS0 < alpha < _1EPS:\r\n        return max(_0_0, min(alpha, _1_0))\r\n    t = _not_(Fmt.SQUARE(_ELLIPSIS_(0, 1)))\r\n    raise ClipError(_alpha_, alpha, txt=t)\r\n\r\n\r\ndef _alpha4(a):\r\n    # Return 4-tuple (alpha, -EPS < alpha < EPS,\r\n    #                           0 < alpha < 1,\r\n    #                       not 0 < alpha < 1)\r\n    a_EPS = bool(_EPS0 < a < _0EPS)\r\n    a_0_1 = bool(_0EPS < a < _EPS1)\r\n    return a, a_EPS, a_0_1, (not a_0_1)\r\n\r\n\r\ndef _Cps(Cp, composites_points, where):\r\n    # Yield composites and points as a C{Cp} composite.\r\n    try:\r\n        kwds = dict(kind=_points_, name__=where)\r\n        for cp in composites_points:\r\n            yield cp if isBoolean(cp) else Cp(cp, **kwds)\r\n    except (AttributeError, ClipError, TypeError, ValueError) as x:\r\n        raise _ValueError(points=cp, cause=x)\r\n\r\n\r\ndef _eps0(eps):\r\n    # Adjust C{eps} or C{0}.\r\n    return eps if eps and eps > EPS else 0\r\n\r\n\r\ndef isBoolean(obj):\r\n    '''Check for C{Boolean} composites.\r\n\r\n       @arg obj: The object (any C{type}).\r\n\r\n       @return: C{True} if B{C{obj}} is L{BooleanFHP}, L{BooleanGH}\r\n                or some other composite, C{False} otherwise.\r\n    '''\r\n    return isinstance(obj, _CompositeBase)\r\n\r\n\r\ndef _left_right_bottom_top_eps2(p1, p2):\r\n    '''(INTERNAL) Return 2-tuple C{((left, right), (bottom, top))}, both oversized.\r\n    '''\r\n    return (_min_max_eps2(p1.x, p2.x),\r\n            _min_max_eps2(p1.y, p2.y))\r\n\r\n\r\ndef _low_high_eps2(lo, hi, eps):\r\n    '''(INTERNAL) Return 2-tuple C{(lo, hi)}, oversized.\r\n    '''\r\n    # assert eps > 0\r\n    lo -= fabs(eps * lo)\r\n    hi += fabs(eps * hi)\r\n    if lo < hi:\r\n        pass\r\n    elif lo > hi:\r\n        lo, hi = hi, lo\r\n    else:\r\n        lo -= eps\r\n        hi += eps\r\n    return lo, hi\r\n\r\n\r\ndef _min_max_eps2(*xs):\r\n    '''(INTERNAL) Return 2-tuple C{(min, max)}, oversized.\r\n    '''\r\n    return _low_high_eps2(min(xs), max(xs), EPS)\r\n\r\n\r\ndef _other(this, other):\r\n    '''(INTERNAL) Check for compatible C{type}s.\r\n    '''\r\n    C = type(this)\r\n    if isinstance(other, C):\r\n        return other\r\n    raise _IsnotError(C, other=other)\r\n\r\n\r\ndef _outside(x1, x2, lo, hi):\r\n    '''(INTERNAL) Are C{x1} and C{x2} outside C{(lo, hi)}?\r\n    '''\r\n    # assert lo <= hi\r\n    return (x1 < lo or x2 > hi) if x1 > x2 else \\\r\n           (x2 < lo or x1 > hi)\r\n\r\n\r\n__all__ += _ALL_DOCS(_BooleanBase, _Clip,\r\n                     _CompositeBase, _CompositeFHP, _CompositeGH,\r\n                     _LatLonBool)\r\n\r\n# **) MIT License\r\n#\r\n# Copyright (C) 2018-2026 -- mrJean1 at Gmail -- All Rights Reserved.\r\n#\r\n# Permission is hereby granted, free of charge, to any person obtaining a\r\n# copy of this software and associated documentation files (the \"Software\"),\r\n# to deal in the Software without restriction, including without limitation\r\n# the rights to use, copy, modify, merge, publish, distribute, sublicense,\r\n# and/or sell copies of the Software, and to permit persons to whom the\r\n# Software is furnished to do so, subject to the following conditions:\r\n#\r\n# The above copyright notice and this permission notice shall be included\r\n# in all copies or substantial portions of the Software.\r\n#\r\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\r\n# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r\n# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL\r\n# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR\r\n# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\r\n# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\r\n# OTHER DEALINGS IN THE SOFTWARE.\r\n"
  },
  {
    "path": "pygeodesy/cartesianBase.py",
    "content": "\n# -*- coding: utf-8 -*-\n\nu'''(INTERNAL) Private C{CartesianBase} class for elliposiodal, spherical and N-/vectorial\nC{Cartesian}s and public functions L{rtp2xyz}, L{rtp2xyz_}, L{xyz2rtp} and L{xyz2rtp_}.\n\nAfter I{(C) Chris Veness 2011-2024} published under the same MIT Licence**, see\nU{https://www.Movable-Type.co.UK/scripts/latlong.html},\nU{https://www.Movable-Type.co.UK/scripts/latlong-vectors.html} and\nU{https://www.Movable-Type.co.UK/scripts/geodesy/docs/latlon-ellipsoidal.js.html}.\n'''\n\nfrom pygeodesy.basics import _isin, _xinstanceof,  typename\nfrom pygeodesy.constants import EPS, EPS0, INT0, NAN, PI2, _isfinite, \\\n                               _0_0, _1_0, _N_1_0, _2_0, _4_0, _6_0, isnear0\nfrom pygeodesy.datums import Datum, _earth_ellipsoid, _spherical_datum, \\\n                             Transform, _WGS84\n# from pygeodesy.ecef import EcefKarney  # _MODS\nfrom pygeodesy.ecefLocals import _EcefLocal\nfrom pygeodesy.errors import _IsnotError, _TypeError, _ValueError, _xattr, \\\n                             _xdatum, _xkwds, _xkwds_get, _xkwds_pop2\nfrom pygeodesy.fmath import cbrt, hypot, hypot_, hypot2,  fabs, sqrt  # hypot\n# from pygeodesy.formy import _hartzell  # _MODS\nfrom pygeodesy.fsums import fsumf_,  Fmt\n# from pygeodesy.internals import typename  # from .basics\nfrom pygeodesy.interns import _COMMASPACE_, _datum_, _no_, _phi_\nfrom pygeodesy.interns import _ellipsoidal_, _spherical_  # PYCHOK used!\nfrom pygeodesy.lazily import _ALL_DOCS, _ALL_LAZY, _ALL_MODS as _MODS\nfrom pygeodesy.named import _name2__, _Pass\nfrom pygeodesy.namedTuples import LatLon4Tuple, _NamedTupleTo, Vector3Tuple, \\\n                                  Vector4Tuple\n# from pygeodesy.nvectorBase import _N_Vector  # _MODS\nfrom pygeodesy.props import deprecated_method, Property, Property_RO, \\\n                            property_doc_, property_RO, _update_all\n# from pygeodesy import resections as _resections  # _MODS.into\n# from pygeodesy.streprs import Fmt  # from .fsums\n# from pygeodesy.triaxials.triaxial5 import Triaxial_  # _MODS\nfrom pygeodesy.units import Degrees, Height, _heigHt, _isMeter, Meter, Radians\nfrom pygeodesy.utily import acos1, atan2, sincos2d, sincos2_,  degrees, radians\nfrom pygeodesy.vector3d import Vector3d, _xyzhdlln4\n# from pygeodesy.vector3dBase import _xyz3  # _MODS\n\n# from math import degrees, fabs, radians, sqrt  # from .fmath, .utily\n\n__all__ = _ALL_LAZY.cartesianBase\n__version__ = '26.01.06'\n\n_r_         = 'r'\n_resections = _MODS.into(resections=__name__)\n_theta_     = 'theta'\n\n\nclass CartesianBase(Vector3d, _EcefLocal):\n    '''(INTERNAL) Base class for ellipsoidal and spherical C{Cartesian}.\n    '''\n    _datum  = None  # L{Datum}, to be overriden\n    _height = None  # height (L{Height}), set or approximated\n\n    def __init__(self, x_xyz, y=None, z=None, datum=None, **ll_name):\n        '''New C{Cartesian...}.\n\n           @arg x_xyz: Cartesian X coordinate (C{scalar}) or a C{Cartesian},\n                       L{Ecef9Tuple}, L{Vector3Tuple} or L{Vector4Tuple}.\n           @kwarg y: Cartesian Y coordinate (C{scalar}), ignored if B{C{x_xyz}}\n                     is not C{scalar}, otherwise same units as B{C{x_xyz}}.\n           @kwarg z: Cartesian Z coordinate (C{scalar}), like B{C{y}}.\n           @kwarg datum: Optional datum (L{Datum}, L{Ellipsoid}, L{Ellipsoid2}\n                         or L{a_f2Tuple}).\n           @kwarg ll_name: Optional C{B{name}=NN} (C{str}) and optional, original\n                           latlon C{B{ll}=None} (C{LatLon}).\n\n           @raise TypeError: Non-scalar B{C{x_xyz}}, B{C{y}} or B{C{z}} coordinate\n                             or B{C{x_xyz}} not a C{Cartesian}, L{Ecef9Tuple},\n                             L{Vector3Tuple} or L{Vector4Tuple} or B{C{datum}} is\n                             not a L{Datum}.\n        '''\n        h, d, ll, n = _xyzhdlln4(x_xyz, None, datum, **ll_name)\n        Vector3d.__init__(self, x_xyz, y=y, z=z, ll=ll, name=n)\n        if h is not None:\n            self._height = Height(h)\n        if d is not None:\n            self.datum = d\n\n#   def __matmul__(self, other):  # PYCHOK Python 3.5+\n#       '''Return C{NotImplemented} for C{c_ = c @ datum} and C{c_ = c @ transform}.\n#       '''\n#       return NotImplemented if isinstance(other, (Datum, Transform)) else \\\n#             _NotImplemented(self, other)\n\n    def cassini(self, pointB, pointC, alpha, beta, useZ=False):\n        '''3-Point resection between this and 2 other points using U{Cassini\n           <https://NL.WikiPedia.org/wiki/Achterwaartse_insnijding>}'s method.\n\n           @arg pointB: Second point (C{Cartesian}, L{Vector3d}, C{Vector3Tuple},\n                        C{Vector4Tuple} or C{Vector2Tuple} if C{B{useZ}=False}).\n           @arg pointC: Center point (C{Cartesian}, L{Vector3d}, C{Vector3Tuple},\n                        C{Vector4Tuple} or C{Vector2Tuple} if C{B{useZ}=False}).\n           @arg alpha: Angle subtended by triangle side C{b} from B{C{pointA}} to\n                       B{C{pointC}} (C{degrees}, non-negative).\n           @arg beta: Angle subtended by triangle side C{a} from B{C{pointB}} to\n                      B{C{pointC}} (C{degrees}, non-negative).\n           @kwarg useZ: If C{True}, use and interpolate the Z component, otherwise\n                        force C{z=INT0} (C{bool}).\n\n           @note: Typically, B{C{pointC}} is between this and B{C{pointB}}.\n\n           @return: The survey point, an instance of this (sub-)class.\n\n           @raise ResectionError: Near-coincident, -colinear or -concyclic points\n                                  or negative or invalid B{C{alpha}} or B{C{beta}}.\n\n           @raise TypeError: Invalid B{C{pointA}}, B{C{pointB}} or B{C{pointM}}.\n\n           @see: Function L{pygeodesy.cassini} for references and more details.\n        '''\n        return _resections.cassini(self, pointB, pointC, alpha, beta,\n                                         useZ=useZ, datum=self.datum)\n\n    @deprecated_method\n    def collins(self, pointB, pointC, alpha, beta, useZ=False):\n        '''DEPRECATED, use method L{collins5}.'''\n        return self.collins5(pointB, pointC, alpha, beta, useZ=useZ)\n\n    def collins5(self, pointB, pointC, alpha, beta, useZ=False):\n        '''3-Point resection between this and 2 other points using U{Collins<https://Dokumen.tips/\n           documents/three-point-resection-problem-introduction-kaestner-burkhardt-method.html>}' method.\n\n           @arg pointB: Second point (C{Cartesian}, L{Vector3d}, C{Vector3Tuple},\n                        C{Vector4Tuple} or C{Vector2Tuple} if C{B{useZ}=False}).\n           @arg pointC: Center point (C{Cartesian}, L{Vector3d}, C{Vector3Tuple},\n                        C{Vector4Tuple} or C{Vector2Tuple} if C{B{useZ}=False}).\n           @arg alpha: Angle subtended by triangle side C{b} from B{C{pointA}} to\n                       B{C{pointC}} (C{degrees}, non-negative).\n           @arg beta: Angle subtended by triangle side C{a} from B{C{pointB}} to\n                      B{C{pointC}} (C{degrees}, non-negative).\n           @kwarg useZ: If C{True}, use and interpolate the Z component, otherwise\n                        force C{z=INT0} (C{bool}).\n\n           @note: Typically, B{C{pointC}} is between this and B{C{pointB}}.\n\n           @return: L{Collins5Tuple}C{(pointP, pointH, a, b, c)} with survey C{pointP},\n                    auxiliary C{pointH}, each an instance of this (sub-)class and\n                    triangle sides C{a}, C{b} and C{c}.\n\n           @raise ResectionError: Near-coincident, -colinear or -concyclic points\n                                  or negative or invalid B{C{alpha}} or B{C{beta}}.\n\n           @raise TypeError: Invalid B{C{pointB}} or B{C{pointM}}.\n\n           @see: Function L{pygeodesy.collins5} for references and more details.\n        '''\n        return _resections.collins5(self, pointB, pointC, alpha, beta,\n                                          useZ=useZ, datum=self.datum)\n\n    @deprecated_method\n    def convertDatum(self, datum2, **datum):\n        '''DEPRECATED, use method L{toDatum}.'''\n        return self.toDatum(datum2, **datum)\n\n    @property_doc_(''' this cartesian's datum (L{Datum}).''')\n    def datum(self):\n        '''Get this cartesian's datum (L{Datum}).\n        '''\n        return self._datum\n\n    @datum.setter  # PYCHOK setter!\n    def datum(self, datum):\n        '''Set this cartesian's C{datum} I{without conversion}\n           (L{Datum}), ellipsoidal or spherical.\n\n           @raise TypeError: The B{C{datum}} is not a L{Datum}.\n        '''\n        d = _spherical_datum(datum, name=self.name)\n        D =  self._datum\n        if D:  # is not None\n            if d.isEllipsoidal and not D.isEllipsoidal:\n                raise _IsnotError(_ellipsoidal_, datum=datum)\n            elif d.isSpherical and not D.isSpherical:\n                raise _IsnotError(_spherical_, datum=datum)\n        if D != d:  # or (D and D.name != d.name)\n            _update_all(self)\n            self._datum = d\n\n    def destinationXyz(self, delta, Cartesian=None, **name_Cartesian_kwds):\n        '''Calculate the destination using a I{local} delta from this cartesian.\n\n           @arg delta: Local delta to the destination (L{XyzLocal}, L{Enu}, L{Ned}\n                       or L{Local9Tuple}).\n           @kwarg Cartesian: Optional (geocentric) class to return the destination\n                             or C{None}.\n           @kwarg name_Cartesian_kwds: Optional C{B{name}=NN} (C{str}) and optionally,\n                       additional B{C{Cartesian}} keyword arguments, ignored if\n                       C{B{Cartesian} is None}.\n\n           @return: Destination as a C{B{Cartesian}(x, y, z, **B{Cartesian_kwds})}\n                    instance or if C{B{Cartesian} is None}, an L{Ecef9Tuple}C{(x, y,\n                    z, lat, lon, height, C, M, datum)} with C{M=None} always.\n\n           @raise TypeError: Invalid B{C{delta}}, B{C{Cartesian}} or B{C{Cartesian_kwds}}\n                             item or C{datum} missing or incompatible.\n        '''\n        n, kwds = _name2__(name_Cartesian_kwds, _or_nameof=self)\n        if Cartesian is None:\n            r = self._ltp._local2ecef(delta, nine=True)  # _EcefLocal._ltp\n        else:\n            d = self.datum\n            if not d:\n                raise _TypeError(delta=delta, txt=_no_(_datum_))\n            t = _xkwds_get(kwds, datum=d)\n            if _xattr(t, ellipsoid=None) != d.ellipsoid:\n                raise _TypeError(datum=t, txt=str(d))\n            c = self._ltp._local2ecef(delta, nine=False)  # _EcefLocal._ltp\n            r = Cartesian(*c, **kwds)\n        return r.renamed(n) if n else r\n\n    @Property_RO\n    def _ecef9(self):\n        '''(INTERNAL) Helper for L{toEcef}, L{toLocal} and L{toLtp} (L{Ecef9Tuple}).\n        '''\n        return self.Ecef(self.datum, name=self.name).reverse(self, M=True)\n\n    @property_RO\n    def ellipsoidalCartesian(self):\n        '''Get the C{Cartesian type} iff ellipsoidal, overloaded in L{CartesianEllipsoidalBase}.\n        '''\n        return False\n\n    def hartzell(self, los=False, earth=None):\n        '''Compute the intersection of a Line-Of-Sight from this cartesian Point-Of-View\n           (pov) and this cartesian's C{datum} ellipsoid surface.\n\n           @kwarg los: Line-Of-Sight, I{direction} to the ellipsoid (L{Los}, L{Vector3d}),\n                       C{True} for the I{normal, plumb} onto the surface or I{False} or\n                       C{None} to point to the center of the ellipsoid.\n           @kwarg earth: The earth model (L{Datum}, L{Ellipsoid}, L{Ellipsoid2}, L{a_f2Tuple}\n                         or C{scalar} radius in C{meter}), overriding this cartesian's\n                         datum.\n\n           @return: The intersection (C{Cartesian}) with C{.height} set to the distance to\n                    this C{pov}.\n\n           @raise IntersectionError: Null or bad C{pov} or B{C{los}}, this C{pov} is inside\n                                     the ellipsoid or B{C{los}} points outside or away from\n                                     the ellipsoid.\n\n           @raise TypeError: Invalid B{C{los}} or invalid or undefined B{C{earth}} or C{datum}.\n\n           @see: Function L{hartzell<pygeodesy.formy.hartzell>} for further details.\n        '''\n        return _MODS.formy._hartzell(self, los, earth)\n\n    @Property\n    def height(self):\n        '''Get the height (C{meter}).\n        '''\n        return self._height4.h if self._height is None else self._height\n\n    @height.setter  # PYCHOK setter!\n    def height(self, height):\n        '''Set the height (C{meter}).\n\n           @raise TypeError: Invalid B{C{height}} C{type}.\n\n           @raise ValueError: Invalid B{C{height}}.\n        '''\n        h = Height(height)\n        if self._height != h:\n            _update_all(self)\n            self._height = h\n\n    def _height2C(self, r, Cartesian=None, datum=None, height=INT0, **kwds):\n        '''(INTERNAL) Helper for methods C{.height3} and C{.height4}.\n        '''\n        if Cartesian is not None:\n            r = Cartesian(r, **kwds)\n            if datum is not None:\n                r.datum = datum\n            if height is not None:\n                r.height = height  # Height(height)\n        return r\n\n    def height3(self, earth=None, height=None, **Cartesian_and_kwds):\n        '''Compute the cartesian at a height above or below this certesian's\n           C{datum} ellipsoid surface.\n\n           @kwarg earth: A datum, ellipsoid, triaxial ellipsoid or earth radius,\n                         I{overriding} this cartesian's datum (L{Datum}, L{Ellipsoid},\n                         L{Ellipsoid2}, L{a_f2Tuple} or C{meter}, conventionally).\n           @kwarg height: The height (C{meter}, conventionally), overriding this\n                          cartesian's height.\n           @kwarg Cartesian_and_kwds: Optional C{B{Cartesian}=None} class to return\n                            the cartesian I{at height} and additional B{C{Cartesian}}\n                            keyword arguments.\n\n           @return: An instance of B{C{Cartesian}} or if C{B{Cartesian} is None},\n                    a L{Vector3Tuple}C{(x, y, z)} with the C{x}, C{y} and C{z}\n                    coordinates I{at height} in C{meter}, conventionally.\n\n           @note: This cartesian's coordinates are returned if B{C{earth}} and this\n                  datum or B{C{height}} and/or this height are C{None} or undefined.\n\n           @note: Include keyword argument C{B{datum}=None} if class B{C{Cartesian}}\n                  does not accept a B{C{datum}} keyword agument.\n\n           @raise TypeError: Invalid or undefined B{C{earth}} or C{datum}.\n        '''\n        n = typename(self.height3)\n        d = self.datum if earth is None else _spherical_datum(earth, name=n)\n        c, h = self, _heigHt(self, height)\n        if h and d:\n            R, r = self.Roc2(earth=d)\n            if R > EPS0:\n                R =  (R + h) / R\n                r = ((r + h) / r) if r > EPS0 else _1_0\n                c = c.times_(R, R, r)\n\n        r = Vector3Tuple(c.x, c.y, c.z, name=n)\n        if Cartesian_and_kwds:\n            r = self._height2C(r, **_xkwds(Cartesian_and_kwds, datum=d))\n        return r\n\n    @Property_RO\n    def _height4(self):\n        '''(INTERNAL) Get this C{height4}-tuple.\n        '''\n        try:\n            r = self.datum.ellipsoid.height4(self, normal=True)\n        except (AttributeError, ValueError):  # no datum, null cartesian,\n            r = Vector4Tuple(self.x, self.y, self.z, NAN, name__=self.height4)\n        return r\n\n    def height4(self, earth=None, normal=True, **Cartesian_and_kwds):\n        '''Compute the projection of this point on and the height above or below\n           this datum's ellipsoid surface.\n\n           @kwarg earth: A datum, ellipsoid, triaxial ellipsoid or earth radius,\n                         I{overriding} this datum (L{Datum}, L{Ellipsoid},\n                         L{Ellipsoid2}, L{a_f2Tuple}, L{Triaxial}, L{Triaxial_},\n                         L{JacobiConformal} or C{meter}, conventionally).\n           @kwarg normal: If C{True}, the projection is the nearest point on the\n                          ellipsoid's surface, otherwise the intersection of the\n                          radial line to the ellipsoid's center and surface C{bool}).\n           @kwarg Cartesian_and_kwds: Optional C{B{Cartesian}=None} class to return\n                            the I{projection} and additional B{C{Cartesian}} keyword\n                            arguments.\n\n           @return: An instance of B{C{Cartesian}} or if C{B{Cartesian} is None}, a\n                    L{Vector4Tuple}C{(x, y, z, h)} with the I{projection} C{x}, C{y}\n                    and C{z} coordinates and height C{h} in C{meter}, conventionally.\n\n           @note: Include keyword argument C{B{datum}=None} if class B{C{Cartesian}}\n                  does not accept a B{C{datum}} keyword agument.\n\n           @raise TriaxialError: No convergence in triaxial root finding.\n\n           @raise TypeError: Invalid or undefined B{C{earth}} or C{datum}.\n\n           @see: Methods L{Ellipsoid.height4} and L{Triaxial_.height4} for more information.\n        '''\n        n = typename(self.height4)\n        d = self.datum if earth is None else earth\n        if normal and d is self.datum:\n            r = self._height4\n        elif isinstance(d, _MODS.triaxials.Triaxial_):\n            r = d.height4(self, normal=normal)\n            try:\n                d = d.toEllipsoid(name=n)\n            except (TypeError, ValueError):  # TriaxialError\n                d = None\n        else:\n            r = _earth_ellipsoid(d).height4(self, normal=normal)\n\n        if Cartesian_and_kwds:\n            if d and not isinstance(d, Datum):\n                d = _spherical_datum(d, name=n)\n            r = self._height2C(r, **_xkwds(Cartesian_and_kwds, datum=d))\n        return r\n\n    @Property_RO\n    def isEllipsoidal(self):\n        '''Check whether this cartesian is ellipsoidal (C{bool} or C{None} if unknown).\n        '''\n        return _xattr(self.datum, isEllipsoidal=None)\n\n    @Property_RO\n    def isSpherical(self):\n        '''Check whether this cartesian is spherical (C{bool} or C{None} if unknown).\n        '''\n        return _xattr(self.datum, isSpherical=None)\n\n    @Property_RO\n    def latlon(self):\n        '''Get this cartesian's (geodetic) lat- and longitude in C{degrees} (L{LatLon2Tuple}C{(lat, lon)}).\n        '''\n        return self.toEcef().latlon\n\n    @Property_RO\n    def latlonheight(self):\n        '''Get this cartesian's (geodetic) lat-, longitude in C{degrees} with height (L{LatLon3Tuple}C{(lat, lon, height)}).\n        '''\n        return self.toEcef().latlonheight\n\n    @Property_RO\n    def latlonheightdatum(self):\n        '''Get this cartesian's (geodetic) lat-, longitude in C{degrees} with height and datum (L{LatLon4Tuple}C{(lat, lon, height, datum)}).\n        '''\n        return self.toEcef().latlonheightdatum\n\n    @Property_RO\n    def _N_vector(self):\n        '''(INTERNAL) Get the (C{nvectorBase._N_Vector}).\n        '''\n        _N = _MODS.nvectorBase._N_Vector\n        return self._n_xyzh4(self.datum, Vector=_N)\n\n    def _n_xyzh4(self, datum, Vector=Vector4Tuple):\n        '''(INTERNAL) Get the n-vector components as L{Vector4Tuple}.\n        '''\n        def _ErrorEPS0(x):\n            return _ValueError(origin=self, txt=Fmt.PARENSPACED(EPS0=x))\n\n        _xinstanceof(Datum, datum=datum)\n        # <https://www.Movable-Type.co.UK/scripts/geodesy/docs/\n        #        latlon-nvector-ellipsoidal.js.html#line309>,\n        # <https://GitHub.com/pbrod/nvector>/src/nvector/core.py>\n        # _equation23 and <https://www.NavLab.net/nvector>\n        E = datum.ellipsoid\n        x, y, z = self.xyz3\n\n        # Kenneth Gade eqn 23\n        p = hypot2(x, y) * E.a2_\n        q = z**2 * E.e21 * E.a2_\n        r = fsumf_(p, q, -E.e4) / _6_0\n        if isnear0(r):\n            raise _ErrorEPS0(r)\n        s = (p * q * E.e4) / (_4_0 * r**3)\n        if s < 0:\n            raise _ErrorEPS0(s)\n        t = cbrt(fsumf_(_1_0, s, sqrt(s * (_2_0 + s))))\n        if isnear0(t):\n            raise _ErrorEPS0(t)\n        u = fsumf_(_1_0, t, _1_0 / t) * r\n        v = sqrt(u**2 + E.e4 * q)\n        t = v * _2_0\n        if t < EPS0:  # isnear0\n            raise _ErrorEPS0(t)\n        w = fsumf_(u, v, -q) * E.e2 / t\n        k = sqrt(fsumf_(u, v, w**2)) - w\n        if isnear0(k):\n            raise _ErrorEPS0(k)\n        t = k + E.e2\n        if isnear0(t):\n            raise _ErrorEPS0(t)\n        e = k / t\n#       d = e * hypot(x, y)\n#       tmp = 1 / hypot(d, z) == 1 / hypot(e * hypot(x, y), z)\n        t = hypot_(x * e, y * e, z)  # == 1 / tmp\n        if t < EPS0:  # isnear0\n            raise _ErrorEPS0(t)\n        h = fsumf_(k, E.e2, _N_1_0) / k * t\n        s = e / t  # == e * tmp\n        return Vector(x * s, y * s, z / t, h, name=self.name)\n\n    @Property_RO\n    def philam(self):\n        '''Get this cartesian's (geodetic) lat- and longitude in C{radians} (L{PhiLam2Tuple}C{(phi, lam)}).\n        '''\n        return self.toEcef().philam\n\n    @Property_RO\n    def philamheight(self):\n        '''Get this cartesian's (geodetic) lat-, longitude in C{radians} with height (L{PhiLam3Tuple}C{(phi, lam, height)}).\n        '''\n        return self.toEcef().philamheight\n\n    @Property_RO\n    def philamheightdatum(self):\n        '''Get this cartesian's (geodetic) lat-, longitude in C{radians} with height and datum (L{PhiLam4Tuple}C{(phi, lam, height, datum)}).\n        '''\n        return self.toEcef().philamheightdatum\n\n    def pierlot(self, point2, point3, alpha12, alpha23, useZ=False, eps=EPS):\n        '''3-Point resection between this and two other points using U{Pierlot\n           <http://www.Telecom.ULg.ac.Be/triangulation>}'s method C{ToTal} with\n           I{approximate} limits for the (pseudo-)singularities.\n\n           @arg point2: Second point (C{Cartesian}, L{Vector3d}, C{Vector3Tuple},\n                        C{Vector4Tuple} or C{Vector2Tuple} if C{B{useZ}=False}).\n           @arg point3: Third point (C{Cartesian}, L{Vector3d}, C{Vector3Tuple},\n                        C{Vector4Tuple} or C{Vector2Tuple} if C{B{useZ}=False}).\n           @arg alpha12: Angle subtended from this point to B{C{point2}} or\n                         B{C{alpha2 - alpha}} (C{degrees}).\n           @arg alpha23: Angle subtended from B{C{point2}} to B{C{point3}} or\n                         B{C{alpha3 - alpha2}} (C{degrees}).\n           @kwarg useZ: If C{True}, interpolate the Z component, otherwise use C{z=INT0}\n                        (C{bool}).\n           @kwarg eps: Tolerance for C{cot} (pseudo-)singularities (C{float}).\n\n           @note: This point, B{C{point2}} and B{C{point3}} are ordered counter-clockwise.\n\n           @return: The survey (or robot) point, an instance of this (sub-)class.\n\n           @raise ResectionError: Near-coincident, -colinear or -concyclic points\n                                  or invalid B{C{alpha12}} or B{C{alpha23}}.\n\n           @raise TypeError: Invalid B{C{point2}} or B{C{point3}}.\n\n           @see: Function L{pygeodesy.pierlot} for references and more details.\n        '''\n        return _resections.pierlot(self, point2, point3, alpha12, alpha23,\n                                         useZ=useZ, eps=eps, datum=self.datum)\n\n    def pierlotx(self, point2, point3, alpha1, alpha2, alpha3, useZ=False):\n        '''3-Point resection between this and two other points using U{Pierlot\n           <http://www.Telecom.ULg.ac.Be/publi/publications/pierlot/Pierlot2014ANewThree>}'s\n           method C{ToTal} with I{exact} limits for the (pseudo-)singularities.\n\n           @arg point2: Second point (C{Cartesian}, L{Vector3d}, C{Vector3Tuple},\n                        C{Vector4Tuple} or C{Vector2Tuple} if C{B{useZ}=False}).\n           @arg point3: Third point (C{Cartesian}, L{Vector3d}, C{Vector3Tuple},\n                        C{Vector4Tuple} or C{Vector2Tuple} if C{B{useZ}=False}).\n           @arg alpha1: Angle at B{C{point1}} (C{degrees}).\n           @arg alpha2: Angle at B{C{point2}} (C{degrees}).\n           @arg alpha3: Angle at B{C{point3}} (C{degrees}).\n           @kwarg useZ: If C{True}, interpolate the survey point's Z component,\n                        otherwise use C{z=INT0} (C{bool}).\n\n           @return: The survey (or robot) point, an instance of this (sub-)class.\n\n           @raise ResectionError: Near-coincident, -colinear or -concyclic points or\n                                  invalid B{C{alpha1}}, B{C{alpha2}} or B{C{alpha3}}.\n\n           @raise TypeError: Invalid B{C{point2}} or B{C{point3}}.\n\n           @see: Function L{pygeodesy.pierlotx} for references and more details.\n        '''\n        return _resections.pierlotx(self, point2, point3, alpha1, alpha2, alpha3,\n                                          useZ=useZ, datum=self.datum)\n\n    def Roc2(self, earth=None):\n        '''Compute this cartesian's I{normal} and I{pseudo, z-based} radius of curvature.\n\n           @kwarg earth: A datum, ellipsoid, triaxial ellipsoid or earth radius,\n                         I{overriding} this cartesian's datum (L{Datum}, L{Ellipsoid},\n                         L{Ellipsoid2}, L{a_f2Tuple} or C{meter}, conventionally).\n\n           @return: 2-Tuple C{(R, r)} with the I{normal} and I{pseudo, z-based} radius of\n                    curvature C{R} respectively C{r}, both in C{meter} conventionally.\n\n           @raise TypeError: Invalid or undefined B{C{earth}} or C{datum}.\n        '''\n        r = z = fabs( self.z)\n        R, _0 = hypot(self.x, self.y), EPS0\n        if R < _0:  # polar\n            R = z\n        elif z > _0:  # non-equatorial\n            d = self.datum if earth is None else _spherical_datum(earth)\n            e = self.toLatLon(datum=d, height=0, LatLon=None)  # Ecef9Tuple\n            M = e.M  # EcefMatrix\n            sa, ca = map(fabs, (M._2_2_, M._2_1_) if M else sincos2d(e.lat))\n            if ca < _0:  # polar\n                R = z\n            else:  # prime-vertical, normal roc R\n                R = R / ca  # /= chokes PyChecker\n                r = R if sa < _0 else (r / sa)  # non-/equatorial\n        return R, r\n\n    @property_RO\n    def sphericalCartesian(self):\n        '''Get the C{Cartesian type} iff spherical, overloaded in L{CartesianSphericalBase}.\n        '''\n        return False\n\n    @deprecated_method\n    def tienstra(self, pointB, pointC, alpha, beta=None, gamma=None, useZ=False):\n        '''DEPRECATED, use method L{tienstra7}.'''\n        return self.tienstra7(pointB, pointC, alpha, beta=beta, gamma=gamma, useZ=useZ)\n\n    def tienstra7(self, pointB, pointC, alpha, beta=None, gamma=None, useZ=False):\n        '''3-Point resection between this and two other points using U{Tienstra\n           <https://WikiPedia.org/wiki/Tienstra_formula>}'s formula.\n\n           @arg pointB: Second point (C{Cartesian}, L{Vector3d}, C{Vector3Tuple}, C{Vector4Tuple} or\n                        C{Vector2Tuple} if C{B{useZ}=False}).\n           @arg pointC: Third point (C{Cartesian}, L{Vector3d}, C{Vector3Tuple}, C{Vector4Tuple} or\n                        C{Vector2Tuple} if C{B{useZ}=False}).\n           @arg alpha: Angle subtended by triangle side C{a} from B{C{pointB}} to B{C{pointC}} (C{degrees},\n                       non-negative).\n           @kwarg beta: Angle subtended by triangle side C{b} from this to B{C{pointC}} (C{degrees},\n                        non-negative) or C{None} if C{B{gamma} is not None}.\n           @kwarg gamma: Angle subtended by triangle side C{c} from this to B{C{pointB}} (C{degrees},\n                         non-negative) or C{None} if C{B{beta} is not None}.\n           @kwarg useZ: If C{True}, use and interpolate the Z component, otherwise force C{z=INT0}\n                        (C{bool}).\n\n           @note: This point, B{C{pointB}} and B{C{pointC}} are ordered clockwise.\n\n           @return: L{Tienstra7Tuple}C{(pointP, A, B, C, a, b, c)} with survey C{pointP},\n                    an instance of this (sub-)class and triangle angle C{A} at this point,\n                    C{B} at B{C{pointB}} and C{C} at B{C{pointC}} in C{degrees} and\n                    triangle sides C{a}, C{b} and C{c}.\n\n           @raise ResectionError: Near-coincident, -colinear or -concyclic points or sum of\n                                  B{C{alpha}}, B{C{beta}} and B{C{gamma}} not C{360} or\n                                  negative B{C{alpha}}, B{C{beta}} or B{C{gamma}}.\n\n           @raise TypeError: Invalid B{C{pointB}} or B{C{pointC}}.\n\n           @see: Function L{pygeodesy.tienstra7} for references and more details.\n        '''\n        return _resections.tienstra7(self, pointB, pointC, alpha, beta, gamma,\n                                           useZ=useZ, datum=self.datum)\n\n    @deprecated_method\n    def to2ab(self):  # PYCHOK no cover\n        '''DEPRECATED, use property C{philam}.\n\n           @return: A L{PhiLam2Tuple}C{(phi, lam)}.\n        '''\n        return self.philam\n\n    @deprecated_method\n    def to2ll(self):  # PYCHOK no cover\n        '''DEPRECATED, use property C{latlon}.\n\n           @return: A L{LatLon2Tuple}C{(lat, lon)}.\n        '''\n        return self.latlon\n\n    @deprecated_method\n    def to3llh(self, datum=None):  # PYCHOK no cover\n        '''DEPRECATED, use property L{latlonheight} or L{latlonheightdatum}.\n\n           @return: A L{LatLon4Tuple}C{(lat, lon, height, datum)}.\n\n           @note: This method returns a B{C{-4Tuple}} I{and not a} C{-3Tuple}\n                  as its name may suggest.\n        '''\n        t = self.toLatLon(datum=datum, LatLon=None)\n        return LatLon4Tuple(t.lat, t.lon, t.height, t.datum, name=self.name)\n\n#   def _to3LLh(self, datum, LL, **pairs):  # OBSOLETE\n#       '''(INTERNAL) Helper for C{subclass.toLatLon} and C{.to3llh}.\n#       '''\n#       r = self.to3llh(datum)  # LatLon3Tuple\n#       if LL is not None:\n#           r = LL(r.lat, r.lon, height=r.height, datum=datum, name=self.name)\n#           for n, v in pairs.items():\n#               setattr(r, n, v)\n#       return r\n\n    def toDatum(self, datum2, datum=None):\n        '''Convert this cartesian from one datum to an other.\n\n           @arg datum2: Datum to convert I{to} (L{Datum}).\n           @kwarg datum: Datum to convert I{from} (L{Datum}).\n\n           @return: The converted point (C{Cartesian}).\n\n           @raise TypeError: B{C{datum2}} or B{C{datum}}\n                             invalid.\n        '''\n        _xinstanceof(Datum, datum2=datum2)\n\n        c = self if _isin(datum, None, self.datum) else \\\n            self.toDatum(datum)\n\n        i, d = False, c.datum\n        if d == datum2:\n            return c.copy() if c is self else c\n\n        elif d is None or (d.transform.isunity and\n                      datum2.transform.isunity):\n            return c.dup(datum=datum2)\n\n        elif d == _WGS84:\n            d = datum2  # convert from WGS84 to datum2\n\n        elif datum2 == _WGS84:\n            i = True  # convert to WGS84 by inverse transformation\n\n        else:  # neither datum2 nor c.datum is WGS84, invert to WGS84 first\n            c = c.toTransform(d.transform, inverse=True, datum=_WGS84)\n            d = datum2\n\n        return c.toTransform(d.transform, inverse=i, datum=datum2)\n\n    def toEcef(self):\n        '''Convert this cartesian to I{geodetic} (lat-/longitude) coordinates.\n\n           @return: An L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n                    with C{C} and C{M} if available.\n\n           @raise EcefError: A C{.datum} or an ECEF issue.\n        '''\n        return self._ecef9\n\n    def toLatLon(self, datum=None, height=None, LatLon=None, **LatLon_kwds):  # see .ecef.Ecef9Tuple.toDatum\n        '''Convert this cartesian to a I{geodetic} (lat-/longitude) point.\n\n           @kwarg datum: Optional datum (L{Datum}, L{Ellipsoid}, L{Ellipsoid2} or L{a_f2Tuple}).\n           @kwarg height: Optional height, overriding the converted height (C{meter}), only if\n                          C{B{LatLon} is not None}.\n           @kwarg LatLon: Optional class to return the geodetic point (C{LatLon}) or C{None}.\n           @kwarg LatLon_kwds: Optional, additional B{C{LatLon}} keyword arguments, ignored if\n                               C{B{LatLon} is None}.\n\n           @return: The geodetic point (B{C{LatLon}}) or if C{B{LatLon}is None}, an\n                    L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)} with C{C}\n                    and C{M} if available.\n\n           @raise TypeError: Invalid B{C{datum}} or B{C{LatLon_kwds}}.\n        '''\n        d = _spherical_datum(datum or self.datum, name=self.name)\n        if d == self.datum:\n            r = self.toEcef()\n        else:\n            c = self.toDatum(d)\n            r = c.Ecef(d, name=self.name).reverse(c, M=LatLon is None)\n\n        if LatLon:  # class or .classof\n            h = _heigHt(r, height)\n            r =  LatLon(r.lat, r.lon, datum=r.datum, height=h,\n                                   **_xkwds(LatLon_kwds, name=r.name))\n        _xdatum(r.datum, d)\n        return r\n\n    def toNvector(self, Nvector=None, datum=None, **name_Nvector_kwds):\n        '''Convert this cartesian to C{n-vector} components, I{including height}.\n\n           @kwarg Nvector: Optional class to return the C{n-vector} components\n                           (C{Nvector}) or C{None}.\n           @kwarg datum: Optional datum (L{Datum}, L{Ellipsoid}, L{Ellipsoid2}\n                         or L{a_f2Tuple}) overriding this cartesian's datum.\n           @kwarg name_Nvector_kwds: Optional C{B{name}=NN} (C{str}) and optionally,\n                       additional B{C{Nvector}} keyword arguments, ignored if\n                       C{B{Nvector} is None}.\n\n           @return: An B{C{Nvector}} or a L{Vector4Tuple}C{(x, y, z, h)} if\n                    C{B{Nvector} is None}.\n\n           @raise TypeError: Invalid B{C{Nvector}}, B{C{datum}} or\n                             B{C{name_Nvector_kwds}} item.\n\n           @raise ValueError: B{C{Cartesian}} at origin.\n        '''\n        r, d = self._N_vector.xyzh, self.datum\n        if datum is not None:\n            d = _spherical_datum(datum, name=self.name)\n            if d != self.datum:\n                r = self._n_xyzh4(d)\n\n        if Nvector is None:\n            n, _ = _name2__(name_Nvector_kwds, _or_nameof=self)\n            if n:\n                r = r.dup(name=n)\n        else:\n            kwds = _xkwds(name_Nvector_kwds, h=r.h, datum=d)\n            r = Nvector(r.x, r.y, r.z, **self._name1__(kwds))\n        return r\n\n    def toRtp(self):\n        '''Convert this cartesian to I{spherical, polar} coordinates.\n\n           @return: L{RadiusThetaPhi3Tuple}C{(r, theta, phi)} with C{theta}\n                    and C{phi}, both in L{Degrees}.\n\n           @see: Function L{xyz2rtp_} and class L{RadiusThetaPhi3Tuple}.\n        '''\n        return _rtp3(self.toRtp, Degrees, self, name=self.name)\n\n    def toStr(self, prec=3, fmt=Fmt.SQUARE, sep=_COMMASPACE_):  # PYCHOK expected\n        '''Return the string representation of this cartesian.\n\n           @kwarg prec: Number of (decimal) digits, unstripped (C{int}).\n           @kwarg fmt: Enclosing backets format (C{letter}).\n           @kwarg sep: Separator to join (C{str}).\n\n           @return: Cartesian represented as \"[x, y, z]\" (C{str}).\n        '''\n        return Vector3d.toStr(self, prec=prec, fmt=fmt, sep=sep)\n\n    def toTransform(self, transform, inverse=False, datum=None):\n        '''Apply a Helmert transform to this cartesian.\n\n           @arg transform: Transform to apply (L{Transform} or L{TransformXform}).\n           @kwarg inverse: Apply the inverse of the C{B{transform}} (C{bool}).\n           @kwarg datum: Datum for the transformed cartesian (L{Datum}), overriding\n                         this cartesian's datum but I{not} taken it into account.\n\n           @return: A transformed cartesian (C{Cartesian}) or a copy of this\n                    cartesian if C{B{transform}.isunity}.\n\n           @raise TypeError: Invalid B{C{transform}}.\n        '''\n        _xinstanceof(Transform, transform=transform)\n        if transform.isunity:\n            c = self.dup(datum=datum or self.datum)\n        else:\n            # if inverse and d != _WGS84:\n            #     raise _ValueError(inverse=inverse, datum=d,\n            #                       txt_not_=_WGS84.name)\n            xyz = transform.transform(*self.xyz3, inverse=inverse)\n            c = self.dup(xyz=xyz, datum=datum or self.datum)\n        return c\n\n    def toVector(self, Vector=None, **Vector_kwds):\n        '''Return this cartesian's I{geocentric} components as vector.\n\n           @kwarg Vector: Optional class to return the I{geocentric}\n                          components (L{Vector3d}) or C{None}.\n           @kwarg Vector_kwds: Optional, additional B{C{Vector}} keyword\n                               arguments, ignored if C{B{Vector} is None}.\n\n           @return: A B{C{Vector}} or a L{Vector3Tuple}C{(x, y, z)} if\n                    C{B{Vector} is None}.\n\n           @raise TypeError: Invalid B{C{Vector}} or B{C{Vector_kwds}}.\n        '''\n        return self.xyz if Vector is None else Vector(\n               self.x, self.y, self.z, **self._name1__(Vector_kwds))\n\n\nclass RadiusThetaPhi3Tuple(_NamedTupleTo):\n    '''3-Tuple C{(r, theta, phi)} with radial distance C{r} in C{meter}, inclination\n       C{theta} (with respect to the positive z-axis) and azimuthal angle C{phi} in\n       L{Degrees} I{or} L{Radians} representing a U{spherical, polar position\n       <https://WikiPedia.org/wiki/Spherical_coordinate_system>}.\n    '''\n    _Names_ = (_r_,    _theta_, _phi_)\n    _Units_ = ( Meter, _Pass,   _Pass)\n\n    def toCartesian(self, **name_Cartesian_and_kwds):\n        '''Convert this L{RadiusThetaPhi3Tuple} to a cartesian C{(x, y, z)} vector.\n\n           @kwarg name_Cartesian_and_kwds: Optional C{B{name}=NN}, overriding this\n                       name and optional class C{B{Cartesian}=None} and additional\n                       C{B{Cartesian}} keyword arguments.\n\n           @return: A C{B{Cartesian}(x, y, z)} instance or if no C{B{Cartesian}} keyword\n                    argument is given, a L{Vector3Tuple}C{(x, y, z)} with C{x}, C{y}\n                    and C{z} in the same units as radius C{r}, C{meter} conventionally.\n\n           @see: Function L{rtp2xyz_}.\n        '''\n        r, t, p =  self\n        t, p, _ = _NamedTupleTo._Radians3(self, t, p)\n        return rtp2xyz_(r, t, p, **name_Cartesian_and_kwds)\n\n    def toDegrees(self, **name):\n        '''Convert this L{RadiusThetaPhi3Tuple}'s angles to L{Degrees}.\n\n           @kwarg name: Optional C{B{name}=NN} (C{str}), overriding this name.\n\n           @return: L{RadiusThetaPhi3Tuple}C{(r, theta, phi)} with C{theta}\n                    and C{phi} both in L{Degrees}.\n        '''\n        return self._toX3U(_NamedTupleTo._Degrees3, Degrees, name)\n\n    def toRadians(self, **name):\n        '''Convert this L{RadiusThetaPhi3Tuple}'s angles to L{Radians}.\n\n           @kwarg name: Optional C{B{name}=NN} (C{str}), overriding this name.\n\n           @return: L{RadiusThetaPhi3Tuple}C{(r, theta, phi)} with C{theta}\n                    and C{phi} both in L{Radians}.\n        '''\n        return self._toX3U(_NamedTupleTo._Radians3, Radians, name)\n\n    def _toU(self, U):\n        M = RadiusThetaPhi3Tuple._Units_[0]  # Meter\n        return self.reUnit(M, U, U).toUnits()\n\n    def _toX3U(self, _X3, U, name):\n        r, t, p =  self\n        t, p, s = _X3(self, t, p)\n        if s is None or name:\n            n = self._name__(name)\n            s = self.classof(r, t, p, name=n)._toU(U)\n        return s\n\n\ndef rtp2xyz(r_rtp, theta=0, phi=0, **name_Cartesian_and_kwds):\n    '''Convert I{spherical, polar} C{(r, theta, phi)} to cartesian C{(x, y, z)} coordinates.\n\n       @arg theta: Inclination B{C{theta}} (C{degrees} with respect to the positive z-axis),\n                   required if C{B{r_rtp}} is C{scalar}, ignored otherwise.\n       @arg phi: Azimuthal angle B{C{phi}} (C{degrees}), like B{C{theta}}.\n\n       @see: Function L{rtp2xyz_} for further details.\n    '''\n    if isinstance(r_rtp, RadiusThetaPhi3Tuple):\n        c = r_rtp.toCartesian(**name_Cartesian_and_kwds)\n    else:\n        c = rtp2xyz_(r_rtp, radians(theta), radians(phi), **name_Cartesian_and_kwds)\n    return c\n\n\ndef rtp2xyz_(r_rtp, theta=0, phi=0, **name_Cartesian_and_kwds):\n    '''Convert I{spherical, polar} C{(r, theta, phi)} to cartesian C{(x, y, z)} coordinates.\n\n       @arg r_rtp: Radial distance (C{scalar}, conventially C{meter}) or a previous\n                   L{RadiusThetaPhi3Tuple} instance.\n       @arg theta: Inclination B{C{theta}} (C{radians} with respect to the positive z-axis),\n                   required if C{B{r_rtp}} is C{scalar}, ignored otherwise.\n       @arg phi: Azimuthal angle B{C{phi}} (C{radians}), like B{C{theta}}.\n       @kwarg name_Cartesian_and_kwds: Optional C{B{name}=NN} (C{str}), C{B{Cartesian}=None}\n                   class to return the coordinates and optionally, additional C{B{Cartesian}}\n                   keyword arguments.\n\n       @return: A C{B{Cartesian}(x, y, z)} instance or if no C{B{Cartesian}} keyword argument\n                is given a L{Vector3Tuple}C{(x, y, z)}, with C{x}, C{y} and C{z} in the same\n                units as radius C{r}, C{meter} conventionally.\n\n       @raise TypeError: Invalid B{C{r_rtp}}, B{C{theta}}, B{C{phi}} or\n                         B{C{name_Cartesian_and_kwds}} item.\n\n       @see: U{Physics convention<https://WikiPedia.org/wiki/Spherical_coordinate_system>}\n             (ISO 80000-2:2019), class L{RadiusThetaPhi3Tuple} and functions L{rtp2xyz}\n             and L{xyz2rtp}.\n    '''\n    if isinstance(r_rtp, RadiusThetaPhi3Tuple):\n        c = r_rtp.toCartesian(**name_Cartesian_and_kwds)\n    elif _isMeter(r_rtp):\n        r = r_rtp\n        if r and _isfinite(r):\n            s, z, y, x = sincos2_(theta, phi)\n            s *= r\n            z *= r\n            y *= s\n            x *= s\n        else:\n            x = y = z = r\n\n        n, kwds = _name2__(**name_Cartesian_and_kwds)\n        C, kwds = _xkwds_pop2(kwds, Cartesian=None)\n        c = Vector3Tuple(x, y, z, name=n) if C is None else \\\n                       C(x, y, z, name=n, **kwds)\n    else:\n        raise _TypeError(r_rtp=r_rtp, theta=theta, phi=phi)\n    return c\n\n\ndef _rtp3(where, U, *x_y_z, **name):\n    '''(INTERNAL) Helper for C{.toRtp}, C{xyz2rtp} and C{xyz2rtp_}.\n    '''\n    x, y, z = _MODS.vector3dBase._xyz3(where, *x_y_z)\n    r = hypot_(x, y, z)\n    if r > 0:\n        t = acos1(z / r)\n        p = atan2(y, x)\n        while p < 0:\n            p += PI2\n        if U is Degrees:\n            t = degrees(t)\n            p = degrees(p)\n    else:\n        t = p = _0_0\n    return RadiusThetaPhi3Tuple(r, t, p, **name)._toU(U)\n\n\ndef xyz2rtp(x_xyz, y=0, z=0, **name):\n    '''Convert cartesian C{(x, y, z)} to I{spherical, polar} C{(r, theta, phi)} coordinates.\n\n       @return: L{RadiusThetaPhi3Tuple}C{(r, theta, phi)} with C{theta} and C{phi}, both\n                in L{Degrees}.\n\n       @see: Function L{xyz2rtp_} for further details.\n    '''\n    return _rtp3(xyz2rtp, Degrees, x_xyz, y, z, **name)\n\n\ndef xyz2rtp_(x_xyz, y=0, z=0, **name):\n    '''Convert cartesian C{(x, y, z)} to I{spherical, polar} C{(r, theta, phi)} coordinates.\n\n       @arg x_xyz: X component (C{scalar}) or a cartesian (C{Cartesian}, L{Ecef9Tuple},\n                   C{Nvector}, L{Vector3d}, L{Vector3Tuple}, L{Vector4Tuple} or a C{tuple} or\n                   C{list} of 3+ C{scalar} items) if no C{y_z} specified.\n       @arg y: Y component (C{scalar}), required if C{B{x_xyz}} is C{scalar}, ignored otherwise.\n       @arg z: Z component (C{scalar}), like B{C{y}}.\n       @kwarg name: Optional C{B{name}=NN} (C{str}).\n\n       @return: L{RadiusThetaPhi3Tuple}C{(r, theta, phi)} with radial distance C{r} (C{meter},\n                same units as C{x}, C{y} and C{z}), inclination C{theta} (polar angle with\n                respect to the positive z-axis) and azimuthal angle C{phi}, both in L{Radians}.\n\n       @see: U{Physics convention<https://WikiPedia.org/wiki/Spherical_coordinate_system>}\n             (ISO 80000-2:2019), class L{RadiusThetaPhi3Tuple} and function L{xyz2rtp}.\n    '''\n    return _rtp3(xyz2rtp_, Radians, x_xyz, y, z, **name)\n\n\n__all__ += _ALL_DOCS(CartesianBase)\n\n# **) MIT License\n#\n# Copyright (C) 2016-2026 -- mrJean1 at Gmail -- All Rights Reserved.\n#\n# Permission is hereby granted, free of charge, to any person obtaining a\n# copy of this software and associated documentation files (the \"Software\"),\n# to deal in the Software without restriction, including without limitation\n# the rights to use, copy, modify, merge, publish, distribute, sublicense,\n# and/or sell copies of the Software, and to permit persons to whom the\n# Software is furnished to do so, subject to the following conditions:\n#\n# The above copyright notice and this permission notice shall be included\n# in all copies or substantial portions of the Software.\n#\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL\n# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR\n# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\n# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n# OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "pygeodesy/clipy.py",
    "content": "\r\n# -*- coding: utf-8 -*-\r\n\r\nu'''Clip a path or polygon of C{LatLon} points against a rectangular box or\r\nan arbitrary (convex) region.\r\n\r\nBox clip functions L{clipCS4} I{Cohen-Sutherland} and L{clipLB6} I{Liang-Barsky},\r\nregion clip functions L{clipFHP4} I{Foster-Hormann-Popa}, L{clipGH4}\r\nI{Greiner-Hormann} and L{clipSH} and L{clipSH3} I{Sutherland-Hodgeman}.\r\n.\r\n'''\r\n# make sure int/int division yields float quotient, see .basics\r\nfrom __future__ import division as _; del _  # noqa: E702 ;\r\n\r\nfrom pygeodesy.basics import len2,  typename\r\nfrom pygeodesy.constants import EPS, _0_0, _1_0\r\nfrom pygeodesy.errors import _AssertionError, ClipError, PointsError\r\nfrom pygeodesy.fmath import fabs,  Fsum\r\n# from pygeodesy.fsums import Fsum  # from .fmath\r\n# from pygeodesy.internals import typename  # from .basics\r\nfrom pygeodesy.interns import NN, _clipid_, _convex_, _DOT_, _end_, _few_, \\\r\n                             _fi_, _height_, _i_, _invalid_, _j_, _lat_, \\\r\n                             _lon_, _near_, _not_, _points_, _start_, _too_\r\nfrom pygeodesy.iters import _imdex2, points2\r\nfrom pygeodesy.lazily import _ALL_LAZY, _ALL_MODS as _MODS\r\nfrom pygeodesy.named import _Named, _NamedTuple, _Pass,  Property_RO\r\nfrom pygeodesy.points import areaOf, boundsOf, isconvex_, LatLon_\r\n# from pygeodesy.props import Property_RO  # from .named\r\nfrom pygeodesy.units import Bool, FIx, HeightX, Lat, Lon, Number_\r\n\r\n# from math import fabs  # from .fmath\r\n\r\n__all__ = _ALL_LAZY.clipy\r\n__version__ = '25.10.30'\r\n\r\n_fj_       = 'fj'\r\n_original_ = 'original'\r\n\r\n\r\ndef _box4(lowerleft, upperight, name):\r\n    '''(INTERNAL) Get the clip box edges.\r\n\r\n       @see: Class C{_Box} in .ellipsoidalBaseDI.py.\r\n    '''\r\n    try:\r\n        yb, yt = lowerleft.lat, upperight.lat\r\n        xl, xr = lowerleft.lon, upperight.lon\r\n        if xl > xr or yb > yt:\r\n            raise ValueError(_invalid_)\r\n    except (AttributeError, TypeError, ValueError) as x:\r\n        raise ClipError(name, 2, (lowerleft, upperight), cause=x)\r\n    return xl, yb, xr, yt\r\n\r\n\r\ndef _4corners(corners):\r\n    '''(INTERNAL) Clip region or box.\r\n    '''\r\n    n, cs = len2(corners)\r\n    if n == 2:  # make a box\r\n        yb, xl, yt, xr = boundsOf(cs, wrap=False)\r\n        cs = (LatLon_(yb, xl), LatLon_(yt, xl),\r\n              LatLon_(yt, xr), LatLon_(yb, xr))\r\n    return cs\r\n\r\n\r\ndef _eq(p1, p2, eps=EPS):\r\n    '''(INTERNAL) Check for near-equal points.\r\n    '''\r\n    return not _neq(p1, p2, eps)\r\n\r\n\r\ndef _neq(p1, p2, eps=EPS):\r\n    '''(INTERNAL) Check for not near-equal points.\r\n    '''\r\n    return fabs(p1.lat - p2.lat) > eps or \\\r\n           fabs(p1.lon - p2.lon) > eps\r\n\r\n\r\ndef _pts2(points, closed, inull):\r\n    '''(INTERNAL) Get the points to clip as a list.\r\n    '''\r\n    if closed and inull:\r\n        n, pts = len2(points)\r\n        # only remove the final, closing point\r\n        if n > 1 and _eq(pts[n-1], pts[0]):\r\n            n -= 1\r\n            pts = pts[:n]\r\n        if n < 2:\r\n            raise PointsError(points=n, txt=_too_(_few_))\r\n    else:\r\n        n, pts = points2(points, closed=closed)\r\n    return n, list(pts)\r\n\r\n\r\nclass _CS(_Named):\r\n    '''(INTERNAL) Cohen-Sutherland line clipping.\r\n    '''\r\n    # single-bit clip codes\r\n    _IN =  0  # inside clip box\r\n    _XR =  1  # right of upperight.lon\r\n    _XL =  2  # left of lowerleft.lon\r\n    _YT =  4  # above upperight.lat\r\n    _YB =  8  # below lowerleft.lat\r\n\r\n    _dx = _0_0  # pts edge delta lon\r\n    _dy = _0_0  # pts edge delta lat\r\n    _x1 = _0_0  # pts corner\r\n    _y1 = _0_0  # pts corner\r\n\r\n    _xr = _0_0  # clip box upperight.lon\r\n    _xl = _0_0  # clip box lowerleft.lon\r\n    _yt = _0_0  # clip box upperight.lat\r\n    _yb = _0_0  # clip box lowerleft.lat\r\n\r\n    def __init__(self, lowerleft, upperight, name=__name__):\r\n        self._xl, self._yb, \\\r\n        self._xr, self._yt = _box4(lowerleft, upperight, name)\r\n        self.name = name\r\n\r\n#   def clip4(self, p, c):  # clip point p for code c\r\n#       if c & _CS._YB:\r\n#           return self.lon4(p, self._yb)\r\n#       elif c & _CS._YT:\r\n#           return self.lon4(p, self._yt)\r\n#       elif c & _CS._XL:\r\n#           return self.lat4(p, self._xl)\r\n#       elif c & _CS._XR:\r\n#           return self.lat4(p, self._xr)\r\n#       # should never get here\r\n#       raise _AssertionError(self._DOT_(typename(self.clip4)))\r\n\r\n    def code4(self, p):  # compute code for point p\r\n        if p.lat < self._yb:\r\n            c, m, b = _CS._YB, self.lon4, self._yb\r\n        elif p.lat > self._yt:\r\n            c, m, b = _CS._YT, self.lon4, self._yt\r\n        else:\r\n            c, m, b = _CS._IN, self.nop4, None\r\n        if p.lon < self._xl:\r\n            c |= _CS._XL\r\n            m, b = self.lat4, self._xl\r\n        elif p.lon > self._xr:\r\n            c |= _CS._XR\r\n            m, b = self.lat4, self._xr\r\n        return c, m, b, p\r\n\r\n    def edge(self, p1, p2):  # set edge p1 to p2\r\n        self._y1, self._dy = p1.lat, float(p2.lat - p1.lat)\r\n        self._x1, self._dx = p1.lon, float(p2.lon - p1.lon)\r\n        return fabs(self._dx) > EPS or fabs(self._dy) > EPS\r\n\r\n    def lat4(self, x, p):  # new lat and code at lon x\r\n        y = self._y1 + self._dy * float(x - self._x1) / self._dx\r\n        if y < self._yb:  # still outside\r\n            return _CS._YB, self.lon4, self._yb, p\r\n        elif y > self._yt:  # still outside\r\n            return _CS._YT, self.lon4, self._yt, p\r\n        else:  # inside\r\n            return _CS._IN, self.nop4, None, p.classof(y, x)\r\n\r\n    def lon4(self, y, p):  # new lon and code at lat y\r\n        x = self._x1 + self._dx * float(y - self._y1) / self._dy\r\n        if x < self._xl:  # still outside\r\n            return _CS._XL, self.lat4, self._xl, p\r\n        elif x > self._xr:  # still outside\r\n            return _CS._XR, self.lat4, self._xr, p\r\n        else:  # inside\r\n            return _CS._IN, self.nop4, None, p.classof(y, x)\r\n\r\n    def nop4(self, b, p):  # PYCHOK no cover\r\n        if p:  # should never get here\r\n            raise _AssertionError(self._DOT_(typename(self.nop4)))\r\n        return _CS._IN, self.nop4, b, p\r\n\r\n\r\nclass ClipCS4Tuple(_NamedTuple):\r\n    '''4-Tuple C{(start, end, i, j)} for each edge of a I{clipped}\r\n       path with the C{start} and C{end} points (C{LatLon}) of the\r\n       portion of the edge inside or on the clip box and the indices\r\n       C{i} and C{j} (C{int}) of the edge start and end points in\r\n       the original path.\r\n    '''\r\n    _Names_ = (_start_, _end_, _i_,     _j_)\r\n    _Units_ = (_Pass,   _Pass,  Number_, Number_)\r\n\r\n\r\ndef clipCS4(points, lowerleft, upperight, closed=False, inull=False):\r\n    '''Clip a path against a rectangular clip box using the U{Cohen-Sutherland\r\n       <https://WikiPedia.org/wiki/Cohen-Sutherland_algorithm>} algorithm.\r\n\r\n       @arg points: The points (C{LatLon}[]).\r\n       @arg lowerleft: Bottom-left corner of the clip box (C{LatLon}).\r\n       @arg upperight: Top-right corner of the clip box (C{LatLon}).\r\n       @kwarg closed: Optionally, close the path (C{bool}).\r\n       @kwarg inull: Optionally, retain null edges if inside (C{bool}).\r\n\r\n       @return: Yield a L{ClipCS4Tuple}C{(start, end, i, j)} for each\r\n                edge of the I{clipped} path.\r\n\r\n       @raise ClipError: The B{C{lowerleft}} and B{C{upperight}} corners\r\n                         specify an invalid clip box.\r\n\r\n       @raise PointsError: Insufficient number of B{C{points}}.\r\n    '''\r\n    T4 =  ClipCS4Tuple\r\n    cs = _CS(lowerleft, upperight, name=typename(clipCS4))\r\n    n, pts = _pts2(points, closed, inull)\r\n\r\n    i, m = _imdex2(closed, n)\r\n    cmbp =  cs.code4(pts[i])\r\n    for j in range(m, n):\r\n        c1, m1, b1, p1 = cmbp\r\n        c2, m2, b2, p2 = cmbp = cs.code4(pts[j])\r\n        if c1 & c2:  # edge outside\r\n            pass\r\n        elif cs.edge(p1, p2):\r\n            for _ in range(5):\r\n                if c1:  # clip p1\r\n                    c1, m1, b1, p1 = m1(b1, p1)\r\n                elif c2:  # clip p2\r\n                    c2, m2, b2, p2 = m2(b2, p2)\r\n                else:  # inside\r\n                    if inull or _neq(p1, p2):\r\n                        yield T4(p1, p2, i, j)\r\n                    break\r\n                if c1 & c2:  # edge outside\r\n                    break\r\n            else:  # PYCHOK no cover\r\n                raise _AssertionError(_DOT_(cs.name, 'for_else'))\r\n\r\n        elif inull and not c1:  # null edge\r\n            yield T4(p1, p1, i, j)\r\n        elif inull and not c2:\r\n            yield T4(p2, p2, i, j)\r\n\r\n        i = j\r\n\r\n\r\nclass ClipFHP4Tuple(_NamedTuple):\r\n    '''4-Tuple C{(lat, lon, height, clipid)} for each point of the L{clipFHP4} result\r\n       with the C{lat}-, C{lon}gitude, C{height} and C{clipid} of the polygon or clip.\r\n\r\n       @note: The C{height} is a L{HeightX} instance if this point is\r\n              an intersection, otherwise a L{Height} or C{int(0)}.\r\n    '''\r\n    _Names_ = (_lat_, _lon_, _height_, _clipid_)\r\n    _Units_ = ( Lat,   Lon,  _Pass,     Number_)\r\n\r\n    @Property_RO\r\n    def isintersection(self):\r\n        '''Is this an intersection?\r\n        '''\r\n        return isinstance(self.height, HeightX)\r\n\r\n    @Property_RO\r\n    def ispoint(self):\r\n        '''Is this an original (polygon) point?\r\n        '''\r\n        return not self.isintersection\r\n\r\n\r\ndef clipFHP4(points, corners, closed=False, inull=False, raiser=False, eps=EPS):\r\n    '''Clip one or more polygons against a clip region or box using U{Forster-Hormann-Popa\r\n       <https://www.ScienceDirect.com/science/article/pii/S259014861930007X>}'s C++\r\n       implementation transcoded to pure Python.\r\n\r\n       @arg points: The polygon points and clips (C{LatLon}[]).\r\n       @arg corners: Three or more points defining the clip regions (C{LatLon}[])\r\n                     or two points to specify a single, rectangular clip box.\r\n       @kwarg closed: If C{True}, close each result clip (C{bool}).\r\n       @kwarg inull: If C{True}, retain null edges in result clips (C{bool}).\r\n       @kwarg raiser: If C{True}, throw L{ClipError} exceptions (C{bool}).\r\n       @kwarg esp: Tolerance for eliminating null edges (C{degrees}, same units\r\n                   as the B{C{points}} and B{C{corners}} coordinates).\r\n\r\n       @return: Yield a L{ClipFHP4Tuple}C{(lat, lon, height, clipid)} for each\r\n                clipped point.  The result may consist of several I{clips}, each\r\n                a (closed) polygon with a unique C{clipid} identifier.\r\n\r\n       @raise ClipError: Insufficient B{C{points}} or B{C{corners}} or an open clip.\r\n\r\n       @see: U{Forster, Hormann and Popa<https://www.ScienceDirect.com/science/\r\n             article/pii/S259014861930007X>} and class L{BooleanFHP}.\r\n    '''\r\n    P = _MODS.booleans._CompositeFHP(points, kind=_points_, raiser=raiser,\r\n                                                   eps=eps, name__=clipFHP4)\r\n    Q = _4corners(corners)\r\n    return P._clip(Q, Union=False, Clas=ClipFHP4Tuple, closed=closed,\r\n                                   inull=inull, raiser=P._raiser, eps=eps)\r\n\r\n\r\nclass ClipGH4Tuple(ClipFHP4Tuple):\r\n    '''4-Tuple C{(lat, lon, height, clipid)} for each point of the L{clipGH4} result\r\n       with the C{lat}-, C{lon}gitude, C{height} and C{clipid} of the polygon or clip.\r\n\r\n       @note: The C{height} is a L{HeightX} instance if this is an intersection,\r\n              otherwise a L{Height} or C{int(0)}.\r\n    '''\r\n    _Names_ = ClipFHP4Tuple._Names_\r\n    _Units_ = ClipFHP4Tuple._Units_\r\n\r\n\r\ndef clipGH4(points, corners, closed=False, inull=False, raiser=True, xtend=False, eps=EPS):\r\n    '''Clip one or more polygons against a clip region or box using the U{Greiner-Hormann\r\n       <http://www.Inf.USI.CH/hormann/papers/Greiner.1998.ECO.pdf>} algorithm, extended.\r\n\r\n       @arg points: The polygon points and clips (C{LatLon}[]).\r\n       @arg corners: Three or more points defining the clip regions (C{LatLon}[])\r\n                     or two points to specify a single, rectangular clip box.\r\n       @kwarg closed: If C{True}, close each result clip (C{bool}).\r\n       @kwarg inull: If C{True}, retain null edges in result clips (C{bool}).\r\n       @kwarg raiser: If C{True}, throw L{ClipError} exceptions (C{bool}).\r\n       @kwarg xtend: If C{True}, extend edges of I{degenerate cases}, an attempt\r\n                     to handle the latter (C{bool}).\r\n       @kwarg esp: Tolerance for eliminating null edges (C{degrees}, same units\r\n                   as the B{C{points}} and B{C{corners}} coordinates).\r\n\r\n       @return: Yield a L{ClipGH4Tuple}C{(lat, lon, height, clipid)} for each\r\n                clipped point.  The result may consist of several I{clips}, each\r\n                a (closed) polygon with a unique C{clipid} identifier.\r\n\r\n       @raise ClipError: Insufficient B{C{points}} or B{C{corners}}, an open clip,\r\n                         a I{degenerate case} or I{unhandled} intersection.\r\n\r\n       @note: To handle I{degenerate cases} like C{point-edge} and C{point-point}\r\n              intersections I{properly}, use function L{clipFHP4}.\r\n\r\n       @see: U{Greiner-Hormann<https://WikiPedia.org/wiki/Greiner–Hormann_clipping_algorithm>}\r\n             and class L{BooleanGH}.\r\n    '''\r\n    S = _MODS.booleans._CompositeGH(points, raiser=raiser, xtend=xtend, eps=eps,\r\n                                            name__=clipGH4, kind=_points_)\r\n    C = _4corners(corners)\r\n    return S._clip(C, False, False, Clas=ClipGH4Tuple, closed=closed, inull=inull,\r\n                                    raiser=S._raiser, xtend=S._xtend, eps=eps)\r\n\r\n\r\ndef _LBtrim(p, q, t):\r\n    # Liang-Barsky trim t[0] or t[1]\r\n    if p < 0:\r\n        r = q / p\r\n        if r > t[1]:\r\n            return False  # too far above\r\n        elif r > t[0]:\r\n            t[0] = r\r\n    elif p > 0:\r\n        r = q / p\r\n        if r < t[0]:\r\n            return False  # too far below\r\n        elif r < t[1]:\r\n            t[1] = r\r\n    elif q < 0:  # vertical or horizontal\r\n        return False  # ... outside\r\n    return True\r\n\r\n\r\nclass ClipLB6Tuple(_NamedTuple):\r\n    '''6-Tuple C{(start, end, i, fi, fj, j)} for each edge of the\r\n       I{clipped} path with the C{start} and C{end} points (C{LatLon})\r\n       of the portion of the edge inside or on the clip box, indices\r\n       C{i} and C{j} (both C{int}) of the original path edge start\r\n       and end points and I{fractional} indices C{fi} and C{fj}\r\n       (both L{FIx}) of the C{start} and C{end} points along the\r\n       edge of the original path.\r\n\r\n       @see: Class L{FIx} and function L{pygeodesy.fractional}.\r\n    '''\r\n    _Names_ = (_start_, _end_, _i_,      _fi_,  _fj_, _j_)\r\n    _Units_ = (_Pass,   _Pass,  Number_, _Pass, _Pass, Number_)\r\n\r\n\r\ndef clipLB6(points, lowerleft, upperight, closed=False, inull=False):\r\n    '''Clip a path against a rectangular clip box using the U{Liang-Barsky\r\n       <https://www.CSE.UNT.edu/~renka/4230/LineClipping.pdf>} algorithm.\r\n\r\n       @arg points: The points (C{LatLon}[]).\r\n       @arg lowerleft: Bottom-left corner of the clip box (C{LatLon}).\r\n       @arg upperight: Top-right corner of the clip box (C{LatLon}).\r\n       @kwarg closed: Optionally, close the path (C{bool}).\r\n       @kwarg inull: Optionally, retain null edges if inside (C{bool}).\r\n\r\n       @return: Yield a L{ClipLB6Tuple}C{(start, end, i, fi, fj, j)} for\r\n                each edge of the I{clipped} path.\r\n\r\n       @raise ClipError: The B{C{lowerleft}} and B{C{upperight}} corners\r\n                         specify an invalid clip box.\r\n\r\n       @raise PointsError: Insufficient number of B{C{points}}.\r\n\r\n       @see: U{Liang-Barsky Line Clipping<https://www.CS.Helsinki.FI/group/goa/\r\n             viewing/leikkaus/intro.html>}, U{Liang-Barsky line clipping algorithm\r\n             <https://www.Skytopia.com/project/articles/compsci/clipping.html>} and\r\n             U{Liang-Barsky algorithm<https://WikiPedia.org/wiki/Liang-Barsky_algorithm>}.\r\n    '''\r\n    xl, yb, \\\r\n    xr, yt = _box4(lowerleft, upperight, typename(clipLB6))\r\n    n, pts = _pts2(points, closed, inull)\r\n\r\n    T6  =  ClipLB6Tuple\r\n    fin =  n if closed else None  # wrapping fi [n] to [0]\r\n    _LB = _LBtrim\r\n\r\n    i, m = _imdex2(closed, n)\r\n    for j in range(m, n):\r\n        p1 = pts[i]\r\n        y1 = p1.lat\r\n        x1 = p1.lon\r\n\r\n        p2 = pts[j]\r\n        dy = float(p2.lat - y1)\r\n        dx = float(p2.lon - x1)\r\n        if fabs(dx) > EPS or fabs(dy) > EPS:\r\n            # non-null edge pts[i]...pts[j]\r\n            t = [_0_0, _1_0]\r\n            if _LB(-dx, -xl + x1, t) and \\\r\n               _LB( dx,  xr - x1, t) and \\\r\n               _LB(-dy, -yb + y1, t) and \\\r\n               _LB( dy,  yt - y1, t):\r\n                # clip edge pts[i]...pts[j]\r\n                # at fractions t[0] to t[1]\r\n                f, t = t\r\n                if f > _0_0:  # EPS\r\n                    p1 = p1.classof(y1 + f * dy,\r\n                                    x1 + f * dx)\r\n                    fi = i + f\r\n                else:\r\n                    fi = i\r\n\r\n                if (t - f) > EPS:  # EPS0\r\n                    if t < _1_0:  # EPS1\r\n                        p2 = p2.classof(y1 + t * dy,\r\n                                        x1 + t * dx)\r\n                        fj = i + t\r\n                    else:\r\n                        fj = j\r\n                    fi = FIx(fi, fin=fin)\r\n                    fj = FIx(fj, fin=fin)\r\n                    yield T6(p1, p2, i, fi, fj, j)\r\n\r\n                elif inull:\r\n                    fi = FIx(fi, fin=fin)\r\n                    yield T6(p1, p1, i, fi, fi, j)\r\n#           else:  # outside\r\n#               pass\r\n        elif inull:  # null edge\r\n            yield T6(p1, p2, i, FIx(i, fin=fin),\r\n                                FIx(j, fin=fin), j)\r\n        i = j\r\n\r\n\r\nclass _SH(_Named):\r\n    '''(INTERNAL) Sutherland-Hodgman polyon clipping.\r\n    '''\r\n    _cs  = ()    # clip corners\r\n    _cw  =  0    # counter-/clockwise\r\n    _ccw =  0    # clock-/counterwise\r\n    _dx  = _0_0  # clip edge[e] delta lon\r\n    _dy  = _0_0  # clip edge[e] delta lat\r\n    _nc  =  0    # len(._cs)\r\n    _x1  = _0_0  # clip edge[e] lon origin\r\n    _xy  = _0_0  # see .clipedges\r\n    _y1  = _0_0  # clip edge[e] lat origin\r\n\r\n    def __init__(self, corners, name=__name__):\r\n        n, cs = 0, corners\r\n        try:  # check the clip box/region\r\n            cs = _4corners(cs)\r\n            n, cs = len2(cs)\r\n            n, cs = points2(cs, closed=True)\r\n            self._cs = cs = cs[:n]\r\n            self._nc = n\r\n            self._cw = isconvex_(cs, adjust=False, wrap=False)\r\n            if not self._cw:\r\n                raise ValueError(_not_(_convex_))\r\n            if areaOf(cs, adjust=True, radius=1, wrap=True) < EPS:\r\n                raise ValueError(NN(_near_, 'zero area'))\r\n            self._ccw = -self._cw\r\n        except (PointsError, TypeError, ValueError) as x:\r\n            raise ClipError(name, n, cs, cause=x)\r\n        self.name = name\r\n\r\n    def clip2(self, points, closed, inull):  # MCCABE 13, clip points\r\n        np, pts = _pts2(points, closed, inull)\r\n        pcs = _SHlist(inull)  # clipped points\r\n        _ap = pcs.append\r\n        _d2 = self.dot2\r\n        _in = self.intersect\r\n\r\n        ne = 0  # number of non-null clip edges\r\n        for e in self.clipedges():\r\n            ne += 1  # non-null clip edge\r\n\r\n            # clip points, closed always\r\n            d1, p1 = _d2(pts[np - 1])\r\n            for i in range(np):\r\n                d2, p2 = _d2(pts[i])\r\n                if d1 < 0:  # p1 inside, p2 ...\r\n                    # _ap(p1)\r\n                    _ap(p2 if d2 < 0 else  # ... in-\r\n                        _in(p1, p2, e))  # ... outside\r\n                elif d2 < 0:  # p1 out-, p2 inside\r\n                    _ap(_in(p1, p2, e))\r\n                    _ap(p2)\r\n#                   elif d1 > 0:  # both outside\r\n#                       pass\r\n                d1, p1 = d2, p2\r\n\r\n            # replace points, in-place\r\n            pts[:] = pcs\r\n            pcs[:] = []\r\n            np = len(pts)\r\n            if not np:  # all outside\r\n                break\r\n        else:\r\n            if ne < 3:\r\n                raise ClipError(self.name, ne, self._cs, txt=_too_(_few_))\r\n\r\n        if np > 1:\r\n            p = pts[0]\r\n            if closed:  # close clipped pts\r\n                if _neq(pts[np - 1], p):\r\n                    pts.append(p)\r\n                    np += 1\r\n            elif not inull:  # open clipped pts\r\n                while np > 0 and _eq(pts[np - 1], p):\r\n                    pts.pop()\r\n                    np -= 1\r\n        # assert len(pts) == np\r\n        return np, pts\r\n\r\n    def clipedges(self):  # yield clip edge index\r\n        # and set self._x1, ._y1, ._dx, ._dy and\r\n        # ._xy for each non-null clip edge\r\n        nc = self._nc\r\n        cs = self._cs\r\n        c  = cs[nc - 1]\r\n        for e in range(nc):\r\n            y, x, c = c.lat, c.lon, cs[e]\r\n            dy = float(c.lat - y)\r\n            dx = float(c.lon - x)\r\n            if fabs(dx) > EPS or fabs(dy) > EPS:\r\n                self._y1, self._dy = y, dy\r\n                self._x1, self._dx = x, dx\r\n                self._xy = y * dx - x * dy\r\n                yield e + 1\r\n\r\n    def clipped2(self, p):  # return (clipped point [i], edge)\r\n        if isinstance(p, _SHlli):  # intersection point\r\n            return p.classof(p.lat, p.lon), p.edge\r\n        else:  # original point\r\n            return p, 0\r\n\r\n    def dot2(self, p):  # dot product of point p to clip\r\n        # corner c1 and clip edge c1 to c2, indicating where\r\n        # point p is located: to the right, to the left or\r\n        # on top of the (extended) clip edge from c1 to c2\r\n        d = float(p.lat - self._y1) * self._dx - \\\r\n            float(p.lon - self._x1) * self._dy\r\n        # clockwise corners, +1 means point p is to the right\r\n        # of, -1 means on the left of, 0 means on edge c1 to c2\r\n        d = self._ccw if d < 0 else (self._cw if d > 0 else 0)\r\n        return d, p\r\n\r\n    def intersect(self, p1, p2, edge):  # compute intersection\r\n        # of polygon edge p1 to p2 and the current clip edge,\r\n        # where p1 and p2 are known to NOT be located on the\r\n        # same side of or on the current, non-null clip edge\r\n        # <https://StackOverflow.com/questions/563198/\r\n        #        how-do-you-detect-where-two-line-segments-intersect>\r\n        y, dy = p1.lat, self._dy\r\n        x, dx = p1.lon, self._dx\r\n        fy = float(p2.lat - y)\r\n        fx = float(p2.lon - x)\r\n        d  = fy * dx - fx * dy  # fdot((fx, fy), dx, -dy)\r\n        if fabs(d) < EPS:  # PYCHOK no cover\r\n            raise _AssertionError(self._DOT_(typename(self.intersect)))\r\n        d  = Fsum(self._xy, -y * dx, x * dy).fover(d)\r\n        y += d * fy\r\n        x += d * fx\r\n        return _SHlli(y, x, p1.classof, edge)\r\n\r\n\r\nclass _SHlist(list):\r\n    '''(INTERNAL) List of _SH clipped points.\r\n    '''\r\n    _inull = False\r\n\r\n    def __init__(self, inull):\r\n        self._inull = inull\r\n        list.__init__(self)\r\n\r\n    def append(self, p):\r\n        if (not self) or self._inull or _neq(p, self[-1]):\r\n            list.append(self, p)\r\n\r\n\r\nclass _SHlli(LatLon_):\r\n    '''(INTERNAL) LatLon_ for _SH intersections.\r\n    '''\r\n    # __slots__ are no longer space savers, see\r\n    # the comments at the class .points.LatLon_\r\n    # __slots__ = _lat_, _lon_, 'classof', 'edge', _name_\r\n\r\n    def __init__(self, lat, lon, classof, edge):\r\n        self.lat     = lat\r\n        self.lon     = lon\r\n        self.classof = classof\r\n        self.edge    = edge  # clip edge\r\n        self.name    = NN\r\n\r\n\r\nclass ClipSH3Tuple(_NamedTuple):\r\n    '''3-Tuple C{(start, end, original)} for each edge of a I{clipped}\r\n       polygon, the C{start} and C{end} points (C{LatLon}) of the\r\n       portion of the edge inside or on the clip region and C{original}\r\n       indicates whether the edge is part of the original polygon or\r\n       part of the clip region (C{bool}).\r\n    '''\r\n    _Names_ = (_start_, _end_, _original_)\r\n    _Units_ = (_Pass,   _Pass,  Bool)\r\n\r\n\r\ndef clipSH(points, corners, closed=False, inull=False):\r\n    '''Clip a polygon against a clip region or box using the U{Sutherland-Hodgman\r\n       <https://WikiPedia.org/wiki/Sutherland-Hodgman_algorithm>} algorithm.\r\n\r\n       @arg points: The polygon points (C{LatLon}[]).\r\n       @arg corners: Three or more points defining a convex clip\r\n                     region (C{LatLon}[]) or two points to specify\r\n                     a rectangular clip box.\r\n       @kwarg closed: Close the clipped points (C{bool}).\r\n       @kwarg inull: Optionally, include null edges (C{bool}).\r\n\r\n       @return: Yield the clipped points (C{LatLon}[]).\r\n\r\n       @raise ClipError: The B{C{corners}} specify a polar, zero-area,\r\n                         non-convex or otherwise invalid clip box or\r\n                         region.\r\n\r\n       @raise PointsError: Insufficient number of B{C{points}}.\r\n    '''\r\n    sh = _SH(corners, name=typename(clipSH))\r\n    n, pts = sh.clip2(points, closed, inull)\r\n    for i in range(n):\r\n        p, _ = sh.clipped2(pts[i])\r\n        yield p\r\n\r\n\r\ndef clipSH3(points, corners, closed=False, inull=False):\r\n    '''Clip a polygon against a clip region or box using the U{Sutherland-Hodgman\r\n       <https://WikiPedia.org/wiki/Sutherland-Hodgman_algorithm>} algorithm.\r\n\r\n       @arg points: The polygon points (C{LatLon}[]).\r\n       @arg corners: Three or more points defining a convex clip\r\n                     region (C{LatLon}[]) or two points to specify\r\n                     a rectangular clip box.\r\n       @kwarg closed: Close the clipped points (C{bool}).\r\n       @kwarg inull: Optionally, include null edges (C{bool}).\r\n\r\n       @return: Yield a L{ClipSH3Tuple}C{(start, end, original)} for\r\n                each edge of the I{clipped} polygon.\r\n\r\n       @raise ClipError: The B{C{corners}} specify a polar, zero-area,\r\n                         non-convex or otherwise invalid clip box or\r\n                         region.\r\n\r\n       @raise PointsError: Insufficient number of B{C{points}} or B{C{corners}}.\r\n    '''\r\n    sh = _SH(corners, name=typename(clipSH3))\r\n    n, pts = sh.clip2(points, closed, inull)\r\n    if n > 1:\r\n        T3 = ClipSH3Tuple\r\n        p1, e1 = sh.clipped2(pts[0])\r\n        for i in range(1, n):\r\n            p2, e2 = sh.clipped2(pts[i])\r\n            yield T3(p1, p2, not bool(e1 and e2 and e1 == e2))\r\n            p1, e1 = p2, e2\r\n\r\n# **) MIT License\r\n#\r\n# Copyright (C) 2018-2026 -- mrJean1 at Gmail -- All Rights Reserved.\r\n#\r\n# Permission is hereby granted, free of charge, to any person obtaining a\r\n# copy of this software and associated documentation files (the \"Software\"),\r\n# to deal in the Software without restriction, including without limitation\r\n# the rights to use, copy, modify, merge, publish, distribute, sublicense,\r\n# and/or sell copies of the Software, and to permit persons to whom the\r\n# Software is furnished to do so, subject to the following conditions:\r\n#\r\n# The above copyright notice and this permission notice shall be included\r\n# in all copies or substantial portions of the Software.\r\n#\r\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\r\n# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r\n# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL\r\n# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR\r\n# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\r\n# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\r\n# OTHER DEALINGS IN THE SOFTWARE.\r\n"
  },
  {
    "path": "pygeodesy/constants.py",
    "content": "\n# -*- coding: utf-8 -*-\n\nu'''Single-instance C{float} and C{int} constants across C{pygeodesy} modules and related\nfunctions L{pygeodesy.float_}, L{pygeodesy.float0_}, L{pygeodesy.isclose}, L{pygeodesy.isfinite},\nL{pygeodesy.isinf}, L{pygeodesy.isint0}, L{pygeodesy.isnan}, L{pygeodesy.isnear0},\nL{pygeodesy.isnear1}, L{pygeodesy.isnear90}, L{pygeodesy.isneg0}, L{pygeodesy.isninf},\nL{pygeodesy.isnon0} and L{pygeodesy.remainder}.\n'''\n# make sure int/int division yields float quotient, see .basics\nfrom __future__ import division as _; del _  # noqa: E702 ;\n\nfrom pygeodesy.basics import _copysign, isbool, iscomplex, isint, signBit\nfrom pygeodesy.errors import _ValueError, _xError, _xkwds_get1, _xkwds_item2\n# from pygeodesy.fsums import _isFsum_2Tuple  # _MODS\nfrom pygeodesy.internals import _0_0, _100_0, typename\nfrom pygeodesy.interns import _INF_, _NAN_,  _DMAIN_  # PYCHOK used!\nfrom pygeodesy.lazily import _ALL_MODS as _MODS, _ALL_LAZY\n# from pygeodesy.streprs import Fmt  # from .unitsBase\nfrom pygeodesy.unitsBase import Float, Int, Radius,  Fmt\n\nfrom math import fabs, isinf, isnan, pi as _pi, sqrt\ntry:\n    from math import inf as _inf, nan as _nan  # PYCHOK Python 3+\nexcept ImportError:  # Python 2-\n    _inf, _nan = float(_INF_), float(_NAN_)\n\n__all__ = _ALL_LAZY.constants\n__version__ = '26.02.09'\n\n\ndef _copysign_0_0(y):\n    '''(INTERNAL) copysign(0.0, y), only C{float}.\n    '''\n    return _N_0_0 if signBit(y) else _0_0\n\n\ndef _copysign_1_0(y):\n    '''(INTERNAL) copysign(1.0, y), only C{float}.\n    '''\n    return _N_1_0 if signBit(y) else _1_0\n\n\ndef _copysignINF(y):\n    '''(INTERNAL) copysign(INF, y), only C{float}.\n    '''\n    return NINF if signBit(y) else INF\n\n\ndef _flipsign(x, y=-1):\n    '''(INTERNAL) Negate C{x} for negative C{y}.\n    '''\n    return (-x) if signBit(y) else x\n\n\ndef _Float(**name_arg):\n    '''(INTERNAL) New named, cached C{Float}.\n    '''\n    n, arg = _xkwds_item2(name_arg)\n    return Float(_float(arg), name=n)\n\n\ndef _float(x):  # in .datums, .ellipsoids, ...\n    '''(INTERNAL) Cache initial C{float}s.\n    '''\n    f = float(x)\n    return _floats.setdefault(f, f)  # PYCHOK del _floats\n\n\ndef float_(x, sets=False):\n    '''Get scalar as C{float} or I{intern}'ed C{float}.\n\n       @arg x: The scalar (C{scalar}).\n       @kwarg sets: Use C{True} to C{intern} the B{C{f}},\n                    otherwise don't (C{bool}).\n\n       @return: A C{float}.\n\n       @raise ValueError: Invalid B{C{x}}.\n    '''\n    try:\n        f = float(x)\n        if f:\n            _f = _floats.setdefault if sets else _floats.get\n            f  = _f(f, f)\n        else:\n            f  = _N_0_0 if signBit(f) else _0_0\n    except Exception as X:\n        raise _ValueError(x=x, cause=X)\n    return f\n\n\ndef float0_(*xs):\n    '''Yield C{B{x}s} as a non-NEG0 C{float}.\n    '''\n    for x in xs:\n        yield float(x) or _0_0  # if x else _0_0\n\n\ndef _float0(x):  # in .auxilats.auxily, .resections, .vector3dBase, ...\n    '''(INTERNAL) Return C{float(B{f})} or C{INT0}.\n    '''\n    if x:\n        f =  float(x)\n        f = _floats.get(f, f)\n    elif x is INT0:\n        f =  x\n    else:\n        f =  float(x) or _0_0  # force None, NN error\n    return f\n\n\ndef floats_(*xs, **sets):  # sets=False\n    '''Yield each scalar as C{float} or I{intern}'ed C{float}.\n\n       @arg xs: One more values (C{scalar}), all positional.\n       @kwarg sets: Use C{B{sets}=True} to C{intern} each\n                    B{C{fs}}, otherwise don't C{intern}.\n\n       @raise ValueError: Some B{C{xs}} is not C{scalar}.\n    '''\n    if sets:\n        sets = _xkwds_get1(sets, sets=False)\n    _f = _floats.setdefault if sets else _floats.get\n    try:\n        for i, x in enumerate(xs):\n            f = float(x)\n            yield _f(f, f) if f else \\\n                  (_N_0_0 if signBit(f) else _0_0)  # preserve NEG0\n    except Exception as X:\n        xs_i = Fmt.SQUARE(xs=i)\n        raise _ValueError(xs_i, x, cause=X)\n\n\ndef _floatuple(*fs):\n    '''(INTERNAL) Cache a tuple of C{float}s.\n    '''\n    return tuple(map(_float, fs))\n\n\ntry:\n    from math import log2 as _log2\nexcept ImportError:  # Python 3.3-\n    from math import log as _log\n\n    def _log2(x):  # in .rhumb.aux_, .auxilats.auxLat\n        return _log(x, 2)\n\n\ndef _naninf(p, *xs):\n    '''(INTERNAL) Return C{NAN}, C{NINF} or C{INF}.\n    '''\n    for x in xs:\n        p *= x  # fmath.fprod(xs)\n    return _copysignINF(p) if isfinite(p) else p\n\n\ndef _over(p, q):\n    '''(INTERNAL) Return C{B{p} / B{q}} without C{ZeroDivisionError} exceptions.\n    '''\n    try:\n        return (p / q)  # if p else _copysign_0_0(q)\n    except ZeroDivisionError:\n        return (_copysignINF(p) if isfinite(p) else NAN) if p else p\n\n\ndef _over_1(p, q):\n    '''(INTERNAL) Return C{B{p} / B{q}} with exact C{1.0} and without C{ZeroDivisionError} exceptions.\n    '''\n    if fabs(p) != fabs(q):\n        r = _over(p, q)\n    else:\n        r = _flipsign(p, q)\n        if p:\n            r = _copysign_1_0(r)\n    return r\n\n\ndef _1_over(x):\n    '''(INTERNAL) Return reciprocal C{1 / B{x}} avoiding C{ZeroDivisionError} exceptions.\n    '''\n    try:\n        return _1_0 / float(x)\n    except ZeroDivisionError:\n        return  NINF if isneg0(x) else INF\n\n\ndef _Radius(**name_arg):\n    '''(INTERNAL) New named, cached C{Radius}.\n    '''\n    n, arg = _xkwds_item2(name_arg)\n    return Radius(_float(arg), name=n)\n\n\n_floats  = {}     # PYCHOK floats cache, in .__main__\n# _float = float  # PYCHOK expected\n# del _floats     # XXX zap floats cache never\n\n_0_0     = _float(  _0_0)     # PYCHOK expected\n_0_0_1T  = _0_0,              # PYCHOK 1-tuple\n_0_0_9T  = _0_0_1T * 9        # PYCHOK 9-tuple\n_0_0001  = _float(   0.0001)  # PYCHOK expected\n_0_001   = _float(   0.001)   # PYCHOK expected\n_0_01    = _float(   0.01)    # PYCHOK expected\n_0_1     = _float(   0.1)     # PYCHOK expected\n_0_125   = _float(   0.125)   # PYCHOK expected\n_0_25    = _float(   0.25)    # PYCHOK expected\n_0_5     = _float(   0.5)     # PYCHOK expected\n_0_75    = _float(   0.75)     # PYCHOK expected\n_1_0     = _float(   1)       # PYCHOK expected\n_1_0_1T  = _1_0,              # PYCHOK 1-tuple\n_1_5     = _float(   1.5)     # PYCHOK expected\n_1_75    = _float(   1.75)    # PYCHOK expected\n_2_0     = _float(   2)       # PYCHOK expected\n_3_0     = _float(   3)       # PYCHOK expected\n_4_0     = _float(   4)       # PYCHOK expected\n_5_0     = _float(   5)       # PYCHOK expected\n_6_0     = _float(   6)       # PYCHOK expected\n_8_0     = _float(   8)       # PYCHOK expected\n_9_0     = _float(   9)       # PYCHOK expected\n_10_0    = _float(  10)       # PYCHOK expected\n_16_0    = _float(  16)       # PYCHOK expected\n_32_0    = _float(  32)       # PYCHOK expected\n_45_0    = _float(  45)       # PYCHOK expected\n_60_0    = _float(  60)       # PYCHOK expected\n_64_0    = _float(  64)       # PYCHOK expected\n_90_0    = _float(  90)       # PYCHOK expected\n_100_0   = _float(_100_0)     # PYCHOK expected\n_180_0   = _float( 180)       # PYCHOK expected\n_270_0   = _float( 270)       # PYCHOK expected\n_360_0   = _float( 360)       # PYCHOK expected\n_720_0   = _float( 720)       # PYCHOK expected\n_1000_0  = _float(1000)       # PYCHOK expected\n_3600_0  = _float(3600)       # PYCHOK expected\n\n_N_0_0   =  float(  '-0.0')  # PYCHOK NOT _float!\n_N_0_5   = _float(  -_0_5)   # PYCHOK expected\n_N_1_0   = _float(  -_1_0)   # PYCHOK expected\n_N_2_0   = _float(  -_2_0)   # PYCHOK expected\n_N_90_0  = _float( -_90_0)   # PYCHOK expected\n_N_180_0 = _float(-_180_0)   # PYCHOK expected\n\n_M_KM =       _1000_0     # meter per Kilo meter, see .utily\n_M_NM = _float(1852.0)    # meter per Nautical Mile, exactly\n_M_SM = _float(1609.344)  # meter per Statute Mile\n\ntry:\n    from sys import float_info as _f_i\n    # @see: <https://NumPy.org/doc/stable/reference/generated/numpy.finfo.html>\n    DIG      =  Int(  DIG     =_f_i.dig)       # PYCHOK system's float decimal digits\n    EPS      = _Float(EPS     =_f_i.epsilon)   # PYCHOK system's EPSilon\n    MANT_DIG =  Int(  MANT_DIG=_f_i.mant_dig)  # PYCHOK system's float mantissa bits\n    MAX      = _Float(MAX     =_f_i.max)       # PYCHOK system's MAX float 1.7976931348623157e+308\n    MAX_EXP  =  Int(  MAX_EXP =_f_i.max_exp)   # PYTHON system's max base 2 exponent\n    MIN      = _Float(MIN     =_f_i.min)       # PYCHOK system's MIN float 2.2250738585072014e-308\n    MIN_EXP  =  Int(  MIN_EXP =_f_i.min_exp)   # PYTHON system's min base 2 exponent\n#   RADIX    =  Int(  RADIX   =_f_i.radix)     # PYTHON system's float base\n    del _f_i\nexcept ImportError:  # PYCHOK no cover\n    DIG      =  Int(  DIG     =15)           # PYCHOK system's 64-bit float decimal digits\n    EPS      = _Float(EPS     =2.220446049250313e-16)  # PYCHOK EPSilon 2**-52, M{EPS +/- 1 != 1}\n    MANT_DIG =  Int(  MANT_DIG=53)           # PYCHOK float mantissa bits ≈ 53 (C{int})\n    MAX      = _Float(MAX     =pow(_2_0,  1023) * (_2_0 - EPS))  # PYCHOK ≈ 10**308\n    MAX_EXP  =  Int(  MAX_ESP =_log2(MAX))   # 308 base 10\n    MIN      = _Float(MIN     =pow(_2_0, -1021))  # PYCHOK ≈ 10**-308\n    MIN_EXP  =  Int(MIN_EXP   =_log2(MIN))   # -307 base 10\n#   RADIX    =  Int(Radix     =2)            # base\n\nEPS0     = _Float( EPS0   = EPS**2)           # PYCHOK near-/non-zero comparison 4.930381e-32, or EPS or EPS_2\nEPS02    = _Float( EPS02  = EPS**4)           # PYCHOK near-zero-squared comparison 2.430865e-63\nEPS_2    = _Float( EPS_2  = EPS / _2_0)       # PYCHOK ≈ 1.110223024625e-16\nEPS1     = _Float( EPS1   =_1_0 - EPS)        # PYCHOK ≈ 0.9999999999999998\nEPS2     = _Float( EPS2   = EPS * _2_0)       # PYCHOK ≈ 4.440892098501e-16\nEPS4     = _Float( EPS4   = EPS * _4_0)       # PYCHOK ≈ 8.881784197001e-16\nEPS8     = _Float( EPS8   = EPS * _8_0)       # PYCHOK ≈ 1.776356839400e-15\n# _1EPS  = _Float(_1EPS   =_1_0 + EPS)        # PYCHOK ≈ 1.0000000000000002\n_1_EPS   = _Float(_1_EPS  =_1_0 / EPS)        # PYCHOK = 4503599627370496.0\n# _2_EPS = _Float(_2_EPS  =_2_0 / EPS)        # PYCHOK = 9007199254740992.0\n_EPS2e4  = _Float(_EPS2e4 = EPS2 * 1.e4)      # PYCHOK ≈ 4.440892098501e-12\n_EPS4e8  = _Float(_EPS4e8 = EPS4 * 1.e8)      # PYCHOK ≈ 8.881784197001e-08\n_EPSjam  = _Float(_EPSjam = pow(EPS, _0_75))  # PYCHOK = 1.818989403546e-12\n_EPSmin  = _Float(_EPSmin = sqrt(MIN))        # PYCHOK = 1.49166814624e-154\n_EPSqrt  = _Float(_EPSqrt = sqrt(EPS))        # PYCHOK = 1.490116119385e-08\n_EPStol  = _Float(_EPStol =_EPSqrt * _0_1)    # PYCHOK = 1.490116119385e-09 == sqrt(EPS * _0_01)\n\n_89_999  = _Float(_89_999 =_90_0 * EPS1)  # just below 90.0\n# <https://Numbers.Computation.Free.FR/Constants/Miscellaneous/digits.html>\n# _1__90 = _Float(_1__90  =_1_0 / _90_0)  # PYCHOK = 0.011_111_111_111_111_111_111_111_111_111_111_111_111_111_111_11111\n_2__PI   = _Float(_2__PI  =_2_0 / _pi)    # PYCHOK = 0.636_619_772_367_581_343_075_535_053_490_057_448_137_838_582_96182\n_K0_UTM  = _Float(_K0_UTM = 0.9996)       # PYCHOK in .etm, .ktm, .utm, UTM scale at central meridian\n_K0_UPS  = _Float(_K0_UPS = 0.994)        # PYCHOK in .ups, scale factor at central meridian\nOVERFLOW = _Float(OVERFLOW=_1_0 / EPS0)   # PYCHOK = 2.028240960365e+31\n_SQRT2   = _Float(_SQRT2  =sqrt(_2_0))    # PYCHOK <https://WikiPedia.org/wiki/Square_root_of_2>\n# 1.414213562373095_048_801_688_724_209_698_078_569_671_875_376_948_073_176_679_737_99\n# _1SQRT2= _Float(_1SQRT2 =sqrt(_2_0) + 1)\n# 0.707106781186547_524_400_844_362_104_849_039_284_835_937_688_474_036_588_339_868_99\n_SQRT2_2 = _Float(_SQRT2_2=sqrt(_0_5))  # PYCHOK = 0.707106781186547_5 == sqrt(2) / 2\n# sqrt(3) <https://WikiPedia.org/wiki/Square_root_of_3>\n# 1.732050807568877_293_527_446_341_505_872_366_942_805_253_810_380_628_055_806\n_SQRT3   = _Float(_SQRT3  =sqrt(_3_0))  # PYCHOK = 1.732050807568877_2 == sqrt(3)\n# 0.866025403784438_646_763_723_170_752_936_183_471_402_626_905_190_314_027_903\n_SQRT3_2 = _Float(_SQRT3_2=sqrt(_0_75))  # PYCHOK = 0.866025403784438_6 == sqrt(3) / 2\n\nINF   =  Float(INF =_inf)    # PYCHOK INFinity, see function L{isinf}, L{isfinite}, NOT _Float!\nINT0  =  Int(  INT0= 0)      # PYCHOK unique int(0) instance, see .fsums, useZ=False\nNAN   =  Float(NAN =_nan)    # PYCHOK Not-A-Number, see function L{isnan}, NOT _Float!\nNEG0  =  Float(NEG0=_N_0_0)  # PYCHOK NEGative 0.0, see function L{isneg0}, NOT _Float!\nNINF  =  Float(NINF=-INF)    # PYCHOK Negative INFinity, NOT _Float!\n\nPI    = _Float(PI   =_pi)         # 3.1415_9265_3589_7932_3846_2643_3832_795\nPI2   = _Float(PI2  =_pi * _2_0)  # PYCHOK Two PI, M{PI * 2} aka I{Tau}\nPI_2  = _Float(PI_2 =_pi / _2_0)  # PYCHOK Half PI, M{PI / 2}\nPI3   = _Float(PI3  =_pi * _3_0)  # PYCHOK Three PI, M{PI * 3}\nPI3_2 = _Float(PI3_2=_pi * _1_5)  # PYCHOK PI and a half, M{PI * 3 / 2}\nPI_3  = _Float(PI_3 =_pi / _3_0)  # PYCHOK One third PI, M{PI / 3}\nPI4   = _Float(PI4  =_pi * _4_0)  # PYCHOK Four PI, M{PI * 4}\nPI_4  = _Float(PI_4 =_pi / _4_0)  # PYCHOK Quarter PI, M{PI / 4}\nPI_6  = _Float(PI_6 =_pi / _6_0)  # PYCHOK One sixth PI, M{PI / 6}\n\nR_MA  = _Radius(R_MA=6378137.0)       # PYCHOK equatorial earth radius (C{meter}), WGS84, EPSG:3785\nR_MB  = _Radius(R_MB=6356752.3)       # PYCHOK polar earth radius (C{meter}), WGS84, EPSG:3785\nR_M   = _Radius(R_M =6371008.771415)  # PYCHOK mean, spherical earth radius (C{meter})\nR_KM  = _Radius(R_KM=R_M / _M_KM)     # PYCHOK mean, spherical earth radius (C{KM}, Kilo meter)\nR_NM  = _Radius(R_NM=R_M / _M_NM)     # PYCHOK mean, spherical earth radius (C{NM}, nautical miles)\nR_SM  = _Radius(R_SM=R_M / _M_SM)     # PYCHOK mean, spherical earth radius (C{SM}, statute miles)\n# See <https://www.EdWilliams.org/avform.htm>, <https://www.DTIC.mil/dtic/tr/fulltext/u2/a216843.pdf>\n# and <https://GitHub.com/NASA/MultiDop/blob/master/src/share/man/man3/geog_lib.3> based on the\n# International Standard Nautical Mile of 1,852 meter (1' latitude)\nR_FM  = _Radius(R_FM=6371000.0)        # PYCHOK former FAI Sphere earth radius (C{meter})\nR_GM  = _Radius(R_GM=6371230.0)        # PYCHOK avg. radius, distance to geoid surface (C{meter})\n# <http://Wiki.GIS.com/wiki/index.php/Ellipsoidal_quadratic_mean_radius>\nR_QM  = _Radius(R_QM=6372797.560856)   # PYCHOK earth' quadratic mean radius (C{meter})\n# Rtri= _Radius(Rtri=6372797.5559594)  # PYCHOK Rtriaxial quadratic mean radius (C{meter}), WGS84\n# Rbi = _Radius(Rbi =6367453.6345163)  # PYCHOK Rbiaxial quadratic mean radius (C{meter}), WGS84\nR_VM  = _Radius(R_VM=6366707.0194937)  # PYCHOK aViation/naVigation earth radius (C{meter})\n# R_AU=  Meter( R_AU=149597870700.0)   # PYCHOK <https://WikiPedia.org/wiki/Astronomical_unit>\n\n_INF_NAN_NINF = {INF, NAN, NINF, _inf, _nan}\n_pos_self     = _1_0.__pos__() is _1_0  # PYCHOK in .fsums, .vector3dBase\n_1_3rd        =  1 / 3  # in .fmath\n_2_3rd        =  2 / 3  # in .fmath, .formy\n\n\ndef _0_0s(n):\n    '''(INTERNAL) Return an C{B{n}-tuple} of C{_0_0} zeros.\n    '''\n    return _0_0_9T[:n] if 0 <= n <= len(_0_0_9T) else (_0_0_1T * n)\n\n\ntry:\n    from math import isclose as _isclose\nexcept ImportError:  # Python 3.4-\n\n    def _isclose(a, b, rel_tol=1e-9, abs_tol=0):\n        '''Mimick Python 3.5+ C{math.isclose}.\n        '''\n        t, d = abs_tol, fabs(a - b)\n        if d > t:\n            r = max(fabs(a), fabs(b)) * rel_tol\n            t = max(r, t)\n        return d <= t\n\n\ndef isclose(a, b, rel_tol=1e-12, abs_tol=EPS0):\n    '''Like C{math.isclose}, but with defaults such\n       that C{isclose(0, EPS0)} is C{True} by default.\n    '''\n    return _isclose(a, b, rel_tol=rel_tol, abs_tol=abs_tol)\n\n\ntry:\n    from cmath import isfinite as _iscfinite\nexcept ImportError:  # Python 3.1-\n\n    def _iscfinite(x):  # PYCHOK not self?\n        '''Mimick Python 3.2+ C{cmath.isfinite}.\n        '''\n        return _isfinite(x.real) and _isfinite(x.imag)\n\ntry:\n    from math import isfinite as _isfinite  # in .ellipsoids, ...\nexcept ImportError:  # Python 3.1-\n\n    def _isfinite(x):  # PYCHOK not self?\n        '''Mimick Python 3.2+ C{math.isfinite}.\n        '''\n        return not (isinf(x) or isnan(x))\n\n\ndef isfinite(obj):\n    '''Check a finite C{scalar}, C{complex}, ... value.\n\n       @arg obj: Value (C{scalar}, C{complex}, an L{Fsum} or\n                        L{Fsum2Tuple}).\n\n       @return: C{False} if B{C{obj}} is C{INF}, C{NINF} or\n                C{NAN}, C{True} otherwise.\n\n       @raise TypeError: Non-scalar and non-complex B{C{obj}}.\n    '''\n    try:\n        return (obj not in _INF_NAN_NINF) and _isfinite(obj)\n    except Exception as x:\n        if iscomplex(obj):  # _isfinite(complex) thows TypeError\n            return _iscfinite(obj)\n        if _MODS.fsums._isFsum_2Tuple(obj):  # OverflowError\n            return obj.is_finite()\n        raise _xError(x, Fmt.PAREN(typename(isfinite), obj))\n\n\ndef isint0(obj, both=False):\n    '''Check for L{INT0} or C{int(0)} value.\n\n       @arg obj: The object (any C{type}).\n       @kwarg both: If C{true}, also check C{float(0)} (C{bool}).\n\n       @return: C{True} if B{C{obj}} is L{INT0}, C{int(0)} or\n                C{float(0)}, C{False} otherwise.\n    '''\n    return (obj is INT0 or obj is int(0) or\n            bool(both and (not obj) and isint(obj, both=True))) and \\\n            not isbool(obj)\n\n\ndef isnear0(x, eps0=EPS0):\n    '''Is B{C{x}} near I{zero} within a tolerance?\n\n       @arg x: Value (C{scalar}).\n       @kwarg eps0: Near-I{zero} tolerance (C{EPS0}).\n\n       @return: C{True} if C{abs(B{x}) < B{eps0}},\n                C{False} otherwise.\n\n       @see: Function L{isnon0}.\n    '''\n    return bool(eps0 > x > -eps0)\n\n\ndef isnear1(x, eps1=EPS0):\n    '''Is B{C{x}} near I{one} within a tolerance?\n\n       @arg x: Value (C{scalar}).\n       @kwarg eps1: Near-I{one} tolerance (C{EPS0}).\n\n       @return: C{isnear0(B{x} - 1, eps0=B{eps1})}.\n\n       @see: Function L{isnear0}.\n    '''\n    return bool(eps1 > (x - _1_0) > -eps1)\n\n\ndef isnear90(x, eps90=EPS0):\n    '''Is B{C{x}} near I{90} within a tolerance?\n\n       @arg x: Value (C{scalar}).\n       @kwarg eps90: Near-I{90} tolerance (C{EPS0}).\n\n       @return: C{isnear0(B{x} - 90, eps0=eps90)}.\n\n       @see: Function L{isnear0}.\n    '''\n    return bool(eps90 > (x - _90_0) > -eps90)\n\n\ndef isneg(x):\n    '''Check for negative C{x}, including L{NEG0}.\n\n       @arg x: Value (C{scalar}).\n\n       @return: C{True} if C{B{x} < 0 or NEG0},\n                C{False} otherwise.\n    '''\n    return signBit(x)\n\n\ndef isneg0(x):\n    '''Check for L{NEG0}, negative C{0.0}.\n\n       @arg x: Value (C{scalar}).\n\n       @return: C{True} if B{C{x}} is C{NEG0} or C{-0.0},\n                C{False} otherwise.\n    '''\n    return (not x) and _copysign(1, x) < 0\n#                  and str(x).startswith(_MINUS_)\n\n\ndef isninf(x):\n    '''Check for L{NINF}, negative C{INF}.\n\n       @arg x: Value (C{scalar}).\n\n       @return: C{True} if B{C{x}} is C{NINF} or C{-inf},\n                C{False} otherwise.\n    '''\n    return x is NINF or (x < 0 and not isfinite(x))\n\n\ndef isnon0(x, eps0=EPS0):\n    '''Is B{C{x}} non-zero with a tolerance?\n\n       @arg x: Value (C{scalar}).\n       @kwarg eps0: Non-zero tolerance (C{EPS0}).\n\n       @return: C{True} if C{abs(B{x}) > B{eps0}},\n                C{False} otherwise.\n\n       @see: Function L{isnear0}.\n    '''\n    return not bool(eps0 > x > -eps0)  # not isnear0\n\n\ndef _off90(lat):\n    '''(INTERNAL) Off 90.0 for .gars and .wgrs.\n    '''\n    return max(min(lat, _89_999), -_89_999)\n\n\ntry:\n    from math import remainder\nexcept ImportError:  # Python 3.6-\n    from math import fmod as _fmod\n\n    def remainder(x, y):\n        '''Mimick Python 3.7+ C{math.remainder}.\n        '''\n        if isnan(y):\n            x =  NAN\n        elif x and not isnan(x):\n            y =  fabs(y)\n            x = _fmod(x, y)\n            h = _0_5 * y\n            if x >= h:\n                x -= y\n            elif x < -h:\n                x += y\n        return x  # keep signed 0.0\n\n\ndef _umod_360(deg):\n    '''(INTERNAL) Non-negative C{deg} modulo 360, basic C{.utily.wrap360}.\n    '''\n    return (deg % _360_0) or _0_0\n\n\ndef _umod_PI2(rad):\n    '''(INTERNAL) Non-negative C{rad} modulo PI2, basic C{.utily.wrapPI2}.\n    '''\n    return (rad % PI2) or _0_0\n\n\nif __name__ == _DMAIN_:\n\n    def _main(globalocals):\n        from pygeodesy import itemsorted, printf\n        from pygeodesy.interns import _DALL_, _UNDER_\n\n        t = n = v = []\n        for n, v in itemsorted(globalocals):\n            if isinstance(v, (Float, Int, Radius)):\n                printf('%9s: %r', n, v.toRepr(std=False))\n                if v.name != n:\n                    raise AssertionError('%r != %r' % (n, v))\n                if v.name is not n:\n                    raise AssertionError('%r is not %r' % (n, v))\n                if not n.startswith(_UNDER_):\n                    t.append(n)\n        t.append(typename(float_))\n        printf('%s = %r', _DALL_, tuple(t))\n\n    _main(globals())  # or locals()\n\n# **) MIT License\n#\n# Copyright (C) 2016-2026 -- mrJean1 at Gmail -- All Rights Reserved.\n#\n# Permission is hereby granted, free of charge, to any person obtaining a\n# copy of this software and associated documentation files (the \"Software\"),\n# to deal in the Software without restriction, including without limitation\n# the rights to use, copy, modify, merge, publish, distribute, sublicense,\n# and/or sell copies of the Software, and to permit persons to whom the\n# Software is furnished to do so, subject to the following conditions:\n#\n# The above copyright notice and this permission notice shall be included\n# in all copies or substantial portions of the Software.\n#\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL\n# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR\n# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\n# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n# OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "pygeodesy/css.py",
    "content": "\n# -*- coding: utf-8 -*-\n\nu'''Cassini-Soldner (CSS) projection.\n\nClasses L{CassiniSoldner}, L{Css} and L{CSSError} use I{Charles Karney}'s\nU{geographiclib <https://PyPI.org/project/geographiclib>} Python package\nif installed, see property L{CassiniSoldner.geodesic}.\n'''\n\nfrom pygeodesy.basics import _isin, islistuple, neg, _xinstanceof, \\\n                             _xsubclassof\nfrom pygeodesy.constants import _umod_360, _0_0, _0_5, _90_0\nfrom pygeodesy.datums import _ellipsoidal_datum, _WGS84\nfrom pygeodesy.ellipsoidalBase import LatLonEllipsoidalBase as _LLEB\nfrom pygeodesy.errors import _ValueError, _xdatum, _xellipsoidal, \\\n                             _xattr, _xkwds\nfrom pygeodesy.interns import _azimuth_, _COMMASPACE_, _easting_, \\\n                              _lat_, _lon_, _m_, _name_, _northing_, \\\n                              _reciprocal_, _SPACE_\nfrom pygeodesy.interns import _C_  # PYCHOK used!\nfrom pygeodesy.karney import _atan2d, _copysign, _diff182, _norm2, \\\n                             _norm180, _signBit, _sincos2d,  fabs\nfrom pygeodesy.lazily import _ALL_LAZY, _ALL_MODS as _MODS\nfrom pygeodesy.named import _name2__, _NamedBase, _NamedTuple\nfrom pygeodesy.namedTuples import EasNor2Tuple, EasNor3Tuple, \\\n                                  LatLon2Tuple, LatLon4Tuple, _LL4Tuple\nfrom pygeodesy.props import deprecated_Property_RO, Property, \\\n                                       Property_RO, _update_all\nfrom pygeodesy.streprs import Fmt, _fstrENH2, _fstrLL0, _xzipairs\nfrom pygeodesy.units import Azimuth, Degrees, Easting, Height, _heigHt, \\\n                            Lat_, Lon_, Northing, Scalar\n\n# from math import fabs  # from .karney\n\n__all__ = _ALL_LAZY.css\n__version__ = '25.04.14'\n\n\ndef _CS0(cs0):\n    '''(INTERNAL) Get/set default projection.\n    '''\n    if cs0 is None:\n        cs0 = Css._CS0\n        if cs0 is None:\n            Css._CS0 = cs0 = CassiniSoldner(_0_0, _0_0, name='Default')\n    else:\n        _xinstanceof(CassiniSoldner, cs0=cs0)\n    return cs0\n\n\nclass CSSError(_ValueError):\n    '''Cassini-Soldner (CSS) conversion or other L{Css} issue.\n    '''\n    pass\n\n\nclass CassiniSoldner(_NamedBase):\n    '''Cassini-Soldner projection, a Python version of I{Karney}'s C++ class U{CassiniSoldner\n       <https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1CassiniSoldner.html>}.\n    '''\n    _cb0      = _0_0\n    _datum    = _WGS84  # L{Datum}\n    _geodesic =  None\n    _latlon0  = ()\n    _meridian =  None\n    _sb0      = _0_0\n\n    def __init__(self, lat0, lon0, datum=_WGS84, **name):\n        '''New L{CassiniSoldner} projection.\n\n           @arg lat0: Latitude of center point (C{degrees90}).\n           @arg lon0: Longitude of center point (C{degrees180}).\n           @kwarg datum: Optional datum or ellipsoid (L{Datum},\n                         L{Ellipsoid}, L{Ellipsoid2} or L{a_f2Tuple}).\n           @kwarg name: Optional C{B{name}=NN} (C{str}).\n\n           @raise CSSError: Invalid B{C{lat}} or B{C{lon}}.\n        '''\n        if not _isin(datum, None, self._datum):\n            self._datum = _xellipsoidal(datum=_ellipsoidal_datum(datum, **name))\n        if name:\n            self.name = name\n\n        self.reset(lat0, lon0)\n\n    @Property\n    def datum(self):\n        '''Get the datum (L{Datum}).\n        '''\n        return self._datum\n\n    @datum.setter  # PYCHOK setter!\n    def datum(self, datum):\n        '''Set the datum or ellipsoid (L{Datum}, L{Ellipsoid}, L{Ellipsoid2}\n           or L{a_f2Tuple}) or C{None} for the default.\n        '''\n        d = CassiniSoldner._datum if datum is None else \\\n              _xellipsoidal(datum=_ellipsoidal_datum(datum, name=self.name))\n        if self._datum != d:\n            self._datum = d\n            self.geodesic = None if self._geodesic is None else self.isExact\n\n    def _datumatch(self, latlon):\n        '''Check for matching datum ellipsoids.\n\n           @raise CSSError: Ellipsoid mismatch of B{C{latlon}} and this projection.\n        '''\n        d = _xattr(latlon, datum=None)\n        if d:\n            _xdatum(self.datum, d, Error=CSSError)\n\n    @Property_RO\n    def equatoradius(self):\n        '''Get the ellipsoid's equatorial radius, semi-axis (C{meter}).\n        '''\n        return self.geodesic.a\n\n    a = equatoradius\n\n    @Property_RO\n    def flattening(self):\n        '''Get the ellipsoid's flattening (C{scalar}).\n        '''\n        return self.geodesic.f\n\n    f = flattening\n\n    def forward(self, lat, lon, **name):\n        '''Convert an (ellipsoidal) geodetic location to Cassini-Soldner\n           easting and northing.\n\n           @arg lat: Latitude of the location (C{degrees90}).\n           @arg lon: Longitude of the location (C{degrees180}).\n           @kwarg name: Optional C{B{name}=NN} inlieu of this projection's\n                        name (C{str}).\n\n           @return: An L{EasNor2Tuple}C{(easting, northing)}.\n\n           @see: Methods L{CassiniSoldner.forward4}, L{CassiniSoldner.reverse}\n                 and L{CassiniSoldner.reverse4}.\n\n           @raise CSSError: Invalid B{C{lat}} or B{C{lon}}.\n        '''\n        t = self.forward6(lat, lon, **name)\n        return EasNor2Tuple(t.easting, t.northing, name=t.name)\n\n    def forward4(self, lat, lon, **name):\n        '''Convert an (ellipsoidal) geodetic location to Cassini-Soldner\n           easting and northing.\n\n           @arg lat: Latitude of the location (C{degrees90}).\n           @arg lon: Longitude of the location (C{degrees180}).\n           @kwarg name: Optional B{C{name}=NN} inlieu of this projection's\n                        name (C{str}).\n\n           @return: An L{EasNorAziRk4Tuple}C{(easting, northing,\n                    azimuth, reciprocal)}.\n\n           @see: Method L{CassiniSoldner.forward}, L{CassiniSoldner.forward6},\n                 L{CassiniSoldner.reverse} and L{CassiniSoldner.reverse4}.\n\n           @raise CSSError: Invalid B{C{lat}} or B{C{lon}}.\n        '''\n        t = self.forward6(lat, lon, **name)\n        return EasNorAziRk4Tuple(t.easting, t.northing,\n                                 t.azimuth, t.reciprocal, name=t.name)\n\n    def forward6(self, lat, lon, **name):\n        '''Convert an (ellipsoidal) geodetic location to Cassini-Soldner\n           easting and northing.\n\n           @arg lat: Latitude of the location (C{degrees90}).\n           @arg lon: Longitude of the location (C{degrees180}).\n           @kwarg name: Optional B{C{name}=NN} inlieu of this projection's\n                        name (C{str}).\n\n           @return: An L{EasNorAziRkEqu6Tuple}C{(easting, northing,\n                    azimuth, reciprocal, equatorarc, equatorazimuth)}.\n\n           @see: Method L{CassiniSoldner.forward}, L{CassiniSoldner.forward4},\n                 L{CassiniSoldner.reverse} and L{CassiniSoldner.reverse4}.\n\n           @raise CSSError: Invalid B{C{lat}} or B{C{lon}}.\n        '''\n        g = self.geodesic\n\n        lat  =  Lat_(lat, Error=CSSError)\n        d, _ = _diff182(self.lon0, Lon_(lon, Error=CSSError))  # _2sum\n        D    =  fabs(d)\n\n        r = g.Inverse(lat, -D, lat, D)\n        z1, a = r.azi1, (r.a12 * _0_5)\n        z2, e = r.azi2, (r.s12 * _0_5)\n        if e == 0:  # PYCHOK no cover\n            z = _diff182(z1, z2)[0] * _0_5  # _2sum\n            c = _copysign(_90_0, 90 - D)  # -90 if D > 90 else 90\n            z1, z2 = c - z, c + z\n        if _signBit(d):\n            a, e, z2 = neg(a), neg(e), z1\n\n        z = _norm180(z2)  # azimuth of easting direction\n        p =  g.Line(lat, d, z, g.DISTANCE | g.GEODESICSCALE | g.LINE_OFF)\n        # reciprocal of azimuthal northing scale\n        rk = p.ArcPosition(neg(a), g.GEODESICSCALE).M21\n        # rk = p._GenPosition(True, -a, g.DISTANCE)[7]\n\n        s, c = _sincos2d(p.azi0)  # aka equatorazimuth\n        sb1  = _copysign(c, lat)\n        cb1  = _copysign(s, 90 - D)  # -abs(s) if D > 90 else abs(s)\n        d    = _atan2d(sb1 * self._cb0 - cb1 * self._sb0,\n                       cb1 * self._cb0 + sb1 * self._sb0)\n        n = self._meridian.ArcPosition(d, g.DISTANCE).s12\n        # n = self._meridian._GenPosition(True, d, g.DISTANCE)[4]\n        return EasNorAziRkEqu6Tuple(e, n, z, rk, p.a1, p.azi0,\n                                             name=self._name__(name))\n\n    @Property\n    def geodesic(self):\n        '''Get this projection's I{wrapped} U{geodesic.Geodesic\n           <https://GeographicLib.SourceForge.io/Python/doc/code.html>} from\n           I{Karney}'s U{geographiclib<https://PyPI.org/project/geographiclib>}\n           package if installed, otherwise an I{exact} L{GeodesicExact\n           <pygeodesy.geodesicx.GeodesicExact>} instance.\n        '''\n        g = self._geodesic\n        if g is None:\n            E = self.datum.ellipsoid\n            try:\n                g = E.geodesicw\n            except ImportError:\n                g = E.geodesicx\n            self._geodesic = g\n        return g\n\n    @geodesic.setter  # PYCHOK setter!\n    def geodesic(self, exact):\n        '''Set this projection's geodesic (C{bool}) to L{GeodesicExact}\n           or I{wrapped Karney}'s or C{None} for the default.\n\n           @raise ImportError: Package U{geographiclib<https://PyPI.org/\n                               project/geographiclib>} not installed or\n                               not found and C{B{exact}=False}.\n        '''\n        E = self.datum.ellipsoid\n        self._geodesic = None if exact is None else (\n                         E.geodesicx if exact else E.geodesicw)\n        self.reset(*self.latlon0)\n\n    @Property_RO\n    def isExact(self):\n        '''Return C{True} if this projection's geodesic is L{GeodesicExact\n           <pygeodesy.geodesicx.GeodesicExact>}.\n        '''\n        return isinstance(self.geodesic, _MODS.geodesicx.GeodesicExact)\n\n    @Property_RO\n    def lat0(self):\n        '''Get the center latitude (C{degrees90}).\n        '''\n        return self.latlon0.lat\n\n    @property\n    def latlon0(self):\n        '''Get the center lat- and longitude (L{LatLon2Tuple}C{(lat, lon)})\n           in (C{degrees90}, (C{degrees180}).\n        '''\n        return self._latlon0\n\n    @latlon0.setter  # PYCHOK setter!\n    def latlon0(self, latlon0):\n        '''Set the center lat- and longitude (ellipsoidal C{LatLon},\n           L{LatLon2Tuple}, L{LatLon4Tuple} or a C{tuple} or C{list}\n           with the C{lat}- and C{lon}gitude in C{degrees}).\n\n           @raise CSSError: Invalid B{C{latlon0}} or ellipsoid mismatch\n                            of B{C{latlon0}} and this projection.\n        '''\n        if islistuple(latlon0, 2):\n            lat0, lon0 = latlon0[:2]\n        else:\n            try:\n                lat0, lon0 = latlon0.lat, latlon0.lon\n                self._datumatch(latlon0)\n            except (AttributeError, TypeError, ValueError) as x:\n                raise CSSError(latlon0=latlon0, cause=x)\n        self.reset(lat0, lon0)\n\n    @Property_RO\n    def lon0(self):\n        '''Get the center longitude (C{degrees180}).\n        '''\n        return self.latlon0.lon\n\n    @deprecated_Property_RO\n    def majoradius(self):  # PYCHOK no cover\n        '''DEPRECATED, use property C{equatoradius}.'''\n        return self.equatoradius\n\n    def reset(self, lat0, lon0):\n        '''Set or reset the center point of this Cassini-Soldner projection.\n\n           @arg lat0: Center point latitude (C{degrees90}).\n           @arg lon0: Center point longitude (C{degrees180}).\n\n           @raise CSSError: Invalid B{C{lat0}} or B{C{lon0}}.\n        '''\n        _update_all(self)\n\n        g = self.geodesic\n        self._meridian = m = g.Line(Lat_(lat0=lat0, Error=CSSError),\n                                    Lon_(lon0=lon0, Error=CSSError),\n                                   _0_0, caps=g.STANDARD_LINE | g.LINE_OFF)\n        self._latlon0 = LatLon2Tuple(m.lat1, m.lon1)\n        s, c = _sincos2d(m.lat1)  # == self.lat0 == self.LatitudeOrigin()\n        self._sb0, self._cb0 = _norm2(s * g.f1, c)\n\n    def reverse(self, easting, northing, LatLon=None, **name_LatLon_kwds):\n        '''Convert a Cassini-Soldner location to (ellipsoidal) geodetic lat- and longitude.\n\n           @arg easting: Easting of the location (C{meter}).\n           @arg northing: Northing of the location (C{meter}).\n           @kwarg LatLon: Optional, ellipsoidal class to return the geodetic location as\n                          (C{LatLon}) or C{None}.\n           @kwarg name_LatLon_kwds: Optional name C{B{name}=NN} (C{str}) and optionally,\n                       additional B{C{LatLon}} keyword arguments, ignored if C{B{LatLon}\n                       is None}.\n\n           @return: Geodetic location B{C{LatLon}} or if C{B{LatLon} is None},\n                    a L{LatLon2Tuple}C{(lat, lon)}.\n\n           @raise CSSError: Ellipsoidal mismatch of B{C{LatLon}} and this projection.\n\n           @raise TypeError: Invalid B{C{LatLon}} or B{C{LatLon_kwds}}.\n\n           @see: Method L{CassiniSoldner.reverse4}, L{CassiniSoldner.forward}.\n                 L{CassiniSoldner.forward4} and L{CassiniSoldner.forward6}.\n        '''\n        n, kwds = _name2__(name_LatLon_kwds, _or_nameof=self)\n        r = self.reverse4(easting, northing, name=n)\n        if LatLon is None:\n            r = LatLon2Tuple(r.lat, r.lon, name=r.name)  # PYCHOK expected\n        else:\n            _xsubclassof(_LLEB, LatLon=LatLon)\n            kwds = _xkwds(kwds, datum=self.datum, name=r.name)\n            r = LatLon(r.lat, r.lon, **kwds)  # PYCHOK expected\n            self._datumatch(r)\n        return r\n\n    def reverse4(self, easting, northing, **name):\n        '''Convert a Cassini-Soldner location to (ellipsoidal) geodetic\n           lat- and longitude.\n\n           @arg easting: Easting of the location (C{meter}).\n           @arg northing: Northing of the location (C{meter}).\n           @kwarg name: Optional B{C{name}=NN} inlieu of this projection's\n                        name (C{str}).\n\n           @return: A L{LatLonAziRk4Tuple}C{(lat, lon, azimuth, reciprocal)}.\n\n           @see: Method L{CassiniSoldner.reverse}, L{CassiniSoldner.forward}\n                 and L{CassiniSoldner.forward4}.\n        '''\n        g =  self.geodesic\n        n =  self._meridian.Position(northing)\n        r =  g.Direct(n.lat2, n.lon2, n.azi2 + _90_0, easting, outmask=g.STANDARD | g.GEODESICSCALE)\n        z = _umod_360(r.azi2)  # -180 <= r.azi2 < 180 ... 0 <= z < 360\n        # include z azimuth of easting direction and rk reciprocal\n        # of azimuthal northing scale (see C++ member Direct() 5/6\n        # <https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Geodesic.html>)\n        return LatLonAziRk4Tuple(r.lat2, r.lon2, z, r.M12, name=self._name__(name))\n\n    toLatLon = reverse  # XXX not reverse4\n\n    def toRepr(self, prec=6, **unused):  # PYCHOK expected\n        '''Return a string representation of this projection.\n\n           @kwarg prec: Number of (decimal) digits, unstripped (C{int}).\n\n           @return: This projection as C{\"<classname>(lat0, lon0, ...)\"}\n                    (C{str}).\n        '''\n        return _fstrLL0(self, prec, True)\n\n    def toStr(self, prec=6, sep=_SPACE_, **unused):  # PYCHOK expected\n        '''Return a string representation of this projection.\n\n           @kwarg prec: Number of (decimal) digits, unstripped (C{int}).\n           @kwarg sep: Separator to join (C{str}).\n\n           @return: This projection as C{\"lat0 lon0\"} (C{str}).\n        '''\n        t = _fstrLL0(self, prec, False)\n        return t if sep is None else sep.join(t)\n\n\nclass Css(_NamedBase):\n    '''Cassini-Soldner East-/Northing location.\n    '''\n    _CS0      =  None  # default projection (L{CassiniSoldner})\n    _cs0      =  None  # projection (L{CassiniSoldner})\n    _easting  = _0_0   # easting (C{float})\n    _height   =  0     # height (C{meter})\n    _northing = _0_0   # northing (C{float})\n\n    def __init__(self, e, n, h=0, cs0=None, **name):\n        '''New L{Css} Cassini-Soldner position.\n\n           @arg e: Easting (C{meter}).\n           @arg n: Northing (C{meter}).\n           @kwarg h: Optional height (C{meter}).\n           @kwarg cs0: Optional, the Cassini-Soldner projection\n                       (L{CassiniSoldner}).\n           @kwarg name: Optional C{B{name}=NN} (C{str}).\n\n           @return: The Cassini-Soldner location (L{Css}).\n\n           @raise CSSError: If B{C{e}} or B{C{n}} is invalid.\n\n           @raise TypeError: If B{C{cs0}} is not L{CassiniSoldner}.\n\n           @raise ValueError: Invalid B{C{h}}.\n        '''\n        self._cs0 = _CS0(cs0)\n        self._easting  = Easting(e,  Error=CSSError)\n        self._northing = Northing(n, Error=CSSError)\n        if h:\n            self._height = Height(h=h)\n        if name:\n            self.name = name\n\n    @Property_RO\n    def azi(self):\n        '''Get the azimuth of easting direction (C{degrees}).\n        '''\n        return self.reverse4.azimuth\n\n    azimuth = azi\n\n    @Property\n    def cs0(self):\n        '''Get the projection (L{CassiniSoldner}).\n        '''\n        return self._cs0 or Css._CS0\n\n    @cs0.setter  # PYCHOK setter!\n    def cs0(self, cs0):\n        '''Set the I{Cassini-Soldner} projection (L{CassiniSoldner}).\n\n           @raise TypeError: Invalid B{C{cs0}}.\n        '''\n        cs0 = _CS0(cs0)\n        if cs0 != self._cs0:\n            _update_all(self)\n            self._cs0 = cs0\n\n#   def dup(self, **e_n_h_cs0_name):  # PYCHOK signature\n#       '''Duplicate this position with some attributes modified.\n#\n#          @kwarg e_n_h_cs0_name: Use keyword argument C{B{e}=...},\n#                       C{B{n}=...}, C{B{h}=...} and/or C{B{cs0}=...}\n#                       to override the current C{easting}, C{northing}\n#                       C{height} or C{cs0} projectio, respectively and\n#                       an optional C{B{name}=NN} (C{str}).\n#       '''\n#       def _args_kwds(e=None, n=None, **kwds):\n#           return (e, n), kwds\n#\n#       kwds = _xkwds(e_n_h_cs0, e=self.easting, n=self.northing,\n#                                h=self.height, cs0=self.cs0,\n#                                name=_name__(name, _or_nameof(self)))\n#       args, kwds = _args_kwds(**kwds)\n#       return type(self)(*args, **kwds)  # .classof\n\n    @Property_RO\n    def easting(self):\n        '''Get the easting (C{meter}).\n        '''\n        return self._easting\n\n    @Property_RO\n    def height(self):\n        '''Get the height (C{meter}).\n        '''\n        return self._height\n\n    @Property_RO\n    def latlon(self):\n        '''Get the lat- and longitude (L{LatLon2Tuple}).\n        '''\n        r = self.reverse4\n        return LatLon2Tuple(r.lat, r.lon, name=self.name)\n\n    @Property_RO\n    def northing(self):\n        '''Get the northing (C{meter}).\n        '''\n        return self._northing\n\n    @Property_RO\n    def reverse4(self):\n        '''Get the lat, lon, azimuth and reciprocal (L{LatLonAziRk4Tuple}).\n        '''\n        return self.cs0.reverse4(self.easting, self.northing, name=self.name)\n\n    @Property_RO\n    def rk(self):\n        '''Get the reciprocal of azimuthal northing scale (C{scalar}).\n        '''\n        return self.reverse4.reciprocal\n\n    reciprocal = rk\n\n    def toLatLon(self, LatLon=None, height=None, **LatLon_kwds):\n        '''Convert this L{Css} to an (ellipsoidal) geodetic point.\n\n           @kwarg LatLon: Optional, ellipsoidal class to return the\n                          geodetic point (C{LatLon}) or C{None}.\n           @kwarg height: Optional height for the point, overriding the\n                          default height (C{meter}).\n           @kwarg LatLon_kwds: Optional, additional B{C{LatLon}} keyword\n                               arguments, ignored if C{B{LatLon} is None}.\n\n           @return: The geodetic point (B{C{LatLon}}) or if C{B{LatLon} is\n                    None}, a L{LatLon4Tuple}C{(lat, lon, height, datum)}.\n\n           @raise TypeError: If B{C{LatLon}} or B{C{datum}} is not\n                             ellipsoidal or invalid B{C{height}} or\n                             B{C{LatLon_kwds}}.\n        '''\n        if LatLon:\n            _xsubclassof(_LLEB, LatLon=LatLon)\n\n        lat, lon = self.latlon\n        h = _heigHt(self, height)\n        return _LL4Tuple(lat, lon, h, self.cs0.datum, LatLon, LatLon_kwds,\n                                                      inst=self, name=self.name)\n\n    def toRepr(self, prec=6, fmt=Fmt.SQUARE, sep=_COMMASPACE_, m=_m_, C=False):  # PYCHOK expected\n        '''Return a string representation of this L{Css} position.\n\n           @kwarg prec: Number of (decimal) digits, unstripped (C{int}).\n           @kwarg fmt: Enclosing backets format (C{str}).\n           @kwarg sep: Optional separator between name:values (C{str}).\n           @kwarg m: Optional unit of the height, default meter (C{str}).\n           @kwarg C: Optionally, include name of projection (C{bool}).\n\n           @return: This position as C{\"[E:meter, N:meter, H:m, name:'',\n                    C:Conic.Datum]\"} (C{str}).\n        '''\n        t, T = _fstrENH2(self, prec, m)\n        if self.name:\n            t +=  repr(self.name),\n            T += _name_,\n        if C:\n            t +=  self.cs0.toRepr(prec=prec),\n            T += _C_,\n        return _xzipairs(T, t, sep=sep, fmt=fmt)\n\n    def toStr(self, prec=6, sep=_SPACE_, m=_m_):  # PYCHOK expected\n        '''Return a string representation of this L{Css} position.\n\n           @kwarg prec: Number of (decimal) digits, unstripped (C{int}).\n           @kwarg sep: Optional separator to join (C{str}) or C{None}\n                       to return an unjoined C{tuple} of C{str}s.\n           @kwarg m: Height units, default C{meter} (C{str}).\n\n           @return: This position as C{\"easting nothing\"} C{str} in\n                    C{meter} plus C{\" height\"} and C{'m'} if height\n                    is non-zero (C{str}).\n        '''\n        t, _ = _fstrENH2(self, prec, m)\n        return t if sep is None else sep.join(t)\n\n\nclass EasNorAziRk4Tuple(_NamedTuple):\n    '''4-Tuple C{(easting, northing, azimuth, reciprocal)} for the\n       Cassini-Soldner location with C{easting} and C{northing} in\n       C{meters} and the C{azimuth} of easting direction and\n       C{reciprocal} of azimuthal northing scale, both in C{degrees}.\n    '''\n    _Names_ = (_easting_, _northing_, _azimuth_, _reciprocal_)\n    _Units_ = ( Easting,   Northing,   Azimuth,   Scalar)\n\n\nclass EasNorAziRkEqu6Tuple(_NamedTuple):\n    '''6-Tuple C{(easting, northing, azimuth, reciprocal, equatorarc,\n       equatorazimuth)} for the Cassini-Soldner location with\n       C{easting} and C{northing} in C{meters} and the C{azimuth} of\n       easting direction, C{reciprocal} of azimuthal northing scale,\n       C{equatorarc} and C{equatorazimuth}, all in C{degrees}.\n    '''\n    _Names_ = EasNorAziRk4Tuple._Names_ + ('equatorarc', 'equatorazimuth')\n    _Units_ = EasNorAziRk4Tuple._Units_ + ( Degrees,      Azimuth)\n\n\nclass LatLonAziRk4Tuple(_NamedTuple):\n    '''4-Tuple C{(lat, lon, azimuth, reciprocal)}, all in C{degrees}\n       where C{azimuth} is the azimuth of easting direction and\n       C{reciprocal} the reciprocal of azimuthal northing scale.\n    '''\n    _Names_ = (_lat_, _lon_, _azimuth_, _reciprocal_)\n    _Units_ = ( Lat_,  Lon_,  Azimuth,   Scalar)\n\n\ndef toCss(latlon, cs0=None, height=None, Css=Css, **name):\n    '''Convert an (ellipsoidal) geodetic point to a Cassini-Soldner\n       location.\n\n       @arg latlon: Ellipsoidal point (C{LatLon} or L{LatLon4Tuple}).\n       @kwarg cs0: Optional, the Cassini-Soldner projection to use\n                   (L{CassiniSoldner}).\n       @kwarg height: Optional height for the point, overriding the default\n                      height (C{meter}).\n       @kwarg Css: Optional class to return the location (L{Css}) or C{None}.\n       @kwarg name: Optional B{C{Css}} C{B{name}=NN} (C{str}).\n\n       @return: The Cassini-Soldner location (B{C{Css}}) or if C{B{Css} is\n                None}, an L{EasNor3Tuple}C{(easting, northing, height)}.\n\n       @raise CSSError: Ellipsoidal mismatch of B{C{latlon}} and B{C{cs0}}.\n\n       @raise ImportError: Package U{geographiclib<https://PyPI.org/\n                           project/geographiclib>} not installed or\n                           not found.\n\n       @raise TypeError: If B{C{latlon}} is not ellipsoidal.\n    '''\n    _xinstanceof(_LLEB, LatLon4Tuple, latlon=latlon)\n\n    cs = _CS0(cs0)\n    cs._datumatch(latlon)\n\n    c =  cs.forward4(latlon.lat, latlon.lon)\n    h = _heigHt(latlon, height)\n    n =  latlon._name__(name)\n\n    if Css is None:\n        r = EasNor3Tuple(c.easting, c.northing, h, name=n)\n    else:\n        r = Css(c.easting, c.northing, h=h, cs0=cs, name=n)\n        r._latlon = LatLon2Tuple(latlon.lat, latlon.lon, name=n)\n        r._azi, r._rk = c.azimuth, c.reciprocal\n    return r\n\n# **) MIT License\n#\n# Copyright (C) 2016-2026 -- mrJean1 at Gmail -- All Rights Reserved.\n#\n# Permission is hereby granted, free of charge, to any person obtaining a\n# copy of this software and associated documentation files (the \"Software\"),\n# to deal in the Software without restriction, including without limitation\n# the rights to use, copy, modify, merge, publish, distribute, sublicense,\n# and/or sell copies of the Software, and to permit persons to whom the\n# Software is furnished to do so, subject to the following conditions:\n#\n# The above copyright notice and this permission notice shall be included\n# in all copies or substantial portions of the Software.\n#\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL\n# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR\n# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\n# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n# OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "pygeodesy/datums.py",
    "content": "\n# -*- coding: utf-8 -*-\n\nu'''Datums and transformations thereof.\n\nClasses L{Datum} and L{Transform} and registries L{Datums} and L{Transforms}, respectively.\n\nPure Python implementation of geodesy tools for ellipsoidal earth models, including datums\nand ellipsoid parameters for different geographic coordinate systems and methods for\nconverting between them and to cartesian coordinates.  Transcoded from JavaScript originals by\nI{(C) Chris Veness 2005-2024} and published under the same MIT Licence**, see U{latlon-ellipsoidal.js\n<https://www.Movable-Type.co.UK/scripts/geodesy/docs/latlon-ellipsoidal.js.html>}.\n\nHistorical geodetic datums: a latitude/longitude point defines a geographic location on, above\nor below the earth’s surface.  Latitude is measured in degrees from the equator, lomgitude from\nthe International Reference Meridian and height in meters above an ellipsoid based on the given\ndatum.  The datum in turn is based on a reference ellipsoid and tied to geodetic survey\nreference points.\n\nModern geodesy is generally based on the WGS84 datum (as used for instance by GPS systems), but\npreviously various other reference ellipsoids and datum references were used.\n\nThe UK Ordnance Survey National Grid References are still based on the otherwise historical OSGB36\ndatum, q.v. U{\"A Guide to Coordinate Systems in Great Britain\", Section 6\n<https://www.OrdnanceSurvey.co.UK/docs/support/guide-coordinate-systems-great-britain.pdf>}.\n\n@var Datums.BD72: Datum(name='BD72', ellipsoid=Ellipsoids.Intl1924, transform=Transforms.BD72)\n@var Datums.DHDN: Datum(name='DHDN', ellipsoid=Ellipsoids.Bessel1841, transform=Transforms.DHDN)\n@var Datums.ED50: Datum(name='ED50', ellipsoid=Ellipsoids.Intl1924, transform=Transforms.ED50)\n@var Datums.GDA2020: Datum(name='GDA2020', ellipsoid=Ellipsoids.GRS80, transform=Transforms.WGS84)\n@var Datums.GRS80: Datum(name='GRS80', ellipsoid=Ellipsoids.GRS80, transform=Transforms.WGS84)\n@var Datums.Irl1975: Datum(name='Irl1975', ellipsoid=Ellipsoids.AiryModified, transform=Transforms.Irl1975)\n@var Datums.Krassovski1940: Datum(name='Krassovski1940', ellipsoid=Ellipsoids.Krassovski1940, transform=Transforms.Krassovski1940)\n@var Datums.Krassowsky1940: Datum(name='Krassowsky1940', ellipsoid=Ellipsoids.Krassowsky1940, transform=Transforms.Krassowsky1940)\n@var Datums.MGI: Datum(name='MGI', ellipsoid=Ellipsoids.Bessel1841, transform=Transforms.MGI)\n@var Datums.NAD27: Datum(name='NAD27', ellipsoid=Ellipsoids.Clarke1866, transform=Transforms.NAD27)\n@var Datums.NAD83: Datum(name='NAD83', ellipsoid=Ellipsoids.GRS80, transform=Transforms.NAD83)\n@var Datums.NTF: Datum(name='NTF', ellipsoid=Ellipsoids.Clarke1880IGN, transform=Transforms.NTF)\n@var Datums.OSGB36: Datum(name='OSGB36', ellipsoid=Ellipsoids.Airy1830, transform=Transforms.OSGB36)\n@var Datums.Potsdam: Datum(name='Potsdam', ellipsoid=Ellipsoids.Bessel1841, transform=Transforms.Bessel1841)\n@var Datums.Sphere: Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84)\n@var Datums.TokyoJapan: Datum(name='TokyoJapan', ellipsoid=Ellipsoids.Bessel1841, transform=Transforms.TokyoJapan)\n@var Datums.WGS72: Datum(name='WGS72', ellipsoid=Ellipsoids.WGS72, transform=Transforms.WGS72)\n@var Datums.WGS84: Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84)\n\n@var Transforms.BD72: Transform(name='BD72', tx=106.87, ty=-52.298, tz=103.72, s1=1.0, rx=-1.6317e-06, ry=-2.2154e-06, rz=-8.9311e-06, s=1.2727, sx=-0.33657, sy=-0.45696, sz=-1.8422)\n@var Transforms.Bessel1841: Transform(name='Bessel1841', tx=-582, ty=-105, tz=-414, s1=0.99999, rx=-5.0421e-06, ry=-1.6968e-06, rz=1.4932e-05, s=-8.3, sx=-1.04, sy=-0.35, sz=3.08)\n@var Transforms.Clarke1866: Transform(name='Clarke1866', tx=8.0, ty=-160, tz=-176, s1=1.0, rx=0.0, ry=0.0, rz=0.0, s=0.0, sx=0.0, sy=0.0, sz=0.0)\n@var Transforms.DHDN: Transform(name='DHDN', tx=-591.28, ty=-81.35, tz=-396.39, s1=0.99999, rx=7.1607e-06, ry=-3.5682e-07, rz=-7.0686e-06, s=-9.82, sx=1.477, sy=-0.0736, sz=-1.458)\n@var Transforms.DHDNE: Transform(name='DHDNE', tx=-612.4, ty=-77, tz=-440.2, s1=1.0, rx=2.618e-07, ry=-2.7634e-07, rz=1.356e-05, s=-2.55, sx=0.054, sy=-0.057, sz=2.797)\n@var Transforms.DHDNW: Transform(name='DHDNW', tx=-598.1, ty=-73.7, tz=-418.2, s1=0.99999, rx=-9.7932e-07, ry=-2.1817e-07, rz=1.1902e-05, s=-6.7, sx=-0.202, sy=-0.045, sz=2.455)\n@var Transforms.ED50: Transform(name='ED50', tx=89.5, ty=93.8, tz=123.1, s1=1.0, rx=0.0, ry=0.0, rz=7.5631e-07, s=-1.2, sx=0.0, sy=0.0, sz=0.156)\n@var Transforms.Identity: Transform(name='Identity', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=0.0, ry=0.0, rz=0.0, s=0.0, sx=0.0, sy=0.0, sz=0.0)\n@var Transforms.Irl1965: Transform(name='Irl1965', tx=-482.53, ty=130.6, tz=-564.56, s1=0.99999, rx=5.0518e-06, ry=1.0375e-06, rz=3.0592e-06, s=-8.15, sx=1.042, sy=0.214, sz=0.631)\n@var Transforms.Irl1975: Transform(name='Irl1975', tx=-482.53, ty=130.6, tz=-564.56, s1=0.99999, rx=5.0518e-06, ry=1.0375e-06, rz=3.0592e-06, s=-8.15, sx=1.042, sy=0.214, sz=0.631)\n@var Transforms.Krassovski1940: Transform(name='Krassovski1940', tx=-24, ty=123.0, tz=94.0, s1=1.0, rx=-9.6963e-08, ry=1.2605e-06, rz=6.3026e-07, s=-2.423, sx=-0.02, sy=0.26, sz=0.13)\n@var Transforms.Krassowsky1940: Transform(name='Krassowsky1940', tx=-24, ty=123.0, tz=94.0, s1=1.0, rx=-9.6963e-08, ry=1.2605e-06, rz=6.3026e-07, s=-2.423, sx=-0.02, sy=0.26, sz=0.13)\n@var Transforms.MGI: Transform(name='MGI', tx=-577.33, ty=-90.129, tz=-463.92, s1=1.0, rx=2.4905e-05, ry=7.1462e-06, rz=2.5681e-05, s=-2.423, sx=5.137, sy=1.474, sz=5.297)\n@var Transforms.NAD27: Transform(name='NAD27', tx=8.0, ty=-160, tz=-176, s1=1.0, rx=0.0, ry=0.0, rz=0.0, s=0.0, sx=0.0, sy=0.0, sz=0.0)\n@var Transforms.NAD83: Transform(name='NAD83', tx=1.004, ty=-1.91, tz=-0.515, s1=1.0, rx=1.2945e-07, ry=1.6484e-09, rz=5.333e-08, s=-0.0015, sx=0.0267, sy=0.00034, sz=0.011)\n@var Transforms.NTF: Transform(name='NTF', tx=-168, ty=-60, tz=320.0, s1=1.0, rx=0.0, ry=0.0, rz=0.0, s=0.0, sx=0.0, sy=0.0, sz=0.0)\n@var Transforms.OSGB36: Transform(name='OSGB36', tx=-446.45, ty=125.16, tz=-542.06, s1=1.0, rx=-7.2819e-07, ry=-1.1975e-06, rz=-4.0826e-06, s=20.489, sx=-0.1502, sy=-0.247, sz=-0.8421)\n@var Transforms.TokyoJapan: Transform(name='TokyoJapan', tx=148.0, ty=-507, tz=-685, s1=1.0, rx=0.0, ry=0.0, rz=0.0, s=0.0, sx=0.0, sy=0.0, sz=0.0)\n@var Transforms.WGS72: Transform(name='WGS72', tx=0.0, ty=0.0, tz=-4.5, s1=1.0, rx=0.0, ry=0.0, rz=2.6859e-06, s=-0.22, sx=0.0, sy=0.0, sz=0.554)\n@var Transforms.WGS84: Transform(name='WGS84', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=0.0, ry=0.0, rz=0.0, s=0.0, sx=0.0, sy=0.0, sz=0.0)\n'''\n# make sure int/int division yields float quotient, see .basics\nfrom __future__ import division as _; del _  # noqa: E702 ;\n\nfrom pygeodesy.basics import _isin, islistuple, map2, neg, _xinstanceof, _zip\nfrom pygeodesy.constants import R_M, _float as _F, _0_0, _1_0, _2_0, _8_0, _3600_0\n# from pygeodesy.ellipsoidalBase import CartesianEllipsoidalBase as _CEB, \\\n#                                          LatLonEllipsoidalBase as _LLEB  # MODS\nfrom pygeodesy.ellipsoids import a_f2Tuple, Ellipsoid, Ellipsoid2, Ellipsoids, _EWGS84, \\\n                                 Vector3Tuple\nfrom pygeodesy.errors import _IsnotError, _TypeError, _xellipsoidall, _xkwds, _xkwds_pop2\nfrom pygeodesy.fmath import fdot, fmean,  Fmt, _operator\nfrom pygeodesy.internals import _passarg, _under\nfrom pygeodesy.interns import NN, _a_, _Airy1830_, _AiryModified_, _BAR_, _Bessel1841_, \\\n                             _Clarke1866_, _Clarke1880IGN_, _COMMASPACE_, _DMAIN_,_DOT_, \\\n                             _earth_, _ellipsoid_, _ellipsoidal_, _GRS80_, _Intl1924_, \\\n                             _MINUS_, _Krassovski1940_, _Krassowsky1940_, _NAD27_, _NAD83_, \\\n                             _s_, _PLUS_, _Sphere_, _spherical_, _transform_, _UNDER_, \\\n                             _WGS72_, _WGS84_\nfrom pygeodesy.lazily import _ALL_LAZY, _ALL_MODS as _MODS\nfrom pygeodesy.named import _lazyNamedEnumItem as _lazy, _name__, _name2__, _NamedEnum, \\\n                                _NamedEnumItem\n# from pygeodesy.namedTuples import Vector3Tuple  # from .ellipsoids\nfrom pygeodesy.props import Property_RO, property_RO\n# from pygeodesy.streprs import Fmt  # from .fmath\nfrom pygeodesy.units import _isRadius, Radius_,  radians\n\n# from math import radians  # from .units\n# import operator as _operator  # from .fmath\n\n__all__ = _ALL_LAZY.datums\n__version__ = '26.01.13'\n\n_a_ellipsoid_ = _UNDER_(_a_, _ellipsoid_)\n_BD72_        = 'BD72'\n_DHDN_        = 'DHDN'\n_DHDNE_       = 'DHDNE'\n_DHDNW_       = 'DHDNW'\n_ED50_        = 'ED50'\n_GDA2020_     = 'GDA2020'  # in .trf\n_Identity_    = 'Identity'\n_Irl1965_     = 'Irl1965'\n_Irl1975_     = 'Irl1975'\n_MGI_         = 'MGI'\n_Names7       = 'tx', 'ty', 'tz', _s_, 'sx', 'sy', 'sz'  # in .trf\n_Names11      = _Names7[:3]  +  ('s1', 'rx', 'ry', 'rz') + _Names7[3:]\n_NTF_         = 'NTF'\n_OSGB36_      = 'OSGB36'\n_Potsdam_     = 'Potsdam'\n_RPS          =  radians(_1_0 / _3600_0)  # radians per arc-second\n_S1_S         =  1.e-6  # in .trf\n_TokyoJapan_  = 'TokyoJapan'\n\n\nclass Transform(_NamedEnumItem):\n    '''Helmert I{datum} transformation.\n\n       @see: L{TransformXform<trf.TransformXform>}.\n    '''\n    tx = _0_0  # x translation (C{meter})\n    ty = _0_0  # y translation (C{meter})\n    tz = _0_0  # z translation (C{meter})\n\n    rx = _0_0  # x rotation (C{radians})\n    ry = _0_0  # y rotation (C{radians})\n    rz = _0_0  # z rotation (C{radians})\n\n    s  = _0_0  # scale ppm (C{float})\n    s1 = _1_0  # scale + 1 (C{float})\n\n    sx = _0_0  # x rotation (C{arc-seconds})\n    sy = _0_0  # y rotation (C{arc-seconds})\n    sz = _0_0  # z rotation (C{arc-seconds})\n\n    def __init__(self, name=NN, tx=0, ty=0, tz=0,\n                           s=0, sx=0, sy=0, sz=0):\n        '''New L{Transform}.\n\n           @kwarg name: Optional, unique name (C{str}).\n           @kwarg tx: X translation (C{meter}).\n           @kwarg ty: Y translation (C{meter}).\n           @kwarg tz: Z translation (C{meter}).\n           @kwarg s: Scale (C{float}), ppm.\n           @kwarg sx: X rotation (C{arc-seconds}).\n           @kwarg sy: Y rotation (C{arc-seconds}).\n           @kwarg sz: Z rotation (C{arc-seconds}).\n\n           @raise NameError: Transform with that B{C{name}} already exists.\n        '''\n        if tx:\n            self.tx = tx\n        if ty:\n            self.ty = ty\n        if tz:\n            self.tz = tz\n        if s:\n            self.s  =    s\n            self.s1 = _F(s * _S1_S + _1_0)  # normalize ppM to (s + 1)\n        if sx:  # secs to rads\n            self.rx, self.sx = self._rps2(sx)\n        if sy:\n            self.ry, self.sy = self._rps2(sy)\n        if sz:\n            self.rz, self.sz = self._rps2(sz)\n\n        self._register(Transforms, name)\n\n    def __eq__(self, other):\n        '''Compare this and an other transform.\n\n           @arg other: The other transform (L{Transform}).\n\n           @return: C{True} if equal, C{False} otherwise.\n        '''\n        return self is other or (isinstance(other, Transform)\n                                and _equall(other, self))\n\n    def __hash__(self):\n        return hash(tuple(self))\n\n    def __iter__(self):\n        '''Yield the initial attribute values, I{in order}.\n        '''\n        for n in _Names7:\n            yield getattr(self, n)\n\n    def __matmul__(self, point):  # PYCHOK Python 3.5+\n        '''Transform an I{ellipsoidal} B{C{point}} with this Helmert.\n\n           @return: A transformed copy of B{C{point}}.\n\n           @raise TypeError: Invalid B{C{point}}.\n\n           @see: Method C{B{point}.toTransform}.\n        '''\n        _ = _xellipsoidall(point)\n        return point.toTransform(self)\n\n    def __neg__(self):\n        return self.inverse()\n\n    def inverse(self, **name):\n        '''Return the inverse of this transform.\n\n           @kwarg name: Optional, unique name (C{str}).\n\n           @return: Inverse (L{Transform}), unregistered.\n        '''\n        r =  type(self)(**dict(self.items(inverse=True)))\n        n = _name__(**name) or _negastr(self.name)\n        if n:\n            r.name = n  # unregistered\n        return r\n\n    @Property_RO\n    def isunity(self):\n        '''Is this a C{unity, identity} transform (C{bool}), like\n           WGS84 with translation, scale and rotation all zero?\n        '''\n        return not any(self)\n\n    def items(self, inverse=False):\n        '''Yield the initial attributes, each as 2-tuple C{(name, value)}.\n\n           @kwarg inverse: If C{True}, negate the values (C{bool}).\n        '''\n        _p = neg if inverse else _passarg\n        for n, x in _zip(_Names7, self):\n            yield n, _p(x)\n\n    def _rps2(self, s_):\n        '''(INTERNAL) Rotation in C{radians} and C{arc-seconds}.\n        '''\n        # _MR == _RPS * 1.e-3  # radians per milli-arc-second, equ (2)\n        # <https://www.NGS.NOAA.gov/CORS/Articles/SolerSnayASCE.pdf>\n        return (_RPS * s_), s_\n\n    def _s_s1(self, s1):  # in .trf\n        '''(INTERNAL) Set C{s1} and C{s}.\n        '''\n        Transform.isunity._update(self)\n        self.s1 = s1\n        self.s  = s = (s1 - _1_0) / _S1_S\n        return s\n\n    def toStr(self, prec=5, fmt=Fmt.g, **sep_name):  # PYCHOK expected\n        '''Return this transform as a string.\n\n           @kwarg prec: Number of (decimal) digits, unstripped (C{int}).\n           @kwarg fmt: Optional C{float} format (C{letter}).\n           @kwarg sep_name: Optional C{B{name}=NN} (C{str}) or C{None}\n                      to exclude this transform's name and separater\n                      C{B{sep}=\", \"} to join the items (C{str}).\n\n           @return: Transform attributes (C{str}).\n        '''\n        return self._instr(*_Names11, fmt=fmt, prec=prec, **sep_name)\n\n    def transform(self, x, y, z, inverse=False, **Vector_and_kwds):\n        '''Transform a (cartesian) position, forward or inverse.\n\n           @arg x: X coordinate (C{meter}).\n           @arg y: Y coordinate (C{meter}).\n           @arg z: Z coordinate (C{meter}).\n           @kwarg inverse: If C{True}, apply the inverse transform (C{bool}).\n           @kwarg Vector_and_kwds: An optional, (3-D) C{B{Vector}=None} or\n                         cartesian class and additional C{B{Vector}} keyword\n                         arguments to return the transformed position.\n\n           @return: The transformed position (L{Vector3Tuple}C{(x, y, z)})\n                    unless some B{C{Vector_and_kwds}} are specified.\n        '''\n        if self.isunity:\n            r = Vector3Tuple(x, y, z, name=self.name)  # == inverse\n        else:\n            xyz1 = x, y, z, _1_0\n            s1   = self.s1\n            if inverse:\n                xyz1 =  map2(neg, xyz1)\n                s1  -= _2_0  # = s * 1e-6 - 1 = (s1 - 1) - 1\n            # x', y', z' = (x * .s1 - y * .rz + z * .ry + .tx,\n            #               x * .rz + y * .s1 - z * .rx + .ty,\n            #              -x * .ry + y * .rx + z * .s1 + .tz)\n            r = Vector3Tuple(fdot(xyz1,       s1, -self.rz,  self.ry, self.tx),\n                             fdot(xyz1,  self.rz,       s1, -self.rx, self.ty),\n                             fdot(xyz1, -self.ry,  self.rx,       s1, self.tz),\n                             name=self.name)\n        if Vector_and_kwds:\n            V, kwds = _xkwds_pop2(Vector_and_kwds, Vector=None)\n            if V:\n                r = V(r, **_xkwds(kwds, name=self.name))\n        return r\n\n\nclass Transforms(_NamedEnum):\n    '''(INTERNAL) L{Transform} registry, I{must} be a sub-class\n       to accommodate the L{_LazyNamedEnumItem} properties.\n    '''\n    def _Lazy(self, **name_tx_ty_tz_s_sx_sy_sz):\n        '''(INTERNAL) Instantiate the C{Transform}.\n        '''\n        return Transform(**name_tx_ty_tz_s_sx_sy_sz)\n\nTransforms = Transforms(Transform)  # PYCHOK singleton\n'''Some pre-defined L{Transform}s, all I{lazily} instantiated.'''\n# <https://WikiPedia.org/wiki/Helmert_transformation> from WGS84 to ...\nTransforms._assert(\n    BD72           = _lazy(_BD72_, tx=_F(106.868628), ty=_F(-52.297783), tz=_F(103.723893), s=_F(1.2727),\n                                   # <https://www.NGI.Be/FR/FR4-4.shtm> ETRS89 == WG84\n                                   # <https://EPSG.org/transformation_15929/BD72-to-WGS-84-3.html>\n                                   sx=_F( -0.33657),  sy=_F( -0.456955), sz=_F( -1.84218)),\n\n    Bessel1841     = _lazy(_Bessel1841_, tx=_F(-582.0),  ty=_F(-105.0),  tz=_F(-414.0), s=_F(-8.3),\n                                         sx=_F(  -1.04), sy=_F(  -0.35), sz=_F(   3.08)),\n\n    Clarke1866     = _lazy(_Clarke1866_, tx=_F(8), ty=_F(-160), tz=_F(-176)),\n\n    DHDN           = _lazy(_DHDN_, tx=_F(-591.28),  ty=_F(-81.35),   tz=_F(-396.39), s=_F(-9.82),\n                                   sx=_F(   1.477), sy=_F( -0.0736), sz=_F(  -1.458)),  # Germany\n\n    DHDNE          = _lazy(_DHDNE_, tx=_F(-612.4),   ty=_F(-77.0),   tz=_F(-440.2), s=_F(-2.55),\n                                    # <https://EPSG.org/transformation_15869/DHDN-to-WGS-84-3.html>\n                                    sx=_F(   0.054), sy=_F( -0.057), sz=_F(   2.797)),  # East Germany\n\n    DHDNW          = _lazy(_DHDNW_, tx=_F(-598.1),   ty=_F(-73.7),   tz=_F(-418.2), s=_F(-6.7),\n                                    # <https://EPSG.org/transformation_1777/DHDN-to-WGS-84-2.html>\n                                    sx=_F(  -0.202), sy=_F( -0.045), sz=_F(   2.455)),  # West Germany\n\n    ED50           = _lazy(_ED50_, tx=_F(89.5), ty=_F(93.8), tz=_F(123.1), s=_F(-1.2),\n                                   # <https://GeoNet.ESRI.com/thread/36583> sz=_F(-0.156)\n                                   # <https://GitHub.com/ChrisVeness/geodesy/blob/master/latlon-ellipsoidal.js>\n                                   # <https://www.Gov.UK/guidance/oil-and-gas-petroleum-operations-notices#pon-4>\n                                                             sz=_F(  0.156)),\n    Identity       = _lazy(_Identity_),\n\n    Irl1965        = _lazy(_Irl1965_, tx=_F(-482.530), ty=_F(130.596), tz=_F(-564.557), s=_F(-8.15),\n                                       # <https://EPSG.org/transformation_1641/TM65-to-WGS-84-2.html>\n                                      sx=_F(   1.042), sy=_F(  0.214), sz=_F(   0.631)),\n    Irl1975        = _lazy(_Irl1975_, tx=_F(-482.530), ty=_F(130.596), tz=_F(-564.557), s=_F(-8.15),\n                                      # <https://EPSG.org/transformation_1954/TM75-to-WGS-84-2.html>\n                                      sx=_F(   1.042), sy=_F(  0.214), sz=_F(   0.631)),\n\n    Krassovski1940 = _lazy(_Krassovski1940_, tx=_F(-24.0),  ty=_F(123.0),  tz=_F(94.0), s=_F(-2.423),\n                                             sx=_F( -0.02), sy=_F(  0.26), sz=_F( 0.13)),  # spelling\n\n    Krassowsky1940 = _lazy(_Krassowsky1940_, tx=_F(-24.0),  ty=_F(123.0),  tz=_F(94.0), s=_F(-2.423),\n                                             sx=_F( -0.02), sy=_F(  0.26), sz=_F( 0.13)),  # spelling\n\n    MGI            = _lazy(_MGI_, tx=_F(-577.326), ty=_F(-90.129), tz=_F(-463.920), s=_F(-2.423),\n                                  sx=_F(   5.137), sy=_F(  1.474), sz=_F(   5.297)),  # Austria\n\n    NAD27          = _lazy(_NAD27_, tx=_8_0, ty=_F(-160), tz=_F(-176)),\n\n    NAD83          = _lazy(_NAD83_, tx=_F(1.004),  ty=_F(-1.910),   tz=_F(-0.515), s=_F(-0.0015),\n                                    sx=_F(0.0267), sy=_F( 0.00034), sz=_F( 0.011)),\n\n    NTF            = _lazy(_NTF_, tx=_F(-168), ty=_F(-60), tz=_F(320)),  # XXX verify\n\n    OSGB36         = _lazy(_OSGB36_, tx=_F(-446.448),  ty=_F(125.157),  tz=_F(-542.060), s=_F(20.4894),\n                                     # <https://EPSG.org/transformation_1314/OSGB36-to-WGS-84-6.html>\n                                     sx=_F(  -0.1502), sy=_F( -0.2470), sz=_F(  -0.8421)),\n\n    TokyoJapan     = _lazy(_TokyoJapan_, tx=_F(148), ty=_F(-507), tz=_F(-685)),\n\n    WGS72          = _lazy(_WGS72_, tz=_F(-4.5), s=_F(-0.22), sz=_F(0.554)),\n\n    WGS84          = _lazy(_WGS84_),  # unity\n)\n\n\nclass Datum(_NamedEnumItem):\n    '''Ellipsoid and transform parameters for an earth model.\n    '''\n    _ellipsoid = Ellipsoids.WGS84  # default ellipsoid (L{Ellipsoid}, L{Ellipsoid2})\n    _transform = Transforms.WGS84  # default transform (L{Transform})\n\n    def __init__(self, ellipsoid, transform=None, **name):\n        '''New L{Datum}.\n\n           @arg ellipsoid: The ellipsoid (L{Ellipsoid} or L{Ellipsoid2}).\n           @kwarg transform: Optional transform (L{Transform}).\n           @kwarg name: Optional, unique C{B{name}=NN} (C{str}).\n\n           @raise NameError: Datum with that B{C{name}} already exists.\n\n           @raise TypeError: If B{C{ellipsoid}} is not an L{Ellipsoid}\n                             nor L{Ellipsoid2} or B{C{transform}} is\n                             not a L{Transform}.\n        '''\n        self._ellipsoid = ellipsoid or Datum._ellipsoid\n        _xinstanceof(Ellipsoid, ellipsoid=self.ellipsoid)\n\n        self._transform = transform or Datum._transform\n        _xinstanceof(Transform, transform=self.transform)\n\n        self._register(Datums, _name__(name) or self.transform.name\n                                             or self.ellipsoid.name)\n\n    def __eq__(self, other):\n        '''Compare this and an other datum.\n\n           @arg other: The other datum (L{Datum}).\n\n           @return: C{True} if equal, C{False} otherwise.\n        '''\n        return self is other or (isinstance(other, Datum)   and\n                          self.ellipsoid == other.ellipsoid and\n                          self.transform == other.transform)\n\n    def __hash__(self):\n        return self._hash  # memoized\n\n    def __matmul__(self, point):  # PYCHOK Python 3.5+\n        '''Convert an I{ellipsoidal} B{C{point}} to this datum.\n\n           @raise TypeError: Invalid B{C{point}}.\n        '''\n        _ = _xellipsoidall(point)\n        return point.toDatum(self)\n\n    def ecef(self, Ecef=None):\n        '''Return U{ECEF<https://WikiPedia.org/wiki/ECEF>} converter.\n\n           @kwarg Ecef: ECEF class to use, default L{EcefKarney}.\n\n           @return: An ECEF converter for this C{datum}.\n\n           @raise TypeError: Invalid B{C{Ecef}}.\n\n           @see: Module L{pygeodesy.ecef}.\n        '''\n        return _MODS.ecef._4Ecef(self, Ecef)\n\n    @Property_RO\n    def ellipsoid(self):\n        '''Get this datum's ellipsoid (L{Ellipsoid} or L{Ellipsoid2}).\n        '''\n        return self._ellipsoid\n\n    @Property_RO\n    def exactTM(self):\n        '''Get the C{ExactTM} projection (L{ExactTransverseMercator}).\n        '''\n        return _MODS.etm.ExactTransverseMercator(datum=self)\n\n    @Property_RO\n    def _hash(self):\n        return hash(self.ellipsoid) + hash(self.transform)\n\n    @property_RO\n    def isEllipsoidal(self):\n        '''Check whether this datum is ellipsoidal (C{bool}).\n        '''\n        return self.ellipsoid.isEllipsoidal\n\n    @property_RO\n    def isOblate(self):\n        '''Check whether this datum's ellipsoidal is I{oblate} (C{bool}).\n        '''\n        return self.ellipsoid.isOblate\n\n    @property_RO\n    def isProlate(self):\n        '''Check whether this datum's ellipsoidal is I{prolate} (C{bool}).\n        '''\n        return self.ellipsoid.isProlate\n\n    @property_RO\n    def isSpherical(self):\n        '''Check whether this datum is (near-)spherical (C{bool}).\n        '''\n        return self.ellipsoid.isSpherical\n\n    def toStr(self, sep=_COMMASPACE_, **name):  # PYCHOK expected\n        '''Return this datum as a string.\n\n           @kwarg sep: Separator to join (C{str}).\n           @kwarg name: Optional, override C{B{name}=NN} (C{str}) or\n                        C{None} to exclude this datum's name.\n\n           @return: Datum attributes (C{str}).\n        '''\n        name, _ = _name2__(**name)  # name=None\n        t = [] if name is None else \\\n            [Fmt.EQUAL(name=repr(name or self.named))]\n        for a in (_ellipsoid_, _transform_):\n            v = getattr(self, a)\n            t.append(NN(Fmt.EQUAL(a, v.classname), _s_, _DOT_, v.name))\n        return sep.join(t)\n\n    @Property_RO\n    def transform(self):\n        '''Get this datum's transform (L{Transform}).\n        '''\n        return self._transform\n\n\ndef _earth_datum(inst, a_earth, f=None, raiser=_a_ellipsoid_, **name):  # in .karney, .trf, ...\n    '''(INTERNAL) Set C{inst._datum} from C{(B{a_..}, B{f})} or C{B{.._ellipsoid}}\n       (L{Ellipsoid}, L{Ellipsoid2}, L{Datum}, C{a_f2Tuple} or C{scalar} earth radius).\n\n       @note: C{B{raiser}='a_ellipsoid'} for backward naming compatibility.\n    '''\n    if f is not None:\n        E, n, D = _EnD3((a_earth, f), name)\n        if raiser and not E:\n            raise _TypeError(f=f, **{raiser: a_earth})\n    elif _isin(a_earth, None, _EWGS84, _WGS84) and inst._datum is _WGS84:\n        return\n    elif isinstance(a_earth, Datum):\n        E, n, D =  None, NN, a_earth\n    else:\n        E, n, D = _EnD3(a_earth, name)\n        if raiser and not E:\n            _xinstanceof(Ellipsoid, Ellipsoid2, a_f2Tuple, Datum, **{raiser: a_earth})\n    if D is None:\n        D = Datum(E, transform=Transforms.Identity, name=_under(n))\n    inst._datum = D\n\n\ndef _earth_ellipsoid(earth, **name_raiser):\n    '''(INTERAL) Return the ellipsoid for the given C{earth} model.\n    '''\n    return Ellipsoids.Sphere if earth is  R_M else (\n          _EWGS84            if earth is _EWGS84 or earth is _WGS84 else\n          _spherical_datum(earth, **name_raiser).ellipsoid)\n\n\ndef _ED2(radius, name):\n    '''(INTERNAL) Helper for C{_EnD3} and C{_spherical_datum}.\n    '''\n    D = Datums.Sphere\n    E = D.ellipsoid\n    if name or radius != E.a:  # != E.b\n        n = _under(_name__(name, _or_nameof=D))\n        E =  Ellipsoid(radius, radius, name=n)\n        D =  Datum(E, transform=Transforms.Identity, name=n)\n    return E, D\n\n\ndef _ellipsoidal_datum(earth, Error=TypeError, raiser=NN, **name):\n    '''(INTERNAL) Create a L{Datum} from an L{Ellipsoid} or L{Ellipsoid2},\n       C{a_f2Tuple}, 2-tuple or 2-list B{C{earth}} model.\n\n       @kwarg raiser: If not C{NN}, raise an B{C{Error}} if not ellipsoidal.\n    '''\n    if isinstance(earth, Datum):\n        D = earth\n    else:\n        E, n, D = _EnD3(earth, name)\n        if not E:\n            n = raiser or _earth_\n            _xinstanceof(Datum, Ellipsoid, Ellipsoid2, a_f2Tuple, **{n: earth})\n        if D is None:\n            D = Datum(E, transform=Transforms.Identity, name=_under(n))\n    if raiser and not D.isEllipsoidal:\n        raise _IsnotError(_ellipsoidal_, Error=Error, **{raiser: earth})\n    return D\n\n\ndef _EnD3(earth, name):\n    '''(INTERNAL) Helper for C{_earth_datum} and C{_ellipsoidal_datum}.\n    '''\n    D, n = None, _under(_name__(name, _or_nameof=earth))\n    if isinstance(earth, (Ellipsoid, Ellipsoid2)):\n        E = earth\n    elif isinstance(earth, Datum):\n        E = earth.ellipsoid\n        D = earth\n    elif _isRadius(earth):\n        E, D = _ED2(Radius_(earth), n)\n        n = E.name\n    elif isinstance(earth, a_f2Tuple):\n        E = earth.ellipsoid(name=n)\n    elif islistuple(earth, minum=2):\n        E = Ellipsoids.Sphere\n        a, f = earth[:2]\n        if f or a != E.a:  # != E.b\n            E = Ellipsoid(a, f=f, name=n)\n        else:\n            n = E.name\n            D = Datums.Sphere\n    else:\n        E, n = None, NN\n    return E, n, D\n\n\ndef _equall(t1, t2):  # in .trf\n    '''(INTERNAL) Return L{Transform} C{t1 == t2}.\n    '''\n    return all(map(_operator.eq, t1, t2))\n\n\ndef _mean_radius(radius, *lats):\n    '''(INTERNAL) Compute the mean radius of a L{Datum} from an L{Ellipsoid},\n       L{Ellipsoid2} or scalar earth C{radius} over several latitudes.\n    '''\n    if radius is R_M:\n        r =  radius\n    elif _isRadius(radius):\n        r =  Radius_(radius, low=0, Error=TypeError)\n    else:\n        E = _ellipsoidal_datum(radius).ellipsoid\n        r =  fmean(map(E.Rgeocentric, lats)) if lats else E.Rmean\n    return r\n\n\ndef _negastr(name):  # in .trf, test/testTrf\n    '''(INTERNAL) Negate a C{Transform/-Xform} name.\n    '''\n    b, m, p = _BAR_, _MINUS_, _PLUS_\n    n = name.replace(m, b).replace(p, m).replace(b, p)\n    # as good and fast as (in Python 3+ only) ...\n    # _MINUSxPLUS = str.maketrans({_MINUS_: _PLUS_, _PLUS_: _MINUS_})\n    # def _negastr(name):\n    #     n = name.translate(_MINUSxPLUS)\n    #     ...\n    return n.lstrip(p) if n.startswith(p) else NN(m, n)\n\n\ndef _spherical_datum(earth, Error=TypeError, raiser=NN, **name):\n    '''(INTERNAL) Create a L{Datum} from an L{Ellipsoid}, L{Ellipsoid2},\n       C{a_f2Tuple}, 2-tuple, 2-list B{C{earth}} model or C{scalar} radius.\n\n       @kwarg raiser: If not C{NN}, raise an B{C{Error}} if not spherical.\n    '''\n    if isinstance(earth, Datum):\n        D = earth\n    elif _isRadius(earth):\n        _, D = _ED2(Radius_(earth, Error=Error), name)\n    else:\n        D = _ellipsoidal_datum(earth, Error=Error, **name)\n    if raiser and not D.isSpherical:\n        raise _IsnotError(_spherical_, Error=Error, **{raiser: earth})\n    return D\n\n\nclass Datums(_NamedEnum):\n    '''(INTERNAL) L{Datum} registry, I{must} be a sub-class\n       to accommodate the L{_LazyNamedEnumItem} properties.\n    '''\n    def _Lazy(self, ellipsoid_name, transform_name, **name):\n        '''(INTERNAL) Instantiate the L{Datum}.\n        '''\n        return Datum(Ellipsoids.get(ellipsoid_name),\n                     Transforms.get(transform_name), **name)\n\nDatums = Datums(Datum)  # PYCHOK singleton\n'''Some pre-defined L{Datum}s, all I{lazily} instantiated.'''\n# Datums with associated ellipsoid and Helmert transform parameters\n# to convert from WGS84 into the given datum.  More are available at\n# <https://Earth-Info.NGA.mil/GandG/coordsys/datums/NATO_DT.pdf> and\n# <XXX://www.FieldenMaps.info/cconv/web/cconv_params.js>.\nDatums._assert(\n    # Belgian Datum 1972, based on Hayford ellipsoid.\n    # <https://NL.WikiPedia.org/wiki/Belgian_Datum_1972>\n    # <https://SpatialReference.org/ref/sr-org/7718/html/>\n    BD72           = _lazy(_BD72_, _Intl1924_, _BD72_),\n\n    # Germany <https://WikiPedia.org/wiki/Bessel-Ellipsoid>\n    #         <https://WikiPedia.org/wiki/Helmert_transformation>\n    DHDN           = _lazy(_DHDN_, _Bessel1841_, _DHDN_),\n\n    # <https://www.Gov.UK/guidance/oil-and-gas-petroleum-operations-notices#pon-4>\n    ED50           = _lazy(_ED50_, _Intl1924_, _ED50_),\n\n    # Australia <https://ICSM.Gov.AU/datum/gda2020-and-gda94-technical-manuals>\n#   ADG66          = _lazy(_ADG66_, _ANS_, _WGS84_),  # XXX Transform?\n#   ADG84          = _lazy(_ADG84_, _ANS_, _WGS84_),  # XXX Transform?\n#   GDA94          = _lazy(_GDA94_, _GRS80_, _WGS84_),\n    GDA2020        = _lazy(_GDA2020_, _GRS80_, _WGS84_),  # XXX Transform?\n\n    # <https://WikiPedia.org/wiki/GRS_80>\n    GRS80          = _lazy(_GRS80_, _GRS80_, _WGS84_),\n\n    # <https://OSI.IE/wp-content/uploads/2015/05/transformations_booklet.pdf> Table 2\n#   Irl1975        = _lazy(_Irl1965_, _AiryModified_, _Irl1965_),\n    Irl1975        = _lazy(_Irl1975_, _AiryModified_, _Irl1975_),\n\n    # Germany <https://WikiPedia.org/wiki/Helmert_transformation>\n    Krassovski1940 = _lazy(_Krassovski1940_, _Krassovski1940_, _Krassovski1940_),  # XXX spelling?\n    Krassowsky1940 = _lazy(_Krassowsky1940_, _Krassowsky1940_, _Krassowsky1940_),  # XXX spelling?\n\n    # Austria <https://DE.WikiPedia.org/wiki/Datum_Austria>\n    MGI            = _lazy(_MGI_, _Bessel1841_, _MGI_),\n\n    # <https://WikiPedia.org/wiki/Helmert_transformation>\n    NAD27          = _lazy(_NAD27_, _Clarke1866_, _NAD27_),\n\n    # NAD83 (2009) == WGS84 - <https://www.UVM.edu/giv/resources/WGS84_NAD83.pdf>\n    # (If you *really* must convert WGS84<->NAD83, you need more than this!)\n    NAD83          = _lazy(_NAD83_, _GRS80_, _NAD83_),\n\n    #  Nouvelle Triangulation Francaise (Paris)  XXX verify\n    NTF            = _lazy(_NTF_, _Clarke1880IGN_, _NTF_),\n\n    # <https://www.OrdnanceSurvey.co.UK/docs/support/guide-coordinate-systems-great-britain.pdf>\n    OSGB36         = _lazy(_OSGB36_, _Airy1830_, _OSGB36_),\n\n    # Germany <https://WikiPedia.org/wiki/Helmert_transformation>\n    Potsdam        = _lazy(_Potsdam_, _Bessel1841_, _Bessel1841_),\n\n    # XXX psuedo-ellipsoids for spherical LatLon\n    Sphere         = _lazy(_Sphere_, _Sphere_, _WGS84_),\n\n    # <https://www.GeoCachingToolbox.com?page=datumEllipsoidDetails>\n    TokyoJapan     = _lazy(_TokyoJapan_, _Bessel1841_, _TokyoJapan_),\n\n    # <https://www.ICAO.int/safety/pbn/documentation/eurocontrol/eurocontrol%20wgs%2084%20implementation%20manual.pdf>\n    WGS72          = _lazy(_WGS72_, _WGS72_, _WGS72_),\n\n    WGS84          = _lazy(_WGS84_, _WGS84_, _WGS84_),\n)\n\n_WGS84 = Datums.WGS84\nassert _WGS84.ellipsoid is _EWGS84\n# assert _WGS84.transform.isunity\n\nif __name__ == _DMAIN_:\n\n    from pygeodesy.internals import _pregistry\n    # __doc__ of this file, force all into registry\n    _pregistry(Datums)\n    _pregistry(Transforms)\n\n# **) MIT License\n#\n# Copyright (C) 2016-2026 -- mrJean1 at Gmail -- All Rights Reserved.\n#\n# Permission is hereby granted, free of charge, to any person obtaining a\n# copy of this software and associated documentation files (the \"Software\"),\n# to deal in the Software without restriction, including without limitation\n# the rights to use, copy, modify, merge, publish, distribute, sublicense,\n# and/or sell copies of the Software, and to permit persons to whom the\n# Software is furnished to do so, subject to the following conditions:\n#\n# The above copyright notice and this permission notice shall be included\n# in all copies or substantial portions of the Software.\n#\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL\n# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR\n# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\n# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n# OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "pygeodesy/deprecated/__init__.py",
    "content": "\r\n# -*- coding: utf-8 -*-\r\n\r\nu'''DEPRECATED classes, constants, functions, interns, methods, etc. and all\r\nlazily imported.\r\n\r\nKept for backward compatibility, including DEPRECATED modules C{pygeodesy.bases},\r\nC{pygeodesy.datum} and C{pygeodesy.nvector}.  Use either C{from pygeodesy import\r\nbases} or C{from pygeodesy.deprecated import bases}.  Likewise for C{datum} and\r\nC{nvector}.\r\n'''\r\n\r\nfrom pygeodesy.deprecated.bases import *  # noqa: F403 not pygeodesy.__init__\r\nfrom pygeodesy.deprecated.datum import *  # noqa: F403 not pygeodesy.__init__\r\nfrom pygeodesy.deprecated.nvector import *  # noqa: F403 not pygeodesy.__init__\r\n\r\nfrom pygeodesy.deprecated.classes import *  # noqa: F403\r\nfrom pygeodesy.deprecated.consterns import *  # noqa: F403\r\nfrom pygeodesy.deprecated.functions import *  # noqa: F403\r\n\r\nfrom pygeodesy.lazily import _ALL_ATTRS, _ALL_DEPRECATED, _lazy_import_as, _unLazy0  # _lazy_import_star\r\n\r\n__all__ = (_ALL_DEPRECATED.deprecated_bases +\r\n           _ALL_DEPRECATED.deprecated_datum +\r\n           _ALL_DEPRECATED.deprecated_nvector +\r\n\r\n           _ALL_DEPRECATED.deprecated_classes +\r\n           _ALL_DEPRECATED.deprecated_consterns +\r\n           _ALL_DEPRECATED.deprecated_functions)\r\n__version__ = '26.02.08'\r\n\r\nif _unLazy0:\r\n    from pygeodesy.deprecated import bases, datum, nvector, rhumbBase, \\\r\n                                     rhumbaux, rhumbsolve, rhumbx  # noqa: F401 PYCHOK expected\r\n    __all__ += _ALL_ATTRS(_ALL_DEPRECATED.deprecated)  # DEPRECATED modules\r\n\r\nelse:  # lazily import modules and exported attrs\r\n    __getattr__ = _lazy_import_as(__name__)\r\n#   __star__    = _lazy_import_star(__name__)\r\n\r\n# **) MIT License\r\n#\r\n# Copyright (C) 2018-2026 -- mrJean1 at Gmail -- All Rights Reserved.\r\n#\r\n# Permission is hereby granted, free of charge, to any person obtaining a\r\n# copy of this software and associated documentation files (the \"Software\"),\r\n# to deal in the Software without restriction, including without limitation\r\n# the rights to use, copy, modify, merge, publish, distribute, sublicense,\r\n# and/or sell copies of the Software, and to permit persons to whom the\r\n# Software is furnished to do so, subject to the following conditions:\r\n#\r\n# The above copyright notice and this permission notice shall be included\r\n# in all copies or substantial portions of the Software.\r\n#\r\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\r\n# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r\n# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL\r\n# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR\r\n# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\r\n# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\r\n# OTHER DEALINGS IN THE SOFTWARE.\r\n"
  },
  {
    "path": "pygeodesy/deprecated/bases.py",
    "content": "\n# -*- coding: utf-8 -*-\n\nu'''DEPRECATED on 2021.02.10, use (INTERNAL) module L{pygeodesy.latlonBase} instead.\n'''\n\nfrom pygeodesy.iters import points2  # noqa: F401\nfrom pygeodesy.latlonBase import LatLonBase as _LatLonBase\nfrom pygeodesy.lazily import _ALL_DEPRECATED\n\n__all__ = _ALL_DEPRECATED.deprecated_bases\n__version__ = '25.05.12'\n\n\nclass LatLonHeightBase(_LatLonBase):  # PYCHOK no cover\n    '''DEPRECATED on 2021.02.10, use (INTERNAL) class L{pygeodesy.latlonBase.LatLonBase}.'''\n    pass\n\n\n# **) MIT License\n#\n# Copyright (C) 2016-2026 -- mrJean1 at Gmail -- All Rights Reserved.\n#\n# Permission is hereby granted, free of charge, to any person obtaining a\n# copy of this software and associated documentation files (the \"Software\"),\n# to deal in the Software without restriction, including without limitation\n# the rights to use, copy, modify, merge, publish, distribute, sublicense,\n# and/or sell copies of the Software, and to permit persons to whom the\n# Software is furnished to do so, subject to the following conditions:\n#\n# The above copyright notice and this permission notice shall be included\n# in all copies or substantial portions of the Software.\n#\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL\n# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR\n# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\n# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n# OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "pygeodesy/deprecated/classes.py",
    "content": "\r\n# -*- coding: utf-8 -*-\r\n\r\nu'''DEPRECATED classes kept for backward compatibility.\r\n'''\r\n\r\nfrom pygeodesy.clipy import ClipCS4Tuple as _ClipCS4Tuple\r\nfrom pygeodesy.constants import NAN, _float\r\nfrom pygeodesy.interns import NN, _a12_, _area_, _band_, _convergence_, \\\r\n                             _distance_, _gamma_, _i_, _lat_, _lon_, _ltp_\r\nfrom pygeodesy.deprecated.consterns import _Deprecated_Str\r\nfrom pygeodesy.karney import _GTuple, Rhumb8Tuple as _Rhumb8Tuple,  ADict\r\nfrom pygeodesy.lazily import _ALL_DEPRECATED, _ALL_DOCS, _ALL_MODS as _MODS\r\nfrom pygeodesy.ltpTuples import Ned4Tuple as _Ned4Tuple\r\n# from pygeodesy.named import ADict, _NamedTuple  # from .karney, .namedTuples\r\nfrom pygeodesy.namedTuples import Forward4Tuple as _Forward4Tuple, \\\r\n                                  Reverse4Tuple as _Reverse4Tuple, \\\r\n                                  UtmUps5Tuple  as _UtmUps5Tuple,  _NamedTuple\r\nfrom pygeodesy.props import deprecated_class, deprecated_method\r\nfrom pygeodesy.resections import TriAngle5Tuple as _TriAngle5Tuple\r\nfrom pygeodesy.triaxials import Conformal, ConformalSphere, Conformal2Tuple\r\nfrom pygeodesy.trf import TRFXform7Tuple as _TRFXform7Tuple\r\nfrom pygeodesy.units import Bearing, Int, Lamd, Lat, Lon, Meter, Phid\r\n\r\n__all__ = _ALL_DEPRECATED.deprecated_classes\r\n__version__ = '25.11.11'\r\n\r\n\r\nclass _Deprecated_NamedTuple(_NamedTuple):\r\n    '''DEPRECATED, C{_NamedTuple} base.\r\n    '''\r\n    def __new__(cls, *args, **kwds):\r\n        deprecated_class(cls)\r\n        return _NamedTuple.__new__(cls, *args, **kwds)\r\n\r\n\r\ndef _reNames(names, old, *new):\r\n    # replace item C{old} with C{new} name\r\n    i = names.index(old)\r\n    return names[:i] + new + names[i + 1:]\r\n\r\n\r\nclass ClipCS3Tuple(_Deprecated_NamedTuple):  # PYCHOK no cover\r\n    '''DEPRECATED, see I{DEPRECATED} function L{pygeodesy.deprecated.clipCS3}.'''\r\n    assert _ClipCS4Tuple._Names_.index(_i_) == 2\r\n    _Names_ = _reNames(_ClipCS4Tuple._Names_[:3], _i_, 'index')\r\n    _Units_ =          _ClipCS4Tuple._Units_[:3]\r\n\r\n\r\nclass ConformalTriaxial(Conformal):\r\n    '''DEPRECATED on 2025.11.11, use class L{Conformal}.'''\r\n    def __init__(self, *args, **kwds):  # PYCHOK no cover\r\n        deprecated_class(self.__class__)\r\n        Conformal.__init__(self, *args, **kwds)\r\n\r\n\r\nclass EasNorExact4Tuple(_Deprecated_NamedTuple):\r\n    '''DEPRECATED, use class L{Forward4Tuple}, item C{gamma} for C{convergence}.'''\r\n    _Names_ = _reNames(_Forward4Tuple._Names_, _gamma_, _convergence_)\r\n    _Units_ =          _Forward4Tuple._Units_\r\n\r\n\r\ndef EcefCartesian(*args, **kwds):\r\n    '''DEPRECATED, use class L{LocalCartesian}.'''\r\n    Ltp = _MODS.ltp.Ltp\r\n\r\n    class EcefCartesian_(Ltp):\r\n        '''DEPRECATED, use class L{LocalCartesian} or L{Ltp}.\r\n\r\n           @note: This class is named I{incorrectly}, since it provides conversion to\r\n                  and from I{local} cartesian coordinates in a I{local tangent plane}\r\n                  and I{not geocentric} (ECEF) ones, as the name would suggest.\r\n        '''\r\n        def __init__(self, latlonh0=0, lon0=0, height0=0, ecef=None, name=NN):\r\n            deprecated_class(self.__class__)\r\n            Ltp.__init__(self, latlonh0=latlonh0, lon0=lon0, height0=height0, ecef=ecef, name=name)\r\n\r\n        @deprecated_method\r\n        def forward(self, latlonh, lon=None, height=0, M=False, name=NN):\r\n            '''DEPRECATED, use method L{LocalCartesian.forward} or L{Ltp.forward}.\r\n\r\n               @return: I{Incorrectly}, an L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C,\r\n                        M, datum)} with I{local} C{(x, y, z)} coordinates for the given\r\n                        I{geodetic} ones C{(lat, lon, height)}, case C{C=0} always,\r\n                        optionally I{concatenated} L{EcefMatrix} C{M} and C{datum}.\r\n            '''\r\n            t = Ltp.forward(self, latlonh, lon=lon, height=height, M=M, name=name)\r\n            return _MODS.ecef.Ecef9Tuple(t.x, t.y, t.z, t.lat, t.lon, t.height,\r\n                                                        0, t.M, t.ecef.datum,\r\n                                                        name=t.name or self.name)\r\n\r\n        @deprecated_method\r\n        def reverse(self, xyz, y=None, z=None, M=False, name=NN):\r\n            '''DEPRECATED, use method L{LocalCartesian.reverse} or L{Ltp.reverse}.\r\n\r\n               @return: I{Incorrectly}, an L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C,\r\n                        M, datum)} with I{geodetic} coordinates C{(lat, lon, height)} for\r\n                        the given I{local} ones C{(x, y, z)}, case C{C}, optionally\r\n                        I{concatenated} L{EcefMatrix} C{M} and C{datum}.\r\n            '''\r\n            t = Ltp.reverse(self, xyz, y=y, z=z, M=M, name=name)\r\n            return _MODS.ecef.Ecef9Tuple(t.x, t.y, t.z, t.lat, t.lon, t.height,\r\n                                                        t.ecef.C, t.M, t.ecef.datum,\r\n                                                        name=t.name or self.name)\r\n\r\n    return EcefCartesian_(*args, **kwds)\r\n\r\n\r\ndef Fn_rt(root, *xs, **name_RESIDUAL_raiser):  # PYCHOK no cover\r\n    '''DEPRECATED on 2024.04.17, use class L{Froot}.\r\n    '''\r\n    Froot = _MODS.fmath.Froot\r\n\r\n    class Fn_rt(Froot):  # PYCHOK no cover\r\n        '''DEPRECATED on 2024.04.17, use class L{Froot}.\r\n        '''\r\n        def __init__(self, root, *xs, **name_RESIDUAL_raiser):\r\n            deprecated_class(self.__class__)\r\n            Froot.__init__(self, root, *xs, **name_RESIDUAL_raiser)\r\n\r\n\r\ndef FrechetCosineAndoyerLambert(point1s, **kwds):  # PYCHOK no cover\r\n    '''DEPRECATED on 2024.12.31, use class L{FrechetCosineLaw} with C{B{corr}=1}.'''\r\n    FrechetCosineLaw = _MODS.frechet.FrechetCosineLaw\r\n\r\n    class FrechetCosineAndoyerLambert(FrechetCosineLaw):\r\n        '''DEPRECATED on 2024.12.31, use class L{FrechetCosineLaw} with C{B{corr}=1}.\r\n        '''\r\n        def __init__(self, point1s, **seed_name__radius_wrap):\r\n            deprecated_class(self.__class__)\r\n            FrechetCosineLaw.__init__(self, point1s, corr=1, **seed_name__radius_wrap)\r\n\r\n    return FrechetCosineAndoyerLambert(point1s, **kwds)\r\n\r\n\r\ndef FrechetCosineForsytheAndoyerLambert(point1s, **kwds):  # PYCHOK no cover\r\n    '''DEPRECATED on 2024.12.31, use class L{FrechetCosineLaw} with C{B{corr}=2}.'''\r\n    FrechetCosineLaw = _MODS.frechet.FrechetCosineLaw\r\n\r\n    class FrechetCosineForsytheAndoyerLambert(FrechetCosineLaw):\r\n        '''DEPRECATED on 2024.12.31, use class L{FrechetCosineLaw} with C{B{corr}=w}.\r\n        '''\r\n        def __init__(self, point1s, **seed_name__radius_wrap):\r\n            deprecated_class(self.__class__)\r\n            FrechetCosineLaw.__init__(self, point1s, corr=2, **seed_name__radius_wrap)\r\n\r\n    return FrechetCosineForsytheAndoyerLambert(point1s, **kwds)\r\n\r\n\r\ndef HausdorffCosineAndoyerLambert(point1s, **kwds):  # PYCHOK no cover\r\n    '''DEPRECATED on 2024.12.31, use class L{HausdorffCosineLaw} with C{B{corr}=1}.'''\r\n    HausdorffCosineLaw = _MODS.hausdorff.HausdorffCosineLaw\r\n\r\n    class HausdorffCosineAndoyerLambert(HausdorffCosineLaw):\r\n        '''DEPRECATED on 2024.12.31, use class L{HausdorffCosineLaw} with C{B{corr}=1}.\r\n        '''\r\n        def __init__(self, point1s, **seed_name__radius_wrap):\r\n            deprecated_class(self.__class__)\r\n            HausdorffCosineLaw.__init__(self, point1s, corr=1, **seed_name__radius_wrap)\r\n\r\n    return HausdorffCosineAndoyerLambert(point1s, **kwds)\r\n\r\n\r\ndef HausdorffCosineForsytheAndoyerLambert(point1s, **kwds):  # PYCHOK no cover\r\n    '''DEPRECATED on 2024.12.31, use class L{HausdorffCosineLaw} with C{B{corr}=2}.'''\r\n    HausdorffCosineLaw = _MODS.hausdorff.HausdorffCosineLaw\r\n\r\n    class HausdorffCosineForsytheAndoyerLambert(HausdorffCosineLaw):\r\n        '''DEPRECATED on 2024.12.31, use class L{HausdorffCosineLaw} with C{B{corr}=2}\r\n        '''\r\n        def __init__(self, point1s, **seed_name__radius_wrap):\r\n            deprecated_class(self.__class__)\r\n            HausdorffCosineLaw.__init__(self, point1s, corr=2, **seed_name__radius_wrap)\r\n\r\n    return HausdorffCosineForsytheAndoyerLambert(point1s, **kwds)\r\n\r\n\r\ndef HeightIDW(knots, **kwds):  # PYCHOK no cover\r\n    '''DEPRECATED, use class L{HeightIDWeuclidean}.'''\r\n    HeightIDWeuclidean = _MODS.heights.HeightIDWeuclidean\r\n\r\n    class HeightIDW(HeightIDWeuclidean):\r\n        '''DEPRECATED, use class L{HeightIDWeuclidean}.'''\r\n        def __init__(self, knots, adjust=True, beta=2, name=NN):\r\n            deprecated_class(self.__class__)\r\n            HeightIDWeuclidean.__init__(self, knots, adjust=adjust, beta=beta, name=name)\r\n\r\n    return HeightIDW(knots, **kwds)\r\n\r\n\r\ndef HeightIDW2(knots, **kwds):  # PYCHOK no cover\r\n    '''DEPRECATED, use class L{HeightIDWequirectangular}.'''\r\n    HeightIDWequirectangular = _MODS.heights.HeightIDWequirectangular\r\n\r\n    class HeightIDW2(HeightIDWequirectangular):\r\n        '''DEPRECATED, use class L{HeightIDWequirectangular}.'''\r\n        def __init__(self, knots, adjust=True, wrap=False, name=NN):\r\n            deprecated_class(self.__class__)\r\n            HeightIDWequirectangular.__init__(self, knots, adjust=adjust, wrap=wrap, name=name)\r\n\r\n    return HeightIDW2(knots, **kwds)\r\n\r\n\r\ndef HeightIDW3(knots, **kwds):  # PYCHOK no cover\r\n    '''DEPRECATED, use class L{HeightIDWhaversine}.'''\r\n    HeightIDWhaversine = _MODS.heights.HeightIDWhaversine\r\n\r\n    class HeightIDW3(HeightIDWhaversine):\r\n        '''DEPRECATED, use class L{HeightIDWhaversine}.\r\n        '''\r\n        def __init__(self, knots, beta=2, wrap=False, name=NN):\r\n            deprecated_class(self.__class__)\r\n            HeightIDWhaversine.__init__(self, knots, beta=beta, wrap=wrap, name=name)\r\n\r\n    return HeightIDW3(knots, **kwds)\r\n\r\n\r\ndef HeightIDWcosineAndoyerLambert(knots, **kwds):  # PYCHOK no cover\r\n    '''DEPRECATED on 2024.12.31, use class L{HeightIDWcosineLaw} with C{B{corr}=1}.'''\r\n    HeightIDWcosineLaw = _MODS.heights.HeightIDWcosineLaw\r\n\r\n    class HeightIDWcosineAndoyerLambert(HeightIDWcosineLaw):\r\n        '''DEPRECATED on 2024.12.31, use class L{HeightIDWcosineLaw} with C{B{corr}=1}.\r\n        '''\r\n        def __init__(self, knots, **beta_name__datum_wrap):\r\n            deprecated_class(self.__class__)\r\n            HeightIDWcosineLaw.__init__(self, knots, corr=1, **beta_name__datum_wrap)\r\n\r\n    return HeightIDWcosineAndoyerLambert(knots, **kwds)\r\n\r\n\r\ndef HeightIDWcosineForsytheAndoyerLambert(knots, **kwds):  # PYCHOK no cover\r\n    '''DEPRECATED on 2024.12.31, use class L{HeightIDWcosineLaw} with C{B{corr}=2}.'''\r\n    HeightIDWcosineLaw = _MODS.heights.HeightIDWcosineLaw\r\n\r\n    class HeightIDWcosineForsytheAndoyerLambert(HeightIDWcosineLaw):\r\n        '''DEPRECATED on 2024.12.31, use class L{HeightIDWcosineLaw} with C{B{corr}=2}.\r\n        '''\r\n        def __init__(self, knots, **beta_name__datum_wrap):\r\n            deprecated_class(self.__class__)\r\n            HeightIDWcosineLaw.__init__(self, knots, corr=2, **beta_name__datum_wrap)\r\n\r\n    return HeightIDWcosineForsytheAndoyerLambert(knots, **kwds)\r\n\r\n\r\nclass JacobiConformal(Conformal):\r\n    '''DEPRECATED on 2025.10.25, use class L{Conformal}.'''\r\n    def __init__(self, *args, **kwds):  # PYCHOK no cover\r\n        deprecated_class(self.__class__)\r\n        Conformal.__init__(self, *args, **kwds)\r\n\r\n\r\nclass JacobiConformalSpherical(ConformalSphere):\r\n    '''DEPRECATED on 2025.10.25, use class L{ConformalSphere}.'''\r\n    def __init__(self, *args, **kwds):  # PYCHOK no cover\r\n        deprecated_class(self.__class__)\r\n        ConformalSphere.__init__(self, *args, **kwds)\r\n\r\n\r\nclass Jacobi2Tuple(Conformal2Tuple):\r\n    '''DEPRECATED on 25.11.11, use class L{Conformal2Tuple}.\r\n    '''\r\n    def __new__(cls, *args, **kwds):\r\n        deprecated_class(cls)\r\n        return Conformal2Tuple.__new__(cls, *args, **kwds)\r\n\r\n\r\nclass Lam_(Lamd):\r\n    '''DEPRECATED on 2024.06.15, use class L{Lamd}.'''\r\n    def __init__(self, *args, **kwds):  # PYCHOK no cover\r\n        deprecated_class(self.__class__)\r\n        Lamd.__init__(self, *args, **kwds)\r\n\r\n\r\nclass LatLonExact4Tuple(_Deprecated_NamedTuple):\r\n    '''DEPRECATED, use class L{Reverse4Tuple}, item C{gamma} for C{convergence}.'''\r\n    _Names_ = _reNames(_Reverse4Tuple._Names_, _gamma_, _convergence_)\r\n    _Units_ =          _Reverse4Tuple._Units_\r\n\r\n\r\nclass NearestOn4Tuple(_Deprecated_NamedTuple):  # PYCHOK no cover\r\n    '''DEPRECATED on 2023.10.10, see methods L{RhumbLine.nearestOn4} and L{RhumbLineAux.nearestOn4}.'''\r\n    _Names_ = (_lat_, _lon_, _distance_, 'normal')  # s12, azi02\r\n    _Units_ = ( Lat,   Lon,   Meter,      Bearing)\r\n\r\n\r\nclass Phi_(Phid):\r\n    '''DEPRECATED on 2024.06.15, use class L{Phid}.'''\r\n    def __init__(self, *args, **kwds):  # PYCHOK no cover\r\n        deprecated_class(self.__class__)\r\n        Phid.__init__(self, *args, **kwds)\r\n\r\n\r\nclass Ned3Tuple(_Deprecated_NamedTuple):  # was in .ellipsoidalNvector\r\n    '''DEPRECATED, use class L{Ned4Tuple}, ignoring item C{ltp}.'''\r\n    assert _Ned4Tuple._Names_.index(_ltp_) == 3\r\n    _Names_ = _Ned4Tuple._Names_[:3]\r\n    _Units_ = _Ned4Tuple._Units_[:3]\r\n\r\n\r\ndef RefFrameError(*args, **kwds):  # PYCHOK no cover\r\n    '''DEPRECATED, use class L{TRFError}.'''\r\n    TRFError = _MODS.errors.TRFError\r\n\r\n    class RefFrameError(TRFError):\r\n        '''DEPRECATED, use class L{TRFError}.\r\n        '''\r\n        def __init__(self, *name_value, **txt_name_values):\r\n            deprecated_class(self.__class__)\r\n            TRFError.__init__(self, *name_value, **txt_name_values)\r\n\r\n    return RefFrameError(*args, **kwds)\r\n\r\n\r\nclass Rhumb7Tuple(_Deprecated_NamedTuple):\r\n    '''DEPRECATED, use class L{Rhumb8Tuple}, ignoring item C{a12}.'''\r\n    assert _Rhumb8Tuple._Names_.index(_a12_) == 7\r\n    _Names_ = _Rhumb8Tuple._Names_[:7]\r\n    _Units_ = _Rhumb8Tuple._Units_[:7]\r\n\r\n    @deprecated_method\r\n    def toDirect9Tuple(self, **kwds):  # PYCHOK no cover\r\n        return self.toRhumb8Tuple().toDirect9Tuple(self, **kwds)\r\n\r\n    @deprecated_method\r\n    def toGDict(self, **kwds):  # PYCHOK no cover\r\n        return self.toRhumb8Tuple().toGDict(**kwds)\r\n\r\n    @deprecated_method\r\n    def toInverse10Tuple(self, **kwds):  # PYCHOK no cover\r\n        return self.toRhumb8Tuple().toInverse10Tuple(self, **kwds)\r\n\r\n    @deprecated_method\r\n    def toRhumb8Tuple(self, dflt=NAN):  # PYCHOK no cover\r\n        return _Rhumb8Tuple(self + (dflt,), name=self.name)\r\n\r\n    def _to7Tuple(self):  # PYCHOK no cover\r\n        '''(INTERNAL) see L{Rhumb8Tuple._to7Tuple}.\r\n        '''\r\n        return self\r\n\r\n\r\nclass RhumbOrder2Tuple(_Deprecated_NamedTuple, _GTuple):\r\n    '''DEPRECATED, see deprecated method L{Rhumb.orders}.'''\r\n    # 2-Tuple C{(RAorder, TMorder)} with a I{Rhumb Area} and\r\n    # I{Transverse Mercator} order, both C{int}.\r\n    _Names_ = ('RAorder', 'TMorder')\r\n    _Units_ = ( Int,       Int)\r\n\r\n\r\nclass Transform7Tuple(_Deprecated_NamedTuple):  # PYCHOK no cover\r\n    '''DEPRECATED on 2024.02.02, use class L{TRFXform7Tuple}, I{without} keyword arguments.'''\r\n    _Names_ = _TRFXform7Tuple._Names_\r\n    _Units_ = _TRFXform7Tuple._Units_\r\n\r\n    def __new__(cls, tx=0, ty=0, tz=0, s=0,\r\n                     sx=0, sy=0, sz=0, name=NN):\r\n        t = map(_float, (tx, ty, tz, s, sx, sy, sz))\r\n        return _Deprecated_NamedTuple.__new__(cls, *t, name=name)\r\n\r\nHelmert7Tuple = Transform7Tuple  # PYCHOK likewise\r\n\r\n\r\nclass TriAngle4Tuple(_Deprecated_NamedTuple):\r\n    '''DEPRECATED on 2023.09.14, use class L{TriAngle5Tuple}, ignoring item C{area}.'''\r\n    assert _TriAngle5Tuple._Names_.index(_area_) == 4\r\n    _Names_ = _TriAngle5Tuple._Names_[:4]\r\n    _Units_ = _TriAngle5Tuple._Units_[:4]\r\n\r\n\r\nclass UtmUps4Tuple(_Deprecated_NamedTuple):  # PYCHOK no cover\r\n    '''DEPRECATED and OBSOLETE, expect a L{UtmUps5Tuple} from method C{pygeodesy.Mgrs.toUtm(utm=None)}.\r\n\r\n       4-Tuple C{(zone, hemipole, easting, northing)} with as C{zone} B{C{str}} and no C{band}.\r\n    '''\r\n    assert _UtmUps5Tuple._Names_.index(_band_) == 4\r\n    _Names_ =                      _UtmUps5Tuple._Names_[ :4]  # band\r\n    _Units_ = (_Deprecated_Str,) + _UtmUps5Tuple._Units_[1:4]\r\n\r\n\r\nclass XDist(ADict):\r\n    '''DEPRECATED on 2024.07.02, use class L{ADict}.'''\r\n    def __init__(self, *args, **kwds):  # PYCHOK no cover\r\n        deprecated_class(self.__class__)\r\n        ADict.__init__(self, *args, **kwds)\r\n\r\n\r\n__all__ += _ALL_DOCS(_Deprecated_NamedTuple)\r\n\r\n# **) MIT License\r\n#\r\n# Copyright (C) 2018-2026 -- mrJean1 at Gmail -- All Rights Reserved.\r\n#\r\n# Permission is hereby granted, free of charge, to any person obtaining a\r\n# copy of this software and associated documentation files (the \"Software\"),\r\n# to deal in the Software without restriction, including without limitation\r\n# the rights to use, copy, modify, merge, publish, distribute, sublicense,\r\n# and/or sell copies of the Software, and to permit persons to whom the\r\n# Software is furnished to do so, subject to the following conditions:\r\n#\r\n# The above copyright notice and this permission notice shall be included\r\n# in all copies or substantial portions of the Software.\r\n#\r\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\r\n# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r\n# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL\r\n# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR\r\n# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\r\n# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\r\n# OTHER DEALINGS IN THE SOFTWARE.\r\n"
  },
  {
    "path": "pygeodesy/deprecated/consterns.py",
    "content": "\r\n# -*- coding: utf-8 -*-\r\n\r\nu'''DEPRECATED constants, interns and singletons kept for backward compatibility.\r\n'''\r\n\r\nfrom pygeodesy.constants import EPS_2, MANT_DIG, _1_0\r\nfrom pygeodesy.ellipses import Ellipse\r\nfrom pygeodesy.lazily import _ALL_DEPRECATED, _FOR_DOCS\r\nfrom pygeodesy.props import deprecated_method\r\nfrom pygeodesy.units import Float, Int, Str\r\n\r\n__all__ = _ALL_DEPRECATED.deprecated_consterns\r\n__version__ = '26.02.12'\r\n\r\n\r\nclass _Deprecated_Float(Float):\r\n    '''DEPRECATED on 2023.09.12, I{don't use}.'''\r\n    pass\r\n\r\n\r\nclass _Deprecated_Int(Int):\r\n    '''DEPRECATED on 2023.09.12, I{don't use}.'''\r\n    pass\r\n\r\n\r\nclass _Deprecated_Str(Str):\r\n    '''DEPRECATED on 2023.09.12, I{don't use}.'''\r\n    pass\r\n\r\n\r\nclass Elliperim(object):\r\n    '''DEPRECATED on 2026.02.06, use class L{Ellipse}.'''\r\n\r\n    @deprecated_method\r\n    def AGM(self, a, b, **unused):  # PYCHOK no cover\r\n        '''DEPRECATED on 2026.02.12, use property L{Ellipse}{C(a, b).perimeterAGM}.'''\r\n        return Ellipse(a, b).perimeterAGM\r\n\r\n    @deprecated_method\r\n    def Arc43(self, a, b):  # PYCHOK no cover\r\n        '''DEPRECATED on 2026.02.12, use property L{Ellipse}{C(a, b).perimeter4Arc3}.'''\r\n        return Ellipse(a, b).perimeter4Arc3\r\n\r\n    @deprecated_method\r\n    def E2k(self, a, b):  # PYCHOK no cover\r\n        '''DEPRECATED on 2026.02.12, use property L{Ellipse}{C(a, b).perimeter2k}.'''\r\n        return Ellipse(a, b).perimeter2k\r\n\r\n    @deprecated_method\r\n    def e2k(self, a, b, **unused):  # PYCHOK no cover\r\n        '''DEPRECATED on 2026.02.12, use property L{Ellipse}{C(a, b).perimeter2k_}.'''\r\n        return Ellipse(a, b).perimeter2k_\r\n\r\n    @deprecated_method\r\n    def GK(self, a, b):  # PYCHOK no cover\r\n        '''DEPRECATED on 2026.02.12, use property L{Ellipse}{C(a, b).perimeterGK}.'''\r\n        return Ellipse(a, b).perimeterGK\r\n\r\n    @deprecated_method\r\n    def HG(self, a, b, **unused):  # PYCHOK no cover\r\n        '''DEPRECATED on 2026.02.12, use property L{Ellipse}{C(a, b).perimeterHGK}.'''\r\n        return Ellipse(a, b).perimeterHGK\r\n\r\n    @deprecated_method\r\n    def R2(self, a, b):  # PYCHOK no cover\r\n        '''DEPRECATED on 2026.02.12, use property L{Ellipse}{C(a, b).perimeter2R}.'''\r\n        return Ellipse(a, b).perimeter2R\r\n\r\nif not _FOR_DOCS:  # PYCHOK force epydoc\r\n    Elliperim = Elliperim()  # singleton\r\ndel _FOR_DOCS\r\n\r\nEPS1_2 = _Deprecated_Float(EPS1_2=_1_0 - EPS_2)\r\nMANTIS = _Deprecated_Int(MANTIS=MANT_DIG)\r\nOK     = _Deprecated_Str(OK='OK')\r\n\r\n# **) MIT License\r\n#\r\n# Copyright (C) 2018-2026 -- mrJean1 at Gmail -- All Rights Reserved.\r\n#\r\n# Permission is hereby granted, free of charge, to any person obtaining a\r\n# copy of this software and associated documentation files (the \"Software\"),\r\n# to deal in the Software without restriction, including without limitation\r\n# the rights to use, copy, modify, merge, publish, distribute, sublicense,\r\n# and/or sell copies of the Software, and to permit persons to whom the\r\n# Software is furnished to do so, subject to the following conditions:\r\n#\r\n# The above copyright notice and this permission notice shall be included\r\n# in all copies or substantial portions of the Software.\r\n#\r\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\r\n# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r\n# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL\r\n# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR\r\n# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\r\n# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\r\n# OTHER DEALINGS IN THE SOFTWARE.\r\n"
  },
  {
    "path": "pygeodesy/deprecated/datum.py",
    "content": "\n# -*- coding: utf-8 -*-\n\nu'''DEPRECATED on 2022.09.12, use module L{pygeodesy.datums} or L{pygeodesy.ellipsoids} instead.\n'''\n\n# XXX only the items previously public\nfrom pygeodesy.constants import R_FM, R_KM, R_M, R_MA, R_MB, R_NM, R_SM, R_VM\nfrom pygeodesy.datums import Datum, Datums, Transform, Transforms\nfrom pygeodesy.ellipsoids import Ellipsoid, Ellipsoids, Curvature2Tuple\nfrom pygeodesy.lazily import _ALL_DEPRECATED, _ALL_OTHER\n\n__all__ = _ALL_DEPRECATED.deprecated_datum\n__version__ = '24.12.31'\n\nassert _ALL_OTHER(Curvature2Tuple, Datum,  Ellipsoid,  Transform) + tuple(_.name for _ in\n                                  (Datums, Ellipsoids, Transforms,\n                                   R_FM, R_KM, R_M, R_MA, R_MB, R_NM, R_SM, R_VM)) == __all__\n\n# **) MIT License\n#\n# Copyright (C) 2016-2026 -- mrJean1 at Gmail -- All Rights Reserved.\n#\n# Permission is hereby granted, free of charge, to any person obtaining a\n# copy of this software and associated documentation files (the \"Software\"),\n# to deal in the Software without restriction, including without limitation\n# the rights to use, copy, modify, merge, publish, distribute, sublicense,\n# and/or sell copies of the Software, and to permit persons to whom the\n# Software is furnished to do so, subject to the following conditions:\n#\n# The above copyright notice and this permission notice shall be included\n# in all copies or substantial portions of the Software.\n#\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL\n# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR\n# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\n# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n# OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "pygeodesy/deprecated/functions.py",
    "content": "\r\n# -*- coding: utf-8 -*-\r\n\r\nu'''DEPRECATED functions kept for backward compatibility.\r\n'''\r\n\r\n# from pygeodesy.basics import copysign0  # _MODS_\r\nfrom pygeodesy.constants import EPS, R_M, float0_\r\nfrom pygeodesy.deprecated.classes import ClipCS3Tuple, TriAngle4Tuple, _TriAngle5Tuple\r\n# from pygeodesy.ellipses import Ellipse  # _MODS\r\nfrom pygeodesy.interns import NN, _area_, _COMMASPACE_, _negative_, \\\r\n                             _scalar_, _sep_, _SPACE_, _UNDER_, _value_\r\nfrom pygeodesy.lazily import _ALL_DEPRECATED, _ALL_MODS as _MODS\r\nfrom pygeodesy.props import deprecated_function\r\n# from pygeodesy.resections import TriAngle5Tuple as _TriAngle5Tuple  # from .classes\r\nfrom pygeodesy.units import _1mm, Number_, Scalar_\r\n\r\n__all__ = _ALL_DEPRECATED.deprecated_functions\r\n__version__ = '26.02.12'\r\n\r\n_WGS84 = _UTM = object()\r\n\r\n\r\n@deprecated_function\r\ndef anStr(name, OKd='._-', sub=_UNDER_):  # PYCHOK no cover\r\n    '''DEPRECATED, use function L{pygeodesy.anstr}.'''\r\n    return _MODS.streprs.anstr(name, OKd=OKd, sub=sub)\r\n\r\n\r\n@deprecated_function\r\ndef areaof(points, adjust=True, radius=R_M, wrap=True):  # PYCHOK no cover\r\n    '''DEPRECATED, use function L{pygeodesy.areaOf}.'''\r\n    return _MODS.points.areaOf(points, adjust=adjust, radius=radius, wrap=wrap)\r\n\r\n\r\n@deprecated_function\r\ndef atand(x):  # PYCHOK no cover\r\n    '''DEPRECATED on 2023.09.28, use function L{pygeodesy.atan1d}.'''\r\n    return _MODS.utily.atan1d(x)\r\n\r\n\r\n@deprecated_function\r\ndef bounds(points, wrap=True, LatLon=None):  # PYCHOK no cover\r\n    '''DEPRECATED, use function L{pygeodesy.boundsOf}.\r\n\r\n       @return: 2-Tuple C{(latlonSW, latlonNE)}, each a B{C{LatLon}} or\r\n                4-Tuple C{(latS, lonW, latN, lonE)} if C{B{LatLon} is None}.\r\n    '''\r\n    return tuple(_MODS.points.boundsOf(points, wrap=wrap, LatLon=LatLon))\r\n\r\n\r\n@deprecated_function\r\ndef clipCS3(points, lowerleft, upperright, closed=False, inull=False):  # PYCHOK no cover\r\n    '''DEPRECATED, use function L{pygeodesy.clipCS4}.\r\n\r\n       @return: Yield a L{ClipCS3Tuple}C{(start, end, index)} for each\r\n                edge of the I{clipped} path.\r\n    '''\r\n    for p1, p2, _, j in _MODS.clipy.clipCS4(points, lowerleft, upperright,\r\n                                                    closed=closed, inull=inull):\r\n        yield ClipCS3Tuple(p1, p2, j)\r\n\r\n\r\n@deprecated_function\r\ndef clipDMS(deg, limit):  # PYCHOK no cover\r\n    '''DEPRECATED, use function L{pygeodesy.clipDegrees}.'''\r\n    return _MODS.dms.clipDegrees(deg, limit)\r\n\r\n\r\n@deprecated_function\r\ndef clipStr(bstr, limit=50, white=NN):  # PYCHOK no cover\r\n    '''DEPRECATED, use function L{pygeodesy.clips}.'''\r\n    return _MODS.basics.clips(bstr, limit=limit, white=white)\r\n\r\n\r\n@deprecated_function\r\ndef collins(pointA, pointB, pointC, alpha, beta, **useZ_Clas_and_kwds):\r\n    '''DEPRECATED, use function L{pygeodesy.collins5}.'''\r\n    return _MODS.resections.collins5(pointA, pointB, pointC, alpha, beta,\r\n                                   **useZ_Clas_and_kwds)\r\n\r\n\r\n@deprecated_function\r\ndef copysign(x, y):  # PYCHOK no cover\r\n    '''DEPRECATED, use function L{pygeodesy.copysign0}.'''\r\n    return _MODS.basics.copysign0(x, y)\r\n\r\n\r\n@deprecated_function\r\ndef cosineAndoyerLambert(lat1, lon1, lat2, lon2, **datum_wrap):\r\n    '''DEPRECATED on 2024.12.31, use function L{pygeodesy.cosineLaw} with C{B{corr}=1}.'''\r\n    return _MODS.formy.cosineLaw(lat1, lon1, lat2, lon2, corr=1, **datum_wrap)\r\n\r\n\r\n@deprecated_function\r\ndef cosineAndoyerLambert_(phi2, phi1, lam21, **datum):\r\n    '''DEPRECATED on 2024.12.31, use function L{pygeodesy.cosineLaw_} with C{B{corr}=1}.'''\r\n    return _MODS.formy.cosineLaw_(phi2, phi1, lam21, corr=1, **datum)\r\n\r\n\r\n@deprecated_function\r\ndef cosineForsytheAndoyerLambert(lat1, lon1, lat2, lon2, **datum_wrap):\r\n    '''DEPRECATED on 2024.12.31, use function L{pygeodesy.cosineLaw} with C{B{corr}=2}.'''\r\n    return _MODS.formy.cosineLaw(lat1, lon1, lat2, lon2, corr=2, **datum_wrap)\r\n\r\n\r\n@deprecated_function\r\ndef cosineForsytheAndoyerLambert_(phi2, phi1, lam21, **datum):\r\n    '''DEPRECATED on 2024.12.31, use function L{pygeodesy.cosineLaw_} with C{B{corr}=2}.'''\r\n    return _MODS.formy.cosineLaw_(phi2, phi1, lam21, corr=2, **datum)\r\n\r\n\r\n@deprecated_function\r\ndef decodeEPSG2(arg):  # PYCHOK no cover\r\n    '''DEPRECATED, use function L{epsg.decode2}.\r\n\r\n       @return: 2-Tuple C{(zone, hemipole)}\r\n    '''\r\n    return tuple(_MODS.epsg.decode2(arg))\r\n\r\n\r\n@deprecated_function\r\ndef elliperim(a, b, *deg2_1):  # PYCHOK no cover\r\n    '''DEPRECATED on 2026.02.12, use method L{pygeodesy.Ellipse.arc} or property L{pygeodesy.Ellipse.perimeter2k_}.'''\r\n    E = _MODS.ellipses.Ellipse(a, b)\r\n    return E.arc(*deg2_1) if deg2_1 else E.perimeter2k_\r\n\r\n\r\n@deprecated_function\r\ndef elliperim_(a, b, *rad2_1):  # PYCHOK no cover\r\n    '''DEPRECATED on 2026.02.12, use method L{pygeodesy.Ellipse.arc_} or property L{pygeodesy.Ellipse.perimeter2k_}.'''\r\n    E = _MODS.ellipses.Ellipse(a, b)\r\n    return E.arc_(*rad2_1) if rad2_1 else E.perimeter2k_\r\n\r\n\r\n@deprecated_function\r\ndef encodeEPSG(zone, hemipole=NN, band=NN):  # PYCHOK no cover\r\n    '''DEPRECATED, use function L{epsg.encode}.\r\n\r\n       @return: C{EPSG} code (C{int}).\r\n    '''\r\n    return int(_MODS.epsg.encode(zone, hemipole=hemipole, band=band))\r\n\r\n\r\n@deprecated_function\r\ndef enStr2(easting, northing, prec, *extras):  # PYCHOK no cover\r\n    '''DEPRECATED, use function L{pygeodesy.enstr2}.'''\r\n    return _MODS.streprs.enstr2(easting, northing, (int(prec) // 2 - 5), *extras)\r\n\r\n\r\n@deprecated_function\r\ndef equirectangular_(lat1, lon1, lat2, lon2, **options):  # PYCHOK no cover\r\n    '''DEPRECATED on 2024.05.25, use function L{pygeodesy.equirectangular4}.'''\r\n    return _MODS.formy.equirectangular4(lat1, lon1, lat2, lon2, **options)\r\n\r\n\r\n@deprecated_function\r\ndef equirectangular3(lat1, lon1, lat2, lon2, **options):  # PYCHOK no cover\r\n    '''DEPRECATED, use function L{pygeodesy.equirectangular4}.\r\n\r\n       @return: 3-Tuple C{(distance2, delta_lat, delta_lon)}.\r\n    '''\r\n    return tuple(_MODS.formy.equirectangular4(lat1, lon1, lat2, lon2, **options)[:3])\r\n\r\n\r\n@deprecated_function\r\ndef excessAbc(A, b, c):  # PYCHOK no cover\r\n    '''DEPRECATED on 2023.04.04, use function L{pygeodesy.excessAbc_}.'''\r\n    return _MODS.formy.excessAbc_(A, b, c)\r\n\r\n\r\n@deprecated_function\r\ndef excessGirard(A, B, C):  # PYCHOK no cover\r\n    '''DEPRECATED on 2023.04.04, use function L{pygeodesy.excessGirard_}.'''\r\n    return _MODS.formy.excessGirard_(A, B, C)\r\n\r\n\r\n@deprecated_function\r\ndef excessLHuilier(a, b, c):  # PYCHOK no cover\r\n    '''DEPRECATED on 2023.04.04, use function L{pygeodesy.excessLHuilier_}.'''\r\n    return _MODS.formy.excessLHuilier_(a, b, c)\r\n\r\n\r\n@deprecated_function\r\ndef false2f(value, name=_value_, false=True, Error=ValueError):  # PYCHOK no cover\r\n    '''DEPRECATED, use class L{Easting} or L{Northing}.'''\r\n    return falsed2f(falsed=false, Error=Error, **{name: value})\r\n\r\n\r\n@deprecated_function\r\ndef falsed2f(falsed=True, Error=ValueError, **name_value):  # PYCHOK no cover\r\n    '''DEPRECATED, use class L{Easting} or L{Northing}.\r\n\r\n       Convert a falsed east-/northing to non-negative C{float}.\r\n\r\n       @kwarg falsed: Value includes false origin (C{bool}).\r\n       @kwarg Error: Optional, overriding error (C{Exception}).\r\n       @kwarg name_value: One C{B{name}=value} pair.\r\n\r\n       @return: The value (C{float}).\r\n\r\n       @raise Error: Invalid or negative C{B{name}=value}.\r\n    '''\r\n    t = NN\r\n    if len(name_value) == 1:\r\n        try:\r\n            for f in name_value.values():\r\n                f = float(f)\r\n                if falsed and f < 0:\r\n                    break\r\n                return f\r\n            t = _COMMASPACE_('falsed', _negative_)\r\n        except (TypeError, ValueError) as x:\r\n            t = str(x)\r\n    raise _MODS.errors._InvalidError(Error=Error, txt=t, **name_value)\r\n\r\n\r\n@deprecated_function\r\ndef float0(*xs):  # PYCHOK no cover\r\n    '''DEPRECATED on 2023.04.21, use function L{pygeodesy.float0_}.'''\r\n    return float0_(*xs)\r\n\r\n\r\n@deprecated_function\r\ndef fStr(floats, prec=6, fmt=_MODS.streprs.Fmt.f, ints=False, sep=_COMMASPACE_):  # PYCHOK no cover\r\n    '''DEPRECATED, use function L{fstr}.'''\r\n    return _MODS.streprs.fstr(floats, prec=prec, fmt=fmt, ints=ints, sep=sep)\r\n\r\n\r\n@deprecated_function\r\ndef fStrzs(floatstr):  # PYCHOK no cover\r\n    '''DEPRECATED, use function L{pygeodesy.fstrzs}.'''\r\n    return _MODS.streprs.fstrzs(floatstr)\r\n\r\n\r\n@deprecated_function\r\ndef Fsum2product(*xs, **kwds):\r\n    '''DEPRECATED on 2024.09.19, use L{Fsum}C{(*B{xs}, B{f2product}=True, ...)}.'''\r\n    F = _MODS.fsums.Fsum(**kwds)\r\n    _ = F.f2product(True)\r\n    return F._facc_args(xs, up=False) if xs else F\r\n\r\n\r\n@deprecated_function\r\ndef hypot3(x, y, z):  # PYCHOK no cover\r\n    '''DEPRECATED, use function L{pygeodesy.hypot_}.'''\r\n    return _MODS.fmath.hypot_(x, y, z)\r\n\r\n\r\n@deprecated_function\r\ndef inStr(inst, *args, **kwds):  # PYCHOK no cover\r\n    '''DEPRECATED, use function L{pygeodesy.instr}.'''\r\n    return _MODS.streprs.instr(inst, *args, **kwds)\r\n\r\n\r\n@deprecated_function\r\ndef isenclosedby(point, points, wrap=False):  # PYCHOK no cover\r\n    '''DEPRECATED, use function L{pygeodesy.isenclosedBy}.'''\r\n    return _MODS.points.isenclosedBy(point, points, wrap=wrap)\r\n\r\n\r\n@deprecated_function\r\ndef istuplist(obj, minum=0):  # PYCHOK no cover\r\n    '''DEPRECATED on 2023.03.31, use function L{pygeodesy.islistuple}.'''\r\n    return _MODS.basics.islistuple(obj, minum=minum)\r\n\r\n\r\n@deprecated_function\r\ndef joined(*words, **sep):  # PYCHOK no cover\r\n    '''DEPRECATED, use C{NN(...)}, C{NN.join_} or C{B{sep}.join}.'''\r\n    return sep.get(_sep_, NN).join(map(str, words))\r\n\r\n\r\n@deprecated_function\r\ndef joined_(*words, **sep):  # PYCHOK no cover\r\n    '''DEPRECATED, use C{_SPACE_(...)}, C{_SPACE_.join_} or C{B{sep}.join}, sep=\" \".'''\r\n    return sep.get(_sep_, _SPACE_).join(map(str, words))\r\n\r\n\r\n@deprecated_function\r\ndef nearestOn3(point, points, closed=False, wrap=False, **options):  # PYCHOK no cover\r\n    '''DEPRECATED, use function L{pygeodesy.nearestOn5}.\r\n\r\n       @return: 3-Tuple C{(lat, lon, distance)}\r\n    '''\r\n    return tuple(_MODS.points.nearestOn5(point, points, closed=closed, wrap=wrap, **options)[:3])\r\n\r\n\r\n@deprecated_function\r\ndef nearestOn4(point, points, closed=False, wrap=False, **options):  # PYCHOK no cover\r\n    '''DEPRECATED, use function L{pygeodesy.nearestOn5}.\r\n\r\n       @return: 4-Tuple C{(lat, lon, distance, angle)}\r\n    '''\r\n    return tuple(_MODS.points.nearestOn5(point, points, closed=closed, wrap=wrap, **options)[:4])\r\n\r\n\r\n@deprecated_function\r\ndef parseUTM(strUTM, datum=_WGS84, Utm=_UTM, name=NN):  # PYCHOK no cover\r\n    '''DEPRECATED, use function L{parseUTM5}.\r\n\r\n       @return: The UTM coordinate (B{L{Utm}}) or 4-tuple C{(zone,\r\n                hemisphere, easting, northing)} if C{B{Utm} is None}.\r\n    '''\r\n    d = _MODS.datums.Datums.WGS84 if datum is _WGS84 else datum  # PYCHOK shadows?\r\n    U = _MODS.utm.Utm if Utm is _UTM else Utm\r\n    r = _MODS.utm.parseUTM5(strUTM, datum=d, Utm=U, name=name)\r\n    if isinstance(r, tuple):  # UtmUps5Tuple\r\n        r = r.zone, r.hemipole, r.easting, r.northing  # no band\r\n    return r\r\n\r\n\r\n@deprecated_function\r\ndef perimeterof(points, closed=False, adjust=True, radius=R_M, wrap=True):  # PYCHOK no cover\r\n    '''DEPRECATED, use function L{pygeodesy.perimeterOf}.'''\r\n    return _MODS.points.perimeterOf(points, closed=closed, adjust=adjust, radius=radius, wrap=wrap)\r\n\r\n\r\n@deprecated_function\r\ndef polygon(points, closed=True, base=None):  # PYCHOK no cover\r\n    '''DEPRECATED, use function L{pygeodesy.points2}.'''\r\n    return _MODS.deprecated.bases.points2(points, closed=closed, base=base)\r\n\r\n\r\n@deprecated_function\r\ndef scalar(value, low=EPS, high=1.0, name=_scalar_, Error=ValueError):  # PYCHOK no cover\r\n    '''DEPRECATED, use class L{Number_} or L{Scalar_}.\r\n\r\n       @return: New value (C{float} or C{int} for C{int} B{C{low}}).\r\n\r\n       @raise Error: Invalid B{C{value}}.\r\n    '''\r\n    C_ = Number_ if _MODS.basics.isint(low) else Scalar_\r\n    return C_(value, name=name, Error=Error, low=low, high=high)\r\n\r\n\r\n@deprecated_function\r\ndef simplify2(points, pipe=_1mm, **radius_shortest_indices_options):  # PYCHOK no cover\r\n    '''DEPRECATED, use function L{pygeodesy.simplifyRW}.'''\r\n    return _MODS.simplify.simplifyRW(points, pipe=pipe, **radius_shortest_indices_options)\r\n\r\n\r\n@deprecated_function\r\ndef simplifyRDPm(points, distance=_1mm, **radius_shortest_indices_options):\r\n    '''DEPRECATED on 2024.11.28, use function L{pygeodesy.simplifyRDP}C{(points, modified=True, ...)}.'''\r\n    return _MODS.simplify.simplifyRDP(points, modified=True, distance=distance, **radius_shortest_indices_options)\r\n\r\n\r\n@deprecated_function\r\ndef simplifyVWm(points, area=_1mm, **radius_attr_indices_options):\r\n    '''DEPRECATED on 2024.11.28, use function L{pygeodesy.simplifyVW}C{(points, modified=True, ...)}.'''\r\n    return _MODS.simplify.simplifyVW(points, modified=True, area=area, **radius_attr_indices_options)\r\n\r\n\r\n@deprecated_function\r\ndef tienstra(pointA, pointB, pointC, alpha, **beta_gamma_useZ_Clas_and_kwds):\r\n    '''DEPRECATED, use function L{pygeodesy.tienstra7}.'''\r\n    return _MODS.resections.tienstra7(pointA, pointB, pointC, alpha, **beta_gamma_useZ_Clas_and_kwds)\r\n\r\n\r\n@deprecated_function\r\ndef toUtm(latlon, lon=None, datum=None, Utm=_UTM, cmoff=True, name=NN):  # PYCHOK no cover\r\n    '''DEPRECATED, use function L{pygeodesy.toUtm8}.\r\n\r\n       @return: The UTM coordinate (B{C{Utm}}) or a 6-tuple C{(zone, easting, northing,\r\n                band, convergence, scale)} if C{B{Utm} is None} or C{B{cmoff} is False}.\r\n    '''\r\n    U = _MODS.utm.Utm if Utm is _UTM else Utm\r\n    r = _MODS.utm.toUtm8(latlon, lon=lon, datum=datum, Utm=U, name=name, falsed=cmoff)\r\n    if isinstance(r, tuple):  # UtmUps8Tuple\r\n        # no hemisphere/pole and datum\r\n        r = r.zone, r.easting, r.northing, r.band, r.gamma, r.scale\r\n    return r\r\n\r\n\r\n# @deprecated_function\r\n# def trfTransforms(reframe, epoch, reframe2, epoch2):\r\n#     '''DEPRECATED on 2024.02.02, use function L{trfTransform0}C{(reframe, reframe2, epoch=None, epoch2=None)}.\r\n#\r\n#        @return: A 0-, 1- or 2-tuple of Helmert L{Transform}s or C{None} if no conversion exists.\r\n#     '''\r\n#     t = _MODS.trf.trfTransform0(reframe, reframe2, epoch=epoch, epoch2=epoch2)\r\n#     return (t,) if t else t\r\n\r\n\r\n@deprecated_function\r\ndef triAngle4(a, b, c):\r\n    '''DEPRECATED on 2023.09.14, use function L{pygeodesy.triAngle5}.\r\n\r\n       @return: A I{DEPRECATED} L{TriAngle4Tuple}C{(radA, radB, radC, rIn)}.\r\n    '''\r\n    assert _TriAngle5Tuple._Names_.index(_area_) == 4\r\n    return  TriAngle4Tuple(_MODS.resections.triAngle5(a, b, c)[:4])\r\n\r\n\r\n@deprecated_function\r\ndef unsign0(x):  # PYCHOK no cover\r\n    '''DEPRECATED, use function L{pygeodesy.unsigned0}.'''\r\n    return _MODS.basics.unsigned0(x)\r\n\r\n\r\n@deprecated_function\r\ndef unStr(name, *args, **kwds):  # PYCHOK no cover\r\n    '''DEPRECATED, use function L{pygeodesy.unstr}.'''\r\n    return _MODS.streprs.unstr(name, *args, **kwds)\r\n\r\n\r\n@deprecated_function\r\ndef utmZoneBand2(lat, lon):  # PYCHOK no cover\r\n    '''DEPRECATED, use function L{pygeodesy.utmZoneBand5}.\r\n\r\n       @return: 2-Tuple C{(zone, band)}.\r\n    '''\r\n    r = _MODS.utm.utmZoneBand5(lat, lon)  # UtmUpsLatLon5Tuple\r\n    return r.zone, r.band\r\n\r\n# **) MIT License\r\n#\r\n# Copyright (C) 2018-2026 -- mrJean1 at Gmail -- All Rights Reserved.\r\n#\r\n# Permission is hereby granted, free of charge, to any person obtaining a\r\n# copy of this software and associated documentation files (the \"Software\"),\r\n# to deal in the Software without restriction, including without limitation\r\n# the rights to use, copy, modify, merge, publish, distribute, sublicense,\r\n# and/or sell copies of the Software, and to permit persons to whom the\r\n# Software is furnished to do so, subject to the following conditions:\r\n#\r\n# The above copyright notice and this permission notice shall be included\r\n# in all copies or substantial portions of the Software.\r\n#\r\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\r\n# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r\n# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL\r\n# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR\r\n# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\r\n# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\r\n# OTHER DEALINGS IN THE SOFTWARE.\r\n"
  },
  {
    "path": "pygeodesy/deprecated/nvector.py",
    "content": "\n# -*- coding: utf-8 -*-\n\nu'''DEPRECATED on 2021.05.20, use (INTERNAL) module L{pygeodesy.nvectorBase} instead.\n'''\n\n# from pygeodesy.interns import NN  # from .lazily\nfrom pygeodesy.lazily import _ALL_DEPRECATED, _ALL_OTHER,  NN\nfrom pygeodesy.nvectorBase import LatLonNvectorBase, NorthPole, NvectorBase, \\\n                                                     SouthPole, sumOf\nfrom pygeodesy.props import deprecated_class\n\n__all__ = _ALL_DEPRECATED.deprecated_nvector\n__version__ = '23.11.26'\n\n\nclass Nvector(NvectorBase):  # PYCHOK no cover\n    '''DEPRECATED on 2021.05.20, see (INTERNAL) class L{pygeodesy.nvectorBase.NvectorBase}.\n    '''\n    def __init__(self, x, y=None, z=None, h=0, ll=None, datum=None, name=NN):\n        deprecated_class(self.__class__)\n        NvectorBase.__init__(self, x, y=y, z=z, h=h, ll=ll, datum=datum, name=name)\n\n\nassert (_ALL_OTHER(LatLonNvectorBase, Nvector, sumOf) +\n                  (NorthPole.name, SouthPole.name)) == __all__\n\n# **) MIT License\n#\n# Copyright (C) 2016-2026 -- mrJean1 at Gmail -- All Rights Reserved.\n#\n# Permission is hereby granted, free of charge, to any person obtaining a\n# copy of this software and associated documentation files (the \"Software\"),\n# to deal in the Software without restriction, including without limitation\n# the rights to use, copy, modify, merge, publish, distribute, sublicense,\n# and/or sell copies of the Software, and to permit persons to whom the\n# Software is furnished to do so, subject to the following conditions:\n#\n# The above copyright notice and this permission notice shall be included\n# in all copies or substantial portions of the Software.\n#\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL\n# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR\n# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\n# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n# OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "pygeodesy/deprecated/rhumbBase.py",
    "content": "\n# -*- coding: utf-8 -*-\n\nu'''DEPRECATED on 2023.11.26, use module L{pygeodesy.rhumb.bases} instead.\n'''\n\nfrom pygeodesy.rhumb.bases import *  # noqa: F403\n\n__all__ = ()  # _ALL_LAZY.rhumb._bases\n__version__ = '25.05.12'\n\n# **) MIT License\n#\n# Copyright (C) 2016-2026 -- mrJean1 at Gmail -- All Rights Reserved.\n#\n# Permission is hereby granted, free of charge, to any person obtaining a\n# copy of this software and associated documentation files (the \"Software\"),\n# to deal in the Software without restriction, including without limitation\n# the rights to use, copy, modify, merge, publish, distribute, sublicense,\n# and/or sell copies of the Software, and to permit persons to whom the\n# Software is furnished to do so, subject to the following conditions:\n#\n# The above copyright notice and this permission notice shall be included\n# in all copies or substantial portions of the Software.\n#\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL\n# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR\n# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\n# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n# OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "pygeodesy/deprecated/rhumbaux.py",
    "content": "\n# -*- coding: utf-8 -*-\n\nu'''DEPRECATED on 2023.11.26, use module L{pygeodesy.rhumb.aux_} instead.\n'''\n\nfrom pygeodesy.rhumb.aux_ import *  # noqa: F403\nfrom pygeodesy.lazily import _ALL_LAZY\n\n__all__ = _ALL_LAZY.rhumb_aux_  # attrs NOT DEPRECATED\n__version__ = '25.05.12'\n\n# **) MIT License\n#\n# Copyright (C) 2016-2026 -- mrJean1 at Gmail -- All Rights Reserved.\n#\n# Permission is hereby granted, free of charge, to any person obtaining a\n# copy of this software and associated documentation files (the \"Software\"),\n# to deal in the Software without restriction, including without limitation\n# the rights to use, copy, modify, merge, publish, distribute, sublicense,\n# and/or sell copies of the Software, and to permit persons to whom the\n# Software is furnished to do so, subject to the following conditions:\n#\n# The above copyright notice and this permission notice shall be included\n# in all copies or substantial portions of the Software.\n#\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL\n# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR\n# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\n# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n# OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "pygeodesy/deprecated/rhumbsolve.py",
    "content": "\n# -*- coding: utf-8 -*-\n\nu'''DEPRECATED on 2023.11.26, use module L{pygeodesy.rhumb.solve} instead.\n'''\n\nfrom pygeodesy.rhumb.solve import *  # noqa: F403\nfrom pygeodesy.lazily import _ALL_LAZY\n\n__all__ = _ALL_LAZY.rhumb_solve  # attrs NOT DEPRECATED\n__version__ = '25.05.12'\n\n# **) MIT License\n#\n# Copyright (C) 2016-2026 -- mrJean1 at Gmail -- All Rights Reserved.\n#\n# Permission is hereby granted, free of charge, to any person obtaining a\n# copy of this software and associated documentation files (the \"Software\"),\n# to deal in the Software without restriction, including without limitation\n# the rights to use, copy, modify, merge, publish, distribute, sublicense,\n# and/or sell copies of the Software, and to permit persons to whom the\n# Software is furnished to do so, subject to the following conditions:\n#\n# The above copyright notice and this permission notice shall be included\n# in all copies or substantial portions of the Software.\n#\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL\n# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR\n# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\n# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n# OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "pygeodesy/deprecated/rhumbx.py",
    "content": "\n# -*- coding: utf-8 -*-\n\nu'''DEPRECATED on 2023.11.26, use module L{pygeodesy.rhumb.ekx} instead.\n'''\n\nfrom pygeodesy.rhumb.ekx import *  # noqa: F403\nfrom pygeodesy.lazily import _ALL_LAZY\n\n__all__ = _ALL_LAZY.rhumb_ekx  # attrs NOT DEPRECATED\n__version__ = '25.05.12'\n\n# **) MIT License\n#\n# Copyright (C) 2016-2026 -- mrJean1 at Gmail -- All Rights Reserved.\n#\n# Permission is hereby granted, free of charge, to any person obtaining a\n# copy of this software and associated documentation files (the \"Software\"),\n# to deal in the Software without restriction, including without limitation\n# the rights to use, copy, modify, merge, publish, distribute, sublicense,\n# and/or sell copies of the Software, and to permit persons to whom the\n# Software is furnished to do so, subject to the following conditions:\n#\n# The above copyright notice and this permission notice shall be included\n# in all copies or substantial portions of the Software.\n#\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL\n# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR\n# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\n# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n# OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "pygeodesy/dms.py",
    "content": "\n# -*- coding: utf-8 -*-\n\nu'''Parsers and formatters of angles in degrees, minutes and seconds or radians.\n\nFunctions to parse and format bearing, compass, lat- and longitudes in various forms of\ndegrees, minutes and seconds with or without degrees, minute and second symbols plus a\ncompass point suffix, including parsing of C{decimal} and C{sexagecimal} degrees.\n\nSet env variable C{PYGEODESY_FMT_FORM} to any C{F_...} form to override default C{F_DMS}\nformatting of lat- and longitudes or to an empty string to restore the default.\n\nAfter I{(C) Chris Veness 2011-2024} published under the same MIT Licence**, see\nU{Latitude/Longitude<https://www.Movable-Type.co.UK/scripts/latlong.html>} and\nU{Vector-based geodesy<https://www.Movable-Type.co.UK/scripts/latlong-vectors.html>}.\n\n@var F_D:   Format degrees as unsigned \"deg°\" with symbol, plus compass point suffix C{N, S, E} or C{W} (C{str}).\n@var F_DM:  Format degrees as unsigned \"deg°min′\" with symbols, plus suffix (C{str}).\n@var F_DMS: Format degrees as unsigned \"deg°min′sec″\" with symbols, plus suffix (C{str}).\n@var F_DEG: Format degrees as unsigned \"[D]DD\" I{without} symbol, plus suffix (C{str}).\n@var F_MIN: Format degrees as unsigned \"[D]DDMM\" I{without} symbols, plus suffix (C{str}).\n@var F_SEC: Format degrees as unsigned \"[D]DDMMSS\" I{without} symbols, plus suffix (C{str}).\n@var F_D60: Format degrees as unsigned \"[D]DD.MMSS\" C{sexagecimal} I{without} symbols, plus suffix (C{str}).\n@var F__E:  Format degrees as unsigned \"%E\" I{without} symbols, plus suffix (C{str}).\n@var F__F:  Format degrees as unsigned \"%F\" I{without} symbols, plus suffix (C{str}).\n@var F__G:  Format degrees as unsigned \"%G\" I{without} symbols, plus suffix (C{str}).\n@var F_RAD: Convert degrees to radians and format as unsigned \"RR\" with symbol, plus suffix (C{str}).\n\n@var F_D_:   Format degrees as signed \"-/deg°\" with symbol, I{without} suffix (C{str}).\n@var F_DM_:  Format degrees as signed \"-/deg°min′\" with symbols, I{without} suffix (C{str}).\n@var F_DMS_: Format degrees as signed \"-/deg°min′sec″\" with symbols, I{without} suffix (C{str}).\n@var F_DEG_: Format degrees as signed \"-/[D]DD\" I{without} symbol, I{without} suffix (C{str}).\n@var F_MIN_: Format degrees as signed \"-/[D]DDMM\" I{without} symbols, I{without} suffix (C{str}).\n@var F_SEC_: Format degrees as signed \"-/[D]DDMMSS\" I{without} symbols, I{without} suffix (C{str}).\n@var F_D60_: Format degrees as signed \"-/[D]DD.MMSS\" C{sexagecimal} I{without} symbols, I{without} suffix (C{str}).\n@var F__E_:  Format degrees as signed \"-/%E\" I{without} symbols, I{without} suffix (C{str}).\n@var F__F_:  Format degrees as signed \"-/%F\" I{without} symbols, I{without} suffix (C{str}).\n@var F__G_:  Format degrees as signed \"-/%G\" I{without} symbols, I{without} suffix (C{str}).\n@var F_RAD_: Convert degrees to radians and format as signed \"-/RR\" I{without} symbol, I{without} suffix (C{str}).\n\n@var F_D__:   Format degrees as signed \"-/+deg°\" with symbol, I{without} suffix (C{str}).\n@var F_DM__:  Format degrees as signed \"-/+deg°min′\" with symbols, I{without} suffix (C{str}).\n@var F_DMS__: Format degrees as signed \"-/+deg°min′sec″\" with symbols, I{without} suffix (C{str}).\n@var F_DEG__: Format degrees as signed \"-/+[D]DD\" I{without} symbol, I{without} suffix (C{str}).\n@var F_MIN__: Format degrees as signed \"-/+[D]DDMM\" I{without} symbols, without suffix (C{str}).\n@var F_SEC__: Format degrees as signed \"-/+[D]DDMMSS\" I{without} symbols, I{without} suffix (C{str}).\n@var F_D60__: Format degrees as signed \"-/+[D]DD.MMSS\" C{sexagecimal} I{without} symbols, I{without} suffix (C{str}).\n@var F__E__:  Format degrees as signed \"-/+%E\" I{without} symbols, I{without} suffix (C{str}).\n@var F__F__:  Format degrees as signed \"-/+%F\" I{without} symbols, I{without} suffix (C{str}).\n@var F__G__:  Format degrees as signed \"-/+%G\" I{without} symbols, I{without} suffix (C{str}).\n@var F_RAD__: Convert degrees to radians and format as signed \"-/+RR\" I{without} symbol, I{without} suffix (C{str}).\n\n@var S_DEG: Degrees symbol, default C{\"°\"}\n@var S_MIN: Minutes symbol, default C{\"′\"} aka I{PRIME}\n@var S_SEC: Seconds symbol, default C{\"″\"} aka I{DOUBLE_PRIME}\n@var S_RAD: Radians symbol, default C{\"\"} aka L{pygeodesy.NN}\n@var S_DMS: If C{True} include, otherwise cancel all DMS symbols, default C{True}.\n@var S_SEP: Separator between C{deg°|min′|sec″|suffix}, default C{\"\"} aka L{pygeodesy.NN}\n\n@note: In Python 2-, L{S_DEG}, L{S_MIN}, L{S_SEC}, L{S_RAD} and L{S_SEP} may be multi-byte,\n       non-ascii characters and if so, I{not} C{unicode}.\n'''\n\nfrom pygeodesy.basics import copysign0, isLatLon, isodd, issequence, isstr, \\\n                             neg as _neg,  typename  # in .ups\nfrom pygeodesy.constants import _0_0, _0_5, _60_0, _360_0, _3600_0, _umod_360\nfrom pygeodesy.errors import ParseError, RangeError, _TypeError, _ValueError, \\\n                            _parseX, rangerrors, _xError, _xkwds,  _envPYGEODESY\n# from pygeodesy.internals import _envPYGEODESY, typename  # from .errors\nfrom pygeodesy.interns import NN, _COMMA_, _d_, _DASH_, _deg_, _degrees_, _DOT_, \\\n                             _0_, _e_, _E_, _EW_, _f_, _F_, _g_, _MINUS_, _N_, \\\n                             _NE_, _NS_, _NSEW_, _NW_, _PERCENTDOTSTAR_, _PLUS_, \\\n                             _PLUSMINUS_, _QUOTE1_, _QUOTE2_, _radians_, _S_, \\\n                             _SE_, _SPACE_, _SW_, _W_\nfrom pygeodesy.lazily import _ALL_LAZY, _ALL_MODS as _MODS\n# from pygeodesy.namedTuples import LatLon2Tuple  # _MODS\n# from pygeodesy.props import _throwarning  # _MODS\nfrom pygeodesy.streprs import Fmt, fstr, fstrzs, _0wpF\n# from pygeodesy.units import Precision_  # _MODS\n# from pygeodesy.utily import _Wrap  # _MODS\n\nfrom math import fabs, modf, radians\ntry:\n    from string import letters as _LETTERS\nexcept ImportError:  # Python 3+\n    from string import ascii_letters as _LETTERS\n\n__all__ = _ALL_LAZY.dms\n__version__ = '25.08.31'\n\n_beyond_      = 'beyond'\n_deg_min_     = 'deg+min'\n_sexagecimal_ = 'sexagecimal'\n_SEXAGECIMUL  =  1.e4  # sexagecimal C{D.MMSSss} into decimal C{DMMSS.ss}\n\nF_D,   F_DM,   F_DMS,   F_DEG,   F_MIN,   F_SEC,   F_D60,   F__E,   F__F,   F__G,   F_RAD   = _F_s = (\n _d_,   'dm',   'dms',   _deg_,   'min',   'sec',   'd60',    _e_,    _f_,    _g_,   'rad')\nF_D_,  F_DM_,  F_DMS_,  F_DEG_,  F_MIN_,  F_SEC_,  F_D60_,  F__E_,  F__F_,  F__G_,  F_RAD_  = (NN(\n _MINUS_, _) for _ in _F_s)\nF_D__, F_DM__, F_DMS__, F_DEG__, F_MIN__, F_SEC__, F_D60__, F__E__, F__F__, F__G__, F_RAD__ = (NN(\n _PLUS_, _)  for _ in _F_s)\ndel _F_s\n_F_DMS  = _envPYGEODESY('FMT_FORM') or F_DMS\n\n_F_case = {F_D:   F_D,   F_DEG: F_D,   _degrees_: F_D,  # unsigned _F_s\n           F_DM:  F_DM,  F_MIN: F_DM,  _deg_min_: F_DM,\n           F_D60: F_D60, F_RAD: F_RAD, _radians_: F_RAD,\n           F__E:  F__E,  F__F:  F__F,   F__G:     F__G}  # default F_DMS\n_F_prec = {F_D:   6, F_DM:  4, F_DMS: 2,  # default precs\n           F_DEG: 6, F_MIN: 4, F_SEC: 2, F_D60: 0,\n           F__E:  8, F__F:  8, F__G:  8, F_RAD: 5}\n_F_symb = set((F_D, F_DM, F_DMS, _deg_min_))  # == {} pychok -Tb\n\nS_DEG = _DEGREES_ = '°'  # ord() = 176\nS_MIN = _MINUTES_ = '′'  # PRIME\nS_SEC = _SECONDS_ = '″'  # DOUBLE_PRIME\nS_RAD = _RADIANS_ = NN   # PYCHOK radians symbol \"\"\nS_DMS =  True  # include DMS symbols\nS_SEP =  NN    # separator between deg|min|sec|suffix \"\"\nS_NUL =  NN    # empty string, kept INTERNAL\n\n# note: ord(_DEGREES_) == ord('°') == 176, ord('˚') == 730\n_S_norm = {S_DEG: _DEGREES_, '˚': _DEGREES_, '^': _DEGREES_,  # _d_: _DEGREES_,\n           S_MIN: _MINUTES_, '’': _MINUTES_, _QUOTE1_: _MINUTES_,  # _r_: _RADIANS_\n           S_SEC: _SECONDS_, '”': _SECONDS_, _QUOTE2_: _SECONDS_}\n\n_WINDS = (_N_, 'NbE', 'NNE', 'NEbN', _NE_, 'NEbE', 'ENE', 'EbN',\n          _E_, 'EbS', 'ESE', 'SEbE', _SE_, 'SEbS', 'SSE', 'SbE',\n          _S_, 'SbW', 'SSW', 'SWbS', _SW_, 'SWbW', 'WSW', 'WbS',\n          _W_, 'WbN', 'WNW', 'NWbW', _NW_, 'NWbN', 'NNW', 'NbW')\n\n\ndef _D603(sep, s_D=_DOT_, s_M=None, s_S=S_NUL, s_DMS=S_DMS, **unused):\n    '''(INTERNAL) Get the overridden or default pseudo-C{DMS} symbols.\n    '''\n    if s_DMS:\n        M = sep if s_M is None else s_M\n        return s_D, (M or S_NUL), s_S\n    else:  # no overriden symbols\n        return _DOT_, sep, S_NUL\n\n\ndef _DMS3(form, s_D=S_DEG, s_M=S_MIN, s_S=S_SEC, s_DMS=S_DMS, **unused):\n    '''(INTERNAL) Get the overridden or default C{DMS} symbols.\n    '''\n    return (s_D, s_M, s_S) if s_DMS and form in _F_symb else (S_NUL, S_NUL, S_NUL)\n\n\ndef _dms3(d, ddd, p, w):\n    '''(INTERNAL) Format C{d} as (deg, min, sec) C{str}s with leading zeros.\n    '''\n    d =    round(d * _3600_0, p)\n    d, s = divmod(d, _3600_0)\n    m, s = divmod(s, _60_0)\n    return (_0wpF(ddd, 0, d),\n            _0wpF(  2, 0, m),\n            _0wpF(w+2, p, s))\n\n\ndef _DR2(s_D=S_NUL, s_R=S_RAD, **unused):\n    '''(INTERNAL) Get the overridden or default C{D} and C{RAD} symbols.\n    '''\n    return s_D, s_R\n\n\ndef _fstrzs(t, **unused):\n    '''(INTERNAL) Pass-thru version of C{.streprs.fstrzs}.\n    '''\n    return t\n\n\ndef _split3(strDMS, suffix=_NSEW_):\n    '''(INTERNAL) Return sign, stripped B{C{strDMS}} and compass point.\n    '''\n    t = strDMS.strip()\n    s = t[:1]   # sign or digit\n    P = t[-1:]  # compass point or digit or dot\n    t = t.lstrip(_PLUSMINUS_).rstrip(suffix)\n    return s, t.strip(), P\n\n\ndef _toDMS(deg, form, prec, sep, ddd, P, s_D_M_S):  # MCCABE 15 in .units\n    '''(INTERNAL) Convert C{deg} to C{str}, with/-out sign, DMS symbols and/or suffix.\n    '''\n    try:\n        F   = None\n        deg = float(deg)\n\n        f, s = form, form[:1]\n        if s in _PLUSMINUS_:  # signed\n            n = _MINUS_ if deg < 0 else (\n                _PLUS_  if deg > 0 and s == _PLUS_ else NN)\n            P = NN  # no suffix\n            f = f.lstrip(_PLUSMINUS_)\n        else:  # suffixed\n            n = NN\n            if sep and P:  # no sep if no suffix\n                P = NN(sep, P)\n        try:\n            F = _F_case[f]  # .strip()\n        except KeyError:\n            f =  f.lower()  # .strip()\n            F = _F_case.get(f, F_DMS)\n\n        if prec is None:\n            z = p = _F_prec.get(F, 6)\n        else:\n            z = int(prec)\n            p = abs(z)\n        w = p + (1 if p else 0)\n        z = fstrzs if z > 1 else _fstrzs\n        d = fabs(deg)\n\n        if F is F_DMS:  # 'deg+min+sec', default\n            D, M, S = _DMS3(f, **s_D_M_S)\n            d, m, s = _dms3(d, ddd, p, w)\n            t = NN(n, d,  D, sep,\n                      m,  M, sep,\n                    z(s), S, P)\n\n        elif F is F_DM:  # 'deg+min'\n            D, M, _ = _DMS3(f, **s_D_M_S)\n            d, m = divmod(round(d * _60_0, p), _60_0)\n            t = NN(n, _0wpF(ddd, 0, d),  D, sep,\n                    z(_0wpF(w+2, p, m)), M, P)\n\n        elif F is F_D:  # 'deg'\n            D, _, _ = _DMS3(f, **s_D_M_S)\n            t = NN(n, z(_0wpF(w+ddd, p, d)), D, P)\n\n        elif F is F_D60:  # 'deg.MM|SSss|'\n            D, M, S = _D603(sep, **s_D_M_S)\n            d, m, s = _dms3(d, ddd, p, w)\n            t = z(s).split(_DOT_) + [S, P]\n            t = NN(n, d, D, m, M, *t)\n\n        elif F is F_RAD:\n            _, R = _DR2(**s_D_M_S)\n            r = NN(_PERCENTDOTSTAR_, _F_) % (p, radians(d))\n            t = NN(n, z(r), R, P)\n\n        else:  # F in (F__E, F__F, F__G)\n            D, _ = _DR2(**s_D_M_S)\n            d = NN(_PERCENTDOTSTAR_, F) % (p, d)  # XXX f?\n            t = NN(n, z(d, ap1z=F is F__G), D, P)\n\n    except Exception as x:\n        d = {} if F is None else dict(F_=F, P=P)\n        raise _xError(x, deg=deg, form=form, prec=prec, **d)\n\n    return t  # NOT unicode in Python 2-\n\n\ndef bearingDMS(bearing, form=F_D, prec=None, sep=S_SEP, **s_D_M_S):\n    '''Convert bearing to a string (without compass point suffix).\n\n       @arg bearing: Bearing from North (compass C{degrees360}).\n       @kwarg form: Format specifier for B{C{deg}} (C{str} or C{F_...}).\n       @kwarg prec: Number of decimal digits (0..9 or C{None} for default).\n       @kwarg sep: Separator between degrees, minutes, seconds, suffix (C{str}).\n       @kwarg s_D_M_S: Optional keyword arguments to override any or cancel all\n                       DMS symbol suffixes, see function L{pygeodesy.toDMS}.\n\n       @return: Compass degrees per the specified B{C{form}} (C{str}).\n\n       @see: Function L{pygeodesy.toDMS} and its B{Notes} for further details.\n    '''\n    return _toDMS(_umod_360(bearing), form, prec, sep, 1, NN, s_D_M_S)\n\n\ndef _clip(angle, limit, units):\n    '''(INTERNAL) Helper for C{clipDegrees} and C{clipRadians}.\n    '''\n    c = min(limit, max(-limit, angle))\n    if c != angle and rangerrors():\n        t = _SPACE_(fstr(angle, prec=6, ints=True), _beyond_,\n                    copysign0(limit, angle), units)\n        raise RangeError(t, txt=None)\n    return c\n\n\ndef clipDegrees(deg, limit):\n    '''Clip a lat- or longitude to the given range.\n\n       @arg deg: Unclipped lat- or longitude (C{scalar degrees}).\n       @arg limit: Valid C{-/+B{limit}} range (C{degrees}).\n\n       @return: Clipped value (C{degrees}).\n\n       @raise RangeError: If B{C{deg}} outside the valid C{-/+B{limit}} range\n                          and L{rangerrors<pygeodesy.rangerrors>} is C{True}.\n    '''\n    return _clip(deg, limit, _degrees_) if limit and limit > 0 else deg\n\n\ndef clipRadians(rad, limit):\n    '''Clip a lat- or longitude to the given range.\n\n       @arg rad: Unclipped lat- or longitude (C{radians}).\n       @arg limit: Valid C{-/+B{limit}} range (C{radians}).\n\n       @return: Clipped value (C{radians}).\n\n       @raise RangeError: If B{C{rad}} outside the valid C{-/+B{limit}} range\n                          and L{rangerrors<pygeodesy.rangerrors>} is C{True}.\n    '''\n    return _clip(rad, limit, _radians_) if limit and limit > 0 else rad\n\n\ndef compassDMS(bearing, form=F_D, prec=None, sep=S_SEP, **s_D_M_S):\n    '''Convert bearing to a string suffixed with compass point.\n\n       @arg bearing: Bearing from North (compass C{degrees360}).\n       @kwarg form: Format specifier for B{C{deg}} (C{str} or C{F_...}).\n       @kwarg prec: Number of decimal digits (0..9 or C{None} for default).\n       @kwarg sep: Separator between degrees, minutes, seconds, suffix (C{str}).\n       @kwarg s_D_M_S: Optional keyword arguments to override any or cancel all\n                       DMS symbol suffixes, see function L{pygeodesy.toDMS}.\n\n       @return: Compass degrees and point in the specified form (C{str}).\n\n       @see: Function L{pygeodesy.toDMS} and its B{Notes} for further details.\n    '''\n    b = _umod_360(bearing)\n    return _toDMS(b, form, prec, sep, 1, compassPoint(b), s_D_M_S)\n\n\ndef compassPoint(bearing, prec=3):\n    '''Convert a C{bearing} from North to a compass point.\n\n       @arg bearing: Bearing (compass C{degrees360}).\n       @kwarg prec: Precision, number of compass point characters:\n                    1 for cardinal or basic winds,\n                    2 for intercardinal or ordinal or principal winds,\n                    3 for secondary-intercardinal or half-winds or\n                    4 for quarter-winds).\n\n       @return: Compass point (1-, 2-, 3- or 4-letter C{str}).\n\n       @raise ValueError: Invalid B{C{bearing}} or B{C{prec}}.\n\n       @see: U{Dms.compassPoint\n             <https://GitHub.com/ChrisVeness/geodesy/blob/master/dms.js>}\n             and U{Compass rose<https://WikiPedia.org/wiki/Compass_rose>}.\n    '''\n    try:  # like .streprs.enstr2\n        b = _umod_360(bearing)\n        p = _MODS.units.Precision_(prec, low=1, high=4) \\\n             if prec != 3 else int(prec)\n        m =  2 << p\n        w = 32 // m  # if _isin(m, 4, 8, 16, 32)\n        # not round(b), half-even rounding in Python 3+, but\n        # round-away-from-zero as int(b + copysign0(_0_5, b))\n        w *= int(b * m / _360_0 + _0_5) % m\n        return _WINDS[w]\n    except Exception as x:\n        raise _xError(x, bearing=bearing, prec=prec)\n\n\ndef degDMS(deg, prec=6, s_D=S_DEG, s_M=S_MIN, s_S=S_SEC, neg=_MINUS_, pos=NN):\n    '''Convert degrees to a string in degrees, minutes I{or} seconds.\n\n       @arg deg: Value in degrees (C{scalar degrees}).\n       @kwarg prec: Number of decimal digits (0..9 or C{None} for default).\n                    Trailing zero decimals are stripped for C{B{prec}=1}\n                    and above, but kept for negative B{C{prec}}.\n       @kwarg s_D: D symbol for degrees (C{str}).\n       @kwarg s_M: M symbol for minutes (C{str}) or C{\"\"} aka L{pygeodesy.NN}.\n       @kwarg s_S: S symbol for seconds (C{str}) or C{\"\"} aka L{pygeodesy.NN}.\n       @kwarg neg: Optional sign for negative (C{'-'}).\n       @kwarg pos: Optional sign for positive (C{\"\"}) aka L{pygeodesy.NN}.\n\n       @return: I{Either} degrees, minutes I{or} seconds (C{str}).\n\n       @see: Function L{pygeodesy.toDMS}.\n    '''\n    try:\n        deg = float(deg)\n    except Exception as x:\n        raise _xError(x, deg=deg, prec=prec)\n\n    d, s = fabs(deg), s_D\n    if d < 1:\n        if s_M:\n            d *= _60_0\n            if d < 1 and s_S:\n                d *= _60_0\n                s = s_S\n            else:\n                s = s_M\n        elif s_S:\n            d *= _3600_0\n            s = s_S\n\n    z = int(prec)\n    t = Fmt.F(d, prec=abs(z))\n    if z > 1:\n        t = fstrzs(t)\n    n = neg if deg < 0 else pos\n    return NN(n, t, s)  # NOT unicode in Python 2-\n\n\ndef latDMS(deg, form=_F_DMS, prec=None, sep=S_SEP, **s_D_M_S):\n    '''Convert latitude to a string, optionally suffixed with N or S.\n\n       @arg deg: Latitude to be formatted (C{scalar degrees}).\n       @kwarg form: Format specifier for B{C{deg}} (C{str} or C{F_...}).\n       @kwarg prec: Number of decimal digits (0..9 or C{None} for default).\n       @kwarg sep: Separator between degrees, minutes, seconds, suffix (C{str}).\n       @kwarg s_D_M_S: Optional keyword arguments to override any or cancel all\n                       DMS symbol suffixes, see function L{pygeodesy.toDMS}.\n\n       @return: Degrees in the specified form (C{str}).\n\n       @see: Function L{pygeodesy.toDMS} and its B{Notes} for further details.\n    '''\n    P = _S_ if deg < 0 else _N_\n    return _toDMS(deg, form, prec, sep, 2, P, s_D_M_S)\n\n\ndef latlonDMS(lls, **m_form_prec_sep_s_D_M_S):\n    '''Convert one or more C{LatLon} instances to strings.\n\n       @arg lls: Single (C{LatLon}) or an iterable (C{LatLon}s).\n       @kwarg m_form_prec_sep_s_D_M_S: Optional keyword arguments C{B{m}eter},\n                C{B{form}at}, C{B{prec}ision}, B{C{s_D}}, B{C{s_M}}, B{C{s_S}},\n                B{C{s_DMS}} and I{DEPRECATED}  C{B{sep}=None}, see function\n                L{pygeodesy.toDMS} and method C{LatLon.toStr} for more details.\n\n       @return: A C{tuple} of C{str}s if B{C{lls}} is a list, sequence, tuple, etc.\n                of C{LatLon}s or a single C{str} if B{C{lls}} is a single C{LatLon}.\n\n       @see: Functions L{pygeodesy.latlonDMS_}, L{pygeodesy.latDMS}, L{pygeodesy.lonDMS}\n             and L{pygeodesy.toDMS} and method C{LatLon.toStr}.\n\n       @note: Keyword argument C{B{sep}=None} to join the resturned C{tuple} has\n              been I{DEPRECATED}, use C{B{sep}.join(B{latlonDMS_}(...))} instead.\n    '''\n    sep, kwds = _latlonDMS_sep2(latlonDMS, **m_form_prec_sep_s_D_M_S)\n    if isLatLon(lls):\n        t = lls.toStr(**kwds)\n    elif issequence(lls):\n        t = tuple(ll.toStr(**kwds) for ll in lls)\n        if sep:  # XXX DEPRECATED, to be removed\n            t = sep.join(t)\n    else:\n        raise _TypeError(lls=lls, **m_form_prec_sep_s_D_M_S)\n    return t\n\n\ndef latlonDMS_(*lls, **m_form_prec_sep_s_D_M_S):\n    '''Convert one or more C{LatLon} instances to strings.\n\n       @arg lls: The instances (C{LatLon}s), all positional arguments.\n       @kwarg m_form_prec_sep_s_D_M_S: Optional keyword arguments C{B{m}eter},\n                C{B{form}at}, C{B{prec}ision}, B{C{s_D}}, B{C{s_M}}, B{C{s_S}},\n                B{C{s_DMS}} and I{DEPRECATED}  C{B{sep}=None}, see function\n                L{pygeodesy.toDMS} and method C{LatLon.toStr} for more details.\n\n       @return: A C{tuple} of C{str}s if 2 or more C{LatLon} instances\n                or a single C{str} if only a single C{LatLon} instance\n                is given in B{C{lls}}.\n\n       @see: Functions L{pygeodesy.latlonDMS}, L{pygeodesy.latDMS} and\n             L{pygeodesy.lonDMS} and L{pygeodesy.toDMS} and method\n             C{LatLon.toStr}.\n\n       @note: Keyword argument C{B{sep}=None} to join the resturned C{tuple} has\n              been I{DEPRECATED}, use C{B{sep}.join(B{latlonDMS_}(...))} instead.\n    '''\n    sep, kwds = _latlonDMS_sep2(latlonDMS, **m_form_prec_sep_s_D_M_S)\n    if not lls:\n        raise _ValueError(lls=lls, **m_form_prec_sep_s_D_M_S)\n    elif len(lls) < 2:\n        lls, sep = lls[0], None\n    t = latlonDMS(lls, **kwds)\n    return sep.join(t) if sep else t\n\n\ndef _latlonDMS_sep2(where, sep=None, **kwds):\n    '''DEPRECATED, use %r.join(%s(...)) instead.'''\n    if sep:  # PYCHOK no cover\n        i = _MODS.inters\n        k =  Fmt.EQUAL(sep=repr(sep))\n        k = _SPACE_(i._keyword_, i._arg_, k, i._of_)\n        n =  typename(where)\n        t = _latlonDMS_sep2.__doc__ % (sep, n)\n        _MODS.props._throwarning(k, n, t)\n    return sep, kwds\n\n\ndef lonDMS(deg, form=_F_DMS, prec=None, sep=S_SEP, **s_D_M_S):\n    '''Convert longitude to a string, optionally suffixed with E or W.\n\n       @arg deg: Longitude to be formatted (C{scalar degrees}).\n       @kwarg form: Format specifier for B{C{deg}} (C{str} or C{F_...}).\n       @kwarg prec: Number of decimal digits (0..9 or C{None} for default).\n       @kwarg sep: Separator between degrees, minutes, seconds, suffix (C{str}).\n       @kwarg s_D_M_S: Optional keyword arguments to override any or cancel all\n                       DMS symbol suffixes.\n\n       @return: Degrees in the specified form (C{str}).\n\n       @see: Function L{pygeodesy.toDMS} and its B{Notes} for further details.\n    '''\n    P = _W_ if deg < 0 else _E_\n    return _toDMS(deg, form, prec, sep, 3, P, s_D_M_S)\n\n\ndef normDMS(strDMS, norm=None, **s_D_M_S):\n    '''Normalize all degrees, minutes and seconds (DMS) I{symbol} suffixes in\n       a string to the default symbols L{S_DEG}, L{S_MIN}, L{S_SEC}.\n\n       @arg strDMS: Original DMS string (C{str}).\n       @kwarg norm: Optional replacement symbol (C{str}) or C{None} for the default\n                    DMS symbol).  Use C{B{norm}=\"\"} to remove all DMS symbols.\n       @kwarg s_D_M_S: Optional, alternate DMS symbol suffixes C{B{s_D}=}L{S_DEG},\n                       C{B{s_M}=}L{S_MIN}, C{B{s_S}=}L{S_SEC} and C{B{s_R}=}L{S_RAD}\n                       for radians, each to be replaced by B{C{norm}}.\n\n       @return: Normalized DMS (C{str}).\n    '''\n    def _s2S2(s_D=S_DEG, s_M=S_MIN, s_S=S_SEC, s_R=S_RAD):\n        d = {s_D: S_DEG, s_M: S_MIN, s_S: S_SEC, s_R: S_RAD}\n        for s, S in _xkwds(d, **_S_norm).items():\n            if s:\n                yield s, S\n\n    # XXX strDMS isn't unicode in Python 2- and looping\n    # thru strDMS will yield each byte, hence the loop\n    # thru _s2S2 and replacing the DMS symbols in strDMS\n\n    if norm is None:  # back to default DMS\n        for s, S in _s2S2(**s_D_M_S):\n            if s != S:\n                strDMS = strDMS.replace(s, S)\n\n    else:  # replace or remove all DMS\n        n = norm or NN\n        for s, _ in _s2S2(**s_D_M_S):\n            if s != n:\n                strDMS = strDMS.replace(s, n)\n        if n:\n            strDMS = strDMS.rstrip(n)  # XXX not .strip?\n\n    return strDMS  # NOT unicode in Python 2-\n\n\ndef parseDDDMMSS(strDDDMMSS, suffix=_NSEW_, sep=S_SEP, clip=0, sexagecimal=False):\n    '''Parse a lat- or longitude represention forms as [D]DDMMSS in degrees.\n\n       @arg strDDDMMSS: Degrees in any of several forms (C{str}) and types (C{float},\n                        C{int}, other).\n       @kwarg suffix: Optional compass points (C{str}), valid in B{C{strDDDMMSS}}.\n       @kwarg sep: Optional separator between \"[D]DD\", \"MM\", \"SS\", B{C{suffix}}\n                   (L{S_SEP}) in B{C{strDDDMMSS}}.\n       @kwarg clip: Optionally, limit value to range C{-/+B{clip}} (C{degrees}).\n       @kwarg sexagecimal: If C{True}, convert C{\"D.MMSS\"} or C{float(D.MMSS)} to\n                           C{base-60} \"MM\" and \"SS\" digits.  See C{form}s L{F_D60},\n                           L{F_D60_} and L{F_D60__}.\n\n       @return: Degrees (C{float}).\n\n       @raise ParseError: Invalid B{C{strDDDMMSS}} or B{C{clip}} or the form of\n                          B{C{strDDDMMSS}} is incompatible with or invalid for the\n                          given B{C{suffix}} compass point(s).\n\n       @raise RangeError: Value of B{C{strDDDMMSS}} outside the valid C{-/+B{clip}}\n                          range and L{rangerrors<pygeodesy.rangerrors>} is C{True}.\n\n       @note: Type C{str} values \"[D]DD\", \"[D]DDMM\", \"[D]DDMMSS\" and \"[D]DD.MMSS\"\n              for B{C{strDDDMMSS}} are parsed properly only if I{either} unsigned\n              and suffixed with a valid, compatible, C{cardinal} L{compassPoint}\n              I{or} signed I{or} unsigned, unsuffixed and with keyword argument\n              B{C{suffix}=\"NS\"}, B{C{suffix}=\"EW\"} or a compatible L{compassPoint}.\n\n       @note: Unlike function L{parseDMS}, type C{float}, C{int} and other non-C{str}\n              B{C{strDDDMMSS}} values are interpreted as C{form} [D]DDMMSS or\n              [D]DD.MMSS.  For example, C{int(1230)} is returned as 12.5 and I{not\n              1230.0} degrees.  However, C{int(345)} is considered C{form} \"DDD\"\n              345 I{and not \"DDMM\" 0345}, unless B{C{suffix}} specifies the compass\n              point.  Also, C{float(15.0523)} is returned as 15.0523 decimal\n              degrees and I{not 15°5′23″ sexagecimal}.  To consider the latter, use\n              C{float(15.0523)} or C{\"15.0523\"} and specify the keyword argument\n              C{B{sexagecimal}=True}.\n\n       @see: Functions L{pygeodesy.parseDMS}, L{pygeodesy.parseDMS2} and\n             L{pygeodesy.parse3llh}.\n    '''\n    def _DDDMMSS(strDDDMMSS, suffix, sep, clip, sexagecimal):\n        S = suffix.upper() or _N_  # bool('' in _NE_) is True\n        if isstr(strDDDMMSS):\n            t =  strDDDMMSS.replace(sep, NN) if sep else strDDDMMSS\n            n, s, t, f, P, X = _DDDMMSS6(t, S)\n            if X:\n                pass\n            elif not sexagecimal:  # try other forms\n                return _DMS2deg(strDDDMMSS, S, sep, clip, {})\n\n            if sexagecimal:  # move decimal dot from ...\n                n += 4  # ... [D]DD.MMSSs to [D]DDMMSS.s\n                if n < 6:\n                    t = _SPACE_(_sexagecimal_, 'digits')\n                    raise ParseError(t, n)\n                z = n - len(f)  # zeros to append\n                t = (f + (_0_ * z)) if z > 0 else _DOT_(f[:n], f[n:])\n            f = _0_0  # fraction\n        else:  # float or int to [D]DDMMSS[.fff]\n            f = float(strDDDMMSS)\n            n, s, t, f, P = _DDDMMSS5(f, S, sexagecimal)\n\n        if n < 4:  # [D]DD[.ddd]\n            if t:\n                f += float(t)\n            t = f,\n        else:\n            n -= 2\n            f += float(t[n:])\n            if n < 4:  # [D]DDMM[.mmm]\n                t = float(t[:n]), f\n            else:  # [D]DDMMSS[.sss]\n                d = n - 2\n                t = float(t[:d]), float(t[d:n]), f\n        d = _dms2deg(s, P, *t)\n        return clipDegrees(d, float(clip)) if clip else d\n\n    return _parseX(_DDDMMSS, strDDDMMSS, suffix, sep, clip, sexagecimal,\n                             strDDDMMSS=strDDDMMSS, suffix=suffix, sexagecimal=sexagecimal)\n\n\ndef _DDDMMSS5(f, S, sexagecimal):\n    '''(INTERNAL) Partial C{parseDDDMMSS} of C{float}.\n    '''\n    if sexagecimal:\n        f *= _SEXAGECIMUL\n        m = 6\n    else:\n        m = 0\n    s = P = _PLUS_  # anything except NN, _S_, _SW_, _W_\n    if f < 0:\n        f = -f\n        s = _MINUS_\n    f, i = modf(f)   # returns ...\n    t = str(int(i))  # ... float(i)\n    n = len(t)  # number of digits to ...\n    if n < m:  # ... required min or ...\n        t = (_0_ * (m - n)) + t\n    # ... match the given compass point\n    elif S in (_NS_ if isodd(n) else _EW_):\n        t = _0_ + t\n    #   P = S\n    # elif n > 1:\n    #   P = (_EW_ if isodd(n) else _NS_)[0]\n    return len(t), s, t, f, P  # float(f) fraction\n\n\ndef _DDDMMSS6(t, S):\n    '''(INTERNAL) Partial C{parseDDDMMSS} of C{str}.\n    '''\n    s, t, P = _split3(t, S)\n    f = t.split(_DOT_)\n    if len(f) > 2:\n        raise ParseError('dots', len(f) - 1)\n    n = len(f[0])\n    f = NN.join(f)\n    if 1 < n < 8 and f.isdigit() and (  # dddN/S/E/W or ddd or +/-ddd\n                         (P in S and  s.isdigit()) or\n                    (P.isdigit() and  S in _WINDS  # PYCHOK indent\n                                 and (s in _PLUSMINUS_ or s.isdigit()))):\n        # check [D]DDMMSS form and compass point\n        X = _EW_ if isodd(n) else _NS_\n        if not (P in X or (S in X and (P.isdigit() or P == _DOT_))):\n            t =  typename(parseDDDMMSS)[(5 if isodd(n) else 6):]\n            t = _SPACE_('form', t, 'applies', _DASH_.join(X))\n            raise ParseError(t)\n    else:\n        X = NN\n    return n, s, t, f, P, X  # str(f) fraction\n\n\ndef _DMS2deg(strDMS, suffix, sep, clip, s_D_M_S):\n    '''(INTERNAL) Helper for C{parseDDDMMSS} and C{parseDMS}.\n    '''\n    try:\n        d = float(strDMS)\n    except (TypeError, ValueError):\n        s, t, P = _split3(strDMS, suffix.upper())\n        if sep:  # remove all DMS symbols\n            t = t.replace(sep, _SPACE_)\n            t = normDMS(t, norm=NN, **s_D_M_S)\n        else:  # replace all DMS symbols\n            t = normDMS(t, norm=_SPACE_, **s_D_M_S)\n        t =  t.strip().split()\n        d = _dms2deg(s, P, *map(float, t))\n    return clipDegrees(d, float(clip)) if clip else d\n\n\ndef _dms2deg(n, P, d, m=_0_0, s=_0_0):\n    '''(INTERNAL) Helper for C{parseDDDMMSS}, C{parseRad} and C{_DMS2deg}.\n    '''\n    m += s / _60_0\n    d += m / _60_0\n    if n == _MINUS_ or (P and P in _SW_):\n        d = _neg(d)\n    return d\n\n\ndef parseDMS(strDMS, suffix=_NSEW_, sep=S_SEP, clip=0, **s_D_M_S):  # MCCABE 14\n    '''Parse a lat- or longitude representation in C{degrees}.\n\n       This is very flexible on formats, allowing signed decimal degrees, degrees\n       and minutes or degrees minutes and seconds optionally suffixed by a cardinal\n       compass point.\n\n       A variety of symbols, separators and suffixes are accepted, for example\n       \"3°37′09″W\".  Minutes and seconds may be omitted.\n\n       @arg strDMS: Degrees in any of several forms (C{str}) and types (C{float},\n                    C{int}, other).\n       @kwarg suffix: Optional, valid compass points (C{str}, C{tuple}).\n       @kwarg sep: Optional separator between C{deg°}, C{min′}, C{sec″},\n                   B{C{suffix}} (C{''}).\n       @kwarg clip: Optionally, limit value to range C{-/+B{clip}} (C{degrees}).\n       @kwarg s_D_M_S: Optional, alternate DMS symbol suffixes for degrees\n                       C{B{s_D}=}L{S_DEG}, minutes C{B{s_M}=}L{S_MIN} and\n                       seconds C{B{s_S}=}L{S_SEC}, see function L{pygeodesy.toDMS}.\n\n       @return: Degrees (C{float}).\n\n       @raise ParseError: Invalid B{C{strDMS}} or B{C{clip}}.\n\n       @raise RangeError: Value of B{C{strDMS}} outside the valid C{-/+B{clip}} range\n                          and L{rangerrors<pygeodesy.rangerrors>} is C{True}.\n\n       @note: Unlike function L{parseDDDMMSS}, type C{float}, C{int} and other non-C{str}\n              B{C{strDMS}} values are considered decimal (and not sexagecimal) degrees.\n              For example, C{int(1230)} is returned as 1230.0 I{and not as 12.5} degrees\n              and C{float(345)} as 345.0 I{and not as 3.75} degrees!\n\n       @see: Functions L{pygeodesy.parseDDDMMSS}, L{pygeodesy.parseDMS2},\n             L{pygeodesy.parse3llh} and L{pygeodesy.toDMS}.\n    '''\n    return _parseX(_DMS2deg, strDMS, suffix, sep, clip, s_D_M_S, strDMS=strDMS, suffix=suffix)\n\n\ndef parseDMS2(strLat, strLon, sep=S_SEP, clipLat=90, clipLon=180, wrap=False, **s_D_M_S):\n    '''Parse a lat- and a longitude representions C{\"lat, lon\"} in C{degrees}.\n\n       @arg strLat: Latitude in any of several forms (C{str} or C{degrees}).\n       @arg strLon: Longitude in any of several forms (C{str} or C{degrees}).\n       @kwarg sep: Optional separator between deg°, min′, sec″, suffix (C{''}).\n       @kwarg clipLat: Limit latitude to range C{-/+B{clipLat}} (C{degrees}).\n       @kwarg clipLon: Limit longitude to range C{-/+B{clipLon}} (C{degrees}).\n       @kwarg wrap: If C{True}, wrap or I{normalize} the lat- and longitude,\n                    overriding B{C{clipLat}} and B{C{clipLon}} (C{bool}).\n       @kwarg s_D_M_S: Optional, alternate DMS symbol suffixes for degrees\n                       C{B{s_D}=}L{S_DEG}, minutes C{B{s_M}=}L{S_MIN} and\n                       seconds C{B{s_S}=}L{S_SEC}, see function L{pygeodesy.toDMS}.\n\n       @return: A L{LatLon2Tuple}C{(lat, lon)} in C{degrees}.\n\n       @raise ParseError: Invalid B{C{strLat}} or B{C{strLon}}.\n\n       @raise RangeError: Value of B{C{strLat}} or B{C{strLon}} outside the\n                          valid C{-/+B{clipLat}} or C{-/+B{clipLon}} range\n                          and L{rangerrors<pygeodesy.rangerrors>} is C{True}.\n\n       @note: See the B{Notes} at function L{parseDMS}.\n\n       @see: Functions L{pygeodesy.parseDDDMMSS}, L{pygeodesy.parseDMS},\n             L{pygeodesy.parse3llh} and L{pygeodesy.toDMS}.\n    '''\n    return _2Tuple(strLat, strLon, clipLat, clipLon, wrap, sep=sep, **s_D_M_S)\n\n\ndef _2Tuple(strLat, strLon, clipLat, clipLon, wrap, **kwds):\n    '''(INTERNAL) Helper for C{parseDMS2} and C{parse3llh}.\n    '''\n    if wrap:\n        _W = _MODS.utily._Wrap\n        ll = _W.latlon(parseDMS(strLat, suffix=_NS_, **kwds),\n                       parseDMS(strLon, suffix=_EW_, **kwds))\n    else:\n        # if wrap is None:\n        #     clipLat = clipLon = 0\n        ll = (parseDMS(strLat, suffix=_NS_, clip=clipLat, **kwds),\n              parseDMS(strLon, suffix=_EW_, clip=clipLon, **kwds))\n    return _MODS.namedTuples.LatLon2Tuple(*ll)\n\n\ndef parse3llh(strllh, height=0, sep=_COMMA_, clipLat=90, clipLon=180, wrap=False, **s_D_M_S):\n    '''Parse a string C{\"lat, lon [, h]\"} representing lat-, longitude in\n       C{degrees} and optional height in C{meter}.\n\n       The lat- and longitude value must be separated by a separator\n       character.  If height is present it must follow, separated by\n       another separator.\n\n       The lat- and longitude values may be swapped, provided at least\n       one ends with the proper compass point.\n\n       @arg strllh: Latitude, longitude[, height] (C{str}, ...).\n       @kwarg height: Optional, default height (C{meter}) or C{None}.\n       @kwarg sep: Optional separator between C{\"lat lon [h] suffix\"} (C{str}).\n       @kwarg clipLat: Limit latitude to range C{-/+B{clipLat}} (C{degrees}).\n       @kwarg clipLon: Limit longitude to range C{-/+B{clipLon}} (C{degrees}).\n       @kwarg wrap: If C{True}, wrap or I{normalize} the lat- and longitude,\n                    overriding B{C{clipLat}} and B{C{clipLon}} (C{bool}).\n       @kwarg s_D_M_S: Optional, alternate DMS symbol suffixes for degrees\n                       C{B{s_D}=}L{S_DEG}, minutes C{B{s_M}=}L{S_MIN} and\n                       seconds C{B{s_S}=}L{S_SEC}, see function L{pygeodesy.toDMS}.\n\n       @return: A L{LatLon3Tuple}C{(lat, lon, height)} in C{degrees},\n                C{degrees} and C{float}.\n\n       @raise RangeError: Lat- or longitude value of B{C{strllh}} outside the\n                          valid C{-/+B{clipLat}} or C{-/+B{clipLon}} range\n                          and L{rangerrors<pygeodesy.rangerrors>} is C{True}.\n\n       @raise ValueError: Invalid B{C{strllh}} or B{C{height}}.\n\n       @note: See the B{Notes} at function L{parseDMS}.\n\n       @see: Functions L{pygeodesy.parseDDDMMSS}, L{pygeodesy.parseDMS},\n             L{pygeodesy.parseDMS2} and L{pygeodesy.toDMS}.\n    '''\n    def _3llh(strllh, height, sep, wrap):\n        ll = strllh.strip().split(sep)\n        if len(ll) > 2:  # XXX interpret height unit\n            h = float(ll.pop(2).rstrip(_LETTERS + _SPACE_))\n        else:\n            h = height  # None from wgrs.Georef.__new__\n        if len(ll) != 2:\n            raise ValueError\n\n        a, b = [_.strip() for _ in ll]  # PYCHOK false\n        if a[-1:] in _EW_ or b[-1:] in _NS_:\n            a, b = b, a\n        t = _2Tuple(a, b, clipLat, clipLon, wrap, **s_D_M_S)\n        return t.to3Tuple(h)\n\n    return _parseX(_3llh, strllh, height, sep, wrap, strllh=strllh)\n\n\ndef parseRad(strRad, suffix=_NSEW_, clip=0):\n    '''Parse a string representing angle in C{radians}.\n\n       @arg strRad: Degrees in any of several forms (C{str} or C{radians}).\n       @kwarg suffix: Optional, valid compass points (C{str}, C{tuple}).\n       @kwarg clip: Optionally, limit value to range C{-/+B{clip}} (C{radians}).\n\n       @return: Radians (C{float}).\n\n       @raise ParseError: Invalid B{C{strRad}} or B{C{clip}}.\n\n       @raise RangeError: Value of B{C{strRad}} outside the valid C{-/+B{clip}}\n                          range and L{rangerrors<pygeodesy.rangerrors>} is C{True}.\n    '''\n    def _Rad(strRad, suffix, clip):\n        try:\n            r = float(strRad)\n        except (TypeError, ValueError):\n            s, t, P = _split3(strRad, suffix.upper())\n            r = _dms2deg(s, P, float(t))\n        return clipRadians(r, float(clip)) if clip else r\n\n    return _parseX(_Rad, strRad, suffix, clip, strRad=strRad, suffix=suffix)\n\n\ndef precision(form, prec=None):\n    '''Set the default precison for a given F_ form.\n\n       @arg form: L{F_D}, L{F_DM}, L{F_DMS}, L{F_DEG}, L{F_MIN}, L{F_SEC},\n                  L{F_D60}, L{F__E}, L{F__F}, L{F__G} or L{F_RAD} (C{str}).\n       @kwarg prec: Number of decimal digits (0..9 or C{None} for default).\n                    Trailing zero decimals are stripped for C{B{prec}=1}\n                    and above, but kept for negative B{C{prec}}.\n\n       @return: Previous precision for the B{C{form}} (C{int}).\n\n       @raise ValueError: Invalid B{C{form}} or B{C{prec}} or B{C{prec}}\n                          outside range C{-9..+9}.\n    '''\n    try:\n        p = _F_prec[form]\n    except KeyError:\n        raise _ValueError(form=form)\n    if prec is not None:  # set as default\n        P_ = _MODS.units.Precision_\n        _F_prec[form] = P_(prec, low=-9, high=9)\n    return p\n\n\ndef toDMS(deg, form=_F_DMS, prec=2, sep=S_SEP, ddd=2, neg=_MINUS_, pos=_PLUS_, **s_D_M_S):\n    '''Convert I{signed} C{degrees} to string, without suffix.\n\n       @arg deg: Degrees to be formatted (C{scalar degrees}).\n       @kwarg form: Format specifier for B{C{deg}} (C{str} or L{F_D}, L{F_DM}, L{F_DMS},\n                    L{F_DEG}, L{F_MIN}, L{F_SEC}, L{F_D60}, L{F__E}, L{F__F}, L{F__G},\n                    L{F_RAD}, L{F_D_}, L{F_DM_}, L{F_DMS_}, L{F_DEG_}, L{F_MIN_}, L{F_SEC_},\n                    L{F_D60_}, L{F__E_}, L{F__F_}, L{F__G_}, L{F_RAD_}, L{F_D__}, L{F_DM__},\n                    L{F_DMS__}, L{F_DEG__}, L{F_MIN__}, L{F_SEC__}, L{F_D60__}, L{F__E__},\n                    L{F__F__}, L{F__G__} or L{F_RAD__}).\n       @kwarg prec: Number of decimal digits (0..9 or C{None} for default).  Trailing zero\n                    decimals are stripped for C{B{prec}=1} and above, but kept for negative\n                    B{C{prec}}.\n       @kwarg sep: Separator between degrees, minutes, seconds, suffix (C{str}).\n       @kwarg ddd: Number of (integer) digits for B{C{deg}°} (2 or 3).\n       @kwarg neg: Prefix for negative B{C{deg}} (C{'-'}).\n       @kwarg pos: Prefix for positive B{C{deg}} and signed B{C{form}} (C{'+'}).\n       @kwarg s_D_M_S: Optional keyword arguments C{B{s_D}=}L{S_DEG}, C{B{s_M}=}L{S_MIN}\n                       C{B{s_S}=}L{S_SEC}, C{B{s_R}=}L{S_RAD} and C{B{s_DMS}=True} to\n                       override any or cancel all DMS symbol suffixes.  See the B{Notes}\n                       below.\n\n       @return: Degrees in the specified form (C{str}).\n\n       @note: The degrees, minutes and seconds (DMS) symbol can be overridden in this and\n              other C{*DMS} functions by using optional keyword argments C{B{s_D}=\"d\"},\n              C{B{s_M}=\"'\"} respectively C{B{s_S}='\"'}.  Using B{C{s_DMS}=None} cancels\n              all C{DMS} symbols to C{\"\"} aka L{pygeodesy.NN}.\n\n       @note: Sexagecimal format B{C{F_D60}} supports overridable pseudo-DMS symbols\n              positioned at C{\"[D]DD<B{s_D}>MM<B{s_M}>SS<B{s_S}>\"} with defaults\n              C{B{s_D}=\".\"}, C{B{s_M}=B{sep}} and C{B{s_S}=}L{pygeodesy.NN}.\n\n       @note: Formats B{C{F__E}}, B{C{F__F}} and B{C{F__G}} is extended with a C{D}-only\n              symbol suffix if defined with keyword argument C{B{s_D}=}L{pygeodesy.NN}.\n              Likewise for B{C{F_RAD}} forms with keyword argument C{B{s_R}=}L{S_RAD}.\n\n       @see: Function L{pygeodesy.degDMS}\n    '''\n    s =  form[:1]\n    f =  form[1:] if s in _PLUSMINUS_ else form\n    t = _toDMS(deg, f, prec, sep, ddd, NN, s_D_M_S)  # unsigned and -suffixed\n    if deg < 0 and neg:\n        t = neg + t\n    elif deg > 0 and s == _PLUS_ and pos:\n        t = pos + t\n    return t\n\n# **) MIT License\n#\n# Copyright (C) 2016-2026 -- mrJean1 at Gmail -- All Rights Reserved.\n#\n# Permission is hereby granted, free of charge, to any person obtaining a\n# copy of this software and associated documentation files (the \"Software\"),\n# to deal in the Software without restriction, including without limitation\n# the rights to use, copy, modify, merge, publish, distribute, sublicense,\n# and/or sell copies of the Software, and to permit persons to whom the\n# Software is furnished to do so, subject to the following conditions:\n#\n# The above copyright notice and this permission notice shall be included\n# in all copies or substantial portions of the Software.\n#\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL\n# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR\n# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\n# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n# OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "pygeodesy/ecef.py",
    "content": "\n# -*- coding: utf-8 -*-\n\nu'''I{Geocentric} Earth-Centered, Earth-Fixed (ECEF) coordinates.\n\nGeocentric conversions transcoded from I{Charles Karney}'s C++ class U{Geocentric\n<https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Geocentric.html>}\ninto pure Python class L{EcefKarney}, class L{EcefSudano} based on I{John Sudano}'s\nU{paper<https://www.ResearchGate.net/publication/\n3709199_An_exact_conversion_from_an_Earth-centered_coordinate_system_to_latitude_longitude_and_altitude>},\nclass L{EcefUPC} using the I{Universitat Politècnica de Catalunya}'s U{method, page 186\n<https://GSSC.ESA.int/navipedia/GNSS_Book/ESA_GNSS-Book_TM-23_Vol_I.pdf>}, class L{EcefVeness}\ntranscoded from I{Chris Veness}' JavaScript classes U{LatLonEllipsoidal, Cartesian\n<https://www.Movable-Type.co.UK/scripts/geodesy/docs/latlon-ellipsoidal.js.html>}, class L{EcefYou}\nimplementing I{Rey-Jer You}'s U{transformations<https://www.ResearchGate.net/publication/240359424>}\nand classes L{EcefFarrell22} and L{EcefFarrell22} from I{Jay A. Farrell}'s U{Table 2.1 and 2.2\n<https://Books.Google.com/books?id=fW4foWASY6wC>}, page 29-30.\n\nFollowing is a copy of I{Karney}'s U{Detailed Description\n<https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Geocentric.html>}.\n\nConvert between geodetic coordinates C{lat}-, C{lon}gitude and height C{h} (measured vertically\nfrom the surface of the ellipsoid) to geocentric C{x}, C{y} and C{z} coordinates, also known as\nI{Earth-Centered, Earth-Fixed} (U{ECEF<https://WikiPedia.org/wiki/ECEF>}).\n\nThe origin of geocentric coordinates is at the center of the earth.  The C{z} axis goes thru\nthe North pole, C{lat} = 90°.  The C{x} axis goes thru C{lat} = 0°, C{lon} = 0°.\n\nThe I{local (cartesian) origin} is at (C{lat0}, C{lon0}, C{height0}).  The I{local} C{x} axis points\nEast, the I{local} C{y} axis points North and the I{local} C{z} axis is normal to the ellipsoid.  The\nplane C{z = -height0} is tangent to the ellipsoid, hence the alternate name I{local tangent plane}.\n\nForward conversion from geodetic to geocentric (ECEF) coordinates is straightforward.\n\nFor the reverse transformation we use Hugues Vermeille's U{I{Direct transformation from geocentric\ncoordinates to geodetic coordinates}<https://DOI.org/10.1007/s00190-002-0273-6>}, J. Geodesy\n(2002) 76, page 451-454.\n\nSeveral changes have been made to ensure that the method returns accurate results for all finite\ninputs (even if h is infinite).  The changes are described in Appendix B of C. F. F. Karney\nU{I{Geodesics on an ellipsoid of revolution}<https://ArXiv.org/abs/1102.1215v1>}, Feb. 2011, 85,\n105-117 (U{preprint<https://ArXiv.org/abs/1102.1215v1>}).  Vermeille similarly updated his method\nin U{I{An analytical method to transform geocentric into geodetic coordinates}\n<https://DOI.org/10.1007/s00190-010-0419-x>}, J. Geodesy (2011) 85, page 105-117.  See U{Geocentric\ncoordinates<https://GeographicLib.SourceForge.io/C++/doc/geocentric.html>} for more information.\n\nThe errors in these routines are close to round-off.  Specifically, for points within 5,000 Km of\nthe surface of the ellipsoid (either inside or outside the ellipsoid), the error is bounded by 7\nnm (7 nanometers) for the WGS84 ellipsoid.  See U{Geocentric coordinates\n<https://GeographicLib.SourceForge.io/C++/doc/geocentric.html>} for further information on the errors.\n\n@note: The C{reverse} methods of all C{Ecef...} classes return by default C{INT0} as the (geodetic)\nlongitude for I{polar} ECEF location C{x == y == 0}.  Use keyword argument C{lon00} or property\nC{lon00} to configure that value.\n\n@see: Module L{ltp} and class L{LocalCartesian}, a transcription of I{Charles Karney}'s C++ class\nU{LocalCartesian<https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1LocalCartesian.html>},\nfor conversion between geodetic and I{local cartesian} coordinates in a I{local tangent\nplane} as opposed to I{geocentric} (ECEF) ones.\n'''\n\nfrom pygeodesy.basics import copysign0, _isin, isscalar, issubclassof, neg, map1, \\\n                            _xinstanceof, _xsubclassof,  typename  # _args_kwds_names\nfrom pygeodesy.constants import EPS, EPS0, EPS02, EPS1, INT0, PI, PI_2, _0_0, \\\n                               _0_5, _1_0, _1_0_1T, _2_0, _3_0, _4_0, _6_0, _90_0, \\\n                               _copysign_1_0,  isnon0  # PYCHOK used!\nfrom pygeodesy.datums import _ellipsoidal_datum, _WGS84,  a_f2Tuple, _EWGS84\nfrom pygeodesy.ecefLocals import _EcefLocal\n# from pygeodesy.ellipsoids import a_f2Tuple, _EWGS84  # from .datums\nfrom pygeodesy.errors import _IndexError, LenError, _ValueError, _TypesError, \\\n                             _xattr, _xdatum, _xkwds, _xkwds_get\nfrom pygeodesy.fmath import cbrt, fdot, hypot, hypot1, hypot2_, sqrt0\nfrom pygeodesy.fsums import Fsum, fsumf_,  Fmt, unstr\n# from pygeodesy.internals import typename  # from .basics\nfrom pygeodesy.interns import NN, _a_, _C_, _datum_, _ellipsoid_, _f_, _height_, \\\n                             _lat_, _lon_, _M_, _name_, _singular_, _SPACE_, \\\n                             _x_, _xyz_, _y_, _z_\nfrom pygeodesy.lazily import _ALL_DOCS, _ALL_LAZY, _ALL_MODS as _MODS\nfrom pygeodesy.named import _name__, _name1__, _NamedBase, _NamedTuple, _Pass, _xnamed\nfrom pygeodesy.namedTuples import LatLon2Tuple, LatLon3Tuple, \\\n                                  PhiLam2Tuple, Vector3Tuple, Vector4Tuple\nfrom pygeodesy.props import deprecated_method, deprecated_property, Property_RO, \\\n                            property_RO, property_ROver\n# from pygeodesy.streprs import Fmt, unstr  # from .fsums\nfrom pygeodesy.units import _isRadius, Degrees, Height, Int, Lam, Lat, Lon, Meter, \\\n                             Phi, Radians_, Scalar, Scalar_\nfrom pygeodesy.utily import atan1, atan1d, atan2, atan2d, degrees90, degrees180, \\\n                            sincos2, sincos2_, sincos2d_\n# from pygeodesy.vector3d import Vector3d  # _MODS\n\nfrom math import cos, degrees, fabs, radians, sqrt\n\n__all__ = _ALL_LAZY.ecef\n__version__ = '25.08.31'\n\n_Ecef_    = 'Ecef'\n_prolate_ = 'prolate'\n_TRIPS    =  33  # 8..9 sufficient, EcefEDA.-/EcefSudano.reverse\n_xyz_y_z  = _xyz_, _y_, _z_  # _args_kwds_names(_xyzn4)[:3]\n\n\nclass EcefError(_ValueError):\n    '''An ECEF or C{Ecef*} related issue.\n    '''\n    pass\n\n\nclass _EcefBase(_NamedBase):\n    '''(INTERNAL) Base class for C{Ecef*} conversion classes.\n    '''\n    _datum = _WGS84\n    _E     = _EWGS84\n    _isYou =  False\n    _lon00 =  INT0  # arbitrary, \"polar\" lon for LocalCartesian, Ltp\n\n    def __init__(self, a_ellipsoid=_EWGS84, f=None, lon00=INT0, **name):\n        '''New C{Ecef*} converter.\n\n           @arg a_ellipsoid: A (non-prolate) ellipsoid (L{Ellipsoid}, L{Ellipsoid2},\n                             L{Datum} or L{a_f2Tuple}) or C{scalar} ellipsoid's\n                             equatorial radius (C{meter}).\n           @kwarg f: C{None} or the ellipsoid flattening (C{scalar}), required\n                     for C{scalar} B{C{a_ellipsoid}}, C{B{f}=0} represents a\n                     sphere, negative B{C{f}} a prolate ellipsoid.\n           @kwarg lon00: An arbitrary, I{\"polar\"} longitude (C{degrees}), see the\n                         C{reverse} method.\n           @kwarg name: Optional C{B{name}=NN} (C{str}).\n\n           @raise EcefError: If B{C{a_ellipsoid}} not L{Ellipsoid}, L{Ellipsoid2},\n                             L{Datum} or L{a_f2Tuple} or C{scalar} or B{C{f}} not\n                             C{scalar} or if C{scalar} B{C{a_ellipsoid}} not positive\n                             or B{C{f}} not less than 1.0.\n        '''\n        try:\n            E = a_ellipsoid\n            if f is None:\n                pass\n            elif _isRadius(E) and isscalar(f):\n                E = a_f2Tuple(E, f)\n            else:\n                raise ValueError()  # _invalid_\n\n            if not _isin(E, _EWGS84, _WGS84):\n                d = _ellipsoidal_datum(E, **name)\n                E =  d.ellipsoid\n                if E.a < EPS or E.f > EPS1:\n                    raise ValueError()  # _invalid_\n                self._datum = d\n                self._E     = E\n\n        except (TypeError, ValueError) as x:\n            t = unstr(self.classname, a=a_ellipsoid, f=f)\n            raise EcefError(_SPACE_(t, _ellipsoid_), cause=x)\n\n        if name:\n            self.name = name\n        if lon00 is not INT0:\n            self.lon00 = lon00\n\n    def __eq__(self, other):\n        '''Compare this and an other Ecef.\n\n           @arg other: The other ecef (C{Ecef*}).\n\n           @return: C{True} if equal, C{False} otherwise.\n        '''\n        return other is self or (isinstance(other, type(self)) and\n                                 other.ellipsoid == self.ellipsoid)\n\n    @Property_RO\n    def datum(self):\n        '''Get the datum (L{Datum}).\n        '''\n        return self._datum\n\n    @Property_RO\n    def ellipsoid(self):\n        '''Get the ellipsoid (L{Ellipsoid} or L{Ellipsoid2}).\n        '''\n        return self._E\n\n    @Property_RO\n    def equatoradius(self):\n        '''Get the C{ellipsoid}'s equatorial radius, semi-axis (C{meter}).\n        '''\n        return self.ellipsoid.a\n\n    a = equatorialRadius = equatoradius  # Karney property\n\n    @Property_RO\n    def flattening(self):  # Karney property\n        '''Get the C{ellipsoid}'s flattening (C{scalar}), positive for\n           I{oblate}, negative for I{prolate} or C{0} for I{near-spherical}.\n        '''\n        return self.ellipsoid.f\n\n    f = flattening\n\n    def _forward(self, lat, lon, h, name, M=False, _philam=False):  # in .ltp.LocalCartesian.forward and -.reset\n        '''(INTERNAL) Common for all C{Ecef*}.\n        '''\n        if _philam:  # lat, lon in radians\n            sa, ca, sb, cb = sincos2_(lat, lon)\n            lat = Lat(degrees90( lat), Error=EcefError)\n            lon = Lon(degrees180(lon), Error=EcefError)\n        else:\n            sa, ca, sb, cb = sincos2d_(lat, lon)\n\n        E =  self.ellipsoid\n        n =  E.roc1_(sa, ca) if self._isYou else E.roc1_(sa)\n        c = (h + n) * ca\n        x = cb * c\n        y = sb * c\n        z = (h + n * E.e21) * sa\n\n        m = self._Matrix(sa, ca, sb, cb) if M else None\n        return Ecef9Tuple(x, y, z, lat, lon, h,\n                                   0, m, self.datum,  # C=0, always\n                                   name=self._name__(name))\n\n    def forward(self, latlonh, lon=None, height=0, M=False, **name):\n        '''Convert from geodetic C{(lat, lon, height)} to geocentric C{(x, y, z)}.\n\n           @arg latlonh: Either a C{LatLon}, an L{Ecef9Tuple} or C{scalar}\n                         latitude (C{degrees}).\n           @kwarg lon: Optional C{scalar} longitude for C{scalar} B{C{latlonh}}\n                       (C{degrees}).\n           @kwarg height: Optional height (C{meter}), vertically above (or below)\n                          the surface of the ellipsoid.\n           @kwarg M: Optionally, return the rotation L{EcefMatrix} (C{bool}).\n           @kwarg name: Optional C{B{name}=NN} (C{str}).\n\n           @return: An L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)} with\n                    geocentric C{(x, y, z)} coordinates for the given geodetic ones\n                    C{(lat, lon, height)}, case C{C} 0, optional C{M} (L{EcefMatrix})\n                    and C{datum} if available.\n\n           @raise EcefError: If B{C{latlonh}} not C{LatLon}, L{Ecef9Tuple} or\n                             C{scalar} or B{C{lon}} not C{scalar} for C{scalar}\n                             B{C{latlonh}} or C{abs(lat)} exceeds 90°.\n\n           @note: Use method C{.forward_} to specify C{lat} and C{lon} in C{radians}\n                  and avoid double angle conversions.\n        '''\n        llhn = _llhn4(latlonh, lon, height, **name)\n        return self._forward(*llhn, M=M)\n\n    def forward_(self, phi, lam, height=0, M=False, **name):\n        '''Like method C{.forward} except with geodetic lat- and longitude given\n           in I{radians}.\n\n           @arg phi: Latitude in I{radians} (C{scalar}).\n           @arg lam: Longitude in I{radians} (C{scalar}).\n           @kwarg height: Optional height (C{meter}), vertically above (or below)\n                          the surface of the ellipsoid.\n           @kwarg M: Optionally, return the rotation L{EcefMatrix} (C{bool}).\n           @kwarg name: Optional C{B{name}=NN} (C{str}).\n\n           @return: An L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n                    with C{lat} set to C{degrees90(B{phi})} and C{lon} to\n                    C{degrees180(B{lam})}.\n\n           @raise EcefError: If B{C{phi}} or B{C{lam}} invalid or not C{scalar}.\n        '''\n        try:  # like function C{_llhn4} below\n            plhn = Phi(phi), Lam(lam), Height(height), _name__(name)\n        except (TypeError, ValueError) as x:\n            raise EcefError(phi=phi, lam=lam, height=height, cause=x)\n        return self._forward(*plhn, M=M, _philam=True)\n\n    @property_ROver\n    def _Geocentrics(self):\n        '''(INTERNAL) Get the valid geocentric classes. I{once}.\n        '''\n        return (Ecef9Tuple,  # overwrite property_ROver\n               _MODS.vector3d.Vector3d)  # _MODS.cartesianBase.CartesianBase\n\n    @property\n    def lon00(self):\n        '''Get the I{\"polar\"} longitude (C{degrees}), see method C{reverse}.\n        '''\n        return self._lon00\n\n    @lon00.setter  # PYCHOK setter!\n    def lon00(self, lon00):\n        '''Set the I{\"polar\"} longitude (C{degrees}), see method C{reverse}.\n        '''\n        self._lon00 = Degrees(lon00=lon00)\n\n    def _Matrix(self, sa, ca, sb, cb):\n        '''Creation a rotation matrix.\n\n           @arg sa: C{sin(phi)} (C{float}).\n           @arg ca: C{cos(phi)} (C{float}).\n           @arg sb: C{sin(lambda)} (C{float}).\n           @arg cb: C{cos(lambda)} (C{float}).\n\n           @return: An L{EcefMatrix}.\n        '''\n        return self._xnamed(EcefMatrix(sa, ca, sb, cb))\n\n    def _polon(self, y, x, p, **lon00_name):\n        '''(INTERNAL) Handle I{\"polar\"} longitude.\n        '''\n        return atan2d(y, x) if p else _xkwds_get(lon00_name, lon00=self.lon00)\n\n    def reverse(self, xyz, y=None, z=None, M=False, **tol_lon00_name):  # PYCHOK no cover\n        '''I{Must be overloaded}.'''\n        self._notOverloaded(xyz, y=y, z=z, M=M, **tol_lon00_name)\n\n    def toStr(self, prec=9, **unused):  # PYCHOK signature\n        '''Return this C{Ecef*} as a string.\n\n           @kwarg prec: Precision, number of decimal digits (0..9).\n\n           @return: This C{Ecef*} (C{str}).\n        '''\n        return self.attrs(_a_, _f_, _datum_, _name_, prec=prec)  # _ellipsoid_\n\n    def _xyzllhCpn9(self, xyz, y, z, **lon00_name):\n        '''(INTERNAL) Get C{x, y, z} and determine case C{C}, C{lat}, C{lon}, etc.\n        '''\n        x, y, z, n = _xyzn4(xyz, y, z, self._Geocentrics, **lon00_name)\n\n        s, c, p = _norm3(y, x)  # distance to polar axis\n        if p < EPS0:  # polar\n            lat = copysign0(_90_0, z)\n            h   = fabs(z) - self.ellipsoid.b\n            C   = 2\n            p   = 0  # force lon00\n        elif fabs(z) < EPS0:  # equatorial\n            lat = _0_0\n            h   = p - self.ellipsoid.a\n            C   = 3\n        else:  # see _norm7 below, EcefKarney\n            h = hypot(z, p)  # distance to earth center\n            if h > self.ellipsoid._heightMax:\n                lat = atan1d(z / h, p / h)\n                C   = 4  # too high\n#               p  *= _0_5\n            else:  # pass h for EcefVeness\n                lat = None  # -90..90\n                C   = 1  # normal\n        lon = self._polon(s, c, p, **lon00_name)\n        return x, y, z, lat, lon, h, C, p, self._name__(n)\n\n\nclass EcefFarrell21(_EcefBase):\n    '''Conversion between geodetic and geocentric, I{Earth-Centered, Earth-Fixed} (ECEF)\n       coordinates based on I{Jay A. Farrell}'s U{Table 2.1<https://Books.Google.com/\n       books?id=fW4foWASY6wC>}, page 29.\n    '''\n\n    def reverse(self, xyz, y=None, z=None, M=None, **lon00_name):  # PYCHOK unused M\n        '''Convert from geocentric C{(x, y, z)} to geodetic C{(lat, lon, height)} using\n           I{Farrell}'s U{Table 2.1<https://Books.Google.com/books?id=fW4foWASY6wC>},\n           page 29, aka the I{Heikkinen application} of U{Ferrari's solution\n           <https://WikiPedia.org/wiki/Geographic_coordinate_conversion>}.\n\n           @arg xyz: A geocentric (C{Cartesian}, L{Ecef9Tuple}) or C{scalar} ECEF C{x}\n                     coordinate (C{meter}).\n           @kwarg y: ECEF C{y} coordinate for C{scalar} B{C{xyz}} and B{C{z}} (C{meter}).\n           @kwarg z: ECEF C{z} coordinate for C{scalar} B{C{xyz}} and B{C{y}} (C{meter}).\n           @kwarg M: I{Ignored}, rotation matrix C{M} not available.\n           @kwarg lon00_name: Optional C{B{name}=NN} (C{str}) and optional keyword argument\n                        C{B{lon00}=INT0} (C{degrees}), an arbitrary I{\"polar\"} longitude\n                        returned if C{B{x}=0} and C{B{y}=0}, see property C{lon00}.\n\n           @return: An L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)} with\n                    geodetic coordinates C{(lat, lon, height)} for the given geocentric\n                    ones C{(x, y, z)}, case C{C}, C{M=None} always and C{datum}.\n\n           @raise EcefError: Invalid B{C{xyz}} or C{scalar} C{x} or B{C{y}} and/or B{C{z}}\n                             not C{scalar} for C{scalar} B{C{xyz}} or C{sqrt} domain or\n                             zero division error.\n\n           @see: L{EcefFarrell22} and L{EcefVeness}.\n        '''\n        x, y, z, lat, lon, h, C, p, name = self._xyzllhCpn9(xyz, y, z, **lon00_name)\n        if lat is None:\n            E   = self.ellipsoid\n            a   = E.a\n            a2  = E.a2\n            b2  = E.b2\n            e2  = E.e2\n            e2_ = E.e2abs * E.a2_b2  # (E.e * E.a_b)**2 = 0.0820944... WGS84\n            e4  = E.e4\n\n            try:  # names as page 29\n                z2 = z**2\n                ez = z2 * (_1_0 - e2)  # E.e2s2(z)\n\n                p2 = p**2\n                G  = p2 + ez - e2 * (a2 - b2)  # p2 + ez - e4 * a2\n                F  = b2 * z2 * 54\n                c  = e4 * p2 * F / G**3\n                s  = sqrt(c * (c + _2_0))\n                c  = cbrt(s +  c + _1_0)\n                G *= fsumf_(c, _1_0, _1_0 / c)  # k\n                P  = F / (G**2 * _3_0)\n                Q  = sqrt(_2_0 * e4 * P + _1_0)\n                Q1 = Q +  _1_0\n                s  = fsumf_(a2 * (Q1 / Q) * _0_5,\n                            -P * ez / (Q * Q1),\n                            -P * p2 * _0_5)\n                r = P * p * e2 / Q1 - sqrt(s)\n                r = p + r * e2\n                v = b2 / (sqrt(r**2 + ez) * a)  # z0 / z\n\n                h = hypot(r, z) * (_1_0 - v)\n                lat = atan1d((e2_ * v + _1_0) * z, p)\n                # note, phi and lam are swapped on page 29\n\n            except (ValueError, ZeroDivisionError) as X:\n                raise EcefError(x=x, y=y, z=z, cause=X)\n\n        return Ecef9Tuple(x, y, z, lat, lon, h,\n                                   C, None, self.datum, name=name)\n\n\nclass EcefFarrell22(_EcefBase):\n    '''Conversion between geodetic and geocentric, I{Earth-Centered, Earth-Fixed} (ECEF)\n       coordinates based on I{Jay A. Farrell}'s U{Table 2.2<https://Books.Google.com/\n       books?id=fW4foWASY6wC>}, page 30.\n    '''\n\n    def reverse(self, xyz, y=None, z=None, M=None, **lon00_name):  # PYCHOK unused M\n        '''Convert from geocentric C{(x, y, z)} to geodetic C{(lat, lon, height)} using\n           I{Farrell}'s U{Table 2.2<https://Books.Google.com/books?id=fW4foWASY6wC>},\n           page 30.\n\n           @arg xyz: A geocentric (C{Cartesian}, L{Ecef9Tuple}) or C{scalar} ECEF C{x}\n                     coordinate (C{meter}).\n           @kwarg y: ECEF C{y} coordinate for C{scalar} B{C{xyz}} and B{C{z}} (C{meter}).\n           @kwarg z: ECEF C{z} coordinate for C{scalar} B{C{xyz}} and B{C{y}} (C{meter}).\n           @kwarg M: I{Ignored}, rotation matrix C{M} not available.\n           @kwarg lon00_name: Optional C{B{name}=NN} (C{str}) and optional keyword argument\n                        C{B{lon00}=INT0} (C{degrees}), an arbitrary I{\"polar\"} longitude\n                        returned if C{B{x}=0} and C{B{y}=0}, see property C{lon00}.\n\n           @return: An L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)} with\n                    geodetic coordinates C{(lat, lon, height)} for the given geocentric\n                    ones C{(x, y, z)}, case C{C}, C{M=None} always and C{datum}.\n\n           @raise EcefError: Invalid B{C{xyz}} or C{scalar} C{x} or B{C{y}} and/or B{C{z}}\n                             not C{scalar} for C{scalar} B{C{xyz}} or C{sqrt} domain or\n                             zero division error.\n\n           @see: L{EcefFarrell21} and L{EcefVeness}.\n        '''\n        x, y, z, lat, lon, h, C, p, name = self._xyzllhCpn9(xyz, y, z, **lon00_name)\n        if lat is None:\n            E = self.ellipsoid\n            a, b    =  E.a, E.b\n            s, c, _ = _norm3(z * a, p * b)\n            s, c, _ = _norm3(z + s**3 * b * E.e22,\n                             p - c**3 * a * E.e2)\n            lat = atan1d(s, c)\n            h = (p / fabs(c) - (E.roc1_(s) if s else a)) if c else (fabs(z) - b)\n            # note, phi and lam are swapped on page 30\n\n        return Ecef9Tuple(x, y, z, lat, lon, h,\n                                   C, None, self.datum, name=name)\n\n\nclass EcefKarney(_EcefBase):\n    '''Conversion between geodetic and geocentric, I{Earth-Centered, Earth-Fixed} (ECEF)\n       coordinates transcoded from I{Karney}'s C++ U{Geocentric<https://GeographicLib.SourceForge.io/\n       C++/doc/classGeographicLib_1_1Geocentric.html>} methods.\n\n       @note: On methods C{.forward} and C{.forwar_}, let C{v} be a unit vector located\n              at C{(lat, lon, h)}.  We can express C{v} as column vectors in one of two\n              ways, C{v1} in East, North, Up (ENU) coordinates (where the components are\n              relative to a local coordinate system at C{C(lat0, lon0, h0)}) or as C{v0}\n              in geocentric C{x, y, z} coordinates.  Then, M{v0 = M ⋅ v1} where C{M} is\n              the rotation matrix.\n    '''\n\n    def reverse(self, xyz, y=None, z=None, M=False, **lon00_name):\n        '''Convert from geocentric C{(x, y, z)} to geodetic C{(lat, lon, height)}.\n\n           @arg xyz: A geocentric (C{Cartesian}, L{Ecef9Tuple}) or C{scalar} ECEF C{x}\n                     coordinate (C{meter}).\n           @kwarg y: ECEF C{y} coordinate for C{scalar} B{C{xyz}} and B{C{z}} (C{meter}).\n           @kwarg z: ECEF C{z} coordinate for C{scalar} B{C{xyz}} and B{C{y}} (C{meter}).\n           @kwarg M: Optionally, return the rotation L{EcefMatrix} (C{bool}).\n           @kwarg lon00_name: Optional C{B{name}=NN} (C{str}) and optional keyword argument\n                        C{B{lon00}=INT0} (C{degrees}), an arbitrary I{\"polar\"} longitude\n                        returned if C{B{x}=0} and C{B{y}=0}, see property C{lon00}.\n\n           @return: An L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)} with\n                    geodetic coordinates C{(lat, lon, height)} for the given geocentric\n                    ones C{(x, y, z)}, case C{C}, optional C{M} (L{EcefMatrix}) and\n                    C{datum} if available.\n\n           @raise EcefError: Invalid B{C{xyz}} or C{scalar} C{x} or B{C{y}} and/or B{C{z}}\n                             not C{scalar} for C{scalar} B{C{xyz}}.\n\n           @note: In general, there are multiple solutions and the result which minimizes\n                  C{height} is returned, i.e., the C{(lat, lon)} corresponding to the\n                  closest point on the ellipsoid.  If there are still multiple solutions\n                  with different latitudes (applies only if C{z} = 0), then the solution\n                  with C{lat} > 0 is returned.  If there are still multiple solutions with\n                  different longitudes (applies only if C{x} = C{y} = 0), then C{lon00} is\n                  returned.  The returned C{lon} is in the range [−180°, 180°] and C{height}\n                  is not below M{−E.a * (1 − E.e2) / sqrt(1 − E.e2 * sin(lat)**2)}.  Like\n                  C{forward} above, M{v1 = Transpose(M) ⋅ v0}.\n        '''\n        x, y, z, name = _xyzn4(xyz, y, z, self._Geocentrics, **lon00_name)\n\n        E = self.ellipsoid\n        f = E.f\n\n        sa, ca, sb, cb, R, h, C = _norm7(y, x, z, E)\n        if C:  # PYCHOK no cover\n            pass  # too high, far\n        elif E.e4:  # E.isEllipsoidal\n            # Treat prolate spheroids by swapping R and Z here and by\n            # switching the arguments to phi = atan2(...) at the end.\n            p = (R / E.a)**2\n            q = (z / E.a)**2 * E.e21\n            if f < 0:\n                p, q = q, p\n            r = fsumf_(p, q, -E.e4)\n            e = E.e4 * q\n            if e or r > 0:\n                # Avoid possible division by zero when r = 0 by multiplying\n                # equations for s and t by r^3 and r, respectively.\n                s  = d = e * p / _4_0  # s = r^3 * s\n                u  = r = r / _6_0\n                r2 = r**2\n                r3 = r2 * r\n                t3 = r3 + s\n                d *= t3 + r3\n                if d < 0:\n                    # t is complex, but the way u is defined, the result is real.\n                    # There are three possible cube roots.  We choose the root\n                    # which avoids cancellation.  Note, d < 0 implies r < 0.\n                    u += cos(atan2(sqrt(-d), -t3) / _3_0) * r * _2_0\n                else:\n                    # Pick the sign on the sqrt to maximize abs(t3).  This\n                    # minimizes loss of precision due to cancellation.  The\n                    # result is unchanged because of the way the t is used\n                    # in definition of u.\n                    if d > 0:\n                        t3 += copysign0(sqrt(d), t3)  # t3 = (r * t)^3\n                    # N.B. cbrt always returns the real root, cbrt(-8) = -2.\n                    t = cbrt(t3)  # t = r * t\n                    if t:  # t can be zero; but then r2 / t -> 0.\n                        u = fsumf_(u, t, r2 / t)\n                v = sqrt(e + u**2)  # guaranteed positive\n                # Avoid loss of accuracy when u < 0.  Underflow doesn't occur in\n                # E.e4 * q / (v - u) because u ~ e^4 when q is small and u < 0.\n                u = (e / (v - u)) if u < 0 else (u + v)  # u+v, guaranteed positive\n                # Need to guard against w going negative due to roundoff in u - q.\n                w = E.e2abs * (u - q) / (_2_0 * v)\n                # Rearrange expression for k to avoid loss of accuracy due to\n                # subtraction.  Division by 0 not possible because u > 0, w >= 0.\n                k1 = k2 = (u / (sqrt(u + w**2) + w)) if w > 0 else sqrt(u)\n                if f < 0:\n                    k1 -= E.e2\n                else:\n                    k2 += E.e2\n                sa, ca, h = _norm3(z / k1, R / k2)\n                h *= k1 - E.e21\n                C  = 1\n\n            else:  # e = E.e4 * q == 0 and r <= 0\n                # This leads to k = 0 (oblate, equatorial plane) and k + E.e^2 = 0\n                # (prolate, rotation axis) and the generation of 0/0 in the general\n                # formulas for phi and h, using the general formula and division\n                # by 0 in formula for h.  Handle this case by taking the limits:\n                #   f > 0: z -> 0, k        ->  E.e2 * sqrt(q) / sqrt(E.e4 - p)\n                #   f < 0: r -> 0, k + E.e2 -> -E.e2 * sqrt(q) / sqrt(E.e4 - p)\n                q = E.e4 - p\n                if f < 0:\n                    p, q = q, p\n                    e = E.a\n                else:\n                    e = E.b2_a\n                sa, ca, h = _norm3(sqrt(q * E._1_e21), sqrt(p))\n                if z < 0:  # for tiny negative z, not for prolate\n                    sa = neg(sa)\n                h *= neg(e / E.e2abs)\n                C  = 3\n\n        else:  # E.e4 == 0, spherical case\n            # Dealing with underflow in the general case with E.e2 = 0 is\n            # difficult.  Origin maps to North pole, same as with ellipsoid.\n            sa, ca, _ = _norm3((z if h else _1_0), R)\n            h -= E.a\n            C  = 2\n\n        # lon00 <https://GitHub.com/mrJean1/PyGeodesy/issues/77>\n        lon = self._polon(sb, cb, R, **lon00_name)\n        m   = self._Matrix(sa, ca, sb, cb) if M else None\n        return Ecef9Tuple(x, y, z, atan1d(sa, ca), lon, h,\n                                   C, m, self.datum, name=self._name__(name))\n\n\nclass EcefSudano(_EcefBase):\n    '''Conversion between geodetic and geocentric, I{Earth-Centered, Earth-Fixed} (ECEF) coordinates\n       based on I{John J. Sudano}'s U{paper<https://www.ResearchGate.net/publication/3709199>}.\n    '''\n    _tol = EPS0  # DEPRECATED\n\n    def reverse(self, xyz, y=None, z=None, M=None, tol=EPS, **lon00_name):  # PYCHOK unused M\n        '''Convert from geocentric C{(x, y, z)} to geodetic C{(lat, lon, height)} using\n           I{Sudano}'s U{iterative method<https://www.ResearchGate.net/publication/3709199>}.\n\n           @arg xyz: A geocentric (C{Cartesian}, L{Ecef9Tuple}) or C{scalar} ECEF C{x}\n                     coordinate (C{meter}).\n           @kwarg y: ECEF C{y} coordinate for C{scalar} B{C{xyz}} and B{C{z}} (C{meter}).\n           @kwarg z: ECEF C{z} coordinate for C{scalar} B{C{xyz}} and B{C{y}} (C{meter}).\n           @kwarg M: I{Ignored}, rotation matrix C{M} not available.\n           @kwarg tol: Convergence tolerance for C{sin}(latitude) (C{scalar}).\n           @kwarg lon00_name: Optional C{B{name}=NN} (C{str}) and optional keyword argument\n                        C{B{lon00}=INT0} (C{degrees}), an arbitrary I{\"polar\"} longitude\n                        returned if C{B{x}=0} and C{B{y}=0}, see property C{lon00}.\n\n           @return: An L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)} with geodetic\n                    coordinates C{(lat, lon, height)} for the given geocentric ones C{(x, y, z)},\n                    case C{C}, C{M=None} always and C{datum} if available.\n\n           @raise EcefError: Invalid B{C{xyz}} or C{scalar} C{x} or B{C{y}} and/or B{C{z}}\n                             not C{scalar} for C{scalar} B{C{xyz}} or no convergence.\n\n           @see: Class L{EcefUPC}.\n        '''\n        x, y, z, lat, lon, h, C, p, name = self._xyzllhCpn9(xyz, y, z, **lon00_name)\n        if lat is None:\n            E = self.ellipsoid\n            e = E.e2 * E.a\n            d = e - p\n\n            sa, ca, _ = _norm3(fabs(z), p * E.e21)\n            _S2 = Fsum(sa).fsum2f_\n            tol = Scalar_(tol=tol, low=self.tolerance, Error=EcefError)\n            # Sudano's Eq (A-6) and (A-7) refactored/reduced,\n            # replacing Rn from Eq (A-4) with n = E.a / ca:\n            # N = ca**2 * ((z + E.e2 * n * sa) * ca - p * sa)\n            #   = ca**2 * (z * ca + E.e2 * E.a * sa - p * sa)\n            #   = ca**2 * (z * ca + (E.e2 * E.a - p) * sa)\n            # D = ca**3 * (E.e2 * n / E.e2s2(sa)) - p\n            #   = ca**2 * (E.e2 * E.a / E.e2s2(sa) - p / ca**2)\n            # N / D = (z * ca + (E.e2 * E.a - p) * sa) /\n            #         (E.e2 * E.a / E.e2s2(sa) - p / ca**2)\n            for i in range(1, _TRIPS):  # 6+ max\n                ca2 = _1_0 - sa**2\n                if ca2 < EPS02:\n                    break\n                D = p / ca2 - e / E.e2s2(sa)\n                if fabs(D) < EPS0:\n                    break\n                ca = sqrt(ca2)\n                sa, D = _S2(z * ca / D, d * sa / D)\n                if fabs(D) < tol:\n                    break\n            else:\n                t = unstr(self.reverse, x=x, y=y, z=z)\n                raise EcefError(t, txt=Fmt.no_convergence(D, tol))\n\n            sa = copysign0(sa, z)\n            lat = atan1d(sa, ca)\n            # h = (fabs(z) + p - E.a * cos(a + E.e21) * sa / ca) / (ca + sa)\n            # Sudano's Eq (7) doesn't produce the correct height, ...\n            h = E._heightB(sa, ca, z, p)  # ... use Veness' (Bowring eqn 7)\n        else:\n            i = 0\n        return Ecef9Tuple(x, y, z, lat, lon, h,\n                                   C, None, self.datum,  # M=None\n                                   iteration=i, name=name)\n\n    @deprecated_property\n    def tolerance(self):\n        '''DEPRECATED on 2025.08.22, use keyword argument C{tol}.'''\n        return self._tol\n\n    @tolerance.setter  # PYCHOK setter!\n    def tolerance(self, tol):\n        self._tol = Scalar_(tolerance=tol, low=EPS0, Error=EcefError)\n\n\nclass EcefUPC(_EcefBase):\n    '''Conversion between geodetic and geocentric, I{Earth-Centered, Earth-Fixed} (ECEF) coordinates based on\n       I{UPC}'s U{method<https://GSSC.ESA.int/navipedia/index.php/Ellipsoidal_and_Cartesian_Coordinates_Conversion>}.\n    '''\n\n    def reverse(self, xyz, y=None, z=None, M=None, tol=EPS, **lon00_name):  # PYCHOK unused M\n        '''Convert from geocentric C{(x, y, z)} to geodetic C{(lat, lon, height)} using I{UPC}'s\n           U{iterative method<https://GSSC.ESA.int/navipedia/GNSS_Book/ESA_GNSS-Book_TM-23_Vol_I.pdf>}, page 186.\n\n           @arg xyz: A geocentric (C{Cartesian}, L{Ecef9Tuple}) or C{scalar} ECEF C{x}\n                     coordinate (C{meter}).\n           @kwarg y: ECEF C{y} coordinate for C{scalar} B{C{xyz}} and B{C{z}} (C{meter}).\n           @kwarg z: ECEF C{z} coordinate for C{scalar} B{C{xyz}} and B{C{y}} (C{meter}).\n           @kwarg M: I{Ignored}, rotation matrix C{M} not available.\n           @kwarg tol: Convergence tolerance for the latitude (C{radians}).\n           @kwarg lon00_name: Optional C{B{name}=NN} (C{str}) and optional keyword argument\n                        C{B{lon00}=INT0} (C{degrees}), an arbitrary I{\"polar\"} longitude\n                        returned if C{B{x}=0} and C{B{y}=0}, see property C{lon00}.\n\n           @return: An L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)} with geodetic\n                    coordinates C{(lat, lon, height)} for the given geocentric ones C{(x, y, z)},\n                    case C{C}, C{M=None} always and C{datum} if available.\n\n           @raise EcefError: Invalid B{C{xyz}} or C{scalar} C{x} or B{C{y}} and/or B{C{z}}\n                             not C{scalar} for C{scalar} B{C{xyz}} or no convergence.\n\n           @see: Class L{EcefSudano}.\n        '''\n        x, y, z, lat, lon, h, C, p, name = self._xyzllhCpn9(xyz, y, z, **lon00_name)\n        if lat is None:\n            E  = self.ellipsoid\n            a  = E.a\n            e2 = E.e2  # signed\n\n            z_p = z / p\n            ph0 = atan1(z_p, E.e21)\n            tol = Radians_(tol=tol, low=EPS0, Error=EcefError)\n            for i in range(1, _TRIPS):  # 5..6 max\n                s, c = sincos2(ph0)\n                N = a / sqrt(_1_0 - s**2 * e2)\n                h = p / c - N\n                phi = atan1(z_p, _1_0 - e2 * (N / (N + h)))\n                r = fabs(phi - ph0)\n                if r < tol:\n                    lat = copysign0(degrees(phi), z)\n                    break\n                ph0 = phi\n            else:\n                t = unstr(self.reverse, x=x, y=y, z=z)\n                raise EcefError(t, txt=Fmt.no_convergence(r, tol))\n        else:\n            i = 0\n        return Ecef9Tuple(x, y, z, lat, lon, h,\n                                   C, None, self.datum,  # M=None\n                                   iteration=i, name=name)\n\n\nclass EcefVeness(_EcefBase):\n    '''Conversion between geodetic and geocentric, I{Earth-Centered, Earth-Fixed} (ECEF) coordinates\n       transcoded from I{Chris Veness}' JavaScript classes U{LatLonEllipsoidal, Cartesian<https://\n       www.Movable-Type.co.UK/scripts/geodesy/docs/latlon-ellipsoidal.js.html>}.\n\n       @see: U{I{A Guide to Coordinate Systems in Great Britain}<https://www.OrdnanceSurvey.co.UK/\n             documents/resources/guide-coordinate-systems-great-britain.pdf>}, section I{B) Converting\n             between 3D Cartesian and ellipsoidal latitude, longitude and height coordinates}.\n    '''\n\n    def reverse(self, xyz, y=None, z=None, M=None, **lon00_name):  # PYCHOK unused M\n        '''Conversion from geocentric C{(x, y, z)} to geodetic C{(lat, lon, height)}\n           transcoded from I{Chris Veness}' U{JavaScript<https://www.Movable-Type.co.UK/\n           scripts/geodesy/docs/latlon-ellipsoidal.js.html>}.\n\n           Uses B. R. Bowring’s formulation for μm precision in concise form U{I{The accuracy\n           of geodetic latitude and height equations}<https://www.ResearchGate.net/publication/\n           233668213>}, Survey Review, Vol 28, 218, Oct 1985.\n\n           @arg xyz: A geocentric (C{Cartesian}, L{Ecef9Tuple}) or C{scalar} ECEF C{x}\n                     coordinate (C{meter}).\n           @kwarg y: ECEF C{y} coordinate for C{scalar} B{C{xyz}} and B{C{z}} (C{meter}).\n           @kwarg z: ECEF C{z} coordinate for C{scalar} B{C{xyz}} and B{C{y}} (C{meter}).\n           @kwarg M: I{Ignored}, rotation matrix C{M} not available.\n           @kwarg lon00_name: Optional C{B{name}=NN} (C{str}) and optional keyword argument\n                        C{B{lon00}=INT0} (C{degrees}), an arbitrary I{\"polar\"} longitude\n                        returned if C{B{x}=0} and C{B{y}=0}, see property C{lon00}.\n\n           @return: An L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)} with\n                    geodetic coordinates C{(lat, lon, height)} for the given geocentric\n                    ones C{(x, y, z)}, case C{C}, C{M=None} always and C{datum} if available.\n\n           @raise EcefError: Invalid B{C{xyz}} or C{scalar} C{x} or B{C{y}} and/or B{C{z}}\n                             not C{scalar} for C{scalar} B{C{xyz}}.\n\n           @see: Toms, Ralph M. U{I{An Efficient Algorithm for Geocentric to Geodetic\n                 Coordinate Conversion}<https://www.OSTI.gov/scitech/biblio/110235>},\n                 Sept 1995 and U{I{An Improved Algorithm for Geocentric to Geodetic\n                 Coordinate Conversion}<https://www.OSTI.gov/scitech/servlets/purl/231228>},\n                 Apr 1996, both from Lawrence Livermore National Laboratory (LLNL) and\n                 Sudano, John J, U{I{An exact conversion from an Earth-centered coordinate\n                 system to latitude longitude and altitude}<https://www.ResearchGate.net/\n                 publication/3709199>}.\n        '''\n        x, y, z, lat, lon, h, C, p, name = self._xyzllhCpn9(xyz, y, z, **lon00_name)\n        if lat is None:\n            E =  self.ellipsoid\n            a =  E.a\n            B =  E.b * E.e22\n            # parametric latitude (Bowring eqn 17, replaced)\n            t = (E.b * z) / (a * p) * (_1_0 + B / h)  # h = hypot(z, p)\n            c = _1_0 / hypot1(t)\n            s =  c * t\n            # geodetic latitude (Bowring eqn 18)\n            s, c, _ = _norm3(z + s**3 * B,\n                             p - c**3 * a * E.e2)\n            lat = atan1d(s, c)\n            h = E._heightB(s, c, z, p)  # height (Bowring eqn 7)\n\n        return Ecef9Tuple(x, y, z, lat, lon, h,\n                                   C, None, self.datum, name=name)\n\n\nclass EcefYou(_EcefBase):\n    '''Conversion between geodetic and geocentric, I{Earth-Centered, Earth-Fixed} (ECEF) coordinates\n       using I{Rey-Jer You}'s U{transformation<https://www.ResearchGate.net/publication/240359424>}\n       for I{non-prolate} ellipsoids.\n\n       @see: Featherstone, W.E., Claessens, S.J. U{I{Closed-form transformation between geodetic and\n             ellipsoidal coordinates}<https://Espace.Curtin.edu.AU/bitstream/handle/20.500.11937/\n             11589/115114_9021_geod2ellip_final.pdf>} Studia Geophysica et Geodaetica, 2008, 52,\n             pages 1-18 and U{PyMap3D <https://PyPI.org/project/pymap3d>}.\n    '''\n    _isYou = True\n\n    def __init__(self, a_ellipsoid=_EWGS84, f=None, **lon00_name):  # PYCHOK signature\n        _EcefBase.__init__(self, a_ellipsoid, f=f, **lon00_name)  # inherited documentation\n\n        E  = self.ellipsoid\n        e2 = E.a2 - E.b2\n        if e2 < 0 or E.f < 0:\n            raise EcefError(ellipsoid=E, txt=_prolate_)\n        self._ee2 = sqrt0(e2), e2\n\n    def reverse(self, xyz, y=None, z=None, M=None, **lon00_name):  # PYCHOK unused M\n        '''Convert geocentric C{(x, y, z)} to geodetic C{(lat, lon, height)}\n           using I{Rey-Jer You}'s transformation.\n\n           @arg xyz: A geocentric (C{Cartesian}, L{Ecef9Tuple}) or C{scalar} ECEF C{x}\n                     coordinate (C{meter}).\n           @kwarg y: ECEF C{y} coordinate for C{scalar} B{C{xyz}} and B{C{z}} (C{meter}).\n           @kwarg z: ECEF C{z} coordinate for C{scalar} B{C{xyz}} and B{C{y}} (C{meter}).\n           @kwarg M: I{Ignored}, rotation matrix C{M} not available.\n           @kwarg lon00_name: Optional C{B{name}=NN} (C{str}) and optional keyword argument\n                       C{B{lon00}=INT0} (C{degrees}), an arbitrary I{\"polar\"} longitude\n                       returned if C{B{x}=0} and C{B{y}=0}, see property C{lon00}.\n\n           @return: An L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)} with\n                    geodetic coordinates C{(lat, lon, height)} for the given geocentric\n                    ones C{(x, y, z)}, case C{C}, C{M=None} always and C{datum} if available.\n\n           @raise EcefError: Invalid B{C{xyz}} or C{scalar} C{x} or B{C{y}} and/or\n                             B{C{z}} not C{scalar} for C{scalar} B{C{xyz}} or the\n                             ellipsoid is I{prolate}.\n        '''\n        x, y, z, lat, lon, h, C, p, name = self._xyzllhCpn9(xyz, y, z, **lon00_name)\n        if lat is None:\n            E = self.ellipsoid\n            a, b  = E.a, E.b\n            e, e2 = self._ee2\n\n            u  =  hypot2_(x, y, z) - e2\n            u +=  hypot(u, e * z * _2_0)\n            u *= _0_5\n            if u > EPS02:\n                u = sqrt(u)\n                q = hypot(u, e)\n                B = atan1(q * z, u * p)  # beta0 = atan(q / u * z / p)\n                sB, cB = sincos2(B)\n                if cB and sB:\n                    q *= a\n                    d  = (q / cB - e2 * cB) / sB\n                    if isnon0(d):\n                        B += fsumf_(u * b, -q, e2) / d\n                        sB, cB = sincos2(B)\n            elif u < (-EPS02):\n                raise EcefError(x=x, y=y, z=z, u=u, txt=_singular_)\n            else:  # near polar  # PYCHOK no cover\n                sB, cB, C = _copysign_1_0(z), _0_0, 2\n\n            lat = atan1d( a * sB,     b * cB)  # atan(E.a_b * tan(B))\n            h = hypot(p - a * cB, z - b * sB)\n            if hypot2_(x, y, z * E.a_b) < E.a2:  # or lat < 0 or z < 0\n                h = neg(h)  # inside ellipsoid\n\n        return Ecef9Tuple(x, y, z, lat, lon, h,\n                                   C, None, self.datum, name=name)\n\n\nclass EcefMatrix(_NamedTuple):\n    '''A rotation matrix known as I{East-North-Up (ENU) to ECEF}.\n\n       @see: U{From ENU to ECEF<https://WikiPedia.org/wiki/\n             Geographic_coordinate_conversion#From_ECEF_to_ENU>} and\n             U{Issue #74<https://Github.com/mrJean1/PyGeodesy/issues/74>}.\n    '''\n    _Names_ = ('_0_0_', '_0_1_', '_0_2_',  # row-order\n               '_1_0_', '_1_1_', '_1_2_',\n               '_2_0_', '_2_1_', '_2_2_')\n    _Units_ = (Scalar,) * len(_Names_)\n\n    def _validate(self, **unused):  # PYCHOK unused\n        '''(INTERNAL) Allow C{_Names_} with leading underscore.\n        '''\n        _NamedTuple._validate(self, underOK=True)\n\n    def __new__(cls, sa, ca, sb, cb, *_more, **name):\n        '''New L{EcefMatrix} matrix.\n\n           @arg sa: C{sin(phi)} (C{float}).\n           @arg ca: C{cos(phi)} (C{float}).\n           @arg sb: C{sin(lambda)} (C{float}).\n           @arg cb: C{cos(lambda)} (C{float}).\n           @arg _more: (INTERNAL) from C{.multiply}.\n\n           @raise EcefError: If B{C{sa}}, B{C{ca}}, B{C{sb}} or\n                             B{C{cb}} outside M{[-1.0, +1.0]}.\n        '''\n        t = sa, ca, sb, cb\n        if _more:  # all 9 matrix elements ...\n            t += _more  # ... from .multiply\n\n        elif max(map(fabs, t)) > _1_0:\n            raise EcefError(unstr(EcefMatrix, *t))\n\n        else:  # build matrix from the following quaternion operations\n            #   qrot(lam, [0,0,1]) * qrot(phi, [0,-1,0]) * [1,1,1,1]/2\n            # or\n            #   qrot(pi/2 + lam, [0,0,1]) * qrot(-pi/2 + phi, [-1,0,0])\n            # where\n            #   qrot(t,v) = [cos(t/2), sin(t/2)*v[1], sin(t/2)*v[2], sin(t/2)*v[3]]\n\n            # Local X axis (East) in geocentric coords\n            #  M[0] = -slam;        M[3] =  clam;        M[6] = 0;\n            # Local Y axis (North) in geocentric coords\n            #  M[1] = -clam * sphi; M[4] = -slam * sphi; M[7] = cphi;\n            # Local Z axis (Up) in geocentric coords\n            #  M[2] =  clam * cphi; M[5] =  slam * cphi; M[8] = sphi;\n            t = (-sb, -cb * sa, cb * ca,\n                  cb, -sb * sa, sb * ca,\n                _0_0,       ca,      sa)\n\n        return _NamedTuple.__new__(cls, *t, **name)\n\n    def column(self, column):\n        '''Get this matrix' B{C{column}} 0, 1 or 2 as C{3-tuple}.\n        '''\n        if 0 <= column < 3:\n            return self[column::3]\n        raise _IndexError(column=column)\n\n    def copy(self, **unused):  # PYCHOK signature\n        '''Make a shallow or deep copy of this instance.\n\n           @return: The copy (C{This class} or subclass thereof).\n        '''\n        return self.classof(*self)\n\n    __copy__ = __deepcopy__ = copy\n\n    @Property_RO\n    def matrix3(self):\n        '''Get this matrix' rows (C{3-tuple} of 3 C{3-tuple}s).\n        '''\n        return tuple(map(self.row, range(3)))\n\n    @Property_RO\n    def matrixTransposed3(self):\n        '''Get this matrix' I{Transposed} rows (C{3-tuple} of 3 C{3-tuple}s).\n        '''\n        return tuple(map(self.column, range(3)))\n\n    def multiply(self, other):\n        '''Matrix multiply M{M0' ⋅ M} this matrix I{Transposed}\n           with an other matrix.\n\n           @arg other: The other matrix (L{EcefMatrix}).\n\n           @return: The matrix product (L{EcefMatrix}).\n\n           @raise TypeError: If B{C{other}} is not an L{EcefMatrix}.\n        '''\n        _xinstanceof(EcefMatrix, other=other)\n        # like LocalCartesian.MatrixMultiply, C{self.matrixTransposed3 X other.matrix3}\n        # <https://GeographicLib.SourceForge.io/C++/doc/LocalCartesian_8cpp_source.html>\n        # X = (fdot(self.column(r), *other.column(c)) for r in (0,1,2) for c in (0,1,2))\n        X = (fdot(self[r::3], *other[c::3]) for r in range(3) for c in range(3))\n        return _xnamed(EcefMatrix(*X), typename(EcefMatrix.multiply))\n\n    def rotate(self, xyz, *xyz0):\n        '''Forward rotation M{M0' ⋅ ([x, y, z] - [x0, y0, z0])'}.\n\n           @arg xyz: Local C{(x, y, z)} coordinates (C{3-tuple}).\n           @arg xyz0: Optional, local C{(x0, y0, z0)} origin (C{3-tuple}).\n\n           @return: Rotated C{(x, y, z)} location (C{3-tuple}).\n\n           @raise LenError: Unequal C{len(B{xyz})} and C{len(B{xyz0})}.\n        '''\n        if xyz0:\n            if len(xyz0) != len(xyz):\n                raise LenError(self.rotate, xyz0=len(xyz0), xyz=len(xyz))\n            xyz = tuple(c - c0 for c, c0 in zip(xyz, xyz0))\n\n        # x' = M[0] * x + M[3] * y + M[6] * z\n        # y' = M[1] * x + M[4] * y + M[7] * z\n        # z' = M[2] * x + M[5] * y + M[8] * z\n        return (fdot(xyz, *self[0::3]),  # .column(0)\n                fdot(xyz, *self[1::3]),  # .column(1)\n                fdot(xyz, *self[2::3]))  # .column(2)\n\n    def row(self, row):\n        '''Get this matrix' B{C{row}} 0, 1 or 2 as C{3-tuple}.\n        '''\n        if 0 <= row < 3:\n            r = row * 3\n            return self[r:r+3]\n        raise _IndexError(row=row)\n\n    def unrotate(self, xyz, *xyz0):\n        '''Inverse rotation M{[x0, y0, z0] + M0 ⋅ [x,y,z]'}.\n\n           @arg xyz: Local C{(x, y, z)} coordinates (C{3-tuple}).\n           @arg xyz0: Optional, local C{(x0, y0, z0)} origin (C{3-tuple}).\n\n           @return: Unrotated C{(x, y, z)} location (C{3-tuple}).\n\n           @raise LenError: Unequal C{len(B{xyz})} and C{len(B{xyz0})}.\n        '''\n        if xyz0:\n            if len(xyz0) != len(xyz):\n                raise LenError(self.unrotate, xyz0=len(xyz0), xyz=len(xyz))\n            _xyz = _1_0_1T + xyz\n            # x' = x0 + M[0] * x + M[1] * y + M[2] * z\n            # y' = y0 + M[3] * x + M[4] * y + M[5] * z\n            # z' = z0 + M[6] * x + M[7] * y + M[8] * z\n            xyz_ = (fdot(_xyz, xyz0[0], *self[0:3]),  # .row(0)\n                    fdot(_xyz, xyz0[1], *self[3:6]),  # .row(1)\n                    fdot(_xyz, xyz0[2], *self[6:9]))  # .row(2)\n        else:\n            # x' = M[0] * x + M[1] * y + M[2] * z\n            # y' = M[3] * x + M[4] * y + M[5] * z\n            # z' = M[6] * x + M[7] * y + M[8] * z\n            xyz_ = (fdot(xyz, *self[0:3]),  # .row(0)\n                    fdot(xyz, *self[3:6]),  # .row(1)\n                    fdot(xyz, *self[6:9]))  # .row(2)\n        return xyz_\n\n\nclass Ecef9Tuple(_NamedTuple, _EcefLocal):\n    '''9-Tuple C{(x, y, z, lat, lon, height, C, M, datum)} with I{geocentric} C{x},\n       C{y} and C{z} plus I{geodetic} C{lat}, C{lon} and C{height}, case C{C} and\n       optionally, rotation matrix C{M} (L{EcefMatrix}) and C{datum}, with C{lat}\n       and C{lon} in C{degrees} and C{x}, C{y}, C{z} and C{height} in C{meter},\n       conventionally.  Case C{C=1} means normal, C{C=2} near polar and C{C=3}\n       equatorial latitude and C{C=4} height exceeds C{heightMax}.\n    '''\n    _Names_ = (_x_,   _y_,   _z_,   _lat_, _lon_, _height_, _C_,  _M_,   _datum_)\n    _Units_ = ( Meter, Meter, Meter, Lat,   Lon,   Height,   Int, _Pass, _Pass)\n\n    @property_ROver\n    def _CartesianBase(self):\n        '''(INTERNAL) Get class C{CartesianBase}, I{once}.\n        '''\n        return _MODS.cartesianBase.CartesianBase  # overwrite property_ROver\n\n    @deprecated_method\n    def convertDatum(self, datum2):  # for backward compatibility\n        '''DEPRECATED, use method L{toDatum}.'''\n        return self.toDatum(datum2)\n\n    @property_RO\n    def _ecef9(self):  # in ._EcefLocal._Ltp_ecef2local\n        return self\n\n    @property_RO\n    def ellipsoid(self):\n        '''Get the ellipsoid (L{Ellipsoid}).\n        '''\n        return (self.datum or _WGS84).ellipsoid\n\n    @Property_RO\n    def lam(self):\n        '''Get the longitude in C{radians} (C{float}).\n        '''\n        return self.philam.lam\n\n    @Property_RO\n    def lamVermeille(self):\n        '''Get the longitude in C{radians} M{[-PI*3/2..+PI*3/2]} after U{Vermeille\n           <https://Search.ProQuest.com/docview/639493848>} (2004), page 95.\n\n           @see: U{Karney<https://GeographicLib.SourceForge.io/C++/doc/geocentric.html>},\n                 U{Vermeille<https://Search.ProQuest.com/docview/847292978>} 2011, pp 112-113, 116\n                 and U{Featherstone, et.al.<https://Search.ProQuest.com/docview/872827242>}, page 7.\n        '''\n        x, y = self.x, self.y\n        a = fabs(y)\n        if a > EPS0:\n            r = PI_2 - atan2(x, hypot(x, a) + a) * _2_0\n            if y < 0:\n                r = -r\n        else:  # y == 0\n            r = PI if x < 0 else _0_0\n        return Lam(Vermeille=r)\n\n    @Property_RO\n    def latlon(self):\n        '''Get the lat-, longitude in C{degrees} (L{LatLon2Tuple}C{(lat, lon)}).\n        '''\n        return LatLon2Tuple(self.lat, self.lon, name=self.name)\n\n    @Property_RO\n    def latlonheight(self):\n        '''Get the lat-, longitude in C{degrees} and height (L{LatLon3Tuple}C{(lat, lon, height)}).\n        '''\n        return self.latlon.to3Tuple(self.height)\n\n    @Property_RO\n    def latlonheightdatum(self):\n        '''Get the lat-, longitude in C{degrees} with height and datum (L{LatLon4Tuple}C{(lat, lon, height, datum)}).\n        '''\n        return self.latlonheight.to4Tuple(self.datum)\n\n    @Property_RO\n    def latlonVermeille(self):\n        '''Get the latitude and I{Vermeille} longitude in C{degrees [-225..+225]} (L{LatLon2Tuple}C{(lat, lon)}).\n\n           @see: Property C{lonVermeille}.\n        '''\n        return LatLon2Tuple(self.lat, self.lonVermeille, name=self.name)\n\n    @Property_RO\n    def lonVermeille(self):\n        '''Get the longitude in C{degrees [-225..+225]} after U{Vermeille\n           <https://Search.ProQuest.com/docview/639493848>} 2004, page 95.\n\n           @see: Property C{lamVermeille}.\n        '''\n        return Lon(Vermeille=degrees(self.lamVermeille))\n\n    @Property_RO\n    def Mx(self):\n        '''Compute rotation matrix (L{EcefMatrix}), seperate from C{M}.\n        '''\n        sa, ca, sb, cb, _, _, _ = _norm7(self.y, self.x, self.z, self.ellipsoid)\n        return EcefMatrix(sa, ca, sb, cb, name=self.name)\n\n    @Property_RO\n    def phi(self):\n        '''Get the latitude in C{radians} (C{float}).\n        '''\n        return self.philam.phi\n\n    @Property_RO\n    def philam(self):\n        '''Get the lat-, longitude in C{radians} (L{PhiLam2Tuple}C{(phi, lam)}).\n        '''\n        return PhiLam2Tuple(radians(self.lat), radians(self.lon), name=self.name)\n\n    @Property_RO\n    def philamheight(self):\n        '''Get the lat-, longitude in C{radians} and height (L{PhiLam3Tuple}C{(phi, lam, height)}).\n        '''\n        return self.philam.to3Tuple(self.height)\n\n    @Property_RO\n    def philamheightdatum(self):\n        '''Get the lat-, longitude in C{radians} with height and datum (L{PhiLam4Tuple}C{(phi, lam, height, datum)}).\n        '''\n        return self.philamheight.to4Tuple(self.datum)\n\n    @Property_RO\n    def philamVermeille(self):\n        '''Get the latitude and I{Vermeille} longitude in C{radians [-PI*3/2..+PI*3/2]} (L{PhiLam2Tuple}C{(phi, lam)}).\n\n           @see: Property C{lamVermeille}.\n        '''\n        return PhiLam2Tuple(radians(self.lat), self.lamVermeille, name=self.name)\n\n    phiVermeille = phi\n\n    def toCartesian(self, Cartesian=None, **Cartesian_kwds):\n        '''Return the geocentric C{(x, y, z)} coordinates as an ellipsoidal or spherical\n           C{Cartesian}.\n\n           @kwarg Cartesian: Optional class to return C{(x, y, z)} (L{ellipsoidalKarney.Cartesian},\n                             L{ellipsoidalNvector.Cartesian}, L{ellipsoidalVincenty.Cartesian},\n                             L{sphericalNvector.Cartesian} or L{sphericalTrigonometry.Cartesian})\n                             or C{None}.\n           @kwarg Cartesian_kwds: Optionally, additional B{C{Cartesian}} keyword arguments, ignored\n                                  if C{B{Cartesian} is None}.\n\n           @return: A B{C{Cartesian}} instance or a L{Vector4Tuple}C{(x, y, z, h)} if C{B{Cartesian}\n                    is None}.\n\n           @raise TypeError: Invalid B{C{Cartesian}} or B{C{Cartesian_kwds}} item.\n        '''\n        if _isin(Cartesian, None, Vector4Tuple):\n            r = self.xyzh\n        elif Cartesian is Vector3Tuple:\n            r = self.xyz\n        else:\n            _xsubclassof(self._CartesianBase, Cartesian=Cartesian)\n            r = Cartesian(self, **_name1__(Cartesian_kwds, _or_nameof=self))\n        return r\n\n    def toDatum(self, datum2, **name):\n        '''Convert this C{Ecef9Tuple} to an other datum.\n\n           @arg datum2: Datum to convert I{to} (L{Datum}).\n           @kwarg name: Optional C{B{name}=NN} (C{str}).\n\n           @return: The converted 9-Tuple (C{Ecef9Tuple}).\n\n           @raise TypeError: The B{C{datum2}} is not a L{Datum}.\n        '''\n        n = _name__(name, _or_nameof=self)\n        if _isin(self.datum, None, datum2):  # PYCHOK _Names_\n            r = self.copy(name=n)\n        else:\n            c = self._CartesianBase(self, datum=self.datum, name=n)  # PYCHOK _Names_\n            # c.toLatLon converts datum, x, y, z, lat, lon, etc.\n            # and returns another Ecef9Tuple iff LatLon is None\n            r = c.toLatLon(datum=datum2, LatLon=None)\n        return r\n\n    def toLatLon(self, LatLon=None, **LatLon_kwds):\n        '''Return the geodetic C{(lat, lon, height[, datum])} coordinates.\n\n           @kwarg LatLon: Optional class to return C{(lat, lon, height[, datum])} or C{None}.\n           @kwarg LatLon_kwds: Optional B{C{height}}, B{C{datum}} and other B{C{LatLon}}\n                               keyword arguments.\n\n           @return: A B{C{LatLon}} instance or if C{B{LatLon} is None}, a L{LatLon4Tuple}C{(lat,\n                    lon, height, datum)} or L{LatLon3Tuple}C{(lat, lon, height)} if C{datum} is\n                    specified or not.\n\n           @raise TypeError: Invalid B{C{LatLon}} or B{C{LatLon_kwds}} item.\n        '''\n        lat, lon, D = self.lat, self.lon, self.datum  # PYCHOK Ecef9Tuple\n        kwds = _name1__(LatLon_kwds, _or_nameof=self)\n        kwds = _xkwds(kwds, height=self.height, datum=D)  # PYCHOK Ecef9Tuple\n        d    =  kwds.get(_datum_, LatLon)\n        if LatLon is None:\n            r = LatLon3Tuple(lat, lon, kwds[_height_], name=kwds[_name_])\n            if d is not None:\n                # assert d is not LatLon\n                r = r.to4Tuple(d)  # checks type(d)\n        else:\n            if d is None:\n                _ = kwds.pop(_datum_)  # remove None datum\n            r = LatLon(lat, lon, **kwds)\n        _xdatum(_xattr(r, datum=D), D)\n        return r\n\n    def toVector(self, Vector=None, **Vector_kwds):\n        '''Return these geocentric C{(x, y, z)} coordinates as vector.\n\n           @kwarg Vector: Optional vector class to return C{(x, y, z)} or C{None}.\n           @kwarg Vector_kwds: Optional, additional B{C{Vector}} keyword arguments,\n                               ignored if C{B{Vector} is None}.\n\n           @return: A B{C{Vector}} instance or a L{Vector3Tuple}C{(x, y, z)} if\n                    C{B{Vector} is None}.\n\n           @raise TypeError: Invalid B{C{Vector}} or B{C{Vector_kwds}} item.\n\n           @see: Propertes C{xyz} and C{xyzh}\n        '''\n        return self.xyz if Vector is None else Vector(\n              *self.xyz, **_name1__(Vector_kwds, _or_nameof=self))  # PYCHOK Ecef9Tuple\n\n#   def _T_x_M(self, T):\n#       '''(INTERNAL) Update M{self.M = T.multiply(self.M)}.\n#       '''\n#       return self.dup(M=T.multiply(self.M))\n\n    @Property_RO\n    def xyz(self):\n        '''Get the geocentric C{(x, y, z)} coordinates (L{Vector3Tuple}C{(x, y, z)}).\n        '''\n        return Vector3Tuple(self.x, self.y, self.z, name=self.name)\n\n    @Property_RO\n    def xyzh(self):\n        '''Get the geocentric C{(x, y, z)} coordinates and C{height} (L{Vector4Tuple}C{(x, y, z, h)})\n        '''\n        return self.xyz.to4Tuple(self.height)\n\n\ndef _4Ecef(this, Ecef):  # in .datums.Datum.ecef, .ellipsoids.Ellipsoid.ecef\n    '''Return an ECEF converter for C{this} L{Datum} or L{Ellipsoid}.\n    '''\n    if Ecef is None:\n        Ecef = EcefKarney\n    else:\n        _xinstanceof(*_Ecefs, Ecef=Ecef)\n    return Ecef(this, name=this.name)\n\n\ndef _llhn4(latlonh, lon, height, suffix=NN, Error=EcefError, **name):  # in .ltp\n    '''(INTERNAL) Get a C{(lat, lon, h, name)} 4-tuple.\n    '''\n    try:\n        lat, lon = latlonh.lat, latlonh.lon\n        h = _xattr(latlonh, height=_xattr(latlonh, h=height))\n        n = _name__(name, _or_nameof=latlonh)  # == latlonh._name__(name)\n    except AttributeError:\n        lat, h, n = latlonh, height, _name__(**name)\n    try:\n        return Lat(lat), Lon(lon), Height(h), n\n    except (TypeError, ValueError) as x:\n        t = _lat_, _lon_, _height_\n        if suffix:\n            t = (_ + suffix for _ in t)\n        d = dict(zip(t, (lat, lon, h)))\n        raise Error(cause=x, **d)\n\n\ndef _norm3(y, x):\n    '''(INTERNAL) Return C{y, x, h} normalized.\n    '''\n    h = hypot(y, x)  # EPS0, EPS_2\n    return (y / h, x / h, h) if h else (_0_0, _1_0, h)\n\n\ndef _norm7(y, x, z=0, E=_EWGS84):\n    '''(INTERNAL) Return C{phi, lam, p, h, C}.\n    '''\n    sb, cb, p = _norm3(y, x)  # lam, distance to polar axis\n    sa, ca, h = _norm3(z, p)  # phi, distance to earth center\n    if h > E._heightMax:\n        # We are really far away (> 12M light years).  Treat the earth\n        # as a point and h above as an acceptable approximation to the\n        # height.  This avoids overflow, e.g., in the computation of d\n        # below.  It's possible that h has overflowed to INF, that's OK.\n        # Treat finite x, y, but R overflows to +INF by scaling by 2.\n        sb, cb, p = _norm3(y * _0_5, x * _0_5)\n        sa, ca, _ = _norm3(z * _0_5, p)\n        C = 4\n    else:\n        C = 0\n    return sa, ca, sb, cb, p, h, C\n\n\ndef _xEcef(Ecef):  # PYCHOK .latlonBase\n    '''(INTERNAL) Validate B{C{Ecef}} I{class}.\n    '''\n    if issubclassof(Ecef, _EcefBase):\n        return Ecef\n    raise _TypesError(_Ecef_, Ecef, *_Ecefs)\n\n\n# kwd lon00 unused but will throw a TypeError if misspelled, etc.\ndef _xyzn4(xyz, y, z, Types, Error=EcefError, lon00=0,  # PYCHOK unused\n                     _xyz_y_z_names=_xyz_y_z, **name):  # in .ltp\n    '''(INTERNAL) Get an C{(x, y, z, name)} 4-tuple.\n    '''\n    try:\n        n = _name__(name, _or_nameof=xyz)  # == xyz._name__(name)\n        try:\n            t = xyz.x, xyz.y, xyz.z, n\n            if not isinstance(xyz, Types):\n                raise _TypesError(_xyz_y_z_names[0], xyz, *Types)\n        except AttributeError:\n            t = map1(float, xyz, y, z) + (n,)\n    except (TypeError, ValueError) as x:\n        d = dict(zip(_xyz_y_z_names, (xyz, y, z)))\n        raise Error(cause=x, **d)\n    return t\n# assert _xyz_y_z == _args_kwds_names(_xyzn4)[:3]\n\n\n_Ecefs = tuple(_ for _ in locals().values()\n                       if issubclassof(_, _EcefBase) and\n                     _ is not _EcefBase)\n__all__ += _ALL_DOCS(_EcefBase)\n\n# **) MIT License\n#\n# Copyright (C) 2016-2026 -- mrJean1 at Gmail -- All Rights Reserved.\n#\n# Permission is hereby granted, free of charge, to any person obtaining a\n# copy of this software and associated documentation files (the \"Software\"),\n# to deal in the Software without restriction, including without limitation\n# the rights to use, copy, modify, merge, publish, distribute, sublicense,\n# and/or sell copies of the Software, and to permit persons to whom the\n# Software is furnished to do so, subject to the following conditions:\n#\n# The above copyright notice and this permission notice shall be included\n# in all copies or substantial portions of the Software.\n#\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL\n# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR\n# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\n# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n# OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "pygeodesy/ecefLocals.py",
    "content": "\n# -*- coding: utf-8 -*-\n\nu'''(INTERNAL) ECEF to local coodinate conversions, separated from\nmodule C{ecef} to defer importing the latter into C{CartesianBase}\nand C{LatLonBase}.\n'''\n\nfrom pygeodesy.basics import _isin, _xsubclassof\n# from pygeodesy.ecef import EcefKarney  # _MODS\nfrom pygeodesy.errors import _xkwds_item2, _xkwds_pop2\nfrom pygeodesy.lazily import _ALL_DOCS, _ALL_LAZY, _ALL_MODS as _MODS\n# from pygeodesy import ltp as _ltp  # _MODS.into\n# from pygeodesy import ltpTuples as _ltpTuples  # _MODS.into\nfrom pygeodesy.named import _Named, notOverloaded\nfrom pygeodesy.props import Property_RO, property_RO, property_ROver\n\n__all__ = _ALL_LAZY.ecefLocals\n__version__ = '25.04.28'\n\n_ltp       = _MODS.into(ltp=__name__)\n_ltpTuples = _MODS.into(ltpTuples=__name__)\n\n\nclass _EcefLocal(_Named):\n    '''(INTERNAL) Base class for C{CartesianBase}, C{Ecef9Tuple} and\n       C{LatLonBase}, providing ECEF to local coordinate conversions.\n    '''\n\n    @property_ROver\n    def Ecef(self):\n        '''Get the ECEF I{class} (L{EcefKarney}), I{once}.\n        '''\n        return _MODS.ecef.EcefKarney\n\n    @property_RO\n    def _ecef9(self):\n        '''I{Must be overloaded}.'''\n        notOverloaded(self)\n\n    @property_RO\n    def _ecef9datum(self):\n        try:\n            d = self.datum  # PYCHOK C{CartesianBase}, ...\n        except AttributeError:\n            d = None\n        return d or self._ecef9.datum\n\n    @Property_RO\n    def _ltp(self):\n        '''(INTERNAL) Cache this instance' LTP (L{Ltp}).\n        '''\n        return _ltp.Ltp(self._ecef9, ecef=self.Ecef(self._ecef9datum), name=self.name)\n\n    def _ltp_ecef2local(self, ltp, Xyz_kwds, _None=None, **Xyz):  # in C{Ecef9Tuple}\n        '''(INTERNAL) Invoke C{_ltp._xLtp(ltp, self._ltp)._ecef2local}.\n        '''\n        C, _ = Xyz_ = _xkwds_pop2(Xyz_kwds, **Xyz)\n        if C is not _None:  # validate C, see .toLocal\n            n, X = _xkwds_item2(Xyz)\n            if X is not C:\n                _xsubclassof(X, **{n: C})\n        ltp = _ltp._xLtp(ltp, self._ltp)\n        return ltp._ecef2local(self._ecef9, *Xyz_)\n\n    def toAer(self, ltp=None, **Aer_and_kwds):\n        '''Convert this instance to I{local} I{Azimuth, Elevation, slant Range} (AER) components.\n\n           @kwarg ltp: The I{local tangent plane} (LTP) to use (L{Ltp}), overriding this\n                       instance' L{LTP<pygeodesy.ecefLocals._EcefLocal.toLtp>}.\n           @kwarg Aer_and_kwds: Optional AER class C{B{Aer}=}L{Aer<pygeodesy.ltpTuples.Aer>}\n                      to use and optionally, additional B{C{Aer}} keyword arguments.\n\n           @return: An B{C{Aer}} instance.\n\n           @raise TypeError: Invalid B{C{ltp}}.\n\n           @see: Method L{toLocal<pygeodesy.ecefLocals._EcefLocal.toLocal>}.\n        '''\n        return self._ltp_ecef2local(ltp, Aer_and_kwds, Aer=_ltpTuples.Aer)\n\n    def toEnu(self, ltp=None, **Enu_and_kwds):\n        '''Convert this instance to I{local} I{East, North, Up} (ENU) components.\n\n           @kwarg ltp: The I{local tangent plane} (LTP) to use (L{Ltp}), overriding this\n                       instance' L{LTP<pygeodesy.ecefLocals._EcefLocal.toLtp>}.\n           @kwarg Enu_and_kwds: Optional ENU class C{B{Enu}=}L{Enu<pygeodesy.ltpTuples.Enu>}\n                      to use and optionally, additional B{C{Enu}} keyword arguments.\n\n           @return: An B{C{Enu}} instance.\n\n           @raise TypeError: Invalid B{C{ltp}}.\n\n           @see: Method L{toLocal<pygeodesy.ecefLocals._EcefLocal.toLocal>}.\n        '''\n        return self._ltp_ecef2local(ltp, Enu_and_kwds, Enu=_ltpTuples.Enu)\n\n    def toLocal(self, Xyz=None, ltp=None, **Xyz_kwds):\n        '''Convert this instance to I{local} components in a I{local tangent plane} (LTP)\n\n           @kwarg Xyz: Optional I{local} components class (L{XyzLocal}, L{Aer}, L{Enu},\n                       L{Ned}) or C{None}.\n           @kwarg ltp: The I{local tangent plane} (LTP) to use (L{Ltp}), overriding this\n                       cartesian's L{LTP<pygeodesy.ecefLocals._EcefLocal.toLtp>}.\n           @kwarg Xyz_kwds: Optionally, additional B{C{Xyz}} keyword arguments, ignored\n                            if C{B{Xyz} is None}.\n\n           @return: An B{C{Xyz}} instance or a L{Local9Tuple}C{(x, y, z, lat, lon,\n                    height, ltp, ecef, M)} if C{B{Xyz} is None} (with C{M=None}).\n\n           @raise TypeError: Invalid B{C{ltp}}.\n        '''\n        return self._ltp_ecef2local(ltp, Xyz_kwds, Xyz=Xyz, _None=Xyz)\n\n    def toLtp(self, Ecef=None, **name):\n        '''Return the I{local tangent plane} (LTP) for this instance.\n\n           @kwarg Ecef: Optional ECEF I{class} (L{EcefKarney}, ... L{EcefYou}), overriding\n                        this instance' L{Ecef<pygeodesy.ecefLocals._EcefLocal.Ecef>}.\n           @kwarg name: Optional C{B{name}=NN} (C{str}).\n\n           @return: An B{C{Ltp}} instance.\n        '''\n        if _isin(Ecef, None, self.Ecef) and not name:\n            ltp = self._ltp\n        else:  # like self._ltp\n            ecef = (Ecef if Ecef else self.Ecef)(self._ecef9datum)\n            ltp  = _ltp.Ltp(self._ecef9, ecef=ecef, name=self._name__(name))\n        return ltp\n\n    def toNed(self, ltp=None, **Ned_and_kwds):\n        '''Convert this instance to I{local} I{North, East, Down} (NED) components.\n\n           @kwarg ltp: The I{local tangent plane} (LTP) to use (L{Ltp}), overriding this\n                       instance' L{LTP<pygeodesy.ecefLocals._EcefLocal.toLtp>}.\n           @kwarg Ned_and_kwds: Optional NED class C{B{Ned}=}L{Ned<pygeodesy.ltpTuples.Ned>}\n                      to use and optionally, additional B{C{Ned}} keyword arguments.\n\n           @return: An B{C{Ned}} instance.\n\n           @raise TypeError: Invalid B{C{ltp}}.\n\n           @see: Method L{toLocal<pygeodesy.ecefLocals._EcefLocal.toLocal>}.\n        '''\n        return self._ltp_ecef2local(ltp, Ned_and_kwds, Ned=_ltpTuples.Ned)\n\n    def toXyz(self, ltp=None, **Xyz_and_kwds):\n        '''Convert this instance to I{local} I{X, Y, Z} (XYZ) components.\n\n           @kwarg ltp: The I{local tangent plane} (LTP) to use (L{Ltp}), overriding this\n                       instance' L{LTP<pygeodesy.ecefLocals._EcefLocal.toLtp>}.\n           @kwarg Xyz_and_kwds: Optional XYZ class C{B{Xyz}=}L{Xyz<pygeodesy.ltpTuples.XyzLocal>}\n                      to use and optionally, additional B{C{Xyz}} keyword arguments.\n\n           @return: An B{C{Xyz}} instance.\n\n           @raise TypeError: Invalid B{C{ltp}}.\n\n           @see: Method L{toLocal<pygeodesy.ecefLocals._EcefLocal.toLocal>}.\n        '''\n        return self._ltp_ecef2local(ltp, Xyz_and_kwds, Xyz=_ltpTuples.XyzLocal)\n\n\n__all__ += _ALL_DOCS(_EcefLocal)\n\n# **) MIT License\n#\n# Copyright (C) 2016-2026 -- mrJean1 at Gmail -- All Rights Reserved.\n#\n# Permission is hereby granted, free of charge, to any person obtaining a\n# copy of this software and associated documentation files (the \"Software\"),\n# to deal in the Software without restriction, including without limitation\n# the rights to use, copy, modify, merge, publish, distribute, sublicense,\n# and/or sell copies of the Software, and to permit persons to whom the\n# Software is furnished to do so, subject to the following conditions:\n#\n# The above copyright notice and this permission notice shall be included\n# in all copies or substantial portions of the Software.\n#\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL\n# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR\n# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\n# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n# OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "pygeodesy/elevations.py",
    "content": "\n# -*- coding: utf-8 -*-\n\nu'''Web-services-based elevations and C{CONUS} geoid heights.\n\nFunctions to obtain elevations and geoid heights thru web services,\nfor (lat, lon) locations, currently limited to the U{Conterminous\nUS (CONUS)<https://WikiPedia.org/wiki/Contiguous_United_States>},\nsee also modules L{pygeodesy.geoids} and L{pygeodesy.heights} and\nU{USGS10mElev.py<https://Gist.GitHub.com/pyRobShrk>}.\n\n@see: Module L{pygeodesy.geoids} to get geoid heights from other\n      sources and for regions other than C{CONUS}.\n\n@note: If on B{macOS} an C{SSLCertVerificationError} occurs, like\n       I{\"[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed:\n       self \"signed certificate in certificate chain ...\"}, review\n       U{this post<https://StackOverflow.com/questions/27835619/\n       urllib-and-ssl-certificate-verify-failed-error>} for a remedy.\n       From a C{Terminal} window run:\n       C{\"/Applications/Python\\\\ X.Y/Install\\\\ Certificates.command\"}\n'''\n\nfrom pygeodesy.basics import clips, ub2str,  typename\nfrom pygeodesy.errors import ParseError, _xkwds_get\n# from pygeodesy.internals import typename  # from .basics\nfrom pygeodesy.interns import NN, _AMPERSAND_, _COLONSPACE_, _DMAIN_, \\\n                             _elevation_, _height_, _LCURLY_, _n_a_, \\\n                             _no_, _RCURLY_, _SPACE_\nfrom pygeodesy.lazily import _ALL_LAZY\nfrom pygeodesy.named import _NamedTuple\nfrom pygeodesy.streprs import fabs, Fmt, fstr, lrstrip\nfrom pygeodesy.units import Lat, Lon, Meter, Scalar, Str\n\n# from math import fabs  # from .karney\n\n__all__ = _ALL_LAZY.elevations\n__version__ = '25.04.14'\n\ntry:\n    from urllib2 import urlopen  # quote, urlcleanup\n    from httplib import HTTPException as HTTPError\n\nexcept (ImportError, NameError):  # Python 3+\n    from urllib.request import urlopen  # urlcleanup\n    # from urllib.parse import quote\n    from urllib.error import HTTPError\n\n_JSON_     = 'JSON'\n_QUESTION_ = '?'\n_XML_      = 'XML'\n\ntry:\n    from json import loads as _json\nexcept ImportError:\n\n    from pygeodesy.interns import _COMMA_, _QUOTE2_\n    _QUOTE2COLONSPACE_ = _QUOTE2_ + _COLONSPACE_\n\n    def _json(ngs):\n        '''(INTERNAL) Convert an NGS response in JSON to a C{dict}.\n        '''\n        # b'{\"geoidModel\": \"GEOID12A\",\n        #    \"station\": \"UserStation\",\n        #    \"lat\": 37.8816,\n        #    \"latDms\": \"N375253.76000\",\n        #    \"lon\": -121.9142,\n        #    \"lonDms\": \"W1215451.12000\",\n        #    \"geoidHeight\": -31.703,\n        #    \"error\": 0.064\n        #   }'\n        #\n        # or in case of errors:\n        #\n        # b'{\"error\": \"No suitable Geoid model found for model 15\"\n        #   }'\n        d = {}\n        for t in lrstrip(ngs.strip(), lrpairs={_LCURLY_: _RCURLY_}).split(_COMMA_):\n            t = t.strip()\n            j = t.strip(_QUOTE2_).split(_QUOTE2COLONSPACE_)\n            if len(j) != 2:\n                raise ParseError(json=t)\n            k, v = j\n            try:\n                v = float(v)\n            except (TypeError, ValueError):\n                v = Str(ub2str(v.lstrip().lstrip(_QUOTE2_)), name=k)\n            d[k] = v\n        return d\n\n\ndef _error(fun, lat, lon, e):\n    '''(INTERNAL) Format an error\n    '''\n    return _COLONSPACE_(Fmt.PAREN(typename(fun), fstr((lat, lon))), e)\n\n\ndef _qURL(url, timeout=2, **params):\n    '''(INTERNAL) Build B{C{url}} query, get and verify response.\n    '''\n    if params:  # build url query, don't map(quote, params)!\n        p = _AMPERSAND_(*(Fmt.EQUAL(p, v) for p, v in params.items() if v))\n        if p:\n            url = NN(url, _QUESTION_, p)\n    u = urlopen(url, timeout=timeout)  # secs\n\n    s = u.getcode()\n    if s != 200:  # http.HTTPStatus.OK or http.client.OK\n        raise HTTPError('code %d: %s' % (s, u.geturl()))\n\n    r = u.read()\n    u.close()\n    # urlcleanup()\n    return ub2str(r).strip()\n\n\ndef _xml(tag, xml):\n    '''(INTERNAL) Get a <tag>value</tag> from XML.\n    '''\n    # b'<?xml version=\"1.0\" encoding=\"utf-8\" ?>\n    #   <USGS_Elevation_Point_Query_Service>\n    #    <Elevation_Query x=\"-121.914200\" y=\"37.881600\">\n    #     <Data_Source>3DEP 1/3 arc-second</Data_Source>\n    #     <Elevation>3851.03</Elevation>\n    #     <Units>Feet</Units>\n    #    </Elevation_Query>\n    #   </USGS_Elevation_Point_Query_Service>'\n    i = xml.find(Fmt.TAG(tag))\n    if i > 0:\n        i += len(tag) + 2\n        j = xml.find(Fmt.TAGEND(tag), i)\n        if j > i:\n            return Str(xml[i:j].strip(), name=tag)\n    return _no_(_XML_, Fmt.TAG(tag))  # PYCHOK no cover\n\n\nclass Elevation2Tuple(_NamedTuple):  # .elevations.py\n    '''2-Tuple C{(elevation, data_source)} in C{meter} and C{str}.\n    '''\n    _Names_ = (_elevation_, 'data_source')\n    _Units_ = ( Meter,       Str)\n\n\ndef elevation2(lat, lon, timeout=2.0):\n    '''Get the geoid elevation at an C{NAD83} to C{NAVD88} location.\n\n       @arg lat: Latitude (C{degrees}).\n       @arg lon: Longitude (C{degrees}).\n       @kwarg timeout: Optional, query timeout (seconds).\n\n       @return: An L{Elevation2Tuple}C{(elevation, data_source)}\n                or (C{None, \"error\"}) in case of errors.\n\n       @raise ValueError: Invalid B{C{timeout}}.\n\n       @note: The returned C{elevation is None} if B{C{lat}} or B{C{lon}} is\n              invalid or outside the C{Conterminous US (CONUS)}, if conversion\n              failed or if the query timed out.  The C{\"error\"} is the C{HTTP-,\n              IO-, SSL-} or other C{-Error} as a string (C{str}).\n\n       @see: U{USGS Elevation Point Query Service<https://apps.NationalMap.gov/epqs/>}, the\n             U{FAQ<https://www.USGS.gov/faqs/what-are-projection-horizontal-and-vertical-\n             datum-units-and-resolution-3dep-standard-dems>}, U{geoid.py<https://Gist.GitHub.com/\n             pyRobShrk>}, module L{geoids}, classes L{GeoidG2012B}, L{GeoidKarney} and\n             L{GeoidPGM}.\n    '''\n    try:    # alt 'https://NED.USGS.gov/epqs/pqs.php', 'https://epqs.NationalMap.gov/v1'\n        x = _qURL('https://NationalMap.USGS.gov/epqs/pqs.php',\n                         x=Lon(lon).toStr(prec=6),\n                         y=Lat(lat).toStr(prec=6),\n                         units='Meters',  # 'Feet', capitalized\n                         output=_XML_.lower(),  # _JSON_, lowercase only\n                         timeout=Scalar(timeout=timeout))\n        if x[:6] == '<?xml ':\n            e = _xml('Elevation', x)\n            try:\n                e = float(e)\n                if fabs(e) < 1e6:\n                    return Elevation2Tuple(e, _xml('Data_Source', x))\n                e = 'non-CONUS %.2F' % (e,)\n            except (TypeError, ValueError):\n                pass\n        else:  # PYCHOK no cover\n            e = _no_(_XML_, Fmt.QUOTE2(clips(x, limit=128, white=_SPACE_)))\n    except Exception as x:  # (HTTPError, IOError, TypeError, ValueError)\n        e = repr(x)\n    e = _error(elevation2, lat, lon, e)\n    return Elevation2Tuple(None, e)\n\n\nclass GeoidHeight2Tuple(_NamedTuple):  # .elevations.py\n    '''2-Tuple C{(height, model_name)}, geoid C{height} in C{meter}\n       and C{model_name} as C{str}.\n    '''\n    _Names_ = (_height_, 'model_name')\n    _Units_ = ( Meter,    Str)\n\n\ndef geoidHeight2(lat, lon, model=0, timeout=2.0):\n    '''Get the C{NAVD88} geoid height at an C{NAD83} location.\n\n       @arg lat: Latitude (C{degrees}).\n       @arg lon: Longitude (C{degrees}).\n       @kwarg model: Optional, geoid model ID (C{int}).\n       @kwarg timeout: Optional, query timeout (seconds).\n\n       @return: An L{GeoidHeight2Tuple}C{(height, model_name)}\n                or C{(None, \"error\"}) in case of errors.\n\n       @raise ValueError: Invalid B{C{timeout}}.\n\n       @note: The returned C{height is None} if B{C{lat}} or B{C{lon}} is\n              invalid or outside the C{Conterminous US (CONUS)}, if the\n              B{C{model}} was invalid, if conversion failed or if the query\n              timed out.  The C{\"error\"} is the C{HTTP-, IO-, SSL-, URL-}\n              or other C{-Error} as a string (C{str}).\n\n       @see: U{NOAA National Geodetic Survey\n             <https://www.NGS.NOAA.gov/INFO/geodesy.shtml>},\n             U{Geoid<https://www.NGS.NOAA.gov/web_services/geoid.shtml>},\n             U{USGS10mElev.py<https://Gist.GitHub.com/pyRobShrk>}, module\n             L{geoids}, classes L{GeoidG2012B}, L{GeoidKarney} and\n             L{GeoidPGM}.\n    '''\n    try:\n        j = _qURL('https://Geodesy.NOAA.gov/api/geoid/ght',\n                         lat=Lat(lat).toStr(prec=6),\n                         lon=Lon(lon).toStr(prec=6),\n                         model=(model if model else NN),\n                         timeout=Scalar(timeout=timeout))  # PYCHOK indent\n        if j[:1] == _LCURLY_ and j[-1:] == _RCURLY_ and j.find('\"error\":') > 0:\n            d, e = _json(j), 'geoidHeight'\n            if isinstance(_xkwds_get(d, error=_n_a_), float):\n                h = d.get(e, None)\n                if h is not None:\n                    m = _xkwds_get(d, geoidModel=_n_a_)\n                    return GeoidHeight2Tuple(h, m)\n        else:\n            e = _JSON_\n        e = _no_(e, Fmt.QUOTE2(clips(j, limit=256, white=_SPACE_)))\n    except Exception as x:  # (HTTPError, IOError, ParseError, TypeError, ValueError)\n        e = repr(x)\n    e = _error(geoidHeight2, lat, lon, e)\n    return GeoidHeight2Tuple(None, e)\n\n\nif __name__ == _DMAIN_:\n\n    from pygeodesy import printf\n    # <https://WikiPedia.org/wiki/Mount_Diablo>\n    for f in (elevation2,     # (1173.79, '3DEP 1/3 arc-second')\n              geoidHeight2):  # (-31.699, u'GEOID12B')\n        t = f(37.8816, -121.9142)\n        printf(_COLONSPACE_(typename(f), t))\n\n# **) MIT License\n#\n# Copyright (C) 2016-2026 -- mrJean1 at Gmail -- All Rights Reserved.\n#\n# Permission is hereby granted, free of charge, to any person obtaining a\n# copy of this software and associated documentation files (the \"Software\"),\n# to deal in the Software without restriction, including without limitation\n# the rights to use, copy, modify, merge, publish, distribute, sublicense,\n# and/or sell copies of the Software, and to permit persons to whom the\n# Software is furnished to do so, subject to the following conditions:\n#\n# The above copyright notice and this permission notice shall be included\n# in all copies or substantial portions of the Software.\n#\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL\n# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR\n# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\n# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n# OTHER DEALINGS IN THE SOFTWARE.\n\n# % python -m pygeodesy.elevations\n# elevation2: (1173.79, '3DEP 1/3 arc-second')\n# geoidHeight2: (-31.703, 'GEOID12B')\n"
  },
  {
    "path": "pygeodesy/ellipses.py",
    "content": "\n# -*- coding: utf-8 -*-\n\nu'''Class C{Ellipse} for 2-D ellipse attributes, like perimeter, area, etc.\n'''\n# make sure int/int division yields float quotient, see .basics\nfrom __future__ import division as _; del _  # noqa: E702 ;\n\n# from pygeodesy.basics import islistuple  # _MODS\nfrom pygeodesy.constants import EPS, EPS_2, INT0, NEG0, PI, PI_2, PI3_2, PI2, \\\n                               _0_0, _1_0, _4_0, _isfinite, _over, _1_over  # _N_1_0\nfrom pygeodesy.constants import _0_5, _3_0, _10_0, MANT_DIG as _DIG53  # PYCHOK used!\n# from pygeodesy.ellipsoids import Ellipsoid  # _MODS\nfrom pygeodesy.errors import _ConvergenceError, _ValueError, _xkwds, _xkwds_pop2\nfrom pygeodesy.fmath import euclid, fhorner, fmean_, hypot\nfrom pygeodesy.fsums import _fsum  # PYCHOK used!\nfrom pygeodesy.internals import typename,  _DOT_, _UNDER_\n# from pygeodesy.interns import _DOT_, _UNDER_  # from .internals\nfrom pygeodesy.lazily import _ALL_LAZY, _ALL_MODS as _MODS\nfrom pygeodesy.named import _NamedBase,  unstr\nfrom pygeodesy.props import Property_RO, property_RO, property_ROnce\n# from pygeodesy.streprs import unstr  # from .named\n# from pygeodesy.triaxials import Triaxial_ , TriaxialError # _MODS\nfrom pygeodesy.units import Degrees, Meter, Meter2, Radians, Radius, Scalar\nfrom pygeodesy.utily import atan2, atan2b, atan2p, sincos2, sincos2d\n# from pygeodesy.vector3d import Vector3d  # _MODS\n\nfrom math import degrees, fabs, radians, sqrt\n# import operator as _operator  # from .fmath\n\n__all__ = _ALL_LAZY.ellipses\n__version__ = '26.03.25'\n\n_TOL53    =  sqrt(EPS_2)     # sqrt(pow(_0_5, _DIG53))\n_TOL53_53 = _TOL53 / _DIG53  # \"flat\" b/a tolerance, 1.9e-10\n# assert _DIG53 == 53\n\n\nclass Ellipse(_NamedBase):\n    '''Class to compute various attributes of a 2-D ellipse.\n    '''\n#   _ab3   = (a, b, a * b)  # unordered\n    _flat  =  False\n    _maxit = _DIG53\n#   _Pab4  = (r, P, a, b)  # a >= b, ordered\n    _4_PI_ = _4_0 / PI - (14 / 11)\n    _tEPS  =  None\n\n    def __init__(self, a, b, **name):\n        '''New L{Ellipse} with semi-axes B{C{a}} and B{C{b}}.\n\n           The ellipse is C{oblate} if C{B{a} > B{b}}, C{prolate} if\n           C{B{a} < B{b}}, C{circular} if C{B{a} == B{b}} and C{\"flat\"}\n           if C{min(B{a}, B{b}) <<< max(B{a}, B{b})}.\n\n           @arg a: X semi-axis length (C{meter}, conventionally).\n           @arg b: Y semi-axis length (C{meter}, conventionally).\n\n           @raise ValueError: Invalid B{C{a}} or B{C{b}}.\n\n           @see: U{Ellipse<https://MathWorld.Wolfram.com/Ellipse.html>}.\n        '''\n        if name:\n            self.name = name\n        self._ab3 = a, b, (a * b)  # unordered\n\n        r = a < b\n        if r:  # prolate\n            a, b = b, a\n        if b < 0 or not _isfinite(a):  # PYCHOK no cover\n            raise self._Error(None)\n        if a > b:\n            if _isFlat(a, b):\n                self._flat = True\n                P = a * _4_0\n            else:  # pro-/oblate\n                P = None\n        else:  # circular\n            P = a * PI2\n#           b = a\n        self._Pab4 = r, P, a, b  # ordered\n\n    @Property_RO\n    def a(self):\n        '''Get semi-axis C{B{a}} of this ellipse (C{meter}, conventionally).\n        '''\n        a, _, _ = self._ab3\n        return Meter(a=a)\n\n    @Property_RO\n    def apses2(self):\n        '''Get 2-tuple C{(apoapsis, periapsis)} with the U{apo-<https://MathWorld.Wolfram.com/Apoapsis.html>}\n           and U{periapsis<https://MathWorld.Wolfram.com/Periapsis.html>} of this ellipse, both C{meter}.\n        '''\n        _, _, a, p = self._Pab4\n        c = self.c\n        if c:  # a != p\n            p  = a - c\n            a += c\n        return a, p\n\n    def arc(self, deg2, deg1=0):\n        '''Compute the length of U{elliptic arc<https://www.JohnDCook.com/blog/2022/11/02/elliptic-arc-length/>}\n           C{(B{deg2} - B{deg1})}, both counter-clockwise from semi-axis B{C{a}} to B{C{b}} of the ellipse.\n\n           @arg deg2: End angle of the elliptic arc (C{degrees}).\n           @kwarg deg1: Start angle of the elliptic arc (C{degrees}).\n\n           @return: Arc length, signed (C{meter}, conventionally).\n        '''\n        return self.arc_(radians(deg2), (radians(deg1) if deg1 else _0_0))\n\n    def arc_(self, rad2, rad1=0):\n        '''Compute the length of U{elliptic arc<https://www.JohnDCook.com/blog/2022/11/02/elliptic-arc-length/>}\n           C{(B{rad2} - B{rad1})}, both counter-clockwise from semi-axis B{C{a}} to B{C{b}} of the ellipse.\n\n           @arg rad2: End angle of the elliptic arc (C{radians}).\n           @kwarg rad1: Start angle of the elliptic arc (C{radians}).\n\n           @return: Arc length, signed (C{meter}, conventionally).\n        '''\n        r, R, a, _ = self._Pab4\n        if R is None:\n            _e =  self._ellipe or self._ellipE\n            k  =  self.e2\n            r  =  PI_2 if r else _0_0\n            R  = _arc(_e, k, r + rad2)\n            r += rad1\n            if r:\n                R -= _arc(_e, k, r)\n        else:\n            a = (rad2 - rad1) / PI2\n        return Meter(arc=R * a)\n\n    @Property_RO\n    def area(self):\n        '''Get the area of this ellipse (C{meter**2}, conventionally).\n        '''\n        _, _, ab = self._ab3\n        return Meter2(area=ab * PI)\n\n    @Property_RO\n    def b(self):\n        '''Get semi-axis C{B{b}} of this ellipse (C{meter}, conventionally).\n        '''\n        _, b, _ = self._ab3\n        return Meter(b=b)\n\n    @Property_RO\n    def c(self):\n        '''Get the U{linear eccentricity<https://WikiPedia.org/wiki/Ellipse#Linear_eccentricity>}\n           C{c}, I{unsigned} (C{meter}, conventionally).\n        '''\n        return Meter(c=fabs(self.foci))\n\n    @Property_RO\n    def e(self):\n        '''Get the eccentricity (C{scalar, 0 <= B{e} <= 1}).\n        '''\n        e2 = self.e2\n        return Scalar(e=sqrt(e2) if 0 < e2 < 1 else e2)\n\n    @Property_RO\n    def e2(self):\n        '''Get the eccentricity I{squared} (C{scalar, 0 <= B{e2} <= 1}).\n        '''\n        # C{e2} is aka C{k}, Elliptic C{k2} and SciPy's C{m}\n        _, _, a, b = self._Pab4\n        e2 = ((_1_0 - (b / a)**2) if 0 < b else _1_0) if b < a else _0_0\n        return Scalar(e2=e2)\n\n    @Property_RO\n    def _Ek(self):\n        '''(INTERNAL) Get the C{Elliptic(k)} instance.\n        '''\n        return _MODS.elliptic._Ek(self.e2)\n\n    def _ellipE(self, k, phi=None):  # PYCHOK k\n        '''(INTERNAL) Get the in-/complete integral of the 2nd kind.\n        '''\n        # assert k == self._Ek.k2\n        return self._Ek.cE if phi is None else self._Ek.fE(phi)\n\n    @property_ROnce\n    def _ellipe(self):\n        '''(INTERNAL) Wrap functions C{scipy.special.ellipe} and C{-.ellipeinc}, I{once}.\n        '''\n        try:\n            from scipy.special import ellipe, ellipeinc\n\n            def _ellipe(k, phi=None):\n                r = ellipe(k) if phi is None else ellipeinc(phi, k)\n                return float(r)\n\n        except (AttributeError, ImportError):\n            _ellipe = None\n        return _ellipe  # overwrite property_ROnce\n\n    def _Error(self, where, **cause):  # PYCHOK no cover\n        '''(INTERNAL) Build an L{EllipseError}.\n        '''\n        t = self.named3\n        u = unstr(t, a=self.a, b=self.b)\n        if where:\n            t =  typename(where, where)\n            u = _DOT_(u, t)\n        return EllipseError(u, **cause)\n\n    @Property_RO\n    def foci(self):\n        '''Get the U{linear eccentricity<https://WikiPedia.org/wiki/Ellipse#Linear_eccentricity>},\n           I{signed} (C{meter}, conventionally), C{positive} if this ellipse is oblate, C{negative}\n           if prolate or C{0} if circular.  See also property L{Ellipse.c}.\n        '''\n        c = float(self.e)\n        if c:\n            r, _, a, _ = self._Pab4\n            c  *= a\n            if r:  # prolate\n                c = -c\n        return Meter(foci=c)  # signed\n\n    @property_ROnce\n    def _GKs(self):\n        '''(INTERNAL) Compute the coefficients for property C{.perimeterGK}, I{once}.\n        '''\n        # U{numerators<https://OEIS.org/A056981>}, U{denominators<https://OEIS.org/A056982>}\n        return (1, 1 / 4, 1 / 64, 1 / 256, 25 / 16384, 49 / 65536,\n                441 / 1048576, 1089 / 4194304)  # overwrite property_ROnce\n\n    def hartzell4(self, x, y, los=False):\n        '''Compute the intersection of this ellipse with a Line-Of-Sight from Point-Of-View\n           C{(B{x}, B{y})} I{outside} this ellipse.\n\n           @kwarg los: Line-Of-Sight, I{direction} to the ellipse (L{Los}, L{Vector3d},\n                       L{Vector2Tuple} or 2-tuple C{(dx, dy)}) or C{True} for the I{normal,\n                       perpendicular, plumb} to this ellipse or C{False} or C{None} to\n                       point to its center.\n\n           @return: L{Vector4Tuple}C{(x, y, z, h)} with coordinates C{x}, C{y} and C{z=0}\n                    of the intersection and C{h} the distance to \"Point-Of-View\" C{(B{x},\n                    B{y})} I{along the} B{C{los}}, all in C{meter}, conventionally.\n\n           @raise EllipseError: Invalid B{C{x}}, B{C{y}} or B{C{los}} or B{C{los}} points\n                                outside or away from this ellipse.\n\n           @see: Function L{hartzell4<triaxials.triaxial5.hartzell4>} for further details.\n        '''\n        V3d = _MODS.vector3d.Vector3d\n        if los not in (True, False, None):\n            try:\n                los = V3d(los.x, los.y, 0)\n            except (AttributeError, TypeError):\n                if _MODS.basics.islistuple(los, minum=2):\n                    los = V3d(*map(float, los[:2]))\n        return self._triaxialX(self.hartzell4, V3d(x, y, 0), los=los)\n\n    def height4(self, x, y, **normal_eps):\n        '''Compute the projection on and distance to this ellipse from a point C{(B{x}, B{y})}\n           in- or outside this ellipse.\n\n           @kwarg normal_eps: With default C{B{normal}=True} the projection is I{perpendicular,\n                         plumb} to this ellipse, otherwise C{radially} to its center (C{bool}).\n                         Tolerance C{B{eps}=EPS} for root finding and validation (C{scalar}),\n                         use a negative value to skip validation.\n\n           @return: L{Vector4Tuple}C{(x, y, z, h)} with coordinates C{x}, C{y} and C{z=0}\n                    of the projection on or the intersection with the ellipse and C{h} the\n                    I{signed, normal distance} to the ellipse in C{meter}, conventionally.\n                    Positive C{h} indicates, C{x} and/or C{y} are outside the ellipse,\n                    negative C{h} means inside.\n\n           @raise EllipseError: Invalid B{C{x}}, B{C{y}} or B{C{eps}}, no convergence in\n                  root finding or validation failed.\n\n           @see: Methods L{Ellipse.normal3d}, L{Ellipse.normal4} and function L{height4\n                 <triaxials.triaxial5.height4>}.\n        '''\n        return self._triaxialX(self.height4, x, y, 0, **normal_eps)\n\n    def _HGKs(self, h, maxit):\n        '''(INTERNAL) Yield the terms for property C{.perimeterHGK}.\n        '''\n        s = t = _1_0\n        yield s\n        for u in range(-1, maxit * 2, 2):\n            t *= u / (u + 3) * h\n            t2 = t**2\n            yield t2\n            p  = s\n            s += t2\n            if s == p:  # 44 trips\n                break\n        else:  # PYCHOK no cover\n            raise _ConvergenceError(maxit, s, p)\n\n    @property_RO\n    def isCircular(self):\n        '''Is this ellipse circular? (C{bool})\n        '''\n        return self.a == self.b\n\n    @property_RO\n    def isFlat(self):\n        '''Is this ellipse \"flat\", too pro-/oblate? (C{bool})\n        '''\n        return self._flat\n\n    @property_RO\n    def isOblate(self):\n        '''Is this ellipse oblate (foci on semi-axis C{a})? (C{bool})\n        '''\n        return self.a > self.b\n\n    @property_RO\n    def isProlate(self):\n        '''Is this ellipse prolate (foci on semi-axis C{b})? (C{bool})\n        '''\n        return self.a < self.b\n\n    @Property_RO\n    def lati(self):\n        '''Get the U{semi-latus rectum<https://WikiPedia.org/wiki/Ellipse#Semi-latus_rectum>},\n           I{signed} (C{meter}, conventionally), C{positive} if this ellipse is oblate or\n           circular, C{0} if \"flat\" and oblate, C{negative} if prolate or C{NEG0} if \"flat\"\n           and prolate.  See also property L{Ellipse.p}.\n        '''\n        r, _, a, p = self._Pab4\n        if 0 < p < a:\n            p *= p / a\n        if r:\n            p = -p if p else NEG0\n        return Meter(lati=p)  # signed\n\n    def normal3d(self, deg_x, y=None, **length):\n        '''Get a 3-D vector I{perpendicular to} this ellipse from point C{(B{x}, B{y})}\n           C{on} this ellipse or at C{B{deg} degrees} along this ellipse.\n\n           @kwarg length: Optional, signed C{B{length}=1} in out-/inward direction\n                          (C{scalar}).\n\n           @return: A C{Vector3d(x_, y_, z_=0)} normalized to B{C{length}}, pointing\n                    out- or inward for postive respectively negative B{C{length}}.\n\n           @raise EllipseError: Invalid B{C{x}} and/or B{C{y}}.\n\n           @see: Methods L{Ellipse.height4}, L{Ellipse.normal4}, L{Ellipse.sideOf} and\n                 C{Triaxial_.normal3d}.\n        '''\n        return self._triaxialX(self.normal3d, *self._xy03(deg_x, y), **length)\n\n    def normal4(self, deg_x, y=None, **height_normal):\n        '''Compute a point at B{C{height}} above or below this ellipse point C{(B{x},\n           B{y})} C{on} this ellipse or at C{B{deg} degrees} along this ellipse.\n\n           @kwarg height_normal: The desired distance C{B{height}=0} in- or outside this\n                         ellipse (C{meter}, conventionally) and C{B{normal}=True},  If\n                         C{B{normal}=True}, the B{C{height}} is I{perpendicular, plumb}\n                         to this ellipse, otherwise C{radially} to its center (C{bool}).\n\n           @return: L{Vector4Tuple}C{(x, y, z, h)} with coordinates C{x}, C{y} and C{z=0}\n                    and C{h} the I{signed, normal distance} to the ellipse in C{meter},\n                    conventionally.  Positive C{h} indicates, C{x} and/or C{y} are outside\n                    the ellipse, negative C{h} means inside.\n\n           @raise EllipseError: Invalid B{C{x}} and/or B{C{y}}.\n\n           @see: Methods L{Ellipse.height4}, L{Ellipse.normal3d}, L{Ellipse.sideOf} and\n                 C{Triaxial_.normal4}.\n        '''\n        return self._triaxialX(self.normal4, *self._xy03(deg_x, y), **height_normal)\n\n    @Property_RO\n    def p(self):\n        '''Get the U{semi-latus rectum<https://WikiPedia.org/wiki/Ellipse#Semi-latus_rectum>}\n           C{p (aka B{𝓁}, script-small-l)}, I{unsigned} (C{meter}, conventionally).\n        '''\n        return Meter(p=fabs(self.lati))\n\n    @Property_RO\n    def perimeterAGM(self):\n        '''Compute the perimeter of this ellipse using the U{Arithmetic-Geometric Mean\n           <https://PaulBourke.net/geometry/ellipsecirc>} formula (C{meter}, conventionally).\n        '''\n        _, P, a, b = self._Pab4\n        if P is None:\n            t  = _TOL53\n            m  = -1\n            c  = a + b\n            ds = [c**2]\n            _d = ds.append\n            for _ in range(self._maxit):  # 4..5 trips\n                b  = sqrt(a * b)\n                a  = c * _0_5\n                c  = a + b\n                d  = a - b\n                m *= 2\n                _d(d**2 * m)\n                if d <= (b * t):\n                    break\n            else:  # PYCHOK no cover\n                raise _ConvergenceError(self._maxit, _over(d, b), t)\n            P = _over(_fsum(ds) * PI, c)  # nonfinites=True\n        return Meter(perimeterAGM=P)\n\n    @Property_RO\n    def perimeter4Arc3(self):\n        '''Compute the perimeter (and arcs) of this ellipse using the U{4-Arc\n           <https://PaulBourke.net/geometry/ellipsecirc>} (aka 4-Center)\n           approximation as a 3-Tuple C{(P, Ra, Rb)} with perimeter C{P}, arc\n           radii C{Ra} and C{Rb} at the respective semi-axes (all in C{meter},\n           conventionally).\n        '''\n        r, P, a, b = self._Pab4\n        if P is None:\n            h = hypot(a, b)\n            t = atan2(b, a)\n            s, c = sincos2(t)\n            L = (h - (a - b)) * _0_5\n            a = _over(L, c)\n            b = _over(h - L, s)\n            P = (t * b + (PI_2 - t) * a) * _4_0\n        elif a > b:  # flat\n            a, b = _0_0, _1_over(b)  # INF\n#       else:  # circular\n#           pass\n        if r:\n            a, b = b, a\n        return Meter(perimeter4Arc=P), Radius(Ra=a), Radius(Rb=b)\n\n#   @Property_RO\n#   def perimeterBPA(self):\n#       '''Compute the perimeter of this ellipse using the U{Bronshtein Padé\n#          Approximant <https://www.math.TTU.edu/~pearce/papers/schov.pdf>}\n#          (C{meter}, conventionally).\n#       '''\n#       P, h = self._Ph2\n#       if h:\n#           h *=  h\n#           P *= _over(h**2 * _3_0 - _64_0, h * _16_0 - _64_0) * PI\n#       return Meter(perimeterBPA=P)\n\n    @Property_RO\n    def perimeterCR(self):\n        '''Compute the perimeter of this ellipse using U{Rackauckas'\n           <https://www.ChrisRackauckas.com/assets/Papers/ChrisRackauckas-The_Circumference_of_an_Ellipse.pdf>}\n           approximation, also U{here<https://ExtremeLearning.com.AU/a-formula-for-the-perimeter-of-an-ellipse>} and\n           U{here<http://www.EByte.IT/library/docs/math05a/EllipsePerimeterApprox05.html>} (C{meter}, conventionally).\n        '''\n        P, h = self._Ph2\n        if h:\n            h *=  h\n            P *= _over(fhorner(h, 135168,  -85760, -5568, 3867),\n                       fhorner(h, 135168, -119552, 22208, -345)) * PI\n        return Meter(perimeterCR=P)\n\n    @Property_RO\n    def perimeterGK(self):\n        '''Compute the perimeter of this ellipse using the U{Gauss-Kummer\n           <https://www.JohnDCook.com/blog/2023/05/28/approximate-ellipse-perimeter>}\n           series, C{B{b / a} > 0.75} (C{meter}, conventionally).\n        '''\n        P, h = self._Ph2\n        if h:\n            P *= fhorner(h**2, *self._GKs) * PI\n        return Meter(perimeterGK=P)\n\n    @Property_RO\n    def perimeterHGK(self):\n        '''Compute the perimeter of this ellipse using the U{Hypergeometric Gauss-Kummer\n           <https://web.Tecnico.ULisboa.PT/~mcasquilho/compute/com/,ellips/PerimeterOfEllipse.pdf>}\n           series (C{meter}, conventionally).\n        '''\n        P, h = self._Ph2\n        if h:\n            hs =  self._HGKs(h, self._maxit)\n            P *= _fsum(hs) * PI  # nonfinites=True\n        return Meter(perimeterHGK=P)\n\n#   @Property_RO\n#   def perimeterJWPA(self):\n#       '''Compute the perimeter of this ellipse using the U{Jacobson-Waadeland\n#          Padé Approximant <https://www.math.TTU.edu/~pearce/papers/schov.pdf>}\n#          (C{meter}, conventionally).\n#       '''\n#       P, h = self._Ph2\n#       if h:\n#           h *=  h\n#           P *= _over(fhorner(h, 256,  -48, -21),\n#                      fhorner(h, 256, -112,   3)) * PI\n#       return Meter(perimeterJWPA=P)\n\n    @Property_RO\n    def perimeter2k(self):\n        '''Compute the perimeter of this ellipse using the complete integral\n           of the 2nd kind, C{Elliptic.cE} (C{meter}, conventionally).\n        '''\n        return Meter(perimeter2k=self._perimeter2k(self._ellipE))\n\n    @Property_RO\n    def perimeter2k_(self):\n        '''Compute the perimeter of this ellipse using U{SciPy's ellipe\n           <https://www.JohnDCook.com/perimeter_ellipse.html>} function\n           if available, otherwise use property C{perimeter2k} (C{meter},\n           conventionally).\n        '''\n        return Meter(perimeter2k_=self._perimeter2k(self._ellipe or self._ellipE))\n\n    def _perimeter2k(self, _ellip):\n        '''(INTERNAL) Helper for methods C{.PE2k} and C{.Pe2k}.\n        '''\n        _, P, a, _ = self._Pab4\n        if P is None:  # see .ellipsoids.Ellipsoid.L\n            k =  self.e2\n            P = _ellip(k) * a * _4_0\n        return P\n\n#   @Property_RO\n#   def perimeterLS(self):\n#       '''Compute the perimeter of this ellipse using the U{Linderholm-Segal\n#          <https://www.JohnDCook.com/blog/2021/03/24/perimeter-of-an-ellipse>}\n#          formula, aka C{3/2 norm} (C{meter}, conventionally).\n#       '''\n#       _, P, a, b = self._Pab4\n#       if P is None:\n#           n = pow(a, _1_5) + pow(b, _1_5)\n#           P = pow(n * _0_5, _2_3rd) * PI2\n#       return Meter(perimeterLS=P)\n\n    @Property_RO\n    def perimeter2R(self):\n        '''Compute the perimeter of this ellipse using U{Ramanujan's 2nd\n           <https://PaulBourke.net/geometry/ellipsecirc>} approximation,\n           C{B{b / a} > 0.9} (C{meter}, conventionally).\n        '''\n        P, h = self._Ph2\n        if h:\n            P *= _2RC(h, _1_0)\n        return Meter(perimeter2R=P)\n\n    @Property_RO\n    def perimeter2RC(self):\n        '''Compute the perimeter of this ellipse using U{Cantrell Ramanujan's 2nd\n           <http://www.EByte.IT/library/docs/math05a/EllipsePerimeterApprox05.html>}\n           approximation, C{B{b / a} > 0.9} (C{meter}, conventionally).\n        '''\n        P, h = self._Ph2\n        if h:\n            P *= _2RC(h, pow(h, 24) * self._4_PI_ + _1_0)\n        return Meter(perimeter2RC=P)\n\n#   @Property_RO\n#   def perimeterSPA(self):\n#       '''Compute the perimeter of this ellipse using the U{Selmer Padé Approximant\n#          <http://www.EByte.IT/library/docs/math05a/EllipsePerimeterApprox05.html>}\n#          (C{meter}, conventionally).\n#       '''\n#       P, h = self._Ph2\n#       if h:\n#           h *=  h\n#           P *= _over(h * _3_0 + _16_0, _16_0 - h) * PI\n#       return Meter(perimeterSPA=P)\n\n    @Property_RO\n    def _Ph2(self):\n        _, P, a, b = self._Pab4\n        if P is None:\n            if b:\n                P =  a + b\n                h = (a - b) / P\n            else:\n                P =  a\n                h = _1_0\n        else:\n            h = None\n        return P, h\n\n    def point(self, deg_x, y=None):\n        '''Return the point I{on} this ellipse at C{B{deg}} or C{atan2d(B{y}, B{x})\n           degrees} along this ellipse.\n\n           @return: A 2-tuple C{(x, y)}.\n        '''\n        s, c = sincos2d(deg_x) if y is None else self._sc2(deg_x, y, eps=None)\n        return (self.a * c), (self.b * s)\n\n    def points(self, np, nq=4, ccw=False, ended=False, eps=EPS):  # MCCABE 13\n        '''Yield up to C{np} points along this ellipse, each a 2-tuple C{(x, y)},\n           starting at semi-axis C{+a}, in (counter-)clockwise order and distributed\n           evenly along the minor semi-axis.\n\n           @arg np: Number of points to generate (C{int}).\n           @kwarg nq: Number of quarters to cover (C{int}, 1..4).\n           @kwarg ccw: Use C{B{ccw}=True} for counter-clockwise order (C{bool}).\n           @kwarg ended: If C{True}, include the last quadrant's end point (C{bool}).\n           @kwarg eps: Tolerance for duplicate points (C{meter}, conventionally).\n\n           @see: U{Directrix<https://MathWorld.Wolfram.com/ConicSectionDirectrix.html>}.\n        '''\n        a, b, _ = self._ab3\n        if min(a, b) > eps and not self.isFlat:\n            q  =  max(min(int(nq),  4), 1)\n            n  =  max(    int(np) // q, 1)\n            if not ccw:\n                b = -b\n            ps = list(_q1ps(a, b, n, eps))\n            for p in ps:  # 1st quadrant\n                yield p\n            p0 =  ps.pop(0)  # E\n            pq = _0_0, b  # N/S\n            if q > 1:\n                yield pq\n                for x, y in reversed(ps):  # 2nd\n                    yield (-x), y\n                pq = (-a), _0_0  # W\n                if q > 2:\n                    yield pq\n                    for x, y in ps:  # 3rd\n                        yield (-x), (-y)\n                    pq = _0_0, (-b)  # S/N\n                    if q > 3:\n                        yield pq\n                        for x, y in reversed(ps):  # 4th\n                            yield x, (-y)\n                        pq = p0\n            if ended:\n                yield pq\n        else:  # \"flat\"\n            p0 = a, b\n            yield p0\n            if max(a, b) > eps:\n                yield (-a), (-b)\n                if ended:\n                    yield p0\n\n    def polar2d(self, deg_x, y=None):\n        '''For a point at C{B{deg}} or C{atan2d(B{y}, B{x}) degrees} along this\n           ellipse, return 2-tuple C{(radius, angle)} with the polar U{radius\n           <https://WikiPedia.org/wiki/Ellipse#Polar_form_relative_to_center>}\n           from the center (C{meter}, conventionally) and C{angle} in C{degrees}.\n        '''\n        s, c = sincos2d(deg_x) if y is None else self._sc2(deg_x, y, eps=None)\n        a, b, ab = self._ab3\n        r = (_over(ab, hypot(a * s, b * c)) if c else b) if s else a\n        return r, atan2b(s, c)\n\n    @Property_RO\n    def R1(self):\n        '''Get this ellipse' I{arithmetic mean} radius, C{(2 * a + b) / 3} (C{meter}, conventionally).\n        '''\n        _, _, a, r = self._Pab4\n        if r:\n            r = fmean_(a, a, r) if a > r else a\n        return Radius(R1=r or _0_0)\n\n    @Property_RO\n    def R2(self):\n        '''Get this ellipse' I{authalic} radius, C{sqrt(B{a} * B{b})} (C{meter}, conventionally).\n        '''\n        a, b, ab = self._ab3\n        return Radius(R2=(sqrt(ab) if a != b else float(a)) if ab else _0_0)\n\n    Rauthalic = Rgeometric = R2\n\n    def Roc(self, deg_x, y=None, eps=None):\n        '''Compute the U{radius of curvature<https://WikiPedia.org/wiki/Radius_of_curvature>}\n           at a point C{B{deg}} or C{atan2d(B{y}, B{x}) degrees} along this ellipse.\n\n           @see: Method L{Roc_<Ellipse.Roc_>} for ruther details.\n        '''\n        x = radians(deg_x) if y is None else deg_x\n        return self.Roc_(x, y, eps=eps)\n\n    def Roc_(self, rad_x, y=None, eps=None):\n        '''Compute the U{radius of curvature<https://WikiPedia.org/wiki/Radius_of_curvature>}\n           at a point C{B{rad}} or C{atan2(B{y}, B{x}) radians} along this ellipse.\n\n           @kwarg eps: See method C{sideOf}, use C{B{eps}=0} to permit any points.\n\n           @return: Curvature (C{meter}, conventionally).\n\n           @raise ValueError: Point C{(B{x}, B{y})} off this ellipse, unless C{B{eps}=0}.\n        '''\n        try:\n            a, b, ab = self._ab3\n            if b != a:\n                s, c = sincos2(rad_x) if y is None else self._sc2(rad_x, y, eps=eps)\n                r = _over(hypot(a * s, b * c)**3, ab)\n            else:  # circular\n                r = float(a)\n        except Exception as X:\n            raise self._Error(self.Roc_, cause=X)\n        return Radius(Roc=r)\n\n    @Property_RO\n    def Rrectifying(self):\n        '''Get this ellipse' I{rectifying} radius, C{perimeter2k_ / PI2} (C{meter}, conventionally).\n        '''\n        return Radius(Rrectifying=self.perimeter2k_ / PI2)\n\n    def _sc2(self, x, y, eps=EPS):\n        '''(INTERNAL) Helper for methods C{.point}, C{.polar}, C{.Roc_} and C{.slope_}.\n        '''\n        if eps and eps > 0:\n            s = self._sideOf(x, y, eps)\n            if s:\n                raise _ValueError(x=x, y=y, eps=eps, sideOf=s)\n        h = hypot(x, y)\n        s = _over(y, h)\n        c = _over(x, h)\n        return s, c\n\n    def _sideOf(self, x, y, eps):\n        '''(INTERNAL) Helper for methods C{._sc2} and C{.sideOf}.\n        '''\n        a, b, ab = self._ab3\n        s = ab or max(a, b)\n        if s:\n            s = (hypot(x * b, y * a) - s) / s\n#           s = max(_N_1_0, min(_1_0, s))\n        else:  # dot\n            s = _1_0 if x or y else _0_0\n        return INT0 if fabs(s) < eps else s\n\n    def sideOf(self, x, y, eps=EPS):\n        '''Return a C{positive}, C{negative} or C{0} fraction if point C{(B{x}, B{y})}\n           is C{outside}, C{inside} respectively C{on} this ellipse.\n        '''\n        try:\n            return Scalar(sideOf=self._sideOf(x, y, eps))\n        except Exception as X:\n            raise self._Error(self.sideOf, x=x, y=y, cause=X)\n\n    def slope(self, deg_x, y=None, eps=None):\n        '''Compute the U{tangent slope<https://WikiPedia.org/wiki/Ellipse#Tangent_slope_as_parameter>}\n           at a point C{B{deg}} or C{atan2d(B{y}, B{x}) degrees} along this ellipse.\n\n           @return: Slope (C{degrees}), negative for C{0 <= B{deg} < 90}.\n\n           @see: Method L{slope_<Ellipse.slope_>} for further details.\n        '''\n        x = radians(deg_x) if y is None else deg_x\n        return Degrees(slope=degrees(self.slope_(x, y, eps=eps)))\n\n    def slope_(self, rad_x, y=None, eps=None):\n        '''Compute the U{tangent slope<https://WikiPedia.org/wiki/Ellipse#Tangent_slope_as_parameter>}\n           at a point C{B{rad}} or C{atan2(B{y}, B{x}) radians} along this ellipse.\n\n           @kwarg eps: See method C{sideOf}, use C{B{eps}=0} to permit any points.\n\n           @return: Slope (C{radians}), negative for C{0 <= B{rad} < PI/2}.\n\n           @raise ValueError: C{(B{x}, B{y})} off this ellipse, unless C{B{eps}=0}.\n        '''\n        # <https://UNacademy.com/content/jee/study-material/mathematics/equation-of-a-tangent-to-the-ellipse/>\n        s, c = sincos2(rad_x) if y is None else self._sc2(rad_x, y, eps=eps)\n        r = atan2p(-self.b * c, self.a * s)\n        if r >= PI3_2:\n            r -= PI2\n        return Radians(slope=r or _0_0)  # no -0.0\n\n    def toEllipsoid(self, **Ellipsoid_and_kwds):\n        '''Return an L{Ellipsoid<pygeodesy.Ellipsoid>} from this ellipse'\n           C{a} and C{b} semi-axes.\n\n           @kwarg Ellipsoid_and_kwds: Optional C{B{Ellipsoid}=Ellipsoid} class\n                                and additional C{Ellipsoid} keyword arguments.\n        '''\n        E, kwds = _xkwds_pop2(Ellipsoid_and_kwds, Ellipsoid=\n                                 _MODS.ellipsoids.Ellipsoid)\n        return E(self.a, b=self.b, **_xkwds(kwds, name=self.name))\n\n    def toStr(self, prec=8, terse=2, **sep_name):  # PYCHOK signature\n        '''Return this ellipse as a text string.\n\n           @kwarg prec: Number of decimal digits, unstripped (C{int}).\n           @kwarg terse: Limit the number of items (C{int}, 0...9),\n                         use C{B{terse}=0} or C{=None} for all.\n           @kwarg sep_name: Optional C{B{name}=NN} (C{str}) or C{None}\n                      to exclude this ellipse' name and separator\n                      C{B{sep}=\", \"} to join the items (C{str}).\n\n           @return: This C{Ellipse}' attributes (C{str}).\n        '''\n        E = Ellipse\n        t = E.a, E.b\n        if (terse or 0) != 2:\n            t += E.c, E.e, E.e2, E.p, E.area, E.perimeter2k, E.R2\n            if terse:\n                t = t[:terse]\n        return self._instr(prec=prec, props=t, **sep_name)\n\n    def toTriaxial_(self, c=EPS, **Triaxial_and_kwds):  # like .Ellipse5Tuple.toTriaxial_\n        '''Return a L{Triaxial_<pygeodesy.Triaxial_>} from this ellipse' semi-axes.\n\n           @kwarg c: Near-zero, minor semi-axis (C{meter}, conventionally).\n           @kwarg Triaxial_and_kwds: Optional C{B{Triaxial}=Triaxial_} class and\n                               additional C{Triaxial} keyword arguments.\n        '''\n        T, kwds = _xkwds_pop2(Triaxial_and_kwds, Triaxial=_MODS.triaxials.Triaxial_)\n        return T(self.a, b=self.b, c=c, **_xkwds(kwds, name=self.name or _UNDER_))  # 'NN'\n\n    def _triaxialX(self, method, *args, **kwds):\n        '''(INTERNAL) Invoke a triaxial method and map exceptions to L{EllipseError}s.\n        '''\n        try:\n            t = self._tEPS\n            if t is None:\n                self._tEPS = t = self.toTriaxial_(EPS)\n            _m = getattr(t, method.__name__)\n            return _m(*args, **kwds)\n        except Exception as x:\n            raise self._Error(method, Triaxial_=t, cause=x)\n\n    def _xy03(self, deg_x, y):\n        if y is None:\n            y, x = sincos2d(deg_x)\n            y *= self.b\n            x *= self.a\n        else:\n            x  = float(deg_x)\n            y  = float(y)\n        return x, y, 0\n\n\nclass EllipseError(_ValueError):\n    '''Raised for any L{Ellipse} or C{ellipses} issue.\n    '''\n    pass  # ...\n\n\ndef _arc(_e, k, r):\n    # in C{Ellipse.arc_}\n    t, r = divmod(r, PI2)\n    R = _e(k, r)  # phi=r\n    if t:  # + t * perimeter\n        t *= _e(k) * _4_0\n        R +=  t\n    return R\n\n\ndef _isFlat(a, b):  # in .triaxials.bases\n    # is C{b <<< a}?\n    return b < (a * _TOL53_53)\n\n\ndef _q1ps(a, b, n, eps):\n    # yield the 1st quadrant C{Ellipse.points}\n    if a > b:  # oblate\n        def _yx2(i):\n            y = i / n\n            return y, sqrt(_1_0 - y**2)\n\n    elif a < b:  # prolate\n        def _yx2(i):  # PYCHOK redef\n            x = (n - i) / n\n            return sqrt(_1_0 - x**2), x\n\n    else:  # circular\n        r = PI_2 / n\n        def _yx2(i):  # PYCHOK redef\n            return sincos2(r * i)\n\n    p = a, _0_0  # == p0\n    yield p\n    for i in range(1, n):\n        y, x = _yx2(i)\n        y *= b\n        x *= a\n        if euclid(x, y, *p) > eps:\n            p = x, y\n            yield p\n\n\ndef _2RC(h, r):\n    # in C{Ellipse.perimeter2R} and C{.perimeter2RC}\n    h *= _3_0 * h\n    r +=  h / (sqrt(_4_0 - h) + _10_0)\n    return r * PI\n\n# **) MIT License\n#\n# Copyright (C) 2026-2026 -- mrJean1 at Gmail -- All Rights Reserved.\n#\n# Permission is hereby granted, free of charge, to any person obtaining a\n# copy of this software and associated documentation files (the \"Software\"),\n# to deal in the Software without restriction, including without limitation\n# the rights to use, copy, modify, merge, publish, distribute, sublicense,\n# and/or sell copies of the Software, and to permit persons to whom the\n# Software is furnished to do so, subject to the following conditions:\n#\n# The above copyright notice and this permission notice shall be included\n# in all copies or substantial portions of the Software.\n#\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL\n# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR\n# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\n# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n# OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "pygeodesy/ellipsoidalBase.py",
    "content": "\n# -*- coding: utf-8 -*-\n\nu'''(INTERNAL) Private ellipsoidal base classes C{CartesianEllipsoidalBase}\nand C{LatLonEllipsoidalBase}.\n\nA pure Python implementation of geodesy tools for ellipsoidal earth models,\ntranscoded in part from JavaScript originals by I{(C) Chris Veness 2005-2024}\nand published under the same MIT Licence**, see for example U{latlon-ellipsoidal\n<https://www.Movable-Type.co.UK/scripts/geodesy/docs/latlon-ellipsoidal.js.html>}.\n'''\n# make sure int/int division yields float quotient, see .basics\nfrom __future__ import division as _; del _  # noqa: E702 ;\n\n# from pygeodesy.azimuthal import EquidistantExact, EquidistantKarney  # _MODS\nfrom pygeodesy.basics import _isin, _xinstanceof\nfrom pygeodesy.constants import EPS, EPS0, EPS1, _0_0, _0_5\nfrom pygeodesy.cartesianBase import CartesianBase  # PYCHOK used!\n# from pygeodesy.css import toCss  # _MODS\nfrom pygeodesy.datums import Datum, Datums, _earth_ellipsoid, _ellipsoidal_datum, \\\n                             Transform, _WGS84,  _EWGS84  # _spherical_datum\n# from pygeodesy.dms import parse3llh  # _MODS\n# from pygeodesy.elevations import elevation2, geoidHeight2  # _MODS\n# from pygeodesy.ellipsoidalBaseDI import _intersect3, _intersections2, _nearestOn2  # _MODS\n# from pygeodesy.ellipsoids import _EWGS84  # from .datums\nfrom pygeodesy.errors import _IsnotError, RangeError, _TypeError, _xattr, _xellipsoidal, \\\n                             _xellipsoids, _xError, _xkwds, _xkwds_not\n# from pygeodesy.etm import etm, toEtm8  # _MODS\n# from pygeodesy.fmath import favg  # _MODS\nfrom pygeodesy.interns import NN, _COMMA_, _ellipsoidal_\nfrom pygeodesy.latlonBase import LatLonBase, _trilaterate5,  fabs, _Wrap\nfrom pygeodesy.lazily import _ALL_DOCS, _ALL_LAZY, _ALL_MODS as _MODS\n# from pygeodesy.lcc import toLcc  # _MODS\n# from pygeodesy.namedTuples import Vector3Tuple  # _MODS\n# from pygeodesy.osgr import toOsgr  # _MODS\n# from pygeodesy.points import isenclosedBy  # _MODS\nfrom pygeodesy.props import deprecated_method, deprecated_property_RO, \\\n                            Property_RO, property_doc_, property_RO, _update_all\n# from pygeodesy.trf import RefFrame, _toRefFrame  # _MODS\nfrom pygeodesy.units import Epoch, _isDegrees, Radius_, _1mm as _TOL_M\n# from pygeodesy import ups, utm, utmups  # MODS\n# from pygeodesy.utmupsBase import _lowerleft  # MODS\n# from pygeodesy.utily import _Wrap  # from .latlonBase\n# from pygeodesy.vector3d import _intersects2  # _MODS\n\n# from math import fabs  # from .latlonBase\n\n__all__ = _ALL_LAZY.ellipsoidalBase\n__version__ = '25.07.21'\n\n\nclass CartesianEllipsoidalBase(CartesianBase):\n    '''(INTERNAL) Base class for ellipsoidal C{Cartesian}s.\n    '''\n    _datum   = _WGS84  # L{Datum}\n    _epoch   =  None   # overriding .reframe.epoch (C{float})\n    _reframe =  None   # reference frame (L{RefFrame})\n\n    def __init__(self, x_xyz, y=None, z=None, reframe=None, epoch=None,\n                                                       **datum_ll_name):\n        '''New ellispoidal C{Cartesian...}.\n\n           @kwarg reframe: Optional reference frame (L{RefFrame}).\n           @kwarg epoch: Optional epoch to observe for B{C{reframe}} (C{scalar}),\n                         a non-zero, fractional calendar year; silently ignored\n                         if C{B{reframe}=None}.\n\n           @raise TypeError: Non-scalar B{C{x_xyz}}, B{C{y}} or B{C{z}} coordinate\n                             or B{C{x_xyz}} not a C{Cartesian} L{Ecef9Tuple},\n                             L{Vector3Tuple} or L{Vector4Tuple} or B{C{datum}} is\n                             not a L{Datum}, B{C{reframe}} is not a L{RefFrame} or\n                             B{C{epoch}} is not C{scalar} non-zero.\n\n           @see: Class L{CartesianBase<CartesianBase.__init__>} for more details.\n        '''\n        CartesianBase.__init__(self, x_xyz, y=y, z=z, **datum_ll_name)\n        if reframe:\n            self.reframe = reframe\n            self.epoch = epoch\n\n#   def __matmul__(self, other):  # PYCHOK Python 3.5+\n#       '''Return C{NotImplemented} for C{c_ = c @ datum}, C{c_ = c @ reframe} and C{c_ = c @ Transform}.\n#       '''\n#       RefFrame = _MODS.trf.RefFrame\n#       return NotImplemented if isinstance(other, (Datum, RefFrame, Transform)) else \\\n#             _NotImplemented(self, other)\n\n    @deprecated_method\n    def convertRefFrame(self, reframe2, reframe, epoch=None):\n        '''DEPRECATED, use method L{toRefFrame}.'''\n        return self.toRefFrame(reframe2, reframe=reframe, epoch=epoch)  # PYCHOK no cover\n\n    @property_RO\n    def ellipsoidalCartesian(self):\n        '''Get this C{Cartesian}'s ellipsoidal class.\n        '''\n        return type(self)\n\n    @property_doc_(''' this cartesian's observed or C{reframe} epoch (C{float}).''')\n    def epoch(self):\n        '''Get this cartesian's observed or C{reframe} epoch (C{Epoch}) or C{None}.\n        '''\n        return self._epoch or (self.reframe.epoch if self.reframe else None)\n\n    @epoch.setter  # PYCHOK setter!\n    def epoch(self, epoch):\n        '''Set or clear this cartesian's observed epoch, a fractional\n           calendar year (L{Epoch}, C{scalar} or C{str}) or C{None}.\n\n           @raise TRFError: Invalid B{C{epoch}}.\n        '''\n        self._epoch = None if epoch is None else Epoch(epoch)\n\n    def intersections2(self, radius, center2, radius2, sphere=True,\n                                                       Vector=None, **Vector_kwds):\n        '''Compute the intersection of two spheres or circles, each defined by a\n           cartesian center point and a radius.\n\n           @arg radius: Radius of this sphere or circle (same units as this point's\n                        coordinates).\n           @arg center2: Center of the second sphere or circle (C{Cartesian}, L{Vector3d},\n                         C{Vector3Tuple} or C{Vector4Tuple}).\n           @arg radius2: Radius of the second sphere or circle (same units as this and\n                         the B{C{other}} point's coordinates).\n           @kwarg sphere: If C{True}, compute the center and radius of the intersection\n                          of two I{spheres}.  If C{False}, ignore the C{z}-component and\n                          compute the intersection of two I{circles} (C{bool}).\n           @kwarg Vector: Class to return intersections (C{Cartesian}, L{Vector3d} or\n                          C{Vector3Tuple}) or C{None} for an instance of this (sub-)class.\n           @kwarg Vector_kwds: Optional, additional B{C{Vector}} keyword arguments,\n                               ignored if C{B{Vector} is None}.\n\n           @return: If C{B{sphere} is True}, a 2-tuple of the C{center} and C{radius} of\n                    the intersection of the I{spheres}.  The C{radius} is C{0.0} for\n                    abutting spheres (and the C{center} is aka the I{radical center}).\n\n                    If C{B{sphere} is False}, a 2-tuple with the two intersection points\n                    of the I{circles}.  For abutting circles, both points are the same\n                    instance (aka the I{radical center}).\n\n           @raise IntersectionError: Concentric, invalid or non-intersecting spheres or circles.\n\n           @raise TypeError: Invalid B{C{center2}}.\n\n           @raise UnitError: Invalid B{C{radius}} or B{C{radius2}}.\n\n           @see: U{Sphere-Sphere<https://MathWorld.Wolfram.com/Sphere-SphereIntersection.html>},\n                 U{Circle-Circle<https://MathWorld.Wolfram.com/Circle-CircleIntersection.html>}\n                 Intersection and function L{pygeodesy.radical2}.\n        '''\n        try:\n            return _MODS.vector3d._intersects2(self, Radius_(radius=radius),\n                                            center2, Radius_(radius2=radius2),\n                                            sphere=sphere, clas=self.classof,\n                                            Vector=Vector, **Vector_kwds)\n        except (TypeError, ValueError) as x:\n            raise _xError(x, center=self, radius=radius, center2=center2, radius2=radius2)\n\n    @property_doc_(''' this cartesian's reference frame (L{RefFrame}).''')\n    def reframe(self):\n        '''Get this cartesian's reference frame (L{RefFrame}) or C{None}.\n        '''\n        return self._reframe\n\n    @reframe.setter  # PYCHOK setter!\n    def reframe(self, reframe):\n        '''Set or clear this cartesian's reference frame (L{RefFrame}) or C{None}.\n\n           @raise TypeError: The B{C{reframe}} is not a L{RefFrame}.\n        '''\n        _set_reframe(self, reframe)\n\n    def toLatLon(self, datum=None, height=None, **LatLon_and_kwds):  # PYCHOK signature\n        '''Convert this cartesian to a I{geodetic} (lat-/longitude) point.\n\n           @see: Method L{toLatLon<cartesianBase.CartesianBase.toLatLon>}\n                 for further details.\n        '''\n        kwds = LatLon_and_kwds\n        if kwds:\n            kwds = _xkwds(kwds, reframe=self.reframe, epoch=self.epoch)\n        return CartesianBase.toLatLon(self, datum=datum, height=height, **kwds)\n\n    def toRefFrame(self, reframe2, reframe=None, epoch=None, epoch2=None, **name):\n        '''Convert this point to an other reference frame and epoch.\n\n           @arg reframe2: Reference frame to convert I{to} (L{RefFrame}).\n           @kwarg reframe: Optional reference frame to convert I{from} (L{RefFrame}),\n                           overriding this point's reference frame.\n           @kwarg epoch: Optional epoch (L{Epoch}, C{scalar} or C{str}), overriding\n                         this point's C{epoch or B{reframe}.epoch}.\n           @kwarg epoch2: Optional epoch to observe for the converted point (L{Epoch},\n                          C{scalar} or C{str}), otherwise B{C{epoch}}.\n           @kwarg name: Optional C{B{name}=NN} (C{str}), overriding C{B{reframe2}.name}.\n\n           @return: The converted point (ellipsoidal C{Cartesian}) or if conversion\n                    C{isunity}, this point or a copy of this point if the B{C{name}}\n                    is non-empty.\n\n           @raise TRFError: This point's C{reframe} is not defined, invalid B{C{epoch}}\n                            or B{C{epoch2}} or conversion from this point's C{reframe}\n                            to B{C{reframe2}} is not available.\n\n           @raise TypeError: B{C{reframe2}} or B{C{reframe}} not a L{RefFrame}.\n        '''\n        return _MODS.trf._toRefFrame(self, reframe2, reframe=reframe, epoch=epoch,\n                                                     epoch2=epoch2, **name)\n\n    @deprecated_method\n    def toTransforms_(self, *transforms, **datum):  # PYCHOK no cover\n        '''DEPRECATED on 2024.02.14, use method C{toTransform}.'''\n        r = self\n        for t in transforms:\n            r = r.toTransform(t)\n        return r.dup(**datum) if datum else r\n\n\nclass LatLonEllipsoidalBase(LatLonBase):\n    '''(INTERNAL) Base class for ellipsoidal C{LatLon}s.\n    '''\n    _datum          = _WGS84  # L{Datum}\n    _elevation2to   =  None   # _elevation2 timeout (C{secs})\n    _epoch          =  None   # overriding .reframe.epoch (C{float})\n    _gamma          =  None   # UTM/UPS meridian convergence (C{degrees})\n    _geoidHeight2to =  None   # _geoidHeight2 timeout (C{secs})\n    _reframe        =  None   # reference frame (L{RefFrame})\n    _scale          =  None   # UTM/UPS scale factor (C{float})\n    _toLLEB_args    = ()      # Etm/Utm/Ups._toLLEB arguments\n\n    def __init__(self, latlonh, lon=None, height=0, datum=_WGS84, reframe=None,\n                                          epoch=None, wrap=False, **name):\n        '''Create an ellipsoidal C{LatLon} point from the given lat-, longitude\n           and height on the given datum, reference frame and epoch.\n\n           @arg latlonh: Latitude (C{degrees} or DMS C{str} with N or S suffix) or\n                         a previous C{LatLon} instance provided C{B{lon}=None}.\n           @kwarg lon: Longitude (C{degrees} or DMS C{str} with E or W suffix) or C(None),\n                       indicating B{C{latlonh}} is a C{LatLon}.\n           @kwarg height: Optional height above (or below) the earth surface (C{meter},\n                          same units as the datum's ellipsoid axes).\n           @kwarg datum: Optional, ellipsoidal datum to use (L{Datum}, L{Ellipsoid},\n                         L{Ellipsoid2} or L{a_f2Tuple}).\n           @kwarg reframe: Optional reference frame (L{RefFrame}).\n           @kwarg epoch: Optional epoch to observe for B{C{reframe}} (C{scalar}), a\n                         non-zero, fractional calendar year, but silently ignored if\n                         C{B{reframe}=None}.\n           @kwarg wrap: If C{True}, wrap or I{normalize} B{C{lat}} and B{C{lon}} (C{bool}).\n           @kwarg name: Optional C{B{name}=NN} (C{str}).\n\n           @raise RangeError: Value of C{lat} or B{C{lon}} outside the valid range and\n                              L{rangerrors} set to C{True}.\n\n           @raise TypeError: If B{C{latlonh}} is not a C{LatLon}, B{C{datum}} is not a\n                             L{Datum}, B{C{reframe}} is not a L{RefFrame} or B{C{epoch}}\n                             is not C{scalar} non-zero.\n\n           @raise UnitError: Invalid B{C{lat}}, B{C{lon}} or B{C{height}}.\n        '''\n        LatLonBase.__init__(self, latlonh, lon=lon, height=height, wrap=wrap, **name)\n        if not _isin(datum, None, self._datum, _EWGS84):\n            self.datum = _ellipsoidal_datum(datum, name=self.name)\n        if reframe:\n            self.reframe = reframe\n            self.epoch = epoch\n\n#   def __matmul__(self, other):  # PYCHOK Python 3.5+\n#       '''Return C{NotImplemented} for C{ll_ = ll @ datum} and C{ll_ = ll @ reframe}.\n#       '''\n#       RefFrame = _MODS.trf.RefFrame\n#       return NotImplemented if isinstance(other, (Datum, RefFrame)) else \\\n#             _NotImplemented(self, other)\n\n    def antipode(self, height=None):\n        '''Return the antipode, the point diametrically opposite\n           to this point.\n\n           @kwarg height: Optional height of the antipode, height\n                          of this point otherwise (C{meter}).\n\n           @return: The antipodal point (C{LatLon}).\n        '''\n        lla = LatLonBase.antipode(self, height=height)\n        if lla.datum != self.datum:\n            lla.datum = self.datum\n        return lla\n\n    @deprecated_property_RO\n    def convergence(self):\n        '''DEPRECATED, use property C{gamma}.'''\n        return self.gamma  # PYCHOK no cover\n\n    @deprecated_method\n    def convertDatum(self, datum2):\n        '''DEPRECATED, use method L{toDatum}.'''\n        return self.toDatum(datum2)\n\n    @deprecated_method\n    def convertRefFrame(self, reframe2):\n        '''DEPRECATED, use method L{toRefFrame}.'''\n        return self.toRefFrame(reframe2)\n\n    @property_doc_(''' this points's datum (L{Datum}).''')\n    def datum(self):\n        '''Get this point's datum (L{Datum}).\n        '''\n        return self._datum\n\n    @datum.setter  # PYCHOK setter!\n    def datum(self, datum):\n        '''Set this point's datum I{without conversion} (L{Datum}).\n\n           @raise TypeError: The B{C{datum}} is not a L{Datum} or not ellipsoidal.\n        '''\n        _xinstanceof(Datum, datum=datum)\n        if not datum.isEllipsoidal:\n            raise _IsnotError(_ellipsoidal_, datum=datum)\n        if self._datum != datum:\n            _update_all(self)\n            self._datum = datum\n\n    def distanceTo2(self, other, wrap=False):\n        '''I{Approximate} the distance and (initial) bearing between this\n           and an other (ellipsoidal) point based on the radii of curvature.\n\n           I{Suitable only for short distances up to a few hundred Km\n           or Miles and only between points not near-polar}.\n\n           @arg other: The other point (C{LatLon}).\n           @kwarg wrap: If C{True}, wrap or I{normalize} the B{C{other}}\n                        point (C{bool}).\n\n           @return: An L{Distance2Tuple}C{(distance, initial)}.\n\n           @raise TypeError: The B{C{other}} point is not C{LatLon}.\n\n           @raise ValueError: Incompatible datum ellipsoids.\n\n           @see: Method L{Ellipsoid.distance2} and U{Local, flat earth\n                 approximation<https://www.EdWilliams.org/avform.htm#flat>}\n                 aka U{Hubeny<https://www.OVG.AT/de/vgi/files/pdf/3781/>}\n                 formula.\n        '''\n        p = self.others(other)\n        if wrap:  # PYCHOK no cover\n            p = _Wrap.point(p)\n        E = self.ellipsoids(other)\n        return E.distance2(*(self.latlon + p.latlon))\n\n    @Property_RO\n    def _elevation2(self):\n        '''(INTERNAL) Get elevation and data source.\n        '''\n        return _MODS.elevations.elevation2(self.lat, self.lon,\n                                           timeout=self._elevation2to)\n\n    def elevation2(self, adjust=True, datum=None, timeout=2):\n        '''Return elevation of this point for its or the given datum, ellipsoid\n           or sphere.\n\n           @kwarg adjust: Adjust the elevation for a B{C{datum}} other than\n                          C{NAD83} (C{bool}).\n           @kwarg datum: Optional datum overriding this point's datum (L{Datum},\n                         L{Ellipsoid}, L{Ellipsoid2}, L{a_f2Tuple} or C{scalar}\n                         radius).\n           @kwarg timeout: Optional query timeout (C{seconds}).\n\n           @return: An L{Elevation2Tuple}C{(elevation, data_source)} or\n                    C{(None, error)} in case of errors.\n\n           @note: The adjustment applied is the difference in geocentric earth\n                  radius between the B{C{datum}} and C{NAV83} upon which the\n                  L{elevations.elevation2} is based.\n\n           @note: NED elevation is only available for locations within the U{Conterminous\n                  US (CONUS)<https://WikiPedia.org/wiki/Contiguous_United_States>}.\n\n           @see: Function L{elevations.elevation2} and method C{Ellipsoid.Rgeocentric}\n                 for further details and possible C{error}s.\n        '''\n        if self._elevation2to != timeout:\n            self._elevation2to = timeout\n            LatLonEllipsoidalBase._elevation2._update(self)\n        return self._Radjust2(adjust, datum, self._elevation2)\n\n    def ellipsoid(self, datum=_WGS84):\n        '''Return the ellipsoid of this point's datum or the given datum.\n\n           @kwarg datum: Default datum (L{Datum}).\n\n           @return: The ellipsoid (L{Ellipsoid} or L{Ellipsoid2}).\n        '''\n        return _xattr(self, datum=datum).ellipsoid\n\n    @property_RO\n    def ellipsoidalLatLon(self):\n        '''Get this C{LatLon}'s ellipsoidal class.\n        '''\n        return type(self)\n\n    def ellipsoids(self, other):\n        '''Check the type and ellipsoid of this and an other point's datum.\n\n           @arg other: The other point (C{LatLon}).\n\n           @return: This point's datum ellipsoid (L{Ellipsoid} or L{Ellipsoid2}).\n\n           @raise TypeError: The B{C{other}} point is not C{LatLon}.\n\n           @raise ValueError: Incompatible datum ellipsoids.\n        '''\n        self.others(other, up=2)  # ellipsoids' caller\n\n        E = self.ellipsoid()\n        try:  # other may be Sphere, etc.\n            e = other.ellipsoid()\n        except AttributeError:\n            try:  # no ellipsoid method, try datum\n                e = other.datum.ellipsoid\n            except AttributeError:\n                e = E  # no datum, XXX assume equivalent?\n        return _xellipsoids(E, e)\n\n    @property_doc_(''' this point's observed or C{reframe} epoch (C{float}).''')\n    def epoch(self):\n        '''Get this point's observed or C{reframe} epoch (L{Epoch}) or C{None}.\n        '''\n        return self._epoch or (self.reframe.epoch if self.reframe else None)\n\n    @epoch.setter  # PYCHOK setter!\n    def epoch(self, epoch):\n        '''Set or clear this point's observed epoch, a fractional\n           calendar year (L{Epoch}, C{scalar} or C{str}) or C{None}.\n\n           @raise TRFError: Invalid B{C{epoch}}.\n        '''\n        self._epoch = None if epoch is None else Epoch(epoch)\n\n    @Property_RO\n    def Equidistant(self):\n        '''Get the prefered azimuthal equidistant projection I{class} (L{EquidistantKarney} or L{EquidistantExact}).\n        '''\n        try:\n            _ = self.datum.ellipsoid.geodesic\n            return _MODS.azimuthal.EquidistantKarney\n        except ImportError:  # no geographiclib\n            return _MODS.azimuthal.EquidistantExact  # XXX no longer L{azimuthal.Equidistant}\n\n    @Property_RO\n    def _etm(self):\n        '''(INTERNAL) Get this C{LatLon} point as an ETM coordinate (L{pygeodesy.toEtm8}).\n        '''\n        return self._toX8(_MODS.etm.toEtm8)\n\n    @property_RO\n    def gamma(self):\n        '''Get this point's UTM or UPS meridian convergence (C{degrees}) or\n           C{None} if not available or not converted from L{Utm} or L{Ups}.\n        '''\n        return self._gamma\n\n    @Property_RO\n    def _geoidHeight2(self):\n        '''(INTERNAL) Get geoid height and model.\n        '''\n        return _MODS.elevations.geoidHeight2(self.lat, self.lon, model=0,\n                                             timeout=self._geoidHeight2to)\n\n    def geoidHeight2(self, adjust=False, datum=None, timeout=2):\n        '''Return geoid height of this point for its or the given datum, ellipsoid\n           or sphere.\n\n           @kwarg adjust: Adjust the geoid height for a B{C{datum}} other than\n                          C{NAD83/NADV88} (C{bool}).\n           @kwarg datum: Optional datum overriding this point's datum (L{Datum},\n                         L{Ellipsoid}, L{Ellipsoid2}, L{a_f2Tuple} or C{scalar}\n                         radius).\n           @kwarg timeout: Optional query timeout (C{seconds}).\n\n           @return: A L{GeoidHeight2Tuple}C{(height, model_name)} or\n                    C{(None, error)} in case of errors.\n\n           @note: The adjustment applied is the difference in geocentric earth\n                  radius between the B{C{datum}} and C{NAV83/NADV88} upon which\n                  the L{elevations.geoidHeight2} is based.\n\n           @note: The geoid height is only available for locations within the U{Conterminous\n                  US (CONUS)<https://WikiPedia.org/wiki/Contiguous_United_States>}.\n\n           @see: Function L{elevations.geoidHeight2} and method C{Ellipsoid.Rgeocentric}\n                 for further details and possible C{error}s.\n        '''\n        if self._geoidHeight2to != timeout:\n            self._geoidHeight2to = timeout\n            LatLonEllipsoidalBase._geoidHeight2._update(self)\n        return self._Radjust2(adjust, datum, self._geoidHeight2)\n\n    def intermediateTo(self, other, fraction, height=None, wrap=False):  # PYCHOK no cover\n        '''I{Must be overloaded}.'''\n        self._notOverloaded(other, fraction, height=height, wrap=wrap)\n\n    def intersection3(self, end1, start2, end2, height=None, wrap=False,  # was=True\n                                          equidistant=None, tol=_TOL_M):\n        '''I{Iteratively} compute the intersection point of two geodesic lines, each\n           given as two points or as a start point and a bearing from North.\n\n           @arg end1: End point of this line (C{LatLon}) or the initial bearing at\n                      this point (compass C{degrees360}).\n           @arg start2: Start point of the second line (this C{LatLon}).\n           @arg end2: End point of the second line (this C{LatLon}) or the initial\n                      bearing at B{C{start2}} (compass C{degrees360}).\n           @kwarg height: Optional height at the intersection (C{meter}, conventionally)\n                          or C{None} for the mean height.\n           @kwarg wrap: If C{True}, wrap or I{normalize} and unroll B{C{start2}} and\n                        both B{C{end*}} points (C{bool}).\n           @kwarg equidistant: An azimuthal equidistant projection (I{class} or function\n                               L{pygeodesy.equidistant}), or C{None} for this point's\n                               preferred C{.Equidistant}.\n           @kwarg tol: Tolerance for convergence and skew line distance and length\n                       (C{meter}, conventionally).\n\n           @return: An L{Intersection3Tuple}C{(point, outside1, outside2)} with C{point}\n                    a C{LatLon} instance.\n\n           @raise ImportError: Package U{geographiclib\n                               <https://PyPI.org/project/geographiclib>}\n                               not installed or not found, but only if\n                               C{B{equidistant}=}L{EquidistantKarney}.\n\n           @raise IntersectionError: Skew, colinear, parallel or otherwise non-intersecting\n                                     lines or no convergence for the given B{C{tol}}.\n\n           @raise TypeError: Invalid B{C{end1}}, B{C{start2}} or B{C{end2}}.\n\n           @note: For each line specified with an initial bearing, a pseudo-end point is\n                  computed as the C{destination} along that bearing at about 1.5 times the\n                  distance from the start point to an initial gu-/estimate of the intersection\n                  point (and between 1/8 and 3/8 of the C{authalic} earth perimeter).\n\n           @see: I{Karney's} U{intersect.cpp<https://SourceForge.net/p/geographiclib/\n                 discussion/1026621/thread/21aaff9f/>}, U{The B{ellipsoidal} case<https://\n                 GIS.StackExchange.com/questions/48937/calculating-intersection-of-two-circles>}\n                 and U{Karney's paper<https://ArXiv.org/pdf/1102.1215.pdf>}, pp 20-21, section\n                 B{14. MARITIME BOUNDARIES} for more details about the iteration algorithm.\n        '''\n        try:\n            s2 = self.others(start2=start2)\n            return _MODS.ellipsoidalBaseDI._intersect3(self, end1,\n                                                       s2,   end2,\n                                                       height=height, wrap=wrap,\n                                                       equidistant=equidistant, tol=tol,\n                                                       LatLon=self.classof, datum=self.datum)\n        except (TypeError, ValueError) as x:\n            raise _xError(x, start1=self, end1=end1, start2=start2, end2=end2,\n                                          height=height, wrap=wrap, tol=tol)\n\n    def intersections2(self, radius1, center2, radius2, height=None, wrap=False,  # was=True\n                                                   equidistant=None, tol=_TOL_M):\n        '''I{Iteratively} compute the intersection points of two circles, each\n           defined by a center point and a radius.\n\n           @arg radius1: Radius of this circle (C{meter}, conventionally).\n           @arg center2: Center of the other circle (this C{LatLon}).\n           @arg radius2: Radius of the other circle (C{meter}, same units as\n                         B{C{radius1}}).\n           @kwarg height: Optional height for the intersection points (C{meter},\n                          conventionally) or C{None} for the I{\"radical height\"}\n                          at the I{radical line} between both centers.\n           @kwarg wrap: If C{True}, wrap or I{normalize} and unroll B{C{center2}}\n                        (C{bool}).\n           @kwarg equidistant: An azimuthal equidistant projection (I{class} or\n                               function L{pygeodesy.equidistant}) or C{None}\n                               for this point's preferred C{.Equidistant}.\n           @kwarg tol: Convergence tolerance (C{meter}, same units as\n                       B{C{radius1}} and B{C{radius2}}).\n\n           @return: 2-Tuple of the intersection points, each a C{LatLon}\n                    instance.  For abutting circles, both intersection\n                    points are the same instance, aka the I{radical center}.\n\n           @raise ImportError: Package U{geographiclib\n                               <https://PyPI.org/project/geographiclib>}\n                               not installed or not found, but only if\n                               C{B{equidistant}=}L{EquidistantKarney}.\n\n           @raise IntersectionError: Concentric, antipodal, invalid or\n                                     non-intersecting circles or no\n                                     convergence for the given B{C{tol}}.\n\n           @raise TypeError: Invalid B{C{center2}} or B{C{equidistant}}.\n\n           @raise UnitError: Invalid B{C{radius1}}, B{C{radius2}} or B{C{height}}.\n\n           @see: U{The B{ellipsoidal} case<https://GIS.StackExchange.com/questions/48937/\n                 calculating-intersection-of-two-circles>}, U{Karney's paper\n                 <https://ArXiv.org/pdf/1102.1215.pdf>}, pp 20-21, section B{14. MARITIME BOUNDARIES},\n                 U{circle-circle<https://MathWorld.Wolfram.com/Circle-CircleIntersection.html>} and\n                 U{sphere-sphere<https://MathWorld.Wolfram.com/Sphere-SphereIntersection.html>}\n                 intersections.\n        '''\n        try:\n            c2 = self.others(center2=center2)\n            return _MODS.ellipsoidalBaseDI._intersections2(self, radius1,\n                                                           c2,   radius2,\n                                                           height=height, wrap=wrap,\n                                                           equidistant=equidistant, tol=tol,\n                                                           LatLon=self.classof, datum=self.datum)\n        except (AssertionError, TypeError, ValueError) as x:\n            raise _xError(x, center=self, radius1=radius1, center2=center2, radius2=radius2,\n                                                           height=height, wrap=wrap, tol=tol)\n\n    def isenclosedBy(self, points, wrap=False):\n        '''Check whether a polygon or composite encloses this point.\n\n           @arg points: The polygon points or clips (C{LatLon}[],\n                        L{BooleanFHP} or L{BooleanGH}).\n           @kwarg wrap: If C{True}, wrap or I{normalize} and unroll the\n                        B{C{points}} (C{bool}).\n\n           @return: C{True} if this point is inside the polygon or composite,\n                    C{False} otherwise.\n\n           @raise PointsError: Insufficient number of B{C{points}}.\n\n           @raise TypeError: Some B{C{points}} are not C{LatLon}.\n\n           @raise ValueError: Invalid B{C{point}}, lat- or longitude.\n\n           @see: Functions L{pygeodesy.isconvex}, L{pygeodesy.isenclosedBy}\n                 and L{pygeodesy.ispolar} especially if the B{C{points}} may\n                 enclose a pole or wrap around the earth I{longitudinally}.\n        '''\n        return _MODS.points.isenclosedBy(self, points, wrap=wrap)\n\n    @property_RO\n    def iteration(self):\n        '''Get the most recent C{intersections2} or C{nearestOn} iteration\n           number (C{int}) or C{None} if not available/applicable.\n        '''\n        return self._iteration\n\n    def midpointTo(self, other, height=None, fraction=_0_5, wrap=False):\n        '''Find the midpoint on a geodesic between this and an other point.\n\n           @arg other: The other point (C{LatLon}).\n           @kwarg height: Optional height for midpoint, overriding the\n                          mean height (C{meter}).\n           @kwarg fraction: Midpoint location from this point (C{scalar}),\n                            may be negative or greater than 1.0.\n           @kwarg wrap: If C{True}, wrap or I{normalize} and unroll the\n                        B{C{other}} point (C{bool}).\n\n           @return: Midpoint (C{LatLon}).\n\n           @raise TypeError: The B{C{other}} point is not C{LatLon}.\n\n           @raise ValueError: Invalid B{C{height}}.\n\n           @see: Methods C{intermediateTo} and C{rhumbMidpointTo}.\n        '''\n        return self.intermediateTo(other, fraction, height=height, wrap=wrap)\n\n    def nearestOn(self, point1, point2, within=True, height=None, wrap=False,  # was=True\n                                        equidistant=None, tol=_TOL_M):\n        '''I{Iteratively} locate the closest point on the geodesic (line)\n           between two other (ellipsoidal) points.\n\n           @arg point1: Start point of the geodesic (C{LatLon}).\n           @arg point2: End point of the geodesic (C{LatLon}).\n           @kwarg within: If C{True}, return the closest point I{between} B{C{point1}} and\n                          B{C{point2}}, otherwise the closest point elsewhere on the geodesic\n                          (C{bool}).\n           @kwarg height: Optional height for the closest point (C{meter}, conventionally)\n                          or C{None} or C{False} for the interpolated height.  If C{False},\n                          the closest takes the heights of the points into account.\n           @kwarg wrap: If C{True}, wrap or I{normalize} and unroll both B{C{point1}} and\n                        B{C{point2}} (C{bool}).\n           @kwarg equidistant: An azimuthal equidistant projection (I{class} or function\n                               L{pygeodesy.equidistant}) or C{None} for this point's\n                               preferred C{Equidistant}, like L{Equidistant}.\n           @kwarg tol: Convergence tolerance (C{meter}, conventionally).\n\n           @return: Closest point (C{LatLon}).\n\n           @raise ImportError: Package U{geographiclib\n                               <https://PyPI.org/project/geographiclib>}\n                               not installed or not found, but only if\n                               C{B{equidistant}=}L{EquidistantKarney}.\n\n           @raise TypeError: Invalid B{C{point1}}, B{C{point2}} or B{C{equidistant}}.\n\n           @raise ValueError: Datum or ellipsoid of B{C{point1}} or B{C{point2}} is incompatible\n                              or no convergence for the given B{C{tol}}.\n\n           @see: I{Karney}'s U{intercept.cpp<https://SourceForge.net/p/geographiclib/\n                 discussion/1026621/thread/21aaff9f/>}, U{The B{ellipsoidal} case<https://\n                 GIS.StackExchange.com/questions/48937/calculating-intersection-of-two-circles>}\n                 and U{Karney's paper<https://ArXiv.org/pdf/1102.1215.pdf>}, pp 20-21, section\n                 B{14. MARITIME BOUNDARIES} for details about the iteration algorithm.\n        '''\n        try:\n            t = _MODS.ellipsoidalBaseDI._nearestOn2(self, point1, point2, within=within,\n                                                          height=height, wrap=wrap,\n                                                          equidistant=equidistant,\n                                                          tol=tol, LatLon=self.classof)\n        except (TypeError, ValueError) as x:\n            raise _xError(x, point=self, point1=point1, point2=point2, within=within,\n                                         height=height, wrap=wrap, tol=tol)\n        return t.closest\n\n    def parse(self, strllh, height=0, datum=None, epoch=None, reframe=None,\n                                        sep=_COMMA_, wrap=False, **name):\n        '''Parse a string consisting of C{\"lat, lon[, height]\"},\n           representing a similar, ellipsoidal C{LatLon} point.\n\n           @arg strllh: Lat, lon and optional height (C{str}), see function\n                        L{pygeodesy.parse3llh}.\n           @kwarg height: Optional, default height (C{meter} or C{None}).\n           @kwarg datum: Optional datum (L{Datum}), overriding this datum\n                         I{without conversion}.\n           @kwarg epoch: Optional datum (L{Epoch}), overriding this epoch\n                         I{without conversion}.\n           @kwarg reframe: Optional reference frame (L{RefFrame}), overriding\n                           this reframe I{without conversion}.\n           @kwarg sep: Optional separator (C{str}).\n           @kwarg wrap: If C{True}, wrap or I{normalize} the lat- and\n                        longitude (C{bool}).\n           @kwarg name: Optional C{B{name}=NN} (C{str}), overriding this name.\n\n           @return: The similar point (ellipsoidal C{LatLon}).\n\n           @raise ParseError: Invalid B{C{strllh}}.\n        '''\n        a, b, h = _MODS.dms.parse3llh(strllh, height=height, sep=sep, wrap=wrap)\n        return self.classof(a, b, height=h, datum=datum   or self.datum,\n                                            epoch=epoch   or self.epoch,\n                                          reframe=reframe or self.reframe, **name)\n\n    def _Radjust2(self, adjust, datum, meter_text2):\n        '''(INTERNAL) Adjust an C{elevation} or C{geoidHeight} with\n           difference in Gaussian radii of curvature of the given\n           datum and NAD83 ellipsoids at this point's latitude.\n\n           @note: This is an arbitrary, possibly incorrect adjustment.\n        '''\n        if adjust:  # Elevation2Tuple or GeoidHeight2Tuple\n            m, t = meter_text2\n            if isinstance(m, float) and fabs(m) > EPS:  # PYCHOK no cover\n                n = Datums.NAD83.ellipsoid.rocGauss(self.lat)\n                if n > EPS0:\n                    # use ratio, datum and NAD83 units may differ\n                    E = self.ellipsoid() if _isin(datum, None, self.datum) else \\\n                      _earth_ellipsoid(datum)\n                    r = E.rocGauss(self.lat)\n                    if r > EPS0 and fabs(r - n) > EPS:  # EPS1\n                        m *= r / n\n                        meter_text2 = meter_text2.classof(m, t)\n        return self._xnamed(meter_text2)\n\n    @property_doc_(''' this point's reference frame (L{RefFrame}).''')\n    def reframe(self):\n        '''Get this point's reference frame (L{RefFrame}) or C{None}.\n        '''\n        return self._reframe\n\n    @reframe.setter  # PYCHOK setter!\n    def reframe(self, reframe):\n        '''Set or clear this point's reference frame (L{RefFrame}) or C{None}.\n\n           @raise TypeError: The B{C{reframe}} is not a L{RefFrame}.\n        '''\n        _set_reframe(self, reframe)\n\n    @Property_RO\n    def scale(self):\n        '''Get this point's UTM grid or UPS point scale factor (C{float})\n           or C{None} if not converted from L{Utm} or L{Ups}.\n        '''\n        return self._scale\n\n    def _toX8(self, toX8, **kwds):\n        '''(INTERNAL) Return toX8(self, ...).\n        '''\n        return toX8(self, **_xkwds(kwds, datum=self.datum, name=self.name))\n\n    def toCartesian(self, height=None, **Cartesian_and_kwds):  # PYCHOK signature\n        '''Convert this point to cartesian, I{geocentric} coordinates,\n           also known as I{Earth-Centered, Earth-Fixed} (ECEF).\n\n           @see: Method L{toCartesian<latlonBase.LatLonBase.toCartesian>}\n                 for further details.\n        '''\n        kwds = Cartesian_and_kwds\n        if kwds:\n            kwds = _xkwds(kwds, reframe=self.reframe, epoch=self.epoch)\n        return LatLonBase.toCartesian(self, height=height, **kwds)\n\n    def toCss(self, **toCss_kwds):\n        '''Convert this C{LatLon} point to a Cassini-Soldner location.\n\n           @kwarg toCss_kwds: Optional keyword arguments for function\n                              L{pygeodesy.toCss}.\n\n           @return: The Cassini-Soldner location (L{Css}).\n        '''\n        return _MODS.css.toCss(self, **self._name1__(toCss_kwds))\n\n    def toDatum(self, datum2, height=None, **name):\n        '''Convert this point to an other datum.\n\n           @arg datum2: Datum to convert I{to} (L{Datum}).\n           @kwarg height: Optional height, overriding the\n                          converted height (C{meter}).\n           @kwarg name: Optional C{B{name}=NN} (C{str}).\n\n           @return: The converted point (this C{LatLon}) or a copy\n                    of this point if B{C{datum2}} matches this\n                    point's C{datum}.\n\n           @raise TypeError: Invalid B{C{datum2}}.\n        '''\n        n  =  self._name__(name)\n        d2 = _ellipsoidal_datum(datum2, name=n)\n        if self.datum == d2:\n            r = self.copy(name=n)\n        else:\n            kwds = _xkwds_not(None, LatLon=self.classof, name=n,\n                                    epoch=self.epoch, reframe=self.reframe)\n            c = self.toCartesian().toDatum(d2)\n            r = c.toLatLon(datum=d2, height=height, **kwds)\n        return r\n\n    def toEtm(self, **toEtm8_kwds):\n        '''Convert this C{LatLon} point to an ETM coordinate.\n\n           @kwarg toEtm8_kwds: Optional keyword arguments for\n                               function L{pygeodesy.toEtm8}.\n\n           @return: The ETM coordinate (L{Etm}).\n        '''\n        return self._etm if not toEtm8_kwds else \\\n               self._toX8(_MODS.etm.toEtm8, **toEtm8_kwds)\n\n    def toLcc(self, **toLcc_kwds):\n        '''Convert this C{LatLon} point to a Lambert location.\n\n           @kwarg toLcc_kwds: Optional keyword arguments for\n                              function L{pygeodesy.toLcc}.\n\n           @return: The Lambert location (L{Lcc}).\n        '''\n        return _MODS.lcc.toLcc(self, **self._name1__(toLcc_kwds))\n\n    def toMgrs(self, center=False, **toUtmUps_kwds):\n        '''Convert this C{LatLon} point to an MGRS coordinate.\n\n           @kwarg center: If C{True}, try to I{un}-center MGRS\n                          to its C{lowerleft} (C{bool}) or by\n                          C{B{center} meter} (C{scalar}).\n           @kwarg toUtmUps_kwds: Optional keyword arguments for\n                                 method L{toUtmUps}.\n\n           @return: The MGRS coordinate (L{Mgrs}).\n\n           @see: Methods L{toUtmUps} and L{toMgrs<pygeodesy.utmupsBase.UtmUpsBase.toMgrs>}.\n        '''\n        return self.toUtmUps(center=center, **toUtmUps_kwds).toMgrs(center=False)\n\n    def toOsgr(self, kTM=False, **toOsgr_kwds):\n        '''Convert this C{LatLon} point to an OSGR coordinate.\n\n           @kwarg kTM: If C{True}, use I{Karney}'s Krüger method from module\n                       L{ktm}, otherwise I{Ordinance Survery}'s recommended\n                       formulation (C{bool}).\n           @kwarg toOsgr_kwds: Optional keyword arguments for function\n                               L{pygeodesy.toOsgr}.\n\n           @return: The OSGR coordinate (L{Osgr}).\n        '''\n        return _MODS.osgr.toOsgr(self, kTM=kTM, **self._name1__(toOsgr_kwds))\n\n    def toRefFrame(self, reframe2, reframe=None, epoch=None, epoch2=None, height=None, **name):\n        '''Convert this point to an other reference frame and epoch.\n\n           @arg reframe2: Reference frame to convert I{to} (L{RefFrame}).\n           @kwarg reframe: Optional reference frame to convert I{from} (L{RefFrame}),\n                           overriding this point's reference frame.\n           @kwarg epoch: Optional epoch (L{Epoch}, C{scalar} or C{str}), overriding\n                         this point's C{epoch or B{reframe}.epoch}.\n           @kwarg epoch2: Optional epoch to observe for the converted point (L{Epoch},\n                          C{scalar} or C{str}), otherwise B{C{epoch}}.\n           @kwarg height: Optional height, overriding the converted height (C{meter}).\n           @kwarg name: Optional C{B{name}=NN} (C{str}), overriding C{B{reframe2}.name}.\n\n           @return: The converted point (ellipsoidal C{LatLon}) or if conversion\n                    C{isunity}, this point or a copy of this point if the B{C{name}}\n                    is non-empty.\n\n           @raise TRFError: This point's C{reframe} is not defined, invalid B{C{epoch}}\n                            or B{C{epoch2}} or conversion from this point's C{reframe}\n                            to B{C{reframe2}} is not available.\n\n           @raise TypeError: B{C{reframe2}} or B{C{reframe}} not a L{RefFrame}.\n        '''\n        return _MODS.trf._toRefFrame(self, reframe2, reframe=reframe, epoch=epoch,\n                                           epoch2=epoch2, height=height, **name)\n\n    def toTransform(self, transform, inverse=False, datum=None, **LatLon_kwds):\n        '''Apply a Helmert transform to this geodetic point.\n\n           @arg transform: Transform to apply (L{Transform} or L{TransformXform}).\n           @kwarg inverse: Apply the inverse of the Helmert transform (C{bool}).\n           @kwarg datum: Datum for the transformed point (L{Datum}), overriding\n                         this point's datum but I{not} taken it into account.\n           @kwarg LatLon_kwds: Optional keyword arguments for the transformed\n                               point, like C{B{height}=...}.\n\n           @return: A transformed point (C{LatLon}) or a copy of this point if\n                    C{B{transform}.isunity}.\n\n           @raise TypeError: Invalid B{C{transform}}.\n        '''\n        _xinstanceof(Transform, transform=transform)\n        d = datum or self.datum\n        if transform.isunity:\n            r = self.dup(datum=d, **LatLon_kwds)\n        else:\n            c = self.toCartesian()\n            c = c.toTransform(transform, inverse=inverse, datum=d)\n            r = c.toLatLon(LatLon=self.classof, **_xkwds(LatLon_kwds, height=self.height))\n        return r\n\n    def toUps(self, center=False, **toUps8_kwds):\n        '''Convert this C{LatLon} point to a UPS coordinate.\n\n           @kwarg center: If C{True}, I{un}-center the UPS to its\n                          C{lowerleft} (C{bool}) or by C{B{center}\n                          meter} (C{scalar}).\n           @kwarg toUps8_kwds: Optional keyword arguments for\n                               function L{pygeodesy.toUps8}.\n\n           @return: The UPS coordinate (L{Ups}).\n        '''\n        u = self._ups if (not toUps8_kwds) and self._upsOK() else \\\n            self._toX8(_MODS.ups.toUps8, **toUps8_kwds)\n        return _lowerleft(u, center)\n\n    def toUtm(self, center=False, **toUtm8_kwds):\n        '''Convert this C{LatLon} point to a UTM coordinate.\n\n           @kwarg center: If C{True}, I{un}-center the UTM to its\n                          C{lowerleft} (C{bool}) or by C{B{center}\n                          meter} (C{scalar}).\n           @kwarg toUtm8_kwds: Optional keyword arguments for function\n                               L{pygeodesy.toUtm8}.\n\n           @return: The UTM coordinate (L{Utm}).\n\n           @note: For the highest accuracy, use method L{toEtm} and\n                  class L{pygeodesy.Etm} instead of L{pygeodesy.Utm}.\n        '''\n        u = self._utm if not toUtm8_kwds else \\\n            self._toX8(_MODS.utm.toUtm8, **toUtm8_kwds)\n        return _lowerleft(u, center)\n\n    def toUtmUps(self, pole=NN, center=False, **toUtmUps8_kwds):\n        '''Convert this C{LatLon} point to a UTM or UPS coordinate.\n\n           @kwarg pole: Optional top/center of UPS (stereographic)\n                        projection (C{str}, 'N[orth]' or 'S[outh]').\n           @kwarg center: If C{True}, I{un}-center the UTM or UPS to\n                          its C{lowerleft} (C{bool}) or by C{B{center}\n                          meter} (C{scalar}).\n           @kwarg toUtmUps8_kwds: Optional keyword arguments for\n                                  function L{pygeodesy.toUtmUps8}.\n\n           @return: The UTM or UPS coordinate (L{Utm} or L{Ups}).\n        '''\n        x = not toUtmUps8_kwds\n        if x and self._utmOK():\n            u = self._utm\n        elif x and self._upsOK(pole):\n            u = self._ups\n        else:  # no cover\n            utmups = _MODS.utmups\n            u = self._toX8(utmups.toUtmUps8, pole=pole, **toUtmUps8_kwds)\n            if isinstance(u, utmups.Utm):\n                self._update(False, _utm=u)  # PYCHOK kwds\n            elif isinstance(u, utmups.Ups):\n                self._update(False, _ups=u)  # PYCHOK kwds\n            else:\n                _xinstanceof(utmups.Utm, utmups.Ups, toUtmUps8=u)\n        return _lowerleft(u, center)\n\n    @deprecated_method\n    def to3xyz(self):  # PYCHOK no cover\n        '''DEPRECATED, use method C{toEcef}.\n\n           @return: A L{Vector3Tuple}C{(x, y, z)}.\n\n           @note: Overloads C{LatLonBase.to3xyz}\n        '''\n        r = self.toEcef()\n        return _MODS.namedTuples.Vector3Tuple(r.x, r.y, r.z, name=self.name)\n\n    def triangulate(self, bearing1, other, bearing2, **height_wrap_tol):\n        '''I{Iteratively} locate a point given this, an other point and a bearing\n           from North at each point.\n\n           @arg bearing1: Bearing at this point (compass C{degrees360}).\n           @arg other: The other point (C{LatLon}).\n           @arg bearing2: Bearing at the B{C{other}} point (compass C{degrees360}).\n           @kwarg height_wrap_tol: Optional keyword arguments C{B{height}=None},\n                         C{B{wrap}=False} and C{B{tol}}, see method L{intersection3}.\n\n           @return: Triangulated point (C{LatLon}).\n\n           @see: Method L{intersection3} for further details.\n        '''\n        if _isDegrees(bearing1) and _isDegrees(bearing2):\n            r = self.intersection3(bearing1, other, bearing2, **height_wrap_tol)\n            return r.point\n        raise _TypeError(bearing1=bearing1, bearing2=bearing2 **height_wrap_tol)\n\n    def trilaterate5(self, distance1, point2, distance2, point3, distance3,\n                           area=True, eps=EPS1, wrap=False):\n        '''Trilaterate three points by I{area overlap} or I{perimeter intersection}\n           of three intersecting circles.\n\n           @arg distance1: Distance to this point (C{meter}), same units as B{C{eps}}).\n           @arg point2: Second center point (C{LatLon}).\n           @arg distance2: Distance to point2 (C{meter}, same units as B{C{eps}}).\n           @arg point3: Third center point (C{LatLon}).\n           @arg distance3: Distance to point3 (C{meter}, same units as B{C{eps}}).\n           @kwarg area: If C{True}, compute the area overlap, otherwise the perimeter\n                        intersection of the circles (C{bool}).\n           @kwarg eps: The required I{minimal overlap} for C{B{area}=True} or the\n                       I{intersection margin} for C{B{area}=False} (C{meter},\n                       conventionally).\n           @kwarg wrap: If C{True}, wrap or I{normalize} and unroll B{C{point2}}\n                        and B{C{point3}} (C{bool}).\n\n           @return: A L{Trilaterate5Tuple}C{(min, minPoint, max, maxPoint, n)} with\n                    C{min} and C{max} in C{meter}, same units as B{C{eps}}, the\n                    corresponding trilaterated points C{minPoint} and C{maxPoint}\n                    as I{ellipsoidal} C{LatLon} and C{n}, the number of trilatered\n                    points found for the given B{C{eps}}.\n\n                    If only a single trilaterated point is found, C{min I{is} max},\n                    C{minPoint I{is} maxPoint} and C{n=1}.\n\n                    If C{B{area}=False}, C{min} and C{max} represent the nearest\n                    respectively farthest intersection margin.\n\n                    If C{B{area}=True}, C{min} and C{max} are the smallest respectively\n                    largest I{radial} overlap found.\n\n                    If C{B{area}=True} and all 3 circles are concentric, C{n=0} and\n                    C{minPoint} and C{maxPoint} are the B{C{point#}} with the smallest\n                    B{C{distance#}} C{min} respectively largest B{C{distance#}} C{max}.\n\n           @raise IntersectionError: Trilateration failed for the given B{C{eps}},\n                                     insufficient overlap for C{B{area}=True}, no\n                                     circle intersections for C{B{area}=False} or\n                                     all circles are (near-)concentric.\n\n           @raise TypeError: Invalid B{C{point2}} or B{C{point3}}.\n\n           @raise ValueError: Coincident B{C{points}} or invalid B{C{distance1}},\n                              B{C{distance2}} or B{C{distance3}}.\n\n           @note: Ellipsoidal trilateration invokes methods C{LatLon.intersections2}\n                  and C{LatLon.nearestOn} based on I{Karney}'s Python U{geographiclib\n                  <https://PyPI.org/project/geographiclib>} if installed, otherwise\n                  the accurate (but slower) C{ellipsoidalExact.LatLon} methods.\n        '''\n        return _trilaterate5(self,                       distance1,\n                             self.others(point2=point2), distance2,\n                             self.others(point3=point3), distance3,\n                             area=area, eps=eps, wrap=wrap)\n\n    @Property_RO\n    def _ups(self):  # __dict__ value overwritten by method C{toUtmUps}\n        '''(INTERNAL) Get this C{LatLon} point as UPS coordinate (L{Ups}),\n           see L{pygeodesy.toUps8}.\n        '''\n        return self._toX8(_MODS.ups.toUps8)  # pole=NN, falsed=True\n\n    def _upsOK(self, pole=NN, falsed=True, **unused):\n        '''(INTERNAL) Check matching C{Ups}.\n        '''\n        try:\n            u = self._ups\n        except RangeError:\n            return False\n        return falsed and (u.pole == pole[:1].upper() or not pole)\n\n    @Property_RO\n    def _utm(self):  # __dict__ value overwritten by method C{toUtmUps}\n        '''(INTERNAL) Get this C{LatLon} point as UTM coordinate (L{Utm}),\n           see L{pygeodesy.toUtm8}.\n        '''\n        return self._toX8(_MODS.utm.toUtm8)\n\n    def _utmOK(self):\n        '''(INTERNAL) Check C{Utm}.\n        '''\n        try:\n            _ = self._utm\n        except RangeError:\n            return False\n        return True\n\n\ndef _lowerleft(utmups, center):\n    '''(INTERNAL) Optionally I{un}-center C{utmups}.\n    '''\n    if _isin(center, False, 0, _0_0):\n        u = utmups\n    elif _isin(center, True):\n        u = utmups._lowerleft\n    else:\n        u = _MODS.utmupsBase._lowerleft(utmups, center)\n    return u\n\n\ndef _nearestOn(point, point1, point2, within=True, height=None, wrap=False,  # was=True\n                      equidistant=None, tol=_TOL_M, **LatLon_and_kwds):\n    '''(INTERNAL) Get closest point, imported by .ellipsoidalExact,\n       -GeodSolve, -Karney and -Vincenty to embellish exceptions.\n    '''\n    try:\n        p = _xellipsoidal(point=point)\n        t = _MODS.ellipsoidalBaseDI._nearestOn2(p, point1, point2, within=within,\n                                                   height=height, wrap=wrap,\n                                                   equidistant=equidistant,\n                                                   tol=tol, **LatLon_and_kwds)\n    except (TypeError, ValueError) as x:\n        raise _xError(x, point=point, point1=point1, point2=point2)\n    return t.closest\n\n\ndef _set_reframe(inst, reframe):\n    '''(INTERNAL) Set or clear an instance's reference frame.\n    '''\n    if reframe is not None:\n        _xinstanceof(_MODS.trf.RefFrame, reframe=reframe)\n        inst._reframe = reframe\n    elif inst.reframe is not None:\n        inst._reframe = None\n\n\n__all__ += _ALL_DOCS(CartesianEllipsoidalBase, LatLonEllipsoidalBase)\n\n# **) MIT License\n#\n# Copyright (C) 2016-2026 -- mrJean1 at Gmail -- All Rights Reserved.\n#\n# Permission is hereby granted, free of charge, to any person obtaining a\n# copy of this software and associated documentation files (the \"Software\"),\n# to deal in the Software without restriction, including without limitation\n# the rights to use, copy, modify, merge, publish, distribute, sublicense,\n# and/or sell copies of the Software, and to permit persons to whom the\n# Software is furnished to do so, subject to the following conditions:\n#\n# The above copyright notice and this permission notice shall be included\n# in all copies or substantial portions of the Software.\n#\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL\n# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR\n# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\n# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n# OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "pygeodesy/ellipsoidalBaseDI.py",
    "content": "\n# -*- coding: utf-8 -*-\n\nu'''(INTERNAL) Private, ellipsoidal Direct/Inverse geodesy base\nclass C{LatLonEllipsoidalBaseDI} and functions.\n'''\n# make sure int/int division yields float quotient, see .basics\nfrom __future__ import division as _; del _  # noqa: E702 ;\n\n# from pygeodesy.azimuthal import _Equidistants  # _MODS\nfrom pygeodesy.basics import isLatLon, _xsubclassof,  typename\nfrom pygeodesy.constants import EPS, MAX, PI, PI2, PI_4, isnear0, isnear1, \\\n                               _EPSqrt as _TOL, _0_0, _0_01, _1_0, _1_5, _3_0\n# from pygeodesy.dms import F_DMS  # _MODS\nfrom pygeodesy.ellipsoidalBase import LatLonEllipsoidalBase, _TOL_M,  property_RO\nfrom pygeodesy.errors import _AssertionError, IntersectionError, _IsnotError, _or, \\\n                             _ValueError, _xellipsoidal, _xError, _xkwds_not\nfrom pygeodesy.fmath import favg, fmean_\nfrom pygeodesy.fsums import Fmt, fsumf_\nfrom pygeodesy.formy import _isequalTo, opposing, _radical2\n# from pygeodesy.geodesicw import _Intersecant2, _PlumbTo  # _MODS\n# from pygeodesy.internals import typename  # from .basics\nfrom pygeodesy.interns import _antipodal_, _concentric_, _ellipsoidal_, _low_, \\\n                              _exceed_PI_radians_, _near_, _SPACE_, _too_\nfrom pygeodesy.lazily import _ALL_DOCS, _ALL_LAZY, _ALL_MODS as _MODS\nfrom pygeodesy.namedTuples import Bearing2Tuple, Destination2Tuple, Intersection3Tuple, \\\n                                  NearestOn2Tuple, NearestOn8Tuple, _LL4Tuple\n# from pygeodesy.props import property_RO  # from .ellipsoidalBase\n# from pygeodesy.sphericalNvector import _intersects2  # _MODS\n# from pygeodesy.sphericalTrigonometry import _intersect, LatLon  # _MODS\n# from pygeodesy.streprs import Fmt  # from .fsums\nfrom pygeodesy.units import _fi_j2, _isDegrees, _isHeight, _isRadius, Radius_, Scalar\nfrom pygeodesy.utily import m2km, unroll180, _unrollon, _unrollon3, _Wrap, wrap360\n# from pygeodesy.vector3d import _intersects2, _intersect3d3, _nearestOn2, Vector3d  # _MODS\n\nfrom math import degrees, radians\n\n__all__ = _ALL_LAZY.ellipsoidalBaseDI\n__version__ = '25.05.23'\n\n_polar__ = 'polar?'\n_TRIPS   =  33   # _intersect3, _intersects2, _nearestOn interations, 6..9 sufficient?\n\n\nclass LatLonEllipsoidalBaseDI(LatLonEllipsoidalBase):\n    '''(INTERNAL) Base class for C{ellipsoidal*.LatLon} classes\n       with I{overloaded} C{Direct} and C{Inverse} methods.\n    '''\n\n    def bearingTo2(self, other, wrap=False):\n        '''Compute the initial and final bearing (forward and reverse\n           azimuth) from this to an other point, using this C{Inverse}\n           method.  See methods L{initialBearingTo} and L{finalBearingTo}\n           for more details.\n\n           @arg other: The other point (this C{LatLon}).\n           @kwarg wrap: If C{True}, wrap or I{normalize} and unroll the\n                        B{C{other}} point (C{bool}).\n\n           @return: A L{Bearing2Tuple}C{(initial, final)}.\n\n           @raise TypeError: If B{C{other}} not this C{LatLon} class.\n\n           @raise ValueError: If this and the B{C{other}} point's L{Datum}\n                              ellipsoids are not compatible.\n        '''\n        r = self._Inverse(other, wrap)\n        return Bearing2Tuple(r.initial, r.final, name=self.name)\n\n    def destination(self, distance, bearing, height=None):\n        '''Compute the destination point after having travelled for\n           the given distance from this point along a geodesic given\n           by an initial bearing.  See method L{destination2} for\n           further details.\n\n           @return: The destination point (C{LatLon}).\n        '''\n        return self._Direct(distance, bearing, self.classof, height).destination\n\n    def destination2(self, distance, bearing, height=None):\n        '''Compute the destination point and the final bearing (reverse\n           azimuth) after having travelled for the given distance from\n           this point along a geodesic (line) given by an initial bearing\n           at this point.\n\n           The distance must be in the same units as this point's datum's\n           ellipsoid's axes, conventionally C{meter}.  The distance is\n           measured on the surface of the ellipsoid, ignoring this point's\n           height.\n\n           The initial and final bearing (forward and reverse azimuth)\n           are in compass C{degrees360}, clockwise from North.\n\n           The destination point's height and datum are set to this\n           point's height and datum, unless the former is overridden.\n\n           @arg distance: Distance (C{meter}).\n           @arg bearing: Initial bearing (compass C{degrees360}).\n           @kwarg height: Optional height, overriding the default\n                          height (C{meter}, same units as C{distance}).\n\n           @return: A L{Destination2Tuple}C{(destination, final)}.\n        '''\n        return self._Direct(distance, bearing, self.classof, height)\n\n    def _Direct(self, distance, bearing, LL, height):  # overloaded by I{Vincenty}\n        '''(INTERNAL) I{Karney}'s C{Direct} method.\n\n           @return: A L{Destination2Tuple}C{(destination, final)} or a\n                    L{Destination3Tuple}C{(lat, lon, final)} if C{B{LL} is None}.\n        '''\n        g = self.geodesic\n        r = g.Direct3(self.lat, self.lon, bearing, distance)\n        if LL:\n            r = self._Direct2Tuple(LL, height, r)\n        return r\n\n    def _Direct2Tuple(self, LL, height, r):  # in .ellipsoidalVincenty.py\n        '''(INTERNAL) Helper for C{._Direct} result L{Destination2Tuple}.\n        '''\n        h =  self._heigHt(height)\n        n =  self.name\n        d = _xkwds_not(None, datum=self.datum, height=h, name=n,\n                             epoch=self.epoch, reframe=self.reframe)\n        d = LL(*_Wrap.latlon(r.lat, r.lon), **d)\n        return Destination2Tuple(d, wrap360(r.final), name=n)\n\n    def distanceTo(self, other, wrap=False, **unused):  # radius=R_M\n        '''Compute the distance between this and an other point along\n           a geodesic. See method L{distanceTo3} for more details.\n\n           @arg other: The other point (this C{LatLon}).\n           @kwarg wrap: If C{True}, wrap or I{normalize} and unroll the\n                        B{C{other}} point (C{bool}).\n\n           @return: Distance (C{meter}).\n\n           @raise TypeError: If B{C{other}} not this C{LatLon} class.\n\n           @raise ValueError: This and the B{C{other}} point's L{Datum}\n                              ellipsoids are incompatible.\n        '''\n        return self._Inverse(other, wrap, azis=False).distance\n\n    def distanceTo3(self, other, wrap=False):\n        '''Compute the distance, the initial and final bearing along\n           a geodesic between this and an other point, using this\n           C{Inverse} method.\n\n           The distance is in the same units as this point's datum's\n           ellipsoid's axes, conventionally meter.  The distance is\n           measured on the surface of the ellipsoid, ignoring this\n           point's height.\n\n           The initial and final bearing (forward and reverse azimuth)\n           are in compass C{degrees360}, clockwise from North.\n\n           @arg other: Destination point (C{LatLon}).\n           @kwarg wrap: If C{True}, wrap or I{normalize} and unroll the\n                        B{C{other}} point (C{bool}).\n\n           @return: A L{Distance3Tuple}C{(distance, initial, final)}.\n\n           @raise TypeError: If B{C{other}} not this C{LatLon} class.\n\n           @raise ValueError: This and the B{C{other}} point's L{Datum}\n                              ellipsoids are not compatible.\n        '''\n        return self._xnamed(self._Inverse(other, wrap))\n\n    def finalBearingOn(self, distance, bearing):\n        '''Compute the final bearing (reverse azimuth) after having\n           travelled for the given distance along a geodesic given\n           by an initial bearing from this point.  See method\n           L{destination2} for more details.\n\n           @arg distance: Distance (C{meter}).\n           @arg bearing: Initial bearing (compass C{degrees360}).\n\n           @return: Final bearing (compass C{degrees360}).\n        '''\n        return self._Direct(distance, bearing, None, None).final\n\n    def finalBearingTo(self, other, wrap=False):\n        '''Compute the final bearing (reverse azimuth) after having\n           travelled along a geodesic from this point to an other\n           point.  See method L{distanceTo3} for more details.\n\n           @arg other: The other point (C{LatLon}).\n           @kwarg wrap: If C{True}, wrap or I{normalize} and unroll\n                        the B{C{other}} point (C{bool}).\n\n           @return: Final bearing (compass C{degrees360}).\n\n           @raise TypeError: If B{C{other}} not this C{LatLon} class.\n\n           @raise ValueError: This and the B{C{other}} point's L{Datum}\n                              ellipsoids are incompatible.\n        '''\n        return self._Inverse(other, wrap).final\n\n    @property_RO\n    def geodesic(self):  # overloaded by I{Karney}'s, N/A for I{Vincenty}\n        '''N/A, invalid (C{None} I{always}).\n        '''\n        return None  # PYCHOK no cover\n\n    def _g_gl_p3(self, start, end, exact, wrap):\n        '''(INTERNAL) Helper for methods C{.intersecant2} and C{.plumbTo}.\n        '''\n        p  = _unrollon(self, self.others(start=start), wrap=wrap)\n        g  =  self.datum.ellipsoid.geodesic_(exact=exact)\n        gl =  g._DirectLine( p, end) if _isDegrees(end) else \\\n              g._InverseLine(p, self.others(end=end), wrap)\n        return g, gl, p\n\n    def initialBearingTo(self, other, wrap=False):\n        '''Compute the initial bearing (forward azimuth) to travel\n           along a geodesic from this point to an other point.  See\n           method L{distanceTo3} for more details.\n\n           @arg other: The other point (this C{LatLon}).\n           @kwarg wrap: If C{True}, wrap or I{normalize} and unroll\n                        the B{C{other}} point (C{bool}).\n\n           @return: Initial bearing (compass C{degrees360}).\n\n           @raise TypeError: If B{C{other}} not this C{LatLon} class.\n\n           @raise ValueError: If this and the B{C{other}} point's L{Datum}\n                              ellipsoids are incompatible.\n        '''\n        return self._Inverse(other, wrap).initial\n\n    def intermediateTo(self, other, fraction, height=None, wrap=False):\n        '''Return the point at given fraction along the geodesic between\n           this and an other point.\n\n           @arg other: The other point (this C{LatLon}).\n           @arg fraction: Fraction between both points (C{scalar}, 0.0\n                          at this and 1.0 at the other point.\n           @kwarg height: Optional height, overriding the fractional\n                          height (C{meter}).\n           @kwarg wrap: If C{True}, wrap or I{normalize} and unroll the\n                        B{C{other}} point (C{bool}).\n\n           @return: Intermediate point (C{LatLon}).\n\n           @raise TypeError: If B{C{other}} not this C{LatLon} class.\n\n           @raise UnitError: Invalid B{C{fraction}} or B{C{height}}.\n\n           @raise ValueError: This and the B{C{other}} point's L{Datum}\n                              ellipsoids are incompatible.\n\n           @see: Methods L{distanceTo3}, L{destination}, C{midpointTo} and\n                 C{rhumbMidpointTo}.\n        '''\n        f = Scalar(fraction=fraction)\n        if isnear0(f):\n            r = self\n        elif isnear1(f) and not wrap:\n            r = self.others(other)\n        else:  # negative fraction OK\n            t = self.distanceTo3(other, wrap=wrap)\n            h = self._havg(other, f=f, h=height)\n            r = self.destination(t.distance * f, t.initial, height=h)\n        return r\n\n    def intersecant2(self, circle, start, end, exact=False, height=None,  # PYCHOK signature\n                                               wrap=False, tol=_TOL):\n        '''Compute the intersections of a circle and a geodesic (line) given as two\n           points or as a point and a bearing from North.\n\n           @arg circle: Radius of the circle centered at this location (C{meter},\n                        conventionally) or a point on the circle (this C{LatLon}).\n           @arg start: Start point of the geodesic (line) (this C{LatLon}).\n           @arg end: End point of the geodesic (line) (this C{LatLon}) or the initial\n                     bearing at the B{C{start}} point (compass C{degrees360}).\n           @kwarg exact: Exact C{geodesic...} to use (C{bool} or C{Geodesic...}), see\n                         method L{geodesic_<Ellipsoid.geodesic_>}.\n           @kwarg height: Optional height for the intersection points (C{meter},\n                          conventionally) or C{None} for interpolated heights.\n           @kwarg wrap: If C{True}, wrap or I{normalize} and unroll the B{C{circle}},\n                        B{C{start}} and/or B{C{end}} (C{bool}).\n           @kwarg tol: Convergence tolerance (C{scalar}).\n\n           @return: 2-Tuple of the intersection points (representing a geodesic chord),\n                    each an instance of this C{LatLon} class.  Both points are the same\n                    instance if the geodesic (line) is tangential to the circle.\n\n           @raise IntersectionError: The circle and geodesic do not intersect.\n\n           @raise TypeError: Invalid B{C{circle}}, B{C{start}} or B{C{end}}.\n\n           @raise UnitError: Invalid B{C{circle}}, B{C{end}}, B{C{exact}} or B{C{height}}.\n\n           @see: Method L{rhumbIntersecant2<LatLonBase.rhumbIntersecant2>}.\n        '''\n        try:\n            g, gl, p = self._g_gl_p3(start, end, exact, wrap)\n            r = Radius_(circle=circle) if _isRadius(circle) else \\\n                g._Inverse(self, self.others(circle=circle), wrap).s12\n\n            P, Q = _MODS.geodesicw._Intersecant2(gl, self.lat, self.lon, r, tol=tol,\n                                                               form=_MODS.dms.F_DMS)\n            return self._intersecend2(p, end, wrap, height, g, P, Q,\n                                                            self.intersecant2)\n        except (TypeError, ValueError) as x:\n            raise _xError(x, center=self, circle=circle, start=start, end=end,\n                                                         exact=exact, wrap=wrap)\n\n    def _Inverse(self, other, wrap, **unused):  # azis=False, overloaded by I{Vincenty}\n        '''(INTERNAL) I{Karney}'s C{Inverse} method.\n\n           @return: A L{Distance3Tuple}C{(distance, initial, final)}.\n        '''\n        _ = self.ellipsoids(other)\n        g = self.geodesic\n        _, lon = unroll180(self.lon, other.lon, wrap=wrap)\n        return g.Inverse3(self.lat, self.lon, other.lat, lon)\n\n    def nearestOn8(self, points, closed=False, height=None, wrap=False,\n                                               equidistant=None, tol=_TOL_M):\n        '''I{Iteratively} locate the point on a path or polygon closest\n           to this point.\n\n           @arg points: The path or polygon points (C{LatLon}[]).\n           @kwarg closed: Optionally, close the polygon (C{bool}).\n           @kwarg height: Optional height, overriding the height of this and all\n                          other points (C{meter}, conventionally).  If C{B{height}\n                          is None}, each point's height is taken into account to\n                          compute distances.\n           @kwarg wrap: If C{True}, wrap or I{normalize} and unroll the B{C{points}}\n                        (C{bool}).\n           @kwarg equidistant: An azimuthal equidistant projection (I{class} or function\n                               L{pygeodesy.equidistant}) or C{None} for the preferred\n                               L{Equidistant<pygeodesy.ellipsoidalBase.Equidistant>}.\n           @kwarg tol: Convergence tolerance (C{meter}, conventionally).\n\n           @return: A L{NearestOn8Tuple}C{(closest, distance, fi, j, start, end,\n                    initial, final)} with C{distance} in C{meter}, conventionally\n                    and with the C{closest}, the C{start} the C{end} point each\n                    an instance of this C{LatLon} class.\n\n           @raise PointsError: Insufficient number of B{C{points}}.\n\n           @raise TypeError: Some B{C{points}} or B{C{equidistant}} invalid.\n\n           @raise ValueError: Some B{C{points}}' datum or ellipsoid incompatible\n                              or no convergence for the given B{C{tol}}.\n\n           @see: Function L{pygeodesy.nearestOn6} and method C{nearestOn6}.\n        '''\n        _d3 =  self.distanceTo3  # Distance3Tuple\n        _n3 = _nearestOn3\n        try:\n            Ps =  self.PointsIter(points, loop=1, wrap=wrap)\n            p1 =  c = s = e = Ps[0]\n            _  =  self.ellipsoids(p1)\n            c3 = _d3(c, wrap=wrap)  # XXX wrap=False?\n\n        except (TypeError, ValueError) as x:\n            raise _xError(x, Fmt.INDEX(points=0), p1, this=self, tol=tol,\n                             closed=closed, height=height, wrap=wrap)\n\n        # get the azimuthal equidistant projection, once\n        A = _Equidistant00(equidistant, c)\n        b = _Box(c, c3.distance)\n        m = f = i = 0  # p1..p2 == points[i]..[j]\n\n        kwds = dict(within=True, height=height, tol=tol,\n                    LatLon=self.classof,  # this LatLon\n                    datum=self.datum, epoch=self.epoch, reframe=self.reframe)\n        try:\n            for j, p2 in Ps.enumerate(closed=closed):\n                if wrap and j != 0:  # not Ps.looped\n                    p2 = _unrollon(p1, p2)\n                # skip edge if no overlap with box around closest\n                if j < 4 or b.overlaps(p1.lat, p1.lon, p2.lat, p2.lon):\n                    p, t, _ = _n3(self, p1, p2, A, **kwds)\n                    d3 = _d3(p, wrap=False)  # already unrolled\n                    if d3.distance < c3.distance:\n                        c3, c, s, e, f = d3, p, p1, p2, (i + t)\n                        b = _Box(c, c3.distance)\n                        m =  max(m, c.iteration)\n                p1, i = p2, j\n\n        except (TypeError, ValueError) as x:\n            raise _xError(x, Fmt.INDEX(points=i), p1,\n                             Fmt.INDEX(points=j), p2, this=self, tol=tol,\n                             closed=closed, height=height, wrap=wrap)\n\n        f, j = _fi_j2(f, len(Ps))  # like .vector3d.nearestOn6\n\n        n = typename(self)\n        c.rename(n)\n        if s is not c:\n            s = s.copy(name=n)\n        if e is not c:\n            e = e.copy(name=n)  # name__=self.nearestOn8\n        return NearestOn8Tuple(c, c3.distance, f, j, s, e, c3.initial, c3.final,\n                               iteration=m)  # ._iteration for tests\n\n    def plumbTo(self, start, end, exact=False, height=None,  # PYCHOK signature\n                                  wrap=False, tol=_TOL):\n        '''Compute the intersection of a geodesic from this point I{perpendicular} to\n           a geodesic (line) given as two points or as a point and a bearing from North.\n\n           @arg start: Start point of the geodesic (line) (this C{LatLon}).\n           @arg end: End point of the geodesic (line) (this C{LatLon}) or the initial\n                     bearing at the B{C{start}} point (compass C{degrees360}).\n           @kwarg exact: Exact C{geodesic...} to use (C{bool} or C{Geodesic...}),\n                         see method L{Ellipsoid.geodesic_}.\n           @kwarg height: Optional height for the intersection point (C{meter},\n                          conventionally) or C{None} for an interpolated height.\n           @kwarg wrap: If C{True}, wrap or I{normalize} and unroll the B{C{start}}\n                        and/or B{C{end}} point (C{bool}).\n           @kwarg tol: Convergence tolerance (C{meter}).\n\n           @return: The intersection point, an instance of this C{LatLon} class.\n\n           @raise TypeError: If B{C{start}} or B{C{end}} not this C{LatLon} class.\n\n           @raise UnitError: Invalid B{C{end}}, B{C{exact}} or B{C{height}}.\n        '''\n        try:\n            g, gl, p = self._g_gl_p3(start, end, exact, wrap)\n\n            P = _MODS.geodesicw._PlumbTo(gl, self.lat, self.lon, tol=tol)\n            h =  self._havg(p, h=height)\n            p =  self.classof(P.lat2, P.lon2, datum=self.datum, height=h)  # name=n\n            p._iteration = P.iteration\n        except (TypeError, ValueError) as x:\n            raise _xError(x, plumb=self, start=start, end=end,\n                                         exact=exact, wrap=wrap)\n        return p\n\n\nclass _Box(object):\n    '''Bounding box around a C{LatLon} point.\n\n       @see: Function C{_box4} in .clipy.py.\n    '''\n    _1_01 = _1_0 + _0_01  # ~1% margin\n\n    def __init__(self, center, distance):\n        '''New L{_Box} around point.\n\n           @arg center: The center point (C{LatLon}).\n           @arg distance: Radius, half-size of the box\n                          (C{meter}, conventionally)\n        '''\n        m = Radius_(distance=distance)\n        E = center.ellipsoid()\n        d = E.m2degrees(m) * self._1_01\n        self._N = center.lat + d\n        self._S = center.lat - d\n        self._E = center.lon + d\n        self._W = center.lon - d\n\n    def overlaps(self, lat1, lon1, lat2, lon2):\n        '''Check whether this box overlaps an other box.\n\n           @arg lat1: Latitude of a box corner (C{degrees}).\n           @arg lon1: Longitude of a box corner (C{degrees}).\n           @arg lat2: Latitude of the opposing corner (C{degrees}).\n           @arg lon2: Longitude of the opposing corner (C{degrees}).\n\n           @return: C{True} if there is some overlap, C{False}\n                    otherwise (C{bool}).\n        '''\n        if lat1 > lat2:\n            lat1, lat2 = lat2, lat1\n        if lat1 > self._N or lat2 < self._S:\n            return False\n        if lon1 > lon2:\n            lon1, lon2 = lon2, lon1\n        if lon1 > self._E or lon2 < self._W:\n            return False\n        return True\n\n\nclass _Tol(object):\n    '''Handle a tolerance in C{meter} as C{degrees} and C{meter}.\n    '''\n    _deg  = 0    # tol in degrees\n    _lat  = 0\n    _m    = 0    # tol in meter\n    _min  = MAX  # degrees\n    _prev = None\n    _r    = 0\n\n    def __init__(self, tol_m, E, lat, *lats):\n        '''New L{_Tol}.\n\n           @arg tol_m: Tolerance (C{meter}, only).\n           @arg E: Earth ellipsoid (L{Ellipsoid}).\n           @arg lat: Latitude (C{degrees}).\n           @arg lats: Additional latitudes (C{degrees}).\n        '''\n        self._lat = fmean_(lat, *lats) if lats else lat\n        self._r   = max(EPS, E.rocMean(self._lat))\n        self._m   = max(EPS, tol_m)\n        self._deg = max(EPS, degrees(self._m / self._r))  # NOT E.m2degrees!\n\n    @property_RO\n    def degrees(self):\n        '''Get this tolerance in C{degrees}.\n        '''\n        return self._deg\n\n    def degrees2m(self, deg):\n        '''Convert B{C{deg}} to meter at the same C{lat} and earth radius.\n        '''\n        return self.radius * radians(deg) / PI2  # NOT E.degrees2m!\n\n    def degError(self, Error=_ValueError):\n        '''Compose an error with the C{deg}rees minimum.\n        '''\n        return self.mError(self.degrees2m(self._min), Error=Error)\n\n    def done(self, deg):\n        '''Check C{deg} vs tolerance and previous value.\n        '''\n        if deg < self._deg or deg == self._prev:\n            return True\n        self._min  = min(self._min, deg)\n        self._prev = deg\n        return False\n\n    @property_RO\n    def lat(self):\n        '''Get the mean latitude in C{degrees}.\n        '''\n        return self._lat\n\n    def mError(self, m, Error=_ValueError):\n        '''Compose an error with B{C{m}}eter minimum.\n        '''\n        t = _SPACE_(Fmt.tolerance(self.meter), _too_(_low_))\n        if m2km(m) > self.meter:\n            t = _or(t, _antipodal_, _near_(_polar__))\n        return Error(Fmt.no_convergence(m), txt=t)\n\n    @property_RO\n    def meter(self):\n        '''Get this tolerance in C{meter}.\n        '''\n        return self._m\n\n    @property_RO\n    def radius(self):\n        '''Get the earth radius in C{meter}.\n        '''\n        return self._r\n\n    def reset(self):\n        '''Reset tolerances.\n        '''\n        self._min  = MAX   # delattrof()\n        self._prev = None  # delattrof()\n\n\ndef _Equidistant00(equidistant, p1):\n    '''(INTERNAL) Get an C{Equidistant*(0, 0, ...)} instance.\n    '''\n    if equidistant is None or not callable(equidistant):\n        equidistant = p1.Equidistant\n    else:\n        _xsubclassof(*_MODS.azimuthal._Equidistants,\n                           equidistant=equidistant)\n    return equidistant(0, 0, p1.datum)\n\n\ndef intersecant2(center, circle, point, other, **exact_height_wrap_tol):\n    '''Compute the intersections of a circle and a geodesic given as two points\n       or as a point and (forward) bearing.\n\n       @arg center: Center of the circle (C{LatLon}).\n       @arg circle: Radius of the circle (C{meter}, conventionally) or a point on\n                    the circle (C{LatLon}, as B{C{center}}).\n       @arg point: A point of the geodesic (C{LatLon}, as B{C{center}}).\n       @arg other: An other point of the geodesic (C{LatLon}, as B{C{center}}) or\n                   the (forward) bearing at the B{C{point}} (compass C{degrees}).\n       @kwarg exact_height_wrap_tol: Optional keyword arguments C{B{exact}=False},\n                    C{B{height}=None}, C{B{wrap}=False} and C{B{tol}}, see method\n                    L{intersecant2<LatLonEllipsoidalBaseDI.intersecant2>}.\n\n       @raise NotImplementedError: Method C{intersecant2} not available.\n\n       @raise TypeError: If B{C{center}}, B{C{point}} or B{C{circle}} or B{C{other}}\n                         points not ellipsoidal or not compatible with B{C{center}}.\n\n       @see: Method C{LatLon.intersecant2} of class L{ellipsoidalExact.LatLon},\n             L{ellipsoidalKarney.LatLon} or L{ellipsoidalVincenty.LatLon}.\n    '''\n    if not isLatLon(center, ellipsoidal=True):  # isinstance(center, LatLonEllipsoidalBase)\n        raise _IsnotError(_ellipsoidal_, center=center)\n    return center.intersecant2(circle, point, other, **exact_height_wrap_tol)\n\n\ndef _intersect3(s1, end1, s2, end2, height=None, wrap=False,  # MCCABE 16  was=True\n                          equidistant=None, tol=_TOL_M, LatLon=None, **LatLon_kwds):\n    '''(INTERNAL) Intersect two (ellipsoidal) lines, see ellipsoidal method\n       L{intersection3}, separated to allow callers to embellish any exceptions.\n    '''\n    _LLS = _MODS.sphericalTrigonometry.LatLon\n    _si  = _MODS.sphericalTrigonometry._intersect\n    _vi3 = _MODS.vector3d._intersect3d3\n\n    def _b_d(s, e, w, t, h=_0_0):\n        # compute opposing and distance\n        t = s.classof(t.lat, t.lon, height=h, name=t.name)\n        t = s.distanceTo3(t, wrap=w)  # Distance3Tuple\n        b = opposing(e, t.initial)  # \"before\" start\n        return b, t.distance\n\n    def _b_e(s, e, w, t):\n        # compute an end point along the initial bearing about\n        # 1.5 times the distance to the gu-/estimate, at least\n        # 1/8 and at most 3/8 of the earth perimeter like the\n        # radians in .sphericalTrigonometry._int3d2 and bearing\n        # comparison in .sphericaltrigonometry._intb\n        b, d = _b_d(s, e, w, t, h=t.height)\n        m = s.ellipsoid().R2x * PI_4  # authalic exact\n        d = min(max(d * _1_5, m), m * _3_0)\n        e = s.destination(d, e)\n        return b, (_unrollon(s, e) if w else e)\n\n    def _e_ll(s, e, w, **end):\n        # return 2-tuple (end, False if bearing else True)\n        ll = not _isDegrees(e)\n        if ll:\n            e = s.others(**end)\n            if w:  # unroll180 == .karney._unroll2\n                e = _unrollon(s, e)\n        return e, ll\n\n    def _o(o, b, n, s, t, e):\n        # determine C{o}utside before, on or after start point\n        if not o:  # intersection may be on start\n            if _isequalTo(s, t, eps=e.degrees):\n                return o\n        return -n if b else n\n\n    E = s1.ellipsoids(s2)\n\n    e1, ll1 = _e_ll(s1, end1, wrap, end1=end1)\n    e2, ll2 = _e_ll(s2, end2, wrap, end2=end2)\n\n    e = _Tol(tol, E, s1.lat, (e1.lat if ll1 else s1.lat),\n                     s2.lat, (e2.lat if ll2 else s2.lat))\n\n    # get the azimuthal equidistant projection\n    A = _Equidistant00(equidistant, s1)\n\n    # gu-/estimate initial intersection, spherically ...\n    t = _si(_LLS(s1), (_LLS(e1) if ll1 else e1),\n            _LLS(s2), (_LLS(e2) if ll2 else e2),\n            height=height, wrap=False, LatLon=_LLS)  # unrolled already\n    h, n = t.height, t.name\n\n    if not ll1:\n        b1, e1 = _b_e(s1, e1, wrap, t)\n    if not ll2:\n        b2, e2 = _b_e(s2, e2, wrap, t)\n\n    # ... and iterate as Karney describes, for references\n    # @see: Function L{ellipsoidalKarney.intersection3}.\n    for i in range(1, _TRIPS):\n        A.reset(t.lat, t.lon)  # gu-/estimate as origin\n        # convert start and end points to projection\n        # space and compute an intersection there\n        v, o1, o2 = _vi3(*A._forwards(s1, e1, s2, e2),\n                          eps=e.meter, useZ=False)\n        # convert intersection back to geodetic\n        t, d = A._reverse2(v)\n        if e.done(d):  # below tol or unchanged?\n            break\n    else:\n        raise e.degError(Error=IntersectionError)\n\n    # like .sphericalTrigonometry._intersect, if this intersection\n    # is \"before\" the first point, use the antipodal intersection\n    if not (ll1 or ll2):  # end1 and end2 are an initial bearing\n        b1, _ = _b_d(s1, end1, wrap, t)\n        if b1:\n            t  = t.antipodal()\n            b1 = not b1\n        b2, _ = _b_d(s2, end2, wrap, t)\n\n    r = _LL4Tuple(t.lat, t.lon, h, t.datum, LatLon, LatLon_kwds, inst=s1,\n                                            iteration=i, name=n)\n    return Intersection3Tuple(r, (o1 if ll1 else _o(o1, b1, 1, s1, t, e)),\n                                 (o2 if ll2 else _o(o2, b2, 2, s2, t, e)))\n\n\ndef _intersection3(start1, end1, start2, end2, height=None, wrap=False,  # was=True\n                                 **equidistant_tol_LatLon_and_kwds):\n    '''(INTERNAL) Iteratively compute the intersection point of two lines,\n       each defined by two (ellipsoidal) points or an (ellipsoidal) start\n       point and an initial bearing from North.\n    '''\n    s1 = _xellipsoidal(start1=start1)\n    s2 =  s1.others(start2=start2)\n    try:\n        return _intersect3(s1, end1, s2, end2, height=height, wrap=wrap,\n                                     **equidistant_tol_LatLon_and_kwds)\n    except (TypeError, ValueError) as x:\n        raise _xError(x, start1=start1, end1=end1, start2=start2, end2=end2)\n\n\ndef _intersections2(center1, radius1, center2, radius2, height=None, wrap=False,  # was=True\n                                      **equidistant_tol_LatLon_and_kwds):\n    '''(INTERNAL) Iteratively compute the intersection points of two circles,\n       each defined by an (ellipsoidal) center point and a radius.\n    '''\n    c1 = _xellipsoidal(center1=center1)\n    c2 = c1.others(center2=center2)\n    try:\n        return _intersects2(c1, radius1, c2, radius2, height=height, wrap=wrap,\n                                         **equidistant_tol_LatLon_and_kwds)\n    except (TypeError, ValueError) as x:\n        raise _xError(x, center1=center1, radius1=radius1,\n                         center2=center2, radius2=radius2)\n\n\ndef _intersects2(c1, radius1, c2, radius2, height=None, wrap=False,  # MCCABE 16 was=True\n                              equidistant=None, tol=_TOL_M, LatLon=None, **LatLon_kwds):\n    '''(INTERNAL) Intersect two (ellipsoidal) circles, see L{_intersections2}\n       above, separated to allow callers to embellish any exceptions.\n    '''\n    _LLS = _MODS.sphericalTrigonometry.LatLon\n    _si2 = _MODS.sphericalTrigonometry._intersects2\n    _vi2 = _MODS.vector3d._intersects2\n\n    def _ll4(t, h, n, c):\n        return _LL4Tuple(t.lat, t.lon, h, t.datum, LatLon, LatLon_kwds, inst=c,\n                                                   iteration=t.iteration, name=n)\n\n    r1 = Radius_(radius1=radius1)\n    r2 = Radius_(radius2=radius2)\n\n    E = c1.ellipsoids(c2)\n    # get the azimuthal equidistant projection\n    A = _Equidistant00(equidistant, c1)\n\n    if r1 < r2:\n        c1, c2 = c2, c1\n        r1, r2 = r2, r1\n\n    if r1 > (min(E.b, E.a) * PI):\n        raise _ValueError(_exceed_PI_radians_)\n\n    if wrap:  # unroll180 == .karney._unroll2\n        c2 = _unrollon(c1, c2)\n\n    # distance between centers and radii are\n    # measured along the ellipsoid's surface\n    m = c1.distanceTo(c2, wrap=False)  # meter\n    if m < max(r1 - r2, EPS):\n        raise IntersectionError(_near_(_concentric_))  # XXX ConcentricError?\n    if fsumf_(r1, r2, -m) < 0:\n        raise IntersectionError(_too_(Fmt.distant(m)))\n\n    f = _radical2(m, r1, r2).ratio  # \"radical fraction\"\n    e = _Tol(tol, E, favg(c1.lat, c2.lat, f=f))\n\n    # gu-/estimate initial intersections, spherically ...\n    t1, t2 = _si2(_LLS(c1), r1, _LLS(c2), r2, radius=e.radius,\n                   height=height, too_d=m, wrap=False)  # unrolled already\n    h, n = t1.height, t1.name\n\n    # ... and iterate as Karney describes, for references\n    # @see: Function L{ellipsoidalKarney.intersections2}.\n    ts, ta = [], None\n    for t in ((t1,) if t1 is t2 else (t1, t2)):\n        for i in range(1, _TRIPS):\n            A.reset(t.lat, t.lon)  # gu-/estimate as origin\n            # convert centers to projection space and\n            # compute the intersections there\n            t1, t2 = A._forwards(c1, c2)\n            v1, v2 = _vi2(t1, r1,  # XXX * t1.scale?,\n                          t2, r2,  # XXX * t2.scale?,\n                          sphere=False, too_d=m)\n            # convert intersections back to geodetic\n            if v1 is v2:  # abutting\n                t,  d  = A._reverse2(v1)\n            else:  # consider the closer intersection\n                t1, d1 = A._reverse2(v1)\n                t2, d2 = A._reverse2(v2)\n                t, d = (t1, d1) if d1 < d2 else (t2, d2)\n            if e.done(d):  # below tol or unchanged?\n                t._iteration = i  # _NamedTuple._iteration\n                ts.append(t)\n                if v1 is v2:  # abutting\n                    ta = t\n                break\n        else:\n            raise e.degError(Error=IntersectionError)\n        e.reset()\n\n    if ta:  # abutting circles\n        pass  # PYCHOK no cover\n    elif len(ts) == 2:\n        return (_ll4(ts[0], h, n, c1),\n                _ll4(ts[1], h, n, c2))\n    elif len(ts) == 1:  # PYCHOK no cover\n        ta = ts[0]  # assume abutting\n    else:  # PYCHOK no cover\n        raise _AssertionError(ts=ts)\n    r = _ll4(ta, h, n, c1)\n    return r, r\n\n\ndef _nearestOn2(p, point1, point2, within=True, height=None, wrap=False,  # was=True\n                   equidistant=None, tol=_TOL_M, **LatLon_and_kwds):\n    '''(INTERNAL) Closest point and fraction, like L{_intersects2} above,\n       separated to allow callers to embellish any exceptions.\n    '''\n    p1 = p.others(point1=point1)\n    p2 = p.others(point2=point2)\n\n    _ = p.ellipsoids(p1)\n#   E = p.ellipsoids(p2)  # done in _nearestOn3\n\n    # get the azimuthal equidistant projection\n    A = _Equidistant00(equidistant, p)\n\n    p1, p2, _ = _unrollon3(p, p1, p2, wrap)  # XXX don't unroll?\n    r,  f,  _ = _nearestOn3(p, p1, p2, A, within=within, height=height,\n                                          tol=tol, **LatLon_and_kwds)\n    return NearestOn2Tuple(r, f)\n\n\ndef _nearestOn3(p, p1, p2, A, within=True, height=None, tol=_TOL_M,\n                              LatLon=None, **LatLon_kwds):\n    # Only in function C{_nearestOn2} and method C{nearestOn8} above\n    _LLS = _MODS.sphericalNvector.LatLon\n    _V3d = _MODS.vector3d.Vector3d\n    _vn2 = _MODS.vector3d._nearestOn2\n\n    E =  p.ellipsoids(p2)\n    e = _Tol(tol, E, p.lat, p1.lat, p2.lat)\n\n    # gu-/estimate initial nearestOn, spherically ... wrap=False, only!\n    # using sphericalNvector.LatLon.nearestOn for within=False support\n    t = _LLS(p).nearestOn(_LLS(p1), _LLS(p2), within=within,\n                                              height=height)\n    n, h = t.name, t.height\n    if height is None:\n        h1 = p1.height  # use heights as pseudo-Z in projection space\n        h2 = p2.height  # to be included in the closest function\n        h0 = favg(h1, h2)\n    else:  # ignore heights in distances, Z=0\n        h0 = h1 = h2 = _0_0\n\n    # ... and iterate to find the closest (to the origin with .z\n    # to interpolate height) as Karney describes, for references\n    # @see: Function L{ellipsoidalKarney.nearestOn}.\n    vp, f = _V3d(_0_0, _0_0, h0), None\n    for i in range(1, _TRIPS):\n        A.reset(t.lat, t.lon)  # gu-/estimate as origin\n        # convert points to projection space and compute\n        # the nearest one (and its height) there\n        s, t = A._forwards(p1, p2)\n        v, f = _vn2(vp, _V3d(s.x, s.y, h1),\n                        _V3d(t.x, t.y, h2), within=within)\n        # convert nearest one back to geodetic\n        t, d = A._reverse2(v)\n        if e.done(d):  # below tol or unchanged?\n            break\n    else:\n        raise e.degError()\n\n    if height is None:\n        h = v.z  # nearest\n    elif _isHeight(height):\n        h = height\n    r = _LL4Tuple(t.lat, t.lon, h, t.datum, LatLon, LatLon_kwds, inst=p,\n                                            iteration=i, name=n)\n    return r, f, e  # fraction or None\n\n\n__all__ += _ALL_DOCS(LatLonEllipsoidalBaseDI, intersecant2)\ndel _1_0, _0_01\n\n# **) MIT License\n#\n# Copyright (C) 2016-2026 -- mrJean1 at Gmail -- All Rights Reserved.\n#\n# Permission is hereby granted, free of charge, to any person obtaining a\n# copy of this software and associated documentation files (the \"Software\"),\n# to deal in the Software without restriction, including without limitation\n# the rights to use, copy, modify, merge, publish, distribute, sublicense,\n# and/or sell copies of the Software, and to permit persons to whom the\n# Software is furnished to do so, subject to the following conditions:\n#\n# The above copyright notice and this permission notice shall be included\n# in all copies or substantial portions of the Software.\n#\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL\n# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR\n# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\n# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n# OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "pygeodesy/ellipsoidalExact.py",
    "content": "\n# -*- coding: utf-8 -*-\n\nu'''Exact ellipsoidal geodesy using I{Karney}'s Exact Geodesic.\n\nEllipsoidal geodetic (lat-/longitude) L{LatLon} and geocentric\n(ECEF) L{Cartesian} classes and functions L{areaOf}, L{intersections2},\nL{isclockwise}, L{nearestOn} and L{perimeterOf} based on classes\nL{GeodesicExact}, L{GeodesicAreaExact} and L{GeodesicLineExact}.\n'''\n\n# from pygeodesy.datums import _WGS84  # from .ellipsoidalBase\nfrom pygeodesy.ellipsoidalBase import CartesianEllipsoidalBase, \\\n                                     _nearestOn,  Property_RO, _WGS84\nfrom pygeodesy.ellipsoidalBaseDI import LatLonEllipsoidalBaseDI, \\\n                                       _intersection3, _intersections2, \\\n                                       _TOL_M, intersecant2\n# from pygeodesy.errors import _xkwds  # from .karney\nfrom pygeodesy.karney import _polygon,  fabs, _xkwds\nfrom pygeodesy.lazily import _ALL_LAZY, _ALL_MODS as _MODS, _ALL_OTHER\nfrom pygeodesy.points import _areaError, ispolar  # PYCHOK exported\n# from pygeodesy.props import Property_RO  # from .ellipsoidalBase\n\n# from math import fabs  # from .karney\n\n__all__ = _ALL_LAZY.ellipsoidalExact\n__version__ = '25.08.28'\n\n\nclass Cartesian(CartesianEllipsoidalBase):\n    '''Extended to convert exact L{Cartesian} to exact L{LatLon} points.\n    '''\n\n    def toLatLon(self, **LatLon_and_kwds):  # PYCHOK LatLon=LatLon, datum=None\n        '''Convert this cartesian point to an exact geodetic point.\n\n           @kwarg LatLon_and_kwds: Optional L{LatLon} and L{LatLon} keyword\n                             arguments as C{datum}.  Use C{B{LatLon}=...,\n                             B{datum}=...} to override this L{LatLon} class\n                             or specify C{B{LatLon}=None}.\n\n           @return: The geodetic point (L{LatLon}) or if C{B{LatLon} is None},\n                    an L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n                    with C{C} and C{M} if available.\n\n           @raise TypeError: Invalid B{C{LatLon_and_kwds}} argument.\n        '''\n        kwds = _xkwds(LatLon_and_kwds, LatLon=LatLon, datum=self.datum)\n        return CartesianEllipsoidalBase.toLatLon(self, **kwds)\n\n\nclass LatLon(LatLonEllipsoidalBaseDI):\n    '''An ellipsoidal L{LatLon} like L{ellipsoidalKarney.LatLon} but using\n       exact geodesic classes L{GeodesicExact} and L{GeodesicLineExact} to\n       compute geodesic distances, bearings (azimuths), etc.\n    '''\n\n    @Property_RO\n    def Equidistant(self):\n        '''Get the prefered azimuthal equidistant projection I{class} (L{EquidistantExact}).\n        '''\n        return _MODS.azimuthal.EquidistantExact\n\n    @Property_RO\n    def geodesicx(self):\n        '''Get this C{LatLon}'s exact geodesic (L{GeodesicExact}).\n        '''\n        return self.datum.ellipsoid.geodesicx\n\n    geodesic = geodesicx  # for C{._Direct} and C{._Inverse}\n\n    def toCartesian(self, **Cartesian_datum_kwds):  # PYCHOK Cartesian=Cartesian, ...\n        '''Convert this point to exact cartesian (ECEF) coordinates.\n\n           @kwarg Cartesian_datum_kwds: Optional L{Cartesian}, B{C{datum}} and\n                            other keyword arguments, ignored if C{B{Cartesian}\n                            is None}.  Use C{B{Cartesian}=...} to override this\n                            L{Cartesian} class or set C{B{Cartesian}=None}.\n\n           @return: The cartesian (ECEF) coordinates as (L{Cartesian}) or if\n                    C{B{Cartesian} is None}, an L{Ecef9Tuple}C{(x, y, z, lat,\n                    lon, height, C, M, datum)} with C{C} and C{M} if available.\n\n           @raise TypeError: Invalid B{C{Cartesian}}, B{C{datum}} or other\n                             B{C{Cartesian_datum_kwds}}.\n        '''\n        kwds = _xkwds(Cartesian_datum_kwds, Cartesian=Cartesian, datum=self.datum)\n        return LatLonEllipsoidalBaseDI.toCartesian(self, **kwds)\n\n\ndef areaOf(points, datum=_WGS84, wrap=True, polar=False):\n    '''Compute the area of an (ellipsoidal) polygon or composite.\n\n       @arg points: The polygon points (L{LatLon}[], L{BooleanFHP} or L{BooleanGH}).\n       @kwarg datum: Optional datum (L{Datum}).\n       @kwarg wrap: If C{True}, wrap or I{normalize} and unroll the B{C{points}}\n                    (C{bool}).\n       @kwarg polar: Use C{B{polar}=True} if the polygon encloses a pole (C{bool}), see\n                     function L{ispolar<pygeodesy.points.ispolar>} and U{area of a polygon\n                     enclosing a pole<https://GeographicLib.SourceForge.io/C++/doc/\n                     classGeographicLib_1_1GeodesicExact.html#a3d7a9155e838a09a48dc14d0c3fac525>}.\n\n       @return: Area (C{meter} I{squared}, same units as the B{C{datum}}'s ellipsoid axes).\n\n       @raise PointsError: Insufficient number of B{C{points}}.\n\n       @raise TypeError: Some B{C{points}} are not L{LatLon}.\n\n       @raise ValueError: Invalid C{B{wrap}=False}, unwrapped, unrolled\n                          longitudes not supported.\n\n       @see: Functions L{pygeodesy.areaOf}, L{ellipsoidalGeodSolve.areaOf},\n             L{ellipsoidalKarney.areaOf}, L{sphericalNvector.areaOf} and\n             L{sphericalTrigonometry.areaOf}.\n    '''\n    return fabs(_polygon(datum.ellipsoid.geodesicx, points, True, False, wrap, polar))\n\n\ndef intersection3(start1, end1, start2, end2, height=None, wrap=False,  # was=True\n                                equidistant=None, tol=_TOL_M, **LatLon_and_kwds):\n    '''I{Iteratively} compute the intersection point of two geodesic lines, each\n       given as two points or as an start point and a bearing from North.\n\n       @arg start1: Start point of the first line (L{LatLon}).\n       @arg end1: End point of the first line (L{LatLon}) or the initial bearing\n                  at B{C{start1}} (compass C{degrees360}).\n       @arg start2: Start point of the second line (L{LatLon}).\n       @arg end2: End point of the second line (L{LatLon}) or the initial bearing\n                  at B{C{start2}} (compass C{degrees360}).\n       @kwarg height: Optional height at the intersection (C{meter}, conventionally)\n                      or C{None} for the mean height.\n       @kwarg wrap: If C{True}, wrap or I{normalize} and unroll B{C{start2}} and\n                    both B{C{end*}} points (C{bool}).\n       @kwarg equidistant: An azimuthal equidistant projection (I{class} or function\n                           L{pygeodesy.equidistant}) or C{None} for the preferred\n                           C{B{start1}.Equidistant}.\n       @kwarg tol: Tolerance for convergence and for skew line distance and length\n                   (C{meter}, conventionally).\n       @kwarg LatLon_and_kwds: Optional class C{B{LatLon}=}L{LatLon} to return the\n                     intersection points and optionally, additional B{C{LatLon}}\n                     keyword arguments, ignored if C{B{LatLon}=None}.\n\n       @return: An L{Intersection3Tuple}C{(point, outside1, outside2)} with C{point}\n                a B{C{LatLon}} or if C{B{LatLon} is None}, a L{LatLon4Tuple}C{(lat,\n                lon, height, datum)}.\n\n       @raise IntersectionError: Skew, colinear, parallel or otherwise non-intersecting\n                                 lines or no convergence for the given B{C{tol}}.\n\n       @raise TypeError: Invalid or non-ellipsoidal B{C{start1}}, B{C{end1}},\n                         B{C{start2}} or B{C{end2}} or invalid B{C{equidistant}}.\n\n       @note: For each line specified with an initial bearing, a pseudo-end point is\n              computed as the C{destination} along that bearing at about 1.5 times the\n              distance from the start point to an initial gu-/estimate of the intersection\n              point (and between 1/8 and 3/8 of the authalic earth perimeter).\n\n       @see: U{The B{ellipsoidal} case<https://GIS.StackExchange.com/questions/48937/\n             calculating-intersection-of-two-circles>} and U{Karney's paper\n             <https://ArXiv.org/pdf/1102.1215.pdf>}, pp 20-21, section B{14. MARITIME\n             BOUNDARIES} for more details about the iteration algorithm.\n    '''\n    kwds = _xkwds(LatLon_and_kwds, LatLon=LatLon)\n    return _intersection3(start1, end1, start2, end2, height=height, wrap=wrap,\n                                        equidistant=equidistant, tol=tol, **kwds)\n\n\ndef intersections2(center1, radius1, center2, radius2, height=None, wrap=False,  # was=True\n                                     equidistant=None, tol=_TOL_M, **LatLon_and_kwds):\n    '''I{Iteratively} compute the intersection points of two circles, each defined\n       by an (ellipsoidal) center point and a radius.\n\n       @arg center1: Center of the first circle (L{LatLon}).\n       @arg radius1: Radius of the first circle (C{meter}, conventionally).\n       @arg center2: Center of the second circle (L{LatLon}).\n       @arg radius2: Radius of the second circle (C{meter}, same units as\n                     B{C{radius1}}).\n       @kwarg height: Optional height for the intersection points (C{meter},\n                      conventionally) or C{None} for the I{\"radical height\"}\n                      at the I{radical line} between both centers.\n       @kwarg wrap: If C{True}, wrap or I{normalize} and unroll B{C{center2}}\n                    (C{bool}).\n       @kwarg equidistant: An azimuthal equidistant projection (I{class} or\n                           function L{pygeodesy.equidistant}) or C{None} for\n                           the preferred C{B{center1}.Equidistant}.\n       @kwarg tol: Convergence tolerance (C{meter}, same units as B{C{radius1}}\n                   and B{C{radius2}}).\n       @kwarg LatLon_and_kwds: Optional class C{B{LatLon}=}L{LatLon} to return the\n                     intersection points and optionally, additional B{C{LatLon}}\n                     keyword arguments, ignored if C{B{LatLon}=None}.\n\n       @return: 2-Tuple of the intersection points, each a B{C{LatLon}} instance\n                or L{LatLon4Tuple}C{(lat, lon, height, datum)} if C{B{LatLon} is\n                None}.  For abutting circles, both points are the same instance,\n                aka the I{radical center}.\n\n       @raise IntersectionError: Concentric, antipodal, invalid or non-intersecting\n                                 circles or no convergence for the B{C{tol}}.\n\n       @raise TypeError: Invalid or non-ellipsoidal B{C{center1}} or B{C{center2}}\n                         or invalid B{C{equidistant}}.\n\n       @raise UnitError: Invalid B{C{radius1}}, B{C{radius2}} or B{C{height}}.\n\n       @see: U{The B{ellipsoidal} case<https://GIS.StackExchange.com/questions/48937/\n             calculating-intersection-of-two-circles>}, U{Karney's paper\n             <https://ArXiv.org/pdf/1102.1215.pdf>}, pp 20-21, section B{14. MARITIME BOUNDARIES},\n             U{circle-circle<https://MathWorld.Wolfram.com/Circle-CircleIntersection.html>} and\n             U{sphere-sphere<https://MathWorld.Wolfram.com/Sphere-SphereIntersection.html>}\n             intersections.\n    '''\n    kwds = _xkwds(LatLon_and_kwds, LatLon=LatLon)\n    return _intersections2(center1, radius1, center2, radius2, height=height, wrap=wrap,\n                                             equidistant=equidistant, tol=tol, **kwds)\n\n\ndef isclockwise(points, datum=_WGS84, wrap=True, polar=False):\n    '''Determine the direction of a path or polygon.\n\n       @arg points: The path or polygon points (C{LatLon}[]).\n       @kwarg datum: Optional datum (L{Datum}).\n       @kwarg wrap: If C{True}, wrap or I{normalize} and unroll the B{C{points}} (C{bool}).\n       @kwarg polar: Use C{B{polar}=True} if the C{B{points}} enclose a pole (C{bool}),\n                     see function U{ispolar<pygeodeys.points.ispolar>}.\n\n       @return: C{True} if B{C{points}} are clockwise, C{False} otherwise.\n\n       @raise PointsError: Insufficient number of B{C{points}}.\n\n       @raise TypeError: Some B{C{points}} are not C{LatLon}.\n\n       @raise ValueError: The B{C{points}} enclose a pole or zero area.\n\n       @see: L{pygeodesy.isclockwise}.\n    '''\n    a = _polygon(datum.ellipsoid.geodesicx, points, True, False, wrap, polar)\n    if a < 0:\n        return True\n    elif a > 0:\n        return False\n    raise _areaError(points)\n\n\ndef nearestOn(point, point1, point2, within=True, height=None, wrap=False,\n                     equidistant=None, tol=_TOL_M, **LatLon_and_kwds):\n    '''I{Iteratively} locate the closest point on the geodesic (line)\n       between two other (ellipsoidal) points.\n\n       @arg point: Reference point (C{LatLon}).\n       @arg point1: Start point of the geodesic (C{LatLon}).\n       @arg point2: End point of the geodesic (C{LatLon}).\n       @kwarg within: If C{True}, return the closest point I{between}\n                      B{C{point1}} and B{C{point2}}, otherwise the\n                      closest point elsewhere on the geodesic (C{bool}).\n       @kwarg height: Optional height for the closest point (C{meter},\n                      conventionally) or C{None} or C{False} for the\n                      interpolated height.  If C{False}, the closest\n                      takes the heights of the points into account.\n       @kwarg wrap: If C{True}, wrap or I{normalize} and unroll both\n                    B{C{point1}} and B{C{point2}} (C{bool}).\n       @kwarg equidistant: An azimuthal equidistant projection (I{class}\n                           or function L{pygeodesy.equidistant}) or C{None}\n                           for the preferred C{B{point}.Equidistant}.\n       @kwarg tol: Convergence tolerance (C{meter}).\n       @kwarg LatLon_and_kwds: Optional class C{B{LatLon}=}L{LatLon} to return the\n                     closest point and optionally, additional B{C{LatLon}} keyword\n                     arguments, ignored if C{B{LatLon}=None}.\n\n       @return: Closest point, a B{C{LatLon}} instance or if C{B{LatLon} is None},\n                a L{LatLon4Tuple}C{(lat, lon, height, datum)}.\n\n       @raise TypeError: Invalid or non-ellipsoidal B{C{point}}, B{C{point1}} or\n                         B{C{point2}} or invalid B{C{equidistant}}.\n\n       @raise ValueError: No convergence for the B{C{tol}}.\n\n       @see: U{The B{ellipsoidal} case<https://GIS.StackExchange.com/questions/48937/\n             calculating-intersection-of-two-circles>} and U{Karney's paper\n             <https://ArXiv.org/pdf/1102.1215.pdf>}, pp 20-21, section B{14. MARITIME\n             BOUNDARIES} for more details about the iteration algorithm.\n    '''\n    kwds = _xkwds(LatLon_and_kwds, LatLon=LatLon)\n    return _nearestOn(point, point1, point2, within=within, height=height, wrap=wrap,\n                                             equidistant=equidistant, tol=tol, **kwds)\n\n\ndef perimeterOf(points, closed=False, datum=_WGS84, wrap=True):\n    '''Compute the perimeter of an (ellipsoidal) polygon or composite.\n\n       @arg points: The polygon points (L{LatLon}[], L{BooleanFHP} or L{BooleanGH}).\n       @kwarg closed: Optionally, close the polygon (C{bool}).\n       @kwarg datum: Optional datum (L{Datum}).\n       @kwarg wrap: If C{True}, wrap or I{normalize} and unroll the B{C{points}} (C{bool}).\n\n       @return: Perimeter (C{meter}, same units as the B{C{datum}}'s ellipsoid axes).\n\n       @raise PointsError: Insufficient number of B{C{points}}.\n\n       @raise TypeError: Some B{C{points}} are not L{LatLon}.\n\n       @raise ValueError: Invalid C{B{wrap}=False}, unwrapped, unrolled longitudes not\n                          supported or C{B{closed}=False} with C{B{points}} a composite.\n\n       @see: Functions L{pygeodesy.perimeterOf}, L{ellipsoidalGeodSolve.perimeterOf},\n             L{ellipsoidalKarney.perimeterOf}, L{sphericalNvector.perimeterOf} and\n             L{sphericalTrigonometry.perimeterOf}.\n    '''\n    return _polygon(datum.ellipsoid.geodesicx, points, closed, True, wrap, False)\n\n\n__all__ += _ALL_OTHER(Cartesian, LatLon,  # classes\n                      areaOf, intersecant2,  # from .ellipsoidalBase\n                      intersection3, intersections2, isclockwise, ispolar,\n                      nearestOn, perimeterOf)\n\n# **) MIT License\n#\n# Copyright (C) 2016-2026 -- mrJean1 at Gmail -- All Rights Reserved.\n#\n# Permission is hereby granted, free of charge, to any person obtaining a\n# copy of this software and associated documentation files (the \"Software\"),\n# to deal in the Software without restriction, including without limitation\n# the rights to use, copy, modify, merge, publish, distribute, sublicense,\n# and/or sell copies of the Software, and to permit persons to whom the\n# Software is furnished to do so, subject to the following conditions:\n#\n# The above copyright notice and this permission notice shall be included\n# in all copies or substantial portions of the Software.\n#\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL\n# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR\n# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\n# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n# OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "pygeodesy/ellipsoidalGeodSolve.py",
    "content": "\n# -*- coding: utf-8 -*-\n\nu'''Exact ellipsoidal geodesy, intended I{for testing purposes only}.\n\nEllipsoidal geodetic (lat-/longitude) L{LatLon} and geocentric\n(ECEF) L{Cartesian} classes and functions L{areaOf}, L{intersections2},\nL{isclockwise}, L{nearestOn} and L{perimeterOf} based on module\nL{geodsolve}, a wrapper invoking I{Karney}'s U{GeodSolve\n<https://GeographicLib.SourceForge.io/C++/doc/GeodSolve.1.html>} utility.\n'''\n\n# from pygeodesy.datums import _WGS84  # from .ellipsoidalBase\nfrom pygeodesy.ellipsoidalBase import CartesianEllipsoidalBase, \\\n                                     _nearestOn,  Property_RO, _WGS84\nfrom pygeodesy.ellipsoidalBaseDI import LatLonEllipsoidalBaseDI, _TOL_M, \\\n                                       _intersection3, _intersections2\n# from pygeodesy.errors import _xkwds  # from .karney\nfrom pygeodesy.karney import fabs, _polygon,  _xkwds\nfrom pygeodesy.lazily import _ALL_LAZY, _ALL_MODS as _MODS, _ALL_OTHER\nfrom pygeodesy.points import _areaError, ispolar  # PYCHOK exported\n# from pygeodesy.props import Property_RO  # from .karney\n\n# from math import fabs  # from .karney\n\n__all__ = _ALL_LAZY.ellipsoidalGeodSolve\n__version__ = '25.08.28'\n\n\nclass Cartesian(CartesianEllipsoidalBase):\n    '''Extended to convert exact L{Cartesian} to exact L{LatLon} points.\n    '''\n\n    def toLatLon(self, **LatLon_and_kwds):  # PYCHOK LatLon=LatLon, datum=None\n        '''Convert this cartesian point to an exact geodetic point.\n\n           @kwarg LatLon_and_kwds: Optional L{LatLon} and L{LatLon} keyword\n                                   arguments as C{datum}.  Use C{B{LatLon}=...,\n                                   B{datum}=...} to override this L{LatLon}\n                                   class or specify C{B{LatLon}=None}.\n\n           @return: The geodetic point (L{LatLon}) or if C{B{LatLon} is None},\n                    an L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n                    with C{C} and C{M} if available.\n\n           @raise TypeError: Invalid B{C{LatLon_and_kwds}} argument.\n        '''\n        kwds = _xkwds(LatLon_and_kwds, LatLon=LatLon, datum=self.datum)\n        return CartesianEllipsoidalBase.toLatLon(self, **kwds)\n\n\nclass LatLon(LatLonEllipsoidalBaseDI):\n    '''An ellipsoidal L{LatLon} like L{ellipsoidalKarney.LatLon} but using (exact)\n       geodesic I{wrapper} L{GeodesicSolve} to compute the geodesic distance,\n       initial and final bearing (azimuths) between two given points or the\n       destination point given a start point and an (initial) bearing.\n    '''\n\n    @Property_RO\n    def Equidistant(self):\n        '''Get the prefered azimuthal equidistant projection I{class} (L{EquidistantGeodSolve}).\n        '''\n        return _MODS.azimuthal.EquidistantGeodSolve\n\n    @Property_RO\n    def geodesicx(self):\n        '''Get this C{LatLon}'s (exact) geodesic (L{GeodesicSolve}).\n        '''\n        return self.datum.ellipsoid.geodsolve\n\n    geodesic = geodesicx  # for C{._Direct} and C{._Inverse}\n\n    def toCartesian(self, **Cartesian_datum_kwds):  # PYCHOK Cartesian=Cartesian, datum=None\n        '''Convert this point to exact cartesian (ECEF) coordinates.\n\n           @kwarg Cartesian_datum_kwds: Optional L{Cartesian}, B{C{datum}} and other keyword\n                  arguments, ignored if C{B{Cartesian} is None}.  Use C{B{Cartesian}=Class}\n                  to override this L{Cartesian} class or set C{B{Cartesian}=None}.\n\n           @return: The cartesian (ECEF) coordinates (L{Cartesian}) or if C{B{Cartesian} is\n                    None}, an L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)} with\n                    C{C} and C{M} if available.\n\n           @raise TypeError: Invalid B{C{Cartesian}}, B{C{datum}} or other B{C{Cartesian_datum_kwds}}.\n        '''\n        kwds = _xkwds(Cartesian_datum_kwds, Cartesian=Cartesian, datum=self.datum)\n        return LatLonEllipsoidalBaseDI.toCartesian(self, **kwds)\n\n\ndef areaOf(points, datum=_WGS84, wrap=True, polar=False):\n    '''Compute the area of an (ellipsoidal) polygon or composite.\n\n       @arg points: The polygon points (L{LatLon}[], L{BooleanFHP} or L{BooleanGH}).\n       @kwarg datum: Optional datum (L{Datum}).\n       @kwarg wrap: If C{True}, wrap or I{normalize} and unroll the B{C{points}} (C{bool}).\n       @kwarg polar: Use C{B{polar}=True} if the polygon encloses a pole (C{bool}), see\n                     function L{ispolar<pygeodesy.points.ispolar>} and U{area of a polygon\n                     enclosing a pole<https://GeographicLib.SourceForge.io/C++/doc/\n                     classGeographicLib_1_1GeodesicExact.html#a3d7a9155e838a09a48dc14d0c3fac525>}.\n\n       @return: Area (C{meter}, same as units of the B{C{datum}}'s ellipsoid axes, I{squared}).\n\n       @raise PointsError: Insufficient number of B{C{points}}.\n\n       @raise TypeError: Some B{C{points}} are not L{LatLon}.\n\n       @raise ValueError: Invalid C{B{wrap}=False}, unwrapped, unrolled longitudes not supported.\n\n       @see: Functions L{pygeodesy.areaOf}, L{ellipsoidalExact.areaOf}, L{ellipsoidalKarney.areaOf},\n             L{sphericalNvector.areaOf} and L{sphericalTrigonometry.areaOf}.\n    '''\n    return fabs(_polygon(datum.ellipsoid.geodsolve, points, True, False, wrap, polar))\n\n\ndef intersection3(start1, end1, start2, end2, height=None, wrap=False,  # was=True\n                  equidistant=None, tol=_TOL_M, LatLon=LatLon, **LatLon_kwds):\n    '''I{Iteratively} compute the intersection point of two lines, each defined\n       by two (ellipsoidal) points or by an (ellipsoidal) start point and an\n       (initial) bearing from North.\n\n       @arg start1: Start point of the first line (L{LatLon}).\n       @arg end1: End point of the first line (L{LatLon}) or the initial bearing\n                  at the first point (compass C{degrees360}).\n       @arg start2: Start point of the second line (L{LatLon}).\n       @arg end2: End point of the second line (L{LatLon}) or the initial bearing\n                  at the second point (compass C{degrees360}).\n       @kwarg height: Optional height at the intersection (C{meter}, conventionally)\n                      or C{None} for the mean height.\n       @kwarg wrap: If C{True}, wrap or I{normalize} and unroll the B{C{start2}}\n                    and B{C{end*}} points (C{bool}).\n       @kwarg equidistant: An azimuthal equidistant projection (I{class} or function\n                           L{pygeodesy.equidistant}) or C{None} for the preferred\n                           C{B{start1}.Equidistant}.\n       @kwarg tol: Tolerance for convergence and for skew line distance and length\n                   (C{meter}, conventionally).\n       @kwarg LatLon: Optional class to return the intersection points (L{LatLon})\n                      or C{None}.\n       @kwarg LatLon_kwds: Optional, additional B{C{LatLon}} keyword arguments,\n                           ignored if C{B{LatLon} is None}.\n\n       @return: An L{Intersection3Tuple}C{(point, outside1, outside2)} with C{point}\n                a B{C{LatLon}} or if C{B{LatLon} is None}, a L{LatLon4Tuple}C{(lat,\n                lon, height, datum)}.\n\n       @raise IntersectionError: Skew, colinear, parallel or otherwise\n                                 non-intersecting lines or no convergence\n                                 for the given B{C{tol}}.\n\n       @raise TypeError: Invalid or non-ellipsoidal B{C{start1}}, B{C{end1}},\n                         B{C{start2}} or B{C{end2}} or invalid B{C{equidistant}}.\n\n       @note: For each line specified with an initial bearing, a pseudo-end point\n              is computed as the C{destination} along that bearing at about 1.5\n              times the distance from the start point to an initial gu-/estimate\n              of the intersection point (and between 1/8 and 3/8 of the authalic\n              earth perimeter).\n\n       @see: U{The B{ellipsoidal} case<https://GIS.StackExchange.com/questions/48937/\n             calculating-intersection-of-two-circles>} and U{Karney's paper\n             <https://ArXiv.org/pdf/1102.1215.pdf>}, pp 20-21, section B{14. MARITIME\n             BOUNDARIES} for more details about the iteration algorithm.\n    '''\n    return _intersection3(start1, end1, start2, end2, height=height, wrap=wrap,\n                          equidistant=equidistant, tol=tol, LatLon=LatLon, **LatLon_kwds)\n\n\ndef intersections2(center1, radius1, center2, radius2, height=None, wrap=False,  # was=True\n                   equidistant=None, tol=_TOL_M, LatLon=LatLon, **LatLon_kwds):\n    '''I{Iteratively} compute the intersection points of two circles, each defined\n       by an (ellipsoidal) center point and a radius.\n\n       @arg center1: Center of the first circle (L{LatLon}).\n       @arg radius1: Radius of the first circle (C{meter}, conventionally).\n       @arg center2: Center of the second circle (L{LatLon}).\n       @arg radius2: Radius of the second circle (C{meter}, same units as\n                     B{C{radius1}}).\n       @kwarg height: Optional height for the intersection points (C{meter},\n                      conventionally) or C{None} for the I{\"radical height\"}\n                      at the I{radical line} between both centers.\n       @kwarg wrap: If C{True}, wrap or I{normalize} and unroll B{C{center2}}\n                    (C{bool}).\n       @kwarg equidistant: An azimuthal equidistant projection (I{class} or\n                           function L{pygeodesy.equidistant}) or C{None} for\n                           the preferred C{B{center1}.Equidistant}.\n       @kwarg tol: Convergence tolerance (C{meter}, same units as B{C{radius1}}\n                   and B{C{radius2}}).\n       @kwarg LatLon: Optional class to return the intersection points (L{LatLon})\n                      or C{None}.\n       @kwarg LatLon_kwds: Optional, additional B{C{LatLon}} keyword arguments,\n                           ignored if C{B{LatLon} is None}.\n\n       @return: 2-Tuple of the intersection points, each a B{C{LatLon}} instance\n                or L{LatLon4Tuple}C{(lat, lon, height, datum)} if C{B{LatLon} is\n                None}.  For abutting circles, both points are the same instance,\n                aka the I{radical center}.\n\n       @raise IntersectionError: Concentric, antipodal, invalid or non-intersecting\n                                 circles or no convergence for the B{C{tol}}.\n\n       @raise TypeError: Invalid or non-ellipsoidal B{C{center1}} or B{C{center2}}\n                         or invalid B{C{equidistant}}.\n\n       @raise UnitError: Invalid B{C{radius1}}, B{C{radius2}} or B{C{height}}.\n\n       @see: U{The B{ellipsoidal} case<https://GIS.StackExchange.com/questions/48937/\n             calculating-intersection-of-two-circles>}, U{Karney's paper\n             <https://ArXiv.org/pdf/1102.1215.pdf>}, pp 20-21, section B{14. MARITIME BOUNDARIES},\n             U{Circle-Circle<https://MathWorld.Wolfram.com/Circle-CircleIntersection.html>} and\n             U{Sphere-Sphere<https://MathWorld.Wolfram.com/Sphere-SphereIntersection.html>}\n             intersections.\n    '''\n    return _intersections2(center1, radius1, center2, radius2, height=height, wrap=wrap,\n                           equidistant=equidistant, tol=tol, LatLon=LatLon, **LatLon_kwds)\n\n\ndef isclockwise(points, datum=_WGS84, wrap=True, polar=False):\n    '''Determine the direction of a path or polygon.\n\n       @arg points: The path or polygon points (C{LatLon}[]).\n       @kwarg datum: Optional datum (L{Datum}).\n       @kwarg wrap: If C{True}, wrap or I{normalize} and unroll the B{C{points}} (C{bool}).\n       @kwarg polar: Use C{B{polar}=True} if the C{B{points}} enclose a pole (C{bool}),\n                     see function U{ispolar<pygeodeys.points.ispolar>}.\n\n       @return: C{True} if B{C{points}} are clockwise, C{False} otherwise.\n\n       @raise PointsError: Insufficient number of B{C{points}}.\n\n       @raise TypeError: Some B{C{points}} are not C{LatLon}.\n\n       @raise ValueError: The B{C{points}} enclose a pole or zero area.\n\n       @see: L{pygeodesy.isclockwise}.\n    '''\n    a = _polygon(datum.ellipsoid.geodsolve, points, True, False, wrap, polar)\n    if a < 0:\n        return True\n    elif a > 0:\n        return False\n    raise _areaError(points)\n\n\ndef nearestOn(point, point1, point2, within=True, height=None, wrap=False,\n              equidistant=None, tol=_TOL_M, LatLon=LatLon, **LatLon_kwds):\n    '''I{Iteratively} locate the closest point on the geodesic between\n       two other (ellipsoidal) points.\n\n       @arg point: Reference point (C{LatLon}).\n       @arg point1: Start point of the geodesic (C{LatLon}).\n       @arg point2: End point of the geodesic (C{LatLon}).\n       @kwarg within: If C{True}, return the closest point I{between}\n                      B{C{point1}} and B{C{point2}}, otherwise the\n                      closest point elsewhere on the geodesic (C{bool}).\n       @kwarg height: Optional height for the closest point (C{meter},\n                      conventionally) or C{None} or C{False} for the\n                      interpolated height.  If C{False}, the closest\n                      takes the heights of the points into account.\n       @kwarg wrap: If C{True}, wrap or I{normalize} and unroll both\n                    B{C{point1}} and B{C{point2}} (C{bool}).\n       @kwarg equidistant: An azimuthal equidistant projection (I{class}\n                           or function L{pygeodesy.equidistant}) or C{None}\n                           for the preferred C{B{point}.Equidistant}.\n       @kwarg tol: Convergence tolerance (C{meter}).\n       @kwarg LatLon: Optional class to return the closest point\n                      (L{LatLon}) or C{None}.\n       @kwarg LatLon_kwds: Optional, additional B{C{LatLon}} keyword\n                           arguments, ignored if C{B{LatLon} is None}.\n\n       @return: Closest point, a B{C{LatLon}} instance or if C{B{LatLon}\n                is None}, a L{LatLon4Tuple}C{(lat, lon, height, datum)}.\n\n       @raise TypeError: Invalid or non-ellipsoidal B{C{point}}, B{C{point1}}\n                         or B{C{point2}} or invalid B{C{equidistant}}.\n\n       @raise ValueError: No convergence for the B{C{tol}}.\n\n       @see: U{The B{ellipsoidal} case<https://GIS.StackExchange.com/questions/48937/\n             calculating-intersection-of-two-circles>} and U{Karney's paper\n             <https://ArXiv.org/pdf/1102.1215.pdf>}, pp 20-21, section B{14. MARITIME\n             BOUNDARIES} for more details about the iteration algorithm.\n    '''\n    return _nearestOn(point, point1, point2, within=within, height=height, wrap=wrap,\n                      equidistant=equidistant, tol=tol, LatLon=LatLon, **LatLon_kwds)\n\n\ndef perimeterOf(points, closed=False, datum=_WGS84, wrap=True):\n    '''Compute the perimeter of an (ellipsoidal) polygon or composite.\n\n       @arg points: The polygon points (L{LatLon}[], L{BooleanFHP} or L{BooleanGH}).\n       @kwarg closed: Optionally, close the polygon (C{bool}).\n       @kwarg datum: Optional datum (L{Datum}).\n       @kwarg wrap: If C{True}, wrap or I{normalize} and unroll the B{C{points}} (C{bool}).\n\n       @return: Perimeter (C{meter}, same as units of the B{C{datum}}'s ellipsoid axes).\n\n       @raise PointsError: Insufficient number of B{C{points}}.\n\n       @raise TypeError: Some B{C{points}} are not L{LatLon}.\n\n       @raise ValueError: Invalid C{B{wrap}=False}, unwrapped, unrolled longitudes not\n                          supported or C{B{closed}=False} with C{B{points}} a composite.\n\n       @see: Functions L{pygeodesy.perimeterOf}, L{ellipsoidalExact.perimeterOf},\n             L{ellipsoidalKarney.perimeterOf}, L{sphericalNvector.perimeterOf}\n             and L{sphericalTrigonometry.perimeterOf}.\n    '''\n    return _polygon(datum.ellipsoid.geodsolve, points, closed, True, wrap, False)\n\n\n__all__ += _ALL_OTHER(Cartesian, LatLon,  # classes\n                      areaOf,  # functions\n                      intersection3, intersections2, isclockwise, ispolar,\n                      nearestOn, perimeterOf)\n\n# **) MIT License\n#\n# Copyright (C) 2016-2026 -- mrJean1 at Gmail -- All Rights Reserved.\n#\n# Permission is hereby granted, free of charge, to any person obtaining a\n# copy of this software and associated documentation files (the \"Software\"),\n# to deal in the Software without restriction, including without limitation\n# the rights to use, copy, modify, merge, publish, distribute, sublicense,\n# and/or sell copies of the Software, and to permit persons to whom the\n# Software is furnished to do so, subject to the following conditions:\n#\n# The above copyright notice and this permission notice shall be included\n# in all copies or substantial portions of the Software.\n#\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL\n# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR\n# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\n# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n# OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "pygeodesy/ellipsoidalKarney.py",
    "content": "\n# -*- coding: utf-8 -*-\n\nu'''Ellipsoidal, I{Karney}-based geodesy.\n\nEllipsoidal geodetic (lat-/longitude) L{LatLon} and geocentric (ECEF) L{Cartesian}\nclasses and functions L{areaOf}, L{intersection3}, L{intersections2}, L{isclockwise},\nL{nearestOn} and L{perimeterOf}, requiring I{Charles F.F. Karney}'s U{geographiclib\n<https://PyPI.org/project/geographiclib>} Python package to be installed.\n\nA usage example of C{ellipsoidalKarney}:\n\n    >>> from pygeodesy.ellipsoidalKarney import LatLon\n    >>> Newport_RI = LatLon(41.49008, -71.312796)\n    >>> Cleveland_OH = LatLon(41.499498, -81.695391)\n    >>> Newport_RI.distanceTo(Cleveland_OH)\n    866,455.4329098687  # meter\n\nYou can change the ellipsoid model used by the I{Karney} formulae\nas follows:\n\n    >>> from pygeodesy import Datums\n    >>> from pygeodesy.ellipsoidalKarney import LatLon\n    >>> p = LatLon(0, 0, datum=Datums.OSGB36)\n\nor by converting to anothor datum:\n\n    >>> p = p.toDatum(Datums.OSGB36)\n'''\n\nfrom pygeodesy.datums import _WGS84\nfrom pygeodesy.ellipsoidalBase import CartesianEllipsoidalBase, _nearestOn\nfrom pygeodesy.ellipsoidalBaseDI import LatLonEllipsoidalBaseDI, \\\n                                       _intersection3, _intersections2, \\\n                                       _TOL_M, intersecant2\n# from pygeodesy.errors import _xkwds  # from .karney\nfrom pygeodesy.karney import _polygon,  fabs, _xkwds\nfrom pygeodesy.lazily import _ALL_LAZY, _ALL_MODS as _MODS, _ALL_OTHER\nfrom pygeodesy.points import _areaError, ispolar  # PYCHOK exported\nfrom pygeodesy.props import deprecated_method, Property_RO\n\n# from math import fabs  # from .karney\n\n__all__ = _ALL_LAZY.ellipsoidalKarney\n__version__ = '25.05.27'\n\n\nclass Cartesian(CartesianEllipsoidalBase):\n    '''Extended to convert C{Karney}-based L{Cartesian} to C{Karney}-based L{LatLon} points.\n    '''\n\n    def toLatLon(self, **LatLon_and_kwds):  # PYCHOK LatLon=LatLon, datum=None\n        '''Convert this cartesian point to a C{Karney}-based geodetic point.\n\n           @kwarg LatLon_and_kwds: Optional L{LatLon} and L{LatLon} keyword arguments\n                         as C{datum}.  Use C{B{LatLon}=..., B{datum}=...} to override\n                         this L{LatLon} class or specify C{B{LatLon}=None}.\n\n           @return: The geodetic point (L{LatLon}) or if C{B{LatLon} is None}, an\n                    L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)} with C{C}\n                    and C{M} if available.\n\n           @raise TypeError: Invalid B{C{LatLon_and_kwds}} argument.\n        '''\n        kwds = _xkwds(LatLon_and_kwds, LatLon=LatLon, datum=self.datum)\n        return CartesianEllipsoidalBase.toLatLon(self, **kwds)\n\n\nclass LatLon(LatLonEllipsoidalBaseDI):\n    '''An ellipsoidal L{LatLon} similar to L{ellipsoidalVincenty.LatLon} but using\n       I{Karney}'s Python U{geographiclib<https://PyPI.org/project/geographiclib>}\n       to compute geodesic distances, bearings (azimuths), etc.\n    '''\n\n    @deprecated_method\n    def bearingTo(self, other, wrap=False):  # PYCHOK no cover\n        '''DEPRECATED, use method L{initialBearingTo}.\n        '''\n        return self.initialBearingTo(other, wrap=wrap)\n\n    @Property_RO\n    def Equidistant(self):\n        '''Get the prefered azimuthal equidistant projection I{class} (L{EquidistantKarney}).\n        '''\n        return _MODS.azimuthal.EquidistantKarney\n\n    @Property_RO\n    def geodesic(self):\n        '''Get this C{LatLon}'s I{wrapped} U{geodesic.Geodesic\n           <https://GeographicLib.SourceForge.io/Python/doc/code.html>}, provided\n           I{Karney}'s U{geographiclib<https://PyPI.org/project/geographiclib>}\n           package is installed.\n        '''\n        return self.datum.ellipsoid.geodesic\n\n    def toCartesian(self, **Cartesian_datum_kwds):  # PYCHOK Cartesian=Cartesian, datum=None\n        '''Convert this point to C{Karney}-based cartesian (ECEF) coordinates.\n\n           @kwarg Cartesian_datum_kwds: Optional L{Cartesian}, B{C{datum}} and other keyword\n                  arguments, ignored if C{B{Cartesian} is None}.  Use C{B{Cartesian}=...} to\n                  override this L{Cartesian} class or set C{B{Cartesian}=None}.\n\n           @return: The cartesian (ECEF) coordinates (L{Cartesian}) or if C{B{Cartesian} is\n                    None}, an L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)} with\n                    C{C} and C{M} if available.\n\n           @raise TypeError: Invalid B{C{Cartesian}}, B{C{datum}} or other B{C{Cartesian_datum_kwds}}.\n        '''\n        kwds = _xkwds(Cartesian_datum_kwds, Cartesian=Cartesian, datum=self.datum)\n        return LatLonEllipsoidalBaseDI.toCartesian(self, **kwds)\n\n\ndef areaOf(points, datum=_WGS84, wrap=True, polar=False):\n    '''Compute the area of an (ellipsoidal) polygon or composite using I{Karney}'s\n       U{geographiclib<https://PyPI.org/project/geographiclib>} package.\n\n       @arg points: The polygon points (L{LatLon}[], L{BooleanFHP} or L{BooleanGH}).\n       @kwarg datum: Optional datum (L{Datum}).\n       @kwarg wrap: If C{True}, wrap or I{normalize} and unroll the B{C{points}} (C{bool}).\n       @kwarg polar: Use C{B{polar}=True} if the polygon encloses a pole (C{bool}), see\n                     function L{ispolar<pygeodesy.points.ispolar>} and U{area of a polygon\n                     enclosing a pole<https://GeographicLib.SourceForge.io/C++/doc/\n                     classGeographicLib_1_1GeodesicExact.html#a3d7a9155e838a09a48dc14d0c3fac525>}.\n\n       @return: Area (C{meter}, same as units of the B{C{datum}}'s ellipsoid axes, I{squared}).\n\n       @raise ImportError: Package U{geographiclib<https://PyPI.org/project/geographiclib>}\n                           not installed or not found.\n\n       @raise PointsError: Insufficient number of B{C{points}}.\n\n       @raise TypeError: Some B{C{points}} are not L{LatLon}.\n\n       @raise ValueError: Invalid C{B{wrap}=False}, unwrapped, unrolled longitudes not supported.\n\n       @see: Functions L{pygeodesy.areaOf}, L{ellipsoidalExact.areaOf}, L{ellipsoidalGeodSolve.areaOf},\n             L{sphericalNvector.areaOf} and L{sphericalTrigonometry.areaOf}.\n    '''\n    return fabs(_polygon(datum.ellipsoid.geodesic, points, True, False, wrap, polar))\n\n\ndef intersection3(start1, end1, start2, end2, height=None, wrap=False,  # was=True\n                  equidistant=None, tol=_TOL_M, LatLon=LatLon, **LatLon_kwds):\n    '''I{Iteratively} compute the intersection point of two lines, each defined\n       by two (ellipsoidal) points or by an (ellipsoidal) start point and an\n       (initial) bearing from North.\n\n       @arg start1: Start point of the first line (L{LatLon}).\n       @arg end1: End point of the first line (L{LatLon}) or the initial bearing\n                  at the first point (compass C{degrees360}).\n       @arg start2: Start point of the second line (L{LatLon}).\n       @arg end2: End point of the second line (L{LatLon}) or the initial bearing\n                  at the second point (compass C{degrees360}).\n       @kwarg height: Optional height at the intersection (C{meter}, conventionally)\n                      or C{None} for the mean height.\n       @kwarg wrap: If C{True}, wrap or I{normalize} and unroll the B{C{start2}}\n                    and B{C{end*}} points (C{bool}).\n       @kwarg equidistant: An azimuthal equidistant projection (I{class} or function\n                           L{pygeodesy.equidistant}) or C{None} for the preferred\n                           C{B{start1}.Equidistant}.\n       @kwarg tol: Tolerance for convergence and for skew line distance and length\n                   (C{meter}, conventionally).\n       @kwarg LatLon: Optional class to return the intersection points (L{LatLon})\n                      or C{None}.\n       @kwarg LatLon_kwds: Optional, additional B{C{LatLon}} keyword arguments,\n                           ignored if C{B{LatLon} is None}.\n\n       @return: An L{Intersection3Tuple}C{(point, outside1, outside2)} with C{point}\n                a B{C{LatLon}} or if C{B{LatLon} is None}, a L{LatLon4Tuple}C{(lat,\n                lon, height, datum)}.\n\n       @raise IntersectionError: Skew, colinear, parallel or otherwise\n                                 non-intersecting lines or no convergence\n                                 for the given B{C{tol}}.\n\n       @raise TypeError: Invalid or non-ellipsoidal B{C{start1}}, B{C{end1}},\n                         B{C{start2}} or B{C{end2}} or invalid B{C{equidistant}}.\n\n       @note: For each line specified with an initial bearing, a pseudo-end point\n              is computed as the C{destination} along that bearing at about 1.5\n              times the distance from the start point to an initial gu-/estimate\n              of the intersection point (and between 1/8 and 3/8 of the authalic\n              earth perimeter).\n\n       @see: U{The B{ellipsoidal} case<https://GIS.StackExchange.com/questions/48937/\n             calculating-intersection-of-two-circles>} and U{Karney's paper\n             <https://ArXiv.org/pdf/1102.1215.pdf>}, pp 20-21, section B{14. MARITIME\n             BOUNDARIES} for more details about the iteration algorithm.\n    '''\n    return _intersection3(start1, end1, start2, end2, height=height, wrap=wrap,\n                          equidistant=equidistant, tol=tol, LatLon=LatLon, **LatLon_kwds)\n\n\ndef intersections2(center1, radius1, center2, radius2, height=None, wrap=False,  # was=True\n                   equidistant=None, tol=_TOL_M, LatLon=LatLon, **LatLon_kwds):\n    '''I{Iteratively} compute the intersection points of two circles, each defined\n       by an (ellipsoidal) center point and a radius.\n\n       @arg center1: Center of the first circle (L{LatLon}).\n       @arg radius1: Radius of the first circle (C{meter}, conventionally).\n       @arg center2: Center of the second circle (L{LatLon}).\n       @arg radius2: Radius of the second circle (C{meter}, same units as\n                     B{C{radius1}}).\n       @kwarg height: Optional height for the intersection points (C{meter},\n                      conventionally) or C{None} for the I{\"radical height\"}\n                      at the I{radical line} between both centers.\n       @kwarg wrap: If C{True}, wrap or I{normalize} and unroll B{C{center2}}\n                    (C{bool}).\n       @kwarg equidistant: An azimuthal equidistant projection (I{class} or\n                           function L{pygeodesy.equidistant}) or C{None} for\n                           the preferred C{B{center1}.Equidistant}.\n       @kwarg tol: Convergence tolerance (C{meter}, same units as B{C{radius1}}\n                   and B{C{radius2}}).\n       @kwarg LatLon: Optional class to return the intersection points (L{LatLon})\n                      or C{None}.\n       @kwarg LatLon_kwds: Optional, additional B{C{LatLon}} keyword arguments,\n                           ignored if C{B{LatLon} is None}.\n\n       @return: 2-Tuple of the intersection points, each a B{C{LatLon}} instance\n                or L{LatLon4Tuple}C{(lat, lon, height, datum)} if C{B{LatLon} is\n                None}.  For abutting circles, both points are the same instance,\n                aka the I{radical center}.\n\n       @raise IntersectionError: Concentric, antipodal, invalid or non-intersecting\n                                 circles or no convergence for the B{C{tol}}.\n\n       @raise TypeError: Invalid or non-ellipsoidal B{C{center1}} or B{C{center2}}\n                         or invalid B{C{equidistant}}.\n\n       @raise UnitError: Invalid B{C{radius1}}, B{C{radius2}} or B{C{height}}.\n\n       @see: U{The B{ellipsoidal} case<https://GIS.StackExchange.com/questions/48937/\n             calculating-intersection-of-two-circles>}, U{Karney's paper\n             <https://ArXiv.org/pdf/1102.1215.pdf>}, pp 20-21, section B{14. MARITIME BOUNDARIES},\n             U{circle-circle<https://MathWorld.Wolfram.com/Circle-CircleIntersection.html>} and\n             U{sphere-sphere<https://MathWorld.Wolfram.com/Sphere-SphereIntersection.html>}\n             intersections.\n    '''\n    return _intersections2(center1, radius1, center2, radius2, height=height, wrap=wrap,\n                           equidistant=equidistant, tol=tol, LatLon=LatLon, **LatLon_kwds)\n\n\ndef isclockwise(points, datum=_WGS84, wrap=True, polar=False):\n    '''Determine the direction of a path or polygon using I{Karney}'s\n       U{geographiclib<https://PyPI.org/project/geographiclib>} package.\n\n       @arg points: The path or polygon points (C{LatLon}[]).\n       @kwarg datum: Optional datum (L{Datum}).\n       @kwarg wrap: If C{True}, wrap or I{normalize} and unroll the B{C{points}} (C{bool}).\n       @kwarg polar: Use C{B{polar}=True} if the C{B{points}} enclose a pole (C{bool}),\n                     see function U{ispolar<pygeodeys.points.ispolar>}.\n\n       @return: C{True} if B{C{points}} are clockwise, C{False} otherwise.\n\n       @raise ImportError: Package U{geographiclib<https://PyPI.org/project/geographiclib>}\n                           not installed or not found.\n\n       @raise PointsError: Insufficient number of B{C{points}}.\n\n       @raise TypeError: Some B{C{points}} are not C{LatLon}.\n\n       @raise ValueError: The B{C{points}} enclose a pole or zero area.\n\n       @see: L{pygeodesy.isclockwise}.\n    '''\n    a = _polygon(datum.ellipsoid.geodesic, points, True, False, wrap, polar)\n    if a < 0:\n        return True\n    elif a > 0:\n        return False\n    raise _areaError(points)\n\n\ndef nearestOn(point, point1, point2, within=True, height=None, wrap=False,\n              equidistant=None, tol=_TOL_M, LatLon=LatLon, **LatLon_kwds):\n    '''I{Iteratively} locate the closest point on the geodesic between\n       two other (ellipsoidal) points.\n\n       @arg point: Reference point (C{LatLon}).\n       @arg point1: Start point of the geodesic (C{LatLon}).\n       @arg point2: End point of the geodesic (C{LatLon}).\n       @kwarg within: If C{True}, return the closest point I{between}\n                      B{C{point1}} and B{C{point2}}, otherwise the\n                      closest point elsewhere on the geodesic (C{bool}).\n       @kwarg height: Optional height for the closest point (C{meter},\n                      conventionally) or C{None} or C{False} for the\n                      interpolated height.  If C{False}, the closest\n                      takes the heights of the points into account.\n       @kwarg wrap: If C{True}, wrap or I{normalize} and unroll both\n                    B{C{point1}} and B{C{point2}} (C{bool}).\n       @kwarg equidistant: An azimuthal equidistant projection (I{class}\n                           or function L{pygeodesy.equidistant}) or C{None}\n                           for the preferred C{B{point}.Equidistant}.\n       @kwarg tol: Convergence tolerance (C{meter}).\n       @kwarg LatLon: Optional class to return the closest point\n                      (L{LatLon}) or C{None}.\n       @kwarg LatLon_kwds: Optional, additional B{C{LatLon}} keyword\n                           arguments, ignored if C{B{LatLon} is None}.\n\n       @return: Closest point, a B{C{LatLon}} instance or if C{B{LatLon}\n                is None}, a L{LatLon4Tuple}C{(lat, lon, height, datum)}.\n\n       @raise ImportError: Package U{geographiclib\n                           <https://PyPI.org/project/geographiclib>}\n                           not installed or not found.\n\n       @raise TypeError: Invalid or non-ellipsoidal B{C{point}}, B{C{point1}}\n                         or B{C{point2}} or invalid B{C{equidistant}}.\n\n       @raise ValueError: No convergence for the B{C{tol}}.\n\n       @see: U{The B{ellipsoidal} case<https://GIS.StackExchange.com/questions/48937/\n             calculating-intersection-of-two-circles>} and U{Karney's paper\n             <https://ArXiv.org/pdf/1102.1215.pdf>}, pp 20-21, section B{14. MARITIME\n             BOUNDARIES} for more details about the iteration algorithm.\n    '''\n    return _nearestOn(point, point1, point2, within=within, height=height, wrap=wrap,\n                      equidistant=equidistant, tol=tol, LatLon=LatLon, **LatLon_kwds)\n\n\ndef perimeterOf(points, closed=False, datum=_WGS84, wrap=True):\n    '''Compute the perimeter of an (ellipsoidal) polygon or composite using I{Karney}'s\n       U{geographiclib<https://PyPI.org/project/geographiclib>} package.\n\n       @arg points: The polygon points (L{LatLon}[], L{BooleanFHP} or L{BooleanGH}).\n       @kwarg closed: Optionally, close the polygon (C{bool}).\n       @kwarg datum: Optional datum (L{Datum}).\n       @kwarg wrap: If C{True}, wrap or I{normalize} and unroll the B{C{points}} (C{bool}).\n\n       @return: Perimeter (C{meter}, same as units of the B{C{datum}}'s ellipsoid axes).\n\n       @raise ImportError: Package U{geographiclib<https://PyPI.org/project/geographiclib>}\n                           not installed or not found.\n\n       @raise PointsError: Insufficient number of B{C{points}}.\n\n       @raise TypeError: Some B{C{points}} are not L{LatLon} or C{B{closed}=False} with\n                         B{C{points}} a composite.\n\n       @raise ValueError: Invalid C{B{wrap}=False}, unwrapped, unrolled longitudes not\n                          supported or C{B{closed}=False} with C{B{points}} a composite.\n\n       @see: Functions L{pygeodesy.perimeterOf}, L{ellipsoidalExact.perimeterOf},\n             L{ellipsoidalGeodSolve.perimeterOf}, L{sphericalNvector.perimeterOf}\n             and L{sphericalTrigonometry.perimeterOf}.\n    '''\n    return _polygon(datum.ellipsoid.geodesic, points, closed, True, wrap, False)\n\n\n__all__ += _ALL_OTHER(Cartesian, LatLon,  # classes\n                      areaOf, intersecant2,  # from .ellipsoidalBase\n                      intersection3, intersections2, isclockwise, ispolar,\n                      nearestOn, perimeterOf)\n\n# **) MIT License\n#\n# Copyright (C) 2016-2026 -- mrJean1 at Gmail -- All Rights Reserved.\n#\n# Permission is hereby granted, free of charge, to any person obtaining a\n# copy of this software and associated documentation files (the \"Software\"),\n# to deal in the Software without restriction, including without limitation\n# the rights to use, copy, modify, merge, publish, distribute, sublicense,\n# and/or sell copies of the Software, and to permit persons to whom the\n# Software is furnished to do so, subject to the following conditions:\n#\n# The above copyright notice and this permission notice shall be included\n# in all copies or substantial portions of the Software.\n#\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL\n# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR\n# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\n# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n# OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "pygeodesy/ellipsoidalNvector.py",
    "content": "\n# -*- coding: utf-8 -*-\n\nu'''Ellipsoidal, C{N-vector}-based geodesy.\n\nEllipsoidal classes geodetic L{LatLon}, geocentric (ECEF) L{Cartesian}\nand C{Nvector} and DEPRECATED L{Ned} and functions L{meanOf}, L{sumOf}\nand DEPRECATED L{toNed}.\n\nPure Python implementation of n-vector-based geodetic (lat-/longitude)\nmethods by I{(C) Chris Veness 2011-2024} published under the same MIT\nLicence**, see U{Vector-based geodesy\n<https://www.Movable-Type.co.UK/scripts/latlong-vectors.html>}.\n\nThese classes and functions work with: (a) geodetic lat-/longitude points on\nthe earth's surface and (b) 3-D vectors used as n-vectors representing points\non the earth's surface or vectors normal to the plane of a great circle.\n\nSee also I{Kenneth Gade} U{'A Non-singular Horizontal Position Representation'\n<https://www.NavLab.net/Publications/A_Nonsingular_Horizontal_Position_Representation.pdf>},\nThe Journal of Navigation (2010), vol 63, nr 3, pp 395-417.\n'''\n# make sure int/int division yields float quotient, see .basics\nfrom __future__ import division as _; del _  # noqa: E702 ;\n\nfrom pygeodesy.basics import _isin, issubclassof, map2, _xinstanceof, \\\n                             _xsubclassof\nfrom pygeodesy.datums import _earth_ellipsoid, _ellipsoidal_datum, _WGS84\n# from pygeodesy.dms import F_D, toDMS  # _MODS\n# from pygeodesy.ecef import EcefVeness  # _MODS\nfrom pygeodesy.ellipsoidalBase import CartesianEllipsoidalBase, \\\n                                     _nearestOn, LatLonEllipsoidalBase, \\\n                                     _TOL_M,  _Wrap\nfrom pygeodesy.errors import _xkwds, _xkwds_pop2\nfrom pygeodesy.fmath import fdot,  fabs\n# from pygeodesy.formy import _isequalTo  # _MODS\nfrom pygeodesy.interns import _Nv00_, _COMMASPACE_,  _pole_  # PYCHOK used!\nfrom pygeodesy.lazily import _ALL_LAZY, _ALL_MODS as _MODS, _ALL_OTHER\n# from pygeodesy.ltp import Ltp  # _MODS\nfrom pygeodesy.ltpTuples import Aer as _Aer, Ned as _Ned, Ned4Tuple, \\\n                                sincos2d_, _xnamed\n# from pygeodesy.named import _xnamed  # from .ltpTuples\nfrom pygeodesy.nvectorBase import LatLonNvectorBase, NorthPole, NvectorBase, \\\n                                  sumOf as _sumOf\nfrom pygeodesy.props import deprecated_class, deprecated_function, \\\n                            deprecated_method, Property_RO, property_RO\nfrom pygeodesy.streprs import Fmt, fstr, _xzipairs\nfrom pygeodesy.units import Bearing, Distance, Height, Scalar\n# from pygeodesy.utily import sincos2d_, _Wrap  # from .ltpTuples, .ellipsoidalBase\n\n# from math import fabs  # from .nvectorBase\n\n__all__ = _ALL_LAZY.ellipsoidalNvector\n__version__ = '25.05.12'\n\n\nclass Ned(_Ned):\n    '''DEPRECATED on 2024.02.04, use class L{pygeodesy.Ned}.'''\n\n    def __init__(self, north, east, down, **name):\n        deprecated_class(self.__class__)\n        _Ned.__init__(self, north, east, down, **name)\n\n    @deprecated_method  # PYCHOK expected\n    def toRepr(self, prec=None, fmt=Fmt.SQUARE, sep=_COMMASPACE_, **unused):\n        '''DEPRECATED, use class L{pygeodesy.Ned}.\n\n           @kwarg prec: Number of (decimal) digits, unstripped (C{int}).\n           @kwarg fmt: Enclosing backets format (C{str}).\n           @kwarg sep: Separator between NEDs (C{str}).\n\n           @return: This Ned as \"[L:f, B:degrees360, E:degrees90]\" (C{str})\n                    with length or slantrange C{L}, bearing or azimuth C{B}\n                    and elevation C{E}.\n        '''\n        m = _MODS.dms\n        t = (fstr(self.slantrange, prec=prec),\n             m.toDMS(self.azimuth,   form=m.F_D, prec=prec, ddd=0),\n             m.toDMS(self.elevation, form=m.F_D, prec=prec, ddd=0))\n        return _xzipairs('LBE', t, sep=sep, fmt=fmt)\n\n\nclass Cartesian(CartesianEllipsoidalBase):\n    '''Extended to convert geocentric, L{Cartesian} points to\n       C{Nvector} and n-vector-based, geodetic L{LatLon}.\n    '''\n    @property_RO\n    def Ecef(self):\n        '''Get the ECEF I{class} (L{EcefVeness}), I{once}.\n        '''\n        return _Ecef()\n\n    def toLatLon(self, **LatLon_and_kwds):  # PYCHOK LatLon=LatLon, datum=None\n        '''Convert this cartesian to an C{Nvector}-based geodetic point.\n\n           @kwarg LatLon_and_kwds: Optional L{LatLon}, B{C{datum}} and other\n                                   keyword arguments.  Use C{B{LatLon}=...} to\n                                   override this L{LatLon} class or specify\n                                   C{B{LatLon} is None}.\n\n           @return: The geodetic point (L{LatLon}) or if C{B{LatLon} is None},\n                    an L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n                    with C{C} and C{M} if available.\n\n           @raise TypeError: Invalid B{C{LatLon_and_kwds}}.\n        '''\n        kwds = _xkwds(LatLon_and_kwds, LatLon=LatLon, datum=self.datum)\n        return CartesianEllipsoidalBase.toLatLon(self, **kwds)\n\n    def toNvector(self, **Nvector_and_kwds):  # PYCHOK Datums.WGS84\n        '''Convert this cartesian to C{Nvector} components, I{including height}.\n\n           @kwarg Nvector_and_kwds: Optional C{Nvector}, B{C{datum}} and other\n                                    keyword arguments.  Use C{B{Nvector}=...} to\n                                    override this C{Nvector} class or specify\n                                    C{B{Nvector} is None}.\n\n           @return: The C{n-vector} components (C{Nvector}) or if C{B{Nvector}\n                    is None}, a L{Vector4Tuple}C{(x, y, z, h)}.\n\n           @raise TypeError: Invalid B{C{Nvector_and_kwds}}.\n        '''\n        kwds = _xkwds(Nvector_and_kwds, Nvector=Nvector, datum=self.datum)\n        return CartesianEllipsoidalBase.toNvector(self, **kwds)\n\n\nclass LatLon(LatLonNvectorBase, LatLonEllipsoidalBase):\n    '''An n-vector-based, ellipsoidal L{LatLon} point.\n    '''\n    _Nv = None  # cached toNvector (C{Nvector})\n\n    def _update(self, updated, *attrs, **setters):  # PYCHOK args\n        '''(INTERNAL) Zap cached attributes if updated.\n        '''\n        if updated:\n            LatLonNvectorBase._update(self, updated, _Nv=self._Nv)  # special case\n            LatLonEllipsoidalBase._update(self, updated, *attrs, **setters)\n\n#     def crossTrackDistanceTo(self, start, end, radius=R_M):\n#         '''Return the (signed) distance from this point to the great\n#            circle defined by a start point and an end point or bearing.\n#\n#            @arg start: Start point of great circle line (L{LatLon}).\n#            @arg end: End point of great circle line (L{LatLon}) or\n#                      initial bearing (compass C{degrees360}) at the\n#                      start point.\n#            @kwarg radius: Mean earth radius (C{meter}).\n#\n#            @return: Distance to great circle, negative if to left or\n#                     positive if to right of line (C{meter}, same units\n#                     as B{C{radius}}).\n#\n#            @raise TypeError: If B{C{start}} or B{C{end}} point is not L{LatLon}.\n#         '''\n#         self.others(start=start)\n#\n#         if _isDegrees(end):  # gc from point and bearing\n#             gc = start.greatCircle(end)\n#         else:  # gc by two points\n#             gc = start.toNvector().cross(end.toNvector())\n#\n#         # (signed) angle between point and gc normal vector\n#         v =  self.toNvector()\n#         a =  gc.angleTo(v, vSign=v.cross(gc))\n#         a = _copysign(PI_2, a) - a\n#         return a * float(radius)\n\n    def deltaTo(self, other, wrap=False, **Ned_and_kwds):\n        '''Calculate the local delta from this to an other point.\n\n           @note: This is a linear delta, I{unrelated} to a geodesic on the\n                  ellipsoid.\n\n           @arg other: The other point (L{LatLon}).\n           @kwarg wrap: If C{True}, wrap or I{normalize} the B{C{other}}\n                        point (C{bool}).\n           @kwarg Ned_and_kwds: Optional C{B{Ned}=L{Ned} class and B{name}=NN}\n                          to return delta and other B{C{Ned}} keyword arguments.\n\n           @return: Delta from this to the other point (B{C{Ned}}).\n\n           @raise TypeError: The B{C{other}} point is not L{LatLon} or B{C{Ned}}\n                             is not an L{Ned4Tuple<pygeodesy.Ned4Tuple>} nor an\n                             L{Ned<pygeodesy.Ned>} nor a DEPRECATED L{Ned}.\n\n           @raise ValueError: If ellipsoids are incompatible.\n        '''\n        self.ellipsoids(other)  # throws TypeError and ValueError\n\n        p = self.others(other)\n        if wrap:\n            p = _Wrap.point(p)\n        # get delta in cartesian frame\n        dc = p.toCartesian().minus(self.toCartesian())\n        # rotate dc to get delta in n-vector reference\n        # frame using the rotation matrix row vectors\n        ned_ = map2(dc.dot, self._rotation3)\n\n        N, kwds = _xkwds_pop2(Ned_and_kwds, Ned=Ned)\n        if issubclassof(N, Ned4Tuple):\n            ned_ += _MODS.ltp.Ltp(self, ecef=self.Ecef(self.datum)),\n        else:\n            _xsubclassof(_Ned, Ned4Tuple, Ned=N)\n        return N(*ned_, **_xkwds(kwds, name=self.name))\n\n#     def destination(self, distance, bearing, radius=R_M, height=None):\n#         '''Return the destination point after traveling from this\n#            point the given distance on the given initial bearing.\n#\n#            @arg distance: Distance traveled (C{meter}, same units as\n#                           given earth B{C{radius}}).\n#            @arg bearing: Initial bearing (compass C{degrees360}).\n#            @kwarg radius: Mean earth radius (C{meter}).\n#            @kwarg height: Optional height at destination point,\n#                           overriding default (C{meter}, same units\n#                           as B{C{radius}}).\n#\n#            @return: Destination point (L{LatLon}).\n#         '''\n#         r = _m2radians(distance, radius)  # angular distance in radians\n#         # great circle by starting from this point on given bearing\n#         gc = self.greatCircle(bearing)\n#\n#         v1 = self.toNvector()\n#         x = v1.times(cos(r))  # component of v2 parallel to v1\n#         y = gc.cross(v1).times(sin(r))  # component of v2 perpendicular to v1\n#\n#         v2 = x.plus(y).unit()\n#         return v2.toLatLon(height=self._heigHt(height))\n\n    def destinationNed(self, delta):\n        '''Calculate the destination point using the supplied NED delta\n           from this point.\n\n           @arg delta: Delta from this to the other point in the local\n                       tangent plane (LTP) of this point (L{Ned}).\n\n           @return: Destination point (L{LatLon}).\n\n           @raise TypeError: If B{C{delta}} is not an L{Ned<pygeodesy.Ned>}\n                             or a DEPRECATED L{Ned}.\n        '''\n        _xinstanceof(_Ned, delta=delta)\n\n        nv, ev, dv = self._rotation3\n        # convert NED delta to standard coordinate frame of n-vector\n        dn = delta.ned[:3]  # XXX Ned4Tuple.to3Tuple\n        # rotate dn to get delta in cartesian (ECEF) coordinate\n        # reference frame using the rotation matrix column vectors\n        dc = Cartesian(fdot(dn, nv.x, ev.x, dv.x),\n                       fdot(dn, nv.y, ev.y, dv.y),\n                       fdot(dn, nv.z, ev.z, dv.z))\n\n        # apply (cartesian) delta to this Cartesian to obtain destination as cartesian\n        v = self.toCartesian().plus(dc)\n        return v.toLatLon(datum=self.datum, LatLon=self.classof)  # Cartesian(v.x, v.y, v.z).toLatLon(...)\n\n    def distanceTo(self, other, radius=None, wrap=False):\n        '''I{Approximate} the distance from this to an other point.\n\n           @arg other: The other point (L{LatLon}).\n           @kwarg radius: Mean earth radius, ellipsoid or datum (C{meter},\n                          L{Ellipsoid}, L{Ellipsoid2}, L{Datum} or\n                          L{a_f2Tuple}), overriding the mean radius C{R1}\n                          of this point's datum..\n           @kwarg wrap: If C{True}, wrap or I{normalize} and unroll the\n                        B{C{other}} and angular distance (C{bool}).\n\n           @return: Distance (C{meter}, same units as B{C{radius}}).\n\n           @raise TypeError: The B{C{other}} point is not L{LatLon}.\n\n           @raise ValueError: Invalid B{C{radius}}.\n        '''\n        p = self.others(other)\n        if wrap:\n            p = _Wrap.point(p)\n        a = self._N_vector.angleTo(p._N_vector, wrap=wrap)\n        E = self.datum.ellipsoid if radius is None else _earth_ellipsoid(radius)\n        return fabs(a) * E.R1  # see .utily.radians2m\n\n    @property_RO\n    def Ecef(self):\n        '''Get the ECEF I{class} (L{EcefVeness}), I{once}.\n        '''\n        return _Ecef()\n\n    @deprecated_method\n    def equals(self, other, eps=None):  # PYCHOK no cover\n        '''DEPRECATED, use method L{isequalTo}.\n        '''\n        return self.isequalTo(other, eps=eps)\n\n    def isequalTo(self, other, eps=None):\n        '''Compare this point with an other point.\n\n           @arg other: The other point (L{LatLon}).\n           @kwarg eps: Optional margin (C{float}).\n\n           @return: C{True} if points are identical, including\n                    datum, I{ignoring height}, C{False} otherwise.\n\n           @raise TypeError: The B{C{other}} point is not L{LatLon}.\n\n           @raise ValueError: Invalid B{C{eps}}.\n\n           @see: Method C{isequalTo3} to include I{height}.\n        '''\n        return self.datum == self.others(other).datum and \\\n              _MODS.formy._isequalTo(self, other, eps=eps)\n\n#     def greatCircle(self, bearing):\n#         '''Return the great circle heading on the given bearing\n#            from this point.\n#\n#            Direction of vector is such that initial bearing vector\n#            b = c × p, where p is representing this point.\n#\n#            @arg bearing: Bearing from this point (compass C{degrees360}).\n#\n#            @return: N-vector representing great circle (C{Nvector}).\n#         '''\n#         a, b, _ = self.philamheight\n#         t = radians(bearing)\n#\n#         sa, ca, sb, cb, st, ct = sincos2_(a, b, t)\n#         return self._xnamed(Nvector(sb * ct - sa * cb * st,\n#                                    -cb * ct - sa * sb * st,\n#                                     ca * st)\n\n#     def initialBearingTo(self, other, wrap=False):\n#         '''Return the initial bearing (forward azimuth) from\n#            this to an other point.\n#\n#            @arg other: The other point (L{LatLon}).\n#            @kwarg wrap: If C{True}, wrap or I{normalize}\n#                         and unroll the B{C{other}} (C{bool}).\n#\n#            @return: Initial bearing (compass C{degrees360}).\n#\n#            @raise TypeError: The B{C{other}} point is not L{LatLon}.\n#         '''\n#         p = self.others(other)\n#         if wrap:\n#             p = _Wrap.point(p)\n#         v1 = self.toNvector()\n#\n#         gc1 = v1.cross(p.toNvector())  # gc through v1 & v2\n#         gc2 = v1.cross(_NP3)  # gc through v1 & North pole\n#\n#         # bearing is (signed) angle between gc1 & gc2\n#         return degrees360(gc1.angleTo(gc2, vSign=v1))\n\n    def intermediateTo(self, other, fraction, height=None, wrap=False):\n        '''Return the point at given fraction between this and\n           an other point.\n\n           @arg other: The other point (L{LatLon}).\n           @arg fraction: Fraction between both points (C{scalar},\n                          0.0 at this to 1.0 at the other point.\n           @kwarg height: Optional height, overriding the fractional\n                          height (C{meter}).\n           @kwarg wrap: If C{True}, wrap or I{normalize} the\n                        B{C{other}} point (C{bool}).\n\n           @return: Intermediate point (L{LatLon}).\n\n           @raise TypeError: The B{C{other}} point is not L{LatLon}.\n        '''\n        p = self.others(other)\n        if wrap:\n            p = _Wrap.point(p)\n        f = Scalar(fraction=fraction)\n        h = self._havg(other, f=f, h=height)\n        i = self.toNvector().intermediateTo(p.toNvector(), f)\n        return i.toLatLon(height=h, LatLon=self.classof)  # Nvector(i.x, i.y, i.z).toLatLon(...)\n\n    @Property_RO\n    def _rotation3(self):\n        '''(INTERNAL) Get the rotation matrix from n-vector coordinate frame axes.\n        '''\n        nv = self.toNvector()  # local (n-vector) coordinate frame\n\n        dv = nv.negate()  # down, opposite to n-vector\n        ev = NorthPole.cross(nv, raiser=_pole_).unit()  # east, pointing perpendicular to the plane\n        nv = ev.cross(dv)  # north, by right hand rule\n        return nv, ev, dv  # matrix rows\n\n    def toCartesian(self, **Cartesian_and_kwds):  # PYCHOK Cartesian=Cartesian, datum=None\n        '''Convert this point to an C{Nvector}-based geodetic point.\n\n           @kwarg Cartesian_and_kwds: Optional L{Cartesian}, B{C{datum}} and other\n                                      keyword arguments.  Use C{B{Cartesian}=...}\n                                      to override this L{Cartesian} class or specify\n                                      C{B{Cartesian}=None}.\n\n           @return: The geodetic point (L{Cartesian}) or if C{B{Cartesian} is None},\n                    an L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)} with\n                    C{C} and C{M} if available.\n\n           @raise TypeError: Invalid B{C{Cartesian}} or other B{C{Cartesian_and_kwds}}.\n        '''\n        kwds = _xkwds(Cartesian_and_kwds, Cartesian=Cartesian, datum=self.datum)\n        return LatLonEllipsoidalBase.toCartesian(self, **kwds)\n\n    def toNvector(self, **Nvector_and_kwds):  # PYCHOK signature\n        '''Convert this point to C{Nvector} components, I{including height}.\n\n           @kwarg Nvector_and_kwds: Optional C{Nvector}, B{C{datum}} and other\n                                    keyword arguments.  Use C{B{Nvector}=...}\n                                    to override this C{Nvector} class or specify\n                                    C{B{Nvector}=None}.\n\n           @return: The C{n-vector} components (C{Nvector}) or if B{C{Nvector}}\n                    is set to C{None}, a L{Vector4Tuple}C{(x, y, z, h)}.\n\n           @raise TypeError: Invalid B{C{Nvector}} or other B{C{Nvector_and_kwds}}.\n        '''\n        kwds = _xkwds(Nvector_and_kwds, Nvector=Nvector, datum=self.datum)\n        return LatLonNvectorBase.toNvector(self, **kwds)\n\n\n_Nv00 = LatLon(0, 0, name=_Nv00_)  # reference instance (L{LatLon})\n\n\nclass Nvector(NvectorBase):\n    '''An n-vector is a position representation using a (unit) vector\n       normal to the earth ellipsoid.  Unlike lat-/longitude points,\n       n-vectors have no singularities or discontinuities.\n\n       For many applications, n-vectors are more convenient to work\n       with than other position representations like lat-/longitude,\n       earth-centred earth-fixed (ECEF) vectors, UTM coordinates, etc.\n\n       Note commonality with L{pygeodesy.sphericalNvector.Nvector}.\n    '''\n    _datum = _WGS84  # default datum (L{Datum})\n\n    def __init__(self, x_xyz, y=None, z=None, h=0, datum=None, ll=None, **name):\n        '''New n-vector normal to the earth's surface.\n\n           @arg x_xyz: X component of vector (C{scalar}) or (3-D) vector\n                       (C{Nvector}, L{Vector3d}, L{Vector3Tuple} or\n                       L{Vector4Tuple}).\n           @kwarg y: Y component of vector (C{scalar}), ignored if B{C{x_xyz}}\n                     is not C{scalar}, otherwise same units as B{C{x_xyz}}.\n           @kwarg z: Z component of vector (C{scalar}), ignored if B{C{x_xyz}}\n                     is not C{scalar}, otherwise same units as B{C{x_xyz}}.\n           @kwarg h: Optional height above model surface (C{meter}).\n           @kwarg datum: Optional datum this n-vector is defined in\n                         (L{Datum}, L{Ellipsoid}, L{Ellipsoid2} or\n                         L{a_f2Tuple}).\n           @kwarg ll: Optional, original latlon (C{LatLon}).\n           @kwarg name: Optional C{B{name}=NN} (C{str}).\n\n           @raise TypeError: If B{C{datum}} is not a L{Datum}.\n        '''\n        NvectorBase.__init__(self, x_xyz, y=y, z=z, h=h, ll=ll, **name)\n        if not _isin(datum, None, self._datum):\n            self._datum = _ellipsoidal_datum(datum, **name)\n\n    @Property_RO\n    def datum(self):\n        '''Get this n-vector's datum (L{Datum}).\n        '''\n        return self._datum\n\n    @property_RO\n    def ellipsoidalNvector(self):\n        '''Get this C{Nvector}'s ellipsoidal class.\n        '''\n        return type(self)\n\n    def toCartesian(self, **Cartesian_and_kwds):  # PYCHOK Cartesian=Cartesian\n        '''Convert this n-vector to C{Nvector}-based cartesian (ECEF) coordinates.\n\n           @kwarg Cartesian_and_kwds: Optional L{Cartesian}, B{C{h}}, B{C{datum}} and\n                                      other keyword arguments.  Use C{B{Cartesian}=...}\n                                      to override this L{Cartesian} class or specify\n                                      C{B{Cartesian} is None}.\n\n           @return: The cartesian point (L{Cartesian}) or if C{B{Cartesian} is None},\n                    an L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)} with\n                    C{C} and C{M} if available.\n\n           @raise TypeError: Invalid B{C{Cartesian_and_kwds}}.\n        '''\n        kwds = _xkwds(Cartesian_and_kwds, h=self.h, Cartesian=Cartesian,\n                                                        datum=self.datum)\n        return NvectorBase.toCartesian(self, **kwds)  # class or .classof\n\n    def toLatLon(self, **LatLon_and_kwds):  # PYCHOK height=None, LatLon=LatLon\n        '''Convert this n-vector to an C{Nvector}-based geodetic point.\n\n           @kwarg LatLon_and_kwds: Optional L{LatLon}, B{C{height}}, B{C{datum}}\n                                   and other keyword arguments.  Use C{B{LatLon}=...}\n                                   to override this L{LatLon} class or specify\n                                   C{B{LatLon} is None}.\n\n           @return: The geodetic point (L{LatLon}) or if C{B{LatLon} is None},\n                    an L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n                    with C{C} and C{M} if available.\n\n           @raise TypeError: Invalid B{C{LatLon_and_kwds}}.\n        '''\n        kwds = _xkwds(LatLon_and_kwds, height=self.h, datum=self.datum, LatLon=LatLon)\n        return NvectorBase.toLatLon(self, **kwds)  # class or .classof\n\n    def unit(self, ll=None):\n        '''Normalize this vector to unit length.\n\n           @kwarg ll: Optional, original latlon (C{LatLon}).\n\n           @return: Normalised vector (C{Nvector}).\n        '''\n        u = NvectorBase.unit(self, ll=ll)\n        if u.datum != self.datum:\n            u._update(False, datum=self.datum)\n        return u\n\n\ndef _Ecef():\n    # return the Ecef class and overwrite property_RO\n    Cartesian.Ecef = LatLon.Ecef = E = _MODS.ecef.EcefVeness\n    return E\n\n\ndef meanOf(points, datum=_WGS84, height=None, wrap=False,\n                                            **LatLon_and_kwds):\n    '''Compute the geographic mean of several points.\n\n       @arg points: Points to be averaged (L{LatLon}[]).\n       @kwarg datum: Optional datum to use (L{Datum}).\n       @kwarg height: Optional height at mean point, overriding the mean\n                      height (C{meter}).\n       @kwarg wrap: If C{True}, wrap or I{normalize} B{C{points}} (C{bool}).\n       @kwarg LatLon_and_kwds: Optional B{C{LatLon}} class to return the mean\n                     points (or C{None}) and additional B{C{LatLon}} keyword\n                     arguments, ignored if C{B{LatLon} is None}.\n\n       @return: Geographic mean point and height (B{C{LatLon}}) or if C{B{LatLon}\n                is None}, an L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M,\n                datum)} with C{C} and C{M} if available.\n\n       @raise ValueError: Insufficient number of B{C{points}}.\n    '''\n    Ps = _Nv00.PointsIter(points, wrap=wrap)\n    n  =  sumOf(p._N_vector for p in Ps.iterate(closed=False))\n    return n.toLatLon(**_xkwds(LatLon_and_kwds, height=height, datum=datum,\n                                                LatLon=LatLon, name__=meanOf))\n\n\ndef nearestOn(point, point1, point2, within=True, height=None, wrap=False,\n              equidistant=None, tol=_TOL_M, LatLon=LatLon, **LatLon_kwds):\n    '''I{Iteratively} locate the closest point on the geodesic between\n       two other (ellipsoidal) points.\n\n       @arg point: Reference point (C{LatLon}).\n       @arg point1: Start point of the geodesic (C{LatLon}).\n       @arg point2: End point of the geodesic (C{LatLon}).\n       @kwarg within: If C{True}, return the closest point I{between}\n                      B{C{point1}} and B{C{point2}}, otherwise the\n                      closest point elsewhere on the geodesic (C{bool}).\n       @kwarg height: Optional height for the closest point (C{meter},\n                      conventionally) or C{None} or C{False} for the\n                      interpolated height.  If C{False}, the closest\n                      takes the heights of the points into account.\n       @kwarg wrap: If C{True}, wrap or I{normalize} and unroll I{only}\n                    B{C{point1}} and B{C{point2}} (C{bool}).\n       @kwarg equidistant: An azimuthal equidistant projection (I{class}\n                           or function L{pygeodesy.equidistant}) or C{None}\n                           for the preferred C{B{point}.Equidistant}.\n       @kwarg tol: Convergence tolerance (C{meter}).\n       @kwarg LatLon: Optional class to return the closest point\n                      (L{LatLon}) or C{None}.\n       @kwarg LatLon_kwds: Optional, additional B{C{LatLon}} keyword\n                           arguments, ignored if C{B{LatLon} is None}.\n\n       @return: Closest point, a B{C{LatLon}} instance or if C{B{LatLon}\n                is None}, a L{LatLon4Tuple}C{(lat, lon, height, datum)}.\n\n       @raise ImportError: Package U{geographiclib\n                           <https://PyPI.org/project/geographiclib>}\n                           not installed or not found.\n\n       @raise TypeError: Invalid or non-ellipsoidal B{C{point}}, B{C{point1}}\n                         or B{C{point2}} or invalid B{C{equidistant}}.\n\n       @raise ValueError: No convergence for the B{C{tol}}.\n\n       @see: U{The B{ellipsoidal} case<https://GIS.StackExchange.com/questions/48937/\n             calculating-intersection-of-two-circles>} and U{Karney's paper\n             <https://ArXiv.org/pdf/1102.1215.pdf>}, pp 20-21, section B{14. MARITIME\n             BOUNDARIES} for more details about the iteration algorithm.\n    '''\n    return _nearestOn(point, point1, point2, within=within, height=height, wrap=wrap,\n                      equidistant=equidistant, tol=tol, LatLon=LatLon, **LatLon_kwds)\n\n\ndef sumOf(nvectors, Vector=Nvector, h=None, **Vector_kwds):\n    '''Return the vectorial sum of two or more n-vectors.\n\n       @arg nvectors: Vectors to be added (C{Nvector}[]).\n       @kwarg Vector: Optional class for the vectorial sum (C{Nvector}).\n       @kwarg h: Optional height, overriding the mean height (C{meter}).\n       @kwarg Vector_kwds: Optional, additional B{C{Vector}} keyword\n                           arguments, ignored if C{B{Vector} is None}.\n\n       @return: Vectorial sum (B{C{Vector}}).\n\n       @raise VectorError: No B{C{nvectors}}.\n    '''\n    return _sumOf(nvectors, Vector=Vector, h=h, **Vector_kwds)\n\n\n@deprecated_function\ndef toNed(distance, bearing, elevation, Ned=Ned, **name):\n    '''DEPRECATED, use L{pygeodesy.Aer}C{(bearing, elevation,\n       distance).xyzLocal.toNed(B{Ned}, name=B{name})} or\n       L{XyzLocal}C{(pygeodesy.Aer(bearing, elevation,\n       distance)).toNed(B{Ned}, name=B{name})}.\n\n       Create an NED vector from distance, bearing and elevation\n       (in local coordinate system).\n\n       @arg distance: NED vector length (C{meter}).\n       @arg bearing: NED vector bearing (compass C{degrees360}).\n       @arg elevation: NED vector elevation from local coordinate\n                       frame horizontal (C{degrees}).\n       @kwarg Ned: Optional class to return the NED (C{Ned}) or\n                   C{None}.\n       @kwarg name: Optional C{B{name}=NN} (C{str}).\n\n       @return: An NED vector equivalent to this B{C{distance}},\n                B{C{bearing}} and B{C{elevation}} (DEPRECATED L{Ned})\n                or a DEPRECATED L{Ned3Tuple}C{(north, east, down)}\n                if C{B{Ned} is None}.\n\n       @raise ValueError: Invalid B{C{distance}}, B{C{bearing}}\n                          or B{C{elevation}}.\n    '''\n    if True:  # use new Aer class\n        n, e, d, _ = _Aer(bearing, elevation, distance).xyz4\n    else:  # DEPRECATED\n        d = Distance(distance)\n\n        sb, cb, se, ce = sincos2d_(Bearing(bearing),\n                                   Height(elevation=elevation))\n        n  = cb * d * ce\n        e  = sb * d * ce\n        d *= se\n\n    r = _MODS.deprecated.classes.Ned3Tuple(n, e, -d) if Ned is None else \\\n                                       Ned(n, e, -d)\n    return _xnamed(r, name)\n\n\n__all__ += _ALL_OTHER(Cartesian, LatLon, Ned, Nvector,  # classes\n                      meanOf, sumOf, toNed)\n\n# **) MIT License\n#\n# Copyright (C) 2016-2026 -- mrJean1 at Gmail -- All Rights Reserved.\n#\n# Permission is hereby granted, free of charge, to any person obtaining a\n# copy of this software and associated documentation files (the \"Software\"),\n# to deal in the Software without restriction, including without limitation\n# the rights to use, copy, modify, merge, publish, distribute, sublicense,\n# and/or sell copies of the Software, and to permit persons to whom the\n# Software is furnished to do so, subject to the following conditions:\n#\n# The above copyright notice and this permission notice shall be included\n# in all copies or substantial portions of the Software.\n#\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL\n# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR\n# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\n# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n# OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "pygeodesy/ellipsoidalVincenty.py",
    "content": "\n# -*- coding: utf-8 -*-\n\nu'''Ellipsoidal, I{Vincenty}-based geodesy.\n\nI{Thaddeus Vincenty}'s geodetic (lat-/longitude) L{LatLon}, geocentric\n(ECEF) L{Cartesian} and L{VincentyError} classes and functions L{areaOf},\nL{intersections2}, L{nearestOn} and L{perimeterOf}.\n\nPure Python implementation of geodesy tools for ellipsoidal earth models,\ntranscoded from JavaScript originals by I{(C) Chris Veness 2005-2024}\nand published under the same MIT Licence**, see U{Vincenty geodesics\n<https://www.Movable-Type.co.UK/scripts/LatLongVincenty.html>}.  More\nat U{geographiclib<https://PyPI.org/project/geographiclib>} and\nU{GeoPy<https://PyPI.org/project/geopy>}.\n\nCalculate geodesic distance between two points using the U{Vincenty\n<https://WikiPedia.org/wiki/Vincenty's_formulae>} formulae and one of\nseveral ellipsoidal earth models.  The default model is WGS-84, the\nmost widely used globally-applicable model for the earth ellipsoid.\n\nOther ellipsoids offering a better fit to the local geoid include Airy\n(1830) in the UK, Clarke (1880) in Africa, International 1924 in much\nof Europe, and GRS-67 in South America.  North America (NAD83) and\nAustralia (GDA) use GRS-80, which is equivalent to the WGS-84 model.\n\nGreat-circle distance uses a I{spherical} model of the earth with the\nmean earth radius defined by the International Union of Geodesy and\nGeophysics (IUGG) as M{(2 * a + b) / 3 = 6371008.7714150598} or about\n6,371,009 meter (for WGS-84, resulting in an error of up to about 0.5%).\n\nHere's an example usage of C{ellipsoidalVincenty}:\n\n    >>> from pygeodesy.ellipsoidalVincenty import LatLon\n    >>> Newport_RI = LatLon(41.49008, -71.312796)\n    >>> Cleveland_OH = LatLon(41.499498, -81.695391)\n    >>> Newport_RI.distanceTo(Cleveland_OH)\n    866,455.4329158525  # meter\n\nTo change the ellipsoid model used by the Vincenty formulae use:\n\n    >>> from pygeodesy import Datums\n    >>> from pygeodesy.ellipsoidalVincenty import LatLon\n    >>> p = LatLon(0, 0, datum=Datums.OSGB36)\n\nor by converting to anothor datum:\n\n    >>> p = p.toDatum(Datums.OSGB36)\n'''\n# make sure int/int division yields float quotient, see .basics\nfrom __future__ import division as _; del _  # noqa: E702 ;\n\nfrom pygeodesy.constants import EPS, EPS0, _0_0, _1_0, _2_0, _3_0, _4_0, _6_0\n# from pygeodesy.ecef import EcefVeness  # _MODS\nfrom pygeodesy.ellipsoidalBase import CartesianEllipsoidalBase, _nearestOn\nfrom pygeodesy.ellipsoidalBaseDI import LatLonEllipsoidalBaseDI, \\\n                                       _intersection3, _intersections2, \\\n                                       _TOL_M, intersecant2\n# from pygeodesy.ellipsoidalExact import areaOf, perimeterOf  # _MODS\n# from pygeodesy.ellipsoidalKarney import areaOf, perimeterOf  # _MODS\nfrom pygeodesy.errors import _and, _ValueError, _xkwds\nfrom pygeodesy.fmath import fdot_, Fpolynomial, hypot, hypot1\nfrom pygeodesy.interns import _ambiguous_, _antipodal_, _COLONSPACE_, \\\n                              _to_, _SPACE_,  _limit_  # PYCHOK used!\nfrom pygeodesy.lazily import _ALL_DOCS, _ALL_LAZY, _ALL_MODS as _MODS\nfrom pygeodesy.namedTuples import Destination2Tuple, Destination3Tuple, \\\n                                  Distance3Tuple\nfrom pygeodesy.points import Fmt, ispolar  # PYCHOK exported\nfrom pygeodesy.props import deprecated_function, deprecated_method, \\\n                            property_doc_, property_RO\n# from pygeodesy.streprs import Fmt  # from .points\nfrom pygeodesy.units import Number_, Scalar_\nfrom pygeodesy.utily import atan2, atan2b, atan2d, sincos2, sincos2d, \\\n                            unroll180, wrap180\n\nfrom math import cos, degrees, fabs, radians, tan as _tan\n\n__all__ = _ALL_LAZY.ellipsoidalVincenty\n__version__ = '25.05.26'\n\n_antipodal_to_ = _SPACE_(_antipodal_, _to_)\n\n\nclass VincentyError(_ValueError):\n    '''Error raised by I{Vincenty}'s C{Direct} and C{Inverse} methods\n       for coincident points or lack of convergence.\n    '''\n    pass\n\n\nclass Cartesian(CartesianEllipsoidalBase):\n    '''Extended to convert geocentric, L{Cartesian} points to\n       Vincenty-based, ellipsoidal, geodetic L{LatLon}.\n    '''\n    @property_RO\n    def Ecef(self):\n        '''Get the ECEF I{class} (L{EcefVeness}), I{once}.\n        '''\n        return _Ecef()\n\n    def toLatLon(self, **LatLon_and_kwds):  # PYCHOK LatLon=LatLon, datum=None\n        '''Convert this cartesian point to a C{Vincenty}-based geodetic point.\n\n           @kwarg LatLon_and_kwds: Optional L{LatLon} and L{LatLon} keyword\n                                   arguments as C{datum}.  Use C{B{LatLon}=...,\n                                   B{datum}=...} to override this L{LatLon}\n                                   class or specify C{B{LatLon}=None}.\n\n           @return: The geodetic point (L{LatLon}) or if C{B{LatLon} is None},\n                    an L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n                    with C{C} and C{M} if available.\n\n           @raise TypeError: Invalid B{C{LatLon_and_kwds}} argument.\n        '''\n        kwds = _xkwds(LatLon_and_kwds, LatLon=LatLon, datum=self.datum)\n        return CartesianEllipsoidalBase.toLatLon(self, **kwds)\n\n\nclass LatLon(LatLonEllipsoidalBaseDI):\n    '''New point on an (oblate) ellipsoidal earth model, using the formulae devised\n       by U{I{Thaddeus Vincenty}<https://WikiPedia.org/wiki/Vincenty's_formulae>}\n       (1975) to compute geodesic distances, bearings (azimuths), etc.\n\n       Set the earth model to be used with the keyword argument datum.  The default\n       is C{Datums.WGS84}, which is the most globally accurate.  For other models,\n       see the L{Datums<pygeodesy.datums>}.\n\n       @note: This implementation of I{Vincenty} methods may not converge for some\n              valid points, raising a L{VincentyError}.  In that case, a result may\n              be obtained by increasing the tolerance C{epsilon} and/or iteration\n              C{limit}, see properties L{LatLon.epsilon} and L{LatLon.iterations}.\n    '''\n    _epsilon    = 1e-12  # radians, about 6 um\n#   _iteration  = None   # iteration number from .named._NamedBase\n    _iterations = 201    # 5, default max, 200 vs Veness' 1,000\n\n    @deprecated_method\n    def bearingTo(self, other, wrap=False):  # PYCHOK no cover\n        '''DEPRECATED, use method L{initialBearingTo} or L{bearingTo2}.\n        '''\n        return self.initialBearingTo(other, wrap=wrap)\n\n    @property_RO\n    def Ecef(self):\n        '''Get the ECEF I{class} (L{EcefVeness}), I{once}.\n        '''\n        return _Ecef()\n\n    @property_doc_(''' the convergence epsilon (C{radians}).''')\n    def epsilon(self):\n        '''Get the convergence epsilon (C{radians}).\n        '''\n        return self._epsilon\n\n    @epsilon.setter  # PYCHOK setter!\n    def epsilon(self, epsilon):\n        '''Set the convergence epsilon (C{radians}).\n\n           @raise TypeError: Non-scalar B{C{epsilon}}.\n\n           @raise ValueError: Out of bounds B{C{epsilon}}.\n        '''\n        self._epsilon = Scalar_(epsilon=epsilon)\n\n    @property_doc_(''' the iteration limit (C{int}).''')\n    def iterations(self):\n        '''Get the iteration limit (C{int}).\n        '''\n        return self._iterations - 1\n\n    @iterations.setter  # PYCHOK setter!\n    def iterations(self, limit):\n        '''Set the iteration limit (C{int}).\n\n           @raise TypeError: Non-scalar B{C{limit}}.\n\n           @raise ValueError: Out-of-bounds B{C{limit}}.\n        '''\n        self._iterations = Number_(limit, name=_limit_, low=4, high=1000) + 1\n\n    def toCartesian(self, **Cartesian_datum_kwds):  # PYCHOK Cartesian=Cartesian, datum=None\n        '''Convert this point to C{Vincenty}-based cartesian (ECEF) coordinates.\n\n           @kwarg Cartesian_datum_kwds: Optional L{Cartesian}, B{C{datum}} and other\n                            keyword arguments, ignored if C{B{Cartesian}=None}.  Use\n                            C{B{Cartesian}=...} to override this L{Cartesian} class\n                            or specify C{B{Cartesian}=None}.\n\n           @return: The cartesian point (L{Cartesian}) or if C{B{Cartesian} is None},\n                    an L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)} with\n                    C{C} and C{M} if available.\n\n           @raise TypeError: Invalid B{C{Cartesian}}, B{C{datum}} or other B{C{Cartesian_datum_kwds}}.\n        '''\n        kwds = _xkwds(Cartesian_datum_kwds, Cartesian=Cartesian,\n                                                datum=self.datum)\n        return LatLonEllipsoidalBaseDI.toCartesian(self, **kwds)\n\n    def _Direct(self, distance, bearing, llr, height):\n        '''(INTERNAL) Direct Vincenty method.\n\n           @raise TypeError: The B{C{other}} point is not L{LatLon}.\n\n           @raise ValueError: If this and the B{C{other}} point's L{Datum} ellipsoids are\n                              not compatible.\n\n           @raise VincentyError: Vincenty fails to converge for the current limits, see\n                                 L{epsilon<LatLon.epsilon>} and L{iterations<LatLon.iterations>}.\n        '''\n        E = self.ellipsoid()\n        f = E.f\n\n        sb, cb     =  sincos2d(bearing)\n        s1, c1, t1 = _sincostan3r(self.phi, f)\n\n        eps     =  self.epsilon\n        s12     =  atan2(t1, cb) * _2_0\n        sa, ca2 = _sincos22(c1 * sb)\n        A,  B   = _AB2(ca2 * E.e22)  # e22 == (a / b)**2 - 1\n        s = d   =  distance / (A * E.b)\n        for i in range(1, self._iterations):  # 1-origin\n            ss, cs  = sincos2(s)\n            c2sm, e = cos(s12 + s), s\n            s = _Ds(B, cs, ss, c2sm, d)\n            e =  fabs(s - e)\n            if e < eps:\n                self._iteration = i\n                break\n        else:\n            t = self._no_convergence(e)\n            raise VincentyError(t, txt=repr(self))  # self.toRepr()\n\n        t = fdot_(s1, ss, -c1, cs * cb)\n        # final bearing (reverse azimuth +/- 180)\n        d = atan2b(sa, -t)\n        if llr:\n            b = cb * ss\n            a = atan2d(fdot_(s1, cs, c1, b), hypot(sa, t) * E.b_a)\n            b = atan2d(sb * ss, fdot_(-s1, b, c1, cs)) + self.lon \\\n              - degrees(_Dl(f, ca2, sa, s, cs, ss, c2sm))\n            t = Destination3Tuple(a, wrap180(b), d)\n            r = self._Direct2Tuple(self.classof, height, t)\n        else:\n            r = Destination2Tuple(None, d, name=self.name)\n        r._iteration = i\n        return r\n\n    def _Inverse(self, other, wrap, azis=True):  # PYCHOK signature\n        '''(INTERNAL) Inverse Vincenty method.\n\n           @raise TypeError: The B{C{other}} point is not L{LatLon}.\n\n           @raise ValueError: If this and the B{C{other}} point's L{Datum}\n                              ellipsoids are not compatible.\n\n           @raise VincentyError: Vincenty fails to converge for the current\n                                 L{LatLon.epsilon} and L{LatLon.iterations}\n                                 limits and/or if this and the B{C{other}}\n                                 point are coincident or near-antipodal.\n        '''\n        E = self.ellipsoids(other)\n        f = E.f\n\n        s1, c1, _ = _sincostan3r( self.phi, f)\n        s2, c2, _ = _sincostan3r(other.phi, f)\n\n        c1c2, s1c2 = c1 * c2, s1 * c2\n        c1s2, s1s2 = c1 * s2, s1 * s2\n\n        eps  = self.epsilon\n        d, _ = unroll180(self.lon, other.lon, wrap=wrap)\n        dl   = ll = radians(d)\n        for i in range(1, self._iterations):  # 1-origin\n            sll, cll = sincos2(ll)\n\n            ss = hypot(c2 * sll, c1s2 - s1c2 * cll)\n            if ss < EPS:  # coincident or antipodal, ...\n                if self.isantipodeTo(other, eps=eps):\n                    t = self._is_to(other, True)\n                    raise VincentyError(_ambiguous_, txt=t)\n                self._iteration = i\n                # return zeros like Karney, unlike Veness\n                return Distance3Tuple(_0_0, 0, 0, iteration=i)\n\n            cs   = s1s2 + c1c2 * cll\n            s, e = atan2(ss, cs), ll\n            sa, ca2 = _sincos22(c1c2 * sll / ss)\n            if ca2:\n                c2sm =  cs - _2_0 * s1s2 / ca2\n                ll   = _Dl(f, ca2, sa, s, cs, ss, c2sm, dl)\n            else:  # equatorial line\n                ll   =  dl + f * sa * s\n            e = fabs(ll - e)\n            if e < eps:\n                self._iteration = i\n                break\n#           elif abs(ll) > PI and self.isantipodeTo(other, eps=eps):\n#               # omitted and applied *after* failure to converge below,\n#               # see footnote under Inverse <https://WikiPedia.org/wiki/\n#               # Vincenty's_formulae> and <https://GitHub.com/chrisveness/\n#               # geodesy/blob/master/latlon-ellipsoidal-vincenty.js>\n#               raise VincentyError(_ambiguous_, self._is_to(other, True))\n        else:\n            t = self._is_to(other, self.isantipodeTo(other, eps=eps))\n            raise VincentyError(self._no_convergence(e), txt=t)\n\n        if ca2:  # e22 == (a / b)**2 - 1\n            A,   B = _AB2(ca2 * E.e22)\n            s = -A * _Ds(B, cs, ss, c2sm, -s)\n\n        b = E.b\n#       if self.height or other.height:\n#           b += self._havg(other)\n        d = b * s\n\n        if azis:  # forward and reverse azimuth\n            s, c = sincos2(ll)\n            f = atan2b(c2 * s,  c1s2 - s1c2 * c)\n            r = atan2b(c1 * s, -s1c2 + c1s2 * c)\n        else:\n            f = r = _0_0  # NAN\n        return Distance3Tuple(d, f, r, name=self.name, iteration=i)\n\n    def _is_to(self, other, anti):\n        '''(INTERNAL) Return I{'<self> [antipodal] to <other>'} text (C{str}).\n        '''\n        t = _antipodal_to_ if anti else _to_\n        return _SPACE_(repr(self), t, repr(other))\n\n    def _no_convergence(self, e):\n        '''(INTERNAL) Return I{'no convergence (..): ...'} text (C{str}).\n        '''\n        t = (Fmt.PARENSPACED(*t) for t in ((LatLon.epsilon.name,    self.epsilon),\n                                           (LatLon.iterations.name, self.iterations)))\n        return _COLONSPACE_(Fmt.no_convergence(e), _and(*t))\n\n\ndef _AB2(u2):  # WGS84 e22 = 0.00673949674227643\n    # 2-Tuple C{(A, B)} polynomials\n    if u2:\n        A = Fpolynomial(u2, 16384, 4096, -768, 320, -175).fover(16384)\n        B = Fpolynomial(u2,     0,  256, -128,  74,  -47).fover( 1024)\n        return A, B\n    return _1_0, _0_0\n\n\ndef _c2sm2(c2sm):\n    # C{2 * c2sm**2 - 1}\n    return c2sm**2 * _2_0 - _1_0\n\n\ndef _Dl(f, ca2, sa, s, cs, ss, c2sm, dl=_0_0):\n    # C{Dl}\n    if f and sa:\n        C  = f * ca2 / _4_0\n        C *= f - C * _3_0 + _1_0\n        if C and ss:\n            s += C * ss * (c2sm +\n                 C * cs * _c2sm2(c2sm))\n        dl += (_1_0 - C) * f * sa * s\n    return dl\n\n\ndef _Ds(B, cs, ss, c2sm, d):\n    # C{Ds - d}\n    if B and ss:\n        c2sm2 = _c2sm2(c2sm)\n        ss2 = (ss**2 * _4_0 - _3_0) * (c2sm2 * _2_0 - _1_0)\n        B  *= ss * (c2sm + B / _4_0 * (c2sm2 * cs -\n                           B / _6_0 *  c2sm  * ss2))\n        d  += B\n    return d\n\n\ndef _Ecef():\n    # get the Ecef class and overwrite property_RO\n    Cartesian.Ecef = LatLon.Ecef = E = _MODS.ecef.EcefVeness\n    return E\n\n\ndef _ellipsoidalOf(_Of, points, **kwds):  # helper for DEPRECATED areaOf and perimeterOf\n    try:\n        r = getattr(_MODS.ellipsoidalKarney, _Of.__name__)(points, **kwds)\n    except ImportError:  # no geographiclib\n        r = getattr(_MODS.ellipsoidalExact, _Of.__name__)(points, **kwds)\n    return r\n\n\ndef _sincos22(sa):\n    # 2-Tuple C{(sin(a), cos(a)**2)}\n    ca2 = _1_0 - sa**2\n    return sa, (_0_0 if ca2 < EPS0 else ca2)  # XXX EPS?\n\n\ndef _sincostan3r(a, f):\n    # I{Reduced} 3-tuple C{(sin(B{a}), cos(B{a}), tan(B{a}))}\n    if a:  # see L{sincostan3}\n        t = (_1_0 - f) * _tan(a)\n        if t:\n            c = _1_0 / hypot1(t)\n            s =  c * t\n            return s, c, t\n    return _0_0, _1_0, _0_0\n\n\n@deprecated_function\ndef areaOf(points, **datum_wrap_polar):\n    '''DEPRECATED, use function L{ellipsoidalExact.areaOf} or L{ellipsoidalKarney.areaOf}.\n    '''\n    return _ellipsoidalOf(areaOf, points, **datum_wrap_polar)\n\n\ndef intersection3(start1, end1, start2, end2, height=None, wrap=False,  # was=True\n                  equidistant=None, tol=_TOL_M, LatLon=LatLon, **LatLon_kwds):\n    '''I{Iteratively} compute the intersection point of two lines, each defined\n       by two (ellipsoidal) points or by an (ellipsoidal) start point and an\n       (initial) bearing from North.\n\n       @arg start1: Start point of the first line (L{LatLon}).\n       @arg end1: End point of the first line (L{LatLon}) or the initial bearing\n                  at the first point (compass C{degrees360}).\n       @arg start2: Start point of the second line (L{LatLon}).\n       @arg end2: End point of the second line (L{LatLon}) or the initial bearing\n                  at the second point (compass C{degrees360}).\n       @kwarg height: Optional height at the intersection (C{meter}, conventionally)\n                      or C{None} for the mean height.\n       @kwarg wrap: If C{True}, wrap or I{normalize} and unroll the B{C{start2}}\n                    and B{C{end*}} points (C{bool}).\n       @kwarg equidistant: An azimuthal equidistant projection (I{class} or function\n                           L{pygeodesy.equidistant}) or C{None} for the preferred\n                           C{B{start1}.Equidistant}.\n       @kwarg tol: Tolerance for convergence and for skew line distance and length\n                   (C{meter}, conventionally).\n       @kwarg LatLon: Optional class to return the intersection points (L{LatLon})\n                      or C{None}.\n       @kwarg LatLon_kwds: Optional, additional B{C{LatLon}} keyword arguments,\n                           ignored if C{B{LatLon} is None}.\n\n       @return: An L{Intersection3Tuple}C{(point, outside1, outside2)} with C{point}\n                a B{C{LatLon}} or if C{B{LatLon} is None}, a L{LatLon4Tuple}C{(lat,\n                lon, height, datum)}.\n\n       @raise IntersectionError: Skew, colinear, parallel or otherwise\n                                 non-intersecting lines or no convergence\n                                 for the given B{C{tol}}.\n\n       @raise TypeError: Invalid or non-ellipsoidal B{C{start1}}, B{C{end1}},\n                         B{C{start2}} or B{C{end2}} or invalid B{C{equidistant}}.\n\n       @note: For each line specified with an initial bearing, a pseudo-end point\n              is computed as the C{destination} along that bearing at about 1.5\n              times the distance from the start point to an initial gu-/estimate\n              of the intersection point (and between 1/8 and 3/8 of the authalic\n              earth perimeter).\n\n       @see: U{The B{ellipsoidal} case<https://GIS.StackExchange.com/questions/48937/\n             calculating-intersection-of-two-circles>} and U{Karney's paper\n             <https://ArXiv.org/pdf/1102.1215.pdf>}, pp 20-21, section B{14. MARITIME\n             BOUNDARIES} for more details about the iteration algorithm.\n    '''\n    return _intersection3(start1, end1, start2, end2, height=height, wrap=wrap,\n                          equidistant=equidistant, tol=tol, LatLon=LatLon, **LatLon_kwds)\n\n\ndef intersections2(center1, radius1, center2, radius2, height=None, wrap=False,  # was=True\n                   equidistant=None, tol=_TOL_M, LatLon=LatLon, **LatLon_kwds):\n    '''I{Iteratively} compute the intersection points of two circles, each defined\n       by an (ellipsoidal) center point and a radius.\n\n       @arg center1: Center of the first circle (L{LatLon}).\n       @arg radius1: Radius of the first circle (C{meter}, conventionally).\n       @arg center2: Center of the second circle (L{LatLon}).\n       @arg radius2: Radius of the second circle (C{meter}, same units as\n                     B{C{radius1}}).\n       @kwarg height: Optional height for the intersection points (C{meter},\n                      conventionally) or C{None} for the I{\"radical height\"}\n                      at the I{radical line} between both centers.\n       @kwarg wrap: If C{True}, wrap or I{normalize} and unroll B{C{center2}}\n                    (C{bool}).\n       @kwarg equidistant: An azimuthal equidistant projection (I{class} or\n                           function L{pygeodesy.equidistant}) or C{None} for\n                           the preferred C{B{center1}.Equidistant}.\n       @kwarg tol: Convergence tolerance (C{meter}, same units as B{C{radius1}}\n                   and B{C{radius2}}).\n       @kwarg LatLon: Optional class to return the intersection points (L{LatLon})\n                      or C{None}.\n       @kwarg LatLon_kwds: Optional, additional B{C{LatLon}} keyword arguments,\n                           ignored if C{B{LatLon} is None}.\n\n       @return: 2-Tuple of the intersection points, each a B{C{LatLon}} instance\n                or L{LatLon4Tuple}C{(lat, lon, height, datum)} if C{B{LatLon} is\n                None}.  For abutting circles, both points are the same instance,\n                aka the I{radical center}.\n\n       @raise IntersectionError: Concentric, antipodal, invalid or non-intersecting\n                                 circles or no convergence for the B{C{tol}}.\n\n       @raise TypeError: Invalid or non-ellipsoidal B{C{center1}} or B{C{center2}}\n                         or invalid B{C{equidistant}}.\n\n       @raise UnitError: Invalid B{C{radius1}}, B{C{radius2}} or B{C{height}}.\n\n       @see: U{The B{ellipsoidal} case<https://GIS.StackExchange.com/questions/48937/\n             calculating-intersection-of-two-circles>}, U{Karney's paper\n             <https://ArXiv.org/pdf/1102.1215.pdf>}, pp 20-21, section B{14. MARITIME BOUNDARIES},\n             U{circle-circle<https://MathWorld.Wolfram.com/Circle-CircleIntersection.html>} and\n             U{sphere-sphere<https://MathWorld.Wolfram.com/Sphere-SphereIntersection.html>}\n             intersections.\n    '''\n    return _intersections2(center1, radius1, center2, radius2, height=height, wrap=wrap,\n                           equidistant=equidistant, tol=tol, LatLon=LatLon, **LatLon_kwds)\n\n\ndef nearestOn(point, point1, point2, within=True, height=None, wrap=False,\n              equidistant=None, tol=_TOL_M, LatLon=LatLon, **LatLon_kwds):\n    '''I{Iteratively} locate the closest point on the geodesic between\n       two other (ellipsoidal) points.\n\n       @arg point: Reference point (C{LatLon}).\n       @arg point1: Start point of the geodesic (C{LatLon}).\n       @arg point2: End point of the geodesic (C{LatLon}).\n       @kwarg within: If C{True}, return the closest point I{between}\n                      B{C{point1}} and B{C{point2}}, otherwise the\n                      closest point elsewhere on the geodesic (C{bool}).\n       @kwarg height: Optional height for the closest point (C{meter},\n                      conventionally) or C{None} or C{False} for the\n                      interpolated height.  If C{False}, the closest\n                      takes the heights of the points into account.\n       @kwarg wrap: If C{True}, wrap or I{normalize} and unroll both\n                    B{C{point1}} and B{C{point2}} (C{bool}).\n       @kwarg equidistant: An azimuthal equidistant projection (I{class}\n                           or function L{pygeodesy.equidistant}) or C{None}\n                           for the preferred C{B{point}.Equidistant}.\n       @kwarg tol: Convergence tolerance (C{meter}).\n       @kwarg LatLon: Optional class to return the closest point\n                      (L{LatLon}) or C{None}.\n       @kwarg LatLon_kwds: Optional, additional B{C{LatLon}} keyword\n                           arguments, ignored if C{B{LatLon} is None}.\n\n       @return: Closest point, a B{C{LatLon}} instance or if C{B{LatLon}\n                is None}, a L{LatLon4Tuple}C{(lat, lon, height, datum)}.\n\n       @raise ImportError: Package U{geographiclib\n                           <https://PyPI.org/project/geographiclib>}\n                           not installed or not found, but only if\n                           C{B{equidistant}=}L{EquidistantKarney}.\n\n       @raise TypeError: Invalid or non-ellipsoidal B{C{point}}, B{C{point1}}\n                         or B{C{point2}} or invalid B{C{equidistant}}.\n\n       @raise ValueError: No convergence for the B{C{tol}}.\n\n       @see: U{The B{ellipsoidal} case<https://GIS.StackExchange.com/questions/48937/\n             calculating-intersection-of-two-circles>} and U{Karney's paper\n             <https://ArXiv.org/pdf/1102.1215.pdf>}, pp 20-21, section B{14. MARITIME\n             BOUNDARIES} for more details about the iteration algorithm.\n    '''\n    return _nearestOn(point, point1, point2, within=within, height=height, wrap=wrap,\n                      equidistant=equidistant, tol=tol, LatLon=LatLon, **LatLon_kwds)\n\n\n@deprecated_function\ndef perimeterOf(points, **closed_datum_wrap):\n    '''DEPRECATED, use function L{ellipsoidalExact.perimeterOf} or L{ellipsoidalKarney.perimeterOf}.\n    '''\n    return _ellipsoidalOf(perimeterOf, points, **closed_datum_wrap)\n\n\n__all__ += _ALL_DOCS(Cartesian, LatLon, intersecant2,  # from .ellipsoidalBaseDI\n                     intersection3, intersections2, ispolar,  # from .points\n                     nearestOn,\n                     areaOf, perimeterOf)  # DEPRECATED\n\n# **) MIT License\n#\n# Copyright (C) 2016-2026 -- mrJean1 at Gmail -- All Rights Reserved.\n#\n# Permission is hereby granted, free of charge, to any person obtaining a\n# copy of this software and associated documentation files (the \"Software\"),\n# to deal in the Software without restriction, including without limitation\n# the rights to use, copy, modify, merge, publish, distribute, sublicense,\n# and/or sell copies of the Software, and to permit persons to whom the\n# Software is furnished to do so, subject to the following conditions:\n#\n# The above copyright notice and this permission notice shall be included\n# in all copies or substantial portions of the Software.\n#\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL\n# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR\n# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\n# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n# OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "pygeodesy/ellipsoids.py",
    "content": "\n# -*- coding: utf-8 -*-\n\nu'''Ellipsoidal and spherical earth models.\n\nClasses L{a_f2Tuple}, L{Ellipsoid} and L{Ellipsoid2}, an L{Ellipsoids} registry and\n2 dozen functions to convert I{equatorial} radius, I{polar} radius, I{eccentricities},\nI{flattenings} and I{inverse flattening}.\n\nSee module L{datums} for L{Datum} and L{Transform} information and other details.\n\nFollowing is the list of predefined L{Ellipsoid}s, all instantiated lazily.\n\n@var Ellipsoids.Airy1830: Ellipsoid(name='Airy1830', a=6377563.396, f=0.00334085, f_=299.3249646, b=6356256.90923729)\n@var Ellipsoids.AiryModified: Ellipsoid(name='AiryModified', a=6377340.189, f=0.00334085, f_=299.3249646, b=6356034.44793853)\n@var Ellipsoids.ATS1977: Ellipsoid(name='ATS1977', a=6378135, f=0.00335281, f_=298.257, b=6356750.30492159)\n@var Ellipsoids.Australia1966: Ellipsoid(name='Australia1966', a=6378160, f=0.00335289, f_=298.25, b=6356774.71919531)\n@var Ellipsoids.Bessel1841: Ellipsoid(name='Bessel1841', a=6377397.155, f=0.00334277, f_=299.1528128, b=6356078.962818)\n@var Ellipsoids.BesselModified: Ellipsoid(name='BesselModified', a=6377492.018, f=0.00334277, f_=299.1528128, b=6356173.5087127)\n@var Ellipsoids.CGCS2000: Ellipsoid(name='CGCS2000', a=6378137, f=0.00335281, f_=298.2572221, b=6356752.31414036)\n@var Ellipsoids.Clarke1866: Ellipsoid(name='Clarke1866', a=6378206.4, f=0.00339008, f_=294.97869821, b=6356583.8)\n@var Ellipsoids.Clarke1880: Ellipsoid(name='Clarke1880', a=6378249.145, f=0.00340756, f_=293.465, b=6356514.86954978)\n@var Ellipsoids.Clarke1880IGN: Ellipsoid(name='Clarke1880IGN', a=6378249.2, f=0.00340755, f_=293.46602129, b=6356515)\n@var Ellipsoids.Clarke1880Mod: Ellipsoid(name='Clarke1880Mod', a=6378249.145, f=0.00340755, f_=293.46630766, b=6356514.96639549)\n@var Ellipsoids.CPM1799: Ellipsoid(name='CPM1799', a=6375738.7, f=0.00299052, f_=334.39, b=6356671.92557493)\n@var Ellipsoids.Delambre1810: Ellipsoid(name='Delambre1810', a=6376428, f=0.00321027, f_=311.5, b=6355957.92616372)\n@var Ellipsoids.Engelis1985: Ellipsoid(name='Engelis1985', a=6378136.05, f=0.00335282, f_=298.2566, b=6356751.32272154)\n@var Ellipsoids.Everest1969: Ellipsoid(name='Everest1969', a=6377295.664, f=0.00332445, f_=300.8017, b=6356094.667915)\n@var Ellipsoids.Everest1975: Ellipsoid(name='Everest1975', a=6377299.151, f=0.00332445, f_=300.8017255, b=6356098.14512013)\n@var Ellipsoids.Fisher1968: Ellipsoid(name='Fisher1968', a=6378150, f=0.00335233, f_=298.3, b=6356768.33724438)\n@var Ellipsoids.GEM10C: Ellipsoid(name='GEM10C', a=6378137, f=0.00335281, f_=298.2572236, b=6356752.31424783)\n@var Ellipsoids.GPES: Ellipsoid(name='GPES', a=6378135, f=0, f_=0, b=6378135)\n@var Ellipsoids.GRS67: Ellipsoid(name='GRS67', a=6378160, f=0.00335292, f_=298.24716743, b=6356774.51609071)\n@var Ellipsoids.GRS80: Ellipsoid(name='GRS80', a=6378137, f=0.00335281, f_=298.2572221, b=6356752.31414035)\n@var Ellipsoids.Helmert1906: Ellipsoid(name='Helmert1906', a=6378200, f=0.00335233, f_=298.3, b=6356818.16962789)\n@var Ellipsoids.IAU76: Ellipsoid(name='IAU76', a=6378140, f=0.00335281, f_=298.257, b=6356755.28815753)\n@var Ellipsoids.IERS1989: Ellipsoid(name='IERS1989', a=6378136, f=0.00335281, f_=298.257, b=6356751.30156878)\n@var Ellipsoids.IERS1992TOPEX: Ellipsoid(name='IERS1992TOPEX', a=6378136.3, f=0.00335281, f_=298.25722356, b=6356751.61659215)\n@var Ellipsoids.IERS2003: Ellipsoid(name='IERS2003', a=6378136.6, f=0.00335282, f_=298.25642, b=6356751.85797165)\n@var Ellipsoids.Intl1924: Ellipsoid(name='Intl1924', a=6378388, f=0.003367, f_=297, b=6356911.94612795)\n@var Ellipsoids.Intl1967: Ellipsoid(name='Intl1967', a=6378157.5, f=0.0033529, f_=298.24961539, b=6356772.2)\n@var Ellipsoids.Krassovski1940: Ellipsoid(name='Krassovski1940', a=6378245, f=0.00335233, f_=298.3, b=6356863.01877305)\n@var Ellipsoids.Krassowsky1940: Ellipsoid(name='Krassowsky1940', a=6378245, f=0.00335233, f_=298.3, b=6356863.01877305)\n@var Ellipsoids.Maupertuis1738: Ellipsoid(name='Maupertuis1738', a=6397300, f=0.0052356, f_=191, b=6363806.28272251)\n@var Ellipsoids.Mercury1960: Ellipsoid(name='Mercury1960', a=6378166, f=0.00335233, f_=298.3, b=6356784.28360711)\n@var Ellipsoids.Mercury1968Mod: Ellipsoid(name='Mercury1968Mod', a=6378150, f=0.00335233, f_=298.3, b=6356768.33724438)\n@var Ellipsoids.NWL1965: Ellipsoid(name='NWL1965', a=6378145, f=0.00335289, f_=298.25, b=6356759.76948868)\n@var Ellipsoids.OSU86F: Ellipsoid(name='OSU86F', a=6378136.2, f=0.00335281, f_=298.2572236, b=6356751.51693008)\n@var Ellipsoids.OSU91A: Ellipsoid(name='OSU91A', a=6378136.3, f=0.00335281, f_=298.2572236, b=6356751.6165948)\n@var Ellipsoids.Plessis1817: Ellipsoid(name='Plessis1817', a=6376523, f=0.00324002, f_=308.64, b=6355862.93325557)\n@var Ellipsoids.PZ90: Ellipsoid(name='PZ90', a=6378136, f=0.0033528, f_=298.2578393, b=6356751.36174571)\n@var Ellipsoids.SGS85: Ellipsoid(name='SGS85', a=6378136, f=0.00335281, f_=298.257, b=6356751.30156878)\n@var Ellipsoids.SoAmerican1969: Ellipsoid(name='SoAmerican1969', a=6378160, f=0.00335289, f_=298.25, b=6356774.71919531)\n@var Ellipsoids.Sphere: Ellipsoid(name='Sphere', a=6371008.771415, f=0, f_=0, b=6371008.771415)\n@var Ellipsoids.SphereAuthalic: Ellipsoid(name='SphereAuthalic', a=6371000, f=0, f_=0, b=6371000)\n@var Ellipsoids.SpherePopular: Ellipsoid(name='SpherePopular', a=6378137, f=0, f_=0, b=6378137)\n@var Ellipsoids.Struve1860: Ellipsoid(name='Struve1860', a=6378298.3, f=0.00339294, f_=294.73, b=6356657.14266956)\n@var Ellipsoids.WGS60: Ellipsoid(name='WGS60', a=6378165, f=0.00335233, f_=298.3, b=6356783.28695944)\n@var Ellipsoids.WGS66: Ellipsoid(name='WGS66', a=6378145, f=0.00335289, f_=298.25, b=6356759.76948868)\n@var Ellipsoids.WGS72: Ellipsoid(name='WGS72', a=6378135, f=0.00335278, f_=298.26, b=6356750.52001609)\n@var Ellipsoids.WGS84: Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518)\n@var Ellipsoids.WGS84_NGS: Ellipsoid(name='WGS84_NGS', a=6378137, f=0.00335281, f_=298.2572221, b=6356752.31414035)\n'''\n# make sure int/int division yields float quotient, see .basics\nfrom __future__ import division as _; del _  # noqa: E702 ;\n\n# from pygeodesy.albers import AlbersEqualAreaCylindrical  # _MODS\nfrom pygeodesy.basics import copysign0, isbool, _isin, isint,  typename\nfrom pygeodesy.constants import EPS, EPS_2, EPS0, EPS02, EPS1, INF, NINF, \\\n                               _EPSqrt, PI_2, PI_3, PI2, PI4, R_M, R_MA, R_FM, \\\n                               _EPStol as _TOL, _floatuple as _T, _isfinite, \\\n                               _over, _SQRT2, _0_0s, _0_0, _0_5, _1_0, _1_EPS, \\\n                               _2_0, _4_0, _90_0, _0_25, _3_0  # PYCHOK used!\n# from pygeodesy.ellipses import Ellipse  # _MODS\nfrom pygeodesy.errors import _AssertionError, IntersectionError, _ValueError, _xattr, _xkwds_not\nfrom pygeodesy.fmath import cbrt, cbrt2, fdot, fmean_, Fhorner, fpowers, hypot, hypot_, \\\n                            hypot1, hypot2, sqrt3,  Fsum\n# from pygeodesy.fsums import Fsum  # from .fmath\n# from pygeodesy.internals import typename  # from .basics\nfrom pygeodesy.interns import NN, _a_, _Airy1830_, _AiryModified_, _b_, _Bessel1841_, \\\n                             _Clarke1866_, _Clarke1880IGN_, _DMAIN_, _DOT_, _f_, _GRS80_, \\\n                             _Intl1924_, _incompatible_, _invalid_, _Krassovski1940_, \\\n                             _Krassowsky1940_, _lat_, _meridional_, _negative_, _not_finite_, \\\n                             _prime_vertical_, _Sphere_, _SPACE_, _vs_, _WGS72_, _WGS84_\n# from pygeodesy.lazily import _ALL_LAZY, _ALL_MODS as _MODS  # from .named\nfrom pygeodesy.named import _lazyNamedEnumItem as _lazy, _name__, _NamedEnum, \\\n                                _NamedEnumItem, _NamedTuple, _Pass,  _ALL_LAZY, _MODS\nfrom pygeodesy.namedTuples import Circle4Tuple, Distance2Tuple, Vector3Tuple, Vector4Tuple\nfrom pygeodesy.props import deprecated_Property_RO, Property_RO, property_doc_, \\\n                            deprecated_property_RO, property_RO, property_ROver\nfrom pygeodesy.streprs import Fmt, fstr, instr, strs, unstr\n# from pygeodesy.triaxials.triaxial5 import _hartzell3, _plumbTo3  # _MODS\nfrom pygeodesy.units import Azimuth, Bearing, Distance, Float, Float_, Lamd, Lat, _Lat0, \\\n                            Meter, Meter2, Meter3, Phi, Phid, Radius, Radius_, Scalar\nfrom pygeodesy.utily import atan1, atan1d, atan2b, degrees90, m2radians, radians2m, sincos2d\n\nfrom math import asinh, atan, atanh, cos, degrees, exp, fabs, radians, sin, sinh, sqrt, tan  # as _tan\n\n__all__ = _ALL_LAZY.ellipsoids\n__version__ = '26.03.25'\n\n_f_0_0    = Float(f =_0_0)  # zero flattening\n_f__0_0   = Float(f_=_0_0)  # zero inverse flattening\n# see U{WGS84_f<https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Constants.html>}\n# _f_WGS84  = Float(f =_1_0 / (298257223563 / 1000000000))  # 0.003_352_810_664_747_480_5\n_f__WGS84 = Float(f_=_1_0 / (1000000000 / 298257223563))  # 298.257223562_999_97 vs 298.257223563\n\n\ndef _aux(lat, inverse, auxLat, clip=90):\n    '''Return a named auxiliary latitude in C{degrees}.\n    '''\n    return Lat(lat, clip=clip, name=_lat_ if inverse else typename(auxLat))\n\n\ndef _sin2cos2(rad):\n    '''(INTERNAL) Return 2-tuple C{(sin(B{phi})**2, cos(B{phi})**2)}.\n    '''\n    if rad:\n        s2 = sin(rad)**2\n        if s2 > EPS:\n            c2 = _1_0 - s2\n            if c2 > EPS:\n                if c2 < EPS1:\n                    return s2, c2\n            else:\n                return _1_0, _0_0  # rad == PI_2\n    return _0_0, _1_0  # rad == 0\n\n\nclass a_f2Tuple(_NamedTuple):\n    '''2-Tuple C{(a, f)} specifying an ellipsoid by I{equatorial}\n       radius C{a} in C{meter} and scalar I{flattening} C{f}.\n\n       @see: Class L{Ellipsoid2}.\n    '''\n    _Names_ = (_a_,   _f_)  # name 'f' not 'f_'\n    _Units_ = (_Pass, _Pass)\n\n    def __new__(cls, a, f, **name):\n        '''New L{a_f2Tuple} ellipsoid specification.\n\n           @arg a: Equatorial radius (C{scalar} > 0).\n           @arg f: Flattening (C{scalar} < 1, negative for I{prolate}).\n           @kwarg name: Optional C{B{name}=NN} (C{str}).\n\n           @return: An L{a_f2Tuple}C{(a, f)}.\n\n           @raise UnitError: Invalid B{C{a}} or B{C{f}}.\n\n           @note: C{abs(B{f}) < }L{EPS<pygeodesy.constants.EPS>} is\n                  forced to C{B{f}=0}, I{spherical}.\n\n           @note: Negative C{B{f}} produces a I{prolate} ellipsoid.\n        '''\n        a = Radius_(a=a)  # low=EPS, high=None\n        f = Float_( f=f, low=None, high=EPS1)\n        if fabs(f) < EPS:  # force spherical\n            f = _f_0_0\n        return _NamedTuple.__new__(cls, a, f, **name)\n\n    @Property_RO\n    def b(self):\n        '''Get the I{polar} radius (C{meter}), M{a * (1 - f)}.\n        '''\n        return a_f2b(self.a, self.f)  # PYCHOK .a and .f\n\n    def ellipsoid(self, **name):\n        '''Return an L{Ellipsoid} for this 2-tuple C{(a, f)}.\n\n           @kwarg name: Optional C{B{name}=NN} (C{str}).\n\n           @raise NameError: A registered C{ellipsoid} with the\n                             same B{C{name}} already exists.\n        '''\n        return Ellipsoid(self.a, f=self.f, name=self._name__(name))  # PYCHOK .a and .f\n\n    @Property_RO\n    def f_(self):\n        '''Get the I{inverse} flattening (C{scalar}), M{1 / f} == M{a / (a - b)}.\n        '''\n        return f2f_(self.f)  # PYCHOK .f\n\n\nclass Curvature2Tuple(_NamedTuple):\n    '''2-Tuple C{(meridional, prime_vertical)} of radii of curvature, both in\n       C{meter}, conventionally.\n    '''\n    _Names_ = (_meridional_, _prime_vertical_)\n    _Units_ = ( Meter,        Meter)\n\n    @property_RO\n    def transverse(self):\n        '''Get this I{prime_vertical}, aka I{transverse} radius of curvature.\n        '''\n        return self.prime_vertical\n\n\nclass Ellipsoid(_NamedEnumItem):\n    '''Ellipsoid with I{equatorial} and I{polar} radii, I{flattening}, I{inverse\n       flattening} and other, often used, I{cached} attributes, supporting\n       I{oblate} and I{prolate} ellipsoidal and I{spherical} earth models.\n    '''\n    _a  = 0  # equatorial radius, semi-axis (C{meter})\n    _b  = 0  # polar radius, semi-axis (C{meter}): a * (f - 1) / f\n    _f  = 0  # (1st) flattening: (a - b) / a\n    _f_ = 0  # inverse flattening: 1 / f = a / (a - b)\n\n    _geodsolve  = NN  # means, use PYGEODESY_GEODSOLVE\n    _KsOrder    =  8  # Krüger series order (4, 6 or 8)\n    _rhumbsolve = NN  # means, use PYGEODESY_RHUMBSOLVE\n\n    def __init__(self, a, b=None, f_=None, f=None, **name):\n        '''New L{Ellipsoid} from the I{equatorial} radius I{and} either\n           the I{polar} radius or I{inverse flattening} or I{flattening}.\n\n           @arg a: Equatorial radius, semi-axis (C{meter}).\n           @arg b: Optional polar radius, semi-axis (C{meter}).\n           @arg f_: Inverse flattening: M{a / (a - b)} (C{float} >>> 1.0).\n           @arg f: Flattening: M{(a - b) / a} (C{scalar}, near zero for\n                   spherical).\n           @kwarg name: Optional, unique C{B{name}=NN} (C{str}).\n\n           @raise NameError: Ellipsoid with the same B{C{name}} already exists.\n\n           @raise ValueError: Invalid B{C{a}}, B{C{b}}, B{C{f_}} or B{C{f}} or\n                              B{C{f_}} and B{C{f}} are incompatible.\n\n           @note: M{abs(f_) > 1 / EPS} or M{abs(1 / f_) < EPS} is forced\n                  to M{1 / f_ = 0}, spherical.\n        '''\n        ff_ =  f, f_  # assertion below\n        n   = _name__(**name) if name else NN\n        try:\n            a = Radius_(a=a)  # low=EPS\n            if not _isfinite(a):\n                raise ValueError(_SPACE_(_a_, _not_finite_))\n\n            if b:  # not _isin(b, None, _0_0)\n                b  = Radius_(b=b)  # low=EPS\n                f  = a_b2f(a, b) if f is None else Float(f=f)\n                f_ = f2f_(f) if f_ is None else Float(f_=f_)\n            elif f is not None:\n                f  = Float(f=f)\n                b  = a_f2b(a, f)\n                f_ = f2f_(f) if f_ is None else Float(f_=f_)\n            elif f_:\n                f_ = Float(f_=f_)\n                b  = a_f_2b(a, f_)  # a * (f_ - 1) / f_\n                f  = f_2f(f_)\n            else:  # only a, spherical\n                f_ = f = 0\n                b  = a  # superfluous\n\n            if not (f < _1_0):  # sanity check, see .ecef.Ecef.__init__\n                raise ValueError(_SPACE_(_f_, _invalid_))\n            if not _isfinite(b):\n                raise ValueError(_SPACE_(_b_, _not_finite_))\n\n            if fabs(f) < EPS or a == b or not f_:  # spherical\n                b  =  a\n                f  = _f_0_0\n                f_ = _f__0_0\n\n        except (TypeError, ValueError) as x:\n            d = _xkwds_not(None, b=b, f_=f_, f=f)\n            t =  instr(self, a=a, name=n, **d)\n            raise _ValueError(t, cause=x)\n\n        self._a  = a\n        self._b  = b\n        self._f  = f\n        self._f_ = f_\n\n        self._register(Ellipsoids, n)\n\n        if f and f_:  # see test/testEllipsoidal\n            d = dict(eps=_TOL)\n            if None in ff_:  # both f_ and f given\n                d.update(Error=_ValueError, txt=_incompatible_)\n            self._assert(_1_0 / f,  f_=f_, **d)\n            self._assert(_1_0 / f_, f =f,  **d)\n        self._assert(self.b2_a2, e21=self.e21, eps=EPS)\n\n    def __eq__(self, other):\n        '''Compare this and an other ellipsoid.\n\n           @arg other: The other ellipsoid (L{Ellipsoid} or L{Ellipsoid2}).\n\n           @return: C{True} if equal, C{False} otherwise.\n        '''\n        return self is other or (isinstance(other, Ellipsoid) and\n                                  self.a == other.a and\n                                 (self.f == other.f or self.b == other.b))\n\n    def __hash__(self):\n        return self._hash  # memoized\n\n    @Property_RO\n    def a(self):\n        '''Get the I{equatorial} radius, semi-axis (C{meter}).\n        '''\n        return self._a\n\n    equatoradius = a  # = Requatorial\n\n    @Property_RO\n    def a2(self):\n        '''Get the I{equatorial} radius I{squared} (C{meter} I{squared}), M{a**2}.\n        '''\n        return Meter2(a2=self.a**2)\n\n    @Property_RO\n    def a2_(self):\n        '''Get the inverse of the I{equatorial} radius I{squared} (C{meter} I{squared}), M{1 / a**2}.\n        '''\n        return Float(a2_=_1_0 / self.a2)\n\n    @Property_RO\n    def A(self):\n        '''Get the UTM I{meridional (or rectifying)} radius (C{meter}).\n\n           @note: C{A * PI / 2} ≈= L{L<Ellipsoid.L>}, the I{quarter meridian}.\n\n           @see: I{Meridian arc unit} U{Q<https://StudyLib.net/doc/7443565/>},\n                 the mean, meridional length I{per radian}.\n        '''\n        A, n = self.a, self.n\n        if n:\n            d = (n + _1_0) * 1048576 / A\n            if d:  # use 6 n**2 terms, half-way between the _KsOrder's 4, 6, 8\n                # <https://GeographicLib.SourceForge.io/C++/doc/tmseries30.html>\n                # <https://GeographicLib.SourceForge.io/C++/doc/transversemercator.html> and\n                # <https://www.MyGeodesy.id.AU/documents/Karney-Krueger%20equations.pdf> (3)\n                # A *= fhorner(n**2, 1048576, 262144, 16384, 4096, 1600, 784, 441) / 1048576) / (1 + n)\n                A = Radius(A=Fhorner(n**2, 1048576, 262144, 16384, 4096, 1600, 784, 441).fover(d))\n        return A\n#       # Moritz, H. <https://Geodesy.Geology.Ohio-State.edu/course/refpapers/00740128.pdf>\n#       # q =  4 / self.rocPolar\n#       # Q = (1 - 3 / 4 * e'2 + 45 / 64 * e'4 - 175 / 256 * e'6 + 11025 / 16384 * e'8) * rocPolar\n#       #   = (4 + e'2 * (-3 + e'2 * (45 / 16 + e'2 * (-175 / 64 + e'2 * 11025 / 4096)))) / q\n#       return Radius(Q=Fhorner(self.e22, 4, -3, 45 / 16, -175 / 64, 11025 / 4096).fover(q))\n\n    @Property_RO\n    def a_b(self):\n        '''Get the ratio I{equatorial} over I{polar} radius (C{float}), M{a / b} == M{1 / (1 - f)}.\n        '''\n        return Float(a_b=self.a / self.b if self.f else _1_0)\n\n    @Property_RO\n    def a2_b(self):\n        '''Get the I{polar} meridional (or polar) radius of curvature (C{meter}), M{a**2 / b}.\n\n           @see: U{Radii of Curvature\n                 <https://WikiPedia.org/wiki/Earth_radius#Radii_of_curvature>}\n                 and U{Moritz, H. (1980), Geodetic Reference System 1980\n                 <https://WikiPedia.org/wiki/Earth_radius#cite_note-Moritz-2>}.\n\n           @note: Symbol C{c} is used by IUGG and IERS for the U{polar radius of curvature\n                  <https://WikiPedia.org/wiki/Earth_radius#Radii_of_curvature>}, see L{c2}\n                  and L{R2} or L{Rauthalic}.\n        '''\n        return Radius(a2_b=self.a2 / self.b if self.f else self.a)  # = rocPolar\n\n    @Property_RO\n    def a2_b2(self):\n        '''Get the ratio I{equatorial} over I{polar} radius I{squared} (C{float}),\n           M{(a / b)**2} == M{1 / (1 - e**2)} == M{1 / (1 - e2)} == M{1 / e21}.\n        '''\n        return Float(a2_b2=self.a_b**2 if self.f else _1_0)\n\n    @Property_RO\n    def a_f(self):\n        '''Get the I{equatorial} radius and I{flattening} (L{a_f2Tuple}), see method C{toEllipsoid2}.\n        '''\n        return a_f2Tuple(self.a, self.f, name=self.name)\n\n    a_f2 = a_f  # synonym\n\n    @Property_RO\n    def _albersCyl(self):\n        '''(INTERNAL) Helper for C{auxAuthalic}.\n        '''\n        return _MODS.albers.AlbersEqualAreaCylindrical(datum=self, name=self.name)\n\n    @Property_RO\n    def AlphaKs(self):\n        '''Get the I{Krüger} U{Alpha series coefficients<https://GeographicLib.SourceForge.io/C++/doc/tmseries30.html>} (C{KsOrder}C{-tuple}).\n        '''\n        return self._Kseries(  # XXX int/int quotients may require  from __future__ import division as _; del _  # noqa: E702 ;\n            #   n    n**2   n**3      n**4         n**5            n**6                 n**7                     n**8\n            _T(1/2, -2/3,   5/16,    41/180,    -127/288,       7891/37800,         72161/387072,        -18975107/50803200),\n                 _T(13/48, -3/5,    557/1440,    281/630,   -1983433/1935360,       13769/28800,         148003883/174182400),     # PYCHOK unaligned\n                        _T(61/240, -103/140,   15061/26880,   167603/181440,    -67102379/29030400,       79682431/79833600),      # PYCHOK unaligned\n                               _T(49561/161280, -179/168,    6601661/7257600,       97445/49896,      -40176129013/7664025600),    # PYCHOK unaligned\n                                            _T(34729/80640, -3418889/1995840,    14644087/9123840,      2605413599/622702080),     # PYCHOK unaligned\n                                                        _T(212378941/319334400, -30705481/10378368,   175214326799/58118860800),   # PYCHOK unaligned\n                                                                            _T(1522256789/1383782400, -16759934899/3113510400),    # PYCHOK unaligned\n                                                                                                  _T(1424729850961/743921418240))  # PYCHOK unaligned\n\n    @Property_RO\n    def area(self):\n        '''Get the ellipsoid's surface area (C{meter} I{squared}), M{4 * PI * c2}.\n\n           @see: Properties L{areax}, L{c2} and L{R2} and functions\n                 L{ellipsoidalExact.areaOf} and L{ellipsoidalKarney.areaOf}.\n        '''\n        return Meter2(area=self.c2 * PI4)\n\n    @Property_RO\n    def areax(self):\n        '''Get the ellipsoid's surface area (C{meter} I{squared}), M{4 * PI * c2x}, more\n           accurate for very I{oblate} ellipsoids.\n\n           @see: Properties L{area}, L{c2x} and L{R2x}, class L{GeodesicExact} and\n                 functions L{ellipsoidalExact.areaOf} and L{ellipsoidalKarney.areaOf}.\n        '''\n        return Meter2(areax=self.c2x * PI4)\n\n    def _assert(self, val, eps=_TOL, f0=_0_0, Error=_AssertionError, txt=NN, **name_value):\n        '''(INTERNAL) Assert a C{name=value} vs C{val}.\n        '''\n        for n, v in name_value.items():\n            if fabs(v - val) > eps:  # PYCHOK no cover\n                t = (v, _vs_, val)\n                t = _SPACE_.join(strs(t, prec=12, fmt=Fmt.g))\n                t =  Fmt.EQUAL(self._DOT_(n), t)\n                raise Error(t, txt=txt or Fmt.exceeds_eps(eps))\n            return Float(v if self.f else f0, name=n)\n        raise Error(unstr(self._DOT_(typename(self._assert)), val,\n                                eps=eps, f0=f0, **name_value))\n\n    def auxAuthalic(self, lat, inverse=False):\n        '''Compute the I{authalic} auxiliary latitude (Xi) or the I{inverse} thereof.\n\n           @arg lat: The geodetic (or I{authalic}) latitude (C{degrees90}).\n           @kwarg inverse: If C{True}, B{C{lat}} is the I{authalic} and\n                           return the geodetic latitude (C{bool}).\n\n           @return: The I{authalic} (or geodetic) latitude in C{degrees90}.\n\n           @see: U{Inverse-/AuthalicLatitude<https://GeographicLib.SourceForge.io/\n                 C++/doc/classGeographicLib_1_1Ellipsoid.html>}, U{Authalic latitude\n                 <https://WikiPedia.org/wiki/Latitude#Authalic_latitude>}, and\n                 U{Snyder<https://Pubs.USGS.gov/pp/1395/report.pdf>}, p 16.\n        '''\n        if self.f:\n            _f  = self._albersCyl._tanf if inverse else \\\n                  self._albersCyl._txif  # PYCHOK attr\n            lat = atan1d(_f(tan(Phid(lat))))  # PYCHOK attr\n        return _aux(lat, inverse, Ellipsoid.auxAuthalic)\n\n    def auxConformal(self, lat, inverse=False):\n        '''Compute the I{conformal} auxiliary latitude (Chi) or the I{inverse} thereof.\n\n           @arg lat: The geodetic (or I{conformal}) latitude (C{degrees90}).\n           @kwarg inverse: If C{True}, B{C{lat}} is the I{conformal} and\n                           return the geodetic latitude (C{bool}).\n\n           @return: The I{conformal} (or geodetic) latitude in C{degrees90}.\n\n           @see: U{Inverse-/ConformalLatitude<https://GeographicLib.SourceForge.io/\n                 C++/doc/classGeographicLib_1_1Ellipsoid.html>}, U{Conformal latitude\n                 <https://WikiPedia.org/wiki/Latitude#Conformal_latitude>}, and\n                 U{Snyder<https://Pubs.USGS.gov/pp/1395/report.pdf>}, pp 15-16.\n        '''\n        if self.f:\n            _f  = self.es_tauf if inverse else self.es_taupf  # PYCHOK attr\n            lat = atan1d(_f(tan(Phid(lat))))  # PYCHOK attr\n        return _aux(lat, inverse, Ellipsoid.auxConformal)\n\n    def auxGeocentric(self, lat, inverse=False, height=_0_0):\n        '''Compute the I{geocentric} auxiliary latitude (Theta) or the I{inverse} thereof.\n\n           @arg lat: The geodetic (or I{geocentric}) latitude (C{degrees90}).\n           @kwarg inverse: If C{True}, B{C{lat}} is the geocentric and\n                           return the I{geocentric} latitude (C{bool}).\n           @kwarg height: Optional, ellipsoidal height (C{meter}).\n\n           @return: The I{geocentric} (or geodetic) latitude in C{degrees90}.\n\n           @see: U{Inverse-/GeocentricLatitude<https://GeographicLib.SourceForge.io/\n                 C++/doc/classGeographicLib_1_1Ellipsoid.html>}, U{Geocentric latitude\n                 <https://WikiPedia.org/wiki/Latitude#Geocentric_latitude>}, and\n                 U{Snyder<https://Pubs.USGS.gov/pp/1395/report.pdf>}, pp 17-18.\n        '''\n        if self.f:  # and lat\n            t = tan(Phid(lat))\n            f = self.b2_a2\n            if height:\n                if inverse:\n                    lat = atan1d(t * f)  # geodetic n\n                    d, f = f, _1_0\n                else:\n                    d = _1_0\n                n =  self.rocPrimeVertical(lat)\n                f = _over(n * f + height, n * d + height)\n            elif inverse:\n                f = self.a2_b2\n            lat = atan1d(t * f)\n        return _aux(lat, inverse, Ellipsoid.auxGeocentric)\n\n    def auxIsometric(self, lat, inverse=False):\n        '''Compute the I{isometric} auxiliary latitude (Psi) or the I{inverse} thereof.\n\n           @arg lat: The geodetic (or I{isometric}) latitude (C{degrees}).\n           @kwarg inverse: If C{True}, B{C{lat}} is the I{isometric} and\n                           return the geodetic latitude (C{bool}).\n\n           @return: The I{isometric} (or geodetic) latitude in C{degrees}.\n\n           @note: The I{isometric} latitude for geodetic C{+/-90} is far\n                  outside the C{[-90..+90]} range but the inverse thereof\n                  is the original geodetic latitude.\n\n           @see: U{Inverse-/IsometricLatitude<https://GeographicLib.SourceForge.io/\n                 C++/doc/classGeographicLib_1_1Ellipsoid.html>}, U{Isometric latitude\n                 <https://WikiPedia.org/wiki/Latitude#Isometric_latitude>}, and\n                 U{Snyder<https://Pubs.USGS.gov/pp/1395/report.pdf>}, pp 15-16.\n        '''\n        if self.f:\n            r   = Phid(lat, clip=0)\n            lat = degrees(atan1(self.es_tauf(sinh(r))) if inverse else\n                          asinh(self.es_taupf(tan(r))))\n        # clip=0, since auxIsometric(+/-90) is far outside [-90..+90]\n        return _aux(lat, inverse, Ellipsoid.auxIsometric, clip=0)\n\n    def auxParametric(self, lat, inverse=False):\n        '''Compute the I{parametric} auxiliary latitude (Beta) or the I{inverse} thereof.\n\n           @arg lat: The geodetic (or I{parametric}) latitude (C{degrees90}).\n           @kwarg inverse: If C{True}, B{C{lat}} is the I{parametric} and\n                           return the geodetic latitude (C{bool}).\n\n           @return: The I{parametric} (or geodetic) latitude in C{degrees90}.\n\n           @see: U{Inverse-/ParametricLatitude<https://GeographicLib.SourceForge.io/\n                 C++/doc/classGeographicLib_1_1Ellipsoid.html>}, U{Parametric latitude\n                 <https://WikiPedia.org/wiki/Latitude#Parametric_(or_reduced)_latitude>},\n                 and U{Snyder<https://Pubs.USGS.gov/pp/1395/report.pdf>}, p 18.\n        '''\n        if self.f:\n            lat = self._Betad(Lat(lat), inverse=inverse)\n        return _aux(lat, inverse, Ellipsoid.auxParametric)\n\n    auxReduced = auxParametric  # synonymous\n\n    def auxRectifying(self, lat, inverse=False):\n        '''Compute the I{rectifying} auxiliary latitude (Mu) or the I{inverse} thereof.\n\n           @arg lat: The geodetic (or I{rectifying}) latitude (C{degrees90}).\n           @kwarg inverse: If C{True}, B{C{lat}} is the I{rectifying} and\n                           return the geodetic latitude (C{bool}).\n\n           @return: The I{rectifying} (or geodetic) latitude in C{degrees90}.\n\n           @see: U{Inverse-/RectifyingLatitude<https://GeographicLib.SourceForge.io/\n                 C++/doc/classGeographicLib_1_1Ellipsoid.html>}, U{Rectifying latitude\n                 <https://WikiPedia.org/wiki/Latitude#Rectifying_latitude>}, and\n                 U{Snyder<https://Pubs.USGS.gov/pp/1395/report.pdf>}, pp 16-17.\n        '''\n        if self.f:\n            lat = Lat(lat)\n            if 0 < fabs(lat) < _90_0:\n                if inverse:\n                    e = self._elliptic_e22\n                    d = degrees90(e.fEinv(e.cE * lat / _90_0))\n                    lat =  self.auxParametric(d, inverse=True)\n                else:\n                    lat = _over(self.Llat(lat), self.L) * _90_0\n        return _aux(lat, inverse, Ellipsoid.auxRectifying)\n\n    @Property_RO\n    def b(self):\n        '''Get the I{polar} radius, semi-axis (C{meter}).\n        '''\n        return self._b\n\n    polaradius = b  # = Rpolar\n\n    @Property_RO\n    def b_a(self):\n        '''Get the ratio I{polar} over I{equatorial} radius (C{float}), M{b / a == f1 == 1 - f}.\n\n           @see: Property L{f1}.\n        '''\n        return self._assert(self.b / self.a, b_a=self.f1, f0=_1_0)\n\n    @Property_RO\n    def b2(self):\n        '''Get the I{polar} radius I{squared} (C{float}), M{b**2}.\n        '''\n        return Meter2(b2=self.b**2)\n\n    @Property_RO\n    def b2_a(self):\n        '''Get the I{equatorial} meridional radius of curvature (C{meter}), M{b**2 / a}, see C{rocMeridional}C{(0)}.\n\n           @see: U{Radii of Curvature<https://WikiPedia.org/wiki/Earth_radius#Radii_of_curvature>}.\n        '''\n        return Radius(b2_a=_over(self.b2, self.a) if self.f else self.b)\n\n    @Property_RO\n    def b2_a2(self):\n        '''Get the ratio I{polar} over I{equatorial} radius I{squared} (C{float}), M{(b / a)**2}\n           == M{(1 - f)**2} == M{1 - e**2} == C{e21}.\n        '''\n        return Float(b2_a2=self.b_a**2 if self.f else _1_0)\n\n    def _Betad(self, lat, inverse=False):\n        '''(INTERNAL) Get the I{parametric (or reduced) auxiliary latitude} or inverse thereof.\n        '''\n        s, c = sincos2d(lat)  # like Karney's tand(lat)\n        s *= self.a_b if inverse else self.b_a\n        return atan1d(s, c)  # (s * a, c * b) if inverse else (s * b, c * a)\n\n    @Property_RO\n    def BetaKs(self):\n        '''Get the I{Krüger} U{Beta series coefficients<https://GeographicLib.SourceForge.io/C++/doc/tmseries30.html>} (C{KsOrder}C{-tuple}).\n        '''\n        return self._Kseries(  # XXX int/int quotients may require  from __future__ import division as _; del _  # noqa: E702 ;\n            #   n    n**2  n**3     n**4        n**5            n**6                 n**7                   n**8\n            _T(1/2, -2/3, 37/96,   -1/360,    -81/512,      96199/604800,     -5406467/38707200,      7944359/67737600),\n                  _T(1/48, 1/15, -437/1440,    46/105,   -1118711/3870720,       51841/1209600,      24749483/348364800),      # PYCHOK unaligned\n                       _T(17/480, -37/840,   -209/4480,      5569/90720,       9261899/58060800,     -6457463/17740800),       # PYCHOK unaligned\n                              _T(4397/161280, -11/504,    -830251/7257600,      466511/2494800,     324154477/7664025600),     # PYCHOK unaligned\n                                          _T(4583/161280, -108847/3991680,    -8005831/63866880,     22894433/124540416),      # PYCHOK unaligned\n                                                      _T(20648693/638668800, -16363163/518918400, -2204645983/12915302400),    # PYCHOK unaligne\n                                                                          _T(219941297/5535129600, -497323811/12454041600),    # PYCHOK unaligned\n                                                                                              _T(191773887257/3719607091200))  # PYCHOK unaligned\n\n    @deprecated_Property_RO\n    def c(self):  # PYCHOK no cover\n        '''DEPRECATED, use property C{R2} or C{Rauthalic}.'''\n        return self.R2\n\n    @Property_RO\n    def c2(self):\n        '''Get the I{authalic} earth radius I{squared} (C{meter} I{squared}).\n\n           @see: Properties L{c2x}, L{area}, L{R2}, L{Rauthalic}, I{Karney's} U{equation (60)\n                 <https://Link.Springer.com/article/10.1007%2Fs00190-012-0578-z>} and C++ U{Ellipsoid.Area\n                 <https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Ellipsoid.html>},\n                 U{Authalic radius<https://WikiPedia.org/wiki/Earth_radius#Authalic_radius>}, U{Surface area\n                 <https://WikiPedia.org/wiki/Ellipsoid>} and U{surface area\n                 <https://www.Numericana.com/answer/geometry.htm#oblate>}.\n        '''\n        return self._c2f(False)\n\n    @Property_RO\n    def c2x(self):\n        '''Get the I{authalic} earth radius I{squared} (C{meter} I{squared}), more accurate for very I{oblate}\n           ellipsoids.\n\n           @see: Properties L{c2}, L{areax}, L{R2x}, L{Rauthalicx}, class L{GeodesicExact} and I{Karney}'s comments at C++\n                 attribute U{GeodesicExact._c2<https://GeographicLib.SourceForge.io/C++/doc/GeodesicExact_8cpp_source.html>}.\n        '''\n        return self._c2f(True)\n\n    def _c2f(self, c2x):\n        '''(INTERNAL) Helper for C{.c2} and C{.c2x}.\n        '''\n        f, c2 = self.f, self.b2\n        if f:\n            e = self.e\n            if e > EPS0:\n                if f > 0:  # .isOblate\n                    c2 *= (asinh(sqrt(self.e22abs)) if c2x else atanh(e)) / e\n                elif f < 0:  # .isProlate\n                    c2 *=  atan1(e) / e  # XXX asin?\n            c2 = Meter2(c2=(self.a2 + c2) * _0_5)\n        return c2\n\n    def circle4(self, lat):\n        '''Get the equatorial or a parallel I{circle of latitude}.\n\n           @arg lat: Geodetic latitude (C{degrees90} or C{str}).\n\n           @return: A L{Circle4Tuple}C{(radius, height, lat, beta)}.\n\n           @raise RangeError: Latitude B{C{lat}} outside valid range, only if\n                              L{rangerrors<pygeodesy.rangerrors>} is C{True}.\n\n           @raise TypeError: Invalid B{C{lat}}.\n\n           @raise ValueError: Invalid B{C{lat}}.\n\n           @see: Definition of U{I{p} and I{z} under B{Parametric (or reduced) latitude}\n                 <https://WikiPedia.org/wiki/Latitude>}, I{Karney's} C++ U{CircleRadius and CircleHeight\n                 <https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Ellipsoid.html>}\n                 and method C{Triaxial.ellipse5}.\n        '''\n        lat = _Lat0(lat)\n        if lat:\n            B = lat  # beta\n            if fabs(lat) < _90_0:\n                if self.f:\n                    B = self._Betad(lat)\n                z, r = sincos2d(B)\n                r *= self.a\n                z *= self.b\n            else:  # near-polar\n                r, z = _0_0, copysign0(self.b, lat)\n        else:  # equatorial\n            r = self.a\n            z = lat = B = _0_0\n        return Circle4Tuple(r, z, lat, B)\n\n    def degrees2m(self, deg, lat=0):\n        '''Convert an arc in degrees to a distance along the equator or\n           along a parallel of (geodetic) latitude.\n\n           @arg deg: The angle (C{degrees}).\n           @kwarg lat: Parallel latitude (C{degrees90}, C{str}).\n\n           @return: Distance (C{meter}, same units as the equatorial\n                    and polar radii) or C{0} for near-polar B{C{lat}}.\n\n           @raise RangeError: Latitude B{C{lat}} outside valid range and\n                              L{rangerrors<pygeodesy.rangerrors>} is C{True}.\n\n           @raise ValueError: Invalid B{C{deg}} or B{C{lat}}.\n        '''\n        return self.radians2m(radians(deg), lat=lat)\n\n    def distance2(self, lat0, lon0, lat1, lon1):\n        '''I{Approximate} the distance and (initial) bearing between\n           two points based on the U{local, flat earth approximation\n           <https://www.EdWilliams.org/avform.htm#flat>} aka U{Hubeny\n           <https://www.OVG.AT/de/vgi/files/pdf/3781/>} formula.\n\n           I{Suitable only for distances of several hundred Km or Miles\n           and only between points not near-polar}.\n\n           @arg lat0: From latitude (C{degrees}).\n           @arg lon0: From longitude (C{degrees}).\n           @arg lat1: To latitude (C{degrees}).\n           @arg lon1: To longitude (C{degrees}).\n\n           @return: A L{Distance2Tuple}C{(distance, initial)} with C{distance}\n                    in same units as this ellipsoid's axes.\n\n           @note: The meridional and prime_vertical radii of curvature are\n                  taken and scaled I{at the initial latitude}, see C{roc2}.\n\n           @see: Function L{pygeodesy.flatLocal}/L{pygeodesy.hubeny}.\n        '''\n        phi0 = Phid(lat0=lat0)\n        m, n = self.roc2_(phi0, scaled=True)\n        m *= Phid(lat1=lat1) - phi0\n        n *= Lamd(lon1=lon1) - Lamd(lon0=lon0)\n        return Distance2Tuple(hypot(m, n), atan2b(n, m))\n\n    @Property_RO\n    def e(self):\n        '''Get the I{unsigned, (1st) eccentricity} (C{float}), M{sqrt(1 - (b / a)**2))}, see C{a_b2e}.\n\n           @see: Property L{es}.\n        '''\n        return Float(e=sqrt(self.e2abs) if self.e2 else _0_0)\n\n    @deprecated_Property_RO\n    def e12(self):  # see property ._e12\n        '''DEPRECATED, use property C{e21}.'''\n        return self.e21\n\n#   @Property_RO\n#   def _e12(self):  # see property ._elliptic_e12\n#       # (INTERNAL) until e12 above can be replaced with e21.\n#       return self.e2 / (_1_0 - self.e2)  # see I{Karney}'s Ellipsoid._e12 = e2 / (1 - e2)\n\n    @Property_RO\n    def e2(self):\n        '''Get the I{signed, (1st) eccentricity squared} (C{float}), M{f * (2 - f)\n           == 1 - (b / a)**2}, see C{a_b2e2}.\n        '''\n        return self._assert(a_b2e2(self.a, self.b), e2=f2e2(self.f))\n\n    @Property_RO\n    def e2abs(self):\n        '''Get the I{unsigned, (1st) eccentricity squared} (C{float}).\n        '''\n        return fabs(self.e2)\n\n    @Property_RO\n    def e21(self):\n        '''Get 1 less I{1st eccentricity squared} (C{float}), M{1 - e**2}\n           == M{1 - e2} == M{(1 - f)**2} == M{b**2 / a**2}, see C{b2_a2}.\n        '''\n        return self._assert((_1_0 - self.f)**2, e21=_1_0 - self.e2, f0=_1_0)\n\n#   _e2m   = e21  # see I{Karney}'s Ellipsoid._e2m = 1 - _e2\n    _1_e21 = a2_b2  # == M{1 / e21} == M{1 / (1 - e**2)}\n\n    @Property_RO\n    def e22(self):\n        '''Get the I{signed, 2nd eccentricity squared} (C{float}), M{e2 / (1 - e2)\n           == e2 / (1 - f)**2 == (a / b)**2 - 1}, see C{a_b2e22}.\n        '''\n        return self._assert(a_b2e22(self.a, self.b), e22=f2e22(self.f))\n\n    @Property_RO\n    def e22abs(self):\n        '''Get the I{unsigned, 2nd eccentricity squared} (C{float}).\n        '''\n        return fabs(self.e22)\n\n    @Property_RO\n    def e32(self):\n        '''Get the I{signed, 3rd eccentricity squared} (C{float}), M{e2 / (2 - e2)\n           == (a**2 - b**2) / (a**2 + b**2)}, see C{a_b2e32}.\n        '''\n        return self._assert(a_b2e32(self.a, self.b), e32=f2e32(self.f))\n\n    @Property_RO\n    def e32abs(self):\n        '''Get the I{unsigned, 3rd eccentricity squared} (C{float}).\n        '''\n        return fabs(self.e32)\n\n    @Property_RO\n    def e4(self):\n        '''Get the I{unsignd, (1st) eccentricity} to 4th power (C{float}), M{e**4 == e2**2}.\n        '''\n        return Float(e4=self.e2**2 if self.e2 else _0_0)\n\n    eccentricity     = e    # eccentricity\n#   eccentricity2    = e2   # eccentricity squared\n    eccentricity1st2 = e2   # first eccentricity squared, signed\n    eccentricity2nd2 = e22  # second eccentricity squared, signed\n    eccentricity3rd2 = e32  # third eccentricity squared, signed\n\n    def ecef(self, Ecef=None):\n        '''Return U{ECEF<https://WikiPedia.org/wiki/ECEF>} converter.\n\n           @kwarg Ecef: ECEF class to use, default L{EcefKarney}.\n\n           @return: An ECEF converter for this C{ellipsoid}.\n\n           @raise TypeError: Invalid B{C{Ecef}}.\n\n           @see: Module L{pygeodesy.ecef}.\n        '''\n        return _MODS.ecef._4Ecef(self, Ecef)\n\n    @Property_RO\n    def _elliptic_e12(self):  # see I{Karney}'s Ellipsoid._e12\n        '''(INTERNAL) Elliptic helper for C{Rhumb}.\n        '''\n        e12 = _over(self.e2, self.e2 - _1_0)  # NOT DEPRECATED .e12!\n        return _MODS.elliptic.Elliptic(e12)\n\n    @Property_RO\n    def _elliptic_e22(self):  # aka ._elliptic_ep2\n        '''(INTERNAL) Elliptic helper for C{auxRectifying}, C{L}, C{Llat}.\n        '''\n        return _MODS.elliptic.Elliptic(-self.e22abs)  # complex\n\n    equatoradius = a  # Requatorial\n\n    @Property_RO\n    def equatorimeter(self):\n        '''Get the ellipsoid's I{equatorial} perimeter (C{meter}).\n        '''\n        return Meter(equatorimeter=self.a * PI2)\n\n    def e2s(self, s):\n        '''Compute norm M{sqrt(1 - e2 * s**2)}.\n\n           @arg s: Sine value (C{scalar}).\n\n           @return: Norm (C{float}).\n\n           @raise ValueError: Invalid B{C{s}}.\n        '''\n        return sqrt(self.e2s2(s)) if self.e2 else _1_0\n\n    def e2s2(self, s):\n        '''Compute M{1 - e2 * s**2}.\n\n           @arg s: Sine value (C{scalar}).\n\n           @return: Result (C{float}).\n\n           @raise ValueError: Invalid B{C{s}}.\n        '''\n        r, e2 = _1_0, self.e2\n        if e2:  # and s\n            try:\n                r -= e2 * Scalar(s=s)**2\n                if r < 0:\n                    raise ValueError(_negative_)\n            except (TypeError, ValueError) as x:\n                t = self._DOT_(typename(Ellipsoid.e2s2))\n                raise _ValueError(t, s, cause=x)\n        return r\n\n    @Property_RO\n    def es(self):\n        '''Get the I{signed (1st) eccentricity} (C{float}).\n\n           @see: Property L{e}.\n        '''\n        # note, self.e is always non-negative\n        return Float(es=copysign0(self.e, self.f))  # see .ups\n\n    def es_atanh(self, x):\n        '''Compute M{es * atanh(es * x)} or M{-es * atan(es * x)}\n           for I{oblate} respectively I{prolate} ellipsoids where\n           I{es} is the I{signed} (1st) eccentricity.\n\n           @raise ValueError: Invalid B{C{x}}.\n\n           @see: Function U{Math::eatanhe<https://GeographicLib.SourceForge.io/\n                 C++/doc/classGeographicLib_1_1Math.html>}.\n        '''\n        return self._es_atanh(Scalar(x=x)) if self.f else _0_0\n\n    def _es_atanh(self, x):  # see .albers._atanhee, .AuxLat._atanhee\n        '''(INTERNAL) Helper for .es_atanh, ._es_taupf2 and ._exp_es_atanh.\n        '''\n        es = self.es  # signOf(es) == signOf(f)\n        return es * (atanh(es * x) if es > 0 else  # .isOblate\n                    (-atan(es * x) if es < 0 else  # .isProlate\n                     _0_0))  # .isSpherical\n\n    @Property_RO\n    def es_c(self):\n        '''Get M{(1 - f) * exp(es_atanh(1))} (C{float}), M{b_a * exp(es_atanh(1))}.\n        '''\n        return Float(es_c=(self._exp_es_atanh_1 * self.b_a) if self.f else _1_0)\n\n    def es_tauf(self, taup):\n        '''Compute I{Karney}'s U{equations (19), (20) and (21)\n           <https://ArXiv.org/abs/1002.1417>}.\n\n           @see: I{Karney}'s C++ method U{Math::tauf<https://GeographicLib.\n                 SourceForge.io/C++/doc/classGeographicLib_1_1Math.html>} and\n                 and I{Veness}' JavaScript method U{toLatLon<https://www.\n                 Movable-Type.co.UK/scripts/latlong-utm-mgrs.html>}.\n        '''\n        t = Scalar(taup=taup)\n        if self.f:  # .isEllipsoidal\n            a =  fabs(t)\n            T = (self._exp_es_atanh_1 if a > 70 else self._1_e21) * t\n            if fabs(T * _EPSqrt) < _2_0:  # handles +/- INF and NAN\n                s = (a * _TOL) if a > _1_0 else _TOL\n                for T, _, d in self._es_tauf3(t, T):  # max 2\n                    if fabs(d) < s:\n                        break\n            t = Scalar(tauf=T)\n        return t\n\n    def _es_tauf3(self, taup, T, N=9):  # in .utm.Utm._toLLEB\n        '''(INTERNAL) Yield a 3-tuple C{(τi, iteration, delta)} for at most\n           B{C{N}} Newton iterations, converging rapidly except when C{delta}\n           toggles on +/-1.12e-16 or +/-4.47e-16, see C{.utm.Utm._toLLEB}.\n        '''\n        e    = self._1_e21\n        _F2_ = Fsum(T).fsum2f_  # τ0\n        _tf2 = self._es_taupf2\n        for i in range(1, N + 1):\n            a, h = _tf2(T)\n            # = (taup - a) / hypot1(a) / ((e + T**2) / h)\n            d = _over((taup - a) * (T**2 + e), hypot1(a) * h)\n            T, d = _F2_(d)  # τi, (τi - τi-1)\n            yield T, i, d\n\n    def es_taupf(self, tau):\n        '''Compute I{Karney}'s U{equations (7), (8) and (9)\n           <https://ArXiv.org/abs/1002.1417>}.\n\n           @see: I{Karney}'s C++ method U{Math::taupf<https://GeographicLib.\n                 SourceForge.io/C++/doc/classGeographicLib_1_1Math.html>}.\n        '''\n        t = Scalar(tau=tau)\n        if self.f:  # .isEllipsoidal\n            t, _ = self._es_taupf2(t)\n            t = Scalar(taupf=t)\n        return t\n\n    def _es_taupf2(self, tau):\n        '''(INTERNAL) Return 2-tuple C{(es_taupf(tau), hypot1(tau))}.\n        '''\n        if _isfinite(tau):\n            h = hypot1(tau)\n            s = sinh(self._es_atanh(tau / h))\n            a = hypot1(s) * tau - h * s\n        else:\n            a, h = tau, INF\n        return a, h\n\n    @Property_RO\n    def _exp_es_atanh_1(self):\n        '''(INTERNAL) Helper for .es_c and .es_tauf.\n        '''\n        return exp(self._es_atanh(_1_0)) if self.es else _1_0\n\n    @Property_RO\n    def f(self):\n        '''Get the I{flattening} (C{scalar}), M{(a - b) / a}, C{0} for spherical, negative for prolate.\n        '''\n        return self._f\n\n    @Property_RO\n    def f_(self):\n        '''Get the I{inverse flattening} (C{scalar}), M{1 / f} == M{a / (a - b)}, C{0} for spherical, see C{a_b2f_}.\n        '''\n        return self._f_\n\n    @Property_RO\n    def f1(self):\n        '''Get the I{1 - flattening} (C{float}), M{f1 == 1 - f == b / a}.\n\n           @see: Property L{b_a}.\n        '''\n        return Float(f1=_1_0 - self.f)\n\n    @Property_RO\n    def f2(self):\n        '''Get the I{2nd flattening} (C{float}), M{(a - b) / b == f / (1 - f)}, C{0} for spherical, see C{a_b2f2}.\n        '''\n        return self._assert(self.a_b - _1_0, f2=f2f2(self.f))\n\n    @deprecated_Property_RO\n    def geodesic(self):\n        '''DEPRECATED, use property C{geodesicw}.'''\n        return self.geodesicw\n\n    def geodesic_(self, exact=True):\n        '''Get the an I{exact} C{Geodesic...} instance for this ellipsoid.\n\n           @kwarg exact: If C{bool} return L{GeodesicExact}C{(exact=B{exact}, ...)},\n                         otherwise a L{Geodesic}, L{GeodesicExact} or L{GeodesicSolve}\n                         instance for I{this} ellipsoid.\n\n           @return: The C{exact} geodesic (C{Geodesic...}).\n\n           @raise TypeError: Invalid B{C{exact}}.\n\n           @raise ValueError: Incompatible B{C{exact}} ellipsoid.\n        '''\n        if isbool(exact):  # for consistenccy with C{.rhumb_}\n            g = _MODS.geodesicx.GeodesicExact(self, C4order=30 if exact else 24,\n                                              name=self.name)\n        else:\n            g =  exact\n            E = _xattr(g, ellipsoid=None)\n            if not (E is self and isinstance(g, self._Geodesics)):\n                raise _ValueError(exact=g, ellipsoid=E, txt_not_=self.name)\n        return g\n\n    @property_ROver\n    def _Geodesics(self):\n        '''(INTERNAL) Get all C{Geodesic...} classes, I{once}.\n        '''\n        t = (_MODS.geodesicx.GeodesicExact,\n             _MODS.geodsolve.GeodesicSolve)\n        try:\n            t += (_MODS.geodesicw.Geodesic,\n                  _MODS.geodesicw._wrapped.Geodesic)\n        except ImportError:\n            pass\n        return t  # overwrite property_ROver\n\n    @property_RO\n    def geodesicw(self):\n        '''Get this ellipsoid's I{wrapped} U{geodesicw.Geodesic\n           <https://GeographicLib.SourceForge.io/Python/doc/code.html>}, provided\n           I{Karney}'s U{geographiclib<https://PyPI.org/project/geographiclib>}\n           package is installed.\n        '''\n        # if not self.isEllipsoidal:\n        #     raise _IsnotError(_ellipsoidal_, ellipsoid=self)\n        return _MODS.geodesicw.Geodesic(self)\n\n    @property_RO\n    def geodesicx(self):\n        '''Get this ellipsoid's I{exact} L{GeodesicExact}.\n        '''\n        # if not self.isEllipsoidal:\n        #     raise _IsnotError(_ellipsoidal_, ellipsoid=self)\n        return _MODS.geodesicx.GeodesicExact(self, name=self.name)\n\n    @property\n    def geodsolve(self):\n        '''Get this ellipsoid's L{GeodesicSolve}, the I{wrapper} around utility\n           U{GeodSolve<https://GeographicLib.SourceForge.io/C++/doc/GeodSolve.1.html>},\n           provided the path to the C{GeodSolve} executable is specified with env\n           variable C{PYGEODESY_GEODSOLVE} or re-/set with this property..\n        '''\n        # if not self.isEllipsoidal:\n        #     raise _IsnotError(_ellipsoidal_, ellipsoid=self)\n        return _MODS.geodsolve.GeodesicSolve(self, path=self._geodsolve, name=self.name)\n\n    @geodsolve.setter  # PYCHOK setter!\n    def geodsolve(self, path):\n        '''Re-/set the (fully qualified) path to the U{GeodSolve\n           <https://GeographicLib.SourceForge.io/C++/doc/GeodSolve.1.html>} executable,\n           overriding env variable C{PYGEODESY_GEODSOLVE} (C{str}).\n        '''\n        self._geodsolve = path\n\n    def hartzell4(self, pov, los=None):\n        '''Compute the intersection of this ellipsoid's surface and a Line-Of-Sight\n           from a Point-Of-View in space.\n\n           @arg pov: Point-Of-View outside this ellipsoid (C{Cartesian}, L{Ecef9Tuple}\n                     or L{Vector3d}).\n           @kwarg los: Line-Of-Sight, I{direction} to this ellipsoid (L{Los}, L{Vector3d})\n                       or C{True} for the I{normal, perpendicular, plumb} to the surface\n                       of this ellipsoid or C{False} or C{None} to point to its center.\n\n           @return: L{Vector4Tuple}C{(x, y, z, h)} with the cartesian coordinates C{x},\n                    C{y} and C{z} of the projection on or the intersection with this\n                    ellipsoid and the I{distance} C{h} from B{C{pov}} to C{(x, y, z)}\n                    along B{C{los}}, all in C{meter}, conventionally.\n\n           @raise IntersectionError: Null B{C{pov}} or B{C{los}} vector, or B{C{pov}}\n                                     is inside this ellipsoid or B{C{los}} points\n                                     outside this ellipsoid or in opposite direction.\n\n           @raise TypeError: Invalid B{C{pov}} or B{C{los}}.\n\n           @see: U{I{Satellite Line-of-Sight Intersection with Earth}<https://StephenHartzell.\n                 Medium.com/satellite-line-of-sight-intersection-with-earth-d786b4a6a9b6>} and\n                 methods L{Ellipsoid.height4} and L{Triaxial.hartzell4}.\n        '''\n        try:\n            m = _MODS._triaxials_triaxial5\n            v, d, i = m._hartzell3(pov, los, self._triaxial)\n        except Exception as x:\n            raise IntersectionError(pov=pov, los=los, cause=x)\n        return Vector4Tuple(v.x, v.y, v.z, d, iteration=i, name__=self.hartzell4)\n\n    @Property_RO\n    def _hash(self):\n        return hash((self.a, self.f))\n\n    def height4(self, xyz, normal=True):\n        '''Compute the projection on and the height of a cartesian above or below\n           this ellipsoid's surface.\n\n           @arg xyz: The cartesian (C{Cartesian}, L{Ecef9Tuple}, L{Vector3d},\n                     L{Vector3Tuple} or L{Vector4Tuple}).\n           @kwarg normal: If C{True}, the projection is perpendicular to (the nearest\n                          point on) this ellipsoid's surface, otherwise the C{radial}\n                          line to this ellipsoid's center (C{bool}).\n\n           @return: L{Vector4Tuple}C{(x, y, z, h)} with the cartesian coordinates C{x},\n                    C{y} and C{z} of the projection on and the height C{h} above or\n                    below this ellipsoid's surface, all in C{meter}, conventionally.\n\n           @raise ValueError: Null B{C{xyz}}.\n\n           @raise TypeError: Non-cartesian B{C{xyz}}.\n\n           @see: U{Distance to<https://StackOverflow.com/questions/22959698/distance-from-given-point-to-given-ellipse>}\n                 and U{intersection with<https://MathWorld.Wolfram.com/Ellipse-LineIntersection.html>} an ellipse and\n                 methods L{Ellipsoid.hartzell4} and L{Triaxial.height4}.\n        '''\n        v = _MODS.vector3d._otherV3d(xyz=xyz)\n        r =  v.length\n\n        a, b, i = self.a, self.b, None\n        if r < EPS0:  # EPS\n            v =  v.times(_0_0)\n            h = -a\n\n        elif self.isSpherical:\n            v = v.times(a / r)\n            h = r - a\n\n        elif normal:  # perpendicular to ellipsoid\n            x, y = hypot(v.x, v.y), fabs(v.z)\n            if x < EPS0:  # PYCHOK no cover\n                z = copysign0(b, v.z)\n                v = Vector3Tuple(v.x, v.y, z)\n                h = y - b  # polar\n            elif y < EPS0:  # PYCHOK no cover\n                t = a / r\n                v = v.times_(t, t, 0)  # force z=0.0\n                h = x - a  # equatorial\n            else:  # normal in 1st quadrant\n                m = _MODS._triaxials_triaxial5\n                x, y, i = m._plumbTo3(x, y, self)\n                t, v = v, v.times_(x, x, y)\n                h = t.minus(v).length\n\n        else:  # radial to ellipsoid's center\n            h =  hypot_(a * v.z, b * v.x, b * v.y)\n            t = (a * b / h) if h > EPS0 else _0_0  # EPS\n            v =  v.times(t)\n            h =  r * (_1_0 - t)\n\n        return Vector4Tuple(v.x, v.y, v.z, h, iteration=i, name__=self.height4)\n\n    def _heightB(self, sa, ca, z, p):  # in ecef.EcefSudano, ecec.EcefVeness\n        '''(INTERNAL) Height above ellipsoid (Bowring eqn 7) at C{lat}.\n        '''\n        # sa, ca = sincos2d(lat)\n        # p = hypot(x, y)  # distance to polar axis\n\n        # r = a / self.e2s(sa)  # length of normal terminated by polar axis\n        # h = p * ca + z * sa - (a * a / r)\n        return (p * ca + fabs(z * sa) - self.a * self.e2s(sa)) if sa else (p - self.a)\n\n    @Property_RO\n    def _heightMax(self):\n        '''(INTERNAL) Get the height limit (C{meter}, conventionally).\n        '''\n        return self.a / EPS_2  # self.a * _2_EPS, about 12M lightyears\n\n    def _hubeny_2(self, phi2, phi1, lam21, scaled=True, squared=True):\n        '''(INTERNAL) like function C{pygeodesy.flatLocal_}/C{pygeodesy.hubeny_},\n           returning the I{angular} distance in C{radians squared} or C{radians}\n        '''\n        m, n = self.roc2_((phi2 + phi1) * _0_5, scaled=scaled)\n        h, r = (hypot2, self.a2_) if squared else (hypot, _1_0 / self.a)\n        return h(m * (phi2 - phi1), n * lam21) * r\n\n    @Property_RO\n    def isEllipsoidal(self):\n        '''Is this model I{ellipsoidal} (C{bool})?\n        '''\n        return self.f != 0\n\n    @Property_RO\n    def isOblate(self):\n        '''Is this ellipsoid I{oblate} (C{bool})?  I{Prolate} or\n           spherical otherwise.\n        '''\n        return self.f > 0\n\n    @Property_RO\n    def isProlate(self):\n        '''Is this ellipsoid I{prolate} (C{bool})?  I{Oblate} or\n           spherical otherwise.\n        '''\n        return self.f < 0\n\n    @Property_RO\n    def isSpherical(self):\n        '''Is this ellipsoid I{spherical} (C{bool})?\n        '''\n        return self.f == 0\n\n    def _Kseries(self, *AB8Ks):\n        '''(INTERNAL) Compute the 4-, 6- or 8-th order I{Krüger} Alpha\n           or Beta series coefficients per I{Karney}'s U{equations (35)\n           and (36)<https://ArXiv.org/pdf/1002.1417v3.pdf>}.\n\n           @arg AB8Ks: 8-Tuple of 8-th order I{Krüger} Alpha or Beta series\n                       coefficient tuples.\n\n           @return: I{Krüger} series coefficients (L{KsOrder}C{-tuple}).\n\n           @see: I{Karney}'s 30-th order U{TMseries30\n                 <https://GeographicLib.SourceForge.io/C++/doc/tmseries30.html>}.\n        '''\n        k = self.KsOrder\n        if self.n:\n            ns = fpowers(self.n, k)\n            ks = tuple(fdot(AB8Ks[i][:k-i], *ns[i:]) for i in range(k))\n        else:\n            ks = _0_0s(k)\n        return ks\n\n    @property_doc_(''' the I{Krüger} series' order (C{int}), see properties C{AlphaKs}, C{BetaKs}.''')\n    def KsOrder(self):\n        '''Get the I{Krüger} series' order (C{int} 4, 6 or 8).\n        '''\n        return self._KsOrder\n\n    @KsOrder.setter  # PYCHOK setter!\n    def KsOrder(self, order):\n        '''Set the I{Krüger} series' order (C{int} 4, 6 or 8).\n\n           @raise ValueError: Invalid B{C{order}}.\n        '''\n        if not (isint(order) and _isin(order, 4, 6, 8)):\n            raise _ValueError(order=order)\n        if self._KsOrder != order:\n            Ellipsoid.AlphaKs._update(self)\n            Ellipsoid.BetaKs._update(self)\n            self._KsOrder = order\n\n    @Property_RO\n    def L(self):\n        '''Get the I{quarter meridian} C{L}, aka the C{polar distance}\n           along a meridian between the equator and a pole (C{meter}),\n           M{b * Elliptic(-e2 / (1 - e2)).cE} or M{b * PI / 2}.\n        '''\n        r = self._elliptic_e22.cE if self.f else PI_2\n        return Distance(L=self.b * r)\n\n    def Llat(self, lat):\n        '''Return the I{meridional length}, the distance along a meridian\n           between the equator and a (geodetic) latitude, see C{L}.\n\n           @arg lat: Geodetic latitude (C{degrees90}).\n\n           @return: The meridional length at B{C{lat}}, negative on southern\n                    hemisphere (C{meter}).\n        '''\n        r = self._elliptic_e22.fEd(self.auxParametric(lat)) if self.f else Phid(lat)\n        return Distance(Llat=self.b * r)\n\n    Lmeridian = Llat  # meridional distance\n\n    @property_RO\n    def _Lpd(self):\n        '''Get the I{quarter meridian} per degree (C{meter}), M{self.L / 90}.\n        '''\n        return Meter(_Lpd=self.L / _90_0)\n\n    @property_RO\n    def _Lpr(self):\n        '''Get the I{quarter meridian} per radian (C{meter}), M{self.L / PI_2}.\n        '''\n        return Meter(_Lpr=self.L / PI_2)\n\n    @deprecated_Property_RO\n    def majoradius(self):  # PYCHOK no cover\n        '''DEPRECATED, use property C{a} or C{Requatorial}.'''\n        return self.a\n\n    def m2degrees(self, distance, lat=0):\n        '''Convert a distance to an arc in degrees along the equator or\n           along a parallel of (geodetic) latitude.\n\n           @arg distance: Distance (C{meter}).\n           @kwarg lat: Parallel latitude (C{degrees90}, C{str}).\n\n           @return: Angle (C{degrees}) or C{0} for near-polar B{C{lat}}.\n\n           @raise RangeError: Latitude B{C{lat}} outside valid range and\n                              L{rangerrors<pygeodesy.rangerrors>} is C{True}.\n\n           @raise ValueError: Invalid B{C{distance}} or B{C{lat}}.\n       '''\n        return degrees(self.m2radians(distance, lat=lat))\n\n    def m2radians(self, distance, lat=0):\n        '''Convert a distance to an angle along the equator or along\n           a parallel of (geodetic) latitude.\n\n           @arg distance: Distance (C{meter}).\n           @kwarg lat: Parallel latitude (C{degrees90}, C{str}).\n\n           @return: Angle (C{radians}) or C{INF} for near-polar B{C{lat}}.\n\n           @raise RangeError: Latitude B{C{lat}} outside valid range and\n                              L{rangerrors<pygeodesy.rangerrors>} is C{True}.\n\n           @raise ValueError: Invalid B{C{distance}} or B{C{lat}}.\n        '''\n        r = self.circle4(lat).radius if lat else self.a\n        return m2radians(distance, radius=r, lat=0)\n\n    @deprecated_Property_RO\n    def minoradius(self):  # PYCHOK no cover\n        '''DEPRECATED, use property C{b}, C{polaradius} or C{Rpolar}.'''\n        return self.b\n\n    @Property_RO\n    def n(self):\n        '''Get the I{3rd flattening} (C{float}), M{f / (2 - f) == (a - b) / (a + b)}, see C{a_b2n}.\n        '''\n        return self._assert(a_b2n(self.a, self.b), n=f2n(self.f))\n\n    flattening    = f\n    flattening1st = f\n    flattening2nd = f2\n    flattening3rd = n\n\n    polaradius = b  # Rpolar\n\n    @property_RO\n    def polarimeter(self):\n        '''Get the ellipsoid's I{polar}, meridional perimeter (C{meter}).\n        '''\n        return Meter(polarimeter=self.L * _4_0)\n\n#   Q = A  # I{meridian arc unit} C{Q}, the mean, meridional length I{per radian}\n\n    @deprecated_Property_RO\n    def quarteradius(self):  # PYCHOK no cover\n        '''DEPRECATED, use property C{L} or method C{Llat}.'''\n        return self.L\n\n    @Property_RO\n    def R1(self):\n        '''Get the I{mean} earth radius per I{IUGG} (C{meter}), M{(2 * a + b) / 3 == a * (1 - f / 3)}.\n\n           @see: U{Earth radius<https://WikiPedia.org/wiki/Earth_radius>}\n                 and method C{Rgeometric}.\n        '''\n        return Radius(R1=fmean_(self.a, self.a, self.b) if self.f else self.a)\n\n    Rmean = R1\n\n    @Property_RO\n    def R2(self):\n        '''Get the I{authalic} earth radius (C{meter}), M{sqrt(c2)}.\n\n           @see: C{R2x}, C{c2}, C{area} and U{Earth radius\n                 <https://WikiPedia.org/wiki/Earth_radius>}.\n        '''\n        return Radius(R2=sqrt(self.c2) if self.f else self.a)\n#       # Moritz, H. <https://Geodesy.Geology.Ohio-State.edu/course/refpapers/00740128.pdf>\n#       # R2 = (1 - 2/3 * e'2 + 26/45 * e'4 - 100/189 * e'6 + 7034/14175 * e'8) * rocPolar\n#       #    = (3 + e'2 * (-2 + e'2 * (26/15 + e'2 * (-100/63 + e'2 * 7034/4725)))) * rocPolar / 3\n#       return Fhorner(self.e22, 3, -2, 26 / 15, -100 / 63, 7034 / 4725).fover(3 / self.rocPolar)\n\n    Rauthalic = R2\n\n    @Property_RO\n    def R2x(self):\n        '''Get the I{authalic} earth radius (C{meter}), M{sqrt(c2x)}.\n\n           @see: C{R2}, C{c2x} and C{areax}.\n        '''\n        return Radius(R2x=sqrt(self.c2x) if self.f else self.a)\n\n    Rauthalicx = R2x\n\n    @Property_RO\n    def R3(self):\n        '''Get the I{volumetric} earth radius (C{meter}), M{(a * a * b)**(1/3)}.\n\n           @see: U{Earth radius<https://WikiPedia.org/wiki/Earth_radius>} and C{volume}.\n        '''\n        r = (cbrt(self.b_a) * self.a) if self.f else self.a\n        return Radius(R3=r)\n\n    Rvolumetric = R3\n\n    def radians2m(self, rad, lat=0):\n        '''Convert an angle to the distance along the equator or along\n           a parallel of (geodetic) latitude.\n\n           @arg rad: The angle (C{radians}).\n           @kwarg lat: Parallel latitude (C{degrees90}, C{str}).\n\n           @return: Distance (C{meter}, same units as the equatorial\n                    and polar radii) or C{0} for near-polar B{C{lat}}.\n\n           @raise RangeError: Latitude B{C{lat}} outside valid range and\n                              L{rangerrors<pygeodesy.rangerrors>} is C{True}.\n\n           @raise ValueError: Invalid B{C{rad}} or B{C{lat}}.\n        '''\n        r = self.circle4(lat).radius if lat else self.a\n        return radians2m(rad, radius=r, lat=0)\n\n    @Property_RO\n    def Rbiaxial(self):\n        '''Get the I{biaxial, quadratic} mean earth radius (C{meter}), M{sqrt((a**2 + b**2) / 2)}.\n\n           @see: C{Rtriaxial}\n        '''\n        a, b = self.a, self.b\n        if b != a:\n            b = hypot(a, b) / _SQRT2\n        return Radius(Rbiaxial=b)\n\n    Requatorial = a  # for consistent naming\n\n    def Rgeocentric(self, lat):\n        '''Compute the I{geocentric} earth radius of (geodetic) latitude.\n\n           @arg lat: Latitude (C{degrees90}).\n\n           @return: Geocentric earth radius (C{meter}).\n\n           @raise ValueError: Invalid B{C{lat}}.\n\n           @see: U{Geocentric Radius\n                 <https://WikiPedia.org/wiki/Earth_radius#Geocentric_radius>}\n        '''\n        r, p = self.a, Phid(lat)\n        if p and self.f:\n            if fabs(p) < PI_2:\n                s2, c2 = _sin2cos2(p)\n                # R == sqrt((a2**2 * c2 + b2**2 * s2) / (a2 * c2 + b2 * s2))\n                #   == sqrt(a2**2 * (c2 + (b2 / a2)**2 * s2) / (a2 * (c2 + b2 / a2 * s2)))\n                #   == sqrt(a2 * (c2 + (b2 / a2)**2 * s2) / (c2 + (b2 / a2) * s2))\n                #   == a * sqrt((c2 + b2_a2 * b2_a2 * s2) / (c2 + b2_a2 * s2))\n                s2 *= self.b2_a2\n                r  *= sqrt((c2 + self.b2_a2 * s2) / (c2 + s2))\n            else:\n                r = self.b\n        return Radius(Rgeocentric=r)\n\n    @Property_RO\n    def Rgeometric(self):\n        '''Get the I{geometric} mean earth radius (C{meter}), M{sqrt(a * b)}.\n\n           @see: C{R1}.\n        '''\n        g = sqrt(self.a * self.b) if self.f else self.a\n        return Radius(Rgeometric=g)\n\n    def rhumb_(self, exact=True):\n        '''Get the an I{exact} C{Rhumb...} instance for this ellipsoid.\n\n           @kwarg exact: If C{bool} or C{None} return L{Rhumb}C{(exact=B{exact}, ...)},\n                         otherwise a L{Rhumb}, L{RhumbAux} or L{RhumbSolve} instance\n                         for I{this} ellipsoid.\n\n           @return: The C{exact} rhumb (C{Rhumb...}).\n\n           @raise TypeError: Invalid B{C{exact}}.\n\n           @raise ValueError: Incompatible B{C{exact}} ellipsoid.\n        '''\n        if isbool(exact):  # use Rhumb for backward compatibility\n            r = _MODS.rhumb.ekx.Rhumb(self, exact=exact, name=self.name)\n        else:\n            r =  exact\n            E = _xattr(r, ellipsoid=None)\n            if not (E is self and isinstance(r, self._Rhumbs)):\n                raise _ValueError(exact=r, ellipsosid=E, txt_not_=self.name)\n        return r\n\n    @property_RO\n    def rhumbaux(self):\n        '''Get this ellipsoid's I{Auxiliary} C{rhumb.RhumbAux}.\n        '''\n        # if not self.isEllipsoidal:\n        #     raise _IsnotError(_ellipsoidal_, ellipsoid=self)\n        return _MODS.rhumb.aux_.RhumbAux(self, name=self.name)\n\n    @property_RO\n    def rhumbekx(self):\n        '''Get this ellipsoid's I{Elliptic, Krüger} C{rhumb.Rhumb}.\n        '''\n        # if not self.isEllipsoidal:\n        #     raise _IsnotError(_ellipsoidal_, ellipsoid=self)\n        return _MODS.rhumb.ekx.Rhumb(self, name=self.name)\n\n    @property_ROver\n    def _Rhumbs(self):\n        '''(INTERNAL) Get all C{Rhumb...} classes, I{once}.\n        '''\n        r = _MODS.rhumb\n        return (r.aux_.RhumbAux,  # overwrite property_ROver\n                r.ekx.Rhumb, r.solve.RhumbSolve)\n\n    @property\n    def rhumbsolve(self):\n        '''Get this ellipsoid's L{RhumbSolve}, the I{wrapper} around utility\n           U{RhumbSolve<https://GeographicLib.SourceForge.io/C++/doc/GeodSolve.1.html>},\n           provided the path to the C{RhumbSolve} executable is specified with env\n           variable C{PYGEODESY_RHUMBSOLVE} or re-/set with this property.\n        '''\n        # if not self.isEllipsoidal:\n        #     raise _IsnotError(_ellipsoidal_, ellipsoid=self)\n        return _MODS.rhumb.solve.RhumbSolve(self, path=self._rhumbsolve, name=self.name)\n\n    @rhumbsolve.setter  # PYCHOK setter!\n    def rhumbsolve(self, path):\n        '''Re-/set the (fully qualified) path to the U{RhumbSolve\n           <https://GeographicLib.SourceForge.io/C++/doc/GeodSolve.1.html>} executable,\n           overriding env variable C{PYGEODESY_RHUMBSOLVE} (C{str}).\n        '''\n        self._rhumbsolve = path\n\n    @deprecated_property_RO\n    def rhumbx(self):\n        '''DEPRECATED on 2023.11.28, use property C{rhumbekx}.'''\n        return self.rhumbekx\n\n    def Rlat(self, lat):\n        '''I{Average} the earth radius between C{equatoradius} at C{0} and\n           C{polaradius} at C{+/-90} degrees latitude.\n\n           @arg lat: Latitude (C{degrees90}, C{str} or C{Ang}).\n\n           @return: Averaged earth radius (C{meter}).\n\n           @raise RangeError: Latitude B{C{lat}} outside valid range, only if\n                              L{rangerrors<pygeodesy.rangerrors>} is C{True}.\n\n           @raise TypeError: Invalid B{C{lat}}.\n\n           @raise ValueError: Invalid B{C{lat}}.\n        '''\n        # r = a - (a - b) * |lat| / 90\n        r = self.a\n        if self.f:  # .isEllipsoidal\n            lat = _Lat0(lat)\n            if lat:\n                r -= (r - self.b) * fabs(lat) / _90_0\n                r  =  Radius(Rlat=r)\n        return r\n\n    Rpolar = b  # for consistent naming\n\n    def roc1_(self, sa, ca=None):\n        '''Compute the I{prime-vertical}, I{normal} radius of curvature\n           of (geodetic) latitude, I{unscaled}.\n\n           @arg sa: Sine of the latitude (C{float}, [-1.0..+1.0]).\n           @kwarg ca: Optional cosine of the latitude (C{float}, [-1.0..+1.0])\n                      to use an alternate formula.\n\n           @return: The prime-vertical radius of curvature (C{float}).\n\n           @note: The delta between both formulae with C{Ellipsoids.WGS84}\n                  is less than 2 nanometer over the entire latitude range.\n\n           @see: Method L{roc2_} and class L{EcefYou}.\n        '''\n        if sa and self.f:  # .isEllipsoidal\n            if ca is None:\n                r = self.e2s2(sa)  # see .roc2_ and _EcefBase._forward\n                n = sqrt(self.a2 / r) if r > EPS02 else _0_0\n            elif ca:  # derived from EcefYou.forward\n                h = hypot(ca, self.b_a * sa)\n                n = self.a / h\n            else:\n                n = self.a2_b / fabs(sa)\n        else:\n            n = self.a\n        return n\n\n    def roc2(self, lat, scaled=False):\n        '''Compute the I{meridional} and I{prime-vertical}, I{normal}\n           radii of curvature of (geodetic) latitude.\n\n           @arg lat: Latitude (C{degrees90}).\n           @kwarg scaled: Scale prime_vertical by C{cos(radians(B{lat}))} (C{bool}).\n\n           @return: An L{Curvature2Tuple}C{(meridional, prime_vertical)} with\n                    the radii of curvature.\n\n           @raise ValueError: Invalid B{C{lat}}.\n\n           @see: Methods L{roc2_} and L{roc1_}, U{Local, flat earth approximation\n                 <https://www.EdWilliams.org/avform.htm#flat>} and meridional and\n                 prime vertical U{Radii of Curvature<https://WikiPedia.org/wiki/\n                 Earth_radius#Radii_of_curvature>}.\n        '''\n        return self.roc2_(Phid(lat), scaled=scaled)\n\n    def roc2_(self, phi, scaled=False):\n        '''Compute the I{meridional} and I{prime-vertical}, I{normal} radii of\n           curvature of (geodetic) latitude.\n\n           @arg phi: Latitude (C{radians}).\n           @kwarg scaled: Scale prime_vertical by C{cos(B{phi})} (C{bool}).\n\n           @return: An L{Curvature2Tuple}C{(meridional, prime_vertical)} with the\n                    radii of curvature.\n\n           @raise ValueError: Invalid B{C{phi}}.\n\n           @see: Methods L{roc2} and L{roc1_}, property L{rocEquatorial2}, U{Local,\n                 flat earth approximation<https://www.EdWilliams.org/avform.htm#flat>}\n                 and the meridional and prime vertical U{Radii of Curvature\n                 <https://WikiPedia.org/wiki/Earth_radius#Radii_of_curvature>}.\n        '''\n        p = fabs(Phi(phi))\n        if self.f:\n            r = self.e2s2(sin(p))\n            if r > EPS02:\n                n = sqrt(self.a2 / r)\n                m = n * self.e21 / r\n            else:\n                m = n = _0_0\n        else:\n            m = n = self.a\n        if scaled and p:\n            n *= cos(p) if p < PI_2 else _0_0\n        return Curvature2Tuple(m, n)\n\n    def rocAzimuth(self, lat, azimuth):\n        '''Compute the I{directional} radius of curvature of (geodetic) latitude\n           and C{azimuth} compass direction.\n\n           @see: Method L{rocBearing<Ellipsoid.rocBearing>} for details, using C{azimuth} for C{bearing}.\n        '''\n        return Radius(rocAzimuth=self._rocDirectional(lat, Azimuth(azimuth)))\n\n    def rocBearing(self, lat, bearing):\n        '''Compute the I{directional} radius of curvature of (geodetic) latitude\n           and C{bearing} compass direction.\n\n           @arg lat: Latitude (C{degrees90}).\n           @arg bearing: Direction (compass C{degrees360}).\n\n           @return: Directional radius of curvature (C{meter}).\n\n           @raise RangeError: Latitude B{C{lat}} outside valid range and\n                              L{rangerrors<pygeodesy.rangerrors>} is C{True}.\n\n           @raise ValueError: Invalid B{C{lat}} or B{C{bearing}}.\n\n           @see: U{Radii of Curvature<https://WikiPedia.org/wiki/Earth_radius#Radii_of_curvature>}\n        '''\n        return Radius(rocBearing=self._rocDirectional(lat, Bearing(bearing)))\n\n    def _rocDirectional(self, lat, deg):\n        '''(INTERNAL) Helper for C{rocAzimuth} and C{rocBearing}.\n        '''\n        if self.f:\n            s2, c2 = _sin2cos2(radians(deg))\n            m, n = self.roc2_(Phid(lat))\n            if n < m:  # == n / (c2 * n / m + s2)\n                c2 *= n / m\n            elif m < n:  # == m / (c2 + s2 * m / n)\n                s2 *= m / n\n                n   = m\n            r = _over(n, c2 + s2)  # == 1 / (c2 / m + s2 / n)\n        else:\n            r =  self.b  # == self.a\n        return r\n\n    @Property_RO\n    def rocEquatorial2(self):\n        '''Get the I{meridional} and I{prime-vertical}, I{normal} radii of curvature\n           at the equator as L{Curvature2Tuple}C{(meridional, prime_vertical)}.\n\n           @see: Methods L{rocMeridional} and L{rocPrimeVertical}, properties L{b2_a},\n                 L{a2_b}, C{rocPolar} and polar and equatorial U{Radii of Curvature\n                 <https://WikiPedia.org/wiki/Earth_radius#Radii_of_curvature>}.\n        '''\n        m = self.b2_a if self.f else self.a\n        return Curvature2Tuple(m, self.a)\n\n    def rocGauss(self, lat):\n        '''Compute the I{Gaussian} radius of curvature of (geodetic) latitude.\n\n           @arg lat: Latitude (C{degrees90}).\n\n           @return: Gaussian radius of curvature (C{meter}).\n\n           @raise ValueError: Invalid B{C{lat}}.\n\n           @see: Non-directional U{Radii of Curvature<https://WikiPedia.org/wiki/\n                 Earth_radius#Radii_of_curvature>}\n        '''\n        # using ...\n        #    m, n = self.roc2_(Phid(lat))\n        #    return sqrt(m * n)\n        # ... requires 1 or 2 sqrt\n        g = self.b\n        if self.f:\n            s2, c2 = _sin2cos2(Phid(lat))\n            g = _over(g, c2 + self.b2_a2 * s2)\n        return Radius(rocGauss=g)\n\n    def rocMean(self, lat):\n        '''Compute the I{mean} radius of curvature of (geodetic) latitude.\n\n           @arg lat: Latitude (C{degrees90}).\n\n           @return: Mean radius of curvature (C{meter}).\n\n           @raise ValueError: Invalid B{C{lat}}.\n\n           @see: Non-directional U{Radii of Curvature<https://WikiPedia.org/wiki/\n                 Earth_radius#Radii_of_curvature>}\n        '''\n        if self.f:\n            m, n = self.roc2_(Phid(lat))\n            m *= _over(n * _2_0, m + n)  # == 2 / (1 / m + 1 / n)\n        else:\n            m  =  self.a\n        return Radius(rocMean=m)\n\n    def rocMeridional(self, lat):\n        '''Compute the I{meridional} radius of curvature of (geodetic) latitude.\n\n           @arg lat: Latitude (C{degrees90}).\n\n           @return: Meridional radius of curvature (C{meter}).\n\n           @raise ValueError: Invalid B{C{lat}}.\n\n           @see: Methods L{roc2} and L{roc2_}, U{Local, flat earth approximation\n                 <https://www.EdWilliams.org/avform.htm#flat>} and U{Radii of\n                 Curvature<https://WikiPedia.org/wiki/Earth_radius#Radii_of_curvature>}.\n        '''\n        r = self.roc2_(Phid(lat)) if lat else self.rocEquatorial2\n        return Radius(rocMeridional=r.meridional)\n\n    rocPolar = a2_b  # synonymous\n\n    def rocPrimeVertical(self, lat):\n        '''Compute the I{prime-vertical}, I{normal} radius of curvature of\n           (geodetic) latitude, aka the I{transverse} radius of curvature.\n\n           @arg lat: Latitude (C{degrees90}).\n\n           @return: Prime-vertical radius of curvature (C{meter}).\n\n           @raise ValueError: Invalid B{C{lat}}.\n\n           @see: Methods L{roc2}, L{roc2_} and L{roc1_}, U{Local, flat earth\n                 approximation<https://www.EdWilliams.org/avform.htm#flat>} and\n                 U{Radii of Curvature<https://WikiPedia.org/wiki/\n                 Earth_radius#Radii_of_curvature>}.\n        '''\n        r = self.roc1_(sin(Phid(lat))) if lat else self.a\n        return Radius(rocPrimeVertical=r)\n\n    rocTransverse = rocPrimeVertical  # synonymous\n\n    @deprecated_Property_RO\n    def Rquadratic(self):  # PYCHOK no cover\n        '''DEPRECATED, use property C{Rbiaxial} or C{Rtriaxial}.'''\n        return self.Rbiaxial\n\n    @deprecated_Property_RO\n    def Rr(self):  # PYCHOK no cover\n        '''DEPRECATED, use property C{Rrectifying}.'''\n        return self.Rrectifying\n\n    @Property_RO\n    def Rrectifying(self):\n        '''Get the I{rectifying} earth radius (C{meter}), M{((a**(3/2) + b**(3/2)) / 2)**(2/3)}.\n\n           @see: U{Earth radius<https://WikiPedia.org/wiki/Earth_radius>}.\n        '''\n        r = self.a\n        if self.f:\n            r *= cbrt2((sqrt3(self.b_a) + _1_0) * _0_5)\n        return Radius(Rrectifying=r)\n\n    @deprecated_Property_RO\n    def Rs(self):  # PYCHOK no cover\n        '''DEPRECATED, use property C{Rgeometric}.'''\n        return self.Rgeometric\n\n    @Property_RO\n    def Rtriaxial(self):\n        '''Get the I{triaxial, quadratic} mean earth radius (C{meter}), M{sqrt((3 * a**2 + b**2) / 4)}.\n\n           @see: C{Rbiaxial}\n        '''\n        q, b = self.a, self.b\n        if b < q:\n            q *= sqrt((self.b2_a2 + _3_0)        * _0_25)\n        elif b > q:\n            q  = sqrt((self.a2_b2 * _3_0 + _1_0) * _0_25) * b\n        return Radius(Rtriaxial=q)\n\n    def toEllipse(self, **name):\n        '''Get this ellipsoid's meridional ellipse L{Ellipse<pygeodesy.Ellipse>}.\n\n           @kwarg name: Optional, unique C{B{name}=NN} (C{str}).\n        '''\n        return _MODS.ellipses.Ellipse(self.a, self.b, **name)\n\n    def toEllipsoid2(self, **name):\n        '''Get a copy of this ellipsoid as an L{Ellipsoid2}.\n\n           @kwarg name: Optional, unique C{B{name}=NN} (C{str}).\n\n           @see: Property C{a_f}.\n        '''\n        return Ellipsoid2(self, None, **name)\n\n    def toStr(self, prec=8, terse=4, **sep_name):  # PYCHOK expected\n        '''Return this ellipsoid as a text string.\n\n           @kwarg prec: Number of decimal digits, unstripped (C{int}).\n           @kwarg terse: Limit the number of items (C{int}, 0...18),\n                         use C{B{terse}=0} or C{=None} for all.\n           @kwarg sep_name: Optional C{B{name}=NN} (C{str}) or C{None}\n                      to exclude this ellipsoid's name and separator\n                      C{B{sep}=\", \"} to join the items (C{str}).\n\n           @return: This C{Ellipsoid}'s attributes (C{str}).\n        '''\n        E =  Ellipsoid\n        t = (E.a, E.f, E.f_, E.b, E.f2, E.n, E.e,\n                       E.e2, E.e21, E.e22, E.e32,\n                       E.A, E.L, E.R1, E.R2, E.R3,\n                       E.Rbiaxial, E.Rtriaxial)\n        if terse:\n            t = t[:terse]\n        return self._instr(prec=prec, props=t, **sep_name)\n\n    def toTriaxial(self, **name):\n        '''Convert this ellipsoid to a L{Triaxial_}.\n\n           @kwarg name: Optional C{B{name}=NN} (C{str}).\n\n           @return: A L{Triaxial_} or L{Triaxial} with the C{X} axis\n                    pointing east and C{Z} pointing north.\n\n           @see: Method L{Triaxial_.toEllipsoid}.\n        '''\n        T = self._triaxial\n        return T.copy(**name) if name else T\n\n    @property_RO\n    def _triaxial(self):\n        '''(INTERNAL) Get this ellipsoid's un-/ordered C{Triaxial/_}.\n        '''\n        a, b, t = self.a, self.b, _MODS.triaxials\n        T = t.Triaxial if a > b else t.Triaxial_\n        return T(a, a, b, name=self.name)\n\n    @Property_RO\n    def volume(self):\n        '''Get the ellipsoid's I{volume} (C{meter**3}), M{4 / 3 * PI * R3**3}.\n\n           @see: C{R3}.\n        '''\n        return Meter3(volume=self.a2 * self.b * PI_3 * _4_0)\n\n\nclass Ellipsoid2(Ellipsoid):\n    '''An L{Ellipsoid} specified by I{equatorial} radius and I{flattening}.\n    '''\n    def __init__(self, a, f=None, **name):\n        '''New L{Ellipsoid2}.\n\n           @arg a: Equatorial radius, semi-axis (C{meter}) or a previous\n                   L{Ellipsoid} instance.\n           @arg f: Flattening: (C{float} < 1.0, negative for I{prolate}),\n                   if B{C{a}} is in C{meter}.\n           @kwarg name: Optional, unique C{B{name}=NN} (C{str}).\n\n           @raise NameError: Ellipsoid with that B{C{name}} already exists.\n\n           @raise ValueError: Invalid B{C{a}} or B{C{f}}.\n\n           @note: C{abs(B{f}) < EPS} is forced to C{B{f}=0}, I{spherical}.\n                  Negative C{B{f}} produces a I{prolate} ellipsoid.\n        '''\n        if f is None and isinstance(a, Ellipsoid):\n            Ellipsoid.__init__(self, a.a,   f =a.f,\n                                     b=a.b, f_=a.f_, **name)\n        else:\n            Ellipsoid.__init__(self, a, f=f, **name)\n\n\ndef _ispherical_a_b(a, b):\n    '''(INTERNAL) C{True} for spherical or invalid C{a} or C{b}.\n    '''\n    return a < EPS0 or b < EPS0 or fabs(a - b) < EPS0\n\n\ndef _ispherical_f(f):\n    '''(INTERNAL) C{True} for spherical or invalid C{f}.\n    '''\n    return f > EPS1 or fabs(f) < EPS\n\n\ndef _ispherical_f_(f_):\n    '''(INTERNAL) C{True} for spherical or invalid C{f_}.\n    '''\n    f_ = fabs(f_)\n    return f_ < EPS or f_ > _1_EPS\n\n\ndef a_b2e(a, b):\n    '''Return C{e}, the I{1st eccentricity} for a given I{equatorial} and I{polar} radius.\n\n       @arg a: Equatorial radius (C{scalar} > 0).\n       @arg b: Polar radius (C{scalar} > 0).\n\n       @return: The I{unsigned}, (1st) eccentricity (C{float} or C{0}), M{sqrt(1 - (b / a)**2)}.\n\n       @note: The result is always I{non-negative} and C{0} for I{near-spherical} ellipsoids.\n    '''\n    e2 = _a2b2e2(a, b, b2=False)\n    return Float(e=sqrt(fabs(e2)) if e2 else _0_0)  # == sqrt(fabs((a - b) * (a + b))) / a\n\n\ndef a_b2e2(a, b):\n    '''Return C{e2}, the I{1st eccentricity squared} for a given I{equatorial} and I{polar} radius.\n\n       @arg a: Equatorial radius (C{scalar} > 0).\n       @arg b: Polar radius (C{scalar} > 0).\n\n       @return: The I{signed}, (1st) eccentricity I{squared} (C{float} or C{0}), M{1 - (b / a)**2}.\n\n       @note: The result is positive for I{oblate}, negative for I{prolate} or C{0}\n              for I{near-spherical} ellipsoids.\n    '''\n    return Float(e2=_a2b2e2(a, b, b2=False))\n\n\ndef a_b2e22(a, b):\n    '''Return C{e22}, the I{2nd eccentricity squared} for a given I{equatorial} and I{polar} radius.\n\n       @arg a: Equatorial radius (C{scalar} > 0).\n       @arg b: Polar radius (C{scalar} > 0).\n\n       @return: The I{signed}, 2nd eccentricity I{squared} (C{float} or C{0}), M{(a / b)**2 - 1}.\n\n       @note: The result is positive for I{oblate}, negative for I{prolate} or C{0}\n              for I{near-spherical} ellipsoids.\n    '''\n    return Float(e22=_a2b2e2(a, b, a2=False))\n\n\ndef a_b2e32(a, b):\n    '''Return C{e32}, the I{3rd eccentricity squared} for a given I{equatorial} and I{polar} radius.\n\n       @arg a: Equatorial radius (C{scalar} > 0).\n       @arg b: Polar radius (C{scalar} > 0).\n\n       @return: The I{signed}, 3rd eccentricity I{squared} (C{float} or C{0}),\n                M{(a**2 - b**2) / (a**2 + b**2)}.\n\n       @note: The result is positive for I{oblate}, negative for I{prolate} or C{0}\n              for I{near-spherical} ellipsoids.\n    '''\n    return Float(e32=_a2b2e2(a, b))\n\n\ndef _a2b2e2(a, b, a2=True, b2=True):\n    '''(INTERNAL) Helper for C{a_b2e}, C{a_b2e2}, C{a_b2e22} and C{a_b2e32}.\n    '''\n    if _ispherical_a_b(a, b):\n        e2   = _0_0\n    else:  # a > 0, b > 0\n        a, b = (_1_0, b / a) if a > b else (a / b, _1_0)\n        a2b2 =  float(a - b) * (a + b)\n        e2   = _over(a2b2, (a**2 if a2 else _0_0) +\n                           (b**2 if b2 else _0_0)) if a2b2 else _0_0\n    return e2\n\n\ndef a_b2f(a, b):\n    '''Return C{f}, the I{flattening} for a given I{equatorial} and I{polar} radius.\n\n       @arg a: Equatorial radius (C{scalar} > 0).\n       @arg b: Polar radius (C{scalar} > 0).\n\n       @return: The flattening (C{scalar} or C{0}), M{(a - b) / a}.\n\n       @note: The result is positive for I{oblate}, negative for I{prolate} or C{0}\n              for I{near-spherical} ellipsoids.\n    '''\n    f = 0 if _ispherical_a_b(a, b) else _over(float(a - b), a)\n    return _f_0_0 if _ispherical_f(f) else Float(f=f)\n\n\ndef a_b2f_(a, b):\n    '''Return C{f_}, the I{inverse flattening} for a given I{equatorial} and I{polar} radius.\n\n       @arg a: Equatorial radius (C{scalar} > 0).\n       @arg b: Polar radius (C{scalar} > 0).\n\n       @return: The inverse flattening (C{scalar} or C{0}), M{a / (a - b)}.\n\n       @note: The result is positive for I{oblate}, negative for I{prolate} or C{0}\n              for I{near-spherical} ellipsoids.\n    '''\n    f_ = 0 if _ispherical_a_b(a, b) else _over(a, float(a - b))\n    return _f__0_0 if _ispherical_f_(f_) else Float(f_=f_)\n\n\ndef a_b2f2(a, b):\n    '''Return C{f2}, the I{2nd flattening} for a given I{equatorial} and I{polar} radius.\n\n       @arg a: Equatorial radius (C{scalar} > 0).\n       @arg b: Polar radius (C{scalar} > 0).\n\n       @return: The I{signed}, 2nd flattening (C{scalar} or C{0}), M{(a - b) / b}.\n\n       @note: The result is positive for I{oblate}, negative for I{prolate} or C{0}\n              for I{near-spherical} ellipsoids.\n    '''\n    t = 0 if _ispherical_a_b(a, b) else float(a - b)\n    return Float(f2=_0_0 if fabs(t) < EPS0 else _over(t, b))\n\n\ndef a_b2n(a, b):\n    '''Return C{n}, the I{3rd flattening} for a given I{equatorial} and I{polar} radius.\n\n       @arg a: Equatorial radius (C{scalar} > 0).\n       @arg b: Polar radius (C{scalar} > 0).\n\n       @return: The I{signed}, 3rd flattening (C{scalar} or C{0}), M{(a - b) / (a + b)}.\n\n       @note: The result is positive for I{oblate}, negative for I{prolate} or C{0}\n              for I{near-spherical} ellipsoids.\n    '''\n    t = 0 if _ispherical_a_b(a, b) else float(a - b)\n    return Float(n=_0_0 if fabs(t) < EPS0 else _over(t, a + b))\n\n\ndef a_f2b(a, f):\n    '''Return C{b}, the I{polar} radius for a given I{equatorial} radius and I{flattening}.\n\n       @arg a: Equatorial radius (C{scalar} > 0).\n       @arg f: Flattening (C{scalar} < 1, negative for I{prolate}).\n\n       @return: The polar radius (C{float}), M{a * (1 - f)}.\n    '''\n    b = a if _ispherical_f(f) else (a * (_1_0 - f))\n    return Radius_(b=a if _ispherical_a_b(a, b) else b)\n\n\ndef a_f_2b(a, f_):\n    '''Return C{b}, the I{polar} radius for a given I{equatorial} radius and I{inverse flattening}.\n\n       @arg a: Equatorial radius (C{scalar} > 0).\n       @arg f_: Inverse flattening (C{scalar} >>> 1).\n\n       @return: The polar radius (C{float}), M{a * (f_ - 1) / f_}.\n    '''\n    b = a if _ispherical_f_(f_) else _over(a * (f_ - _1_0), f_)\n    return Radius_(b=a if _ispherical_a_b(a, b) else b)\n\n\ndef b_f2a(b, f):\n    '''Return C{a}, the I{equatorial} radius for a given I{polar} radius and I{flattening}.\n\n       @arg b: Polar radius (C{scalar} > 0).\n       @arg f: Flattening (C{scalar} < 1, negative for I{prolate}).\n\n       @return: The equatorial radius (C{float}), M{b / (1 - f)}.\n    '''\n    t = _1_0 - f\n    a =  b if fabs(t) < EPS0 else _over(b, t)\n    return Radius_(a=b if _ispherical_a_b(a, b) else a)\n\n\ndef b_f_2a(b, f_):\n    '''Return C{a}, the I{equatorial} radius for a given I{polar} radius and I{inverse flattening}.\n\n       @arg b: Polar radius (C{scalar} > 0).\n       @arg f_: Inverse flattening (C{scalar} >>> 1).\n\n       @return: The equatorial radius (C{float}), M{b * f_ / (f_ - 1)}.\n    '''\n    t = f_ - _1_0\n    a = b if _ispherical_f_(f_) or fabs(t)      < EPS0 \\\n                                or fabs(t - f_) < EPS0 else _over(b * f_, t)\n    return Radius_(a=b if _ispherical_a_b(a, b) else a)\n\n\ndef e2f(e):\n    '''Return C{f}, the I{flattening} for a given I{1st eccentricity}.\n\n       @arg e: The (1st) eccentricity (0 <= C{float} < 1)\n\n       @return: The flattening (C{scalar} or C{0}).\n\n       @see: Function L{e22f}.\n    '''\n    return e22f(e**2)\n\n\ndef e22f(e2):\n    '''Return C{f}, the I{flattening} for a given I{1st eccentricity squared}.\n\n       @arg e2: The (1st) eccentricity I{squared}, I{signed} (L{NINF} < C{float} < 1)\n\n       @return: The flattening (C{float} or C{0}), M{e2 / (sqrt(1 - e2) + 1)}.\n    '''\n    return Float(f=_over(e2, sqrt(_1_0 - e2) + _1_0)) if e2 and e2 < _1_0 else _f_0_0\n\n\ndef f2e2(f):\n    '''Return C{e2}, the I{1st eccentricity squared} for a given I{flattening}.\n\n       @arg f: Flattening (C{scalar} < 1, negative for I{prolate}).\n\n       @return: The I{signed}, (1st) eccentricity I{squared} (C{float} < 1), M{f * (2 - f)}.\n\n       @note: The result is positive for I{oblate}, negative for I{prolate} or C{0}\n              for I{near-spherical} ellipsoids.\n\n       @see: U{Eccentricity conversions<https://GeographicLib.SourceForge.io/\n             C++/doc/classGeographicLib_1_1Ellipsoid.html>} and U{Flattening\n             <https://WikiPedia.org/wiki/Flattening>}.\n    '''\n    return Float(e2=_0_0 if _ispherical_f(f) else (f * (_2_0 - f)))\n\n\ndef f2e22(f):\n    '''Return C{e22}, the I{2nd eccentricity squared} for a given I{flattening}.\n\n       @arg f: Flattening (C{scalar} < 1, negative for I{prolate}).\n\n       @return: The I{signed}, 2nd eccentricity I{squared} (C{float} > -1 or C{INF}),\n                M{f * (2 - f) / (1 - f)**2}.\n\n       @note: The result is positive for I{oblate}, negative for I{prolate} or C{0}\n              for near-spherical ellipsoids.\n\n       @see: U{Eccentricity conversions<https://GeographicLib.SourceForge.io/\n             C++/doc/classGeographicLib_1_1Ellipsoid.html>}.\n    '''\n    # e2 / (1 - e2) == f * (2 - f) / (1 - f)**2\n    t = (_1_0 - f)**2\n    return Float(e22=INF if t < EPS0 else _over(f2e2(f), t))  # PYCHOK type\n\n\ndef f2e32(f):\n    '''Return C{e32}, the I{3rd eccentricity squared} for a given I{flattening}.\n\n       @arg f: Flattening (C{scalar} < 1, negative for I{prolate}).\n\n       @return: The I{signed}, 3rd eccentricity I{squared} (C{float}),\n                M{f * (2 - f) / (1 + (1 - f)**2)}.\n\n       @note: The result is positive for I{oblate}, negative for I{prolate} or C{0}\n              for I{near-spherical} ellipsoids.\n\n       @see: U{Eccentricity conversions<https://GeographicLib.SourceForge.io/\n             C++/doc/classGeographicLib_1_1Ellipsoid.html>}.\n    '''\n    # e2 / (2 - e2) == f * (2 - f) / (1 + (1 - f)**2)\n    e2 = f2e2(f)\n    return Float(e32=_over(e2, _2_0 - e2))\n\n\ndef f_2f(f_):\n    '''Return C{f}, the I{flattening} for a given I{inverse flattening}.\n\n       @arg f_: Inverse flattening (C{scalar} >>> 1).\n\n       @return: The flattening (C{scalar} or C{0}), M{1 / f_}.\n\n       @note: The result is positive for I{oblate}, negative for I{prolate} or C{0}\n              for I{near-spherical} ellipsoids.\n    '''\n    f = 0 if _ispherical_f_(f_) else _over(_1_0, f_)\n    return _f_0_0 if _ispherical_f(f) else Float(f=f)  # PYCHOK type\n\n\ndef f2f_(f):\n    '''Return C{f_}, the I{inverse flattening} for a given I{flattening}.\n\n       @arg f: Flattening (C{scalar} < 1, negative for I{prolate}).\n\n       @return: The inverse flattening (C{scalar} or C{0}), M{1 / f}.\n\n       @note: The result is positive for I{oblate}, negative for I{prolate} or C{0}\n              for I{near-spherical} ellipsoids.\n    '''\n    f_ = 0 if _ispherical_f(f) else _over(_1_0, f)\n    return _f__0_0 if _ispherical_f_(f_) else Float(f_=f_)  # PYCHOK type\n\n\ndef f2f2(f):\n    '''Return C{f2}, the I{2nd flattening} for a given I{flattening}.\n\n       @arg f: Flattening (C{scalar} < 1, negative for I{prolate}).\n\n       @return: The I{signed}, 2nd flattening (C{scalar} or C{INF}), M{f / (1 - f)}.\n\n       @note: The result is positive for I{oblate}, negative for I{prolate} or C{0}\n              for I{near-spherical} ellipsoids.\n\n       @see: U{Eccentricity conversions<https://GeographicLib.SourceForge.io/\n             C++/doc/classGeographicLib_1_1Ellipsoid.html>} and U{Flattening\n             <https://WikiPedia.org/wiki/Flattening>}.\n    '''\n    t = _1_0 - f\n    return Float(f2=_0_0 if _ispherical_f(f) else\n                    (INF if  fabs(t) < EPS   else _over(f, t)))  # PYCHOK type\n\n\ndef f2n(f):\n    '''Return C{n}, the I{3rd flattening} for a given I{flattening}.\n\n       @arg f: Flattening (C{scalar} < 1, negative for I{prolate}).\n\n       @return: The I{signed}, 3rd flattening (-1 <= C{float} < 1),\n                M{f / (2 - f)}.\n\n       @note: The result is positive for I{oblate}, negative for I{prolate} or C{0}\n              for I{near-spherical} ellipsoids.\n\n       @see: U{Eccentricity conversions<https://GeographicLib.SourceForge.io/\n             C++/doc/classGeographicLib_1_1Ellipsoid.html>} and U{Flattening\n             <https://WikiPedia.org/wiki/Flattening>}.\n    '''\n    return Float(n=_0_0 if _ispherical_f(f) else _over(f, float(_2_0 - f)))\n\n\ndef n2e2(n):\n    '''Return C{e2}, the I{1st eccentricity squared} for a given I{3rd flattening}.\n\n       @arg n: The 3rd flattening (-1 <= C{scalar} < 1).\n\n       @return: The I{signed}, (1st) eccentricity I{squared} (C{float} or NINF),\n                M{4 * n / (1 + n)**2}.\n\n       @note: The result is positive for I{oblate}, negative for I{prolate} or C{0}\n              for I{near-spherical} ellipsoids.\n\n       @see: U{Flattening<https://WikiPedia.org/wiki/Flattening>}.\n    '''\n    t = (n + _1_0)**2\n    return Float(e2=_0_0 if fabs(n) < EPS0 else\n                   (NINF if      t  < EPS0 else _over(_4_0 * n, t)))\n\n\ndef n2f(n):\n    '''Return C{f}, the I{flattening} for a given I{3rd flattening}.\n\n       @arg n: The 3rd flattening (-1 <= C{scalar} < 1).\n\n       @return: The flattening (C{scalar} or NINF), M{2 * n / (1 + n)}.\n\n       @see: U{Eccentricity conversions<https://GeographicLib.SourceForge.io/\n             C++/doc/classGeographicLib_1_1Ellipsoid.html>} and U{Flattening\n             <https://WikiPedia.org/wiki/Flattening>}.\n    '''\n    t = n + _1_0\n    f = 0 if fabs(n) < EPS0 else (NINF if t < EPS0 else _over(_2_0 * n, t))\n    return _f_0_0 if _ispherical_f(f) else Float(f=f)\n\n\ndef n2f_(n):\n    '''Return C{f_}, the I{inverse flattening} for a given I{3rd flattening}.\n\n       @arg n: The 3rd flattening (-1 <= C{scalar} < 1).\n\n       @return: The inverse flattening (C{scalar} or C{0}), M{1 / f}.\n\n       @see: L{n2f} and L{f2f_}.\n    '''\n    return f2f_(n2f(n))\n\n\nclass Ellipsoids(_NamedEnum):\n    '''(INTERNAL) L{Ellipsoid} registry, I{must} be a sub-class\n       to accommodate the L{_LazyNamedEnumItem} properties.\n    '''\n    def _Lazy(self, a, b, f_, **kwds):\n        '''(INTERNAL) Instantiate the L{Ellipsoid}.\n        '''\n        return Ellipsoid(a, b=b, f_=f_, **kwds)\n\nEllipsoids = Ellipsoids(Ellipsoid)  # PYCHOK singleton\n'''Some pre-defined L{Ellipsoid}s, all I{lazily} instantiated.'''\n# <https://www.GNU.org/software/gama/manual/html_node/Supported-ellipsoids.html>\n# <https://GSSC.ESA.int/navipedia/index.php/Reference_Frames_in_GNSS>\n# <https://kb.OSU.edu/dspace/handle/1811/77986>\n# <https://www.IBM.com/docs/en/db2/11.5?topic=systems-supported-spheroids>\n# <https://w3.Energistics.org/archive/Epicentre/Epicentre_v3.0/DataModel/LogicalDictionary/StandardValues/ellipsoid.html>\n# <https://GitHub.com/locationtech/proj4j/blob/master/src/main/java/org/locationtech/proj4j/datum/Ellipsoid.java>\nEllipsoids._assert(  # <https://WikiPedia.org/wiki/Earth_ellipsoid>\n    Airy1830       = _lazy(_Airy1830_,       *_T(6377563.396, _0_0,               299.3249646)),  # b=6356256.909\n    AiryModified   = _lazy(_AiryModified_,   *_T(6377340.189, _0_0,               299.3249646)),  # b=6356034.448\n#   APL4_9         = _lazy('APL4_9',         *_T(6378137.0,   _0_0,               298.24985392)),  # Appl. Phys. Lab. 1965\n#   ANS            = _lazy('ANS',            *_T(6378160.0,   _0_0,               298.25)),  # Australian Nat. Spheroid\n#   AN_SA96        = _lazy('AN_SA96',        *_T(6378160.0,   _0_0,               298.24985392)),  # Australian Nat. South America\n    Australia1966  = _lazy('Australia1966',  *_T(6378160.0,   _0_0,               298.25)),  # b=6356774.7192\n    ATS1977        = _lazy('ATS1977',        *_T(6378135.0,   _0_0,               298.257)),  # \"Average Terrestrial System\"\n    Bessel1841     = _lazy(_Bessel1841_,     *_T(6377397.155,  6356078.962818,    299.152812797)),\n    BesselModified = _lazy('BesselModified', *_T(6377492.018, _0_0,               299.1528128)),\n#   BesselNamibia  = _lazy('BesselNamibia',  *_T(6377483.865, _0_0,               299.1528128)),\n    CGCS2000       = _lazy('CGCS2000',       *_T(R_MA,        _0_0,               298.257222101)),  # BeiDou Coord System (BDC)\n#   Clarke1858     = _lazy('Clarke1858',     *_T(6378293.639, _0_0,               294.260676369)),\n    Clarke1866     = _lazy(_Clarke1866_,     *_T(6378206.4,    6356583.8,         294.978698214)),\n    Clarke1880     = _lazy('Clarke1880',     *_T(6378249.145,  6356514.86954978,  293.465)),\n    Clarke1880IGN  = _lazy(_Clarke1880IGN_,  *_T(6378249.2,    6356515.0,         293.466021294)),\n    Clarke1880Mod  = _lazy('Clarke1880Mod',  *_T(6378249.145,  6356514.96639549,  293.466307656)),  # aka Clarke1880Arc\n    CPM1799        = _lazy('CPM1799',        *_T(6375738.7,    6356671.92557493,  334.39)),  # Comm. des Poids et Mesures\n    Delambre1810   = _lazy('Delambre1810',   *_T(6376428.0,    6355957.92616372,  311.5)),  # Belgium\n    Engelis1985    = _lazy('Engelis1985',    *_T(6378136.05,   6356751.32272154,  298.2566)),\n#   Everest1830    = _lazy('Everest1830',    *_T(6377276.345, _0_0,               300.801699997)),\n#   Everest1948    = _lazy('Everest1948',    *_T(6377304.063, _0_0,               300.801699997)),\n#   Everest1956    = _lazy('Everest1956',    *_T(6377301.243, _0_0,               300.801699997)),\n    Everest1969    = _lazy('Everest1969',    *_T(6377295.664,  6356094.667915,    300.801699997)),\n    Everest1975    = _lazy('Everest1975',    *_T(6377299.151,  6356098.14512013,  300.8017255)),\n    Fisher1968     = _lazy('Fisher1968',     *_T(6378150.0,    6356768.33724438,  298.3)),\n#   Fisher1968Mod  = _lazy('Fisher1968Mod',  *_T(6378155.0,   _0_0,               298.3)),\n    GEM10C         = _lazy('GEM10C',         *_T(R_MA,         6356752.31424783,  298.2572236)),\n    GPES           = _lazy('GPES',           *_T(6378135.0,    6356750.0,        _0_0)),  # \"Gen. Purpose Earth Spheroid\"\n    GRS67          = _lazy('GRS67',          *_T(6378160.0,   _0_0,               298.247167427)),  # Lucerne b=6356774.516\n#   GRS67Truncated = _lazy('GRS67Truncated', *_T(6378160.0,   _0_0,               298.25)),\n    GRS80          = _lazy(_GRS80_,          *_T(R_MA,         6356752.314140347, 298.25722210088)),  # IUGG, ITRS, ETRS89\n#   Hayford1924    = _lazy('Hayford1924',    *_T(6378388.0,    6356911.94612795,  None)),  # aka Intl1924 f_=297\n    Helmert1906    = _lazy('Helmert1906',    *_T(6378200.0,    6356818.16962789,  298.3)),\n#   Hough1960      = _lazy('Hough1960',      *_T(6378270.0,   _0_0,               297.0)),\n    IAU76          = _lazy('IAU76',          *_T(6378140.0,   _0_0,               298.257)),  # Int'l Astronomical Union\n    IERS1989       = _lazy('IERS1989',       *_T(6378136.0,   _0_0,               298.257)),  # b=6356751.302\n    IERS1992TOPEX  = _lazy('IERS1992TOPEX',  *_T(6378136.3,    6356751.61659215,  298.257223563)),  # IERS/TOPEX/Poseidon/McCarthy\n    IERS2003       = _lazy('IERS2003',       *_T(6378136.6,    6356751.85797165,  298.25642)),\n    Intl1924       = _lazy(_Intl1924_,       *_T(6378388.0,   _0_0,               297.0)),  # aka Hayford b=6356911.9462795\n    Intl1967       = _lazy('Intl1967',       *_T(6378157.5,    6356772.2,         298.24961539)),  # New Int'l\n    Krassovski1940 = _lazy(_Krassovski1940_, *_T(6378245.0,    6356863.01877305,  298.3)),  # spelling\n    Krassowsky1940 = _lazy(_Krassowsky1940_, *_T(6378245.0,    6356863.01877305,  298.3)),  # spelling\n#   Kaula          = _lazy('Kaula',          *_T(6378163.0,   _0_0,               298.24)),  # Kaula 1961\n#   Lerch          = _lazy('Lerch',          *_T(6378139.0,   _0_0,               298.257)),  # Lerch 1979\n    Maupertuis1738 = _lazy('Maupertuis1738', *_T(6397300.0,    6363806.28272251,  191.0)),  # France\n    Mercury1960    = _lazy('Mercury1960',    *_T(6378166.0,    6356784.28360711,  298.3)),\n    Mercury1968Mod = _lazy('Mercury1968Mod', *_T(6378150.0,    6356768.33724438,  298.3)),\n#   MERIT          = _lazy('MERIT',          *_T(6378137.0,   _0_0,               298.257)),  # MERIT 1983\n#   NWL10D         = _lazy('NWL10D',         *_T(6378135.0,   _0_0,               298.26)),  # Naval Weapons Lab.\n    NWL1965        = _lazy('NWL1965',        *_T(6378145.0,    6356759.76948868,  298.25)),  # Naval Weapons Lab.\n#   NWL9D          = _lazy('NWL9D',          *_T(6378145.0,    6356759.76948868,  298.25)),  # NWL1965\n    OSU86F         = _lazy('OSU86F',         *_T(6378136.2,    6356751.51693008,  298.2572236)),\n    OSU91A         = _lazy('OSU91A',         *_T(6378136.3,    6356751.6165948,   298.2572236)),\n#   Plessis1817    = _lazy('Plessis1817',    *_T(6397523.0,    6355863.0,         153.56512242)),  # XXX incorrect?\n    Plessis1817    = _lazy('Plessis1817',    *_T(6376523.0,    6355862.93325557,  308.64)),  # XXX IGN France 1972\n#   Prolate        = _lazy('Prolate',        *_T(6356752.3,    R_MA,             _0_0)),\n    PZ90           = _lazy('PZ90',           *_T(6378136.0,   _0_0,               298.257839303)),  # GLOSNASS PZ-90 and PZ-90.11\n#   SEAsia         = _lazy('SEAsia',         *_T(6378155.0,   _0_0,               298.3)),  # SouthEast Asia\n    SGS85          = _lazy('SGS85',          *_T(6378136.0,    6356751.30156878,  298.257)),  # Soviet Geodetic System\n    SoAmerican1969 = _lazy('SoAmerican1969', *_T(6378160.0,    6356774.71919531,  298.25)),  # South American\n    Sphere         = _lazy(_Sphere_,         *_T(R_M,          R_M,              _0_0)),  # pseudo\n    SphereAuthalic = _lazy('SphereAuthalic', *_T(R_FM,         R_FM,             _0_0)),  # pseudo\n    SpherePopular  = _lazy('SpherePopular',  *_T(R_MA,         R_MA,             _0_0)),  # EPSG:3857 Spheroid\n    Struve1860     = _lazy('Struve1860',     *_T(6378298.3,    6356657.14266956,  294.73)),\n#   Walbeck        = _lazy('Walbeck',        *_T(6376896.0,   _0_0,               302.78)),\n#   WarOffice      = _lazy('WarOffice',      *_T(6378300.0,   _0_0,               296.0)),\n    WGS60          = _lazy('WGS60',          *_T(6378165.0,    6356783.28695944,  298.3)),\n    WGS66          = _lazy('WGS66',          *_T(6378145.0,    6356759.76948868,  298.25)),\n    WGS72          = _lazy(_WGS72_,          *_T(6378135.0,   _0_0,               298.26)),  # b=6356750.52\n    WGS84          = _lazy(_WGS84_,          *_T(R_MA,        _0_0,           _f__WGS84)),   # b=6356752.3142451793\n#   U{NOAA/NOS/NGS/inverse<https://GitHub.com/noaa-ngs/inverse/blob/main/invers3d.f>}\n    WGS84_NGS      = _lazy('WGS84_NGS',      *_T(R_MA,        _0_0,               298.257222100882711243162836600094))\n)\n\n_EWGS84 = Ellipsoids.WGS84  # (INTERNAL) shared\n\nif __name__ == _DMAIN_:\n\n    from pygeodesy import nameof, printf\n\n    for E in (_EWGS84, Ellipsoids.GRS80,  # NAD83,\n               Ellipsoids.Sphere, Ellipsoids.SpherePopular,\n               Ellipsoid(_EWGS84.b, _EWGS84.a, name='_Prolate')):\n        e = f2n(E.f) - E.n\n        printf('# %s: %s', _DOT_('Ellipsoids', E.name), E.toStr(prec=10, terse=0), nl=1)\n        printf('# e=%s, f_=%s, f=%s, n=%s (%s)', fstr(E.e,  prec=13, fmt=Fmt.e),\n                                                 fstr(E.f_, prec=13, fmt=Fmt.e),\n                                                 fstr(E.f,  prec=13, fmt=Fmt.e),\n                                                 fstr(E.n,  prec=13, fmt=Fmt.e),\n                                                 fstr(e,    prec=9,  fmt=Fmt.e))\n        printf('# %s %s', Ellipsoid.AlphaKs.name, fstr(E.AlphaKs, prec=20))\n        printf('# %s  %s', Ellipsoid.BetaKs.name, fstr(E.BetaKs,  prec=20))\n        printf('# %s %s', nameof(Ellipsoid.KsOrder), E.KsOrder)  # property\n\n    from pygeodesy.internals import _pregistry\n    # __doc__ of this file, force all into registry\n    _pregistry(Ellipsoids)\n\n# % python3.13 -m pygeodesy.ellipsoids\n\n# Ellipsoids.WGS84: name='WGS84', a=6378137, f=0.0033528107, f_=298.257223563, b=6356752.3142451793, f2=0.0033640898, n=0.0016792204, e=0.0818191908, e2=0.00669438, e21=0.99330562, e22=0.0067394967, e32=0.0033584313, A=6367449.1458234144, L=10001965.7293127235, R1=6371008.7714150595, R2=6371007.1809184738, R3=6371000.7900091587, Rbiaxial=6367453.6345163295, Rtriaxial=6372797.5559594007\n# e=8.1819190842622e-02, f_=2.98257223563e+02, f=3.3528106647475e-03, n=1.6792203863837e-03 (0.0e+00)\n# AlphaKs 0.00083773182062446994, 0.00000076085277735725, 0.00000000119764550324, 0.00000000000242917068, 0.00000000000000571182, 0.0000000000000000148, 0.00000000000000000004, 0.0\n# BetaKs  0.00083773216405794875, 0.0000000590587015222, 0.00000000016734826653, 0.00000000000021647981, 0.00000000000000037879, 0.00000000000000000072, 0.0, 0.0\n# KsOrder 8\n\n# Ellipsoids.GRS80: name='GRS80', a=6378137, f=0.0033528107, f_=298.2572221009, b=6356752.3141403468, f2=0.0033640898, n=0.0016792204, e=0.081819191, e2=0.00669438, e21=0.99330562, e22=0.0067394968, e32=0.0033584313, A=6367449.1457710434, L=10001965.7292304561, R1=6371008.7713801153, R2=6371007.1808835147, R3=6371000.7899741363, Rbiaxial=6367453.6344640013, Rtriaxial=6372797.5559332585\n# e=8.1819191042833e-02, f_=2.9825722210088e+02, f=3.3528106811837e-03, n=1.6792203946295e-03 (0.0e+00)\n# AlphaKs 0.00083773182472890429, 0.00000076085278481561, 0.00000000119764552086, 0.00000000000242917073, 0.00000000000000571182, 0.0000000000000000148, 0.00000000000000000004, 0.0\n# BetaKs  0.0008377321681623882, 0.00000005905870210374, 0.000000000167348269, 0.00000000000021647982, 0.00000000000000037879, 0.00000000000000000072, 0.0, 0.0\n# KsOrder 8\n\n# Ellipsoids.Sphere: name='Sphere', a=6371008.7714149999, f=0, f_=0, b=6371008.7714149999, f2=0, n=0, e=0, e2=0, e21=1, e22=0, e32=0, A=6371008.7714149999, L=10007557.1761167478, R1=6371008.7714149999, R2=6371008.7714149999, R3=6371008.7714149999, Rbiaxial=6371008.7714149999, Rtriaxial=6371008.7714149999\n# e=0.0e+00, f_=0.0e+00, f=0.0e+00, n=0.0e+00 (0.0e+00)\n# AlphaKs 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0\n# BetaKs  0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0\n# KsOrder 8\n\n# Ellipsoids.SpherePopular: name='SpherePopular', a=6378137, f=0, f_=0, b=6378137, f2=0, n=0, e=0, e2=0, e21=1, e22=0, e32=0, A=6378137, L=10018754.171394622, R1=6378137, R2=6378137, R3=6378137, Rbiaxial=6378137, Rtriaxial=6378137\n# e=0.0e+00, f_=0.0e+00, f=0.0e+00, n=0.0e+00 (0.0e+00)\n# AlphaKs 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0\n# BetaKs  0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0\n# KsOrder 8\n\n# Ellipsoids._Prolate: name='_Prolate', a=6356752.3142451793, f=-0.0033640898, f_=-297.257223563, b=6378137, f2=-0.0033528107, n=-0.0016792204, e=0.0820944379, e2=-0.0067394967, e21=1.0067394967, e22=-0.00669438, e32=-0.0033584313, A=6367449.1458234144, L=10035500.5204500332, R1=6363880.5428301189, R2=6363878.9413582645, R3=6363872.5644020075, Rbiaxial=6367453.6345163295, Rtriaxial=6362105.2243882557\n# e=8.2094437949696e-02, f_=-2.97257223563e+02, f=-3.3640898209765e-03, n=-1.6792203863837e-03 (0.0e+00)\n# AlphaKs -0.00084149152514366627, 0.00000076653480614871, -0.00000000120934503389, 0.0000000000024576225, -0.00000000000000578863, 0.00000000000000001502, -0.00000000000000000004, 0.0\n# BetaKs  -0.00084149187224351817, 0.00000005842735196773, -0.0000000001680487236, 0.00000000000021706261, -0.00000000000000038002, 0.00000000000000000073, -0.0, 0.0\n# KsOrder 8\n\n# **) MIT License\n#\n# Copyright (C) 2016-2026 -- mrJean1 at Gmail -- All Rights Reserved.\n#\n# Permission is hereby granted, free of charge, to any person obtaining a\n# copy of this software and associated documentation files (the \"Software\"),\n# to deal in the Software without restriction, including without limitation\n# the rights to use, copy, modify, merge, publish, distribute, sublicense,\n# and/or sell copies of the Software, and to permit persons to whom the\n# Software is furnished to do so, subject to the following conditions:\n#\n# The above copyright notice and this permission notice shall be included\n# in all copies or substantial portions of the Software.\n#\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL\n# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR\n# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\n# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n# OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "pygeodesy/elliptic.py",
    "content": "\n# -*- coding: utf-8 -*-\n\nu'''I{Karney}'s elliptic integrals and elliptic functions in pure Python.\n\nClass L{Elliptic} transcoded from I{Charles Karney}'s C++ class U{EllipticFunction\n<https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1EllipticFunction.html>},\nincluding symmetric integrals L{Elliptic.fRC}, L{Elliptic.fRD}, L{Elliptic.fRF},\nL{Elliptic.fRG} and L{Elliptic.fRJ} as C{static methods}.\n\nPython method names follow the C++ member functions, I{except}:\n\n - member functions I{without arguments} are mapped to Python properties prefixed with\n   C{\"c\"}, for example C{E()} is property C{cE},\n\n - member functions with 1 or 3 arguments are renamed to Python methods starting with\n   an C{\"f\"}, example C{E(psi)} to C{fE(psi)} and C{E(sn, cn, dn)} to C{fE(sn, cn, dn)},\n\n - other Python method names conventionally start with a lower-case letter or an\n   underscore if private.\n\nFollowing is a copy of I{Karney}'s U{EllipticFunction.hpp\n<https://GeographicLib.SourceForge.io/C++/doc/EllipticFunction_8hpp_source.html>}\nfile C{Header}.\n\nCopyright (C) U{Charles Karney<mailto:Karney@Alum.MIT.edu>} (2008-2024) and licensed\nunder the MIT/X11 License.  For more information, see the U{GeographicLib\n<https://GeographicLib.SourceForge.io>} documentation.\n\nB{Elliptic integrals and functions.}\n\nThis provides the elliptic functions and integrals needed for classes C{Ellipsoid},\nC{GeodesicExact}, and C{TransverseMercatorExact}.  Two categories of functions are\nprovided:\n\n - functions to compute U{symmetric elliptic integrals<https://DLMF.NIST.gov/19.16.i>}\n\n - methods to compute U{Legrendre's elliptic integrals<https://DLMF.NIST.gov/19.2.ii>}\n   and U{Jacobi elliptic functions<https://DLMF.NIST.gov/22.2>}.\n\nIn the latter case, an object is constructed giving the modulus C{k} (and optionally\nthe parameter C{alpha}).  The modulus (and parameter) are always passed as squares\nwhich allows C{k} to be pure imaginary.  (Confusingly, Abramowitz and Stegun call\nC{m = k**2} the \"parameter\" and C{n = alpha**2} the \"characteristic\".)\n\nIn geodesic applications, it is convenient to separate the incomplete integrals into\nsecular and periodic components, e.g.\n\nI{C{E(phi, k) = (2 E(k) / pi) [ phi + delta E(phi, k) ]}}\n\nwhere I{C{delta E(phi, k)}} is an odd periodic function with period I{C{pi}}.\n\nThe computation of the elliptic integrals uses the algorithms given in U{B. C. Carlson,\nComputation of real or complex elliptic integrals <https://DOI.org/10.1007/BF02198293>}\n(also available U{here<https://ArXiv.org/pdf/math/9409227.pdf>}), Numerical Algorithms\n10, 13--26 (1995) with the additional optimizations given U{here<https://DLMF.NIST.gov/19.36.i>}.\n\nThe computation of the Jacobi elliptic functions uses the algorithm given in U{R. Bulirsch, Numerical\nCalculation of Elliptic Integrals and Elliptic Functions<https://DOI.org/10.1007/BF01397975>},\nNumerische Mathematik 7, 78--90 (1965) or optionally the C{Jacobi amplitude} in method\nL{Elliptic.sncndn<pygeodesy.Elliptic.sncndn>}.\n\nThe notation follows U{NIST Digital Library of Mathematical Functions <https://DLMF.NIST.gov>}\nchapters U{19<https://DLMF.NIST.gov/19>} and U{22<https://DLMF.NIST.gov/22>}.\n'''\n# make sure int/int division yields float quotient, see .basics\nfrom __future__ import division as _; del _  # noqa: E702 ;\n\nfrom pygeodesy.basics import copysign0, map2, neg, neg_\nfrom pygeodesy.constants import EPS, INF, NAN, PI, PI_2, PI_4, _EPStol as _TolJAC, \\\n                               _0_0, _0_25, _0_5, _1_0, _2_0, _3_0, _4_0, _6_0, _8_0, \\\n                               _64_0, _180_0, _360_0, _flipsign, _over, _1_over\nfrom pygeodesy.constants import _EPSjam as _TolJAM  # PYCHOK used!\n# from pygeodesy.ellipsoids import Ellipsoid  # _MODS\nfrom pygeodesy.errors import _ConvergenceError, _ValueError\nfrom pygeodesy.fmath import favg, Fdot, Fdot_, hypot1, zqrt,  _operator\nfrom pygeodesy.fsums import Fsum, _fsum\nfrom pygeodesy.internals import _Enum, typename\nfrom pygeodesy.interns import NN, _delta_, _DOT_, _f_, _invalid_, _invokation_, \\\n                             _negative_, _SPACE_\nfrom pygeodesy.karney import _K_2_0, _norm180, _signBit, _sincos2\n# from pygeodesy.lazily import _ALL_LAZY  # from .utily\nfrom pygeodesy.named import _Named, _NamedTuple,  unstr\nfrom pygeodesy.props import _allPropertiesOf_n, Property_RO, _update_all\n# from pygeodesy.streprs import unstr  # from .named\n# from pygeodesy.triaxials import Triaxial_  # _MODS\nfrom pygeodesy.units import Scalar, Scalar_\nfrom pygeodesy.utily import atan2,  _ALL_LAZY  # sincos2 as _sincos2\n\nfrom math import asin, asinh, atan, ceil, cosh, fabs, floor, radians, \\\n                 sin, sinh, sqrt, tan, tanh  # tan as _tan\n# import operator as _operator  # from .fmath\n\n__all__ = _ALL_LAZY.elliptic\n__version__ = '26.02.15'\n\n_TolRD  =  zqrt(EPS * 0.002)\n_TolRF  =  zqrt(EPS * 0.030)\n_TolRG0 = _TolJAC   * 2.7\n_MAXIT  =  32  # ._B4 max depth, 6..18 sufficient\n\n\nclass _Cs(_Enum):\n    '''(INTERAL) Complete Integrals cache.\n    '''\n    pass\n\n\nclass Elliptic(_Named):\n    '''Elliptic integrals and functions.\n\n       @see: I{Karney}'s U{Detailed Description<https://GeographicLib.SourceForge.io/\n             C++/doc/classGeographicLib_1_1EllipticFunction.html#details>}.\n    '''\n#   _alpha2  = 0\n#   _alphap2 = 0\n#   _eps     = EPS\n#   _k2      = 0\n#   _kp2     = 0\n\n    def __init__(self, k2=0, alpha2=0, kp2=None, alphap2=None, **name):\n        '''Constructor, specifying the C{modulus} and C{parameter}.\n\n           @kwarg name: Optional C{B{name}=NN} (C{str}).\n\n           @see: Method L{Elliptic.reset} for further details.\n\n           @note: If only elliptic integrals of the first and second kinds\n                  are needed, use C{B{alpha2}=0}, the default value.  In\n                  that case, we have C{Π(φ, 0, k) = F(φ, k), G(φ, 0, k) =\n                  E(φ, k)} and C{H(φ, 0, k) = F(φ, k) - D(φ, k)}.\n        '''\n        if name:\n            self.name = name\n        self._reset(k2, alpha2, kp2, alphap2)\n\n    @Property_RO\n    def alpha2(self):\n        '''Get α^2, the square of the parameter (C{float}).\n        '''\n        return self._alpha2\n\n    @Property_RO\n    def alphap2(self):\n        '''Get α'^2, the square of the complementary parameter (C{float}).\n        '''\n        return self._alphap2\n\n    def _B3(self, x):\n        '''(INTERNAL) Bulirsch' sncndn routine.\n        '''\n        # Numerische Mathematik 7, 1965, P 89\n        # implements DLMF Eqs 22.17.2 - 22.17.4\n        c, d, cd, mn = self._B4\n        sn, cn = _sincos2(x * cd)\n        dn = _1_0\n        if sn:\n            a  = cn / sn\n            c *= a\n            for m, n in mn:\n                a *= c\n                c *= dn\n                dn = (n + a) / (m + a)\n                a  =  c / m\n            a  = _1_over(hypot1(c))\n            sn = _flipsign(a, sn)\n            cn =  sn * c\n            if d:  # and _signBit(self.kp2):  # implied\n                cn, dn = dn, cn\n                sn = sn / d  # /= chokes PyChecker\n        return sn, cn, dn\n\n    @Property_RO\n    def _B4(self):\n        '''(INTERNAL) Get Bulirsch' 4-tuple C{(c, d, cd, mn)}.\n        '''\n        a = P = _1_0\n        b,  d =  self.kp2, 0  # kp2 >= 0 always here\n        if _signBit(b):  # PYCHOK no cover\n            d = a - b\n            b = neg(b / d)\n            d = sqrt(d)\n        mn  = []\n        _mn = mn.append\n        for i in range(1, _MAXIT):  # GEOGRAPHICLIB_PANIC\n            b = sqrt(P * b)\n            _mn((a, b))\n            c = favg(a,  b)\n            r = fabs(a - b)\n            if r <= (a * _TolJAC):  # 4..6 trips, quadratic\n                self._iteration += i\n                break\n            P, a = a, c\n        else:  # PYCHOK no cover\n            raise _ConvergenceError(_MAXIT, _over(r, P), _TolJAC)\n        cd = (c * d) if d else c\n        return c, d, cd, tuple(reversed(mn))\n\n    @Property_RO\n    def cD(self):\n        '''Get Jahnke's complete integral C{D(k)} (C{float}),\n           U{defined<https://DLMF.NIST.gov/19.2.E6>}.\n        '''\n        return self._cDEKEeps.cD\n\n    @Property_RO\n    def _cDEKEeps(self):\n        '''(INTERNAL) Get the complete integrals D, E, K, KE and C{eps}.\n        '''\n        k2, kp2 = self.k2, self.kp2\n        if k2:\n            if kp2:\n                try:\n                    # self._iteration = 0\n                    # D(k) = (K(k) - E(k))/k2, Carlson eq.4.3\n                    # <https://DLMF.NIST.gov/19.25.E1>\n                    D   = _RD(_0_0, kp2, _1_0, _3_0, self)\n                    cD  =  float(D)\n                    # Complete elliptic integral E(k), Carlson eq. 4.2\n                    # <https://DLMF.NIST.gov/19.25.E1>\n                    cE  =  self._cE(kp2)\n                    # Complete elliptic integral K(k), Carlson eq. 4.1\n                    # <https://DLMF.NIST.gov/19.25.E1>\n                    cK  =  self._cK(kp2)\n                    cKE =  float(D.fmul(k2))\n                    eps =  k2 / (sqrt(kp2) + _1_0)**2\n\n                except Exception as X:\n                    raise _ellipticError(self, k2=k2, kp2=kp2, cause=X)\n            else:\n                cD  =  cK = cKE = INF\n                cE  = _1_0\n                eps =  k2\n        else:\n            cD  =  PI_4\n            cE  =  cK = PI_2\n            cKE = _0_0  # k2 * cD\n            eps =  EPS\n\n        return _Cs(cD=cD, cE=cE, cK=cK, cKE=cKE, eps=eps)\n\n    @Property_RO\n    def cE(self):\n        '''Get the complete integral of the second kind C{E(k)}\n           (C{float}), U{defined<https://DLMF.NIST.gov/19.2.E5>}.\n        '''\n        return self._cDEKEeps.cE\n\n    def _cE(self, kp2):  # compl integr 2nd kind\n        return _rG2(kp2, _1_0, self, PI_=PI_2)\n\n    @Property_RO\n    def cG(self):\n        '''Get Legendre's complete geodesic longitude integral\n           C{G(α^2, k)} (C{float}).\n        '''\n        return self._cGHPi.cG\n\n    @Property_RO\n    def _cGHPi(self):\n        '''(INTERNAL) Get the complete integrals G, H and Pi.\n        '''\n        alpha2, alphap2, kp2 = self.alpha2, self.alphap2, self.kp2\n        try:\n            # self._iteration = 0\n            if alpha2:\n                if alphap2:\n                    if kp2:  # <https://DLMF.NIST.gov/19.25.E2>\n                        cK =  self.cK\n                        Rj = _RJfma(_0_0, kp2, _1_0, alphap2, _3_0, self)\n                        cG =  Rj.ma(alpha2 - self.k2, cK)  # G(alpha2, k)\n                        cH = -Rj.ma(alphap2, -cK)  # H(alpha2, k)\n                        cPi = Rj.ma(alpha2,   cK)  # Pi(alpha2, k)\n                    else:\n                        cG  = cH = _rC(_1_0, alphap2)\n                        cPi = INF  # XXX or NAN?\n                else:\n                    cG = cH = cPi = INF  # XXX or NAN?\n            else:\n                cG, cPi = self.cE, self.cK\n                # H = K - D but this involves large cancellations if k2 is near 1.\n                # So write (for alpha2 = 0)\n                #   H = int(cos(phi)**2 / sqrt(1-k2 * sin(phi)**2), phi, 0, pi/2)\n                #     = 1 / sqrt(1-k2) * int(sin(phi)**2 / sqrt(1-k2/kp2 * sin(phi)**2,...)\n                #     = 1 / kp * D(i * k/kp)\n                # and use D(k) = RD(0, kp2, 1) / 3, so\n                #   H = 1/kp * RD(0, 1/kp2, 1) / 3\n                #     = kp2 * RD(0, 1, kp2) / 3\n                # using <https://DLMF.NIST.gov/19.20.E18>.  Equivalently\n                #   RF(x, 1) - RD(0, x, 1) / 3 = x * RD(0, 1, x) / 3 for x > 0\n                # For k2 = 1 and alpha2 = 0, we have\n                #   H = int(cos(phi),...) = 1\n                cH = float(_RD(_0_0, _1_0, kp2, _3_0 / kp2, self)) if kp2 else _1_0\n\n        except Exception as X:\n            raise _ellipticError(self, kp2=kp2, alpha2 =alpha2,\n                                                alphap2=alphap2, cause=X)\n        return _Cs(cG=cG, cH=cH, cPi=cPi)\n\n    @Property_RO\n    def cH(self):\n        '''Get Cayley's complete geodesic longitude difference integral\n           C{H(α^2, k)} (C{float}).\n        '''\n        return self._cGHPi.cH\n\n    @Property_RO\n    def cK(self):\n        '''Get the complete integral of the first kind C{K(k)}\n           (C{float}), U{defined<https://DLMF.NIST.gov/19.2.E4>}.\n        '''\n        return self._cDEKEeps.cK\n\n    def _cK(self, kp2):  # compl integr 1st kind\n        return _rF2(kp2, _1_0, self)\n\n    @Property_RO\n    def cKE(self):\n        '''Get the difference between the complete integrals of the\n           first and second kinds, C{K(k) − E(k)} (C{float}).\n        '''\n        return self._cDEKEeps.cKE\n\n    @Property_RO\n    def cPi(self):\n        '''Get the complete integral of the third kind C{Pi(α^2, k)}\n           (C{float}), U{defined<https://DLMF.NIST.gov/19.2.E7>}.\n        '''\n        return self._cGHPi.cPi\n\n    def deltaD(self, sn, cn, dn):\n        '''Jahnke's periodic incomplete elliptic integral.\n\n           @arg sn: sin(φ).\n           @arg cn: cos(φ).\n           @arg dn: sqrt(1 − k2 * sin(2φ)).\n\n           @return: Periodic function π D(φ, k) / (2 D(k)) - φ (C{float}).\n\n           @raise EllipticError: Invalid invokation or no convergence.\n        '''\n        return _deltaX(sn, cn, dn, self.cD, self.fD)\n\n    def deltaE(self, sn, cn, dn):\n        '''The periodic incomplete integral of the second kind.\n\n           @arg sn: sin(φ).\n           @arg cn: cos(φ).\n           @arg dn: sqrt(1 − k2 * sin(2φ)).\n\n           @return: Periodic function π E(φ, k) / (2 E(k)) - φ (C{float}).\n\n           @raise EllipticError: Invalid invokation or no convergence.\n        '''\n        return _deltaX(sn, cn, dn, self.cE, self.fE)\n\n    def deltaEinv(self, stau, ctau):\n        '''The periodic inverse of the incomplete integral of the second kind.\n\n           @arg stau: sin(τ)\n           @arg ctau: cos(τ)\n\n           @return: Periodic function E^−1(τ (2 E(k)/π), k) - τ (C{float}).\n\n           @raise EllipticError: No convergence.\n        '''\n        try:\n            if _signBit(ctau):  # pi periodic\n                stau, ctau = neg_(stau, ctau)\n            t = atan2(stau, ctau)\n            return self._Einv(t * self.cE / PI_2) - t\n\n        except Exception as X:\n            raise _ellipticError(self.deltaEinv, stau, ctau, cause=X)\n\n    def deltaF(self, sn, cn, dn):\n        '''The periodic incomplete integral of the first kind.\n\n           @arg sn: sin(φ).\n           @arg cn: cos(φ).\n           @arg dn: sqrt(1 − k2 * sin(2φ)).\n\n           @return: Periodic function π F(φ, k) / (2 K(k)) - φ (C{float}).\n\n           @raise EllipticError: Invalid invokation or no convergence.\n        '''\n        return _deltaX(sn, cn, dn, self.cK, self.fF)\n\n    def deltaG(self, sn, cn, dn):\n        '''Legendre's periodic geodesic longitude integral.\n\n           @arg sn: sin(φ).\n           @arg cn: cos(φ).\n           @arg dn: sqrt(1 − k2 * sin(2φ)).\n\n           @return: Periodic function π G(φ, k) / (2 G(k)) - φ (C{float}).\n\n           @raise EllipticError: Invalid invokation or no convergence.\n        '''\n        return _deltaX(sn, cn, dn, self.cG, self.fG)\n\n    def deltaH(self, sn, cn, dn):\n        '''Cayley's periodic geodesic longitude difference integral.\n\n           @arg sn: sin(φ).\n           @arg cn: cos(φ).\n           @arg dn: sqrt(1 − k2 * sin(2φ)).\n\n           @return: Periodic function π H(φ, k) / (2 H(k)) - φ (C{float}).\n\n           @raise EllipticError: Invalid invokation or no convergence.\n        '''\n        return _deltaX(sn, cn, dn, self.cH, self.fH)\n\n    def deltaPi(self, sn, cn, dn):\n        '''The periodic incomplete integral of the third kind.\n\n           @arg sn: sin(φ).\n           @arg cn: cos(φ).\n           @arg dn: sqrt(1 − k2 * sin(2φ)).\n\n           @return: Periodic function π Π(φ, α2, k) / (2 Π(α2, k)) - φ\n                    (C{float}).\n\n           @raise EllipticError: Invalid invokation or no convergence.\n        '''\n        return _deltaX(sn, cn, dn, self.cPi, self.fPi)\n\n    def _Einv(self, x):\n        '''(INTERNAL) Helper for C{.deltaEinv} and C{.fEinv}.\n        '''\n        E2  = self.cE * _2_0\n        n   = floor(x / E2 + _0_5)\n        r   = x - E2 * n  # r in [-cE, cE)\n        # linear approximation\n        phi = PI * r / E2  # phi in [-PI_2, PI_2)\n        Phi = Fsum(phi)\n        # first order correction\n        phi = Phi.fsum_(-sin(phi * _2_0) * self.eps * _0_5)\n        # self._iteration = 0\n        # For kp2 close to zero use asin(r / cE) or J. P. Boyd,\n        # Applied Math. and Computation 218, 7005-7013 (2012)\n        # <https://DOI.org/10.1016/j.amc.2011.12.021>\n        _Phi2 = Phi.fsum2f_  # aggregate\n        for i in range(1, _MAXIT):  # GEOGRAPHICLIB_PANIC\n            sn, cn, dn = self._sncndn3(phi)\n            if dn:\n                sn = self.fE(sn, cn, dn)\n                phi, d = _Phi2((r - sn) / dn)\n            else:  # PYCHOK no cover\n                d = _0_0  # XXX continue?\n            if fabs(d) < _TolJAC:  # 3-4 trips\n                self._iteration += i\n                break\n        else:  # PYCHOK no cover\n            raise _ConvergenceError(_MAXIT, d, _TolJAC)\n        return Phi.fsum_(n * PI) if n else phi\n\n    @Property_RO\n    def eps(self):\n        '''Get epsilon (C{float}).\n        '''\n        return self._cDEKEeps.eps\n\n    def fD(self, phi_or_sn, cn=None, dn=None):\n        '''Jahnke's incomplete elliptic integral in terms of\n           Jacobi elliptic functions.\n\n           @arg phi_or_sn: φ or sin(φ).\n           @kwarg cn: C{None} or cos(φ).\n           @kwarg dn: C{None} or sqrt(1 − k2 * sin(2φ)).\n\n           @return: D(φ, k) as though φ ∈ (−π, π] (C{float}),\n                    U{defined<https://DLMF.NIST.gov/19.2.E4>}.\n\n           @raise EllipticError: Invalid invokation or no convergence.\n        '''\n        def _fD(sn, cn, dn):\n            r = fabs(sn)**3\n            if r:\n                r = float(_RD(cn**2, dn**2, _1_0, _3_0 / r, self))\n            return r\n\n        return self._fXf(phi_or_sn, cn, dn, self.cD,\n                                            self.deltaD, _fD)\n\n    def fDelta(self, sn, cn):\n        '''The C{Delta} amplitude function.\n\n           @arg sn: sin(φ).\n           @arg cn: cos(φ).\n\n           @return: sqrt(1 − k2 * sin(2φ)) (C{float}).\n        '''\n        try:\n            k2 =  self.k2\n            s  = (self.kp2 + cn**2 * k2) if k2 > 0 else (\n                     (_1_0 - sn**2 * k2) if k2 < 0 else self.kp2)\n            return sqrt(s) if s else _0_0\n\n        except Exception as X:\n            raise _ellipticError(self.fDelta, sn, cn, k2=k2, cause=X)\n\n    def fE(self, phi_or_sn, cn=None, dn=None):\n        '''The incomplete integral of the second kind in terms of\n           Jacobi elliptic functions.\n\n           @arg phi_or_sn: φ or sin(φ).\n           @kwarg cn: C{None} or cos(φ).\n           @kwarg dn: C{None} or sqrt(1 − k2 * sin(2φ)).\n\n           @return: E(φ, k) as though φ ∈ (−π, π] (C{float}),\n                    U{defined<https://DLMF.NIST.gov/19.2.E5>}.\n\n           @raise EllipticError: Invalid invokation or no convergence.\n        '''\n        def _fE(sn, cn, dn):\n            '''(INTERNAL) Core of C{.fE}.\n            '''\n            if sn:\n                cn2, dn2 = cn**2, dn**2\n                kp2, k2  = self.kp2, self.k2\n                if k2 <= 0:  # Carlson, eq. 4.6, <https://DLMF.NIST.gov/19.25.E9>\n                    Ei = _RF3(cn2, dn2, _1_0, self)\n                    if k2:\n                        Ei -= _RD(cn2, dn2, _1_0, _3over(k2, sn**2), self)\n                elif kp2 >= 0:  # k2 > 0, <https://DLMF.NIST.gov/19.25.E10>\n                    Ei = _over(k2 * fabs(cn), dn)  # float\n                    if kp2:\n                        Ei += (_RD( cn2, _1_0,  dn2, _3over(k2, sn**2), self) +\n                               _RF3(cn2,  dn2, _1_0, self)) * kp2\n                else:  # PYCHOK no cover\n                    Ei  = _over(dn, fabs(cn))  # <https://DLMF.NIST.gov/19.25.E11>\n                    Ei -= _RD(dn2, _1_0, cn2, _3over(kp2, sn**2), self)\n                Ei *= fabs(sn)\n            else:  # PYCHOK no cover\n                Ei  = _0_0\n            return float(Ei)\n\n        return self._fXf(phi_or_sn, cn, dn, self.cE,\n                                            self.deltaE, _fE,\n                         k2_0=self.k2==0)\n\n    def fEd(self, deg):\n        '''The incomplete integral of the second kind with\n           the argument given in C{degrees}.\n\n           @arg deg: Angle (C{degrees}).\n\n           @return: E(π B{C{deg}} / 180, k) (C{float}).\n\n           @raise EllipticError: No convergence.\n        '''\n        if _K_2_0:\n            e =  round((deg - _norm180(deg)) / _360_0)\n        elif fabs(deg) < _180_0:\n            e = _0_0\n        else:\n            e =  ceil(deg / _360_0 - _0_5)\n            deg -= e * _360_0\n        e *= self.cE * _4_0\n        return self.fE(radians(deg)) + e\n\n    def fEinv(self, x):\n        '''The inverse of the incomplete integral of the second kind.\n\n           @arg x: Argument (C{float}).\n\n           @return: φ = 1 / E(B{C{x}}, k), such that E(φ, k) = B{C{x}}\n                    (C{float}).\n\n           @raise EllipticError: No convergence.\n        '''\n        try:\n            return self._Einv(x)\n        except Exception as X:\n            raise _ellipticError(self.fEinv, x, cause=X)\n\n    def fF(self, phi_or_sn, cn=None, dn=None):\n        '''The incomplete integral of the first kind in terms of\n           Jacobi elliptic functions.\n\n           @arg phi_or_sn: φ or sin(φ).\n           @kwarg cn: C{None} or cos(φ).\n           @kwarg dn: C{None} or sqrt(1 − k2 * sin(2φ)).\n\n           @return: F(φ, k) as though φ ∈ (−π, π] (C{float}),\n                    U{defined<https://DLMF.NIST.gov/19.2.E4>}.\n\n           @raise EllipticError: Invalid invokation or no convergence.\n        '''\n        def _fF(sn, cn, dn):\n            r = fabs(sn)\n            if r:\n                r = float(_RF3(cn**2, dn**2, _1_0, self).fmul(r))\n            return r\n\n        return self._fXf(phi_or_sn, cn, dn, self.cK,\n                                            self.deltaF, _fF,\n                         k2_0=self.k2==0, kp2_0=self.kp2==0)\n\n    def fG(self, phi_or_sn, cn=None, dn=None):\n        '''Legendre's geodesic longitude integral in terms of\n           Jacobi elliptic functions.\n\n           @arg phi_or_sn: φ or sin(φ).\n           @kwarg cn: C{None} or cos(φ).\n           @kwarg dn: C{None} or sqrt(1 − k2 * sin(2φ)).\n\n           @return: G(φ, k) as though φ ∈ (−π, π] (C{float}).\n\n           @raise EllipticError: Invalid invokation or no convergence.\n\n           @note: Legendre expresses the longitude of a point on the\n                  geodesic in terms of this combination of elliptic\n                  integrals in U{Exercices de Calcul Intégral, Vol 1\n                  (1811), P 181<https://Books.Google.com/books?id=\n                  riIOAAAAQAAJ&pg=PA181>}.\n\n           @see: U{Geodesics in terms of elliptic integrals<https://\n                 GeographicLib.SourceForge.io/C++/doc/geodesic.html#geodellip>}\n                 for the expression for the longitude in terms of this function.\n        '''\n        return self._fXa(phi_or_sn, cn, dn, self.alpha2 - self.k2,\n                                            self.cG, self.deltaG)\n\n    def fH(self, phi_or_sn, cn=None, dn=None):\n        '''Cayley's geodesic longitude difference integral in terms of\n           Jacobi elliptic functions.\n\n           @arg phi_or_sn: φ or sin(φ).\n           @kwarg cn: C{None} or cos(φ).\n           @kwarg dn: C{None} or sqrt(1 − k2 * sin(2φ)).\n\n           @return: H(φ, k) as though φ ∈ (−π, π] (C{float}).\n\n           @raise EllipticError: Invalid invokation or no convergence.\n\n           @note: Cayley expresses the longitude difference of a point\n                  on the geodesic in terms of this combination of\n                  elliptic integrals in U{Phil. Mag. B{40} (1870), P 333\n                  <https://Books.Google.com/books?id=Zk0wAAAAIAAJ&pg=PA333>}.\n\n           @see: U{Geodesics in terms of elliptic integrals<https://\n                 GeographicLib.SourceForge.io/C++/doc/geodesic.html#geodellip>}\n                 for the expression for the longitude in terms of this function.\n        '''\n        return self._fXa(phi_or_sn, cn, dn, -self.alphap2,\n                                             self.cH, self.deltaH)\n\n    def fPi(self, phi_or_sn, cn=None, dn=None):\n        '''The incomplete integral of the third kind in terms of\n           Jacobi elliptic functions.\n\n           @arg phi_or_sn: φ or sin(φ).\n           @kwarg cn: C{None} or cos(φ).\n           @kwarg dn: C{None} or sqrt(1 − k2 * sin(2φ)).\n\n           @return: Π(φ, α2, k) as though φ ∈ (−π, π] (C{float}).\n\n           @raise EllipticError: Invalid invokation or no convergence.\n        '''\n        if dn is None and cn is not None:  # and isscalar(phi_or_sn)\n            dn = self.fDelta(phi_or_sn, cn)  # in .triaxial\n        return self._fXa(phi_or_sn, cn, dn, self.alpha2,\n                                            self.cPi, self.deltaPi)\n\n    def _fXa(self, phi_or_sn, cn, dn, aX, cX, deltaX):\n        '''(INTERNAL) Helper for C{.fG}, C{.fH} and C{.fPi}.\n        '''\n        def _fX(sn, cn, dn):\n            if sn:\n                cn2, dn2 = cn**2, dn**2\n                R = _RF3(cn2, dn2, _1_0, self)\n                if aX:\n                    sn2 = sn**2\n                    P   = sn2 * self.alphap2 + cn2\n                    R += _RJ(cn2, dn2, _1_0, P, _3over(aX, sn2), self)\n                R *= fabs(sn)\n            else:  # PYCHOK no cover\n                R = _0_0\n            return float(R)\n\n        return self._fXf(phi_or_sn, cn, dn, cX, deltaX, _fX)\n\n    def _fXf(self, phi_or_sn, cn, dn, cX, deltaX, fX, k2_0=False, kp2_0=False):\n        '''(INTERNAL) Helper for C{.fD}, C{.fE}, C{.fF} and C{._fXa}.\n        '''\n        # self._iteration = 0  # aggregate\n        phi = sn = phi_or_sn\n        if cn is dn is None:  # fX(phi) call\n            if k2_0:  # C++ version 2.4\n                return phi\n            elif kp2_0:\n                return asinh(tan(phi))\n            sn, cn, dn = self._sncndn3(phi)\n            if fabs(phi) >= PI:\n                return (deltaX(sn, cn, dn) + phi) * cX / PI_2\n            # fall through\n        elif cn is None or dn is None:\n            n = NN(_f_, typename(deltaX)[5:])\n            raise _ellipticError(n, sn, cn, dn)\n\n        if _signBit(cn):  # enforce usual trig-like symmetries\n            xi = cX * _2_0 - fX(sn, cn, dn)\n        else:\n            xi = fX(sn, cn, dn) if cn > 0 else cX\n        return copysign0(xi, sn)\n\n    def _jam(self, x):\n        '''Jacobi amplitude function.\n\n           @return: C{phi} (C{float}).\n        '''\n        # implements DLMF Sec 22.20(ii), see also U{Sala\n        # (1989)<https://doi.org/10.1137/0520100>}, Sec 5\n        if self.k2:\n            if self.kp2:\n                r, ac = self._jamac2\n                x    *= r  # phi\n                for a, c in ac:\n                    P = x\n                    a = asin(c * sin(x) / a)\n                    x = favg(a, x)\n                if self.k2 < 0:  # Sala Eq. 5.8\n                    x = P - x\n            else:  # PYCHOK no cover\n                x = atan(sinh(x))  # gd(x)\n        return x\n\n    @Property_RO\n    def _jamac2(self):\n        '''(INTERNAL) Get Jacobi amplitude 2-tuple C{(r, ac)}.\n        '''\n        a = r = _1_0\n        b,  c = self.kp2, self.k2\n        # assert b and c\n        if c < 0:  # Sala Eq. 5.8\n            r  =  sqrt(b)\n            b  = _1_over(b)\n#           c *=  b  # unused\n        ac  = []  # [(a, sqrt(c))] unused\n        _ac = ac.append\n        for _ in range(_MAXIT):  # GEOGRAPHICLIB_PANIC\n            b = sqrt(a * b)\n            c = favg(a, -b)\n            a = favg(a,  b)  # == PI_2 / K\n            _ac((a, c))\n            if c <= (a * _TolJAM):  # 7..18 trips, quadratic\n                break\n        else:  # PYCHOK no cover\n            raise _ConvergenceError(_MAXIT, _over(c, a), _TolJAM)\n        i  = len(ac)\n        r *= 2**i * a\n        self._iteration += i\n        return r, tuple(reversed(ac))\n\n    @Property_RO\n    def k2(self):\n        '''Get k^2, the square of the modulus (C{float}).\n        '''\n        return self._k2\n\n    @Property_RO\n    def kp2(self):\n        '''Get k'^2, the square of the complementary modulus (C{float}).\n        '''\n        return self._kp2\n\n    def reset(self, k2=0, alpha2=0, kp2=None, alphap2=None):  # MCCABE 13\n        '''Reset the modulus, parameter and the complementaries.\n\n           @kwarg k2: Modulus squared (C{float}, NINF <= k^2 <= 1).\n           @kwarg alpha2: Parameter squared (C{float}, NINF <= α^2 <= 1).\n           @kwarg kp2: Complementary modulus squared (C{float}, k'^2 >= 0).\n           @kwarg alphap2: Complementary parameter squared (C{float}, α'^2 >= 0).\n\n           @raise EllipticError: Invalid B{C{k2}}, B{C{alpha2}}, B{C{kp2}}\n                                 or B{C{alphap2}}.\n\n           @note: The arguments must satisfy C{B{k2} + B{kp2} = 1} and\n                  C{B{alpha2} + B{alphap2} = 1}.  No checking is done\n                  that these conditions are met to enable accuracy to be\n                  maintained, e.g., when C{k} is very close to unity.\n        '''\n        _update_all(self, Base=Property_RO, needed=4)\n        self._reset(k2, alpha2, kp2, alphap2)\n\n    def _reset(self, k2, alpha2, kp2, alphap2):\n        '''(INITERNAL) Reset this elliptic.\n        '''\n        def _1p2(kp2, k2):\n            return (_1_0 - k2) if kp2 is None else kp2\n\n        def _S(**kwds):\n            return Scalar_(Error=EllipticError, **kwds)\n\n        self._k2  = _S(k2 = k2, low=None, high=_1_0)\n        self._kp2 = _S(kp2=_1p2(kp2, k2))  # low=_0_0\n\n        self._alpha2  = _S(alpha2 = alpha2, low=None, high=_1_0)\n        self._alphap2 = _S(alphap2=_1p2(alphap2, alpha2))  # low=_0_0\n\n        # Values of complete elliptic integrals for k = 0,1 and alpha = 0,1\n        #         K     E     D\n        # k = 0:  pi/2  pi/2  pi/4\n        # k = 1:  inf   1     inf\n        #                    Pi    G     H\n        # k = 0, alpha = 0:  pi/2  pi/2  pi/4\n        # k = 1, alpha = 0:  inf   1     1\n        # k = 0, alpha = 1:  inf   inf   pi/2\n        # k = 1, alpha = 1:  inf   inf   inf\n        #\n        # G(0, k) = Pi(0, k) = H(1, k) = E(k)\n        # H(0, k) = K(k) - D(k)\n        # Pi(alpha2, 0) = G(alpha2, 0) = pi / (2 * sqrt(1 - alpha2))\n        # H( alpha2, 0) = pi / (2 * (sqrt(1 - alpha2) + 1))\n        # Pi(alpha2, 1) = inf\n        # G( alpha2, 1) = H(alpha2, 1) = RC(1, alphap2)\n\n        self._iteration = 0\n\n    def sncndn(self, x, jam=False):\n        '''The Jacobi amplitude and elliptic function.\n\n           @arg x: The argument (C{float}).\n           @kwarg jam: If C{True}, use the Jacobi amplitude otherwise\n                       Bulirsch' function (C{bool}).\n\n           @return: An L{Elliptic3Tuple}C{(sn, cn, dn)} with C{*n(B{x}, k)}.\n\n           @raise EllipticError: No convergence.\n        '''\n        i = self._iteration\n        try:\n            if self.kp2:\n                if jam:  # Jacobi amplitude, C++ v 2.4\n                    sn, cn, dn = self._sncndn3(self._jam(x))\n                else:\n                    sn, cn, dn = self._B3(x)\n            else:\n                sn = tanh(x)  # accurate for large abs(x)\n                cn = dn = _1_over(cosh(x))\n\n        except Exception as X:\n            raise _ellipticError(self.sncndn, x, kp2=self.kp2, cause=X)\n\n        return Elliptic3Tuple(sn, cn, dn, iteration=self._iteration - i)\n\n    def _sncndn3(self, phi):\n        '''(INTERNAL) Helper for C{.fEinv}, C{._fXf} and C{.sncndn}.\n        '''\n        sn, cn = _sincos2(phi)\n        return sn, cn, self.fDelta(sn, cn)\n\n    @staticmethod\n    def fRC(x, y):\n        '''Degenerate symmetric integral of the first kind C{RC(x, y)}.\n\n           @return: C{RC(x, y)}, equivalent to C{RF(x, y, y)}.\n\n           @see: U{C{RC} definition<https://DLMF.NIST.gov/19.2.E17>} and\n                 U{Carlson<https://ArXiv.org/pdf/math/9409227.pdf>}.\n        '''\n        return _rC(x, y)\n\n    @staticmethod\n    def fRD(x, y, z, *over):\n        '''Degenerate symmetric integral of the third kind C{RD(x, y, z)}.\n\n           @return: C{RD(x, y, z) / over}, equivalent to C{RJ(x, y, z, z)\n                    / over} with C{over} typically 3.\n\n           @see: U{C{RD} definition<https://DLMF.NIST.gov/19.16.E5>} and\n                 U{Carlson<https://ArXiv.org/pdf/math/9409227.pdf>}.\n        '''\n        try:\n            return float(_RD(x, y, z, *over))\n        except Exception as X:\n            raise _ellipticError(Elliptic.fRD, x, y, z, *over, cause=X)\n\n    @staticmethod\n    def fRF(x, y, z=0):\n        '''Symmetric or complete symmetric integral of the first kind\n           C{RF(x, y, z)} respectively C{RF(x, y)}.\n\n           @return: C{RF(x, y, z)} or C{RF(x, y)} for missing or zero B{C{z}}.\n\n           @see: U{C{RF} definition<https://DLMF.NIST.gov/19.16.E1>} and\n                 U{Carlson<https://ArXiv.org/pdf/math/9409227.pdf>}.\n        '''\n        try:\n            return float(_RF3(x, y, z)) if z else _rF2(x, y)\n        except Exception as X:\n            raise _ellipticError(Elliptic.fRF, x, y, z, cause=X)\n\n    @staticmethod\n    def _fRF3RD(x, z, m):  # in .auxilats.AuxDLat.DE, -.AuxLat.Rectifying\n        y = _1_0 - m\n        try:  # float(RF(x, y, z) - RD(x, y, z, 3 / m))\n            R = _RF3(x, y, z)\n            if m:\n                R -= _RD(x, y, z, _3_0 / m)\n        except Exception as X:\n            raise _ellipticError(Elliptic._fRF3RD, x, y, z, m, cause=X)\n        return float(R)\n\n    @staticmethod\n    def fRG(x, y, z=0):\n        '''Symmetric or complete symmetric integral of the second kind\n           C{RG(x, y, z)} respectively C{RG(x, y)}.\n\n           @return: C{RG(x, y, z)} or C{RG(x, y)} for missing or zero B{C{z}}.\n\n           @see: U{C{RG} definition<https://DLMF.NIST.gov/19.16.E3>},\n                 U{Carlson<https://ArXiv.org/pdf/math/9409227.pdf>} and\n                 U{RG<https://GeographicLib.SourceForge.io/C++/doc/\n                 EllipticFunction_8cpp_source.html#l00096>} version 2.3.\n        '''\n        try:\n            return _rG2(x, y) if z == 0 else (\n                   _rG2(z, x) if y == 0 else (\n                   _rG2(y, z) if x == 0 else _rG3(x, y, z)))\n        except Exception as X:\n            t = _negative_ if min(x, y, z) < 0 else NN\n            raise _ellipticError(Elliptic.fRG, x, y, z, cause=X, txt=t)\n\n    @staticmethod\n    def fRJ(x, y, z, P):  # *over\n        '''Symmetric integral of the third kind C{RJ(x, y, z, P)}.\n\n           @return: C{RJ(x, y, z, P)}.\n\n           @see: U{C{RJ} definition<https://DLMF.NIST.gov/19.16.E2>} and\n                 U{Carlson<https://ArXiv.org/pdf/math/9409227.pdf>}.\n        '''\n        try:\n            return float(_RJ(x, y, z, P))\n        except Exception as X:\n            raise _ellipticError(Elliptic.fRJ, x, y, z, P, cause=X)\n\n_allPropertiesOf_n(16, Elliptic)  # PYCHOK assert, see Elliptic.reset\n\n\nclass _Ek(Elliptic):\n    '''(INTERNAL) Low-overhead C{Elliptic} for C{Ellipse._Ek}.\n    '''\n    _alpha2    = _0_0\n    _alphap2   = _1_0\n    cE         = _0_0  # overide Property_RO\n#   cK         = _0_0  # ditto\n    _iteration =  0\n\n    def __init__(self, k2):\n        # assert 0 < k2 < 1\n        self._k2  = k2\n        self._kp2 = kp2 = _1_0 - k2\n        self.cE = self._cE(kp2)\n#       self.cK = self._cK(kp2)\n\n\nclass EllipticError(_ValueError):\n    '''Elliptic function, integral, convergence or other L{Elliptic} issue.\n    '''\n    pass\n\n\nclass Elliptic3Tuple(_NamedTuple):\n    '''3-Tuple C{(sn, cn, dn)} all C{scalar}.\n    '''\n    _Names_ = ('sn',   'cn',   'dn')\n    _Units_ = ( Scalar, Scalar, Scalar)\n\n\nclass _Hdot(dict):\n    '''(INTERNAL) Caching helper for C{_Horner} and C{_RF3}.\n    '''\n    def __call__(self, F, h, *Xys):\n        k  = Xys[1]  # unique key\n        ys = self.get(k, None)\n        if ys is None:\n            self[k] = ys = tuple((y / h) for y in Xys[1::2])\n        try:\n            D  = Fdot(Xys[0::2], *ys, f2product=True)\n        except (OverflowError, TypeError, ValueError):\n            ts = map(_operator.mul, Xys[0::2], ys)\n            D  = Fsum(*ts, nonfinites=True)  # _Ksum(0, 0, *ts)\n        return D.fmul(F)  # Fsum\n\n_Hdot = _Hdot()  # PYCHOK singleton\n\n\nclass _List(list):\n    '''(INTERNAL) Helper for C{_RD}, C{_RF3} and C{_RJ}.\n    '''\n    _a0 = None\n\n    def __init__(self, *xyzp):  # x, y, z [, P]\n        list.__init__(self, xyzp)\n\n    def a0(self, n):\n        '''Compute the initial C{a}.\n        '''\n        a = list(self)\n        m = n - len(a)\n        if m > 0:\n            a[-1] *= m + 1\n        self._a0 = a0 = _fsum(a) / n\n        return a0\n\n    def amrs4(self, y, Tol, inst=None):\n        '''Yield Carlson 4-tuples C{(An, mul, lam, s)} plus sentinel, with\n           C{lam = fdot(sqrt(x), ... (z))} and C{s = (sqrt(x), ... (P))}.\n        '''\n        L = self\n        a = L.a0(5 if y else 3)\n        t = L.threshold(Tol)\n        m = 1\n        for i in range(_MAXIT):\n            d = fabs(a * m)\n            if d > t:  # 3-6 trips\n                break\n            s =  map2(sqrt, L)  # sqrt(x), sqrt(y), sqrt(z) [, sqrt(P)]\n            Q = _Qdot3(*s)  # (s[0] * s[1], s[1] * s[2], s[2] * s[0])\n            a =  Q(a)  # An = sum(An, *Q)) / 4\n            L[:] = map(Q, L)  # x = sum(x, *Q) / 4, ...\n            if y:  # yield only if used\n                r = float(Q)  # lam = sum(Q)\n                yield a, m, r, s  # L[2] is next z\n            m *= 4\n        else:  # PYCHOK no cover\n            raise _ConvergenceError(_MAXIT, d, t, thresh=True)\n        yield a, m, None, ()  # sentinel: same a, next m, no r and s\n        if inst:\n            inst._iteration += i\n\n    def rescale(self, am, *xs):\n        '''Rescale C{x}, C{y}, ...\n        '''\n        # assert am\n        a0  =  self._a0\n        _am = _1_over(am)\n        for x in xs:\n            yield (a0 - x) * _am\n\n    def threshold(self, Tol):\n        '''Get the convergence C{threshold}.\n        '''\n        a0 = self._a0\n        return max(fabs(x - a0) for x in self) / Tol\n\n\n# class _Qdot3(Fsum):\n#     '''(INTERNAL) \"Quarter\" 3-dot product.\n#     '''\n#     def __init__(self, x, y, z, *unused):  # PYCHOK signature\n#         Fsum.__init__(self, x * y, y * z, z * x)\n#\n#     def __call__(self, a):  # PYCHOK signature\n#         return (self + a).fover(_4_0)\n\n\nclass _Qdot3(list):\n    '''(INTERNAL) \"Quarter\" 3-dot product.\n    '''\n    def __init__(self, x, y, z, *unused):  # PYCHOK signature\n        R = _Rdot(x, y, z, _0_0).partials\n        list.__init__(self, (0,) + R)  # NOT R.fsum2()!\n\n    def __call__(self, a):\n        try:\n            self[0] = a\n            q = float(self) * _0_25\n        finally:\n            self[0] = 0\n        return q\n\n    def __float__(self):\n        return _fsum(self)  # nonfinites=True\n\n\ndef _abm3(x, y, inst=None):\n    '''(INTERNAL) Yield Carlson 3-tuples C{(xn, yn, m)}.\n    '''\n    a, b = sqrt(x), (sqrt(y) if y != _1_0 else y)\n    if b > a:\n        b, a = a, b\n    yield a, -b, _0_5  # (x0 + y0)**2 * _0_5\n    m = -1\n    for i in range(_MAXIT):\n        d = fabs(a - b)\n        if d <= (a * _TolRG0):  # 2..4 trips\n            break\n        P = a\n        a = favg(P,  b)\n        b = sqrt(P * b)\n        yield a, b, m  # (xi - yi)**2 * m\n        m *= 2\n    else:  # PYCHOK no cover\n        raise _ConvergenceError(_MAXIT, _over(d, P), _TolRG0)\n    if inst:\n        inst._iteration += i\n    yield a, b, 0  # sentinel: m = 0\n\n\ndef _deltaX(sn, cn, dn, cX, fX):\n    '''(INTERNAL) Helper for C{Elliptic.deltaD} thru C{.deltaPi}.\n    '''\n    try:\n        if cn is None or dn is None:\n            raise ValueError(_invalid_)\n\n        if _signBit(cn):\n            sn, cn = neg_(sn, cn)\n        r = fX(sn, cn, dn) * _over(PI_2, cX)\n        return r - atan2(sn, cn)\n\n    except Exception as X:\n        n = NN(_delta_, typename(fX)[1:])\n        raise _ellipticError(n, sn, cn, dn, cause=X)\n\n\ndef _ellipticError(where, *args, **kwds_cause_txt):\n    '''(INTERNAL) Format an L{EllipticError}.\n    '''\n    def _x_t_kwds(cause=None, txt=NN, **kwds):\n        return cause, txt, kwds\n\n    x, t, kwds = _x_t_kwds(**kwds_cause_txt)\n\n    n =  typename(where, where)\n    n = _DOT_(typename(Elliptic), n)\n    n = _SPACE_(_invokation_, n)\n    u =  unstr(n, *args, **kwds)\n    return EllipticError(u, cause=x, txt=t)\n\n\ndef _Hsum(S, e1, E2, E3, E4, E5, over):\n    '''(INTERNAL) Horner-like form for C{_RD} and C{_RJ} below.\n    '''\n    E22 = E2**2\n    # Polynomial is <https://DLMF.NIST.gov/19.36.E2>\n    # (1 - 3*E2/14 + E3/6 + 9*E2**2/88 - 3*E4/22 - 9*E2*E3/52\n    #    + 3*E5/26 - E2**3/16 + 3*E3**2/40 + 3*E2*E4/20\n    #    + 45*E2**2*E3/272 - 9*(E3*E4+E2*E5)/68)\n    # converted to Horner-like form ...\n    _1 = _1_0\n    h  =  4084080\n    S *=  e1\n    S += _Hdot(E5, h, E2, -540540,                            _1,  471240)\n    S += _Hdot(E4, h, E2,  612612,               E3, -540540, _1, -556920)\n    S += _Hdot(E3, h, E2, -706860, E22,  675675, E3,  306306, _1,  680680)\n    S += _Hdot(E2, h, E2,  417690, E22, -255255,              _1, -875160)\n    S += _1\n    if over:\n        e1 *= over\n    return S.fdiv(e1)  # Fsum\n\n\ndef _3over(a, b):\n    '''(INTERNAL) Return C{3 / (a * b)}.\n    '''\n    return _over(_3_0, a * b)\n\n\ndef _rC(x, y):\n    '''(INTERNAL) Defined only for C{y != 0} and C{x >= 0}.\n    '''\n    if x < y:  # catch NaN\n        # <https://DLMF.NIST.gov/19.2.E18>\n        d = y - x\n        r = atan(sqrt(d / x)) if x > 0 else PI_2\n    elif x == y:  # XXX d < EPS0? or EPS02 or _EPSmin\n        d, r = y, _1_0\n    elif y > 0:  # <https://DLMF.NIST.gov/19.2.E19>\n        d = x - y\n        r = asinh(sqrt(d / y))  # atanh(sqrt((x - y) / x))\n    elif y < 0:  # <https://DLMF.NIST.gov/19.2.E20>\n        d = x - y\n        r = asinh(sqrt(-x / y))  # atanh(sqrt(x / (x - y)))\n    else:  # PYCHOK no cover\n        d = 0  # y == 0\n    if d > 0 and x >= 0:\n        return r / sqrt(d)  # float\n    raise _ellipticError(Elliptic.fRC, x, y)\n\n\ndef _RD(x, y, z, over=_0_0, inst=None):\n    '''(INTERNAL) Carlson, eqs 2.28 - 2.34.\n    '''\n    L = _List(x, y, z)\n    S =  Fsum()\n    for a, m, r, s in L.amrs4(True, _TolRF, inst):\n        if s:\n            S += _over(_3_0, (r + z) * s[2] * m)\n            z  =  L[2]  # s[2] = sqrt(z)\n    m *= a\n    x, y = L.rescale(-m, x, y)\n    xy =  x * y\n    z  = (x + y) / _3_0\n    z2 =  z**2\n    return _Hsum(S, sqrt(a) * m,\n                (xy        - z2 * _6_0),\n                (xy * _3_0 - z2 * _8_0) * z,\n                (xy -  z2) * z2 * _3_0,\n                (xy *  z2  * z), over)  # Fsum\n\n\ndef _Rdot(x, y, z, start3):\n    '''(INTERNAL) \"Rotated\" C{dot}.\n    '''\n    try:\n        R = Fdot_(x, y,  y, z,  z, x,  start3, _3_0, f2product=True)\n    except (OverflowError, TypeError, ValueError):\n        R = Fsum(x * y, y * z, z * x, start3 * _3_0, nonfinites=True)\n    return R\n\n\ndef _rF2(x, y, inst=None):  # 2-arg version, z=0\n    '''(INTERNAL) Carlson, eqs 2.36 - 2.38.\n    '''\n    for a, b, m in _abm3(x, y, inst):  # PYCHOK yield\n        pass\n    return _over(PI, a + b)  # float\n\n\ndef _RF3(x, y, z, inst=None):  # 3-arg version\n    '''(INTERNAL) Carlson, eqs 2.2 - 2.7.\n    '''\n    L = _List(x, y, z)\n    for a, m, _, _ in L.amrs4(False, _TolRF, inst):\n        pass\n    x, y = L.rescale(a * m, x, y)\n    z  = neg(x + y)\n    xy = x  * y\n    e2 = xy - z**2\n    e3 = xy * z\n    e4 = e2**2\n    # Polynomial is <https://DLMF.NIST.gov/19.36.E1>\n    # (1 - E2/10 + E3/14 + E2**2/24 - 3*E2*E3/44\n    #    - 5*E2**3/208 + 3*E3**2/104 + E2**2*E3/16)\n    # converted to Horner-like form ...\n    _1 = _1_0\n    h  =  240240\n    S  = _Hdot(e3, h, e4, 15015, e3, 6930, e2, -16380, _1,  17160)\n    S += _Hdot(e2, h, e4, -5775,           e2,  10010, _1, -24024)\n    S += _1\n    return S.fdiv(sqrt(a))  # Fsum\n\n\ndef _rG2(x, y, inst=None, PI_=PI_4):  # 2-args\n    '''(INTERNAL) Carlson, eqs 2.36 - 2.39.\n    '''\n    rs = []  # len 2..7, incl sentinel\n    _r = rs.append\n    for a, b, m in _abm3(x, y, inst):  # PYCHOK yield\n        _r((a - b)**2 * m)\n    return _over(_fsum(rs) * PI_, a + b)  # nonfinites=True, float\n\n\ndef _rG3(x, y, z):  # 3-arg version  # in .triaxials.bases\n    '''(INTERNAL) C{x}, C{y} and C{z} all non-zero, see C{.fRG}.\n    '''\n    R  = _RF3(x, y, z) * z\n    rd = (x - z) * (z - y)  # - (y - z)\n    if rd:  # Carlson, eq 1.7\n        R += _RD(x, y, z, _3_0 / rd)\n    R += sqrt(x * y / z)\n    return R.fover(_2_0)  # float\n\n\ndef _RJ(x, y, z, P, over=_0_0, inst=None):\n    '''(INTERNAL) Carlson, eqs 2.17 - 2.25.\n    '''\n    def _xyzp(x, y, z, P):\n        return (x + P) * (y + P) * (z + P)\n\n    L = _List(x, y, z, P)\n    n =  neg(_xyzp(x, y, z, -P))\n    S =  Fsum()\n    for a, m, _, s in L.amrs4(True, _TolRD, inst):\n        if s:\n            d = _xyzp(*s)\n            if d:\n                if n:\n                    r = _rC(_1_0, (n / d**2 + _1_0))\n                    n =  n / _64_0  # /= chokes PyChecker\n                else:\n                    r = _1_0  # == _rC(_1_0, _1_0)\n                S += r / (d * m)\n            else:  # PYCHOK no cover\n                return NAN\n    m  *= a\n    x, y, z = L.rescale(m, x, y, z)\n    P   =  neg(Fsum(x, y, z).fover(_2_0))\n    p2  =  P**2\n    p3  =  p2 * P\n    E2  = _Rdot(x, y, z, -p2)\n    E2p =  E2 * P\n    xyz =  x * y * z\n    return _Hsum(S.fmul(_6_0), sqrt(a) * m, E2,\n                 Fsum(p3 * _4_0, xyz, E2p, E2p),\n                 Fsum(p3 * _3_0, E2p, xyz, xyz).fmul(P),\n                 p2 * xyz, over)  # Fsum\n\n\nclass _RJfma(object):\n    '''(INTERNAL) Carlson, \"fma\"able.\n    '''\n    def __init__(self, *args):\n        self._Rj = _RJ(*args)\n\n    def ma(self, b, c):\n        r = self._Rj._fma(b, c, nonfinites=True)\n        # assert r is not self._Rj\n        return float(r)\n\n# **) MIT License\n#\n# Copyright (C) 2016-2026 -- mrJean1 at Gmail -- All Rights Reserved.\n#\n# Permission is hereby granted, free of charge, to any person obtaining a\n# copy of this software and associated documentation files (the \"Software\"),\n# to deal in the Software without restriction, including without limitation\n# the rights to use, copy, modify, merge, publish, distribute, sublicense,\n# and/or sell copies of the Software, and to permit persons to whom the\n# Software is furnished to do so, subject to the following conditions:\n#\n# The above copyright notice and this permission notice shall be included\n# in all copies or substantial portions of the Software.\n#\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL\n# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR\n# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\n# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n# OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "pygeodesy/epsg.py",
    "content": "\n# -*- coding: utf-8 -*-\n\nu'''European Petroleum Survey Group (EPSG) en-/decoding.\n\nClasses L{Epsg} and L{EPSGError} and functions to L{encode} and L{decode2}\n(U{EPSG<https://EPSG.org>}) codes from and to U{UTM\n<https://WikiPedia.org/wiki/Universal_Transverse_Mercator_coordinate_system>} and\nU{UPS<https://WikiPedia.org/wiki/Universal_polar_stereographic_coordinate_system>}\nzones.\n\nA pure Python implementation transcoded from I{Charles Karney}'s C++ class U{UTMUPS\n<https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1UTMUPS.html>},\nincluding coverage of UPS as zone C{0}.\n'''\n\nfrom pygeodesy.basics import isint, isstr, _xinstanceof\nfrom pygeodesy.errors import _ValueError\nfrom pygeodesy.interns import NN, _N_, _NS_, _S_, _SPACE_\nfrom pygeodesy.lazily import _ALL_DOCS, _ALL_LAZY\nfrom pygeodesy.namedTuples import UtmUps2Tuple\nfrom pygeodesy.props import Property_RO\nfrom pygeodesy.streprs import Fmt\nfrom pygeodesy.units import Int\nfrom pygeodesy.ups import Ups\nfrom pygeodesy.utm import Utm\nfrom pygeodesy.utmupsBase import _to3zBhp, _UPS_ZONE, _UTM_ZONE_MIN, \\\n                                 _UTM_ZONE_MAX, _UTMUPS_ZONE_INVALID\n\n__all__ = _ALL_LAZY.epsg\n__version__ = '24.08.05'\n\n# _EPSG_INVALID = _UTMUPS_ZONE_INVALID\n_EPSG_N_01 = 32601  # EPSG code for UTM zone 01 N\n_EPSG_N_60 = 32660  # EPSG code for UTM zone 60 N\n_EPSG_N    = 32661  # EPSG code for UPS pole N\n\n_EPSG_S_01 = 32701  # EPSG code for UTM zone 01 S\n_EPSG_S_60 = 32760  # EPSG code for UTM zone 60 S\n_EPSG_S    = 32761  # EPSG code for UPS pole S\n\n\nclass Epsg(Int):\n    '''U{EPSG<https://EPSG.org>} class, a named C{int}.\n    '''\n    _band       =  NN\n    _epsg       =  None\n    _hemisphere =  NN\n    _utmups     =  None\n    _zone       = _UTMUPS_ZONE_INVALID\n\n    def __new__(cls, eisu, **name):\n        '''New L{Epsg} (I{European Petroleum Survey Group}) code from a\n           UTM/USP coordinate or other EPSG code.\n\n           @arg eisu: Other code (L{Epsg}, C{int}, C{str}, L{Utm} or L{Ups}).\n           @kwarg name: Optional C{B{name}=NN} (C{str}).\n\n           @return: New L{Epsg}.\n\n           @raise TypeError: Invalid B{C{eisu}}.\n\n           @raise EPSGError: Invalid B{C{eisu}}.\n        '''\n        if isinstance(eisu, Epsg):\n            self = int.__new__(cls, int(eisu))\n            self._band       = eisu.band\n            self._epsg       = self  # XXX eisu\n            self._hemisphere = eisu.hemisphere\n            self._utmups     = eisu.utmups\n            self._zone       = eisu.zone\n            if eisu.name:\n                self.name = eisu.name\n\n        elif isint(eisu):\n            self = int.__new__(cls, eisu)\n            self._epsg = eisu\n            self._zone, self._hemisphere = decode2(eisu)  # PYCHOK UtmUps2Tuple\n\n        elif isstr(eisu):\n            self = encode(eisu)\n\n        else:\n            u = eisu\n            _xinstanceof(Utm, Ups, eisu=u)\n            self = encode(u.zone, hemipole=u.hemisphere, band=u.band)  # PYCHOK **kwds\n            self._utmups = u\n            if u.name:\n                self.name = u.name\n\n        if name:\n            self.rename(name)\n        return self\n\n    def __repr__(self):\n        return Fmt.PAREN(self.named, int.__repr__(self))\n\n    def __str__(self):\n        return int.__str__(self)\n\n    @Property_RO\n    def band(self):\n        '''Get the I{latitudinal} UTM or I{polar} UPS Band\n           (C{'A'|'B'|'C'|'D'|..|'W'|'X'|'Y'|'Z'} or C{\"\"}).\n        '''\n        return self._band\n\n    @Property_RO\n    def hemisphere(self):\n        '''Get the UTM/UPS hemisphere/-pole (C{'N'|'S'}).\n        '''\n        return self._hemisphere\n\n    @Property_RO\n    def utmups(self):\n        '''Get the UTM/UPS original (L{Utm}, L{Ups}).\n        '''\n        return self._utmups\n\n    def utmupsStr(self, B=False):\n        '''Get the UTM/UPS zone, band and hemisphere/-pole (C{str}).\n        '''\n        b = self.band if B else NN\n        h = s = self.hemisphere\n        if h:\n            s = _SPACE_\n        return NN(Fmt.zone(self.zone), b, s, h)\n\n    @Property_RO\n    def zone(self):\n        '''Get the (longitudinal) UTM/UPS zone (C{int}, C{1..60} for UTM, C{0} for UPS).\n        '''\n        return self._zone\n\n\nclass EPSGError(_ValueError):\n    '''EPSG encode, decode or other L{Epsg} issue.\n    '''\n    pass\n\n\ndef decode2(epsg):\n    '''Determine the UTM/USP zone and hemisphere from a given\n       U{EPSG<https://EPSG.org>}.\n\n       @arg epsg: The EPSG (L{Epsg}, C{str} or C{scalar}).\n\n       @return: A L{UtmUps2Tuple}C{(zone, hemipole)}.\n\n       @raise EPSGError: Invalid B{C{epsg}}.\n\n       @note: Coverage of UPS as zone C{0} follows I{Karney}'s function U{UTMUPS::DecodeEPSG\n              <https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1UTMUPS.html>}.\n    '''\n    if isinstance(epsg, Epsg):\n        z, h = epsg.zone, epsg.hemisphere\n\n    else:\n        try:\n            e = int(epsg)  # int(long) OK\n            if _EPSG_N_01 <= e <= _EPSG_N_60:\n                z, h = int(e - _EPSG_N_01 + _UTM_ZONE_MIN), _N_\n\n            elif _EPSG_S_01 <= e <= _EPSG_S_60:\n                z, h = int(e - _EPSG_S_01 + _UTM_ZONE_MIN), _S_\n\n            elif e == _EPSG_N:\n                z, h = _UPS_ZONE, _N_\n\n            elif e == _EPSG_S:\n                z, h = _UPS_ZONE, _S_\n\n            else:\n                raise ValueError(NN)\n        except (TypeError, ValueError) as x:\n            raise EPSGError(epsg=epsg, cause=x)\n\n    return UtmUps2Tuple(z, h)\n\n\ndef encode(zone, hemipole=NN, band=NN):\n    '''Determine the U{EPSG<https://EPSG.org>} code for\n       a given UTM/UPS zone number, hemisphere/pole and/or Band.\n\n       @arg zone: The (longitudinal) UTM zone (C{int}, 1..60) or UPS\n                  zone (C{int}, 0) or UTM zone with/-out I{latitudinal}\n                  Band letter (C{str}, '01C'..'60X') or UPS zone\n                  with/-out I{polar} Band letter (C{str}, '00A', '00B',\n                  '00Y' or '00Z').\n       @kwarg hemipole: UTM/UPS hemisphere or UPS projection top/center\n                        pole (C{str}, C{'N[orth]'} or C{'S[outh]'}).\n       @kwarg band: Optional I{latitudinal} UTM or I{polar} UPS Band\n                    letter (C{str}).\n\n       @return: C{EPSG} code (L{Epsg}).\n\n       @raise EPSGError: Invalid B{C{zone}}, B{C{hemipole}} or B{C{band}}.\n\n       @note: Coverage of UPS as zone C{0} follows I{Karney}'s function U{UTMUPS::EncodeEPSG\n              <https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1UTMUPS.html>}.\n    '''\n    try:\n        z, B, hp = _to3zBhp(zone, band, hemipole=hemipole)  # in .utmupsBase\n        if hp not in _NS_:\n            raise ValueError\n    except (TypeError, ValueError) as x:\n        raise EPSGError(zone=zone, hemipole=hemipole, band=band, cause=x)\n\n    if _UTM_ZONE_MIN <= z <= _UTM_ZONE_MAX:\n        e = z - _UTM_ZONE_MIN + (_EPSG_N_01 if hp == _N_ else _EPSG_S_01)\n    elif z == _UPS_ZONE:\n        e = _EPSG_N if hp == _N_ else _EPSG_S\n    else:\n        raise EPSGError(zone=zone)\n\n    e = Epsg(e)\n    e._band = B\n    # e._hemisphere = hp\n    return e\n\n\n__all__ += _ALL_DOCS(decode2, encode)\n\n# **) MIT License\n#\n# Copyright (C) 2016-2026 -- mrJean1 at Gmail -- All Rights Reserved.\n#\n# Permission is hereby granted, free of charge, to any person obtaining a\n# copy of this software and associated documentation files (the \"Software\"),\n# to deal in the Software without restriction, including without limitation\n# the rights to use, copy, modify, merge, publish, distribute, sublicense,\n# and/or sell copies of the Software, and to permit persons to whom the\n# Software is furnished to do so, subject to the following conditions:\n#\n# The above copyright notice and this permission notice shall be included\n# in all copies or substantial portions of the Software.\n#\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL\n# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR\n# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\n# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n# OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "pygeodesy/errors.py",
    "content": "\n# -*- coding: utf-8 -*-\n\nu'''Errors, exceptions, exception formatting and exception chaining.\n\nError, exception classes and functions to format PyGeodesy errors, including\nthe setting of I{exception chaining} for Python 3.9+.\n\nBy default, I{exception chaining} is turned I{off}.  To enable I{exception\nchaining}, use command line option C{python -X dev} I{OR} set env variable\nC{PYTHONDEVMODE=1} or to any non-empty string I{OR} set env variable\nC{PYGEODESY_EXCEPTION_CHAINING=std} or to any non-empty string.\n'''\n# from pygeodesy import basics as _basics  # _MODS.into\n# from pygeodesy.ellipsoidalBase import CartesianEllipsoidalBase, LatLonEllipsoidalBase  # _MODS\n# from pygeodesy import errors  # _MODS, _MODS.getattr\nfrom pygeodesy.internals import _envPYGEODESY, _plural, _tailof, typename\nfrom pygeodesy.interns import MISSING, NN, _a_, _an_, _and_, _clip_, _COLON_, _COLONSPACE_, \\\n                             _COMMASPACE_, _datum_, _DOT_, _ELLIPSIS_, _ellipsoidal_, \\\n                             _EQUALSPACED_, _immutable_, _incompatible_, _invalid_, _keyword_, \\\n                             _LatLon_, _len_, _not_, _or_, _SPACE_, _specified_, _UNDER_, \\\n                             _vs_, _with_\nfrom pygeodesy.lazily import _ALL_LAZY, _ALL_MODS as _MODS, _PYTHON_X_DEV\n# from pygeodesy import streprs as _streprs  # _MODS.into\n# from pygeodesy.unitsBase import Str  # _MODS\n# from pygeodesy.vector3dBase import Vector3dBase  # _MODS\n\nfrom copy import copy as _copy\n\n__all__ = _ALL_LAZY.errors  # _ALL_DOCS('_InvalidError', '_IsnotError')  _under\n__version__ = '26.02.12'\n\n_argument_   = 'argument'\n_basics      = _MODS.into(basics=__name__)\n_box_        = 'box'\n_del_        = 'del'\n_expected_   = 'expected'\n_limiterrors =  True  # in .formy\n_name_value_ =  repr('name=value')\n_rangerrors  =  True  # in .dms\n_region_     = 'region'\n_streprs     = _MODS.into(streprs=__name__)\n_vs__        = _SPACE_(NN, _vs_, NN)\n\ntry:\n    _exception_chaining = None  # not available\n    _ = Exception().__cause__   # Python 3.9+ exception chaining\n\n    if _PYTHON_X_DEV or _envPYGEODESY('EXCEPTION_CHAINING'):  # == _std_\n        _exception_chaining = True  # turned on, std\n        raise AttributeError()  # allow exception chaining\n\n    _exception_chaining = False  # turned off\n\n    def _error_cause(inst, cause=None):\n        '''(INTERNAL) Set or avoid Python 3+ exception chaining.\n\n           Setting C{inst.__cause__ = None} is equivalent to syntax\n           C{raise Error(...) from None} to avoid exception chaining.\n\n           @arg inst: An error instance (I{caught} C{Exception}).\n           @kwarg cause: A previous error instance (I{caught} C{Exception})\n                         or C{None} to avoid exception chaining.\n\n           @see: Alex Martelli, et.al., \"Python in a Nutshell\", 3rd Ed., page 163,\n                 O'Reilly, 2017, U{PEP-3134<https://www.Python.org/dev/peps/pep-3134>},\n                 U{here<https://StackOverflow.com/questions/17091520/how-can-i-more-\n                 easily-suppress-previous-exceptions-when-i-raise-my-own-exception>}\n                 and U{here<https://StackOverflow.com/questions/1350671/\n                 inner-exception-with-traceback-in-python>}.\n        '''\n        inst.__cause__ = cause  # None, no exception chaining\n        return inst\n\nexcept AttributeError:  # Python 2+\n\n    def _error_cause(inst, **unused):  # PYCHOK expected\n        return inst  # no-op\n\n\nclass _AssertionError(AssertionError):\n    '''(INTERNAL) Format an C{AssertionError} with/-out exception chaining.\n    '''\n    def __init__(self, *args, **kwds):\n        _error_init(AssertionError, self, args, **kwds)\n\n\nclass _AttributeError(AttributeError):\n    '''(INTERNAL) Format an C{AttributeError} with/-out exception chaining.\n    '''\n    def __init__(self, *args, **kwds):\n        _error_init(AttributeError, self, args, **kwds)\n\n\nclass _ConvergenceError(ValueError):  # in .ellipses, .elliptic\n    '''(INTERNAL) Format a C{ConvergenceError}.\n    '''\n    def __init__(self, maxit, d, tol, **thresh):  # PYCHOK cause=None\n        t = _streprs.Fmt.no_convergence(d, tol, **thresh)\n        _error_init(ValueError, self, (), maxit=maxit, txt=t)\n\n\nclass _ImportError(ImportError):\n    '''(INTERNAL) Format an C{ImportError} with/-out exception chaining.\n    '''\n    def __init__(self, *args, **kwds):\n        _error_init(ImportError, self, args, **kwds)\n\n\nclass _IndexError(IndexError):\n    '''(INTERNAL) Format an C{IndexError} with/-out exception chaining.\n    '''\n    def __init__(self, *args, **kwds):\n        _error_init(IndexError, self, args, **kwds)\n\n\nclass _KeyError(KeyError):\n    '''(INTERNAL) Format a C{KeyError} with/-out exception chaining.\n    '''\n    def __init__(self, *args, **kwds):  # txt=_invalid_\n        _error_init(KeyError, self, args, **kwds)\n\n\nclass _NameError(NameError):\n    '''(INTERNAL) Format a C{NameError} with/-out exception chaining.\n    '''\n    def __init__(self, *args, **kwds):\n        _error_init(NameError, self, args, **kwds)\n\n\nclass _NotImplementedError(NotImplementedError):\n    '''(INTERNAL) Format a C{NotImplementedError} with/-out exception chaining.\n    '''\n    def __init__(self, *args, **kwds):\n        _error_init(NotImplementedError, self, args, **kwds)\n\n\nclass _OverflowError(OverflowError):\n    '''(INTERNAL) Format an C{OverflowError} with/-out exception chaining.\n    '''\n    def __init__(self, *args, **kwds):  # txt=_invalid_\n        _error_init(OverflowError, self, args, **kwds)\n\n\nclass _TypeError(TypeError):\n    '''(INTERNAL) Format a C{TypeError} with/-out exception chaining.\n    '''\n    def __init__(self, *args, **kwds):\n        _error_init(TypeError, self, args, fmt_name_value='type(%s) (%r)', **kwds)\n\n\ndef _TypesError(name, value, *Types, **kwds):\n    '''(INTERNAL) Format a C{TypeError} with/-out exception chaining.\n    '''\n    # no longer C{class _TypesError} to avoid missing value\n    # argument errors in _XError line ...E = Error(str(e))\n    t = _an(_or(*map(typename, Types, Types)))\n    return _TypeError(name, value, txt=_not_(t), **kwds)\n\n\nclass _UnexpectedError(TypeError):  # note, a TypeError!\n    '''(INTERNAL) Format a C{TypeError} I{without exception chaining}.\n    '''\n    def __init__(self, *args, **kwds):\n        n = len(kwds)\n        if args:\n            a = _plural(_argument_, len(args))\n            n = _and(a, _plural(_keyword_, n)) if n else a\n        else:\n            n = _plural(_SPACE_(_keyword_, _argument_), n)\n        u = _streprs.unstr(_SPACE_(n, NN), *args, **kwds)\n        # _error_init(TypeError, self, (u,), txt_not_=_expected_)\n        TypeError.__init__(self, _SPACE_(u, _not_, _expected_))\n\n\nclass _ValueError(ValueError):\n    '''(INTERNAL) Format a C{ValueError} with/-out exception chaining.\n    '''\n    def __init__(self, *args, **kwds):  # ..., cause=None, txt=_invalid_, ...\n        _error_init(ValueError, self, args, **kwds)\n\n\nclass _ZeroDivisionError(ZeroDivisionError):\n    '''(INTERNAL) Format a C{ZeroDivisionError} with/-out exception chaining.\n    '''\n    def __init__(self, *args, **kwds):\n        _error_init(ZeroDivisionError, self, args, **kwds)\n\n\nclass AuxError(_ValueError):\n    '''Error raised for a L{rhumb.aux_}, C{Aux}, C{AuxDLat} or C{AuxLat} issue.\n    '''\n    pass\n\n\nclass ClipError(_ValueError):\n    '''Clip box or clip region issue.\n    '''\n    def __init__(self, *name_n_corners, **txt_cause):\n        '''New L{ClipError}.\n\n           @arg name_n_corners: Either just a name (C{str}) or\n                                name, number, corners (C{str},\n                                C{int}, C{tuple}).\n           @kwarg txt_cause: Optional C{B{txt}=str} explanation\n                             of the error and C{B{cause}=None}\n                             for exception chaining.\n        '''\n        if len(name_n_corners) == 3:\n            t, n, v = name_n_corners\n            n = _SPACE_(t, _clip_, (_box_ if n == 2 else _region_))\n            name_n_corners = n, v\n        _ValueError.__init__(self, *name_n_corners, **txt_cause)\n\n\nclass CrossError(_ValueError):\n    '''Error raised for zero or near-zero vectorial cross products,\n       occurring for coincident or colinear points, lines or bearings.\n    '''\n    pass\n\n\nclass GeodesicError(_ValueError):\n    '''Error raised for convergence or other issues in L{geodesicx<pygeodesy.geodesicx>},\n       L{geodesicw<pygeodesy.geodesicw>}, L{geodsolve<pygeodesy.geodsolve>} or\n       L{karney<pygeodesy.karney>}.\n    '''\n    pass\n\n\nclass IntersectionError(_ValueError):  # in .ellipsoidalBaseDI, .formy, ...\n    '''Error raised for line or circle intersection issues.\n    '''\n    def __init__(self, *args, **kwds):\n        '''New L{IntersectionError}.\n        '''\n        if args:\n            t = _COMMASPACE_(*map(repr, args))\n            _ValueError.__init__(self, t, **kwds)\n        else:\n            _ValueError.__init__(self, **kwds)\n\n\nclass LenError(_ValueError):  # in .ecef, .fmath, .heights, .iters, .named\n    '''Error raised for mis-matching C{len} values.\n    '''\n    def __init__(self, where, **lens_txt):  # txt=None\n        '''New L{LenError}.\n\n           @arg where: Object with C{.__name__} attribute\n                       (C{class}, C{method}, or C{function}).\n           @kwarg lens_txt: Two or more C{name=len(name)} pairs\n                            (C{keyword arguments}).\n        '''\n        def _ns_vs_txt_x(cause=None, txt=_invalid_, **kwds):\n            ns, vs = zip(*_basics.itemsorted(kwds))  # unzip\n            return ns, vs, txt, cause\n\n        ns, vs, txt, x = _ns_vs_txt_x(**lens_txt)\n        ns = _COMMASPACE_.join(ns)\n        t  = _streprs.Fmt.PAREN(typename(where), ns)\n        vs = _vs__.join(map(str, vs))\n        t  = _SPACE_(t, _len_, vs)\n        _ValueError.__init__(self, t, txt=txt, cause=x)\n\n\nclass LimitError(_ValueError):\n    '''Error raised for lat- or longitudinal values or deltas exceeding the given\n       B{C{limit}} in functions L{equirectangular<pygeodesy.equirectangular>},\n       L{equirectangular4<pygeodesy.equirectangular4>}, C{nearestOn*} and\n       C{simplify*} or methods with C{limit} or C{options} keyword arguments.\n\n       @see: Subclass L{UnitError}.\n    '''\n    pass\n\n\nclass MGRSError(_ValueError):\n    '''Military Grid Reference System (MGRS) parse or other L{Mgrs} issue.\n    '''\n    pass\n\n\nclass NumPyError(_ValueError):\n    '''Error raised for C{NumPy} issues.\n    '''\n    pass\n\n\nclass ParseError(_ValueError):  # in .dms, .elevations, .utmupsBase\n    '''Error parsing degrees, radians or several other formats.\n    '''\n    pass\n\n\nclass PointsError(_ValueError):  # in .clipy, .frechet, ...\n    '''Error for an insufficient number of points.\n    '''\n    pass\n\n\nclass RangeError(_ValueError):\n    '''Error raised for lat- or longitude values outside the B{C{clip}}, B{C{clipLat}},\n       B{C{clipLon}} in functions L{parse3llh<pygeodesy.dms.parse3llh>}, L{parseDMS<pygeodesy.dms.parseDMS>},\n       L{parseDMS2<pygeodesy.dms.parseDMS2>} and L{parseRad<pygeodesy.dms.parseRad>} or the B{C{limit}} set\n       with functions L{clipDegrees<pygeodesy.dms.clipDegrees>} and L{clipRadians<pygeodesy.dms.clipRadians>}.\n\n       @see: Function L{rangerrors<pygeodesy.errors.rangerrors>}.\n    '''\n    pass\n\n\nclass RhumbError(_ValueError):\n    '''Error raised for a rhumb L{aux_<pygeodesy.rhumb.aux_>}, L{ekx<pygeodesy.rhumb.ekx>} or\n       L{solve<pygeodesy.rhumb.solve>} issue.\n    '''\n    pass\n\n\nclass TriangleError(_ValueError):  # in .resections, .vector2d\n    '''Error raised for triangle, intersection or resection issues.\n    '''\n    pass\n\n\nclass SciPyError(PointsError):\n    '''Error raised for C{SciPy} issues.\n    '''\n    pass\n\n\nclass SciPyWarning(PointsError):\n    '''Error thrown for C{SciPy} warnings.\n\n       To raise C{SciPy} warnings as L{SciPyWarning} exceptions, Python\n       C{warnings} must be filtered as U{warnings.filterwarnings('error')\n       <https://docs.Python.org/3/library/warnings.html#the-warnings-filter>}\n       I{prior to} C{import scipy} OR by setting env var U{PYTHONWARNINGS\n       <https://docs.Python.org/3/using/cmdline.html#envvar-PYTHONWARNINGS>}\n       OR by invoking C{python} with command line option U{-W<https://docs.\n       Python.org/3/using/cmdline.html#cmdoption-w>} set to C{-W error}.\n    '''\n    pass\n\n\nclass TRFError(_ValueError):  # in .ellipsoidalBase, .trf, .units\n    '''Terrestrial Reference Frame (TRF), L{Epoch}, L{RefFrame} or L{RefFrame}\n       conversion issue.\n    '''\n    pass\n\n\nclass UnitError(LimitError):  # in .named, .units\n    '''Default exception for L{units} issues for a value exceeding the C{low}\n       or C{high} limit.\n    '''\n    pass\n\n\nclass VectorError(_ValueError):  # in .nvectorBase, .vector3d, .vector3dBase\n    '''L{Vector3d}, C{Cartesian*} or C{*Nvector} issues.\n    '''\n    pass\n\n\ndef _an(noun):\n    '''(INTERNAL) Prepend an article to a noun based\n       on the pronounciation of the first letter.\n    '''\n    a = _an_ if noun[:1].lower() in 'aeinoux' else _a_\n    return _SPACE_(a, noun)\n\n\ndef _and(*words):\n    '''(INTERNAL) Join C{words} with C{\", \"} and C{\" and \"}.\n    '''\n    return _and_or(_and_, *words)\n\n\ndef _and_or(last, *words):\n    '''(INTERNAL) Join C{words} with C{\", \"} and C{B{last}}.\n    '''\n    t, w = NN, list(words)\n    if w:\n        t = w.pop()\n        if w:\n            w = _COMMASPACE_.join(w)\n            t = _SPACE_(w, last, t)\n    return t\n\n\ndef crosserrors(raiser=None):\n    '''Report or ignore vectorial cross product errors.\n\n       @kwarg raiser: Use C{True} to throw, C{False} to ignore\n                      L{CrossError} exceptions or C{None} to\n                      leave the setting unchanged.\n\n       @return: Previous setting (C{bool}).\n\n       @see: Property C{Vector3d[Base].crosserrors}.\n    '''\n    V = _MODS.vector3dBase.Vector3dBase\n    t =  V._crosserrors  # XXX class attr!\n    if raiser is not None:\n        V._crosserrors = bool(raiser)\n    return t\n\n\ndef _error_init(Error, inst, args, fmt_name_value='%s (%r)', txt_not_=NN,\n                                   txt__=None, txt=NN, cause=None, **kwds):\n    '''(INTERNAL) Format an error text and initialize an C{Error} instance.\n\n       @arg Error: The error super-class (C{Exception}).\n       @arg inst: Sub-class instance to be __init__-ed (C{_Exception}).\n       @arg args: Either just a value or several name, value, ...\n                  positional arguments (C{str}, any C{type}), in\n                  particular for name conflicts with keyword\n                  arguments of C{error_init} or which can't be\n                  given as C{name=value} keyword arguments.\n       @kwarg fmt_name_value: Format for (name, value) (C{str}).\n       @kwarg txt: Optional explanation of the error (C{str}).\n       @kwarg txt__: Alternate C{B{txt}=B{txt__}.__name__}.\n       @kwarg txt_not_: Negative explanation C{B{txt}=_not_(B{txt_not_})}.\n       @kwarg cause: Optional, caught error (L{Exception}), for\n                     exception chaining (supported in Python 3+).\n       @kwarg kwds: Additional C{B{name}=value} pairs, if any.\n    '''\n    def _fmtuple(pairs):\n        return tuple(fmt_name_value % t for t in pairs)\n\n    t, n = (), len(args)\n    if n > 2:\n        t = _fmtuple(zip(args[0::2], args[1::2]))\n        s = _basics.isodd(n)\n        if s:  # XXX _xzip(..., strict=s)\n            t += args[-1:]\n    elif n == 2:\n        t = (fmt_name_value % args),\n    elif n:  # == 1\n        t =  str(args[0]),\n    if kwds:\n        t += _fmtuple(_basics.itemsorted(kwds))\n    t = _or(*t) if t else _SPACE_(_name_value_, MISSING)\n\n    x = _not_(txt_not_) if txt_not_ else (txt if txt__ is None\n                                    else typename(txt__))\n    if x is not None:\n        x =  str(x) or (str(cause) if cause else _invalid_)\n        C = _COMMASPACE_ if _COLON_ in t else _COLONSPACE_\n        t =  C(t, x)\n#   else:  # LenError, _xzip, .dms, .heights, .vector2d\n#       x =  NN  # XXX or t?\n    Error.__init__(inst, t)\n#   inst.__x_txt__ = x  # hold explanation\n    _error_cause(inst, cause=cause if _exception_chaining else None)\n    _error_under(inst)\n\n\ndef _error_under(inst):\n    '''(INTERNAL) Remove leading underscore from instance' class name.\n    '''\n    t = type(inst)\n    n = typename(t)  # _tailof?\n    if n.startswith(_UNDER_):\n        t.__name__ = n.lstrip(_UNDER_)\n    return inst\n\n\ndef exception_chaining(exc=None):\n    '''Get an error's I{cause} or the exception chaining setting.\n\n       @kwarg exc: An error instance (C{Exception}) or C{None}.\n\n       @return: If C{B{exc} is None}, return C{True} if exception\n                chaining is enabled for PyGeodesy errors, C{False}\n                if turned off and C{None} if not available.  If\n                C{B{exc} is not None}, return it's error I{cause}\n                or C{None} if there is none.\n\n       @note: To enable exception chaining for C{pygeodesy} errors,\n              set env var C{PYGEODESY_EXCEPTION_CHAINING} to any\n              non-empty value prior to C{import pygeodesy}.\n    '''\n    return _exception_chaining if exc is None else \\\n            getattr(exc, '__cause__', None)  # _DCAUSE_\n\n\ndef _ImmutableError(inst, attr, value=_del_, Error=_TypeError):  # PYCHOK self\n    '''(INTERNAL) Format an C{immutable _TypeError}.\n    '''\n    n =  typename(inst)\n    n = _DOT_(_xattr(inst, name=n), attr)\n    t = _SPACE_(_del_, n) if value is _del_ else \\\n        _EQUALSPACED_(n, repr(value))\n    return Error(_immutable_, txt=t)\n\n\ndef _incompatible(this):\n    '''(INTERNAL) Format an C{\"incompatible with ...\"} text.\n    '''\n    return _SPACE_(_incompatible_, _with_, this)\n\n\ndef _InvalidError(Error=_ValueError, **txt_name_values_cause):  # txt=_invalid_, name=value [, ...]\n    '''(INTERNAL) Create an C{Error} instance.\n\n       @kwarg Error: The error class or sub-class (C{Exception}).\n       @kwarg txt_name_values: One or more C{B{name}=value} pairs\n                  and optionally, keyword argument C{B{txt}=str}\n                  to override the default C{B{txt}='invalid'} and\n                  C{B{cause}=None} for exception chaining.\n\n       @return: An B{C{Error}} instance.\n    '''\n    return _XError(Error, **txt_name_values_cause)\n\n\ndef isError(exc):\n    '''Check a (caught) exception.\n\n       @arg exc: The exception C({Exception}).\n\n       @return: C{True} if B{C{exc}} is a C{pygeodesy} error,\n                C{False} if B{C{exc}} is a standard Python error\n                of C{None} if neither.\n    '''\n    def _X(exc):\n        X = type(exc)\n        m = X.__module__\n        return _basics.issubclassof(X, *_XErrors) or \\\n               ((m is __name__ or m == __name__) and\n               _tailof(typename(X)).startswith(_UNDER_))\n\n    return True   if isinstance(exc, _XErrors)   else (\n          _X(exc) if isinstance(exc,  Exception) else None)\n\n\ndef _IsnotError(*types__, **name_value_Error_cause):  # name=value [, Error=TypeError, cause=None]\n    '''Create a C{TypeError} for an invalid C{name=value} type.\n\n       @arg types__: One or more types or type names.\n       @kwarg name_value_Error_cause: One C{B{name}=value} pair and optionally,\n                   keyword arguments C{B{Error}=TypeError} and C{B{cause}=None}\n                   for exception chaining.\n\n       @return: A C{TypeError} or an B{C{Error}} instance.\n    '''\n    x, kwds = _xkwds_pop2(name_value_Error_cause, cause=None)\n    E, kwds = _xkwds_pop2(kwds, Error=TypeError)\n    n, v    = _xkwds_item2(kwds)\n\n    n = _streprs.Fmt.PARENSPACED(n, repr(v))\n    t = _an(_or(*map(typename, types__, types__))) if types__ else _specified_\n    return _XError(E, n, txt=_not_(t), cause=x)\n\n\ndef limiterrors(raiser=None):\n    '''Get/set the throwing of L{LimitError}s.\n\n       @kwarg raiser: Use C{True} to raise, C{False} to\n                      ignore L{LimitError} exceptions or\n                      C{None} to leave the setting unchanged.\n\n       @return: Previous setting (C{bool}).\n    '''\n    global _limiterrors\n    t = _limiterrors\n    if raiser is not None:\n        _limiterrors = bool(raiser)\n    return t\n\n\ndef _or(*words):\n    '''(INTERNAL) Join C{words} with C{\", \"} and C{\" or \"}.\n    '''\n    return _and_or(_or_, *words)\n\n\ndef _parseX(parser, *args, **Error_name_values):  # name=value[, ..., Error=ParseError]\n    '''(INTERNAL) Invoke a parser and handle exceptions.\n\n       @arg parser: The parser (C{callable(*B{args}}).\n       @arg args: Any B{C{parser}} arguments (any C{type}s).\n       @kwarg Error_name_values: Optional C{B{Error}=ParseError}\n                    and number of C{B{name}=value} pairs.\n\n       @return: Parser result.\n\n       @raise ParseError: Or the specified C{B{Error}}.\n    '''\n    try:\n        return parser(*args)\n    except Exception as x:\n        E = type(x) if isError(x) else ParseError\n        E, kwds = _xkwds_pop2(Error_name_values, Error=E)\n        raise _XError(E, **_xkwds(kwds, cause=x))\n\n\ndef rangerrors(raiser=None):\n    '''Get/set the throwing of L{RangeError}s.\n\n       @kwarg raiser: Use C{True} to raise or C{False} to ignore\n                      L{RangeError} exceptions or C{None} to leave\n                      the setting unchanged.\n\n       @return: Previous setting (C{bool}).\n    '''\n    global _rangerrors\n    t = _rangerrors\n    if raiser is not None:\n        _rangerrors = bool(raiser)\n    return t\n\n\ndef _SciPyIssue(exc, *extras):  # PYCHOK no cover\n    if isinstance(exc, (RuntimeWarning, UserWarning)):\n        E = SciPyWarning\n    else:\n        E = SciPyError  # PYCHOK not really\n    t = _SPACE_(str(exc).strip(), *extras)\n    return E(t, txt=None, cause=exc)\n\n\ndef _xAssertionError(where, *args, **kwds):\n    '''(INTERNAL) Embellish an C{AssertionError} with/-out exception chaining.\n    '''\n    x, kwds = _xkwds_pop2(kwds, cause=None)\n    w = _streprs.unstr(where, *args, **kwds)\n    return _AssertionError(w, txt=None, cause=x)\n\n\ndef _xattr(obj, **name_default):\n    '''(INTERNAL) Get an C{obj}'s attribute by C{name}.\n    '''\n    if len(name_default) == 1:\n        for n, d in name_default.items():\n            try:  # obj is tuple\n                return getattr(obj, n, d)\n            except ValueError:\n                return d\n    raise _xAssertionError(_xattr, obj, **name_default)\n\n\ndef _xattrs(inst, other, *attrs):  # see .errors._xattr\n    '''(INTERNAL) Copy attribute values from B{C{other}} to B{C{inst}}.\n\n       @arg inst: Object to copy attribute values to (any C{type}).\n       @arg other: Object to copy attribute values from (any C{type}).\n       @arg attrs: One or more attribute names (C{str}s).\n\n       @return: Object B{C{inst}}, updated.\n\n       @raise AttributeError: An B{C{attrs}} doesn't exist or isn't settable.\n    '''\n    def _getattr(o, a):\n        if hasattr(o, a):\n            return getattr(o, a)\n        try:\n            n =  o._DOT_(a)\n        except AttributeError:\n            n = _streprs.Fmt.DOT(a)\n        raise _AttributeError(o, name=n)\n\n    for a in attrs:\n        s = _getattr(other, a)\n        g = _getattr(inst, a)\n        if (g is None and s is not None) or g != s:\n            setattr(inst, a, s)  # not settable?\n    return inst\n\n\ndef _xcallable(**names_callables):\n    '''(INTERNAL) Check one or more C{callable}s.\n    '''\n    for n, c in names_callables.items():\n        if not callable(c):\n            raise _TypeError(n, c, txt_not_=typename(callable))  # txt__\n\n\ndef _xdatum(datum1, datum2, Error=None):\n    '''(INTERNAL) Check for datum, ellipsoid or rhumb mis-match.\n    '''\n    if Error:\n        e1, e2 = datum1.ellipsoid, datum2.ellipsoid\n        if e1 != e2:\n            raise Error(e2.named2, txt=_incompatible(e1.named2))\n    elif datum1 != datum2:\n        t = _SPACE_(_datum_, repr(datum1.name),\n                    _not_,   repr(datum2.name))\n        raise _AssertionError(t)\n\n\ndef _xellipsoidal(**name_value):  # see _xellipsoidall elel\n    '''(INTERNAL) Check an I{ellipsoidal} item and return its value.\n    '''\n    if len(name_value) == 1:\n        for n, v in name_value.items():\n            try:\n                if v.isEllipsoidal:\n                    return v\n            except AttributeError:\n                pass\n            raise _TypeError(n, v, txt_not_=_ellipsoidal_)\n    raise _xAssertionError(_xellipsoidal, name_value)\n\n\ndef _xellipsoidall(point):  # ... elel, see _xellipsoidal\n    '''(INTERNAL) Check an ellipsoidal C{point}, return C{True}\n       if geodetic latlon, C{False} if cartesian or TypeError.\n    '''\n    m = _MODS.ellipsoidalBase\n    ll = isinstance(point, m.LatLonEllipsoidalBase)\n    if not ll:\n        _basics._xinstanceof(m.CartesianEllipsoidalBase,\n                             m.LatLonEllipsoidalBase, point=point)\n    return ll\n\n\ndef _xellipsoids(E1, E2, Error=_ValueError):  # see .ellipsoidalBase\n    '''(INTERNAL) Check ellipsoid mis-match, E2 vs E1.\n    '''\n    if E2 != E1:\n        raise Error(E2.named2, txt=_incompatible(E1.named2))\n    return E1\n\n\ndef _XError(Error, *args, **kwds):\n    '''(INTERNAL) Format an C{Error} or C{_Error}.\n    '''\n    try:  # C{_Error} style\n        return Error(*args, **kwds)\n    except TypeError:  # no keyword arguments\n        pass\n    e = _ValueError(*args, **kwds)\n    E =  Error(str(e))\n    if _exception_chaining:\n        _error_cause(E, cause=e.__cause__)  # PYCHOK OK\n    return E\n\n\ndef _xError(exc, *args, **kwds):\n    '''(INTERNAL) Embellish a (caught) exception.\n\n       @arg exc: The exception (usually, C{_Error}).\n       @arg args: Embelishments (C{any}).\n       @kwarg kwds: Embelishments (C{any}).\n    '''\n    return _XError(type(exc), *args, **_xkwds(kwds, cause=exc))\n\n\ndef _xError2(exc):  # in .constants, .fsums, .lazily, .vector2d\n    '''(INTERNAL) Map an exception to 2-tuple (C{_Error} class, error C{txt}).\n\n       @arg exc: The exception instance (usually, C{Exception}).\n    '''\n    x = isError(exc)\n    if x:\n        E =  type(exc)\n    elif x is None:\n        E = _AssertionError\n    else:  # get _Error from Error\n        n =  NN(_UNDER_, _tailof(typename(type(exc))))\n        E = _MODS.getattr(__name__, n, _NotImplementedError)\n        x =  E is not _NotImplementedError\n    return E, (str(exc) if x else repr(exc))\n\n\n_XErrors = (_AssertionError, _AttributeError,  # some isError's\n            _TypeError, _ValueError, _ZeroDivisionError)\n# map certain C{Exception} classes to the C{_Error}\n# _X2Error = {AssertionError:    _AssertionError, ...\n#             ZeroDivisionError: _ZeroDivisionError}\n\n\ndef _xgeodesics(G1, G2, Error=_ValueError):  # see .geodesici\n    '''(INTERNAL) Check geodesics mis-match.\n    '''\n    if G1.ellipsoid != G2.ellipsoid:\n        raise Error(G1.named2, txt=_incompatible(G2.named2))\n    return G1\n\n\ntry:\n    _ = {}.__or__  # {} | {}  # Python 3.9+\n\n    def _xkwds(kwds, **dflts):\n        '''(INTERNAL) Update C{dflts} with specified C{kwds},\n           i.e. C{copy(dflts).update(kwds)}.\n        '''\n        return ((dflts | kwds) if dflts else kwds) if kwds else dflts\n\nexcept AttributeError:\n\n    def _xkwds(kwds, **dflts):  # PYCHOK expected\n        '''(INTERNAL) Update C{dflts} with specified C{kwds},\n           i.e. C{copy(dflts).update(kwds)}.\n        '''\n        d = dflts\n        if kwds:\n            d = _copy(d)\n            d.update(kwds)\n        return d\n\n\n# def _xkwds_bool(inst, **kwds):  # unused\n#     '''(INTERNAL) Set applicable C{bool} properties/attributes.\n#     '''\n#     for n, v in kwds.items():\n#         b = getattr(inst, n, None)\n#         if b is None:  # invalid bool attr\n#             t = _SPACE_(_EQUAL_(n, repr(v)), 'for', typename(type(inst))  # XXX .classname\n#             raise _AttributeError(t, txt_not_='applicable')\n#         if _basics.isbool(v) and v != b:\n#             setattr(inst, NN(_UNDER_, n), v)\n\n\n# def _xkwds_from(orig, *args, **kwds):  # unused\n#     '''(INTERNAL) Return the items from C{orig} with the keys\n#        from C{kwds} and a value not in C{args} and C{kwds}.\n#     '''\n#     def _items(orig, args, items):\n#         for n, m in items:\n#             if n in orig:  # n in (orig.keys() & kwds.keys())\n#                 t = orig[n]\n#                 if t is not m and t not in args:\n#                     yield n, t\n#\n#     return _items(orig, args, kwds.items())\n\n\ndef _xkwds_get(kwds, **name_default):\n    '''(INTERNAL) Get a C{kwds} value by C{name} or the\n       C{default} if not present.\n    '''\n    if isinstance(kwds, dict) and len(name_default) == 1:\n        for n, v in name_default.items():\n            return kwds.get(n, v)\n    raise _xAssertionError(_xkwds_get, kwds, **name_default)\n\n\n# def _xkwds_get_(kwds, **names_defaults):  # unused\n#     '''(INTERNAL) Yield each C{kwds} value or its C{default}\n#        in I{case-insensitive, alphabetical} C{name} order.\n#     '''\n#     if not isinstance(kwds, dict):\n#         raise _xAssertionError(_xkwds_get_, kwds)\n#     for n, v in _basics.itemsorted(names_defaults):\n#         yield kwds.get(n, v)\n\n\ndef _xkwds_get1(kwds, **name_default):\n    '''(INTERNAL) Get one C{kwds} value by C{name} or the\n       C{default} if not present.  Raise an C{_UnexpectedError}\n       with any remaining keyword arguments.\n    '''\n    v, kwds = _xkwds_pop2(kwds, **name_default)\n    if kwds:\n        raise _UnexpectedError(**kwds)\n    return v\n\n\ndef _xkwds_item2(kwds):\n    '''(INTERNAL) Return the 2-tuple C{item}, keeping the\n       single-item C{kwds} I{unmodified}.\n    '''\n    if isinstance(kwds, dict) and len(kwds) == 1:\n        for item in kwds.items():\n            return item\n    raise _xAssertionError(_xkwds_item2, kwds)\n\n\ndef _xkwds_kwds(kwds, **names_defaults):  # in .geodesici  # PYCHOK no cover\n    '''(INTERNAL) Return a C{dict} of C{named_defaults} items replaced with C{kwds}.\n    '''\n    if not isinstance(kwds, dict):\n        raise _xAssertionError(_xkwds_kwds, kwds)\n    _g = kwds.get\n    return dict((n, _g(n, v)) for n, v in names_defaults.items())\n\n\ndef _xkwds_not(*args, **kwds):\n    '''(INTERNAL) Return C{kwds} with a value not in C{args}.\n    '''\n    return dict((n, v) for n, v in kwds.items() if v not in args)\n\n\ndef _xkwds_pop(kwds, **name_default):\n    '''(INTERNAL) Pop an item by C{name} from C{kwds} and\n       return its value, otherwise return the C{default}.\n    '''\n    if isinstance(kwds, dict) and len(name_default) == 1:\n        for n, v in name_default.items():\n            return kwds.pop(n, v)\n    raise _xAssertionError(_xkwds_pop, kwds, **name_default)\n\n\ndef _xkwds_pop2(kwds, **name_default):\n    '''(INTERNAL) Pop a C{kwds} item by C{name} and return the value and\n       reduced C{kwds} copy, otherwise the C{default} and original C{kwds}.\n    '''\n    if isinstance(kwds, dict) and len(name_default) == 1:\n        for n, v in name_default.items():\n            if n in kwds:\n                kwds = _copy(kwds)\n                v = kwds.pop(n, v)\n            return v, kwds\n    raise _xAssertionError(_xkwds_pop2, kwds, **name_default)\n\n\ndef _Xorder(_Coeffs, Error, **Xorder):  # in .auxLat, .ktm, .rhumb.bases, .rhumb.ekx\n    '''(INTERNAL) Validate C{RAorder} or C{TMorder}.\n    '''\n    X, m = _xkwds_item2(Xorder)\n    if m in _Coeffs and _basics.isint(m):\n        return m\n    t = sorted(map(str, _Coeffs.keys()))\n    raise Error(X, m, txt_not_=_or(*t))\n\n\ndef _xsError(X, xs, i, x, *n, **kwds):  # in .fmath, ._fstats, .fsums\n    '''(INTERNAL) Error for C{xs} or C{x}, item C{xs[i]}.\n    '''\n    def _xs(*xs):\n        if len(xs) > 4:\n            xs = xs[:3] + (_ELLIPSIS_,) + xs[-1:]\n        return xs\n\n    return ((_xError(X, n[0], _xs(*xs), **kwds) if n else\n             _xError(X, xs=_xs(*xs), **kwds))   if x is xs else\n             _xError(X, _streprs.Fmt.INDEX(xs=i), x, **kwds))\n\n\ndef _xStrError(*Refs, **name_value_Error):  # in .gars, .geohash, .wgrs\n    '''(INTERNAL) Create a C{TypeError} for C{Garef}, C{Geohash}, C{Wgrs}.\n    '''\n    s = typename(_MODS.unitsBase.Str)\n    t = tuple(map(typename, Refs)) + (s, _LatLon_, 'LatLon*Tuple')\n    return _IsnotError(*t, **name_value_Error)\n\n# **) MIT License\n#\n# Copyright (C) 2016-2026 -- mrJean1 at Gmail -- All Rights Reserved.\n#\n# Permission is hereby granted, free of charge, to any person obtaining a\n# copy of this software and associated documentation files (the \"Software\"),\n# to deal in the Software without restriction, including without limitation\n# the rights to use, copy, modify, merge, publish, distribute, sublicense,\n# and/or sell copies of the Software, and to permit persons to whom the\n# Software is furnished to do so, subject to the following conditions:\n#\n# The above copyright notice and this permission notice shall be included\n# in all copies or substantial portions of the Software.\n#\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL\n# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR\n# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\n# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n# OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "pygeodesy/etm.py",
    "content": "\n# -*- coding: utf-8 -*-\n\nu'''A pure Python version of I{Karney}'s C{Exact Transverse Mercator} (ETM) projection.\n\nClasses L{Etm}, L{ETMError} and L{ExactTransverseMercator}, transcoded from I{Karney}'s\nC++ class U{TransverseMercatorExact<https://GeographicLib.SourceForge.io/C++/doc/\nclassGeographicLib_1_1TransverseMercatorExact.html>}, abbreviated as C{TMExact} below.\n\nClass L{ExactTransverseMercator} provides C{Exact Transverse Mercator} projections while\ninstances of class L{Etm} represent ETM C{(easting, northing)} locations.  See also\nI{Karney}'s utility U{TransverseMercatorProj<https://GeographicLib.SourceForge.io/C++/doc/\nTransverseMercatorProj.1.html>} and use C{\"python[3] -m pygeodesy.etm ...\"} to compare\nthe results, see usage C{\"python[3] -m pygeodesy.etm -h\"}.\n\nFollowing is a copy of I{Karney}'s U{TransverseMercatorExact.hpp\n<https://GeographicLib.SourceForge.io/C++/doc/TransverseMercatorExact_8hpp_source.html>}\nfile C{Header}.\n\nCopyright (C) U{Charles Karney<mailto:Karney@Alum.MIT.edu>} (2008-2024) and licensed\nunder the MIT/X11 License.  For more information, see the U{GeographicLib<https://\nGeographicLib.SourceForge.io>} documentation.\n\nThe method entails using the U{Thompson Transverse Mercator<https://WikiPedia.org/\nwiki/Transverse_Mercator_projection>} as an intermediate projection.  The projections\nfrom the intermediate coordinates to C{phi, lam} and C{x, y} are given by elliptic\nfunctions.  The inverse of these projections are found by Newton's method with a\nsuitable starting guess.\n\nThe relevant section of L.P. Lee's paper U{Conformal Projections Based On Jacobian\nElliptic Functions<https://DOI.org/10.3138/X687-1574-4325-WM62>} in part V, pp\n67-101.  The C++ implementation and notation closely follow Lee, with the following\nexceptions::\n\n  Lee   here   Description\n\n  x/a   xi     Northing (unit Earth)\n\n  y/a   eta    Easting (unit Earth)\n\n  s/a   sigma  xi + i * eta\n\n  y     x      Easting\n\n  x     y      Northing\n\n  k     e      Eccentricity\n\n  k^2   mu     Elliptic function parameter\n\n  k'^2  mv     Elliptic function complementary parameter\n\n  m     k      Scale\n\n  zeta  zeta   Complex longitude = Mercator = chi in paper\n\n  s     sigma  Complex GK = zeta in paper\n\nMinor alterations have been made in some of Lee's expressions in an attempt to\ncontrol round-off.  For example, C{atanh(sin(phi))} is replaced by C{asinh(tan(phi))}\nwhich maintains accuracy near C{phi = pi/2}.  Such changes are noted in the code.\n'''\n# make sure int/int division yields float quotient, see .basics\nfrom __future__ import division as _; del _  # noqa: E702 ;\n\nfrom pygeodesy.basics import _isin, map1, neg, neg_, _xinstanceof\nfrom pygeodesy.constants import EPS, EPS02, PI_2, PI_4, _K0_UTM, \\\n                             _1_EPS, _0_0, _0_1, _0_5, _1_0, _2_0, \\\n                             _3_0, _90_0, isnear0, isnear90\nfrom pygeodesy.constants import _0_75, _4_0  # PYCHOK used!\nfrom pygeodesy.datums import _ellipsoidal_datum, _WGS84,  _EWGS84\n# from pygeodesy.ellipsoids import _EWGS84  # from .datums\n# from pygeodesy.elliptic import Elliptic  # _MODS\n# from pygeodesy.errors import _incompatible  # from .named\n# from pygeodesy.fsums import Fsum  # from .fmath\nfrom pygeodesy.fmath import cbrt, hypot, hypot1, hypot2,  Fsum\nfrom pygeodesy.interns import _COMMASPACE_, _DMAIN_, _near_, _SPACE_, _spherical_\nfrom pygeodesy.karney import _K_2_4, _diff182, _fix90, _norm2, _norm180, \\\n                             _signBit, _tand, _unsigned2\n# from pygeodesy.lazily import _ALL_LAZY, _ALL_MODS as _MODS  # from .named\nfrom pygeodesy.named import callername, _incompatible, _NamedBase, \\\n                           _ALL_LAZY, _MODS\nfrom pygeodesy.namedTuples import Forward4Tuple, Reverse4Tuple\nfrom pygeodesy.props import deprecated_method, deprecated_property_RO, \\\n                            Property_RO, property_RO, _update_all, \\\n                            property_doc_,  _allPropertiesOf_n\nfrom pygeodesy.streprs import Fmt, pairs, unstr\nfrom pygeodesy.units import Degrees, Scalar_\nfrom pygeodesy.utily import atan1d, atan2, atan2d, _loneg, sincos2\nfrom pygeodesy.utm import _cmlon, _LLEB, _parseUTM5, _toBand, _toXtm8, \\\n                          _to7zBlldfn, Utm, UTMError\n\nfrom math import asinh, degrees, radians, sinh, sqrt\n\n__all__ = _ALL_LAZY.etm\n__version__ = '25.09.15'\n\n_OVERFLOW = _1_EPS**2  # ~2e+31\n_TAYTOL   =  pow(EPS,  0.6)\n_TAYTOL2  = _TAYTOL * _2_0\n_TOL_10   =  EPS    * _0_1\n_TRIPS    =  21  # C++ 10\n\n\nclass ETMError(UTMError):\n    '''Exact Transverse Mercator (ETM) parse, projection or other\n       L{Etm} issue or L{ExactTransverseMercator} conversion failure.\n    '''\n    pass\n\n\nclass Etm(Utm):\n    '''Exact Transverse Mercator (ETM) coordinate, a sub-class of L{Utm},\n       a Universal Transverse Mercator (UTM) coordinate using the\n       L{ExactTransverseMercator} projection for highest accuracy.\n\n       @note: Conversion of (geodetic) lat- and longitudes to/from L{Etm}\n              coordinates is 3-4 times slower than to/from L{Utm}.\n\n       @see: Karney's U{Detailed Description<https://GeographicLib.SourceForge.io/\n             C++/doc/classGeographicLib_1_1TransverseMercatorExact.html#details>}.\n    '''\n    _Error   = ETMError  # see utm.UTMError\n    _exactTM = None\n\n    __init__ = Utm.__init__\n    '''New L{Etm} Exact Transverse Mercator coordinate, raising L{ETMError}s.\n\n       @see: L{Utm.__init__} for more information.\n    '''\n\n    @property_doc_(''' the ETM projection (L{ExactTransverseMercator}).''')\n    def exactTM(self):\n        '''Get the ETM projection (L{ExactTransverseMercator}).\n        '''\n        if self._exactTM is None:\n            self.exactTM = self.datum.exactTM  # ExactTransverseMercator(datum=self.datum)\n        return self._exactTM\n\n    @exactTM.setter  # PYCHOK setter!\n    def exactTM(self, exactTM):\n        '''Set the ETM projection (L{ExactTransverseMercator}).\n\n           @raise ETMError: The B{C{exacTM}}'s datum incompatible\n                            with this ETM coordinate's C{datum}.\n        '''\n        _xinstanceof(ExactTransverseMercator, exactTM=exactTM)\n\n        E = self.datum.ellipsoid\n        if E != exactTM.ellipsoid:  # may be None\n            raise ETMError(repr(exactTM), txt=_incompatible(repr(E)))\n        self._exactTM = exactTM\n        self._scale0  = exactTM.k0\n\n    def parse(self, strETM, **name):\n        '''Parse a string to a similar L{Etm} instance.\n\n           @arg strETM: The ETM coordinate (C{str}), see function L{parseETM5}.\n           @kwarg name: Optional C{B{name}=NN} (C{str}), overriding this name.\n\n           @return: The instance (L{Etm}).\n\n           @raise ETMError: Invalid B{C{strETM}}.\n\n           @see: Function L{pygeodesy.parseUPS5}, L{pygeodesy.parseUTM5} and\n                 L{pygeodesy.parseUTMUPS5}.\n        '''\n        return parseETM5(strETM, datum=self.datum, Etm=self.classof,\n                                 name=self._name__(name))\n\n    @deprecated_method\n    def parseETM(self, strETM):  # PYCHOK no cover\n        '''DEPRECATED, use method L{Etm.parse}.\n        '''\n        return self.parse(strETM)\n\n    def toLatLon(self, LatLon=None, unfalse=True, **unused):  # PYCHOK expected\n        '''Convert this ETM coordinate to an (ellipsoidal) geodetic point.\n\n           @kwarg LatLon: Optional, ellipsoidal class to return the geodetic point\n                          (C{LatLon}) or C{None}.\n           @kwarg unfalse: Unfalse B{C{easting}} and B{C{northing}} if C{falsed} (C{bool}).\n\n           @return: This ETM coordinate as (B{C{LatLon}}) or if C{B{LatLon} is None},\n                    a L{LatLonDatum5Tuple}C{(lat, lon, datum, gamma, scale)}.\n\n           @raise ETMError: This ETM coordinate's C{exacTM} and this C{datum} are not\n                            compatible or no convergence transforming to lat-/longitude.\n\n           @raise TypeError: Invalid or non-ellipsoidal B{C{LatLon}}.\n        '''\n        if not self._latlon or self._latlon._toLLEB_args != (unfalse, self.exactTM):\n            self._toLLEB(unfalse=unfalse)\n        return self._latlon5(LatLon)\n\n    def _toLLEB(self, unfalse=True, **unused):  # PYCHOK signature\n        '''(INTERNAL) Compute (ellipsoidal) lat- and longitude.\n        '''\n        d, xTM = self.datum, self.exactTM\n        # double check that this and exactTM's ellipsoid match\n        if xTM._E != d.ellipsoid:  # PYCHOK no cover\n            t = repr(d.ellipsoid)\n            raise ETMError(repr(xTM._E), txt=_incompatible(t))\n\n        e, n =  self.eastingnorthing2(falsed=not unfalse)\n        lon0 = _cmlon(self.zone) if bool(unfalse) == self.falsed else None\n        lat, lon, g, k = xTM.reverse(e, n, lon0=lon0)\n\n        ll = _LLEB(lat, lon, datum=d, name=self.name)  # utm._LLEB\n        self._latlon5args(ll, g, k, _toBand, unfalse, xTM)\n\n    def toUtm(self):  # PYCHOK signature\n        '''Copy this ETM to a UTM coordinate.\n\n           @return: The UTM coordinate (L{Utm}).\n        '''\n        return self._xcopy2(Utm)\n\n\nclass ExactTransverseMercator(_NamedBase):\n    '''Pure Python version of Karney's C++ class U{TransverseMercatorExact\n       <https://GeographicLib.SourceForge.io/C++/doc/TransverseMercatorExact_8cpp_source.html>},\n       a numerically exact transverse Mercator projection, abbreviated as C{TMExact}.\n    '''\n    _datum     = _WGS84       # Datum\n    _E         = _EWGS84      # Ellipsoid\n    _extendp   =  False       # use extended domain\n#   _iteration =  None        # _NameBase, ._sigmaInv2 and ._zetaInv2\n    _k0        = _K0_UTM      # central scale factor\n    _lat0      = _0_0         # central parallel\n    _lon0      = _0_0         # central meridian\n    _mu        = _EWGS84.e2   # 1st eccentricity squared\n    _mv        = _EWGS84.e21  # 1 - ._mu\n    _raiser    =  False       # throw Error\n    _sigmaC    =  None        # most recent _sigmaInv04 case C{int}\n    _zetaC     =  None        # most recent _zetaInv04 case C{int}\n\n    def __init__(self, datum=_WGS84, lon0=0, k0=_K0_UTM, extendp=False, raiser=False, **name):\n        '''New L{ExactTransverseMercator} projection.\n\n           @kwarg datum: The I{non-spherical} datum or ellipsoid (L{Datum},\n                         L{Ellipsoid}, L{Ellipsoid2} or L{a_f2Tuple}).\n           @kwarg lon0: Central meridian, default (C{degrees180}).\n           @kwarg k0: Central scale factor (C{float}).\n           @kwarg extendp: If C{True}, use the I{extended} domain, I{standard} otherwise (C{bool}).\n           @kwarg raiser: If C{True}, throw an L{ETMError} for convergence failures (C{bool}).\n           @kwarg name: Optional C{B{name}=NN} for the projection (C{str}).\n\n           @raise ETMError: Near-spherical B{C{datum}} or C{ellipsoid} or invalid B{C{lon0}}\n                            or B{C{k0}}.\n\n           @see: U{Constructor TransverseMercatorExact<https://GeographicLib.SourceForge.io/\n                 C++/doc/classGeographicLib_1_1TransverseMercatorExact.html>} for more details,\n                 especially on B{X{extendp}}.\n\n           @note: For all 255.5K U{TMcoords.dat<https://Zenodo.org/record/32470>} tests (with\n                  C{0 <= lat <= 84} and C{0 <= lon}) the maximum error is C{5.2e-08 .forward}\n                  (or 52 nano-meter) easting and northing and C{3.8e-13 .reverse} (or 0.38\n                  pico-degrees) lat- and longitude (with Python 3.7.3+, 2.7.16+, PyPy6 3.5.3\n                  and PyPy6 2.7.13, all in 64-bit on macOS 10.13.6 High Sierra C{x86_64} and\n                  12.2 Monterey C{arm64} and C{\"arm64_x86_64\"}).\n        '''\n        if extendp:\n            self._extendp = True\n        if name:\n            self.name = name\n        if raiser:\n            self.raiser = True\n\n        TM = ExactTransverseMercator\n        if not _isin(datum, None, TM._datum, TM._E):\n            self.datum = datum  # invokes ._resets\n        if lon0 or lon0 != TM._lon0:\n            self.lon0 = lon0\n        if k0 is not TM._k0:\n            self.k0 = k0\n\n    @property_doc_(''' the datum (L{Datum}).''')\n    def datum(self):\n        '''Get the datum (L{Datum}) or C{None}.\n        '''\n        return self._datum\n\n    @datum.setter  # PYCHOK setter!\n    def datum(self, datum):\n        '''Set the datum and ellipsoid (L{Datum}, L{Ellipsoid}, L{Ellipsoid2} or L{a_f2Tuple}).\n\n           @raise ETMError: Near-spherical B{C{datum}} or C{ellipsoid}.\n        '''\n        d = _ellipsoidal_datum(datum, name=self.name)  # raiser=_datum_)\n        self._resets(d)\n        self._datum = d\n\n    @Property_RO\n    def _e(self):\n        '''(INTERNAL) Get and cache C{_e}.\n        '''\n        return self._E.e\n\n    @Property_RO\n    def _1_e_90(self):  # PYCHOK no cover\n        '''(INTERNAL) Get and cache C{(1 - _e) * 90}.\n        '''\n        return (_1_0 - self._e) * _90_0\n\n    @property_RO\n    def ellipsoid(self):\n        '''Get the ellipsoid (L{Ellipsoid}).\n        '''\n        return self._E\n\n    @Property_RO\n    def _e_PI_2(self):\n        '''(INTERNAL) Get and cache C{_e * PI / 2}.\n        '''\n        return self._e * PI_2\n\n    @Property_RO\n    def _e_PI_4_(self):\n        '''(INTERNAL) Get and cache C{-_e * PI / 4}.\n        '''\n        return -self._e * PI_4\n\n    @Property_RO\n    def _1_e_PI_2(self):\n        '''(INTERNAL) Get and cache C{(1 - _e) * PI / 2}.\n        '''\n        return (_1_0 - self._e) * PI_2\n\n    @Property_RO\n    def _1_2e_PI_2(self):\n        '''(INTERNAL) Get and cache C{(1 - 2 * _e) * PI / 2}.\n        '''\n        return (_1_0 - self._e * _2_0) * PI_2\n\n    @property_RO\n    def equatoradius(self):\n        '''Get the C{ellipsoid}'s equatorial radius, semi-axis (C{meter}).\n        '''\n        return self._E.a\n\n    a = equatoradius\n\n    @Property_RO\n    def _e_TAYTOL(self):\n        '''(INTERNAL) Get and cache C{e * TAYTOL}.\n        '''\n        return self._e * _TAYTOL\n\n    @Property_RO\n    def _Eu(self):\n        '''(INTERNAL) Get and cache C{Elliptic(_mu)}.\n        '''\n        return _MODS.elliptic.Elliptic(self._mu)\n\n    @Property_RO\n    def _Eu_cE(self):\n        '''(INTERNAL) Get and cache C{_Eu.cE}.\n        '''\n        return self._Eu.cE\n\n    def _Eu_2cE_(self, xi):\n        '''(INTERNAL) Return C{_Eu.cE * 2 - B{xi}}.\n        '''\n        return self._Eu_cE * _2_0 - xi\n\n    @Property_RO\n    def _Eu_cE_4(self):\n        '''(INTERNAL) Get and cache C{_Eu.cE / 4}.\n        '''\n        return self._Eu_cE / _4_0\n\n    @Property_RO\n    def _Eu_cK(self):\n        '''(INTERNAL) Get and cache C{_Eu.cK}.\n        '''\n        return self._Eu.cK\n\n    @Property_RO\n    def _Eu_cK_cE(self):\n        '''(INTERNAL) Get and cache C{_Eu.cK / _Eu.cE}.\n        '''\n        return self._Eu_cK / self._Eu_cE\n\n    @Property_RO\n    def _Eu_2cK_PI(self):\n        '''(INTERNAL) Get and cache C{_Eu.cK * 2 / PI}.\n        '''\n        return self._Eu_cK / PI_2\n\n    @Property_RO\n    def _Ev(self):\n        '''(INTERNAL) Get and cache C{Elliptic(_mv)}.\n        '''\n        return _MODS.elliptic.Elliptic(self._mv)\n\n    @Property_RO\n    def _Ev_cK(self):\n        '''(INTERNAL) Get and cache C{_Ev.cK}.\n        '''\n        return self._Ev.cK\n\n    @Property_RO\n    def _Ev_cKE(self):\n        '''(INTERNAL) Get and cache C{_Ev.cKE}.\n        '''\n        return self._Ev.cKE\n\n    @Property_RO\n    def _Ev_3cKE_4(self):\n        '''(INTERNAL) Get and cache C{_Ev.cKE * 3 / 4}.\n        '''\n        return self._Ev_cKE * _0_75\n\n    @Property_RO\n    def _Ev_5cKE_4(self):\n        '''(INTERNAL) Get and cache C{_Ev.cKE * 5 / 4}.\n        '''\n        return self._Ev_cKE * 1.25  # _1_25\n\n    @property_RO\n    def extendp(self):\n        '''Get the domain (C{bool}), I{extended} or I{standard}.\n        '''\n        return self._extendp\n\n    @property_RO\n    def flattening(self):\n        '''Get the C{ellipsoid}'s flattening (C{scalar}).\n        '''\n        return self._E.f\n\n    f = flattening\n\n    def forward(self, lat, lon, lon0=None, jam=_K_2_4, **name):  # MCCABE 13\n        '''Forward projection, from geographic to transverse Mercator.\n\n           @arg lat: Latitude of point (C{degrees}).\n           @arg lon: Longitude of point (C{degrees}).\n           @kwarg lon0: Central meridian (C{degrees180}), overriding\n                        the default if not C{None}.\n           @kwarg jam: If C{True}, use the C{Jacobi amplitude}\n                       otherwise C{Bulirsch}' function (C{bool}).\n           @kwarg name: Optional C{B{name}=NN} (C{str}).\n\n           @return: L{Forward4Tuple}C{(easting, northing, gamma, scale)}.\n\n           @see: C{void TMExact::Forward(real lon0, real lat, real lon,\n                                         real &x, real &y,\n                                         real &gamma, real &k)}.\n\n           @raise ETMError: No convergence, thrown iff property\n                            C{B{raiser}=True}.\n        '''\n        lat    = _fix90(lat - self._lat0)\n        lon, _ = _diff182((self.lon0 if lon0 is None else lon0), lon)\n        if self.extendp:\n            backside = _lat = _lon = False\n        else:  # enforce the parity\n            lat, _lat = _unsigned2(lat)\n            lon, _lon = _unsigned2(lon)\n            backside  =  lon > 90\n            if backside:  # PYCHOK no cover\n                lon = _loneg(lon)\n                if lat == 0:\n                    _lat = True\n\n        # u, v = coordinates for the Thompson TM, Lee 54\n        if lat == 90:  # isnear90(lat)\n            u = self._Eu_cK\n            v = self._iteration = self._zetaC = 0\n        elif lat == 0 and lon == self._1_e_90:  # PYCHOK no cover\n            u = self._iteration = self._zetaC = 0\n            v = self._Ev_cK\n        else:  # tau = tan(phi), taup = sinh(psi)\n            tau, lam = _tand(lat), radians(lon)\n            u, v = self._zetaInv2(self._E.es_taupf(tau), lam)\n\n        sncndn6 = self._sncndn6(u, v, jam=jam)\n        y, x, _ = self._sigma3(v,  *sncndn6)\n        g, k    = (lon, self.k0) if isnear90(lat) else \\\n                  self._zetaScaled(sncndn6, ll=False)\n\n        if backside:\n            y, g = self._Eu_2cE_(y), _loneg(g)\n        y *= self._k0_a\n        x *= self._k0_a\n        if _lat:\n            y, g = neg_(y, g)\n        if _lon:\n            x, g = neg_(x, g)\n        return Forward4Tuple(x, y, g, k, iteration=self._iteration,\n                                         name=self._name__(name))\n\n    def _Inv03(self, psi, dlam, _3_mv_e):  # (xi, deta, _3_mv)\n        '''(INTERNAL) Partial C{_zetaInv04} or C{_sigmaInv04}, Case 2\n        '''\n        # atan2(dlam-psi, psi+dlam) + 45d gives arg(zeta - zeta0) in\n        # range [-135, 225).  Subtracting 180 (multiplier is negative)\n        # makes range [-315, 45).  Multiplying by 1/3 (for cube root)\n        # gives range [-105, 15).  In particular the range [-90, 180]\n        # in zeta space maps to [-90, 0] in w space as required.\n        a = atan2(dlam - psi, psi + dlam) / _3_0 - PI_4\n        s, c = sincos2(a)\n        h = hypot(psi, dlam)\n        r = cbrt(h * _3_mv_e)\n        u = r * c\n        v = r * s + self._Ev_cK\n        # Error using this guess is about 0.068 * rad^(5/3)\n        return u, v, h\n\n    @property_RO\n    def iteration(self):\n        '''Get the most recent C{ExactTransverseMercator.forward}\n           or C{ExactTransverseMercator.reverse} iteration number\n           (C{int}) or C{None} if not available/applicable.\n        '''\n        return self._iteration\n\n    @property_doc_(''' the central scale factor (C{float}).''')\n    def k0(self):\n        '''Get the central scale factor (C{float}), aka I{C{scale0}}.\n        '''\n        return self._k0  # aka scale0\n\n    @k0.setter  # PYCHOK setter!\n    def k0(self, k0):\n        '''Set the central scale factor (C{float}), aka I{C{scale0}}.\n\n           @raise ETMError: Invalid B{C{k0}}.\n        '''\n        k0 = Scalar_(k0=k0, Error=ETMError, low=_TOL_10, high=_1_0)\n        if self._k0 != k0:\n            ExactTransverseMercator._k0_a._update(self)  # redo ._k0_a\n            self._k0 = k0\n\n    @Property_RO\n    def _k0_a(self):\n        '''(INTERNAL) Get and cache C{k0 * equatoradius}.\n        '''\n        return self.k0 * self.equatoradius\n\n    @property_doc_(''' the central meridian (C{degrees180}).''')\n    def lon0(self):\n        '''Get the central meridian (C{degrees180}).\n        '''\n        return self._lon0\n\n    @lon0.setter  # PYCHOK setter!\n    def lon0(self, lon0):\n        '''Set the central meridian (C{degrees180}).\n\n           @raise ETMError: Invalid B{C{lon0}}.\n        '''\n        self._lon0 = _norm180(Degrees(lon0=lon0, Error=ETMError))\n\n    @deprecated_property_RO\n    def majoradius(self):  # PYCHOK no cover\n        '''DEPRECATED, use property C{equatoradius}.'''\n        return self.equatoradius\n\n    @Property_RO\n    def _1_mu_2(self):\n        '''(INTERNAL) Get and cache C{_mu / 2 + 1}.\n        '''\n        return self._mu * _0_5 + _1_0\n\n    @Property_RO\n    def _3_mv(self):\n        '''(INTERNAL) Get and cache C{3 / _mv}.\n        '''\n        return _3_0 / self._mv\n\n    @Property_RO\n    def _3_mv_e(self):\n        '''(INTERNAL) Get and cache C{3 / (_mv * _e)}.\n        '''\n        return _3_0 / (self._mv * self._e)\n\n    def _Newton2(self, taup, lam, u, v, C, *psi):  # or (xi, eta, u, v)\n        '''(INTERNAL) Invert C{_zetaInv2} or C{_sigmaInv2} using Newton's method.\n\n           @return: 2-Tuple C{(u, v)}.\n\n           @raise ETMError: No convergence.\n        '''\n        sca1, tol2 = _1_0, _TOL_10\n        if psi:  # _zetaInv2\n            sca1 = sca1 / hypot1(taup)  # /= chokes PyChecker\n            tol2 = tol2 / max(psi[0], _1_0)**2\n\n            _zeta3    = self._zeta3\n            _zetaDwd2 = self._zetaDwd2\n        else:  # _sigmaInv2\n            _zeta3    = self._sigma3\n            _zetaDwd2 = self._sigmaDwd2\n\n        d2, r = tol2, self.raiser\n        _U_2  = Fsum(u).fsum2f_\n        _V_2  = Fsum(v).fsum2f_\n        # min iterations 2, max 6 or 7, mean 3.9 or 4.0\n        _hy2  = hypot2\n        for i in range(1, _TRIPS):  # GEOGRAPHICLIB_PANIC\n            sncndn6 =  self._sncndn6(u, v)\n            du, dv  = _zetaDwd2(*sncndn6)\n            T, L, _ = _zeta3(v, *sncndn6)\n            T  = (taup - T) * sca1\n            L -=  lam\n            u, dU = _U_2(T * du,  L * dv)\n            v, dV = _V_2(T * dv, -L * du)\n            if d2 < tol2:\n                r = False\n                break\n            d2 = _hy2(dU, dV)\n\n        self._iteration = i\n        if r:  # PYCHOK no cover\n            n = callername(up=2, underOK=True)\n            t = unstr(n, taup, lam, u, v, C=C)\n            raise ETMError(Fmt.no_convergence(d2, tol2), txt=t)\n        return u, v\n\n    @property_doc_(''' raise an L{ETMError} for convergence failures (C{bool}).''')\n    def raiser(self):\n        '''Get the error setting (C{bool}).\n        '''\n        return self._raiser\n\n    @raiser.setter  # PYCHOK setter!\n    def raiser(self, raiser):\n        '''Set the error setting (C{bool}), if C{True} throw an L{ETMError}\n           for convergence failures.\n        '''\n        self._raiser = bool(raiser)\n\n    def reset(self, lat0, lon0):\n        '''Set the central parallel and meridian.\n\n           @arg lat0: Latitude of the central parallel (C{degrees90}).\n           @arg lon0: Longitude of the central meridian (C{degrees180}).\n\n           @return: 2-Tuple C{(lat0, lon0)} of the previous central\n                    parallel and meridian.\n\n           @raise ETMError: Invalid B{C{lat0}} or B{C{lon0}}.\n        '''\n        t = self._lat0, self.lon0\n        self._lat0 = _fix90(Degrees(lat0=lat0, Error=ETMError))\n        self. lon0 =  lon0  # lon0.setter\n        return t\n\n    def _resets(self, datum):\n        '''(INTERNAL) Set the ellipsoid and elliptic moduli.\n\n           @arg datum: Ellipsoidal datum (C{Datum}).\n\n           @raise ETMError: Near-spherical B{C{datum}} or C{ellipsoid}.\n        '''\n        E  = datum.ellipsoid\n        mu = E.e2   # E.eccentricity1st2\n        mv = E.e21  # _1_0 - mu\n        if isnear0(E.e) or isnear0(mu, eps0=EPS02) \\\n                        or isnear0(mv, eps0=EPS02):  # or sqrt(mu) != E.e\n            raise ETMError(ellipsoid=E, txt=_near_(_spherical_))\n\n        if self._datum or self._E:\n            _i = ExactTransverseMercator.iteration._uname  # property_RO\n            _update_all(self, _i, '_sigmaC', '_zetaC', Base=Property_RO)  # _under\n\n        self._E  = E\n        self._mu = mu\n        self._mv = mv\n\n    def reverse(self, x, y, lon0=None, jam=_K_2_4, **name):\n        '''Reverse projection, from Transverse Mercator to geographic.\n\n           @arg x: Easting of point (C{meters}).\n           @arg y: Northing of point (C{meters}).\n           @kwarg lon0: Optional central meridian (C{degrees180}),\n                        overriding the default (C{iff not None}).\n           @kwarg jam: If C{True}, use the C{Jacobi amplitude}\n                       otherwise C{Bulirsch}' function (C{bool}).\n           @kwarg name: Optional C{B{name}=NN} (C{str}).\n\n           @return: L{Reverse4Tuple}C{(lat, lon, gamma, scale)}.\n\n           @see: C{void TMExact::Reverse(real lon0, real x, real y,\n                                         real &lat, real &lon,\n                                         real &gamma, real &k)}\n\n           @raise ETMError: No convergence, thrown iff property\n                            C{B{raiser}=True}.\n        '''\n        # undoes the steps in .forward.\n        xi  = y / self._k0_a\n        eta = x / self._k0_a\n        if self.extendp:\n            backside = _lat = _lon = False\n        else:  # enforce the parity\n            eta, _lon = _unsigned2(eta)\n            xi,  _lat = _unsigned2(xi)\n            backside  =  xi > self._Eu_cE\n            if backside:  # PYCHOK no cover\n                xi = self._Eu_2cE_(xi)\n\n        # u, v = coordinates for the Thompson TM, Lee 54\n        if xi or eta != self._Ev_cKE:\n            u, v = self._sigmaInv2(xi, eta)\n        else:  # PYCHOK no cover\n            u = self._iteration = self._sigmaC = 0\n            v = self._Ev_cK\n\n        if v or u != self._Eu_cK:\n            g, k, lat, lon = self._zetaScaled(self._sncndn6(u, v, jam=jam))\n        else:  # PYCHOK no cover\n            g, k, lat, lon = _0_0, self.k0, _90_0, _0_0\n\n        if backside:  # PYCHOK no cover\n            lon, g = _loneg(lon), _loneg(g)\n        if _lat:\n            lat, g = neg_(lat, g)\n        if _lon:\n            lon, g = neg_(lon, g)\n        lat += self._lat0\n        lon += self._lon0 if lon0 is None else _norm180(lon0)\n        return Reverse4Tuple(lat, _norm180(lon), g, k,  # _fix90(lat)\n                                   iteration=self._iteration,\n                                   name=self._name__(name))\n\n    def _scaled2(self, tau, d2, snu, cnu, dnu, snv, cnv, dnv):\n        '''(INTERNAL) C{scaled}.\n\n           @note: Argument B{C{d2}} is C{_mu * cnu**2 + _mv * cnv**2}\n                  from C{._zeta3}.\n\n           @return: 2-Tuple C{(convergence, scale)}.\n\n           @see: C{void TMExact::Scale(real tau, real /*lam*/,\n                                       real snu, real cnu, real dnu,\n                                       real snv, real cnv, real dnv,\n                                       real &gamma, real &k)}.\n        '''\n        mu, mv = self._mu, self._mv\n        cnudnv = cnu * dnv\n        # Lee 55.12 -- negated for our sign convention.  g gives\n        # the bearing (clockwise from true north) of grid north\n        g = atan2d(mv * cnv * snv * snu, cnudnv * dnu)\n        # Lee 55.13 with nu given by Lee 9.1 -- in sqrt change\n        # the numerator from (1 - snu^2 * dnv^2) to (_mv * snv^2\n        # + cnu^2 * dnv^2) to maintain accuracy near phi = 90\n        # and change the denomintor from (dnu^2 + dnv^2 - 1) to\n        # (_mu * cnu^2 + _mv * cnv^2) to maintain accuracy near\n        # phi = 0, lam = 90 * (1 - e).  Similarly rewrite sqrt in\n        # 9.1 as _mv + _mu * c^2 instead of 1 - _mu * sin(phi)^2\n        if d2 > 0:\n            # originally: sec2 = 1 + tau**2  # sec(phi)^2\n            #             d2   = (mu * cnu**2 + mv * cnv**2)\n            #             q2   = (mv * snv**2 + cnudnv**2) / d2\n            # k = sqrt(mv + mu / sec2) * sqrt(sec2) * sqrt(q2)\n            #   = sqrt(mv * sec2 + mu) * sqrt(q2)\n            #   = sqrt(mv + mv * tau**2 + mu) * sqrt(q2)\n            k, q2 = _0_0, (snv**2 * mv + cnudnv**2)\n            if q2 > 0:\n                k2 = (tau**2 + _1_0) * mv + mu\n                if k2 > 0:\n                    k = sqrt(k2) * sqrt(q2 / d2) * self.k0\n        else:\n            k = _OVERFLOW\n        return g, k\n\n    def _sigma3(self, v, snu, cnu, dnu, snv, cnv, dnv):\n        '''(INTERNAL) C{sigma}.\n\n           @return: 3-Tuple C{(xi, eta, d2)}.\n\n           @see: C{void TMExact::sigma(real /*u*/, real snu, real cnu, real dnu,\n                                       real   v,   real snv, real cnv, real dnv,\n                                       real &xi, real &eta)}.\n\n           @raise ETMError: No convergence.\n        '''\n        mu = self._mu * cnu\n        mv = self._mv * cnv\n        # Lee 55.4 writing\n        # dnu^2 + dnv^2 - 1 = _mu * cnu^2 + _mv * cnv^2\n        d2  = cnu * mu + cnv * mv\n        mu *= snu * dnu\n        mv *= snv * dnv\n        if d2 > 0:  # /= chokes PyChecker\n            mu = mu / d2\n            mv = mv / d2\n        else:\n            mu, mv = map1(_copysignOVERFLOW, mu, mv)\n        xi = self._Eu.fE(snu, cnu, dnu) - mu\n        v -= self._Ev.fE(snv, cnv, dnv) - mv\n        return xi, v, d2\n\n    def _sigmaDwd2(self, snu, cnu, dnu, snv, cnv, dnv):\n        '''(INTERNAL) C{sigmaDwd}.\n\n           @return: 2-Tuple C{(du, dv)}.\n\n           @see: C{void TMExact::dwdsigma(real /*u*/, real snu, real cnu, real dnu,\n                                          real /*v*/, real snv, real cnv, real dnv,\n                                          real &du, real &dv)}.\n        '''\n        mu   = self._mu\n        snuv = snu * snv\n        # Reciprocal of 55.9: dw / ds = dn(w)^2/_mv,\n        # expanding complex dn(w) using A+S 16.21.4\n        d = (cnv**2 + snuv**2 * mu)**2 * self._mv\n        r =  cnv * dnu * dnv\n        i =  cnu * snuv * mu\n        du = (r + i) * (r - i) / d  # (r**2 - i**2) / d\n        dv =  r * i * _2_0 / d\n        return du, neg(dv)\n\n    def _sigmaInv2(self, xi, eta):\n        '''(INTERNAL) Invert C{sigma} using Newton's method.\n\n           @return: 2-Tuple C{(u, v)}.\n\n           @see: C{void TMExact::sigmainv(real xi, real eta,\n                                          real &u, real &v)}.\n\n           @raise ETMError: No convergence.\n        '''\n        u, v, t, self._sigmaC = self._sigmaInv04(xi, eta)\n        if not t:\n            u, v = self._Newton2(xi, eta, u, v, self._sigmaC)\n        return u, v\n\n    def _sigmaInv04(self, xi, eta):\n        '''(INTERNAL) Starting point for C{sigmaInv}.\n\n           @return: 4-Tuple C{(u, v, trip, Case)}.\n\n           @see: C{bool TMExact::sigmainv0(real xi, real eta,\n                                           real &u, real &v)}.\n        '''\n        t = False\n        d = eta - self._Ev_cKE\n        if eta > self._Ev_5cKE_4 or (xi < d and xi < -self._Eu_cE_4):\n            # sigma as a simple pole at\n            #  w = w0 = Eu.K() + i * Ev.K()\n            # and sigma is approximated by\n            #  sigma = (Eu.E() + i * Ev.KE()) + 1 / (w - w0)\n            u, v = _norm2(xi - self._Eu_cE, -d)\n            u += self._Eu_cK\n            v += self._Ev_cK\n            C  = 1\n\n        elif (eta > self._Ev_3cKE_4 and xi < self._Eu_cE_4) or d > 0:\n            # At w = w0 = i * Ev.K(), we have\n            #  sigma  = sigma0  = i * Ev.KE()\n            #  sigma' = sigma'' = 0\n            # including the next term in the Taylor series gives:\n            #  sigma = sigma0 - _mv / 3 * (w - w0)^3\n            # When inverting this, we map arg(w - w0) = [-pi/2, -pi/6]\n            # to arg(sigma - sigma0) = [-pi/2, pi/2] mapping arg =\n            # [-pi/2, -pi/6] to [-pi/2, pi/2]\n            u, v, h = self._Inv03(xi, d, self._3_mv)\n            t = h < _TAYTOL2\n            C = 2\n\n        else:  # use w = sigma * Eu.K/Eu.E (correct in limit _e -> 0)\n            u = v = self._Eu_cK_cE\n            u *= xi\n            v *= eta\n            C  = 3\n\n        return u, v, t, C\n\n    def _sncndn6(self, u, v, **jam):\n        '''(INTERNAL) Get 6-tuple C{(snu, cnu, dnu, snv, cnv, dnv)}.\n        '''\n        # snu, cnu, dnu = self._Eu.sncndn(u)\n        # snv, cnv, dnv = self._Ev.sncndn(v)\n        return self._Eu.sncndn(u, **jam) + \\\n               self._Ev.sncndn(v, **jam)\n\n    def toStr(self, joined=_COMMASPACE_, **kwds):  # PYCHOK signature\n        '''Return a C{str} representation.\n\n           @kwarg joined: Separator to join the attribute strings\n                         (C{str} or C{None} or C{NN} for non-joined).\n           @kwarg kwds: Optional, overriding keyword arguments.\n        '''\n        d = dict(datum=self.datum.name, lon0=self.lon0,\n                 k0=self.k0, extendp=self.extendp)\n        if self.name:\n            d.update(name=self.name)\n        t = pairs(d, **kwds)\n        return joined.join(t) if joined else t\n\n    def _zeta3(self, unused, snu, cnu, dnu, snv, cnv, dnv):  # _sigma3 signature\n        '''(INTERNAL) C{zeta}.\n\n           @return: 3-Tuple C{(taup, lambda, d2)}.\n\n           @see: C{void TMExact::zeta(real /*u*/, real snu, real cnu, real dnu,\n                                      real /*v*/, real snv, real cnv, real dnv,\n                                      real &taup, real &lam)}\n        '''\n        e, cnu2, mv = self._e, cnu**2, self._mv\n        # Lee 54.17 but write\n        # atanh(snu * dnv)      = asinh(snu * dnv / sqrt(cnu^2 + _mv * snu^2 * snv^2))\n        # atanh(_e * snu / dnv) = asinh(_e * snu / sqrt(_mu * cnu^2 + _mv * cnv^2))\n        d1 = cnu2 + (snu * snv)**2 * mv\n        if d1 > EPS02:  # _EPSmin\n            t1 = snu * dnv / sqrt(d1)\n        else:  # like atan(overflow) = pi/2\n            t1, d1 = _copysignOVERFLOW(snu), 0\n        d2 = cnu2 * self._mu + cnv**2 * mv\n        if d2 > EPS02:  # _EPSmin\n            t2 = sinh(e * asinh(e * snu / sqrt(d2)))\n        else:\n            t2, d2 = _copysignOVERFLOW(snu), 0\n        # psi = asinh(t1) - asinh(t2)\n        # taup = sinh(psi)\n        taup = t1 * hypot1(t2) - t2 * hypot1(t1)\n        lam  = (atan2(dnu * snv,     cnu * cnv) -\n                atan2(cnu * snv * e, dnu * cnv) * e) if d1 and d2 else _0_0\n        return taup, lam, d2\n\n    def _zetaDwd2(self, snu, cnu, dnu, snv, cnv, dnv):\n        '''(INTERNAL) C{zetaDwd}.\n\n           @return: 2-Tuple C{(du, dv)}.\n\n           @see: C{void TMExact::dwdzeta(real /*u*/, real snu, real cnu, real dnu,\n                                         real /*v*/, real snv, real cnv, real dnv,\n                                         real &du, real &dv)}.\n        '''\n        cnu2  = cnu**2 * self._mu\n        cnv2  = cnv**2\n        dnuv  = dnu * dnv\n        dnuv2 = dnuv**2\n        snuv  = snu * snv\n        snuv2 = snuv**2 * self._mu\n        # Lee 54.21 but write (see A+S 16.21.4)\n        # (1 - dnu^2 * snv^2) = (cnv^2 + _mu * snu^2 * snv^2)\n        d  = (cnv2 + snuv2)**2    * self._mv  # max(d, EPS02)?\n        du = (cnv2 - snuv2) * cnu * dnuv / d\n        dv = (cnu2 + dnuv2) * cnv * snuv / d\n        return du, neg(dv)\n\n    def _zetaInv2(self, taup, lam):\n        '''(INTERNAL) Invert C{zeta} using Newton's method.\n\n           @return: 2-Tuple C{(u, v)}.\n\n           @see: C{void TMExact::zetainv(real taup, real lam,\n                                         real &u, real &v)}.\n\n           @raise ETMError: No convergence.\n        '''\n        psi = asinh(taup)\n        u, v, t, self._zetaC = self._zetaInv04(psi, lam)\n        if not t:\n            u, v = self._Newton2(taup, lam, u, v, self._zetaC, psi)\n        return u, v\n\n    def _zetaInv04(self, psi, lam):\n        '''(INTERNAL) Starting point for C{zetaInv}.\n\n           @return: 4-Tuple C{(u, v, trip, Case)}.\n\n           @see: C{bool TMExact::zetainv0(real psi, real lam,  # radians\n                                          real &u, real &v)}.\n        '''\n        if lam > self._1_2e_PI_2:\n            d = lam - self._1_e_PI_2\n            if psi < d and psi < self._e_PI_4_:  # PYCHOK no cover\n                # N.B. this branch is normally *not* taken because psi < 0\n                # is converted psi > 0 by .forward.  There's a log singularity\n                # at w = w0 = Eu.K() + i * Ev.K(), corresponding to the south\n                # pole, where we have, approximately\n                #  psi = _e + i * pi/2 - _e * atanh(cos(i * (w - w0)/(1 + _mu/2)))\n                # Inverting this gives:\n                e = self._e  # eccentricity\n                s, c = sincos2((PI_2 - lam) / e)\n                h, r = sinh(_1_0 - psi / e), self._1_mu_2\n                u = self._Eu_cK - r * asinh(s / hypot(c, h))\n                v = self._Ev_cK - r * atan2(c, h)\n                return u, v, False, 1\n\n            elif psi < self._e_PI_2:\n                # At w = w0 = i * Ev.K(), we have\n                #  zeta  = zeta0  = i * (1 - _e) * pi/2\n                #  zeta' = zeta'' = 0\n                # including the next term in the Taylor series gives:\n                #  zeta = zeta0 - (_mv * _e) / 3 * (w - w0)^3\n                # When inverting this, we map arg(w - w0) = [-90, 0]\n                # to arg(zeta - zeta0) = [-90, 180]\n                u, v, h = self._Inv03(psi, d, self._3_mv_e)\n                return u, v, (h < self._e_TAYTOL), 2\n\n        # Use spherical TM, Lee 12.6 -- writing C{atanh(sin(lam) /\n        # cosh(psi)) = asinh(sin(lam) / hypot(cos(lam), sinh(psi)))}.\n        # This takes care of the log singularity at C{zeta = Eu.K()},\n        # corresponding to the north pole.\n        s, c = sincos2(lam)\n        h, r = sinh(psi), self._Eu_2cK_PI\n        # But scale to put 90, 0 on the right place\n        u = r * atan2(h, c)\n        v = r * asinh(s / hypot(h, c))\n        return u, v, False, 3\n\n    def _zetaScaled(self, sncndn6, ll=True):\n        '''(INTERNAL) Recompute (T, L) from (u, v) to improve accuracy of Scale.\n\n           @arg sncndn6: 6-Tuple C{(snu, cnu, dnu, snv, cnv, dnv)}.\n\n           @return: 2-Tuple C{(g, k)} if not C{B{ll}} else\n                    4-tuple C{(g, k, lat, lon)}.\n        '''\n        t, lam, d2 = self._zeta3(None, *sncndn6)\n        tau = self._E.es_tauf(t)\n        g_k = self._scaled2(tau, d2, *sncndn6)\n        if ll:\n            g_k += atan1d(tau), degrees(lam)\n        return g_k  # or (g, k, lat, lon)\n\n_allPropertiesOf_n(22, ExactTransverseMercator, Property_RO)  # PYCHOK assert _ROs = ...\ndel _0_1, _allPropertiesOf_n, EPS, _1_EPS, _EWGS84\n\n\ndef _copysignOVERFLOW(x):\n    '''(INTERNAL) Like C{copysign0(OVERFLOW, B{x})}.\n    '''\n    return (-_OVERFLOW) if _signBit(x) else _OVERFLOW\n\n\ndef parseETM5(strUTM, datum=_WGS84, Etm=Etm, falsed=True, **name):\n    '''Parse a string representing a UTM coordinate, consisting\n       of C{\"zone[band] hemisphere easting northing\"}.\n\n       @arg strUTM: A UTM coordinate (C{str}).\n       @kwarg datum: Optional datum to use (L{Datum}, L{Ellipsoid},\n                     L{Ellipsoid2} or L{a_f2Tuple}).\n       @kwarg Etm: Optional class to return the UTM coordinate\n                   (L{Etm}) or C{None}.\n       @kwarg falsed: Both easting and northing are C{falsed} (C{bool}).\n       @kwarg name: Optional B{C{Etm}} C{B{name}=NN} (C{str}).\n\n       @return: The UTM coordinate (B{C{Etm}}) or if C{B{Etm} is None}, a\n                L{UtmUps5Tuple}C{(zone, hemipole, easting, northing, band)}\n                with C{hemipole} is the hemisphere C{'N'|'S'}.\n\n       @raise ETMError: Invalid B{C{strUTM}}.\n\n       @raise TypeError: Invalid or near-spherical B{C{datum}}.\n    '''\n    r = _parseUTM5(strUTM, datum, Etm, falsed, Error=ETMError, **name)\n    return r\n\n\ndef toEtm8(latlon, lon=None, datum=None, Etm=Etm, falsed=True,\n                             strict=True, zone=None, **name_cmoff):\n    '''Convert a geodetic lat-/longitude to an ETM coordinate.\n\n       @arg latlon: Latitude (C{degrees}) or an (ellipsoidal) geodetic\n                    C{LatLon} instance.\n       @kwarg lon: Optional longitude (C{degrees}), required if B{C{latlon}}\n                   is C{degrees}, ignored otherwise.\n       @kwarg datum: Optional datum for the ETM coordinate, overriding\n                     B{C{latlon}}'s datum (L{Datum}, L{Ellipsoid},\n                     L{Ellipsoid2} or L{a_f2Tuple}).\n       @kwarg Etm: Optional class to return the ETM coordinate (L{Etm}) or C{None}.\n       @kwarg falsed: False both easting and northing (C{bool}).\n       @kwarg strict: Restrict B{C{lat}} to UTM ranges (C{bool}).\n       @kwarg zone: Optional UTM zone to enforce (C{int} or C{str}).\n       @kwarg name_cmoff: Optional B{C{Etm}} C{B{name}=NN} (C{str}) and DEPRECATED\n                   keyword argument C{B{cmoff}=True} to offset the longitude from\n                   the zone's central meridian (C{bool}), use B{C{falsed}} instead.\n\n       @return: The ETM coordinate as B{C{Etm}} or if C{B{Etm} is None} or not B{C{falsed}},\n                a L{UtmUps8Tuple}C{(zone, hemipole, easting, northing, band, datum, gamma,\n                scale)}.  The C{hemipole} is the C{'N'|'S'} hemisphere.\n\n       @raise ETMError: No convergence transforming to ETM easting and northing.\n\n       @raise ETMError: Invalid B{C{zone}} or near-spherical or incompatible B{C{datum}}\n                        or C{ellipsoid}.\n\n       @raise RangeError: If B{C{lat}} outside the valid UTM bands or if B{C{lat}} or B{C{lon}}\n                          outside the valid range and L{rangerrors<pygeodesy.rangerrors>} is C{True}.\n\n       @raise TypeError: Invalid or near-spherical B{C{datum}} or B{C{latlon}} not ellipsoidal.\n\n       @raise ValueError: The B{C{lon}} value is missing or B{C{latlon}} is invalid.\n    '''\n    z, B, lat, lon, d, f, n = _to7zBlldfn(latlon, lon, datum,\n                                          falsed, zone, strict,\n                                          ETMError, **name_cmoff)\n    lon0 = _cmlon(z) if f else None\n    x, y, g, k = d.exactTM.forward(lat, lon, lon0=lon0)\n\n    return _toXtm8(Etm, z, lat, x, y, B, d, g, k, f,\n                        n, latlon, d.exactTM, Error=ETMError)\n\n\nif __name__ == _DMAIN_:  # MCCABE 16\n\n    def _main():\n\n        from pygeodesy import fstr, KTransverseMercator\n        from pygeodesy.interns import _BAR_, _COLONSPACE_, _DASH_, NN\n        from pygeodesy.internals import printf, _usage\n        from sys import argv, exit as _exit\n\n        def _error(why, _a=NN):\n            if _a:\n                why = 'option %r %s' % (_a, why)\n            _exit(_COLONSPACE_(_usage(*argv), why))\n\n        def _help(*why):\n            if why:\n                printf(_COLONSPACE_(_usage(*argv), *why))\n            _exit(_usage(argv[0], '[-s[eries]', _BAR_, '-t]',\n                                  '[-p[recision] <ndigits>]',\n                                  '[-f[orward] <lat> <lon>', _BAR_,\n                                  '-r[everse] <easting> <northing>', _BAR_,\n                                  '<lat> <lon>]', _BAR_,\n                                  '-h[elp]'))\n\n        def _result(t4):\n            printf(_COLONSPACE_(tm.classname, fstr(t4, prec=_p, sep=_SPACE_)))\n\n        # mimick some of I{Karney}'s utility C{TransverseMercatorProj}\n        _f = _r = _s = _t = False\n        _p = -6\n        args = argv[1:]\n        while args and args[0].startswith(_DASH_):\n            _a = args.pop(0)\n            if len(_a) < 2:\n                _error('invalid', _a)\n            elif '-forward'.startswith(_a):\n                _f, _r = True, False\n            elif '-reverse'.startswith(_a):\n                _f, _r = False, True\n            elif '-precision'.startswith(_a) and args:\n                _p = int(args.pop(0))\n            elif '-series'.startswith(_a):\n                _s, _t = True, False\n            elif _a == '-t':\n                _s, _t = False, True\n            elif '-help'.startswith(_a):\n                _help()\n            else:\n                _error('not supported', _a)\n        if len(args) < 2:\n            _help('incomplete')\n\n        f2 = map1(float, *args[:2])\n        tm = KTransverseMercator() if _s else \\\n             ExactTransverseMercator(extendp=_t)\n        if _f:\n            t = tm.forward(*f2)\n        elif _r:\n            t = tm.reverse(*f2)\n        else:\n            t = tm.forward(*f2)\n            _result(t)\n            t = tm.reverse(t.easting, t.northing)\n        _result(t)\n\n    _main()\n\n# % python3.13 -m pygeodesy.etm -p 12  33.33 44.44\n# ExactTransverseMercator: 4276926.114803905599 4727193.767015309073 28.375536563148 1.233325101778\n# ExactTransverseMercator: 33.33 44.44 28.375536563148 1.233325101778\n\n# % python3.13 -m pygeodesy.etm -s  -p 12  33.33 44.44\n# KTransverseMercator: 4276926.114803904667 4727193.767015310004 28.375536563148 1.233325101778\n# KTransverseMercator: 33.33 44.44 28.375536563148 1.233325101778\n\n# % python3.12 -m pygeodesy.etm -p 12  33.33 44.44\n# ExactTransverseMercator: 4276926.11480390653 4727193.767015309073 28.375536563148 1.233325101778\n# ExactTransverseMercator: 33.33 44.44 28.375536563148 1.233325101778\n\n# % python3.12 -m pygeodesy.etm -s  -p 12  33.33 44.44\n# KTransverseMercator: 4276926.114803904667 4727193.767015310004 28.375536563148 1.233325101778\n# KTransverseMercator: 33.33 44.44 28.375536563148 1.233325101778\n\n# % python2 -m pygeodesy.etm -p 12  33.33 44.44\n# ExactTransverseMercator: 4276926.11480390653 4727193.767015309073 28.375536563148 1.233325101778\n# ExactTransverseMercator: 33.33 44.44 28.375536563148 1.233325101778\n\n# % python2 -m pygeodesy.etm -s  -p 12  33.33 44.44\n# KTransverseMercator: 4276926.114803904667 4727193.767015310004 28.375536563148 1.233325101778\n# KTransverseMercator: 33.33 44.44 28.375536563148 1.233325101778\n\n# % echo 33.33 44.44 | .../bin/TransverseMercatorProj\n# 4276926.114804 4727193.767015 28.375536563148 1.233325101778\n\n# **) MIT License\n#\n# Copyright (C) 2016-2026 -- mrJean1 at Gmail -- All Rights Reserved.\n#\n# Permission is hereby granted, free of charge, to any person obtaining a\n# copy of this software and associated documentation files (the \"Software\"),\n# to deal in the Software without restriction, including without limitation\n# the rights to use, copy, modify, merge, publish, distribute, sublicense,\n# and/or sell copies of the Software, and to permit persons to whom the\n# Software is furnished to do so, subject to the following conditions:\n#\n# The above copyright notice and this permission notice shall be included\n# in all copies or substantial portions of the Software.\n#\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL\n# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR\n# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\n# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n# OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "pygeodesy/fmath.py",
    "content": "\n# -*- coding: utf-8 -*-\n\nu'''Utilities for precision floating point summation, multiplication,\nC{fused-multiply-add}, polynomials, roots, etc.\n'''\n# make sure int/int division yields float quotient, see .basics\nfrom __future__ import division as _; del _  # noqa: E702 ;\n\nfrom pygeodesy.basics import _copysign, copysign0, isbool, isint, isodd, \\\n                              isscalar, len2, _xiterable,  typename\nfrom pygeodesy.constants import EPS0, EPS02, EPS1, NAN, PI, PI_2, PI_4, \\\n                               _0_0, _0_125, _0_25, _1_3rd, _0_5, _2_3rd, \\\n                               _1_0, _1_5, _copysign_0_0, isfinite, remainder\nfrom pygeodesy.errors import _IsnotError, LenError, _TypeError, _ValueError, \\\n                             _xError, _xkwds, _xkwds_pop2, _xsError\nfrom pygeodesy.fsums import _2float, Fsum, fsum, _isFsum_2Tuple,  Fmt, unstr\n# from pygeodesy.internals import typename  # from .basics\nfrom pygeodesy.interns import MISSING, _negative_, _not_scalar_\nfrom pygeodesy.lazily import _ALL_LAZY, _ALL_MODS as _MODS\n# from pygeodesy.streprs import Fmt, unstr  # from .fsums\nfrom pygeodesy.units import Int_, _isHeight, _isRadius\n# from utily import atan2b, atan2p  # _MODS, circular import!\n\nfrom math import fabs, sqrt  # pow\nimport operator as _operator  # in .datums, .elliptic, .trf, .utm\n\n__all__ = _ALL_LAZY.fmath\n__version__ = '26.03.25'\n\n# sqrt(2) - 1 <https://WikiPedia.org/wiki/Square_root_of_2>\n_0_4142  =  0.41421356237309504880  # ~ 3_730_904_090_310_553 / 9_007_199_254_740_992\n_1_6th   =  1 / 6\n_h_lt_b_ = 'abs(h) < abs(b)'\n\n\nclass Fdot(Fsum):\n    '''Precision dot product.\n    '''\n    def __init__(self, a, *b, **start_name_f2product_nonfinites_RESIDUAL):\n        '''New L{Fdot} precision dot product M{start + sum(a[i] * b[i] for i=0..len(a)-1)}.\n\n           @arg a: Iterable of values (each C{scalar}, an L{Fsum} or L{Fsum2Tuple}).\n           @arg b: Other values (each C{scalar}, an L{Fsum} or L{Fsum2Tuple}), all\n                   positional.\n           @kwarg start_name_f2product_nonfinites_RESIDUAL: Optional bias C{B{start}=0}\n                        (C{scalar}, an L{Fsum} or L{Fsum2Tuple}), C{B{name}=NN} (C{str})\n                        and other settings, see class L{Fsum<Fsum.__init__>}.\n\n           @raise LenError: Unequal C{len(B{a})} and C{len(B{b})}.\n\n           @raise OverflowError: Partial C{2sum} overflow.\n\n           @raise TypeError: Invalid B{C{x}}.\n\n           @raise ValueError: Non-finite B{C{x}}.\n\n           @see: Function L{fdot} and method L{Fsum.fadd}.\n        '''\n        s, kwds = _xkwds_pop2(start_name_f2product_nonfinites_RESIDUAL, start=_0_0)\n        Fsum.__init__(self, **kwds)\n        self(s)\n\n        n = len(b)\n        if len(a) != n:  # PYCHOK no cover\n            raise LenError(Fdot, a=len(a), b=n)\n        self._facc_dot(n, a, b, **kwds)\n\n\nclass Fdot_(Fdot):  # in .elliptic\n    '''Precision dot product.\n    '''\n    def __init__(self, *xys, **start_name_f2product_nonfinites_RESIDUAL):\n        '''New L{Fdot_} precision dot product M{start + sum(xys[i] * xys[i+1] for i in\n           range(0, len(xys), B{2}))}.\n\n           @arg xys: Pairwise values (each C{scalar}, an L{Fsum} or L{Fsum2Tuple}),\n                     all positional.\n\n           @see: Class L{Fdot<Fdot.__init__>} for further details.\n        '''\n        if isodd(len(xys)):\n            raise LenError(Fdot_, xys=len(xys))\n        Fdot.__init__(self, xys[0::2], *xys[1::2], **start_name_f2product_nonfinites_RESIDUAL)\n\n\nclass Fhorner(Fsum):\n    '''Precision polynomial evaluation using the Horner form.\n    '''\n    def __init__(self, x, *cs, **incx_name_f2product_nonfinites_RESIDUAL):\n        '''New L{Fhorner} form evaluation of polynomial M{sum(cs[i] * x**i for i=0..n)}\n           with in- or decreasing exponent M{sum(... i=n..0)}, where C{n = len(cs) - 1}.\n\n           @arg x: Polynomial argument (C{scalar}, an L{Fsum} or L{Fsum2Tuple}).\n           @arg cs: Polynomial coeffients (each C{scalar}, an L{Fsum} or L{Fsum2Tuple}),\n                    all positional.\n           @kwarg incx_name_f2product_nonfinites_RESIDUAL: Optional C{B{name}=NN} (C{str}),\n                       C{B{incx}=True} for in-/decreasing exponents (C{bool}) and other\n                       settings, see class L{Fsum<Fsum.__init__>}.\n\n           @raise OverflowError: Partial C{2sum} overflow.\n\n           @raise TypeError: Invalid B{C{x}}.\n\n           @raise ValueError: Non-finite B{C{x}}.\n\n           @see: Function L{fhorner} and methods L{Fsum.fadd} and L{Fsum.fmul}.\n        '''\n        incx, kwds = _xkwds_pop2(incx_name_f2product_nonfinites_RESIDUAL, incx=True)\n        Fsum.__init__(self, **kwds)\n        self._fhorner(x, cs, Fhorner, incx=incx)\n\n\nclass Fhypot(Fsum):\n    '''Precision summation and hypotenuse, default C{root=2}.\n    '''\n    def __init__(self, *xs, **root_name_f2product_nonfinites_RESIDUAL_raiser):\n        '''New L{Fhypot} hypotenuse of (the I{root} of) several components (raised\n           to the power I{root}).\n\n           @arg xs: Components (each C{scalar}, an L{Fsum} or L{Fsum2Tuple}), all\n                    positional.\n           @kwarg root_name_f2product_nonfinites_RESIDUAL_raiser: Optional, exponent\n                       and C{B{root}=2} order (C{scalar}), C{B{name}=NN} (C{str}),\n                       C{B{raiser}=True} (C{bool}) for raising L{ResidualError}s and\n                       other settings, see class L{Fsum<Fsum.__init__>} and method\n                       L{root<Fsum.root>}.\n        '''\n        def _r_X_kwds(power=None, raiser=True, root=2, **kwds):\n            # DEPRECATED keyword argument C{power=2}, use C{root=2}\n            return (root if power is None else power), raiser, kwds\n\n        r = None  # _xkwds_pop2 error\n        try:\n            r, X, kwds = _r_X_kwds(**root_name_f2product_nonfinites_RESIDUAL_raiser)\n            Fsum.__init__(self, **kwds)\n            self(_0_0)\n            if xs:\n                self._facc_power(r, xs, Fhypot, raiser=X)\n            self._fset(self.root(r, raiser=X))\n        except Exception as X:\n            raise self._ErrorXs(X, xs, root=r)\n\n\nclass Fpolynomial(Fsum):\n    '''Precision polynomial evaluation.\n    '''\n    def __init__(self, x, *cs, **name_f2product_nonfinites_RESIDUAL):\n        '''New L{Fpolynomial} evaluation of the polynomial M{sum(cs[i] * x**i for\n           i=0..len(cs)-1)}.\n\n           @arg x: Polynomial argument (C{scalar}, an L{Fsum} or L{Fsum2Tuple}).\n           @arg cs: Polynomial coeffients (each C{scalar}, an L{Fsum} or L{Fsum2Tuple}),\n                    all positional.\n           @kwarg name_f2product_nonfinites_RESIDUAL: Optional C{B{name}=NN} (C{str})\n                       and other settings, see class L{Fsum<Fsum.__init__>}.\n\n           @raise OverflowError: Partial C{2sum} overflow.\n\n           @raise TypeError: Invalid B{C{x}}.\n\n           @raise ValueError: Non-finite B{C{x}}.\n\n           @see: Class L{Fhorner}, function L{fpolynomial} and method L{Fsum.fadd}.\n        '''\n        Fsum.__init__(self, **name_f2product_nonfinites_RESIDUAL)\n        n = len(cs) - 1\n        self(_0_0 if n < 0 else cs[0])\n        self._facc_dot(n, cs[1:], _powers(x, n), **name_f2product_nonfinites_RESIDUAL)\n\n\nclass Fpowers(Fsum):\n    '''Precision summation of powers, optimized for C{power=2, 3 and 4}.\n    '''\n    def __init__(self, power, *xs, **name_f2product_nonfinites_RESIDUAL_raiser):\n        '''New L{Fpowers} sum of (the I{power} of) several bases.\n\n           @arg power: The exponent (C{scalar}, an L{Fsum} or L{Fsum2Tuple}).\n           @arg xs: One or more bases (each C{scalar}, an L{Fsum} or L{Fsum2Tuple}), all\n                    positional.\n           @kwarg name_f2product_nonfinites_RESIDUAL_raiser: Optional C{B{name}=NN}\n                       (C{str}), C{B{raiser}=True} (C{bool}) for raising L{ResidualError}s\n                       and other settings, see class L{Fsum<Fsum.__init__>} and method\n                       L{fpow<Fsum.fpow>}.\n        '''\n        try:\n            X, kwds = _xkwds_pop2(name_f2product_nonfinites_RESIDUAL_raiser, raiser=True)\n            Fsum.__init__(self, **kwds)\n            self(_0_0)\n            if xs:\n                self._facc_power(power, xs, Fpowers, raiser=X)  # x**0 == 1\n        except Exception as X:\n            raise self._ErrorXs(X, xs, power=power)\n\n\nclass Froot(Fsum):\n    '''The root of a precision summation.\n    '''\n    def __init__(self, root, *xs, **name_f2product_nonfinites_RESIDUAL_raiser):\n        '''New L{Froot} root of a precision sum.\n\n           @arg root: The order (C{scalar}, an L{Fsum} or L{Fsum2Tuple}), non-zero.\n           @arg xs: Items to summate (each a C{scalar}, an L{Fsum} or L{Fsum2Tuple}), all\n                    positional.\n           @kwarg name_f2product_nonfinites_RESIDUAL_raiser: Optional C{B{name}=NN}\n                       (C{str}), C{B{raiser}=True} (C{bool}) for raising L{ResidualError}s\n                       and other settings, see class L{Fsum<Fsum.__init__>} and method\n                       L{fpow<Fsum.fpow>}.\n        '''\n        try:\n            X, kwds = _xkwds_pop2(name_f2product_nonfinites_RESIDUAL_raiser, raiser=True)\n            Fsum.__init__(self, **kwds)\n            self(_0_0)\n            if xs:\n                self.fadd(xs)\n            self(self.root(root, raiser=X))\n        except Exception as X:\n            raise self._ErrorXs(X, xs, root=root)\n\n\nclass Fcbrt(Froot):\n    '''Cubic root of a precision summation.\n    '''\n    def __init__(self, *xs, **name_f2product_nonfinites_RESIDUAL_raiser):\n        '''New L{Fcbrt} cubic root of a precision sum.\n\n           @see: Class L{Froot<Froot.__init__>} for further details.\n        '''\n        Froot.__init__(self, 3, *xs, **name_f2product_nonfinites_RESIDUAL_raiser)\n\n\nclass Fsqrt(Froot):\n    '''Square root of a precision summation.\n    '''\n    def __init__(self, *xs, **name_f2product_nonfinites_RESIDUAL_raiser):\n        '''New L{Fsqrt} square root of a precision sum.\n\n           @see: Class L{Froot<Froot.__init__>} for further details.\n        '''\n        Froot.__init__(self, 2, *xs, **name_f2product_nonfinites_RESIDUAL_raiser)\n\n\ndef bqrt(x):\n    '''Return the 4-th, I{bi-quadratic} or I{quartic} root, M{x**(1 / 4)},\n       preserving C{type(B{x})}.\n\n       @arg x: Value (C{scalar}, an L{Fsum} or L{Fsum2Tuple}).\n\n       @return: I{Quartic} root (C{float} or an L{Fsum}).\n\n       @raise TypeeError: Invalid B{C{x}}.\n\n       @raise ValueError: Negative B{C{x}}.\n\n       @see: Functions L{zcrt} and L{zqrt}.\n    '''\n    return _root(x, _0_25, bqrt)\n\n\ntry:\n    from math import cbrt as _cbrt  # Python 3.11+\nexcept ImportError:  # Python 3.10-\n\n    def _cbrt(x):\n        '''(INTERNAL) Compute the I{signed}, cube root M{x**(1/3)}.\n        '''\n        # <https://archive.lib.MSU.edu/crcmath/math/math/r/r021.htm>\n        # simpler and more accurate than Ken Turkowski's CubeRoot, see\n        # <https://People.FreeBSD.org/~lstewart/references/apple_tr_kt32_cuberoot.pdf>\n        return _copysign(pow(fabs(x), _1_3rd), x)  # to avoid complex\n\n\ndef cbrt(x):\n    '''Compute the cube root M{x**(1/3)}, preserving C{type(B{x})}.\n\n       @arg x: Value (C{scalar}, an L{Fsum} or L{Fsum2Tuple}).\n\n       @return: Cubic root (C{float} or L{Fsum}).\n\n       @see: Functions L{cbrt2} and L{sqrt3}.\n    '''\n    if _isFsum_2Tuple(x):\n        r = abs(x).fpow(_1_3rd)\n        if x.signOf() < 0:\n            r = -r\n    else:\n        r = _cbrt(x)\n    return r  # cbrt(-0.0) == -0.0\n\n\ndef cbrt2(x):  # PYCHOK attr\n    '''Compute the cube root I{squared} M{x**(2/3)}, preserving C{type(B{x})}.\n\n       @arg x: Value (C{scalar}, an L{Fsum} or L{Fsum2Tuple}).\n\n       @return: Cube root I{squared} (C{float} or L{Fsum}).\n\n       @see: Functions L{cbrt} and L{sqrt3}.\n    '''\n    return abs(x).fpow(_2_3rd) if _isFsum_2Tuple(x) else _cbrt(x**2)\n\n\ndef euclid(x, y, *xy0):\n    '''I{Appoximate} the norm M{hypot(B{x}, B{y})} by M{max(abs(B{x}),\n       abs(B{y})) + min(abs(B{x}), abs(B{y})) * 0.4142...}.\n\n       @arg x: X component (C{scalar}, an L{Fsum} or L{Fsum2Tuple}).\n       @arg y: Y component (C{scalar}, an L{Fsum} or L{Fsum2Tuple}).\n       @arg xy0: Optional reference C{(x0, y0)} (each C{scalar}, an\n                 L{Fsum} or L{Fsum2Tuple}).\n\n       @return: Appoximate norm (C{float} or L{Fsum}).\n    '''\n    x, y = _map0(abs, x, y, *xy0)  # NOT fabs!\n    if x < y:\n        x, y = y, x\n    return x + y * _0_4142  # _0_5 before 20.10.02\n\n\ndef euclid_(*xs):\n    '''I{Appoximate} the norm M{sqrt(sum(x**2 for x in xs))} by cascaded\n       L{euclid}.\n\n       @arg xs: X values (each C{scalar}, an L{Fsum} or L{Fsum2Tuple}),\n                all positional.\n\n       @return: Appoximate norm (C{float} or L{Fsum}).\n\n       @see: Function L{euclid}.\n    '''\n    e = _0_0\n    for x in sorted(map(abs, xs)):  # NOT fabs, reverse=True!\n        # e = euclid(x, e)\n        if x:\n            if e < x:\n                e, x = x, e\n            x *= _0_4142\n#           s  = e + x\n#           if e < x:  # like .fsums._2sum\n#               x -= s  # e = (x - s) + e\n#           else:\n#               e -= s  # e = (e - s) + x\n            e += x\n#           e += s\n    return e\n\n\ndef facos1(x):\n    '''Fast approximation of L{pygeodesy.acos1}C{(B{x})}, scalar.\n\n       @see: U{ShaderFastLibs.h<https://GitHub.com/michaldrobot/\n             ShaderFastLibs/blob/master/ShaderFastMathLib.h>}.\n    '''\n    a = fabs(x)\n    if a < EPS0:\n        r = PI_2\n    elif a < EPS1:\n        r = _fast(-a, 1.5707288, 0.2121144, 0.0742610, 0.0187293)\n        r *= sqrt(_1_0 - a)\n        if x < 0:\n            r = PI - r\n    else:\n        r = PI if x < 0 else _0_0\n    return r\n\n\ndef fasin1(x):  # PYCHOK no cover\n    '''Fast approximation of L{pygeodesy.asin1}C{(B{x})}, scalar.\n\n       @see: L{facos1}.\n    '''\n    return PI_2 - facos1(x)\n\n\ndef _fast(x, *cs):\n    '''(INTERNAL) Horner form for C{facos1} and C{fatan1}.\n    '''\n    h = 0\n    for c in reversed(cs):\n        h = _fma(x, h, c) if h else c\n    return h\n\n\ndef fatan(x):\n    '''Fast approximation of C{atan(B{x})}, scalar.\n    '''\n    a = fabs(x)\n    if a < _1_0:\n        r = fatan1(a) if a else _0_0\n    elif a > _1_0:\n        r = PI_2 - fatan1(_1_0 / a)  # == fatan2(a, _1_0)\n    else:\n        r = PI_4\n    if x < 0:  # copysign0(r, x)\n        r = -r\n    return r\n\n\ndef fatan1(x):\n    '''Fast approximation of C{atan(B{x})} for C{0 <= B{x} < 1}, I{unchecked}.\n\n       @see: U{ShaderFastLibs.h<https://GitHub.com/michaldrobot/ShaderFastLibs/\n             blob/master/ShaderFastMathLib.h>} and U{Efficient approximations\n             for the arctangent function<http://www-Labs.IRO.UMontreal.CA/\n             ~mignotte/IFT2425/Documents/EfficientApproximationArctgFunction.pdf>},\n             IEEE Signal Processing Magazine, 111, May 2006.\n    '''\n    # Eq (9): PI_4 * x - x * (abs(x) - 1) * (0.2447 + 0.0663 * abs(x)), for -1 < x < 1\n    #      == PI_4 * x - (x**2 - x) * (0.2447 + 0.0663 * x), for 0 < x < 1\n    #      == x * (1.0300981633974482 + x * (-0.1784 - x * 0.0663))\n    return _fast(x, _0_0, 1.0300981634, -0.1784, -0.0663)\n\n\ndef fatan2(y, x):\n    '''Fast approximation of C{atan2(B{y}, B{x})}, scalar.\n\n       @see: U{fastApproximateAtan(x, y)<https://GitHub.com/CesiumGS/cesium/blob/\n             master/Source/Shaders/Builtin/Functions/fastApproximateAtan.glsl>}\n             and L{fatan1}.\n    '''\n    a, b = fabs(x), fabs(y)\n    if b > a:\n        r = (PI_2 - fatan1(a / b)) if a else PI_2\n    elif a > b:\n        r = fatan1(b / a) if b else _0_0\n    elif a:  # a == b != 0\n        r = PI_4\n    else:  # a == b == 0\n        return _0_0\n    if x < 0:\n        r = PI - r\n    if y < 0:  # copysign0(r, y)\n        r = -r\n    return r\n\n\ndef favg(a, b, f=_0_5, nonfinites=True):\n    '''Return the precise average of two values.\n\n       @arg a: One (C{scalar}, an L{Fsum} or L{Fsum2Tuple}).\n       @arg b: Other (C{scalar}, an L{Fsum} or L{Fsum2Tuple}).\n       @kwarg f: Optional fraction (C{float}).\n       @kwarg nonfinites: Optional setting, see function L{fma}.\n\n       @return: M{a + f * (b - a)} (C{float}).\n    '''\n    F = fma(f, (b - a), a, nonfinites=nonfinites)\n    return float(F)\n\n\ndef fdot(xs, *ys, **start_f2product_nonfinites):\n    '''Return the precision dot product M{start + sum(xs[i] * ys[i] for i in range(len(xs)))}.\n\n       @arg xs: Iterable of values (each C{scalar}, an L{Fsum} or L{Fsum2Tuple}).\n       @arg ys: Other values (each C{scalar}, an L{Fsum} or L{Fsum2Tuple}), all positional.\n       @kwarg start_f2product_nonfinites: Optional bias C{B{start}=0} (C{scalar}, an\n                    L{Fsum} or L{Fsum2Tuple}) and settings C{B{f2product}=None} (C{bool})\n                    and C{B{nonfinites=True}} (C{bool}), see class L{Fsum<Fsum.__init__>}.\n\n       @return: Dot product (C{float}).\n\n       @raise LenError: Unequal C{len(B{xs})} and C{len(B{ys})}.\n\n       @see: Class L{Fdot}, U{Algorithm 5.10 B{DotK}\n             <https://www.TUHH.De/ti3/paper/rump/OgRuOi05.pdf>} and function\n             C{math.sumprod} in Python 3.12 and later.\n    '''\n    D = Fdot(xs, *ys, **_xkwds(start_f2product_nonfinites, nonfinites=True))\n    return float(D)\n\n\ndef fdot_(*xys, **start_f2product_nonfinites):\n    '''Return the (precision) dot product M{start + sum(xys[i] * xys[i+1] for i in range(0, len(xys), B{2}))}.\n\n       @arg xys: Pairwise values (each C{scalar}, an L{Fsum} or L{Fsum2Tuple}), all positional.\n\n       @see: Function L{fdot} for further details.\n\n       @return: Dot product (C{float}).\n    '''\n    D = Fdot_(*xys, **_xkwds(start_f2product_nonfinites, nonfinites=True))\n    return float(D)\n\n\ndef fdot3(xs, ys, zs, **start_f2product_nonfinites):\n    '''Return the (precision) dot product M{start + sum(xs[i] * ys[i] * zs[i] for i in range(len(xs)))}.\n\n       @arg xs: X values iterable (each C{scalar}, an L{Fsum} or L{Fsum2Tuple}).\n       @arg ys: Y values iterable (each C{scalar}, an L{Fsum} or L{Fsum2Tuple}).\n       @arg zs: Z values iterable (each C{scalar}, an L{Fsum} or L{Fsum2Tuple}).\n\n       @see: Function L{fdot} for further details.\n\n       @return: Dot product (C{float}).\n\n       @raise LenError: Unequal C{len(B{xs})}, C{len(B{ys})} and/or C{len(B{zs})}.\n    '''\n    n = len(xs)\n    if not n == len(ys) == len(zs):\n        raise LenError(fdot3, xs=n, ys=len(ys), zs=len(zs))\n\n    D  = Fdot((), **_xkwds(start_f2product_nonfinites, nonfinites=True))\n    kwds = dict(f2product=D.f2product(), nonfinites=D.nonfinites())\n    _f = Fsum(**kwds)\n    D  = D._facc(_f(x).f2mul_(y, z, **kwds) for x, y, z in zip(xs, ys, zs))\n    return float(D)\n\n\ndef fhorner(x, *cs, **incx):\n    '''Horner form evaluation of polynomial M{sum(cs[i] * x**i for i=0..n)} as\n       in- or decreasing exponent M{sum(... i=n..0)}, where C{n = len(cs) - 1}.\n\n       @return: Horner sum (C{float}).\n\n       @see: Class L{Fhorner<Fhorner.__init__>} for further details.\n    '''\n    H = Fhorner(x, *cs, **incx)\n    return float(H)\n\n\ndef fidw(xs, ds, beta=2):\n    '''Interpolate using U{Inverse Distance Weighting\n       <https://WikiPedia.org/wiki/Inverse_distance_weighting>} (IDW).\n\n       @arg xs: Known values (each C{scalar}, an L{Fsum} or L{Fsum2Tuple}).\n       @arg ds: Non-negative distances (each C{scalar}, an L{Fsum} or\n                L{Fsum2Tuple}).\n       @kwarg beta: Inverse distance power (C{int}, 0, 1, 2, or 3).\n\n       @return: Interpolated value C{x} (C{float}).\n\n       @raise LenError: Unequal or zero C{len(B{ds})} and C{len(B{xs})}.\n\n       @raise TypeError: An invalid B{C{ds}} or B{C{xs}}.\n\n       @raise ValueError: Invalid B{C{beta}}, negative B{C{ds}} or\n                          weighted B{C{ds}} below L{EPS}.\n\n       @note: Using C{B{beta}=0} returns the mean of B{C{xs}}.\n    '''\n    n, xs = len2(xs)\n    if n > 1:\n        b = -Int_(beta=beta, low=0, high=3)\n        if b < 0:\n            try:  # weighted\n                _d, W, X = (Fsum() for _ in range(3))\n                for i, d in enumerate(_xiterable(ds)):\n                    x =  xs[i]\n                    D = _d(d)\n                    if D < EPS0:\n                        if D < 0:\n                            raise ValueError(_negative_)\n                        x = float(x)\n                        i = n\n                        break\n                    if D.fpow(b):\n                        W += D\n                        X += D.fmul(x)\n                else:\n                    x  = X.fover(W, raiser=False)\n                    i += 1  # len(xs) >= len(ds)\n            except IndexError:\n                i += 1  # len(xs) < i < len(ds)\n            except Exception as X:\n                _I = Fmt.INDEX\n                raise _xError(X, _I(xs=i), x,\n                                 _I(ds=i), d)\n        else:  # b == 0\n            x = fsum(xs) / n  # fmean(xs)\n            i = n\n    elif n:\n        x = float(xs[0])\n        i = n\n    else:\n        x    = _0_0\n        i, _ =  len2(ds)\n    if i != n:\n        raise LenError(fidw, xs=n, ds=i)\n    return x\n\n\ntry:\n    from math import fma as _fma  # in .resections\nexcept  ImportError:  # PYCHOK DSPACE!\n\n    def _fma(x, y, z):  # no need for accuracy\n        return x * y + z\n\n\ndef fma(x, y, z, **nonfinites):  # **raiser\n    '''Fused-multiply-add, using C{math.fma(x, y, z)} in Python 3.13+\n       or an equivalent implementation.\n\n       @arg x: Multiplicand (C{scalar}, an L{Fsum} or L{Fsum2Tuple}).\n       @arg y: Multiplier (C{scalar}, an L{Fsum} or L{Fsum2Tuple}).\n       @arg z: Addend (C{scalar}, an L{Fsum} or L{Fsum2Tuple}).\n       @kwarg nonfinites: Use C{B{nonfinites}=True} or C{=False},\n                          to override default L{nonfiniterrors}\n                          (C{bool}), see method L{Fsum.fma}.\n\n       @return: C{(x * y) + z} (C{float} or L{Fsum}).\n    '''\n    F, raiser = _Fm2(x, **nonfinites)\n    return F.fma(y, z, **raiser).as_iscalar\n\n\ndef _Fm2(x, nonfinites=None, **raiser):\n    '''(INTERNAL) Handle C{fma} and C{f2mul} DEPRECATED C{raiser=False}.\n    '''\n    return Fsum(x, nonfinites=nonfinites), raiser\n\n\ndef fmean(xs, nonfinites=True):\n    '''Compute the accurate mean M{sum(xs) / len(xs)}.\n\n       @arg xs: Values (each C{scalar}, or L{Fsum} or L{Fsum2Tuple}).\n\n       @return: Mean value (C{float}).\n\n       @raise LenError: No B{C{xs}} values.\n\n       @raise OverflowError: Partial C{2sum} overflow.\n    '''\n    n, xs = len2(xs)\n    if n < 1:\n        raise LenError(fmean, xs=xs)\n    M = Fsum(*xs, nonfinites=nonfinites)\n    return M.fover(n) if n > 1 else float(M)\n\n\ndef fmean_(*xs, **nonfinites):\n    '''Compute the accurate mean M{sum(xs) / len(xs)}.\n\n       @see: Function L{fmean} for further details.\n    '''\n    return fmean(xs, **nonfinites)\n\n\ndef f2mul_(x, *ys, **nonfinites):  # **raiser\n    '''Cascaded, accurate multiplication C{B{x} * B{y} * B{y} ...} for all B{C{ys}}.\n\n       @arg x: Multiplicand (C{scalar}, an L{Fsum} or L{Fsum2Tuple}).\n       @arg ys: Multipliers (each C{scalar}, an L{Fsum} or L{Fsum2Tuple}), all\n                positional.\n       @kwarg nonfinites: Use C{B{nonfinites}=True} or C{=False}, to override default\n                          L{nonfiniterrors} (C{bool}), see method L{Fsum.f2mul_}.\n\n       @return: The cascaded I{TwoProduct} (C{float}, C{int} or L{Fsum}).\n\n       @see: U{Equations 2.3<https://www.TUHH.De/ti3/paper/rump/OzOgRuOi06.pdf>}\n    '''\n    F, raiser = _Fm2(x, **nonfinites)\n    return F.f2mul_(*ys, **raiser).as_iscalar\n\n\ndef fpolynomial(x, *cs, **over_f2product_nonfinites):\n    '''Evaluate the polynomial M{sum(cs[i] * x**i for i=0..len(cs)) [/ over]}.\n\n       @kwarg over_f2product_nonfinites: Optional final divisor C{B{over}=None}\n                   (I{non-zero} C{scalar}) and other settings, see class\n                   L{Fpolynomial<Fpolynomial.__init__>}.\n\n       @return: Polynomial value (C{float} or L{Fpolynomial}).\n    '''\n    d, kwds = _xkwds_pop2(over_f2product_nonfinites, over=0)\n    P = Fpolynomial(x, *cs, **kwds)\n    return P.fover(d) if d else float(P)\n\n\ndef fpowers(x, n, alts=0):\n    '''Return a series of powers M{[x**i for i=1..n]}, note I{1..!}\n\n       @arg x: Value (C{scalar}, an L{Fsum} or L{Fsum2Tuple}).\n       @arg n: Highest exponent (C{int}).\n       @kwarg alts: Only alternating powers, starting with this\n                    exponent (C{int}).\n\n       @return: Tuple of powers of B{C{x}} (each C{type(B{x})}).\n\n       @raise TypeError: Invalid B{C{x}} or B{C{n}} not C{int}.\n\n       @raise ValueError: Non-finite B{C{x}} or invalid B{C{n}}.\n    '''\n    if not isint(n):\n        raise _IsnotError(typename(int), n=n)\n    elif n < 1:\n        raise _ValueError(n=n)\n\n    p  = x if isscalar(x) or _isFsum_2Tuple(x) else _2float(x=x)\n    ps = tuple(_powers(p, n))\n\n    if alts > 0:  # x**2, x**4, ...\n        # ps[alts-1::2] chokes PyChecker\n        ps = ps[slice(alts-1, None, 2)]\n\n    return ps\n\n\ntry:\n    from math import prod as fprod  # Python 3.8\nexcept ImportError:\n\n    def fprod(xs, start=1):\n        '''Iterable product, like C{math.prod} or C{numpy.prod}.\n\n           @arg xs: Iterable of values to be multiplied (each\n                    C{scalar}, an L{Fsum} or L{Fsum2Tuple}).\n           @kwarg start: Initial value, also the value returned\n                         for an empty B{C{xs}} (C{scalar}).\n\n           @return: The product (C{float} or L{Fsum}).\n\n           @see: U{NumPy.prod<https://docs.SciPy.org/doc/\n                 numpy/reference/generated/numpy.prod.html>}.\n        '''\n        return freduce(_operator.mul, xs, start)\n\n\ndef frandoms(n, seeded=None):\n    '''Generate C{n} (long) lists of random C{floats}.\n\n       @arg n: Number of lists to generate (C{int}, non-negative).\n       @kwarg seeded: If C{scalar}, use C{random.seed(B{seeded})} or\n                      if C{True}, seed using today's C{year-day}.\n\n       @see: U{Hettinger<https://GitHub.com/ActiveState/code/tree/master/recipes/\n             Python/393090_Binary_floating_point_summatiaccurate_full/recipe-393090.py>}.\n    '''\n    from random import gauss, random, seed, shuffle\n\n    if seeded is None:\n        pass\n    elif seeded and isbool(seeded):\n        from time import localtime\n        seed(localtime().tm_yday)\n    elif isscalar(seeded):\n        seed(seeded)\n\n    c = (7, 1e100, -7, -1e100, -9e-20, 8e-20) * 7\n    for _ in range(n):\n        s  = 0\n        t  = list(c)\n        _a = t.append\n        for _ in range(n * 8):\n            v = gauss(0, random())**7 - s\n            _a(v)\n            s += v\n        shuffle(t)\n        yield t\n\n\ndef frange(start, number, step=1):\n    '''Generate a range of C{float}s.\n\n       @arg start: First value (C{float}).\n       @arg number: The number of C{float}s to generate (C{int}).\n       @kwarg step: Increment value (C{float}).\n\n       @return: A generator (C{float}s).\n\n       @see: U{NumPy.prod<https://docs.SciPy.org/doc/\n             numpy/reference/generated/numpy.arange.html>}.\n    '''\n    if not isint(number):\n        raise _IsnotError(typename(int), number=number)\n    for i in range(number):\n        yield start + (step * i)\n\n\ntry:\n    from functools import reduce as freduce\nexcept ImportError:\n    try:\n        freduce = reduce  # PYCHOK expected\n    except NameError:  # Python 3+\n\n        def freduce(f, xs, *start):\n            '''For missing C{functools.reduce}.\n            '''\n            if start:\n                r = v = start[0]\n            else:\n                r, v = 0, MISSING\n            for v in xs:\n                r = f(r, v)\n            if v is MISSING:\n                raise _TypeError(xs=(), start=MISSING)\n            return r\n\n\ndef fremainder(x, y):\n    '''Remainder in range C{[-B{y / 2}, B{y / 2}]}.\n\n       @arg x: Numerator (C{scalar}).\n       @arg y: Modulus, denominator (C{scalar}).\n\n       @return: Remainder (C{scalar}, preserving signed\n                0.0) or C{NAN} for any non-finite B{C{x}}.\n\n       @raise ValueError: Infinite or near-zero B{C{y}}.\n\n       @see: I{Karney}'s U{Math.remainder<https://PyPI.org/\n             project/geographiclib/>} and Python 3.7+\n             U{math.remainder<https://docs.Python.org/3/\n             library/math.html#math.remainder>}.\n    '''\n    # with Python 2.7.16 and 3.7.3 on macOS 10.13.6 and\n    # with Python 3.10.2 on macOS 12.2.1 M1 arm64 native\n    #  fmod( 0,   360) ==  0.0\n    #  fmod( 360, 360) ==  0.0\n    #  fmod(-0,   360) ==  0.0\n    #  fmod(-0.0, 360) == -0.0\n    #  fmod(-360, 360) == -0.0\n    # however, using the % operator ...\n    #    0   % 360 == 0\n    #  360   % 360 == 0\n    #  360.0 % 360 == 0.0\n    #   -0   % 360 == 0\n    # -360   % 360 == 0   == (-360)   % 360\n    #   -0.0 % 360 == 0.0 ==   (-0.0) % 360\n    # -360.0 % 360 == 0.0 == (-360.0) % 360\n\n    # On Windows 32-bit with python 2.7, math.fmod(-0.0, 360)\n    # == +0.0.  This fixes this bug.  See also Math::AngNormalize\n    # in the C++ library, Math.sincosd has a similar fix.\n    if isfinite(x):\n        try:\n            r = remainder(x, y) if x else x\n        except Exception as e:\n            raise _xError(e, unstr(fremainder, x, y))\n    else:  # handle x INF and NINF as NAN\n        r = NAN\n    return r\n\n\nif _MODS.sys_version_info2 < (3, 8):  # PYCHOK no cover\n    from math import hypot  # OK in Python 3.7-\n\n    def hypot_(*xs):\n        '''Compute the norm M{sqrt(sum(x**2 for x in xs))}.\n\n           Similar to Python 3.8+ n-dimension U{math.hypot\n           <https://docs.Python.org/3.8/library/math.html#math.hypot>},\n           but exceptions, C{nan} and C{infinite} values are\n           handled differently.\n\n           @arg xs: X arguments (C{scalar}s), all positional.\n\n           @return: Norm (C{float}).\n\n           @raise OverflowError: Partial C{2sum} overflow.\n\n           @raise ValueError: Invalid or no B{C{xs}} values.\n\n           @note: The Python 3.8+ Euclidian distance U{math.dist\n                  <https://docs.Python.org/3.8/library/math.html#math.dist>}\n                  between 2 I{n}-dimensional points I{p1} and I{p2} can be\n                  computed as M{hypot_(*((c1 - c2) for c1, c2 in zip(p1, p2)))},\n                  provided I{p1} and I{p2} have the same, non-zero length I{n}.\n        '''\n        return float(_Hypot(*xs))\n\nelif _MODS.sys_version_info2 < (3, 10):  # PYCHOK no cover\n    # In Python 3.8 and 3.9 C{math.hypot} is inaccurate, see\n    # U{agdhruv<https://GitHub.com/geopy/geopy/issues/466>},\n    # U{cffk<https://Bugs.Python.org/issue43088>} and module\n    # U{geomath.py<https://PyPI.org/project/geographiclib/1.52>}\n\n    def hypot(x, y):\n        '''Compute the norm M{sqrt(x**2 + y**2)}.\n\n           @arg x: X argument (C{scalar}).\n           @arg y: Y argument (C{scalar}).\n\n           @return: C{sqrt(B{x}**2 + B{y}**2)} (C{float}).\n        '''\n        return float(_Hypot(x, y))\n\n    from math import hypot as hypot_  # PYCHOK in Python 3.8 and 3.9\nelse:\n    from math import hypot  # PYCHOK in Python 3.10+\n    hypot_ = hypot\n\n\ndef _Hypot(*xs):\n    '''(INTERNAL) Substitute for inaccurate C{math.hypot}.\n    '''\n    return Fhypot(*xs, nonfinites=True, raiser=False)  # f2product=True\n\n\ndef hypot1(x):\n    '''Compute the norm M{sqrt(1 + x**2)}.\n\n       @arg x: Argument (C{scalar} or L{Fsum} or L{Fsum2Tuple}).\n\n       @return: Norm (C{float} or L{Fhypot}).\n    '''\n    h = _1_0\n    if x:\n        if _isFsum_2Tuple(x):\n            h = _Hypot(h, x)\n            h =  float(h)\n        else:\n            h =  hypot(h, x)\n    return h\n\n\ndef hypot2(x, y, *xy0):\n    '''Compute the I{squared} norm M{x**2 + y**2}.\n\n       @arg x: X (C{scalar}, an L{Fsum} or L{Fsum2Tuple}).\n       @arg y: Y (C{scalar}, an L{Fsum} or L{Fsum2Tuple}).\n       @arg xy0: Optional reference C{(x0, y0)} (each C{scalar},\n                 an L{Fsum} or L{Fsum2Tuple}).\n\n       @return: C{B{x}**2 + B{y}**2} (C{float}).\n    '''\n    x, y = _map0(abs, x, y, *xy0)  # NOT fabs!\n    if y > x:\n        x, y = y, x\n    h2 = x**2\n    if h2 and y:\n        h2 *= (y / x)**2 + _1_0\n    return float(h2)\n\n\ndef hypot2_(*xs):\n    '''Compute the I{squared} norm C{fsum(x**2 for x in B{xs})}.\n\n       @arg xs: Components (each C{scalar}, an L{Fsum} or\n                L{Fsum2Tuple}), all positional.\n\n       @return: Squared norm (C{float}).\n\n       @see: Class L{Fpowers} for further details.\n    '''\n    h2 = float(max(map(abs, xs))) if xs else _0_0\n    if h2:  # and isfinite(h2)\n        _h = _1_0 / h2\n        xs = ((x * _h) for x in xs)\n        H2 =  Fpowers(2, *xs, nonfinites=True)  # f2product=True\n        h2 =  H2.fover(_h**2)\n    return h2\n\n\ndef _map0(_f, x, y, x0=_0_0, y0=_0_0, *unused):\n    return _f(x - x0), _f(y - y0)\n\n\ndef norm2(x, y, *xy0):\n    '''Normalize a 2-dimensional vector.\n\n       @arg x: X component (C{scalar}, an L{Fsum} or L{Fsum2Tuple}).\n       @arg y: Y component (C{scalar}, an L{Fsum} or L{Fsum2Tuple}).\n       @arg xy0: Optional reference C{(x0, y0)} (each C{scalar}, an\n                 L{Fsum} or L{Fsum2Tuple}).\n\n       @return: 2-Tuple C{(x, y)}, normalized.\n\n       @raise ValueError: Invalid B{C{x}} or B{C{y}}.\n    '''\n    try:\n        h    =  None\n        x, y = _map0(float, x, y, *xy0)\n        h    =  hypot(x, y)\n        if h:\n            t = (x / h), (y / h)\n        else:\n            t = (_copysign_0_0(x),  # pass?\n                 _copysign_0_0(y))\n    except Exception as X:\n        raise _xError(X, x=x, y=y, h=h)\n    return t\n\n\ndef norm_(*xs):\n    '''Normalize the components of an n-dimensional vector.\n\n       @arg xs: Components (each C{scalar}, an L{Fsum} or\n                L{Fsum2Tuple}), all positional.\n\n       @return: Yield each component, normalized.\n\n       @raise ValueError: Invalid or insufficent B{C{xs}}\n              or zero norm.\n    '''\n    try:\n        i  = h = None\n        x  = xs\n        h  = hypot_(*xs)\n        _h = (_1_0 / h) if h else _0_0\n        for i, x in enumerate(xs):\n            yield x * _h\n    except Exception as X:\n        raise _xsError(X, xs, i, x, h=h)\n\n\ndef polar2(x, y, *xy0):\n    '''Return 2-tuple C{(length, angle)} with C{angle} in radians M{[0..+PI2)}.\n\n       @arg x: X (C{scalar}, an L{Fsum} or L{Fsum2Tuple}).\n       @arg y: Y (C{scalar}, an L{Fsum} or L{Fsum2Tuple}).\n       @arg xy0: Optional reference C{(x0, y0)} (each C{scalar}, an L{Fsum} or L{Fsum2Tuple}).\n\n       @note: Use C{polar(B{y}, B{x}, *B{yx0})} to get the angle as C{bearing} from North.\n    '''\n    x, y = _map0(float, x, y, *xy0)\n    return hypot(x, y), _MODS.utily.atan2p(y, x)\n\n\ndef polar2d(x, y, *xy0):\n    '''Return 2-tuple C{(length, angle)} with C{angle} in degrees M{[0..+360)}.\n\n       @arg x: X (C{scalar}, an L{Fsum} or L{Fsum2Tuple}).\n       @arg y: Y (C{scalar}, an L{Fsum} or L{Fsum2Tuple}).\n       @arg xy0: Optional reference C{(x0, y0)} (each C{scalar}, an L{Fsum} or L{Fsum2Tuple}).\n\n       @note: Use C{polar2d(B{y}, B{x}, *B{yx0})} to get the angle as C{bearing} from North.\n    '''\n    x, y = _map0(float, x, y, *xy0)\n    return hypot(x, y), _MODS.utily.atan2b(y, x)\n\n\ndef _powers(x, n):\n    '''(INTERNAL) Yield C{x**i for i=1..n}.\n    '''\n    p = 1  # type(p) == type(x)\n    for _ in range(n):\n        p *= x\n        yield p\n\n\ndef _root(x, p, where):\n    '''(INTERNAL) Raise C{x} to power C{0 <= p < 1}.\n    '''\n    try:\n        if x > 0:\n            r = Fsum(f2product=True, nonfinites=True)(x)\n            return r.fpow(p).as_iscalar\n        elif x < 0:\n            raise ValueError(_negative_)\n    except Exception as X:\n        raise _xError(X, unstr(where, x))\n    return _0_0 if p else _1_0  # x == 0\n\n\ndef sqrt0(x, Error=None):\n    '''Return the square root C{sqrt(B{x})} iff C{B{x} > }L{EPS02},\n       preserving C{type(B{x})}.\n\n       @arg x: Value (C{scalar}, an L{Fsum} or L{Fsum2Tuple}).\n       @kwarg Error: Error to raise for negative B{C{x}}.\n\n       @return: Square root (C{float} or L{Fsum}) or C{0.0}.\n\n       @raise TypeeError: Invalid B{C{x}}.\n\n       @note: Any C{B{x} < }L{EPS02} I{including} C{B{x} < 0}\n              returns C{0.0}.\n    '''\n    if Error and x < 0:\n        raise Error(unstr(sqrt0, x))\n    return _root(x, _0_5, sqrt0) if x > EPS02 else (\n                            _0_0 if x < EPS02 else EPS0)\n\n\ndef sqrt3(x):\n    '''Return the square root, I{cubed} M{sqrt(x)**3} or M{sqrt(x**3)},\n       preserving C{type(B{x})}.\n\n       @arg x: Value (C{scalar}, an L{Fsum} or L{Fsum2Tuple}).\n\n       @return: Square root I{cubed} (C{float} or L{Fsum}).\n\n       @raise TypeeError: Invalid B{C{x}}.\n\n       @raise ValueError: Negative B{C{x}}.\n\n       @see: Functions L{cbrt} and L{cbrt2}.\n    '''\n    return _root(x, _1_5, sqrt3)\n\n\ndef sqrt_a(h, b):\n    '''Compute the C{I{a}} side of a right-angled triangle from\n       C{sqrt(B{h}**2 - B{b}**2)}.\n\n       @arg h: Hypotenuse or outer annulus radius (C{scalar}).\n       @arg b: Triangle side or inner annulus radius (C{scalar}).\n\n       @return: C{copysign(I{a}, B{h})} or C{unsigned 0.0} (C{float}).\n\n       @raise TypeError: Non-scalar B{C{h}} or B{C{b}}.\n\n       @raise ValueError: If C{abs(B{h}) < abs(B{b})}.\n\n       @see: Inner tangent chord B{I{d}} of an U{annulus\n             <https://WikiPedia.org/wiki/Annulus_(mathematics)>}\n             and function U{annulus_area<https://People.SC.FSU.edu/\n             ~jburkardt/py_src/geometry/geometry.py>}.\n    '''\n    try:\n        if not (_isHeight(h) and _isRadius(b)):\n            raise TypeError(_not_scalar_)\n        c = fabs(h)\n        if c > EPS0:\n            s = _1_0 - (b / c)**2\n            if s < 0:\n                raise ValueError(_h_lt_b_)\n            a = (sqrt(s) * c) if 0 < s < 1 else (c if s else _0_0)\n        else:  # PYCHOK no cover\n            b = fabs(b)\n            d = c - b\n            if d < 0:\n                raise ValueError(_h_lt_b_)\n            d *= c + b\n            a  = sqrt(d) if d else _0_0\n    except Exception as x:\n        raise _xError(x, h=h, b=b)\n    return copysign0(a, h)\n\n\ndef zcrt(x):\n    '''Return the 6-th, I{zenzi-cubic} root, M{x**(1 / 6)},\n       preserving C{type(B{x})}.\n\n       @arg x: Value (C{scalar}, an L{Fsum} or L{Fsum2Tuple}).\n\n       @return: I{Zenzi-cubic} root (C{float} or L{Fsum}).\n\n       @see: Functions L{bqrt} and L{zqrt}.\n\n       @raise TypeeError: Invalid B{C{x}}.\n\n       @raise ValueError: Negative B{C{x}}.\n    '''\n    return _root(x, _1_6th, zcrt)\n\n\ndef zqrt(x):\n    '''Return the 8-th, I{zenzi-quartic} or I{squared-quartic} root,\n       M{x**(1 / 8)}, preserving C{type(B{x})}.\n\n       @arg x: Value (C{scalar}, an L{Fsum} or L{Fsum2Tuple}).\n\n       @return: I{Zenzi-quartic} root (C{float} or L{Fsum}).\n\n       @see: Functions L{bqrt} and L{zcrt}.\n\n       @raise TypeeError: Invalid B{C{x}}.\n\n       @raise ValueError: Negative B{C{x}}.\n    '''\n    return _root(x, _0_125, zqrt)\n\n# **) MIT License\n#\n# Copyright (C) 2016-2026 -- mrJean1 at Gmail -- All Rights Reserved.\n#\n# Permission is hereby granted, free of charge, to any person obtaining a\n# copy of this software and associated documentation files (the \"Software\"),\n# to deal in the Software without restriction, including without limitation\n# the rights to use, copy, modify, merge, publish, distribute, sublicense,\n# and/or sell copies of the Software, and to permit persons to whom the\n# Software is furnished to do so, subject to the following conditions:\n#\n# The above copyright notice and this permission notice shall be included\n# in all copies or substantial portions of the Software.\n#\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL\n# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR\n# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\n# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n# OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "pygeodesy/formy.py",
    "content": "\n# -*- coding: utf-8 -*-\n\nu'''Formulary of basic geodesy functions and approximations.\n'''\n# make sure int/int division yields float quotient, see .basics\nfrom __future__ import division as _; del _  # noqa: E702 ;\n\nfrom pygeodesy.basics import _copysign, _isin  # _args_kwds_count2\n# from pygeodesy.cartesianBase import CartesianBase  # _MODS\nfrom pygeodesy.constants import EPS, EPS0, EPS1, PI, PI2, PI3, PI_2, R_M, \\\n                               _0_0s, float0_, isnon0, remainder, _umod_PI2, \\\n                               _0_0, _0_125, _0_25, _0_5, _1_0, _2_0, _4_0, \\\n                               _90_0, _180_0, _360_0\nfrom pygeodesy.datums import Datum, Ellipsoid, _ellipsoidal_datum, \\\n                            _mean_radius, _spherical_datum, _WGS84,  _EWGS84\n# from pygeodesy.ellipsoids import Ellipsoid, _EWGS84  # from .datums\nfrom pygeodesy.errors import IntersectionError, LimitError, limiterrors, \\\n                            _TypeError, _ValueError, _xattr, _xError, \\\n                            _xcallable, _xkwds, _xkwds_pop2\nfrom pygeodesy.fmath import euclid, fdot_, fprod, hypot, hypot2, sqrt0\nfrom pygeodesy.fsums import fsumf_,  Fmt, unstr\n# from pygeodesy.internals import typename  # from .named\nfrom pygeodesy.interns import _delta_, _distant_, _inside_, _SPACE_, _too_\nfrom pygeodesy.lazily import _ALL_LAZY, _ALL_MODS as _MODS\nfrom pygeodesy.named import _name__, _name2__, _NamedTuple, _xnamed, \\\n                             typename\nfrom pygeodesy.namedTuples import Bearing2Tuple, Distance4Tuple, LatLon2Tuple, \\\n                                  Intersection3Tuple, PhiLam2Tuple\n# from pygeodesy.streprs import Fmt, unstr  # from .fsums\n# from pygeodesy.triaxials.triaxial5 import _hartzell3  # _MODS\nfrom pygeodesy.units import _isDegrees, _isHeight, _isRadius, Bearing, Degrees_, \\\n                             Distance, Distance_, Height, Lamd, Lat, Lon, Meter_, \\\n                             Phid, Radians, Radians_, Radius, Radius_, Scalar, _100km\nfrom pygeodesy.utily import acos1, asin1, atan2, atan2b, degrees2m, hav, _loneg, \\\n                            m2degrees, tan_2, sincos2, sincos2_, _Wrap\n# from pygeodesy.vector3d import _otherV3d  # _MODS\n# from pygeodesy.vector3dBase import _xyz_y_z3  # _MODS\n# from pygeodesy import ellipsoidalExact, ellipsoidalKarney, vector3d, \\\n#                       sphericalNvector, sphericalTrigonometry  # _MODS\n\nfrom contextlib import contextmanager\nfrom math import atan, cos, degrees, fabs, radians, sin, sqrt  # pow\n\n__all__ = _ALL_LAZY.formy\n__version__ = '26.01.06'\n\n_RADIANS2 =  radians(_1_0)**2  # degree to radians-squared\n_ratio_   = 'ratio'\n_xline_   = 'xline'\n\n\ndef angle2chord(rad, radius=R_M):\n    '''Get the chord length of a (central) angle or I{angular} distance.\n\n       @arg rad: Central angle (C{radians}).\n       @kwarg radius: Mean earth radius (C{meter}, conventionally), datum (L{Datum}) or ellipsoid\n                      (L{Ellipsoid}, L{Ellipsoid2} or L{a_f2Tuple}) to use or C{None}.\n\n       @return: Chord length (C{meter}, same units as B{C{radius}} or if C{B{radius} is None}, C{radians}).\n\n       @see: Function L{chord2angle}, method L{intermediateChordTo<sphericalNvector.LatLon.intermediateChordTo>} and\n             U{great-circle-distance<https://WikiPedia.org/wiki/Great-circle_distance#Relation_between_central_angle_and_chord_length>}.\n    '''\n    d = _isDegrees(rad, iscalar=False)\n    r =  sin((radians(rad) if d else rad) / _2_0) * _2_0\n    return (degrees(r) if d else r) if radius is None else (_mean_radius(radius) * r)\n\n\ndef _anti2(a, b, n_2, n, n2):\n    '''(INTERNAL) Helper for C{antipode} and C{antipode_}.\n    '''\n    r = remainder(a, n) if fabs(a) > n_2 else a\n    if r == a:\n        r = -r\n        b += n\n    if fabs(b) > n:\n        b = remainder(b, n2)\n    return float0_(r, b)\n\n\ndef antipode(lat, lon, **name):\n    '''Return the antipode, the point diametrically opposite to a given\n       point in C{degrees}.\n\n       @arg lat: Latitude (C{degrees}).\n       @arg lon: Longitude (C{degrees}).\n       @kwarg name: Optional C{B{name}=NN} (C{str}).\n\n       @return: A L{LatLon2Tuple}C{(lat, lon)}.\n\n       @see: Functions L{antipode_} and L{normal} and U{Geosphere\n             <https://CRAN.R-Project.org/web/packages/geosphere/geosphere.pdf>}.\n    '''\n    return LatLon2Tuple(*_anti2(lat, lon, _90_0, _180_0, _360_0), **name)\n\n\ndef antipode_(phi, lam, **name):\n    '''Return the antipode, the point diametrically opposite to a given\n       point in C{radians}.\n\n       @arg phi: Latitude (C{radians}).\n       @arg lam: Longitude (C{radians}).\n       @kwarg name: Optional C{B{name}=NN} (C{str}).\n\n       @return: A L{PhiLam2Tuple}C{(phi, lam)}.\n\n       @see: Functions L{antipode} and L{normal_} and U{Geosphere\n             <https://CRAN.R-Project.org/web/packages/geosphere/geosphere.pdf>}.\n    '''\n    return PhiLam2Tuple(*_anti2(phi, lam, PI_2, PI, PI2), **name)\n\n\ndef bearing(lat1, lon1, lat2, lon2, **final_wrap):\n    '''Compute the initial or final bearing (forward or reverse azimuth) between two\n       (spherical) points.\n\n       @arg lat1: Start latitude (C{degrees}).\n       @arg lon1: Start longitude (C{degrees}).\n       @arg lat2: End latitude (C{degrees}).\n       @arg lon2: End longitude (C{degrees}).\n       @kwarg final_wrap: Optional keyword arguments for function L{pygeodesy.bearing_}.\n\n       @return: Initial or final bearing (compass C{degrees360}) or zero if both points\n                coincide.\n    '''\n    r = bearing_(Phid(lat1=lat1), Lamd(lon1=lon1),\n                 Phid(lat2=lat2), Lamd(lon2=lon2), **final_wrap)\n    return degrees(r)\n\n\ndef bearing_(phi1, lam1, phi2, lam2, final=False, wrap=False):\n    '''Compute the initial or final bearing (forward or reverse azimuth) between two\n       (spherical) points.\n\n       @arg phi1: Start latitude (C{radians}).\n       @arg lam1: Start longitude (C{radians}).\n       @arg phi2: End latitude (C{radians}).\n       @arg lam2: End longitude (C{radians}).\n       @kwarg final: If C{True}, return the final, otherwise the initial bearing (C{bool}).\n       @kwarg wrap: If C{True}, wrap or I{normalize} and unroll B{C{phi2}} and B{C{lam2}}\n                    (C{bool}).\n\n       @return: Initial or final bearing (compass C{radiansPI2}) or zero if both points\n                coincide.\n\n       @see: U{Bearing<https://www.Movable-Type.co.UK/scripts/latlong.html>}, U{Course\n             between two points<https://www.EdWilliams.org/avform147.htm#Crs>} and\n             U{Bearing Between Two Points<https://web.Archive.org/web/20020630205931/\n             https://MathForum.org/library/drmath/view/55417.html>}.\n    '''\n    db, phi2, lam2 = _Wrap.philam3(lam1, phi2, lam2, wrap)\n    if final:  # swap plus PI\n        phi1, lam1, phi2, lam2, db = phi2, lam2, phi1, lam1, -db\n        r = PI3\n    else:\n        r = PI2\n    sa1, ca1, sa2, ca2, sdb, cdb = sincos2_(phi1, phi2, db)\n\n    x = ca1 * sa2 - sa1 * ca2 * cdb\n    y = sdb * ca2\n    return _umod_PI2(atan2(y, x) + r)  # .utily.wrapPI2\n\n\ndef _bearingTo2(p1, p2, wrap=False):  # for points.ispolar, sphericalTrigonometry.areaOf\n    '''(INTERNAL) Compute initial and final bearing.\n    '''\n    try:  # for LatLon_ and ellipsoidal LatLon\n        return p1.bearingTo2(p2, wrap=wrap)\n    except AttributeError:\n        pass\n    # XXX spherical version, OK for ellipsoidal ispolar?\n    t = p1.philam + p2.philam\n    i = bearing_(*t, final=False, wrap=wrap)\n    f = bearing_(*t, final=True,  wrap=wrap)\n    return Bearing2Tuple(degrees(i), degrees(f),\n                         name__=_bearingTo2)\n\n\ndef chord2angle(chord, radius=R_M):\n    '''Get the (central) angle from a chord length or distance.\n\n       @arg chord: Length or distance (C{meter}, same units as B{C{radius}}).\n       @kwarg radius: Mean earth radius (C{meter}, conventionally), datum (L{Datum}) or\n                      ellipsoid (L{Ellipsoid}, L{Ellipsoid2} or L{a_f2Tuple}) to use.\n\n       @return: Angle (C{radians} with sign of B{C{chord}}) or C{0} if C{B{radius}=0}.\n\n       @note: The angle will exceed C{PI} if C{B{chord} > B{radius} * 2}.\n\n       @see: Function L{angle2chord}.\n    '''\n    m = _mean_radius(radius)\n    r =  fabs(chord / (m * _2_0)) if m > 0 else _0_0\n    if r:\n        i = int(r)\n        if i > 0:\n            r -= i\n            i *= PI\n        r = (asin1(r) + i) * _2_0\n    return _copysign(r, chord)\n\n\ndef compassAngle(lat1, lon1, lat2, lon2, adjust=True, wrap=False):\n    '''Return the angle from North for the direction vector M{(lon2 - lon1,\n       lat2 - lat1)} between two points.\n\n       Suitable only for short, not near-polar vectors up to a few hundred\n       Km or Miles.  Use function L{pygeodesy.bearing} for longer vectors.\n\n       @arg lat1: From latitude (C{degrees}).\n       @arg lon1: From longitude (C{degrees}).\n       @arg lat2: To latitude (C{degrees}).\n       @arg lon2: To longitude (C{degrees}).\n       @kwarg adjust: Adjust the longitudinal delta by the cosine of the mean\n                      latitude (C{bool}).\n       @kwarg wrap: If C{True}, wrap or I{normalize} and unroll B{C{lat2}} and\n                    B{C{lon2}} (C{bool}).\n\n       @return: Compass angle from North (C{degrees360}).\n\n       @note: Courtesy of Martin Schultz.\n\n       @see: U{Local, flat earth approximation\n             <https://www.EdWilliams.org/avform.htm#flat>}.\n    '''\n    d_lon, lat2, lon2 = _Wrap.latlon3(lon1, lat2, lon2, wrap)\n    if adjust:  # scale delta lon\n        d_lon *= _scale_deg(lat1, lat2)\n    return atan2b(d_lon, lat2 - lat1)\n\n\ndef cosineLaw(lat1, lon1, lat2, lon2, corr=0, earth=None, wrap=False,\n                                              datum=_WGS84, radius=R_M):\n    '''Compute the distance between two points using the U{Law of Cosines\n       <https://www.Movable-Type.co.UK/scripts/latlong.html#cosine-law>}\n       formula, optionally corrected.\n\n       @arg lat1: Start latitude (C{degrees}).\n       @arg lon1: Start longitude (C{degrees}).\n       @arg lat2: End latitude (C{degrees}).\n       @arg lon2: End longitude (C{degrees}).\n       @kwarg corr: Use C{B{corr}=2} to apply the U{Forsythe-Andoyer-Lambert\n                    <https://www2.UNB.CA/gge/Pubs/TR77.pdf>}, C{B{corr}=1} for the\n                    U{Andoyer-Lambert<https://Books.Google.com/books?id=x2UiAQAAIAAJ>}\n                    corrected (ellipsoidal) or keep C{B{corr}=0} for the uncorrected\n                    (spherical) C{Law of Cosines} formula (C{int}).\n       @kwarg earth: Mean earth radius (C{meter}) or datum (L{Datum}) or ellipsoid\n                     (L{Ellipsoid}, L{Ellipsoid2} or L{a_f2Tuple}) to use.\n       @kwarg wrap: If C{True}, wrap or I{normalize} and B{C{lat2}} and B{C{lon2}}\n                    (C{bool}).\n       @kwarg datum: Default ellipsiodal B{C{earth}} (and for backward compatibility).\n       @kwarg radius: Default spherical B{C{earth}} (and for backward compatibility).\n\n       @return: Distance (C{meter}, same units as B{C{radius}} or the datum's or\n                ellipsoid axes).\n\n       @raise TypeError: Invalid B{C{earth}}, B{C{datum}} or B{C{radius}}.\n\n       @raise ValueError: Invalid B{C{corr}}.\n\n       @see: Functions L{cosineLaw_}, L{equirectangular}, L{euclidean}, L{flatLocal} /\n             L{hubeny}, L{flatPolar}, L{haversine}, L{thomas} and L{vincentys} and\n             method L{Ellipsoid.distance2}.\n\n       @note: See note at function L{vincentys_}.\n    '''\n    return _dE(cosineLaw_, earth or datum,  wrap, lat1, lon1, lat2, lon2, corr=corr) if corr else \\\n           _dS(cosineLaw_, earth or radius, wrap, lat1, lon1, lat2, lon2)\n\n\ndef cosineLaw_(phi2, phi1, lam21, corr=0, earth=None, datum=_WGS84):\n    '''Compute the I{angular} distance between two points using the U{Law of Cosines\n       <https://www.Movable-Type.co.UK/scripts/latlong.html#cosine-law>} formula,\n       optionally corrected.\n\n       @arg phi2: End latitude (C{radians}).\n       @arg phi1: Start latitude (C{radians}).\n       @arg lam21: Longitudinal delta, M{end-start} (C{radians}).\n       @kwarg corr: Use C{B{corr}=2} to apply the U{Forsythe-Andoyer-Lambert\n                    <https://www2.UNB.CA/gge/Pubs/TR77.pdf>}, C{B{corr}=1} for the\n                    U{Andoyer-Lambert<https://Books.Google.com/books?id=x2UiAQAAIAAJ>}\n                    corrected (ellipsoidal) or keep C{B{corr}=0} for the uncorrected\n                    (spherical) C{Law of Cosines} formula (C{int}).\n       @kwarg earth: Mean earth radius (C{meter}) or datum (L{Datum}) or ellipsoid\n                     (L{Ellipsoid}, L{Ellipsoid2} or L{a_f2Tuple}) to use.\n       @kwarg datum: Default ellipsoidal B{C{earth}} (and for backward compatibility).\n\n       @return: Angular distance (C{radians}).\n\n       @raise TypeError: Invalid B{C{earth}} or B{C{datum}}.\n\n       @raise ValueError: Invalid B{C{corr}}.\n\n       @see: Functions L{cosineLaw}, L{euclidean_}, L{flatLocal_} / L{hubeny_},\n             L{flatPolar_}, L{haversine_}, L{thomas_} and L{vincentys_} and U{Geodesy-PHP\n             <https://GitHub.com/jtejido/geodesy-php/blob/master/src/Geodesy/Distance/\n             AndoyerLambert.php>}.\n    '''\n    s2, c2, s1, c1, r, c21 = _sincosa6(phi2, phi1, lam21)\n    if corr and isnon0(c1) and isnon0(c2):\n        E = _ellipsoidal(earth or datum, cosineLaw_)\n        f = _0_25 * E.f\n        if f:  # ellipsoidal\n            if corr == 1:  # Andoyer-Lambert\n                r2 = atan2(E.b_a * s2, c2)\n                r1 = atan2(E.b_a * s1, c1)\n                s2, c2, s1, c1 = sincos2_(r2, r1)\n                r = acos1(s1 * s2 + c1 * c2 * c21)\n                if r:\n                    sr, _, sr_2, cr_2 = sincos2_(r, r * _0_5)\n                    if isnon0(sr_2) and isnon0(cr_2):\n                        s  = (sr + r) * ((s1 - s2) / sr_2)**2\n                        c  = (sr - r) * ((s1 + s2) / cr_2)**2\n                        r += (c  - s) * _0_5 * f\n\n            elif corr == 2:  # Forsythe-Andoyer-Lambert\n                sr, cr, s2r, _ = sincos2_(r, r * 2)\n                if isnon0(sr) and fabs(cr) < EPS1:\n                    s = (s1 + s2)**2 / (_1_0 + cr)\n                    t = (s1 - s2)**2 / (_1_0 - cr)\n                    x = s + t\n                    y = s - t\n\n                    s =  8 * r**2 / sr\n                    a = 64 * r  + s * cr * 2  # 16 * r**2 / tan(r)\n                    d = 48 * sr + s  # 8 * r**2 / tan(r)\n                    b = -2 * d\n                    e = 30 * s2r\n\n                    c  = fdot_(30, r,  cr, s,  e, _0_5)  # 8 * r**2 / tan(r)\n                    t  = fdot_( a, x,  b,  y,  e,  y**2,  -c, x**2,  d, x * y) * _0_125\n                    r += fdot_(-r, x,  sr, y * 3,  t, f) * f\n            else:\n                raise _ValueError(corr=corr)\n    return r\n\n\ndef _d3(wrap, lat1, lon1, lat2, lon2):\n    '''(INTERNAL) Helper for _dE, _dS, ....\n    '''\n    if wrap:\n        d_lon, lat2, _ = _Wrap.latlon3(lon1, lat2, lon2, wrap)\n        return radians(lat2), Phid(lat1=lat1), radians(d_lon)\n    else:  # for backward compaibility\n        return Phid(lat2=lat2), Phid(lat1=lat1), radians(lon2 - lon1)\n\n\ndef _dE(fun_, earth, wrap, *lls, **corr):\n    '''(INTERNAL) Helper for ellipsoidal distances.\n    '''\n    E = _ellipsoidal(earth, fun_)\n    r =  fun_(*_d3(wrap, *lls), datum=E, **corr)\n    return r * E.a\n\n\ndef _dS(fun_, radius, wrap, *lls, **adjust):\n    '''(INTERNAL) Helper for spherical distances.\n    '''\n    r = fun_(*_d3(wrap, *lls), **adjust)\n    if radius is not R_M:\n        try:  # datum?\n            radius = radius.ellipsoid.R1\n        except AttributeError:\n            pass  # scalar?\n        lat1, _, lat2, _ = lls\n        radius = _mean_radius(radius, lat1, lat2)\n    return r * radius\n\n\ndef _ellipsoidal(earth, where):\n    '''(INTERNAL) Helper for distances.\n    '''\n    return _EWGS84 if _isin(earth, _EWGS84, _WGS84) else (\n             earth if  isinstance(earth, Ellipsoid) else\n            (earth if  isinstance(earth, Datum)     else  # PYCHOK indent\n            _ellipsoidal_datum(earth, name__=where)).ellipsoid)\n\n\ndef equirectangular(lat1, lon1, lat2, lon2, radius=R_M, **adjust_limit_wrap):\n    '''Approximate the distance between two points using the U{Equirectangular Approximation\n       / Projection<https://www.Movable-Type.co.UK/scripts/latlong.html#equirectangular>}.\n\n       @arg lat1: Start latitude (C{degrees}).\n       @arg lon1: Start longitude (C{degrees}).\n       @arg lat2: End latitude (C{degrees}).\n       @arg lon2: End longitude (C{degrees}).\n       @kwarg radius: Mean earth radius (C{meter}), datum (L{Datum}) or ellipsoid\n                      (L{Ellipsoid}, L{Ellipsoid2} or L{a_f2Tuple}).\n       @kwarg adjust_limit_wrap: Optionally, keyword arguments for function L{equirectangular4}.\n\n       @return: Distance (C{meter}, same units as B{C{radius}} or the datum's\n                ellipsoid axes).\n\n       @raise TypeError: Invalid B{C{radius}}.\n\n       @see: Function L{equirectangular4} for more details, the available B{C{options}},\n             errors, restrictions and other, approximate or accurate distance functions.\n    '''\n    r = _mean_radius(radius, lat1, lat2)\n    t =  equirectangular4(Lat(lat1=lat1), Lon(lon1=lon1),\n                          Lat(lat2=lat2), Lon(lon2=lon2),\n                        **adjust_limit_wrap)  # PYCHOK 4 vs 2-3\n    return degrees2m(sqrt(t.distance2), radius=r)\n\n\ndef _equirectangular(lat1, lon1, lat2, lon2, **adjust_limit_wrap):\n    '''(INTERNAL) Helper for classes L{frechet._FrechetMeterRadians} and\n       L{hausdorff._HausdorffMeterRedians}.\n    '''\n    t = equirectangular4(lat1, lon1, lat2, lon2, **adjust_limit_wrap)\n    return t.distance2 * _RADIANS2\n\n\ndef equirectangular4(lat1, lon1, lat2, lon2, adjust=True, limit=45, wrap=False):\n    '''Approximate the distance between two points using the U{Equirectangular Approximation\n       / Projection<https://www.Movable-Type.co.UK/scripts/latlong.html#equirectangular>}.\n\n       This approximation is valid for short distance of several hundred Km or Miles, see\n       the B{C{limit}} keyword argument and L{LimitError}.\n\n       @arg lat1: Start latitude (C{degrees}).\n       @arg lon1: Start longitude (C{degrees}).\n       @arg lat2: End latitude (C{degrees}).\n       @arg lon2: End longitude (C{degrees}).\n       @kwarg adjust: Adjust the wrapped, unrolled longitudinal delta by the cosine of the\n                      mean latitude (C{bool}).\n       @kwarg limit: Optional limit for lat- and longitudinal deltas (C{degrees}) or C{None}\n                     or C{0} for unlimited.\n       @kwarg wrap: If C{True}, wrap or I{normalize} and unroll B{C{lat2}} and B{C{lon2}}\n                    (C{bool}).\n\n       @return: A L{Distance4Tuple}C{(distance2, delta_lat, delta_lon, unroll_lon2)} with\n                C{distance2} in C{degrees squared}.\n\n       @raise LimitError: The lat- or longitudinal delta exceeds the B{C{-limit..limit}}\n                          range and L{limiterrors<pygeodesy.limiterrors>} is C{True}.\n\n       @see: U{Local, flat earth approximation<https://www.EdWilliams.org/avform.htm#flat>},\n             functions L{equirectangular}, L{cosineLaw}, L{euclidean}, L{flatLocal} /\n             L{hubeny}, L{flatPolar}, L{haversine}, L{thomas} and L{vincentys} and methods\n             L{Ellipsoid.distance2}, C{LatLon.distanceTo*} and C{LatLon.equirectangularTo}.\n    '''\n    if wrap:\n        d_lon, lat2, ulon2 = _Wrap.latlon3(lon1, lat2, lon2, wrap)\n    else:\n        d_lon,       ulon2 = (lon2 - lon1), lon2\n    d_lat = lat2 - lat1\n\n    if limit and limit > 0 and limiterrors():\n        d = max(fabs(d_lat), fabs(d_lon))\n        if d > limit:\n            t = _SPACE_(_delta_, Fmt.PAREN_g(d), Fmt.exceeds_limit(limit))\n            s =  unstr(equirectangular4, lat1, lon1, lat2, lon2,\n                                         limit=limit, wrap=wrap)\n            raise LimitError(s, txt=t)\n\n    if adjust:  # scale delta lon\n        d_lon *= _scale_deg(lat1, lat2)\n\n    d2 = hypot2(d_lat, d_lon)  # degrees squared!\n    return Distance4Tuple(d2, d_lat, d_lon, ulon2 - lon2)\n\n\ndef euclidean(lat1, lon1, lat2, lon2, radius=R_M, adjust=True, wrap=False):\n    '''Approximate the C{Euclidean} distance between two (spherical) points.\n\n       @arg lat1: Start latitude (C{degrees}).\n       @arg lon1: Start longitude (C{degrees}).\n       @arg lat2: End latitude (C{degrees}).\n       @arg lon2: End longitude (C{degrees}).\n       @kwarg radius: Mean earth radius (C{meter}), datum (L{Datum}) or ellipsoid\n                      (L{Ellipsoid}, L{Ellipsoid2} or L{a_f2Tuple}) to use.\n       @kwarg adjust: Adjust the longitudinal delta by the cosine of the mean\n                      latitude (C{bool}).\n       @kwarg wrap: If C{True}, wrap or I{normalize} and unroll B{C{lat2}} and\n                    B{C{lon2}} (C{bool}).\n\n       @return: Distance (C{meter}, same units as B{C{radius}} or the ellipsoid\n                or datum axes).\n\n       @raise TypeError: Invalid B{C{radius}}.\n\n       @see: U{Distance between two (spherical) points\n             <https://www.EdWilliams.org/avform.htm#Dist>}, functions L{euclid},\n             L{euclidean_}, L{cosineLaw}, L{equirectangular}, L{flatLocal} /\n             L{hubeny}, L{flatPolar}, L{haversine}, L{thomas} and L{vincentys}\n             and methods L{Ellipsoid.distance2}, C{LatLon.distanceTo*} and\n             C{LatLon.equirectangularTo}.\n    '''\n    return _dS(euclidean_, radius, wrap, lat1, lon1, lat2, lon2, adjust=adjust)\n\n\ndef euclidean_(phi2, phi1, lam21, adjust=True):\n    '''Approximate the I{angular} C{Euclidean} distance between two (spherical) points.\n\n       @arg phi2: End latitude (C{radians}).\n       @arg phi1: Start latitude (C{radians}).\n       @arg lam21: Longitudinal delta, M{end-start} (C{radians}).\n       @kwarg adjust: Adjust the longitudinal delta by the cosine of the mean\n                      latitude (C{bool}).\n\n       @return: Angular distance (C{radians}).\n\n       @see: Functions L{euclid}, L{euclidean}, L{cosineLaw_}, L{flatLocal_} /\n             L{hubeny_}, L{flatPolar_}, L{haversine_}, L{thomas_} and L{vincentys_}.\n    '''\n    if adjust:\n        lam21 *= _scale_rad(phi2, phi1)\n    return euclid(phi2 - phi1, lam21)\n\n\ndef excessAbc_(A, b, c):\n    '''Compute the I{spherical excess} C{E} of a (spherical) triangle from two sides\n       and the included (small) angle.\n\n       @arg A: An interior triangle angle (C{radians}).\n       @arg b: Frist adjacent triangle side (C{radians}).\n       @arg c: Second adjacent triangle side (C{radians}).\n\n       @return: Spherical excess (C{radians}).\n\n       @raise UnitError: Invalid B{C{A}}, B{C{b}} or B{C{c}}.\n\n       @see: Functions L{excessGirard_}, L{excessLHuilier_} and U{Spherical\n             trigonometry<https://WikiPedia.org/wiki/Spherical_trigonometry>}.\n    '''\n    A = Radians_(A=A)\n    b = Radians_(b=b) * _0_5\n    c = Radians_(c=c) * _0_5\n\n    sA, cA, sb, cb, sc, cc = sincos2_(A, b, c)\n    s = sA * sb * sc\n    c = cA * sb * sc + cc * cb\n    return atan2(s, c) * _2_0\n\n\ndef excessCagnoli_(a, b, c):\n    '''Compute the I{spherical excess} C{E} of a (spherical) triangle using U{Cagnoli's\n       <https://Zenodo.org/record/35392>} (D.34) formula.\n\n       @arg a: First triangle side (C{radians}).\n       @arg b: Second triangle side (C{radians}).\n       @arg c: Third triangle side (C{radians}).\n\n       @return: Spherical excess (C{radians}).\n\n       @raise UnitError: Invalid B{C{a}}, B{C{b}} or B{C{c}}.\n\n       @see: Function L{excessLHuilier_} and U{Spherical trigonometry\n             <https://WikiPedia.org/wiki/Spherical_trigonometry>}.\n    '''\n    a = Radians_(a=a)\n    b = Radians_(b=b)\n    c = Radians_(c=c)\n\n    r = _maprod(cos, a * _0_5, b * _0_5, c * _0_5)\n    if r:\n        s =  fsumf_(a, b, c) * _0_5\n        t = _maprod(sin, s, s - a, s - b, s - c)\n        r =  asin1(sqrt(t) * _0_5 / r) if t > 0 else _0_0\n    return Radians(Cagnoli=r * _2_0)\n\n\ndef excessGirard_(A, B, C):\n    '''Compute the I{spherical excess} C{E} of a (spherical) triangle using U{Girard's\n       <https://MathWorld.Wolfram.com/GirardsSphericalExcessFormula.html>} formula.\n\n       @arg A: First interior triangle angle (C{radians}).\n       @arg B: Second interior triangle angle (C{radians}).\n       @arg C: Third interior triangle angle (C{radians}).\n\n       @return: Spherical excess (C{radians}).\n\n       @raise UnitError: Invalid B{C{A}}, B{C{B}} or B{C{C}}.\n\n       @see: Function L{excessLHuilier_} and U{Spherical trigonometry\n             <https://WikiPedia.org/wiki/Spherical_trigonometry>}.\n    '''\n    r = fsumf_(Radians_(A=A),\n               Radians_(B=B),\n               Radians_(C=C), -PI)\n    return Radians(Girard=r)\n\n\ndef excessLHuilier_(a, b, c):\n    '''Compute the I{spherical excess} C{E} of a (spherical) triangle using U{L'Huilier's\n       <https://MathWorld.Wolfram.com/LHuiliersTheorem.html>}'s Theorem.\n\n       @arg a: First triangle side (C{radians}).\n       @arg b: Second triangle side (C{radians}).\n       @arg c: Third triangle side (C{radians}).\n\n       @return: Spherical excess (C{radians}).\n\n       @raise UnitError: Invalid B{C{a}}, B{C{b}} or B{C{c}}.\n\n       @see: Function L{excessCagnoli_}, L{excessGirard_} and U{Spherical\n             trigonometry<https://WikiPedia.org/wiki/Spherical_trigonometry>}.\n    '''\n    a = Radians_(a=a)\n    b = Radians_(b=b)\n    c = Radians_(c=c)\n\n    s =  fsumf_(a, b, c) * _0_5\n    r = _maprod(tan_2, s, s - a, s - b, s - c)\n    r =  atan(sqrt(r)) if r > 0 else _0_0\n    return Radians(LHuilier=r * _4_0)\n\n\ndef excessKarney(lat1, lon1, lat2, lon2, radius=R_M, wrap=False):\n    '''Compute the surface area of a (spherical) quadrilateral bounded by a\n       segment of a great circle, two meridians and the equator using U{Karney's\n       <https://MathOverflow.net/questions/97711/the-area-of-spherical-polygons>}\n       method.\n\n       @arg lat1: Start latitude (C{degrees}).\n       @arg lon1: Start longitude (C{degrees}).\n       @arg lat2: End latitude (C{degrees}).\n       @arg lon2: End longitude (C{degrees}).\n       @kwarg radius: Mean earth radius (C{meter}), datum (L{Datum}) or ellipsoid\n                      (L{Ellipsoid}, L{Ellipsoid2} or L{a_f2Tuple}) or C{None}.\n       @kwarg wrap: If C{True}, wrap or I{normalize} and unroll B{C{lat2}} and\n                    B{C{lon2}} (C{bool}).\n\n       @return: Surface area, I{signed} (I{square} C{meter} or the same units as\n                B{C{radius}} I{squared}) or the I{spherical excess} (C{radians})\n                if C{B{radius}=0} or C{None}.\n\n       @raise TypeError: Invalid B{C{radius}}.\n\n       @raise UnitError: Invalid B{C{lat2}} or B{C{lat1}}.\n\n       @raise ValueError: Semi-circular longitudinal delta.\n\n       @see: Functions L{excessKarney_} and L{excessQuad}.\n    '''\n    r = excessKarney_(*_d3(wrap, lat1, lon1, lat2, lon2))\n    if radius:\n        r *= _mean_radius(radius, lat1, lat2)**2\n    return r\n\n\ndef excessKarney_(phi2, phi1, lam21):\n    '''Compute the I{spherical excess} C{E} of a (spherical) quadrilateral bounded by\n       a segment of a great circle, two meridians and the equator using U{Karney's\n       <https://MathOverflow.net/questions/97711/the-area-of-spherical-polygons>}\n       method.\n\n       @arg phi2: End latitude (C{radians}).\n       @arg phi1: Start latitude (C{radians}).\n       @arg lam21: Longitudinal delta, M{end-start} (C{radians}).\n\n       @return: Spherical excess, I{signed} (C{radians}).\n\n       @raise ValueError: Semi-circular longitudinal delta B{C{lam21}}.\n\n       @see: Function L{excessKarney} and U{Area of a spherical polygon\n       <https://MathOverflow.net/questions/97711/the-area-of-spherical-polygons>}.\n    '''\n    # from: Veness <https://www.Movable-Type.co.UK/scripts/latlong.html>  Area\n    # method due to Karney: for each edge of the polygon,\n    #\n    #                 tan(Δλ / 2) · (tan(φ1 / 2) + tan(φ2 / 2))\n    #    tan(E / 2) = -----------------------------------------\n    #                           1 +  tan(φ1 / 2) · tan(φ2 / 2)\n    #\n    # where E is the spherical excess of the trapezium obtained by extending\n    # the edge to the equator-circle vector for each edge (see also ***).\n    t2 = tan_2(phi2)\n    t1 = tan_2(phi1)\n    c  = (t1 * t2) + _1_0\n    s  = (t1 + t2) *  tan_2(lam21, lam21=None)\n    return Radians(Karney=atan2(s, c) * _2_0)\n\n\n# ***) Original post no longer available, following is a copy of the main part\n# <http://OSGeo-org.1560.x6.Nabble.com/Area-of-a-spherical-polygon-td3841625.html>\n#\n# The area of a polygon on a (unit) sphere is given by the spherical excess\n#\n#    A = 2 * pi - sum(exterior angles)\n#\n# However this is badly conditioned if the polygon is small.  In this case, use\n#\n#    A = sum(S12{i, i+1}) over the edges of the polygon\n#\n# where S12 is the area of the quadrilateral bounded by an edge of the polygon,\n# two meridians and the equator, i.e. with vertices (phi1, lambda1), (phi2,\n# lambda2), (0, lambda1) and (0, lambda2).  S12 is given by\n#\n#    tan(S12 / 2) = tan(lambda21 / 2) * (tan(phi1 / 2) + tan(phi2 / 2)) /\n#                                       (tan(phi1 / 2) * tan(phi2 / 2) + 1)\n#\n#                 = tan(lambda21 / 2) * tanh((Lamb(phi1) + Lamb(phi2)) / 2)\n#\n# where lambda21 = lambda2 - lambda1 and Lamb(x) is the Lambertian (or the\n# inverse Gudermannian) function\n#\n#    Lambertian(x) = asinh(tan(x)) = atanh(sin(x)) = 2 * atanh(tan(x / 2))\n#\n# Notes: The formula for S12 is exact, except that...\n#      - it is indeterminate if an edge is a semi-circle\n#      - the formula for A applies only if the polygon does not include a pole\n#        (if it does, then add +/- 2 * pi to the result)\n#      - in the limit of small phi and lambda, S12 reduces to the trapezoidal\n#        formula, S12 = (lambda2 - lambda1) * (phi1 + phi2) / 2\n#      - I derived this result from the equation for the area of a spherical\n#        triangle in terms of two edges and the included angle given by, e.g.\n#        U{Todhunter, I. - Spherical Trigonometry (1871), Sec. 103, Eq. (2)\n#        <http://Books.Google.com/books?id=3uBHAAAAIAAJ&pg=PA71>}\n#      - I would be interested to know if this formula for S12 is already known\n#      - Charles Karney\n\n\ndef excessQuad(lat1, lon1, lat2, lon2, radius=R_M, wrap=False):\n    '''Compute the surface area of a (spherical) quadrilateral bounded by a segment\n       of a great circle, two meridians and the equator.\n\n       @arg lat1: Start latitude (C{degrees}).\n       @arg lon1: Start longitude (C{degrees}).\n       @arg lat2: End latitude (C{degrees}).\n       @arg lon2: End longitude (C{degrees}).\n       @kwarg radius: Mean earth radius (C{meter}), datum (L{Datum}) or ellipsoid\n                      (L{Ellipsoid}, L{Ellipsoid2} or L{a_f2Tuple}) or C{None}.\n       @kwarg wrap: If C{True}, wrap or I{normalize} and unroll B{C{lat2}} and\n                    B{C{lon2}} (C{bool}).\n\n       @return: Surface area, I{signed} (I{square} C{meter} or the same units as\n                B{C{radius}} I{squared}) or the I{spherical excess} (C{radians})\n                if C{B{radius}=0} or C{None}.\n\n       @raise TypeError: Invalid B{C{radius}}.\n\n       @raise UnitError: Invalid B{C{lat2}} or B{C{lat1}}.\n\n       @see: Function L{excessQuad_} and L{excessKarney}.\n    '''\n    r = excessQuad_(*_d3(wrap, lat1, lon1, lat2, lon2))\n    if radius:\n        r *= _mean_radius(radius, lat1, lat2)**2\n    return r\n\n\ndef excessQuad_(phi2, phi1, lam21):\n    '''Compute the I{spherical excess} C{E} of a (spherical) quadrilateral bounded\n       by a segment of a great circle, two meridians and the equator.\n\n       @arg phi2: End latitude (C{radians}).\n       @arg phi1: Start latitude (C{radians}).\n       @arg lam21: Longitudinal delta, M{end-start} (C{radians}).\n\n       @return: Spherical excess, I{signed} (C{radians}).\n\n       @see: Function L{excessQuad} and U{Spherical trigonometry\n             <https://WikiPedia.org/wiki/Spherical_trigonometry>}.\n    '''\n    c = cos((phi2 - phi1) * _0_5)\n    s = sin((phi2 + phi1) * _0_5) * tan_2(lam21)\n    return Radians(Quad=atan2(s, c) * _2_0)\n\n\ndef flatLocal(lat1, lon1, lat2, lon2, datum=_WGS84, scaled=True, wrap=False):\n    '''Compute the distance between two (ellipsoidal) points using\n       the U{ellipsoidal Earth to plane projection<https://WikiPedia.org/\n       wiki/Geographical_distance#Ellipsoidal_Earth_projected_to_a_plane>}\n       aka U{Hubeny<https://www.OVG.AT/de/vgi/files/pdf/3781/>} formula.\n\n       @arg lat1: Start latitude (C{degrees}).\n       @arg lon1: Start longitude (C{degrees}).\n       @arg lat2: End latitude (C{degrees}).\n       @arg lon2: End longitude (C{degrees}).\n       @kwarg datum: Datum (L{Datum}) or ellipsoid (L{Ellipsoid}, L{Ellipsoid2}\n                     or L{a_f2Tuple}) to use.\n       @kwarg scaled: Scale prime_vertical by C{cos(B{phi})} (C{bool}), see\n                      method L{pygeodesy.Ellipsoid.roc2_}.\n       @kwarg wrap: If C{True}, wrap or I{normalize} and unroll B{C{lat2}} and\n                    B{C{lon2}} (C{bool}).\n\n       @return: Distance (C{meter}, same units as the B{C{datum}}'s or ellipsoid axes).\n\n       @raise TypeError: Invalid B{C{datum}}.\n\n       @note: The meridional and prime_vertical radii of curvature are taken and\n              scaled at the mean of both latitude.\n\n       @see: Functions L{flatLocal_} or L{hubeny_}, L{cosineLaw}, L{equirectangular},\n             L{euclidean}, L{flatPolar}, L{haversine}, L{thomas} and L{vincentys}, method\n             L{Ellipsoid.distance2} and U{local, flat earth approximation\n             <https://www.EdWilliams.org/avform.htm#flat>}.\n    '''\n    t = _d3(wrap, lat1, lon1, lat2, lon2)\n    E = _ellipsoidal(datum, flatLocal)\n    return E._hubeny_2(*t, scaled=scaled, squared=False) * E.a\n\nhubeny = flatLocal  # PYCHOK for Karl Hubeny\n\n\ndef flatLocal_(phi2, phi1, lam21, datum=_WGS84, scaled=True):\n    '''Compute the I{angular} distance between two (ellipsoidal) points using\n       the U{ellipsoidal Earth to plane projection<https://WikiPedia.org/\n       wiki/Geographical_distance#Ellipsoidal_Earth_projected_to_a_plane>}\n       aka U{Hubeny<https://www.OVG.AT/de/vgi/files/pdf/3781/>} formula.\n\n       @arg phi2: End latitude (C{radians}).\n       @arg phi1: Start latitude (C{radians}).\n       @arg lam21: Longitudinal delta, M{end-start} (C{radians}).\n       @kwarg datum: Datum (L{Datum}) or ellipsoid (L{Ellipsoid}, L{Ellipsoid2}\n                     or L{a_f2Tuple}) to use.\n       @kwarg scaled: Scale prime_vertical by C{cos(B{phi})} (C{bool}), see\n                      method L{pygeodesy.Ellipsoid.roc2_}.\n\n       @return: Angular distance (C{radians}).\n\n       @raise TypeError: Invalid B{C{datum}}.\n\n       @note: The meridional and prime_vertical radii of curvature are taken and\n              scaled I{at the mean of both latitude}.\n\n       @see: Functions L{flatLocal} or L{hubeny}, L{cosineLaw_}, L{flatPolar_},\n             L{euclidean_}, L{haversine_}, L{thomas_} and L{vincentys_} and U{local,\n             flat earth approximation<https://www.EdWilliams.org/avform.htm#flat>}.\n    '''\n    E = _ellipsoidal(datum, flatLocal_)\n    return E._hubeny_2(phi2, phi1, lam21, scaled=scaled, squared=False)\n\nhubeny_ = flatLocal_  # PYCHOK for Karl Hubeny\n\n\ndef flatPolar(lat1, lon1, lat2, lon2, radius=R_M, wrap=False):\n    '''Compute the distance between two (spherical) points using the U{polar\n       coordinate flat-Earth<https://WikiPedia.org/wiki/Geographical_distance\n       #Polar_coordinate_flat-Earth_formula>} formula.\n\n       @arg lat1: Start latitude (C{degrees}).\n       @arg lon1: Start longitude (C{degrees}).\n       @arg lat2: End latitude (C{degrees}).\n       @arg lon2: End longitude (C{degrees}).\n       @kwarg radius: Mean earth radius (C{meter}), datum (L{Datum}) or ellipsoid\n                      (L{Ellipsoid}, L{Ellipsoid2} or L{a_f2Tuple}) to use.\n       @kwarg wrap: If C{True}, wrap or I{normalize} and B{C{lat2}} and B{C{lon2}}\n                    (C{bool}).\n\n       @return: Distance (C{meter}, same units as B{C{radius}} or the datum's or\n                ellipsoid axes).\n\n       @raise TypeError: Invalid B{C{radius}}.\n\n       @see: Functions L{flatPolar_}, L{cosineLaw}, L{flatLocal} / L{hubeny},\n             L{equirectangular}, L{euclidean}, L{haversine}, L{thomas} and L{vincentys}.\n    '''\n    return _dS(flatPolar_, radius, wrap, lat1, lon1, lat2, lon2)\n\n\ndef flatPolar_(phi2, phi1, lam21):\n    '''Compute the I{angular} distance between two (spherical) points using the\n       U{polar coordinate flat-Earth<https://WikiPedia.org/wiki/Geographical_distance\n       #Polar_coordinate_flat-Earth_formula>} formula.\n\n       @arg phi2: End latitude (C{radians}).\n       @arg phi1: Start latitude (C{radians}).\n       @arg lam21: Longitudinal delta, M{end-start} (C{radians}).\n\n       @return: Angular distance (C{radians}).\n\n       @see: Functions L{flatPolar}, L{cosineLaw_}, L{euclidean_}, L{flatLocal_} /\n             L{hubeny_}, L{haversine_}, L{thomas_} and L{vincentys_}.\n    '''\n    a = fabs(PI_2 - phi1)  # co-latitude\n    b = fabs(PI_2 - phi2)  # co-latitude\n    if a < b:\n        a, b = b, a\n    if a < EPS0:\n        a = _0_0\n    elif b > 0:\n        b  = b / a  # /= chokes PyChecker\n        c  = b * cos(lam21) * _2_0\n        c  = fsumf_(_1_0, b**2, -fabs(c))\n        a *= sqrt0(c)\n    return a\n\n\ndef _hartzell(pov, los, earth, **kwds):\n    '''(INTERNAL) Helper for C{CartesianBase.hartzell} and C{LatLonBase.hartzell}.\n    '''\n    if earth is None:\n        earth =  pov.datum\n    else:\n        earth = _spherical_datum(earth, name__=hartzell)\n        pov   =  pov.toDatum(earth)\n    h = pov.height\n    if h < 0:  # EPS0\n        t = _SPACE_(Fmt.PARENSPACED(height=h), _inside_)\n        raise IntersectionError(pov=pov, earth=earth, txt=t)\n    return hartzell(pov, los=los, earth=earth, **kwds) if h > 0 else pov  # EPS0\n\n\ndef hartzell(pov, los=False, earth=_WGS84, **name_LatLon_and_kwds):\n    '''Compute the intersection of the earth's surface and a Line-Of-Sight from\n       a Point-Of-View in space.\n\n       @arg pov: Point-Of-View outside the earth (C{LatLon}, C{Cartesian},\n                 L{Ecef9Tuple} or L{Vector3d}).\n       @kwarg los: Line-Of-Sight, I{direction} to earth (L{Los}, L{Vector3d}),\n                   C{True} for the I{normal, plumb} onto the surface or C{False}\n                   or C{None} to point to the center of the earth.\n       @kwarg earth: The earth model (L{Datum}, L{Ellipsoid}, L{Ellipsoid2},\n                     L{a_f2Tuple} or a C{scalar} earth radius in C{meter}).\n       @kwarg name_LatLon_and_kwds: Optional C{B{name}=\"hartzell\"} (C{str}), class\n                   C{B{LatLon}=None} to return the intersection and optionally,\n                   additional C{LatLon} keyword arguments, include the B{C{datum}}\n                   if different from and to convert from B{C{earth}}.\n\n       @return: The intersection (L{Vector3d}, B{C{pov}}'s C{cartesian type} or\n                the given B{C{LatLon}} instance) with attribute C{height} set to\n                the distance to the B{C{pov}}.\n\n       @raise IntersectionError: Invalid B{C{pov}} or B{C{pov}} inside the earth or\n                                 invalid B{C{los}} or B{C{los}} points outside or\n                                 away from the earth.\n\n       @raise TypeError: Invalid B{C{earth}}, C{ellipsoid} or C{datum}.\n\n       @see: Class L{Los}, functions L{tyr3d} and L{hartzell4} and methods\n             L{Ellipsoid.hartzell4}, any C{Cartesian.hartzell} and C{LatLon.hartzell}.\n    '''\n    n, kwds = _name2__(name_LatLon_and_kwds, name__=hartzell)\n    try:\n        D = _spherical_datum(earth, name__=hartzell)\n        m = _MODS._triaxials_triaxial5\n        r, h, i = m._hartzell3(pov, los, D.ellipsoid._triaxial)\n\n        C = _MODS.cartesianBase.CartesianBase\n        if kwds:\n            c = C(r, datum=D)\n            r = c.toLatLon(**_xkwds(kwds, height=h))\n        elif isinstance(r, C):\n            r.height = h\n        if i:\n            r._iteration = i\n    except Exception as x:\n        raise IntersectionError(pov=pov, los=los, earth=earth, cause=x, **kwds)\n    return _xnamed(r, n) if n else r\n\n\ndef haversine(lat1, lon1, lat2, lon2, radius=R_M, wrap=False):\n    '''Compute the distance between two (spherical) points using the U{Haversine\n       <https://www.Movable-Type.co.UK/scripts/latlong.html>} formula.\n\n       @arg lat1: Start latitude (C{degrees}).\n       @arg lon1: Start longitude (C{degrees}).\n       @arg lat2: End latitude (C{degrees}).\n       @arg lon2: End longitude (C{degrees}).\n       @kwarg radius: Mean earth radius (C{meter}), datum (L{Datum}) or ellipsoid\n                      (L{Ellipsoid}, L{Ellipsoid2} or L{a_f2Tuple}) to use.\n       @kwarg wrap: If C{True}, wrap or I{normalize} and unroll B{C{lat2}} and\n                    B{C{lon2}} (C{bool}).\n\n       @return: Distance (C{meter}, same units as B{C{radius}}).\n\n       @raise TypeError: Invalid B{C{radius}}.\n\n       @see: U{Distance between two (spherical) points\n             <https://www.EdWilliams.org/avform.htm#Dist>}, functions L{cosineLaw},\n             L{equirectangular}, L{euclidean}, L{flatLocal} / L{hubeny}, L{flatPolar},\n             L{thomas} and L{vincentys} and methods L{Ellipsoid.distance2},\n             C{LatLon.distanceTo*} and C{LatLon.equirectangularTo}.\n\n       @note: See note at function L{vincentys_}.\n    '''\n    return _dS(haversine_, radius, wrap, lat1, lon1, lat2, lon2)\n\n\ndef haversine_(phi2, phi1, lam21):\n    '''Compute the I{angular} distance between two (spherical) points using the\n       U{Haversine<https://www.Movable-Type.co.UK/scripts/latlong.html>} formula.\n\n       @arg phi2: End latitude (C{radians}).\n       @arg phi1: Start latitude (C{radians}).\n       @arg lam21: Longitudinal delta, M{end-start} (C{radians}).\n\n       @return: Angular distance (C{radians}).\n\n       @see: Functions L{haversine}, L{cosineLaw_}, L{euclidean_}, L{flatLocal_} /\n             L{hubeny_}, L{flatPolar_}, L{thomas_} and L{vincentys_}.\n\n       @note: See note at function L{vincentys_}.\n    '''\n    h = hav(phi2 - phi1) + cos(phi1) * cos(phi2) * hav(lam21)  # haversine\n    return atan2(sqrt0(h), sqrt0(_1_0 - h)) * _2_0  # == asin1(sqrt(h)) * 2\n\n\ndef heightOf(angle, distance, radius=R_M):\n    '''Determine the height above the (spherical) earth' surface after\n       traveling along a straight line at a given tilt.\n\n       @arg angle: Tilt angle above horizontal (C{degrees}).\n       @arg distance: Distance along the line (C{meter} or same units as\n                      B{C{radius}}).\n       @kwarg radius: Optional mean earth radius (C{meter}).\n\n       @return: Height (C{meter}, same units as B{C{distance}} and B{C{radius}}).\n\n       @raise ValueError: Invalid B{C{angle}}, B{C{distance}} or B{C{radius}}.\n\n       @see: U{MultiDop geog_lib.GeogBeamHt<https://GitHub.com/NASA/MultiDop>}\n             (U{Shapiro et al. 2009, JTECH\n             <https://Journals.AMetSoc.org/doi/abs/10.1175/2009JTECHA1256.1>}\n             and U{Potvin et al. 2012, JTECH\n             <https://Journals.AMetSoc.org/doi/abs/10.1175/JTECH-D-11-00019.1>}).\n    '''\n    r = h = Radius(radius)\n    d = fabs(Distance(distance))\n    if d > h:\n        d, h = h, d\n\n    if d > EPS0:  # and h > EPS0\n        d = d / h  # /= h chokes PyChecker\n        s = sin(Phid(angle=angle, clip=_180_0))\n        s = fsumf_(_1_0, s * d * _2_0, d**2)\n        if s > 0:\n            return h * sqrt(s) - r\n\n    raise _ValueError(angle=angle, distance=distance, radius=radius)\n\n\ndef heightOrthometric(h_loc, N):\n    '''Get the I{orthometric} height B{H}, the height above the geoid, earth surface.\n\n       @arg h_loc: The height above the ellipsoid (C{meter}) or an I{ellipsoidal}\n                   location (C{LatLon} or C{Cartesian} with a C{height} or C{h}\n                   attribute), otherwise C{0 meter}.\n       @arg N: The I{geoid} height (C{meter}), the height of the geoid above the\n               ellipsoid at the same B{C{h_loc}} location.\n\n       @return: I{Orthometric} height C{B{H} = B{h} - B{N}} (C{meter}, same units\n                as B{C{h}} and B{C{N}}).\n\n       @see: U{Ellipsoid, Geoid, and Orthometric Heights<https://www.NGS.NOAA.gov/\n             GEOID/PRESENTATIONS/2007_02_24_CCPS/Roman_A_PLSC2007notes.pdf>}, page\n             6 and module L{pygeodesy.geoids}.\n    '''\n    h = h_loc if _isHeight(h_loc) else _xattr(h_loc, height=_xattr(h_loc, h=0))\n    return Height(H=Height(h=h) - Height(N=N))\n\n\ndef horizon(height, radius=R_M, refraction=False):\n    '''Determine the distance to the horizon from a given altitude above the\n       (spherical) earth.\n\n       @arg height: Altitude (C{meter} or same units as B{C{radius}}).\n       @kwarg radius: Optional mean earth radius (C{meter}).\n       @kwarg refraction: Consider atmospheric refraction (C{bool}).\n\n       @return: Distance (C{meter}, same units as B{C{height}} and B{C{radius}}).\n\n       @raise ValueError: Invalid B{C{height}} or B{C{radius}}.\n\n       @see: U{Distance to horizon<https://www.EdWilliams.org/avform.htm#Horizon>}.\n    '''\n    h, r = Height(height), Radius(radius)\n    if min(h, r) < 0:\n        raise _ValueError(height=height, radius=radius)\n\n    if refraction:\n        r *= 2.415750694528  # 2.0 / 0.8279\n    else:\n        r += r + h\n    return sqrt0(r * h)\n\n\nclass _idllmn6(object):  # see also .geodesicw._wargs, .latlonBase._toCartesian3, .vector2d._numpy\n    '''(INTERNAL) Helper for C{intersection2} and C{intersections2}.\n    '''\n    @contextmanager  # <https://www.Python.org/dev/peps/pep-0343/> Examples\n    def __call__(self, datum, lat1, lon1, lat2, lon2, small, wrap, s, **kwds):\n        try:\n            if wrap:\n                _, lat2, lon2 = _Wrap.latlon3(lon1, lat2, lon2, wrap)\n                kwds = _xkwds(kwds, wrap=wrap)  # for _xError\n            m = small if small is _100km else Meter_(small=small)\n            n = typename(intersections2 if s else intersection2)\n            if datum is None or euclidean(lat1, lon1, lat2, lon2) < m:\n                d, m = None, _MODS.vector3d\n                _i   = m._intersects2 if s else m._intersect3d3\n            elif _isRadius(datum) and datum < 0 and not s:\n                d = _spherical_datum(-datum, name=n)\n                m = _MODS.sphericalNvector\n                _i = m.intersection\n            else:\n                d = _spherical_datum(datum, name=n)\n                if d.isSpherical:\n                    m = _MODS.sphericalTrigonometry\n                    _i = m._intersects2 if s else m._intersect\n                elif d.isEllipsoidal:\n                    try:\n                        if d.ellipsoid.geodesic:\n                            pass\n                        m = _MODS.ellipsoidalKarney\n                    except ImportError:\n                        m = _MODS.ellipsoidalExact\n                    _i = m._intersections2 if s else m._intersection3  # ellipsoidalBaseDI\n                else:\n                    raise _TypeError(datum=datum)\n            yield _i, d, lat2, lon2, m, n\n\n        except (TypeError, ValueError) as x:\n            raise _xError(x, lat1=lat1, lon1=lon1, datum=datum,\n                             lat2=lat2, lon2=lon2, small=small, **kwds)\n\n_idllmn6 = _idllmn6()  # PYCHOK singleton\n\n\ndef intersection2(lat1, lon1, bearing1,\n                  lat2, lon2, bearing2, datum=None, wrap=False, small=_100km):  # was=True\n    '''I{Conveniently} compute the intersection of two lines each defined by\n       a (geodetic) point and a bearing from North, using either ...\n\n       1) L{vector3d.intersection3d3} for B{C{small}} distances (below 100 Km\n       or about 0.88 degrees) or if I{no} B{C{datum}} is specified, or ...\n\n       2) L{sphericalTrigonometry.intersection} for a spherical B{C{datum}}\n       or a C{scalar B{datum}} representing the earth radius, conventionally\n       in C{meter} or ...\n\n       3) L{sphericalNvector.intersection} if B{C{datum}} is a I{negative}\n       C{scalar}, (negative) earth radius, conventionally in C{meter} or ...\n\n       4) L{ellipsoidalKarney.intersection3} for an ellipsoidal B{C{datum}}\n       and if I{Karney}'s U{geographiclib<https://PyPI.org/project/geographiclib>}\n       is installed, otherwise ...\n\n       5) L{ellipsoidalExact.intersection3}, provided B{C{datum}} is ellipsoidal.\n\n       @arg lat1: Latitude of the first point (C{degrees}).\n       @arg lon1: Longitude of the first point (C{degrees}).\n       @arg bearing1: Bearing at the first point (compass C{degrees360}).\n       @arg lat2: Latitude of the second point (C{degrees}).\n       @arg lon2: Longitude of the second point (C{degrees}).\n       @arg bearing2: Bearing at the second point (compass C{degrees360}).\n       @kwarg datum: Optional datum (L{Datum}) or ellipsoid (L{Ellipsoid},\n                     L{Ellipsoid2} or L{a_f2Tuple}) or C{scalar} earth radius\n                     (C{meter}, same units as B{C{radius1}} and B{C{radius2}})\n                     or C{None}.\n       @kwarg wrap: If C{True}, wrap or I{normalize} and unroll B{C{lat2}} and\n                    B{C{lon2}} (C{bool}).\n       @kwarg small: Upper limit for small distances (C{meter}).\n\n       @return: Intersection point (L{LatLon2Tuple}C{(lat, lon)}).\n\n       @raise IntersectionError: No or an ambiguous intersection or colinear,\n                                 parallel or otherwise non-intersecting lines.\n\n       @raise TypeError: Invalid B{C{datum}}.\n\n       @raise UnitError: Invalid B{C{lat1}}, B{C{lon1}}, B{C{bearing1}}, B{C{lat2}},\n                         B{C{lon2}} or B{C{bearing2}}.\n\n       @see: Method L{RhumbLine.intersection2}.\n    '''\n    b1 = Bearing(bearing1=bearing1)\n    b2 = Bearing(bearing2=bearing2)\n    with _idllmn6(datum, lat1, lon1, lat2, lon2,\n                  small, wrap, False, bearing1=b1, bearing2=b2) as t:\n        _i, d, lat2, lon2, m, n = t\n        if d is None:\n            t, _, _ = _i(m.Vector3d(lon1, lat1, 0), b1,\n                         m.Vector3d(lon2, lat2, 0), b2, useZ=False)\n            t = LatLon2Tuple(t.y, t.x, name=n)\n\n        else:\n            t = _i(m.LatLon(lat1, lon1, datum=d), b1,\n                   m.LatLon(lat2, lon2, datum=d), b2,\n                     LatLon=None, height=0, wrap=False)\n            if isinstance(t, Intersection3Tuple):  # ellipsoidal\n                t, _, _ = t\n            t = LatLon2Tuple(t.lat, t.lon, name=n)\n    return t\n\n\ndef intersections2(lat1, lon1, radius1,\n                   lat2, lon2, radius2, datum=None, wrap=False, small=_100km):  # was=True\n    '''I{Conveniently} compute the intersections of two circles each defined\n       by a (geodetic) center point and a radius, using either ...\n\n       1) L{vector3d.intersections2} for B{C{small}} distances (below 100 Km\n       or about 0.88 degrees) or if I{no} B{C{datum}} is specified, or ...\n\n       2) L{sphericalTrigonometry.intersections2} for a spherical B{C{datum}}\n       or a C{scalar B{datum}} representing the earth radius, conventionally\n       in C{meter} or ...\n\n       3) L{ellipsoidalKarney.intersections2} for an ellipsoidal B{C{datum}}\n       and if I{Karney}'s U{geographiclib<https://PyPI.org/project/geographiclib>}\n       is installed, otherwise ...\n\n       4) L{ellipsoidalExact.intersections2}, provided B{C{datum}} is ellipsoidal.\n\n       @arg lat1: Latitude of the first circle center (C{degrees}).\n       @arg lon1: Longitude of the first circle center (C{degrees}).\n       @arg radius1: Radius of the first circle (C{meter}, conventionally).\n       @arg lat2: Latitude of the second circle center (C{degrees}).\n       @arg lon2: Longitude of the second circle center (C{degrees}).\n       @arg radius2: Radius of the second circle (C{meter}, same units as B{C{radius1}}).\n       @kwarg datum: Optional datum (L{Datum}) or ellipsoid (L{Ellipsoid}, L{Ellipsoid2}\n                     or L{a_f2Tuple}) or C{scalar} earth radius (C{meter}, same units as\n                     B{C{radius1}} and B{C{radius2}}) or C{None}.\n       @kwarg wrap: If C{True}, wrap or I{normalize} and unroll B{C{lat2}} and B{C{lon2}}\n                    (C{bool}).\n       @kwarg small: Upper limit for small distances (C{meter}).\n\n       @return: 2-Tuple of the intersection points, each a L{LatLon2Tuple}C{(lat, lon)}.\n                Both points are the same instance, aka the I{radical center} if the\n                circles are abutting\n\n       @raise IntersectionError: Concentric, antipodal, invalid or non-intersecting\n                                 circles or no convergence.\n\n       @raise TypeError: Invalid B{C{datum}}.\n\n       @raise UnitError: Invalid B{C{lat1}}, B{C{lon1}}, B{C{radius1}}, B{C{lat2}},\n                         B{C{lon2}} or B{C{radius2}}.\n    '''\n    r1 = Radius_(radius1=radius1)\n    r2 = Radius_(radius2=radius2)\n    with _idllmn6(datum, lat1, lon1, lat2, lon2,\n                  small, wrap, True, radius1=r1, radius2=r2) as t:\n        _i, d, lat2, lon2, m, n = t\n        if d is None:\n            r1 = m2degrees(r1, radius=R_M, lat=lat1)\n            r2 = m2degrees(r2, radius=R_M, lat=lat2)\n\n            def _V2T(x, y, _, **unused):  # _ == z unused\n                return LatLon2Tuple(y, x, name=n)\n\n            t = _i(m.Vector3d(lon1, lat1, 0), r1,\n                   m.Vector3d(lon2, lat2, 0), r2, sphere=False,\n                     Vector=_V2T)\n        else:\n            def _LL2T(lat, lon, **unused):\n                return LatLon2Tuple(lat, lon, name=n)\n\n            t = _i(m.LatLon(lat1, lon1, datum=d), r1,\n                   m.LatLon(lat2, lon2, datum=d), r2,\n                     LatLon=_LL2T, height=0, wrap=False)\n    return t\n\n\ndef isantipode(lat1, lon1, lat2, lon2, eps=EPS):\n    '''Check whether two points are I{antipodal}, on diametrically\n       opposite sides of the earth.\n\n       @arg lat1: Latitude of one point (C{degrees}).\n       @arg lon1: Longitude of one point (C{degrees}).\n       @arg lat2: Latitude of the other point (C{degrees}).\n       @arg lon2: Longitude of the other point (C{degrees}).\n       @kwarg eps: Tolerance for near-equality (C{degrees}).\n\n       @return: C{True} if points are antipodal within the\n                B{C{eps}} tolerance, C{False} otherwise.\n\n       @see: Functions L{isantipode_} and L{antipode}.\n    '''\n    return (fabs(lat1 + lat2) <= eps and\n            fabs(lon1 + lon2) <= eps) or _isequalTo(\n            normal(lat1, lon1), antipode(lat2, lon2), eps)\n\n\ndef isantipode_(phi1, lam1, phi2, lam2, eps=EPS):\n    '''Check whether two points are I{antipodal}, on diametrically\n       opposite sides of the earth.\n\n       @arg phi1: Latitude of one point (C{radians}).\n       @arg lam1: Longitude of one point (C{radians}).\n       @arg phi2: Latitude of the other point (C{radians}).\n       @arg lam2: Longitude of the other point (C{radians}).\n       @kwarg eps: Tolerance for near-equality (C{radians}).\n\n       @return: C{True} if points are antipodal within the\n                B{C{eps}} tolerance, C{False} otherwise.\n\n       @see: Functions L{isantipode} and L{antipode_}.\n    '''\n    return (fabs(phi1 + phi2) <= eps and\n            fabs(lam1 + lam2) <= eps) or _isequalTo_(\n            normal_(phi1, lam1), antipode_(phi2, lam2), eps)\n\n\ndef _isequalTo(p1, p2, eps=EPS):\n    '''Compare 2 point lat-/lons ignoring C{class}.\n    '''\n    return (fabs(p1.lat - p2.lat) <= eps and\n            fabs(p1.lon - p2.lon) <= eps) if eps else (p1.latlon == p2.latlon)\n\n\ndef _isequalTo_(p1, p2, eps=EPS):  # underscore_!\n    '''(INTERNAL) Compare 2 point phi-/lams ignoring C{class}.\n    '''\n    return (fabs(p1.phi - p2.phi) <= eps and\n            fabs(p1.lam - p2.lam) <= eps) if eps else (p1.philam == p2.philam)\n\n\ndef isnormal(lat, lon, eps=0):\n    '''Check whether B{C{lat}} I{and} B{C{lon}} are within their\n       respective I{normal} range in C{degrees}.\n\n       @arg lat: Latitude (C{degrees}).\n       @arg lon: Longitude (C{degrees}).\n       @kwarg eps: Optional tolerance C{degrees}).\n\n       @return: C{True} if C{(abs(B{lat}) + B{eps}) <= 90} and\n                C{(abs(B{lon}) + B{eps}) <= 180}, C{False} otherwise.\n\n       @see: Functions L{isnormal_} and L{normal}.\n    '''\n    return _loneg(fabs(lon)) >= eps and (_90_0 - fabs(lat)) >= eps  # co-latitude\n\n\ndef isnormal_(phi, lam, eps=0):\n    '''Check whether B{C{phi}} I{and} B{C{lam}} are within their\n       respective I{normal} range in C{radians}.\n\n       @arg phi: Latitude (C{radians}).\n       @arg lam: Longitude (C{radians}).\n       @kwarg eps: Optional tolerance C{radians}).\n\n       @return: C{True} if C{(abs(B{phi}) + B{eps}) <= PI/2} and\n                C{(abs(B{lam}) + B{eps}) <= PI}, C{False} othwerwise.\n\n       @see: Functions L{isnormal} and L{normal_}.\n    '''\n    return (PI_2 - fabs(phi)) >= eps and (PI - fabs(lam)) >= eps\n\n\ndef _maprod(fun_, *ts):\n    '''(INTERNAL) Helper for C{excessCagnoli_} and C{excessLHuilier_}.\n    '''\n    return fprod(map(fun_, ts))\n\n\ndef _normal2(a, b, n_2, n, n2):\n    '''(INTERNAL) Helper for C{normal} and C{normal_}.\n    '''\n    if fabs(b) > n:\n        b = remainder(b, n2)\n    if fabs(a) > n_2:\n        r = remainder(a, n)\n        if r != a:\n            a  = -r\n            b -=  n if b > 0 else -n\n    return float0_(a, b)\n\n\ndef normal(lat, lon, **name):\n    '''Normalize a lat- I{and} longitude pair in C{degrees}.\n\n       @arg lat: Latitude (C{degrees}).\n       @arg lon: Longitude (C{degrees}).\n       @kwarg name: Optional C{B{name}=\"normal\"} (C{str}).\n\n       @return: L{LatLon2Tuple}C{(lat, lon)} with C{-90 <= lat <= 90}\n                and C{-180 <= lon <= 180}.\n\n       @see: Functions L{normal_} and L{isnormal}.\n    '''\n    return LatLon2Tuple(*_normal2(lat, lon, _90_0, _180_0, _360_0),\n                          name=_name__(name, name__=normal))\n\n\ndef normal_(phi, lam, **name):\n    '''Normalize a lat- I{and} longitude pair in C{radians}.\n\n       @arg phi: Latitude (C{radians}).\n       @arg lam: Longitude (C{radians}).\n       @kwarg name: Optional C{B{name}=\"normal_\"} (C{str}).\n\n       @return: L{PhiLam2Tuple}C{(phi, lam)} with C{abs(phi) <= PI/2}\n                and C{abs(lam) <= PI}.\n\n       @see: Functions L{normal} and L{isnormal_}.\n    '''\n    return PhiLam2Tuple(*_normal2(phi, lam, PI_2, PI, PI2),\n                          name=_name__(name, name__=normal_))\n\n\ndef _opposes(d, m, n, n2):\n    '''(INTERNAL) Helper for C{opposing} and C{opposing_}.\n    '''\n    d = d % n2  # -20 % 360 == 340, -1 % PI2 == PI2 - 1\n    return False if d < m or d > (n2 - m) else (\n           True if (n - m) < d < (n  + m) else None)\n\n\ndef opposing(bearing1, bearing2, margin=_90_0):\n    '''Compare the direction of two bearings given in C{degrees}.\n\n       @arg bearing1: First bearing (compass C{degrees}).\n       @arg bearing2: Second bearing (compass C{degrees}).\n       @kwarg margin: Optional, interior angle bracket (C{degrees}).\n\n       @return: C{True} if both bearings point in opposite, C{False} if\n                in similar or C{None} if in I{perpendicular} directions.\n\n       @see: Function L{opposing_}.\n    '''\n    m = Degrees_(margin=margin, low=EPS0, high=_90_0)\n    return _opposes(bearing2 - bearing1, m, _180_0, _360_0)\n\n\ndef opposing_(radians1, radians2, margin=PI_2):\n    '''Compare the direction of two bearings given in C{radians}.\n\n       @arg radians1: First bearing (C{radians}).\n       @arg radians2: Second bearing (C{radians}).\n       @kwarg margin: Optional, interior angle bracket (C{radians}).\n\n       @return: C{True} if both bearings point in opposite, C{False} if\n                in similar or C{None} if in perpendicular directions.\n\n       @see: Function L{opposing}.\n    '''\n    m = Radians_(margin=margin, low=EPS0, high=PI_2)\n    return _opposes(radians2 - radians1, m, PI, PI2)\n\n\ndef _Propy(func, nargs, kwds):\n    '''(INTERNAL) Helper for the C{frechet.[-]Frechet**} and\n       C{hausdorff.[-]Hausdorff*} classes.\n    '''\n    try:\n        _xcallable(distance=func)\n        # assert _args_kwds_count2(func)[0] == nargs + int(ismethod(func))\n        _ = func(*_0_0s(nargs), **kwds)\n    except Exception as x:\n        t = unstr(func, **kwds)\n        raise _TypeError(t, cause=x)\n    return func\n\n\ndef _radical2(d, r1, r2, **name):  # in .ellipsoidalBaseDI, .sphericalTrigonometry, .vector3d\n    # (INTERNAL) See C{radical2} below\n    # assert d > EPS0\n    r =  fsumf_(_1_0, (r1 / d)**2, -(r2 / d)**2) * _0_5\n    n = _name__(name, name__=radical2)\n    return Radical2Tuple(max(_0_0, min(_1_0, r)), r * d, name=n)\n\n\ndef radical2(distance, radius1, radius2, **name):\n    '''Compute the I{radical ratio} and I{radical line} of two U{intersecting\n       circles<https://MathWorld.Wolfram.com/Circle-CircleIntersection.html>}.\n\n       The I{radical line} is perpendicular to the axis thru the centers of\n       the circles at C{(0, 0)} and C{(B{distance}, 0)}.\n\n       @arg distance: Distance between the circle centers (C{scalar}).\n       @arg radius1: Radius of the first circle (C{scalar}).\n       @arg radius2: Radius of the second circle (C{scalar}).\n       @kwarg name: Optional C{B{name}=NN} (C{str}).\n\n       @return: A L{Radical2Tuple}C{(ratio, xline)} where C{0.0 <= ratio <=\n                1.0} and C{xline} is along the B{C{distance}}.\n\n       @raise IntersectionError: The B{C{distance}} exceeds the sum of\n                                 B{C{radius1}} and B{C{radius2}}.\n\n       @raise UnitError: Invalid B{C{distance}}, B{C{radius1}} or B{C{radius2}}.\n    '''\n    d  = Distance_(distance, low=_0_0)\n    r1 = Radius_(radius1=radius1)\n    r2 = Radius_(radius2=radius2)\n    if d > (r1 + r2):\n        raise IntersectionError(distance=d, radius1=r1, radius2=r2,\n                                            txt=_too_(_distant_))\n    return _radical2(d, r1, r2, **name) if d > EPS0 else \\\n            Radical2Tuple(_0_5, _0_0, **name)\n\n\nclass Radical2Tuple(_NamedTuple):\n    '''2-Tuple C{(ratio, xline)} of the I{radical} C{ratio} and\n       I{radical} C{xline}, both C{scalar} and C{0.0 <= ratio <= 1.0}\n    '''\n    _Names_ = (_ratio_, _xline_)\n    _Units_ = ( Scalar,  Scalar)\n\n\ndef _radistance(inst):\n    '''(INTERNAL) Helper for the L{frechet._FrechetMeterRadians}\n       and L{hausdorff._HausdorffMeterRedians} classes.\n    '''\n    wrap_, kwds_ = _xkwds_pop2(inst._kwds, wrap=False)\n    func_ = inst._func_\n    try:  # calling lower-overhead C{func_}\n        func_(0, _0_25, _0_5, **kwds_)\n        wrap_ = _Wrap._philamop(wrap_)\n    except TypeError:\n        return inst.distance\n\n    def _philam(p):\n        try:\n            return p.phi, p.lam\n        except AttributeError:  # no .phi or .lam\n            return radians(p.lat), radians(p.lon)\n\n    def _func_wrap(point1, point2):\n        phi1, lam1 = wrap_(*_philam(point1))\n        phi2, lam2 = wrap_(*_philam(point2))\n        return func_(phi2, phi1, lam2 - lam1, **kwds_)\n\n    inst._units = inst._units_\n    return _func_wrap\n\n\ndef _scale_deg(lat1, lat2):  # degrees\n    # scale factor cos(mean of lats) for delta lon\n    m = fabs(lat1 + lat2) * _0_5\n    return cos(radians(m)) if m < _90_0 else _0_0\n\n\ndef _scale_rad(phi1,  phi2):  # radians, by .frechet, .hausdorff, .heights\n    # scale factor cos(mean of phis) for delta lam\n    m = fabs(phi1 + phi2) * _0_5\n    return cos(m) if m < PI_2 else _0_0\n\n\ndef _sincosa6(phi2, phi1, lam21):  # [4] in cosineLaw\n    '''(INTERNAL) C{sin}es, C{cos}ines and C{acos}ine.\n    '''\n    s2, c2, s1, c1, _, c21 = sincos2_(phi2, phi1, lam21)\n    return s2, c2, s1, c1, acos1(s1 * s2 + c1 * c2 * c21), c21\n\n\ndef thomas(lat1, lon1, lat2, lon2, datum=_WGS84, wrap=False):\n    '''Compute the distance between two (ellipsoidal) points using U{Thomas'\n       <https://apps.DTIC.mil/dtic/tr/fulltext/u2/703541.pdf>} formula.\n\n       @arg lat1: Start latitude (C{degrees}).\n       @arg lon1: Start longitude (C{degrees}).\n       @arg lat2: End latitude (C{degrees}).\n       @arg lon2: End longitude (C{degrees}).\n       @kwarg datum: Datum (L{Datum}) or ellipsoid (L{Ellipsoid}, L{Ellipsoid2}\n                     or L{a_f2Tuple}) to use.\n       @kwarg wrap: If C{True}, wrap or I{normalize} and unroll B{C{lat2}} and\n                    B{C{lon2}} (C{bool}).\n\n       @return: Distance (C{meter}, same units as the B{C{datum}}'s or ellipsoid axes).\n\n       @raise TypeError: Invalid B{C{datum}}.\n\n       @see: Functions L{thomas_}, L{cosineLaw}, L{equirectangular}, L{euclidean},\n             L{flatLocal} / L{hubeny}, L{flatPolar}, L{haversine}, L{vincentys} and\n             method L{Ellipsoid.distance2}.\n    '''\n    return _dE(thomas_, datum, wrap, lat1, lon1, lat2, lon2)\n\n\ndef thomas_(phi2, phi1, lam21, datum=_WGS84):\n    '''Compute the I{angular} distance between two (ellipsoidal) points using\n       U{Thomas'<https://apps.DTIC.mil/dtic/tr/fulltext/u2/703541.pdf>} formula.\n\n       @arg phi2: End latitude (C{radians}).\n       @arg phi1: Start latitude (C{radians}).\n       @arg lam21: Longitudinal delta, M{end-start} (C{radians}).\n       @kwarg datum: Datum (L{Datum}) ?or ellipsoid to use (L{Ellipsoid},\n                     L{Ellipsoid2} or L{a_f2Tuple}).\n\n       @return: Angular distance (C{radians}).\n\n       @raise TypeError: Invalid B{C{datum}}.\n\n       @see: Functions L{thomas}, L{cosineLaw_}, L{euclidean_}, L{flatLocal_} /\n             L{hubeny_}, L{flatPolar_}, L{haversine_} and L{vincentys_} and\n             U{Geodesy-PHP<https://GitHub.com/jtejido/geodesy-php/blob/master/\n             src/Geodesy/Distance/ThomasFormula.php>}.\n    '''\n    s2, c2, s1, c1, r, _ = _sincosa6(phi2, phi1, lam21)\n    if r and isnon0(c1) and isnon0(c2):\n        E = _ellipsoidal(datum, thomas_)\n        f =  E.f * _0_25\n        if f:  # ellipsoidal\n            r1 = atan2(E.b_a * s1, c1)\n            r2 = atan2(E.b_a * s2, c2)\n\n            j = (r2 + r1) * _0_5\n            k = (r2 - r1) * _0_5\n            sj, cj, sk, ck, h, _ = sincos2_(j, k, lam21 * _0_5)\n\n            h =  fsumf_(sk**2, (ck * h)**2, -(sj * h)**2)\n            u = _1_0 - h\n            if isnon0(u) and isnon0(h):\n                r = atan(sqrt0(h / u)) * 2  # == acos(1 - 2 * h)\n                sr, cr = sincos2(r)\n                if isnon0(sr):\n                    u = (sj * ck)**2 * 2 / u\n                    h = (sk * cj)**2 * 2 / h\n                    x = u + h\n                    y = u - h\n\n                    b = r * 2\n                    s = r / sr\n                    e = 4 * s**2\n                    d = 2 * cr\n                    a = e * d\n                    c = s - (a - d) * _0_5\n\n                    t  = fdot_(a, x,  -b, y,  -d, y**2,  c, x**2,  e, x * y) * _0_25\n                    r -= fdot_(s, x,  -1, y,  -t, f) * f * sr\n    return r\n\n\ndef vincentys(lat1, lon1, lat2, lon2, radius=R_M, wrap=False):\n    '''Compute the distance between two (spherical) points using\n       U{Vincenty's<https://WikiPedia.org/wiki/Great-circle_distance>}\n       spherical formula.\n\n       @arg lat1: Start latitude (C{degrees}).\n       @arg lon1: Start longitude (C{degrees}).\n       @arg lat2: End latitude (C{degrees}).\n       @arg lon2: End longitude (C{degrees}).\n       @kwarg radius: Mean earth radius (C{meter}), datum (L{Datum}) or\n                      ellipsoid (L{Ellipsoid}, L{Ellipsoid2} or L{a_f2Tuple})\n                      to use.\n       @kwarg wrap: If C{True}, wrap or I{normalize} and unroll B{C{lat2}} and\n                    B{C{lon2}} (C{bool}).\n\n       @return: Distance (C{meter}, same units as B{C{radius}}).\n\n       @raise UnitError: Invalid B{C{radius}}.\n\n       @see: Functions L{vincentys_}, L{cosineLaw}, L{equirectangular}, L{euclidean},\n             L{flatLocal}/L{hubeny}, L{flatPolar}, L{haversine} and L{thomas} and\n             methods L{Ellipsoid.distance2}, C{LatLon.distanceTo*} and\n             C{LatLon.equirectangularTo}.\n\n       @note: See note at function L{vincentys_}.\n    '''\n    return _dS(vincentys_, radius, wrap, lat1, lon1, lat2, lon2)\n\n\ndef vincentys_(phi2, phi1, lam21):\n    '''Compute the I{angular} distance between two (spherical) points using\n       U{Vincenty's<https://WikiPedia.org/wiki/Great-circle_distance>}\n       spherical formula.\n\n       @arg phi2: End latitude (C{radians}).\n       @arg phi1: Start latitude (C{radians}).\n       @arg lam21: Longitudinal delta, M{end-start} (C{radians}).\n\n       @return: Angular distance (C{radians}).\n\n       @see: Functions L{vincentys}, L{cosineLaw_}, L{euclidean_}, L{flatLocal_} /\n             L{hubeny_}, L{flatPolar_}, L{haversine_} and L{thomas_}.\n\n       @note: Functions L{vincentys_}, L{haversine_} and L{cosineLaw_} produce\n              equivalent results, but L{vincentys_} is suitable for antipodal\n              points and slightly more expensive (M{3 cos, 3 sin, 1 hypot, 1 atan2,\n              6 mul, 2 add}) than L{haversine_} (M{2 cos, 2 sin, 2 sqrt, 1 atan2, 5\n              mul, 1 add}) and L{cosineLaw_} (M{3 cos, 3 sin, 1 acos, 3 mul, 1 add}).\n    '''\n    s1, c1, s2, c2, s21, c21 = sincos2_(phi1, phi2, lam21)\n\n    c = c2 * c21\n    x = s1 * s2 + c1 * c\n    y = c1 * s2 - s1 * c\n    return atan2(hypot(c2 * s21, y), x)\n\n# **) MIT License\n#\n# Copyright (C) 2016-2026 -- mrJean1 at Gmail -- All Rights Reserved.\n#\n# Permission is hereby granted, free of charge, to any person obtaining a\n# copy of this software and associated documentation files (the \"Software\"),\n# to deal in the Software without restriction, including without limitation\n# the rights to use, copy, modify, merge, publish, distribute, sublicense,\n# and/or sell copies of the Software, and to permit persons to whom the\n# Software is furnished to do so, subject to the following conditions:\n#\n# The above copyright notice and this permission notice shall be included\n# in all copies or substantial portions of the Software.\n#\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL\n# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR\n# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\n# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n# OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "pygeodesy/frechet.py",
    "content": "\n# -*- coding: utf-8 -*-\n\nu'''Fréchet distances.\n\nClasses L{Frechet}, L{FrechetDegrees}, L{FrechetRadians}, L{FrechetCosineLaw},\nL{FrechetDistanceTo}, L{FrechetEquirectangular}, L{FrechetEuclidean},\nL{FrechetExact}, L{FrechetFlatLocal}, L{FrechetFlatPolar}, L{FrechetHaversine},\nL{FrechetHubeny}, L{FrechetKarney}, L{FrechetThomas} and L{FrechetVincentys}\nto compute I{discrete} U{Fréchet<https://WikiPedia.org/wiki/Frechet_distance>}\ndistances between two sets of C{LatLon}, C{NumPy}, C{tuples} or other types of points.\n\nOnly L{FrechetDistanceTo} -iff used with L{ellipsoidalKarney.LatLon}\npoints- and L{FrechetKarney} requires installation of I{Charles Karney}'s\nU{geographiclib<https://PyPI.org/project/geographiclib>}.\n\nTypical usage is as follows.  First, create a C{Frechet} calculator from one\nset of C{LatLon} points.\n\nC{f = FrechetXyz(point1s, ...)}\n\nGet the I{discrete} Fréchet distance to another set of C{LatLon} points\nby\n\nC{t6 = f.discrete(point2s)}\n\nOr, use function C{frechet_} with a proper C{distance} function passed\nas keyword arguments as follows\n\nC{t6 = frechet_(point1s, point2s, ..., distance=...)}.\n\nIn both cases, the returned result C{t6} is a L{Frechet6Tuple}.\n\nFor C{(lat, lon, ...)} points in a C{NumPy} array or plain C{tuples},\nwrap the points in a L{Numpy2LatLon} respectively L{Tuple2LatLon}\ninstance, more details in the documentation thereof.\n\nFor other points, create a L{Frechet} sub-class with the appropriate\nC{distance} method overloading L{Frechet.distance} as in this example.\n\n    >>> from pygeodesy import Frechet, hypot_\n    >>>\n    >>> class F3D(Frechet):\n    >>>     \"\"\"Custom Frechet example.\n    >>>     \"\"\"\n    >>>     def distance(self, p1, p2):\n    >>>         return hypot_(p1.x - p2.x, p1.y - p2.y, p1.z - p2.z)\n    >>>\n    >>> f3D = F3D(xyz1, ..., units=\"...\")\n    >>> t6 = f3D.discrete(xyz2)\n\nTranscribed from the original U{Computing Discrete Fréchet Distance\n<https://www.kr.TUWien.ac.AT/staff/eiter/et-archive/cdtr9464.pdf>} by\nEiter, T. and Mannila, H., 1994, April 25, Technical Report CD-TR 94/64,\nInformation Systems Department/Christian Doppler Laboratory for Expert\nSystems, Technical University Vienna, Austria.\n\nThis L{Frechet.discrete} implementation optionally generates intermediate\npoints for each point set separately.  For example, using keyword argument\nC{fraction=0.5} adds one additional point halfway between each pair of\npoints.  Or using C{fraction=0.1} interpolates nine additional points\nbetween each points pair.\n\nThe L{Frechet6Tuple} attributes C{fi1} and/or C{fi2} will be I{fractional}\nindices of type C{float} if keyword argument C{fraction} is used.  Otherwise,\nC{fi1} and/or C{fi2} are simply type C{int} indices into the respective\npoints set.\n\nFor example, C{fractional} index value 2.5 means an intermediate point\nhalfway between points[2] and points[3].  Use function L{fractional}\nto obtain the intermediate point for a I{fractional} index in the\ncorresponding set of points.\n\nThe C{Fréchet} distance was introduced in 1906 by U{Maurice Fréchet\n<https://WikiPedia.org/wiki/Maurice_Rene_Frechet>}, see U{reference\n[6]<https://www.kr.TUWien.ac.AT/staff/eiter/et-archive/cdtr9464.pdf>}.\nIt is a measure of similarity between curves that takes into account the\nlocation and ordering of the points.  Therefore, it is often a better metric\nthan the well-known C{Hausdorff} distance, see the L{hausdorff} module.\n'''\n\nfrom pygeodesy.basics import _isin, isscalar,  typename\nfrom pygeodesy.constants import EPS, EPS1, INF, NINF\nfrom pygeodesy.datums import _ellipsoidal_datum, _WGS84\nfrom pygeodesy.errors import PointsError, _xattr, _xcallable, \\\n                            _xkwds, _xkwds_get\n# from pygeodesy import formy as _formy  # _MODS.into\n# from pygeodesy.internals import typename  # from .basics\nfrom pygeodesy.interns import _DMAIN_, _DOT_, _n_, NN, _units_\n# from pygeodesy.iters import points2 as _points2  # from .points\nfrom pygeodesy.lazily import _ALL_LAZY, _ALL_MODS as _MODS, _FOR_DOCS\nfrom pygeodesy.named import _name2__, _Named, _NamedTuple, _Pass\nfrom pygeodesy.namedTuples import PhiLam2Tuple\nfrom pygeodesy.points import _distanceTo, _fractional, \\\n                              points2 as _points2, radians\nfrom pygeodesy.props import Property, property_doc_, property_RO\nfrom pygeodesy.units import FIx, Float, Number_\nfrom pygeodesy import unitsBase as _unitsBase  # _Str_..., _xUnit, _xUnits\n\nfrom collections import defaultdict as _defaultdict\n# from math import radians  # from .points\n\n__all__ = _ALL_LAZY.frechet\n__version__ = '25.05.26'\n\n_formy = _MODS.into(formy=__name__)\n\n\ndef _fraction(fraction, n):\n    f = 1  # int, no fractional indices\n    if _isin(fraction, None, 1):\n        pass\n    elif not (isscalar(fraction) and EPS < fraction < EPS1\n                                 and (float(n) - fraction) < n):\n        raise FrechetError(fraction=fraction)\n    elif fraction < EPS1:\n        f = float(fraction)\n    return f\n\n\nclass FrechetError(PointsError):\n    '''Fréchet issue.\n    '''\n    pass\n\n\nclass Frechet(_Named):\n    '''Frechet base class, requires method L{Frechet.distance} to\n       be overloaded.\n    '''\n    _datum = _WGS84\n#   _func  =  None  # formy function/property\n    _f1    =  1\n    _kwds  = {}     # func_ options\n    _n1    =  0\n    _ps1   =  None\n    _units = _unitsBase._Str_NN  # XXX Str to _Pass and for backward compatibility\n\n    def __init__(self, point1s, fraction=None, units=NN, **name__kwds):\n        '''New C{Frechet...} calculator/interpolator.\n\n           @arg point1s: First set of points (C{LatLon}[], L{Numpy2LatLon}[],\n                         L{Tuple2LatLon}[] or C{other}[]).\n           @kwarg fraction: Index fraction (C{float} in L{EPS}..L{EPS1}) to\n                            interpolate intermediate B{C{point1s}} or use C{None},\n                            C{0} or C{1} for no intermediate B{C{point1s}} and no\n                            I{fractional} indices.\n           @kwarg units: Optional distance units (C{Unit} or C{str}).\n           @kwarg name__kwds: Optional C{B{name}=NN} for this calculator/interpolator\n                        (C{str}) and any keyword arguments for the distance function,\n                        retrievable with property C{kwds}.\n\n           @raise FrechetError: Insufficient number of B{C{point1s}} or an invalid\n                                B{C{point1}}, B{C{fraction}} or B{C{units}}.\n        '''\n        name, kwds = _name2__(**name__kwds)  # name__=type(self)\n        if name:\n            self.name = name\n\n        self._n1, self._ps1 = self._points2(point1s)\n        if fraction:\n            self.fraction = fraction\n        if units:  # and not self.units:\n            self.units = units\n        if kwds:\n            self._kwds = kwds\n\n    @property_RO\n    def adjust(self):\n        '''Get the C{adjust} setting (C{bool} or C{None}).\n        '''\n        return _xkwds_get(self._kwds, adjust=None)\n\n    @property_RO\n    def datum(self):\n        '''Get the datum (L{Datum} or C{None} if not applicable).\n        '''\n        return self._datum\n\n    def _datum_setter(self, datum):\n        '''(INTERNAL) Set the datum.\n        '''\n        d = datum or _xattr(self._ps1[0], datum=None)\n        if d and d is not self._datum:  # PYCHOK no cover\n            self._datum = _ellipsoidal_datum(d, name=self.name)\n\n    def discrete(self, point2s, fraction=None, recursive=False):\n        '''Compute the C{forward, discrete Fréchet} distance.\n\n           @arg point2s: Second set of points (C{LatLon}[], L{Numpy2LatLon}[],\n                         L{Tuple2LatLon}[] or C{other}[]).\n           @kwarg fraction: Index fraction (C{float} in L{EPS}..L{EPS1}) to\n                            interpolate intermediate B{C{point2s}} or use\n                            C{None}, C{0} or C{1} for no intermediate\n                            B{C{point2s}} and no I{fractional} indices.\n           @kwarg recursive: Use C{True} for backward compatibility (C{bool})\n                             or with I{fractional} indices.\n\n           @return: A L{Frechet6Tuple}C{(fd, fi1, fi2, r, n, units)}.\n\n           @raise FrechetError: Insufficient number of B{C{point2s}} or\n                                an invalid B{C{point2}} or B{C{fraction}}\n                                or C{non-B{recursive}} and I{fractional}.\n\n           @raise RecursionError: Recursion depth exceeded, see U{sys.getrecursionlimit\n                                  <https://docs.Python.org/3/library/sys.html#sys.getrecursionlimit>},\n                                  only with C{B{recursive}=True}.\n        '''\n        return self._discrete(point2s, fraction, self.distance, recursive)\n\n    def _discrete(self, point2s, fraction, distance, recursive):\n        '''(INTERNAL) Detailed C{discrete} with C{distance}.\n        '''\n        n2, ps2 = self._points2(point2s)\n        n1, ps1 = self._n1, self._ps1\n\n        f2 = _fraction(fraction, n2)\n        p2 = self.points_fraction if f2 < EPS1 else self.points_  # PYCHOK attr\n\n        f1 = self.fraction\n        p1 = self.points_fraction if f1 < EPS1 else self.points_  # PYCHOK attr\n\n        def _dF(fi1, fi2):\n            return distance(p1(ps1, fi1), p2(ps2, fi2))\n\n        try:\n            if recursive or not f1 == f2 == 1:\n                t = _frechetR(n1, f1, n2, f2, _dF, self.units)\n            else:  # elif f1 == f2 == 1:\n                t = _frechetDP(n1, n2, _dF, self.units, False)\n#           else:\n#               f = fraction or self.fraction\n#               raise FrechetError(fraction=f, txt='non-recursive')\n        except TypeError as x:\n            t = _DOT_(self.classname, typename(self.discrete))\n            raise FrechetError(t, cause=x)\n        return t\n\n    def distance(self, point1, point2):\n        '''Return the distance between B{C{point1}} and B{C{point2s}},\n           subject to the supplied optional keyword arguments, see\n           property C{kwds}.\n        '''\n        return self._func(point1.lat, point1.lon,\n                          point2.lat, point2.lon, **self._kwds)\n\n    @property_doc_(''' the index fraction (C{float}).''')\n    def fraction(self):\n        '''Get the index fraction (C{float} or C{1}).\n        '''\n        return self._f1\n\n    @fraction.setter  # PYCHOK setter!\n    def fraction(self, fraction):\n        '''Set the index fraction (C{float} in C{EPS}..L{EPS1}) to interpolate\n           intermediate B{C{point1s}} or use C{None}, C{0} or C{1} for no\n           intermediate B{C{point1s}} and no I{fractional} indices.\n\n           @raise FrechetError: Invalid B{C{fraction}}.\n        '''\n        self._f1 = _fraction(fraction, self._n1)\n\n#   def _func(self, *args, **kwds):  # PYCHOK no cover\n#       '''(INTERNAL) I{Must be overloaded}.'''\n#       self._notOverloaded(*args, **kwds)\n\n    @Property\n    def _func(self):\n        '''(INTERNAL) I{Must be overloaded}.'''\n        self._notOverloaded(**self.kwds)\n\n    @_func.setter_  # PYCHOK setter_underscore!\n    def _func(self, func):\n        return _formy._Propy(func, 4, self.kwds)\n\n    @property_RO\n    def kwds(self):\n        '''Get the supplied, optional keyword arguments (C{dict}).\n        '''\n        return self._kwds\n\n    def point(self, point):\n        '''Convert a point for the C{.distance} method.\n\n           @arg point: The point to convert ((C{LatLon}, L{Numpy2LatLon},\n                       L{Tuple2LatLon} or C{other}).\n\n           @return: The converted B{C{point}}.\n        '''\n        return point  # pass thru\n\n    def points_(self, points, i):\n        '''Get and convert a point for the C{.distance} method.\n\n           @arg points: The orignal B{C{points}} to convert ((C{LatLon}[],\n                        L{Numpy2LatLon}[], L{Tuple2LatLon}[] or C{other}[]).\n           @arg i: The B{C{points}} index (C{int}).\n\n           @return: The converted B{C{points[i]}}.\n        '''\n        return self.point(points[i])\n\n    def points_fraction(self, points, fi):\n        '''Get and convert a I{fractional} point for the C{.distance} method.\n\n           @arg points: The orignal B{C{points}} to convert ((C{LatLon}[],\n                        L{Numpy2LatLon}[], L{Tuple2LatLon}[] or C{other}[]).\n           @arg fi: The I{fractional} index in B{C{points}} (C{float} or C{int}).\n\n           @return: The interpolated, converted, intermediate B{C{points[fi]}}.\n        '''\n        return self.point(_fractional(points, fi, None, wrap=None, dup=True))  # was=self.wrap\n\n    def _points2(self, points):\n        '''(INTERNAL) Check a set of points, overloaded in L{FrechetDistanceTo}.\n        '''\n        return _points2(points, closed=False, Error=FrechetError)\n\n    @property_doc_(''' the distance units (C{Unit} or C{str}).''')\n    def units(self):\n        '''Get the distance units (C{Unit} or C{str}).\n        '''\n        return self._units\n\n    @units.setter  # PYCHOK setter!\n    def units(self, units):\n        '''Set the distance units (C{Unit} or C{str}).\n\n           @raise TypeError: Invalid B{C{units}}.\n        '''\n        self._units = _unitsBase._xUnits(units, Base=Float)\n\n    @property_RO\n    def wrap(self):\n        '''Get the C{wrap} setting (C{bool} or C{None}).\n        '''\n        return _xkwds_get(self._kwds, wrap=None)\n\n\nclass FrechetDegrees(Frechet):\n    '''DEPRECATED, use an other C{Frechet*} class.\n    '''\n    _units = _unitsBase._Str_degrees\n\n    if _FOR_DOCS:\n        __init__ = Frechet.__init__\n        discrete = Frechet.discrete\n\n    def distance(self, point1, point2, *args, **kwds):  # PYCHOK no cover\n        '''I{Must be overloaded}.'''\n        self._notOverloaded(point1, point2, *args, **kwds)\n\n\nclass FrechetRadians(Frechet):\n    '''DEPRECATED, use an other C{Frechet*} class.\n    '''\n    _units = _unitsBase._Str_radians\n\n    if _FOR_DOCS:\n        __init__ = Frechet.__init__\n        discrete = Frechet.discrete\n\n    def distance(self, point1, point2, *args, **kwds):  # PYCHOK no cover\n        '''I{Must be overloaded}.'''\n        self._notOverloaded(point1, point2, *args, **kwds)\n\n    def point(self, point):\n        '''Return B{C{point}} as L{PhiLam2Tuple} to maintain\n           I{backward compatibility} of L{FrechetRadians}.\n\n           @return: A L{PhiLam2Tuple}C{(phi, lam)}.\n        '''\n        try:\n            return point.philam\n        except AttributeError:\n            return PhiLam2Tuple(radians(point.lat), radians(point.lon))\n\n\nclass _FrechetMeterRadians(Frechet):\n    '''(INTERNAL) Returning C{meter} or C{radians} depending on\n       the optional keyword arguments supplied at instantiation\n       of the C{Frechet*} sub-class.\n    '''\n    _units  = _unitsBase._Str_meter\n    _units_ = _unitsBase._Str_radians\n\n    def discrete(self, point2s, fraction=None, recursive=False):\n        '''Overloaded method L{Frechet.discrete} to determine\n           the distance function and units from the optional\n           keyword arguments given at this instantiation, see\n           property C{kwds}.\n\n           @see: Method L{Frechet.discrete} for other details.\n        '''\n        _rad = _formy._radistance(self)\n        return self._discrete(point2s, fraction, _rad, recursive)\n\n    @Property\n    def _func_(self):  # see _formy._radistance\n        '''(INTERNAL) I{Must be overloaded}.'''\n        self._notOverloaded(**self.kwds)\n\n    @_func_.setter_  # PYCHOK setter_underscore!\n    def _func_(self, func):\n        return _formy._Propy(func, 3, self.kwds)\n\n\nclass FrechetCosineLaw(_FrechetMeterRadians):\n    '''Compute the C{Frechet} distance with functionn L{pygeodesy.cosineLaw}.\n\n       @note: See note at function L{pygeodesy.vincentys_}.\n    '''\n    def __init__(self, point1s, **fraction_name__corr_earth_wrap):\n        '''New L{FrechetCosineLaw} calculator/interpolator.\n\n           @kwarg fraction_name__corr_earth_wrap: Optional\n                           C{B{fraction}=None} and C{B{name}=NN} and keyword\n                           arguments for function L{pygeodesy.cosineLaw}.\n\n           @see: L{Frechet.__init__} for details about B{C{point1s}},\n                 B{C{fraction}}, B{C{name}} and other exceptions.\n        '''\n        Frechet.__init__(self, point1s, **fraction_name__corr_earth_wrap)\n        self._func  = _formy.cosineLaw\n        self._func_ = _formy.cosineLaw_\n\n    if _FOR_DOCS:\n        discrete = Frechet.discrete\n\n\nclass FrechetDistanceTo(Frechet):  # FrechetMeter\n    '''Compute the C{Frechet} distance with the point1s' C{LatLon.distanceTo} method.\n    '''\n    _units = _unitsBase._Str_meter\n\n    def __init__(self, point1s, **fraction_name__distanceTo_kwds):\n        '''New L{FrechetDistanceTo} calculator/interpolator.\n\n           @kwarg fraction_name__distanceTo_kwds: Optional C{B{fraction}=None}\n                                 and C{B{name}=NN} and keyword arguments for\n                                 each B{C{point1s}}' C{LatLon.distanceTo} method.\n\n           @see: L{Frechet.__init__} for details about B{C{point1s}}, B{C{fraction}},\n                 B{C{name}} and other exceptions.\n\n           @note: All B{C{point1s}} I{must} be instances of the same ellipsoidal\n                  or spherical C{LatLon} class.\n        '''\n        Frechet.__init__(self, point1s, **fraction_name__distanceTo_kwds)\n\n    if _FOR_DOCS:\n        discrete = Frechet.discrete\n\n    def distance(self, p1, p2):\n        '''Return the distance in C{meter}.\n        '''\n        return p1.distanceTo(p2, **self._kwds)\n\n    def _points2(self, points):\n        '''(INTERNAL) Check a set of points.\n        '''\n        np, ps = Frechet._points2(self, points)\n        return np, _distanceTo(FrechetError, points=ps)\n\n\nclass FrechetEquirectangular(Frechet):\n    '''Compute the C{Frechet} distance with function L{pygeodesy.equirectangular}.\n    '''\n    _units = _unitsBase._Str_radians2\n\n    def __init__(self, point1s, **fraction_name__adjust_limit_wrap):\n        '''New L{FrechetEquirectangular} calculator/interpolator.\n\n           @kwarg fraction_name__adjust_limit_wrap: Optional C{B{fraction}=None}\n                                 and C{B{name}=NN} and keyword arguments for\n                                 function L{pygeodesy.equirectangular} I{with\n                                 default} C{B{limit}=0} for I{backward compatibility}.\n\n           @see: L{Frechet.__init__} for details about B{C{point1s}}, B{C{fraction}},\n                 B{C{name}} and other exceptions.\n        '''\n        Frechet.__init__(self, point1s, **_xkwds(fraction_name__adjust_limit_wrap,\n                                                 limit=0))\n        self._func = _formy._equirectangular  # helper\n\n    if _FOR_DOCS:\n        discrete = Frechet.discrete\n\n\nclass FrechetEuclidean(_FrechetMeterRadians):\n    '''Compute the C{Frechet} distance with function L{pygeodesy.euclidean}.\n    '''\n    def __init__(self, point1s, **fraction_name__adjust_radius_wrap):  # was=True\n        '''New L{FrechetEuclidean} calculator/interpolator.\n\n           @kwarg fraction_name__adjust_radius_wrap: Optional C{B{fraction}=None}\n                                 and C{B{name}=NN} and keyword arguments for\n                                 function L{pygeodesy.euclidean}.\n\n           @see: L{Frechet.__init__} for details about B{C{point1s}}, B{C{fraction}},\n                 B{C{name}} and other exceptions.\n        '''\n        Frechet.__init__(self, point1s, **fraction_name__adjust_radius_wrap)\n        self._func  = _formy.euclidean\n        self._func_ = _formy.euclidean_\n\n    if _FOR_DOCS:\n        discrete = Frechet.discrete\n\n\nclass FrechetExact(Frechet):\n    '''Compute the C{Frechet} distance with method L{GeodesicExact}C{.Inverse}.\n    '''\n    _units = _unitsBase._Str_degrees\n\n    def __init__(self, point1s, datum=None, **fraction_name__wrap):\n        '''New L{FrechetExact} calculator/interpolator.\n\n           @kwarg datum: Datum to override the default C{Datums.WGS84} and first\n                         B{C{point1s}}' datum (L{Datum}, L{Ellipsoid}, L{Ellipsoid2}\n                         or L{a_f2Tuple}).\n           @kwarg fraction_name__wrap: Optional C{B{fraction}=None} and C{B{name}=NN}\n                                 and keyword argument for method C{Inverse1} of class\n                                 L{geodesicx.GeodesicExact}.\n\n           @raise TypeError: Invalid B{C{datum}}.\n\n           @see: L{Frechet.__init__} for details about B{C{point1s}}, B{C{fraction}},\n                 B{C{name}} and other exceptions.\n        '''\n        Frechet.__init__(self, point1s, **fraction_name__wrap)\n        self._datum_setter(datum)\n        self._func = self.datum.ellipsoid.geodesicx.Inverse1  # note -x\n\n    if _FOR_DOCS:\n        discrete = Frechet.discrete\n\n\nclass FrechetFlatLocal(_FrechetMeterRadians):\n    '''Compute the C{Frechet} distance with function L{pygeodesy.flatLocal_}/L{pygeodesy.hubeny}.\n    '''\n    _units_ = _unitsBase._Str_radians2  # see L{flatLocal_}\n\n    def __init__(self, point1s, **fraction_name__datum_scaled_wrap):\n        '''New L{FrechetFlatLocal}/L{FrechetHubeny} calculator/interpolator.\n\n           @kwarg fraction_name__datum_scaled_wrap: Optional C{B{fraction}=None}\n                                 and C{B{name}=NN} and keyword arguments for\n                                 function L{pygeodesy.flatLocal}.\n\n           @see: L{Frechet.__init__} for details about B{C{point1s}}, B{C{fraction}},\n                 B{C{name}} and other exceptions.\n\n           @note: The distance C{units} are C{radians squared}, not C{radians}.\n        '''\n        Frechet.__init__(self, point1s, **fraction_name__datum_scaled_wrap)\n        self._func  = _formy.flatLocal\n        self._func_ =  self.datum.ellipsoid._hubeny_2\n\n    if _FOR_DOCS:\n        discrete = Frechet.discrete\n\n\nclass FrechetFlatPolar(_FrechetMeterRadians):\n    '''Compute the C{Frechet} distance with function L{flatPolar_}.\n    '''\n    def __init__(self, point1s, **fraction_name__radius_wrap):\n        '''New L{FrechetFlatPolar} calculator/interpolator.\n\n           @kwarg fraction_name__radius_wrap: Optional C{B{fraction}=None}\n                                 and C{B{name}=NN} and keyword arguments\n                                 for function L{pygeodesy.flatPolar}.\n\n           @see: L{Frechet.__init__} for details about B{C{point1s}},\n                 B{C{fraction}}, B{C{name}} and other exceptions.\n       '''\n        Frechet.__init__(self, point1s, **fraction_name__radius_wrap)\n        self._func  = _formy.flatPolar\n        self._func_ = _formy.flatPolar_\n\n    if _FOR_DOCS:\n        discrete = Frechet.discrete\n\n\nclass FrechetHaversine(_FrechetMeterRadians):\n    '''Compute the C{Frechet} distance with function L{pygeodesy.haversine_}.\n\n       @note: See note at function L{pygeodesy.vincentys_}.\n    '''\n    def __init__(self, point1s, **fraction_name__radius_wrap):\n        '''New L{FrechetHaversine} calculator/interpolator.\n\n           @kwarg fraction_name__radius_wrap: Optional C{B{fraction}=None}\n                                 and C{B{name}=NN} and keyword arguments\n                                 for function L{pygeodesy.haversine}.\n\n           @see: L{Frechet.__init__} for details about B{C{point1s}},\n                 B{C{fraction}}, B{C{name}} and other exceptions.\n        '''\n        Frechet.__init__(self, point1s, **fraction_name__radius_wrap)\n        self._func  = _formy.haversine\n        self._func_ = _formy.haversine_\n\n    if _FOR_DOCS:\n        discrete = Frechet.discrete\n\n\nclass FrechetHubeny(FrechetFlatLocal):  # for Karl Hubeny\n    if _FOR_DOCS:\n        __doc__  = FrechetFlatLocal.__doc__\n        __init__ = FrechetFlatLocal.__init__\n        discrete = FrechetFlatLocal.discrete\n        distance = FrechetFlatLocal.discrete\n\n\nclass FrechetKarney(Frechet):\n    '''Compute the C{Frechet} distance with I{Karney}'s U{geographiclib\n       <https://PyPI.org/project/geographiclib>} U{geodesic.Geodesic\n       <https://GeographicLib.SourceForge.io/Python/doc/code.html>}C{.Inverse}\n       method.\n    '''\n    _units = _unitsBase._Str_degrees\n\n    def __init__(self, point1s, datum=None, **fraction_name__wrap):\n        '''New L{FrechetKarney} calculator/interpolator.\n\n           @kwarg datum: Datum to override the default C{Datums.WGS84} and\n                         first B{C{knots}}' datum (L{Datum}, L{Ellipsoid},\n                         L{Ellipsoid2} or L{a_f2Tuple}).\n           @kwarg fraction_name__wrap: Optional C{B{fraction}=None} and\n                                 C{B{name}=NN} and keyword arguments for\n                                 method C{Inverse1} of class L{geodesicw.Geodesic}.\n\n           @raise ImportError: Package U{geographiclib\n                  <https://PyPI.org/project/geographiclib>} missing.\n\n           @raise TypeError: Invalid B{C{datum}}.\n\n           @see: L{Frechet.__init__} for details about B{C{point1s}},\n                 B{C{fraction}}, B{C{name}} and other exceptions.\n        '''\n        Frechet.__init__(self, point1s, **fraction_name__wrap)\n        self._datum_setter(datum)\n        self._func = self.datum.ellipsoid.geodesic.Inverse1\n\n    if _FOR_DOCS:\n        discrete = Frechet.discrete\n\n\nclass FrechetThomas(_FrechetMeterRadians):\n    '''Compute the C{Frechet} distance with function L{pygeodesy.thomas_}.\n    '''\n    def __init__(self, point1s, **fraction_name__datum_wrap):\n        '''New L{FrechetThomas} calculator/interpolator.\n\n           @kwarg fraction_name__datum_wrap: Optional C{B{fraction}=None}\n                                 and C{B{name}=NN} and keyword arguments\n                                 for function L{pygeodesy.thomas}.\n\n           @see: L{Frechet.__init__} for details about B{C{point1s}},\n                 B{C{fraction}}, B{C{name}} and other exceptions.\n        '''\n        Frechet.__init__(self, point1s, **fraction_name__datum_wrap)\n        self._func  = _formy.thomas\n        self._func_ = _formy.thomas_\n\n    if _FOR_DOCS:\n        discrete = Frechet.discrete\n\n\nclass Frechet6Tuple(_NamedTuple):\n    '''6-Tuple C{(fd, fi1, fi2, r, n, units)} with the I{discrete}\n       U{Fréchet<https://WikiPedia.org/wiki/Frechet_distance>} distance\n       C{fd}, I{fractional} indices C{fi1} and C{fi2} as C{FIx}, the\n       recursion depth C{r}, the number of distances computed C{n} and\n       the L{units} class or name of the distance C{units}.\n\n       Empirically, the recursion depth C{r ≈ 2 * sqrt(len(point1s) *\n       len(point2s))} or C{0} if non-recursive, see function L{frechet_}.\n\n       If I{fractional} indices C{fi1} and C{fi2} are C{int}, the\n       returned C{fd} is the distance between C{point1s[fi1]} and\n       C{point2s[fi2]}.  For C{float} indices, the distance is\n       between an intermediate point along C{point1s[int(fi1)]} and\n       C{point1s[int(fi1) + 1]} respectively an intermediate point\n       along C{point2s[int(fi2)]} and C{point2s[int(fi2) + 1]}.\n\n       Use function L{fractional} to compute the point at a\n       I{fractional} index.\n    '''\n    _Names_ = ('fd',  'fi1', 'fi2', 'r',     _n_,      _units_)\n    _Units_ = (_Pass,  FIx,   FIx,   Number_, Number_, _Pass)\n\n    def toUnits(self, **Error_name):  # PYCHOK expected\n        '''Overloaded C{_NamedTuple.toUnits} for C{fd} units.\n        '''\n        U = _unitsBase._xUnit(self.units, Float)  # PYCHOK expected\n        return _NamedTuple.toUnits(self.reUnit(U), **Error_name)  # PYCHOK self\n\n#   def __gt__(self, other):\n#       _xinstanceof(Frechet6Tuple, other=other)\n#       return self if self.fd > other.fd else other  # PYCHOK .fd=[0]\n#\n#   def __lt__(self, other):\n#       _xinstanceof(Frechet6Tuple, other=other)\n#       return self if self.fd < other.fd else other  # PYCHOK .fd=[0]\n\n\nclass FrechetVincentys(_FrechetMeterRadians):\n    '''Compute the C{Frechet} distance with function L{pygeodesy.vincentys_}.\n\n       @note: See note at function L{pygeodesy.vincentys_}.\n    '''\n    def __init__(self, point1s, **fraction_name__radius_wrap):\n        '''New L{FrechetVincentys} calculator/interpolator.\n\n           @kwarg fraction_name__radius_wrap: Optional C{B{fraction}=None}\n                                 and C{B{name}=NN} and keyword arguments\n                                 for function L{pygeodesy.vincentys}.\n\n           @see: L{Frechet.__init__} for details about B{C{point1s}},\n                 B{C{fraction}}, B{C{name}} and other exceptions.\n        '''\n        Frechet.__init__(self, point1s, **fraction_name__radius_wrap)\n        self._func  = _formy.vincentys\n        self._func_ = _formy.vincentys_\n\n    if _FOR_DOCS:\n        discrete = Frechet.discrete\n\n\ndef frechet_(point1s, point2s, distance=None, units=NN, recursive=False):\n    '''Compute the I{discrete} U{Fréchet<https://WikiPedia.org/wiki/Frechet_distance>}\n       distance between two paths, each given as a set of points.\n\n       @arg point1s: First set of points (C{LatLon}[], L{Numpy2LatLon}[],\n                     L{Tuple2LatLon}[] or C{other}[]).\n       @arg point2s: Second set of points (C{LatLon}[], L{Numpy2LatLon}[],\n                     L{Tuple2LatLon}[] or C{other}[]).\n       @kwarg distance: Callable returning the distance between a B{C{point1s}}\n                        and a B{C{point2s}} point (signature C{(point1, point2)}).\n       @kwarg units: Optional, the distance units (C{Unit} or C{str}).\n       @kwarg recursive: Use C{True} for backward compatibility (C{bool}).\n\n       @return: A L{Frechet6Tuple}C{(fd, fi1, fi2, r, n, units)} where C{fi1}\n                and C{fi2} are type C{int} indices into B{C{point1s}} respectively\n                B{C{point2s}}.\n\n       @raise FrechetError: Insufficient number of B{C{point1s}} or B{C{point2s}}.\n\n       @raise RecursionError: Recursion depth exceeded, see U{sys.getrecursionlimit()\n                              <https://docs.Python.org/3/library/sys.html#sys.getrecursionlimit>},\n                              only with C{B{recursive}=True}.\n\n       @raise TypeError: If B{C{distance}} is not a callable.\n\n       @note: Function L{frechet_} does I{not} support I{fractional} indices for intermediate\n              B{C{point1s}} and B{C{point2s}}.\n\n       @see: Non-recursive U{dp_frechet_dist\n             <https://GitHub.com/cjekel/similarity_measures/issues/6#issuecomment-544350039>}.\n    '''\n    _xcallable(distance=distance)\n\n    n1, ps1 = _points2(point1s, closed=False, Error=FrechetError)\n    n2, ps2 = _points2(point2s, closed=False, Error=FrechetError)\n\n    def _dF(i1, i2):\n        return distance(ps1[i1], ps2[i2])\n\n    if recursive:\n        t = _frechetR(n1, 1, n2, 1, _dF, units)\n    else:\n        s = n1 < n2\n        if s:  # n2, ps2 as shortest\n            n1, ps1, n2, ps2 = n2, ps2, n1, ps1\n        t = _frechetDP(n1, n2, _dF, units, s)\n    return t\n\n\ndef _frechet3(r, t, s):  # return tuple r if equal\n    if s[0] < r[0]:\n        r = s\n    return t if t[0] < r[0] else r\n\n\ndef _frechetDP(ni, nj, dF, units, swap):\n    '''(INTERNAL) DP core of function L{frechet_} and\n       method C{discrete} of C{Frechet...} classes.\n    '''\n    def _max2(r, *t):  # return tuple r if equal\n        return t if t[0] > r[0] else r\n\n    _min3 = _frechet3\n\n    d = dF(0, 0)\n    t = (d, 0, 0)\n    r = [t] * nj  # nj-list of 3-tuples\n    for j in range(1, nj):\n        d = max(d, dF(0, j))\n        r[j] = (d, 0, j)\n    for i in range(1, ni):\n        t1j1 = r[0]  # == r[i-1][0]\n        r[0] = t = _max2(t1j1, dF(i, 0), i, 0)\n        for j in range(1, nj):\n            t1j  =  r[j]  # == r[i-1][j]\n            t    = _min3(t1j, t, t1j1)  # == r[i-1][j-1]\n            r[j] =  t = _max2(t, dF(i, j), i, j)\n            t1j1 =  t1j\n    d, i, j = t  # == r[nj-1]\n    if swap:\n        i, j = j, i\n#   del r\n    return Frechet6Tuple(d, i, j, 0, (ni * nj), units)\n\n\ndef _frechetR(ni, fi, nj, fj, dF, units):  # MCCABE 14\n    '''(INTERNAL) Recursive core of function L{frechet_}\n       and method C{discrete} of C{Frechet...} classes.\n    '''\n    class iF(dict):  # index, depth ints and floats cache\n        def __call__(self, i):\n            return dict.setdefault(self, i, i)\n\n    _min3 = _frechet3\n\n    iF =  iF()  # PYCHOK once\n    tF = _defaultdict(dict)  # tuple[i][j]\n\n    def _rF(i, j, r):  # recursive Fréchet\n        i = iF(i)\n        j = iF(j)\n        try:\n            return tF[i][j]\n        except KeyError:\n            pass\n        r = iF(r + 1)\n        try:\n            if i > 0:\n                if j > 0:\n                    t = _min3(_rF(i - fi, j,      r),\n                              _rF(i - fi, j - fj, r),\n                              _rF(i,      j - fj, r))\n                elif j < 0:\n                    raise IndexError\n                else:  # j == 0\n                    t = _rF(i - fi, 0, r)\n            elif i < 0:\n                raise IndexError\n\n            elif j > 0:  # i == 0\n                t = _rF(0, j - fj, r)\n            elif j < 0:  # i == 0\n                raise IndexError\n            else:  # i == j == 0\n                t = (NINF, i, j, r)\n\n            d = dF(i, j)\n            if d > t[0]:\n                t = (d, i, j, r)\n        except IndexError:\n            t = (INF, i, j, r)\n        tF[i][j] = t\n        return t\n\n    d, i, j, r = _rF(ni - 1, nj - 1, 0)\n    n = sum(map(len, tF.values()))  # (ni * nj) <= n < (ni * nj * 2)\n#   del iF, tF\n    return Frechet6Tuple(d, i, j, r, n, units)\n\n\nif __name__ == _DMAIN_:\n\n    def _main():\n        from time import time\n        from pygeodesy import euclid, printf  # randomrangenerator\n        _r = range  # randomrangenerator('R')\n\n        def _d(p1, p2):\n            return euclid(p1[0] - p2[0], p1[1] - p2[1])\n\n        p1 = tuple(zip(_r(-90, 90, 4), _r(-180, 180, 8)))  # 45\n        p2 = tuple(zip(_r(-89, 90, 3), _r(-179, 180, 6)))  # 60\n        ss = []\n        for r, u in ((True, 'R'), (False, 'DP')):\n            s = time()\n            t = frechet_(p1, p2, _d, recursive=r, units=u)\n            s = time() - s\n            printf('# %r in %.3f ms', t, (s * 1e3))\n            ss.append(s)\n\n        from pygeodesy.internals import _versions\n        printf('# %s  %.2fX', _versions(), (ss[0] / ss[1]))\n\n    _main()\n\n# % python3.13 -m pygeodesy.frechet\n# Frechet6Tuple(fd=3.828427, fi1=2, fi2=3, r=99, n=2700, units='R') in 3.575 ms\n# Frechet6Tuple(fd=3.828427, fi1=2, fi2=3, r=0, n=2700, units='DP') in 0.704 ms\n# pygeodesy 25.4.25 Python 3.13.3 64bit arm64 macOS 15.4.1  5.08X\n\n# % python2.7 -m pygeodesy.frechet\n# Frechet6Tuple(fd=3.828427, fi1=2, fi2=3, r=99, n=2700, units='R') in 7.030 ms\n# Frechet6Tuple(fd=3.828427, fi1=2, fi2=3, r=0, n=2700, units='DP') in 1.536 ms\n# pygeodesy 25.4.25 Python 2.7.18 64bit arm64_x86_64 macOS 10.16  4.58X\n\n# **) MIT License\n#\n# Copyright (C) 2016-2026 -- mrJean1 at Gmail -- All Rights Reserved.\n#\n# Permission is hereby granted, free of charge, to any person obtaining a\n# copy of this software and associated documentation files (the \"Software\"),\n# to deal in the Software without restriction, including without limitation\n# the rights to use, copy, modify, merge, publish, distribute, sublicense,\n# and/or sell copies of the Software, and to permit persons to whom the\n# Software is furnished to do so, subject to the following conditions:\n#\n# The above copyright notice and this permission notice shall be included\n# in all copies or substantial portions of the Software.\n#\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL\n# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR\n# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\n# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n# OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "pygeodesy/fstats.py",
    "content": "\n# -*- coding: utf-8 -*-\n\nu'''Classes for I{running} statistics and regressions based on\nL{pygeodesy.Fsum}, precision floating point summation and accurate\nmultiplication.\n'''\n# make sure int/int division yields float quotient, see .basics\nfrom __future__ import division as _; del _  # noqa: E702 ;\n\nfrom pygeodesy.basics import isscalar, isodd, _xinstanceof, \\\n                            _xiterable, _xsubclassof, _zip,  typename\nfrom pygeodesy.constants import _0_0, _1_0, _2_0, _3_0, _4_0, _6_0\nfrom pygeodesy.errors import _ValueError, _xError, _xkwds_item2, \\\n                             _xsError\nfrom pygeodesy.fmath import Fsqrt,  Fmt\nfrom pygeodesy.fsums import _2finite, Fsum, _iadd_op_, _isFsum_2Tuple\n# from pygeodesy.internals import typename  # from .basics\nfrom pygeodesy.interns import _odd_, _SPACE_\nfrom pygeodesy.lazily import _ALL_DOCS, _ALL_LAZY\nfrom pygeodesy.named import _name__, _Named, _NotImplemented, \\\n                             property_RO\n# from pygeodesy.props import property_RO  # from .named\n# from pygeodesy.streprs import Fmt  # from .fmath\n\n__all__ = _ALL_LAZY.fstats\n__version__ = '25.05.12'\n\n\ndef _sampled(n, sample):\n    '''(INTERNAL) Return the sample or the entire count.\n    '''\n    return (n - 1) if sample and n > 0 else n\n\n\ndef _Xs(**name_xs):\n    '''(INTERNAL) Yield all C{xs} as C{float} or L{Fsum}.\n    '''\n    name, xs = _xkwds_item2(name_xs)\n    try:\n        i, x = 0, xs\n        for i, x in enumerate(xs):  # don't unravel Fsums\n            yield x._Fsum if _isFsum_2Tuple(x) else x\n    except Exception as X:\n        raise _xsError(X, xs, i, x, name)\n\n\nclass _FstatsNamed(_Named):\n    '''(INTERNAL) Base class.\n    '''\n    _n = 0\n\n    def __add__(self, other):\n        '''Sum of this and an other instance, a C{scalar}, an L{Fsum}\n           or L{Fsum2Tuple}.\n        '''\n        f  = self.copy(name__=self.__add__)  # PYCHOK expected\n        f += other\n        return f\n\n    def __float__(self):  # PYCHOK no cover\n        '''Not implemented.'''\n        return _NotImplemented(self)\n\n    def __int__(self):  # PYCHOK no cover\n        '''Not implemented.'''\n        return _NotImplemented(self)\n\n    def __len__(self):\n        '''Return the I{total} number of accumulated C{Scalars} (C{int}).\n        '''\n        return self._n\n\n    def __neg__(self):  # PYCHOK no cover\n        '''Not implemented.'''\n        return _NotImplemented(self)\n\n    def __radd__(self, other):  # PYCHOK no cover\n        '''Not implemented.'''\n        return _NotImplemented(self, other)\n\n    def __str__(self):\n        n =  self.name\n        n = _SPACE_(self.classname, n) if n else self.classname\n        return Fmt.SQUARE(n, len(self))\n\n    def copy(self, deep=False, **name):\n        '''Copy this instance, C{shallow} or B{C{deep}}.\n\n           @kwarg name: Optional, overriding C{B{name}=\"copy\"} (C{str}).\n\n           @return: The copy instance.\n        '''\n        n = _name__(name, name__=self.copy)\n        f = _Named.copy(self, deep=deep, name=n)\n        return self._copy(f, self)  # PYCHOK expected\n\n    fcopy = copy  # for backward compatibility\n\n\nclass _FstatsBase(_FstatsNamed):\n    '''(INTERNAL) Base running stats class.\n    '''\n    _Ms = ()\n\n    def _copy(self, d, s):\n        '''(INTERNAL) Copy C{B{d} = B{s}}.\n        '''\n        _xinstanceof(self.__class__, d=d, s=s)\n        d._Ms = tuple(M.copy() for M in s._Ms)  # deep=False\n        d._n  =                         s._n\n        return d\n\n    def fadd(self, xs, sample=False):  # PYCHOK no cover\n        '''I{Must be overloaded}.'''\n        self._notOverloaded(xs, sample=sample)\n\n    def fadd_(self, *xs, **sample):\n        '''Accumulate and return the current count.\n\n           @see: Method C{fadd} for further details.\n        '''\n        return self.fadd(xs, **sample)\n\n    def fmean(self, xs=None):\n        '''Accumulate and return the current mean.\n\n           @kwarg xs: Iterable of additional values (each C{scalar},\n                      an L{Fsum} or L{Fsum2Tuple}).\n\n           @return: Current, running mean (C{float}).\n\n           @see: Method C{fadd}.\n        '''\n        return float(self._Mean(xs))\n\n    def fmean_(self, *xs):\n        '''Accumulate and return the current mean.\n\n           @see: Method C{fmean} for further details.\n        '''\n        return self.fmean(xs)\n\n    def fstdev(self, xs=None, **sample):\n        '''Accumulate and return the current standard deviation.\n\n           @arg xs: Iterable of additional values (each C{scalar}, an L{Fsum}\n                    or L{Fsum2Tuple}).\n           @kwarg sample: Use C{B{sample}=True} for the I{sample} deviation\n                          instead of the I{population} deviation (C{bool}).\n\n           @return: Current, running (sample) standard deviation (C{float}).\n\n           @see: Method C{fadd}.\n        '''\n        return float(self._Stdev(xs, **sample))\n\n    def fstdev_(self, *xs, **sample):\n        '''Accumulate and return the current standard deviation.\n\n           @see: Method C{fstdev} for further details.\n        '''\n        return self.fstdev(xs, **sample)\n\n    def fvariance(self, xs=None, **sample):\n        '''Accumulate and return the current variance.\n\n           @arg xs: Iterable of additional values (each C{scalar}, an L{Fsum}\n                    or L{Fsum2Tuple}).\n           @kwarg sample: Use C{B{sample}=True} for the I{sample} variance\n                          instead of the I{population} variance (C{bool}).\n\n           @return: Current, running (sample) variance (C{float}).\n\n           @see: Method C{fadd}.\n        '''\n        return float(self._Variance(xs, **sample))\n\n    def fvariance_(self, *xs, **sample):\n        '''Accumulate and return the current variance.\n\n           @see: Method C{fvariance} for further details.\n        '''\n        return self.fvariance(xs, **sample)\n\n    def _iadd_other(self, other):\n        '''(INTERNAL) Add one or several values.\n        '''\n        try:\n            if _isFsum_2Tuple(other):\n                self.fadd_(other._Fsum)\n            elif isscalar(other):\n                self.fadd_(_2finite(other))\n            elif _xiterable(other):\n                self.fadd(other)\n        except Exception as X:\n            t = _SPACE_(self, _iadd_op_, repr(other))\n            raise _xError(X, t)\n\n    @property_RO\n    def _M1(self):\n        '''(INTERNAL) get the 1st Moment accumulator.'''\n        return self._Ms[0]\n\n    @property_RO\n    def _M2(self):\n        '''(INTERNAL) get the 2nd Moment accumulator.'''\n        return self._Ms[1]\n\n    def _Mean(self, xs=None):\n        '''(INTERNAL) Return the current mean as L{Fsum}.\n        '''\n        if xs:\n            self.fadd(xs)\n        return self._M1  # .copy()\n\n    def _Stdev(self, xs=None, **sample):\n        '''(INTERNAL) Return the current (sample) standard deviation as L{Fsum}.\n        '''\n        V = self._Variance(xs, **sample)\n        return Fsqrt(V) if V > 0 else _0_0\n\n    def _Variance(self, xs=None, **sample):\n        '''(INTERNAL) Return the current (sample) variance as L{Fsum}.\n        '''\n        n = self.fadd(xs, **sample)\n        return (self._M2 / n) if n > 0 else _0_0\n\n\nclass Fcook(_FstatsBase):\n    '''U{Cook<https://www.JohnDCook.com/blog/skewness_kurtosis>}'s\n       C{RunningStats} computing the running mean, median and\n       (sample) kurtosis, skewness, variance, standard deviation\n       and Jarque-Bera normality.\n\n       @see: L{Fwelford} and U{Higher-order statistics<https://\n             WikiPedia.org/wiki/Algorithms_for_calculating_variance>}.\n    '''\n    def __init__(self, xs=None, **name):\n        '''New L{Fcook} stats accumulator.\n\n           @arg xs: Iterable of additional values (each C{scalar}, an\n                    L{Fsum} or L{Fsum2Tuple}).\n           @kwarg name: Optional C{B{name}=NN} (C{str}).\n\n           @see: Method L{Fcook.fadd}.\n        '''\n        self._Ms = tuple(Fsum() for _ in range(4))  # 1st, 2nd ... Moment\n        if name:\n            self.name = name\n        if xs:\n            self.fadd(xs)\n\n    def __iadd__(self, other):\n        '''Add B{C{other}} to this L{Fcook} instance.\n\n           @arg other: An L{Fcook} instance or value or iterable\n                       of values (each C{scalar}, an L{Fsum} or\n                       L{Fsum2Tuple}).\n\n           @return: This instance, updated (L{Fcook}).\n\n           @raise TypeError: Invalid B{C{other}}.\n\n           @raise ValueError: Invalid or non-finite B{C{other}}.\n\n           @see: Method L{Fcook.fadd}.\n        '''\n        if isinstance(other, Fcook):\n            nb = len(other)\n            if nb > 0:\n                na = len(self)\n                if na > 0:\n                    A1, A2, A3, A4 = self._Ms\n                    B1, B2, B3, B4 = other._Ms\n\n                    n   =  na + nb\n                    _n  = _1_0 / n\n                    D   =  A1 - B1  # b1 - a1\n                    Dn  =  D * _n\n                    Dn2 =  Dn**2  # d**2 / n**2\n                    nab =  na * nb\n                    Dn3 =  Dn2 * (D * nab)\n\n                    na2 =  na**2\n                    nb2 =  nb**2\n                    A4 +=  B4\n                    A4 += (B3 * na  - (A3 * nb))  * (Dn  * _4_0)\n                    A4 += (B2 * na2 + (A2 * nb2)) * (Dn2 * _6_0)\n                    A4 += (Dn * Dn3) * (na2 - nab + nb2)  # d**4 / n**3\n\n                    A3 +=  B3\n                    A3 += (A2 * na - (B2 * nb)) * (Dn * _3_0)\n                    A3 +=  Dn3 * (na - nb)\n\n                    A2 += B2\n                    A2 += Dn2 * (nab * _n)\n\n                    B1n = B1 * nb  # if other is self\n                    A1 *= na\n                    A1 += B1n\n                    A1 *= _n\n\n#                   self._Ms = A1, A2, A3, A4\n                    self._n  = n\n                else:\n                    self._copy(self, other)\n        else:\n            self._iadd_other(other)\n        return self\n\n    def fadd(self, xs, sample=False):\n        '''Accumulate and return the current count.\n\n           @arg xs: Iterable of additional values (each C{scalar}, an\n                    L{Fsum} or L{Fsum2Tuple}).\n           @kwarg sample: Use C{B{sample}=True} for the I{sample} count\n                          instead of the I{population} count (C{bool}).\n\n           @return: Current, running (sample) count (C{int}).\n\n           @raise OverflowError: Partial C{2sum} overflow.\n\n           @raise TypeError: Invalid B{C{xs}}.\n\n           @raise ValueError: Invalid or non-finite B{C{xs}}.\n\n           @see: U{online_kurtosis<https://WikiPedia.org/wiki/\n                 Algorithms_for_calculating_variance>}.\n        '''\n        n = self._n\n        if xs:\n            M1, M2, M3, M4 = self._Ms\n            for x in _Xs(xs=xs):  # PYCHOK yield\n                n1 = n\n                n += 1\n                D  = x - M1\n                Dn = D / n\n                if Dn:\n                    Dn2 = Dn**2\n                    if n1 > 1:\n                        T1 = D  * (Dn  *  n1)\n                        T2 = T1 * (Dn  * (n1 - 1))\n                        T3 = T1 * (Dn2 * (n**2 - 3 * n1))\n                    elif n1 > 0:  # n1 == 1, n == 2\n                        T1 =  D * Dn\n                        T2 = _0_0\n                        T3 = T1 * Dn2\n                    else:\n                        T1 = T2 = T3 = _0_0\n                    M4 += T3\n                    M4 -= M3 * (Dn  * _4_0)\n                    M4 += M2 * (Dn2 * _6_0)\n\n                    M3 += T2\n                    M3 -= M2 * (Dn  * _3_0)\n\n                    M2 += T1\n                    M1 += Dn\n#           self._Ms = M1, M2, M3, M4\n            self._n  = n\n        return _sampled(n, sample)\n\n    def fjb(self, xs=None, excess=True, sample=True):\n        '''Accumulate and compute the current U{Jarque-Bera\n           <https://WikiPedia.org/wiki/Jarque–Bera_test>} normality.\n\n           @kwarg xs: Iterable of additional values (each C{scalar}, an\n                      L{Fsum} or L{Fsum2Tuple}).\n           @kwarg excess: Apply the I{excess} kurtosis (C{bool}), default.\n           @kwarg sample: Use C{B{sample}=False} for the I{population}\n                          normality instead of the I{sample} one (C{bool}).\n\n           @return: Current, running (sample) Jarque-Bera normality (C{float}).\n\n           @see: Method L{Fcook.fadd}.\n        '''\n        return float(self._JarqueBera(xs, excess, sample=sample))\n\n    def fjb_(self, *xs, **sample_excess):\n        '''Accumulate and compute the current U{Jarque-Bera\n           <https://WikiPedia.org/wiki/Jarque–Bera_test>} normality.\n\n           @see: Method L{Fcook.fjb} for further details.\n        '''\n        return self.fjb(xs, **sample_excess)\n\n    def fkurtosis(self, xs=None, excess=True, **sample):\n        '''Accumulate and return the current kurtosis.\n\n           @arg xs: Iterable of additional values (each C{scalar}, an L{Fsum}\n                    or L{Fsum2Tuple}).\n           @kwarg excess: Return the I{excess} kurtosis (C{bool}), default.\n           @kwarg sample: Use C{B{sample}=True} for the I{sample} kurtosis\n                          instead of the I{population} kurtosis (C{bool}).\n\n           @return: Current, running (sample) kurtosis or I{excess} kurtosis (C{float}).\n\n           @see: U{Kurtosis Formula<https://www.Macroption.com/kurtosis-formula>}\n                 and U{Mantalos<https://www.ResearchGate.net/publication/227440210>}.\n\n           @see: Method L{Fcook.fadd}.\n        '''\n        n = self.fadd(xs, **sample)\n        return float(self._Kurtosis(n, excess, **sample))\n\n    def fkurtosis_(self, *xs, **excess_sample):\n        '''Accumulate and return the current kurtosis.\n\n           @see: Method L{Fcook.fkurtosis} for further details.\n        '''\n        return self.fkurtosis(xs, **excess_sample)\n\n    def fmedian(self, xs=None):\n        '''Accumulate and return the current median.\n\n           @arg xs: Iterable of additional values (each C{scalar}, an L{Fsum} or\n                    L{Fsum2Tuple}).\n\n           @return: Current, running median (C{float}).\n\n           @see: U{Pearson's Skewness Coefficients<https://MathWorld.Wolfram.com/\n                 PearsonsSkewnessCoefficients.html>}, U{Skewness & Kurtosis Simplified\n                 https://TowardsDataScience.com/skewness-kurtosis-simplified-1338e094fc85>}\n                 and method L{Fcook.fadd}.\n        '''\n        return float(self._Median(xs))\n\n    def fmedian_(self, *xs):\n        '''Accumulate and return the current median.\n\n           @see: Method L{Fcook.fmedian} for further details.\n        '''\n        return self.fmedian(xs)\n\n    def fskewness(self, xs=None, **sample):\n        '''Accumulate and return the current skewness.\n\n           @arg xs: Iterable of additional values (each C{scalar}, an L{Fsum}\n                    or L{Fsum2Tuple}).\n           @kwarg sample: Use C{B{sample}=True} for the I{sample} skewness\n                          instead of the I{population} skewness (C{bool}).\n\n           @return: Current, running (sample) skewness (C{float}).\n\n           @see: U{Skewness Formula<https://www.Macroption.com/skewness-formula/>}\n                 and U{Mantalos<https://www.ResearchGate.net/publication/227440210>}.\n\n           @see: Method L{Fcook.fadd}.\n        '''\n        n = self.fadd(xs, **sample)\n        return float(self._Skewness(n, **sample))\n\n    def fskewness_(self, *xs, **sample):\n        '''Accumulate and return the current skewness.\n\n           @see: Method L{Fcook.fskewness} for further details.\n        '''\n        return self.fskewness(xs, **sample)\n\n    def _JarqueBera(self, xs, excess, **sample):\n        '''(INTERNAL) Return the (sample) Jarque-Bera normality as L{Fsum}.\n        '''\n        N, n = _0_0, self.fadd(xs, **sample)\n        if n > 0:\n            K = self._Kurtosis(n, excess, **sample) / _2_0\n            S = self._Skewness(n,         **sample)\n            N = (K**2 + S**2) * (n / _6_0)  # Fpowers(2, K, S) * ...\n        return N\n\n    def _Kurtosis(self, n, excess, sample=False):\n        '''(INTERNAL) Return the (sample) kurtosis as L{Fsum} or C{0.0}.\n        '''\n        K = _0_0\n        if n > 0:\n            _, M2, _, M4 = self._Ms\n            M = M2**2\n            if M > 0:\n                K, x = M.rdiv(M4 * n, raiser=False), _3_0\n                if sample and 2 < n < len(self):\n                    d  = (n - 1) * (n - 2)\n                    K *= (n + 1) * (n + 2) / d\n                    x *=  n**2 / d\n                if excess:\n                    K -= x\n        return K\n\n    def _Median(self, xs=None):\n        '''(INTERNAL) Return the median as L{Fsum}.\n        '''\n        # skewness = 3 * (mean - median) / stdev, i.e.\n        # median = mean - (skewness * stdef) / 3\n        return self._Mean(xs) - (self._Skewness(self._n) *\n                                 self._Stdev()) / _3_0\n\n    def _Skewness(self, n, sample=False):\n        '''(INTERNAL) Return the (sample) skewness as L{Fsum} or C{0.0}.\n        '''\n        S = _0_0\n        if n > 0:\n            _, M2, M3, _ = self._Ms\n            M = M2**3\n            if M > 0:\n                M = M.rdiv(n, raiser=False)\n                S = M3 * Fsqrt(M, raiser=False)\n                if sample and 1 < n < len(self):\n                    S *= (n + 1) / (n - 1)\n        return S\n\n    def toFwelford(self, **name):\n        '''Return a L{Fwelford} equivalent.\n\n           @kwarg name: Optional C{B{name}=NN} (C{str}).\n        '''\n        f = Fwelford(name=self._name__(name))\n        f._Ms = self._M1.copy(), self._M2.copy()  # deep=False\n        f._n  = self._n\n        return f\n\n\nclass Fwelford(_FstatsBase):\n    '''U{Welford<https://WikiPedia.org/wiki/Algorithms_for_calculating_variance>}'s\n       accumulator computing the running mean, (sample) variance and standard deviation.\n\n       @see: U{Cook<https://www.JohnDCook.com/blog/standard_deviation/>} and L{Fcook}.\n    '''\n    def __init__(self, xs=None, **name):\n        '''New L{Fwelford} stats accumulator.\n\n           @arg xs: Iterable of initial values (each C{scalar}, an L{Fsum} or L{Fsum2Tuple}).\n           @kwarg name: Optional C{B{name}=NN} (C{str}).\n\n           @see: Method L{Fwelford.fadd}.\n        '''\n        self._Ms = Fsum(), Fsum()  # 1st and 2nd Moment\n        if name:\n            self.name = name\n        if xs:\n            self.fadd(xs)\n\n    def __iadd__(self, other):\n        '''Add B{C{other}} to this L{Fwelford} instance.\n\n           @arg other: An L{Fwelford} or L{Fcook} instance or value or an\n                       iterable of values (each C{scalar}, an L{Fsum} or\n                       L{Fsum2Tuple}).\n\n           @return: This instance, updated (L{Fwelford}).\n\n           @raise TypeError: Invalid B{C{other}}.\n\n           @raise ValueError: Invalid B{C{other}}.\n\n           @see: Method L{Fwelford.fadd} and U{Parallel algorithm<https//\n                 WikiPedia.org/wiki/Algorithms_for_calculating_variance>}.\n        '''\n        if isinstance(other, Fwelford):\n            nb = len(other)\n            if nb > 0:\n                na = len(self)\n                if na > 0:\n                    M,  S  = self._Ms\n                    M_, S_ = other._Ms\n\n                    n  =  na + nb\n                    _n = _1_0 / n\n\n                    D  = M_ - M\n                    D *= D  # D**2\n                    D *= na * nb * _n\n                    S += D\n                    S += S_\n\n                    Mn = M_ * nb  # if other is self\n                    M *= na\n                    M += Mn\n                    M *= _n\n\n#                   self._Ms = M, S\n                    self._n  = n\n                else:\n                    self._copy(self, other)\n\n        elif isinstance(other, Fcook):\n            self += other.toFwelford()\n        else:\n            self._iadd_other(other)\n        return self\n\n    def fadd(self, xs, sample=False):\n        '''Accumulate and return the current count.\n\n           @arg xs: Iterable of additional values (each C{scalar}, an\n                    L{Fsum} or L{Fsum2Tuple}).\n           @kwarg sample: Use C{B{sample}=True} for the I{sample} count\n                          instead of the I{population} count (C{bool}).\n\n           @return: Current, running (sample) count (C{int}).\n\n           @raise OverflowError: Partial C{2sum} overflow.\n\n           @raise TypeError: Invalid B{C{xs}}.\n\n           @raise ValueError: Invalid or non-finite B{C{xs}}.\n        '''\n        n = self._n\n        if xs:\n            M, S = self._Ms\n            for x in _Xs(xs=xs):  # PYCHOK yield\n                n += 1\n                D  = x - M\n                M += D / n\n                D *= x - M\n                S += D\n#           self._Ms = M, S\n            self._n = n\n        return _sampled(n, sample)\n\n\nclass Flinear(_FstatsNamed):\n    '''U{Cook<https://www.JohnDCook.com/blog/running_regression>}'s\n       C{RunningRegression} computing the running slope, intercept\n       and correlation of a linear regression.\n    '''\n    def __init__(self, xs=None, ys=None, Fstats=Fwelford, **name):\n        '''New L{Flinear} regression accumulator.\n\n           @kwarg xs: Iterable of initial C{x} values (each C{scalar},\n                      an L{Fsum} or L{Fsum2Tuple}).\n           @kwarg ys: Iterable of initial C{y} values (each C{scalar},\n                      an L{Fsum} or L{Fsum2Tuple}).\n           @kwarg Fstats: Class for C{xs} and C{ys} values (L{Fcook} or\n                          L{Fwelford}).\n           @kwarg name: Optional C{B{name}=NN} (C{str}).\n\n           @raise TypeError: B{C{Fstats}} not L{Fcook} or L{Fwelford}.\n\n           @see: Method L{Flinear.fadd}.\n        '''\n        _xsubclassof(Fcook, Fwelford, Fstats=Fstats)\n        if name:\n            self.name = name\n\n        self._S = Fsum(name=name)\n        self._X = Fstats(name=name)\n        self._Y = Fstats(name=name)\n        if xs and ys:\n            self.fadd(xs, ys)\n\n    def __iadd__(self, other):\n        '''Add B{C{other}} to this instance.\n\n           @arg other: An L{Flinear} instance or an iterable of\n                       C{x_ys} values, see method C{fadd_}.\n\n           @return: This instance, updated (L{Flinear}).\n\n           @raise TypeError: Invalid B{C{other}} or the B{C{other}}\n                             and these C{x} and C{y} accumulators\n                             are not compatible.\n\n           @raise ValueError: Invalid or odd-length B{C{other}}.\n\n           @see: Method L{Flinear.fadd_}.\n        '''\n        if isinstance(other, Flinear):\n            if len(other) > 0:\n                if len(self) > 0:\n                    n =  other._n\n                    D = (other._X._M1 - self._X._M1) * \\\n                        (other._Y._M1 - self._Y._M1) * \\\n                        (n * self._n / (self._n + n))\n                    self._S += other._S + D\n                    self._X += other._X\n                    self._Y += other._Y\n                    self._n += n\n                else:\n                    self._copy(self, other)\n        else:\n            try:\n                if _xiterable(other):\n                    self.fadd_(*other)\n            except Exception as X:\n                op = _SPACE_(self, _iadd_op_, repr(other))\n                raise _xError(X, op)\n        return self\n\n    def _copy(self, d, s):\n        '''(INTERNAL) Copy C{B{d} = B{s}}.\n        '''\n        _xinstanceof(Flinear, d=d, s=s)\n        d._S = s._S.copy(deep=False)\n        d._X = s._X.copy(deep=False)\n        d._Y = s._Y.copy(deep=False)\n        d._n = s._n\n        return d\n\n    def _Correlation(self, **sample):\n        '''(INTERNAL) Return the current (sample) correlation as L{Fsum}.\n        '''\n        return self._Sampled(self._X._Stdev(**sample) *\n                             self._Y._Stdev(**sample), **sample)\n\n    def fadd(self, xs, ys, sample=False):\n        '''Accumulate and return the current count.\n\n           @arg xs: Iterable of additional C{x} values (each C{scalar},\n                    an L{Fsum} or L{Fsum2Tuple}).\n           @arg ys: Iterable of additional C{y} values (each C{scalar},\n                    an L{Fsum} or L{Fsum2Tuple}).\n           @kwarg sample: Use C{B{sample}=True} for the I{sample} count\n                          instead of the I{population} count (C{bool}).\n\n           @return: Current, running (sample) count (C{int}).\n\n           @raise OverflowError: Partial C{2sum} overflow.\n\n           @raise TypeError: Invalid B{C{xs}} or B{C{ys}}.\n\n           @raise ValueError: Invalid or non-finite B{C{xs}} or B{C{ys}}.\n        '''\n        n = self._n\n        if xs and ys:\n            S = self._S\n            X = self._X\n            Y = self._Y\n            for x, y in _zip(_Xs(xs=xs), _Xs(ys=ys)):  # PYCHOK strict=True\n                n1 = n\n                n += 1\n                if n1 > 0:\n                    S += (X._M1 - x) * (Y._M1 - y) * (n1 / n)\n                X += x\n                Y += y\n            self._n = n\n        return _sampled(n, sample)\n\n    def fadd_(self, *x_ys, **sample):\n        '''Accumulate and return the current count.\n\n           @arg x_ys: Individual, alternating C{x, y, x, y, ...} values\n                      (each C{scalar}, an L{Fsum} or L{Fsum2Tuple}).\n\n           @see: Method C{Flinear.fadd} for further details.\n        '''\n        if isodd(len(x_ys)):\n            t = _SPACE_(_odd_, typename(len))\n            raise _ValueError(t, len(x_ys))\n        return self.fadd(x_ys[0::2], x_ys[1::2], **sample)\n\n    def fcorrelation(self, **sample):\n        '''Return the current, running (sample) correlation (C{float}).\n\n           @kwarg sample: Use C{B{sample}=True} for the I{sample} correlation\n                          instead of the I{population} correlation (C{bool}).\n        '''\n        return float(self._Correlation(**sample))\n\n    def fintercept(self, **sample):\n        '''Return the current, running (sample) intercept (C{float}).\n\n           @kwarg sample: Use C{B{sample}=True} for the I{sample} intercept\n                          instead of the I{population} intercept (C{bool}).\n        '''\n        return float(self._Intercept(**sample))\n\n    def fslope(self, **sample):\n        '''Return the current, running (sample) slope (C{float}).\n\n           @kwarg sample: Use C{B{sample}=True} for the I{sample} slope\n                          instead of the I{population} slope (C{bool}).\n        '''\n        return float(self._Slope(**sample))\n\n    def _Intercept(self, **sample):\n        '''(INTERNAL) Return the current (sample) intercept as L{Fsum}.\n        '''\n        return self._Y._M1 - self._X._M1 * self._Slope(**sample)\n\n    def _Sampled(self, T, sample=False):\n        '''(INTERNAL) Compute the sampled or entire population result.\n        '''\n        T *= _sampled(self._n, sample)\n        return self._S.copy().fdiv(T, raiser=False) if T else T\n\n    def _Slope(self, **sample):\n        '''(INTERNAL) Return the current (sample) slope as L{Fsum}.\n        '''\n        return self._Sampled(self._X._Variance(**sample), **sample)\n\n    @property_RO\n    def x(self):\n        '''Get the C{x} accumulator (L{Fcook} or L{Fwelford}).\n        '''\n        return self._X  # .copy()\n\n    @property_RO\n    def y(self):\n        '''Get the C{y} accumulator (L{Fcook} or L{Fwelford}).\n        '''\n        return self._Y  # .copy()\n\n\n__all__ += _ALL_DOCS(_FstatsBase, _FstatsNamed)\n\n# **) MIT License\n#\n# Copyright (C) 2021-2026 -- mrJean1 at Gmail -- All Rights Reserved.\n#\n# Permission is hereby granted, free of charge, to any person obtaining a\n# copy of this software and associated documentation files (the \"Software\"),\n# to deal in the Software without restriction, including without limitation\n# the rights to use, copy, modify, merge, publish, distribute, sublicense,\n# and/or sell copies of the Software, and to permit persons to whom the\n# Software is furnished to do so, subject to the following conditions:\n#\n# The above copyright notice and this permission notice shall be included\n# in all copies or substantial portions of the Software.\n#\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL\n# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR\n# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\n# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n# OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "pygeodesy/fsums.py",
    "content": "\n# -*- coding: utf-8 -*-\n\nu'''Class L{Fsum} for precision floating point summation similar to\nPython's C{math.fsum}, but enhanced with I{precision running} summation\nplus optionally, accurate I{TwoProduct} multiplication.\n\nAccurate multiplication is based on the C{math.fma} function from Python\n3.13 and newer or an equivalent C{fma} implementation for Python 3.12 and\nolder.  Set env variable C{PYGEODESY_FSUM_F2PRODUCT} to C{\"std\"} or any\nnon-empty string or invoke function C{pygeodesy.f2product(True)} to enable\naccurate multiplication.  With C{\"std\"} the C{fma} implemention follows\nthe C{math.fma} function, otherwise the implementation of the C{PyGeodesy\n24.09.09} release.\n\nGenerally, an L{Fsum} instance is considered a C{float} plus a small or\nzero C{residue} aka C{residual}, see property L{Fsum.residual}.\n\nSet env variable C{PYGEODESY_FSUM_RESIDUAL} to a C{float} string greater\nthan C{\"0.0\"} as the threshold to throw a L{ResidualError} for a division,\npower or root operation of an L{Fsum} with a C{residual} I{ratio} exceeding\nthe threshold.  See methods L{Fsum.RESIDUAL}, L{Fsum.pow}, L{Fsum.__ipow__}\nand L{Fsum.__itruediv__}.\n\nThere are several C{integer} L{Fsum} cases, for example the result from\nfunctions C{ceil}, C{floor}, C{Fsum.__floordiv__} and methods L{Fsum.fint},\nL{Fsum.fint2} and L{Fsum.is_integer}.  Also, L{Fsum} methods L{Fsum.pow},\nL{Fsum.__ipow__}, L{Fsum.__pow__} and L{Fsum.__rpow__} return a (very long)\nC{int} if invoked with optional argument C{mod} set to C{None}.  The\nC{residual} of an C{integer} L{Fsum} is between C{-1.0} and C{+1.0} and\nwill be C{INT0} if that L{Fsum} is an I{exact float} or I{exact integer}.\n\nSet env variable C{PYGEODESY_FSUM_NONFINITES} to C{\"std\"} or use function\nC{pygeodesy.nonfiniterrors(False)} to allow I{non-finite} C{float}s like\nC{inf}, C{INF}, C{NINF}, C{nan} and C{NAN} and to ignore C{OverflowError}\nrespectively C{ValueError} exceptions.  However, in that case I{non-finite}\nresults may differ from Python's C{math.fsum} results.\n'''\n# make sure int/int division yields float quotient, see .basics\nfrom __future__ import division as _; del _  # noqa: E702 ;\n\nfrom pygeodesy.basics import _gcd, isbool, iscomplex, isint, isodd, isscalar, \\\n                             _signOf, itemsorted, signOf, _xiterable\nfrom pygeodesy.constants import INF, INT0, MANT_DIG, NEG0, NINF, _0_0, _1_0, \\\n                               _N_1_0, _isfinite, _pos_self,  Float, Int\nfrom pygeodesy.errors import _AssertionError, _OverflowError, LenError, _TypeError, \\\n                             _ValueError, _xError, _xError2, _xkwds, _xkwds_get, \\\n                             _xkwds_get1, _xkwds_not, _xkwds_pop, _xsError\nfrom pygeodesy.internals import _enquote, _envPYGEODESY, _passarg, typename  # _sizeof\nfrom pygeodesy.interns import NN, _arg_, _COMMASPACE_, _DMAIN_, _DOT_, _from_, \\\n                             _not_finite_, _SPACE_, _std_, _UNDER_\n# from pygeodesy.lazily import _ALL_LAZY, _ALL_MODS as _MODS  # from .named\nfrom pygeodesy.named import _name__, _name2__, _Named, _NamedTuple, \\\n                            _NotImplemented,  _ALL_LAZY, _MODS\nfrom pygeodesy.props import _allPropertiesOf_n, deprecated_method, Property, \\\n                             deprecated_property_RO, Property_RO, property_RO\nfrom pygeodesy.streprs import Fmt, fstr, unstr\n# from pygeodesy.units import Float, Int  # from .constants\n\nfrom math import fabs, isinf, isnan, \\\n                 ceil as _ceil, floor as _floor  # PYCHOK used! .ltp\n\n__all__ = _ALL_LAZY.fsums\n__version__ = '26.02.02'\n\nfrom pygeodesy.interns import (\n  _PLUS_     as _add_op_,  # in .auxilats.auxAngle\n  _DSLASH_   as _floordiv_op_,\n  _EQUAL_    as _fset_op_,\n  _RANGLE_   as _gt_op_,\n  _LANGLE_   as _lt_op_,\n  _PERCENT_  as _mod_op_,\n  _STAR_     as _mul_op_,\n  _NOTEQUAL_ as _ne_op_,\n  _DSTAR_    as _pow_op_,\n  _DASH_     as _sub_op_,  # in .auxilats.auxAngle\n  _SLASH_    as _truediv_op_\n)\n_divmod_op_   = _floordiv_op_ + _mod_op_\n_F2PRODUCT    = _envPYGEODESY('FSUM_F2PRODUCT')\n_iadd_op_     = _add_op_ + _fset_op_  # in .auxilats.auxAngle, .fstats\n_integer_     = 'integer'\n_isub_op_     = _sub_op_ + _fset_op_  # in .auxilats.auxAngle\n_NONFINITEr   = _0_0  # NOT INT0!\n_NONFINITES   = _envPYGEODESY('FSUM_NONFINITES')\n_non_zero_    = 'non-zero'\n_RESIDUAL_0_0 = _envPYGEODESY('FSUM_RESIDUAL', _0_0)\n_significant_ = 'significant'\n_threshold_   = 'threshold'\n\n\ndef _2finite(x, _isfine=_isfinite):  # in .fstats\n    '''(INTERNAL) return C{float(x)} if finite.\n    '''\n    return (float(x) if _isfine(x)  # and isscalar(x)\n                   else _nfError(x))\n\n\ndef _2float(index=None, _isfine=_isfinite, **name_x):  # in .fmath, .fstats\n    '''(INTERNAL) Raise C{TypeError} or C{Overflow-/ValueError} if C{x} not finite.\n    '''\n    n, x = name_x.popitem()  # _xkwds_item2(name_x)\n    try:\n        f = float(x)\n        return f if _isfine(f) else _nfError(x)\n    except Exception as X:\n        raise _xError(X, Fmt.INDEX(n, index), x)\n\n\ntry:  # MCCABE 26\n    from math import fma as _fma\n\n    def _2products(x, ys, *zs):\n        # yield(x * y for y in ys) + yield(z in zs)\n        # TwoProductFMA U{Algorithm 3.5\n        # <https://www.TUHH.De/ti3/paper/rump/OgRuOi05.pdf>}\n        for y in ys:\n            f = x * y\n            yield f\n            if _isfinite(f):\n                f = _fma(x, y, -f)\n                if f:\n                    yield f\n        for z in zs:\n            yield z\n\n#   _2split3  = \\\n    _2split3s = _passarg  # in Fsum.is_math_fma\n\nexcept  ImportError:  # PYCHOK DSPACE! Python 3.12-\n\n    if _F2PRODUCT and _F2PRODUCT != _std_:\n        # backward to PyGeodesy 24.09.09, with _fmaX\n        from pygeodesy.basics import _integer_ratio2\n\n        def _fma(*a_b_c):  # PYCHOK no cover\n            # mimick C{math.fma} from Python 3.13+,\n            # the same accuracy, but ~14x slower\n            (n, d), (nb, db), (nc, dc) = map(_integer_ratio2, a_b_c)\n            # n, d = (n * nb * dc + d * db * nc), (d * db * dc)\n            d *= db\n            n *= nb * dc\n            n += nc * d\n            d *= dc\n            try:\n                n, d = _n_d2(n,  d)\n                r    = float(n / d)\n            except OverflowError:  # \"integer division result too large ...\"\n                r = NINF if (_signOf(n, 0) * _signOf(d, 0)) < 0 else INF\n            return r if _isfinite(r) else _fmaX(r, *a_b_c)  # \"overflow in fma\"\n    else:\n        _integer_ratio2 = None  # redef, in Fsum.is_math_fma\n\n        def _fma(a, b, c):  # PYCHOK redef\n            # mimick C{math.fma} from Python 3.13+,\n            # the same accuracy, but ~13x slower\n            b3s = _2split3(b),  # 1-tuple of 3-tuple\n            r   = _fsum(_2products(a, b3s, c))\n            return r if _isfinite(r) else _fmaX(r, a, b, c)\n\n    def _fmaX(r, *a_b_c):  # PYCHOK no cover\n        # handle non-finite fma result as Python 3.13+ C-function U{math_fma_impl\n        # <https://GitHub.com/python/cpython/blob/main/Modules/mathmodule.c#L2305>}:\n        # raise a ValueError for a NAN result from non-NAN C{a_b_c}s, otherwise an\n        # OverflowError for a non-finite, non-NAN result from all finite C{a_b_c}s.\n        if isnan(r):\n            def _x(x):\n                return not isnan(x)\n        else:  # non-finite, non-NAN\n            _x = _isfinite\n        if all(map(_x, a_b_c)):\n            raise _nfError(r, unstr(_fma, *a_b_c))\n        return r\n\n    def _2products(x, y3s, *zs):  # PYCHOK in _fma, ...\n        # yield(x * y3 for y3 in y3s) + yield(z in zs)\n        # TwoProduct U{Algorithm 3.3<https://www.TUHH.De/ti3/paper/rump/OgRuOi05.pdf>}, also\n        # in Python 3.13+ C{Modules/mathmodule.c} under #ifndef UNRELIABLE_FMA ... #else ...\n        _, a, b = _2split3(x)\n        for y, c, d in y3s:\n            y *= x\n            yield y\n            if _isfinite(y):\n                # yield b * d - (((y - a * c) - b * c) - a * d)\n                #     = b * d + (a * d - ((y - a * c) - b * c))\n                #     = b * d + (a * d + (b * c - (y - a * c)))\n                #     = b * d + (a * d + (b * c + (a * c - y)))\n                yield a * c - y\n                yield b * c\n                if d:\n                    yield a * d\n                    yield b * d\n        for z in zs:\n            yield z\n\n    _2FACTOR = pow(2, (MANT_DIG + 1) // 2) + _1_0  # 134217729 if MANT_DIG == 53\n\n    def _2split3(x):\n        # Split U{Algorithm 3.2<https://www.TUHH.De/ti3/paper/rump/OgRuOi05.pdf>}\n        a  = c = x * _2FACTOR\n        a -= c - x\n        b  = x - a\n        return x, a, b\n\n    def _2split3s(xs):  # in Fsum.is_math_fma\n        return map(_2split3, xs)\n\n\ndef f2product(two=None):\n    '''Turn accurate I{TwoProduct} multiplication on or off.\n\n       @kwarg two: If C{True}, turn I{TwoProduct} on, if C{False} off or\n                   if C{None} or omitted, keep the current setting.\n\n       @return: The previous setting (C{bool}).\n\n       @see: I{TwoProduct} multiplication is based on the I{TwoProductFMA}\n             U{Algorithm 3.5 <https://www.TUHH.De/ti3/paper/rump/OgRuOi05.pdf>}\n             using function C{math.fma} from Python 3.13 and later or an\n             equivalent, slower implementation when not available.\n    '''\n    t = Fsum._f2product\n    if two is not None:\n        Fsum._f2product = bool(two)\n    return t\n\n\ndef _Fsumf_(*xs):  # in .auxLat, ...\n    '''(INTERNAL) An C{Fsum(xs)}, all C{scalar}, an L{Fsum} or L{Fsum2Tuple}.\n    '''\n    return Fsum()._facc_xsum(xs, up=False)\n\n\ndef _Fsum1f_(*xs):  # in .albers\n    '''(INTERNAL) An C{Fsum(xs)}, all C{scalar}, an L{Fsum} or L{Fsum2Tuple}, 1-primed.\n    '''\n    return Fsum()._facc_xsum(_1primed(xs), origin=-1, up=False)\n\n\ndef _halfeven(s, r, p):\n    '''(INTERNAL) Round half-even.\n    '''\n    if (p > 0 and r > 0) or \\\n       (p < 0 and r < 0):  # signs match\n        r *= 2\n        t  = s + r\n        if r == (t - s):\n            s = t\n    return s\n\n\ndef _isFsum(x):  # in .fmath\n    '''(INTERNAL) Is C{x} an C{Fsum} instance?\n    '''\n    return isinstance(x, Fsum)\n\n\ndef _isFsum_2Tuple(x):  # in .basics, .constants, .fmath, .fstats\n    '''(INTERNAL) Is C{x} an C{Fsum} or C{Fsum2Tuple} instance?\n    '''\n    return isinstance(x, _Fsum_2Tuple_types)\n\n\ndef _isOK(unused):\n    '''(INTERNAL) Helper for C{Fsum._fsum2} and C{Fsum.nonfinites}.\n    '''\n    return True\n\n\ndef _isOK_or_finite(x, _isfine=_isfinite):\n    '''(INTERNAL) Is C{x} finite or is I{non-finite} OK?\n    '''\n    # assert _isin(_isfine, _isOK, _isfinite)\n    return _isfine(x)  # C{bool}\n\n\ndef _n_d2(n, d):\n    '''(INTERNAL) Reduce C{n} and C{d} by C{gcd}.\n    '''\n    try:\n        c = _gcd(n, d)\n        if c > 1:\n            return (n // c), (d // c)\n    except TypeError:  # non-int float\n        pass\n    return n, d\n\n\ndef _nfError(x, *args):\n    '''(INTERNAL) Throw a C{not-finite} exception.\n    '''\n    E = _NonfiniteError(x)\n    t =  Fmt.PARENSPACED(_not_finite_, x)\n    if args:  # in _fmaX, _2sum\n        return E(txt=t, *args)\n    raise E(t, txt=None)\n\n\ndef _NonfiniteError(x):\n    '''(INTERNAL) Return the Error class for C{x}, I{non-finite}.\n    '''\n    return _OverflowError if isinf(x) else (\n           _ValueError    if isnan(x) else _AssertionError)\n\n\ndef nonfiniterrors(raiser=None):\n    '''Throw C{OverflowError} and C{ValueError} exceptions for or\n       handle I{non-finite} C{float}s as C{inf}, C{INF}, C{NINF},\n       C{nan} and C{NAN} in summations and multiplications.\n\n       @kwarg raiser: If C{True}, throw exceptions, if C{False} handle\n                      I{non-finites} or if C{None} or omitted, leave\n                      the setting unchanged.\n\n       @return: Previous setting (C{bool}).\n\n       @note: C{inf}, C{INF} and C{NINF} throw an C{OverflowError},\n              C{nan} and C{NAN} a C{ValueError}.\n    '''\n    d = Fsum._isfine\n    if raiser is not None:\n        Fsum._isfine = {} if bool(raiser) else _nonfinites_isfine_kwds[True]\n    return (False if d is _nonfinites_isfine_kwds[True] else\n         _xkwds_get1(d, _isfine=_isfinite) is _isfinite) if d else True\n\n\n# def _nsum(xs):\n#     '''(INTERNAL) U{Neumaier summation\n#        <https://StackOverflow.com/questions/78633770/can-neumaier-summation-be-sped-up>},\n#        see IV. Verbessertes Kahan-Babuška-Verfahren.\n#     '''\n#     s = r = _0_0\n#     for x in map(float, xs):\n#         t = s + x\n#         if fabs(x) <= fabs(s):\n#             r += (s - t) + x\n#         else:\n#             r += (x - t) + s\n#         s = t\n#     return s + r\n\n\ndef _1primed(xs, *ys):  # in .fmath\n    '''(INTERNAL) 1-Primed summation of iterable C{xs} less any C{ys}\n       items, all I{known} to be C{scalar}.\n    '''\n    yield _1_0\n    for x in xs:\n        yield x\n    for y in ys:\n        yield -y\n    yield _N_1_0\n\n\ndef _psum(ps, **_isfine):  # PYCHOK used!\n    '''(INTERNAL) Partials summation, updating C{ps}.\n    '''\n    # assert isinstance(ps, list)\n    i =  len(ps) - 1\n    s = _0_0 if i < 0 else ps[i]\n    while i > 0:\n        i -= 1\n        s, r = _2sum(s, ps[i], **_isfine)\n        if r:  # sum(ps) became inexact\n            if s:\n                ps[i:] = r, s\n                if i > 0:\n                    s = _halfeven(s, r, ps[i-1])\n                break  # return s\n            s = r  # PYCHOK no cover\n        elif not _isfinite(s):  # non-finite OK\n            i = 0  # collapse ps\n            if ps:\n                s += sum(ps)\n        ps[i:] = s,\n    return s\n\n\ndef _Psum(ps, **name_f2product_nonfinites_RESIDUAL):\n    '''(INTERNAL) Return an C{Fsum} from I{ordered} partials C{ps}.\n    '''\n    F = Fsum(**name_f2product_nonfinites_RESIDUAL)\n    if ps:\n        F._ps[:] = ps\n        F._n = len(F._ps)\n    return F\n\n\ndef _Psum_(*ps, **name_f2product_nonfinites_RESIDUAL):\n    '''(INTERNAL) Return an C{Fsum} from I{known scalar} C{ps}.\n    '''\n    return _Psum(ps, **name_f2product_nonfinites_RESIDUAL)\n\n\ndef _residue(other):\n    '''(INTERNAL) Return the C{residual} or C{None} for C{scalar}.\n    '''\n    try:\n        r = other.residual\n    except AttributeError:\n        r = None  # float, int, other\n    return r\n\n\ndef _s_r2(s, r):\n    '''(INTERNAL) Return C{(s, r)}, I{ordered}.\n    '''\n    if _isfinite(s):\n        if r:\n            if fabs(s) < fabs(r):\n                s, r = r, (s or INT0)\n        else:\n            r = INT0\n    else:\n        r = _NONFINITEr\n    return s, r\n\n\ndef _strcomplex(s, *args):\n    '''(INTERNAL) C{Complex} 2- or 3-arg C{pow} error as C{str}.\n    '''\n    c =  typename(_strcomplex)[4:]\n    n = _sub_op_(len(args), _arg_)\n    t =  unstr(pow, *args)\n    return _SPACE_(c, s, _from_, n, t)\n\n\ndef _stresidual(prefix, residual, R=0, **mod_ratio):\n    '''(INTERNAL) Residual error txt C{str}.\n    '''\n    p = typename(_stresidual)[3:]\n    t = Fmt.PARENSPACED(p, Fmt(residual))\n    for n, v in itemsorted(mod_ratio):\n        p =  Fmt.PARENSPACED(n, Fmt(v))\n        t = _COMMASPACE_(t, p)\n    return _SPACE_(prefix, t, Fmt.exceeds_R(R), _threshold_)\n\n\ndef _2sum(a, b, _isfine=_isfinite):  # in .testFmath\n    '''(INTERNAL) Return C{a + b} as 2-tuple C{(sum, residual)} with finite C{sum},\n       otherwise as 2-tuple C{(nonfinite, 0)} iff I{non-finites} are OK.\n    '''\n    # FastTwoSum U{Algorithm 1.1<https://www.TUHH.De/ti3/paper/rump/OgRuOi05.pdf>}\n\n    # Neumaier, A. U{Rundungsfehleranalyse einiger Verfahren zur Summation endlicher\n    # Summen<https://OnlineLibrary.Wiley.com/doi/epdf/10.1002/zamm.19740540106>},\n    # 1974, Zeitschrift für Angewandte Mathmatik und Mechanik, vol 51, nr 1, p 39-51\n    # <https://StackOverflow.com/questions/78633770/can-neumaier-summation-be-sped-up>\n    s = a + b\n    if _isfinite(s):\n        if fabs(a) < fabs(b):\n            r = (b - s) + a\n        else:\n            r = (a - s) + b\n    elif _isfine(s):\n        r = _NONFINITEr\n    else:  # non-finite and not OK\n        t =  unstr(_2sum, a, b)\n        raise _nfError(s, t)\n    return s, r\n\n\ndef _threshold(threshold=_0_0, **kwds):\n    '''(INTERNAL) Get the L{ResidualError}s threshold,\n       optionally from single kwds C{B{RESIDUAL}=scalar}.\n    '''\n    if kwds:\n        threshold = _xkwds_get1(kwds, RESIDUAL=threshold)\n    try:\n        return _2finite(threshold)  # PYCHOK None\n    except Exception as x:\n        raise ResidualError(threshold=threshold, cause=x)\n\n\ndef _2tuple2(other):\n    '''(INTERNAL) Return 2-tuple C{(other, r)} with C{other} as C{int},\n       C{float} or C{as-is} and C{r} the residual of C{as-is} or 0.\n    '''\n    if _isFsum_2Tuple(other):\n        s, r = other._fint2\n        if r:\n            s, r = other._nfprs2\n            if r:  # PYCHOK no cover\n                s = other  # L{Fsum} as-is\n    else:\n        r = 0\n        s = other  # C{type} as-is\n        if isint(s, both=True):\n            s = int(s)\n    return s, r\n\n\nclass Fsum(_Named):  # sync __methods__ with .vector3dBase.Vector3dBase, .fstats, ...\n    '''Precision floating point summation, I{running} summation and accurate multiplication.\n\n       Unlike Python's C{math.fsum}, this class accumulates values and provides intermediate,\n       I{running}, precision floating point summations.  Accumulation may continue after any\n       intermediate, I{running} summuation.\n\n       @note: Values may be L{Fsum}, L{Fsum2Tuple}, C{int}, C{float} or C{scalar} instances,\n              i.e. any C{type} having method C{__float__}.\n\n       @note: Handling of I{non-finites} as C{inf}, C{INF}, C{NINF}, C{nan} and C{NAN} is\n              determined globally by function L{nonfiniterrors<fsums.nonfiniterrors>} or\n              by method L{nonfinites<Fsum.nonfinites>} for individual C{Fsum} instances,\n              overruling the global setting.  For backward compatibility, I{non-finites}\n              raise exceptions by default.\n\n       @see: U{Hettinger<https://GitHub.com/ActiveState/code/tree/master/recipes/Python/\n             393090_Binary_floating_point_summatiaccurate_full/recipe-393090.py>},\n             U{Kahan<https://WikiPedia.org/wiki/Kahan_summation_algorithm>}, U{Klein\n             <https://Link.Springer.com/article/10.1007/s00607-005-0139-x>}, Python 2.6+\n             file I{Modules/mathmodule.c} and the issue log U{Full precision summation\n             <https://Bugs.Python.org/issue2819>}.\n\n       @see: Method L{f2product<Fsum.f2product>} for details about accurate I{TwoProduct}\n             multiplication.\n\n       @see: Module L{fsums<pygeodesy.fsums>} for env variables C{PYGEODESY_FSUM_F2PRODUCT},\n             C{PYGEODESY_FSUM_NONFINITES} and C{PYGEODESY_FSUM_RESIDUAL}.\n    '''\n    _f2product = _MODS.sys_version_info2 > (3, 12) or bool(_F2PRODUCT)\n    _isfine    = {}  # == _isfinite, see nonfiniterrors()\n    _n         =  0\n#   _ps        = []  # partial sums\n#   _ps_max    =  0  # max(Fsum._ps_max, len(Fsum._ps))  # 41\n    _RESIDUAL  = _threshold(_RESIDUAL_0_0)\n\n    def __init__(self, *xs, **name_f2product_nonfinites_RESIDUAL):\n        '''New L{Fsum}.\n\n           @arg xs: No, one or more initial items to accumulate (each C{scalar}, an\n                    L{Fsum} or L{Fsum2Tuple}), all positional.\n           @kwarg name_f2product_nonfinites_RESIDUAL: Optional C{B{name}=NN} (C{str})\n                       and settings C{B{f2product}=None} (C{bool}), C{B{nonfinites}=None}\n                       (C{bool}) and C{B{RESIDUAL}=0.0} threshold (C{scalar}) for this\n                       L{Fsum}.\n\n           @see: Methods L{Fsum.f2product}, L{Fsum.nonfinites}, L{Fsum.RESIDUAL},\n                 L{Fsum.fadd} and L{Fsum.fadd_}.\n        '''\n        if name_f2product_nonfinites_RESIDUAL:\n            self._optionals(**name_f2product_nonfinites_RESIDUAL)\n        self._ps = []  # [_0_0], see L{Fsum._fprs}\n        if xs:\n            self._facc_args(xs, up=False)\n\n    def __abs__(self):\n        '''Return C{abs(self)} as an L{Fsum}.\n        '''\n        s = self.signOf()  # == self._cmp_0(0)\n        return (-self) if s < 0 else self._copyd(self.__abs__)\n\n    def __add__(self, other):\n        '''Return C{B{self} + B{other}} as an L{Fsum}.\n\n           @arg other: An L{Fsum}, L{Fsum2Tuple} or C{scalar}.\n\n           @return: The sum (L{Fsum}).\n\n           @see: Methods L{Fsum.fadd_} and L{Fsum.fadd}.\n        '''\n        f = self._copyd(self.__add__)\n        return f._fadd(other)\n\n    def __bool__(self):  # PYCHOK Python 3+\n        '''Return C{bool(B{self})}, C{True} iff C{residual} is zero.\n        '''\n        s, r = self._nfprs2\n        return bool(s or r) and s != -r  # == self != 0\n\n    def __call__(self, other, **up):  # in .fmath\n        '''Reset this C{Fsum} to C{other}, default C{B{up}=True}.\n        '''\n        self._ps[:] = 0,  # clear for errors\n        self._fset(other, op=_fset_op_, **up)\n        return self\n\n    def __ceil__(self):  # PYCHOK not special in Python 2-\n        '''Return this instance' C{math.ceil} as C{int} or C{float}.\n\n           @return: An C{int} in Python 3+, but C{float} in Python 2-.\n\n           @see: Methods L{Fsum.__floor__} and property L{Fsum.ceil}.\n        '''\n        return self.ceil\n\n    def __cmp__(self, other):  # PYCHOK no cover\n        '''Compare this with an other instance or C{scalar}, Python 2-.\n\n           @return: -1, 0 or +1 (C{int}).\n\n           @raise TypeError: Incompatible B{C{other}} C{type}.\n        '''\n        s = self._cmp_0(other, typename(self.cmp))\n        return _signOf(s, 0)\n\n    def __divmod__(self, other, **raiser_RESIDUAL):\n        '''Return C{divmod(B{self}, B{other})} as a L{DivMod2Tuple}\n           with quotient C{div} an C{int} in Python 3+ or C{float}\n           in Python 2- and remainder C{mod} an L{Fsum} instance.\n\n           @arg other: Modulus (C{scalar}, an L{Fsum} or L{Fsum2Tuple}).\n           @kwarg raiser_RESIDUAL: Use C{B{raiser}=False} to ignore\n                         L{ResidualError}s (C{bool}) and C{B{RESIDUAL}=scalar}\n                         to override the current L{RESIDUAL<Fsum.RESIDUAL>}.\n\n           @raise ResidualError: Non-zero, significant residual or invalid\n                                 B{C{RESIDUAL}}.\n\n           @see: Method L{Fsum.fdiv}.\n        '''\n        f = self._copyd(self.__divmod__)\n        return f._fdivmod2(other, _divmod_op_, **raiser_RESIDUAL)\n\n    def __eq__(self, other):\n        '''Return C{(B{self} == B{other})} as C{bool} where B{C{other}}\n           is C{scalar}, an other L{Fsum} or L{Fsum2Tuple}.\n        '''\n        return self._cmp_0(other, _fset_op_ + _fset_op_) == 0\n\n    def __float__(self):\n        '''Return this instance' current, precision running sum as C{float}.\n\n           @see: Methods L{Fsum.fsum} and L{Fsum.int_float}.\n        '''\n        return float(self._fprs)\n\n    def __floor__(self):  # PYCHOK not special in Python 2-\n        '''Return this instance' C{math.floor} as C{int} or C{float}.\n\n           @return: An C{int} in Python 3+, but C{float} in Python 2-.\n\n           @see: Methods L{Fsum.__ceil__} and property L{Fsum.floor}.\n        '''\n        return self.floor\n\n    def __floordiv__(self, other):\n        '''Return C{B{self} // B{other}} as an L{Fsum}.\n\n           @arg other: Divisor (C{scalar}, an L{Fsum} or L{Fsum2Tuple}).\n\n           @return: The C{floor} quotient (L{Fsum}).\n\n           @see: Methods L{Fsum.__ifloordiv__}.\n        '''\n        f = self._copyd(self.__floordiv__)\n        return f._floordiv(other, _floordiv_op_)\n\n#   def __format__(self, *other):  # PYCHOK no cover\n#       '''Not implemented.'''\n#       return _NotImplemented(self, *other)\n\n    def __ge__(self, other):\n        '''Return C{(B{self} >= B{other})}, see C{__eq__}.\n        '''\n        return self._cmp_0(other, _gt_op_ + _fset_op_) >= 0\n\n    def __gt__(self, other):\n        '''Return C{(B{self} > B{other})}, see C{__eq__}.\n        '''\n        return self._cmp_0(other, _gt_op_) > 0\n\n    def __hash__(self):  # PYCHOK no cover\n        '''Return C{hash(B{self})} as C{float}.\n        '''\n        # @see: U{Notes for type implementors<https://docs.Python.org/\n        #       3/library/numbers.html#numbers.Rational>}\n        return hash(self.partials)  # tuple.__hash__()\n\n    def __iadd__(self, other):\n        '''Apply C{B{self} += B{other}} to this instance.\n\n           @arg other: An L{Fsum}, L{Fsum2Tuple} or C{scalar} value or\n                       an iterable of several of the former.\n\n           @return: This instance, updated (L{Fsum}).\n\n           @raise TypeError: Invalid B{C{other}}, not\n                             C{scalar} nor L{Fsum}.\n\n           @see: Methods L{Fsum.fadd_} and L{Fsum.fadd}.\n        '''\n        try:\n            return self._fadd(other, op=_iadd_op_)\n        except TypeError:\n            pass\n        _xiterable(other)\n        return self._facc(other)\n\n    def __ifloordiv__(self, other):\n        '''Apply C{B{self} //= B{other}} to this instance.\n\n           @arg other: Divisor (C{scalar}, an L{Fsum} or L{Fsum2Tuple}).\n\n           @return: This instance, updated (L{Fsum}).\n\n           @raise ResidualError: Non-zero, significant residual\n                                 in B{C{other}}.\n\n           @raise TypeError: Invalid B{C{other}} type.\n\n           @raise ValueError: Invalid or I{non-finite} B{C{other}}.\n\n           @raise ZeroDivisionError: Zero B{C{other}}.\n\n           @see: Methods L{Fsum.__itruediv__}.\n        '''\n        return self._floordiv(other, _floordiv_op_ + _fset_op_)\n\n    def __imatmul__(self, other):  # PYCHOK no cover\n        '''Not implemented.'''\n        return _NotImplemented(self, other)\n\n    def __imod__(self, other):\n        '''Apply C{B{self} %= B{other}} to this instance.\n\n           @arg other: Modulus (C{scalar}, an L{Fsum} or L{Fsum2Tuple}).\n\n           @return: This instance, updated (L{Fsum}).\n\n           @see: Method L{Fsum.__divmod__}.\n        '''\n        return self._fdivmod2(other, _mod_op_ + _fset_op_).mod\n\n    def __imul__(self, other):\n        '''Apply C{B{self} *= B{other}} to this instance.\n\n           @arg other: Factor (C{scalar}, an L{Fsum} or L{Fsum2Tuple}).\n\n           @return: This instance, updated (L{Fsum}).\n\n           @raise OverflowError: Partial C{2sum} overflow.\n\n           @raise TypeError: Invalid B{C{other}} type.\n\n           @raise ValueError: Invalid or I{non-finite} B{C{other}}.\n        '''\n        return self._fmul(other, _mul_op_ + _fset_op_)\n\n    def __int__(self):\n        '''Return this instance as an C{int}.\n\n        @see: Method L{Fsum.int_float} and properties L{Fsum.ceil}\n              and L{Fsum.floor}.\n        '''\n        i, _ = self._fint2\n        return i\n\n    def __invert__(self):  # PYCHOK no cover\n        '''Not implemented.'''\n        # Luciano Ramalho, \"Fluent Python\", O'Reilly, 2nd Ed, 2022 p. 567\n        return _NotImplemented(self)\n\n    def __ipow__(self, other, *mod, **raiser_RESIDUAL):  # PYCHOK 2 vs 3 args\n        '''Apply C{B{self} **= B{other}} to this instance.\n\n           @arg other: Exponent (C{scalar}, an L{Fsum} or L{Fsum2Tuple}).\n           @arg mod: Optional modulus (C{int} or C{None}) for the 3-argument\n                     C{pow(B{self}, B{other}, B{mod})} version.\n           @kwarg raiser_RESIDUAL: Use C{B{raiser}=False} to ignore\n                         L{ResidualError}s (C{bool}) and C{B{RESIDUAL}=scalar}\n                         to override the current L{RESIDUAL<Fsum.RESIDUAL>}.\n\n           @return: This instance, updated (L{Fsum}).\n\n           @note: If B{C{mod}} is given, the result will be an C{integer}\n                  L{Fsum} in Python 3+ if this instance C{is_integer} or\n                  set to C{as_integer} and B{C{mod}} is given and C{None}.\n\n           @raise OverflowError: Partial C{2sum} overflow.\n\n           @raise ResidualError: Invalid B{C{RESIDUAL}} or the residual\n                                 is non-zero and significant and either\n                                 B{C{other}} is a fractional or negative\n                                 C{scalar} or B{C{mod}} is given and not\n                                 C{None}.\n\n           @raise TypeError: Invalid B{C{other}} type or 3-argument C{pow}\n                             invocation failed.\n\n           @raise ValueError: If B{C{other}} is a negative C{scalar} and this\n                              instance is C{0} or B{C{other}} is a fractional\n                              C{scalar} and this instance is negative or has a\n                              non-zero and significant residual or B{C{mod}}\n                              is given as C{0}.\n\n           @see: CPython function U{float_pow<https://GitHub.com/\n                 python/cpython/blob/main/Objects/floatobject.c>}.\n        '''\n        return self._fpow(other, _pow_op_ + _fset_op_, *mod, **raiser_RESIDUAL)\n\n    def __isub__(self, other):\n        '''Apply C{B{self} -= B{other}} to this instance.\n\n           @arg other: An L{Fsum}, L{Fsum2Tuple} or C{scalar} value or\n                       an iterable of several of the former.\n\n           @return: This instance, updated (L{Fsum}).\n\n           @raise TypeError: Invalid B{C{other}} type.\n\n           @see: Methods L{Fsum.fsub_} and L{Fsum.fsub}.\n        '''\n        try:\n            return self._fsub(other, _isub_op_)\n        except TypeError:\n            pass\n        _xiterable(other)\n        return self._facc_neg(other)\n\n    def __iter__(self):\n        '''Return an C{iter}ator over a C{partials} duplicate.\n        '''\n        return iter(self.partials)\n\n    def __itruediv__(self, other, **raiser_RESIDUAL):\n        '''Apply C{B{self} /= B{other}} to this instance.\n\n           @arg other: Divisor (C{scalar}, an L{Fsum} or L{Fsum2Tuple}).\n           @kwarg raiser_RESIDUAL: Use C{B{raiser}=False} to ignore\n                         L{ResidualError}s (C{bool}) and C{B{RESIDUAL}=scalar}\n                         to override the current L{RESIDUAL<Fsum.RESIDUAL>}.\n\n           @return: This instance, updated (L{Fsum}).\n\n           @raise OverflowError: Partial C{2sum} overflow.\n\n           @raise ResidualError: Non-zero, significant residual or invalid\n                                 B{C{RESIDUAL}}.\n\n           @raise TypeError: Invalid B{C{other}} type.\n\n           @raise ValueError: Invalid or I{non-finite} B{C{other}}.\n\n           @raise ZeroDivisionError: Zero B{C{other}}.\n\n           @see: Method L{Fsum.__ifloordiv__}.\n        '''\n        return self._ftruediv(other, _truediv_op_ + _fset_op_, **raiser_RESIDUAL)\n\n    def __le__(self, other):\n        '''Return C{(B{self} <= B{other})}, see C{__eq__}.\n        '''\n        return self._cmp_0(other, _lt_op_ + _fset_op_) <= 0\n\n    def __len__(self):\n        '''Return the number of (non-zero) values accumulated (C{int}).\n        '''\n        return self._n\n\n    def __lt__(self, other):\n        '''Return C{(B{self} < B{other})}, see C{__eq__}.\n        '''\n        return self._cmp_0(other, _lt_op_) < 0\n\n    def __matmul__(self, other):  # PYCHOK no cover\n        '''Not implemented.'''\n        return _NotImplemented(self, other)\n\n    def __mod__(self, other):\n        '''Return C{B{self} % B{other}} as an L{Fsum}.\n\n           @see: Method L{Fsum.__imod__}.\n        '''\n        f = self._copyd(self.__mod__)\n        return f._fdivmod2(other, _mod_op_).mod\n\n    def __mul__(self, other):\n        '''Return C{B{self} * B{other}} as an L{Fsum}.\n\n           @see: Method L{Fsum.__imul__}.\n        '''\n        f = self._copyd(self.__mul__)\n        return f._fmul(other, _mul_op_)\n\n    def __ne__(self, other):\n        '''Return C{(B{self} != B{other})}, see C{__eq__}.\n        '''\n        return self._cmp_0(other, _ne_op_) != 0\n\n    def __neg__(self):\n        '''Return C{copy(B{self})}, I{negated}.\n        '''\n        f = self._copyd(self.__neg__)\n        return f._fset(self._neg)\n\n    def __pos__(self):\n        '''Return this instance I{as-is}, like C{float.__pos__()}.\n        '''\n        return self if _pos_self else self._copyd(self.__pos__)\n\n    def __pow__(self, other, *mod):  # PYCHOK 2 vs 3 args\n        '''Return C{B{self}**B{other}} as an L{Fsum}.\n\n           @see: Method L{Fsum.__ipow__}.\n        '''\n        f = self._copyd(self.__pow__)\n        return f._fpow(other, _pow_op_, *mod)\n\n    def __radd__(self, other):\n        '''Return C{B{other} + B{self}} as an L{Fsum}.\n\n           @see: Method L{Fsum.__iadd__}.\n        '''\n        f = self._rcopyd(other, self.__radd__)\n        return f._fadd(self)\n\n    def __rdivmod__(self, other):\n        '''Return C{divmod(B{other}, B{self})} as 2-tuple\n           C{(quotient, remainder)}.\n\n           @see: Method L{Fsum.__divmod__}.\n        '''\n        f = self._rcopyd(other, self.__rdivmod__)\n        return f._fdivmod2(self, _divmod_op_)\n\n#       turned off, called by _deepcopy and _copy\n#   def __reduce__(self):  # Python 3.8+\n#       ''' Pickle, like std C{fractions.Fraction}, see U{__reduce__\n#           <https://docs.Python.org/3/library/pickle.html#object.__reduce__>}\n#       '''\n#       dict_ = self._Fsum_as().__dict__  # no __setstate__\n#       return (type(self), self.partials, dict_)\n\n#   def __repr__(self):\n#       '''Return the default C{repr(this)}.\n#       '''\n#       return self.toRepr(lenc=True)\n\n    def __rfloordiv__(self, other):\n        '''Return C{B{other} // B{self}} as an L{Fsum}.\n\n           @see: Method L{Fsum.__ifloordiv__}.\n        '''\n        f = self._rcopyd(other, self.__rfloordiv__)\n        return f._floordiv(self, _floordiv_op_)\n\n    def __rmatmul__(self, other):  # PYCHOK no cover\n        '''Not implemented.'''\n        return _NotImplemented(self, other)\n\n    def __rmod__(self, other):\n        '''Return C{B{other} % B{self}} as an L{Fsum}.\n\n           @see: Method L{Fsum.__imod__}.\n        '''\n        f = self._rcopyd(other, self.__rmod__)\n        return f._fdivmod2(self, _mod_op_).mod\n\n    def __rmul__(self, other):\n        '''Return C{B{other} * B{self}} as an L{Fsum}.\n\n           @see: Method L{Fsum.__imul__}.\n        '''\n        f = self._rcopyd(other, self.__rmul__)\n        return f._fmul(self, _mul_op_)\n\n    def __round__(self, *ndigits):  # PYCHOK Python 3+\n        '''Return C{round(B{self}, *B{ndigits}} as an L{Fsum}.\n\n           @arg ndigits: Optional number of digits (C{int}).\n        '''\n        f = self._copyd(self.__round__)\n        # <https://docs.Python.org/3.12/reference/datamodel.html?#object.__round__>\n        return f._fset(round(float(self), *ndigits))  # can be C{int}\n\n    def __rpow__(self, other, *mod):\n        '''Return C{B{other}**B{self}} as an L{Fsum}.\n\n           @see: Method L{Fsum.__ipow__}.\n        '''\n        f = self._rcopyd(other, self.__rpow__)\n        return f._fpow(self, _pow_op_, *mod)\n\n    def __rsub__(self, other):\n        '''Return C{B{other} - B{self}} as L{Fsum}.\n\n           @see: Method L{Fsum.__isub__}.\n        '''\n        f = self._rcopyd(other, self.__rsub__)\n        return f._fsub(self, _sub_op_)\n\n    def __rtruediv__(self, other, **raiser_RESIDUAL):\n        '''Return C{B{other} / B{self}} as an L{Fsum}.\n\n           @see: Method L{Fsum.__itruediv__}.\n        '''\n        f = self._rcopyd(other, self.__rtruediv__)\n        return f._ftruediv(self, _truediv_op_, **raiser_RESIDUAL)\n\n#   def __sizeof__(self):\n#       '''Return the size of this instance (C{int} bytes}).\n#       '''\n#       return _sizeof(self._ps) + _sizeof(self._n)\n\n    def __str__(self):\n        '''Return the default C{str(self)}.\n        '''\n        return self.toStr(lenc=True)\n\n    def __sub__(self, other):\n        '''Return C{B{self} - B{other}} as an L{Fsum}.\n\n           @arg other: An L{Fsum}, L{Fsum2Tuple} or C{scalar}.\n\n           @return: The difference (L{Fsum}).\n\n           @see: Method L{Fsum.__isub__}.\n        '''\n        f = self._copyd(self.__sub__)\n        return f._fsub(other, _sub_op_)\n\n    def __truediv__(self, other, **raiser_RESIDUAL):\n        '''Return C{B{self} / B{other}} as an L{Fsum}.\n\n           @arg other: Divisor (C{scalar}, an L{Fsum} or L{Fsum2Tuple}).\n           @kwarg raiser_RESIDUAL: Use C{B{raiser}=False} to ignore\n                         L{ResidualError}s (C{bool}) and C{B{RESIDUAL}=scalar}\n                         to override the current L{RESIDUAL<Fsum.RESIDUAL>}.\n\n           @return: The quotient (L{Fsum}).\n\n           @raise ResidualError: Non-zero, significant residual or invalid\n                                 B{C{RESIDUAL}}.\n\n           @see: Method L{Fsum.__itruediv__}.\n        '''\n        return self._truediv(other, _truediv_op_, **raiser_RESIDUAL)\n\n    __trunc__ = __int__\n\n    if _MODS.sys_version_info2 < (3, 0):  # PYCHOK no cover\n        # <https://docs.Python.org/2/library/operator.html#mapping-operators-to-functions>\n        __div__     = __truediv__\n        __idiv__    = __itruediv__\n        __long__    = __int__\n        __nonzero__ = __bool__\n        __rdiv__    = __rtruediv__\n\n    def as_integer_ratio(self):\n        '''Return this instance as the ratio of 2 integers.\n\n           @return: 2-Tuple C{(numerator, denominator)} both C{int} with\n                    C{numerator} signed and C{denominator} non-zero and\n                    positive.  The C{numerator} is I{non-finite} if this\n                    instance is.\n\n           @see: Method L{Fsum.fint2} and C{float.as_integer_ratio} in\n                 Python 2.7+.\n        '''\n        n, r = self._fint2\n        if r:\n            i, d =  float(r).as_integer_ratio()\n            n, d = _n_d2(n * d + i, d)\n        else:  # PYCHOK no cover\n            d = 1\n        return n, d\n\n    @property_RO\n    def as_iscalar(self):\n        '''Get this instance I{as-is} (L{Fsum} with C{non-zero residual},\n           C{scalar} or I{non-finite}).\n        '''\n        s, r = self._nfprs2\n        return self if r else s\n\n    @property_RO\n    def ceil(self):\n        '''Get this instance' C{ceil} value (C{int} in Python 3+, but\n           C{float} in Python 2-).\n\n           @note: This C{ceil} takes the C{residual} into account.\n\n           @see: Method L{Fsum.int_float} and properties L{Fsum.floor},\n                 L{Fsum.imag} and L{Fsum.real}.\n        '''\n        s, r = self._fprs2\n        c = _ceil(s) + int(r) - 1\n        while r > (c - s):  # (s + r) > c\n            c += 1\n        return c  # _ceil(self._n_d)\n\n    cmp = __cmp__\n\n    def _cmp_0(self, other, op):\n        '''(INTERNAL) Return C{scalar(self - B{other})} for 0-comparison.\n        '''\n        if _isFsum_2Tuple(other):\n            s = self._ps_1sum(*other._ps)\n        elif self._scalar(other, op):\n            s = self._ps_1sum(other)\n        else:\n            s = self.signOf()  # res=True\n        return s\n\n    def copy(self, deep=False, **name):\n        '''Copy this instance, C{shallow} or B{C{deep}}.\n\n           @kwarg name: Optional, overriding C{B{name}='\"copy\"} (C{str}).\n\n           @return: The copy (L{Fsum}).\n         '''\n        n = _name__(name, name__=self.copy)\n        f = _Named.copy(self, deep=deep, name=n)\n        if f._ps is self._ps:\n            f._ps = list(self._ps)  # separate list\n        if not deep:\n            f._n = 1\n        # assert f._f2product == self._f2product\n        # assert f._Fsum is f\n        # assert f._isfine is self._isfine\n        # assert f._RESIDUAL is self._RESIDUAL\n        return f\n\n    def _copyd(self, which, name=NN):\n        '''(INTERNAL) Copy for I{dyadic} operators.\n        '''\n        n =  name or typename(which)\n        # NOT .classof due to .Fdot(a, *b) args, etc.\n        f = _Named.copy(self, deep=False, name=n)\n        f._ps = list(self._ps)  # separate list\n        # assert f._n == self._n\n        # assert f._f2product == self._f2product\n        # assert f._Fsum is f\n        # assert f._isfine is self._isfine\n        # assert f._RESIDUAL is self._RESIDUAL\n        return f\n\n    divmod = __divmod__\n\n    def _Error(self, op, other, Error, **txt_cause):\n        '''(INTERNAL) Format an B{C{Error}} for C{{self} B{op} B{other}}.\n        '''\n        # self.as_iscalar causes RecursionError for ._fprs2 errors\n        s = _Psum(self._ps, nonfinites=True, name=self.name)\n        return Error(_SPACE_(s.as_iscalar, op, other), **txt_cause)\n\n    def _ErrorX(self, X, op, other, *mod):\n        '''(INTERNAL) Format the caught exception C{X}.\n        '''\n        E, t = _xError2(X)\n        if mod:\n            t = _COMMASPACE_(Fmt.PARENSPACED(mod=mod[0]), t)\n        return self._Error(op, other, E, txt=t, cause=X)\n\n    def _ErrorXs(self, X, xs, **kwds):  # in .fmath\n        '''(INTERNAL) Format the caught exception C{X}.\n        '''\n        E, t = _xError2(X)\n        u = unstr(self.named3, *xs, _ELLIPSIS=4, **kwds)\n        return E(u, txt=t, cause=X)\n\n    def _facc(self, xs, up=True, **_X_x_origin):\n        '''(INTERNAL) Accumulate more C{scalar}s, L{Fsum}s pr L{Fsum2Tuple}s.\n        '''\n        if xs:\n            kwds = self._isfine\n            if _X_x_origin:\n                kwds = _xkwds(_X_x_origin, **kwds)\n            fs    = _xs(xs, **kwds)  # PYCHOK yield\n            ps    =  self._ps\n            ps[:] =  self._ps_acc(list(ps), fs, up=up)\n#           if len(ps) > 16:\n#               _ = _psum(ps, **self._isfine)\n        return self\n\n    def _facc_args(self, xs, **up):\n        '''(INTERNAL) Accumulate 0, 1 or more C{xs}, all positional\n           arguments in the caller of this method.\n        '''\n        return self._fadd(xs[0], **up) if len(xs) == 1 else \\\n               self._facc(xs, **up)  # origin=1?\n\n    def _facc_dot(self, n, xs, ys, **kwds):  # in .fmath\n        '''(INTERNAL) Accumulate C{fdot(B{xs}, *B{ys})}.\n        '''\n        if n > 0:\n            _f = Fsum(**kwds)\n            self._facc(_f(x).fmul(y) for x, y in zip(xs, ys))  # PYCHOK attr?\n        return self\n\n    def _facc_neg(self, xs, **up_origin):\n        '''(INTERNAL) Accumulate more C{xs}, negated.\n        '''\n        def _N(X):\n            return X._ps_neg\n\n        def _n(x):\n            return -float(x)\n\n        return self._facc(xs, _X=_N, _x=_n, **up_origin)\n\n    def _facc_power(self, power, xs, which, **raiser_RESIDUAL):  # in .fmath\n        '''(INTERNAL) Add each C{xs} as C{float(x**power)}.\n        '''\n        def _Pow4(p):\n            r = 0\n            if _isFsum_2Tuple(p):\n                s, r = p._fprs2\n                if r:\n                    m = Fsum._pow\n                else:  # scalar\n                    return _Pow4(s)\n            elif isint(p, both=True) and int(p) >= 0:\n                p = s = int(p)\n                m = Fsum._pow_int\n            else:\n                p = s = _2float(power=p, **self._isfine)\n                m = Fsum._pow_scalar\n            return m, p, s, r\n\n        _Pow, p, s, r = _Pow4(power)\n        if p:  # and xs:\n            op   =  typename(which)\n            _FsT = _Fsum_2Tuple_types\n            _pow =  self._pow_2_3\n\n            def _P(X):\n                f = _Pow(X, p, power, op, **raiser_RESIDUAL)\n                return f._ps if isinstance(f, _FsT) else (f,)\n\n            def _p(x):\n                x =  float(x)\n                f = _pow(x, s, power, op, **raiser_RESIDUAL)\n                if f and r:\n                    f *= _pow(x, r, power, op, **raiser_RESIDUAL)\n                return f\n\n            f = self._facc(xs, _X=_P, _x=_p)  # origin=1?\n        else:\n            f = self._facc_scalar_(float(len(xs)))  # x**0 == 1\n        return f\n\n    def _facc_scalar(self, xs, **up):\n        '''(INTERNAL) Accumulate all C{xs}, each C{scalar}.\n        '''\n        if xs:\n            ps    = self._ps\n            ps[:] = self._ps_acc(list(ps), xs, **up)\n        return self\n\n    def _facc_scalar_(self, *xs, **up):\n        '''(INTERNAL) Accumulate all positional C{xs}, each C{scalar}.\n        '''\n        return self._facc_scalar(xs, **up)\n\n#   def _facc_up(self, up=True):\n#       '''(INTERNAL) Update the C{partials}, by removing\n#          and re-accumulating the final C{partial}.\n#       '''\n#       ps = self._ps\n#       while len(ps) > 1:\n#           p = ps.pop()\n#           if p:\n#               n = self._n\n#               _ = self._ps_acc(ps, (p,), up=False)\n#               self._n = n\n#               break\n#       return self._update() if up else self\n\n    def _facc_xsum(self, xs, up=True, **origin_which):\n        '''(INTERNAL) Accumulate all C{xs}, each C{scalar}, an L{Fsum}\n           or L{Fsum2Tuple}, like function C{_xsum}.\n        '''\n        fs = _xs(xs, **_x_isfine(self.nonfinitesOK, _Cdot=type(self),\n                               **origin_which))  # PYCHOK yield\n        return self._facc_scalar(fs, up=up)\n\n    def fadd(self, xs=()):\n        '''Add an iterable's items to this instance.\n\n           @arg xs: Iterable of items to add (each C{scalar},\n                    an L{Fsum} or L{Fsum2Tuple}).\n\n           @return: This instance (L{Fsum}).\n\n           @raise OverflowError: Partial C{2sum} overflow.\n\n           @raise TypeError: An invalid B{C{xs}} item.\n\n           @raise ValueError: Invalid or I{non-finite} B{C{xs}} value.\n        '''\n        if _isFsum_2Tuple(xs):\n            self._facc_scalar(xs._ps)\n        elif isscalar(xs):    # for backward compatibility # PYCHOK no cover\n            x = _2float(x=xs, **self._isfine)\n            self._facc_scalar_(x)\n        elif xs:  # _xiterable(xs)\n            self._facc(xs)\n        return self\n\n    def fadd_(self, *xs):\n        '''Add all positional items to this instance.\n\n           @arg xs: Values to add (each C{scalar}, an L{Fsum}\n                    or L{Fsum2Tuple}), all positional.\n\n           @see: Method L{Fsum.fadd} for further details.\n        '''\n        return self._facc_args(xs)\n\n    def _fadd(self, other, op=_add_op_, **up):\n        '''(INTERNAL) Apply C{B{self} += B{other}}.\n        '''\n        if _isFsum_2Tuple(other):\n            self._facc_scalar(other._ps, **up)\n        elif self._scalar(other, op):\n            self._facc_scalar_(other, **up)\n        return self\n\n    fcopy   =   copy  # for backward compatibility\n    fdiv    = __itruediv__\n    fdivmod = __divmod__\n\n    def _fdivmod2(self, other, op, **raiser_RESIDUAL):\n        '''(INTERNAL) Apply C{B{self} %= B{other}} and return a L{DivMod2Tuple}.\n        '''\n        # result mostly follows CPython function U{float_divmod\n        # <https://GitHub.com/python/cpython/blob/main/Objects/floatobject.c>},\n        # but at least divmod(-3, 2) equals Cpython's result (-2, 1).\n        q = self._truediv(other, op, **raiser_RESIDUAL).floor\n        if q:  # == float // other == floor(float / other)\n            self -= self._Fsum_as(q) * other  # NOT other * q!\n\n        s = signOf(other)  # make signOf(self) == signOf(other)\n        if s and self.signOf() == -s:  # PYCHOK no cover\n            self += other\n            q -= 1\n#           t  = self.signOf()\n#           if t and t != s:\n#               raise self._Error(op, other, _AssertionError, txt__=signOf)\n        return DivMod2Tuple(q, self)  # q is C{int} in Python 3+, but C{float} in Python 2-\n\n    def _fhorner(self, x, cs, where, incx=True):  # in .fmath\n        '''(INTERNAL) Add an L{Fhorner} evaluation of polynomial\n           C{sum(c * B{x}**i for i, c in _e(cs))} where C{_e =\n           enumerate if B{incx} else _enumereverse}.\n        '''\n        # assert _xiterablen(cs)\n        try:\n            n = len(cs)\n            if n > 1 and _2finite(x, **self._isfine):\n                H  = self._Fsum_as(name__=self._fhorner)\n                _m = H._mul_Fsum if _isFsum_2Tuple(x) else \\\n                     H._mul_scalar\n                for c in (reversed(cs) if incx else cs):\n                    H._fset(_m(x, _mul_op_), up=False)\n                    H._fadd(c, up=False)\n            else:  # x == 0\n                H = cs[0] if n else 0\n            return self._fadd(H)\n        except Exception as X:\n            t = unstr(where, x, *cs, _ELLIPSIS=4, incx=incx)\n            raise self._ErrorX(X, _add_op_, t)\n\n    def _finite(self, other, op=None):\n        '''(INTERNAL) Return B{C{other}} if C{finite}.\n        '''\n        if _isOK_or_finite(other, **self._isfine):\n            return other\n        E = _NonfiniteError(other)\n        raise self._Error(op, other, E, txt=_not_finite_)\n\n    def fint(self, name=NN, **raiser_RESIDUAL):\n        '''Return this instance' current running sum as C{integer}.\n\n           @kwarg name: Optional, overriding C{B{name}=\"fint\"} (C{str}).\n           @kwarg raiser_RESIDUAL: Use C{B{raiser}=False} to ignore\n                         L{ResidualError}s (C{bool}) and C{B{RESIDUAL}=scalar}\n                         to override the current L{RESIDUAL<Fsum.RESIDUAL>}.\n\n           @return: The C{integer} sum (L{Fsum}) if this instance C{is_integer}\n                    with a zero or insignificant I{integer} residual.\n\n           @raise ResidualError: Non-zero, significant residual or invalid\n                                 B{C{RESIDUAL}}.\n\n           @see: Methods L{Fsum.fint2}, L{Fsum.int_float} and L{Fsum.is_integer}.\n        '''\n        i, r = self._fint2\n        if r:\n            R = self._raiser(r, i, **raiser_RESIDUAL)\n            if R:\n                t = _stresidual(_integer_, r, **R)\n                raise ResidualError(_integer_, i, txt=t)\n        return self._Fsum_as(i, name=_name__(name, name__=self.fint))\n\n    def fint2(self, **name):\n        '''Return this instance' current running sum as C{int} and the\n           I{integer} residual.\n\n           @kwarg name: Optional name (C{str}).\n\n           @return: An L{Fsum2Tuple}C{(fsum, residual)} with C{fsum}\n                    an C{int} and I{integer} C{residual} a C{float} or\n                    C{INT0} if the C{fsum} is considered to be I{exact}.\n                    The C{fsum} is I{non-finite} if this instance is.\n        '''\n        return Fsum2Tuple(*self._fint2, **name)\n\n    @Property\n    def _fint2(self):  # see ._fset\n        '''(INTERNAL) Get 2-tuple (C{int}, I{integer} residual).\n        '''\n        s, r = self._nfprs2\n        if _isfinite(s):\n            i =  int(s)\n            r = (self._ps_1sum(i) if len(self._ps) > 1 else\n                 float(s - i)) or INT0\n        else:  # INF, NAN, NINF\n            i =  float(s)\n#           r = _NONFINITEr\n        return i, r  # Fsum2Tuple?\n\n    @_fint2.setter_  # PYCHOK setter_UNDERscore!\n    def _fint2(self, s):  # in _fset\n        '''(INTERNAL) Replace the C{_fint2} value.\n        '''\n        if _isfinite(s):\n            i =  int(s)\n            r = (s - i) or INT0\n        else:  # INF, NAN, NINF\n            i =  float(s)\n            r = _NONFINITEr\n        return i, r  # like _fint2.getter\n\n    @deprecated_property_RO\n    def float_int(self):  # PYCHOK no cover\n        '''DEPRECATED, use method C{Fsum.int_float}.'''\n        return self.int_float()  # raiser=False\n\n    @property_RO\n    def floor(self):\n        '''Get this instance' C{floor} (C{int} in Python 3+, but\n           C{float} in Python 2-).\n\n           @note: This C{floor} takes the C{residual} into account.\n\n           @see: Method L{Fsum.int_float} and properties L{Fsum.ceil},\n                 L{Fsum.imag} and L{Fsum.real}.\n        '''\n        s, r = self._fprs2\n        f = _floor(s) + _floor(r) + 1\n        while (f - s) > r:  # f > (s + r)\n            f -= 1\n        return f  # _floor(self._n_d)\n\n#   ffloordiv = __ifloordiv__  # for naming consistency?\n#   floordiv  = __floordiv__   # for naming consistency?\n\n    def _floordiv(self, other, op, **raiser_RESIDUAL):  # rather _ffloordiv?\n        '''Apply C{B{self} //= B{other}}.\n        '''\n        q = self._ftruediv(other, op, **raiser_RESIDUAL)  # == self\n        return self._fset(q.floor)  # floor(q)\n\n    def fma(self, other1, other2, **nonfinites):  # in .fmath.fma\n        '''Fused-multiply-add C{self *= B{other1}; self += B{other2}}.\n\n           @arg other1: Multiplier (C{scalar}, an L{Fsum} or L{Fsum2Tuple}).\n           @arg other2: Addend (C{scalar}, an L{Fsum} or L{Fsum2Tuple}).\n           @kwarg nonfinites: Use C{B{nonfinites}=True} or C{False}, to\n                              override L{nonfinites<Fsum.nonfinites>} and\n                              the L{nonfiniterrors} default (C{bool}).\n        '''\n        f = self._fma(other1, other2, **nonfinites)\n        return self._fset(f)\n\n    def _fma(self, other1, other2, **nonfinites):  # in .elliptic\n        '''(INTERNAL) Return C{self * B{other1} + B{other2}}.\n        '''\n        op  = typename(self.fma)\n        _fs = self._ps_other\n        try:\n            s, r = self._fprs2\n            if r:\n                f  =  self._f2mul(self.fma, (other1,), **nonfinites)\n                f +=  other2\n            elif _residue(other1) or _residue(other2):\n                fs = _2split3s(_fs(op, other1))\n                fs = _2products(s, fs, *_fs(op, other2))\n                f  =  Fsum(fs, name=op, **nonfinites)\n            else:\n                f  = _fma(s, other1, other2)\n                f  = _2finite(f, **self._isfine)\n        except TypeError as X:\n            raise self._ErrorX(X, op, (other1, other2))\n        except (OverflowError, ValueError) as X:  # from math.fma\n            f  = self._mul_reduce(s, other1)  # INF, NAN, NINF\n            f += sum(_fs(op, other2))\n            f  = self._nonfiniteX(X, op, f, **nonfinites)\n        return f\n\n    def fma_(self, *xys, **nonfinites):\n        '''Fused-multiply-accumulate C{for i in range(0, len(xys), B{2}):\n           self = }L{fma<pygeodesy.fmath.fma>}C{(xys[i], xys[i+1], self)}.\n\n           @arg xys: Pairwise multiplicand, multiplier (each C{scalar},\n                     an L{Fsum} or L{Fsum2Tuple}), all positional.\n           @kwarg nonfinites: Use C{B{nonfinites}=True} or C{False}, to\n                              override L{nonfinites<Fsum.nonfinites>} and\n                              the L{nonfiniterrors} default (C{bool}).\n\n           @note: Equivalent to L{fdot_<pygeodesy.fmath.fdot_>}C{(*xys,\n                  start=self)}.\n        '''\n        if xys:\n            n = len(xys)\n            if n < 2 or isodd(n):\n                raise LenError(self.fma_, xys=n)\n            f, _fmath_fma = self, _MODS.fmath.fma\n            for x, y in zip(xys[0::2], xys[1::2]):\n                f = _fmath_fma(x, y, f, **nonfinites)\n            self._fset(f)\n        return self\n\n    fmul = __imul__\n\n    def _fmul(self, other, op):\n        '''(INTERNAL) Apply C{B{self} *= B{other}}.\n        '''\n        if _isFsum_2Tuple(other):\n            if len(self._ps) != 1:\n                f = self._mul_Fsum(other, op)\n            elif len(other._ps) != 1:  # and len(self._ps) == 1\n                f = self._ps_mul(op, *other._ps) if other._ps else _0_0\n            elif self._f2product:  # len(other._ps) == 1\n                f = self._mul_scalar(other._ps[0], op)\n            else:  # len(other._ps) == len(self._ps) == 1\n                f = self._finite(self._ps[0] * other._ps[0], op=op)\n        else:\n            s = self._scalar(other, op)\n            f = self._mul_scalar(s, op)\n        return self._fset(f)  # n=len(self) + 1\n\n    @deprecated_method\n    def f2mul(self, *others, **raiser):\n        '''DEPRECATED on 2024.09.13, use method L{f2mul_<Fsum.f2mul_>}.'''\n        return self._fset(self._f2mul(self.f2mul, others, **raiser))\n\n    def f2mul_(self, *others, **f2product_nonfinites):  # in .fmath.f2mul\n        '''Return C{B{self} * B{other} * B{other} ...} for all B{C{others}} using cascaded,\n           accurate multiplication like with L{f2product<Fsum.f2product>}C{(B{True})}.\n\n           @arg others: Multipliers (each C{scalar}, an L{Fsum} or L{Fsum2Tuple}), all\n                        positional.\n           @kwarg f2product_nonfinites: Use C{B{f2product=False}} to override the default\n                            C{True} and C{B{nonfinites}=True} or C{False}, to override\n                            settings L{nonfinites<Fsum.nonfinites>} and L{nonfiniterrors}.\n\n           @return: The cascaded I{TwoProduct} (L{Fsum} or C{float}).\n\n           @see: U{Equations 2.3<https://www.TUHH.De/ti3/paper/rump/OzOgRuOi06.pdf>}\n        '''\n        return self._f2mul(self.f2mul_, others, **f2product_nonfinites)\n\n    def _f2mul(self, where, others, f2product=True, **nonfinites_raiser):\n        '''(INTERNAL) See methods C{fma} and C{f2mul_}.\n        '''\n        n =  typename(where)\n        f = _Psum(self._ps, f2product=f2product, name=n)\n        if others and f:\n            if f.f2product():\n                def _pfs(f, ps):\n                    return _2products(f, _2split3s(ps))\n            else:\n                def _pfs(f, ps):  # PYCHOK redef\n                    return (f * p for p in ps)\n\n            op, ps = n, f._ps\n            try:  # as if self.f2product(True)\n                for other in others:  # to pinpoint errors\n                    for p in self._ps_other(op, other):\n                        ps[:] = f._ps_acc([], _pfs(p, ps), update=False)\n                f._update()\n            except TypeError as X:\n                raise self._ErrorX(X, op, other)\n            except (OverflowError, ValueError) as X:\n                r = self._mul_reduce(sum(ps), other)  # INF, NAN, NINF\n                r = self._nonfiniteX(X, op, r, **nonfinites_raiser)\n                f._fset(r)\n        return f\n\n    def fover(self, over, **raiser_RESIDUAL):\n        '''Apply C{B{self} /= B{over}} and summate.\n\n           @arg over: Divisor (C{scalar}, an L{Fsum} or L{Fsum2Tuple}).\n           @kwarg raiser_RESIDUAL: Use C{B{raiser}=False} to ignore\n                         L{ResidualError}s (C{bool}) and C{B{RESIDUAL}=scalar}\n                         to override the current L{RESIDUAL<Fsum.RESIDUAL>}.\n\n           @return: Precision running quotient sum (C{float}).\n\n           @raise ResidualError: Non-zero, significant residual or invalid\n                                 B{C{RESIDUAL}}.\n\n           @see: Methods L{Fsum.fdiv}, L{Fsum.__itruediv__} and L{Fsum.fsum}.\n        '''\n        return float(self.fdiv(over, **raiser_RESIDUAL)._fprs)\n\n    fpow = __ipow__\n\n    def _fpow(self, other, op, *mod, **raiser_RESIDUAL):\n        '''Apply C{B{self} **= B{other}}, optional B{C{mod}} or C{None}.\n        '''\n        if mod:\n            if mod[0] is not None:  # == 3-arg C{pow}\n                f = self._pow_2_3(self, other, other, op, *mod, **raiser_RESIDUAL)\n            elif self.is_integer():\n                # return an exact C{int} for C{int}**C{int}\n                i, _ =  self._fint2  # assert _ == 0\n                x, r = _2tuple2(other)  # C{int}, C{float} or other\n                f = self._Fsum_as(i)._pow_Fsum(other, op, **raiser_RESIDUAL) if r else \\\n                    self._pow_2_3(i, x,        other, op, **raiser_RESIDUAL)\n            else:  # mod[0] is None, power(self, other)\n                f = self._pow(other, other, op, **raiser_RESIDUAL)\n        else:  # pow(self, other)\n            f = self._pow(other, other, op, **raiser_RESIDUAL)\n        return self._fset(f)  # n=max(len(self), 1)\n\n    def f2product(self, *two):\n        '''Get and set accurate I{TwoProduct} multiplication for this\n           L{Fsum}, overriding the L{f2product} default.\n\n           @arg two: If omitted, leave the override unchanged, if C{True},\n                     turn I{TwoProduct} on, if C{False} off, or if C{None}\n                     remove the override (C{bool} or C{None}).\n\n           @return: The previous setting (C{bool} or C{None} if not set).\n\n           @see: Function L{f2product<fsums.f2product>}.\n\n           @note: Use C{f.f2product() or f2product()} to determine whether\n                  multiplication is accurate for L{Fsum} C{f}.\n        '''\n        if two:  # delattrof(self, _f2product=None)\n            t = _xkwds_pop(self.__dict__, _f2product=None)\n            self._optionals(f2product=two[0])\n        else:  # getattrof(self, _f2product=None)\n            t = _xkwds_get(self.__dict__, _f2product=None)\n        return t\n\n    @Property\n    def _fprs(self):\n        '''(INTERNAL) Get and cache this instance' precision\n           running sum (C{float} or C{int}), ignoring C{residual}.\n\n           @note: The precision running C{fsum} after a C{//=} or\n                  C{//} C{floor} division is C{int} in Python 3+.\n        '''\n        s, _ = self._fprs2\n        return s  # ._fprs2.fsum\n\n    @_fprs.setter_  # PYCHOK setter_UNDERscore!\n    def _fprs(self, s):\n        '''(INTERNAL) Replace the C{_fprs} value.\n        '''\n        return s\n\n    @Property\n    def _fprs2(self):\n        '''(INTERNAL) Get and cache this instance' precision\n           running sum and residual (L{Fsum2Tuple}).\n        '''\n        ps = self._ps\n        n  = len(ps)\n        try:\n            if n > 2:\n                s = _psum(ps, **self._isfine)\n                if not _isfinite(s):\n                    ps[:] = s,  # collapse ps\n                    return Fsum2Tuple(s, _NONFINITEr)\n                n = len(ps)\n#               Fsum._ps_max = max(Fsum._ps_max, n)\n                if n > 2:\n                    r = self._ps_1sum(s)\n                    return Fsum2Tuple(*_s_r2(s, r))\n            if n > 1:  # len(ps) == 2\n                s, r  = _s_r2(*_2sum(*ps, **self._isfine))\n                ps[:] = (r, s) if r else (s,)\n            elif ps:  # len(ps) == 1\n                s = ps[0]\n                r = INT0 if _isfinite(s) else _NONFINITEr\n            else:  # len(ps) == 0\n                s = _0_0\n                r = INT0 if _isfinite(s) else _NONFINITEr\n                ps[:] = s,\n        except (OverflowError, ValueError) as X:\n            op = _fset_op_  # INF, NAN, NINF\n            ps[:] = sum(ps),  # collapse ps\n            s =  self._nonfiniteX(X, op, ps[0])\n            r = _NONFINITEr\n        # assert self._ps is ps\n        return Fsum2Tuple(s, r)\n\n    @_fprs2.setter_  # PYCHOK setter_UNDERscore!\n    def _fprs2(self, s_r):\n        '''(INTERNAL) Replace the C{_fprs2} value.\n        '''\n        return Fsum2Tuple(s_r)\n\n    def fset_(self, *xs):\n        '''Apply C{B{self}.partials = Fsum(*B{xs}).partials}.\n\n           @arg xs: Optional, new values (each C{scalar} or an L{Fsum}\n                    or L{Fsum2Tuple} instance), all positional.\n\n           @return: This instance, replaced (C{Fsum}).\n\n           @see: Method L{Fsum.fadd} for further details.\n        '''\n        f = (xs[0] if xs else _0_0) if len(xs) < 2 else \\\n            Fsum(*xs, nonfinites=self.nonfinites())  # self._Fsum_as(*xs)\n        return self._fset(f, op=_fset_op_)\n\n    def _fset(self, other, n=0, up=True, **op):\n        '''(INTERNAL) Overwrite this instance with an other or a C{scalar}.\n        '''\n        if other is self:\n            pass  # from ._fmul, ._ftruediv and ._pow_0_1\n        elif _isFsum_2Tuple(other):\n            if op:  # and not self.nonfinitesOK:\n                self._finite(other._fprs, **op)\n            self._ps[:] = other._ps\n            self._n     = n or other._n\n            if up:  # use or zap the C{Property_RO} values\n                Fsum._fint2._update_from(self, other)\n                Fsum._fprs ._update_from(self, other)\n                Fsum._fprs2._update_from(self, other)\n        elif isscalar(other):\n            s = float(self._finite(other, **op)) if op else other\n            self._ps[:] = s,\n            self._n     = n or 1\n            if up:  # Property _fint2, _fprs and _fprs2 all have\n                # @.setter_underscore and NOT @.setter because the\n                # latter's _fset zaps the value set by @.setter\n                self._fint2 = s\n                self._fprs  = s\n                self._fprs2 = s, INT0\n                # assert self._fprs is s\n        else:\n            op = _xkwds_get1(op, op=_fset_op_)\n            raise self._Error(op, other, _TypeError)\n        return self\n\n    def fsub(self, xs=()):\n        '''Subtract an iterable's items from this instance.\n\n           @see: Method L{Fsum.fadd} for further details.\n        '''\n        return self._facc_neg(xs)\n\n    def fsub_(self, *xs):\n        '''Subtract all positional items from this instance.\n\n           @see: Method L{Fsum.fadd_} for further details.\n        '''\n        return self._fsub(xs[0], _sub_op_) if len(xs) == 1 else \\\n               self._facc_neg(xs)  # origin=1?\n\n    def _fsub(self, other, op):\n        '''(INTERNAL) Apply C{B{self} -= B{other}}.\n        '''\n        if _isFsum_2Tuple(other):\n            if other is self:  # or other._fprs2 == self._fprs2:\n                self._fset(_0_0, n=len(self) * 2)\n            elif other._ps:\n                self._facc_scalar(other._ps_neg)\n        elif self._scalar(other, op):\n            self._facc_scalar_(-other)\n        return self\n\n    def fsum(self, xs=()):\n        '''Add an iterable's items, summate and return the current\n           precision running sum.\n\n           @arg xs: Iterable of items to add (each item C{scalar},\n                    an L{Fsum} or L{Fsum2Tuple}).\n\n           @return: Precision running sum (C{float} or C{int}).\n\n           @see: Method L{Fsum.fadd}.\n\n           @note: Accumulation can continue after summation.\n        '''\n        return self._facc(xs)._fprs\n\n    def fsum_(self, *xs):\n        '''Add any positional items, summate and return the current\n           precision running sum.\n\n           @arg xs: Items to add (each C{scalar}, an L{Fsum} or\n                    L{Fsum2Tuple}), all positional.\n\n           @return: Precision running sum (C{float} or C{int}).\n\n           @see: Methods L{Fsum.fsum}, L{Fsum.Fsum_} and L{Fsum.fsumf_}.\n        '''\n        return self._facc_args(xs)._fprs\n\n    def Fsum_(self, *xs, **name):\n        '''Like method L{Fsum.fsum_} but returning a named L{Fsum}.\n\n           @kwarg name: Optional name (C{str}).\n\n           @return: Copy of this updated instance (L{Fsum}).\n        '''\n        return self._facc_args(xs)._copyd(self.Fsum_, **name)\n\n    def Fsum2Tuple_(self, *xs, **name):\n        '''Like method L{Fsum.fsum_} but returning a named L{Fsum2Tuple}.\n\n           @kwarg name: Optional name (C{str}).\n\n           @return: Precision running sum (L{Fsum2Tuple}).\n        '''\n        return Fsum2Tuple(self._facc_args(xs)._nfprs2, **name)\n\n    @property_RO\n    def _Fsum(self):  # like L{Fsum2Tuple._Fsum}, in .fstats\n        return self  # NOT @Property_RO, see .copy and ._copyd\n\n    def _Fsum_as(self, *xs, **name_f2product_nonfinites_RESIDUAL):\n        '''(INTERNAL) Return an C{Fsum} with this C{Fsum}'s C{.f2product},\n            C{.nonfinites} and C{.RESIDUAL} setting, optionally\n            overridden with C{name_f2product_nonfinites_RESIDUAL} and\n            with any C{xs} accumulated.\n        '''\n        kwds = _xkwds_not(None, Fsum._RESIDUAL, f2product =self.f2product(),\n                                                nonfinites=self.nonfinites(),\n                                                RESIDUAL  =self.RESIDUAL())\n        if name_f2product_nonfinites_RESIDUAL:  # overwrites\n            kwds.update(name_f2product_nonfinites_RESIDUAL)\n        f = Fsum(**kwds)\n        # assert all(v == self.__dict__[n] for n, v in f.__dict__.items())\n        return (f._facc(xs, up=False) if len(xs) > 1 else\n                f._fset(xs[0], op=_fset_op_)) if xs else f\n\n    def fsum2(self, xs=(), **name):\n        '''Add an iterable's items, summate and return the\n           current precision running sum I{and} the C{residual}.\n\n           @arg xs: Iterable of items to add (each item C{scalar},\n                    an L{Fsum} or L{Fsum2Tuple}).\n           @kwarg name: Optional C{B{name}=NN} (C{str}).\n\n           @return: L{Fsum2Tuple}C{(fsum, residual)} with C{fsum} the\n                    current precision running sum and C{residual}, the\n                    (precision) sum of the remaining C{partials}.  The\n                    C{residual is INT0} if the C{fsum} is considered\n                    to be I{exact}.\n\n           @see: Methods L{Fsum.fint2}, L{Fsum.fsum} and L{Fsum.fsum2_}\n        '''\n        t = self._facc(xs)._fprs2\n        return t.dup(name=name) if name else t\n\n    def fsum2_(self, *xs):\n        '''Add any positional items, summate and return the current\n           precision running sum and the I{differential}.\n\n           @arg xs: Values to add (each C{scalar}, an L{Fsum} or\n                    L{Fsum2Tuple}), all positional.\n\n           @return: 2Tuple C{(fsum, delta)} with the current, precision\n                    running C{fsum} like method L{Fsum.fsum} and C{delta},\n                    the difference with previous running C{fsum}, C{float}.\n\n           @see: Methods L{Fsum.fsum_} and L{Fsum.fsum}.\n        '''\n        return self._fsum2(xs, self._facc_args)\n\n    def _fsum2(self, xs, _facc, **facc_kwds):\n        '''(INTERNAL) Helper for L{Fsum.fsum2_} and L{Fsum.fsum2f_}.\n        '''\n        p, q = self._fprs2\n        if xs:\n            s, r = _facc(xs, **facc_kwds)._fprs2\n            if _isfinite(s):  # _fsum(_1primed((s, -p, r, -q))\n                d, r = _2sum(s - p, r - q, _isfine=_isOK)\n                r, _ = _s_r2(d, r)\n            return s, (r if _isfinite(r) else _NONFINITEr)\n        else:\n            return p, _0_0\n\n    def fsumf_(self, *xs):\n        '''Like method L{Fsum.fsum_} iff I{all} C{B{xs}}, each I{known to be}\n           C{scalar}, an L{Fsum} or L{Fsum2Tuple}.\n        '''\n        return self._facc_xsum(xs, which=self.fsumf_)._fprs  # origin=1?\n\n    def Fsumf_(self, *xs):\n        '''Like method L{Fsum.Fsum_} iff I{all} C{B{xs}}, each I{known to be}\n           C{scalar}, an L{Fsum} or L{Fsum2Tuple}.\n        '''\n        return self._facc_xsum(xs, which=self.Fsumf_)._copyd(self.Fsumf_)  # origin=1?\n\n    def fsum2f_(self, *xs):\n        '''Like method L{Fsum.fsum2_} iff I{all} C{B{xs}}, each I{known to be}\n           C{scalar}, an L{Fsum} or L{Fsum2Tuple}.\n        '''\n        return self._fsum2(xs, self._facc_xsum, which=self.fsum2f_)  # origin=1?\n\n#   ftruediv = __itruediv__   # for naming consistency?\n\n    def _ftruediv(self, other, op, **raiser_RESIDUAL):\n        '''(INTERNAL) Apply C{B{self} /= B{other}}.\n        '''\n        n = _1_0\n        if _isFsum_2Tuple(other):\n            if other is self or self == other:\n                return self._fset(n, n=len(self))\n            d, r = other._fprs2\n            if r:\n                R = self._raiser(r, d, **raiser_RESIDUAL)\n                if R:\n                    raise self._ResidualError(op, other, r, **R)\n                d, n = other.as_integer_ratio()\n        else:\n            d = self._scalar(other, op)\n        try:\n            s = n / d\n        except Exception as X:\n            raise self._ErrorX(X, op, other)\n        f = self._mul_scalar(s, _mul_op_)  # handles 0, INF, NAN\n        return self._fset(f)\n\n    @property_RO\n    def imag(self):\n        '''Get the C{imaginary} part of this instance (C{0.0}, always).\n\n           @see: Property L{Fsum.real}.\n        '''\n        return _0_0\n\n    def int_float(self, **raiser_RESIDUAL):\n        '''Return this instance' current running sum as C{int} or C{float}.\n\n           @kwarg raiser_RESIDUAL: Use C{B{raiser}=False} to ignore\n                         L{ResidualError}s (C{bool}) and C{B{RESIDUAL}=scalar}\n                         to override the current L{RESIDUAL<Fsum.RESIDUAL>}.\n\n           @return: This C{int} sum if this instance C{is_integer} and\n                    I{finite}, otherwise the C{float} sum if the residual\n                    is zero or not significant.\n\n           @raise ResidualError: Non-zero, significant residual or invalid\n                                 B{C{RESIDUAL}}.\n\n           @see: Methods L{Fsum.fint}, L{Fsum.fint2}, L{Fsum.is_integer},\n                 L{Fsum.RESIDUAL} and property L{Fsum.as_iscalar}.\n        '''\n        s, r = self._fint2\n        if r:\n            s, r = self._fprs2\n            if r:  # PYCHOK no cover\n                R = self._raiser(r, s, **raiser_RESIDUAL)\n                if R:\n                    t = _stresidual(_non_zero_, r, **R)\n                    raise ResidualError(int_float=s, txt=t)\n            s = float(s)\n        return s\n\n    def is_exact(self):\n        '''Is this instance' running C{fsum} considered to be exact?\n           (C{bool}), C{True} only if the C{residual is }L{INT0}.\n        '''\n        return self.residual is INT0\n\n    def is_finite(self):  # in .constants\n        '''Is this instance C{finite}? (C{bool}).\n\n           @see: Function L{isfinite<pygeodesy.isfinite>}.\n        '''\n        return _isfinite(sum(self._ps))  # == sum(self)\n\n    def is_integer(self):\n        '''Is this instance' running sum C{integer}? (C{bool}).\n\n           @see: Methods L{Fsum.fint}, L{Fsum.fint2} and L{Fsum.is_scalar}.\n        '''\n        s, r = self._fint2\n        return False if r else (_isfinite(s) and isint(s))\n\n    def is_math_fma(self):\n        '''Is accurate L{f2product} multiplication based on Python's C{math.fma}?\n\n           @return: C{True} if accurate multiplication uses C{math.fma}, C{False}\n                    an C{fma} implementation as C{math.fma} or C{None}, a previous\n                    C{PyGeodesy} implementation.\n        '''\n        return (_2split3s is _passarg) or (False if _integer_ratio2 is None else None)\n\n    def is_math_fsum(self):\n        '''Are the summation functions L{fsum}, L{fsum_}, L{fsumf_}, L{fsum1},\n           L{fsum1_} and L{fsum1f_} based on Python's C{math.fsum}?\n\n           @return: C{True} if summation functions use C{math.fsum}, C{False}\n                    otherwise.\n        '''\n        return _sum is _fsum  # _fsum.__module__ is fabs.__module__\n\n    def is_scalar(self, **raiser_RESIDUAL):\n        '''Is this instance' running sum C{scalar} with C{0} residual or with\n           a residual I{ratio} not exceeding the RESIDUAL threshold?\n\n           @kwarg raiser_RESIDUAL: Use C{B{raiser}=False} to ignore\n                         L{ResidualError}s (C{bool}) and C{B{RESIDUAL}=scalar}\n                         to override the current L{RESIDUAL<Fsum.RESIDUAL>}.\n\n           @return: C{True} if this instance' residual is C{0} or C{insignificant},\n                    i.e. its residual C{ratio} doesn't exceed the L{RESIDUAL\n                    <Fsum.RESIDUAL>} threshold (C{bool}).\n\n           @raise ResidualError: Non-zero, significant residual or invalid\n                                 B{C{RESIDUAL}}.\n\n           @see: Methods L{Fsum.RESIDUAL} and L{Fsum.is_integer} and property\n                 L{Fsum.as_iscalar}.\n        '''\n        s, r = self._fprs2\n        return False if r and self._raiser(r, s, **raiser_RESIDUAL) else True\n\n    def _mul_Fsum(self, other, op):\n        '''(INTERNAL) Return C{B{self} * B{other}} as L{Fsum} or C{0}.\n        '''\n        # assert _isFsum_2Tuple(other)\n        if self._ps and other._ps:\n            try:\n                f = self._ps_mul(op, *other._ps)  # NO .as_iscalar!\n            except Exception as X:\n                raise self._ErrorX(X, op, other)\n        else:\n            f = _0_0\n        return f\n\n    def _mul_reduce(self, *others):\n        '''(INTERNAL) Like fmath.fprod for I{non-finite} C{other}s.\n        '''\n        r = _1_0\n        for f in others:\n            r *= sum(f._ps) if _isFsum_2Tuple(f) else float(f)\n        return r\n\n    def _mul_scalar(self, factor, op):\n        '''(INTERNAL) Return C{B{self} * scalar B{factor}} as L{Fsum}, C{0.0} or C{self}.\n        '''\n        # assert isscalar(factor)\n        if self._ps and self._finite(factor, op=op):\n            f =  self      if factor == _1_0   else (\n                 self._neg if factor == _N_1_0 else\n                 self._ps_mul(op, factor).as_iscalar)\n        else:\n            f = _0_0\n        return f\n\n#   @property_RO\n#   def _n_d(self):\n#       n, d = self.as_integer_ratio()\n#       return n / d\n\n    @property_RO\n    def _neg(self):\n        '''(INTERNAL) Return C{Fsum(-self)} or scalar C{NEG0}.\n        '''\n        return _Psum(self._ps_neg) if self._ps else NEG0\n\n    @property_RO\n    def _nfprs2(self):\n        '''(INTERNAL) Handle I{non-finite} C{_fprs2}.\n        '''\n        try:  # to handle nonfiniterrors, etc.\n            t = self._fprs2\n        except (OverflowError, ValueError):\n            t = Fsum2Tuple(sum(self._ps), _NONFINITEr)\n        return t\n\n    def nonfinites(self, *OK):\n        '''Handle I{non-finite} C{float}s as C{inf}, C{INF}, C{NINF}, C{nan}\n           and C{NAN} for this L{Fsum} or throw C{OverflowError} respectively\n           C{ValueError} exceptions, overriding the L{nonfiniterrors} default.\n\n           @arg OK: If omitted, leave the override unchanged, if C{True},\n                    I{non-finites} are C{OK}, if C{False} throw exceptions\n                    or if C{None} remove the override (C{bool} or C{None}).\n\n           @return: The previous setting (C{bool} or C{None} if not set).\n\n           @see: Function L{nonfiniterrors<fsums.nonfiniterrors>}.\n\n           @note: Use property L{nonfinitesOK<Fsum.nonfinitesOK>} to determine\n                  whether I{non-finites} are C{OK} for this L{Fsum} or by the\n                  L{nonfiniterrors} default.\n        '''\n        if OK:  # delattrof(self, _isfine=None)\n            k = _xkwds_pop(self.__dict__, _isfine=None)\n            self._optionals(nonfinites=OK[0])\n            self._update()\n        else:  # getattrof(self, _isfine=None)\n            k = _xkwds_get(self.__dict__, _isfine=None)\n        _ks = _nonfinites_isfine_kwds\n        # dict(map(reversed, _ks.items())).get(k, None)\n        # raises a TypeError: unhashable type: 'dict'\n        return True  if k is _ks[True]  else (\n               False if k is _ks[False] else None)\n\n    @property_RO\n    def nonfinitesOK(self):\n        '''Are I{non-finites} C{OK} for this L{Fsum} or by default? (C{bool}).\n        '''\n#       nf = self.nonfinites()\n#       if nf is None:\n#           nf = not nonfiniterrors()\n        return _isOK_or_finite(INF, **self._isfine)\n\n    def _nonfiniteX(self, X, op, f, nonfinites=None, raiser=None):\n        '''(INTERNAL) Handle a I{non-finite} exception.\n        '''\n        if nonfinites is None:\n            nonfinites = _isOK_or_finite(f, **self._isfine) if raiser is None else (not raiser)\n        if not nonfinites:\n            raise self._ErrorX(X, op, f)\n        return f\n\n    def _optionals(self, f2product=None, nonfinites=None, **name_RESIDUAL):\n        '''(INTERNAL) Re/set options from keyword arguments.\n        '''\n        if f2product is not None:\n            self._f2product = bool(f2product)\n        if nonfinites is not None:\n            self._isfine = _nonfinites_isfine_kwds[bool(nonfinites)]\n        if name_RESIDUAL:  # MUST be last\n            n, kwds = _name2__(**name_RESIDUAL)\n            if kwds:\n                R =  Fsum._RESIDUAL\n                t = _threshold(R, **kwds)\n                if t != R:\n                    self._RESIDUAL = t\n            if n:\n                self.name = n  # self.rename(n)\n\n    def _1_Over(self, x, op, **raiser_RESIDUAL):  # vs _1_over\n        '''(INTERNAL) Return C{Fsum(1) / B{x}}.\n        '''\n        return self._Fsum_as(_1_0)._ftruediv(x, op, **raiser_RESIDUAL)\n\n    @property_RO\n    def partials(self):\n        '''Get this instance' current, partial sums (C{tuple} of C{float}s).\n        '''\n        return tuple(self._ps)\n\n    def pow(self, x, *mod, **raiser_RESIDUAL):\n        '''Return C{B{self}**B{x}} as L{Fsum}.\n\n           @arg x: The exponent (C{scalar}, an L{Fsum} or L{Fsum2Tuple}).\n           @arg mod: Optional modulus (C{int} or C{None}) for the 3-argument\n                     C{pow(B{self}, B{other}, B{mod})} version.\n           @kwarg raiser_RESIDUAL: Use C{B{raiser}=False} to ignore\n                         L{ResidualError}s (C{bool}) and C{B{RESIDUAL}=scalar}\n                         to override the current L{RESIDUAL<Fsum.RESIDUAL>}.\n\n           @return: The C{pow(self, B{x})} or C{pow(self, B{x}, *B{mod})}\n                    result (L{Fsum}).\n\n           @raise ResidualError: Non-zero, significant residual or invalid\n                                 B{C{RESIDUAL}}.\n\n           @note: If B{C{mod}} is given and C{None}, the result will be an\n                  C{integer} L{Fsum} provided this instance C{is_integer}\n                  or set to C{integer} by an L{Fsum.fint} call.\n\n           @see: Methods L{Fsum.__ipow__}, L{Fsum.fint}, L{Fsum.is_integer}\n                 and L{Fsum.root}.\n        '''\n        f = self._copyd(self.pow)\n        return f._fpow(x, _pow_op_, *mod, **raiser_RESIDUAL)  # f = pow(f, x, *mod)\n\n    def _pow(self, other, unused, op, **raiser_RESIDUAL):\n        '''Return C{B{self} ** B{other}}.\n        '''\n        if _isFsum_2Tuple(other):\n            f = self._pow_Fsum(other, op, **raiser_RESIDUAL)\n        elif self._scalar(other, op):\n            x = self._finite(other, op=op)\n            f = self._pow_scalar(x, other, op, **raiser_RESIDUAL)\n        else:\n            f = self._pow_0_1(0, other)\n        return f\n\n    def _pow_0_1(self, x, other):\n        '''(INTERNAL) Return B{C{self}**1} or C{B{self}**0 == 1.0}.\n        '''\n        return self if x else (1 if isint(other) and self.is_integer() else _1_0)\n\n    def _pow_2_3(self, b, x, other, op, *mod, **raiser_RESIDUAL):\n        '''(INTERNAL) 2-arg C{pow(B{b}, scalar B{x})} and 3-arg C{pow(B{b},\n           B{x}, int B{mod} or C{None})}, embellishing errors.\n        '''\n\n        if mod:  # b, x, mod all C{int}, unless C{mod} is C{None}\n            m = mod[0]\n            # assert _isFsum_2Tuple(b)\n\n            def _s(s, r):\n                R = self._raiser(r, s, **raiser_RESIDUAL)\n                if R:\n                    raise self._ResidualError(op, other, r, mod=m, **R)\n                return s\n\n            b = _s(*(b._fprs2 if m is None else b._fint2))\n            x = _s(*_2tuple2(x))\n\n        try:\n            # 0**INF == 0.0, 1**INF == 1.0, -1**2.3 == -(1**2.3)\n            s = pow(b, x, *mod)\n            if iscomplex(s):\n                # neg**frac == complex in Python 3+, but ValueError in 2-\n                raise ValueError(_strcomplex(s, b, x, *mod))\n            _ = _2finite(s, **self._isfine)  # ignore float\n            return s\n        except Exception as X:\n            raise self._ErrorX(X, op, other, *mod)\n\n    def _pow_Fsum(self, other, op, **raiser_RESIDUAL):\n        '''(INTERNAL) Return C{B{self} **= B{other}} for C{_isFsum_2Tuple(other)}.\n        '''\n        # assert _isFsum_2Tuple(other)\n        x, r = other._fprs2\n        f = self._pow_scalar(x, other, op, **raiser_RESIDUAL)\n        if f and r:\n            f *= self._pow_scalar(r, other, op, **raiser_RESIDUAL)\n        return f\n\n    def _pow_int(self, x, other, op, **raiser_RESIDUAL):\n        '''(INTERNAL) Return C{B{self} **= B{x}} for C{int B{x} >= 0}.\n        '''\n        # assert isint(x) and x >= 0\n        ps = self._ps\n        if len(ps) > 1:\n            _mul_Fsum = Fsum._mul_Fsum\n            if x > 4:\n                p = self\n                f = self if (x & 1) else self._Fsum_as(_1_0)\n                m = x >> 1  # // 2\n                while m:\n                    p = _mul_Fsum(p, p, op)  # p **= 2\n                    if (m & 1):\n                        f = _mul_Fsum(f, p, op)  # f *= p\n                    m >>= 1  # //= 2\n            elif x > 1:  # self**2, 3, or 4\n                f = _mul_Fsum(self, self, op)\n                if x > 2:  # self**3 or 4\n                    p =  self if x < 4 else f\n                    f = _mul_Fsum(f, p, op)\n            else:  # self**1 or self**0 == 1 or _1_0\n                f = self._pow_0_1(x, other)\n        elif ps:  # self._ps[0]**x\n            f = self._pow_2_3(ps[0], x, other, op, **raiser_RESIDUAL)\n        else:  # PYCHOK no cover\n            # 0**pos_int == 0, but 0**0 == 1\n            f = 0 if x else 1\n        return f\n\n    def _pow_scalar(self, x, other, op, **raiser_RESIDUAL):\n        '''(INTERNAL) Return C{self**B{x}} for C{scalar B{x}}.\n        '''\n        s, r = self._fprs2\n        if r:\n            # assert s != 0\n            if isint(x, both=True):  # self**int\n                x = int(x)\n                y = abs(x)\n                if y > 1:\n                    f = self._pow_int(y, other, op, **raiser_RESIDUAL)\n                    if x > 0:  # i.e. > 1\n                        return f  # Fsum or scalar\n                    # assert x < 0  # i.e. < -1\n                    if _isFsum(f):\n                        s, r = f._fprs2\n                        if r:\n                            return self._1_Over(f, op, **raiser_RESIDUAL)\n                    else:  # scalar\n                        s = f\n                    # use s**(-1) to get the CPython\n                    # float_pow error iff s is zero\n                    x = -1\n                elif x < 0:  # self**(-1)\n                    return self._1_Over(self, op, **raiser_RESIDUAL)  # 1 / self\n                else:  # self**1 or self**0\n                    return self._pow_0_1(x, other)  # self, 1 or 1.0\n            else:  # self**fractional\n                R = self._raiser(r, s, **raiser_RESIDUAL)\n                if R:\n                    raise self._ResidualError(op, other, r, **R)\n                n, d = self.as_integer_ratio()\n                if abs(n) > abs(d):\n                    n, d, x = d, n, (-x)\n                s = n / d\n        # assert isscalar(s) and isscalar(x)\n        return self._pow_2_3(s, x, other, op, **raiser_RESIDUAL)\n\n    def _ps_acc(self, ps, xs, up=True, **unused):  # in .geoids._Dotf and ._Hornerf\n        '''(INTERNAL) Accumulate C{xs} known scalars into list C{ps}.\n        '''\n        n   =  0\n        _2s = _2sum\n        _fi =  self._isfine\n        for x in (tuple(xs) if xs is ps else xs):\n            # assert isscalar(x) and _isOK_or_finite(x, **self._isfine)\n            if x:\n                i = 0\n                for p in ps:\n                    x, p = _2s(x, p, **_fi)\n                    if p:\n                        ps[i] = p\n                        i += 1\n                ps[i:] = (x,) if x else ()\n                n += 1\n        if n:\n            self._n += n\n            # Fsum._ps_max = max(Fsum._ps_max, len(ps))\n            if up:\n                self._update()\n#               x = sum(ps)\n#               if not _isOK_or_finite(x, **fi):\n#                   ps[:] = x,  # collapse ps\n        return ps\n\n    def _ps_mul(self, op, *factors):\n        '''(INTERNAL) Multiply this instance' C{partials} with\n           each scalar C{factor} and accumulate into an C{Fsum}.\n        '''\n        def _psfs(ps, fs, _isfine=_isfinite):\n            if len(ps) < len(fs):\n                ps, fs = fs, ps\n            if self._f2product:\n                fs, p = _2split3s(fs), fs\n                if len(ps) > 1 and fs is not p:\n                    fs = tuple(fs)  # several ps\n                _pfs = _2products\n            else:\n                def _pfs(p, fs):\n                    return (p * f for f in fs)\n\n            for p in ps:\n                for x in _pfs(p, fs):\n                    yield x if _isfine(x) else _nfError(x)\n\n        xs = _psfs(self._ps, factors, **self._isfine)\n        f  = _Psum(self._ps_acc([], xs, up=False), name=op)\n        return f\n\n    @property_RO\n    def _ps_neg(self):\n        '''(INTERNAL) Yield the partials, I{negated}.\n        '''\n        for p in self._ps:\n            yield -p\n\n    def _ps_other(self, op, other):\n        '''(INTERNAL) Yield C{other} as C{scalar}s.\n        '''\n        if _isFsum_2Tuple(other):\n            for p in other._ps:\n                yield p\n        else:\n            yield self._scalar(other, op)\n\n    def _ps_1sum(self, *less):\n        '''(INTERNAL) Return the partials sum, 1-primed C{less} some scalars.\n        '''\n        return _fsum(_1primed(self._ps, *less))\n\n    def _raiser(self, r, s, raiser=True, **RESIDUAL):\n        '''(INTERNAL) Does ratio C{r / s} exceed the RESIDUAL threshold\n           I{and} is residual C{r} I{non-zero} or I{significant} (for a\n           negative respectively positive C{RESIDUAL} threshold)?\n        '''\n        if r and raiser:\n            t = self._RESIDUAL\n            if RESIDUAL:\n                t = _threshold(t, **RESIDUAL)\n            if t < 0 or (s + r) != s:\n                q = (r / s) if s else s  # == 0.\n                if fabs(q) > fabs(t):\n                    return dict(ratio=q, R=t)\n        return {}\n\n    def _rcopyd(self, other, which):\n        '''(INTERNAL) Copy for I{reverse-dyadic} operators.\n        '''\n        return other._copyd(which) if _isFsum(other) else \\\n                self._copyd(which)._fset(other)\n\n    rdiv = __rtruediv__\n\n    @property_RO\n    def real(self):\n        '''Get the C{real} part of this instance (C{float}).\n\n           @see: Methods L{Fsum.__float__} and L{Fsum.fsum}\n                 and properties L{Fsum.ceil}, L{Fsum.floor},\n                 L{Fsum.imag} and L{Fsum.residual}.\n        '''\n        return float(self)\n\n    @property_RO\n    def residual(self):\n        '''Get this instance' residual or residue (C{float} or C{int}):\n           the C{sum(partials)} less the precision running sum C{fsum}.\n\n           @note: The C{residual is INT0} iff the precision running\n                  C{fsum} is considered to be I{exact}.\n\n           @see: Methods L{Fsum.fsum}, L{Fsum.fsum2} and L{Fsum.is_exact}.\n        '''\n        return self._fprs2.residual\n\n    def RESIDUAL(self, *threshold):\n        '''Get and set this instance' I{ratio} for raising L{ResidualError}s,\n           overriding the default from env variable C{PYGEODESY_FSUM_RESIDUAL}.\n\n           @arg threshold: If C{scalar}, the I{ratio} to exceed for raising\n                           L{ResidualError}s in division and exponention, if\n                           C{None}, restore the default set with env variable\n                           C{PYGEODESY_FSUM_RESIDUAL} or if omitted, keep the\n                           current setting.\n\n           @return: The previous C{RESIDUAL} setting (C{float}), default C{0.0}.\n\n           @raise ResidualError: Invalid B{C{threshold}}.\n\n           @note: L{ResidualError}s may be thrown if (1) the non-zero I{ratio}\n                  C{residual / fsum} exceeds the given B{C{threshold}} and (2)\n                  the C{residual} is non-zero and (3) is I{significant} vs the\n                  C{fsum}, i.e. C{(fsum + residual) != fsum} and (4) optional\n                  keyword argument C{raiser=False} is missing.  Specify a\n                  negative B{C{threshold}} for only non-zero C{residual}\n                  testing without the I{significant} case.\n        '''\n        r = self._RESIDUAL\n        if threshold:\n            t = threshold[0]\n            self._RESIDUAL = Fsum._RESIDUAL if t is None else (  # for ...\n                           (_0_0 if t else _1_0) if isbool(t) else\n                           _threshold(t))  # ... backward compatibility\n        return r\n\n    def _ResidualError(self, op, other, residual, **mod_R):\n        '''(INTERNAL) Non-zero B{C{residual}} etc.\n        '''\n        def _p(mod=None, R=0, **unused):  # ratio=0\n            return (_non_zero_ if R < 0 else _significant_) \\\n                               if mod is None else _integer_\n\n        t = _stresidual(_p(**mod_R), residual, **mod_R)\n        return self._Error(op, other, ResidualError, txt=t)\n\n    def root(self, root, **raiser_RESIDUAL):\n        '''Return C{B{self}**(1 / B{root})} as L{Fsum}.\n\n           @arg root: Non-zero order (C{scalar}, an L{Fsum} or L{Fsum2Tuple}).\n           @kwarg raiser_RESIDUAL: Use C{B{raiser}=False} to ignore any\n                         L{ResidualError}s (C{bool}) or C{B{RESIDUAL}=scalar}\n                         to override the current L{RESIDUAL<Fsum.RESIDUAL>}.\n\n           @return: The C{self ** (1 / B{root})} result (L{Fsum}).\n\n           @raise ResidualError: Non-zero, significant residual or invalid\n                                 B{C{RESIDUAL}}.\n\n           @see: Method L{Fsum.pow}.\n        '''\n        x = self._1_Over(root, _truediv_op_, **raiser_RESIDUAL)\n        f = self._copyd(self.root)\n        return f._fpow(x, f.name, **raiser_RESIDUAL)  # == pow(f, x)\n\n    def _scalar(self, other, op, **txt):\n        '''(INTERNAL) Return scalar C{other} or throw a C{TypeError}.\n        '''\n        if isscalar(other):\n            return other\n        raise self._Error(op, other, _TypeError, **txt)  # _invalid_\n\n    def signOf(self, res=True):\n        '''Determine the sign of this instance.\n\n           @kwarg res: If C{True}, consider the residual,\n                       otherwise ignore the latter (C{bool}).\n\n           @return: The sign (C{int}, -1, 0 or +1).\n        '''\n        s, r = self._nfprs2\n        r = (-r) if res else 0\n        return _signOf(s, r)\n\n    def toRepr(self, **lenc_prec_sep_fmt):  # PYCHOK signature\n        '''Return this C{Fsum} instance as representation.\n\n           @kwarg lenc_prec_sep_fmt: Optional keyword arguments\n                       for method L{Fsum.toStr}.\n\n           @return: This instance (C{repr}).\n        '''\n        return Fmt.repr_at(self, self.toStr(**lenc_prec_sep_fmt))\n\n    def toStr(self, lenc=True, **prec_sep_fmt):  # PYCHOK signature\n        '''Return this C{Fsum} instance as string.\n\n           @kwarg lenc: If C{True}, include the current C{[len]} of this\n                        L{Fsum} enclosed in I{[brackets]} (C{bool}).\n           @kwarg prec_sep_fmt: Optional keyword arguments for method\n                       L{Fsum2Tuple.toStr}.\n\n           @return: This instance (C{str}).\n        '''\n        p = self.classname\n        if lenc:\n            p = Fmt.SQUARE(p, len(self))\n        n = _enquote(self.name, white=_UNDER_)\n        t =  self._nfprs2.toStr(**prec_sep_fmt)\n        return NN(p, _SPACE_, n, t)\n\n    def _truediv(self, other, op, **raiser_RESIDUAL):\n        '''(INTERNAL) Return C{B{self} / B{other}} as an L{Fsum}.\n        '''\n        f = self._copyd(self.__truediv__)\n        return f._ftruediv(other, op, **raiser_RESIDUAL)\n\n    def _update(self, updated=True):  # see ._fset\n        '''(INTERNAL) Zap all cached C{Property_RO} values.\n        '''\n        if updated:\n            _pop = self.__dict__.pop\n            for p in _ROs:\n                _ = _pop(p, None)\n#           Fsum._fint2._update(self)\n#           Fsum._fprs ._update(self)\n#           Fsum._fprs2._update(self)\n        return self  # for .fset_\n\n_ROs = _allPropertiesOf_n(3, Fsum, Property_RO)  # PYCHOK see Fsum._update\n\n_nonfinites_isfine_kwds = {True:  dict(_isfine=_isOK),\n                           False: dict(_isfine=_isfinite)}\nif _NONFINITES == _std_:  # PYCHOK no cover\n    _ = nonfiniterrors(False)\n\n\ndef _Float_Int(arg, **name_Error):\n    '''(INTERNAL) L{DivMod2Tuple}, L{Fsum2Tuple} Unit.\n    '''\n    U = Int if isint(arg) else Float\n    return U(arg, **name_Error)\n\n\nclass DivMod2Tuple(_NamedTuple):\n    '''2-Tuple C{(div, mod)} with the quotient C{div} and remainder\n       C{mod} results of a C{divmod} operation.\n\n       @note: Quotient C{div} an C{int} in Python 3+ but a C{float}\n              in Python 2-.  Remainder C{mod} an L{Fsum} instance.\n    '''\n    _Names_ = ('div',     'mod')\n    _Units_ = (_Float_Int, Fsum)\n\n\nclass Fsum2Tuple(_NamedTuple):  # in .fstats\n    '''2-Tuple C{(fsum, residual)} with the precision running C{fsum}\n       and the C{residual}, the sum of the remaining partials.  Each\n       item is C{float} or C{int}.\n\n       @note: If the C{residual is INT0}, the C{fsum} is considered\n              to be I{exact}, see method L{Fsum2Tuple.is_exact}.\n    '''\n    _Names_ = ( typename(Fsum.fsum), Fsum.residual.name)\n    _Units_ = (_Float_Int,          _Float_Int)\n\n    def __abs__(self):  # in .fmath\n        return self._Fsum.__abs__()\n\n    def __bool__(self):  # PYCHOK Python 3+\n        return bool(self._Fsum)\n\n    def __eq__(self, other):\n        return self._other_op(other, self.__eq__)\n\n    def __float__(self):\n        return self._Fsum.__float__()\n\n    def __ge__(self, other):\n        return self._other_op(other, self.__ge__)\n\n    def __gt__(self, other):\n        return self._other_op(other, self.__gt__)\n\n    def __le__(self, other):\n        return self._other_op(other, self.__le__)\n\n    def __lt__(self, other):\n        return self._other_op(other, self.__lt__)\n\n    def __int__(self):\n        return self._Fsum.__int__()\n\n    def __ne__(self, other):\n        return self._other_op(other, self.__ne__)\n\n    def __neg__(self):\n        return self._Fsum.__neg__()\n\n    __nonzero__ = __bool__  # Python 2-\n\n    def __pos__(self):\n        return self._Fsum.__pos__()\n\n    def as_integer_ratio(self):\n        '''Return this instance as the ratio of 2 integers.\n\n           @see: Method L{Fsum.as_integer_ratio} for further details.\n        '''\n        return self._Fsum.as_integer_ratio()\n\n    @property_RO\n    def _fint2(self):\n        return self._Fsum._fint2\n\n    @property_RO\n    def _fprs2(self):\n        return self._Fsum._fprs2\n\n    @Property_RO\n    def _Fsum(self):  # this C{Fsum2Tuple} as L{Fsum}, in .fstats\n        s, r = _s_r2(*self)\n        ps = (r, s) if r else (s,)\n        return _Psum(ps, name=self.name)\n\n    def Fsum_(self, *xs, **name_f2product_nonfinites_RESIDUAL):\n        '''Return this C{Fsum2Tuple} as an L{Fsum} plus some C{xs}.\n        '''\n        return Fsum(self, *xs, **name_f2product_nonfinites_RESIDUAL)\n\n    def is_exact(self):\n        '''Is this L{Fsum2Tuple} considered to be exact? (C{bool}).\n        '''\n        return self._Fsum.is_exact()\n\n    def is_finite(self):  # in .constants\n        '''Is this L{Fsum2Tuple} C{finite}? (C{bool}).\n\n           @see: Function L{isfinite<pygeodesy.isfinite>}.\n        '''\n        return self._Fsum.is_finite()\n\n    def is_integer(self):\n        '''Is this L{Fsum2Tuple} C{integer}? (C{bool}).\n        '''\n        return self._Fsum.is_integer()\n\n    def _mul_scalar(self, other, op):  # for Fsum._fmul\n        return self._Fsum._mul_scalar(other, op)\n\n    @property_RO\n    def _n(self):\n        return self._Fsum._n\n\n    def _other_op(self, other, which):\n        C, s = (tuple, self) if isinstance(other, tuple) else (Fsum, self._Fsum)\n        return getattr(C, typename(which))(s, other)\n\n    @property_RO\n    def _ps(self):\n        return self._Fsum._ps\n\n    @property_RO\n    def _ps_neg(self):\n        return self._Fsum._ps_neg\n\n    def signOf(self, **res):\n        '''Like method L{Fsum.signOf}.\n        '''\n        return self._Fsum.signOf(**res)\n\n    def toStr(self, fmt=Fmt.g, **prec_sep):  # PYCHOK signature\n        '''Return this L{Fsum2Tuple} as string (C{str}).\n\n           @kwarg fmt: Optional C{float} format (C{letter}).\n           @kwarg prec_sep: Optional keyword arguments for function\n                       L{fstr<streprs.fstr>}.\n        '''\n        return Fmt.PAREN(fstr(self, fmt=fmt, strepr=str, force=False, **prec_sep))\n\n_Fsum_2Tuple_types = Fsum, Fsum2Tuple  # PYCHOK lines\n\n\nclass _Ksum(Fsum):\n    '''(INTERNAL) For C{.karney._sum3}, specifically and only.\n    '''\n    _isfine = _nonfinites_isfine_kwds[True]\n\n    def __init__(self, s, t, *xs):\n        ps = [t, s] if t else [s]\n        self._ps = self._ps_acc(ps, xs, up=False)\n\n    @property_RO\n    def _s_t_n3(self):\n        s, t = self._fprs2\n        return s, t, self._n\n\n\nclass ResidualError(_ValueError):\n    '''Error raised for a division, power or root operation of\n       an L{Fsum} instance with a C{residual} I{ratio} exceeding\n       the L{RESIDUAL<Fsum.RESIDUAL>} threshold.\n\n       @see: Module L{pygeodesy.fsums} and method L{Fsum.RESIDUAL}.\n    '''\n    pass\n\n\ntry:\n    from math import fsum as _fsum  # precision IEEE-754 sum, Python 2.6+\n\n    # make sure _fsum works as expected (XXX check\n    # float.__getformat__('float')[:4] == 'IEEE'?)\n    if _fsum((1, 1e101, 1, -1e101)) != 2:  # PYCHOK no cover\n        del _fsum  # nope, remove _fsum ...\n        raise ImportError()  # ... use _fsum below\n\n    _sum = _fsum\nexcept ImportError:\n    _sum =  sum\n\n    def _fsum(xs):  # in .elliptic, .geoids\n        '''(INTERNAL) Precision summation, Python 2.5-.\n        '''\n        F = Fsum(name=_fsum.name, f2product=False, nonfinites=True)\n        return float(F._facc(xs, up=False))\n\n\ndef fsum(xs, nonfinites=None, **floats):\n    '''Precision floating point summation from Python's C{math.fsum}.\n\n       @arg xs: Iterable of items to add (each C{scalar}, an L{Fsum} or L{Fsum2Tuple}).\n       @kwarg nonfinites: Use C{B{nonfinites}=True} if I{non-finites} are C{OK}, if\n                          C{False} I{non-finites} raise an Overflow-/ValueError or if\n                          C{None}, L{nonfiniterrors} applies (C{bool} or C{None}).\n       @kwarg floats: DEPRECATED keyword argument C{B{floats}=False} (C{bool}), use\n                      keyword argument C{B{nonfinites}=False} instead.\n\n       @return: Precision C{fsum} (C{float}).\n\n       @raise OverflowError: Infinite B{C{xs}} item or intermediate C{math.fsum} overflow.\n\n       @raise TypeError: Invalid B{C{xs}} item.\n\n       @raise ValueError: Invalid or C{NAN} B{C{xs}} item.\n\n       @see: Function L{nonfiniterrors}, class L{Fsum} and methods L{Fsum.nonfinites},\n             L{Fsum.fsum}, L{Fsum.fadd} and L{Fsum.fadd_}.\n    '''\n    return _xsum(fsum, xs, nonfinites=nonfinites, **floats) if xs else _0_0\n\n\ndef fsum_(*xs, **nonfinites):\n    '''Precision floating point summation of all positional items.\n\n       @arg xs: Items to add (each C{scalar}, an L{Fsum} or L{Fsum2Tuple}), all positional.\n       @kwarg nonfinites: Use C{B{nonfinites}=True} if I{non-finites} are C{OK} (C{bool}).\n\n       @see: Function L{fsum<fsums.fsum>} for further details.\n    '''\n    return _xsum(fsum_, xs, **nonfinites) if xs else _0_0  # origin=1?\n\n\ndef fsumf_(*xs):\n    '''Precision floating point summation of all positional items with I{non-finites} C{OK}.\n\n       @arg xs: Items to add (each C{scalar}, an L{Fsum} or L{Fsum2Tuple}),\n                all positional.\n\n       @see: Function L{fsum_<fsums.fsum_>} for further details.\n    '''\n    return _xsum(fsumf_, xs, nonfinites=True) if xs else _0_0  # origin=1?\n\n\ndef fsum1(xs, **nonfinites):\n    '''Precision floating point summation, 1-primed.\n\n       @arg xs: Iterable of items to add (each C{scalar}, an L{Fsum} or L{Fsum2Tuple}).\n       @kwarg nonfinites: Use C{B{nonfinites}=True} if I{non-finites} are C{OK} (C{bool}).\n\n       @see: Function L{fsum<fsums.fsum>} for further details.\n    '''\n    return _xsum(fsum1, xs, primed=1, **nonfinites) if xs else _0_0\n\n\ndef fsum1_(*xs, **nonfinites):\n    '''Precision floating point summation of all positional items, 1-primed.\n\n       @arg xs: Items to add (each C{scalar}, an L{Fsum} or L{Fsum2Tuple}), all positional.\n       @kwarg nonfinites: Use C{B{nonfinites}=True} if I{non-finites} are C{OK} (C{bool}).\n\n       @see: Function L{fsum_<fsums.fsum_>} for further details.\n    '''\n    return _xsum(fsum1_, xs, primed=1, **nonfinites) if xs else _0_0  # origin=1?\n\n\ndef fsum1f_(*xs):\n    '''Precision floating point summation of all positional items, 1-primed and\n       with I{non-finites} C{OK}.\n\n       @see: Function L{fsum_<fsums.fsum_>} for further details.\n    '''\n    return _xsum(fsum1f_, xs, nonfinites=True, primed=1) if xs else _0_0\n\n\ndef _x_isfine(nfOK, **kwds):  # get the C{_x} and C{_isfine} handlers.\n    _x_kwds = dict(_x=     (_passarg if nfOK else _2finite),\n                   _isfine=(_isOK    if nfOK else _isfinite))  # PYCHOK kwds\n    _x_kwds.update(kwds)\n    return _x_kwds\n\n\ndef _X_ps(X):  # default C{_X} handler\n    return X._ps  # lambda X: X._ps\n\n\ndef _xs(xs, _X=_X_ps, _x=float, _isfine=_isfinite,  # defaults for Fsum._facc\n                        origin=0, which=None, **_Cdot):\n    '''(INTERNAL) Yield each C{xs} item as 1 or more C{float}s.\n    '''\n    i, x = 0, xs\n    try:\n        for i, x in enumerate(_xiterable(xs)):\n            if _isFsum_2Tuple(x):\n                for p in _X(x):\n                    yield p if _isfine(p) else _nfError(p)\n            else:\n                f = _x(x)\n                yield f if _isfine(f) else _nfError(f)\n\n    except (OverflowError, TypeError, ValueError) as X:\n        t = _xsError(X, xs, i + origin, x)\n        if which:  # prefix invokation\n            w =  unstr(which, *xs, _ELLIPSIS=4, **_Cdot)\n            t = _COMMASPACE_(w, t)\n        raise _xError(X, t, txt=None)\n\n\ndef _xsum(which, xs, nonfinites=None, primed=0, **floats):  # origin=0\n    '''(INTERNAL) Precision summation of C{xs} with conditions.\n    '''\n    if floats:  # for backward compatibility\n        nonfinites = _xkwds_get1(floats, floats=nonfinites)\n    elif nonfinites is None:\n        nonfinites =  not nonfiniterrors()\n    fs = _xs(xs, **_x_isfine(nonfinites, which=which))  # PYCHOK yield\n    return _fsum(_1primed(fs) if primed else fs)\n\n\n# delete all decorators, etc.\ndel _allPropertiesOf_n, deprecated_method, deprecated_property_RO, \\\n     Property, Property_RO, property_RO, _ALL_LAZY, _F2PRODUCT, \\\n     MANT_DIG, _NONFINITES, _RESIDUAL_0_0, _envPYGEODESY, _std_\n\nif __name__ == _DMAIN_:\n\n    # usage: python3 -m pygeodesy.fsums\n\n    def _test(n):\n        # copied from Hettinger, see L{Fsum} reference\n        from pygeodesy import frandoms, printf\n\n#       printf(typename(_sum),  end=_COMMASPACE_)\n        printf(typename(_fsum), end=_COMMASPACE_)\n        printf(typename(_psum), end=_COMMASPACE_)\n        printf(len(Fsum.__dict__), end=_COMMASPACE_)\n#       printf(len(globals()), end=_COMMASPACE_)\n\n        F = Fsum()\n        if F.is_math_fsum():\n            for t in frandoms(n, seeded=True):\n                assert float(F.fset_(*t)) == _fsum(t)\n                printf(_DOT_, end=NN)\n        printf(NN)\n\n    _test(128)\n\n# **) MIT License\n#\n# Copyright (C) 2016-2026 -- mrJean1 at Gmail -- All Rights Reserved.\n#\n# Permission is hereby granted, free of charge, to any person obtaining a\n# copy of this software and associated documentation files (the \"Software\"),\n# to deal in the Software without restriction, including without limitation\n# the rights to use, copy, modify, merge, publish, distribute, sublicense,\n# and/or sell copies of the Software, and to permit persons to whom the\n# Software is furnished to do so, subject to the following conditions:\n#\n# The above copyright notice and this permission notice shall be included\n# in all copies or substantial portions of the Software.\n#\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL\n# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR\n# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\n# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n# OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "pygeodesy/gars.py",
    "content": "\n# -*- coding: utf-8 -*-\n\nu'''I{Global Area Reference System} (GARS) en-/decoding.\n\nClass L{Garef} and several functions to encode, decode and inspect\nGARS references.\n\nTranscoded from I{Charles Karney}'s C++ class U{GARS\n<https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1GARS.html>}.\n\n@see: U{Global Area Reference System\n      <https://WikiPedia.org/wiki/Global_Area_Reference_System>} and U{NGA\n      (GARS)<https://Earth-Info.NGA.mil/GandG/coordsys/grids/gars.html>}.\n'''\n\nfrom pygeodesy.basics import isstr, _splituple,  typename\nfrom pygeodesy.constants import _off90, _1_over, _0_5\nfrom pygeodesy.errors import _ValueError, _xkwds, _xStrError\n# from pygeodesy.internals import typename  # from .basics\nfrom pygeodesy.interns import NN, _0to9_, _AtoZnoIO_, _INV_\nfrom pygeodesy.lazily import _ALL_DOCS, _ALL_LAZY\nfrom pygeodesy.named import _name__,  Fmt, Property_RO\nfrom pygeodesy.namedTuples import LatLon2Tuple, LatLonPrec3Tuple\n# from pygeodesy.props import Property_RO  # from .named\n# from pygeodesy.streprs import Fmt  # from .named\nfrom pygeodesy.units import Int_, Lat, Lon, Precision_, Scalar_, Str\n\nfrom math import floor\n\n__all__ = _ALL_LAZY.gars\n__version__ = '25.05.07'\n\n_Digits  = _0to9_\n_LatLen  =    2\n_LatOrig =  -90\n_Letters = _AtoZnoIO_\n_LonLen  =    3\n_LonOrig = -180\n_MaxPrec =    2\n\n_MinLen = _LonLen + _LatLen\n_MaxLen = _MinLen + _MaxPrec\n\n_M1 = _M2 = 2\n_M3 =  3\n_M4 = _M1 * _M2 * _M3\n\n_LatOrig_M4   = _LatOrig * _M4\n_LatOrig_M1   = _LatOrig * _M1\n_LonOrig_M4   = _LonOrig * _M4\n_LonOrig_M1_1 = _LonOrig * _M1 - 1\n\n_Resolutions  = _1_over(_M1), _1_over(_M1 * _M2), _1_over(_M4)\n\n\ndef _2divmod2(ll, _Orig_M4):\n    x = int(floor(ll * _M4)) - _Orig_M4\n    i = (x * _M1) // _M4\n    x -= i * _M4 // _M1\n    return i, x\n\n\ndef _2fll(lat, lon, *unused):\n    '''(INTERNAL) Convert lat, lon.\n    '''\n    # lat, lon = parseDMS2(lat, lon)\n    return (Lat(lat, Error=GARSError),\n            Lon(lon, Error=GARSError))\n\n\n# def _2Garef(garef):\n#     '''(INTERNAL) Check or create a L{Garef} instance.\n#     '''\n#     if not isinstance(garef, Garef):\n#         try:\n#             garef = Garef(garef)\n#         except (TypeError, ValueError):\n#             raise _xStrError(Garef, Str, garef=garef)\n#     return garef\n\n\ndef _2garstr2(garef):\n    '''(INTERNAL) Check a garef string.\n    '''\n    try:\n        n, garstr = len(garef), garef.upper()\n        if n < _MinLen or n > _MaxLen \\\n                       or garstr.startswith(_INV_) \\\n                       or not garstr.isalnum():\n            raise ValueError()\n        return garstr, _2Precision(n - _MinLen)\n\n    except (AttributeError, TypeError, ValueError) as x:\n        raise GARSError(typename(Garef), garef, cause=x)\n\n\ndef _2Precision(precision):\n    '''(INTERNAL) Return a L{Precision_} instance.\n    '''\n    return Precision_(precision, Error=GARSError, low=0, high=_MaxPrec)\n\n\nclass GARSError(_ValueError):\n    '''Global Area Reference System (GARS) encode, decode or other L{Garef} issue.\n    '''\n    pass\n\n\nclass Garef(Str):\n    '''Garef class, a named C{str}.\n    '''\n    # no str.__init__ in Python 3\n    def __new__(cls, lat_gll, lon=None, precision=1, **name):\n        '''New L{Garef} from an other L{Garef} instance or garef C{str}\n           or from a lat- and longitude.\n\n           @arg lat_gll: Latitude (C{degrees90}), a garef (L{Garef},\n                         C{str}) or a location (C{LatLon}, C{LatLon*Tuple}).\n           @kwarg lon: Logitude (C{degrees180)}, required if B{C{lat_gll}}\n                       is C{degrees90}, ignored otherwise.\n           @kwarg precision: The desired garef resolution and length (C{int}\n                             0..2), see L{encode<pygeodesy.gars.encode>}.\n           @kwarg name: Optional C{B{name}=NN} (C{str}).\n\n           @return: New L{Garef}.\n\n           @raise GARSError: INValid B{C{lat_gll}}.\n\n           @raise RangeError: Invalid B{C{lat_gll}} or B{C{lon}}.\n\n           @raise TypeError: Invalid B{C{lat_gll}} or B{C{lon}}.\n        '''\n        if lon is None:\n            if isinstance(lat_gll, Garef):\n                g, ll, p = str(lat_gll), lat_gll.latlon, lat_gll.precision\n            elif isstr(lat_gll):\n                ll = _splituple(lat_gll)\n                if len(ll) > 1:\n                    g, ll, p = _encode3(ll[0], ll[1], precision)\n                else:\n                    g, ll =  lat_gll.upper(), None\n                    _, p  = _2garstr2(g)  # validate\n            else:  # assume LatLon\n                try:\n                    g, ll, p = _encode3(lat_gll.lat, lat_gll.lon, precision)\n                except AttributeError:\n                    raise _xStrError(Garef, gll=lat_gll, Error=GARSError)\n        else:\n            g, ll, p = _encode3(lat_gll, lon, precision)\n\n        self = Str.__new__(cls, g, name=_name__(name, _or_nameof=lat_gll))\n        self._latlon    = ll\n        self._precision = p\n        return self\n\n    @Property_RO\n    def decoded3(self):\n        '''Get this garef's attributes (L{LatLonPrec3Tuple}).\n        '''\n        lat, lon = self.latlon\n        return LatLonPrec3Tuple(lat, lon, self.precision, name=self.name)\n\n    @Property_RO\n    def _decoded3(self):\n        '''(INTERNAL) Initial L{LatLonPrec3Tuple}.\n        '''\n        return decode3(self)\n\n    @Property_RO\n    def latlon(self):\n        '''Get this garef's (center) lat- and longitude (L{LatLon2Tuple}).\n        '''\n        lat, lon = self._latlon or self._decoded3[:2]\n        return LatLon2Tuple(lat, lon, name=self.name)\n\n    @Property_RO\n    def precision(self):\n        '''Get this garef's precision (C{int}).\n        '''\n        p = self._precision\n        return self._decoded3.precision if p is None else p\n\n    def toLatLon(self, LatLon=None, **LatLon_kwds):\n        '''Return (the center of) this garef cell as an instance\n           of the supplied C{LatLon} class.\n\n           @kwarg LatLon: Class to use (C{LatLon} or C{None}).\n           @kwarg LatLon_kwds: Optional, additional B{C{LatLon}}\n                               keyword arguments.\n\n           @return: This garef location as B{C{LatLon}} or if\n                    C{B{LatLon} is None} as L{LatLonPrec3Tuple}.\n        '''\n        return self.decoded3 if LatLon is None else LatLon(\n              *self.latlon, **_xkwds(LatLon_kwds, name=self.name))\n\n\ndef decode3(garef, center=True, **name):\n    '''Decode a C{garef} to lat-, longitude and precision.\n\n       @arg garef: To be decoded (L{Garef} or C{str}).\n       @kwarg center: If C{True}, use the garef's center, otherwise\n                      the south-west, lower-left corner (C{bool}).\n\n       @return: A L{LatLonPrec3Tuple}C{(lat, lon, precision)}.\n\n       @raise GARSError: Invalid B{C{garef}}, INValid, non-alphanumeric\n                         or bad length B{C{garef}}.\n    '''\n    def _Error(i):\n        return GARSError(garef=Fmt.SQUARE(repr(garef), i))\n\n    def _ll(chars, g, i, j, lo, hi):\n        ll, b = 0, len(chars)\n        for i in range(i, j):\n            d = chars.find(g[i])\n            if d < 0:\n                raise _Error(i)\n            ll = ll * b + d\n        if ll < lo or ll > hi:\n            raise _Error(j)\n        return ll\n\n    def _ll2(lon, lat, g, i, m):\n        d = _Digits.find(g[i])\n        if d < 1 or d > m * m:\n            raise _Error(i)\n        d, r = divmod(d - 1, m)\n        lon = lon * m + r\n        lat = lat * m + (m - 1 - d)\n        return lon, lat\n\n    g, precision = _2garstr2(garef)\n\n    lon = _ll(_Digits,  g,       0, _LonLen, 1, 720) + _LonOrig_M1_1\n    lat = _ll(_Letters, g, _LonLen, _MinLen, 0, 359) + _LatOrig_M1\n    if precision > 0:\n        lon, lat = _ll2(lon, lat, g, _MinLen, _M2)\n        if precision > 1:\n            lon, lat = _ll2(lon, lat, g, _MinLen + 1, _M3)\n\n    if center:  # ll = (ll * 2 + 1) / 2\n        lon += _0_5\n        lat += _0_5\n\n    n = _name__(name, _or_nameof=garef)\n    r = _Resolutions[precision]  # == 1.0 / unit\n    return LatLonPrec3Tuple(Lat(lat * r, Error=GARSError),\n                            Lon(lon * r, Error=GARSError),\n                            precision, name=n)\n\n\ndef encode(lat, lon, precision=1):\n    '''Encode a lat-/longitude as a C{garef} of the given precision.\n\n       @arg lat: Latitude (C{degrees}).\n       @arg lon: Longitude (C{degrees}).\n       @kwarg precision: Optional, the desired C{garef} resolution\n                         and length (C{int} 0..2).\n\n       @return: The C{garef} (C{str}).\n\n       @raise RangeError: Invalid B{C{lat}} or B{C{lon}}.\n\n       @raise GARSError: Invalid B{C{precision}}.\n\n       @note: The C{garef} length is M{precision + 5} and the C{garef}\n              resolution is B{30′} for B{C{precision}} 0, B{15′} for 1\n              and B{5′} for 2, respectively.\n    '''\n    g, _, _ = _encode3(lat, lon, precision)\n    return g\n\n\ndef _encode3(lat, lon, precision):  # MCCABE 14\n    '''Return 3-tuple C{(garef, (lat, lon), p)}.\n    '''\n    def _digit(x, y, m):\n        return _Digits[m * (m - y - 1) + x + 1],\n\n    def _str(chars, x, n):\n        s, b = [], len(chars)\n        for i in range(n):\n            x, i = divmod(x, b)\n            s.append(chars[i])\n        return tuple(reversed(s))\n\n    p = _2Precision(precision)\n\n    lat, lon = _2fll(lat, lon)\n\n    ix, x = _2divmod2(       lon,  _LonOrig_M4)\n    iy, y = _2divmod2(_off90(lat), _LatOrig_M4)\n\n    g = _str(_Digits,  ix + 1, _LonLen) + \\\n        _str(_Letters, iy,     _LatLen)\n    if p > 0:\n        ix, x = divmod(x, _M3)\n        iy, y = divmod(y, _M3)\n        g += _digit(ix, iy, _M2)\n        if p > 1:\n            g += _digit(x, y, _M3)\n\n    return NN.join(g), (lat, lon), p\n\n\ndef precision(res):\n    '''Determine the L{Garef} precision to meet a required (geographic)\n       resolution.\n\n       @arg res: The required resolution (C{degrees}).\n\n       @return: The L{Garef} precision (C{int} 0..2).\n\n       @raise ValueError: Invalid B{C{res}}.\n\n       @see: Function L{gars.encode} for more C{precision} details.\n    '''\n    r = Scalar_(res=res)\n    for p in range(_MaxPrec):\n        if resolution(p) <= r:\n            return p\n    return _MaxPrec\n\n\ndef resolution(prec):\n    '''Determine the (geographic) resolution of a given L{Garef} precision.\n\n       @arg prec: The given precision (C{int}).\n\n       @return: The (geographic) resolution (C{degrees}).\n\n       @raise GARSError: Invalid B{C{prec}}.\n\n       @see: Function L{gars.encode} for more C{precision} details.\n    '''\n    p = Int_(prec=prec, Error=GARSError, low=-1, high=_MaxPrec + 1)\n    return _Resolutions[max(0, min(p, _MaxPrec))]\n\n\n__all__ += _ALL_DOCS(decode3,  # functions\n                     encode, precision, resolution)\n\n# **) MIT License\n#\n# Copyright (C) 2016-2026 -- mrJean1 at Gmail -- All Rights Reserved.\n#\n# Permission is hereby granted, free of charge, to any person obtaining a\n# copy of this software and associated documentation files (the \"Software\"),\n# to deal in the Software without restriction, including without limitation\n# the rights to use, copy, modify, merge, publish, distribute, sublicense,\n# and/or sell copies of the Software, and to permit persons to whom the\n# Software is furnished to do so, subject to the following conditions:\n#\n# The above copyright notice and this permission notice shall be included\n# in all copies or substantial portions of the Software.\n#\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL\n# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR\n# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\n# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n# OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "pygeodesy/geod3solve.py",
    "content": "\n# -*- coding: utf-8 -*-\n\nu'''Wrapper to invoke I{Karney}'s U{Geod3Solve\n<https://GeographicLib.SourceForge.io/C++/doc/Geod3Solve.1.html>} utility\nas a C{triaxial} geodesic, but intended I{mainly for testing purposes}.\n\nSet env variable C{PYGEODESY_GEOD3SOLVE} to the (fully qualified) path of\nthe C{Geod3Solve} executable or use property L{Geodesic3Solve.Geod3Solve\n<geod3solve._Geodesic3SolveBase.Geod3Solve>}.\n'''\n\nfrom pygeodesy.angles import Ang, Deg, isAng,  hypot\nfrom pygeodesy.basics import _xinstanceof,  _MODS  # typename\nfrom pygeodesy.constants import _0_0, _0_5, _360_0, _over\n# from pygeodesy.ellipses import Ellipse  # _MODS\nfrom pygeodesy.errors import GeodesicError, _xkwds_get\n# from pygeodesy.fmath import hypot  # from .angles\nfrom pygeodesy.interns import NN, _a12_, _DMAIN_, _s12_, _UNDER_, _UNUSED_\nfrom pygeodesy.karney import Caps, _GTuple, _Xables,  sincos2d\n# from pygeodesy.lazily import _ALL_DOCS, _ALL_LAZY, _ALL_MODS as _MODS\nfrom pygeodesy.props import Property, Property_RO, property_RO\nfrom pygeodesy.solveBase import _Solve3Base,  _ALL_DOCS, _ALL_LAZY\nfrom pygeodesy.triaxials.triaxial3 import Triaxial3, Triaxial3s\nfrom pygeodesy.units import Degrees, Meter\n# from pygeodesy.utily import sincos2d  # from .karney\n\n__all__ = _ALL_LAZY.geod3solve\n__version__ = '26.02.12'\n\n_Triaxial3_WGS84 = Triaxial3s.WGS84_3r  # a=6378172, b=6378102, c=6356752\n\n\nclass Geodesic3Error(GeodesicError):\n    '''Error raised for issues in L{geod3solve<pygeodesy.geod3solve>}.\n    '''\n    pass\n\n\nclass Geod3Solve8Tuple(_GTuple):\n    '''8-Tuple C{(bet1, omg1, alp1, bet2, omg2, alp2, s12, a12)} with C{ellipsoidal}\n       latitudes C{bet1} and C{bet2}, C{ellipsoidal} longitudes C{omg1} and C{omg2},\n       forward azimuths C{alp1} and C{alp2} in bearings from North, distance C{s12} in\n       C{meter}, conventionally and I{approximate} arc length C{a12} in degrees, see\n       U{Geod3Solve<https://GeographicLib.SourceForge.io/C++/doc/Geod3Solve.1.html>}.\n    '''\n    # from Geod3Solve --help option -f ... bet1 omg1 alp1 bet2 omg2 alp2 s12\n    _Names_ = ('bet1', 'omg1', 'alp1', 'bet2', 'omg2', 'alp2', _s12_, _a12_)\n    _Units_ = ( Deg,    Deg,    Deg,    Deg,    Deg,    Deg,    Meter, Deg)\n\n#   @Property_RO\n#   def A12(self):\n#       '''Approximate arc C{A12} as C{Deg}.\n#       '''\n#       t = self\n#       d = t.s12 or _0_0\n#       if d:\n#           a = hypot(Deg(t.bet2 - t.bet1).degrees,\n#                     Deg(t.omg2 - t.omg1).degrees)\n#           d = (-a) if d < 0 else a\n#       return Deg(d)\n\n\nclass _Geodesic3SolveBase(_Solve3Base):\n    '''(INTERNAL) Base class for L{Geodesic3Solve} and L{GeodesicLine3Solve}.\n    '''\n    _a12x          =  Geod3Solve8Tuple._Names_.index(_a12_)  # last\n    _Error         =  Geodesic3Error\n    _Names_Direct  = _Names_Distance = \\\n    _Names_Inverse =  Geod3Solve8Tuple._Names_[:_a12x]  # 7 only, always\n    _triaxial3     = _Triaxial3_WGS84\n    _Xable_name    = _Xables.Geod3Solve.__name__  # typename\n    _Xable_path    = _Xables.Geod3Solve()\n#   assert _a12x  ==  len(Geod3Solve8Tuple._Names_) - 1\n    del _a12x\n\n    @Property_RO\n    def a(self):\n        '''Get the triaxial's I{major} radius, semi-axis (C{meter}).\n        '''\n        return self._triaxial3.a\n\n    @Property_RO\n    def b(self):\n        '''Get the triaxial's I{middle} radius, semi-axis (C{meter}).\n        '''\n        return self._triaxial3.b\n\n    @Property_RO\n    def c(self):\n        '''Get the triaxial's I{minor} radius, semi-axis (C{meter}).\n        '''\n        return self._triaxial3.c\n\n    @Property_RO\n    def _cmdBasic(self):\n        '''(INTERNAL) Get the basic C{GeodSolve} cmd (C{tuple}).\n        '''\n        return (self.Geod3Solve, '-f') + (self._t_option +\n                                          self._p_option +\n                                          self._u_option)\n\n    @property_RO\n    def _e_option(self):\n        return ()\n\n    _mpd = _E_option = _e_option\n    flattening = f = ellipsoid = datum = None\n\n    @Property\n    def Geod3Solve(self):\n        '''Get the U{Geod3Solve<https://GeographicLib.SourceForge.io/C++/doc/Geod3Solve.1.html>}\n           executable (C{filename}).\n        '''\n        return self._Xable_path\n\n    @Geod3Solve.setter  # PYCHOK setter!\n    def Geod3Solve(self, path):\n        '''Set the U{Geod3Solve<https://GeographicLib.SourceForge.io/C++/doc/Geod3Solve.1.html>}\n           executable (C{filename}), the (fully qualified) path to the C{Geod3Solve} executable.\n\n           @raise GeodesicError: Invalid B{C{path}}, B{C{path}} doesn't exist or\n                                 isn't the C{Geod3Solve} executable.\n        '''\n        self._setXable(path)\n\n    @property_RO\n    def _t_option(self):\n        return ('-t',) + self._toStdin(self._triaxial3._abc3)\n\n    def toStr(self, **prec_sep):  # PYCHOK signature\n        '''Return this C{Geodesic3Solve} as string.\n\n           @kwarg prec_sep: See L{toStr<pygeodesy.solveBase._SolveBase.toStr>}.\n\n           @return: Geodesic3Solve items (C{str}).\n        '''\n        return _Solve3Base.toStr(self, Geod3Solve=self.Geod3Solve, **prec_sep)\n\n    @Property_RO\n    def _u_option(self):\n        return ('-u',) if self.unroll else ()\n\n\nclass Geodesic3Solve(_Geodesic3SolveBase):\n    '''Wrapper to invoke I{Karney}'s U{Geod3Solve<https://GeographicLib.SourceForge.io/C++/doc/Geod3Solve.1.html>}\n       as a C{triaxial} version of I{Karney}'s Python class U{Geodesic<https://GeographicLib.SourceForge.io/C++/doc/\n       python/code.html#geographiclib.geodesic.Geodesic>}.\n\n       @note: Use property C{GeodSolve} or env variable C{PYGEODESY_GEOD3SOLVE} to specify the (fully\n              qualified) path to the C{Geod3Solve} executable.\n\n       @note: This C{geodesic} is intended I{for testing purposes only}, it invokes the C{GeodSolve}\n              executable for I{every} method call.\n    '''\n\n    def __init__(self, triaxial3=_Triaxial3_WGS84, path=NN, **name):\n        '''New C{Solve} instance.\n\n           @arg triaxial3: A triaxial (L{Triaxial3}), default C{Triaxial3s.WGS84_3r}.\n           @kwarg path: Optionally, the (fully qualified) path to the C{GeodSolve}\n                        or C{RhumbSolve} executable (C{filename}).\n           @kwarg name: Optional C{B{name}=NN} (C{str}).\n\n           @raise TypeError: Invalid B{C{a_ellipsoid}} or B{C{f}}.\n        '''\n        _xinstanceof(Triaxial3, triaxial3=triaxial3)\n        if self._triaxial3 != triaxial3:\n            self._triaxial3 = triaxial3\n        if name:\n            self.name = name\n        if path:\n            self._setXable(path)\n\n    def _a12d(self, r):\n        '''(INTERNAL) Add arc C{a12} in degrees to C{GDict}.\n        '''\n        d = r.s12\n        if d:\n            a, b, c = self.triaxial3.abc3\n            E = _MODS.ellipses.Ellipse\n            z = _toAzi(r.alp1) + _toAzi(r.alp2)\n            s, z = sincos2d(z * _0_5)\n            d *= hypot(_over(s, E(a, b).perimeter2k),  # azimuth!\n                       _over(z, E(b, c).perimeter2k)) * _360_0\n        r[_a12_] = d or _0_0\n        return r\n\n    def Direct(self, bet1, omg1, alp1, s12, outmask=_UNUSED_, **unit):  # PYCHOK unused\n        '''Return the C{Direct} result at distance C{s12}.\n        '''\n        bet1, omg1, alp1 = _toDegrees(bet1, omg1, alp1, **unit)\n        r = self._GDictDirect(bet1, omg1, alp1, False, s12)\n        return self._a12d(r)\n\n    def DirectLine(self, bet1, omg1, alp1, caps=Caps.ALL, **unit_name):\n        '''Set up a L{GeodesicLine3Solve} to compute several points\n           on a single geodesic.\n\n           @arg bet1: Ellipsoidal Latitude of the first point (C{Ang} or B{C{unit}}).\n           @arg omg1: Ellipsoidal Longitude of the first point (C{Ang} or B{C{unit}}).\n           @arg alp1: Azimuth at the first point (compass C{degrees}, C{Ang} or C{unit}).\n           @kwarg caps: Desired capabilities for the L{GeodesicLine3Solve} instance.\n           @kwarg unit_name: Optional C{B{name}=NN} (C{str}) and scalar C{B{unit}=}L{Degrees}\n                             (or L{Degrees}).\n\n           @return: A L{GeodesicLine3Solve} instance.\n\n           @see: C++ U{GeodesicExact.Line\n                 <https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1GeodesicExact.html>}\n                 and Python U{Geodesic.Line<https://GeographicLib.SourceForge.io/Python/doc/code.html>}.\n        '''\n        return GeodesicLine3Solve(self, bet1, omg1, alp1, caps=caps, **unit_name)\n\n    Line = DirectLine  # ArcDirectLine\n\n    def Inverse(self, bet1, omg1, bet2, omg2, outmask=_UNUSED_, **unit):  # PYCHOK unused\n        '''Return the C{Inverse} result.\n        '''\n        r = self._GDictInverse(*_toDegrees(bet1, omg1, bet2, omg2, **unit))\n        return self._a12d(r)\n\n    def InverseLine(self, bet1, omg1, bet2, omg2, caps=Caps.ALL, **unit_name):\n        '''Set up a L{GeodesicLine3Solve} to compute several points\n           on a single geodesic.\n\n           @arg bet1: Latitude of the first point (C{Ang} or B{C{unit}}).\n           @arg omg1: Longitude of the first point (C{Ang} or B{C{unit}}).\n           @arg bet2: Latitude of the second point  (C{Ang} or B{C{unit}}).\n           @arg omg2: Longitude of the second point (C{Ang} or B{C{unit}}).\n           @kwarg caps: Desired capabilities for the L{GeodesicLine3Solve} instance.\n           @kwarg unit_name: Optional C{B{name}=NN} (C{str}) and scalar C{B{unit}=}L{Degrees}\n                             (or L{Degrees}).\n\n           @return: A L{GeodesicLine3Solve} instance.\n\n           @note: Both B{C{bet1}} and B{C{bet2}} should in the range C{[-90, +90]}.\n\n           @see: C++ U{GeodesicExact.InverseLine\n                 <https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1GeodesicExact.html>} and\n                 Python U{Geodesic.InverseLine<https://GeographicLib.SourceForge.io/Python/doc/code.html>}.\n        '''\n        r  = self.Inverse(bet1, omg1, bet2, omg2, **unit_name)\n        gl = GeodesicLine3Solve(self, r.bet1, r.omg1, r.alp1, caps=caps, **unit_name)\n#       gl._a13 = r.a12  # gl.SetArc(r.a12)\n#       gl._s13 = r.s12  # gl.SetDistance(r.s12)\n        return gl\n\n    def toStr(self, **prec_sep_other):  # PYCHOK signature\n        '''Return this C{Geodesic3Solve} as string.\n\n           @kwarg prec_sep: See L{toStr<pygeodesy.solveBase._Solve3Base.toStr>}.\n\n           @return: Geodesic3Solve items (C{str}).\n        '''\n        return _Solve3Base.toStr(self, Geod3Solve=self.Geod3Solve, **prec_sep_other)\n\n    @property_RO\n    def triaxial3(self):\n        '''Get the triaxial (C{Triaxial3}).\n        '''\n        return self._triaxial3\n\n\nclass GeodesicLine3Solve(_Geodesic3SolveBase):  # _SolveGDictLineBase):\n    '''Wrapper to invoke I{Karney}'s U{Geod3Solve<https://GeographicLib.SourceForge.io/C++/doc/GeodSolve.3.html>}\n       as a C{triaxial} version of I{Karney}'s Python class U{GeodesicLine<https://GeographicLib.SourceForge.io/\n       C++/doc/python/code.html#geographiclib.geodesicline.GeodesicLine>}.\n\n       @note: Use property C{GeodSolve} or env variable C{PYGEODESY_GEODSOLVE} to specify the (fully\n              qualified) path to the C{GeodSolve} executable.\n\n       @note: This C{geodesic} is intended I{for testing purposes only}, it invokes the C{GeodSolve}\n              executable for I{every} method call.\n    '''\n#   _a13   = \\\n#   _s13   = NAN  # see GeodesicSolve._InverseLine\n    _solve = None  # L{Geodesic3Solve} instance\n\n    def __init__(self, geodesic3, bet1, omg1, alp1, caps=Caps.ALL, **unit_name):\n        '''New L{GeodesicLine3Solve} instance, allowing points to be found along\n           a geodesic starting at C{(B{bet1}, B{omg1})} with azimuth B{C{alp1}}.\n\n           @arg geodesic3: The geodesic to use (L{Geodesic3Solve}).\n           @arg bet1: Ellipsoidal latitude of the first point (C{Ang} or B{C{unit}}).\n           @arg omg1: Ellipsoidal longitude of the first point (C{Ang} or B{C{unit}}).\n           @arg alp1: Azimuth at the first point (compass C{degrees}, C{Ang} or C{unit}).\n           @kwarg caps: Bit-or'ed combination of L{Caps<pygeodesy.karney.Caps>} values\n                        specifying the capabilities the L{GeodesicLine3Solve} instance\n                        should possess, C{B{caps}=Caps.ALL} always.  Include C{Caps.LINE_OFF}\n                        if updates to the B{C{geodesic3}} should I{not be reflected} in this\n                        L{GeodesicLine3Solve} instance.\n           @kwarg unit_name: Optional C{B{name}=NN} (C{str}) and scalar C{B{unit}=}L{Degrees}\n                             (or L{Degrees}).\n\n           @raise Geodesic3Error: Invalid path for the C{Geod3Solve} executable or isn't the\n                                  C{Geod3Solve} executable, see property C{geodesic3.Geod3Solve}.\n\n           @raise TypeError: Invalid B{C{geodesic3}}.\n        '''\n        _xinstanceof(Geodesic3Solve, geodesic3=geodesic3)\n        if (caps & Caps.LINE_OFF):  # copy to avoid updates\n            geodesic3 = geodesic3.copy(deep=False, name=_UNDER_(NN, geodesic3.name))  # NOT _under!\n        self._bet1, \\\n        self._omg1, \\\n        self._alp1  = _toDegrees(bet1, omg1, alp1, **unit_name)\n        self._caps  =  caps | Caps._AZIMUTH_LATITUDE_LONG_UNROLL\n        self._debug =  geodesic3._debug & Caps._DEBUG_ALL\n        self._solve =  geodesic3\n        try:\n            self.Geod3Solve = geodesic3.Geod3Solve  # geodesic or copy of geodesic\n        except GeodesicError:\n            pass\n        if unit_name:\n            name = _xkwds_get(unit_name, name=None)\n            if name:\n                self.name = name\n\n    @Property_RO\n    def alp1(self):\n        '''Get the azimuth at the first point (compass C{degrees}).\n        '''\n        return self._alp1\n\n#   azi12 = alp1  # like RhumbLineSolve\n\n#   @Property_RO\n#   def azi1_sincos2(self):\n#       '''Get the sine and cosine of the first point's azimuth (2-tuple C{(sin, cos)}).\n#       '''\n#       return _sincos2d(self.alp1)\n#\n#   azi12_sincos2 = azi1_sincos2\n\n    @Property_RO\n    def bet1(self):\n        '''Get the I{ellipsoidal} latitude of the first point (C{degrees}).\n        '''\n        return self._bet1\n\n    @Property_RO\n    def _cmdDistance(self):\n        '''(INTERNAL) Get the C{Geod3Solve} I{-L} cmd (C{tuple}).\n        '''\n        t = self.bet1, self.omg1, self.alp1\n        return self._cmdBasic + ('-L',) + self._toStdin(t)\n\n    @property_RO\n    def geodesic3(self):\n        '''Get the C{triaxial} geodesic (L{Geodesic3Solve}).\n        '''\n        return self._solve  # see .solveBase._SolveLineBase\n\n    def Intersecant2(self, bet0, omg0, radius, **kwds):  # PYCHOK no cover\n        '''B{Not implemented}, throws a C{NotImplementedError} always.'''\n        self._notImplemented(bet0, omg0, radius, **kwds)\n\n    @Property_RO\n    def omg1(self):\n        '''Get the I{ellipsoidal} longitude of the first point (C{degrees}).\n        '''\n        return self._omg1\n\n    def PlumbTo(self, bet0, omg0, **kwds):  # PYCHOK no cover\n        '''B{Not implemented}, throws a C{NotImplementedError} always.'''\n        self._notImplemented(bet0, omg0, **kwds)\n\n    def Position(self, s12, outmask=Caps.ALL):  # PYCHOK usused\n        '''Find the position on the line given B{C{s12}}.\n\n           @arg s12: Distance from the first point to the second (C{meter}).\n\n           @return: A C{GDict} with 7 items C{bet1, omg1, alp1, bet2, omg2, alp2, s12}.\n        '''\n        r = self._GDictInvoke(self._cmdDistance, self._Names_Distance, s12)  # ._unCaps(outmask)\n        return self.geodesic3._a12d(r)\n\n    def toStr(self, **prec_sep_other):  # PYCHOK signature\n        '''Return this C{GeodesicLine3Solve} as string.\n\n           @kwarg prec_sep: See L{toStr<pygeodesy.solveBase._Solve3Base.toStr>}.\n\n           @return: GeodesicLine3Solve items (C{str}).\n        '''\n        return _Solve3Base.toStr(self, bet1=self.bet1, omg1=self.omg1, alp1=self.alp1,\n                                       geodesic3=self.geodesic3, **prec_sep_other)\n\n    @property_RO\n    def triaxial3(self):\n        '''Get the triaxial (C{Triaxial3}).\n        '''\n        return self.geodesic3.triaxial3\n\n\ndef _toAzi(alp):  # as degrees\n    return alp.degrees0 if isAng(alp) else alp\n\n\ndef _toDegrees(*angs, **unit_name):\n    unit = _xkwds_get(unit_name, unit=Degrees)\n    for ang in angs:\n        if not isAng(ang):\n            ang = Ang.fromScalar(ang, unit=unit)\n        yield ang.degrees\n\n\n__all__ += _ALL_DOCS(_Geodesic3SolveBase)\n\nif __name__ == _DMAIN_:\n\n    def _main():\n        from pygeodesy import printf\n        from sys import argv\n\n        gS = Geodesic3Solve(name='Test')\n        gS.verbose = v = '--verbose' in argv  # or '-v' in argv\n\n        if not _Xables.X_OK(gS.Geod3Solve):  # not set\n            gS.Geod3Solve = _Xables.Geod3Solve(_Xables.bin_)\n        printf('version: %s', gS.version, nt=v)\n\n        r = gS.Direct(40.6, -73.8, 51, 5.5e6)\n        printf('Direct: %r', r, nt=v)\n\n        printf('Inverse: %r',  gS.Inverse( 40.6, -73.8, 51.6, -0.5), nt=v)\n\n        glS = GeodesicLine3Solve(gS, 40.6, -73.8, 51, name='LineTest')\n        printf('Line: %r', glS)\n        p = glS.Position(5.5e6)\n        printf('Position: %r %s', p, p == r)\n\n    _main()\n\n# % python3 -m pygeodesy.geod3solve\n\n# version: /opt/local/bin/Geod3Solve: GeographicLib version 2.7\n# Direct: GDict(a12=49.410276, alp1=51.0, alp2=107.340251, bet1=40.6, bet2=51.895816, omg1=-73.8, omg2=-1.038308, s12=5500000.0)\n# Inverse: GDict(a12=49.816802, alp1=51.235527, alp2=107.918138, bet1=40.6, bet2=51.6, omg1=-73.8, omg2=-0.5, s12=5545275.651379)\n# Line: GeodesicLine3Solve(alp1=51.0, bet1=40.6, geodesic3=Geodesic3Solve(Geod3Solve='/opt/local/bin/Geod3Solve', invokation=3, status=0), invokation=1, omg1=-73.8, status=0)\n# Position: GDict(a12=49.410276, alp1=51.0, alp2=107.340251, bet1=40.6, bet2=51.895816, omg1=-73.8, omg2=-1.038308, s12=5500000.0) True\n\n\n# % python3 -m pygeodesy.geod3solve --verbose\n\n# Geodesic3Solve 'Test'@1: /opt/local/bin/Geod3Solve --version (invoke)\n# Geodesic3Solve 'Test'@1: '/opt/local/bin/Geod3Solve: GeographicLib version 2.7' (0, stdout/-err)\n# Geodesic3Solve 'Test'@1: /opt/local/bin/Geod3Solve: GeographicLib version 2.7 (0)\n# version: /opt/local/bin/Geod3Solve: GeographicLib version 2.7\n#\n# Geodesic3Solve 'Test'@2: /opt/local/bin/Geod3Solve -f -t 6378172.0 6378102.0 6356752.0 -p 10 \\ 40.6 -73.8 51.0 5500000.0 (Direct)\n# Geodesic3Solve 'Test'@2: '40.600000000000001 -73.799999999999997 51.000000000000007 51.895816223972680 -1.038308043217667 107.340251322641734 5500000.0000000000' (0, stdout/-err)\n# Geodesic3Solve 'Test'@2: bet1=40.600000000000001, omg1=-73.799999999999997, alp1=51.000000000000007, bet2=51.89581622397268, omg2=-1.038308043217667, alp2=107.340251322641734, s12=5500000.0 (0)\n# Direct: GDict(a12=49.410276, alp1=51.0, alp2=107.340251, bet1=40.6, bet2=51.895816, omg1=-73.8, omg2=-1.038308, s12=5500000.0)\n#\n# Geodesic3Solve 'Test'@3: /opt/local/bin/Geod3Solve -f -t 6378172.0 6378102.0 6356752.0 -p 10 -i \\ 40.6 -73.8 51.6 -0.5 (Inverse)\n# Geodesic3Solve 'Test'@3: '40.600000000000001 -73.799999999999997 51.235527494379824 51.600000000000001 -0.500000000000000 107.918137616344865 5545275.6513788253' (0, stdout/-err)\n# Geodesic3Solve 'Test'@3: bet1=40.600000000000001, omg1=-73.799999999999997, alp1=51.235527494379824, bet2=51.600000000000001, omg2=-0.5, alp2=107.918137616344865, s12=5545275.6513788253 (0)\n# Inverse: GDict(a12=49.816802, alp1=51.235527, alp2=107.918138, bet1=40.6, bet2=51.6, omg1=-73.8, omg2=-0.5, s12=5545275.651379)\n#\n# Line: GeodesicLine3Solve(alp1=51.0, bet1=40.6, geodesic3=Geodesic3Solve(Geod3Solve='/opt/local/bin/Geod3Solve', invokation=3, status=0), invokation=1, omg1=-73.8, status=0)\n# Position: GDict(a12=49.410276, alp1=51.0, alp2=107.340251, bet1=40.6, bet2=51.895816, omg1=-73.8, omg2=-1.038308, s12=5500000.0) True\n\n\n# Examples <https://GeographicLib.SourceForge.io/C++/doc/Geod3Solve.1.html>\n\n# % echo 40:38:23N 073:46:44W-19.43W X 01:21:33N 103:59:22E-19.43W | tr X '\\n' | Cart3Convert -G | Cart3Convert -E -r | tr '\\n' ' ' | Geod3Solve -i -p 0 -f\n# 40.57193 -54.38111 3.20824 1.35529 123.41971 177.48319 15347602\n# % echo 40:38:23N 073:46:44W-19.43W X 01:21:33N 103:59:22E-19.43W | tr X '\\n' | Cart3Convert -G | Cart3Convert -E -r | tr '\\n' ' ' | Geod3Solve -i -p 0\n#                    3.20824                   177.48319 15347602\n# % echo 40:38:23N 073:46:44W-19.43W X 01:21:33N 103:59:22E-19.43W | tr X '\\n' | Cart3Convert -G | Cart3Convert -E -r | tr '\\n' ' ' | Geod3Solve -i -p 9\n#                    3.20824419242752          177.48319457984906 15347602.214888915\n\n# % Geod3Solve -L 40.57193 -54.38111 3.20824\n# 15347602\n# 1.35529159 123.41971119 177.48319768\n# 15347602\n# 1.35529159 123.41971119 177.48319768\n# % Geod3Solve -L 40.57193 -54.38111 3.20824 -f\n# 15347602\n# 40.57193000 -54.38111000 3.20824000 1.35529159 123.41971119 177.48319768 15347602.000\n# % Geod3Solve -L 40.57193 -54.38111 3.20824 -f -p 9\n# 15347602\n# 40.57193000000000 -54.38111000000000 3.20824000000000 1.35529159010289 123.41971119123770 177.48319768195134 15347602.000000000\n\n# **) MIT License\n#\n# Copyright (C) 2025-2026 -- mrJean1 at Gmail -- All Rights Reserved.\n#\n# Permission is hereby granted, free of charge, to any person obtaining a\n# copy of this software and associated documentation files (the \"Software\"),\n# to deal in the Software without restriction, including without limitation\n# the rights to use, copy, modify, merge, publish, distribute, sublicense,\n# and/or sell copies of the Software, and to permit persons to whom the\n# Software is furnished to do so, subject to the following conditions:\n#\n# The above copyright notice and this permission notice shall be included\n# in all copies or substantial portions of the Software.\n#\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL\n# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR\n# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\n# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n# OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "pygeodesy/geodesici.py",
    "content": "\n# -*- coding: utf-8 -*-\n\nu'''Classes L{Intersectool} and L{Intersector} to find the intersections of two geodesic lines or line segments.\n\nClass L{Intersector} is a pure Python version of I{Karney}'s C++ class U{Intersect\n<https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Intersect.html>}.\n\nClass L{Intersectool} is a wrapper to invoke I{Karney}'s U{IntersectTool\n<https://GeographicLib.SourceForge.io/C++/doc/IntersectTool.1.html>} utility, mainly intended I{for testing purposes}.\n\nSet env variable C{PYGEODESY_INTERSECTTOOL} to the (fully qualified) path of the C{IntersectTool} executable or use\nproperty L{Intersectool.IntersectTool}.  For usage and some examples run C{\"env PYGEODESY_INTERSECTTOOL=<IntersectTool-path>\npython3 -m pygeodesy.geodesici --help\"}.\n\nBoth L{Intersectool} and L{Intersector} provide methods C{All}, C{Closest}, C{Next} and C{Segment} and produce\nL{XDict} instances with 4 or more items.  Adjacent methods C{All5}, C{Closest5}, C{Next5} and C{Segment} return\nor yield L{Intersectool5Tuple} or L{Intersector5Tuple}s with the lat-, longitude and azimuth of each intersection\nas an extended, geodesic C{Position}-like L{GDict} instance.\n\nFor more details, see the C++ U{GeographicLib<https://GeographicLib.SourceForge.io/C++/doc/index.html>}\ndocumentation, I{Charles F.F. Karney}'s paper U{Geodesics intersections<https://arxiv.org/abs/2308.00495>}\nand I{S. Baselga Moreno & J.C. Martinez-Llario}'s U{Intersection and point-to-line solutions for geodesics\non the ellipsoid<https://riunet.UPV.ES/bitstream/handle/10251/122902/Revised_Manuscript.pdf>}.\n'''\n# make sure int/int division yields float quotient\nfrom __future__ import division as _; del _  # noqa: E702 ;\n\nfrom pygeodesy.basics import _copy, _enumereverse, map1, \\\n                             _xinstanceof, _xor,  typename\nfrom pygeodesy.constants import EPS, INF, INT0, PI, PI2, PI_4, \\\n                               _0_0, _0_5, _1_0, _1_5, _2_0, _3_0, \\\n                               _45_0, _64_0, _90_0, isfinite\nfrom pygeodesy.constants import _EPSjam  # PYCHOK used!\nfrom pygeodesy.ellipsoids import _EWGS84,  Fmt, unstr\nfrom pygeodesy.errors import GeodesicError, IntersectionError, _an, \\\n                            _xgeodesics, _xkwds, _xkwds_get, \\\n                            _xkwds_kwds, _xkwds_pop2\n# from pygeodesy.errors import exception_chaining  # _MODS\nfrom pygeodesy.fmath import euclid, fdot\nfrom pygeodesy.fsums import Fsum, fsum1_,  _ceil\n# from pygeodesy.internals import typename  # from .basics\nfrom pygeodesy.interns import NN, _A_, _B_, _c_, _COMMASPACE_, _DMAIN_, \\\n                             _HASH_, _M_, _not_, _SPACE_, _too_\nfrom pygeodesy.karney import Caps, _diff182, GDict, _sincos2de, _Xables\nfrom pygeodesy.lazily import _ALL_DOCS, _ALL_LAZY, _ALL_MODS as _MODS\nfrom pygeodesy.named import ADict, _NamedBase, _NamedTuple, _Pass\n# from pygeodesy.namedTuples import _LL4Tuple  # _MODS\nfrom pygeodesy.props import deprecated_method, Property, \\\n                            Property_RO, property_RO, property_ROver\nfrom pygeodesy.solveBase import _SolveCapsBase,  pairs\n# from pygeodesy.streprs import pairs  # from .solveBase\n# from pygeodesy.streprs import Fmt, unstr  # from .ellipsoids\nfrom pygeodesy.units import Azimuth as Azi, Degrees, Int, _isDegrees, \\\n                            Lat, Lon, Meter, Meter_\nfrom pygeodesy.utily import atan2, sincos2,  fabs, radians\n\n# from math import ceil as _ceil, fabs, radians  # .fsums, .utily\n\n__all__ = _ALL_LAZY.geodesici\n__version__ = '26.02.04'\n\n_0t     =  0,  # int\n_1_1t   = -1, +1\n_1_0_1t = -1, 0, +1\n_aAB_   = 'aAB'\n_c__    = '-c'  # PYCHOK used!\n_cWGS84 = _EWGS84.a * PI2  # outer circumference\n_EPS3   =  EPS * _3_0\n_EPSr5  =  pow(EPS, 0.2)  # PYCHOK used! 7.4e-4 or ~3\"\n_i__    = '-i'  # PYCHOK used!\n_latA_  = 'latA'\n_lonA_  = 'lonA'\n_n__    = '-n'  # PYCHOK used!\n_o__    = '-o'  # PYCHOK used!\n_R__    = '-R'\n_sAB_   = 'sAB'\n_sX0_   = 'sX0'\n_TRIPS  =  128\n\n\nclass XDict(ADict):\n    '''4+Item result from L{Intersectool} and L{Intersector} methods C{All},\n       C{Closest}, C{Next} and C{Segment} with the intersection offsets\n       C{sA}, C{sB} and C{sX0} in C{meter} and the coincidence indicator\n       C{c}, an C{int}, +1 for parallel, -1 for anti-parallel or 0 otherwise.\n\n       Offsets C{sA} and C{sB} are distances measured I{along} geodesic line\n       C{glA} respectively C{glB}, but C{sX0} is the I{L1-distance} between\n       the intersection and the I{origin} C{X0}.\n\n       If present, distance C{sAB} and angular distance C{aAB} represent the\n       separation between the intersection point on geodesic lines C{glA}\n       and C{glB} in C{meter} respectively C{degrees}, typically below\n       C{5e-9 meter} or C{5 nm} respectively C{5e-14 degrees} or C{1 n\"}.\n\n       For segments, indicators C{kA} and C{kB} are C{0} if the segments\n       intersect or C{-1} or C{+1} if the intersection is I{before} the\n       start, respectively I{after} the end of the segment, similar to\n       L{Intersection3Tuple<Intersection3Tuple>}.  Segment indicator C{k}\n       is I{Karney}'s C{segmode}, equal C{kA * 3 + kB}.\n    '''\n    _Delta = EPS  # default margin, see C{Intersector._Delto}\n\n    def __add__(self, other):\n        X  = _copy(self)\n        X +=  other\n        return X\n\n    def __eq__(self, other):\n        return not self.__ne__(other)\n\n    def __iadd__(self, other):\n        if isinstance(other, tuple):  # and len(other) == 2:\n            a, b = other\n        else:\n            # _xinstanceof(XDict, other=other)\n            a = other.sA\n            b = other.sB\n            if other.c:\n                self.c = other.c\n        self.sA += a  # PYCHOK sA\n        self.sB += b  # PYCHOK sB\n        return self\n\n    def __le__(self, other):\n        # _xinstanceof(XDict, other=other)\n        return self == other or self < other\n\n    def __lt__(self, other):\n        # _xinstanceof(XDict, other=other)\n        return self.sA < other.sA or (self.sA == other.sA and  # PYCHOK sA\n                                      self.sB <  other.sB and  # PYCHOK sB\n                                      self    != other)\n\n    def __ne__(self, other):\n        # _xinstanceof(XDict, other=other)\n        return self is not other and self.L1(other) > self._Delta\n\n    def _corners(self, sA, sB, T2):\n        # yield all corners further than C{T2}\n        a, b = self.sA, self.sB  # PYCHOK sA, sB\n        for x in (0, sA):\n            for y in (0, sB):\n                if _L1(x - a, y - b) >= T2:\n                    yield XDict_(x, y)\n\n    def _fixCoincident(self, X, c0=0):\n        # return the mid-point if C{X} is anti-/parallel\n        c = c0 or X.c\n        if c:\n            s = (self.sA - X.sA  +  # PYCHOK sA\n                (self.sB - X.sB) * c) * _0_5  # PYCHOK sB\n            X = X + (s, s * c)  # NOT +=\n        return X\n\n    def _fixSegment(self, sA, sB):  # PYCHOK no cover\n        # modify this anti-/parallel C{XDict}\n        a, b, c = self.sA, self.sB, self.c  # PYCHOK sA, sB, c\n\n        def _g():  # intersection in smallest gap\n            if c > 0:  # distance to [A, B] is |(a - b) - (A - B)|\n                t = a - b  # consider corners [0, sB] and [sA, 0]\n                t = fabs(t + sB) < fabs(t - sA)\n                s = a + b\n            else:  # distance to [A, B] is |(a + b) - (A + B)|\n                t = a + b  # consider corner [0, 0] and [sA, sB]\n                t = fabs(t) < fabs(t - (sA + sB))\n                s = sB + (a - b)\n            return (sB if t else sA) - s\n\n        ta = -a\n        tb = sA -  a\n        tc = -c *  b\n        td = -c * (b - sB)\n\n        ga = 0 <= (b + c * ta) <= sB\n        gb = 0 <= (b + c * tb) <= sB\n        gc = 0 <= (a +     tc) <= sA\n        gd = 0 <= (a +     td) <= sA\n\n        # test opposite rectangle sides first\n        s = ((ta + tb) if ga and gb else (\n             (tc + td) if gc and gd else (\n             (ta + tc) if ga and gc else (\n             (ta + td) if ga and gd else (\n             (tb + tc) if gb and gc else (\n             (tb + td) if gb and gd else _g())))))) * _0_5\n        self += s, s * c\n\n    @property_RO\n    def _is00(self):\n        return not (self.sA or self.sB)  # PYCHOK sA, sB\n\n    def L1(self, other=None):\n        '''Return the C{L1} distance.\n        '''\n        a, b = self.sA, self.sB  # PYCHOK sA, sB\n        if other is not None:\n            # _xinstanceof(XDict, other=other)\n            a -= other.sA\n            b -= other.sB\n        return _L1(a, b)\n\n    def _nD1(self, D1):\n        # yield the C{Closest} starts\n        D_ = 0, D1, -D1\n        for a, b in zip((0, 1, -1, 0,  0),\n                        (0, 0,  0, 1, -1)):\n            yield self + (D_[a], D_[b])\n\n    def _nD2(self, D2):\n        # yield the C{Next} starts\n        D22 = D2 * _2_0\n        D_  = 0, D2, D22, -D22, -D2\n        for a, b in zip((-1, -1,  1, 1, -2, 0, 2,  0),\n                        (-1,  1, -1, 1,  0, 2, 0, -2)):\n            yield self + (D_[a], D_[b])\n\n    def _nmD3(self, n, m, D3):  # d3 / 2\n        # yield the C{All} starts\n        yield self\n        for i in range(n, m, 2):\n            for j in range(n, m, 2):\n                if i or j:  # skip self\n                    yield self + ((i + j) * D3,\n                                  (i - j) * D3)\n\n    def _outSide(self, sA, sB):\n        # is this C{Xdist} outside one or both segments?\n        a, b = self.sA, self.sB  # PYCHOK sA, sB\n        kA = -1 if a < 0 else (+1 if a > sA else INT0)\n        kB = -1 if b < 0 else (+1 if b > sB else INT0)\n        self.set_(kA=kA, kB=kB, k=(kA * 3 + kB) or INT0)\n        return bool(kA or kB)\n\n    def _skip(self, S_, T1_Delta):\n        # remove starts from list C{S_} near this C{XDict}\n        for j, S in _enumereverse(S_):\n            if S.L1(self) < T1_Delta:\n                S_.pop(j)\n\n\ndef XDict_(sA=_0_0, sB=_0_0, c=INT0, sX0=_0_0):\n    '''(INTERNAL) New L{XDict} from positionals.\n    '''\n    return XDict(sA=sA, sB=sB, c=c, sX0=sX0)\n\n_X000 = XDict_()  # PYCHOK origin\n_XINF = XDict_(INF)\n\n\nclass _IntersectBase(_NamedBase):\n    '''(INTERNAL) Base class for L{Intersectool} and L{Intersector}.\n    '''\n    # _g  = None\n\n    def __init__(self, geodesic, **name):\n        _xinstanceof(*_EWGS84._Geodesics, geodesic=geodesic)\n        self._g = geodesic\n        if name:\n            self.name = name\n\n    @Property_RO\n    def a(self):\n        '''Get the I{equatorial} radius, semi-axis (C{meter}).\n        '''\n        return self.ellipsoid.a\n\n    equatoradius = a  # = Requatorial\n\n    def All(self, glA, glB, **kwds):  # PYCHOK no cover\n        '''(INTERNAL) I{Must be overloaded}.'''\n        self._notOverloaded(glA, glB, **kwds)\n\n    @Property_RO\n    def _cHalf(self):  # normalizer, semi-circumference\n        return self.R * PI  # ~20K Km WGS84\n\n    @Property_RO\n    def _cMax(self):  # outer circumference\n        return max(self.a, self.ellipsoid.b, self.R) * PI2\n\n    @property_RO\n    def datum(self):\n        '''Get the geodesic's datum (C{Datum}).\n        '''\n        return self.geodesic.datum\n\n    @Property_RO\n    def ellipsoid(self):\n        '''Get the C{geodesic}'s ellipsoid (C{Ellipsoid}).\n        '''\n        return self.geodesic.datum.ellipsoid\n\n    @Property_RO\n    def f(self):\n        '''Get the I{flattening} (C{scalar}), C{0} for spherical, negative for prolate.\n        '''\n        return self.ellipsoid.f\n\n    flattening = f\n\n    @property_RO\n    def geodesic(self):\n        '''Get the C{Geodesic} (C{GeodesicExact, GeodesicSolve, or ...}).\n        '''\n        return self._g\n\n    def _illz2G(self, G, il):\n        '''(INTERNAL) Set C{InverseLine} 1-/2-attrs into C{G}, a C{GDict}.\n        '''\n        try:\n            G.set_(lat1=il.lat1, lon1=il.lon1, azi1=il.azi1, a12=il.a13,  # .Arc()\n                   lat2=il.lat2, lon2=il.lon2, azi2=il.azi2, s12=il.s13)  # .Distance()\n        except AttributeError:\n            r = il.Position(il.s13, outmask=Caps.STANDARD_LINE)  # isfinite(il.s13)\n            G.set_(**r)\n#           for n, v in r.items():\n#               if not hasattr(il, n):\n#                   setattr(il, n, v)\n        return G\n\n    def intersect7(self, start1, end1, start2, end2, X0=_X000, aMaX0=0, sMaX0=_cWGS84,\n                                                               **LatLon_and_kwds):\n        '''Yield the intersections of two geodesic lines, each defined by a start\n           and end point or by a start point and an azimuth (bearing from North).\n\n           @arg start1: Start point of the first line (C{LatLon}).\n           @arg end1: End point of the first line (C{LatLon}) or the azimuth at the\n                      B{C{start1}} point (compass C{degrees360}).\n           @arg start2: Start point of the second line (C{LatLon}).\n           @arg end2: End point of the second line (C{LatLon}) or the azimuth at the\n                      B{C{start2}} point (compass C{degrees360}).\n           @kwarg X0: Optional I{origin} for I{L1-distances} (L{XDict}) or C{None} for\n                      the L{Middle<Intersector.Middle>}, otherwise C{XDiff_(0, 0)}.\n           @kwarg aMaX0: Upper limit for the I{angular L1-distance}\n                         (C{degrees}) or C{None} or C{0} for unlimited.\n           @kwarg sMaX0_C: Optional, upper limit C{B{sMaX0}=2*PI*R} for the\n                        I{L1-distance} to B{C{X0}} (C{meter}).\n           @kwarg LatLon_and_kwds: Optional class C{B{LatLon}=None} to return intersection\n                         points and optional, additional B{C{LatLon}} keyword arguments.\n\n           @note: The C{lat} and C{lon} attr of B{C{start1}}, B{C{end1}}, B{C{start2}} and\n                  B{C{end2}} are used I{verbatim}, ignoring C{datum} or C{ellipsoid}.\n\n           @return: Yield an L{Intersect7Tuple}C{(A, B, sAB, aAB, c, kA, kB)} for every\n                    intersection found, with C{A} and C{B} each a B{C{LatLon}} or if\n                    C{B{LatLon} is None} or not specified, a L{LatLon4Tuple}C{(lat, lon,\n                    height, datum)} with C{height 0} and this C{datum}.\n\n           @raise GeodesicError: Invalid B{C{start1}}, B{C{end1}}, B{C{start2}} or\n                                 B{C{end2}} or B{C{end1}} and B{C{end2}} differ in type.\n\n           @raise IntersectionError: No convergence.\n        '''\n\n        def _args(s, e):\n            t = (e,) if _isDegrees(e) else (e.lat, e.lon)\n            return (s.lat, s.lon) + t\n\n        try:\n            glA = self.Line(*_args(start1, end1))\n            glB = self.Line(*_args(start2, end2))\n        except Exception as x:\n            raise GeodesicError(start1=start1, end1=end1, start2=start2, end2=end2, cause=x)\n\n        LL, kwds = _xkwds_pop2(LatLon_and_kwds, LatLon=None)\n        d,  kwds = _xkwds_pop2(kwds, datum=self.datum)\n        h,  kwds = _xkwds_pop2(kwds, height=0)\n\n        _LL4T = _MODS.namedTuples._LL4Tuple\n        for X in self.All(glA, glB, X0=X0, aMaX0=aMaX0, sMaX0=sMaX0, _C=True):\n            A = B = _LL4T(X.latA, X.lonA, h, d, LL, kwds, iteration=X.iteration)\n            if X.sAB or X.latA != X.latB or X.lonA != X.lonB:\n                B = _LL4T(X.latB, X.lonB, h, d, LL, kwds, iteration=X.iteration)\n            yield Intersect7Tuple(A, B, X.sAB, X.aAB, X.c, _xkwds_get(X, kA=0),\n                                                           _xkwds_get(X, kB=0))\n\n    def _Inversa12(self, A, B=None):\n        lls = (0, 0, A, 0) if B is None else (A.lat2, A.lon2,\n                                              B.lat2, B.lon2)\n        r = self._g.Inverse(*lls, outmask=Caps.DISTANCE)\n        return r.s12, r.a12  # .a12 always in r\n\n    def k2kAkB(self, k):\n        '''Unravel C{k} into C{kA} and C{kB}.\n\n           @arg k: Segment indicator C{kA * 3 + kB} (C{int}).\n\n           @return: An C{ADict(k=k, kA=kA, kB=kB)}.\n\n           @raise GeodesicError: Invalid B{C{k}}.\n        '''\n        for kA in range(-1, 2):\n            for kB in range(-1, 2):\n                if (kA * 3 + kB) == k:\n                    return ADict(k=k, kA=kA, kB=kB)\n        raise GeodesicError(k=k)\n\n#   def k2kAkB(self, k):\n#       # unravel C{k} into C{kA} and C{kB}.\n#       kA, kB = divmod(k, 3)\n#       if kB > 1:\n#           kA += 1\n#           kB -= 3\n#       return kA, kB\n\n    def Line(self, lat1, lon1, azi1_lat2, *lon2, **name):  # PYCHOK no cover\n        '''(INTERNAL) I{Must be overloaded}.'''\n        self._notOverloaded(lat1, lon1, azi1_lat2, *lon2, **name)\n\n    def _ll3z4ll(self, lat1, lon1, azi1_lat2, *lon2):\n        t = Lat(lat1=lat1), Lon(lon1=lon1)\n        if lon2:  # get azis for All, keep lat-/lons\n            t += Lat(lat2=azi1_lat2), Lon(lon2=lon2[0])\n        else:\n            t += Azi(azi1=azi1_lat2),\n        return t\n\n    @deprecated_method\n    def Next5s(self, glA, glB, X0=_X000, aMax=1801, sMax=0, **unused):  # PYCHOK no cover\n        '''DEPRECATED on 2024.07.02, use method C{All5}.'''\n        return self.All5(glA, glB, X0=X0, aMaX0=aMax, sMaX0=sMax)  # PYCHOK attr\n\n    @Property_RO\n    def R(self):\n        '''Get the I{authalic} earth radius (C{meter}).\n        '''\n        return self.ellipsoid.R2\n\n    def _sMaX0_C2(self, aMaX0=0, **sMaX0_C):\n        _g = _xkwds_get\n        s  = _g(sMaX0_C, sMaX0=self._cMax)\n        s  = _g(sMaX0_C, sMax=s)  # for backward ...\n        a  = _g(sMaX0_C, aMax=aMaX0)  # ... compatibility\n        if a:  # degrees to meter, approx.\n            s = min(s, self.R * radians(a))  # ellipsoid.degrees2m(a)\n        s  = _g(sMaX0_C, _R=s)\n        if s < _EPS3:\n            s = _EPS3  # raise GeodesicError(sMaX0=s)\n        return s, _g(sMaX0_C, _C=False)\n\n    def _xNext(self, glA, glB, eps1, **eps_C):  # PYCHOK no cover\n        eps1 = _xkwds_get(eps_C, eps=eps1)  # eps for backward compatibility\n        if eps1 is not None:\n            a = glA.lat1 - glB.lat1\n            b = glA.lon1 - glB.lon1\n            if euclid(a, b) > eps1:\n                raise GeodesicError(lat_=a, lon_=b, eps1=eps1)\n        return _xkwds_kwds(eps_C, _C=False)\n\n\nclass Intersectool(_IntersectBase, _SolveCapsBase):\n    '''Wrapper to invoke I{Karney}'s utility U{IntersectTool\n       <https://GeographicLib.SourceForge.io/C++/doc/IntersectTool.1.html>}\n       similar to class L{Intersector<geodesici.Intersector>}.\n\n       @note: Use property C{IntersectTool} or env variable C{PYGEODESY_INTERSECTTOOL}\n              to specify the (fully qualified) path to the C{IntersectTool} executable.\n\n       @note: This C{Intersectool} is intended I{for testing purposes only}, it invokes\n              the C{IntersectTool} executable for I{every} method call.\n    '''\n    _c_alt       = _c__,  # Closest latA lonA aziA  latB lonB aziB\n    _C_option    = '-C',\n    _Error       =  GeodesicError\n    _i_alt       = _i__,  # Segment latA1 lonA1 latA2 lonA2  latB1 lonB1 latB2 lonB2\n    _linelimit   =  1200  # line printer width X 10\n    _n_alt       = _n__,  # Next latA lonA aziA  aziB\n    _Names_ABs   = _latA_, _lonA_, 'latB', 'lonB', _sAB_  # -C to stderr\n    _Names_XDict = 'sA', 'sB', _c_  # plus 'k' from -i or 'sX0' from -R\n    _o_alt       = _o__,  # Offset latA lonA aziA  latB lonB aziB  x0 y0\n    _Xable_name  = _Xables.IntersectTool.__name__  # typename\n    _Xable_path  = _Xables.IntersectTool()\n\n    def __init__(self, a_geodesic=None, f=None, **name):\n        '''New L{IntersectTool}.\n\n           @arg a_geodesic: Earth' equatorial axis (C{meter}) or a C{Geodesic}\n                            (L{GeodesicExact<pygeodesy.geodesicx.GeodesicExact>},\n                            wrapped L{Geodesic<pygeodesy.geodesicw.Geodesic>} or\n                            L{GeodesicSolve<pygeodesy.geodsolve.GeodesicSolve>}).\n           @kwarg f: Earth' flattening (C{scalar}), required if B{C{a_geodesic}}\n                     is in C{meter}, ignored otherwise.\n           @kwarg name: Optional C{B{name}=NN} (C{str}).\n\n           @raise GeodesicError: The eccentricity of the B{C{geodesic}}'s ellipsoid is too\n                                 large or no initial convergence.\n\n           @see: The B{Note} at I{Karney}'s C++ U{Intersect<https://GeographicLib.SourceForge.io/\n                 C++/doc/classGeographicLib_1_1Intersect.html#ae41f54c9a44836f6c8f140f6994930cf>}.\n        '''\n        g = self._GeodesicExact() if a_geodesic is None else (a_geodesic if f is None else\n            self._GeodesicExact(a_geodesic, f))\n        _IntersectBase.__init__(self, g, **name)\n\n    def All(self, glA, glB, X0=_X000, eps1=_0_0, aMaX0=0, **sMaX0_C):  # PYCHOK signature\n        '''Yield all intersections of two geodesic lines up to a limit.\n\n           @kwarg eps1: Optional margin for the L{euclid<pygeodesy.euclid>}ean distance\n                        (C{degrees}) between the C{(lat1, lon1)} points of both lines for\n                        using the L{IntersectTool<Intersectool.IntersectTool>}'s C{\"-n\"}\n                        option, unless C{B{eps1}=None}.\n\n           @return: An L{XDict} for each intersection.\n        '''\n        for X, _ in self._All2(glA, glB, X0, eps1, aMaX0=aMaX0, **sMaX0_C):\n            yield X\n\n    def _All2(self, glA, glB, X0, eps1, **aMaX0_sMaX0_C):  # MCCABE 13\n        '''(INTERNAL) Helper for methods C{.All} and C{.All5}.\n        '''\n        def _xz2(**gl):\n            try:\n                n, gl = gl.popitem()  # _xkwds_item2(gl)\n                try:\n                    return self._c_alt, (gl.azi1,)\n                except (AttributeError, KeyError):\n                    return self._i_alt, (gl.lat2, gl.lon2)\n            except Exception as x:\n                raise GeodesicError(n, gl, cause=x)\n\n        _t, a = _xz2(glA=glA)\n        _x, b = _xz2(glB=glB)\n        if _x is not _t:\n            raise GeodesicError(glA=glA, glB=glB)\n\n        A = glA.lat1, glA.lon1\n        B = glB.lat1, glB.lon1\n        if _x is self._c_alt:\n            if X0 is _X000 or X0._is00:\n                if eps1 is not None and \\\n                   euclid(glA.lat1 - glB.lat1,\n                          glA.lon1 - glB.lon1) <= eps1:\n                    _x, B = self._n_alt, ()\n            else:  # non-zero offset\n                _x = self._o_alt\n                b += X0.sA, X0.sB\n\n        sMaX0, _C = self._sMaX0_C2(**aMaX0_sMaX0_C)\n        for X in self._XDictInvoke(_x, _sX0_, (A + a + B + b),\n                                              _C=_C, _R=sMaX0):\n            if _C:\n                T = self._In5T(glA, glB, X, X)\n                if _aAB_ not in X:\n                    X.set_(sAB=T.sAB, aAB=T.aAB)\n            else:\n                T = None\n            yield X.set_(c=int(X.c)), T\n\n    def All5(self, glA, glB, X0=_X000, **aMaX0_sMaX0):\n        '''Yield all intersections of two geodesic lines up to a limit.\n\n           @return: An L{Intersectool5Tuple} for each intersection.\n        '''\n        for _, T in self._All2(glA, glB, X0, _0_0, _C=True, **aMaX0_sMaX0):\n            yield T\n\n    @Property_RO\n    def _cmdBasic(self):\n        '''(INTERNAL) Get the basic C{IntersectTool} cmd (C{tuple}).\n        '''\n        return (self.IntersectTool,) + (self._e_option +\n                                        self._E_option +\n                                        self._p_option)\n\n    def Closest(self, glA, glB, X0=_X000, _C=False):\n        '''Find the closest intersection of two geodesic lines.\n\n           @kwarg _C: Use C{B{_C}=True} to include the C{\"-C\"} results (C{bool}).\n\n           @return: An L{XDict}.\n        '''\n        args = glA.lat1, glA.lon1, glA.azi1, \\\n               glB.lat1, glB.lon1, glB.azi1\n        if X0 is _X000 or X0._is000:\n            _x = self._c_alt\n        else:\n            _x = self._o_alt\n            args += X0.sA, X0.sB\n        return self._XDictInvoke(_x, NN, args, _C=_C)  # _R=None)\n\n    def Closest5(self, glA, glB, **unused):\n        '''Find the closest intersection of two geodesic lines.\n\n           @return: An L{Intersectool5Tuple}.\n        '''\n        X = self.Closest(glA, glB, _C=True)\n        return self._In5T(glA, glB, X, X)\n\n    @property_ROver\n    def _GeodesicExact(self):\n        '''Get the I{class} L{GeodesicExact}, I{once}.\n        '''\n        return _MODS.geodesicx.GeodesicExact  # overwrite property_ROver\n\n    def _In5T(self, glA, glB, S, X, k2=False, **_2X):\n        A = GDict(glA).set_(lat2=X.latA, lon2=X.lonA, s12=S.sA)\n        B = GDict(glB).set_(lat2=X.latB, lon2=X.lonB, s12=S.sB)\n        if k2:\n            A.set_(k2=X.kA)\n            B.set_(k2=X.kB)\n        s, a =  self._Inversa12(A, B)\n        sAB  = _xkwds_get(X, sAB=s)\n        if a and s and s != sAB:\n            a *= sAB / s  # adjust a\n        return Intersectool5Tuple(A._2X(glA, **_2X),\n                                  B._2X(glB, **_2X), sAB, a, X.c)\n\n    @Property\n    def IntersectTool(self):\n        '''Get the U{IntersectTool<https://GeographicLib.SourceForge.io/C++/doc/IntersectTool.1.html>}\n           executable (C{filename}).\n        '''\n        return self._Xable_path\n\n    @IntersectTool.setter  # PYCHOK setter!\n    def IntersectTool(self, path):\n        '''Set the U{IntersectTool<https://GeographicLib.SourceForge.io/C++/doc/IntersectTool.1.html>}\n           executable (C{filename}), the (fully qualified) path to the C{IntersectTool} executable.\n\n           @raise GeodesicError: Invalid B{C{path}}, B{C{path}} doesn't exist or isn't the\n                                 C{IntersectTool} executable.\n        '''\n        self._setXable(path)\n\n    def Line(self, lat1, lon1, azi1_lat2, *lon2, **name):\n        '''Return a geodesic line from this C{Intersector}'s geodesic, specified\n           by two points or a point and an azimuth (bearing from North).\n\n           @return: A 3- or 6-item, named L{GDict}.\n        '''\n        args = self._ll3z4ll(lat1, lon1, azi1_lat2, *lon2)\n        gl   = GDict((u.name, u) for u in args)\n#       if lon2:  # get azis for All, use lat-/lons as given\n#           r = self._g.Inverse(outmask=Caps.AZIMUTH, *args)\n#           gl.set_(azi1=Azi(azi1=r.azi1), azi2=Azi(azi2=r.azi2))\n        if name:\n            gl.name= name\n        return gl\n\n    def Middle(self, glA, glB, **_C):\n        '''Get the mid-points on two geodesic line segments.\n\n           @kwarg _C: Use C{B{_C}=True} to include the C{\"-C\"} results (C{bool}).\n\n           @return: An L{XDict}.\n        '''\n        return self._middle5(glA, glB, **_C)[0]\n\n    def _middle5(self, glA, glB, _C=False, **unused):\n        # return intersections C{A} and C{B} and the\n        # center C{X0} of rectangle [sA, sB]\n\n        def _smi4(**gl):\n            try:\n                n, gl = gl.popitem()\n                il = self._g.InverseLine(gl.lat1, gl.lon1, gl.lat2, gl.lon2)\n            except Exception as x:\n                raise GeodesicError(n, gl, cause=x)\n            s = il.s13\n            m = s * _0_5\n            return s, m, il, (il.Position(m, outmask=Caps.STANDARD_LINE) if _C else None)\n\n        sA, mA, iA, A = _smi4(glA=glA)\n        sB, mB, iB, B = _smi4(glB=glB)\n        X = XDict_(mA, mB)  # centers\n        _ = X._outSide(sA, sB)\n        if _C:  # _Names_ABs\n            s, a = self._Inversa12(A, B)\n            X.set_(latA=A.lat2, lonA=A.lon2, aMM=a,  # assert sA == A.s12\n                   latB=B.lat2, lonB=B.lon2, sMM=s)  # assert sB == B.s12\n        return X, A, iA, B, iB\n\n    def Middle5(self, glA, glB, **unused):\n        '''Get the mid-points on two geodesic line segments and their distance.\n\n           @return: A L{Middle5Tuple}.\n        '''\n        X, A, iA, B, iB = self._middle5(glA, glB, _C=True)\n        A, B,  s, a, c  = self._In5T(A, B, X, X, _2X=_M_)\n        return Middle5Tuple(self._illz2G(A, iA),\n                            self._illz2G(B, iB), s, a, c)\n\n    def Next(self, glA, glB, eps1=None, **_C):  # PYCHOK no cover\n        '''Find the next intersection of two I{intersecting} geodesic lines.\n\n           @kwarg _C: Use C{B{_C}=True} to include the option C{\"-C\"} results (C{bool}).\n\n           @return: An L{XDict}.\n        '''\n        if eps1 or _C:\n            _C = self._xNext(glA, glB, eps1, **_C)\n        return self._XDictInvoke(self._n_alt, NN,\n                                      (glA.lat1, glA.lon1, glA.azi1, glB.azi1),\n                                    **_C)  # _R=None\n\n    def Next5(self, glA, glB, **eps1):  # PYCHOK no cover\n        '''Find the next intersection of two I{intersecting} geodesic lines.\n\n           @return: An L{Intersectool5Tuple}.\n        '''\n        X = self.Next(glA, glB, _C=True, **eps1)\n        return self._In5T(glA, glB, X, X)\n\n    def _R_option(self, _R=None):\n        '''(INTERNAL) Get the C{-R maxdist} option.\n        '''\n        return () if _R is None else (_R__, str(_R))  # -R maxdist\n\n    def Segment(self, glA, glB, **_C_unused):\n        '''Find the intersection between two geodesic line segments.\n\n           @kwarg _C: Use C{B{_C}=True} to include the option C{\"-C\"} results (C{bool}).\n\n           @return: An L{XDict}.\n        '''\n        X = self._XDictInvoke(self._i_alt, 'k', (glA.lat1, glA.lon1, glA.lat2, glA.lon2,\n                                                 glB.lat1, glB.lon1, glB.lat2, glB.lon2),\n                                                _C=_xkwds_get(_C_unused, _C=False))  # _R=None\n        try:\n            ks = self.k2kAkB(int(X.k))\n        except Exception as x:\n            raise GeodesicError(glA=glA, glB=glB, X=str(X), cause=x)\n        return X.set_(**ks)\n\n    def Segment5(self, glA, glB, **unused):\n        '''Find the next intersection of two I{intersecting} geodesic lines.\n\n           @return: An L{Intersectool5Tuple}.\n        '''\n        X = self.Segment(glA, glB, _C=True)\n        return self._In5T(glA, glB, X, X, k2=True)\n\n    def toStr(self, prec=6, sep=_COMMASPACE_, **unused):  # PYCHOK signature\n        '''Return this C{Intersectool} as string.\n\n           @kwarg prec_sep: Keyword argumens C{B{prec}=6} and C{B{sep}=\", \"}\n                      for the C{float} C{prec}ision, number of decimal digits\n                      (0..9) and the C{sep}arator string to join.  Trailing\n                      zero decimals are stripped for B{C{prec}} values of 1\n                      and above, but kept for negative B{C{prec}} values.\n\n           @return: Intersectool items (C{str}).\n        '''\n        d = dict(geodesic=self.geodesic, invokation=self.invokation,\n                                         status=self.status,\n                                         IntersectTool=self.IntersectTool)\n        return sep.join(pairs(d, prec=prec))\n\n    def _XDictInvoke(self, alt, _k_sX0, args, _C=False, **_R):\n        '''(INTERNAL) Invoke C{IntersectTool}, return results as C{XDict} or\n           a C{generator} if keyword argument C{B{_R}=sMaX0} is specified.\n        '''\n        # assert len(args) == {self._c_alt: 6,\n        #                      self._i_alt: 8,\n        #                      self._n_alt: 4,\n        #                      self._o_alt: 8}.get(alt, len(args))\n        cmd   = self._cmdBasic\n        Names = self._Names_XDict  # has _c_ always\n        if _k_sX0:\n            Names += _k_sX0,\n        if _C:\n            cmd   += self._C_option\n            Names += self._Names_ABs\n        if _R:\n            cmd   += self._R_option(**_R)\n        X, _R = self._DictInvoke2(cmd + alt, args, Names, XDict, **_R)\n        return X if _R else X.set_(c=int(X.c))  # generator or XDict\n\n\nclass Intersector(_IntersectBase):\n    '''Finder of intersections between two goedesic lines, each an instance of\n       L{GeodesicLineExact<pygeodesy.geodesicx.GeodesicLineExact>}, wrapped\n       L{GeodesicLine<pygeodesy.geodesicw.GeodesicLine>} or\n       L{GeodesicLineSolve<pygeodesy.geodsolve.GeodesicLineSolve>}.\n\n       @see: I{Karney}'s C++ class U{Intersect<https://GeographicLib.SourceForge.io/\n             C++/doc/classGeographicLib_1_1Intersect.html#details>} for more details.\n    '''\n\n    def __init__(self, geodesic, **name):\n        '''New L{Intersector}.\n\n           @arg geodesic: The geodesic (L{GeodesicExact<pygeodesy.geodesicx.GeodesicExact>},\n                          wrapped L{Geodesic<pygeodesy.geodesicw.Geodesic>} or\n                          L{GeodesicLineSolve<pygeodesy.geodsolve.GeodesicLineSolve>}).\n           @kwarg name: Optional C{B{name}=NN} (C{str}).\n\n           @raise GeodesicError: The B{C{geodesic}}'s ellipsoid is too eccentric or no initial convergence.\n\n           @see: The B{Note} at I{Karney}'s C++ U{Intersect<https://GeographicLib.SourceForge.io/\n                 C++/doc/classGeographicLib_1_1Intersect.html#ae41f54c9a44836f6c8f140f6994930cf>}.\n        '''\n        _IntersectBase.__init__(self, geodesic, **name)\n        E  = self.ellipsoid\n        t1 = E.b * PI  # min distance between intersects\n        t2 = self._polarDist2(_90_0)[0] * _2_0  # furthest distance to closest intersect\n        if self.f > 0:\n            t3 = self._obliqDist4()[0]  # half furthest min distance to next intersect\n            t4 = t1  # capture radius for spherical\n        else:  # PYCHOK no cover\n            t1, t2 = t2, t1\n            t3 = self._Inversa12( _90_0)[0] * _2_0  # longest, shortest geodesic\n            t4 = self._polarB3()[0]\n\n        self._D1 = d1 = t2 * _0_5  # ~E.L tile spacing for Closest\n        self._D2 = d2 = t3 / _1_5  # tile spacing for Next\n        self._D3 = d3 = t4 - self.Delta  # tile spacing for All\n        self._T1 = t1  # min distance between intersects\n        self._T2 = t2 = t1 * _2_0\n        if not (d1 < d3 and d2 < d3 and d2 < t2):\n            t = Fmt.PARENSPACED(_too_('eccentric'), E.e)\n            raise GeodesicError(ellipsoid=E.toStr(terse=2), txt=t)\n\n    def All(self, glA, glB, X0=None, aMaX0=0, **sMaX0_C):  # MCCABE 15\n        '''Yield all intersections of two geodesic lines up to a limit.\n\n           @arg glA: A geodesic line (L{Line<Intersector.Line>}).\n           @arg glB: An other geodesic line (L{Line<Intersector.Line>}).\n           @kwarg X0: Optional I{origin} for I{L1-distances} (L{XDict}) or\n                      C{None} for the L{Middle<Intersector.Middle>} of both\n                      lines if both are a 4-C{args} L{Line<Intersector.Line>}\n                      or C{InverseLine}, otherwise C{XDiff_(0, 0)}.\n           @kwarg aMaX0: Upper limit for the I{angular L1-distance}\n                         (C{degrees}) or C{None} or C{0} for unlimited.\n           @kwarg sMaX0_C: Optional, upper limit C{B{sMaX0}=2*PI*R} for the\n                        I{L1-distance} to B{C{X0}} (C{meter}) and option\n                        C{B{_C}=False} to include the intersection lat-/\n                        longitudes C{latA}, C{lonA}, C{latB}, C{lonB} and\n                        distances C{sAB} and C{aSB}.\n\n           @return: Yield an L{XDict} for each intersection found.\n\n           @raise GeodesicError: Geodesic line B{C{glA}} or B{C{glB}}\n                                 invalid, incompatible or ill-configured.\n\n           @raise IntersectionError: No convergence.\n        '''\n        self._xLines(glA, glB)\n        if X0 is None:\n            try:  # determine X0\n                X0, _, _ = self._middle3(glA, glB, True)\n            except GeodesicError:  # no .Distance\n                X0 = _X000\n        sMaX0, _C = self._sMaX0_C2(aMaX0, **sMaX0_C)\n\n        D, _D = self.Delta, self._cHalf  # C++ _d\n        xMaX0 = sMaX0 + D\n        m     = int(_ceil(xMaX0 / self._D3))  # m x m tiles\n        d3    = xMaX0 / m\n        T2d3D = self._T2d3Delta(d3)\n\n        C_ = _List(D)  # closest coincident\n        X_ = _List(D)  # intersections found\n        c0 =  0\n        S_ =  list(X0._nmD3(1 - m, m, d3 * _0_5))\n        # assert len(S_) == m * m + (m - 1) % 2\n        while S_:\n            Q, i = self._Basic2(glA, glB, S_.pop(0))\n            if Q in X_:\n                continue\n            if Q.c:  # coincident intersection # PYCHOK no cover\n                _X0fx =  X0._fixCoincident\n                Q     = _X0fx(Q)  # Q = Q'\n                if c0 and Q in C_:\n                    continue\n                C_.addend(Q)\n                # elimate all existing intersections\n                # on this line (which didn't set c0)\n                c0 = Q.c\n                for j, X in _enumereverse(X_):\n                    if _X0fx(X, c0).L1(Q) <= D:  # X' == Q\n                        X_.pop(j)\n\n                a, s0 = len(X_), Q.sA\n                args  = self._m12_M12_M21(glA, s0)\n                _cjD  = self._conjDist\n                for s in (-_D, _D):\n                    s += s0\n                    sa = 0\n                    while True:\n                        i += 1\n                        sa = _cjD(glA, s + sa, *args) - s0\n                        X  = Q + (sa, sa * c0)\n                        if X_.addend(X, X0.L1(X), i) > xMaX0:\n                            break\n\n            elif c0 and Q in C_:  # Q.c == 0\n                continue\n            else:\n                a = len(X_)\n\n            X_.addend(Q, X0.L1(Q), i + 1)\n            for X in X_[a:]:  # addended Xs\n                X._skip(S_, T2d3D)\n\n        return X_.sorter(sMaX0, self._C, glA, glB, _C=_C)  # generator\n\n    def All5(self, glA, glB, X0=_X000, **aMaX0_sMaX0_C):\n        '''Yield all intersection of two geodesic lines up to a limit.\n\n           @return: Yield an L{Intersector5Tuple}C{(A, B, sAB, aAB, c)}\n                    for each intersection found.\n\n           @see: Methods L{All} for further details.\n        '''\n        for X in self.All(glA, glB, X0=X0, **aMaX0_sMaX0_C):\n            yield self._In5T(glA, glB, X, X)\n\n    def _Basic2(self, glA, glB, S, i=0):\n        '''(INTERNAL) Get a basic solution.\n        '''\n        X = _copy(S)\n        for _ in range(_TRIPS):\n            S  = self._Spherical(glA, glB, X)\n            X += S\n            i += 1\n            if X.c or not (S.L1() > self._Tol):  # or isnan\n                return self._Delto(X), i\n\n        raise IntersectionError(Fmt.no_convergence(S.L1(), self._Tol))\n\n    def _C(self, X, glA, glB, _C=False, _MM=False):\n        # add the C{_C} items to C{X}, if requested.\n        if _C:\n            A = self._Position(glA, X.sA)\n            B = self._Position(glB, X.sB)\n            s, a = self._Inversa12(A, B)\n            X.set_(latA=A.lat2, lonA=A.lon2,\n                   latB=B.lat2, lonB=B.lon2)\n            if _MM:  # in .Middle5\n                X.set_(sMM=s, aMM=a)\n            else:\n                X.set_(sAB=s, aAB=a)\n        return X\n\n    def Closest(self, glA, glB, X0=_X000, **_C):\n        '''Find the closest intersection of two geodesic lines.\n\n           @arg glA: A geodesic line (L{Line<Intersector.Line>}).\n           @arg glB: An other geodesic line (L{Line<Intersector.Line>}).\n           @kwarg X0: Optional I{origin} for I{L1-closeness} (L{XDict}).\n           @kwarg _C: If C{True}, include the lat-/longitudes C{latA},\n                      C{lonA}, C{latB}, C{lonB} and distances C{sAB}\n                      and C{aSB} between the intersections.\n\n           @return: The intersection (L{XDict}) or C{None} if none found.\n\n           @raise GeodesicError: Geodesic line B{C{glA}} or B{C{glB}}\n                                 invalid, incompatible or ill-configured.\n\n           @raise IntersectionError: No convergence.\n        '''\n        self._xLines(glA, glB)\n        Q, d, S_, i = X0, INF, list(X0._nD1(self._D1)), 0\n        while S_:\n            X, i = self._Basic2(glA, glB, S_.pop(0), i)\n            X    = X0._fixCoincident(X)\n            if X.L1(Q) > self.Delta:  # X != Q\n                d0 = X.L1(X0)\n                if d0 < self._T1:\n                    Q, d, q = X, d0, i\n                    break\n                if d0 < d or Q is X0:\n                    Q, d, q = X, d0, i\n                X._skip(S_, self._T2D1Delta)\n\n        return None if Q is X0 else self._C(Q, glA, glB, **_C).set_(sX0=d, iteration=q)\n\n    def Closest5(self, glA, glB, X0=_X000):\n        '''Find the closest intersection of two geodesic lines.\n\n           @return: An L{Intersector5Tuple}C{(A, B, sAB, aAB, c)}\n                    or C{None} if none found.\n\n           @see: Method L{Closest} for further details.\n        '''\n        X = self.Closest(glA, glB, X0=X0)\n        return X if X is None else self._In5T(glA, glB, X, X)\n\n    def _conjDist(self, gl, s, m12=0, M12=1, M21=1, semi=False):\n        # Find semi-/conjugate point relative to s0 which is close to s1.\n        # if semi:\n        #     solve for M23 = 0 using dM23 / ds3 = - (1 - M23 * M32) / m23\n        # else:\n        #     solve for m23 = 0 using dm23 / ds3 = M32\n        _S2, _abs, _1 = Fsum(s).fsum2_, fabs, _1_0\n        for _ in range(_TRIPS):  # 2..3\n            m13, M13, M31 = self._m12_M12_M21(gl, s)\n            # see \"Algorithms for geodesics\", eqs. 31, 32, 33.\n            m23 = m13 * M12\n            M32 = M31 * M12\n            if m12:  # PYCHOK no cover\n                m23 -= m12 * M13\n                if m12 and m13:\n                    M32 += (_1 - M13 * M31) * m12 / m13\n            if semi:\n                M23 = M13 * M21\n                # when m12 -> eps, (1 - M12 * M21) -> eps^2, I suppose.\n                if m12 and m13:\n                    M23 += (_1 - M12 * M21) * m13 / m12\n                d =  m23 * M23 / (_1 - M23 * M32)\n            else:\n                d = -m23 / M32\n            s, d = _S2(d)\n            if _abs(d) <= self._Tol:\n                break\n        return s\n\n    _gl3 = None\n\n    @Property\n    def _conjDist3s(self):\n        gl, self._gl3, _D = self._gl3, None, self._cHalf\n        return tuple(self._conjDist(gl, s) for s in (-_D, 0, _D))\n\n    @_conjDist3s.setter  # PYCHOK setter!\n    def _conjDist3(self, gl):\n        # _XLines(gl, gl)\n        self._gl3 = gl\n\n    def _conjDist3Tt_(self, c, X0=_X000):\n        for s in self._conjDist3s:\n            T = XDict_(s, s * c, c)\n            yield self._Delto(T), T.L1(X0)\n\n    def _conjDist5(self, azi):\n        gl   = self._Line(azi1=azi)\n        s    = self._conjDist(gl, self._cHalf)\n        X, _ = self._Basic2(gl, gl, XDict_(s * _0_5, -s * _1_5))\n        return s, (X.L1() - s * _2_0), azi, X.sA, X.sB\n\n    @Property_RO\n    def Delta(self):\n        '''Get the equality and tiling margin (C{meter}).\n        '''\n        return self._cHalf * _EPSr5  # ~15 Km WGS84\n\n    def _Delto(self, X):\n        # copy Delta into X, overriding X's default\n        X._Delta = self.Delta  # NOT X.set_(self.Delta)\n        return X\n\n    @Property_RO\n    def _EPS3R(self):\n        return _EPS3 * self.R\n\n    @Property_RO\n    def _faPI_4(self):\n        return (self.f + _2_0) * self.a * PI_4\n\n    @Property_RO\n    def _GeodesicLine(self):\n        '''(INTERNAL) Get the C{GeodesicLine} class (C{GeodesicLineExact, GeodesicLineSolve or ...}).\n        '''\n        return type(self._Line()),  # as *args tuple\n\n    def _In5T(self, glA, glB, S, X, k2=False, **_2X):\n        # Return an intersection as C{Intersector5Tuple}.\n        A = self._Position(glA, S.sA)\n        B = self._Position(glB, S.sB)\n        if k2:\n            A.set_(k2=X.kA)\n            B.set_(k2=X.kB)\n        s, a = self._Inversa12(A, B)\n        return Intersector5Tuple(A._2X(glA, **_2X),\n                                 B._2X(glB, **_2X), s, a, X.c, iteration=X.iteration)\n\n    def _Inverse(self, A, B):  # caps=Caps.STANDARD\n        return self._g.Inverse(A.lat2, A.lon2, B.lat2, B.lon2)\n\n    def Line(self, lat1, lon1, azi1_lat2, *lon2, **name):\n        '''Return a geodesic line from this C{Intersector}'s geodesic, specified by\n           two points or a point and an azimuth (bearing from North).\n\n           @arg lat1: Latitude of the first point (C{degrees}).\n           @arg lon1: Longitude of the first point (C{degrees}).\n           @arg azi1_lat2: Azimuth at the first point (compass C{degrees}) if no\n                          B{C{lon2}} argument is given, otherwise the latitude of\n                          the second point (C{degrees}).\n           @arg lon2: If given, the longitude of the second point (C{degrees}).\n           @kwarg name: Optional C{B{name}=NN} (C{str}).\n\n           @return: A line (from L{geodesic<Intersector.geodesic>}C{.Line} or\n                    C{.InverseLine} method) with C{LINE_CAPS}.\n        '''\n        args =  self._ll3z4ll(lat1, lon1, azi1_lat2, *lon2)\n        kwds = _xkwds(name, caps=Caps.LINE_CAPS)\n        return self._g.InverseLine(*args, **kwds) if lon2 else \\\n               self._g.Line(       *args, **kwds)\n\n    def _Line(self, lat1=0, lon1=0, azi1=0):\n        return self._g.Line(lat1, lon1, azi1, caps=Caps.LINE_CAPS)\n\n    def Middle(self, glA, glB, raiser=True, **_C):\n        '''Get the mid-points on two geodesic line segments.\n\n           @arg glA: A geodesic line (L{Line<Intersector.Line>}, 4-C{args}).\n           @arg glB: An other geodesic line (L{Line<Intersector.Line>}, 4-C{args}).\n           @kwarg raiser: If C{True}, check that B{C{glA}} and B{C{glB}} are a\n                          4-C{args} L{Line<Intersector.Line>} or C{InverseLine}\n                          (C{bool}).\n           @kwarg _C: If C{True}, include the lat-/longitudes C{latA}, C{lonA},\n                      C{latB}, C{lonB} of the mid-points and half-lengths C{sA}\n                      and C{sB} in C{meter} of the respective line segments.\n\n           @return: The mid-point and half-length of each segment (L{XDict}),\n                    B{C{_C}} above.\n\n           @raise GeodesicError: Geodesic line B{C{glA}} or B{C{glB}} invalid,\n                                 incompatible, ill-configured or not a 4-C{args\n                                 Line} or other C{InverseLine}.\n        '''\n        M, _, _ = self._middle3(glA, glB, raiser)\n        return self._C(M, glA, glB, **_C) if _C else M\n\n    def _middle3(self, glA, glB, raiser):  # in .All, .Segment\n        # return segment length C{sA} and C{sB} and the\n        # center C{X0} of rectangle [sA, sB]\n        self._xLines(glA, glB, s13=raiser)  # need .Arc, .Distance\n        sA = glA.Distance()\n        sB = glB.Distance()\n        X  = XDict_(sA * _0_5, sB * _0_5)\n        # _ = X._outSide(sA, sB)\n        return self._Delto(X), sA, sB\n\n    def Middle5(self, glA, glB, raiser=True):\n        '''Get the mid-points of two geodesic line segments and distances.\n\n           @return: A L{Middle5Tuple}C{(A, B, sMM, aMM, c)}.\n\n           @see: Method L{Middle} for further details.\n        '''\n        M, _, _ = self._middle3(glA, glB, raiser)\n        M  = self._C(M, glA, glB, _C=True, _MM=True)\n        A, B, s, a, c = self._In5T(glA, glB, M, M, _2X=_M_)\n        return Middle5Tuple(self._illz2G(A, glA),\n                            self._illz2G(B, glB), s, a, c)\n\n    def _m12_M12_M21(self, gl, s):\n        P = gl.Position(s, outmask=Caps._REDUCEDLENGTH_GEODESICSCALE)\n        return P.m12, P.M12, P.M21\n\n    def Next(self, glA, glB, eps1=None, **_C):  # PYCHOK no cover\n        '''Yield the next intersection of two I{intersecting} geodesic lines.\n\n           @arg glA: A geodesic line (L{Line<Intersector.Line>}).\n           @arg glB: An other geodesic line (L{Line<Intersector.Line>}).\n           @kwarg eps1: Optional margin for the L{euclid<pygeodesy.euclid>}ean\n                        distance (C{degrees}) between the C{(lat1, lon1)} points\n                        of both lines or C{None} for unchecked.\n           @kwarg _C: If C{True}, include the lat-/longitudes C{latA}, C{lonA},\n                      C{latB}, C{lonB} of and distances C{sAB} and C{aSB}\n                      between the intersections.\n\n           @return: The intersection (L{XDict}) or C{None} if none found.\n\n           @raise GeodesicError: Geodesic line B{C{glA}} or B{C{glB}} invalid,\n                                 incompatible, ill-configured or C{(lat1, lon1)}\n                                 not B{C{eps1}}-equal.\n\n           @raise IntersectionError: No convergence.\n\n           @note: Offset C{X0} is implicit, zeros.\n        '''\n        self._xLines(glA, glB)\n        if eps1 or _C:  # eps\n            _C = self._xNext(glA, glB, eps1, **_C)\n\n        X0, self._conjDist3s = _X000, glA  # reset Property\n        Q, d, S_, i = _XINF, INF, list(X0._nD2(self._D2)), 0\n        while S_:\n            X, i = self._Basic2(glA, glB, S_.pop(0), i)\n            X    = X0._fixCoincident(X)\n            t    = X.L1(X0)  # == X.L1()\n            c, z = X.c, (t <= self.Delta)  # X == X0\n            if z:\n                if not c:\n                    continue\n                Tt_ = self._conjDist3Tt_(c, X0)\n            else:\n                Tt_ = (X, t),\n\n            for T, t in Tt_:\n                if t < d or Q is _XINF:\n                    Q, d, q = T, t, i\n                i += 1\n\n            for s in ((_1_1t if z else _1_0_1t)\n                             if c else _0t):\n                T = X\n                if s and c:\n                    s *= self._D2\n                    T  = X + (s, s * c)  # NOT +=\n                T._skip(S_, self._T2D2Delta)\n\n        return None if Q is _XINF else self._C(Q, glA, glB, **_C).set_(sX0=d, iteration=q)\n\n    def Next5(self, glA, glB, **eps1):  # PYCHOK no cover\n        '''Yield the next intersection of two I{intersecting} geodesic lines.\n\n           @return: An L{Intersector5Tuple}C{(A, B, sAB, aAB, c)} or C{None}\n                    if none found.\n\n           @see: Method L{Next} for further details.\n        '''\n        X = self.Next(glA, glB, **eps1)\n        return X if X is None else self._In5T(glA, glB, X, X)\n\n    def _obliqDist4(self):\n        zx = _45_0\n        if self.f:\n            _abs, _cjD5 = fabs, self._conjDist5\n\n            _,  ds0, z0, _,   _   = _cjD5(zx + _1_0)\n            s1, ds1, z1, sAx, sBx = _cjD5(zx - _1_0)\n            sx, dsx, zx = s1, _abs(ds1), z1\n            # find ds(azi) = 0 by secant method\n            for _ in range(16):\n                if ds1 == ds0:\n                    break\n                z = (z0 * ds1 - z1 * ds0) / (ds1 - ds0)\n                _,  ds0, z0 = s1, ds1, z1\n                s1, ds1, z1, a, b = _cjD5(z)\n                if _abs(ds1) < dsx:\n                    sx, dsx, zx, sAx, sBx = s1, _abs(ds1), z, a, b\n                    if not dsx:\n                        break\n        else:\n            sx, sAx, sBx = self._cHalf, _0_5, -_1_5\n        return sx, zx, sAx, sBx\n\n    def _polarB3(self, lats=False):  # PYCHOK no cover\n        latx = _64_0\n        lat  = _90_0 - latx\n        if self.f:\n            _d, _pD2 =  fdot, self._polarDist2\n\n            s0, lat0 = _pD2(latx - _1_0)\n            s1, lat1 = _pD2(latx + _1_0)\n            s2, lat2 = \\\n            sx, latx = _pD2(latx)\n            # solve for ds(lat) / dlat = 0 with a quadratic fit\n            for _ in range(8):  # 1..2\n                t = (lat1 - lat0), (lat0 - lat2), (lat2 - lat1)\n                d = _d(t, s2, s1, s0) * _2_0\n                if not (d > 0 or d < 0):  # d == 0 or isnan(d)\n                    break\n                lat = _d(t, (lat1 + lat0) * s2,\n                            (lat0 + lat2) * s1,\n                            (lat2 + lat1) * s0) / d\n                s0, lat0 =  s1, lat1\n                s1, lat1 =  s2, lat2\n                s2, lat2 = _pD2(lat)\n                if (s2 < sx) if self.f < 0 else (s2 > sx):\n                    sx, latx = s2, lat2\n            if lats:\n                _, lat = _pD2(latx, lat2=True)\n            sx += sx\n        else:\n            sx  = self._cHalf\n        return sx, latx, lat\n\n    def _polarDist2(self, lat1, lat2=False):\n        gl = self._Line(lat1=lat1)\n        s  = self._conjDist(gl, self._faPI_4, semi=True)\n        if lat2:\n            lat1 = gl.Position(s, outmask=Caps.LATITUDE).lat2\n        return s, lat1\n\n    def _Position(self, gl, s):\n        return gl.Position(s, outmask=Caps.STANDARD_LINE)\n\n    def Segment(self, glA, glB, proven=None, raiser=True, **_C):\n        '''Find the intersection between two geodesic line segments.\n\n           @kwarg proven: Conjecture is that whenever two geodesic line\n                          segments intersect, the intersection is the\n                          one closest to the mid-points of segments.\n                          If so, use C{B{proven}=True}, otherwise find\n                          intersections on the segments and specify\n                          C{B{proven}=None} to return the first or\n                          C{B{proven}=False} the closest (C{bool}).\n           @kwarg raiser: If C{True}, check that B{C{glA}} and B{C{glB}}\n                          are a 4-C{args} L{Line<Intersector.Line>} or\n                          C{InverseLine} (C{bool}).\n           @kwarg _C: If C{True}, include the lat-/longitudes C{latA},\n                      C{lonA}, C{latB}, C{lonB} of and distances C{sAB}\n                      and C{aSB} between the intersections.\n\n           @return: The intersection of the segments (L{XDict}) with\n                    indicators C{kA}, C{kB} and C{k} set or if no\n                    intersection is found, C{None}.\n\n           @raise GeodesicError: Geodesic line B{C{glA}} or B{C{glB}}\n                                 invalid, incompatible, ill-configured or\n                                 not an C{InverseLine} or 4-C{args Line}.\n\n           @raise IntersectionError: No convergence.\n\n           @see: Method L{Middle<Intersector.Middle>} for further details.\n        '''\n        X0, sA, sB = self._middle3(glA, glB, raiser)\n        Q = self.Closest(glA, glB, X0)  # to X0\n        if Q is not None:\n            if Q.c:  # anti-/parallel\n                Q._fixSegment(sA, sB)\n            # are rectangle [sA, sB] corners further from X0 than Q?\n            d0 = X0.L1(Q)\n            if Q._outSide(sA, sB) and d0 <= X0.L1() and not proven:\n                i = Q.iteration\n                for T in Q._corners(sA, sB, self._T2):\n                    X, i = self._Basic2(glA, glB, T, i)\n                    X    = T._fixCoincident(X)\n                    if not X._outSide(sA, sB):\n                        d = X0.L1(X)\n                        if d < d0 or proven is None:\n                            Q, d0 = X, d\n                            if proven is None:\n                                break\n                Q.set_(iteration=i)\n\n            Q = self._C(Q, glA, glB, **_C).set_(sX0=d0)\n        return Q\n\n    def Segment5(self, glA, glB, **proven_raiser):\n        '''Find the intersection between two geodesic line segments.\n\n           @return: An L{Intersector5Tuple}C{(A, B, sAB, aAB, c)}\n                    or C{None} if none found.\n\n           @see: Method L{Segment} for further details.\n        '''\n        X = self.Segment(glA, glB, **proven_raiser)\n        return X if X is None else self._In5T(glA, glB, X, X, k2=True)\n\n    def _Spherical(self, glA, glB, S):\n        '''(INTERNAL) Get solution based from a spherical triangle.\n        '''\n        # threshold for coincident geodesics/intersections ~4.3 nm WGS84.\n        A = self._Position(glA, S.sA)\n        B = self._Position(glB, S.sB)\n        D = self._Inverse(A, B)\n\n        a, da = _diff182(A.azi2, D.azi1)  # interior angle at A\n        b, db = _diff182(B.azi2, D.azi2)  # exterior angle at B\n        c, dc = _diff182(a, b)\n        if fsum1_(dc, db, -da, c) < 0:  # inverted triangle\n            a, da = -a, -da\n            b, db = -b, -db\n        sa, ca = _sincos2de(a, da)\n        sb, cb = _sincos2de(b, db)\n\n        e, z, _abs = _EPS3, D.s12, fabs\n        if _abs(z) <= self._EPS3R:  # XXX z <= ...\n            sA = sB = 0  # at intersection\n            c  = 1 if _abs(sa - sb) <= e and _abs(ca - cb) <= e else (\n                -1 if _abs(sa + sb) <= e and _abs(ca + cb) <= e else 0)\n        elif _abs(sa) <= e and _abs(sb) <= e:  # coincident\n            sA =  ca * z * _0_5  # choose mid-point\n            sB = -cb * z * _0_5\n            c  =  1 if (ca * cb) > 0 else -1\n            # alt1: sA =  ca * z; sB = 0\n            # alt2: sB = -cb * z; sA = 0\n        else:  # general case\n            sz, cz = sincos2(z / self.R)\n            # [SKIP: Divide args by |sz| to avoid possible underflow\n            # in {sa, sb} * sz; this is probably not necessary].\n            # Definitely need to treat sz < 0 (z > PI*R) correctly in\n            # order to avoid some convergence failures in _Basic2.\n            sA = atan2(sb * sz,  sb * ca * cz - sa * cb) * self.R\n            sB = atan2(sa * sz, -sa * cb * cz + sb * ca) * self.R\n            c  = 0\n        return XDict_(sA, sB, c)  # no ._Delto\n\n    @Property_RO\n    def _T2D1Delta(self):\n        return self._T2d3Delta(self._D1)\n\n    @Property_RO\n    def _T2D2Delta(self):\n        return self._T2d3Delta(self._D2)\n\n    def _T2d3Delta(self, d3):\n        return self._T2 - d3 - self.Delta\n\n    @Property_RO\n    def _Tol(self):  # convergence tolerance\n        return self._cHalf * _EPSjam\n\n    def toStr(self, **prec_sep_name):  # PYCHOK signature\n        '''Return this C{Intersector} as string.\n\n           @see: L{Ellipsoid.toStr<pygeodesy.ellipsoids.Ellipsoid.toStr>}\n                 for further details.\n\n           @return: C{Intersector} (C{str}).\n        '''\n        return self._instr(props=(Intersector.geodesic,), **prec_sep_name)\n\n    def _xLines(self, glA, glB, s13=False):\n        # check two geodesic lines vs this geodesic\n        gls, C = dict(glA=glA, glB=glB), Caps.LINE_CAPS\n        _xinstanceof(*self._GeodesicLine, **gls)\n        for n, gl in gls.items():\n            try:\n                _xgeodesics(gl.geodesic, self.geodesic)\n                if s13 and not isfinite(gl.s13):  # or not gl.caps & Caps.DISTANCE_IN\n                    t = _an(typename(gl.geodesic.InverseLine))\n                    raise TypeError(_not_(t))\n                c = gl.caps & C\n                if c != C:  # not gl.caps_(C)\n                    c, C, x = map1(bin, c, C, _xor(c, C))\n                    t = _SPACE_(typename(_xor), repr(x))[1:]\n                    raise GeodesicError(caps=c, LINE_CAPS=C, txt=t)\n            except Exception as x:\n                raise GeodesicError(n, gl, cause=x)\n\n\nclass Intersect7Tuple(_NamedTuple):\n    '''7-Tuple C{(A, B, sAB, aAB, c, kA, kB)} with C{A} and C{B} each\n       a C{LatLon} or L{LatLon4Tuple}C{(lat, lon, height, datum)} of\n       the intersection on each geodesic line, the distance C{sAB} in\n       in C{meter} and angular distance C{aAB} in C{degrees} between\n       C{A} and C{B}, coincidence indicator C{c} and segment indicators\n       C{kA} and C{kB} all C{int}, see L{XDict} and method U{intersect7\n       <_IntersectBase.intersect7>}.\n    '''\n    _Names_ = (_A_,   _B_,  _sAB_, _aAB_,   _c_, 'kA', 'kB')\n    _Units_ = (_Pass, _Pass, Meter, Degrees, Int, Int,  Int)\n\n\nclass Intersectool5Tuple(_NamedTuple):\n    '''5-Tuple C{(A, B, sAB, aAB, c)} with C{A} and C{B} the C{Position}\n       of the intersection on each geodesic line, the distance C{sAB}\n       between C{A} and C{B} in C{meter}, the angular distance C{aAB} in\n       C{degrees} and coincidence indicator C{c} (C{int}), see L{XDict}.\n\n       @note: C{A} and C{B} are each a C{GDict} with C{lat1}, C{lon1} and\n              C{azi1} or C{lat2}, C{lon2} from the geodesic line C{glA}\n              respectively C{glB} and the intersection location in C{latX},\n              C{lonX}, distance C{s1X} in C{meter} and angular distance\n              C{a1X} in C{degrees} and the segment indicator C{kX}.  See\n              L{XDict} for more details.\n    '''\n    _Names_ = Intersect7Tuple._Names_[:5]\n    _Units_ = Intersect7Tuple._Units_[:5]\n\n\nclass Intersector5Tuple(Intersectool5Tuple):\n    '''5-Tuple C{(A, B, sAB, aAB, c)} with C{A} and C{B} the C{Position}\n       of the intersection on each geodesic line, the distance C{sAB}\n       between C{A} and C{B} in C{meter}, angular distance C{aAB} in\n       C{degrees} and coincidence indicator C{c} (C{int}), see L{XDict}.\n\n       @note: C{A} and C{B} are each a C{GeodesicLine...Position} for\n              C{outmask=Caps.STANDARD} with the intersection location in\n              C{latX}, C{lonX}, azimuth in C{aziX}, distance C{s1X} in\n              C{meter} and angular distance C{a1X} in C{degrees} and the\n              segment indicator C{kX}.  See L{XDict} for more details.\n    '''\n    _Names_ = Intersectool5Tuple._Names_\n#   _Units_ = Intersectool5Tuple._Units_\n\n\nclass Middle5Tuple(Intersectool5Tuple):\n    '''5-Tuple C{(A, B, sMM, aMM, c)} with C{A} and C{B} the I{line segments}\n       including the mid-point location in C{latM}, C{lonM}, distance C{s1M}\n       in C{meter} and angular distance C{a1M} in C{degrees}, the distance\n       between both mid-points C{sMM} in C{meter} and angular distance C{aMM}\n       in C{degrees} and coincidence indicator C{c} (C{int}).  See L{XDict}\n       for more details.\n    '''\n    _Names_ = (_A_, _B_, 'sMM', 'aMM', _c_)\n#   _Units_ = Intersectool5Tuple._Units_\n\n\nclass _List(list):\n\n    _Delta = 0  # equality margin\n\n    def __init__(self, Delta):\n        self._Delta = Delta\n#       list.__init__(self)\n\n    def __contains__(self, other):\n        # handle C{if X in this: ...}\n        a,  b  = other.sA, other.sB\n        D, _D1 = self._Delta, _L1\n        for X in self:\n            if _D1(X.sA - a, X.sB - b) <= D:\n                return True\n        return False\n\n    def addend(self, X, *d0_i):\n        # append an item, updated\n        if d0_i:\n            d0, i = d0_i\n            X.set_(sX0=d0, iteration=i)\n        self.append(X)\n        return X.sX0\n\n    def sorter(self, sMaX0, dot_C, glA, glB, **_C):\n        # trim and sort the X items\n\n        def _key(X):\n            return X.sX0  # rank of X\n\n        t = (X for X in self if X.sX0 <= sMaX0)\n        for X in sorted(t, key=_key):\n            yield dot_C(X, glA, glB, **_C) if _C else X\n\n\ndef _L1(a, b):\n    '''(INTERNAL) Return the I{L1} distance.\n    '''\n    return fabs(a) + fabs(b)\n\n\n__all__ += _ALL_DOCS(_IntersectBase)\n\nif __name__ == _DMAIN_:  # MCCABE 36\n\n    from pygeodesy import printf\n    __help_ = '--help'\n\n    def _main(args):\n\n        from pygeodesy import Float, GeodesicExact\n        from pygeodesy.internals import _plural, _usage\n        from pygeodesy.interns import _COLONSPACE_, _DOT_, _EQUAL_, \\\n                                      _i_, _m_, _n_, _version_, _X_\n        import re\n\n        class XY0(Float):\n            pass\n\n        def _opts(_h):  # for _usage()\n            ll4  = ' latA1 lonA1'\n            ll4 += ll4.replace('1', '2')\n            ll4 += ll4.replace(_A_, _B_)\n            llz  = _SPACE_(NN, _latA_, _lonA_, 'aziA')\n            llz2 =  llz + llz.replace(_A_, _B_)\n            return dict(opts='-Verbose|V--version|v--help|h--Tool|T--Check|C-R <meter>-',\n                        alts=((_c_ + llz2),\n                              (_i_ + ll4),\n                              (_m_ + ll4),\n                              (_n_ + llz  + ' aziB'),\n                              ('o' + llz2 + ' x0 y0')),\n                        help=_h if isinstance(_h, str) else NN)\n\n        def _starts(Opt, arg):\n            return arg == Opt[1:3] or (len(arg) > 2 and Opt.startswith(arg))\n\n        _isopt = re.compile('^[-]+[a-z]*$', flags=re.IGNORECASE).match\n\n        I  =  Intersector(GeodesicExact())  # noqa: E741 I is eye\n        M  =  m = _R =  None\n        _T = _V = _h = _C = False\n\n        while args and _isopt(args[0]):\n            arg = args.pop(0)\n            if arg == _c__:\n                M, m = I.Closest, 6  # latA lonA aziA  latB lonB aziB\n            elif _starts('--Check', arg):\n                _C = True\n            elif _starts(__help_, arg):\n                _h = args[0] if args and _isopt(args[0]) else True\n            elif arg == _i__:\n                M, m = I.Segment, 8  # latA1 lonA1  latA2 lonA2  latB1 lonB1  latB2 lonB2\n            elif arg == '-m':\n                M, m = I.Middle,  8  # latA1 lonA1  latA2 lonA2  latB1 lonB1  latB2 lonB2\n                _R = None  # zap -R\n            elif arg == _n__:\n                M, m = I.Next, 4  # latA lonA aziA  aziB\n            elif arg == _o__:\n                M, m = I.Closest, 8  # latA lonA aziA  latB lonB aziB  x0 y0\n            elif arg == _R__ and args:\n                _R = args.pop(0)\n            elif _starts('--Tool', arg):\n                I = Intersectool()  # noqa: E741 I is eye\n                if _V:\n                    I.verbose = True\n                if not _Xables.X_OK(I.IntersectTool):\n                    I.IntersectTool = _Xables.IntersectTool(_Xables.bin_)\n                elif _V:\n                    _ = I.version\n                M, _T = None, True\n            elif _starts('--Verbose', arg):\n                _V = True\n                if _T:\n                    I.verbose = True\n            elif _starts('--version', arg):\n                printf(_COLONSPACE_(*((_version_, I.version) if _T else\n                                      (__version__, repr(I)))))\n            else:\n                raise ValueError('invalid option %r' % (arg,))\n\n        if _h or M is None:\n            printf(_usage(__file__, **_opts(_h)), nl=1)\n        else:\n            n = len(args)\n            if n < m:\n                n = _plural('only %s arg' % (n,), n) if n else 'no args'\n                raise ValueError('%s, need %s' % (n, m))\n            args[:] = args[:m]\n\n            kwds = dict(_C=True) if _C else {}\n            if M == I.Next:  # -n\n                # get latA lonA aziA latA lonA aziB\n                args[3:] = args[:2] + args[3:4]\n            elif M == I.Closest and m > 6:  # -o\n                y0 = Meter(y0=args.pop())\n                x0 = Meter(x0=args.pop())\n                kwds.update(X0=XDict_(x0, y0))\n            if _R:\n                m = Meter_(_R, name=_R__, low=0)\n                kwds.update(sMaX0=m)\n                M = I.All\n\n            n   = len(args) // 2\n            glA = I.Line(*args[:n])\n            glB = I.Line(*args[n:])\n\n            m = _DOT_(*map1(typename, type(I), M))\n            if _V:\n                X = _SPACE_(_X_, _EQUAL_, m)\n                printf(unstr(X, glA, glB, **kwds))\n\n            X = M(glA, glB, **kwds)\n            if X is None or isinstance(X, (XDict, tuple)):\n                printf(_COLONSPACE_(m, repr(X)))\n            else:\n                for i, X in enumerate(X):\n                    printf(_COLONSPACE_(Fmt.INDEX(m, i), repr(X)))\n\n    def _examples():\n\n        from pygeodesy.internals import _usage_argv\n\n        s = _SPACE_(*_usage_argv(__file__))\n        for t in ('-h', '-h -n',\n                  '-c 0 0 45  40 10 135',\n                  '-C -c 0 0 45  40 10 135',\n                  '-T -R 2.6e7 -c 0 0 45  40 10 135',\n                  '-c 50 -4 -147.7  0 0 90',\n                  '-C -c 50 -4 -147.7  0 0 90',\n                  '# % echo 0 0  10 10  50 -4  50S 4W | IntersectTool -i  -p 0  -C',\n                  '# -631414 5988887 0 -3',\n                  '# -4.05187 -4.00000 -4.05187 -4.00000 0',\n                  '-m 0 0  10 10  50 -4  50S 4W',\n                  '-C -m 0 0  10 10  50 -4  50S 4W',\n                  '-i 0 0  10 10  50 -4  50S 4W',\n                  '-T -i 0 0  10 10  50 -4  50S 4W',\n                  '-C -i 0 0  10 10  50 -4  50S 4W',\n                  '-T -C -i 0 0  10 10  50 -4  50S 4W',\n                  '-V -T -i 0 0  10 10  50 -4  -50 -4',\n                  '-C -R 4e7 -c 50 -4 -147.7  0 0 90',\n                  '-T -C -R 4e7 -c 50 -4 -147.7  0 0 90',\n                  '-R 4e7 -i 0 0  10 10  50 -4  -50 -4',\n                  '-T -R 4e7 -i 0 0  10 10  50 -4  -50 -4'):\n            if t.startswith(_HASH_):\n                printf(t, nl=int(t[2] == '%'))\n            else:\n                printf(_SPACE_(_HASH_, s, t), nl=1)\n                argv[1:] = t = t.split()\n                _main(t)\n\n    from sys import argv, stderr\n    try:\n        if len(argv) == 2 and argv[1] == __help_:\n            _examples()\n        else:\n            _main(argv[1:])\n\n    except Exception as x:\n        x = _SPACE_(x, NN, _HASH_, *argv)\n        printf(x, file=stderr, nl=1)\n        if '-V' in x or _MODS.errors.exception_chaining():\n            raise\n        exit(1)\n\n\n# % env PYGEODESY_INTERSECTTOOL=<path-to-IntersectTool> python3 -m pygeodesy.geodesici --help\n\n# % python3 -m pygeodesy.geodesici -h\n#\n# usage: python3 -m ....pygeodesy.geodesici [--Verbose | -V] [--version | -v] [--help | -h] [--Tool | -T] [--Check | -C] [-R meter]\n#                                           [-c latA lonA aziA latB lonB aziB |\n#                                            -i latA1 lonA1 latA2 lonA2 latB1 lonB1 latB2 lonB2 |\n#                                            -m latA1 lonA1 latA2 lonA2 latB1 lonB1 latB2 lonB2 |\n#                                            -n latA lonA aziA aziB |\n#                                            -o latA lonA aziA latB lonB aziB x0 y0]\n\n# % python3 -m ....pygeodesy.geodesici -h -n\n#\n# usage: python3 -m ....pygeodesy.geodesici -n latA lonA aziA aziB\n\n# % python3 -m ....pygeodesy.geodesici -c 0 0 45  40 10 135\n# Intersector.Closest: XDict(c=0, sA=3862290.547855, sB=2339969.547699, sX0=6202260.095554)\n\n# % python3 -m ....pygeodesy.geodesici -C -c 0 0 45  40 10 135\n# Intersector.Closest: XDict(aAB=0.0, c=0, latA=23.875306, latB=23.875306, lonA=26.094096, lonB=26.094096, sA=3862290.547855, sAB=0.0, sB=2339969.547699, sX0=6202260.095554)\n\n# % env PYGEODESY_INTERSECTTOOL=...python3 -m ....pygeodesy.geodesici -T -R 2.6e7 -c 0 0 45  40 10 135\n# Intersectool.All[0]: XDict(c=0, sA=3862290.547855, sB=2339969.547699, sX0=6202260.095554)\n\n# % python3 -m ....pygeodesy.geodesici -c 50 -4 -147.7  0 0 90\n# Intersector.Closest: XDict(c=0, sA=6058048.653081, sB=-3311252.995823, sX0=9369301.648903)\n\n# % python3 -m ....pygeodesy.geodesici -C -c 50 -4 -147.7  0 0 90\n# Intersector.Closest: XDict(aAB=0.0, c=0, latA=0.0, latB=-0.0, lonA=-29.745492, lonB=-29.745492, sA=6058048.653081, sAB=0.0, sB=-3311252.995823, sX0=9369301.648903)\n\n# % echo 0 0  10 10  50 -4  50S 4W | IntersectTool -i  -p 0  -C\n# -631414 5988887 0 -3\n# -4.05187 -4.00000 -4.05187 -4.00000 0\n\n# % python3 -m ....pygeodesy.geodesici -m 0 0  10 10  50 -4  50S 4W\n# Intersector.Middle: XDict(c=0, sA=782554.549609, sB=5536835.161499, sX0=0.0)\n\n# % python3 -m ....pygeodesy.geodesici -C -m 0 0  10 10  50 -4  50S 4W\n# Intersector.Middle: XDict(aAB=10.262308, c=0, latA=5.019509, latB=0.036282, lonA=4.961883, lonB=-4.0, sA=782554.549609, sAB=1138574.546746, sB=5536835.161499, sX0=0.0)\n\n# % python3 -m ....pygeodesy.geodesici -i 0 0  10 10  50 -4  50S 4W\n# Intersector.Segment: XDict(c=0, k=-3, kA=-1, kB=0, sA=-631414.26877, sB=5988887.278435, sX0=1866020.935315)\n\n# % env PYGEODESY_INTERSECTTOOL=... python3 -m ....pygeodesy.geodesici -T -i 0 0  10 10  50 -4  50S 4W\n# Intersectool.Segment: XDict(c=0, k=-3, kA=-1, kB=0, sA=-631414.26877, sB=5988887.278435)\n\n# % python3 -m ....pygeodesy.geodesici -C -i 0 0  10 10  50 -4  50S 4W\n# Intersector.Segment: XDict(aAB=0.0, c=0, k=-3, kA=-1, kB=0, latA=-4.051871, latB=-4.051871, lonA=-4.0, lonB=-4.0, sA=-631414.26877, sAB=0.0, sB=5988887.278435, sX0=1866020.935315)\n\n# % env PYGEODESY_INTERSECTTOOL=... python3 -m ....pygeodesy.geodesici -T -C -i 0 0  10 10  50 -4  50S 4W\n# Intersectool.Segment: XDict(c=0, k=-3, kA=-1, kB=0, latA=-4.051871, latB=-4.051871, lonA=-4.0, lonB=-4.0, sA=-631414.26877, sAB=0.0, sB=5988887.278435)\n\n# % env PYGEODESY_INTERSECTTOOL=... python3 -m ....pygeodesy.geodesici -V -T -i 0 0  10 10  50 -4  -50 -4\n# Intersectool@1: /opt/local/bin/IntersectTool --version (invoke)\n# Intersectool@1: '/opt/local/bin/IntersectTool: GeographicLib version 2.3' (0)\n# Intersectool@1: /opt/local/bin/IntersectTool: GeographicLib version 2.3 (0)\n# X = Intersectool.Segment(GDict(lat1=0.0, lat2=10.0, lon1=0.0, lon2=10.0), GDict(lat1=50.0, lat2=-50.0, lon1=-4.0, lon2=-4.0))\n# Intersectool@2: /opt/local/bin/IntersectTool -E -p 10 -i \\ 0.0 0.0 10.0 10.0 50.0 -4.0 -50.0 -4.0 (Segment)\n# Intersectool@2: '-631414.2687702414 5988887.2784352796 0 -3' (0)\n# Intersectool@2: sA=-631414.2687702414, sB=5988887.2784352796, c=0, k=-3 (0)\n# Intersectool.Segment: XDict(c=0, k=-3, kA=-1, kB=0, sA=-631414.26877, sB=5988887.278435)\n\n# % python3 -m ....pygeodesy.geodesici -C -R 4e7 -c 50 -4 -147.7  0 0 90\n# Intersector.All[0]: XDict(aAB=0.0, c=0, latA=0.0, latB=-0.0, lonA=-29.745492, lonB=-29.745492, sA=6058048.653081, sAB=0.0, sB=-3311252.995823, sX0=9369301.648903)\n# Intersector.All[1]: XDict(aAB=0.0, c=0, latA=0.0, latB=0.0, lonA=150.046964, lonB=150.046964, sA=-13941907.021445, sAB=0.0, sB=16703151.659744, sX0=30645058.681189)\n# Intersector.All[2]: XDict(aAB=0.0, c=0, latA=-0.0, latB=-0.0, lonA=-30.16058, lonB=-30.16058, sA=-33941862.69597, sAB=0.0, sB=-3357460.370268, sX0=37299323.066238)\n# Intersector.All[3]: XDict(aAB=0.0, c=0, latA=-0.0, latB=0.0, lonA=150.046964, lonB=150.046964, sA=-13941907.021445, sAB=0.0, sB=-23371865.025835, sX0=37313772.047279)\n\n# % env PYGEODESY_INTERSECTTOOL=... python3 -m ....pygeodesy.geodesici -T -C -R 4e7 -c 50 -4 -147.7  0 0 90\n# Intersectool.All[0]: XDict(c=0, latA=-0.0, latB=-0.0, lonA=-29.745492, lonB=-29.745492, sA=6058048.653081, sAB=0.0, sB=-3311252.995823, sX0=9369301.648903)\n# Intersectool.All[1]: XDict(c=0, latA=0.0, latB=0.0, lonA=150.046964, lonB=150.046964, sA=-13941907.021445, sAB=0.0, sB=16703151.659744, sX0=30645058.681189)\n# Intersectool.All[2]: XDict(c=0, latA=-0.0, latB=-0.0, lonA=-30.16058, lonB=-30.16058, sA=-33941862.69597, sAB=0.0, sB=-3357460.370268, sX0=37299323.066238)\n# Intersectool.All[3]: XDict(c=0, latA=-0.0, latB=0.0, lonA=150.046964, lonB=150.046964, sA=-13941907.021445, sAB=0.0, sB=-23371865.025835, sX0=37313772.047279)\n\n# % python3 -m ....pygeodesy.geodesici -R 4e7 -i 0 0  10 10  50 -4  -50 -4\n# Intersector.All[0]: XDict(c=0, sA=-631414.26877, sB=5988887.278435, sX0=1866020.935315)\n# Intersector.All[1]: XDict(c=0, sA=19422725.117572, sB=-14062417.105648, sX0=38239422.83511)\n# Intersector.All[2]: XDict(c=0, sA=19422725.117572, sB=25945445.811603, sX0=39048781.218067)\n# Intersector.All[3]: XDict(c=0, sA=39476927.464575, sB=5894074.699478, sX0=39051612.452944)\n\n# % env PYGEODESY_INTERSECTTOOL=... python3 -m ....pygeodesy.geodesici -T -R 4e7 -i 0 0  10 10  50 -4  -50 -4\n# Intersectool.All[0]: XDict(c=0, sA=-631414.26877, sB=5988887.278435, sX0=1862009.05513)\n# Intersectool.All[1]: XDict(c=0, sA=19422725.117572, sB=-14062417.105648, sX0=38243434.715295)\n# Intersectool.All[2]: XDict(c=0, sA=19422725.117572, sB=25945445.811603, sX0=39044769.337882)\n# Intersectool.All[3]: XDict(c=0, sA=39476927.464575, sB=5894074.699478, sX0=39047600.57276)\n\n\n# **) MIT License\n#\n# Copyright (C) 2024-2026 -- mrJean1 at Gmail -- All Rights Reserved.\n#\n# Permission is hereby granted, free of charge, to any person obtaining a\n# copy of this software and associated documentation files (the \"Software\"),\n# to deal in the Software without restriction, including without limitation\n# the rights to use, copy, modify, merge, publish, distribute, sublicense,\n# and/or sell copies of the Software, and to permit persons to whom the\n# Software is furnished to do so, subject to the following conditions:\n#\n# The above copyright notice and this permission notice shall be included\n# in all copies or substantial portions of the Software.\n#\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL\n# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR\n# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\n# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n# OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "pygeodesy/geodesicw.py",
    "content": "\n# -*- coding: utf-8 -*-\n\nu'''Wrapper around Python classes C{geodesic.Geodesic} and C{geodesicline.GeodesicLine} from\nI{Karney}'s Python package U{geographiclib<https://PyPI.org/project/geographiclib>}, provided\nthat package is installed.\n\nThe I{wrapped} class methods return a L{GDict} instance offering access to the C{dict} items\neither by C{key} or by C{attribute} name.\n\nWith env variable C{PYGEODESY_GEOGRAPHICLIB} left undefined or set to C{\"2\"}, this module and modules\nL{pygeodesy.geodesici}, L{pygeodesy.geodesicx} and L{pygeodesy.karney} will use U{GeographicLib 2.0\n<https://GeographicLib.SourceForge.io/C++/doc/>} transcoding, otherwise C{1.52} or older.\n'''\n\nfrom pygeodesy.basics import _copysign, _xinstanceof\nfrom pygeodesy.constants import EPS, NAN, _EPSqrt as _TOL, _0_5\nfrom pygeodesy.datums import _earth_datum, _WGS84,  _EWGS84\n# from pygeodesy.dms import F_D  # from .latlonBase\n# from pygeodesy.ellipsoids import _EWGS84  # from .datums\nfrom pygeodesy.errors import _AssertionError, GeodesicError, \\\n                              IntersectionError\nfrom pygeodesy.fsums import Fsum,  Fmt, unstr\nfrom pygeodesy.internals import typename, _under\nfrom pygeodesy.interns import NN, _DOT_, _SPACE_, _to_, _too_\nfrom pygeodesy.karney import _atan2d, Caps, Direct9Tuple, GDict, \\\n                              Inverse10Tuple, _kWrapped\nfrom pygeodesy.latlonBase import LatLonBase as _LLB,  F_D, Radius_\nfrom pygeodesy.lazily import _ALL_LAZY, _ALL_MODS as _MODS\nfrom pygeodesy.named import callername, classname, _name1__, _name2__\nfrom pygeodesy.namedTuples import Destination3Tuple, Distance3Tuple\nfrom pygeodesy.props import Property, Property_RO, property_RO, \\\n                            property_ROver\n# from pygeodesy.streprs import Fmt, unstr  # from .fsums\n# from pygeodesy.units import Radius_  # from .latlonBase\nfrom pygeodesy.utily import _unrollon, _Wrap, wrap360,  fabs  # PYCHOK used!\n\nfrom contextlib import contextmanager\n# from math import fabs  # from .utily\n\n__all__ = _ALL_LAZY.geodesicw\n__version__ = '25.05.28'\n\n_plumb_ = 'plumb'\n_TRIPS  =  65\n\n\nclass _gWrapped(_kWrapped):\n    '''(INTERNAL) Wrapper for some of I{Karney}'s U{geographiclib\n        <https://PyPI.org/project/geographiclib>} classes.\n    '''\n\n    @property_ROver  # MCCABE 24\n    def Geodesic(self):\n        '''Get the I{wrapped} C{geodesic.Geodesic} class from I{Karney}'s Python\n           U{geographiclib<https://GitHub.com/geographiclib/geographiclib-python>},\n           provided the latter is installed.\n        '''\n        _Geodesic = self.geographiclib.Geodesic\n        if not (Caps.LATITUDE      == _Geodesic.LATITUDE and\n                Caps.LONGITUDE     == _Geodesic.LONGITUDE and\n                Caps.AZIMUTH       == _Geodesic.AZIMUTH and\n                Caps.DISTANCE      == _Geodesic.DISTANCE and\n                Caps.DISTANCE_IN   == _Geodesic.DISTANCE_IN and\n                Caps.REDUCEDLENGTH == _Geodesic.REDUCEDLENGTH and\n                Caps.GEODESICSCALE == _Geodesic.GEODESICSCALE and\n                Caps.AREA          == _Geodesic.AREA and\n                Caps.STANDARD      == _Geodesic.STANDARD and\n                Caps.ALL           == _Geodesic.ALL):\n            raise _AssertionError(Caps=bin(Caps.ALL),\n                                  Geodesic=bin(_Geodesic.ALL))\n\n        class Geodesic(_Geodesic):\n            '''I{Wrapper} for I{Karney}'s Python U{geodesic.Geodesic\n               <https://PyPI.org/project/geographiclib>} class.\n            '''\n            _datum        = _WGS84\n            _debug        =  0  # like .geodesicx.bases._GeodesicBase\n            LINE_OFF      =  0  # in .azimuthal._GnomonicBase and .css.CassiniSoldner\n            _name         =  NN\n            STANDARD_LINE =  Caps.STANDARD_LINE\n\n            def __init__(self, a_ellipsoid=_EWGS84, f=None, **name):  # PYCHOK signature\n                '''New I{wrapped} C{geodesic.Geodesic} instance.\n\n                   @arg a_ellipsoid: The equatorial radius I{a} (C{meter}, conventionally),\n                                     an ellipsoid (L{Ellipsoid}) or a datum (L{Datum}).\n                   @arg f: The ellipsoid's flattening (C{scalar}), required if B{C{a_ellipsoid})\n                           is C{meter}, ignored otherwise.\n                   @kwarg name: Optional C{B{name}=NN} (C{str}).\n                '''\n                _earth_datum(self, a_ellipsoid, f=f, **name)  # raiser=NN\n                E = self.ellipsoid\n                with _wargs(self, *E.a_f, **name) as args:\n                    _Geodesic.__init__(self, *args)\n                if name:\n                    self._name, _ = _name2__(name, _or_nameof=E)\n\n            def Area(self, polyline=False, **name):  # like GeodesicExact.Area\n                '''Return a C{PolygonArea} instance with method C{Compute} extended.\n                '''\n                _AreaBase = _wrapped._PolygonArea  # in .karney._kwrapped\n\n                class _PolygonArea(_AreaBase):\n                    # def __init__(self, *earth_polyline):\n                    #     _PolygonArea.__init__(self, *earth_polyline)\n\n                    def Compute(self, reverse=False, sign=True, polar=False):\n                        '''Use C{B{polar}=True} to adjust the area, see function\n                           L{areaOf<pygeodesy.geodesicx.gxarea.areaOf>}.\n                        '''\n                        n, p, a = _AreaBase.Compute(self, reverse=reverse, sign=sign)\n                        if polar:  # see .geodesicx.gxarea.GeodesicAreaExact._reduced\n                            a += _copysign(self.area0 * _0_5 * n, a)\n                        return n, p, a\n\n                A = _PolygonArea(self, polyline)\n                A.name = _name2__(name, _or_nameof=self)\n                return A\n\n            def ArcDirect(self, lat1, lon1, azi1, a12, outmask=Caps.STANDARD):  # PYCHOK no cover\n                '''Return the C{_Geodesic.ArcDirect} result as L{GDict}.\n                '''\n                with _wargs(self, lat1, lon1, azi1, a12, outmask) as args:\n                    d = _Geodesic.ArcDirect(self, *args)\n                return GDict(d)\n\n            def ArcDirectLine(self, lat1, lon1, azi1, a12, caps=Caps.STANDARD_LINE, **name):  # PYCHOK no cover\n                '''Return the C{_Geodesic.ArcDirectLine} as I{wrapped} C{GeodesicLine}.\n                '''\n                return self._GenDirectLine(lat1, lon1, azi1, True, a12, caps, **name)\n\n            @property_RO\n            def datum(self):\n                '''Get this geodesic's datum (C{Datum}).\n                '''\n                return self._datum\n\n            @Property\n            def debug(self):\n                '''Get the C{debug} option (C{bool}).\n                '''\n                return bool(self._debug)\n\n            @debug.setter  # PYCHOK setter!\n            def debug(self, debug):\n                '''Set the C{debug} option (C{bool}) to include more\n                   details in L{GDict} results.\n                '''\n                self._debug = Caps._DEBUG_ALL if debug else 0\n\n            def Direct(self, lat1, lon1, azi1, s12=0, outmask=Caps.STANDARD):\n                '''Return the C{_Geodesic.Direct} result as L{GDict}.\n                '''\n                with _wargs(self, lat1, lon1, azi1, s12, outmask) as args:\n                    d = _Geodesic.Direct(self, *args)\n                return GDict(d)\n\n            def Direct3(self, lat1, lon1, azi1, s12):  # PYCHOK outmask\n                '''Return the destination lat, lon and reverse azimuth\n                   in C{degrees} as L{Destination3Tuple}.\n                '''\n                d = self.Direct(lat1, lon1, azi1, s12, outmask=Caps._DIRECT3)\n                return Destination3Tuple(d.lat2, d.lon2, d.azi2)\n\n            def _DirectLine(self, ll1, azi12, s12=0, **caps_name):\n                '''(INTERNAL) Short-cut version.\n                '''\n                return self.DirectLine(ll1.lat, ll1.lon, azi12, s12, **caps_name)\n\n            def DirectLine(self, lat1, lon1, azi1, s12, caps=Caps.STANDARD_LINE, **name):\n                '''Return the C{_Geodesic.DirectLine} as I{wrapped} C{GeodesicLine}.\n                '''\n                return self._GenDirectLine(lat1, lon1, azi1, False, s12, caps, **name)\n\n            @Property_RO\n            def ellipsoid(self):\n                '''Get this geodesic's ellipsoid (C{Ellipsoid}).\n                '''\n                return self.datum.ellipsoid\n\n            @property_RO\n            def f1(self):  # in .css.CassiniSoldner.reset\n                '''Get the geodesic's ellipsoid's I{1 - flattening} (C{float}).\n                '''\n                return getattr(self, _under(Geodesic.f1.name), self.ellipsoid.f1)\n\n            def _GDictDirect(self, lat, lon, azi, arcmode, s12_a12, outmask=Caps.STANDARD):\n                '''(INTERNAL) Get C{_Geodesic._GenDirect} result as C{GDict}.\n                '''\n                with _wargs(self, lat, lon, azi, arcmode, s12_a12, outmask) as args:\n                    t = _Geodesic._GenDirect(self, *args)\n                return Direct9Tuple(t).toGDict()  # *t\n\n            def _GDictInverse(self, lat1, lon1, lat2, lon2, outmask=Caps.STANDARD):\n                '''(INTERNAL) Get C{_Geodesic._GenInverse} result as L{Inverse10Tuple}.\n                '''\n                with _wargs(self, lat1, lon1, lat2, lon2, outmask) as args:\n                    t = _Geodesic._GenInverse(self, *args)\n                return Inverse10Tuple(t).toGDict(lon1=lon1, lon2=lon2)  # *t\n\n            def _GenDirectLine(self, lat1, lon1, azi1, arcmode, s12_a12, *caps, **name):\n                '''(INTERNAL) Invoked by C{_Geodesic.DirectLine} and C{-.ArcDirectLine},\n                   returning the result as a I{wrapped} C{GeodesicLine}.\n                '''\n                with _wargs(self, lat1, lon1, azi1, arcmode, s12_a12, *caps, **name) as args:\n                    t = _Geodesic._GenDirectLine(self, *args)\n                return self._Line13(t, **name)\n\n            def _Inverse(self, ll1, ll2, wrap, **outmask):\n                '''(INTERNAL) Short-cut version, see .ellipsoidalBaseDI.intersecant2.\n                '''\n                if wrap:\n                    ll2 = _unrollon(ll1, _Wrap.point(ll2))\n                return self.Inverse(ll1.lat, ll1.lon, ll2.lat, ll2.lon, **outmask)\n\n            def Inverse(self, lat1, lon1, lat2, lon2, outmask=Caps.STANDARD):\n                '''Return the C{_Geodesic.Inverse} result as L{GDict}.\n                '''\n                with _wargs(self, lat1, lon1, lat2, lon2, outmask) as args:\n                    d = _Geodesic.Inverse(self, *args)\n                return GDict(d)\n\n            def Inverse1(self, lat1, lon1, lat2, lon2, wrap=False):\n                '''Return the non-negative, I{angular} distance in C{degrees}.\n\n                   @kwarg wrap: If C{True}, wrap or I{normalize} and unroll\n                                B{C{lat2}} and BC{lon2}} (C{bool}).\n                '''\n                # see .FrechetKarney.distance, .HausdorffKarney._distance\n                # and .HeightIDWkarney._distances\n                if wrap:\n                    _, lat2, lon2 = _Wrap.latlon3(lat1, lat2, lon2, True)  # _Geodesic.LONG_UNROLL\n                r = self.Inverse(lat1, lon1, lat2, lon2)\n                # XXX _Geodesic.DISTANCE needed for 'a12'?\n                return fabs(r.a12)\n\n            def Inverse3(self, lat1, lon1, lat2, lon2):  # PYCHOK outmask\n                '''Return the distance in C{meter} and the forward and reverse\n                   azimuths in C{degrees} as L{Distance3Tuple}.\n                '''\n                r = self.Inverse(lat1, lon1, lat2, lon2, outmask=Caps._INVERSE3)\n                return Distance3Tuple(r.s12, wrap360(r.azi1), wrap360(r.azi2))\n\n            def _InverseLine(self, ll1, ll2, wrap, **caps_name):\n                '''(INTERNAL) Short-cut version.\n                '''\n                if wrap:\n                    ll2 = _unrollon(ll1, _Wrap.point(ll2))\n                return self.InverseLine(ll1.lat, ll1.lon, ll2.lat, ll2.lon, **caps_name)\n\n            def InverseLine(self, lat1, lon1, lat2, lon2, caps=Caps.STANDARD_LINE, **name):\n                '''Return the C{_Geodesic.InverseLine} as I{wrapped} C{GeodesicLine}.\n                '''\n                with _wargs(self, lat1, lon1, lat2, lon2, caps, **name) as args:\n                    t = _Geodesic.InverseLine(self, *args)\n                return self._Line13(t, **name)\n\n            def Line(self, lat1, lon1, azi1, caps=Caps.STANDARD_LINE, **name):\n                '''Set up a I{wrapped} C{GeodesicLine} to compute several points\n                   along a single, I{wrapped} (this) geodesic.\n                '''\n                return _wrapped.GeodesicLine(self, lat1, lon1, azi1, caps=caps, **name)\n\n            def _Line13(self, t, **name):\n                '''(INTERNAL) Wrap C{_GeodesicLine}, add distance and arc length\n                   to reference point 3.\n                '''\n                gl = _wrapped.GeodesicLine(self, t.lat1, t.lon1, t.azi1, caps=t.caps,\n                                                 salp1=t.salp1, calp1=t.calp1, **name)\n                gl.a13, gl.s13 = t.a13, t.s13\n                return gl\n\n            @property_RO\n            def name(self):\n                '''Get the name (C{str}).\n                '''\n                return self._name\n\n            Polygon = Area\n            WGS84   = None  # _EWGS84.geodesicw recusion\n\n        # Geodesic.ArcDirect.__doc__   = _Geodesic.ArcDirect.__doc__\n        # Geodesic.Direct.__doc__      = _Geodesic.Direct.__doc__\n        # Geodesic.Inverse.__doc__     = _Geodesic.Inverse.__doc__\n        # Geodesic.InverseLine.__doc__ = _Geodesic.InverseLinr.__doc__\n        # Geodesic.Line.__doc__        = _Geodesic.Line.__doc__\n        return Geodesic  # overwrite property_ROver\n\n    @property_ROver  # MCCABE 16\n    def GeodesicLine(self):\n        '''Get the I{wrapped} C{geodesicline.GeodesicLine} class from I{Karney}'s\n           Python U{geographiclib<https://GitHub.com/geographiclib/geographiclib-python>},\n           provided the latter is installed.\n        '''\n        _GeodesicLine = self.geographiclib.GeodesicLine\n\n        class GeodesicLine(_GeodesicLine):\n            '''I{Wrapper} for I{Karney}'s Python U{geodesicline.GeodesicLine\n               <https://PyPI.org/project/geographiclib>} class.\n            '''\n            _geodesic = None\n            _name     = NN\n\n            def __init__(self, geodesic, lat1, lon1, azi1, **caps_name_):  # salp1=NAN, calp1=NAN\n                '''New I{wrapped} C{geodesicline.GeodesicLine} instance.\n\n                   @arg geodesic: A I{wrapped} C{Geodesic} instance.\n                   @arg lat1: Latitude of the first points (C{degrees}).\n                   @arg lon1: Longitude of the first points (C{degrees}).\n                   @arg azi1: Azimuth at the first points (compass C{degrees360}).\n                   @kwarg caps_name_: Optional keyword arguments C{B{caps}=Caps.STANDARD},\n                               a bit-or'ed combination of L{Caps<pygeodesy.karney.Caps>}\n                               values specifying the capabilities the C{GeodesicLine} instance\n                               should possess, an optional C{B{name}=NN} plus C{salp1=NAN} and\n                               C{calp1=NAN} for I{INTERNAL} use.\n                '''\n                _xinstanceof(_wrapped.Geodesic, geodesic=geodesic)\n                with _wargs(self, geodesic, lat1, lon1, azi1, **caps_name_) as args:\n                    name, caps_ = _name2__(caps_name_, _or_nameof=geodesic)\n                    _GeodesicLine.__init__(self, *args, **caps_)  # XXX avoid updates?\n                    if name:\n                        self._name = name\n                self._geodesic = geodesic\n\n            @Property_RO\n            def a1(self):\n                '''Get the I{equatorial arc} (C{degrees}), the arc length between\n                   the northward equatorial crossing and point C{(lat1, lon1)}.\n\n                   @see: U{EquatorialArc<https://GeographicLib.SourceForge.io/\n                         C++/doc/classGeographicLib_1_1GeodesicLine.html>}\n                '''\n                try:\n                    return _atan2d(self._ssig1, self._csig1)\n                except AttributeError:\n                    return NAN  # see .geodesicx.gxline._GeodesicLineExact\n\n            equatorarc = a1\n\n            def Arc(self):\n                '''Return the angular distance to point 3 (C{degrees} or C{NAN}).\n                '''\n                return self.a13\n\n            def ArcPosition(self, a12, outmask=Caps.STANDARD):\n                '''Return the position at C{B{a12} degrees} on this line.\n\n                   @arg a12: Angular distance from this line's first point\n                             (C{degrees}).\n\n                   @see: Method L{Position} for further details.\n                '''\n                with _wargs(self, a12, outmask) as args:\n                    d = _GeodesicLine.ArcPosition(self, *args)\n                return GDict(d)\n\n            @Property_RO\n            def azi0(self):  # see .css.CassiniSoldner.forward4\n                '''Get the I{equatorial azimuth} (C{degrees}), the azimuth of the\n                   geodesic line as it crosses the equator in a northward direction.\n\n                   @see: U{EquatorialAzimuth<https://GeographicLib.SourceForge.io/\n                         C++/doc/classGeographicLib_1_1GeodesicLine.html>}\n                '''\n                try:\n                    return _atan2d(self._salp0, self._calp0)\n                except AttributeError:\n                    return NAN  # see .geodesicx.gxline._GeodesicLineExact\n\n            equatorazimuth = azi0\n\n            def Distance(self):\n                '''Return the distance to reference point 3 (C{meter} or C{NAN}).\n                '''\n                return self.s13\n\n            @property_RO\n            def geodesic(self):\n                '''Get the I{wrapped} geodesic (L{Geodesic}).\n                '''\n                return self._geodesic\n\n            def Intersecant2(self, lat0, lon0, radius, tol=_TOL):\n                '''Compute the intersection(s) of this geodesic line and a circle.\n\n                   @arg lat0: Latitude of the circle center (C{degrees}).\n                   @arg lon0: Longitude of the circle center (C{degrees}).\n                   @arg radius: Radius of the circle (C{meter}, conventionally).\n                   @kwarg tol: Convergence tolerance (C{scalar}).\n\n                   @return: 2-Tuple C{(P, Q)} with both intersections points (representing\n                            a geodesic chord), each a L{GDict} from method L{Position} and\n                            extended to 14 items C{lat1, lon1, azi1, lat2, lon2, azi2, a12,\n                            s12, lat0, lon0, azi0, a02, s02, at} with the circle center\n                            C{lat0}, C{lon0}, azimuth C{azi0} at the intersection, distance\n                            C{a02} in C{degrees} and C{s02} in C{meter} along the geodesic\n                            from the circle center to the intersection C{lat2, lon2} and\n                            the angle C{at} between the geodesic and this line at the\n                            intersection.  The I{geodesic} azimuth at the intersection is\n                            C{(at + azi2)}.  If this line is tangential to the circle, both\n                            intersections are the same L{GDict} instance.\n\n                   @raise IntersectionError: The circle and this geodesic line do not\n                                             intersect.\n\n                   @raise UnitError: Invalid B{C{radius}}.\n                '''\n                return _Intersecant2(self, lat0, lon0, radius, tol=tol)\n\n            def PlumbTo(self, lat0, lon0, est=None, tol=_TOL):\n                '''Compute the I{perpendicular} intersection of this geodesic line\n                   with a geodesic from the given point.\n\n                   @arg lat0: Latitude of the point (C{degrees}).\n                   @arg lon0: Longitude of the point (C{degrees}).\n                   @kwarg est: Optional, initial estimate for the distance C{s12} of\n                               the intersection I{along} this geodesic line (C{meter}).\n                   @kwarg tol: Convergence tolerance (C(meter)).\n\n                   @return: The intersection point on this geodesic line, a L{GDict}\n                            from method L{Position} extended to 14 items C{lat1, lon1,\n                            azi1, lat2, lon2, azi2, a12, s12, lat0, lon0, azi0, a02,\n                            s02, at} with C{a02} and C{s02} the distance in C{degrees}\n                            and C{meter} from the given point C{lat0, lon0} to the\n                            intersection C{lat2, lon2}, azimuth C{azi0} at the given\n                            point and the (perpendicular) angle C{at} between the\n                            geodesic and this line at the intersection point.  The\n                            geodesic azimuth at the intersection is C{(at + azi2)}.\n                            See method L{Position} for further details.\n\n                   @see: Methods C{Intersecant2}, C{Intersection} and C{Position}.\n                '''\n                return _PlumbTo(self, lat0, lon0, est=est, tol=tol)\n\n            def Position(self, s12, outmask=Caps.STANDARD):\n                '''Return the position at distance C{B{s12} meter} on this line.\n\n                   @arg s12: Distance from this line's first point (C{meter}).\n                   @kwarg outmask: Bit-or'ed combination of L{Caps<pygeodesy.karney.Caps>}\n                                   values specifying the quantities to be returned.\n\n                   @return: A L{GDict} with up to 12 items C{lat1, lon1, azi1, lat2,\n                            lon2, azi2, m12, a12, s12, M12, M21, S12} with C{lat1},\n                            C{lon1}, C{azi1} and arc length C{a12} always included,\n                            except when C{a12=NAN}.\n                '''\n                with _wargs(self, s12, outmask) as args:\n                    d = _GeodesicLine.Position(self, *args)\n                return GDict(d)\n\n        # GeodesicLine.ArcPosition.__doc__ = _GeodesicLine.ArcPosition.__doc__\n        # GeodesicLine.Position.__doc__    = _GeodesicLine.Position.__doc__\n        return GeodesicLine  # overwrite property_ROver\n\n    @property_ROver\n    def Geodesic_WGS84(self):\n        '''Get the I{wrapped} C{Geodesic(WGS84)} singleton, provided the\n           U{geographiclib<https://PyPI.org/project/geographiclib>} package\n           is installed, otherwise an C{ImportError}.\n        '''\n        return _EWGS84.geodesicw  # overwrite property_ROver\n\n_wrapped = _gWrapped()  # PYCHOK singleton, .ellipsoids, .test/base.py\n\n\nclass Geodesic(_gWrapped):  # overwritten by 1st instance\n    '''I{Wrapper} around I{Karney}'s class U{geographiclib.geodesic.Geodesic\n       <https://GeographicLib.SourceForge.io/Python/doc/code.html>}.\n    '''\n    def __new__(unused, a_ellipsoid=_EWGS84, f=None, **name):\n        '''Return a I{wrapped} C{geodesic.Geodesic} instance from I{Karney}'s\n           Python U{geographiclib<https://PyPI.org/project/geographiclib>},\n           provide the latter is installed, otherwise an C{ImportError}.\n\n           @arg a_ellipsoid: An ellipsoid (L{Ellipsoid}) or datum (L{Datum})\n                  or the equatorial radius I{a} of the ellipsoid (C{meter}).\n           @arg f: The flattening of the ellipsoid (C{scalar}), required if\n                   B{C{a_ellipsoid}}) is C{meter}, ignored otherwise.\n           @kwarg name: Optional C{B{name}=NN} (C{str}).\n        '''\n        g = _wrapped.Geodesic(a_ellipsoid, f=f, **name)\n        _MODS.geodesicw.Geodesic = type(g)  # overwrite class\n        return g\n\n\nclass GeodesicLine(_gWrapped):  # overwritten by 1st instance\n    '''I{Wrapper} around I{Karney}'s class U{geographiclib.geodesicline.GeodesicLine\n       <https://GeographicLib.SourceForge.io/Python/doc/code.html>}.\n    '''\n    def __new__(unused, geodesic, lat1, lon1, azi1, caps=Caps.STANDARD_LINE, **name):\n        '''Return a I{wrapped} C{geodesicline.GeodesicLine} instance from I{Karney}'s\n           Python U{geographiclib<https://PyPI.org/project/geographiclib>}, provided\n           the latter is installed, otherwise an C{ImportError}.\n\n           @arg geodesic: A I{wrapped} L{Geodesic} instance.\n           @arg lat1: Latitude of the first points (C{degrees}).\n           @arg lon1: Longitude of the first points (C{degrees}).\n           @arg azi1: Azimuth at the first points (compass C{degrees360}).\n           @kwarg caps: Optional, bit-or'ed combination of L{Caps<pygeodesy.karney.Caps>}\n                        values specifying the capabilities the C{GeodesicLine} instance\n                        should possess, i.e., which quantities can be returned by methods\n                        C{GeodesicLine.Position} and C{GeodesicLine.ArcPosition}.\n           @kwarg name: Optional C{B{name}=NN} (C{str}).\n        '''\n        gl = _wrapped.GeodesicLine(geodesic, lat1, lon1, azi1, caps=caps, **name)\n        _MODS.geodesicw.GeodesicLine = type(gl)  # overwrite class\n        return gl\n\n\ndef Geodesic_WGS84():\n    '''Get the I{wrapped} L{Geodesic}C{(WGS84)} singleton, provided\n       U{geographiclib<https://PyPI.org/project/geographiclib>} is\n       installed, otherwise an C{ImportError}.\n    '''\n    return _wrapped.Geodesic_WGS84\n\n\nclass _wargs(object):  # see also .formy._idllmn6, .latlonBase._toCartesian3, .vector2d._numpy\n    '''(INTERNAL) C{geographiclib} arguments and exception handler.\n    '''\n    @contextmanager  # <https://www.Python.org/dev/peps/pep-0343/> Examples\n    def __call__(self, inst, *args, **kwds):\n        '''(INTERNAL) Yield C{tuple(B{args})} with any errors raised\n           as L{GeodesicError} embellished with all B{C{kwds}}.\n        '''\n        try:\n            yield args\n        except Exception as x:\n            u = _DOT_(classname(inst), callername(up=2, underOK=True))\n            raise GeodesicError(unstr(u, *args, **_name1__(kwds)), cause=x)\n\n_wargs = _wargs()  # PYCHOK singleton\n\n\ndef _Intersecant2(gl, lat0, lon0, radius, tol=_TOL, form=F_D):  # MCCABE in LatLonEllipsoidalBaseDI.intersecant2, .geodesicx.gxline.Intersecant2\n    # (INTERNAL) Return the intersections of a circle at C{lat0, lon0}\n    # and a geodesic line as a 2-Tuple C{(P, Q)}, each a C{GDict}.\n    r  = Radius_(radius)\n    n  = typename(_Intersecant2)[1:]\n    _P = gl.Position\n    _I = gl.geodesic.Inverse\n\n    def _R3(s):\n        # radius, intersection, etc. at distance C{s}\n        P = _P(s)\n        d = _I(lat0, lon0, P.lat2, P.lon2)\n        return fabs(d.s12), P, d\n\n    def _bisect2(s, c, Rc, r, tol, _R3):\n        _s = Fsum(c).fsumf_\n        for i in range(_TRIPS):\n            b = _s(s)\n            Rb, P, d = _R3(b)\n            if Rb > r:\n                break\n        else:  # b >>> s and c >>> s\n            raise ValueError(Fmt.no_convergence(b, s))\n        # Rb > r > Rc\n        for i in range(_TRIPS):  # 47-48\n            s = (b + c) * _0_5\n            R, P, d = _R3(s)\n            if Rb > R > r:\n                b, Rb = s, R\n            elif Rc < R < r:\n                c, Rc = s, R\n#           else:\n#               break\n            t = fabs(b - c)\n            if t < tol:  # or fabs(R - r) < tol:\n                break\n        else:  # t = min(t, fabs(R - r))\n            raise ValueError(Fmt.no_convergence(t, tol))\n        i += C.iteration  # combine iterations\n        P.set_(lat0=lat0, lon0=lon0, azi0=d.azi1, iteration=i,\n               a02=d.a12, s02=d.s12, at=d.azi2 - P.azi2, name=n)\n        return P, s\n\n    # get the perpendicular intersection of 2 geodesics,\n    # one the plumb, pseudo-rhumb line to the other\n    C = _PlumbTo(gl, lat0, lon0, tol=tol)\n    try:\n        a = fabs(C.s02)  # distance between centers\n        if a < r:\n            c =  C.s12  # distance along pseudo-rhumb line\n            h = _copysign(r, c)  # past half chord length\n            P, p = _bisect2( h, c, a, r, tol, _R3)\n            Q, q = _bisect2(-h, c, a, r, tol, _R3)\n            if fabs(p - q) < max(EPS, tol):\n                Q = P\n        elif a > r:\n            raise ValueError(_too_(Fmt.distant(a)))\n        else:  # tangential\n            P = Q = C\n    except Exception as x:\n        t = _LLB(C.lat2, C.lon2).toStr(form=form)\n        t = _SPACE_(x, _plumb_, _to_, Fmt.PAREN(t))\n        raise IntersectionError(t, txt=None, cause=x)\n\n    return P, Q\n\n\ndef _PlumbTo(gl, lat0, lon0, est=None, tol=_TOL):\n    # (INTERNAL) Return the I{perpendicular} intersection of\n    # a geodesic line C{gl} and geodesic from C{(lat0, lon0)}.\n    pl = _MODS.rhumb.bases._PseudoRhumbLine(gl)\n    return pl.PlumbTo(lat0, lon0, exact=gl.geodesic,\n                                  est=est, tol=tol)\n\n# **) MIT License\n#\n# Copyright (C) 2016-2026 -- mrJean1 at Gmail -- All Rights Reserved.\n#\n# Permission is hereby granted, free of charge, to any person obtaining a\n# copy of this software and associated documentation files (the \"Software\"),\n# to deal in the Software without restriction, including without limitation\n# the rights to use, copy, modify, merge, publish, distribute, sublicense,\n# and/or sell copies of the Software, and to permit persons to whom the\n# Software is furnished to do so, subject to the following conditions:\n#\n# The above copyright notice and this permission notice shall be included\n# in all copies or substantial portions of the Software.\n#\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL\n# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR\n# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\n# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n# OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "pygeodesy/geodesicx/_C4_24.py",
    "content": "\n# -*- coding: utf-8 -*-\n\nu'''A Python version of part of I{Karney}'s C++ module U{GeodesicExactC4\n<https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1GeodesicExactC4.html>}.\n\nCopyright (C) U{Charles Karney<mailto:Karney@Alum.MIT.edu>} (2008-2024)\nand licensed under the MIT/X11 License.  For more information, see the\nU{GeographicLib<https://GeographicLib.SourceForge.io>} documentation.\n'''\n# See C{.geodesicx._C4_30.py} for a copy of comments from Karney's C{GeodesicExactC4.cpp}:\n\nfrom pygeodesy.geodesicx.gxbases import _Gfloats, _f, _f2\n\n__all__ = ()\n__version__ = '24.09.04'\n\n_g = _Gfloats(24)\n_coeffs_24 = _g((  # GEOGRAPHICLIB_GEODESICEXACT_ORDER == 24\n    # Generated by Maxima on 2017-05-27 10:17:57-04:00\n    # C4[0], coeff of eps^23, polynomial in n of order 0\n    2113, _f(34165005),\n    # C4[0], coeff of eps^22, polynomial in n of order 1\n    5189536, 1279278, _f(54629842995),\n    # C4[0], coeff of eps^21, polynomial in n of order 2\n    _f(19420000), -9609488, 7145551, _f(87882790905),\n    # C4[0], coeff of eps^20, polynomial in n of order 3\n    _f(223285780800), -_f(146003016320), _f(72167144896),\n    _f(17737080900), _f(0x205dc0bcbd6d7),\n    # C4[0], coeff of eps^19, polynomial in n of order 4\n    _f(0x4114538e4c0), -_f(0x2f55bac3db0), _f(0x1ee26e63c60),\n    -_f(0xf3f108c690), _f(777582423783), _f(0x19244124e56e27),\n    # C4[0], coeff of eps^18, polynomial in n of order 5\n    _f(0x303f35e1bc93a0), -_f(0x24e1f056b1d580),\n    _f(0x1ab9fe0d1d4d60), -_f(0x1164c583e996c0),\n    _f(0x892da1e80cb20), _f(0x2194519fdb596),\n    _f2(3071, 0xfdd7cc41833d5),\n    # C4[0], coeff of eps^17, polynomial in n of order 6\n    _f(0x4aad22c875ed20), -_f(0x3a4801a1c6bad0),\n    _f(0x2c487fb318d4c0), -_f(0x1ff24d7cfd75b0),\n    _f(0x14ba39245f1460), -_f(0xa32e190328e90),\n    _f(0x78c93074dfcff), _f2(3071, 0xfdd7cc41833d5),\n    # C4[0], coeff of eps^16, polynomial in n of order 7\n    _f(0x33d84b92096e100), -_f(0x286d35d824ffe00),\n    _f(0x1f3d33e2e951300), -_f(0x178f58435181400),\n    _f(0x10e7992a3756500), -_f(0xaed7fa8609aa00),\n    _f(0x55d8ac87b09700), _f(0x14e51e43945a10),\n    _f2(21503, 0xf0e695ca96ad3),\n    # C4[0], coeff of eps^15, polynomial in n of order 8\n    _f(0x577cdb6aaee0d80), -_f(0x4283c1e96325470),\n    _f(0x32feef20b794020), -_f(0x26ea2e388de1a50),\n    _f(0x1d13f6131e5d6c0), -_f(0x14b9aa66e270230),\n    _f(0xd5657196ac0560), -_f(0x6880b0118a9810),\n    _f(0x4d0f1755168ee7), _f2(21503, 0xf0e695ca96ad3),\n    # C4[0], coeff of eps^14, polynomial in n of order 9\n    _f(0xa82410caed14920), -_f(0x774e0539d2de300),\n    _f(0x57ddc01c62bc8e0), -_f(0x41de50dfff43e40),\n    _f(0x31742450a1bdca0), -_f(0x248524531975180),\n    _f(0x19d013c6e35ec60), -_f(0x1084c003a0434c0),\n    _f(0x8103758ad86020), _f(0x1f2409edf5e286),\n    _f2(21503, 0xf0e695ca96ad3),\n    # C4[0], coeff of eps^13, polynomial in n of order 10\n    _f(0x1c6d2d6120015ca0), -_f(0x104cedef383403b0),\n    _f(0xab9dd58c3e3d880), -_f(0x78a4e83e5604750),\n    _f(0x57aa7cf5406e460), -_f(0x4067a93ceeb2cf0),\n    _f(0x2ed62190d975c40), -_f(0x20c076adcb21890),\n    _f(0x14cfa9cb9e01c20), -_f(0xa1e25734956e30),\n    _f(0x76afbfe4ae6c4d), _f2(21503, 0xf0e695ca96ad3),\n    # C4[0], coeff of eps^12, polynomial in n of order 11\n    _f(0x500e39e18e75c40), -_f(0xb866fe4aaa63680),\n    _f(0x4337db32e526ac0), -_f(0x264cce8c21af200),\n    _f(0x18fb7ba247a4140), -_f(0x115709558576d80),\n    _f(0xc5be96cd3dcfc0), -_f(0x8cdca1395db900),\n    _f(0x611fe1a7e00640), -_f(0x3d26e46827e480),\n    _f(0x1d93970a8fd4c0), _f(0x70bf87cc17354),\n    _f2(3071, 0xfdd7cc41833d5),\n    # C4[0], coeff of eps^11, polynomial in n of order 12\n    -_f(0x158a522ca96a9f40), _f(0x14d4e49882e048f0),\n    _f(0x51a6258bc6026a0), -_f(0xc07af3677bdc6b0),\n    _f(0x45ac09bc3b66080), -_f(0x275e4ef59a8b450),\n    _f(0x195f928e5402a60), -_f(0x114aa7eeb31a3f0),\n    _f(0xbf706c784da040), -_f(0x817ec7d97ab990),\n    _f(0x508b8ca80cde20), -_f(0x26b120ea091930),\n    _f(0x1c1ab3faf18ecd), _f2(3071, 0xfdd7cc41833d5),\n    # C4[0], coeff of eps^10, polynomial in n of order 13\n    _f(0x85cd94c7a43620), _f(0x41534458719f180),\n    -_f(0x1688b497e3eabf20), _f(0x15fa3ad6bcd8bd40),\n    _f(0x531c27984875fa0), -_f(0xc9b33381ee39f00),\n    _f(0x485a2b8a7ad1a60), -_f(0x286be979df41b40),\n    _f(0x199b6e19072f920), -_f(0x10f769bc7a1af80),\n    _f(0xb2b30e0b2b83e0), -_f(0x6d4c30bc0953c0),\n    _f(0x3405b9397b42a0), _f(0xc1ffd0ada51be),\n    _f2(3071, 0xfdd7cc41833d5),\n    # C4[0], coeff of eps^9, polynomial in n of order 14\n    _f(0x77c3b2fb788360), _f(0x12370e8b6ebba50),\n    _f(0x3ce89570a2d35c0), _f(0x1ddd463aa5801f30),\n    -_f2(2652, 0xb61760f09fe0), _f2(2613, 0x24df88b461210),\n    _f(0x24dea39341926e80), -_f(0x5ce704fae2f44110),\n    _f(0x20ecef343dc3cce0), -_f(0x121947a4ab4bae30),\n    _f(0xb2a76f84c78e740), -_f(0x70dd3a5c9a20950),\n    _f(0x43604f2667d29a0), -_f(0x1fa7f2abdd82670),\n    _f(0x169d55eb03244c1), _f2(21503, 0xf0e695ca96ad3),\n    # C4[0], coeff of eps^8, polynomial in n of order 15\n    _f(0x21331eec152c80), _f(0x3c94fa87392d00),\n    _f(0x7bff534019c580), _f(0x12eee208e5fe200),\n    _f(0x3f965ae4945ee80), _f(0x1f56cb06e4e85700),\n    -_f2(2802, 0x46e8e19f880), _f2(2796, 0xadb20bd4ec00),\n    _f(0x251d0efe774e7080), -_f(0x625b74d58e27ff00),\n    _f(0x224674d7e8ab8980), -_f(0x1260f3bdc69c0a00),\n    _f(0xad7256a98d1b280), -_f(0x63bd65ce944d500),\n    _f(0x2df89c0cd0d4b80), _f(0xa46618fc50ff08),\n    _f2(21503, 0xf0e695ca96ad3),\n    # C4[0], coeff of eps^7, polynomial in n of order 16\n    _f(0xcb641c2517300), _f(0x1435342f6c1790),\n    _f(0x2223c168d902a0), _f(0x3e90a70fac72b0),\n    _f(0x80a310c4f84640), _f(0x13bcb7c20d40bd0),\n    _f(0x42a5540b0e391e0), _f(0x210e40977bd376f0),\n    -_f2(2980, 0x94d9def1cc680), _f2(3022, 0x503caf61c4810),\n    _f(0x24d397da2b859120), -_f(0x68d822cc2f04ecd0),\n    _f(0x23a043b28810ecc0), -_f(0x125159fafe6e93b0),\n    _f(0x9e1bc8a31f5a060), -_f(0x46aed7b45d01890),\n    _f(0x30c71f0f146542f), _f2(21503, 0xf0e695ca96ad3),\n    # C4[0], coeff of eps^6, polynomial in n of order 17\n    _f(0x5c9c64c833ea0), _f(0x87cba49bc6200), _f(0xcee016a8ff560),\n    _f(0x14a860e941a1c0), _f(0x231567934bf020),\n    _f(0x40a648fc642980), _f(0x85b2123b2c36e0),\n    _f(0x14a4159e5b98140), _f(0x462d226dee7d1a0),\n    _f(0x2316888f6f2f3100), -_f2(3198, 0x3491a799c37a0),\n    _f2(3311, 0xbf8f265e6c0c0), _f(0x2372de10575f2320),\n    -_f(0x70af5543c56e4780), _f(0x24bbd6e6395ee9e0),\n    -_f(0x116009bab4325fc0), _f(0x75b7dfa9c5a24a0),\n    _f(0x17de90e4beab49e), _f2(21503, 0xf0e695ca96ad3),\n    # C4[0], coeff of eps^5, polynomial in n of order 18\n    _f(0x6a525328e6e0), _f(0x93f17033fb30), _f(0xd36a04706f00),\n    _f(0x137db4aaadad0), _f(0x1de17febed720), _f(0x300ece09a4c70),\n    _f(0x5230537724340), _f(0x98911a7bab410), _f(0x13df6f0042d760),\n    _f(0x317f809c6f75b0), _f(0xa9d28ba9acb780),\n    _f(0x55d121ad9d8f550), -_f(0x1efee1555125f860),\n    _f(0x21073529064696f0), _f(0x486394f46ccebc0),\n    -_f(0x11777145e6374170), _f(0x54159fc268987e0),\n    -_f(0x1fa4dd5835d2fd0), _f(0x13d87fc86cca643),\n    _f2(3071, 0xfdd7cc41833d5),\n    # C4[0], coeff of eps^4, polynomial in n of order 19\n    _f(0x3804d31f10c0), _f(0x4b2ec20ad280), _f(0x66f0ea418040),\n    _f(0x903f2204b400), _f(0xcfad72d447c0), _f(0x134cb9fa41580),\n    _f(0x1dd70e331b740), _f(0x306dd8a084700), _f(0x53a0a0b201ec0),\n    _f(0x9cd7c33c89880), _f(0x14a7b599a9ce40),\n    _f(0x340e256f2c5a00), _f(0xb4e7d2cf7515c0),\n    _f(0x5cc8e678862db80), -_f(0x22304c48df63bac0),\n    _f(0x25f7d3a888bb6d00), _f(0x3210c8a6905acc0),\n    -_f(0x131873ea3222a180), _f(0x4a33217f63b9c40),\n    _f(0xaa39109cb79b1c), _f2(3071, 0xfdd7cc41833d5),\n    # C4[0], coeff of eps^3, polynomial in n of order 20\n    _f(0x1d8a60744340), _f(0x26a12f47d0f0), _f(0x3353c9ffe420),\n    _f(0x4570fd193850), _f(0x5fe8194aa900), _f(0x87a7057de1b0),\n    _f(0xc54ab4558de0), _f(0x12897a64b8910), _f(0x1d013b7f18ec0),\n    _f(0x2fb033b96ea70), _f(0x5384f3e45a7a0), _f(0x9f10eb531c1d0),\n    _f(0x154d17c994d480), _f(0x36ab828088cb30),\n    _f(0xc1d47f99841160), _f(0x65b5717bb21c290),\n    -_f(0x269fd1ef6edfa5c0), _f(0x2dc2d3f3f9f963f0),\n    -_f(0xf46c321c1b54e0), -_f(0x14642b52c5fe94b0),\n    _f(0x6b46a122c3b5c05), _f2(3071, 0xfdd7cc41833d5),\n    # C4[0], coeff of eps^2, polynomial in n of order 21\n    _f(0x65e46db33460), _f(0x82b39a7b3380), _f(0xa9e8c6cf36a0),\n    _f(0xe0317d0fa0c0), _f(0x12cd0399df4e0), _f(0x19b576ed17600),\n    _f(0x23ecb07d1c720), _f(0x33785d3e48b40), _f(0x4bedad56b0560),\n    _f(0x73f4d1eccb880), _f(0xb8a5a1bdc07a0), _f(0x1359aad161d5c0),\n    _f(0x22a518d96d25e0), _f(0x43a50f3643bb00),\n    _f(0x95133a4d60b820), _f(0x18b02de0f4e4040),\n    _f(0x5ac287501571660), _f(0x31a5fa2db58d3d80),\n    -_f2(5087, 0xbd2e8f8d6760), _f2(6752, 0x2ce8487308ac0),\n    -_f2(2184, 0x86ffdb3446920), -_f(0x199994ff919cd3b6),\n    _f2(21503, 0xf0e695ca96ad3),\n    # C4[0], coeff of eps^1, polynomial in n of order 22\n    _f(0xd0da1980ba0), _f(0x10803fb20d70), _f(0x151a70ced0c0),\n    _f(0x1b569dc61a10), _f(0x23ecd2ce6de0), _f(0x2ff80cba60b0),\n    _f(0x413672596700), _f(0x5a7b8b75a550), _f(0x8082f2984020),\n    _f(0xbb859b75abf0), _f(0x11a6bf1637d40), _f(0x1b9a143813890),\n    _f(0x2d2aacb8da260), _f(0x4e2c5253a0f30), _f(0x914a9e2ed3380),\n    _f(0x128a302f4ef3d0), _f(0x2b2226f5e6b4a0),\n    _f(0x7a36190e0daa70), _f(0x1e8d8643836a9c0),\n    _f(0x129e3dd12414f710), -_f2(2184, 0x86ffdb3446920),\n    _f2(3276, 0xca7fc8ce69db0), -_f(0x5999897e7da4e4fd),\n    _f2(7167, 0xfaf78743878f1),\n    # C4[0], coeff of eps^0, polynomial in n of order 23\n    _f(0x71a68037fdf14), _f(0x81ebac5d53b48), _f(0x957440e8ac5fc),\n    _f(0xad1ce56088670), _f(0xca0c260c189e4), _f(0xedd10e292f598),\n    _f(0x11a912af9e18cc), _f(0x1534f4af92bec0),\n    _f(0x19c5b078ed00b4), _f(0x1fc05a701dd7e8),\n    _f(0x27bd1031afaf9c), _f(0x32a7dc61183710),\n    _f(0x41fc58560eb384), _f(0x583759590a1238),\n    _f(0x79bd058a3bfa6c), _f(0xaecdc650561f60),\n    _f(0x108312ea2251254), _f(0x1abbd57b12fd488),\n    _f(0x2fbd21c97d5693c), _f(0x634bf45b6b1a7b0),\n    _f(0x11110dffb6688d24), _f(0x666653fe46734ed8),\n    -_f2(5734, 0x625f9f69393f4), _f2(14335, 0xf5ef0e870f1e2),\n    _f2(21503, 0xf0e695ca96ad3),\n    # C4[1], coeff of eps^23, polynomial in n of order 0\n    3401, _f(512475075),\n    # C4[1], coeff of eps^22, polynomial in n of order 1\n    -5479232, 3837834, _f(163889528985),\n    # C4[1], coeff of eps^21, polynomial in n of order 2\n    -_f(1286021216), _f(571443856), _f(142575393), _f(0xef8343fb2e1),\n    # C4[1], coeff of eps^20, polynomial in n of order 3\n    -_f(237999188352), _f(138477414656), -_f(77042430080),\n    _f(53211242700), _f(0x6119423638485),\n    # C4[1], coeff of eps^19, polynomial in n of order 4\n    -_f(0x2066cb6031fc0), _f(0x14c85e7394470), -_f(0xf6b8f35571e0),\n    _f(0x6ad3f08040d0), _f(0x1aa3b2832565), _f(0x230f8ed873f29c63),\n    # C4[1], coeff of eps^18, polynomial in n of order 5\n    -_f(0x33e9644cad5b40), _f(0x22b6849ca6a500),\n    -_f(0x1ce364ad2a4ec0), _f(0x104aaed8cf4680),\n    -_f(0x949f0f8a89e40), _f(0x64bcf4df920c2),\n    _f2(9215, 0xf98764c489b7f),\n    # C4[1], coeff of eps^17, polynomial in n of order 6\n    -_f(0x50a85b2e2e4060), _f(0x36bb9aa442c6f0),\n    -_f(0x3029aafbbe0440), _f(0x1dc29c0bd6ce90),\n    -_f(0x16a422844d9020), _f(0x9763b8d8ca030),\n    _f(0x25b8d7edff7eb), _f2(9215, 0xf98764c489b7f),\n    # C4[1], coeff of eps^16, polynomial in n of order 7\n    -_f(0x3822c174e5c7e00), _f(0x25fbaf973d78c00),\n    -_f(0x222a860fbdb7a00), _f(0x15dabd7a0984800),\n    -_f(0x129f00215535600), _f(0xa0e9e0ae9b8400),\n    -_f(0x5ee97a6d2d5200), _f(0x3eaf5acabd0e30),\n    _f2(64511, 0xd2b3c15fc4079),\n    # C4[1], coeff of eps^15, polynomial in n of order 8\n    -_f(0x5ec1dcd7666b480), _f(0x3ed4935a3fd8cd0),\n    -_f(0x38014f5e5d79960), _f(0x240af6a53256570),\n    -_f(0x2049d0fb0404a40), _f(0x12efbc065d3f410),\n    -_f(0xee9d804d5d8320), _f(0x5ed209adebbcb0),\n    _f(0x1798ea7fdd6773), _f2(64511, 0xd2b3c15fc4079),\n    # C4[1], coeff of eps^14, polynomial in n of order 9\n    -_f(0x19f69929deb8bc0), _f(0x1054723730b1600),\n    -_f(0xdce6aeb616e040), _f(0x8c0069813d6480),\n    -_f(0x7e59f70027c8c0), _f(0x4bea01551feb00),\n    -_f(0x42bb28790cad40), _f(0x21dd61f97d4180),\n    -_f(0x14f93d4343f5c0), _f(0xd58968a8df35e),\n    _f2(9215, 0xf98764c489b7f),\n    # C4[1], coeff of eps^13, polynomial in n of order 10\n    -_f(0x1ecd4a3794400de0), _f(0x101df33ec1bb0110),\n    -_f(0xbc64ec7794b2980), _f(0x71d5f4e2a637ff0),\n    -_f(0x625888ecafc7520), _f(0x3aa6879742ff4d0),\n    -_f(0x3585f7f60d164c0), _f(0x1d18174ef21abb0),\n    -_f(0x18117eb39416c60), _f(0x8df7a42ab2f090),\n    _f(0x23413de9276581), _f2(64511, 0xd2b3c15fc4079),\n    # C4[1], coeff of eps^12, polynomial in n of order 11\n    -_f(0x113775cb09582880), _f(0x5790112bb17c4700),\n    -_f(0x204e01ed2b929d80), _f(0x1063af9e8d99cc00),\n    -_f(0xc3ef805036ada80), _f(0x701a56aa2d31100),\n    -_f(0x63910631abdcf80), _f(0x368e0c562512600),\n    -_f(0x31ed34307286c80), _f(0x170e89cb9dd1b00),\n    -_f(0xf5f0efdd07a180), _f(0x93fb623bde75e4),\n    _f2(64511, 0xd2b3c15fc4079),\n    # C4[1], coeff of eps^11, polynomial in n of order 12\n    _f(0x13635f7860ae69c0), -_f(0x169d904d9d4691d0),\n    -_f(0x2254277308cd9e0), _f(0xd20446e8d8a9710),\n    -_f(0x4df2aedeefd1980), _f(0x25e2aff2baec9f0),\n    -_f(0x1d3856fa2b08920), _f(0xf7cadc640f92d0),\n    -_f(0xe3d2f6c9ad5cc0), _f(0x6e412eaf297db0),\n    -_f(0x62000ef613c860), _f(0x201266fb021690),\n    _f(0x7ee4c480c21e1), _f2(9215, 0xf98764c489b7f),\n    # C4[1], coeff of eps^10, polynomial in n of order 13\n    -_f(0x5fe482817c4c40), -_f(0x3373730b4b79d00),\n    _f(0x140f919171472640), -_f(0x17f10e5417ef9980),\n    -_f(0x1b454cf244cf340), _f(0xdd42319af5c0200),\n    -_f(0x530205145e450c0), _f(0x25eec00584a7d80),\n    -_f(0x1e9e562555aaa40), _f(0xe85806d73b2100),\n    -_f(0xde44387c5bb7c0), _f(0x581f06023d3480),\n    -_f(0x421ccd71c33140), _f(0x245ff7208ef53a),\n    _f2(9215, 0xf98764c489b7f),\n    # C4[1], coeff of eps^9, polynomial in n of order 14\n    -_f(0x47f3709eaa4320), -_f(0xbb640bc2e1ae70),\n    -_f(0x2a7854a3ead7b40), -_f(0x1701de8d91314210),\n    _f2(2329, 0x5f8472b9624a0), -_f2(2855, 0xe7c1182872fb0),\n    -_f(0x785bf95be998780), _f(0x66690260b30024b0),\n    -_f(0x272595745774a3a0), _f(0x104f772bee315710),\n    -_f(0xe11ad02f34b53c0), _f(0x5a192e055800370),\n    -_f(0x58d8bfb781fbbe0), _f(0x17a156426e4c5d0),\n    _f(0x5c88907e67c575), _f2(64511, 0xd2b3c15fc4079),\n    # C4[1], coeff of eps^8, polynomial in n of order 15\n    -_f(0x1138d3e7324700), -_f(0x210a1008a4f200),\n    -_f(0x47b7d2285e8500), -_f(0xbbe3dba17a1400),\n    -_f(0x2aeb63e9e4cb300), -_f(0x1781d8a9c80b7600),\n    _f2(2419, 0xe4212c9be8f00), -_f2(3063, 0xd7c230ad9b800),\n    -_f(0x116171a56015f00), _f(0x6cc31b4079da8600),\n    -_f(0x2af22cc657d11d00), _f(0xf75e4ec12d0a400),\n    -_f(0xeb60cc0dd754b00), _f(0x472a49a74880200),\n    -_f(0x4174f343c328900), _f(0x1ed324af4f2fd18),\n    _f2(64511, 0xd2b3c15fc4079),\n    # C4[1], coeff of eps^7, polynomial in n of order 16\n    -_f(0xd56426d4f700), -_f(0x15fa65017d450),\n    -_f(0x26ba18ad11e20), -_f(0x4a9605f1a58f0),\n    -_f(0xa2b494aee2940), -_f(0x1ad07f38fd2390),\n    -_f(0x62deb836d71c60), -_f(0x36d68c47bf27830),\n    _f(0x167d3fa4abc50480), -_f(0x1d9b2fd161b99ad0),\n    _f(0x13a59aea9293560), _f(0x10886ca52ccf3090),\n    -_f(0x6e8a4c27dbf8dc0), _f(0x1f02cd8f1f8a5f0),\n    -_f(0x2216230a1ac48e0), _f(0x5f13c815b08150),\n    _f(0x1666b06ca8f56d), _f2(9215, 0xf98764c489b7f),\n    # C4[1], coeff of eps^6, polynomial in n of order 17\n    -_f(0x2678d0ed9f140), -_f(0x39d0dbe263c00),\n    -_f(0x5aa623a5216c0), -_f(0x95d2f30c44880),\n    -_f(0x108ea4db631840), -_f(0x2005d27e0acd00),\n    -_f(0x463ad5e0e22dc0), -_f(0xba80ab02c40180),\n    -_f(0x2b67c47d5d48f40), -_f(0x186d6a49f7da1e00),\n    _f2(2625, 0x9832921f08b40), -_f2(3627, 0xa72ee4675a80),\n    _f(0x17be252bac67e9c0), _f(0x7a8f5366d9ba1100),\n    -_f(0x38a15d77b043abc0), _f(0x9cd4e0bf35fec80),\n    -_f(0xceae5004f176d40), _f(0x479bb2ae3c01dda),\n    _f2(64511, 0xd2b3c15fc4079),\n    # C4[1], coeff of eps^5, polynomial in n of order 18\n    -_f(0x11dc9e54dea60), -_f(0x193ec5647cdf0),\n    -_f(0x24bda460ceb00), -_f(0x3760182d9a010),\n    -_f(0x5717ea0e54ba0), -_f(0x907095ecddc30),\n    -_f(0x10063188dee040), -_f(0x1f228e862f9650),\n    -_f(0x44adcde9a37ce0), -_f(0xb7cbf8f2d0e270),\n    -_f(0x2b3f803c770f580), -_f(0x18c05d008644d490),\n    _f2(2737, 0x3ce4b1d74e1e0), -_f2(4017, 0xdf79eceb980b0),\n    _f(0x30ac41edd5123540), _f(0x7e3ade121a8e0530),\n    -_f(0x45ec5d28a0fecf60), _f(0x3577aaf625fa910),\n    _f(0x7292b77d2ccfc9), _f2(64511, 0xd2b3c15fc4079),\n    # C4[1], coeff of eps^4, polynomial in n of order 19\n    -_f(0x14469ef39280), -_f(0x1b74a6d65900), -_f(0x25fc6724f380),\n    -_f(0x35e25bf6c800), -_f(0x4eb76c6a3c80), -_f(0x771a92ddb700),\n    -_f(0xbc1644489d80), -_f(0x13946cde25600),\n    -_f(0x22eaf36054680), -_f(0x44349dbbbd500),\n    -_f(0x976a625a56780), -_f(0x1989ef99e16400),\n    -_f(0x6150e2c16e3080), -_f(0x38c68feccea3300),\n    _f(0x1963a1a8e71b2e80), -_f(0x2849f713f5ed7200),\n    _f(0xd30bac57bb18580), _f(0x105e1a36741daf00),\n    -_f(0xc8c696e03b05b80), _f(0x1feab31d626d154),\n    _f2(9215, 0xf98764c489b7f),\n    # C4[1], coeff of eps^3, polynomial in n of order 20\n    -_f(0xa4172dfa1c0), -_f(0xd77fb109ed0), -_f(0x11fc3eda7860),\n    -_f(0x1879b9235cf0), -_f(0x2209eb95db00), -_f(0x308bcfa5f110),\n    -_f(0x47510fa29da0), -_f(0x6c88ffcf6f30), -_f(0xac6dd3019440),\n    -_f(0x120fcca63eb50), -_f(0x206b8121592e0),\n    -_f(0x3fc3a9ace7970), -_f(0x8ea4f3b556d80),\n    -_f(0x18488ccc5b2d90), -_f(0x5db9d9787df820),\n    -_f(0x37d6c7544511bb0), _f(0x1a02f9f8abfbf940),\n    -_f(0x2d9fe91163ac57d0), _f(0x18b01234447992a0),\n    _f(0x46ed1c414c80a10), -_f(0x57c56c90ceabfa7),\n    _f2(9215, 0xf98764c489b7f),\n    # C4[1], coeff of eps^2, polynomial in n of order 21\n    -_f(0x2271f7278cc0), -_f(0x2c3f5c6ec900), -_f(0x399dc5a18140),\n    -_f(0x4c2bebb96280), -_f(0x6670101499c0), -_f(0x8c75450f5400),\n    -_f(0xc4e9f8733e40), -_f(0x11b3ff75a0580),\n    -_f(0x1a3e7cf3fd6c0), -_f(0x2853a9e02df00),\n    -_f(0x40b8bca6ccb40), -_f(0x6da2a9d234880),\n    -_f(0xc6fc7477c83c0), -_f(0x18bdddb834aa00),\n    -_f(0x37ff6cf7616840), -_f(0x9a5f4811c06b80),\n    -_f(0x25bde21729de0c0), -_f(0x16ea24b2a28ff500),\n    _f2(2841, 0x69c686bdbaac0), -_f2(5560, 0x9d73ff6dcae80),\n    _f2(4369, 0xdffb6688d240), -_f(0x4cccbefeb4d67b22),\n    _f2(64511, 0xd2b3c15fc4079),\n    # C4[1], coeff of eps^1, polynomial in n of order 22\n    -_f(0xd0da1980ba0), -_f(0x10803fb20d70), -_f(0x151a70ced0c0),\n    -_f(0x1b569dc61a10), -_f(0x23ecd2ce6de0), -_f(0x2ff80cba60b0),\n    -_f(0x413672596700), -_f(0x5a7b8b75a550), -_f(0x8082f2984020),\n    -_f(0xbb859b75abf0), -_f(0x11a6bf1637d40),\n    -_f(0x1b9a143813890), -_f(0x2d2aacb8da260),\n    -_f(0x4e2c5253a0f30), -_f(0x914a9e2ed3380),\n    -_f(0x128a302f4ef3d0), -_f(0x2b2226f5e6b4a0),\n    -_f(0x7a36190e0daa70), -_f(0x1e8d8643836a9c0),\n    -_f(0x129e3dd12414f710), _f2(2184, 0x86ffdb3446920),\n    -_f2(3276, 0xca7fc8ce69db0), _f(0x5999897e7da4e4fd),\n    _f2(64511, 0xd2b3c15fc4079),\n    # C4[2], coeff of eps^23, polynomial in n of order 0\n    10384, _f(854125125),\n    # C4[2], coeff of eps^22, polynomial in n of order 1\n    _f(61416608), 15713412, _f(0x35f1be97217),\n    # C4[2], coeff of eps^21, polynomial in n of order 2\n    _f(1053643008), -_f(709188480), _f(436906360), _f(0x18f301bf7f77),\n    # C4[2], coeff of eps^20, polynomial in n of order 3\n    _f(0x45823cb069c0), -_f(0x3dc56cd10180), _f(0x15b4532d4340),\n    _f(0x5946b207ad8), _f(0xf72bf6e15a9abe5),\n    # C4[2], coeff of eps^19, polynomial in n of order 4\n    _f(0x1b1b08a8c6e00), -_f(0x1a1dea5249180), _f(0xc1b857255700),\n    -_f(0x8a94db95d080), _f(0x5209b9749ec8),\n    _f(0x3a6f4368c13f04a5),\n    # C4[2], coeff of eps^18, polynomial in n of order 5\n    _f(0x13c972f90d64d60), -_f(0x12d8369dbbbb080),\n    _f(0xa013fa80d7c1a0), -_f(0x95d1a2bb4de840),\n    _f(0x30a495fb9aa5e0), _f(0xc95efc891d64c),\n    _f2(107519, 0xb480ecf4f161f),\n    # C4[2], coeff of eps^17, polynomial in n of order 6\n    _f(0x4b31e4eff4bc00), -_f(0x4190c8b5d5de00),\n    _f(0x27770ac0842800), -_f(0x270a0d33995200),\n    _f(0x10c9f01b859400), -_f(0xd056352974600),\n    _f(0x74f9dc1f6f260), _f2(15359, 0xf536fd4790329),\n    # C4[2], coeff of eps^16, polynomial in n of order 7\n    _f(0x39908ef33285d00), -_f(0x2a7d467835cbe00),\n    _f(0x1e0505551ade700), -_f(0x1bf3204cf26d400),\n    _f(0xe195527d96f100), -_f(0xe0af5ccd52ea00),\n    _f(0x41681113e87b00), _f(0x1112b429bab2a0),\n    _f2(107519, 0xb480ecf4f161f),\n    # C4[2], coeff of eps^15, polynomial in n of order 8\n    _f(0xf8fa0142055000), -_f(0x8f8aa7832e8a00),\n    _f(0x7d6f3ddfb47c00), -_f(0x62d1e182b7be00),\n    _f(0x3bb149eddea800), -_f(0x3be3b3e26a7200),\n    _f(0x175d0d17dad400), -_f(0x14371cfc4fa600),\n    _f(0xa8f8f5855a060), _f2(15359, 0xf536fd4790329),\n    # C4[2], coeff of eps^14, polynomial in n of order 9\n    _f(0x21490cd145715e0), -_f(0xe087822f191900),\n    _f(0xf91f2bb3d29820), -_f(0x949428c90dc2c0),\n    _f(0x7371ad50b34a60), -_f(0x63c52e9a850c80),\n    _f(0x301579a22c8ca0), -_f(0x33552a69ca1640),\n    _f(0xcc2c8c733bee0), _f(0x35f5f30acfbec),\n    _f2(15359, 0xf536fd4790329),\n    # C4[2], coeff of eps^13, polynomial in n of order 10\n    _f(0x29bb6acaa073ef00), -_f(0xc930d526d728e80),\n    _f(0xf55c2b3103d0c00), -_f(0x63b9281a5449980),\n    _f(0x6acdfd5dbb92900), -_f(0x441c8fce3be0480),\n    _f(0x2be797a45cb8600), -_f(0x2aec3395f438f80),\n    _f(0xec70ff5d376300), -_f(0xedc27143c9fa80),\n    _f(0x7039bcd0124e68), _f2(107519, 0xb480ecf4f161f),\n    # C4[2], coeff of eps^12, polynomial in n of order 11\n    -_f(0x17ce935fc610ad40), -_f(0x5d5bbde81a902580),\n    _f(0x2dcc12fb45c89240), -_f(0xc1c61e98a479e00),\n    _f(0x10183633a5ddf1c0), -_f(0x672de318faa1680),\n    _f(0x64ee85310393140), -_f(0x481cf983db0cf00),\n    _f(0x2299f24f52810c0), -_f(0x271fc56086d0780),\n    _f(0x79dac155045040), _f(0x20c44d35dada38),\n    _f2(107519, 0xb480ecf4f161f),\n    # C4[2], coeff of eps^11, polynomial in n of order 12\n    -_f(0x6b8bdbaa2666e600), _f2(2706, 0x6d4e4332c7e80),\n    -_f(0x201eb2939ffc7500), -_f(0x605f6d97c740b880),\n    _f(0x32fb1ca66ccebc00), -_f(0xb85f2dd585e0f80),\n    _f(0x10b7dbe9dec0ed00), -_f(0x6e454f6a0fd4680),\n    _f(0x594f6f139205e00), -_f(0x4c204810d601d80),\n    _f(0x16a875347934f00), -_f(0x1be72589c185480),\n    _f(0xb5a396e2ccd788), _f2(107519, 0xb480ecf4f161f),\n    # C4[2], coeff of eps^10, polynomial in n of order 13\n    _f(0x332d666e095e20), _f(0x205e97ebfb32780),\n    -_f(0xf80bf36cd359f20), _f(0x19615ff8d71e0640),\n    -_f(0x61aef235a414c60), -_f(0xe1fda0393083b00),\n    _f(0x83e2ad192fc7660), -_f(0x18ece140ef0fc40),\n    _f(0x26bbb213037c920), -_f(0x11a4c9418dd9d80),\n    _f(0x9ec708de66cbe0), -_f(0xaee5994e9b7ec0),\n    _f(0x1626e135e59ea0), _f(0x610ef2b6b35c4),\n    _f2(15359, 0xf536fd4790329),\n    # C4[2], coeff of eps^9, polynomial in n of order 14\n    _f(0x1b709db1871200), _f(0x51a2a024c26b00),\n    _f(0x157c554050bb400), _f(0xddb41f944653d00),\n    -_f(0x6d182f563006aa00), _f2(2991, 0xf7eb0ae304f00),\n    -_f(0x387b65599c618800), -_f(0x64242336a83ddf00),\n    _f(0x4282c6eaa3899a00), -_f(0xa8fc3afb1e6cd00),\n    _f(0x1040dddbf0493c00), -_f(0x9184bc07b2bfb00),\n    _f(0x281ea22622bde00), -_f(0x3dc59bc648ee900),\n    _f(0x13fb78815b4ca90), _f2(107519, 0xb480ecf4f161f),\n    # C4[2], coeff of eps^8, polynomial in n of order 15\n    _f(0xacc0646b5180), _f(0x1753663f74b00), _f(0x3994d0061e480),\n    _f(0xadc1fbdd72e00), _f(0x2e87a44adab780),\n    _f(0x1eaeb3451821100), -_f(0xf937e414930b580),\n    _f(0x1c27d8b21df37400), -_f(0xaa5908f76fee280),\n    -_f(0xe1c8d327ee92900), _f(0xb2675f22d49b080),\n    -_f(0x19e66cd66684600), _f(0x1f3a47aa5ea8380),\n    -_f(0x18da246c74e6300), _f(0x10dd3b80dd1680),\n    _f(0x3f21f272d2a30), _f2(15359, 0xf536fd4790329),\n    # C4[2], coeff of eps^7, polynomial in n of order 16\n    _f(0x2957d7da1000), _f(0x4c28ba8a3700), _f(0x9714a6610e00),\n    _f(0x14a5ff52a4500), _f(0x33af2f78d8c00), _f(0x9e87298409300),\n    _f(0x2b4e15dbd10a00), _f(0x1d4c6da210ea100),\n    -_f(0xf6c4a6847e2f800), _f(0x1da98c51a6b5ef00),\n    -_f(0xe1270d810dcfa00), -_f(0xd23a021f3080300),\n    _f(0xd3b280b26948400), -_f(0x22fd890d309b500),\n    _f(0x119ef453c630200), -_f(0x1959af9980da700),\n    _f(0x5959078fa70870), _f2(15359, 0xf536fd4790329),\n    # C4[2], coeff of eps^6, polynomial in n of order 17\n    _f(0x511612baa2a0), _f(0x87a79de92a00), _f(0xee2dd20af160),\n    _f(0x1bbcfaf32f4c0), _f(0x37ba524fb5020), _f(0x7b9b8f2a45f80),\n    _f(0x13a76fcf6fdee0), _f(0x3d717a0fbe0a40),\n    _f(0x112dc752f02bda0), _f(0xbfa002cc4689500),\n    -_f(0x694405622017f3a0), _f2(3484, 0x979f3cbb89fc0),\n    -_f2(2088, 0x4fe2045ae14e0), -_f(0x49f87439584d3580),\n    _f(0x6c3e90c1455479e0), -_f(0x1afff07538f04ac0),\n    -_f(0x1a0f4cdf3b62760), -_f(0x112f9b85f9ebf7c),\n    _f2(107519, 0xb480ecf4f161f),\n    # C4[2], coeff of eps^5, polynomial in n of order 18\n    _f(0x181437e05500), _f(0x25c7b1fe6a80), _f(0x3d5ebd606800),\n    _f(0x67dd27f0e580), _f(0xb8ac7d2a7b00), _f(0x15ce71e5cc080),\n    _f(0x2c7c6a3654e00), _f(0x6460c05d0bb80), _f(0x1046637cd7a100),\n    _f(0x340d46956b9680), _f(0xef5f1bde883400),\n    _f(0xacec6aed73c1180), -_f(0x63ea680d7ea23900),\n    _f2(3605, 0xecc3861a0ec80), -_f2(2759, 0xc804a6c40e600),\n    -_f(0x212a787bd0571880), _f(0x70c6a0884332ed00),\n    -_f(0x31a5fa2db58d3d80), _f(0x5033807138f7d98),\n    _f2(107519, 0xb480ecf4f161f),\n    # C4[2], coeff of eps^4, polynomial in n of order 19\n    _f(0x6f3f0983c40), _f(0xa6cf9192980), _f(0x100e50e166c0),\n    _f(0x197f658cec00), _f(0x29f706a6f140), _f(0x480b7a0eae80),\n    _f(0x821ecd9c1bc0), _f(0xfa1d1da0b100), _f(0x2081a78802640),\n    _f(0x4aefd4add3380), _f(0xc730805b650c0), _f(0x28f491e04e7600),\n    _f(0xc2d07512dddb40), _f(0x92e539684c6b880),\n    -_f(0x5a2096cfc695fa40), _f2(3598, 0x9cd1e91b83b00),\n    -_f2(3553, 0x1d49601c5efc0), _f(0x31a5fa2db58d3d80),\n    _f(0x3760835a5e313ac0), -_f(0x1bed5cb9b61f7298),\n    _f2(107519, 0xb480ecf4f161f),\n    # C4[2], coeff of eps^3, polynomial in n of order 20\n    _f(273006835200), _f(395945493120), _f(586817304320),\n    _f(891220401024), _f(0x1440886f800), _f(0x20a73015480),\n    _f(0x36a4a027900), _f(0x5f8b4acad80), _f(0xb01798c3a00),\n    _f(0x15a2eb8a6680), _f(0x2e235b147b00), _f(0x6d6a30f2bf80),\n    _f(0x12c54474b7c00), _f(0x40129870df880), _f(0x13e41ecc817d00),\n    _f(0xfcf67c8cf45180), -_f(0xa65f288fe794200),\n    _f(0x1cea83a477ce0a80), -_f(0x240239aaff748100),\n    _f(0x1547221396f36380), -_f(0x4e04d247d427178),\n    _f2(15359, 0xf536fd4790329),\n    # C4[2], coeff of eps^2, polynomial in n of order 21\n    _f(317370445920), _f(448806691200), _f(646426411680),\n    _f(950282020800), _f(0x14ccaecc4e0), _f(0x201acdf4e00),\n    _f(0x33093819720), _f(0x53ed06eb440), _f(0x8f8eb441960),\n    _f(0x1013bf0bfa80), _f(0x1e750d7baba0), _f(0x3dc4346800c0),\n    _f(0x88729901ade0), _f(0x150e863aba700), _f(0x3c89c1e8d8020),\n    _f(0xd9efed463cd40), _f(0x47e39644808260),\n    _f(0x3d1b0c8706d5380), -_f(0x2af704cef0cdeb60),\n    _f(0x7c1ef17245e119c0), -_f2(2184, 0x86ffdb3446920),\n    _f(0x333329ff2339a76c), _f2(107519, 0xb480ecf4f161f),\n    # C4[3], coeff of eps^23, polynomial in n of order 0\n    70576, _f(29211079275),\n    # C4[3], coeff of eps^22, polynomial in n of order 1\n    -_f(31178752), _f(16812224), _f(0x192c8c2464f),\n    # C4[3], coeff of eps^21, polynomial in n of order 2\n    -_f(135977211392), _f(37023086848), _f(9903771944),\n    _f(0xb98f5d0044051),\n    # C4[3], coeff of eps^20, polynomial in n of order 3\n    -_f(0x30f8b0f5c00), _f(0x12d79f66800), -_f(0x115c7023400),\n    _f(606224480400), _f(0xa7c6f527b4f7c7),\n    # C4[3], coeff of eps^19, polynomial in n of order 4\n    -_f(0x3317d68847dc00), _f(0x19fc69dd236700),\n    -_f(0x1c6d14df7ace00), _f(0x6cfe4fac52d00),\n    _f(0x1d99f24357808), _f2(30105, 0x847604e86c8c1),\n    # C4[3], coeff of eps^18, polynomial in n of order 5\n    -_f(0x15b0eba45ef8000), _f(0xf79bdd24a10000),\n    -_f(0xf32a8559288000), _f(0x563281b24a8000),\n    -_f(0x5920796c2f8000), _f(0x29f7b73471c480),\n    _f2(150527, 0x964e188a1ebc5),\n    # C4[3], coeff of eps^17, polynomial in n of order 6\n    -_f(0x1c02d0336ef1800), _f(0x1d91ba24525dc00),\n    -_f(0x163d203e4811000), _f(0xb8e8b252aa8400),\n    -_f(0xd2485de6110800), _f(0x2a40e341b4ac00),\n    _f(0xbb70f2cbcf360), _f2(150527, 0x964e188a1ebc5),\n    # C4[3], coeff of eps^16, polynomial in n of order 7\n    -_f(0x58b4aa16ae3000), _f(0x7fa0a14380e000),\n    -_f(0x429ab6e3829000), _f(0x383428ed0d4000),\n    -_f(0x32e93ebd99f000), _f(0x108fe88bbda000),\n    -_f(0x13ba86ffa65000), _f(0x868b4ab8e3340),\n    _f2(21503, 0xf0e695ca96ad3),\n    # C4[3], coeff of eps^15, polynomial in n of order 8\n    -_f(0xaedfc7febee000), _f(0xe403ca9386ec00),\n    -_f(0x5568aa53f7a800), _f(0x76f3d9af940400),\n    -_f(0x475f28b7bb7000), _f(0x29018461d69c00),\n    -_f(0x2ed89591f13800), _f(0x74380445fb400),\n    _f(0x21274712bcba0), _f2(21503, 0xf0e695ca96ad3),\n    # C4[3], coeff of eps^14, polynomial in n of order 9\n    -_f(0x231ca125e5c8000), _f(753027184687 << 17),\n    -_f(0x97f88531f38000), _f(0xee839ade908000),\n    -_f(0x572a9cdd748000), _f(0x65a05d4f5f0000),\n    -_f(0x4ce11756538000), _f(0x177f524c958000),\n    -_f(0x20e57338048000), _f(0xc4518e260f380),\n    _f2(21503, 0xf0e695ca96ad3),\n    # C4[3], coeff of eps^13, polynomial in n of order 10\n    -_f(0x44ebd4477ad4f200), _f(0x9a6a6024b320f00),\n    -_f(0xe915ce102d6a800), _f(0xb28d5273bcee100),\n    -_f(0x37fa968ec235e00), _f(0x68974b850671300),\n    -_f(0x2a735b9bf505400), _f(0x20513dd7a7f6500),\n    -_f(0x220360a9be2ca00), _f(0x36d1c1a3f49700),\n    _f(0x10369a2227fd98), _f2(150527, 0x964e188a1ebc5),\n    # C4[3], coeff of eps^12, polynomial in n of order 11\n    _f(0x52462bb828351400), _f(0x4a4d1c14e6172800),\n    -_f(0x4ced32c430d22400), _f(0xb52b1b0c2492000),\n    -_f(0xd058359466b1c00), _f(0xd07709dd3bd1800),\n    -_f(0x30072e56aae5400), _f(0x605c027d5629000),\n    -_f(0x32e58b8ebb44c00), _f(0x108221f23a90800),\n    -_f(0x1a7ac7295958400), _f(0x836be4086f28d0),\n    _f2(150527, 0x964e188a1ebc5),\n    # C4[3], coeff of eps^11, polynomial in n of order 12\n    _f(0x48f7bc8748dd3400), -_f2(2561, 0x7f9f9673a4700),\n    _f(0x601d0ed1c7f2b600), _f(0x449204e4f86d4300),\n    -_f(0x56194f80f81a8800), _f(0xea108cfa6f6ed00),\n    -_f(0xa7ad46bd016c600), _f(0xef32c344e507700),\n    -_f(0x30a1762ff0e4400), _f(0x4a78ea25c4fa100),\n    -_f(0x3c3cca9d1bd4200), _f(0x22cbd76a022b00),\n    _f(0x9df3abb037278), _f2(150527, 0x964e188a1ebc5),\n    # C4[3], coeff of eps^10, polynomial in n of order 13\n    -_f(0x9607df2a17c000), -_f(0x739371b7f3d8000),\n    _f(0x4688c366039fc000), -_f2(2611, 0x8a66cbfc04000),\n    _f(0x7056fbc7b1c24000), _f(0x3af7506941670000),\n    -_f(0x601cadbaecf24000), _f(0x14affbea17164000),\n    -_f(0x6daccbfd0bfc000), _f(0x1036680bb42b8000),\n    -_f(0x42f04a7d6e84000), _f(0x246d9b6ab84c000),\n    -_f(0x37cce3b53adc000), _f(0xd43660c7def0c0),\n    _f2(150527, 0x964e188a1ebc5),\n    # C4[3], coeff of eps^9, polynomial in n of order 14\n    -_f(0x115a7e31ff400), -_f(0x3c90c47c29600),\n    -_f(0x1311ab10640800), -_f(0xf2246746703a00),\n    _f(0x99b5e8c5c68e400), -_f(0x179a6d9c8ead9e00),\n    _f(0x12bd250608495000), _f(0x63777cc9563be00),\n    -_f(0xf1ef7972c204400), _f(0x47367775d725a00),\n    -_f(0x63378c7bb15800), _f(0x22d63078c5cb600),\n    -_f(0xf8707c83e76c00), -_f(0xb0e06786eae00),\n    -_f(0x5e4438ea922f0), _f2(21503, 0xf0e695ca96ad3),\n    # C4[3], coeff of eps^8, polynomial in n of order 15\n    -_f(0x1fe011d85800), -_f(0x4f422fb05000), -_f(0xe40060fc8800),\n    -_f(0x32e664e9c2000), -_f(0x1078ec0ef63800),\n    -_f(0xd864902b71f000), _f(0x8fab71292d19800),\n    -_f(0x179bbec0170ac000), _f(0x15c925f1e4f1e800),\n    _f(0x2c36e0d96c07000), -_f(0x100d07856dfe4800),\n    _f(0x6d9c3efea16a000), -_f(0x13ac4a3567f800),\n    _f(0x15b22a4de1ed000), -_f(0x1452d18e2b42800),\n    _f(0x32eab893d697a0), _f2(21503, 0xf0e695ca96ad3),\n    # C4[3], coeff of eps^7, polynomial in n of order 16\n    -_f(0x5003ad66000), -_f(0xa79ae296200), -_f(0x17d9e9f5d400),\n    -_f(0x3c8762ad2600), -_f(0xb232a56ac800), -_f(0x28dbf6ee52a00),\n    -_f(0xda6199e36bc00), -_f(0xba74c6aa46ee00),\n    _f(0x825959cb764d000), -_f(0x17232e4c4e57f200),\n    _f(0x190bf0598fc65c00), -_f(0x27c51cb844db600),\n    -_f(0xf8735fc98339800), _f(0xa28217eef524600),\n    -_f(0xfc87c9cb4a8c00), -_f(0x3228ffc0ed7e00),\n    -_f(0x387bf611406670), _f2(21503, 0xf0e695ca96ad3),\n    # C4[3], coeff of eps^6, polynomial in n of order 17\n    -_f(0x62d694dc000), -_f(97716157 << 17), -_f(0x173b38f24000),\n    -_f(0x319b0ca1c000), -_f(0x7361a893c000), -_f(0x12be5bef38000),\n    -_f(0x38b3402cc4000), -_f(0xd6a4403694000),\n    -_f(0x4a69cc1535c000), -_f(0x42816c266fd0000),\n    _f(0x315cb6a39d95c000), -_f2(2449, 0xcf91c36a8c000),\n    _f2(3143, 0x2391393fc4000), -_f(0x466890d45f668000),\n    -_f(0x50368754849c4000), _f(0x594b313771cfc000),\n    -_f(0x1cc16f4e99cdc000), _f(0x1e8d8643836a9c0),\n    _f2(150527, 0x964e188a1ebc5),\n    # C4[3], coeff of eps^5, polynomial in n of order 18\n    -_f(0x1136c8f5600), -_f(0x1e3b013df00), -_f(0x37550c23000),\n    -_f(0x6a508e10100), -_f(0xd872daf0a00), -_f(0x1d8dd6618300),\n    -_f(0x468422b6a400), -_f(0xbc9d06f02500), -_f(0x24d784d09be00),\n    -_f(0x90d122dffa700), -_f(0x347ca809f91800),\n    -_f(0x31861ec3b2ac900), _f(0x276d051382ba8e00),\n    -_f2(2163, 0x55347fa444b00), _f2(3319, 0x8d7da907400),\n    -_f2(2191, 0xdbae56666ed00), -_f(0x47e396448082600),\n    _f(0x3577aaf625fa9100), -_f(0x1449fb28d544cb98),\n    _f2(150527, 0x964e188a1ebc5),\n    # C4[3], coeff of eps^4, polynomial in n of order 19\n    -_f(58538142720), -_f(97662466048), -_f(168340530176),\n    -_f(301206585344), -_f(562729180160), -_f(0x1017e988800),\n    -_f(0x21987b95400), -_f(0x4b78a99d000), -_f(0xb9ccd9f8c00),\n    -_f(0x202de3701800), -_f(0x68b6655d0400), -_f(0x1af3df037e000),\n    -_f(0xa515b5f563c00), -_f(0xa65924698da800),\n    _f(0x8fc72c890104c00), -_f(0x226e597c6e0df000),\n    _f(0x3ee7237bf0721400), -_f(0x3d1b0c8706d53800),\n    _f(0x1e8d8643836a9c00), -_f(0x634bf45b6b1a7b0),\n    _f2(50175, 0xdcc4b2d8b4e97),\n    # C4[3], coeff of eps^3, polynomial in n of order 20\n    -_f(16545868800), -_f(26558972160), -_f(43799006720),\n    -_f(74458311424), -_f(131016159232), -_f(239806362880),\n    -_f(459418505728), -_f(928488660736), -_f(0x1d19ea9f400),\n    -_f(0x43b761f2900), -_f(0xad7cf6b5600), -_f(0x1f71d9841300),\n    -_f(0x6bcf7c0df800), -_f(0x1d7abbebd1d00),\n    -_f(0xc1b8d2e919a00), -_f(0xd3e226aef40700),\n    _f(0xc94a0b2634a0400), -_f(0x3577aaf625fa9100),\n    _f(0x6aef55ec4bf52200), -_f(0x634bf45b6b1a7b00),\n    _f(0x22221bff6cd11a48), _f2(150527, 0x964e188a1ebc5),\n    # C4[4], coeff of eps^23, polynomial in n of order 0\n    567424, _f(87633237825),\n    # C4[4], coeff of eps^22, polynomial in n of order 1\n    _f(2135226368), _f(598833664), _f(0x1358168b64fd9),\n    # C4[4], coeff of eps^21, polynomial in n of order 2\n    _f(23101878272), -_f(26986989568), _f(11760203136),\n    _f(0x4f869592664b5),\n    # C4[4], coeff of eps^20, polynomial in n of order 3\n    _f(0xa4d4b674a00), -_f(0xbdc38ed8400), _f(0x20274dfee00),\n    _f(635330794560), _f(0x436914c918b5d6d),\n    # C4[4], coeff of eps^19, polynomial in n of order 4\n    _f(0x481bf9079c000), -_f(0x3c015f7917000), _f(0x133447522e000),\n    -_f(0x195b19983d000), _f(0xa0f15f7a8700),\n    _f2(3518, 0xd3a367a37a66d),\n    # C4[4], coeff of eps^18, polynomial in n of order 5\n    _f(0x1e9f26efa689000), -_f(0x100c94382c2c000),\n    _f(0xabead3c2e1f000), -_f(0xc04c79a6f96000),\n    _f(0x18fb8548735000), _f(0x76d40a3ef6c00),\n    _f2(193535, 0x781b441f4c16b),\n    # C4[4], coeff of eps^17, polynomial in n of order 6\n    _f(0x780536a0606000), -_f(0x28779739e97000),\n    _f(0x3a9fdf130c4000), -_f(0x2860390cb81000),\n    _f(0xcce73d3902000), -_f(0x1322aa5844b000),\n    _f(0x6bd0a3ad69900), _f2(27647, 0xec962e4d9d27d),\n    # C4[4], coeff of eps^16, polynomial in n of order 7\n    _f(0x45af61c2ad1f800), -_f(0x1b140a5252fd000),\n    _f(0x348e789bd7f6800), -_f(0x137ac7aed3be000),\n    _f(0x11da35dc2ded800), -_f(0x12097ef153ff000),\n    _f(0x186b19645c4800), _f(0x7935fe20ccb00),\n    _f2(193535, 0x781b441f4c16b),\n    # C4[4], coeff of eps^15, polynomial in n of order 8\n    _f(0x788485be348000), -_f(0xbf417480965000),\n    _f(0xbdad05e3bd6000), -_f(0x306dcc448df000),\n    _f(0x6c08266aea4000), -_f(0x364dbd52879000),\n    _f(0x13468d692f2000), -_f(0x1f6575294f3000),\n    _f(0x97982d7211100), _f2(27647, 0xec962e4d9d27d),\n    # C4[4], coeff of eps^14, polynomial in n of order 9\n    _f(0x99754be5293000), -_f(0x273b2ae73028000),\n    _f(0xa610233e31d000), -_f(0x8ee7336f99e000),\n    _f(0xd7a1a110827000), -_f(0x2f0d74b9c14000),\n    _f(0x4f375451ab1000), -_f(0x4002b6db48a000),\n    _f(0x20d804cbbb000), _f(0xa41d3b221400),\n    _f2(27647, 0xec962e4d9d27d),\n    # C4[4], coeff of eps^13, polynomial in n of order 10\n    _f(0x6016f6408271a000), -_f(0x1e7546e7a0d1b000),\n    _f(0x18e4e98f72c8000), -_f(0x113f96068e695000),\n    _f(0x6af41cd57176000), -_f(0x2590480c1d6f000),\n    _f(0x61253410a664000), -_f(0x1c92661c6269000),\n    _f(0xfa686d5b4d2000), -_f(0x188238347643000),\n    _f(0x60544135abb900), _f2(193535, 0x781b441f4c16b),\n    # C4[4], coeff of eps^12, polynomial in n of order 11\n    -_f2(2096, 0xf9dac0e4d8600), -_f(0xa96847f4d191400),\n    _f(0x644f115411ee9e00), -_f(0x2912ee32dfa61000),\n    -_f(0x81eeabcb01be00), -_f(0xfba8345c9670c00),\n    _f(0x9bbda8340726600), -_f(0x11537009b3f0800),\n    _f(0x51c2ea8aa8c0a00), -_f(0x2bb89caf7310400),\n    -_f(0x162bd9b163d200), -_f(0xac0895744a3c0),\n    _f2(193535, 0x781b441f4c16b),\n    # C4[4], coeff of eps^11, polynomial in n of order 12\n    -_f(0x296aa6e320b86000), _f(0x7d9f9f72af514800),\n    -_f2(2284, 0xfefdd7e855000), _f(0x8d22edc50949800),\n    _f(0x6581767b41ffc000), -_f(0x371ad32683bb1800),\n    -_f(0x915b5d6cd33000), -_f(0xbce7db3a027c800),\n    _f(0xd0ebaf65b57e000), -_f(0x1274db255bb7800),\n    _f(0x2970a5137d6f000), -_f(0x30b8535f9002800),\n    _f(0x8fa21d365c3780), _f2(193535, 0x781b441f4c16b),\n    # C4[4], coeff of eps^10, polynomial in n of order 13\n    _f(0x73aaee373e800), _f(0x6d942f05126000),\n    -_f(0x55d059f7fa72800), _f(0x114ee97e0f335000),\n    -_f(0x16053fa9ce763800), _f(0x4d23952dbcc4000),\n    _f(0xdda0de6f17eb800), -_f(0xa56bf33e63ad000),\n    _f(0x90dadc83efa800), -_f(0xbf52dd8df9e000),\n    _f(0x2172ab2d7549800), -_f(0x85ae20f708f000),\n    -_f(0x10c904999a7800), -_f(0xae78582fbfa00),\n    _f2(27647, 0xec962e4d9d27d),\n    # C4[4], coeff of eps^9, polynomial in n of order 14\n    _f(0x19fde85a2f000), _f(0x6b4aa2bef4800), _f(0x28c46a7eab6000),\n    _f(0x2827ed076a87800), -_f(0x210a7394d5283000),\n    _f(0x72396f4bbfb2a800), -_f2(2620, 0x4dc0771ddc000),\n    _f(0x40dce91ee367d800), _f(0x52592d2deb84b000),\n    -_f(0x5a9bf1fdd05df800), _f(0x10e48562d1f92000),\n    _f(0x1d4b91258bb3800), _f(0xaa81c5529799000),\n    -_f(0x6eadf18b1729800), _f(0xd0db43634fa080),\n    _f2(193535, 0x781b441f4c16b),\n    # C4[4], coeff of eps^8, polynomial in n of order 15\n    _f(0x45bda664400), _f(0xc8c97088800), _f(0x2a5a46b84c00),\n    _f(0xb467fe915000), _f(0x471c8a3c15400), _f(0x49361b74ae1800),\n    -_f(0x3fb304ab7e4a400), _f(0xedcc81cc3d0e000),\n    -_f(0x1834aac92fbf9c00), _f(0xe864613c6aba800),\n    _f(0x759492ec34a6c00), -_f(0xea1e49c1b0f9000),\n    _f(0x5db63d617b37400), _f(0x31083890113800),\n    -_f(0xa60c227ea8400), -_f(0x3b3da9a3dab180),\n    _f2(27647, 0xec962e4d9d27d),\n    # C4[4], coeff of eps^7, polynomial in n of order 16\n    _f(469241266176), _f(0x10545cac800), _f(0x2adf04bd000),\n    _f(0x7eec6985800), _f(0x1ba16d402000), _f(0x7a072d7ae800),\n    _f(0x322ca20e07000), _f(0x3657aa17207800),\n    -_f(0x3263434d5c54000), _f(0xcd0703e8db70800),\n    -_f(0x17ea571d4aa2f000), _f(0x141161dbf7ec9800),\n    -_f(0x57d62fedaaa000), -_f(0xce7cd449810d800),\n    _f(0x99132fccc31b000), -_f(0x27598ad75934800),\n    _f(0x18a5cd1eccf980), _f2(27647, 0xec962e4d9d27d),\n    # C4[4], coeff of eps^6, polynomial in n of order 17\n    _f(341540329472), _f(727668064256), _f(0x180da872800),\n    _f(0x3b0b3acd000), _f(0x9f94c3e7800), _f(0x1e8177ec2000),\n    _f(0x6e3ee471c800), _f(0x1fbe99a5b7000), _f(0xdb641b5c91800),\n    _f(0xfc08a38932c000), -_f(0xfb6a7929bd39800),\n    _f(0x466e762d282a1000), -_f2(2430, 0x8d7c552bc4800),\n    _f2(2721, 0xe81cb8f96000), -_f(0x4dc0eea70f08f800),\n    -_f(0x1b9eda123c275000), _f(0x2eba54dfb9ee5800),\n    -_f(0xf46c321c1b54e00), _f2(193535, 0x781b441f4c16b),\n    # C4[4], coeff of eps^5, polynomial in n of order 18\n    _f(31160807424), _f(61322082304), _f(3864763 << 15),\n    _f(276675840000), _f(646157094912), _f(0x17cd936d800),\n    _f(0x429614e2000), _f(0xd3b41886800), _f(0x31f7c0917000),\n    _f(0xf21fb6ecf800), _f(0x6ee892beec000), _f(0x889688d5b28800),\n    -_f(0x944ac482b6bf000), _f(0x2e4469f00aa71800),\n    -_f(0x73c7760d5050a000), _f2(2642, 0x7d1cf3a18a800),\n    -_f2(2185, 0x6d0b55a915000), _f(0x3d1b0c8706d53800),\n    -_f(0xb7512595147fa80), _f2(193535, 0x781b441f4c16b),\n    # C4[4], coeff of eps^4, polynomial in n of order 19\n    _f(1806732800), _f(3354817536), _f(6474635776),\n    _f(13058088960), _f(27705484800), _f(62364503040),\n    _f(150565728768), _f(395569133568), _f(0x10ca075be00),\n    _f(0x37f6c332400), _f(0xdf0e61c4a00), _f(0x47dfa8095000),\n    _f(0x236014b495600), _f(0x2f60ae04237c00),\n    -_f(0x38c125ca4a81e00), _f(0x13dd33a066e0a800),\n    -_f(0x389cd322becd1200), _f(0x5ba892ca8a3fd400),\n    -_f(0x4c61cfa8c88a8600), _f(0x18d2fd16dac69ec0),\n    _f2(193535, 0x781b441f4c16b),\n    # C4[5], coeff of eps^23, polynomial in n of order 0\n    14777984, _f(0xd190230980f),\n    # C4[5], coeff of eps^22, polynomial in n of order 1\n    -_f(104833024), _f(39440128), _f(0x62c2748ec71),\n    # C4[5], coeff of eps^21, polynomial in n of order 2\n    -_f(45133008896), _f(5079242752), _f(1557031040),\n    _f(0x4f869592664b5),\n    # C4[5], coeff of eps^20, polynomial in n of order 3\n    -_f(0xecd417f0000), _f(40869997 << 17), -_f(0x78cb3050000),\n    _f(0x28d58610800), _f(0x5263fcf5c8de3f7),\n    # C4[5], coeff of eps^19, polynomial in n of order 4\n    -_f(0xf4977948ac000), _f(0xfebd5b2ac3000),\n    -_f(0xf90c852576000), _f(0x1257a8b1e1000), _f(0x5e1a6b95fb00),\n    _f2(21503, 0xf0e695ca96ad3),\n    # C4[5], coeff of eps^18, polynomial in n of order 5\n    -_f(0x25dd48c154000), _f(0x596953f850000),\n    -_f(0x2b40cdd44c000), _f(8741106765 << 15), -_f(0x1ab27f0a04000),\n    _f(0x7e701f145600), _f2(3071, 0xfdd7cc41833d5),\n    # C4[5], coeff of eps^17, polynomial in n of order 6\n    -_f(0x4776cd8c606000), _f(0x6d8a47bfe9f000),\n    -_f(0x187da0ea944000), _f(0x2b758d37739000),\n    -_f(0x22fd5e6d302000), _f(0x107133def3000), _f(0x56ef801cd100),\n    _f2(33791, 0xe845c6d0a3a27),\n    # C4[5], coeff of eps^16, polynomial in n of order 7\n    -_f(0x6b41dfbb0208000), _f(0x3281e67a9bd0000),\n    -_f(0x11e76a3ab618000), _f(0x2fa8791e0ae0000),\n    -_f(0xef00faafea8000), _f(0x82642584ff0000),\n    -_f(0xce6c8b206b8000), _f(0x33a2c6e1f0cc00),\n    _f2(236543, 0x59e86fb479711),\n    # C4[5], coeff of eps^15, polynomial in n of order 8\n    -_f(0xd8a9f7e5e7f8000), _f(0x75ff062faeb000),\n    -_f(0x57d41a79bb5a000), _f(0x470a22b15ed1000),\n    -_f(0x941305430fc000), _f(0x2571b5b524d7000),\n    -_f(0x15ee8622281e000), -_f(0x810fd11a43000),\n    -_f(0x3b143f8fcc100), _f2(236543, 0x59e86fb479711),\n    # C4[5], coeff of eps^14, polynomial in n of order 9\n    -_f(0x11e2c065bec000), _f(597104820847 << 17),\n    -_f(0x2505ead2add4000), _f(0x375d7cf9da8000),\n    -_f(0x7d85d31b2fc000), _f(0xc6e2597bcf0000),\n    -_f(0x1c3d1fca5e4000), _f(0x26eff911138000),\n    -_f(0x32d040ac10c000), _f(0xa3358a5620200),\n    _f2(33791, 0xe845c6d0a3a27),\n    # C4[5], coeff of eps^13, polynomial in n of order 10\n    -_f(0x4e0fa2600780a000), _f(0x4e911c6aabd6b000),\n    -_f(0x693532675088000), _f(0x218ccc46e845000),\n    -_f(0x117da33185e06000), _f(0x4517905378bf000),\n    -_f(0x10ba1c1d3344000), _f(0x5399b73b0419000),\n    -_f(0x1d57ddd62302000), -_f(0x2b67cba006d000),\n    -_f(0x17851f6bed3f00), _f2(236543, 0x59e86fb479711),\n    # C4[5], coeff of eps^12, polynomial in n of order 11\n    _f2(2256, 0x5da9961330000), -_f(0x4ad304d1312a0000),\n    -_f(0x4061e93f2b8f0000), _f(0xb6157e3bfe7 << 19),\n    -_f(0x11e106d1afa10000), -_f(0x36aeeaeb6e60000),\n    -_f(0xfcdce3949630000), _f(0x8af39fd661c0000),\n    _f(0x3d8b99e8cb0000), _f(0x2f252d98fde0000),\n    -_f(0x29a890537770000), _f(0x62af9738c95800),\n    _f2(236543, 0x59e86fb479711),\n    # C4[5], coeff of eps^11, polynomial in n of order 12\n    _f(0x2c14f5cef5da000), -_f(0xb44f7f3a7637800),\n    _f(0x144dd8529649b000), -_f(0xdf6b3f6a9dda800),\n    -_f(0x611b67a2b3c4000), _f(0xe4e2f0fafbb2800),\n    -_f(0x51c03e2adea3000), -_f(0xd7c7b9cb0f0800),\n    -_f(0x16096a592762000), _f(0x1c9393e7a4dc800),\n    -_f(0x381de14f961000), -_f(0xdc6f16ca46800),\n    -_f(0xd4311572ebf80), _f2(33791, 0xe845c6d0a3a27),\n    # C4[5], coeff of eps^10, polynomial in n of order 13\n    -_f(0x1f7df788da000), -_f(0x249f1260a08000),\n    _f(0x2485dbf6336a000), -_f(0x9fd55d1961bc000),\n    _f(0x13ee6db114d4e000), -_f(0x114ab28a688b0000),\n    -_f(0x1759d6f434ee000), _f(0xe5435dae775c000),\n    -_f(0x883ae4654d0a000), _f(0x6d085594a8000),\n    -_f(0x3b594ff4c6000), _f(0x18b250a1c574000),\n    -_f(0xc2af3f725e2000), _f(0x11b5d0e5824b00),\n    _f2(33791, 0xe845c6d0a3a27),\n    # C4[5], coeff of eps^9, polynomial in n of order 14\n    -_f(0x45be4df1f000), -_f(0x154928d5d8800),\n    -_f(0x9c093f54d6000), -_f(0xbe1dac855c3800),\n    _f(0xc8c35d9371b3000), -_f(0x3b27b3be7f71e800),\n    _f2(2105, 0xa27ce5e51c000), -_f2(2266, 0x2251e75549800),\n    _f(0x215c4ca42d605000), _f(0x52b0fbc40a45b800),\n    -_f(0x52abb6acf6af2000), _f(0x14cab8bdb5a70800),\n    _f(0x422bb90412d7000), _f(0xaa8f3f42195800),\n    -_f(0x18c864fb5207380), _f2(236543, 0x59e86fb479711),\n    # C4[5], coeff of eps^8, polynomial in n of order 15\n    -_f(0x323b5354000), -_f(0xa77c1e58000), -_f(0x297150a3c000),\n    -_f(0xd25b36ef0000), -_f(0x64c6f9d464000),\n    -_f(0x816d981c288000), _f(0x91bbe6aceeb4000),\n    -_f(0x2ea0d03ef98a0000), _f(0x748c356a9df8c000),\n    -_f2(2463, 0x44f7c770b8000), _f(0x55038197b9ea4000),\n    _f(0x24c2f502435b0000), -_f(0x557a28e333384000),\n    _f(0x319d6c472db18000), -_f(0xa981b88bf66c000),\n    _f(0x2452a78bb4ce00), _f2(236543, 0x59e86fb479711),\n    # C4[5], coeff of eps^7, polynomial in n of order 16\n    -_f(864347 << 15), -_f(77318326272), -_f(233990443008),\n    -_f(807704598528), -_f(0x306255a2000), -_f(0x100b9fcf2800),\n    -_f(0x8171cf3d7000), -_f(0xb08a440213800),\n    _f(0xd5be3a4ba94000), -_f(0x4af12ff99ea4800),\n    _f(0xd4237986197f000), -_f(0x15530c89262c5800),\n    _f(0x12c48ba350cca000), -_f(0x590f07b7ee96800),\n    -_f(0x53e376c2a7ab000), _f(0x5b3d559eedc8800),\n    -_f(0x1b37127cacfe280), _f2(33791, 0xe845c6d0a3a27),\n    # C4[5], coeff of eps^6, polynomial in n of order 17\n    -_f(10859667456), -_f(199353 << 17), -_f(67565166592),\n    -_f(190510645248), -_f(597656199168), -_f(65543051 << 15),\n    -_f(0x869fe272000), -_f(0x2f027b014000), -_f(0x19275e39a6000),\n    -_f(0x24c57351390000), _f(0x305c8c1f55c6000),\n    -_f(0x12c56d86cea0c000), _f(0x3c958c9a69892000),\n    -_f(0x75427b7d716c8000), _f2(2264, 0x2021045b7e000),\n    -_f(0x686da1b1a7d04000), _f(0x2b2226f5e6b4a000),\n    -_f(0x7a36190e0daa700), _f2(236543, 0x59e86fb479711),\n    # C4[5], coeff of eps^5, polynomial in n of order 18\n    -_f(392933376), -_f(865908736), -_f(61523 << 15), -_f(5002905600),\n    -_f(13385551872), -_f(39200544768), -_f(128292691968),\n    -_f(483473385472), -_f(0x1ffab8af000), -_f(0xbdf5200f800),\n    -_f(0x6d0cb854c000), -_f(0xacf22c5668800),\n    _f(0xfa276dd8697000), -_f(0x6c92e41ed151800),\n    _f(0x18f8d3300c4da000), -_f(0x382fdb2c1baea800),\n    _f(0x4f13f21826f5d000), -_f(0x3d1b0c8706d53800),\n    _f(0x131873ea3222a180), _f2(236543, 0x59e86fb479711),\n    # C4[6], coeff of eps^23, polynomial in n of order 0\n    _f(20016128), _f(0x45dab658805),\n    # C4[6], coeff of eps^22, polynomial in n of order 1\n    _f(12387831808), _f(4069857792), _f(0x1b45118f2c973b),\n    # C4[6], coeff of eps^21, polynomial in n of order 2\n    _f(828267 << 17), -_f(2724645 << 16), _f(52104335360),\n    _f(0x22cae1700cc0f3),\n    # C4[6], coeff of eps^20, polynomial in n of order 3\n    _f(0x94a2566a8000), -_f(0x7736ce990000), _f(0x345f5a38000),\n    _f(0x11f45dc9000), _f(0x36c560e36413be89),\n    # C4[6], coeff of eps^19, polynomial in n of order 4\n    _f(6043548407 << 18), -_f(7867012491 << 16), _f(0xfe56696e0000),\n    -_f(6798211929 << 16), _f(0x66855efe5000),\n    _f2(3630, 0x89164e7bf8313),\n    # C4[6], coeff of eps^18, polynomial in n of order 5\n    _f(0x588efe4c176000), -_f(0xcc317e9b08000),\n    _f(0x2e65271667a000), -_f(0x1cb46908f84000),\n    -_f(0x7bc8d2682000), -_f(0x36524dd3a400),\n    _f2(39935, 0xe3f55f53aa1d1),\n    # C4[6], coeff of eps^17, polynomial in n of order 6\n    _f(0x2dbd6ef2050000), -_f(0x356ee7ee5e8000),\n    _f(0x65e2c9482e0000), -_f(0x1247a684858000),\n    _f(84899613015 << 16), -_f(0x1b548eba6c8000),\n    _f(0x5c900466be800), _f2(39935, 0xe3f55f53aa1d1),\n    # C4[6], coeff of eps^16, polynomial in n of order 7\n    -_f(0x3fff5b5aa54000), -_f(0x6a2cbaeaf348000),\n    _f(0x2b55e8782dc4000), -_f(0x69f22faba30000),\n    _f(0x26e11f54b9dc000), -_f(0x105d41b83118000),\n    -_f(0x12eb1ab4e0c000), -_f(0x9530f9646a800),\n    _f2(279551, 0x3bb59b49a6cb7),\n    # C4[6], coeff of eps^15, polynomial in n of order 8\n    _f(0xf488f4012440000), -_f(0xb16a4f02dfc8000),\n    -_f(0x103bba4a90d0000), -_f(0x4da08c72a3d8000),\n    _f(0x45a11acaf220000), -_f(0x25f21bc63e8000),\n    _f(0x12fccd9d4510000), -_f(0x13e0eb3687f8000),\n    _f(0x356c2e9517d800), _f2(279551, 0x3bb59b49a6cb7),\n    # C4[6], coeff of eps^14, polynomial in n of order 9\n    _f(0x28c5c3199aad2000), _f(0x80d5fb17a810000),\n    _f(0x9c623a70694e000), -_f(0xf23c0600f3f4000),\n    _f(0x6928769f1ca000), -_f(0x1e8f96869bf8000),\n    _f(0x4f9253e0b846000), -_f(0x11e4e806cbfc000),\n    -_f(0x2dad19c0f3e000), -_f(0x1f2fac1e88dc00),\n    _f2(279551, 0x3bb59b49a6cb7),\n    # C4[6], coeff of eps^13, polynomial in n of order 10\n    -_f(0xdb139b99ca0000), -_f(0x5dbaf74a92790000),\n    _f(0x76a096067df << 19), _f(0x39f346109690000),\n    _f(964470918621 << 17), -_f(0x10aa5a9917350000),\n    _f(0x49bc5039b7c0000), _f(0x92ae304aad0000),\n    _f(0x32f3e8ddd3e0000), -_f(0x233311e51f10000),\n    _f(0x4483a6a16dd000), _f2(279551, 0x3bb59b49a6cb7),\n    # C4[6], coeff of eps^12, polynomial in n of order 11\n    -_f(0xfbf5c5edd078000), _f(0x1202fde81d5f0000),\n    -_f(0x454a07e84fa8000), -_f(0xbd470dafdb40000),\n    _f(0xb3ba7d182928000), -_f(0x155dacd6cc70000),\n    -_f(0xdc21a82d608000), -_f(0xe96f98256d << 17),\n    _f(0x167a9a9742c8000), -_f(0x7d81f52ed0000),\n    -_f(0x7ffde3fc68000), -_f(0xe287c62fa3000),\n    _f2(39935, 0xe3f55f53aa1d1),\n    # C4[6], coeff of eps^11, polynomial in n of order 12\n    -_f(283480971297 << 18), _f(0x5885fb25bf70000),\n    -_f(0xe5dec7019ee0000), _f(0x13305b31e4ed0000),\n    -_f(0x9278e6008580000), -_f(0x855a0cffe9d0000),\n    _f(0xd3d848f453e0000), -_f(0x4a9f485fda70000),\n    -_f(0xfb7b0fc02c0000), -_f(0x691c2e87310000),\n    _f(806997945397 << 17), -_f(0x9585db4a3b0000),\n    _f(0xa77dc54c8f000), _f2(39935, 0xe3f55f53aa1d1),\n    # C4[6], coeff of eps^10, polynomial in n of order 13\n    _f(0x6d0001099000), _f(0x9a74d7ec5c000), -_f(0xc18676170e1000),\n    _f(0x45ad31c7f8a2000), -_f(0xc7369375e55b000),\n    _f(0x1364b97f822e8000), -_f(0xe19539447ad5000),\n    -_f(0x26bf9b041ad2000), _f(0xce71cc8200b1000),\n    -_f(0x8c822446468c000), _f(0x12e554ec5f37000),\n    _f(0xa6c4f3e59ba000), _f(0x30bb36a52bd000),\n    -_f(0x34440d2d335600), _f2(39935, 0xe3f55f53aa1d1),\n    # C4[6], coeff of eps^9, polynomial in n of order 14\n    _f(0x8fcb3bf8000), _f(0x33bb5d994000), _f(7630295323 << 16),\n    _f(0x2a77da91fcc000), -_f(0x38ac5a4a0098000),\n    _f(0x160f7571fbc04000), -_f(0x45e92df7f7ee0000),\n    _f(0x7f01d3c372a3c000), -_f(0x7edcf27daed28000),\n    _f(0x27dfe4585e674000), _f(0x38a548f303090000),\n    -_f(0x4b87231069354000), _f(0x24d2adef05648000),\n    -_f(0x6a5625dbc71c000), -_f(0x18371a5d233400),\n    _f2(279551, 0x3bb59b49a6cb7),\n    # C4[6], coeff of eps^8, polynomial in n of order 15\n    _f(257397153792), _f(991547604992), _f(0x42cbc6ea000),\n    _f(843451707 << 15), _f(0xe8a206ec6000), _f(0x170dd449e34000),\n    -_f(0x2102346c3b5e000), _f(0xe0052eca6690000),\n    -_f(0x318a0eacb0b82000), _f(0x690a1407d3eec000),\n    -_f2(2182, 0xb601e615a6000), _f(0x61bf435eea348000),\n    -_f(0xe133a8622dca000), -_f(0x2748b26bf705c000),\n    _f(0x220d7d12f9812000), -_f(0x98dbd66bee38400),\n    _f2(279551, 0x3bb59b49a6cb7),\n    # C4[6], coeff of eps^7, polynomial in n of order 16\n    _f(9867 << 18), _f(8045019136), _f(854413 << 15),\n    _f(6856031 << 14), _f(8304289 << 16), _f(0x3232f0a4000),\n    _f(0x1ec960fb8000), _f(0x3439f07dcc000), -_f(0x50f0148aea0000),\n    _f(0x25bf6de530f4000), -_f(0x9635a567bcf8000),\n    _f(0x1735ee17e1e1c000), -_f(0x25a38fef60750000),\n    _f(0x2834884b55944000), -_f(0x1b3dfda8c79a8000),\n    _f(0xa981b88bf66c000), -_f(0x1cc16f4e99cdc00),\n    _f2(93183, 0xbe91de6de243d),\n    # C4[6], coeff of eps^6, polynomial in n of order 17\n    _f(169275392), _f(7007 << 16), _f(1348931584), _f(4358086656),\n    _f(15819288576), _f(66522136576), _f(339738054656),\n    _f(0x214230b6000), _f(0x15d36ff77000), _f(0x2803a29af8000),\n    -_f(0x43d629aab87000), _f(0x232131018d3a000),\n    -_f(0x9e155c86fb85000), _f(0x1c3aabf38857c000),\n    -_f(0x361b1ee81aa83000), _f(0x44dcb2f8dc1be000),\n    -_f(0x325282c98d281000), _f(0xf46c321c1b54e00),\n    _f2(279551, 0x3bb59b49a6cb7),\n    # C4[7], coeff of eps^23, polynomial in n of order 0\n    _f(383798272), _f(0x7ee24536c1115),\n    # C4[7], coeff of eps^22, polynomial in n of order 1\n    -_f(127523 << 20), _f(34096398336), _f(0x1f771442bd4c09),\n    # C4[7], coeff of eps^21, polynomial in n of order 2\n    -_f(197998999 << 19), -_f(4877411 << 18), -_f(541336621056),\n    _f(0x3b1ebd1165abdce9),\n    # C4[7], coeff of eps^20, polynomial in n of order 3\n    -_f(72076029 << 20), _f(33625235 << 21), -_f(96370351 << 20),\n    _f(0x142b356fa000), _f(0x3f32837c872a7963),\n    # C4[7], coeff of eps^19, polynomial in n of order 4\n    -_f(2249063181 << 20), _f(51883720989 << 18), -_f(12233087197 << 19),\n    -_f(1430728833 << 18), -_f(0x9e5c3c48b000),\n    _f2(46079, 0xdfa4f7d6b097b),\n    # C4[7], coeff of eps^18, polynomial in n of order 5\n    -_f(19747083035 << 20), _f(5938781185 << 22), -_f(1899464157 << 20),\n    _f(2895955713 << 21), -_f(6730130079 << 20), _f(0x490d94cd2c000),\n    _f2(46079, 0xdfa4f7d6b097b),\n    # C4[7], coeff of eps^17, polynomial in n of order 6\n    -_f(0xf7ed31ddbc0000), _f(90436020675 << 17),\n    -_f(11671406741 << 19), _f(0x58222c9a6a0000),\n    -_f(28407954085 << 18), -_f(6936211449 << 17),\n    -_f(0x1e088e877c800), _f2(46079, 0xdfa4f7d6b097b),\n    # C4[7], coeff of eps^16, polynomial in n of order 7\n    -_f(688523975841 << 19), -_f(83606333811 << 20),\n    -_f(805224840035 << 19), _f(106897379463 << 21),\n    _f(22163836107 << 19), _f(88997602799 << 20),\n    -_f(151227539575 << 19), _f(0x28435aa5d4b000),\n    _f2(322559, 0x1d82c6ded425d),\n    # C4[7], coeff of eps^15, polynomial in n of order 8\n    _f(557482450381 << 20), _f(0xfbb72a664ee0000),\n    -_f(0xa9b81eb4ea40000), -_f(914196917515 << 17),\n    -_f(409568792563 << 19), _f(0x4780d431da60000),\n    -_f(0x94b9eca98c0000), -_f(82946761135 << 17),\n    -_f(0x238b221440f800), _f2(322559, 0x1d82c6ded425d),\n    # C4[7], coeff of eps^14, polynomial in n of order 9\n    -_f(0x59ec90b7ba5 << 20), _f(233491821731 << 23),\n    _f(762388756437 << 20), _f(284558585577 << 21),\n    -_f(0xf0573a4eb1 << 20), _f(25275836579 << 22),\n    _f(22761999561 << 20), _f(112734627747 << 21),\n    -_f(126941809085 << 20), _f(0x2fd680f7c84000),\n    _f2(322559, 0x1d82c6ded425d),\n    # C4[7], coeff of eps^13, polynomial in n of order 10\n    _f(0xaca84931355 << 19), _f(0x66fb36095ad << 18),\n    -_f(0x2e7424117bf << 21), _f(0xcac2488dd23 << 18),\n    _f(762738574899 << 19), -_f(579380269895 << 18),\n    -_f(968587667327 << 20), _f(0x73cbed27abc0000),\n    _f(75006191505 << 19), -_f(0xdb0f0aaec0000),\n    -_f(0x63c3eeba719000), _f2(322559, 0x1d82c6ded425d),\n    # C4[7], coeff of eps^12, polynomial in n of order 11\n    _f(626455667783 << 20), -_f(567623567285 << 21),\n    _f(0xf5d2e8872d << 20), -_f(13896712169 << 23),\n    -_f(798923144989 << 20), _f(364556664237 << 21),\n    -_f(129034049335 << 20), -_f(20826366601 << 22),\n    -_f(51607570881 << 20), _f(46156477135 << 21),\n    -_f(30888509275 << 20), _f(0x6042659ec2000),\n    _f2(46079, 0xdfa4f7d6b097b),\n    # C4[7], coeff of eps^11, polynomial in n of order 12\n    _f(20777559885 << 20), -_f(569775860071 << 18),\n    _f(0xe9ac41f6db << 19), -_f(0xef8ba34c8740000),\n    _f(598911876783 << 21), -_f(0x7cf99a74ecc0000),\n    -_f(957375911139 << 19), _f(0xc30e342965c0000),\n    -_f(423483761553 << 20), _f(35714168193 << 18),\n    _f(79169625311 << 19), _f(68905136075 << 18),\n    -_f(0x2f872ef9963000), _f2(46079, 0xdfa4f7d6b097b),\n    # C4[7], coeff of eps^10, polynomial in n of order 13\n    -_f(18988489 << 20), -_f(129894471 << 22), _f(12886996881 << 20),\n    -_f(47548938145 << 21), _f(367560238059 << 20),\n    -_f(106884143981 << 23), _f(0x11c056e4d45 << 20),\n    -_f(470740881351 << 21), _f(64061082015 << 20),\n    _f(158992278163 << 22), -_f(634972709127 << 20),\n    _f(135054066707 << 21), -_f(41343081645 << 20),\n    -_f(0x7382e0581c000), _f2(46079, 0xdfa4f7d6b097b),\n    # C4[7], coeff of eps^9, polynomial in n of order 14\n    -_f(7074089 << 17), -_f(95481295 << 16), -_f(249804765 << 18),\n    -_f(0x6befb7d790000), _f(0xb301172bea0000),\n    -_f(0x5978c2137030000), _f(0x2fbc3e73e21 << 19),\n    -_f(0x3f35c80b0f2d0000), _f(0x6ce3ff0d91260000),\n    -_f(0x7761d1ce42b70000), _f(0x468057c8ed840000),\n    _f(0x1bcb7dfb99f0000), -_f(0x26d98474089e0000),\n    _f(0x1d375a3e49150000), -_f(0x7d9dd8c3269dc00),\n    _f2(322559, 0x1d82c6ded425d),\n    # C4[7], coeff of eps^8, polynomial in n of order 15\n    -_f(47805 << 18), -_f(105987 << 19), -_f(1141959 << 18),\n    -_f(2026311 << 20), -_f(89791009 << 18), -_f(1389164665 << 19),\n    _f(79467759189 << 18), -_f(86766818957 << 21),\n    _f(0xbfc5c91f6ec0000), -_f(0x487b27f822f << 19),\n    _f(0x4a699e0854c40000), -_f(0x69d85e75b6d << 20),\n    _f(0x66f7a9fb575c0000), -_f(0x828d4038ea5 << 19),\n    _f(0x60dc69748cd << 18), -_f(0x3f90a5347c68800),\n    _f2(322559, 0x1d82c6ded425d),\n    # C4[7], coeff of eps^7, polynomial in n of order 16\n    -_f(143 << 20), -_f(8085 << 16), -_f(16121 << 17), -_f(9810411520),\n    -_f(212205 << 18), -_f(6380297 << 16), -_f(37701755 << 17),\n    -_f(0x95a9db330000), _f(9764754545 << 19), -_f(0xaf0fe765fd0000),\n    _f(0x3a2548493060000), -_f(0xc8bdaa520270000),\n    _f(0x7871cc979b1 << 18), -_f(0x3353672f26710000),\n    _f(0x3c89c1e8d8020000), -_f(0x2a606e22fd9b0000),\n    _f(0xc94a0b2634a0400), _f2(322559, 0x1d82c6ded425d),\n    # C4[8], coeff of eps^23, polynomial in n of order 0\n    _f(7579 << 15), _f(0x4f56c0c24f87),\n    # C4[8], coeff of eps^22, polynomial in n of order 1\n    -_f(1660549 << 21), -_f(23648625 << 16), _f(0x38232f25bccb5275),\n    # C4[8], coeff of eps^21, polynomial in n of order 2\n    _f(9646043 << 20), -_f(24019457 << 19), _f(74048359 << 15),\n    _f(0x99262e0aeeff091),\n    # C4[8], coeff of eps^20, polynomial in n of order 3\n    _f(183351957435 << 19), -_f(32827160863 << 20),\n    -_f(6509093591 << 19), -_f(0x6677b4e9b0000),\n    _f2(365566, 0xff4ff27401803),\n    # C4[8], coeff of eps^19, polynomial in n of order 4\n    _f(67207908275 << 21), -_f(201042891 << 19), _f(44011096899 << 20),\n    -_f(85786308153 << 19), _f(0x195ba7c1ef8000),\n    _f2(365566, 0xff4ff27401803),\n    # C4[8], coeff of eps^18, polynomial in n of order 5\n    -_f(13677739 << 21), -_f(1155605701 << 23), _f(11263093395 << 21),\n    -_f(1170886701 << 22), -_f(422863935 << 21), -_f(9609473031 << 16),\n    _f2(52223, 0xdb549059b7125),\n    # C4[8], coeff of eps^17, polynomial in n of order 6\n    -_f(105328611 << 20), -_f(0xe3d4e1d7080000), _f(9484526351 << 21),\n    _f(4879307961 << 19), _f(13462873311 << 20), -_f(19014362253 << 19),\n    _f(0x45bace6718000), _f2(52223, 0xdb549059b7125),\n    # C4[8], coeff of eps^16, polynomial in n of order 7\n    _f(0x4802f7e045b << 18), -_f(787109524929 << 19),\n    -_f(616781829503 << 18), -_f(267630157067 << 20),\n    _f(0xf57f439a67 << 18), -_f(26811748075 << 19),\n    -_f(29646920051 << 18), -_f(0x25c0cef2988000),\n    _f2(365566, 0xff4ff27401803),\n    # C4[8], coeff of eps^15, polynomial in n of order 8\n    _f(61397460605 << 22), _f(0x9d011c37ef80000),\n    _f(907553463943 << 20), -_f(0xc0a473ee4980000),\n    -_f(21778698179 << 21), -_f(22179652453 << 19),\n    _f(224024408237 << 20), -_f(212571195095 << 19),\n    _f(0x216a7bfadc8000), _f2(365566, 0xff4ff27401803),\n    # C4[8], coeff of eps^14, polynomial in n of order 9\n    _f(304663697949 << 21), -_f(51558232553 << 24),\n    _f(126037118963 << 21), _f(28559389965 << 22), _f(12939195833 << 21),\n    -_f(17167224841 << 23), _f(24466781775 << 21), _f(2302458607 << 22),\n    _f(456812693 << 21), -_f(0xde9c5a4230000),\n    _f2(52223, 0xdb549059b7125),\n    # C4[8], coeff of eps^13, polynomial in n of order 10\n    -_f(0x71eca5b57e5 << 20), _f(0x8d98ab5c54b << 19),\n    _f(497026592783 << 22), -_f(0xacc7c9e1d9b << 19),\n    _f(0x35a7c7b51dd << 20), -_f(81233361377 << 19),\n    -_f(253988603057 << 21), -_f(954606696519 << 19),\n    _f(577751554079 << 20), -_f(333997527437 << 19),\n    _f(0x1689b847558000), _f2(365566, 0xff4ff27401803),\n    # C4[8], coeff of eps^12, polynomial in n of order 11\n    -_f(0x367f7beda59 << 19), _f(0x45996b8ba21 << 20),\n    -_f(0xdceb5493fc3 << 19), _f(0x18843cb160d << 22),\n    -_f(0x21789a51fed << 19), -_f(0x41cde5aa8b9 << 20),\n    _f(0x95638f58ea9 << 19), -_f(984566251123 << 21),\n    -_f(435207598721 << 19), _f(219309948781 << 20),\n    _f(274765170197 << 19), -_f(0x12cf88fa6ff0000),\n    _f2(365566, 0xff4ff27401803),\n    # C4[8], coeff of eps^11, polynomial in n of order 12\n    -_f(2296713447 << 21), _f(78660216877 << 19),\n    -_f(180155131441 << 20), _f(0xeee01825bf << 19),\n    -_f(237440161933 << 22), _f(0x2042cbdcd31 << 19),\n    -_f(652079196855 << 20), -_f(325903664957 << 19),\n    _f(324695717299 << 21), -_f(0xf97e21ed4b << 19),\n    _f(203483994947 << 20), -_f(52367903417 << 19),\n    -_f(0x8a9d0d3688000), _f2(52223, 0xdb549059b7125),\n    # C4[8], coeff of eps^10, polynomial in n of order 13\n    _f(1140139 << 21), _f(9315711 << 23), -_f(1126319139 << 21),\n    _f(5199009105 << 22), -_f(52132384161 << 21), _f(20770352565 << 24),\n    -_f(357583911087 << 21), _f(262213551639 << 22),\n    -_f(498523677485 << 21), _f(60302341333 << 23),\n    _f(57310064901 << 21), -_f(90954779619 << 22),\n    _f(124029244935 << 21), -_f(0xf0a5fe0ce50000),\n    _f2(52223, 0xdb549059b7125),\n    # C4[8], coeff of eps^9, polynomial in n of order 14\n    _f(54009 << 20), _f(849303 << 19), _f(2623117 << 21),\n    _f(364892913 << 19), -_f(5919882885 << 20), _f(0xdd0128d3580000),\n    -_f(81910832913 << 22), _f(0x2229f5f9745 << 19),\n    -_f(0x2a9587ee883 << 20), _f(0x982f47b44bf << 19),\n    -_f(0x30e1739ffd1 << 21), _f(0xb09887dee19 << 19),\n    -_f(0x35101f0ee01 << 20), _f(0x25e6f19ce93 << 19),\n    -_f(0x306e34ba4668000), _f2(365566, 0xff4ff27401803),\n    # C4[8], coeff of eps^8, polynomial in n of order 15\n    _f(2295 << 17), _f(5831 << 18), _f(72709 << 17), _f(151011 << 19),\n    _f(7936467 << 17), _f(147906885 << 18), -_f(0x4d5c1f23e0000),\n    _f(14228642337 << 20), -_f(697203474513 << 17),\n    _f(0x51fe4e56b0c0000), -_f(0xeb59f3d2e860000),\n    _f(0x3e0c14100a1 << 19), -_f(0x305340db42ea0000),\n    _f(0xd6c75923d41 << 18), -_f(0x2452a78bb4ce0000),\n    _f(0xa981b88bf66c000), _f2(365566, 0xff4ff27401803),\n    # C4[9], coeff of eps^23, polynomial in n of order 0\n    -_f(45613 << 15), _f(0xa0b835899f381),\n    # C4[9], coeff of eps^22, polynomial in n of order 1\n    -_f(4663637 << 21), _f(25498473 << 16), _f(0x8f68f0ea15ed989),\n    # C4[9], coeff of eps^21, polynomial in n of order 2\n    -_f(313787291 << 20), -_f(89546863 << 19), -_f(880826107 << 15),\n    _f2(5306, 0x2ad1d52b570cd),\n    # C4[9], coeff of eps^20, polynomial in n of order 3\n    _f(1691751267 << 22), _f(5868457511 << 23), -_f(9710518895 << 22),\n    _f(43389881073 << 17), _f2(408574, 0xe11d1e092eda9),\n    # C4[9], coeff of eps^19, polynomial in n of order 4\n    -_f(45668361181 << 21), _f(290185772373 << 19),\n    -_f(19310638221 << 20), -_f(10267037529 << 19),\n    -_f(0x11435a10568000), _f2(408574, 0xe11d1e092eda9),\n    # C4[9], coeff of eps^18, polynomial in n of order 5\n    -_f(206915608111 << 21), _f(8005795847 << 23), _f(6676372983 << 21),\n    _f(24266221119 << 22), -_f(29173391667 << 21), _f(99595856143 << 16),\n    _f2(408574, 0xe11d1e092eda9),\n    # C4[9], coeff of eps^17, polynomial in n of order 6\n    -_f(15515879355 << 20), -_f(36184750873 << 19),\n    -_f(22177807609 << 21), _f(62194714929 << 19), _f(693176727 << 20),\n    -_f(1189966821 << 19), -_f(0x5829503048000),\n    _f2(58367, 0xd70428dcbd8cf),\n    # C4[9], coeff of eps^16, polynomial in n of order 7\n    _f(38512528273 << 23), _f(67772681235 << 24), -_f(74410968653 << 23),\n    -_f(3984568679 << 25), -_f(6152374683 << 23), _f(13551170801 << 24),\n    -_f(11115057401 << 23), _f(24916219839 << 18),\n    _f2(408574, 0xe11d1e092eda9),\n    # C4[9], coeff of eps^15, polynomial in n of order 8\n    -_f(162298412813 << 22), _f(0xff4317f5080000),\n    _f(119179074953 << 20), _f(0xf6d36e74980000),\n    -_f(63634032589 << 21), _f(61952932453 << 19), _f(10785104899 << 20),\n    _f(4191026519 << 19), -_f(0xd59ae9d0e8000),\n    _f2(58367, 0xd70428dcbd8cf),\n    # C4[9], coeff of eps^14, polynomial in n of order 9\n    _f(162971496591 << 21), _f(33816350309 << 24),\n    -_f(394783736543 << 21), _f(85862751303 << 22),\n    _f(32462900611 << 21), -_f(6369607931 << 23), -_f(39152071083 << 21),\n    _f(18189729581 << 22), -_f(9249690569 << 21), _f(6171570141 << 16),\n    _f2(58367, 0xd70428dcbd8cf),\n    # C4[9], coeff of eps^13, polynomial in n of order 10\n    _f(0x52d38896f8b << 20), -_f(0xd3acdf03195 << 19),\n    _f(0x1195b2a1cff << 22), _f(0xca9586e4a280000),\n    -_f(0x486f0b6e413 << 20), _f(0x7ca2ce8a83f << 19),\n    -_f(610236546241 << 21), -_f(717677267559 << 19),\n    _f(159176229583 << 20), _f(291633515411 << 19),\n    -_f(0x110150274e88000), _f2(408574, 0xe11d1e092eda9),\n    # C4[9], coeff of eps^12, polynomial in n of order 11\n    _f(143956869023 << 22), -_f(243108013001 << 23),\n    _f(0x101d5eb1615 << 22), -_f(213537904349 << 25),\n    _f(0x183f300cffb << 22), -_f(350529456991 << 23),\n    -_f(545724783247 << 22), _f(274121340227 << 24),\n    -_f(785966166377 << 22), _f(135225754699 << 23),\n    -_f(28607511667 << 22), -_f(0x3ee3b308260000),\n    _f2(408574, 0xe11d1e092eda9),\n    # C4[9], coeff of eps^11, polynomial in n of order 12\n    _f(2520290511 << 21), -_f(0xc4ddd05ba80000),\n    _f(304931349961 << 20), -_f(0x21230116cd7 << 19),\n    _f(735928623493 << 22), -_f(0x9d254a11d99 << 19),\n    _f(0x6510e717cdf << 20), -_f(0xa95d67804fb << 19),\n    _f(0x1055dd17e45 << 21), _f(0x239bcd685c3 << 19),\n    -_f(0x22ba072788b << 20), _f(0x2c142a0db61 << 19),\n    -_f(0x59b3a2379f58000), _f2(408574, 0xe11d1e092eda9),\n    # C4[9], coeff of eps^10, polynomial in n of order 13\n    -_f(29393 << 21), -_f(283917 << 23), _f(41246777 << 21),\n    -_f(233407875 << 22), _f(2943398547 << 21), -_f(1525553871 << 24),\n    _f(35837133917 << 21), -_f(38620600629 << 22),\n    _f(123783976375 << 21), -_f(36640057007 << 23),\n    _f(124599494337 << 21), -_f(35830670759 << 22),\n    _f(24805848987 << 21), -_f(0x1ce0b816070000),\n    _f2(19455, 0xf256b84994845),\n    # C4[9], coeff of eps^9, polynomial in n of order 14\n    -_f(1615 << 20), -_f(29393 << 19), -_f(106267 << 21),\n    -_f(17534055 << 19), _f(342711075 << 20), -_f(8430692445 << 19),\n    _f(7306600119 << 22), -_f(270344204403 << 19),\n    _f(450573674005 << 20), -_f(0x20c896b3e69 << 19),\n    _f(0xfa29e850f7 << 21), -_f(0x5aaf3103bff << 19),\n    _f(0x3002653e387 << 20), -_f(0x3f2b92b02f5 << 19),\n    _f(0x914a9e2ed338000), _f2(408574, 0xe11d1e092eda9),\n    # C4[10], coeff of eps^23, polynomial in n of order 0\n    _f(137 << 21), _f(0x8757c14b789b),\n    # C4[10], coeff of eps^22, polynomial in n of order 1\n    -_f(1152691 << 20), -_f(6743919 << 17), _f(0x9e817610332f06f),\n    # C4[10], coeff of eps^21, polynomial in n of order 2\n    _f(79722199 << 23), -_f(113766289 << 22), _f(225212673 << 18),\n    _f2(5864, 0xb6105765cc00b),\n    # C4[10], coeff of eps^20, polynomial in n of order 3\n    _f(64857768639 << 21), -_f(2220489243 << 22), -_f(2012833515 << 21),\n    -_f(19551629405 << 18), _f2(451582, 0xc2ea499e5c34f),\n    # C4[10], coeff of eps^19, polynomial in n of order 4\n    _f(656353407 << 24), _f(1031809317 << 22), _f(12215335391 << 23),\n    -_f(12759999497 << 22), _f(18944346729 << 18),\n    _f2(451582, 0xc2ea499e5c34f),\n    # C4[10], coeff of eps^18, polynomial in n of order 5\n    -_f(62867132873 << 20), -_f(83127481829 << 22),\n    _f(173460262689 << 20), _f(8415873627 << 21), -_f(1024568181 << 20),\n    -_f(82657907689 << 17), _f2(451582, 0xc2ea499e5c34f),\n    # C4[10], coeff of eps^17, polynomial in n of order 6\n    _f(69839518785 << 24), -_f(46975322289 << 23), -_f(5175253237 << 25),\n    -_f(10608265143 << 23), _f(12870275691 << 24), -_f(9303053053 << 23),\n    _f(8528136981 << 19), _f2(451582, 0xc2ea499e5c34f),\n    # C4[10], coeff of eps^16, polynomial in n of order 7\n    -_f(12671764325 << 22), _f(11821938135 << 23), _f(23903917953 << 22),\n    -_f(7023725731 << 24), _f(4254825447 << 22), _f(1372261021 << 23),\n    _f(755775181 << 22), -_f(6809268397 << 19),\n    _f2(64511, 0xd2b3c15fc4079),\n    # C4[10], coeff of eps^15, polynomial in n of order 8\n    _f(10583074157 << 26), -_f(84530118029 << 23), _f(12150058407 << 24),\n    _f(12380362825 << 23), -_f(838454291 << 25), -_f(10410407457 << 23),\n    _f(3974759309 << 24), -_f(1799658059 << 23), _f(156358707 << 19),\n    _f2(64511, 0xd2b3c15fc4079),\n    # C4[10], coeff of eps^14, polynomial in n of order 9\n    -_f(922119298407 << 20), _f(52944024001 << 23),\n    _f(329638564983 << 20), -_f(354979062141 << 21),\n    _f(493120994773 << 20), -_f(24099541823 << 22),\n    -_f(59503561293 << 20), _f(7459230081 << 21), _f(21243323153 << 20),\n    -_f(75576440907 << 17), _f2(64511, 0xd2b3c15fc4079),\n    # C4[10], coeff of eps^13, polynomial in n of order 10\n    -_f(328595996641 << 23), _f(0x1245cb281e3 << 22),\n    -_f(207527442829 << 25), _f(0x13d84cf39cd << 22),\n    -_f(169653271431 << 23), -_f(705690429577 << 22),\n    _f(256163704307 << 24), -_f(657414782367 << 22),\n    _f(103463476179 << 23), -_f(17233182197 << 22),\n    -_f(65863805931 << 18), _f2(451582, 0xc2ea499e5c34f),\n    # C4[10], coeff of eps^12, polynomial in n of order 11\n    -_f(60530460661 << 21), _f(129708905557 << 22),\n    -_f(783916037751 << 21), _f(215690023633 << 24),\n    -_f(0x287cc397f79 << 21), _f(0x174d319d033 << 22),\n    -_f(0x22bf2de15fb << 21), _f(172524970961 << 23),\n    _f(736992166659 << 21), -_f(554058611183 << 22),\n    _f(665956259969 << 21), -_f(0x4d7d212a0a40000),\n    _f2(451582, 0xc2ea499e5c34f),\n    # C4[10], coeff of eps^11, polynomial in n of order 12\n    -_f(31220211 << 24), _f(1576100141 << 22), -_f(5588687797 << 23),\n    _f(52675808031 << 22), -_f(22267080913 << 25),\n    _f(449824279121 << 22), -_f(432213499347 << 23),\n    _f(0x1275ac4a843 << 22), -_f(351080482641 << 24),\n    _f(0x10853170e75 << 22), -_f(314682628337 << 23),\n    _f(212227819111 << 22), -_f(520922828727 << 18),\n    _f2(451582, 0xc2ea499e5c34f),\n    # C4[10], coeff of eps^10, polynomial in n of order 13\n    _f(46189 << 20), _f(522291 << 22), -_f(90008149 << 20),\n    _f(613691925 << 21), -_f(9499950999 << 20), _f(6182507793 << 23),\n    -_f(187536069721 << 20), _f(270344204403 << 21),\n    -_f(0x11a7161219b << 20), _f(533756506129 << 22),\n    -_f(0x2a7db4d305d << 20), _f(0x159e458acd1 << 21),\n    -_f(0x1bcb7dfb99f << 20), _f(0x7e5725605ea0000),\n    _f2(451582, 0xc2ea499e5c34f),\n    # C4[11], coeff of eps^23, polynomial in n of order 0\n    -_f(7309 << 21), _f(0x2c95e8ad321065),\n    # C4[11], coeff of eps^22, polynomial in n of order 1\n    -_f(118877 << 30), _f(1675947 << 23), _f(0x7759dcb5574d50a7),\n    # C4[11], coeff of eps^21, polynomial in n of order 2\n    -_f(9105745 << 24), -_f(49846181 << 23), -_f(2866583251 << 18),\n    _f2(70655, 0xce6359e2ca823),\n    # C4[11], coeff of eps^20, polynomial in n of order 3\n    -_f(239228553 << 25), _f(1509768547 << 26), -_f(1393694995 << 25),\n    _f(7195205325 << 19), _f2(494590, 0xa4b77533898f5),\n    # C4[11], coeff of eps^19, polynomial in n of order 4\n    -_f(10520646403 << 25), _f(16651704531 << 23), _f(1510969677 << 24),\n    _f(227849937 << 23), -_f(40629886913 << 18),\n    _f2(494590, 0xa4b77533898f5),\n    # C4[11], coeff of eps^18, polynomial in n of order 5\n    -_f(737236949 << 28), -_f(83959015 << 31), -_f(449296547 << 28),\n    _f(188420603 << 30), -_f(243597193 << 28), _f(1420486123 << 21),\n    _f2(494590, 0xa4b77533898f5),\n    # C4[11], coeff of eps^17, polynomial in n of order 6\n    _f(1797306345 << 25), _f(7110272827 << 24), -_f(1494242189 << 26),\n    _f(407981949 << 24), _f(324085539 << 25), _f(232922271 << 24),\n    -_f(6431919403 << 19), _f2(70655, 0xce6359e2ca823),\n    # C4[11], coeff of eps^16, polynomial in n of order 7\n    -_f(59422002475 << 26), _f(4462082415 << 27), _f(11958968063 << 26),\n    -_f(116564371 << 28), -_f(9243946887 << 26), _f(3024840805 << 27),\n    -_f(1229077213 << 26), -_f(836978961 << 20),\n    _f2(494590, 0xa4b77533898f5),\n    # C4[11], coeff of eps^15, polynomial in n of order 8\n    _f(1450234755 << 27), _f(28955596425 << 24), -_f(20916501415 << 25),\n    _f(24148276875 << 24), -_f(639979965 << 26), -_f(3796939603 << 24),\n    _f(257117683 << 25), _f(1321384367 << 24), -_f(17153469915 << 19),\n    _f2(70655, 0xce6359e2ca823),\n    # C4[11], coeff of eps^14, polynomial in n of order 9\n    _f(2991071409 << 28), -_f(215656441 << 32), _f(2375561279 << 28),\n    -_f(29715609 << 30), -_f(1772722171 << 28), _f(262089343 << 31),\n    -_f(1227751437 << 28), _f(88909853 << 30), -_f(21460999 << 28),\n    -_f(1112906091 << 21), _f2(70655, 0xce6359e2ca823),\n    # C4[11], coeff of eps^13, polynomial in n of order 10\n    _f(48251719021 << 24), -_f(247802667483 << 23),\n    _f(59903451769 << 26), -_f(693923403733 << 23),\n    _f(362458490331 << 24), -_f(482970502063 << 23),\n    _f(22585671353 << 25), _f(201583163607 << 23),\n    -_f(128100703031 << 24), _f(147544368125 << 23),\n    -_f(0x43bae67ca340000), _f2(494590, 0xa4b77533898f5),\n    # C4[11], coeff of eps^12, polynomial in n of order 11\n    _f(488107587 << 25), -_f(1288790349 << 26), _f(9866997217 << 25),\n    -_f(3570890001 << 28), _f(64004720367 << 25), -_f(56017267579 << 26),\n    _f(152843494797 << 25), -_f(39981841137 << 27),\n    _f(123894347227 << 25), -_f(33286009449 << 26),\n    _f(21954601977 << 25), -_f(212227819111 << 19),\n    _f2(494590, 0xa4b77533898f5),\n    # C4[11], coeff of eps^11, polynomial in n of order 12\n    _f(735471 << 25), -_f(44046541 << 23), _f(188198857 << 24),\n    -_f(2177729631 << 23), _f(1156078693 << 26), -_f(30163144081 << 23),\n    _f(38781185247 << 24), -_f(159433761571 << 23),\n    _f(65649195941 << 25), -_f(342066863061 << 23),\n    _f(168318615157 << 24), -_f(212227819111 << 23),\n    _f(0x6f2df7ee67c0000), _f2(494590, 0xa4b77533898f5),\n    # C4[12], coeff of eps^23, polynomial in n of order 0\n    _f(173 << 24), _f(0x88d5e64011771),\n    # C4[12], coeff of eps^22, polynomial in n of order 1\n    -_f(163369 << 28), -_f(266903 << 29), _f2(14529, 0xb09bccfe817bf),\n    # C4[12], coeff of eps^21, polynomial in n of order 2\n    _f(26283479 << 29), -_f(21738605 << 28), _f(24285135 << 24),\n    _f2(76799, 0xca12f265d0fcd),\n    # C4[12], coeff of eps^20, polynomial in n of order 3\n    _f(6122492151 << 24), _f(880448149 << 25), _f(269123645 << 24),\n    -_f(4943792525 << 21), _f2(537598, 0x8684a0c8b6e9b),\n    # C4[12], coeff of eps^19, polynomial in n of order 4\n    -_f(616982441 << 28), -_f(2168310039 << 26), _f(1398586567 << 27),\n    -_f(817632445 << 26), _f(450511215 << 22),\n    _f2(537598, 0x8684a0c8b6e9b),\n    # C4[12], coeff of eps^18, polynomial in n of order 5\n    _f(1912616275 << 26), -_f(308159801 << 28), -_f(17594779 << 26),\n    _f(72918855 << 27), _f(66311031 << 26), -_f(47313631 << 26),\n    _f2(76799, 0xca12f265d0fcd),\n    # C4[12], coeff of eps^17, polynomial in n of order 6\n    _f(9134109 << 27), _f(1642561735 << 26), _f(58767343 << 28),\n    -_f(1299624495 << 26), _f(374812639 << 27), -_f(137300677 << 26),\n    -_f(61400001 << 22), _f2(76799, 0xca12f265d0fcd),\n    # C4[12], coeff of eps^16, polynomial in n of order 7\n    _f(118127909265 << 25), -_f(66457563795 << 26),\n    _f(64469127555 << 25), -_f(134108625 << 27), -_f(12700511691 << 25),\n    _f(295233743 << 26), _f(4531750951 << 25), -_f(13670656363 << 22),\n    _f2(537598, 0x8684a0c8b6e9b),\n    # C4[12], coeff of eps^15, polynomial in n of order 8\n    -_f(10859744975 << 29), _f(49132517315 << 26), _f(5188275715 << 27),\n    -_f(52074703975 << 26), _f(13295845745 << 28),\n    -_f(28808201009 << 26), _f(3853119361 << 27), -_f(278992987 << 26),\n    -_f(3626908831 << 22), _f2(537598, 0x8684a0c8b6e9b),\n    # C4[12], coeff of eps^14, polynomial in n of order 9\n    -_f(5262740745 << 26), _f(1142543055 << 29), -_f(12070462215 << 26),\n    _f(5779723245 << 27), -_f(6878321925 << 26), _f(125534415 << 28),\n    _f(3745400061 << 26), -_f(2112375473 << 27), _f(2351512319 << 26),\n    -_f(573315259 << 26), _f2(76799, 0xca12f265d0fcd),\n    # C4[12], coeff of eps^13, polynomial in n of order 10\n    -_f(345262775 << 27), _f(2254590065 << 26), -_f(721021595 << 29),\n    _f(11719656095 << 26), -_f(9489736865 << 27), _f(24346633325 << 26),\n    -_f(6069982555 << 28), _f(18134544155 << 26), -_f(4742880779 << 27),\n    _f(3068922857 << 26), -_f(7318200659 << 22),\n    _f2(179199, 0x822c35983cf89),\n    # C4[12], coeff of eps^12, polynomial in n of order 11\n    -_f(58429085 << 24), _f(185910725 << 25), -_f(1747560815 << 24),\n    _f(794345825 << 27), -_f(18392161025 << 24), _f(21545102915 << 25),\n    -_f(82378334675 << 24), _f(32084193505 << 26),\n    -_f(160420967525 << 24), _f(76723071425 << 25),\n    -_f(95136608567 << 24), _f(212227819111 << 21),\n    _f2(537598, 0x8684a0c8b6e9b),\n    # C4[13], coeff of eps^23, polynomial in n of order 0\n    -_f(34717 << 24), _f(0x4013d857859e5ad),\n    # C4[13], coeff of eps^22, polynomial in n of order 1\n    -_f(52837 << 30), _f(101283 << 25), _f(0x39b1009e5dec691d),\n    # C4[13], coeff of eps^21, polynomial in n of order 2\n    _f(58223275 << 29), _f(25058159 << 28), -_f(597584743 << 24),\n    _f2(580606, 0x6851cc5de4441),\n    # C4[13], coeff of eps^20, polynomial in n of order 3\n    -_f(38160201 << 32), _f(20133099 << 33), -_f(10736915 << 32),\n    _f(8118075 << 27), _f2(580606, 0x6851cc5de4441),\n    # C4[13], coeff of eps^19, polynomial in n of order 4\n    -_f(246943573 << 28), -_f(102114339 << 26), _f(63266747 << 27),\n    _f(72037887 << 26), -_f(711672919 << 22),\n    _f2(82943, 0xc5c28ae8d7777),\n    # C4[13], coeff of eps^18, polynomial in n of order 5\n    _f(362438863 << 28), _f(29917105 << 30), -_f(313139991 << 28),\n    _f(81176473 << 29), -_f(26857069 << 28), -_f(40519029 << 23),\n    _f2(82943, 0xc5c28ae8d7777),\n    # C4[13], coeff of eps^17, polynomial in n of order 6\n    -_f(4194208665 << 27), _f(3411193933 << 26), _f(92059229 << 28),\n    -_f(832792389 << 26), -_f(13821619 << 27), _f(313960329 << 26),\n    -_f(1784908801 << 22), _f2(82943, 0xc5c28ae8d7777),\n    # C4[13], coeff of eps^16, polynomial in n of order 7\n    _f(4206195495 << 29), _f(1286394165 << 30), -_f(6553065099 << 29),\n    _f(1494451903 << 31), -_f(3024727629 << 29), _f(374117415 << 30),\n    -_f(7540351 << 29), -_f(836978961 << 24),\n    _f2(580606, 0x6851cc5de4441),\n    # C4[13], coeff of eps^15, polynomial in n of order 8\n    _f(8293864515 << 29), -_f(80835230175 << 26), _f(35736027705 << 27),\n    -_f(37780361325 << 26), -_f(587595645 << 28), _f(26485772901 << 26),\n    -_f(13655575661 << 27), _f(14786628311 << 26),\n    -_f(57193562335 << 22), _f2(580606, 0x6851cc5de4441),\n    # C4[13], coeff of eps^14, polynomial in n of order 9\n    _f(2173316805 << 28), -_f(627936225 << 31), _f(9404910795 << 28),\n    -_f(7129362555 << 29), _f(17350941825 << 28), -_f(4150093185 << 30),\n    _f(12011779143 << 28), -_f(3068922857 << 29), _f(1952950909 << 28),\n    -_f(9206768571 << 23), _f2(580606, 0x6851cc5de4441),\n    # C4[13], coeff of eps^13, polynomial in n of order 10\n    _f(79676025 << 27), -_f(638856855 << 26), _f(256634805 << 29),\n    -_f(5389330905 << 26), _f(5842215855 << 27), -_f(21011478075 << 26),\n    _f(7804263285 << 28), -_f(37664053245 << 26), _f(17576558181 << 27),\n    -_f(21482459999 << 26), _f(95136608567 << 22),\n    _f2(580606, 0x6851cc5de4441),\n    # C4[14], coeff of eps^23, polynomial in n of order 0\n    _f(433 << 27), _f(0x16f0fb486be35c9),\n    # C4[14], coeff of eps^22, polynomial in n of order 1\n    _f(938669 << 29), -_f(8460179 << 26), _f2(36683, 0x318959e11f277),\n    # C4[14], coeff of eps^21, polynomial in n of order 2\n    _f(1085551 << 33), -_f(531601 << 32), _f(109557 << 28),\n    _f2(36683, 0x318959e11f277),\n    # C4[14], coeff of eps^20, polynomial in n of order 3\n    -_f(34899909 << 31), _f(11630633 << 32), _f(16602985 << 31),\n    -_f(73138345 << 28), _f2(623614, 0x4a1ef7f3119e7),\n    # C4[14], coeff of eps^19, polynomial in n of order 4\n    _f(2603869 << 34), -_f(18588201 << 32), _f(4394077 << 33),\n    -_f(1312099 << 32), -_f(1449057 << 28), _f2(89087, 0xc172236bddf21),\n    # C4[14], coeff of eps^18, polynomial in n of order 5\n    _f(1218191717 << 27), _f(79106081 << 29), -_f(371875421 << 27),\n    -_f(20795103 << 28), _f(151229409 << 27), -_f(409250479 << 24),\n    _f2(89087, 0xc172236bddf21),\n    # C4[14], coeff of eps^17, polynomial in n of order 6\n    _f(249532965 << 30), -_f(917899213 << 29), _f(191097911 << 31),\n    -_f(363925371 << 29), _f(41606327 << 30), _f(1574359 << 29),\n    -_f(54936843 << 25), _f2(89087, 0xc172236bddf21),\n    # C4[14], coeff of eps^16, polynomial in n of order 7\n    -_f(19067218845 << 28), _f(7820446095 << 29), -_f(7262714151 << 28),\n    -_f(421931643 << 30), _f(6566089551 << 28), -_f(3155926907 << 29),\n    _f(3340375493 << 28), -_f(6416838701 << 25),\n    _f2(623614, 0x4a1ef7f3119e7),\n    # C4[14], coeff of eps^15, polynomial in n of order 8\n    -_f(353006415 << 32), _f(4931374455 << 29), -_f(3531935085 << 30),\n    _f(8211223125 << 29), -_f(1894184271 << 31), _f(5332188211 << 29),\n    -_f(1334642127 << 30), _f(836978961 << 29), -_f(1952950909 << 25),\n    _f2(623614, 0x4a1ef7f3119e7),\n    # C4[14], coeff of eps^14, polynomial in n of order 9\n    -_f(436268025 << 27), _f(158349135 << 30), -_f(3064521495 << 27),\n    _f(3110604525 << 28), -_f(10615555125 << 27), _f(3784676175 << 29),\n    -_f(17712284499 << 27), _f(8090796623 << 28), -_f(9764754545 << 27),\n    _f(21482459999 << 24), _f2(623614, 0x4a1ef7f3119e7),\n    # C4[15], coeff of eps^23, polynomial in n of order 0\n    -_f(11003 << 27), _f(0x6a44bb11ad2310d),\n    # C4[15], coeff of eps^22, polynomial in n of order 1\n    -_f(28003 << 36), _f(3549 << 30), _f2(39213, 0x11a47a8f8b3bd),\n    # C4[15], coeff of eps^21, polynomial in n of order 2\n    _f(1243 << 38), _f(2249 << 37), -_f(577583 << 28),\n    _f2(5601, 0xddf2ecefef51b),\n    # C4[15], coeff of eps^20, polynomial in n of order 3\n    -_f(28101 << 40), _f(24493 << 39), -_f(1645 << 40),\n    -_f(318801 << 29), _f2(39213, 0x11a47a8f8b3bd),\n    # C4[15], coeff of eps^19, polynomial in n of order 4\n    _f(1359187 << 38), -_f(4447191 << 36), -_f(433293 << 37),\n    _f(1982883 << 36), -_f(164770109 << 28),\n    _f2(666622, 0x2bec23883ef8d),\n    # C4[15], coeff of eps^18, polynomial in n of order 5\n    -_f(6907451 << 36), _f(1332757 << 38), -_f(2401277 << 36),\n    _f(253189 << 37), _f(26273 << 36), -_f(1574359 << 30),\n    _f2(95231, 0xbd21bbeee46cb),\n    # C4[15], coeff of eps^17, polynomial in n of order 6\n    _f(60642045 << 33), -_f(48519929 << 32), -_f(5596337 << 34),\n    _f(57431697 << 32), -_f(26089089 << 33), _f(27095547 << 32),\n    -_f(828361417 << 25), _f2(95231, 0xbd21bbeee46cb),\n    # C4[15], coeff of eps^16, polynomial in n of order 7\n    _f(53036505 << 34), -_f(36153285 << 35), _f(80745483 << 34),\n    -_f(18042031 << 36), _f(49556941 << 34), -_f(12180567 << 35),\n    _f(7540351 << 34), -_f(278992987 << 26),\n    _f2(222207, 0x63f9612d6a52f),\n    # C4[15], coeff of eps^15, polynomial in n of order 8\n    _f(5892945 << 35), -_f(106383165 << 32), _f(102040995 << 33),\n    -_f(332742375 << 32), _f(114463377 << 34), -_f(521444273 << 32),\n    _f(233750881 << 33), -_f(278992987 << 32), _f(9764754545 << 25),\n    _f2(666622, 0x2bec23883ef8d),\n    # C4[16], coeff of eps^23, polynomial in n of order 0\n    -_f(1 << 31), _f(0x5f43434b6401e1),\n    # C4[16], coeff of eps^22, polynomial in n of order 1\n    _f(4571 << 36), -_f(33945 << 32), _f2(5963, 0x471b5f51fec25),\n    # C4[16], coeff of eps^21, polynomial in n of order 2\n    _f(24269 << 36), -_f(5831 << 35), -_f(11703 << 31),\n    _f2(5963, 0x471b5f51fec25),\n    # C4[16], coeff of eps^20, polynomial in n of order 3\n    -_f(224895 << 36), -_f(32277 << 37), _f(111531 << 36),\n    -_f(139825 << 34), _f2(41742, 0xf1bf9b3df7503),\n    # C4[16], coeff of eps^19, polynomial in n of order 4\n    _f(978405 << 37), -_f(1674813 << 35), _f(162197 << 36),\n    _f(29281 << 35), -_f(297087 << 31), _f2(41742, 0xf1bf9b3df7503),\n    # C4[16], coeff of eps^18, polynomial in n of order 5\n    -_f(15263501 << 36), -_f(3038189 << 38), _f(24413445 << 36),\n    -_f(10587549 << 37), _f(10822455 << 36), -_f(41181917 << 32),\n    _f2(709630, 0xdb94f1d6c533),\n    # C4[16], coeff of eps^17, polynomial in n of order 6\n    -_f(7565085 << 36), _f(16306961 << 35), -_f(3541967 << 37),\n    _f(9518487 << 35), -_f(2301919 << 36), _f(1408637 << 35),\n    -_f(3231579 << 31), _f2(101375, 0xb8d15471eae75),\n    # C4[16], coeff of eps^16, polynomial in n of order 7\n    -_f(57998985 << 33), _f(52955595 << 34), -_f(165927531 << 33),\n    _f(55309177 << 35), -_f(246030477 << 33), _f(108465049 << 34),\n    -_f(128185967 << 33), _f(278992987 << 30),\n    _f2(709630, 0xdb94f1d6c533),\n    # C4[17], coeff of eps^23, polynomial in n of order 0\n    -_f(1121 << 31), _f(0x6ef59e61feaaea7),\n    # C4[17], coeff of eps^22, polynomial in n of order 1\n    -_f(59 << 37), -_f(309 << 32), _f(0x14ce0db25fc00bf5),\n    # C4[17], coeff of eps^21, polynomial in n of order 2\n    -_f(10703 << 36), _f(30413 << 35), -_f(148003 << 31),\n    _f2(6324, 0xb043d1b40e32f),\n    # C4[17], coeff of eps^20, polynomial in n of order 3\n    -_f(177777 << 38), _f(15715 << 39), _f(4277 << 38),\n    -_f(68103 << 33), _f2(44272, 0xd1dabbec63649),\n    # C4[17], coeff of eps^19, polynomial in n of order 4\n    -_f(407783 << 37), _f(2775087 << 35), -_f(1157751 << 36),\n    _f(1167621 << 35), -_f(4428011 << 31), _f2(44272, 0xd1dabbec63649),\n    # C4[17], coeff of eps^18, polynomial in n of order 5\n    _f(1580535 << 37), -_f(334719 << 39), _f(882049 << 37),\n    -_f(210231 << 38), _f(127323 << 37), -_f(580027 << 32),\n    _f2(44272, 0xd1dabbec63649),\n    # C4[17], coeff of eps^17, polynomial in n of order 6\n    _f(801009 << 36), -_f(2422805 << 35), _f(785323 << 37),\n    -_f(3419955 << 35), _f(1485435 << 36), -_f(1740081 << 35),\n    _f(7540351 << 31), _f2(44272, 0xd1dabbec63649),\n    # C4[18], coeff of eps^23, polynomial in n of order 0\n    -_f(89 << 35), _f(0x3351994085c8a607),\n    # C4[18], coeff of eps^22, polynomial in n of order 1\n    _f(763 << 36), -_f(1809 << 33), _f(0x15fe66403955fe03),\n    # C4[18], coeff of eps^21, polynomial in n of order 2\n    _f(91 << 39), _f(35 << 38), -_f(235 << 34),\n    _f(0x15fe66403955fe03),\n    # C4[18], coeff of eps^20, polynomial in n of order 3\n    _f(667755 << 37), -_f(269591 << 38), _f(268793 << 37),\n    -_f(508305 << 34), _f2(46802, 0xb1f5dc9acf78f),\n    # C4[18], coeff of eps^19, polynomial in n of order 4\n    -_f(51319 << 40), _f(132867 << 38), -_f(31255 << 39),\n    _f(18753 << 38), -_f(42441 << 34), _f2(15600, 0xe5fc9ede45285),\n    # C4[18], coeff of eps^18, polynomial in n of order 5\n    -_f(1198615 << 36), _f(378917 << 38), -_f(1619009 << 36),\n    _f(693861 << 37), -_f(806379 << 36), _f(1740081 << 33),\n    _f2(46802, 0xb1f5dc9acf78f),\n    # C4[19], coeff of eps^23, polynomial in n of order 0\n    -_f(983 << 35), _f(0x3617bd362c26857d),\n    # C4[19], coeff of eps^22, polynomial in n of order 1\n    _f(1 << 46), -_f(189 << 37), _f2(2596, 0x737a284739077),\n    # C4[19], coeff of eps^21, polynomial in n of order 2\n    -_f(473 << 40), _f(467 << 39), -_f(3525 << 34),\n    _f(0x172ebece12ebf011),\n    # C4[19], coeff of eps^20, polynomial in n of order 3\n    _f(2379 << 41), -_f(553 << 42), _f(329 << 41), -_f(2961 << 35),\n    _f2(2596, 0x737a284739077),\n    # C4[19], coeff of eps^19, polynomial in n of order 4\n    _f(2405 << 41), -_f(10101 << 39), _f(4277 << 40), -_f(4935 << 39),\n    _f(42441 << 34), _f2(2596, 0x737a284739077),\n    # C4[20], coeff of eps^23, polynomial in n of order 0\n    -_f(1 << 38), _f(0x1f5feefdb1f0c4f),\n    # C4[20], coeff of eps^22, polynomial in n of order 1\n    _f(379 << 42), -_f(357 << 40), _f2(2729, 0x9a383778d2ed9),\n    # C4[20], coeff of eps^21, polynomial in n of order 2\n    -_f(249 << 43), _f(147 << 42), -_f(329 << 38),\n    _f2(2729, 0x9a383778d2ed9),\n    # C4[20], coeff of eps^20, polynomial in n of order 3\n    -_f(4797 << 40), _f(2009 << 41), -_f(2303 << 40), _f(4935 << 37),\n    _f2(2729, 0x9a383778d2ed9),\n    # C4[21], coeff of eps^23, polynomial in n of order 0\n    -_f(1327 << 38), _f2(2862, 0xc0f646aa6cd3b),\n    # C4[21], coeff of eps^22, polynomial in n of order 1\n    _f(11 << 44), -_f(49 << 39), _f(0x3ba4052178e24469),\n    # C4[21], coeff of eps^21, polynomial in n of order 2\n    _f(473 << 43), -_f(539 << 42), _f(2303 << 38),\n    _f2(2862, 0xc0f646aa6cd3b),\n    # C4[22], coeff of eps^23, polynomial in n of order 0\n    -_f(1 << 41), _f(0x5ac8f5f3162ebfd),\n    # C4[22], coeff of eps^22, polynomial in n of order 1\n    -_f(23 << 43), _f(49 << 40), _f(0x1105ae1d9428c3f7),\n    # C4[23], coeff of eps^23, polynomial in n of order 0\n    _f(1 << 41), _f(0xc5e28ed2c935ab),  # PYCHOK exported\n))  # 2900 / 2708\ndel _g, _Gfloats, _f, _f2\n\n# **) MIT License\n#\n# Copyright (C) 2016-2026 -- mrJean1 at Gmail -- All Rights Reserved.\n#\n# Permission is hereby granted, free of charge, to any person obtaining a\n# copy of this software and associated documentation files (the \"Software\"),\n# to deal in the Software without restriction, including without limitation\n# the rights to use, copy, modify, merge, publish, distribute, sublicense,\n# and/or sell copies of the Software, and to permit persons to whom the\n# Software is furnished to do so, subject to the following conditions:\n#\n# The above copyright notice and this permission notice shall be included\n# in all copies or substantial portions of the Software.\n#\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL\n# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR\n# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\n# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n# OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "pygeodesy/geodesicx/_C4_27.py",
    "content": "\n# -*- coding: utf-8 -*-\n\nu'''A Python version of part of I{Karney}'s C++ module U{GeodesicExactC4\n<https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1GeodesicExactC4.html>}.\n\nCopyright (C) U{Charles Karney<mailto:Karney@Alum.MIT.edu>} (2008-2024)\nand licensed under the MIT/X11 License.  For more information, see the\nU{GeographicLib<https://GeographicLib.SourceForge.io>} documentation.\n'''\n# See C{.geodesicx._C4_30.py} for a copy of comments from Karney's C{GeodesicExactC4.cpp}:\n\nfrom pygeodesy.geodesicx.gxbases import _Gfloats, _f, _f2\n\n__all__ = ()\n__version__ = '24.09.04'\n\n_g = _Gfloats(27)\n_coeffs_27 = _g((  # GEOGRAPHICLIB_GEODESICEXACT_ORDER == 27\n    # Generated by Maxima on 2017-05-27 10:17:57-04:00\n    # C4[0], coeff of eps^26, polynomial in n of order 0\n    4654, _f(327806325),\n    # C4[0], coeff of eps^25, polynomial in n of order 1\n    -331600, 247203, _f(5135632425),\n    # C4[0], coeff of eps^24, polynomial in n of order 2\n    -_f(30660788480), _f(15209307520), _f(3757742824),\n    _f(0xbd65c2e6062d),\n    # C4[0], coeff of eps^23, polynomial in n of order 3\n    -_f(0x4a56872d110), _f(0x30d818a0d20), -_f(0x183639ebbb0),\n    _f(0x1207973318d), _f(0x472c0a3d3d1ee9),\n    # C4[0], coeff of eps^22, polynomial in n of order 4\n    -_f(0x743607eea80), _f(0x5536ade42a0), -_f(0x37e9933c940),\n    _f(0x1bb15f964e0), _f(469120197546), _f(0x472c0a3d3d1ee9),\n    # C4[0], coeff of eps^21, polynomial in n of order 5\n    -_f(0x1a80e82073690), _f(0x1485d9e7af5c0), -_f(0xf039fc9e8ff0),\n    _f(0x9d5f26153ce0), -_f(0x4ddf0f750f50), _f(0x39e793daa6eb),\n    _f(0xadde5e94360277d),\n    # C4[0], coeff of eps^20, polynomial in n of order 6\n    -_f(0xe72f9d31220580), _f(0xb817a196612bc0),\n    -_f(0x8e0a680913c900), _f(0x67a3067b290a40),\n    -_f(0x43c43707776c80), _f(0x217ef7b84400c0),\n    _f(0x83b895ad56e94), _f2(16517, 0x8519000aea763),\n    # C4[0], coeff of eps^19, polynomial in n of order 7\n    -_f(0x5be35cb0a188d670), _f(0x49fb9f6e0e1fa420),\n    -_f(0x3a970b1601b36050), _f(0x2d0406e3051baec0),\n    -_f(0x20bde41e80026c30), _f(0x155cea808b65d160),\n    -_f(0xa8bc4b2c853c610), _f(0x7d3acd77deac86f),\n    _f2(1139708, 0xdfbd02f131daf),\n    # C4[0], coeff of eps^18, polynomial in n of order 8\n    -_f2(2219, 0x955c84d349100), _f(0x6f523368eabed3a0),\n    -_f(0x58df9f4050ea48c0), _f(0x45eb9b162449f0e0),\n    -_f(0x35736f4da3b86880), _f(0x26bb8b2d01772220),\n    -_f(0x19350a3e2b857840), _f(0xc6cd21a34a65f60),\n    _f(0x30a9f24aaae2862), _f2(1139708, 0xdfbd02f131daf),\n    # C4[0], coeff of eps^17, polynomial in n of order 9\n    -_f2(3520, 0x86c418e66b430), _f2(2768, 0x78979286ec480),\n    -_f2(2191, 0xabc9bb4d59ed0), _f(0x6c38e96882e6a560),\n    -_f(0x54765a5d7300bb70), _f(0x402d11108cfc5240),\n    -_f(0x2e4c264c23518e10), _f(0x1e09e0cfb5ca8720),\n    -_f(0xec7bce3f9449ab0), _f(0xaf0b9139605a58d),\n    _f2(1139708, 0xdfbd02f131daf),\n    # C4[0], coeff of eps^16, polynomial in n of order 10\n    -_f2(6136, 0x52223aecbfa00), _f2(4597, 0xf56d1171d1b00),\n    -_f2(3531, 0xe10107f964800), _f2(2747, 0xc7a53bf3c9500),\n    -_f2(2142, 0x9c25bfa8f9600), _f(0x677abbdfa4dcef00),\n    -_f(0x4e0ad45efdfc2400), _f(0x37ff2b5bd74de900),\n    -_f(0x2432b6ddc0003200), _f(0x11c5dbb8178f4300),\n    _f(0x4536f43fdb6a550), _f2(1139708, 0xdfbd02f131daf),\n    # C4[0], coeff of eps^15, polynomial in n of order 11\n    -_f2(13102, 0xf96f6011eba70), _f2(8724, 0xbd02d5fc04060),\n    -_f2(6234, 0x68dfd557291d0), _f2(4636, 0xd96d16348cb80),\n    -_f2(3525, 0x47255186b7b30), _f2(2702, 0xc781c601a46a0),\n    -_f2(2062, 0x7b91b55fb7290), _f(0x60521f1f549575c0),\n    -_f(0x44a70474ce1373f0), _f(0x2c2e0084319d1ce0),\n    -_f(0x15a2a473a1b17b50), _f(0xff41fd49dab95d3),\n    _f2(1139708, 0xdfbd02f131daf),\n    # C4[0], coeff of eps^14, polynomial in n of order 12\n    -_f2(63391, 0x70a4897dc9e80), _f2(23343, 0xc5a3f9fbbcce0),\n    -_f2(13453, 0x278d24cdf3ac0), _f2(8911, 0x777a0315423a0),\n    -_f2(6323, 0x2714f8a7fff00), _f2(4656, 0xe8c5e07109660),\n    -_f2(3491, 0x6be5fd90e340), _f2(2621, 0xb84b17c4ad20),\n    -_f(0x78f908534453df80), _f(0x55814182d129efe0),\n    -_f(0x36b7bc0c02deebc0), _f(0x1ab5b755becbe6a0),\n    _f(0x672760e43e7e5be), _f2(1139708, 0xdfbd02f131daf),\n    # C4[0], coeff of eps^13, polynomial in n of order 13\n    _f2(112706, 0xdfd869d806ed0), _f2(29093, 0xf8d3fc140cbc0),\n    -_f2(65760, 0x7b52c14019950), _f2(24105, 0xa651ba0482d20),\n    -_f2(13822, 0xd4286a2c4c370), _f2(9095, 0xad3608e2bd280),\n    -_f2(6394, 0x2414e7ceec390), _f2(4646, 0x4bdec656d47e0),\n    -_f2(3413, 0x76099d6b04db0), _f2(2482, 0x54f2fd0561940),\n    -_f(0x6c7d891fb0df15d0), _f(0x44efe2727b65d2a0),\n    -_f(0x2183dc0de2efcff0), _f(0x189262ba581c6bf1),\n    _f2(1139708, 0xdfbd02f131daf),\n    # C4[0], coeff of eps^12, polynomial in n of order 14\n    _f2(22421, 0x80a7495217980), -_f2(122681, 0x25b6cd6074ac0),\n    _f2(117806, 0x7498b0aecaf00), _f2(29700, 0x9de1e174ab0c0),\n    -_f2(68413, 0x428634ee0fb80), _f2(24937, 0xf2aac2170b440),\n    -_f2(14209, 0x4f5514d0cb600), _f2(9268, 0x742c2dd2c8fc0),\n    -_f2(6433, 0x2286f06b3b080), _f2(4585, 0x3348b70941340),\n    -_f2(3266, 0x3bda622d31b00), _f2(2252, 0x1340649a90ec0),\n    -_f(0x589f5d02f1d02580), _f(0x2adce3e44e715240),\n    _f(0xa36591ccc5a22bc), _f2(1139708, 0xdfbd02f131daf),\n    # C4[0], coeff of eps^11, polynomial in n of order 15\n    _f(0x3845a63e874b7f90), _f2(2990, 0x790a9d44cfaa0),\n    _f2(23275, 0xc0709755ecab0), -_f2(127863, 0x516b98584c9c0),\n    _f2(123656, 0x74905ab09b3d0), _f2(30291, 0xc8698ff57f9e0),\n    -_f2(71410, 0x2ebef8806f110), _f2(25848, 0x521bca14dd980),\n    -_f2(14605, 0xac6deef7d4ff0), _f2(9413, 0x816443bfd6920),\n    -_f2(6415, 0x315eed8f094d0), _f2(4438, 0xfed32587f3cc0),\n    -_f2(3002, 0xabba02cdaebb0), _f(0x74ba3cd78aa5e860),\n    -_f(0x3812b2b32b2f8090), _f(0x28bab2d4ac11f317),\n    _f2(1139708, 0xdfbd02f131daf),\n    # C4[0], coeff of eps^10, polynomial in n of order 16\n    _f(0xbcd4fd6df5b2600), _f(0x17fed2a1d906c020),\n    _f(0x3a338f7e05a82540), _f2(3102, 0x8ee9d52fa7060),\n    _f2(24235, 0xac0c2ca98fc80), -_f2(133761, 0xdb81f4d32fb60),\n    _f2(130458, 0x34533ae1a43c0), _f2(30833, 0xcd61b102f94e0),\n    -_f2(74830, 0xb3a54c3df6d00), _f2(26842, 0xad19affdd3920),\n    -_f2(14996, 0x635b9e8c37dc0), _f2(9500, 0x408e4569f0960),\n    -_f2(6294, 0x8e3c24f515680), _f2(4143, 0x97d5a30101da0),\n    -_f2(2534, 0x56aa081845f40), _f(0x4b644b6e4da18de0),\n    _f(0x11925bb6ba64765a), _f2(1139708, 0xdfbd02f131daf),\n    # C4[0], coeff of eps^9, polynomial in n of order 17\n    _f(0x3fcae6c51cf8fd0), _f(0x6afa1c71c2ac100),\n    _f(0xc2892977602fa30), _f(0x18cb840e0ff332e0),\n    _f(0x3c56602ddecd9290), _f2(3228, 0x26f051b5c20c0),\n    _f2(25324, 0xf8a24438674f0), -_f2(140558, 0x5b2d711d11960),\n    _f2(138496, 0xa2474d581bd50), _f2(31265, 0x7dd7c9350e080),\n    -_f2(78781, 0x407f0fc917850), _f2(27920, 0xd85d0c9896a60),\n    -_f2(15347, 0xbd51776ab0ff0), _f2(9468, 0xaa167d507e040),\n    -_f2(5981, 0xcd152be8bed90), _f2(3570, 0xf062f37e99e20),\n    -_f(0x68dc53d94dbff530), _f(0x4ae92c9a7a683bf5),\n    _f2(1139708, 0xdfbd02f131daf),\n    # C4[0], coeff of eps^8, polynomial in n of order 18\n    _f(0x1b54ebcbbde1f00), _f(0x2947b9527677980),\n    _f(0x415d003e7b1b800), _f(0x6df9566e0623680),\n    _f(0xc8ad7ddfed65100), _f(0x19abdc3c4555e380),\n    _f(0x3eb74cbd79d9ca00), _f2(3370, 0x20d152b7a6080),\n    _f2(26575, 0x8086d641a0300), -_f2(148506, 0xeae36b607280),\n    _f2(148190, 0x3f5dc7314dc00), _f2(31472, 0x41aaeb33d4a80),\n    -_f2(83406, 0xf30366e47cb00), _f2(29065, 0x630b32b837780),\n    -_f2(15585, 0x2764a1e4e1200), _f2(9192, 0xabf11a369f480),\n    -_f2(5286, 0x3613c4b401900), _f2(2436, 0x784ea73c0a180),\n    _f(0x2209232c3cc4cca8), _f2(1139708, 0xdfbd02f131daf),\n    # C4[0], coeff of eps^7, polynomial in n of order 19\n    _f(0xd73a52d8bd1790), _f(0x13078939da8f2e0),\n    _f(0x1bc62bcb4923530), _f(0x2a1bb9d3adccf00),\n    _f(0x42f03cdd160e0d0), _f(0x711670ab4ed8b20),\n    _f(0xcf3f2963eb3be70), _f(0x1aa1c278c7668b40),\n    _f(0x416120b2cbe67210), _f2(3532, 0x3a6649f1d3360),\n    _f2(28031, 0x35f5ca2c79fb0), -_f2(157970, 0xd11b280f51880),\n    _f2(160182, 0x9c904f3daeb50), _f2(31228, 0xe702b02a70ba0),\n    -_f2(88907, 0xf3445bc050710), _f2(30210, 0xe03f62b8103c0),\n    -_f2(15533, 0x7a0f6ace49370), _f2(8379, 0xc089c57da33e0),\n    -_f2(3746, 0x32a85741515d0), _f2(2585, 0x396e1f38f6dbb),\n    _f2(1139708, 0xdfbd02f131daf),\n    # C4[0], coeff of eps^6, polynomial in n of order 20\n    _f(0x73457ae9fefc80), _f(0x9bfefa36a68d60),\n    _f(0xd7e57b2fb0d740), _f(0x132c60dd72bf720),\n    _f(0x1c1d29144004a00), _f(0x2ad464b0fcdcce0),\n    _f(0x446dc104a967cc0), _f(0x7436e717eb8b6a0),\n    _f(0xd626d1c40bc9780), _f(0x1badddc640275c60),\n    _f(0x445f879c8f67c240), _f2(3719, 0x5820c25fe6620),\n    _f2(29754, 0xa45b204c52500), -_f2(169504, 0xe227b2d578420),\n    _f2(175522, 0xa8a2f18c5e7c0), _f2(30060, 0x7f96216b245a0),\n    -_f2(95556, 0xca707dfd4cd80), _f2(31150, 0x37da9e0a66b60),\n    -_f2(14734, 0x203a74e6dd2c0), _f2(6239, 0x114e25ea99520),\n    _f(0x4f113ff5b79764b6), _f2(1139708, 0xdfbd02f131daf),\n    # C4[0], coeff of eps^5, polynomial in n of order 21\n    _f(0x40c53da188eed0), _f(0x54ed187b34c440),\n    _f(0x7146df082c9bb0), _f(0x9a154e844696a0),\n    _f(0xd666e59b550690), _f(0x13262a46ef0dd00),\n    _f(0x1c3f2cd359b1b70), _f(0x2b4dcc62e91c360),\n    _f(0x45a57497f9cc650), _f(0x771c08f5a9775c0),\n    _f(0xdd1a4961392f330), _f(0x1ccccddd60de2020),\n    _f(0x47bbc762b5878e10), _f2(3937, 0xc2066e54dee80),\n    _f2(31838, 0x13ce9b56b82f0), -_f2(183990, 0x8ea49a06f320),\n    _f2(196055, 0x20a74184cbdd0), _f2(26856, 0x50de39af9a740),\n    -_f2(103681, 0x9284ca213d550), _f2(31195, 0x5686bd94fe9a0),\n    -_f2(11739, 0xecc6d600c4a70), _f2(7362, 0xc12f75a94f319),\n    _f2(1139708, 0xdfbd02f131daf),\n    # C4[0], coeff of eps^4, polynomial in n of order 22\n    _f(0x25018b34093680), _f(0x2f66db340747c0),\n    _f(0x3d8eaf55c4d300), _f(0x512efdf6054640),\n    _f(0x6cf4c335af0f80), _f(0x952f237cecdcc0),\n    _f(0xd10b7e4cd0dc00), _f(0x12cf85d69a3fb40),\n    _f(0x1bf83185acb2880), _f(0x2b3ea99410c91c0),\n    _f(0x462f30f09fee500), _f(0x7931c8e1f8c9040),\n    _f(0xe34caff0bb50180), _f(0x1def0c2db115e6c0),\n    _f(0x4b7080401d466e00), _f2(4194, 0xbf682a6ae8540),\n    _f2(34423, 0x2600aa7441a80), -_f2(202943, 0xe8d9bbd87a440),\n    _f2(225378, 0x7bd3e279ef700), _f2(18574, 0x52c9633395a40),\n    -_f2(113350, 0xffc66a8300c80), _f2(27528, 0x198b9d86370c0),\n    _f2(3947, 0xb3131e15c994), _f2(1139708, 0xdfbd02f131daf),\n    # C4[0], coeff of eps^3, polynomial in n of order 23\n    _f(0x14ba9dec234d90), _f(0x1a15f878f54920),\n    _f(0x2134b5fb572db0), _f(0x2acf89c87d75c0),\n    _f(0x37fb978513cbd0), _f(0x4a626dbdd79a60),\n    _f(0x64a2becb8c9bf0), _f(0x8afd5ca732eb00),\n    _f(0xc4970cf56e1210), _f(0x11deb4357fc9ba0),\n    _f(0x1add3c5ff77a230), _f(0x2a08c939311e040),\n    _f(0x451c5af5bb5c050), _f(0x7909ad73ef1ece0),\n    _f(0xe685850971be070), _f(0x1edeb97922aff580),\n    _f(0x4f3a8e20463e7690), _f2(4494, 0x6f4eb7a652e20),\n    _f2(37733, 0xf376431ecf6b0), -_f2(229273, 0xd3dfdae1d3540),\n    _f2(271637, 0x92a93446bd4d0), -_f2(5667, 0x8cc9ebb9c00a0),\n    -_f2(121042, 0xac8f4eff17b10), _f2(39799, 0x5b8561a065b3f),\n    _f2(1139708, 0xdfbd02f131daf),\n    # C4[0], coeff of eps^2, polynomial in n of order 24\n    _f(0xab22c89592500), _f(0xd46ccddd414a0), _f(0x10a4eb8f1ddb40),\n    _f(0x15184ab619d7e0), _f(0x1b0f2efb81a980),\n    _f(0x232d3128e64f20), _f(0x2e6a3ee43c47c0),\n    _f(0x3e471bedb3b260), _f(0x552919f15d6e00),\n    _f(0x7700089e6e39a0), _f(0xaa7eb4de50d440),\n    _f(0xfb834e2f281ce0), _f(0x1801af760623280),\n    _f(0x263a4a7c48d9420), _f(0x401905d594140c0),\n    _f(0x72c2e250398d760), _f(0xe012c263c05b700),\n    _f(0x1edcfb1205061ea0), _f(0x51c797f92b334d40),\n    _f2(4810, 0x460394707a1e0), _f2(42101, 0xccb76963dbb80),\n    -_f2(269613, 0x72aa3b84666e0), _f2(357865, 0x4c16ffd0cb9c0),\n    -_f2(115779, 0xf2f861d29c3a0), -_f2(21708, 0xbd8e92577d4ae),\n    _f2(1139708, 0xdfbd02f131daf),\n    # C4[0], coeff of eps^1, polynomial in n of order 25\n    _f(0x16b98c18c43f0), _f(0x1be76827efc80), _f(0x2291674649910),\n    _f(0x2b3d2747a6820), _f(0x36a8d2fdcc830), _f(0x45e795ad137c0),\n    _f(0x5a8eeaa036550), _f(0x77007a4bcbf60), _f(0x9ee5aa2960470),\n    _f(0xd8045ac825300), _f(0x12bb93df5b3990),\n    _f(0x1a9b1c398546a0), _f(0x26d2a92f5c98b0),\n    _f(0x3a7858f998ee40), _f(0x5b6e62f9c0b5d0),\n    _f(0x959d5c24529de0), _f(0x102f2d0b50524f0),\n    _f(0x1e1472bfb1ba980), _f(0x3d69bf9cb587a10),\n    _f(0x8ee1210e8c36520), _f(0x194d332fe8d44930),\n    _f(0x6534ccbfa35124c0), _f2(15788, 0x2cc4c78572650),\n    -_f2(115779, 0xf2f861d29c3a0), _f2(173669, 0xec7492bbea570),\n    -_f2(75980, 0x9773003236861), _f2(379902, 0xf53f00fb109e5),\n    # C4[0], coeff of eps^0, polynomial in n of order 26\n    _f(0x104574695550b58), _f(0x124efd1ef41bc1c),\n    _f(0x14b36c04f5f7ca0), _f(0x1787788b9792f24),\n    _f(0x1ae5caaf52545e8), _f(0x1ef111702bafd2c),\n    _f(0x23d6fb7cfc3d530), _f(0x29d483e08118c34),\n    _f(0x313c47ee86cd878), _f(0x3a800de5bbb223c),\n    _f(0x463f6a859617dc0), _f(0x555ed8909112544),\n    _f(0x692d2b9362db308), _f(0x83a245a495f5b4c),\n    _f(0xa7cc0a01a036650), _f(0xda93e49d10b2a54),\n    _f(0x1243757f6f15c598), _f(0x193422259e6ad85c),\n    _f(0x24309a0ea1d47ee0), _f(0x36b22ea791accb64),\n    _f(0x588e3327aee70028), _f2(2530, 0x27feb6f2ec96c),\n    _f2(5262, 0xb996ed2c7b770), _f2(14472, 0x7e5f0c3a53874),\n    _f2(86834, 0xf63a495df52b8), -_f2(303922, 0x5dcc00c8da184),\n    _f2(759805, 0xea7e01f6213ca), _f2(1139708, 0xdfbd02f131daf),\n    # C4[1], coeff of eps^26, polynomial in n of order 0\n    4654, _f(327806325),\n    # C4[1], coeff of eps^25, polynomial in n of order 1\n    _f(22113584), 5520955, _f(0xf784431927),\n    # C4[1], coeff of eps^24, polynomial in n of order 2\n    _f(29556996608), -_f(15922652416), _f(11273228472),\n    _f(0x2383148b21287),\n    # C4[1], coeff of eps^23, polynomial in n of order 3\n    _f(0x165661ad6b70), -_f(0x1009b31cabe0), _f(0x7444963bdd0),\n    _f(0x1d0511c64f5), _f(0x42b94999694cfa7),\n    # C4[1], coeff of eps^22, polynomial in n of order 4\n    _f(696434041088), -_f(561462728640), _f(334369174656),\n    -_f(182661157184), _f(127941872058), _f(0x13691a10b39411),\n    # C4[1], coeff of eps^21, polynomial in n of order 5\n    _f(0x2b50c847e5bec70), -_f(0x25172ad2adc8640),\n    _f(0x187490c86e06510), -_f(0x11cf5b364679120),\n    _f(0x7e9f37da26e7b0), _f(0x1f979b01bfd5e3),\n    _f2(227941, 0xc6590096a3923),\n    # C4[1], coeff of eps^20, polynomial in n of order 6\n    _f(0x84a641c077c100), -_f(0x75601a6b667780),\n    _f(0x51157a29d94600), -_f(0x4247925ad10480),\n    _f(0x269068d8c2ab00), -_f(0x15748d5a64a980),\n    _f(0xed190d6b360a4), _f2(29731, 0x892d0013a607f),\n    # C4[1], coeff of eps^19, polynomial in n of order 7\n    _f(0x57e3d5e3e8a64d50), -_f(0x4ee151925712ac60),\n    _f(0x379f60f9d8160ef0), -_f(0x3036f6417460ec40),\n    _f(0x1eece80c1c746690), -_f(0x16f21d696f523420),\n    _f(0x9ef6bfafd871830), _f(0x27a3f6720674fab),\n    _f2(3419126, 0x9f3708d39590d),\n    # C4[1], coeff of eps^18, polynomial in n of order 8\n    _f2(2128, 0x469250df87e00), -_f(0x76ff6f2ca68ee740),\n    _f(0x544ea56af984a280), -_f(0x4b3b3c5b1f3b3dc0),\n    _f(0x324e822f05811f00), -_f(0x29dd8ae6f4502040),\n    _f(0x179c3b6434632b80), -_f(0xd7628385c5d56c0),\n    _f(0x91fdd6e000a7926), _f2(3419126, 0x9f3708d39590d),\n    # C4[1], coeff of eps^17, polynomial in n of order 9\n    _f2(3396, 0xc29d3f547be10), -_f2(2963, 0x6657b77d7b180),\n    _f2(2082, 0xa3af2d55cd2f0), -_f(0x74e3fc23ed074b20),\n    _f(0x4f51e11c0cc64dd0), -_f(0x45cc62cad46028c0),\n    _f(0x2b210825284d5ab0), -_f(0x20cfde05bc67de60),\n    _f(0xdb6584e22cc2590), _f(0x36aae0ede944991),\n    _f2(3419126, 0x9f3708d39590d),\n    # C4[1], coeff of eps^16, polynomial in n of order 10\n    _f2(5994, 0xfab7bd428a400), -_f2(4919, 0xd8955c3980a00),\n    _f2(3376, 0x641d9d71fd000), -_f2(2975, 0x320d339261600),\n    _f(0x7dd1b5a4fb9ffc00), -_f(0x712cdc1424704200),\n    _f(0x486493a43f86e800), -_f(0x3daeb06e6a40ce00),\n    _f(0x21506b8426325400), -_f(0x13a656589a61fa00),\n    _f(0xcfa4dcbf923eff0), _f2(3419126, 0x9f3708d39590d),\n    # C4[1], coeff of eps^15, polynomial in n of order 11\n    _f2(13117, 0x6cbddabc52ed0), -_f2(9318, 0xa8f3ea9b44c20),\n    _f2(6040, 0x7b2fdab4ba7f0), -_f2(5022, 0x22b8983435e80),\n    _f2(3330, 0x281af37e2710), -_f2(2968, 0x456e895a2c0e0),\n    _f(0x7764510336be0030), -_f(0x6af4843f7d4f5f40),\n    _f(0x3eba1ed514e18750), -_f(0x31669b90045c25a0),\n    _f(0x13a17c0101ce1070), _f(0x4e2a88c78d66acf),\n    _f2(3419126, 0x9f3708d39590d),\n    # C4[1], coeff of eps^14, polynomial in n of order 12\n    _f2(68147, 0x8cb1a33fbb300), -_f2(25030, 0x19a83b314d5c0),\n    _f2(13399, 0xd5b954b9ffe80), -_f2(9632, 0x5ff7adc5b8740),\n    _f2(6058, 0x6185fb910e200), -_f2(5122, 0x24f31e326fcc0),\n    _f2(3246, 0x498e64bf8a580), -_f2(2929, 0xc60f539a7ee40),\n    _f(0x6e041fee5d419100), -_f(0x60b53ba76d5f13c0),\n    _f(0x3113d4fc9085ec80), -_f(0x1e6533c87b7d2540),\n    _f(0x1357622acbb7b13a), _f2(3419126, 0x9f3708d39590d),\n    # C4[1], coeff of eps^13, polynomial in n of order 13\n    -_f2(121532, 0xe4514e2bd7670), -_f2(15940, 0x17553143d1340),\n    _f2(71019, 0xc50f40d0125f0), -_f2(26120, 0x5d81b142df60),\n    _f2(13667, 0x35bfe1bb73850), -_f2(9984, 0xe4f4c1c8f9780),\n    _f2(6033, 0x4bb2ec6997cb0), -_f2(5212, 0x5459006443fa0),\n    _f2(3108, 0x7a1250dedaf10), -_f2(2836, 0xbc55f0b59dbc0),\n    _f(0x605fcd3581f88b70), -_f(0x4fb9f3b2da8b6fe0),\n    _f(0x1d6444fcd70bcdd0), _f(0x74c81d1452803b5),\n    _f2(3419126, 0x9f3708d39590d),\n    # C4[1], coeff of eps^12, polynomial in n of order 14\n    -_f2(18279, 0x4105927635f00), _f2(111436, 0xf9c78acad1e80),\n    -_f2(127455, 0xb83d096a36600), -_f2(14599, 0xb6308ef406280),\n    _f2(74253, 0x38e0bbebab300), -_f2(27394, 0x6661a055a9b80),\n    _f2(13898, 0x35bd350d73c00), -_f2(10384, 0x95909b51f3c80),\n    _f2(5941, 0x73f13b5b28500), -_f2(5277, 0x6484894bf580),\n    _f2(2891, 0x688dd5accde00), -_f2(2646, 0x1bce07b5e7680),\n    _f(0x4c6028727ac69700), -_f(0x32eae1a8c2946f80),\n    _f(0x1ea30b56650e6834), _f2(3419126, 0x9f3708d39590d),\n    # C4[1], coeff of eps^11, polynomial in n of order 15\n    -_f(0x26534490cad1dfb0), -_f2(2194, 0x14a85ebaf95e0),\n    -_f2(18676, 0x98f19d91af310), _f2(115088, 0x35b741cc34140),\n    -_f2(134245, 0x8207aed455070), -_f2(12735, 0xf52bb5c1fbfa0),\n    _f2(77916, 0x32c371fd8ec30), -_f2(28918, 0xb36d158cbf480),\n    _f2(14055, 0x84fcc4e4ea6d0), -_f2(10840, 0xa60c8c5d6b960),\n    _f2(5745, 0xafd650291c370), -_f2(5282, 0xabba6463d6a40),\n    _f2(2556, 0x876a7d9212610), -_f2(2272, 0x615ae9eab6320),\n    _f(0x2e7aab3dc406b2b0), _f(0xb7e588c69951913),\n    _f2(3419126, 0x9f3708d39590d),\n    # C4[1], coeff of eps^10, polynomial in n of order 16\n    -_f(0x6ec9ec72fa83400), -_f(0xee6121f9ed5ac40),\n    -_f(0x2698258da225a980), -_f2(2223, 0x82921a72280c0),\n    -_f2(19088, 0x4fb95e6188700), _f2(119080, 0xff5c72a1c6ec0),\n    -_f2(142117, 0x7c3deb03b7480), -_f2(10117, 0x6e8319b8485c0),\n    _f2(82086, 0xede392256e600), -_f2(30795, 0xed5c849e10640),\n    _f2(14073, 0x47ff3f3e080), -_f2(11359, 0x76d81b264bac0),\n    _f2(5387, 0x791e9eab0d300), -_f2(5153, 0xcdddc38eb4b40),\n    _f(0x7fb4f5b53eb31580), -_f(0x5fcfbdbbdde05fc0),\n    _f(0x34b713242f2d630e), _f2(3419126, 0x9f3708d39590d),\n    # C4[1], coeff of eps^9, polynomial in n of order 17\n    -_f(0x20f38bbaca812f0), -_f(0x39b499036d51b00),\n    -_f(0x6e4d3364d687b10), -_f(0xee56650d93fe5a0),\n    -_f(0x26cbb66f58b91d30), -_f2(2250, 0xe985ef9ea8440),\n    -_f2(19510, 0x3134f0f32ad50), _f2(123456, 0xc66bc06159520),\n    -_f2(151362, 0xfafa005fcdf70), -_f2(6379, 0xaa0075c90d80),\n    _f2(86843, 0xd7e050f079870), -_f2(33196, 0x7f1161b25e020),\n    _f2(13831, 0x3ac1850370650), -_f2(11930, 0x8d19c5e9856c0),\n    _f2(4775, 0x36871b380b630), -_f2(4708, 0xdfb0fde91e560),\n    _f(0x4e466dbc0d5cf410), _f(0x132845ea2b7be139),\n    _f2(3419126, 0x9f3708d39590d),\n    # C4[1], coeff of eps^8, polynomial in n of order 18\n    -_f(0xcaab4ddd8d4600), -_f(0x13c31d1cbb16d00),\n    -_f(0x207a98d99de3000), -_f(0x390c3dedd68b300),\n    -_f(0x6d71551ca261a00), -_f(0xed90e825b918900),\n    -_f(0x26e62c786e462400), -_f2(2274, 0xbbaf6c5e10f00),\n    -_f2(19934, 0x1db266a5f6e00), _f2(128254, 0x3ade3c4739b00),\n    -_f2(162383, 0xab3413f131800), -_f(0x3992c873ce48ab00),\n    _f2(92230, 0x4a4593a3dbe00), -_f2(36418, 0x345102e4b0100),\n    _f2(13110, 0x864dfe531f400), -_f2(12475, 0xa3edd9488700),\n    _f2(3771, 0xc13fa20286a00), -_f2(3469, 0x365d076765d00),\n    _f(0x661b6984b64e65f8), _f2(3419126, 0x9f3708d39590d),\n    # C4[1], coeff of eps^7, polynomial in n of order 19\n    -_f(0x5b1678b2b96e30), -_f(0x83e7d604d6e1a0),\n    -_f(0xc5c1bd21f06210), -_f(0x135402446a1f500),\n    -_f(0x1fd9e061288aff0), -_f(0x381fb1c2d0ea860),\n    -_f(0x6c176a9d32ee3d0), -_f(0xebcbb379725c7c0),\n    -_f(0x26dc285f96da89b0), -_f2(2292, 0x8c4f779be1f20),\n    -_f2(20344, 0xed4bfa0642d90), _f2(133496, 0x33ba4ee858580),\n    -_f2(175742, 0x64c709ffb5b70), _f2(7288, 0xff81f26b85a20),\n    _f2(98139, 0x5735ff04360b0), -_f2(41010, 0x6c5dc3c9a6d40),\n    _f2(11505, 0xfe66ab587ad0), -_f2(12646, 0x14c7a4cad9ca0),\n    _f2(2204, 0x9aaf76ecb66f0), _f(0x2076d1ad78dbacf7),\n    _f2(3419126, 0x9f3708d39590d),\n    # C4[1], coeff of eps^6, polynomial in n of order 20\n    -_f(0x2d4d049c656700), -_f(0x3e4af5e8d022c0),\n    -_f(0x57ced7fe851580), -_f(0x7f7034131ef240),\n    -_f(0xbf83d85dea6c00), -_f(0x12c465612feb5c0),\n    -_f(0x1f04ac518a30280), -_f(0x36d88216b840540),\n    -_f(0x6a13494183c7100), -_f(0xe8a2e478ed378c0),\n    -_f(0x269ca36792944f80), -_f2(2300, 0x7badf4501a840),\n    -_f2(20714, 0x7015050283600), _f2(139156, 0x8278406ccd440),\n    -_f2(192233, 0x29cb54965bc80), _f2(20133, 0xdb20ab18364c0),\n    _f2(103930, 0xc444b13858500), -_f2(48022, 0x859c77e028ec0),\n    _f2(8312, 0x1287962dbf680), -_f2(10954, 0x169105fd99e40),\n    _f2(3795, 0x3bfe126c62e22), _f2(3419126, 0x9f3708d39590d),\n    # C4[1], coeff of eps^5, polynomial in n of order 21\n    -_f(0x1802918882e770), -_f(0x1fcd949a6860c0),\n    -_f(0x2aeab9b7d2f010), -_f(0x3b2acc792185e0),\n    -_f(0x539feddcdda2b0), -_f(0x79b43080aca700),\n    -_f(0xb76e50170e2350), -_f(0x1207f374f78a820),\n    -_f(0x1de74f0a09e95f0), -_f(0x351484156246d40),\n    -_f(0x6722781c7da1e90), -_f(0xe37fba15ed8da60),\n    -_f(0x260d3a8a453ee130), -_f2(2292, 0x258c84a62d380),\n    -_f2(20989, 0x3411bcc4001d0), _f2(145073, 0x9b58d1932c360),\n    -_f2(212947, 0x443e0cc67a470), _f2(41274, 0x9a63d1cc50640),\n    _f2(107042, 0xff9bf7f6712f0), -_f2(59294, 0xf496954c0eee0),\n    _f2(2833, 0xc664f5dce0050), _f(0x17b85ffcea47049d),\n    _f2(3419126, 0x9f3708d39590d),\n    # C4[1], coeff of eps^4, polynomial in n of order 22\n    -_f(0xd20723e198100), -_f(0x10e999b2026480),\n    -_f(0x161c2993f30e00), -_f(0x1d62585afd4f80),\n    -_f(0x27ca0dc8a2fb00), -_f(0x370cc97a8ce280),\n    -_f(0x4e170b46a3d800), -_f(0x7213d21df5ad80),\n    -_f(0xac9b82d7503500), -_f(0x1109444f53c4080),\n    -_f(0x1c6019c5f02a200), -_f(0x329a7eb49a52b80),\n    -_f(0x62d84097135af00), -_f(0xdb6f2c88eb4fe80),\n    -_f(0x2502e63c01a3ec00), -_f2(2256, 0x8389e52b04980),\n    -_f2(21063, 0xc2942f767e900), _f2(150710, 0x347c6ec646380),\n    -_f2(239155, 0x111ed671c3600), _f2(78297, 0xeac3242447880),\n    _f2(97157, 0xffcea47049d00), -_f2(74487, 0xcca6f58949a80),\n    _f2(11841, 0x219395a415cbc), _f2(3419126, 0x9f3708d39590d),\n    # C4[1], coeff of eps^3, polynomial in n of order 23\n    -_f(0x7207334f38cb0), -_f(0x8fe6a0f540760),\n    -_f(0xb7c4f4df6c510), -_f(0xedcd97a176940),\n    -_f(0x1384e0d9162770), -_f(0x1a108f169c7320),\n    -_f(0x2378674e3fafd0), -_f(0x3154606a2c6100),\n    -_f(0x465a9ded7c5a30), -_f(0x675a79a8aa6ee0),\n    -_f(0x9d4a8ab99e2290), -_f(0xf9e328cb49d8c0),\n    -_f(0x1a2ce594ece04f0), -_f(0x2efbcc23543daa0),\n    -_f(0x5c688ee5939fd50), -_f(0xceb90d2fccdb080),\n    -_f(0x2331240c282307b0), -_f2(2173, 0x456299e8e9660),\n    -_f2(20716, 0x42df2018b2010), _f2(154405, 0x43613e2a37c0),\n    -_f2(270827, 0xec43372c34270), _f2(146546, 0xa61bf3c2f7de0),\n    _f2(26313, 0x9ff2a1de69530), -_f2(32563, 0x1c55db833bf05),\n    _f2(3419126, 0x9f3708d39590d),\n    # C4[1], coeff of eps^2, polynomial in n of order 24\n    -_f(0x39a9fc22d9600), -_f(0x47a4ffa857140),\n    -_f(0x59ea353148580), -_f(0x721982b3023c0),\n    -_f(0x9291e22ef9d00), -_f(0xbeda9ea6fc240),\n    -_f(0xfc517cd616480), -_f(0x1535335443d4c0),\n    -_f(0x1d14474c2c6400), -_f(0x28c4706fdbe340),\n    -_f(0x3aa43e35a32380), -_f(0x56eefde83775c0),\n    -_f(0x859522b6982b00), -_f(0xd663f0e8861440),\n    -_f(0x16b2ad2884e0280), -_f(0x2932441ccc746c0),\n    -_f(0x51f4ee722e73200), -_f(0xb97e18f372a9540),\n    -_f(0x1ff5b9ebacd64180), -_f(0x7d04fcecbaaf87c0),\n    -_f2(19431, 0x998fba7cdb900), _f2(150594, 0xe619e547a59c0),\n    -_f2(294712, 0x9903e1bb02080), _f2(231559, 0xe5f0c3a538740),\n    -_f2(65126, 0x38abb70677e0a), _f2(3419126, 0x9f3708d39590d),\n    # C4[1], coeff of eps^1, polynomial in n of order 25\n    -_f(0x16b98c18c43f0), -_f(0x1be76827efc80),\n    -_f(0x2291674649910), -_f(0x2b3d2747a6820),\n    -_f(0x36a8d2fdcc830), -_f(0x45e795ad137c0),\n    -_f(0x5a8eeaa036550), -_f(0x77007a4bcbf60),\n    -_f(0x9ee5aa2960470), -_f(0xd8045ac825300),\n    -_f(0x12bb93df5b3990), -_f(0x1a9b1c398546a0),\n    -_f(0x26d2a92f5c98b0), -_f(0x3a7858f998ee40),\n    -_f(0x5b6e62f9c0b5d0), -_f(0x959d5c24529de0),\n    -_f(0x102f2d0b50524f0), -_f(0x1e1472bfb1ba980),\n    -_f(0x3d69bf9cb587a10), -_f(0x8ee1210e8c36520),\n    -_f(0x194d332fe8d44930), -_f(0x6534ccbfa35124c0),\n    -_f2(15788, 0x2cc4c78572650), _f2(115779, 0xf2f861d29c3a0),\n    -_f2(173669, 0xec7492bbea570), _f2(75980, 0x9773003236861),\n    _f2(3419126, 0x9f3708d39590d),\n    # C4[2], coeff of eps^26, polynomial in n of order 0\n    2894476, _f(0xfe89d46f33),\n    # C4[2], coeff of eps^25, polynomial in n of order 1\n    -8609536, 5603312, _f(590597728875),\n    # C4[2], coeff of eps^24, polynomial in n of order 2\n    -_f(104352359168), _f(40707880576), _f(10376961584),\n    _f(0xb18f66b7a5ca3),\n    # C4[2], coeff of eps^23, polynomial in n of order 3\n    -_f(0x265f8c17d00), _f(0x13bddd35200), -_f(871294451456),\n    _f(553528081392), _f(0xa1c12e8b2dd1e3),\n    # C4[2], coeff of eps^22, polynomial in n of order 4\n    -_f(0x46e25cf59280), _f(0x290af5269020), -_f(0x22f7c7b01940),\n    _f(0xd08f4d0d560), _f(0x355c24081bc), _f(0xc015674546693d9),\n    # C4[2], coeff of eps^21, polynomial in n of order 5\n    -_f(0x326f6045f923c80), _f(0x1fb1615f9d3a600),\n    -_f(0x1db1797638c1780), _f(0xe9780531c07300),\n    -_f(0x9d24cc38e5d280), _f(0x60cf9034bf3868),\n    _f2(379902, 0xf53f00fb109e5),\n    # C4[2], coeff of eps^20, polynomial in n of order 6\n    -_f(0x4837c78c0550480), _f(0x313ba08613af040),\n    -_f(0x2ee33229a4bc300), _f(0x1a152ee5f2ae9c0),\n    -_f(0x172de5252da0180), _f(0x824fa762c0c340),\n    _f(0x2180172e018ad8), _f2(379902, 0xf53f00fb109e5),\n    # C4[2], coeff of eps^19, polynomial in n of order 7\n    -_f(0x5fc4bec46509e480), _f(0x48096a7e75900b00),\n    -_f(0x41caf1fb886dd580), _f(0x28558a32a56ef200),\n    -_f(0x26dce3ddd1a42680), _f(0x120433e2d2025900),\n    -_f(0xce36e1803df1780), _f(0x7a135866f905bb8),\n    _f2(5698544, 0x5eb10eb5f946b),\n    # C4[2], coeff of eps^18, polynomial in n of order 8\n    -_f2(2176, 0xe1585afea1500), _f(0x73bced2a00a143a0),\n    -_f(0x5fca97395e84bfc0), _f(0x418b4cd8fc5e04e0),\n    -_f(0x3e6c34ea7ddb8a80), _f(0x212422dcacab1620),\n    -_f(0x1f0466b0c7211540), _f(0xa12130d17045760),\n    _f(0x29b0aa486315dbc), _f2(5698544, 0x5eb10eb5f946b),\n    # C4[2], coeff of eps^17, polynomial in n of order 9\n    -_f2(3194, 0x3409f96190200), _f2(3129, 0x198ba10e3f000),\n    -_f2(2211, 0xeca78927c1e00), _f(0x6cf94ec7bfac7400),\n    -_f(0x5f04d2df84f0ba00), _f(0x39318494ff85f800),\n    -_f(0x38939121c731d600), _f(0x1854a6f7e2957c00),\n    -_f(0x12decef0b13a7200), _f(0xa9861a018e14120),\n    _f2(5698544, 0x5eb10eb5f946b),\n    # C4[2], coeff of eps^16, polynomial in n of order 10\n    -_f2(5172, 0xb8c4b33583a00), _f2(5700, 0x1d26bd0962f00),\n    -_f2(3248, 0x8acf908fbc800), _f2(3050, 0xed985975b4100),\n    -_f2(2251, 0xef96e32335600), _f(0x6370a1a9e900d300),\n    -_f(0x5c955afee309e400), _f(0x2eb3ea14003fe500),\n    -_f(0x2e844e36822a7200), _f(0xd8a8b891f217700),\n    _f(0x388df4ca3a6fb20), _f2(5698544, 0x5eb10eb5f946b),\n    # C4[2], coeff of eps^15, polynomial in n of order 11\n    -_f2(11115, 0xb2ff91ec6c600), _f2(11728, 0x761e1ef822c00),\n    -_f2(5178, 0x9a27d63f52200), _f2(5773, 0x24fd2adb2f000),\n    -_f2(3328, 0x5f0c31c71fe00), _f2(2908, 0x836ab328fb400),\n    -_f2(2291, 0x629d070485a00), _f(0x5681ee23b9ad7800),\n    -_f(0x56cafdb120433600), _f(0x21dbd9f992213c00),\n    -_f(0x1d4bdf01a76d9200), _f(0xf4e0cbd04176b20),\n    _f2(5698544, 0x5eb10eb5f946b),\n    # C4[2], coeff of eps^14, polynomial in n of order 12\n    -_f2(73826, 0x9e48c9be75880), _f2(32637, 0x887aa6de960e0),\n    -_f2(10940, 0x9647b1447b9c0), _f2(12348, 0xdd9347a34b3a0),\n    -_f2(5206, 0x461aa415f3b00), _f2(5776, 0x82c559a327660),\n    -_f2(3445, 0x2b71b5ef13c40), _f2(2676, 0xdbe2bf3d4c920),\n    -_f2(2313, 0x6c289eed11d80), _f(0x45af1f46068fcbe0),\n    -_f(0x4a646c774fde3ec0), _f(0x127e48f8affd9ea0),\n    _f(0x4e336f38ab11704), _f2(5698544, 0x5eb10eb5f946b),\n    # C4[2], coeff of eps^13, polynomial in n of order 13\n    _f2(130976, 0x1a84c1eb6d80), -_f2(14597, 0x4f1d8a91fc600),\n    -_f2(76483, 0x6c58cf65980), _f2(35388, 0xd1bf338007b00),\n    -_f2(10663, 0x1c210a8b78080), _f2(13004, 0x14f125ca37c00),\n    -_f2(5285, 0x554d73733c780), _f2(5660, 0xa57467d557d00),\n    -_f2(3609, 0xe9c5b2656ee80), _f2(2326, 0xf26507322be00),\n    -_f2(2274, 0xe6ae0b8fcb580), _f(0x30f364de4c777f00),\n    -_f(0x3139417308d0dc80), _f(0x173bf41713ca3b88),\n    _f2(5698544, 0x5eb10eb5f946b),\n    # C4[2], coeff of eps^12, polynomial in n of order 14\n    _f2(12302, 0xe52cc8d8c2180), -_f2(90162, 0x247de245423c0),\n    _f2(136898, 0x7ace803b76f00), -_f2(20188, 0x482d40173de40),\n    -_f2(79167, 0xe510d7fd7c380), _f2(38835, 0xfee0572864740),\n    -_f2(10270, 0x4559a0d3b600), _f2(13648, 0x338b156f30cc0),\n    -_f2(5468, 0x80042be36a880), _f2(5349, 0x619325bd73240),\n    -_f2(3821, 0xffa84c59adb00), _f(0x729df2a6c14b77c0),\n    -_f2(2073, 0x93dcfbe928d80), _f(0x193a4a0699e49d40),\n    _f(0x6c8a3fc264f2d98), _f2(5698544, 0x5eb10eb5f946b),\n    # C4[2], coeff of eps^11, polynomial in n of order 15\n    _f(0x12b65c49560e1680), _f(0x4c91348dd4c57d00),\n    _f2(12186, 0xb870c2ef8b380), -_f2(91199, 0x47a39f34d9e00),\n    _f2(143440, 0xa133e98363080), -_f2(27237, 0xaf8901f443900),\n    -_f2(81724, 0x1b06c40663280), _f2(43231, 0xcee7486ccec00),\n    -_f2(9771, 0xb47d34b793580), _f2(14177, 0x876b1df11100),\n    -_f2(5844, 0x5970f546f9880), _f2(4733, 0x71ff0d3b37600),\n    -_f2(4034, 0xaeeb7c4e61b80), _f(0x4b0e043dd17f5b00),\n    -_f(0x5c6dac5851097e80), _f(0x259ade3cf4689f28),\n    _f2(5698544, 0x5eb10eb5f946b),\n    # C4[2], coeff of eps^10, polynomial in n of order 16\n    _f(0x285b74a086cfe00), _f(0x61629f583f6fc20),\n    _f(0x11e1f0840e822e40), _f(0x4a2acb7177936860),\n    _f2(12009, 0x162afd0a23e80), -_f2(92025, 0x51c6b64b59b60),\n    _f2(150657, 0xe159fc0830ec0), -_f2(36240, 0x8903bcca1af20),\n    -_f2(83842, 0x8f32e14ed8100), _f2(48929, 0x80db803df8d20),\n    -_f2(9247, 0x4a711a73d90c0), _f2(14370, 0x3118e0d87960),\n    -_f2(6545, 0xcfaa0092b4080), _f2(3681, 0xa71da4ef975a0),\n    -_f2(4055, 0x6bd2ceb58b040), _f(0x201a58611bc4e1e0),\n    _f(0x8ca8a9bec5eeb0c), _f2(5698544, 0x5eb10eb5f946b),\n    # C4[2], coeff of eps^9, polynomial in n of order 17\n    _f(0x8f791b0d72f300), _f(0x116eee5fb7db000),\n    _f(0x2544a69b0af6d00), _f(0x5ae50a5c0f6ba00),\n    _f(0x10e6ab279c402700), _f(0x472bda650b6c4400),\n    _f2(11750, 0x4a89b28f5a100), -_f2(92512, 0x1ccd7f1613200),\n    _f2(158574, 0x53a9410005b00), -_f2(47896, 0xbfb8d60312800),\n    -_f2(84919, 0xb4a50d4cf2b00), _f2(56401, 0x32e93db7ce200),\n    -_f2(8956, 0x3835fd4c87100), _f2(13782, 0xdee88bf296c00),\n    -_f2(7712, 0x7aed9801af700), _f2(2126, 0x5791e5314f600),\n    -_f2(3273, 0xe9400d1963d00), _f(0x4230ff2c7e6defd0),\n    _f2(5698544, 0x5eb10eb5f946b),\n    # C4[2], coeff of eps^8, polynomial in n of order 18\n    _f(0x289b91a48ebf00), _f(0x45ee5b14465380),\n    _f(0x7f92734c023800), _f(0xfa5ad187871c80),\n    _f(0x21cddd2df61b100), _f(0x5372a978dde2580),\n    _f(0xfbd02001ed7aa00), _f(0x436e93187af7ee80),\n    _f2(11383, 0x2dcd21f7ea300), -_f2(92459, 0xff89d11970880),\n    _f2(167131, 0xf0a2167d11c00), -_f2(63199, 0x7fe973623f80),\n    -_f2(83766, 0xa02debe66b00), _f2(66187, 0xcedf7a1cac980),\n    -_f2(9608, 0xefbab691d7200), _f2(11585, 0x75dbe72dc9280),\n    -_f2(9220, 0x22c92d6997900), _f(0x18709d3bc0679b80),\n    _f(0x5b7e325c6742390), _f2(5698544, 0x5eb10eb5f946b),\n    # C4[2], coeff of eps^7, polynomial in n of order 19\n    _f(0xd108e5f6f6100), _f(0x14cfb44a7f1600),\n    _f(0x227bc5972bab00), _f(0x3bea4dd1053000),\n    _f(0x6e5f06564db500), _f(0xdaf2ed1ea74a00),\n    _f(0x1dec9104c41ff00), _f(0x4ae6e1cc221e400),\n    _f(0xe5bde12a5950900), _f(0x3ec229ad8ff17e00),\n    _f2(10869, 0xc2e1de8335300), -_f2(91550, 0xfd5202ded6800),\n    _f2(176075, 0x65a5499a95d00), -_f2(83531, 0x98920703e4e00),\n    -_f2(77994, 0x11133349c5900), _f2(78539, 0xb0828e93b4c00),\n    -_f2(12981, 0x6d9e1d7114f00), _f2(6537, 0x5c156837be600),\n    -_f2(9404, 0xf97b75bc90500), _f2(2071, 0xc05f52f113a50),\n    _f2(5698544, 0x5eb10eb5f946b),\n    # C4[2], coeff of eps^6, polynomial in n of order 20\n    _f(0x4748ad3ff9e80), _f(0x6b926f7e60d60), _f(0xa71fa4085b840),\n    _f(0x10c991e0a3ab20), _f(0x1c15b3b145b200),\n    _f(0x314f7c7c43f8e0), _f(0x5be1ff458cabc0),\n    _f(0xb89930a80796a0), _f(0x199734a3c07c580),\n    _f(0x411aa25f2292460), _f(0xcb87e4542581f40),\n    _f(0x38e7a442bb914220), _f2(10156, 0x20944a9a6d900),\n    -_f2(89265, 0x51d50a4f57020), _f2(184683, 0x63f792d3912c0),\n    -_f2(110680, 0x89cae6d0a5260), -_f2(62727, 0xfdf47fc1380),\n    _f2(91791, 0x3f8035a7d3b60), -_f2(22895, 0xcc844c9bf79c0),\n    -_f(0x5652aea374b626e0), -_f(0x38edb32bcbdda4ac),\n    _f2(5698544, 0x5eb10eb5f946b),\n    # C4[2], coeff of eps^5, polynomial in n of order 21\n    _f(0x185346b40be80), _f(0x234a30239ea00), _f(0x345f5bcfbb580),\n    _f(0x4fc2f91719900), _f(0x7d257d9ac0c80), _f(0xcb49d34f58800),\n    _f(0x1580c944df8380), _f(0x263bb5e9cb7700),\n    _f(0x483bd94933da80), _f(0x935c1fd3f92600),\n    _f(0x14c807d3436d180), _f(0x35e9298d8a45500),\n    _f(0xac6bf9cef462880), _f(0x318eb0c51232c400),\n    _f2(9164, 0xf22328f6f9f80), -_f2(84728, 0x78acb3795cd00),\n    _f2(191114, 0x47ac3650f680), -_f2(146268, 0x68f68696f9e00),\n    -_f2(28124, 0xaf1a222081280), _f2(95633, 0xf3c35e98b1100),\n    -_f2(42101, 0xccb76963dbb80), _f2(4250, 0xa99770cb50078),\n    _f2(5698544, 0x5eb10eb5f946b),\n    # C4[2], coeff of eps^4, polynomial in n of order 22\n    _f(0x7c86a4240e80), _f(0xaf5db2064cc0), _f(0xfb958bed1300),\n    _f(0x17080cf847940), _f(0x2288f92359780), _f(0x352f6beaa45c0),\n    _f(0x54760062cdc00), _f(0x8b024608ff240), _f(0xeea60450a2080),\n    _f(0x1af0609151bec0), _f(0x33c8072244a500),\n    _f(0x6bad7af287eb40), _f(0xf83a707fcba980),\n    _f(0x293d0a92ebeb7c0), _f(0x87aa233703e6e00),\n    _f(0x2855283ce7ee6440), _f2(7785, 0x74e297d243280),\n    -_f2(76427, 0xf39041d0ccf40), _f2(190726, 0x777542b243700),\n    -_f2(188315, 0x1030e5dfaa2c0), _f2(42101, 0xccb76963dbb80),\n    _f2(46959, 0xb31b5803129c0), -_f2(23682, 0x43272b482b978),\n    _f2(5698544, 0x5eb10eb5f946b),\n    # C4[2], coeff of eps^3, polynomial in n of order 23\n    _f(0x21a7e921c980), _f(0x2e51be6e8f00), _f(0x40c19fbec480),\n    _f(0x5c1e6062c200), _f(0x8599d6a9df80), _f(0xc60160b77500),\n    _f(0x12cb7c4c7da80), _f(0x1d5985b996800), _f(0x2f524aaed7580),\n    _f(0x4f30941955b00), _f(0x8a76dd63f7080), _f(0xff32326380e00),\n    _f(0x1f5b1b59928b80), _f(0x42dd3cfeae4100),\n    _f(0x9e90e4efcb8680), _f(0x1b33e235264b400),\n    _f(0x5cdaf2eb93f2180), _f(0x1cd398a25fa82700),\n    _f2(5865, 0x9368046121c80), -_f2(61723, 0xe7c88c9baa600),\n    _f2(171645, 0xcc7599f993780), -_f2(213747, 0x992d035d6f300),\n    _f2(126305, 0x66263c2b93280), -_f2(28944, 0xfcbe1874a70e8),\n    _f2(5698544, 0x5eb10eb5f946b),\n    # C4[2], coeff of eps^2, polynomial in n of order 24\n    _f(0x5f08c3cb900), _f(0x807038c0ca0), _f(0xaffaed32440),\n    _f(0xf4c5be483e0), _f(0x15a2490f6f80), _f(0x1f28eae1cb20),\n    _f(0x2dce80c7fac0), _f(0x44e60304c260), _f(0x6a58ca3b2600),\n    _f(0xa90e89d449a0), _f(0x1160126eb5140), _f(0x1db88b51940e0),\n    _f(0x354168d7adc80), _f(0x64e3bca9a8820), _f(0xcc99ed98827c0),\n    _f(0x1c3fb9ad58ff60), _f(0x45c01ca2899300),\n    _f(0xc88852534b86a0), _f(0x2d1eac1f8a97e40),\n    _f(0xee21e1c2e9afde0), _f2(3238, 0x9997f46a24980),\n    -_f2(36434, 0x3fed7daa1bae0), _f2(105254, 0x7fca8779a54c0),\n    -_f2(115779, 0xf2f861d29c3a0), _f2(43417, 0x7b1d24aefa95c),\n    _f2(5698544, 0x5eb10eb5f946b),\n    # C4[3], coeff of eps^26, polynomial in n of order 0\n    433472, _f(72882272925),\n    # C4[3], coeff of eps^25, polynomial in n of order 1\n    _f(76231168), _f(19985680), _f(0x958a9334879),\n    # C4[3], coeff of eps^24, polynomial in n of order 2\n    _f(969805824), -_f(756467712), _f(427576864), _f(0x33a763b318f5),\n    # C4[3], coeff of eps^23, polynomial in n of order 3\n    _f(0xe7cfd39aa00), -_f(0xe6239d55400), _f(0x44ffe5cce00),\n    _f(0x123fa804df0), _f(0x73400ac32a3f24f),\n    # C4[3], coeff of eps^22, polynomial in n of order 4\n    _f(633551529 << 15), -_f(0x130f2c71c000), _f(0x7e08a8b4000),\n    -_f(0x69e0a004000), _f(0x39175efa340), _f(0x59a39697cb86721),\n    # C4[3], coeff of eps^21, polynomial in n of order 5\n    _f(0xe1a59555817c700), -_f(0xce92ef160470400),\n    _f(0x6a50b28bc94d100), -_f(0x6ec5ce0328fa200),\n    _f(0x1e2919432b73b00), _f(0x81169f96b647f8),\n    _f2(2659320, 0xb4b906dd74543),\n    # C4[3], coeff of eps^20, polynomial in n of order 6\n    _f(0x4a951ec0f743800), -_f(0x39128060ba74400),\n    _f(0x258d1de3ebd5000), -_f(0x25e6a8ece22dc00),\n    _f(0xe953314d336800), -_f(0xd6fbba5b80b400),\n    _f(0x6d3d6d3e79ea90), _f2(531864, 0x2425015f7daa7),\n    # C4[3], coeff of eps^19, polynomial in n of order 7\n    _f(0x7366685d2da15300), -_f(0x46390dd9eadeba00),\n    _f(0x3de3739917104900), -_f(0x34e3ad131262bc00),\n    _f(0x1ae64995e9a59f00), -_f(0x1d6cea9b561f3e00),\n    _f(0x70d3407961b9500), _f(0x1ea45bc7b594048),\n    _f2(7977962, 0x1e2b14985cfc9),\n    # C4[3], coeff of eps^18, polynomial in n of order 8\n    _f2(2991, 8707772229 << 17), -_f(0x5c0b6a6cd5328000),\n    _f(0x6cf3b04ea6358000), -_f(0x47da0c907a958000),\n    _f(0x334344c895550000), -_f(0x3257cd9b75628000),\n    _f(0x11d874d9e96c8000), -_f(0x1273b92365d58000),\n    _f(0x8b048eddb8dae80), _f2(7977962, 0x1e2b14985cfc9),\n    # C4[3], coeff of eps^17, polynomial in n of order 9\n    _f2(4599, 0x20675bc677c00), -_f2(2190, 0x6a6db0c48a000),\n    _f2(3019, 0xad2c946b04400), -_f(0x5cc951aa5f7ff800),\n    _f(0x61f2b89850d68c00), -_f(0x49aa7ace4eb85000),\n    _f(0x26482ceb1d4d5400), -_f(0x2b88fb70a186a800),\n    _f(0x8bf6f0c9a679c00), _f(0x26ce624431e62e0),\n    _f2(7977962, 0x1e2b14985cfc9),\n    # C4[3], coeff of eps^16, polynomial in n of order 10\n    _f(0x383bee2531d2a000), -_f(0x2821094d061d1000),\n    _f(0x2c347b321d4c8000), -_f(0x125d6736b20ff000),\n    _f(0x1a6c4162f9ae6000), -_f(0xdca07dd1a07d000),\n    _f(0xba2cc7913be4000), -_f(0xa8a49fd40deb000),\n    _f(0x36dcb24ee422000), -_f(0x4159df2ed6e9000),\n    _f(0x1bdad6784709c40), _f2(1139708, 0xdfbd02f131daf),\n    # C4[3], coeff of eps^15, polynomial in n of order 11\n    _f2(7381, 0x14c34c0c1f400), -_f2(13257, 0xf5b9dadc0c800),\n    _f2(7086, 0x404eb1053bc00), -_f2(4054, 0xe4ed62e9ea000),\n    _f2(5287, 0x17e93cc880400), -_f(0x7bc6aed7afe87800),\n    _f2(2758, 0x364797381cc00), -_f(0x676ee80244a35000),\n    _f(0x3b6d32d9ca041400), -_f(0x43e3e0c280942800),\n    _f(0xa86d2e316b1dc00), _f(0x300bec0027818e0),\n    _f2(7977962, 0x1e2b14985cfc9),\n    # C4[3], coeff of eps^14, polynomial in n of order 12\n    _f2(66948, 0x4f30b3f870000), -_f2(52646, 0x686a3833a8000),\n    _f2(7561, 0xd0b8bda7a8000), -_f2(13026, 0x7d89ec00d8000),\n    _f2(8130, 0xd3b0b583a0000), -_f2(3523, 0xd290763e28000),\n    _f2(5530, 0x8b9708b698000), -_f(0x7e52c154efd58000),\n    _f2(2356, 0x7673a06ad0000), -_f(0x6f6a34d21b028000),\n    _f(0x220d8444fca88000), -_f(0x2fac85fa2e858000),\n    _f(0x11c823101280e280), _f2(7977962, 0x1e2b14985cfc9),\n    # C4[3], coeff of eps^13, polynomial in n of order 13\n    -_f2(129173, 0x58489bc283900), _f2(59789, 0xf9dc41e63d400),\n    _f2(65695, 0x9083acc5cc100), -_f2(58445, 0x2f2cc6e161a00),\n    _f2(8184, 0x5e79915d1b00), -_f2(12353, 0x83a959670c800),\n    _f2(9463, 0x4211f61d49500), -_f2(2966, 0xe12b8e3527600),\n    _f2(5543, 0x52a28a556ef00), -_f2(2249, 0xe1f749ba16400),\n    _f(0x6b0d1cda5c5fe900), -_f(0x70ab303245f3d200),\n    _f(0xb596d16f1a34300), _f(0x35b4de912478078),\n    _f2(7977962, 0x1e2b14985cfc9),\n    # C4[3], coeff of eps^12, polynomial in n of order 14\n    -_f2(6933, 0xfc2bb7bd6800), _f2(63382, 0x668969a617c00),\n    -_f2(132589, 0xf0bdf2e789000), _f2(69768, 0x70d2052fd2400),\n    _f2(63007, 0x6d053a2cb4800), -_f2(65233, 0xb829e1b817400),\n    _f2(9601, 0xec9983923a000), -_f2(11042, 0x4317b942ccc00),\n    _f2(11048, 0xa50acd625f800), -_f2(2545, 0x7c97f16176400),\n    _f2(5107, 0xc83f2d67d000), -_f2(2697, 0x85e48cc53bc00),\n    _f(0x36af107261fea800), -_f(0x57b6b3b8f7f45400),\n    _f(0x1b355635bf037310), _f2(7977962, 0x1e2b14985cfc9),\n    # C4[3], coeff of eps^11, polynomial in n of order 15\n    -_f(0x718d19ce618f700), -_f(0x22292bb4d2a0a600),\n    -_f2(6561, 0x7bb8e05b06500), _f2(61876, 0xa080215cbc400),\n    -_f2(135759, 0x6c0a25f10b300), _f2(81504, 0x4116e653fae00),\n    _f2(58147, 0xb03676e9edf00), -_f2(73011, 0xd75b35d7e2800),\n    _f2(12405, 0x6d2fd911f1100), -_f2(8886, 0xdfa5214b6fe00),\n    _f2(12677, 0x826d436a8a300), -_f2(2577, 0x6d77ecdf41400),\n    _f2(3947, 0x879d1c7c5500), -_f2(3192, 0x95f286c2eaa00),\n    _f(0x7343398f272e700), _f(0x20b3728b7b6b2d8),\n    _f2(7977962, 0x1e2b14985cfc9),\n    # C4[3], coeff of eps^10, polynomial in n of order 16\n    -_f(0xaaaed768da0000), -_f(0x1d8d58546174000),\n    -_f(0x650ff776c6dc000), -_f(0x1f0fa133b6eac000),\n    -_f2(6125, 0x868b157bb8000), _f2(59813, 0x741ec012c000),\n    -_f2(138411, 0xa7483b2cd4000), _f2(95264, 0x22057cd374000),\n    _f2(50003, 0x3a5ca8a530000), -_f2(81502, 0xff7b30e274000),\n    _f2(17542, 0xf2776c79b4000), -_f2(5812, 0xc63b637b2c000),\n    _f2(13748, 0x38a6c4d018000), -_f2(3547, 0xbf6bf7e154000),\n    _f(0x78ab12d1827bc000), -_f2(2957, 0x6b24852f8c000),\n    _f(0x2bef42096127d7c0), _f2(7977962, 0x1e2b14985cfc9),\n    # C4[3], coeff of eps^9, polynomial in n of order 17\n    -_f(0x3cadc0edd6600), -_f(0x8587ee4c4e000),\n    -_f(0x14633459f95a00), -_f(0x397bc2059d8400),\n    -_f(0xc89f8adb490e00), -_f(0x3f2a86a64b5a800),\n    -_f(0x32218961953c0200), _f2(8146, 0xa930f21b73400),\n    -_f2(20015, 0x8b16989f1b600), _f2(15890, 0x8aa3fb72d9000),\n    _f2(5271, 0xbcd5aeda65600), -_f2(12822, 0x9424c22ae1400),\n    _f2(3774, 0x46bb658aca200), -_f(0x148a80159bb73800),\n    _f(0x736580900f31ae00), -_f(0x336f49c74ee95c00),\n    -_f(0x249e756eeea0600), -_f(0x13841fc89043bb0),\n    _f2(1139708, 0xdfbd02f131daf),\n    # C4[3], coeff of eps^8, polynomial in n of order 18\n    -_f(0x5318540751000), -_f(0xa0702ad537800),\n    -_f(0x14a9549a688000), -_f(0x2e31b9dc878800),\n    -_f(0x72dceb1c83f000), -_f(0x14a6c8c8df91800),\n    -_f(0x49c3e43ec426000), -_f(0x17df3e19aed32800),\n    -_f2(5017, 0x9bceef61ed000), _f2(53301, 0x74feac5bf4800),\n    -_f2(140139, 0x5706164944000), _f2(129320, 0x1fd8eca933800),\n    _f2(16403, 0x87db178e25000), -_f2(95278, 0x1e65e67825800),\n    _f2(40665, 0x6f4b03ec9e000), -_f(0x1c82af8b65ac6800),\n    _f2(8049, 0x334ede6a77000), -_f2(7540, 0x5b108b15f800),\n    _f(0x49ca297e3ffdbce0), _f2(7977962, 0x1e2b14985cfc9),\n    # C4[3], coeff of eps^7, polynomial in n of order 19\n    -_f(0x11fa490472e00), -_f(0x1fe0e98340400),\n    -_f(0x3b2a552443a00), -_f(0x73f5544ad2000),\n    -_f(0xf2e5765f90600), -_f(0x2290ce0f423c00),\n    -_f(0x57b83400ee1200), -_f(0x1023f65b9bfd800),\n    -_f(0x3b36c6db61bde00), -_f(0x13c7b72049527400),\n    -_f2(4323, 0x73be8c4caea00), _f2(48359, 0x7d21dc7197000),\n    -_f2(137343, 0xc18958973b600), _f2(148676, 0xd51cb5c775400),\n    -_f2(14754, 0xa89f0bc9ec200), -_f2(92175, 0x33d1092c54800),\n    _f2(60290, 0x88af4d43b7200), -_f2(5855, 0x8c9719d08e400),\n    -_f(0x48b16aa4982d9a00), -_f(0x51dba59b00547450),\n    _f2(7977962, 0x1e2b14985cfc9),\n    # C4[3], coeff of eps^6, polynomial in n of order 20\n    -_f(0x3f0527da8000), -_f(0x69410a894000), -_f(0xb5f68cf74000),\n    -_f(0x14766cd18c000), -_f(5178956321 << 17),\n    -_f(0x4cf42ca274000), -_f(0xa45199d7cc000),\n    -_f(0x17e337e696c000), -_f(0x3e169088698000),\n    -_f(0xbbd1c494494000), -_f(0x2c70014b4ca4000),\n    -_f(0xf67e7406420c000), -_f2(3524, 0xcb63f52610000),\n    _f2(41859, 0x1cfdfa000c000), -_f2(129839, 0xf92d750efc000),\n    _f2(166586, 0x5d10da3394000), -_f2(59706, 0x5fbf7c0388000),\n    -_f2(68020, 0xa047f74594000), _f2(75721, 0x1307a9002c000),\n    -_f2(24384, 0xc0b45d798c000), _f(0x6534ccbfa35124c0),\n    _f2(7977962, 0x1e2b14985cfc9),\n    # C4[3], coeff of eps^5, polynomial in n of order 21\n    -_f(0xcd30266b700), -_f(0x147d4e1fec00), -_f(0x21a6b4a64100),\n    -_f(0x390579acce00), -_f(0x6423741d2b00), -_f(0xb749b833f000),\n    -_f(0x1602ad6953500), -_f(0x2ccfc753d1200),\n    -_f(0x61e5d62301f00), -_f(0xe995b2fcff400),\n    -_f(0x270c826fb7a900), -_f(0x7a09e7f3045600),\n    -_f(0x1dfb4c385ed9300), -_f(0xaddceca1091f800),\n    -_f2(2624, 0xc45e83fdb9d00), _f2(33433, 0x20d0a109f6600),\n    -_f2(114656, 0xa3de6d0238700), _f2(175907, 0x1d4b03fe80400),\n    -_f2(116168, 0x7b17e334f1100), -_f2(3810, 0x1e1c2e9afde00),\n    _f2(45340, 0x664f5dce00500), -_f2(17205, 0xff74273e2678),\n    _f2(7977962, 0x1e2b14985cfc9),\n    # C4[3], coeff of eps^4, polynomial in n of order 22\n    -_f(784468838400), -_f(0x11a0a388400), -_f(0x1bda05d7000),\n    -_f(0x2d25cb21c00), -_f(0x4b5283d5800), -_f(0x81d5381f400),\n    -_f(0xe84e582c000), -_f(0x1b2017768c00), -_f(0x354f35942800),\n    -_f(0x6f49195e6400), -_f(0xf9ffb1d81000), -_f(0x267769207fc00),\n    -_f(0x6a9801634f800), -_f(0x15adc2fc41d400),\n    -_f(0x5947d2bb916000), -_f(0x222d7eabcda6c00),\n    -_f(0x22707489da53c800), _f2(7620, 0x3c385d35fbc00),\n    -_f2(29197, 0x886c2c8e2b000), _f2(53341, 0xa58a8c79e2400),\n    -_f2(51817, 0x997f46a249800), _f2(25908, 0xccbfa35124c00),\n    -_f2(5262, 0xb996ed2c7b770), _f2(2659320, 0xb4b906dd74543),\n    # C4[3], coeff of eps^3, polynomial in n of order 23\n    -_f(242883621120), -_f(365079728640), -_f(559688344320),\n    -_f(876931046400), -_f(0x147bd04f500), -_f(0x21c7b15a600),\n    -_f(0x396d13e6700), -_f(0x650be18b000), -_f(0xb8f375f7900),\n    -_f(0x16253c45ba00), -_f(0x2cc1928ceb00), -_f(0x6065d92f8400),\n    -_f(0xe04f74737d00), -_f(0x23eadf138ce00),\n    -_f(0x682920857ef00), -_f(0x1651f4aee45800),\n    -_f(0x61a68e7d270100), -_f(0x281b43aa424e200),\n    -_f(0x2bddd20238857300), _f2(10668, 0x544ee8e52d400),\n    -_f2(45340, 0x664f5dce00500), _f2(90680, 0xcc9ebb9c00a00),\n    -_f2(84203, 0x996ed2c7b7700), _f2(28944, 0xfcbe1874a70e8),\n    _f2(7977962, 0x1e2b14985cfc9),\n    # C4[4], coeff of eps^26, polynomial in n of order 0\n    _f(74207744), _f(0x377b3e1aa351),\n    # C4[4], coeff of eps^25, polynomial in n of order 1\n    -_f(85649408), _f(42776448), _f(0x7a5a1b59863),\n    # C4[4], coeff of eps^24, polynomial in n of order 2\n    -_f(0x5d090f66800), _f(0x15cb8432c00), _f(412184096896),\n    _f(0x3e897844a5071eb),\n    # C4[4], coeff of eps^23, polynomial in n of order 3\n    -_f(0xbff3f70d800), _f(0x44c7b31b000), -_f(0x48108b34800),\n    _f(0x21db9c9a980), _f(0x4fc9e010f5dcf23),\n    # C4[4], coeff of eps^22, polynomial in n of order 4\n    -_f(0xd6b769b7e000), _f(0x72b1142e1800), -_f(0x82aa7be7f000),\n    _f(0x1aa8532e0800), _f(0x779e97cc600), _f(0x40d4060dc7c384c7),\n    # C4[4], coeff of eps^21, polynomial in n of order 5\n    -_f(0x474af3a87693800), _f(0x3c389a0df442000),\n    -_f(0x37e1a3d92db8800), _f(0x12d1db00bd71000),\n    -_f(0x15fc16a85bcd800), _f(0x99491c279c9880),\n    _f2(1139708, 0xdfbd02f131daf),\n    # C4[4], coeff of eps^20, polynomial in n of order 6\n    -_f(0x303d69b47fe22400), _f(0x3f4d2c93a259b200),\n    -_f(0x29be542895db1800), _f(0x17eb54d9d2a59e00),\n    -_f(0x1b89924120220c00), _f(0x4aa7a22c8d50a00),\n    _f(0x157745851f3d4c0), _f2(10257379, 0xdda51a7ac0b27),\n    # C4[4], coeff of eps^19, polynomial in n of order 7\n    -_f(0x44c3305a70de1000), _f(0x6d1c9adfcac5e000),\n    -_f(0x312f88327b293000), _f(0x3351684a1a554000),\n    -_f(0x2ab43a21fd0e5000), _f(0xdaac481cc1ca000),\n    -_f(0x120b854707e97000), _f(0x7289c72302f3500),\n    _f2(10257379, 0xdda51a7ac0b27),\n    # C4[4], coeff of eps^18, polynomial in n of order 8\n    -_f2(2256, 0x7b501df238000), _f2(2620, 0x5abb698ccf000),\n    -_f(0x3cfd86157c22a000), _f(0x656f30f9d7a5d000),\n    -_f(0x3529aafa1251c000), _f(0x23979dd758c6b000),\n    -_f(0x27cfd52f91a0e000), _f(0x52c1297ffdf9000),\n    _f(0x1899e61f0915c00), _f2(10257379, 0xdda51a7ac0b27),\n    # C4[4], coeff of eps^17, polynomial in n of order 9\n    -_f2(5647, 0x92962c0679000), _f2(3064, 0xd620df9a18000),\n    -_f(0x73b5708edb717000), _f2(2782, 0xf8e2a6bab2000),\n    -_f(0x3aa55028ed4d5000), _f(0x54f5b0489ac0c000),\n    -_f(0x3a8372ad6ebf3000), _f(0x128f31db99de6000),\n    -_f(0x1bbb3cddeb8b1000), _f(0x9c3f5d344ffbb00),\n    _f2(10257379, 0xdda51a7ac0b27),\n    # C4[4], coeff of eps^16, polynomial in n of order 10\n    -_f2(12546, 0xd0659481f7000), _f2(2321, 0x6f75c5bce2800),\n    -_f2(5209, 0xc9bfbad2ac000), _f2(3693, 0x4f3d4dd785800),\n    -_f(0x59b26230b2e61000), _f2(2785, 0x7ef843b608800),\n    -_f(0x4086b5731d656000), _f(0x3b22d2695822b800),\n    -_f(0x3bbf747f663cb000), _f(0x50e2c41c71ae800),\n    _f(0x19182d9cca60700), _f2(10257379, 0xdda51a7ac0b27),\n    # C4[4], coeff of eps^15, polynomial in n of order 11\n    -_f2(14655, 0xa7ccf7b3e3000), _f2(5703, 0xb41e60048e000),\n    -_f2(13723, 0x6fa2143b1000), _f2(2794, 0x80dd2a6158000),\n    -_f2(4434, 0xbdbd659d5f000), _f2(4398, 0x1bf890b722000),\n    -_f(0x462f1f0759b2d000), _f2(2504, 0xfcfacf17ac000),\n    -_f(0x4eb2a95e9a75b000), _f(0x1bef3eef6f4b6000),\n    -_f(0x2d8008caddc29000), _f(0xdbb189dc4eba300),\n    _f2(10257379, 0xdda51a7ac0b27),\n    # C4[4], coeff of eps^14, polynomial in n of order 12\n    -_f2(31110, 0xd0a51132f4000), _f2(76716, 0x887753c58b000),\n    -_f2(19285, 0xcfd85f57f6000), _f2(3558, 0x4fcfd1ab09000),\n    -_f2(14554, 0xbf2d0ac9f8000), _f2(3850, 0x9631322307000),\n    -_f2(3313, 0x90f8abbffa000), _f2(4999, 0xf3c6aed085000),\n    -_f(0x44308029330fc000), _f(0x72cd2f325ae83000),\n    -_f(0x5cc3eeffca3fe000), _f(0x2f990ef34001000),\n    _f(0xedd65cb262fc00), _f2(10257379, 0xdda51a7ac0b27),\n    # C4[4], coeff of eps^13, polynomial in n of order 13\n    _f2(109832, 0xfe67f2664d000), -_f2(101414, 0x365d952fe4000),\n    -_f2(21578, 0x2c7dffdd75000), _f2(81484, 0xfb5b01862000),\n    -_f2(25828, 0x7adf44b697000), _f(0x527645ab2c368000),\n    -_f2(14626, 0xa0f5b7bcd9000), _f2(5668, 0x89f8307d6e000),\n    -_f(0x7c6deea8217fb000), _f2(5148, 0xb3c77272b4000),\n    -_f(0x5ea4f23e05fbd000), _f(0x33d79ea3e6f7a000),\n    -_f(0x512f5a2dc7bdf000), _f(0x13f171801c8d4d00),\n    _f2(10257379, 0xdda51a7ac0b27),\n    # C4[4], coeff of eps^12, polynomial in n of order 14\n    _f2(3290, 0xf070eb97f3400), -_f2(37925, 0x14cc0872bb200),\n    _f2(108756, 0x262a302ba0800), -_f2(111139, 0xba49ef60cbe00),\n    -_f2(8978, 0x96e5af6312400), _f2(85061, 0xe9667b666b600),\n    -_f2(34830, 0xb50884d615000), -_f(0x1ae66991075c5600),\n    -_f2(13337, 0xd2d72b2557c00), _f2(8254, 0x43d2c57af1e00),\n    -_f(0x39646320240ca800), _f2(4333, 0x5a8eb4efe1200),\n    -_f2(2317, 0x387052d25d400), -_f(0x4971411b9aa7a00),\n    -_f(0x239dc6f1135e6c0), _f2(10257379, 0xdda51a7ac0b27),\n    # C4[4], coeff of eps^11, polynomial in n of order 15\n    _f(0x22fb18f3d6fc800), _f(0xc812a63656dd000),\n    _f2(2929, 0x54e6120875800), -_f2(35121, 0x48d05c62be000),\n    _f2(106528, 0xc02be4bd3e800), -_f2(121104, 0xca8db31999000),\n    _f2(7480, 0x3b39caec37800), _f2(86076, 0xd8784a9f2c000),\n    -_f2(46728, 0xdb6f945bbf800), -_f(0x1e17ea5787b8f000),\n    -_f2(10012, 0x630283c6800), _f2(11072, 0xcb500e9316000),\n    -_f(0x3d2315ebbfcfd800), _f2(2196, 0x522d08f7fb000),\n    -_f2(2582, 0x2942c8d084800), _f(0x1dbc900c41177d80),\n    _f2(10257379, 0xdda51a7ac0b27),\n    # C4[4], coeff of eps^10, polynomial in n of order 16\n    _f(0x2367980c018000), _f(0x717a5d0aad6800),\n    _f(0x1c7a6b9a7155000), _f(0xa7a0b73a0f93800),\n    _f2(2540, 0xdc02459a12000), -_f2(31836, 0xf2625ff3ef800),\n    _f2(102741, 0xc61b0075cf000), -_f2(130713, 0xb431635532800),\n    _f2(28618, 0x913148900c000), _f2(82224, 0x225affaa4a800),\n    -_f2(61371, 0x71836a73b7000), _f2(3358, 0xd2d9334507800),\n    -_f2(4436, 0x51714c11fa000), _f2(12409, 0x2e12e0f984800),\n    -_f2(3099, 0xb59c601f3d000), -_f(0x185351aa9adbe800),\n    -_f(0xfcd867cd32b4e00), _f2(10257379, 0xdda51a7ac0b27),\n    # C4[4], coeff of eps^9, polynomial in n of order 17\n    _f(0x3b98569230800), _f(0x954e9f9ae8000), _f(0x1a387f0ed5f800),\n    _f(0x561911aabbb000), _f(0x163673b1889e800),\n    _f(0x870aa0c397ae000), _f2(2128, 0x4412890e0d800),\n    -_f2(28018, 0x9edd02151f000), _f2(96862, 0x40aaeaffcc800),\n    -_f2(138876, 0x18d8a92e8c000), _f2(55003, 0xc4365147fb800),\n    _f2(69831, 0x65a81c2787000), -_f2(76836, 0x9198c23745800),\n    _f2(14324, 0xf9d757893a000), _f(0x610a50cc5ec29800),\n    _f2(9036, 0xddda1962ad000), -_f2(5866, 0x301cbcb97800),\n    _f(0x2b3d64f38f7c3a80), _f2(10257379, 0xdda51a7ac0b27),\n    # C4[4], coeff of eps^8, polynomial in n of order 18\n    _f(0x7c44a1c56800), _f(0x10e1a40b9f400), _f(0x2778995e94000),\n    _f(0x6511d82348c00), _f(0x122fbee15d1800),\n    _f(0x3d60d47d162400), _f(0x10572b5ec96f000),\n    _f(0x670e5c5512cbc00), _f(0x6a1969ca184cc800),\n    -_f2(23632, 0x6fc488059ac00), _f2(88223, 0x601afc7b4a000),\n    -_f2(143685, 0x3819032af1400), _f2(86217, 0x78ea8eac47800),\n    _f2(43622, 0x50ec504da8400), -_f2(86857, 0xe4e3b378db000),\n    _f2(34767, 0x1af4459111c00), _f(0x470ee9f8c8f42800),\n    -_f(0xf0a395fd8dd4c00), -_f(0x55da5cd875ef3c80),\n    _f2(10257379, 0xdda51a7ac0b27),\n    # C4[4], coeff of eps^7, polynomial in n of order 19\n    _f(0x114b06357800), _f(0x2239f3629000), _f(0x475e8ebd2800),\n    _f(0x9e5523c88000), _f(0x17aa424dfd800), _f(0x3e2133dde7000),\n    _f(0xb7f09cec78800), _f(0x280af153ee6000),\n    _f(0xb0d866e91e3800), _f(0x48b6aeda5425000),\n    _f(0x4ec10b7f840de800), -_f2(18693, 0xda891ccdbc000),\n    _f2(76065, 0x2aaa760409800), -_f2(141961, 0xc3f732a21d000),\n    _f2(119123, 0xd1c84be04800), -_f(0x7f4b67756e45e000),\n    -_f2(76606, 0xe7a6860690800), _f2(56790, 0xce45bec021000),\n    -_f2(14598, 0xc436164715800), _f(0x23b84843a30d9480),\n    _f2(10257379, 0xdda51a7ac0b27),\n    # C4[4], coeff of eps^6, polynomial in n of order 20\n    _f(0x2492f246000), _f(0x43b68382800), _f(0x827fc7ff000),\n    _f(0x10769dabb800), _f(0x231371038000), _f(0x4fad3dfb4800),\n    _f(0xc39532c71000), _f(0x2109cc8eed800), _f(0x650cdd3e2a000),\n    _f(0x16d3054b8e6800), _f(0x69275cf4ee3000),\n    _f(0x2d6bb9aa2a1f800), _f(0x342dc9db6781c000),\n    -_f2(13325, 0xb15a42ce7800), _f2(59725, 0xe775950b55000),\n    -_f2(128819, 0x4abda20fae800), _f2(144216, 0xdf24ba0e000),\n    -_f2(65935, 0x168961cdb5800), -_f2(23422, 0x325c674239000),\n    _f2(39625, 0x392517e583800), -_f2(12954, 0x665fd1a892600),\n    _f2(10257379, 0xdda51a7ac0b27),\n    # C4[4], coeff of eps^5, polynomial in n of order 21\n    _f(273177999360), _f(481049600000), _f(875104847872),\n    _f(0x180866df000), _f(0x2f4b74a1800), _f(0x61abf5b8000),\n    _f(0xd562fc0e800), _f(0x1f2598191000), _f(0x4ed8f85ab800),\n    _f(0xdc91252ca000), _f(0x2bd44913d8800), _f(0xa584ade1c3000),\n    _f(0x322090df0f5800), _f(0x16f6266186dc000),\n    _f(0x1c472a543df62800), -_f2(7859, 0x7aaf0fd58b000),\n    _f2(39234, 0x9eeb23497f800), -_f2(98180, 0xb70c1a0b12000),\n    _f2(140051, 0xe6fe7071ac800), -_f2(115827, 0x9358bc0159000),\n    _f2(51817, 0x997f46a249800), -_f2(9715, 0xccc7dd3e6dc80),\n    _f2(10257379, 0xdda51a7ac0b27),\n    # C4[4], coeff of eps^4, polynomial in n of order 22\n    _f(18103127040), _f(30658521600), _f(53362944000),\n    _f(95756838400), _f(177805329408), _f(343155696128),\n    _f(692078714880), _f(0x155e2e7de00), _f(0x30194583c00),\n    _f(0x741fc16da00), _f(0x131155285800), _f(0x379d38605600),\n    _f(0xb96166967400), _f(0x2e2dfa3db5200), _f(0xee14dc9ed9000),\n    _f(0x752e44962ece00), _f(0x9cf0406db58ac00),\n    -_f2(3007, 0xfcd2e16ce3600), _f2(16844, 0xbb0354c82c800),\n    -_f2(48007, 0x7b6318074ba00), _f2(77726, 0x663ee9f36e400),\n    -_f2(64771, 0xffdf184adbe00), _f2(21050, 0xe65bb4b1eddc0),\n    _f2(10257379, 0xdda51a7ac0b27),\n    # C4[5], coeff of eps^26, polynomial in n of order 0\n    356096, _f(98232628725),\n    # C4[5], coeff of eps^25, polynomial in n of order 1\n    _f(19006687232), _f(5473719680), _f(0x1580fd4afdbe65),\n    # C4[5], coeff of eps^24, polynomial in n of order 2\n    _f(91538057 << 15), -_f(0x378568c4000), _f(0x16cc31e2a00),\n    _f(0x4c6f2137745e091),\n    # C4[5], coeff of eps^23, polynomial in n of order 3\n    _f(0xef2f223e3800), -_f(0x110fb2e7bf000), _f(0x282bb4606800),\n    _f(0xbe30d7a6780), _f2(2828, 0xfcd03d1974f5),\n    # C4[5], coeff of eps^22, polynomial in n of order 4\n    _f(0x5e4a1598000), -_f(0x48b6e92a000), _f(97904939 << 14),\n    -_f(0x20e8326e000), _f(850763001088), _f(0x2081a7235aaf593),\n    # C4[5], coeff of eps^21, polynomial in n of order 5\n    _f(0x40db2f49b455f800), -_f(0x1e99bb32c4c22000),\n    _f(0x173ba0294630c800), -_f(0x194707e3169c1000),\n    _f(0x2d83efe695c9800), _f(0xdf3e0617af3080),\n    _f2(12536797, 0x9d1f205d24685),\n    # C4[5], coeff of eps^20, polynomial in n of order 6\n    _f(0x216feaa994ce0000), -_f(0xab5f967e8690000),\n    _f(0x47922226ed5 << 18), -_f(0xb74a91dab5f0000),\n    _f(0x3c54ceff81a0000), -_f(0x5d7cb98f1a50000),\n    _f(0x1f9a69370b20800), _f2(4178932, 0x89b50ac9b6cd7),\n    # C4[5], coeff of eps^19, polynomial in n of order 7\n    _f(0x737c719d74a11000), -_f(0x33cb00709b02e000),\n    _f(0x64aa4f647e063000), -_f(0x22d04f5347fb4000),\n    _f(0x244213a9e6215000), -_f(0x2372b83384fba000),\n    _f(0x29c5a12d1767000), _f(0xd64e2b028e9d00),\n    _f2(12536797, 0x9d1f205d24685),\n    # C4[5], coeff of eps^18, polynomial in n of order 8\n    _f(0x4d6c482dac2a0000), -_f2(2329, 0xb1fe2723dc000),\n    _f2(2244, 0xda129de1b8000), -_f(0x25b9c94d1ec14000),\n    _f(0x5915813997350000), -_f(0x2b18411354f8c000),\n    _f(0x1038d20e1fbe8000), -_f(0x1a9977b2ea9c4000),\n    _f(0x7df995f732ef600), _f2(12536797, 0x9d1f205d24685),\n    # C4[5], coeff of eps^17, polynomial in n of order 9\n    _f(0x514388ef27d31000), -_f2(6020, 0x2be450c918000),\n    _f(0x6fa66bdc836df000), -_f(0x67912be26fab2000),\n    _f2(2539, 0xf65fb2006d000), -_f(0x237e1033f4d8c000),\n    _f(0x3efb5ba75c79b000), -_f(0x32b52fd83cbe6000),\n    _f(0x17d40e2c1a29000), _f(0x7dfd16a9c2e300),\n    _f2(12536797, 0x9d1f205d24685),\n    # C4[5], coeff of eps^16, polynomial in n of order 10\n    _f2(12470, 0xf777d5cb70000), -_f2(8994, 0x34ff96fbd8000),\n    _f(0x8b5e07446e3 << 18), -_f2(5684, 0xa351b76ba8000),\n    _f2(2676, 0xe4b7624210000), -_f(0x3b4e8fe27b2f8000),\n    _f2(2525, 0xe113384060000), -_f(0x317b33e66b8c8000),\n    _f(0x1afebbc488cb0000), -_f(0x2abc78cdb6418000),\n    _f(0xab0b32cc6da3c00), _f2(12536797, 0x9d1f205d24685),\n    # C4[5], coeff of eps^15, polynomial in n of order 11\n    _f2(45753, 0x27312c684b000), _f(0x6b25908081df2000),\n    _f2(10080, 0x3e3c4e94e9000), -_f2(11483, 0x3052990658000),\n    _f(0x186dcc47df2a7000), -_f2(4654, 0xe97b33c9a2000),\n    _f2(3765, 0x192eb8a145000), -_f(0x1ea7f016e242c000),\n    _f(0x7c08a9e80a083000), -_f(0x48a61c5124e36000),\n    -_f(0x1ab8464a6fdf000), -_f(0xc3b3128c53f500),\n    _f2(12536797, 0x9d1f205d24685),\n    # C4[5], coeff of eps^14, polynomial in n of order 12\n    -_f2(29853, 0xf97fbea090000), -_f2(72661, 0xb2e53c820c000),\n    _f2(55735, 0xd505afdac8000), -_f(0x19eb9cd373704000),\n    _f2(6447, 8655275741 << 17), -_f2(13735, 0x934f51ea3c000),\n    _f(0x503c7c1e17a78000), -_f2(2910, 0x8f0f066334000),\n    _f2(4611, 0xa07ae6cfd0000), -_f(0x28ec95124696c000),\n    _f(0x386dc5f3bf428000), -_f(0x49a3cdb95c464000),\n    _f(0xec86977ad08e600), _f2(12536797, 0x9d1f205d24685),\n    # C4[5], coeff of eps^13, polynomial in n of order 13\n    -_f2(77964, 0x27205a1bd000), _f2(116550, 0x911cc360c4000),\n    -_f2(45605, 0xab8dec641b000), -_f2(66195, 0xc9de18da12000),\n    _f2(66624, 0xae21593727000), -_f2(5576, 0x36f63ac28000),\n    _f(0x6f2264aae1649000), -_f2(14832, 0x2c940b773e000),\n    _f2(3661, 0xe0e147ff8b000), -_f(0x37687d20b9d14000),\n    _f2(4430, 0xd2ef37d92d000), -_f(0x61330ed553f6a000),\n    -_f(0x8fc7d2821691000), -_f(0x4de8f81581e0b00),\n    _f2(12536797, 0x9d1f205d24685),\n    # C4[5], coeff of eps^12, polynomial in n of order 14\n    -_f(0x520b481798460000), _f2(18997, 713316873 << 16),\n    -_f2(73060, 0xebcc7589c0000), _f2(119587, 0x641c11f8f0000),\n    -_f2(63450, 0xfff4f2db20000), -_f2(54596, 0x54a14049b0000),\n    _f2(77203, 5136366291 << 19), -_f2(15161, 0x669695c550000),\n    -_f2(2898, 7333080783 << 17), -_f2(13401, 0xbb1dc317f0000),\n    _f2(7364, 7522322675 << 18), _f(0xcbde6dd32070000),\n    _f2(2498, 0xb270ac8f60000), -_f2(2207, 0xe5e147ba30000),\n    _f(0x146e5a4ec1af3800), _f2(12536797, 0x9d1f205d24685),\n    # C4[5], coeff of eps^11, polynomial in n of order 15\n    -_f(0x8e2d12e55cc800), -_f(0x3c744345ee05000),\n    -_f(0x436e3347c2885800), _f2(16354, 0x603aee4aee000),\n    -_f2(66895, 0x3561b9526e800), _f2(120525, 0x7fafccca1000),\n    -_f2(82888, 0x6ce782c3a7800), -_f2(36026, 0xb730ca850c000),\n    _f2(84916, 0xe33bbac3af800), -_f2(30329, 0x9a1820a639000),\n    -_f2(5003, 0x6724146c89800), -_f2(8175, 0xa51f341306000),\n    _f2(10601, 0xdf58b3eb8d800), -_f(0x51534d8656793000),\n    -_f(0x13f74fe07242b800), -_f(0x1338322158bf8680),\n    _f2(12536797, 0x9d1f205d24685),\n    # C4[5], coeff of eps^10, polynomial in n of order 16\n    -_f(0x5e9d97de20000), -_f(0x15f51b48a5a000),\n    -_f(0x679f3a6a83c000), -_f(0x2da38dbb53ee000),\n    -_f(0x351287a208998000), _f2(13549, 0xfdc5cc829e000),\n    -_f2(59298, 0x35ebc8a374000), _f2(118312, 0x8f7a13080a000),\n    -_f2(102644, 0xbe9581710000), -_f2(8663, 0x3283e8b4ea000),\n    _f2(85056, 0xa0c3d6fa54000), -_f2(50541, 0x58fecea57e000),\n    _f(0x9e0314066f78000), -_f(0x56026edfbaf2000),\n    _f2(9162, 0x6ada71271c000), -_f2(4514, 0x3f8f2be686000),\n    _f(0x19aa7dbc9bd2b100), _f2(12536797, 0x9d1f205d24685),\n    # C4[5], coeff of eps^9, polynomial in n of order 17\n    -_f(0x689b7f794800), -_f(0x12aa316a68000),\n    -_f(0x3c5fe03b7b800), -_f(0xe70662316b000),\n    -_f(0x468257445d2800), -_f(0x204dea1c904e000),\n    -_f(0x275c24b79c179800), _f2(10640, 0x725f868a0f000),\n    -_f2(50163, 0x8367062950800), _f2(111598, 0xa3db986ecc000),\n    -_f2(120105, 0x1af4e4a837800), _f2(28289, 0xbddfd64f09000),\n    _f2(70122, 0x41f96206f1800), -_f2(70104, 0xcd1cf1241a000),\n    _f2(17631, 0x83f469b94a800), _f2(3507, 0xd4dd7e683000),\n    _f(0x234fa818af3f3800), -_f(0x5217ce807fb7e980),\n    _f2(12536797, 0x9d1f205d24685),\n    # C4[5], coeff of eps^8, polynomial in n of order 18\n    -_f(0x8baa3048000), -_f(0x155e3991c000), -_f(237891401 << 18),\n    -_f(0xa66484064000), -_f(0x22acb24838000),\n    -_f(0x89475b1e6c000), -_f(0x2b8ce25f7b0000),\n    -_f(0x14dd31b8f8b4000), -_f(0x1acbb07dd4628000),\n    _f2(7723, 0xe6c1cd6b44000), -_f2(39540, 0xb1d09a9920000),\n    _f2(98832, 0x70f12b47fc000), -_f2(130553, 0x474c4a5618000),\n    _f2(72091, 0x9d4697d7f4000), _f2(31173, 0xcb977f1d70000),\n    -_f2(72484, 0xa77099aa54000), _f2(42073, 0x76abc75bf8000),\n    -_f2(8983, 0xdb34fa045c000), _f(0x7851cafec6ea600),\n    _f2(12536797, 0x9d1f205d24685),\n    # C4[5], coeff of eps^7, polynomial in n of order 19\n    -_f(808445556736), -_f(0x19fd8659000), -_f(0x3ce45316800),\n    -_f(0x98e89f08000), -_f(0x1a16c5239800), -_f(0x4ef4224b7000),\n    -_f(0x11089a8d8c800), -_f(0x461e8219c6000),\n    -_f(0x1740d89936f800), -_f(0xbb97ef56095000),\n    -_f(0xffd8608f0242800), _f2(4956, 0x2ae7ba647c000),\n    -_f2(27803, 0x8886c0e865800), _f2(78703, 0x691d56f30d000),\n    -_f2(126581, 0xb2ac252438800), _f2(111405, 0x65dae188be000),\n    -_f2(33040, 0xc82f8ec41b800), -_f2(31122, 0xa51c18fcd1000),\n    _f2(33849, 0xe315529991800), -_f2(10096, 0xcfcaaeb453f80),\n    _f2(12536797, 0x9d1f205d24685),\n    # C4[5], coeff of eps^6, polynomial in n of order 20\n    -_f(57693732864), -_f(118378242048), -_f(254261280768),\n    -_f(575562375168), -_f(10565709 << 17), -_f(0x341c17b2000),\n    -_f(0x92ee7ecc000), -_f(0x1ccf17876000), -_f(0x6786d9e38000),\n    -_f(0x1bdf19e19a000), -_f(0x9bb8377424000),\n    -_f(0x5352681ef5e000), -_f(0x79ce0dfd0cd0000),\n    _f2(2563, 0x29027cc1fe000), -_f2(15917, 0xface8c747c000),\n    _f2(51375, 0x61bf7d963a000), -_f2(99436, 0x390f87b768000),\n    _f2(119998, 0xa6d5e6f116000), -_f2(88555, 0x279c7be1d4000),\n    _f2(36577, 0x210e8c3652000), -_f2(6477, 0x332fe8d449300),\n    _f2(12536797, 0x9d1f205d24685),\n    # C4[5], coeff of eps^5, polynomial in n of order 21\n    -_f(2537256960), -_f(4922368000), -_f(9913649152),\n    -_f(20825468928), -_f(45893163008), -_f(3260719 << 15),\n    -_f(265153996800), -_f(709434249216), -_f(0x1e3bc54b800),\n    -_f(0x62f2289a000), -_f(0x174e12bf8800), -_f(0x69ee83c3b000),\n    -_f(0x2753bfa335800), -_f(0x1693a2298bc000),\n    -_f(0x23ce232de3a2800), _f(0x33ca29bdcdd43000),\n    -_f2(5754, 0x693a6155df800), _f2(21176, 0x3b8f28c122000),\n    -_f2(47646, 0x86021bb28c800), _f2(67058, 0x11f0010e41000),\n    -_f2(51817, 0x997f46a249800), _f2(16192, 0xfff7c612b6f80),\n    _f2(12536797, 0x9d1f205d24685),\n    # C4[6], coeff of eps^26, polynomial in n of order 0\n    _f(71266816), _f(0x75209f8d91ab),\n    # C4[6], coeff of eps^25, polynomial in n of order 1\n    -_f(61697 << 14), _f(365122560), _f(0x64173937d043),\n    # C4[6], coeff of eps^24, polynomial in n of order 2\n    -_f(0x10389da9c000), _f(0x19e75ef2000), _f(558875851776),\n    _f(0xd767bab38dc330d),\n    # C4[6], coeff of eps^23, polynomial in n of order 3\n    -_f(0x142d81502c000), _f(0x6dee9f4b8000), -_f(0xae181cf64000),\n    _f(0x39153b46b400), _f2(3342, 0x41381bc9272f3),\n    # C4[6], coeff of eps^22, polynomial in n of order 4\n    -_f(0x13480fca8c000), _f(0x16106a2c37000),\n    -_f(0x1502d2e846000), _f(0x16180c1bd000), _f(0x74238242a00),\n    _f2(3342, 0x41381bc9272f3),\n    # C4[6], coeff of eps^21, polynomial in n of order 5\n    -_f(0x1c0b06f2aed0000), _f(0x44926ab731c0000),\n    -_f(0x2031c71e85b0000), _f(0xca25cdaf0e0000),\n    -_f(0x14c7d62b6490000), _f(0x61052e04125000),\n    _f2(1139708, 0xdfbd02f131daf),\n    # C4[6], coeff of eps^20, polynomial in n of order 6\n    -_f(0x3c147e5183b90000), _f(0x5c8a793ab7a08000),\n    -_f(0xa71b84c4013 << 17), _f(0x26583d412b938000),\n    -_f(0x1ec1409e52930000), _f(0xd82d55b5068000),\n    _f(0x4a1c5add9a3000), _f2(14816215, 0x5c99263f881e3),\n    # C4[6], coeff of eps^19, polynomial in n of order 7\n    -_f2(2884, 0x97776797f0000), _f(0x5dcb94a5bbaa0000),\n    -_f(0x2147754a866d0000), _f(0x59b9e153ee1c0000),\n    -_f(0x1d3317b06cdb0000), _f(0xfd67f86b28e0000),\n    -_f(0x193b89a255c90000), _f(0x662541f54195000),\n    _f2(14816215, 0x5c99263f881e3),\n    # C4[6], coeff of eps^18, polynomial in n of order 8\n    -_f2(5404, 0x5e66e1f930000), _f(0x194c5bcfa9f36000),\n    -_f2(2201, 0x4f230944e4000), _f2(2053, 0x73a8845e02000),\n    -_f(0x127ebba7aac98000), _f(0x433c97a5782ce000),\n    -_f(0x29997437ffc4c000), -_f(0xb36408ece66000),\n    -_f(0x4eb946c9b6ac00), _f2(14816215, 0x5c99263f881e3),\n    # C4[6], coeff of eps^17, polynomial in n of order 9\n    -_f2(2829, 0x5744c85a98000), _f(0x53fda6bff9540000),\n    -_f2(5946, 0xc179df32e8000), _f(0x424987c8bd3f0000),\n    -_f(0x4d6fba1e72f38000), _f2(2362, 0x7a9b39aaa0000),\n    -_f(0x1a7dd6520d788000), _f(0x1ca5a49549150000),\n    -_f(0x279b8ad82b3d8000), _f(0x8624b660e613800),\n    _f2(14816215, 0x5c99263f881e3),\n    # C4[6], coeff of eps^16, polynomial in n of order 10\n    _f2(3052, 0x1cc54fce28000), _f2(15175, 0x33b0e2aba4000),\n    -_f2(5744, 0xc5440d7e0000), -_f(0xd3fdde9c4364000),\n    -_f2(5627, 0x42b2a45de8000), _f2(2296, 0xc920e17994000),\n    -_f(0x15ef23de88bf0000), _f2(2060, 0x9b7c8a7a8c000),\n    -_f(0x3634e9b2229f8000), -_f(0x3eaac877287c000),\n    -_f(0x1ee323a1ca0c800), _f2(14816215, 0x5c99263f881e3),\n    # C4[6], coeff of eps^15, polynomial in n of order 11\n    -_f2(77304, 0xeb4d9089c8000), _f2(21636, 0x8867f71d90000),\n    _f2(6061, 8670344157 << 15), _f2(12960, 6074462725 << 18),\n    -_f2(9403, 0x25b985468000), -_f(0x35c5d916ffb10000),\n    -_f2(4114, 0x3d13bbebb8000), _f2(3690, 0x5a8c0420a0000),\n    -_f(0x7db1fc00af08000), _f(0x3ee56918f4c50000),\n    -_f(0x41d90b24a2658000), _f(0xb0f65a4ddefb800),\n    _f2(14816215, 0x5c99263f881e3),\n    # C4[6], coeff of eps^14, polynomial in n of order 12\n    _f2(84445, 0xef949ea0f8000), _f2(19627, 0xf0e541fbce000),\n    -_f2(80833, 0x5f741237dc000), _f2(34575, 0x1644d05d7a000),\n    _f2(6828, 0x4cfbe5cb50000), _f2(8288, 0x561945cd26000),\n    -_f2(12838, 0x6d3e328184000), _f(0x15c5608ef0ed2000),\n    -_f(0x653ba29de4a58000), _f2(4217, 0x4b5d86267e000),\n    -_f(0x3b46409683b2c000), -_f(0x974d654f27d6000),\n    -_f(0x674dea252558c00), _f2(14816215, 0x5c99263f881e3),\n    # C4[6], coeff of eps^13, polynomial in n of order 13\n    _f2(45373, 0x376f121df0000), -_f2(98871, 0xe30dbcdfc0000),\n    _f2(96522, 0x4174515a90000), -_f(0x2d5b0f36d6d20000),\n    -_f2(79483, 0x53270530d0000), _f2(50297, 8337588523 << 19),\n    _f2(3071, 0x5d816f2bd0000), _f(0x5cfb30543d820000),\n    -_f2(14132, 0x4c1b1cdf90000), _f2(3907, 0xfc9bf30ac0000),\n    _f(0x1e5e0fff75d10000), _f2(2700, 0x7f35ecdd60000),\n    -_f(0x74992b46f6e50000), _f(0xe2f417f6bbc1000),\n    _f2(14816215, 0x5c99263f881e3),\n    # C4[6], coeff of eps^12, polynomial in n of order 14\n    _f(0x1b3ddeae39bf0000), -_f2(7839, 0x62697a1358000),\n    _f2(39400, 0x7dae3b2360000), -_f2(93477, 0x2dd7a51de8000),\n    _f2(106917, 0x5f76290ad0000), -_f2(25706, 0x4975ab7078000),\n    -_f2(70221, 0xf8d5dabdc0000), _f2(66679, 0x434a03a4f8000),\n    -_f2(7926, 0xc17b4a4650000), -_f2(5104, 0x4c6b9c2d98000),\n    -_f2(10825, 0x972fc79ee0000), _f2(8339, 0xae0935c7d8000),\n    -_f(0xb5e35652d770000), -_f(0xb97cf166cab8000),\n    -_f(0x1484ac4370939000), _f2(14816215, 0x5c99263f881e3),\n    # C4[6], coeff of eps^11, polynomial in n of order 15\n    _f(0x1da928c9710000), _f(0xef3463c3520000),\n    _f(0x1433e03669f30000), -_f2(6121, 0xc895edf4c0000),\n    _f2(32842, 0x2af7b46f50000), -_f2(85281, 0xda67593ea0000),\n    _f2(113905, 0x4294ec3770000), -_f2(54341, 1789231857 << 19),\n    -_f2(49473, 0x80d6dfd870000), _f2(78594, 0x71ba158da0000),\n    -_f2(27684, 0xd5e2e99050000), -_f2(5831, 3589595121 << 18),\n    -_f2(2437, 0x3d76dec030000), _f2(8713, 0x93ccba19e0000),\n    -_f2(3467, 0xfccc93810000), _f(0xf2bb44edf33d000),\n    _f2(14816215, 0x5c99263f881e3),\n    # C4[6], coeff of eps^10, polynomial in n of order 16\n    _f(0xcab3dac70000), _f(0x3665759289000), _f(0x12ce11eabe2000),\n    _f(0x9df70180dbb000), _f(0xdfd754eb8954000),\n    -_f2(4487, 0x5dd2369613000), _f2(25849, 0xff24cd52c6000),\n    -_f2(73908, 0x17b3db62e1000), _f2(115119, 0x8d3c9a9638000),\n    -_f2(83691, 0x41fe3e02af000), -_f2(14375, 0xada6f2de56000),\n    _f2(76590, 0xeb60670083000), -_f2(52128, 0x9a91d83ce4000),\n    _f2(7010, 0x5a128dfcb5000), _f2(3866, 0xf6d75c088e000),\n    _f(0x469f50315e7e7000), -_f(0x4bbe9f188165a200),\n    _f2(14816215, 0x5c99263f881e3),\n    # C4[6], coeff of eps^9, polynomial in n of order 17\n    _f(0x8ddfb274000), _f(120826333 << 18), _f(0x6b145a40c000),\n    _f(0x1dc5136a58000), _f(0xab5ca60ba4000), _f(0x5e28748a970000),\n    _f(0x8cad0403953c000), -_f2(3003, 0xaeb1521f78000),\n    _f2(18707, 0x350991ecd4000), -_f2(59284, 0x6845654460000),\n    _f2(107702, 0xd776bbe6c000), -_f2(107579, 0xe340531948000),\n    _f2(33813, 0xa464b8b604000), _f2(48035, 0x81a4fa0dd0000),\n    -_f2(64047, 0xa4265c8064000), _f2(31225, 0xe027c1dce8000),\n    -_f2(5635, 0xd5d68038cc000), -_f(0x50368754849c400),\n    _f2(14816215, 0x5c99263f881e3),\n    # C4[6], coeff of eps^8, polynomial in n of order 18\n    _f(490704814080), _f(0x13aa0f5a000), _f(31022013 << 17),\n    _f(0xc68497e6000), _f(0x2fcbb8aac000), _f(0xdd4302e72000),\n    _f(0x534405e9b8000), _f(0x30298b6eefe000),\n    _f(0x4c5dcf34c0c4000), -_f(0x6d574da684a76000),\n    _f2(11873, 5016286141 << 16), -_f2(42009, 0x509c0961ea000),\n    _f2(89073, 0x6259ee06dc000), -_f2(115683, 0xae64a27b5e000),\n    _f2(82889, 0x8f2a67cde8000), -_f2(11935, 0xb1dc537ad2000),\n    -_f2(33312, 0xcf05a2430c000), _f2(28876, 0xae4eda7bba000),\n    -_f2(8101, 0x83645851a5400), _f2(14816215, 0x5c99263f881e3),\n    # C4[6], coeff of eps^7, polynomial in n of order 19\n    _f(7458340864), _f(560703 << 15), _f(48303816704),\n    _f(522951 << 18), _f(426386014208), _f(45283889 << 15),\n    _f(0x56a252ac000), _f(440127317 << 16), _f(0xa648bd1f4000),\n    _f(0x65fb114118000), _f(0xacffeca0b3c000),\n    -_f(0x860da206139 << 17), _f(0x7d0a1c0732284000),\n    -_f2(7961, 0x1b3e7a1f58000), _f2(19682, 0xa4af1c3bcc000),\n    -_f2(31917, 0xccc8ef8390000), _f2(34094, 0x3798b7b14000),\n    -_f2(23101, 0x583f152fc8000), _f2(8983, 0xdb34fa045c000),\n    -_f(0x5f40c0b45d798c00), _f2(4938738, 0x74330cbfd80a1),\n    # C4[6], coeff of eps^6, polynomial in n of order 20\n    _f(651542528), _f(1480134656), _f(3538968576), _f(8971595776),\n    _f(371371 << 16), _f(71493373952), _f(230978592768),\n    _f(838422294528), _f(0x334e2804000), _f(0x106060339000),\n    _f(0x6e2b415ae000), _f(0x484c62e3a3000), _f(0x848c0aa1558000),\n    -_f(0xe0b56a0582f3000), _f(0x745df25523d02000),\n    -_f2(8378, 0x6c27f21289000), _f2(23938, 0x5996b3a2ac000),\n    -_f2(45881, 0xd660d84d1f000), _f2(58395, 0x10d8591c56000),\n    -_f2(42673, 0x513ba394b5000), _f2(12954, 0x665fd1a892600),\n    _f2(14816215, 0x5c99263f881e3),\n    # C4[7], coeff of eps^26, polynomial in n of order 0\n    _f(9763 << 15), _f(0x75209f8d91ab),\n    # C4[7], coeff of eps^25, polynomial in n of order 1\n    _f(239317 << 16), _f(5250319360), _f(0x4082f7e0f93b2f),\n    # C4[7], coeff of eps^24, polynomial in n of order 2\n    _f(179518703 << 19), -_f(591371495 << 18), _f(0x28b139bd9800),\n    _f2(3231, 0x13f0854e6fdc3),\n    # C4[7], coeff of eps^23, polynomial in n of order 3\n    _f(0x2cef3d4baf0000), -_f(77130417375 << 17), _f(0xef66e7c50000),\n    _f(0x5431e6572400), _f2(119549, 0xe1c344562ad2f),\n    # C4[7], coeff of eps^22, polynomial in n of order 4\n    _f(217227301 << 22), -_f(289844049 << 20), _f(78161061 << 21),\n    -_f(250072603 << 20), _f(0x3ccfc393c000),\n    _f2(3856, 0x72a333c0b70f1),\n    # C4[7], coeff of eps^21, polynomial in n of order 5\n    _f(0x4e0ae513ee240000), -_f(827903427791 << 20),\n    _f(0xa247f543e5f << 18), -_f(0x3412b66b53f << 19),\n    -_f(88149449003 << 18), -_f(0x22c21c78f4d000),\n    _f2(17095633, 0x1c132c21ebd41),\n    # C4[7], coeff of eps^20, polynomial in n of order 6\n    _f(0x17d653fb3b3 << 21), -_f(0x28623ac8329 << 20),\n    _f(0x157258d15a9 << 22), -_f(0x11bb996f2df << 20),\n    _f(568501848145 << 21), -_f(0x17b5bd88f85 << 20),\n    _f(0x53401a2130be000), _f2(17095633, 0x1c132c21ebd41),\n    # C4[7], coeff of eps^19, polynomial in n of order 7\n    -_f(0x83a0cdc49940000), -_f2(2692, 4590415189 << 19),\n    _f(0x5a9e6c539a840000), -_f(834402440151 << 20),\n    _f(0x4606e5f7741c0000), -_f(0x420b2360847 << 19),\n    -_f(530800397043 << 18), -_f(0xe57fab5d571000),\n    _f2(17095633, 0x1c132c21ebd41),\n    # C4[7], coeff of eps^18, polynomial in n of order 8\n    _f2(3472, 126556531 << 23), -_f2(5076, 3517313787 << 20),\n    -_f(76794078375 << 21), -_f(0x6a9c1a13021 << 20),\n    _f2(2051, 1043338611 << 22), -_f(704701202247 << 20),\n    _f(0xfa27346673 << 21), -_f(0x245598aac6d << 20),\n    _f(0x69deaea556c4000), _f2(17095633, 0x1c132c21ebd41),\n    # C4[7], coeff of eps^17, polynomial in n of order 9\n    _f2(15000, 0xe6601a91a0000), -_f(0x261369ca72f << 20),\n    _f(0x42e9870754860000), -_f2(5748, 0xcbf4457740000),\n    _f(0x3d07c1e90b320000), -_f(0x3f02d96efef << 19),\n    _f(0x7fb986a3c79e0000), -_f(0x995e2453d1f << 18),\n    -_f(0x4ae4d5f0bb60000), -_f(0x2b86668e596d800),\n    _f2(17095633, 0x1c132c21ebd41),\n    # C4[7], coeff of eps^16, polynomial in n of order 10\n    -_f(0x73f9d78b0d9 << 20), _f(0x9cf538ea065 << 19),\n    _f2(15740, 149203411 << 22), -_f2(4248, 1728572757 << 19),\n    -_f(0x407b444d4cf << 20), -_f2(4968, 2121468799 << 19),\n    _f2(2638, 499248115 << 21), _f(0x88c04a730380000),\n    _f(0x44a3b895a7b << 20), -_f(0x74a26c7b8a3 << 19),\n    _f(0x855f1c455087000), _f2(17095633, 0x1c132c21ebd41),\n    # C4[7], coeff of eps^15, polynomial in n of order 11\n    _f2(61154, 0xdd701642e0000), -_f2(66911, 9396541691 << 18),\n    _f2(7800, 0xcd3506c5a0000), _f2(6879, 1489841009 << 20),\n    _f2(13340, 0xebc72e5460000), -_f2(8995, 2037240317 << 18),\n    -_f(0x58226c8c268e0000), -_f2(2527, 381291855 << 19),\n    _f2(3789, 0xabee5235e0000), -_f(0x7b29f7fc67f << 18),\n    -_f(0x7ff214bf2760000), -_f(0x75bce0e31735800),\n    _f2(17095633, 0x1c132c21ebd41),\n    # C4[7], coeff of eps^14, polynomial in n of order 12\n    -_f2(101656, 596927171 << 22), _f2(53043, 574431381 << 20),\n    _f2(45405, 240861115 << 21), -_f2(76255, 2673908009 << 20),\n    _f2(23050, 192030143 << 23), _f2(9407, 3846737689 << 20),\n    _f2(7022, 1974859325 << 21), -_f2(12738, 252856997 << 20),\n    _f(0x137e788e9bf << 22), _f(0x118e235259d << 20),\n    _f2(2782, 635761855 << 21), -_f(0x61e77094421 << 20),\n    _f(0x9e768b34c754000), _f2(17095633, 0x1c132c21ebd41),\n    # C4[7], coeff of eps^13, polynomial in n of order 13\n    -_f2(21345, 0xc6c0a8cac0000), _f2(63537, 3528773151 << 20),\n    -_f2(101990, 1331648317 << 18), _f2(73206, 6215106713 << 19),\n    _f2(21832, 587136209 << 18), -_f2(78785, 930736779 << 21),\n    _f2(42984, 0xe415720fc0000), _f2(4706, 912279695 << 19),\n    -_f(0x6fb64418f6cc0000), -_f2(11952, 1697246539 << 20),\n    _f2(6137, 3764705851 << 18), _f(0x39d9405b105 << 19),\n    -_f(779141568695 << 18), -_f(0x14a7906c9982d000),\n    _f2(17095633, 0x1c132c21ebd41),\n    # C4[7], coeff of eps^12, polynomial in n of order 14\n    -_f(254469508501 << 21), _f2(2615, 141135587 << 20),\n    -_f2(16754, 480949921 << 22), _f2(54113, 1487459045 << 20),\n    -_f2(98062, 1801972559 << 21), _f2(91200, 2801526327 << 20),\n    -_f2(9603, 108846763 << 23), -_f2(69011, 498726663 << 20),\n    _f2(62980, 2002280887 << 21), -_f2(11145, 4221789365 << 20),\n    -_f2(7195, 1009585291 << 22), -_f2(4457, 3739558579 << 20),\n    _f2(7974, 18407933 << 21), -_f2(2668, 664195297 << 20),\n    _f(0x8b8039451326000), _f2(17095633, 0x1c132c21ebd41),\n    # C4[7], coeff of eps^11, polynomial in n of order 15\n    -_f(5353180065 << 18), -_f(25442595013 << 19),\n    -_f(0x4cec268118c0000), _f(0x702c4e5b497 << 20),\n    -_f2(12304, 5733646405 << 18), _f2(43346, 2744696673 << 19),\n    -_f2(88871, 6285139975 << 18), _f2(103468, 468195229 << 21),\n    -_f2(46365, 0xbad7731a40000), -_f2(41349, 1257587961 << 19),\n    _f2(72365, 0x9597fe7540000), -_f2(36580, 2571848483 << 20),\n    _f(0xc0cfef1c9f3 << 18), _f2(3419, 2944620333 << 19),\n    _f(0x5d00262e0cc40000), -_f(0x44e0e913b4a79000),\n    _f2(17095633, 0x1c132c21ebd41),\n    # C4[7], coeff of eps^10, polynomial in n of order 16\n    -_f(1386231 << 24), -_f(109742265 << 20), -_f(354075457 << 21),\n    -_f(7044729419 << 20), -_f(48190848741 << 22),\n    _f(0x4592e53c723 << 20), -_f2(8214, 1225367123 << 21),\n    _f2(31749, 3931639185 << 20), -_f2(73861, 194985719 << 23),\n    _f2(105371, 3738827519 << 20), -_f2(81325, 759307621 << 21),\n    _f2(5533, 2607378797 << 20), _f2(54935, 128097033 << 22),\n    -_f2(54849, 213867813 << 20), _f2(23331, 2117756809 << 21),\n    -_f2(3571, 955076279 << 20), -_f(0xa766ab1fb094000),\n    _f2(17095633, 0x1c132c21ebd41),\n    # C4[7], coeff of eps^9, polynomial in n of order 17\n    -_f(9271959 << 16), -_f(2137131 << 20), -_f(0x8adb5490000),\n    -_f(374926717 << 17), -_f(5060508635 << 16), -_f(0xc549443040000),\n    -_f(0x1658a10fa0d0000), _f(0x250f39cc17720000),\n    -_f2(4742, 48259999 << 16), _f2(20239, 6692003029 << 19),\n    -_f2(53602, 0x26a4a24510000), _f2(92339, 8168900207 << 17),\n    -_f2(101236, 0x6fb3cfe30000), _f2(59785, 2334542613 << 18),\n    _f(0x5c1211516deb0000), -_f2(32944, 0x86c05c8b60000),\n    _f2(24775, 0x5aee521590000), -_f2(6657, 0xade066fea8c00),\n    _f2(17095633, 0x1c132c21ebd41),\n    # C4[7], coeff of eps^8, polynomial in n of order 18\n    -_f(31473 << 19), -_f(194623 << 18), -_f(41393 << 22),\n    -_f(2533665 << 18), -_f(5617311 << 19), -_f(60523827 << 18),\n    -_f(107394483 << 20), -_f(4758923477 << 18), -_f(73625727245 << 19),\n    _f(0xf5289483e640000), -_f2(2141, 878914353 << 21),\n    _f2(10163, 0xf2a381edc0000), -_f2(30731, 8395289531 << 19),\n    _f2(63101, 0xdb7b98c940000), -_f2(89756, 3102076305 << 20),\n    _f2(87316, 6648120707 << 18), -_f2(55353, 8132528169 << 19),\n    _f2(20534, 9081852529 << 18), -_f2(3368, 0xf233ddc1a2800),\n    _f2(17095633, 0x1c132c21ebd41),\n    # C4[7], coeff of eps^7, polynomial in n of order 19\n    -_f(4693 << 16), -_f(6435 << 17), -_f(37895 << 16), -_f(7579 << 20),\n    -_f(428505 << 16), -_f(854413 << 17), -_f(7933835 << 16),\n    -_f(11246865 << 18), -_f(338155741 << 16), -_f(0xee3402ee0000),\n    -_f(0x1efc2a618f0000), _f(517531990885 << 19),\n    -_f(0x243e4ae81d610000), _f2(3081, 0xb7f72703e0000),\n    -_f2(10639, 0x4442fa8130000), _f2(25534, 4122358181 << 18),\n    -_f2(43524, 0x45cc2f5650000), _f2(51336, 0x52534b86a0000),\n    -_f2(35935, 0x6cd3e81170000), _f2(10668, 0x544ee8e52d400),\n    _f2(17095633, 0x1c132c21ebd41),\n    # C4[8], coeff of eps^26, polynomial in n of order 0\n    _f(1703 << 17), _f(0x7c72a9866ac5b),\n    # C4[8], coeff of eps^25, polynomial in n of order 1\n    -_f(177229 << 20), _f(727155 << 16), _f(0x491cf6cbc520f1),\n    # C4[8], coeff of eps^24, polynomial in n of order 2\n    -_f(9929683361 << 18), -_f(175790329 << 17), -_f(0x88fc23ec000),\n    _f2(40280, 0xc561288d94a7f),\n    # C4[8], coeff of eps^23, polynomial in n of order 3\n    -_f(11862711753 << 19), _f(5010641713 << 20), -_f(14709027619 << 19),\n    _f(0x62bf29e3e8000), _f2(135489, 0xddbb2b5096ef1),\n    # C4[8], coeff of eps^22, polynomial in n of order 4\n    -_f(6145646087 << 23), _f(131879372361 << 21),\n    -_f(33613471903 << 22), -_f(3256336589 << 21),\n    -_f(0xacc29a2990000), _f2(1761368, 0x42813317aa23d),\n    # C4[8], coeff of eps^21, polynomial in n of order 5\n    -_f(0x6a942373c4b << 19), _f(0x26ec3bfe245 << 21),\n    -_f(0x8f791d3a3680000), _f(0x11c215e6335 << 20),\n    -_f(0x2c38227cc2f << 19), _f(0x4429220c0f48000),\n    _f2(19375050, 0xdb8d32044f89f),\n    # C4[8], coeff of eps^20, polynomial in n of order 6\n    -_f2(2934, 444315969 << 20), _f(0x6a3b64139b1 << 19),\n    -_f(467101336651 << 21), _f(0x8d6914ca9b7 << 19),\n    -_f(0x1951684536b << 20), -_f(344981960323 << 19),\n    -_f(0x1536c8746170000), _f2(19375050, 0xdb8d32044f89f),\n    # C4[8], coeff of eps^19, polynomial in n of order 7\n    -_f2(3511, 3705843547 << 19), -_f(0x204aea957e3 << 20),\n    -_f2(2145, 1225061153 << 19), _f(0x33d58e2ac0f << 21),\n    -_f(10655273223 << 19), _f(0x21f191654df << 20),\n    -_f(0x4229ae891cd << 19), _f(0x53ff9bb26958000),\n    _f2(19375050, 0xdb8d32044f89f),\n    # C4[8], coeff of eps^18, polynomial in n of order 8\n    _f2(2327, 223378273 << 24), _f2(3002, 681494021 << 21),\n    -_f2(5098, 180818405 << 22), -_f(5074441169 << 21),\n    -_f(428729715071 << 23), _f(0x3cce86cb309 << 21),\n    -_f(434398966071 << 22), -_f(156882519885 << 21),\n    -_f(0x33e11620e250000), _f2(19375050, 0xdb8d32044f89f),\n    # C4[8], coeff of eps^17, polynomial in n of order 9\n    -_f2(6703, 1474120015 << 19), _f2(14458, 426935549 << 22),\n    -_f(511886207649 << 19), -_f(39076914681 << 20),\n    -_f2(5282, 7254660115 << 19), _f(0x33346658ebd << 21),\n    _f(0xd2bcdb640d80000), _f(0x48aecde6f2d << 20),\n    -_f(0x66a76bcf857 << 19), _f(0x650db91f67c8000),\n    _f2(19375050, 0xdb8d32044f89f),\n    # C4[8], coeff of eps^16, polynomial in n of order 10\n    -_f2(41674, 2212282947 << 19), -_f2(7593, 6666692295 << 18),\n    _f(0x22d5b967639 << 21), _f2(15266, 7870015191 << 18),\n    -_f2(4856, 4082442485 << 19), -_f(0x76ec691ccd2c0000),\n    -_f2(3302, 2416313159 << 20), _f2(3252, 0xd63fbdd4c0000),\n    -_f(0xa56dc66b5380000), -_f(0x5b75ff5133c0000),\n    -_f(0x7d0ead839928000), _f2(19375050, 0xdb8d32044f89f),\n    # C4[8], coeff of eps^15, polynomial in n of order 11\n    _f2(6774, 8529353663 << 19), _f2(68916, 757502869 << 20),\n    -_f2(58358, 4821135835 << 19), _f2(3030, 627685345 << 22),\n    _f2(8321, 1974413611 << 19), _f2(11199, 994841075 << 20),\n    -_f2(10210, 402696815 << 19), -_f(0x10cbfe9c35f << 21),\n    -_f(0x88d945e9f480000), _f2(2764, 2004030417 << 20),\n    -_f(0xa3f22386a83 << 19), _f(0x6eb0baaefa68000),\n    _f2(19375050, 0xdb8d32044f89f),\n    # C4[8], coeff of eps^14, polynomial in n of order 12\n    _f2(80789, 157273055 << 23), -_f2(92413, 883895019 << 21),\n    _f2(33037, 752031121 << 22), _f2(52633, 1725093895 << 21),\n    -_f2(71257, 198988971 << 24), _f2(21774, 462183721 << 21),\n    _f2(9867, 923099607 << 22), _f2(2235, 815700763 << 21),\n    -_f2(11863, 140786955 << 23), _f2(4226, 1910142077 << 21),\n    _f(854212143197 << 22), _f(169477509103 << 21),\n    -_f(0x1429c96cdeb90000), _f2(19375050, 0xdb8d32044f89f),\n    # C4[8], coeff of eps^13, polynomial in n of order 13\n    _f2(7986, 2577537059 << 19), -_f2(31049, 1388317679 << 21),\n    _f2(71398, 6484881669 << 19), -_f2(96607, 3840488041 << 20),\n    _f2(60036, 7375804551 << 19), _f2(24533, 301249307 << 22),\n    -_f2(73258, 7729848599 << 19), _f2(45499, 3314021057 << 20),\n    -_f(0x3ea6bf07b95 << 19), -_f2(6268, 968456357 << 21),\n    -_f2(5889, 8030103219 << 19), _f2(7129, 2010513003 << 20),\n    -_f2(2060, 6603694641 << 19), _f(0x4aa8326c4b38000),\n    _f2(19375050, 0xdb8d32044f89f),\n    # C4[8], coeff of eps^12, polynomial in n of order 14\n    _f(110457315575 << 20), -_f(0x55e7441aebb << 19),\n    _f2(5489, 1587292819 << 21), -_f2(23107, 1250112621 << 19),\n    _f2(59020, 876513493 << 20), -_f2(93669, 6579434335 << 19),\n    _f2(83160, 151752881 << 22), -_f2(14191, 6428793873 << 19),\n    -_f2(55802, 147123789 << 20), _f2(63340, 7698024701 << 19),\n    -_f2(24299, 306146767 << 21), -_f2(2685, 2028352693 << 19),\n    _f2(2706, 1245782417 << 20), _f(0xd3e9bdc0259 << 19),\n    -_f(0x3e4f75bd92cb0000), _f2(19375050, 0xdb8d32044f89f),\n    # C4[8], coeff of eps^11, polynomial in n of order 15\n    _f(349722603 << 19), _f(1945948591 << 20), _f(0xe000999c080000),\n    -_f(852080688837 << 21), _f2(3397, 2932652343 << 19),\n    -_f2(15561, 3567671555 << 20), _f2(44311, 3271472077 << 19),\n    -_f2(82040, 520836183 << 22), _f2(95750, 3608174083 << 19),\n    -_f2(56326, 3054118709 << 20), -_f2(14075, 6930316647 << 19),\n    _f2(56094, 1163367017 << 21), -_f2(46280, 7703552945 << 19),\n    _f2(17576, 4216930841 << 20), -_f2(2261, 6650055195 << 19),\n    -_f(0xc8e19a260718000), _f2(19375050, 0xdb8d32044f89f),\n    # C4[8], coeff of eps^10, polynomial in n of order 16\n    _f(53199 << 25), _f(4832235 << 21), _f(18086833 << 22),\n    _f(422991569 << 21), _f(3456128781 << 23), -_f(417864400569 << 21),\n    _f(0x1c1175e6463 << 22), -_f2(9006, 876789843 << 21),\n    _f2(28706, 92601679 << 24), -_f2(61776, 681174429 << 21),\n    _f2(90600, 218403669 << 22), -_f2(86125, 255162935 << 21),\n    _f2(41671, 220860591 << 23), _f2(9900, 1945963071 << 21),\n    -_f2(31426, 812677625 << 22), _f2(21427, 717745189 << 21),\n    -_f2(5580, 0x8f2cafdf0000), _f2(19375050, 0xdb8d32044f89f),\n    # C4[8], coeff of eps^9, polynomial in n of order 17\n    _f(47583 << 19), _f(12411 << 23), _f(964865 << 19),\n    _f(2862477 << 20), _f(45013059 << 19), _f(139025201 << 21),\n    _f(19339324389 << 19), -_f(313753792905 << 20),\n    _f(0x5b827ae7827 << 19), -_f2(4043, 135949957 << 22),\n    _f2(14485, 4274671945 << 19), -_f2(36111, 1380328223 << 20),\n    _f2(64526, 2642754443 << 19), -_f2(82901, 1325528645 << 21),\n    _f2(74876, 5403462445 << 19), -_f2(44997, 1726039605 << 20),\n    _f2(16070, 4300719215 << 19), -_f2(2566, 0xd0ea909388000),\n    _f2(19375050, 0xdb8d32044f89f),\n    # C4[8], coeff of eps^8, polynomial in n of order 18\n    _f(1053 << 18), _f(7293 << 17), _f(1749 << 21), _f(121635 << 17),\n    _f(309043 << 18), _f(3853577 << 17), _f(8003583 << 19),\n    _f(420632751 << 17), _f(7839064905 << 18), -_f(550302356331 << 17),\n    _f(754118043861 << 20), -_f(0x433703efa18a0000),\n    _f2(4345, 0xa637f297c0000), -_f2(12473, 0x9f7aaa1be0000),\n    _f2(26308, 41230677 << 19), -_f2(40979, 0xc6d64da720000),\n    _f2(45533, 1464249973 << 18), -_f2(30801, 0xcafec6ea60000),\n    _f2(8983, 0xdb34fa045c000), _f2(19375050, 0xdb8d32044f89f),\n    # C4[9], coeff of eps^26, polynomial in n of order 0\n    _f(3679 << 17), _f(0xf744df0e6c69),\n    # C4[9], coeff of eps^25, polynomial in n of order 1\n    -_f(48841 << 20), -_f(336765 << 16), _f(0x19892cc90d5217f),\n    # C4[9], coeff of eps^24, polynomial in n of order 2\n    _f(24659297 << 26), -_f(64440233 << 25), _f(414215087 << 20),\n    _f2(45019, 0xaf6c96bc5ad9d),\n    # C4[9], coeff of eps^23, polynomial in n of order 3\n    _f(0x55f7a92f661 << 19), -_f(0x115bb8ed6d9 << 20),\n    -_f(198450589909 << 19), -_f(0xb7278b5afc8000),\n    _f2(21654468, 0x9b0737e6b33fd),\n    # C4[9], coeff of eps^22, polynomial in n of order 4\n    _f(52440485279 << 23), -_f(8663417169 << 21), _f(29836121623 << 22),\n    -_f(64017745099 << 21), _f(0x517eabcb370000),\n    _f2(1968588, 0xe17edcf27917),\n    # C4[9], coeff of eps^21, polynomial in n of order 5\n    _f(0x29ddd14eea5 << 19), -_f(683397694747 << 21),\n    _f(0x8a9d0ded323 << 19), -_f(0x12a27ad79eb << 20),\n    -_f(365440747903 << 19), -_f(0x1a278f54ba58000),\n    _f2(21654468, 0x9b0737e6b33fd),\n    # C4[9], coeff of eps^20, polynomial in n of order 6\n    -_f(258517517319 << 23), -_f2(2449, 779805879 << 22),\n    _f(333316352075 << 24), _f(89662817151 << 22),\n    _f(311028248083 << 23), -_f(514657501435 << 22),\n    _f(0x42edd4687ca0000), _f2(21654468, 0x9b0737e6b33fd),\n    # C4[9], coeff of eps^19, polynomial in n of order 7\n    _f2(4708, 5969586757 << 19), -_f2(3967, 769306643 << 20),\n    -_f(0x4aa5ebcacc1 << 19), -_f(0x2338c762cc1 << 21),\n    _f(0xdfce640f299 << 19), -_f(0xee4b32a131 << 20),\n    -_f(544152989037 << 19), -_f(0x392f1a561e88000),\n    _f2(21654468, 0x9b0737e6b33fd),\n    # C4[9], coeff of eps^18, polynomial in n of order 8\n    _f2(10651, 141986579 << 24), _f2(2483, 579021431 << 21),\n    _f(0x171656e9461 << 22), -_f2(5106, 1475723195 << 21),\n    _f(424307179891 << 23), _f(353847768099 << 21),\n    _f(0x12b721ceb0b << 22), -_f(0x16800175f8f << 21),\n    _f(0x4cd03e8801b0000), _f2(21654468, 0x9b0737e6b33fd),\n    # C4[9], coeff of eps^17, polynomial in n of order 9\n    -_f2(12598, 568269079 << 19), -_f2(5705, 584195995 << 22),\n    _f2(14434, 7986153127 << 19), -_f(0x53c43a7b401 << 20),\n    -_f(0xc35a517653b << 19), -_f2(3831, 956767451 << 21),\n    _f2(2686, 1674924547 << 19), _f(257168565717 << 20),\n    -_f(441477690591 << 19), -_f(0x7fc3df35f858000),\n    _f2(21654468, 0x9b0737e6b33fd),\n    # C4[9], coeff of eps^16, polynomial in n of order 10\n    _f2(73082, 82142393 << 24), -_f2(36372, 269994261 << 23),\n    -_f2(8446, 14363443 << 26), _f2(3801, 517661957 << 23),\n    _f2(13381, 17268719 << 24), -_f2(7345, 464489969 << 23),\n    -_f(211182139987 << 25), -_f(326075858199 << 23),\n    _f2(2675, 147207653 << 24), -_f(589098042253 << 23),\n    _f(0x4cdddf4aa2c0000), _f2(21654468, 0x9b0737e6b33fd),\n    # C4[9], coeff of eps^15, polynomial in n of order 11\n    -_f2(70228, 3204573753 << 19), -_f2(3665, 997072835 << 20),\n    _f2(67162, 8124243837 << 19), -_f2(56077, 490889175 << 22),\n    _f2(5918, 7641432915 << 19), _f2(10294, 3043462539 << 20),\n    _f2(5723, 2367840009 << 19), -_f2(10993, 938348055 << 21),\n    _f2(2675, 6462906463 << 19), _f(0x3a39e82b059 << 20),\n    _f(0xb502c3128a80000), -_f(0x1358f80d9c038000),\n    _f2(21654468, 0x9b0737e6b33fd),\n    # C4[9], coeff of eps^14, polynomial in n of order 12\n    -_f2(45939, 459571779 << 23), _f2(81202, 1438384695 << 21),\n    -_f2(84011, 799287213 << 22), _f2(28155, 23125821 << 21),\n    _f2(46736, 266493023 << 24), -_f2(68202, 2086496557 << 21),\n    _f2(29667, 382040805 << 22), _f2(5608, 647828697 << 21),\n    -_f2(4401, 355658689 << 23), -_f2(6763, 1986460369 << 21),\n    _f2(6284, 996052535 << 22), -_f(0x31efd65ac4b << 21),\n    _f(0x21519ecdd470000), _f2(21654468, 0x9b0737e6b33fd),\n    # C4[9], coeff of eps^13, polynomial in n of order 13\n    -_f2(2321, 7142809405 << 19), _f2(11407, 565078561 << 21),\n    -_f2(34996, 6437021595 << 19), _f2(70236, 3027507143 << 20),\n    -_f2(89750, 2730116057 << 19), _f2(59647, 532152523 << 22),\n    _f2(10736, 8218389321 << 19), -_f2(61423, 3588044783 << 20),\n    _f2(52845, 5572842763 << 19), -_f2(15060, 1433211893 << 21),\n    -_f2(4428, 664807251 << 19), _f(0x7ac3d0f14db << 20),\n    _f(0xe0ec3bda56f << 19), -_f(0x3854598234228000),\n    _f2(21654468, 0x9b0737e6b33fd),\n    # C4[9], coeff of eps^12, polynomial in n of order 14\n    -_f(2301546703 << 23), _f(147057720589 << 22),\n    -_f(359161692259 << 24), _f2(7105, 778398699 << 22),\n    -_f2(23999, 359671965 << 23), _f2(54661, 162239065 << 22),\n    -_f2(84322, 1670081 << 25), _f2(82245, 254480119 << 22),\n    -_f2(34604, 180181675 << 23), -_f2(26937, 29999003 << 22),\n    _f2(54122, 167282399 << 24), -_f2(38795, 392755901 << 22),\n    _f2(13349, 275194759 << 23), -_f(0x161047343cf << 22),\n    -_f(0xd052410afde0000), _f2(21654468, 0x9b0737e6b33fd),\n    # C4[9], coeff of eps^11, polynomial in n of order 15\n    -_f(33392709 << 19), -_f(215980657 << 20), -_f(15729792143 << 19),\n    _f(133575397083 << 21), -_f(0x5183d845f39 << 19),\n    _f2(3762, 3694580381 << 20), -_f2(14049, 8382023811 << 19),\n    _f2(36325, 545288329 << 22), -_f2(66629, 6532309165 << 19),\n    _f2(85703, 4252949035 << 20), -_f2(71810, 6020466679 << 19),\n    _f2(27704, 1818174537 << 21), _f2(15098, 409579871 << 19),\n    -_f2(29448, 934474951 << 20), _f2(18689, 3410848533 << 19),\n    -_f2(4754, 0x309583fd38000), _f2(21654468, 0x9b0737e6b33fd),\n    # C4[9], coeff of eps^10, polynomial in n of order 16\n    -_f(893 << 25), -_f(92625 << 21), -_f(399779 << 22),\n    -_f(10904803 << 21), -_f(105333207 << 23), _f(15302554267 << 21),\n    -_f(86594321625 << 22), _f(0xfe4052cb09 << 21),\n    -_f2(2108, 118544893 << 24), _f2(6191, 505418439 << 21),\n    -_f2(13344, 231933903 << 22), _f2(21384, 2064906293 << 21),\n    -_f2(25319, 426528669 << 23), _f2(21525, 1826875827 << 21),\n    -_f2(12380, 255070469 << 22), _f2(4285, 1002542497 << 21),\n    -_f(0x29d9aac7ec250000), _f2(7218156, 0x33ad12a23bbff),\n    # C4[9], coeff of eps^9, polynomial in n of order 17\n    -_f(969 << 19), -_f(285 << 23), -_f(25175 << 19), -_f(85595 << 20),\n    -_f(1557829 << 19), -_f(5632151 << 21), -_f(929304915 << 19),\n    _f(18163686975 << 20), -_f(446826699585 << 19),\n    _f(387249806307 << 22), -_f(0xd080dd307cf << 19),\n    _f2(5560, 386556505 << 20), -_f2(13900, 1932782525 << 19),\n    _f2(26517, 756597539 << 21), -_f2(38450, 1381788619 << 19),\n    _f2(40711, 4015921907 << 20), -_f2(26784, 1441242297 << 19),\n    _f2(7700, 0x72bfb1ba98000), _f2(21654468, 0x9b0737e6b33fd),\n    # C4[10], coeff of eps^26, polynomial in n of order 0\n    -_f(5057 << 18), _f(0x10edb70f760db7),\n    # C4[10], coeff of eps^25, polynomial in n of order 1\n    -_f(4901 << 25), _f(14157 << 21), _f(0x4082f7e0f93b2f),\n    # C4[10], coeff of eps^24, polynomial in n of order 2\n    -_f(8688787 << 25), -_f(2064227 << 24), -_f(9250461 << 21),\n    _f2(7108, 0x5f112546294ad),\n    # C4[10], coeff of eps^23, polynomial in n of order 3\n    _f(363248763 << 25), _f(3123548769 << 26), -_f(5801671447 << 25),\n    _f(14176223919 << 21), _f2(3419126, 0x9f3708d39590d),\n    # C4[10], coeff of eps^22, polynomial in n of order 4\n    -_f(490568702783 << 22), _f(0x422ec2346b3 << 20),\n    -_f(446296001151 << 21), -_f(174052882927 << 20),\n    -_f(0xed1818f25b << 17), _f2(23933886, 0x5a813dc916f5b),\n    # C4[10], coeff of eps^21, polynomial in n of order 5\n    -_f2(2585, 173491781 << 22), _f(226504425479 << 24),\n    _f(118144668093 << 22), _f(325346294119 << 23),\n    -_f(464280225409 << 22), _f(919092918513 << 18),\n    _f2(23933886, 0x5a813dc916f5b),\n    # C4[10], coeff of eps^20, polynomial in n of order 6\n    -_f2(2656, 138725573 << 22), -_f(0x1a9c614c5c3 << 21),\n    -_f(765139808215 << 23), _f(0x32058af918b << 21),\n    -_f(117685929879 << 22), -_f(106680176295 << 21),\n    -_f(0xf144800341 << 18), _f2(23933886, 0x5a813dc916f5b),\n    # C4[10], coeff of eps^19, polynomial in n of order 7\n    _f2(3432, 329072245 << 22), _f2(2930, 283183745 << 23),\n    -_f2(4577, 1044295185 << 22), _f(34786730571 << 24),\n    _f(54685893801 << 22), _f(647412775723 << 23),\n    -_f(676279973341 << 22), _f(0xe9c610e7bd << 18),\n    _f2(23933886, 0x5a813dc916f5b),\n    # C4[10], coeff of eps^18, polynomial in n of order 8\n    -_f2(11084, 235058537 << 23), _f2(11858, 1143524977 << 20),\n    _f(0x2545fd77485 << 21), -_f(0x307c82cee9d << 20),\n    -_f2(4103, 193833065 << 22), _f2(2140, 2163909077 << 20),\n    _f(446041302231 << 21), -_f(54302113593 << 20),\n    -_f(0x7f8004b3e7a0000), _f2(23933886, 0x5a813dc916f5b),\n    # C4[10], coeff of eps^17, polynomial in n of order 9\n    -_f2(16525, 309616105 << 23), -_f2(12873, 31213113 << 26),\n    -_f(811482588455 << 23), _f2(13789, 37992821 << 24),\n    -_f2(4637, 221662373 << 23), -_f(274288421561 << 25),\n    -_f(562238052579 << 23), _f2(2541, 30117927 << 24),\n    -_f(493061811809 << 23), _f(451991259993 << 19),\n    _f2(23933886, 0x5a813dc916f5b),\n    # C4[10], coeff of eps^16, polynomial in n of order 10\n    -_f2(4541, 277413243 << 23), _f2(9880, 364937465 << 22),\n    -_f2(5569, 118974143 << 25), -_f(671603509225 << 22),\n    _f(626562721155 << 23), _f(0x126f9949db5 << 22),\n    -_f(372257463743 << 24), _f(225505748691 << 22),\n    _f(72729834113 << 23), _f(40056084593 << 22),\n    -_f(360891225041 << 19), _f2(3419126, 0x9f3708d39590d),\n    # C4[10], coeff of eps^15, polynomial in n of order 11\n    _f2(82722, 490551845 << 23), -_f2(64701, 63547469 << 24),\n    _f(116234844999 << 23), _f2(58506, 49315063 << 26),\n    -_f2(58413, 433206103 << 23), _f2(16792, 103491845 << 24),\n    _f2(8555, 183955915 << 23), -_f2(2317, 84066185 << 25),\n    -_f2(7194, 11825619 << 23), _f2(5493, 119743831 << 24),\n    -_f(667673139889 << 23), _f(58009080297 << 19),\n    _f2(23933886, 0x5a813dc916f5b),\n    # C4[10], coeff of eps^14, polynomial in n of order 12\n    _f2(18981, 396462873 << 22), -_f2(46078, 2701457279 << 20),\n    _f2(76015, 1126083519 << 21), -_f2(79652, 3524648005 << 20),\n    _f2(36586, 273717939 << 23), _f2(28474, 1008822389 << 20),\n    -_f2(61326, 649857063 << 21), _f2(42595, 3757087663 << 20),\n    -_f2(8326, 955589709 << 22), -_f2(5139, 3984305559 << 20),\n    _f(0x284545d9df3 << 21), _f(0x72b007891a3 << 20),\n    -_f(0x33009c87a9620000), _f2(23933886, 0x5a813dc916f5b),\n    # C4[10], coeff of eps^13, polynomial in n of order 13\n    _f(543312976219 << 22), -_f2(3062, 112501267 << 24),\n    _f2(11988, 59347917 << 22), -_f2(32439, 32307605 << 23),\n    _f2(61980, 821355519 << 22), -_f2(81948, 80095793 << 25),\n    _f2(67313, 1055324017 << 22), -_f2(16748, 109351667 << 23),\n    -_f2(34832, 1017554013 << 22), _f2(50577, 16270159 << 24),\n    -_f2(32450, 61276651 << 22), _f2(10213, 501613231 << 23),\n    -_f(913358656441 << 22), -_f(0xcb30b375e9c0000),\n    _f2(23933886, 0x5a813dc916f5b),\n    # C4[10], coeff of eps^12, polynomial in n of order 14\n    _f(553451171 << 22), -_f(41782403663 << 21), _f(122732484303 << 23),\n    -_f(0x2eaf28525b9 << 21), _f2(6402, 476837273 << 22),\n    -_f2(19347, 183862947 << 21), _f2(42585, 247358789 << 24),\n    -_f2(68666, 1206346765 << 21), _f2(79038, 878189199 << 22),\n    -_f2(58930, 1207602423 << 21), _f2(17031, 374958661 << 23),\n    _f2(18189, 4759455 << 21), -_f2(27348, 414989947 << 22),\n    _f2(16435, 1788023477 << 21), -_f2(4106, 0xe7ddb41f40000),\n    _f2(23933886, 0x5a813dc916f5b),\n    # C4[10], coeff of eps^11, polynomial in n of order 15\n    _f(259293 << 22), _f(1935549 << 23), _f(164593143 << 22),\n    -_f(1654671183 << 24), _f(83533307473 << 22),\n    -_f(296200453241 << 23), _f2(2600, 89083243 << 22),\n    -_f2(8792, 113023813 << 25), _f2(22203, 397075141 << 22),\n    -_f2(42668, 107392175 << 23), _f2(62615, 179754463 << 22),\n    -_f2(69317, 125076421 << 24), _f2(56036, 868613689 << 22),\n    -_f2(31065, 284420581 << 23), _f2(10475, 628806483 << 22),\n    -_f(0x6470cd13038c0000), _f2(23933886, 0x5a813dc916f5b),\n    # C4[10], coeff of eps^10, polynomial in n of order 16\n    _f(133 << 24), _f(15675 << 20), _f(77539 << 21), _f(2448017 << 20),\n    _f(27681423 << 22), -_f(4770431897 << 20), _f(32525672025 << 21),\n    -_f(503497402947 << 20), _f(327672913029 << 23),\n    -_f2(2314, 857372269 << 20), _f2(6672, 231933903 << 21),\n    -_f2(14969, 2031875351 << 20), _f2(26346, 292729733 << 22),\n    -_f2(36032, 1727726401 << 20), _f2(36664, 1180419909 << 21),\n    -_f2(23570, 290549227 << 20), _f2(6696, 0xabcf39720000),\n    _f2(23933886, 0x5a813dc916f5b),\n    # C4[11], coeff of eps^26, polynomial in n of order 0\n    _f(611 << 23), _f(0xe6baee73ea363),\n    # C4[11], coeff of eps^25, polynomial in n of order 1\n    -_f(76597 << 26), -_f(1573935 << 21), _f(0x477bca00497fe9bf),\n    # C4[11], coeff of eps^24, polynomial in n of order 2\n    _f(5977365 << 29), -_f(9705069 << 28), _f(85309807 << 22),\n    _f2(54497, 0x83837319e73d9),\n    # C4[11], coeff of eps^23, polynomial in n of order 3\n    _f(66340583679 << 26), -_f(4467880351 << 27), -_f(2404066379 << 26),\n    -_f(68755156353 << 21), _f2(26213304, 0x19fb43ab7aab9),\n    # C4[11], coeff of eps^22, polynomial in n of order 4\n    _f(257415529 << 33), _f(402685503 << 30), _f(652792679 << 32),\n    -_f(1631824579 << 30), _f(23005724469 << 23),\n    _f2(26213304, 0x19fb43ab7aab9),\n    # C4[11], coeff of eps^21, polynomial in n of order 5\n    -_f(453253333179 << 23), -_f(222902987187 << 25),\n    _f(749255628291 << 23), -_f(3378231395 << 24),\n    -_f(18492933151 << 23), -_f(0xf79dae93c9 << 18),\n    _f2(26213304, 0x19fb43ab7aab9),\n    # C4[11], coeff of eps^20, polynomial in n of order 6\n    _f2(4082, 27256381 << 26), -_f2(3843, 110832251 << 25),\n    -_f(11608614857 << 27), -_f(12679113309 << 25),\n    _f(80017732991 << 26), -_f(73865834735 << 25),\n    _f(381345882225 << 19), _f2(26213304, 0x19fb43ab7aab9),\n    # C4[11], coeff of eps^19, polynomial in n of order 7\n    _f2(8515, 117356323 << 23), _f2(2727, 54002259 << 24),\n    _f(95356337593 << 23), -_f2(4154, 53817247 << 25),\n    _f(882540340143 << 23), _f(80081392881 << 24), _f(12076046661 << 23),\n    -_f(0x7d57ec14bd40000), _f2(26213304, 0x19fb43ab7aab9),\n    # C4[11], coeff of eps^18, polynomial in n of order 8\n    -_f2(12505, 951035 << 32), -_f2(6194, 13758139 << 28),\n    _f2(12920, 711829 << 30), -_f2(2328, 16199449 << 28),\n    -_f2(2121, 1768403 << 31), -_f(23812716991 << 28),\n    _f2(2380, 3848439 << 30), -_f(12910651229 << 28),\n    _f(75285764519 << 21), _f2(26213304, 0x19fb43ab7aab9),\n    # C4[11], coeff of eps^17, polynomial in n of order 9\n    _f2(63004, 136371221 << 24), -_f2(23253, 27876759 << 27),\n    -_f2(10033, 153577157 << 24), _f2(4968, 6981291 << 25),\n    _f2(9826, 264428161 << 24), -_f2(8260, 44635479 << 26),\n    _f(151361303079 << 24), _f(120235734969 << 25),\n    _f(86414162541 << 24), -_f(0x22b971cd551 << 19),\n    _f2(26213304, 0x19fb43ab7aab9),\n    # C4[11], coeff of eps^16, polynomial in n of order 10\n    -_f2(42751, 388403 << 27), -_f2(21692, 36263017 << 26),\n    _f2(62310, 8348465 << 29), -_f2(46929, 14252519 << 26),\n    _f2(7047, 32285691 << 27), _f2(9444, 49195723 << 26),\n    -_f(6177911663 << 28), -_f2(7300, 34477811 << 26),\n    _f2(4777, 27041001 << 27), -_f(65141092289 << 26),\n    -_f(44359884933 << 20), _f2(26213304, 0x19fb43ab7aab9),\n    # C4[11], coeff of eps^15, polynomial in n of order 11\n    -_f2(54975, 7679265 << 24), _f2(76586, 39901517 << 25),\n    -_f2(65943, 41351227 << 24), _f2(16034, 25331417 << 27),\n    _f2(40019, 7760011 << 24), -_f2(57816, 89862917 << 25),\n    _f2(33374, 245812081 << 24), -_f2(3538, 1406183 << 26),\n    -_f2(5247, 183755081 << 24), _f(95390660393 << 25),\n    _f(490233600157 << 24), -_f(0x5c9b8397461 << 19),\n    _f2(26213304, 0x19fb43ab7aab9),\n    # C4[11], coeff of eps^14, polynomial in n of order 12\n    -_f2(5607, 843033 << 31), _f2(17587, 15869457 << 28),\n    -_f2(40024, 1555693 << 30), _f2(66142, 8872067 << 28),\n    -_f2(76302, 93659 << 32), _f2(52531, 9300813 << 28),\n    -_f2(2628, 1860027 << 30), -_f2(39200, 13058241 << 28),\n    _f2(46365, 693773 << 31), -_f2(27149, 11145943 << 28),\n    _f2(7864, 1548807 << 30), -_f(7962030629 << 28),\n    -_f(412888159761 << 21), _f2(26213304, 0x19fb43ab7aab9),\n    # C4[11], coeff of eps^13, polynomial in n of order 13\n    -_f(41790907379 << 23), _f(76324858599 << 25),\n    -_f2(2753, 104130613 << 23), _f2(9526, 224954257 << 24),\n    -_f2(24463, 68256343 << 23), _f2(47309, 29696781 << 26),\n    -_f2(68504, 135442201 << 23), _f2(71563, 253449815 << 24),\n    -_f2(47678, 505267003 << 23), _f2(8918, 86883405 << 25),\n    _f2(19900, 176522371 << 23), -_f2(25292, 67707491 << 24),\n    _f2(14565, 326677345 << 23), -_f2(3589, 0xb1b7cdcc40000),\n    _f2(26213304, 0x19fb43ab7aab9),\n    # C4[11], coeff of eps^12, polynomial in n of order 14\n    -_f(2670507 << 26), _f(235653561 << 25), -_f(820617391 << 27),\n    _f(25869702111 << 25), -_f(68305888497 << 26),\n    _f2(3896, 38584213 << 25), -_f2(11280, 10173573 << 28),\n    _f2(25274, 31321979 << 25), -_f2(44240, 19038327 << 26),\n    _f2(60354, 128468529 << 25), -_f2(63152, 8090597 << 27),\n    _f2(48923, 66496087 << 25), -_f2(26288, 683965 << 26),\n    _f2(8669, 60420749 << 25), -_f(0xa3ae57ad353 << 19),\n    _f2(26213304, 0x19fb43ab7aab9),\n    # C4[11], coeff of eps^11, polynomial in n of order 15\n    -_f(3933 << 23), -_f(33649 << 24), -_f(3312023 << 23),\n    _f(38979963 << 25), -_f(2334466673 << 23), _f(9974539421 << 24),\n    -_f(115419670443 << 23), _f(61272170729 << 26),\n    -_f2(2977, 381931269 << 23), _f2(7656, 260966955 << 24),\n    -_f2(15739, 178079295 << 23), _f2(25923, 81221929 << 25),\n    -_f2(33768, 486785817 << 23), _f2(33232, 239529529 << 24),\n    -_f2(20951, 91935571 << 23), _f2(5892, 8880483819 << 18),\n    _f2(26213304, 0x19fb43ab7aab9),\n    # C4[12], coeff of eps^26, polynomial in n of order 0\n    -_f(1 << 33), _f(0x2f0618f20f09a7),\n    # C4[12], coeff of eps^25, polynomial in n of order 1\n    -_f(62273 << 28), _f(123651 << 24), _f(0x19e65bbd524850fb),\n    # C4[12], coeff of eps^24, polynomial in n of order 2\n    -_f(93684917 << 28), -_f(76423549 << 27), -_f(693037063 << 24),\n    _f2(2191747, 0xd5a68f81111b3),\n    # C4[12], coeff of eps^23, polynomial in n of order 3\n    _f(311968535 << 28), _f(1760740793 << 29), -_f(1954369859 << 28),\n    _f(3073971433 << 24), _f2(9497573, 0xf32718849f75d),\n    # C4[12], coeff of eps^22, polynomial in n of order 4\n    -_f(7646768769 << 30), _f(19951096269 << 28), _f(491010815 << 29),\n    -_f(320366609 << 28), -_f(523396783 << 29),\n    _f2(28492721, 0xd975498dde617),\n    # C4[12], coeff of eps^21, polynomial in n of order 5\n    -_f2(3026, 1811699 << 28), -_f(2760169147 << 30),\n    -_f(4156137093 << 28), _f(9751170709 << 29), -_f(8065022455 << 28),\n    _f(9009785085 << 24), _f2(28492721, 0xd975498dde617),\n    # C4[12], coeff of eps^20, polynomial in n of order 6\n    _f2(3415, 105419659 << 25), _f(300203870565 << 24),\n    -_f2(4036, 50457863 << 26), _f(324492084003 << 24),\n    _f(46663751897 << 25), _f(14263553185 << 24),\n    -_f(262021003825 << 21), _f2(28492721, 0xd975498dde617),\n    # C4[12], coeff of eps^19, polynomial in n of order 7\n    -_f2(9657, 23913255 << 26), _f2(11274, 14202393 << 27),\n    -_f(33749559685 << 26), -_f(32700069373 << 28),\n    -_f(114920432067 << 26), _f2(2209, 3347763 << 27),\n    -_f(43334519585 << 26), _f(23877094395 << 22),\n    _f2(28492721, 0xd975498dde617),\n    # C4[12], coeff of eps^18, polynomial in n of order 8\n    -_f2(10357, 4316059 << 29), -_f2(12252, 51976653 << 26),\n    _f(53111513007 << 27), _f2(10573, 38618953 << 26),\n    -_f2(6814, 7336347 << 28), -_f(6527663009 << 26),\n    _f(27052895205 << 27), _f(24601392501 << 26), -_f(17553357101 << 26),\n    _f2(28492721, 0xd975498dde617),\n    # C4[12], coeff of eps^17, polynomial in n of order 9\n    -_f2(37197, 16059447 << 26), _f2(60620, 6214685 << 29),\n    -_f2(35564, 62593849 << 26), _f(3388754439 << 27),\n    _f2(9080, 41918565 << 26), _f(21802684253 << 28),\n    -_f2(7184, 50608669 << 26), _f2(4144, 5922861 << 27),\n    -_f(50938551167 << 26), -_f(22779400371 << 22),\n    _f2(28492721, 0xd975498dde617),\n    # C4[12], coeff of eps^16, polynomial in n of order 10\n    _f2(72847, 10250567 << 26), -_f2(50730, 68954325 << 25),\n    -_f(18441684165 << 28), _f2(46646, 59050757 << 25),\n    -_f2(52485, 42154095 << 26), _f2(25457, 83058719 << 25),\n    -_f(7107757125 << 27), -_f2(5015, 25213703 << 25),\n    _f(15647388379 << 26), _f(240182800403 << 25),\n    -_f(724544787239 << 22), _f2(28492721, 0xd975498dde617),\n    # C4[12], coeff of eps^15, polynomial in n of order 11\n    _f2(23399, 60546659 << 26), -_f2(46215, 22779895 << 27),\n    _f2(67437, 13577137 << 26), -_f2(68612, 7311579 << 29),\n    _f2(38802, 65276767 << 26), _f2(8195, 42655 << 27),\n    -_f2(41126, 40169811 << 26), _f2(42002, 3198053 << 28),\n    -_f2(22751, 40888613 << 26), _f2(6086, 3052981 << 27),\n    -_f(14786628311 << 26), -_f(192226168043 << 22),\n    _f2(28492721, 0xd975498dde617),\n    # C4[12], coeff of eps^14, polynomial in n of order 12\n    _f(18933494775 << 28), -_f2(4401, 33536241 << 26),\n    _f2(12915, 15192945 << 27), -_f2(29094, 11527179 << 26),\n    _f2(50530, 7111165 << 29), -_f2(66729, 34095909 << 26),\n    _f2(63904, 14901367 << 27), -_f2(38025, 42880575 << 26),\n    _f2(2775, 16493565 << 28), _f2(20705, 54393511 << 26),\n    -_f2(23355, 27541123 << 27), _f2(12999, 62947213 << 26),\n    -_f2(3169, 31971073 << 26), _f2(28492721, 0xd975498dde617),\n    # C4[12], coeff of eps^13, polynomial in n of order 13\n    _f(168754105 << 26), -_f(365884805 << 28), _f(8561579455 << 26),\n    -_f(18298927075 << 27), _f(119493273445 << 26),\n    -_f2(4555, 4035095 << 29), _f2(9255, 49236715 << 26),\n    -_f2(14989, 8672597 << 27), _f2(19228, 2329233 << 26),\n    -_f2(19175, 5958615 << 28), _f2(14321, 64798871 << 26),\n    -_f2(7491, 16431175 << 27), _f2(2423, 48133949 << 26),\n    -_f(387864634927 << 22), _f2(9497573, 0xf32718849f75d),\n    # C4[12], coeff of eps^12, polynomial in n of order 14\n    _f(198835 << 25), -_f(20309575 << 24), _f(82800575 << 26),\n    -_f(3096741505 << 24), _f(9853268425 << 25), -_f(92620723195 << 24),\n    _f(42100328725 << 27), -_f2(3631, 95393589 << 24),\n    _f2(8507, 100242399 << 25), -_f2(16264, 217481391 << 24),\n    _f2(25338, 57859733 << 26), -_f2(31673, 155080937 << 24),\n    _f2(30296, 62498037 << 25), -_f2(18783, 217084003 << 24),\n    _f2(5237, 1702548307 << 21), _f2(28492721, 0xd975498dde617),\n    # C4[13], coeff of eps^26, polynomial in n of order 0\n    _f(83 << 25), _f(0xb952c68e4fbe9),\n    # C4[13], coeff of eps^25, polynomial in n of order 1\n    -_f(71903 << 28), -_f(1749945 << 24), _f2(5818, 0x23b391cd899ed),\n    # C4[13], coeff of eps^24, polynomial in n of order 2\n    _f(16903565 << 32), -_f(16862357 << 31), _f(47373573 << 26),\n    _f2(789029, 0x386f296be7703),\n    # C4[13], coeff of eps^23, polynomial in n of order 3\n    _f(16624462311 << 28), _f(913717761 << 29), -_f(74700691 << 28),\n    -_f(16672249061 << 24), _f2(30772139, 0x98ef4f7042175),\n    # C4[13], coeff of eps^22, polynomial in n of order 4\n    -_f(876500127 << 32), -_f(1654287687 << 30), _f(2350551113 << 31),\n    -_f(1761427069 << 30), _f(3376471371 << 25),\n    _f2(30772139, 0x98ef4f7042175),\n    # C4[13], coeff of eps^21, polynomial in n of order 5\n    _f(32655563463 << 28), -_f2(3801, 39657 << 30), _f(14063722833 << 28),\n    _f(3085833575 << 29), _f(1328082427 << 28), -_f(31671991379 << 24),\n    _f2(30772139, 0x98ef4f7042175),\n    # C4[13], coeff of eps^20, polynomial in n of order 6\n    _f2(9254, 348341 << 33), _f(891770565 << 32), -_f(427379969 << 34),\n    -_f(2022490653 << 32), _f(1067054247 << 33), -_f(569056495 << 32),\n    _f(430257975 << 27), _f2(30772139, 0x98ef4f7042175),\n    # C4[13], coeff of eps^19, polynomial in n of order 7\n    -_f2(12155, 12992869 << 26), -_f(50480950653 << 27),\n    _f2(10690, 33612001 << 26), -_f2(5460, 12466223 << 28),\n    -_f(37884419769 << 26), _f(23471963137 << 27), _f(26726056077 << 26),\n    -_f(264030652949 << 22), _f2(30772139, 0x98ef4f7042175),\n    # C4[13], coeff of eps^18, polynomial in n of order 8\n    _f2(55507, 1702051 << 31), -_f2(25284, 15301089 << 28),\n    -_f2(4552, 6848911 << 29), _f2(8014, 12209149 << 28),\n    _f2(2646, 1117571 << 30), -_f2(6924, 9493077 << 28),\n    _f2(3590, 1368763 << 29), -_f(9963972599 << 28),\n    -_f(15032559759 << 23), _f2(30772139, 0x98ef4f7042175),\n    # C4[13], coeff of eps^17, polynomial in n of order 9\n    -_f2(35540, 37090525 << 26), -_f2(14632, 1678969 << 29),\n    _f2(49583, 4861453 << 26), -_f2(46373, 31739579 << 27),\n    _f2(18858, 13991831 << 26), _f(34153973959 << 28),\n    -_f2(4603, 63875327 << 26), -_f(5127820649 << 27),\n    _f(116479282059 << 26), -_f(662201165171 << 22),\n    _f2(30772139, 0x98ef4f7042175),\n    # C4[13], coeff of eps^16, polynomial in n of order 10\n    -_f2(50761, 3025121 << 30), _f2(66355, 4425085 << 29),\n    -_f2(59858, 324757 << 32), _f2(26575, 1103635 << 29),\n    _f2(16255, 479225 << 30), -_f2(41402, 7301831 << 29),\n    _f2(37768, 714123 << 31), -_f2(19110, 4265457 << 29),\n    _f2(4727, 1747987 << 30), -_f(399638603 << 29),\n    -_f(44359884933 << 24), _f2(30772139, 0x98ef4f7042175),\n    # C4[13], coeff of eps^15, polynomial in n of order 11\n    -_f2(6366, 57157311 << 26), _f2(16360, 10192555 << 27),\n    -_f2(33060, 46450725 << 26), _f2(52401, 3371487 << 29),\n    -_f2(63840, 37321515 << 26), _f2(56445, 29554125 << 27),\n    -_f2(29837, 31975057 << 26), -_f(31142569185 << 28),\n    _f2(20917, 29855465 << 26), -_f2(21569, 9966225 << 27),\n    _f2(11677, 61095555 << 26), -_f2(2823, 85634603 << 22),\n    _f2(30772139, 0x98ef4f7042175),\n    # C4[13], coeff of eps^14, polynomial in n of order 12\n    -_f(583637535 << 30), _f(11022475035 << 28),\n    -_f2(2387, 6604529 << 29), _f2(6865, 10202825 << 28),\n    -_f2(15869, 914837 << 31), _f2(29710, 9184775 << 28),\n    -_f2(45043, 8145271 << 29), _f2(54812, 7153333 << 28),\n    -_f2(52441, 1442741 << 30), _f2(37945, 12833459 << 28),\n    -_f2(19389, 6190909 << 29), _f2(6169, 7752673 << 28),\n    -_f(487958734263 << 23), _f2(30772139, 0x98ef4f7042175),\n    # C4[13], coeff of eps^13, polynomial in n of order 13\n    -_f(23263695 << 26), _f(59053995 << 28), -_f(1639451385 << 26),\n    _f(4222829325 << 27), -_f(33859413315 << 26), _f(13601644665 << 29),\n    -_f2(4256, 19212781 << 26), _f2(9227, 30696251 << 27),\n    -_f2(16594, 3848759 << 26), _f2(24654, 470841 << 28),\n    -_f2(29745, 41662305 << 26), _f2(27762, 19442409 << 27),\n    -_f2(16966, 1393323 << 26), _f2(4695, 1022390371 << 22),\n    _f2(30772139, 0x98ef4f7042175),\n    # C4[14], coeff of eps^26, polynomial in n of order 0\n    -_f(6781 << 26), _f(0x5fa345ccc643905),\n    # C4[14], coeff of eps^25, polynomial in n of order 1\n    -_f(5869 << 31), _f(7353 << 27), _f(0x148e6926290dbdd9),\n    # C4[14], coeff of eps^24, polynomial in n of order 2\n    _f(299903009 << 31), _f(37927009 << 30), -_f(2056312073 << 27),\n    _f2(33051557, 0x58695552a5cd3),\n    # C4[14], coeff of eps^23, polynomial in n of order 3\n    -_f(368055047 << 31), _f(374500339 << 32), -_f(256592557 << 31),\n    _f(207940889 << 27), _f2(11017185, 0xc8231c70e1ef1),\n    # C4[14], coeff of eps^22, polynomial in n of order 4\n    -_f2(3490, 1015519 << 31), _f(4441335459 << 29), _f(1543166497 << 30),\n    _f(845740769 << 29), -_f(7622621279 << 26),\n    _f2(33051557, 0x58695552a5cd3),\n    # C4[14], coeff of eps^21, polynomial in n of order 5\n    _f(1872610391 << 32), -_f(324912469 << 34), -_f2(2076, 886527 << 32),\n    _f(978081451 << 33), -_f(478972501 << 32), _f(98710857 << 28),\n    _f2(33051557, 0x58695552a5cd3),\n    # C4[14], coeff of eps^20, polynomial in n of order 6\n    -_f2(4075, 185993 << 32), _f2(10359, 933297 << 31),\n    -_f2(4245, 239235 << 33), -_f(1849695177 << 31), _f(616423549 << 32),\n    _f(879958205 << 31), -_f(3876332285 << 28),\n    _f2(33051557, 0x58695552a5cd3),\n    # C4[14], coeff of eps^19, polynomial in n of order 7\n    -_f2(16507, 1038671 << 32), -_f2(7426, 284587 << 33),\n    _f2(6609, 461219 << 32), _f2(3685, 34759 << 34),\n    -_f2(6576, 786795 << 32), _f2(3109, 191175 << 33),\n    -_f(486788729 << 32), -_f(537600147 << 28),\n    _f2(33051557, 0x58695552a5cd3),\n    # C4[14], coeff of eps^18, polynomial in n of order 8\n    -_f2(24788, 2034733 << 30), _f2(49876, 16016773 << 27),\n    -_f2(40130, 10305415 << 28), _f2(13469, 4482399 << 27),\n    _f2(3498, 5005267 << 29), -_f2(4111, 23511239 << 27),\n    -_f(7714983213 << 28), _f(56106110739 << 27),\n    -_f(151831927709 << 24), _f2(33051557, 0x58695552a5cd3),\n    # C4[14], coeff of eps^17, polynomial in n of order 9\n    _f2(63443, 3600701 << 29), -_f2(50757, 496203 << 32),\n    _f2(16003, 4273171 << 29), _f2(22072, 52127 << 30),\n    -_f2(40595, 5066263 << 29), _f2(33806, 1004469 << 31),\n    -_f2(16095, 1666881 << 29), _f2(3680, 908597 << 30),\n    _f(584087189 << 29), -_f(20381568753 << 25),\n    _f2(33051557, 0x58695552a5cd3),\n    # C4[14], coeff of eps^16, polynomial in n of order 10\n    _f2(19689, 3969453 << 29), -_f2(36282, 12968943 << 28),\n    _f2(53123, 80009 << 31), -_f2(60234, 3770241 << 28),\n    _f2(49410, 2521755 << 29), -_f2(22943, 4183315 << 28),\n    -_f2(5331, 2542455 << 30), _f2(20742, 9731931 << 28),\n    -_f2(19939, 3671159 << 29), _f2(10552, 6717897 << 28),\n    -_f2(2533, 118946129 << 25), _f2(33051557, 0x58695552a5cd3),\n    # C4[14], coeff of eps^15, polynomial in n of order 11\n    _f(8533174455 << 29), -_f2(3246, 843591 << 30),\n    _f2(8406, 531117 << 29), -_f2(17842, 647003 << 32),\n    _f2(31156, 7375267 << 29), -_f2(44630, 771985 << 30),\n    _f2(51879, 2231193 << 29), -_f2(47870, 1100123 << 31),\n    _f2(33689, 2160271 << 29), -_f2(16864, 3290075 << 30),\n    _f2(5288, 925829 << 29), -_f(103506398177 << 25),\n    _f2(33051557, 0x58695552a5cd3),\n    # C4[14], coeff of eps^14, polynomial in n of order 12\n    _f(66723345 << 29), -_f(1495097175 << 27), _f(3274386375 << 28),\n    -_f(23122205325 << 27), _f(8392504155 << 30),\n    -_f2(4840, 16188355 << 27), _f2(9826, 9115409 << 28),\n    -_f2(16767, 17260281 << 27), _f2(23911, 7831387 << 29),\n    -_f2(27976, 32288815 << 27), _f2(25559, 3357275 << 28),\n    -_f2(15423, 21986149 << 27), _f2(4241, 135611051 << 24),\n    _f2(33051557, 0x58695552a5cd3),\n    # C4[15], coeff of eps^26, polynomial in n of order 0\n    _f(71 << 30), _f(0x2213ecbbb96785d),\n    # C4[15], coeff of eps^25, polynomial in n of order 1\n    _f(6799 << 34), -_f(2467695 << 27), _f2(43244, 0xc47e8e0e2a501),\n    # C4[15], coeff of eps^24, polynomial in n of order 2\n    _f(1754601 << 37), -_f(1107369 << 36), _f(11866753 << 28),\n    _f2(1859525, 0x141dc611b72b),\n    # C4[15], coeff of eps^23, polynomial in n of order 3\n    _f(72562737 << 34), _f(46462031 << 35), _f(31074907 << 34),\n    -_f(3658156407 << 27), _f2(35330975, 0x17e35b3509831),\n    # C4[15], coeff of eps^22, polynomial in n of order 4\n    -_f(13531387 << 38), -_f2(2167, 14381 << 36), _f(55828981 << 37),\n    -_f(25230703 << 36), _f(3197649 << 30),\n    _f2(35330975, 0x17e35b3509831),\n    # C4[15], coeff of eps^21, polynomial in n of order 5\n    _f2(9732, 8631 << 37), -_f2(3185, 3623 << 39), -_f(35580543 << 37),\n    _f(7839601 << 38), _f(14184443 << 37), -_f(3642815981 << 28),\n    _f2(35330975, 0x17e35b3509831),\n    # C4[15], coeff of eps^20, polynomial in n of order 6\n    -_f2(8973, 2493 << 39), _f2(5093, 1677 << 40), _f2(4452, 53 << 40),\n    -_f2(6181, 1625 << 40), _f2(2693, 7137 << 39), -_f(1482145 << 40),\n    -_f(287239701 << 29), _f2(35330975, 0x17e35b3509831),\n    # C4[15], coeff of eps^19, polynomial in n of order 7\n    _f2(48363, 42681 << 36), -_f2(34138, 1171 << 37),\n    _f2(9135, 63227 << 36), _f2(4396, 12847 << 38), -_f2(3596, 33667 << 36),\n    -_f(22964529 << 37), _f(105092799 << 36), -_f(8732815777 << 28),\n    _f2(35330975, 0x17e35b3509831),\n    # C4[15], coeff of eps^18, polynomial in n of order 8\n    -_f2(41806, 3793 << 39), _f2(7070, 18565 << 36),\n    _f2(26107, 27709 << 37), -_f2(39103, 10113 << 36),\n    _f2(30179, 111 << 38), -_f2(13593, 42919 << 36), _f2(2866, 20031 << 37),\n    _f(9747283 << 36), -_f(584087189 << 30),\n    _f2(35330975, 0x17e35b3509831),\n    # C4[15], coeff of eps^17, polynomial in n of order 9\n    -_f2(38751, 968439 << 32), _f2(52907, 129341 << 35),\n    -_f2(56213, 262777 << 32), _f2(42911, 476327 << 33),\n    -_f2(17166, 1038043 << 32), -_f2(7920, 60547 << 34),\n    _f2(20320, 95267 << 32), -_f2(18461, 171251 << 33),\n    _f2(9586, 798401 << 32), -_f2(2289, 97706315 << 25),\n    _f2(35330975, 0x17e35b3509831),\n    # C4[15], coeff of eps^16, polynomial in n of order 10\n    -_f(182681295 << 35), _f2(3304, 139139 << 34), -_f2(6521, 16667 << 37),\n    _f2(10722, 226797 << 34), -_f2(14618, 113609 << 35),\n    _f2(16325, 9799 << 34), -_f2(14590, 57403 << 36),\n    _f2(10019, 97137 << 34), -_f2(4925, 40451 << 35), _f(399638603 << 34),\n    -_f(14786628311 << 26), _f2(11776991, 0xb2a11e67032bb),\n    # C4[15], coeff of eps^15, polynomial in n of order 11\n    -_f(76608285 << 32), _f(147323625 << 33), -_f(936978255 << 32),\n    _f2(2382, 112581 << 35), -_f2(5377, 114593 << 32),\n    _f2(10315, 142015 << 33), -_f2(16818, 394707 << 32),\n    _f2(23142, 22533 << 34), -_f2(26356, 277413 << 32),\n    _f2(23629, 395541 << 33), -_f2(14101, 658135 << 32),\n    _f2(3855, 122649445 << 25), _f2(35330975, 0x17e35b3509831),\n    # C4[16], coeff of eps^26, polynomial in n of order 0\n    -_f(22951 << 32), _f2(14038, 0xf79362a6f2da9),\n    # C4[16], coeff of eps^25, polynomial in n of order 1\n    -_f(9017 << 35), _f(4815 << 31), _f2(9206, 0xf354c01a236f3),\n    # C4[16], coeff of eps^24, polynomial in n of order 2\n    _f(1146319 << 36), _f(916151 << 35), -_f(5763591 << 32),\n    _f2(1979494, 0x5c2d55f3c2615),\n    # C4[16], coeff of eps^23, polynomial in n of order 3\n    -_f(15250071 << 35), _f(5353311 << 36), -_f(2240893 << 35),\n    -_f(332469 << 31), _f2(1979494, 0x5c2d55f3c2615),\n    # C4[16], coeff of eps^22, polynomial in n of order 4\n    -_f2(2280, 6539 << 38), -_f(78951693 << 36), _f(12301989 << 37),\n    _f(28829297 << 36), -_f(214091115 << 32),\n    _f2(37610392, 0xd75d61176d38f),\n    # C4[16], coeff of eps^21, polynomial in n of order 5\n    _f2(3604, 40151 << 35), _f2(4989, 25591 << 37), -_f2(5766, 5439 << 35),\n    _f2(2335, 38023 << 36), -_f(36776117 << 35), -_f(73810821 << 31),\n    _f2(37610392, 0xd75d61176d38f),\n    # C4[16], coeff of eps^20, polynomial in n of order 6\n    -_f2(28603, 8635 << 37), _f2(5695, 63155 << 36), _f2(4892, 14039 << 38),\n    -_f2(3091, 58619 << 36), -_f(29081577 << 37), _f(100489431 << 36),\n    -_f(125982325 << 34), _f2(37610392, 0xd75d61176d38f),\n    # C4[16], coeff of eps^19, polynomial in n of order 7\n    -_f(44186749 << 35), _f2(28752, 63675 << 36), -_f2(37202, 72039 << 35),\n    _f2(26902, 18169 << 37), -_f2(11512, 105649 << 35),\n    _f2(2229, 59753 << 36), _f(26382181 << 35), -_f(267675387 << 31),\n    _f2(37610392, 0xd75d61176d38f),\n    # C4[16], coeff of eps^18, polynomial in n of order 8\n    _f2(51956, 3503 << 39), -_f2(52000, 65291 << 36),\n    _f2(36995, 30461 << 37), -_f2(12343, 54705 << 36),\n    -_f2(9828, 2065 << 38), _f2(19743, 35337 << 36),\n    -_f2(17124, 20865 << 37), _f2(8752, 19043 << 36),\n    -_f2(2081, 554945 << 32), _f2(37610392, 0xd75d61176d38f),\n    # C4[16], coeff of eps^17, polynomial in n of order 9\n    _f2(11351, 15263 << 35), -_f2(21031, 10301 << 38),\n    _f2(32809, 38737 << 35), -_f2(42826, 1799 << 36),\n    _f2(46156, 123299 << 35), -_f2(40102, 7421 << 37),\n    _f2(26942, 16853 << 35), -_f2(13031, 12333 << 36),\n    _f2(3987, 20263 << 35), -_f(1198915809 << 31),\n    _f2(37610392, 0xd75d61176d38f),\n    # C4[16], coeff of eps^16, polynomial in n of order 10\n    _f(100180065 << 34), -_f(583401555 << 33), _f2(2759, 6541 << 36),\n    -_f2(5863, 45661 << 33), _f2(10706, 132871 << 34),\n    -_f2(16773, 276519 << 33), _f2(22364, 92173 << 35),\n    -_f2(24871, 48433 << 33), _f2(21929, 91821 << 34),\n    -_f2(12958, 132347 << 33), _f2(3525, 1706711 << 30),\n    _f2(37610392, 0xd75d61176d38f),\n    # C4[17], coeff of eps^26, polynomial in n of order 0\n    _f(1 << 32), _f(0x62a61c3e4dd975),\n    # C4[17], coeff of eps^25, polynomial in n of order 1\n    _f(4057 << 35), -_f(45015 << 31), _f2(8569, 0x3d59f665e75a3),\n    # C4[17], coeff of eps^24, polynomial in n of order 2\n    _f(43463 << 40), -_f(16895 << 39), -_f(11395 << 34),\n    _f2(299923, 0x634cafeea1549),\n    # C4[17], coeff of eps^23, polynomial in n of order 3\n    -_f(1242717 << 35), _f(138325 << 36), _f(435713 << 35),\n    -_f(3030063 << 31), _f2(299923, 0x634cafeea1549),\n    # C4[17], coeff of eps^22, polynomial in n of order 4\n    _f(2302621 << 39), -_f(9225219 << 37), _f(1747781 << 38),\n    -_f(372113 << 37), -_f(1948863 << 32),\n    _f2(2099463, 0xb718cf86694ff),\n    # C4[17], coeff of eps^21, polynomial in n of order 5\n    _f2(2996, 69763 << 35), _f2(5105, 30307 << 37), -_f2(2616, 23051 << 35),\n    -_f(67503821 << 36), _f(191814791 << 35), -_f(933454921 << 31),\n    _f2(39889810, 0x96d766f9d0eed),\n    # C4[17], coeff of eps^20, polynomial in n of order 6\n    _f2(30327, 1293 << 39), -_f2(35084, 3299 << 38), _f2(23968, 2311 << 40),\n    -_f2(9776, 7093 << 38), _f(14159215 << 39), _f(3853577 << 38),\n    -_f(61360803 << 33), _f2(39889810, 0x96d766f9d0eed),\n    # C4[17], coeff of eps^19, polynomial in n of order 7\n    -_f2(47757, 47889 << 35), _f2(31664, 61447 << 36),\n    -_f2(8326, 73443 << 35), -_f2(11212, 17667 << 37),\n    _f2(19076, 23915 << 35), -_f2(15916, 62675 << 36),\n    _f2(8026, 42649 << 35), -_f(3989637911 << 31),\n    _f2(39889810, 0x96d766f9d0eed),\n    # C4[17], coeff of eps^18, polynomial in n of order 8\n    -_f2(22252, 923 << 40), _f2(33139, 2449 << 37), -_f2(41618, 6905 << 38),\n    _f2(43458, 30291 << 37), -_f2(36814, 1531 << 39),\n    _f2(24253, 3845 << 37), -_f2(11561, 2707 << 38), _f2(3500, 30023 << 37),\n    -_f(522604327 << 32), _f2(39889810, 0x96d766f9d0eed),\n    # C4[17], coeff of eps^17, polynomial in n of order 9\n    -_f(175857885 << 35), _f2(3123, 8343 << 38), -_f2(6297, 123891 << 35),\n    _f2(11012, 26677 << 36), -_f2(16654, 74217 << 35),\n    _f2(21593, 16599 << 37), -_f2(23509, 7807 << 35), _f2(20422, 743 << 36),\n    -_f2(11961, 60789 << 35), _f2(3239, 1180923 << 31),\n    _f2(39889810, 0x96d766f9d0eed),\n    # C4[18], coeff of eps^26, polynomial in n of order 0\n    -_f(56087 << 33), _f2(47221, 0xfaefc0318df67),\n    # C4[18], coeff of eps^25, polynomial in n of order 1\n    -_f(19981 << 39), -_f(10755 << 35), _f2(443886, 0x9d340e9e9cd95),\n    # C4[18], coeff of eps^24, polynomial in n of order 2\n    _f(84155 << 39), _f(380011 << 38), -_f(1249051 << 35),\n    _f2(2219433, 0x12044919103e9),\n    # C4[18], coeff of eps^23, polynomial in n of order 3\n    -_f(2130987 << 39), _f(379583 << 40), -_f(70649 << 39),\n    -_f(240567 << 35), _f2(2219433, 0x12044919103e9),\n    # C4[18], coeff of eps^22, polynomial in n of order 4\n    _f(4417441 << 38), -_f(7513869 << 36), -_f(1960735 << 37),\n    _f(4812241 << 36), -_f(11409363 << 33),\n    _f2(2219433, 0x12044919103e9),\n    # C4[18], coeff of eps^21, polynomial in n of order 5\n    -_f(28350547 << 38), _f(4603793 << 40), -_f(7176677 << 38),\n    _f(573937 << 39), _f(220745 << 38), -_f(1482145 << 34),\n    _f2(2219433, 0x12044919103e9),\n    # C4[18], coeff of eps^20, polynomial in n of order 6\n    _f2(26896, 5159 << 38), -_f2(4987, 8879 << 37), -_f2(12193, 6323 << 39),\n    _f2(18360, 26775 << 37), -_f2(14825, 8691 << 38),\n    _f2(7390, 26973 << 37), -_f(457982805 << 34),\n    _f2(42169228, 0x56516cdc34a4b),\n    # C4[18], coeff of eps^19, polynomial in n of order 7\n    _f2(11070, 12259 << 38), -_f2(13431, 6105 << 39),\n    _f2(13633, 4633 << 38), -_f2(11288, 2771 << 40), _f2(7306, 11663 << 38),\n    -_f2(3437, 4851 << 39), _f(16896453 << 38), -_f(38239341 << 34),\n    _f2(14056409, 0x721b244966e19),\n    # C4[18], coeff of eps^18, polynomial in n of order 8\n    _f2(3471, 5433 << 39), -_f2(6682, 62369 << 36), _f2(11244, 10859 << 37),\n    -_f2(16478, 49907 << 36), _f2(20837, 10809 << 38),\n    -_f2(22258, 26821 << 36), _f2(19078, 20857 << 37),\n    -_f2(11086, 15383 << 36), _f2(2990, 191861 << 33),\n    _f2(42169228, 0x56516cdc34a4b),\n    # C4[19], coeff of eps^26, polynomial in n of order 0\n    -_f(113 << 37), _f2(16591, 0x81ae2ec54d8df),\n    # C4[19], coeff of eps^25, polynomial in n of order 1\n    _f(94099 << 40), -_f(1178305 << 35), _f2(2339402, 0x6cefc2abb72d3),\n    # C4[19], coeff of eps^24, polynomial in n of order 2\n    _f(41263 << 43), -_f(6583 << 42), -_f(117501 << 36),\n    _f2(2339402, 0x6cefc2abb72d3),\n    # C4[19], coeff of eps^23, polynomial in n of order 3\n    -_f(384159 << 40), -_f(130977 << 41), _f(286571 << 40),\n    -_f(2657049 << 35), _f2(2339402, 0x6cefc2abb72d3),\n    # C4[19], coeff of eps^22, polynomial in n of order 4\n    _f(64121 << 46), -_f(23919 << 46), _f(6837 << 45), _f(901 << 46),\n    -_f(170289 << 37), _f2(2339402, 0x6cefc2abb72d3),\n    # C4[19], coeff of eps^21, polynomial in n of order 5\n    -_f(955747 << 39), -_f(1386619 << 41), _f(7599723 << 39),\n    -_f(2983211 << 40), _f(2945369 << 39), -_f(22232175 << 34),\n    _f2(2339402, 0x6cefc2abb72d3),\n    # C4[19], coeff of eps^20, polynomial in n of order 6\n    -_f(2096679 << 42), _f(4148625 << 41), -_f(841269 << 43),\n    _f(2143479 << 41), -_f(498253 << 42), _f(296429 << 41),\n    -_f(2667861 << 35), _f2(2339402, 0x6cefc2abb72d3),\n    # C4[19], coeff of eps^19, polynomial in n of order 7\n    -_f(3026933 << 39), _f(2460315 << 40), -_f(7010575 << 39),\n    _f(2166905 << 41), -_f(9101001 << 39), _f(3853577 << 40),\n    -_f(4446435 << 39), _f(38239341 << 34),\n    _f2(2339402, 0x6cefc2abb72d3),\n    # C4[20], coeff of eps^26, polynomial in n of order 0\n    -_f(34781 << 40), _f2(2459371, 0xc7db3c3e5e1bd),\n    # C4[20], coeff of eps^25, polynomial in n of order 1\n    -_f(4771 << 42), -_f(28479 << 38), _f2(2459371, 0xc7db3c3e5e1bd),\n    # C4[20], coeff of eps^24, polynomial in n of order 2\n    -_f(68467 << 42), _f(136501 << 41), -_f(310209 << 38),\n    _f2(2459371, 0xc7db3c3e5e1bd),\n    # C4[20], coeff of eps^23, polynomial in n of order 3\n    -_f(327189 << 42), _f(20533 << 43), _f(14681 << 42),\n    -_f(78387 << 38), _f2(2459371, 0xc7db3c3e5e1bd),\n    # C4[20], coeff of eps^22, polynomial in n of order 4\n    -_f(179129 << 44), _f(910389 << 42), -_f(348793 << 43),\n    _f(341479 << 42), -_f(321657 << 40), _f2(2459371, 0xc7db3c3e5e1bd),\n    # C4[20], coeff of eps^21, polynomial in n of order 5\n    _f(1952379 << 42), -_f(388557 << 44), _f(975677 << 42),\n    -_f(224349 << 43), _f(132447 << 42), -_f(296429 << 38),\n    _f2(2459371, 0xc7db3c3e5e1bd),\n    # C4[20], coeff of eps^20, polynomial in n of order 6\n    _f(1242423 << 41), -_f(3451175 << 40), _f(1045213 << 42),\n    -_f(4322097 << 40), _f(1810109 << 41), -_f(2075003 << 40),\n    _f(4446435 << 37), _f2(2459371, 0xc7db3c3e5e1bd),\n    # C4[21], coeff of eps^26, polynomial in n of order 0\n    -_f(199 << 39), _f2(37381, 0xc16e795c129fb),\n    # C4[21], coeff of eps^25, polynomial in n of order 1\n    _f(65027 << 42), -_f(290455 << 38), _f2(2579341, 0x22c6b5d1050a7),\n    # C4[21], coeff of eps^24, polynomial in n of order 2\n    _f(1883 << 46), _f(1837 << 45), -_f(18073 << 40),\n    _f2(2579341, 0x22c6b5d1050a7),\n    # C4[21], coeff of eps^23, polynomial in n of order 3\n    _f(871509 << 42), -_f(326909 << 43), _f(317735 << 42),\n    -_f(1195627 << 38), _f2(2579341, 0x22c6b5d1050a7),\n    # C4[21], coeff of eps^22, polynomial in n of order 4\n    -_f(29971 << 46), _f(74261 << 44), -_f(16907 << 45), _f(9911 << 44),\n    -_f(44149 << 39), _f2(859780, 0x60ece745ac58d),\n    # C4[21], coeff of eps^21, polynomial in n of order 5\n    -_f(848003 << 42), _f(252109 << 44), -_f(1027829 << 42),\n    _f(426173 << 43), -_f(485639 << 42), _f(2075003 << 38),\n    _f2(2579341, 0x22c6b5d1050a7),\n    # C4[22], coeff of eps^26, polynomial in n of order 0\n    -_f(2963 << 40), _f2(117361, 0x5360ca6881e97),\n    # C4[22], coeff of eps^25, polynomial in n of order 1\n    _f(79 << 45), -_f(363 << 41), _f2(117361, 0x5360ca6881e97),\n    # C4[22], coeff of eps^24, polynomial in n of order 2\n    -_f(76751 << 45), _f(74129 << 44), -_f(139337 << 41),\n    _f2(2699310, 0x7db22f63abf91),\n    # C4[22], coeff of eps^23, polynomial in n of order 3\n    _f(102051 << 45), -_f(23023 << 46), _f(13409 << 45),\n    -_f(29733 << 41), _f2(2699310, 0x7db22f63abf91),\n    # C4[22], coeff of eps^22, polynomial in n of order 4\n    _f(121647 << 45), -_f(489555 << 43), _f(201135 << 44),\n    -_f(227953 << 43), _f(485639 << 40), _f2(2699310, 0x7db22f63abf91),\n    # C4[23], coeff of eps^26, polynomial in n of order 0\n    -_f(1 << 45), _f2(5837, 0x4b04b152e489),\n    # C4[23], coeff of eps^25, polynomial in n of order 1\n    _f(377 << 47), -_f(5665 << 41), _f2(122577, 0x627628bccbf3d),\n    # C4[23], coeff of eps^24, polynomial in n of order 2\n    -_f(57 << 50), _f(33 << 49), -_f(583 << 42),\n    _f2(122577, 0x627628bccbf3d),\n    # C4[23], coeff of eps^23, polynomial in n of order 3\n    -_f(1269 << 47), _f(517 << 48), -_f(583 << 47), _f(9911 << 41),\n    _f2(122577, 0x627628bccbf3d),\n    # C4[24], coeff of eps^26, polynomial in n of order 0\n    -_f(83 << 47), _f2(127793, 0x718b871115fe3),\n    # C4[24], coeff of eps^25, polynomial in n of order 1\n    _f(5 << 50), -_f(11 << 46), _f2(42597, 0xd083d7b05caa1),\n    # C4[24], coeff of eps^24, polynomial in n of order 2\n    _f(245 << 49), -_f(275 << 48), _f(583 << 45),\n    _f2(127793, 0x718b871115fe3),\n    # C4[25], coeff of eps^26, polynomial in n of order 0\n    -_f(1 << 47), _f2(8867, 0x4cd786c27dde7),\n    # C4[25], coeff of eps^25, polynomial in n of order 1\n    -_f(13 << 50), _f(55 << 46), _f2(26601, 0xe6869447799b5),\n    # C4[26], coeff of eps^26, polynomial in n of order 0\n    _f(1 << 48), _f2(2126, 0x8c0e9e949456f),  # PYCHOK exported\n))  # 4032 / 3764\ndel _g, _Gfloats, _f, _f2\n\n# **) MIT License\n#\n# Copyright (C) 2016-2026 -- mrJean1 at Gmail -- All Rights Reserved.\n#\n# Permission is hereby granted, free of charge, to any person obtaining a\n# copy of this software and associated documentation files (the \"Software\"),\n# to deal in the Software without restriction, including without limitation\n# the rights to use, copy, modify, merge, publish, distribute, sublicense,\n# and/or sell copies of the Software, and to permit persons to whom the\n# Software is furnished to do so, subject to the following conditions:\n#\n# The above copyright notice and this permission notice shall be included\n# in all copies or substantial portions of the Software.\n#\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL\n# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR\n# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\n# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n# OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "pygeodesy/geodesicx/_C4_30.py",
    "content": "\n# -*- coding: utf-8 -*-\n\nu'''A Python version of part of I{Karney}'s C++ module U{GeodesicExactC4\n<https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1GeodesicExactC4.html>}.\n\nCopyright (C) U{Charles Karney<mailto:Karney@Alum.MIT.edu>} (2008-2024)\nand licensed under the MIT/X11 License.  For more information, see the\nU{GeographicLib<https://GeographicLib.SourceForge.io>} documentation.\n'''\n# A copy of comments from Karney's C{GeodesicExactC4.cpp}:\n#\n# If the coefficient is greater or equal to 2^63, express it as a pair [a, b] which is\n# combined with a*2^52 + b.  The largest coefficient is 831281402884796906843926125 =\n# 0x2af9eaf25d149c52a73ee6d = 184581550685 * 2^52 + 0x149c52a73ee6d which is less than\n# 2^90.  Both a and b are less that 2^52 and so are exactly representable by doubles;\n# then the computation of the full double coefficient involves only a single rounding\n# operation.  (Actually integers up to and including 2^53 can be represented exactly\n# as doubles.  Limiting b to 52 bits allows it to be represented in 13 digits in hex.)\n#\n# If the coefficient is less than 2^63, cast it to  _f if it isn't exactly representable\n# as a float.  Thus 121722048 = 1901907*2^6 and 1901907 < 2^24 so the cast is not needed;\n# 21708121824 = 678378807*2^5 and 678378807 >= 2^24 so the cast is needed.\n#\n# Large coefficients are split so that lo contains the low 52 bits and hi the rest.\n# This choice avoids double rounding with doubles and higher precision types.  Note,\n# float coefficients will suffer double rounding; however the accuracy is already\n# lousy for floats.\n\nfrom pygeodesy.geodesicx.gxbases import _Gfloats, _f, _f2\n\n__all__ = ()\n__version__ = '24.09.04'\n\n_g = _Gfloats(30)\n_coeffs_30 = _g((  # GEOGRAPHICLIB_GEODESICEXACT_ORDER == 30\n    # Generated by Maxima on 2017-05-27 10:17:57-04:00\n    # C4[0], coeff of eps^29, polynomial in n of order 0\n    3361, _f(109067695),\n    # C4[0], coeff of eps^28, polynomial in n of order 1\n    _f(121722048), _f(30168404), _f(0x269c465a0c9),\n    # C4[0], coeff of eps^27, polynomial in n of order 2\n    _f(21708121824), -_f(10786479696), _f(8048130587),\n    _f(0xbfa33c13e963),\n    # C4[0], coeff of eps^26, polynomial in n of order 3\n    _f(0x738319564e0), -_f(0x4c2475635c0), _f(0x25d0be52da0),\n    _f(643173496654), _f(0xa0f21774b90225),\n    # C4[0], coeff of eps^25, polynomial in n of order 4\n    _f(0x7a99ea0a52f40), -_f(0x5a5f53e2c3b50), _f(0x3b83d2c0c8da0),\n    -_f(0x1d8a81cb5cc70), _f(0x1605bd50459c1),\n    _f(0x6fb2ae4757107d03),\n    # C4[0], coeff of eps^24, polynomial in n of order 5\n    _f(0x2507d929b7f89580), -_f(0x1ce7bf02c3715a00),\n    _f(0x15463c23456c8680), -_f(0xdfecff0050dfd00),\n    _f(0x6f141ba97196780), _f(0x1b71ab9c78b8b48),\n    _f2(1520879, 0x957266bcf90f9),\n    # C4[0], coeff of eps^23, polynomial in n of order 6\n    _f2(5214, 0xb54b8c26f5620), -_f2(4202, 0x4ae5f5bcbf950),\n    _f2(3272, 0xab988a50dfac0), -_f2(2404, 0x84ae60c9e7b30),\n    _f(0x62be65b26227b760), -_f(0x30f2645200be8b10),\n    _f(0x2472ebc3f09ad327), _f2(9429453, 0x6b5ee3606e93b),\n    # C4[0], coeff of eps^22, polynomial in n of order 7\n    _f2(213221, 0x21fe88963f0e0), -_f2(174746, 0x12fe03af82e40),\n    _f2(140344, 0xd3dfad978d4a0), -_f2(109009, 0x13ee03d15f180),\n    _f2(79932, 0x9fff01479b460), -_f2(52447, 0x53ea945b584c0),\n    _f2(25976, 0xa5a6ee990f820), _f2(6403, 0x87dc4a069efc6),\n    _f2(273454149, 0x29bfc1ec86baf),\n    # C4[0], coeff of eps^21, polynomial in n of order 8\n    _f2(1513769, 0x9572babb99080), -_f2(1247902, 0x66609b16e1250),\n    _f2(1017692, 0x228016ac84e60), -_f2(814136, 0x86ec313455df0),\n    _f2(630421, 0xa88f591713840), -_f2(461205, 0x487f023b60f90),\n    _f2(302134, 0x36942691aea20), -_f2(149503, 0x5a1d9af94cb30),\n    _f2(111169, 0xb14ab93d4ba6d), _f2(1367270745, 0xd0bec99ea1a6b),\n    # C4[0], coeff of eps^20, polynomial in n of order 9\n    _f2(2196138, 0xe1b60fe1808c0), -_f2(1802572, 0x3b4b1c2a34200),\n    _f2(1475191, 0x47b8ccbe8340), -_f2(1196055, 0x2e2a401c46980),\n    _f2(952413, 0x117e9e1fb75c0), -_f2(734856, 0x2e19f1e7be100),\n    _f2(536171, 0x8daa599335040), -_f2(350594, 0xa58d466a3880),\n    _f2(173293, 0x7b19cdc9682c0), _f2(42591, 0xb005bdeb82d74),\n    _f2(1367270745, 0xd0bec99ea1a6b),\n    # C4[0], coeff of eps^19, polynomial in n of order 10\n    _f2(9954363, 0x5ecc5371ca720), -_f2(8035921, 0x7cc90565e0670),\n    _f2(6522783, 0x32e1ec30d1a80), -_f2(5291286, 0x4172ef2beb090),\n    _f2(4260231, 0x65c388ed45de0), -_f2(3373847, 0x4da61e8c704b0),\n    _f2(2592185, 0xcd194d02dbd40), -_f2(1885401, 0xa08c9a20ef6d0),\n    _f2(1230164, 0x4c527bc6a84a0), -_f2(607279, 0x24d6e51bd7af0),\n    _f2(450701, 0xae98337b7d081), _f2(4101812237, 0x723c5cdbe4f41),\n    # C4[0], coeff of eps^18, polynomial in n of order 11\n    _f2(16160603, 0x85a3ec5761ce0), -_f2(12587219, 0x97b7f7c505ac0),\n    _f2(9979192, 0xa0e43863a93a0), -_f2(7988280, 0xcfaf566027f00),\n    _f2(6410314, 0xbffc30c12660), -_f2(5117692, 0xfd9318db4c340),\n    _f2(4026292, 0x94c482b815d20), -_f2(3077917, 0x9c480ad851f80),\n    _f2(2230377, 0x99db799d8bfe0), -_f2(1451530, 0xb0005d9658bc0),\n    _f2(715485, 0xdbe6a2ef6d6a0), _f2(175141, 0x3547b8669b9be),\n    _f2(4101812237, 0x723c5cdbe4f41),\n    # C4[0], coeff of eps^17, polynomial in n of order 12\n    _f2(30091817, 0x8745c27487540), -_f2(21716256, 0x7a4bb1495e170),\n    _f2(16366670, 0xd4e8bc19a0660), -_f2(12670374, 0x9eda0f5df2ed0),\n    _f2(9963727, 0x5ae4f6d3c8380), -_f2(7887824, 0x191034733ae30),\n    _f2(6231873, 0x96448488ef0a0), -_f2(4863678, 0x67c3c74b1b90),\n    _f2(3695513, 0x2e7ae0f4851c0), -_f2(2665992, 0xe6864878c32f0),\n    _f2(1729741, 0xf881cba41aae0), -_f2(851104, 0x888fd5b7ab050),\n    _f2(629987, 0x9ea5a19626943), _f2(4101812237, 0x723c5cdbe4f41),\n    # C4[0], coeff of eps^16, polynomial in n of order 13\n    _f2(79181861, 0x46beef62ca900), -_f2(45969492, 0x85a19d8425400),\n    _f2(30736937, 0x10d9a95bb4f00), -_f2(22084618, 0xaf3a6659fa600),\n    _f2(16548053, 0x58583f22e9500), -_f2(12711232, 0x3d7f1b1be3800),\n    _f2(9889259, 0xbbf5d84b2bb00), -_f2(7711253, 0x36b17889dca00),\n    _f2(5958759, 0x73d1ebe040100), -_f2(4493987, 0xfa374abbe1c00),\n    _f2(3224517, 0x29027e04ea700), -_f2(2084431, 0x8d77e42beee00),\n    _f2(1023433, 0xbf113370eed00), _f2(249103, 0x93cdbdabe0fb0),\n    _f2(4101812237, 0x723c5cdbe4f41),\n    # C4[0], coeff of eps^15, polynomial in n of order 14\n    _f2(100415733, 0x1c7e0d98777e0), -_f2(220472579, 0x196c2a7ff77f0),\n    _f2(81497972, 0xcf48e14d7b2c0), -_f2(47157604, 0xb4c79beff0c90),\n    _f2(31400333, 0x3ade51fc905a0), -_f2(22437640, 0x62c8445afeb30),\n    _f2(16688020, 0xb49b2cc64ec80), -_f2(12687475, 0x35a524f08d7d0),\n    _f2(9727302, 0xc96eb1166e360), -_f2(7422875, 0x3574dc9ff9670),\n    _f2(5546536, 0x3897621326640), -_f2(3953280, 0x7a61d237aeb10),\n    _f2(2544043, 0x942757fc8f120), -_f2(1245848, 0x5f59e2e2499b0),\n    _f2(918672, 0xb7e149f3f515d), _f2(4101812237, 0x723c5cdbe4f41),\n    # C4[0], coeff of eps^14, polynomial in n of order 15\n    -_f2(410150575, 0x33edeefdadd60), _f2(389451478, 0x4a8eb37cf8e40),\n    _f2(102537774, 0xdf54e754057e0), -_f2(228145792, 0x9928ef6984980),\n    _f2(84014235, 0x8c476a1354120), -_f2(48417903, 0x9486b64af140),\n    _f2(32072368, 0xac5157de0d660), -_f2(22757026, 0x6fd3c1d71f100),\n    _f2(16760216, 0x75de552320fa0), -_f2(12564203, 0xce657c7ead0c0),\n    _f2(9433140, 0xee7b325fde4e0), -_f2(6966096, 0xc0a9d97231880),\n    _f2(4923714, 0x7fe1a8c934e20), -_f2(3150864, 0xcacdc5bf45040),\n    _f2(1538058, 0xc6e75548f4360), _f2(371250, 0x9b28ca926da22),\n    _f2(4101812237, 0x723c5cdbe4f41),\n    # C4[0], coeff of eps^13, polynomial in n of order 16\n    _f2(10071346, 0xbead2787bab00), _f2(77935892, 0xc8037e807a610),\n    -_f2(424974584, 0x95c58aa2abc60), _f2(405632040, 0xf37804095de30),\n    _f2(104709205, 0x2c34dddf07040), -_f2(236671973, 0xc06ad427a5bb0),\n    _f2(86756233, 0x36f6256b264e0), -_f2(49748360, 0xa42ca4c379390),\n    _f2(32735340, 0x1aa6eba145580), -_f2(23012513, 0x41e6e60af5570),\n    _f2(16722020, 0xa0e65eb557620), -_f2(12285046, 0x712c138942d50),\n    _f2(8933912, 0x44131ea6cfac0), -_f2(6247309, 0xac4879043a730),\n    _f2(3969671, 0x8774cc7c1760), -_f2(1929932, 0x2a739696c4f10),\n    _f2(1414943, 0x9f9bcb791811f), _f2(4101812237, 0x723c5cdbe4f41),\n    # C4[0], coeff of eps^12, polynomial in n of order 17\n    _f2(1301009, 0x7885767b34dc0), _f2(3139452, 0x6299dbe8eac00),\n    _f2(10399899, 0xe9c2f692aa40), _f2(80694987, 0xafcfc919b1e80),\n    -_f2(441529449, 0x34f14f083e140), _f2(423985433, 0x2e9be95704100),\n    _f2(106892519, 0x9a909730adb40), -_f2(246219322, 0x3cc21ecefbc80),\n    _f2(89751674, 0x8e9ea1f760fc0), -_f2(51139306, 0x4d1fa35b2aa00),\n    _f2(33357165, 0x391836578ec40), -_f2(23152852, 0x670df382e5780),\n    _f2(16502135, 0xfb453b1baa0c0), -_f2(11755175, 0x732a395d89500),\n    _f2(8105218, 0xa64658fb65d40), -_f2(5103238, 0xc9c658d3f3280),\n    _f2(2468214, 0x7d6aacb2351c0), _f2(588064, 0xecbdce72e5104),\n    _f2(4101812237, 0x723c5cdbe4f41),\n    # C4[0], coeff of eps^11, polynomial in n of order 18\n    _f2(365173, 0x141eb92882aa0), _f2(660579, 0x721db1cc80890),\n    _f2(1339643, 0x6f3cff39e7d00), _f2(3240370, 0xc29100e665970),\n    _f2(10762711, 0xac38fa6376f60), _f2(83769430, 0x6edf90fa38050),\n    -_f2(460180081, 0xa7a2c15d05240), _f2(445039582, 0xb96af8d66e930),\n    _f2(109020126, 0x840edc5d1e420), -_f2(257005247, 0x2ec795996fff0),\n    _f2(93028106, 0x54adfb574be80), -_f2(52565819, 0x1d828e2b6cf10),\n    _f2(33879206, 0x109475f98e8e0), -_f2(23088279, 0x158dbde3c1830),\n    _f2(15975944, 0x7a6ca24c70f40), -_f2(10806612, 0x3c0d699b76f50),\n    _f2(6721635, 0xd5a36326ddda0), -_f2(3228909, 0xe44dc20d06870),\n    _f2(2345355, 0x81bdf10588059), _f2(4101812237, 0x723c5cdbe4f41),\n    # C4[0], coeff of eps^10, polynomial in n of order 19\n    _f2(142358, 0x43f28ef2bce60), _f2(224104, 0xc49bf70fb8540),\n    _f2(374789, 0x29edb81ed2220), _f2(679606, 0x56dce126b3a00),\n    _f2(1381751, 0x3315a15e701e0), _f2(3351469, 0xe4cb186e3aec0),\n    _f2(11166107, 0x295c18ed1d5a0), _f2(87224183, 0xbf27e3cc5cb80),\n    -_f2(481408924, 0xf800e4fbbfaa0), _f2(469519077, 0x9e18ca33e7840),\n    _f2(110970854, 0x606788cedf920), -_f2(269315695, 0x90dadb20d6300),\n    _f2(96606791, 0x8c213171618e0), -_f2(53972000, 0xd509f5454de40),\n    _f2(34191407, 0x9021dc5d4cca0), -_f2(22654105, 0x9f8b9187f1180),\n    _f2(14912791, 0x946e9b2907c60), -_f2(9121084, 0x6067cd3f714c0),\n    _f2(4341360, 0x73b562399020), _f2(1011849, 0x75de66a5bdb46),\n    _f2(4101812237, 0x723c5cdbe4f41),\n    # C4[0], coeff of eps^9, polynomial in n of order 20\n    _f2(66631, 0x784cbdfb1b2c0), _f2(96606, 0x3419bb8e05f90),\n    _f2(145459, 0xb79bffbfb42e0), _f2(229589, 0x824d22506cd30),\n    _f2(385010, 0x35e34fd0f4f00), _f2(700134, 0x4df5413db48d0),\n    _f2(1427794, 0x581b23c083b20), _f2(3474469, 0x224df4c0f7670),\n    _f2(11618119, 0x6c8cba4306b40), _f2(91144571, 0x713d14f45fa10),\n    -_f2(505869523, 0xd3d937aa3bca0), _f2(498449385, 0x686859af477b0),\n    _f2(112524504, 0x2ca5b0e042780), -_f2(283533725, 0xba4eec11a6cb0),\n    _f2(100487121, 0xc424152de7ba0), -_f2(55236514, 0x8c4dd4ee50f10),\n    _f2(34077723, 0x322bbe9b9a3c0), -_f2(21528502, 0x2ca44d130cb70),\n    _f2(12851809, 0x7f1d30d5603e0), -_f2(6038295, 0xecbfc0da7fdd0),\n    _f2(4313665, 0xa0fbedf62e95b), _f2(4101812237, 0x723c5cdbe4f41),\n    # C4[0], coeff of eps^8, polynomial in n of order 21\n    _f2(34939, 0x4781a8598a880), _f2(47986, 0x870a153a0ba00),\n    _f2(67643, 0xf93c5a3d5fb80), _f2(98366, 0xdef5527b5d100),\n    _f2(148567, 0x565e4f7b51e80), _f2(235242, 0x766e64b79c800),\n    _f2(395796, 0x5614c84bc3180), _f2(722239, 0xc9f1a6fcbf00),\n    _f2(1478257, 0xd3352c2795480), _f2(3611438, 0xfdbc40cced600),\n    _f2(12129091, 0x5ec9e3d72a780), _f2(95645231, 0xe79e249b02d00),\n    -_f2(534473300, 0x6333290e9b580), _f2(533336700, 0xd7635e240e400),\n    _f2(113268651, 0x31e09daaa5d80), -_f2(300181610, 0x6cd38634ee500),\n    _f2(104606327, 0x6a6e0bd3d0080), -_f2(56090968, 0xcfc000b8f0e00),\n    _f2(33084425, 0x428f85e945380), -_f2(19025074, 0x3fea5ea1f7700),\n    _f2(8768855, 0x59c11511e7680), _f2(1959911, 0x57aea52b92dd8),\n    _f2(4101812237, 0x723c5cdbe4f41),\n    # C4[0], coeff of eps^7, polynomial in n of order 22\n    _f2(19712, 0xac93bc6991f60), _f2(26064, 0x47e63bb6f7b10),\n    _f2(35129, 0x85349dd791940), _f2(48412, 0xcf2b50a5e4170),\n    _f2(68486, 0xf23457a2e7b20), _f2(99959, 0x1aee9379bdd0),\n    _f2(151547, 0xc976e86422100), _f2(240911, 0x67a8290f88c30),\n    _f2(407002, 0x79f859786e6e0), _f2(745880, 0xf6e3b80f24890),\n    _f2(1533569, 0xcfffb4a9fa8c0), _f2(3764807, 0xab1a08cbd8ef0),\n    _f2(12712489, 0x4098eb8542a0), _f2(100884327, 0x9a754746dfb50),\n    -_f2(568536969, 0xbcc82f5b36f80), _f2(576497219, 0x10ca042b229b0),\n    _f2(112392819, 0xaecaa4a6c6e60), -_f2(319979712, 0xfe05e4aae49f0),\n    _f2(108728942, 0x9b1cd9ac3b840), -_f2(55904982, 0xfebe8a174c390),\n    _f2(30158727, 0xd0df7149f4a20), -_f2(13482566, 0x2ca2af46da730),\n    _f2(9304222, 0x6328f1d67a7f5), _f2(4101812237, 0x723c5cdbe4f41),\n    # C4[0], coeff of eps^6, polynomial in n of order 23\n    _f2(11639, 0x4298ebe4bc020), _f2(14966, 0xe9089607c0a40),\n    _f2(19534, 0x1996a62965260), _f2(25928, 0xdcaffa7bfcb80),\n    _f2(35089, 0x59fa64f7d88a0), _f2(48563, 0x32ed377221cc0),\n    _f2(69004, 0xe5c9403173ae0), _f2(101181, 0xf483b00105600),\n    _f2(154143, 0xf39432e434120), _f2(246274, 0xfc90899a3cf40),\n    _f2(418255, 0xdad9486cf7360), _f2(770731, 0xbf0321b55e080),\n    _f2(1593877, 0xd61fe95ba9a0), _f2(3937200, 0x3820413b3e1c0),\n    _f2(13385919, 0xf48ca237dbbe0), _f2(107086956, 0x9d1b10f932b00),\n    -_f2(610048075, 0x6c1b2715a7de0), _f2(631706048, 0xcac1d46451440),\n    _f2(108187733, 0xaf9fd1440d460), -_f2(343908890, 0x37b3c0b50a80),\n    _f2(112109635, 0x3a73d439f8aa0), -_f2(53028119, 0x15d1799f5d940),\n    _f2(22454404, 0x49a70d2177ce0), _f2(4553016, 0x22f700960daaa),\n    _f2(4101812237, 0x723c5cdbe4f41),\n    # C4[0], coeff of eps^5, polynomial in n of order 24\n    _f2(7030, 0x634f92bbfec80), _f2(8852, 0x183ea9c784b10),\n    _f2(11280, 0x864427e0ea420), _f2(14569, 0x4ed71f4155e30),\n    _f2(19103, 0x13b2c1ad2ffc0), _f2(25480, 0x35983eb20bf50),\n    _f2(34659, 0x18ad59c5f9360), _f2(48227, 0x95f2c0574270),\n    _f2(68917, 0x8c5b3ac32f300), _f2(101660, 0x272f49f96bb90),\n    _f2(155850, 0xbc628b339b2a0), _f2(250657, 0x122490d07feb0),\n    _f2(428675, 0x21f5a97506640), _f2(795748, 0x8d9dd2ee8dfd0),\n    _f2(1658420, 0x22b44d2c5a1e0), _f2(4130702, 0x814b60cb632f0),\n    _f2(14171990, 0xb8691b29bf980), _f2(114585240, 0x7599d8275cc10),\n    -_f2(662180135, 0x55c1167b3fee0), _f2(705602404, 0xf6219ee07f30),\n    _f2(96655880, 0xe42cfbbc64cc0), -_f2(373149978, 0xd8d5a94d3dfb0),\n    _f2(112272021, 0x704341a757060), -_f2(42251989, 0xbf5a94cca7c90),\n    _f2(26498553, 0xea37274059c77), _f2(4101812237, 0x723c5cdbe4f41),\n    # C4[0], coeff of eps^4, polynomial in n of order 25\n    _f2(4244, 0x3972351df5940), _f2(5257, 0xaa8f87b5d5600),\n    _f2(6578, 0xed6cb3b3fa2c0), _f2(8324, 0xb4008d853180),\n    _f2(10662, 0x703b07259b440), _f2(13846, 0x8f2f6ca125d00),\n    _f2(18261, 0x3a455b4269dc0), _f2(24508, 0x5045fb81ae880),\n    _f2(33557, 0x1b3e945f36f40), _f2(47022, 0x9499ec44e400),\n    _f2(67699, 0x7a940285938c0), _f2(100662, 0x403646e1e5f80),\n    _f2(155637, 0xf20897fb50a40), _f2(252593, 0x7106d86756b00),\n    _f2(436178, 0xe720d891ff3c0), _f2(818051, 0x1d79595b01680),\n    _f2(1723706, 0xc365c92e70540), _f2(4344105, 0xb055b91247200),\n    _f2(15096896, 0xe96c54f834ec0), _f2(123888911, 0x435c586708d80),\n    -_f2(730395130, 0x8d07d85ee1fc0), _f2(811137162, 0xd7ccf03d27900),\n    _f2(66848989, 0xdd39a234bc9c0), -_f2(407950245, 0xd67367b7fbb80),\n    _f2(99073631, 0x21cb91dfe1b40), _f2(14205410, 0x589c3f44ce7ac),\n    _f2(4101812237, 0x723c5cdbe4f41),\n    # C4[0], coeff of eps^3, polynomial in n of order 26\n    _f2(2481, 0x8d2c27b46b620), _f2(3034, 0xe44720f3fdf90),\n    _f2(3743, 0xf82fc54a92780), _f2(4662, 0xb922ac44f6b70),\n    _f2(5867, 0xae02c805f08e0), _f2(7469, 0x40a687e9b4d50),\n    _f2(9629, 0xbb2099bca6640), _f2(12592, 0xa0727e14e5130),\n    _f2(16731, 0xdc4cfea134ba0), _f2(22636, 0xbf84f9dc44310),\n    _f2(31263, 0xfe99294d5c500), _f2(44220, 0x78f2e666feef0),\n    _f2(64313, 0xe77c1f84fde60), _f2(96684, 0x43c9282e120d0),\n    _f2(151281, 0x84eb0984fa3c0), _f2(248729, 0xa2c4a502aa4b0),\n    _f2(435615, 0xd80deb212120), _f2(829647, 0x194fc60e84690),\n    _f2(1777619, 0x17dfea7bc6280), _f2(4562307, 0x417bb8824d270),\n    _f2(16175470, 0xd3a7db47373e0), _f2(135804489, 0xbb999e2601450),\n    -_f2(825156505, 0xa8162cc9f9ec0), _f2(977623624, 0xd8c5ee7f4d830),\n    -_f2(20397512, 0x4ab8f862cc960), -_f2(435632583, 0xf2b7943e115f0),\n    _f2(143237887, 0xa8277df5ccab1), _f2(4101812237, 0x723c5cdbe4f41),\n    # C4[0], coeff of eps^2, polynomial in n of order 27\n    _f(0x52cac993243497e0), _f(0x6437dfaee57b9d40),\n    _f(0x7a3f9cad4d2f48a0), _f2(2405, 0xee01eec3f2b00),\n    _f2(2986, 0x65a22988df560), _f2(3743, 0xe8ba104bd58c0),\n    _f2(4745, 0x82561551e620), _f2(6086, 0xa7581d3ddee80),\n    _f2(7912, 0x8561dfdd262e0), _f2(10440, 0x7aa2aab74b440),\n    _f2(14008, 0x9b1a2c148b3a0), _f2(19155, 0xcd3b8407d7200),\n    _f2(26767, 0x9792b4f9c2060), _f2(38350, 0xb50c17257efc0),\n    _f2(56574, 0xaf828f4edf120), _f2(86399, 0xb1bc40483f580),\n    _f2(137581, 0x7d29442656de0), _f2(230687, 0xc9059cc5d4b40),\n    _f2(413025, 0xcba5d91bbdea0), _f2(806439, 0xbad85d457b900),\n    _f2(1777226, 0xdb254a1088b60), _f2(4709200, 0x187f6563b06c0),\n    _f2(17312174, 0x4c53d944cbc20), _f2(151524377, 0x682a2ddefc80),\n    -_f2(970338799, 0x73aba5c04720), _f2(1287957204, 0xb756685e76240),\n    -_f2(416692036, 0xd1e73fe253660), -_f2(78129756, 0xe75b5bfa6fa32),\n    _f2(4101812237, 0x723c5cdbe4f41),\n    # C4[0], coeff of eps^1, polynomial in n of order 28\n    _f(0xb4c355cd41c92c0), _f(0xd8fea3a41cc7830),\n    _f(0x1064f0c6b9a6ad20), _f(0x13f7a88902ef1b10),\n    _f(0x1884a414973fcb80), _f(0x1e5fa2ae5243d7f0),\n    _f(0x25fe0bb384ddd9e0), _f(0x3006f6e3e0e25ad0),\n    _f(0x3d6c2c13c34ec440), _f(0x4f91f34825bd4fb0),\n    _f(0x688ffb74f98676a0), _f2(2233, 0xdec33bb086290),\n    _f2(3036, 0xe53843c2cdd00), _f2(4213, 0xb13e1137e3f70),\n    _f2(5984, 0xaa1cca8abe360), _f2(8732, 0xb9880d6c69250),\n    _f2(13152, 0x1eadcfcfd75c0), _f2(20566, 0x4e1752c3c0730),\n    _f2(33653, 0xf4262a5798020), _f2(58247, 0x3a420e3524a10),\n    _f2(108257, 0x7934f39e3ee80), _f2(221025, 0xaccc1c0dc06f0),\n    _f2(514222, 0xffbb852faace0), _f2(1456965, 0x29e8a4070e9d0),\n    _f2(5827860, 0xa7a2901c3a740), _f2(56821641, 0x6270fd1339eb0),\n    -_f2(416692036, 0xd1e73fe253660), _f2(625038055, 0x3adadfd37d190),\n    -_f2(273454149, 0x29bfc1ec86baf), _f2(1367270745, 0xd0bec99ea1a6b),\n    # C4[0], coeff of eps^0, polynomial in n of order 29\n    _f2(42171, 0xbca3d5a569b4), _f2(46862, 0xd0a41cdef9cf0),\n    _f2(52277, 0xa2d5316ac1b2c), _f2(58560, 0x6f94d669a7a28),\n    _f2(65892, 0x788629d238da4), _f2(74502, 0x6b99bdf690d60),\n    _f2(84681, 0x87b277eadbb1c), _f2(96804, 0x8c76c6701c898),\n    _f2(111359, 0x1427f62cd3d94), _f2(128987, 0x59921e2221dd0),\n    _f2(150546, 0xaa0136eb20f0c), _f2(177198, 0x7742592373f08),\n    _f2(210542, 0x4360b9bd64984), _f2(252821, 0x8a8c09196de40),\n    _f2(307248, 0x66986780ae6fc), _f2(378530, 0x79d0ac77ed78),\n    _f2(473750, 0x5114d83948174), _f2(603901, 0x80acdb5cb5eb0),\n    _f2(786661, 0x2afc1dbf812ec), _f2(1051686, 0xda8ab314e3e8),\n    _f2(1451326, 0xc0ede2017b564), _f2(2083956, 0x5d3b51a63af20),\n    _f2(3149615, 0xde5c8fc3f62dc), _f2(5099378, 0x12ae3e18b3258),\n    _f2(9106032, 0x45ee012c1b554), _f2(18940547, 0x20d0545bbdf90),\n    _f2(52086504, 0x9a3ce7fc4a6cc), _f2(312519027, 0x9d6d6fe9be8c8),\n    -_f2(1093816596, 0xa6ff07b21aebc),\n    _f2(2734541491, 0xa17d933d434d6),\n    _f2(4101812237, 0x723c5cdbe4f41),\n    # C4[1], coeff of eps^29, polynomial in n of order 0\n    917561, _f(273868982145),\n    # C4[1], coeff of eps^28, polynomial in n of order 1\n    -_f(125915776), _f(90505212), _f(0x73d4d30e25b),\n    # C4[1], coeff of eps^27, polynomial in n of order 2\n    -_f(0x2f7e4f2fca0), _f(0x161b06db8f0), _f(379339642199),\n    _f(0x145a25f15d59339),\n    # C4[1], coeff of eps^26, polynomial in n of order 3\n    -_f(0x780f9f651c0), _f(0x49cd6538080), -_f(0x275396e6f40),\n    _f(0x1c1406225ea), _f(0x1e2d6465e2b066f),\n    # C4[1], coeff of eps^25, polynomial in n of order 4\n    -_f(0x226e68a74f6c2c0), _f(0x178fbd94c6e4130),\n    -_f(0x10bafa7048ffb60), _f(0x7b204e43552d10),\n    _f(0x1ebd785c76c649), _f2(369943, 0xaebaf6655156d),\n    # C4[1], coeff of eps^24, polynomial in n of order 5\n    -_f(0x26adfa4c2bcf8500), _f(0x1be7e116f09bc400),\n    -_f(0x1641521374362300), _f(0xd7dd4a2b1831200),\n    -_f(0x7449d087ac65100), _f(0x525502d56a2a1d8),\n    _f2(4562638, 0xc0573436eb2eb),\n    # C4[1], coeff of eps^23, polynomial in n of order 6\n    -_f2(27299, 0x1e7fae46f2ae0), _f2(20250, 0xb050f61211530),\n    -_f2(17170, 0x1ccacfb407b40), _f2(11560, 0x5557506ac7a50),\n    -_f2(8300, 0x1ee1dfec0f3a0), _f2(3760, 0xc5da39149a170),\n    _f(0x3aaaad07e2dbe15f), _f2(141441801, 0x4a8f52a67aa75),\n    # C4[1], coeff of eps^22, polynomial in n of order 7\n    -_f2(223720, 0xada70de871dc0), _f2(168212, 0x95f7a36b8e780),\n    -_f2(147708, 0x4639d71413140), _f2(104570, 0x398040c96dd00),\n    -_f2(84304, 0x27ca2fe2f28c0), _f2(50205, 0xd862a9f308280),\n    -_f2(27426, 0xbe7e08935dc40), _f2(19210, 0x9794de13dcf52),\n    _f2(820362447, 0x7d3f45c59430d),\n    # C4[1], coeff of eps^21, polynomial in n of order 8\n    -_f2(1591044, 0x45108afb80980), _f2(1200725, 0xfaaefe8d2aff0),\n    -_f2(1074110, 0x244b18cc1fd20), _f2(779463, 0x6e55e2794e4d0),\n    -_f2(667443, 0x7f273db50d4c0), _f2(440073, 0xbd38cdf5ffbb0),\n    -_f2(320490, 0xb0902bc064460), _f2(142410, 0x1eb038cc00090),\n    _f2(35531, 0x5cce3f7afbb81), _f2(4101812237, 0x723c5cdbe4f41),\n    # C4[1], coeff of eps^20, polynomial in n of order 9\n    -_f2(6932123, 0xff59c6bb56f80), _f2(5207764, 0x9d4c81592dc00),\n    -_f2(4682178, 0xdef9cf054a880), _f2(3431350, 0xdcd7f0ab97d00),\n    -_f2(3036244, 0xeb9781cfe3980), _f2(2097463, 0x35c6f48ae00),\n    -_f2(1714507, 0xab45478b85280), _f2(997568, 0xe75b4df283f00),\n    -_f2(555001, 0x356f72a492380), _f2(383325, 0x3033ad4799914),\n    _f2(12305436712, 0x56b51693aedc3),\n    # C4[1], coeff of eps^19, polynomial in n of order 10\n    -_f2(10475274, 0x80e3f984eb560), _f2(7761418, 0x6cb2d37d31d50),\n    -_f2(6912729, 0x2574b8548f80), _f2(5061056, 0xbff13b9f8e7b0),\n    -_f2(4542234, 0x9c8561f8559a0), _f2(3202970, 0x45874de1c0010),\n    -_f2(2776395, 0x2331e9957c0), _f2(1780809, 0x24244086de270),\n    -_f2(1321308, 0xb7d4404aacde0), _f2(572110, 0xf0d923e3d0ad0),\n    _f2(142666, 0x15ad08c690505), _f2(12305436712, 0x56b51693aedc3),\n    # C4[1], coeff of eps^18, polynomial in n of order 11\n    -_f2(16991539, 0x3bfa3a952a5c0), _f2(12232630, 0xc216625651e80),\n    -_f2(10582386, 0xca84c044c7740), _f2(7659664, 0x22fef68736200),\n    -_f2(6852368, 0xbf4b993050cc0), _f2(4854746, 0x78ae9dfa88580),\n    -_f2(4332124, 0x5850c11d91e40), _f2(2896859, 0x8330e6242d100),\n    -_f2(2410777, 0x3c4e4b27563c0), _f2(1359574, 0x6f5bc7e308c80),\n    -_f2(775169, 0xf705a84369540), _f2(525423, 0x9fd72933d2d3a),\n    _f2(12305436712, 0x56b51693aedc3),\n    # C4[1], coeff of eps^17, polynomial in n of order 12\n    -_f2(31605635, 0x9b2a6245129c0), _f2(21349095, 0xec111ef51efd0),\n    -_f2(17343382, 0xc6b59d854f620), _f2(12224940, 0xad54b9902f0),\n    -_f2(10665275, 0xcb2c9d1586680), _f2(7495419, 0x2bbe593f97c10),\n    -_f2(6731026, 0x5bd11498926e0), _f2(4567553, 0xbb95797dfef30),\n    -_f2(4019270, 0xe17fb3dce340), _f2(2483542, 0x18261977df050),\n    -_f2(1889445, 0x252a3b83f47a0), _f2(789608, 0x3727b34041370),\n    _f2(196748, 0x5030b26b63d7f), _f2(12305436712, 0x56b51693aedc3),\n    # C4[1], coeff of eps^16, polynomial in n of order 13\n    -_f2(83651327, 0x7df35b769ce00), _f2(46183264, 0x6a662d0fec800),\n    -_f2(32523895, 0xbf44a3e60200), _f2(21575930, 0xbd1dba7599c00),\n    -_f2(17706525, 0xdbcb8c6749600), _f2(12151631, 0x7c587583d3000),\n    -_f2(10707728, 0xa79806e6f4a00), _f2(7245171, 0x8aa6d7e27c400),\n    -_f2(6517082, 0x9ff2c462fde00), _f2(4168671, 0x7a21919979800),\n    -_f2(3551918, 0x26047c5101200), _f2(1918361, 0x786d4fd8aec00),\n    -_f2(1131511, 0x7e7a26769a600), _f2(747310, 0xbb693903a2f10),\n    _f2(12305436712, 0x56b51693aedc3),\n    # C4[1], coeff of eps^15, polynomial in n of order 14\n    -_f2(63372442, 0x2cb5338504ea0), _f2(236021120, 0xed659df2db350),\n    -_f2(86667901, 0x5273be9be40), _f2(47209611, 0xc1161d91d1e30),\n    -_f2(33537857, 0x3d1f3cdba35e0), _f2(21739691, 0xd5c3b2c9df710),\n    -_f2(18074666, 0x2123c601d8980), _f2(11984705, 0x3d2e52a8729f0),\n    -_f2(10682808, 0x1cfcfab158d20), _f2(6875060, 0xeec2e9924a2d0),\n    -_f2(6158904, 0xf3892aedc14c0), _f2(3612073, 0x775a08e9d4db0),\n    -_f2(2844696, 0x4fdad4b74f460), _f2(1130419, 0xe52285ff91690),\n    _f2(281319, 0xf8ed6ce679421), _f2(12305436712, 0x56b51693aedc3),\n    # C4[1], coeff of eps^14, polynomial in n of order 15\n    _f2(377918798, 0xab0ca9f0672c0), -_f2(418618018, 0x8099eba53f80),\n    -_f2(60854873, 0x3eafa33f453c0), _f2(245263030, 0xf5560cf897d00),\n    -_f2(90083330, 0xb4182a1e90640), _f2(48226005, 0xa87e22e4ae980),\n    -_f2(34666917, 0x2b03feac26cc0), _f2(21804113, 0xa9bac4593e00),\n    -_f2(18434597, 0x75e58711b4f40), _f2(11683388, 0x18da60c9eb280),\n    -_f2(10544255, 0x717858fde75c0), _f2(6335167, 0xce8110cc57f00),\n    -_f2(5568830, 0x1a6ca9ba6a840), _f2(2826076, 0xf4ab3cac7db80),\n    -_f2(1750284, 0x2ff80145eaec0), _f2(1113751, 0xd17a5fb748e66),\n    _f2(12305436712, 0x56b51693aedc3),\n    # C4[1], coeff of eps^13, polynomial in n of order 16\n    -_f2(7676111, 0x5b2a6c5f6c100), -_f2(64415807, 0x4cf1fd08a9430),\n    _f2(389009273, 0x614b445047d20), -_f2(437396877, 0xd309fa5941090),\n    -_f2(57368388, 0x6af986a1a0c0), _f2(255600151, 0x61702d3245910),\n    -_f2(94005962, 0x2924b0b2256a0), _f2(49188288, 0xa4967a4d0acb0),\n    -_f2(35935634, 0xccf0586b2e080), _f2(21713831, 0x3869a07cfee50),\n    -_f2(18759173, 0xcf3c8197a7a60), _f2(11187408, 0x277eed08021f0),\n    -_f2(10209411, 0xbc33094486040), _f2(5549613, 0x5f33e35304b90),\n    -_f2(4590963, 0x90f6e6e49ce20), _f2(1692490, 0x5de933ef26f30),\n    _f2(420297, 0x50d0b3d8c1d9b), _f2(12305436712, 0x56b51693aedc3),\n    # C4[1], coeff of eps^12, polynomial in n of order 17\n    -_f2(852919, 0x6a82cfa963080), -_f2(2188759, 0x20ca5d762f800),\n    -_f2(7786929, 0x3421dcca91f80), -_f2(65787035, 0x1d560be049100),\n    _f2(401061675, 0x8c48395cfc980), -_f2(458713135, 0x22175c326fa00),\n    -_f2(52544362, 0x54a9b8a28c580), _f2(267237346, 0x9f71e62ba7d00),\n    -_f2(98592445, 0x567d144d01c80), _f2(50019657, 0x7efcd81e48400),\n    -_f2(37374118, 0xabf7952238b80), _f2(21383288, 0xfc61768bbcb00),\n    -_f2(18992011, 0x5234632e06280), _f2(10406178, 0xe1fef86250200),\n    -_f2(9523344, 0xe57e66503f180), _f2(4398013, 0x8a16c0de4d900),\n    -_f2(2932033, 0xa738784cb8880), _f2(1764194, 0xc6396b58af30c),\n    _f2(12305436712, 0x56b51693aedc3),\n    # C4[1], coeff of eps^11, polynomial in n of order 18\n    -_f2(210362, 0x76b369d3025e0), -_f2(399459, 0x1eaf9acef0ab0),\n    -_f2(856141, 0xe229f972ba700), -_f2(2206922, 0xef935c87bb50),\n    -_f2(7896496, 0x6b0bc697c0820), -_f2(67217074, 0x2cc6331df1df0),\n    _f2(414202467, 0x2b5605d0252c0), -_f2(483149583, 0xa02db175d690),\n    -_f2(45836711, 0xc18042256fa60), _f2(280420397, 0xa9af8baa076d0),\n    -_f2(104078404, 0x7a91f5b525380), _f2(50585814, 0x9d940e3bb2630),\n    -_f2(39015494, 0x6a69555b81ca0), _f2(20678727, 0x5f0f1f3a9390),\n    -_f2(19012332, 0x416957968b9c0), _f2(9200947, 0xc21b589061af0),\n    -_f2(8178296, 0xad1e8ab768ee0), _f2(2676456, 0xd6956da2a1850),\n    _f2(661843, 0xede00571b821d), _f2(12305436712, 0x56b51693aedc3),\n    # C4[1], coeff of eps^10, polynomial in n of order 19\n    -_f2(73282, 0x88acf774cdcc0), -_f2(119856, 0xfafc4232d6980),\n    -_f2(209310, 0xc95dad3d9d040), -_f2(398728, 0xc3246fdb30c00),\n    -_f2(857927, 0x8ca89fdf097c0), -_f2(2222415, 0x7f22a8f79ee80),\n    -_f2(8002412, 0xa401cae100b40), -_f2(68698832, 0xcf05dd2d1e900),\n    _f2(428572510, 0x4af905b8fd40), -_f2(511480829, 0xaa7af93dad380),\n    -_f2(36412636, 0xa51695c145640), _f2(295430858, 0x62539c3ab7a00),\n    -_f2(110834541, 0xf7ac6a286ddc0), _f2(50648730, 0xf42d6a1912780),\n    -_f2(40882711, 0xc825af61d7140), _f2(19389515, 0xc578a6be65d00),\n    -_f2(18548541, 0x30b0433e6e8c0), _f2(7353872, 0xa4f0c77ab4280),\n    -_f2(5517208, 0xc642445621c40), _f2(3035548, 0x619b33f1391d2),\n    _f2(12305436712, 0x56b51693aedc3),\n    # C4[1], coeff of eps^9, polynomial in n of order 20\n    -_f2(31116, 0x5ced59f2a6a40), -_f2(46466, 0x39ef1648a3c30),\n    -_f2(72339, 0x13bec712995a0), -_f2(118591, 0xe96704ee23c10),\n    -_f2(207681, 0xf3272ddf69500), -_f2(396975, 0x5586a3fda15f0),\n    -_f2(857776, 0x96a9e394d3460), -_f2(2234014, 0x9c760527155d0),\n    -_f2(8101033, 0x1f3b77f93fc0), -_f2(70217181, 0xc7476a97287b0),\n    _f2(444320933, 0x84d59896b7ce0), -_f2(544755366, 0x60ab42e093790),\n    -_f2(22958170, 0x5fc77e584ca80), _f2(312550991, 0xea91e4bc80e90),\n    -_f2(119474190, 0x655c7a979e1e0), _f2(49778595, 0x69cfb591beb0),\n    -_f2(42938053, 0xad555dfab9540), _f2(17185991, 0x9567a8e814cd0),\n    -_f2(16947236, 0xc941a0517b0a0), _f2(4507394, 0xb6bfddcb2cf0),\n    _f2(1103154, 0xee71952935057), _f2(12305436712, 0x56b51693aedc3),\n    # C4[1], coeff of eps^8, polynomial in n of order 21\n    -_f2(15013, 0x669ca85dbff00), -_f2(21081, 0x7f4d799198400),\n    -_f2(30470, 0xbdb587d74d900), -_f2(45587, 0xe4badb51b1a00),\n    -_f2(71124, 0x646ea35b6300), -_f2(116891, 0x8adb62aa4d000),\n    -_f2(205315, 0x1aa2ab2ec7d00), -_f2(393884, 0x4b8d8eda78600),\n    -_f2(855000, 0x2faa553050700), -_f2(2239966, 0xb31164c141c00),\n    -_f2(8186764, 0x97347e701e100), -_f2(71742883, 0x7f111739b7200),\n    _f2(461586973, 0x9a516d5401500), -_f2(584418823, 0xe1245bd6e6800),\n    -_f2(3315305, 0x14110f9c0500), _f2(331936814, 0x28269ca022200),\n    -_f2(131069117, 0x7ee7ad0730f00), _f2(47184778, 0x227a729454c00),\n    -_f2(44897669, 0x9cd1b2a1e900), _f2(13574545, 0xcd96a182a3600),\n    -_f2(12485695, 0x45db16a057300), _f2(5879734, 0x70bef82b8988),\n    _f2(12305436712, 0x56b51693aedc3),\n    # C4[1], coeff of eps^7, polynomial in n of order 22\n    -_f2(7900, 0x638c66d8a8320), -_f2(10613, 0xf2ac3092c9cb0),\n    -_f2(14565, 0xe107ae27501c0), -_f2(20489, 0xead89ce414d0),\n    -_f2(29670, 0x849ce08edf860), -_f2(44482, 0xeb1f022729ef0),\n    -_f2(69562, 0xbdfcfee35b00), -_f2(114632, 0x975e8fa16f10),\n    -_f2(201989, 0x9411d71111da0), -_f2(389021, 0x33d7ff034b930),\n    -_f2(848628, 0xc0285ec233440), -_f2(2237713, 0xb97d9ca55b150),\n    -_f2(8250880, 0x9132887d792e0), -_f2(73221392, 0xf1ffe05c8b70),\n    _f2(480452831, 0x383b5471fd280), -_f2(632496874, 0xca3591eba7b90),\n    _f2(26233104, 0x13df159bb07e0), _f2(353203487, 0x101c2c33c4a50),\n    -_f2(147596513, 0x7a337ff05e6c0), _f2(41406718, 0x88562e0e69230),\n    -_f2(45513246, 0x22b5bfcbced60), _f2(7934370, 0xa8c8e9d8c2810),\n    _f2(1869414, 0xdc5c61854a479), _f2(12305436712, 0x56b51693aedc3),\n    # C4[1], coeff of eps^6, polynomial in n of order 23\n    -_f2(4406, 0xf939ae5c97c40), -_f2(5729, 0xf863eba5bf80),\n    -_f2(7570, 0xa927e082c4c0), -_f2(10189, 0xdc3d2b5930900),\n    -_f2(14011, 0xfd72406188940), -_f2(19751, 0x4ee9330f94280),\n    -_f2(28665, 0xa6c18d00fb1c0), -_f2(43078, 0xe8ed052a45400),\n    -_f2(67543, 0xd4150add2640), -_f2(111634, 0xb28e55bb02580),\n    -_f2(197389, 0xccdd68505cec0), -_f2(381765, 0x22e00b9b89f00),\n    -_f2(837258, 0xa000eefe9340), -_f2(2223425, 0xd3d15b309a880),\n    -_f2(8279438, 0xc28db224c5bc0), -_f2(74551261, 0xb7816e54f2a00),\n    _f2(500824278, 0x3891b999befc0), -_f2(691847154, 0x918a2dd450b80),\n    _f2(72461747, 0xa045596356740), _f2(374046829, 0x41b777218cb00),\n    -_f2(172833056, 0x62b9485f4dd40), _f2(29915148, 0x80284d25e7180),\n    -_f2(39423763, 0x40d338467c5c0), _f2(13659048, 0x68e501c228ffe),\n    _f2(12305436712, 0x56b51693aedc3),\n    # C4[1], coeff of eps^5, polynomial in n of order 24\n    -_f2(2545, 0x1363104362d80), -_f2(3226, 0xe67b1424a4830),\n    -_f2(4144, 0x8c711302fa660), -_f2(5400, 0xc1bfe2853af90),\n    -_f2(7153, 0xb2c26c1682b40), -_f2(9653, 0x9e8ef4e7cf0f0),\n    -_f2(13308, 0xeb09aee491820), -_f2(18810, 0x561040fe22850),\n    -_f2(27375, 0xc35e0fb3fc900), -_f2(41260, 0x7d7f41fc271b0),\n    -_f2(64893, 0xc7a96414399e0), -_f2(107622, 0xe02e2157de910),\n    -_f2(191035, 0x6ce8a0a1be6c0), -_f2(371181, 0x96988a373aa70),\n    -_f2(818768, 0xa91a46aa60ba0), -_f2(2191167, 0x9fde37effd1d0),\n    -_f2(8249435, 0xe27cdc35b6480), -_f2(75540143, 0x55cc77d97b30),\n    _f2(522119910, 0xf5aa540a8b2a0), -_f2(766397212, 0x64559a510c290),\n    _f2(148547296, 0x8152775e2ddc0), _f2(385247751, 0x81b301a133c10),\n    -_f2(213402544, 0x90fce845e3f20), _f2(10198756, 0x255c7c31664b0),\n    _f2(1365904, 0xd74a19c69db33), _f2(12305436712, 0x56b51693aedc3),\n    # C4[1], coeff of eps^4, polynomial in n of order 25\n    -_f(0x5cd20bbc3c672180), -_f(0x73720b2d98187c00),\n    -_f2(2321, 0xc4eb857568680), -_f2(2952, 0xb2617088c8f00),\n    -_f2(3804, 0x417bd8fa2e380), -_f2(4973, 0x5ec86f601d200),\n    -_f2(6609, 0x998272f30a880), -_f2(8950, 0x197c7ab46b500),\n    -_f2(12382, 0xcc481e2a44580), -_f2(17565, 0x5f7861969a800),\n    -_f2(25660, 0x4a6f330e22a80), -_f2(38825, 0xe447100991b00),\n    -_f2(61313, 0x47573aa0ec780), -_f2(102123, 0xa55bb6037e00),\n    -_f2(182121, 0xfb4d0590e8c80), -_f2(355742, 0x340be91b74100),\n    -_f2(789743, 0xf318e4285e980), -_f2(2131260, 0x2c59b0f82d400),\n    -_f2(8121193, 0x3f9cc7c594e80), -_f2(75808472, 0x814742dd4a700),\n    _f2(542406027, 0xe15955752d480), -_f2(860719085, 0xb088c959b2a00),\n    _f2(281794203, 0x6d691a09a0f80), _f2(349671639, 0x4a19c69db3300),\n    -_f2(268081590, 0x1f35e51280d80), _f2(42616231, 0x9d4bdce6b704),\n    _f2(12305436712, 0x56b51693aedc3),\n    # C4[1], coeff of eps^3, polynomial in n of order 26\n    -_f(0x34f88b61ee2c2e60), -_f(0x40e8b73250ad02b0),\n    -_f(0x50402824a1190680), -_f(0x643133a56bf6de50),\n    -_f(0x7e70b50d7e53aea0), -_f2(2583, 0x89ee9103c6bf0),\n    -_f2(3343, 0x2d56b6f20aac0), -_f2(4390, 0x9150bee746f90),\n    -_f2(5862, 0xecb9ee1767ee0), -_f2(7978, 0x9b4551158ad30),\n    -_f2(11096, 0x13774a5e7af00), -_f2(15825, 0x3f23db737e8d0),\n    -_f2(23248, 0xf45a340cbf20), -_f2(35380, 0xaf4478627e670),\n    -_f2(56209, 0x8a81f32e3340), -_f2(94205, 0x2f98ae2576a10),\n    -_f2(169093, 0xeae4ad4ee8f60), -_f2(332577, 0xf0ed8664037b0),\n    -_f2(743995, 0x906300fb45780), -_f2(2026493, 0x9c6e844791350),\n    -_f2(7821602, 0x7531c16940fa0), -_f2(74557824, 0x1ed43b2e7c0f0),\n    _f2(555703654, 0x34418f385c440), -_f2(974709694, 0x84f4a67130490),\n    _f2(527421389, 0x42f7f1faaa020), _f2(94702735, 0xa411a5cab5dd0),\n    -_f2(117194635, 0x5b0909f7a774b),\n    _f2(12305436712, 0x56b51693aedc3),\n    # C4[1], coeff of eps^2, polynomial in n of order 27\n    -_f(0x1bd57a8f504dd3c0), -_f(0x21b6ff10b9172180),\n    -_f(0x292825cda3a88940), -_f(0x32aacbfadedfca00),\n    -_f(0x3ef38a62fa0322c0), -_f(0x4f013a1cfd80d280),\n    -_f(0x64414a4729c69840), -_f2(2060, 0x90ead26a03300),\n    -_f2(2683, 0x237c6d92be1c0), -_f2(3547, 0x3d9a05c33e380),\n    -_f2(4770, 0x6ec9da59bf740), -_f2(6541, 0x1657e411dc00),\n    -_f2(9170, 0x1a8b4944fd0c0), -_f2(13190, 0xb069410801480),\n    -_f2(19554, 0x9e393a3b06640), -_f2(30047, 0xba30505448500),\n    -_f2(48224, 0x707d4f4f6afc0), -_f2(81689, 0xf05ca40b52580),\n    -_f2(148265, 0xab90de58ba540), -_f2(294962, 0x64373b047ee00),\n    -_f2(667587, 0xc0c688fa83ec0), -_f2(1840377, 0xc842d822d680),\n    -_f2(7199121, 0xfc41489b57440), -_f2(69934327, 0xdb9ec152bd700),\n    _f2(541991040, 0xe60e5a413c240), -_f2(1060670639, 0x2d9274118e780),\n    _f2(833384073, 0xa3ce7fc4a6cc0), -_f2(234389270, 0xb61213ef4ee96),\n    _f2(12305436712, 0x56b51693aedc3),\n    # C4[1], coeff of eps^1, polynomial in n of order 28\n    -_f(0xb4c355cd41c92c0), -_f(0xd8fea3a41cc7830),\n    -_f(0x1064f0c6b9a6ad20), -_f(0x13f7a88902ef1b10),\n    -_f(0x1884a414973fcb80), -_f(0x1e5fa2ae5243d7f0),\n    -_f(0x25fe0bb384ddd9e0), -_f(0x3006f6e3e0e25ad0),\n    -_f(0x3d6c2c13c34ec440), -_f(0x4f91f34825bd4fb0),\n    -_f(0x688ffb74f98676a0), -_f2(2233, 0xdec33bb086290),\n    -_f2(3036, 0xe53843c2cdd00), -_f2(4213, 0xb13e1137e3f70),\n    -_f2(5984, 0xaa1cca8abe360), -_f2(8732, 0xb9880d6c69250),\n    -_f2(13152, 0x1eadcfcfd75c0), -_f2(20566, 0x4e1752c3c0730),\n    -_f2(33653, 0xf4262a5798020), -_f2(58247, 0x3a420e3524a10),\n    -_f2(108257, 0x7934f39e3ee80), -_f2(221025, 0xaccc1c0dc06f0),\n    -_f2(514222, 0xffbb852faace0), -_f2(1456965, 0x29e8a4070e9d0),\n    -_f2(5827860, 0xa7a2901c3a740), -_f2(56821641, 0x6270fd1339eb0),\n    _f2(416692036, 0xd1e73fe253660), -_f2(625038055, 0x3adadfd37d190),\n    _f2(273454149, 0x29bfc1ec86baf),\n    _f2(12305436712, 0x56b51693aedc3),\n    # C4[2], coeff of eps^29, polynomial in n of order 0\n    185528, _f(30429886905),\n    # C4[2], coeff of eps^28, polynomial in n of order 1\n    _f(17366491968), _f(4404238552), _f(0x74e318fa9c07f),\n    # C4[2], coeff of eps^27, polynomial in n of order 2\n    _f(412763643136), -_f(248137794944), _f(164642704408),\n    _f(0x4d882f0532d9e9),\n    # C4[2], coeff of eps^26, polynomial in n of order 3\n    _f(0x11462b92d913a0), -_f(0xdd4620ebadc40),\n    _f(0x5974730e46be0), _f(0x16bcec57851cc),\n    _f2(33547, 0x1cf91962af003),\n    # C4[2], coeff of eps^25, polynomial in n of order 4\n    _f(0xc83679b433c00), -_f(0xb29b6d58dfb00), _f(0x5f4e3bdd4de00),\n    -_f(0x3affd9960e900), _f(0x2665fb625f490),\n    _f2(15809, 0x8f200ee7e2a7d),\n    # C4[2], coeff of eps^24, polynomial in n of order 5\n    _f(0x67b92a8524a18e80), -_f(0x609d7d3ca356ae00),\n    _f(0x39db180d1b52d580), -_f(0x2fa1e9183dec9700),\n    _f(0x1294d8f2627edc80), _f(0x4bc94ddbc9bad70),\n    _f2(22813193, 0xc1b4051297e97),\n    # C4[2], coeff of eps^23, polynomial in n of order 6\n    _f2(24830, 0x3d0fb879bb600), -_f2(23212, 0xa100635ccdb00),\n    _f2(14957, 0x147cd156ba400), -_f2(13653, 0x51ea4b9c89d00),\n    _f2(7024, 0x2535370909200), -_f2(4511, 0x3af63b60c9f00),\n    _f2(2865, 0xf50f5adcce1f0), _f2(235736335, 0x7c44346acc6c3),\n    # C4[2], coeff of eps^22, polynomial in n of order 7\n    _f2(1046092, 0x25a6222f26060), -_f2(949436, 0x14a3a722f1840),\n    _f2(652845, 0xb96689ab42720), -_f2(615919, 0x6f1345ab50580),\n    _f2(356624, 0x982d38f2a9de0), -_f2(303839, 0x22c37d5c832c0),\n    _f2(113262, 0x286189b57e4a0), _f2(28978, 0x12ae8b059bc84),\n    _f2(6836353729, 0x13b9f01928417),\n    # C4[2], coeff of eps^21, polynomial in n of order 8\n    _f2(4643688, 0x71b79cbf7cc00), -_f2(3959056, 0x83e38a4f9d180),\n    _f2(2926140, 0x6f81ce5fc3900), -_f2(2722736, 0xdd03df5282c80),\n    _f2(1710940, 0xc70403130e600), -_f2(1602990, 0x9ebb76967a780),\n    _f2(787738, 0x6bf60987b1300), -_f2(530212, 0xcde2a88ab0280),\n    _f2(326645, 0xab9033855e368), _f2(20509061187, 0x3b2dd04b78c45),\n    # C4[2], coeff of eps^20, polynomial in n of order 9\n    _f2(2366152, 0x4fc26559c91c0), -_f2(1830925, 0x4d73259824200),\n    _f2(1477489, 0x62c9a90a52a40), -_f2(1299560, 0xe7bf798235180),\n    _f2(885946, 0x5cb0a99f5e2c0), -_f2(843740, 0x47153eb842100),\n    _f2(469359, 0x79db9d7cfb40), -_f2(417111, 0x1a4c5e2477080),\n    _f2(146559, 0x51b0aa3dcb3c0), _f2(37677, 0x6dd5ee66abd48),\n    _f2(6836353729, 0x13b9f01928417),\n    # C4[2], coeff of eps^19, polynomial in n of order 10\n    _f2(11390177, 0xa8f910291300), -_f2(7729638, 0x6f23cf47c2480),\n    _f2(6929266, 0x5fb765e065c00), -_f2(5514735, 0x5eb0876136380),\n    _f2(4148166, 0x27d6c40aa500), -_f2(3788609, 0xfef33001c8280),\n    _f2(2322601, 0x1de03c2bc2e00), -_f2(2237878, 0x77b7642b94180),\n    _f2(1037457, 0x571c66f013700), -_f2(742165, 0x8c39e6d5b6080),\n    _f2(439349, 0xf7cfa6e796fc8), _f2(20509061187, 0x3b2dd04b78c45),\n    # C4[2], coeff of eps^18, polynomial in n of order 11\n    _f2(19643005, 0x3eb0d373a0e0), -_f2(11359402, 0x98e8f09139c0),\n    _f2(11381255, 0xacc1b03fd73a0), -_f2(7834592, 0x92741bdd3b00),\n    _f2(6664656, 0xa317edb25b660), -_f2(5516050, 0x3ff87cc43bc40),\n    _f2(3774293, 0xd5e83edc68920), -_f2(3594547, 0xbec9f61701d80),\n    _f2(1908400, 0x61c5f793c0be0), -_f2(1786093, 0xfaf3f7a19bec0),\n    _f2(579905, 0x9d50696085ea0), _f2(150042, 0xa9efa9004c604),\n    _f2(20509061187, 0x3b2dd04b78c45),\n    # C4[2], coeff of eps^17, polynomial in n of order 12\n    _f2(38321815, 0x1e48683dc9800), -_f2(18616913, 0x727791f8dfa00),\n    _f2(20113440, 0xb841223d75400), -_f2(11495937, 0x9838f29931e00),\n    _f2(11261630, 0x21fd3747b1000), -_f2(7960716, 0x75135ee9c200),\n    _f2(6275150, 0xa8a2fa972cc00), -_f2(5471565, 0x945df446e600),\n    _f2(3293426, 0x6eab44c698800), -_f2(3257897, 0x559df659f8a00),\n    _f2(1401057, 0x756ea738a4400), -_f2(1086629, 0xf49cb94a8ae00),\n    _f2(610116, 0x479bdc6c290e0), _f2(20509061187, 0x3b2dd04b78c45),\n    # C4[2], coeff of eps^16, polynomial in n of order 13\n    _f2(102781113, 0x98fe5a9192500), -_f2(40336104, 0xccc089a851400),\n    _f2(40165652, 0x6e617f3b73300), -_f2(18616625, 0x95536d5576600),\n    _f2(20514709, 0xd39b96f5ec100), -_f2(11691503, 0x7c1154bb0b800),\n    _f2(10980290, 0x40d1adbe6cf00), -_f2(8104717, 0x4a433bfb60a00),\n    _f2(5726151, 0xc3b2b2965d00), -_f2(5331323, 0xa4559d80c5c00),\n    _f2(2689333, 0x7cf2f82446b00), -_f2(2678624, 0x7904ff2b8ae00),\n    _f2(779755, 0xfacbca777f900), _f2(203539, 0xb4670b88476e0),\n    _f2(20509061187, 0x3b2dd04b78c45),\n    # C4[2], coeff of eps^15, polynomial in n of order 14\n    -_f2(23295494, 0x8be82e34e6400), -_f2(256522224, 0x1264f586eb600),\n    _f2(109420782, 0x9692235ce1800), -_f2(40005401, 0x76f47ac799a00),\n    _f2(42210732, 0x9175627089400), -_f2(18637789, 0x360d04338fe00),\n    _f2(20777547, 0x32d7f69c1000), -_f2(11978808, 0x3c6fce691e200),\n    _f2(10467739, 0x890cbd2438c00), -_f2(8246695, 0x5d95a89294600),\n    _f2(4981450, 0x2e83f5dba0800), -_f2(4997884, 0x48d2490e42a00),\n    _f2(1949724, 0xd6b9d613a8400), -_f2(1687002, 0x42840cd678e00),\n    _f2(881316, 0x5154c853b06e0), _f2(20509061187, 0x3b2dd04b78c45),\n    # C4[2], coeff of eps^14, polynomial in n of order 15\n    -_f2(315852553, 0x127aa1fb9560), _f2(452067016, 0x32f06289dc340),\n    -_f2(36389203, 0xc905d2dd0bc20), -_f2(265701999, 0x414c3c9652f80),\n    _f2(117462481, 0xb44ff33f8ed20), -_f2(39375172, 0xb9e521c5c6240),\n    _f2(44443567, 0x98c20ae94660), -_f2(18737379, 0x9088d09ce7500),\n    _f2(20789662, 0x74772cb6e2fa0), -_f2(12399165, 0xc39cbc16e07c0),\n    _f2(9634015, 0x48be8ec7788e0), -_f2(8326007, 0x8f1246dddba80),\n    _f2(4012687, 0x8a9763f933220), -_f2(4283805, 0xe15bd5742d40),\n    _f2(1064918, 0x3e0322e890b60), _f2(281445, 0x189dacfa2913c),\n    _f2(20509061187, 0x3b2dd04b78c45),\n    # C4[2], coeff of eps^13, polynomial in n of order 16\n    _f2(4607575, 0xc9d7900c88800), _f2(44527228, 0x61b96ac1eb380),\n    -_f2(320302478, 0xa276d3450e900), _f2(471382647, 0x4d0623cc86a80),\n    -_f2(52535715, 0x404f1a5b09a00), -_f2(275262322, 0xf3348bb543e80),\n    _f2(127364360, 0xbf0504ec13500), -_f2(38376532, 0x74833ebc78780),\n    _f2(46801690, 0x6a3245e5c4400), -_f2(19021914, 0x3bda110f1b080),\n    _f2(20372666, 0xf7fc04d85300), -_f2(12992077, 0x825700022f980),\n    _f2(8374681, 0xba502a56d2200), -_f2(8187369, 0x8d48a8bba280),\n    _f2(2818780, 0x7113503f27100), -_f2(2834494, 0xf2038f04beb80),\n    _f2(1337917, 0xc906f381aecf8), _f2(20509061187, 0x3b2dd04b78c45),\n    # C4[2], coeff of eps^12, polynomial in n of order 17\n    _f2(388658, 0x19c7c6f8ea2c0), _f2(1117971, 0xaadcbdb38ac00),\n    _f2(4519560, 0xaee28ee393540), _f2(44278119, 0xe09b9f50af680),\n    -_f2(324493551, 0x5c00bae29840), _f2(492697628, 0x7d1cc3fd18100),\n    -_f2(72657626, 0xb42806bf185c0), -_f2(284925253, 0x57cc84a557480),\n    _f2(139770748, 0x33e950dc3acc0), -_f2(36961790, 0xef70c005baa00),\n    _f2(49119876, 0xa052562f03f40), -_f2(19681131, 0xbaa50226adf80),\n    _f2(19252422, 0xc3af9265b71c0), -_f2(13755373, 0x2f0960c0cd500),\n    _f2(6600104, 0x6565773f88440), -_f2(7462805, 0xbfb982e534a80),\n    _f2(1452711, 0x6b2cd84feb6c0), _f2(390635, 0x965de9321fbe8),\n    _f2(20509061187, 0x3b2dd04b78c45),\n    # C4[2], coeff of eps^11, polynomial in n of order 18\n    _f2(73868, 0xf53613318fd00), _f2(155158, 0x6bea1fc037e80),\n    _f2(370865, 0xe686995a3a800), _f2(1077531, 0xb6b00d00e5180),\n    _f2(4409046, 0x1d5f244685300), _f2(43860006, 0xf94485a638480),\n    -_f2(328226208, 0x254b380304200), _f2(516242826, 0x48cfde1d3d780),\n    -_f2(98028430, 0xc7227901d5700), -_f2(294125055, 0xf41dd5cbff580),\n    _f2(155591277, 0xc58331ae9d400), -_f2(35168366, 0x6c3820d072280),\n    _f2(51023141, 0xfcae9f00dff00), -_f2(21033813, 0x6b0840ce0ef80),\n    _f2(17035669, 0xa0ab037f7ea00), -_f2(14520825, 0x209891efc9c80),\n    _f2(4321952, 0xda1143d705500), -_f2(5322397, 0x9ed9b44796980),\n    _f2(2165443, 0xa5af00ad58358), _f2(20509061187, 0x3b2dd04b78c45),\n    # C4[2], coeff of eps^10, polynomial in n of order 19\n    _f2(19809, 0x63304b335a660), _f2(35566, 0xcb4164f348e40),\n    _f2(68577, 0xe86c972757e20), _f2(145245, 0xbc9cc7446e200),\n    _f2(350489, 0x7e29a3d4285e0), _f2(1029750, 0x45087f82835c0),\n    _f2(4270842, 0x2203011585da0), _f2(43220702, 0xa65b618eca980),\n    -_f2(331199124, 0xa89ccd5235aa0), _f2(542217711, 0x200e3727c5d40),\n    -_f2(130429686, 0x3b8b1d50d02e0), -_f2(301749371, 0x2c4d836f88f00),\n    _f2(176097282, 0x8ddfe73d104e0), -_f2(33280999, 0x8c12e2a85fb40),\n    _f2(51717673, 0x23cc103525ca0), -_f2(23558374, 0x76fe0e70fc780),\n    _f2(13250268, 0x69c1c450ca460), -_f2(14595460, 0xd8a80a3d5d3c0),\n    _f2(1848614, 0x7d3564e37c20), _f2(506231, 0x2a6100a6a6db4),\n    _f2(20509061187, 0x3b2dd04b78c45),\n    # C4[2], coeff of eps^9, polynomial in n of order 20\n    _f2(6397, 0xfcd62c9faa400), _f2(10440, 0x3fc8ff8e75700),\n    _f2(17841, 0xb7bede1dba00), _f2(32272, 0x7935213063d00),\n    _f2(62742, 0x8933a9bfd5000), _f2(134128, 0x223daf23d6300),\n    _f2(327129, 0xfca43cca0e600), _f2(973230, 0x31dda9e44900),\n    _f2(4098328, 0x3528b970ffc00), _f2(42289297, 0xe5d54d5326f00),\n    -_f2(332951092, 0xecfda756dee00), _f2(570709002, 0x2878cf4ff5500),\n    -_f2(172380399, 0x5788b53115800), -_f2(305626020, 0x9c65fcc7d8500),\n    _f2(202987914, 0xbd0aab0ad3e00), -_f2(32233434, 0x3f0406dec9f00),\n    _f2(49604551, 0xc747777555400), -_f2(27757216, 0x323bffb167900),\n    _f2(7652705, 0x1c15203ae6a00), -_f2(11782806, 0x2b7827f239300),\n    _f2(3811565, 0x362856b8e6d30), _f2(20509061187, 0x3b2dd04b78c45),\n    # C4[2], coeff of eps^8, polynomial in n of order 21\n    _f2(2297, 0xe5959dcaf9680), _f2(3515, 0xaf44e93439a00),\n    _f2(5557, 0xf844363205d80), _f2(9134, 0x3148872cf3100),\n    _f2(15730, 0x1f27208afe480), _f2(28695, 0xbe2e993314800),\n    _f2(56314, 0x2c7b05479ab80), _f2(121661, 0x287926e675f00),\n    _f2(300328, 0xfc8a376113280), _f2(906274, 0xf1fb199eef600),\n    _f2(3883000, 0x5f528c391f980), _f2(40968060, 0xe6e08c5558d00),\n    -_f2(332763533, 0x8282a4a507f80), _f2(601507851, 0xf6ba284c8a400),\n    -_f2(227453313, 0x642fd223ab880), -_f2(301473974, 0xbe5976c5a4500),\n    _f2(238209921, 0x57c5b91e6ce80), -_f2(34582562, 0x41ecac4f5ae00),\n    _f2(41696071, 0xee870caef9580), -_f2(33183269, 0xa456f79c1700),\n    _f2(1407347, 0x27b05f0931c80), _f2(329283, 0x26010fabff570),\n    _f2(20509061187, 0x3b2dd04b78c45),\n    # C4[2], coeff of eps^7, polynomial in n of order 22\n    _f(0x367dbe5da7953e00), _f(0x4f9a921ac6fb1900),\n    _f(0x773454548df74400), _f2(2938, 0xbc18faed4af00),\n    _f2(4681, 0x407a350a64a00), _f2(7756, 0xa0ed83ee90500),\n    _f2(13477, 0x2fbfd87edd000), _f2(24826, 0x9ea174e739b00),\n    _f2(49249, 0xd3391f1d95600), _f2(107696, 0xcac2013cff100),\n    _f2(269571, 0xe064d3a745c00), _f2(826840, 0x70825da398700),\n    _f2(3613882, 0x7ef0aa40a6200), _f2(39120270, 0xc5673698bdd00),\n    -_f2(329492011, 0x53f65ac991800), _f2(633695353, 0xfeb5c44027300),\n    -_f2(300630213, 0xecf09fbea9200), -_f2(280700646, 0xcee0a2073700),\n    _f2(282664342, 0x7b726e8a17400), -_f2(46720160, 0x11dfe8c55a100),\n    _f2(23527957, 0x90f427ad67a00), -_f2(33848503, 0x5eac35f0d4b00),\n    _f2(7456233, 0x7c1f0b332cab0), _f2(20509061187, 0x3b2dd04b78c45),\n    # C4[2], coeff of eps^6, polynomial in n of order 23\n    _f(0x14f52a063dc5fc20), _f(0x1d93a1e9ceb48740),\n    _f(0x2a911c303b723a60), _f(0x3ea26bba66a54980),\n    _f(0x5e84fad71b3608a0), _f2(2349, 0x85d3117e94bc0),\n    _f2(3776, 0x1c9d51cf2c6e0), _f2(6317, 0x5193932d16e00),\n    _f2(11091, 0xc7716ff97d520), _f2(20667, 0xe33c2c4a29040),\n    _f2(41523, 0x1a30a42ae9360), _f2(92100, 0xbd0a1f1419280),\n    _f2(234309, 0x70b77706661a0), _f2(732507, 0x72fafb4df54c0),\n    _f2(3276808, 0xe462aef209fe0), _f2(36551902, 0x4c4d10a4b700),\n    -_f2(321265885, 0x720bf168351e0), _f2(664675522, 0x65892c55e9940),\n    -_f2(398339257, 0x2b82ef41c13a0), -_f2(225754486, 0xf240500d62480),\n    _f2(330356701, 0xbb7252695baa0), -_f2(82401980, 0x37f104ae0a240),\n    -_f2(4970822, 0x52bf5cccc8720), -_f2(3278171, 0x9e4b710fe0e14),\n    _f2(20509061187, 0x3b2dd04b78c45),\n    # C4[2], coeff of eps^5, polynomial in n of order 24\n    _f(0x7d5242068d47400), _f(0xac3832c9e621080),\n    _f(0xf0840d5e59cf500), _f(0x155fabefd3362980),\n    _f(0x1f01ffac4c30b600), _f(0x2e0489bbd6aca280),\n    _f(0x461560bdbc05f700), _f(0x6df6210d29c3bb80),\n    _f2(2857, 0xf2e1b87d2f800), _f2(4836, 0xd8d8f4249b480),\n    _f2(8600, 0x17271d36df900), _f2(16248, 0x163bc1ffccd80),\n    _f2(33146, 0xc23750bad3a00), _f2(74792, 0x260310eab4680),\n    _f2(194024, 0xef2cdae46fb00), _f2(620545, 0xfcf47db535f80),\n    _f2(2853712, 0x7228ad7b17c00), _f2(32984640, 0x1c4ce82435880),\n    -_f2(304937768, 0x83ef272fd0300), _f2(687819348, 0xf9e0f9c397180),\n    -_f2(526420007, 0xa1ce2482e4200), -_f2(101220737, 0xb065c6f7c1580),\n    _f2(344186593, 0xf79ee4a13ff00), -_f2(151524377, 0x682a2ddefc80),\n    _f2(15298134, 0x380aba4a19708), _f2(20509061187, 0x3b2dd04b78c45),\n    # C4[2], coeff of eps^4, polynomial in n of order 25\n    _f(0x2b077c634ede840), _f(0x39e80232e455600),\n    _f(0x4f004399e9803c0), _f(0x6d6a8dd96e7d980),\n    _f(0x9a16639c690ff40), _f(0xdd0eb6a29ee1d00),\n    _f(0x143ca2e567649ac0), _f(0x1e583a687f6ce080),\n    _f(0x2ebb5ae27bca9640), _f(0x4a366ef6d0a8e400),\n    _f(0x7a244f6987aeb1c0), _f2(3355, 0xff6a995ee780),\n    _f2(6059, 0x95d9afc38ad40), _f2(11647, 0x91c4ac30bab00),\n    _f2(24220, 0xbe377a4d448c0), _f2(55835, 0xd9394a033ee80),\n    _f2(148417, 0x27a782b394440), _f2(488256, 0xe5126fdac7200),\n    _f2(2322515, 0xb040a0735fc0), _f2(28019858, 0x3d9464fe1f580),\n    -_f2(275064197, 0x290d46715a4c0), _f2(686424553, 0x6984a82213900),\n    -_f2(677745912, 0x9f6fb36960940), _f2(151524377, 0x682a2ddefc80),\n    _f2(169007958, 0xfd6a53329f240), -_f2(85232462, 0x13a97b9cd6e08),\n    _f2(20509061187, 0x3b2dd04b78c45),\n    # C4[2], coeff of eps^3, polynomial in n of order 26\n    _f(0xc4c78b5f73e700), _f(0x1046756e5efb980),\n    _f(0x15cbc98d9fba400), _f(0x1d9279681ffce80),\n    _f(0x28b2f34344c6100), _f(0x38e6214caec8380),\n    _f(0x50f0f0d0c655e00), _f(0x7563dc0de2d1880),\n    _f(0xadfad5eb325db00), _f(0x1083ab8775a8cd80),\n    _f(0x19c9d8efc1ad1800), _f(0x29945e7f0056e280),\n    _f(0x4594bf2102ba5500), _f(0x79a9d12705de9780),\n    _f2(3587, 0xb2b264e0cd200), _f2(7053, 0x1d58043372c80),\n    _f2(15040, 0x44c8073c3cf00), _f2(35667, 0x702872e47e180),\n    _f2(97902, 0x6929355be8c00), _f2(334186, 0x1d1de4e87f680),\n    _f2(1659947, 0xed2beccfc4900), _f2(21110207, 0x53559189eab80),\n    -_f2(222144335, 0x8c70c0703ba00), _f2(617753229, 0x694fabb034080),\n    -_f2(769277606, 0x6fd24e8e23d00), _f2(454573131, 0x1387e899cf580),\n    -_f2(104173009, 0x3479cff894d98),\n    _f2(20509061187, 0x3b2dd04b78c45),\n    # C4[2], coeff of eps^2, polynomial in n of order 27\n    _f(0x24546bc28a93e0), _f(0x2f6c4d745b8e40),\n    _f(0x3e90f252c210a0), _f(0x5380c389acd700),\n    _f(0x70da9adde57d60), _f(0x9aa08aca5a9fc0),\n    _f(0xd7127fe199fa20), _f(0x130248120008880),\n    _f(0x1b6103e1c56a6e0), _f(0x283fa247b6e3140),\n    _f(0x3c89da46fe8a3a0), _f(0x5d71643158b3a00),\n    _f(0x948b363af771060), _f(0xf445a32263b42c0),\n    _f(0x1a1d56e9fe070d20), _f(0x2ecb290f0241eb80),\n    _f(0x58a5da95527fb9e0), _f2(2876, 0x680343126d440),\n    _f2(6354, 0x3e35c062e36a0), _f2(15689, 0x7d2910c199d00),\n    _f2(45107, 0x47d6102c9a360), _f2(162386, 0x35cf6d6d5e5c0),\n    _f2(857038, 0x54e3334f72020), _f2(11655721, 0x4f45203874e80),\n    -_f2(131126864, 0xbbc9aa7b23320), _f2(378810942, 0x9046972ad7740),\n    -_f2(416692036, 0xd1e73fe253660), _f2(156259513, 0xceb6b7f4df464),\n    _f2(20509061187, 0x3b2dd04b78c45),\n    # C4[3], coeff of eps^29, polynomial in n of order 0\n    594728, _f(456448303575),\n    # C4[3], coeff of eps^28, polynomial in n of order 1\n    -_f(3245452288), _f(1965206256), _f(0x17609e98859b3),\n    # C4[3], coeff of eps^27, polynomial in n of order 2\n    -_f(0x15f49b7dd3600), _f(0x7876e24c6900), _f(0x1f5dd75c0b28),\n    _f2(4837, 0x68f14547adeb),\n    # C4[3], coeff of eps^26, polynomial in n of order 3\n    -_f(0x33418e8004000), _f(0x17b00d59dc000),\n    -_f(0x11669ade1c000), _f(0xa37322475bc0),\n    _f2(6709, 0x6c31d1e089667),\n    # C4[3], coeff of eps^25, polynomial in n of order 4\n    -_f(0xc3e38d2fc36800), _f(0x6a604d6faf7a00),\n    -_f(0x650b3de948f400), _f(0x20a6596010be00),\n    _f(0x88f534a1fae70), _f2(275086, 0x53fa9cf60167f),\n    # C4[3], coeff of eps^24, polynomial in n of order 5\n    -_f(0xdd5f9d233a5800), _f(0x8b724926c9e000),\n    -_f(0x8af41510346800), _f(0x3d05686ce77000),\n    -_f(0x2f9901c72df800), _f(0x1ae74f29ea4ce0),\n    _f2(223345, 0xf3eec944ed143),\n    # C4[3], coeff of eps^23, polynomial in n of order 6\n    -_f2(81630, 0xcf55ff9c68c00), _f2(60811, 0x59dd5ef6a6e00),\n    -_f2(57592, 0x6457f059a8800), _f2(30387, 0x2572e53b9c200),\n    -_f2(30167, 0xe11b4690d8400), _f2(9044, 0xd72699d03d600),\n    _f2(2392, 0x21f43a8f7f830), _f2(990092609, 0x9eb428d5a933),\n    # C4[3], coeff of eps^22, polynomial in n of order 7\n    -_f2(3070961, 0xf14af9164000), _f2(2767073, 0x4d2d51bbc4000),\n    -_f2(2322170, 0xf623e90f3c000), _f2(1476552, 0x4ed8bf53f8000),\n    -_f2(1490469, 0x7e13eaba44000), _f2(616004, 0x8b84c9ea6c000),\n    -_f2(517487, 0xf3178ed39c000), _f2(279040, 0x23dc4dd774ec0),\n    _f2(28712685662, 0x1fa68a0342ac7),\n    # C4[3], coeff of eps^21, polynomial in n of order 8\n    -_f2(3998482, 0x374a7520d6800), _f2(4351696, 0x89a9dbf785900),\n    -_f2(3077852, 0x4b8dc9fbd6e00), _f2(2436308, 0x9b47462d3fb00),\n    -_f2(2230379, 0xda399323b400), _f2(1147885, 0x7a5199072bd00),\n    -_f2(1196012, 0x91bb473d37a00), _f2(325643, 0x5e75ef9e35f00),\n    _f2(87110, 0x728c765d95698), _f2(28712685662, 0x1fa68a0342ac7),\n    # C4[3], coeff of eps^20, polynomial in n of order 9\n    -_f2(5536106, 0x41a6dc97e5400), _f2(6819318, 0x7020ae33aa000),\n    -_f2(3996497, 0x7d04a5d65ec00), _f2(4026336, 0x4a526eb153800),\n    -_f2(3081046, 0x922df73cac400), _f2(2027203, 0x8c3cc70035000),\n    -_f2(2046086, 0x4cc9bc51b5c00), _f2(787253, 0x8fa9057e6800),\n    -_f2(725367, 0x21dd9ffc63400), _f2(368582, 0x69a43eb914890),\n    _f2(28712685662, 0x1fa68a0342ac7),\n    # C4[3], coeff of eps^19, polynomial in n of order 10\n    -_f2(8942538, 0x3b8622ae62a00), _f2(10481872, 0x1e7c948175300),\n    -_f2(5381394, 0x830498d800800), _f2(6645195, 0x535f47efddd00),\n    -_f2(4043713, 0x9ba9cf138e600), _f2(3563786, 0x6253b3df24700),\n    -_f2(3045580, 0xe2f1f7a110400), _f2(1548984, 0x4828fbf665100),\n    -_f2(1694435, 0x63dcfc138a200), _f2(406057, 0xe76a74dc3bb00),\n    _f2(110280, 0xa64ca1bbeb438), _f2(28712685662, 0x1fa68a0342ac7),\n    # C4[3], coeff of eps^18, polynomial in n of order 11\n    -_f2(18204995, 0x3f490d6ed8000), _f2(15367333, 0xa666c37198000),\n    -_f2(8424707, 0xb9613a5da8000), _f2(10765521, 3190860555 << 17),\n    -_f2(5300295, 0xd300940f58000), _f2(6273886, 0xba1b2aa228000),\n    -_f2(4137511, 0x6a32b5bc28000), _f2(2951915, 0x3ffeb65fb0000),\n    -_f2(2898950, 0x38c8743c58000), _f2(1027617, 0x2c3889c5b8000),\n    -_f2(1062542, 0x7c8a4a4828000), _f2(500325, 0x147f19cd83980),\n    _f2(28712685662, 0x1fa68a0342ac7),\n    # C4[3], coeff of eps^17, polynomial in n of order 12\n    -_f2(46659673, 0x7940546261000), _f2(20576887, 0xb72d09f420c00),\n    -_f2(17371112, 0xc460beb873800), _f2(16552256, 0x8d133b2d84400),\n    -_f2(7883306, 0x3c181b1016000), _f2(10867815, 0x95ba8c80bfc00),\n    -_f2(5343012, 0x31a34980f8800), _f2(5640245, 0x12558783a3400),\n    -_f2(4241979, 0x47a64b12cb000), _f2(2204426, 0xf7d60f21fec00),\n    -_f2(2506924, 0x6e46ed413d800), _f2(503732, 0xa322eb69a2400),\n    _f2(139663, 0x777cb98300b20), _f2(28712685662, 0x1fa68a0342ac7),\n    # C4[3], coeff of eps^16, polynomial in n of order 13\n    -_f2(156865464, 0x9b4a437ced000), _f2(26751997, 0x84cabd1d8c000),\n    -_f2(47510066, 0xf418e3e50b000), _f2(22667291, 0xeea5410a3a000),\n    -_f2(16175537, 0xc4ceea20b9000), _f2(17818506, 0xfb6c54d608000),\n    -_f2(7402653, 0x2459922697000), _f2(10650742, 0xeb52d29456000),\n    -_f2(5558253, 0xfdda6aad45000), _f2(4690304, 0xc3737ed884000),\n    -_f2(4248624, 0xb4bb4dab63000), _f2(1382140, 0xc755b095f2000),\n    -_f2(1646389, 0x4c787b5791000), _f2(701746, 0xdc0286e009640),\n    _f2(28712685662, 0x1fa68a0342ac7),\n    # C4[3], coeff of eps^15, polynomial in n of order 14\n    _f2(158569992, 0x763cf17d39800), _f2(242045827, 0xf358b9d531400),\n    -_f2(171801710, 0xfbdaa54751000), _f2(26564510, 0xe59a1e6b54c00),\n    -_f2(47715397, 0x8fdbdb93bb800), _f2(25503418, 0x124aa89300400),\n    -_f2(14593564, 0x65519680b6000), _f2(19028249, 0x27fd86c303c00),\n    -_f2(7127523, 0x40a42052f0800), _f2(9926805, 0x1876eddc2f400),\n    -_f2(5956098, 0xfb7e2f3f1b000), _f2(3422018, 0xde3cf0f552c00),\n    -_f2(3909386, 0x4ce6da2de5800), _f2(606166, 0xec68c0e73e400),\n    _f2(172919, 0x9ad62b665b520), _f2(28712685662, 0x1fa68a0342ac7),\n    # C4[3], coeff of eps^14, polynomial in n of order 15\n    _f2(234628808, 0x48818da828000), -_f2(452308383, 0x26baa88038000),\n    _f2(184630907, 0xde7b734758000), _f2(240946965, 0x4db221ae90000),\n    -_f2(189474421, 0xed4c1e36d8000), _f2(27214973, 0x55324802d8000),\n    -_f2(46882338, 0xe5fcdfdca8000), _f2(29262846, 2319362995 << 17),\n    -_f2(12682237, 0x3cee53d458000), _f2(19904432, 0x70537f02e8000),\n    -_f2(7274198, 0xbf917ba828000), _f2(8480909, 0x438c3da230000),\n    -_f2(6415713, 0xc95c9b8258000), _f2(1960896, 0x685dc04df8000),\n    -_f2(2745254, 0xf883406d28000), _f2(1023946, 0x4eef421f04580),\n    _f2(28712685662, 0x1fa68a0342ac7),\n    # C4[3], coeff of eps^13, polynomial in n of order 16\n    -_f2(2272755, 0x57fd708a77000), -_f2(26091168, 0x1366cec7d9d00),\n    _f2(231976719, 0xafe6927fcde00), -_f2(464894868, 0x24c5c39795700),\n    _f2(215184123, 0xaf8273d716c00), _f2(236438336, 0xab29f0bfd4f00),\n    -_f2(210344218, 0x367ffa8b78600), _f2(29454299, 0x2f129bee9500),\n    -_f2(44460297, 0xf9cfdfb8bb800), _f2(34058265, 0xda8305b9abb00),\n    -_f2(10677799, 0x93543d448ea00), _f2(19950418, 0xbb16c712a0100),\n    -_f2(8097327, 0xc3857f1ecdc00), _f2(6164437, 0x8a1d8a85ca700),\n    -_f2(6487914, 0xa92c56ec54e00), _f2(653539, 0x4a58f163aed00),\n    _f2(193289, 0xc4fa7fb371708), _f2(28712685662, 0x1fa68a0342ac7),\n    # C4[3], coeff of eps^12, polynomial in n of order 17\n    -_f2(136365, 0x73a1fcfe6ac00), -_f2(450638, 0xd074750f34000),\n    -_f2(2128024, 0x54e7feac4d400), -_f2(24952088, 0x92a9c1fc91800),\n    _f2(228113259, 0x85d44607e4400), -_f2(477191195, 0x7e69e50f07000),\n    _f2(251096618, 0x1896eb4cd1c00), _f2(226763725, 0xac7cda7d93800),\n    -_f2(234776156, 0x14cc4b0edcc00), _f2(34557325, 0x4230b4bd66000),\n    -_f2(39741101, 0x3a85821c7f400), _f2(39764072, 0x42dd69fc98800),\n    -_f2(9161206, 0x9c1a792d6dc00), _f2(18380268, 0xf302f56753000),\n    -_f2(9708385, 0x581708d300400), _f2(3148914, 0x8380fab1bd800),\n    -_f2(5050904, 0x8a565e3e8ec00), _f2(1566765, 0x6fd98617e9df0),\n    _f2(28712685662, 0x1fa68a0342ac7),\n    # C4[3], coeff of eps^11, polynomial in n of order 18\n    -_f2(18810, 0x4977f6cdda600), -_f2(44617, 0xf507aa2256700),\n    -_f2(121680, 0x26c8d0378b000), -_f2(408670, 0xadcc6d8f87900),\n    -_f2(1967116, 0xd731d207dba00), -_f2(23614778, 0x5c1a1fadbeb00),\n    _f2(222693980, 0x695506ba87c00), -_f2(488598159, 0xe2ab67bc47d00),\n    _f2(293333811, 0x10f016a3f3200), _f2(209273530, 0x4db1c2b811100),\n    -_f2(262769616, 0x9b49f60945800), _f2(44647130, 0x3acb33bfff00),\n    -_f2(31983858, 0x227f1389ce200), _f2(45626356, 0x9e16c6ccb8d00),\n    -_f2(9276161, 0xf8fb16a652c00), _f2(14205372, 0x289c377eefb00),\n    -_f2(11490116, 0xc948e407f600), _f2(414830, 0x163387d5d8900),\n    _f2(117690, 0xc756ec17c4aa8), _f2(28712685662, 0x1fa68a0342ac7),\n    # C4[3], coeff of eps^10, polynomial in n of order 19\n    -_f2(3667, 0x8ba48fb7ec000), -_f2(7355, 0xde5d961edc000),\n    -_f2(15963, 0x138d280434000), -_f2(38393, 53315683 << 17),\n    -_f2(106358, 0x1cca460dcc000), -_f2(363723, 0x77fed5aee4000),\n    -_f2(1788619, 0xb46088e414000), -_f2(22045766, 0x7d53064fc8000),\n    _f2(215267089, 0x7c4e47994000), -_f2(498143540, 0xc077eb386c000),\n    _f2(342855614, 0x4b25e0bbcc000), _f2(179961617, 0x7ca6ea4dd0000),\n    -_f2(293329289, 0xb4e43f9ccc000), _f2(63137066, 0xbcee02f98c000),\n    -_f2(20920174, 0xdceb909f94000), _f2(49479848, 0x7088e98168000),\n    -_f2(12768344, 0x1ee1d8cbec000), _f2(6948560, 0xd8f6969c04000),\n    -_f2(10643749, 0x466c677134000), _f2(2529930, 0x161dcdf222440),\n    _f2(28712685662, 0x1fa68a0342ac7),\n    # C4[3], coeff of eps^9, polynomial in n of order 20\n    -_f(0x354d49acec3dd800), -_f(0x606a7d34c50a0200),\n    -_f2(2939, 0xdc47a7c209c00), -_f2(5971, 0x671f2d9dad600),\n    -_f2(13140, 0xcdf9f327fe000), -_f2(32101, 0x6baea5bb9ea00),\n    -_f2(90511, 0x408ba9a232400), -_f2(315893, 0xc97e5e852be00),\n    -_f2(1591343, 0xfce30d8d1e800), -_f2(20207205, 0x8b4272e60d200),\n    _f2(205238828, 0x21c1cf60c5400), -_f2(504251582, 0xb2b181bcfa600),\n    _f2(400330413, 0xa384192d01000), _f2(132810886, 0x4094526254600),\n    -_f2(323039224, 0xd5680dd0e3400), _f2(95085342, 0xbfbbc74d27200),\n    -_f2(8279837, 0x6ce790195f800), _f2(46514941, 0x8e0e73ffc5e00),\n    -_f2(20732718, 0x38ef4b2eebc00), -_f2(922541, 0xf2a1d94487600),\n    -_f2(491669, 0x5bd07d195db30), _f2(28712685662, 0x1fa68a0342ac7),\n    # C4[3], coeff of eps^8, polynomial in n of order 21\n    -_f(0xd828cefda55a800), -_f(0x16c6eac98e7b6000),\n    -_f(0x27e1e798049c9800), -_f(0x490330552dbbf000),\n    -_f2(2255, 0x88ea2b8740800), -_f2(4647, 0x88c66c31f8000),\n    -_f2(10390, 0xd13f35560f800), -_f2(25836, 0xfcd55e2db1000),\n    -_f2(74324, 0xc0bfff0e86800), -_f2(265480, 0xf5ce67923a000),\n    -_f2(1374647, 0xa0b10ca8f5800), -_f2(18058373, 0x723761b2e3000),\n    _f2(191831943, 0xc85920c253800), -_f2(504361484, 0x6e935002fc000),\n    _f2(465423127, 0xbaa71ebb04800), _f2(59036306, 0xf120275a2b000),\n    -_f2(342905949, 0x5a93131732800), _f2(146354899, 0x9f9c2b8142000),\n    -_f2(1641748, 0x1e8ba62ca1800), _f2(28969072, 0x51c8dabef9000),\n    -_f2(27136540, 0x3d9359d98800), _f2(4249105, 0xd55e5a0325120),\n    _f2(28712685662, 0x1fa68a0342ac7),\n    # C4[3], coeff of eps^7, polynomial in n of order 22\n    -_f(0x38123cee860f400), -_f(0x59d375c04e8be00),\n    -_f(0x942bf86bd4c1800), -_f(0xfcbda8858afb200),\n    -_f(0x1c02af2dc3443c00), -_f(0x33fc822f8d2b6600),\n    -_f(0x65e35fc07de4e000), -_f2(3414, 0xc7eb297eb5a00),\n    -_f2(7775, 0x1c0e884298400), -_f2(19731, 0x6a31912ef0e00),\n    -_f2(58089, 0x9471e600da800), -_f2(213111, 0x15a6331c60200),\n    -_f2(1139019, 0x77ee6ce2ccc00), -_f2(15560104, 0x33d66a0afb600),\n    _f2(174045800, 0x2f0a20e9d9000), -_f2(494300177, 0xd9e4761bbaa00),\n    _f2(535087920, 0xe9f8f195ec00), -_f2(53102016, 0x93f6bbbe95e00),\n    -_f2(331738553, 0x77bff637f3800), _f2(216985631, 0x987f3afb7ae00),\n    -_f2(21074121, 0x8043eaffd5c00), -_f2(4185955, 0xa3ff769180600),\n    -_f2(4713710, 0xd2e19a34f30b0), _f2(28712685662, 0x1fa68a0342ac7),\n    # C4[3], coeff of eps^6, polynomial in n of order 23\n    -_f(0xe0ca252d14c000), -_f(0x15a70af15f24000),\n    -_f(0x222b3f817554000), -_f(0x375f97b48cd8000),\n    -_f(0x5c7b9631f8ac000), -_f(0x9fe2527c7fcc000),\n    -_f(0x11face3d5ef34000), -_f(0x21e77d8dabde0000),\n    -_f(0x439dcbf7fdccc000), -_f2(2310, 0x1731d0ccf4000),\n    -_f2(5373, 0x35ee2c1554000), -_f2(13965, 0xf39edc32e8000),\n    -_f2(42247, 0xa0aa0b1cac000), -_f2(159930, 0xa2319a759c000),\n    -_f2(887131, 0xc123fa86b4000), -_f2(12685735, 0x6243721af0000),\n    _f2(150650948, 0x968da6a8b4000), -_f2(467294064, 0x1610ada8c4000),\n    _f2(599544322, 0x5feb9b1dac000), -_f2(214883240, 0x150075a4f8000),\n    -_f2(244806233, 0x53bd4b2bac000), _f2(272520146, 0x88b0e96a94000),\n    -_f2(87760725, 0x27ae1fc734000), _f2(5827860, 0xa7a2901c3a740),\n    _f2(28712685662, 0x1fa68a0342ac7),\n    # C4[3], coeff of eps^5, polynomial in n of order 24\n    -_f(0x32b69e04189800), -_f(0x4bd39320660300),\n    -_f(0x73a508e7ef1600), -_f(0xb44a7ec206b900),\n    -_f(0x1200d9d52c6d400), -_f(0x1d916a5ad4bcf00),\n    -_f(0x321a3f994641200), -_f(0x57fce6d660f8500),\n    -_f(0xa10c564a22b1000), -_f(0x1356fa3ebba41b00),\n    -_f(0x275fd13435900e00), -_f(0x5604e2d76283d100),\n    -_f2(3283, 0xdf8f52c874c00), -_f2(8783, 0x8ddc09700e700),\n    -_f2(27451, 0x143e179f50a00), -_f2(107903, 0xe48c7d6f59d00),\n    -_f2(625732, 0xe2abef41d8800), -_f2(9446536, 0xacc19c0743300),\n    _f2(120325828, 0x5507fb0eafa00), -_f2(412649247, 0xc3fe82376e900),\n    _f2(633089704, 0xd19d26ed03c00), -_f2(418090362, 0x84d33548fff00),\n    -_f2(13712613, 0x4e3334f720200), _f2(163180098, 0x55c7c31664b00),\n    -_f2(61921019, 0x751f3b2bed108),\n    _f2(28712685662, 0x1fa68a0342ac7),\n    # C4[3], coeff of eps^4, polynomial in n of order 25\n    -_f(0x30fab48eb2c00), -_f(0x4779db0cde000),\n    -_f(0x6a1a5308c1400), -_f(0xa07c7893bf800),\n    -_f(0xf7d15b087bc00), -_f(0x1878e181999000),\n    -_f(0x27ab652bf7a400), -_f(0x422ed0b6682800),\n    -_f(0x721448fff54c00), -_f(0xcc1e5699294000),\n    -_f(0x17d5829db9a3400), -_f(0x2ed74923dde5800),\n    -_f(0x61c84aba5ffdc00), -_f(0xdbaa1b53c88f000),\n    -_f(0x21cc8beefe3fc400), -_f(0x5da8efb832aa8800),\n    -_f2(4876, 0x5d83861736c00), -_f2(20082, 0x8bb9af0c4a000),\n    -_f2(123005, 0x97d1502b45400), -_f2(1983151, 0x65e045fd8b800),\n    _f2(27425226, 0x9c6669ee40400), -_f2(105081920, 0xe8c662ae85000),\n    _f2(191976586, 0x46cce583c1c00), -_f2(186491540, 0xf45203874e800),\n    _f2(93245770, 0x7a2901c3a7400), -_f2(18940547, 0x20d0545bbdf90),\n    _f2(9570895220, 0xb53783566b8ed),\n    # C4[3], coeff of eps^3, polynomial in n of order 26\n    -_f(0x10330cb256200), -_f(0x172cb16211100),\n    -_f(0x21a8187537800), -_f(0x31b06260f1f00),\n    -_f(0x4ab014ab28e00), -_f(0x7280309c9cd00),\n    -_f(0xb366eef7be400), -_f(0x11ff8a58b05b00),\n    -_f(0x1dae666558ba00), -_f(0x327547ac4a0900),\n    -_f(0x58c9207d125000), -_f(0xa2826b77361700),\n    -_f(0x137557a5841e600), -_f(0x275355b4b1bc500),\n    -_f(0x54b37d85300bc00), -_f(0xc517d06239a5300),\n    -_f(0x1f8f2f623d981200), -_f(0x5b85a3034c390100),\n    -_f2(5020, 0xa2ee6bc312800), -_f2(21965, 0x48d3177570f00),\n    -_f2(144343, 0x4c469a2853e00), -_f2(2526007, 0xb6d389c1bbd00),\n    _f2(38395317, 0x415c2de726c00), -_f2(163180098, 0x55c7c31664b00),\n    _f2(326360196, 0xab8f862cc9600), -_f2(303048754, 0xd0545bbdf900),\n    _f2(104173009, 0x3479cff894d98),\n    _f2(28712685662, 0x1fa68a0342ac7),\n    # C4[4], coeff of eps^29, polynomial in n of order 0\n    4519424, _f(0x13ed3512585),\n    # C4[4], coeff of eps^28, polynomial in n of order 1\n    _f(322327509504), _f(86419033792), _f(0x12e7203d54087bd),\n    # C4[4], coeff of eps^27, polynomial in n of order 2\n    _f(0xdf868e997000), -_f(0xc54488fde800), _f(0x67996a8dfb80),\n    _f2(6219, 0x86ed0fee71e5),\n    # C4[4], coeff of eps^26, polynomial in n of order 3\n    _f(0x1e30d5f17398800), -_f(0x20335f44c005000),\n    _f(0x8656a9da59d800), _f(0x246f3281df3200),\n    _f2(1871928, 0xea4bbbb5bea41),\n    # C4[4], coeff of eps^25, polynomial in n of order 4\n    _f(0x640278dc982000), -_f(0x64de2b5e388800),\n    _f(0x266cf1cb211000), -_f(0x24af02897bd800),\n    _f(0x125236c4932c80), _f2(225070, 0xa1cd0c0f186c5),\n    # C4[4], coeff of eps^24, polynomial in n of order 5\n    _f(0x183393315f62f400), -_f(0x147c8a635ba4f000),\n    _f(0xaadb07a361e2c00), -_f(0xbd0a07cdca37800),\n    _f(0x2c490db64a86400), _f(0xc3000bbe3e2580),\n    _f2(8327613, 0x62a2be2e87a79),\n    # C4[4], coeff of eps^23, polynomial in n of order 6\n    _f2(7399, 0xe4703b1ceb000), -_f2(4925, 0x718bf750ef800),\n    _f2(3656, 0xc01290e152000), -_f2(3594, 0x9ae0aefbbc800),\n    _f(0x5080258211e79000), -_f(0x5458466826cf9800),\n    _f(0x27a09e95cf36b080), _f2(97921247, 0xc3bd6c206251),\n    # C4[4], coeff of eps^22, polynomial in n of order 7\n    _f2(4319137, 0xe5044c1364800), -_f2(2259378, 0xc043aee633000),\n    _f2(2431286, 0xcceb783bf5800), -_f2(1865690, 0x884902c9a2000),\n    _f2(996566, 0x94ae3b7946800), -_f2(1135368, 0x2cb1c30811000),\n    _f2(231629, 0x92b25177d7800), _f2(64961, 0x89605803fda00),\n    _f2(36916310137, 0x41f43bb0c949),\n    # C4[4], coeff of eps^21, polynomial in n of order 8\n    _f2(6174501, 0x53f34a829c000), -_f2(2885765, 0xddf01a0f35800),\n    _f2(4089976, 0x588848e445000), -_f2(2309244, 0x73683320c8800),\n    _f2(1950621, 0xac1b944ace000), -_f2(1810054, 0xa24c07eb4b800),\n    _f2(609590, 0x74daa18497000), -_f2(712107, 0x16cff78e5e800),\n    _f2(310317, 0x16957f6a36b80), _f2(36916310137, 0x41f43bb0c949),\n    # C4[4], coeff of eps^20, polynomial in n of order 9\n    _f2(7763095, 0xd98a0c3214600), -_f2(4551997, 0xf65d38a54d000),\n    _f2(6348004, 0x7dcc619ba1a00), -_f2(2777846, 0x11091dc381c00),\n    _f2(3645151, 0x5af876afd6e00), -_f2(2403756, 0x12692c3266800),\n    _f2(1377366, 0xde24866584200), -_f2(1585712, 0xf2192bea6b400),\n    _f2(268682, 0xb0f056b079600), _f2(77255, 0xca5a822ebf740),\n    _f2(36916310137, 0x41f43bb0c949),\n    # C4[4], coeff of eps^19, polynomial in n of order 10\n    _f2(8073134, 0x8bff962f2e000), -_f2(9331256, 0xe8e10405e1000),\n    _f2(8608510, 0x42ad0321d8000), -_f2(3959617, 0x4c778c1e2f000),\n    _f2(6283090, 0x55033b3d82000), -_f2(2832307, 0xbbdb17809d000),\n    _f2(2955095, 0x929c8347ec000), -_f2(2459067, 0xd43d49c36b000),\n    _f2(787004, 0x9cc4866d6000), -_f2(1039103, 0x6b1983acd9000),\n    _f2(412222, 0xf695367aa1b00), _f2(36916310137, 0x41f43bb0c949),\n    # C4[4], coeff of eps^18, polynomial in n of order 11\n    _f2(8586281, 0xffd2991fd000), -_f2(20926106, 0xdd733d721a000),\n    _f2(9282973, 0x193483c94f000), -_f2(8121077, 0x9b55004148000),\n    _f2(9430655, 0x90c0e29221000), -_f2(3512067, 0x80c2ac76000),\n    _f2(5840995, 0x1886eb4173000), -_f2(3061324, 0xab1a78b4a4000),\n    _f2(2049544, 0x4067911445000), -_f2(2292525, 0x617c054ad2000),\n    _f2(297833, 0x966e637f97000), _f2(88539, 0x9a2e50b8c6400),\n    _f2(36916310137, 0x41f43bb0c949),\n    # C4[4], coeff of eps^17, polynomial in n of order 12\n    _f2(32196457, 0xd679f8ae1c000), -_f2(40594018, 0x37167c5ef5000),\n    _f2(8052650, 0x2eda271162000), -_f2(20325613, 0xcd34eeff17000),\n    _f2(11030346, 0x5827875768000), -_f2(6662972, 0x9685f0fc59000),\n    _f2(10015916, 0xfa65faac6e000), -_f2(3377057, 0x1ef6021e7b000),\n    _f2(4892320, 0x94cb79bcb4000), -_f2(3369439, 0x93437f1d3d000),\n    _f2(1068721, 0xdee482d47a000), -_f2(1596884, 0xcb3e26805f000),\n    _f2(562334, 0xcf5270735f500), _f2(36916310137, 0x41f43bb0c949),\n    # C4[4], coeff of eps^16, polynomial in n of order 13\n    _f2(239019678, 0x7928c61a8b800), -_f2(41200119, 0x147c0b11e000),\n    _f2(27063572, 0xac3757be98800), -_f2(45155983, 0xc412cf1f79000),\n    _f2(8354845, 0xf8b6ea7445800), -_f2(18750027, 0x4e7377c014000),\n    _f2(13292220, 0xfed958edd2800), -_f2(5165101, 0x26aa3105af000),\n    _f2(10025000, 0x43fec217f800), -_f2(3715677, 0xed5a4430a000),\n    _f2(3405288, 0xc16fe1018c800), -_f2(3440521, 0x6cb0e4f2e5000),\n    _f2(291108, 0x30be23439800), _f2(90314, 0xe93f4121c6900),\n    _f2(36916310137, 0x41f43bb0c949),\n    # C4[4], coeff of eps^15, polynomial in n of order 14\n    -_f2(301344600, 0x1f7a69f35a000), -_f2(137666269, 0x81776c9d9b000),\n    _f2(257500426, 0xa27a71193c000), -_f2(52745704, 0xa8e59f44d000),\n    _f2(20527629, 0x3707e00852000), -_f2(49389175, 0x1679a6a55f000),\n    _f2(10057417, 0xa546ce8428000), -_f2(15960633, 0x79a78f6a91000),\n    _f2(15828795, 0x3b7a7e96fe000), -_f2(4041479, 0x5385608da3000),\n    _f2(9015452, 0x8a056dcb14000), -_f2(4531739, 0xb18fd7c855000),\n    _f2(1608583, 0x5c81da4aaa000), -_f2(2620079, 0xb9c03a2467000),\n    _f2(790676, 0xf12036cb88d00), _f2(36916310137, 0x41f43bb0c949),\n    # C4[4], coeff of eps^14, polynomial in n of order 15\n    -_f2(152316078, 0x9ee9710b1f000), _f2(396132268, 0xf6300698d2000),\n    -_f2(331944543, 0x2a26efc8bd000), -_f2(111967823, 0x409ccb544c000),\n    _f2(276102802, 0x8592b62d25000), -_f2(69409637, 0x2e4659b6a000),\n    _f2(12806364, 0xaa4a38387000), -_f2(52382533, 0xaa3aad6588000),\n    _f2(13858261, 0x7d9fda6f69000), -_f2(11925525, 0x17f68feba6000),\n    _f2(17994828, 0x2633a57dcb000), -_f2(3926621, 0x9c334da6c4000),\n    _f2(6610729, 0xa84ec063ad000), -_f2(5341800, 0xcfe0c57fe2000),\n    _f2(171304, 0xc92dc0ce0f000), _f2(53498, 0x8a12fdd94c400),\n    _f2(36916310137, 0x41f43bb0c949),\n    # C4[4], coeff of eps^13, polynomial in n of order 16\n    _f2(945329, 0x3e694a5630000), _f2(13046260, 0xd11553dc81000),\n    -_f2(145063327, 0x6c5bbd04f6000), _f2(395288944, 0x9758cc3483000),\n    -_f2(364989750, 0x4da45c465c000), -_f2(77659847, 0x7f601a5fdb000),\n    _f2(293261136, 0xdb46a6c9be000), -_f2(92956699, 0x68d702f4d9000),\n    _f2(4748491, 0xd717292318000), -_f2(52641236, 0xde7217eeb7000),\n    _f2(20401071, 0xa831b35d72000), -_f2(7165143, 0xe2daef21b5000),\n    _f2(18530179, 0x70f1fa908c000), -_f2(5449998, 0x995f61f213000),\n    _f2(2985284, 0xf423c13426000), -_f2(4674955, 0x4c99b17411000),\n    _f2(1148405, 0xaa811667d8300), _f2(36916310137, 0x41f43bb0c949),\n    # C4[4], coeff of eps^12, polynomial in n of order 17\n    _f2(39064, 0xc457745427a00), _f2(149707, 0xe179ab818a000),\n    _f2(834482, 0xb3de3faf4c600), _f2(11844090, 0x43801d34c0c00),\n    -_f2(136492367, 0x606ac4f4b6e00), _f2(391413380, 0x8b1b355567800),\n    -_f2(399991879, 0xf56c51d232200), -_f2(32313943, 0x670cb1cd91c00),\n    _f2(306137820, 0x47c0d4df8aa00), -_f2(125355715, 0x12c37db13b000),\n    -_f2(1549012, 0x61de67b1d0a00), -_f2(48002827, 0x1ef791fca4400),\n    _f2(29707099, 0x80264b6e6c200), -_f2(3304868, 0xd90dacdedd800),\n    _f2(15595740, 0x1c41b85df0e00), -_f2(8339676, 0x731c5b6cf6c00),\n    -_f2(264319, 0x3253133a92600), -_f2(128183, 0x1fd72f4c70540),\n    _f2(36916310137, 0x41f43bb0c949),\n    # C4[4], coeff of eps^11, polynomial in n of order 18\n    _f2(3796, 0xb8b80a685d000), _f2(10243, 0xe5415b1644800),\n    _f2(32134, 0x75fe9c2f28000), _f2(125896, 0x13cc0b67cb800),\n    _f2(720062, 0x2eb5ef2cf3000), _f2(10542664, 0x8e7784ebe2800),\n    -_f2(126401502, 0xa942d02d22000), _f2(383396973, 0xa914c081a9800),\n    -_f2(435856143, 0x9e18e4ddf7000), _f2(26921352, 0xa17bcee040800),\n    _f2(309790567, 0x432113bb94000), -_f2(168177156, 0xf5a6b5d938800),\n    -_f2(1732899, 0x7848d10f61000), -_f2(36033193, 0x6ff05a93a1800),\n    _f2(39850986, 0x4a7ce5d24a000), -_f2(3520516, 0x12d4d9afda800),\n    _f2(7904559, 0x47211641b5000), -_f2(9293198, 0x11e52b76c3800),\n    _f2(1712350, 0xd1c47193d5a80), _f2(36916310137, 0x41f43bb0c949),\n    # C4[4], coeff of eps^10, polynomial in n of order 19\n    _f(0x20b0c3dbe662b800), _f(0x49a4ee6b654d5000),\n    _f2(2895, 0xbb9a481b3e800), _f2(7963, 0xd6290c9168000),\n    _f2(25525, 0x742091bd91800), _f2(102493, 0xec03f49fb000),\n    _f2(603292, 0x6fe940faa4800), _f2(9144553, 0x3f081030e000),\n    -_f2(114581171, 0x9502f66408800), _f2(369767644, 0x159b783921000),\n    -_f2(470438620, 0x42537ac0f5800), _f2(102998223, 0x33db2118b4000),\n    _f2(295924658, 0xfd504b0d5d800), -_f2(220875824, 0xd68590c9b9000),\n    _f2(12088406, 0x3b87c77470800), -_f2(15966308, 0xf7cc70b9a6000),\n    _f2(44660638, 0xbb68d3ddc3800), -_f2(11155854, 0x316b572a93000),\n    -_f2(1400757, 0x91d7719929800), -_f2(909990, 0x5b4dcbdcd9200),\n    _f2(36916310137, 0x41f43bb0c949),\n    # C4[4], coeff of eps^9, polynomial in n of order 20\n    _f(0x55091490e3fe000), _f(0xab3101736f26800),\n    _f(0x16d77945c4e3b000), _f(0x345d2a91137d7800),\n    _f2(2099, 0xc55d2c398000), _f2(5898, 0x424192198800),\n    _f2(19366, 0xa6f5f449f5000), _f2(79943, 0x847cdfac49800),\n    _f2(486014, 0x6a1dc16732000), _f2(7659629, 0x94cc8fca800),\n    -_f2(100839015, 0x651046eed1000), _f2(348607247, 0x22ddc22bfb800),\n    -_f2(499815073, 0x4df2756234000), _f2(197958555, 0x77a0b2f8bc800),\n    _f2(251323198, 0x2663cfb2e9000), -_f2(276534810, 0xe292670a12800),\n    _f2(51555588, 0x6a67a23666000), _f2(5587968, 0x5e92831b6e800),\n    _f2(32523682, 0xed2ae23e23000), -_f2(21111776, 0x46401336e0800),\n    _f2(2489921, 0xe3c1e337a6d80), _f2(36916310137, 0x41f43bb0c949),\n    # C4[4], coeff of eps^8, polynomial in n of order 21\n    _f(0xeb8379f6b27c00), _f(0x1b6c4de1f1d7000),\n    _f(0x355a1dadc956400), _f(0x6d308de46411800),\n    _f(0xed54313f63d4c00), _f(0x22ae87428a2ac000),\n    _f(0x58ce5dd980bc3400), _f2(4090, 0xd3c824bc46800),\n    _f2(13806, 0x44b4a8a441c00), _f2(58809, 0x7ab991df81000),\n    _f2(370898, 0xe410033e70400), _f2(6109620, 0x6402b9f6fb800),\n    -_f2(85053139, 0x4bf446ca91400), _f2(317515928, 0x1b63894556000),\n    -_f2(517123103, 0xa7a388b5a2c00), _f2(310296682, 0xe98bc80130800),\n    _f2(156996715, 0xaa3cf3c05bc00), -_f2(312601560, 0xdd28200ed5000),\n    _f2(125126811, 0xf01e02788a400), _f2(4091818, 0xb5091207e5800),\n    -_f2(866059, 0xc9a79cf1f7400), -_f2(4943757, 0xf4721fe538b80),\n    _f2(36916310137, 0x41f43bb0c949),\n    # C4[4], coeff of eps^7, polynomial in n of order 22\n    _f(0x2814d49c0c5000), _f(0x468b0d3a3db800),\n    _f(0x80724d98876000), _f(0xf31dbc49b20800),\n    _f(0x1e12cb4a6a67000), _f(0x3eb5a58b5455800),\n    _f(0x8b1eef20fbf8000), _f(0x14cb29a266eda800),\n    _f(0x36974c82ca289000), _f2(2585, 0xefae20720f800),\n    _f2(9007, 0x1d6baf437a000), _f2(39779, 0x24ec74fd54800),\n    _f2(261696, 0x442f64f42b000), _f2(4534975, 0xa5b17f809800),\n    -_f2(67279179, 0x4d9bf05604000), _f2(273758534, 0xd27122c18e800),\n    -_f2(510920394, 0x40d515b3000), _f2(428723861, 0x53ee2b6143800),\n    -_f2(7330129, 0x37be948582000), -_f2(275708250, 0xae16364977800),\n    _f2(204390109, 0xe684af0fef000), -_f2(52540960, 0x7463315742800),\n    _f2(2056891, 0xfeee14beab380), _f2(36916310137, 0x41f43bb0c949),\n    # C4[4], coeff of eps^6, polynomial in n of order 23\n    _f(0x628e4f4bb7800), _f(0xa60e374943000), _f(0x11fae77940e800),\n    _f(0x2022ddc061a000), _f(0x3b7f2e2d7a5800),\n    _f(0x72aa26ca9f1000), _f(0xe77392a11fc800),\n    _f(0x1ed1e51d0348000), _f(0x460248a5fa93800),\n    _f(0xabd9e84dc89f000), _f(0x1d078c2cd5cea800),\n    _f(0x58c9fda5cf076000), _f2(5134, 0xa77137081800),\n    _f2(23653, 0x63d76094d000), _f2(163469, 0x772f4630d8800),\n    _f2(3004667, 0x8d384291a4000), -_f2(47956830, 0xd53f134a90800),\n    _f2(214953528, 0xfe0a5a4ffb000), -_f2(463620631, 0xbff95a7639800),\n    _f2(519033396, 0x411553aad2000), -_f2(237300381, 0xd565fafaa2800),\n    -_f2(84296486, 0x10fabff57000), _f2(142611178, 0x607af3a3b4800),\n    -_f2(46622885, 0x3d1480e1d3a00), _f2(36916310137, 0x41f43bb0c949),\n    # C4[4], coeff of eps^5, polynomial in n of order 24\n    _f(0xc0b5b2cac000), _f(0x139ac5d2ed800), _f(0x20abe97223000),\n    _f(0x37e2f8cba0800), _f(0x6269b1d1ba000), _f(0xb3074a8a43800),\n    _f(0x151de1e3911000), _f(0x298e5ccaa76800),\n    _f(0x55d208375c8000), _f(0xbb7ea958fd9800),\n    _f(0x1b5e1854857f000), _f(0x4547c4b8360c800),\n    _f(0xc1cdc899e5d6000), _f(0x2682d6f5e00af800),\n    _f2(2326, 0xf44888e46d000), _f2(11275, 0x7d4afe8b62800),\n    _f2(82638, 0x859516eee4000), _f2(1628359, 0xc1653179c5800),\n    -_f2(28286265, 0xc31f9b1d25000), _f2(141205400, 0x2bb5164778800),\n    -_f2(353352393, 0x632221a20e000), _f2(504046796, 0x730ece181b800),\n    -_f2(416863444, 0x7c7b16f237000), _f2(186491540, 0xf45203874e800),\n    -_f2(34967163, 0xedcf60a95eb80), _f2(36916310137, 0x41f43bb0c949),\n    # C4[4], coeff of eps^4, polynomial in n of order 25\n    _f(0xe07098dae00), _f(0x16338b625000), _f(0x23dda179f200),\n    _f(0x3b41a69cf400), _f(0x645a89a6b600), _f(0xaeabe0e09800),\n    _f(0x1397028dcfa00), _f(0x246014e923c00), _f(0x4633de275be00),\n    _f(0x8d95c8a56e000), _f(0x12c670f9ba0200),\n    _f(0x2a433484738400), _f(0x6608a70542c600),\n    _f(0x10c10ac322d2800), _f(0x30ddb4b92590a00),\n    _f(0xa2e30513d28cc00), _f(0x289386109855ce00),\n    _f2(3347, 0x17499d2cb7000), _f2(26358, 0x5763b5c021200),\n    _f2(564821, 0x99c65b39a1400), -_f2(10825747, 0x58af29d092a00),\n    _f2(60624185, 0x23d4ea299b800), -_f2(172778927, 0xa61ece902e600),\n    _f2(279737311, 0x6e7b054af5c00), -_f2(233114426, 0x3166846922200),\n    _f2(75762188, 0x8341516ef7e40), _f2(36916310137, 0x41f43bb0c949),\n    # C4[5], coeff of eps^29, polynomial in n of order 0\n    3108352, _f(0x4338129a0b3),\n    # C4[5], coeff of eps^28, polynomial in n of order 1\n    -_f(4961047 << 17), _f(304969986048), _f(0x171a7cbcbc0a5e7),\n    # C4[5], coeff of eps^27, polynomial in n of order 2\n    -_f(0xb7a8cf8589000), _f(0x25cdf8a9f5800), _f(0xaa8ee05df480),\n    _f2(53207, 0x4825dfa147919),\n    # C4[5], coeff of eps^26, polynomial in n of order 3\n    -_f(0x4519d2e6066000), _f(0x17b1d503134000),\n    -_f(0x1b53dc2d3c2000), _f(0xc104a529c3b00),\n    _f2(207992, 0x1a086a30a3679),\n    # C4[5], coeff of eps^25, polynomial in n of order 4\n    -_f(0xe48436400f9e000), _f(0x825cbe3b5113800),\n    -_f(0x9657faac8f9f000), _f(0x1ac735d19d16800),\n    _f(0x7b639e59c13780), _f2(8527676, 0x2b5901ca2b961),\n    # C4[5], coeff of eps^24, polynomial in n of order 5\n    -_f(0x13b86e0d5c5dc000), _f(0x135f9b0385fb0000),\n    -_f(0x10df1064c3304000), _f(0x58b0ae17a818000),\n    -_f(0x70d05036b8ec000), _f(0x2e5299a0b610e00),\n    _f2(10178194, 0x2338af8e3405b),\n    # C4[5], coeff of eps^23, polynomial in n of order 6\n    -_f2(126383, 0x5f6b81564f000), _f2(192332, 0x2215a4d90d800),\n    -_f2(113392, 0x893928fcaa000), _f2(71665, 0x3fb557978e800),\n    -_f2(81791, 0xa6f9503f45000), _f2(12036, 0x1a6fad5adf800),\n    _f2(3561, 0x9aef6f2cefa80), _f2(3470764200, 0xea81d86b4b937),\n    # C4[5], coeff of eps^22, polynomial in n of order 7\n    -_f2(191647, 0x188f775ada000), _f2(308186, 0x45ee8f2434000),\n    -_f2(124928, 0xd21a49314e000), _f2(153616, 0xaed0e35eb8000),\n    -_f2(118466, 0xc4b6a2a9a2000), _f2(38029, 0x77ad4b77bc000),\n    -_f2(53612, 0x41f60b8316000), _f2(20169, 0xecfa5f7fa8900),\n    _f2(3470764200, 0xea81d86b4b937),\n    # C4[5], coeff of eps^21, polynomial in n of order 8\n    -_f2(5169843, 0xc81db86efc000), _f2(5341939, 0xe957aa505800),\n    -_f2(2049228, 0x2e9753666d000), _f2(3734678, 0xdcd2e44998800),\n    -_f2(1762099, 0xebebc251fe000), _f2(1337844, 0xa441c7cbb800),\n    -_f2(1455577, 0x7e18adc04f000), _f2(163809, 0xd9aab3cbce800),\n    _f2(50215, 0x8f7a6f7ead780), _f2(45119934611, 0xe897fd72d67cb),\n    # C4[5], coeff of eps^20, polynomial in n of order 9\n    -_f2(11201228, 0x9af12fea90000), _f2(5330620, 7096189457 << 19),\n    -_f2(4084126, 0xa473ecba70000), _f2(5776338, 0xc1238f4360000),\n    -_f2(1850318, 0x7e36514750000), _f2(3091001, 2788978033 << 18),\n    -_f2(1978996, 0x9854b5b30000), _f2(651396, 0xde4e2e0920000),\n    -_f2(1009381, 0x5e1878c010000), _f2(341219, 0x67868049b6800),\n    _f2(45119934611, 0xe897fd72d67cb),\n    # C4[5], coeff of eps^19, polynomial in n of order 10\n    -_f2(19364139, 0xf3aad6c27e000), _f2(3661269, 0x231a8ee911000),\n    -_f2(10171658, 0x9bc1444518000), _f2(6650152, 0x1449aa44ff000),\n    -_f2(2982446, 0xb2f133d6b2000), _f2(5796709, 0x225c7b8fcd000),\n    -_f2(2004712, 0xb33d0f538c000), _f2(2087887, 0x2718a4e53b000),\n    -_f2(2041244, 0xb9c4a8d7e6000), _f2(150337, 0x64e8ec0109000),\n    _f2(48205, 0x4eea8f2f13300), _f2(45119934611, 0xe897fd72d67cb),\n    # C4[5], coeff of eps^18, polynomial in n of order 11\n    -_f2(17821498, 0x43ce2fe394000), _f2(8113989, 0x34042cf6f8000),\n    -_f2(21055211, 0x1d823792dc000), _f2(4458324, 0xaba1762760000),\n    -_f2(8384573, 0x54084121e4000), _f2(8079221, 0xcbb99849c8000),\n    -_f2(2172398, 0x503335ed2c000), _f2(5129813, 0x3b8a4c21b0000),\n    -_f2(2481567, 0xadec795134000), _f2(934125, 9279934035 << 15),\n    -_f2(1531704, 0x9cc504aa7c000), _f2(453383, 0xd34e451346a00),\n    _f2(45119934611, 0xe897fd72d67cb),\n    # C4[5], coeff of eps^17, polynomial in n of order 12\n    _f2(4095301, 0x789aeb9e64000), _f2(49542396, 0x46ab457e8d000),\n    -_f2(24303219, 0x1ccf0dd62000), _f2(4679495, 0x21a30e03df000),\n    -_f2(21666597, 0xecbbb1868000), _f2(6429258, 0x6611bb6911000),\n    -_f2(5963806, 0x7f45fe6c6e000), _f2(9141324, 0xab5773fc63000),\n    -_f2(2043796, 0x5ca6f33334000), _f2(3626747, 0xd85dd12c15000),\n    -_f2(2919955, 0xba0fdf867a000), _f2(85758, 0x333e03c667000),\n    _f2(28339, 0x9119c9ad54d00), _f2(45119934611, 0xe897fd72d67cb),\n    # C4[5], coeff of eps^16, polynomial in n of order 13\n    -_f2(273240474, 0x43c43c74c8000), _f2(133674826, 0x952bfc30e0000),\n    _f2(7048142, 0x68e4684408000), _f2(44883009, 0xdb6a70b90000),\n    -_f2(32370151, 0x153b9e91a8000), _f2(2006331, 0xa0ac245340000),\n    -_f2(20459012, 0x9d1a27ed8000), _f2(9634139, 0x6e1e5ebef0000),\n    -_f2(3415127, 0x8d101d0c88000), _f2(9090639, 8214448173 << 17),\n    -_f2(2849328, 0xea461fc3b8000), _f2(1554483, 7516134885 << 16),\n    -_f2(2460922, 0x6540542d68000), _f2(615586, 0x6f27f96118400),\n    _f2(45119934611, 0xe897fd72d67cb),\n    # C4[5], coeff of eps^15, polynomial in n of order 14\n    _f2(385255297, 0xc522d651da000), -_f2(58599463, 0x810289e63d000),\n    -_f2(271784816, 0x96bdc01bbc000), _f2(164665597, 0xfc4f4e3665000),\n    _f2(6169937, 0xa7ea1cfd2e000), _f2(36278794, 0xf1d4bf77a7000),\n    -_f2(41327996, 0x5935502f28000), _f2(1406713, 0xae66a659c9000),\n    -_f2(16753028, 0x6b0d0fac7e000), _f2(13550589, 0x7d5a3390b000),\n    -_f2(1765295, 0x851b6e8694000), _f2(7142364, 0xca525091ad000),\n    -_f2(4183412, 0x818c59892a000), -_f2(96164, 0xa4307ac011000),\n    -_f2(44020, 0x281c2d0515b00), _f2(45119934611, 0xe897fd72d67cb),\n    # C4[5], coeff of eps^14, polynomial in n of order 15\n    _f2(85300002, 0xc7e70a9f1c000), -_f2(294351273, 0xafb8edef98000),\n    _f2(403760509, 0xda2cbc2e94000), -_f2(107444454, 0x9ae8f34870000),\n    -_f2(261509454, 0x4bda846b4000), _f2(200593259, 0xcaf344c1b8000),\n    -_f2(1492598, 0x1c0b3e713c000), _f2(23203659, 0x98196f9e60000),\n    -_f2(49434335, 0xf8209c0184000), _f2(4620325, 0x4eb0e8bd08000),\n    -_f2(10475101, 0x343acca80c000), _f2(16597245, 8542632147 << 16),\n    -_f2(2356576, 0x3bbee61554000), _f2(3249396, 0x1edbdd7e58000),\n    -_f2(4240477, 0x930e83f9dc000), _f2(851256, 0x2b979a0197a00),\n    _f2(45119934611, 0xe897fd72d67cb),\n    # C4[5], coeff of eps^13, polynomial in n of order 16\n    -_f2(334885, 0xc6bdc7fcb0000), -_f2(5563880, 0xa3a405a9f1000),\n    _f2(77196254, 0x955c2ca786000), -_f2(280592470, 0x60fd2cd013000),\n    _f2(419465490, 0x135ebd637c000), -_f2(164134806, 0xd03e535795000),\n    -_f2(238238642, 0xf95f61c30e000), _f2(239782224, 0x6d53e5d49000),\n    -_f2(20068072, 0x4afa414658000), _f2(6399560, 0x53e56b4c47000),\n    -_f2(53380994, 0xb54d3160a2000), _f2(13179100, 0x7f23319325000),\n    -_f2(3190623, 0x71f1454c2c000), _f2(15946535, 0x7112262fa3000),\n    -_f2(5597132, 0xd891768336000), -_f2(517466, 0x3872db407f000),\n    -_f2(280398, 0x37b65ce5ca500), _f2(45119934611, 0xe897fd72d67cb),\n    # C4[5], coeff of eps^12, polynomial in n of order 17\n    -_f2(9362, 0x69735ac9d0000), -_f2(41698, 3327447843 << 20),\n    -_f2(274851, 0x56e2bdf830000), -_f2(4724425, 0xa83b5c01a0000),\n    _f2(68370240, 0x5baadc4870000), -_f2(262946254, 0xff686b9240000),\n    _f2(430395020, 0x66a0aab610000), -_f2(228360148, 0x64a23696e0000),\n    -_f2(196492193, 0xc6f6cbf150000), _f2(277855749, 243039325 << 19),\n    -_f2(54565881, 0x3f0390efb0000), -_f2(10430670, 3478671393 << 17),\n    -_f2(48232829, 0x9769bd8710000), _f2(26504611, 0xd8be140f40000),\n    _f2(733724, 0x9fb250690000), _f2(8992810, 0x9e09f3a6a0000),\n    -_f2(7946224, 0xca1f6288d0000), _f2(1176502, 0x79934ee544800),\n    _f2(45119934611, 0xe897fd72d67cb),\n    # C4[5], coeff of eps^11, polynomial in n of order 18\n    -_f(0x274a66713f785000), -_f(0x78cbe0a9df914800),\n    -_f2(6986, 0x5cd0ed6f68000), -_f2(31980, 0xbaca6835fb800),\n    -_f2(217574, 0x7dc41d384b000), -_f2(3882916, 0x2edd7dacd2800),\n    _f2(58859398, 0xdc7c0f67f2000), -_f2(240755855, 0x78dc5ddf79800),\n    _f2(433769587, 0x318800cb6f000), -_f2(298315443, 0xab75c9fd0800),\n    -_f2(129660149, 0x66ef2473b4000), _f2(305615878, 0x94b6a51048800),\n    -_f2(109156237, 0x593300db57000), -_f2(18007247, 0x43b21e10e800),\n    -_f2(29424146, 0x61ad17715a000), _f2(38156138, 0xf0096c8a4a800),\n    -_f2(4683041, 0xee399b1b9d000), -_f2(1149725, 0xbf46657f8c800),\n    -_f2(1106736, 0x8c2ceac93e180), _f2(45119934611, 0xe897fd72d67cb),\n    # C4[5], coeff of eps^10, polynomial in n of order 19\n    -_f(0x3bd4906e474e000), -_f(0x97941b80ce3c000),\n    -_f(0x1a66716bc5afa000), -_f(0x532298a0bc3e0000),\n    -_f2(4939, 0xda9250746000), -_f2(23308, 0x7863f72384000),\n    -_f2(164254, 0x558c90eef2000), -_f2(3056120, 0xcef6e5fe8000),\n    _f2(48766418, 0xafc6204b42000), -_f2(213414260, 0xdc9b1ebcc000),\n    _f2(425806905, 0x15318e0496000), -_f2(369415923, 0x757d6c39f0000),\n    -_f2(31178847, 0x2c748765b6000), _f2(306118804, 0x213b4942ec000),\n    -_f2(181898310, 0x263b289662000), _f2(568685, 0x4686791808000),\n    -_f2(309548, 0x34bb55302e000), _f2(32975540, 0x34fcc4d2a4000),\n    -_f2(16246779, 0x8dca2dd5da000), _f2(1477949, 0xdae92a7065f00),\n    _f2(45119934611, 0xe897fd72d67cb),\n    # C4[5], coeff of eps^9, polynomial in n of order 20\n    -_f(0x69d018a3b9e000), -_f(0xed437c3919a800),\n    -_f(0x237e48279feb000), -_f(0x5bea2151a0b3800),\n    -_f(0x10666acb6ec18000), -_f(0x350c7e1643d3c800),\n    -_f2(3247, 0xe2be74bf45000), -_f2(15860, 0x268da19a55800),\n    -_f2(116263, 0x5e4790b892000), -_f2(2266502, 0x8314b6fb1e800),\n    _f2(38294967, 0xecf46ee8e1000), -_f2(180538484, 0x555f9ed2b7800),\n    _f2(401643505, 0x9c33fda5f4000), -_f2(432258273, 0xf8da98e440800),\n    _f2(101814780, 0x5dd5e11f87000), _f2(252370005, 0x80f91f9d26800),\n    -_f2(252307179, 0x99e21a8986000), _f2(63455824, 0x191a53ee5d800),\n    _f2(12621880, 0x95e41abad000), _f2(2033357, 0xc3307b9c44800),\n    -_f2(4727243, 0x20838a8bae80), _f2(45119934611, 0xe897fd72d67cb),\n    # C4[5], coeff of eps^8, polynomial in n of order 21\n    -_f(0xc09a6adbf4000), -_f(0x18cab6e3030000),\n    -_f(0x359d0ace62c000), -_f(0x7ab7d9cc438000),\n    -_f(0x12c67ab580a4000), -_f(856171152199 << 18),\n    -_f(0x9233f1c13ddc000), -_f(0x1e779de654b48000),\n    -_f(0x789f22a00b054000), -_f2(9796, 7021023797 << 16),\n    -_f2(75089, 0xae07706a8c000), -_f2(1543001, 0x638fcd4c58000),\n    _f2(27798321, 0x1e96e700fc000), -_f2(142306959, 0xd3ad6eb8e0000),\n    _f2(355697955, 0xce7f78ffc4000), -_f2(469861249, 0x5989105b68000),\n    _f2(259457720, 0x1370b4ff4c000), _f2(112194489, 0x36d40ed990000),\n    -_f2(260872269, 0xf8005192ec000), _f2(151422395, 0x58f7b5f388000),\n    -_f2(32332898, 0xbdc6e34964000), _f2(433029, 0xe4d3ce78fba00),\n    _f2(45119934611, 0xe897fd72d67cb),\n    # C4[5], coeff of eps^7, polynomial in n of order 22\n    -_f(0x1441fa2f35000), -_f(0x272c726527800),\n    -_f(0x4ebdd7b856000), -_f(0xa564301b74800),\n    -_f(0x16d6333bd37000), -_f(0x3580dec1951800),\n    -_f(0x865ae53c178000), -_f(0x16ec61d7f65e800),\n    -_f(0x455fa2e228b9000), -_f(0xef77f4cbfa3b800),\n    -_f(0x3d9c6e708569a000), -_f2(5230, 0x8a511fbc88800),\n    -_f2(42196, 0xcfdba8cebb000), -_f2(920786, 0xf57a80c4e5800),\n    _f2(17837247, 0x2fc56aab44000), -_f2(100064916, 0x5e72032af2800),\n    _f2(283253574, 0xc37962f3c3000), -_f2(455567530, 0xe21e28364f800),\n    _f2(400948026, 0xf028b16722000), -_f2(118913774, 0x549816fe9c800),\n    -_f2(112010399, 0x36034a3e3f000), _f2(121825743, 0x78c43cf486800),\n    -_f2(36338425, 0x426e19287b880),\n    _f2(45119934611, 0xe897fd72d67cb),\n    # C4[5], coeff of eps^6, polynomial in n of order 23\n    -_f(0x1b5badebe000), -_f(0x326332ca4000), -_f(0x5fd1bd93a000),\n    -_f(0xbcd8e5378000), -_f(0x1837bef256000),\n    -_f(0x3404424ccc000), -_f(0x75bf8cd1d2000),\n    -_f(38025986691 << 17), -_f(0x2dc96f11f6e000),\n    -_f(0x811a6e895f4000), -_f(0x195036bc82ea000),\n    -_f(0x5af70d135548000), -_f(0x187d57cdaa406000),\n    -_f2(2189, 0x32d399c61c000), -_f2(18742, 0x385cb42a82000),\n    -_f2(438375, 0xd6a8872030000), _f2(9224813, 0x89f7eb41e2000),\n    -_f2(57288808, 0xfdc8999b44000), _f2(184899999, 0x331692f966000),\n    -_f2(357870966, 0x3154fb6f18000), _f2(431875147, 0x7929b7544a000),\n    -_f2(318710001, 0xe0f19bd36c000), _f2(131641087, 0xbb852faace000),\n    -_f2(23311442, 0x9e8a4070e9d00),\n    _f2(45119934611, 0xe897fd72d67cb),\n    # C4[5], coeff of eps^5, polynomial in n of order 24\n    -_f(92116035 << 14), -_f(0x26e7bc2d800), -_f(0x46d3779b000),\n    -_f(0x84e1d0c0800), -_f(0x101cbc30a000), -_f(0x2073376e3800),\n    -_f(0x442adb8b9000), -_f(0x963884ff6800), -_f(0x15dbd71e08000),\n    -_f(0x363ebc6d59800), -_f(0x9122bbd857000),\n    -_f(0x1a90a4ab06c800), -_f(0x56f0a68cd06000),\n    -_f(0x147a29992a8f800), -_f(0x5d1402e6c175000),\n    -_f(0x228e263277d22800), -_f2(5078, 0x584c613b04000),\n    -_f2(128863, 0x92233985800), _f2(2982258, 0xd360aa0ed000),\n    -_f2(20710125, 0x5bbe664118800), _f2(76213261, 0x519df32cfe000),\n    -_f2(171479837, 0xf7a363253b800), _f2(241341994, 0x2d1ed763cf000),\n    -_f2(186491540, 0xf45203874e800), _f2(58278606, 0x8c59a11a48880),\n    _f2(45119934611, 0xe897fd72d67cb),\n    # C4[6], coeff of eps^29, polynomial in n of order 0\n    139264, _f(63626127165),\n    # C4[6], coeff of eps^28, polynomial in n of order 1\n    _f(247833 << 16), _f(4782743552), _f(0x219ae3fb400f15),\n    # C4[6], coeff of eps^27, polynomial in n of order 2\n    _f(420150473 << 18), -_f(0x876551ce0000), _f(0x350bfa156000),\n    _f2(4837, 0x68f14547adeb),\n    # C4[6], coeff of eps^26, polynomial in n of order 3\n    _f(0x297e6b0e9e1000), -_f(0x2e90de909aa000),\n    _f(0x6148b0a84b000), _f(0x1d77336bca600),\n    _f2(207992, 0x1a086a30a3679),\n    # C4[6], coeff of eps^25, polynomial in n of order 4\n    _f(0x10bc6a9e4ee30000), -_f(0xc179e3d40c9c000),\n    _f(0x3edf483df118000), -_f(0x5c91fff78634000),\n    _f(0x216fdab58654400), _f2(10078162, 0xbedd8dc0620e7),\n    # C4[6], coeff of eps^24, polynomial in n of order 5\n    _f2(17715, 0xdb1cfba26000), -_f2(7689, 0x9976d7f948000),\n    _f2(6474, 0xb1047d5d4a000), -_f2(6855, 0xa6eeabbaa4000),\n    _f(0x2ac3e335ea26e000), _f(0xd6d2e7c22e28400),\n    _f2(372892021, 0x96057cce2c163),\n    # C4[6], coeff of eps^23, polynomial in n of order 6\n    _f2(279883, 0xa92c150938000), -_f2(86797, 0xd10c69f53c000),\n    _f2(160072, 0xfd9d58a4d0000), -_f2(96731, 0xc2b3d16724000),\n    _f2(32938, 0x46d62be868000), -_f2(52162, 0xc27e2d9b0c000),\n    _f2(17103, 0x67a9fde667c00), _f2(4101812237, 0x723c5cdbe4f41),\n    # C4[6], coeff of eps^22, polynomial in n of order 7\n    _f2(293467, 0x7db7c77729000), -_f2(146628, 0x46fd92fe6000),\n    _f2(282074, 0xcdca0f3f8b000), -_f2(92435, 0x174eb2c344000),\n    _f2(105774, 0xf5edeb18ed000), -_f2(100726, 0x78839052a2000),\n    _f2(6619, 0xde4489894f000), _f2(2174, 0xdeb0a21cf2e00),\n    _f2(4101812237, 0x723c5cdbe4f41),\n    # C4[6], coeff of eps^21, polynomial in n of order 8\n    _f2(183603, 8337878185 << 19), -_f2(387951, 0x8934978f10000),\n    _f2(363243, 0x9b8677d760000), -_f2(100927, 0x6adc79e30000),\n    _f2(246790, 7131746729 << 18), -_f2(115867, 0xce56197550000),\n    _f2(45470, 0x976a005d20000), -_f2(74789, 0x6bec0ac470000),\n    _f2(21823, 0x7d1eb3d72b000), _f2(4101812237, 0x723c5cdbe4f41),\n    # C4[6], coeff of eps^20, polynomial in n of order 9\n    _f2(2390210, 0x71ea4526d8000), -_f2(11473167, 6397281565 << 18),\n    _f2(3566140, 0xe9fdb6daa8000), -_f2(3459649, 0xbdbfad5d70000),\n    _f2(5328875, 0xe507b89678000), -_f2(1202839, 0xbeff1963a0000),\n    _f2(2208040, 0x527339ea48000), -_f2(1770989, 0xb71cae09d0000),\n    _f2(48626, 0x557ebf6618000), _f2(16670, 0x4a1716aa8d000),\n    _f2(53323559086, 0xcd10b72aa064d),\n    # C4[6], coeff of eps^19, polynomial in n of order 10\n    _f2(16170911, 0xf66942f9a0000), -_f2(15946100, 0x87937e1ff0000),\n    _f2(1191966, 5683381737 << 19), -_f2(10381645, 0x67a9610710000),\n    _f2(5401104, 0xec5f94af60000), -_f2(1916345, 0x9f2b7d6630000),\n    _f2(5166787, 7293640425 << 18), -_f2(1681428, 0xa094a5ad50000),\n    _f2(912008, 0xad6a83a520000), -_f2(1452992, 0x3f13404c70000),\n    _f2(367621, 0xca46f4fdbb000), _f2(53323559086, 0xcd10b72aa064d),\n    # C4[6], coeff of eps^18, polynomial in n of order 11\n    _f2(51879505, 0x1c6021da42000), -_f2(3388727, 0x452f2e2244000),\n    _f2(10993546, 0x58785d1036000), -_f2(19450323, 0x2862de39d0000),\n    _f2(1456775, 0xebc764482a000), -_f2(7922511, 0x8d8f4f815c000),\n    _f2(7390372, 0xfe1ce59e1e000), -_f2(1065019, 0x2a2a06ce8000),\n    _f2(3871757, 0x7ef447ee12000), -_f2(2395461, 0x8df44bf074000),\n    -_f2(40351, 0xb597a7abfa000), -_f2(17707, 0xeba2dcf1c1400),\n    _f2(53323559086, 0xcd10b72aa064d),\n    # C4[6], coeff of eps^17, polynomial in n of order 12\n    _f2(18941665, 0xd940803e20000), -_f2(2462456, 0xc647b5b638000),\n    _f2(55543449, 0x9a9f25d270000), -_f2(10182797, 0xdffcb19ee8000),\n    _f2(4836527, 0xb44e233ec0000), -_f2(21402374, 0x58dcab98000),\n    _f2(3817083, 0xbef1c88b10000), -_f2(4459099, 0x992120d448000),\n    _f2(8502561, 0xac3fb5bf60000), -_f2(1525489, 0x80b8b610f8000),\n    _f2(1649611, 0x4cebe6e3b0000), -_f2(2280763, 0x4f507e59a8000),\n    _f2(482782, 0x1ffc428c24800), _f2(53323559086, 0xcd10b72aa064d),\n    # C4[6], coeff of eps^16, polynomial in n of order 13\n    _f2(169672066, 0xfc4e53058c000), -_f2(255936417, 0xcd4166f930000),\n    _f2(43044311, 0x58bada2414000), _f2(10984552, 0x79ecf34458000),\n    _f2(54615551, 0xb3c2ab069c000), -_f2(20672829, 0x547b9ae620000),\n    -_f2(762958, 0xc96d76adc000), -_f2(20252510, 0xad74c43098000),\n    _f2(8266131, 0x9541dc37ac000), -_f2(1263055, 0x9458475310000),\n    _f2(7416125, 0xebded0d634000), -_f2(3121438, 0x16f54c0588000),\n    -_f2(225538, 0xf843322744000), -_f2(111163, 0x41ef8785bb800),\n    _f2(53323559086, 0xcd10b72aa064d),\n    # C4[6], coeff of eps^15, polynomial in n of order 14\n    -_f2(371272727, 0xe93844d330000), _f2(258600199, 0x3ab9b44ef8000),\n    _f2(127447726, 0xd7dad2fc20000), -_f2(278220404, 0x7730102b8000),\n    _f2(77869881, 0xad9b189b70000), _f2(21813766, 0xb09d2ff98000),\n    _f2(46644312, 9197745227 << 18), -_f2(33841430, 0x25b28aa218000),\n    -_f2(3096455, 0x6fa54a95f0000), -_f2(14807144, 0xa86ee6dfc8000),\n    _f2(13281582, 0xf66e06a960000), -_f2(452377, 0x35cd9cb178000),\n    _f2(3621811, 0x85d91d8b0000), -_f2(3791781, 0x3a80710f28000),\n    _f2(636887, 0x5f8cc1d1bc800), _f2(53323559086, 0xcd10b72aa064d),\n    # C4[6], coeff of eps^14, polynomial in n of order 15\n    -_f2(40751652, 0x879256f716000), _f2(182461023, 0x62c00442f4000),\n    -_f2(366891419, 0xe235688602000), _f2(303920923, 0x2a6218fe88000),\n    _f2(70640959, 0xa70aa30512000), -_f2(290919308, 0xf0cc1f4de4000),\n    _f2(124435738, 0x116d522626000), _f2(24575054, 0x49539549b0000),\n    _f2(29829722, 0x6d4c4f193a000), -_f2(46205497, 0xcd680acebc000),\n    _f2(1253661, 0x8798d15a4e000), -_f2(5829398, 0x329c172b28000),\n    _f2(15178042, 0x87d0f72562000), -_f2(3413258, 0x604057df94000),\n    -_f2(544537, 0x1343d1098a000), -_f2(371792, 0x5ec0380ab3400),\n    _f2(53323559086, 0xcd10b72aa064d),\n    # C4[6], coeff of eps^13, polynomial in n of order 16\n    _f2(100946, 21976965 << 20), _f2(2010862, 0x3c46708bb0000),\n    -_f2(34502092, 0x6e09dbf3a0000), _f2(163298206, 0x527fb2e110000),\n    -_f2(355839921, 948516465 << 18), _f2(347383598, 0x3243b82e70000),\n    -_f2(2611762, 0xae3f6124e0000), -_f2(286060486, 421499843 << 16),\n    _f2(181022396, 2339564421 << 19), _f2(11053843, 0x8ea9e8f130000),\n    _f2(5354229, 0xc704cb69e0000), -_f2(50862137, 0xf12aeaf970000),\n    _f2(14064844, 5665935493 << 18), _f2(1748678, 0x2e869553f0000),\n    _f2(9719088, 0x671cfc38a0000), -_f2(6714197, 0x76aa8fd6b0000),\n    _f2(816805, 0x9ce5b98e4f000), _f2(53323559086, 0xcd10b72aa064d),\n    # C4[6], coeff of eps^12, polynomial in n of order 17\n    _f(0x75cff722d22b8000), _f2(9742, 5260669319 << 19),\n    _f2(75734, 0x79163f0448000), _f2(1568684, 0xd935dd4310000),\n    -_f2(28213944, 0x88db35f228000), _f2(141802366, 0xe4716652a0000),\n    -_f2(336424367, 0x7aaa4f7098000), _f2(384795625, 0xe2aff0230000),\n    -_f2(92516926, 0xbd45322708000), -_f2(252728877, 4730701433 << 18),\n    _f2(239978666, 0xfd893c3a88000), -_f2(28528394, 5445461995 << 16),\n    -_f2(18370370, 0x5cd8a4fbe8000), -_f2(38961300, 0x78b7628f20000),\n    _f2(30014507, 0xb37b1485a8000), -_f2(654615, 0xa96a2bf90000),\n    -_f2(667571, 0x85c41bf0c8000), -_f2(1181523, 0x1c81baa857000),\n    _f2(53323559086, 0xcd10b72aa064d),\n    # C4[6], coeff of eps^11, polynomial in n of order 18\n    _f(0x55d873de6520000), _f(0x12c7cfeef6810000),\n    _f(0x4e200e3f1e1 << 20), _f2(6671, 0xd2467fb9f0000),\n    _f2(53806, 3275978471 << 17), _f2(1163348, 0xd1cfb7f3d0000),\n    -_f2(22032298, 0xf3cc53d740000), _f2(118198962, 4397370971 << 16),\n    -_f2(306929389, 0x72efa76b60000), _f2(409945031, 0xba4df5f90000),\n    -_f2(195574008, 5584443935 << 19), -_f2(178055138, 0x4cd4f3ce90000),\n    _f2(282861404, 0xd715020c60000), -_f2(99637722, 0xf11193d4b0000),\n    -_f2(20986520, 0xfb661347c0000), -_f2(8771627, 7018708525 << 16),\n    _f2(31360164, 0xdb2c51c420000), -_f2(12477955, 8590832271 << 16),\n    _f2(873590, 0xbe0d3e9693000), _f2(53323559086, 0xcd10b72aa064d),\n    # C4[6], coeff of eps^10, polynomial in n of order 19\n    _f(0x5808512b12b000), _f(0xfaa729276e2000),\n    _f(0x3175560e4519000), _f(0xb21b680b3a90000),\n    _f(0x2fcbc5fe71407000), _f2(4229, 0xf0de326e3e000),\n    _f2(35532, 0x38e22907f5000), _f2(805604, 0x42db4fa3ec000),\n    -_f2(16150031, 0xfe4d67d51d000), _f2(93034137, 0xf6628ead9a000),\n    -_f2(265995225, 0x398943192f000), _f2(414315266, 0x970145dd48000),\n    -_f2(301204836, 0xc549c7ba41000), -_f2(51738066, 0x4e1063bb0a000),\n    _f2(275650719, 0x10481031ad000), -_f2(187610845, 0x85f00095c000),\n    _f2(25230256, 0x4ada23b49b000), _f2(13917204, 0x3da6dc4452000),\n    _f2(4066715, 0x8660f73889000), -_f2(4361677, 0xea98323d07e00),\n    _f2(53323559086, 0xcd10b72aa064d),\n    # C4[6], coeff of eps^9, polynomial in n of order 20\n    _f(0x65fa8c6bf0000), _f(0xfe88642ae4000), _f(0x2aa82304e58000),\n    _f(0x7ca8bddcccc000), _f(434853972467 << 18),\n    _f(0x5e16320d44b4000), _f(0x1a2859bf40b28000),\n    _f2(2409, 0x1b825da69c000), _f2(21179, 0xabe6860d90000),\n    _f2(506292, 0x5b6e5f0684000), -_f2(10810252, 0xeee1886808000),\n    _f2(67327238, 0xa18a80786c000), -_f2(213364581, 0xe79aac41a0000),\n    _f2(387619687, 0x51e3ba1054000), -_f2(387180015, 0xd550406b38000),\n    _f2(121695298, 0x2400c6e23c000), _f2(172879787, 0x9e57682f30000),\n    -_f2(230507460, 0xb74e70fddc000), _f2(112381926, 0x4eee70a198000),\n    -_f2(20283371, 0x42949e7bf4000), -_f2(288686, 0x988d3450a7c00),\n    _f2(53323559086, 0xcd10b72aa064d),\n    # C4[6], coeff of eps^8, polynomial in n of order 21\n    _f(0x72e86a7de000), _f(8772831327 << 15), _f(0x273ffc1812000),\n    _f(0x64635c5cac000), _f(0x11473cdd246000),\n    _f(0x33fd816c260000), _f(0xae6e2137a7a000),\n    _f(0x29ff10928814000), _f(0xc26a115cf4ae000),\n    _f(0x492994f20c1c8000), _f2(10833, 0x80f3c9e4e2000),\n    _f2(274842, 0xd406a2037c000), -_f2(6296293, 0xca802ed0ea000),\n    _f2(42731189, 0xb6f3d1e130000), -_f2(151191524, 0x41a7e788b6000),\n    _f2(320575109, 0xae49526ee4000), -_f2(416345568, 0xb8c8445e82000),\n    _f2(298319523, 0xb52957c098000), -_f2(42956565, 0x78799bae4e000),\n    -_f2(119892798, 0x70342c95b4000), _f2(103927174, 0x8691916be6000),\n    -_f2(29157346, 0x2fb5a3d22ec00),\n    _f2(53323559086, 0xcd10b72aa064d),\n    # C4[6], coeff of eps^7, polynomial in n of order 22\n    _f(74709635 << 15), _f(0x4ba47734000), _f(0xa7b994d0000),\n    _f(0x1869c5c6c000), _f(0x3c23e3d88000), _f(0x9e1c8b7a4000),\n    _f(1882100649 << 18), _f(0x573ad5a4dc000), _f(0x12f915ab6f8000),\n    _f(0x4c1f4084014000), _f(0x170ced7cbfb0000),\n    _f(0x921b89aca54c000), _f(0x599b4a7922068000),\n    _f2(38914, 0x1efa73f084000), -_f2(964915, 0x51a6da0ae0000),\n    _f2(7200274, 0x92a23dbc000), -_f2(28652022, 0x356dea628000),\n    _f2(70837833, 0x39cdeca8f4000), -_f2(114872161, 0xfcdf3a9570000),\n    _f2(122704354, 0xd9bfe74e2c000), -_f2(83141739, 0x9edadabcb8000),\n    _f2(32332898, 0xbdc6e34964000), -_f2(5485045, 0x527ae1fc73400),\n    _f2(17774519695, 0x99b03d0e3576f),\n    # C4[6], coeff of eps^6, polynomial in n of order 23\n    _f(257316433920), _f(517719121920), _f(0xfb6e649000),\n    _f(0x221f7064000), _f(0x4d84a37f000), _f(0xb958155a000),\n    _f(0x1d5dd0db5000), _f(0x4faa5a050000), _f(0xea04686eb000),\n    _f(0x2f40e3db46000), _f(0xab8623d121000), _f(0x2d147c4903c000),\n    _f(0xe63ae874e57000), _f(0x60cd21bcc932000),\n    _f(0x3f869e23e408d000), _f2(29814, 0xcc97221028000),\n    -_f2(808726, 0x6d837bf63d000), _f2(6700876, 0x1daf27af1e000),\n    -_f2(30153942, 0x8594329407000), _f2(86154121, 0x7da76bf014000),\n    -_f2(165128732, 0xdb80e436d1000), _f2(210163841, 0xd18cc55d0a000),\n    -_f2(153581269, 0x570b79c9b000), _f2(46622885, 0x3d1480e1d3a00),\n    _f2(53323559086, 0xcd10b72aa064d),\n    # C4[7], coeff of eps^29, polynomial in n of order 0\n    _f(13087612928), _f(0x90e6983c364f3d),\n    # C4[7], coeff of eps^28, polynomial in n of order 1\n    -_f(161707 << 21), _f(7239297 << 14), _f(0xcf8f801ee602cd),\n    # C4[7], coeff of eps^27, polynomial in n of order 2\n    -_f(3500022825 << 20), _f(630513507 << 19), _f(0x6038c37fa000),\n    _f2(72555, 0x626230f3330c5),\n    # C4[7], coeff of eps^26, polynomial in n of order 3\n    -_f(92252949633 << 21), _f(16187170389 << 22),\n    -_f(51975912235 << 21), _f(0x7c00d0f2b78000),\n    _f2(3119881, 0x867e38d993117),\n    # C4[7], coeff of eps^25, polynomial in n of order 4\n    -_f(0x64d0a86bae7c0000), _f(0x7c07ce24c65f0000),\n    -_f(0x739ece76489e0000), _f(0x6e7bce15f550000),\n    _f(0x24fc420030b8400), _f2(127915142, 0x8a371ad88dcaf),\n    # C4[7], coeff of eps^24, polynomial in n of order 5\n    -_f2(5990, 0xbd2326cc40000), _f2(14992, 4018200301 << 20),\n    -_f2(6873, 8929851351 << 18), _f2(2782, 8051012645 << 19),\n    -_f2(4583, 0xc89924b340000), _f(0x52aed30dcf988800),\n    _f2(430260024, 0xe82db7640b7c1),\n    # C4[7], coeff of eps^23, polynomial in n of order 6\n    -_f2(169326, 4206873009 << 17), _f2(261065, 0x25b4e353d0000),\n    -_f2(59142, 0xf0c50992c0000), _f2(111182, 4597550539 << 16),\n    -_f2(88869, 504433083 << 17), _f2(2313, 0xe34bfe3f90000),\n    _f(0x32dc48b9e1d23400), _f2(4732860273, 0xf9f6e14c7e54b),\n    # C4[7], coeff of eps^22, polynomial in n of order 7\n    -_f2(467157, 1100000847 << 20), _f2(258178, 755278933 << 21),\n    -_f2(91474, 559664221 << 20), _f2(248285, 171426119 << 22),\n    -_f2(82821, 231309675 << 20), _f2(44668, 65972935 << 21),\n    -_f2(71456, 2669582201 << 20), _f2(18220, 0x9846e079d4000),\n    _f2(4732860273, 0xf9f6e14c7e54b),\n    # C4[7], coeff of eps^21, polynomial in n of order 8\n    -_f2(10858183, 1145150433 << 21), _f2(1155453, 0xa514064740000),\n    -_f2(4408275, 1110140307 << 19), _f2(4494002, 0xa8330ec1c0000),\n    -_f2(693747, 3759921697 << 20), _f2(2336198, 8880970129 << 18),\n    -_f2(1499288, 4981657777 << 19), -_f2(18466, 6402610053 << 18),\n    -_f2(7818, 0x6ee4879b83000), _f2(61527183561, 0xb18970e26a4cf),\n    # C4[7], coeff of eps^20, polynomial in n of order 9\n    -_f2(7907170, 4058896835 << 20), _f2(1601483, 335338375 << 23),\n    -_f2(11238504, 3427529005 << 20), _f2(2745284, 1787777405 << 21),\n    -_f2(2325455, 2252860775 << 20), _f2(4939939, 712213223 << 22),\n    -_f2(1021126, 555773201 << 20), _f2(952760, 1631005375 << 21),\n    -_f2(1365312, 965324491 << 20), _f2(299618, 0x2f589c3f22000),\n    _f2(61527183561, 0xb18970e26a4cf),\n    # C4[7], coeff of eps^19, polynomial in n of order 10\n    _f2(5811147, 7891888051 << 19), _f2(19155879, 6260648859 << 18),\n    -_f2(13234724, 832589145 << 21), -_f2(473729, 0xaccee67ac0000),\n    -_f2(9690431, 2460044795 << 19), _f2(5218195, 5282091375 << 18),\n    -_f2(699193, 3313511321 << 20), _f2(4032431, 0xb01d955a40000),\n    -_f2(1901524, 5999844905 << 19), -_f2(111197, 715304509 << 18),\n    -_f2(51622, 0xdda253af9f000), _f2(61527183561, 0xb18970e26a4cf),\n    # C4[7], coeff of eps^18, polynomial in n of order 11\n    -_f2(34477536, 1085877825 << 20), _f2(44845230, 817114545 << 21),\n    _f2(4606432, 1572161669 << 20), _f2(12496576, 210421693 << 23),\n    -_f2(18271471, 1543698101 << 20), -_f2(128700, 742574025 << 21),\n    -_f2(6139017, 689151983 << 20), _f2(7385046, 100502461 << 22),\n    -_f2(590509, 2783893289 << 20), _f2(1800602, 699157181 << 21),\n    -_f2(2092277, 3566080099 << 20), _f2(381025, 0x99466ecd7c000),\n    _f2(61527183561, 0xb18970e26a4cf),\n    # C4[7], coeff of eps^17, polynomial in n of order 12\n    -_f2(152644671, 981125379 << 19), -_f2(24136152, 0xd3514f38e0000),\n    -_f2(16909786, 8097141141 << 18), _f2(53988238, 0xc115854860000),\n    -_f2(2192558, 3293732289 << 20), _f2(3853073, 2819007469 << 17),\n    -_f2(20689919, 5309095411 << 18), _f2(3514368, 0xf1b4463ee0000),\n    -_f2(1814216, 3975618817 << 19), _f2(7354899, 0xbd88356420000),\n    -_f2(2207882, 191252177 << 18), -_f2(269543, 3717910997 << 17),\n    -_f2(156646, 0x7bcb3b3a6a800), _f2(61527183561, 0xb18970e26a4cf),\n    # C4[7], coeff of eps^16, polynomial in n of order 13\n    _f2(52565396, 753292423 << 19), _f2(252855342, 568744119 << 21),\n    -_f2(197183211, 7281644191 << 19), -_f2(6678358, 3552459447 << 20),\n    _f2(4519131, 7283469291 << 19), _f2(56648760, 112164189 << 22),\n    -_f2(15289276, 2020707835 << 19), -_f2(3713103, 1403767329 << 20),\n    -_f2(17880720, 7304289905 << 19), _f2(9494998, 1497636157 << 21),\n    _f2(492167, 2907561065 << 19), _f2(3952538, 4294903605 << 20),\n    -_f2(3358139, 5130468237 << 19), _f2(480004, 0x1e727719e9000),\n    _f2(61527183561, 0xb18970e26a4cf),\n    # C4[7], coeff of eps^15, polynomial in n of order 14\n    _f2(279617399, 0xd9972cba40000), -_f2(353187715, 0x687b832220000),\n    _f2(118965967, 4456434973 << 19), _f2(220096359, 3595022681 << 17),\n    -_f2(240814657, 8170991797 << 18), _f2(28075084, 0xec7a345460000),\n    _f2(24758769, 1818605983 << 20), _f2(48013974, 0xb5345431a0000),\n    -_f2(32373431, 0xc7bac8f4c0000), -_f2(5075135, 8642954025 << 17),\n    -_f2(9094832, 6469786017 << 19), _f2(13639028, 3685620545 << 17),\n    -_f2(1773068, 1431802737 << 18), -_f2(460476, 0x51ab5a8ea0000),\n    -_f2(423738, 0x5d98934922800), _f2(61527183561, 0xb18970e26a4cf),\n    # C4[7], coeff of eps^14, polynomial in n of order 15\n    _f2(16417106, 2408387839 << 20), -_f2(93245803, 1562234793 << 21),\n    _f2(256985456, 250552029 << 20), -_f2(365861944, 857240429 << 22),\n    _f2(190902238, 1499270843 << 20), _f2(163412998, 1423242741 << 21),\n    -_f2(274443985, 2668181351 << 20), _f2(82958237, 163620913 << 23),\n    _f2(33859016, 1729347703 << 20), _f2(25275487, 1495319443 << 21),\n    -_f2(45844273, 3794232747 << 20), _f2(4490176, 231613489 << 22),\n    _f2(1010900, 690735667 << 20), _f2(10013483, 1036831025 << 21),\n    -_f2(5637707, 2068106223 << 20), _f2(570308, 0x8f0afe45ec000),\n    _f2(61527183561, 0xb18970e26a4cf),\n    # C4[7], coeff of eps^13, polynomial in n of order 16\n    -_f2(25657, 393048869 << 22), -_f2(608651, 0xacbc40d5c0000),\n    _f2(12764052, 2144856077 << 19), -_f2(76823449, 3121867141 << 18),\n    _f2(228672619, 4131243473 << 20), -_f2(367062288, 0xf756dca4c0000),\n    _f2(263470997, 8569317111 << 19), _f2(78573490, 0xffb10f8fc0000),\n    -_f2(283548774, 1794660389 << 21), _f2(154702622, 9227087281 << 18),\n    _f2(16937276, 1939608161 << 19), -_f2(6432822, 7897704317 << 18),\n    -_f2(43016670, 946798949 << 20), _f2(22087851, 0xaa7600dd40000),\n    _f2(1665577, 8523064651 << 19), -_f2(163221, 0xe0acad2e40000),\n    -_f2(1189371, 0x766c2260a3000), _f2(61527183561, 0xb18970e26a4cf),\n    # C4[7], coeff of eps^12, polynomial in n of order 17\n    -_f(0x13bc5107d5f << 20), -_f(506650109317 << 24),\n    -_f2(17217, 2185571073 << 20), -_f2(426469, 557216187 << 21),\n    _f2(9411503, 1140836685 << 20), -_f2(60299258, 66945391 << 22),\n    _f2(194753933, 1835852139 << 20), -_f2(352928157, 2046106529 << 21),\n    _f2(328231147, 2405007161 << 20), -_f2(34561926, 360605189 << 23),\n    -_f2(248371006, 3915897705 << 20), _f2(226668375, 1401273273 << 21),\n    -_f2(40114392, 2920598683 << 20), -_f2(25898188, 1028871717 << 22),\n    -_f2(16043876, 2538787453 << 20), _f2(28698456, 1825641427 << 21),\n    -_f2(9602688, 2437057327 << 20), _f2(502063, 0xa52218333a000),\n    _f2(61527183561, 0xb18970e26a4cf),\n    # C4[7], coeff of eps^11, polynomial in n of order 18\n    -_f(81880241733 << 19), -_f(651169421489 << 18),\n    -_f(194261131981 << 22), -_f(0x4616f301f1bc0000),\n    -_f2(10659, 7786635659 << 19), -_f2(276843, 0xf150eaf340000),\n    _f2(6459374, 425055961 << 20), -_f2(44283297, 2370521611 << 18),\n    _f2(156003403, 8328479919 << 19), -_f2(319848045, 0xab86b09a40000),\n    _f2(372382116, 1407449139 << 21), -_f2(166870261, 0xbaeb2e09c0000),\n    -_f2(148815577, 7753476247 << 19), _f2(260443738, 1330203003 << 18),\n    -_f2(131653575, 428167437 << 20), _f2(2775725, 691412797 << 18),\n    _f2(12306214, 6299226531 << 19), _f2(5355345, 9401097695 << 18),\n    -_f2(3966302, 0xcbc08bfb17000), _f2(61527183561, 0xb18970e26a4cf),\n    # C4[7], coeff of eps^10, polynomial in n of order 19\n    -_f(1704454843 << 20), -_f(2722537665 << 21), -_f(19434970697 << 20),\n    -_f(4989045369 << 24), -_f(394962411735 << 20),\n    -_f(0x128b33efecf << 21), -_f2(5903, 789230693 << 20),\n    -_f2(161527, 569013611 << 22), _f2(4006338, 1271698701 << 20),\n    -_f2(29564239, 1312346333 << 21), _f2(114267945, 2347153791 << 20),\n    -_f2(265827046, 63320697 << 23), _f2(379233361, 4202669809 << 20),\n    -_f2(292689947, 1148927723 << 21), _f2(19915451, 3747715939 << 20),\n    _f2(197711494, 385979271 << 22), -_f2(197401730, 911113003 << 20),\n    _f2(83971818, 387288839 << 21), -_f2(12852829, 1345691321 << 20),\n    -_f2(602476, 0x5fc28370ac000), _f2(61527183561, 0xb18970e26a4cf),\n    # C4[7], coeff of eps^9, polynomial in n of order 20\n    -_f(304621785 << 18), -_f(0xc9814e4b0000), -_f(5069418237 << 17),\n    -_f(0x7c4fe70d90000), -_f(7691534469 << 20),\n    -_f(0x7a02179d470000), -_f(0x274586580a60000),\n    -_f(0x10907db87bd50000), -_f2(2773, 9732262223 << 18),\n    -_f2(80424, 78339267 << 16), _f2(2134032, 0xd8c3d9bae0000),\n    -_f2(17066460, 0x8709888510000), _f2(72842964, 6932239995 << 19),\n    -_f2(192914141, 0x448548ebf0000), _f2(332328916, 0xa61d5e5020000),\n    -_f2(364348462, 0x260e7984d0000), _f2(215166704, 0xfd6630ec0000),\n    _f2(5301792, 6304582341 << 16), -_f2(118567350, 0x6a550b6aa0000),\n    _f2(89166503, 0x5c73fd2370000), -_f2(23960987, 0x75c7f62663400),\n    _f2(61527183561, 0xb18970e26a4cf),\n    # C4[7], coeff of eps^8, polynomial in n of order 21\n    -_f(11869221 << 18), -_f(7450235 << 20), -_f(79397539 << 18),\n    -_f(113271327 << 19), -_f(700448177 << 18), -_f(148973407 << 22),\n    -_f(9118660335 << 18), -_f(20216702289 << 19),\n    -_f(0xcadd965ff40000), -_f(386512744317 << 20),\n    -_f(0xf93c68aca7b << 18), -_f2(30847, 5279995331 << 19),\n    _f2(882325, 8584251383 << 18), -_f2(7706931, 2116826591 << 21),\n    _f2(36580048, 2730390969 << 18), -_f2(110604386, 3847062005 << 19),\n    _f2(227103584, 0x9e98f54ac0000), -_f2(323034443, 1752619391 << 20),\n    _f2(314251676, 0xb5ebcf2b40000), -_f2(199218854, 3061725287 << 19),\n    _f2(73903768, 9476063903 << 18), -_f2(12124837, 0x72a953b85800),\n    _f2(61527183561, 0xb18970e26a4cf),\n    # C4[7], coeff of eps^7, polynomial in n of order 22\n    -_f(575575 << 17), -_f(2681133 << 16), -_f(1637545 << 18),\n    -_f(16890107 << 16), -_f(23159565 << 17), -_f(0x8210e690000),\n    -_f(27276821 << 20), -_f(0x5bebf1b70000), -_f(3075032387 << 17),\n    -_f(0x6a5f183250000), -_f(40477467135 << 18),\n    -_f(0x11b5c31caf30000), -_f(0xd14cd352ff20000),\n    -_f2(6969, 0xb17d189610000), _f2(216834, 7757873387 << 19),\n    -_f2(2087035, 0xf153506af0000), _f2(11091105, 0x4b9d7f7a20000),\n    -_f2(38290720, 0xa99fbe31d0000), _f2(91897729, 0x9718fbaac0000),\n    -_f2(156643857, 0x418d7e6eb0000), _f2(184759421, 0x6102c9a360000),\n    -_f2(129331594, 0xf71b8d2590000), _f2(38395317, 0x415c2de726c00),\n    _f2(61527183561, 0xb18970e26a4cf),\n    # C4[8], coeff of eps^29, polynomial in n of order 0\n    _f(7241 << 16), _f(0x112c657acf71b),\n    # C4[8], coeff of eps^28, polynomial in n of order 1\n    _f(1165359 << 20), _f(3168035 << 17), _f(0x21ffb4a731cf423f),\n    # C4[8], coeff of eps^27, polynomial in n of order 2\n    _f(41827383 << 21), -_f(137865429 << 20), _f(631109843 << 16),\n    _f2(4837, 0x68f14547adeb),\n    # C4[8], coeff of eps^26, polynomial in n of order 3\n    _f(54350489115 << 22), -_f(21656377197 << 23), _f(1080358617 << 22),\n    _f(0x5c4a2579a0000), _f2(3535865, 0xba8f0d3ad9e09),\n    # C4[8], coeff of eps^25, polynomial in n of order 4\n    _f2(4480, 63845967 << 22), -_f(0x5f0bc8cec07 << 20),\n    _f(0x198015cca1f << 21), -_f(0x51d1e6f78cd << 20),\n    _f(0x14fb331d33f30000), _f2(144970494, 0xe0e91e6ce4f71),\n    # C4[8], coeff of eps^24, polynomial in n of order 5\n    _f2(226427, 7535956641 << 17), -_f2(36730, 6647829291 << 19),\n    _f2(116830, 5936429895 << 17), -_f2(76966, 613785099 << 18),\n    -_f(0x2a948e8d73a60000), -_f(0x116572b5168a4000),\n    _f2(5363908310, 0x81b165bd17b55),\n    # C4[8], coeff of eps^23, polynomial in n of order 6\n    _f2(151394, 3866446399 << 20), -_f2(105723, 1435687723 << 19),\n    _f2(240417, 2090106533 << 21), -_f2(54672, 3991575693 << 19),\n    _f2(46185, 3230210197 << 20), -_f2(67790, 4028416911 << 19),\n    _f2(15270, 0xa469197488000), _f2(5363908310, 0x81b165bd17b55),\n    # C4[8], coeff of eps^22, polynomial in n of order 7\n    -_f2(105618, 1394014919 << 21), -_f2(5351753, 377020849 << 22),\n    _f2(3446650, 1690522763 << 21), -_f2(453181, 286167171 << 23),\n    _f2(2431204, 1637447437 << 21), -_f2(1239333, 63204475 << 22),\n    -_f2(60030, 1665832481 << 21), -_f2(26716, 0x6a2a5d69d0000),\n    _f2(69730808036, 0x96022a9a34351),\n    # C4[8], coeff of eps^21, polynomial in n of order 8\n    _f2(4362900, 465328075 << 22), -_f2(10560212, 802403079 << 19),\n    _f2(656010, 2976408017 << 20), -_f2(3068612, 8162681445 << 19),\n    _f2(4482659, 1990068235 << 21), -_f2(516359, 5969201251 << 19),\n    _f2(1022585, 502576667 << 20), -_f2(1273161, 3447687361 << 19),\n    _f2(245310, 0x45a78ad538000), _f2(69730808036, 0x96022a9a34351),\n    # C4[8], coeff of eps^20, polynomial in n of order 9\n    _f2(23624906, 1629010283 << 19), -_f2(5851601, 324958949 << 22),\n    _f2(255419, 6850290885 << 19), -_f2(10559838, 1365338319 << 20),\n    _f2(3058631, 5351542623 << 19), -_f2(782822, 266312293 << 21),\n    _f2(4071490, 3032871865 << 19), -_f2(1457911, 2387656005 << 20),\n    -_f2(144540, 929274797 << 19), -_f2(76349, 0x2c1c25d590000),\n    _f2(69730808036, 0x96022a9a34351),\n    # C4[8], coeff of eps^19, polynomial in n of order 10\n    _f2(23056909, 2395766741 << 20), _f2(8427619, 3212023717 << 19),\n    _f2(19522568, 367619617 << 22), -_f2(12637641, 5752438869 << 19),\n    -_f2(1859539, 2126155853 << 20), -_f2(7720368, 2358643951 << 19),\n    _f2(5969641, 447801057 << 21), -_f2(4464, 2860310889 << 19),\n    _f2(1954609, 2968726289 << 20), -_f2(1904959, 7710818563 << 19),\n    _f2(302310, 0x7de136fc28000), _f2(69730808036, 0x96022a9a34351),\n    # C4[8], coeff of eps^18, polynomial in n of order 11\n    -_f2(34760584, 1377594673 << 21), -_f2(45089279, 700199389 << 22),\n    _f2(38964787, 642296389 << 21), _f2(8377867, 242649263 << 24),\n    _f2(10805340, 270655563 << 21), -_f2(18348308, 77894251 << 22),\n    -_f2(8504, 712824639 << 21), -_f2(2874058, 104939633 << 23),\n    _f2(7002991, 271121287 << 21), -_f2(1456031, 497148985 << 22),\n    -_f2(262921, 1640850307 << 21), -_f2(186713, 0x66184da2b0000),\n    _f2(69730808036, 0x96022a9a34351),\n    # C4[8], coeff of eps^17, polynomial in n of order 12\n    _f2(266733950, 1060079417 << 21), -_f2(92315127, 311764467 << 19),\n    -_f2(39784767, 2743383633 << 20), -_f2(24124714, 5368290721 << 19),\n    _f2(52035773, 16490707 << 22), -_f2(214469, 3779317103 << 19),\n    -_f2(32744, 3406796695 << 20), -_f2(19012957, 4710528797 << 19),\n    _f2(5897141, 767669011 << 21), _f2(758445, 547828629 << 19),\n    _f2(4185368, 186448291 << 20), -_f2(2955613, 5547446041 << 19),\n    _f2(363691, 0xed908404b8000), _f2(69730808036, 0x96022a9a34351),\n    # C4[8], coeff of eps^16, polynomial in n of order 13\n    -_f2(254507630, 0xe2b8b6bb40000), -_f2(58148124, 1471923579 << 20),\n    _f2(270522720, 3187458133 << 18), -_f2(149985652, 7726894061 << 19),\n    -_f2(27328603, 0x99e6e9ea40000), _f2(4011861, 407374679 << 21),\n    _f2(54943982, 0xaf3dd22640000), -_f2(17478454, 3922351195 << 19),\n    -_f2(6848089, 0x9bbe86d940000), -_f2(11885922, 3297252137 << 20),\n    _f2(11706960, 678889437 << 18), -_f2(595378, 2432546249 << 19),\n    -_f2(329167, 0xe066968840000), -_f2(450081, 0x595d162958000),\n    _f2(69730808036, 0x96022a9a34351),\n    # C4[8], coeff of eps^15, polynomial in n of order 14\n    -_f2(166710239, 3480741959 << 20), _f2(313421255, 2329933911 << 19),\n    -_f2(299209385, 1287661491 << 21), _f2(24383199, 5307535921 << 19),\n    _f2(248029318, 3243559867 << 20), -_f2(210032461, 8189928917 << 19),\n    _f2(10907073, 960500783 << 22), _f2(29948106, 2038678405 << 19),\n    _f2(40306034, 2725271357 << 20), -_f2(36745958, 6196825729 << 19),\n    -_f2(1934460, 123839633 << 21), -_f2(492518, 4761069735 << 19),\n    _f2(9949315, 1255380799 << 20), -_f2(4720329, 388065197 << 19),\n    _f2(398374, 0x9081f25c18000), _f2(69730808036, 0x96022a9a34351),\n    # C4[8], coeff of eps^14, polynomial in n of order 15\n    -_f2(5499415, 942753073 << 21), _f2(38811064, 349279653 << 22),\n    -_f2(140017234, 1709558915 << 21), _f2(290760665, 163783697 << 23),\n    -_f2(332595868, 714890693 << 21), _f2(118902683, 730607999 << 22),\n    _f2(189429058, 237701737 << 21), -_f2(256456610, 243945477 << 24),\n    _f2(78365400, 1246868327 << 21), _f2(35514427, 78282137 << 22),\n    _f2(8045132, 96899221 << 21), -_f2(42695880, 422981029 << 23),\n    _f2(15212575, 506177875 << 21), _f2(2863173, 903918451 << 22),\n    _f2(284029, 1922203905 << 21), -_f2(1161079, 0x6c18f2ad70000),\n    _f2(69730808036, 0x96022a9a34351),\n    # C4[8], coeff of eps^13, polynomial in n of order 16\n    _f2(5407, 439728533 << 23), _f2(151556, 693836399 << 19),\n    -_f2(3836797, 3870271773 << 20), _f2(28742693, 8016450573 << 19),\n    -_f2(111747677, 1508361473 << 21), _f2(256964119, 236840267 << 19),\n    -_f2(347691811, 711701031 << 20), _f2(216072654, 2622689769 << 19),\n    _f2(88295276, 790755477 << 22), -_f2(263658780, 5516898905 << 19),\n    _f2(163753678, 37603151 << 20), -_f2(1803857, 6339257275 << 19),\n    -_f2(22560155, 108468139 << 21), -_f2(21197875, 3801517693 << 19),\n    _f2(25658955, 3111371333 << 20), -_f2(7416706, 6937931487 << 19),\n    _f2(268690, 0x9ce0757848000), _f2(69730808036, 0x96022a9a34351),\n    # C4[8], coeff of eps^12, polynomial in n of order 17\n    _f(369814360487 << 19), _f(159053188703 << 23),\n    _f2(3152, 1136779065 << 19), _f2(92558, 2295771257 << 20),\n    -_f2(2473330, 1734833909 << 19), _f2(19757571, 360351901 << 21),\n    -_f2(83162616, 6619531363 << 19), _f2(212413714, 2066066043 << 20),\n    -_f2(337117487, 5524436113 << 19), _f2(299293348, 697772127 << 22),\n    -_f2(51076102, 4535292671 << 19), -_f2(200831521, 1217539203 << 20),\n    _f2(227963885, 2651839699 << 19), -_f2(87452614, 163103009 << 21),\n    -_f2(9664164, 7186873499 << 19), _f2(9739937, 3920029055 << 20),\n    _f2(6101400, 4999938359 << 19), -_f2(3588081, 0x84422b3e50000),\n    _f2(69730808036, 0x96022a9a34351),\n    # C4[8], coeff of eps^11, polynomial in n of order 18\n    _f(3576016431 << 20), _f(32208729499 << 19), _f(10983028711 << 23),\n    _f(0x9286be006280000), _f(0x65e9f47db41 << 20),\n    _f2(50386, 4528870031 << 19), -_f2(1428014, 1685009291 << 21),\n    _f2(12227031, 6176103481 << 19), -_f2(56007028, 2392678701 << 20),\n    _f2(159476659, 5817614083 << 19), -_f2(295263705, 809939737 << 22),\n    _f2(344605761, 6427356205 << 19), -_f2(202719833, 951923227 << 20),\n    -_f2(50658828, 5629491977 << 19), _f2(201884255, 1512264231 << 21),\n    -_f2(166564947, 5368120671 << 19), _f2(63259557, 2614639991 << 20),\n    -_f2(8140125, 1990873493 << 19), -_f2(722971, 0xa61c9dba68000),\n    _f2(69730808036, 0x96022a9a34351),\n    # C4[8], coeff of eps^10, polynomial in n of order 19\n    _f(45596577 << 21), _f(81531441 << 22), _f(656187675 << 21),\n    _f(191463201 << 25), _f(17391213765 << 21), _f(65094511967 << 22),\n    _f(0x16272ee843f << 21), _f2(23168, 382193603 << 23),\n    -_f2(700305, 441535191 << 21), _f2(6465118, 134564813 << 22),\n    -_f2(32414063, 913166045 << 21), _f2(103314135, 145041825 << 24),\n    -_f2(222332965, 1267927603 << 21), _f2(326070132, 55789563 << 22),\n    -_f2(309964302, 1355885369 << 21), _f2(149975409, 308317249 << 23),\n    _f2(35633361, 576916401 << 21), -_f2(113104897, 1027785623 << 22),\n    _f2(77116975, 1889590315 << 21), -_f2(20082545, 0xcd53c80110000),\n    _f2(69730808036, 0x96022a9a34351),\n    # C4[8], coeff of eps^9, polynomial in n of order 20\n    _f(1123785 << 21), _f(13838643 << 19), _f(23159565 << 20),\n    _f(171251217 << 19), _f(44667189 << 23), _f(3472549135 << 19),\n    _f(10302054723 << 20), _f(162001999341 << 19),\n    _f(500351698399 << 21), _f2(8102, 6578411627 << 19),\n    -_f2(262912, 1458939143 << 20), _f2(2634746, 8016047177 << 19),\n    -_f2(14551212, 731365323 << 22), _f2(52133305, 8561410375 << 19),\n    -_f2(129964645, 2819080401 << 20), _f2(232230181, 2215647013 << 19),\n    -_f2(298362920, 1016411147 << 21), _f2(269480987, 8039357859 << 19),\n    -_f2(161945649, 1493828379 << 20), _f2(57837731, 7816254593 << 19),\n    -_f2(9237971, 9476063903 << 15), _f2(69730808036, 0x96022a9a34351),\n    # C4[8], coeff of eps^8, polynomial in n of order 21\n    _f(292383 << 17), _f(202215 << 19), _f(2386137 << 17),\n    _f(3789747 << 18), _f(26247507 << 17), _f(6294651 << 21),\n    _f(437764365 << 17), _f(1112245757 << 18), _f(0x67551030e0000),\n    _f(28804895217 << 19), _f(0x2c0f1d988820000),\n    _f(0x66a336663d1c0000), -_f2(57641, 8501165381 << 17),\n    _f2(631918, 3696102011 << 20), -_f2(3870503, 720372107 << 17),\n    _f2(15639991, 0xcc8b836440000), -_f2(44892569, 0xd7d7de220000),\n    _f2(94682509, 2360318459 << 19), -_f2(147486216, 0x5ecdb08ae0000),\n    _f2(163873573, 0xbeaba7b6c0000), -_f2(110855652, 0xd3ce78fba0000),\n    _f2(32332898, 0xbdc6e34964000), _f2(69730808036, 0x96022a9a34351),\n    # C4[9], coeff of eps^29, polynomial in n of order 0\n    _f(16847 << 16), _f(0x3d2e2985830503),\n    # C4[9], coeff of eps^28, polynomial in n of order 1\n    -_f(207753 << 23), _f(1712087 << 18), _f(0x438da32e1600335),\n    # C4[9], coeff of eps^27, polynomial in n of order 2\n    -_f(3127493161 << 21), -_f(38277317 << 20), -_f(0xe4960490000),\n    _f2(161925, 0x30e683ffe0741),\n    # C4[9], coeff of eps^26, polynomial in n of order 3\n    -_f(9299582409 << 22), _f(3656674463 << 23), -_f(10918261107 << 22),\n    _f(80278491423 << 17), _f2(1317283, 0x4f8aa089603a9),\n    # C4[9], coeff of eps^25, polynomial in n of order 4\n    -_f(711479186953 << 22), _f2(3279, 1361598081 << 20),\n    -_f(0x3749d192179 << 21), -_f(309897952117 << 20),\n    -_f(0x1f18264b9990000), _f2(162025847, 0x379b22013c233),\n    # C4[9], coeff of eps^24, polynomial in n of order 5\n    -_f2(133856, 15001023 << 25), _f2(223946, 23087107 << 27),\n    -_f2(32028, 12079289 << 25), _f2(48931, 2142027 << 26),\n    -_f2(63933, 112742755 << 25), _f2(12842, 2153614949 << 20),\n    _f2(5994956347, 0x96bea2db115f),\n    # C4[9], coeff of eps^23, polynomial in n of order 6\n    -_f2(5988742, 4056322469 << 20), _f2(2349145, 7648181561 << 19),\n    -_f2(426462, 344885543 << 21), _f2(2475174, 940948911 << 19),\n    -_f2(999559, 3441325239 << 20), -_f2(83146, 4971496059 << 19),\n    -_f2(41198, 0x4f02423cb8000), _f2(77934432511, 0x7a7ae451fe1d3),\n    # C4[9], coeff of eps^22, polynomial in n of order 7\n    -_f2(8631189, 1052889985 << 21), -_f2(629492, 634245703 << 22),\n    -_f2(3874477, 505696163 << 21), _f2(3866974, 513650043 << 23),\n    -_f2(159710, 1408881461 << 21), _f2(1100061, 714281683 << 22),\n    -_f2(1180171, 586380503 << 21), _f2(201643, 0x9fcf910730000),\n    _f2(77934432511, 0x7a7ae451fe1d3),\n    # C4[9], coeff of eps^21, polynomial in n of order 8\n    _f2(341632, 721850923 << 22), _f2(2597220, 4632100393 << 19),\n    -_f2(10372056, 1528523471 << 20), _f2(1205419, 4719051179 << 19),\n    -_f2(1145316, 921601685 << 21), _f2(3990959, 6117017869 << 19),\n    -_f2(1073059, 3486842565 << 20), -_f2(153111, 7776387185 << 19),\n    -_f2(94130, 0x280827bb28000), _f2(77934432511, 0x7a7ae451fe1d3),\n    # C4[9], coeff of eps^20, polynomial in n of order 9\n    _f2(3783713, 134627971 << 22), _f2(23115315, 66415493 << 25),\n    -_f2(6392067, 518305043 << 22), -_f2(1733013, 275013225 << 23),\n    -_f2(8816564, 833972409 << 22), _f2(4468878, 247379557 << 24),\n    _f2(300534, 553592433 << 22), _f2(2085027, 317816093 << 23),\n    -_f2(1725044, 456624309 << 22), _f2(240877, 0x8d28f00d60000),\n    _f2(77934432511, 0x7a7ae451fe1d3),\n    # C4[9], coeff of eps^19, polynomial in n of order 10\n    -_f2(58776429, 1067354331 << 20), _f2(18829393, 7579267909 << 19),\n    _f2(10681211, 592856305 << 22), _f2(16946593, 1116323851 << 19),\n    -_f2(14277877, 2775669533 << 20), -_f2(2149268, 8027942223 << 19),\n    -_f2(4056423, 828321103 << 21), _f2(6443828, 4480734455 << 19),\n    -_f2(857619, 751312863 << 20), -_f2(227988, 4599783267 << 19),\n    -_f2(205805, 0x3340b739f8000), _f2(77934432511, 0x7a7ae451fe1d3),\n    # C4[9], coeff of eps^18, polynomial in n of order 11\n    -_f2(8326980, 196156635 << 21), -_f2(34821146, 552451591 << 22),\n    -_f2(46791029, 557069513 << 21), _f2(38334852, 177025053 << 24),\n    _f2(8937287, 838991609 << 21), _f2(5317827, 1033371567 << 22),\n    -_f2(18378967, 400717301 << 21), _f2(2844411, 12754877 << 23),\n    _f2(593018, 1659418637 << 21), _f2(4310821, 76308389 << 22),\n    -_f2(2591282, 1217948513 << 21), _f2(276451, 0x9f1a0fb950000),\n    _f2(77934432511, 0x7a7ae451fe1d3),\n    # C4[9], coeff of eps^17, polynomial in n of order 12\n    -_f2(182057178, 279202431 << 21), _f2(246730983, 7282837989 << 19),\n    -_f2(61609386, 3656132889 << 20), -_f2(45340440, 795982425 << 19),\n    -_f2(20534253, 134894613 << 22), _f2(51951312, 243959241 << 19),\n    -_f2(4823611, 581671439 << 20), -_f2(5624597, 8387045493 << 19),\n    -_f2(13789372, 989768405 << 21), _f2(9667615, 6509295661 << 19),\n    _f2(215496, 1395596667 << 20), -_f2(184969, 6596889361 << 19),\n    -_f2(459826, 0xaf07be5d28000), _f2(77934432511, 0x7a7ae451fe1d3),\n    # C4[9], coeff of eps^16, polynomial in n of order 13\n    _f2(316814308, 524172905 << 23), -_f2(186563878, 63588247 << 25),\n    -_f2(110274143, 526845649 << 23), _f2(263023219, 83035351 << 24),\n    -_f2(130904637, 509865531 << 23), -_f2(30397924, 20206077 << 26),\n    _f2(13683269, 123318603 << 23), _f2(48158450, 141529345 << 24),\n    -_f2(26437768, 420249375 << 23), -_f2(5662772, 129791197 << 25),\n    -_f2(2185901, 350246489 << 23), _f2(9629298, 177188459 << 24),\n    -_f2(3949112, 493038403 << 23), _f2(276643, 3634960421 << 18),\n    _f2(77934432511, 0x7a7ae451fe1d3),\n    # C4[9], coeff of eps^15, polynomial in n of order 14\n    _f2(78761274, 365004673 << 20), -_f2(201515576, 8484307809 << 19),\n    _f2(313194006, 1602645493 << 21), -_f2(252751914, 5568714583 << 19),\n    -_f2(13191170, 2167441005 << 20), _f2(241719441, 7606152787 << 19),\n    -_f2(201822768, 404840345 << 22), _f2(21302083, 5136432093 << 19),\n    _f2(37050656, 1255073061 << 20), _f2(20598069, 641077127 << 19),\n    -_f2(39565379, 1270355289 << 21), _f2(9630032, 7047419793 << 19),\n    _f2(3352897, 1867330359 << 20), _f2(651457, 7128437307 << 19),\n    -_f2(1114108, 0x7475455348000), _f2(77934432511, 0x7a7ae451fe1d3),\n    # C4[9], coeff of eps^14, polynomial in n of order 15\n    _f2(1503684, 1762694997 << 21), -_f2(12945810, 457623793 << 22),\n    _f2(59109631, 1997027375 << 21), -_f2(165337541, 436423661 << 23),\n    _f2(292248408, 1310925625 << 21), -_f2(302358268, 80333091 << 22),\n    _f2(101329883, 1625451155 << 21), _f2(168206436, 256940945 << 24),\n    -_f2(245462494, 1698275235 << 21), _f2(106772813, 575322475 << 22),\n    _f2(20184277, 1515722423 << 21), -_f2(15841583, 115367503 << 23),\n    -_f2(24343366, 297803839 << 21), _f2(22619454, 642864953 << 22),\n    -_f2(5751128, 1751200357 << 21), _f2(119914, 0x778fad9290000),\n    _f2(77934432511, 0x7a7ae451fe1d3),\n    # C4[9], coeff of eps^13, polynomial in n of order 16\n    -_f(494538685723 << 23), -_f2(30244, 7532247025 << 19),\n    _f2(913230, 2357276371 << 20), -_f2(8356271, 5886749331 << 19),\n    _f2(41054740, 50726383 << 21), -_f2(125953300, 8377060373 << 19),\n    _f2(252781900, 3961145001 << 20), -_f2(323011393, 7392450487 << 19),\n    _f2(214671336, 735258085 << 22), _f2(38642307, 2838366023 << 19),\n    -_f2(221064383, 2701482241 << 20), _f2(190191489, 7753766309 << 19),\n    -_f2(54203341, 2021364059 << 21), -_f2(15936650, 4639479773 << 19),\n    _f2(7069294, 1728459477 << 20), _f2(6475976, 7904740225 << 19),\n    -_f2(3243677, 0x65d7af1058000), _f2(77934432511, 0x7a7ae451fe1d3),\n    # C4[9], coeff of eps^12, polynomial in n of order 17\n    -_f(4941153649 << 22), -_f(2434362319 << 26),\n    -_f(480183190319 << 22), -_f2(15428, 422153761 << 23),\n    _f2(492912, 506448323 << 22), -_f2(4815395, 177795021 << 24),\n    _f2(25573504, 64498885 << 22), -_f2(86374812, 63633203 << 23),\n    _f2(196725482, 856584503 << 22), -_f2(303474922, 105041487 << 25),\n    _f2(296000607, 1045914233 << 22), -_f2(124541003, 470657541 << 23),\n    -_f2(96946363, 592229397 << 22), _f2(194787320, 217061649 << 24),\n    -_f2(139624521, 484247315 << 22), _f2(48044895, 435975913 << 23),\n    -_f2(5082038, 276187937 << 22), -_f2(749748, 0x6069872020000),\n    _f2(77934432511, 0x7a7ae451fe1d3),\n    # C4[9], coeff of eps^11, polynomial in n of order 18\n    -_f(231323121 << 20), -_f(2351460757 << 19), -_f(912558841 << 23),\n    -_f(0xdfda7610580000), -_f(777314384543 << 20),\n    -_f2(6590, 3852961377 << 19), _f2(223861, 17176789 << 21),\n    -_f2(2346980, 3623268951 << 19), _f2(13542533, 3871010099 << 20),\n    -_f2(50565862, 7643343277 << 19), _f2(130735502, 766383623 << 22),\n    -_f2(239800507, 7719641123 << 19), _f2(308448660, 3395101317 << 20),\n    -_f2(258446712, 3844536697 << 19), _f2(99709743, 227483207 << 21),\n    _f2(54337873, 5199140497 << 19), -_f2(105984135, 215955881 << 20),\n    _f2(67263140, 627338299 << 19), -_f2(17110329, 0x5fa94e648000),\n    _f2(77934432511, 0x7a7ae451fe1d3),\n    # C4[9], coeff of eps^10, polynomial in n of order 19\n    -_f(538707 << 21), -_f(1075491 << 22), -_f(9728097 << 21),\n    -_f(3213907 << 25), -_f(333357375 << 21), -_f(1438804621 << 22),\n    -_f(39246385997 << 21), -_f(379094211993 << 23),\n    _f2(25645, 1674653973 << 21), -_f2(290249, 472854199 << 22),\n    _f2(1830100, 1274307463 << 21), -_f2(7588281, 99130323 << 24),\n    _f2(22282256, 82312105 << 21), -_f2(48025833, 432719649 << 22),\n    _f2(76964476, 1304326427 << 21), -_f2(91125940, 162742323 << 23),\n    _f2(77471536, 1478654845 << 21), -_f2(44556474, 1023100235 << 22),\n    _f2(15423395, 377918063 << 21), -_f2(2409905, 0x7f0a0dc2b0000),\n    _f2(25978144170, 0x7e28f6c5ff5f1),\n    # C4[9], coeff of eps^9, polynomial in n of order 20\n    -_f(16575 << 21), -_f(226005 << 19), -_f(421083 << 20),\n    -_f(3487431 << 19), -_f(1025715 << 23), -_f(90604825 << 19),\n    -_f(308056405 << 20), -_f(5606626571 << 19), -_f(20270111449 << 21),\n    -_f(0x30ab7cf8ddd << 19), _f2(15220, 1707177905 << 20),\n    -_f2(187210, 7636838095 << 19), _f2(1297995, 534056013 << 22),\n    -_f2(6003229, 1506461473 << 19), _f2(20010763, 3942424887 << 20),\n    -_f2(50026909, 6827222547 << 19), _f2(95435950, 2132760845 << 21),\n    -_f2(138382128, 8075045605 << 19), _f2(146522254, 737992253 << 20),\n    -_f2(96396219, 7300467927 << 19), _f2(27713913, 0x34f39e3ee8000),\n    _f2(77934432511, 0x7a7ae451fe1d3),\n    # C4[10], coeff of eps^29, polynomial in n of order 0\n    _f(14059 << 19), _f(0x168a4531304537),\n    # C4[10], coeff of eps^28, polynomial in n of order 1\n    -_f(1004279 << 22), -_f(3373361 << 19), _f2(3807, 0xdf0925caacfb9),\n    # C4[10], coeff of eps^27, polynomial in n of order 2\n    _f(78580619 << 24), -_f(212705597 << 23), _f(705875469 << 19),\n    _f2(59656, 0xa639fabc960fd),\n    # C4[10], coeff of eps^26, polynomial in n of order 3\n    _f(927832218729 << 21), -_f(204500125453 << 22),\n    -_f(29157611613 << 21), -_f(0x66c4e2e4040000),\n    _f2(23087123, 0x49a60b16d9e77),\n    # C4[10], coeff of eps^25, polynomial in n of order 4\n    _f(26024288967 << 27), -_f(7678900515 << 25), _f(13514191015 << 26),\n    -_f(31097026337 << 25), _f(89826688809 << 21),\n    _f2(25583028, 0x820b055e82c23),\n    # C4[10], coeff of eps^24, polynomial in n of order 5\n    _f2(1328855, 126349401 << 24), -_f2(550962, 13774891 << 26),\n    _f2(2464835, 125518543 << 24), -_f2(784466, 25625323 << 25),\n    -_f2(93184, 68528187 << 24), -_f2(52198, 1190112709 << 21),\n    _f2(86138056986, 0x5ef39e09c8055),\n    # C4[10], coeff of eps^23, polynomial in n of order 6\n    -_f2(1114607, 27405733 << 26), -_f2(4563722, 53821803 << 25),\n    _f2(3169393, 348585 << 27), _f2(68182, 92955763 << 25),\n    _f2(1172595, 45755337 << 26), -_f2(1088988, 13585007 << 25),\n    _f2(166307, 46143431 << 21), _f2(86138056986, 0x5ef39e09c8055),\n    # C4[10], coeff of eps^22, polynomial in n of order 7\n    _f2(5480278, 504127481 << 20), -_f2(9293162, 155326547 << 21),\n    -_f2(197247, 3072475525 << 20), -_f2(1644302, 932629169 << 22),\n    _f2(3811061, 3287215741 << 20), -_f2(747954, 323686257 << 21),\n    -_f2(145848, 3935467265 << 20), -_f2(106662, 0xb8d6e5aaa0000),\n    _f2(86138056986, 0x5ef39e09c8055),\n    # C4[10], coeff of eps^21, polynomial in n of order 8\n    _f2(22796753, 23076841 << 25), -_f2(927290, 180149865 << 22),\n    -_f2(369606, 74581989 << 23), -_f2(9303996, 552920075 << 22),\n    _f2(3036817, 71115369 << 24), _f2(396000, 898162707 << 22),\n    _f2(2181010, 484753161 << 23), -_f2(1556188, 389640079 << 22),\n    _f2(192540, 3401040927 << 18), _f2(86138056986, 0x5ef39e09c8055),\n    # C4[10], coeff of eps^20, polynomial in n of order 9\n    _f2(862955, 1266777839 << 21), _f2(7027949, 96012647 << 24),\n    _f2(20762590, 1932890753 << 21), -_f2(9559408, 1057130891 << 22),\n    -_f2(3064719, 1040728173 << 21), -_f2(5129237, 23711641 << 23),\n    _f2(5760893, 1279205669 << 21), -_f2(394463, 240514009 << 22),\n    -_f2(178786, 1942994377 << 21), -_f2(217080, 8651652815 << 18),\n    _f2(86138056986, 0x5ef39e09c8055),\n    # C4[10], coeff of eps^19, polynomial in n of order 10\n    -_f2(10913096, 468931943 << 23), -_f2(57356320, 139563275 << 22),\n    _f2(21632622, 17971173 << 25), _f2(12352870, 1067519707 << 22),\n    _f2(10546968, 197307279 << 23), -_f2(16476123, 321986815 << 22),\n    _f2(466396, 220388453 << 24), _f2(183297, 876676071 << 22),\n    _f2(4340035, 31265157 << 23), -_f2(2266775, 500956659 << 22),\n    _f2(210337, 0xe1ea7a84c0000), _f2(86138056986, 0x5ef39e09c8055),\n    # C4[10], coeff of eps^18, polynomial in n of order 11\n    _f2(183220667, 2590575043 << 20), _f2(3573393, 1902991101 << 21),\n    -_f2(38433982, 657724943 << 20), -_f2(39892891, 403988263 << 23),\n    _f2(42677900, 967722655 << 20), _f2(4292702, 1711217099 << 21),\n    -_f2(2792039, 799969587 << 20), -_f2(14767346, 746757159 << 22),\n    _f2(7703673, 1133060475 << 20), _f2(747527, 637790873 << 21),\n    -_f2(45502, 3704918615 << 20), -_f2(458872, 0xc21d355260000),\n    _f2(86138056986, 0x5ef39e09c8055),\n    # C4[10], coeff of eps^17, polynomial in n of order 12\n    -_f2(61780842, 49135749 << 25), -_f2(196091506, 391376453 << 23),\n    _f2(232013693, 187926637 << 24), -_f2(59475550, 301219495 << 23),\n    -_f2(46331600, 62864215 << 26), -_f2(5439903, 151048009 << 23),\n    _f2(49627120, 102515675 << 24), -_f2(16690048, 509576107 << 23),\n    -_f2(7354945, 21733079 << 25), -_f2(3769052, 366616397 << 23),\n    _f2(9145462, 214930505 << 24), -_f2(3305318, 371590575 << 23),\n    _f2(189374, 6271289399 << 19), _f2(86138056986, 0x5ef39e09c8055),\n    # C4[10], coeff of eps^16, polynomial in n of order 13\n    -_f2(246951312, 552772347 << 22), _f2(295555190, 29721595 << 24),\n    -_f2(151972143, 664869293 << 22), -_f2(114414430, 423169395 << 23),\n    _f2(248915402, 492058657 << 22), -_f2(140322148, 99500631 << 25),\n    -_f2(15757705, 299151505 << 22), _f2(29401843, 368167099 << 23),\n    _f2(29725213, 39057725 << 22), -_f2(34936824, 2445655 << 24),\n    _f2(5290998, 483472011 << 22), _f2(3412892, 270211305 << 23),\n    _f2(939828, 308185177 << 22), -_f2(1058440, 2262901433 << 19),\n    _f2(86138056986, 0x5ef39e09c8055),\n    # C4[10], coeff of eps^15, polynomial in n of order 14\n    -_f2(29237793, 21929809 << 24), _f2(96597143, 85827693 << 23),\n    -_f2(210653294, 75090197 << 25), _f2(297719766, 264531499 << 23),\n    -_f2(232859751, 332419 << 24), _f2(779198, 466262825 << 23),\n    _f2(210565738, 49075321 << 26), -_f2(210231291, 35636249 << 23),\n    _f2(60435795, 147172683 << 24), _f2(30790678, 95503589 << 23),\n    -_f2(8341137, 27440903 << 25), -_f2(25891285, 147600733 << 23),\n    _f2(19770912, 119140889 << 24), -_f2(4475853, 348372575 << 23),\n    _f2(24304, 4909664935 << 19), _f2(86138056986, 0x5ef39e09c8055),\n    # C4[10], coeff of eps^14, polynomial in n of order 15\n    -_f2(326980, 1465789373 << 20), _f2(3379554, 1566468779 << 21),\n    -_f2(19029758, 226591575 << 20), _f2(68313947, 940737655 << 22),\n    -_f2(165836985, 3033756273 << 20), _f2(273579872, 472941105 << 21),\n    -_f2(286670501, 2169744907 << 20), _f2(131674848, 489609853 << 23),\n    _f2(102478771, 1504412891 << 20), -_f2(220713363, 225877065 << 21),\n    _f2(153302553, 1201451329 << 20), -_f2(29968476, 1046042243 << 22),\n    -_f2(18498599, 2914872793 << 20), _f2(4637884, 270502717 << 21),\n    _f2(6604171, 2668065421 << 20), -_f2(2936921, 0x8973648be0000),\n    _f2(86138056986, 0x5ef39e09c8055),\n    # C4[10], coeff of eps^13, polynomial in n of order 16\n    _f(8181919521 << 26), _f2(4651, 463423847 << 22),\n    -_f2(165627, 528682553 << 23), _f2(1821092, 755660373 << 22),\n    -_f2(11021646, 91392285 << 24), _f2(43145010, 992272131 << 22),\n    -_f2(116748177, 310953403 << 23), _f2(223068773, 47271409 << 22),\n    -_f2(294932999, 99296991 << 25), _f2(242263024, 286305695 << 22),\n    -_f2(60276785, 30271037 << 23), -_f2(125363778, 717272947 << 22),\n    _f2(182026841, 37372833 << 24), -_f2(116787755, 417593029 << 22),\n    _f2(36759949, 346012225 << 23), -_f2(3061422, 962217431 << 22),\n    -_f2(731281, 0xaaf6b13240000), _f2(86138056986, 0x5ef39e09c8055),\n    # C4[10], coeff of eps^12, polynomial in n of order 17\n    _f(777809483 << 21), _f(436668683 << 25), _f(99139014933 << 21),\n    _f(0x1cfc4bfd58d << 22), -_f2(70023, 1623299233 << 21),\n    _f2(822756, 446933025 << 23), -_f2(5376526, 2111656919 << 21),\n    _f2(23042396, 297910775 << 22), -_f2(69630161, 297782669 << 21),\n    _f2(153266731, 112309515 << 24), -_f2(247130955, 1577554627 << 21),\n    _f2(284460705, 580739169 << 22), -_f2(212091093, 1801700473 << 21),\n    _f2(61297082, 319619083 << 23), _f2(65462218, 2096893009 << 21),\n    -_f2(98426842, 1047683893 << 22), _f2(59152561, 1235484315 << 21),\n    -_f2(14780753, 0xb5d74354c0000),\n    _f2(86138056986, 0x5ef39e09c8055),\n    # C4[10], coeff of eps^11, polynomial in n of order 18\n    _f(1233981 << 23), _f(14104237 << 22), _f(6201077 << 26),\n    _f(933195507 << 22), _f(6966040851 << 23), _f(592370721657 << 22),\n    -_f2(22184, 189431713 << 24), _f2(279989, 474035391 << 22),\n    -_f2(1985627, 52832535 << 23), _f2(9357698, 635528005 << 22),\n    -_f2(31645438, 92987147 << 25), _f2(79909927, 996806539 << 22),\n    -_f2(153562851, 494252097 << 23), _f2(225351987, 543734289 << 22),\n    -_f2(249473559, 252214923 << 24), _f2(201676475, 478217047 << 22),\n    -_f2(111804841, 353712747 << 23), _f2(37701632, 700509149 << 22),\n    -_f2(5783773, 3281237837 << 18), _f2(86138056986, 0x5ef39e09c8055),\n    # C4[10], coeff of eps^10, polynomial in n of order 19\n    _f(57057 << 20), _f(126819 << 21), _f(1284843 << 20),\n    _f(478667 << 24), _f(56414325 << 20), _f(279062861 << 21),\n    _f(8810413183 << 20), _f(99625441377 << 22),\n    -_f2(3997, 1800115191 << 20), _f2(54510, 559965495 << 21),\n    -_f2(421909, 1796318189 << 20), _f2(2196607, 410595787 << 23),\n    -_f2(8328804, 1896277603 << 20), _f2(24012916, 1506461473 << 21),\n    -_f2(53875133, 2685050457 << 20), _f2(94820235, 193579723 << 22),\n    -_f2(129680615, 3269639887 << 20), _f2(131955714, 608596747 << 21),\n    -_f2(84828673, 2009615045 << 20), _f2(24099054, 0xf664899ae0000),\n    _f2(86138056986, 0x5ef39e09c8055),\n    # C4[11], coeff of eps^29, polynomial in n of order 0\n    -_f(255169 << 19), _f(0xbdc79d6e266b55f),\n    # C4[11], coeff of eps^28, polynomial in n of order 1\n    -_f(535829 << 26), _f(6461547 << 20), _f(0x56e2cdab4666fea1),\n    # C4[11], coeff of eps^27, polynomial in n of order 2\n    -_f(54075943 << 25), -_f(11012147 << 24), -_f(184884229 << 19),\n    _f2(65338, 0x3c271ece8bf8f),\n    # C4[11], coeff of eps^26, polynomial in n of order 3\n    -_f(29189823 << 30), _f(157366885 << 32), -_f(637753597 << 30),\n    _f(13332470307 << 23), _f2(19666808, 0xb9ff38da93b23),\n    # C4[11], coeff of eps^25, polynomial in n of order 4\n    -_f2(768828, 16543417 << 28), _f2(2405043, 41201001 << 26),\n    -_f2(595679, 17511625 << 27), -_f2(94147, 42169149 << 26),\n    -_f2(60455, 661597895 << 21), _f2(94341681461, 0x436c57c191ed7),\n    # C4[11], coeff of eps^24, polynomial in n of order 5\n    -_f2(5042070, 2793567 << 28), _f2(2454743, 3154771 << 30),\n    _f2(191058, 8757223 << 28), _f2(1233521, 5992667 << 29),\n    -_f2(1001395, 9125891 << 28), _f2(137539, 51052897 << 22),\n    _f2(94341681461, 0x436c57c191ed7),\n    # C4[11], coeff of eps^23, polynomial in n of order 6\n    -_f2(7620321, 6390387 << 27), -_f2(1118882, 49853273 << 26),\n    -_f2(2175696, 13938625 << 28), _f2(3557797, 45648113 << 26),\n    -_f2(479218, 13589073 << 27), -_f2(128928, 23280229 << 26),\n    -_f2(115227, 1709406351 << 21), _f2(94341681461, 0x436c57c191ed7),\n    # C4[11], coeff of eps^22, polynomial in n of order 7\n    _f2(3030693, 3978133 << 30), _f2(1618004, 874507 << 32),\n    -_f2(9217736, 134985 << 30), _f2(1767041, 97063 << 33),\n    _f2(345531, 3069873 << 30), _f2(2240563, 263433 << 32),\n    -_f2(1400217, 895853 << 30), _f2(154222, 296573467 << 23),\n    _f2(94341681461, 0x436c57c191ed7),\n    # C4[11], coeff of eps^21, polynomial in n of order 8\n    _f2(304504, 49998275 << 26), _f2(21950325, 110791689 << 23),\n    -_f2(5005332, 65785063 << 24), -_f2(3038456, 102319349 << 23),\n    -_f2(5977063, 34913149 << 25), _f2(5022754, 485487661 << 23),\n    -_f2(45293, 7681997 << 24), -_f2(123970, 179449809 << 23),\n    -_f2(222792, 7672407751 << 18), _f2(94341681461, 0x436c57c191ed7),\n    # C4[11], coeff of eps^20, polynomial in n of order 9\n    -_f2(56432361, 120691497 << 25), _f2(6246807, 9955417 << 28),\n    _f2(11410351, 83254233 << 25), _f2(14692579, 49664915 << 26),\n    -_f2(13833928, 124401461 << 25), -_f2(1245123, 9835207 << 27),\n    -_f2(339985, 114545011 << 25), _f2(4291293, 22713457 << 26),\n    -_f2(1980685, 98627585 << 25), _f2(159775, 7030690975 << 19),\n    _f2(94341681461, 0x436c57c191ed7),\n    # C4[11], coeff of eps^19, polynomial in n of order 10\n    _f2(40826627, 234278683 << 24), -_f2(19124677, 161584861 << 23),\n    -_f2(51024100, 50981393 << 26), _f2(30646271, 384869645 << 23),\n    _f2(9815197, 6859997 << 24), _f2(639236, 244693975 << 23),\n    -_f2(14951689, 12090449 << 25), _f2(5916250, 151054657 << 23),\n    _f2(1073676, 226322463 << 24), _f2(80953, 380993803 << 23),\n    -_f2(451111, 0xff79096c0000), _f2(94341681461, 0x436c57c191ed7),\n    # C4[11], coeff of eps^18, polynomial in n of order 11\n    -_f2(233788807, 3535193 << 28), _f2(177892093, 3762413 << 30),\n    -_f2(5486729, 8981851 << 28), -_f2(45008759, 222901 << 32),\n    -_f2(22295157, 5977845 << 28), _f2(46499690, 3347131 << 30),\n    -_f2(8381947, 991351 << 28), -_f2(7636513, 1723229 << 31),\n    -_f2(5108235, 6476849 << 28), _f2(8568922, 940153 << 30),\n    -_f2(2769555, 11314291 << 28), _f2(126172, 1159668425 << 21),\n    _f2(94341681461, 0x436c57c191ed7),\n    # C4[11], coeff of eps^17, polynomial in n of order 12\n    _f2(246666787, 23370677 << 26), -_f2(50685638, 204720607 << 24),\n    -_f2(179803952, 51059789 << 25), _f2(226753224, 100010811 << 24),\n    -_f2(83690537, 703961 << 27), -_f2(36110826, 15584139 << 24),\n    _f2(17880019, 26951173 << 25), _f2(35367319, 73259919 << 24),\n    -_f2(29730133, 51577369 << 26), _f2(2029349, 105583177 << 24),\n    _f2(3224077, 120316375 << 25), _f2(1158582, 83501667 << 24),\n    -_f2(999784, 6146420159 << 19), _f2(94341681461, 0x436c57c191ed7),\n    # C4[11], coeff of eps^16, polynomial in n of order 13\n    _f2(135472555, 2919565 << 26), -_f2(240891001, 9823619 << 28),\n    _f2(277187915, 48314475 << 26), -_f2(153860890, 22130685 << 27),\n    -_f2(78071452, 50966567 << 26), _f2(224257271, 6520287 << 29),\n    -_f2(168898235, 23643785 << 26), _f2(25365615, 30758325 << 27),\n    _f2(33991594, 22223845 << 26), -_f2(1325267, 13358465 << 28),\n    -_f2(26274549, 1352253 << 26), _f2(17195323, 12709799 << 27),\n    -_f2(3493469, 55138895 << 26), -_f2(37171, 2996514251 << 20),\n    _f2(94341681461, 0x436c57c191ed7),\n    # C4[11], coeff of eps^15, polynomial in n of order 14\n    _f2(8369149, 65829073 << 25), -_f2(34468304, 77612041 << 24),\n    _f2(98238486, 50466661 << 26), -_f2(197855127, 257258223 << 24),\n    _f2(275634083, 126808451 << 25), -_f2(237329411, 109823349 << 24),\n    _f2(57709083, 378039 << 27), _f2(144028485, 10992165 << 24),\n    -_f2(208082193, 86131531 << 25), _f2(120116321, 182851999 << 24),\n    -_f2(12733337, 27687817 << 26), -_f2(18886416, 178008391 << 24),\n    _f2(2557866, 23705959 << 25), _f2(6572718, 173475635 << 24),\n    -_f2(2666354, 4022017967 << 19), _f2(94341681461, 0x436c57c191ed7),\n    # C4[11], coeff of eps^14, polynomial in n of order 15\n    _f2(54399, 8224347 << 28), -_f2(665621, 1410497 << 30),\n    _f2(4527846, 10561865 << 28), -_f2(20181039, 1593975 << 31),\n    _f2(63299017, 4532479 << 28), -_f2(144047710, 3737571 << 30),\n    _f2(238046961, 3527085 << 28), -_f2(274611219, 485845 << 32),\n    _f2(189061064, 3080067 << 28), -_f2(9459768, 127989 << 30),\n    -_f2(141083601, 3627343 << 28), _f2(166868825, 1278147 << 31),\n    -_f2(97711641, 16702617 << 28), _f2(28303864, 4120681 << 30),\n    -_f2(1707991, 14300715 << 28), -_f2(691965, 964491519 << 21),\n    _f2(94341681461, 0x436c57c191ed7),\n    # C4[11], coeff of eps^13, polynomial in n of order 16\n    -_f(394848061 << 27), -_f(277855615551 << 23),\n    _f2(21507, 221049445 << 24), -_f2(280152, 15918397 << 23),\n    _f2(2046623, 76965257 << 25), -_f2(9908745, 30179611 << 23),\n    _f2(34287090, 9035647 << 24), -_f2(88042794, 304571673 << 23),\n    _f2(170266683, 41403331 << 26), -_f2(246546803, 514564215 << 23),\n    _f2(257558635, 22204697 << 24), -_f2(171596509, 74164853 << 23),\n    _f2(32098211, 100286083 << 25), _f2(71621283, 185724333 << 23),\n    -_f2(91026815, 208301517 << 24), _f2(52421624, 501338287 << 23),\n    -_f2(12919309, 7987587551 << 18), _f2(94341681461, 0x436c57c191ed7),\n    # C4[11], coeff of eps^12, polynomial in n of order 17\n    -_f(2506701 << 25), -_f(1595211 << 29), -_f(414133331 << 25),\n    -_f(9611154693 << 26), _f2(6318, 129560535 << 25),\n    -_f2(88018, 7994433 << 27), _f2(693686, 99032081 << 25),\n    -_f2(3663195, 37640223 << 26), _f2(14022738, 83451835 << 25),\n    -_f2(40598902, 6803915 << 28), _f2(90961965, 119128629 << 25),\n    -_f2(159220781, 788729 << 26), _f2(217217490, 112380639 << 25),\n    -_f2(227284915, 26366059 << 27), _f2(176075660, 9208089 << 25),\n    -_f2(94610548, 45670931 << 26), _f2(31201351, 21556291 << 25),\n    -_f2(4712704, 700509149 << 19), _f2(94341681461, 0x436c57c191ed7),\n    # C4[11], coeff of eps^11, polynomial in n of order 18\n    -_f(13041 << 24), -_f(166957 << 23), -_f(82777 << 27),\n    -_f(14154867 << 23), -_f(121102751 << 24), -_f(11919970777 << 23),\n    _f(140288886837 << 25), -_f2(15649, 252654239 << 23),\n    _f2(133731, 225409843 << 24), -_f2(773734, 115698949 << 23),\n    _f2(3285982, 23309223 << 26), -_f2(10716783, 181102411 << 23),\n    _f2(27557442, 232845957 << 24), -_f2(56645854, 420384689 << 23),\n    _f2(93299054, 125728615 << 25), -_f2(121534295, 132369527 << 23),\n    _f2(119605179, 120525655 << 24), -_f2(75403265, 163638237 << 23),\n    _f2(21207168, 6304582341 << 18), _f2(94341681461, 0x436c57c191ed7),\n    # C4[12], coeff of eps^29, polynomial in n of order 0\n    _f(2113 << 23), _f(0x495846bc80a035),\n    # C4[12], coeff of eps^28, polynomial in n of order 1\n    -_f(5059597 << 25), -_f(23775299 << 22),\n    _f2(61953, 0x75e619a89ce07),\n    # C4[12], coeff of eps^27, polynomial in n of order 2\n    _f(30823201 << 29), -_f(55301563 << 28), _f(131431881 << 24),\n    _f2(497138, 0xbe8dd4238d2e7),\n    # C4[12], coeff of eps^26, polynomial in n of order 3\n    _f(8059635627 << 28), -_f(757042391 << 29), -_f(311216327 << 28),\n    -_f(7273579 << 33), _f2(21376966, 0x1d2a1f8b6ccd),\n    # C4[12], coeff of eps^25, polynomial in n of order 4\n    _f2(590308, 751003 << 30), _f2(77521, 16047653 << 28),\n    _f2(426657, 125003 << 29), -_f2(306166, 5244457 << 28),\n    _f2(37995, 207060411 << 24), _f2(34181768645, 0x62a1b07dc9473),\n    # C4[12], coeff of eps^24, polynomial in n of order 5\n    -_f2(1599658, 2394579 << 27), -_f2(2671318, 5123391 << 29),\n    _f2(3256460, 16377243 << 27), -_f2(261261, 3982303 << 28),\n    -_f2(106562, 1204279 << 27), -_f2(120793, 1029973 << 24),\n    _f2(102545305936, 0x27e511795bd59),\n    # C4[12], coeff of eps^23, polynomial in n of order 6\n    _f2(1248773, 4542469 << 29), -_f2(2889741, 9813249 << 28),\n    _f2(234885, 3135591 << 30), _f2(66922, 9908313 << 28),\n    _f2(755418, 635863 << 29), -_f2(419245, 13200621 << 28),\n    _f2(41213, 192739239 << 24), _f2(34181768645, 0x62a1b07dc9473),\n    # C4[12], coeff of eps^22, polynomial in n of order 7\n    _f2(20885911, 4938503 << 28), -_f2(1107830, 1234733 << 29),\n    -_f2(2370377, 3771643 << 28), -_f2(6561451, 624527 << 30),\n    _f2(4279851, 10797315 << 28), _f2(210660, 3761905 << 29),\n    -_f2(68724, 2033407 << 28), -_f2(224555, 1152577 << 29),\n    _f2(102545305936, 0x27e511795bd59),\n    # C4[12], coeff of eps^21, polynomial in n of order 8\n    -_f2(5562062, 38325 << 31), _f2(7741765, 4470897 << 28),\n    _f2(17399328, 6149297 << 29), -_f2(10890962, 10744893 << 28),\n    -_f2(2368414, 446197 << 30), -_f2(891562, 9146315 << 28),\n    _f2(4183586, 393403 << 29), -_f2(1730085, 6072185 << 28),\n    _f2(120797, 18742483 << 24), _f2(102545305936, 0x27e511795bd59),\n    # C4[12], coeff of eps^20, polynomial in n of order 9\n    _f2(3332722, 179104103 << 24), -_f2(54245156, 21887465 << 27),\n    _f2(18428910, 34326153 << 24), _f2(12293411, 106053413 << 25),\n    _f2(4024929, 78680811 << 24), -_f2(14528270, 1262953 << 26),\n    _f2(4350569, 36952333 << 24), _f2(1251271, 92345015 << 25),\n    _f2(191236, 5049199 << 24), -_f2(439124, 1983321823 << 21),\n    _f2(102545305936, 0x27e511795bd59),\n    # C4[12], coeff of eps^19, polynomial in n of order 10\n    _f2(117817828, 9756529 << 27), _f2(29304818, 21859033 << 26),\n    -_f2(33857646, 3348243 << 29), -_f2(34756825, 30241097 << 26),\n    _f2(40576649, 11012471 << 27), -_f2(1809964, 37385419 << 26),\n    -_f2(7014724, 9945043 << 28), -_f2(6163099, 62399597 << 26),\n    _f2(7950550, 2557949 << 27), -_f2(2323999, 3159279 << 26),\n    _f2(80031, 1030811061 << 22), _f2(102545305936, 0x27e511795bd59),\n    # C4[12], coeff of eps^18, polynomial in n of order 11\n    _f2(37677439, 43610729 << 26), -_f2(212417438, 31724009 << 27),\n    _f2(188774384, 60946099 << 26), -_f2(37276694, 6182933 << 29),\n    -_f2(44097735, 31570179 << 26), _f2(5696664, 10497345 << 27),\n    _f2(38054298, 7154503 << 26), -_f2(24525159, 12952085 << 28),\n    -_f2(350073, 57822319 << 26), _f2(2901654, 18012267 << 27),\n    _f2(1319354, 63457243 << 26), -_f2(941373, 59576227 << 26),\n    _f2(102545305936, 0x27e511795bd59),\n    # C4[12], coeff of eps^17, polynomial in n of order 12\n    -_f2(253394431, 1462439 << 28), _f2(237669216, 409221 << 26),\n    -_f2(76296320, 28335185 << 27), -_f2(133872864, 17217849 << 26),\n    _f2(218174046, 2622387 << 29), -_f2(127998192, 57914967 << 26),\n    _f2(363472, 30718057 << 27), _f2(32681168, 4189163 << 26),\n    _f2(4677048, 16088179 << 28), -_f2(25857930, 7142835 << 26),\n    _f2(14914891, 9312419 << 27), -_f2(2731797, 52301425 << 26),\n    -_f2(76352, 726189181 << 22), _f2(102545305936, 0x27e511795bd59),\n    # C4[12], coeff of eps^16, polynomial in n of order 13\n    -_f2(53643409, 97684423 << 25), _f2(127408278, 3174879 << 27),\n    -_f2(219370358, 126672641 << 25), _f2(262176902, 49024297 << 26),\n    -_f2(182579118, 132254331 << 25), -_f2(3956056, 15289739 << 28),\n    _f2(167880537, 57011019 << 25), -_f2(188895775, 46555265 << 26),\n    _f2(91621970, 25449425 << 25), -_f2(762367, 26232331 << 27),\n    -_f2(18049661, 12932969 << 25), _f2(839158, 10679509 << 26),\n    _f2(6440415, 29973277 << 25), -_f2(2428550, 982597961 << 22),\n    _f2(102545305936, 0x27e511795bd59),\n    # C4[12], coeff of eps^15, polynomial in n of order 14\n    -_f2(1786573, 13634499 << 27), _f2(8939902, 21088027 << 26),\n    -_f2(31907799, 6174271 << 28), _f2(84216248, 4944333 << 26),\n    -_f2(166330228, 11364729 << 27), _f2(242706491, 8863071 << 26),\n    -_f2(246937724, 7698133 << 29), _f2(139651898, 50060433 << 26),\n    _f2(29493809, 19297617 << 27), -_f2(148014628, 18656733 << 26),\n    _f2(151165884, 622571 << 28), -_f2(81883041, 55488299 << 26),\n    _f2(21903841, 15379355 << 27), -_f2(792996, 14574745 << 26),\n    -_f2(644309, 457907141 << 22), _f2(102545305936, 0x27e511795bd59),\n    # C4[12], coeff of eps^14, polynomial in n of order 15\n    -_f2(6504, 28793619 << 26), _f2(93075, 33271365 << 27),\n    -_f2(752118, 6462873 << 26), _f2(4061558, 11832697 << 28),\n    -_f2(15840997, 35193887 << 26), _f2(46482714, 19239327 << 27),\n    -_f2(104709924, 13039269 << 26), _f2(181860520, 7828435 << 29),\n    -_f2(240159499, 36173099 << 26), _f2(229992094, 10037497 << 27),\n    -_f2(136854274, 43911089 << 26), _f2(9990763, 2550227 << 28),\n    _f2(74520212, 5689801 << 26), -_f2(84057599, 709549 << 27),\n    _f2(46786776, 54603587 << 26), -_f2(11406945, 39298831 << 26),\n    _f2(102545305936, 0x27e511795bd59),\n    # C4[12], coeff of eps^13, polynomial in n of order 16\n    _f(1030055 << 30), _f(829418525 << 26), -_f(19924010015 << 27),\n    _f2(9050, 10804695 << 26), -_f2(78488, 9283787 << 28),\n    _f2(459151, 22444081 << 26), -_f2(1962716, 17985613 << 27),\n    _f2(6408338, 7820523 << 26), -_f2(16395176, 1626457 << 29),\n    _f2(33311385, 35536325 << 26), -_f2(53946341, 7054843 << 27),\n    _f2(69201696, 61410431 << 26), -_f2(69012103, 3773337 << 28),\n    _f2(51544754, 7834329 << 26), -_f2(26961871, 12889641 << 27),\n    _f2(8722958, 26104467 << 26), -_f2(1300056, 320360129 << 22),\n    _f2(34181768645, 0x62a1b07dc9473),\n    # C4[12], coeff of eps^12, polynomial in n of order 17\n    _f(127075 << 24), _f(91195 << 28), _f(26902525 << 24),\n    _f(715607165 << 25), -_f(73094160425 << 24),\n    _f2(4440, 35913265 << 26), -_f2(41519, 978831 << 24),\n    _f2(264211, 112928967 << 25), -_f2(1241795, 175695285 << 24),\n    _f2(4515620, 18853435 << 27), -_f2(13069247, 261014043 << 24),\n    _f2(30619380, 129358865 << 25), -_f2(58537051, 226171969 << 24),\n    _f2(91194564, 65482939 << 26), -_f2(113993206, 58979239 << 24),\n    _f2(109036979, 115740763 << 25), -_f2(67602927, 138149837 << 24),\n    _f2(18850816, 700509149 << 21), _f2(102545305936, 0x27e511795bd59),\n    # C4[13], coeff of eps^29, polynomial in n of order 0\n    -_f(634219 << 23), _f2(3193, 0x402148867236b),\n    # C4[13], coeff of eps^28, polynomial in n of order 1\n    -_f(400561 << 32), _f(1739049 << 27), _f2(66909, 0xbcc54ee94d445),\n    # C4[13], coeff of eps^27, polynomial in n of order 2\n    -_f(6387996953 << 29), -_f(3461245957 << 28), -_f(49206438547 << 24),\n    _f2(286172946, 0xcc6f5fc7e64c9),\n    # C4[13], coeff of eps^26, polynomial in n of order 3\n    _f(7296571113 << 30), _f2(10661, 1488313 << 31),\n    -_f2(6836, 2507629 << 30), _f(103233906747 << 25),\n    _f2(900397808, 0x384bb07b32421),\n    # C4[13], coeff of eps^25, polynomial in n of order 4\n    -_f2(1030602, 1434287 << 30), _f2(976249, 6303335 << 28),\n    -_f2(29214, 7243007 << 29), -_f2(27193, 4360723 << 28),\n    -_f2(41363, 170006437 << 24), _f2(36916310137, 0x41f43bb0c949),\n    # C4[13], coeff of eps^24, polynomial in n of order 5\n    -_f2(2597630, 109963 << 31), -_f2(46366, 88065 << 33),\n    _f(835763379 << 31), _f2(754229, 667751 << 32),\n    -_f2(376195, 1000319 << 31), _f2(33027, 62908623 << 26),\n    _f2(36916310137, 0x41f43bb0c949),\n    # C4[13], coeff of eps^23, polynomial in n of order 6\n    _f2(1907767, 7512493 << 29), -_f2(1322539, 10099505 << 28),\n    -_f2(6889396, 2784065 << 30), _f2(3566231, 12064393 << 28),\n    _f2(392016, 1668111 << 29), -_f2(16024, 9677725 << 28),\n    -_f2(223530, 46890859 << 24), _f2(110748930411, 0xc5dcb3125bdb),\n    # C4[13], coeff of eps^22, polynomial in n of order 7\n    _f2(2768819, 1533979 << 30), _f2(18682895, 1051157 << 31),\n    -_f2(7962826, 2061455 << 30), -_f2(3008388, 501585 << 32),\n    -_f2(1419492, 411945 << 30), _f2(4033867, 1208903 << 31),\n    -_f2(1511425, 98131 << 30), _f2(90538, 115806565 << 25),\n    _f2(110748930411, 0xc5dcb3125bdb),\n    # C4[13], coeff of eps^21, polynomial in n of order 8\n    -_f2(51332124, 214119 << 31), _f2(7579765, 3153587 << 28),\n    _f2(12475441, 1655707 << 29), _f2(7005177, 5256105 << 28),\n    -_f2(13679833, 119207 << 30), _f2(3016909, 4530623 << 28),\n    _f2(1323928, 2024201 << 29), _f2(284896, 6925237 << 28),\n    -_f2(424636, 138679005 << 24), _f2(110748930411, 0xc5dcb3125bdb),\n    # C4[13], coeff of eps^20, polynomial in n of order 9\n    _f2(47250711, 14679 << 32), -_f2(18472981, 62575 << 35),\n    -_f2(42459575, 893863 << 32), _f2(33307537, 106651 << 33),\n    _f2(3060800, 842635 << 32), -_f2(5867540, 102671 << 34),\n    -_f2(6941741, 849331 << 32), _f2(7324844, 423881 << 33),\n    -_f2(1953157, 771073 << 32), _f2(46148, 28524089 << 27),\n    _f2(110748930411, 0xc5dcb3125bdb),\n    # C4[13], coeff of eps^19, polynomial in n of order 10\n    -_f2(218954922, 27801141 << 27), _f2(144947317, 36456347 << 26),\n    -_f2(2491117, 129025 << 29), -_f2(43746541, 53566187 << 26),\n    -_f2(5414513, 33128531 << 27), _f2(38475112, 39418671 << 26),\n    -_f2(19653214, 3660993 << 28), -_f2(2031714, 8235735 << 26),\n    _f2(2517568, 31068687 << 27), _f2(1433299, 8158787 << 26),\n    -_f2(884985, 911850811 << 22), _f2(110748930411, 0xc5dcb3125bdb),\n    # C4[13], coeff of eps^18, polynomial in n of order 11\n    _f2(186784429, 10521821 << 28), -_f2(7066121, 6171767 << 29),\n    -_f2(168709085, 159265 << 28), _f2(199772613, 1997709 << 31),\n    -_f2(91000398, 5796399 << 28), -_f2(16385586, 3500385 << 29),\n    _f2(28845005, 1198547 << 28), _f2(9523912, 3994797 << 30),\n    -_f2(24921512, 7172347 << 28), _f2(12920997, 2065141 << 29),\n    -_f2(2137442, 11262329 << 28), -_f2(100773, 90157665 << 23),\n    _f2(110748930411, 0xc5dcb3125bdb),\n    # C4[13], coeff of eps^17, polynomial in n of order 12\n    _f2(153014747, 10291963 << 28), -_f2(229746959, 27043849 << 26),\n    _f2(237324258, 14238909 << 27), -_f2(127910449, 9268979 << 26),\n    -_f2(52661288, 2811671 << 29), _f2(178449477, 48064707 << 26),\n    -_f2(166899831, 11458293 << 27), _f2(67870692, 24951769 << 26),\n    _f2(7326612, 206249 << 28), -_f2(16569622, 39442673 << 26),\n    -_f2(550002, 21806887 << 27), _f2(6246699, 62490405 << 26),\n    -_f2(2219585, 747027389 << 22), _f2(110748930411, 0xc5dcb3125bdb),\n    # C4[13], coeff of eps^16, polynomial in n of order 13\n    _f2(15145062, 3114639 << 29), -_f2(45473383, 71569 << 31),\n    _f2(104280194, 4043033 << 29), -_f2(182691434, 3191599 << 30),\n    _f2(238813543, 4302931 << 29), -_f2(215430056, 686779 << 32),\n    _f2(95643898, 4170781 << 29), _f2(58502156, 871831 << 30),\n    -_f2(149008930, 6169513 << 29), _f2(135928257, 1117477 << 31),\n    -_f2(68778720, 227103 << 29), _f2(17013972, 3743517 << 30),\n    -_f2(171458, 5381733 << 29), -_f2(594747, 43724235 << 24),\n    _f2(110748930411, 0xc5dcb3125bdb),\n    # C4[13], coeff of eps^15, polynomial in n of order 14\n    _f2(268265, 12727175 << 27), -_f2(1599130, 17232215 << 26),\n    _f2(6942204, 4883571 << 28), -_f2(22914299, 20494129 << 26),\n    _f2(58880733, 8011269 << 27), -_f2(118985431, 7979051 << 26),\n    _f2(188592645, 4054545 << 29), -_f2(229762161, 35295621 << 26),\n    _f2(203148724, 31300867 << 27), -_f2(107385077, 53637247 << 26),\n    -_f2(6680614, 2406191 << 28), _f2(75281884, 8527271 << 26),\n    -_f2(77627899, 32310399 << 27), _f2(42028799, 34263981 << 26),\n    -_f2(10160264, 35032709 << 22), _f2(110748930411, 0xc5dcb3125bdb),\n    # C4[13], coeff of eps^14, polynomial in n of order 15\n    _f(8350913025 << 28), -_f2(8241, 2495877 << 29),\n    _f2(78008, 13111987 << 28), -_f2(500800, 4045265 << 30),\n    _f2(2364509, 9424021 << 28), -_f2(8593646, 4773407 << 29),\n    _f2(24709323, 11418567 << 28), -_f2(57114100, 2066875 << 31),\n    _f2(106928260, 4889705 << 28), -_f2(162113251, 5033977 << 29),\n    _f2(197269922, 8596123 << 28), -_f2(188736396, 4070811 << 30),\n    _f2(136566807, 16720509 << 28), -_f2(69783667, 938643 << 29),\n    _f2(22203894, 1359919 << 28), -_f2(3271109, 212531129 << 23),\n    _f2(110748930411, 0xc5dcb3125bdb),\n    # C4[13], coeff of eps^13, polynomial in n of order 16\n    -_f(94185 << 30), -_f(86179275 << 26), _f(2372802705 << 27),\n    -_f(83726038305 << 26), _f2(12668, 1555717 << 28),\n    -_f2(87922, 39994007 << 26), _f2(452934, 19637187 << 27),\n    -_f2(1815855, 62281965 << 26), _f2(5835571, 1574167 << 29),\n    -_f2(15318374, 24668899 << 26), _f2(33211265, 14617205 << 27),\n    -_f2(59722012, 27257657 << 26), _f2(88729847, 57943 << 28),\n    -_f2(107054489, 21433519 << 26), _f2(99917523, 12239271 << 27),\n    -_f2(61060708, 48513541 << 26), _f2(16900731, 943456205 << 22),\n    _f2(110748930411, 0xc5dcb3125bdb),\n    # C4[14], coeff of eps^29, polynomial in n of order 0\n    _f(41 << 28), _f(0x3fbc634a12a6b1),\n    # C4[14], coeff of eps^28, polynomial in n of order 1\n    -_f(6907093 << 31), -_f(59887787 << 28),\n    _f2(5739014, 0x909af11944e4b),\n    # C4[14], coeff of eps^27, polynomial in n of order 2\n    _f2(3432, 499601 << 33), -_f(2083199471 << 32), _f(3406572267 << 28),\n    _f2(307370942, 0xdb94118adae9f),\n    # C4[14], coeff of eps^26, polynomial in n of order 3\n    _f2(287986, 4314073 << 29), _f2(5344, 3636147 << 30),\n    -_f2(6205, 2906637 << 29), -_f2(13964, 12467885 << 26),\n    _f2(13216950542, 0xe1def252c54b5),\n    # C4[14], coeff of eps^25, polynomial in n of order 4\n    -_f2(258061, 515595 << 33), -_f2(74790, 1657665 << 31),\n    _f2(745027, 493173 << 32), -_f2(337382, 84843 << 31),\n    _f2(26418, 5099583 << 27), _f2(39650851628, 0xa59cd6f84fe1f),\n    # C4[14], coeff of eps^24, polynomial in n of order 5\n    -_f2(100052, 3082133 << 30), -_f2(6991386, 428305 << 32),\n    _f2(2902871, 3549453 << 30), _f2(514674, 1320943 << 31),\n    _f2(32543, 4070319 << 30), -_f2(220557, 2292103 << 27),\n    _f2(118952554885, 0xf0d684e8efa5d),\n    # C4[14], coeff of eps^23, polynomial in n of order 6\n    _f2(6249633, 975799 << 32), -_f2(1750517, 1286063 << 31),\n    -_f2(1090661, 209219 << 33), -_f2(631632, 1802089 << 31),\n    _f2(1285387, 761149 << 32), -_f2(440347, 2020899 << 31),\n    _f2(22303, 14762615 << 27), _f2(39650851628, 0xa59cd6f84fe1f),\n    # C4[14], coeff of eps^22, polynomial in n of order 7\n    -_f2(1155507, 7367607 << 29), _f2(11090657, 3295693 << 30),\n    _f2(9416360, 3921899 << 29), -_f2(12562252, 1614097 << 31),\n    _f2(1905484, 7990669 << 29), _f2(1324142, 2135535 << 30),\n    _f2(362851, 6226223 << 29), -_f2(408795, 45924241 << 26),\n    _f2(118952554885, 0xf0d684e8efa5d),\n    # C4[14], coeff of eps^21, polynomial in n of order 8\n    -_f2(2556392, 83451 << 35), -_f2(45924405, 628445 << 32),\n    _f2(25722566, 76303 << 33), _f2(6427311, 738073 << 32),\n    -_f2(4460754, 79355 << 34), -_f2(7474566, 842481 << 32),\n    _f2(6714086, 421381 << 33), -_f2(1643964, 835835 << 32),\n    _f2(21175, 2825543 << 28), _f2(118952554885, 0xf0d684e8efa5d),\n    # C4[14], coeff of eps^20, polynomial in n of order 9\n    _f2(101794762, 1213867 << 31), _f2(21384252, 53331 << 34),\n    -_f2(38294895, 814203 << 31), -_f2(14666563, 397319 << 32),\n    _f2(37283642, 1395551 << 31), -_f2(15279397, 125869 << 33),\n    -_f2(3174330, 433863 << 31), _f2(2115734, 458067 << 32),\n    _f2(1510128, 1624339 << 31), -_f2(831539, 10478291 << 28),\n    _f2(118952554885, 0xf0d684e8efa5d),\n    # C4[14], coeff of eps^19, polynomial in n of order 10\n    _f2(50295468, 469581 << 33), -_f2(186185623, 531407 << 32),\n    _f2(174713425, 41641 << 35), -_f2(59412258, 3489 << 32),\n    -_f2(26728127, 294149 << 33), _f2(23787374, 31373 << 32),\n    _f2(13262792, 54953 << 34), -_f2(23669724, 520005 << 32),\n    _f2(11190603, 172969 << 33), -_f2(1670792, 243479 << 32),\n    -_f2(115324, 7271069 << 28), _f2(118952554885, 0xf0d684e8efa5d),\n    # C4[14], coeff of eps^18, polynomial in n of order 11\n    -_f2(229751836, 26450113 << 27), _f2(205122059, 12799441 << 28),\n    -_f2(76881886, 7573243 << 27), -_f2(89213757, 3943587 << 30),\n    _f2(179505441, 31406283 << 27), -_f2(144430080, 11541225 << 28),\n    _f2(48475411, 26026641 << 27), _f2(12591449, 3614557 << 29),\n    -_f2(14798010, 26226089 << 27), -_f2(1654995, 15989667 << 28),\n    _f2(6017860, 18394141 << 27), -_f2(2035659, 55899187 << 24),\n    _f2(118952554885, 0xf0d684e8efa5d),\n    # C4[14], coeff of eps^17, polynomial in n of order 12\n    -_f2(60003627, 419631 << 31), _f2(122260158, 890121 << 29),\n    -_f2(193015194, 2586489 << 30), _f2(228332901, 6912147 << 29),\n    -_f2(182676146, 109669 << 32), _f2(57596630, 2823965 << 29),\n    _f2(79437172, 3055697 << 30), -_f2(146103578, 5035353 << 29),\n    _f2(121669517, 1691035 << 31), -_f2(57926620, 1249999 << 29),\n    _f2(13245099, 2677787 << 30), _f2(250593, 3348667 << 29),\n    -_f2(546524, 56364575 << 25), _f2(118952554885, 0xf0d684e8efa5d),\n    # C4[14], coeff of eps^16, polynomial in n of order 13\n    -_f2(2910026, 15317989 << 28), _f2(10671028, 169493 << 30),\n    -_f2(30788418, 3245427 << 28), _f2(70862414, 261923 << 29),\n    -_f2(130581700, 1010945 << 28), _f2(191189814, 642567 << 31),\n    -_f2(216782974, 13106831 << 28), _f2(177827671, 7710997 << 29),\n    -_f2(82572754, 6587933 << 28), -_f2(19188450, 2518521 << 30),\n    _f2(74652545, 11169877 << 28), -_f2(71762036, 443641 << 29),\n    _f2(37978089, 1743047 << 28), -_f2(9119456, 66783679 << 25),\n    _f2(118952554885, 0xf0d684e8efa5d),\n    # C4[14], coeff of eps^15, polynomial in n of order 14\n    -_f2(25313, 471763 << 30), _f2(176943, 4508751 << 29),\n    -_f2(914488, 1483519 << 31), _f2(3661023, 8037561 << 29),\n    -_f2(11683077, 3602217 << 30), _f2(30253421, 7276067 << 29),\n    -_f2(64215578, 725077 << 32), _f2(112133608, 2030221 << 29),\n    -_f2(160624032, 1744767 << 30), _f2(186713478, 2165751 << 29),\n    -_f2(172286017, 2016853 << 31), _f2(121247637, 6964321 << 29),\n    -_f2(60696359, 459733 << 30), _f2(19031909, 1781195 << 29),\n    -_f2(2775486, 102023215 << 25), _f2(118952554885, 0xf0d684e8efa5d),\n    # C4[14], coeff of eps^14, polynomial in n of order 15\n    -_f(614557125 << 27), _f(5831464275 << 28),\n    -_f2(3808, 17097199 << 27), _f2(28626, 5026047 << 29),\n    -_f2(160361, 32462873 << 27), _f2(702411, 15495849 << 28),\n    -_f2(2480054, 13665347 << 27), _f2(7201343, 703573 << 30),\n    -_f2(17420896, 11395693 << 27), _f2(35365729, 6899711 << 28),\n    -_f2(60346284, 10497687 << 27), _f2(86059048, 7827541 << 29),\n    -_f2(100689087, 8447169 << 27), _f2(91987561, 3237205 << 28),\n    -_f2(55509735, 6799595 << 27), _f2(15265177, 48513541 << 24),\n    _f2(118952554885, 0xf0d684e8efa5d),\n    # C4[15], coeff of eps^29, polynomial in n of order 0\n    -_f(204761 << 28), _f2(20426, 0xaa7b82b97d24f),\n    # C4[15], coeff of eps^28, polynomial in n of order 1\n    -_f(34699 << 42), _f(26415501 << 29), _f2(6134808, 0xac3bb24726559),\n    # C4[15], coeff of eps^27, polynomial in n of order 2\n    _f2(16894, 439 << 40), -_f2(3396, 5539 << 38),\n    -_f2(13997, 7293149 << 28), _f2(14128464373, 0x6d08ce11dbba7),\n    # C4[15], coeff of eps^26, polynomial in n of order 3\n    -_f2(50643, 63489 << 36), _f2(243167, 8553 << 37),\n    -_f2(100839, 3467 << 36), _f2(7018, 548741 << 30),\n    _f2(14128464373, 0x6d08ce11dbba7),\n    # C4[15], coeff of eps^25, polynomial in n of order 4\n    -_f2(6907413, 21379 << 36), _f2(2301071, 198931 << 34),\n    _f2(591806, 32973 << 35), _f2(76262, 38289 << 34),\n    -_f2(216244, 23833777 << 27), _f2(127156179360, 0xd54f3ea0b98df),\n    # C4[15], coeff of eps^24, polynomial in n of order 5\n    -_f2(2869395, 52521 << 36), -_f2(3255913, 8819 << 38),\n    -_f2(2304160, 33823 << 36), _f2(3661540, 28261 << 37),\n    -_f2(1155441, 18213 << 36), _f2(48366, 13607837 << 28),\n    _f2(127156179360, 0xd54f3ea0b98df),\n    # C4[15], coeff of eps^23, polynomial in n of order 6\n    _f2(8754539, 110435 << 35), _f2(11218727, 249609 << 34),\n    -_f2(11298141, 31087 << 36), _f2(996220, 194783 << 34),\n    _f2(1275763, 41633 << 35), _f2(426630, 95573 << 34),\n    -_f2(392368, 19533817 << 27), _f2(127156179360, 0xd54f3ea0b98df),\n    # C4[15], coeff of eps^22, polynomial in n of order 7\n    -_f2(46020147, 1607 << 36), _f2(18483914, 31121 << 37),\n    _f2(8546239, 40923 << 36), -_f2(2972379, 4277 << 38),\n    -_f2(7799822, 49315 << 36), _f2(6131851, 9051 << 37),\n    -_f2(1385578, 60289 << 36), _f2(2743, 3362879 << 30),\n    _f2(127156179360, 0xd54f3ea0b98df),\n    # C4[15], coeff of eps^21, polynomial in n of order 8\n    _f2(36025526, 1303 << 40), -_f2(30131090, 26093 << 37),\n    -_f2(21835156, 15459 << 38), _f2(35026415, 31673 << 37),\n    -_f2(11464406, 5705 << 39), -_f2(3907909, 12145 << 37),\n    _f2(1722090, 1439 << 38), _f2(1557916, 18869 << 37),\n    -_f2(781446, 6381283 << 28), _f2(127156179360, 0xd54f3ea0b98df),\n    # C4[15], coeff of eps^20, polynomial in n of order 9\n    -_f2(190262221, 2387 << 40), _f2(146996287, 1227 << 41),\n    -_f2(33573688, 3541 << 40), -_f2(32294922, 2067 << 39),\n    _f2(18331180, 2115 << 40), _f2(16022794, 2331 << 40),\n    -_f2(22246846, 3383 << 40), _f2(9695242, 4143 << 39),\n    -_f2(1302304, 2671 << 40), -_f2(123235, 5577019 << 29),\n    _f2(127156179360, 0xd54f3ea0b98df),\n    # C4[15], coeff of eps^19, polynomial in n of order 10\n    _f2(169057636, 9637 << 37), -_f2(31515275, 17095 << 36),\n    -_f2(115123722, 7359 << 39), _f2(174060780, 58071 << 36),\n    -_f2(122862790, 20125 << 37), _f2(32880337, 12981 << 36),\n    _f2(15824026, 705 << 38), -_f2(12943852, 57005 << 36),\n    -_f2(2522257, 22495 << 37), _f2(5771316, 18225 << 36),\n    -_f2(1873338, 7714415 << 28), _f2(127156179360, 0xd54f3ea0b98df),\n    # C4[15], coeff of eps^18, polynomial in n of order 11\n    _f2(137352006, 26079 << 36), -_f2(197705648, 26891 << 37),\n    _f2(213128803, 51077 << 36), -_f2(150461460, 3135 << 39),\n    _f2(25445949, 34251 << 36), _f2(93962136, 11667 << 37),\n    -_f2(140732252, 24207 << 36), _f2(108614245, 6273 << 38),\n    -_f2(48923563, 62665 << 36), _f2(10316934, 1969 << 37),\n    _f2(535285, 33757 << 36), -_f2(501186, 3348667 << 30),\n    _f2(127156179360, 0xd54f3ea0b98df),\n    # C4[15], coeff of eps^17, polynomial in n of order 12\n    _f2(15155809, 205049 << 34), -_f2(39104030, 957115 << 32),\n    _f2(81967212, 139599 << 33), -_f2(139468172, 993913 << 32),\n    _f2(190415844, 61587 << 35), -_f2(202311488, 967447 << 32),\n    _f2(154439958, 403401 << 33), -_f2(61783996, 889045 << 32),\n    -_f2(28504911, 66989 << 34), _f2(73132006, 1030157 << 32),\n    -_f2(66442314, 293949 << 33), _f2(34502754, 346959 << 32),\n    -_f2(8240730, 128798053 << 25), _f2(127156179360, 0xd54f3ea0b98df),\n    # C4[15], coeff of eps^16, polynomial in n of order 13\n    _f2(114172, 142577 << 34), -_f2(499141, 33119 << 36),\n    _f2(1750098, 174183 << 34), -_f2(5016097, 114721 << 35),\n    _f2(11893006, 66221 << 34), -_f2(23470909, 19093 << 37),\n    _f2(38591591, 188131 << 34), -_f2(52613301, 65223 << 35),\n    _f2(58753809, 139305 << 34), -_f2(52512562, 23925 << 36),\n    _f2(36059714, 158111 << 34), -_f2(17726185, 93229 << 35),\n    _f2(5486676, 138853 << 34), -_f2(792996, 14574745 << 26),\n    _f2(42385393120, 0x471a6a35932f5),\n    # C4[15], coeff of eps^15, polynomial in n of order 14\n    _f(592706205 << 33), -_f2(9147, 839013 << 32),\n    _f2(55355, 240865 << 34), -_f2(262940, 644275 << 32),\n    _f2(1011310, 29095 << 33), -_f2(3215965, 1023905 << 32),\n    _f2(8575909, 35467 << 35), -_f2(19352216, 329839 << 32),\n    _f2(37124659, 455473 << 33), -_f2(60529336, 778589 << 32),\n    _f2(83288367, 93771 << 34), -_f2(94856196, 165035 << 32),\n    _f2(85043486, 110139 << 33), -_f2(50751757, 943257 << 32),\n    _f2(13877433, 107462891 << 25), _f2(127156179360, 0xd54f3ea0b98df),\n    # C4[16], coeff of eps^29, polynomial in n of order 0\n    _f(553 << 31), _f(0x292ecb9a960d27d1),\n    # C4[16], coeff of eps^28, polynomial in n of order 1\n    -_f(61453 << 36), -_f(4754645 << 34),\n    _f2(19591808, 0x57955a5f17535),\n    # C4[16], coeff of eps^27, polynomial in n of order 2\n    _f2(33770, 14237 << 36), -_f2(12917, 115767 << 35),\n    _f(1665987897 << 31), _f2(2148568314, 0xda506166fe05f),\n    # C4[16], coeff of eps^26, polynomial in n of order 3\n    _f2(1765351, 9719 << 36), _f2(634098, 16193 << 37),\n    _f2(114937, 5021 << 36), -_f2(211035, 902511 << 32),\n    _f2(135359803835, 0xb9c7f85883761),\n    # C4[16], coeff of eps^25, polynomial in n of order 4\n    -_f2(3041817, 11535 << 37), -_f2(2643315, 63657 << 35),\n    _f2(3458443, 225 << 36), -_f2(1011407, 29251 << 35),\n    _f2(33755, 354965 << 31), _f2(135359803835, 0xb9c7f85883761),\n    # C4[16], coeff of eps^24, polynomial in n of order 5\n    _f2(12443946, 111847 << 35), -_f2(9978547, 23661 << 37),\n    _f2(264818, 24689 << 35), _f2(1196082, 9587 << 36),\n    _f2(477961, 17339 << 35), -_f2(375862, 243659 << 32),\n    _f2(135359803835, 0xb9c7f85883761),\n    # C4[16], coeff of eps^23, polynomial in n of order 6\n    _f2(11971225, 59849 << 36), _f2(9677599, 56595 << 35),\n    -_f2(1515717, 2317 << 37), -_f2(7956047, 112667 << 35),\n    _f2(5585704, 62147 << 36), -_f2(1169086, 64041 << 35),\n    -_f2(10840, 1435009 << 31), _f2(135359803835, 0xb9c7f85883761),\n    # C4[16], coeff of eps^22, polynomial in n of order 7\n    -_f2(20905609, 47207 << 36), -_f2(27003899, 18815 << 37),\n    _f2(32128586, 62715 << 36), -_f2(8207156, 6437 << 38),\n    -_f2(4335741, 20931 << 36), _f2(1351161, 14763 << 37),\n    _f2(1583200, 44703 << 36), -_f2(734819, 355141 << 32),\n    _f2(135359803835, 0xb9c7f85883761),\n    # C4[16], coeff of eps^21, polynomial in n of order 8\n    _f2(119271221, 13241 << 38), -_f2(13185134, 117885 << 35),\n    -_f2(34424757, 12741 << 36), _f2(12971898, 62105 << 35),\n    _f2(17958221, 23929 << 37), -_f2(20751983, 45233 << 35),\n    _f2(8405753, 5609 << 36), -_f2(1009805, 84123 << 35),\n    -_f2(126669, 998091 << 31), _f2(135359803835, 0xb9c7f85883761),\n    # C4[16], coeff of eps^20, polynomial in n of order 9\n    _f2(7281953, 46177 << 36), -_f2(132136826, 3687 << 39),\n    _f2(164419146, 28463 << 36), -_f2(102943145, 13301 << 37),\n    _f2(20499773, 15997 << 36), _f2(17609391, 14489 << 38),\n    -_f2(11127728, 9397 << 36), -_f2(3194109, 31911 << 37),\n    _f2(5518515, 63129 << 36), -_f2(1729623, 95963 << 34),\n    _f2(135359803835, 0xb9c7f85883761),\n    # C4[16], coeff of eps^19, polynomial in n of order 10\n    -_f2(197461925, 11965 << 36), _f2(194820269, 1667 << 35),\n    -_f2(119937281, 937 << 38), -_f2(1213288, 24915 << 35),\n    _f2(103481944, 52469 << 36), -_f2(133891976, 7945 << 35),\n    _f2(96822293, 18071 << 37), -_f2(41434588, 121951 << 35),\n    _f2(8025452, 27431 << 36), _f2(724406, 126187 << 35),\n    -_f2(459367, 1295029 << 31), _f2(135359803835, 0xb9c7f85883761),\n    # C4[16], coeff of eps^18, polynomial in n of order 11\n    -_f2(47525285, 62545 << 36), _f2(91887649, 22453 << 37),\n    -_f2(145781941, 19979 << 36), _f2(186991182, 8001 << 39),\n    -_f2(187151585, 35749 << 36), _f2(133148350, 20179 << 37),\n    -_f2(44425461, 13151 << 36), -_f2(35371425, 9983 << 38),\n    _f2(71056997, 38023 << 36), -_f2(61631567, 21647 << 37),\n    _f2(31499493, 50637 << 36), -_f2(7491423, 758351 << 32),\n    _f2(135359803835, 0xb9c7f85883761),\n    # C4[16], coeff of eps^17, polynomial in n of order 12\n    -_f2(2259631, 24697 << 37), _f2(7098981, 78723 << 35),\n    -_f2(18582556, 8879 << 36), _f2(40852668, 12369 << 35),\n    -_f2(75692831, 12691 << 38), _f2(118080654, 84927 << 35),\n    -_f2(154130872, 52073 << 36), _f2(166118829, 74381 << 35),\n    -_f2(144327913, 2259 << 37), _f2(96964720, 98683 << 35),\n    -_f2(46899246, 18595 << 36), _f2(14349769, 50505 << 35),\n    -_f2(2057503, 1465135 << 31), _f2(135359803835, 0xb9c7f85883761),\n    # C4[16], coeff of eps^16, polynomial in n of order 13\n    -_f2(18695, 264305 << 33), _f2(95700, 8265 << 35),\n    -_f2(398136, 419847 << 33), _f2(1375381, 177071 << 34),\n    -_f2(4004787, 429789 << 33), _f2(9930000, 13635 << 36),\n    -_f2(21101250, 231795 << 33), _f2(38532718, 52073 << 34),\n    -_f2(60367925, 93257 << 33), _f2(80490566, 118467 << 35),\n    -_f2(89511061, 246751 << 33), _f2(78923731, 162339 << 34),\n    -_f2(46636750, 263349 << 33), _f2(12687939, 1991833 << 30),\n    _f2(135359803835, 0xb9c7f85883761),\n    # C4[17], coeff of eps^29, polynomial in n of order 0\n    -_f(280331 << 31), _f2(154847, 0x4e6e7be138cdb),\n    # C4[17], coeff of eps^28, polynomial in n of order 1\n    -_f(82431 << 38), _f(142069 << 33), _f2(989485, 0x4511e2f2b39a3),\n    # C4[17], coeff of eps^27, polynomial in n of order 2\n    _f2(30957, 2723 << 36), _f2(7080, 38071 << 35),\n    -_f2(9773, 1986585 << 31), _f2(6836353729, 0x13b9f01928417),\n    # C4[17], coeff of eps^26, polynomial in n of order 3\n    -_f2(138771, 28785 << 37), _f2(154910, 14439 << 38),\n    -_f2(42193, 29611 << 37), _f(1108797915 << 32),\n    _f2(6836353729, 0x13b9f01928417),\n    # C4[17], coeff of eps^25, polynomial in n of order 4\n    -_f2(1238256, 21701 << 37), -_f2(44811, 81027 << 35),\n    _f2(156785, 14859 << 36), _f2(74079, 77407 << 35),\n    -_f2(51372, 1082481 << 31), _f2(20509061187, 0x3b2dd04b78c45),\n    # C4[17], coeff of eps^24, polynomial in n of order 5\n    _f2(10057115, 7495 << 39), -_f2(158283, 1579 << 41),\n    -_f2(7978477, 2703 << 39), _f2(5079175, 3021 << 40),\n    -_f2(987192, 2101 << 39), -_f2(20806, 242401 << 34),\n    _f2(143563428310, 0x9e40b2104d5e3),\n    # C4[17], coeff of eps^23, polynomial in n of order 6\n    -_f2(30405369, 16203 << 36), _f2(28904813, 10839 << 35),\n    -_f2(5472666, 28841 << 37), -_f2(4538327, 21695 << 35),\n    _f2(1010309, 2151 << 36), _f2(1591197, 61387 << 35),\n    -_f2(691600, 842821 << 31), _f2(143563428310, 0x9e40b2104d5e3),\n    # C4[17], coeff of eps^22, polynomial in n of order 7\n    _f2(2360974, 20517 << 37), -_f2(34168343, 7885 << 38),\n    _f2(7988557, 399 << 37), _f2(19220645, 2761 << 39),\n    -_f2(19251394, 21847 << 37), _f2(7294617, 7633 << 38),\n    -_f2(776533, 25709 << 37), -_f2(127091, 628387 << 32),\n    _f2(143563428310, 0x9e40b2104d5e3),\n    # C4[17], coeff of eps^21, polynomial in n of order 8\n    -_f2(141970389, 5875 << 38), _f2(152285106, 31 << 35),\n    -_f2(85013706, 54665 << 36), _f2(10784519, 74157 << 35),\n    _f2(18376223, 22989 << 37), -_f2(9415616, 123045 << 35),\n    -_f2(3707065, 39939 << 36), _f2(5266887, 19945 << 35),\n    -_f2(1601936, 974407 << 31), _f2(143563428310, 0x9e40b2104d5e3),\n    # C4[17], coeff of eps^20, polynomial in n of order 9\n    _f2(174732199, 7199 << 38), -_f2(91781661, 1783 << 41),\n    -_f2(22947906, 1007 << 38), _f2(109147441, 451 << 39),\n    -_f2(126268040, 11085 << 38), _f2(86262862, 2409 << 40),\n    -_f2(35185382, 1435 << 38), _f2(6220582, 7041 << 39),\n    _f2(846498, 391 << 38), -_f2(421214, 84365 << 33),\n    _f2(143563428310, 0x9e40b2104d5e3),\n    # C4[17], coeff of eps^19, polynomial in n of order 10\n    _f2(100447726, 5039 << 36), -_f2(149758021, 121873 << 35),\n    _f2(181554380, 1939 << 38), -_f2(171878757, 123903 << 35),\n    _f2(113962110, 29289 << 36), -_f2(29967290, 80205 << 35),\n    -_f2(40353928, 13613 << 37), _f2(68655180, 86853 << 35),\n    -_f2(57285125, 57949 << 36), _f2(28886745, 8439 << 35),\n    -_f2(6846764, 2025561 << 31), _f2(143563428310, 0x9e40b2104d5e3),\n    # C4[17], coeff of eps^18, polynomial in n of order 11\n    _f2(9163438, 32371 << 37), -_f2(22188557, 9937 << 38),\n    _f2(45681407, 15569 << 37), -_f2(80085759, 21 << 40),\n    _f2(119267529, 32127 << 37), -_f2(149784698, 12951 << 38),\n    _f2(156408668, 30941 << 37), -_f2(132494258, 5045 << 39),\n    _f2(87286969, 10059 << 37), -_f2(41608633, 10397 << 38),\n    _f2(12599797, 16681 << 37), -_f2(1793721, 181577 << 32),\n    _f2(143563428310, 0x9e40b2104d5e3),\n    # C4[17], coeff of eps^17, polynomial in n of order 12\n    _f2(152058, 3531 << 37), -_f2(566838, 109449 << 35),\n    _f2(1788421, 65069 << 36), -_f2(4828739, 49907 << 35),\n    _f2(11241509, 10969 << 38), -_f2(22666304, 107837 << 35),\n    _f2(39633653, 283 << 36), -_f2(59939783, 113319 << 35),\n    _f2(77715030, 3737 << 37), -_f2(84609105, 47985 << 35),\n    _f2(73498818, 52617 << 36), -_f2(43049308, 20443 << 35),\n    _f2(11659187, 1311925 << 31), _f2(143563428310, 0x9e40b2104d5e3),\n    # C4[18], coeff of eps^29, polynomial in n of order 0\n    _f(35 << 34), _f(0x29845c2bcb5c10d7),\n    # C4[18], coeff of eps^28, polynomial in n of order 1\n    _f2(3628, 18373 << 37), -_f2(4063, 232509 << 34),\n    _f2(3097286791, 0x8a812bfedbe75),\n    # C4[18], coeff of eps^27, polynomial in n of order 2\n    _f2(435730, 613 << 39), -_f2(110987, 3811 << 38), _f(489021323 << 34),\n    _f2(21681007540, 0xc98833f803533),\n    # C4[18], coeff of eps^26, polynomial in n of order 3\n    -_f2(762945, 31179 << 36), _f2(988791, 87 << 37),\n    _f2(550009, 38375 << 36), -_f2(343815, 323189 << 33),\n    _f2(151767052785, 0x82b96bc817465),\n    # C4[18], coeff of eps^25, polynomial in n of order 4\n    _f2(1063744, 27 << 41), -_f2(7897635, 7767 << 39),\n    _f2(4613149, 699 << 40), -_f2(833936, 93 << 39),\n    -_f2(28054, 94387 << 35), _f2(151767052785, 0x82b96bc817465),\n    # C4[18], coeff of eps^24, polynomial in n of order 5\n    _f2(25578507, 4379 << 38), -_f2(3209600, 1553 << 40),\n    -_f2(4577572, 5923 << 38), _f2(702466, 1583 << 39),\n    _f2(1586031, 287 << 38), -_f2(651636, 122639 << 35),\n    _f2(151767052785, 0x82b96bc817465),\n    # C4[18], coeff of eps^23, polynomial in n of order 6\n    -_f2(32324739, 1815 << 40), _f2(3520775, 1207 << 39),\n    _f2(19946468, 259 << 41), -_f2(17787966, 4575 << 39),\n    _f2(6336978, 3235 << 40), -_f2(589727, 5685 << 39),\n    -_f2(125505, 20667 << 35), _f2(151767052785, 0x82b96bc817465),\n    # C4[18], coeff of eps^22, polynomial in n of order 7\n    _f2(138884729, 22203 << 36), -_f2(69168625, 14473 << 37),\n    _f2(3249237, 4577 << 36), _f2(18436830, 10301 << 38),\n    -_f2(7840055, 31609 << 36), -_f2(4091705, 30595 << 37),\n    _f2(5021146, 27565 << 36), -_f2(1488082, 115687 << 33),\n    _f2(151767052785, 0x82b96bc817465),\n    # C4[18], coeff of eps^21, polynomial in n of order 8\n    -_f2(66334778, 1299 << 41), -_f2(40377625, 16285 << 38),\n    _f2(111882749, 4839 << 39), -_f2(118325119, 4711 << 38),\n    _f2(76858390, 3693 << 40), -_f2(29952902, 3569 << 38),\n    _f2(4790818, 4941 << 39), _f2(921311, 4421 << 38),\n    -_f2(386621, 181821 << 34), _f2(151767052785, 0x82b96bc817465),\n    # C4[18], coeff of eps^20, polynomial in n of order 9\n    -_f2(151679112, 16629 << 37), _f2(174648786, 1667 << 40),\n    -_f2(156892091, 15835 << 37), _f2(96799837, 4169 << 38),\n    -_f2(17949188, 6721 << 37), -_f2(43885384, 7293 << 39),\n    _f2(66080580, 25305 << 37), -_f2(53357084, 1853 << 38),\n    _f2(26599572, 17011 << 37), -_f2(6287689, 169979 << 34),\n    _f2(151767052785, 0x82b96bc817465),\n    # C4[18], coeff of eps^19, polynomial in n of order 10\n    -_f2(8594193, 5169 << 39), _f2(16702080, 5475 << 38),\n    -_f2(27882498, 1245 << 41), _f2(39843622, 14413 << 38),\n    -_f2(48340851, 951 << 39), _f2(49066184, 11639 << 38),\n    -_f2(40627946, 3165 << 40), _f2(26296855, 15713 << 38),\n    -_f2(12371894, 1597 << 39), _f2(3711568, 4235 << 38),\n    -_f2(524991, 147555 << 34), _f2(50589017595, 0x2b9323ed5d177),\n    # C4[18], coeff of eps^18, polynomial in n of order 11\n    -_f2(768539, 29011 << 36), _f2(2243105, 18035 << 37),\n    -_f2(5671852, 39713 << 36), _f2(12494515, 7255 << 39),\n    -_f2(24051943, 5231 << 36), _f2(40468348, 22085 << 37),\n    -_f2(59307062, 46653 << 36), _f2(74994737, 5975 << 38),\n    -_f2(80108014, 59787 << 36), _f2(68664012, 25623 << 37),\n    -_f2(39899358, 51033 << 36), _f2(10762327, 20443 << 33),\n    _f2(151767052785, 0x82b96bc817465),\n    # C4[19], coeff of eps^29, polynomial in n of order 0\n    -_f(69697 << 34), _f2(220556, 0x6c98ea537e51f),\n    # C4[19], coeff of eps^28, polynomial in n of order 1\n    -_f(1238839 << 41), _f(675087 << 35),\n    _f2(141943813, 0x222cc7846d81),\n    # C4[19], coeff of eps^27, polynomial in n of order 2\n    _f2(876102, 3999 << 40), _f2(573743, 1451 << 39),\n    -_f2(328615, 14973 << 34), _f2(159970677260, 0x6732257fe12e7),\n    # C4[19], coeff of eps^26, polynomial in n of order 3\n    -_f2(7739083, 17 << 46), _f2(4186838, 53 << 45), -_f2(704448, 1 << 46),\n    -_f2(33249, 11241 << 37), _f2(159970677260, 0x6732257fe12e7),\n    # C4[19], coeff of eps^25, polynomial in n of order 4\n    -_f2(1360864, 133 << 42), -_f2(4500609, 2667 << 40),\n    _f2(427896, 299 << 41), _f2(1570943, 1191 << 40),\n    -_f2(614728, 45789 << 35), _f2(159970677260, 0x6732257fe12e7),\n    # C4[19], coeff of eps^24, polynomial in n of order 5\n    -_f2(379105, 631 << 42), _f2(20252634, 139 << 44),\n    -_f2(16388211, 705 << 42), _f2(5510947, 339 << 43),\n    -_f2(439601, 699 << 42), -_f2(122601, 56745 << 36),\n    _f2(159970677260, 0x6732257fe12e7),\n    # C4[19], coeff of eps^23, polynomial in n of order 6\n    -_f2(55355388, 567 << 41), -_f2(2520461, 2117 << 40),\n    _f2(18017708, 147 << 42), -_f2(6413373, 771 << 40),\n    -_f2(4373212, 61 << 41), _f2(4784182, 2079 << 40),\n    -_f2(1386197, 54485 << 35), _f2(159970677260, 0x6732257fe12e7),\n    # C4[19], coeff of eps^22, polynomial in n of order 7\n    -_f2(54112477, 29 << 46), _f2(112419812, 35 << 45),\n    -_f2(110372726, 9 << 46), _f2(68510282, 53 << 46),\n    -_f2(25556330, 19 << 46), _f2(3652507, 1 << 45), _f2(962676, 17 << 46),\n    -_f2(355362, 30093 << 37), _f2(159970677260, 0x6732257fe12e7),\n    # C4[19], coeff of eps^21, polynomial in n of order 8\n    _f2(166723371, 209 << 42), -_f2(142457721, 7469 << 39),\n    _f2(81530379, 2787 << 40), -_f2(7977897, 3383 << 39),\n    -_f2(46298043, 1775 << 41), _f2(63437092, 799 << 39),\n    -_f2(49803454, 3807 << 40), _f2(24585849, 2581 << 39),\n    -_f2(5799325, 105875 << 34), _f2(159970677260, 0x6732257fe12e7),\n    # C4[19], coeff of eps^20, polynomial in n of order 9\n    _f2(54095236, 1729 << 41), -_f2(86448328, 33 << 44),\n    _f2(119042325, 527 << 41), -_f2(140012701, 875 << 42),\n    _f2(138519104, 1133 << 41), -_f2(112357061, 257 << 43),\n    _f2(71568963, 1275 << 41), -_f2(33272498, 441 << 42),\n    _f2(9897515, 729 << 41), -_f2(1391838, 12705 << 35),\n    _f2(159970677260, 0x6732257fe12e7),\n    # C4[19], coeff of eps^19, polynomial in n of order 10\n    _f2(2731650, 3225 << 40), -_f2(6520331, 5423 << 39),\n    _f2(13678206, 885 << 42), -_f2(25266687, 5569 << 39),\n    _f2(41073925, 3215 << 40), -_f2(58519302, 7091 << 39),\n    _f2(72351138, 181 << 41), -_f2(75968694, 8133 << 39),\n    _f2(64333849, 3333 << 40), -_f2(37115682, 4791 << 39),\n    _f2(9974839, 182105 << 34), _f2(159970677260, 0x6732257fe12e7),\n    # C4[20], coeff of eps^29, polynomial in n of order 0\n    _f(1 << 39), _f2(386445, 0x44b61aebc827),\n    # C4[20], coeff of eps^28, polynomial in n of order 1\n    _f2(3670, 3431 << 40), -_f(63923791 << 37),\n    _f2(1044560880, 0x57ec63f8653c9),\n    # C4[20], coeff of eps^27, polynomial in n of order 2\n    _f2(165149, 453 << 43), -_f2(25858, 471 << 42), -_f(26276299 << 38),\n    _f2(7311926162, 0x6776bbcac4a7f),\n    # C4[20], coeff of eps^26, polynomial in n of order 3\n    -_f2(4343033, 595 << 42), _f2(185313, 303 << 43),\n    _f2(1548473, 271 << 42), -_f2(580654, 777 << 40),\n    _f2(168174301735, 0x4baadf37ab169),\n    # C4[20], coeff of eps^25, polynomial in n of order 4\n    _f2(20236427, 149 << 44), -_f2(15067334, 133 << 42),\n    _f2(4797544, 165 << 43), -_f2(318599, 375 << 42),\n    -_f2(118861, 3875 << 38), _f2(168174301735, 0x4baadf37ab169),\n    # C4[20], coeff of eps^24, polynomial in n of order 5\n    -_f2(6870833, 1979 << 41), _f2(17282399, 281 << 43),\n    -_f2(5135975, 189 << 41), -_f2(4572111, 263 << 42),\n    _f2(4557653, 1537 << 41), -_f2(1294702, 4061 << 38),\n    _f2(168174301735, 0x4baadf37ab169),\n    # C4[20], coeff of eps^23, polynomial in n of order 6\n    _f2(111332564, 131 << 43), -_f2(102611836, 439 << 42),\n    _f2(61113705, 49 << 44), -_f2(21849131, 865 << 42),\n    _f2(2742318, 257 << 43), _f2(980372, 533 << 42),\n    -_f2(327159, 8391 << 38), _f2(168174301735, 0x4baadf37ab169),\n    # C4[20], coeff of eps^22, polynomial in n of order 7\n    -_f2(128743521, 979 << 42), _f2(67998970, 481 << 43),\n    _f2(279122, 855 << 42), -_f2(47847734, 245 << 44),\n    _f2(60794248, 257 << 42), -_f2(46583621, 181 << 43),\n    _f2(22803394, 43 << 42), -_f2(5369928, 2229 << 40),\n    _f2(168174301735, 0x4baadf37ab169),\n    # C4[20], coeff of eps^21, polynomial in n of order 8\n    -_f2(88564699, 121 << 45), _f2(117949702, 533 << 42),\n    -_f2(134881895, 27 << 43), _f2(130376590, 239 << 42),\n    -_f2(103788735, 57 << 44), _f2(65154071, 233 << 42),\n    -_f2(29963298, 393 << 43), _f2(8844588, 195 << 42),\n    -_f2(1237189, 6873 << 38), _f2(168174301735, 0x4baadf37ab169),\n    # C4[20], coeff of eps^20, polynomial in n of order 9\n    -_f2(7362630, 999 << 40), _f2(14785858, 137 << 43),\n    -_f2(26321377, 9 << 40), _f2(41483460, 1083 << 41),\n    -_f2(57615917, 1643 << 40), _f2(69797568, 521 << 42),\n    -_f2(72155594, 1933 << 40), _f2(60438019, 617 << 41),\n    -_f2(34641303, 3055 << 40), _f2(9278920, 21175 << 37),\n    _f2(168174301735, 0x4baadf37ab169),\n    # C4[21], coeff of eps^29, polynomial in n of order 0\n    -_f(2017699 << 39), _f2(144690669, 0x92d5d14b2b5b9),\n    # C4[21], coeff of eps^28, polynomial in n of order 1\n    -_f2(21806, 31 << 47), -_f(1751493 << 42),\n    _f2(7668605487, 0x6644548ff9f4d),\n    # C4[21], coeff of eps^27, polynomial in n of order 2\n    -_f(610053 << 43), _f2(66113, 223 << 42), -_f2(23877, 14131 << 38),\n    _f2(7668605487, 0x6644548ff9f4d),\n    # C4[21], coeff of eps^26, polynomial in n of order 3\n    -_f2(601427, 223 << 44), _f2(181759, 65 << 45), -_f2(9602, 5 << 44),\n    -_f2(4983, 2721 << 39), _f2(7668605487, 0x6644548ff9f4d),\n    # C4[21], coeff of eps^25, polynomial in n of order 4\n    _f2(16348405, 227 << 44), -_f2(4001511, 795 << 42),\n    -_f2(4705038, 397 << 43), _f2(4342393, 855 << 42),\n    -_f2(1212256, 1051 << 38), _f2(176377926210, 0x302398ef74feb),\n    # C4[21], coeff of eps^24, polynomial in n of order 5\n    -_f2(95167920, 19 << 45), _f2(54565817, 7 << 47),\n    -_f2(18712410, 5 << 45), _f2(2011897, 15 << 46), _f2(981374, 25 << 45),\n    -_f2(301721, 597 << 40), _f2(176377926210, 0x302398ef74feb),\n    # C4[21], coeff of eps^23, polynomial in n of order 6\n    _f2(56043535, 133 << 43), _f2(7101303, 759 << 42),\n    -_f2(48732132, 249 << 44), _f2(58197907, 161 << 42),\n    -_f2(43660867, 425 << 43), _f2(21217809, 619 << 42),\n    -_f2(4990122, 11039 << 38), _f2(176377926210, 0x302398ef74feb),\n    # C4[21], coeff of eps^22, polynomial in n of order 7\n    _f2(38792824, 189 << 44), -_f2(43241527, 125 << 45),\n    _f2(40920531, 151 << 44), -_f2(32022608, 39 << 46),\n    _f2(19836099, 97 << 44), -_f2(9032168, 63 << 45),\n    _f2(2647359, 187 << 44), -_f2(368524, 4161 << 39),\n    _f2(58792642070, 0x100bdda526ff9),\n    # C4[21], coeff of eps^21, polynomial in n of order 8\n    _f2(15813930, 121 << 45), -_f2(27228018, 205 << 42),\n    _f2(41726053, 443 << 43), -_f2(56628215, 983 << 42),\n    _f2(67341662, 57 << 44), -_f2(68636694, 193 << 42),\n    _f2(56918234, 105 << 43), -_f2(32430156, 715 << 42),\n    _f2(8660325, 15343 << 38), _f2(176377926210, 0x302398ef74feb),\n    # C4[22], coeff of eps^29, polynomial in n of order 0\n    -_f(229 << 43), _f2(2018939, 0x935060fc493cd),\n    # C4[22], coeff of eps^28, polynomial in n of order 1\n    _f2(64733, 61 << 46), -_f2(22613, 493 << 43),\n    _f2(8025284812, 0x6511ed552f41b),\n    # C4[22], coeff of eps^27, polynomial in n of order 2\n    _f2(158513, 3 << 48), -_f2(6162, 29 << 47), -_f2(4786, 487 << 43),\n    _f2(8025284812, 0x6511ed552f41b),\n    # C4[22], coeff of eps^26, polynomial in n of order 3\n    -_f2(130438, 301 << 43), -_f2(208062, 47 << 44), _f2(179942, 497 << 43),\n    -_f2(49466, 167 << 40), _f2(8025284812, 0x6511ed552f41b),\n    # C4[22], coeff of eps^25, polynomial in n of order 4\n    _f2(2120438, 3 << 47), -_f2(697803, 39 << 45), _f2(61914, 3 << 46),\n    _f2(42203, 115 << 45), -_f2(12120, 543 << 41),\n    _f2(8025284812, 0x6511ed552f41b),\n    # C4[22], coeff of eps^24, polynomial in n of order 5\n    _f2(12722577, 33 << 44), -_f2(49104495, 51 << 46),\n    _f2(55677556, 71 << 44), -_f2(41002422, 115 << 45),\n    _f2(19800840, 109 << 44), -_f2(4652345, 837 << 41),\n    _f2(184581550685, 0x149c52a73ee6d),\n    # C4[22], coeff of eps^23, polynomial in n of order 6\n    -_f2(124610244, 57 << 46), _f2(115654934, 113 << 45),\n    -_f2(89096506, 19 << 47), _f2(54518354, 119 << 45),\n    -_f2(24598996, 19 << 46), _f2(7163443, 125 << 45),\n    -_f2(992759, 1841 << 41), _f2(184581550685, 0x149c52a73ee6d),\n    # C4[22], coeff of eps^22, polynomial in n of order 7\n    -_f2(27999005, 155 << 43), _f2(41827085, 121 << 44),\n    -_f2(55581037, 1 << 43), _f2(64987058, 83 << 45),\n    -_f2(65383321, 103 << 43), _f2(53725829, 211 << 44),\n    -_f2(30444636, 461 << 43), _f2(8107539, 715 << 40),\n    _f2(184581550685, 0x149c52a73ee6d),\n    # C4[23], coeff of eps^29, polynomial in n of order 0\n    -_f2(4289, 21 << 43), _f2(1676392827, 0x7a5fe79ee0e95),\n    # C4[23], coeff of eps^28, polynomial in n of order 1\n    -_f(1351 << 51), -_f(234789 << 44), _f2(1676392827, 0x7a5fe79ee0e95),\n    # C4[23], coeff of eps^27, polynomial in n of order 2\n    -_f2(209744, 1 << 50), _f2(171585, 3 << 49), -_f2(46526, 469 << 43),\n    _f2(8381964137, 0x63df861a648e9),\n    # C4[23], coeff of eps^26, polynomial in n of order 3\n    -_f2(599194, 1 << 51), _f2(41297, 0), _f2(41388, 1 << 51),\n    -_f2(11218, 97 << 45), _f2(8381964137, 0x63df861a648e9),\n    # C4[23], coeff of eps^25, polynomial in n of order 4\n    -_f2(2134087, 7 << 49), _f2(2315275, 31 << 47), -_f2(1677358, 15 << 48),\n    _f2(805613, 21 << 47), -_f2(189149, 1213 << 41),\n    _f2(8381964137, 0x63df861a648e9),\n    # C4[23], coeff of eps^24, polynomial in n of order 5\n    _f2(4740508, 1 << 49), -_f2(3599518, 1 << 51), _f2(2177844, 7 << 49),\n    -_f2(974429, 1 << 50), _f2(282071, 5 << 49), -_f2(38931, 779 << 42),\n    _f2(8381964137, 0x63df861a648e9),\n    # C4[23], coeff of eps^23, polynomial in n of order 6\n    _f2(1817763, 3 << 48), -_f2(2369306, 23 << 47), _f2(2727592, 1 << 49),\n    -_f2(2711734, 1 << 47), _f2(2209561, 1 << 48), -_f2(1245816, 11 << 47),\n    _f2(330919, 1979 << 41), _f2(8381964137, 0x63df861a648e9),\n    # C4[24], coeff of eps^29, polynomial in n of order 0\n    -_f(1439 << 46), _f2(44813556, 0x37a4fd885dffd),\n    # C4[24], coeff of eps^28, polynomial in n of order 1\n    _f2(32742, 3 << 50), -_f2(8770, 21 << 47),\n    _f2(1747728692, 0x7a229fc651f8b),\n    # C4[24], coeff of eps^27, polynomial in n of order 2\n    _f2(4928, 1 << 51), _f2(8067, 1 << 50), -_f2(2080, 43 << 46),\n    _f2(1747728692, 0x7a229fc651f8b),\n    # C4[24], coeff of eps^26, polynomial in n of order 3\n    _f2(2214330, 0), -_f2(1581120, 0), _f2(755790, 0),\n    -_f2(177363, 7 << 47), _f2(8738643462, 0x62ad1edf99db7),\n    # C4[24], coeff of eps^25, polynomial in n of order 4\n    -_f2(1116955, 0), _f2(668788, 3 << 50), -_f2(296917, 1 << 51),\n    _f2(85476, 1 << 50), -_f2(11752, 63 << 46),\n    _f2(2912881154, 0x20e45f9fddf3d),\n    # C4[24], coeff of eps^24, polynomial in n of order 5\n    -_f2(2320992, 3 << 48), _f2(2634056, 1 << 50), -_f2(2590155, 5 << 48),\n    _f2(2094168, 1 << 49), -_f2(1175298, 7 << 48), _f2(311454, 11 << 45),\n    _f2(8738643462, 0x62ad1edf99db7),\n    # C4[25], coeff of eps^29, polynomial in n of order 0\n    -_f(3707 << 46), _f2(12720731, 0x2bd144a4925ef),\n    # C4[25], coeff of eps^28, polynomial in n of order 1\n    _f(301 << 53), -_f(2379 << 48), _f2(139928042, 0xe1fdf3124a145),\n    # C4[25], coeff of eps^27, polynomial in n of order 2\n    -_f2(298603, 1 << 51), _f2(142145, 1 << 50), -_f2(33346, 63 << 46),\n    _f2(1819064557, 0x79e557edc3081),\n    # C4[25], coeff of eps^26, polynomial in n of order 3\n    _f2(370617, 0), -_f2(163358, 0), _f2(46787, 0), -_f2(6410, 23 << 47),\n    _f2(1819064557, 0x79e557edc3081),\n    # C4[25], coeff of eps^25, polynomial in n of order 4\n    _f2(508963, 0), -_f2(495426, 3 << 50), _f2(397689, 1 << 51),\n    -_f2(222238, 1 << 50), _f2(58764, 59 << 46),\n    _f2(1819064557, 0x79e557edc3081),\n    # C4[26], coeff of eps^29, polynomial in n of order 0\n    -_f(1 << 49), _f2(131359, 0xe834f81ee20c1),\n    # C4[26], coeff of eps^28, polynomial in n of order 1\n    _f2(10305, 0), -_f2(2417, 1 << 49), _f2(145415417, 0x1d0ced8b7a293),\n    # C4[26], coeff of eps^27, polynomial in n of order 2\n    -_f2(11556, 0), _f2(3294, 0), -_f(3599 << 49),\n    _f2(145415417, 0x1d0ced8b7a293),\n    # C4[26], coeff of eps^26, polynomial in n of order 3\n    -_f2(36490, 1 << 51), _f2(29097, 0), -_f2(16195, 1 << 51),\n    _f2(4273, 13 << 48), _f2(145415417, 0x1d0ced8b7a293),\n    # C4[27], coeff of eps^29, polynomial in n of order 0\n    -_f(2029 << 49), _f2(16766976, 0xd0e6a80084b19),\n    # C4[27], coeff of eps^28, polynomial in n of order 1\n    _f(7 << 56), -_f(61 << 50), _f2(5588992, 0x45a238002c3b3),\n    # C4[27], coeff of eps^27, polynomial in n of order 2\n    _f2(3080, 0), -_f(427 << 54), _f(3599 << 49),\n    _f2(16766976, 0xd0e6a80084b19),\n    # C4[28], coeff of eps^29, polynomial in n of order 0\n    -_f(1 << 53), _f2(827461, 0x318a62b8e0a5b),\n    # C4[28], coeff of eps^28, polynomial in n of order 1\n    -_f(29 << 55), _f(61 << 52), _f2(2482383, 0x949f282aa1f11),\n    # C4[29], coeff of eps^29, polynomial in n of order 0\n    _f(1 << 53), _f2(88602, 0xec373d36a45df),  # PYCHOK exported\n))  # 5425 / 5107\ndel _g, _Gfloats, _f, _f2\n\n\n# **) MIT License\n#\n# Copyright (C) 2016-2026 -- mrJean1 at Gmail -- All Rights Reserved.\n#\n# Permission is hereby granted, free of charge, to any person obtaining a\n# copy of this software and associated documentation files (the \"Software\"),\n# to deal in the Software without restriction, including without limitation\n# the rights to use, copy, modify, merge, publish, distribute, sublicense,\n# and/or sell copies of the Software, and to permit persons to whom the\n# Software is furnished to do so, subject to the following conditions:\n#\n# The above copyright notice and this permission notice shall be included\n# in all copies or substantial portions of the Software.\n#\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL\n# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR\n# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\n# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n# OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "pygeodesy/geodesicx/__init__.py",
    "content": "\n# -*- coding: utf-8 -*-\n\nu'''A pure Python version of I{Karney}'s C++ classes U{GeodesicExact\n<https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1GeodesicExact.html>}\nand U{GeodesicLineExact\n<https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1GeodesicLine.html>}.\n\nFor more details, see the C++ U{GeographicLib<https://GeographicLib.SourceForge.io/C++/doc/index.html>}\ndocumentation, especially the U{Class List<https://GeographicLib.SourceForge.io/C++/doc/annotated.html>}\nand the background information at U{Geodesics on an ellipsoid of revolution\n<https://GeographicLib.SourceForge.io/C++/doc/geodesic.html#geodseries>}.\n\nAlso, compare C{GeodesicExact} and C{GeodesicLineExact} to I{standard} classes C{Geodesic}\nrespectively C{GeodesicLine} from I{Karney}'s Python implementation U{geographiclib\n<https://GeographicLib.SourceForge.io/C++/doc/other.html#python>}, see modules\nL{pygeodesy.geodesicw} and L{pygeodesy.karney}.\n'''\n\nfrom pygeodesy.geodesicx.gx import GeodesicExact, GeodesicLineExact  # noqa: F401\nfrom pygeodesy.geodesicx.gxarea import GeodesicAreaExact, PolygonArea  # noqa: F401\nfrom pygeodesy.karney import Caps, GeodesicError\nfrom pygeodesy.lazily import _ALL_DOCS, _ALL_LAZY\n\n__all__ = _ALL_LAZY.geodesicx + _ALL_DOCS(Caps, GeodesicError)\n__version__ = '25.12.23'\n\n# **) MIT License\n#\n# Copyright (C) 2016-2026 -- mrJean1 at Gmail -- All Rights Reserved.\n#\n# Permission is hereby granted, free of charge, to any person obtaining a\n# copy of this software and associated documentation files (the \"Software\"),\n# to deal in the Software without restriction, including without limitation\n# the rights to use, copy, modify, merge, publish, distribute, sublicense,\n# and/or sell copies of the Software, and to permit persons to whom the\n# Software is furnished to do so, subject to the following conditions:\n#\n# The above copyright notice and this permission notice shall be included\n# in all copies or substantial portions of the Software.\n#\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL\n# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR\n# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\n# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n# OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "pygeodesy/geodesicx/__main__.py",
    "content": "\n# -*- coding: utf-8 -*-\n\nu'''Print L{geodesicx} version, etc. using C{python -m pygeodesy.geodesicx}.\n'''\n\n__all__ = ()\n__version__ = '25.06.01'\n\n\ndef _main(**C4order):  # PYCHOK no cover\n\n    try:\n        from pygeodesy import ADict, GeodesicExact, geodesicx\n        from pygeodesy.internals import _fper, _name_version, printf, \\\n                                        _sizeof, typename, _versions\n        from pygeodesy.interns import _COMMASPACE_\n        try:\n            import numpy\n        except ImportError:\n            numpy = None\n\n        gX = GeodesicExact(**C4order)\n        cs = geodesicx.gx._C4coeffs(gX.C4order)\n        n  = len(cs)\n        u  = n if numpy else len(set(cs))\n        p  = ADict(C4order=gX.C4order, C4n=n, C4u=u,\n                   C4u_n=_fper(u, n), C4x=len(gX._C4x),\n                   C4t=typename(type(cs)), C4z=_sizeof(cs))._toL()\n        if numpy:\n            p.append(_name_version(numpy))\n        try:\n            import geographiclib\n            p.append(_name_version(geographiclib))\n        except ImportError:\n            pass\n\n        g = _name_version(geodesicx)\n        printf('%s: %s (%s)', g, _COMMASPACE_.join(p), _versions())\n\n    except ImportError:\n        from pygeodesy.internals import _usage\n        print(_usage(__file__))\n\n\nfrom sys import argv  # .internals._isPyChOK\n_main(C4order=int(argv[1])) if len(argv) == 2 and argv[1].isdigit() else _main()\n\n\n# % python3.13 -m pygeodesy.geodesicx\n# pygeodesy.geodesicx 25.06.01: C4order=30, C4n=5425, C4u=5107, C4u_n=94.1%, C4x=465, C4t=tuple, C4z=166008, geographiclib 2.0 (pygeodesy 25.5.28 Python 3.13.3 64bit arm64 macOS 15.5)\n\n# % python3.13 -m pygeodesy.geodesicx 30\n# pygeodesy.geodesicx 24.09.06: C4order=30, C4n=5425, C4u=5107, C4u_n=94.1%, C4x=465, C4t=tuple, C4z=166008 (pygeodesy 24.9.6 Python 3.13.0rc1 64bit arm64 macOS 14.6.1)\n# % python3.12 -m pygeodesy.geodesicx 30\n# pygeodesy.geodesicx 24.09.06: C4order=30, C4n=5425, C4u=5425, C4u_n=100.0%, C4x=465, C4t=ndarray, C4z=43400, numpy 2.1.0, geographiclib 2.0 (pygeodesy 24.9.6 Python 3.12.5 64bit arm64 macOS 14.6.1)\n\n# % python3.13 -m pygeodesy.geodesicx 27\n# pygeodesy.geodesicx 24.09.06: C4order=27, C4n=4032, C4u=3764, C4u_n=93.4%, C4x=378, C4t=tuple, C4z=122632 (pygeodesy 24.9.6 Python 3.13.0rc1 64bit arm64 macOS 14.6.1)\n# % python3.12 -m pygeodesy.geodesicx 27\n# pygeodesy.geodesicx 24.09.06: C4order=27, C4n=4032, C4u=4032, C4u_n=100.0%, C4x=378, C4t=ndarray, C4z=32256, numpy 2.1.0, geographiclib 2.0 (pygeodesy 24.9.6 Python 3.12.5 64bit arm64 macOS 14.6.1)\n\n# % python3.13 -m pygeodesy.geodesicx 24\n# pygeodesy.geodesicx 24.09.06: C4order=24, C4n=2900, C4u=2708, C4u_n=93.4%, C4x=300, C4t=tuple, C4z=88232 (pygeodesy 24.9.6 Python 3.13.0rc1 64bit arm64 macOS 14.6.1)\n# % python3.12 -m pygeodesy.geodesicx 24\n# pygeodesy.geodesicx 24.09.06: C4order=24, C4n=2900, C4u=2900, C4u_n=100.0%, C4x=300, C4t=ndarray, C4z=23200, numpy 2.1.0, geographiclib 2.0 (pygeodesy 24.9.6 Python 3.12.5 64bit arm64 macOS 14.6.1)\n\n# **) MIT License\n#\n# Copyright (C) 2016-2026 -- mrJean1 at Gmail -- All Rights Reserved.\n#\n# Permission is hereby granted, free of charge, to any person obtaining a\n# copy of this software and associated documentation files (the \"Software\"),\n# to deal in the Software without restriction, including without limitation\n# the rights to use, copy, modify, merge, publish, distribute, sublicense,\n# and/or sell copies of the Software, and to permit persons to whom the\n# Software is furnished to do so, subject to the following conditions:\n#\n# The above copyright notice and this permission notice shall be included\n# in all copies or substantial portions of the Software.\n#\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL\n# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR\n# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\n# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n# OTHER DEALINGS IN THE SOFTWARE.\n\n# % python3 -m pygeodesy.geodesicx\n# pygeodesy.geodesicx.version=24.05.31, .C4len=5425, .C4order=30, .C4set=5107, .C4set_len=94.1%, .C4x=465 (Python 3.12.3, 64bit, arm64, geographiclib 2.0)\n"
  },
  {
    "path": "pygeodesy/geodesicx/gx.py",
    "content": "\n# -*- coding: utf-8 -*-\n\nu'''A pure Python version of I{Karney}'s C++ class U{GeodesicExact\n<https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1GeodesicExact.html>}.\n\nClass L{GeodesicExact} follows the naming, methods and return values\nof class C{Geodesic} from I{Karney}'s Python U{geographiclib\n<https://GitHub.com/geographiclib/geographiclib-python>}.\n\nCopyright (C) U{Charles Karney<mailto:Karney@Alum.MIT.edu>} (2008-2024)\nand licensed under the MIT/X11 License.  For more information, see the\nU{GeographicLib<https://GeographicLib.SourceForge.io>} documentation.\n'''\n# make sure int/int division yields float quotient\nfrom __future__ import division as _; del _  # noqa: E702 ;\n\n# A copy of comments from Karney's C{GeodesicExact.cpp}:\n#\n# This is a reformulation of the geodesic problem.  The\n# notation is as follows:\n# - at a general point (no suffix or 1 or 2 as suffix)\n#   - phi = latitude\n#   - lambda = longitude\n#   - beta = latitude on auxiliary sphere\n#   - omega = longitude on auxiliary sphere\n#   - alpha = azimuth of great circle\n#   - sigma = arc length along great circle\n#   - s = distance\n#   - tau = scaled distance (= sigma at multiples of PI/2)\n# - at northwards equator crossing\n#   - beta = phi = 0\n#   - omega = lambda = 0\n#   - alpha = alpha0\n#   - sigma = s = 0\n# - a 12 suffix means a difference, e.g., s12 = s2 - s1.\n# - s and c prefixes mean sin and cos\n\nfrom pygeodesy.basics import _copysign, _xinstanceof, _xor, unsigned0,  typename\nfrom pygeodesy.constants import EPS, EPS0, EPS02, MANT_DIG, NAN, PI, _EPSqrt, \\\n                               _SQRT2_2, isnan, _0_0, _0_001, _0_01, _0_1, _0_5, \\\n                               _1_0, _N_1_0, _1_75, _2_0, _N_2_0, _2__PI, _3_0, \\\n                               _4_0, _6_0, _8_0, _16_0, _90_0, _180_0, _1000_0\nfrom pygeodesy.datums import _earth_datum, _WGS84,  _EWGS84\n# from pygeodesy.ellipsoids import _EWGS84  # from .datums\nfrom pygeodesy.errors import GeodesicError, _xkwds_pop2\nfrom pygeodesy.fmath import fdot_, hypot, hypot2,  Fmt\nfrom pygeodesy.fsums import fsumf_, fsum1f_\nfrom pygeodesy.geodesicx.gxbases import _cosSeries, _GeodesicBase, \\\n                                        _sincos12, _sin1cos2, _sinf1cos2d, \\\n                                        _TINY, _toNAN, _xnC4\nfrom pygeodesy.geodesicx.gxline import _GeodesicLineExact, _update_glXs\n# from pygeodesy.internals import typename  # from .basics\nfrom pygeodesy.interns import NN, _DOT_, _UNDER_\nfrom pygeodesy.karney import GDict, _around, _atan2d, Caps, _cbrt, _diff182, \\\n                            _fix90, _K_2_0, _norm2, _norm180, _polynomial, \\\n                            _signBit, _sincos2, _sincos2d, _sincos2de, _unsigned2\nfrom pygeodesy.lazily import _ALL_DOCS, _ALL_MODS as _MODS\nfrom pygeodesy.namedTuples import Destination3Tuple, Distance3Tuple\nfrom pygeodesy.props import deprecated_Property, Property, Property_RO, property_RO\n# from pygeodesy.streprs import Fmt  # from .fmath\nfrom pygeodesy.utily import atan2, atan2d as _atan2d_reverse, _unrollon, \\\n                           _Wrap, wrap360\n\nfrom math import copysign, cos, degrees, fabs, radians, sqrt\n\n__all__ = ()\n__version__ = '25.09.16'\n\n_MAXIT1 = 20\n_MAXIT2 = 10 + _MAXIT1 + MANT_DIG  # MANT_DIG == C++ digits\n\n# increased multiplier in defn of _TOL1 from 100 to 200 to fix Inverse\n# case 52.784459512564 0 -52.784459512563990912 179.634407464943777557\n# which otherwise failed for Visual Studio 10 (Release and Debug)\n_TOL0 =  EPS\n_TOL1 = _TOL0 * -200  # negative\n_TOL2 = _EPSqrt  # == sqrt(_TOL0)\n_TOL3 = _TOL2 * _0_1\n_TOLb = _TOL2 * _TOL0  # Check on bisection interval\n_THR1 = _TOL2 * _1000_0 + _1_0\n\n_TINY3  = _TINY *  _3_0\n_TOL08  = _TOL0 *  _8_0\n_TOL016 = _TOL0 * _16_0\n\n\ndef _atan12(*sincos12, **sineg0):\n    '''(INTERNAL) Return C{ang12} in C{radians}.\n    '''\n    return atan2(*_sincos12(*sincos12, **sineg0))\n\n\ndef _eTOL2(f):\n    # Using the auxiliary sphere solution with dnm computed at\n    # (bet1 + bet2) / 2, the relative error in the azimuth\n    # consistency check is sig12^2 * abs(f) * min(1, 1-f/2) / 2.\n    # (Error measured for 1/100 < b/a < 100 and abs(f) >= 1/1000.\n    #  For a given f and sig12, the max error occurs for lines\n    #  near the pole.  If the old rule for computing dnm = (dn1 +\n    #  dn2)/2 is used, then the error increases by a factor of 2.)\n    # Setting this equal to epsilon gives sig12 = eTOL2.  Here,\n    # safety factor 0.1 (error decreased by 100) and max(0.001, abs(f))\n    # stops eTOL2 getting too large in the nearly spherical case.\n    t = min(_1_0, _1_0 - f * _0_5) * max(_0_001, fabs(f)) * _0_5\n    return _TOL3 / (sqrt(t) if t > EPS02 else EPS0)\n\n\nclass _PDict(GDict):\n    '''(INTERNAL) Parameters passed around in C{._GDictInverse} and\n       optionally returned when C{GeodesicExact.debug} is C{True}.\n    '''\n    def set_sigs(self, ssig1, csig1, ssig2, csig2):\n        '''Update the C{sig1} and C{sig2} parameters.\n        '''\n        self.set_(ssig1=ssig1, csig1=csig1, sncndn1=(ssig1, csig1, self.dn1),  # PYCHOK dn1\n                  ssig2=ssig2, csig2=csig2, sncndn2=(ssig2, csig2, self.dn2))  # PYCHOK dn2\n\n    def toGDict(self):  # PYCHOK no cover\n        '''Return as C{GDict} without attrs C{sncndn1} and C{sncndn2}.\n        '''\n        def _rest(sncndn1=None, sncndn2=None, **rest):  # PYCHOK sncndn* not used\n            return GDict(rest)\n\n        return _rest(**self)\n\n\nclass GeodesicExact(_GeodesicBase):\n    '''A pure Python version of I{Karney}'s C++ class U{GeodesicExact\n       <https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1GeodesicExact.html>},\n       modeled after I{Karney}'s Python class U{geodesic.Geodesic<https://GitHub.com/\n       geographiclib/geographiclib-python>}.\n    '''\n    _datum = _WGS84\n    _nC4   =  30  # default C4order\n\n    def __init__(self, a_ellipsoid=_EWGS84, f=None, caps=None, C4order=None, **name_C4Order):  # for backward compatibility\n        '''New L{GeodesicExact} instance.\n\n           @arg a_ellipsoid: An ellipsoid (L{Ellipsoid}) or datum (L{Datum}) or\n                             the equatorial radius of the ellipsoid (C{scalar},\n                             conventionally in C{meter}), see B{C{f}}.\n           @arg f: The flattening of the ellipsoid (C{scalar}) if B{C{a_ellipsoid}}\n                   is specified as C{scalar}.\n           @kwarg caps: Optional default capabilities for L{GeodesicLineExact} instances,\n                        use C{B{caps}=Caps.NONFINITONAN} to handle nonfinites silently.\n           @kwarg C4order: Optional series expansion order (C{int}), see property\n                           L{C4order}, default C{30}.\n           @kwarg name_C4Order: Optional C{B{name}=NN} (C{str}) and the DEPRECATED\n                                keyword argument C{C4Order}, use B{C{C4order}} instead.\n\n           @raise GeodesicError: Invalid B{C{C4order}}.\n        '''\n        if name_C4Order:\n            C4order, name = _xkwds_pop2(name_C4Order, C4Order=C4order)\n            if name:\n                self.name = name\n        else:\n            name = name_C4Order  # no name\n\n        _earth_datum(self, a_ellipsoid, f=f, **name)\n        if caps:\n            self._caps |= caps & Caps._OUT_MASK\n        if C4order:  # XXX private copy, always?\n            self.C4order = C4order\n\n    @Property_RO\n    def a(self):\n        '''Get the I{equatorial} radius, semi-axis (C{meter}).\n        '''\n        return self.ellipsoid.a\n\n    def ArcDirect(self, lat1, lon1, azi1, a12, outmask=Caps.STANDARD):\n        '''Solve the I{Direct} geodesic problem in terms of (spherical) arc length.\n\n           @arg lat1: Latitude of the first point (C{degrees}).\n           @arg lon1: Longitude of the first point (C{degrees}).\n           @arg azi1: Azimuth at the first point (compass C{degrees}).\n           @arg a12: Arc length between the points (C{degrees}), can be negative.\n           @kwarg outmask: Bit-or'ed combination of L{Caps<pygeodesy.karney.Caps>}\n                           values specifying the quantities to be returned.\n\n           @return: A L{GDict} with up to 12 items C{lat1, lon1, azi1, lat2,\n                    lon2, azi2, m12, a12, s12, M12, M21, S12} with C{lat1},\n                    C{lon1}, C{azi1} and arc length C{a12} always included.\n\n           @see: C++ U{GeodesicExact.ArcDirect\n                 <https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1GeodesicExact.html>}\n                 and Python U{Geodesic.ArcDirect<https://GeographicLib.SourceForge.io/Python/doc/code.html>}.\n        '''\n        return self._GDictDirect(lat1, lon1, azi1, True, a12, outmask=outmask)\n\n    def ArcDirectLine(self, lat1, lon1, azi1, a12, caps=Caps.ALL, **name):\n        '''Define a L{GeodesicLineExact} in terms of the I{direct} geodesic problem and as arc length.\n\n           @arg lat1: Latitude of the first point (C{degrees}).\n           @arg lon1: Longitude of the first point (C{degrees}).\n           @arg azi1: Azimuth at the first point (compass C{degrees}).\n           @arg a12: Arc length between the points (C{degrees}), can be negative.\n           @kwarg caps: Desired capabilities for the L{GeodesicLineExact} instance.\n           @kwarg name: Optional C{B{name}=NN} (C{str}).\n\n           @return: A L{GeodesicLineExact} instance.\n\n           @note: The third point of the L{GeodesicLineExact} is set to correspond\n                  to the second point of the I{Inverse} geodesic problem.\n\n           @note: Latitude B{C{lat1}} should in the range C{[-90, +90]}.\n\n           @see: C++ U{GeodesicExact.ArcDirectLine\n                 <https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1GeodesicExact.html>} and\n                 Python U{Geodesic.ArcDirectLine<https://GeographicLib.SourceForge.io/Python/doc/code.html>}.\n        '''\n        return GeodesicLineExact(self, lat1, lon1, azi1, caps=caps, **name)._GenSet(self._debug, a12=a12)\n\n    def Area(self, polyline=False, **name):\n        '''Set up a L{GeodesicAreaExact} to compute area and perimeter of a polygon.\n\n           @kwarg polyline: If C{True}, compute the perimeter only, otherwise the\n                            perimeter and area (C{bool}).\n           @kwarg name: Optional C{B{name}=NN} (C{str}).\n\n           @return: A L{GeodesicAreaExact} instance.\n\n           @note: The B{C{debug}} setting is passed as C{verbose}\n                  to the returned L{GeodesicAreaExact} instance.\n        '''\n        gaX = _MODS.geodesicx.GeodesicAreaExact(self, polyline=polyline,\n                                                      name=self._name__(name))\n        if self.debug:\n            gaX.verbose = True\n        return gaX\n\n    @Property_RO\n    def b(self):\n        '''Get the ellipsoid's I{polar} radius, semi-axis (C{meter}).\n        '''\n        return self.ellipsoid.b\n\n    @Property_RO\n    def c2x(self):\n        '''Get the ellipsoid's I{authalic} earth radius I{squared} (C{meter} I{squared}).\n        '''\n        # The Geodesic class substitutes atanh(sqrt(e2)) for asinh(sqrt(ep2))\n        # in the definition of _c2.  The latter is more accurate for very\n        # oblate ellipsoids (which the Geodesic class does not handle).  Of\n        # course, the area calculation in GeodesicExact is still based on a\n        # series and only holds for moderately oblate (or prolate) ellipsoids.\n        return self.ellipsoid.c2x\n\n    c2 = c2x  # in this particular case\n\n    def C4f(self, eps):\n        '''Evaluate the C{C4x} coefficients for B{C{eps}}.\n\n           @arg eps: Polynomial factor (C{float}).\n\n           @return: C{C4order}-Tuple of C{C4x(B{eps})} coefficients.\n        '''\n        def _c4(nC4, C4x):\n            i, x, e = 0, _1_0, eps\n            _p = _polynomial\n            for r in range(nC4, 0, -1):\n                j  = i + r\n                yield _p(e, C4x, i, j) * x\n                x *= e\n                i  = j\n            # assert i == (nC4 * (nC4 + 1)) // 2\n\n        return tuple(_c4(self._nC4, self._C4x))\n\n    def _C4f_k2(self, k2):  # in ._GDictInverse and gxline._GeodesicLineExact._C4a\n        '''(INTERNAL) Compute C{eps} from B{C{k2}} and invoke C{C4f}.\n        '''\n        return self.C4f(k2 / fsumf_(_2_0, sqrt(k2 + _1_0) * _2_0, k2))\n\n    @Property\n    def C4order(self):\n        '''Get the series expansion order (C{int}, 24, 27 or 30).\n        '''\n        return self._nC4\n\n    @C4order.setter  # PYCHOK .setter!\n    def C4order(self, order):\n        '''Set the series expansion order (C{int}, 24, 27 or 30).\n\n           @raise GeodesicError: Invalid B{C{order}}.\n        '''\n        _xnC4(C4order=order)\n        if self._nC4 != order:\n            GeodesicExact._C4x._update(self)\n            _update_glXs(self)  # zap cached _GeodesicLineExact attrs _B41, _C4a\n        self._nC4 = order\n\n    @deprecated_Property\n    def C4Order(self):\n        '''DEPRECATED, use property C{C4order}.\n        '''\n        return self.C4order\n\n    @C4Order.setter  # PYCHOK .setter!\n    def C4Order(self, order):\n        '''DEPRECATED, use property C{C4order}.\n        '''\n        _xnC4(C4Order=order)\n        self.C4order = order\n\n    @Property_RO\n    def _C4x(self):\n        '''Get this ellipsoid's C{C4} coefficients, I{cached} tuple.\n\n           @see: Property L{C4order}.\n        '''\n        # see C4coeff() in GeographicLib.src.GeodesicExactC4.cpp\n        def _C4(nC4):\n            i, n, cs = 0, self.n, _C4coeffs(nC4)\n            _p = _polynomial\n            for r in range(nC4 + 1, 1, -1):  # _reverange\n                for j in range(1, r):\n                    j = j + i  # (j - i - 1) order of polynomial\n                    yield _p(n, cs, i, j) / cs[j]\n                    i = j + 1\n            # assert i == (nC4 * (nC4 + 1) * (nC4 + 5)) // 6\n\n        return tuple(_C4(self._nC4))  # 3rd flattening\n\n    @property_RO\n    def datum(self):\n        '''Get the datum (C{Datum}).\n        '''\n        return self._datum\n\n    def Direct(self, lat1, lon1, azi1, s12=0, outmask=Caps.STANDARD):\n        '''Solve the I{Direct} geodesic problem\n\n           @arg lat1: Latitude of the first point (C{degrees}).\n           @arg lon1: Longitude of the first point (C{degrees}).\n           @arg azi1: Azimuth at the first point (compass C{degrees}).\n           @arg s12: Distance between the points (C{meter}), can be negative.\n           @kwarg outmask: Bit-or'ed combination of L{Caps<pygeodesy.karney.Caps>}\n                           values specifying the quantities to be returned.\n\n           @return: A L{GDict} with up to 12 items C{lat1, lon1, azi1, lat2,\n                    lon2, azi2, m12, a12, s12, M12, M21, S12} with C{lat1},\n                    C{lon1}, C{azi1} and distance C{s12} always included.\n\n           @see: C++ U{GeodesicExact.Direct\n                 <https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1GeodesicExact.html>}\n                 and Python U{Geodesic.Direct<https://GeographicLib.SourceForge.io/Python/doc/code.html>}.\n        '''\n        return self._GDictDirect(lat1, lon1, azi1, False, s12, outmask=outmask)\n\n    def Direct3(self, lat1, lon1, azi1, s12):  # PYCHOK outmask\n        '''Return the destination lat, lon and reverse azimuth\n           (final bearing) in C{degrees}.\n\n           @return: L{Destination3Tuple}C{(lat, lon, final)}.\n        '''\n        r = self._GDictDirect(lat1, lon1, azi1, False, s12, outmask=Caps._AZIMUTH_LATITUDE_LONGITUDE)\n        return Destination3Tuple(r.lat2, r.lon2, r.azi2)  # no iteration\n\n    def _DirectLine(self, ll1, azi12, s12=0, **caps_name):\n        '''(INTERNAL) Short-cut version.\n        '''\n        return self.DirectLine(ll1.lat, ll1.lon, azi12, s12, **caps_name)\n\n    def DirectLine(self, lat1, lon1, azi1, s12, caps=Caps.STANDARD, **name):\n        '''Define a L{GeodesicLineExact} in terms of the I{direct} geodesic problem and as distance.\n\n           @arg lat1: Latitude of the first point (C{degrees}).\n           @arg lon1: Longitude of the first point (C{degrees}).\n           @arg azi1: Azimuth at the first point (compass C{degrees}).\n           @arg s12: Distance between the points (C{meter}), can be negative.\n           @kwarg caps: Desired capabilities for the L{GeodesicLineExact} instance.\n           @kwarg name: Optional C{B{name}=NN} (C{str}).\n\n           @return: A L{GeodesicLineExact} instance.\n\n           @note: The third point of the L{GeodesicLineExact} is set to correspond\n                  to the second point of the I{Inverse} geodesic problem.\n\n           @note: Latitude B{C{lat1}} should in the range C{[-90, +90]}.\n\n           @see: C++ U{GeodesicExact.DirectLine\n                 <https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1GeodesicExact.html>} and\n                 Python U{Geodesic.DirectLine<https://GeographicLib.SourceForge.io/Python/doc/code.html>}.\n        '''\n        return GeodesicLineExact(self, lat1, lon1, azi1, caps=caps, **name)._GenSet(self._debug, s12=s12)\n\n    def _dn(self, sbet, cbet):  # in gxline._GeodesicLineExact.__init__\n        '''(INTERNAL) Helper.\n        '''\n        if self.f < 0:  # PYCHOK no cover\n            dn = sqrt(_1_0 - cbet**2 * self.e2) / self.f1\n        else:\n            dn = sqrt(_1_0 + sbet**2 * self.ep2)\n        return dn\n\n    @Property_RO\n    def e2(self):\n        '''Get the ellipsoid's I{(1st) eccentricity squared} (C{float}), M{f * (2 - f)}.\n        '''\n        return self.ellipsoid.e2\n\n    @Property_RO\n    def _e2a2(self):\n        '''(INTERNAL) Cache M{E.e2 * E.a2}.\n        '''\n        return self.e2 * self.ellipsoid.a2\n\n    @Property_RO\n    def _e2_f1(self):\n        '''(INTERNAL) Cache M{E.e2 * E.f1}.\n        '''\n        return self.e2 / self.f1\n\n    @Property_RO\n    def _eF(self):\n        '''(INTERNAL) Get the elliptic function, aka C{.E}.\n        '''\n        return _MODS.elliptic.Elliptic(k2=-self.ep2)\n\n    def _eF_reset_cHe2_f1(self, x, y):\n        '''(INTERNAL) Reset elliptic function and return M{cH * e2 / f1 * ...}.\n        '''\n        if isnan(x):\n            y = NAN\n        else:\n            self._eF_reset_k2(x)\n            y *= self._eF.cH * self._e2_f1\n        return y\n\n    def _eF_reset_k2(self, x):\n        '''(INTERNAL) Reset elliptic function and return C{k2}.\n        '''\n        ep2 = self.ep2\n        x  *= x * ep2  # see .gxline._GeodesicLineExact._eF\n        self._eF.reset(k2=-x, alpha2=-ep2)  # kp2, alphap2 defaults\n        _update_glXs(self)  # zap cached/memoized _GeodesicLineExact attrs\n        return x\n\n    @Property_RO\n    def ellipsoid(self):\n        '''Get the ellipsoid (C{Ellipsoid}).\n        '''\n        return self.datum.ellipsoid\n\n    @Property_RO\n    def ep2(self):\n        '''Get the ellipsoid's I{2nd eccentricity squared} (C{float}), M{e2 / (1 - e2)}.\n        '''\n        return self.ellipsoid.e22  # == self.e2 / self.f1**2\n\n    e22 = ep2  # for ellipsoid compatibility\n\n    @Property_RO\n    def _eTOL2(self):\n        '''(INTERNAL) The si12 threshold for \"really short\".\n        '''\n        return _eTOL2(self.f)\n\n    @Property_RO\n    def flattening(self):\n        '''Get the C{ellipsoid}'s I{flattening} (C{scalar}), M{(a - b) / a}, C{0} for spherical, negative for prolate.\n        '''\n        return self.ellipsoid.f\n\n    f = flattening\n\n    @Property_RO\n    def f1(self):  # in .css.CassiniSoldner.reset\n        '''Get the C{ellipsoid}'s I{1 - flattening} (C{float}).\n        '''\n        return self.ellipsoid.f1\n\n    @Property_RO\n    def _f180(self):\n        '''(INTERNAL) Cached/memoized.\n        '''\n        return self.f * _180_0\n\n    def _GDictDirect(self, lat1, lon1, azi1, arcmode, s12_a12, outmask=Caps.STANDARD):\n        '''(INTERNAL) As C{_GenDirect}, but returning a L{GDict}.\n\n           @return: A L{GDict} ...\n        '''\n        C = outmask if arcmode else (outmask | Caps.DISTANCE_IN)\n        glX = self.Line(lat1, lon1, azi1, caps=C | Caps.LINE_OFF)\n        return glX._GDictPosition(arcmode, s12_a12, outmask)\n\n    def _GDictInverse(self, lat1, lon1, lat2, lon2, outmask=Caps.STANDARD):  # MCCABE 33, 41 vars\n        '''(INTERNAL) As C{_GenInverse}, but returning a L{GDict}.\n\n           @return: A L{GDict} ...\n        '''\n        r, Cs = GDict(), Caps\n        if self._debug:  # PYCHOK no cover\n            outmask |= Cs._DEBUG_INVERSE & self._debug\n        outmask |= self.caps\n        outmask &= Cs._OUT_MASK  # incl. _SALP_CALPs_ and _DEBUG_\n        if _toNAN(outmask, lat1, lon1, lat2, lon2):\n            return r._toNAN(outmask, lat1=lat1, lon1=lon1, lat2=lat2, lon2=lon2)\n\n        # compute longitude difference carefully (with _diff182):\n        # result is in [-180, +180] but -180 is only for west-going\n        # geodesics, +180 is for east-going and meridional geodesics\n        lon12, lon12s = _diff182(lon1, lon2)\n        # see C{result} from geographiclib.geodesic.Inverse\n        if (outmask & Cs.LONG_UNROLL):  # == (lon1 + lon12) + lon12s\n            r.set_(lon1=lon1, lon2=fsumf_(lon1, lon12, lon12s))\n        elif (outmask & Cs.LONGITUDE):\n            r.set_(lon1=_norm180(lon1), lon2=_norm180(lon2))\n        if _K_2_0:  # GeographicLib 2.0\n            # make longitude difference positive\n            lon12, lon_ = _unsigned2(lon12)\n            if lon_:\n                lon12s = -lon12s\n            lam12 = radians(lon12)\n            # calculate sincosd(_around(lon12 + correction))\n            slam12, clam12 = _sincos2de(lon12, lon12s)\n            # supplementary longitude difference\n            lon12s = fsumf_(_180_0, -lon12, -lon12s)\n        else:  # GeographicLib 1.52\n            # make longitude difference positive and if very close\n            # to being on the same half-meridian, then make it so.\n            if lon12 < 0:  # _signBit(lon12)\n                lon_, lon12 = True, -_around(lon12)\n                lon12s = _around(fsumf_(_180_0, -lon12,  lon12s))\n            else:\n                lon_, lon12 = False, _around(lon12)\n                lon12s = _around(fsumf_(_180_0, -lon12, -lon12s))\n            lam12 = radians(lon12)\n            if lon12 > _90_0:\n                slam12, clam12 = _sincos2d(lon12s)\n                clam12 = -clam12\n            else:\n                slam12, clam12 = _sincos2(lam12)\n        # If really close to the equator, treat as on equator.\n        lat1 = _around(_fix90(lat1))\n        lat2 = _around(_fix90(lat2))\n        if (outmask & Cs.LATITUDE):\n            r.set_(lat1=lat1, lat2=lat2)\n        # Swap points so that point with higher (abs) latitude is\n        # point 1.  If one latitude is a NAN, then it becomes lat1.\n        swap_ = isnan(lat2) or fabs(lat1) < fabs(lat2)\n        if swap_:\n            lat1, lat2 = lat2, lat1\n            lon_ = not lon_\n        if _signBit(lat1):\n            lat_ = False  # note, False\n        else:  # make lat1 <= -0\n            lat_ = True  # note, True\n            lat1, lat2 = -lat1, -lat2\n        # Now 0 <= lon12 <= 180, -90 <= lat1 <= -0 and lat1 <= lat2 <= -lat1\n        # and lat_, lon_, swap_ register the transformation to bring the\n        # coordinates to this canonical form, where False means no change\n        # made.  We make these transformations so that there are few cases\n        # to check, e.g., on verifying quadrants in atan2.  In addition,\n        # this enforces some symmetries in the results returned.\n\n        # Initialize for the meridian.  No longitude calculation is done in\n        # this case to let the parameter default to 0.\n        sbet1, cbet1 = _sinf1cos2d(lat1, self.f1)\n        sbet2, cbet2 = _sinf1cos2d(lat2, self.f1)\n        # If cbet1 < -sbet1, then cbet2 - cbet1 is a sensitive measure\n        # of the |bet1| - |bet2|.  Alternatively (cbet1 >= -sbet1),\n        # abs(sbet2) + sbet1 is a better measure.  This logic is used\n        # in assigning calp2 in _Lambda6.  Sometimes these quantities\n        # vanish and in that case we force bet2 = +/- bet1 exactly.  An\n        # example where is is necessary is the inverse problem\n        # 48.522876735459 0 -48.52287673545898293 179.599720456223079643\n        # which failed with Visual Studio 10 (Release and Debug)\n        if cbet1 < -sbet1:\n            if cbet2 == cbet1:\n                sbet2 = copysign(sbet1, sbet2)\n        elif fabs(sbet2) == -sbet1:\n            cbet2 = cbet1\n\n        p = _PDict(sbet1=sbet1, cbet1=cbet1, dn1=self._dn(sbet1, cbet1),\n                   sbet2=sbet2, cbet2=cbet2, dn2=self._dn(sbet2, cbet2))\n\n        _meridian = _b = True  # i.e. meridian = b = False\n        if lat1 == -90 or slam12 == 0:\n            # Endpoints are on a single full meridian,\n            # so the geodesic might lie on a meridian.\n            salp1, calp1 =  slam12, clam12  # head to target lon\n            salp2, calp2 = _0_0,   _1_0  # then head north\n            # tan(bet) = tan(sig) * cos(alp)\n            p.set_sigs(sbet1, calp1 * cbet1, sbet2, calp2 * cbet2)\n            # sig12 = sig2 - sig1\n            sig12 = _atan12(sbet1, p.csig1, sbet2, p.csig2, sineg0=True)  # PYCHOK csig*\n            s12x, m12x, _, \\\n            M12,  M21 = self._Length5(sig12, outmask | Cs.REDUCEDLENGTH, p)\n            # Add the check for sig12 since zero length geodesics\n            # might yield m12 < 0.  Test case was\n            #    echo 20.001 0 20.001 0 | GeodSolve -i\n            # In fact, we will have sig12 > PI/2 for meridional\n            # geodesic which is not a shortest path.\n            if sig12 < _TOL2 or m12x >= 0:  # GeographicLib 2.5.1\n                # Need at least 2 to handle 90 0 90 180\n                # Prevent negative s12 or m12 from geographiclib 1.52\n                if sig12 < _TINY3 or (sig12 < _TOL0 and (s12x < 0 or m12x < 0)):\n                    sig12 = m12x = s12x = _0_0\n#               else:\n#                   m12x *= self.b\n#                   s12x *= self.b\n                _meridian = _b = False  # i.e. meridian = b = True\n                C = 1\n#           else:  # m12 < 0, prolate and too close to anti-podal\n#               _meridian = True  # i.e. meridian = False\n        a12 = _0_0  # if _b else degrees(sig12)\n\n        if _meridian:\n            _b = sbet1 == 0 and (self.f <= 0 or lon12s >= self._f180)  # and sbet2 == 0\n            if _b:  # Geodesic runs along equator\n                calp1 = calp2 = _0_0\n                salp1 = salp2 = _1_0\n                sig12 = lam12 / self.f1  # == omg12\n                somg12, comg12 = _sincos2(sig12)\n                m12x = self.b * somg12\n                s12x = self.a * lam12\n                M12  = M21 = comg12\n                a12  = lon12 / self.f1\n                C = 2\n            else:\n                # Now point1 and point2 belong within a hemisphere bounded by a\n                # meridian and geodesic is neither meridional or equatorial.\n                p.set_(slam12=slam12, clam12=clam12)\n                # Figure a starting point for Newton's method\n                sig12, salp1, calp1, \\\n                       salp2, calp2, dnm = self._InverseStart6(lam12, p)\n                if sig12 is None:  # use Newton's method\n                    # pre-compute the constant _Lambda6 term, once\n                    p.set_(bet12=None if cbet2 == cbet1 and fabs(sbet2) == -sbet1 else\n                         (((cbet1 + cbet2) * (cbet2 - cbet1)) if cbet1  <  -sbet1 else\n                          ((sbet1 + sbet2) * (sbet1 - sbet2))))\n                    sig12, salp1, calp1, \\\n                           salp2, calp2, domg12 = self._Newton6(salp1, calp1, p)\n                    s12x, m12x, _, M12, M21 = self._Length5(sig12, outmask, p)\n                    if (outmask & Cs.AREA):\n                        # omg12 = lam12 - domg12\n                        s, c = _sincos2(domg12)\n                        somg12, comg12 = _sincos12(s, c, slam12, clam12)\n                    C = 3  # Newton\n                else:  # from _InverseStart6: dnm, salp*, calp*\n                    C = 4  # Short lines\n                    s, c = _sincos2(sig12 / dnm)\n                    m12x = dnm**2 * s\n                    s12x = dnm * sig12\n                    M12  = M21 = c\n                    if (outmask & Cs.AREA):\n                        somg12, comg12 = _sincos2(lam12 / (self.f1 * dnm))\n\n        else:  # _meridian is False, i.e. meridian is True\n            somg12 = comg12 = NAN\n\n        r.set_(a12=a12 if _b else degrees(sig12))  # in [0, 180]\n\n        if (outmask & Cs.DISTANCE):\n            r.set_(s12=unsigned0(s12x if _b else (self.b * s12x)))\n\n        if (outmask & Cs.REDUCEDLENGTH):\n            r.set_(m12=unsigned0(m12x if _b else (self.b * m12x)))\n\n        if (outmask & Cs.GEODESICSCALE):\n            if swap_:\n                M12, M21 = M21, M12\n            r.set_(M12=unsigned0(M12),\n                   M21=unsigned0(M21))\n\n        if (outmask & Cs.AREA):\n            S12 = self._InverseArea(_meridian, salp1, calp1,\n                                               salp2, calp2,\n                                               somg12, comg12, p)\n            if _xor(swap_, lat_, lon_):\n                S12 = -S12\n            r.set_(S12=unsigned0(S12))\n\n        if (outmask & (Cs.AZIMUTH | Cs._SALP_CALPs_)):\n            if swap_:\n                salp1, salp2 = salp2, salp1\n                calp1, calp2 = calp2, calp1\n            if _xor(swap_, lon_):\n                salp1, salp2 = -salp1, -salp2\n            if _xor(swap_, lat_):\n                calp1, calp2 = -calp1, -calp2\n\n            if (outmask & Cs.AZIMUTH):\n                r.set_(azi1=_atan2d(salp1, calp1),\n                       azi2=_atan2d_reverse(salp2, calp2, reverse=outmask & Cs.REVERSE2))\n            if (outmask & Cs._SALP_CALPs_):\n                r.set_(salp1=salp1, calp1=calp1,\n                       salp2=salp2, calp2=calp2)\n\n        if (outmask & Cs._DEBUG_INVERSE):  # PYCHOK no cover\n            E, eF = self.ellipsoid, self._eF\n            p.set_(C=C, a=self.a, f=self.f, f1=self.f1,\n                        e=E.e, e2=self.e2, ep2=self.ep2,\n                        c2=E.c2, c2x=self.c2x,\n                        eFcD=eF.cD, eFcE=eF.cE, eFcH=eF.cH,\n                        eFk2=eF.k2, eFa2=eF.alpha2)\n            p.update(r)  # r overrides p\n            r = p.toGDict()\n\n        return self._iter2tion(r, **p)\n\n    def _GenDirect(self, lat1, lon1, azi1, arcmode, s12_a12, outmask=Caps.STANDARD):\n        '''(INTERNAL) The general I{Inverse} geodesic calculation.\n\n           @return: L{Direct9Tuple}C{(a12, lat2, lon2, azi2,\n                                      s12, m12,  M12,  M21, S12)}.\n        '''\n        r = self._GDictDirect(lat1, lon1, azi1, arcmode, s12_a12, outmask=outmask)\n        return r.toDirect9Tuple()\n\n    def _GenInverse(self, lat1, lon1, lat2, lon2, outmask=Caps.STANDARD):\n        '''(INTERNAL) The general I{Inverse} geodesic calculation.\n\n           @return: L{Inverse10Tuple}C{(a12, s12, salp1, calp1, salp2, calp2,\n                                             m12,   M12,   M21,   S12)}.\n        '''\n        r = self._GDictInverse(lat1, lon1, lat2, lon2, outmask=outmask | Caps._SALP_CALPs_)\n        return r.toInverse10Tuple()\n\n    def _Inverse(self, ll1, ll2, wrap, **outmask):\n        '''(INTERNAL) Short-cut version, see .base.ellipsoidalDI.intersecant2.\n        '''\n        if wrap:\n            ll2 = _unrollon(ll1, _Wrap.point(ll2))\n        return self.Inverse(ll1.lat, ll1.lon, ll2.lat, ll2.lon, **outmask)\n\n    def Inverse(self, lat1, lon1, lat2, lon2, outmask=Caps.STANDARD):\n        '''Perform the I{Inverse} geodesic calculation.\n\n           @arg lat1: Latitude of the first point (C{degrees}).\n           @arg lon1: Longitude of the first point (C{degrees}).\n           @arg lat2: Latitude of the second point (C{degrees}).\n           @arg lon2: Longitude of the second point (C{degrees}).\n           @kwarg outmask: Bit-or'ed combination of L{Caps<pygeodesy.karney.Caps>}\n                           values specifying the quantities to be returned.\n\n           @return: A L{GDict} with up to 12 items C{lat1, lon1, azi1, lat2,\n                    lon2, azi2, m12, a12, s12, M12, M21, S12} with C{lat1},\n                    C{lon1}, C{azi1} and distance C{s12} always included.\n\n           @note: The third point of the L{GeodesicLineExact} is set to correspond\n                  to the second point of the I{Inverse} geodesic problem.\n\n           @note: Both B{C{lat1}} and B{C{lat2}} should in the range C{[-90, +90]}.\n\n           @see: C++ U{GeodesicExact.InverseLine\n                 <https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1GeodesicExact.html>} and\n                 Python U{Geodesic.InverseLine<https://GeographicLib.SourceForge.io/Python/doc/code.html>}.\n        '''\n        return self._GDictInverse(lat1, lon1, lat2, lon2, outmask=outmask)\n\n    def Inverse1(self, lat1, lon1, lat2, lon2, wrap=False):\n        '''Return the non-negative, I{angular} distance in C{degrees}.\n\n           @kwarg wrap: If C{True}, wrap or I{normalize} and unroll\n                        B{C{lat2}} and B{C{lon2}} (C{bool}).\n        '''\n        # see .FrechetKarney.distance, .HausdorffKarney._distance\n        # and .HeightIDWkarney._distances\n        if wrap:\n            _, lat2, lon2 = _Wrap.latlon3(lat1, lat2, lon2, True)  # _Geodesic.LONG_UNROLL\n        r = self._GDictInverse(lat1, lon1, lat2, lon2, outmask=Caps.EMPTY)\n        return fabs(r.a12)  # a12 always\n\n    def Inverse3(self, lat1, lon1, lat2, lon2):  # PYCHOK outmask\n        '''Return the distance in C{meter} and the forward and\n           reverse azimuths (initial and final bearing) in C{degrees}.\n\n           @return: L{Distance3Tuple}C{(distance, initial, final)}.\n        '''\n        r = self._GDictInverse(lat1, lon1, lat2, lon2, outmask=Caps.AZIMUTH_DISTANCE)\n        return Distance3Tuple(r.s12, wrap360(r.azi1), wrap360(r.azi2),\n                              iteration=r.iteration)\n\n    def _InverseLine(self, ll1, ll2, wrap, **caps_name):\n        '''(INTERNAL) Short-cut version.\n        '''\n        if wrap:\n            ll2 = _unrollon(ll1, _Wrap.point(ll2))\n        return self.InverseLine(ll1.lat, ll1.lon, ll2.lat, ll2.lon, **caps_name)\n\n    def InverseLine(self, lat1, lon1, lat2, lon2, caps=Caps.STANDARD, **name):\n        '''Define a L{GeodesicLineExact} in terms of the I{Inverse} geodesic problem.\n\n           @arg lat1: Latitude of the first point (C{degrees}).\n           @arg lon1: Longitude of the first point (C{degrees}).\n           @arg lat2: Latitude of the second point (C{degrees}).\n           @arg lon2: Longitude of the second point (C{degrees}).\n           @kwarg caps: Desired capabilities for the L{GeodesicLineExact} instance.\n           @kwarg name: Optional C{B{name}=NN} (C{str}).\n\n           @return: A L{GeodesicLineExact} instance.\n\n           @note: The third point of the L{GeodesicLineExact} is set to correspond\n                  to the second point of the I{Inverse} geodesic problem.\n\n           @note: Both B{C{lat1}} and B{C{lat2}} should in the range C{[-90, +90]}.\n\n           @see: C++ U{GeodesicExact.InverseLine\n                 <https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1GeodesicExact.html>} and\n                 Python U{Geodesic.InverseLine<https://GeographicLib.SourceForge.io/Python/doc/code.html>}.\n        '''\n        r = self._GDictInverse(lat1, lon1, lat2, lon2, outmask=caps | Caps._SALP_CALPs_)\n        return GeodesicLineExact(self, lat1, lon1, None, caps=caps, _s_calp1=(r.salp1, r.calp1),\n                                                            **name)._GenSet(self._debug, **r)\n\n    def _InverseArea(self, _meridian, salp1, calp1,  # PYCHOK 9 args\n                                      salp2, calp2,\n                                      somg12, comg12, p):\n        '''(INTERNAL) Split off from C{_GDictInverse} to reduce complexity/length.\n\n           @return: Area C{S12}.\n        '''\n        # from _Lambda6: sin(alp1) * cos(bet1) = sin(alp0), calp0 > 0\n        salp0, calp0 = _sin1cos2(salp1, calp1, p.sbet1, p.cbet1)\n        A4 = calp0 * salp0\n        if A4:\n            # from _Lambda6: tan(bet) = tan(sig) * cos(alp)\n            k2  =  calp0**2 * self.ep2\n            C4a =  self._C4f_k2(k2)\n            B41 = _cosSeries(C4a, *_norm2(p.sbet1, calp1 * p.cbet1))\n            B42 = _cosSeries(C4a, *_norm2(p.sbet2, calp2 * p.cbet2))\n            # multiplier = a^2 * e^2 * cos(alpha0) * sin(alpha0)\n            A4 *= self._e2a2\n            S12 = A4 * (B42 - B41)\n        else:  # avoid problems with indeterminate sig1, sig2 on equator\n            A4 = B41 = B42 = k2 = S12 = _0_0\n\n        if (_meridian and  # omg12 < 3/4 * PI\n             comg12 > -_SQRT2_2 and  # lon diff not too big\n             (p.sbet2 - p.sbet1) < _1_75):  # lat diff not too big\n            # use tan(Gamma/2) = tan(omg12/2) *\n            #                   (tan(bet1/2) + tan(bet2/2)) /\n            #                   (tan(bet1/2) * tan(bet2/2) + 1))\n            # with tan(x/2) = sin(x) / (1 + cos(x))\n            dbet1  = p.cbet1 + _1_0\n            dbet2  = p.cbet2 + _1_0\n            domg12 =  comg12 + _1_0\n            salp12 = fdot_(p.sbet1,   dbet2, dbet1, p.sbet2) * somg12\n            calp12 = fdot_(p.sbet1, p.sbet2, dbet1,   dbet2) * domg12\n            alp12  = atan2(salp12, calp12) * _2_0\n        else:\n            # alp12 = alp2 - alp1, used in atan2, no need to normalize\n            salp12, calp12 = _sincos12(salp1, calp1, salp2, calp2)\n            # The right thing appears to happen if alp1 = +/-180 and\n            # alp2 = 0, viz salp12 = -0 and alp12 = -180.  However,\n            # this depends on the sign being attached to 0 correctly.\n            # Following ensures the correct behavior.\n            if salp12 == 0 and calp12 < 0:\n                alp12 = _copysign(PI, calp1)\n            else:\n                alp12 =  atan2(salp12, calp12)\n\n        p.set_(alp12=alp12, A4=A4, B41=B41, B42=B42, k2=k2)\n        return S12 + self.c2x * alp12\n\n    def _InverseStart6(self, lam12, p):\n        '''(INTERNAL) Return a starting point for Newton's method in\n           C{salp1} and C{calp1} indicated by C{sig12=None}.  If\n           Newton's method doesn't need to be used, return also\n           C{salp2}, C{calp2}, C{dnm} and C{sig12} non-C{None}.\n\n           @return: 6-Tuple C{(sig12, salp1, calp1, salp2, calp2, dnm)}\n                    and C{p.set_sigs} updated for Newton, C{sig12=None}.\n        '''\n        sig12 = None  # use Newton\n        salp1 = calp1 = salp2 = calp2 = NAN\n\n        # bet12 = bet2 - bet1 in [0, PI)\n        sbet12, cbet12 = _sincos12(p.sbet1, p.cbet1, p.sbet2, p.cbet2)\n        shortline = cbet12 >= 0 and sbet12 < _0_5 and (p.cbet2 * lam12) < _0_5\n        if shortline:\n            # sin((bet1 + bet2)/2)^2 = (sbet1 + sbet2)^2 / (\n            #      (cbet1 + cbet2)^2 + (sbet1 + sbet2)^2)\n            t = p.sbet1 + p.sbet2\n            if t:\n                t *= t / hypot2(t, p.cbet1 + p.cbet2)\n                dnm =  sqrt(self.ep2 * t + _1_0)\n            else:\n                dnm = _1_0\n            somg12, comg12 = _sincos2(lam12 / (self.f1 * dnm))\n        else:\n            somg12, comg12, dnm = p.slam12, p.clam12, NAN\n\n        # bet12a = bet2 + bet1 in (-PI, 0], note -sbet1\n        sbet12a, cbet12a = _sincos12(-p.sbet1, p.cbet1, p.sbet2, p.cbet2)\n\n        c = fabs(comg12) + _1_0  # == (1 - comg12) if comg12 < 0\n        s = somg12**2 / c\n        t = p.sbet1 * p.cbet2 * s\n        salp1 =  p.cbet2 * somg12\n        calp1 = (sbet12a - t) if comg12 < 0 else (sbet12 + t)\n\n        ssig12 = hypot(salp1, calp1)\n        csig12 = fdot_(p.sbet1, p.sbet2, p.cbet1, p.cbet2 * comg12)\n\n        if shortline and ssig12 < self._eTOL2:  # really short lines\n            t = c if comg12 < 0 else s\n            salp2, calp2 = _norm2(somg12 * p.cbet1,\n                                  sbet12 - p.cbet1 * p.sbet2 * t)\n            sig12 = atan2(ssig12, csig12)  # do not use Newton\n\n        elif (self._n_0_1 or  # Skip astroid calc if too eccentric\n              csig12 >= 0 or ssig12 >= (p.cbet1**2 * self._n6PI)):\n            pass  # nothing to do, 0th order spherical approximation OK\n\n        else:\n            # Scale lam12 and bet2 to x, y coordinate system where antipodal\n            # point is at origin and singular point is at y = 0, x = -1\n            lam12x = atan2(-p.slam12, -p.clam12)  # lam12 - PI\n            f = self.f\n            if f < 0:  # PYCHOK no cover\n                # ssig1=sbet1, csig1=-cbet1, ssig2=sbet2, csig2=cbet2\n                p.set_sigs(p.sbet1, -p.cbet1, p.sbet2, p.cbet2)\n                # if lon12 = 180, this repeats a calculation made in Inverse\n                _, m12b, m0, _, _ = self._Length5(atan2(sbet12a, cbet12a) + PI,\n                                                  Caps.REDUCEDLENGTH, p)\n                t = p.cbet1 * PI  # x = dlat, y = dlon\n                x = m12b / (t * p.cbet2 * m0) - _1_0\n                sca = (sbet12a / (x * p.cbet1)) if x < -_0_01 else (-f * t)\n                y = lam12x / sca\n            else:  # f >= 0, however f == 0 does not get here\n                sca = self._eF_reset_cHe2_f1(p.sbet1, p.cbet1 * _2_0)\n                x = lam12x / sca  # dlon\n                y = sbet12a / (sca * p.cbet1)  # dlat\n\n            if y > _TOL1 and x > -_THR1:  # strip near cut\n                if f < 0:  # PYCHOK no cover\n                    calp1 = max( _0_0, x) if x > _TOL1 else max(_N_1_0, x)\n                    salp1 = sqrt(_1_0 - calp1**2)\n                else:\n                    salp1 =  min( _1_0, -x)\n                    calp1 = -sqrt(_1_0 - salp1**2)\n            else:\n                # Estimate alp1, by solving the astroid problem.\n                #\n                # Could estimate alpha1 = theta + PI/2, directly, i.e.,\n                #   calp1 = y/k; salp1 = -x/(1+k);  for _f >= 0\n                #   calp1 = x/(1+k); salp1 = -y/k;  for _f < 0 (need to check)\n                #\n                # However, it's better to estimate omg12 from astroid and use\n                # spherical formula to compute alp1.  This reduces the mean\n                # number of Newton iterations for astroid cases from 2.24\n                # (min 0, max 6) to 2.12 (min 0, max 5).  The changes in the\n                # number of iterations are as follows:\n                #\n                # change percent\n                #    1       5\n                #    0      78\n                #   -1      16\n                #   -2       0.6\n                #   -3       0.04\n                #   -4       0.002\n                #\n                # The histogram of iterations is (m = number of iterations\n                # estimating alp1 directly, n = number of iterations\n                # estimating via omg12, total number of trials = 148605):\n                #\n                #  iter    m      n\n                #    0   148    186\n                #    1 13046  13845\n                #    2 93315 102225\n                #    3 36189  32341\n                #    4  5396      7\n                #    5   455      1\n                #    6    56      0\n                #\n                # omg12 is near PI, estimate work with omg12a = PI - omg12\n                k    = _Astroid(x, y)\n                k1   = _1_0 + k\n                sca *= (y * k1 / k) if f < 0 else (x * k / k1)\n                s, c = _sincos2(-sca)  # omg12a\n                # update spherical estimate of alp1 using omg12 instead of lam12\n                salp1 = p.cbet2 * s\n                calp1 = sbet12a - s * salp1 * p.sbet1 / (c + _1_0)  # c = -c\n\n        # sanity check on starting guess.  Backwards check allows NaN through.\n        salp1, calp1 = _norm2(salp1, calp1) if salp1 > 0 else (_1_0, _0_0)\n\n        return sig12, salp1, calp1, salp2, calp2, dnm\n\n    def _Lambda6(self, salp1, calp1, diffp, p):\n        '''(INTERNAL) Helper.\n\n           @return: 6-Tuple C{(lam12, sig12, salp2, calp2, domg12,\n                    dlam12} and C{p.set_sigs} updated.\n        '''\n        eF = self._eF\n        f1 = self.f1\n\n        if p.sbet1 == calp1 == 0:  # PYCHOK no cover\n            # Break degeneracy of equatorial line\n            calp1 = -_TINY\n\n        # sin(alp1) * cos(bet1) = sin(alp0),  # calp0 > 0\n        salp0, calp0 = _sin1cos2(salp1, calp1, p.sbet1, p.cbet1)\n        # tan(bet1) = tan(sig1) * cos(alp1)\n        # tan(omg1) = sin(alp0) * tan(sig1)\n        #           = sin(bet1) * tan(alp1)\n        somg1 = salp0 * p.sbet1\n        comg1 = calp1 * p.cbet1\n        ssig1, csig1 = _norm2(p.sbet1, comg1)\n        # Without normalization we have schi1 = somg1\n        cchi1 = f1 * p.dn1 * comg1\n\n        # Enforce symmetries in the case abs(bet2) = -bet1.\n        # Need to be careful about this case, since this can\n        # yield singularities in the Newton iteration.\n        # sin(alp2) * cos(bet2) = sin(alp0)\n        salp2 = (salp0 / p.cbet2) if p.cbet2 != p.cbet1 else salp1\n        # calp2 = sqrt(1 - sq(salp2))\n        #       = sqrt(sq(calp0) - sq(sbet2)) / cbet2\n        # and subst for calp0 and rearrange to give (choose\n        # positive sqrt to give alp2 in [0, PI/2]).\n        calp2 = fabs(calp1) if p.bet12 is None else (\n                sqrt((calp1 * p.cbet1)**2 + p.bet12) / p.cbet2)\n        # tan(bet2) = tan(sig2) * cos(alp2)\n        # tan(omg2) = sin(alp0) * tan(sig2).\n        somg2 = salp0 * p.sbet2\n        comg2 = calp2 * p.cbet2\n        ssig2, csig2 = _norm2(p.sbet2, comg2)\n        # without normalization we have schi2 = somg2\n        cchi2 = f1 * p.dn2 * comg2\n\n        # omg12 = omg2 - omg1, limit to [0, PI]\n        somg12, comg12 = _sincos12(somg1, comg1, somg2, comg2, sineg0=True)\n        # chi12 = chi2 - chi1, limit to [0, PI]\n        schi12, cchi12 = _sincos12(somg1, cchi1, somg2, cchi2, sineg0=True)\n\n        p.set_sigs(ssig1, csig1, ssig2, csig2)\n        # sig12 = sig2 - sig1, limit to [0, PI]\n        sig12 = _atan12(ssig1, csig1, ssig2, csig2, sineg0=True)\n\n        eta12  = self._eF_reset_cHe2_f1(calp0, salp0) * _2__PI  # then ...\n        eta12 *= fsum1f_(eF.deltaH(*p.sncndn2),\n                        -eF.deltaH(*p.sncndn1), sig12)\n        # eta = chi12 - lam12\n        lam12  = _atan12(p.slam12, p.clam12, schi12, cchi12) - eta12\n        # domg12 = chi12 - omg12 - deta12\n        domg12 = _atan12(  somg12,   comg12, schi12, cchi12) - eta12\n\n        dlam12 = NAN  # dv > 0 in ._Newton6\n        if diffp:\n            d = calp2 * p.cbet2\n            if d:\n                _, dlam12, _, _, _ = self._Length5(sig12, Caps.REDUCEDLENGTH, p)\n                dlam12 *=  f1 / d\n            elif p.sbet1:\n                dlam12  = -f1 * p.dn1 * _2_0 / p.sbet1\n\n        # p.set_(deta12=-eta12, lam12=lam12)\n        return lam12, sig12, salp2, calp2, domg12, dlam12\n\n    def _Length5(self, sig12, outmask, p):\n        '''(INTERNAL) Return M{m12b = (reduced length) / self.b} and\n           calculate M{s12b = distance / self.b} and M{m0}, the\n           coefficient of secular term in expression for reduced\n           length and the geodesic scales C{M12} and C{M21}.\n\n           @return: 5-Tuple C{(s12b, m12b, m0, M12, M21)}.\n        '''\n        s12b = m12b = m0 = M12 = M21 = NAN\n\n        Cs = Caps\n        eF = self._eF\n\n        # outmask &= Cs._OUT_MASK\n        if (outmask & Cs.DISTANCE):\n            # Missing a factor of self.b\n            s12b = eF.cE * _2__PI * fsum1f_(eF.deltaE(*p.sncndn2),\n                                           -eF.deltaE(*p.sncndn1), sig12)\n\n        if (outmask & Cs._REDUCEDLENGTH_GEODESICSCALE):\n            m0x = -eF.k2 * eF.cD * _2__PI\n            J12 = -m0x * fsum1f_(eF.deltaD(*p.sncndn2),\n                                -eF.deltaD(*p.sncndn1), sig12)\n            if (outmask & Cs.REDUCEDLENGTH):\n                m0 = m0x\n                # Missing a factor of self.b.  Add parens around\n                # (csig1 * ssig2) and (ssig1 * csig2) to ensure\n                # accurate cancellation for coincident points.\n                m12b = fdot_(p.dn2, (p.csig1 * p.ssig2),\n                            -p.dn1, (p.ssig1 * p.csig2),\n                               J12, (p.csig1 * p.csig2))\n            if (outmask & Cs.GEODESICSCALE):\n                M12 = M21 = fdot_(p.ssig1, p.ssig2, p.csig1, p.csig2)\n                t = (p.cbet1 - p.cbet2) * self.ep2 * \\\n                    (p.cbet1 + p.cbet2) / (p.dn1 + p.dn2)\n                M12 += fdot_(p.ssig2, t, p.csig2, J12) * p.ssig1 / p.dn1\n                M21 -= fdot_(p.ssig1, t, p.csig1, J12) * p.ssig2 / p.dn2\n\n        return s12b, m12b, m0, M12, M21\n\n    def Line(self, lat1, lon1, azi1, caps=Caps.ALL, **name):\n        '''Set up a L{GeodesicLineExact} to compute several points\n           on a single geodesic.\n\n           @arg lat1: Latitude of the first point (C{degrees}).\n           @arg lon1: Longitude of the first point (C{degrees}).\n           @arg azi1: Azimuth at the first point (compass C{degrees}).\n           @kwarg caps: Desired capabilities for the L{GeodesicLineExact} instance.\n           @kwarg name: Optional C{B{name}=NN} (C{str}).\n\n           @return: A L{GeodesicLineExact} instance.\n\n           @note: If the point is at a pole, the azimuth is defined by keeping\n                  B{C{lon1}} fixed, writing C{B{lat1} = ±(90 − ε)}, and taking\n                  the limit C{ε → 0+}.\n\n           @see: C++ U{GeodesicExact.Line\n                 <https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1GeodesicExact.html>}\n                 and Python U{Geodesic.Line<https://GeographicLib.SourceForge.io/Python/doc/code.html>}.\n        '''\n        return GeodesicLineExact(self, lat1, lon1, azi1, caps=caps, **name)._GenSet(self._debug)\n\n    @Property_RO\n    def n(self):\n        '''Get the C{ellipsoid}'s I{3rd flattening} (C{scalar}), M{f / (2 - f) == (a - b) / (a + b)}.\n        '''\n        return self.ellipsoid.n\n\n    @Property_RO\n    def _n_0_1(self):\n        '''(INTERNAL) Cached once.\n        '''\n        return fabs(self.n) > _0_1\n\n    @Property_RO\n    def _n6PI(self):\n        '''(INTERNAL) Cached once.\n        '''\n        return fabs(self.n) * _6_0 * PI\n\n    def _Newton6(self, salp1, calp1, p):\n        '''(INTERNAL) Split off from C{_GDictInverse} to reduce complexity/length.\n\n           @return: 6-Tuple C{(sig12, salp1, calp1, salp2, calp2, domg12)}\n                    and C{p.iter} and C{p.trip} updated.\n        '''\n        _abs = fabs\n        # This is a straightforward solution of f(alp1) = lambda12(alp1) -\n        # lam12 = 0 with one wrinkle.  f(alp) has exactly one root in the\n        # interval (0, PI) and its derivative is positive at the root.\n        # Thus f(alp) is positive for alp > alp1 and negative for alp < alp1.\n        # During the course of the iteration, a range (alp1a, alp1b) is\n        # maintained which brackets the root and with each evaluation of\n        # f(alp) the range is shrunk, if possible.  Newton's method is\n        # restarted whenever the derivative of f is negative (because the\n        # new value of alp1 is then further from the solution) or if the\n        # new estimate of alp1 lies outside (0,PI); in this case, the new\n        # starting guess is taken to be (alp1a + alp1b) / 2.\n        salp1a = salp1b = _TINY\n        calp1a,  calp1b = _1_0, _N_1_0\n        MAXIT1,  TOL0   = _MAXIT1, _TOL0\n        HALF,    TOLb   = _0_5,    _TOLb\n        tripb,   TOLv   =  False,   TOL0\n        for i in range(_MAXIT2):\n            # 1/4 meridian = 10e6 meter and random input,\n            # estimated max error in nm (nano meter, by\n            # checking Inverse problem by Direct).\n            #\n            #             max   iterations\n            # log2(b/a)  error  mean   sd\n            #    -7       387   5.33  3.68\n            #    -6       345   5.19  3.43\n            #    -5       269   5.00  3.05\n            #    -4       210   4.76  2.44\n            #    -3       115   4.55  1.87\n            #    -2        69   4.35  1.38\n            #    -1        36   4.05  1.03\n            #     0        15   0.01  0.13\n            #     1        25   5.10  1.53\n            #     2        96   5.61  2.09\n            #     3       318   6.02  2.74\n            #     4       985   6.24  3.22\n            #     5      2352   6.32  3.44\n            #     6      6008   6.30  3.45\n            #     7     19024   6.19  3.30\n            v, sig12, salp2, calp2, \\\n               domg12, dv = self._Lambda6(salp1, calp1, i < MAXIT1, p)\n\n            # 2 * _TOL0 is approximately 1 ulp [0, PI]\n            # reversed test to allow escape with NaNs\n            if tripb or _abs(v) < TOLv:\n                break\n            # update bracketing values\n            if v > 0 and (i > MAXIT1 or (calp1 / salp1) > (calp1b / salp1b)):\n                salp1b, calp1b = salp1, calp1\n            elif v < 0 and (i > MAXIT1 or (calp1 / salp1) < (calp1a / salp1a)):\n                salp1a, calp1a = salp1, calp1\n\n            if i < MAXIT1 and dv > 0:\n                dalp1 = -v / dv\n                if _abs(dalp1) < PI:\n                    s, c = _sincos2(dalp1)\n                    # nalp1 = alp1 + dalp1\n                    s, c = _sincos12(-s, c, salp1, calp1)\n                    if s > 0:\n                        salp1, calp1 = _norm2(s, c)\n                        # in some regimes we don't get quadratic convergence\n                        # because slope -> 0.  So use convergence conditions\n                        # based on epsilon instead of sqrt(epsilon)\n                        TOLv = TOL0 if _abs(v) > _TOL016 else _TOL08\n                        continue\n            TOLv  = TOL0\n            # Either dv was not positive or updated value was outside\n            # legal range.  Use the midpoint of the bracket as the next\n            # estimate.  This mechanism is not needed for the WGS84\n            # ellipsoid, but it does catch problems with more eccentric\n            # ellipsoids.  Its efficacy is such for the WGS84 test set\n            # with the starting guess set to alp1 = 90 deg: the WGS84\n            # test set: mean = 5.21, stdev = 3.93, max = 24 and WGS84\n            # with random input: mean = 4.74, stdev = 0.99\n            salp1, calp1 = _norm2((salp1a + salp1b) * HALF,\n                                  (calp1a + calp1b) * HALF)\n            tripb = fsum1f_(calp1a, -calp1, _abs(salp1a - salp1)) < TOLb or \\\n                    fsum1f_(calp1b, -calp1, _abs(salp1b - salp1)) < TOLb\n        else:\n            v = Fmt.no_convergence(v, TOLv)\n            raise GeodesicError(v, txt=repr(self))  # self.toRepr()\n\n        p.set_(iter=i, trip=tripb)  # like .geodsolve._GDictInvoke: iter NOT iteration!\n        return sig12, salp1, calp1, salp2, calp2, domg12\n\n    Polygon = Area  # for C{geographiclib} compatibility\n\n    def toStr(self, **prec_sep_name):  # PYCHOK signature\n        '''Return this C{GeodesicExact} as string.\n\n           @see: L{Ellipsoid.toStr<pygeodesy.ellipsoids.Ellipsoid.toStr>}\n                 for further details.\n\n           @return: C{GeodesicExact} (C{str}).\n        '''\n        t = GeodesicExact.caps, GeodesicExact.ellipsoid\n        return self._instr(props=t, C4order=self.C4order, **prec_sep_name)\n\n\nclass GeodesicLineExact(_GeodesicLineExact):\n    '''A pure Python version of I{Karney}'s C++ class U{GeodesicLineExact\n       <https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1GeodesicLineExact.html>},\n       modeled after I{Karney}'s Python class U{geodesicline.GeodesicLine<https://GitHub.com/\n       geographiclib/geographiclib-python>}.\n    '''\n\n    def __init__(self, geodesic, lat1, lon1, azi1, caps=Caps.STANDARD, **name):\n        '''New L{GeodesicLineExact} instance, allowing points to be found along\n           a geodesic starting at C{(B{lat1}, B{lon1})} with azimuth B{C{azi1}}.\n\n           @arg geodesic: The geodesic to use (L{GeodesicExact}).\n           @arg lat1: Latitude of the first point (C{degrees}).\n           @arg lon1: Longitude of the first point (C{degrees}).\n           @arg azi1: Azimuth at the first points (compass C{degrees}).\n           @kwarg caps: Bit-or'ed combination of L{Caps<pygeodesy.karney.Caps>} values\n                        specifying the capabilities the L{GeodesicLineExact} instance\n                        should possess, i.e., which quantities can bereturned by methods\n                        L{GeodesicLineExact.Position} and L{GeodesicLineExact.ArcPosition}.\n           @kwarg name: Optional C{B{name}=NN} (C{str}).\n\n           @raise TypeError: Invalid B{C{geodesic}}.\n        '''\n        _xinstanceof(GeodesicExact, geodesic=geodesic)\n        if (caps & Caps.LINE_OFF):  # copy to avoid updates\n            geodesic = geodesic.copy(deep=False, name=_UNDER_(NN, geodesic.name))\n#           _update_all(geodesic)\n        _GeodesicLineExact.__init__(self, geodesic, lat1, lon1, azi1, caps, **name)\n\n\ndef _Astroid(x, y):\n    '''(INTERNAL) Solve M{k^4 + 2 * k^3 - (x^2 + y^2 - 1)\n       * k^2 - (2 * k + 1) * y^2 = 0} for positive root k.\n    '''\n    p = x**2\n    q = y**2\n    r = fsumf_(_1_0, q, p, _N_2_0)\n    if r > 0 or q:\n        # avoid possible division by zero when r = 0\n        # by multiplying s and t by r^3 and r, resp.\n        S = p * q / _4_0  # S = r^3 * s\n        if r:\n            r  = r / _6_0  # /= chokes PyChecker\n            r3 = r**3\n            T3 = r3 + S\n            # discriminant of the quadratic equation for T3 is\n            # zero on the evolute curve p^(1/3) + q^(1/3) = 1\n            d = (r3 + T3) * S\n            if d < 0:\n                # T is complex, but u is defined for a real result\n                a = atan2(sqrt(-d), -T3) / _3_0\n                # There are 3 possible cube roots, choose the one which\n                # avoids cancellation.  Note d < 0 implies that r < 0.\n                u = (cos(a) * _2_0 + _1_0) * r\n            else:\n                # pick the sign on the sqrt to maximize abs(T3) to\n                # minimize loss of precision due to cancellation.\n                if d:\n                    T3 += _copysign(sqrt(d), T3)  # T3 = (r * t)^3\n                # _cbrt always returns the real root, _cbrt(-8) = -2\n                u = _cbrt(T3)  # T = r * t\n                if u:  # T can be zero; but then r2 / T -> 0\n                    u += r**2 / u\n                u += r\n        elif S:  # d == T3**2 == S**2: sqrt(d) == abs(S) == abs(T3)\n            u = _cbrt(S * _2_0)  # == T3 + _copysign(abs(S), T3)\n        else:\n            u = _0_0\n        v = hypot(u, y)  # sqrt(u**2 + q)\n        # avoid loss of accuracy when u < 0\n        u = (q / (v - u)) if u < 0 else (v + u)\n        w = (u - q) / (v + v)  # positive?\n        # rearrange expression for k to avoid loss of accuracy due to\n        # subtraction, division by 0 impossible because u > 0, w >= 0\n        k = u / (sqrt(w**2 + u) + w)  # guaranteed positive\n\n    else:  # q == 0 && r <= 0\n        # y = 0 with |x| <= 1.  Handle this case directly, for\n        # y small, positive root is k = abs(y) / sqrt(1 - x^2)\n        k = _0_0\n\n    return k\n\n\ndef _C4coeffs(nC4):  # in .geodesicx.__main__\n    '''(INTERNAL) Get the C{C4_24}, C{_27} or C{_30} series coefficients.\n    '''\n    try:  # from pygeodesy.geodesicx._C4_xx import _coeffs_xx as _coeffs\n        _C4_xx  = _DOT_(typename(_MODS.geodesicx), _UNDER_('_C4', nC4))\n        _coeffs = _MODS.getattr(_C4_xx, _UNDER_('_coeffs', nC4))\n    except (AttributeError, ImportError, TypeError) as x:\n        raise GeodesicError(nC4=nC4, cause=x)\n    n = _xnC4(nC4=nC4)\n    if len(_coeffs) != n:  # double check\n        raise GeodesicError(_coeffs=len(_coeffs), _xnC4=n, nC4=nC4)\n    return _coeffs\n\n\n__all__ += _ALL_DOCS(GeodesicExact, GeodesicLineExact)\n\n# **) MIT License\n#\n# Copyright (C) 2016-2026 -- mrJean1 at Gmail -- All Rights Reserved.\n#\n# Permission is hereby granted, free of charge, to any person obtaining a\n# copy of this software and associated documentation files (the \"Software\"),\n# to deal in the Software without restriction, including without limitation\n# the rights to use, copy, modify, merge, publish, distribute, sublicense,\n# and/or sell copies of the Software, and to permit persons to whom the\n# Software is furnished to do so, subject to the following conditions:\n#\n# The above copyright notice and this permission notice shall be included\n# in all copies or substantial portions of the Software.\n#\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL\n# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR\n# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\n# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n# OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "pygeodesy/geodesicx/gxarea.py",
    "content": "# -*- coding: utf-8 -*-\n\nu'''Slightly enhanced versions of classes U{PolygonArea\n<https://GeographicLib.SourceForge.io/1.52/python/code.html#\nmodule-geographiclib.polygonarea>} and C{Accumulator} from\nI{Karney}'s Python U{geographiclib\n<https://GeographicLib.SourceForge.io/1.52/python/index.html>}.\n\nClass L{GeodesicAreaExact} is intended to work with instances\nof class L{GeodesicExact} and of I{wrapped} class C{Geodesic},\nsee module L{pygeodesy.karney}.\n\nCopyright (C) U{Charles Karney<mailto:Karney@Alum.MIT.edu>} (2008-2024)\nand licensed under the MIT/X11 License.  For more information, see the\nU{GeographicLib<https://GeographicLib.SourceForge.io>} documentation.\n'''\n# make sure int/int division yields float quotient\nfrom __future__ import division as _; del _  # noqa: E702 ;\n\nfrom pygeodesy.basics import _copysign, isodd, unsigned0\nfrom pygeodesy.constants import NAN, _0_0, _0_5, _720_0\nfrom pygeodesy.fmath import _fma\nfrom pygeodesy.internals import printf, typename\n# from pygeodesy.interns import _COMMASPACE_  # from .lazily\nfrom pygeodesy.karney import Area3Tuple, _diff182, GeodesicError, \\\n                            _norm180, _remainder, _sum2\nfrom pygeodesy.lazily import _ALL_DOCS,  _COMMASPACE_\nfrom pygeodesy.named import ADict, callername, _NamedBase,  pairs\nfrom pygeodesy.props import Property, Property_RO, property_RO\n# from pygeodesy.streprs import pairs  # from .named\n\nfrom math import fabs, fmod as _fmod\n\n__all__ = ()\n__version__ = '25.12.23'\n\n\nclass GeodesicAreaExact(_NamedBase):\n    '''Area and perimeter of a geodesic polygon, an enhanced version of I{Karney}'s\n       Python class U{PolygonArea<https://GeographicLib.SourceForge.io/html/python/\n       code.html#module-geographiclib.polygonarea>} using the more accurate surface area.\n\n       @note: The name of this class C{*Exact} is a misnomer, see I{Karney}'s comments at\n              C++ attribute U{GeodesicExact._c2<https://GeographicLib.SourceForge.io/C++/doc/\n              GeodesicExact_8cpp_source.html>}.\n    '''\n    _Area    =  None\n    _g_gX    =  None  # Exact or not\n    _lat0    = _lon0 = \\\n    _lat1    = _lon1 = NAN\n    _mask    =  0\n    _num     =  0\n    _Peri    =  None\n    _verbose =  False\n    _xings   =  0\n\n    def __init__(self, geodesic, polyline=False, **name):\n        '''New L{GeodesicAreaExact} instance.\n\n           @arg geodesic: A geodesic (L{GeodesicExact}, I{wrapped}\n                          C{Geodesic} or L{GeodesicSolve}).\n           @kwarg polyline: If C{True}, compute the perimeter only,\n                            otherwise area and perimeter (C{bool}).\n           @kwarg name: Optional C{B{name}=NN} (C{str}).\n\n           @raise GeodesicError: Invalid B{C{geodesic}}.\n        '''\n        try:  # results returned as L{GDict}\n            if not (callable(geodesic._GDictDirect) and\n                    callable(geodesic._GDictInverse)):\n                raise TypeError()\n        except (AttributeError, TypeError):\n            raise GeodesicError(geodesic=geodesic)\n\n        self._g_gX = g = geodesic\n        # use the class-level Caps since the values\n        # differ between GeodesicExact and Geodesic\n        self._mask =  g.DISTANCE | g.LATITUDE | g.LONGITUDE\n        self._Peri = _Accumulator(name='_Peri')\n        if not polyline:  # perimeter and area\n            self._mask |=  g.AREA | g.LONG_UNROLL\n            self._Area  = _Accumulator(name='_Area')\n        if g.debug:  # PYCHOK no cover\n            self.verbose = True  # debug as verbosity\n        if name:\n            self.name = name\n\n    def AddEdge(self, azi, s):\n        '''Add another polygon edge.\n\n           @arg azi: Azimuth at the current point (compass\n                     C{degrees360}).\n           @arg s: Length of the edge (C{meter}).\n        '''\n        if self.num < 1:\n            raise GeodesicError(num=self.num)\n        r = self._Direct(azi, s)\n        p = self._Peri.Add(s)\n        if self._Area:\n            a = self._Area.Add(r.S12)\n            self._xings += r.xing\n        else:\n            a = NAN\n        self._lat1 = r.lat2\n        self._lon1 = r.lon2\n        self._num += 1\n        if self.verbose:  # PYCHOK no cover\n            self._print(self.num, p, a, r, lat1=r.lat2, lon1=r.lon2,\n                                           azi=azi, s=s)\n        return self.num\n\n    def AddPoint(self, lat, lon):\n        '''Add another polygon point.\n\n           @arg lat: Latitude of the point (C{degrees}).\n           @arg lon: Longitude of the point (C{degrees}).\n        '''\n        if self.num > 0:\n            r = self._Inverse(self.lat1, self.lon1, lat, lon)\n            s = r.s12\n            p = self._Peri.Add(s)\n            if self._Area:\n                a = self._Area.Add(r.S12)\n                self._xings += r.xing\n            else:\n                a = NAN\n        else:\n            self._lat0 = lat\n            self._lon0 = lon\n            a = p = s = _0_0\n            r = None\n        self._lat1 = lat\n        self._lon1 = lon\n        self._num += 1\n        if self.verbose:  # PYCHOK no cover\n            self._print(self.num, p, a, r, lat1=lat, lon1=lon, s=s)\n        return self.num\n\n    @Property_RO\n    def area0x(self):\n        '''Get the ellipsoid's surface area (C{meter} I{squared}), more accurate\n           for very I{oblate} ellipsoids.\n        '''\n        return self.ellipsoid.areax  # not .area!\n\n    area0 = area0x  # for C{geographiclib} compatibility\n\n    def Compute(self, reverse=False, sign=True, polar=False):\n        '''Compute the accumulated perimeter and area.\n\n           @kwarg reverse: If C{True}, clockwise traversal counts as a positive area instead\n                           of counter-clockwise (C{bool}).\n           @kwarg sign: If C{True}, return a signed result for the area if the polygon is\n                        traversed in the \"wrong\" direction instead of returning the area for\n                        the rest of the earth.\n           @kwarg polar: Use C{B{polar}=True} if the polygon encloses a pole (C{bool}), see\n                         function L{ispolar<pygeodesy.points.ispolar>} and U{area of a polygon\n                         enclosing a pole<https://GeographicLib.SourceForge.io/C++/doc/\n                         classGeographicLib_1_1GeodesicExact.html#a3d7a9155e838a09a48dc14d0c3fac525>}.\n\n           @return: L{Area3Tuple}C{(number, perimeter, area)} with the number of points, the\n                    perimeter in C{meter} and the (signed) area in C{meter**2}.  The perimeter\n                    includes the length of a final edge, connecting the current to the initial\n                    point, if this polygon was initialized with C{polyline=False}.  For perimeter\n                    only, i.e. C{polyline=True}, area is C{NAN}.\n\n           @note: Arbitrarily complex polygons are allowed.  In the case of self-intersecting\n                  polygons, the area is accumulated \"algebraically\".  E.g., the areas of both\n                  loops in a I{figure-8} polygon will partially cancel.\n\n           @note: More points and edges can be added after this call.\n        '''\n        r, n = None, self.num\n        if n < 2:\n            p = _0_0\n            a =  NAN if n > 0 and self.polyline else p\n        elif self._Area:\n            r = self._Inverse(self.lat1, self.lon1, self.lat0, self.lon0)\n            a = self._reduced(r.S12, r.xing, n, reverse=reverse, sign=sign, polar=polar)\n            p = self._Peri.Sum(r.s12)\n        else:\n            p = self._Peri.Sum()\n            a = NAN\n        if self.verbose:  # PYCHOK no cover\n            self._print(n, p, a, r, lat0=self.lat0, lon0=self.lon0)\n        return Area3Tuple(n, p, a)\n\n    def _Direct(self, azi, s):\n        '''(INTERNAL) Edge helper.\n        '''\n        lon1 = self.lon1\n        r = self._g_gX._GDictDirect(self.lat1, lon1, azi, False, s, outmask=self._mask)\n        if self._Area:  # aka transitDirect\n            # Count crossings of prime meridian exactly as\n            # int(ceil(lon2 / 360)) - int(ceil(lon1 / 360))\n            # Since we only need the parity of the result we\n            # can use std::remquo but this is buggy with g++\n            # 4.8.3 and requires C++11.  So instead we do:\n            lon1 = _fmod(  lon1, _720_0)  # r.lon1\n            lon2 = _fmod(r.lon2, _720_0)\n            # int(True) == 1, int(False) == 0\n            r.set_(xing=int(lon2 > 360 or -360 < lon2 <= 0) -\n                        int(lon1 > 360 or -360 < lon1 <= 0))\n        return r\n\n    @Property_RO\n    def ellipsoid(self):\n        '''Get this area's ellipsoid (C{Ellipsoid[2]}).\n        '''\n        return self._g_gX.ellipsoid\n\n    @Property_RO\n    def geodesic(self):\n        '''Get this area's geodesic object (C{Geodesic[Exact]}).\n        '''\n        return self._g_gX\n\n    earth = geodesic  # for C{geographiclib} compatibility\n\n    def _Inverse(self, lat1, lon1, lat2, lon2):\n        '''(INTERNAL) Point helper.\n        '''\n        r = self._g_gX._GDictInverse(lat1, lon1, lat2, lon2, outmask=self._mask)\n        if self._Area:  # aka transit\n            # count crossings of prime meridian as +1 or -1\n            # if in east or west direction, otherwise 0\n            lon1 = _norm180(lon1)\n            lon2 = _norm180(lon2)\n            lon12, _ = _diff182(lon1, lon2)\n            r.set_(xing=int(lon12 > 0 and lon1 <= 0 and lon2 > 0) or\n                       -int(lon12 < 0 and lon2 <= 0 and lon1 > 0))\n        return r\n\n    @property_RO\n    def lat0(self):\n        '''Get the first point's latitude (C{degrees}).\n        '''\n        return self._lat0\n\n    @property_RO\n    def lat1(self):\n        '''Get the most recent point's latitude (C{degrees}).\n        '''\n        return self._lat1\n\n    @property_RO\n    def lon0(self):\n        '''Get the first point's longitude (C{degrees}).\n        '''\n        return self._lon0\n\n    @property_RO\n    def lon1(self):\n        '''Get the most recent point's longitude (C{degrees}).\n        '''\n        return self._lon1\n\n    @property_RO\n    def num(self):\n        '''Get the current number of points (C{int}).\n        '''\n        return self._num\n\n    @Property_RO\n    def polyline(self):\n        '''Is this perimeter only (C{bool}), area NAN?\n        '''\n        return self._Area is None\n\n    def _print(self, n, p, a, r, **kwds):  # PYCHOK no cover\n        '''(INTERNAL) Print a verbose line.\n        '''\n        d = ADict(p=p, s12=r.s12 if r else NAN, **kwds)\n        if self._Area:\n            d.set_(a=a, S12=r.S12 if r else NAN)\n        t = _COMMASPACE_.join(pairs(d, prec=10))\n        printf('%s %s: %s (%s)', self.named2, n, t, callername(up=2))\n\n    def _reduced(self, S12, xing, n, reverse=False, sign=True, polar=False):\n        '''(INTERNAL) Accumulate and reduce area to allowed range.\n        '''\n        a0 =  self.area0x\n        A  = _Accumulator(self._Area)\n        _  =  A.Add(S12)\n        a  =  A.Remainder(a0)  # clockwise\n        if isodd(self._xings + xing):\n            a = A.Add((a0 if a < 0 else -a0) * _0_5)\n        if not reverse:\n            a = A.Negate()  # counter-clockwise\n        # (-area0x/2, area0x/2] if sign else [0, area0x)\n        a0_ = a0 if sign else (a0 * _0_5)\n        if a > a0_:\n            a = A.Add(-a0)\n        elif a <= -a0_:\n            a = A.Add( a0)\n        if polar:  # see .geodesicw._gwrapped.Geodesic.Area\n            a = A.Add(_copysign(a0 * _0_5 * n, a))  # - if reverse or sign?\n        return unsigned0(a)\n\n    def Reset(self):\n        '''Reset this polygon to empty.\n        '''\n        if self._Area:\n            self._Area.Reset()\n        self._Peri.Reset()\n        self._lat0 = self._lon0 = \\\n        self._lat1 = self._lon1 = NAN\n        self._num  = self._xings = n = 0\n        if self.verbose:  # PYCHOK no cover\n            printf('%s %s: (%s)', self.named2, n, typename(self.Reset))\n        return n\n\n    Clear = Reset\n\n    def TestEdge(self, azi, s, **reverse_sign_polar):\n        '''Compute the properties for a tentative, additional edge\n\n           @arg azi: Azimuth at the current the point (compass C{degrees}).\n           @arg s: Length of the edge (C{meter}).\n           @kwarg reverse_sign_polar: Optional C{B{reverse}=False}, C{B{sign}=True} and\n                          C{B{polar}=False} keyword arguments, see method L{Compute}.\n\n           @return: L{Area3Tuple}C{(number, perimeter, area)}, with C{perimeter} and\n                    C{area} both C{NAN} for insuffcient C{number} of points.\n        '''\n        r, n = None, self.num + 1\n        if n < 2:  # raise GeodesicError(num=self.num)\n            a = p = NAN  # like .test_Planimeter19\n        else:\n            p = self._Peri.Sum(s)\n            if self.polyline:\n                a  = NAN\n            else:\n                d  = self._Direct(azi, s)\n                r  = self._Inverse(d.lat2, d.lon2, self.lat0, self.lon0)\n                a  = self._reduced(d.S12 + r.S12, d.xing + r.xing, n, **reverse_sign_polar)\n                p += r.s12\n        if self.verbose:  # PYCHOK no cover\n            self._print(n, p, a, r, azi=azi, s=s)\n        return Area3Tuple(n, p, a)\n\n    def TestPoint(self, lat, lon, **reverse_sign_polar):\n        '''Compute the properties for a tentative, additional vertex\n\n           @arg lat: Latitude of the point (C{degrees}).\n           @arg lon: Longitude of the point (C{degrees}).\n           @kwarg reverse_sign_polar: Optional C{B{reverse}=False}, C{B{sign}=True} and\n                          C{B{polar}=False} keyword arguments, see method L{Compute}.\n\n           @return: L{Area3Tuple}C{(number, perimeter, area)}.\n        '''\n        r, n = None, self.num + 1\n        if n < 2:\n            p = _0_0\n            a =  NAN if self.polyline else p\n        else:\n            i = self._Inverse(self.lat1, self.lon1, lat, lon)\n            p = self._Peri.Sum(i.s12)\n            if self._Area:\n                r  = self._Inverse(lat, lon, self.lat0, self.lon0)\n                a  = self._reduced(i.S12 + r.S12, i.xing + r.xing, n, **reverse_sign_polar)\n                p += r.s12\n            else:\n                a = NAN\n        if self.verbose:  # PYCHOK no cover\n            self._print(n, p, a, r, lat=lat, lon=lon)\n        return Area3Tuple(n, p, a)\n\n    def toStr(self, prec=6, sep=_COMMASPACE_, **unused):  # PYCHOK signature\n        '''Return this C{GeodesicExactArea} as string.\n\n           @kwarg prec: The C{float} precision, number of decimal digits (0..9).\n                        Trailing zero decimals are stripped for B{C{prec}} values\n                        of 1 and above, but kept for negative B{C{prec}} values.\n           @kwarg sep: Separator to join (C{str}).\n\n           @return: Area items (C{str}).\n        '''\n        n, p, a = self.Compute()\n        d = dict(geodesic=self.geodesic, num=n, area=a,\n                 perimeter=p, polyline=self.polyline)\n        return sep.join(pairs(d, prec=prec))\n\n    @Property\n    def verbose(self):\n        '''Get the C{verbose} option (C{bool}).\n        '''\n        return self._verbose\n\n    @verbose.setter  # PYCHOK setter!\n    def verbose(self, verbose):  # PYCHOK no cover\n        '''Set the C{verbose} option (C{bool}) to print\n           a message after each method invokation.\n        '''\n        self._verbose = bool(verbose)\n\n\nclass PolygonArea(GeodesicAreaExact):\n    '''For C{geographiclib} compatibility, sub-class of L{GeodesicAreaExact}.\n    '''\n    def __init__(self, earth, polyline=False, **name):\n        '''New L{PolygonArea} instance.\n\n           @arg earth: A geodesic (L{GeodesicExact}, I{wrapped}\n                       C{Geodesic} or L{GeodesicSolve}).\n           @kwarg polyline: If C{True}, compute the perimeter only, otherwise\n                            perimeter and area (C{bool}).\n           @kwarg name: Optional C{B{name}=NN} (C{str}).\n\n           @raise GeodesicError: Invalid B{C{earth}}.\n        '''\n        GeodesicAreaExact.__init__(self, earth, polyline=polyline, **name)\n\n\nclass _Accumulator(_NamedBase):\n    '''Like C{math.fsum}, but allowing a running sum.\n\n       Original from I{Karney}'s U{geographiclib\n       <https://PyPI.org/project/geographiclib>}C{.accumulator},\n       enhanced to return the current sum by most methods.\n    '''\n    _n =  0  # len()\n    _s = _t = _0_0\n\n    def __init__(self, y=0, **name):\n        '''New L{_Accumulator}.\n\n           @kwarg y: Initial value (C{scalar}).\n           @kwarg name: Optional C{B{name}=NN} (C{str}).\n        '''\n        self._s_t(*_s_t2(y))\n        self._n = 1\n        if name:\n            self.name = name\n\n    def Add(self, *ys):\n        '''Add one or more scalars or L{_Accumulator}s.\n\n           @return: Current C{sum}.\n\n           @see: C++ U{Accumulator.Add<https://GeographicLib.sourceforge.io/C++/doc/Accumulator_8hpp_source.html>}\n                 for more details about Karney's and Shewchuk's addition.\n        '''\n        # _Accumulator().Add(1, 1e20, 2, 100, 5000, -1e20) ... 5103.0\n        s, t = self._s, self._t\n        for y in ys:\n            for y in _s_t2(y):\n                if y:\n                    t, u = _sum2(t, y)\n                    s, t = _sum2(s, t)\n                    if s:  # accumlate u in t\n                        t += u\n                    else:  # s == 0 implies t == 0\n                        s  = u\n                    self._n += 1\n        return self._s_t(s, t)\n\n    def Negate(self):\n        '''Negate sum.\n\n           @return: Current C{sum}.\n        '''\n        return self._s_t(-self._s, -self._t)\n\n    @property_RO\n    def num(self):\n        '''Get the current number of C{Add}itions (C{int}).\n        '''\n        return self._n\n\n    def Remainder(self, y):\n        '''Remainder of division by B{C{y}}.\n\n           @return: Remainder of C{sum} / B{C{y}}.\n        '''\n        return self._s_t(_remainder(self._s, y),\n                         _remainder(self._t, y))\n\n    def Reset(self, y=0):\n        '''Reset from scalar or L{_Accumulator}.\n        '''\n        self._s_t(*_s_t2(y))\n        self._n = 0\n\n    Set = Reset\n\n    def _s_t(self, s, t=0):\n        if t and fabs(s) < fabs(t):\n            s, t = t, s\n        self._s, self._t = s, t\n        return s\n\n    def Sum(self, y=0):\n        '''Return C{sum + B{y}}.\n\n           @note: B{C{y}} is included in the returned\n                  result, but I{not} accumulated.\n        '''\n        if y:\n            s = _Accumulator(self, name='_Sum')\n            s.Add(y)\n        else:\n            s = self\n        return s._s\n\n    def Times(self, y):\n        '''Multiply by a scalar.\n\n           @return: Current C{sum}.\n        '''\n        s  = d = self._s\n        s *= y\n        d = _fma(y, d, -s)\n        t = _fma(y, self._t, d)\n        return self._s_t(s, t)  # current .Sum()\n\n    def toStr(self, prec=6, sep=_COMMASPACE_, **unused):  # PYCHOK signature\n        '''Return this C{_Accumulator} as string.\n\n           @kwarg prec: The C{float} precision, number of decimal digits (0..9).\n                        Trailing zero decimals are stripped for B{C{prec}} values\n                        of 1 and above, but kept for negative B{C{prec}} values.\n           @kwarg sep: Separator to join (C{str}).\n\n           @return: Accumulator (C{str}).\n        '''\n        d = dict(n=self.num, s=self._s, t=self._t)\n        return sep.join(pairs(d, prec=prec))\n\n\ndef _s_t2(y):\n    return (y._s, y._t) if isinstance(y, _Accumulator) else (float(y),)  # PYCHOK OK\n\n\n__all__ += _ALL_DOCS(GeodesicAreaExact, PolygonArea)\n\n# **) MIT License\n#\n# Copyright (C) 2016-2026 -- mrJean1 at Gmail -- All Rights Reserved.\n#\n# Permission is hereby granted, free of charge, to any person obtaining a\n# copy of this software and associated documentation files (the \"Software\"),\n# to deal in the Software without restriction, including without limitation\n# the rights to use, copy, modify, merge, publish, distribute, sublicense,\n# and/or sell copies of the Software, and to permit persons to whom the\n# Software is furnished to do so, subject to the following conditions:\n#\n# The above copyright notice and this permission notice shall be included\n# in all copies or substantial portions of the Software.\n#\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL\n# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR\n# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\n# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n# OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "pygeodesy/geodesicx/gxbases.py",
    "content": "\n# -*- coding: utf-8 -*-\n\nu'''(INTERNAL) Private L{geodesicx} base class, functions and constants.\n\nCopyright (C) U{Charles Karney<mailto:Karney@Alum.MIT.edu>} (2008-2024)\nand licensed under the MIT/X11 License.  For more information, see the\nU{GeographicLib<https://GeographicLib.SourceForge.io>} documentation.\n'''\n\nfrom pygeodesy.basics import isodd,  _MODS\nfrom pygeodesy.constants import _EPSmin as _TINY, _0_0, isfinite\nfrom pygeodesy.errors import _or, _xkwds_item2\nfrom pygeodesy.fmath import hypot as _hypot\n# from pygeodesy.interns import _numpy_  # _MODS\nfrom pygeodesy.karney import _CapsBase, GeodesicError, _2cos2x, \\\n                             _norm2, _sincos2d, _sum3\n# from pygeodesy.lazily import _ALL_MODS as _MODS  # from .basics\n\nfrom math import fabs, ldexp as _ldexp\n\n__all__ = ()\n__version__ = '25.06.01'\n\n# valid C{nC4}s and C{C4order}s, see _xnC4 below\n_nC4s = {24: 2900, 27: 4032, 30: 5425}\n# assert (_TINY * EPS) > 0 and (_TINY + EPS) == EPS  # underflow guard\n\n\nclass _GeodesicBase(_CapsBase):  # in .geodsolve\n    '''(INTERNAL) Base class for C{[_]Geodesic*Exact}.\n    '''\n#   def toRepr(self, prec=6, sep=_COMMASPACE_, **unused):  # PYCHOK signature\n#       '''Return this C{GeodesicExact*} items string.\n#\n#          @kwarg prec: The C{float} precision, number of decimal digits (0..9).\n#                       Trailing zero decimals are stripped for B{C{prec}} values\n#                       of 1 and above, but kept for negative B{C{prec}} values.\n#          @kwarg sep: Separator to join (C{str}).\n#\n#          @return: C{GeodesicExact*} (C{str}).\n#       '''\n#       return Fmt.PAREN(self.named, self.toStr(prec=prec, sep=sep))\n    pass\n\n\nclass _Gfloats(dict):\n    '''(INTERNAL) Numpy or \"Unique\" floats.\n    '''\n    n   = 0  # total number of floats\n    nC4 = 0\n\n    def __init__(self, nC4):  # PYCHOK signature\n        self.nC4 = nC4\n\n    def __call__(self, fs):\n        '''Return a C{numpy.array} or C{tuple} of C{float}s.\n        '''\n        np = _MODS.imported(_MODS.interns._numpy_)\n        if np:  # use numpy, already imported\n            cs = np.array(fs, dtype=float)\n        else:\n            _f = self.setdefault  # avoid duplicates\n            cs = tuple(_f(f, f) for f in map(float, fs))  # PYCHOK as attr\n        self.n += len(fs)\n        return cs\n\n\ndef _cosSeries(c4s, sx, cx):  # PYCHOK shared .geodesicx.gx and -.gxline\n    '''(INTERNAL) I{Karney}'s cosine series expansion using U{Clenshaw\n       summation<https://WikiPedia.org/wiki/Clenshaw_algorithm>}.\n    '''\n    ar  = _2cos2x(cx, sx)\n    y0  =  t0 = y1 = t1 = _0_0\n    c4  =  list(c4s)\n    _c4 =  c4.pop\n    if isodd(len(c4)):\n        y0 = _c4()\n    while c4:\n        # y1 = ar * y0 - y1 + c4.pop()\n        # y0 = ar * y1 - y0 + c4.pop()\n        y1, t1, _ = _sum3(-y1, -t1, ar * y0, ar * t0, _c4())\n        y0, t0, _ = _sum3(-y0, -t0, ar * y1, ar * t1, _c4())\n    # s  = (y0 - y1) * cx\n    s, t, _ = _sum3(cx * y0, _0_0, cx * t0, -cx * y1, -cx * t1)\n    return s + t\n\n#   Y0, Y1 = Fsum(), Fsum()\n#   ar  = _2cos2x(cx, sx)\n#   c4  =  list(c4s)\n#   _c4 =  c4.pop\n#   if isodd(len(c4)):\n#       Y0 += _c4()\n#   while c4:\n#       # y1 = ar * y0 - y1 + c4.pop()\n#       # y0 = ar * y1 - y0 + c4.pop()\n#       Y1 = Y0 * ar - Y1 + _c4()\n#       Y0 = Y1 * ar - Y0 + _c4()\n#   # s  = (y0 - y1) * cx\n#   return float((Y0 - Y1) * cx)\n\n\n_f = float  # in _f2 and .geodesicx._C4_24, _27 and _30\n\n\ndef _f2(hi, lo):  # in .geodesicx._C4_24, _27 and _30\n    '''(INTERNAL) For C{_coeffs}.\n    '''\n    return _ldexp(_f(hi), 52) + _f(lo)\n\n\ndef _sincos12(sin1, cos1, sin2, cos2, sineg0=False):\n    '''(INTERNAL) Compute the sine and cosine of angle\n       M{ang12 = atan2(sin2, cos2) - atan2(sin1, cos1)}.\n\n       Negate C{sin1} to get C{sin12} and C{cos12} of the sum\n       M{ang12 = atan2(sin2, cos2) + atan2(sin1, cos1)}.\n\n       @kwarg sineg0: If C{True}, make negative C{sin12} zero (C{bool}).\n\n       @return: 2-Tuple C{(sin12, cos12)}.\n    '''\n    s = sin2 * cos1 - sin1 * cos2\n    c = cos2 * cos1 + sin1 * sin2\n    if sineg0 and s < 0:\n        s = _0_0  # max(s, _0_0) or NEG0?\n    return s, c\n\n\ndef _sin1cos2(sin1, cos1, sin2, cos2):\n    '''(INTERNAL) Compute the C{sin1 * cos2} sine and its cosine.\n\n       @return: 2-Tuple C{(sin1 * cos2, hypot(sin1 * sin2, cos1)}.\n    '''\n    s =        sin1 * cos2\n    c = _hypot(sin1 * sin2, cos1)\n    return s, c  # _norm2(s, c)\n\n\ndef _sinf1cos2d(lat, f1):\n    '''(INTERNAL) See C{GeodesicExact} and C{_GeodesicLineExact}.\n    '''\n    sbet, cbet = _sincos2d(lat)\n    # ensure cbet1 = +epsilon at poles; doing the fix on beta means\n    # that sig12 will be <= 2*tiny for two points at the same pole\n    sbet, cbet = _norm2(sbet * f1, cbet)\n    return sbet, (cbet if fabs(cbet) > _TINY else _TINY)\n\n\ndef _toNAN(outmask, *args):\n    '''(INTERNAL) Is any C{arg} not finite?\n    '''\n    return bool(outmask & _CapsBase.NONFINITONAN) and not all(map(isfinite, args))\n\n\ndef _xnC4(**name_nC4):\n    '''(INTERNAL) Validate C{C4order}.\n    '''\n    n, nC4 = _xkwds_item2(name_nC4)\n    if nC4 not in _nC4s or not isinstance(nC4, int):\n        t = map(str, _nC4s)\n        raise GeodesicError(n, nC4, txt_not_=_or(*t))\n    return _nC4s[nC4]\n\n\n# **) MIT License\n#\n# Copyright (C) 2016-2026 -- mrJean1 at Gmail -- All Rights Reserved.\n#\n# Permission is hereby granted, free of charge, to any person obtaining a\n# copy of this software and associated documentation files (the \"Software\"),\n# to deal in the Software without restriction, including without limitation\n# the rights to use, copy, modify, merge, publish, distribute, sublicense,\n# and/or sell copies of the Software, and to permit persons to whom the\n# Software is furnished to do so, subject to the following conditions:\n#\n# The above copyright notice and this permission notice shall be included\n# in all copies or substantial portions of the Software.\n#\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL\n# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR\n# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\n# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n# OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "pygeodesy/geodesicx/gxline.py",
    "content": "\n# -*- coding: utf-8 -*-\n\nu'''A pure Python version of I{Karney}'s C++ class U{GeodesicLineExact\n<https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1GeodesicLineExact.html>}.\n\nClass L{GeodesicLineExact} follows the naming, methods and return\nvalues from class C{GeodesicLine} from I{Karney}'s Python U{geographiclib\n<https://GeographicLib.SourceForge.io/1.52/python/index.html>}.\n\nCopyright (C) U{Charles Karney<mailto:Karney@Alum.MIT.edu>} (2008-2023)\nand licensed under the MIT/X11 License.  For more information, see the\nU{GeographicLib<https://GeographicLib.SourceForge.io>} documentation.\n'''\n# make sure int/int division yields float quotient\nfrom __future__ import division as _; del _  # noqa: E702 ;\n\n# A copy of comments from Karney's C{GeodesicLineExact.cpp}:\n#\n# This is a reformulation of the geodesic problem.  The\n# notation is as follows:\n# - at a general point (no suffix or 1 or 2 as suffix)\n#   - phi = latitude\n#   - lambda = longitude\n#   - beta = latitude on auxiliary sphere\n#   - omega = longitude on auxiliary sphere\n#   - alpha = azimuth of great circle\n#   - sigma = arc length along great circle\n#   - s = distance\n#   - tau = scaled distance (= sigma at multiples of PI/2)\n# - at northwards equator crossing\n#   - beta = phi = 0\n#   - omega = lambda = 0\n#   - alpha = alpha0\n#   - sigma = s = 0\n# - a 12 suffix means a difference, e.g., s12 = s2 - s1.\n# - s and c prefixes mean sin and cos\n\n# from pygeodesy.basics import _xinstanceof  # _MODS\nfrom pygeodesy.constants import NAN, _EPSqrt as _TOL, \\\n                               _copysign_1_0, isfinite, \\\n                               _0_0, _1_0, _180_0, _360_0, \\\n                               _2__PI  # PYCHOK used!\nfrom pygeodesy.errors import _xError, _xkwds_pop2\n# from pygeodesy.fmath import fremainder  # from .karney\nfrom pygeodesy.fsums import fsumf_, fsum1f_\nfrom pygeodesy.geodesicx.gxbases import _cosSeries, _GeodesicBase, \\\n                                        _sincos12, _sin1cos2, \\\n                                        _sinf1cos2d, _TINY, _toNAN\n# from pygeodesy.geodesicw import _Intersecant2  # _MODS\nfrom pygeodesy.lazily import _ALL_DOCS, _ALL_MODS as _MODS\nfrom pygeodesy.karney import _around, _atan2d, Caps, GDict, _fix90, \\\n                             _K_2_0, _llz2gl, _norm2, _norm180, \\\n                             _sincos2, _sincos2d,  fremainder\nfrom pygeodesy.props import Property_RO, property_ROver, _update_all\nfrom pygeodesy.utily import atan2, atan2d as _atan2d_reverse, sincos2\n\nfrom math import degrees, fabs, radians\n\n__all__ = ()\n__version__ = '25.09.09'\n\n_glXs = []  # instances of C{[_]GeodesicLineExact} to be updated\n\n\ndef _update_glXs(gX):  # see GeodesicExact.C4order and -._ef_reset_k2\n    '''(INTERNAL) Zap cached/memoized C{Property[_RO]}s of\n       any L{GeodesicLineExact} instances tied to the given\n       L{GeodesicExact} instance B{C{gX}}.\n    '''\n    _xGeodesicExact(gX=gX)\n    for glX in _glXs:  # PYCHOK use weakref?\n        if glX._gX is gX:\n            _update_all(glX)\n\n\ndef _xGeodesicExact(**gX):\n    '''(INTERNAL) Check a L{GeodesicExact} instance.\n    '''\n    _MODS.basics._xinstanceof(_MODS.geodesicx.GeodesicExact, **gX)\n\n\nclass _GeodesicLineExact(_GeodesicBase):\n    '''(INTERNAL) Base class for L{GeodesicLineExact}.\n    '''\n    _a13   = _s13 = NAN\n#   _azi1  = _0_0\n    _caps  =  Caps._AZIMUTH_LATITUDE_LONG_UNROLL\n#   _cchi1 =  NAN\n#   _dn1   =  NAN\n    _gX    =  None  # Exact only\n#   _k2    =  NAN\n#   _lat1  = _lon1 = _0_0\n#   _salp0 = _calp0 = NAN\n#   _salp1 = _calp1 = NAN\n#   _somg1 = _comg1 = NAN\n#   _ssig1 = _csig1 = NAN\n#   _toNAN =  False\n\n    def __init__(self, gX, lat1, lon1, azi1, caps, **name_):\n        '''(INTERNAL) New C{[_]GeodesicLineExact} instance.\n        '''\n#       _xGeodesicExact(gX=gX)\n        if azi1 is None:  # see GeodesicExact.InverseLine\n            (salp1, calp1), name_ = _xkwds_pop2(name_, _s_calp1=(_0_0, _1_0))\n            azi1 = _atan2d(salp1, calp1)\n        else:  # guard against salp0 underflow, convert -0 to +0\n            azi1 = _norm180(azi1)\n            salp1, calp1 = _sincos2d(_around(azi1))\n        if name_:\n            self.name = name_\n\n        self._gX    = gX  # GeodesicExact only\n        self._lat1  = lat1 = _fix90(lat1)\n        self._lon1  = lon1\n        self._azi1  = azi1\n        self._salp1 = salp1\n        self._calp1 = calp1\n        # allow lat, azimuth and unrolling of lon\n        self._caps |= caps | gX.caps  # | Caps._AZIMUTH_LATITUDE_LONG_UNROLL\n\n        self._toNAN = _toNAN(self._caps, lat1, lon1, azi1, salp1, calp1)\n\n        sbet1, cbet1 = _sinf1cos2d(_around(lat1), gX.f1)\n        self._dn1 = gX._dn(sbet1, cbet1)\n        # Evaluate alp0 from sin(alp1) * cos(bet1) = sin(alp0), with alp0\n        # in [0, pi/2 - |bet1|].  Alt: calp0 = hypot(sbet1, calp1 * cbet1),\n        # but the following is slightly better, consider the case salp1 = 0.\n        self._salp0, self._calp0 = _sin1cos2(salp1, calp1, sbet1, cbet1)\n        self._k2 = self._calp0**2 * gX.ep2\n        # Evaluate sig with tan(bet1) = tan(sig1) * cos(alp1).\n        # sig = 0 is nearest northward crossing of equator.\n        # With bet1 = 0, alp1 = pi/2, we have sig1 = 0 (equatorial line).\n        # With bet1 =  pi/2, alp1 = -pi, sig1 =  pi/2\n        # With bet1 = -pi/2, alp1 =  0 , sig1 = -pi/2\n        # Evaluate omg1 with tan(omg1) = sin(alp0) * tan(sig1).\n        # With alp0 in (0, pi/2], quadrants for sig and omg coincide.\n        # No atan2(0,0) ambiguity at poles since cbet1 = +epsilon.\n        # With alp0 = 0, omg1 = 0 for alp1 = 0, omg1 = pi for alp1 = pi.\n        self._somg1 = sbet1 * self._salp0\n        self._comg1 = c = (cbet1 * calp1) if (sbet1 or calp1) else _1_0\n        # Without normalization we have schi1 = somg1.\n        self._cchi1 = gX.f1 * self._dn1 * c\n        self._ssig1, self._csig1 = _norm2(sbet1, c)  # sig1 in (-pi, pi]\n        # _norm2(somg1, comg1)  # no need to normalize!\n        # _norm2(schi1?, cchi1)  # no need to normalize!\n        if not (caps & Caps.LINE_OFF):\n            _glXs.append(self)\n        # no need to pre-compute other attrs for (caps & Caps.X).  All are\n        # Property_RO's, computed once and cached/memoized until reset when\n        # arc, distance, C4order is changed or Elliptic function is reset.\n\n    def __del__(self):  # XXX use weakref?\n        if _glXs:  # may be empty or None\n            try:  # PYCHOK no cover\n                _glXs.remove(self)\n            except (TypeError, ValueError):\n                pass\n        self._gX = None\n        # _update_all(self)  # throws TypeError during Python 2 cleanup\n\n    def _update(self, updated, *attrs, **unused):\n        if updated:\n            _update_all(self, *attrs)\n\n    @Property_RO\n    def a1(self):\n        '''Get the I{equatorial arc} (C{degrees}), the arc length between\n           the northward equatorial crossing and the first point.\n        '''\n        return _atan2d(self._ssig1, self._csig1)  # or NAN\n\n    equatorarc = a1\n\n    @Property_RO\n    def a13(self):\n        '''Get the arc length to reference point 3 (C{degrees}).\n\n           @see: Methods L{Arc} and L{SetArc}.\n        '''\n        return self._a13\n\n    def Arc(self):\n        '''Return the arc length to reference point 3 (C{degrees} or C{NAN}).\n\n           @see: Method L{SetArc} and property L{a13}.\n        '''\n        return self.a13\n\n    def ArcPosition(self, a12, outmask=Caps.STANDARD):\n        '''Find the position on the line given B{C{a12}}.\n\n           @arg a12: Spherical arc length from the first point to the\n                     second point (C{degrees}).\n           @kwarg outmask: Bit-or'ed combination of L{Caps<pygeodesy.karney.Caps>}\n                           values specifying the quantities to be returned.\n\n           @return: A L{GDict} with up to 12 items C{lat1, lon1, azi1, lat2,\n                    lon2, azi2, m12, a12, s12, M12, M21, S12} with C{lat1},\n                    C{lon1}, C{azi1} and arc length C{a12} always included,\n                    except when C{a12=NAN}.\n\n           @note: By default, C{B{outmask}=STANDARD}, meaning thc C{lat1},\n                  C{lon1}, C{azi1}, C{lat2}, C{lon2}, C{azi2}, C{s12} and\n                  C{a12} entries are returned, except when C{a12=NAN}.\n        '''\n        return self._GDictPosition(True, a12, outmask)\n\n    @Property_RO\n    def azi0(self):\n        '''Get the I{equatorial azimuth}, the azimuth of this geodesic line\n           as it crosses the equator in a northward direction (C{degrees90}).\n        '''\n        return _atan2d(*self.azi0_sincos2)  # or NAN\n\n    equatorazimuth = azi0\n\n    @Property_RO\n    def azi0_sincos2(self):\n        '''Get the sine and cosine of the I{equatorial azimuth} (2-tuple C{(sin, cos)}).\n        '''\n        return self._salp0, self._calp0\n\n    @Property_RO\n    def azi1(self):\n        '''Get the azimuth at the first point (compass C{degrees}).\n        '''\n        return self._azi1\n\n    @Property_RO\n    def azi1_sincos2(self):\n        '''Get the sine and cosine of the first point's azimuth (2-tuple C{(sin, cos)}).\n        '''\n        return self._salp1, self._calp1\n\n    @Property_RO\n    def _B41(self):\n        '''(INTERNAL) Cached/memoized.\n        '''\n        return _cosSeries(self._C4a, self._ssig1, self._csig1)\n\n    @Property_RO\n    def _C4a(self):\n        '''(INTERNAL) Cached/memoized.\n        '''\n        return self.geodesic._C4f_k2(self._k2)\n\n    @Property_RO\n    def _caps_DISTANCE_IN(self):\n        '''(INTERNAL) Get C{Caps.DISTANCE_IN} and C{_OUT}.\n        '''\n        return self.caps & (Caps.DISTANCE_IN & Caps._OUT_MASK)\n\n    @Property_RO\n    def _D0k2(self):\n        '''(INTERNAL) Cached/memoized.\n        '''\n        return self._eF.cD * _2__PI * self._k2\n\n    @Property_RO\n    def _D1(self):\n        '''(INTERNAL) Cached/memoized.\n        '''\n        return self._eF.deltaD(self._ssig1, self._csig1, self._dn1)\n\n    def Distance(self):\n        '''Return the distance to reference point 3 (C{meter} or C{NAN}).\n\n           @see: Method L{SetDistance} and property L{s13}.\n        '''\n        return self.s13\n\n    @Property_RO\n    def _E0b(self):\n        '''(INTERNAL) Cached/memoized.\n        '''\n        return self._eF.cE * _2__PI * self.geodesic.b\n\n    @Property_RO\n    def _E1(self):\n        '''(INTERNAL) Cached/memoized.\n        '''\n        return self._eF.deltaE(self._ssig1, self._csig1, self._dn1)\n\n    @Property_RO\n    def _eF(self):\n        '''(INTERNAL) Cached/memoized C{Elliptic} function.\n        '''\n        e = _MODS.elliptic\n        try:  # see .gx.GeodesicExact._ef_reset_k2\n            return e.Elliptic(k2=-self._k2, alpha2=-self.geodesic.ep2)\n        except e.EllipticError:  # nonfinite\n            return None\n\n    def _GDictPosition(self, arcmode, s12_a12, outmask=Caps.STANDARD):  # MCCABE 17\n        '''(INTERNAL) Generate a new position along the geodesic.\n\n           @return: A L{GDict} with up to 12 items C{lat1, lon1, azi1, lat2,\n                    lon2, azi2, m12, a12, s12, M12, M21, S12} with C{lat1},\n                    C{lon1}, C{azi1} and arc length C{a12} always included,\n                    except when C{a12=NAN}.\n        '''\n        r, Cs = GDict(), Caps\n        if outmask:\n            outmask &= self._caps & Cs._OUT_MASK\n        eF = self._eF\n        if eF is None or self._toNAN or not isfinite(s12_a12):  # _toNAN(outmask, s12_a12)?\n            # E2 = sig12 = ssig12 = csig12 = NAN\n            d = dict(a12=s12_a12) if arcmode else dict(s12=s12_a12)\n            return r._toNAN(outmask | Cs.NONFINITONAN,  # for backward compatibility\n                            lat1=self.lat1, lon1=self.lon1, azi1=self.azi1, **d)\n        gX = self.geodesic  # ._gX\n\n        if arcmode:  # s12_a12 is (spherical) arc length\n            r.set_(a12=s12_a12, s12=NAN)\n            sig12 = radians(s12_a12)\n            ssig12, csig12 = sincos2(sig12)  # utily, no NEG0\n            if not _K_2_0:  # PYCHOK no cover\n                d = fremainder(fabs(s12_a12), _180_0)\n                if d == 90:\n                    csig12 = _0_0\n                elif d == 0:\n                    ssig12 = _0_0\n            E2 = _0_0\n        elif self._caps_DISTANCE_IN:  # s12_a12 is distance\n            t = s12_a12 / self._E0b\n            s, c = _sincos2(t)  # tau12\n            # tau2 = tau1 + tau12\n            E2 = -eF.deltaEinv(*_sincos12(-s, c, *self._stau1_ctau1))\n            sig12 = fsum1f_(self._E1, -E2, t)  # == t - (E2 - E1)\n            ssig12, csig12 = _sincos2(sig12)\n            r.set_(a12=degrees(sig12), s12=s12_a12)\n        else:  # uninitialized or impossible distance requested\n            return r.set_(a12=NAN, s12=NAN)\n\n        # sig2 = sig1 + sig12\n        ssig1, csig1 =      self._ssig1, self._csig1\n        ssig2, csig2 = t = _sincos12(-ssig12, csig12, ssig1, csig1)\n        dn2 = eF.fDelta(*t)\n\n        if (outmask &  Cs.DISTANCE):\n            if arcmode:  # or f_0_01\n                E2 = eF.deltaE(ssig2, csig2, dn2)\n                # AB1 = _E0 * (E2 - _E1)\n                # s12 = _b * (_E0 * sig12 + AB1)\n                #     = _b * _E0 * (sig12 + (E2 - _E1))\n                #     = _b * _E0 * (E2 - _E1 + sig12)\n                s12 = self._E0b * fsum1f_(E2, -self._E1, sig12)\n            else:\n                s12 = s12_a12\n            r.set_(s12=s12)\n\n        if not (outmask ^ Cs.DISTANCE):  # all done, see ._GenSet\n            return r\n\n        if self._debug:  # PYCHOK no cover\n            outmask |= self._debug & Cs._DEBUG_DIRECT_LINE\n\n        if (outmask & Cs._DEBUG_DIRECT_LINE):  # PYCHOK no cover\n            r.set_(sig12=sig12, dn2=dn2, b=gX.b, e2=gX.e2, f1=gX.f1,\n                   E0b=self._E0b, E1=self._E1, E2=E2, eFk2=eF.k2, eFa2=eF.alpha2)\n\n        # sin(bet2) = cos(alp0) * sin(sig2) and\n        #    cbet2  = hypot(salp0, calp0 * csig2).  Alt:\n        #    cbet2  = hypot(csig2, salp0 * ssig2)\n        salp0, calp0 =  self._salp0, self._calp0\n        sbet2, cbet2 = _sin1cos2(calp0, salp0, csig2, ssig2)\n        if cbet2 == 0:  # salp0 = 0, csig2 = 0, break degeneracy\n            cbet2 = csig2 = _TINY\n        # tan(alp0) = cos(sig2) * tan(alp2)\n        salp2 = salp0\n        calp2 = calp0 * csig2  # no need to normalize\n\n        if (outmask & Cs.AZIMUTH):\n            r.set_(azi2=_atan2d_reverse(salp2, calp2,\n                                reverse=outmask & Cs.REVERSE2))\n\n        if (outmask & Cs.LATITUDE):\n            r.set_(lat2=_atan2d(sbet2, gX.f1 * cbet2))\n\n        if (outmask & Cs.LONGITUDE):\n            schi1 = self._somg1\n            cchi1 = self._cchi1\n            schi2 = ssig2 * salp0  # schi2 = somg2 without normalization\n            cchi2 = gX.f1 * dn2 * csig2\n            lam12 = salp0 * self._H0e2_f1 * fsum1f_(eF.deltaH(ssig2, csig2, dn2),\n                                                    -self._H1, sig12)\n            if (outmask & Cs.LONG_UNROLL):\n                e = _copysign_1_0(salp0)  # east-going?\n                tchi1 = e * schi1\n                tchi2 = e * schi2\n                chi12 = e * fsum1f_(atan2(ssig1, csig1), -atan2(ssig2, csig2),\n                                    atan2(tchi2, cchi2), -atan2(tchi1, cchi1), sig12)\n                lon2  = self.lon1 + degrees(chi12 - lam12)\n                if fabs(lon2) > _360_0:  # XXX kludge\n                    lon2 = _norm180(lon2)\n            else:\n                chi12 = atan2(*_sincos12(schi1, cchi1, schi2, cchi2))\n                lon2 = _norm180(self._lon1_norm180 + _norm180(degrees(chi12 - lam12)))\n            r.set_(lon2=lon2)\n            if (outmask & Cs._DEBUG_DIRECT_LINE):  # PYCHOK no cover\n                r.set_(ssig2=ssig2, chi12=chi12, H0e2_f1=self._H0e2_f1,\n                       csig2=csig2, lam12=lam12, H1=self._H1)\n\n        if (outmask & Cs._REDUCEDLENGTH_GEODESICSCALE):\n            dn1 = self._dn1\n            J12 = self._D0k2 * fsumf_(eF.deltaD(ssig2, csig2, dn2), -self._D1, sig12)\n            if (outmask & Cs._DEBUG_DIRECT_LINE):  # PYCHOK no cover\n                r.set_(ssig1=ssig1, dn1=dn1, D0k2=self._D0k2,\n                       csig1=csig1, dn2=dn2, D1=self._D1, J12=J12)\n            if (outmask & Cs.REDUCEDLENGTH):\n                # Add parens around (csig1 * ssig2) and (ssig1 * csig2) to\n                # ensure accurate cancellation in the case of coincident points.\n                r.set_(m12=gX.b * fsum1f_(dn2 * (csig1 * ssig2),\n                                         -dn1 * (ssig1 * csig2),\n                                         -J12 * (csig1 * csig2)))\n            if (outmask & Cs.GEODESICSCALE):\n                t = self._k2 * (ssig2 - ssig1) * (ssig2 + ssig1) / (dn2 + dn1)\n                r.set_(M12=csig12 + ssig1 * (t * ssig2 - csig2 * J12) / dn1,\n                       M21=csig12 - ssig2 * (t * ssig1 - csig1 * J12) / dn2)\n\n        if (outmask & Cs.AREA):\n            A4 = salp0 * calp0\n            if A4:\n                # tan(alp) = tan(alp0) * sec(sig)\n                # tan(alp2-alp1) = (tan(alp2) - tan(alp1)) / (tan(alp2) * tan(alp1) + 1)\n                # = calp0 * salp0 * (csig1 - csig2) / (salp0^2 + calp0^2 * csig1 * csig2)\n                # If csig12 > 0, write\n                #   csig1 - csig2 = ssig12 * (csig1 * ssig12 / (1 + csig12) + ssig1)\n                # else\n                #   csig1 - csig2 = csig1 * (1 - csig12) + ssig12 * ssig1\n                # No need to normalize\n                salp12 = (((ssig12 * csig1 / (_1_0 + csig12) + ssig1) * ssig12) if csig12 > 0 else\n                                    (csig1 * (_1_0 - csig12) + ssig1  * ssig12)) * A4\n                calp12 = salp0**2 + calp0**2 * csig1 * csig2\n                A4 *=  gX._e2a2\n                B41 =  self._B41\n                B42 = _cosSeries(self._C4a, ssig2, csig2)\n                S12 = (B42 - B41) * A4\n            else:\n                S12 = A4 = B41 = B42 = _0_0\n                # alp12 = alp2 - alp1, used in atan2 so no need to normalize\n                salp12, calp12 = _sincos12(self._salp1, self._calp1, salp2, calp2)\n                # We used to include some patch up code that purported to deal\n                # with nearly meridional geodesics properly.  However, this turned\n                # out to be wrong once salp1 = -0 was allowed (via InverseLine).\n                # In fact, the calculation of {s,c}alp12 was already correct\n                # (following the IEEE rules for handling signed zeros).  So,\n                # the patch up code was unnecessary (as well as dangerous).\n            if (outmask & Cs._DEBUG_DIRECT_LINE):  # PYCHOK no cover\n                r.set_(salp12=salp12, salp0=salp0, B41=B41, A4=A4,\n                       calp12=calp12, calp0=calp0, B42=B42, c2=gX.c2)\n            S12 += gX.c2 * atan2(salp12, calp12)\n            r.set_(S12=S12)\n\n        r.set_(azi1=_norm180(self.azi1),\n               lat1=self.lat1,  # == _fix90(lat1)\n               lon1=self.lon1 if (outmask & Cs.LONG_UNROLL) else self._lon1_norm180)\n        return r\n\n    def _GenPosition(self, arcmode, s12_a12, outmask):\n        '''(INTERNAL) Generate a new position along the geodesic.\n\n           @return: L{Direct9Tuple}C{(a12, lat2, lon2, azi2,\n                                      s12, m12,  M12,  M21, S12)}.\n        '''\n        r = self._GDictPosition(arcmode, s12_a12, outmask)\n        return r.toDirect9Tuple()\n\n    def _GenSet(self, debug, s12=None, a12=None, **llz2):\n        '''(INTERNAL) Aka C++ C{GenSetDistance}.\n        '''\n        Cs = Caps\n        if debug:  # PYCHOK no cover\n            self._debug |= debug & Cs._DEBUG_ALL\n            # _CapsBase.debug._update(self)\n        if s12 is None:\n            if a12 is None:  # see GeodesicExact.Line\n                return self\n            s12 = self._GDictPosition(True,  a12, outmask=Cs.DISTANCE).s12 if a12 else _0_0\n        elif a12 is None:\n            a12 = self._GDictPosition(False, s12,                   0).a12 if s12 else _0_0\n        self._s13   = s12\n        self._a13   = a12\n        self._caps |= Cs.DISTANCE | Cs.DISTANCE_IN\n        # _update_all(self)  # new, from GeodesicExact.*Line\n        return _llz2gl(self, **llz2)\n\n    @Property_RO\n    def geodesic(self):\n        '''Get the I{exact} geodesic (L{GeodesicExact}).\n        '''\n        _xGeodesicExact(geodesic=self._gX)\n        return self._gX\n\n    def Intersecant2(self, lat0, lon0, radius, tol=_TOL):\n        '''Compute the intersection(s) of this geodesic line and a circle.\n\n           @arg lat0: Latitude of the circle center (C{degrees}).\n           @arg lon0: Longitude of the circle center (C{degrees}).\n           @arg radius: Radius of the circle (C{meter}, conventionally).\n           @kwarg tol: Convergence tolerance (C{scalar}).\n\n           @return: 2-Tuple C{(P, Q)} with both intersections (representing\n                    a geodesic chord), each a L{GDict} from method L{Position}\n                    extended to 14 items by C{lon0, lat0, azi0, a02, s02, at}\n                    with the circle center C{lat0}, C{lon0}, azimuth C{azi0}\n                    at, distance C{a02} in C{degrees} and C{s02} in C{meter}\n                    along the geodesic from the circle center to the intersection\n                    C{lat2}, C{lon2} and the angle C{at} between the geodesic\n                    and this line at the intersection.  The geodesic azimuth\n                    at the intersection is C{(at + azi2)}.  If this geodesic\n                    line is tangential to the circle, both points are the same\n                    L{GDict} instance.\n\n           @raise IntersectionError: The circle and this geodesic line do not\n                                     intersect, no I{perpencular} geodetic\n                                     intersection or no convergence.\n\n           @raise UnitError: Invalid B{C{radius}}.\n        '''\n        try:\n            return _MODS.geodesicw._Intersecant2(self, lat0, lon0, radius, tol=tol)\n        except (TypeError, ValueError) as x:\n            raise _xError(x, lat0, lon0, radius, tol=_TOL)\n\n    @Property_RO\n    def _H0e2_f1(self):\n        '''(INTERNAL) Cached/memoized.\n        '''\n        return self._eF.cH * _2__PI * self.geodesic._e2_f1\n\n    @Property_RO\n    def _H1(self):\n        '''(INTERNAL) Cached/memoized.\n        '''\n        return self._eF.deltaH(self._ssig1, self._csig1, self._dn1)\n\n    @Property_RO\n    def lat1(self):\n        '''Get the latitude of the first point (C{degrees}).\n        '''\n        return self._lat1\n\n    @Property_RO\n    def lon1(self):\n        '''Get the longitude of the first point (C{degrees}).\n        '''\n        return self._lon1\n\n    @Property_RO\n    def _lon1_norm180(self):\n        '''(INTERNAL) Cached/memoized.\n        '''\n        return _norm180(self._lon1)\n\n    def PlumbTo(self, lat0, lon0, est=None, tol=_TOL):\n        '''Compute the I{perpendicular} intersection of this geodesic line\n           and a geodesic from the given point.\n\n           @arg lat0: Latitude of the point (C{degrees}).\n           @arg lon0: Longitude of the point (C{degrees}).\n           @kwarg est: Optional, initial estimate for the distance C{s12} of\n                       the intersection I{along} this geodesic line (C{meter}).\n           @kwarg tol: Convergence tolerance (C(meter)).\n\n           @return: The intersection point on this geodesic line, a L{GDict}\n                    from method L{Position} extended to 14 items C{lat1, lon1,\n                    azi1, lat2, lon2, azi2, a12, s12, lat0, lon0, azi0, a02,\n                    s02, at} with distance C{a02} in C{degrees} and C{s02} in\n                    C{meter} between the given C{lat0, lon0} point and the\n                    intersection C{lat2, lon2}, azimuth C{azi0} at the given\n                    point and C{at} the (perpendicular) angle between the\n                    geodesic and this line at the intersection.  The geodesic\n                    azimuth at the intersection is C{(at + azi2)}.  See method\n                    L{Position} for further details.\n\n           @see: Methods C{Intersecant2}, C{Intersection} and C{Position}.\n        '''\n        return _MODS.geodesicw._PlumbTo(self, lat0, lon0, est=est, tol=tol)\n\n    def Position(self, s12, outmask=Caps.STANDARD):\n        '''Find the position on the line given B{C{s12}}.\n\n           @arg s12: Distance from this this line's first point (C{meter}).\n           @kwarg outmask: Bit-or'ed combination of L{Caps<pygeodesy.karney.Caps>}\n                           values specifying the quantities to be returned.\n\n           @return: A L{GDict} with up to 12 items C{lat1, lon1, azi1, lat2,\n                    lon2, azi2, m12, a12, s12, M12, M21, S12} with C{lat1},\n                    C{lon1}, C{azi1} and arc length C{a12} always included,\n                    except when C{a12=NAN}.\n\n           @note: By default, C{B{outmask}=STANDARD}, meaning thc C{lat1},\n                  C{lon1}, C{azi1}, C{lat2}, C{lon2}, C{azi2}, C{s12} and\n                  C{a12} entries are returned, except when C{a12=NAN}.\n\n           @note: This L{GeodesicLineExact} instance must have been\n                  constructed with capability C{Caps.DISTANCE_IN} set.\n        '''\n        return self._GDictPosition(False, s12, outmask)\n\n    @Property_RO\n    def s13(self):\n        '''Get the distance to reference point 3 (C{meter} or C{NAN}).\n\n           @see: Methods L{Distance} and L{SetDistance}.\n        '''\n        return self._s13\n\n    def SetArc(self, a13):\n        '''Set reference point 3 in terms relative to the first point.\n\n           @arg a13: Spherical arc length from the first to the reference\n                     point (C{degrees}).\n\n           @return: The distance C{s13} (C{meter}) between the first and\n                    the reference point or C{NAN}.\n        '''\n        if self._a13 != a13:\n            self._GenSet(0, a12=a13)\n            _update_all(self)\n        return self._s13\n\n    def SetDistance(self, s13):\n        '''Set reference point 3 in terms relative to the first point.\n\n           @arg s13: Distance from the first to the reference point (C{meter}).\n\n           @return: The arc length C{a13} (C{degrees}) between the first\n                    and the reference point or C{NAN}.\n        '''\n        if self._s13 != s13:\n            self._GenSet(0, s12=s13)\n            _update_all(self)\n        return self._a13\n\n    @Property_RO\n    def _stau1_ctau1(self):\n        '''(INTERNAL) Cached/memoized.\n        '''\n        s, c = _sincos2(self._E1)\n        # tau1 = sig1 + B11\n        return _sincos12(-s, c, self._ssig1, self._csig1)\n        # unnecessary because Einv inverts E\n        # return -self._eF.deltaEinv(stau1, ctau1)\n\n    @property_ROver\n    def _toProps7(self):\n        '''(INTERNAL) 7-Tuple of C{toStr} properties.\n        '''\n        C = _GeodesicLineExact\n        return C.lat1, C.lon1, C.azi1, C.a13, C.s13, C.caps, C.geodesic\n\n    def toStr(self, **prec_sep_name):  # PYCHOK signature\n        '''Return this C{GeodesicLineExact} as string.\n\n           @see: L{Ellipsoid.toStr<pygeodesy.ellipsoids.Ellipsoid.toStr>}\n                 for further details.\n\n           @return: C{GeodesicLineExact} (C{str}).\n        '''\n        return self._instr(props=self._toProps7, **prec_sep_name)\n\n\n__all__ += _ALL_DOCS(_GeodesicLineExact)\n\n# **) MIT License\n#\n# Copyright (C) 2016-2026 -- mrJean1 at Gmail -- All Rights Reserved.\n#\n# Permission is hereby granted, free of charge, to any person obtaining a\n# copy of this software and associated documentation files (the \"Software\"),\n# to deal in the Software without restriction, including without limitation\n# the rights to use, copy, modify, merge, publish, distribute, sublicense,\n# and/or sell copies of the Software, and to permit persons to whom the\n# Software is furnished to do so, subject to the following conditions:\n#\n# The above copyright notice and this permission notice shall be included\n# in all copies or substantial portions of the Software.\n#\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL\n# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR\n# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\n# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n# OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "pygeodesy/geodsolve.py",
    "content": "\n# -*- coding: utf-8 -*-\n\nu'''Wrapper to invoke I{Karney}'s U{GeodSolve\n<https://GeographicLib.SourceForge.io/C++/doc/GeodSolve.1.html>} utility\nas an (exact) geodesic, but intended I{mainly for testing purposes}.\n\nSet env variable C{PYGEODESY_GEODSOLVE} to the (fully qualified) path of\nthe C{GeodSolve} executable or use property L{GeodesicSolve.GeodSolve\n<geodsolve._GeodesicSolveBase.GeodSolve>}.\n'''\n\nfrom pygeodesy.basics import _xinstanceof  # typename\nfrom pygeodesy.constants import NAN, _0_0\n# from pygeodesy.errors import GeodesicError  # from .karney\n# from pygeodesy.geodesicx import GeodesicAreaExact  # _MODS\nfrom pygeodesy.interns import _a12_, _azi1_, _azi2_, _DMAIN_, _lat1_, \\\n                              _lat2_, _lon1_, _lon2_, _m12_, _M12_, \\\n                              _M21_, NN, _s12_, _S12_, _UNDER_\nfrom pygeodesy.karney import Caps, _GTuple, _sincos2d, _Xables,  _Azi, \\\n                            _Deg, GeodesicError, _Lat, _Lon, _M, _M2\nfrom pygeodesy.lazily import _ALL_DOCS, _ALL_LAZY, _ALL_MODS as _MODS\nfrom pygeodesy.namedTuples import Destination3Tuple, Distance3Tuple, \\\n                          _Pass\nfrom pygeodesy.props import Property, Property_RO, property_RO\nfrom pygeodesy.solveBase import _SolveGDictBase, _SolveGDictLineBase\n# from pygeodesy.units import Azimuth as _Azi, Degrees as _Deg, \\\n#                             Meter as _M, Meter2 as _M2  # from .karney\nfrom pygeodesy.utily import _unrollon, _Wrap, wrap360\n\n__all__ = _ALL_LAZY.geodsolve\n__version__ = '25.12.31'\n\n\nclass GeodSolve12Tuple(_GTuple):\n    '''12-Tuple C{(lat1, lon1, azi1, lat2, lon2, azi2, s12, a12, m12, M12, M21, S12)} with\n       angles C{lat1}, C{lon1}, C{azi1}, C{lat2}, C{lon2} and C{azi2} and arc C{a12} all in\n       C{degrees}, initial C{azi1} and final C{azi2} forward azimuths in bearings, degrees\n       from North, distance C{s12} and reduced length C{m12} in C{meter}, area C{S12} in\n       C{meter} I{squared} and geodesic scale factors C{M12} and C{M21}, both C{scalar}, see\n       U{GeodSolve<https://GeographicLib.SourceForge.io/C++/doc/GeodSolve.1.html>}.\n    '''\n    # from GeodSolve --help option -f ... lat1 lon1 azi1 lat2 lon2 azi2 s12 a12 m12 M12 M21 S12\n    _Names_ = (_lat1_, _lon1_, _azi1_, _lat2_, _lon2_, _azi2_, _s12_, _a12_, _m12_, _M12_, _M21_, _S12_)\n    _Units_ = (_Lat,   _Lon,   _Azi,   _Lat,   _Lon,   _Azi,   _M,    _Deg,  _Pass, _Pass, _Pass, _M2)\n\n\nclass _GeodesicSolveBase(_SolveGDictBase):\n    '''(INTERNAL) Base class for L{GeodesicSolve} and L{GeodesicLineSolve}.\n    '''\n    _Error         =  GeodesicError\n    _Names_Direct  = _Names_Distance = \\\n    _Names_Inverse =  GeodSolve12Tuple._Names_\n    _Xable_name    = _Xables.GeodSolve.__name__  # typename\n    _Xable_path    = _Xables.GeodSolve()\n\n    @Property_RO\n    def _b_option(self):\n        return ('-b',) if self.reverse2 else ()\n\n    @Property_RO\n    def _cmdBasic(self):\n        '''(INTERNAL) Get the basic C{GeodSolve} cmd (C{tuple}).\n        '''\n        return (self.GeodSolve, '-f') + (self._b_option +\n                                         self._e_option +\n                                         self._E_option +\n                                         self._p_option +\n                                         self._u_option)\n\n    @Property\n    def GeodSolve(self):\n        '''Get the U{GeodSolve<https://GeographicLib.SourceForge.io/C++/doc/GeodSolve.1.html>}\n           executable (C{filename}).\n        '''\n        return self._Xable_path\n\n    @GeodSolve.setter  # PYCHOK setter!\n    def GeodSolve(self, path):\n        '''Set the U{GeodSolve<https://GeographicLib.SourceForge.io/C++/doc/GeodSolve.1.html>}\n           executable (C{filename}), the (fully qualified) path to the C{GeodSolve} executable.\n\n           @raise GeodesicError: Invalid B{C{path}}, B{C{path}} doesn't exist or\n                                 isn't the C{GeodSolve} executable.\n        '''\n        self._setXable(path)\n\n    @Property_RO\n    def _u_option(self):\n        return ('-u',) if self.unroll else ()\n\n\nclass GeodesicSolve(_GeodesicSolveBase):\n    '''Wrapper to invoke I{Karney}'s U{GeodSolve<https://GeographicLib.SourceForge.io/C++/doc/GeodSolve.1.html>}\n       as an C{Exact} version of I{Karney}'s Python class U{Geodesic<https://GeographicLib.SourceForge.io/C++/doc/\n       python/code.html#geographiclib.geodesic.Geodesic>}.\n\n       @note: Use property C{GeodSolve} or env variable C{PYGEODESY_GEODSOLVE} to specify the (fully\n              qualified) path to the C{GeodSolve} executable.\n\n       @note: This C{geodesic} is intended I{for testing purposes only}, it invokes the C{GeodSolve}\n              executable for I{every} method call.\n    '''\n\n    def Area(self, polyline=False, **name):\n        '''Set up a L{GeodesicAreaExact} to compute area and perimeter\n           of a polygon.\n\n           @kwarg polyline: If C{True}, compute the perimeter only, otherwise\n                            perimeter and area (C{bool}).\n           @kwarg name: Optional C{B{name}=NN} (C{str}).\n\n           @return: A L{GeodesicAreaExact} instance.\n\n           @note: The B{C{debug}} setting is passed as C{verbose}\n                  to the returned L{GeodesicAreaExact} instance.\n        '''\n        gaX = _MODS.geodesicx.GeodesicAreaExact(self, polyline=polyline, **name)\n        if self.verbose or self.debug:  # PYCHOK no cover\n            gaX.verbose = True\n        return gaX\n\n    Polygon = Area  # for C{geographiclib} compatibility\n\n    def Direct3(self, lat1, lon1, azi1, s12):  # PYCHOK outmask\n        '''Return the destination lat, lon and reverse azimuth (final bearing)\n           in C{degrees}.\n\n           @return: L{Destination3Tuple}C{(lat, lon, final)}.\n        '''\n        r = self._GDictDirect(lat1, lon1, azi1, False, s12, floats=False)\n        return Destination3Tuple(float(r.lat2), float(r.lon2), wrap360(r.azi2),\n                                 iteration=r._iteration)\n\n    def _DirectLine(self, ll1, azi12, **caps_name):  # PYCHOK no cover\n        '''(INTERNAL) Short-cut version.\n        '''\n        return self.DirectLine(ll1.lat, ll1.lon, azi12, **caps_name)\n\n    def DirectLine(self, lat1, lon1, azi1, caps=Caps.ALL, **name):\n        '''Set up a L{GeodesicLineSolve} to compute several points\n           on a single geodesic.\n\n           @arg lat1: Latitude of the first point (C{degrees}).\n           @arg lon1: Longitude of the first point (C{degrees}).\n           @arg azi1: Azimuth at the first point (compass C{degrees}).\n           @kwarg caps: Desired capabilities for the L{GeodesicLineSolve} instance.\n           @kwarg name: Optional C{B{name}=NN} (C{str}).\n\n           @return: A L{GeodesicLineSolve} instance.\n\n           @note: If the point is at a pole, the azimuth is defined by keeping\n                  B{C{lon1}} fixed, writing C{B{lat1} = ±(90 − ε)}, and taking\n                  the limit C{ε → 0+}.\n\n           @see: C++ U{GeodesicExact.Line\n                 <https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1GeodesicExact.html>}\n                 and Python U{Geodesic.Line<https://GeographicLib.SourceForge.io/Python/doc/code.html>}.\n        '''\n        return GeodesicLineSolve(self, lat1, lon1, azi1, caps=caps, **name)\n\n    Line = ArcDirectLine = DirectLine\n\n    def _Inverse(self, ll1, ll2, wrap, **outmask):  # PYCHOK no cover\n        '''(INTERNAL) Short-cut version, see .ellipsoidalBaseDI.intersecant2.\n        '''\n        if wrap:\n            ll2 = _unrollon(ll1, _Wrap.point(ll2))\n        return self.Inverse(ll1.lat, ll1.lon, ll2.lat, ll2.lon, **outmask)\n\n    def Inverse3(self, lat1, lon1, lat2, lon2):  # PYCHOK outmask\n        '''Return the distance in C{meter} and the forward and\n           reverse azimuths (initial and final bearing) in C{degrees}.\n\n           @return: L{Distance3Tuple}C{(distance, initial, final)}.\n        '''\n        r = self._GDictInverse(lat1, lon1, lat2, lon2, floats=False)\n        return Distance3Tuple(float(r.s12), wrap360(r.azi1), wrap360(r.azi2),\n                              iteration=r._iteration)\n\n    def _InverseLine(self, ll1, ll2, wrap, **caps_name):  # PYCHOK no cover\n        '''(INTERNAL) Short-cut version.\n        '''\n        if wrap:\n            ll2 = _unrollon(ll1, _Wrap.point(ll2))\n        return self.InverseLine(ll1.lat, ll1.lon, ll2.lat, ll2.lon, **caps_name)\n\n    def InverseLine(self, lat1, lon1, lat2, lon2, caps=Caps.ALL, **name):  # PYCHOK no cover\n        '''Set up a L{GeodesicLineSolve} to compute several points\n           on a single geodesic.\n\n           @arg lat1: Latitude of the first point (C{degrees}).\n           @arg lon1: Longitude of the first point (C{degrees}).\n           @arg lat2: Latitude of the second point (C{degrees}).\n           @arg lon2: Longitude of the second point (C{degrees}).\n           @kwarg caps: Desired capabilities for the L{GeodesicLineSolve} instance.\n           @kwarg name: Optional C{B{name}=NN} (C{str}).\n\n           @return: A L{GeodesicLineSolve} instance.\n\n           @note: Both B{C{lat1}} and B{C{lat2}} should in the range C{[-90, +90]}.\n\n           @see: C++ U{GeodesicExact.InverseLine\n                 <https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1GeodesicExact.html>} and\n                 Python U{Geodesic.InverseLine<https://GeographicLib.SourceForge.io/Python/doc/code.html>}.\n        '''\n        r  = self.Inverse(lat1, lon1, lat2, lon2)\n        gl = GeodesicLineSolve(self, lat1, lon1, r.azi1, caps=caps, **name)\n        gl._a13 = r.a12  # gl.SetArc(r.a12)\n        gl._s13 = r.s12  # gl.SetDistance(r.s12)\n        return gl\n\n    def toStr(self, **prec_sep_other):  # PYCHOK signature\n        '''Return this C{GeodesicSolve} as string.\n\n           @kwarg prec_sep: See L{toStr<pygeodesy.solveBase._SolveBase.toStr>}.\n\n           @return: GeodesicSolve items (C{str}).\n        '''\n        return _SolveGDictBase.toStr(self, GeodSolve=self.GeodSolve, **prec_sep_other)\n\n\nclass GeodesicLineSolve(_GeodesicSolveBase, _SolveGDictLineBase):\n    '''Wrapper to invoke I{Karney}'s U{GeodSolve<https://GeographicLib.SourceForge.io/C++/doc/GeodSolve.1.html>}\n       as an C{Exact} version of I{Karney}'s Python class U{GeodesicLine<https://GeographicLib.SourceForge.io/C++/doc/\n       python/code.html#geographiclib.geodesicline.GeodesicLine>}.\n\n       @note: Use property C{GeodSolve} or env variable C{PYGEODESY_GEODSOLVE} to specify the (fully\n              qualified) path to the C{GeodSolve} executable.\n\n       @note: This C{geodesic} is intended I{for testing purposes only}, it invokes the C{GeodSolve}\n              executable for I{every} method call.\n    '''\n    _a13 = \\\n    _s13 = NAN  # see GeodesicSolve._InverseLine\n\n    def __init__(self, geodesic, lat1, lon1, azi1, caps=Caps.ALL, **name):\n        '''New L{GeodesicLineSolve} instance, allowing points to be found along\n           a geodesic starting at C{(B{lat1}, B{lon1})} with azimuth B{C{azi1}}.\n\n           @arg geodesic: The geodesic to use (L{GeodesicSolve}).\n           @arg lat1: Latitude of the first point (C{degrees}).\n           @arg lon1: Longitude of the first point (C{degrees}).\n           @arg azi1: Azimuth at the first points (compass C{degrees}).\n           @kwarg caps: Bit-or'ed combination of L{Caps<pygeodesy.karney.Caps>} values\n                        specifying the capabilities the L{GeodesicLineSolve} instance\n                        should possess, C{B{caps}=Caps.ALL} always.  Include C{Caps.LINE_OFF}\n                        if updates to the B{C{geodesic}} should I{not be reflected} in this\n                        L{GeodesicLineSolve} instance.\n           @kwarg name: Optional C{B{name}=NN} (C{str}).\n\n           @raise GeodesicError: Invalid path for the C{GeodSolve} executable or isn't the\n                                 C{GeodSolve} executable, see property C{geodesic.GeodSolve}.\n\n           @raise TypeError: Invalid B{C{geodesic}}.\n        '''\n        _xinstanceof(GeodesicSolve, geodesic=geodesic)\n        if (caps & Caps.LINE_OFF):  # copy to avoid updates\n            geodesic = geodesic.copy(deep=False, name=_UNDER_(NN, geodesic.name))  # NOT _under!\n        _SolveGDictLineBase.__init__(self, geodesic, lat1, lon1, caps, azi1=azi1, **name)\n        try:\n            self.GeodSolve = geodesic.GeodSolve  # geodesic or copy of geodesic\n        except GeodesicError:\n            pass\n\n    @Property_RO\n    def a13(self):\n        '''Get the arc length to reference point 3 (C{degrees}).\n\n           @see: Methods L{Arc} and L{SetArc}.\n        '''\n        return self._a13\n\n    def Arc(self):  # PYCHOK no cover\n        '''Return the arc length to reference point 3 (C{degrees} or C{NAN}).\n\n           @see: Method L{SetArc} and property L{a13}.\n        '''\n        return self.a13\n\n    def ArcPosition(self, a12, outmask=Caps.STANDARD):  # PYCHOK no cover\n        '''Find the position on the line given B{C{a12}}.\n\n           @arg a12: Spherical arc length from the first point to the\n                     second point (C{degrees}).\n\n           @return: A C{GDict} with 12 items C{lat1, lon1, azi1, lat2, lon2,\n                    azi2, m12, a12, s12, M12, M21, S12}.\n        '''\n        return self._GDictInvoke(self._cmdArc, self._Names_Distance, a12)._unCaps(outmask)\n\n    @Property_RO\n    def azi1(self):\n        '''Get the azimuth at the first point (compass C{degrees}).\n        '''\n        return self._lla1.azi1\n\n    azi12 = azi1  # like RhumbLineSolve\n\n    @Property_RO\n    def azi1_sincos2(self):\n        '''Get the sine and cosine of the first point's azimuth (2-tuple C{(sin, cos)}).\n        '''\n        return _sincos2d(self.azi1)\n\n    azi12_sincos2 = azi1_sincos2\n\n    @Property_RO\n    def _cmdArc(self):\n        '''(INTERNAL) Get the C{GeodSolve} I{-a -L} cmd (C{tuple}).\n        '''\n        return self._cmdDistance + ('-a',)\n\n    def Distance(self):\n        '''Return the distance to reference point 3 (C{meter} or C{NAN}).\n        '''\n        return self.s13\n\n    @property_RO\n    def geodesic(self):\n        '''Get the geodesic (L{GeodesicSolve}).\n        '''\n        return self._solve  # see .solveBase._SolveLineBase\n\n    def Intersecant2(self, lat0, lon0, radius, **kwds):  # PYCHOK no cover\n        '''B{Not implemented}, throws a C{NotImplementedError} always.'''\n        self._notImplemented(lat0, lon0, radius, **kwds)\n\n    def PlumbTo(self, lat0, lon0, **kwds):  # PYCHOK no cover\n        '''B{Not implemented}, throws a C{NotImplementedError} always.'''\n        self._notImplemented(lat0, lon0, **kwds)\n\n    def Position(self, s12, outmask=Caps.STANDARD):\n        '''Find the position on the line given at distance B{C{s12}}.\n\n           @arg s12: Distance from the first point to the second (C{meter}).\n\n           @return: A C{GDict} with 12 items C{lat1, lon1, azi1, lat2, lon2,\n                    azi2, m12, a12, s12, M12, M21, S12}, possibly C{a12=NAN}.\n        '''\n        return self._GDictInvoke(self._cmdDistance, self._Names_Distance, s12)._unCaps(outmask)\n\n    @Property_RO\n    def s13(self):\n        '''Get the distance to reference point 3 (C{meter} or C{NAN}).\n\n           @see: Methods L{Distance} and L{SetDistance}.\n        '''\n        return self._s13\n\n    def SetArc(self, a13):  # PYCHOK no cover\n        '''Set reference point 3 in terms relative to the first point.\n\n           @arg a13: Spherical arc length from the first to the reference\n                     point (C{degrees}).\n\n           @return: The distance C{s13} (C{meter}) between the first and\n                    the reference point or C{NAN}.\n        '''\n        if self._a13 != a13:\n            self._a13 = a13\n            self._s13 = self.ArcPosition(a13, outmask=Caps.DISTANCE).s12  # if a13 else _0_0\n#           _update_all(self)\n        return self._s13\n\n    def SetDistance(self, s13):  # PYCHOK no cover\n        '''Set reference point 3 in terms relative to the first point.\n\n           @arg s13: Distance from the first to the reference point (C{meter}).\n\n           @return: The arc length C{a13} (C{degrees}) between the first and\n                    the reference point or C{NAN}.\n        '''\n        if self._s13 != s13:\n            self._s13 = s13\n            self._a13 = self.Position(s13, outmask=Caps.DISTANCE).a12 if s13 else _0_0\n#           _update_all(self)\n        return self._a13  # NAN for GeodesicLineExact without Cap.DISTANCE_IN\n\n    def toStr(self, **prec_sep_other):  # PYCHOK signature\n        '''Return this C{GeodesicLineSolve} as string.\n\n           @kwarg prec_sep: See L{toStr<pygeodesy.solveBase._SolveBase.toStr>}.\n\n           @return: GeodesicLineSolve items (C{str}).\n        '''\n        return _SolveGDictLineBase.toStr(self, geodesic=self._solve, **prec_sep_other)\n\n\n__all__ += _ALL_DOCS(_GeodesicSolveBase)\n\nif __name__ == _DMAIN_:\n\n    def _main():\n        from pygeodesy import printf\n        from sys import argv\n\n        gS = GeodesicSolve(name='Test')\n        gS.verbose = v = '--verbose' in argv  # or '-v' in argv\n\n        if not _Xables.X_OK(gS.GeodSolve):  # not set\n            gS.GeodSolve = _Xables.GeodSolve(_Xables.bin_)\n        printf('version: %s', gS.version, nt=v)\n\n        r = gS.Direct(40.6, -73.8, 51, 5.5e6)\n        printf('Direct: %r', r)\n        printf('Direct3: %r', gS.Direct3(40.6, -73.8, 51, 5.5e6), nt=v)\n\n        printf('Inverse: %r',  gS.Inverse( 40.6, -73.8, 51.6, -0.5))\n        printf('Inverse1: %r', gS.Inverse1(40.6, -73.8, 51.6, -0.5))\n        printf('Inverse3: %r', gS.Inverse3(40.6, -73.8, 51.6, -0.5), nt=v)\n\n        glS = GeodesicLineSolve(gS, 40.6, -73.8, 51, name='LineTest')\n        printf('Line: %r', glS)\n        p = glS.Position(5.5e6)\n        printf('Position:    %r %s', p, p == r)\n        p = glS.ArcPosition(49.475527)\n        printf('ArcPosition: %r %s', p, p == r)\n\n    _main()\n\n# % python3 -m pygeodesy.geodsolve\n\n# version: /opt/local/bin/GeodSolve: GeographicLib version 2.7\n# Direct: GDict(a12=49.475527, azi1=51.0, azi2=107.189397, lat1=40.6, lat2=51.884565, lon1=-73.8, lon2=-1.141173, m12=4844148.703101, M12=0.650911, M21=0.651229, s12=5500000.0, S12=39735075134877.078125)\n# Direct3: Destination3Tuple(lat=51.884565, lon=-1.141173, final=107.189397)\n# Inverse: GDict(a12=49.94131, azi1=51.198883, azi2=107.821777, lat1=40.6, lat2=51.6, lon1=-73.8, lon2=-0.5, m12=4877684.602706, M12=0.64473, M21=0.645046, s12=5551759.400319, S12=40041368848742.53125)\n# Inverse1: 49.94131021789904\n# Inverse3: Distance3Tuple(distance=5551759.400319, initial=51.198883, final=107.821777)\n# Line: GeodesicLineSolve(geodesic=GeodesicSolve(ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), GeodSolve='/opt/local/bin/GeodSolve', invokation=6, status=0), invokation=1, status=0)\n# Position:    GDict(a12=49.475527, azi1=51.0, azi2=107.189397, lat1=40.6, lat2=51.884565, lon1=-73.8, lon2=-1.141173, s12=5500000.0) False\n# ArcPosition: GDict(a12=49.475527, azi1=51.0, azi2=107.189397, lat1=40.6, lat2=51.884565, lon1=-73.8, lon2=-1.141174, s12=5499999.948497) False\n\n\n# % python3 -m pygeodesy.geodsolve --verbose\n\n# GeodesicSolve 'Test'@1: /opt/local/bin/GeodSolve --version (invoke)\n# GeodesicSolve 'Test'@1: '/opt/local/bin/GeodSolve: GeographicLib version 2.7' (0, stdout/-err)\n# GeodesicSolve 'Test'@1: /opt/local/bin/GeodSolve: GeographicLib version 2.7 (0)\n# version: /opt/local/bin/GeodSolve: GeographicLib version 2.7\n#\n# GeodesicSolve 'Test'@2: /opt/local/bin/GeodSolve -f -E -p 10 \\ 40.6 -73.8 51.0 5500000.0 (Direct)\n# GeodesicSolve 'Test'@2: '40.600000000000001 -73.799999999999997 51.000000000000000 51.884564505606761 -1.141172861200843 107.189397162605871 5500000.0000000000 49.475527463251460 4844148.7031014860 0.65091056699808614 0.65122865892196569 39735075134877.078' (0, stdout/-err)\n# GeodesicSolve 'Test'@2: lat1=40.600000000000001, lon1=-73.799999999999997, azi1=51.0, lat2=51.884564505606761, lon2=-1.141172861200843, azi2=107.189397162605871, s12=5500000.0, a12=49.47552746325146, m12=4844148.703101486, M12=0.65091056699808614, M21=0.65122865892196569, S12=39735075134877.078 (0)\n# Direct: GDict(a12=49.475527, azi1=51.0, azi2=107.189397, lat1=40.6, lat2=51.884565, lon1=-73.8, lon2=-1.141173, m12=4844148.703101, M12=0.650911, M21=0.651229, s12=5500000.0, S12=39735075134877.078125)\n# GeodesicSolve 'Test'@3: /opt/local/bin/GeodSolve -f -E -p 10 \\ 40.6 -73.8 51.0 5500000.0 (Direct3)\n# GeodesicSolve 'Test'@3: '40.600000000000001 -73.799999999999997 51.000000000000000 51.884564505606761 -1.141172861200843 107.189397162605871 5500000.0000000000 49.475527463251460 4844148.7031014860 0.65091056699808614 0.65122865892196569 39735075134877.078' (0, stdout/-err)\n# GeodesicSolve 'Test'@3: lat1=40.600000000000001, lon1=-73.799999999999997, azi1=51.0, lat2=51.884564505606761, lon2=-1.141172861200843, azi2=107.189397162605871, s12=5500000.0, a12=49.47552746325146, m12=4844148.703101486, M12=0.65091056699808614, M21=0.65122865892196569, S12=39735075134877.078 (0)\n# Direct3: Destination3Tuple(lat=51.884565, lon=-1.141173, final=107.189397)\n#\n# GeodesicSolve 'Test'@4: /opt/local/bin/GeodSolve -f -E -p 10 -i \\ 40.6 -73.8 51.6 -0.5 (Inverse)\n# GeodesicSolve 'Test'@4: '40.600000000000001 -73.799999999999997 51.198882845579824 51.600000000000001 -0.500000000000000 107.821776735514248 5551759.4003186813 49.941310217899037 4877684.6027061967 0.64472969205948238 0.64504567852134398 40041368848742.531' (0, stdout/-err)\n# GeodesicSolve 'Test'@4: lat1=40.600000000000001, lon1=-73.799999999999997, azi1=51.198882845579824, lat2=51.600000000000001, lon2=-0.5, azi2=107.821776735514248, s12=5551759.4003186813, a12=49.941310217899037, m12=4877684.6027061967, M12=0.64472969205948238, M21=0.64504567852134398, S12=40041368848742.531 (0)\n# Inverse: GDict(a12=49.94131, azi1=51.198883, azi2=107.821777, lat1=40.6, lat2=51.6, lon1=-73.8, lon2=-0.5, m12=4877684.602706, M12=0.64473, M21=0.645046, s12=5551759.400319, S12=40041368848742.53125)\n# GeodesicSolve 'Test'@5: /opt/local/bin/GeodSolve -f -E -p 10 -i \\ 40.6 -73.8 51.6 -0.5 (Inverse1)\n# GeodesicSolve 'Test'@5: '40.600000000000001 -73.799999999999997 51.198882845579824 51.600000000000001 -0.500000000000000 107.821776735514248 5551759.4003186813 49.941310217899037 4877684.6027061967 0.64472969205948238 0.64504567852134398 40041368848742.531' (0, stdout/-err)\n# GeodesicSolve 'Test'@5: lat1=40.600000000000001, lon1=-73.799999999999997, azi1=51.198882845579824, lat2=51.600000000000001, lon2=-0.5, azi2=107.821776735514248, s12=5551759.4003186813, a12=49.941310217899037, m12=4877684.6027061967, M12=0.64472969205948238, M21=0.64504567852134398, S12=40041368848742.531 (0)\n# Inverse1: 49.94131021789904\n# GeodesicSolve 'Test'@6: /opt/local/bin/GeodSolve -f -E -p 10 -i \\ 40.6 -73.8 51.6 -0.5 (Inverse3)\n# GeodesicSolve 'Test'@6: '40.600000000000001 -73.799999999999997 51.198882845579824 51.600000000000001 -0.500000000000000 107.821776735514248 5551759.4003186813 49.941310217899037 4877684.6027061967 0.64472969205948238 0.64504567852134398 40041368848742.531' (0, stdout/-err)\n# GeodesicSolve 'Test'@6: lat1=40.600000000000001, lon1=-73.799999999999997, azi1=51.198882845579824, lat2=51.600000000000001, lon2=-0.5, azi2=107.821776735514248, s12=5551759.4003186813, a12=49.941310217899037, m12=4877684.6027061967, M12=0.64472969205948238, M21=0.64504567852134398, S12=40041368848742.531 (0)\n# Inverse3: Distance3Tuple(distance=5551759.400319, initial=51.198883, final=107.821777)\n#\n# Line: GeodesicLineSolve(geodesic=GeodesicSolve(ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), GeodSolve='/opt/local/bin/GeodSolve', invokation=6, status=0), invokation=1, status=0)\n# Position:    GDict(a12=49.475527, azi1=51.0, azi2=107.189397, lat1=40.6, lat2=51.884565, lon1=-73.8, lon2=-1.141173, s12=5500000.0) False\n# ArcPosition: GDict(a12=49.475527, azi1=51.0, azi2=107.189397, lat1=40.6, lat2=51.884565, lon1=-73.8, lon2=-1.141174, s12=5499999.948497) False\n\n# **) MIT License\n#\n# Copyright (C) 2016-2026 -- mrJean1 at Gmail -- All Rights Reserved.\n#\n# Permission is hereby granted, free of charge, to any person obtaining a\n# copy of this software and associated documentation files (the \"Software\"),\n# to deal in the Software without restriction, including without limitation\n# the rights to use, copy, modify, merge, publish, distribute, sublicense,\n# and/or sell copies of the Software, and to permit persons to whom the\n# Software is furnished to do so, subject to the following conditions:\n#\n# The above copyright notice and this permission notice shall be included\n# in all copies or substantial portions of the Software.\n#\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL\n# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR\n# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\n# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n# OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "pygeodesy/geohash.py",
    "content": "\n# -*- coding: utf-8 -*-\n\nu'''I{Gustavo Niemeyer}’s U{Geohash<https://WikiPedia.org/wiki/Geohash>}.\n\nClass L{Geohash} and several functions to encode, decode and inspect\nC{geohashes} and optional L{Geohashed} caches.\n\nOriginally transcoded from JavaScript originals by I{(C) Chris Veness\n2011-2024} and published under the same MIT Licence**, see\nU{Geohashes<https://www.Movable-Type.co.UK/scripts/geohash.html>}.\n\n@see: U{Geohash<https://WikiPedia.org/wiki/Geohash>}, I{Karney}'s C++\n      U{Geohash<https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Geohash.html>},\n      U{geohash<https://GitHub.com/vinsci/geohash>},\n      U{pygeohash<https://PyPI.org/project/pygeohash>} and\n      U{geohash-js<https://GitHub.com/DaveTroy/geohash-js>}.\n'''\n\nfrom pygeodesy.basics import isstr, map2, _splituple\nfrom pygeodesy.constants import EPS, R_M, _0_0, _0_5, _180_0, _360_0, \\\n                               _90_0, _N_90_0, _N_180_0  # PYCHOK used!\nfrom pygeodesy.errors import _ValueError, _xkwds, _xStrError\n# from pygeodesy import formy as _formy  # _MODS.into\nfrom pygeodesy.interns import NN, _DMAIN_, _DOT_, _E_, _height_, _N_, _NE_, \\\n                             _NW_, _radius_, _S_, _SE_, _SW_, _W_, _width_  # _INV_\nfrom pygeodesy.lazily import _ALL_DOCS, _ALL_LAZY, _ALL_MODS as _MODS\nfrom pygeodesy.named import _name__, _NamedDict, _NamedTuple, nameof, _xnamed\nfrom pygeodesy.namedTuples import Bounds2Tuple, Bounds4Tuple, LatLon2Tuple, \\\n                                  PhiLam2Tuple\nfrom pygeodesy.props import deprecated_function, deprecated_method, \\\n                            deprecated_property_RO, Property_RO, \\\n                            property_RO, property_ROver\n# from pygeodesy.streprs import Fmt, fstr  # _MODS\nfrom pygeodesy.units import Degrees_, Int, Lat_, Lon_, Meter, Precision_, Str\n\nfrom math import fabs, ldexp, log10, radians\n\n__all__ = _ALL_LAZY.geohash\n__version__ = '25.09.16'\n\n_formy   = _MODS.into(formy=__name__)\n_MASK5   =  16, 8, 4, 2, 1  # PYCHOK used!\n_MaxPrec =  12\n\n\ndef _2bounds(LatLon, LatLon_kwds, s, w, n, e, **name):\n    '''(INTERNAL) Return SW and NE bounds.\n    '''\n    if LatLon is None:\n        r    =  Bounds4Tuple(s, w, n, e, **name)\n    else:\n        kwds = _xkwds(LatLon_kwds, **name)\n        r    =  Bounds2Tuple(LatLon(s, w, **kwds),\n                             LatLon(n, e, **kwds), **name)\n    return r\n\n\ndef _2center(bounds):\n    '''(INTERNAL) Return the C{bounds} center.\n    '''\n    return (_2mid(bounds.latN, bounds.latS),\n            _2mid(bounds.lonE, bounds.lonW))\n\n\ndef _2dab(d, a, b):\n    '''(INTERNAL) Get delta lat or lon from center.\n    '''\n    return fabs(d - round(*_2mid_ndigits(a, b)))\n\n\ndef _2fll(lat, lon, *unused):\n    '''(INTERNAL) Convert lat, lon to 2-tuple of floats.\n    '''\n    # lat, lon = parseDMS2(lat, lon)\n    return (Lat_(lat, Error=GeohashError),\n            Lon_(lon, Error=GeohashError))\n\n\ndef _2Geohash(geohash):\n    '''(INTERNAL) Check or create a Geohash instance.\n    '''\n    return geohash if isinstance(geohash, Geohash) else \\\n                         Geohash(geohash)\n\n\ndef _2latlon(s, w, n, e, fstr=None):\n    '''(INTERNAL) Get the center C{lat, lon}, rounded.\n    '''\n    lat, a = _2mid_ndigits(n, s)\n    lon, b = _2mid_ndigits(e, w)\n    return (fstr(lat, prec=a), fstr(lon, prec=b)) if fstr else \\\n           (round(lat, a),     round(lon, b))\n\n\ndef _2mid(a, b):\n    '''(INTERNAL) Bisect C{a} to C{b}.\n    '''\n    return (a + b) * _0_5  # favg\n\n\ndef _2mid_ndigits(a, b):  # a > b\n    '''(INTERNAL) Return 2-tuple C{(_2mid, ndigits)}.\n    '''\n    # round to near centre without excessive\n    # precision to ⌊2-log10(Δ°)⌋ ndigits\n    return _2mid(a, b), int(2 - log10(a - b))\n\n\ndef _2Precision(p):\n    '''(INTERNAL) Get a valid C{Precision}.\n    '''\n    return Precision_(p, low=1, high=_MaxPrec, Error=GeohashError)\n\n\ndef _2res(res, **prec):\n    '''(INTERNAL) Get the C{res}olution for a C{prec}ision.\n    '''\n    p = max(min(Int(Error=GeohashError, **prec), _MaxPrec), 0) * 5\n    x = (p - p // 2) if res > _180_0 else (p // 2)\n    return ldexp(res, -x) if x else res  # ldexp == res / float(1 << x)\n\n\nclass _GH(object):\n    '''(INTERNAL) Lazily defined constants.\n    '''\n    def _4d(self, s, w, n, e):  # helper\n        return dict(S=(s, w), W=(w, s),\n                    N=(n, e), E=(e, n))\n\n    @property_ROver\n    def Borders(self):\n        return self._4d('028b', '0145hjnp', 'prxz', 'bcfguvyz')\n\n    @property_ROver\n    def DecodeB32(self):  # inverse EncodeB32 map\n        return dict((c, i) for i, c in enumerate(self.EncodeB32))\n\n    def decode2(self, geohash):\n        '''Decode C{geohash} to 2-tuple C{(lat, lon)}.\n        '''\n        swne = self.swne4(geohash)\n        return _2latlon(*swne)\n\n    # Geohash's base32 codes, no a, i, l and o\n    EncodeB32 = '0123456789bcdefghjkmnpqrstuvwxyz'\n\n    def encode(self, *lat_lon_prec_eps):\n        '''Encode C{lat, lon} to C{prec}ision or C{eps}.\n        '''\n        def _encodes(lat, lon, prec, eps=0):\n            s, w, n, e = self.SWNE4\n            d, _mid = True, _2mid\n            for _ in range(prec):\n                i = 0\n                for _ in _MASK5:\n                    i += i\n                    if d:  # bisect longitude\n                        a = _mid(e, w)\n                        if lon < a:\n                            e  = a\n                        else:\n                            w  = a\n                            i += 1\n                    else:  # bisect latitude\n                        a = _mid(n, s)\n                        if lat < a:\n                            n  = a\n                        else:\n                            s  = a\n                            i += 1\n                    d = not d\n                yield self.EncodeB32[i]\n                if eps > 0:  # infer prec\n                    if _2dab(lon, e, w) < eps and \\\n                       _2dab(lat, n, s) < eps:\n                        break\n\n        return NN.join(_encodes(*lat_lon_prec_eps))\n\n    def encode2(self, lat, lon, prec, eps):\n        '''Return 2-tuple C{geohash, (lat, lon))}.\n        '''\n        lat, lon = _2fll(lat, lon)\n        if prec:\n            p, e = _2Precision(prec), 0\n        else:  # infer precision by refining geohash\n            p, e = _MaxPrec, max(eps, EPS)\n        return self.encode(lat, lon, p, e), (lat, lon)\n\n    @property_ROver\n    def _LatLon2Tuple(self):\n\n        class _LatLon2Tuple(_NamedTuple):\n            '''DEPRECATED on 2024.07.28, C{(lat, lon)} in B{C{meter}}, use L{Sizes3Tuple}.'''\n            _Names_ = LatLon2Tuple._Names_\n            _Units_ = Meter, Meter\n\n        return _LatLon2Tuple\n\n    @property_ROver\n    def Neighbors(self):\n        return self._4d('14365h7k9dcfesgujnmqp0r2twvyx8zb',\n                        '238967debc01fg45kmstqrwxuvhjyznp',\n                        'p0r21436x8zb9dcf5h7kjnmqesgutwvy',\n                        'bc01fg45238967deuvhjyznpkmstqrwx')\n\n    @property_ROver\n    def Sizes(self):  # height, width and radius (in meter)\n        # where radius = sqrt(height * width / PI), the\n        # radius of a circle with area (height * width)\n        T = Sizes3Tuple\n        return (T(20000e3, 20032e3, 11292815.096),  # 0\n                T( 5000e3,  5003e3,  2821794.075),  # 1\n                T(  650e3,  1225e3,   503442.397),  # 2\n                T(  156e3,   156e3,    88013.575),  # 3\n                T(  19500,   39100,    15578.683),  # 4\n                T(   4890,    4890,     2758.887),  # 5\n                T(    610,    1220,      486.710),  # 6\n                T(    153,     153,       86.321),  # 7\n                T(     19.1,    38.2,     15.239),  # 8\n                T(      4.77,    4.77,     2.691),  # 9\n                T(      0.596,   1.19,     0.475),  # 10\n                T(      0.149,   0.149,    0.084),  # 11\n                T(      0.0186,  0.0372,   0.015))  # 12  _MaxPrec\n\n    SWNE4 = (_N_90_0, _N_180_0, _90_0, _180_0)\n\n    def swne4(self, geohash, mask5=_MASK5):\n        '''Decode C{geohash} into 4-tuple C{(s, w, n, e)}.\n        '''\n        nc = len(geohash) if isstr(geohash) else 0\n        if not (0 < nc <= _MaxPrec):  # or geohash.startswith(_INV_)\n            raise GeohashError(geohash=geohash, len=nc)\n        s, w, n, e = self.SWNE4\n        d, _mid = True, _2mid\n        try:\n            for j, c in enumerate(geohash.lower()):\n                i = self.DecodeB32[c]\n                for m in mask5:\n                    if d:  # longitude\n                        a = _mid(e, w)\n                        if (i & m):\n                            w = a\n                        else:\n                            e = a\n                    else:  # latitude\n                        a = _mid(n, s)\n                        if (i & m):\n                            s = a\n                        else:\n                            n = a\n                    d = not d\n        except KeyError:\n            c = _MODS.streprs.Fmt.INDEX(repr(c), j)\n            raise GeohashError(geohash=geohash, len=nc, txt=c)\n        return s, w, n, e\n\n_GH = _GH()  # PYCHOK singleton\n\n\nclass Geohash(Str):\n    '''Geohash class, a named C{str}.\n    '''\n    # no str.__init__ in Python 3\n    def __new__(cls, lat_ghll, lon=None, precision=None, eps=EPS, **name):\n        '''New L{Geohash} from an other L{Geohash} instance or geohash C{str}\n           or from a lat- and longitude.\n\n           @arg lat_ghll: Latitude (C{degrees90}), a geohash (L{Geohash},\n                          C{str}) or a location (C{LatLon}, C{LatLon*Tuple}).\n           @kwarg lon: Logitude (C{degrees180)}, required if B{C{lat_ghll}}\n                       is C{degrees90}, ignored otherwise.\n           @kwarg precision: The desired geohash length (C{int} 1..12) or\n                             C{None} or C{0}, see L{encode<pygeodesy.geohash.encode>}.\n           @kwarg eps: Optional inference tolerance (C{degrees}), see\n                       L{encode<pygeodesy.geohash.encode>}.\n           @kwarg name: Optional C{B{name}=NN} (C{str}).\n\n           @return: New L{Geohash}.\n\n           @raise GeohashError: Invalid B{C{lat_ghll}}.\n\n           @raise RangeError: Invalid B{C{lat_gll}} or B{C{lon}}.\n\n           @raise TypeError: Invalid B{C{lat_ghll}}.\n        '''\n        if lon is None:\n            if isinstance(lat_ghll, Geohash):\n                gh, ll = str(lat_ghll), lat_ghll.latlon\n            elif isstr(lat_ghll):  # \"lat, lon\" or \"geohash\"\n                ll = _splituple(lat_ghll)\n                if len(ll) > 1:\n                    gh, ll = _GH.encode2(ll[0], ll[1], precision, eps)\n                else:\n                    gh, ll =  lat_ghll.lower(), None\n                    _  = _GH.swne4(gh, mask5=())  # validate\n            else:  # assume LatLon\n                try:\n                    gh, ll = _GH.encode2(lat_ghll.lat, lat_ghll.lon, precision, eps)\n                except AttributeError:\n                    raise _xStrError(Geohash, ghll=lat_ghll, Error=GeohashError)\n        else:\n            gh, ll = _GH.encode2(lat_ghll, lon, precision, eps)\n\n        self = Str.__new__(cls, gh, name=_name__(name, _or_nameof=lat_ghll))\n        self._latlon = ll\n        return self\n\n    @deprecated_property_RO\n    def ab(self):\n        '''DEPRECATED, use property C{philam}.'''\n        return self.philam\n\n    def adjacent(self, direction, **name):\n        '''Determine the adjacent cell in the given compass direction.\n\n           @arg direction: Compass direction ('N', 'S', 'E' or 'W').\n           @kwarg name: Optional C{B{name}=NN} (C{str}) otherwise this\n                        cell's name, either extended with C{.D}irection.\n\n           @return: Geohash of adjacent cell (L{Geohash}).\n\n           @raise GeohashError: Invalid geohash or B{C{direction}}.\n        '''\n        # based on <https://GitHub.com/DaveTroy/geohash-js>\n\n        D = direction[:1].upper()\n        if D not in _GH.Neighbors:\n            raise GeohashError(direction=direction)\n\n        e = len(self) & 1  # int(isodd(len(self)))\n\n        c = self[-1:]  # last hash char\n        i = _GH.Neighbors[D][e].find(c)\n        if i < 0:\n            raise GeohashError(geohash=self)\n\n        p = self[:-1]  # hash without last char\n        # check for edge-cases which don't share common prefix\n        if p and (c in _GH.Borders[D][e]):\n            p = Geohash(p).adjacent(D)\n\n        n = self._name__(name)\n        if n:\n            n = _DOT_(n, D)\n        # append letter for direction to parent\n        return Geohash(p + _GH.EncodeB32[i], name=n)\n\n    @Property_RO\n    def _bounds(self):\n        '''(INTERNAL) Cache for L{bounds}.\n        '''\n        return bounds(self)\n\n    def bounds(self, LatLon=None, **LatLon_kwds):\n        '''Return the lower-left SW and upper-right NE bounds of this\n           geohash cell.\n\n           @kwarg LatLon: Optional class to return I{bounds} (C{LatLon})\n                          or C{None}.\n           @kwarg LatLon_kwds: Optional, additional B{C{LatLon}} keyword\n                               arguments, ignored if C{B{LatLon} is None}.\n\n           @return: A L{Bounds2Tuple}C{(latlonSW, latlonNE)} of B{C{LatLon}}s\n                    or a L{Bounds4Tuple}C{(latS, lonW, latN, lonE)} if\n                    C{B{LatLon} is None},\n        '''\n        r = self._bounds\n        return r if LatLon is None else \\\n           _2bounds(LatLon, LatLon_kwds, *r, name=self.name)\n\n    def _distanceTo(self, func_, other, **kwds):\n        '''(INTERNAL) Helper for distances, see C{.formy._distanceTo*}.\n        '''\n        lls = self.latlon + _2Geohash(other).latlon\n        return func_(*lls, **kwds)\n\n    def distanceTo(self, other):\n        '''Estimate the distance between this and an other geohash\n           based the cell sizes.\n\n           @arg other: The other geohash (L{Geohash}, C{LatLon} or C{str}).\n\n           @return: Approximate distance (C{meter}).\n\n           @raise TypeError: The B{C{other}} is not a L{Geohash},\n                             C{LatLon} or C{str}.\n        '''\n        other = _2Geohash(other)\n\n        n = min(len(self), len(other), len(_GH.Sizes))\n        if n:\n            for n in range(n):\n                if self[n] != other[n]:\n                    break\n        return _GH.Sizes[n].radius\n\n    @deprecated_method\n    def distance1To(self, other):  # PYCHOK no cover\n        '''DEPRECATED, use method L{distanceTo}.'''\n        return self.distanceTo(other)\n\n    distance1 = distance1To\n\n    @deprecated_method\n    def distance2To(self, other, radius=R_M, adjust=False, wrap=False):  # PYCHOK no cover\n        '''DEPRECATED, use method L{equirectangularTo}.'''\n        return self.equirectangularTo(other, radius=radius, adjust=adjust, wrap=wrap)\n\n    distance2 = distance2To\n\n    @deprecated_method\n    def distance3To(self, other, radius=R_M, wrap=False):  # PYCHOK no cover\n        '''DEPRECATED, use method L{haversineTo}.'''\n        return self.haversineTo(other, radius=radius, wrap=wrap)\n\n    distance3 = distance3To\n\n    def equirectangularTo(self, other, radius=R_M, **adjust_limit_wrap):\n        '''Approximate the distance between this and an other geohash\n           using function L{pygeodesy.equirectangular}.\n\n           @arg other: The other geohash (L{Geohash}, C{LatLon} or C{str}).\n           @kwarg radius: Mean earth radius, ellipsoid or datum (C{meter},\n                          L{Ellipsoid}, L{Ellipsoid2}, L{Datum} or L{a_f2Tuple})\n                          or C{None}, see function L{pygeodesy.equirectangular}.\n           @kwarg adjust_limit_wrap: Optional keyword arguments for function\n                         L{pygeodesy.equirectangular4}, overriding defaults\n                         C{B{adjust}=False, B{limit}=None} and C{B{wrap}=False}.\n\n           @return: Distance (C{meter}, same units as B{C{radius}} or the ellipsoid\n                    or datum axes or C{radians I{squared}} if B{C{radius} is None}\n                    or C{0}).\n\n           @raise TypeError: The B{C{other}} is not a L{Geohash}, C{LatLon} or\n                             C{str} or invalid B{C{radius}}.\n\n           @see: U{Local, flat earth approximation\n                 <https://www.EdWilliams.org/avform.htm#flat>}, functions\n        '''\n        lls  =  self.latlon + _2Geohash(other).latlon\n        kwds = _xkwds(adjust_limit_wrap, adjust=False, limit=None, wrap=False)\n        return _formy.equirectangular( *lls, radius=radius, **kwds) if radius else \\\n               _formy.equirectangular4(*lls, **kwds).distance2\n\n    def euclideanTo(self, other, **radius_adjust_wrap):\n        '''Approximate the distance between this and an other geohash using\n           function L{pygeodesy.euclidean}.\n\n           @arg other: The other geohash (L{Geohash}, C{LatLon} or C{str}).\n           @kwarg radius_adjust_wrap: Optional keyword arguments for function\n                                      L{pygeodesy.euclidean}.\n\n           @return: Distance (C{meter}, same units as B{C{radius}} or the\n                    ellipsoid or datum axes).\n\n           @raise TypeError: The B{C{other}} is not a L{Geohash}, C{LatLon}\n                             or C{str} or invalid B{C{radius}}.\n        '''\n        return self._distanceTo(_formy.euclidean, other, **radius_adjust_wrap)\n\n    def haversineTo(self, other, **radius_wrap):\n        '''Compute the distance between this and an other geohash using\n           the L{pygeodesy.haversine} formula.\n\n           @arg other: The other geohash (L{Geohash}, C{LatLon} or C{str}).\n           @kwarg radius_wrap: Optional keyword arguments for function\n                               L{pygeodesy.haversine}.\n\n           @return: Distance (C{meter}, same units as B{C{radius}} or the\n                    ellipsoid or datum axes).\n\n           @raise TypeError: The B{C{other}} is not a L{Geohash}, C{LatLon}\n                             or C{str} or invalid B{C{radius}}.\n        '''\n        return self._distanceTo(_formy.haversine, other, **radius_wrap)\n\n    @Property_RO\n    def latlon(self):\n        '''Get the lat- and longitude of (the approximate center of)\n           this geohash as a L{LatLon2Tuple}C{(lat, lon)} in C{degrees}.\n        '''\n        lat, lon = self._latlon or _2center(self.bounds())\n        return LatLon2Tuple(lat, lon, name=self.name)\n\n    @Property_RO\n    def neighbors(self):\n        '''Get all 8 adjacent cells as a L{Neighbors8Dict}C{(N, NE,\n           E, SE, S, SW, W, NW)} of L{Geohash}es.\n        '''\n        return Neighbors8Dict(N=self.N, NE=self.NE, E=self.E, SE=self.SE,\n                              S=self.S, SW=self.SW, W=self.W, NW=self.NW,\n                              name=self.name)\n\n    @Property_RO\n    def philam(self):\n        '''Get the lat- and longitude of (the approximate center of)\n           this geohash as a L{PhiLam2Tuple}C{(phi, lam)} in C{radians}.\n        '''\n        return PhiLam2Tuple(map2(radians, self.latlon), name=self.name)  # *map2\n\n    @Property_RO\n    def precision(self):\n        '''Get this geohash's precision (C{int}).\n        '''\n        return len(self)\n\n    @Property_RO\n    def resolution2(self):\n        '''Get the I{lon-} and I{latitudinal} resolution of this cell\n           in a L{Resolutions2Tuple}C{(res1, res2)}, both in C{degrees}.\n        '''\n        return resolution2(self.precision, self.precision)\n\n    @deprecated_property_RO\n    def sizes(self):\n        '''DEPRECATED on 2024.07.28, use property C{Geohash.sizes3}.'''\n        t = self.sizes3\n        return _GH._LatLon2Tuple(t.height, t.width, name=t.name)\n\n    @Property_RO\n    def sizes3(self):\n        '''Get the lat-, longitudinal and radial size of this cell in\n           a L{Sizes3Tuple}C{(height, width, radius)}, all in C{meter}.\n        '''\n        z = _GH.Sizes\n        n =  min(max(self.precision, 1), len(z) - 1)\n        return Sizes3Tuple(z[n], name=self.name)\n\n    def toLatLon(self, LatLon=None, **LatLon_kwds):\n        '''Return (the approximate center of) this geohash cell\n           as an instance of the supplied C{LatLon} class.\n\n           @arg LatLon: Class to use (C{LatLon}) or C{None}.\n           @kwarg LatLon_kwds: Optional, additional B{C{LatLon}} keyword\n                               arguments, ignored if C{B{LatLon} is None}.\n\n           @return: This geohash location (B{C{LatLon}}) or if C{B{LatLon}\n                    is None}, a L{LatLon2Tuple}C{(lat, lon)}.\n\n           @raise TypeError: Invalid B{C{LatLon}} or B{C{LatLon_kwds}}.\n        '''\n        return self.latlon if LatLon is None else _xnamed(LatLon(\n              *self.latlon, **LatLon_kwds), self.name)\n\n    def vincentysTo(self, other, **radius_wrap):\n        '''Compute the distance between this and an other geohash using\n           the L{pygeodesy.vincentys} formula.\n\n           @arg other: The other geohash (L{Geohash}, C{LatLon} or C{str}).\n           @kwarg radius_wrap: Optional keyword arguments for function\n                               L{pygeodesy.vincentys}.\n\n           @return: Distance (C{meter}, same units as B{C{radius}} or the\n                    ellipsoid or datum axes).\n\n           @raise TypeError: The B{C{other}} is not a L{Geohash}, C{LatLon}\n                             or C{str} or invalid B{C{radius}}.\n        '''\n        return self._distanceTo(_formy.vincentys, other, **radius_wrap)\n\n    @Property_RO\n    def E(self):\n        '''Get the cell East of this (L{Geohash}).\n        '''\n        return self.adjacent(_E_)\n\n    @Property_RO\n    def N(self):\n        '''Get the cell North of this (L{Geohash}).\n        '''\n        return self.adjacent(_N_)\n\n    @Property_RO\n    def NE(self):\n        '''Get the cell NorthEast of this (L{Geohash}).\n        '''\n        return self.N.E\n\n    @Property_RO\n    def NW(self):\n        '''Get the cell NorthWest of this (L{Geohash}).\n        '''\n        return self.N.W\n\n    @Property_RO\n    def S(self):\n        '''Get the cell South of this (L{Geohash}).\n        '''\n        return self.adjacent(_S_)\n\n    @Property_RO\n    def SE(self):\n        '''Get the cell SouthEast of this (L{Geohash}).\n        '''\n        return self.S.E\n\n    @Property_RO\n    def SW(self):\n        '''Get the cell SouthWest of this (L{Geohash}).\n        '''\n        return self.S.W\n\n    @Property_RO\n    def W(self):\n        '''Get the cell West of this (L{Geohash}).\n        '''\n        return self.adjacent(_W_)\n\n\nclass Geohashed(object):\n    '''A cache of en- and decoded geohashes of one precision.\n    '''\n    _nn = None,  # 1-tuple\n\n    def __init__(self, precision, ndigits=None):\n        '''New L{Geohashed} cache.\n\n           @arg precision: The geohash encoded length (C{int}, 1..12).\n           @kwarg ndigits: Optional number of digits to round C{lat}\n                           and C{lon} to cache keys (C{int}, typically\n                           C{B{ndigits}=B{precision}}) or C{None} for\n                           no rounding.\n        '''\n        self._p = _2Precision(precision)\n        if ndigits is None:\n            self._ab2 = self._ab2float\n        else:\n            self._ab2 = self._ab2round\n            n         = Int(ndigits=ndigits)\n            self._nn  = n, n\n        self.clear()\n\n    def __len__(self):\n        '''Return the number of I{unigue} geohashes (C{int}).\n        '''\n        d = self._d\n        d = set(d.keys())\n        n = len(d)\n        for e in self._e.values():\n            e  = set(e.values())\n            n += len(e - d)\n        return n\n\n    def _ab2(self, *ll):  # overwritten\n        '''(INTERNAL) Make encoded keys C{a, b}.\n        '''\n        return ll\n\n    def _ab2float(self, *ll):\n        '''(INTERNAL) Make encoded keys C{a, b}.\n        '''\n        return map(float, ll)\n\n    def _ab2round(self, *ll):\n        '''(INTERNAL) Make encoded keys C{a, b}.\n        '''\n        return map(round, ll, self._nn)  # strict=True\n\n    def clear(self):\n        '''Clear the C{en-} and C{decoded} cache.\n        '''\n        self._e = {}\n        self._d = {}\n\n    def decoded(self, geohash, encoded=False):\n        '''Get and cache the C{(lat, lon)} for C{geohash}, see L{decode<pygeodesy.geohash.decode>}.\n\n           @kwarg encoded: If C{True}, cache the result as C{encoded}.\n\n           @return: The C{(lat, lon}) pair for C{geohash}.\n        '''\n        try:\n            ll = self._d[geohash]\n        except KeyError:\n            self._d[geohash] = ll = _GH.decode2(geohash)\n        if encoded:\n            a, b = self._ab2(*ll)\n            try:\n                _ = self._e[b][a]\n            except KeyError:\n                self._e.setdefault(b, {})[a] = geohash\n        return ll\n\n    def encoded(self, lat, lon, decoded=False):\n        '''Get and cache the C{geohash} for C{(lat, lon)}, see L{encode<pygeodesy.geohash.encode>}.\n\n           @kwarg decoded: If C{True}, cache the result as C{decoded}.\n\n           @return: The C{geohash} for pair C{(lat, lon}).\n        '''\n        lat, lon = ll = _2fll(lat, lon)\n        a, b = self._ab2(*ll)\n        try:\n            gh = self._e[b][a]\n        except KeyError:\n            gh = _GH.encode(lat, lon, self._p, 0)\n            self._e.setdefault(b, {})[a] = gh\n        if decoded and gh not in self._d:\n            self._d[gh] = ll\n        return gh\n\n    @property_RO\n    def len2(self):\n        '''Return 2-tuple C{(lencoded, ldecoded)} with the C{len}gths of the\n           C{en-} and C{decoded} cache.\n        '''\n        return sum(len(e) for e in self._e.values()), len(self._d)\n\n    @Property_RO\n    def ndigits(self):\n        '''Get the rounding (C{int} or C{None}).\n        '''\n        return self._nn[0]\n\n    @Property_RO\n    def precision(self):\n        '''Get the C{precision} (C{int}).\n        '''\n        return self._p\n\n\nclass GeohashError(_ValueError):\n    '''Geohash encode, decode or other L{Geohash} issue.\n    '''\n    pass\n\n\nclass Neighbors8Dict(_NamedDict):\n    '''8-Dict C{(N, NE, E, SE, S, SW, W, NW)} of L{Geohash}es,\n       providing key I{and} attribute access to the items.\n    '''\n    _Keys_ = (_N_, _NE_, _E_, _SE_, _S_, _SW_, _W_, _NW_)\n\n    def __init__(self, **kwds):  # PYCHOK no *args\n        kwds = _xkwds(kwds, **_Neighbors8Defaults)\n        _NamedDict.__init__(self, **kwds)  # name=...\n\n\n_Neighbors8Defaults = dict(zip(Neighbors8Dict._Keys_, (None,) *\n                           len(Neighbors8Dict._Keys_)))  # XXX frozendict\n\n\nclass Resolutions2Tuple(_NamedTuple):\n    '''2-Tuple C{(res1, res2)} with the primary I{(longitudinal)} and\n       secondary I{(latitudinal)} resolution, both in C{degrees}.\n    '''\n    _Names_ = ('res1',   'res2')\n    _Units_ = ( Degrees_, Degrees_)\n\n    @property_RO\n    def lat(self):\n        '''Get the secondary, latitudinal resolution (C{degrees}).\n        '''\n        return self[1]\n\n    @property_RO\n    def lon(self):\n        '''Get the primary, longitudinal resolution (C{degrees}).\n        '''\n        return self[0]\n\n\nclass Sizes3Tuple(_NamedTuple):\n    '''3-Tuple C{(height, width, radius)} with latitudinal C{height},\n       longitudinal C{width} and area C{radius}, all in C{meter}.\n    '''\n    _Names_ = (_height_, _width_, _radius_)\n    _Units_ = ( Meter,    Meter,   Meter)\n\n\ndef bounds(geohash, LatLon=None, **LatLon_kwds):\n    '''Returns the lower-left SW and upper-right NE corners of a geohash.\n\n       @arg geohash: To be \"bound\" (L{Geohash}).\n       @kwarg LatLon: Optional class to return the bounds (C{LatLon}) or C{None}.\n       @kwarg LatLon_kwds: Optional, additional B{C{LatLon}} keyword arguments,\n                           ignored if C{B{LatLon} is None}.\n\n       @return: A L{Bounds2Tuple}C{(latlonSW, latlonNE)}, each a B{C{LatLon}}\n                or if C{B{LatLon} is None}, a L{Bounds4Tuple}C{(latS, lonW,\n                latN, lonE)}.\n\n       @raise TypeError: The B{C{geohash}} is not a L{Geohash}, C{LatLon} or\n                         C{str} or invalid B{C{LatLon}} or invalid B{C{LatLon_kwds}}.\n\n       @raise GeohashError: Invalid or C{null} B{C{geohash}}.\n    '''\n    swne = _GH.swne4(geohash)\n    return _2bounds(LatLon, LatLon_kwds, *swne,\n                            name=nameof(geohash))  # _or_nameof=geohash\n\n\ndef decode(geohash):\n    '''Decode a geohash to lat-/longitude of the (approximate\n       centre of) geohash cell to reasonable precision.\n\n       @arg geohash: To be decoded (L{Geohash}).\n\n       @return: 2-Tuple C{(latStr, lonStr)}, both C{str}.\n\n       @raise TypeError: The B{C{geohash}} is not a L{Geohash},\n                         C{LatLon} or C{str}.\n\n       @raise GeohashError: Invalid or null B{C{geohash}}.\n    '''\n    # round to near centre without excessive precision to\n    # ⌊2-log10(Δ°)⌋ decimal places, strip trailing zeros\n    swne = _GH.swne4(geohash)\n    return _2latlon(*swne, fstr=_MODS.streprs.fstr)\n\n\ndef decode2(geohash, LatLon=None, **LatLon_kwds):\n    '''Decode a geohash to lat-/longitude of the (approximate center\n       of) geohash cell to reasonable precision.\n\n       @arg geohash: To be decoded (L{Geohash}).\n       @kwarg LatLon: Optional class to return the location (C{LatLon})\n                      or C{None}.\n       @kwarg LatLon_kwds: Optional, addtional B{C{LatLon}} keyword\n                           arguments, ignored if C{B{LatLon} is None}.\n\n       @return: L{LatLon2Tuple}C{(lat, lon)}, both C{degrees} if\n                C{B{LatLon} is None}, otherwise a B{C{LatLon}} instance.\n\n       @raise TypeError: The B{C{geohash}} is not a L{Geohash},\n                         C{LatLon} or C{str}.\n\n       @raise GeohashError: Invalid or null B{C{geohash}}.\n    '''\n    ll = _GH.decode2(geohash)\n    r  =  LatLon2Tuple(ll) if LatLon is None else \\\n          LatLon(     *ll,  **LatLon_kwds)\n    return _xnamed(r, name__=decode2)\n\n\n@deprecated_function\ndef decode_error(geohash):\n    '''DEPRECATED on 2024.07.28, use L{geohash.decode_error2}.'''\n    return decode_error2(geohash)\n\n\ndef decode_error2(geohash):\n    '''Return the lat- and longitude decoding error for a geohash.\n\n       @arg geohash: To be decoded (L{Geohash}).\n\n       @return: A L{LatLon2Tuple}C{(lat, lon)} with the lat- and\n                longitudinal errors in (C{degrees}).\n\n       @raise TypeError: The B{C{geohash}} is not a L{Geohash},\n                         C{LatLon} or C{str}.\n\n       @raise GeohashError: Invalid or null B{C{geohash}}.\n    '''\n    s, w, n, e = _GH.swne4(geohash)\n    return LatLon2Tuple((n - s) * _0_5,  # lat error\n                        (e - w) * _0_5)  # lon error\n\n\ndef distance_(geohash1, geohash2):\n    '''Estimate the distance between two geohash (from the cell sizes).\n\n       @arg geohash1: First geohash (L{Geohash}, C{LatLon} or C{str}).\n       @arg geohash2: Second geohash (L{Geohash}, C{LatLon} or C{str}).\n\n       @return: Approximate distance (C{meter}).\n\n       @raise TypeError: If B{C{geohash1}} or B{C{geohash2}} is not a\n                         L{Geohash}, C{LatLon} or C{str}.\n    '''\n    return _2Geohash(geohash1).distanceTo(geohash2)\n\n\n@deprecated_function\ndef distance1(geohash1, geohash2):\n    '''DEPRECATED, use L{geohash.distance_}.'''\n    return distance_(geohash1, geohash2)\n\n\n@deprecated_function\ndef distance2(geohash1, geohash2):\n    '''DEPRECATED, use L{geohash.equirectangular4}.'''\n    return equirectangular4(geohash1, geohash2)\n\n\n@deprecated_function\ndef distance3(geohash1, geohash2):\n    '''DEPRECATED, use L{geohash.haversine_}.'''\n    return haversine_(geohash1, geohash2)\n\n\ndef encode(lat, lon, precision=None, eps=EPS):\n    '''Encode a lat-/longitude as a C{geohash}, either to the specified\n       precision or if not provided, to an inferred precision.\n\n       @arg lat: Latitude (C{degrees90}).\n       @arg lon: Longitude (C{degrees180}).\n       @kwarg precision: The desired geohash length (C{int} 1..12) or\n                         C{None} or C{0} for inferred.\n       @kwarg eps: Optional inference tolerance (C{degrees}), ignored\n                   if B{C{precision}} is not C{None} or C{0}.\n\n       @return: The C{geohash} (C{str}).\n\n       @raise GeohashError: Invalid B{C{lat}}, B{C{lon}} or B{C{precision}}.\n    '''\n    gh, _ = _GH.encode2(lat, lon, precision, eps)\n    return gh\n\n\ndef equirectangular4(geohash1, geohash2, radius=R_M):\n    '''Approximate the distance between two geohashes using the\n       L{pygeodesy.equirectangular} formula.\n\n       @arg geohash1: First geohash (L{Geohash}, C{LatLon} or C{str}).\n       @arg geohash2: Second geohash (L{Geohash}, C{LatLon} or C{str}).\n       @kwarg radius: Mean earth radius (C{meter}) or C{None}, see method\n                      L{Geohash.equirectangularTo}.\n\n       @return: Approximate distance (C{meter}, same units as B{C{radius}}),\n                see method L{Geohash.equirectangularTo}.\n\n       @raise TypeError: If B{C{geohash1}} or B{C{geohash2}} is not a\n                         L{Geohash}, C{LatLon} or C{str}.\n    '''\n    return _2Geohash(geohash1).equirectangularTo(geohash2, radius=radius)\n\n\ndef euclidean_(geohash1, geohash2, **radius_adjust_wrap):\n    '''Approximate the distance between two geohashes using the\n       L{pygeodesy.euclidean} formula.\n\n       @arg geohash1: First geohash (L{Geohash}, C{LatLon} or C{str}).\n       @arg geohash2: Second geohash (L{Geohash}, C{LatLon} or C{str}).\n       @kwarg radius_adjust_wrap: Optional keyword arguments for function\n                                  L{pygeodesy.euclidean}.\n\n       @return: Approximate distance (C{meter}, same units as B{C{radius}}).\n\n       @raise TypeError: If B{C{geohash1}} or B{C{geohash2}} is not a\n                         L{Geohash}, C{LatLon} or C{str}.\n    '''\n    return _2Geohash(geohash1).euclideanTo(geohash2, **radius_adjust_wrap)\n\n\ndef haversine_(geohash1, geohash2, **radius_wrap):\n    '''Compute the great-circle distance between two geohashes\n       using the L{pygeodesy.haversine} formula.\n\n       @arg geohash1: First geohash (L{Geohash}, C{LatLon} or C{str}).\n       @arg geohash2: Second geohash (L{Geohash}, C{LatLon} or C{str}).\n       @kwarg radius_wrap: Optional keyword arguments for function\n                           L{pygeodesy.haversine}.\n\n       @return: Great-circle distance (C{meter}, same units as\n                B{C{radius}}).\n\n       @raise TypeError: If B{C{geohash1}} or B{C{geohash2}} is\n                         not a L{Geohash}, C{LatLon} or C{str}.\n    '''\n    return _2Geohash(geohash1).haversineTo(geohash2, **radius_wrap)\n\n\ndef neighbors(geohash):\n    '''Return the L{Geohash}es for all 8 adjacent cells.\n\n       @arg geohash: Cell for which neighbors are requested\n                     (L{Geohash} or C{str}).\n\n       @return: A L{Neighbors8Dict}C{(N, NE, E, SE, S, SW, W, NW)}\n                of L{Geohash}es.\n\n       @raise TypeError: The B{C{geohash}} is not a L{Geohash},\n                         C{LatLon} or C{str}.\n    '''\n    return _2Geohash(geohash).neighbors\n\n\ndef precision(res1, res2=None):\n    '''Determine the L{Geohash} precisions to meet a or both given\n       (geographic) resolutions.\n\n       @arg res1: The required primary I{(longitudinal)} resolution\n                  (C{degrees}).\n       @kwarg res2: Optional, required secondary I{(latitudinal)}\n                    resolution (C{degrees}).\n\n       @return: The L{Geohash} precision or length (C{int}, 1..12).\n\n       @raise GeohashError: Invalid B{C{res1}} or B{C{res2}}.\n\n       @see: C++ class U{Geohash\n             <https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Geohash.html>}.\n    '''\n    r = Degrees_(res1=res1, low=_0_0, Error=GeohashError)\n    N = res2 is None\n    t = r, (r if N else Degrees_(res2=res2, low=_0_0, Error=GeohashError))\n    for p in range(1, _MaxPrec):\n        if resolution2(p, (None if N else p)) <= t:\n            return p\n    return _MaxPrec\n\n\ndef resolution2(prec1, prec2=None):\n    '''Determine the (geographic) resolutions of given L{Geohash}\n       precisions.\n\n       @arg prec1: The given primary I{(longitudinal)} precision\n                   (C{int} 1..12).\n       @kwarg prec2: Optional, secondary I{(latitudinal)} precision\n                     (C{int} 1..12).\n\n       @return: L{Resolutions2Tuple}C{(res1, res2)} with the\n                (geographic) resolutions in C{degrees}, where\n                C{res2 B{is} res1} if no B{C{prec2}} is given.\n\n       @raise GeohashError: Invalid B{C{prec1}} or B{C{prec2}}.\n\n       @see: I{Karney}'s C++ class U{Geohash\n             <https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Geohash.html>}.\n    '''\n    lon = _2res(_360_0, prec1=prec1)\n    lat =  lon if prec2 is None else \\\n          _2res(_180_0, prec2=prec2)\n    return Resolutions2Tuple(lon, lat)\n\n\n@deprecated_function\ndef sizes(geohash):\n    '''DEPRECATED on 2024.07.28, use function L{pygeodesy.geohash.sizes3}.'''\n    t = sizes3(geohash)\n    return _GH._LatLon2Tuple(t.height, t.width, name=t.name)\n\n\ndef sizes3(geohash):\n    '''Return the lat-, longitudinal and radial size of this L{Geohash} cell.\n\n       @arg geohash: Cell for which size are required (L{Geohash} or C{str}).\n\n       @return: A L{Sizes3Tuple}C{(height, width, radius)}, all C{meter}.\n\n       @raise TypeError: The B{C{geohash}} is not a L{Geohash}, C{LatLon} or C{str}.\n    '''\n    return _2Geohash(geohash).sizes3\n\n\ndef vincentys_(geohash1, geohash2, **radius_wrap):\n    '''Compute the distance between two geohashes using the\n       L{pygeodesy.vincentys} formula.\n\n       @arg geohash1: First geohash (L{Geohash}, C{LatLon} or C{str}).\n       @arg geohash2: Second geohash (L{Geohash}, C{LatLon} or C{str}).\n       @kwarg radius_wrap: Optional keyword arguments for function\n                           L{pygeodesy.vincentys}.\n\n       @return: Distance (C{meter}, same units as B{C{radius}}).\n\n       @raise TypeError: If B{C{geohash1}} or B{C{geohash2}} is not a\n                         L{Geohash}, C{LatLon} or C{str}.\n    '''\n    return _2Geohash(geohash1).vincentysTo(geohash2, **radius_wrap)\n\n\n__all__ += _ALL_DOCS(bounds,  # functions\n                     decode, decode2, decode_error2, distance_,\n                     encode, equirectangular4, euclidean_, haversine_,\n                     neighbors, precision, resolution2, sizes3, vincentys_,\n                     decode_error, sizes)  # DEPRECATED\n\nif __name__ == _DMAIN_:\n\n    from pygeodesy.internals import printf, _versions\n    from timeit import timeit\n\n    for f, p in (('encode', _MaxPrec), ('infer', None)):\n\n        def _t(prec=p):\n            i = 0\n            for lat in range(-90, 90, 3):\n                for lon in range(-180, 180, 7):\n                    _ = encode(lat, lon, prec)\n                    i += 1\n            return i\n\n        i = _t()  # prime\n        n =  10\n        t =  timeit(_t, number=n) / (i * n)\n        printf('%s %.3f usec, %s', f, t * 1e6, _versions())\n\n# % python3.12 -m pygeodesy.geohash\n# encode 10.145 usec, pygeodesy 24.8.4 Python 3.12.4 64bit arm64 macOS 14.5\n# infer 14.780 usec, pygeodesy 24.8.4 Python 3.12.4 64bit arm64 macOS 14.5\n# or about 6.56 and 74.12 times faster than pygeodesy 24.7.24 and older:\n# encode 66.524 usec, pygeodesy 24.7.24 Python 3.12.4 64bit arm64 macOS 14.5\n# infer 1095.386 usec, pygeodesy 24.7.24 Python 3.12.4 64bit arm64 macOS 14.5\n\n# **) MIT License\n#\n# Copyright (C) 2016-2026 -- mrJean1 at Gmail -- All Rights Reserved.\n#\n# Permission is hereby granted, free of charge, to any person obtaining a\n# copy of this software and associated documentation files (the \"Software\"),\n# to deal in the Software without restriction, including without limitation\n# the rights to use, copy, modify, merge, publish, distribute, sublicense,\n# and/or sell copies of the Software, and to permit persons to whom the\n# Software is furnished to do so, subject to the following conditions:\n#\n# The above copyright notice and this permission notice shall be included\n# in all copies or substantial portions of the Software.\n#\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL\n# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR\n# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\n# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n# OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "pygeodesy/geoids.py",
    "content": "\n# -*- coding: utf-8 -*-\n\nu'''Geoid models and geoid height interpolations.\n\nClasses L{GeoidEGM96}, L{GeoidG2012B}, L{GeoidKarney} and L{GeoidPGM} to\ninterpolate the height of various U{geoid<https://WikiPedia.org/wiki/Geoid>}s\nat C{LatLon} locations or separate lat-/longitudes using various interpolation\nmethods and C{geoid} model files.\n\nL{GeoidKarney} is a transcoding of I{Charles Karney}'s C++ class U{Geoid\n<https://GeographicLib.SourceForge.io/C++/doc/geoid.html>} to pure Python.\n\nThe L{GeoidEGM96}, L{GeoidG2012B} and L{GeoidPGM} interpolators both depend on\nU{scipy<https://SciPy.org>} and U{numpy<https://PyPI.org/project/numpy>} and\nrequire those packages to be installed.\n\nIn addition, each geoid interpolator needs C{grid knots} (down)loaded from\na C{geoid} model file, I{specific to the interpolator}.  More details below\nand in the documentation of the interpolator class.  For each interpolator,\nthere are several interpolation choices, like I{linear}, I{cubic}, etc.\n\nTypical usage\n=============\n\n1. Choose an interpolator class L{GeoidEGM96}, L{GeoidG2012B}, L{GeoidKarney}\nor L{GeoidPGM} and download a C{geoid} model file, containing locations with\nknown heights also referred to as the C{grid knots}.  See the documentation of\nthe interpolator class for references to available C{grid} models.\n\nC{>>> from pygeodesy import GeoidEGM96 as GeoidXyz  # or GeoidG2012B, -Karney or -PGM}\n\n2. Instantiate an interpolator with the C{geoid} model file and use keyword\narguments to select different interpolation options\n\nC{>>> ginterpolator = GeoidXyz(geoid_model_file, **options)}\n\n3. Get the interpolated geoid height of C{LatLon} location(s) with\n\nC{>>> ll = LatLon(1, 2, ...)}\n\nC{>>> h = ginterpolator(ll)}\n\nor\n\nC{>>> h1, h2, h3, ... = ginterpolator(ll1, ll2, ll3, ...)}\n\nor a list, tuple, generator, etc. of C{LatLon}s\n\nC{>>> hs = ginterpolator(lls)}\n\n4. For separate lat- and longitudes invoke the C{height} method as\n\nC{>>> h = ginterpolator.height(lat, lon)}\n\nor as 2 lists, 2 tuples, etc.\n\nC{>>> hs = ginterpolator.height(lats, lons)}\n\nor for several positionals use the C{height_} method\n\nC{>>> h1, h2, ... = ginterpolator.height_(lat1, lon1, lat2, lon2, ...)}\n\n5. An example is in U{issue #64<https://GitHub.com/mrJean1/PyGeodesy/issues/64>},\ncourtesy of SBFRF.\n\n@note: Classes L{GeoidEGM96}, L{GeoidG2012B} and L{GeoidPGM} require both U{numpy\n       <https://PyPI.org/project/numpy>} and U{scipy<https://PyPI.org/project/scipy>}\n       to be installed.\n\n@note: Errors from C{scipy} are raised as L{SciPyError}s.  Warnings issued by C{scipy} can\n       be thrown as L{SciPyWarning} exceptions, provided Python C{warnings} are filtered\n       accordingly, see L{SciPyWarning}.\n\n@see: I{Karney}'s U{GeographicLib<https://GeographicLib.SourceForge.io/C++/doc/index.html>},\n      U{Geoid height<https://GeographicLib.SourceForge.io/C++/doc/geoid.html>} and U{Installing\n      the Geoid datasets<https://GeographicLib.SourceForge.io/C++/doc/geoid.html#geoidinst>},\n      World Geodetic System 1984 (WG84) and U{Earth Gravitational Model 96 (EGM96) Data and\n      Apps<https://earth-info.NGA.mil/index.php?dir=wgs84&action=wgs84>},\n      U{SciPy<https://docs.SciPy.org/doc/scipy/reference/interpolate.html>} interpolation\n      U{RectBivariateSpline<https://docs.SciPy.org/doc/scipy/reference/generated/scipy.interpolate.\n      RectBivariateSpline.html>}, U{bisplrep/-ev<https://docs.scipy.org/doc/scipy/reference/generated/\n      scipy.interpolate.bisplrep.html>} and U{interp2d<https://docs.SciPy.org/doc/scipy/reference/\n      generated/scipy.interpolate.interp2d.html>}, functions L{elevations.elevation2} and\n      L{elevations.geoidHeight2}, U{I{Ellispoid vs Orthometric Elevations}<https://www.YouTube.com/\n      watch?v=dX6a6kCk3Po>} and U{6.22.1 Avoiding Pitfalls Related to Ellipsoid Height and Height\n      Above Mean Sea Level<https://Wiki.ROS.org/mavros>}.\n'''\n# make sure int/int division yields float quotient, see .basics\nfrom __future__ import division as _; del _  # noqa: E702 ;\n\nfrom pygeodesy.basics import _isin, len2, min2, isodd, _splituple\nfrom pygeodesy.constants import EPS, _float as _F, _1_0, _N_90_0, _180_0, \\\n                                     _N_180_0, _360_0\nfrom pygeodesy.datums import Datums, _ellipsoidal_datum, _WGS84\n# from pygeodesy.dms import parseDMS2  # _MODS\nfrom pygeodesy.errors import _incompatible, LenError, RangeError, _SciPyIssue, \\\n                             _xkwds_pop2\nfrom pygeodesy.fmath import favg, frange,  Fsum\n# from pygoedesy.formy import heightOrthometric  # _MODS\n# from pygeodesy.fsums import Fsum  # from .fmath\nfrom pygeodesy.heights import _as_llis2, _ascalar, _HeightBase, HeightError,  _Wrap\n# from pygeodesy.internals import typename, _version2  # _MODS\nfrom pygeodesy.interns import NN, _COLONSPACE_, _COMMASPACE_, _DMAIN_, _E_, \\\n                             _height_, _in_, _kind_, _lat_, _lon_, _mean_, _N_, \\\n                             _n_a_, _numpy_, _on_, _outside_, _S_, _s_, _scipy_, \\\n                             _SPACE_, _stdev_, _tbd_, _W_, _width_, _4_\nfrom pygeodesy.lazily import _ALL_DOCS, _ALL_LAZY, _ALL_MODS as _MODS, _FOR_DOCS\nfrom pygeodesy.named import _name__, _Named, _NamedTuple\n# from pygeodesy.namedTuples import LatLon3Tuple  # _MODS\nfrom pygeodesy.props import Property_RO, property_RO, property_ROver\nfrom pygeodesy.streprs import attrs, Fmt, fstr, pairs\nfrom pygeodesy.units import Height, Int_, Lat, Lon\n# from pygeodesy.utily import _Wrap  # from .heights\n\nfrom math import floor as _floor\n# import os as _os  # _MODS\n# import os.path  # _os.path\nfrom struct import calcsize as _calcsize, unpack as _unpack\ntry:\n    from StringIO import StringIO as _BytesIO  # reads bytes\n    _ub2str = str  # PYCHOK convert bytes to str for egm*.pgm text\n\nexcept ImportError:  # Python 3+\n    from io import BytesIO as _BytesIO  # PYCHOK expected\n    from pygeodesy.basics import ub2str as _ub2str\n\n__all__ = _ALL_LAZY.geoids\n__version__ = '26.02.02'\n\n_assert_    = 'assert'\n_bHASH_     = b'#'\n_endian_    = 'endian'\n_format_    = '%s %r'\n_header_    = 'header'\n_intCs      = {}  # cache int value, del below\n_lli_       = 'lli'\n_os         = _MODS.os\n_rb_        = 'rb'\n_supported_ = 'supported'\n\nif __debug__:\n    from pygeodesy.fmath import Fdot as _Dotf, Fhorner as _Hornerf\n\nelse:  # -OO ... runs GeoidKarney 8+X faster (w/o Fwelford)\n    from pygeodesy.fsums import _fsum\n    from operator import mul as _mul\n\n    class _GKsum(Fsum):  # for GeoidKarney only\n\n        def __iadd__(self, other):\n            xs = other._ps if isinstance(other, _GKsum) else (other,)\n            self._ps_acc(self._ps, xs, up=False)\n            return self\n\n        def __imul__(self, x):\n            self._ps[:] = (x * p for p in self._ps)\n            return self\n\n        fmul = __imul__  # like .fsums.Fsum\n\n        def fsum(self):  # PYCHOK signature\n            return _fsum(self._ps)\n\n    class _Dotf(_GKsum):  # PYCHOK redef\n        '''Fast precision dot product M{sum(a[i] * b[i] for i=0..len(a))}\n           but for C{float} C{a} and C{b} only.\n        '''\n        def __init__(self, a, *b):\n            self._ps = self._ps_acc([], map(_mul, a, b), up=False)\n\n    class _Hornerf(_GKsum):  # PYCHOK redef\n        '''Fast polynomial evaluation M{sum(cs[i] * x**i for i=0..len(cs))}\n           but for C{float} C{x} and C{cs} and C{incx=True} only.\n        '''\n        def __init__(self, x, *cs):  # incx=True\n            self._ps = []\n            for c in reversed(cs):  # multiply-accumulate\n                self *= x  # ps[:] = (x * p for p in ps)\n                self += c  # self._ps_acc(ps, (c,), up=False)\n\n\nclass GeoidError(HeightError):\n    '''Geoid interpolator C{Geoid...} or interpolation issue.\n    '''\n    pass\n\n\nclass _GeoidBase(_HeightBase):\n    '''(INTERNAL) Base class for C{Geoid...}s.\n    '''\n#   _center   =  None   # (lat, lon, height)\n    _cropped  =  None\n#   _datum    = _WGS84  # from _HeightBase\n    _egm      =  None   # open C{egm*.pgm} geoid file\n    _endian   = _tbd_\n    _Error    =  GeoidError  # in ._HeightBase._as_lls, ...\n    _geoid    = _n_a_\n    _hs_y_x   =  None   # numpy 2darray, row-major order\n    _iscipy   =  True   # scipy or Karney's interpolation\n    _kind     =  3      # order for interp2d, RectBivariateSpline\n#   _kmin     =  2      # min number of knots\n    _knots    =  0      # nlat * nlon\n    _mean     =  None   # fixed in GeoidKarney\n    _nBytes   =  0      # numpy size in bytes, float64\n    _pgm      =  None   # PGM attributes, C{_PGM} or C{None}\n    _sizeB    =  0      # geoid file size in bytes\n    _smooth   =  0      # used only for RectBivariateSpline\n    _stdev    =  None   # fixed in GeoidKarney\n    _u2B      =  0      # np.itemsize or undefined\n    _yx_hits  =  None   # cache hits, ala Karney's\n\n#   _lat_d  = _0_0  # increment, +tive\n#   _lat_lo = _0_0  # lower lat, south\n#   _lat_hi = _0_0  # upper lat, noth\n#   _lon_d  = _0_0  # increment, +tive\n#   _lon_lo = _0_0  # left lon, west\n#   _lon_hi = _0_0  # right lon, east\n#   _lon_of = _0_0  # forward lon offset\n#   _lon_og = _0_0  # reverse lon offset\n\n    def __init__(self, hs, p):\n        '''(INTERNAL) Set up the grid axes, the C{SciPy} interpolator and\n           several internal geoid attributes.\n\n           @arg hs: Grid knots with known height (C{numpy 2darray}).\n           @arg p: The C{slat, wlon, nlat, nlon, dlat, dlon} and other\n                   geoid parameters (C{INTERNAL}).\n        '''\n        spi = self.scipy_interpolate\n        # for 2d scipy.interpolate.interp2d(xs, ys, hs, ...) and\n        # scipy.interpolate.RectBivariateSpline(ys, xs, hs, ...)\n        # require the shape of hs to be (len(ys), len(xs)), note\n        # the different (xs, ys, ...) and (ys, xs, ...) orders\n        if (p.nlat, p.nlon) != hs.shape:\n            raise GeoidError(shape=hs.shape, txt=_incompatible((p.nlat, p.nlon)))\n\n        # both axes and bounding box\n        ys, self._lat_d = self._gaxis2(p.slat, p.dlat, p.nlat, _lat_ + _s_)\n        xs, self._lon_d = self._gaxis2(p.wlon, p.dlon, p.nlon, _lon_ + _s_)\n\n        bb = ys[0], ys[-1], xs[0], xs[-1] + p.dlon  # fudge lon_hi\n        # geoid grids are typically stored in row-major order, some\n        # with rows (90..-90) reversed and columns (0..360) wrapped\n        # to Easten longitude, 0 <= east < 180 and 180 <= west < 360\n        k = self.kind\n        if k in self._k2interp2d:  # see _HeightBase\n            self._interp2d(xs, ys, hs, kind=k)\n        else:  # XXX order ys and xs, see HeightLSQBiSpline\n            k = self._kxky(k)\n            self._ev = spi.RectBivariateSpline(ys, xs, hs, bbox=bb, ky=k, kx=k,\n                                                           s=self._smooth).ev\n        self._hs_y_x = hs  # numpy 2darray, row-major\n        self._nBytes = hs.nbytes  # numpy size in bytes\n        self._knots  = p.knots  # grid knots == len(hs)\n        self._lon_of =     float(p.flon)  # forward offset\n        self._lon_og = g = float(p.glon)  # reverse offset\n        # shrink the bounding box by 1 unit on every side:\n        # +self._lat_d, -self._lat_d, +self._lon_d, -self._lon_d\n        self._lat_lo, \\\n        self._lat_hi, \\\n        self._lon_lo, \\\n        self._lon_hi  = map(float, bb)\n        self._lon_lo -= g\n        self._lon_hi -= g\n\n    def __call__(self, *llis, **wrap_H):\n        '''Interpolate the geoid (or orthometric) height for one or more locations.\n\n           @arg llis: One or several locations (each C{LatLon}), all positional.\n           @kwarg wrap_H: Keyword arguments C{B{wrap}=False} (C{bool}) and\n                       C{B{H}=False} (C{bool}).  Use C{B{wrap}=True} to wrap\n                       or I{normalize} all B{C{llis}} locations.  If C{B{H}\n                       is True}, return the I{orthometric} height instead of\n                       the I{geoid} height at each location.\n\n           @return: A single geoid (or orthometric) height (C{float}) or\n                    a list or tuple of geoid (or orthometric) heights (each\n                    C{float}).\n\n           @raise GeoidError: Insufficient number of B{C{llis}}, an invalid\n                              B{C{lli}} or the C{egm*.pgm} geoid file is closed.\n\n           @raise RangeError: An B{C{lli}} is outside this geoid's lat- or\n                              longitude range.\n\n           @raise SciPyError: A C{scipy} issue.\n\n           @raise SciPyWarning: A C{scipy} warning as exception.\n\n           @note: To obtain I{orthometric} heights, each B{C{llis}} location\n                  must have an ellipsoid C{height} or C{h} attribute, otherwise\n                  C{height=0} is used.\n\n           @see: Function L{pygeodesy.heightOrthometric}.\n        '''\n        return self._called(llis, **wrap_H)\n\n    def __enter__(self):\n        '''Open context.\n        '''\n        return self\n\n    def __exit__(self, *unused):  # PYCHOK exc_type, exc_value, exc_traceback)\n        '''Close context.\n        '''\n        self.close()\n        # return None  # XXX False\n\n    def __repr__(self):\n        return self.toStr()\n\n    def __str__(self):\n        return Fmt.PAREN(self.classname, repr(self.name))\n\n    def _called(self, llis, wrap=False, H=False):\n        # handle __call__\n        _H = self._heightOrthometric if H else None\n        _as, llis = _as_llis2(llis, Error=GeoidError)\n        _w, hs    = _Wrap._latlonop(wrap), []\n        _h, _a    =  self._hGeoid, hs.append\n        try:\n            for i, lli in enumerate(llis):\n                N = _h(*_w(lli.lat, lli.lon))\n                # orthometric or geoid height\n                _a(_H(lli, N) if _H else N)\n            return _as(hs)\n        except (GeoidError, RangeError) as x:\n            # XXX avoid str(LatLon()) degree symbols\n            n = _lli_ if _as is _ascalar else Fmt.INDEX(llis=i)\n            t = fstr((lli.lat, lli.lon), strepr=repr)\n            raise type(x)(n, t, wrap=wrap, H=H, cause=x)\n        except Exception as x:\n            if self._iscipy and self.scipy:\n                raise _SciPyIssue(x, self._ev_name)\n            else:\n                raise\n\n    @Property_RO\n    def _center(self):\n        '''(INTERNAL) Cache for method L{center}.\n        '''\n        return self._llh3(favg(self._lat_lo, self._lat_hi),\n                          favg(self._lon_lo, self._lon_hi))\n\n    def center(self, LatLon=None):\n        '''Return the center location and height of this geoid.\n\n           @kwarg LatLon: Optional class to return the location and height\n                          (C{LatLon}) or C{None}.\n\n           @return: If C{B{LatLon} is None}, a L{LatLon3Tuple}C{(lat, lon,\n                    height)} otherwise a B{C{LatLon}} instance with the lat-,\n                    longitude and geoid height of the center grid location.\n        '''\n        return self._llh3LL(self._center, LatLon)\n\n    def close(self):\n        '''Close the C{egm*.pgm} geoid file if open (and applicable).\n        '''\n        if not self.closed:\n            self._egm.close()\n            self._egm = None\n\n    @property_RO\n    def closed(self):\n        '''Get the C{egm*.pgm} geoid file status.\n        '''\n        return self._egm is None\n\n    @Property_RO\n    def cropped(self):\n        '''Is geoid cropped (C{bool} or C{None} if crop not supported).\n        '''\n        return self._cropped\n\n    @Property_RO\n    def dtype(self):\n        '''Get the grid C{scipy} U{dtype<https://docs.SciPy.org/doc/numpy/\n           reference/generated/numpy.ndarray.dtype.html>} (C{numpy.dtype}).\n        '''\n        return self._hs_y_x.dtype\n\n    @Property_RO\n    def endian(self):\n        '''Get the geoid endianess and U{dtype<https://docs.SciPy.org/\n           doc/numpy/reference/generated/numpy.dtype.html>} (C{str}).\n        '''\n        return self._endian\n\n    def _ev(self, y, x):  # PYCHOK overwritten with .RectBivariateSpline.ev\n        # see methods _HeightBase._ev and -._interp2d\n        return self._ev2d(x, y)  # (y, x) flipped!\n\n    def _gaxis2(self, lo, d, n, name):\n        # build grid axis, hi = lo + (n - 1) * d\n        m, a = len2(frange(lo, n, d))\n        if m != n:\n            raise LenError(type(self), grid=m, **{name: n})\n        if d < 0:\n            d, a = -d, list(reversed(a))\n        a = self.numpy.array(a)\n        m, i = min2(*map(float, a[1:] - a[:-1]))\n        if m < EPS:  # non-increasing axis\n            i = Fmt.INDEX(name, i + 1)\n            raise GeoidError(i, m, txt_not_='increasing')\n        return a, d\n\n    def _g2ll2(self, lat, lon):  # PYCHOK no cover\n        '''(INTERNAL) I{Must be overloaded}.'''\n        self._notOverloaded(lat, lon)\n\n    def _gyx2g2(self, y, x):\n        # convert grid (y, x) indices to grid (lat, lon)\n        return ((self._lat_lo                + self._lat_d * y),\n                (self._lon_lo + self._lon_of + self._lon_d * x))\n\n    def height(self, lats, lons, **wrap):\n        '''Interpolate the geoid height for one or several lat-/longitudes.\n\n           @arg lats: Latitude or latitudes (each C{degrees}).\n           @arg lons: Longitude or longitudes (each C{degrees}).\n           @kwarg wrap: Use C{B{wrap}=True} to wrap or I{normalize} all\n                        B{C{lats}} and B{C{lons}}.\n\n           @return: A single geoid height (C{float}) or a list of geoid\n                    heights (each C{float}).\n\n           @raise GeoidError: Insufficient or unequal number of B{C{lats}}\n                              and B{C{lons}}.\n\n           @raise RangeError: A B{C{lat}} or B{C{lon}} is outside this geoid's\n                              lat- or longitude range.\n\n           @raise SciPyError: A C{scipy} issue.\n\n           @raise SciPyWarning: A C{scipy} warning as exception.\n        '''\n        return _HeightBase.height(self, lats, lons, **wrap)\n\n    def height_(self, *latlons, **wrap):\n        '''Interpolate the geoid height for each M{(latlons[i], latlons[i+1])\n           pair for i in range(0, len(latlons), B{2})}.\n\n           @arg latlons: Alternating lat-/longitude pairs (each C{degrees}),\n                         all positional.\n\n           @see: Method L{height} for further details.\n\n           @return: A tuple of geoid heights (each C{float}).\n        '''\n        lls = tuple(self._as_lls(latlons[0::2], *latlons[1::2]))\n        return self._called(lls, **wrap)\n\n    @property_ROver\n    def _heightOrthometric(self):\n        return _MODS.formy.heightOrthometric  # overwrite property_ROver\n\n    def _hGeoid(self, lat, lon):\n        out = self.outside(lat, lon)\n        if out:  # XXX avoid str(LatLon()) degree symbols\n            t = fstr((lat, lon), strepr=repr)\n            raise RangeError(lli=t, txt=_SPACE_(_outside_, _on_, out))\n        return float(self._ev(*self._ll2g2(lat, lon)))\n\n    @Property_RO\n    def _highest(self):\n        '''(INTERNAL) Cache for C{.highest}.\n        '''\n        return self._LL3T(self._llh3minmax(True), name__=self.highest)\n\n    def highest(self, LatLon=None, **unused):\n        '''Return the location and largest height of this geoid.\n\n           @kwarg LatLon: Optional class to return the location and height\n                          (C{LatLon}) or C{None}.\n\n           @return: If C{B{LatLon} is None}, a L{LatLon3Tuple}C{(lat, lon,\n                    height)} otherwise a B{C{LatLon}} instance with the lat-,\n                    longitude and geoid height of the highest grid location.\n        '''\n        return self._llh3LL(self._highest, LatLon)\n\n    @Property_RO\n    def hits(self):\n        '''Get the number of cache hits (C{int} or C{None}).\n        '''\n        return self._yx_hits\n\n    @Property_RO\n    def kind(self):\n        '''Get the interpolator kind and order (C{int}).\n        '''\n        return self._kind\n\n    @Property_RO\n    def knots(self):\n        '''Get the number of grid knots (C{int}).\n        '''\n        return self._knots\n\n    def _ll2g2(self, lat, lon):  # PYCHOK no cover\n        '''(INTERNAL) I{Must be overloaded}.'''\n        self._notOverloaded(lat, lon)\n\n    @property_ROver\n    def _LL3T(self):\n        '''(INTERNAL) Get L{LatLon3Tuple}, I{once}.\n        '''\n        return _MODS.namedTuples.LatLon3Tuple  # overwrite property_ROver\n\n    def _llh3(self, lat, lon):\n        return self._LL3T(lat, lon, self._hGeoid(lat, lon), name=self.name)\n\n    def _llh3LL(self, llh, LatLon):\n        return llh if LatLon is None else self._xnamed(LatLon(*llh))\n\n    def _llh3minmax(self, highest, *unused):\n        hs, np = self._hs_y_x, self.numpy\n        # <https://docs.SciPy.org/doc/numpy/reference/generated/\n        #         numpy.argmin.html#numpy.argmin>\n        arg  = np.argmax if highest else np.argmin\n        y, x = np.unravel_index(arg(hs, axis=None), hs.shape)\n        return self._g2ll2(*self._gyx2g2(y, x)) + (float(hs[y, x]),)\n\n    def _load(self, g, dtype=float, n=-1, offset=0, **sep):  # sep=NN\n        # numpy.fromfile, like .frombuffer\n        g.seek(offset, _os.SEEK_SET)\n        return self.numpy.fromfile(g, dtype, count=n, **sep)\n\n    @Property_RO\n    def _lowerleft(self):\n        '''(INTERNAL) Cache for C{.lowerleft}.\n        '''\n        return self._llh3(self._lat_lo, self._lon_lo)\n\n    def lowerleft(self, LatLon=None):\n        '''Return the lower-left location and height of this geoid.\n\n           @kwarg LatLon: Optional class to return the location\n                          (C{LatLon}) and height or C{None}.\n\n           @return: If C{B{LatLon} is None}, a L{LatLon3Tuple}C{(lat, lon, height)}\n                    otherwise a B{C{LatLon}} instance with the lat-, longitude and\n                    geoid height of the lower-left, SW grid corner.\n        '''\n        return self._llh3LL(self._lowerleft, LatLon)\n\n    @Property_RO\n    def _loweright(self):\n        '''(INTERNAL) Cache for C{.loweright}.\n        '''\n        return self._llh3(self._lat_lo, self._lon_hi)\n\n    def loweright(self, LatLon=None):\n        '''Return the lower-right location and height of this geoid.\n\n           @kwarg LatLon: Optional class to return the location and height\n                          (C{LatLon}) or C{None}.\n\n           @return: If C{B{LatLon} is None}, a L{LatLon3Tuple}C{(lat, lon, height)}\n                    otherwise a B{C{LatLon}} instance with the lat-, longitude and\n                    geoid height of the lower-right, SE grid corner.\n        '''\n        return self._llh3LL(self._loweright, LatLon)\n\n    lowerright = loweright  # synonymous\n\n    @Property_RO\n    def _lowest(self):\n        '''(INTERNAL) Cache for C{.lowest}.\n        '''\n        return self._LL3T(self._llh3minmax(False), name__=self.lowest)\n\n    def lowest(self, LatLon=None, **unused):\n        '''Return the location and lowest height of this geoid.\n\n           @kwarg LatLon: Optional class to return the location and height\n                          (C{LatLon}) or C{None}.\n\n           @return: If C{B{LatLon} is None}, a L{LatLon3Tuple}C{(lat, lon,\n                    height)} otherwise a B{C{LatLon}} instance with the lat-,\n                    longitude and geoid height of the lowest grid location.\n        '''\n        return self._llh3LL(self._lowest, LatLon)\n\n    @Property_RO\n    def mean(self):\n        '''Get the mean of this geoid's heights (C{float}).\n        '''\n        if self._mean is None:  # see GeoidKarney\n            self._mean = float(self.numpy.mean(self._hs_y_x))\n        return self._mean\n\n    @property_RO\n    def name(self):\n        '''Get the name of this geoid (C{str}).\n        '''\n        return _HeightBase.name.fget(self) or self._geoid  # recursion\n\n    @Property_RO\n    def nBytes(self):\n        '''Get the grid in-memory size in bytes (C{int}).\n        '''\n        return self._nBytes\n\n    def _open(self, geoid, datum, kind, name, smooth):\n        # open the geoid file\n        try:\n            self._geoid = _os.path.basename(geoid)\n            self._sizeB = _os.path.getsize(geoid)\n            g = open(geoid, _rb_)\n        except (IOError, OSError) as x:\n            raise GeoidError(geoid=geoid, cause=x)\n\n        if not _isin(datum, None, self._datum):\n            self._datum = _ellipsoidal_datum(datum, name=name)\n        self._kind = int(kind)\n        if name:\n            _HeightBase.name.fset(self, name)  # rename\n        if smooth:\n            self._smooth = Int_(smooth=smooth, Error=GeoidError, low=0)\n\n        return g\n\n    def outside(self, lat, lon):\n        '''Check whether a location is outside this geoid's lat-/longitude\n           or crop range.\n\n           @arg lat: The latitude (C{degrees}).\n           @arg lon: The longitude (C{degrees}).\n\n           @return: A 1- or 2-character C{str} if outside, an empty C{str} otherwise.\n        '''\n        lat = _S_ if lat < self._lat_lo else (_N_ if lat > self._lat_hi else NN)\n        lon = _W_ if lon < self._lon_lo else (_E_ if lon > self._lon_hi else NN)\n        return NN(lat, lon) if lat and lon else (lat or lon)\n\n    @Property_RO\n    def pgm(self):\n        '''Get the PGM attributes (C{_PGM} or C{None} if not available/applicable).\n        '''\n        return self._pgm\n\n    @Property_RO\n    def sizeB(self):\n        '''Get the geoid grid file size in bytes (C{int}).\n        '''\n        return self._sizeB\n\n    @Property_RO\n    def smooth(self):\n        '''Get the C{RectBivariateSpline} smoothing (C{int}).\n        '''\n        return self._smooth\n\n    @Property_RO\n    def stdev(self):\n        '''Get the standard deviation of this geoid's heights (C{float}) or C{None}.\n        '''\n        if self._stdev is None:  # see GeoidKarney\n            self._stdev = float(self.numpy.std(self._hs_y_x))\n        return self._stdev\n\n    def _swne(self, crop):\n        # crop box to 4-tuple (s, w, n, e)\n        try:\n            if len(crop) == 2:\n                try:  # sw, ne LatLons\n                    swne = (crop[0].lat, crop[0].lon,\n                            crop[1].lat, crop[1].lon)\n                except AttributeError:  # (s, w), (n, e)\n                    swne = tuple(crop[0]) + tuple(crop[1])\n            else:  # (s, w, n, e)\n                swne = crop\n            if len(swne) == 4:\n                s, w, n, e = map(float, swne)\n                if _N_90_0 <= s <= (n - _1_0) <=  89.0 and \\\n                  _N_180_0 <= w <= (e - _1_0) <= 179.0:\n                    return s, w, n, e\n        except (IndexError, TypeError, ValueError):\n            pass\n        raise GeoidError(crop=crop)\n\n    def toStr(self, prec=3, sep=_COMMASPACE_):  # PYCHOK signature\n        '''This geoid and all geoid attributes as a string.\n\n           @kwarg prec: Number of decimal digits (0..9 or C{None} for\n                        default).  Trailing zero decimals are stripped\n                        for B{C{prec}} values of 1 and above, but kept\n                        for negative B{C{prec}} values.\n           @kwarg sep: Separator to join (C{str}).\n\n           @return: Geoid name and attributes (C{str}).\n        '''\n        s =  1 if self.kind < 0 else 2\n        t = _MODS.internals.typename\n        t =  tuple(Fmt.PAREN(t(m), fstr(m(), prec=prec)) for m in\n                                  (self.lowerleft, self.upperright,\n                                   self.center,\n                                   self.highest, self.lowest)) + \\\n             attrs( _mean_, _stdev_,           prec=prec, Nones=False) + \\\n             attrs((_kind_, 'smooth')[:s],     prec=prec, Nones=False) + \\\n             attrs( 'cropped', 'dtype', _endian_, 'hits', 'knots', 'nBytes',\n                    'sizeB', _scipy_, _numpy_, prec=prec, Nones=False)\n        return _COLONSPACE_(self, sep.join(t))\n\n    @Property_RO\n    def u2B(self):\n        '''Get the PGM itemsize in bytes (C{int}).\n        '''\n        return self._u2B\n\n    @Property_RO\n    def _upperleft(self):\n        '''(INTERNAL) Cache for C{.upperleft}.\n        '''\n        return self._llh3(self._lat_hi, self._lon_lo)\n\n    def upperleft(self, LatLon=None):\n        '''Return the upper-left location and height of this geoid.\n\n           @kwarg LatLon: Optional class to return the location and height\n                          (C{LatLon}) or C{None}.\n\n           @return: If C{B{LatLon} is None}, a L{LatLon3Tuple}C{(lat, lon, height)}\n                    otherwise a B{C{LatLon}} instance with the lat-, longitude and\n                    geoid height of the upper-left, NW grid corner.\n        '''\n        return self._llh3LL(self._upperleft, LatLon)\n\n    @Property_RO\n    def _upperright(self):\n        '''(INTERNAL) Cache for C{.upperright}.\n        '''\n        return self._llh3(self._lat_hi, self._lon_hi)\n\n    def upperright(self, LatLon=None):\n        '''Return the upper-right location and height of this geoid.\n\n           @kwarg LatLon: Optional class to return the location and height\n                          (C{LatLon}) or C{None}.\n\n           @return: If C{B{LatLon} is None}, a L{LatLon3Tuple}C{(lat, lon, height)}\n                    otherwise a B{C{LatLon}} instance with the lat-, longitude and\n                    geoid height of the upper-right, NE grid corner.\n        '''\n        return self._llh3LL(self._upperright, LatLon)\n\n\nclass GeoidEGM96(_GeoidBase):\n    '''Geoid height interpolator for the EGM96 U{15 Minute Interpolation Grid<https://earth-info.NGA.mil>}\n       based on C{SciPy} interpolation U{RectBivariateSpline<https://docs.SciPy.org/doc/scipy/reference/\n       generated/scipy.interpolate.RectBivariateSpline.html>}, U{interp2d<https://docs.SciPy.org/doc/scipy/\n       reference/generated/scipy.interpolate.interp2d.html>} or U{bisplrep/-ev<https://docs.scipy.org/doc/\n       scipy/reference/generated/scipy.interpolate.bisplrep.html>}.\n\n       Use only the C{WW15MGH.GRD} file, unzipped from the EGM96 U{15 Minute Interpolation Grid\n       <https://earth-info.NGA.mil/index.php?dir=wgs84&action=wgs84>} download.\n    '''\n    def __init__(self, EGM96_grd, datum=_WGS84, kind=3, smooth=0, **name_crop):\n        '''New L{GeoidEGM96} interpolator.\n\n           @arg EGM96_grd: An C{EGM96_grd} grid file name (C{.GRD}).\n           @kwarg datum: Optional grid datum (L{Datum}, L{Ellipsoid}, L{Ellipsoid2} or L{a_f2Tuple}),\n                         overriding C{WGS84}.\n           @kwarg kind: C{scipy.interpolate} order (C{int}), use 1..5 for U{RectBivariateSpline\n                        <https://docs.SciPy.org/doc/scipy/reference/generated/scipy.interpolate.\n                        RectBivariateSpline.html>} or -1, -3 or -5 for U{bisplrep/-ev<https://\n                        docs.SciPy.org/doc/scipy/reference/generated/scipy.interpolate.bisplrep.html>}\n                        or U{interp2d<https://docs.SciPy.org/doc/scipy/reference/generated/scipy.\n                        interpolate.interp2d.html>} C{linear}, C{cubic} respectively C{quintic},\n                        see note for more details.\n           @kwarg smooth: Smoothing factor for C{B{kind}=1..5} only (C{int}).\n           @kwarg name_crop: Optional geoid C{B{name}=NN} (C{str}) and UNSUPPORTED keyword argument\n                       C{B{crop}=None}.\n\n           @raise GeoidError: Invalid B{C{crop}}, B{C{kind}} or B{C{smooth}} or a ECM96 grid file\n                              B{C{ECM96_grd}} issue.\n\n           @raise ImportError: Package C{numpy} or C{scipy} not found or not installed.\n\n           @raise LenError: Grid file B{C{EGM96_grd}} axis mismatch.\n\n           @raise SciPyError: A C{scipy} issue.\n\n           @raise SciPyWarning: A C{scipy} warning as exception.\n\n           @raise TypeError: Invalid B{C{datum}}.\n\n           @note: Specify C{B{kind}=-1, -3 or -5} to use C{scipy.interpolate.interp2d}\n                  before or C{scipy.interpolate.bisplrep/-ev} since C{Scipy} version 1.14.\n        '''\n        crop, name = _xkwds_pop2(name_crop, crop=None)\n        if crop is not None:\n            raise GeoidError(crop=crop, txt_not_=_supported_)\n\n        g = self._open(EGM96_grd, datum, kind, _name__(**name), smooth)\n        _ = self.numpy  # import numpy for .fromfile, .reshape\n\n        try:\n            p, hs = _Gpars(), self._load(g, sep=_SPACE_)  # text\n            p.slat, n, p.wlon, e, p.dlat, p.dlon = hs[:6]  # n-s, 0-E\n            p.nlat  =  int((n - p.slat) / p.dlat) + 1  # include S\n            p.nlon  =  int((e - p.wlon) / p.dlon) + 1  # include W\n            p.knots =  p.nlat * p.nlon  # inverted lats N downto S\n            p.glon  = _180_0  # Eastern lons 0-360\n            hs = hs[6:].reshape(p.nlat, p.nlon)\n            _GeoidBase.__init__(self, hs, p)\n\n        except Exception as x:\n            raise _SciPyIssue(x, _in_, repr(EGM96_grd))\n        finally:\n            g.close()\n\n    def _g2ll2(self, lat, lon):\n        # convert grid (lat, lon) to earth (lat, lon)\n        return -lat, _lonE2lon(lon)  # invert lat\n\n    def _ll2g2(self, lat, lon):\n        # convert earth (lat, lon) to grid (lat, lon)\n        return -lat, _lon2lonE(lon)  # invert lat\n\n    if _FOR_DOCS:\n        __call__ = _GeoidBase.__call__\n        height   = _GeoidBase.height\n\n\nclass GeoidG2012B(_GeoidBase):\n    '''Geoid height interpolator for U{GEOID12B Model\n       <https://Geodesy.NOAA.gov/GEOID/GEOID12B/>} grids U{CONUS\n       <https://Geodesy.NOAA.gov/GEOID/GEOID12B/GEOID12B_CONUS.shtml>},\n       U{Alaska<https://Geodesy.NOAA.gov/GEOID/GEOID12B/GEOID12B_AK.shtml>},\n       U{Hawaii<https://Geodesy.NOAA.gov/GEOID/GEOID12B/GEOID12B_HI.shtml>},\n       U{Guam and Northern Mariana Islands\n       <https://Geodesy.NOAA.gov/GEOID/GEOID12B/GEOID12B_GMNI.shtml>},\n       U{Puerto Rico and U.S. Virgin Islands\n       <https://Geodesy.NOAA.gov/GEOID/GEOID12B/GEOID12B_PRVI.shtml>} and\n       U{American Samoa<https://Geodesy.NOAA.gov/GEOID/GEOID12B/GEOID12B_AS.shtml>}\n       based on C{SciPy} interpolation U{RectBivariateSpline<https://docs.SciPy.org/doc/\n       scipy/reference/generated/scipy.interpolate.RectBivariateSpline.html>}, U{interp2d\n       <https://docs.SciPy.org/doc/scipy/reference/generated/scipy.interpolate.interp2d.html>}\n       or U{bisplrep/-ev<https://docs.scipy.org/doc/scipy/reference/generated/scipy.interpolate.\n       bisplrep.html>}.\n    '''\n    _datum = Datums.NAD83\n\n    def __init__(self, g2012b_bin, datum=Datums.NAD83, kind=3, smooth=0, **name_crop):\n        '''New L{GeoidG2012B} interpolator.\n\n           @arg g2012b_bin: A C{GEOID12B} grid file name (C{.bin}, see B{note}).\n           @kwarg datum: Optional grid datum (L{Datum}, L{Ellipsoid}, L{Ellipsoid2} or\n                         L{a_f2Tuple}), overriding C{NAD83}.\n           @kwarg kind: C{scipy.interpolate} order (C{int}), use 1..5 for U{RectBivariateSpline\n                        <https://docs.SciPy.org/doc/scipy/reference/generated/scipy.interpolate.\n                        RectBivariateSpline.html>} or -1, -3 or -5 for U{bisplrep/-ev<https://\n                        docs.SciPy.org/doc/scipy/reference/generated/scipy.interpolate.bisplrep.html>}\n                        or U{interp2d<https://docs.SciPy.org/doc/scipy/reference/generated/scipy.\n                        interpolate.interp2d.html>} C{linear}, C{cubic} respectively C{quintic},\n                        see note for more details.\n           @kwarg smooth: Smoothing factor for C{B{kind}=1..5} only (C{int}).\n           @kwarg name_crop: Optional geoid C{B{name}=NN} (C{str}) and UNSUPPORTED keyword argument\n                       C{B{crop}=None}.\n\n           @raise GeoidError: Invalid B{C{crop}}, B{C{kind}} or B{C{smooth}} or a B{C{g2012b_bin}}\n                              grid file issue.\n\n           @raise ImportError: Package C{numpy} or C{scipy} not found or not installed.\n\n           @raise LenError: Grid file B{C{g2012b_bin}} axis mismatch.\n\n           @raise SciPyError: A C{scipy} issue.\n\n           @raise SciPyWarning: A C{scipy} warning as exception.\n\n           @raise TypeError: Invalid B{C{datum}}.\n\n           @note: Only use any of the C{le} (little-endian) or C{be} (big-endian) C{g2012b*.bin}\n                  I{binary} grid files.\n\n           @note: Specify C{B{kind}=-1, -3 or -5} to use C{scipy.interpolate.interp2d} I{before}\n                  or C{scipy.interpolate.bisplrep/-ev} I{since} C{Scipy} version 1.14.\n        '''\n        crop, name = _xkwds_pop2(name_crop, crop=None)\n        if crop is not None:\n            raise GeoidError(crop=crop, txt_not_=_supported_)\n\n        g = self._open(g2012b_bin, datum, kind, _name__(**name), smooth)\n        _ = self.numpy  # import numpy for ._load and\n\n        try:\n            p = _Gpars()\n            n = (self.sizeB // 4) - 11  # number of f4 heights\n            # U{numpy dtype formats are different from Python struct formats\n            # <https://docs.SciPy.org/doc/numpy-1.15.0/reference/arrays.dtypes.html>}\n            for en_ in ('<', '>'):\n                # skip 4xf8, get 3xi4\n                p.nlat, p.nlon, ien = map(int, self._load(g, en_+'i4', 3, 32))\n                if ien == 1:  # correct endian\n                    p.knots = p.nlat * p.nlon\n                    if p.knots == n and 1 < p.nlat < n \\\n                                    and 1 < p.nlon < n:\n                        self._endian = en_+'f4'\n                        break\n            else:  # couldn't validate endian\n                raise GeoidError(_endian_)\n\n            # get the first 4xf8\n            p.slat, p.wlon, p.dlat, p.dlon = map(float, self._load(g, en_+'f8', 4))\n            # read all f4 heights, ignoring the first 4xf8 and 3xi4\n            hs = self._load(g, self._endian, n, 44).reshape(p.nlat, p.nlon)\n            p.wlon -= _360_0  # western-most lon XXX _lonE2lon\n            _GeoidBase.__init__(self, hs, p)\n\n        except Exception as x:\n            raise _SciPyIssue(x, _in_, repr(g2012b_bin))\n        finally:\n            g.close()\n\n    def _g2ll2(self, lat, lon):\n        # convert grid (lat, lon) to earth (lat, lon)\n        return lat, lon\n\n    def _ll2g2(self, lat, lon):\n        # convert earth (lat, lon) to grid (lat, lon)\n        return lat, lon\n\n    if _FOR_DOCS:\n        __call__ = _GeoidBase.__call__\n        height   = _GeoidBase.height\n\n\nclass GeoidHeight5Tuple(_NamedTuple):  # .geoids.py\n    '''5-Tuple C{(lat, lon, egm84, egm96, egm2008)} for U{GeoidHeights.dat\n       <https://SourceForge.net/projects/geographiclib/files/testdata/>}\n       tests with the heights for 3 different EGM grids at C{degrees90}\n       and C{degrees180} degrees (after converting C{lon} from original\n       C{0 <= EasterLon <= 360}).\n    '''\n    _Names_ = (_lat_, _lon_, 'egm84', 'egm96', 'egm2008')\n    _Units_ = ( Lat,   Lon,   Height,  Height,  Height)\n\n\ndef _I(i):\n    '''(INTERNAL) Cache a single C{int} constant.\n    '''\n    i = int(i)\n    return _intCs.setdefault(i, i)  # noqa: F821 del\n\n\ndef _T(cs):\n    '''(INTERNAL) Cache a tuple of single C{int} constants.\n    '''\n    return tuple(map(_I, _splituple(cs)))\n\n_T0s12 = (_I(0),) * 12  # PYCHOK _T('0, 0, ..., 0')\n\n\nclass GeoidKarney(_GeoidBase):\n    '''Geoid height interpolator for I{Karney}'s U{GeographicLib Earth\n       Gravitational Model (EGM)<https://GeographicLib.SourceForge.io/C++/doc/\n       geoid.html>} geoid U{egm*.pgm<https://GeographicLib.SourceForge.io/\n       C++/doc/geoid.html#geoidinst>} datasets using bilinear or U{cubic\n       <https://dl.ACM.org/citation.cfm?id=368443>} interpolation and U{caching\n       <https://GeographicLib.SourceForge.io/C++/doc/geoid.html#geoidcache>}\n       in pure Python, transcoded from I{Karney}'s U{C++ class Geoid\n       <https://GeographicLib.SourceForge.io/C++/doc/geoid.html#geoidinterp>}.\n\n       Use any of the geoid U{egm84-, egm96- or egm2008-*.pgm\n       <https://GeographicLib.SourceForge.io/C++/doc/geoid.html#geoidinst>}\n       datasets.\n    '''\n    _C0 = _F(372), _F(240), _F(372)  # n, _ and s common denominators\n    # matrices c3n_, c3, c3s_, transposed from GeographicLib/Geoid.cpp\n    _C3 = ((_T('0,    0,   62,  124,  124,  62,    0,   0,   0,   0,    0,   0'),\n            _T0s12,\n         _T('-131,    7,  -31,  -62,  -62, -31,   45, 216, 156, -45,  -55,  -7'),\n            _T0s12,\n          _T('138, -138,    0,    0,    0,   0, -183,  33, 153,  -3,   48, -48'),  # PYCHOK indent\n          _T('144,   42,  -62, -124, -124, -62,   -9,  87,  99,   9,   42, -42'),\n            _T0s12,\n            _T('0,    0,    0,    0,    0,   0,   93, -93, -93,  93,    0,   0'),\n         _T('-102,  102,    0,    0,    0,   0,   18,  12, -12, -18,  -84,  84'),\n          _T('-31,  -31,   31,   62,   62,  31,    0, -93, -93,   0,   31,  31')),  # PYCHOK indent\n\n           (_T('9,   -9,    9,  186,   54,  -9,   -9,  54, -54,   9,   -9,   9'),\n          _T('-18,   18,  -88,  -42,  162, -32,    8, -78,  78,  -8,   18, -18'),\n          _T('-88,    8,  -18,  -42,  -78,  18,   18, 162,  78, -18,  -32,  -8'),\n            _T('0,    0,   90, -150,   30,  30,   30, -90,  90, -30,    0,   0'),\n           _T('96,  -96,   96,  -96,  -24,  24,  -96, -24, 144, -24,   24, -24'),  # PYCHOK indent\n           _T('90,   30,    0, -150,  -90,   0,    0,  30,  90,   0,   30, -30'),\n            _T('0,    0,  -20,   60,  -60,  20,  -20,  60, -60,  20,    0,   0'),\n            _T('0,    0,  -60,   60,   60, -60,   60, -60, -60,  60,    0,   0'),\n          _T('-60,   60,    0,   60,  -60,   0,    0,  60, -60,   0,  -60,  60'),\n          _T('-20,  -20,    0,   60,   60,   0,    0, -60, -60,   0,   20,  20')),\n\n          (_T('18,  -18,   36,  210,  162, -36,    0,   0,   0,   0,  -18,  18'),  # PYCHOK indent\n          _T('-36,   36, -165,   45,  141, -21,    0,   0,   0,   0,   36, -36'),\n         _T('-122,   -2,  -27, -111,  -75,  27,   62, 124, 124,  62,  -64,   2'),\n            _T('0,    0,   93,  -93,  -93,  93,    0,   0,   0,   0,    0,   0'),\n          _T('120, -120,  147,  -57, -129,  39,    0,   0,   0,   0,   66, -66'),  # PYCHOK indent\n          _T('135,   51,   -9, -192, -180,   9,   31,  62,  62,  31,   51, -51'),\n            _T0s12,\n            _T('0,    0,  -93,   93,   93, -93,    0,   0,   0,   0,    0,   0'),\n          _T('-84,   84,   18,   12,  -12, -18,    0,   0,   0,   0, -102, 102'),\n          _T('-31,  -31,    0,   93,   93,   0,  -31, -62, -62, -31,   31,  31')))\n\n    _BT = (_T('0, 0'),  # bilinear 4-tuple [i, j] indices\n           _T('1, 0'),\n           _T('0, 1'),\n           _T('1, 1'))\n\n    _CM = (_T(' 0, -1'),  # 10x12 cubic matrix [i, j] indices\n           _T(' 1, -1'),\n           _T('-1,  0'),\n           _T(' 0,  0'),  # _BT[0]\n           _T(' 1,  0'),  # _BT[1]\n           _T(' 2,  0'),\n           _T('-1,  1'),\n           _T(' 0,  1'),  # _BT[2]\n           _T(' 1,  1'),  # _BT[3]\n           _T(' 2,  1'),\n           _T(' 0,  2'),\n           _T(' 1,  2'))\n\n#   _cropped =  None\n    _endian  = '>H'   # struct.unpack 1 ushort (big endian, unsigned short)\n    _4endian = '>4H'  # struct.unpack 4 ushorts\n    _Rendian =  NN    # struct.unpack a row of ushorts\n#   _highest = (-8.4,   147.367, 85.839) if egm2008-1.pgm else (\n#              (-8.167, 147.25,  85.422) if egm96-5.pgm else\n#              (-4.5,   148.75,  81.33))  # egm84-15.pgm\n    _iscipy  =  False\n#   _lowest  = (4.7,   78.767, -106.911) if egm2008-1.pgm else (\n#              (4.667, 78.833, -107.043) if egm96-5.pgm else\n#              (4.75,  79.25,  -107.34))  # egm84-15.pgm\n    _mean    = _F(-1.317)  # from egm2008-1, -1.438 egm96-5, -0.855 egm84-15\n    _nBytes  =  None  # not applicable\n    _nterms  =  len(_C3[0])  # columns length, number of rows\n    _smooth  =  None  # not applicable\n    _stdev   = _F(29.244)  # from egm2008-1, 29.227 egm96-5, 29.183 egm84-15\n    _u2B     = _calcsize(_endian)  # pixelsize_ in bytes\n    _4u2B    = _calcsize(_4endian)  # 4 pixelsize_s in bytes\n    _Ru2B    =  0  # row of pixelsize_s in bytes\n    _yx_hits =  0  # cache hits\n    _yx_i    = ()  # cached (y, x) indices\n    _yx_t    = ()  # cached 4- or 10-tuple for _ev2k resp. _ev3k\n\n    def __init__(self, egm_pgm, crop=None, datum=_WGS84, kind=3, **name_smooth):\n        '''New L{GeoidKarney} interpolator.\n\n           @arg egm_pgm: An U{EGM geoid dataset<https://GeographicLib.SourceForge.io/\n                         C++/doc/geoid.html#geoidinst>} file name (C{egm*.pgm}), see\n                         note below.\n           @kwarg crop: Optional box to limit geoid locations, a 4-tuple (C{south,\n                        west, north, east}), 2-tuple (C{(south, west), (north, east)})\n                        with 2 C{degrees90} lat- and C{degrees180} longitudes or as\n                        2-tuple (C{LatLonSW, LatLonNE}) of C{LatLon} instances.\n           @kwarg datum: Optional grid datum (C{Datum}, L{Ellipsoid}, L{Ellipsoid2} or\n                         L{a_f2Tuple}), overriding C{WGS84}.\n           @kwarg kind: Interpolation order (C{int}), 2 for C{bilinear} or 3 for C{cubic}.\n           @kwarg name_smooth: Optional geoid C{B{name}=NN} (C{str}) and UNSUPPORTED\n                       keyword argument C{B{smooth}}, use C{B{smooth}=None} to ignore.\n\n           @raise GeoidError: EGM dataset B{C{egm_pgm}} issue or invalid B{C{crop}},\n                              B{C{kind}} or B{C{smooth}}.\n\n           @raise TypeError: Invalid B{C{datum}}.\n\n           @see: Class L{GeoidPGM} and function L{egmGeoidHeights}.\n\n           @note: Geoid file B{C{egm_pgm}} remains open and I{must be closed} by calling\n                  method C{close} or by using C{with B{GeoidKarney}(...) as ...:} context.\n        '''\n        smooth, name = _xkwds_pop2(name_smooth, smooth=None)\n        if smooth is not None:\n            raise GeoidError(smooth=smooth, txt_not_=_supported_)\n\n        if _isin(kind, 2):\n            self._ev2d = self._ev2k  # see ._ev_name\n        elif not _isin(kind, 3):\n            raise GeoidError(kind=kind)\n\n        self._egm = g =  self._open(egm_pgm, datum, kind, _name__(**name), None)\n        self._pgm = p = _PGM(g, pgm=egm_pgm, itemsize=self.u2B, sizeB=self.sizeB)\n\n        self._Rendian =  self._4endian.replace(_4_, str(p.nlon))\n        self._Ru2B    = _calcsize(self._Rendian)\n\n        self._knots  = p.knots  # grid knots\n        self._lon_of = float(p.flon)  # forward offset\n        self._lon_og = float(p.glon)  # reverse offset\n        # set earth (lat, lon) limits (s, w, n, e)\n        self._lat_lo, self._lon_lo, \\\n        self._lat_hi, self._lon_hi = self._swne(crop if crop else p.crop4)\n        self._cropped = bool(crop)\n\n    def _c0c3v(self, y, x):\n        # get the common denominator, the 10x12 cubic matrix and\n        # the 12 cubic v-coefficients around geoid index (y, x)\n        p = self._pgm\n        if 0 < x < (p.nlon - 2) and 0 < y < (p.nlat - 2):\n            # read 4x4 ushorts, drop the 4 corners\n            S = _os.SEEK_SET\n            e =  self._4endian\n            g =  self._egm\n            n =  self._4u2B\n            R =  self._Ru2B\n            b =  self._seek(y - 1, x - 1)\n            v = _unpack(e, g.read(n))[1:3]\n            b += R\n            g.seek(b, S)\n            v += _unpack(e, g.read(n))\n            b += R\n            g.seek(b, S)\n            v += _unpack(e, g.read(n))\n            b += R\n            g.seek(b, S)\n            v += _unpack(e, g.read(n))[1:3]\n            j = 1\n\n        else:  # likely some wrapped y and/or x's\n            v = self._raws(y, x, GeoidKarney._CM)\n            j = 0 if y < 1 else (1 if y < (p.nlat - 2) else 2)\n\n        return GeoidKarney._C0[j], GeoidKarney._C3[j], v\n\n    @Property_RO\n    def dtype(self):\n        '''Get the geoid's grid data type (C{str}).\n        '''\n        return 'ushort'\n\n    def _ev(self, lat, lon):  # PYCHOK expected\n        # interpolate the geoid height at grid (lat, lon)\n        fy, fx = self._g2yx2(lat, lon)\n        y, x = int(_floor(fy)), int(_floor(fx))\n        fy -= y\n        fx -= x\n        H  = self._ev2d(fy, fx, y, x)  # PYCHOK ._ev3k or ._ev2k\n        H *= self._pgm.Scale   # H.fmul(self._pgm.Scale)\n        H += self._pgm.Offset  # H.fadd(self._pgm.Offset)\n        return H.fsum()  # float(H)\n\n    def _ev2k(self, fy, fx, *yx):\n        # compute the bilinear 4-tuple and interpolate raw H\n        if self._yx_i == yx:\n            self._yx_hits += 1\n        else:\n            y, x = self._yx_i = yx\n            self._yx_t = self._raws(y, x, GeoidKarney._BT)\n        t  =  self._yx_t\n        v  = _1_0, (-fx), fx\n        H  = _Dotf(v, t[0], t[0], t[1]).fmul(_1_0 - fy)  # c = a * (1 - fy)\n        H += _Dotf(v, t[2], t[2], t[3]).fmul(fy)  # c += b * fy\n        return H  # Fsum\n\n    def _ev3k(self, fy, fx, *yx):\n        # compute the cubic 10-tuple and interpolate raw H\n        if self._yx_i == yx:\n            self._yx_hits += 1\n        else:\n            c0, c3, v  = self._c0c3v(*yx)\n            # assert len(c3) == self._nterms\n            self._yx_t = tuple(_Dotf(v, *r3).fover(c0) for r3 in c3)\n            self._yx_i = yx\n        # GeographicLib/Geoid.cpp Geoid::height(lat, lon) ...\n        # real h = t[0] + fx * (t[1] + fx * (t[3] + fx * t[6])) +\n        #                 fy * (t[2] + fx * (t[4] + fx * t[7]) +\n        #                 fy * (t[5] + fx *  t[8] + fy * t[9]));\n        t  =  self._yx_t\n        v  = _1_0, fx, fy\n        H  = _Dotf(v, t[5], t[8], t[9])\n        H *=  fy\n        H += _Hornerf(fx, t[2], t[4], t[7])\n        H *=  fy\n        H += _Hornerf(fx, t[0], t[1], t[3], t[6])\n        return H  # Fsum\n\n    _ev2d = _ev3k  # overriden for kind=2, see ._ev_name\n\n    def _g2ll2(self, lat, lon):\n        # convert grid (lat, lon) to earth (lat, lon), uncropped\n        return lat, _lonE2lon(lon)\n\n    def _g2yx2(self, lat, lon):\n        # convert grid (lat, lon) to grid (y, x) indices\n        p = self._pgm\n        # note, slat = +90, rlat < 0 makes y >=0\n        return ((lat - p.slat) * p.rlat), ((lon - p.wlon) * p.rlon)\n\n    def _gyx2g2(self, y, x):\n        # convert grid (y, x) indices to grid (lat, lon)\n        p = self._pgm\n        return (p.slat + p.dlat * y), (p.wlon + p.dlon * x)\n\n    @Property_RO\n    def _highest_ltd(self):\n        '''(INTERNAL) Cache for C{.highest}.\n        '''\n        return self._LL3T(self._llh3minmax(True, -12, -4), name__=self.highest)\n\n    def highest(self, LatLon=None, full=False):  # PYCHOK full\n        '''Return the location and largest height of this geoid.\n\n           @kwarg LatLon: Optional class to return the location and height\n                          (C{LatLon}) or C{None}.\n           @kwarg full: Search the full or limited latitude range (C{bool}).\n\n           @return: If C{B{LatLon} is None}, a L{LatLon3Tuple}C{(lat, lon,\n                    height)} otherwise a B{C{LatLon}} instance with the lat-,\n                    longitude and geoid height of the highest grid location.\n        '''\n        llh = self._highest if full or self.cropped else self._highest_ltd\n        return self._llh3LL(llh, LatLon)\n\n    def _lat2y2(self, lat2):\n        # convert earth lat(s) to min and max grid y indices\n        ys, m = [], self._pgm.nlat - 1\n        for lat in lat2:\n            y, _ = self._g2yx2(*self._ll2g2(lat, 0))\n            ys.append(max(min(int(y), m), 0))\n        return min(ys), max(ys) + 1\n\n    def _ll2g2(self, lat, lon):\n        # convert earth (lat, lon) to grid (lat, lon), uncropped\n        return lat, _lon2lonE(lon)\n\n    def _llh3minmax(self, highest, *lat2):\n        # find highest or lowest, takes 10+ secs for egm2008-1.pgm geoid\n        # (Python 2.7.16, macOS 10.13.6 High Sierra, iMac 3 GHz Core i3)\n        if highest:\n            def _mt(r, h):\n                m = max(r)\n                return m, (m > h)\n\n        else:  # lowest\n            def _mt(r, h):  # PYCHOK redef\n                m = min(r)\n                return m, (m < h)\n\n        y = x = 0\n        h = self._raw(y, x)\n        for j, r in self._raw2(*lat2):\n            m, t = _mt(r, h)\n            if t:\n                h, y, x = m, j, r.index(m)\n        h *= self._pgm.Scale\n        h += self._pgm.Offset\n        return self._g2ll2(*self._gyx2g2(y, x)) + (h,)\n\n    @Property_RO\n    def _lowest_ltd(self):\n        '''(INTERNAL) Cache for C{.lowest}.\n        '''\n        return self._LL3T(self._llh3minmax(False, 0, 8), name__=self.lowest)\n\n    def lowest(self, LatLon=None, full=False):  # PYCHOK full\n        '''Return the location and lowest height of this geoid.\n\n           @kwarg LatLon: Optional class to return the location and height\n                          (C{LatLon}) or C{None}.\n           @kwarg full: Search the full or limited latitude range (C{bool}).\n\n           @return: If C{B{LatLon} is None}, a L{LatLon3Tuple}C{(lat, lon,\n                    height)} otherwise a B{C{LatLon}} instance with the lat-,\n                    longitude and geoid height of the lowest grid location.\n        '''\n        llh = self._lowest if full or self.cropped else self._lowest_ltd\n        return self._llh3LL(llh, LatLon)\n\n    def _raw(self, y, x):\n        # get the ushort geoid height at geoid index (y, x),\n        # like GeographicLib/Geoid.hpp real rawval(is, iy)\n        p = self._pgm\n        if x < 0:\n            x += p.nlon\n        elif x >= p.nlon:\n            x -= p.nlon\n        h = p.nlon // 2\n        if y < 0:\n            y = -y\n        elif y >= p.nlat:\n            y = (p.nlat - 1) * 2 - y\n        else:\n            h = 0\n        x += h if x < h else -h\n        self._seek(y, x)\n        h = _unpack(self._endian, self._egm.read(self._u2B))\n        return h[0]\n\n    def _raws(self, y, x, ijs):\n        # get bilinear 4-tuple or 10x12 cubic matrix\n        return tuple(self._raw(y + j, x + i) for i, j in ijs)\n\n    def _raw2(self, *lat2):\n        # yield a 2-tuple (y, ushorts) for each row or for\n        # the rows between two (or more) earth lat values\n        p = self._pgm\n        g = self._egm\n        e = self._Rendian\n        n = self._Ru2B\n        # min(lat2) <= lat <= max(lat2) or 0 <= y < p.nlat\n        s, t = self._lat2y2(lat2) if lat2 else (0, p.nlat)\n        self._seek(s, 0)  # to start of row s\n        for y in range(s, t):\n            yield y, _unpack(e, g.read(n))\n\n    def _seek(self, y, x):\n        # position geoid to grid index (y, x)\n        p, g = self._pgm, self._egm\n        if g:\n            b = p.skip + (y * p.nlon + x) * self._u2B\n            g.seek(b, _os.SEEK_SET)\n            return b  # position\n        raise GeoidError('closed file', txt=repr(p.egm))  # IOError\n\n\nclass GeoidPGM(_GeoidBase):\n    '''Geoid height interpolator for I{Karney}'s U{GeographicLib Earth\n       Gravitational Model (EGM)<https://GeographicLib.SourceForge.io/C++/doc/geoid.html>}\n       geoid U{egm*.pgm<https://GeographicLib.SourceForge.io/C++/doc/geoid.html#geoidinst>}\n       datasets but based on C{SciPy} U{RectBivariateSpline<https://docs.SciPy.org/doc/scipy/\n       reference/generated/scipy.interpolate.RectBivariateSpline.html>}, U{bisplrep/-ev\n       <https://docs.SciPy.org/doc/scipy/reference/generated/scipy.interpolate.bisplrep.html>}\n       or U{interp2d<https://docs.SciPy.org/doc/scipy/reference/generated/scipy.interpolate.\n       interp2d.html>} interpolation.\n\n       Use any of the U{egm84-, egm96- or egm2008-*.pgm <https://GeographicLib.SourceForge.io/\n       C++/doc/geoid.html#geoidinst>} datasets.  However, unless cropped, an entire C{egm*.pgm}\n       dataset is loaded into the C{SciPy} interpolator and converted from 2-byte C{int} to\n       8-byte C{dtype float64}.  Therefore, internal memory usage is 4x the U{egm*.pgm\n       <https://GeographicLib.SourceForge.io/C++/doc/geoid.html#geoidinst>} file size and may\n       exceed the available memory, especially with 32-bit Python, see properties C{.nBytes}\n       and C{.sizeB}.\n    '''\n    _cropped =  False\n    _endian  = '>u2'\n\n    def __init__(self, egm_pgm, crop=None, datum=_WGS84, kind=3, smooth=0, **name):\n        '''New L{GeoidPGM} interpolator.\n\n           @arg egm_pgm: An U{EGM geoid dataset<https://GeographicLib.SourceForge.io/\n                         C++/doc/geoid.html#geoidinst>} file name (C{egm*.pgm}).\n           @kwarg crop: Optional box to crop B{C{egm_pgm}}, a 4-tuple (C{south, west,\n                        north, east}) or 2-tuple (C{(south, west), (north, east)}),\n                        in C{degrees90} lat- and C{degrees180} longitudes or a 2-tuple\n                        (C{LatLonSW, LatLonNE}) of C{LatLon} instances.\n           @kwarg datum: Optional grid datum (L{Datum}, L{Ellipsoid}, L{Ellipsoid2} or\n                         L{a_f2Tuple}), overriding C{WGS84}.\n           @kwarg kind: C{scipy.interpolate} order (C{int}), use 1..5 for U{RectBivariateSpline\n                        <https://docs.SciPy.org/doc/scipy/reference/generated/scipy.interpolate.\n                        RectBivariateSpline.html>} or -1, -3 or -5 for U{bisplrep/-ev<https://\n                        docs.SciPy.org/doc/scipy/reference/generated/scipy.interpolate.bisplrep.html>}\n                        or U{interp2d<https://docs.SciPy.org/doc/scipy/reference/generated/scipy.\n                        interpolate.interp2d.html>} C{linear}, C{cubic} respectively C{quintic},\n                        see note for more details.\n           @kwarg smooth: Smoothing factor for C{B{kind}=1..5} only (C{int}).\n           @kwarg name: Optional geoid C{B{name}=NN} (C{str}).\n\n           @raise GeoidError: EGM dataset B{C{egm_pgm}} issue or invalid B{C{crop}}, B{C{kind}}\n                              or B{C{smooth}}.\n\n           @raise ImportError: Package C{numpy} or C{scipy} not found or not installed.\n\n           @raise LenError: EGM dataset B{C{egm_pgm}} axis mismatch.\n\n           @raise SciPyError: A C{scipy} issue.\n\n           @raise SciPyWarning: A C{scipy} warning as exception.\n\n           @raise TypeError: Invalid B{C{datum}} or unexpected argument.\n\n           @note: Specify C{B{kind}=-1, -3 or -5} to use C{scipy.interpolate.interp2d}\n                  before or C{scipy.interpolate.bisplrep/-ev} since C{Scipy} version 1.14.\n\n           @note: The U{GeographicLib egm*.pgm<https://GeographicLib.SourceForge.io/C++/doc/\n                  geoid.html#geoidinst>} file sizes are based on a 2-byte C{int} height\n                  converted to 8-byte C{dtype float64} for C{scipy} interpolators.  Therefore,\n                  internal memory usage is 4 times the C{egm*.pgm} file size and may exceed\n                  the available memory, especially with 32-bit Python.  To reduce memory\n                  usage, set keyword argument B{C{crop}} to the region of interest.  For\n                  example C{B{crop}=(20, -125, 50, -65)} covers the U{conterminous US\n                  <https://Geodesy.NOAA.gov/GEOID/GEOID12B/maps/GEOID12B_CONUS_grids.png>}\n                  (CONUS), less than 3% of the entire C{egm2008-1.pgm} dataset.\n\n           @see: Class L{GeoidKarney} and function L{egmGeoidHeights}.\n        '''\n        np = self.numpy\n        self._u2B = np.dtype(self.endian).itemsize\n\n        g = self._open(egm_pgm, datum, kind, _name__(**name), smooth)\n        self._pgm = p = _PGM(g, pgm=egm_pgm, itemsize=self.u2B, sizeB=self.sizeB)\n        if crop:\n            g = p._cropped(g, abs(kind) + 1, *self._swne(crop))\n            if _MODS.internals._version2(np.__version__) < (1, 9):\n                g = open(g.name, _rb_)  # reopen tempfile for numpy 1.8.0-\n            self._cropped = True\n        try:\n            # U{numpy dtype formats are different from Python struct formats\n            # <https://docs.SciPy.org/doc/numpy-1.15.0/reference/arrays.dtypes.html>}\n            # read all heights, skipping the PGM header lines, converted to float\n            hs = self._load(g, self.endian, p.knots, p.skip).reshape(p.nlat, p.nlon) * p.Scale\n            if p.Offset:  # offset\n                hs = p.Offset + hs\n            if p.dlat < 0:  # flip the rows\n                hs = np.flipud(hs)\n            _GeoidBase.__init__(self, hs, p)\n        except Exception as x:\n            raise _SciPyIssue(x, _in_, repr(egm_pgm))\n        finally:\n            g.close()\n\n    def _g2ll2(self, lat, lon):\n        # convert grid (lat, lon) to earth (lat, lon), un-/cropped\n        if self._cropped:\n            lon -= self._lon_of\n        else:\n            lon = _lonE2lon(lon)\n        return lat, lon\n\n    def _ll2g2(self, lat, lon):\n        # convert earth (lat, lon) to grid (lat, lon), un-/cropped\n        if self._cropped:\n            lon += self._lon_of\n        else:\n            lon = _lon2lonE(lon)\n        return lat, lon\n\n    if _FOR_DOCS:\n        __call__ = _GeoidBase.__call__\n        height   = _GeoidBase.height\n\n\nclass _Gpars(_Named):\n    '''(INTERNAL) Basic geoid parameters.\n    '''\n    # interpolator parameters\n    dlat = 0  # +/- latitude resolution in C{degrees}\n    dlon = 0  # longitude resolution in C{degrees}\n    nlat = 1  # number of latitude knots (C{int})\n    nlon = 0  # number of longitude knots (C{int})\n    rlat = 0  # +/- latitude resolution in C{float}, 1 / .dlat\n    rlon = 0  # longitude resolution in C{float}, 1 / .dlon\n    slat = 0  # nothern- or southern most latitude (C{degrees90})\n    wlon = 0  # western-most longitude in Eastern lon (C{degrees360})\n\n    flon = 0  # forward, earth to grid longitude offset\n    glon = 0  # reverse, grid to earth longitude offset\n\n    knots = 0  # number of knots, nlat * nlon (C{int})\n    skip  = 0  # header bytes to skip (C{int})\n\n    def __repr__(self):\n        t = _COMMASPACE_.join(pairs((a, getattr(self, a)) for\n                                     a in dir(self.__class__)\n                                       if a[:1].isupper()))\n        return _COLONSPACE_(self, t)\n\n    def __str__(self):\n        return Fmt.PAREN(self.classname, repr(self.name))\n\n\nclass _PGM(_Gpars):\n    '''(INTERNAL) Parse an C{egm*.pgm} geoid dataset file.\n\n       # Geoid file in PGM format for the GeographicLib::Geoid class\n       # Description WGS84 EGM96, 5-minute grid\n       # URL https://Earth-Info.NGA.mil/GandG/wgs84/gravitymod/egm96/egm96.html\n       # DateTime 2009-08-29 18:45:03\n       # MaxBilinearError 0.140\n       # RMSBilinearError 0.005\n       # MaxCubicError 0.003\n       # RMSCubicError 0.001\n       # Offset -108\n       # Scale 0.003\n       # Origin 90N 0E\n       # AREA_OR_POINT Point\n       # Vertical_Datum WGS84\n       <width> <height>\n       <pixel>\n       ...\n    '''\n    crop4 = ()  # 4-tuple (C{south, west, north, east}).\n    egm   = None\n    glon  = 180  # reverse offset, uncropped\n#   pgm   = NN   # name\n    sizeB = 0\n    u2B   = 2  # item size of grid height (C{int}).\n\n    @staticmethod\n    def _llstr2floats(latlon):\n        # llstr to (lat, lon) floats\n        lat, lon = latlon.split()\n        return _MODS.dms.parseDMS2(lat, lon)\n\n    # PGM file attributes, CamelCase but not .istitle()\n    AREA_OR_POINT    =  str\n    DateTime         =  str\n    Description      =  str  # 'WGS84 EGM96, 5-minute grid'\n    Geoid            =  str  # 'file in PGM format for the GeographicLib::Geoid class'\n    MaxBilinearError =  float\n    MaxCubicError    =  float\n    Offset           =  float\n    Origin           = _llstr2floats\n    Pixel            =  0\n    RMSBilinearError =  float\n    RMSCubicError    =  float\n    Scale            =  float\n    URL              =  str  # 'https://Earth-Info.NGA.mil/GandG/wgs84/...'\n    Vertical_Datum   =  str\n\n    def __init__(self, g, pgm=NN, itemsize=0, sizeB=0):  # MCCABE 22\n        '''(INTERNAL) New C{_PGM} parsed C{egm*.pgm} geoid dataset.\n        '''\n        self.name = pgm  # geoid file name\n        if itemsize:\n            self._u2B = itemsize\n        if sizeB:\n            self.sizeB = sizeB\n\n        t = g.readline()  # make sure newline == '\\n'\n        if t != b'P5\\n' and t.strip() != b'P5':\n            raise self._Errorf(_format_, _header_, t)\n\n        while True:  # read all # Attr ... lines,\n            try:  # ignore empty ones or comments\n                t = g.readline().strip()\n                if t.startswith(_bHASH_):\n                    t = t.lstrip(_bHASH_).lstrip()\n                    a, v = map(_ub2str, t.split(None, 1))\n                    f = getattr(_PGM, a, None)\n                    if callable(f) and a[:1].isupper():\n                        setattr(self, a, f(v))\n                elif t:\n                    break\n            except (TypeError, ValueError):\n                raise self._Errorf(_format_, 'Attr', t)\n        else:  # should never get here\n            raise self._Errorf(_format_, _header_, g.tell())\n\n        try:  # must be (even) width and (odd) height\n            nlon, nlat = map(int, t.split())\n            if nlon < 2 or nlon > (360 * 60) or isodd(nlon) or \\\n               nlat < 2 or nlat > (181 * 60) or not isodd(nlat):\n                raise ValueError\n        except (TypeError, ValueError):\n            raise self._Errorf(_format_, _SPACE_(_width_, _height_), t)\n\n        try:  # must be 16 bit pixel height\n            t = g.readline().strip()\n            self.Pixel = int(t)\n            if not 255 < self.Pixel < 65536:  # >u2 or >H only\n                raise ValueError\n        except (TypeError, ValueError):\n            raise self._Errorf(_format_, 'pixel', t)\n\n        for a in dir(_PGM):  # set undefined # Attr ... to None\n            if a[:1].isupper() and callable(getattr(self, a)):\n                setattr(self, a, None)\n\n        if self.Origin is None:\n            raise self._Errorf(_format_, 'Origin', self.Origin)\n        if self.Offset is None or self.Offset > 0:\n            raise self._Errorf(_format_, 'Offset', self.Offset)\n        if self.Scale is None or self.Scale < EPS:\n            raise self._Errorf(_format_, 'Scale', self.Scale)\n\n        self.skip = g.tell()\n        self.knots = nlat * nlon\n\n        self.nlat, self.nlon = nlat, nlon\n        self.slat, self.wlon = self.Origin\n        # note, negative .dlat and .rlat since rows\n        # are from .slat 90N down in decreasing lat\n        self.dlat, self.dlon = (_180_0 / (1 - nlat)), (_360_0 / nlon)\n        self.rlat, self.rlon = ((1 - nlat) / _180_0), (nlon / _360_0)\n\n        # grid corners in earth (lat, lon), .slat = 90, .dlat < 0\n        n = float(self.slat)\n        s = n + self.dlat * (nlat - 1)\n        w = self.wlon - self.glon\n        e = w + self.dlon * nlon\n        self.crop4 = s, w, n, e\n\n        n = self.sizeB - self.skip\n        if n > 0 and n != (self.knots * self.u2B):\n            raise self._Errorf('%s(%s x %s != %s)', _assert_, nlat, nlon, n)\n\n    def _cropped(self, g, k1, south, west, north, east):  # MCCABE 15\n        '''Crop the geoid to (south, west, north, east) box.\n        '''\n        # flon offset for both west and east\n        f = 360 if west < 0 else 0\n        # earth (lat, lon) to grid indices (y, x),\n        # note y is decreasing, i.e. n < s\n        s, w = self._lle2yx2(south, west, f)\n        n, e = self._lle2yx2(north, east, f)\n        s += 1  # s > n\n        e += 1  # e > w\n\n        hi, wi = self.nlat, self.nlon\n        # handle special cases\n        if (s - n) > hi:\n            n, s = 0, hi  # entire lat range\n        if (e - w) > wi:\n            w, e, f = 0, wi, 180  # entire lon range\n        if s == hi and w == n == 0 and e == wi:\n            return g  # use entire geoid as-is\n\n        if (e - w) < k1 or (s - n) < (k1 + 1):\n            raise self._Errorf(_format_, 'swne', (north - south, east - west))\n\n        if e > wi > w:  # wrap around\n            # read w..wi and 0..e\n            r, p = (wi - w), (e - wi)\n        elif e > w:\n            r, p = (e - w), 0\n        else:\n            raise self._Errorf('%s(%s < %s)', _assert_, w, e)\n\n        # convert to bytes\n        r *= self.u2B\n        p *= self.u2B\n        q = wi * self.u2B  # stride\n        # number of rows and cols to skip from\n        # the original (.slat, .wlon) origin\n        z = self.skip + (n * wi + w) * self.u2B\n        # sanity check\n        if r < 2 or p < 0 or q < 2 or z < self.skip \\\n                                   or z > self.sizeB:\n            raise self._Errorf(_format_, _assert_, (r, p, q, z))\n\n        # can't use _BytesIO since numpy\n        # needs .fileno attr in .fromfile\n        t, c = 0, self._tmpfile()\n        # reading (s - n) rows, forward\n        for y in range(n, s):  # PYCHOK y unused\n            g.seek(z, _os.SEEK_SET)\n            # Python 2 tmpfile.write returns None\n            t += c.write(g.read(r)) or r\n            if p:  # wrap around to start of row\n                g.seek(-q, _os.SEEK_CUR)\n                # assert(g.tell() == (z - w * self.u2B))\n                # Python 2 tmpfile.write returns None\n                t += c.write(g.read(p)) or p\n            z += q\n        c.flush()\n        g.close()\n\n        s -= n  # nlat\n        e -= w  # nlon\n        k = s * e  # knots\n        z = k * self.u2B\n        if t != z:\n            raise self._Errorf('%s(%s != %s) %s', _assert_, t, z, self)\n\n        # update the _Gpars accordingly, note attributes\n        # .dlat, .dlon, .rlat and .rlon remain unchanged\n        self.slat += n * self.dlat\n        self.wlon += w * self.dlon\n        self.nlat = s\n        self.nlon = e\n        self.flon = self.glon = f\n\n        self.crop4 = south, west, north, east\n        self.knots = k\n        self.skip  = 0  # no header lines in c\n\n        c.seek(0, _os.SEEK_SET)\n        # c = open(c.name, _rb_)  # reopen for numpy 1.8.0-\n        return c\n\n    def _Errorf(self, fmt, *args):  # PYCHOK no cover\n        t = fmt % args\n        e = self.pgm or NN\n        if e:\n            t = _SPACE_(t, _in_, repr(e))\n        return PGMError(t)\n\n    def _lle2yx2(self, lat, lon, flon):\n        # earth (lat, lon) to grid indices (y, x)\n        # with .dlat decreasing from 90N .slat\n        lat -= self.slat\n        lon += flon - self.wlon\n        return (min(self.nlat - 1, max(0, int(lat * self.rlat))),\n                                   max(0, int(lon * self.rlon)))\n\n    def _tmpfile(self):\n        # create a tmpfile to hold the cropped geoid grid\n        try:\n            from tempfile import NamedTemporaryFile as tmpfile\n        except ImportError:  # Python 2.7.16-\n            from _os import tmpfile  # PYCHOK from\n        t = _os.path.basename(self.pgm)\n        t = _os.path.splitext(t)[0]\n        f =  tmpfile(mode='w+b', prefix=t or 'egm')\n        f.seek(0, _os.SEEK_SET)  # force overwrite\n        return f\n\n    @Property_RO\n    def pgm(self):\n        '''Get the geoid file name (C{str}).\n        '''\n        return self.name\n\n\nclass PGMError(GeoidError):\n    '''An issue while parsing or cropping an C{egm*.pgm} geoid dataset.\n    '''\n    pass\n\n\ndef egmGeoidHeights(GeoidHeights_dat):\n    '''Generate geoid U{egm*.pgm<https://GeographicLib.SourceForge.io/\n       C++/doc/geoid.html#geoidinst>} height tests from U{GeoidHeights.dat\n       <https://SourceForge.net/projects/geographiclib/files/testdata/>}\n       U{Test data for Geoids<https://GeographicLib.SourceForge.io/C++/doc/\n       geoid.html#testgeoid>}.\n\n       @arg GeoidHeights_dat: The un-gz-ed C{GeoidHeights.dat} file\n                              (C{str} or C{file} handle).\n\n       @return: For each test, yield a L{GeoidHeight5Tuple}C{(lat, lon,\n                egm84, egm96, egm2008)}.\n\n       @raise GeoidError: Invalid B{C{GeoidHeights_dat}}.\n\n       @note: Function L{egmGeoidHeights} is used to test the geoids\n              L{GeoidKarney} and L{GeoidPGM}, see PyGeodesy module\n              C{test/testGeoids.py}.\n    '''\n    dat = GeoidHeights_dat\n    if isinstance(dat, bytes):\n        dat = _BytesIO(dat)\n\n    try:\n        dat.seek(0, _os.SEEK_SET)  # reset\n    except AttributeError as x:\n        raise GeoidError(GeoidHeights_dat=type(dat), cause=x)\n\n    for t in dat.readlines():\n        t = t.strip()\n        if t and not t.startswith(_bHASH_):\n            lat, lon, egm84, egm96, egm2008 = map(float, t.split())\n            lon = _lonE2lon(lon)  # Eastern to earth lon\n            yield GeoidHeight5Tuple(lat, lon, egm84, egm96, egm2008)\n\n\ndef _lonE2lon(lon):\n    '''(INTERNAL) East to earth longitude.\n    '''\n    while lon > _180_0:\n        lon -= _360_0\n    return lon\n\n\ndef _lon2lonE(lon):\n    '''(INTERNAL) Earth to East longitude.\n    '''\n    while lon < 0:\n        lon += _360_0\n    return lon\n\n\n__all__ += _ALL_DOCS(_GeoidBase)\n\nif __name__ == _DMAIN_:  # MCCABE 14\n\n    from pygeodesy.internals import printf, _secs2str, _versions,  _sys\n    from time import time\n\n    _crop     = {}\n    _GeoidEGM = GeoidKarney\n    _kind     = 3\n\n    geoids = _sys.argv[1:]\n    while geoids:\n        G = geoids.pop(0)\n        g = G.lower()\n\n        if '-crop'.startswith(g):\n            _crop = dict(crp=(20, -125, 50, -65))  # CONUS\n\n        elif '-egm96'.startswith(g):\n            _GeoidEGM = GeoidEGM96\n\n        elif '-karney'.startswith(g):\n            _GeoidEGM = GeoidKarney\n\n        elif '-kind'.startswith(g):\n            _kind = int(geoids.pop(0))\n\n        elif '-pgm'.startswith(g):\n            _GeoidEGM = GeoidPGM\n\n        elif _isin(g[-4:], '.pgm', '.grd'):\n            g = _GeoidEGM(G, kind=_kind, **_crop)\n            t =  time()\n            _ =  g.highest()\n            t = _secs2str(time() - t)\n            printf('%s: %s (%s)', g.toStr(), t, _versions(), nl=1, nt=1)\n            t =  g.pgm\n            if t:\n                printf(repr(t), nt=1)\n            # <https://GeographicLib.SourceForge.io/cgi-bin/GeoidEval>:\n            # The height of the EGM96 geoid at Timbuktu\n            #    echo 16:46:33N 3:00:34W | GeoidEval\n            #    => 28.7068 -0.02e-6 -1.73e-6\n            # The 1st number is the height of the geoid, the 2nd and\n            # 3rd are its slopes in northerly and easterly direction\n            t = 'Timbuktu %s' % (g,)\n            k = {'egm84-15.pgm':  '31.2979',\n                 'egm96-5.pgm':   '28.7067',\n                 'egm2008-1.pgm': '28.7880'}.get(g.name.lower(), '28.7880')\n            ll = _MODS.dms.parseDMS2('16:46:33N', '3:00:34W', sep=':')\n            for ll in (ll, (16.776, -3.009),):\n                try:\n                    h, ll = g.height(*ll), fstr(ll, prec=6)\n                    printf('%s.height(%s): %.4F vs %s', t, ll, h, k)\n                except (GeoidError, RangeError) as x:\n                    printf(_COLONSPACE_(t, str(x)))\n\n        elif _isin(g[-4:], '.bin'):\n            g = GeoidG2012B(G, kind=_kind)\n            printf(g.toStr())\n\n        else:\n            raise GeoidError(grid=repr(G))\n\n_I = int  # PYCHOK unused _I\ndel _intCs, _T, _T0s12  # trash ints cache and map\n\n\n# <https://GeographicLib.SourceForge.io/cgi-bin/GeoidEval>\n# _lowerleft = -90, -179, -30.1500  # egm2008-1.pgm\n# _lowerleft = -90, -179, -29.5350  # egm96-5.pgm\n# _lowerleft = -90, -179, -29.7120  # egm84-15.pgm\n\n# _center = 0, 0, 17.2260  # egm2008-1.pgm\n# _center = 0, 0, 17.1630  # egm96-5.pgm\n# _center = 0, 0, 18.3296  # egm84-15.pgm\n\n# _upperright = 90, 180, 14.8980  # egm2008-1.pgm\n# _upperright = 90, 180, 13.6050  # egm96-5.pgm\n# _upperright = 90, 180, 13.0980  # egm84-15.pgm\n\n\n# % python3.12 -m pygeodesy.geoids -egm96 ../testGeoids/WW15MGH.GRD\n#\n# GeoidEGM96('WW15MGH.GRD'): lowerleft(-90.0, -180.0, -29.534), upperright(90.0, 180.25, 13.606), center(0.0, 0.125, 17.125), highest(-8.25, -32.75, 85.391), lowest(4.75, -101.25, -106.991): 1.267 ms (pygeodesy 24.12.24 Python 3.12.7 64bit arm64 macOS 14.6.1)\n#\n# Timbuktu GeoidEGM96('WW15MGH.GRD').height(16.775833, -3.009444): 28.7073 vs 28.7880\n# Timbuktu GeoidEGM96('WW15MGH.GRD').height(16.776, -3.009): 28.7072 vs 28.7880\n\n\n# % python3.12 -m pygeodesy.geoids -Karney ../testGeoids/egm*.pgm\n#\n# GeoidKarney('egm2008-1.pgm'): lowerleft(-90.0, -180.0, -30.15), upperright(90.0, 180.0, 14.898), center(0.0, 0.0, 17.226), highest(-8.4, 147.367, 85.839), lowest(4.7, 78.767, -106.911): 204.334 ms (pygeodesy 24.8.24 Python 3.12.5 64bit arm64 macOS 14.6.1)\n#\n# _PGM('../testGeoids/egm2008-1.pgm'): AREA_OR_POINT='Point', DateTime='2009-08-31 06:54:00', Description='WGS84 EGM2008, 1-minute grid', Geoid='file in PGM format for the GeographicLib::Geoid class', MaxBilinearError=0.025, MaxCubicError=0.003, Offset=-108.0, Origin=LatLon2Tuple(lat=90.0, lon=0.0), Pixel=65535, RMSBilinearError=0.001, RMSCubicError=0.001, Scale=0.003, URL='http://earth-info.nga.mil/GandG/wgs84/gravitymod/egm2008', Vertical_Datum='WGS84'\n#\n# Timbuktu GeoidKarney('egm2008-1.pgm').height(16.775833, -3.009444): 28.7881 vs 28.7880\n# Timbuktu GeoidKarney('egm2008-1.pgm').height(16.776, -3.009): 28.7880 vs 28.7880\n#\n# GeoidKarney('egm84-15.pgm'): lowerleft(-90.0, -180.0, -29.712), upperright(90.0, 180.0, 13.098), center(0.0, 0.0, 18.33), highest(-4.5, 148.75, 81.33), lowest(4.75, 79.25, -107.34): 1.007 ms (pygeodesy 24.8.24 Python 3.12.5 64bit arm64 macOS 14.6.1)\n#\n# _PGM('../testGeoids/egm84-15.pgm'): AREA_OR_POINT='Point', DateTime='2009-08-29 18:45:02', Description='WGS84 EGM84, 15-minute grid', Geoid='file in PGM format for the GeographicLib::Geoid class', MaxBilinearError=0.413, MaxCubicError=0.02, Offset=-108.0, Origin=LatLon2Tuple(lat=90.0, lon=0.0), Pixel=65535, RMSBilinearError=0.018, RMSCubicError=0.001, Scale=0.003, URL='http://earth-info.nga.mil/GandG/wgs84/gravitymod/wgs84_180/wgs84_180.html', Vertical_Datum='WGS84'\n#\n# Timbuktu GeoidKarney('egm84-15.pgm').height(16.775833, -3.009444): 31.2983 vs 31.2979\n# Timbuktu GeoidKarney('egm84-15.pgm').height(16.776, -3.009): 31.2979 vs 31.2979\n#\n# GeoidKarney('egm96-5.pgm'): lowerleft(-90.0, -180.0, -29.535), upperright(90.0, 180.0, 13.605), center(0.0, 0.0, 17.163), highest(-8.167, 147.25, 85.422), lowest(4.667, 78.833, -107.043): 8.509 ms (pygeodesy 24.8.24 Python 3.12.5 64bit arm64 macOS 14.6.1)\n#\n# _PGM('../testGeoids/egm96-5.pgm'): AREA_OR_POINT='Point', DateTime='2009-08-29 18:45:03', Description='WGS84 EGM96, 5-minute grid', Geoid='file in PGM format for the GeographicLib::Geoid class', MaxBilinearError=0.14, MaxCubicError=0.003, Offset=-108.0, Origin=LatLon2Tuple(lat=90.0, lon=0.0), Pixel=65535, RMSBilinearError=0.005, RMSCubicError=0.001, Scale=0.003, URL='http://earth-info.nga.mil/GandG/wgs84/gravitymod/egm96/egm96.html', Vertical_Datum='WGS84'\n#\n# Timbuktu GeoidKarney('egm96-5.pgm').height(16.775833, -3.009444): 28.7068 vs 28.7067\n# Timbuktu GeoidKarney('egm96-5.pgm').height(16.776, -3.009): 28.7067 vs 28.7067\n\n\n# % python3.8 -m pygeodesy.geoids -egm96 ../testGeoids/WW15MGH.GRD\n#\n# GeoidEGM96('WW15MGH.GRD'): lowerleft(-90.0, -180.0, -29.534), upperright(90.0, 180.25, 13.606), center(0.0, 0.125, 17.125), highest(-8.25, -32.75, 85.391), lowest(4.75, -101.25, -106.991): 1.267 ms (pygeodesy 24.12.24 Python 3.8.10 64bit arm64_x86_64 macOS 10.16)\n#\n# Timbuktu GeoidEGM96('WW15MGH.GRD').height(16.775833, -3.009444): 28.7073 vs 28.7880\n# Timbuktu GeoidEGM96('WW15MGH.GRD').height(16.776, -3.009): 28.7072 vs 28.7880\n\n\n# % python3.8 -m pygeodesy.geoids -Karney ../testGeoids/egm*.pgm\n#\n# GeoidKarney('egm2008-1.pgm'): lowerleft(-90.0, -180.0, -30.15), upperright(90.0, 180.0, 14.898), center(0.0, 0.0, 17.226), highest(-8.4, 147.367, 85.839), lowest(4.7, 78.767, -106.911): 353.050 ms (pygeodesy 24.8.24 Python 3.8.10 64bit arm64_x86_64 macOS 10.16)\n#\n# _PGM('../testGeoids/egm2008-1.pgm'): AREA_OR_POINT='Point', DateTime='2009-08-31 06:54:00', Description='WGS84 EGM2008, 1-minute grid', Geoid='file in PGM format for the GeographicLib::Geoid class', MaxBilinearError=0.025, MaxCubicError=0.003, Offset=-108.0, Origin=LatLon2Tuple(lat=90.0, lon=0.0), Pixel=65535, RMSBilinearError=0.001, RMSCubicError=0.001, Scale=0.003, URL='http://earth-info.nga.mil/GandG/wgs84/gravitymod/egm2008', Vertical_Datum='WGS84'\n#\n# Timbuktu GeoidKarney('egm2008-1.pgm').height(16.775833, -3.009444): 28.7881 vs 28.7880\n# Timbuktu GeoidKarney('egm2008-1.pgm').height(16.776, -3.009): 28.7880 vs 28.7880\n#\n# GeoidKarney('egm84-15.pgm'): lowerleft(-90.0, -180.0, -29.712), upperright(90.0, 180.0, 13.098), center(0.0, 0.0, 18.33), highest(-4.5, 148.75, 81.33), lowest(4.75, 79.25, -107.34): 1.727 ms (pygeodesy 24.8.24 Python 3.8.10 64bit arm64_x86_64 macOS 10.16)\n#\n# _PGM('../testGeoids/egm84-15.pgm'): AREA_OR_POINT='Point', DateTime='2009-08-29 18:45:02', Description='WGS84 EGM84, 15-minute grid', Geoid='file in PGM format for the GeographicLib::Geoid class', MaxBilinearError=0.413, MaxCubicError=0.02, Offset=-108.0, Origin=LatLon2Tuple(lat=90.0, lon=0.0), Pixel=65535, RMSBilinearError=0.018, RMSCubicError=0.001, Scale=0.003, URL='http://earth-info.nga.mil/GandG/wgs84/gravitymod/wgs84_180/wgs84_180.html', Vertical_Datum='WGS84'\n#\n# Timbuktu GeoidKarney('egm84-15.pgm').height(16.775833, -3.009444): 31.2983 vs 31.2979\n# Timbuktu GeoidKarney('egm84-15.pgm').height(16.776, -3.009): 31.2979 vs 31.2979\n#\n# GeoidKarney('egm96-5.pgm'): lowerleft(-90.0, -180.0, -29.535), upperright(90.0, 180.0, 13.605), center(0.0, 0.0, 17.163), highest(-8.167, 147.25, 85.422), lowest(4.667, 78.833, -107.043): 14.807 ms (pygeodesy 24.8.24 Python 3.8.10 64bit arm64_x86_64 macOS 10.16)\n#\n# _PGM('../testGeoids/egm96-5.pgm'): AREA_OR_POINT='Point', DateTime='2009-08-29 18:45:03', Description='WGS84 EGM96, 5-minute grid', Geoid='file in PGM format for the GeographicLib::Geoid class', MaxBilinearError=0.14, MaxCubicError=0.003, Offset=-108.0, Origin=LatLon2Tuple(lat=90.0, lon=0.0), Pixel=65535, RMSBilinearError=0.005, RMSCubicError=0.001, Scale=0.003, URL='http://earth-info.nga.mil/GandG/wgs84/gravitymod/egm96/egm96.html', Vertical_Datum='WGS84'\n#\n# Timbuktu GeoidKarney('egm96-5.pgm').height(16.775833, -3.009444): 28.7068 vs 28.7067\n# Timbuktu GeoidKarney('egm96-5.pgm').height(16.776, -3.009): 28.7067 vs 28.7067\n\n\n# % python2 -m pygeodesy.geoids -Karney ../testGeoids/egm*.pgm\n#\n# GeoidKarney('egm2008-1.pgm'): lowerleft(-90.0, -180.0, -30.15), upperright(90.0, 180.0, 14.898), center(0.0, 0.0, 17.226), highest(-8.4, 147.367, 85.839), lowest(4.7, 78.767, -106.911): 283.362 ms (pygeodesy 24.8.24 Python 2.7.18 64bit arm64_x86_64 macOS 10.16)\n#\n# _PGM('../testGeoids/egm2008-1.pgm'): AREA_OR_POINT='Point', DateTime='2009-08-31 06:54:00', Description='WGS84 EGM2008, 1-minute grid', Geoid='file in PGM format for the GeographicLib::Geoid class', MaxBilinearError=0.025, MaxCubicError=0.003, Offset=-108.0, Origin=LatLon2Tuple(lat=90.0, lon=0.0), Pixel=65535, RMSBilinearError=0.001, RMSCubicError=0.001, Scale=0.003, URL='http://earth-info.nga.mil/GandG/wgs84/gravitymod/egm2008', Vertical_Datum='WGS84'\n#\n# Timbuktu GeoidKarney('egm2008-1.pgm').height(16.775833, -3.009444): 28.7881 vs 28.7880\n# Timbuktu GeoidKarney('egm2008-1.pgm').height(16.776, -3.009): 28.7880 vs 28.7880\n#\n# GeoidKarney('egm84-15.pgm'): lowerleft(-90.0, -180.0, -29.712), upperright(90.0, 180.0, 13.098), center(0.0, 0.0, 18.33), highest(-4.5, 148.75, 81.33), lowest(4.75, 79.25, -107.34): 1.378 ms (pygeodesy 24.8.24 Python 2.7.18 64bit arm64_x86_64 macOS 10.16)\n#\n# _PGM('../testGeoids/egm84-15.pgm'): AREA_OR_POINT='Point', DateTime='2009-08-29 18:45:02', Description='WGS84 EGM84, 15-minute grid', Geoid='file in PGM format for the GeographicLib::Geoid class', MaxBilinearError=0.413, MaxCubicError=0.02, Offset=-108.0, Origin=LatLon2Tuple(lat=90.0, lon=0.0), Pixel=65535, RMSBilinearError=0.018, RMSCubicError=0.001, Scale=0.003, URL='http://earth-info.nga.mil/GandG/wgs84/gravitymod/wgs84_180/wgs84_180.html', Vertical_Datum='WGS84'\n#\n# Timbuktu GeoidKarney('egm84-15.pgm').height(16.775833, -3.009444): 31.2983 vs 31.2979\n# Timbuktu GeoidKarney('egm84-15.pgm').height(16.776, -3.009): 31.2979 vs 31.2979\n#\n# GeoidKarney('egm96-5.pgm'): lowerleft(-90.0, -180.0, -29.535), upperright(90.0, 180.0, 13.605), center(0.0, 0.0, 17.163), highest(-8.167, 147.25, 85.422), lowest(4.667, 78.833, -107.043): 11.612 ms (pygeodesy 24.8.24 Python 2.7.18 64bit arm64_x86_64 macOS 10.16)\n#\n# _PGM('../testGeoids/egm96-5.pgm'): AREA_OR_POINT='Point', DateTime='2009-08-29 18:45:03', Description='WGS84 EGM96, 5-minute grid', Geoid='file in PGM format for the GeographicLib::Geoid class', MaxBilinearError=0.14, MaxCubicError=0.003, Offset=-108.0, Origin=LatLon2Tuple(lat=90.0, lon=0.0), Pixel=65535, RMSBilinearError=0.005, RMSCubicError=0.001, Scale=0.003, URL='http://earth-info.nga.mil/GandG/wgs84/gravitymod/egm96/egm96.html', Vertical_Datum='WGS84'\n#\n# Timbuktu GeoidKarney('egm96-5.pgm').height(16.775833, -3.009444): 28.7068 vs 28.7067\n# Timbuktu GeoidKarney('egm96-5.pgm').height(16.776, -3.009): 28.7067 vs 28.7067\n\n\n# % python3.12 -m pygeodesy.geoids -PGM ../testGeoids/egm*.pgm\n#\n# GeoidPGM('egm2008-1.pgm'): lowerleft(-90.0, -180.0, -30.15), upperright(90.0, 180.0, 14.898), center(0.0, 0.0, 17.226), highest(-8.4, -32.633, 85.839), lowest(4.683, -101.25, -106.911): 543.148 ms (pygeodesy 24.8.24 Python 3.12.5 64bit arm64 macOS 14.6.1)\n#\n# _PGM('../testGeoids/egm2008-1.pgm'): AREA_OR_POINT='Point', DateTime='2009-08-31 06:54:00', Description='WGS84 EGM2008, 1-minute grid', Geoid='file in PGM format for the GeographicLib::Geoid class', MaxBilinearError=0.025, MaxCubicError=0.003, Offset=-108.0, Origin=LatLon2Tuple(lat=90.0, lon=0.0), Pixel=65535, RMSBilinearError=0.001, RMSCubicError=0.001, Scale=0.003, URL='http://earth-info.nga.mil/GandG/wgs84/gravitymod/egm2008', Vertical_Datum='WGS84'\n#\n# Timbuktu GeoidPGM('egm2008-1.pgm').height(16.775833, -3.009444): 28.7881 vs 28.7880\n# Timbuktu GeoidPGM('egm2008-1.pgm').height(16.776, -3.009): 28.7880 vs 28.7880\n#\n# GeoidPGM('egm84-15.pgm'): lowerleft(-90.0, -180.0, -29.712), upperright(90.0, 180.0, 13.098), center(0.0, 0.0, 18.33), highest(-4.5, -31.25, 81.33), lowest(4.75, -100.75, -107.34): 1.762 ms (pygeodesy 24.8.24 Python 3.12.5 64bit arm64 macOS 14.6.1)\n#\n# _PGM('../testGeoids/egm84-15.pgm'): AREA_OR_POINT='Point', DateTime='2009-08-29 18:45:02', Description='WGS84 EGM84, 15-minute grid', Geoid='file in PGM format for the GeographicLib::Geoid class', MaxBilinearError=0.413, MaxCubicError=0.02, Offset=-108.0, Origin=LatLon2Tuple(lat=90.0, lon=0.0), Pixel=65535, RMSBilinearError=0.018, RMSCubicError=0.001, Scale=0.003, URL='http://earth-info.nga.mil/GandG/wgs84/gravitymod/wgs84_180/wgs84_180.html', Vertical_Datum='WGS84'\n#\n# Timbuktu GeoidPGM('egm84-15.pgm').height(16.775833, -3.009444): 31.2979 vs 31.2979\n# Timbuktu GeoidPGM('egm84-15.pgm').height(16.776, -3.009): 31.2975 vs 31.2979\n#\n# GeoidPGM('egm96-5.pgm'): lowerleft(-90.0, -180.0, -29.535), upperright(90.0, 180.0, 13.605), center(0.0, -0.0, 17.179), highest(-8.167, -32.75, 85.422), lowest(4.667, -101.167, -107.043): 12.594 ms (pygeodesy 24.8.24 Python 3.12.5 64bit arm64 macOS 14.6.1)\n#\n# _PGM('../testGeoids/egm96-5.pgm'): AREA_OR_POINT='Point', DateTime='2009-08-29 18:45:03', Description='WGS84 EGM96, 5-minute grid', Geoid='file in PGM format for the GeographicLib::Geoid class', MaxBilinearError=0.14, MaxCubicError=0.003, Offset=-108.0, Origin=LatLon2Tuple(lat=90.0, lon=0.0), Pixel=65535, RMSBilinearError=0.005, RMSCubicError=0.001, Scale=0.003, URL='http://earth-info.nga.mil/GandG/wgs84/gravitymod/egm96/egm96.html', Vertical_Datum='WGS84'\n#\n# Timbuktu GeoidPGM('egm96-5.pgm').height(16.775833, -3.009444): 28.7065 vs 28.7067\n# Timbuktu GeoidPGM('egm96-5.pgm').height(16.776, -3.009): 28.7064 vs 28.7067\n\n# **) MIT License\n#\n# Copyright (C) 2016-2026 -- mrJean1 at Gmail -- All Rights Reserved.\n#\n# Permission is hereby granted, free of charge, to any person obtaining a\n# copy of this software and associated documentation files (the \"Software\"),\n# to deal in the Software without restriction, including without limitation\n# the rights to use, copy, modify, merge, publish, distribute, sublicense,\n# and/or sell copies of the Software, and to permit persons to whom the\n# Software is furnished to do so, subject to the following conditions:\n#\n# The above copyright notice and this permission notice shall be included\n# in all copies or substantial portions of the Software.\n#\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL\n# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR\n# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\n# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n# OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "pygeodesy/hausdorff.py",
    "content": "\n# -*- coding: utf-8 -*-\n\nu'''Hausdorff distances.\n\nClasses L{Hausdorff}, L{HausdorffDegrees}, L{HausdorffRadians},\nL{HausdorffCosineLaw}, L{HausdorffDistanceTo}, L{HausdorffEquirectangular},\nL{HausdorffEuclidean}, L{HausdorffFlatLocal}, L{HausdorffFlatPolar},\nL{HausdorffHaversine}, L{HausdorffHubeny}, L{HausdorffKarney},\nL{HausdorffThomas} and L{HausdorffVincentys} to compute U{Hausdorff\n<https://WikiPedia.org/wiki/Hausdorff_distance>} distances between two\nsets of C{LatLon}, C{NumPy}, C{tuples} or other types of points.\n\nOnly L{HausdorffDistanceTo} -iff used with L{ellipsoidalKarney.LatLon}\npoints- and L{HausdorffKarney} requires installation of I{Charles Karney}'s\nU{geographiclib<https://PyPI.org/project/geographiclib>}.\n\nTypical usage is as follows.  First, create a C{Hausdorff} calculator\nfrom a given set of C{LatLon} points, called the C{model} or C{template}\npoints.\n\nC{h = HausdorffXyz(point1s, ...)}\n\nGet the C{directed} or C{symmetric} Hausdorff distance to a second set\nof C{LatLon} points, named the C{target} points, by using\n\nC{t6 = h.directed(point2s)}\n\nrespectively\n\nC{t6 = h.symmetric(point2s)}.\n\nOr, use function C{hausdorff_} with a proper C{distance} function and\noptionally a C{point} function passed as keyword arguments as follows\n\nC{t6 = hausdorff_(point1s, point2s, ..., distance=..., point=...)}.\n\nIn all cases, the returned result C{t6} is a L{Hausdorff6Tuple}.\n\nFor C{(lat, lon, ...)} points in a C{NumPy} array or plain C{tuples},\nwrap the points in a L{Numpy2LatLon} respectively L{Tuple2LatLon}\ninstance, more details in the documentation thereof.\n\nFor other points, create a L{Hausdorff} sub-class with the appropriate\nC{distance} method overloading L{Hausdorff.distance} and optionally a\nC{point} method overriding L{Hausdorff.point} as the next example.\n\n    >>> from pygeodesy import Hausdorff, hypot_\n    >>>\n    >>> class H3D(Hausdorff):\n    >>>     \"\"\"Custom Hausdorff example.\n    >>>     \"\"\"\n    >>>     def distance(self, p1, p2):\n    >>>         return hypot_(p1.x - p2.x, p1.y - p2.y, p1.z - p2.z)\n    >>>\n    >>> h3D = H3D(xyz1, ..., units=\"...\")\n    >>> d6 = h3D.directed(xyz2)\n\nTranscribed from the original SciPy U{Directed Hausdorff Code\n<https://GitHub.com/scipy/scipy/blob/master/scipy/spatial/_hausdorff.pyx>}\nversion 0.19.0, Copyright (C) Tyler Reddy, Richard Gowers, and Max Linke,\n2016, distributed under the same BSD license as SciPy, including C{early\nbreaking} and C{random sampling} as in U{Abdel Aziz Taha, Allan Hanbury\n\"An Efficient Algorithm for Calculating the Exact Hausdorff Distance\"\n<https://Publik.TUWien.ac.AT/files/PubDat_247739.pdf>}, IEEE Trans. Pattern\nAnalysis Machine Intelligence (PAMI), vol 37, no 11, pp 2153-2163, Nov 2015.\n'''\n\n# from pygeodesy.basics import _isin  # from .datums\nfrom pygeodesy.constants import INF, NINF, _0_0\nfrom pygeodesy.datums import _ellipsoidal_datum, _WGS84,  _isin\nfrom pygeodesy.errors import PointsError, _xattr, _xcallable, _xkwds, _xkwds_get\n# from pygeodesy import formy as _formy  # _MODS.into\nfrom pygeodesy.interns import NN, _i_, _j_, _units_\n# from pygeodesy.iters import points2 as _points2  # from .points\nfrom pygeodesy.lazily import _ALL_LAZY, _ALL_MODS as _MODS, _FOR_DOCS\nfrom pygeodesy.named import _name2__, _Named, _NamedTuple, _Pass\nfrom pygeodesy.namedTuples import PhiLam2Tuple\nfrom pygeodesy.points import _distanceTo,  points2 as _points2, radians\nfrom pygeodesy.props import Property, Property_RO, property_doc_, property_RO\nfrom pygeodesy.units import Float, Number_\nfrom pygeodesy import unitsBase as _unitsBase  # _Str_..., _xUnit, _xUnits\n\n# from math import radians  # from .points\nfrom random import Random\n\n__all__ = _ALL_LAZY.hausdorff\n__version__ = '25.05.26'\n\n_formy = _MODS.into(formy=__name__)\n\n\nclass HausdorffError(PointsError):\n    '''Hausdorff issue.\n    '''\n    pass\n\n\nclass Hausdorff(_Named):\n    '''Hausdorff base class, requires method L{Hausdorff.distance} to\n       be overloaded.\n    '''\n    _datum = _WGS84\n#   _func  =  None  # formy function/property\n    _kwds  = {}     # func_ options\n    _model = ()\n    _seed  =  None\n    _units = _unitsBase._Str_NN  # XXX Str to _Pass and for backward compatibility\n\n    def __init__(self, point1s, seed=None, units=NN, **name__kwds):\n        '''New C{Hausdorff...} calculator.\n\n           @arg point1s: Initial set of points, aka the C{model} or C{template}\n                         (C{LatLon}[], C{Numpy2LatLon}[], C{Tuple2LatLon}[] or\n                         C{other}[]).\n           @kwarg seed: Random sampling seed (C{any}) or C{None}, C{0} or C{False}\n                        for no U{random sampling<https://Publik.TUWien.ac.AT/files/\n                        PubDat_247739.pdf>}.\n           @kwarg units: Optional, the distance units (C{Unit} or C{str}).\n           @kwarg name__kwds: Optional calculator/interpolator C{B{name}=NN} (C{str})\n                        and keyword arguments for the distance function, retrievable\n                        with property C{kwds}.\n\n           @raise HausdorffError: Insufficient number of B{C{point1s}} or an invalid\n                                  B{C{point1}}, B{C{seed}} or B{C{units}}.\n        '''\n        name, kwds = _name2__(**name__kwds)  # name__=type(self)\n        if name:\n            self.name = name\n\n        _, self._model = self._points2(point1s)\n        if seed:\n            self.seed = seed\n        if units:  # and not self.units:\n            self.units = units\n        if kwds:\n            self._kwds = kwds\n\n    @Property_RO\n    def adjust(self):\n        '''Get the adjust setting (C{bool} or C{None} if not applicable).\n        '''\n        return _xkwds_get(self._kwds, adjust=None)\n\n    @Property_RO\n    def datum(self):\n        '''Get the datum of this calculator (L{Datum} or C{None} if not applicable).\n        '''\n        return self._datum\n\n    def _datum_setter(self, datum):\n        '''(INTERNAL) Set the datum.\n        '''\n        d = datum or _xattr(self._model[0], datum=datum)\n        if not _isin(d, None, self._datum):  # PYCHOK no cover\n            self._datum = _ellipsoidal_datum(d, name=self.name)\n\n    def directed(self, point2s, early=True):\n        '''Compute only the C{forward Hausdorff} distance.\n\n           @arg point2s: Second set of points, aka the C{target} (C{LatLon}[],\n                         C{Numpy2LatLon}[], C{Tuple2LatLon}[] or C{other}[]).\n           @kwarg early: Enable or disable U{early breaking<https://\n                         Publik.TUWien.ac.AT/files/PubDat_247739.pdf>} (C{bool}).\n\n           @return: A L{Hausdorff6Tuple}C{(hd, i, j, mn, md, units)}.\n\n           @raise HausdorffError: Insufficient number of B{C{point2s}} or\n                                  an invalid B{C{point2}}.\n\n           @note: See B{C{point2s}} note at L{HausdorffDistanceTo}.\n        '''\n        return self._hausdorff_(point2s, False, early, self.distance)\n\n    def distance(self, point1, point2):\n        '''Return the distance between B{C{point1}} and B{C{point2}},\n           subject to the supplied optional keyword arguments, see\n           property C{kwds}.\n        '''\n        return self._func(point1.lat, point1.lon,\n                          point2.lat, point2.lon, **self._kwds)\n\n    @Property\n    def _func(self):\n        '''(INTERNAL) I{Must be overloaded}.'''\n        self._notOverloaded(**self.kwds)\n\n    @_func.setter_  # PYCHOK setter_underscore!\n    def _func(self, func):\n        return _formy._Propy(func, 4, self.kwds)\n\n    def _hausdorff_(self, point2s, both, early, distance):\n        _, ps2 = self._points2(point2s)\n        return _hausdorff_(self._model, ps2, both, early, self.seed,\n                           self.units, distance, self.point)\n\n    @property_RO\n    def kwds(self):\n        '''Get the supplied, optional keyword arguments (C{dict}).\n        '''\n        return self._kwds\n\n    def point(self, point):\n        '''Convert a C{model} or C{target} point for the C{.distance} method.\n        '''\n        return point  # pass thru\n\n    def _points2(self, points):\n        '''(INTERNAL) Check a set of points.\n        '''\n        return _points2(points, closed=False, Error=HausdorffError)\n\n    @property_doc_(''' the random sampling seed (C{Random}).''')\n    def seed(self):\n        '''Get the random sampling seed (C{any} or C{None}).\n        '''\n        return self._seed\n\n    @seed.setter  # PYCHOK setter!\n    def seed(self, seed):\n        '''Set the random sampling seed (C{Random(seed)}) or\n           C{None}, C{0} or C{False} for no U{random sampling\n           <https://Publik.TUWien.ac.AT/files/PubDat_247739.pdf>}.\n\n           @raise HausdorffError: Invalid B{C{seed}}.\n        '''\n        if seed:\n            try:\n                Random(seed)\n            except (TypeError, ValueError) as x:\n                raise HausdorffError(seed=seed, cause=x)\n            self._seed = seed\n        else:\n            self._seed = None\n\n    def symmetric(self, point2s, early=True):\n        '''Compute the combined C{forward and reverse Hausdorff} distance.\n\n           @arg point2s: Second set of points, aka the C{target} (C{LatLon}[],\n                         C{Numpy2LatLon}[], C{Tuple2LatLon}[] or C{other}[]).\n           @kwarg early: Enable or disable U{early breaking<https://\n                         Publik.TUWien.ac.AT/files/PubDat_247739.pdf>} (C{bool}).\n\n           @return: A L{Hausdorff6Tuple}C{(hd, i, j, mn, md, units)}.\n\n           @raise HausdorffError: Insufficient number of B{C{point2s}} or\n                                  an invalid B{C{point2}}.\n\n           @note: See B{C{point2s}} note at L{HausdorffDistanceTo}.\n        '''\n        return self._hausdorff_(point2s, True, early, self.distance)\n\n    @property_doc_(''' the distance units (C{Unit} or C{str}).''')\n    def units(self):\n        '''Get the distance units (C{Unit} or C{str}).\n        '''\n        return self._units\n\n    @units.setter  # PYCHOK setter!\n    def units(self, units):\n        '''Set the distance units (C{Unit} or C{str}).\n\n           @raise TypeError: Invalid B{C{units}}.\n        '''\n        self._units = _unitsBase._xUnits(units, Base=Float)\n\n    @Property_RO\n    def wrap(self):\n        '''Get the wrap setting (C{bool} or C{None} if not applicable).\n        '''\n        return _xkwds_get(self._kwds, adjust=None)\n\n\nclass HausdorffDegrees(Hausdorff):\n    '''L{Hausdorff} base class for distances from C{LatLon}\n       points in C{degrees}.\n    '''\n    _units = _unitsBase._Str_degrees\n\n    if _FOR_DOCS:\n        __init__  = Hausdorff.__init__\n        directed  = Hausdorff.directed\n        symmetric = Hausdorff.symmetric\n\n    def distance(self, point1, point2):  # PYCHOK no cover\n        '''I{Must be overloaded}.'''\n        self._notOverloaded(point1, point2)\n\n\nclass HausdorffRadians(Hausdorff):\n    '''L{Hausdorff} base class for distances from C{LatLon}\n       points converted from C{degrees} to C{radians}.\n    '''\n    _units = _unitsBase._Str_radians\n\n    if _FOR_DOCS:\n        __init__  = Hausdorff.__init__\n        directed  = Hausdorff.directed\n        symmetric = Hausdorff.symmetric\n\n    def distance(self, point1, point2):  # PYCHOK no cover\n        '''I{Must be overloaded}.'''\n        self._notOverloaded(point1, point2)\n\n    def point(self, point):\n        '''Return B{C{point}} as L{PhiLam2Tuple} to maintain\n           I{backward compatibility} of L{HausdorffRadians}.\n\n           @return: A L{PhiLam2Tuple}C{(phi, lam)}.\n        '''\n        try:\n            return point.philam\n        except AttributeError:\n            return PhiLam2Tuple(radians(point.lat), radians(point.lon))\n\n\nclass _HausdorffMeterRadians(Hausdorff):\n    '''(INTERNAL) Returning C{meter} or C{radians} depending on\n       the optional keyword arguments supplied at instantiation\n       of the C{Hausdorff*} sub-class.\n    '''\n    _units  = _unitsBase._Str_meter\n    _units_ = _unitsBase._Str_radians\n\n    def directed(self, point2s, early=True):\n        '''Overloaded method L{Hausdorff.directed} to determine\n           the distance function and units from the optional\n           keyword arguments given at this instantiation, see\n           property C{kwds}.\n\n           @see: L{Hausdorff.directed} for other details.\n        '''\n        return self._hausdorff_(point2s, False, early, _formy._radistance(self))\n\n    def symmetric(self, point2s, early=True):\n        '''Overloaded method L{Hausdorff.symmetric} to determine\n           the distance function and units from the optional\n           keyword arguments given at this instantiation, see\n           property C{kwds}.\n\n           @see: L{Hausdorff.symmetric} for other details.\n        '''\n        return self._hausdorff_(point2s, True, early, _formy._radistance(self))\n\n    @Property\n    def _func_(self):  # see _formy._radistance\n        '''(INTERNAL) I{Must be overloaded}.'''\n        self._notOverloaded(**self.kwds)\n\n    @_func_.setter_  # PYCHOK setter_underscore!\n    def _func_(self, func):\n        return _formy._Propy(func, 3, self.kwds)\n\n\nclass HausdorffCosineLaw(_HausdorffMeterRadians):\n    '''Compute the C{Hausdorff} distance with function L{pygeodesy.cosineLaw_}.\n\n       @note: See note at function L{pygeodesy.vincentys_}.\n    '''\n    def __init__(self, point1s, **seed_name__corr_earth_wrap):\n        '''New L{HausdorffCosineLaw} calculator.\n\n           @kwarg seed_name__corr_earth_wrap: Optional C{B{seed}=None} and\n                       C{B{name}=NN} and keyword arguments for function\n                       L{pygeodesy.cosineLaw}.\n\n           @see: L{Hausdorff.__init__} for details about B{C{point1s}},\n                 B{C{seed}}, B{C{name}} and other exceptions.\n        '''\n        Hausdorff.__init__(self, point1s, **seed_name__corr_earth_wrap)\n        self._func  = _formy.cosineLaw\n        self._func_ = _formy.cosineLaw_\n\n    if _FOR_DOCS:\n        directed  = Hausdorff.directed\n        symmetric = Hausdorff.symmetric\n\n\nclass HausdorffDistanceTo(Hausdorff):\n    '''Compute the C{Hausdorff} distance the points' C{LatLon.distanceTo} method.\n    '''\n    _units = _unitsBase._Str_meter\n\n    def __init__(self, point1s, **seed_name__distanceTo_kwds):\n        '''New L{HausdorffDistanceTo} calculator.\n\n           @kwarg seed_name__distanceTo_kwds: Optional C{B{seed}=None} and\n                             C{B{name}=NN} and keyword arguments for each\n                             B{C{point1s}}' C{LatLon.distanceTo} method.\n\n           @see: L{Hausdorff.__init__} for details about B{C{point1s}},\n                 B{C{seed}}, B{C{name}} and other exceptions.\n\n           @note: All C{model}, C{template} and C{target} B{C{points}}\n                  I{must} be instances of the same ellipsoidal or\n                  spherical C{LatLon} class.\n        '''\n        Hausdorff.__init__(self, point1s, **seed_name__distanceTo_kwds)\n\n    if _FOR_DOCS:\n        directed  = Hausdorff.directed\n        symmetric = Hausdorff.symmetric\n\n    def distance(self, p1, p2):\n        '''Return the distance in C{meter}.\n        '''\n        return p1.distanceTo(p2, **self._kwds)\n\n    def _points2(self, points):\n        '''(INTERNAL) Check a set of points.\n        '''\n        np, ps = Hausdorff._points2(self, points)\n        return np, _distanceTo(HausdorffError, points=ps)\n\n\nclass HausdorffEquirectangular(Hausdorff):\n    '''Compute the C{Hausdorff} distance with function L{pygeodesy.equirectangular}.\n    '''\n    _units = _unitsBase._Str_degrees2\n\n    def __init__(self, point1s, **seed_name__adjust_limit_wrap):\n        '''New L{HausdorffEquirectangular} calculator.\n\n           @kwarg seed_name__adjust_limit_wrap: Optional C{B{seed}=None} and\n                             C{B{name}=NN} and keyword arguments for function\n                             L{pygeodesy.equirectangular} I{with default}\n                             C{B{limit}=0} for I{backward compatibility}.\n\n           @see: L{Hausdorff.__init__} for details about B{C{point1s}},\n                 B{C{seed}}, B{C{name}} and other exceptions.\n        '''\n        Hausdorff.__init__(self, point1s, **_xkwds(seed_name__adjust_limit_wrap,\n                                                   limit=0))\n        self._func = _formy._equirectangular  # helper\n\n    if _FOR_DOCS:\n        directed  = Hausdorff.directed\n        symmetric = Hausdorff.symmetric\n\n\nclass HausdorffEuclidean(_HausdorffMeterRadians):\n    '''Compute the C{Hausdorff} distance with function L{pygeodesy.euclidean_}.\n    '''\n    def __init__(self, point1s, **seed_name__adjust_radius_wrap):\n        '''New L{HausdorffEuclidean} calculator.\n\n           @kwarg seed_name__adjust_radius_wrap: Optional C{B{seed}=None}\n                             and C{B{name}=NN} and keyword arguments for\n                             function L{pygeodesy.euclidean}.\n\n           @see: L{Hausdorff.__init__} for details about B{C{point1s}},\n                 B{C{seed}}, B{C{name}} and other exceptions.\n        '''\n        Hausdorff.__init__(self, point1s, **seed_name__adjust_radius_wrap)\n        self._func  = _formy.euclidean\n        self._func_ = _formy.euclidean_\n\n    if _FOR_DOCS:\n        directed  = Hausdorff.directed\n        symmetric = Hausdorff.symmetric\n\n\nclass HausdorffExact(Hausdorff):\n    '''Compute the C{Hausdorff} distance with method L{GeodesicExact}C{.Inverse}.\n    '''\n    _units = _unitsBase._Str_degrees\n\n    def __init__(self, point1s, datum=None, **seed_name__wrap):\n        '''New L{HausdorffKarney} calculator.\n\n           @kwarg datum: Datum to override the default C{Datums.WGS84} and first\n                         B{C{point1s}}' datum (L{Datum}, L{Ellipsoid}, L{Ellipsoid2}\n                         or L{a_f2Tuple}).\n           @kwarg seed_name__wrap: Optional C{B{seed}=None} and C{B{name}=NN} and\n                             keyword argument for method C{Inverse1} of class\n                             L{geodesicx.GeodesicExact}.\n\n           @raise TypeError: Invalid B{C{datum}}.\n\n           @see: L{Hausdorff.__init__} for details about B{C{point1s}}, B{C{seed}},\n                 B{C{name}} and other exceptions.\n        '''\n        Hausdorff.__init__(self, point1s, **seed_name__wrap)\n        self._datum_setter(datum)\n        self._func = self.datum.ellipsoid.geodesicx.Inverse1  # note -x\n\n    if _FOR_DOCS:\n        directed  = Hausdorff.directed\n        symmetric = Hausdorff.symmetric\n\n\nclass HausdorffFlatLocal(_HausdorffMeterRadians):\n    '''Compute the C{Hausdorff} distance with function L{pygeodesy.flatLocal_}/L{pygeodesy.hubeny_}.\n    '''\n    _units = _unitsBase._Str_radians2\n\n    def __init__(self, point1s, **seed_name__datum_scaled_wrap):\n        '''New L{HausdorffFlatLocal}/L{HausdorffHubeny} calculator.\n\n           @kwarg seed_name__datum_scaled_wrap: Optional C{B{seed}=None} and\n                             C{B{name}=NN} and keyword arguments for function\n                             L{pygeodesy.flatLocal}.\n\n           @see: L{Hausdorff.__init__} for details about B{C{point1s}},\n                 B{C{seed}}, B{C{name}} and other exceptions.\n\n           @note: The distance C{units} are C{radians squared}, not C{radians}.\n        '''\n        Hausdorff.__init__(self, point1s, **seed_name__datum_scaled_wrap)\n        self._func  = _formy.flatLocal\n        self._func_ =  self.datum.ellipsoid._hubeny_2\n\n    if _FOR_DOCS:\n        directed  = Hausdorff.directed\n        symmetric = Hausdorff.symmetric\n\n\nclass HausdorffFlatPolar(_HausdorffMeterRadians):\n    '''Compute the C{Hausdorff} distance with function L{pygeodesy.flatPolar_}.\n    '''\n    _wrap = False\n\n    def __init__(self, points, **seed_name__radius_wrap):\n        '''New L{HausdorffFlatPolar} calculator.\n\n           @kwarg seed_name__radius_wrap: Optional C{B{seed}=None}\n                             and C{B{name}=NN} and keyword arguments\n                             for function L{pygeodesy.flatPolar}.\n\n           @see: L{Hausdorff.__init__} for details about B{C{point1s}},\n                 B{C{seed}}, B{C{name}} and other exceptions.\n        '''\n        Hausdorff.__init__(self, points, **seed_name__radius_wrap)\n        self._func  = _formy.flatPolar\n        self._func_ = _formy.flatPolar_\n\n    if _FOR_DOCS:\n        directed  = Hausdorff.directed\n        symmetric = Hausdorff.symmetric\n\n\nclass HausdorffHaversine(_HausdorffMeterRadians):\n    '''Compute the C{Hausdorff} distance with function L{pygeodesy.haversine_}.\n\n       @note: See note under L{HausdorffVincentys}.\n    '''\n    _wrap = False\n\n    def __init__(self, points, **seed_name__radius_wrap):\n        '''New L{HausdorffHaversine} calculator.\n\n           @kwarg seed_name__radius_wrap: Optional C{B{seed}=None}\n                             and C{B{name}=NN} and keyword arguments\n                             for function L{pygeodesy.haversine}.\n\n           @see: L{Hausdorff.__init__} for details about B{C{point1s}},\n                 B{C{seed}}, B{C{name}} and other exceptions.\n       '''\n        Hausdorff.__init__(self, points, **seed_name__radius_wrap)\n        self._func  = _formy.haversine\n        self._func_ = _formy.haversine_\n\n    if _FOR_DOCS:\n        directed  = Hausdorff.directed\n        symmetric = Hausdorff.symmetric\n\n\nclass HausdorffHubeny(HausdorffFlatLocal):  # for Karl Hubeny\n    if _FOR_DOCS:\n        __doc__   = HausdorffFlatLocal.__doc__\n        __init__  = HausdorffFlatLocal.__init__\n        directed  = HausdorffFlatLocal.directed\n        distance  = HausdorffFlatLocal.distance\n        symmetric = HausdorffFlatLocal.symmetric\n\n\nclass HausdorffKarney(Hausdorff):\n    '''Compute the C{Hausdorff} distance with I{Karney}'s U{geographiclib\n       <https://PyPI.org/project/geographiclib>} U{geodesic.Geodesic\n       <https://GeographicLib.SourceForge.io/Python/doc/code.html>}C{.Inverse}\n       method.\n    '''\n    _units = _unitsBase._Str_degrees\n\n    def __init__(self, point1s, datum=None, **seed_name__wrap):\n        '''New L{HausdorffKarney} calculator.\n\n           @kwarg datum: Datum to override the default C{Datums.WGS84} and\n                         first B{C{knots}}' datum (L{Datum}, L{Ellipsoid},\n                         L{Ellipsoid2} or L{a_f2Tuple}).\n           @kwarg seed_name__wrap: Optional C{B{seed}=None} and C{B{name}=NN}\n                             and keyword arguments for method C{Inverse1} of\n                             class L{geodesicw.Geodesic}.\n\n           @raise ImportError: Package U{geographiclib\n                  <https://PyPI.org/project/geographiclib>} missing.\n\n           @raise TypeError: Invalid B{C{datum}}.\n\n           @see: L{Hausdorff.__init__} for details about B{C{point1s}},\n                 B{C{seed}}, B{C{name}} and other exceptions.\n        '''\n        Hausdorff.__init__(self, point1s, **seed_name__wrap)\n        self._datum_setter(datum)\n        self._func = self.datum.ellipsoid.geodesic.Inverse1\n\n\nclass HausdorffThomas(_HausdorffMeterRadians):\n    '''Compute the C{Hausdorff} distance with function L{pygeodesy.thomas_}.\n    '''\n    def __init__(self, point1s, **seed_name__datum_wrap):\n        '''New L{HausdorffThomas} calculator.\n\n           @kwarg seed_name__datum_wrap: Optional C{B{seed}=None}\n                             and C{B{name}=NN} and keyword arguments\n                             for function L{pygeodesy.thomas}.\n\n           @see: L{Hausdorff.__init__} for details about B{C{point1s}},\n                 B{C{seed}}, B{C{name}} and other exceptions.\n        '''\n        Hausdorff.__init__(self, point1s, **seed_name__datum_wrap)\n        self._func  = _formy.thomas\n        self._func_ = _formy.thomas_\n\n    if _FOR_DOCS:\n        directed  = Hausdorff.directed\n        symmetric = Hausdorff.symmetric\n\n\nclass HausdorffVincentys(_HausdorffMeterRadians):\n    '''Compute the C{Hausdorff} distance with function L{pygeodesy.vincentys_}.\n\n       @note: See note at function L{pygeodesy.vincentys_}.\n    '''\n    _wrap = False\n\n    def __init__(self, point1s, **seed_name__radius_wrap):\n        '''New L{HausdorffVincentys} calculator.\n\n           @kwarg seed_name__radius_wrap: Optional C{B{seed}=None}\n                             and C{B{name}=NN} and keyword arguments\n                             for function L{pygeodesy.vincentys}.\n\n           @see: L{Hausdorff.__init__} for details about B{C{point1s}},\n                 B{C{seed}}, B{C{name}} and other exceptions.\n        '''\n        Hausdorff.__init__(self, point1s, **seed_name__radius_wrap)\n        self._func  = _formy.vincentys\n        self._func_ = _formy.vincentys_\n\n    if _FOR_DOCS:\n        directed  = Hausdorff.directed\n        symmetric = Hausdorff.symmetric\n\n\ndef _hausdorff_(ps1, ps2, both, early, seed, units, distance, point):\n    '''(INTERNAL) Core of function L{hausdorff_} and methods C{directed}\n       and C{symmetric} of classes C{hausdorff.Hausdorff...}.\n    '''\n    # shuffling the points generally increases the\n    # chance of an early break in the inner j loop\n    rr = randomrangenerator(seed) if seed else range\n\n    hd =  NINF\n    mn =  m = hi = hj = 0\n    md = _0_0\n\n    # forward or forward and backward\n    for fb in range(2 if both else 1):\n        ji, n = False, len(ps2)\n        for i in rr(len(ps1)):\n            p1 = point(ps1[i])\n            dh, dj = INF, 0\n            for j in rr(n):\n                p2 = point(ps2[j])\n                d = distance(p1, p2)\n                if early and d < hd:\n                    break  # early\n                elif d < dh:\n                    dh, dj = d, j\n            else:  # no early break\n                if hd < dh:\n                    hd = dh\n                    hi =  i\n                    hj = dj\n                    ji = fb\n                md += dh\n                mn += 1\n            m += 1\n        if ji:  # swap indices\n            hi, hj = hj, hi\n        # swap model and target\n        ps1, ps2 = ps2, ps1\n\n    md = None if mn < m else (md / float(m))\n    return Hausdorff6Tuple(hd, hi, hj, m, md, units)\n\n\ndef _point(p):\n    '''Default B{C{point}} callable for function L{hausdorff_}.\n\n       @arg p: The original C{model} or C{target} point (C{any}).\n\n       @return: The point, suitable for the L{hausdorff_}\n                B{C{distance}} callable.\n    '''\n    return p\n\n\ndef hausdorff_(model, target, both=False, early=True, seed=None, units=NN,\n                              distance=None, point=_point):\n    '''Compute the C{directed} or C{symmetric} U{Hausdorff\n       <https://WikiPedia.org/wiki/Hausdorff_distance>} distance between 2 sets of points\n       with or without U{early breaking<https://Publik.TUWien.ac.AT/files/PubDat_247739.pdf>}\n       and U{random sampling<https://Publik.TUWien.ac.AT/files/PubDat_247739.pdf>}.\n\n       @arg model: First set of points (C{LatLon}[], C{Numpy2LatLon}[],\n                   C{Tuple2LatLon}[] or C{other}[]).\n       @arg target: Second set of points (C{LatLon}[], C{Numpy2LatLon}[],\n                    C{Tuple2LatLon}[] or C{other}[]).\n       @kwarg both: Return the C{directed} (forward only) or the C{symmetric}\n                    (combined forward and reverse) C{Hausdorff} distance (C{bool}).\n       @kwarg early: Enable or disable U{early breaking<https://Publik.TUWien.ac.AT/\n                     files/PubDat_247739.pdf>} (C{bool}).\n       @kwarg seed: Random sampling seed (C{any}) or C{None}, C{0} or C{False} for no\n                    U{random sampling<https://Publik.TUWien.ac.AT/files/PubDat_247739.pdf>}.\n       @kwarg units: Optional, the distance units (C{Unit} or C{str}).\n       @kwarg distance: Callable returning the distance between a B{C{model}}\n                        and B{C{target}} point (signature C{(point1, point2)}).\n       @kwarg point: Callable returning the B{C{model}} or B{C{target}} point\n                     suitable for B{C{distance}} (signature C{(point)}).\n\n       @return: A L{Hausdorff6Tuple}C{(hd, i, j, mn, md, units)}.\n\n       @raise HausdorffError: Insufficient number of B{C{model}} or B{C{target}} points.\n\n       @raise TypeError: If B{C{distance}} or B{C{point}} is not callable.\n    '''\n    _xcallable(distance=distance, point=point)\n\n    _, ps1 = _points2(model,  closed=False, Error=HausdorffError)  # PYCHOK non-sequence\n    _, ps2 = _points2(target, closed=False, Error=HausdorffError)  # PYCHOK non-sequence\n    return _hausdorff_(ps1, ps2, both, early, seed, units, distance, point)\n\n\nclass Hausdorff6Tuple(_NamedTuple):\n    '''6-Tuple C{(hd, i, j, mn, md, units)} with the U{Hausdorff\n       <https://WikiPedia.org/wiki/Hausdorff_distance>} distance C{hd},\n       indices C{i} and C{j}, the total count C{mn}, the C{I{mean}\n       Hausdorff} distance C{md} and the class or name of both distance\n       C{units}.\n\n       For C{directed Hausdorff} distances, count C{mn} is the number\n       of model points considered. For C{symmetric Hausdorff} distances\n       count C{mn} twice that.\n\n       Indices C{i} and C{j} are the C{model} respectively C{target}\n       point with the C{hd} distance.\n\n       Mean distance C{md} is C{None} if an C{early break} occurred and\n       U{early breaking<https://Publik.TUWien.ac.AT/files/PubDat_247739.pdf>}\n       was enabled by keyword argument C{early=True}.\n    '''\n    _Names_ = ('hd', _i_,     _j_,     'mn',     'md',  _units_)\n    _Units_ = (_Pass, Number_, Number_, Number_, _Pass, _Pass)\n\n    def toUnits(self, **Error_name):  # PYCHOK expected\n        '''Overloaded C{_NamedTuple.toUnits} for C{hd} and C{md} units.\n        '''\n        u    = list(Hausdorff6Tuple._Units_)\n        u[0] = U = _unitsBase._xUnit(self.units, Float)  # PYCHOK expected\n        u[4] =     _Pass if self.md is None else U  # PYCHOK expected\n        return _NamedTuple.toUnits(self.reUnit(*u), **Error_name)  # PYCHOK self\n\n\ndef randomrangenerator(seed):\n    '''Return a C{seed}ed random range function generator.\n\n       @arg seed: Initial, internal L{Random} state (C{hashable}\n                  or C{None}).\n\n       @note: L{Random} with C{B{seed} is None} seeds from the\n              current time or from a platform-specific randomness\n              source, if available.\n\n       @return: A function to generate random ranges.\n\n       @example:\n\n        >>> rrange = randomrangenerator('R')\n        >>> for r in rrange(n):\n        >>>    ...  # r is random in 0..n-1\n    '''\n    R = Random(seed)\n\n    def _range(n, *stop_step):\n        '''Like standard L{range}C{start, stop=..., step=...)},\n           except the returned values are in random order.\n\n           @note: Especially C{range(n)} behaves like standard\n                  L{Random.sample}C{(range(n), n)} but avoids\n                  creating a tuple with the entire C{population}\n                  and a list containing all sample values (for\n                  large C{n}).\n        '''\n        if stop_step:\n            s = range(n, *stop_step)\n\n        elif n > 32:\n            r = R.randrange  # Random._randbelow\n            s = set()\n            for _ in range(n - 32):\n                i = r(n)\n                while i in s:\n                    i = r(n)\n                s.add(i)\n                yield i\n            s = set(range(n)) - s  # [i for i in range(n) if i not in s]\n        else:\n            s = range(n)\n\n        s = list(s)\n        R.shuffle(s)\n        while s:\n            yield s.pop(0)\n\n    return _range\n\n# **) MIT License\n#\n# Copyright (C) 2016-2026 -- mrJean1 at Gmail -- All Rights Reserved.\n#\n# Permission is hereby granted, free of charge, to any person obtaining a\n# copy of this software and associated documentation files (the \"Software\"),\n# to deal in the Software without restriction, including without limitation\n# the rights to use, copy, modify, merge, publish, distribute, sublicense,\n# and/or sell copies of the Software, and to permit persons to whom the\n# Software is furnished to do so, subject to the following conditions:\n#\n# The above copyright notice and this permission notice shall be included\n# in all copies or substantial portions of the Software.\n#\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL\n# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR\n# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\n# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n# OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "pygeodesy/heights.py",
    "content": "\n# -*- coding: utf-8 -*-\n\nu'''Height interpolations at C{LatLon} points from known C{knots}.\n\nClasses L{HeightCubic}, L{HeightIDWcosineLaw}, L{HeightIDWdistanceTo},\nL{HeightIDWequirectangular}, L{HeightIDWeuclidean}, L{HeightIDWflatLocal},\nL{HeightIDWflatPolar}, L{HeightIDWhaversine}, L{HeightIDWhubeny},\nL{HeightIDWkarney}, L{HeightIDWthomas}, L{HeightIDWvincentys}, L{HeightLinear},\nL{HeightLSQBiSpline} and L{HeightSmoothBiSpline} to interpolate the height of\nC{LatLon} locations or separate lat-/longitudes from a set of C{LatLon} points\nwith I{known heights}.\n\nTypical usage\n=============\n\n1. Get or create a set of C{LatLon} points with I{known heights}, called\nC{knots}.  The C{knots} do not need to be ordered in any particular way.\n\nC{>>> ...}\n\n2. Select one of the C{Height} classes for height interpolation\n\nC{>>> from pygeodesy import HeightCubic as HeightXyz  # or an other Height... class}\n\n3. Instantiate a height interpolator with the C{knots} and use keyword\narguments to select different interpolation options\n\nC{>>> hinterpolator = HeightXyz(knots, **options)}\n\n4. Get the interpolated height of C{LatLon} location(s) with\n\nC{>>> ll = LatLon(1, 2, ...)}\n\nC{>>> h = hinterpolator(ll)}\n\nor\n\nC{>>> h0, h1, h2, ... = hinterpolator(ll0, ll1, ll2, ...)}\n\nor a list, tuple, generator, etc. of C{LatLon}s\n\nC{>>> hs = hinterpolator(lls)}\n\n5. For separate lat- and longitudes invoke the C{height} method as\n\nC{>>> h = hinterpolator.height(lat, lon)}\n\nor as 2 lists, 2 tuples, etc.\n\nC{>>> hs = hinterpolator.height(lats, lons)}\n\nor for several positionals use the C{height_} method\n\nC{>>> h1, h2, ... = hinterpolator.height_(lat1, lon1, lat2, lon2, ...)}\n\n@note: Classes L{HeightCubic} and L{HeightLinear} require package U{numpy\n       <https://PyPI.org/project/numpy>}, classes L{HeightLSQBiSpline} and\n       L{HeightSmoothBiSpline} require package U{scipy<https://SciPy.org>}.\n       Classes L{HeightIDWkarney} and L{HeightIDWdistanceTo} -if used with\n       L{ellipsoidalKarney.LatLon} points- require I{Karney}'s U{geographiclib\n       <https://PyPI.org/project/geographiclib>} package to be installed.\n\n@note: Errors from C{scipy} are raised as L{SciPyError}s.  Warnings issued\n       by C{scipy} can be thrown as L{SciPyWarning} exceptions, provided\n       Python C{warnings} are filtered accordingly, see L{SciPyWarning}.\n\n@see: U{SciPy<https://docs.SciPy.org/doc/scipy/reference/interpolate.html>}\n      Interpolation.\n'''\n# make sure int/int division yields float quotient, see .basics\nfrom __future__ import division as _; del _  # noqa: E702 ;\n\nfrom pygeodesy.basics import isscalar, len2, map1, min2, _xnumpy, _xscipy\nfrom pygeodesy.constants import EPS, PI, PI_2, PI2, _0_0, _90_0, _180_0\nfrom pygeodesy.datums import _ellipsoidal_datum, _WGS84\nfrom pygeodesy.errors import _AssertionError, LenError, PointsError, \\\n                             _SciPyIssue, _xattr, _xkwds, _xkwds_get, _xkwds_item2\n# from pygeodesy.fmath import fidw  # _MODS\n# from pygeodesy import formy as _formy  # _MODS.into\n# from pygeodesy.internals import _version2  # _MODS\nfrom pygeodesy.interns import NN, _COMMASPACE_, _insufficient_, _NOTEQUAL_, \\\n                             _PLUS_, _scipy_, _SPACE_, _STAR_\nfrom pygeodesy.lazily import _ALL_DOCS, _ALL_LAZY, _ALL_MODS as _MODS, _FOR_DOCS\nfrom pygeodesy.named import _name2__, _Named\nfrom pygeodesy.points import _distanceTo, LatLon_,  Fmt, radians, _Wrap\nfrom pygeodesy.props import Property_RO, property_RO, property_ROver\n# from pygeodesy.streprs import Fmt  # from .points\nfrom pygeodesy.units import _isDegrees, Float_, Int_\n# from pygeodesy.utily import _Wrap  # from .points\n\n# from math import radians  # from .points\n\n__all__ = _ALL_LAZY.heights\n__version__ = '26.02.02'\n\n_error_  = 'error'\n_formy   = _MODS.into(formy=__name__)\n_linear_ = 'linear'\n_llis_   = 'llis'\n\n\nclass HeightError(PointsError):\n    '''Height interpolator C{Height...} or interpolation issue.\n    '''\n    pass\n\n\ndef _alist(ais):\n    # return list of floats, not numpy.float64s\n    return list(map(float, ais))\n\n\ndef _ascalar(ais):  # in .geoids\n    # return single float, not numpy.float64\n    ais = list(ais)  # np.array, etc. to list\n    if len(ais) != 1:\n        n =  Fmt.PAREN(len=repr(ais))\n        t = _SPACE_(len(ais), _NOTEQUAL_, 1)\n        raise _AssertionError(n, txt=t)\n    return float(ais[0])  # remove np.<type>\n\n\ndef _atuple(ais):\n    # return tuple of floats, not numpy.float64s\n    return tuple(map(float, ais))\n\n\ndef _as_llis2(llis, m=1, Error=HeightError):  # in .geoids\n    # determine return type and convert lli C{LatLon}s to list\n    if not isinstance(llis, tuple):  # llis are *args\n        n = Fmt.PAREN(type_=_STAR_(NN, _llis_))\n        raise _AssertionError(n, txt=repr(llis))\n\n    n = len(llis)\n    if n == 1:  # convert single lli to 1-item list\n        llis = llis[0]\n        try:\n            n, llis = len2(llis)\n            _as = _alist  # return list of interpolated heights\n        except TypeError:  # single lli\n            n, llis = 1, [llis]\n            _as = _ascalar  # return single interpolated heights\n    else:  # of 0, 2 or more llis\n        _as = _atuple  # return tuple of interpolated heights\n\n    if n < m:\n        raise _InsufficientError(m, Error=Error, llis=n)\n    return _as, llis\n\n\ndef _InsufficientError(need, Error=HeightError, **name_value):  # PYCHOK no cover\n    # create an insufficient Error instance\n    t = _COMMASPACE_(_insufficient_, str(need) + _PLUS_)\n    return Error(txt=t, **name_value)\n\n\ndef _orderedup(ts, lo=EPS, hi=PI2-EPS):\n    # clip, order and remove duplicates\n    return sorted(set(max(lo, min(hi, t)) for t in ts))  # list\n\n\ndef _xyhs(wrap=False, _lat=_90_0, _lon=_180_0, height=True, **name_lls):\n    # map (lat, lon, h) to (x, y, h) in radians, offset\n    # x as 0 <= lon <= PI2 and y as 0 <= lat <= PI\n    name, lls = _xkwds_item2(name_lls)\n    _w,  _r   = _Wrap._latlonop(wrap), radians\n    try:\n        for i, ll in enumerate(lls):\n            y, x = _w(ll.lat, ll.lon)\n            h = ll.height if height else 0\n            yield (max(_0_0, _r(x + _lon)),\n                   max(_0_0, _r(y + _lat)), h)\n    except Exception as x:\n        i = Fmt.INDEX(name, i)\n        raise HeightError(i, ll, cause=x)\n\n\nclass _HeightNamed(_Named):  # in .geoids\n    '''(INTERNAL) Interpolator base class.\n    '''\n    _datum = _WGS84    # default\n    _Error =  HeightError\n    _kmin  =  2        # min number of knots\n\n    _LLiC  =  LatLon_  # ._height class\n    _np_sp =  None     # (numpy, scipy)\n    _wrap  =  None     # wrap knots and llis\n\n    def __call__(self, *llis, **wrap):  # PYCHOK no cover\n        '''Interpolate the height for one or several locations.  I{Must be overloaded}.\n\n           @arg llis: One or more locations (each C{LatLon}), all positional.\n           @kwarg wrap: If C{B{wrap}=True} to wrap or I{normalize} all B{C{llis}}\n                        locations (C{bool}), overriding the B{C{knots}}' setting.\n\n           @return: A single interpolated height (C{float}) or a list or tuple of\n                    interpolated heights (each C{float}).\n\n           @raise HeightError: Insufficient number of B{C{llis}} or an invalid B{C{lli}}.\n\n           @raise SciPyError: A C{scipy} issue.\n\n           @raise SciPyWarning: A C{scipy} warning as exception.\n        '''\n        self._notOverloaded(callername='__call__', *llis, **wrap)\n\n    def _as_lls(self, lats, lons):  # in .geoids\n        LLiC, d = self._LLiC, self.datum\n        if _isDegrees(lats) and _isDegrees(lons):\n            llis = LLiC(lats, lons, datum=d)\n        else:\n            n, lats = len2(lats)\n            m, lons = len2(lons)\n            if n != m:  # format a LenError, but raise self._Error\n                e = LenError(type(self), lats=n, lons=m, txt=None)\n                raise self._Error(str(e))\n            llis = [LLiC(*t, datum=d) for t in zip(lats, lons)]\n        return llis\n\n    @property_RO\n    def datum(self):\n        '''Get the C{datum} setting or the default (L{Datum}).\n        '''\n        return self._datum\n\n    def height(self, lats, lons, **wrap):  # PYCHOK no cover\n        '''I{Must be overloaded}.'''\n        self._notOverloaded(lats, lons, **wrap)\n\n    def height_(self, *latlons, **wrap):\n        '''Interpolate the height for each M{(latlons[i], latlons[i+1]) pair\n           for i in range(0, len(latlons), B{2})}.\n\n           @arg latlons: Alternating lat-/longitude pairs (each C{degrees}),\n                         all positional.\n\n           @see: Method C{height} for further details.\n\n           @return: A tuple of interpolated heights (each C{float}).\n        '''\n        lls = self._as_lls(latlons[0::2], latlons[1::2])\n        return tuple(self(lls, **wrap))\n\n    @property_RO\n    def kmin(self):\n        '''Get the minimum number of knots (C{int}).\n        '''\n        return self._kmin\n\n    @property_RO\n    def wrap(self):\n        '''Get the C{wrap} setting (C{bool}) or C{None}.\n        '''\n        return self._wrap\n\n\nclass _HeightBase(_HeightNamed):  # in .geoids\n    '''(INTERNAL) Interpolator base class.\n    '''\n    _k2interp2d = {-1: _linear_,  # in .geoids._GeoidBase.__init__\n                   -2: _linear_,  # for backward compatibility\n                   -3: 'cubic',\n                   -5: 'quintic'}\n\n    def _as_xyllis4(self, llis, **wrap):\n        # convert lli C{LatLon}s to tuples or C{NumPy} arrays of\n        # C{SciPy} sphericals and determine the return type\n        atype = self.numpy.array\n        kwds = _xkwds(wrap, wrap=self._wrap, height=False)\n        _as, llis   = _as_llis2(llis)\n        xis, yis, _ =  zip(*_xyhs(llis=llis, **kwds))  # PYCHOK yield\n        return _as, atype(xis), atype(yis), llis\n\n    def _ev(self, *args):  # PYCHOK no cover\n        '''(INTERNAL) I{Must be overloaded}.'''\n        self._notOverloaded(*args)\n\n    def _evalls(self, llis, **wrap):  # XXX single arg, not *args\n        _as, xis, yis, _ = self._as_xyllis4(llis, **wrap)\n        try:  # SciPy .ev signature: y first, then x!\n            return _as(self._ev(yis, xis))\n        except Exception as x:\n            raise _SciPyIssue(x, self._ev_name)\n\n    def _ev2d(self, x, y):  # PYCHOK no cover\n        '''(INTERNAL) I{Must be overloaded}.'''\n        self._notOverloaded(x, y)\n\n    @property_RO\n    def _ev_name(self):\n        '''(INTERNAL) Get the name of the C{.ev} method.\n        '''\n        _ev = str(self._ev)\n        if _scipy_ not in _ev:\n            _ev = str(self._ev2d)\n        # '<scipy.interpolate._interpolate.interp2d object at ...>\n        # '<function _HeightBase._interp2d.<locals>._bisplev at ...>\n        # '<bound method BivariateSpline.ev of ... object at ...>\n        _ev = _ev[1:].split(None, 4)\n        return Fmt.PAREN(_ev['sfb'.index(_ev[0][0])])\n\n    def height(self, lats, lons, **wrap):\n        '''Interpolate the height for one or several lat-/longitudes.\n\n           @arg lats: Latitude or latitudes (each C{degrees}).\n           @arg lons: Longitude or longitudes (each C{degrees}).\n           @kwarg wrap: Kewyord argument C{B{wrap}=False} (C{bool}).  Use C{True} to\n                        wrap or I{normalize} all B{C{lats}} and B{C{lons}} locationts,\n                        overriding the B{C{knots}}' setting.\n\n           @return: A single interpolated height (C{float}) or a list of interpolated\n                    heights (each C{float}).\n\n           @raise HeightError: Insufficient or unequal number of B{C{lats}} and B{C{lons}}.\n\n           @raise SciPyError: A C{scipy} issue.\n\n           @raise SciPyWarning: A C{scipy} warning as exception.\n        '''\n        lls = self._as_lls(lats, lons)  # dup of _HeightIDW.height\n        return self(lls, **wrap)  # __call__(ll) or __call__(lls)\n\n    def _interp2d(self, xs, ys, hs, kind=-3):\n        '''Create a C{scipy.interpolate.interp2d} or C{-.bisplrep/-ev}\n           interpolator before, respectively since C{SciPy} version 1.14.\n        '''\n        try:\n            spi = self.scipy_interpolate\n            if self._scipy_version() < (1, 14) and kind in self._k2interp2d:\n                # SciPy.interpolate.interp2d kind 'linear', 'cubic' or 'quintic'\n                # DEPRECATED since scipy 1.10, removed altogether in 1.14\n                self._ev2d = spi.interp2d(xs, ys, hs, kind=self._k2interp2d[kind])\n\n            else:  # <https://scipy.GitHub.io/devdocs/tutorial/interpolate/interp_transition_guide.html>\n                k = self._kxky(abs(kind))\n                # spi.RectBivariateSpline needs strictly ordered xs and ys\n                r = spi.bisplrep(xs, ys, hs.T, kx=k, ky=k)\n\n                def _bisplev(x, y):\n                    return spi.bisplev(x, y, r)  # .T\n\n                self._ev2d = _bisplev\n\n        except Exception as x:\n            raise _SciPyIssue(x, self._ev_name)\n\n    def _kxky(self, kind):\n        return Int_(kind=kind, low=1, high=5, Error=self._Error)\n\n    def _np_sp2(self, throwarnings=False):  # PYCHOK no cover\n        '''(INTERNAL) Import C{numpy} and C{scipy}, once.\n        '''\n        # raise SciPyWarnings, but not if\n        # scipy has already been imported\n        if throwarnings:  # PYCHOK no cover\n            import sys\n            if _scipy_ not in sys.modules:\n                import warnings\n                warnings.filterwarnings(_error_)\n        return self.numpy, self.scipy\n\n    @property_ROver\n    def numpy(self):\n        '''Get the C{numpy} module or C{None}.\n        '''\n        return _xnumpy(type(self), 1, 9)  # overwrite property_ROver\n\n    @property_ROver\n    def scipy(self):\n        '''Get the C{scipy} module or C{None}.\n        '''\n        return _xscipy(type(self), 1, 2)  # overwrite property_ROver\n\n    @property_ROver\n    def scipy_interpolate(self):\n        '''Get the C{scipy.interpolate} module or C{None}.\n        '''\n        _ = self.scipy\n        import scipy.interpolate as spi  # scipy 1.2.2\n        return spi  # overwrite property_ROver\n\n    def _scipy_version(self, **n):\n        '''Get the C{scipy} version as 2- or 3-tuple C{(major, minor, micro)}.\n        '''\n        return _MODS.internals._version2(self.scipy.version.version, **n)\n\n    def _xyhs3(self, knots, wrap=False, **name):\n        # convert knot C{LatLon}s to tuples or C{NumPy} arrays and C{SciPy} sphericals\n        xs, ys, hs = zip(*_xyhs(knots=knots, wrap=wrap))  # PYCHOK yield\n        n = len(hs)\n        if n < self.kmin:\n            raise _InsufficientError(self.kmin, knots=n)\n        if name:\n            self.name = name\n        return map1(self.numpy.array, xs, ys, hs)\n\n\nclass HeightCubic(_HeightBase):\n    '''Height interpolator based on C{SciPy} U{interp2d<https://docs.SciPy.org/\n       doc/scipy/reference/generated/scipy.interpolate.interp2d.html>}\n       C{kind='cubic'} or U{bisplrep/-ev<https://docs.SciPy.org/doc/scipy/\n       reference/generated/scipy.interpolate.interp2d.html>} C{kx=ky=3}.\n    '''\n    _kind = -3\n    _kmin =  16\n\n    def __init__(self, knots, **name_wrap):\n        '''New L{HeightCubic} interpolator.\n\n           @arg knots: The points with known height (C{LatLon}s).\n           @kwarg name_wrap: Optional C{B{name}=NN} for this height interpolator (C{str})\n                       and keyword argument C{b{wrap}=False} to wrap or I{normalize} all\n                       B{C{knots}} and B{C{llis}} locations iff C{True} (C{bool}).\n\n           @raise HeightError: Insufficient number of B{C{knots}} or invalid B{C{knot}}.\n\n           @raise ImportError: Package C{numpy} or C{scipy} not found or not installed.\n\n           @raise SciPyError: A C{scipy} issue.\n\n           @raise SciPyWarning: A C{scipy} warning as exception.\n        '''\n        xs_yx_hs = self._xyhs3(knots, **name_wrap)\n        self._interp2d(*xs_yx_hs, kind=self._kind)\n\n    def __call__(self, *llis, **wrap):\n        '''Interpolate the height for one or several locations.\n\n           @see: L{Here<_HeightBase.__call__>} for further details.\n        '''\n        return self._evalls(llis, **wrap)\n\n    def _ev(self, yis, xis):  # PYCHOK overwritten with .RectBivariateSpline.ev\n        # to make SciPy .interp2d single (x, y) signature\n        # match SciPy .ev signature(ys, xs), flipped multiples\n        return map(self._ev2d, xis, yis)\n\n\nclass HeightLinear(HeightCubic):\n    '''Height interpolator based on C{SciPy} U{interp2d<https://docs.SciPy.org/\n       doc/scipy/reference/generated/scipy.interpolate.interp2d.html>}\n       C{kind='linear'} or U{bisplrep/-ev<https://docs.SciPy.org/doc/scipy/\n       reference/generated/scipy.interpolate.interp2d.html>} C{kx=ky=1}.\n    '''\n    _kind = -1\n    _kmin =  2\n\n    def __init__(self, knots, **name_wrap):\n        '''New L{HeightLinear} interpolator.\n\n           @see: L{Here<HeightCubic.__init__>} for all details.\n        '''\n        HeightCubic.__init__(self, knots, **name_wrap)\n\n    if _FOR_DOCS:\n        __call__ = HeightCubic.__call__\n        height   = HeightCubic.height\n\n\nclass HeightLSQBiSpline(_HeightBase):\n    '''Height interpolator using C{SciPy} U{LSQSphereBivariateSpline\n       <https://docs.SciPy.org/doc/scipy/reference/generated/scipy.\n       interpolate.LSQSphereBivariateSpline.html>}.\n    '''\n    _kmin = 16  # k = 3, always\n\n    def __init__(self, knots, weight=None, low=1e-4, **name_wrap):\n        '''New L{HeightLSQBiSpline} interpolator.\n\n           @arg knots: The points with known height (C{LatLon}s).\n           @kwarg weight: Optional weight or weights for each B{C{knot}}\n                          (C{scalar} or C{scalar}s).\n           @kwarg low: Optional lower bound for I{ordered knots} (C{radians}).\n           @kwarg name_wrap: Optional C{B{name}=NN} for this height interpolator\n                       (C{str}) and keyword argument C{b{wrap}=False} to wrap or\n                       I{normalize} all B{C{knots}} and B{C{llis}} locations iff\n                       C{True} (C{bool}).\n\n           @raise HeightError: Insufficient number of B{C{knots}} or an invalid\n                               B{C{knot}},  B{C{weight}} or B{C{eps}}.\n\n           @raise LenError: Unequal number of B{C{knots}} and B{C{weight}}s.\n\n           @raise ImportError: Package C{numpy} or C{scipy} not found or not\n                               installed.\n\n           @raise SciPyError: A C{scipy} issue.\n\n           @raise SciPyWarning: A C{scipy} warning as exception.\n        '''\n        np  = self.numpy\n        spi = self.scipy_interpolate\n\n        xs, ys, hs = self._xyhs3(knots, **name_wrap)\n        n = len(hs)\n\n        w = weight\n        if isscalar(w):\n            w = float(w)\n            if w <= 0:\n                raise HeightError(weight=w)\n            w = (w,) * n\n        elif w is not None:\n            m, w = len2(w)\n            if m != n:\n                raise LenError(HeightLSQBiSpline, weight=m, knots=n)\n            m, i = min2(*map(float, w))\n            if m <= 0:  # PYCHOK no cover\n                raise HeightError(Fmt.INDEX(weight=i), m)\n        try:\n            if not EPS < low < (PI_2 - EPS):  # 1e-4 like SciPy example\n                raise HeightError(low=low)\n            ps = np.array(_orderedup(xs, low, PI2 - low))\n            ts = np.array(_orderedup(ys, low, PI  - low))\n            self._ev = spi.LSQSphereBivariateSpline(ys, xs, hs,\n                                                    ts, ps, eps=EPS, w=w).ev\n        except Exception as x:\n            raise _SciPyIssue(x, self._ev_name)\n\n    def __call__(self, *llis, **wrap):\n        '''Interpolate the height for one or several locations.\n\n           @see: L{Here<_HeightBase.__call__>} for further details.\n        '''\n        return self._evalls(llis, **wrap)\n\n\nclass HeightSmoothBiSpline(_HeightBase):\n    '''Height interpolator using C{SciPy} U{SmoothSphereBivariateSpline\n       <https://docs.SciPy.org/doc/scipy/reference/generated/scipy.\n       interpolate.SmoothSphereBivariateSpline.html>}.\n    '''\n    _kmin = 16  # k = 3, always\n\n    def __init__(self, knots, s=4, **name_wrap):\n        '''New L{HeightSmoothBiSpline} interpolator.\n\n           @arg knots: The points with known height (C{LatLon}s).\n           @kwarg s: The spline smoothing factor (C{scalar}), default C{4}.\n           @kwarg name_wrap: Optional C{B{name}=NN} for this height interpolator\n                       (C{str}) and keyword argument C{b{wrap}=False} to wrap or\n                       I{normalize} all B{C{knots}} and B{C{llis}} locations iff\n                       C{True} (C{bool}).\n\n           @raise HeightError: Insufficient number of B{C{knots}} or an invalid\n                               B{C{knot}} or B{C{s}}.\n\n           @raise ImportError: Package C{numpy} or C{scipy} not found or not\n                               installed.\n\n           @raise SciPyError: A C{scipy} issue.\n\n           @raise SciPyWarning: A C{scipy} warning as exception.\n        '''\n        spi = self.scipy_interpolate\n\n        s = Float_(smoothing=s, Error=HeightError, low=4)\n\n        xs, ys, hs = self._xyhs3(knots, **name_wrap)\n        try:\n            self._ev = spi.SmoothSphereBivariateSpline(ys, xs, hs,\n                                                       eps=EPS, s=s).ev\n        except Exception as x:\n            raise _SciPyIssue(x, self._ev_name)\n\n    def __call__(self, *llis, **wrap):\n        '''Interpolate the height for one or several locations.\n\n           @see: L{Here<_HeightBase.__call__>} for further details.\n        '''\n        return self._evalls(llis, **wrap)\n\n\nclass _HeightIDW(_HeightNamed):\n    '''(INTERNAL) Base class for U{Inverse Distance Weighting\n       <https://WikiPedia.org/wiki/Inverse_distance_weighting>} (IDW) height\n       interpolators.\n\n       @see: U{IDW<https://www.Geo.FU-Berlin.DE/en/v/soga/Geodata-analysis/\n             geostatistics/Inverse-Distance-Weighting/index.html>},\n             U{SHEPARD_INTERP_2D<https://People.SC.FSU.edu/~jburkardt/c_src/\n             shepard_interp_2d/shepard_interp_2d.html>} and other C{_HeightIDW*}\n             classes.\n    '''\n    _beta  =  0     # fidw inverse power\n    _func  =  None  # formy function\n    _knots = ()     # knots list or tuple\n    _kwds  = {}     # func_ options\n\n    def __init__(self, knots, beta=2, **name__kwds):\n        '''New C{_HeightIDW*} interpolator.\n\n           @arg knots: The points with known height (C{LatLon}s).\n           @kwarg beta: Inverse distance power (C{int} 1, 2, or 3).\n           @kwarg name__kwds: Optional C{B{name}=NN} for this height interpolator\n                        (C{str}) and any keyword arguments for the distance function,\n                        retrievable with property C{kwds}.\n\n           @raise HeightError: Insufficient number of B{C{knots}} or an invalid\n                               B{C{knot}} or B{C{beta}}.\n        '''\n        name, kwds = _name2__(**name__kwds)\n        if name:\n            self.name = name\n\n        n, self._knots = len2(knots)\n        if n < self.kmin:\n            raise _InsufficientError(self.kmin, knots=n)\n        self.beta  = beta\n        self._kwds = kwds or {}\n\n    def __call__(self, *llis, **wrap):\n        '''Interpolate the height for one or several locations.\n\n           @arg llis: One or more locations (C{LatLon}s), all positional.\n           @kwarg wrap: If C{True}, wrap or I{normalize} all B{C{llis}}\n                        locations (C{bool}).\n\n           @return: A single interpolated height (C{float}) or a list\n                    or tuple of interpolated heights (C{float}s).\n\n           @raise HeightError: Insufficient number of B{C{llis}}, an\n                               invalid B{C{lli}} or L{pygeodesy.fidw}\n                               issue.\n        '''\n        def _xy2(wrap=False):\n            _w = _Wrap._latlonop(wrap)\n            try:  # like _xyhs above, but degrees\n                for i, ll in enumerate(llis):\n                    yield _w(ll.lon, ll.lat)\n            except Exception as x:\n                i = Fmt.INDEX(llis=i)\n                raise HeightError(i, ll, cause=x)\n\n        _as, llis = _as_llis2(llis)\n        return _as(map(self._hIDW, *zip(*_xy2(**wrap))))\n\n    @property_RO\n    def adjust(self):\n        '''Get the C{adjust} setting (C{bool}) or C{None}.\n        '''\n        return _xkwds_get(self._kwds, adjust=None)\n\n    @property\n    def beta(self):\n        '''Get the inverse distance power (C{int}).\n        '''\n        return self._beta\n\n    @beta.setter  # PYCHOK setter!\n    def beta(self, beta):\n        '''Set the inverse distance power (C{int} 1, 2, or 3).\n\n           @raise HeightError: Invalid B{C{beta}}.\n        '''\n        self._beta = Int_(beta=beta, Error=HeightError, low=1, high=3)\n\n    @property_RO\n    def datum(self):\n        '''Get the C{datum} setting or the default (L{Datum}).\n        '''\n        return _xkwds_get(self._kwds, datum=self._datum)\n\n    def _datum_setter(self, datum):\n        '''(INTERNAL) Set the default C{datum}.\n        '''\n        d = datum or _xattr(self._knots[0], datum=None)\n        if d and d is not self._datum:\n            self._datum = _ellipsoidal_datum(d, name=self.name)\n\n    def _distances(self, x, y):\n        '''(INTERNAL) Yield distances to C{(x, y)}.\n        '''\n        _f, kwds = self._func, self._kwds\n        if not callable(_f):  # PYCHOK no cover\n            self._notOverloaded(distance_function=_f)\n        try:\n            for i, k in enumerate(self._knots):\n                yield _f(y, x, k.lat, k.lon, **kwds)\n        except Exception as x:\n            i = Fmt.INDEX(knots=i)\n            raise HeightError(i, k, cause=x)\n\n    def _distancesTo(self, _To):\n        '''(INTERNAL) Yield distances C{_To}.\n        '''\n        try:\n            for i, k in enumerate(self._knots):\n                yield _To(k)\n        except Exception as x:\n            i = Fmt.INDEX(knots=i)\n            raise HeightError(i, k, cause=x)\n\n    def height(self, lats, lons, **wrap):\n        '''Interpolate the height for one or several lat-/longitudes.\n\n           @arg lats: Latitude or latitudes (each C{degrees}).\n           @arg lons: Longitude or longitudes (each C{degrees}).\n           @kwarg wrap: Keyword argument C{B{wrap}=False} (C{bool}).  Use\n                        C{B{wrap}=True} to wrap or I{normalize} all B{C{lats}}\n                        and B{C{lons}}.\n\n           @return: A single interpolated height (C{float}) or a list of\n                    interpolated heights (each C{float}).\n\n           @raise HeightError: Insufficient or unequal number of B{C{lats}}\n                               and B{C{lons}} or a L{pygeodesy.fidw} issue.\n        '''\n        lls = self._as_lls(lats, lons)  # dup of _HeightBase.height\n        return self(lls, **wrap)  # __call__(ll) or __call__(lls)\n\n    @Property_RO\n    def _heights(self):\n        '''(INTERNAL) Get the knots' heights.\n        '''\n        return tuple(_xattr(k, height=0) for k in self.knots)\n\n    def _hIDW(self, x, y):\n        '''(INTERNAL) Return the IDW-interpolated height at\n           location (x, y), both C{degrees} or C{radians}.\n        '''\n        ds, hs = self._distances(x, y), self._heights\n        try:\n            return _MODS.fmath.fidw(hs, ds, beta=self.beta)\n        except (TypeError, ValueError) as e:\n            raise HeightError(x=x, y=y, cause=e)\n\n    @property_RO\n    def hypot(self):\n        '''Get the C{hypot} setting (C{callable}) or C{None}.\n        '''\n        return _xkwds_get(self._kwds, hypot=None)\n\n    @property_RO\n    def knots(self):\n        '''Get the B{C{knots}} (C{list} or C{tuple}).\n        '''\n        return self._knots\n\n    @property_RO\n    def kwds(self):\n        '''Get the optional keyword arguments (C{dict}).\n        '''\n        return self._kwds\n\n    @property_RO\n    def limit(self):\n        '''Get the C{limit} setting (C{degrees}) or C{None}.\n        '''\n        return _xkwds_get(self._kwds, limit=None)\n\n    @property_RO\n    def radius(self):\n        '''Get the C{radius} setting (C{bool}) or C{None}.\n        '''\n        return _xkwds_get(self._kwds, radius=None)\n\n    @property_RO\n    def scaled(self):\n        '''Get the C{scaled} setting (C{bool}) or C{None}.\n        '''\n        return _xkwds_get(self._kwds, scaled=None)\n\n    @property_RO\n    def wrap(self):\n        '''Get the C{wrap} setting or the default (C{bool}) or C{None}.\n        '''\n        return _xkwds_get(self._kwds, wrap=self._wrap)\n\n\nclass HeightIDWcosineLaw(_HeightIDW):\n    '''Height interpolator using U{Inverse Distance Weighting\n       <https://WikiPedia.org/wiki/Inverse_distance_weighting>} (IDW)\n       and function L{pygeodesy.cosineLaw}.\n\n       @note: See note at function L{pygeodesy.vincentys_}.\n    '''\n    def __init__(self, knots, beta=2, **name__corr_earth_datum_radius_wrap):\n        '''New L{HeightIDWcosineLaw} interpolator.\n\n           @kwarg name__corr_earth_datum_radius_wrap: Optional C{B{name}=NN}\n                        for this height interpolator (C{str}) and any keyword\n                        arguments for function L{pygeodesy.cosineLaw}.\n\n           @see: L{Here<_HeightIDW.__init__>} for further details.\n        '''\n        _HeightIDW.__init__(self, knots, beta=beta, **name__corr_earth_datum_radius_wrap)\n        self._func = _formy.cosineLaw\n\n    if _FOR_DOCS:\n        __call__ = _HeightIDW.__call__\n        height   = _HeightIDW.height\n\n\nclass HeightIDWdistanceTo(_HeightIDW):\n    '''Height interpolator using U{Inverse Distance Weighting\n       <https://WikiPedia.org/wiki/Inverse_distance_weighting>} (IDW)\n       and the points' C{LatLon.distanceTo} method.\n    '''\n    def __init__(self, knots, beta=2, **name__distanceTo_kwds):\n        '''New L{HeightIDWdistanceTo} interpolator.\n\n           @kwarg name__distanceTo_kwds: Optional C{B{name}=NN} for this\n                        height interpolator (C{str}) and keyword arguments\n                        for B{C{knots}}' method C{LatLon.distanceTo}.\n\n           @see: L{Here<_HeightIDW.__init__>} for further details.\n\n           @note: All B{C{points}} I{must} be instances of the same\n                  ellipsoidal or spherical C{LatLon} class, I{not\n                  checked}.\n        '''\n        _HeightIDW.__init__(self, knots, beta=beta, **name__distanceTo_kwds)\n        ks0 = _distanceTo(HeightError, knots=self._knots)[0]\n        # use knots[0] class and datum to create compatible points\n        # in ._as_lls instead of class LatLon_ and datum None\n        self._datum = ks0.datum\n        self._LLiC  = ks0.classof  # type(ks0)\n\n    def _distances(self, x, y):\n        '''(INTERNAL) Yield distances to C{(x, y)}.\n        '''\n        kwds, ll = self._kwds, self._LLiC(y, x)\n\n        def _To(k):\n            return k.distanceTo(ll, **kwds)\n\n        return self._distancesTo(_To)\n\n    if _FOR_DOCS:\n        __call__ = _HeightIDW.__call__\n        height   = _HeightIDW.height\n\n\nclass HeightIDWequirectangular(_HeightIDW):\n    '''Height interpolator using U{Inverse Distance Weighting\n       <https://WikiPedia.org/wiki/Inverse_distance_weighting>} (IDW)\n       and function L{pygeodesy.equirectangular4}.\n    '''\n    def __init__(self, knots, beta=2, **name__adjust_limit_wrap):  # XXX beta=1\n        '''New L{HeightIDWequirectangular} interpolator.\n\n           @kwarg name__adjust_limit_wrap: Optional C{B{name}=NN} for this\n                        height interpolator (C{str}) and keyword arguments\n                        for function L{pygeodesy.equirectangular4}.\n\n           @see: L{Here<_HeightIDW.__init__>} for further details.\n        '''\n        _HeightIDW.__init__(self, knots, beta=beta, **name__adjust_limit_wrap)\n\n    def _distances(self, x, y):\n        '''(INTERNAL) Yield distances to C{(x, y)}.\n        '''\n        _f, kwds = _formy.equirectangular4, self._kwds\n\n        def _To(k):\n            return _f(y, x, k.lat, k.lon, **kwds).distance2\n\n        return self._distancesTo(_To)\n\n    if _FOR_DOCS:\n        __call__ = _HeightIDW.__call__\n        height   = _HeightIDW.height\n\n\nclass HeightIDWeuclidean(_HeightIDW):\n    '''Height interpolator using U{Inverse Distance Weighting\n       <https://WikiPedia.org/wiki/Inverse_distance_weighting>} (IDW)\n       and function L{pygeodesy.euclidean_}.\n    '''\n    def __init__(self, knots, beta=2, **name__adjust_radius_wrap):\n        '''New L{HeightIDWeuclidean} interpolator.\n\n           @kwarg name__adjust_radius_wrap: Optional C{B{name}=NN} for this\n                        height interpolator (C{str}) and keyword arguments\n                        for function function L{pygeodesy.euclidean}.\n\n           @see: L{Here<_HeightIDW.__init__>} for further details.\n        '''\n        _HeightIDW.__init__(self, knots, beta=beta, **name__adjust_radius_wrap)\n        self._func = _formy.euclidean\n\n    if _FOR_DOCS:\n        __call__ = _HeightIDW.__call__\n        height   = _HeightIDW.height\n\n\nclass HeightIDWexact(_HeightIDW):\n    '''Height interpolator using U{Inverse Distance Weighting\n       <https://WikiPedia.org/wiki/Inverse_distance_weighting>} (IDW)\n       and method L{GeodesicExact.Inverse}.\n    '''\n    def __init__(self, knots, beta=2, datum=None, **name__wrap):\n        '''New L{HeightIDWexact} interpolator.\n\n           @kwarg datum: Datum to override the default C{Datums.WGS84} and\n                         first B{C{knots}}' datum (L{Datum}, L{Ellipsoid},\n                         L{Ellipsoid2} or L{a_f2Tuple}).\n           @kwarg name__wrap: Optional C{B{name}=NN} for this height interpolator\n                        (C{str}) and a keyword argument for method C{Inverse1} of\n                        class L{geodesicx.GeodesicExact}.\n\n           @raise TypeError: Invalid B{C{datum}}.\n\n           @see: L{Here<_HeightIDW.__init__>} for further details.\n        '''\n        _HeightIDW.__init__(self, knots, beta=beta, **name__wrap)\n        self._datum_setter(datum)\n        self._func = self.datum.ellipsoid.geodesicx.Inverse1\n\n    if _FOR_DOCS:\n        __call__ = _HeightIDW.__call__\n        height   = _HeightIDW.height\n\n\nclass HeightIDWflatLocal(_HeightIDW):\n    '''Height interpolator using U{Inverse Distance Weighting\n       <https://WikiPedia.org/wiki/Inverse_distance_weighting>} (IDW) and\n       the function L{pygeodesy.flatLocal_}/L{pygeodesy.hubeny_}.\n    '''\n    def __init__(self, knots, beta=2, **name__datum_hypot_scaled_wrap):\n        '''New L{HeightIDWflatLocal}/L{HeightIDWhubeny} interpolator.\n\n           @kwarg name__datum_hypot_scaled_wrap: Optional C{B{name}=NN}\n                        for this height interpolator (C{str}) and any\n                        keyword arguments for L{pygeodesy.flatLocal}.\n\n           @see: L{HeightIDW<_HeightIDW.__init__>} for further details.\n        '''\n        _HeightIDW.__init__(self, knots, beta=beta,\n                                       **name__datum_hypot_scaled_wrap)\n        self._func = _formy.flatLocal\n\n    if _FOR_DOCS:\n        __call__ = _HeightIDW.__call__\n        height   = _HeightIDW.height\n\n\nclass HeightIDWflatPolar(_HeightIDW):\n    '''Height interpolator using U{Inverse Distance Weighting\n       <https://WikiPedia.org/wiki/Inverse_distance_weighting>} (IDW)\n       and function L{pygeodesy.flatPolar_}.\n    '''\n    def __init__(self, knots, beta=2, **name__radius_wrap):\n        '''New L{HeightIDWflatPolar} interpolator.\n\n           @kwarg name__radius_wrap: Optional C{B{name}=NN} for this\n                        height interpolator (C{str}) and any keyword\n                        arguments for function L{pygeodesy.flatPolar}.\n\n           @see: L{Here<_HeightIDW.__init__>} for further details.\n        '''\n        _HeightIDW.__init__(self, knots, beta=beta, **name__radius_wrap)\n        self._func = _formy.flatPolar\n\n    if _FOR_DOCS:\n        __call__ = _HeightIDW.__call__\n        height   = _HeightIDW.height\n\n\nclass HeightIDWhaversine(_HeightIDW):\n    '''Height interpolator using U{Inverse Distance Weighting\n       <https://WikiPedia.org/wiki/Inverse_distance_weighting>} (IDW)\n       and function L{pygeodesy.haversine_}.\n\n       @note: See note at function L{pygeodesy.vincentys_}.\n    '''\n    def __init__(self, knots, beta=2, **name__radius_wrap):\n        '''New L{HeightIDWhaversine} interpolator.\n\n           @kwarg name__radius_wrap: Optional C{B{name}=NN} for this\n                        height interpolator (C{str}) and any keyword\n                        arguments for function L{pygeodesy.haversine}.\n\n           @see: L{Here<_HeightIDW.__init__>} for further details.\n        '''\n        _HeightIDW.__init__(self, knots, beta=beta, **name__radius_wrap)\n        self._func = _formy.haversine\n\n    if _FOR_DOCS:\n        __call__ = _HeightIDW.__call__\n        height   = _HeightIDW.height\n\n\nclass HeightIDWhubeny(HeightIDWflatLocal):  # for Karl Hubeny\n    if _FOR_DOCS:\n        __doc__  = HeightIDWflatLocal.__doc__\n        __init__ = HeightIDWflatLocal.__init__\n        __call__ = HeightIDWflatLocal.__call__\n        height   = HeightIDWflatLocal.height\n\n\nclass HeightIDWkarney(_HeightIDW):\n    '''Height interpolator using U{Inverse Distance Weighting\n       <https://WikiPedia.org/wiki/Inverse_distance_weighting>} (IDW) and\n       I{Karney}'s U{geographiclib<https://PyPI.org/project/geographiclib>}\n       method U{geodesic.Geodesic.Inverse<https://GeographicLib.SourceForge.io/\n       Python/doc/code.html#geographiclib.geodesic.Geodesic.Inverse>}.\n    '''\n    def __init__(self, knots, beta=2, datum=None, **name__wrap):\n        '''New L{HeightIDWkarney} interpolator.\n\n           @kwarg datum: Datum to override the default C{Datums.WGS84} and\n                         first B{C{knots}}' datum (L{Datum}, L{Ellipsoid},\n                         L{Ellipsoid2} or L{a_f2Tuple}).\n           @kwarg name__wrap: Optional C{B{name}=NN} for this height interpolator\n                        (C{str}) and a keyword argument for method C{Inverse1} of\n                        class L{geodesicw.Geodesic}.\n\n           @raise ImportError: Package U{geographiclib\n                  <https://PyPI.org/project/geographiclib>} missing.\n\n           @raise TypeError: Invalid B{C{datum}}.\n\n           @see: L{Here<_HeightIDW.__init__>} for further details.\n        '''\n        _HeightIDW.__init__(self, knots, beta=beta, **name__wrap)\n        self._datum_setter(datum)\n        self._func = self.datum.ellipsoid.geodesic.Inverse1\n\n    if _FOR_DOCS:\n        __call__ = _HeightIDW.__call__\n        height   = _HeightIDW.height\n\n\nclass HeightIDWthomas(_HeightIDW):\n    '''Height interpolator using U{Inverse Distance Weighting\n       <https://WikiPedia.org/wiki/Inverse_distance_weighting>} (IDW)\n       and function L{pygeodesy.thomas_}.\n    '''\n    def __init__(self, knots, beta=2, **name__datum_wrap):\n        '''New L{HeightIDWthomas} interpolator.\n\n           @kwarg name__datum_wrap: Optional C{B{name}=NN} for this\n                        height interpolator (C{str}) and any keyword\n                        arguments for function L{pygeodesy.thomas}.\n\n           @see: L{Here<_HeightIDW.__init__>} for further details.\n        '''\n        _HeightIDW.__init__(self, knots, beta=beta, **name__datum_wrap)\n        self._func = _formy.thomas\n\n    if _FOR_DOCS:\n        __call__ = _HeightIDW.__call__\n        height   = _HeightIDW.height\n\n\nclass HeightIDWvincentys(_HeightIDW):\n    '''Height interpolator using U{Inverse Distance Weighting\n       <https://WikiPedia.org/wiki/Inverse_distance_weighting>} (IDW)\n       and function L{pygeodesy.vincentys_}.\n\n       @note: See note at function L{pygeodesy.vincentys_}.\n    '''\n    def __init__(self, knots, beta=2, **name__radius_wrap):\n        '''New L{HeightIDWvincentys} interpolator.\n\n           @kwarg name__radius_wrap: Optional C{B{name}=NN} for this\n                        height interpolator (C{str}) and any keyword\n                        arguments for function L{pygeodesy.vincentys}.\n\n           @see: L{Here<_HeightIDW.__init__>} for further details.\n        '''\n        _HeightIDW.__init__(self, knots, beta=beta, **name__radius_wrap)\n        self._func = _formy.vincentys\n\n    if _FOR_DOCS:\n        __call__ = _HeightIDW.__call__\n        height   = _HeightIDW.height\n\n\n__all__ += _ALL_DOCS(_HeightBase, _HeightIDW, _HeightNamed)\n\n# **) MIT License\n#\n# Copyright (C) 2016-2026 -- mrJean1 at Gmail -- All Rights Reserved.\n#\n# Permission is hereby granted, free of charge, to any person obtaining a\n# copy of this software and associated documentation files (the \"Software\"),\n# to deal in the Software without restriction, including without limitation\n# the rights to use, copy, modify, merge, publish, distribute, sublicense,\n# and/or sell copies of the Software, and to permit persons to whom the\n# Software is furnished to do so, subject to the following conditions:\n#\n# The above copyright notice and this permission notice shall be included\n# in all copies or substantial portions of the Software.\n#\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL\n# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR\n# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\n# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n# OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "pygeodesy/internals.py",
    "content": "\n# -*- coding: utf-8 -*-\n\nu'''Mostly INTERNAL functions, except L{machine}, L{print_} and L{printf}.\n'''\n# from pygeodesy.basics import isiterablen, ubstr  # _MODS\n# from pygeodesy.errors import _AttributeError, _error_init, _ImmutableError, _UnexpectedError, _xError2  # _MODS\nfrom pygeodesy.interns import _BAR_, _COLON_, _DASH_, _DMAIN_, _DOT_, _ELLIPSIS_, _NL_, NN, \\\n                              _NLATvar_, _pygeodesy_, _PyPy__, _python_, _QUOTE1_, _QUOTE2_, \\\n                              _s_, _sys, _SPACE_, _UNDER_\nfrom pygeodesy.interns import _COMMA_, _Python_  # PYCHOK used!\n# from pygeodesy.streprs import anstr, pairs, unstr  # _MODS\n\n# import os  # _MODS\n# import os.path  # _MODS\n# import sys as _sys  # from .interns\n\n_0_0      =  0.0  # PYCHOK in .basics, .constants\n_100_0    =  100.0  # in .constants\n_arm64_   = 'arm64'\n_iOS_     = 'iOS'\n_macOS_   = 'macOS'\n_SIsecs   = 'fs', 'ps', 'ns', 'us', 'ms', 'sec'  # reversed\n_Windows_ = 'Windows'\n\n\ndef typename(obj, *dflt):\n    '''Get the C{obj.__name__}, the C{dflt} or its outer C{type.__name__} or C{NN} (C{str}).\n    '''\n    try:\n        return obj.__name__\n    except (AttributeError, ImportError):  # LazyImportError\n        pass\n    return dflt[0] if dflt else typename(type(obj), NN)\n\n\ndef _Property_RO(method):\n    '''(INTERNAL) Can't import L{props.Property_RO}, I{recursively}.\n    '''\n    name = typename(method)\n\n    def _del(inst, *unused):  # PYCHOK no cover\n        inst.__dict__.pop(name, None)\n\n    def _get(inst, *unused):  # PYCHOK 2 vs 3 args\n        try:  # to get the cached value immediately\n            v = inst.__dict__[name]\n        except (AttributeError, KeyError):\n            # cache the value in the instance' __dict__\n            inst.__dict__[name] = v = method(inst)\n        return v\n\n    def _set(inst, val):  # PYCHOK no cover\n        setattr(inst, name, val)  # force error\n\n    return property(_get, _set, _del)\n\n\nclass _Enum(object):  # in .elliptic, .utily\n    '''(INTERNAL) Enum-like, immutable items.\n    '''\n    # _ImmutableError = None\n\n    def __init__(self, **enums):\n        self.__dict__.update(enums)\n        # for item in enums.items():\n        #     setattr(self, *item)  # object.__setattr__\n\n    def __str__(self):\n        _unstr = _MODS.streprs.unstr\n        return _unstr(_Enum, **self.__dict__)\n\n    # def __delattr__(self, attr):  # PYCHOK no cover\n        # raise _ImmutableError(self, attr)  # _del_\n\n    # def __setattr__(self, attr, value):  # PYCHOK no cover\n        # raise _ImmutableError(self, attr, value)\n\n\nclass _MODS_Base(object):\n    '''(INTERNAL) Base-class for C{lazily._ALL_MODS}.\n    '''\n    def __delattr__(self, attr):  # PYCHOK no cover\n        self.__dict__.pop(attr, None)\n\n    def __setattr__(self, attr, value):  # PYCHOK no cover\n        raise _ImmutableError(self, attr, value)\n\n    @_Property_RO\n    def basics(self):\n        '''Get module C{pygeodesy.basics}, I{once}.\n        '''\n        from pygeodesy import basics as b  # DON'T _lazy_import2\n        return b\n\n    @_Property_RO\n    def bits_machine2(self):  # in test/bases.py\n        '''Get platform 2-list C{[bits, machine]}, I{once}.\n        '''\n        import platform as p\n        m = p.machine()  # ARM64, arm64, x86_64, iPhone13,2, etc.\n        m = m.replace(_COMMA_, _UNDER_)\n        if m.lower() == 'x86_64':  # PYCHOK on Intel or Rosetta2 ...\n            v = p.mac_ver()[0]  # ... and only on macOS ...\n            if v and _version2(v) > (10, 15):  # ... 11+ aka 10.16\n                # <https://Developer.Apple.com/forums/thread/659846>\n                #  _sysctl_uint('hw.optional.arm64') and \\\n                if _sysctl_uint('sysctl.proc_translated'):\n                    m = _UNDER_(_arm64_, m)  # Apple Si emulating Intel x86-64\n        return [p.architecture()[0],  # bits\n                m]  # arm64, arm64_x86_64, x86_64, etc.\n\n    @_Property_RO\n    def ctypes3(self):\n        '''Get C{ctypes.CDLL}, C{find_library} and C{dlopen}, I{once}.\n        '''\n        import ctypes as c\n        from ctypes.util import find_library as f\n\n        def dlopen(name):  # on macOS only\n            return c._dlopen(name, c.DEFAULT_MODE)\n\n        return c.CDLL, f, (dlopen if _ismacOS() else None)\n\n    @_Property_RO\n    def errors(self):\n        '''Get module C{pygeodesy.errors}, I{once}.\n        '''\n        from pygeodesy import errors as e  # DON'T _lazy_import2\n        return e\n\n    @_Property_RO\n    def inspect(self):  # in .basics\n        '''Get module C{inspect}, I{once}.\n        '''\n        import inspect as i\n        return i\n\n    def ios_ver(self):\n        '''Mimick C{platform.xxx_ver} for C{iOS}.\n        '''\n        try:  # Pythonista only\n            from platform import iOS_ver\n            t = iOS_ver()\n        except (AttributeError, ImportError):\n            t = NN, (NN, NN, NN), NN\n        return t\n\n    @_Property_RO\n    def name(self):\n        '''Get this name (C{str}).\n        '''\n        return typename(type(self))\n\n    @_Property_RO\n    def nix2(self):  # PYCHOK no cover\n        '''Get Linux 2-tuple C{(distro, version)}, I{once}.\n        '''\n        from platform import uname\n        v, n = NN, uname()[0]  # [0] == .system\n        if n.lower() == 'linux':\n            try:  # use distro only on Linux, not macOS, etc.\n                import distro  # <https://PyPI.org/project/distro>\n                _a = _MODS.streprs.anstr\n                v  = _a(distro.version())  # first\n                n  = _a(distro.id())  # .name()?\n            except (AttributeError, ImportError):\n                pass  # v = str(_0_0)\n            n = n.capitalize()\n        return n, v\n\n    def nix_ver(self):  # PYCHOK no cover\n        '''Mimick C{platform.xxx_ver} for C{*nix}.\n        '''\n        _, v = _MODS.nix2\n        t = _version2(v, n=3) if v else (NN, NN, NN)\n        return v, t, machine()\n\n    @_Property_RO\n    def os(self):\n        '''Get module C{os}, I{once}.\n        '''\n        import os as o\n        import os.path\n        return o\n\n    @_Property_RO\n    def osversion2(self):\n        '''Get 2-list C{[OS, release]}, I{once}.\n        '''\n        import platform as p\n        _Nix, _ = _MODS.nix2\n        # - mac_ver() returns ('10.12.5', ..., 'x86_64') on\n        #   macOS and ('10.3.3', ..., 'iPad4,2') on iOS\n        # - win32_ver is ('XP', ..., 'SP3', ...) on Windows XP SP3\n        # - platform() returns 'Darwin-16.6.0-x86_64-i386-64bit'\n        #   on macOS and 'Darwin-16.6.0-iPad4,2-64bit' on iOS\n        # - sys.platform is 'darwin' on macOS, 'ios' on iOS,\n        #   'win32' on Windows and 'cygwin' on Windows/Gygwin\n        # - distro.id() and .name() return 'Darwin' on macOS\n        for n, v in ((_iOS_, _MODS.ios_ver),\n                     (_macOS_,   p.mac_ver),\n                     (_Windows_, p.win32_ver),\n                     (_Nix,  _MODS.nix_ver),\n# removed Py 3.15    ('Java',    p.java_ver),\n                     ('uname',   p.uname)):\n            v = v()[0]\n            if v and n:\n                break\n        else:\n            n = v = NN  # XXX AssertionError?\n        return [n, v]\n\n    @_Property_RO\n    def _Popen_kwds2(self):\n        '''(INTERNAL) Get C{subprocess.Popen} and C{-kwds}.\n        '''\n        import subprocess as s\n        kwds = dict(creationflags=0,  # executable=sys.executable, shell=True,\n                    stdin=s.PIPE, stdout=s.PIPE, stderr=s.STDOUT)\n        if _MODS.sys_version_info2 > (3, 6):\n            kwds.update(text=True)\n        return s.Popen, kwds\n\n    @_Property_RO\n    def Pythonarchine(self):\n        '''Get 3- or 4-list C{[PyPy, Python, bits, machine]}, I{once}.\n        '''\n        v  =  _sys.version\n        l3 = [_Python_(v)] + _MODS.bits_machine2\n        pypy = _PyPy__(v)\n        if pypy:  # PYCHOK no cover\n            l3.insert(0, pypy)\n        return l3\n\n    @_Property_RO\n    def streprs(self):\n        '''Get module C{pygeodesy.streprs}, I{once}.\n        '''\n        from pygeodesy import streprs as s  # DON'T _lazy_import2\n        return s\n\n    @_Property_RO\n    def sys_version_info2(self):\n        '''Get C{sys.version_inf0[:2], I{once}.\n        '''\n        return _sys.version_info[:2]\n\n    @_Property_RO\n    def version(self):\n        '''Get pygeodesy version, I{once}.\n        '''\n        from pygeodesy import version as v\n        return v\n\n_MODS = _MODS_Base()  # PYCHOK overwritten by .lazily\n\n\ndef _caller3(up, base=True):  # in .lazily, .named\n    '''(INTERNAL) Get 3-tuple C{(caller name, file name, line number)}\n       for the caller B{C{up}} frames back in the Python call stack.\n\n       @kwarg base: Use C{B{base}=False} for the fully-qualified file\n                    name, otherwise the base (module) name (C{bool}).\n    '''\n    f  =  None\n    _b = _MODS.os.path.basename if base else _passarg\n    try:\n        f = _sys._getframe(up + 1)  # == inspect.stack()[up + 1][0]\n        t = _MODS.inspect.getframeinfo(f)\n        t =  t.function, _b(t.filename), t.lineno\n# or ...\n        # f = _sys._getframe(up + 1)\n        # c =  f.f_code\n        # t = (c.co_name,  # caller name\n        #     _b(c.co_filename),  # file name .py\n        #      f.f_lineno)  # line number\n# or ...\n        # t = _MODS.inspect.stack()[up + 1]  # (frame, filename, lineno, function, ...)\n        # t =  t[3], _b(t[1]), t[2]\n    except (AttributeError, IndexError, ValueError):\n        # sys._getframe(1) ... 'importlib._bootstrap' line 1032,\n        # may throw a ValueError('call stack not deep enough')\n        t = NN, NN, 0\n    finally:\n        del f  # break ref cycle\n    return t\n\n\ndef _enquote(strs, quote=_QUOTE2_, white=NN):  # in .basics, .solveBase\n    '''(INTERNAL) Enquote a string containing whitespace or replace\n       whitespace by C{white} if specified.\n    '''\n    if strs:\n        t = strs.split()\n        if len(t) > 1:\n            strs = white.join(t if white else (quote, strs, quote))\n    return strs\n\n\ndef _envPYGEODESY(which, dflt=NN):\n    '''(INTERNAL) Return an C{PYGEODESY_...} ENV value or C{dflt}.\n    '''\n    return _getenv(_PYGEODESY_ENV(which), dflt)\n\n\ndef _fper(p, q, per=_100_0, prec=1):\n    '''Format a percentage C{B{p} * B{per} / B{q}} (C{str}).\n    '''\n    return '%.*f%%' % (prec, (float(p) * per / float(q)))\n\n\n_getenv = _MODS.os.getenv  # PYCHOK in .lazily, ...\n\n\ndef _headof(name):\n    '''(INTERNAL) Get the head name of qualified C{name} or the C{name}.\n    '''\n    i = name.find(_DOT_)\n    return name if i < 0 else name[:i]\n\n\ndef _ImmutableError(*inst_attr_value):\n    '''(INTERNAL) Format an C{_ImmutableError}.\n    '''\n    return _MODS.errors._ImmutableError(*inst_attr_value)\n\n\n# def _is(a, b):  # PYCHOK no cover\n#     '''(INTERNAL) C{a is b}? in C{PyPy}\n#     '''\n#     return (a == b) if _isPyPy() else (a is b)\n\n\ndef _isAppleSi():  # PYCHOK no cover\n    '''(INTERNAL) Is this C{macOS on Apple Silicon}? (C{bool})\n    '''\n    return _ismacOS() and machine().startswith(_arm64_)\n\n\ndef _isiOS():  # in test/bases\n    '''(INTERNAL) Is this C{iOS}? (C{bool})\n    '''\n    return _MODS.osversion2[0] is _iOS_\n\n\ndef _ismacOS():  # in test/bases\n    '''(INTERNAL) Is this C{macOS}? (C{bool})\n    '''\n    return _sys.platform[:6]   == 'darwin' and \\\n           _MODS.osversion2[0] is _macOS_  # and _MODS.os.name == 'posix'\n\n\ndef _isNix():  # in test/bases\n    '''(INTERNAL) Is this a C{Linux} distro? (C{str} or L{NN})\n    '''\n    return _MODS.nix2[0]\n\n\ndef _isPyChOK():  # PYCHOK no cover\n    '''(INTERNAL) Is C{PyChecker} running? (C{bool})\n    '''\n    # .../pychecker/checker.py --limit 0 --stdlib pygeodesy/<mod>/<name>.py\n    return _sys.argv[0].endswith('/pychecker/checker.py') or \\\n            bool(_envPYGEODESY('PYCHOK'))\n\n\ndef _isPyPy():  # in test/bases\n    '''(INTERNAL) Is this C{PyPy}? (C{bool})\n    '''\n    # platform.python_implementation() == 'PyPy'\n    return _MODS.Pythonarchine[0].startswith(_PyPy__)\n\n\ndef _isWindows():  # in test/bases\n    '''(INTERNAL) Is this C{Windows}? (C{bool})\n    '''\n    return _sys.platform[:3]   == 'win' and \\\n           _MODS.osversion2[0] is _Windows_\n\n\ndef _load_lib(name):\n    '''(INTERNAL) Load a C{dylib}, B{C{name}} must startwith('lib').\n    '''\n    CDLL, find_lib, dlopen = _MODS.ctypes3\n    ns = find_lib(name), name\n    if dlopen:\n        # macOS 11+ (aka 10.16) no longer provides direct loading of\n        # system libraries.  As a result, C{ctypes.util.find_library}\n        # will not find any library, unless previously installed by a\n        # low-level dlopen(name) call (with the library base C{name}).\n        ns += (_DOT_(name, 'dylib'),\n               _DOT_(name, 'framework'), _MODS.os.path.join(\n               _DOT_(name, 'framework'),  name))\n    else:  # not macOS\n        dlopen = _passarg  # no-op\n\n    for n in ns:\n        try:\n            if n and dlopen(n):  # pre-load handle\n                lib = CDLL(n)  # == ctypes.cdll.LoadLibrary(n)\n                if lib._name:  # has a qualified name\n                    return lib\n        except (AttributeError, OSError):\n            pass\n\n    return None  # raise OSError\n\n\ndef machine():\n    '''Return standard C{platform.machine}, but distinguishing Intel I{native}\n       from Intel I{emulation} on Apple Silicon (on macOS only).\n\n       @return: Machine C{'arm64'} for Apple Silicon I{native}, C{'x86_64'}\n                for Intel I{native}, C{\"arm64_x86_64\"} for Intel I{emulation},\n                etc. (C{str} with C{comma}s replaced by C{underscore}s).\n    '''\n    return _MODS.bits_machine2[1]\n\n\ndef _name_version(pkg):\n    '''(INTERNAL) Return C{pkg.__name__ + ' ' + .__version__}.\n    '''\n    return _SPACE_(typename(pkg), pkg.__version__)  # _DVERSION_\n\n\ndef _osversion2(sep=NN):  # in .lazily, test/bases.versions\n    '''(INTERNAL) Get the O/S name and release as C{2-list} or C{str}.\n    '''\n    l2 = _MODS.osversion2\n    return sep.join(l2) if sep else l2  # 2-list()\n\n\ndef _passarg(arg):\n    '''(INTERNAL) Helper, no-op.\n    '''\n    return arg\n\n\ndef _passargs(*args):\n    '''(INTERNAL) Helper, no-op.\n    '''\n    return args\n\n\ndef _plural(noun, n, nn=NN):\n    '''(INTERNAL) Return C{noun}['s'] or C{NN}.\n    '''\n    return NN(noun, _s_) if n > 1 else (noun if n else nn)\n\n\ndef _popen2(cmd, stdin=None):  # in .mgrs, .solveBase, .testMgrs\n    '''(INTERNAL) Invoke C{B{cmd} tuple} and return 2-tuple C{(std, status)}\n       with all C{stdout/-err} output, I{stripped} and C{int} exit status.\n    '''\n    _Popen, kwds = _MODS._Popen_kwds2\n    p = _Popen(cmd, **kwds)  # PYCHOK kwArgs\n    r =  p.communicate(stdin)[0]  # stdout + NL + stderr\n    return _MODS.basics.ub2str(r).strip(), p.returncode\n\n\ndef _pregistry(registry):\n    '''(INTERNAL) Print all items of a C{registry}.\n    '''\n    t = [NN] + registry.toRepr(all=True, asorted=True).split(_NL_)\n    printf(_NLATvar_.join(i.strip(_COMMA_) for i in t))\n\n\ndef print_(*args, **nl_nt_prec_prefix__end_file_flush_sep__kwds):  # PYCHOK no cover\n    '''Python 3+ C{print}-like formatting and printing.\n\n       @arg args: Values to be converted to C{str} and joined by B{C{sep}},\n                  all positional.\n\n       @see: Function L{printf} for further details.\n    '''\n    return printf(NN, *args, **nl_nt_prec_prefix__end_file_flush_sep__kwds)\n\n\ndef printf(fmt, *args, **nl_nt_prec_prefix__end_file_flush_sep__kwds):\n    '''C{Printf-style} and Python 3+ C{print}-like formatting and printing.\n\n       @arg fmt: U{Printf-style<https://Docs.Python.org/3/library/stdtypes.html#\n                 printf-style-string-formatting>} format specification (C{str}).\n       @arg args: Arguments to be formatted (any C{type}, all positional).\n       @kwarg nl_nt_prec_prefix__end_file_flush_sep__kwds: Optional keyword arguments\n                 C{B{nl}=0} for the number of leading blank lines (C{int}), C{B{nt}=0}\n                 the number of trailing blank lines (C{int}), C{B{prefix}=NN} to be\n                 inserted before the formatted text (C{str}) and Python 3+ C{print}\n                 keyword arguments C{B{end}}, C{B{sep}}, C{B{file}} and C{B{flush}}.\n                 Any remaining C{B{kwds}} are C{printf-style} name-value pairs to be\n                 formatted, I{iff no B{C{args}} are present} using C{B{prec}=6} for\n                 the number of decimal digits (C{int}).\n\n       @return: Number of bytes written.\n    '''\n    b, e, f, fl, p, s, kwds = _print7(**nl_nt_prec_prefix__end_file_flush_sep__kwds)\n    try:\n        if args:\n            t = (fmt % args) if fmt else s.join(map(str, args))\n        elif kwds:\n            t = (fmt % kwds) if fmt else s.join(\n                _MODS.streprs.pairs(kwds, prec=p))\n        else:\n            t =  fmt\n    except Exception as x:\n        _Error, s = _MODS.errors._xError2(x)\n        _unstr    = _MODS.streprs.unstr\n        t = _unstr(printf, fmt, *args, **nl_nt_prec_prefix__end_file_flush_sep__kwds)\n        raise _Error(s, txt=t, cause=x)\n    try:\n        n = f.write(NN(b, t, e))\n    except UnicodeEncodeError:  # XXX only Windows\n        t = t.replace('\\u2032', _QUOTE1_).replace('\\u2033', _QUOTE2_)\n        n = f.write(NN(b, t, e))\n    if fl:  # PYCHOK no cover\n        f.flush()\n    return n\n\n\ndef _print7(nl=0, nt=0, prec=6, prefix=NN, sep=_SPACE_, file=_sys.stdout,\n                                           end=_NL_, flush=False, **kwds):\n    '''(INTERNAL) Unravel the C{printf} and remaining keyword arguments.\n    '''\n    if nl > 0:\n        prefix = NN(_NL_ * nl, prefix)\n    if nt > 0:\n        end = NN(end, _NL_ * nt)\n    return prefix, end, file, flush, prec, sep, kwds\n\n\ndef _PYGEODESY_ENV(which):\n    '''(INTERNAL) Return an ENV C{str} C{PYGEODESY_...}.\n    '''\n    return _UNDER_(_pygeodesy_, typename(which, which)).upper()\n\n\ndef _Pythonarchine(sep=NN):  # in .lazily, test/bases versions\n    '''(INTERNAL) Get PyPy and Python versions, bits and machine as C{3- or 4-list} or C{str}.\n    '''\n    l3 = _MODS.Pythonarchine\n    return sep.join(l3) if sep else l3  # 3- or 4-list\n\n\ndef _secs2str(secs):  # in .geoids, ../test/bases\n    '''Convert a time in C{secs} to C{str}.\n    '''\n    if secs < _100_0:\n        unit = len(_SIsecs) - 1\n        while 0 < secs < 1 and unit > 0:\n            secs *= 1e3  # _1000_0\n            unit -= 1\n        t = '%.3f %s' % (secs, _SIsecs[unit])\n    else:\n        m, s = divmod(secs, 60)\n        if m < 60:\n            t = '%d:%06.3f' % (int(m), s)\n        else:\n            h, m = divmod(int(m), 60)\n            t = '%d:%02d:%06.3f' % (h, m, s)\n    return t\n\n\ndef _sizeof(obj, deep=True):\n    '''(INTERNAL) Recursively size an C{obj}ect.\n\n       @kwarg deep: If C{True}, include the size of all\n                    C{.__dict__.values()} (C{bool}).\n\n       @return: The C{obj} size in bytes (C{int}), ignoring\n                class attributes and counting instances only\n                once or C{None}.\n\n       @note: With C{PyPy}, the returned size is always C{None}.\n    '''\n    try:\n        _zB = _sys.getsizeof\n        _zD = _zB(None)  # some default\n    except TypeError:  # PyPy3.10\n        return None\n\n    b = _MODS.basics\n    _isiterablen = b.isiterablen\n    _Str_Bytes   = b._Strs + b._Bytes  # + (range, map)\n\n    def _zR(s, iterable):\n        z, _s = 0, s.add\n        for o in iterable:\n            i = id(o)\n            if i not in s:\n                _s(i)\n                z += _zB(o, _zD)\n                if isinstance(o, dict):\n                    z += _zR(s, o.keys())\n                    z += _zR(s, o.values())\n                elif _isiterablen(o) and not \\\n                      isinstance(o, _Str_Bytes):\n                    z += _zR(s, o)\n                elif deep:\n                    try:  # size instance' attr values only\n                        z += _zR(s, o.__dict__.values())\n                    except AttributeError:  # None, int, etc.\n                        pass\n        return z\n\n    return _zR(set(), (obj,))\n\n\ndef _sysctl_uint(name):\n    '''(INTERNAL) Get an C{unsigned int sysctl} item by name, I{ONLY on macOS!}\n    '''\n    libc = _load_lib('libc') if _ismacOS() else None\n    if libc:  # <https://StackOverflow.com/questions/759892/python-ctypes-and-sysctl>\n        import ctypes as c\n        n = c.c_char_p(_MODS.basics.str2ub(name))  # bytes(name, _utf_8_)\n        u = c.c_uint(0)\n        z = c.c_size_t(c.sizeof(u))\n        r = libc.sysctlbyname(n, c.byref(u), c.byref(z), None, c.c_size_t(0))  # PYCHOK attr\n    else:  # not macOS or couldn't find or load 'libc'=\n        r = -2\n    return int(r if r else u.value)  # -1 ENOENT error, -2 no libc or not macOS\n\n\ndef _tailof(name):\n    '''(INTERNAL) Get the base name of qualified C{name} or the C{name}.\n    '''\n    i = name.rfind(_DOT_) + 1\n    return name[i:] if i > 0 else name\n\n\ndef _under(name):  # PYCHOK in .datums, .auxilats, .geodesicw, .ups, .utm, .utmupsBase, ...\n    '''(INTERNAL) Prefix C{name} with an I{underscore}.\n    '''\n    return name if name.startswith(_UNDER_) else NN(_UNDER_, name)\n\n\ndef _usage(file_py, *args, **opts_help):  # in .etm, .geodesici  # PYCHOK no cover\n    '''(INTERNAL) Build \"usage: python -m ...\" cmd line for module B{C{file_py}}.\n    '''\n    if opts_help:\n\n        def _help(alts=(), help=NN, **unused):\n            if alts and help:\n                h = NN(help, _SPACE_).lstrip(_DASH_)\n                for a in alts:\n                    if a.startswith(h):\n                        return NN(_DASH_, a),\n\n        def _opts(opts=NN, alts=(), **unused):\n            # opts='T--v-C-R meter-c|i|n|o'\n            d, fmt = NN, _MODS.streprs.Fmt.SQUARE\n            for o in (opts + _BAR_(*alts)).split(_DASH_):\n                if o:\n                    yield fmt(NN(d, _DASH_, o.replace(_BAR_, ' | -')))\n                    d =  NN\n                else:\n                    d = _DASH_\n\n        args = _help(**opts_help) or (tuple(_opts(**opts_help)) + args)\n\n    u = _COLON_(typename(_usage)[1:], NN)\n    return _SPACE_(u, *_usage_argv(file_py, *args))\n\n\ndef _usage_argv(argv0, *args):\n    '''(INTERNAL) Return 3-tuple C{(python, '-m', module, *args)}.\n    '''\n    o = _MODS.os\n    p =  o.path\n    m =  p.dirname(argv0).replace(o.getcwd(), _ELLIPSIS_) \\\n                         .replace(o.sep,      _DOT_).strip()\n    b, x = p.splitext(p.basename(argv0))\n    if x == '.py' and b != _DMAIN_:\n        m = _DOT_(m or _pygeodesy_, b)\n    p = NN(_python_, _MODS.sys_version_info2[0])\n    return (p, '-m', _enquote(m)) + args\n\n\ndef _version2(version, n=2):\n    '''(INTERNAL) Split C{B{version} str} into a C{1-, 2- or 3-tuple} of C{int}s.\n    '''\n    t = _version_ints(version.split(_DOT_, 2))\n    if len(t) < n:\n        t += (0,) * n\n    return t[:n]\n\n\ndef _version_info(package):  # in .basics, .karney._kWrapped.Math\n    '''(INTERNAL) Get the C{package.__version_info__} as a 2- or\n       3-tuple C{(major, minor, revision)} if C{int}s.\n    '''\n    try:\n        return _version_ints(package.__version_info__)\n    except AttributeError:\n        return _version2(package.__version__.strip(), n=3)\n\n\ndef _version_ints(vs):\n    # helper for _version2 and _version_info above\n\n    def _ints(vs):\n        for v in vs:\n            try:\n                yield int(v.strip())\n            except (TypeError, ValueError):\n                pass\n\n    return tuple(_ints(vs))\n\n\ndef _versions(sep=_SPACE_):\n    '''(INTERNAL) Get pygeodesy, PyPy and Python versions, bits, machine and OS as C{8- or 9-list} or C{str}.\n    '''\n    l7 = [_pygeodesy_, _MODS.version] + _Pythonarchine() + _osversion2()\n    return sep.join(l7) if sep else l7  # 5- or 6-list\n\n\n__all__ = tuple(map(typename, (machine, print_, printf, typename)))\n__version__ = '26.01.13'\n\nif __name__ == _DMAIN_:\n\n    def _main():\n        from pygeodesy import _isfrozen, isLazy\n\n        print_(*(_versions(sep=NN) + ['_isfrozen', _isfrozen,\n                                      'isLazy',     isLazy]))\n\n    _main()\n\n# % python3 -m pygeodesy.internals\n# pygeodesy 25.8.18 Python 3.13.5 64bit arm64 macOS 15.6 _isfrozen False isLazy 1\n\n# **) MIT License\n#\n# Copyright (C) 2016-2026 -- mrJean1 at Gmail -- All Rights Reserved.\n#\n# Permission is hereby granted, free of charge, to any person obtaining a\n# copy of this software and associated documentation files (the \"Software\"),\n# to deal in the Software without restriction, including without limitation\n# the rights to use, copy, modify, merge, publish, distribute, sublicense,\n# and/or sell copies of the Software, and to permit persons to whom the\n# Software is furnished to do so, subject to the following conditions:\n#\n# The above copyright notice and this permission notice shall be included\n# in all copies or substantial portions of the Software.\n#\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL\n# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR\n# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\n# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n# OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "pygeodesy/interns.py",
    "content": "# -*- coding: utf-8 -*-\n\nu'''Single C{str}ing constants, C{intern}'ed across C{pygeodesy}\nmodules and function L{pygeodesy.machine}.\n'''\nimport sys as _sys  # in .internals, .lazily\ntry:\n    _intern =  intern  # PYCHOK in .lazily, .trf\nexcept NameError:  # Python 3+\n    _intern = _sys.intern\n\n_COMMASPACE_  = ', '  # overriden below\n_SUB_PACKAGES = 'auxilats', 'deprecated', 'geodesicx', 'rhumb', 'triaxials'  # PYCHOK in ...\n# ... .lazily, make._dist, MANIFEST, setup.setup, test/bases, test/testModules\n\n\nclass _Dash(str):\n    '''(INTERNAL) Extended C{str} for prefix_DASH_.\n    '''\n    def __call__(self, *args):\n        '''Join C{self} plus all B{C{args}} like C{'-'.join((self,) + B{args})}.\n        '''\n        return _DASH_(self, *args)  # re-callable\n\n\nclass _Int(int):\n    '''(INTERNAL) Unique C{int}.\n    '''\n    pass\n\n\nclass Str_(str):\n    '''Extended, I{callable} C{str} class, not nameable.\n\n       @see: Nameable and callable class L{Str<pygeodesy.unitsBase.Str>}.\n    '''\n    def join_(self, *args):\n        '''Join all positional B{C{args}} like C{self.join(B{args})}.\n\n           @return: All B{C{args}} joined by this instance (L{Str_}).\n\n           @note: An other L{Str_} instance is returned to make the\n                  result re-callable.\n        '''\n        return Str_(str.join(self, map(str, args)))  # re-callable\n\n    __call__ = join_\n\nNN = Str_('')  # PYCHOK Nomen Nescio <https://Wiktionary.org/wiki/N.N.>\n\n\nclass _Prefix(Str_):\n    '''(INTERNAL) Extended C{str} for prefix.\n    '''\n    def __call__(self, *args):\n        '''Join C{self} plus all B{C{args}} like C{\" \".join((self,) + B{args})}.\n        '''\n        return _SPACE_.join_(self, *args)  # re-callable\n\n\nclass _PyPy__(str):  # overwritten by singleton below\n    '''(INTERNAL) Extended C{str} for C{\"PyPy\"} and version.\n    '''\n    def __call__(self, version=NN):\n        '''Return C{\"PyPy <version>\"} or C{NN}.\n        '''\n        v = version or _sys.version\n        if _PyPy__ in v:\n            v = v.split(_PyPy__)[1].split(None, 1)[0]  # == _DOT_.join(_sys.pypy_version_info[:3])\n            return NN(_PyPy__, v)\n        else:\n            return NN\n\n\nclass _Python_(str):  # overwritten by singleton below\n    '''(INTERNAL) Extended C{str} for C{\"Python\"} and version.\n    '''\n    def __call__(self, version=NN):\n        '''Return C{\"Python <version>\"}.\n        '''\n        v = version or _sys.version\n        return _SPACE_(self, v.split(None, 1)[0])\n\n\nclass _Range(str):\n    '''(INTERNAL) Extended C{str} for C{range} strings.\n    '''\n    def __call__(self, lo, hi, lopen=False, ropen=False,\n                               prec=0, sep=_COMMASPACE_):\n        '''Return the range as C{\"(lo, hi)\"}, C{\"(lo, hi]\"},\n           C{\"[lo, hi)\"} or C{\"[lo, hi]\"}.\n        '''\n        from pygeodesy.streprs import Fmt\n        r = NN(Fmt.f(lo, prec=prec), sep,\n               Fmt.f(hi, prec=prec))\n        f = (Fmt.PAREN if ropen else Fmt.LOPEN) if lopen else \\\n            (Fmt.ROPEN if ropen else Fmt.SQUARE)\n        return f(r)\n\n\nclass _Slicer(str):\n    '''(INTERNAL) String slicer C{.fromX} or C{.tillY}.\n    '''\n    def __getattr__(self, name):  # .fromX, .tillY\n        n = len(name) - 4\n        if n > 0:\n            # assert len('till') == len(_from_) == 4\n            if name.startswith('till'):\n                i = self.find(name[4:])\n                return self if i < 0 else _Slicer(self[:i + n])\n            elif name.startswith(_from_):\n                i = self.find(name[4:])\n                return self if i < 0 else _Slicer(self[i:])\n        return str.__getattr__(self, name)  # PYCHOK no cover\n\n\nclass MISSING(object):\n    '''(INTERNAL) Singleton C{str}.\n    '''\n    def __init__(self):\n        self.__name__ = type(self).__name__\n\n    def toRepr(self, **unused):\n        return type(self).__name__\n\n    __repr__ = __str__ = toStr = toRepr\n\nMISSING = MISSING()  # PYCHOK singleton\n\n# __DUNDER__-style names would get mangled in classes\n_0_                   = '0'                  # PYCHOK 'zero'\n_0to9_                = '0123456789'         # PYCHOK OK\n_1_                   = '1'                  # PYCHOK OK\n_2_                   = '2'                  # PYCHOK OK\n_3_                   = '3'                  # PYCHOK OK\n_4_                   = '4'                  # PYCHOK OK\n_a_                   = 'a'                  # PYCHOK OK\n_A_                   = 'A'                  # PYCHOK OK\n_a12_                 = 'a12'                # PYCHOK OK\n_area_                = 'area'               # PYCHOK OK\n_Airy1830_            = 'Airy1830'           # PYCHOK OK\n_AiryModified_        = 'AiryModified'       # PYCHOK OK\n_ambiguous_           = 'ambiguous'          # PYCHOK OK\n_AMPERSAND_      = Str_('&')                 # PYCHOK OK\n_an_                  = 'an'                 # PYCHOK OK\n_and_                 = 'and'                # PYCHOK OK\n# _AND_               = _AMPERSAND_          # PYCHOK OK\n_angle_               = 'angle'              # PYCHOK OK\n_antipodal_           = 'antipodal'          # PYCHOK OK\n_arg_                 = 'arg'                # PYCHOK OK\n# _ASTERISK_          = _STAR_               # PYCHOK OK\n_AT_             = Str_('@')                 # PYCHOK OK\n_AtoZnoIO_    = _Slicer('ABCDEFGHJKLMNPQRSTUVWXYZ')  # PYCHOK in .gars, .mgrs and .wgrs\n_attribute_           = 'attribute'          # PYCHOK OK\n_azi1_                = 'azi1'               # PYCHOK OK\n_azi12_               = 'azi12'              # PYCHOK OK\n_azi2_                = 'azi2'               # PYCHOK OK\n_azimuth_             = 'azimuth'            # PYCHOK OK\n_b_                   = 'b'                  # PYCHOK OK\n_B_                   = 'B'                  # PYCHOK OK\n_BACKSLASH_      = Str_('\\\\')                # PYCHOK OK\n_band_                = 'band'               # PYCHOK OK\n_BANG_           = Str_('!')                 # PYCHOK OK\n_BAR_            = Str_('|')                 # PYCHOK OK\n_bearing_             = 'bearing'            # PYCHOK OK\n_Bessel1841_          = 'Bessel1841'         # PYCHOK OK\n_beta_                = 'beta'               # PYCHOK OK\n_by_                  = 'by'                 # PYCHOK OK\n_c_                   = 'c'                  # PYCHOK OK\n_C_                   = 'C'                  # PYCHOK OK\n_cartesian_           = 'cartesian'          # PYCHOK OK\n_center_              = 'center'             # PYCHOK OK\n# _CIRCUMFLEX_   = Str_('^')                 # PYCHOK OK\n_Clarke1866_          = 'Clarke1866'         # PYCHOK OK\n_Clarke1880IGN_       = 'Clarke1880IGN'      # PYCHOK OK\n_clip_                = 'clip'               # PYCHOK OK\n_clipid_              = 'clipid'             # PYCHOK OK\n_coincident_          = 'coincident'         # PYCHOK OK\n_colinear_            = 'colinear'           # PYCHOK OK\n_COLON_          = Str_(':')                 # PYCHOK OK\n_COLONSPACE_     = Str_(': ')                # PYCHOK OK\n_COMMA_          = Str_(',')                 # PYCHOK OK\n_COMMASPACE_     = Str_(_COMMASPACE_)        # PYCHOK OK\n_composite_           = 'composite'          # PYCHOK OK\n_concentric_          = 'concentric'         # PYCHOK OK\n_convergence_ = _Prefix('convergence')       # PYCHOK OK\n_conversion_          = 'conversion'         # PYCHOK OK\n_convex_              = 'convex'             # PYCHOK OK\n_d_                   = 'd'                  # PYCHOK OK\n_D_                   = 'D'                  # PYCHOK OK\n_DALL_                = '__all__'            # PYCHOK _DUNDER_(NN, 'all', NN)\n_DASH_           = Str_('-')                 # PYCHOK == _MINUS_\n_datum_               = 'datum'              # PYCHOK OK\n_decode3_             = 'decode3'            # PYCHOK OK\n_deg_                 = 'deg'                # PYCHOK OK\n_degrees_             = 'degrees'            # PYCHOK OK\n_degrees2_            = 'degrees2'           # PYCHOK SQUARED\n_delta_               = 'delta'              # PYCHOK OK\n_DEPRECATED_          = 'DEPRECATED'         # PYCHOK OK\n_DEQUALSPACED_   = Str_(' == ')              # PYCHOK OK\n_distance_            = 'distance'           # PYCHOK OK\n_distant_     = _Prefix('distant')           # PYCHOK OK\n_DMAIN_               = '__main__'           # PYCHOK _DUNDER_(NN, 'main', NN)\n_DNAME_               = '__name__'           # PYCHOK _DUNDER_(NN, _name_, NN)\n_doesn_t_exist_       = \"doesn't exist\"      # PYCHOK OK\n_DOT_            = Str_('.')                 # PYCHOK OK\n_duplicate_           = 'duplicate'          # PYCHOK OK\n_e_                   = 'e'                  # PYCHOK OK\n_E_                   = 'E'                  # PYCHOK OK\n_earth_               = 'earth'              # PYCHOK OK\n_easting_             = 'easting'            # PYCHOK OK\n_ecef_                = 'ecef'               # PYCHOK OK\n_edge_                = 'edge'               # PYCHOK OK\n_elevation_           = 'elevation'          # PYCHOK OK\n_ELLIPSIS_       = Str_('...')               # PYCHOK OK\n_ELLIPSIS4_      = Str_('....')              # PYCHOK OK\n# _ELLIPSISPACED_ = Str_(' ... ')            # PYCHOK <https://www.ThePunctuationGuide.com/ellipses.html>\n_ellipsoid_           = 'ellipsoid'          # PYCHOK OK\n_ellipsoidal_         = 'ellipsoidal'        # PYCHOK OK\n_encode_              = 'encode'             # PYCHOK OK\n_end_                 = 'end'                # PYCHOK OK\n_epoch_               = 'epoch'              # PYCHOK OK\n_EQUAL_          = Str_('=')                 # PYCHOK OK\n_EQUALSPACED_    = Str_(' = ')               # PYCHOK OK\n_Error_               = 'Error'              # PYCHOK OK\n_exceed_PI_radians_   = 'exceed PI radians'  # PYCHOK OK\n_exceeds_     = _Prefix('exceeds')           # PYCHOK OK\n# _EXCLAMATION_       = _BANG_               # PYCHOK OK\n_exists_              = 'exists'             # PYCHOK OK\n_f_                   = 'f'                  # PYCHOK OK\n_F_                   = 'F'                  # PYCHOK OK\n_feet_                = 'feet'               # PYCHOK OK\n_few_                 = 'few'                # PYCHOK OK\n_fi_                  = 'fi'                 # PYCHOK OK\n_finite_              = 'finite'             # PYCHOK OK\n_from_                = 'from'               # PYCHOK OK\n_g_                   = 'g'                  # PYCHOK OK\n_gamma_               = 'gamma'              # PYCHOK OK\n_GRS80_               = 'GRS80'              # PYCHOK OK\n_h_                   = 'h'                  # PYCHOK OK\n_H_                   = 'H'                  # PYCHOK OK\n_HASH_                = '#'                  # PYCHOK OK\n_height_              = 'height'             # PYCHOK OK\n_hemipole_            = 'hemipole'           # PYCHOK OK\n_i_                   = 'i'                  # PYCHOK OK\n_immutable_           = 'immutable'          # PYCHOK OK\n_in_                  = 'in'                 # PYCHOK OK\n_incompatible_        = 'incompatible'       # PYCHOK OK\n_INF_                 = 'INF'                # PYCHOK OK\n_infinite_            = 'infinite'           # PYCHOK _not_finite_\n_initial_             = 'initial'            # PYCHOK OK\n_inside_              = 'inside'             # PYCHOK OK\n_insufficient_        = 'insufficient'       # PYCHOK OK\n_intersection_        = 'intersection'       # PYCHOK OK\n_Intl1924_            = 'Intl1924'           # PYCHOK OK\n_INV_                 = 'INV'                # PYCHOK INValid\n_invalid_             = 'invalid'            # PYCHOK OK\n_invokation_          = 'invokation'         # PYCHOK OK\n_j_                   = 'j'                  # PYCHOK OK\n_k0_                  = 'k0'                 # PYCHOK OK\n_keyword_             = 'keyword'            # PYCHOK OK\n_kind_                = 'kind'               # PYCHOK OK\n_Krassovski1940_      = 'Krassovski1940'     # PYCHOK OK\n_Krassowsky1940_      = 'Krassowsky1940'     # PYCHOK OK\n_LANGLE_              = '<'                  # PYCHOK OK\n_lam_                 = 'lam'                # PYCHOK OK\n_lat_                 = 'lat'                # PYCHOK OK\n_lat0_                = 'lat0'               # PYCHOK OK\n_lat1_                = 'lat1'               # PYCHOK OK\n_lat2_                = 'lat2'               # PYCHOK OK\n_latlon_              = 'latlon'             # PYCHOK OK\n_LatLon_              = 'LatLon'             # PYCHOK OK\n_LCURLY_              = '{'                  # PYCHOK LBRACE\n_len_                 = 'len'                # PYCHOK OK\n_limit_               = 'limit'              # PYCHOK OK\n_line_                = 'line'               # PYCHOK OK\n_LPAREN_              = '('                  # PYCHOK OK\n_lon_                 = 'lon'                # PYCHOK OK\n_lon0_                = 'lon0'               # PYCHOK OK\n_lon1_                = 'lon1'               # PYCHOK OK\n_lon2_                = 'lon2'               # PYCHOK OK\n_low_                 = 'low'                # PYCHOK OK\n_LSQUARE_             = '['                  # PYCHOK LBRACK\n_ltp_                 = 'ltp'                # PYCHOK OK\n_m_                   = 'm'                  # PYCHOK OK\n_M_                   = 'M'                  # PYCHOK OK\n_m12_                 = 'm12'                # PYCHOK OK\n_M12_                 = 'M12'                # PYCHOK OK\n_M21_                 = 'M21'                # PYCHOK OK\n_MANT_DIG_            = 'MANT_DIG'           # PYCHOK OK\n_MAX_                 = 'MAX'                # PYCHOK OK\n_mean_                = 'mean'               # PYCHOK OK\n_meanOf_              = 'meanOf'             # PYCHOK OK\n_meridional_          = 'meridional'         # PYCHOK OK\n_meter_               = 'meter'              # PYCHOK OK\n_meter2_              = 'meter2'             # PYCHOK SQUARED\n_MGRS_                = 'MGRS'               # PYCHOK OK\n_MIN_                 = 'MIN'                # PYCHOK OK\n_MINUS_               = _DASH_               # PYCHOK OK\n_module_              = 'module'             # PYCHOK OK\n_n_                   = 'n'                  # PYCHOK OK\n_N_                   = 'N'                  # PYCHOK OK\n_n_a_                 = 'n/a'                # PYCHOK OK\n_N_A_                 = 'N/A'                # PYCHOK OK\n_NAD27_               = 'NAD27'              # PYCHOK OK\n_NAD83_               = 'NAD83'              # PYCHOK OK\n_name_                = 'name'               # PYCHOK OK\n_NAN_                 = 'NAN'                # PYCHOK OK\n_near_          = _Dash('near')              # PYCHOK OK\n_nearestOn2_          = 'nearestOn2'         # PYCHOK OK\n_negative_            = 'negative'           # PYCHOK OK\n_NL_             = Str_('\\n')                # PYCHOK OK\n_NLATvar_        = Str_(_NL_ + '@var ')      # PYCHOK OK\n_NLHASH_         = Str_(_NL_ + '# ')         # PYCHOK OK\n_NN_                  = 'NN'                 # PYCHOK OK\n_no_          = _Prefix('no')                # PYCHOK OK\n_northing_            = 'northing'           # PYCHOK OK\n_not_         = _Prefix('not')               # PYCHOK OK\n_NOTEQUAL_            = _BANG_ + _EQUAL_     # PYCHOK OK\n_not_finite_          = 'not finite'         # PYCHOK _not_(_finite_), _infinite_\n_not_scalar_          = 'not scalar'         # PYCHOK _not_(_scalar_)\n_NTF_                 = 'NTF'                # PYCHOK OK\n_null_                = 'null'               # PYCHOK OK\n_number_              = 'number'             # PYCHOK OK\n_numpy_               = 'numpy'              # PYCHOK OK\n_Nv00_                = 'Nv00'               # PYCHOK OK\n_odd_                 = 'odd'                # PYCHOK OK\n_of_                  = 'of'                 # PYCHOK OK\n_on_                  = 'on'                 # PYCHOK OK\n_opposite_            = 'opposite'           # PYCHOK OK\n_or_                  = 'or'                 # PYCHOK OK\n_other_               = 'other'              # PYCHOK OK\n_outside_             = 'outside'            # PYCHOK OK\n_overlap_             = 'overlap'            # PYCHOK OK\n_parallel_            = 'parallel'           # PYCHOK OK\n_PERCENT_             = '%'                  # PYCHOK OK\n_PERCENTDOTSTAR_      = '%.*'                # PYCHOK _DOT_(_PERCENT_, _STAR_)\n_phi_                 = 'phi'                # PYCHOK OK\n_PLUS_           = Str_('+')                 # PYCHOK OK\n_PLUSMINUS_           = _PLUS_ + _MINUS_     # PYCHOK OK\n_point_               = 'point'              # PYCHOK OK\n_points_              = 'points'             # PYCHOK OK\n_pole_                = 'pole'               # PYCHOK OK\n_precision_           = 'precision'          # PYCHOK OK\n_prime_vertical_      = 'prime_vertical'     # PYCHOK OK\n_pygeodesy_           = 'pygeodesy'          # PYCHOK OK  # in test/bases\n_pygeodesy_abspath_   = 'pygeodesy_abspath'  # PYCHOK OK\n_PyPy__       = _PyPy__('PyPy ')             # PYCHOK + _SPACE_\n_Python_     = _Python_('Python')            # PYCHOK singleton\n_python_              = 'python'             # PYCHOK OK\n_QUOTE1_              = \"'\"                  # PYCHOK OK\n_QUOTE2_              = '\"'                  # PYCHOK OK\n_QUOTE3_              = \"'''\"                # PYCHOK OK\n# _QUOTE6_            = '\"\"\"'                # PYCHOK OK\n_R_                   = 'R'                  # PYCHOK OK\n_radians_             = 'radians'            # PYCHOK OK\n_radians2_            = 'radians2'           # PYCHOK SQUARED\n_radius_              = 'radius'             # PYCHOK OK\n_radius1_             = 'radius1'            # PYCHOK OK\n_radius2_             = 'radius2'            # PYCHOK OK\n_range_        = _Range('range')             # PYCHOK OK\n_RANGLE_              = '>'                  # PYCHOK OK\n_RCURLY_              = '}'                  # PYCHOK RBRACE\n_reciprocal_          = 'reciprocal'         # PYCHOK OK\n_reframe_             = 'reframe'            # PYCHOK OK\n_resolution_          = 'resolution'         # PYCHOK OK\n_rIn_                 = 'rIn'                # PYCHOK OK\n_RPAREN_              = ')'                  # PYCHOK OK\n_RSQUARE_             = ']'                  # PYCHOK RBRACK\n_s_                   = 's'                  # PYCHOK OK\n_S_                   = 'S'                  # PYCHOK OK\n_s12_                 = 's12'                # PYCHOK OK\n_S12_                 = 'S12'                # PYCHOK OK\n_scalar_              = 'scalar'             # PYCHOK OK\n_scale_               = 'scale'              # PYCHOK OK\n_scale0_              = 'scale0'             # PYCHOK OK\n_scipy_               = 'scipy'              # PYCHOK OK\n_semi_circular_       = 'semi-circular'      # PYCHOK OK\n_sep_                 = 'sep'                # PYCHOK OK\n_singular_            = 'singular'           # PYCHOK OK\n_SLASH_          = Str_('/')                 # PYCHOK OK\n_small_               = 'small'              # PYCHOK OK\n_Sphere_              = 'Sphere'             # PYCHOK OK\n_spherical_           = 'spherical'          # PYCHOK OK\n_SPACE_          = Str_(' ')                 # PYCHOK OK\n_specified_           = 'specified'          # PYCHOK OK\n_STAR_           = Str_('*')                 # PYCHOK OK\n_start_               = 'start'              # PYCHOK OK\n_std_                 = 'std'                # PYCHOK OK\n_stdev_               = 'stdev'              # PYCHOK OK\n_tbd_                 = 'tbd'                # PYCHOK OK\n_TILDE_               = '~'                  # PYCHOK OK\n_to_                  = 'to'                 # PYCHOK OK\n_tolerance_   = _Prefix('tolerance')         # PYCHOK OK\n_too_         = _Prefix('too')               # PYCHOK OK\n_transform_           = 'transform'          # PYCHOK OK\n_UNDER_          = Str_('_')                 # PYCHOK OK\n_units_               = 'units'              # PYCHOK OK\n_UNUSED_              = 'UNUSED'             # PYCHOK OK\n_up_                  = 'up'                 # PYCHOK OK\n_UPS_                 = 'UPS'                # PYCHOK OK\n_utf_8_               = 'utf-8'              # PYCHOK OK\n_UTM_                 = 'UTM'                # PYCHOK OK\n_V_                   = 'V'                  # PYCHOK OK\n_valid_               = 'valid'              # PYCHOK OK\n_value_               = 'value'              # PYCHOK OK\n_version_             = 'version'            # PYCHOK OK\n_vs_                  = 'vs'                 # PYCHOK OK\n_W_                   = 'W'                  # PYCHOK OK\n_WGS72_               = 'WGS72'              # PYCHOK OK\n_WGS84_               = 'WGS84'              # PYCHOK OK\n_width_               = 'width'              # PYCHOK OK\n_with_                = 'with'               # PYCHOK OK\n_x_                   = 'x'                  # PYCHOK OK\n_X_                   = 'X'                  # PYCHOK OK\n_xyz_                 = 'xyz'                # PYCHOK OK\n_y_                   = 'y'                  # PYCHOK OK\n_Y_                   = 'Y'                  # PYCHOK OK\n_z_                   = 'z'                  # PYCHOK OK\n_Z_                   = 'Z'                  # PYCHOK OK\n_zone_                = 'zone'               # PYCHOK OK\n\n_EW_       = _E_  + _W_   # PYCHOK common cardinals\n_NE_       = _N_  + _E_   # PYCHOK positive ones\n_NS_       = _N_  + _S_   # PYCHOK OK\n_NSEW_     = _NS_ + _EW_  # PYCHOK OK\n_NW_       = _N_  + _W_   # PYCHOK OK\n_SE_       = _S_  + _E_   # PYCHOK OK\n_SW_       = _S_  + _W_   # PYCHOK negative ones\n# _NESW_   = _NE_ + _SW_  # PYCHOK clockwise\n\n_DDOT_     = Str_(_DOT_   * 2)  # PYCHOK OK\n# _DEQUAL_ = Str_(_EQUAL_ * 2)  # PYCHOK OK\n# _DNL_    = Str_(_NL_    * 2)  # PYCHOK OK\n_DSLASH_   = Str_(_SLASH_ * 2)  # PYCHOK OK\n_DSTAR_    = Str_(_STAR_  * 2)  # PYCHOK OK\n_DUNDER_   = Str_(_UNDER_ * 2)  # PYCHOK OK\n\n_LR_PAIRS  = {_LANGLE_:  _RANGLE_,\n              _LCURLY_:  _RCURLY_,\n              _LPAREN_:  _RPAREN_,\n              _LSQUARE_: _RSQUARE_}  # PYCHOK OK\n\n__all__ = (_NN_,  # NOT MISSING!\n            Str_.__name__)  # classes\n__version__ = '25.11.07'\n\nif __name__ == _DMAIN_:\n\n    def _main(globalocals):\n        from pygeodesy import itemsorted, printf\n\n        t = b = 0\n        for n, v in itemsorted(globalocals, asorted=False, reverse=True):\n            if n.endswith(_UNDER_) and n.startswith(_UNDER_) and \\\n                                   not n.startswith(_DUNDER_):\n                t += 1\n                b += len(v)\n                m  = n[1:-1]\n                if m != v and m.replace(_UNDER_, _SPACE_) != v:\n                    printf('%4d: %s = %r', t, n, v)\n        n = len(globalocals)\n        printf('%4d (%d) names, %s chars total, %.2f chars avg', t, n, b, float(b) / t, nl=1)\n\n    _main(globals())  # or locals()\n\n# **) MIT License\n#\n# Copyright (C) 2016-2026 -- mrJean1 at Gmail -- All Rights Reserved.\n#\n# Permission is hereby granted, free of charge, to any person obtaining a\n# copy of this software and associated documentation files (the \"Software\"),\n# to deal in the Software without restriction, including without limitation\n# the rights to use, copy, modify, merge, publish, distribute, sublicense,\n# and/or sell copies of the Software, and to permit persons to whom the\n# Software is furnished to do so, subject to the following conditions:\n#\n# The above copyright notice and this permission notice shall be included\n# in all copies or substantial portions of the Software.\n#\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL\n# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR\n# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\n# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n# OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "pygeodesy/iters.py",
    "content": "\r\n# -*- coding: utf-8 -*-\r\n\r\nu'''Iterators with options.\r\n\r\nIterator classes L{LatLon2PsxyIter} and L{PointsIter} to iterate\r\nover iterables, lists, sets, tuples, etc. with optional loop-back to\r\nthe initial items, skipping of duplicate items and copying of the\r\niterated items.\r\n'''\r\n\r\nfrom pygeodesy.basics import _isin, islistuple, issubclassof, \\\r\n                              len2, map2,  _passarg, typename\r\n# from pygeodesy.constants import _1_0  # from .utily\r\nfrom pygeodesy.errors import _IndexError, LenError, PointsError, \\\r\n                             _TypeError, _ValueError\r\n# from pygeodesy.internals import _passarg, typename  # from .basics\r\nfrom pygeodesy.interns import _0_, _composite_, _few_, _latlon_, \\\r\n                              _points_, _too_\r\nfrom pygeodesy.lazily import _ALL_DOCS, _ALL_LAZY, _ALL_MODS as _MODS\r\nfrom pygeodesy.named import _Named, property_RO,  Fmt\r\nfrom pygeodesy.namedTuples import Point3Tuple, Points2Tuple\r\n# from pygeodesy.props import property_RO  # from .named\r\n# from pygeodesy.streprs import Fmt  # from .named\r\nfrom pygeodesy.units import Int, Radius\r\nfrom pygeodesy.utily import degrees2m, _Wrap,  _1_0\r\n\r\n__all__ = _ALL_LAZY.iters\r\n__version__ = '25.05.19'\r\n\r\n_items_        = 'items'\r\n_iterNumpy2len =  1  # adjustable for testing purposes\r\n_NOTHING       =  object()  # unique\r\n\r\n\r\nclass _BaseIter(_Named):\r\n    '''(INTERNAL) Iterator over items with loop-back and de-duplication.\r\n\r\n       @see: Luciano Ramalho, \"Fluent Python\", O'Reilly, 2016 p. 418+, 2022 p. 600+\r\n    '''\r\n    _closed =  True\r\n    _copies = ()\r\n    _dedup  =  False\r\n    _Error  =  LenError\r\n    _items  =  None\r\n    _len    =  0\r\n    _loop   = ()\r\n    _looped =  False\r\n    _name   = _items_\r\n    _prev   = _NOTHING\r\n    _wrap   =  False\r\n\r\n    def __init__(self, items, loop=0, dedup=False, Error=None, **name):\r\n        '''New iterator over an iterable of B{C{items}}.\r\n\r\n           @arg items: Iterable (any C{type}, except composites).\r\n           @kwarg loop: Number of loop-back items, also initial enumerate and\r\n                        iterate index (non-negative C{int}).\r\n           @kwarg dedup: Skip duplicate items (C{bool}).\r\n           @kwarg Error: Error to raise (L{LenError}).\r\n           @kwarg name: Optional C{B{name}=\"items\"} (C{str}).\r\n\r\n           @raise Error: Invalid B{C{items}} or sufficient number of B{C{items}}.\r\n\r\n           @raise TypeError: Composite B{C{items}}.\r\n        '''\r\n        if dedup:\r\n            self._dedup = True\r\n        if issubclassof(Error, Exception):\r\n            self._Error = Error\r\n        if name:\r\n            self.rename(name)\r\n\r\n        if islistuple(items):  # range in Python 2\r\n            self._items = items\r\n        elif _MODS.booleans.isBoolean(items):\r\n            raise _TypeError(points=_composite_)\r\n# XXX   if hasattr(items, 'next') or hasattr(items, '__length_hint__'):\r\n# XXX       # handle reversed, iter, etc. items types\r\n        self._iter = iter(items)\r\n        self._indx = -1\r\n        if Int(loop) > 0:\r\n            try:\r\n                self._loop = tuple(self.next for _ in range(loop))\r\n                if self.loop != loop:\r\n                    raise RuntimeError()  # force Error\r\n            except (RuntimeError, StopIteration):\r\n                raise self._Error(self.name, self.loop, txt=_too_(_few_))\r\n\r\n    @property_RO\r\n    def copies(self):\r\n        '''Get the saved copies, if any (C{tuple} or C{list}) and only I{once}.\r\n        '''\r\n        cs = self._copies\r\n        if cs:\r\n            self._copies = ()\r\n        return cs\r\n\r\n    @property_RO\r\n    def dedup(self):\r\n        '''Get the de-duplication setting (C{bool}).\r\n        '''\r\n        return self._dedup\r\n\r\n    def enumerate(self, closed=False, copies=False, dedup=False):\r\n        '''Yield all items, each as a 2-tuple C{(index, item)}.\r\n\r\n           @kwarg closed: Loop back to the first B{C{point(s)}}.\r\n           @kwarg copies: Make a copy of all B{C{items}} (C{bool}).\r\n           @kwarg dedup: Set de-duplication in loop-back (C{bool}).\r\n        '''\r\n        for item in self.iterate(closed=closed, copies=copies, dedup=dedup):\r\n            yield self._indx, item\r\n\r\n    def __getitem__(self, index):\r\n        '''Get the item(s) at the given B{C{index}} or C{slice}.\r\n\r\n           @raise IndexError: Invalid B{C{index}}, beyond B{C{loop}}.\r\n        '''\r\n        t = self._items or self._copies or self._loop\r\n        try:  # Luciano Ramalho, \"Fluent Python\", O'Reilly, 2016 p. 293+, 2022 p. 408+\r\n            if isinstance(index, slice):\r\n                return t[index.start:index.stop:index.step]\r\n            else:\r\n                return t[index]\r\n        except IndexError as x:\r\n            t = Fmt.SQUARE(self.name, index)\r\n            raise _IndexError(str(x), txt=t, cause=x)\r\n\r\n    def __iter__(self):  # PYCHOK no cover\r\n        '''Make this iterator C{iterable}.\r\n        '''\r\n        # Luciano Ramalho, \"Fluent Python\", O'Reilly, 2016 p. 421, 2022 p. 604+\r\n        return self.iterate()  # XXX or self?\r\n\r\n    def iterate(self, closed=False, copies=False, dedup=False):\r\n        '''Yield all items, each as C{item}.\r\n\r\n           @kwarg closed: Loop back to the first B{C{point(s)}}.\r\n           @kwarg copies: Make a copy of all B{C{items}} (C{bool}).\r\n           @kwarg dedup: Set de-duplication in loop-back (C{bool}).\r\n\r\n           @raise Error: Using C{B{closed}=True} without B{C{loop}}-back.\r\n        '''\r\n        if closed and not self.loop:\r\n            raise self._Error(closed=closed, loop=self.loop)\r\n\r\n        if copies:\r\n            if self._items:\r\n                self._copies = self._items\r\n                self._items = _copy = None\r\n            else:\r\n                self._copies = list(self._loop)\r\n                _copy = self._copies.append\r\n        else:  # del B{C{items}} reference\r\n            self._items = _copy = None\r\n\r\n        self._closed = closed\r\n        self._looped = False\r\n        if self._iter:\r\n            try:\r\n                _next_ = self.next_\r\n                if _copy:\r\n                    while True:\r\n                        item = _next_(dedup=dedup)\r\n                        _copy(item)\r\n                        yield item\r\n                else:\r\n                    while True:\r\n                        yield _next_(dedup=dedup)\r\n            except StopIteration:\r\n                self._iter = ()  # del self._iter, prevent re-iterate\r\n\r\n    def __len__(self):\r\n        '''Get the number of items seen so far.\r\n        '''\r\n        return self._len\r\n\r\n    @property_RO\r\n    def loop(self):\r\n        '''Get the B{C{loop}} setting (C{int}), C{0} for non-loop-back.\r\n        '''\r\n        return len(self._loop)\r\n\r\n    @property_RO\r\n    def looped(self):\r\n        '''In this C{Iter}ator in loop-back? (C{bool}).\r\n        '''\r\n        return self._looped\r\n\r\n    @property_RO\r\n    def next(self):\r\n        '''Get the next item.\r\n        '''\r\n        return self._next_dedup() if self._dedup else self._next(False)\r\n\r\n#   __next__  # NO __next__ AND __iter__ ... see Luciano Ramalho,\r\n#             # \"Fluent Python\", O'Reilly, 2016 p. 426, 2022 p. 610\r\n\r\n    def next_(self, dedup=False):\r\n        '''Return the next item.\r\n\r\n           @kwarg dedup: Set de-duplication for loop-back (C{bool}).\r\n        '''\r\n        return self._next_dedup() if self._dedup else self._next(dedup)\r\n\r\n    def _next(self, dedup):\r\n        '''Return the next item, regardless.\r\n\r\n           @arg dedup: Set de-duplication for loop-back (C{bool}).\r\n        '''\r\n        try:\r\n            self._indx += 1\r\n            self._len   = self._indx  # max(_len, _indx)\r\n            self._prev  = item = next(self._iter)\r\n            return item\r\n        except StopIteration:\r\n            pass\r\n        if self._closed and self._loop:  # loop back\r\n            self._dedup  = bool(dedup or self._dedup)\r\n            self._indx   = 0\r\n            self._iter   = iter(self._loop)\r\n            self._loop   = ()\r\n            self._looped = True\r\n        return next(self._iter)\r\n\r\n    def _next_dedup(self):\r\n        '''Return the next item, different from the previous one.\r\n        '''\r\n        prev = self._prev\r\n        item = self._next(True)\r\n        if prev is not _NOTHING:\r\n            while item == prev:\r\n                item = self._next(True)\r\n        return item\r\n\r\n\r\nclass PointsIter(_BaseIter):\r\n    '''Iterator for C{points} with optional loop-back and copies.\r\n    '''\r\n    _base  =  None\r\n    _Error =  PointsError\r\n    _name  = _points_\r\n\r\n    def __init__(self, points, loop=0, base=None, dedup=False, wrap=False, **name):\r\n        '''New L{PointsIter} iterator.\r\n\r\n           @arg points: C{Iterable} or C{list}, C{sequence}, C{set}, C{tuple},\r\n                        etc. (C{point}s).\r\n           @kwarg loop: Number of loop-back points, also initial C{enumerate} and\r\n                        C{iterate} index (non-negative C{int}).\r\n           @kwarg base: Optional B{C{points}} instance for type checking (C{any}).\r\n           @kwarg dedup: Skip duplicate points (C{bool}).\r\n           @kwarg wrap: If C{True}, wrap or I{normalize} the enum-/iterated\r\n                        B{C{points}} (C{bool}).\r\n           @kwarg name: Optional C{B{name}=\"points\"} (C{str}).\r\n\r\n           @raise PointsError: Insufficient number of B{C{points}}.\r\n\r\n           @raise TypeError: Some B{C{points}} are not B{C{base}}.\r\n       '''\r\n        _BaseIter.__init__(self, points, loop=loop, dedup=dedup, **name)\r\n\r\n        if base and not (isNumpy2(points) or isTuple2(points)):\r\n            self._base = base\r\n        if wrap:\r\n            self._wrap = True\r\n\r\n    def enumerate(self, closed=False, copies=False):  # PYCHOK signature\r\n        '''Iterate and yield each point as a 2-tuple C{(index, point)}.\r\n\r\n           @kwarg closed: Loop back to the first B{C{point(s)}}, de-dup'ed (C{bool}).\r\n           @kwarg copies: Save a copy of all B{C{points}} (C{bool}).\r\n\r\n           @raise PointsError: Insufficient number of B{C{points}} or using\r\n                               C{B{closed}=True} without B{C{loop}}-back.\r\n\r\n           @raise TypeError: Some B{C{points}} are not B{C{base}}-compatible.\r\n        '''\r\n        for p in self.iterate(closed=closed, copies=copies):\r\n            yield self._indx, p\r\n\r\n    def iterate(self, closed=False, copies=False):  # PYCHOK signature\r\n        '''Iterate through all B{C{points}} starting at index C{loop}.\r\n\r\n           @kwarg closed: Loop back to the first B{C{point(s)}}, de-dup'ed (C{bool}).\r\n           @kwarg copies: Save a copy of all B{C{points}} (C{bool}).\r\n\r\n           @raise PointsError: Insufficient number of B{C{points}} or using\r\n                               C{B{closed}=True} without B{C{loop}}-back.\r\n\r\n           @raise TypeError: Some B{C{points}} are not B{C{base}}-compatible.\r\n        '''\r\n        if self._base:\r\n            _oth =  self._base.others\r\n            _fmt =  Fmt.SQUARE(points=0).replace\r\n        else:\r\n            _oth = _fmt = None\r\n\r\n        n  =  self.loop if self._iter else 0\r\n        _p = _Wrap.point if self._wrap else _passarg  # and _Wrap.normal is not None\r\n        for p in _BaseIter.iterate(self, closed=closed, copies=copies, dedup=closed):\r\n            if _oth:\r\n                _oth(p, name=_fmt(_0_, str(self._indx)), up=2)\r\n            yield _p(p)\r\n            n += 1\r\n        if n < (4 if closed else 2):\r\n            raise self._Error(self.name, n, txt=_too_(_few_))\r\n\r\n\r\nclass LatLon2PsxyIter(PointsIter):\r\n    '''Iterate and convert for C{points} with optional loop-back and copies.\r\n    '''\r\n    _deg2m  =  None\r\n    _name   = _latlon_\r\n    _radius =  None  # keep degrees\r\n    _wrap   =  True\r\n\r\n    def __init__(self, points, loop=0, base=None, wrap=True, radius=None,\r\n                                                  dedup=False, **name):\r\n        '''New L{LatLon2PsxyIter} iterator.\r\n\r\n           @note: The C{LatLon} latitude is considered the I{pseudo-y} and\r\n                  longitude the I{pseudo-x} coordinate, like L{LatLon2psxy}.\r\n\r\n           @arg points: C{Iterable} or C{list}, C{sequence}, C{set}, C{tuple},\r\n                        etc. (C{LatLon}[]).\r\n           @kwarg loop: Number of loop-back points, also initial C{enumerate} and\r\n                        C{iterate} index (non-negative C{int}).\r\n           @kwarg base: Optional B{C{points}} instance for type checking (C{any}).\r\n           @kwarg wrap: If C{True}, wrap or I{normalize} the enum-/iterated\r\n                        B{C{points}} (C{bool}).\r\n           @kwarg radius: Mean earth radius (C{meter}) for conversion from\r\n                          C{degrees} to C{meter} (or C{radians} if C{B{radius}=1}).\r\n           @kwarg dedup: Skip duplicate points (C{bool}).\r\n           @kwarg name: Optional C{B{name}=\"latlon\"} (C{str}).\r\n\r\n           @raise PointsError: Insufficient number of B{C{points}}.\r\n\r\n           @raise TypeError: Some B{C{points}} are not B{C{base}}-compatible.\r\n        '''\r\n        PointsIter.__init__(self, points, loop=loop, base=base, dedup=dedup, **name)\r\n        if not wrap:\r\n            self._wrap = False\r\n        if radius:\r\n            self._radius = r = Radius(radius)\r\n            self._deg2m  = degrees2m(_1_0, r)\r\n\r\n    def __getitem__(self, index):\r\n        '''Get the point(s) at the given B{C{index}} or C{slice}.\r\n\r\n           @raise IndexError: Invalid B{C{index}}, beyond B{C{loop}}.\r\n        '''\r\n        ll = PointsIter.__getitem__(self, index)\r\n        if isinstance(index, slice):\r\n            return map2(self._point3Tuple, ll)\r\n        else:\r\n            return self._point3Tuple(ll)\r\n\r\n    def enumerate(self, closed=False, copies=False):  # PYCHOK signature\r\n        '''Iterate and yield each point as a 2-tuple C{(index, L{Point3Tuple})}.\r\n\r\n           @kwarg closed: Loop back to the first B{C{point(s)}}, de-dup'ed (C{bool}).\r\n           @kwarg copies: Save a copy of all B{C{points}} (C{bool}).\r\n\r\n           @raise PointsError: Insufficient number of B{C{points}} or using\r\n                               C{B{closed}=True} without B{C{loop}}-back.\r\n\r\n           @raise TypeError: Some B{C{points}} are not B{C{base}}-compatible.\r\n        '''\r\n        return PointsIter.enumerate(self, closed=closed, copies=copies)\r\n\r\n    def iterate(self, closed=False, copies=False):  # PYCHOK signature\r\n        '''Iterate the B{C{points}} starting at index B{C{loop}} and\r\n           yield each as a L{Point3Tuple}C{(x, y, ll)}.\r\n\r\n           @kwarg closed: Loop back to the first B{C{point(s)}}, de-dup'ed (C{bool}).\r\n           @kwarg copies: Save a copy of all B{C{points}} (C{bool}).\r\n\r\n           @raise PointsError: Insufficient number of B{C{points}} or using\r\n                               C{B{closed}=True} without B{C{loop}}-back.\r\n\r\n           @raise TypeError: Some B{C{points}} are not B{C{base}}-compatible.\r\n        '''\r\n        if not _isin(self._deg2m, None, _1_0):\r\n            _p3 = self._point3Tuple\r\n        else:\r\n            def _p3(ll):  # PYCHOK redef\r\n                return Point3Tuple(ll.lon, ll.lat, ll)\r\n\r\n        for ll in PointsIter.iterate(self, closed=closed, copies=copies):\r\n            yield _p3(ll)\r\n\r\n    def _point3Tuple(self, ll):\r\n        '''(INTERNAL) Create a L{Point3Tuple} for point B{C{ll}}.\r\n        '''\r\n        x, y = ll.lon, ll.lat  # note, x, y = lon, lat\r\n        d = self._deg2m\r\n        if d:  # convert degrees\r\n            x *= d\r\n            y *= d\r\n        return Point3Tuple(x, y, ll)\r\n\r\n\r\ndef _imdex2(closed, n):  # PYCHOK by .clipy\r\n    '''(INTERNAL) Return first and second index of C{range(B{n})}.\r\n    '''\r\n    return (n-1, 0) if closed else (0, 1)\r\n\r\n\r\ndef isNumpy2(obj):\r\n    '''Check for a B{C{Numpy2LatLon}} points wrapper.\r\n\r\n       @arg obj: The object (any C{type}).\r\n\r\n       @return: C{True} if B{C{obj}} is a B{C{Numpy2LatLon}}\r\n                instance, C{False} otherwise.\r\n    '''\r\n    # isinstance(self, (Numpy2LatLon, ...))\r\n    return getattr(obj, typename(isNumpy2), False)\r\n\r\n\r\ndef isPoints2(obj):\r\n    '''Check for a B{C{LatLon2psxy}} points wrapper.\r\n\r\n       @arg obj: The object (any C{type}).\r\n\r\n       @return: C{True} if B{C{obj}} is a B{C{LatLon2psxy}}\r\n                instance, C{False} otherwise.\r\n    '''\r\n    # isinstance(self, (LatLon2psxy, ...))\r\n    return getattr(obj, typename(isPoints2), False)\r\n\r\n\r\ndef isTuple2(obj):\r\n    '''Check for a B{C{Tuple2LatLon}} points wrapper.\r\n\r\n       @arg obj: The object (any).\r\n\r\n       @return: C{True} if B{C{obj}} is a B{C{Tuple2LatLon}}\r\n                instance, C{False} otherwise.\r\n    '''\r\n    # isinstance(self, (Tuple2LatLon, ...))\r\n    return getattr(obj, typename(isTuple2), False)\r\n\r\n\r\ndef iterNumpy2(obj):\r\n    '''Iterate over Numpy2 wrappers or other sequences exceeding\r\n       the threshold.\r\n\r\n       @arg obj: Points array, list, sequence, set, etc. (any).\r\n\r\n       @return: C{True} do, C{False} don't iterate.\r\n    '''\r\n    try:\r\n        return isNumpy2(obj) or len(obj) > _iterNumpy2len\r\n    except TypeError:\r\n        return False\r\n\r\n\r\ndef iterNumpy2over(n=None):\r\n    '''Get or set the L{iterNumpy2} threshold.\r\n\r\n       @kwarg n: Optional, new threshold (C{int}).\r\n\r\n       @return: Previous threshold (C{int}).\r\n\r\n       @raise ValueError: Invalid B{C{n}}.\r\n    '''\r\n    global _iterNumpy2len\r\n    p = _iterNumpy2len\r\n    if n is not None:\r\n        try:\r\n            i = int(n)\r\n            if i > 0:\r\n                _iterNumpy2len = i\r\n            else:\r\n                raise ValueError\r\n        except (TypeError, ValueError):\r\n            raise _ValueError(n=n)\r\n    return p\r\n\r\n\r\ndef points2(points, closed=True, base=None, Error=PointsError):\r\n    '''Check a path or polygon represented by points.\r\n\r\n       @arg points: The path or polygon points (C{LatLon}[])\r\n       @kwarg closed: Optionally, consider the polygon closed,\r\n                      ignoring any duplicate or closing final\r\n                      B{C{points}} (C{bool}).\r\n       @kwarg base: Optionally, check all B{C{points}} against\r\n                    this base class, if C{None} don't check.\r\n       @kwarg Error: Exception to raise (C{ValueError}).\r\n\r\n       @return: A L{Points2Tuple}C{(number, points)} with the number\r\n                of points and the points C{list} or C{tuple}.\r\n\r\n       @raise PointsError: Insufficient number of B{C{points}}.\r\n\r\n       @raise TypeError: Some B{C{points}} are not B{C{base}}\r\n                         compatible or composite B{C{points}}.\r\n    '''\r\n    if _MODS.booleans.isBoolean(points):\r\n        raise Error(points=points, txt=_composite_)\r\n\r\n    n, points = len2(points)\r\n\r\n    if closed:\r\n        # remove duplicate or closing final points\r\n        while n > 1 and points[n-1] in (points[0], points[n-2]):\r\n            n -= 1\r\n        # XXX following line is unneeded if points\r\n        # are always indexed as ... i in range(n)\r\n        points = points[:n]  # XXX numpy.array slice is a view!\r\n\r\n    if n < (3 if closed else 1):\r\n        raise Error(points=n, txt=_too_(_few_))\r\n\r\n    if base and not (isNumpy2(points) or isTuple2(points)):\r\n        for i in range(n):\r\n            base.others(points[i], name=Fmt.SQUARE(points=i))\r\n\r\n    return Points2Tuple(n, points)\r\n\r\n\r\n__all__ += _ALL_DOCS(_BaseIter)\r\n\r\n# **) MIT License\r\n#\r\n# Copyright (C) 2016-2026 -- mrJean1 at Gmail -- All Rights Reserved.\r\n#\r\n# Permission is hereby granted, free of charge, to any person obtaining a\r\n# copy of this software and associated documentation files (the \"Software\"),\r\n# to deal in the Software without restriction, including without limitation\r\n# the rights to use, copy, modify, merge, publish, distribute, sublicense,\r\n# and/or sell copies of the Software, and to permit persons to whom the\r\n# Software is furnished to do so, subject to the following conditions:\r\n#\r\n# The above copyright notice and this permission notice shall be included\r\n# in all copies or substantial portions of the Software.\r\n#\r\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\r\n# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r\n# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL\r\n# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR\r\n# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\r\n# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\r\n# OTHER DEALINGS IN THE SOFTWARE.\r\n"
  },
  {
    "path": "pygeodesy/karney.py",
    "content": "\n# -*- coding: utf-8 -*-\n\nu'''Wrapper around several C{geomath.Math} functions from I{Karney}'s Python package U{geographiclib\n<https://PyPI.org/project/geographiclib>}, provided that package is installed.\n\nMethods of the I{wrapped} L{Geodesic<geodesicw.Geodesic>} and L{GeodesicLine<geodesicw.GeodesicLine>}\nclasses return a L{GDict} instance offering access to the C{dict} items either by C{key} or by\nC{attribute} name.\n\nWith env variable C{PYGEODESY_GEOGRAPHICLIB} left undefined or set to C{\"2\"}, modules L{geodesicw},\nL{geodesicx} and this module will use U{GeographicLib 2.0+<https://GeographicLib.SourceForge.io/C++/doc/>}\nand newer transcoding, otherwise C{1.52} or older.  Set C{PYGEODESY_GEOGRAPHICLIB=2.4} to default to the\nC{Jacobi amplitude} instead of C{Bulirsch}' function in methods L{ExactTransverseMercator.forward\n<pygeodesy.ExactTransverseMercator.forward>} and L{reverse <pygeodesy.ExactTransverseMercator.reverse>}.\n\nKarney-based functionality\n==========================\n\n1. The following classes and functions in C{pygeodesy}\n\n  - L{AlbersEqualArea}, L{AlbersEqualArea2}, L{AlbersEqualArea4}, L{AlbersEqualAreaCylindrical},\n    L{AlbersEqualAreaNorth}, L{AlbersEqualAreaSouth} -- U{AlbersEqualArea\n    <https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1AlbersEqualArea.html>}\n\n  - L{Ang}, L{Deg}, L{Rad} -- U{AngleT<https://GeographicLib.SourceForge.io/C++/doc/\n    classGeographicLib_1_1AngleT.html>} in I{GeographicLib 2.7}.\n\n  - L{AuxAngle}, L{AuxDST}, L{AuxDLat}, L{AuxLat} -- U{AuxAngle<https://GeographicLib.SourceForge.io/C++/doc/\n    classGeographicLib_1_1AuxAngle.html>}, U{DST<https://GeographicLib.SourceForge.io/C++/doc/\n    classGeographicLib_1_1DST.html>}, U{DAuxLatitude<https://GeographicLib.SourceForge.io/C++/doc/\n    classGeographicLib_1_1DAuxLatitude.html>}, U{AuxLatitude<https://GeographicLib.SourceForge.io/C++/doc/\n    classGeographicLib_1_1AuxLatitude.html>} in I{GeographicLib 2.2+}\n\n  - L{CassiniSoldner} -- U{CassiniSoldner<https://GeographicLib.SourceForge.io/C++/doc/\n    classGeographicLib_1_1CassiniSoldner.html>}\n\n  - L{Conformal3}, L{Conformal3B}, L{Conformal3Sphere} -- U{Conformal3<https://GeographicLib.SourceForge.io/C++/doc/\n    classGeographicLib_1_1Triaxial_1_1Conformal3.html>} in I{GeographicLib 2.7}\n\n  - L{EcefKarney} -- U{Geocentric<https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Geocentric.html>}\n\n  - L{Elliptic} -- U{EllipticFunction<https://GeographicLib.SourceForge.io/C++/doc/\n    classGeographicLib_1_1EllipticFunction.html>}\n\n  - L{EquidistantExact}, L{EquidistantGeodSolve}, L{EquidistantKarney} -- U{AzimuthalEquidistant\n    <https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1AzimuthalEquidistant.html>}\n\n  - L{Etm}, L{ExactTransverseMercator} -- U{TransverseMercatorExact<https://GeographicLib.SourceForge.io/C++/doc/\n    classGeographicLib_1_1TransverseMercatorExact.html>}\n\n  - L{Geodesic}, L{GeodesicLine} -- I{wrapped} U{geodesic.Geodesic<https://PyPI.org/project/geographiclib>},\n    I{wrapped} U{geodesicline.GeodesicLine<https://PyPI.org/project/geographiclib>}\n\n  - L{GeodesicAreaExact}, L{PolygonArea} -- U{PolygonArea<https://GeographicLib.SourceForge.io/C++/doc/\n    classGeographicLib_1_1PolygonAreaT.html>}\n\n  - L{GeodesicExact}, L{GeodesicLineExact} -- U{GeodesicExact<https://GeographicLib.SourceForge.io/C++/doc/\n    classGeographicLib_1_1GeodesicExact.html>}, U{GeodesicLineExact<https://GeographicLib.SourceForge.io/C++/doc/\n    classGeographicLib_1_1GeodesicLineExact.html>}\n\n  - L{GeoidKarney} -- U{Geoid<https://GeographicLib.SourceForge.io/C++/doc/geoid.html>}\n\n  - L{Georef} -- U{Georef<https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Georef.html>}\n\n  - L{GnomonicExact}, L{GnomonicGeodSolve}, L{GnomonicKarney} -- U{Gnomonic\n    <https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Gnomonic.html>}\n\n  - L{Intersector} -- U{Intersect<https://GeographicLib.SourceForge.io/C++/doc/\n    classGeographicLib_1_1Intersect.html>} from I{GeographicLib 2.3+}\n\n  - L{JacobiConformal} -- U{JacobiConformal\n    <https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1experimental_1_1JacobiConformal.html>}\n\n  - L{KTransverseMercator} - U{TransverseMercator<https://GeographicLib.SourceForge.io/C++/doc/\n    classGeographicLib_1_1TransverseMercator.html>}\n\n  - L{LocalCartesian}, L{Ltp} -- U{LocalCartesian<https://GeographicLib.SourceForge.io/C++/doc/\n    classGeographicLib_1_1LocalCartesian.html>}\n\n  - L{Osgr} -- U{OSGB<https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1OSGB.html>}\n\n  - L{rhumb.aux_}, L{RhumbAux}, L{RhumbLineAux} -- U{Rhumb<https://GeographicLib.SourceForge.io/C++/doc/\n    classGeographicLib_1_1Rhumb.html>} and U{RhumbLine<https://GeographicLib.SourceForge.io/C++/doc/\n    classGeographicLib_1_1RhumbLine.html>} from I{GeographicLib 2.2+}\n\n  - L{rhumb.ekx}, L{Rhumb}, L{RhumbLine} -- U{Rhumb<https://GeographicLib.SourceForge.io/C++/doc/\n    classGeographicLib_1_1Rhumb.html>}, U{RhumbLine<https://GeographicLib.SourceForge.io/C++/doc/\n    classGeographicLib_1_1RhumbLine.html>}, U{TransverseMercator<https://GeographicLib.SourceForge.io/C++/doc/\n    classGeographicLib_1_1TransverseMercator.html>} from I{GeographicLib 2.0}\n\n  - L{Triaxial3}, L{Triaxial3B} -- U{Cartesian3<https://GeographicLib.SourceForge.io/C++/doc/\n    classGeographicLib_1_1Triaxial_1_1Cartesian3.html>}, U{Ellipsoidal3<https://GeographicLib.SourceForge.io/C++/doc/\n    classGeographicLib_1_1Triaxial_1_1Ellipsoidal3.html>} in I{GeographicLib 2.7}\n\n  - L{Ups} -- U{PolarStereographic<https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1PolarStereographic.html>}\n\n  - L{Utm} -- U{TransverseMercator<https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1TransverseMercator.html>}\n\n  - L{UtmUps}, L{Epsg} -- U{UTMUPS<https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1UTMUPS.html>}\n\n  - L{atan1d}, L{atan2d}, L{sincos2}, L{sincos2d}, L{tand} -- U{geomath.Math<https://GeographicLib.SourceForge.io/C++/doc/\n    classGeographicLib_1_1Math.html>}\n\nare I{transcoded} from C++ classes in I{Karney}'s U{GeographicLib<https://GeographicLib.SourceForge.io/C++/doc/annotated.html>}.\n\n2. These C{pygeodesy} modules and classes\n\n  - L{ellipsoidalGeodSolve}, L{ellipsoidalKarney}, L{geodesici}, L{geodsolve}, L{karney}, L{rhumb.solve}\n  - L{EquidistantKarney}, L{FrechetKarney}, L{GeodesicSolve}, L{GeodesicLineSolve}, L{Geodesic3Solve},\n    L{GeodesicLine3Solve}, L{GnomonicGeodSolve}, L{GnomonicKarney}, L{HeightIDWkarney}, L{Intersectool}\n\nare or use I{wrappers} around I{Karney}'s Python U{geographiclib<https://PyPI.org/project/geographiclib>} or\nC++ utility U{GeodSolve<https://GeographicLib.SourceForge.io/C++/doc/GeodSolve.1.html>}, U{Geod3Solve\n<https://GeographicLib.SourceForge.io/C++/doc/Geod3Solve.1.html>}, U{IntersectTool\n<https://GeographicLib.SourceForge.io/C++/doc/IntersectTool.1.html>} or U{RhumbSolve\n<https://GeographicLib.SourceForge.io/C++/doc/RhumbSolve.1.html>}.\n\n3. All C{pygeodesy} functions and methods to compute I{ellipsoidal} intersections, nearest points and trilaterations\n\n  - L{ellipsoidalExact.intersection3}, L{ellipsoidalExact.intersections2}, L{ellipsoidalExact.nearestOn},\n    L{ellipsoidalExact.LatLon.intersection3}, L{ellipsoidalExact.LatLon.intersections2},\n    L{ellipsoidalExact.LatLon.nearestOn}, L{ellipsoidalExact.LatLon.trilaterate5}\n\n  - L{ellipsoidalKarney.intersection3}, L{ellipsoidalKarney.intersections2}, L{ellipsoidalKarney.nearestOn},\n    L{ellipsoidalKarney.LatLon.intersection3}, L{ellipsoidalKarney.LatLon.intersections2},\n    L{ellipsoidalKarney.LatLon.nearestOn}, L{ellipsoidalKarney.LatLon.trilaterate5}\n\n  - L{ellipsoidalVincenty.intersection3}, L{ellipsoidalVincenty.intersections2}, L{ellipsoidalVincenty.nearestOn},\n    L{ellipsoidalVincenty.LatLon.intersection3}, L{ellipsoidalVincenty.LatLon.intersections2},\n    L{ellipsoidalVincenty.LatLon.nearestOn}, L{ellipsoidalVincenty.LatLon.trilaterate5}\n\n  - L{RhumbLineAux.Intersection} and L{RhumbLine.Intersection}\n\nare implementations of I{Karney}'s iterative solution posted under U{The B{ellipsoidal} case\n<https://GIS.StackExchange.com/questions/48937/calculating-intersection-of-two-circles>} and in paper U{Geodesics\non an ellipsoid of revolution<https://ArXiv.org/pdf/1102.1215.pdf>} (pp 20-21, section B{14. MARITIME BOUNDARIES}).\n\n4. The C{pygeodesy} methods to compute I{ellipsoidal} intersections and nearest points\n\n  - L{RhumbLineAux.Intersecant2}, L{RhumbLineAux.PlumbTo}, L{RhumbLine.Intersecant2} and L{RhumbLine.PlumbTo}\n\nare I{transcoded} of I{Karney}'s iterative C++ function U{rhumb-intercept\n<https://SourceForge.net/p/geographiclib/discussion/1026620/thread/2ddc295e/>}.\n\n5. Spherical functions\n\n  - L{pygeodesy.excessKarney_}, L{sphericalTrigonometry.areaOf}\n\nin C{pygeodesy} are based on I{Karney}'s post U{Area of a spherical polygon\n<https://MathOverflow.net/questions/97711/the-area-of-spherical-polygons>}, 3rd Answer.\n'''\n# make sure int/int division yields float quotient, see .basics\nfrom __future__ import division as _; del _  # noqa: E702 ;\n\nfrom pygeodesy.basics import _copysign, _isin, isint, neg, _xgeographiclib, _zip\nfrom pygeodesy.constants import NAN, _isfinite as _math_isfinite, \\\n                               _0_0, _1_0, _2_0, _180_0, _N_180_0, _360_0\n# from pygeodesy.deprecated.classes import Rhumb7Tuple  # _MODS\nfrom pygeodesy.errors import GeodesicError, _ValueError, _xkwds\n# from pygeodesy.geod3Solve import Geod3Solve8Tuple  # _MODS\nfrom pygeodesy.fmath import cbrt, fhorner, fremainder, norm2\nfrom pygeodesy.fsums import _Ksum\nfrom pygeodesy.internals import _getenv, _popen2, _PYGEODESY_ENV, typename, \\\n                                _version_info\nfrom pygeodesy.interns import NN, _a12_, _area_, _azi2_, _azi12_, _composite_, \\\n                             _lat1_, _lat2_, _lon1_, _lon2_, _m12_, _M12_, \\\n                             _M21_, _number_, _s12_, _S12_, _SPACE_, \\\n                             _UNDER_, _X_, _1_, _2_,  _BAR_  # PYCHOK used!\nfrom pygeodesy.lazily import _ALL_DOCS, _ALL_LAZY, _ALL_MODS as _MODS, _FOR_DOCS\nfrom pygeodesy.named import ADict, _NamedBase, _NamedTuple, notImplemented, _Pass\nfrom pygeodesy.props import deprecated_method, property_RO, property_ROnce\nfrom pygeodesy.units import Azimuth as _Azi, Degrees as _Deg, Lat, Lon, \\\n                            Meter as _M, Meter2 as _M2, Number_\nfrom pygeodesy.utily import atan2d, sincos2d, tand, _unrollon,  fabs\n\n# from math import fabs  # from .utily\n\n__all__ = _ALL_LAZY.karney\n__version__ = '25.12.23'\n\n_1_16th     = _1_0 / 16\n_2_4_       = '2.4'\n_K_2_0      = _getenv(_PYGEODESY_ENV(typename(_xgeographiclib)[2:]), _2_)\n_K_2_4      = _K_2_0 ==  _2_4_\n_K_2_0      = _K_2_4 or (_K_2_0 == _2_)\n_perimeter_ = 'perimeter'\n\n\nclass _GTuple(_NamedTuple):  # in .testNamedTuples\n    '''(INTERNAL) Helper.\n    '''\n    def _dup_iteration(self, r):\n        if self._iteration is not None:\n            r._iteration = self._iteration\n        return r\n\n    def toGDict(self, **updates):  # NO name=NN\n        '''Convert this C{*Tuple} to a L{GDict}.\n\n           @kwarg updates: Optional items to apply (C{name=value} pairs)\n        '''\n        r = GDict(_zip(self._Names_, self))  # strict=True\n        if updates:\n            r.update(updates)\n        return self._dup_iteration(r)\n\n    def _toTuple(self, nTuple, dflt, updates={}):\n        '''(INTERNAL) Convert this C{_GTuple} to an B{C{nTuple}}.\n        '''\n        _g = self.toGDict(**updates).get\n        t  = tuple(_g(n, dflt) for n in nTuple._Names_)\n        t  = nTuple(t, name=self.name)\n        return self._dup_iteration(t)\n\n\nclass _Lat(Lat):\n    '''(INTERNAL) Latitude B{C{lat}}.\n    '''\n    def __init__(self, *lat, **Error_name):\n        kwds = _xkwds(Error_name, clip=0, Error=GeodesicError)\n        Lat.__new__(_Lat, *lat, **kwds)\n\n\nclass _Lon(Lon):\n    '''(INTERNAL) Longitude B{C{lon}}.\n    '''\n    def __init__(self, *lon, **Error_name):\n        kwds = _xkwds(Error_name, clip=0, Error=GeodesicError)\n        Lon.__new__(_Lon, *lon, **kwds)\n\n\nclass Area3Tuple(_NamedTuple):  # in .geodesicx.gxarea\n    '''3-Tuple C{(number, perimeter, area)} with the C{number}\n       of points of the polygon or polyline, the C{perimeter} in\n       C{meter} and the C{area} in C{meter} I{squared}.\n    '''\n    _Names_ = (_number_, _perimeter_, _area_)\n    _Units_ = ( Number_, _M,          _M2)\n\n\nclass Caps(object):\n    '''I{Enum}-style masks to be bit-C{or}'ed to specify C{geodesic}, C{rhumb}\n       or C{-lines} capabilities (C{caps}) and method results (C{outmask}).\n\n       C{AREA} - compute the area C{S12},\n\n       C{AZIMUTH} - include azimuths C{azi1} and C{azi2},\n\n       C{DISTANCE} - compute distance C{s12} and angular distance C{a12},\n\n       C{DISTANCE_IN} - allow distance C{s12} in method C{.Direct},\n\n       C{EMPTY} - nothing, formerly aka C{NONE},\n\n       C{GEODESICSCALE} - compute geodesic scales C{M12} and C{M21},\n\n       C{LATITUDE} - compute latitude C{lat2},\n\n       C{LINE_OFF} - Line without updates from parent C{geodesic} or C{rhumb}.\n\n       C{LONGITUDE} - compute longitude C{lon2},\n\n       C{LONG_UNROLL} - unroll C{lon2} in method C{.Direct},\n\n       C{NONFINITONAN} - set all C{GDict} items to C{NAN} iff any argument is C{non-finite}.\n\n       C{REDUCEDLENGTH} - compute the reduced length C{m12},\n\n       C{REVERSE2} - reverse azimuth C{azi2} by 180 degrees,\n\n       and C{ALL} - all of the above.\n\n       C{STANDARD} = C{AZIMUTH | DISTANCE | LATITUDE | LONGITUDE}\n\n       C{LINE_CAPS} = C{STANDARD | DISTANCE_IN | REDUCEDLENGTH | GEODESICSCALE}\n    '''\n    EMPTY         =  0        # formerly aka NONE\n    _CAP_1        =  1 << 0   # for goedesici/-w\n    _CAP_1p       =  1 << 1   # for goedesici/-w\n    _CAP_2        =  1 << 2\n    _CAP_3        =  1 << 3   # for goedesici/-w\n    _CAP_4        =  1 << 4   # for goedesicw\n#                 =  1 << 5   # unused\n#                 =  1 << 6   # unused\n    _CAP_ALL      =  0x1F\n#   _CAP_MASK     = _CAP_ALL\n    LATITUDE      =  1 << 7   # compute latitude C{lat2}\n    LONGITUDE     =  1 << 8  | _CAP_3  # compute longitude C{lon2}\n    AZIMUTH       =  1 << 9   # azimuths C{azi1} and C{azi2}\n    DISTANCE      =  1 << 10 | _CAP_1  # compute distance C{s12}\n    DISTANCE_IN   =  1 << 11 | _CAP_1 | _CAP_1p  # allow distance C{s12} in Direct\n    REDUCEDLENGTH =  1 << 12 | _CAP_1 | _CAP_2  # compute reduced length C{m12}\n    GEODESICSCALE =  1 << 13 | _CAP_1 | _CAP_2  # compute geodesic scales C{M12} and C{M21}\n    AREA          =  1 << 14 | _CAP_4  # compute area C{S12}\n    ALL           =  0x7F80  | _CAP_ALL  # without LONG_UNROLL, LINE_OFF, NONFINITONAN, REVERSE2 and _DEBUG_*\n\n    STANDARD      =  AZIMUTH  | DISTANCE | LATITUDE | LONGITUDE\n    STANDARD_LINE =  STANDARD | DISTANCE_IN  # for goedesici/-w\n\n    LINE_CAPS     =  STANDARD_LINE | REDUCEDLENGTH | GEODESICSCALE  # .geodesici only\n    LONG_UNROLL   =  1 << 15  # unroll C{lon2} in .Direct and .Position\n    LINE_OFF      =  1 << 16  # Line without updates from parent geodesic or rhumb\n    NONFINITONAN  =  1 << 17  # see method GDict._toNAN\n    REVERSE2      =  1 << 18  # reverse C{azi2}\n\n    AZIMUTH_DISTANCE        = AZIMUTH | DISTANCE\n    AZIMUTH_DISTANCE_AREA   = AZIMUTH | DISTANCE | AREA\n\n    LATITUDE_LONGITUDE      = LATITUDE | LONGITUDE\n    LATITUDE_LONGITUDE_AREA = LATITUDE | LONGITUDE | AREA\n\n    _SALP_CALPs_   =  1 << 19  # (INTERNAL) GeodesicExact._GenInverse\n\n    _DEBUG_AREA    =  1 << 20  # (INTERNAL) include Line details\n    _DEBUG_DIRECT  =  1 << 21  # (INTERNAL) include Direct details\n    _DEBUG_INVERSE =  1 << 22  # (INTERNAL) include Inverse details\n    _DEBUG_LINE    =  1 << 23  # (INTERNAL) include Line details\n    _DEBUG_ALL     = _DEBUG_AREA | _DEBUG_DIRECT | _DEBUG_INVERSE | \\\n                     _DEBUG_LINE | _SALP_CALPs_\n\n    _DIRECT3       =  AZIMUTH  | LATITUDE | LONGITUDE  # for goedesicw only\n    _INVERSE3      =  AZIMUTH  | DISTANCE  # for goedesicw only\n\n    _OUT_ALL       =  ALL  # see geographiclib.geodesiccapabilities.py\n    _OUT_MASK      =  ALL | LONG_UNROLL | NONFINITONAN | REVERSE2 | _DEBUG_ALL\n\n    _AZIMUTH_LATITUDE_LONGITUDE           =  AZIMUTH | LATITUDE | LONGITUDE\n    _AZIMUTH_LATITUDE_LONG_UNROLL         =  AZIMUTH | LATITUDE | LONG_UNROLL\n    _DEBUG_DIRECT_LINE                    = _DEBUG_DIRECT | _DEBUG_LINE\n#   _DISTANCE_IN_OUT                      =  DISTANCE_IN & _OUT_MASK  # == DISTANCE_IN in .gx, .gxline\n    _REDUCEDLENGTH_GEODESICSCALE          =  REDUCEDLENGTH | GEODESICSCALE\n#   _REDUCEDLENGTH_GEODESICSCALE_DISTANCE =  REDUCEDLENGTH | GEODESICSCALE | DISTANCE\n\n    def items(self):\n        '''Yield all I{public} C{Caps} as 2-tuple C{(NAME, mask)}.\n        '''\n        for n, C in type(self).__dict__.items():\n            if isint(C) and not n.startswith(_UNDER_) \\\n                        and n.replace(_UNDER_, NN).isupper():\n                yield n, C\n\n    def toStr(self, Cask, sep=_BAR_):\n        '''Return C{Caps} or an C{outmask} as C{str} or tuple of C{str}s.\n        '''\n        s = (n for n, C in sorted(Caps.items())\n                        if C and (Cask & C) == C)  # and int1s(C) <= 3\n        return sep.join(s) if sep else tuple(s)\n\nif _FOR_DOCS:  # PYCHOK force ...\n    pass  # ... CAPS.__doc__ into epydoc\nelse:\n    Caps = Caps()  # PYCHOK singleton\n\n_key2Caps = dict(a12 =Caps.DISTANCE,  # in GDict._toNAN, -._unCaps\n                 azi1=Caps.AZIMUTH,\n                 azi2=Caps.AZIMUTH,\n                 lat1=Caps.LATITUDE,\n                 lat2=Caps.LATITUDE,\n                 lon1=Caps.LONGITUDE,\n                 lon2=Caps.LONGITUDE,\n                 m12 =Caps.REDUCEDLENGTH,\n                 M12 =Caps.GEODESICSCALE,\n                 M21 =Caps.GEODESICSCALE,\n                 s12 =Caps.DISTANCE,\n                 S12 =Caps.AREA)\n\n\nclass _CapsBase(_NamedBase):  # in .auxilats, .geodesicx.gxbases\n    '''(INTERNAL) Base class for C{Geodesic*}, C{Geodesic*Exact}, C{Intersectool} and C{Rhumb*Base}.\n    '''\n    ALL           = Caps.ALL\n    AREA          = Caps.AREA\n    AZIMUTH       = Caps.AZIMUTH\n    DISTANCE      = Caps.DISTANCE\n    DISTANCE_IN   = Caps.DISTANCE_IN\n    EMPTY         = Caps.EMPTY  # aka NONE\n    GEODESICSCALE = Caps.GEODESICSCALE\n    LATITUDE      = Caps.LATITUDE\n    LINE_CAPS     = Caps.LINE_CAPS\n    LINE_OFF      = Caps.LINE_OFF\n    LONGITUDE     = Caps.LONGITUDE\n    LONG_UNROLL   = Caps.LONG_UNROLL\n    NONFINITONAN  = Caps.NONFINITONAN\n    REDUCEDLENGTH = Caps.REDUCEDLENGTH\n    STANDARD      = Caps.STANDARD\n    STANDARD_LINE = Caps.STANDARD_LINE  # for geodesici\n\n    _caps         = 0  # None\n    _debug        = 0  # or Caps._DEBUG_...\n\n    @property_RO\n    def caps(self):\n        '''Get the capabilities (bit-or'ed C{Caps}).\n        '''\n        return self._caps\n\n    def caps_(self, caps):\n        '''Check the available capabilities.\n\n           @arg caps: Bit-or'ed combination of L{Caps<pygeodesy.karney.Caps>}\n                      values for all capabilities to be checked.\n\n           @return: C{True} if I{all} B{C{caps}} are available, C{False}\n                    otherwise (C{bool}).\n        '''\n        caps &= Caps._OUT_ALL\n        return (self.caps & caps) == caps\n\n    @property\n    def debug(self):\n        '''Get the C{debug} option (C{bool}).\n        '''\n        return bool(self._debug)\n\n    @debug.setter  # PYCHOK setter!\n    def debug(self, debug):\n        '''Set the C{debug} option (C{bool}) to include\n           more details in L{GDict} results.\n        '''\n        self._debug = Caps._DEBUG_ALL if debug else 0\n\n    def _iter2tion(self, r, iter=None, **unused):\n        '''(INTERNAL) Copy C{C{s}.iter} into C{B{r}._iteration}.\n        '''\n        if iter is not None:\n            self._iteration = r._iteration = iter\n        return r\n\n\nclass Direct9Tuple(_GTuple):\n    '''9-Tuple C{(a12, lat2, lon2, azi2, s12, m12, M12, M21, S12)} with arc\n       length C{a12}, angles C{lat2}, C{lon2} and azimuth C{azi2} in C{degrees},\n       distance C{s12} and reduced length C{m12} in C{meter} and area C{S12} in\n       C{meter} I{squared}.\n    '''\n    _Names_ = (_a12_, _lat2_, _lon2_, _azi2_, _s12_, _m12_, _M12_, _M21_, _S12_)\n    _Units_ = (_Azi,  _Lat,   _Lon,   _Azi,   _M,    _Pass, _Pass, _Pass, _M2)\n\n\nclass GDict(ADict):  # XXX _NamedDict\n    '''A C{dict} with both C{key} I{and} C{attribute} access to the C{dict} items.\n\n       Results of all C{geodesic} and C{rhumb} methods (with capitalized named) are\n       returned as L{GDict} instances, see for example L{GeodesicExact} and L{RhumbAux}.\n    '''\n    def toDirect9Tuple(self, dflt=NAN):\n        '''Convert this L{GDict} result to a 9-tuple, like I{Karney}'s method\n           C{geographiclib.geodesic.Geodesic._GenDirect}.\n\n           @kwarg dflt: Default value for missing items (C{any}).\n\n           @return: L{Direct9Tuple}C{(a12, lat2, lon2, azi2,\n                    s12, m12, M12, M21, S12)}\n        '''\n        return self._toTuple(Direct9Tuple, dflt)\n\n    def toGeodSolve12Tuple(self, dflt=NAN):  # PYCHOK 12 args\n        '''Convert this L{GDict} result to a 12-Tuple, compatible with I{Karney}'s\n           U{GeodSolve<https://GeographicLib.SourceForge.io/C++/doc/GeodSolve.1.html>}\n           result.\n\n           @kwarg dflt: Default value for missing items (C{any}).\n\n           @return: L{GeodSolve12Tuple}C{(lat1, lon1, azi1, lat2, lon2, azi2,\n                    s12, a12, m12, M12, M21, S12)}.\n        '''\n        return self._toTuple(_MODS.geodsolve.GeodSolve12Tuple, dflt)\n\n    def toGeod3Solve8Tuple(self, dflt=NAN):  # PYCHOK 12 args\n        '''Convert this L{GDict} result to an 8-Tuple, compatible with I{Karney}'s\n           U{Geod3Solve<https://GeographicLib.SourceForge.io/C++/doc/Geod3Solve.1.html>}\n           result.\n\n           @kwarg dflt: Default value for missing items (C{any}).\n\n           @return: L{Geod3Solve8Tuple}C{(bet1, omg1, alp1, bet2, omg2, alp2, s12, a12)}.\n        '''\n        return self._toTuple(_MODS.geod3solve.Geod3Solve8Tuple, dflt)\n\n    def toInverse10Tuple(self, dflt=NAN):\n        '''Convert this L{GDict} result to a 10-tuple, like I{Karney}'s\n           method C{geographiclib.geodesic.Geodesic._GenInverse}.\n\n           @kwarg dflt: Default value for missing items (C{any}).\n\n           @return: L{Inverse10Tuple}C{(a12, s12, salp1, calp1, salp2, calp2,\n                    m12, M12, M21, S12)}.\n        '''\n        return self._toTuple(Inverse10Tuple, dflt)\n\n    def _toNAN(self, outmask, **specs):  # .GeodesicExact._GDistInverse, .GeodesicLineExact._GenPosition\n        '''(INTERNAL) Convert this C{GDict} to all C{NAN}s.\n        '''\n        if (outmask & Caps.NONFINITONAN):\n            def _t2(k):\n                return k, specs.get(k, NAN)\n\n            d = dict(_t2(k) for k, C in _key2Caps.items()\n                                     if (outmask & C) == C)\n            self.set_(**d)  # self.update(d)\n        return self\n\n    @deprecated_method\n    def toRhumb7Tuple(self, dflt=NAN):  # PYCHOK no cover\n        '''DEPRECATED on 23.12.07, use method C{toRhumb8Tuple}.\n\n           @return: A I{DEPRECATED} L{Rhumb7Tuple}.\n        '''\n        return self._toTuple(_MODS.deprecated.classes.Rhumb7Tuple, dflt)\n\n    def toRhumb8Tuple(self, dflt=NAN):\n        '''Convert this L{GDict} result to a 8-tuple.\n\n           @kwarg dflt: Default value for missing items (C{any}).\n\n           @return: L{Rhumb8Tuple}C{(lat1, lon1, lat2, lon2, azi12,\n                    s12, S12, a12)}.\n        '''\n        return self._toTuple(Rhumb8Tuple, dflt)\n\n    def toRhumbSolve7Tuple(self, dflt=NAN):\n        '''Convert this L{GDict} result to a 8-tuple.\n\n           @kwarg dflt: Default value for missing items (C{any}).\n\n           @return: L{RhumbSolve7Tuple}C{(lat1, lon1, lat2, lon2,\n                    azi12, s12, S12)}.\n        '''\n        return self._toTuple(_MODS.rhumb.solve.RhumbSolve7Tuple, dflt)\n\n    def _toTuple(self, nTuple, dflt):\n        '''(INTERNAL) Convert this C{GDict} to an B{C{nTuple}}.\n        '''\n        t  = tuple(self.get(n, dflt) for n in nTuple._Names_)\n        return nTuple(t, iteration=self._iteration, name=self.name)  # PYCHOK name\n\n    def _2X(self, gl, _2X=_X_):  # .Intersectool, .Intersector\n        '''(INTERNAL) Rename C{-2} attr to C{-X} or C{-M}.\n        '''\n        X = GDict(self)\n        for n in (_lat2_, _lon2_, _azi2_, _s12_, _a12_):\n            if n in X:  # X._X = X._2\n                X[n[:-1] + _2X] = X.pop(n)\n            v = getattr(gl, n, X)\n            if v is not X:  # X._2 = gl._2\n                X[n] = v\n        return X\n\n    def _unCaps(self, outmask):  # in .geodsolve\n        '''(INTERNAL) Remove superfluous items.\n        '''\n        for k, C in _key2Caps.items():\n            if k in self and (outmask & C) != C:\n                self.pop(k)  # delattr(self, k)\n        return self\n\n\nclass Inverse10Tuple(_GTuple):\n    '''10-Tuple C{(a12, s12, salp1, calp1, salp2, calp2, m12, M12, M21, S12)} with arc length\n       C{a12} in C{degrees}, distance C{s12} and reduced length C{m12} in C{meter}, area\n       C{S12} in C{meter} I{squared} and the sines C{salp1}, C{salp2} and cosines C{calp1},\n       C{calp2} of the initial C{1} and final C{2} (forward) azimuths.\n    '''\n    _Names_ = (_a12_, _s12_, 'salp1', 'calp1', 'salp2', 'calp2', _m12_, _M12_, _M21_, _S12_)\n    _Units_ = (_Azi,  _M,    _Pass,   _Pass,   _Pass,   _Pass,   _Pass, _Pass, _Pass, _M2)\n\n    def toGDict(self, **updates):\n        '''Convert this C{Inverse10Tuple} to a L{GDict}.\n\n           @kwarg updates: Optional items to apply (C{nam=value} pairs)\n        '''\n        return _GTuple.toGDict(self, azi1=atan2d(self.salp1, self.calp1),  # PYCHOK namedTuple\n                                     azi2=atan2d(self.salp2, self.calp2),  # PYCHOK namedTuple\n                                   **updates)  # PYCHOK indent\n\n\nclass Rhumb8Tuple(_GTuple):\n    '''8-Tuple C{(lat1, lon1, lat2, lon2, azi12, s12, S12, a12)} with lat- C{lat1},\n       C{lat2} and longitudes C{lon1}, C{lon2} of both points, the azimuth of the\n       rhumb line C{azi12}, the distance C{s12}, the area C{S12} under the rhumb\n       line and the angular distance C{a12} between both points.\n    '''\n    _Names_ = (_lat1_, _lon1_, _lat2_, _lon2_, _azi12_, _s12_, _S12_,  _a12_)\n    _Units_ = ( Lat,    Lon,    Lat,    Lon,   _Azi,    _M,    _M2,    _Deg)\n\n    def toDirect9Tuple(self, dflt=NAN, **a12_azi1_azi2_m12_M12_M21):\n        '''Convert this L{Rhumb8Tuple} result to a 9-tuple, like I{Karney}'s\n           method C{geographiclib.geodesic.Geodesic._GenDirect}.\n\n           @kwarg dflt: Default value for missing items (C{any}).\n           @kwarg a12_azi1_azi2_m12_M12_M21: Optional keyword arguments\n                     to specify or override L{Inverse10Tuple} items.\n\n           @return: L{Direct9Tuple}C{(a12, lat2, lon2, azi2, s12,\n                    m12, M12, M21, S12)}\n        '''\n        d = dict(azi1=self.azi12, M12=_1_0, m12=self.s12,  # PYCHOK attr\n                 azi2=self.azi12, M21=_1_0)  # PYCHOK attr\n        if a12_azi1_azi2_m12_M12_M21:\n            d.update(a12_azi1_azi2_m12_M12_M21)\n        return self._toTuple(Direct9Tuple, dflt, d)\n\n    def toInverse10Tuple(self, dflt=NAN, **a12_m12_M12_M21_salp1_calp1_salp2_calp2):\n        '''Convert this L{Rhumb8Tuple} to a 10-tuple, like I{Karney}'s\n           method C{geographiclib.geodesic.Geodesic._GenInverse}.\n\n           @kwarg dflt: Default value for missing items (C{any}).\n           @kwarg a12_m12_M12_M21_salp1_calp1_salp2_calp2: Optional keyword\n                      arguments to specify or override L{Inverse10Tuple} items.\n\n           @return: L{Inverse10Tuple}C{(a12, s12, salp1, calp1, salp2, calp2,\n                    m12, M12, M21, S12)}.\n        '''\n        s, c = _sincos2d(self.azi12)  # PYCHOK attr\n        d = dict(salp1=s, calp1=c, M12=_1_0, m12=self.s12,  # PYCHOK attr\n                 salp2=s, calp2=c, M21=_1_0)\n        if a12_m12_M12_M21_salp1_calp1_salp2_calp2:\n            d.update(a12_m12_M12_M21_salp1_calp1_salp2_calp2)\n        return self._toTuple(Inverse10Tuple, dflt, d)\n\n    @deprecated_method\n    def _to7Tuple(self):  # in DEPRECATED Rhumb7Tuple\n        '''DEPRECATED, I{do not use!}'''\n        return _MODS.deprecated.classes.Rhumb7Tuple(self[:-1])\n\n\nclass _kWrapped(_CapsBase):  # in .geodesicw\n    '''(INTERNAL) Wrapper for some of I{Karney}'s U{geographiclib\n        <https://PyPI.org/project/geographiclib>} classes.\n    '''\n\n    @property_ROnce\n    def geographiclib(self):\n        '''Lazily import C{geographiclib}, provided the U{geographiclib\n           <https://PyPI.org/project/geographiclib>} package is installed,\n           otherwise raise a C{LazyImportError}.\n        '''\n        g = _xgeographiclib(type(self), 1, 49)\n        from geographiclib.geodesic import Geodesic\n        g.Geodesic = Geodesic\n        from geographiclib.geodesicline import GeodesicLine\n        g.GeodesicLine = GeodesicLine\n        from geographiclib.geomath import Math\n        g.Math = Math\n#       from geographiclib.polygonarea import PolygonArea\n#       g.PolygonArea = PolygonArea  # see below\n        return g\n\n    @property_ROnce\n    def Math(self):\n        '''Wrap the C{geomath.Math} class, provided the U{geographiclib\n           <https://PyPI.org/project/geographiclib>} package is installed,\n           otherwise C{None}.\n        '''\n        try:\n            g = self.geographiclib\n            M = g.Math\n            if _version_info(g) < (2,):\n                if _K_2_0:\n                    M = None\n#           elif not _K_2_0:  # XXX set 2.0?\n#               _K_2_0 = True\n        except (AttributeError, ImportError):\n            M = None\n        return M\n\n    @property_RO\n    def Math_K_2(self):\n        return (_2_4_ if _K_2_4 else\n               (_2_   if _K_2_0 else _1_)) if self.Math else NN\n\n    @property_ROnce\n    def _PolygonArea(self):  # lazy import\n        from geographiclib.polygonarea import PolygonArea\n        return PolygonArea\n\n_wrapped = _kWrapped()  # PYCHOK singleton, .datum, .test/base.py\n\n\nclass _Xables(object):\n    '''(INTERNAL) Get I{Karney}'s executable paths from/and env vars.\n    '''\n    bin_ = '/opt/local/bin/'  # '/opt/local/Cellar/geographiclib/2.X/bin/'  # HomeBrew on macOS\n    ENV  =  NN\n\n    def GeoConvert(self, *dir_):\n        return self._path(self.GeoConvert, *dir_)\n\n    def GeodSolve(self, *dir_):\n        return self._path(self.GeodSolve, *dir_)\n\n    def Geod3Solve(self, *dir_):\n        return self._path(self.Geod3Solve, *dir_)\n\n    def IntersectTool(self, *dir_):\n        return self._path(self.IntersectTool, *dir_)\n\n    def RhumbSolve(self, *dir_):\n        return self._path(self.RhumbSolve, *dir_)\n\n    def name_version(self, path, base=True):\n        # return C{(path + ' ' + version)} of an executable\n        if path:\n            try:\n                r, s = _popen2((path, '--version'))\n                if base:\n                    path = _MODS.os.path.basename(path)\n                    r    = _SPACE_(path, r.split()[-1])\n                else:\n                    r    = _MODS.streprs.Fmt.PARENSPACED(r, s)\n                return r\n            except (IndexError, IOError, OSError):\n                pass\n        return NN\n\n    def _path(self, which, *dir_):\n        n = typename(which, which)\n        self.ENV = E = _PYGEODESY_ENV(n)\n        return _getenv(E, NN) or (NN(dir_[0], n) if dir_ else E)\n\n    def X_not(self, path):\n        return 'env %s=%r not executable' % (self.ENV, path)\n\n    def X_OK(self, path):  # is C{path} an executable?\n        os = _MODS.os  # import os\n        return os.access(path, os.X_OK) if path else False\n\n_Xables = _Xables()  # PYCHOK singleton\n\n\ndef _around(x):  # in .utily.sincos2d\n    '''I{Coarsen} a scalar by rounding small values to underflow to C{0.0}.\n\n       @return: Coarsened value (C{float}).\n\n       @see: I{Karney}'s U{geomath.Math.AngRound<https://SourceForge.net/p/\n             geographiclib/code/ci/release/tree/python/geographiclib/geomath.py>}\n    '''\n    try:\n        return _wrapped.Math.AngRound(x)\n    except AttributeError:\n        z = _1_16th\n        w =  z - fabs(x)\n        if w > 0:  # don't \"simplify\" z - (z - x) to x\n            x = _copysign(z - w, x)\n        return x\n\n\ndef _atan2d(y, x):\n    '''Return C{atan2(B{y}, B{x})} in C{degrees}.\n    '''\n    try:\n        return _wrapped.Math.atan2d(y, x)\n    except AttributeError:\n        return atan2d(y, x)\n\n\ndef _cbrt(x):\n    '''Return C{cubic root(B{x})}.\n    '''\n    try:\n        return _wrapped.Math.cbrt(x)\n    except AttributeError:\n        return cbrt(x)\n\n\ndef _copyBit(x, y):\n    '''Like C{copysign0(B{x}, B{y})}, with C{B{x} > 0}.\n    '''\n    return (-x) if _signBit(y) else x\n\n\ndef _2cos2x(cx, sx):  # in .auxDST, .auxLat, .gxbases\n    '''Return M{2 * cos(2 * x)} from cos(x) and sin(x).\n    '''\n    r = cx - sx\n    if r:\n        r *= (cx + sx) * _2_0\n    return r\n\n\ndef _diff182(deg0, deg, K_2_0=False):\n    '''Compute C{deg - deg0}, reduced to C{[-180,180]} accurately.\n\n       @return: 2-Tuple C{(delta_angle, residual)} in C{degrees}.\n    '''\n    try:\n        return _wrapped.Math.AngDiff(deg0, deg)\n    except AttributeError:\n        if K_2_0 or _K_2_0:  # geographiclib 2.0+\n            _r = fremainder\n            d, t = _sum2(_r(-deg0, _360_0),\n                         _r( deg,  _360_0))\n            d, t = _sum2(_r( d,    _360_0), t)\n            if _isin(d, _0_0, _180_0, _N_180_0):\n                d = _copysign(d, (-t) if t else (deg - deg0))\n        else:\n            _n = _norm180\n            d, t = _sum2(_n(-deg0), _n(deg))\n            d = _n(d)\n            if t > 0 and d == _180_0:\n                d = _N_180_0\n            d, t = _sum2(d, t)\n        return d, t\n\n\ndef _fix90(deg):  # mimick Math.LatFix\n    '''Replace angle in C{degrees} outside [-90,90] by NAN.\n\n       @return: Angle C{degrees} or NAN.\n    '''\n    try:\n        return _wrapped.Math.LatFix(deg)\n    except AttributeError:\n        return NAN if fabs(deg) > 90 else deg\n\n\ndef _isfinite(x):  # mimick geomath.Math.isfinite\n    '''Check finiteness of C{x}.\n\n       @return: C{True} if finite.\n    '''\n    try:\n        return _wrapped.Math.isfinite(x)\n    except AttributeError:\n        return _math_isfinite(x)  # and fabs(x) <= _MAX\n\n\ndef _llz2gl(gl, **llz2):  # see .geodesici._llz2G\n    '''(INTERNAL) Set C{gl.lat2, .lon2, .azi2} from C{llz2}.\n    '''\n    if llz2:\n        for n in (_lat2_, _lon2_, _azi2_):  # _lat1_, _lon1_, _azi1_\n            v = llz2.get(n, None)\n            if v is not None:\n                setattr(gl, n, v)\n    return gl\n\n\ndef _norm2(x, y):  # mimick geomath.Math.norm\n    '''Normalize C{B{x}} and C{B{y}}.\n\n       @return: 2-Tuple of C{(B{x}, B{y})}, normalized.\n    '''\n    try:\n        return _wrapped.Math.norm(x, y)\n    except AttributeError:\n        return norm2(x, y)\n\n\ndef _norm180(deg):  # mimick geomath.Math.AngNormalize\n    '''Reduce angle in C{degrees} to (-180,180].\n\n       @return: Reduced angle C{degrees}.\n    '''\n    try:\n        return _wrapped.Math.AngNormalize(deg)\n    except AttributeError:\n        d = fremainder(deg, _360_0)\n        if _isin(d, _180_0, _N_180_0):\n            d = _copysign(_180_0, deg) if _K_2_0 else _180_0\n        return d\n\n\ndef _polygon(geodesic, points, closed, line, wrap, polar):\n    '''(INTERNAL) Compute the area or perimeter of a polygon,\n        using a L{GeodesicExact}, L{GeodesicSolve} or (if the\n        C{geographiclib} package is installed) a C{Geodesic}\n        or C{geodesicw.Geodesic} instance.\n    '''\n    if not wrap:  # capability LONG_UNROLL can't be off\n        notImplemented(None, wrap=wrap, up=3)\n\n    if _MODS.booleans.isBoolean(points):\n        # recursive call for each boolean clip\n\n        def _a_p(clip, *args, **unused):\n            return _polygon(geodesic, clip, *args)\n\n        if not closed:  # closed only\n            raise _ValueError(closed=closed, points=_composite_)\n\n        return points._sum1(_a_p, closed, line, wrap, polar)\n\n    gP = geodesic.Polygon(line)\n    _A = gP.AddPoint\n\n    Ps = _MODS.iters.PointsIter(points, loop=1, wrap=wrap)  # base=LatLonEllipsoidalBase(0, 0)\n    p1 =  p0 = Ps[0]\n\n    # note, lon deltas are unrolled, by default\n    _A(p1.lat, p1.lon)\n    for p2 in Ps.iterate(closed=closed):\n        if wrap and not Ps.looped:\n            p2 = _unrollon(p1, p2)\n        _A(p2.lat, p2.lon)\n        p1 = p2\n    if closed and line and p1 != p0:\n        _A(p0.lat, p0.lon)\n\n    # gP.Compute returns (number_of_points, perimeter, signed area)\n    return gP.Compute(reverse=False, sign=True, polar=polar)[1 if line else 2]\n\n\ntry:\n    from math import fma as _fma  # since 3.13\n\n    def _poly_fma(x, s, *cs):\n        for c in cs:\n            s = _fma(s, x, c)\n        return s\n\nexcept ImportError:  # Python 3.12-\n\n    def _poly_fma(x, *cs):  # PYCHOK redef\n        return fhorner(x, *cs, incx=False)\n\n#   def _poly_fma(x, s, *cs):\n#       t = _0_0\n#       for c in cs:\n#           s, t, _ = _sum3(s * x, t * x, c)\n#       return s + t\n\ndef _polynomial(x, cs, i, j):  # PYCHOK shared\n    '''(INTERNAL) Like C++ C{GeographicLib.Math.hpp.polyval} but\n       with a different signature and cascaded summation.\n\n       @return: M{sum(x**(j - k - 1) * cs[k] for k in range(i, j)}\n    '''\n    if (i + 1) < j <= len(cs):  # load _Rtuple._tuple\n        try:\n            r = _wrapped.Math.polyval(j - i - 1, cs, i, x)\n        except AttributeError:  # no .Math\n            r = _poly_fma(x, _0_0, *cs[i:j])\n    else:\n        r = cs[i]\n    return float(r)\n\n\ndef _remainder(x, y):\n    '''Remainder of C{x / y}.\n\n       @return: Remainder in the range M{[-y / 2, y / 2]}, preserving signed 0.0.\n    '''\n    try:\n        return _wrapped.Math.remainder(x, y)\n    except AttributeError:\n        return fremainder(x, y)\n\n\nif _K_2_0:\n    from math import cos as _cos, sin as _sin\n\n    def _sincos2(rad):\n        return _sin(rad), _cos(rad)\n\n    _signBit = _MODS.basics.signBit\nelse:\n    _sincos2 = _MODS.utily.sincos2  # PYCHOK shared\n\n    def _signBit(x):\n        '''(INTERNAL) GeographicLib 1.52-.\n        '''\n        return x < 0\n\n\ndef _sincos2d(deg):\n    '''Return sine and cosine of an angle in C{degrees}.\n\n       @return: 2-Tuple C{(sin(B{deg}), cos(B{deg}))}.\n    '''\n    try:\n        return _wrapped.Math.sincosd(deg)\n    except AttributeError:\n        return sincos2d(deg)\n\n\ndef _sincos2de(deg, t):\n    '''Return sine and cosine of a corrected angle in C{degrees}.\n\n       @return: 2-Tuple C{(sin(B{deg}), cos(B{deg}))}.\n    '''\n    try:\n        return _wrapped.Math.sincosde(deg, t)\n    except AttributeError:\n        return sincos2d(deg, adeg=t)\n\n\ndef _sum2(a, b):  # mimick geomath.Math.sum, actually sum2\n    '''Error-free summation like C{geomath.Math.sum}.\n\n       @return: 2-Tuple C{(B{a} + B{b}, residual)}.\n\n       @note: The C{residual} can be the same as B{C{a}} or B{C{b}}.\n\n       @see: U{TwoSum<https://accurate-algorithms.readthedocs.io/en/latest/ch04summation.html>}\n             and I{Knuth}'s U{Algorithm 3.1<https://www.TUHH.De/ti3/paper/rump/OgRuOi05.pdf>}.\n    '''\n    try:\n        return _wrapped.Math.sum(a, b)\n    except AttributeError:\n        # if Algorithm_3_1:\n        s = a + b\n        r = s - b\n        t = s - r\n        # elif C_CPP:  # Math::sum C/C++\n        #   r -= a; t -= b; t += r; t = (-t) if s else s\n        # else:  # if s == 0: t = _copysign_0_0(s)\n        t = ((a - r) + (b - t)) if s else s\n        # assert fabs(s) >= fabs(t)\n        return s, t\n\n\ndef _sum3(s, t, *xs):\n    '''Accumulate all B{C{xs}} scalars into a previous C{_sum2(s, t)}.\n\n       @return: 3-Tuple C{(s, t, n)} where C{s} is the sum of B{s}, B{t} and all\n                B{xs}, C{t} the residual and C{n} the number of non-zero C{xs}.\n\n       @see: I{Karney's} C++ U{Accumulator<https://GeographicLib.SourceForge.io/\n             C++/doc/Accumulator_8hpp_source.html>} comments for more details and\n             function C{_sum2} above.\n\n       @note: Not \"error-free\", see C{pygeodesy.test/testKarney.py}.\n    '''\n    return _Ksum(s, t, *xs)._s_t_n3 if xs else (s, t, 0)\n    # previous _sum3 in .geodesicx.gxarea._Accumulator.Add\n    # which fails .fmath.frandoms tests, but does pass\n    # _sum3(1e20, 1, 2, 100, 5000, -1e20) ... 5103.0, 0.0, 4\n\n\ndef _tand(x):\n    '''Return C{tan(B{x})} in C{degrees}.\n    '''\n    try:\n        return _wrapped.Math.tand(x)\n    except AttributeError:\n        return tand(x)  # Error=None\n\n\ndef _unroll2(lon1, lon2, wrap=False):  # see .ellipsoidalBaseDI._intersects2\n    '''Unroll B{C{lon2 - lon1}} like C{geodesic.Geodesic.Inverse}.\n\n       @return: 2-Tuple C{(B{lon2} - B{lon1}, B{lon2})} with B{C{lon2}}\n                unrolled if C{B{wrap} is True}, normalized otherwise.\n    '''\n    if wrap:\n        d, t = _diff182(lon1, lon2)\n        lon2, t, _ = _sum3(d, t, lon1)  # (lon1 + d) + t\n        lon2 += t\n    else:\n        lon2 = _norm180(lon2)\n    return (lon2 - lon1), lon2\n\n\ndef _unsigned2(x):\n    '''(INTERNAL) Unsign B{C{x}}.\n    '''\n    return (neg(x), True) if _signBit(x) else (x, False)\n\n\n__all__ += _ALL_DOCS(Caps, _CapsBase)\n\n# **) MIT License\n#\n# Copyright (C) 2016-2026 -- mrJean1 at Gmail -- All Rights Reserved.\n#\n# Permission is hereby granted, free of charge, to any person obtaining a\n# copy of this software and associated documentation files (the \"Software\"),\n# to deal in the Software without restriction, including without limitation\n# the rights to use, copy, modify, merge, publish, distribute, sublicense,\n# and/or sell copies of the Software, and to permit persons to whom the\n# Software is furnished to do so, subject to the following conditions:\n#\n# The above copyright notice and this permission notice shall be included\n# in all copies or substantial portions of the Software.\n#\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL\n# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR\n# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\n# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n# OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "pygeodesy/ktm.py",
    "content": "\n# -*- coding: utf-8 -*-\n\nu'''A pure Python version of I{Karney}'s C++ class U{TransverseMercator\n<https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1TransverseMercator.html>}\nbased on I{Krüger} series.  See also I{Karney}'s utility U{TransverseMercatorProj\n<https://GeographicLib.SourceForge.io/C++/doc/TransverseMercatorProj.1.html>}.\n\nFollowing and further below is a copy of I{Karney}'s U{TransverseMercator.hpp\n<https://GeographicLib.SourceForge.io/C++/doc/TransverseMercator_8hpp_source.html>}\nfile C{Header}.\n\nThis implementation follows closely JHS 154, ETRS89 - I{järjestelmään liittyvät\nkarttaprojektiot, tasokoordinaatistot ja karttalehtijako} (Map projections, plane\ncoordinates, and map sheet index for ETRS89), published by JUHTA, Finnish Geodetic\nInstitute, and the National Land Survey of Finland (2006).  The relevant section\nis available as the U{2008 PDF file\n<http://Docs.JHS-suositukset.FI/jhs-suositukset/JHS154/JHS154_liite1.pdf>}.\n\nThis is a straight transcription of the formulas in this paper with the\nfollowing exceptions:\n\n - Use of 6th order series instead of 4th order series. This reduces the\n   error to about 5 nm for the UTM range of coordinates (instead of 200 nm),\n   with a speed penalty of only 1%,\n\n - Use Newton's method instead of plain iteration to solve for latitude\n   in terms of isometric latitude in the Reverse method,\n\n - Use of Horner's representation for evaluating polynomials and Clenshaw's\n   method for summing trigonometric series,\n\n - Several modifications of the formulas to improve the numerical accuracy,\n\n - Evaluating the convergence and scale using the expression for the\n   projection or its inverse.\n\nCopyright (C) U{Charles Karney<mailto:Karney@Alum.MIT.edu>} (2008-2024)\nand licensed under the MIT/X11 License.  For more information, see the\nU{GeographicLib<https://GeographicLib.SourceForge.io>} documentation.\n'''\n# make sure int/int division yields float quotient\nfrom __future__ import division as _; del _  # noqa: E702 ;\n\nfrom pygeodesy.basics import copysign0, _isin, isodd, neg, neg_, \\\n                            _reverange, _xinstanceof\nfrom pygeodesy.constants import INF, _K0_UTM, PI, PI_2, _0_0s, _0_0, \\\n                               _1_0, _90_0, _copysignINF\nfrom pygeodesy.datums import Datum, _spherical_datum, _WGS84,  _EWGS84\n# from pygeodesy.ellipsoids import _EWGS84  # from .datums\nfrom pygeodesy.errors import _ValueError, _xkwds_pop2, _Xorder\nfrom pygeodesy.fmath import fdot_, hypot, hypot1\nfrom pygeodesy.interns import _COMMASPACE_, _DMAIN_, _singular_\nfrom pygeodesy.karney import _atan2d, _diff182, _fix90, _norm180, \\\n                             _polynomial, _unsigned2\n# from pygeodesy.lazily import _ALL_LAZY  # from .named\nfrom pygeodesy.named import _NamedBase, pairs,  _ALL_LAZY\nfrom pygeodesy.namedTuples import Forward4Tuple, Reverse4Tuple\nfrom pygeodesy.props import property_doc_, Property, Property_RO, \\\n                           _update_all\n# from pygeodesy.streprs import pairs  # from .named\nfrom pygeodesy.units import Degrees, Scalar_, _1mm as _TOL_10  # PYCHOK used!\nfrom pygeodesy.utily import atan1d, atan2, _loneg, sincos2, sincos2d_\n\nfrom cmath import polar as _polar\nfrom math import asinh, cos, cosh, degrees, fabs, sin, sinh, sqrt, tanh\n\n__all__ = _ALL_LAZY.ktm\n__version__ = '25.08.31'\n\n\nclass KTMError(_ValueError):\n    '''Error raised for L{KTransverseMercator} and L{KTransverseMercator.forward} issues.\n    '''\n    pass\n\n\nclass KTransverseMercator(_NamedBase):\n    '''I{Karney}'s C++ class U{TransverseMercator<https://GeographicLib.SourceForge.io/\n       C++/doc/classGeographicLib_1_1TransverseMercator.html>} transcoded to pure\n       Python, following is a partial copy of I{Karney}'s documentation.\n\n       Transverse Mercator projection based on Krüger's method which evaluates the\n       projection and its inverse in terms of a series.\n\n       There's a singularity in the projection at I{phi = 0, lam - lam0 = +/- (1 - e)\n       90}, about +/- 82.6 degrees for WGS84, where I{e} is the eccentricity.  Beyond\n       this point, the series ceases to converge and the results from this method\n       will be garbage.  I{To be on the safe side, don't use this method if the\n       angular distance from the central meridian exceeds (1 - 2e) x 90}, about 75\n       degrees for the WGS84 ellipsoid.\n\n       Class L{ExactTransverseMercator} is an alternative implementation of the\n       projection using I{exact} formulas which yield accurate (to 8 nm) results\n       over the entire ellipsoid.\n\n       The ellipsoid parameters and the central scale are set in the constructor.\n       The central meridian (which is a trivial shift of the longitude) is specified\n       as the C{lon0} keyword argument of the L{KTransverseMercator.forward} and\n       L{KTransverseMercator.reverse} methods.  The latitude of origin is taken to\n       be the equator.  There is no provision in this class for specifying a false\n       easting or false northing or a different latitude of origin.  However these\n       are can be simply included by the calling function.\n\n       The L{KTransverseMercator.forward} and L{KTransverseMercator.reverse} methods\n       also return the meridian convergence C{gamma} and scale C{k}.  The meridian\n       convergence is the bearing of grid North, the C{y axis}, measured clockwise\n       from true North.\n    '''\n    _datum  = _WGS84\n    _k0     = _K0_UTM  # central scale factor\n    _lat0   = _0_0     # central parallel\n    _lon0   = _0_0     # central meridian\n    _mTM    =  6\n    _raiser =  False   # throw Error\n\n    def __init__(self, a_earth=_EWGS84, f=None, lon0=0, k0=_K0_UTM,\n                                   raiser=False, **TMorder_name):\n        '''New L{KTransverseMercator}.\n\n           @kwarg a_earth: This rhumb's earth (L{Ellipsoid}, L{Ellipsoid2}, L{a_f2Tuple},\n                           L{Datum}, 2-tuple (C{a, f})) or the equatorial radius (C{meter}).\n           @kwarg f: The ellipsoid's flattening (C{scalar}), required if B{C{a_earth}} is\n                     is C{meter}, ignored otherwise.\n           @kwarg lon0: The central meridian (C{degrees180}).\n           @kwarg k0: Central scale factor (C{scalar}).\n           @kwarg raiser: If C{True}, throw a L{KTMError} for C{forward} singularities (C{bool}).\n           @kwarg TMorder_name: Optional C{B{name}=NN} (C{str}) and optional keyword argument\n                          C{B{TMorder}=6} for the order of this L{KTransverseMercator}, see\n                          property C{TMorder}.\n\n           @raise KTMError: Invalid B{C{a_earth}}, B{C{f}} or B{C{TMorder}}.\n        '''\n        if TMorder_name:\n            M = self._mTM\n            m, name = _xkwds_pop2(TMorder_name, TMorder=M)\n            if m != M:\n                self.TMorder = m\n            if name:\n                self.name = name\n\n        if f is not None:\n            self.ellipsoid = a_earth, f\n        elif _isin(a_earth, None, _EWGS84, _WGS84):\n            pass\n        elif isinstance(a_earth, Datum):\n            self.datum = a_earth\n        else:\n            self.ellipsoid = a_earth\n\n        if lon0:\n            self.lon0 = lon0\n        self.k0 = k0\n        if raiser:\n            self.raiser = True\n\n    @Property_RO\n    def _Alp(self):\n        return _Xs(_AlpCoeffs, self.TMorder, self.ellipsoid)\n\n    @Property_RO\n    def _b1(self):\n        n = self.ellipsoid.n\n        if n:  # isEllipsoidal\n            m  =  self.TMorder // 2\n            B1 = _B1Coeffs[m]\n            m +=  1\n            b1 = _polynomial(n**2, B1, 0, m) / (B1[m] * (n + _1_0))\n        else:  # isSpherical\n            b1 = _1_0  # B1[m - 1] / B1[m1] == 1, always\n        return b1\n\n    @Property_RO\n    def _Bet(self):\n        C = _Xs(_BetCoeffs, self.TMorder, self.ellipsoid)\n        return tuple(map(neg, C)) if self.f else C  # negated if isEllipsoidal\n\n    @property\n    def datum(self):\n        '''Get this rhumb's datum (L{Datum}).\n        '''\n        return self._datum\n\n    @datum.setter  # PYCHOK setter!\n    def datum(self, datum):\n        '''Set this rhumb's datum (L{Datum}).\n        '''\n        _xinstanceof(Datum, datum=datum)\n        if self._datum != datum:\n            _update_all(self)\n            self._datum = datum\n\n    @Property\n    def ellipsoid(self):\n        '''Get the ellipsoid (L{Ellipsoid}).\n        '''\n        return self.datum.ellipsoid\n\n    @ellipsoid.setter  # PYCHOK setter!\n    def ellipsoid(self, a_earth_f):\n        '''Set this rhumb's ellipsoid (L{Ellipsoid}, L{Ellipsoid2}, L{Datum},\n           L{a_f2Tuple} or 2-tuple C{(a, f)}).\n        '''\n        self.datum = _spherical_datum(a_earth_f, Error=KTMError)\n\n    @Property_RO\n    def equatoradius(self):\n        '''Get the C{ellipsoid}'s equatorial radius, semi-axis (C{meter}).\n        '''\n        return self.ellipsoid.a\n\n    a = equatoradius\n\n    @Property_RO\n    def flattening(self):\n        '''Get the C{ellipsoid}'s flattening (C{scalar}).\n        '''\n        return self.ellipsoid.f\n\n    f = flattening\n\n    def forward(self, lat, lon, lon0=None, **name):\n        '''Forward projection, from geographic to transverse Mercator.\n\n           @arg lat: Latitude of point (C{degrees90}).\n           @arg lon: Longitude of point (C{degrees180}).\n           @arg lon0: Central meridian of the projection (C{degrees180}).\n           @kwarg name: Optional C{B{name}=NN} (C{str}).\n\n           @return: L{Forward4Tuple}C{(easting, northing, gamma, scale)} with\n                    C{easting} and C{northing} in C{meter}, unfalsed, the\n                    meridian convergence C{gamma} at point in C{degrees180}\n                    and the C{scale} of projection at point C{scalar}.  Any\n                    value may be C{NAN}, C{NINF} or C{INF} for singularities.\n\n           @raise KTMError: For singularities, iff property C{raiser} is C{True}.\n        '''\n        lat, _lat = _unsigned2(_fix90(lat - self._lat0))\n        lon, _    = _diff182((self.lon0 if lon0 is None else lon0), lon)\n        lon, _lon = _unsigned2(lon)\n        backside  =  lon > 90\n        if backside:  # PYCHOK no cover\n            lon = _loneg(lon)\n            if lat == 0:\n                _lat = True\n\n        sphi, cphi, slam, clam = sincos2d_(lat, lon)\n        E = self.ellipsoid\n        if cphi and lat != 90:\n            t  = sphi / cphi\n            tp = E.es_taupf(t)\n            h  = hypot(tp, clam)\n            if h:\n                xip  = atan2(tp, clam)\n                etap = asinh(slam / h)  # atanh(sin(lam) / cosh(psi))\n                g = _atan2d(slam * tp, clam * hypot1(tp))  # Krueger p 22 (44)\n                k =  sqrt(cphi**2 * E.e2 + E.e21) * hypot1(t) / h\n            elif self.raiser:\n                raise KTMError(lat=lat, lon=lon, lon0=lon0, txt=_singular_)\n            else:  # PYCHOK no cover\n                xip, etap = _0_0, _copysignINF(slam)\n                g, k = copysign0(_90_0, slam), INF\n        else:  # PYCHOK no cover\n            xip, etap = PI_2, _0_0\n            g, k = lon, E.es_c\n        y, x, d, t = _Cyxgk4(E, xip, etap, self._Alp)\n        g -= d\n        k *= t * self._k0_b1\n\n        if backside:  # PYCHOK no cover\n            y, g = (PI - y), _loneg(g)\n        y *= self._k0_a1\n        x *= self._k0_a1\n        if _lat:\n            y, g = neg_(y, g)\n        if _lon:\n            x, g = neg_(x, g)\n        return Forward4Tuple(x, y, _norm180(g), k, name=self._name__(name))\n\n    @property_doc_(''' the central scale factor (C{float}).''')\n    def k0(self):\n        '''Get the central scale factor (C{float}), aka I{C{scale0}}.\n        '''\n        return self._k0  # aka scale0\n\n    @k0.setter  # PYCHOK setter!\n    def k0(self, k0):\n        '''Set the central scale factor (C{float}), aka I{C{scale0}}.\n\n           @raise KTMError: Invalid B{C{k0}}.\n        '''\n        k0 = Scalar_(k0=k0, Error=KTMError, low=_TOL_10, high=_1_0)\n        if self._k0 != k0:  # PYCHOK no cover\n            KTransverseMercator._k0_a1._update(self)  # redo ._k0_a1\n            KTransverseMercator._k0_b1._update(self)  # redo ._k0_b1\n            self._k0 = k0\n\n    @Property_RO\n    def _k0_a1(self):\n        '''(INTERNAL) Cache C{k0 * _b1 * equatoradius}.\n        '''\n        return self._k0_b1 * self.equatoradius\n\n    @Property_RO\n    def _k0_b1(self):\n        '''(INTERNAL) Cache C{k0 * _b1}.\n        '''\n        return self.k0 * self._b1\n\n    @property_doc_(''' the central meridian (C{degrees180}).''')\n    def lon0(self):\n        '''Get the central meridian (C{degrees180}).\n        '''\n        return self._lon0\n\n    @lon0.setter  # PYCHOK setter!\n    def lon0(self, lon0):\n        '''Set the central meridian (C{degrees180}).\n\n           @raise KTMError: Invalid B{C{lon0}}.\n        '''\n        self._lon0 = _norm180(Degrees(lon0=lon0, Error=KTMError))\n\n    @property_doc_(''' raise a L{KTMError} for C{forward} singularities (C{bool}).''')\n    def raiser(self):\n        '''Get the error setting (C{bool}).\n        '''\n        return self._raiser\n\n    @raiser.setter  # PYCHOK setter!\n    def raiser(self, raiser):\n        '''Set the error setting (C{bool}), to C{True} to throw a L{KTMError}\n           for C{forward} singularities.\n        '''\n        self._raiser = bool(raiser)\n\n    def reset(self, lat0, lon0):\n        '''Set the central parallel and meridian.\n\n           @arg lat0: Latitude of the central parallel (C{degrees90}).\n           @arg lon0: Longitude of the central parallel (C{degrees180}).\n\n           @return: 2-Tuple C{(lat0, lon0)} with the previous central\n                    parallel and meridian.\n\n           @raise KTMError: Invalid B{C{lat0}} or B{C{lon0}}.\n        '''\n        t = self._lat0, self.lon0\n        self._lat0 = _fix90(Degrees(lat0=lat0, Error=KTMError))\n        self. lon0 =  lon0\n        return t\n\n    def reverse(self, x, y, lon0=None, **name):\n        '''Reverse projection, from transverse Mercator to geographic.\n\n           @arg x: Easting of point (C{meter}).\n           @arg y: Northing of point (C{meter}).\n           @arg lon0: Central meridian of the projection (C{degrees180}).\n           @kwarg name: Optional C{B{name}=NN} (C{str}).\n\n           @return: L{Reverse4Tuple}C{(lat, lon, gamma, scale)} with\n                    C{lat}- and C{lon}gitude in C{degrees}, I{unfalsed}.\n        '''\n        eta, _lon = _unsigned2(x / self._k0_a1)\n        xi,  _lat = _unsigned2(y / self._k0_a1)\n        backside  =  xi > PI_2\n        if backside:  # PYCHOK no cover\n            xi = PI - xi\n\n        E = self.ellipsoid\n        xip, etap, g, k = _Cyxgk4(E, xi, eta, self._Bet)\n        t = self._k0_b1\n        k = (t / k) if k else _copysignINF(t)  # _over(t, k)\n        h, c = sinh(etap), cos(xip)\n        if c > 0:\n            r =  hypot(h, c)\n        else:  # PYCHOK no cover\n            r =  fabs(h)\n            c = _0_0\n        if r:\n            lon = _atan2d(h, c)  # Krueger p 17 (25)\n            s   =  sin(xip)  # Newton for tau\n            t   =  E.es_tauf(s / r)\n            lat =  atan1d(t)\n            g  += _atan2d(s * tanh(etap), c)  # Krueger p 19 (31)\n            k  *=  sqrt(E.e2 / (t**2 + _1_0) + E.e21) * hypot1(t) * r\n        else:  # PYCHOK no cover\n            lat = _90_0\n            lon = _0_0\n            k  *=  E.es_c\n\n        if backside:  # PYCHOK no cover\n            lon, g = _loneg(lon), _loneg(g)\n        if _lat:\n            lat, g = neg_(lat, g)\n        if _lon:\n            lon, g = neg_(lon, g)\n        lat += self._lat0\n        lon += self._lon0 if lon0 is None else _norm180(lon0)\n        return Reverse4Tuple(lat, _norm180(lon), _norm180(g), k,\n                                   name=self._name__(name))\n\n    @Property\n    def TMorder(self):\n        '''Get the I{Transverse Mercator} order (C{int}, 4, 5, 6, 7 or 8).\n        '''\n        return self._mTM\n\n    @TMorder.setter  # PYCHOK setter!\n    def TMorder(self, order):\n        '''Set the I{Transverse Mercator} order (C{int}, 4, 5, 6, 7 or 8).\n        '''\n        m = _Xorder(_AlpCoeffs, KTMError, TMorder=order)\n        if self._mTM != m:\n            _update_all(self)\n            self._mTM = m\n\n    def toStr(self, **kwds):\n        '''Return a C{str} representation.\n\n           @arg kwds: Optional, overriding keyword arguments.\n        '''\n        d = dict(ellipsoid=self.ellipsoid, k0=self.k0, TMorder=self.TMorder)\n        if self.name:  # PYCHOK no cover\n            d.update(name=self.name)\n        return _COMMASPACE_.join(pairs(d, **kwds))\n\n\ndef _cfma(a, b0, b1, Cn):\n    '''(INTERNAL) Complex fused-multiply-add M{a * b0 - b1 + Cn} with\n       complex C{a}, C{b0} and C{b1} and scalar C{Cn}.\n\n       @see: CPython function U{_Py_c_prod<https://GitHub.com/python/\n             cpython/blob/main/Objects/complexobject.c>}.\n\n       @note: Python function C{cmath.fsum} no longer exists.\n    '''\n    r = fdot_(a.real, b0.real, -a.imag, b0.imag, -b1.real, _1_0, start=Cn)\n    j = fdot_(a.real, b0.imag,  a.imag, b0.real, -b1.imag, _1_0)\n    return complex(r, j)\n\n\ndef _Cyxgk4(E, xi_, eta_, C):\n    '''(INTERNAL) Complex Clenshaw summation with C{B{C}=._Alp}\n       or C{B{C}=-._Bet}.\n    '''\n    x = complex(xi_, eta_)\n    if E.f:  # isEllipsoidal\n        s,  c  =  sincos2(  xi_  * 2)\n        sh, ch = _sinhcosh2(eta_ * 2)\n        n = -s\n        s = complex(s * ch, c * sh)  # sin(zeta * 2)\n        c = complex(c * ch, n * sh)  # cos(zeta * 2)\n        a = c * 2  # cos(zeta * 2) * 2\n\n        y0 = y1 = \\\n        z0 = z1 = complex(0)  # 0+0j\n        n  = len(C) - 1  # == .TMorder\n        if isodd(n):\n            Cn = C[n]\n            y0 = complex(Cn)  # +0j\n            z0 = complex(Cn * (n * 2))\n            n -= 1\n        while n > 0:\n            Cn =  C[n]\n            y1 = _cfma(a, y0, y1, Cn)\n            z1 = _cfma(a, z0, z1, Cn * (n * 2))\n            n -=  1\n            Cn =  C[n]\n            y0 = _cfma(a, y1, y0, Cn)\n            z0 = _cfma(a, z1, z0, Cn * (n * 2))\n            n -=  1\n        # assert n == 0\n        x = _cfma(s, y0, -x, _0_0)\n        c = _cfma(c, z0, z1, _1_0)\n\n        # Gauss-Schreiber to Gauss-Krueger TM\n        # C{cmath.polar} handles INF, NAN, etc.\n        k, g = _polar(c)\n        g = degrees(g)\n    else:  # E.isSpherical\n        g, k = _0_0, _1_0\n\n    return x.real, x.imag, g, k\n\n\ndef _sinhcosh2(x):\n    '''(INTERNAL) Like C{sincos2}.\n    '''\n    return sinh(x), cosh(x)\n\n\ndef _Xs(_Coeffs, m, E, RA=False):  # in .rhumb.ekx\n    '''(INTERNAL) Compute the C{A}, C{B} or C{RA} terms of order\n       B{C{m}} for I{Krüger} series and I{rhumb.ekx._sincosSeries},\n       return a tuple with C{B{m} + 1} terms C{X}, C{X[0]==0}.\n    '''\n    Cs = _Coeffs[m]\n    assert len(Cs) == (((m + 1) * (m + 4)) if RA else\n                       ((m + 3) *  m)) // 2\n    n = n_ = E.n\n    if n:  # isEllipsoidal\n        X = [0]  # X[0] never used, it's just an integration\n        # constant, it cancels when evaluating a definite\n        # integral.  Don't bother computing it, it is unused\n        # in C{_Cyxgk4} above and C{rhumb.ekx._sincosSeries}.\n        i  = (m + 2) if RA else 0\n        _p = _polynomial\n        for r in _reverange(m):  # [m-1 ... 0]\n            j = i + r + 1\n            X.append(_p(n, Cs, i, j) * n_ / Cs[j])\n            i = j + 1\n            n_ *= n\n        X =  tuple(X)\n    else:  # isSpherical\n        X = _0_0s(m + 1)\n    return X\n\n\n# _Alp- and _BetCoeffs in .rhumb.ekx, .rhumb.bases\n_AlpCoeffs = {  # Generated by Maxima on 2015-05-14 22:55:13-04:00\n 4: (  # GEOGRAPHICLIB_TRANSVERSEMERCATOR_ORDER == 4\n     164, 225, -480, 360, 720,  # Alp[1]/n^1, polynomial(n), order 3\n     557, -864, 390, 1440,  # Alp[2]/n^2, polynomial(n), order 2\n    -1236, 427, 1680,  # PYCHOK Alp[3]/n^3, polynomial(n), order 1\n     49561, 161280),  # Alp[4]/n^4, polynomial(n), order 0, count = 14\n 5: (  # GEOGRAPHICLIB_TRANSVERSEMERCATOR_ORDER == 5\n    -635, 328, 450, -960, 720, 1440,  # Alp[1]/n^1, polynomial(n), order 4\n     4496, 3899, -6048, 2730, 10080,  # PYCHOK Alp[2]/n^2, polynomial(n), order 3\n     15061, -19776, 6832, 26880,  # PYCHOK Alp[3]/n^3, polynomial(n), order 2\n    -171840, 49561, 161280,  # Alp[4]/n^4, polynomial(n), order 1\n     34729, 80640),  # PYCHOK Alp[5]/n^5, polynomial(n), order 0, count = 20\n 6: (  # GEOGRAPHICLIB_TRANSVERSEMERCATOR_ORDER == 6\n     31564, -66675, 34440, 47250, -100800, 75600, 151200,  # Alp[1]/n^1, polynomial(n), order 5\n    -1983433, 863232, 748608, -1161216, 524160, 1935360,  # PYCHOK Alp[2]/n^2, polynomial(n), order 4\n     670412, 406647, -533952, 184464, 725760,  # Alp[3]/n^3, polynomial(n), order 3\n     6601661, -7732800, 2230245, 7257600,  # Alp[4]/n^4, polynomial(n), order 2\n    -13675556, 3438171, 7983360,  # PYCHOK Alp[5]/n^5, polynomial(n), order 1\n     212378941, 319334400),  # Alp[6]/n^6, polynomial(n), order 0, count = 27\n 7: (  # GEOGRAPHICLIB_TRANSVERSEMERCATOR_ORDER == 7\n     1804025, 2020096, -4267200, 2204160, 3024000, -6451200, 4838400, 9676800,  # Alp[1]/n^1, polynomial(n), order 6\n     4626384, -9917165, 4316160, 3743040, -5806080, 2620800, 9676800,  # Alp[2]/n^2, polynomial(n), order 5\n    -67102379, 26816480, 16265880, -21358080, 7378560, 29030400,  # PYCHOK Alp[3]/n^3, polynomial(n), order 4\n     155912000, 72618271, -85060800, 24532695, 79833600,  # Alp[4]/n^4, polynomial(n), order 3\n     102508609, -109404448, 27505368, 63866880,  # Alp[5]/n^5, polynomial(n), order 2\n    -12282192400, 2760926233, 4151347200,  # PYCHOK Alp[6]/n^6, polynomial(n), order 1\n     1522256789, 1383782400),  # Alp[7]/n^7, polynomial(n), order 0, count = 35\n 8: (  # GEOGRAPHICLIB_TRANSVERSEMERCATOR_ORDER == 8\n    -75900428, 37884525, 42422016, -89611200, 46287360, 63504000, -135475200, 101606400, 203212800,  # Alp[1]/n^1, polynomial(n), order 7\n     148003883, 83274912, -178508970, 77690880, 67374720, -104509440, 47174400, 174182400,  # PYCHOK Alp[2]/n^2, polynomial(n), order 6\n     318729724, -738126169, 294981280, 178924680, -234938880, 81164160, 319334400,  # PYCHOK Alp[3]/n^3, polynomial(n), order 5\n    -40176129013, 14967552000, 6971354016, -8165836800, 2355138720, 7664025600,  # Alp[4]/n^4, polynomial(n), order 4\n     10421654396, 3997835751, -4266773472, 1072709352, 2490808320,  # PYCHOK Alp[5]/n^5, polynomial(n), order 3\n     175214326799, -171950693600, 38652967262, 58118860800,  # PYCHOK Alp[6]/n^6, polynomial(n), order 2\n    -67039739596, 13700311101, 12454041600,  # PYCHOK Alp[7]/n^7, polynomial(n), order 1\n     1424729850961, 743921418240)  # PYCHOK Alp[8]/n^8, polynomial(n), order 0, count = 44\n}\n_B1Coeffs = {  # Generated by Maxima on 2015-05-14 22:55:13-04:00\n 2: (  # GEOGRAPHICLIB_TRANSVERSEMERCATOR_ORDER/2 == 2\n     1, 16, 64, 64),  # b1 * (n + 1), polynomial(n2), order 2\n 3: (  # GEOGRAPHICLIB_TRANSVERSEMERCATOR_ORDER/2 == 3\n     1, 4, 64, 256, 256),  # b1 * (n + 1), polynomial(n2), order 3\n 4: (  # GEOGRAPHICLIB_TRANSVERSEMERCATOR_ORDER/2 == 4\n     25, 64, 256, 4096, 16384, 16384)  # PYCHOK b1 * (n + 1), polynomial(n2), order 4\n}\n_BetCoeffs = {  # Generated by Maxima on 2015-05-14 22:55:13-04:00\n 4: (  # GEOGRAPHICLIB_TRANSVERSEMERCATOR_ORDER == 4\n    -4, 555, -960, 720, 1440,  # Bet[1]/n^1, polynomial(n), order 3\n    -437, 96, 30, 1440,  # Bet[2]/n^2, polynomial(n), order 2\n    -148, 119, 3360,  # Bet[3]/n^3, polynomial(n), order 1\n     4397, 161280),  # PYCHOK Bet[4]/n^4, polynomial(n), order 0, count = 14\n 5: (  # GEOGRAPHICLIB_TRANSVERSEMERCATOR_ORDER == 5\n    -3645, -64, 8880, -15360, 11520, 23040,  # Bet[1]/n^1, polynomial(n), order 4\n     4416, -3059, 672, 210, 10080,  # PYCHOK Bet[2]/n^2, polynomial(n), order 3\n    -627, -592, 476, 13440,  # Bet[3]/n^3, polynomial(n), order 2\n    -3520, 4397, 161280,  # Bet[4]/n^4, polynomial(n), order 1\n     4583, 161280),  # PYCHOK Bet[5]/n^5, polynomial(n), order 0, count = 20\n 6: (  # GEOGRAPHICLIB_TRANSVERSEMERCATOR_ORDER == 6\n     384796, -382725, -6720, 932400, -1612800, 1209600, 2419200,  # Bet[1]/n^1, polynomial(n), order 5\n    -1118711, 1695744, -1174656, 258048, 80640, 3870720,  # PYCHOK Bet[2]/n^2, polynomial(n), order 4\n     22276, -16929, -15984, 12852, 362880,  # Bet[3]/n^3, polynomial(n), order 3\n    -830251, -158400, 197865, 7257600,  # PYCHOK Bet[4]/n^4, polynomial(n), order 2\n    -435388, 453717, 15966720,  # PYCHOK Bet[5]/n^5, polynomial(n), order 1\n     20648693, 638668800),  # Bet[6]/n^6, polynomial(n), order 0, count = 27\n 7: (  # GEOGRAPHICLIB_TRANSVERSEMERCATOR_ORDER == 7\n    -5406467, 6156736, -6123600, -107520, 14918400, -25804800, 19353600, 38707200,  # Bet[1]/n^1, polynomial(n), order 6\n     829456, -5593555, 8478720, -5873280, 1290240, 403200, 19353600,  # PYCHOK Bet[2]/n^2, polynomial(n), order 5\n     9261899, 3564160, -2708640, -2557440, 2056320, 58060800,  # PYCHOK Bet[3]/n^3, polynomial(n), order 4\n     14928352, -9132761, -1742400, 2176515, 79833600,  # PYCHOK Bet[4]/n^4, polynomial(n), order 3\n    -8005831, -1741552, 1814868, 63866880,  # Bet[5]/n^5, polynomial(n), order 2\n    -261810608, 268433009, 8302694400,  # Bet[6]/n^6, polynomial(n), order 1\n     219941297, 5535129600),  # PYCHOK Bet[7]/n^7, polynomial(n), order 0, count = 35\n 8: (  # GEOGRAPHICLIB_TRANSVERSEMERCATOR_ORDER == 8\n     31777436, -37845269, 43097152, -42865200, -752640, 104428800, -180633600, 135475200, 270950400,  # Bet[1]/n^1, polynomial(n), order 7\n     24749483, 14930208, -100683990, 152616960, -105719040, 23224320, 7257600, 348364800,  # Bet[2]/n^2, polynomial(n), order 6\n    -232468668, 101880889, 39205760, -29795040, -28131840, 22619520, 638668800,  # PYCHOK Bet[3]/n^3, polynomial(n), order 5\n     324154477, 1433121792, -876745056, -167270400, 208945440, 7664025600,  # Bet[4]/n^4, polynomial(n), order 4\n     457888660, -312227409, -67920528, 70779852, 2490808320,    # Bet[5]/n^5, polynomial(n), order 3\n    -19841813847, -3665348512, 3758062126, 116237721600,  # PYCHOK Bet[6]/n^6, polynomial(n), order 2\n    -1989295244, 1979471673, 49816166400,  # PYCHOK Bet[7]/n^7, polynomial(n), order 1\n     191773887257, 3719607091200)  # Bet[8]/n^8, polynomial(n), order 0, count = 44\n}\n\nassert set(_AlpCoeffs.keys()) == set(_BetCoeffs.keys())\n\nif __name__ == _DMAIN_:\n\n    from pygeodesy.internals import _usage\n    from sys import argv, exit as _exit\n\n    _exit(_usage(*argv).replace('.ktm', '.etm -series'))\n\n# **) MIT License\n#\n# Copyright (C) 2022-2026 -- mrJean1 at Gmail -- All Rights Reserved.\n#\n# Permission is hereby granted, free of charge, to any person obtaining a\n# copy of this software and associated documentation files (the \"Software\"),\n# to deal in the Software without restriction, including without limitation\n# the rights to use, copy, modify, merge, publish, distribute, sublicense,\n# and/or sell copies of the Software, and to permit persons to whom the\n# Software is furnished to do so, subject to the following conditions:\n#\n# The above copyright notice and this permission notice shall be included\n# in all copies or substantial portions of the Software.\n#\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL\n# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR\n# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\n# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n# OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "pygeodesy/latlonBase.py",
    "content": "\n# -*- coding: utf-8 -*-\n\nu'''(INTERNAL) Base class L{LatLonBase} for all elliposiodal, spherical and N-vectorial C{LatLon} classes.\n\n@see: I{(C) Chris Veness 2005-2024}' U{latlong<https://www.Movable-Type.co.UK/scripts/latlong.html>},\n      U{-ellipsoidal<https://www.Movable-Type.co.UK/scripts/geodesy/docs/latlon-ellipsoidal.js.html>} and\n      U{-vectors<https://www.Movable-Type.co.UK/scripts/latlong-vectors.html>} and I{Charles Karney}'s\n      U{Rhumb<https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Rhumb.html>} and\n      U{RhumbLine<https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1RhumbLine.html>} classes.\n'''\n\nfrom pygeodesy.basics import _isin, isstr, map1, _xinstanceof\nfrom pygeodesy.constants import EPS, EPS0, EPS1, EPS4, INT0, R_M, \\\n                               _EPSqrt as _TOL, _0_0, _0_5, _1_0, \\\n                               _360_0, _umod_360\nfrom pygeodesy.datums import _spherical_datum\nfrom pygeodesy.dms import F_D, F_DMS, latDMS, lonDMS, parse3llh\n# from pygeodesy.ecef import EcefKarney  # _MODS\nfrom pygeodesy.ecefLocals import _EcefLocal\nfrom pygeodesy.errors import _AttributeError, IntersectionError, \\\n                             _incompatible, _IsnotError, _TypeError, \\\n                             _ValueError, _xattr, _xdatum, _xError, \\\n                             _xkwds, _xkwds_get, _xkwds_item2, _xkwds_not\n# from pygeodesy.fmath import favg  # _MODS\n# from pygeodesy import formy as _formy  # _MODS.into\nfrom pygeodesy.internals import _passarg, typename\nfrom pygeodesy.interns import NN, _COMMASPACE_, _concentric_, _intersection_, \\\n                             _LatLon_, _m_, _no_, _overlap_,  _point_  # PYCHOK used!\n# from pygeodesy.iters import PointsIter, points2  # _MODS\n# from pygeodesy.karney import Caps  # _MODS\nfrom pygeodesy.lazily import _ALL_DOCS, _ALL_LAZY, _ALL_MODS as _MODS\nfrom pygeodesy.named import _name2__, _NamedBase,  Fmt\nfrom pygeodesy.namedTuples import Bounds2Tuple, LatLon2Tuple, PhiLam2Tuple, \\\n                                  Trilaterate5Tuple, Vector3Tuple\n# from pygeodesy.nvectorBase import _N_Vector  # _MODS\nfrom pygeodesy.props import deprecated_method, Property, Property_RO, \\\n                            property_RO, _update_all\n# from pygeodesy.streprs import Fmt, hstr  # from .named, _MODS\nfrom pygeodesy.units import _isDegrees, _isRadius, Distance_, Lat, Lon, \\\n                             Height, Radius, Radius_, Scalar, Scalar_\nfrom pygeodesy.utily import sincos2d_, _unrollon, _unrollon3, _Wrap\n# from pygeodesy.vector2d import _circin6, Circin6Tuple, _circum3, circum4_, \\\n#                                 Circum3Tuple, _radii11ABC4  # _MODS\n# from pygeodesy.vector3d import nearestOn6, Vector3d  # _MODS\n\nfrom contextlib import contextmanager\nfrom math import asin, cos, degrees, fabs, radians\n\n__all__ = _ALL_LAZY.latlonBase\n__version__ = '25.08.18'\n\n_formy = _MODS.into(formy=__name__)\n\n\nclass LatLonBase(_NamedBase, _EcefLocal):\n    '''(INTERNAL) Base class for ellipsoidal and spherical C{satLon}s.\n    '''\n    _clipid = INT0  # polygonal clip, see .booleans\n    _datum  = None  # L{Datum}, to be overriden\n    _height = INT0  # height (C{meter}), default\n    _lat    = 0     # latitude (C{degrees})\n    _lon    = 0     # longitude (C{degrees})\n\n    def __init__(self, lat_llh, lon=None, height=0, datum=None, **wrap_name):\n        '''New C{LatLon}.\n\n           @arg lat_llh: Latitude (C{degrees} or DMS C{str} with N or S suffix) or\n                         a previous C{LatLon} instance provided C{B{lon}=None}.\n           @kwarg lon: Longitude (C{degrees} or DMS C{str} with E or W suffix),\n                       required if B{C{lat_llh}} is C{degrees} or C{str}.\n           @kwarg height: Optional height above (or below) the earth surface\n                          (C{meter}, conventionally).\n           @kwarg datum: Optional datum (L{Datum}, L{Ellipsoid}, L{Ellipsoid2},\n                         L{a_f2Tuple} or I{scalar} radius) or C{None}.\n           @kwarg wrap_name: Optional C{B{name}=NN} (C{str}) and optional keyword\n                       argument C{B{wrap}=False}, if C{True}, wrap or I{normalize}\n                       B{C{lat}} and B{C{lon}} (C{bool}).\n\n           @return: New instance (C{LatLon}).\n\n           @raise RangeError: A B{C{lon}} or C{lat} value outside the valid\n                              range and L{rangerrors} set to C{True}.\n\n           @raise TypeError: If B{C{lat_llh}} is not a C{LatLon}.\n\n           @raise UnitError: Invalid C{lat}, B{C{lon}} or B{C{height}}.\n        '''\n        w, n = self._wrap_name2(**wrap_name)\n        if n:\n            self.name = n\n\n        if lon is None:\n            lat, lon, height = _latlonheight3(lat_llh, height, w)\n        elif w:\n            lat, lon = _Wrap.latlonDMS2(lat_llh, lon)\n        else:\n            lat = lat_llh\n\n        self._lat = Lat(lat)  # parseDMS2(lat, lon)\n        self._lon = Lon(lon)  # PYCHOK LatLon2Tuple\n        if height:  # elevation\n            self._height = Height(height)\n        if datum is not None:\n            self._datum = _spherical_datum(datum, name=self.name)\n\n    def __eq__(self, other):\n        return self.isequalTo(other)\n\n    def __ne__(self, other):\n        return not self.isequalTo(other)\n\n    def __str__(self):\n        return self.toStr(form=F_D, prec=6)\n\n    def antipode(self, height=None):\n        '''Return the antipode, the point diametrically opposite to\n           this point.\n\n           @kwarg height: Optional height of the antipode (C{meter}),\n                          this point's height otherwise.\n\n           @return: The antipodal point (C{LatLon}).\n        '''\n        a = _formy.antipode(*self.latlon)\n        h =  self._heigHt(height)\n        return self.classof(*a, height=h)\n\n    @deprecated_method\n    def bounds(self, wide, tall, radius=R_M):  # PYCHOK no cover\n        '''DEPRECATED, use method C{boundsOf}.'''\n        return self.boundsOf(wide, tall, radius=radius)\n\n    def boundsOf(self, wide, tall, radius=R_M, height=None, **name):\n        '''Return the SW and NE lat-/longitude of a great circle\n           bounding box centered at this location.\n\n           @arg wide: Longitudinal box width (C{meter}, same units as\n                      B{C{radius}} or C{degrees} if C{B{radius} is None}).\n           @arg tall: Latitudinal box size (C{meter}, same units as\n                      B{C{radius}} or C{degrees} if C{B{radius} is None}).\n           @kwarg radius: Mean earth radius (C{meter}) or C{None} if I{both}\n                          B{C{wide}} and B{C{tall}} are in C{degrees}.\n           @kwarg height: Height for C{latlonSW} and C{latlonNE} (C{meter}),\n                          overriding the point's height.\n           @kwarg name: Optional C{B{name}=NN} (C{str}).\n\n           @return: A L{Bounds2Tuple}C{(latlonSW, latlonNE)}, the lower-left\n                    and upper-right corner (C{LatLon}).\n\n           @see: U{https://www.Movable-Type.co.UK/scripts/latlong-db.html}\n        '''\n        w = Scalar_(wide=wide) * _0_5\n        t = Scalar_(tall=tall) * _0_5\n        if radius is not None:\n            r = Radius_(radius)\n            c = cos(self.phi)\n            w = degrees(asin(w / r) / c) if fabs(c) > EPS0 else _0_0  # XXX\n            t = degrees(t / r)\n        y, t = self.lat, fabs(t)\n        x, w = self.lon, fabs(w)\n\n        h  = self._heigHt(height)\n        sw = self.classof(y - t, x - w, height=h)\n        ne = self.classof(y + t, x + w, height=h)\n        return Bounds2Tuple(sw, ne, name=self._name__(name))\n\n    def chordTo(self, other, height=None, wrap=False):\n        '''Compute the length of the chord through the earth between\n           this and an other point.\n\n           @arg other: The other point (C{LatLon}).\n           @kwarg height: Overriding height for both points (C{meter}),\n                          or if C{None}, use each point's height.\n           @kwarg wrap: If C{True}, wrap or I{normalize} the B{C{other}}\n                        point (C{bool}).\n\n           @return: The chord length (conventionally C{meter}).\n\n           @raise TypeError: The B{C{other}} point is not C{LatLon}.\n        '''\n        def _v3d(ll, V3d=_MODS.vector3d.Vector3d):\n            t = ll.toEcef(height=height)  # .toVector(Vector=V3d)\n            return V3d(t.x, t.y, t.z)\n\n        p = self.others(other)\n        if wrap:\n            p = _Wrap.point(p)\n        return _v3d(self).minus(_v3d(p)).length\n\n    def circin6(self, point2, point3, eps=EPS4, **wrap_name):\n        '''Return the radius and center of the I{inscribed} aka I{In-}circle\n           of the (planar) triangle formed by this and two other points.\n\n           @arg point2: Second point (C{LatLon}).\n           @arg point3: Third point (C{LatLon}).\n           @kwarg eps: Tolerance for function L{pygeodesy.trilaterate3d2}.\n           @kwarg wrap_name: Optional C{B{name}=NN} (C{str}) and optional keyword\n                       argument C{B{wrap}=False}, if C{True}, wrap or I{normalize}\n                       the B{C{points}} (C{bool}).\n\n           @return: A L{Circin6Tuple}C{(radius, center, deltas, cA, cB, cC)}.  The\n                    C{center} and contact points C{cA}, C{cB} and C{cC}, each an\n                    instance of this (sub-)class, are co-planar with this and the\n                    two given points, see the B{Note} below.\n\n           @raise ImportError: Package C{numpy} not found, not installed or older\n                               than version 1.10.\n\n           @raise IntersectionError: Near-coincident or -colinear points or\n                                     a trilateration or C{numpy} issue.\n\n           @raise TypeError: Invalid B{C{point2}} or B{C{point3}}.\n\n           @note: The C{center} is trilaterated in cartesian (ECEF) space and converted\n                  back to geodetic lat-, longitude and height.  The latter, conventionally\n                  in C{meter} indicates whether the C{center} is above, below or on the\n                  surface of the earth model.  If C{deltas} is C{None}, the C{center} is\n                  I{un}ambigous.  Otherwise C{deltas} is a L{LatLon3Tuple}C{(lat, lon,\n                  height)} representing the differences between both results from\n                  L{pygeodesy.trilaterate3d2} and C{center} is the mean thereof.\n\n           @see: Function L{pygeodesy.circin6}, method L{circum3}, U{Incircle\n                 <https://MathWorld.Wolfram.com/Incircle.html>} and U{Contact Triangle\n                 <https://MathWorld.Wolfram.com/ContactTriangle.html>}.\n        '''\n        w, n = self._wrap_name2(**wrap_name)\n\n        with _toCartesian3(self, point2, point3, w) as cs:\n            m = _MODS.vector2d\n            r, c, d, A, B, C = m._circin6(*cs, eps=eps, useZ=True, dLL3=True,\n                                               datum=self.datum)  # PYCHOK unpack\n            return m.Circin6Tuple(r, c.toLatLon(), d, A.toLatLon(),\n                                                      B.toLatLon(),\n                                                      C.toLatLon(), name=n)\n\n    def circum3(self, point2, point3, circum=True, eps=EPS4, **wrap_name):\n        '''Return the radius and center of the smallest circle I{through} or I{containing}\n           this and two other points.\n\n           @arg point2: Second point (C{LatLon}).\n           @arg point3: Third point (C{LatLon}).\n           @kwarg circum: If C{True}, return the C{circumradius} and C{circumcenter},\n                          always, ignoring the I{Meeus}' Type I case (C{bool}).\n           @kwarg eps: Tolerance for function L{pygeodesy.trilaterate3d2}.\n           @kwarg wrap_name: Optional C{B{name}=NN} (C{str}) and optional keyword\n                       argument C{B{wrap}=False}, if C{True}, wrap or I{normalize}\n                       the B{C{points}} (C{bool}).\n\n           @return: A L{Circum3Tuple}C{(radius, center, deltas)}.  The C{center}, an\n                    instance of this (sub-)class, is co-planar with this and the two\n                    given points.  If C{deltas} is C{None}, the C{center} is\n                    I{un}ambigous.  Otherwise C{deltas} is a L{LatLon3Tuple}C{(lat,\n                    lon, height)} representing the difference between both results\n                    from L{pygeodesy.trilaterate3d2} and C{center} is the mean thereof.\n\n           @raise ImportError: Package C{numpy} not found, not installed or older than\n                               version 1.10.\n\n           @raise IntersectionError: Near-concentric, -coincident or -colinear points,\n                                     incompatible C{Ecef} classes or a trilateration\n                                     or C{numpy} issue.\n\n           @raise TypeError: Invalid B{C{point2}} or B{C{point3}}.\n\n           @note: The C{center} is trilaterated in cartesian (ECEF) space and converted\n                  back to geodetic lat-, longitude and height.  The latter, conventionally\n                  in C{meter} indicates whether the C{center} is above, below or on the\n                  surface of the earth model.  If C{deltas} is C{None}, the C{center} is\n                  I{un}ambigous.  Otherwise C{deltas} is a L{LatLon3Tuple}C{(lat, lon,\n                  height)} representing the difference between both results from\n                  L{pygeodesy.trilaterate3d2} and C{center} is the mean thereof.\n\n           @see: Function L{pygeodesy.circum3} and methods L{circin6} and L{circum4_}.\n        '''\n        w, n = self._wrap_name2(**wrap_name)\n\n        with _toCartesian3(self, point2, point3, w, circum=circum) as cs:\n            m = _MODS.vector2d\n            r, c, d = m._circum3(*cs, circum=circum, eps=eps, useZ=True, dLL3=True,  # XXX -3d2\n                                      clas=cs[0].classof, datum=self.datum)  # PYCHOK unpack\n            return m.Circum3Tuple(r, c.toLatLon(), d, name=n)\n\n    def circum4_(self, *points, **wrap_name):\n        '''Best-fit a sphere through this and two or more other points.\n\n           @arg points: The other points (each a C{LatLon}).\n           @kwarg wrap_name: Optional C{B{name}=NN} (C{str}) and optional keyword argument\n                       C{B{wrap}=False}, if C{True}, wrap or I{normalize} the B{C{points}}\n                       (C{bool}).\n\n           @return: A L{Circum4Tuple}C{(radius, center, rank, residuals)} with C{center} an\n                    instance of this (sub-)class.\n\n           @raise ImportError: Package C{numpy} not found, not installed or older than\n                               version 1.10.\n\n           @raise NumPyError: Some C{numpy} issue.\n\n           @raise TypeError: One of the B{C{points}} invalid.\n\n           @raise ValueError: Too few B{C{points}}.\n\n           @see: Function L{pygeodesy.circum4_} and L{circum3}.\n        '''\n        w, n = self._wrap_name2(**wrap_name)\n\n        def _cs(ps, C, w):\n            _wp = _Wrap.point if w else _passarg\n            for i, p in enumerate(ps):\n                yield C(i=i, points=_wp(p))\n\n        C =  self._toCartesianEcef\n        c =  C(point=self)\n        t = _MODS.vector2d.circum4_(c, Vector=c.classof, *_cs(points, C, w))\n        c =  t.center.toLatLon(LatLon=self.classof)\n        return t.dup(center=c, name=n)\n\n    @property\n    def clipid(self):\n        '''Get the (polygonal) clip (C{int}).\n        '''\n        return self._clipid\n\n    @clipid.setter  # PYCHOK setter!\n    def clipid(self, clipid):\n        '''Get the (polygonal) clip (C{int}).\n        '''\n        self._clipid = int(clipid)\n\n    @deprecated_method\n    def compassAngle(self, other, **adjust_wrap):  # PYCHOK no cover\n        '''DEPRECATED, use method L{compassAngleTo}.'''\n        return self.compassAngleTo(other, **adjust_wrap)\n\n    def compassAngleTo(self, other, **adjust_wrap):\n        '''Return the angle from North for the direction vector between\n           this and an other point.\n\n           Suitable only for short, non-near-polar vectors up to a few\n           hundred Km or Miles.  Use method C{initialBearingTo} for\n           larger distances.\n\n           @arg other: The other point (C{LatLon}).\n           @kwarg adjust_wrap: Optional keyword arguments for function\n                               L{pygeodesy.compassAngle}.\n\n           @return: Compass angle from North (C{degrees360}).\n\n           @raise TypeError: The B{C{other}} point is not C{LatLon}.\n\n           @note: Courtesy of Martin Schultz.\n\n           @see: U{Local, flat earth approximation\n                 <https://www.EdWilliams.org/avform.htm#flat>}.\n        '''\n        p = self.others(other)\n        return _formy.compassAngle(self.lat, self.lon, p.lat, p.lon, **adjust_wrap)\n\n    @deprecated_method\n    def cosineAndoyerLambertTo(self, other, **wrap):\n        '''DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.'''\n        return self.cosineLawTo(other, corr=1, **wrap)\n\n    @deprecated_method\n    def cosineForsytheAndoyerLambertTo(self, other, **wrap):\n        '''DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.'''\n        return self.cosineLawTo(other, corr=2, **wrap)\n\n    def cosineLawTo(self, other, **radius__corr_wrap):\n        '''Compute the distance between this and an other point using the U{Law of\n           Cosines<https://www.Movable-Type.co.UK/scripts/latlong.html#cosine-law>}\n           formula, optionally corrected.\n\n           @arg other: The other point (C{LatLon}).\n           @kwarg radius__corr_wrap: Optional earth C{B{radius}=None} (C{meter}),\n                          overriding the equatorial or mean radius of this point's\n                          datum's ellipsoid and keyword arguments for function\n                          L{pygeodesy.cosineLaw}.\n\n           @return: Distance (C{meter}, same units as B{C{radius}}).\n\n           @raise TypeError: The B{C{other}} point is not C{LatLon}.\n\n           @see: Function L{pygeodesy.cosineLaw} and methods C{distanceTo*},\n                 L{equirectangularTo}, L{euclideanTo}, L{flatLocalTo} /\n                 L{hubenyTo}, L{flatPolarTo}, L{haversineTo}, L{thomasTo} and\n                 L{vincentysTo}.\n        '''\n        c = _xkwds_get(radius__corr_wrap, corr=0)\n        return self._distanceTo_(_formy.cosineLaw_, other, **radius__corr_wrap) if c else \\\n               self._distanceTo( _formy.cosineLaw,  other, **radius__corr_wrap)\n\n    @property_RO\n    def datum(self):  # PYCHOK no cover\n        '''I{Must be overloaded}.'''\n        self._notOverloaded()\n\n    def destinationXyz(self, delta, LatLon=None, **LatLon_kwds):\n        '''Calculate the destination using a I{local} delta from this point.\n\n           @arg delta: Local delta to the destination (L{XyzLocal}, L{Aer}, L{Enu}, L{Ned}\n                       or L{Local9Tuple}).\n           @kwarg LatLon: Optional (geodetic) class to return the destination or C{None}.\n           @kwarg LatLon_kwds: Optionally, additional B{C{LatLon}} keyword arguments,\n                               ignored if C{B{LatLon} is None}.\n\n           @return: An B{C{LatLon}} instance or if C{B{LatLon} is None}, a\n                    L{LatLon4Tuple}C{(lat, lon, height, datum)} or L{LatLon3Tuple}C{(lat,\n                    lon, height)} if a C{datum} keyword is specified or not.\n\n           @raise TypeError: Invalid B{C{delta}}, B{C{LatLon}} or B{C{LatLon_kwds}} item.\n        '''\n        t = self._ltp._local2ecef(delta, nine=True)  # _EcefLocal._ltp\n        return t.toLatLon(LatLon=LatLon, **_xkwds(LatLon_kwds, name=self.name))\n\n    def _distanceTo(self, func, other, radius=None, **kwds):\n        '''(INTERNAL) Helper for distance methods C{<func>To}.\n        '''\n        p = self.others(other, up=2)\n        R = radius or (self._datum.ellipsoid.R1 if self._datum else R_M)\n        return func(self.lat, self.lon, p.lat, p.lon, radius=R, **kwds)\n\n    def _distanceTo_(self, func_, other, wrap=False, radius=None, **kwds):\n        '''(INTERNAL) Helper for (ellipsoidal) distance methods C{<func>To}.\n        '''\n        p = self.others(other, up=2)\n        D = self.datum or _spherical_datum(radius or R_M, func_)\n        lam21, phi2, _ = _Wrap.philam3(self.lam, p.phi, p.lam, wrap)\n        r = func_(phi2, self.phi, lam21, datum=D, **kwds)\n        return r * (radius or D.ellipsoid.a)\n\n    @Property_RO\n    def _Ecef_forward(self):\n        '''(INTERNAL) Helper for L{_ecef9} and L{toEcef} (C{callable}).\n        '''\n        return self.Ecef(self.datum, name=self.name).forward\n\n    @Property_RO\n    def _ecef9(self):\n        '''(INTERNAL) Helper for L{toCartesian}, L{toEcef} and L{toCartesian} (L{Ecef9Tuple}).\n        '''\n        return self._Ecef_forward(self, M=True)\n\n    @property_RO\n    def ellipsoidalLatLon(self):\n        '''Get the C{LatLon type} iff ellipsoidal, overloaded in L{LatLonEllipsoidalBase}.\n        '''\n        return False\n\n    @deprecated_method\n    def equals(self, other, eps=None):  # PYCHOK no cover\n        '''DEPRECATED, use method L{isequalTo}.'''\n        return self.isequalTo(other, eps=eps)\n\n    @deprecated_method\n    def equals3(self, other, eps=None):  # PYCHOK no cover\n        '''DEPRECATED, use method L{isequalTo3}.'''\n        return self.isequalTo3(other, eps=eps)\n\n    def equirectangularTo(self, other, **radius_adjust_limit_wrap):\n        '''Compute the distance between this and an other point\n           using the U{Equirectangular Approximation / Projection\n           <https://www.Movable-Type.co.UK/scripts/latlong.html#equirectangular>}.\n\n           Suitable only for short, non-near-polar distances up to a\n           few hundred Km or Miles.  Use method L{haversineTo} or\n           C{distanceTo*} for more accurate and/or larger distances.\n\n           @arg other: The other point (C{LatLon}).\n           @kwarg radius_adjust_limit_wrap: Optional keyword arguments\n                         for function L{pygeodesy.equirectangular},\n                         overriding the default mean C{radius} of this\n                         point's datum ellipsoid.\n\n           @return: Distance (C{meter}, same units as B{C{radius}}).\n\n           @raise TypeError: The B{C{other}} point is not C{LatLon}.\n\n           @see: Function L{pygeodesy.equirectangular} and methods L{cosineLawTo},\n                 C{distanceTo*}, C{euclideanTo}, L{flatLocalTo} / L{hubenyTo},\n                 L{flatPolarTo}, L{haversineTo}, L{thomasTo} and L{vincentysTo}.\n        '''\n        return self._distanceTo(_formy.equirectangular, other, **radius_adjust_limit_wrap)\n\n    def euclideanTo(self, other, **radius_adjust_wrap):\n        '''Approximate the C{Euclidian} distance between this and\n           an other point.\n\n           See function L{pygeodesy.euclidean} for the available B{C{options}}.\n\n           @arg other: The other point (C{LatLon}).\n           @kwarg radius_adjust_wrap: Optional keyword arguments for function\n                         L{pygeodesy.euclidean}, overriding the default mean\n                         C{radius} of this point's datum ellipsoid.\n\n           @return: Distance (C{meter}, same units as B{C{radius}}).\n\n           @raise TypeError: The B{C{other}} point is not C{LatLon}.\n\n           @see: Function L{pygeodesy.euclidean} and methods L{cosineLawTo}, C{distanceTo*},\n                 L{equirectangularTo}, L{flatLocalTo} / L{hubenyTo}, L{flatPolarTo},\n                 L{haversineTo}, L{thomasTo} and L{vincentysTo}.\n        '''\n        return self._distanceTo(_formy.euclidean, other, **radius_adjust_wrap)\n\n    def flatLocalTo(self, other, radius=None, **wrap):\n        '''Compute the distance between this and an other point using the\n           U{ellipsoidal Earth to plane projection\n           <https://WikiPedia.org/wiki/Geographical_distance#Ellipsoidal_Earth_projected_to_a_plane>}\n           aka U{Hubeny<https://www.OVG.AT/de/vgi/files/pdf/3781/>} formula.\n\n           @arg other: The other point (C{LatLon}).\n           @kwarg radius: Mean earth radius (C{meter}) or C{None} for the I{equatorial\n                          radius} of this point's datum ellipsoid.\n           @kwarg wrap: Optional keyword argument C{B{wrap}=False}, if C{True}, wrap\n                        or I{normalize} and unroll the B{C{other}} point (C{bool}).\n\n           @return: Distance (C{meter}, same units as B{C{radius}}).\n\n           @raise TypeError: The B{C{other}} point is not C{LatLon}.\n\n           @raise ValueError: Invalid B{C{radius}}.\n\n           @see: Function L{pygeodesy.flatLocal}/L{pygeodesy.hubeny}, methods L{cosineLawTo},\n                 C{distanceTo*}, L{equirectangularTo}, L{euclideanTo}, L{flatPolarTo},\n                 L{haversineTo}, L{thomasTo} and L{vincentysTo} and U{local, flat Earth\n                 approximation<https://www.edwilliams.org/avform.htm#flat>}.\n        '''\n        r = radius if _isin(radius, None, R_M, _1_0, 1) else Radius(radius)\n        return self._distanceTo_(_formy.flatLocal_, other, radius=r, **wrap)  # PYCHOK kwargs\n\n    hubenyTo = flatLocalTo  # for Karl Hubeny\n\n    def flatPolarTo(self, other, **radius_wrap):\n        '''Compute the distance between this and an other point using\n           the U{polar coordinate flat-Earth<https://WikiPedia.org/wiki/\n           Geographical_distance#Polar_coordinate_flat-Earth_formula>} formula.\n\n           @arg other: The other point (C{LatLon}).\n           @kwarg radius_wrap: Optional C{B{radius}=R_M} and C{B{wrap}=False} for\n                         function L{pygeodesy.flatPolar}, overriding the default\n                         C{mean radius} of this point's datum ellipsoid.\n\n           @return: Distance (C{meter}, same units as B{C{radius}}).\n\n           @raise TypeError: The B{C{other}} point is not C{LatLon}.\n\n           @see: Function L{pygeodesy.flatPolar} and methods L{cosineLawTo}, C{distanceTo*},\n                 L{equirectangularTo}, L{euclideanTo}, L{flatLocalTo} / L{hubenyTo},\n                 L{haversineTo}, L{thomasTo} and L{vincentysTo}.\n        '''\n        return self._distanceTo(_formy.flatPolar, other, **radius_wrap)\n\n    def hartzell(self, los=False, earth=None):\n        '''Compute the intersection of a Line-Of-Sight from this (geodetic) Point-Of-View\n           (pov) with this point's ellipsoid surface.\n\n           @kwarg los: Line-Of-Sight, I{direction} to the ellipsoid (L{Los}, L{Vector3d}),\n                       C{True} for the I{normal, plumb} onto the surface or I{False} or\n                       C{None} to point to the center of the ellipsoid.\n           @kwarg earth: The earth model (L{Datum}, L{Ellipsoid}, L{Ellipsoid2}, L{a_f2Tuple}\n                         or C{scalar} radius in C{meter}), overriding this point's C{datum}\n                         ellipsoid.\n\n           @return: The intersection (C{LatLon}) with attribute C{.height} set to the distance\n                    to this C{pov}.\n\n           @raise IntersectionError: Null or bad C{pov} or B{C{los}}, this C{pov} is inside\n                                     the ellipsoid or B{C{los}} points outside or away from\n                                     the ellipsoid.\n\n           @raise TypeError: Invalid B{C{los}} or invalid or undefined B{C{earth}} or C{datum}.\n\n           @see: Function L{hartzell<pygeodesy.formy.hartzell>} for further details.\n        '''\n        return _formy._hartzell(self, los, earth, LatLon=self.classof)\n\n    def haversineTo(self, other, **radius_wrap):\n        '''Compute the distance between this and an other point using the U{Haversine\n           <https://www.Movable-Type.co.UK/scripts/latlong.html>} formula.\n\n           @arg other: The other point (C{LatLon}).\n           @kwarg radius_wrap: Optional C{B{radius}=R_M} and C{B{wrap}=False} for function\n                         L{pygeodesy.haversine}, overriding the default C{mean radius} of\n                         this point's datum ellipsoid.\n\n           @return: Distance (C{meter}, same units as B{C{radius}}).\n\n           @raise TypeError: The B{C{other}} point is not C{LatLon}.\n\n           @see: Function L{pygeodesy.haversine} and methods L{cosineLawTo}, C{distanceTo*},\n                 L{equirectangularTo}, L{euclideanTo}, L{flatLocalTo} / L{hubenyTo}, \\\n                 L{flatPolarTo}, L{thomasTo} and L{vincentysTo}.\n        '''\n        return self._distanceTo(_formy.haversine, other, **radius_wrap)\n\n    def _havg(self, other, f=_0_5, h=None):\n        '''(INTERNAL) Weighted, average height.\n\n           @arg other: An other point (C{LatLon}).\n           @kwarg f: Optional fraction (C{float}).\n           @kwarg h: Overriding height (C{meter}).\n\n           @return: Average, fractional height (C{float}) or the\n                    overriding height B{C{h}} (C{Height}).\n        '''\n        return Height(h) if h is not None else \\\n              _MODS.fmath.favg(self.height, other.height, f=f)\n\n    @Property\n    def height(self):\n        '''Get the height (C{meter}).\n        '''\n        return self._height\n\n    @height.setter  # PYCHOK setter!\n    def height(self, height):\n        '''Set the height (C{meter}).\n\n           @raise TypeError: Invalid B{C{height}} C{type}.\n\n           @raise ValueError: Invalid B{C{height}}.\n        '''\n        h = Height(height)\n        if self._height != h:\n            _update_all(self)\n            self._height = h\n\n    def _heigHt(self, height):\n        '''(INTERNAL) Overriding this C{height}.\n        '''\n        return self.height if height is None else Height(height)\n\n    def height4(self, earth=None, normal=True, LatLon=None, **LatLon_kwds):\n        '''Compute the projection of this point on and the height above or below\n           this datum's ellipsoid surface.\n\n           @kwarg earth: A datum, ellipsoid, triaxial ellipsoid or earth radius,\n                         I{overriding} this datum (L{Datum}, L{Ellipsoid},\n                         L{Ellipsoid2}, L{a_f2Tuple}, L{Triaxial}, L{Triaxial_},\n                         L{JacobiConformal} or C{meter}, conventionally).\n           @kwarg normal: If C{True}, the projection is the normal to this ellipsoid's\n                          surface, otherwise the intersection of the I{radial} line to\n                          this ellipsoid's center (C{bool}).\n           @kwarg LatLon: Optional class to return the projection, height and datum\n                          (C{LatLon}) or C{None}.\n           @kwarg LatLon_kwds: Optionally, additional B{C{LatLon}} keyword arguments,\n                               ignored if C{B{LatLon} is None}.\n\n           @note: Use keyword argument C{height=0} to override C{B{LatLon}.height}\n                  to {0} or any other C{scalar}, conventionally in C{meter}.\n\n           @return: A B{C{LatLon}} instance or if C{B{LatLon} is None}, a L{Vector4Tuple}C{(x,\n                    y, z, h)} with the I{projection} C{x}, C{y} and C{z} coordinates and\n                    height C{h} in C{meter}, conventionally.\n\n           @raise TriaxialError: No convergence in triaxial root finding.\n\n           @raise TypeError: Invalid B{C{LatLon}}, B{C{LatLon_kwds}} item, B{C{earth}}\n                             or triaxial B{C{earth}} couldn't be converted to biaxial\n                             B{C{LatLon}} datum.\n\n           @see: Methods L{Ellipsoid.height4} and L{Triaxial_.height4} for more information.\n        '''\n        c = self.toCartesian()\n        if LatLon is None:\n            r = c.height4(earth=earth, normal=normal)\n        else:\n            c = c.height4(earth=earth, normal=normal, Cartesian=c.classof, height=0)\n            r = c.toLatLon(LatLon=LatLon, **_xkwds(LatLon_kwds, datum=c.datum, height=c.height))\n            if r.datum != c.datum:\n                raise _TypeError(earth=earth, datum=r.datum)\n        return r\n\n    def heightStr(self, prec=-2, m=_m_):\n        '''Return this point's B{C{height}} as C{str}ing.\n\n           @kwarg prec: Number of (decimal) digits, unstripped (C{int}).\n           @kwarg m: Optional unit of the height (C{str}).\n\n           @see: Function L{pygeodesy.hstr}.\n        '''\n        return _MODS.streprs.hstr(self.height, prec=prec, m=m)\n\n    def intersecant2(self, *args, **kwds):  # PYCHOK no cover\n        '''B{Not implemented}, throws a C{NotImplementedError} always.'''\n        self._notImplemented(*args, **kwds)\n\n    def _intersecend2(self, p, q, wrap, height, g_or_r, P, Q, unused):  # in .LatLonEllipsoidalBaseDI.intersecant2\n        '''(INTERNAL) Interpolate 2 heights along a geodesic or rhumb\n           line and return the 2 intersecant points accordingly.\n        '''\n        if height is None:\n            hp = hq = _xattr(p, height=INT0)\n            h = _xattr(q, height=hp)  # if isLatLon(q) else hp\n            if h != hp:\n                s = g_or_r._Inverse(p, q, wrap).s12\n                if s:  # fmath.fidw?\n                    s = (h - hp) / s  # slope\n                    hq += s * Q.s12\n                    hp += s * P.s12\n                else:\n                    hp = hq = _MODS.fmath.favg(hp, h)\n        else:\n            hp = hq = Height(height)\n\n#       n = self.name or typename(unused)\n        p = q = self.classof(P.lat2, P.lon2, datum=g_or_r.datum, height=hp)  # name=n\n        p._iteration = P.iteration\n        if P is not Q:\n            q = self.classof(Q.lat2, Q.lon2, datum=g_or_r.datum, height=hq)  # name=n\n            q._iteration = Q.iteration\n        return p, q\n\n    @deprecated_method\n    def isantipode(self, other, eps=EPS):  # PYCHOK no cover\n        '''DEPRECATED, use method L{isantipodeTo}.'''\n        return self.isantipodeTo(other, eps=eps)\n\n    def isantipodeTo(self, other, eps=EPS):\n        '''Check whether this and an other point are antipodal, on diametrically\n           opposite sides of the earth.\n\n           @arg other: The other point (C{LatLon}).\n           @kwarg eps: Tolerance for near-equality (C{degrees}).\n\n           @return: C{True} if points are antipodal within the given tolerance,\n                    C{False} otherwise.\n        '''\n        p = self.others(other)\n        return _formy.isantipode(*(self.latlon + p.latlon), eps=eps)\n\n    @Property_RO\n    def isEllipsoidal(self):\n        '''Check whether this point is ellipsoidal (C{bool} or C{None} if unknown).\n        '''\n        return _xattr(self.datum, isEllipsoidal=None)\n\n    def isequalTo(self, other, eps=None):\n        '''Compare this point with an other point, I{ignoring} height.\n\n           @arg other: The other point (C{LatLon}).\n           @kwarg eps: Tolerance for equality (C{degrees}).\n\n           @return: C{True} if both points are identical, I{ignoring} height,\n                    C{False} otherwise.\n\n           @raise TypeError: The B{C{other}} point is not C{LatLon} or mismatch\n                             of the B{C{other}} and this C{class} or C{type}.\n\n           @raise UnitError: Invalid B{C{eps}}.\n\n           @see: Method L{isequalTo3}.\n        '''\n        return _formy._isequalTo(self, self.others(other), eps=eps)\n\n    def isequalTo3(self, other, eps=None):\n        '''Compare this point with an other point, I{including} height.\n\n           @arg other: The other point (C{LatLon}).\n           @kwarg eps: Tolerance for equality (C{degrees}).\n\n           @return: C{True} if both points are identical I{including} height,\n                    C{False} otherwise.\n\n           @raise TypeError: The B{C{other}} point is not C{LatLon} or mismatch\n                             of the B{C{other}} and this C{class} or C{type}.\n\n           @see: Method L{isequalTo}.\n        '''\n        return self.height == self.others(other).height and \\\n               _formy._isequalTo(self, other, eps=eps)\n\n    @Property_RO\n    def isnormal(self):\n        '''Return C{True} if this point is normal (C{bool}),\n           meaning C{abs(lat) <= 90} and C{abs(lon) <= 180}.\n\n           @see: Methods L{normal}, L{toNormal} and functions L{isnormal\n                 <pygeodesy.isnormal>} and L{normal<pygeodesy.normal>}.\n        '''\n        return _formy.isnormal(self.lat, self.lon, eps=0)\n\n    @Property_RO\n    def isSpherical(self):\n        '''Check whether this point is spherical (C{bool} or C{None} if unknown).\n        '''\n        return _xattr(self.datum, isSpherical=None)\n\n    @Property_RO\n    def lam(self):\n        '''Get the longitude (B{C{radians}}).\n        '''\n        return radians(self.lon)\n\n    @Property\n    def lat(self):\n        '''Get the latitude (C{degrees90}).\n        '''\n        return self._lat\n\n    @lat.setter  # PYCHOK setter!\n    def lat(self, lat):\n        '''Set the latitude (C{str[N|S]} or C{degrees}).\n\n           @raise ValueError: Invalid B{C{lat}}.\n        '''\n        lat = Lat(lat)  # parseDMS(lat, suffix=_NS_, clip=90)\n        if self._lat != lat:\n            _update_all(self)\n            self._lat = lat\n\n    @Property\n    def latlon(self):\n        '''Get the lat- and longitude (L{LatLon2Tuple}C{(lat, lon)}).\n        '''\n        return LatLon2Tuple(self._lat, self._lon, name=self.name)\n\n    @latlon.setter  # PYCHOK setter!\n    def latlon(self, latlonh):\n        '''Set the lat- and longitude and optionally the height (2- or 3-tuple\n           or comma- or space-separated C{str} of C{degrees90}, C{degrees180}\n           and C{meter}).\n\n           @raise TypeError: Height of B{C{latlonh}} not C{scalar} or B{C{latlonh}}\n                             not C{list} or C{tuple}.\n\n           @raise ValueError: Invalid B{C{latlonh}} or M{len(latlonh)}.\n\n           @see: Function L{pygeodesy.parse3llh} to parse a B{C{latlonh}} string\n                 into a 3-tuple C{(lat, lon, h)}.\n        '''\n        if isstr(latlonh):\n            latlonh = parse3llh(latlonh, height=self.height)\n        else:\n            _xinstanceof(list, tuple, latlonh=latlonh)\n        if len(latlonh) == 3:\n            h = Height(latlonh[2], name=Fmt.SQUARE(latlonh=2))\n        elif len(latlonh) != 2:\n            raise _ValueError(latlonh=latlonh)\n        else:\n            h = self.height\n\n        llh = Lat(latlonh[0]), Lon(latlonh[1]), h  # parseDMS2(latlonh[0], latlonh[1])\n        if (self._lat, self._lon, self._height) != llh:\n            _update_all(self)\n            self._lat, self._lon, self._height   = llh\n\n    def latlon2(self, ndigits=0):\n        '''Return this point's lat- and longitude in C{degrees}, rounded.\n\n           @kwarg ndigits: Number of (decimal) digits (C{int}).\n\n           @return: A L{LatLon2Tuple}C{(lat, lon)}, both C{float} and rounded\n                    away from zero.\n\n           @note: The C{round}ed values are always C{float}, also if B{C{ndigits}}\n                  is omitted.\n        '''\n        return LatLon2Tuple(round(self.lat, ndigits),\n                            round(self.lon, ndigits), name=self.name)\n\n    @deprecated_method\n    def latlon_(self, ndigits=0):  # PYCHOK no cover\n        '''DEPRECATED, use method L{latlon2}.'''\n        return self.latlon2(ndigits=ndigits)\n\n    latlon2round = latlon_  # PYCHOK no cover\n\n    @Property\n    def latlonheight(self):\n        '''Get the lat-, longitude and height (L{LatLon3Tuple}C{(lat, lon, height)}).\n        '''\n        return self.latlon.to3Tuple(self.height)\n\n    @latlonheight.setter  # PYCHOK setter!\n    def latlonheight(self, latlonh):\n        '''Set the lat- and longitude and optionally the height\n           (2- or 3-tuple or comma- or space-separated C{str} of\n           C{degrees90}, C{degrees180} and C{meter}).\n\n           @see: Property L{latlon} for more details.\n        '''\n        self.latlon = latlonh\n\n    @Property\n    def lon(self):\n        '''Get the longitude (C{degrees180}).\n        '''\n        return self._lon\n\n    @lon.setter  # PYCHOK setter!\n    def lon(self, lon):\n        '''Set the longitude (C{str[E|W]} or C{degrees}).\n\n           @raise ValueError: Invalid B{C{lon}}.\n        '''\n        lon = Lon(lon)  # parseDMS(lon, suffix=_EW_, clip=180)\n        if self._lon != lon:\n            _update_all(self)\n            self._lon = lon\n\n#   _ltp = _EcefLocal._ltp(self)\n\n    def nearestOn6(self, points, closed=False, height=None, wrap=False):\n        '''Locate the point on a path or polygon closest to this point.\n\n           Points are converted to and distances are computed in I{geocentric},\n           cartesian space.\n\n           @arg points: The path or polygon points (C{LatLon}[]).\n           @kwarg closed: Optionally, close the polygon (C{bool}).\n           @kwarg height: Optional height, overriding the height of this and all\n                          other points (C{meter}).  If C{None}, take the height\n                          of points into account for distances.\n           @kwarg wrap: If C{True}, wrap or I{normalize} and unroll the B{C{points}}\n                        (C{bool}).\n\n           @return: A L{NearestOn6Tuple}C{(closest, distance, fi, j, start, end)}\n                    with the C{closest}, the C{start} and the C{end} point each an\n                    instance of this C{LatLon} and C{distance} in C{meter}, same\n                    units as the cartesian axes.\n\n           @raise PointsError: Insufficient number of B{C{points}}.\n\n           @raise TypeError: Some B{C{points}} or some B{C{points}}' C{Ecef} invalid.\n\n           @raise ValueError: Some B{C{points}}' C{Ecef} is incompatible.\n\n           @see: Function L{nearestOn6<pygeodesy.nearestOn6>}.\n        '''\n        def _cs(Ps, h, w, C):\n            p = None  # not used\n            for i, q in Ps.enumerate():\n                if w and i:\n                    q = _unrollon(p, q)\n                yield C(height=h, i=i, up=3, points=q)\n                p = q\n\n        C  = self._toCartesianEcef  # to verify datum and Ecef\n        Ps = self.PointsIter(points, wrap=wrap)\n\n        c =  C(height=height, this=self)  # this Cartesian\n        t = _MODS.vector3d.nearestOn6(c, _cs(Ps, height, wrap, C), closed=closed)\n        c, s, e = t.closest, t.start, t.end\n\n        kwds = _xkwds_not(None, LatLon=self.classof,  # this LatLon\n                                height=height)\n        _r =  self.Ecef(self.datum).reverse\n        p  = _r(c).toLatLon(**kwds)\n        s  = _r(s).toLatLon(**kwds) if s is not c else p\n        e  = _r(e).toLatLon(**kwds) if e is not c else p\n        return t.dup(closest=p, start=s, end=e)\n\n    def nearestTo(self, *args, **kwds):  # PYCHOK no cover\n        '''B{Not implemented}, throws a C{NotImplementedError} always.'''\n        self._notImplemented(*args, **kwds)\n\n    def normal(self):\n        '''Normalize this point I{in-place} to C{abs(lat) <= 90} and C{abs(lon) <= 180}.\n\n           @return: C{True} if this point was I{normal}, C{False} if it wasn't (but is now).\n\n           @see: Property L{isnormal} and method L{toNormal}.\n        '''\n        n = self.isnormal\n        if not n:\n            self.latlon = _formy.normal(*self.latlon)\n        return n\n\n    @property_RO\n    def _N_vector(self):\n        '''(INTERNAL) Get the C{Nvector} (C{nvectorBase._N_Vector})\n        '''\n        _N = _MODS.nvectorBase._N_Vector\n        return _N(*self._n_xyz3, h=self.height, name=self.name)\n\n    @Property_RO\n    def _n_xyz3(self):\n        '''(INTERNAL)  Get the n-vector components as L{Vector3Tuple}.\n        '''\n        return philam2n_xyz(self.phi, self.lam, name=self.name)\n\n    @Property_RO\n    def phi(self):\n        '''Get the latitude (B{C{radians}}).\n        '''\n        return radians(self.lat)\n\n    @Property_RO\n    def philam(self):\n        '''Get the lat- and longitude (L{PhiLam2Tuple}C{(phi, lam)}).\n        '''\n        return PhiLam2Tuple(self.phi, self.lam, name=self.name)\n\n    def philam2(self, ndigits=0):\n        '''Return this point's lat- and longitude in C{radians}, rounded.\n\n           @kwarg ndigits: Number of (decimal) digits (C{int}).\n\n           @return: A L{PhiLam2Tuple}C{(phi, lam)}, both C{float} and rounded\n                    away from zero.\n\n           @note: The C{round}ed values are C{float}, always.\n        '''\n        return PhiLam2Tuple(round(self.phi, ndigits),\n                            round(self.lam, ndigits), name=self.name)\n\n    @Property_RO\n    def philamheight(self):\n        '''Get the lat-, longitude in C{radians} and height (L{PhiLam3Tuple}C{(phi, lam, height)}).\n        '''\n        return self.philam.to3Tuple(self.height)\n\n    @deprecated_method\n    def points(self, points, **closed):  # PYCHOK no cover\n        '''DEPRECATED, use method L{points2}.'''\n        return self.points2(points, **closed)\n\n    def points2(self, points, closed=True):\n        '''Check a path or polygon represented by points.\n\n           @arg points: The path or polygon points (C{LatLon}[])\n           @kwarg closed: Optionally, consider the polygon closed, ignoring any\n                          duplicate or closing final B{C{points}} (C{bool}).\n\n           @return: A L{Points2Tuple}C{(number, points)}, an C{int} and a C{list}\n                    or C{tuple}.\n\n           @raise PointsError: Insufficient number of B{C{points}}.\n\n           @raise TypeError: Some B{C{points}} are not C{LatLon}.\n        '''\n        return _MODS.iters.points2(points, closed=closed, base=self)\n\n    def PointsIter(self, points, loop=0, dedup=False, wrap=False):\n        '''Return a C{PointsIter} iterator.\n\n           @arg points: The path or polygon points (C{LatLon}[])\n           @kwarg loop: Number of loop-back points (non-negative C{int}).\n           @kwarg dedup: If C{True}, skip duplicate points (C{bool}).\n           @kwarg wrap: If C{True}, wrap or I{normalize} the enum-/iterated\n                        B{C{points}} (C{bool}).\n\n           @return: A new C{PointsIter} iterator.\n\n           @raise PointsError: Insufficient number of B{C{points}}.\n        '''\n        return _MODS.iters.PointsIter(points, base=self, loop=loop,\n                                             dedup=dedup, wrap=wrap)\n\n    def radii11(self, point2, point3, wrap=False):\n        '''Return the radii of the C{Circum-}, C{In-}, I{Soddy} and C{Tangent}\n           circles of a (planar) triangle formed by this and two other points.\n\n           @arg point2: Second point (C{LatLon}).\n           @arg point3: Third point (C{LatLon}).\n           @kwarg wrap: If C{True}, wrap or I{normalize} B{C{point2}} and\n                        B{C{point3}} (C{bool}).\n\n           @return: L{Radii11Tuple}C{(rA, rB, rC, cR, rIn, riS, roS, a, b, c, s)}.\n\n           @raise IntersectionError: Near-coincident or -colinear points.\n\n           @raise TypeError: Invalid B{C{point2}} or B{C{point3}}.\n\n           @see: Function L{pygeodesy.radii11}, U{Incircle\n                 <https://MathWorld.Wolfram.com/Incircle.html>}, U{Soddy Circles\n                 <https://MathWorld.Wolfram.com/SoddyCircles.html>} and U{Tangent\n                 Circles<https://MathWorld.Wolfram.com/TangentCircles.html>}.\n        '''\n        with _toCartesian3(self, point2, point3, wrap) as cs:\n            return _MODS.vector2d._radii11ABC4(*cs, useZ=True)[0]\n\n    def _rhumb3(self, exact, radius):  # != .sphericalBase._rhumbs3\n        '''(INTERNAL) Get the C{rhumb} for this point's datum or for\n           the B{C{radius}}' earth model iff non-C{None}.\n        '''\n        try:\n            d = self._rhumb3dict\n            t = d[(exact, radius)]\n        except KeyError:\n            D = self.datum if radius is None else \\\n               _spherical_datum(radius)  # ellipsoidal OK\n            try:\n                r = D.ellipsoid.rhumb_(exact=exact)  # or D.isSpherical\n            except AttributeError as x:\n                raise _AttributeError(datum=D, radius=radius, cause=x)\n            t = r, D, _MODS.karney.Caps\n            if len(d) > 2:\n                d.clear()  # d[:] = {}\n            d[(exact, radius)] = t  # cache 3-tuple\n        return t\n\n    @Property_RO\n    def _rhumb3dict(self):  # in ._update\n        return {}  # 3-item cache\n\n    def rhumbAzimuthTo(self, other, exact=False, radius=None, wrap=False, b360=False):\n        '''Return the azimuth (bearing) of a rhumb line (loxodrome) between this and\n           an other (ellipsoidal) point.\n\n           @arg other: The other point (C{LatLon}).\n           @kwarg exact: Exact C{Rhumb...} to use (C{bool} or C{Rhumb...}), see method\n                         L{Ellipsoid.rhumb_}.\n           @kwarg radius: Optional earth radius (C{meter}) or earth model (L{Datum}, L{Ellipsoid},\n                          L{Ellipsoid2} or L{a_f2Tuple}), overriding this point's datum.\n           @kwarg wrap: If C{True}, wrap or I{normalize} and unroll the B{C{other}} point (C{bool}).\n           @kwarg b360: If C{True}, return the azimuth as bearing in compass degrees (C{bool}).\n\n           @return: Rhumb azimuth (C{degrees180} or compass C{degrees360}).\n\n           @raise TypeError: The B{C{other}} point is incompatible or B{C{radius}} is invalid.\n        '''\n        r, _, Cs = self._rhumb3(exact, radius)\n        z = r._Inverse(self, other, wrap, outmask=Cs.AZIMUTH).azi12\n        return _umod_360(z + _360_0) if b360 else z\n\n    def rhumbDestination(self, distance, azimuth, radius=None, height=None, exact=False, **name):\n        '''Return the destination point having travelled the given distance from this point along\n           a rhumb line (loxodrome) of the given azimuth.\n\n           @arg distance: Distance travelled (C{meter}, same units as this point's datum (ellipsoid)\n                          axes or B{C{radius}}, may be negative.\n           @arg azimuth: Azimuth (bearing) of the rhumb line (compass C{degrees}).\n           @kwarg radius: Optional earth radius (C{meter}) or earth model (L{Datum}, L{Ellipsoid},\n                          L{Ellipsoid2} or L{a_f2Tuple}), overriding this point's datum.\n           @kwarg height: Optional height, overriding the default height (C{meter}).\n           @kwarg exact: Exact C{Rhumb...} to use (C{bool} or C{Rhumb...}), see method L{Ellipsoid.rhumb_}.\n           @kwarg name: Optional C{B{name}=NN} (C{str}).\n\n           @return: The destination point (ellipsoidal C{LatLon}).\n\n           @raise TypeError: Invalid B{C{radius}}.\n\n           @raise ValueError: Invalid B{C{distance}}, B{C{azimuth}}, B{C{radius}} or B{C{height}}.\n        '''\n        r, D, _ = self._rhumb3(exact, radius)\n        d = r._Direct(self, azimuth, distance)\n        h = self._heigHt(height)\n        return self.classof(d.lat2, d.lon2, datum=D, height=h, **name)\n\n    def rhumbDistanceTo(self, other, exact=False, radius=None, wrap=False):\n        '''Return the distance from this to an other point along a rhumb line (loxodrome).\n\n           @arg other: The other point (C{LatLon}).\n           @kwarg exact: Exact C{Rhumb...} to use (C{bool} or C{Rhumb...}), see  method L{Ellipsoid.rhumb_}.\n           @kwarg radius: Optional earth radius (C{meter}) or earth model (L{Datum}, L{Ellipsoid},\n                          L{Ellipsoid2} or L{a_f2Tuple}), overriding this point's datum.\n           @kwarg wrap: If C{True}, wrap or I{normalize} and unroll the B{C{other}} point (C{bool}).\n\n           @return: Distance (C{meter}, the same units as this point's datum (ellipsoid) axes or B{C{radius}}.\n\n           @raise TypeError: The B{C{other}} point is incompatible or B{C{radius}} is invalid.\n\n           @raise ValueError: Invalid B{C{radius}}.\n        '''\n        r, _, Cs = self._rhumb3(exact, radius)\n        return r._Inverse(self, other, wrap, outmask=Cs.DISTANCE).s12\n\n    def rhumbIntersecant2(self, circle, point, other, height=None,\n                                                    **exact_radius_wrap_eps_tol):\n        '''Compute the intersections of a circle and a rhumb line given as two points or as a\n           point and azimuth.\n\n           @arg circle: Radius of the circle centered at this location (C{meter}), or a point\n                        on the circle (same C{LatLon} class).\n           @arg point: The start point of the rhumb line (same C{LatLon} class).\n           @arg other: An other point I{on} (same C{LatLon} class) or the azimuth I{of} (compass\n                       C{degrees}) the rhumb line.\n           @kwarg height: Optional height for the intersection points (C{meter}, conventionally)\n                          or C{None} for interpolated heights.\n           @kwarg exact_radius_wrap_eps_tol: Optional keyword arguments, see methods L{rhumbLine}\n                        and L{RhumbLineAux.Intersecant2} or L{RhumbLine.Intersecant2}.\n\n           @return: 2-Tuple of the intersection points (representing a chord), each an instance of\n                    this class.  Both points are the same instance if the rhumb line is tangent to\n                    the circle.\n\n           @raise IntersectionError: The circle and rhumb line do not intersect.\n\n           @raise TypeError: Invalid B{C{point}}, B{C{circle}} or B{C{other}}.\n\n           @raise ValueError: Invalid B{C{circle}}, B{C{other}}, B{C{height}} or B{C{exact_radius_wrap}}.\n\n           @see: Methods L{RhumbLineAux.Intersecant2} and L{RhumbLine.Intersecant2}.\n        '''\n        def _kwds3(eps=EPS, tol=_TOL, wrap=False, **kwds):\n            return kwds, wrap, dict(eps=eps, tol=tol)\n\n        exact_radius, w, eps_tol = _kwds3(**exact_radius_wrap_eps_tol)\n\n        p = _unrollon(self, self.others(point=point), wrap=w)\n        try:\n            r = Radius_(circle=circle) if _isRadius(circle) else \\\n                self.rhumbDistanceTo(self.others(circle=circle), wrap=w, **exact_radius)\n            rl = p.rhumbLine(other, wrap=w, **exact_radius)\n            P, Q = rl.Intersecant2(self.lat, self.lon, r, **eps_tol)\n\n            return self._intersecend2(p, other, w, height, rl.rhumb, P, Q,\n                                                           self.rhumbIntersecant2)\n        except (TypeError, ValueError) as x:\n            raise _xError(x, center=self, circle=circle, point=point, other=other,\n                                                       **exact_radius_wrap_eps_tol)\n\n    def rhumbLine(self, other, exact=False, radius=None, wrap=False, **name_caps):\n        '''Get a rhumb line through this point at a given azimuth or through this and an other point.\n\n           @arg other: The azimuth I{of} (compass C{degrees}) or an other point I{on} (same\n                       C{LatLon} class) the rhumb line.\n           @kwarg exact: Exact C{Rhumb...} to use (C{bool} or C{Rhumb...}), see method L{Ellipsoid.rhumb_}.\n           @kwarg radius: Optional earth radius (C{meter}) or earth model (L{Datum}, L{Ellipsoid},\n                          L{Ellipsoid2} or L{a_f2Tuple}), overriding this point's C{datum}.\n           @kwarg wrap: If C{True}, wrap or I{normalize} and unroll the B{C{other}} point (C{bool}).\n           @kwarg name_caps: Optional C{B{name}=str} and C{caps}, see L{RhumbLine} or L{RhumbLineAux} C{B{caps}}.\n\n           @return: A C{RhumbLine} instance (C{RhumbLine} or C{RhumbLineAux}).\n\n           @raise TypeError: Invalid B{C{radius}} or B{C{other}} not C{scalar} nor same C{LatLon} class.\n\n           @see: Modules L{rhumb.aux_} and L{rhumb.ekx}.\n        '''\n        r, _, Cs = self._rhumb3(exact, radius)\n        kwds = _xkwds(name_caps, name=self.name, caps=Cs.LINE_OFF)\n        rl = r._DirectLine( self, other, **kwds) if _isDegrees(other) else \\\n             r._InverseLine(self, self.others(other), wrap, **kwds)\n        return rl\n\n    def rhumbMidpointTo(self, other, exact=False, radius=None, height=None, fraction=_0_5, **wrap_name):\n        '''Return the (loxodromic) midpoint on the rhumb line between this and an other point.\n\n           @arg other: The other point (same C{LatLon} class).\n           @kwarg exact: Exact C{Rhumb...} to use (C{bool} or C{Rhumb...}), see method L{Ellipsoid.rhumb_}.\n           @kwarg radius: Optional earth radius (C{meter}) or earth model (L{Datum}, L{Ellipsoid},\n                          L{Ellipsoid2} or L{a_f2Tuple}), overriding this point's datum.\n           @kwarg height: Optional height, overriding the mean height (C{meter}).\n           @kwarg fraction: Midpoint location from this point (C{scalar}), 0 for this, 1 for the B{C{other}},\n                            0.5 for halfway between this and the B{C{other}} point, may be negative or\n                            greater than 1.\n           @kwarg wrap_name: Optional C{B{name}=NN} (C{str}) and C{B{wrap}=False}, if C{True}, wrap or\n                       I{normalize} and unroll the B{C{other}} point (C{bool}).\n\n           @return: The midpoint at the given B{C{fraction}} along the rhumb line (same C{LatLon} class).\n\n           @raise TypeError: The B{C{other}} point is incompatible or B{C{radius}} is invalid.\n\n           @raise ValueError: Invalid B{C{height}} or B{C{fraction}}.\n        '''\n        w, n    = self._wrap_name2(**wrap_name)\n        r, D, _ = self._rhumb3(exact, radius)\n        f = Scalar(fraction=fraction)\n        d = r._Inverse(self, self.others(other), w)  # C.AZIMUTH_DISTANCE\n        d = r._Direct( self, d.azi12, d.s12 * f)\n        h = self._havg(other, f=f, h=height)\n        return self.classof(d.lat2, d.lon2, datum=D, height=h, name=n)\n\n    @property_RO\n    def sphericalLatLon(self):\n        '''Get the C{LatLon type} iff spherical, overloaded in L{LatLonSphericalBase}.\n        '''\n        return False\n\n    def thomasTo(self, other, **wrap):\n        '''Compute the distance between this and an other point using U{Thomas'\n           <https://apps.DTIC.mil/dtic/tr/fulltext/u2/703541.pdf>} formula.\n\n           @arg other: The other point (C{LatLon}).\n           @kwarg wrap: Optional keyword argument C{B{wrap}=False}, if C{True}, wrap\n                        or I{normalize} and unroll the B{C{other}} point (C{bool}).\n\n           @return: Distance (C{meter}, same units as the axes of this point's datum ellipsoid).\n\n           @raise TypeError: The B{C{other}} point is not C{LatLon}.\n\n           @see: Function L{pygeodesy.thomas} and methods L{cosineLawTo}, C{distanceTo*},\n                 L{equirectangularTo}, L{euclideanTo}, L{flatLocalTo} / L{hubenyTo},\n                 L{flatPolarTo}, L{haversineTo} and L{vincentysTo}.\n        '''\n        return self._distanceTo_(_formy.thomas_, other, **wrap)\n\n    @deprecated_method\n    def to2ab(self):  # PYCHOK no cover\n        '''DEPRECATED, use property L{philam}.'''\n        return self.philam\n\n    def toCartesian(self, height=None, Cartesian=None, **Cartesian_kwds):\n        '''Convert this point to cartesian, I{geocentric} coordinates, also known as\n           I{Earth-Centered, Earth-Fixed} (ECEF).\n\n           @kwarg height: Optional height, overriding this point's height (C{meter},\n                          conventionally).\n           @kwarg Cartesian: Optional class to return the geocentric coordinates\n                             (C{Cartesian}) or C{None}.\n           @kwarg Cartesian_kwds: Optionally, additional B{C{Cartesian}} keyword\n                                  arguments, ignored if C{B{Cartesian} is None}.\n\n           @return: A B{C{Cartesian}} instance or if B{C{Cartesian} is None}, an\n                    L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)} with\n                    C{C=0} and C{M} if available.\n\n           @raise TypeError: Invalid B{C{Cartesian}} or B{C{Cartesian_kwds}} item.\n\n           @see: Methods C{toNvector}, C{toVector} and C{toVector3d}.\n        '''\n        r = self._ecef9 if height is None else self.toEcef(height=height)\n        if Cartesian is not None:  # class or .classof\n            r = Cartesian(r, **self._name1__(Cartesian_kwds))\n        _xdatum(r.datum, self.datum)\n        return r\n\n    def _toCartesianEcef(self, height=None, i=None, up=2, **name_point):\n        '''(INTERNAL) Convert to cartesian and check Ecef's before and after.\n        '''\n        p = self.others(up=up, **name_point)\n        c = p.toCartesian(height=height)\n        E = self.Ecef\n        if E:\n            for p in (p, c):\n                e = _xattr(p, Ecef=None)\n                if not _isin(e, None, E):  # PYCHOK no cover\n                    n, _ = _xkwds_item2(name_point)\n                    n =  Fmt.INDEX(n, i)\n                    t = _incompatible(typename(E))\n                    raise _ValueError(n, e, txt=t)  # txt__\n        return c\n\n    def toDatum(self, datum2, height=None, **name):\n        '''I{Must be overloaded}.'''\n        self._notOverloaded(datum2, height=height, **name)\n\n    def toEcef(self, height=None, M=False):\n        '''Convert this point to I{geocentric} coordinates, also known as\n           I{Earth-Centered, Earth-Fixed} (U{ECEF<https://WikiPedia.org/wiki/ECEF>}).\n\n           @kwarg height: Optional height, overriding this point's height (C{meter},\n                          conventionally).\n           @kwarg M: Optionally, include the rotation L{EcefMatrix} (C{bool}).\n\n           @return: An L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)} with\n                    C{C=0} and C{M} if available.\n\n           @raise EcefError: A C{.datum} or an ECEF issue.\n        '''\n        return self._ecef9 if _isin(height, None, self.height) else \\\n               self._Ecef_forward(self.lat, self.lon, height=height, M=M)\n\n    @deprecated_method\n    def to3llh(self, height=None):  # PYCHOK no cover\n        '''DEPRECATED, use property L{latlonheight} or C{latlon.to3Tuple(B{height})}.'''\n        return self.latlonheight if _isin(height, None, self.height) else \\\n               self.latlon.to3Tuple(height)\n\n    def toNormal(self, deep=False, **name):\n        '''Get this point I{normalized} to C{abs(lat) <= 90} and C{abs(lon) <= 180}.\n\n           @kwarg deep: If C{True}, make a deep, otherwise a shallow copy (C{bool}).\n           @kwarg name: Optional C{B{name}=NN} (C{str}).\n\n           @return: A copy of this point, I{normalized} (C{LatLon}), optionally renamed.\n\n           @see: Property L{isnormal}, method L{normal} and function L{pygeodesy.normal}.\n        '''\n        ll = self.copy(deep=deep)\n        _  = ll.normal()\n        if name:\n            ll.rename(name)\n        return ll\n\n    def toNvector(self, h=None, Nvector=None, **name_Nvector_kwds):\n        '''Convert this point to C{n-vector} (normal to the earth's surface) components,\n           I{including height}.\n\n           @kwarg h: Optional height, overriding this point's height (C{meter}).\n           @kwarg Nvector: Optional class to return the C{n-vector} components (C{Nvector})\n                           or C{None}.\n           @kwarg name_Nvector_kwds: Optional C{B{name}=NN} (C{str}) and optionally,\n                       additional B{C{Nvector}} keyword arguments, ignored if C{B{Nvector}\n                       is None}.\n\n           @return: An B{C{Nvector}} instance or a L{Vector4Tuple}C{(x, y, z, h)} if\n                    C{B{Nvector} is None}.\n\n           @raise TypeError: Invalid B{C{h}}, B{C{Nvector}} or B{C{name_Nvector_kwds}}.\n\n           @see: Methods C{toCartesian}, C{toVector} and C{toVector3d}.\n        '''\n        h = self._heigHt(h)\n        if Nvector is None:\n            r = self._n_xyz3.to4Tuple(h)\n            n, _ = _name2__(name_Nvector_kwds, _or_nameof=self)\n            if n:\n                r.rename(n)\n        else:\n            x, y, z = self._n_xyz3\n            r = Nvector(x, y, z, h=h, ll=self, **self._name1__(name_Nvector_kwds))\n        return r\n\n    def toStr(self, form=F_DMS, joined=_COMMASPACE_, m=_m_, **prec_sep_s_D_M_S):  # PYCHOK expected\n        '''Convert this point to a \"lat, lon[, +/-height]\" string, formatted in the\n           given C{B{form}at}.\n\n           @kwarg form: The lat-/longitude C{B{form}at} to use (C{str}), see functions\n                        L{pygeodesy.latDMS} or L{pygeodesy.lonDMS}.\n           @kwarg joined: Separator to join the lat-, longitude and height strings (C{str}\n                          or C{None} or C{NN} for non-joined).\n           @kwarg m: Optional unit of the height (C{str}), use C{None} to exclude height\n                     from the returned string.\n           @kwarg prec_sep_s_D_M_S: Optional C{B{prec}ision}, C{B{sep}arator}, B{C{s_D}},\n                       B{C{s_M}}, B{C{s_S}} and B{C{s_DMS}} keyword arguments, see function\n                       L{pygeodesy.toDMS} for details.\n\n           @return: This point in the specified C{B{form}at}, etc. (C{str} or a 2- or 3-tuple\n                    C{(lat_str, lon_str[, height_str])} if B{C{joined}} is C{NN} or C{None}).\n\n           @see: Function L{pygeodesy.latDMS} or L{pygeodesy.lonDMS} for more details about\n                 keyword arguments C{B{form}at}, C{B{prec}ision}, C{B{sep}arator}, B{C{s_D}},\n                 B{C{s_M}}, B{C{s_S}} and B{C{s_DMS}}.\n        '''\n        t = (latDMS(self.lat, form=form, **prec_sep_s_D_M_S),\n             lonDMS(self.lon, form=form, **prec_sep_s_D_M_S))\n        if self.height and m is not None:\n            t += (self.heightStr(m=m),)\n        return joined.join(t) if joined else t\n\n    def toVector(self, Vector=None, **Vector_kwds):\n        '''Convert this point to a C{Vector} with the I{geocentric} C{(x, y, z)} (ECEF)\n           coordinates, I{ignoring height}.\n\n           @kwarg Vector: Optional class to return the I{geocentric} components (L{Vector3d})\n                          or C{None}.\n           @kwarg Vector_kwds: Optionally, additional B{C{Vector}} keyword arguments,\n                         ignored if C{B{Vector} is None}.\n\n           @return: A B{C{Vector}} instance or a L{Vector3Tuple}C{(x, y, z)} if C{B{Vector}\n                    is None}.\n\n           @raise TypeError: Invalid B{C{Vector}} or B{C{Vector_kwds}}.\n\n           @see: Methods C{toCartesian}, C{toNvector} and C{toVector3d}.\n        '''\n        return self._ecef9.toVector(Vector=Vector, **self._name1__(Vector_kwds))\n\n    def toVector3d(self, norm=True, **Vector3d_kwds):\n        '''Convert this point to a L{Vector3d} with the I{geocentric} C{(x, y, z)}\n           (ECEF) coordinates, I{ignoring height}.\n\n           @kwarg norm: If C{False}, don't normalize the coordinates (C{bool}).\n           @kwarg Vector3d_kwds: Optional L{Vector3d} keyword arguments.\n\n           @return: Named, unit vector or vector (L{Vector3d}).\n\n           @raise TypeError: Invalid B{C{Vector3d_kwds}}.\n\n           @see: Methods C{toCartesian}, C{toNvector} and C{toVector}.\n        '''\n        r = self.toVector(Vector=_MODS.vector3d.Vector3d, **Vector3d_kwds)\n        if norm:\n            r = r.unit(ll=self)\n        return r\n\n    def toWm(self, **toWm_kwds):\n        '''Convert this point to a WM coordinate.\n\n           @kwarg toWm_kwds: Optional L{pygeodesy.toWm} keyword arguments.\n\n           @return: The WM coordinate (L{Wm}).\n\n           @see: Function L{pygeodesy.toWm}.\n        '''\n        return _MODS.webmercator.toWm(self, **self._name1__(toWm_kwds))\n\n    @deprecated_method\n    def to3xyz(self):  # PYCHOK no cover\n        '''DEPRECATED, use property L{xyz} or method L{toNvector}, L{toVector},\n           L{toVector3d} or perhaps (geocentric) L{toEcef}.'''\n        return self.xyz  # self.toVector()\n\n#   def _update(self, updated, *attrs, **setters):\n#       '''(INTERNAL) See C{_NamedBase._update}.\n#       '''\n#       if updated:\n#           self._rhumb3dict.clear()\n#       return _NamedBase._update(self, updated, *attrs, **setters)\n\n    def vincentysTo(self, other, **radius_wrap):\n        '''Compute the distance between this and an other point using U{Vincenty's\n           <https://WikiPedia.org/wiki/Great-circle_distance>} spherical formula.\n\n           @arg other: The other point (C{LatLon}).\n           @kwarg radius_wrap: Optional C{B{radius}=R_M} and C{B{wrap}=False} for\n                         function L{pygeodesy.vincentys}, overriding the default\n                         C{mean radius} of this point's datum ellipsoid.\n\n           @return: Distance (C{meter}, same units as B{C{radius}}).\n\n           @raise TypeError: The B{C{other}} point is not C{LatLon}.\n\n           @see: Function L{pygeodesy.vincentys} and methods L{cosineLawTo}, C{distanceTo*},\n                 L{equirectangularTo}, L{euclideanTo}, L{flatLocalTo} / L{hubenyTo},\n                 L{flatPolarTo}, L{haversineTo} and L{thomasTo}.\n        '''\n        return self._distanceTo(_formy.vincentys, other, **_xkwds(radius_wrap, radius=None))\n\n    def _wrap_name2(self, wrap=False, **name):\n        '''(INTERNAL) Return the C{wrap} and C{name} value.\n        '''\n        return wrap, (self._name__(name) if name else NN)\n\n    @property_RO\n    def xyz(self):\n        '''Get the I{geocentric} C{(x, y, z)} coordinates (L{Vector3Tuple}C{(x, y, z)})\n        '''\n        return self._ecef9.xyz\n\n    @property_RO\n    def xyz3(self):\n        '''Get the I{geocentric} C{(x, y, z)} coordinates as C{3-tuple}.\n        '''\n        return tuple(self.xyz)\n\n    @Property_RO\n    def xyzh(self):\n        '''Get the I{geocentric} C{(x, y, z)} coordinates and height (L{Vector4Tuple}C{(x, y, z, h)})\n        '''\n        return self.xyz.to4Tuple(self.height)\n\n\nclass _toCartesian3(object):  # see also .formy._idllmn6, .geodesicw._wargs, .vector2d._numpy\n    '''(INTERNAL) Wrapper to convert 2 other points.\n    '''\n    @contextmanager  # <https://www.Python.org/dev/peps/pep-0343/> Examples\n    def __call__(self, p, p2, p3, wrap, **kwds):\n        try:\n            if wrap:\n                p2, p3 =  map1(_Wrap.point, p2, p3)\n                kwds   = _xkwds(kwds, wrap=wrap)\n            yield (p. toCartesian().copy(name=_point_),  # copy to rename\n                   p._toCartesianEcef(up=4, point2=p2),\n                   p._toCartesianEcef(up=4, point3=p3))\n        except (AssertionError, TypeError, ValueError) as x:  # Exception?\n            raise _xError(x, point=p, point2=p2, point3=p3, **kwds)\n\n_toCartesian3 = _toCartesian3()  # PYCHOK singleton\n\n\ndef _latlonheight3(latlonh, height, wrap):  # in .points.LatLon_.__init__\n    '''(INTERNAL) Get 3-tuple C{(lat, lon, height)}.\n    '''\n    try:\n        lat, lon = latlonh.lat, latlonh.lon\n        height = _xattr(latlonh, height=height)\n    except AttributeError:\n        raise _IsnotError(_LatLon_, latlonh=latlonh)\n    if wrap:\n        lat, lon = _Wrap.latlon(lat, lon)\n    return lat, lon, height\n\n\ndef latlon2n_xyz(lat_ll, lon=None, **name):\n    '''Convert lat-, longitude to C{n-vector} (I{normal} to the earth's surface) X, Y and Z components.\n\n       @arg lat_ll: Latitude (C{degrees}) or a C{LatLon} instance, L{LatLon2Tuple} or other C{LatLon*Tuple}.\n       @kwarg lon: Longitude (C{degrees}), required if C{B{lon_ll} is degrees}, ignored otherwise.\n       @kwarg name: Optional C{B{name}=NN} (C{str}).\n\n       @return: A L{Vector3Tuple}C{(x, y, z)}.\n\n       @see: Function L{philam2n_xyz}.\n\n       @note: These are C{n-vector} x, y and z components, I{NOT geocentric} x, y and z (ECEF) coordinates!\n    '''\n    lat = lat_ll\n    if lon is None:\n        try:\n            lat, lon = lat_ll.latlon\n        except AttributeError:\n            lat = lat_ll.lat\n            lon = lat_ll.lon\n    # Kenneth Gade eqn 3, but using right-handed\n    # vector x -> 0°E,0°N, y -> 90°E,0°N, z -> 90°N\n    sa, ca, sb, cb = sincos2d_(lat, lon)\n    return Vector3Tuple(ca * cb, ca * sb, sa, **name)\n\n\ndef philam2n_xyz(phi_ll, lam=None, **name):\n    '''Convert lat-, longitude to C{n-vector} (I{normal} to the earth's surface) X, Y and Z components.\n\n       @arg phi_ll: Latitude (C{radians}) or a C{LatLon} instance with C{phi}, C{lam} or C{philam} attributes.\n       @kwarg lam: Longitude (C{radians}), required if C{B{phi_ll} is radians}, ignored otherwise.\n       @kwarg name: Optional name (C{str}).\n\n       @return: A L{Vector3Tuple}C{(x, y, z)}.\n\n       @see: Function L{latlon2n_xyz}.\n\n       @note: These are C{n-vector} x, y and z components, I{NOT geocentric} x, y and z (ECEF) coordinates!\n    '''\n    phi = phi_ll\n    if lam is None:\n        try:\n            phi, lam = phi_ll.philam\n        except AttributeError:\n            phi = phi_ll.phi\n            lam = phi_ll.lam\n    return latlon2n_xyz(degrees(phi), degrees(lam), **name)\n\n\ndef _trilaterate5(p1, d1, p2, d2, p3, d3, area=True, eps=EPS1, radius=R_M, wrap=False):  # MCCABE 13\n    '''(INTERNAL) Trilaterate three points by I{area overlap} or by I{perimeter intersection} of three circles.\n\n       @note: The B{C{radius}} is needed only for C{n-vectorial} and C{sphericalTrigonometry.LatLon.distanceTo}\n              methods and silently ignored by the C{ellipsoidalExact}, C{-GeodSolve}, C{-Karney} and\n              C{-Vincenty.LatLon.distanceTo} methods.\n    '''\n    p2, p3, w = _unrollon3(p1, p2, p3, wrap)\n    rw = dict(radius=radius, wrap=w)\n\n    r1 = Distance_(distance1=d1)\n    r2 = Distance_(distance2=d2)\n    r3 = Distance_(distance3=d3)\n    m  = 0 if area else (r1 + r2 + r3)\n    pc = 0\n    t  = []\n    for _ in range(3):\n        try:  # intersection of circle (p1, r1) and (p2, r2)\n            c1, c2 = p1.intersections2(r1, p2, r2, wrap=w)\n\n            if area:  # check overlap\n                if c1 is c2:  # abutting\n                    c = c1\n                else:  # nearest point on radical\n                    c = p3.nearestOn(c1, c2, within=True, wrap=w)\n                d = r3 - p3.distanceTo(c, **rw)\n                if d > eps:  # sufficient overlap\n                    t.append((d, c))\n                m = max(m, d)\n\n            else:  # check intersection\n                for c in ((c1,) if c1 is c2 else (c1, c2)):\n                    d = fabs(r3 - p3.distanceTo(c, **rw))\n                    if d < eps:  # below margin\n                        t.append((d, c))\n                    m = min(m, d)\n\n        except IntersectionError as x:\n            if _concentric_ in str(x):  # XXX ConcentricError?\n                pc += 1\n\n        p1, r1, p2, r2, p3, r3 = p2, r2, p3, r3, p1, r1  # rotate\n\n    if t:  # get min, max, points and count ...\n        t = tuple(sorted(t))\n        n = len(t),  # as 1-tuple\n        # ... or for a single trilaterated result,\n        # min *is* max, min- *is* maxPoint and n=1, 2 or 3\n        return Trilaterate5Tuple(t[0] + t[-1] + n)  # *(t[0] + ...)\n\n    elif area and pc == 3:  # all pairwise concentric ...\n        r, p = min((r1, p1), (r2, p2), (r3, p3))\n        m = max(r1, r2, r3)\n        # ... return \"smallest\" point twice, the smallest\n        # and largest distance and n=0 for concentric\n        return Trilaterate5Tuple(float(r), p, float(m), p, 0)\n\n    n, f = (_overlap_, max) if area else (_intersection_, min)\n    t = _COMMASPACE_(_no_(n), '%s %.3g' % (typename(f), m))\n    raise IntersectionError(area=area, eps=eps, wrap=wrap, txt=t)\n\n\n__all__ += _ALL_DOCS(LatLonBase)\n\n# **) MIT License\n#\n# Copyright (C) 2016-2026 -- mrJean1 at Gmail -- All Rights Reserved.\n#\n# Permission is hereby granted, free of charge, to any person obtaining a\n# copy of this software and associated documentation files (the \"Software\"),\n# to deal in the Software without restriction, including without limitation\n# the rights to use, copy, modify, merge, publish, distribute, sublicense,\n# and/or sell copies of the Software, and to permit persons to whom the\n# Software is furnished to do so, subject to the following conditions:\n#\n# The above copyright notice and this permission notice shall be included\n# in all copies or substantial portions of the Software.\n#\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL\n# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR\n# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\n# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n# OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "pygeodesy/lazily.py",
    "content": "\n# -*- coding: utf-8 -*-\n\nu'''Lazily import C{pygeodesy} modules and attributes, based on\nU{lazy_import<https://modutil.ReadTheDocs.io/en/latest/#lazy_import>}\nfrom I{Brett Cannon}'s U{modutil<https://PyPI.org/project/modutil>}.\n\nC{Lazy import} is I{supported only for }U{Python 3.7+\n<https://Snarky.Ca/lazy-importing-in-python-3-7>} and is I{enabled by\ndefault} in U{PyGeodesy 18.11.10<https://PyPI.org/project/PyGeodesy>}\nI{and newer}.\n\nTo I{enable} C{lazy import}, set C{env} variable C{PYGEODESY_LAZY_IMPORT}\nto C{1}, C{2}, C{3} or higher prior to C{import pygeodesy}.  To I{disable}\nC{lazy import}, set C{env} variable C{PYGEODESY_LAZY_IMPORT} to C{0} or\nan empty string.  Use C{2} or higher to print a message for each lazily\nimported module and attribute, similar to C{env} variable C{PYTHONVERBOSE}\nshowing imports.  Using C{3} or higher also shows the importing file name\nand line number.\n\n@note: C{Lazy import} applies only to top-level modules of C{pygeodesy}.\n       The C{lazy import} of a top-level module invariably loads all\n       sub-modules imported by that top-level module.\n\n@note: C{Lazy import} raises a L{LazyAttributeError} or L{LazyImportError}\n       depending on the cause of the error and such errors can occur late,\n       after all initial imports.\n'''\n\nfrom pygeodesy import internals as _internals, interns as _interns, \\\n                     _isfrozen  # DON'T _lazy_import2\n# from pygeodesy.errors import _error_init, _ImmutableError, _xkwds_item2  # _ALL_MODS\nfrom pygeodesy.internals import _caller3, _envPYGEODESY, _headof, printf, _Property_RO, \\\n                                _tailof, typename, _versions  # _getenv, _PYGEODESY_ENV, \\\n#                               _MODS_Base, _MODS.sys_version_info2\nfrom pygeodesy.interns import _attribute_, _by_, _COLONSPACE_, _COMMASPACE_, _DALL_, \\\n                              _DMAIN_, _doesn_t_exist_, _DOT_, _EQUALSPACED_, _from_, \\\n                              _HASH_, _line_, _module_, NN, _no_, _not_, _pygeodesy_, \\\n                              _pygeodesy_abspath_, _SPACE_, _SUB_PACKAGES, _or_, \\\n                              _UNDER_, _version_,  _sys, _intern  # function, _1_\ntry:\n    from importlib import import_module\nexcept ImportError as x:  # Python 2.6-\n    raise ImportError(_COLONSPACE_(x, _versions()))\n# import sys as _sys  # from .interns\n\n_a0                = ()  # PYCHOK empty tuple\n_asSPACED_         = ' as '\n_FOR_DOCS          = _envPYGEODESY('FOR_DOCS')  # for epydoc ...\n_imported_         = 'imported'\n_init__all__       = _FOR_DOCS or _envPYGEODESY('_init__all__', _DALL_) == _DALL_  # PYCHOK exported\n_lazily_           = 'lazily'\n_PYTHON_X_DEV      =  getattr(_sys.flags, 'dev_mode', False)  # PYCHOK Python 3.2+\n_unlazy = _unLazy0 = _isfrozen or _internals._MODS.sys_version_info2 < (3, 7)  # PYCHOK mod.__getattr__ 3.7+\n_WARNINGS_X_DEV    = _envPYGEODESY('WARNINGS') and (_PYTHON_X_DEV or bool(_sys.warnoptions))  # PYCHOK .props\n\n# @module_property[_RO?] <https://GitHub.com/jtushman/proxy_tools/> <https://discuss.Python.org/t/47379>\nisLazy = None  # see @var isLazy in .__init__\n\n\nclass LazyAttributeError(AttributeError):\n    '''Raised if a C{lazily imported} attribute is missing or invalid.\n    '''\n    def __init__(self, *args, **kwds):\n        _ALL_MODS.errors._error_init(AttributeError, self, args, **kwds)\n\n\nclass LazyImportError(ImportError):\n    '''Raised if C{lazy import} is not supported, disabled or failed.\n    '''\n    def __init__(self, *args, **kwds):\n        _ALL_MODS.errors._error_init(ImportError, self, args, **kwds)\n\n\nclass _Dict(dict):\n    '''(INTERNAL) Imports C{dict}.\n    '''\n    _name = NN\n\n    def __getattr__(self, attr):\n        try:\n            return self[attr]\n        except KeyError:\n            return dict.__getattr__(self, attr)\n\n#   def __setattr__(self, attr, value):\n#       if attr in self:\n#           self[attr] = value\n#       else:\n#           dict.__setattr__(self, attr, value)\n\n    def add(self, name, mod_, *subs):\n        '''Add a C{[name] = mod_} item.\n\n           @raise AssertionError: The B{C{name}} already exists\n                                  with a different B{C{mod_}}.\n        '''\n        try:\n            sub = self[name]  # duplicate OK\n            if sub != mod_ and sub not in subs:\n                t = _DOT_(self._name, name)\n                t = _COLONSPACE_(t,       repr(sub))\n                t = _COMMASPACE_(t, _not_(repr(mod_)))\n                raise AssertionError(t)\n        except KeyError:\n            self[name] = mod_\n\n    def _NAME(self, which):\n        self._name = _intern(typename(which).upper())\n\n\nclass _NamedEnum_RO(dict):\n    '''(INTERNAL) C{Read_Only} enum-like C{dict} sub-class.\n    '''\n#   _name = NN  # also first kwd, __init__(_name=...)\n\n    def _DOT_(self, attr):  # PYCHOK no cover\n        return _DOT_(self._name, attr)  # PYCHOK _name\n\n    def __getattr__(self, attr):\n        try:\n            return self[attr]\n        except KeyError:\n            t = self._DOT_(attr)\n            raise LazyAttributeError(t, txt=_doesn_t_exist_)\n\n    def __setattr__(self, attr, value):  # PYCHOK no cover\n        e = _ALL_MODS.errors\n        raise e._ImmutableError(self, attr, value,\n                          Error=LazyAttributeError)\n\n    def enums(self):\n        # Yield all C{(mod_, tuple)} pairs\n        for m, t in dict.items(self):\n            n = m.replace(_UNDER_, _DOT_)\n            if n != m:\n                if m.startswith(_UNDER_):\n                    continue  # skip _name= ...\n                u = m.rstrip(_UNDER_)\n                if u != m:\n                    u = len(u)\n                    n = n[:u] + m[u:]\n            yield n, t\n\n    def fill_D(self, _D, which):\n        # Fill C{_Dict _D}.\n        _D._NAME(which)\n        _a = _D.add\n        for m, t in self.enums():\n            _a(m, _DOT_(m, NN, NN))  # import module\n            for a in t:\n                a, _, as_ = a.partition(_asSPACED_)\n                if as_:  # import attr as attr_\n                    _a(as_, _DOT_(m, a, NN), *_SUB_PACKAGES)\n                else:\n                    _a(a, m)\n        return _D\n\n\ndef _a(*names):\n    '''(INTERNAL) Intern all C{names}.\n    '''\n    return tuple(map(_intern, names)) if names else _a0\n\n\ndef _ALL_ATTRS(*attrs):\n    '''(INTERNAL) Unravel all exported module attributes.\n    '''\n    t = ()\n    for attr in attrs:\n        t += tuple(map(_getattras, attr))\n    return t\n\n\n_ALL_INIT = _a(_pygeodesy_abspath_, _version_)\n\n# __all__ value for most modules, accessible as _ALL_LAZY.<module>\n_ALL_LAZY = _NamedEnum_RO(_name='_ALL_LAZY',\n                         albers=_a('AlbersEqualArea', 'AlbersEqualArea2', 'AlbersEqualArea4',\n                                   'AlbersEqualAreaCylindrical', 'AlbersEqualAreaNorth', 'AlbersEqualAreaSouth',\n                                   'AlbersError', 'Albers7Tuple'),\n                         angles=_a('Ang', 'Deg', 'Lambertian', 'Rad', 'isAng'),\n                       auxilats=_a(),  # module only\n                      azimuthal=_a('AzimuthalError', 'Azimuthal7Tuple',\n                                   'Equidistant', 'EquidistantExact', 'EquidistantGeodSolve', 'EquidistantKarney',\n                                   'Gnomonic', 'GnomonicExact', 'GnomonicGeodSolve', 'GnomonicKarney',\n                                   'LambertEqualArea', 'Orthographic', 'Stereographic',\n                                   'equidistant', 'gnomonic'),\n                         basics=_a('clips', 'copysign0', 'copytype', 'halfs2',\n                                   'int1s', 'isbool', 'isCartesian', 'isclass', 'iscomplex', 'isDEPRECATED', 'isfloat',\n                                   'isidentifier', 'isinstanceof', 'isint', 'isiterable', 'isiterablen', 'isiterabletype',\n                                   'iskeyword', 'isLatLon', 'islistuple', 'isNvector', 'isodd',\n                                   'isscalar', 'issequence', 'isstr', 'issubclassof', 'itemsorted',\n                                   'len2', 'map1', 'map2', 'max2', 'min2', 'neg', 'neg_',\n                                   'signBit', 'signOf', 'splice', 'str2ub', 'ub2str', 'unsigned0'),\n                       booleans=_a('BooleanFHP', 'BooleanGH', 'LatLonFHP', 'LatLonGH',\n                                   'isBoolean'),\n                  cartesianBase=_a('RadiusThetaPhi3Tuple', 'rtp2xyz', 'rtp2xyz_', 'xyz2rtp', 'xyz2rtp_'),\n                          clipy=_a('ClipCS4Tuple', 'ClipFHP4Tuple', 'ClipGH4Tuple', 'ClipLB6Tuple', 'ClipSH3Tuple',\n                                   'clipCS4', 'clipFHP4', 'clipGH4', 'clipLB6', 'clipSH', 'clipSH3'),\n                            css=_a('CassiniSoldner', 'Css', 'CSSError', 'toCss',\n                                   'EasNorAziRk4Tuple', 'EasNorAziRkEqu6Tuple', 'LatLonAziRk4Tuple'),\n                      constants=_a('DIG', 'EPS', 'EPS0', 'EPS02', 'EPS1', 'EPS2', 'EPS4', 'EPS8', 'EPS_2',\n                                   'INF', 'INT0', 'MANT_DIG', 'MAX', 'MAX_EXP', 'MIN', 'MIN_EXP', 'NAN', 'NEG0', 'NINF',\n                                   'OVERFLOW', 'PI', 'PI2', 'PI_2', 'PI3', 'PI_3', 'PI3_2', 'PI4', 'PI_4', 'PI_6',\n                                   'R_FM', 'R_GM', 'R_KM', 'R_M', 'R_MA', 'R_MB', 'R_NM', 'R_QM', 'R_SM', 'R_VM',\n                                   'float_', 'float0_', 'floats_', 'isclose', 'isfinite', 'isinf', 'isint0',\n                                   'isnan', 'isnear0', 'isnear1', 'isnear90', 'isneg', 'isneg0', 'isninf', 'isnon0',\n                                   'remainder'),\n                         datums=_a('Datum', 'Datums', 'Transform', 'Transforms'),\n#                    deprecated=_a(),  # module only\n                            dms=_a('F_D',   'F_DM',   'F_DMS',   'F_DEG',   'F_MIN',   'F_SEC',   'F_D60',   'F__E',   'F__F',   'F__G',   'F_RAD',\n                                   'F_D_',  'F_DM_',  'F_DMS_',  'F_DEG_',  'F_MIN_',  'F_SEC_',  'F_D60_',  'F__E_',  'F__F_',  'F__G_',  'F_RAD_',\n                                   'F_D__', 'F_DM__', 'F_DMS__', 'F_DEG__', 'F_MIN__', 'F_SEC__', 'F_D60__', 'F__E__', 'F__F__', 'F__G__', 'F_RAD__',\n                                   'S_DEG', 'S_MIN', 'S_SEC', 'S_DMS', 'S_RAD', 'S_SEP',\n                                   'bearingDMS', 'clipDegrees', 'clipRadians', 'compassDMS', 'compassPoint',\n                                   'degDMS', 'latDMS', 'latlonDMS', 'latlonDMS_', 'lonDMS', 'normDMS',\n                                   'parseDDDMMSS', 'parseDMS', 'parseDMS2', 'parse3llh', 'parseRad', 'precision', 'toDMS'),\n                           ecef=_a('EcefFarrell21', 'EcefFarrell22', 'EcefKarney', 'EcefSudano', 'EcefUPC', 'EcefVeness', 'EcefYou',\n                                   'EcefError', 'EcefMatrix', 'Ecef9Tuple'),\n                     ecefLocals=_a(),  # module only\n                     elevations=_a('Elevation2Tuple', 'GeoidHeight2Tuple',\n                                   'elevation2', 'geoidHeight2'),\n                       ellipses=_a('Ellipse', 'EllipseError'),\n                ellipsoidalBase=_a(),  # module only\n              ellipsoidalBaseDI=_a(),  # module only\n               ellipsoidalExact=_a(),  # module only\n           ellipsoidalGeodSolve=_a(),  # module only\n              ellipsoidalKarney=_a(),  # module only\n             ellipsoidalNvector=_a(),  # module only\n            ellipsoidalVincenty=_a('VincentyError',),  # nothing else\n                     ellipsoids=_a('a_f2Tuple', 'Curvature2Tuple',\n                                   'Ellipsoid', 'Ellipsoid2', 'Ellipsoids',\n                                   'a_b2e', 'a_b2e2', 'a_b2e22', 'a_b2e32', 'a_b2f', 'a_b2f_', 'a_b2f2', 'a_b2n',\n                                   'a_f2b', 'a_f_2b', 'b_f2a', 'b_f_2a',\n                                   'e2f', 'e22f',\n                                   'f2e2', 'f2e22', 'f2e32', 'f_2f', 'f2f_', 'f2f2', 'f2n', 'n2e2', 'n2f', 'n2f_'),\n                       elliptic=_a('Elliptic', 'EllipticError', 'Elliptic3Tuple'),\n                           epsg=_a('Epsg', 'EPSGError'),\n                         errors=_a('AuxError', 'ClipError', 'CrossError', 'GeodesicError', 'IntersectionError',\n                                   'NumPyError', 'LenError', 'LimitError', 'MGRSError',\n                                   'ParseError', 'PointsError', 'RangeError', 'RhumbError',\n                                   'SciPyError', 'SciPyWarning', 'TRFError', 'TriangleError', 'UnitError', 'VectorError',\n                                   'crosserrors', 'exception_chaining', 'isError', 'limiterrors', 'rangerrors'),\n                            etm=_a('Etm', 'ETMError', 'ExactTransverseMercator',\n                                   'parseETM5', 'toEtm8'),\n                          fmath=_a('Fdot', 'Fdot_', 'Fhorner', 'Fhypot', 'Fpolynomial', 'Fpowers', 'Fcbrt', 'Froot', 'Fsqrt',\n                                   'bqrt', 'cbrt', 'cbrt2', 'euclid', 'euclid_',\n                                   'facos1', 'fasin1', 'fatan', 'fatan1', 'fatan2', 'favg',\n                                   'fdot', 'fdot_', 'fdot3', 'fma', 'fmean', 'fmean_', 'fhorner', 'fidw', 'f2mul_',\n                                   'fpolynomial', 'fpowers', 'fprod', 'frandoms', 'frange', 'freduce', 'fremainder',\n                                   'hypot', 'hypot_', 'hypot1', 'hypot2', 'hypot2_',\n                                   'norm2', 'norm_', 'polar2', 'polar2d',\n                                   'sqrt0', 'sqrt3', 'sqrt_a', 'zcrt', 'zqrt'),\n                          formy=_a('Radical2Tuple',\n                                   'angle2chord', 'antipode', 'antipode_', 'bearing', 'bearing_',\n                                   'chord2angle', 'compassAngle', 'cosineLaw', 'cosineLaw_',\n                                   'equirectangular', 'equirectangular4', 'euclidean', 'euclidean_',\n                                   'excessAbc_', 'excessCagnoli_', 'excessGirard_', 'excessLHuilier_',\n                                   'excessKarney', 'excessKarney_', 'excessQuad', 'excessQuad_',\n                                   'flatLocal', 'flatLocal_', 'flatPolar', 'flatPolar_',\n                                   'hartzell', 'haversine', 'haversine_', 'heightOf', 'heightOrthometric', 'horizon', 'hubeny', 'hubeny_',\n                                   'intersection2', 'intersections2', 'isantipode', 'isantipode_', 'isnormal', 'isnormal_',\n                                   'normal', 'normal_', 'opposing', 'opposing_', 'radical2',\n                                   'thomas', 'thomas_', 'vincentys', 'vincentys_'),\n                        frechet=_a('Frechet', 'FrechetDegrees', 'FrechetError', 'FrechetRadians', 'FrechetCosineLaw',\n                                   'FrechetDistanceTo', 'FrechetEquirectangular', 'FrechetEuclidean', 'FrechetExact',\n                                   'FrechetFlatLocal', 'FrechetFlatPolar', 'FrechetHaversine', 'FrechetHubeny', 'FrechetKarney',\n                                   'FrechetThomas', 'FrechetVincentys', 'Frechet6Tuple',\n                                   'frechet_'),\n                         fstats=_a('Fcook', 'Flinear', 'Fwelford'),\n                          fsums=_a('Fsum', 'DivMod2Tuple', 'Fsum2Tuple', 'ResidualError',\n                                   'f2product', 'fsum', 'fsum_', 'fsumf_', 'fsum1', 'fsum1_', 'fsum1f_', 'nonfiniterrors'),\n                           gars=_a('Garef', 'GARSError'),\n                      geodesici=_a('Intersectool', 'Intersectool5Tuple', 'Intersect7Tuple',\n                                   'Intersector',  'Intersector5Tuple',  'Middle5Tuple', 'XDict'),\n                      geodesicw=_a('Geodesic', 'GeodesicLine', 'Geodesic_WGS84'),\n                      geodesicx=_a('gx', 'gxarea', 'gxbases', 'gxline',  # modules\n                                   'GeodesicAreaExact', 'GeodesicExact', 'GeodesicLineExact', 'PolygonArea'),\n                      geodsolve=_a('GeodesicSolve', 'GeodesicLineSolve', 'GeodSolve12Tuple'),\n                     geod3solve=_a('Geodesic3Solve', 'GeodesicLine3Solve', 'Geod3Solve8Tuple', 'Geodesic3Error'),\n                        geohash=_a('Geohash', 'Geohashed', 'GeohashError', 'Neighbors8Dict', 'Resolutions2Tuple', 'Sizes3Tuple'),\n                         geoids=_a('GeoidError', 'GeoidEGM96', 'GeoidG2012B', 'GeoidKarney', 'GeoidPGM', 'egmGeoidHeights',\n                                   'PGMError', 'GeoidHeight5Tuple'),\n                      hausdorff=_a('Hausdorff', 'HausdorffDegrees', 'HausdorffError', 'HausdorffRadians', 'HausdorffCosineLaw',\n                                   'HausdorffDistanceTo', 'HausdorffEquirectangular', 'HausdorffEuclidean', 'HausdorffExact',\n                                   'HausdorffFlatLocal', 'HausdorffFlatPolar', 'HausdorffHaversine', 'HausdorffHubeny',\n                                   'HausdorffKarney', 'HausdorffThomas', 'HausdorffVincentys', 'Hausdorff6Tuple',\n                                   'hausdorff_', 'randomrangenerator'),\n                        heights=_a('HeightCubic', 'HeightError', 'HeightIDWcosineLaw', 'HeightIDWdistanceTo',\n                                   'HeightIDWequirectangular', 'HeightIDWeuclidean', 'HeightIDWexact', 'HeightIDWflatLocal',\n                                   'HeightIDWflatPolar', 'HeightIDWhaversine', 'HeightIDWhubeny', 'HeightIDWkarney', 'HeightIDWthomas',\n                                   'HeightIDWvincentys', 'HeightLinear', 'HeightLSQBiSpline', 'HeightSmoothBiSpline'),\n                      internals=_internals.__all__,\n                        interns=_interns.__all__,\n                          iters=_a('LatLon2PsxyIter', 'PointsIter', 'points2',\n                                   'isNumpy2', 'isPoints2', 'isTuple2', 'iterNumpy2', 'iterNumpy2over'),\n                         karney=_a('Area3Tuple', 'Caps', 'Direct9Tuple', 'GDict', 'Inverse10Tuple'),\n                            ktm=_a('KTMError', 'KTransverseMercator'),\n                     latlonBase=_a('latlon2n_xyz', 'philam2n_xyz'),\n                         lazily=_a('LazyAttributeError', 'LazyImportError', 'isLazy'),\n                            lcc=_a('Conic', 'Conics', 'Lcc', 'LCCError', 'toLcc'),\n                            ltp=_a('Attitude', 'AttitudeError', 'ChLV', 'ChLVa', 'ChLVe', 'Frustum',\n                                   'LocalCartesian', 'LocalError', 'Ltp', 'tyr3d'),\n                      ltpTuples=_a('Aer', 'Aer4Tuple', 'Attitude4Tuple',\n                                   'ChLVEN2Tuple', 'ChLV9Tuple', 'ChLVYX2Tuple', 'ChLVyx2Tuple',\n                                   'Enu', 'Enu4Tuple', 'Footprint5Tuple', 'Local9Tuple', 'Los',\n                                   'Ned', 'Ned4Tuple', 'Uvw', 'Uvw3Tuple', 'XyzLocal', 'Xyz4Tuple'),\n                           mgrs=_a('Mgrs', 'parseMGRS', 'toMgrs', 'Mgrs4Tuple', 'Mgrs6Tuple'),\n                          named=_a('ADict',\n                                   'callername', 'classname', 'classnaming', 'modulename',\n                                   'nameof', 'notImplemented', 'notOverloaded'),\n                    namedTuples=_a('Bearing2Tuple', 'Bounds2Tuple', 'Bounds4Tuple',\n                                   'Circle4Tuple', 'Destination2Tuple', 'Destination3Tuple',\n                                   'Distance2Tuple', 'Distance3Tuple', 'Distance4Tuple',\n                                   'EasNor2Tuple', 'EasNor3Tuple', 'Ellipse5Tuple',\n                                   'Forward4Tuple', 'Intersection3Tuple',\n                                   'LatLon2Tuple', 'LatLon3Tuple', 'LatLon4Tuple',\n                                   'LatLonDatum3Tuple', 'LatLonDatum5Tuple',\n                                   'LatLonPrec3Tuple', 'LatLonPrec5Tuple',\n                                   'NearestOn2Tuple', 'NearestOn3Tuple', 'NearestOn6Tuple', 'NearestOn8Tuple',\n                                   'PhiLam2Tuple', 'PhiLam3Tuple', 'PhiLam4Tuple', 'Point3Tuple', 'Points2Tuple',\n                                   'Reverse4Tuple', 'Triangle7Tuple', 'Triangle8Tuple', 'Trilaterate5Tuple',\n                                   'UtmUps2Tuple', 'UtmUps5Tuple', 'UtmUps8Tuple', 'UtmUpsLatLon5Tuple',\n                                   'Vector2Tuple', 'Vector3Tuple', 'Vector4Tuple'),\n                    nvectorBase=_a('NorthPole', 'SouthPole', 'n_xyz2latlon', 'n_xyz2philam'),\n                           osgr=_a('Osgr', 'OSGRError', 'parseOSGR', 'toOsgr'),\n                         points=_a('LatLon_', 'LatLon2psxy', 'Numpy2LatLon', 'Shape2Tuple', 'Tuple2LatLon',\n                                   'areaOf', 'boundsOf', 'centroidOf', 'fractional',\n                                   'isclockwise', 'isconvex', 'isconvex_', 'isenclosedBy', 'ispolar',\n                                   'luneOf', 'nearestOn5', 'perimeterOf', 'quadOf'),\n                          props=_a('Property', 'Property_RO', 'property_doc_',\n                                   'property_RO', 'property_ROnce', 'property_ROver',\n                                   'deprecated_class', 'deprecated_function', 'deprecated_method',\n                                   'deprecated_Property_RO', 'deprecated_property_RO', 'DeprecationWarnings'),\n                     resections=_a('Collins5Tuple', 'ResectionError', 'Survey3Tuple', 'Tienstra7Tuple',\n                                   'TriAngle5Tuple', 'TriSide2Tuple', 'TriSide4Tuple',\n                                   'cassini', 'collins5', 'pierlot', 'pierlotx', 'tienstra7',\n                                   'snellius3', 'wildberger3',\n                                   'triAngle', 'triAngle5', 'triArea', 'triSide', 'triSide2', 'triSide4'),\n                          rhumb=_a(),  # module only\n                     rhumb_aux_=_a('RhumbAux', 'RhumbLineAux'),\n                      rhumb_ekx=_a('Rhumb', 'RhumbLine'),\n                    rhumb_solve=_a('RhumbSolve', 'RhumbLineSolve', 'RhumbSolve7Tuple', 'Rhumb8Tuple'),  # in .karney\n                  sphericalBase=_a(),  # module only\n               sphericalNvector=_a(),  # module only\n          sphericalTrigonometry=_a(),  # module only\n                       simplify=_a('simplify1', 'simplifyRDP', 'simplifyRW', 'simplifyVW'),\n                      solveBase=_a(),  # module only\n                        streprs=_a('anstr', 'attrs', 'enstr2', 'fstr', 'fstrzs', 'hstr', 'instr',\n                                   'lrstrip', 'pairs', 'reprs', 'strs', 'unstr'),\n                            trf=_a('RefFrame', 'RefFrames', 'TransformXform', 'TRFXform', 'TRFXform7Tuple',\n                                   'date2epoch', 'epoch2date', 'trfTransform0', 'trfTransforms', 'trfXform'),\n                      triaxials=_a(),  # module only\n                triaxials_bases=_a('LLK', 'TriaxialError'),\n           triaxials_conformal3=_a('BetOmgGam5Tuple',\n                                   'Conformal3', 'Conformal3B', 'Conformal3Sphere', 'Conformal5Tuple'),\n            triaxials_triaxial3=_a('BetOmgAlp5Tuple', 'Cartesian5Tuple', 'PhiLamZet5Tuple',\n                                   'Triaxial3', 'Triaxial3B', 'Triaxial3s'),\n            triaxials_triaxial5=_a('BetaOmega2Tuple', 'BetaOmega3Tuple',\n                                   'Conformal', 'ConformalSphere', 'Conformal2Tuple',\n                                   'Triaxial', 'Triaxial_', 'Triaxials', 'hartzell4', 'height4'),\n                          units=_a('Azimuth', 'Band', 'Bearing', 'Bearing_', 'Bool',\n                                   'Degrees', 'Degrees_', 'Degrees2', 'Distance', 'Distance_', 'Easting', 'Epoch',\n                                   'Feet', 'FIx', 'Float_', 'Height', 'Height_', 'HeightX', 'Int_',\n                                   'Lam', 'Lamd', 'Lat', 'Lat_', 'Lon', 'Lon_',\n                                   'Meter', 'Meter_', 'Meter2', 'Meter3', 'Northing', 'Number_',\n                                   'Phi', 'Phid', 'Precision_', 'Radians', 'Radians_', 'Radians2',\n                                   'Radius_', 'Scalar', 'Scalar_', 'Zone'),\n                      unitsBase=_a('Float', 'Int', 'Radius', 'Str'),\n                            ups=_a('Ups', 'UPSError', 'parseUPS5', 'toUps8', 'upsZoneBand5'),\n                          utily=_a('acos1', 'acre2ha', 'acre2m2', 'agdf', 'asin1',\n                                   'atan1', 'atan1d', 'atan2', 'atan2b', 'atan2d', 'atan2p',\n                                   'chain2m', 'circle4', 'cot', 'cot_', 'cotd', 'cotd_',\n                                   'degrees', 'degrees90', 'degrees180', 'degrees360', 'degrees2grades', 'degrees2m',\n                                   'fathom2m', 'ft2m', 'furlong2m',                  # 'degrees2grades as degrees2gons',\n                                   'gdf', 'grades', 'grades400', 'grades2degrees', 'grades2radians',\n#                                  'grades as gons', 'grades400 as gons400', 'grades2degrees as gons2degrees', 'grades2radians as gons2radians',\n                                   'ha2acre', 'ha2m2', 'hav', 'km2m',\n                                   'm2acre', 'm2chain', 'm2degrees', 'm2fathom', 'm2ft', 'm2furlong',\n                                   'm2ha', 'm2km', 'm2NM', 'm2radians', 'm2SM', 'm2toise', 'm2yard',\n                                   'NM2m', 'radians', 'radiansPI', 'radiansPI2', 'radiansPI_2', 'radians2m',\n                                   'sincos2', 'SinCos2', 'sincos2_', 'sincos2d', 'sincos2d_', 'sincostan3', 'sincostan3d', 'SM2m',\n                                   'tan', 'tan_', 'tand', 'tand_', 'tan_2', 'tanPI_2_2', 'toise2m', 'truncate',\n                                   'unroll180', 'unrollPI',\n                                   'wrap90', 'wrap180', 'wrap360', 'wrapPI_2', 'wrapPI', 'wrapPI2', 'wrap_normal',\n                                   'yard2m'),\n                            utm=_a('Utm', 'UTMError', 'parseUTM5', 'toUtm8', 'utmZoneBand5'),\n                         utmups=_a('UtmUps', 'UTMUPSError', 'parseUTMUPS5', 'toUtmUps8',\n                                   'utmupsValidate', 'utmupsValidateOK', 'utmupsZoneBand5'),\n                     utmupsBase=_a(),  # module only\n                       vector2d=_a('Circin6Tuple', 'Circum3Tuple', 'Circum4Tuple', 'Meeus2Tuple', 'Radii11Tuple', 'Soddy4Tuple', 'Triaxum5Tuple',\n                                   'circin6', 'circum3', 'circum4', 'circum4_', 'meeus2', 'radii11', 'soddy4', 'triaxum5', 'trilaterate2d2'),\n                       vector3d=_a('Vector3d', 'intersection3d3', 'iscolinearWith', 'nearestOn', 'nearestOn6', 'parse3d',\n                                   'trilaterate3d2'),\n                   vector3dBase=_a(),  # module only\n                    webmercator=_a('Wm', 'WebMercatorError', 'parseWM', 'toWm', 'EasNorRadius3Tuple'),\n                           wgrs=_a('Georef', 'WGRSError'),)\n\n_ALL_DEPRECATED = _NamedEnum_RO(_name='_ALL_DEPRECATED',\n                           deprecated=_a('bases', 'datum', 'nvector',  # DEPRECATED modules and ...\n                                         'rhumbaux', 'rhumbBase', 'rhumbsolve', 'rhumbx'),  # ... names\n                     deprecated_bases=_a('LatLonHeightBase', 'points2'),\n                   deprecated_classes=_a('ClipCS3Tuple', 'EasNorExact4Tuple', 'EcefCartesian', 'Fn_rt',\n                                         'FrechetCosineAndoyerLambert', 'FrechetCosineForsytheAndoyerLambert',\n                                         'HausdorffCosineAndoyerLambert', 'HausdorffCosineForsytheAndoyerLambert',\n                                         'HeightIDW', 'HeightIDW2', 'HeightIDW3', 'HeightIDWcosineAndoyerLambert',\n                                         'HeightIDWcosineForsytheAndoyerLambert', 'Helmert7Tuple',\n                                         'JacobiConformal', 'JacobiConformalSpherical', 'Jacobi2Tuple',\n                                         'Lam_', 'LatLonExact4Tuple', 'NearestOn4Tuple', 'Ned3Tuple',\n                                         'Phi_', 'RefFrameError', 'Rhumb7Tuple', 'RhumbOrder2Tuple',\n                                         'Transform7Tuple', 'TriAngle4Tuple', 'UtmUps4Tuple', 'XDist'),\n                 deprecated_consterns=_a('Elliperim', 'EPS1_2', 'MANTIS', 'OK'),\n                     deprecated_datum=_a('Curvature2Tuple', 'Datum',  'Ellipsoid',  'Transform',  # assert\n                                                            'Datums', 'Ellipsoids', 'Transforms',\n                                         'R_FM', 'R_KM', 'R_M', 'R_MA', 'R_MB', 'R_NM', 'R_SM', 'R_VM'),\n                 deprecated_functions=_a('anStr', 'areaof', 'atand', 'bounds',  # most of the DEPRECATED functions, except ellipsoidal ...\n                                         'clipCS3', 'clipDMS', 'clipStr', 'collins', 'copysign',  # ... and spherical flavors\n                                         'cosineAndoyerLambert', 'cosineAndoyerLambert_',\n                                         'cosineForsytheAndoyerLambert', 'cosineForsytheAndoyerLambert_',\n                                         'decodeEPSG2',\n                                         'elliperim', 'elliperim_', 'encodeEPSG', 'enStr2', 'equirectangular_', 'equirectangular3',\n                                         'excessAbc', 'excessGirard', 'excessLHuilier',\n                                         'false2f', 'falsed2f', 'float0', 'fStr', 'fStrzs', 'Fsum2product',\n                                         'hypot3', 'inStr', 'isenclosedby', 'istuplist',\n                                         'joined', 'joined_', 'nearestOn3', 'nearestOn4',\n                                         'parseUTM', 'perimeterof', 'polygon',\n                                         'scalar', 'simplify2', 'simplifyRDPm', 'simplifyVWm',\n                                         'tienstra', 'toUtm', 'triAngle4',\n                                         'unsign0', 'unStr', 'utmZoneBand2'),\n                   deprecated_nvector=_a('LatLonNvectorBase', 'Nvector', 'sumOf', 'NorthPole', 'SouthPole'),)\n\n\nclass _ALL_MODS(_internals._MODS_Base):\n    '''(INTERNAL) Memoized import of any L{pygeodesy} module.\n    '''\n    def __getattr__(self, name):\n        '''Get a C{pygeodesy} module or attribute by B{C{name}}.\n\n           @arg name: Un/qualified module or qualified attribute name (C{str}).\n\n           @raise ImportError: Importing module B{C{name}} failed.\n\n           @raise AttributeError: No attribute named B{C{name}}.\n        '''\n        try:\n            v = _lazy_dict[name]  # package.__dict__\n        except KeyError:\n            v = _lazy_module(name)  # package.__getattr__\n            if _tailof(typename(v)) != name:\n                try:\n                    v = getattr(v, _tailof(name))\n                except AttributeError:\n                    pass  # XXX LazyAttributeError?\n        return v\n\n    def getattr(self, name, *attr_dflt):  # , parent=_pygeodesy_\n        '''Get an attribute of/or a C{pygeodesy} module.\n\n           @arg name: Un/qualified module name (C{str}).\n           @arg attr_dflt: Optional attribute name (C{str}) and\n                           optional default value (any C{type}).\n\n           @return: The C{pygeodesy} module's attribute value.\n\n           @raise ImportError: Importing module B{C{name}} failed.\n\n           @raise AttributeError: No attribute named B{C{attr}}.\n        '''\n        v = self.getmodule(name)\n        if attr_dflt:\n            v = getattr(v, *attr_dflt)\n        return v\n\n    def getmodule(self, name, parent=_pygeodesy_):\n        '''Get a C{pygeodesy} module or the C{__main__}.\n\n           @arg name: Un/qualified module name (C{str}).\n\n           @return: The C{pygeodesy} module.\n\n           @raise ImportError: Importing module B{C{name}} failed.\n        '''\n        if _headof(name) != parent and name != _DMAIN_:\n            name = _DOT_(parent, name)\n        try:\n            return _sys.modules[name]\n        except KeyError:\n            return _getmodule(name, parent)\n\n    def imported(self, name):\n        '''Return module or package C{name} if already imported.\n        '''\n        return _sys.modules.get(name, None)\n\n    def into(self, **mod_DNAME):\n        '''Deferred import of module C{mod} into module C{_DNAME_}\n           and overwrite C{_DNAME_._mod} to module C{mod}, I{once}\n           at the first access of an attribute of module C{mod}.\n        '''\n    #   assert len(mod_DNAME) == 1\n    #   mod, dun = mod_DNAME.popitem()\n\n        class _Into(object):\n\n            def __getattr__(unused, name):\n                m = _getmodinto(mod_DNAME, _Into)\n                return getattr(m, name)\n\n        return _Into()\n\n#   @_Property_RO\n#   def _isBoolean(self):\n#       '''(INTERNAL) Get function C(.booleans.isBoolean}, I{once}.\n#       '''\n#       return self.booleans.isBoolean\n\n    def items(self):  # no module named 'items'\n        '''Yield the modules imported so far.\n        '''\n        for n, m in _sys.modules.items():\n            if _headof(n) == _pygeodesy_:\n                yield n, m\n\n    @_Property_RO\n    def _triaxials_triaxial5(self):\n        '''(INTERNAL) Get module C{triaxial.triaxials}.\n        '''\n        return self.triaxials.triaxial5\n\n_internals._MODS = _ALL_MODS = _ALL_MODS()  # PYCHOK singleton\n\n__all__ = _ALL_LAZY.lazily\n__version__ = '26.03.20'\n\n\ndef _ALL_OTHER(*objs):\n    '''(INTERNAL) Get class and function B{C{objs}} for __all__.\n    '''\n    def _interned(o):  # intern'd base name\n        n = _tailof(typename(o))\n        i =  NN(_UNDER_, n, _UNDER_)  # intern'd\n        return getattr(_interns, i, n)\n\n    return tuple(map(_interned, objs))  # map2\n\n\nif _FOR_DOCS:  # PYCHOK no cover\n    _ALL_DOCS = _ALL_OTHER\n    # (INTERNAL) Only export B{C{objs.__name__}} when making the\n    # docs to force C{epydoc} to include certain classes, methods,\n    # functions and other names in the documentation.  Using the\n    # C{epydoc --private ...} command line option tends to include\n    # too much internal documentation.\nelse:\n    def _ALL_DOCS(*unused):\n        return ()\n\n\ndef _all_deprecates():\n    '''(INTERNAL) Build C{dict} of all deprecated imports and attributes.\n    '''\n    D = _ALL_DEPRECATES\n    if not D:\n        _ALL_DEPRECATED.fill_D(D, _all_deprecates)  # see _all_imports()\n    return D\n\n_ALL_DEPRECATES = _Dict()  # PYCHOK _ALL_DEPRECATED.imports()\n\n\ndef _all_enums():\n    '''(INTERNAL) Yield all C{(mod_, tuple)} pairs for C{__init__._all}.\n    '''\n    # assert _init__all__\n    for mod_t in _ALL_LAZY.enums():\n        yield mod_t\n    if _FOR_DOCS:\n        for mod_t in _ALL_DEPRECATED.enums():\n            yield mod_t\n\n\ndef _all_imports():\n    '''(INTERNAL) Build C{dict} of all lazy imports.\n    '''\n    # imports naming conventions stored below - [<key>] = <from>:\n    #  import <module>                        - [<module>] = <module>\n    #  from <module> import <attr>            - [<attr>] = <module>\n    #  from pygeodesy import <attr>           - [<attr>] = <attr>\n    #  from <module> import <attr> as <name>  - [<name>] = <module>.<attr>.\n    D = _ALL_IMPORTS\n    if not D:\n        _ALL_LAZY.fill_D(D, _all_imports)  # see _all_deprecates()\n    return D\n\n_ALL_IMPORTS = _Dict()  # PYCHOK _ALL_LAZY.imports()\n\n\ndef _all_missing2(_all_):\n    '''(INTERNAL) Get diffs between pygeodesy.__all__ and lazily._all_imports.\n    '''\n    def _diff(one, two):\n        return tuple(sorted(a for a in one if a not in two))\n\n    _alzy = _Dict((a, a) for a in _ALL_INIT)\n    _alzy.update(_all_imports())  # without _all_backups!\n    return ((_DOT_(_lazily_, _all_imports.__name__),  _diff(_all_, _alzy)),\n            (_DOT_(_pygeodesy_, _DALL_), _diff(_alzy.keys(), _all_)))\n\n\ndef _getattras(attr_as):  # test/testDeprecated\n    '''(INTERNAL) Get the C{\"as name\"} or C{\"name\"} of a lazy entry.\n    '''\n    a_, _, as_ = attr_as.partition(_asSPACED_)\n    return as_ or a_.rstrip(_DOT_)\n\n\ndef _getmodattr(m, name, mod=_pygeodesy_):\n    '''(INTERNAL) Get attr C{m.name}.\n    '''\n    try:\n        return getattr(m, name)\n    except AttributeError:\n        name = _DOT_(typename(m, mod), name)\n        # <https://GitHub.com/mrJean1/PyGeodesy/issues/76>\n        raise LazyAttributeError(_no_(_attribute_), txt=name)\n\n\ndef _getmodinto(mod_DNAME, *Intos):\n    '''(INTERNAL) Core of C{_ALL_MODS.into}.\n    '''\n    _MODS = _ALL_MODS\n    mod, dun = _MODS.errors._xkwds_item2(mod_DNAME)\n    _mod = _UNDER_(NN, mod)\n    d = _MODS.getmodule(dun)  # '__main__' OK\n    i = _getmodattr(d, _mod, dun)\n    assert isinstance(i, Intos)\n    m = _MODS.getmodule(mod)\n    setattr(d, _mod, m)  # overwrite C{d._mod}\n    if isLazy and isLazy > 1:\n        t = _SPACE_(_HASH_, _imported_, m.__name__)  # typename(m)\n        _hash_imported(t, _MODS.into.__name__)\n    assert getattr(d, _mod, None) is m\n    return m\n\n\ndef _getmodule(name, *parent):\n    '''(INTERNAL) Wrapper for C{import_module}.\n    '''\n    try:\n        return import_module(name, parent)\n    except ImportError:\n        # <https://GitHub.com/mrJean1/PyGeodesy/issues/76>\n        raise LazyImportError(_no_(_module_), txt=name)\n\n\ndef _hash_imported(t, by_into, up=3):\n    '''(INTERNAL) Helper for C{_lazy_import2} and C{_ALL_MODS.into}.\n    '''\n    if isLazy and isLazy > 2:\n        try:  # see C{internals._caller3}\n            _, f, s = _caller3(up)\n            t = _SPACE_(t, by_into, f, _line_, s)\n        except ValueError:\n            pass\n    printf(t)  # XXX print\n\n\n# def _lazy_attributes(DUNDER_name):\n#     '''(INTERNAL) Return a function to C{B{__name__}.__getattr__(attr)}\n#        on lazily imported modules and sub-modules.\n#     '''\n#     if _unlazy:\n#         raise AssertionError(_COMMASPACE_(DUNDER_name, _not_(_DEPRECATED_)))\n#\n#     def _getattr(attr, *dflt):\n#         try:  # a module name\n#             return _ALL_MODS.getmodule(attr)\n#         except (AttributeError, ImportError):\n#             return _ALL_MODS.getattr(DUNDER_name, attr, *dflt)\n#\n#     return _getattr\n\n\n_lazy_dict = {}  # PYCHOK overwritten by _lazy_import2\n\n\ndef _lazy_import2(pack):  # MCCABE 14\n    '''Check for and set up C{lazy import}.\n\n       @arg pack: The name of the package (C{str}) performing the imports,\n                  to help resolving relative imports, usually C{__package__}.\n\n       @return: 2-Tuple C{(package, getattr)} of the importing package for\n                easy reference within itself and the callable to be set to\n                C{package.__getattr__}.\n\n       @raise LazyAttributeError: The package, module or attribute name is\n                                  invalid or does not exist.\n\n       @raise LazyImportError: Lazy import not supported or not enabled or\n                               an import failed.\n\n       @note: This is I{Brett Cannon}'s function U{modutil.lazy_import\n              <https://GitHub.com/brettcannon/modutil/blob/master/modutil.py>}\n              modified to handle the C{__all__} and C{__dir__} attributes and\n              call C{importlib.import_module(<module>.<name>, ...)} without\n              causing a C{ModuleNotFoundError}.\n\n       @see: The original U{modutil<https://PyPI.org/project/modutil>},\n             U{PEP 562<https://www.Python.org/dev/peps/pep-0562>} and the\n             U{new way<https://Snarky.CA/lazy-importing-in-python-3-7/>}.\n    '''\n    if pack != _pygeodesy_ or _unlazy:  # Python 3.7+ # PYCHOK no cover\n        t = _DOT_(pack, typename(_lazy_import2))\n        raise LazyImportError(_no_(t), txt=_versions())\n\n    package, parent   = _lazy_init2(pack)  # _pygeodesy_\n\n    _DPACKAGE_        = '__package__'\n    _lazily_imported_ = _SPACE_(_HASH_, _lazily_, _imported_, parent)\n\n    sub_packages =  set((parent, NN) + tuple(\n                   _DOT_(parent, s) for s in _SUB_PACKAGES))\n    imports      = _all_imports()\n    deprecates   = _all_deprecates()\n\n    def __getattr__(name):  # __getattr__ only for Python 3.7+\n        # only called once for each undefined pygeodesy attribute\n        mod = imports.get(name, NN) or deprecates.get(name, NN)\n        if mod:\n            # importlib.import_module() implicitly sets sub-modules\n            # on this module as appropriate for direct imports (see\n            # note in the _lazy_import2.__doc__ above).\n            if mod.endswith(_DOT_):  # import mod[.attr] as name\n                mod, _, attr = mod[:-1].rpartition(_DOT_)\n            else:  # from mod import name\n                attr = name\n            v = _getmodule(_DOT_(pack, mod), parent)\n            t =  getattr(v, _DPACKAGE_, None)\n            if t not in sub_packages:  # invalid module package\n                raise LazyImportError(_DOT_(mod, _DPACKAGE_), t)\n            if attr:  # get mod.attr\n                v = _getmodattr(v, attr, mod)\n\n        elif name in (_DALL_,):  # XXX _Ddir_, _Dmembers_?\n            v = _ALL_INIT + tuple(imports.keys())\n        else:  # PYCHOK no cover\n            t = _no_(_module_, _or_, _attribute_)\n            # <https://GitHub.com/mrJean1/PyGeodesy/issues/76>\n            raise LazyAttributeError(t, txt=_DOT_(parent, name))\n\n        setattr(package, name, v)  # package.__dict__[name] = val\n        if isLazy > 1:\n            t = _DOT_(_lazily_imported_, name)\n            if mod and _tailof(mod) != name:\n                t = _SPACE_(t, _from_, _DOT_(NN, mod))\n            _hash_imported(t, _by_)\n\n        return v  # __getattr__\n\n    global _lazy_dict, _lazy_module\n    _lazy_dict   = package.__dict__\n    _lazy_module = __getattr__\n\n    return package, __getattr__  # _lazy_import2\n\n\n# def _lazy_import_all(Dname):\n#     '''(INTERNAL) Return a function mimicking C{from B{__name__} import *},\n#        of all items, see .deprecated.__init__\n#     '''\n#     if _unlazy:\n#         raise AssertionError(_COMMASPACE_(Dname, _not_(_DEPRECATED_)))\n#\n#     _getattr = _lazy_attributes(Dname)  # __name__.__getattr__\n#     _import_start = _lazy_import_star(Dname, ALL_=_ALL_IMPORTS)\n#\n#     def _import_all(attr, *dflt):\n#         return _import_star(Dname) if attr == _DALL_ else \\\n#                _getattr(attr, *dflt)\n#\n#     return _import_all\n\n\ndef _lazy_import_as(DUNDER_name):\n    '''(INTERNAL) Return a function to C{import B{__name__}.mod as mod}\n       I{of modules only}, see .deprecated, .rhumb or get an attribute\n       lazily exported by C{__name__}.\n    '''\n    if _unlazy:\n        return None\n\n    def _import_as(mod):\n        try:\n            return _ALL_MODS.getmodule(_DOT_(DUNDER_name, mod))\n        except ImportError:\n            return _lazy_module(mod)\n\n    return _import_as\n\n\n# def _lazy_import_star(DUNDER_name, ALL_=_ALL_DEPRECATES):\n#     '''(INTERNAL) Return a function to mimick C{from B{__name__} import *},\n#        of all DEPRECATED items, see .deprecated, .testDeprecated\n#     '''\n#     if _unlazy:\n#         raise AssertionError(_COMMASPACE_(DUNDER_name, _not_(_DEPRECATED_)))\n#\n#     def _import_star(_into_):\n#         '''Do C{from B{__name__} import *} inside module C{B{__into__}}.\n#         '''\n#         d  =  dict()\n#         nm = _tailof(DUNDER_name)\n#         _g = _ALL_MODS.getattr  # pygeodesy.__getattr__\n#         for a, m in ALL_.items():\n#             if _headof(m) == nm:\n#                 try:\n#                     d[a] = _g(m, a)\n#                 except (AttributeError, ImportError):\n#                     pass\n#         _sys.modules[_into_].__dict__.update(d)\n#         return d.keys()  # imported names\n#\n#     return _import_star\n\n\ndef _lazy_init2(pack):\n    '''(INTERNAL) Initialize lazy import and set globals C{isLazy} and C{_unLazy0}.\n\n       @arg pack: The name of the package (C{str}) performing the imports,\n                  to resolve relative imports, usually C{__package__}.\n\n       @return: 2-Tuple C{(package, parent)} with the importing C{package}\n                for easy reference within itself and its name aka the\n                C(package)'s C{parent}, same as B{C{pack}}.\n\n       @raise LazyImportError: Lazy import not supported or not enabled,\n                               an import failed or the package name is\n                               invalid or does not exist.\n\n       @note: Global C{isLazy} is set accordingly.\n    '''\n    global isLazy, _unLazy0\n\n    E = _internals._PYGEODESY_ENV('LAZY_IMPORT')\n    z = _internals._getenv(E, _interns._1_)  # 1 default on 3.7+\n    z =  z.strip()  # like PYTHONVERBOSE et.al.\n    isLazy = int(z) if z.isdigit() else (1 if z else 0)\n\n    _unLazy0 = _unlazy or not isLazy  # pre-3.7 or w/o lazy import\n\n    if isLazy < 1:  # invalid, not enabled\n        raise LazyImportError(E, repr(z), txt_not_='enabled')\n    if _sys.flags.verbose:  # PYCHOK no cover\n        isLazy += 1\n\n    try:  # to initialize in Python 3+\n        package = import_module(pack)\n        parent = package.__spec__.parent  # __spec__ only in Python 3.7+\n        if parent != pack:  # assert\n            t = _COMMASPACE_(parent, _not_(pack))  # PYCHOK no cover\n            raise AttributeError(_EQUALSPACED_('parent', t))\n\n    except (AttributeError, ImportError) as x:\n        isLazy = False  # failed\n        z = typename(_lazy_init2)\n        raise LazyImportError(z, pack, cause=x)\n\n    return package, parent\n\n\ndef _lazy_module(name):  # overwritten by _lazy_import2\n    '''(INTERNAL) Get or import a C{pygeodesy} module.\n    '''\n    try:  # most likely ... module has been imported\n        m = _ALL_MODS.getmodule(name)\n    except (AttributeError, ImportError) as x:\n        raise LazyImportError(name, cause=x)\n    _lazy_dict[name] = m  # cache\n    return m\n\n\n# def _lazy_subs(__name__, force=_FOR_DOCS, over=False):\n#     '''(INTERNAL) Return the names of a __name__ package's sub-packages\n#        and update the package's C{__dict__} accordingly.\n#     '''\n#     sm = dict()\n#     if force and __name__ != _DMAIN_:\n#         nm = _tailof(__name__)\n#         _a = _ALL_MODS.getattr\n#         _m = _ALL_MODS.getmodule\n#         d  = _a(__name__, _DDICT_, {})\n#         for n in _a(__name__, _DALL_, ()):\n#             try:  # n is a class name, get its mod name\n#                 m = _a(__name__, n).__module__\n#                 n, s = m.split(_DOT_)[-2:]\n#                 if n == nm and s not in sm:\n#                     m = _m(m)  # == import m as s\n#                     sm[s] = m if over else d.get(s, m)\n#             except (AttributeError, ImportError, ValueError) as x:\n#                 pass\n#         d.update(sm)\n#\n#     return _ALL_OTHER(*sm.values())\n\n\nif __name__ == _DMAIN_:\n\n    def _main():\n        from timeit import timeit\n\n        def t1():\n            from pygeodesy.trf import RefFrame\n            return RefFrame\n\n        def t2():\n            return _ALL_MODS.trf.RefFrame\n\n        assert t1() is t2()  # prime each\n\n        t1 =  timeit(t1, number=1000000)\n        t2 =  timeit(t2, number=1000000)\n        A  =  typename(_ALL_MODS)\n        v  = _versions()\n        printf('%.6f import vs %.6f %s: %.2fX, %s', t1, t2, A, (t1 / t2), v)\n\n    _main()\n\n# % python3.14 -W ignore -m pygeodesy.lazily\n# 0.061219 import vs 0.047896 _ALL_MODS: 1.28X, pygeodesy 25.12.6 Python 3.14.0 64bit arm64 macOS 26.1\n\n# % python3.13 -W ignore -m pygeodesy.lazily\n# 0.054235 import vs 0.052469 _ALL_MODS: 1.03X, pygeodesy 25.4.24 Python 3.13.3 64bit arm64 macOS 15.4\n\n# % python2 -m pygeodesy.lazily\n# 0.653715 import vs 0.321318 _ALL_MODS: 2.03X, pygeodesy 25.4.24 Python 2.7.18 64bit arm64_x86_64 macOS 10.16\n\n# % python3.13 -W ignore -m pygeodesy.lazily\n# 0.106602 import vs 0.078136 _ALL_MODS: 1.36X, pygeodesy 24.10.24 Python 3.13.0 64bit arm64 macOS 14.6.1\n\n# % python3.12 -W ignore -m pygeodesy.lazily\n# 0.138844 import vs 0.080458 _ALL_MODS: 1.73X, pygeodesy 24.10.24 Python 3.12.7 64bit arm64 macOS 14.6.1\n\n# % python3.11 -W ignore -m pygeodesy.lazily\n# 0.387520 import vs 0.254229 _ALL_MODS: 1.52X, pygeodesy 24.10.24 Python 3.11.5 64bit arm64 macOS 14.6.1\n\n# % python3.10 -W ignore -m pygeodesy.lazily\n# 0.371269 import vs 0.272897 _ALL_MODS: 1.36X, pygeodesy 24.10.24 Python 3.10.8 64bit arm64 macOS 14.6.1\n\n# % python3.8 -W ignore -m pygeodesy.lazily\n# 0.555572 import vs 0.370304 _ALL_MODS: 1.50X, pygeodesy 24.10.24 Python 3.8.10 64bit arm64_x86_64 macOS 10.16\n\n# % python2 -m pygeodesy.lazily\n# 1.160292 import vs 0.490279 _ALL_MODS: 2.37X, pygeodesy 24.10.24 Python 2.7.18 64bit arm64_x86_64 macOS 10.16\n\n# **) MIT License\n#\n# Copyright (C) 2018-2026 -- mrJean1 at Gmail -- All Rights Reserved.\n#\n# Permission is hereby granted, free of charge, to any person obtaining a\n# copy of this software and associated documentation files (the \"Software\"),\n# to deal in the Software without restriction, including without limitation\n# the rights to use, copy, modify, merge, publish, distribute, sublicense,\n# and/or sell copies of the Software, and to permit persons to whom the\n# Software is furnished to do so, subject to the following conditions:\n#\n# The above copyright notice and this permission notice shall be included\n# in all copies or substantial portions of the Software.\n#\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL\n# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR\n# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\n# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n# OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "pygeodesy/lcc.py",
    "content": "\n# -*- coding: utf-8 -*-\n\nu'''Lambert Conformal Conic (LCC) projection.\n\nLambert conformal conic projection for 1- or 2-Standard Parallels classes L{Conic}, L{Conics} registry, L{LCCError}\nand position class L{Lcc}.\n\nSee U{LCC<https://WikiPedia.org/wiki/Lambert_conformal_conic_projection>}, U{Lambert\nConformal Conic to Geographic Transformation Formulae\n<https://www.Linz.govt.NZ/data/geodetic-system/coordinate-conversion/projection-conversions/lambert-conformal-conic-geographic>},\nU{Lambert Conformal Conic Projection<https://MathWorld.Wolfram.com/LambertConformalConicProjection.html>}\nand John P. Snyder U{'Map Projections - A Working Manual'<https://Pubs.USGS.gov/pp/1395/report.pdf>}, 1987, pp 107-109.\n\n@var Conics.Be08Lb: Conic(name='Be08Lb', lat0=50.797815, lon0=4.35921583, par1=49.8333339, par2=51.1666672, E0=649328, N0=665262, k0=1, SP=2, datum=Datum(name='GRS80', ellipsoid=Ellipsoids.GRS80, transform=Transforms.WGS84),\n@var Conics.Be72Lb: Conic(name='Be72Lb', lat0=90, lon0=4.3674867, par1=49.8333339, par2=51.1666672, E0=150000.013, N0=5400088.438, k0=1, SP=2, datum=Datum(name='NAD83', ellipsoid=Ellipsoids.GRS80, transform=Transforms.NAD83),\n@var Conics.Fr93Lb: Conic(name='Fr93Lb', lat0=46.5, lon0=3, par1=49, par2=44, E0=700000, N0=6600000, k0=1, SP=2, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84),\n@var Conics.MaNLb: Conic(name='MaNLb', lat0=33.3, lon0=-5.4, par1=31.73, par2=34.87, E0=500000, N0=300000, k0=1, SP=2, datum=Datum(name='NTF', ellipsoid=Ellipsoids.Clarke1880IGN, transform=Transforms.NTF),\n@var Conics.MxLb: Conic(name='MxLb', lat0=12, lon0=-102, par1=17.5, par2=29.5, E0=2500000, N0=0, k0=1, SP=2, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84),\n@var Conics.PyT_Lb: Conic(name='PyT_Lb', lat0=46.8, lon0=2.33722917, par1=45.8989389, par2=47.6960144, E0=600000, N0=200000, k0=1, SP=2, datum=Datum(name='NTF', ellipsoid=Ellipsoids.Clarke1880IGN, transform=Transforms.NTF),\n@var Conics.USA_Lb: Conic(name='USA_Lb', lat0=23, lon0=-96, par1=33, par2=45, E0=0, N0=0, k0=1, SP=2, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84),\n@var Conics.WRF_Lb: Conic(name='WRF_Lb', lat0=40, lon0=-97, par1=33, par2=45, E0=0, N0=0, k0=1, SP=2, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84)\n'''\n# make sure int/int division yields float quotient, see .basics\nfrom __future__ import division as _; del _  # noqa: E702 ;\n\nfrom pygeodesy.basics import copysign0, _isin, typename, \\\n                            _xinstanceof, _xsubclassof\nfrom pygeodesy.constants import EPS, EPS02, PI_2, _float as _F, \\\n                               _0_0, _0_5, _1_0, _2_0, _90_0\nfrom pygeodesy.ellipsoidalBase import LatLonEllipsoidalBase as _LLEB\nfrom pygeodesy.datums import Datums, _ellipsoidal_datum\nfrom pygeodesy.errors import _IsnotError, _ValueError\nfrom pygeodesy.fmath import hypot, _ALL_LAZY\n# from pygeodesy.internals import typename  # from .basics\nfrom pygeodesy.interns import NN, _COMMASPACE_, _DMAIN_, _ellipsoidal_, _GRS80_, \\\n                             _k0_, _lat0_, _lon0_, _m_, _NAD83_, _NTF_, _SPACE_, \\\n                             _WGS84_,  _C_  # PYCHOK used!\n# from pygeodesy.lazily import _ALL_LAZY  # from .fmath\nfrom pygeodesy.named import _lazyNamedEnumItem as _lazy, _name2__, _NamedBase, \\\n                    _NamedEnum, _NamedEnumItem, _xnamed\nfrom pygeodesy.namedTuples import EasNor3Tuple, LatLonDatum3Tuple, \\\n                                  LatLon2Tuple, _LL4Tuple, PhiLam2Tuple\nfrom pygeodesy.props import deprecated_method, Property, Property_RO, _update_all\nfrom pygeodesy.streprs import Fmt, _fstrENH2, _xzipairs\nfrom pygeodesy.units import Easting, Height, _heigHt,  Lamd, Northing, Phid, \\\n                            Scalar_\nfrom pygeodesy.utily import atan1, degrees90, degrees180, sincos2, tanPI_2_2\n\nfrom math import atan, fabs, log, radians, sin, sqrt\n\n__all__ = _ALL_LAZY.lcc\n__version__ = '25.08.31'\n\n_E0_   = 'E0'\n_N0_   = 'N0'\n_par1_ = 'par1'\n_par2_ = 'par2'\n_SP_   = 'SP'\n\n\nclass Conic(_NamedEnumItem):\n    '''Lambert conformal conic projection (1- or 2-SP).\n    '''\n    _auth  = NN    # authorization (C{str})\n    _datum = None  # datum (L{Datum})\n    _name  = NN    # Conic.__name__, set below\n\n    _e  = _0_0  # ellipsoid eccentricity (C{float})\n    _E0 = _0_0  # false easting (C{float})\n    _k0 = _1_0  # scale factor (C{float})\n    _N0 = _0_0  # false northing (C{float})\n    _SP =  0    # 1- or 2-SP (C{int})\n\n    _opt3 = _0_0  # optional, longitude (C{radians})\n    _par1 = _0_0  # 1st std parallel (C{radians})\n    _par2 = _0_0  # 2nd std parallel (C{radians})\n    _phi0 = _0_0  # origin lat (C{radians})\n    _lam0 = _0_0  # origin lon (C{radians})\n\n    _aF  = _0_0  # precomputed F (C{float})\n    _n   = _0_0  # precomputed n (C{float})\n    _1_n = _0_0  # precomputed 1 / n (C{float})\n    _r0  = _0_0  # precomputed rho0 (C{float})\n\n    def __init__(self, latlon0, par1, par2=None, E0=0, N0=0,\n                       k0=1, opt3=0, auth=NN, **name):\n        '''New Lambert conformal conic projection.\n\n           @arg latlon0: Origin with (ellipsoidal) datum (C{LatLon}).\n           @arg par1: First standard parallel (C{degrees90}).\n           @kwarg par2: Optional, second standard parallel (C{degrees90}).\n           @kwarg E0: Optional, false easting (C{meter}).\n           @kwarg N0: Optional, false northing (C{meter}).\n           @kwarg k0: Optional scale factor (C{scalar}).\n           @kwarg opt3: Optional meridian (C{degrees180}).\n           @kwarg auth: Optional authentication authority (C{str}).\n           @kwarg name: Optional C{B{name}=NN} for the conic (C{str}).\n\n           @return: A Lambert projection (L{Conic}).\n\n           @raise TypeError: Non-ellipsoidal B{C{latlon0}}.\n\n           @raise ValueError: Invalid B{C{par1}}, B{C{par2}},\n                              B{C{E0}}, B{C{N0}}, B{C{k0}}\n                              or B{C{opt3}}.\n        '''\n        if latlon0 is not None:\n            _xinstanceof(_LLEB, latlon0=latlon0)\n            self._phi0, self._lam0 = latlon0.philam\n\n            self._par1 = Phid(par1=par1)\n            self._par2 = self._par1 if par2 is None else Phid(par2=par2)\n\n            if k0 != 1:\n                self._k0 = Scalar_(k0=k0)\n            if E0:\n                self._E0 = Northing(E0=E0, falsed=True)\n            if N0:\n                self._N0 = Easting(N0=N0, falsed=True)\n            if opt3:\n                self._opt3 = Lamd(opt3=opt3)\n\n            self.toDatum(latlon0.datum)._dup2(self)\n            self._register(Conics, name)\n        elif name:\n            self.name = name\n        if auth:\n            self._auth = str(auth)\n\n    @Property_RO\n    def auth(self):\n        '''Get the authentication authority (C{str}).\n        '''\n        return self._auth\n\n    @deprecated_method\n    def convertDatum(self, datum):\n        '''DEPRECATED, use method L{Conic.toDatum}.'''\n        return self.toDatum(datum)\n\n    @Property_RO\n    def datum(self):\n        '''Get the datum (L{Datum}).\n        '''\n        return self._datum\n\n    @Property_RO\n    def E0(self):\n        '''Get the false easting (C{meter}).\n        '''\n        return self._E0\n\n    @Property_RO\n    def k0(self):\n        '''Get scale factor (C{float}).\n        '''\n        return self._k0\n\n    @Property_RO\n    def lat0(self):\n        '''Get the origin latitude (C{degrees90}).\n        '''\n        return degrees90(self._phi0)\n\n    @Property_RO\n    def latlon0(self):\n        '''Get the central origin (L{LatLon2Tuple}C{(lat, lon)}).\n        '''\n        return LatLon2Tuple(self.lat0, self.lon0, name=self.name)\n\n    @Property_RO\n    def lam0(self):\n        '''Get the central meridian (C{radians}).\n        '''\n        return self._lam0\n\n    @Property_RO\n    def lon0(self):\n        '''Get the central meridian (C{degrees180}).\n        '''\n        return degrees180(self._lam0)\n\n    @Property_RO\n    def N0(self):\n        '''Get the false northing (C{meter}).\n        '''\n        return self._N0\n\n    @Property_RO\n    def name2(self):\n        '''Get the conic and datum names as \"conic.datum\" (C{str}).\n        '''\n        return self._DOT_(self.datum.name)\n\n    @Property_RO\n    def opt3(self):\n        '''Get the optional meridian (C{degrees180}).\n        '''\n        return degrees180(self._opt3)\n\n    @Property_RO\n    def par1(self):\n        '''Get the 1st standard parallel (C{degrees90}).\n        '''\n        return degrees90(self._par1)\n\n    @Property_RO\n    def par2(self):\n        '''Get the 2nd standard parallel (C{degrees90}).\n        '''\n        return degrees90(self._par2)\n\n    @Property_RO\n    def phi0(self):\n        '''Get the origin latitude (C{radians}).\n        '''\n        return self._phi0\n\n    @Property_RO\n    def philam0(self):\n        '''Get the central origin (L{PhiLam2Tuple}C{(phi, lam)}).\n        '''\n        return PhiLam2Tuple(self.phi0, self.lam0, name=self.name)\n\n    @Property_RO\n    def SP(self):\n        '''Get the number of standard parallels (C{int}).\n        '''\n        return self._SP\n\n    def toDatum(self, datum):\n        '''Convert this conic to the given datum.\n\n           @arg datum: Ellipsoidal datum to use (L{Datum}, L{Ellipsoid},\n                       L{Ellipsoid2} or L{a_f2Tuple}).\n\n           @return: Converted conic, unregistered (L{Conic}).\n\n           @raise TypeError: Non-ellipsoidal B{C{datum}}.\n        '''\n        d = _ellipsoidal_datum(datum, name=self.name)\n        E =  d.ellipsoid\n        if not E.isEllipsoidal:\n            raise _IsnotError(_ellipsoidal_, datum=datum)\n\n        c = self\n        if c._e != E.e or c._datum != d:\n\n            c = Conic(None, 0, name=self._name)\n            self._dup2(c)\n            c._datum = d\n            c._e = E.e\n\n            if fabs(c._par1 - c._par2) < EPS:\n                m1 = c._mdef(c._phi0)\n                t1 = c._tdef(c._phi0)\n                t0 = t1\n                k  = 1  # _1_0\n                n  = sin(c._phi0)\n                sp = 1\n            else:\n                m1 = c._mdef(c._par1)\n                m2 = c._mdef(c._par2)\n                t1 = c._tdef(c._par1)\n                t2 = c._tdef(c._par2)\n                t0 = c._tdef(c._phi0)\n                k  = c._k0\n                n  = (log(m1) - log(m2)) \\\n                   / (log(t1) - log(t2))\n                sp = 2\n\n            F = m1 / (n * pow(t1, n))\n\n            c._aF  =  k * E.a * F\n            c._n   =  n\n            c._1_n = _1_0 / n\n            c._r0  =  c._rdef(t0)\n            c._SP  =  sp\n\n        return c\n\n    def toStr(self, prec=8, **name):  # PYCHOK expected\n        '''Return this conic as a string.\n\n           @kwarg prec: Number of (decimal) digits, unstripped (C{int}).\n           @kwarg name: Overriding C{B{name}=NN} (C{str}) or C{None} to\n                        exclude this conic's name.\n\n           @return: Conic attributes (C{str}).\n        '''\n        a = [_lat0_, _lon0_, _par1_, _par2_, _E0_, _N0_, _k0_, _SP_]\n        if self._SP == 1:\n            _ = a.pop(a.index(_par2_))\n        return self._instr(datum=self.datum, prec=prec, *a, **name)\n\n    def _dup2(self, c):\n        '''(INTERNAL) Copy this conic to C{c}.\n\n           @arg c: Duplicate (L{Conic}).\n        '''\n        _update_all(c)\n\n        c._auth  = self._auth\n        c._datum = self._datum\n\n        c._e  = self._e\n        c._E0 = self._E0\n        c._k0 = self._k0\n        c._N0 = self._N0\n        c._SP = self._SP\n\n        c._par1 = self._par1\n        c._par2 = self._par2\n        c._phi0 = self._phi0\n        c._lam0 = self._lam0\n        c._opt3 = self._opt3\n\n        c._aF  = self._aF\n        c._n   = self._n\n        c._1_n = self._1_n\n        c._r0  = self._r0\n\n    def _mdef(self, a):\n        '''(INTERNAL) Compute m(a).\n        '''\n        s, c = sincos2(a)\n        s = _1_0 - (s * self._e)**2\n        return (c / sqrt(s)) if s > EPS02 else _0_0\n\n    def _pdef(self, a):\n        '''(INTERNAL) Compute p(a).\n        '''\n        s = self._e * sin(a)\n        return pow((_1_0 - s) / (_1_0 + s), self._e * _0_5)\n\n    def _rdef(self, t):\n        '''(INTERNAL) Compute r(t).\n        '''\n        return self._aF * pow(t, self._n)\n\n    def _tdef(self, a):\n        '''(INTERNAL) Compute t(lat).\n        '''\n        return max(_0_0, tanPI_2_2(-a) / self._pdef(a))\n\n    def _xdef(self, t_x):\n        '''(INTERNAL) Compute x(t_x).\n        '''\n        return PI_2 - atan(t_x) * _2_0  # XXX + self._phi0\n\n\nConic._name = typename(Conic)\n\n\nclass Conics(_NamedEnum):\n    '''(INTERNAL) L{Conic} registry, I{must} be a sub-class\n       to accommodate the L{_LazyNamedEnumItem} properties.\n    '''\n    def _Lazy(self, lat, lon, datum_name, *args, **kwds):\n        '''(INTERNAL) Instantiate the L{Conic}.\n        '''\n        return Conic(_LLEB(lat, lon, datum=Datums.get(datum_name)), *args, **kwds)\n\nConics = Conics(Conic)  # PYCHOK singleton\n'''Some pre-defined L{Conic}s, all I{lazily} instantiated.'''\nConics._assert(  # <https://SpatialReference.org/ref/sr-org/...>\n#   AsLb   = _lazy('AsLb',   _F(-14.2666667), _F(170), _NAD27_, _0_0, _0_0,\n#                             E0=_F(500000), N0=_0_0, auth='EPSG:2155'),  # American Samoa ... SP=1 !\n    Be08Lb = _lazy('Be08Lb', _F(50.7978150), _F(4.359215833), _GRS80_, _F(49.8333339), _F(51.1666672),\n                              E0=_F(649328.0), N0=_F(665262.0), auth='EPSG:9802'),  # Belgium\n    Be72Lb = _lazy('Be72Lb', _90_0, _F(4.3674867), _NAD83_, _F(49.8333339), _F(51.1666672),\n                              E0=_F(150000.013), N0=_F(5400088.438), auth='EPSG:31370'),  # Belgium\n    Fr93Lb = _lazy('Fr93Lb', _F(46.5), _F(3), _WGS84_, _F(49), _F(44),\n                              E0=_F(700000), N0=_F(6600000), auth='EPSG:2154'),  # RFG93, France\n    MaNLb  = _lazy('MaNLb',  _F(33.3), _F(-5.4), _NTF_, _F(31.73), _F(34.87),\n                              E0=_F(500000), N0=_F(300000)),  # Marocco\n    MxLb   = _lazy('MxLb',   _F(12), _F(-102), _WGS84_, _F(17.5), _F(29.5),\n                              E0=_F(2500000), N0=_0_0, auth='EPSG:2155'),  # Mexico\n    PyT_Lb = _lazy('PyT_Lb', _F(46.8), _F(2.33722917), _NTF_, _F(45.89893890000052), _F(47.69601440000037),\n                              E0=_F(600000), N0=_F(200000), auth='Test'),  # France?\n    USA_Lb = _lazy('USA_Lb', _F(23), _F(-96), _WGS84_, _F(33), _F(45),\n                              E0=_0_0, N0=_0_0),  # Conterminous, contiguous USA?\n    WRF_Lb = _lazy('WRF_Lb', _F(40), _F(-97), _WGS84_, _F(33), _F(45),\n                              E0=_0_0, N0=_0_0, auth='EPSG:4326')  # World\n)\n\n\nclass LCCError(_ValueError):\n    '''Lambert Conformal Conic C{LCC} or other L{Lcc} issue.\n    '''\n    pass\n\n\nclass Lcc(_NamedBase):\n    '''Lambert conformal conic East-/Northing location.\n    '''\n    _conic    =  Conics.WRF_Lb  # Lambert projection (L{Conic})\n    _easting  = _0_0   # Easting (C{float})\n    _height   =  0     # height (C{meter})\n    _northing = _0_0   # Northing (C{float})\n\n    def __init__(self, e, n, h=0, conic=Conics.WRF_Lb, **name):\n        '''New L{Lcc} Lamber conformal conic position.\n\n           @arg e: Easting (C{meter}).\n           @arg n: Northing (C{meter}).\n           @kwarg h: Optional height (C{meter}).\n           @kwarg conic: Optional, the conic projection (L{Conic}).\n           @kwarg name: Optional C{B{name}=NN} (C{str}).\n\n           @return: The Lambert location (L{Lcc}).\n\n           @raise LCCError: Invalid B{C{h}} or invalid or\n                            negative B{C{e}} or B{C{n}}.\n\n           @raise TypeError: If B{C{conic}} is not L{Conic}.\n        '''\n        if not _isin(conic, None, Lcc._conic):\n            self.conic = conic\n        self._easting  = Easting(e,  falsed=conic.E0 > 0, Error=LCCError)\n        self._northing = Northing(n, falsed=conic.N0 > 0, Error=LCCError)\n        if h:\n            self._height = Height(h=h, Error=LCCError)\n        if name:\n            self.name = name\n\n    @Property\n    def conic(self):\n        '''Get the conic projection (L{Conic}).\n        '''\n        return self._conic\n\n    @conic.setter  # PYCHOK setter!\n    def conic(self, conic):\n        '''Set the conic projection (L{Conic}).\n\n           @raise TypeError: Invalid B{C{conic}}.\n        '''\n        _xinstanceof(Conic, conic=conic)\n        if conic != self._conic:\n            _update_all(self)\n            self._conic = conic\n\n#   def dup(self, name=NN, **e_n_h_conic):  # PYCHOK signature\n#       '''Duplicate this location with some attributes modified.\n#\n#          @kwarg e_n_h_conic: Use keyword argument C{B{e}=...}, C{B{n}=...},\n#                              C{B{h}=...} and/or C{B{conic}=...} to override\n#                              the current C{easting}, C{northing} C{height}\n#                               or C{conic} projection, respectively.\n#       '''\n#       def _args_kwds(e=None, n=None, **kwds):\n#           return (e, n), kwds\n#\n#       kwds = _xkwds(e_n_h_conic, e=self.easting, n=self.northing,\n#                                  h=self.height, conic=self.conic,\n#                                  name=self._name__(name))\n#       args, kwds = _args_kwds(**kwds)\n#       return type(self)(*args, **kwds)  # .classof\n\n    @Property_RO\n    def easting(self):\n        '''Get the easting (C{meter}).\n        '''\n        return self._easting\n\n    @Property_RO\n    def height(self):\n        '''Get the height (C{meter}).\n        '''\n        return self._height\n\n    @Property_RO\n    def latlon(self):\n        '''Get the lat- and longitude in C{degrees} (L{LatLon2Tuple}).\n        '''\n        ll = self.toLatLon(LatLon=None, datum=None)\n        return LatLon2Tuple(ll.lat, ll.lon, name=self.name)\n\n    @Property_RO\n    def latlonheight(self):\n        '''Get the lat-, longitude and height (L{LatLon3Tuple}C{(lat, lon, height)}).\n        '''\n        return self.latlon.to3Tuple(self.height)\n\n    @Property_RO\n    def latlonheightdatum(self):\n        '''Get the lat-, longitude in C{degrees} with height and datum (L{LatLon4Tuple}C{(lat, lon, height, datum)}).\n        '''\n        return self.latlonheight.to4Tuple(self.conic.datum)\n\n    @Property_RO\n    def northing(self):\n        '''Get the northing (C{meter}).\n        '''\n        return self._northing\n\n    @Property_RO\n    def philam(self):\n        '''Get the lat- and longitude in C{radians} (L{PhiLam2Tuple}).\n        '''\n        return PhiLam2Tuple(radians(self.latlon.lat),\n                            radians(self.latlon.lon), name=self.name)\n\n    @Property_RO\n    def philamheight(self):\n        '''Get the lat-, longitude in C{radians} and height (L{PhiLam3Tuple}C{(phi, lam, height)}).\n        '''\n        return self.philam.to3Tuple(self.height)\n\n    @Property_RO\n    def philamheightdatum(self):\n        '''Get the lat-, longitude in C{radians} with height and datum (L{PhiLam4Tuple}C{(phi, lam, height, datum)}).\n        '''\n        return self.philamheight.to4Tuple(self.datum)\n\n    @deprecated_method\n    def to3lld(self, datum=None):  # PYCHOK no cover\n        '''DEPRECATED, use method C{toLatLon}.\n\n           @kwarg datum: Optional datum to use, otherwise use this\n                         B{C{Lcc}}'s conic.datum (C{Datum}).\n\n           @return: A L{LatLonDatum3Tuple}C{(lat, lon, datum)}.\n\n           @raise TypeError: If B{C{datum}} is not ellipsoidal.\n        '''\n        if _isin(datum, None, self.conic.datum):\n            r = LatLonDatum3Tuple(self.latlon.lat,\n                                  self.latlon.lon,\n                                  self.conic.datum, name=self.name)\n        else:\n            r = self.toLatLon(LatLon=None, datum=datum)\n            r = LatLonDatum3Tuple(r.lat, r.lon, r.datum, name=r.name)\n        return r\n\n    def toLatLon(self, LatLon=None, datum=None, height=None, **LatLon_kwds):\n        '''Convert this L{Lcc} to an (ellipsoidal) geodetic point.\n\n           @kwarg LatLon: Optional, ellipsoidal class to return the geodetic\n                          point (C{LatLon}) or C{None}.\n           @kwarg datum: Optional datum to use, otherwise use this B{C{Lcc}}'s\n                         conic.datum (L{Datum}, L{Ellipsoid}, L{Ellipsoid2} or\n                         L{a_f2Tuple}).\n           @kwarg height: Optional height for the point, overriding the default height\n                          (C{meter}).\n           @kwarg LatLon_kwds: Optional, additional B{C{LatLon}} keyword arguments,\n                               ignored if C{B{LatLon} is None}.\n\n           @return: The point (B{C{LatLon}}) or if C{B{LatLon} is None}, a\n                    L{LatLon4Tuple}C{(lat, lon, height, datum)}.\n\n           @raise TypeError: If B{C{LatLon}} or B{C{datum}} is not ellipsoidal or\n                             not valid.\n        '''\n        if LatLon:\n            _xsubclassof(_LLEB, LatLon=LatLon)\n\n        c = self.conic\n        if not _isin(datum, None, self.conic.datum):\n            c = c.toDatum(datum)\n\n        e =         self.easting  - c._E0\n        n = c._r0 - self.northing + c._N0\n\n        r_ = copysign0(hypot(e, n), c._n)\n        t_ = pow(r_ / c._aF, c._1_n)\n\n        x = c._xdef(t_)  # XXX c._lam0\n        for self._iteration in range(10):  # max 4 trips\n            p, x = x, c._xdef(t_ * c._pdef(x))\n            if fabs(x - p) < 1e-9:  # XXX EPS too small?\n                break\n        lat = degrees90(x)\n        lon = degrees180((atan1(e, n) + c._opt3) * c._1_n + c._lam0)\n\n        h = _heigHt(self, height)\n        return _LL4Tuple(lat, lon, h, c.datum, LatLon, LatLon_kwds,\n                                               inst=self, name=self.name)\n\n    def toRepr(self, prec=0, fmt=Fmt.SQUARE, sep=_COMMASPACE_, m=_m_, C=False, **unused):  # PYCHOK expected\n        '''Return a string representation of this L{Lcc} position.\n\n           @kwarg prec: Number of (decimal) digits, unstripped (C{int}).\n           @kwarg fmt: Enclosing backets format (C{str}).\n           @kwarg sep: Optional separator between name:values (C{str}).\n           @kwarg m: Optional unit of the height, default meter (C{str}).\n           @kwarg C: Optionally, include name of conic and datum (C{bool}).\n\n           @return: This Lcc as \"[E:meter, N:meter, H:m, C:Conic.Datum]\"\n                   (C{str}).\n        '''\n        t, T = _fstrENH2(self, prec, m)\n        if C:\n            t +=  self.conic.name2,\n            T += _C_,\n        return _xzipairs(T, t, sep=sep, fmt=fmt)\n\n    def toStr(self, prec=0, sep=_SPACE_, m=_m_):  # PYCHOK expected\n        '''Return a string representation of this L{Lcc} position.\n\n           @kwarg prec: Number of (decimal) digits, unstripped (C{int}).\n           @kwarg sep: Optional separator to join (C{str}) or C{None}\n                       to return an unjoined C{tuple} of C{str}s.\n           @kwarg m: Optional height units, default C{meter} (C{str}).\n\n           @return: This Lcc as I{\"easting nothing\"} in C{meter} plus\n                    I{\" height\"} suffixed with B{C{m}} if height is\n                    non-zero (C{str}).\n        '''\n        t, _ = _fstrENH2(self, prec, m)\n        return t if sep is None else sep.join(t)\n\n\ndef toLcc(latlon, conic=Conics.WRF_Lb, height=None, Lcc=Lcc,\n                                             **name_Lcc_kwds):\n    '''Convert an (ellipsoidal) geodetic point to a I{Lambert} location.\n\n       @arg latlon: Ellipsoidal point (C{LatLon}).\n       @kwarg conic: Optional Lambert projection to use (L{Conic}).\n       @kwarg height: Optional height for the point, overriding the\n                      default height (C{meter}).\n       @kwarg Lcc: Class to return the I{Lambert} location (L{Lcc}).\n       @kwarg name_Lcc_kwds: Optional C{B{name}=NN} (C{str}) and optionally,\n                   additional B{C{Lcc}} keyword arguments, ignored if B{C{Lcc}\n                   is None}.\n\n       @return: The I{Lambert} location (L{Lcc}) or if C{B{Lcc} is None},\n                an L{EasNor3Tuple}C{(easting, northing, height)}.\n\n       @raise TypeError: If B{C{latlon}} is not ellipsoidal.\n    '''\n    _xinstanceof(_LLEB, latlon=latlon)\n    name, Lcc_kwds = _name2__(name_Lcc_kwds)\n\n    a, b = latlon.philam\n    c = conic.toDatum(latlon.datum)\n\n    t = c._n * (b - c._lam0) - c._opt3\n    st, ct = sincos2(t)\n\n    r = c._rdef(c._tdef(a))\n    e = c._E0         + r * st\n    n = c._N0 + c._r0 - r * ct\n\n    h = _heigHt(latlon, height)\n    r =  EasNor3Tuple(e, n, h) if Lcc is None else \\\n                  Lcc(e, n, h=h, conic=c, **Lcc_kwds)\n    return _xnamed(r, name) if name else r\n\n\nif __name__ == _DMAIN_:\n    # __doc__ of this file, force all into registry\n    from pygeodesy.internals import _pregistry\n    _pregistry(Conics)\n\n# **) MIT License\n#\n# Copyright (C) 2016-2026 -- mrJean1 at Gmail -- All Rights Reserved.\n#\n# Permission is hereby granted, free of charge, to any person obtaining a\n# copy of this software and associated documentation files (the \"Software\"),\n# to deal in the Software without restriction, including without limitation\n# the rights to use, copy, modify, merge, publish, distribute, sublicense,\n# and/or sell copies of the Software, and to permit persons to whom the\n# Software is furnished to do so, subject to the following conditions:\n#\n# The above copyright notice and this permission notice shall be included\n# in all copies or substantial portions of the Software.\n#\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL\n# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR\n# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\n# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n# OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "pygeodesy/ltp.py",
    "content": "\n# -*- coding: utf-8 -*-\n\nu'''I{Local Tangent Plane} (LTP) and I{local} cartesian coordinates.\n\nI{Local cartesian} and I{local tangent plane} classes L{LocalCartesian}, approximations L{ChLVa}\nand L{ChLVe} and L{Ltp}, L{ChLV}, L{LocalError}, L{Attitude} and L{Frustum}.\n\n@see: U{Local tangent plane coordinates<https://WikiPedia.org/wiki/Local_tangent_plane_coordinates>}\n      and class L{LocalCartesian}, transcoded from I{Charles Karney}'s C++ classU{LocalCartesian\n      <https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1LocalCartesian.html>}.\n'''\n# make sure int/int division yields float quotient, see .basics\nfrom __future__ import division as _; del _  # noqa: E702 ;\n\nfrom pygeodesy.basics import _args_kwds_names, _isin, map1, map2, _xinstanceof, \\\n                             _xsubclassof,  typename   # .datums\nfrom pygeodesy.constants import EPS, INT0, _umod_360, _0_0, _0_01, _0_5, _1_0, \\\n                               _2_0, _60_0, _90_0, _100_0, _180_0, _3600_0, \\\n                               _N_1_0  # PYCHOK used!\n# from pygeodesy.datums import _WGS84  # from .ecef\nfrom pygeodesy.ecef import _EcefBase, EcefKarney, Ecef9Tuple, _llhn4, \\\n                           _xyzn4,  _WGS84\nfrom pygeodesy.errors import _NotImplementedError, _ValueError, _xattr, \\\n                             _xkwds, _xkwds_get, _xkwds_pop2\nfrom pygeodesy.fmath import fabs, fdot, Fdot_, fdot_, Fhorner\nfrom pygeodesy.fsums import _floor, fsumf_\n# from pygeodesy.internals import typename  # from .basics\nfrom pygeodesy.interns import _0_, _COMMASPACE_, _DOT_, _ecef_, _height_, _M_, \\\n                              _invalid_, _lat0_, _lon0_, _name_, _too_\n# from pygeodesy.lazily import _ALL_LAZY  # from vector3d\nfrom pygeodesy.ltpTuples import Attitude4Tuple, ChLVEN2Tuple, ChLV9Tuple, \\\n                                ChLVYX2Tuple, Footprint5Tuple, Local9Tuple, \\\n                                ChLVyx2Tuple, _XyzLocals4, _XyzLocals5, Xyz4Tuple\nfrom pygeodesy.named import _name__, _name2__, _NamedBase, notOverloaded\nfrom pygeodesy.namedTuples import LatLon3Tuple, LatLon4Tuple, Vector3Tuple\nfrom pygeodesy.props import Property, Property_RO, property_doc_, \\\n                            property_ROver, _update_all\nfrom pygeodesy.streprs import Fmt, strs, unstr\nfrom pygeodesy.units import Bearing, Degrees, _isHeight, Meter\nfrom pygeodesy.utily import cotd, _loneg, sincos2d, sincos2d_, tand, tand_, \\\n                            wrap180, wrap360\nfrom pygeodesy.vector3d import _ALL_LAZY, Vector3d\n\n# from math import fabs, floor as _floor  # from .fmath, .fsums\n\n__all__ = _ALL_LAZY.ltp\n__version__ = '25.05.12'\n\n_height0_ = _height_ + _0_\n_narrow_  = 'narrow'\n_wide_    = 'wide'\n\n\nclass Attitude(_NamedBase):\n    '''The pose of a plane or camera in space.\n    '''\n    _alt  = Meter(  alt =_0_0)\n    _roll = Degrees(roll=_0_0)\n    _tilt = Degrees(tilt=_0_0)\n    _yaw  = Bearing(yaw =_0_0)\n\n    def __init__(self, alt_attitude=INT0, tilt=INT0, yaw=INT0, roll=INT0, **name):\n        '''New L{Attitude}.\n\n           @kwarg alt_attitude: Altitude (C{meter}) above earth or a previous attitude\n                      (L{Attitude} or L{Attitude4Tuple}) with the C{B{alt}itude},\n                      B{C{tilt}}, B{C{yaw}} and B{C{roll}}.\n           @kwarg tilt: Pitch, elevation from horizontal (C{degrees180}), negative down\n                        (clockwise rotation along and around the x- or East axis), iff\n                        B{C{alt_attitude}} is C{meter}, ignored otherwise.\n           @kwarg yaw: Bearing, heading (compass C{degrees360}), clockwise from North\n                       (counter-clockwise rotation along and around the z- or Up axis)\n                       iff B{C{alt_attitude}} is C{meter}, ignored otherwise.\n           @kwarg roll: Roll, bank (C{degrees180}), positive to the right and down\n                        (clockwise rotation along and around the y- or North axis), iff\n                        B{C{alt_attitude}} is C{meter}, ignored otherwise.\n           @kwarg name: Optional C{B{name}=NN} C{str}).\n\n           @raise AttitudeError: Invalid B{C{alt_attitude}}, B{C{tilt}}, B{C{yaw}} or\n                                 B{C{roll}}.\n\n           @see: U{Principal axes<https://WikiPedia.org/wiki/Aircraft_principal_axes>} and\n                 U{Yaw, pitch, and roll rotations<http://MSL.CS.UIUC.edu/planning/node102.html>}.\n        '''\n        if _isHeight(alt_attitude):\n            t = Attitude4Tuple(alt_attitude, tilt, yaw, roll)\n        else:\n            try:\n                t = alt_attitude.atyr\n            except AttributeError:\n                raise AttitudeError(alt=alt_attitude, tilt=tilt, yaw=yaw, rol=roll)\n        for n, v in t.items():\n            if v:\n                setattr(self, n, v)\n        n = _name__(name, _or_nameof=t)\n        if n:\n            self.name = n\n\n    @property_doc_(' altitude above earth in C{meter}.')\n    def alt(self):\n        return self._alt\n\n    @alt.setter  # PYCHOK setter!\n    def alt(self, alt):  # PYCHOK no cover\n        a = Meter(alt=alt, Error=AttitudeError)\n        if self._alt != a:\n            _update_all(self)\n            self._alt = a\n\n    altitude = alt\n\n    @Property_RO\n    def atyr(self):\n        '''Return this attitude's alt[itude], tilt, yaw and roll as an L{Attitude4Tuple}.\n        '''\n        return Attitude4Tuple(self.alt, self.tilt, self.yaw, self.roll, name=self.name)\n\n    @Property_RO\n    def matrix(self):\n        '''Get the 3x3 rotation matrix C{R(yaw)·R(tilt)·R(roll)}, aka I{ZYX} (C{float}, row-order).\n\n           @see: Matrix M of case 10 in U{Appendix A\n                 <https://ntrs.NASA.gov/api/citations/19770019231/downloads/19770019231.pdf>}.\n        '''\n        # to follow the definitions of rotation angles alpha, beta and gamma:\n        # negate yaw since yaw is counter-clockwise around the z-axis, swap\n        # tilt and roll since tilt is around the x- and roll around the y-axis\n        sa, ca, sb, cb, sg, cg = sincos2d_(-self.yaw, self.roll, self.tilt)\n        return ((ca * cb, fdot_(ca, sb * sg, -sa, cg), fdot_(ca, sb * cg,  sa, sg)),\n                (sa * cb, fdot_(sa, sb * sg,  ca, cg), fdot_(sa, sb * cg, -ca, sg)),\n                (    -sb,           cb * sg,                     cb * cg))\n\n    @property_doc_(' roll/bank in C{degrees180}, positive to the right and down.')\n    def roll(self):\n        return self._roll\n\n    @roll.setter  # PYCHOK setter!\n    def roll(self, roll):\n        r = Degrees(roll=roll, wrap=wrap180, Error=AttitudeError)\n        if self._roll != r:\n            _update_all(self)\n            self._roll = r\n\n    bank = roll\n\n    def rotate(self, x_xyz, y=None, z=None, Vector=None, **name_Vector_kwds):\n        '''Transform a (local) cartesian by this attitude's matrix.\n\n           @arg x_xyz: X component of vector (C{scalar}) or (3-D) vector (C{Cartesian},\n                       L{Vector3d} or L{Vector3Tuple}).\n           @kwarg y: Y component of vector (C{scalar}), same units as C{scalar} B{C{x}},\n                     ignored otherwise.\n           @kwarg z: Z component of vector (C{scalar}), same units as C{sclar} B{C{x}},\n                     ignored otherwise.\n           @kwarg Vector: Class to return transformed point (C{Cartesian}, L{Vector3d}\n                          or C{Vector3Tuple}) or C{None}.\n           @kwarg name_Vector_kwds: Optional C{B{name}=NN} (C{str}) and optionally,\n                       additional B{C{Vector}} keyword arguments, ignored if C{B{Vector}\n                       is None}.\n\n           @return: A named B{C{Vector}} instance or if C{B{Vector} is None},\n                    a named L{Vector3Tuple}C{(x, y, z)}.\n\n           @raise AttitudeError: Invalid B{C{x_xyz}}, B{C{y}} or B{C{z}}.\n\n           @raise TypeError: Invalid B{C{Vector}} or B{C{name_Vector_kwds}} item.\n\n           @see: U{Yaw, pitch, and roll rotations<http://MSL.CS.UIUC.edu/planning/node102.html>}.\n        '''\n        try:\n            try:\n                xyz = map2(float, x_xyz.xyz3)\n            except AttributeError:\n                xyz = map1(float, x_xyz, y, z)\n        except (TypeError, ValueError) as x:\n            raise AttitudeError(x_xyz=x_xyz, y=y, z=z, cause=x)\n\n        x, y, z = (fdot(r, *xyz) for r in self.matrix)\n        n, kwds = _name2__(name_Vector_kwds, _or_nameof=self)\n        return Vector3Tuple(x, y, z, name=n) if Vector is None else \\\n                     Vector(x, y, z, name=n, **kwds)\n\n    @property_doc_(' tilt/pitch/elevation from horizontal in C{degrees180}, negative down.')\n    def tilt(self):\n        return self._tilt\n\n    @tilt.setter  # PYCHOK setter!\n    def tilt(self, tilt):\n        t = Degrees(tilt=tilt, wrap=wrap180, Error=AttitudeError)\n        if self._tilt != t:\n            _update_all(self)\n            self._tilt = t\n\n    elevation = pitch = tilt\n\n    def toStr(self, prec=6, sep=_COMMASPACE_, **unused):  # PYCHOK signature\n        '''Format this attitude as string.\n\n           @kwarg prec: The C{float} precision, number of decimal digits (0..9).\n                        Trailing zero decimals are stripped for B{C{prec}} values\n                        of 1 and above, but kept for negative B{C{prec}} values.\n           @kwarg sep: Separator to join (C{str}).\n\n           @return: This attitude (C{str}).\n        '''\n        return self.atyr.toStr(prec=prec, sep=sep)\n\n    @Property_RO\n    def tyr3d(self):\n        '''Get this attitude's (3-D) directional vector (L{Vector3d}).\n\n           @see: U{Yaw, pitch, and roll rotations<http://MSL.CS.UIUC.edu/planning/node102.html>}.\n        '''\n        def _r2d(r):\n            return fsumf_(_N_1_0, *r)\n\n        return Vector3d(*map(_r2d, self.matrix), name__=tyr3d)\n\n    @property_doc_(' yaw/bearing/heading in compass C{degrees360}, clockwise from North.')\n    def yaw(self):\n        return self._yaw\n\n    @yaw.setter  # PYCHOK setter!\n    def yaw(self, yaw):\n        y = Bearing(yaw=yaw, Error=AttitudeError)\n        if self._yaw != y:\n            _update_all(self)\n            self._yaw = y\n\n    bearing = heading = yaw  # azimuth\n\n\nclass AttitudeError(_ValueError):\n    '''An L{Attitude} or L{Attitude4Tuple} issue.\n    '''\n    pass\n\n\nclass Frustum(_NamedBase):\n    '''A rectangular pyramid, typically representing a camera's I{field-of-view}\n       (fov) and the intersection with (or projection to) a I{local tangent plane}.\n\n       @see: U{Viewing frustum<https://WikiPedia.org/wiki/Viewing_frustum>}.\n    '''\n    _h_2     = _0_0   # half hfov in degrees\n    _ltp     =  None  # local tangent plane\n    _tan_h_2 = _0_0   # tan(_h_2)\n    _v_2     = _0_0   # half vfov in degrees\n\n    def __init__(self, hfov, vfov, ltp=None, **name):\n        '''New L{Frustum}.\n\n           @arg hfov: Horizontal field-of-view (C{degrees180}).\n           @arg vfov: Vertical field-of-view (C{degrees180}).\n           @kwarg ltp: Optional I{local tangent plane} (L{Ltp}).\n           @kwarg name: Optional C{B{name}=NN} (C{str}).\n\n           @raise LocalError: Invalid B{C{hfov}} or B{C{vfov}}.\n        '''\n        self._h_2 = h = _fov_2(hfov=hfov)\n        self._v_2 =     _fov_2(vfov=vfov)\n\n        self._tan_h_2 = tand(h, hfov_2=h)\n\n        if ltp:\n            self._ltp = _xLtp(ltp)\n        if name:\n            self.name  # PYCHOK effect\n\n    def footprint5(self, alt_attitude, tilt=0, yaw=0, roll=0, z=_0_0, ltp=None, **name):  # MCCABE 15\n        '''Compute the center and corners of the intersection with (or projection\n           to) the I{local tangent plane} (LTP).\n\n           @arg alt_attitude: An altitude (C{meter}) above I{local tangent plane} or\n                              an attitude (L{Attitude} or L{Attitude4Tuple}) with the\n                              C{B{alt}itude}, B{C{tilt}}, B{C{yaw}} and B{C{roll}}.\n           @kwarg tilt: Pitch, elevation from horizontal (C{degrees}), negative down\n                        (clockwise rotation along and around the x- or East axis) iff\n                        B{C{alt_attitude}} is C{meter}, ignored otherwise.\n           @kwarg yaw: Bearing, heading (compass C{degrees}), clockwise from North\n                       (counter-clockwise rotation along and around the z- or Up axis)\n                       iff B{C{alt_attitude}} is C{meter}, ignored otherwise.\n           @kwarg roll: Roll, bank (C{degrees}), positive to the right and down\n                        (clockwise rotation along and around the y- or North axis) iff\n                        B{C{alt_attitude}} is C{meter}, ignored otherwise.\n           @kwarg z: Optional height of the footprint (C{meter}) above I{local tangent plane}.\n           @kwarg ltp: The I{local tangent plane} (L{Ltp}), overriding this\n                       frustum's C{ltp}.\n           @kwarg name: Optional C{B{name}=NN} (C{str}).\n\n           @return: A L{Footprint5Tuple}C{(center, upperleft, upperight, loweright,\n                    lowerleft)} with the C{center} and 4 corners, each an L{Xyz4Tuple}.\n\n           @raise TypeError: Invalid B{C{ltp}}.\n\n           @raise UnitError: Invalid B{C{altitude}}, B{C{tilt}}, B{C{roll}} or B{C{z}}.\n\n           @raise ValueError: If B{C{altitude}} too low, B{C{z}} too high or B{C{tilt}}\n                              or B{C{roll}} -including B{C{vfov}} respectively B{C{hfov}}-\n                              over the horizon.\n\n           @see: U{Principal axes<https://WikiPedia.org/wiki/Aircraft_principal_axes>}.\n        '''\n        def _xy2(a, e, h_2, tan_h_2, r):\n            # left and right corners, or swapped\n            if r < EPS:  # no roll\n                r =  a * tan_h_2\n                l = -r  # noqa: E741 l is ell\n            else:  # roll\n                r, l = tand_(r - h_2, r + h_2, roll_hfov=r)  # noqa: E741 l is ell\n                r *= -a  # negate right positive\n                l *= -a  # noqa: E741 l is ell\n            y = a * cotd(e, tilt_vfov=e)\n            return (l, y), (r, y)\n\n        def _xyz5(b, xy5, z, ltp):\n            # rotate (x, y)'s by bearing, clockwise\n            sc = sincos2d(b)\n            for x, y in xy5:\n                yield Xyz4Tuple(fdot(sc,  x, y),\n                                fdot(sc, -x, y), z, ltp)\n\n        try:\n            a, t, y, r = alt_attitude.atyr\n        except AttributeError:\n            a, t, y, r = alt_attitude, tilt, yaw, roll\n\n        a = Meter(altitude=a)\n        if a < EPS:  # too low\n            raise _ValueError(altitude=a)\n        if z:  # PYCHOK no cover\n            z  = Meter(z=z)\n            a -= z\n            if a < EPS:  # z above a\n                raise _ValueError(altitude_z=a)\n        else:\n            z = _0_0\n\n        b =  Degrees(yaw=y,  wrap=wrap360)  # bearing\n        e = -Degrees(tilt=t, wrap=wrap180)  # elevation, pitch\n        if not EPS < e < _180_0:\n            raise _ValueError(tilt=t)\n        if e > _90_0:\n            e = _loneg(e)\n            b = _umod_360(b + _180_0)\n\n        r = Degrees(roll=r, wrap=wrap180)  # roll center\n        x = (-a * tand(r, roll=r)) if r else _0_0\n        y =   a * cotd(e, tilt=t)  # ground range\n        if fabs(y) < EPS:\n            y = _0_0\n\n        v, h, t = self._v_2, self._h_2, self._tan_h_2\n        # center and corners, clockwise from upperleft, rolled\n        xy5 = ((x, y),) + _xy2(a, e - v,  h,  t, r) \\\n                        + _xy2(a, e + v, -h, -t, r)  # swapped\n        # turn center and corners by yaw, clockwise\n        p = self.ltp if ltp is None else ltp  # None OK\n        return Footprint5Tuple(_xyz5(b, xy5, z, p), **name)  # *_xyz5\n\n    @Property_RO\n    def hfov(self):\n        '''Get the horizontal C{fov} (C{degrees}).\n        '''\n        return Degrees(hfov=self._h_2 * _2_0)\n\n    @Property_RO\n    def ltp(self):\n        '''Get the I{local tangent plane} (L{Ltp}) or C{None}.\n        '''\n        return self._ltp\n\n    def toStr(self, prec=3, fmt=Fmt.F, sep=_COMMASPACE_):  # PYCHOK signature\n        '''Convert this frustum to a \"hfov, vfov, ltp\" string.\n\n           @kwarg prec: Number of (decimal) digits, unstripped (0..8 or C{None}).\n           @kwarg fmt: Optional, C{float} format (C{letter}).\n           @kwarg sep: Separator to join (C{str}).\n\n           @return: Frustum in the specified form (C{str}).\n        '''\n        t = self.hfov, self.vfov\n        if self.ltp:\n            t += self.ltp,\n        t = strs(t, prec=prec, fmt=fmt)\n        return sep.join(t) if sep else t\n\n    @Property_RO\n    def vfov(self):\n        '''Get the vertical C{fov} (C{degrees}).\n        '''\n        return Degrees(vfov=self._v_2 * _2_0)\n\n\nclass LocalError(_ValueError):\n    '''A L{LocalCartesian} or L{Ltp} related issue.\n    '''\n    pass\n\n\nclass LocalCartesian(_NamedBase):\n    '''Conversion between geodetic C{(lat, lon, height)} and I{local\n       cartesian} C{(x, y, z)} coordinates with I{geodetic} origin\n       C{(lat0, lon0, height0)}, transcoded from I{Karney}'s C++ class\n       U{LocalCartesian<https://GeographicLib.SourceForge.io/C++/doc/\n       classGeographicLib_1_1LocalCartesian.html>}.\n\n       The C{z} axis is normal to the ellipsoid, the C{y} axis points due\n       North.  The plane C{z = -height0} is tangent to the ellipsoid.\n\n       The conversions all take place via geocentric coordinates using a\n       geocentric L{EcefKarney}, by default the WGS84 datum/ellipsoid.\n\n       @see: Class L{Ltp}.\n    '''\n    _ecef   = EcefKarney(_WGS84)\n    _Ecef   = EcefKarney\n    _lon00  = INT0  # self.lon0\n    _t0     = None  # origin (..., lat0, lon0, height0, ...) L{Ecef9Tuple}\n    _9Tuple = Local9Tuple\n\n    def __init__(self, latlonh0=INT0, lon0=INT0, height0=INT0, ecef=None, **lon00_name):\n        '''New L{LocalCartesian} converter.\n\n           @kwarg latlonh0: The (geodetic) origin (C{LatLon}, L{LatLon4Tuple}, L{Ltp}\n                            L{LocalCartesian} or L{Ecef9Tuple}) or the C{scalar}\n                            latitude of the (goedetic) origin (C{degrees}).\n           @kwarg lon0: Longitude of the (goedetic) origin (C{degrees}), required if\n                        B{C{latlonh0}} is C{scalar}, ignored otherwise.\n           @kwarg height0: Optional height (C{meter}, conventionally) at the (goedetic)\n                           origin perpendicular to and above (or below) the ellipsoid's\n                           surface, like B{C{lon0}}.\n           @kwarg ecef: An ECEF converter (L{EcefKarney} I{only}), like B{C{lon0}}.\n           @kwarg lon00_name: Optional C{B{name}=NN} (C{str}) and keyword argument\n                        C{B{lon00}=B{lon0}} for the arbitrary I{polar} longitude\n                        (C{degrees}), see method C{reverse} and property C{lon00}\n                        for further details.\n\n           @raise LocalError: If B{C{latlonh0}} not C{LatLon}, L{LatLon4Tuple}, L{Ltp},\n                              L{LocalCartesian} or L{Ecef9Tuple} or B{C{latlonh0}},\n                              B{C{lon0}}, B{C{height0}} or B{C{lon00}} invalid.\n\n           @raise TypeError: Invalid B{C{ecef}} or not L{EcefKarney}.\n\n           @note: If BC{latlonh0} is an L{Ltp} or L{LocalCartesian}, only C{lat0}, C{lon0},\n                  C{height0} and I{polar} C{lon00} are copied, I{not} the ECEF converter.\n        '''\n        self.reset(latlonh0, lon0=lon0, height0=height0, ecef=ecef, **lon00_name)\n\n    def __eq__(self, other):\n        '''Compare this and an other instance.\n\n           @arg other: The other ellipsoid (L{LocalCartesian} or L{Ltp}).\n\n           @return: C{True} if equal, C{False} otherwise.\n        '''\n        return other is self or (isinstance(other, self.__class__) and\n                                            other.ecef == self.ecef and\n                                            other._t0  == self._t0)\n\n    @Property_RO\n    def datum(self):\n        '''Get the ECEF converter's datum (L{Datum}).\n        '''\n        return self.ecef.datum\n\n    @Property_RO\n    def ecef(self):\n        '''Get the ECEF converter (L{EcefKarney}).\n        '''\n        return self._ecef\n\n    def _ecef2local(self, ecef, Xyz, name_Xyz_kwds):  # in _EcefLocal._Ltp_ecef2local\n        '''(INTERNAL) Convert geocentric/geodetic to local, like I{forward}.\n\n           @arg ecef: Geocentric (and geodetic) (L{Ecef9Tuple}).\n           @arg Xyz: An L{XyzLocal}, L{Aer}, L{Enu} or L{Ned} I{class} or C{None}.\n           @arg name_Xyz_kwds: Optional C{B{name}=NN} (C{str}) and optionally,\n                     additional B{C{Xyz}} keyword arguments, ignored if C{B{Xyz}\n                     is None}.\n\n           @return: An C{B{Xyz}(x, y, z, ltp, **B{name_Xyz_kwds}} instance or\n                    if C{B{Xyz} is None}, a L{Local9Tuple}C{(x, y, z, lat, lon,\n                    height, ltp, ecef, M)} with this C{ltp}, B{C{ecef}}\n                    (L{Ecef9Tuple}) converted to this C{datum} and C{M=None},\n                    always.\n\n           @raise TypeError: Invalid B{C{Xyz}} or B{C{name_Xyz_kwds}} item.\n        '''\n        _xinstanceof(Ecef9Tuple, ecef=ecef)\n        if ecef.datum != self.datum:\n            ecef = ecef.toDatum(self.datum)\n        n, kwds = _name2__(name_Xyz_kwds, _or_nameof=ecef)\n        x, y, z =  self.M.rotate(ecef.xyz, *self._t0_xyz)\n        r = Local9Tuple(x, y, z, ecef.lat, ecef.lon, ecef.height,\n                                 self, ecef, None, name=n)\n        if Xyz:\n            _xsubclassof(*_XyzLocals4, Xyz=Xyz)  # Vector3d\n            r = r.toXyz(Xyz=Xyz, name=n, **kwds)\n        return r\n\n    @Property_RO\n    def ellipsoid(self):\n        '''Get the ECEF converter's ellipsoid (L{Ellipsoid}).\n        '''\n        return self.ecef.datum.ellipsoid\n\n    def forward(self, latlonh, lon=None, height=0, M=False, **name):\n        '''Convert I{geodetic} C{(lat, lon, height)} to I{local} cartesian\n           C{(x, y, z)}.\n\n           @arg latlonh: Either a C{LatLon}, L{Ltp}, L{Ecef9Tuple} or C{scalar}\n                         (geodetic) latitude (C{degrees}).\n           @kwarg lon: Optional C{scalar} (geodetic) longitude (C{degrees}) iff\n                       B{C{latlonh}} is C{scalar}, ignored otherwise.\n           @kwarg height: Optional height (C{meter}, conventionally) perpendicular\n                          to and above (or below) the ellipsoid's surface, iff\n                          B{C{latlonh}} is C{scalar}, ignored othewrise.\n           @kwarg M: Optionally, return the I{concatenated} rotation L{EcefMatrix},\n                     iff available (C{bool}).\n           @kwarg name: Optional C{B{name}=NN} (C{str}).\n\n           @return: A L{Local9Tuple}C{(x, y, z, lat, lon, height, ltp, ecef, M)}\n                    with I{local} C{x}, C{y}, C{z}, I{geodetic} C{(lat}, C{lon},\n                    C{height}, this C{ltp}, C{ecef} (L{Ecef9Tuple}) with\n                    I{geocentric} C{x}, C{y}, C{z} (and I{geodetic} C{lat},\n                    C{lon}, C{height}) and the I{concatenated} rotation matrix\n                    C{M} (L{EcefMatrix}) if requested.\n\n           @raise LocalError: If B{C{latlonh}} not C{scalar}, C{LatLon}, L{Ltp},\n                              L{Ecef9Tuple} or invalid or if B{C{lon}} not\n                              C{scalar} for C{scalar} B{C{latlonh}} or invalid\n                              or if B{C{height}} invalid.\n        '''\n        lat, lon, h, n = _llhn4(latlonh, lon, height, Error=LocalError, **name)\n        t = self.ecef._forward(lat, lon, h, n, M=M)\n        x, y, z = self.M.rotate(t.xyz, *self._t0_xyz)\n        m = self.M.multiply(t.M) if M else None\n        return self._9Tuple(x, y, z, lat, lon, h, self, t, m, name=n or self.name)\n\n    @Property_RO\n    def height0(self):\n        '''Get the origin's height (C{meter}).\n        '''\n        return self._t0.height\n\n    @Property_RO\n    def lat0(self):\n        '''Get the origin's latitude (C{degrees}).\n        '''\n        return self._t0.lat\n\n    @Property_RO\n    def latlonheight0(self):\n        '''Get the origin's lat-, longitude and height (L{LatLon3Tuple}C{(lat, lon, height)}).\n        '''\n        return LatLon3Tuple(self.lat0, self.lon0, self.height0, name=self.name)\n\n    def _local2ecef(self, local, nine=False, M=False):\n        '''(INTERNAL) Convert I{local} to geocentric/geodetic, like I{.reverse}.\n\n           @arg local: Local (L{XyzLocal}, L{Enu}, L{Ned}, L{Aer} or L{Local9Tuple}).\n           @kwarg nine: If C{True}, return a 9-, otherwise a 3-tuple (C{bool}).\n           @kwarg M: Include the rotation matrix (C{bool}).\n\n           @return: A I{geocentric} 3-tuple C{(x, y, z)} or if C{B{nine}=True}, an\n                    L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)} with\n                    rotation matrix C{M} (L{EcefMatrix}) if requested.\n        '''\n        _xinstanceof(*_XyzLocals5, local=local)\n        t = self.M.unrotate(local.xyz, *self._t0_xyz)\n        if nine:\n            t = self.ecef.reverse(*t, M=M)\n        return t\n\n    @Property_RO\n    def lon0(self):\n        '''Get the origin's longitude (C{degrees}).\n        '''\n        return self._t0.lon\n\n    @Property\n    def lon00(self):\n        '''Get the arbitrary, I{polar} longitude (C{degrees}).\n        '''\n        return self._lon00\n\n    @lon00.setter  # PYCHOK setter!\n    def lon00(self, lon00):\n        '''Set the arbitrary, I{polar} longitude (C{degrees}).\n        '''\n        # lon00 <https://GitHub.com/mrJean1/PyGeodesy/issues/77>\n        self._lon00 = Degrees(lon00=lon00)\n\n    @Property_RO\n    def M(self):\n        '''Get the rotation matrix (C{EcefMatrix}).\n        '''\n        return self._t0.M\n\n    def reset(self, latlonh0=INT0, lon0=INT0, height0=INT0, ecef=None, **lon00_name):\n        '''Reset this converter, see L{LocalCartesian.__init__} for further details.\n        '''\n        _, name = _xkwds_pop2(lon00_name, lon00=None)  # PYCHOK get **name\n        if isinstance(latlonh0, LocalCartesian):\n            if self._t0:\n                _update_all(self)\n            self._ecef  =  latlonh0.ecef\n            self._lon00 =  latlonh0.lon00\n            self._t0    =  latlonh0._t0\n            n           = _name__(name, _or_nameof=latlonh0)\n        else:\n            n           = _name__(name, _or_nameof=self)\n            lat0, lon0, height0, n = _llhn4(latlonh0, lon0, height0, suffix=_0_,\n                                            Error=LocalError, name=n)\n            if ecef:  # PYCHOK no cover\n                _xinstanceof(self._Ecef, ecef=ecef)\n                _update_all(self)\n                self._ecef = ecef\n            elif self._t0:\n                _update_all(self)\n            self._t0 = self.ecef._forward(lat0, lon0, height0, n, M=True)\n            self.lon00 = _xattr(latlonh0, lon00=_xkwds_get(lon00_name, lon00=lon0))\n        if n:\n            self.rename(n)\n\n    def reverse(self, xyz, y=None, z=None, M=False, **lon00_name):\n        '''Convert I{local} C{(x, y, z)} to I{geodetic} C{(lat, lon, height)}.\n\n           @arg xyz: A I{local} (L{XyzLocal}, L{Enu}, L{Ned}, L{Aer}, L{Local9Tuple}) or\n                     local C{x} coordinate (C{scalar}).\n           @kwarg y: Local C{y} coordinate (C{meter}), iff B{C{xyz}} is C{scalar},\n                     ignored otherwise.\n           @kwarg z: Local C{z} coordinate (C{meter}), iff B{C{xyz}} is C{scalar},\n                     ignored otherwise.\n           @kwarg M: Optionally, return the I{concatenated} rotation L{EcefMatrix}, iff\n                     available (C{bool}).\n           @kwarg lon00_name: Optional C{B{name}=NN} (C{str}) and keyword argument\n                        C{B{lon00}=B{lon0}} for the arbitrary I{polar} longitude\n                        (C{degrees}), overriding see the property C{B{lon00}=B{lon0}}\n                        value.  The I{polar} longitude (C{degrees}) is returned with\n                        I{polar} latitudes C{abs(B{lat0}) == 90} for local C{B{x}=0}\n                        and C{B{y}=0} locations.\n\n           @return: An L{Local9Tuple}C{(x, y, z, lat, lon, height, ltp, ecef, M)} with\n                    I{local} C{x}, C{y}, C{z}, I{geodetic} C{lat}, C{lon}, C{height},\n                    this C{ltp}, an C{ecef} (L{Ecef9Tuple}) with the I{geocentric} C{x},\n                    C{y}, C{z} (and I{geodetic} C{lat}, C{lon}, C{height}) and the\n                    I{concatenated} rotation matrix C{M} (L{EcefMatrix}) if requested.\n\n           @raise LocalError: Invalid B{C{xyz}} or C{scalar} C{x} or B{C{y}} and/or B{C{z}}\n                              not C{scalar} for C{scalar} B{C{xyz}}.\n        '''\n        lon00, name =_xkwds_pop2(lon00_name, lon00=self.lon00)\n        x, y, z, n = _xyzn4(xyz, y, z, _XyzLocals5, Error=LocalError, name=name)\n        c = self.M.unrotate((x, y, z), *self._t0_xyz)\n        t = self.ecef.reverse(*c, M=M, lon00=lon00)\n        m = self.M.multiply(t.M) if M else None\n        return self._9Tuple(x, y, z, t.lat, t.lon, t.height, self, t, m, name=n or self.name)\n\n    @Property_RO\n    def _t0_xyz(self):\n        '''(INTERNAL) Get C{(x0, y0, z0)} as L{Vector3Tuple}.\n        '''\n        return self._t0.xyz\n\n    def toStr(self, prec=9, **unused):  # PYCHOK signature\n        '''Return this L{LocalCartesian} as a string.\n\n           @kwarg prec: Precision, number of (decimal) digits (0..9).\n\n           @return: This L{LocalCartesian} representation (C{str}).\n        '''\n        return self.attrs(_lat0_, _lon0_, _height0_, _M_, _ecef_, _name_, prec=prec)\n\n\nclass Ltp(LocalCartesian):\n    '''A I{local tangent plan} (LTP), a sub-class of C{LocalCartesian} with\n       (re-)configurable ECEF converter.\n    '''\n    _Ecef = _EcefBase\n\n    def __init__(self, latlonh0=INT0, lon0=INT0, height0=INT0, ecef=None, **lon00_name):\n        '''New C{Ltp}, see L{LocalCartesian.__init__} for more details.\n\n           @kwarg ecef: Optional ECEF converter (L{EcefKarney}, L{EcefFarrell21},\n                        L{EcefFarrell22}, L{EcefSudano}, L{EcefVeness} or\n                        L{EcefYou} I{instance}), overriding the default\n                        L{EcefKarney}C{(datum=Datums.WGS84)} for C{scalar}.\n\n           @see: Class L{LocalCartesian<LocalCartesian.__init__>} for further details.\n\n           @raise TypeError: Invalid B{C{ecef}}.\n        '''\n        LocalCartesian.reset(self, latlonh0, lon0=lon0, height0=height0,\n                                             ecef=ecef, **lon00_name)\n\n    @Property\n    def ecef(self):\n        '''Get this LTP's ECEF converter (C{Ecef...} I{instance}).\n        '''\n        return self._ecef\n\n    @ecef.setter  # PYCHOK setter!\n    def ecef(self, ecef):\n        '''Set this LTP's ECEF converter (C{Ecef...} I{instance}).\n\n           @raise TypeError: Invalid B{C{ecef}}.\n        '''\n        _xinstanceof(_EcefBase, ecef=ecef)\n        if self._ecef != ecef:  # PYCHOK no cover\n            self.reset(self._t0)\n            self._ecef = ecef\n\n\nclass _ChLV(object):\n    '''(INTERNAL) Base class for C{ChLV*} classes.\n    '''\n    _03_falsing = ChLVyx2Tuple(0.6e6, 0.2e6)\n#   _92_falsing = ChLVYX2Tuple(2.0e6, 1.0e6)  # _95_ - _03_\n    _95_falsing = ChLVEN2Tuple(2.6e6, 1.2e6)\n\n    def _ChLV9Tuple(self, fw, M, name, *Y_X_h_lat_lon_h):\n        '''(INTERNAL) Helper for C{ChLVa/e.forward} and C{.reverse}.\n        '''\n        if bool(M):  # PYCHOK no cover\n            m =  self.forward if fw else self.reverse  # PYCHOK attr\n            n = _DOT_(*map1(typename, type(self), m))\n            raise _NotImplementedError(unstr(n, M=M), txt=None)\n        t = Y_X_h_lat_lon_h + (self, self._t0, None)  # PYCHOK _t0\n        return ChLV9Tuple(t, name=name)\n\n    @property_ROver\n    def _enh_n_h(self):\n        '''(INTERNAL) Get C{ChLV*.reverse} args[1:4] names, I{once}.\n        '''\n        t = _args_kwds_names(_ChLV.reverse)[1:4]\n        # assert _args_kwds_names( ChLV.reverse)[1:4] == t\n        # assert _args_kwds_names(ChLVa.reverse)[1:4] == t\n        # assert _args_kwds_names(ChLVe.reverse)[1:4] == t\n        return t  # overwrite property_ROver\n\n    def forward(self, latlonh, lon=None, height=0, M=None, **name):  # PYCHOK no cover\n        '''Convert WGS84 geodetic to I{Swiss} projection coordinates.  I{Must be overloaded}.\n\n           @arg latlonh: Either a C{LatLon}, L{Ltp} or C{scalar} (geodetic) latitude (C{degrees}).\n           @kwarg lon: Optional, C{scalar} (geodetic) longitude (C{degrees}) iff B{C{latlonh}} is\n                       C{scalar}, ignored otherwise.\n           @kwarg height: Optional, height, vertically above (or below) the surface of the ellipsoid\n                          (C{meter}) iff B{C{latlonh}} and B{C{lon}} are C{scalar}, ignored otherwise.\n           @kwarg M: If C{True}, return the I{concatenated} rotation L{EcefMatrix} iff available\n                     and for C{ChLV} only, C{None} otherwise (C{bool}).\n           @kwarg name: Optional C{B{name}=NN} (C{str}).\n\n           @return: A L{ChLV9Tuple}C{(Y, X, h_, lat, lon, height, ltp, ecef, M)} with the unfalsed\n                    I{Swiss Y, X} coordinates, I{Swiss h_} height, the given I{geodetic} C{lat},\n                    C{lon} and C{height}, C{ecef} (L{Ecef9Tuple}) at I{Bern, Ch}, rotation matrix\n                    C{M} and C{ltp} this C{ChLV}, C{ChLVa} or C{ChLVe} instance.\n\n           @raise LocalError: Invalid or non-C{scalar} B{C{latlonh}}, B{C{lon}} or B{C{height}}.\n        '''\n        notOverloaded(self, latlonh, lon=lon, height=height, M=M, **name)\n\n    def reverse(self, enh_, n=None, h_=0, M=None, **name):  # PYCHOK no cover\n        '''Convert I{Swiss} projection to WGS84 geodetic coordinates.\n\n           @arg enh_: A Swiss projection (L{ChLV9Tuple}) or the C{scalar}, falsed I{Swiss E_LV95}\n                     or I{y_LV03} easting (C{meter}).\n           @kwarg n: Falsed I{Swiss N_LV85} or I{x_LV03} northing (C{meter}) iff B{C{enh_}} is\n                     C{scalar}, ignored otherwise.\n           @kwarg h_: I{Swiss h'} height (C{meter}) iff B{C{enh_}} and B{C{n}} are C{scalar},\n                      ignored otherwise.\n           @kwarg M: If C{True}, return the I{concatenated} rotation L{EcefMatrix} iff available\n                     and for C{ChLV} only, C{None} otherwise (C{bool}).\n           @kwarg name: Optional C{B{name}=NN} (C{str}).\n\n           @return: A L{ChLV9Tuple}C{(Y, X, h_, lat, lon, height, ltp, ecef, M)} with the unfalsed\n                    I{Swiss Y, X} coordinates, I{Swiss h_} height, the given I{geodetic} C{lat},\n                    C{lon} and C{height}, C{ecef} (L{Ecef9Tuple}) at I{Bern, Ch}, rotation matrix\n                    C{M} and C{ltp} this C{ChLV}, C{ChLVa} or C{ChLVe} instance.\n\n           @raise LocalError: Invalid or non-C{scalar} B{C{enh_}}, B{C{n}} or B{C{h_}}.\n        '''\n        notOverloaded(self, enh_, n=n, h_=h_, M=M, **name)\n\n    @staticmethod\n    def _falsing2(LV95):\n        '''(INTERNAL) Get the C{LV95} or C{LV03} falsing.\n        '''\n        return _ChLV._95_falsing if _isin(LV95, True, 95) else (\n               _ChLV._03_falsing if _isin(LV95, False, 3) else ChLVYX2Tuple(0, 0))\n\n    @staticmethod\n    def _llh2abh_3(lat, lon, h):\n        '''(INTERNAL) Helper for C{ChLVa/e.forward}.\n        '''\n        def _deg2ab(deg, sLL):\n            # convert degrees to arc-seconds\n            def _dms(ds, p, q, swap):\n                d = _floor(ds)\n                t = (ds - d) * p\n                m = _floor(t)\n                s = (t  - m) * p\n                if swap:\n                    d, s = s, d\n                return d + (m + s * q) * q\n\n            s = _dms(deg,  _60_0, _0_01, False)  # deg2sexag\n            s = _dms(  s, _100_0, _60_0, True)   # sexag2asec\n            return (s - sLL) / ChLV._s_ab\n\n        a  = _deg2ab(lat, ChLV._sLat)  # phi', lat_aux\n        b  = _deg2ab(lon, ChLV._sLon)  # lam', lng_aux\n        h_ =  fsumf_(h,  -ChLV.Bern.height, 2.73 * b, 6.94 * a)\n        return a, b, h_\n\n    @staticmethod\n    def _YXh_2abh3(Y, X, h_):\n        '''(INTERNAL) Helper for C{ChLVa/e.reverse}.\n        '''\n        def _YX2ab(YX):\n            return YX * ChLV._ab_m\n\n        a, b = map1(_YX2ab, Y, X)\n        h    = fsumf_(h_, ChLV.Bern.height, -12.6 * a, -22.64 * b)\n        return a, b, h\n\n    def _YXh_n4(self, enh_, n, h_, **name):\n        '''(INTERNAL) Helper for C{ChLV*.reverse}.\n        '''\n        Y, X, h_, name = _xyzn4(enh_, n, h_, (ChLV9Tuple,),\n                         _xyz_y_z_names=self._enh_n_h, **name)\n        if isinstance(enh_, ChLV9Tuple):\n            Y, X = enh_.Y, enh_.X\n        else:  # isscalar(enh_)\n            Y, X = ChLV.unfalse2(Y, X)  # PYCHOK ChLVYX2Tuple\n        return Y, X, h_, name\n\n\nclass ChLV(_ChLV, Ltp):\n    '''Conversion between I{WGS84 geodetic} and I{Swiss} projection coordinates using\n       L{pygeodesy.EcefKarney}'s Earth-Centered, Earth-Fixed (ECEF) methods.\n\n       @see: U{Swiss projection formulas<https://www.SwissTopo.admin.CH/en/maps-data-online/\n             calculation-services.html>}, page 7ff, U{NAVREF<https://www.SwissTopo.admin.CH/en/\n             maps-data-online/calculation-services/navref.html>}, U{REFRAME<https://www.SwissTopo.admin.CH/\n             en/maps-data-online/calculation-services/reframe.html>} and U{SwissTopo Scripts GPS WGS84\n             <-> LV03<https://GitHub.com/ValentinMinder/Swisstopo-WGS84-LV03>}.\n    '''\n    _9Tuple = ChLV9Tuple\n\n    _ab_d =  0.36    # a, b units per degree, ...\n    _ab_m =  1.0e-6  # ... per meter and ...\n    _ab_M = _1_0     # ... per 1,000 Km or 1 Mm\n    _s_d  = _3600_0  # arc-seconds per degree ...\n    _s_ab = _s_d / _ab_d  # ... and per a, b unit\n    _sLat =  169028.66  # Bern, Ch in ...\n    _sLon =   26782.5   # ... arc-seconds ...\n    # lat, lon, height == 46°57'08.66\", 7°26'22.50\", 49.55m (\"new\" 46°57'07.89\", 7°26'22.335\")\n    Bern  = LatLon4Tuple(_sLat / _s_d, _sLon / _s_d, 49.55, _WGS84, name='Bern')\n\n    def __init__(self, latlonh0=Bern, **other_Ltp_kwds):\n        '''New ECEF-based I{WGS84-Swiss} L{ChLV} converter, centered at I{Bern, Ch}.\n\n           @kwarg latlonh0: The I{geodetic} origin and height, overriding C{Bern, Ch}.\n           @kwarg other_Ltp_kwds: Optional, other L{Ltp.__init__} keyword arguments.\n\n           @see: L{Ltp.__init__} for more information.\n        '''\n        Ltp.__init__(self, latlonh0, **_xkwds(other_Ltp_kwds, ecef=None, name=ChLV.Bern.name))\n\n    def forward(self, latlonh, lon=None, height=0, M=None, **name):  # PYCHOK unused M\n        # overloaded for the _ChLV.forward.__doc__\n        return Ltp.forward(self, latlonh, lon=lon, height=height, M=M, **name)\n\n    def reverse(self, enh_, n=None, h_=0, M=None, **name):  # PYCHOK signature\n        # overloaded for the _ChLV.reverse.__doc__\n        Y, X, h_, n = self._YXh_n4(enh_, n, h_, **name)\n        return Ltp.reverse(self, Y, X, h_, M=M, name=n)\n\n    @staticmethod\n    def false2(Y, X, LV95=True, **name):\n        '''Add the I{Swiss LV95} or I{LV03} falsing.\n\n           @arg Y: Unfalsed I{Swiss Y} easting (C{meter}).\n           @arg X: Unfalsed I{Swiss X} northing (C{meter}).\n           @kwarg LV95: If C{True}, add C{LV95} falsing, if C{False} add\n                        C{LV03} falsing, otherwise leave unfalsed.\n           @kwarg name: Optional C{B{name}=NN} (C{str}).\n\n           @return: A L{ChLVEN2Tuple}C{(E_LV95, N_LV95)} or a\n                    L{ChLVyx2Tuple}C{(y_LV03, x_LV03)} with falsed B{C{Y}}\n                    and B{C{X}}, otherwise a L{ChLVYX2Tuple}C{(Y, X)}\n                    with B{C{Y}} and B{C{X}} as-is.\n        '''\n        e, n = t = _ChLV._falsing2(LV95)\n        return t.classof(e + Y, n + X, **name)\n\n    @staticmethod\n    def isLV03(e, n):\n        '''Is C{(B{e}, B{n})} a valid I{Swiss LV03} projection?\n\n           @arg e: Falsed (or unfalsed) I{Swiss} easting (C{meter}).\n           @arg n: Falsed (or unfalsed) I{Swiss} northing (C{meter}).\n\n           @return: C{True} if C{(B{e}, B{n})} is a valid, falsed I{Swiss\n                    LV03}, projection C{False} otherwise.\n        '''\n        # @see: U{Map<https://www.SwissTopo.admin.CH/en/knowledge-facts/\n        #       surveying-geodesy/reference-frames/local/lv95.html>}\n        return 400.0e3 < e < 900.0e3 and 40.0e3 < n < 400.0e3\n\n    @staticmethod\n    def isLV95(e, n, raiser=True):\n        '''Is C{(B{e}, B{n})} a valid I{Swiss LV95} or I{LV03} projection?\n\n           @arg e: Falsed (or unfalsed) I{Swiss} easting (C{meter}).\n           @arg n: Falsed (or unfalsed) I{Swiss} northing (C{meter}).\n           @kwarg raiser: If C{True}, throw a L{LocalError} if B{C{e}} and\n                          B{C{n}} are invalid I{Swiss LV95} nor I{LV03}.\n\n           @return: C{True} or C{False} if C{(B{e}, B{n})} is a valid I{Swiss\n                    LV95} respectively I{LV03} projection, C{None} otherwise.\n        '''\n        if ChLV.isLV03(e, n):\n            return False\n        elif ChLV.isLV03(e - 2.0e6, n - 1.0e6):  # _92_falsing = _95_ - _03_\n            return True\n        elif raiser:  # PYCHOK no cover\n            raise LocalError(unstr(ChLV.isLV95, e=e, n=n))\n        return None\n\n    @staticmethod\n    def unfalse2(e, n, LV95=None, **name):\n        '''Remove the I{Swiss LV95} or I{LV03} falsing.\n\n           @arg e: Falsed I{Swiss E_LV95} or I{y_LV03} easting (C{meter}).\n           @arg n: Falsed I{Swiss N_LV95} or I{x_LV03} northing (C{meter}).\n           @kwarg LV95: If C{True}, remove I{LV95} falsing, if C{False} remove\n                        I{LV03} falsing, otherwise use method C{isLV95(B{e}, B{n})}.\n           @kwarg name: Optional C{B{name}=NN} (C{str}).\n\n           @return: A L{ChLVYX2Tuple}C{(Y, X)} with the unfalsed B{C{e}}\n                    respectively B{C{n}}.\n        '''\n        Y, X = _ChLV._falsing2(ChLV.isLV95(e, n) if LV95 is None else LV95)\n        return ChLVYX2Tuple(e - Y, n - X, **name)\n\n\nclass ChLVa(_ChLV, LocalCartesian):\n    '''Conversion between I{WGS84 geodetic} and I{Swiss} projection coordinates\n       using the U{Approximate<https://www.SwissTopo.admin.CH/en/maps-data-online/\n       calculation-services.html>} formulas, page 13.\n\n       @see: Older U{references<https://GitHub.com/alphasldiallo/Swisstopo-WGS84-LV03>}.\n    '''\n    def __init__(self, name=ChLV.Bern.name):\n        '''New I{Approximate WGS84-Swiss} L{ChLVa} converter, centered at I{Bern, Ch}.\n\n           @kwarg name: Optional C{B{name}=Bern.name} (C{str}).\n        '''\n        LocalCartesian.__init__(self, latlonh0=ChLV.Bern, name=name)\n\n    def forward(self, latlonh, lon=None, height=0, M=None, **name):\n        # overloaded for the _ChLV.forward.__doc__\n        lat, lon, h, n = _llhn4(latlonh, lon, height, **name)\n        a,  b, h_      = _ChLV._llh2abh_3(lat, lon, h)\n        a2, b2         =  a**2, b**2\n\n        Y = fdot_(211455.93, b,\n                  -10938.51, b * a,\n                      -0.36, b * a2,\n                     -44.54, b * b2, start=72.37)  # + 600_000\n        X = fdot_(308807.95, a,\n                    3745.25, b2,\n                      76.63, a2,\n                    -194.56, b2 * a,\n                     119.79, a2 * a, start=147.07)  # + 200_000\n        return self._ChLV9Tuple(True, M, n, Y, X, h_, lat, lon, h)\n\n    def reverse(self, enh_, n=None, h_=0, M=None, **name):  # PYCHOK signature\n        # overloaded for the _ChLV.reverse.__doc__\n        Y, X, h_, n  =  self._YXh_n4(enh_, n, h_, **name)\n        a, b, h      = _ChLV._YXh_2abh3(Y, X, h_)\n        ab_d, a2, b2 =  ChLV._ab_d, a**2, b**2\n\n        lat = Fdot_(3.238272, b,\n                   -0.270978, a2,\n                   -0.002528, b2,\n                     -0.0447, a2 * b,\n                      -0.014, b2 * b, start=16.9023892).fover(ab_d)\n        lon = Fdot_(4.728982, a,\n                    0.791484, a * b,\n                      0.1306, a * b2,\n                     -0.0436, a * a2, start=2.6779094).fover(ab_d)\n        return self._ChLV9Tuple(False, M, n, Y, X, h_, lat, lon, h)\n\n\nclass ChLVe(_ChLV, LocalCartesian):\n    '''Conversion between I{WGS84 geodetic} and I{Swiss} projection coordinates\n       using the U{Ellipsoidal approximate<https://www.SwissTopo.admin.CH/en/\n       maps-data-online/calculation-services.html>} formulas, pp 10-11 and U{Bolliger,\n       J.<https://eMuseum.GGGS.CH/literatur-lv/liste-Dateien/1967_Bolliger_a.pdf>}\n       pp 148-151 (also U{GGGS<https://eMuseum.GGGS.CH/literatur-lv/liste.htm>}).\n\n       @note: Methods L{ChLVe.forward} and L{ChLVe.reverse} have an additional keyword\n              argument C{B{gamma}=False} to approximate the I{meridian convergence}.\n              If C{B{gamma}=True} a 2-tuple C{(t, gamma)} is returned with C{t} the\n              usual result (C{ChLV9Tuple}) and C{gamma}, the I{meridian convergence}\n              (decimal C{degrees}).  To convert C{gamma} to C{grades} or C{gons}, use\n              function L{pygeodesy.degrees2grades}.\n\n       @see: Older U{references<https://GitHub.com/alphasldiallo/Swisstopo-WGS84-LV03>}.\n    '''\n    def __init__(self, name=ChLV.Bern.name):\n        '''New I{Approximate WGS84-Swiss} L{ChLVe} converter, centered at I{Bern, Ch}.\n\n           @kwarg name: Optional C{B{name}=Bern.name} (C{str}).\n        '''\n        LocalCartesian.__init__(self, latlonh0=ChLV.Bern, name=name)\n\n    def forward(self, latlonh, lon=None, height=0, M=None, gamma=False, **name):  # PYCHOK gamma\n        # overloaded for the _ChLV.forward.__doc__\n        lat, lon, h, n = _llhn4(latlonh, lon, height, **name)\n        a, b, h_       = _ChLV._llh2abh_3(lat, lon, h)\n        ab_M, z, _H    =  ChLV._ab_M, 0, Fhorner\n\n        B1 = _H(a, 211428.533991, -10939.608605, -2.658213, -8.539078, -0.00345, -0.007992)\n        B3 = _H(a,    -44.232717,      4.291740, -0.309883,  0.013924)\n        B5 = _H(a,      0.019784,     -0.004277)\n        Y  = _H(b, z, B1, z, B3, z, B5).fover(ab_M)  # 1,000 Km!\n\n        B0 = _H(a,    z,      308770.746371, 75.028131, 120.435227, 0.009488, 0.070332, -0.00001)\n        B2 = _H(a, 3745.408911, -193.792705,  4.340858,  -0.376174, 0.004053)\n        B4 = _H(a,   -0.734684,    0.144466, -0.011842)\n        X  = _H(b, B0, z, B2, z, B4, z, 0.000488).fover(ab_M)  # 1,000 Km!\n\n        t = self._ChLV9Tuple(True, M, n, Y, X, h_, lat, lon, h)\n        if gamma:\n            U1 = _H(a, 2255515.207166, 2642.456961,  1.284180, 2.577486, 0.001165)\n            U3 = _H(a,    -412.991934,   64.106344, -2.679566, 0.123833)\n            U5 = _H(a,       0.204129,   -0.037725)\n            g  = _H(b, z, U1, z, U3, z, U5).fover(ChLV._ab_m)  # * ChLV._ab_d degrees?\n            t  =  t, g\n        return t\n\n    def reverse(self, enh_, n=None, h_=0, M=None, gamma=False, **name):  # PYCHOK gamma\n        # overloaded for the _ChLV.reverse.__doc__\n        Y, X, h_, n =  self._YXh_n4(enh_, n, h_, **name)\n        a, b, h     = _ChLV._YXh_2abh3(Y, X, h_)\n        s_d, _H, z  =  ChLV._s_d, Fhorner, 0\n\n        A0  = _H(b,  ChLV._sLat, 32386.4877666, -25.486822, -132.457771, 0.48747, 0.81305, -0.0069)\n        A2  = _H(b, -2713.537919, -450.442705,  -75.53194,   -14.63049, -2.7604)\n        A4  = _H(b,    24.42786,    13.20703,     4.7476)\n        lat = _H(a, A0, z, A2, z, A4, z, -0.4249).fover(s_d)\n\n        A1  = _H(b, 47297.3056722, 7925.714783, 1328.129667, 255.02202, 48.17474, 9.0243)\n        A3  = _H(b,  -442.709889,  -255.02202,   -96.34947,  -30.0808)\n        A5  = _H(b,     9.63495,      9.0243)\n        lon = _H(a,  ChLV._sLon, A1, z, A3, z, A5).fover(s_d)\n        #  == (ChLV._sLon + a * (A1 + a**2 * (A3 + a**2 * A5))) / s_d\n\n        t = self._ChLV9Tuple(False, M, n, Y, X, h_, lat, lon, h)\n        if gamma:\n            U1 = _H(b, 106679.792202, 17876.57022, 4306.5241, 794.87772, 148.1545, 27.8725)\n            U3 = _H(b,  -1435.508,     -794.8777,  -296.309,  -92.908)\n            U5 = _H(b,     29.631,       27.873)\n            g  = _H(a, z, U1, z, U3, z, U5).fover(ChLV._s_ab)  # degrees\n            t  =  t, g\n        return t\n\n\ndef _fov_2(**fov):\n    # Half a field-of-view angle in C{degrees}.\n    f = Degrees(Error=LocalError, **fov) * _0_5\n    if EPS < f < _90_0:\n        return f\n    t = _invalid_ if f < 0 else _too_(_wide_ if f > EPS else _narrow_)\n    raise LocalError(txt=t, **fov)\n\n\ndef tyr3d(tilt=INT0, yaw=INT0, roll=INT0, Vector=Vector3d, **name_Vector_kwds):\n    '''Convert an attitude pose into a (3-D) direction vector.\n\n       @kwarg tilt: Pitch, elevation from horizontal (C{degrees}), negative down\n                    (clockwise rotation along and around the x-axis).\n       @kwarg yaw: Bearing, heading (compass C{degrees360}), clockwise from North\n                   (counter-clockwise rotation along and around the z-axis).\n       @kwarg roll: Roll, bank (C{degrees}), positive to the right and down\n                    (clockwise rotation along and around the y-axis).\n       @kwarg Vector: Class to return the direction vector (C{Cartesian},\n                      L{Vector3d} or C{Vector3Tuple}) or C{None}.\n       @kwarg name_Vector_kwds: Optional C{B{name}=NN} (C{str}) and optionally,\n                   additional B{C{Vector}} keyword arguments, ignored if C{B{Vector}\n                   is None}.\n\n       @return: A named B{C{Vector}} instance or if C{B{Vector} is None},\n                a named L{Vector3Tuple}C{(x, y, z)}.\n\n       @raise AttitudeError: Invalid B{C{tilt}}, B{C{yaw}} or B{C{roll}}.\n\n       @raise TypeError: Invalid B{C{Vector}} or B{C{name_Vector_kwds}}.\n\n       @see: U{Yaw, pitch, and roll rotations<http://MSL.CS.UIUC.edu/planning/node102.html>}\n             and function L{pygeodesy.hartzell} argument C{los}, Line-Of-Sight.\n    '''\n    v = Attitude4Tuple(_0_0, tilt, yaw, roll).tyr3d\n    if Vector is not type(v):\n        n, kwds = _name2__(name_Vector_kwds, name__=tyr3d)\n        v = Vector3Tuple(v.x, v.y, v.z, name=n) if Vector is None else \\\n                  Vector(v.x, v.y, v.z, name=n, **kwds)\n    elif name_Vector_kwds:\n        n, _ = _name2__(name_Vector_kwds)\n        if n:\n            v = v.copy(name=n)\n    return v\n\n\ndef _xLtp(ltp, *dflt):\n    '''(INTERNAL) Validate B{C{ltp}} if not C{None} else B{C{dflt}}.\n    '''\n    if dflt and ltp is None:\n        ltp = dflt[0]\n    _xinstanceof(Ltp, LocalCartesian, ltp=ltp)\n    return ltp\n\n# **) MIT License\n#\n# Copyright (C) 2016-2026 -- mrJean1 at Gmail -- All Rights Reserved.\n#\n# Permission is hereby granted, free of charge, to any person obtaining a\n# copy of this software and associated documentation files (the \"Software\"),\n# to deal in the Software without restriction, including without limitation\n# the rights to use, copy, modify, merge, publish, distribute, sublicense,\n# and/or sell copies of the Software, and to permit persons to whom the\n# Software is furnished to do so, subject to the following conditions:\n#\n# The above copyright notice and this permission notice shall be included\n# in all copies or substantial portions of the Software.\n#\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL\n# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR\n# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\n# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n# OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "pygeodesy/ltpTuples.py",
    "content": "\n# -*- coding: utf-8 -*-\n\nu'''Named, I{Local Tangent Plane} (LTP) tuples.\n\nLocal coordinate classes L{XyzLocal}, L{Enu}, L{Ned} and L{Aer} and\nlocal coordinate tuples L{Local9Tuple}, L{Xyz4Tuple}, L{Enu4Tuple},\nL{Ned4Tuple}, L{Aer4Tuple}, L{ChLV9Tuple}, L{ChLVEN2Tuple},\nL{ChLVYX2Tuple}, L{ChLVyx2Tuple} and L{Footprint5Tuple}.\n\n@see: References in module L{ltp}.\n'''\n\nfrom pygeodesy.basics import issubclassof,  typename\nfrom pygeodesy.constants import _0_0, _1_0, _90_0, _N_90_0\n# from pygeodesy.dms import F_D, toDMS  # _MODS\nfrom pygeodesy.errors import _TypeError, _TypesError, _xattr, _xkwds, \\\n                             _xkwds_item2\nfrom pygeodesy.fmath import fdot_, hypot, hypot_\n# rom pygeodesy.internals import typename  # from .basics\nfrom pygeodesy.interns import NN, _4_, _azimuth_, _center_, _COMMASPACE_, \\\n                             _ecef_, _elevation_, _height_, _lat_, _lon_, \\\n                             _ltp_, _M_, _name_, _up_, _X_, _x_, _xyz_, \\\n                             _Y_, _y_, _z_\nfrom pygeodesy.lazily import _ALL_DOCS, _ALL_LAZY, _ALL_MODS as _MODS\n# from pygeodesy.ltp Attitude, ChLV, ChLVa, ChLVe _Xltp  # _MODS.into\nfrom pygeodesy.named import _name__, _name1__, _name2__, _NamedBase, \\\n                            _NamedTuple, _Pass, _xnamed\nfrom pygeodesy.namedTuples import LatLon2Tuple, PhiLam2Tuple, Vector3Tuple\nfrom pygeodesy.props import deprecated_method, deprecated_Property_RO, \\\n                            Property_RO, property_RO\nfrom pygeodesy.streprs import Fmt, fstr, strs, _xzipairs\nfrom pygeodesy.units import Azimuth, Bearing, Degrees, Degrees_, Height, \\\n                           _isDegrees, _isMeter, Lat, Lon, Meter, Meter_\nfrom pygeodesy.utily import atan2d, atan2b, sincos2_, sincos2d_,  cos, radians\nfrom pygeodesy.vector3d import Vector3d\n\n# from math import cos, radians  # from .utily\n\n__all__ = _ALL_LAZY.ltpTuples\n__version__ = '25.05.01'\n\n_aer_        = 'aer'\n_alt_        = 'alt'\n_down_       = 'down'\n_east_       = 'east'\n_enu_        = 'enu'\n_h__         = 'h_'\n_ned_        = 'ned'\n_north_      = 'north'\n_local_      = 'local'\n_ltp         = _MODS.into(ltp=__name__)\n_roll_       = 'roll'\n_slantrange_ = 'slantrange'\n_tilt_       = 'tilt'\n_uvw_        = 'uvw'\n_yaw_        = 'yaw'\n\n\nclass _AbcBase(_NamedBase):\n    '''(INTERNAL) Base class for classes C{Aer} and C{Ned}.\n    '''\n    _ltp = None  # local tangent plane (C{Ltp}), origin\n\n    @Property_RO\n    def ltp(self):\n        '''Get the I{local tangent plane} (L{Ltp}).\n        '''\n        return self._ltp\n\n    def toAer(self, Aer=None, **name_Aer_kwds):\n        '''Get the I{local} I{Azimuth, Elevation, slant Range} (AER) components.\n\n           @kwarg Aer: Class to return AER (L{Aer}) or C{None}.\n           @kwarg name_Aer_kwds: Optional C{B{name}=NN} (C{str}) and optionally,\n                       additional B{L{Aer}} keyword arguments, ignored if C{B{Aer}\n                       is None}.\n\n           @return: An B{C{Aer}} instance or an L{Aer4Tuple}C{(azimuth, elevation,\n                    slantrange, ltp)} if C{B{Aer} is None}.\n\n           @raise TypeError: Invalid B{C{Aer}} or B{C{name_Aer_kwds}}.\n        '''\n        return self.xyz4._toXyz(Aer, name_Aer_kwds)\n\n    def toEnu(self, Enu=None, **name_Enu_kwds):\n        '''Get the I{local} I{East, North, Up} (ENU) components.\n\n           @kwarg Enu: Class to return ENU (L{Enu}) or C{None}.\n           @kwarg name_Enu_kwds: Optional C{B{name}=NN} (C{str}) and optionally,\n                       additional B{L{Enu}} keyword arguments, ignored if C{B{Enu}\n                       is None}.\n\n           @return: An B{C{Enu}} instance or an L{Enu4Tuple}C{(east, north, up,\n                    ltp)} if C{B{Enu} is None}.\n\n           @raise TypeError: Invalid B{C{Enu}} or B{C{name_Enu_kwds}}.\n        '''\n        return self.xyz4._toXyz(Enu, name_Enu_kwds)\n\n    def toNed(self, Ned=None, **name_Ned_kwds):\n        '''Get the I{local} I{North, East, Down} (NED) components.\n\n           @kwarg Ned: Class to return NED (L{Ned}) or C{None}.\n           @kwarg name_Ned_kwds: Optional C{B{name}=NN} (C{str}) and optionally,\n                       additional B{L{Ned}} keyword arguments, ignored if C{B{Ned}\n                       is None}.\n\n           @return: An B{C{Ned}} instance or an L{Ned4Tuple}C{(north, east, down,\n                    ltp)} if C{B{Ned} is None}.\n\n           @raise TypeError: Invalid B{C{Ned}} or B{C{name_Ned_kwds}}.\n        '''\n        return self.xyz4._toXyz(Ned, name_Ned_kwds)\n\n    def toXyz(self, Xyz=None, **name_Xyz_kwds):\n        '''Get the local I{X, Y, Z} (XYZ) components.\n\n           @kwarg Xyz: Class to return XYZ (L{XyzLocal}, L{Enu}, L{Ned}, L{Aer})\n                       or C{None}.\n           @kwarg name_Xyz_kwds: Optional C{B{name}=NN} (C{str}) and optionally,\n                       additional B{C{Xyz}} keyword arguments, ignored if C{B{Xyz}\n                       is None}.\n\n           @return: An B{C{Xyz}} instance or an L{Xyz4Tuple}C{(x, y, z, ltp)} if\n                    C{B{Xyz} is None}.\n\n           @raise TypeError: Invalid B{C{Xyz}} or B{C{name_Xyz_kwds}}.\n        '''\n        return self.xyz4._toXyz(Xyz, name_Xyz_kwds)\n\n    @Property_RO\n    def xyz(self):\n        '''Get the I{local} C{(X, Y, Z)} coordinates (L{Vector3Tuple}C{(x, y, z)}).\n        '''\n        return Vector3Tuple(self.x, self.y, self.z, name=self.name)  # like Ecef9Tuple.xyz, Local6tuple.xyz\n\n    @property_RO\n    def xyz3(self):\n        '''Get the I{local} C{(X, Y, Z)} coordinates as C{3-tuple}.\n        '''\n        return tuple(self.xyz)\n\n    @property_RO\n    def xyz4(self):  # PYCHOK no cover\n        '''I{Must be overloaded}.'''\n        self._notOverloaded()\n\n    @Property_RO\n    def xyzLocal(self):\n        '''Get this AER or NED as an L{XyzLocal}.\n        '''\n        return XyzLocal(self.xyz4, name=self.name)\n\n\nclass _Abc4Tuple(_NamedTuple):\n    '''(INTERNAL) Base class for C{Aer4Tuple}, C{Enu4Tuple},\n        C{Ned4Tuple} and C{Xyz4Tuple}.\n    '''\n    def _2Cls(self, Abc, Cls, Cls_kwds):\n        '''(INTERNAL) Convert 4-Tuple to C{Cls} instance.\n        '''\n        _isc =  issubclassof\n        kwds = _name1__(Cls_kwds, _or_nameof=self)\n        if Cls is None:\n            n, _ = _name2__(Cls_kwds)\n            r = self.copy(name=n) if n else self\n        elif _isc(Cls, Abc):\n            r = Cls(*self, **kwds)\n        elif _isc(Cls, Aer):\n            r = self.xyzLocal.toAer(**_xkwds(kwds, Aer=Cls))\n        elif _isc(Cls, Enu):  # PYCHOK no cover\n            r = self.xyzLocal.toEnu(**_xkwds(kwds, Enu=Cls))\n        elif _isc(Cls, Ned):\n            r = self.xyzLocal.toNed(**_xkwds(kwds, Ned=Cls))\n        elif _isc(Cls, XyzLocal):  # PYCHOK no cover\n            r = self.xyzLocal.toXyz(**_xkwds(kwds, Xyz=Cls))\n        elif Cls is Local9Tuple:  # PYCHOK no cover\n            r = self.xyzLocal.toLocal9Tuple(**kwds)\n        else:  # PYCHOK no cover\n            n = typename(Abc)[:3]\n            raise _TypesError(n, Cls, Aer, Enu, Ned, XyzLocal)\n        return r\n\n    @property_RO\n    def xyzLocal(self):  # PYCHOK no cover\n        '''I{Must be overloaded}.'''\n        self._notOverloaded()\n\n\nclass Aer(_AbcBase):\n    '''Local C{Azimuth-Elevation-Range} (AER) in a I{local tangent plane}.\n    '''\n    _azimuth    = _0_0   # bearing from North (C{degrees360})\n    _elevation  = _0_0   # tilt, pitch from horizon (C{degrees}).\n#   _ltp        =  None  # local tangent plane (C{Ltp}), origin\n    _slantrange = _0_0   # distance (C{Meter})\n    _toStr      = _aer_\n\n    def __init__(self, azimuth_aer, elevation=0, slantrange=0, ltp=None, **name):\n        '''New L{Aer}.\n\n           @arg azimuth_aer: Scalar azimuth, bearing from North (compass C{degrees})\n                             or a previous I{local} instance (L{Aer}, L{Aer4Tuple},\n                             L{Enu}, L{Enu4Tuple}, L{Local9Tuple}, L{Ned},\n                             L{Ned4Tuple}, L{XyzLocal} or L{Xyz4Tuple}).\n           @kwarg elevation: Scalar angle I{above} the horizon, I{above} B{C{ltp}}\n                             (C{degrees}, horizon is 0, zenith +90 and nadir -90),\n                             only used with scalar B{C{azimuth_aer}}.\n           @kwarg slantrange: Scalar distance (C{meter}), only used with scalar\n                              B{C{azimuth_aer}}.\n           @kwarg ltp: The I{local tangent plane}, (geodetic) origin (L{Ltp},\n                       L{LocalCartesian}).\n           @kwarg name: Optional C{B{name}=NN} (C{str}).\n\n           @raise TypeError: Invalid B{C{azimuth_aer}} or B{C{ltp}}.\n\n           @raise UnitError: Invalid B{C{azimuth_aer}}, B{C{elevation}} or\n                             or B{C{slantrange}}.\n        '''\n        if _isDegrees(azimuth_aer):\n            aer =  None\n            t   = (Azimuth(azimuth_aer),\n                   Degrees_(elevation=elevation, low=_N_90_0, high=_90_0),\n                   Meter_(slantrange=slantrange), ltp)\n        else:  # PYCHOK no cover\n            p   = _xyzLocal(Aer, Aer4Tuple, Ned, azimuth_aer=azimuth_aer)\n            aer =  p.toAer() if p else azimuth_aer\n            t   =  aer.aer4\n        self._azimuth, self._elevation, self._slantrange, _ = t\n        _init(self, aer, ltp, name)\n\n    @Property_RO\n    def aer4(self):\n        '''Get the C{(azimuth, elevation, slantrange, ltp)} components (L{Aer4Tuple}).\n        '''\n        return Aer4Tuple(self.azimuth, self.elevation, self.slantrange, self.ltp, name=self.name)\n\n    @Property_RO\n    def azimuth(self):\n        '''Get the Azimuth, bearing from North (C{degrees360}).\n        '''\n        return self._azimuth\n\n    @Property_RO\n    def down(self):\n        '''Get the Down component (C{meter}).\n        '''\n        return self.xyzLocal.down\n\n    @Property_RO\n    def east(self):\n        '''Get the East component (C{meter}).\n        '''\n        return self.xyzLocal.east\n\n    @Property_RO\n    def elevation(self):\n        '''Get the Elevation, tilt above horizon (C{degrees90}).\n        '''\n        return self._elevation\n\n    @Property_RO\n    def groundrange(self):\n        '''Get the I{ground range}, distance (C{meter}).\n        '''\n        return _er2gr(self._elevation, self._slantrange)\n\n    @Property_RO\n    def north(self):\n        '''Get the North component (C{meter}).\n        '''\n        return self.xyzLocal.north\n\n    @Property_RO\n    def slantrange(self):\n        '''Get the I{slant Range}, distance (C{meter}).\n        '''\n        return self._slantrange\n\n    def toRepr(self, prec=None, fmt=Fmt.SQUARE, sep=_COMMASPACE_, **unused):  # PYCHOK expected\n        '''Return a string representation of this AER as azimuth\n           (bearing), elevation and slant range.\n\n           @kwarg prec: Number of (decimal) digits, unstripped (C{int}).\n           @kwarg fmt: Enclosing backets format (C{str}).\n           @kwarg sep: Optional separator between AERs (C{str}).\n\n           @return: This AER as \"[A:degrees360, E:degrees90, R:meter]\" (C{str}).\n        '''\n        m = _MODS.dms\n        t = (m.toDMS(self.azimuth,   form=m.F_D, prec=prec, ddd=0),\n             m.toDMS(self.elevation, form=m.F_D, prec=prec, ddd=0),\n             fstr( self.slantrange, prec=3 if prec is None else prec))\n        return _xzipairs(self._toStr.upper(), t, sep=sep, fmt=fmt)\n\n    def toStr(self, **prec_fmt_sep):  # PYCHOK expected\n        '''Return a string representation of this AER.\n\n           @kwarg prec_fmt_sep: Keyword arguments C{B{prec}=3} for the\n                                number of (decimal) digits, unstripped\n                                (C{int}), C{B{fmt}='[]'} the enclosing\n                                backets format (C{str}) and separator\n                                C{B{sep}=\", \"} to join (C{str}).\n\n           @return: This AER as \"[degrees360, degrees90, meter]\" (C{str}).\n        '''\n        _, t = _toStr2(self, **prec_fmt_sep)\n        return t\n\n    @Property_RO\n    def up(self):\n        '''Get the Up component (C{meter}).\n        '''\n        return self.xyzLocal.up\n\n    @Property_RO\n    def x(self):\n        '''Get the X component (C{meter}).\n        '''\n        return self.xyz4.x\n\n    @Property_RO\n    def xyz4(self):\n        '''Get the C{(x, y, z, ltp)} components (L{Xyz4Tuple}).\n        '''\n        sA, cA, sE, cE = sincos2d_(self._azimuth, self._elevation)\n        R = self._slantrange\n        r = cE * R  # ground range\n        return Xyz4Tuple(sA * r, cA * r, sE * R, self.ltp, name=self.name)\n\n    @Property_RO\n    def y(self):\n        '''Get the Y component (C{meter}).\n        '''\n        return self.xyz4.y\n\n    @Property_RO\n    def z(self):\n        '''Get the Z component (C{meter}).\n        '''\n        return self.xyz4.z\n\n\nclass Aer4Tuple(_Abc4Tuple):\n    '''4-Tuple C{(azimuth, elevation, slantrange, ltp)},\n       all in C{meter} except C{ltp}.\n    '''\n    _Names_ = (_azimuth_, _elevation_, _slantrange_, _ltp_)\n    _Units_ = ( Meter,     Meter,       Meter,       _Pass)\n\n    def _toAer(self, Cls, Cls_kwds):\n        '''(INTERNAL) Return C{Cls(..., **Cls_kwds)} instance.\n        '''\n        return self._2Cls(Aer, Cls, Cls_kwds)\n\n    @Property_RO\n    def groundrange(self):\n        '''Get the I{ground range}, distance (C{meter}).\n        '''\n        return _er2gr(self.elevation, self.slantrange)  # PYCHOK _Tuple\n\n    @Property_RO\n    def xyzLocal(self):\n        '''Get this L{Aer4Tuple} as an L{XyzLocal}.\n        '''\n        return Aer(self).xyzLocal\n\n\nclass Attitude4Tuple(_NamedTuple):\n    '''4-Tuple C{(alt, tilt, yaw, roll)} with C{altitude} in (positive)\n       C{meter} and C{tilt}, C{yaw} and C{roll} in C{degrees} representing\n       the attitude of a plane or camera.\n    '''\n    _Names_ = (_alt_, _tilt_,  _yaw_,   _roll_)\n    _Units_ = ( Meter, Degrees, Bearing, Degrees)\n\n    @Property_RO\n    def atyr(self):\n        '''Return this attitude (L{Attitude4Tuple}).\n        '''\n        return self\n\n    @Property_RO\n    def tyr3d(self):\n        '''Get this attitude's (3-D) directional vector (L{Vector3d}).\n        '''\n        return _ltp.Attitude(self).tyr3d\n\n\nclass Ned(_AbcBase):\n    '''Local C{North-Eeast-Down} (NED) location in a I{local tangent plane}.\n\n       @see: L{Enu} and L{Ltp}.\n    '''\n    _down  = _0_0   # down, -XyzLocal.z (C{meter}).\n    _east  = _0_0   # east, XyzLocal.y (C{meter}).\n#   _ltp   =  None  # local tangent plane (C{Ltp}), origin\n    _north = _0_0   # north, XyzLocal.x (C{meter})\n    _toStr = _ned_\n\n    def __init__(self, north_ned, east=0, down=0, ltp=None, **name):\n        '''New L{Ned} vector.\n\n           @arg north_ned: Scalar North component (C{meter}) or a previous\n                           I{local} instance (L{Ned}, L{Ned4Tuple}, L{Aer},\n                           L{Aer4Tuple}, L{Enu}, L{Enu4Tuple}, L{Local9Tuple},\n                           L{XyzLocal} or L{Xyz4Tuple}).\n           @kwarg east: Scalar East component (C{meter}), only used with\n                        scalar B{C{north_ned}}.\n           @kwarg down: Scalar Down component, normal to I{inside} surface\n                        of the ellipsoid or sphere (C{meter}), only used with\n                        scalar B{C{north_ned}}.\n           @kwarg ltp: The I{local tangent plane}, (geodetic) origin (L{Ltp},\n                       L{LocalCartesian}).\n           @kwarg name: Optional C{B{name}=NN} (C{str}).\n\n           @raise TypeError: Invalid B{C{north_ned}} or B{C{ltp}}.\n\n           @raise UnitError: Invalid B{C{north_ned}}, B{C{east}} or B{C{down}}.\n        '''\n        if _isMeter(north_ned):\n            ned =  None\n            t   = (Meter(north=north_ned or _0_0),\n                   Meter(east=east or _0_0),\n                   Meter(down=down or _0_0), ltp)\n        else:  # PYCHOK no cover\n            p   = _xyzLocal(Ned, Ned4Tuple, Aer, north_ned=north_ned)\n            ned =  p.toNed() if p else north_ned\n            t   =  ned.ned4\n        self._north, self._east, self._down, _ = t\n        _init(self, ned, ltp, name)\n\n    @Property_RO\n    def aer4(self):\n        '''Get the C{(azimuth, elevation, slantrange, ltp)} components (L{Aer4Tuple}).\n        '''\n        return _xyz2aer4(self)\n\n    @Property_RO\n    def azimuth(self):\n        '''Get the Azimuth, bearing from North (C{degrees360}).\n        '''\n        return self.aer4.azimuth\n\n    @deprecated_Property_RO\n    def bearing(self):\n        '''DEPRECATED, use C{azimuth}.'''\n        return self.azimuth\n\n    @Property_RO\n    def down(self):\n        '''Get the Down component (C{meter}).\n        '''\n        return self._down\n\n    @Property_RO\n    def east(self):\n        '''Get the East component (C{meter}).\n        '''\n        return self._east\n\n    @Property_RO\n    def elevation(self):\n        '''Get the Elevation, tilt above horizon (C{degrees90}).\n        '''\n        return self.aer4.elevation  # neg(degrees90(asin1(self.down / self.length))))\n\n    @Property_RO\n    def groundrange(self):\n        '''Get the I{ground range}, distance (C{meter}).\n        '''\n        return Meter(groundrange=hypot(self.north, self.east))\n\n    @deprecated_Property_RO\n    def length(self):\n        '''DEPRECATED, use C{slantrange}.'''\n        return self.slantrange\n\n    @deprecated_Property_RO\n    def ned(self):\n        '''DEPRECATED, use property C{ned4}.'''\n        return _MODS.deprecated.classes.Ned3Tuple(self.north, self.east, self.down, name=self.name)\n\n    @Property_RO\n    def ned4(self):\n        '''Get the C{(north, east, down, ltp)} components (L{Ned4Tuple}).\n        '''\n        return Ned4Tuple(self.north, self.east, self.down, self.ltp, name=self.name)\n\n    @Property_RO\n    def north(self):\n        '''Get the North component (C{meter}).\n        '''\n        return self._north\n\n    @Property_RO\n    def slantrange(self):\n        '''Get the I{slant Range}, distance (C{meter}).\n        '''\n        return self.aer4.slantrange\n\n    @deprecated_method\n    def to3ned(self):  # PYCHOK no cover\n        '''DEPRECATED, use property L{ned4}.'''\n        return self.ned  # XXX deprecated too\n\n    def toRepr(self, prec=None, fmt=Fmt.SQUARE, sep=_COMMASPACE_, **unused):  # PYCHOK expected\n        '''Return a string representation of this NED.\n\n           @kwarg prec: Number of (decimal) digits, unstripped (C{int}).\n           @kwarg fmt: Enclosing backets format (C{str}).\n           @kwarg sep: Separator to join (C{str}).\n\n           @return: This NED as \"[N:meter, E:meter, D:meter]\" (C{str}).\n        '''\n        a, t = _toStr2(self, prec=prec, fmt=NN, sep=NN)\n        return _xzipairs(a.upper(), t, sep=sep, fmt=fmt)\n\n    def toStr(self, **prec_fmt_sep):  # PYCHOK expected\n        '''Return a string representation of this NED.\n\n           @kwarg prec_fmt_sep: Keyword arguments C{B{prec}=3} for the\n                                number of (decimal) digits, unstripped\n                                (C{int}), C{B{fmt}='[]'} the enclosing\n                                backets format (C{str}) and separator\n                                C{B{sep}=\", \"} to join (C{str}).\n\n           @return: This NED as \"[meter, meter, meter]\" (C{str}).\n        '''\n        _, t = _toStr2(self, **prec_fmt_sep)\n        return t\n\n    @deprecated_method\n    def toVector3d(self):\n        '''DEPRECATED, use property L{xyz}.'''\n        return self.xyz\n\n    @Property_RO\n    def up(self):\n        '''Get the Up component (C{meter}).\n        '''\n        return Meter(up=-self._down)  # negated\n\n    @Property_RO\n    def x(self):\n        '''Get the X component (C{meter}).\n        '''\n        return Meter(x=self._east)  # 2nd arg, E\n\n    @Property_RO\n    def xyz4(self):\n        '''Get the C{(x, y, z, ltp)} components (L{Xyz4Tuple}).\n        '''\n        return Xyz4Tuple(self.x, self.y, self.z, self.ltp, name=self.name)\n\n    @Property_RO\n    def y(self):\n        '''Get the Y component (C{meter}).\n        '''\n        return Meter(y=self._north)  # 1st arg N\n\n    @Property_RO\n    def z(self):\n        '''Get the Z component (C{meter}).\n        '''\n        return Meter(z=-self._down)  # negated\n\n\nclass Ned4Tuple(_Abc4Tuple):\n    '''4-Tuple C{(north, east, down, ltp)}, all in C{meter} except C{ltp}.\n    '''\n    _Names_ = (_north_, _east_, _down_, _ltp_)\n    _Units_ = ( Meter,   Meter,  Meter, _Pass)\n\n    def _toNed(self, Cls, Cls_kwds):\n        '''(INTERNAL) Return C{Cls(..., **Cls_kwds)} instance.\n        '''\n        return self._2Cls(Ned, Cls, Cls_kwds)\n\n    @Property_RO\n    def xyzLocal(self):\n        '''Get this L{Ned4Tuple} as an L{XyzLocal}.\n        '''\n        return Ned(self).xyzLocal\n\n\nclass _Vector3d(Vector3d):\n\n    _toStr = _xyz_\n\n    def toRepr(self, prec=None, fmt=Fmt.SQUARE, sep=_COMMASPACE_, **unused):  # PYCHOK expected\n        '''Return a string representation of this ENU/NED/XYZ.\n\n           @kwarg prec: Number of (decimal) digits, unstripped (C{int}).\n           @kwarg fmt: Enclosing backets format (C{str}).\n           @kwarg sep: Separator to join (C{str}).\n\n           @return: This XYZ/ENU as \"[E:meter, N:meter, U:meter]\",\n                    \"[N:meter, E:meter, D:meter]\",\n                    \"[U:meter, V:meter, W:meter]\" respectively\n                    \"[X:meter, Y:meter, Z:meter]\" (C{str}).\n        '''\n        a, t = _toStr2(self, prec=prec, fmt=NN, sep=NN)\n        return _xzipairs(a.upper(), t, sep=sep, fmt=fmt)\n\n    def toStr(self, **prec_fmt_sep):  # PYCHOK expected\n        '''Return a string representation of this XYZ.\n\n           @kwarg prec_fmt_sep: Keyword arguments C{B{prec}=3} for the\n                                number of (decimal) digits, unstripped\n                                (C{int}), C{B{fmt}='[]'} the enclosing\n                                backets format (C{str}) and separator\n                                C{B{sep}=\", \"} to join (C{str}).\n\n           @return: This XYZ as \"[meter, meter, meter]\" (C{str}).\n        '''\n        _, t = _toStr2(self, **prec_fmt_sep)\n        return t\n\n\nclass XyzLocal(_Vector3d):\n    '''Local C{(x, y, z)} in a I{local tangent plane} (LTP),\n       also base class for local L{Enu}.\n    '''\n    _ltp = None  # local tangent plane (C{Ltp}), origin\n\n    def __init__(self, x_xyz, y=0, z=0, ltp=None, **name):\n        '''New L{XyzLocal}.\n\n           @arg x_xyz: Scalar X component (C{meter}), C{positive east} or a\n                       previous I{local} instance (L{XyzLocal}, L{Xyz4Tuple},\n                       L{Aer}, L{Aer4Tuple}, L{Enu}, L{Enu4Tuple},\n                       L{Local9Tuple}, L{Ned} or L{Ned4Tuple}).\n           @kwarg y: Scalar Y component (C{meter}), only used with scalar\n                     B{C{x_xyz}}, C{positive north}.\n           @kwarg z: Scalar Z component, normal C{positive up} from the\n                     surface of the ellipsoid or sphere (C{meter}), only\n                     used with scalar B{C{x_xyz}}.\n           @kwarg ltp: The I{local tangent plane}, (geodetic) origin (L{Ltp},\n                       L{LocalCartesian}).\n           @kwarg name: Optional C{B{name}=NN} (C{str}).\n\n           @raise TypeError: Invalid B{C{x_xyz}} or B{C{ltp}}.\n\n           @raise UnitError: Invalid scalar B{C{x_xyz}}, B{C{y}} or B{C{z}}.\n        '''\n        if _isMeter(x_xyz):\n            xyz =  None\n            t   = (Meter(x=x_xyz or _0_0),\n                   Meter(y=y or _0_0),\n                   Meter(z=z or _0_0), ltp)\n        else:\n            xyz = _xyzLocal(XyzLocal, Xyz4Tuple, Local9Tuple, x_xyz=x_xyz) or x_xyz\n            t   =  xyz.xyz4  # xyz.x, xyz.y, xyz.z, xyz.ltp\n        self._x, self._y, self._z, _ = t\n        _init(self, xyz, ltp, name)\n\n    def __str__(self):\n        return self.toStr()\n\n    @Property_RO\n    def aer4(self):\n        '''Get the C{(azimuth, elevation, slantrange, ltp)} components (L{Aer4Tuple}).\n        '''\n        return _xyz2aer4(self)\n\n    @Property_RO\n    def azimuth(self):\n        '''Get the Azimuth, bearing from North (C{degrees360}).\n\n           @see: U{Azimuth<https://GSSC.ESA.int/navipedia/index.php/\n                 Transformations_between_ECEF_and_ENU_coordinates>}.\n        '''\n        return self.aer4.azimuth\n\n    def classof(self, *args, **kwds):  # PYCHOK no cover\n        '''Create another instance of this very class.\n\n           @arg args: Optional, positional arguments.\n           @kwarg kwds: Optional, keyword arguments.\n\n           @return: New instance (C{self.__class__}).\n        '''\n        kwds = _name1__(kwds, _or_nameof=self)\n        return self.__class__(*args, **_xkwds(kwds, ltp=self.ltp))\n\n    @Property_RO\n    def down(self):\n        '''Get the Down component (C{meter}).\n        '''\n        return Meter(down=-self.z)\n\n    @property_RO\n    def ecef(self):\n        '''Get this LTP's ECEF converter (C{Ecef...} I{instance}).\n        '''\n        return self.ltp.ecef\n\n    @Property_RO\n    def east(self):\n        '''Get the East component (C{meter}).\n        '''\n        return Meter(east=self.x)\n\n    @Property_RO\n    def elevation(self):\n        '''Get the Elevation, tilt above horizon (C{degrees90}).\n\n           @see: U{Elevation<https://GSSC.ESA.int/navipedia/index.php/\n                 Transformations_between_ECEF_and_ENU_coordinates>}.\n        '''\n        return self.aer4.elevation  # neg(degrees90(asin1(self.down / self.length))))\n\n    @Property_RO\n    def enu4(self):\n        '''Get the C{(east, north, up, ltp)} components (L{Enu4Tuple}).\n        '''\n        return Enu4Tuple(self.east, self.north, self.up, self.ltp, name=self.name)\n\n    @Property_RO\n    def groundrange(self):\n        '''Get the I{ground range}, distance (C{meter}).\n        '''\n        return Meter(groundrange=hypot(self.x, self.y))\n\n    @Property_RO\n    def ltp(self):\n        '''Get the I{local tangent plane} (L{Ltp}).\n        '''\n        return self._ltp\n\n    def _ltp_kwds_name3(self, ltp, kwds):\n        '''(INTERNAL) Helper for methods C{toCartesian} and C{toLatLon}.\n        '''\n        ltp  = _ltp._xLtp(ltp, self.ltp)\n        kwds = _name1__(kwds, _or_nameof=self)\n        kwds = _name1__(kwds, _or_nameof=ltp)\n        return ltp, kwds, kwds.get(_name_, NN)\n\n    @Property_RO\n    def ned4(self):\n        '''Get the C{(north, east, down, ltp)} components (L{Ned4Tuple}).\n        '''\n        return Ned4Tuple(self.north, self.east, self.down, self.ltp, name=self.name)\n\n    @Property_RO\n    def north(self):\n        '''Get the North component (C{meter}).\n        '''\n        return Meter(north=self.y)\n\n    @Property_RO\n    def slantrange(self):\n        '''Get the I{slant Range}, distance (C{meter}).\n        '''\n        return self.aer4.slantrange\n\n    def toAer(self, Aer=None, **name_Aer_kwds):\n        '''Get the local I{Azimuth, Elevation, slant Range} components.\n\n           @kwarg Aer: Class to return AER (L{Aer}) or C{None}.\n           @kwarg name_Aer_kwds: Optional C{B{name}=NN} (C{str}) and optionally,\n                       additional B{C{Aer}} keyword arguments, ignored if C{B{Aer}\n                       is None}.\n\n           @return: An B{C{Aer}} instance or an L{Aer4Tuple}C{(azimuth, elevation,\n                    slantrange, ltp)} if C{B{Aer} is None}.\n\n           @raise TypeError: Invalid B{C{Aer}} or B{C{name_Aer_kwds}} item.\n        '''\n        return self.aer4._toAer(Aer, name_Aer_kwds)\n\n    def toCartesian(self, Cartesian=None, ltp=None, **name_Cartesian_kwds):  # PYCHOK signature\n        '''Get the geocentric C{(x, y, z)} (ECEF) coordinates of this local.\n\n           @kwarg Cartesian: Optional class to return C{(x, y, z)} (C{Cartesian})\n                             or C{None}.\n           @kwarg ltp: Optional I{local tangent plane} (LTP) (L{Ltp}), overriding\n                       this C{ltp}.\n           @kwarg name_Cartesian_kwds: Optional C{B{name}=NN} (C{str}) and optionally,\n                       additional B{C{Cartesian}} keyword arguments, ignored if\n                       C{B{Cartesian} is None}.\n\n           @return: A B{C{Cartesian}} instance or if C{B{Cartesian} is None}, an\n                    L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)} with\n                    C{M=None}, always.\n\n           @raise TypeError: Invalid B{C{ltp}}, B{C{Cartesian}} or B{C{name_Cartesian_kwds}} item.\n        '''\n        ltp, kwds, n = self._ltp_kwds_name3(ltp, name_Cartesian_kwds)\n        if Cartesian is None:\n            t =  ltp._local2ecef(self, nine=True)\n            r = _xnamed(t, n) if n else t\n        else:\n            kwds = _xkwds(kwds, datum=ltp.datum, name=n)\n            xyz  =  ltp._local2ecef(self)  # [:3]\n            r    =  Cartesian(*xyz, **kwds)\n        return r\n\n    def toEnu(self, Enu=None, **name_Enu_kwds):\n        '''Get the local I{East, North, Up} (ENU) components.\n\n           @kwarg Enu: Class to return ENU (L{Enu}) or C{None}.\n           @kwarg name_Enu_kwds: Optional C{B{name}=NN} (C{str}) and optionally,\n                       additional B{C{Enu}} keyword arguments, ignored if C{B{Enu}\n                       is None}.\n\n           @return: An B{C{Enu}} instance or an L{Enu4Tuple}C{(east, north, up,\n                    ltp)} if C{B{Enu} is None}.\n\n           @raise TypeError: Invalid B{C{Enu}} or B{C{name_Enu_kwds}} item.\n        '''\n        return self.enu4._toEnu(Enu, name_Enu_kwds)\n\n    def toLatLon(self, LatLon=None, ltp=None, **name_LatLon_kwds):\n        '''Get the geodetic C{(lat, lon, height)} coordinates if this local.\n\n           @kwarg LatLon: Optional class to return C{(x, y, z)} (C{LatLon}) or\n                          C{None}.\n           @kwarg ltp: Optional I{local tangent plane} (LTP) (L{Ltp}), overriding\n                       this ENU/NED/AER/XYZ's LTP.\n           @kwarg name_LatLon_kwds: Optional C{B{name}=NN} (C{str}) and optionally,\n                       additional B{C{LatLon}} keyword arguments, ignored if C{B{LatLon}\n                       is None}.\n\n           @return: An B{C{LatLon}} instance or an L{Ecef9Tuple}C{(x, y, z, lat, lon,\n                    height, C, M, datum)} if C{B{LatLon} is None}, with C{M=None}.\n\n           @raise TypeError: Invalid B{C{LatLon}}, B{C{ltp}} or B{C{name_LatLon_kwds}} item.\n        '''\n        ltp, kwds, n = self._ltp_kwds_name3(ltp, name_LatLon_kwds)\n        t = ltp._local2ecef(self, nine=True)\n        if LatLon is None:\n            r = _xnamed(t, n) if n else t\n        else:\n            kwds = _xkwds(kwds, height=t.height, datum=t.datum)\n            r    =  LatLon(t.lat, t.lon, **kwds)  # XXX ltp?\n        return r\n\n    def toLocal9Tuple(self, M=False, **name):\n        '''Get this local as a C{Local9Tuple}.\n\n           @kwarg M: Optionally include the rotation matrix (C{bool}).\n           @kwarg name: Optional C{B{name}=NN} (C{str}).\n\n           @return: L{Local9Tuple}C{(x, y, z, lat, lon, height, ltp, ecef, M)}\n                    with C{ltp} this C{Ltp}, C{ecef} an L{Ecef9Tuple} and C{M}\n                    an L{EcefMatrix} or C{None}.\n        '''\n        ltp = self.ltp  # see C{self.toLatLon}\n        t   = ltp._local2ecef(self, nine=True, M=M)\n        return Local9Tuple(self.x, self.y, self.z,\n                           t.lat,  t.lon,  t.height,\n                           ltp, t, t.M, name=t._name__(name))\n\n    def toNed(self, Ned=None, **name_Ned_kwds):\n        '''Get the local I{North, East, Down} (Ned) components.\n\n           @kwarg Ned: Class to return NED (L{Ned}) or C{None}.\n           @kwarg name_Ned_kwds: Optional C{B{name}=NN} (C{str}) and optionally,\n                       additional B{C{Ned}} keyword arguments, ignored if C{B{Ned}\n                       is None}.\n\n           @return: An B{C{Ned}} instance or an L{Ned4Tuple}C{(north, east, down,\n                    ltp)} if C{B{Ned} is None}.\n\n           @raise TypeError: Invalid B{C{Ned}} or B{C{name_Ned_kwds}} item.\n        '''\n        return self.ned4._toNed(Ned, name_Ned_kwds)\n\n    def toXyz(self, Xyz=None, **name_Xyz_kwds):\n        '''Get the local I{X, Y, Z} (XYZ) components.\n\n           @kwarg Xyz: Class to return XYZ (L{XyzLocal}, L{Enu}, L{Ned}, L{Aer})\n                       or C{None}.\n           @kwarg name_Xyz_kwds: Optional C{B{name}=NN} (C{str}) and optionally,\n                       additional B{C{Xyz}} keyword arguments, ignored if C{B{Xyz}\n                       is None}.\n\n           @return: An B{C{Xyz}} instance or an L{Xyz4Tuple}C{(x, y, z, ltp)} if\n                    C{B{Xyz} is None}.\n\n           @raise TypeError: Invalid B{C{Xyz}} or B{C{name_Xyz_kwds}} item.\n        '''\n        return self.xyz4._toXyz(Xyz, name_Xyz_kwds)\n\n    @Property_RO\n    def up(self):\n        '''Get the Up component (C{meter}).\n        '''\n        return Meter(up=self.z)\n\n#   @Property_RO\n#   def x(self):  # see: Vector3d.x\n#       '''Get the X component (C{meter}).\n#       '''\n#       return self._x\n\n#   @Property_RO\n#   def xyz(self):  # see: Vector3d.xyz\n#       '''Get the I{local} C{(X, Y, Z)} coordinates (L{Vector3Tuple}C{(x, y, z)}).\n#       '''\n#       return Vector3Tuple(self.x, self.y, self.z, name=self.name)  # like Ecef9Tuple.xyz, Local6tuple.xyz\n\n    @Property_RO\n    def xyz4(self):\n        '''Get the C{(x, y, z, ltp)} components (L{Xyz4Tuple}).\n        '''\n        return Xyz4Tuple(self.x, self.y, self.z, self.ltp, name=self.name)\n\n    @Property_RO\n    def xyzLocal(self):\n        '''Get this L{XyzLocal}.\n        '''\n        return self\n\n#   @Property_RO\n#   def y(self):  # see: Vector3d.y\n#       '''Get the Y component (C{meter}).\n#       '''\n#       return self._y\n\n#   @Property_RO\n#   def z(self):  # see: Vector3d.z\n#       '''Get the Z component (C{meter}).\n#       '''\n#       return self._z\n\n\nclass Xyz4Tuple(_Abc4Tuple):\n    '''4-Tuple C{(x, y, z, ltp)}, all in C{meter} except C{ltp}.\n    '''\n    _Names_ = (_x_,   _y_,   _z_,    _ltp_)\n    _Units_ = ( Meter, Meter, Meter, _Pass)\n\n    def _toXyz(self, Cls, Cls_kwds):\n        '''(INTERNAL) Return C{Cls(..., **Cls_kwds)} instance.\n        '''\n        return self._2Cls(XyzLocal, Cls, Cls_kwds)\n\n    @property_RO\n    def xyz4(self):\n        '''Get the C{(x, y, z, ltp)} components (L{Xyz4Tuple}).\n        '''\n        return self\n\n    @Property_RO\n    def xyzLocal(self):\n        '''Get this L{Xyz4Tuple} as an L{XyzLocal}.\n        '''\n        return XyzLocal(*self, name=self.name)\n\n\nclass Enu(XyzLocal):\n    '''Local C{Eeast-North-Up} (ENU) location in a I{local tangent plane}.\n\n       @see: U{East, North, Up (ENU)<https://GSSC.ESA.int/navipedia/index.php/\n             Transformations_between_ECEF_and_ENU_coordinates>} coordinates.\n    '''\n    _toStr = _enu_\n\n    def __init__(self, east_enu, north=0, up=0, ltp=None, **name):\n        '''New L{Enu}.\n\n           @arg east_enu: Scalar East component (C{meter}) or a previous\n                          I{local} instance (L{Enu}, L{Enu4Tuple}, L{Aer},\n                          L{Aer4Tuple}, L{Local9Tuple}, L{Ned}, L{Ned4Tuple},\n                          L{XyzLocal} or L{Xyz4Tuple}).\n           @kwarg north: Scalar North component (C{meter}), iff B{C{east_enu}}\n                         is C{meter}, ignored otherwise.\n           @kwarg up: Scalar Up component (C{meter}, normal from the surface\n                      of the ellipsoid or sphere), iff B{C{east_enu}} is\n                      C{meter}, ignored otherwise.\n           @kwarg ltp: The I{local tangent plane}, (geodetic) origin (L{Ltp},\n                       L{LocalCartesian}).\n           @kwarg name: Optional C{B{name}=NN} (C{str}).\n\n           @raise TypeError: Invalid B{C{east_enu}} or B{C{ltp}}.\n\n           @raise UnitError: Invalid B{C{east_enu}}, B{C{north}} or B{C{up}}.\n        '''\n        XyzLocal.__init__(self, east_enu, north, up, ltp=ltp, **name)\n\n    def toUvw(self, location, Uvw=None, **name_Uvw_kwds):\n        '''Get the I{u, v, w} (UVW) components at a location.\n\n           @arg location: The geodetic (C{LatLon}) or geocentric (C{Cartesian},\n                          L{Vector3d}) location, like a Point-Of-View.\n           @kwarg Uvw: Class to return UWV (L{Uvw}) or C{None}.\n           @kwarg name_Uvw_kwds: Optional C{B{name}=NN} (C{str}) and optionally,\n                       additional B{L{Uvw}} keyword arguments, ignored if C{B{Uvw}\n                       is None}.\n\n           @return: A B{C{Uvw}} instance or a L{Uvw3Tuple}C{(u, v, w)} if C{B{Uvw}\n                    is None}.\n\n           @raise TypeError: Invalid B{C{location}} or B{C{name_Uvw_kwds}} item.\n\n           @see: Function U{lookAtSpheroid<https://PyPI.org/project/pymap3d>}.\n        '''\n        try:\n            sa, ca, sb, cb = sincos2_(*location.philam)\n        except Exception as x:\n            raise _TypeError(location=location, cause=x)\n        e, n, u, _ = self.enu4\n\n        t = fdot_(ca, u, -sa, n)\n        U = fdot_(cb, t, -sb, e)\n        V = fdot_(cb, e,  sb, t)\n        W = fdot_(ca, n,  sa, u)\n\n        n, kwds = _name2__(name_Uvw_kwds, _or_nameof=self)\n        return Uvw3Tuple(U, V, W, name=n) if Uvw is None else \\\n                     Uvw(U, V, W, name=n, **kwds)\n\n    @Property_RO\n    def xyzLocal(self):\n        '''Get this ENU as an L{XyzLocal}.\n        '''\n        return XyzLocal(*self.xyz4, name=self.name)\n\n\nclass Enu4Tuple(_Abc4Tuple):\n    '''4-Tuple C{(east, north, up, ltp)}, in C{meter} except C{ltp}.\n    '''\n    _Names_ = (_east_, _north_, _up_,   _ltp_)\n    _Units_ = ( Meter,  Meter,   Meter, _Pass)\n\n    def _toEnu(self, Cls, Cls_kwds):\n        '''(INTERNAL) Return C{Cls(..., **Cls_kwds)} instance.\n        '''\n        return self._2Cls(Enu, Cls, Cls_kwds)\n\n    @Property_RO\n    def xyzLocal(self):\n        '''Get this L{Enu4Tuple} as an L{XyzLocal}.\n        '''\n        return XyzLocal(*self, name=self.name)\n\n\nclass Local9Tuple(_NamedTuple):\n    '''9-Tuple C{(x, y, z, lat, lon, height, ltp, ecef, M)} with I{local} C{x},\n       C{y}, C{z} all in C{meter}, I{geodetic} C{lat}, C{lon}, C{height}, I{local\n       tangent plane} C{ltp} (L{Ltp}), C{ecef} (L{Ecef9Tuple}) with I{geocentric}\n       C{x}, C{y}, C{z}, I{geodetic} C{lat}, C{lon}, C{height} and I{concatenated}\n       rotation matrix C{M} (L{EcefMatrix}) or C{None}.\n    '''\n    _Names_ = (_x_,   _y_,   _z_,   _lat_, _lon_, _height_, _ltp_, _ecef_, _M_)\n    _Units_ = ( Meter, Meter, Meter, Lat,   Lon,   Height,  _Pass, _Pass,  _Pass)\n\n    @Property_RO\n    def azimuth(self):\n        '''Get the I{local} Azimuth, bearing from North (C{degrees360}).\n        '''\n        return self.xyzLocal.aer4.azimuth\n\n    @Property_RO\n    def down(self):\n        '''Get the I{local} Down, C{-z} component (C{meter}).\n        '''\n        return -self.z\n\n    @Property_RO\n    def east(self):\n        '''Get the I{local} East, C{x} component (C{meter}).\n        '''\n        return self.x\n\n    @Property_RO\n    def elevation(self):\n        '''Get the I{local} Elevation, tilt I{above} horizon (C{degrees90}).\n        '''\n        return self.xyzLocal.aer4.elevation\n\n    @Property_RO\n    def groundrange(self):\n        '''Get the I{local} ground range, distance (C{meter}).\n        '''\n        return self.xyzLocal.aer4.groundrange\n\n    @Property_RO\n    def lam(self):\n        '''Get the I{geodetic} longitude in C{radians} (C{float}).\n        '''\n        return self.philam.lam\n\n    @Property_RO\n    def latlon(self):\n        '''Get the I{geodetic} lat-, longitude in C{degrees} (L{LatLon2Tuple}C{(lat, lon)}).\n        '''\n        return LatLon2Tuple(self.lat, self.lon, name=self.name)\n\n    @Property_RO\n    def latlonheight(self):\n        '''Get the I{geodetic} lat-, longitude in C{degrees} and height (L{LatLon3Tuple}C{(lat, lon, height)}).\n        '''\n        return self.latlon.to3Tuple(self.height)\n\n    @Property_RO\n    def north(self):\n        '''Get the I{local} North, C{y} component (C{meter}).\n        '''\n        return self.y\n\n    @Property_RO\n    def phi(self):\n        '''Get the I{geodetic} latitude in C{radians} (C{float}).\n        '''\n        return self.philam.phi\n\n    @Property_RO\n    def philam(self):\n        '''Get the I{geodetic} lat-, longitude in C{radians} (L{PhiLam2Tuple}C{(phi, lam)}).\n        '''\n        return PhiLam2Tuple(radians(self.lat), radians(self.lon), name=self.name)\n\n    @Property_RO\n    def philamheight(self):\n        '''Get the I{geodetic} lat-, longitude in C{radians} and height (L{PhiLam3Tuple}C{(phi, lam, height)}).\n        '''\n        return self.philam.to3Tuple(self.height)\n\n    @Property_RO\n    def slantrange(self):\n        '''Get the I{local} slant Range, distance (C{meter}).\n        '''\n        return self.xyzLocal.aer4.slantrange\n\n    def toAer(self, Aer=None, **name_Aer_kwds):\n        '''Get the I{local} I{Azimuth, Elevation, slant Range} (AER) components.\n\n           @kwarg Aer: Class to return AER (L{Aer}) or C{None}.\n           @kwarg name_Aer_kwds: Optional C{B{name}=NN} (C{str}) and optionally,\n                       additional B{L{Aer}} keyword arguments, ignored if C{B{Aer}\n                       is None}.\n\n           @return: An B{C{Aer}} instance or an L{Aer4Tuple}C{(azimuth, elevation,\n                    slantrange, ltp)} if C{B{Aer} is None}.\n\n           @raise TypeError: Invalid B{C{Aer}} or B{C{name_Aer_kwds}} item.\n        '''\n        return self.xyzLocal.toAer(Aer=Aer, **name_Aer_kwds)\n\n    def toCartesian(self, Cartesian=None, **name_Cartesian_kwds):\n        '''Convert this I{local} to I{geocentric} C{(x, y, z)} (ECEF).\n\n           @kwarg Cartesian: Optional I{geocentric} class to return C{(x, y, z)}\n                             (C{Cartesian}) or C{None}.\n           @kwarg name_Cartesian_kwds: Optional C{B{name}=NN} (C{str}) and optionally,\n                       additional B{C{Cartesian}} keyword arguments, ignored if\n                       C{B{Cartesian} is None}.\n\n           @return: A C{B{Cartesian}(x, y, z, **B{Cartesian_kwds})} instance or a\n                    L{Vector4Tuple}C{(x, y, z, h)} if C{B{Cartesian} is None}.\n\n           @raise TypeError: Invalid B{C{Cartesian}} or B{C{name_Cartesian_kwds}} item.\n        '''\n        return self.ecef.toCartesian(Cartesian=Cartesian, **name_Cartesian_kwds)  # PYCHOK _Tuple\n\n    def toEnu(self, Enu=None, **name_Enu_kwds):\n        '''Get the I{local} I{East, North, Up} (ENU) components.\n\n           @kwarg Enu: Class to return ENU (L{Enu}) or C{None}.\n           @kwarg name_Enu_kwds: Optional C{B{name}=NN} (C{str}) and optionally,\n                       additional B{L{Enu}} keyword arguments, ignored if C{B{Enu}\n                       is None}.\n\n           @return: ENU as an L{Enu} instance or if C{B{Enu} is None}, an\n                    L{Enu4Tuple}C{(east, north, up, ltp)}.\n\n           @raise TypeError: Invalid B{C{Enu}} or B{C{name_Enu_kwds}} item.\n        '''\n        return self.xyzLocal.toEnu(Enu=Enu, **name_Enu_kwds)\n\n    def toLatLon(self, LatLon=None, **name_LatLon_kwds):\n        '''Convert this I{local} to I{geodetic} C{(lat, lon, height)}.\n\n           @kwarg LatLon: Optional I{geodetic} class to return C{(lat, lon, height)}\n                          (C{LatLon}) or C{None}.\n           @kwarg name_LatLon_kwds: Optional C{B{name}=NN} (C{str}) and optionally,\n                       additional B{C{LatLon}} keyword arguments, ignored if\n                       C{B{LatLon} is None}.\n\n           @return: An C{B{LatLon}(lat, lon, **B{LatLon_kwds})} instance or if\n                    C{B{LatLon} is None}, a L{LatLon4Tuple}C{(lat, lon, height,\n                    datum)} or L{LatLon3Tuple}C{(lat, lon, height)} if C{datum}\n                    is specified or not.\n\n           @raise TypeError: Invalid B{C{LatLon}} or B{C{name_LatLon_kwds}}.\n        '''\n        return self.ecef.toLatLon(LatLon=LatLon, **name_LatLon_kwds)  # PYCHOK _Tuple\n\n    def toNed(self, Ned=None, **name_Ned_kwds):\n        '''Get the I{local} I{North, East, Down} (NED) components.\n\n           @kwarg Ned: Class to return NED (L{Ned}) or C{None}.\n           @kwarg name_Ned_kwds: Optional C{B{name}=NN} (C{str}) and optionally,\n                       additional B{L{Ned}} keyword arguments, ignored if C{B{Ned}\n                       is None}.\n\n           @return: An B{C{Ned}} instance or an L{Ned4Tuple}C{(north, east, down,\n                    ltp)} if C{B{Ned} is None}.\n\n           @raise TypeError: Invalid B{C{Ned}} or B{C{name_Ned_kwds}} item.\n        '''\n        return self.xyzLocal.toNed(Ned=Ned, **name_Ned_kwds)\n\n    def toXyz(self, Xyz=None, **name_Xyz_kwds):\n        '''Get the I{local} I{X, Y, Z} (XYZ) components.\n\n           @kwarg Xyz: Class to return XYZ (L{XyzLocal}) or C{None}.\n           @kwarg name_Xyz_kwds: Optional C{B{name}=NN} (C{str}) and optionally,\n                       additional B{C{Xyz}} keyword arguments, ignored if C{B{Xyz}\n                       is None}.\n\n           @return: An B{C{Xyz}} instance or an L{Xyz4Tuple}C{(x, y, z, ltp)} if\n                    C{B{Xyz} is None}.\n\n           @raise TypeError: Invalid B{C{Xyz}} or B{C{name_Xyz_kwds}} item.\n        '''\n        return self.xyzLocal.toXyz(Xyz=Xyz, **name_Xyz_kwds)\n\n    @Property_RO\n    def up(self):\n        '''Get the I{local} Up, C{z} component (C{meter}).\n        '''\n        return self.z\n\n    @Property_RO\n    def xyz(self):\n        '''Get the I{local} C{(X, Y, Z)} components (L{Vector3Tuple}C{(x, y, z)}).\n        '''\n        return Vector3Tuple(self.x, self.y, self.z, name=self.name)  # like Ecef9Tuple.xyz\n\n    @Property_RO\n    def xyzLocal(self):\n        '''Get this L{Local9Tuple} as an L{XyzLocal}.\n        '''\n        return XyzLocal(*self.xyz, ltp=self.ltp, name=self.name)  # PYCHOK .ltp\n\n\n_XyzLocals4 =  XyzLocal, Enu, Ned, Aer  # PYCHOK in .ltp\n_XyzLocals5 = _XyzLocals4 + (Local9Tuple,)  # PYCHOK in .ltp\n\n\nclass Uvw(_Vector3d):\n    '''3-D C{u-v-w} (UVW) components.\n    '''\n    _toStr = _uvw_\n\n    def __init__(self, u_uvw, v=0, w=0, **name):\n        '''New L{Uvw}.\n\n           @arg u_uvw: Scalar U component (C{meter}) or a previous instance (L{Uvw},\n                       L{Uvw3Tuple}, L{Vector3d}).\n           @kwarg v: V component (C{meter}), iff B{C{u_uvw}} is C{meter}, ignored\n                     otherwise.\n           @kwarg w: W component (C{meter}), iff B{C{u_uvw}} is C{meter}, ignored\n                     otherwise.\n           @kwarg name: Optional C{B{name}=NN} (C{str}).\n\n           @raise TypeError: Invalid B{C{east_enu}}.\n\n           @raise UnitError: Invalid B{C{east_enu}}, B{C{v}} or B{C{w}}.\n        '''\n        Vector3d.__init__(self, u_uvw, v, w, **name)\n\n    def toEnu(self, location, Enu=Enu, **name_Enu_kwds):\n        '''Get the I{East, North, Up} (ENU) components at a location.\n\n           @arg location: The geodetic (C{LatLon}) or geocentric (C{Cartesian},\n                          L{Vector3d}) location from where to cast the L{Los}.\n           @kwarg Enu: Class to return ENU (L{Enu}) or C{None}.\n           @kwarg name_Enu_kwds: Optional C{B{name}=NN} (C{str}) and optionally,\n                       additional B{L{Enu}} keyword arguments, ignored if C{B{Enu}\n                       is None}.\n\n           @return: An B{C{Enu}} instance or an L{Enu4Tuple}C{(east, north, up, ltp)}\n                    with C{ltp=None} if C{B{Enu} is None}.\n\n           @raise TypeError: Invalid B{C{location}}, B{C{Enu}} or B{C{name_Enu_kwds}} item.\n\n           @see: Function U{lookAtSpheroid<https://PyPI.org/project/pymap3d>}.\n        '''\n        try:\n            sa, ca, sb, cb = sincos2_(*location.philam)\n        except Exception as x:\n            raise _TypeError(location=location, cause=x)\n        u, v, w = self.uvw\n\n        t = fdot_(cb, u,  sb, v)\n        E = fdot_(cb, v, -sb, u)\n        N = fdot_(ca, w, -sa, t)\n        U = fdot_(ca, t,  sa, w)\n\n        n, kwds = _name2__(name_Enu_kwds, _or_nameof=self)\n        return Enu4Tuple(E, N, U, name=n) if Enu is None else \\\n                     Enu(E, N, U, name=n, **kwds)\n\n    u = Vector3d.x\n\n    @Property_RO\n    def uvw(self):\n        '''Get the C{(U, V, W)} components (L{Uvw3Tuple}C{(u, v, w)}).\n        '''\n        return Uvw3Tuple(self.u, self.v, self.w, name=self.name)\n\n    v = Vector3d.y\n    w = Vector3d.z\n\n\nclass Uvw3Tuple(_NamedTuple):\n    '''3-Tuple C{(u, v, w)}, in C{meter}.\n    '''\n    _Names_ = ('u',   'v',   'w')\n    _Units_ = ( Meter, Meter, Meter)\n\n\nclass Los(Aer):\n    '''A Line-Of-Sight (LOS) from a C{LatLon} or C{Cartesian} location.\n    '''\n\n    def __init__(self, azimuth_aer, elevation=0, **name):\n        '''New L{Los}.\n\n           @arg azimuth_aer: Scalar azimuth, bearing from North (compass C{degrees})\n                             or a previous instance (L{Aer}, L{Aer4Tuple}, L{Enu},\n                             L{Enu4Tuple} or L{Los}).\n           @kwarg elevation: Scalar angle I{above} the horizon (C{degrees}, horizon\n                             is 0, zenith +90, nadir -90), if B{C{azimuth_aer}} is\n                             C{degrees}, ignored otherwise.\n           @kwarg name: Optional C{B{name}=NN} (C{str}).\n\n           @raise TypeError: Invalid B{C{azimuth_aer}}.\n\n           @raise UnitError: Invalid B{C{azimuth_aer}} or B{C{elevation}}.\n        '''\n        t = Aer(azimuth_aer, elevation)\n        Aer.__init__(self, t.azimuth, t.elevation, slantrange=_1_0, **name)\n\n    def toUvw(self, location, Uvw=Uvw, **name_Uvw_kwds):\n        '''Get this LOS' I{target} (UVW) components from a location.\n\n           @arg location: The geodetic (C{LatLon}) or geocentric (C{Cartesian},\n                          L{Vector3d}) location from where to cast this LOS.\n\n           @see: Method L{Enu.toUvw} for further details.\n        '''\n        return self.toEnu().toUvw(location, Uvw=Uvw, **name_Uvw_kwds)\n\n    def toEnu(self, Enu=Enu, **name_Enu_kwds):\n        '''Get this LOS as I{East, North, Up} (ENU) components.\n\n           @see: Method L{Aer.toEnu} for further details.\n        '''\n        return Aer.toEnu(self, Enu=Enu, **name_Enu_kwds)\n\n\nclass ChLV9Tuple(Local9Tuple):\n    '''9-Tuple C{(Y, X, h_, lat, lon, height, ltp, ecef, M)} with I{B{unfalsed} Swiss\n       (Y, X, h_)} coordinates and height, all in C{meter}, C{ltp} either a L{ChLV},\n       L{ChLVa} or L{ChLVe} instance and C{ecef} (L{EcefKarney} I{at Bern, Ch}),\n       otherwise like L{Local9Tuple}.\n    '''\n    _Names_ = (_Y_, _X_, _h__) + Local9Tuple._Names_[3:]\n\n    @Property_RO\n    def E_LV95(self):\n        '''Get the B{falsed} I{Swiss E_LV95} easting (C{meter}).\n        '''\n        return self.EN2_LV95.E_LV95\n\n    @Property_RO\n    def EN2_LV95(self):\n        '''Get the I{falsed Swiss (E_LV95, N_LV95)} easting and northing (L{ChLVEN2Tuple}).\n        '''\n        return ChLVEN2Tuple(*_ChLV_false2(*self.YX, LV95=True), name=self.name)\n\n    @Property_RO\n    def h_LV03(self):\n        '''Get the I{Swiss h_} height (C{meter}).\n        '''\n        return self.h_\n\n    @Property_RO\n    def h_LV95(self):\n        '''Get the I{Swiss h_} height (C{meter}).\n        '''\n        return self.h_\n\n    @property_RO\n    def isChLV(self):\n        '''Is this a L{ChLV}-generated L{ChLV9Tuple}?.\n        '''\n        return self.ltp.__class__ is _ltp.ChLV\n\n    @property_RO\n    def isChLVa(self):\n        '''Is this a L{ChLVa}-generated L{ChLV9Tuple}?.\n        '''\n        return self.ltp.__class__ is _ltp.ChLVa\n\n    @property_RO\n    def isChLVe(self):\n        '''Is this a L{ChLVe}-generated L{ChLV9Tuple}?.\n        '''\n        return self.ltp.__class__ is _ltp.ChLVe\n\n    @Property_RO\n    def N_LV95(self):\n        '''Get the B{falsed} I{Swiss N_LV95} northing (C{meter}).\n        '''\n        return self.EN2_LV95.N_LV95\n\n    @Property_RO\n    def x(self):\n        '''Get the I{local x, Swiss Y} easting (C{meter}).\n        '''\n        return self.Y\n\n    @Property_RO\n    def x_LV03(self):\n        '''Get the B{falsed} I{Swiss x_LV03} northing (C{meter}).\n        '''\n        return self.yx2_LV03.x_LV03\n\n    @Property_RO\n    def y(self):\n        '''Get the I{local y, Swiss X} northing (C{meter}).\n        '''\n        return self.X\n\n    @Property_RO\n    def y_LV03(self):\n        '''Get the B{falsed} I{Swisss y_LV03} easting (C{meter}).\n        '''\n        return self.yx2_LV03.y_LV03\n\n    @Property_RO\n    def YX(self):\n        '''Get the B{unfalsed} easting and northing (L{ChLVYX2Tuple}).\n        '''\n        return ChLVYX2Tuple(self.Y, self.X, name=self.name)\n\n    @Property_RO\n    def yx2_LV03(self):\n        '''Get the B{falsed} I{Swiss (y_LV03, x_LV03)} easting and northing (L{ChLVyx2Tuple}).\n        '''\n        return ChLVyx2Tuple(*_ChLV_false2(*self.YX, LV95=False), name=self.name)\n\n    @Property_RO\n    def z(self):\n        '''Get the I{local z, Swiss h_} height (C{meter}).\n        '''\n        return self.h_\n\n\nclass ChLVYX2Tuple(_NamedTuple):\n    '''2-Tuple C{(Y, X)} with B{unfalsed} I{Swiss LV95} easting and norting\n       in C{meter}.\n    '''\n    _Names_ = (_Y_,   _X_)\n    _Units_ = ( Meter, Meter)\n\n    def false2(self, LV95=True):\n        '''Return the falsed C{Swiss LV95} or C{LV03} version of the projection.\n\n           @see: Function L{ChLV.false2} for more information.\n        '''\n        return _ChLV_false2(*self, LV95=LV95, name=self.name)\n\n\nclass ChLVEN2Tuple(_NamedTuple):\n    '''2-Tuple C{(E_LV95, N_LV95)} with B{falsed} I{Swiss LV95} easting and\n       norting in C{meter (2_600_000, 1_200_000)} and origin at C{Bern, Ch}.\n    '''\n    _Names_ = ('E_LV95', 'N_LV95')\n    _Units_ = ChLVYX2Tuple._Units_\n\n    def unfalse2(self):\n        '''Return this projection as an B{unfalsed} L{ChLVYX2Tuple}.\n\n           @see: Function L{ChLV.unfalse2} for more information.\n        '''\n        return _ChLV_unfalse2(*self, LV95=True, name=self.name)\n\n\nclass ChLVyx2Tuple(_NamedTuple):\n    '''2-Tuple C{(y_LV03, x_LV03)} with B{falsed} I{Swiss LV03} easting and\n       norting in C{meter (600_000, 200_000)} and origin at C{Bern, Ch}.\n    '''\n    _Names_ = ('y_LV03', 'x_LV03')\n    _Units_ = ChLVYX2Tuple._Units_\n\n    def unfalse2(self):\n        '''Return this projection as an B{unfalsed} L{ChLVYX2Tuple}.\n\n           @see: Function L{ChLV.unfalse2} for more information.\n        '''\n        return _ChLV_unfalse2(*self, LV95=False, name=self.name)\n\n\nclass Footprint5Tuple(_NamedTuple):\n    '''5-Tuple C{(center, upperleft, upperight, loweright, lowerleft)}\n       with the C{center} and 4 corners of the I{local} projection of\n       a C{Frustum}, each an L{Xyz4Tuple}, L{XyzLocal}, C{LatLon}, etc.\n\n       @note: Misspelling of C{upperight} and C{loweright} is I{intentional}.\n    '''\n    _Names_ = (_center_, 'upperleft', 'upperight', 'loweright', 'lowerleft')\n    _Units_ = (_Pass,    _Pass,       _Pass,       _Pass,       _Pass)\n\n    def toLatLon5(self, ltp=None, LatLon=None, **name_LatLon_kwds):\n        '''Convert this footprint's C{center} and 4 corners to I{geodetic}\n           C{LatLon(lat, lon, height)}s, C{LatLon3Tuple}s or C{LatLon4Tuple}s.\n\n           @kwarg ltp: The I{local tangent plane} (L{Ltp}), overriding this\n                       footprint's C{center} or C{frustrum} C{ltp}.\n           @kwarg LatLon: Optional I{geodetic} class (C{LatLon}) or C{None}.\n           @kwarg name_LatLon_kwds: Optional C{B{name}=NN} (C{str}) and optionally,\n                       additional B{C{LatLon}} keyword arguments, ignored if C{B{LatLon}\n                       is None}.\n\n           @return: A L{Footprint5Tuple} of 5 C{B{LatLon}(lat, lon, **B{name_LatLon_kwds})}\n                    instances or if C{B{LatLon} is None}, 5 L{LatLon3Tuple}C{(lat, lon,\n                    height)}s respectively 5 L{LatLon4Tuple}C{(lat, lon, height, datum)}s\n                    depending on whether keyword argument C{datum} is un-/specified.\n\n           @raise TypeError: Invalid B{C{ltp}}, B{C{LatLon}} or B{C{name_LatLon_kwds}} item.\n\n           @see: Methods L{XyzLocal.toLatLon} and L{Footprint5Tuple.xyzLocal5}.\n        '''\n        ltp  = _ltp._xLtp(ltp, self.center.ltp)  # PYCHOK .center\n        kwds = _name1__(name_LatLon_kwds, _or_nameof=self)\n        kwds = _xkwds(kwds, ltp=ltp, LatLon=LatLon)\n        return Footprint5Tuple(t.toLatLon(**kwds) for t in self.xyzLocal5())\n\n    def xyzLocal5(self, ltp=None):\n        '''Return this footprint's C{center} and 4 corners as 5 L{XyzLocal}s.\n\n           @kwarg ltp: The I{local tangent plane} (L{Ltp}), overriding\n                       the {center} and corner C{ltp}s.\n\n           @return: A L{Footprint5Tuple} of 5 L{XyzLocal} instances.\n\n           @raise TypeError: Invalid B{C{ltp}}.\n        '''\n        if ltp is None:\n            p =  self\n        else:\n            p = _ltp._xLtp(ltp)\n            p =  tuple(Xyz4Tuple(t.x, t.y, t.z, p) for t in self)\n        return Footprint5Tuple(t.xyzLocal for t in p)\n\n\ndef _ChLV_false2(Y, X, **LV95_name):\n    '''(INTERNAL) Invoke static method C{ltp.ChLV.false2}.\n    '''\n    return _ltp.ChLV.false2(Y, X, **LV95_name)\n\n\ndef _ChLV_unfalse2(e, n, **LV95_name):\n    '''(INTERNAL) Invoke static method C{ltp.ChLV.unfalse2}.\n    '''\n    return _ltp.ChLV.unfalse2(e, n, **LV95_name)\n\n\ndef _er2gr(e, r):\n    '''(INTERNAL) Elevation and slant range to ground range.\n    '''\n    c = cos(radians(e))\n    return Meter_(groundrange=r * c)\n\n\ndef _init(inst, abc, ltp, name):\n    '''(INTERNAL) Complete C{__init__}.\n    '''\n    if abc is None:\n        n = _name__(**name)\n    else:\n        n =  abc._name__(name)\n        ltp = _xattr(abc, ltp=ltp)\n    if ltp:\n        inst._ltp = _ltp._xLtp(ltp)\n    if n:\n        inst.name = n\n\n\ndef _toStr2(inst, prec=None, fmt=Fmt.SQUARE, sep=_COMMASPACE_):\n    '''(INTERNAL) Get attribute name and value strings, joined and bracketed.\n    '''\n    a = inst._toStr  # 'aer', 'enu', 'ned', 'xyz'\n    t = getattr(inst, a + _4_, ())[:len(a)] or getattr(inst, a)\n    t = strs(t, prec=3 if prec is None else prec)\n    if sep:\n        t = sep.join(t)\n        if fmt:\n            t = fmt(t)\n    return a, t\n\n\ndef _xyz2aer4(inst):\n    '''(INTERNAL) Convert C{(x, y, z}) to C{(A, E, R)}.\n    '''\n    x, y, z, _ = inst.xyz4\n    A = Azimuth(atan2b(x, y))\n    E = Degrees(elevation=atan2d(z, hypot(x, y)))\n    R = Meter(slantrange=hypot_(x, y, z))\n    return Aer4Tuple(A, E, R, inst.ltp, name=inst.name)\n\n\ndef _xyzLocal(*Types, **name_inst):\n    '''(INTERNAL) Get C{inst} or C{inst.xyzLocal}.\n    '''\n    n, inst = _xkwds_item2(name_inst)\n    if isinstance(inst, Types):\n        return None\n    try:\n        return inst.xyzLocal\n    except (AttributeError, TypeError):\n        raise _TypeError(n, inst, txt_not_=_local_)\n\n\n__all__ += _ALL_DOCS(_AbcBase)\n\n# **) MIT License\n#\n# Copyright (C) 2016-2026 -- mrJean1 at Gmail -- All Rights Reserved.\n#\n# Permission is hereby granted, free of charge, to any person obtaining a\n# copy of this software and associated documentation files (the \"Software\"),\n# to deal in the Software without restriction, including without limitation\n# the rights to use, copy, modify, merge, publish, distribute, sublicense,\n# and/or sell copies of the Software, and to permit persons to whom the\n# Software is furnished to do so, subject to the following conditions:\n#\n# The above copyright notice and this permission notice shall be included\n# in all copies or substantial portions of the Software.\n#\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL\n# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR\n# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\n# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n# OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "pygeodesy/mgrs.py",
    "content": "\n# -*- coding: utf-8 -*-\n\nu'''Military Grid Reference System (MGRS/NATO) references.\n\nClasses L{Mgrs}, L{Mgrs4Tuple} and L{Mgrs6Tuple} and functions L{parseMGRS}\nand L{toMgrs}.\n\nPure Python implementation of MGRS, UTM and UPS conversions covering the entire\nI{ellipsoidal} earth, transcoded from I{Chris Veness}' JavaScript originals U{MGRS\n<https://www.Movable-Type.co.UK/scripts/latlong-utm-mgrs.html>} and U{Module mgrs\n<https://www.Movable-Type.co.UK/scripts/geodesy/docs/module-mgrs.html>} and from\nI{Charles Karney}'s C++ class U{MGRS<https://GeographicLib.SourceForge.io/C++/doc/\nclassGeographicLib_1_1MGRS.html>}.\n\nMGRS references comprise a grid zone designation (GZD), a 100 Km grid (square)\ntile identification and an easting and northing (in C{meter}).  The GZD consists\nof a longitudinal zone (or column) I{number} and latitudinal band (row) I{letter}\nin the UTM region between 80°S and 84°N.  Each zone (column) is 6° wide and each\nband (row) is 8° high, except top band 'X' is 12° tall.  In UPS polar regions\nbelow 80°S and above 84°N the GZD contains only a single I{letter}, C{'A'} or\nC{'B'} near the south and C{'Y'} or C{'Z'} around the north pole (for west\nrespectively east longitudes).\n\nSee also the U{United States National Grid<https://www.FGDC.gov/standards/projects/\nFGDC-standards-projects/usng/fgdc_std_011_2001_usng.pdf>} and U{Military Grid\nReference System<https://WikiPedia.org/wiki/Military_grid_reference_system>}.\n\nSee module L{pygeodesy.ups} for env variable C{PYGEODESY_UPS_POLES} determining\nthe UPS encoding I{at} the south and north pole.\n\nSet env variable C{PYGEODESY_GEOCONVERT} to the (fully qualified) path of the\nC{GeoConvert} executable to run this module as I{python[3] -m pygeodesy.mgrs}\nand compare the MGRS results with those from I{Karney}'s utility U{GeoConvert\n<https://GeographicLib.SourceForge.io/C++/doc/GeoConvert.1.html>}.\n'''\n\nfrom pygeodesy.basics import halfs2, _isin, _splituple, _xinstanceof\nfrom pygeodesy.constants import _0_5\nfrom pygeodesy.datums import _ellipsoidal_datum, _WGS84\nfrom pygeodesy.errors import _AssertionError, MGRSError, _parseX, \\\n                             _ValueError, _xkwds\nfrom pygeodesy.interns import NN, _0_, _A_, _AtoZnoIO_, _band_, _B_, \\\n                             _COMMASPACE_, _datum_, _DMAIN_, _easting_, \\\n                             _invalid_, _northing_, _SPACE_, _W_, _Y_, \\\n                             _Z_, _zone_\nfrom pygeodesy.lazily import _ALL_LAZY, _ALL_MODS as _MODS\nfrom pygeodesy.named import _name2__, _NamedBase, _NamedTuple, _Pass\nfrom pygeodesy.namedTuples import EasNor2Tuple, UtmUps5Tuple\nfrom pygeodesy.props import deprecated_property_RO, property_RO, Property_RO\nfrom pygeodesy.streprs import enstr2, _enstr2m3, Fmt, _resolution10, _xzipairs\nfrom pygeodesy.units import Easting, Northing, Str, _100km\nfrom pygeodesy.units import _1um, _2000km  # PYCHOK used!\nfrom pygeodesy.ups import _hemi, toUps8, Ups, _UPS_ZONE\nfrom pygeodesy.utm import toUtm8, _to3zBlat, Utm, _UTM_ZONE_MAX, _UTM_ZONE_MIN\n# from pygeodesy.utmupsBase import _UTM_ZONE_MAX, _UTM_ZONE_MIN  # from .utm\n\n__all__ = _ALL_LAZY.mgrs\n__version__ = '25.05.12'\n\n_AN_    = 'AN'  # default south pole grid tile and band B\n_AtoPx_ = _AtoZnoIO_.tillP\n# <https://GitHub.com/hrbrmstr/mgrs/blob/master/src/mgrs.c>\n_FeUPS  = {_A_: 8, _B_: 20, _Y_:  8, _Z_: 20}  # falsed offsets (C{_100kms})\n_FnUPS  = {_A_: 8, _B_:  8, _Y_: 13, _Z_: 13}  # falsed offsets (C{_100kms})\n_JtoZx_ = 'JKLPQRSTUXYZZ'  # _AtoZnoDEIMNOVW.fromJ, duplicate Z\n# 100 Km grid tile UTM column (E) letters, repeating every third zone\n_LeUTM  = _AtoZnoIO_.tillH, _AtoZnoIO_.fromJ.tillR, _AtoZnoIO_.fromS  # grid E colums\n# 100 Km grid tile UPS column (E) letters for each polar zone\n_LeUPS  = {_A_: _JtoZx_, _B_: 'ABCFGHJKLPQR', _Y_: _JtoZx_, _Z_: 'ABCFGHJ'}\n# 100 Km grid tile UTM and UPS row (N) letters, repeating every other zone\n_LnUTM  = _AtoZnoIO_.tillV, _AtoZnoIO_.fromF.tillV + _AtoZnoIO_.tillE  # grid N rows\n_LnUPS  = {_A_: _AtoZnoIO_, _B_: _AtoZnoIO_, _Y_: _AtoPx_, _Z_: _AtoPx_}\n_polar_ = _SPACE_('polar', _zone_)\n\n\nclass Mgrs(_NamedBase):\n    '''Military Grid Reference System (MGRS/NATO) references,\n       with method to convert to UTM coordinates.\n    '''\n    _band       =  NN     # latitudinal (C..X) or polar (ABYZ) band\n    _bandLat    =  None   # band latitude (C{degrees90} or C{None})\n    _datum      = _WGS84  # Datum (L{Datum})\n    _easting    =  0      # Easting (C{meter}), within 100 Km grid tile\n    _EN         =  NN     # EN digraph (C{str}), 100 Km grid tile\n    _northing   =  0      # Northing (C{meter}), within 100 Km grid tile\n    _resolution =  0      # from L{parseMGRS}, centering (C{meter})\n    _zone       =  0      # longitudinal or polar zone (C{int}), 0..60\n\n    def __init__(self, zone=0, EN=NN, easting=0, northing=0, band=NN,\n                               datum=_WGS84, resolution=0, **name):\n        '''New L{Mgrs} Military grid reference.\n\n           @arg zone: The 6° I{longitudinal} zone (C{int}), 1..60 covering\n                      180°W..180°E or C{0} for I{polar} regions or (C{str})\n                      with the zone number and I{latitudinal} band letter.\n           @arg EN: Two-letter EN digraph (C{str}), grid tile I{using only}\n                    the I{AA} aka I{MGRS-New} (row) U{lettering scheme\n                    <http://Wikipedia.org/wiki/Military_Grid_Reference_System>}.\n           @kwarg easting: Easting (C{meter}), within 100 Km grid tile.\n           @kwarg northing: Northing (C{meter}), within 100 Km grid tile.\n           @kwarg band: Optional, I{latitudinal} band or I{polar} region letter\n                        (C{str}), 'C'|..|'X' covering 80°S..84°N (no 'I'|'O'),\n                        'A'|'B' at the south or 'Y'|'Z' at the north pole.\n           @kwarg datum: This reference's datum (L{Datum}, L{Ellipsoid},\n                         L{Ellipsoid2} or L{a_f2Tuple}).\n           @kwarg resolution: Optional resolution (C{meter}), C{0} for default.\n           @kwarg name: Optional C{B{name}=NN} (C{str}).\n\n           @raise MGRSError: Invalid B{C{zone}}, B{C{EN}}, B{C{easting}},\n                             B{C{northing}}, B{C{band}} or B{C{resolution}}.\n\n           @raise TypeError: Invalid B{C{datum}}.\n        '''\n        if name:\n            self.name = name\n\n        if not (zone or EN or band):\n            EN, band = _AN_, _B_  # default, south pole\n        try:\n            self._zone, self._band, self._bandLat = _to3zBlat(zone, band, Error=MGRSError)\n            en = str(EN)\n            if len(en) != 2 or not en.isalpha():\n                raise ValueError()  # caught below\n            self._EN = en.upper()\n            _ = self._EN2m  # check E and N\n        except (IndexError, KeyError, TypeError, ValueError):\n            raise MGRSError(band=band, EN=EN, zone=zone)\n\n        self._easting  = Easting(easting,   Error=MGRSError)\n        self._northing = Northing(northing, Error=MGRSError)\n        if not _isin(datum, None, Mgrs._datum):\n            self._datum = _ellipsoidal_datum(datum, name=name)  # XXX raiser=_datum_\n\n        if resolution:\n            self.resolution = resolution\n\n    def __str__(self):\n        return self.toStr(sep=_SPACE_)  # for backward compatibility\n\n    @property_RO\n    def band(self):\n        '''Get the I{latitudinal} band C{'C'|..|'X'} (no C{'I'|'O'})\n           or I{polar} region C{'A'|'B'|'Y'|'Z'}) letter (C{str}).\n        '''\n        return self._band\n\n    @Property_RO\n    def bandLatitude(self):\n        '''Get the band latitude (C{degrees90}).\n        '''\n        return self._bandLat\n\n    @Property_RO\n    def datum(self):\n        '''Get the datum (L{Datum}).\n        '''\n        return self._datum\n\n    @deprecated_property_RO\n    def digraph(self):\n        '''DEPRECATED, use property C{EN}.'''\n        return self.EN\n\n    @property_RO\n    def EN(self):\n        '''Get the 2-letter grid tile (C{str}).\n        '''\n        return self._EN\n\n    @deprecated_property_RO\n    def en100k(self):\n        '''DEPRECATED, use property C{EN}.'''\n        return self.EN\n\n    @Property_RO\n    def _EN2m(self):\n        '''(INTERNAL) Get the grid 2-tuple (easting, northing) in C{meter}.\n\n           @note: Raises AssertionError, IndexError or KeyError: Invalid\n                  C{zone} number, C{EN} letter or I{polar} region letter.\n        '''\n        EN = self.EN\n        if self.isUTM:\n            i = self.zone - 1\n            # get easting from the E column (note, +1 because\n            # easting starts at 166e3 due to 500 Km falsing)\n            e = _LeUTM[i % 3].index(EN[0]) + 1\n            # similarly, get northing from the N row\n            n = _LnUTM[i % 2].index(EN[1])\n        elif self.isUPS:\n            B =  self.band\n            e = _LeUPS[B].index(EN[0]) + _FeUPS[B]\n            n = _LnUPS[B].index(EN[1]) + _FnUPS[B]\n        else:\n            raise _AssertionError(zone=self.zone)\n        return float(e * _100km), float(n * _100km)  # meter\n\n    @property_RO\n    def easting(self):\n        '''Get the easting (C{meter} within grid tile).\n        '''\n        return self._easting\n\n    @Property_RO\n    def eastingnorthing(self):\n        '''Get easting and northing (L{EasNor2Tuple}C{(easting, northing)})\n           I{within} the MGRS grid tile, both in C{meter}.\n        '''\n        return EasNor2Tuple(self.easting, self.northing)\n\n    @Property_RO\n    def isUPS(self):\n        '''Is this MGRS in a (polar) UPS zone (C{bool}).\n        '''\n        return self._zone == _UPS_ZONE\n\n    @Property_RO\n    def isUTM(self):\n        '''Is this MGRS in a (non-polar) UTM zone (C{bool}).\n        '''\n        return _UTM_ZONE_MIN <= self._zone <= _UTM_ZONE_MAX\n\n    @property_RO\n    def northing(self):\n        '''Get the northing (C{meter} within grid tile).\n        '''\n        return self._northing\n\n    @Property_RO\n    def northingBottom(self):\n        '''Get the northing of the band bottom (C{meter}).\n        '''\n        a = self.bandLatitude\n        u = toUtm8(a, 0, datum=self.datum, Utm=None) if self.isUTM else \\\n            toUps8(a, 0, datum=self.datum, Ups=None)\n        return int(u.northing / _100km) * _100km\n\n    def parse(self, strMGRS, **name):\n        '''Parse a string to a similar L{Mgrs} instance.\n\n           @arg strMGRS: The MGRS reference (C{str}), see function L{parseMGRS}.\n           @kwarg name: Optional C{B{name}=NN} (C{str}), overriding this name.\n\n           @return: The similar instance (L{Mgrs}).\n\n           @raise MGRSError: Invalid B{C{strMGRS}}.\n        '''\n        return parseMGRS(strMGRS, datum=self.datum, Mgrs=self.classof,\n                                                    name=self._name__(name))\n\n    @property\n    def resolution(self):\n        '''Get the MGRS resolution (C{meter}, power of 10)\n           or C{0} if undefined.\n        '''\n        return self._resolution\n\n    @resolution.setter  # PYCHOK setter!\n    def resolution(self, resolution):\n        '''Set the MGRS resolution (C{meter}, power of 10)\n           or C{0} to undefine and disable UPS/UTM centering.\n\n           @raise MGRSError: Invalid B{C{resolution}}, over\n                             C{1.e+5} or under C{1.e-6}.\n        '''\n        if resolution:  # and resolution > 0\n            r = _resolution10(resolution, Error=MGRSError)\n        else:\n            r = 0\n        if self._resolution != r:\n            self._resolution = r\n\n    @Property_RO\n    def tilesize(self):\n        '''Get the MGRS grid tile size (C{meter}).\n        '''\n        assert _MODS.utmups._MGRS_TILE is _100km\n        return _100km\n\n    def toLatLon(self, LatLon=None, center=True, **toLatLon_kwds):\n        '''Convert this MGRS grid reference to a UTM coordinate.\n\n           @kwarg LatLon: Optional, ellipsoidal class to return the\n                          geodetic point (C{LatLon}) or C{None}.\n           @kwarg center: Optionally, return the grid's center or\n                          lower left corner (C{bool}).\n           @kwarg toLatLon_kwds: Optional, additional L{Utm.toLatLon}\n                                 and B{C{LatLon}} keyword arguments.\n\n           @return: A B{C{LatLon}} instance or if C{B{LatLon} is None}\n                    a L{LatLonDatum5Tuple}C{(lat, lon, datum, gamma,\n                    scale)}.\n\n           @raise TypeError: If B{C{LatLon}} is not ellipsoidal.\n\n           @raise UTMError: Invalid meridional radius or H-value.\n\n           @see: Methods L{Mgrs.toUtm} and L{Utm.toLatLon}.\n        '''\n        u = self.toUtmUps(center=center)\n        return u.toLatLon(LatLon=LatLon, **toLatLon_kwds)\n\n    def toRepr(self, fmt=Fmt.SQUARE, sep=_COMMASPACE_, **prec):  # PYCHOK expected\n        '''Return a string representation of this MGRS grid reference.\n\n           @kwarg fmt: Enclosing backets format (C{str}).\n           @kwarg sep: Separator between name:values (C{str}).\n           @kwarg prec: Precision (C{int}), see method L{Mgrs.toStr}.\n\n           @return: This Mgrs as \"[Z:[dd]B, G:EN, E:easting, N:northing]\"\n                    (C{str}), with C{B{sep} \", \"}.\n\n           @note: MGRS grid references are truncated, not rounded (unlike\n                  UTM/UPS coordinates).\n\n           @raise ValueError: Invalid B{C{prec}}.\n        '''\n        t = self.toStr(sep=None, **prec)\n        return _xzipairs('ZGEN', t, sep=sep, fmt=fmt)\n\n    def toStr(self, prec=0, sep=NN):  # PYCHOK expected\n        '''Return this MGRS grid reference as a string.\n\n           @kwarg prec: Precision, the number of I{decimal} digits (C{int}) or if\n                        negative, the number of I{units to drop}, like MGRS U{PRECISION\n                        <https://GeographicLib.SourceForge.io/C++/doc/GeoConvert.1.html#PRECISION>}.\n           @kwarg sep: Optional separator to join (C{str}) or C{None} to return an unjoined\n                       3-C{tuple} of C{str}s.\n\n           @return: This Mgrs as 4-tuple C{(\"dd]B\", \"EN\", \"easting\", \"northing\")} if C{B{sep}=NN}\n                    or \"[dd]B EN easting northing\" (C{str}) with C{B{sep} \" \"}.\n\n           @note: Both C{easting} and C{northing} strings are C{NN} or missing if C{B{prec} <= -5}.\n\n           @note: MGRS grid references are truncated, not rounded (unlike UTM/UPS).\n\n           @raise ValueError: Invalid B{C{prec}}.\n        '''\n        zB = self.zoneB\n        t  = enstr2(self._easting, self._northing, prec, zB, self.EN)\n        return t if sep is None else sep.join(t).rstrip()\n\n    def toUps(self, Ups=Ups, center=False):\n        '''Convert this MGRS grid reference to a UPS coordinate.\n\n           @kwarg Ups: Optional class to return the UPS coordinate\n                       (L{Ups}) or C{None}.\n           @kwarg center: Optionally, center easting and northing\n                          by the resolution (C{bool}).\n\n           @return: A B{C{Ups}} instance or if C{B{Ups} is None}\n                    a L{UtmUps5Tuple}C{(zone, hemipole, easting,\n                    northing, band)}.\n\n           @raise MGRSError: This MGRS is a I{non-polar} UTM reference.\n        '''\n        if self.isUTM:\n            raise MGRSError(zoneB=self.zoneB, txt_not_=_polar_)\n        return self._toUtmUps(Ups, center)\n\n    def toUtm(self, Utm=Utm, center=False):\n        '''Convert this MGRS grid reference to a UTM coordinate.\n\n           @kwarg Utm: Optional class to return the UTM coordinate\n                       (L{Utm}) or C{None}.\n           @kwarg center: Optionally, center easting and northing\n                          by the resolution (C{bool}).\n\n           @return: A B{C{Utm}} instance or if C{B{Utm} is None}\n                    a L{UtmUps5Tuple}C{(zone, hemipole, easting,\n                    northing, band)}.\n\n           @raise MGRSError: This MGRS is a I{polar} UPS reference.\n        '''\n        if self.isUPS:\n            raise MGRSError(zoneB=self.zoneB, txt=_polar_)\n        return self._toUtmUps(Utm, center)\n\n    def toUtmUps(self, Utm=Utm, Ups=Ups, center=False):\n        '''Convert this MGRS grid reference to a UTM or UPS coordinate.\n\n           @kwarg Utm: Optional class to return the UTM coordinate\n                       (L{Utm}) or C{None}.\n           @kwarg Ups: Optional class to return the UPS coordinate\n                       (L{Utm}) or C{None}.\n           @kwarg center: Optionally, center easting and northing\n                          by the resolution (C{bool}).\n\n           @return: A B{C{Utm}} or B{C{Ups}} instance or if C{B{Utm}\n                    or B{Ups} is None} a L{UtmUps5Tuple}C{(zone,\n                    hemipole, easting, northing, band)}.\n        '''\n        return self._toUtmUps((Utm if self.isUTM else\n                              (Ups if self.isUPS else None)), center)\n\n    def _toUtmUps(self, U, center):\n        '''(INTERNAL) Helper for C{.toUps} and C{.toUtm}.\n        '''\n        e, n = self._EN2m\n        e += self.easting\n        n += self.northing\n        if self.isUTM:\n            # 100 Km row letters repeat every 2,000 Km north;\n            # add 2,000 Km blocks to get into required band\n            b = (self.northingBottom - n) / _2000km\n            if b > 0:\n                b  = int(b) + 1\n                b  = min(b, (3 if self.band == _W_ else 4))\n                n += b * _2000km\n        if center:\n            c = self.resolution\n            if c:\n                c *= _0_5\n                e +=  c\n                n +=  c\n        z =  self.zone\n        h = _hemi(self.bandLatitude)  # _S_ if self.band < _N_ else _N_\n        B =  self.band\n        m =  self.name\n        return UtmUps5Tuple(z, h, e, n, B, name=m, Error=MGRSError) if U is None \\\n                     else U(z, h, e, n, B, name=m, datum=self.datum)\n\n    @property_RO\n    def zone(self):\n        '''Get the I{longitudinal} zone (C{int}), 1..60 or 0 for I{polar}.\n        '''\n        return self._zone\n\n    @Property_RO\n    def zoneB(self):\n        '''Get the I{polar} region letter or the I{longitudinal} zone digits\n           plus I{latitudinal} band letter (C{str}).\n        '''\n        return self.band if self.isUPS else NN(Fmt.zone(self.zone), self.band)\n\n\nclass Mgrs4Tuple(_NamedTuple):\n    '''4-Tuple C{(zone, EN, easting, northing)}, C{zone} and grid\n       tile C{EN} as C{str}, C{easting} and C{northing} in C{meter}.\n\n       @note: The C{zone} consists of either the I{longitudinal} zone\n              number plus the I{latitudinal} band letter or only the\n              I{polar} region letter.\n    '''\n    _Names_ = (_zone_, 'EN', _easting_, _northing_)\n    _Units_ = ( Str,    Str,  Easting,   Northing)\n\n    @deprecated_property_RO\n    def digraph(self):\n        '''DEPRECATED, use attribute C{EN}.'''\n        return self.EN  # PYCHOK or [1]\n\n    def toMgrs(self, **Mgrs_and_kwds):\n        '''Return this L{Mgrs4Tuple} as an L{Mgrs} instance.\n        '''\n        return self.to6Tuple(NN, _WGS84).toMgrs(**Mgrs_and_kwds)\n\n    def to6Tuple(self, band=NN, datum=_WGS84):\n        '''Extend this L{Mgrs4Tuple} to a L{Mgrs6Tuple}.\n\n           @kwarg band: The band (C{str}).\n           @kwarg datum: The datum (L{Datum}).\n\n           @return: An L{Mgrs6Tuple}C{(zone, EN, easting,\n                    northing, band, datum)}.\n        '''\n        z = self.zone  # PYCHOK or [0]\n        B = z[-1:]\n        if B.isalpha():\n            z = z[:-1] or Fmt.zone(0)\n            t = Mgrs6Tuple(z, self.EN, self.easting, self.northing,  # PYCHOK attrs\n                              band or B, datum, name=self.name)\n        else:\n            t = self._xtend(Mgrs6Tuple, band, datum)\n        return t\n\n\nclass Mgrs6Tuple(_NamedTuple):  # XXX only used above\n    '''6-Tuple C{(zone, EN, easting, northing, band, datum)}, with\n       C{zone}, grid tile C{EN} and C{band} as C{str}, C{easting}\n       and C{northing} in C{meter} and C{datum} a L{Datum}.\n\n       @note: The C{zone} is the I{longitudinal} zone C{\"01\"..\"60\"}\n              or C{\"00\"} for I{polar} regions and C{band} is the\n              I{latitudinal} band or I{polar} region letter.\n    '''\n    _Names_ = Mgrs4Tuple._Names_ + (_band_, _datum_)\n    _Units_ = Mgrs4Tuple._Units_ + ( Str,   _Pass)\n\n    @deprecated_property_RO\n    def digraph(self):\n        '''DEPRECATED, use attribute C{EN}.'''\n        return self.EN  # PYCHOK or [1]\n\n    def toMgrs(self, Mgrs=Mgrs, **Mgrs_kwds):\n        '''Return this L{Mgrs6Tuple} as an L{Mgrs} instance.\n        '''\n        kwds = dict(self.items())\n        if self.name:\n            kwds.update(name=self.name)\n        if Mgrs_kwds:\n            kwds.update(Mgrs_kwds)\n        return Mgrs(**kwds)\n\n\nclass _RE(object):\n    '''(INTERNAL) Lazily compiled C{re}gex-es to parse MGRS strings.\n    '''\n    _EN = '([A-Z]{2})'            # 2-letter grid tile designation\n    _en = '([0-9]+)'              # easting_northing digits, 2-10+\n    _pB = '([ABYZ]{1})'           # polar region letter, pseudo-zone 0\n    _zB = '([0-9]{1,2}[C-X]{1})'  # zone number and band letter, no I|O\n\n    @Property_RO\n    def pB_EN(self):  # split polar \"BEN\" into 2 parts\n        import re  # PYCHOK warning locale.Error\n        return re.compile(_RE._pB + _RE._EN, re.IGNORECASE)\n\n    @Property_RO\n    def pB_EN_en(self):  # split polar \"BEN1235...\" into 3 parts\n        import re  # PYCHOK warning locale.Error\n        return re.compile(_RE._pB + _RE._EN + _RE._en, re.IGNORECASE)\n\n    @Property_RO\n    def zB_EN(self):  # split \"1[2]BEN\" into 2 parts\n        import re  # PYCHOK warning locale.Error\n        return re.compile(_RE._zB + _RE._EN, re.IGNORECASE)\n\n    @Property_RO\n    def zB_EN_en(self):  # split \"1[2]BEN1235...\" into 3 parts\n        import re  # PYCHOK warning locale.Error\n        return re.compile(_RE._zB + _RE._EN + _RE._en, re.IGNORECASE)\n\n_RE = _RE()  # PYCHOK singleton\n\n\ndef parseMGRS(strMGRS, datum=_WGS84, Mgrs=Mgrs, **name):\n    '''Parse a string representing a MGRS grid reference,\n       consisting of C{\"[zone]Band, EN, easting, northing\"}.\n\n       @arg strMGRS: MGRS grid reference (C{str}).\n       @kwarg datum: Optional datum to use (L{Datum}).\n       @kwarg Mgrs: Optional class to return the MGRS grid\n                    reference (L{Mgrs}) or C{None}.\n       @kwarg name: Optional B{C{Mgrs}} C{B{name}=NN} (C{str}).\n\n       @return: The MGRS grid reference as B{C{Mgrs}} or if\n                C{B{Mgrs} is None} as an L{Mgrs4Tuple}C{(zone,\n                EN, easting, northing)}.\n\n       @raise MGRSError: Invalid B{C{strMGRS}}.\n    '''\n    def _mg(s, re_UTM, re_UPS):  # return re.match groups\n        m = re_UTM.match(s)\n        if m:\n            return m.groups()\n        m = re_UPS.match(s.lstrip(_0_))\n        if m:\n            return m.groups()\n#           m = m.groups()\n#           t = '00' + m[0]\n#           return (t,) + m[1:]\n        raise ValueError(_SPACE_(repr(s), _invalid_))\n\n    def _MGRS(strMGRS, datum, Mgrs, name):\n        m = _splituple(strMGRS.strip())\n        if len(m) == 1:  # [01]BEN1234512345'\n            m = _mg(m[0], _RE.zB_EN_en, _RE.pB_EN_en)\n            m = m[:2] + halfs2(m[2])\n        elif len(m) == 2:  # [01]BEN 1234512345'\n            m = _mg(m[0], _RE.zB_EN, _RE.pB_EN) + halfs2(m[1])\n        elif len(m) == 3:  # [01]BEN 12345 12345'\n            m = _mg(m[0], _RE.zB_EN, _RE.pB_EN) + m[1:]\n        if len(m) != 4:  # [01]B EN 12345 12345\n            raise ValueError\n\n        zB, EN = m[0].upper(), m[1].upper()\n        if zB[-1:] in 'IO':\n            raise ValueError(_SPACE_(repr(m[0]), _invalid_))\n        e, n, m = _enstr2m3(*m[2:])\n\n        if Mgrs is None:\n            r = Mgrs4Tuple(zB, EN, e, n, **name)\n            _ = r.toMgrs(resolution=m)  # validate\n        else:\n            r = Mgrs(zB, EN, e, n, datum=datum, resolution=m, **name)\n        return r\n\n    return _parseX(_MGRS, strMGRS, datum, Mgrs, name,\n                          strMGRS=strMGRS, Error=MGRSError)\n\n\ndef toMgrs(utmups, Mgrs=Mgrs, **name_Mgrs_kwds):\n    '''Convert a UTM or UPS coordinate to an MGRS grid reference.\n\n       @arg utmups: A UTM or UPS coordinate (L{Utm}, L{Etm} or L{Ups}).\n       @kwarg Mgrs: Optional class to return the MGRS grid reference (L{Mgrs})\n                    or C{None}.\n       @kwarg name_Mgrs_kwds: Optional C{B{name}=NN} (C{str}) and optionally,\n                   additional B{C{Mgrs}} keyword arguments, ignored if C{B{Mgrs}\n                   is None}.\n\n       @return: The MGRS grid reference as B{C{Mgrs}} or if C{B{Mgrs} is None} as\n                an L{Mgrs6Tuple}C{(zone, EN, easting, northing, band, datum)}.\n\n       @raise MGRSError: Invalid B{C{utmups}}.\n\n       @raise TypeError: If B{C{utmups}} is not L{Utm}, L{Etm} nor L{Ups}.\n    '''\n#   _MODS.utmups.utmupsValidate(utmups, MGRS=True, Error-MGRSError)\n    _xinstanceof(Utm, Ups, utmups=utmups)  # Utm, Etm, Ups\n    try:\n        e, n =  utmups.eastingnorthing2(falsed=True)\n        E, e = _um100km2(e)\n        N, n = _um100km2(n)\n        B, z =  utmups.band, utmups.zone\n        if _UTM_ZONE_MIN <= z <= _UTM_ZONE_MAX:\n            i = z - 1\n            # columns in zone 1 are A-H, zone 2 J-R, zone 3 S-Z,\n            # then repeating every 3rd zone (note E-1 because\n            # eastings start at 166e3 due to 500km false origin)\n            EN  = _LeUTM[i % 3][E - 1]\n            # rows in even zones are A-V, in odd zones are F-E\n            EN += _LnUTM[i % 2][N % len(_LnUTM[0])]\n        elif z == _UPS_ZONE:\n            EN  = _LeUPS[B][E - _FeUPS[B]]\n            EN += _LnUPS[B][N - _FnUPS[B]]\n        else:\n            raise _ValueError(zone=z)\n    except (IndexError, TypeError, ValueError) as x:\n        raise MGRSError(B=B, E=E, N=N, utmups=utmups, cause=x)\n\n    t, kwds = _name2__(name_Mgrs_kwds, _or_nameof=utmups)\n    if Mgrs is None:\n        r = Mgrs4Tuple(Fmt.zone(z), EN, e, n, name=t) \\\n             .to6Tuple(B, utmups.datum)\n    else:\n        kwds = _xkwds(kwds, band=B, datum=utmups.datum, name=t)\n        r = Mgrs(z, EN, e, n, **kwds)\n    return r\n\n\ndef _um100km2(m):\n    '''(INTERNAL) An MGRS east-/northing truncated to micrometer (um)\n       precision and to grid tile C{M} and C{m}eter within the tile.\n    '''\n    m = int(m / _1um) * _1um  # micrometer\n    M, m = divmod(m, _100km)\n    return int(M), m\n\n\nif __name__ == _DMAIN_:\n\n    def _main():\n\n        from pygeodesy.ellipsoidalVincenty import LatLon,  fabs\n        from pygeodesy.internals import _fper, printf\n        from pygeodesy.karney import _Xables\n\n#       from math import fabs  # from .ellipsoidalVincenty\n\n        # <https://GeographicLib.SourceForge.io/C++/doc/GeoConvert.1.html>\n        G = _Xables.GeoConvert(_Xables.bin_)\n        if _Xables.X_OK(G):\n            from pygeodesy.internals import _popen2\n            printf(' using: %s', _Xables.name_version(G, base=False))\n            cmd = G, '-m'  # -m converts latlon to MGRS\n        else:\n            printf(' sorry: %s', _Xables.X_not(G))\n            cmd = _popen2 = None\n\n        e = n = 0\n        try:\n            for lat in range(-90, 91, 1):\n                printf('%6s: lat %s ...', n, lat, end=NN, flush=True)\n                nl = _MODS.os.linesep\n                for lon in range(-180, 181, 1):\n                    m = LatLon(lat, lon).toMgrs()\n                    if _popen2:  # and cmd\n                        t = '%s %s' % (lat, lon)\n                        g = _popen2(cmd, stdin=t)[0]\n                        t =  m.toStr()  # sep=NN\n                        if t != g:\n                            e += 1\n                            printf('%s%6s: %s: %r vs %r (lon %s)', nl, -e, m, t, g, lon)\n                            nl = NN\n                    t = m.toLatLon(LatLon=LatLon)\n                    d = max(fabs(t.lat - lat), fabs(t.lon - lon))\n                    if d > 1e-9 and -90 < lat < 90 and -180 < lon < 180:\n                        e += 1\n                        printf('%s%6s: %s: %s vs %s %.6e', nl, -e, m, t.latlon,\n                                                          (float(lat), float(lon)), d)\n                        nl = NN\n                    n += 1\n                if nl:\n                    printf(' OK')\n        except KeyboardInterrupt:\n            printf(nl)\n\n        printf('%6s: %s errors (%s)', n, (e if e else 'no'), _fper(e, n, prec=2))\n\n    _main()\n\n\n# % python3 -m pygeodesy.mgrs\n#  using: /opt/local/bin/GeoConvert -m ...\n#      0: lat -90 ... OK\n#    361: lat -89 ... OK\n#    722: lat -88 ... OK\n#   1083: lat -87 ... OK\n#   1444: lat -86 ... OK\n#   1805: lat -85 ... OK\n#   2166: lat -84 ... OK\n#   2527: lat -83 ... OK\n#   2888: lat -82 ... OK\n#   3249: lat -81 ... OK\n#   3610: lat -80 ... OK\n#  ...\n#  61370: lat 80 ... OK\n#  61731: lat 81 ... OK\n#  62092: lat 82 ... OK\n#  62453: lat 83 ... OK\n#  62814: lat 84 ... OK\n#  63175: lat 85 ... OK\n#  63536: lat 86 ... OK\n#  63897: lat 87 ... OK\n#  64258: lat 88 ... OK\n#  64619: lat 89 ... OK\n#  64980: lat 90 ... OK\n#  65341: no errors (0.00%)\n\n# **) MIT License\n#\n# Copyright (C) 2016-2026 -- mrJean1 at Gmail -- All Rights Reserved.\n#\n# Permission is hereby granted, free of charge, to any person obtaining a\n# copy of this software and associated documentation files (the \"Software\"),\n# to deal in the Software without restriction, including without limitation\n# the rights to use, copy, modify, merge, publish, distribute, sublicense,\n# and/or sell copies of the Software, and to permit persons to whom the\n# Software is furnished to do so, subject to the following conditions:\n#\n# The above copyright notice and this permission notice shall be included\n# in all copies or substantial portions of the Software.\n#\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL\n# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR\n# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\n# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n# OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "pygeodesy/named.py",
    "content": "\n# -*- coding: utf-8 -*-\n\nu'''(INTERNAL) Nameable class instances.\n\nClasses C{_Named}, C{_NamedDict}, C{_NamedEnum}, C{_NamedEnumItem} and\nC{_NamedTuple} and several subclasses thereof, all with nameable instances.\n\nThe items in a C{_NamedDict} are accessable as attributes and the items\nin a C{_NamedTuple} are named to be accessable as attributes, similar to\nstandard Python C{namedtuple}s.\n\n@see: Module L{pygeodesy.namedTuples} for (most of) the C{Named-Tuples}.\n'''\n\nfrom pygeodesy.basics import isbool, isidentifier, iskeyword, isstr, itemsorted, \\\n                             len2, _xcopy, _xdup, _xinstanceof, _xsubclassof, _zip\n# from pygeodesy.ecef import EcefKarney  # _MODS\nfrom pygeodesy.errors import _AssertionError, _AttributeError, _ImmutableError, \\\n                             _incompatible, _KeyError, LenError, _NameError, \\\n                             _NotImplementedError, _TypeError, _TypesError, \\\n                             _UnexpectedError, UnitError, _ValueError, \\\n                             _xattr, _xkwds, _xkwds_item2, _xkwds_pop2\nfrom pygeodesy.internals import _caller3, _envPYGEODESY, _isPyPy, _sizeof, \\\n                                 typename, _under\nfrom pygeodesy.interns import MISSING, NN, _AT_, _COLON_, _COLONSPACE_, _COMMA_, \\\n                             _COMMASPACE_, _DNAME_, _doesn_t_exist_, _DOT_, _DUNDER_, \\\n                             _EQUAL_, _exists_, _name_, _NL_, _NN_, _no_, _other_, \\\n                             _s_, _SPACE_, _std_, _UNDER_, _vs_\nfrom pygeodesy.lazily import _ALL_DOCS, _ALL_LAZY, _ALL_MODS as _MODS\nfrom pygeodesy.props import _allPropertiesOf_n, deprecated_method, _hasProperty, \\\n                            _update_all, property_doc_, Property_RO, property_RO, \\\n                            _update_attrs\nfrom pygeodesy.streprs import attrs, Fmt, lrstrip, pairs, reprs, unstr\n# from pygeodesy.units import _toUnit  # _MODS\n\n__all__ = _ALL_LAZY.named\n__version__ = '26.01.14'\n\n_COMMANL_           = _COMMA_ + _NL_\n_COMMASPACEDOT_     = _COMMASPACE_ + _DOT_\n_item_              = 'item'\n_MRO_               = 'MRO'\n# __DUNDER gets mangled in class\n_name               = _under(_name_)\n_Names_             = '_Names_'\n_registered_        = 'registered'  # PYCHOK used!\n_std_NotImplemented = _envPYGEODESY('NOTIMPLEMENTED', NN).lower() == _std_\n_such_              = 'such'\n_Units_             = '_Units_'\n_UP                 =  2\n\n\nclass ADict(dict):\n    '''A C{dict} with both key I{and} attribute access to\n       the C{dict} items.\n    '''\n    _iteration = None  # Iteration number (C{int}) or C{None}\n\n    def __getattr__(self, name):\n        '''Get the value of an item by B{C{name}}.\n        '''\n        try:\n            return self[name]\n        except KeyError:\n            if name == _name_:\n                return NN\n        raise self._AttributeError(name)\n\n    def __repr__(self):\n        '''Default C{repr(self)}.\n        '''\n        return self.toRepr()\n\n    def __setattr__(self, name, value):\n        '''Set the value of a I{known} item by B{C{name}}.\n        '''\n        try:\n            if self[name] != value:\n                self[name] = value\n        except KeyError:\n            dict.__setattr__(self, name, value)\n\n    def __str__(self):\n        '''Default C{str(self)}.\n        '''\n        return self.toStr()\n\n    def _AttributeError(self, name):\n        '''(INTERNAL) Create an C{AttributeError}.\n        '''\n        if _DOT_ not in name:  # NOT classname(self)!\n            name = _DOT_(self.typename, name)\n        return _AttributeError(item=name, txt=_doesn_t_exist_)\n\n    @property_RO\n    def iteration(self):  # see .named._NamedBase\n        '''Get the iteration number (C{int}) or\n           C{None} if not available/applicable.\n        '''\n        return self._iteration\n\n    def set_(self, iteration=None, **items):  # PYCHOK signature\n        '''Add one or several new items or replace existing ones.\n\n           @kwarg iteration: Optional C{iteration} (C{int}).\n           @kwarg items: One or more C{name=value} pairs.\n        '''\n        if iteration is not None:\n            self._iteration = iteration\n        if items:\n            dict.update(self, items)\n        return self  # in RhumbLineBase.Intersecant2, _PseudoRhumbLine.Position, ...\n\n    def _toL(self):\n        '''(INTERNAL) Get items as list.\n        '''\n        return list(_EQUAL_(*t) for t in self.items())  # _kwdstr\n\n    def toRepr(self, **prec_fmt):\n        '''Like C{repr(dict)} but with C{name} prefix and with\n           C{floats} formatted by function L{pygeodesy.fstr}.\n        '''\n        n = _xattr(self, name=NN) or self.typename\n        return Fmt.PAREN(n, self._toT(_EQUAL_, **prec_fmt))\n\n    def toStr(self, **prec_fmt):\n        '''Like C{str(dict)} but with C{floats} formatted by\n           function L{pygeodesy.fstr}.\n        '''\n        return Fmt.CURLY(self._toT(_COLONSPACE_, **prec_fmt))\n\n    def _toT(self, sep, **kwds):\n        '''(INTERNAL) Helper for C{.toRepr} and C{.toStr}.\n        '''\n        kwds = _xkwds(kwds, prec=6, fmt=Fmt.F, sep=sep)\n        return _COMMASPACE_.join(pairs(itemsorted(self), **kwds))\n\n    @property_RO\n    def typename(self):\n        '''Get this C{ADict}'s type name (C{str}).\n        '''\n        return type(self).__name__  # typename(type(self))\n\n\nclass _Named(object):\n    '''(INTERNAL) Root class for named objects.\n    '''\n    _iteration   = None   # iteration number (C{int}) or C{None}\n    _name        = NN     # name (C{str})\n    _classnaming = False  # prefixed (C{bool})\n#   _updates     = 0      # OBSOLETE Property/property updates\n\n    def __format__(self, fmt):  # PYCHOK no cover\n        '''Not implemented.'''\n        return _NotImplemented(self, fmt)\n\n    def __imatmul__(self, other):  # PYCHOK no cover\n        '''Not implemented.'''\n        return _NotImplemented(self, other)  # PYCHOK Python 3.5+\n\n    def __matmul__(self, other):  # PYCHOK no cover\n        '''Not implemented.'''\n        return _NotImplemented(self, other)  # PYCHOK Python 3.5+\n\n    def __repr__(self):\n        '''Default C{repr(self)}.\n        '''\n        return Fmt.repr_at(self)\n\n    def __rmatmul__(self, other):  # PYCHOK no cover\n        '''Not implemented.'''\n        return _NotImplemented(self, other)  # PYCHOK Python 3.5+\n\n    def __str__(self):\n        '''Default C{str(self)}.\n        '''\n        return self.named2\n\n    def attrs(self, *names, **sep_Nones_pairs_kwds):\n        '''Join named attributes as I{name=value} strings, with C{float}s formatted by\n           function L{pygeodesy.fstr}.\n\n           @arg names: The attribute names, all positional (C{str}).\n           @kwarg sep_Nones_pairs_kwds: Keyword arguments for function L{pygeodesy.pairs},\n                      except C{B{sep}=\", \"} and C{B{Nones}=True} to in-/exclude missing\n                      or C{None}-valued attributes.\n\n           @return: All C{name=value} pairs, joined by B{C{sep}} (C{str}).\n\n           @see: Functions L{pygeodesy.attrs}, L{pygeodesy.pairs} and L{pygeodesy.fstr}\n        '''\n        sep, kwds = _xkwds_pop2(sep_Nones_pairs_kwds, sep=_COMMASPACE_)\n        return sep.join(attrs(self, *names, **kwds))\n\n    @Property_RO\n    def classname(self):\n        '''Get this object's C{[module.]class} name (C{str}), see\n           property C{.classnaming} and function C{classnaming}.\n        '''\n        return classname(self, prefixed=self._classnaming)\n\n    @property_doc_(''' the class naming (C{bool}).''')\n    def classnaming(self):\n        '''Get the class naming (C{bool}), see function C{classnaming}.\n        '''\n        return self._classnaming\n\n    @classnaming.setter  # PYCHOK setter!\n    def classnaming(self, prefixed):\n        '''Set the class naming for C{[module.].class} names (C{bool})\n           to C{True} to include the module name.\n        '''\n        b = bool(prefixed)\n        if self._classnaming != b:\n            self._classnaming = b\n            _update_attrs(self, *_Named_Property_ROs)\n\n    def classof(self, *args, **kwds):\n        '''Create another instance of this very class.\n\n           @arg args: Optional, positional arguments.\n           @kwarg kwds: Optional, keyword arguments.\n\n           @return: New instance (B{self.__class__}).\n        '''\n        return _xnamed(self.__class__(*args, **kwds), self.name)\n\n    def copy(self, deep=False, **name):\n        '''Make a shallow or deep copy of this instance.\n\n           @kwarg deep: If C{True}, make a deep, otherwise a shallow\n                        copy (C{bool}).\n           @kwarg name: Optional, non-empty C{B{name}=NN} (C{str}).\n\n           @return: The copy (C{This class}).\n        '''\n        c = _xcopy(self, deep=deep)\n        if name:\n            _ = c.rename(name)\n        return c\n\n    def _DOT_(self, *names):\n        '''(INTERNAL) Period-join C{self.name} and C{names}.\n        '''\n        return _DOT_(self.name, *names)\n\n    def dup(self, deep=False, **items):\n        '''Duplicate this instance, replacing some attributes.\n\n           @kwarg deep: If C{True}, duplicate deep, otherwise shallow\n                        (C{bool}).\n           @kwarg items: Attributes to be changed (C{any}), including\n                         optional C{B{name}} (C{str}).\n\n           @return: The duplicate (C{This class}).\n\n           @raise AttributeError: Some B{C{items}} invalid.\n        '''\n        n = self.name\n        m, items = _xkwds_pop2(items, name=n)\n        d = _xdup(self, deep=deep, **items)\n        if m != n:\n            d.rename(m)  # zap _Named_Property_ROs\n#       if items:\n#           _update_all(d)\n        return d\n\n    def _instr(self, *attrs, **fmt_prec_props_sep_name__kwds):\n        '''(INTERNAL) Format, used by C{Conic}, C{Ellipsoid}, C{Geodesic...}, C{Transform}, C{Triaxial}.\n        '''\n        def _fmt_prec_props_kwds(fmt=Fmt.F, prec=6, props=(), sep=_COMMASPACE_, **kwds):\n            return fmt, prec, props, sep, kwds\n\n        name, kwds = _name2__(**fmt_prec_props_sep_name__kwds)\n        fmt, prec, props, sep, kwds = _fmt_prec_props_kwds(**kwds)\n\n        t = () if name is None else (Fmt.EQUAL(name=repr(name or self.name)),)\n        if attrs:\n            t += pairs(((a, getattr(self, a)) for a in attrs),\n                       prec=prec, ints=True, fmt=fmt)\n        if props:\n            t += pairs(((p.name, getattr(self, p.name)) for p in props),\n                       prec=prec, ints=True)\n        if kwds:\n            t += pairs(kwds, prec=prec)\n        return sep.join(t) if sep else t\n\n    @property_RO\n    def iteration(self):  # see .karney.GDict\n        '''Get the most recent iteration number (C{int}) or C{None}\n           if not available or not applicable.\n\n           @note: The interation number may be an aggregate number over\n                  several, nested functions.\n        '''\n        return self._iteration\n\n    def methodname(self, which):\n        '''Get a method C{[module.]class.method} name of this object (C{str}).\n\n           @arg which: The method (C{callable}).\n        '''\n        return _DOT_(self.classname, typename(which) if callable(which) else _NN_)\n\n    @property_doc_(''' the name (C{str}).''')\n    def name(self):\n        '''Get the name (C{str}).\n        '''\n        return self._name\n\n    @name.setter  # PYCHOK setter!\n    def name(self, name):\n        '''Set the C{B{name}=NN} (C{str}).\n\n           @raise NameError: Can't rename, use method L{rename}.\n        '''\n        m, n = self._name, _name__(name)\n        if not m:\n            self._name = n\n        elif n != m:\n            n =  repr(n)\n            c =  self.classname\n            t = _DOT_(c, Fmt.PAREN(typename(self.rename), n))\n            n = _DOT_(c, Fmt.EQUALSPACED(name=n))\n            m =  Fmt.PAREN(_SPACE_('was', repr(m)))\n            n = _SPACE_(n, m)\n            raise _NameError(n, txt=_SPACE_('use', t))\n        # to set the name from a sub-class, use\n        #   self.name = name or\n        #  _Named.name.fset(self, name), but NOT\n        #  _Named(self).name = name\n\n    def _name__(self, name):  # usually **name\n        '''(INTERNAL) Get the C{name} or this C{name}.\n        '''\n        return _name__(name, _or_nameof=self)  # nameof(self)\n\n    def _name1__(self, kwds):\n        '''(INTERNAL) Resolve and set the C{B{name}=NN}.\n        '''\n        return _name1__(kwds, _or_nameof=self.name) if self.name else kwds\n\n    @Property_RO\n    def named(self):\n        '''Get the name I{or} class name or C{\"\"} (C{str}).\n        '''\n        return self.name or self.classname\n\n#   @Property_RO\n#   def named_(self):\n#       '''Get the C{class} name I{and/or} the str(name) or C{\"\"} (C{str}).\n#       '''\n#       return _xjoined_(self.classname, self.name, enquote=False)\n\n    @Property_RO\n    def named2(self):\n        '''Get the C{class} name I{and/or} the repr(name) or C{\"\"} (C{str}).\n        '''\n        return _xjoined_(self.classname, self.name)\n\n    @Property_RO\n    def named3(self):\n        '''Get the I{prefixed} C{class} name I{and/or} the name or C{\"\"} (C{str}).\n        '''\n        return _xjoined_(classname(self, prefixed=True), self.name)\n\n    @Property_RO\n    def named4(self):\n        '''Get the C{package.module.class} name I{and/or} the name or C{\"\"} (C{str}).\n        '''\n        return _xjoined_(_DOT_(self.__module__, self.typename),  self.name)\n\n    def _notImplemented(self, *args, **kwds):\n        '''(INTERNAL) See function L{notImplemented}.\n        '''\n        notImplemented(self, *args, **_xkwds(kwds, up=_UP + 1))\n\n    def _notOverloaded(self, *args, **kwds):\n        '''(INTERNAL) See function L{notOverloaded}.\n        '''\n        notOverloaded(self, *args, **_xkwds(kwds, up=_UP + 1))\n\n    def rename(self, name):\n        '''Change the name.\n\n           @arg name: The new name (C{str}).\n\n           @return: The previous name (C{str}).\n        '''\n        m, n = self._name, _name__(name)\n        if n != m:\n            self._name = n\n            _update_attrs(self, *_Named_Property_ROs)\n        return m\n\n    def renamed(self, name):\n        '''Change the name.\n\n           @arg name: The new name (C{str}).\n\n           @return: This instance (C{str}).\n        '''\n        _ = self.rename(name)\n        return self\n\n    @property_RO\n    def sizeof(self):\n        '''Get the current size in C{bytes} of this instance (C{int}).\n        '''\n        return _sizeof(self)\n\n    def toRepr(self, **unused):  # PYCHOK no cover\n        '''Default C{repr(self)}.\n        '''\n        return repr(self)\n\n    def toStr(self, **unused):  # PYCHOK no cover\n        '''Default C{str(self)}.\n        '''\n        return str(self)\n\n    @deprecated_method\n    def toStr2(self, **kwds):  # PYCHOK no cover\n        '''DEPRECATED on 23.10.07, use method C{toRepr}.'''\n        return self.toRepr(**kwds)\n\n#   def _unstr(self, which, *args, **kwds):\n#       '''(INTERNAL) Return the string representation of a method\n#          invokation of this instance: C{str(self).method(...)}\n#\n#          @see: Function L{pygeodesy.unstr}.\n#       '''\n#       return _DOT_(self, unstr(which, *args, **kwds))\n\n    @property_RO\n    def typename(self):\n        '''Get this object's type name (C{str}).\n        '''\n        return type(self).__name__  # typename(type(self))\n\n    def _xnamed(self, inst, name=NN, **force):\n        '''(INTERNAL) Set the instance' C{.name = self.name}.\n\n           @arg inst: The instance (C{_Named}).\n           @kwarg name: The name (C{str}).\n           @kwarg force: If C{True}, force rename (C{bool}).\n\n           @return: The B{C{inst}}, renamed if B{C{force}}d\n                    or if not named before.\n        '''\n        return _xnamed(inst, name, **force)\n\n    def _xrenamed(self, inst):\n        '''(INTERNAL) Rename the instance' C{.name = self.name}.\n\n           @arg inst: The instance (C{_Named}).\n\n           @return: The B{C{inst}}, named if not named before.\n\n           @raise TypeError: Not C{isinstance(B{inst}, _Named)}.\n        '''\n        _xinstanceof(_Named, inst=inst)  # assert\n        return inst.renamed(self.name)\n\n_Named_Property_ROs = _allPropertiesOf_n(5, _Named, Property_RO)  # PYCHOK once\n\n\nclass _NamedBase(_Named):\n    '''(INTERNAL) Base class with name.\n    '''\n    def __repr__(self):\n        '''Default C{repr(self)}.\n        '''\n        return self.toRepr()\n\n    def __str__(self):\n        '''Default C{str(self)}.\n        '''\n        return self.toStr()\n\n    def others(self, *other, **name_other_up):\n        '''Refined class comparison, invoked as C{.others(other)},\n           C{.others(name=other)} or C{.others(other, name='other')}.\n\n           @arg other: The other instance (any C{type}).\n           @kwarg name_other_up: Overriding C{name=other} and C{up=1}\n                                 keyword arguments.\n\n           @return: The B{C{other}} iff compatible with this instance's\n                    C{class} or C{type}.\n\n           @raise TypeError: Mismatch of the B{C{other}} and this\n                             instance's C{class} or C{type}.\n        '''\n        if other:  # most common, just one arg B{C{other}}\n            other0 = other[0]\n            if isinstance(other0, self.__class__) or \\\n               isinstance(self, other0.__class__):\n                return other0\n\n        other, name, up = _xother3(self, other, **name_other_up)\n        if isinstance(self, other.__class__) or \\\n           isinstance(other, self.__class__):\n            return _xnamed(other, name)\n\n        raise _xotherError(self, other, name=name, up=up + 1)\n\n    def toRepr(self, **kwds):  # PYCHOK expected\n        '''(INTERNAL) I{Could be overloaded}.\n\n           @kwarg kwds: Optional, C{toStr} keyword arguments.\n\n           @return: C{toStr}() with keyword arguments (as C{str}).\n        '''\n        t = lrstrip(self.toStr(**kwds))\n#       if self.name:\n#           t =  NN(Fmt.EQUAL(name=repr(self.name)), sep, t)\n        return Fmt.PAREN(self.classname, t)  # XXX (self.named, t)\n\n#   def toRepr(self, **kwds)\n#       if kwds:\n#           s = NN.join(reprs((self,), **kwds))\n#       else:  # super().__repr__ only for Python 3+\n#           s = super(self.__class__, self).__repr__()\n#       return Fmt.PAREN(self.named, s)  # clips(s)\n\n    def toStr(self, **kwds):  # PYCHOK no cover\n        '''I{Must be overloaded}.'''\n        notOverloaded(self, **kwds)\n\n#   def toStr(self, **kwds):\n#       if kwds:\n#           s = NN.join(strs((self,), **kwds))\n#       else:  # super().__str__ only for Python 3+\n#           s = super(self.__class__, self).__str__()\n#       return s\n\n    def _update(self, updated, *attrs, **setters):\n        '''(INTERNAL) Zap cached instance attributes and overwrite C{__dict__} or L{Property_RO} values.\n        '''\n        u = _update_all(self, *attrs) if updated else 0\n        if setters:\n            d = self.__dict__\n            # double-check that setters are Property_RO's\n            for n, v in setters.items():\n                if n in d or _hasProperty(self, n, Property_RO):\n                    d[n] = v\n                else:\n                    raise _AssertionError(n, v, txt=repr(self))\n            u += len(setters)\n        return u\n\n\nclass _NamedDict(ADict, _Named):\n    '''(INTERNAL) Named C{dict} with key I{and} attribute access\n       to the items.\n    '''\n    def __init__(self, *args, **kwds):\n        if args:  # is args[0] a dict?\n            if len(args) != 1:  # or not isinstance(args[0], dict)\n                kwds = _name1__(kwds)\n                t = unstr(self.classname, *args, **kwds)  # PYCHOK no cover\n                raise _ValueError(args=len(args), txt=t)\n            kwds = _xkwds(dict(args[0]), **kwds)  # args[0] overrides kwds\n        n, kwds = _name2__(**kwds)\n        if n:\n            _Named.name.fset(self, n)  # see _Named.name\n        ADict.__init__(self, kwds)\n\n    def __delattr__(self, name):\n        '''Delete an attribute or item by B{C{name}}.\n        '''\n        if name in self:  # in ADict.keys(self):\n            ADict.pop(self, name)\n        elif name in (_name_, _name):\n            # ADict.__setattr__(self, name, NN)\n            _Named.rename(self, NN)\n        else:\n            ADict.__delattr__(self, name)\n\n    def __getattr__(self, name):\n        '''Get the value of an item by B{C{name}}.\n        '''\n        try:\n            return self[name]\n        except KeyError:\n            if name == _name_:\n                return _Named.name.fget(self)\n        raise ADict._AttributeError(self, self._DOT_(name))\n\n    def __getitem__(self, key):\n        '''Get the value of an item by B{C{key}}.\n        '''\n        if key == _name_:\n            raise self._KeyError(key)\n        return ADict.__getitem__(self, key)\n\n    def _KeyError(self, key, *value):  # PYCHOK no cover\n        '''(INTERNAL) Create a C{KeyError}.\n        '''\n        n = self.name or self.typename\n        t = Fmt.SQUARE(n, key)\n        if value:\n            t = Fmt.EQUALSPACED(t, *value)\n        return _KeyError(t)\n\n    def __setattr__(self, name, value):\n        '''Set attribute or item B{C{name}} to B{C{value}}.\n        '''\n        if name in self:  # in ADict.keys(self)\n            ADict.__setitem__(self, name, value)  # self[name] = value\n        else:\n            ADict.__setattr__(self, name, value)\n\n    def __setitem__(self, key, value):\n        '''Set item B{C{key}} to B{C{value}}.\n        '''\n        if key == _name_:\n            raise self._KeyError(key, repr(value))\n        ADict.__setitem__(self, key, value)\n\n\nclass _NamedEnum(_NamedDict):\n    '''(INTERNAL) Enum-like C{_NamedDict} with attribute access\n       restricted to valid keys.\n    '''\n    _item_Classes = ()\n\n    def __init__(self, Class, *Classes, **name):\n        '''New C{_NamedEnum}.\n\n           @arg Class: Initial class or type acceptable as items\n                       values (C{type}).\n           @arg Classes: Additional, acceptable classes or C{type}s.\n        '''\n        self._item_Classes = (Class,) + Classes\n        n = _name__(**name) or NN(typename(Class), _s_)\n        if n and _xvalid(n, underOK=True):\n            _Named.name.fset(self, n)  # see _Named.name\n\n    def __getattr__(self, name):\n        '''Get the value of an attribute or item by B{C{name}}.\n        '''\n        return _NamedDict.__getattr__(self, name)\n\n    def __repr__(self):\n        '''Default C{repr(self)}.\n        '''\n        return self.toRepr()\n\n    def __str__(self):\n        '''Default C{str(self)}.\n        '''\n        return self.toStr()\n\n    def _assert(self, **kwds):\n        '''(INTERNAL) Check attribute name against given, registered name.\n        '''\n        pypy = _isPyPy()\n        for n, v in kwds.items():\n            if isinstance(v, _LazyNamedEnumItem):  # property\n                assert (n == v.name) if pypy else (n is v.name)\n                # assert not hasattr(self.__class__, n)\n                setattr(self.__class__, n, v)\n            elif isinstance(v, self._item_Classes):  # PYCHOK no cover\n                assert self[n] is v and getattr(self, n) \\\n                                    and self.find(v) == n\n            else:\n                raise _TypeError(v, name=n)\n\n    def _asserts(self):  # in .triaxials.triaxial3\n        '''(INTERNAL) Yield all asserted items.\n        '''\n        for n, p in tuple(type(self).__dict__.items()):\n            if isinstance(p, _LazyNamedEnumItem):\n                yield n, p\n\n    def find(self, item, dflt=None, all=False):\n        '''Find a registered item.\n\n           @arg item: The item to look for (any C{type}).\n           @kwarg dflt: Value to return if not found (any C{type}).\n           @kwarg all: Use C{True} to search I{all} items or C{False} only\n                       the currently I{registered} ones (C{bool}).\n\n           @return: The B{C{item}}'s name if found (C{str}), or C{{dflt}}\n                    if there is no such B{C{item}}.\n        '''\n        for k, v in self.items(all=all):  # or ADict.items(self)\n            if v is item:\n                return k\n        return dflt\n\n    def get(self, name, dflt=None):\n        '''Get the value of a I{registered} item.\n\n           @arg name: The name of the item (C{str}).\n           @kwarg dflt: Value to return (any C{type}).\n\n           @return: The item with B{C{name}} if found, or B{C{dflt}} if\n                    there is no I{registered} item with that B{C{name}}.\n        '''\n        # getattr needed to instantiate L{_LazyNamedEnumItem}\n        return getattr(self, name, dflt)\n\n    def items(self, all=False, asorted=False):\n        '''Yield all or only the I{registered} items.\n\n           @kwarg all: Use C{True} to yield I{all} items or C{False} for\n                       only the currently I{registered} ones (C{bool}).\n           @kwarg asorted: If C{True}, yield the items in I{alphabetical,\n                           case-insensitive} order (C{bool}).\n        '''\n        if all:  # instantiate any remaining L{_LazyNamedEnumItem}\n            for n, _ in self._asserts():\n                _ = getattr(self, n)\n        return itemsorted(self) if asorted else ADict.items(self)\n\n    def keys(self, **all_asorted):\n        '''Yield the name (C{str}) of I{all} or only the currently I{registered}\n           items, optionally sorted I{alphabetically, case-insensitively}.\n\n           @kwarg all_asorted: See method C{items}.\n        '''\n        for k, _ in self.items(**all_asorted):\n            yield k\n\n    def popitem(self):\n        '''Remove I{an, any} currently I{registed} item.\n\n           @return: The removed item.\n        '''\n        return self._zapitem(*ADict.popitem(self))\n\n    def register(self, item):\n        '''Registed one new item or I{all} or I{any} unregistered ones.\n\n           @arg item: The item (any C{type}) or B{I{all}} or B{C{any}}.\n\n           @return: The item name (C{str}) or C(\"all\") or C{\"any\"}.\n\n           @raise NameError: An B{C{item}} with that name is already\n                             registered the B{C{item}} has no or an\n                             invalid name.\n\n           @raise TypeError: The B{C{item}} type invalid.\n        '''\n        if item is all or item is any:\n            _ = self.items(all=True)\n            n = typename(item)\n        else:\n            try:\n                n = item.name\n                if not (n and isstr(n) and isidentifier(n)):\n                    raise ValueError()\n            except (AttributeError, ValueError, TypeError) as x:\n                n = _DOT_(_item_, _name_)\n                raise _NameError(n, item, cause=x)\n            if n in self:\n                t = _SPACE_(_item_, self._DOT_(n), _exists_)\n                raise _NameError(t, txt=repr(item))\n            if not isinstance(item, self._item_Classes):  # _xinstanceof\n                n = self._DOT_(n)\n                raise _TypesError(n, item, *self._item_Classes)\n            self[n] = item\n        return n\n\n    def unregister(self, name_or_item):\n        '''Remove a I{registered} item.\n\n           @arg name_or_item: Name (C{str}) or the item (any C{type}).\n\n           @return: The unregistered item.\n\n           @raise AttributeError: No such B{C{item}}.\n\n           @raise NameError: No item with that B{C{name}}.\n        '''\n        if isstr(name_or_item):\n            name = name_or_item\n        else:\n            name = self.find(name_or_item, dflt=MISSING)  # all=True?\n            if name is MISSING:\n                t = _SPACE_(_no_, _such_, self.classname, _item_)\n                raise _AttributeError(t, txt=repr(name_or_item))\n        try:\n            item = ADict.pop(self, name)\n        except KeyError:\n            raise _NameError(item=self._DOT_(name), txt=_doesn_t_exist_)\n        return self._zapitem(name, item)\n\n    pop = unregister\n\n    def toRepr(self, prec=6, fmt=Fmt.F, sep=_COMMANL_, **all_asorted):  # PYCHOK _NamedDict, ADict\n        '''Like C{repr(dict)} but C{name}s optionally sorted and\n           C{floats} formatted by function L{pygeodesy.fstr}.\n        '''\n        t = ((self._DOT_(n), v) for n, v in self.items(**all_asorted))\n        return sep.join(pairs(t, prec=prec, fmt=fmt, sep=_COLONSPACE_))\n\n    def toStr(self, *unused, **all_asorted):  # PYCHOK _NamedDict, ADict\n        '''Return a string with all C{name}s, optionally sorted.\n        '''\n        return self._DOT_(_COMMASPACEDOT_.join(self.keys(**all_asorted)))\n\n    def values(self, **all_asorted):\n        '''Yield the value (C{type}) of all or only the I{registered} items,\n           optionally sorted I{alphabetically} and I{case-insensitively}.\n\n           @kwarg all_asorted: See method C{items}.\n        '''\n        for _, v in self.items(**all_asorted):\n            yield v\n\n    def _zapitem(self, name, item):\n        # remove _LazyNamedEnumItem property value if still present\n        if self.__dict__.get(name, None) is item:\n            self.__dict__.pop(name)  # [name] = None\n        item._enum = None\n        return item\n\n\nclass _LazyNamedEnumItem(property_RO):  # XXX or descriptor?\n    '''(INTERNAL) Lazily instantiated L{_NamedEnumItem}.\n    '''\n    pass\n\n\ndef _lazyNamedEnumItem(name, *args, **kwds):\n    '''(INTERNAL) L{_LazyNamedEnumItem} property-like factory.\n\n       @see: Luciano Ramalho, \"Fluent Python\", O'Reilly, Example\n             19-24, 2016 p. 636 or Example 22-28, 2022 p. 869+\n    '''\n    def _fget(inst):\n        # assert isinstance(inst, _NamedEnum)\n        try:  # get the item from the instance' __dict__\n            # item = inst.__dict__[name]  # ... or ADict\n            item = inst[name]\n        except KeyError:\n            # instantiate an _NamedEnumItem, it self-registers\n            item = inst._Lazy(*args, **_xkwds(kwds, name=name))\n            # assert inst[name] is item  # MUST be registered\n            # store the item in the instance' __dict__ ...\n            # inst.__dict__[name] = item  # ... or update the\n            inst.update({name: item})  # ... ADict for Triaxials\n            # remove the property from the registry class, such that\n            # (a) the property no longer overrides the instance' item\n            # in inst.__dict__ and (b) _NamedEnum.items(all=True) only\n            # sees any un-instantiated ones yet to be instantiated\n            p = getattr(inst.__class__, name, None)\n            if isinstance(p, _LazyNamedEnumItem):\n                delattr(inst.__class__, name)\n        # assert isinstance(item, _NamedEnumItem)\n        return item\n\n    p = _LazyNamedEnumItem(_fget)\n    p.name = name\n    return p\n\n\nclass _NamedEnumItem(_NamedBase):\n    '''(INTERNAL) Base class for items in a C{_NamedEnum} registry.\n    '''\n    _enum = None\n\n#   def __ne__(self, other):  # XXX fails for Lcc.conic = conic!\n#       '''Compare this and an other item.\n#\n#          @return: C{True} if different, C{False} otherwise.\n#       '''\n#       return not self.__eq__(other)\n\n    @property_doc_(''' the I{registered} name (C{str}).''')\n    def name(self):\n        '''Get the I{registered} name (C{str}).\n        '''\n        return self._name\n\n    @name.setter  # PYCHOK setter!\n    def name(self, name):\n        '''Set the name, unless already registered (C{str}).\n        '''\n        name = _name__(name) or _NN_\n        if self._enum:\n            raise _NameError(name, self, txt=_registered_)  # _TypeError\n        if name:\n            self._name = name\n\n    def _register(self, enum, name):\n        '''(INTERNAL) Add this item as B{C{enum.name}}.\n\n           @note: Don't register if name is empty or doesn't\n                  start with a letter.\n        '''\n        name = _name__(name)\n        if name and _xvalid(name, underOK=True):\n            self.name = name\n            if name[:1].isalpha():  # '_...' not registered\n                enum.register(self)\n                self._enum = enum\n\n    def unregister(self):\n        '''Remove this instance from its C{_NamedEnum} registry.\n\n           @raise AssertionError: Mismatch of this and registered item.\n\n           @raise NameError: This item is unregistered.\n        '''\n        enum = self._enum\n        if enum and self.name and self.name in enum:\n            item = enum.unregister(self.name)\n            if item is not self:  # PYCHOK no cover\n                t = _SPACE_(repr(item), _vs_, repr(self))\n                raise _AssertionError(t)\n\n\n# from pygeodesy.props import _NamedProperty\n\n\nclass _NamedTuple(tuple, _Named):\n    '''(INTERNAL) Base for named C{tuple}s with both index I{and}\n       attribute name access to the items.\n\n       @note: This class is similar to Python's C{namedtuple},\n              but statically defined, lighter and limited.\n    '''\n    _Names_ = ()  # item names, non-identifier, no leading underscore\n    '''Tuple specifying the C{name} of each C{Named-Tuple} item.\n\n       @note: Specify at least 2 item names.\n    '''\n    _Units_ = ()    # .units classes\n    '''Tuple defining the C{units} of the value of each C{Named-Tuple} item.\n\n       @note: The C{len(_Units_)} must match C{len(_Names_)}.\n    '''\n    _validated = False  # set to True I{per sub-class!}\n\n    def __new__(cls, arg, *args, **iteration_name):\n        '''New L{_NamedTuple} initialized with B{C{positional}} arguments.\n\n           @arg arg: Tuple items (C{tuple}, C{list}, ...) or first tuple\n                     item of several more in other positional arguments.\n           @arg args: Tuple items (C{any}), all positional arguments.\n           @kwarg iteration_name: Only keyword arguments C{B{iteration}=None}\n                                  and C{B{name}=NN} are used, any other are\n                                  I{silently} ignored.\n\n           @raise LenError: Unequal number of positional arguments and\n                            number of item C{_Names_} or C{_Units_}.\n\n           @raise TypeError: The C{_Names_} or C{_Units_} attribute is\n                             not a C{tuple} of at least 2 items.\n\n           @raise ValueError: Item name is not a C{str} or valid C{identifier}\n                              or starts with C{underscore}.\n        '''\n        n, args = len2(((arg,) + args) if args else arg)\n        self = tuple.__new__(cls, args)\n        if not self._validated:\n            self._validate()\n\n        N = len(self._Names_)\n        if n != N:\n            raise LenError(self.__class__, args=n, _Names_=N)\n\n        if iteration_name:\n            i, name = _xkwds_pop2(iteration_name, iteration=None)\n            if i is not None:\n                self._iteration = i\n            if name:\n                self.name = name\n        return self\n\n    def __delattr__(self, name):\n        '''Delete an attribute by B{C{name}}.\n\n           @note: Items can not be deleted.\n        '''\n        if name in self._Names_:\n            raise _ImmutableError(self, name)  # _del_\n        elif name in (_name_, _name):\n            _Named.__setattr__(self, name, NN)  # XXX _Named.name.fset(self, NN)\n        else:\n            tuple.__delattr__(self, name)\n\n    def __getattr__(self, name):\n        '''Get the value of an attribute or item by B{C{name}}.\n        '''\n        try:\n            return tuple.__getitem__(self, self._Names_.index(name))\n        except IndexError:  # as x:\n            pass  # raise _IndexError(self._DOT_(name), cause=x)\n        except ValueError:  # e.g. _iteration\n            try:  # tuple has no __getattr__?\n                return tuple.__getattr__(self, name)  # __getattribute__?\n            except AttributeError:\n                pass\n        raise _AttributeError(self._DOT_(name), txt=repr(self))\n\n#   def __getitem__(self, index):  # index, slice, etc.\n#       '''Get the item(s) at an B{C{index}} or slice.\n#       '''\n#       return tuple.__getitem__(self, index)\n\n    def __hash__(self):\n        return tuple.__hash__(self)\n\n    def __repr__(self):\n        '''Default C{repr(self)}.\n        '''\n        return self.toRepr()\n\n    def __setattr__(self, name, value):\n        '''Set attribute or item B{C{name}} to B{C{value}}.\n        '''\n        if name in self._Names_:\n            raise _ImmutableError(self, name, value)\n        elif name in (_name_, _name):\n            _Named.__setattr__(self, name, value)  # XXX _Named.name.fset(self, value)\n        else:  # e.g. _iteration\n            tuple.__setattr__(self, name, value)\n\n    def __str__(self):\n        '''Default C{repr(self)}.\n        '''\n        return self.toStr()\n\n    def _DOT_(self, *names):\n        '''(INTERNAL) Period-join C{self.classname} and C{names}.\n        '''\n        return _DOT_(self.classname, *names)\n\n    def dup(self, name=NN, **items):\n        '''Duplicate this tuple replacing one or more items.\n\n           @kwarg name: Optional new name (C{str}).\n           @kwarg items: Items to be replaced (C{name=value} pairs), if any.\n\n           @return: A copy of this tuple with B{C{items}}.\n\n           @raise NameError: Some B{C{items}} invalid.\n        '''\n        t = list(self)\n        U = self._Units_\n        if items:\n            _ix =  self._Names_.index\n            _2U = _MODS.units._toUnit\n            try:\n                for n, v in items.items():\n                    i = _ix(n)\n                    t[i] = _2U(U[i], v, name=n)\n            except ValueError:  # bad item name\n                raise _NameError(self._DOT_(n), v, this=self)\n        return self.classof(*t).reUnit(*U, name=name)\n\n    def items(self):\n        '''Yield the items, each as a C{(name, value)} pair (C{2-tuple}).\n\n           @see: Method C{.units}.\n        '''\n        for n, v in _zip(self._Names_, self):  # strict=True\n            yield n, v\n\n    iteritems = items\n\n    def reUnit(self, *Units, **name):\n        '''Replace some of this C{Named-Tuple}'s C{Units}.\n\n           @arg Units: One or more C{Unit} classes, all positional.\n           @kwarg name: Optional C{B{name}=NN} (C{str}).\n\n           @return: This instance with updated C{Units}.\n\n           @note: This C{Named-Tuple}'s values are I{not updated}.\n        '''\n        U = self._Units_\n        n = min(len(U), len(Units))\n        if n:\n            R = Units + U[n:]\n            if R != U:\n                self._Units_ = R\n        return self.renamed(name) if name else self\n\n    def toRepr(self, prec=6, sep=_COMMASPACE_, fmt=Fmt.F, **unused):  # PYCHOK signature\n        '''Return this C{Named-Tuple} items as C{name=value} string(s).\n\n           @kwarg prec: The C{float} precision, number of decimal digits (0..9).\n                        Trailing zero decimals are stripped for B{C{prec}} values\n                        of 1 and above, but kept for negative B{C{prec}} values.\n           @kwarg sep: Separator to join (C{str}).\n           @kwarg fmt: Optional C{float} format (C{letter}).\n\n           @return: Tuple items (C{str}).\n        '''\n        t = pairs(self.items(), prec=prec, fmt=fmt)\n#       if self.name:\n#           t = (Fmt.EQUAL(name=repr(self.name)),) + t\n        return Fmt.PAREN(self.named, sep.join(t))  # XXX (self.classname, sep.join(t))\n\n    def toStr(self, prec=6, sep=_COMMASPACE_, fmt=Fmt.F, **unused):  # PYCHOK signature\n        '''Return this C{Named-Tuple} items as string(s).\n\n           @kwarg prec: The C{float} precision, number of decimal digits (0..9).\n                        Trailing zero decimals are stripped for B{C{prec}} values\n                        of 1 and above, but kept for negative B{C{prec}} values.\n           @kwarg sep: Separator to join (C{str}).\n           @kwarg fmt: Optional C{float} format (C{letter}).\n\n           @return: Tuple items (C{str}).\n        '''\n        t = reprs(self, prec=prec, fmt=fmt)\n        return Fmt.PAREN(sep.join(t)) if sep else t\n\n    def toUnits(self, Error=UnitError, **name):  # overloaded in .frechet, .hausdorff\n        '''Return a copy of this C{Named-Tuple} with each item value wrapped\n           as an instance of its L{units} class.\n\n           @kwarg Error: Error to raise for L{units} issues (C{UnitError}).\n           @kwarg name: Optional C{B{name}=NN} (C{str}).\n\n           @return: A duplicate of this C{Named-Tuple} (C{C{Named-Tuple}}).\n\n           @raise Error: Invalid C{Named-Tuple} item or L{units} class.\n        '''\n        t = tuple(v for _, v in self.units(Error=Error))\n        return self.classof(*t).reUnit(*self._Units_, **name)\n\n    def units(self, **Error):\n        '''Yield the items, each as a C{2-tuple (name, value}) with the\n           value wrapped as an instance of its L{units} class.\n\n           @kwarg Error: Optional C{B{Error}=UnitError} to raise.\n\n           @raise Error: Invalid C{Named-Tuple} item or L{units} class.\n\n           @see: Method C{.items}.\n        '''\n        _2U = _MODS.units._toUnit\n        for n, v, U in _zip(self._Names_, self, self._Units_):  # strict=True\n            yield n, _2U(U, v, name=n, **Error)\n\n    iterunits = units\n\n    def _validate(self, underOK=False):  # see .EcefMatrix\n        '''(INTERNAL) One-time check of C{_Names_} and C{_Units_}\n           for each C{_NamedUnit} I{sub-class separately}.\n        '''\n        ns = self._Names_\n        if not (isinstance(ns, tuple) and len(ns) > 1):  # XXX > 0\n            raise _TypeError(self._DOT_(_Names_), ns)\n        for i, n in enumerate(ns):\n            if not _xvalid(n, underOK=underOK):\n                t = Fmt.SQUARE(_Names_=i)  # PYCHOK no cover\n                raise _ValueError(self._DOT_(t), n)\n\n        us = self._Units_\n        if not isinstance(us, tuple):\n            raise _TypeError(self._DOT_(_Units_), us)\n        if len(us) != len(ns):\n            raise LenError(self.__class__, _Units_=len(us), _Names_=len(ns))\n        for i, u in enumerate(us):\n            if not (u is None or callable(u)):\n                t = Fmt.SQUARE(_Units_=i)  # PYCHOK no cover\n                raise _TypeError(self._DOT_(t), u)\n\n        type(self)._validated = True\n\n    def _xtend(self, xTuple, *items, **name):\n        '''(INTERNAL) Extend this C{Named-Tuple} with C{items} to an other B{C{xTuple}}.\n        '''\n        _xsubclassof(_NamedTuple, xTuple=xTuple)\n        if len(xTuple._Names_)       != (len(self._Names_) + len(items)) or \\\n               xTuple._Names_[:len(self)] != self._Names_:  # PYCHOK no cover\n            c = NN(self.classname,  repr(self._Names_))\n            x = NN(typename(xTuple), repr(xTuple._Names_))\n            raise TypeError(_SPACE_(c, _vs_, x))\n        t = self + items\n        return xTuple(t, name=self._name__(name))  # .reUnit(*self._Units_)\n\n\ndef callername(up=1, dflt=NN, source=False, underOK=False):\n    '''Get the name of the invoking callable.\n\n       @kwarg up: Number of call stack frames up (C{int}).\n       @kwarg dflt: Default return value (C{any}).\n       @kwarg source: Include source file name and line number (C{bool}).\n       @kwarg underOK: If C{True}, private, internal callables are OK,\n                       otherwise private callables are skipped (C{bool}).\n\n       @return: The callable name (C{str}) or B{C{dflt}} if none found.\n    '''\n    try:  # see .internals._caller3\n        for u in range(up, up + 32):\n            n, f, s = _caller3(u)\n            if n and (underOK or n.startswith(_DUNDER_) or\n                             not n.startswith(_UNDER_)):\n                if source:\n                    n = NN(n, _AT_, f, _COLON_, str(s))\n                return n\n    except (AttributeError, ValueError):\n        pass\n    return dflt\n\n\ndef _callername2(args, callername=NN, source=False, underOK=False, up=_UP, **kwds):\n    '''(INTERNAL) Extract C{callername}, C{source}, C{underOK} and C{up} from C{kwds}.\n    '''\n    n = callername or _MODS.named.callername(up=up + 1, source=source,\n                                        underOK=underOK or bool(args or kwds))\n    return n, kwds\n\n\ndef _callname(name, class_name, self_name, up=1):\n    '''(INTERNAL) Assemble the name for an invokation.\n    '''\n    n, c = class_name, callername(up=up + 1)\n    if c:\n        n = _DOT_(n, Fmt.PAREN(c, name))\n    if self_name:\n        n = _SPACE_(n, repr(self_name))\n    return n\n\n\ndef classname(inst, prefixed=None):\n    '''Return the instance' class name optionally prefixed with the\n       module name.\n\n       @arg inst: The object (any C{type}).\n       @kwarg prefixed: Include the module name (C{bool}), see\n                        function C{classnaming}.\n\n       @return: The B{C{inst}}'s C{[module.]class} name (C{str}).\n    '''\n    if prefixed is None:\n        prefixed = getattr(inst, typename(classnaming), prefixed)\n    return modulename(inst.__class__, prefixed=prefixed)\n\n\ndef classnaming(prefixed=None):\n    '''Get/set the default class naming for C{[module.]class} names.\n\n       @kwarg prefixed: Include the module name (C{bool}).\n\n       @return: Previous class naming setting (C{bool}).\n    '''\n    t = _Named._classnaming\n    if isbool(prefixed):\n        _Named._classnaming = prefixed\n    return t\n\n\ndef modulename(clas, prefixed=None):  # in .basics._xversion\n    '''Return the class name optionally prefixed with the\n       module name.\n\n       @arg clas: The class (any C{class} or C{str}).\n       @kwarg prefixed: Include the module name (C{bool}), see\n                        function C{classnaming}.\n\n       @return: The B{C{class}}'s C{[module.]class} name (C{str}).\n    '''\n    try:\n        n = typename(clas)\n    except AttributeError:\n        n = clas if isstr(clas) else _DNAME_\n    if prefixed or (classnaming() if prefixed is None else False):\n        try:\n            m =  clas.__module__.rsplit(_DOT_, 1)\n            n = _DOT_.join(m[1:] + [n])\n        except AttributeError:\n            pass\n    return n\n\n\n# def _name__(name=NN, name__=None, _or_nameof=None, **kwds):\n#     '''(INTERNAL) Get single keyword argument C{B{name}=NN|None}.\n#     '''\n#     if kwds:  # \"unexpected keyword arguments ...\"\n#         m = _MODS.errors\n#         raise m._UnexpectedError(**kwds)\n#     if name:  # is given\n#         n = _name__(**name) if isinstance(name, dict) else str(name)\n#     elif name__ is not None:\n#         n = getattr(name__, _DNAME_, NN)  # _xattr(name__, __name__=NN)\n#     else:\n#         n = name  # NN or None or {} or any False type\n#     if _or_nameof is not None and not n:\n#         n = getattr(_or_nameof, _name_, NN) # _xattr(_or_nameof, name=NN)\n#     return n  # str or None or {}\n\n\ndef _name__(name=NN, **kwds):\n    '''(INTERNAL) Get single keyword argument C{B{name}=NN|None}.\n    '''\n    if name or kwds:\n        name, kwds = _name2__(name, **kwds)\n        if kwds:  # \"unexpected keyword arguments ...\"\n            raise _UnexpectedError(**kwds)\n    return name if name or name is None else NN\n\n\ndef _name1__(kwds_name, **name__or_nameof):\n    '''(INTERNAL) Resolve and set the C{B{name}=NN}.\n    '''\n    if kwds_name or name__or_nameof:\n        n, kwds_name = _name2__(kwds_name, **name__or_nameof)\n        kwds_name.update(name=n)\n    return kwds_name\n\n\ndef _name2__(name=NN, name__=None, _or_nameof=None, **kwds):\n    '''(INTERNAL) Get the C{B{name}=NN|None} and other C{kwds}.\n    '''\n    if name:  # is given\n        if isinstance(name, dict):\n            kwds.update(name)  # kwds = _xkwds(kwds, **name)?\n            n, kwds = _name2__(**kwds)\n        else:\n            n = str(name)\n    elif name__ is not None:\n        n = typename(name__, NN)\n    else:\n        n = name if name is None else NN\n    if _or_nameof is not None and not n:\n        n = _xattr(_or_nameof, name=NN)  # nameof\n    return n, kwds  # (str or None or {}), dict\n\n\ndef nameof(inst):\n    '''Get the name of an instance.\n\n       @arg inst: The object (any C{type}).\n\n       @return: The instance' name (C{str}) or C{\"\"}.\n    '''\n    n = _xattr(inst, name=NN)\n    if not n:  # and isinstance(inst, property):\n        try:\n            n = typename(inst.fget)\n        except AttributeError:\n            n = NN\n    return n\n\n\ndef _notDecap(where):\n    '''De-Capitalize C{where.__name__}.\n    '''\n    n = typename(where)\n    c = n[3].lower()  # len(_not_)\n    return NN(n[:3], _SPACE_, c, n[4:])\n\n\ndef _notError(inst, name, args, kwds):  # PYCHOK no cover\n    '''(INTERNAL) Format an error message.\n    '''\n    n = _DOT_(classname(inst, prefixed=True), typename(name, name))\n    m = _COMMASPACE_.join(modulename(c, prefixed=True) for c in type(inst).__mro__[1:-1])\n    return _COMMASPACE_(unstr(n, *args, **kwds), Fmt.PAREN(_MRO_, m))\n\n\ndef _NotImplemented(inst, *other, **kwds):\n    '''(INTERNAL) Raise a C{__special__} error or return C{NotImplemented},\n       but only if env variable C{PYGEODESY_NOTIMPLEMENTED=std}.\n    '''\n    if _std_NotImplemented:\n        return NotImplemented\n    n, kwds = _callername2(other, **kwds)  # source=True\n    t = unstr(_DOT_(classname(inst), n), *other, **kwds)\n    raise _NotImplementedError(t, txt=repr(inst))\n\n\ndef notImplemented(inst, *args, **kwds):  # PYCHOK no cover\n    '''Raise a C{NotImplementedError} for a missing instance method or\n       property or for a missing caller feature.\n\n       @arg inst: Caller instance (C{any}) or C{None} for function.\n       @arg args: Method or property positional arguments (any C{type}s).\n       @arg kwds: Method or property keyword arguments (any C{type}s),\n                  except C{B{callername}=NN}, C{B{underOK}=False} and\n                  C{B{up}=2}.\n    '''\n    n, kwds = _callername2(args, **kwds)\n    t = _notError(inst, n, args, kwds) if inst else unstr(n, *args, **kwds)\n    raise _NotImplementedError(t, txt=_notDecap(notImplemented))\n\n\ndef notOverloaded(inst, *args, **kwds):  # PYCHOK no cover\n    '''Raise an C{AssertionError} for a method or property not overloaded.\n\n       @arg inst: Instance (C{any}).\n       @arg args: Method or property positional arguments (any C{type}s).\n       @arg kwds: Method or property keyword arguments (any C{type}s),\n                  except C{B{callername}=NN}, C{B{underOK}=False} and\n                  C{B{up}=2}.\n    '''\n    n, kwds = _callername2(args, **kwds)\n    t = _notError(inst, n, args, kwds)\n    raise _AssertionError(t, txt=_notDecap(notOverloaded))\n\n\ndef _Pass(arg, **unused):  # PYCHOK no cover\n    '''(INTERNAL) I{Pass-thru} class for C{_NamedTuple._Units_}.\n    '''\n    return arg\n\n\ndef _xjoined_(prefix, name=NN, enquote=True, **name__or_nameof):\n    '''(INTERNAL) Join C{prefix} and non-empty C{name}.\n    '''\n    if name__or_nameof:\n        name = _name__(name, **name__or_nameof)\n    if name and prefix:\n        if enquote:\n            name = repr(name)\n        t = _SPACE_(prefix, name)\n    else:\n        t =  prefix or name\n    return t\n\n\ndef _xnamed(inst, name=NN, force=False, **name__or_nameof):\n    '''(INTERNAL) Set the instance' C{.name = B{name}}.\n\n       @arg inst: The instance (C{_Named}).\n       @kwarg name: The name (C{str}).\n       @kwarg force: If C{True}, force rename (C{bool}).\n\n       @return: The B{C{inst}}, renamed if B{C{force}}d\n                or if not named before.\n    '''\n    if name__or_nameof:\n        name = _name__(name, **name__or_nameof)\n    if name and isinstance(inst, _Named):\n        if not inst.name:\n            inst.name = name\n        elif force:\n            inst.rename(name)\n    return inst\n\n\ndef _xother3(inst, other, name=_other_, up=1, **name_other):\n    '''(INTERNAL) Get C{name} and C{up} for a named C{other}.\n    '''\n    if name_other:  # and other is None\n        name, other = _xkwds_item2(name_other)\n    elif other and len(other) == 1:\n        name, other = _name__(name), other[0]\n    else:\n        raise _AssertionError(name, other, txt=classname(inst, prefixed=True))\n    return other, name, up\n\n\ndef _xotherError(inst, other, name=_other_, up=1):\n    '''(INTERNAL) Return a C{_TypeError} for an incompatible, named C{other}.\n    '''\n    n = _callname(name, classname(inst, prefixed=True), inst.name, up=up + 1)\n    return _TypeError(name, other, txt=_incompatible(n))\n\n\ndef _xvalid(name, underOK=False):\n    '''(INTERNAL) Check valid attribute name C{name}.\n    '''\n    return bool(name and isstr(name)\n                     and name != _name_\n                     and (underOK or not name.startswith(_UNDER_))\n                     and (not iskeyword(name))\n                     and isidentifier(name))\n\n\n__all__ += _ALL_DOCS(_Named,\n                     _NamedBase,  # _NamedDict,\n                     _NamedEnum, _NamedEnumItem,\n                     _NamedTuple)\n\n# **) MIT License\n#\n# Copyright (C) 2016-2026 -- mrJean1 at Gmail -- All Rights Reserved.\n#\n# Permission is hereby granted, free of charge, to any person obtaining a\n# copy of this software and associated documentation files (the \"Software\"),\n# to deal in the Software without restriction, including without limitation\n# the rights to use, copy, modify, merge, publish, distribute, sublicense,\n# and/or sell copies of the Software, and to permit persons to whom the\n# Software is furnished to do so, subject to the following conditions:\n#\n# The above copyright notice and this permission notice shall be included\n# in all copies or substantial portions of the Software.\n#\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL\n# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR\n# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\n# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n# OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "pygeodesy/namedTuples.py",
    "content": "\n# -*- coding: utf-8 -*-\n\nu'''Named tuples.\n\nTuples returned by C{pygeodesy} functions and class methods\nare all instances of some C{Named...Tuple} class, all sub-classes\nof C{_NamedTuple} defined in C{pygeodesy.named}.\n'''\n\nfrom pygeodesy.basics import isinstanceof, issubclassof, map1, _xinstanceof\n# from pygeodesy.cartesianBase import CartesianBase  # _MODS\nfrom pygeodesy.constants import INT0,  fabs\n# from pygeodesy.dms import toDMS  # _MODS\nfrom pygeodesy.errors import _TypeError, _xattr, _xkwds, _xkwds_not, _xkwds_pop2\nfrom pygeodesy.interns import NN, _1_, _2_, _a_, _A_, _area_, _angle_, _b_, _B_, \\\n                             _band_, _beta_, _c_, _C_, _D_, _datum_, _distance_, \\\n                             _E_, _easting_, _end_, _fi_, _gamma_, _h_, _height_, \\\n                             _hemipole_, _initial_, _j_, _lam_, _lat_, _lon_, \\\n                             _n_, _northing_, _number_, _outside_, _phi_, \\\n                             _point_, _precision_, _points_, _radius_, _scale_, \\\n                             _start_, _x_, _y_, _z_, _zone_\n# from pygeodesy.lazily import _ALL_LAZY, _ALL_MODS as _MODS  # from .named\nfrom pygeodesy.named import _NamedTuple, _Pass,  _ALL_LAZY, _MODS\nfrom pygeodesy.props import deprecated_property_RO, property_RO\nfrom pygeodesy.units import Band, Bearing, Degrees, Degrees2, Easting, FIx, \\\n                            Height, Int, Lam, Lat, Lon, Meter, Meter2, \\\n                            Northing, Number_, Phi, Precision_, Radians, \\\n                            Radius, Scalar, Str\n# from math import fabs  # from .constants\n\n__all__ = _ALL_LAZY.namedTuples\n__version__ = '26.03.12'\n\n# __DUNDER gets mangled in class\n_closest_     = 'closest'\n_destination_ = 'destination'\n_elel_        = 'll'\n_final_       = 'final'\n_fraction_    = 'fraction'\n\n\nclass Bearing2Tuple(_NamedTuple):\n    '''2-Tuple C{(initial, final)} bearings, both in compass C{degrees360}.\n    '''\n    _Names_ = (_initial_, _final_)\n    _Units_ = ( Bearing,   Bearing)\n\n\nclass Bounds2Tuple(_NamedTuple):  # .geohash.py, .latlonBase.py, .points.py\n    '''2-Tuple C{(latlonSW, latlonNE)} with the bounds' lower-left and\n       upper-right corner as C{LatLon} instance.\n    '''\n    _Names_ = ('latlonSW', 'latlonNE')\n    _Units_ = (_Pass,      _Pass)\n\n\nclass Bounds4Tuple(_NamedTuple):  # .geohash.py, .points.py\n    '''4-Tuple C{(latS, lonW, latN, lonE)} with the bounds' lower-left\n       C{(LatS, LowW)} and upper-right C{(latN, lonE)} corner lat- and\n       longitudes.\n    '''\n    _Names_ = ('latS', 'lonW', 'latN', 'lonE')\n    _Units_ = ( Lat,    Lon,    Lat,    Lon)\n\n    def enclosures(self, S_other, *W_N_E):\n        '''Get the enclosures of this around an other L{Bounds4Tuple}.\n\n           @arg S_other: Bottom C{latS} (C{scalar}) or an other\n                         L{Bounds4Tuple} instance.\n           @arg W_N_E: Left C{lonW}, top C{latN} and right C{lonE},\n                       each a (C{scalar}) for C{scalar B{S_other}}.\n\n           @return: A L{Bounds4Tuple} with the I{margin} at each of\n                    the 4 sides, positive if this side I{encloses}\n                    (is on the I{outside} of) the other, negative\n                    if not or zero if abutting.\n        '''\n        s, w, n, e = self\n        S, W, N, E = map1(float, S_other, *W_N_E) if W_N_E else S_other\n        return Bounds4Tuple(map1(float, S - s, W - w, n - N, e - E))  # *map1\n\n    def overlap(self, S_other, *W_N_E):\n        '''Intersect this with an other L{Bounds4Tuple}.\n\n           @arg S_other: Bottom C{latS} (C{scalar}) or an other\n                         L{Bounds4Tuple} instance.\n           @arg W_N_E: Left C{lonW}, top C{latN} and right C{lonE},\n                       each a (C{scalar}) for C{scalar B{S_other}}.\n\n           @return: C{None} if the bounds do not overlap, otherwise\n                    the intersection of both as a L{Bounds4Tuple}.\n        '''\n        s, w, n, e = self\n        S, W, N, E = map1(float, S_other, *W_N_E) if W_N_E else S_other\n        return None if s > N or n < S or w > E or e < W else \\\n               Bounds4Tuple(max(s, S), max(w, W), min(n, N), min(e, E))\n\n\nclass Circle4Tuple(_NamedTuple):\n    '''4-Tuple C{(radius, height, lat, beta)} with the C{radius} and C{height}\n       of a parallel I{circle of latitude} at (geodetic) latitude C{lat} and\n       I{parametric (or reduced) auxiliary latitude} C{beta} on a I{biaxial\n       ellipsoid}.\n\n       The C{height} is the (signed) distance along the z-axis between the\n       parallel and the equator.  At near-polar C{lat}s, the C{radius} is C{0},\n       the C{height} is the ellipsoid's polar radius (signed) and C{beta}\n       equals C{lat}.  The latter are in C{degrees90}, always.\n\n       @see: Class L{Ellipse5Tuple}.\n    '''\n    _Names_ = (_radius_, _height_, _lat_, _beta_)\n    _Units_ = ( Radius,   Height,   Lat,   Lat)\n\n    @property_RO\n    def abc3(self):\n        '''Get the non-negative semi-axes as 3-tuple C{(a, b, c)}.\n        '''\n        return map1(fabs, self.radius, self.radius, self.height)  # PYCHOK named\n\n\nclass Destination2Tuple(_NamedTuple):  # .ellipsoidalKarney.py, -Vincenty.py\n    '''2-Tuple C{(destination, final)}, C{destination} in C{LatLon}\n       and C{final} bearing in compass C{degrees360}.\n    '''\n    _Names_ = (_destination_, _final_)\n    _Units_ = (_Pass,          Bearing)\n\n\nclass Destination3Tuple(_NamedTuple):  # .karney.py\n    '''3-Tuple C{(lat, lon, final)}, destination C{lat}, C{lon} in\n       C{degrees90} respectively C{degrees180} and C{final} bearing\n       in compass C{degrees360}.\n    '''\n    _Names_ = (_lat_, _lon_, _final_)\n    _Units_ = ( Lat,   Lon,   Bearing)\n\n\nclass Distance2Tuple(_NamedTuple):  # .datum.py, .ellipsoidalBase.py\n    '''2-Tuple C{(distance, initial)}, C{distance} in C{meter} and\n       C{initial} bearing in compass C{degrees360}.\n    '''\n    _Names_ = (_distance_, _initial_)\n    _Units_ = ( Meter,      Bearing)\n\n\nclass Distance3Tuple(_NamedTuple):  # .ellipsoidalKarney.py, -Vincenty.py\n    '''3-Tuple C{(distance, initial, final)}, C{distance} in C{meter}\n       and C{initial} and C{final} bearing, both in compass C{degrees360}.\n    '''\n    _Names_ = (_distance_, _initial_, _final_)\n    _Units_ = ( Meter,      Bearing,   Bearing)\n\n\nclass Distance4Tuple(_NamedTuple):  # .formy.py, .points.py\n    '''4-Tuple C{(distance2, delta_lat, delta_lon, unroll_lon2)} with\n       the distance in C{degrees squared}, the latitudinal C{delta_lat\n       = B{lat2} - B{lat1}}, the wrapped, unrolled and adjusted\n       longitudinal C{delta_lon = B{lon2} - B{lon1}} and C{unroll_lon2},\n       the unrolled or original B{C{lon2}}.\n\n       @note: Use Function L{pygeodesy.degrees2m} to convert C{degrees\n              squared} to C{meter} as M{degrees2m(sqrt(distance2), ...)}\n              or M{degrees2m(hypot(delta_lat, delta_lon), ...)}.\n    '''\n    _Names_ = ('distance2', 'delta_lat', 'delta_lon', 'unroll_lon2')\n    _Units_ = ( Degrees2,    Degrees,     Degrees,     Degrees)\n\n\nclass EasNor2Tuple(_NamedTuple):  # .css, .osgr, .ups, .utm, .utmupsBase\n    '''2-Tuple C{(easting, northing)}, both in C{meter}, conventionally.\n    '''\n    _Names_ = (_easting_, _northing_)\n    _Units_ = ( Easting,   Northing)\n\n\nclass EasNor3Tuple(_NamedTuple):  # .css.py, .lcc.py\n    '''3-Tuple C{(easting, northing, height)}, all in C{meter}, conventionally.\n    '''\n    _Names_ = (_easting_, _northing_, _height_)\n    _Units_ = ( Easting,   Northing,   Height)\n\n\nclass _Convergence(object):\n    '''(INTERNAL) DEPRECATED Property C{convergence}, use property C{gamma}.'''\n    @deprecated_property_RO\n    def convergence(self):\n        '''DEPRECATED, use property C{gamma}.\n        '''\n        return self.gamma  # PYCHOK self[.]\n\n\nclass Ellipse5Tuple(_NamedTuple):  # in .triaxials.bases._UnOrderedTriaxialBase.ellipse5\n    '''5-Tuple C{(a, b, height, lat, beta)} with semi-axes C{a} and C{b} of a parallel\n       I{ellipse of latitude} at (geodetic) latitude C{lat} and I{parametric (or reduced)\n       auxiliary latitude} C{beta} of a I{triaxial ellipsoid}.\n\n       The C{height} is the (signed) distance between the parallel and the triaxial's\n       equatorial plane.  At near-polar C{lat}s, C{a} and C{b} are C{0}, the C{height}\n       is the triaxial semi-axis C{c} (signed) and C{beta} equals C{lat}.  The latter\n       are in C{degrees90}, always.\n\n       @see: Class L{Circle4Tuple}.\n    '''\n    _Names_ = (_a_,    _b_,    _height_, _lat_, _beta_)\n    _Units_ = ( Radius, Radius, Height,   Lat,   Lat)\n\n    @property_RO\n    def abc3(self):\n        '''Get the semi-axes as 3-tuple C{(a, b, c)}, non-negative.\n        '''\n        return map1(fabs, self.a, self.b, self.height)  # PYCHOK namedTuple\n\n    @property_RO\n    def abc3ordered(self):\n        '''Get the semi-axes as 3-tuple C{(a, b, c)}, non-negative, ordered.\n        '''\n        return tuple(reversed(sorted(self.abc3)))\n\n    def toTriaxial(self, **Triaxial_and_kwds):  # like .Ellipse.toTriaxial_\n        '''Return a L{Triaxial_<pygeodesy.Triaxial>} from this tuple's semi-axes C{abc3ordered}.\n\n           @kwarg Triaxial_and_kwds: Optional C{B{Triaxial}=Triaxial} class and additional\n                               C{Triaxial} keyword arguments.\n        '''\n        T, kwds = _xkwds_pop2(Triaxial_and_kwds, Triaxial=_MODS.triaxials.Triaxial)\n        return T(*self.abc3ordered, **_xkwds(kwds, name=self.name))  # 'NN'\n\n    def toTriaxial_(self, **Triaxial_and_kwds):  # like .Ellipse.toTriaxial_\n        '''Return a L{Triaxial_<pygeodesy.Triaxial_>} from this tuple's semi-axes C{abc3}.\n\n           @kwarg Triaxial_and_kwds: Optional C{B{Triaxial}=Triaxial_} class and additional\n                               C{Triaxial_} keyword arguments.\n        '''\n        T, kwds = _xkwds_pop2(Triaxial_and_kwds, Triaxial=_MODS.triaxials.Triaxial_)\n        return T(*self.abc3, **_xkwds(kwds, name=self.name))  # 'NN'\n\n\nclass Forward4Tuple(_NamedTuple, _Convergence):\n    '''4-Tuple C{(easting, northing, gamma, scale)} in C{meter}, C{meter}, meridian\n       convergence C{gamma} at point in C{degrees} and the C{scale} of projection at\n       point C{scalar}.\n    '''\n    _Names_ = (_easting_, _northing_, _gamma_, _scale_)\n    _Units_ = ( Easting,   Northing,   Degrees, Scalar)\n\n\nclass Intersection3Tuple(_NamedTuple):  # .css.py, .lcc.py\n    '''3-Tuple C{(point, outside1, outside2)} of an intersection C{point} and C{outside1},\n       the position of the C{point}, C{-1} if before the start, C{+1} if after the end and\n       C{0} if on or between the start and end point of the first line.\n\n       Similarly, C{outside2} is C{-2}, C{+2} or C{0} to indicate the position of the\n       intersection C{point} on the second line or path.\n\n       If a path was specified with an initial bearing instead of an end point, C{outside1}\n       and/or C{outside2} will be C{0} if the intersection C{point} is on the start point\n       or C{+1} respectively C{+2} if the intersection C{point} is after the start point,\n       in the direction of the bearing.\n    '''\n    _Names_ = (_point_, _outside_ + _1_, _outside_ + _2_)\n    _Units_ = (_Pass,    Int,             Int)\n\n\nclass LatLon2Tuple(_NamedTuple):\n    '''2-Tuple C{(lat, lon)} in C{degrees90} and C{degrees180}.\n    '''\n    _Names_ = (_lat_, _lon_)\n    _Units_ = ( Lat,   Lon)\n\n    def to3Tuple(self, height, **name):\n        '''Extend this L{LatLon2Tuple} to a L{LatLon3Tuple}.\n\n           @arg height: The height to add (C{scalar}).\n           @kwarg name: Optional C{B{name}=NN} (C{str}), overriding\n                        this name.\n\n           @return: A L{LatLon3Tuple}C{(lat, lon, height)}.\n\n           @raise ValueError: Invalid B{C{height}}.\n        '''\n        return self._xtend(LatLon3Tuple, height, **name)\n\n    def to4Tuple(self, height, datum, **name):\n        '''Extend this L{LatLon2Tuple} to a L{LatLon4Tuple}.\n\n           @arg height: The height to add (C{scalar}).\n           @arg datum: The datum to add (C{Datum}).\n           @kwarg name: Optional C{B{name}=NN} (C{str}), overriding\n                        this name.\n\n           @return: A L{LatLon4Tuple}C{(lat, lon, height, datum)}.\n\n           @raise TypeError: If B{C{datum}} not a C{Datum}.\n\n           @raise ValueError: Invalid B{C{height}}.\n        '''\n        return self.to3Tuple(height).to4Tuple(datum, **name)\n\n\nclass LatLon3Tuple(_NamedTuple):\n    '''3-Tuple C{(lat, lon, height)} in C{degrees90}, C{degrees180}\n       and C{meter}, conventionally.\n    '''\n    _Names_ = (_lat_, _lon_, _height_)\n    _Units_ = ( Lat,   Lon,   Height)\n\n    def to4Tuple(self, datum, **name):\n        '''Extend this L{LatLon3Tuple} to a L{LatLon4Tuple}.\n\n           @arg datum: The datum to add (C{Datum}).\n           @kwarg name: Optional C{B{name}=NN} (C{str}), overriding\n                        this name.\n\n           @return: A L{LatLon4Tuple}C{(lat, lon, height, datum)}.\n\n           @raise TypeError: If B{C{datum}} not a C{Datum}.\n        '''\n        _xinstanceof(_MODS.datums.Datum, datum=datum)\n        return self._xtend(LatLon4Tuple, datum, **name)\n\n\nclass LatLon4Tuple(LatLon3Tuple):  # .cartesianBase, .css, .ecef, .lcc\n    '''4-Tuple C{(lat, lon, height, datum)} in C{degrees90},\n       C{degrees180}, C{meter} and L{Datum}.\n    '''\n    _Names_ = (_lat_, _lon_, _height_, _datum_)\n    _Units_ = ( Lat,   Lon,   Height,  _Pass)\n\n\ndef _LL4Tuple(lat, lon, height, datum, LatLon, LatLon_kwds, inst=None,\n                                       iteration=None, **name):\n    '''(INTERNAL) Return a L{LatLon4Tuple} or a B{C{LatLon}} instance.\n    '''\n    if LatLon is None:  # ignore LatLon_kwds\n        r = LatLon4Tuple(lat, lon, height, datum, **name)\n    else:\n        kwds = {} if inst is None else _xkwds_not(None,\n#                    datum=_xattr(inst, datum=None),\n                     epoch=_xattr(inst, epoch=None),\n                   reframe=_xattr(inst, reframe=None))  # PYCHOK indent\n        kwds.update(datum=datum, height=height, **name)\n        if LatLon_kwds:\n            kwds.update(LatLon_kwds)\n        r = LatLon(lat, lon, **kwds)\n    if iteration is not None:  # like .named._namedTuple.__new__\n        r._iteration = iteration\n    return r\n\n\nclass LatLonDatum3Tuple(_NamedTuple):  # .lcc.py, .osgr.py\n    '''3-Tuple C{(lat, lon, datum)} in C{degrees90}, C{degrees180}\n       and L{Datum}.\n    '''\n    _Names_ = (_lat_, _lon_, _datum_)\n    _Units_ = ( Lat,   Lon,  _Pass)\n\n\nclass LatLonDatum5Tuple(LatLonDatum3Tuple, _Convergence):  # .ups.py, .utm.py, .utmupsBase.py\n    '''5-Tuple C{(lat, lon, datum, gamma, scale)} in C{degrees90},\n       C{degrees180}, L{Datum}, C{degrees} and C{float}.\n    '''\n    _Names_ = LatLonDatum3Tuple._Names_ + (_gamma_, _scale_)\n    _Units_ = LatLonDatum3Tuple._Units_ + ( Degrees, Scalar)\n\n\nclass LatLonPrec3Tuple(_NamedTuple):  # .gars.py, .wgrs.py\n    '''3-Tuple C{(lat, lon, precision)} in C{degrees}, C{degrees}\n       and C{int}.\n    '''\n    _Names_ = (_lat_, _lon_, _precision_)\n    _Units_ = ( Lat,   Lon,   Precision_)\n\n    def to5Tuple(self, height, radius, **name):\n        '''Extend this L{LatLonPrec3Tuple} to a L{LatLonPrec5Tuple}.\n\n           @arg height: The height to add (C{float} or C{None}).\n           @arg radius: The radius to add (C{float} or C{None}).\n           @kwarg name: Optional C{B{name}=NN} (C{str}), overriding\n                        this name.\n\n           @return: A L{LatLonPrec5Tuple}C{(lat, lon, precision,\n                    height, radius)}.\n        '''\n        return self._xtend(LatLonPrec5Tuple, height, radius, **name)\n\n\nclass LatLonPrec5Tuple(LatLonPrec3Tuple):  # .wgrs.py\n    '''5-Tuple C{(lat, lon, precision, height, radius)} in C{degrees},\n       C{degrees}, C{int} and C{height} or C{radius} in C{meter} (or\n       C{None} if missing).\n    '''\n    _Names_ = LatLonPrec3Tuple._Names_ + (_height_, _radius_)\n    _Units_ = LatLonPrec3Tuple._Units_ + ( Height,   Radius)\n\n\nclass _NamedTupleTo(_NamedTuple):  # in .testNamedTuples\n    '''(INTERNAL) Base for C{-.toDegrees}, C{-.toRadians}.\n    '''\n    def _Degrees3(self, *xs, **toDMS_kwds):\n        '''(INTERNAL) Convert C{xs} from C{Radians} to C{Degrees} or C{toDMS}.\n        '''\n        if toDMS_kwds:\n            toDMS_kwds = _xkwds(toDMS_kwds, ddd=1, pos=NN)\n            toDMS, s   = _MODS.dms.toDMS, None\n        else:\n            toDMS, s   =  None, self\n        for x in xs:\n            if not isinstanceof(x, Degrees):\n                x, s = x.toDegrees(), None\n            yield toDMS(x, **toDMS_kwds) if toDMS else x\n        yield s\n\n    def _Radians3(self, *xs, **unused):\n        '''(INTERNAL) Convert C{xs} from C{Degrees} to C{Radians}.\n        '''\n        s = self\n        for x in xs:\n            if not isinstanceof(x, Radians):\n                x, s = x.toRadians(), None\n            yield x\n        yield s\n\n\nclass NearestOn2Tuple(_NamedTuple):  # .ellipsoidalBaseDI\n    '''2-Tuple C{(closest, fraction)} of the C{closest} point\n       on and C{fraction} along a line (segment) between two\n       points.  The C{fraction} is C{0} if the closest point\n       is the first or C{1} the second of the two points.\n       Negative C{fraction}s indicate the closest point is\n       C{before} the first point.  For C{fraction > 1.0}\n       the closest point is after the second point.\n    '''\n    _Names_ = (_closest_, _fraction_)\n    _Units_ = (_Pass,     _Pass)\n\n\nclass NearestOn3Tuple(_NamedTuple):  # .points.py, .sphericalTrigonometry\n    '''3-Tuple C{(closest, distance, angle)} of the C{closest}\n       point on the polygon, either a C{LatLon} instance or a\n       L{LatLon3Tuple}C{(lat, lon, height)} and the C{distance}\n       and C{angle} to the C{closest} point are in C{meter}\n       respectively compass C{degrees360}.\n    '''\n    _Names_ = (_closest_, _distance_, _angle_)\n    _Units_ = (_Pass,      Meter,      Degrees)\n\n\n# NearestOn4Tuple DEPRECATED, see .deprecated.classes.NearestOn4Tuple\n\n\nclass NearestOn5Tuple(_NamedTuple):\n    '''5-Tuple C{(lat, lon, distance, angle, height)} all in C{degrees},\n       except C{height}.  The C{distance} is the L{pygeodesy.equirectangular}\n       distance between the closest and the reference B{C{point}} in C{degrees}.\n       The C{angle} from the reference B{C{point}} to the closest point is in\n       compass C{degrees360}, see function L{pygeodesy.compassAngle}.  The\n       C{height} is the (interpolated) height at the closest point in C{meter}\n       or C{0}.\n    '''\n    _Names_ = (_lat_, _lon_, _distance_, _angle_, _height_)\n    _Units_ = ( Lat,   Lon,   Degrees,    Degrees, Meter)\n\n\nclass NearestOn6Tuple(_NamedTuple):  # .latlonBase.py, .vector3d.py\n    '''6-Tuple C{(closest, distance, fi, j, start, end)} with the C{closest}\n       point, the C{distance} in C{meter}, conventionally and the C{start}\n       and C{end} point of the path or polygon edge.  Fractional index C{fi}\n       (an L{FIx} instance) and index C{j} indicate the path or polygon edge\n       and the fraction along that edge with the C{closest} point.  The\n       C{start} and C{end} points may differ from the given path or polygon\n       points at indices C{fi} respectively C{j}, when unrolled (C{wrap} is\n       C{True}).  Also, the C{start} and/or C{end} point may be the same\n       instance as the C{closest} point, for example when the very first\n       path or polygon point is the nearest.\n    '''\n    _Names_ = (_closest_, _distance_, _fi_, _j_,      _start_, _end_)\n    _Units_ = (_Pass,      Meter,      FIx,  Number_, _Pass  , _Pass)\n\n\nclass NearestOn8Tuple(_NamedTuple):  # .ellipsoidalBaseDI\n    '''8-Tuple C{(closest, distance, fi, j, start, end, initial, final)},\n       like L{NearestOn6Tuple} but extended with the C{initial} and the\n       C{final} bearing at the reference respectively the C{closest}\n       point, both in compass C{degrees}.\n    '''\n    _Names_ = NearestOn6Tuple._Names_ + Distance3Tuple._Names_[-2:]\n    _Units_ = NearestOn6Tuple._Units_ + Distance3Tuple._Units_[-2:]\n\n\nclass PhiLam2Tuple(_NamedTuple):  # .frechet, .hausdorff, .latlonBase, .points, .vector3d\n    '''2-Tuple C{(phi, lam)} with latitude C{phi} in C{radians[PI_2]}\n       and longitude C{lam} in C{radians[PI]}.\n\n       @note: Using C{phi/lambda} for lat-/longitude in C{radians}\n              follows Chris Veness' U{convention\n              <https://www.Movable-Type.co.UK/scripts/latlong.html>}.\n    '''\n    _Names_ = (_phi_, _lam_)\n    _Units_ = ( Phi,   Lam)\n\n    def to3Tuple(self, height, **name):\n        '''Extend this L{PhiLam2Tuple} to a L{PhiLam3Tuple}.\n\n           @arg height: The height to add (C{scalar}).\n           @kwarg name: Optional C{B{name}=NN} (C{str}),\n                        overriding this name.\n\n           @return: A L{PhiLam3Tuple}C{(phi, lam, height)}.\n\n           @raise ValueError: Invalid B{C{height}}.\n        '''\n        return self._xtend(PhiLam3Tuple, height, **name)\n\n    def to4Tuple(self, height, datum):\n        '''Extend this L{PhiLam2Tuple} to a L{PhiLam4Tuple}.\n\n           @arg height: The height to add (C{scalar}).\n           @arg datum: The datum to add (C{Datum}).\n\n           @return: A L{PhiLam4Tuple}C{(phi, lam, height, datum)}.\n\n           @raise TypeError: If B{C{datum}} not a C{Datum}.\n\n           @raise ValueError: Invalid B{C{height}}.\n        '''\n        return self.to3Tuple(height).to4Tuple(datum)\n\n\nclass PhiLam3Tuple(_NamedTuple):  # .nvector.py, extends -2Tuple\n    '''3-Tuple C{(phi, lam, height)} with latitude C{phi} in\n       C{radians[PI_2]}, longitude C{lam} in C{radians[PI]} and\n       C{height} in C{meter}.\n\n       @note: Using C{phi/lambda} for lat-/longitude in C{radians}\n              follows Chris Veness' U{convention\n              <https://www.Movable-Type.co.UK/scripts/latlong.html>}.\n    '''\n    _Names_ = (_phi_, _lam_, _height_)\n    _Units_ = ( Phi,   Lam,   Height)\n\n    def to4Tuple(self, datum, **name):\n        '''Extend this L{PhiLam3Tuple} to a L{PhiLam4Tuple}.\n\n           @arg datum: The datum to add (C{Datum}).\n           @kwarg name: Optional C{B{name}=NN} (C{str}),\n                        overriding this name.\n\n           @return: A L{PhiLam4Tuple}C{(phi, lam, height, datum)}.\n\n           @raise TypeError: If B{C{datum}} not a C{Datum}.\n        '''\n        _xinstanceof(_MODS.datums.Datum, datum=datum)\n        return self._xtend(PhiLam4Tuple, datum, **name)\n\n\nclass PhiLam4Tuple(_NamedTuple):  # extends -3Tuple\n    '''4-Tuple C{(phi, lam, height, datum)} with latitude C{phi} in\n       C{radians[PI_2]}, longitude C{lam} in C{radians[PI]}, C{height}\n       in C{meter} and L{Datum}.\n\n       @note: Using C{phi/lambda} for lat-/longitude in C{radians}\n              follows Chris Veness' U{convention\n              <https://www.Movable-Type.co.UK/scripts/latlong.html>}.\n    '''\n    _Names_ = (_phi_, _lam_, _height_, _datum_)\n    _Units_ = ( Phi,   Lam,   Height,  _Pass)\n\n\nclass Point3Tuple(_NamedTuple):\n    '''3-Tuple C{(x, y, ll)} in C{meter}, C{meter} and C{LatLon}.\n    '''\n    _Names_ = (_x_,   _y_,    _elel_)\n    _Units_ = ( Meter, Meter, _Pass)\n\n\nclass Points2Tuple(_NamedTuple):  # .formy, .latlonBase\n    '''2-Tuple C{(number, points)} with the C{number} of points\n       and -possible reduced- C{list} or C{tuple} of C{points}.\n    '''\n    _Names_ = (_number_, _points_)\n    _Units_ = ( Number_, _Pass)\n\n\nclass Reverse4Tuple(_NamedTuple, _Convergence):\n    '''4-Tuple C{(lat, lon, gamma, scale)} with C{lat}- and\n       C{lon}gitude in C{degrees}, meridian convergence C{gamma}\n       at point in C{degrees} and the C{scale} of projection at\n       point C{scalar}.\n    '''\n    _Names_ = (_lat_, _lon_, _gamma_, _scale_)\n    _Units_ = ( Lat,   Lon,   Degrees, Scalar)\n\n\nclass Triangle7Tuple(_NamedTuple):\n    '''7-Tuple C{(A, a, B, b, C, c, area)} with interior angles C{A},\n       C{B} and C{C} in C{degrees}, spherical sides C{a}, C{b} and C{c}\n       in C{meter} conventionally and the C{area} of a (spherical)\n       triangle in I{square} C{meter} conventionally.\n    '''\n    _Names_ = (_A_,     _a_,   _B_,     _b_,   _C_,     _c_,   _area_)\n    _Units_ = ( Degrees, Meter, Degrees, Meter, Degrees, Meter, Meter2)\n\n\nclass Triangle8Tuple(_NamedTuple):\n    '''8-Tuple C{(A, a, B, b, C, c, D, E)} with interior angles C{A},\n       C{B} and C{C}, spherical sides C{a}, C{b} and C{c}, the I{spherical\n       deficit} C{D} and the I{spherical excess} C{E} of a (spherical)\n       triangle, all in C{radians}.\n    '''\n    _Names_ = (_A_,     _a_,     _B_,     _b_,     _C_,     _c_,     _D_,     _E_)\n    _Units_ = ( Radians, Radians, Radians, Radians, Radians, Radians, Radians, Radians)\n\n\nclass Trilaterate5Tuple(_NamedTuple):  # .latlonBase, .nvector\n    '''5-Tuple C{(min, minPoint, max, maxPoint, n)} with C{min} and C{max}\n       in C{meter}, the corresponding trilaterated C{minPoint} and C{maxPoint}\n       as C{LatLon} and the number C{n}.  For area overlap, C{min} and C{max}\n       are the smallest respectively largest overlap found.  For perimeter\n       intersection, C{min} and C{max} represent the closest respectively\n       farthest intersection margin.  Count C{n} is the total number of\n       trilaterated overlaps or intersections found, C{0, 1, 2...6} with\n       C{0} meaning concentric.\n\n       @see: The C{ellipsoidalKarney-}, C{ellipsoidalVincenty-} and\n             C{sphericalTrigonometry.LatLon.trilaterate5} method for further\n             details on corner cases, like concentric or single trilaterated\n             results.\n   '''\n    _Names_ = (min.__name__, 'minPoint', max.__name__, 'maxPoint', _n_)\n    _Units_ = (Meter,        _Pass,      Meter,        _Pass,       Number_)\n\n\nclass UtmUps2Tuple(_NamedTuple):  # .epsg.py\n    '''2-Tuple C{(zone, hemipole)} as C{int} and C{str}, where\n       C{zone} is C{1..60} for UTM or C{0} for UPS and C{hemipole}\n       C{'N'|'S'} is the UTM hemisphere or the UPS pole.\n    '''\n    _Names_ = (_zone_,  _hemipole_)\n    _Units_ = ( Number_, Str)\n\n\nclass UtmUps5Tuple(_NamedTuple):  # .mgrs.py, .ups.py, .utm.py, .utmups.py\n    '''5-Tuple C{(zone, hemipole, easting, northing, band)} as C{int},\n       C{str}, C{meter}, C{meter} and C{band} letter, where C{zone} is\n       C{1..60} for UTM or C{0} for UPS, C{hemipole} C{'N'|'S'} is the UTM\n       hemisphere or the UPS pole and C{band} is C{\"\"} or the I{longitudinal}\n       UTM band C{'C'|'D'|..|'W'|'X'} or I{polar} UPS band C{'A'|'B'|'Y'|'Z'}.\n    '''\n    _Names_ = (_zone_,  _hemipole_, _easting_, _northing_, _band_)\n    _Units_ = ( Number_, Str,        Easting,   Northing,   Band)\n\n    def __new__(cls, z, h, e, n, B, Error=None, **name):\n        if Error is not None:\n            e = Easting( e, Error=Error)\n            n = Northing(n, Error=Error)\n        return _NamedTuple.__new__(cls, z, h, e, n, B, **name)\n\n\nclass UtmUps8Tuple(_NamedTuple, _Convergence):  # .ups, .utm, .utmups\n    '''8-Tuple C{(zone, hemipole, easting, northing, band, datum,\n       gamma, scale)} as C{int}, C{str}, C{meter}, C{meter}, C{band}\n       letter, C{Datum}, C{degrees} and C{scalar}, where C{zone} is\n       C{1..60} for UTM or C{0} for UPS, C{hemipole} C{'N'|'S'} is\n       the UTM hemisphere or the UPS pole and C{band} is C{\"\"} or\n       the I{longitudinal} UTM band C{'C'|'D'|..|'W'|'X'} or\n       I{polar} UPS band C{'A'|'B'|'Y'|'Z'}.\n    '''\n    _Names_ = (_zone_,  _hemipole_, _easting_, _northing_,\n               _band_,  _datum_, _gamma_, _scale_)\n    _Units_ = ( Number_, Str,        Easting,   Northing,\n                Band,   _Pass,    Degrees, Scalar)\n\n    def __new__(cls, z, h, e, n, B, d, g, s, Error=None, **name):  # PYCHOK 11 args\n        if Error is not None:\n            e = Easting( e, Error=Error)\n            n = Northing(n, Error=Error)\n            g = Degrees(gamma=g, Error=Error)\n            s = Scalar(scale=s, Error=Error)\n        return _NamedTuple.__new__(cls, z, h, e, n, B, d, g, s, **name)\n\n\nclass UtmUpsLatLon5Tuple(_NamedTuple):  # .ups.py, .utm.py, .utmups.py\n    '''5-Tuple C{(zone, band, hemipole, lat, lon)} as C{int},\n       C{str}, C{str}, C{degrees90} and C{degrees180}, where\n       C{zone} is C{1..60} for UTM or C{0} for UPS, C{band} is\n       C{\"\"} or the I{longitudinal} UTM band C{'C'|'D'|..|'W'|'X'}\n       or I{polar} UPS band C{'A'|'B'|'Y'|'Z'} and C{hemipole}\n       C{'N'|'S'} is the UTM hemisphere or the UPS pole.\n    '''\n    _Names_ = (_zone_,  _band_, _hemipole_, _lat_, _lon_)\n    _Units_ = ( Number_, Band,   Str,        Lat,   Lon)\n\n    def __new__(cls, z, B, h, lat, lon, Error=None, **name):\n        if Error is not None:\n            lat = Lat(lat, Error=Error)\n            lon = Lon(lon, Error=Error)\n        return _NamedTuple.__new__(cls, z, B, h, lat, lon, **name)\n\n\nclass Vector2Tuple(_NamedTuple):\n    '''2-Tuple C{(x, y)} of (geocentric) components, each in\n       C{meter} or the same C{units}.\n    '''\n    _Names_ = (_x_,    _y_)\n    _Units_ = ( Scalar, Scalar)\n\n    def toCartesian(self, Cartesian, **Cartesian_kwds):\n        '''Return this C{Vector2Tuple} as a C{Cartesian}.\n\n           @arg Cartesian: The C{Cartesian} class to use.\n           @kwarg Cartesian_kwds: Optional, additional C{Cartesian}\n                                  keyword arguments.\n\n           @return: The C{B{Cartesian}} instance with C{z=0}.\n        '''\n        return _v2Cls(self.xyz, Cartesian, Cartesian_kwds)\n\n    def to3Tuple(self, z=INT0, **name):\n        '''Extend this L{Vector2Tuple} to a L{Vector3Tuple}.\n\n           @kwarg z: The Z component add (C{scalar}).\n           @kwarg name: Optional C{B{name}=NN} (C{str}),\n                        overriding this name.\n\n           @return: A L{Vector3Tuple}C{(x, y, z)}.\n\n           @raise ValueError: Invalid B{C{z}}.\n        '''\n        return self._xtend(Vector3Tuple, z, **name)\n\n    @property_RO\n    def xyz(self):\n        '''Get X, Y and Z=0 components (C{Vector3Tuple}).\n        '''\n        return Vector3Tuple(*self.xyz3)\n\n    @property_RO\n    def xyz3(self):\n        '''Get X, Y and Z=0 components as C{3-tuple}.\n        '''\n        return self.x, self.y, INT0\n\n\nclass Vector3Tuple(_NamedTuple):\n    '''3-Tuple C{(x, y, z)} of (geocentric) components, all in\n       C{meter} or the same C{units}.\n    '''\n    _Names_ = (_x_,    _y_,    _z_)\n    _Units_ = ( Scalar, Scalar, Scalar)\n\n    def toCartesian(self, Cartesian, **Cartesian_kwds):\n        '''Return this C{Vector3Tuple} as a C{Cartesian}.\n\n           @arg Cartesian: The C{Cartesian} class to use.\n           @kwarg Cartesian_kwds: Optional, additional C{Cartesian}\n                                  keyword arguments.\n\n           @return: The C{B{Cartesian}} instance.\n        '''\n        return _v2Cls(self, Cartesian, Cartesian_kwds)\n\n    def to4Tuple(self, h=INT0, **name):\n        '''Extend this L{Vector3Tuple} to a L{Vector4Tuple}.\n\n           @arg h: The height to add (C{scalar}).\n           @kwarg name: Optional C{B{name}=NN} (C{str}),\n                        overriding this name.\n\n           @return: A L{Vector4Tuple}C{(x, y, z, h)}.\n\n           @raise ValueError: Invalid B{C{h}}.\n        '''\n        return self._xtend(Vector4Tuple, h, **name)\n\n    @property_RO\n    def xyz(self):\n        '''Get X, Y and Z components (C{Vector3Tuple}).\n        '''\n        return self\n\n    @property_RO\n    def xyz3(self):\n        '''Get X, Y and Z components as C{3-tuple}.\n        '''\n        return tuple(self)\n\n\nclass Vector4Tuple(_NamedTuple):  # .nvector.py\n    '''4-Tuple C{(x, y, z, h)} of (geocentric) components, all\n       in C{meter} or the same C{units}.\n    '''\n    _Names_ = (_x_,    _y_,    _z_,    _h_)\n    _Units_ = ( Scalar, Scalar, Scalar, Height)\n\n    def toCartesian(self, Cartesian, **Cartesian_kwds):\n        '''Return this C{Vector4Tuple} as a C{Cartesian}.\n\n           @arg Cartesian: The C{Cartesian} class to use.\n           @kwarg Cartesian_kwds: Optional, additional C{Cartesian}\n                                  keyword arguments.\n\n           @return: The C{B{Cartesian}} instance.\n        '''\n        return _v2Cls(self, Cartesian, Cartesian_kwds)\n\n    def to3Tuple(self):\n        '''Reduce this L{Vector4Tuple} to a L{Vector3Tuple}.\n\n           @return: A L{Vector3Tuple}C{(x, y, z)}.\n        '''\n        return self.xyz\n\n    @property_RO\n    def xyz(self):\n        '''Get X, Y and Z components (L{Vector3Tuple}).\n        '''\n        return Vector3Tuple(*self.xyz)\n\n    @property_RO\n    def xyz3(self):\n        '''Get X, Y and Z components as C{3-tuple}.\n        '''\n        return tuple(self[:3])\n\n\ndef _v2Cls(v, Cls, Cartesian_kwds):  # in .vector3d\n    if issubclassof(Cls, _MODS.cartesianBase.CartesianBase):  # _MODS.vector3d.Vector3d)\n        return Cls(v, **Cartesian_kwds)\n    raise _TypeError(Cartesian=Cls, **Cartesian_kwds)\n\n# **) MIT License\n#\n# Copyright (C) 2016-2026 -- mrJean1 at Gmail -- All Rights Reserved.\n#\n# Permission is hereby granted, free of charge, to any person obtaining a\n# copy of this software and associated documentation files (the \"Software\"),\n# to deal in the Software without restriction, including without limitation\n# the rights to use, copy, modify, merge, publish, distribute, sublicense,\n# and/or sell copies of the Software, and to permit persons to whom the\n# Software is furnished to do so, subject to the following conditions:\n#\n# The above copyright notice and this permission notice shall be included\n# in all copies or substantial portions of the Software.\n#\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL\n# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR\n# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\n# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n# OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "pygeodesy/nvectorBase.py",
    "content": "\n# -*- coding: utf-8 -*-\n\nu'''(INTERNAL) Private elliposiodal and spherical C{Nvector} base classes\nL{LatLonNvectorBase} and L{NvectorBase} and function L{sumOf}.\n\nPure Python implementation of C{n-vector}-based geodesy tools for ellipsoidal\nearth models, transcoded from JavaScript originals by I{(C) Chris Veness 2005-2016}\nand published under the same MIT Licence**, see U{Vector-based geodesy\n<https://www.Movable-Type.co.UK/scripts/latlong-vectors.html>}.\n'''\n\nfrom pygeodesy.basics import _isin, map1\nfrom pygeodesy.constants import EPS, EPS0, EPS1, EPS_2, R_M, \\\n                               _0_0, _1_0, _2_0, _N_2_0\n# from pygeodesy.datums import _spherical_datum  # from .formy\nfrom pygeodesy.errors import IntersectionError, _ValueError, VectorError, \\\n                            _xattrs, _xkwds, _xkwds_pop2\nfrom pygeodesy.fmath import fidw, hypot\nfrom pygeodesy.fsums import Fsum, fsumf_\nfrom pygeodesy.formy import _isequalTo,  _spherical_datum\n# from pygeodesy.internals import _under  # from .named\nfrom pygeodesy.interns import NN, _1_, _2_, _3_, _bearing_, _coincident_, \\\n                             _COMMASPACE_, _distance_, _h_, _insufficient_, \\\n                             _intersection_, _no_, _point_, _pole_, _SPACE_\nfrom pygeodesy.latlonBase import LatLonBase,  _ALL_DOCS, _ALL_LAZY, _MODS\n# from pygeodesy.lazily import _ALL_DOCS, _ALL_LAZY, _ALL_MODS as _MODS  # from .latlonBase\nfrom pygeodesy.named import _xother3,  _under\nfrom pygeodesy.namedTuples import LatLon2Tuple, PhiLam2Tuple, Trilaterate5Tuple, \\\n                                  Vector3Tuple, Vector4Tuple\nfrom pygeodesy.props import deprecated_method, Property_RO, property_doc_, \\\n                            property_RO, property_ROnce, _update_all\nfrom pygeodesy.streprs import Fmt, hstr, unstr\nfrom pygeodesy.units import Bearing, Height, Radius_, Scalar\nfrom pygeodesy.utily import atan2, sincos2d, _unrollon, _unrollon3\nfrom pygeodesy.vector3d import Vector3d, _xyzhdlln4\n\nfrom math import degrees, fabs, sqrt\n\n__all__ = _ALL_LAZY.nvectorBase\n__version__ = '25.08.18'\n\n\nclass NvectorBase(Vector3d):  # XXX kept private\n    '''(INTERNAL) Base class for ellipsoidal and spherical C{Nvector}s.\n    '''\n    _datum = None         # L{Datum}, overriden\n    _h     = Height(h=0)  # height (C{meter})\n    _H     = NN           # height prefix (C{str}), '↑' in JS version\n\n    def __init__(self, x_xyz, y=None, z=None, h=0, datum=None, **ll_name):\n        '''New n-vector normal to the earth's surface.\n\n           @arg x_xyz: X component of vector (C{scalar}) or (3-D) vector (C{Nvector},\n                       L{Vector3d}, L{Vector3Tuple} or L{Vector4Tuple}).\n           @kwarg y: Y component of vector (C{scalar}), required if B{C{x_xyz}} is\n                     C{scalar} and same units as B{C{x_xyz}}, ignored otherwise.\n           @kwarg z: Z component of vector (C{scalar}), like B{C{y}}.\n           @kwarg h: Optional height above surface (C{meter}).\n           @kwarg datum: Optional, I{pass-thru} datum (L{Datum}).\n           @kwarg ll_name: Optional C{B{name}=NN} (C{str}) and optional, original\n                           latlon C{B{ll}=None} (C{LatLon}).\n\n           @raise TypeError: Non-scalar B{C{x}}, B{C{y}} or B{C{z}} coordinate or\n                             B{C{x_xyz}} not an C{Nvector}, L{Vector3Tuple} or\n                             L{Vector4Tuple} or invalid B{C{datum}}.\n        '''\n        h, d, ll, n = _xyzhdlln4(x_xyz, h, datum, **ll_name)\n        Vector3d.__init__(self, x_xyz, y=y, z=z, ll=ll, name=n)\n        if h:\n            self.h = h\n        if d is not None:\n            self._datum = _spherical_datum(d, name=n)  # pass-thru\n\n    @Property_RO\n    def datum(self):\n        '''Get the I{pass-thru} datum (C{Datum}) or C{None}.\n        '''\n        return self._datum\n\n    @property_ROnce\n    def Ecef(self):\n        '''Get the ECEF I{class} (L{EcefKarney}), I{once}.\n        '''\n        return _MODS.ecef.EcefKarney\n\n    @property_RO\n    def ellipsoidalNvector(self):\n        '''Get the C{Nvector type} iff ellipsoidal, overloaded in L{pygeodesy.ellipsoidalNvector.Nvector}.\n        '''\n        return False\n\n    @property_doc_(''' the height above surface (C{meter}).''')\n    def h(self):\n        '''Get the height above surface (C{meter}).\n        '''\n        return self._h\n\n    @h.setter  # PYCHOK setter!\n    def h(self, h):\n        '''Set the height above surface (C{meter}).\n\n           @raise TypeError: If B{C{h}} invalid.\n\n           @raise VectorError: If B{C{h}} invalid.\n        '''\n        h = Height(h=h, Error=VectorError)\n        if self._h != h:\n            _update_all(self)\n            self._h = h\n\n    @property_doc_(''' the height prefix (C{str}).''')\n    def H(self):\n        '''Get the height prefix (C{str}).\n        '''\n        return self._H\n\n    @H.setter  # PYCHOK setter!\n    def H(self, H):\n        '''Set the height prefix (C{str}).\n        '''\n        self._H = str(H) if H else NN\n\n    def hStr(self, prec=-2, m=NN):\n        '''Return a string for the height B{C{h}}.\n\n           @kwarg prec: Number of (decimal) digits, unstripped (C{int}).\n           @kwarg m: Optional unit of the height (C{str}).\n\n           @see: Function L{pygeodesy.hstr}.\n        '''\n        return NN(self.H, hstr(self.h, prec=prec, m=m))\n\n    @Property_RO\n    def isEllipsoidal(self):\n        '''Check whether this n-vector is ellipsoidal (C{bool} or C{None} if unknown).\n        '''\n        return self.datum.isEllipsoidal if self.datum else None\n\n    @Property_RO\n    def isSpherical(self):\n        '''Check whether this n-vector is spherical (C{bool} or C{None} if unknown).\n        '''\n        return self.datum.isSpherical if self.datum else None\n\n    @Property_RO\n    def lam(self):\n        '''Get the (geodetic) longitude in C{radians} (C{float}).\n        '''\n        return self.philam.lam\n\n    @Property_RO\n    def lat(self):\n        '''Get the (geodetic) latitude in C{degrees} (C{float}).\n        '''\n        return self.latlon.lat\n\n    @Property_RO\n    def latlon(self):\n        '''Get the (geodetic) lat-, longitude in C{degrees} (L{LatLon2Tuple}C{(lat, lon)}).\n        '''\n        return n_xyz2latlon(self, name=self.name)\n\n    @Property_RO\n    def latlonheight(self):\n        '''Get the (geodetic) lat-, longitude in C{degrees} and height (L{LatLon3Tuple}C{(lat, lon, height)}).\n        '''\n        return self.latlon.to3Tuple(self.h)\n\n    @Property_RO\n    def latlonheightdatum(self):\n        '''Get the lat-, longitude in C{degrees} with height and datum (L{LatLon4Tuple}C{(lat, lon, height, datum)}).\n        '''\n        return self.latlonheight.to4Tuple(self.datum)\n\n    @Property_RO\n    def lon(self):\n        '''Get the (geodetic) longitude in C{degrees} (C{float}).\n        '''\n        return self.latlon.lon\n\n    @Property_RO\n    def phi(self):\n        '''Get the (geodetic) latitude in C{radians} (C{float}).\n        '''\n        return self.philam.phi\n\n    @Property_RO\n    def philam(self):\n        '''Get the (geodetic) lat-, longitude in C{radians} (L{PhiLam2Tuple}C{(phi, lam)}).\n        '''\n        return n_xyz2philam(self, name=self.name)\n\n    @Property_RO\n    def philamheight(self):\n        '''Get the (geodetic) lat-, longitude in C{radians} and height (L{PhiLam3Tuple}C{(phi, lam, height)}).\n        '''\n        return self.philam.to3Tuple(self.h)\n\n    @Property_RO\n    def philamheightdatum(self):\n        '''Get the lat-, longitude in C{radians} with height and datum (L{PhiLam4Tuple}C{(phi, lam, height, datum)}).\n        '''\n        return self.philamheight.to4Tuple(self.datum)\n\n    @property_RO\n    def sphericalNvector(self):\n        '''Get the C{Nvector type} iff spherical, overloaded in L{pygeodesy.sphericalNvector.Nvector}.\n        '''\n        return False\n\n    @deprecated_method\n    def to2ab(self):  # PYCHOK no cover\n        '''DEPRECATED, use property L{philam}.'''\n        return self.philam\n\n    @deprecated_method\n    def to3abh(self, height=None):  # PYCHOK no cover\n        '''DEPRECATED, use property L{philamheight} or C{philam.to3Tuple(B{height})}.'''\n        return self.philamheight if _isin(height, None, self.h) else \\\n               self.philam.to3Tuple(height)\n\n    def toCartesian(self, h=None, Cartesian=None, datum=None, **name_Cartesian_kwds):  # PYCHOK signature\n        '''Convert this n-vector to C{Nvector}-based cartesian (ECEF) coordinates.\n\n           @kwarg h: Optional height, overriding this n-vector's height (C{meter}).\n           @kwarg Cartesian: Optional class to return the (ECEF) coordinates (C{Cartesian}).\n           @kwarg datum: Optional datum (C{Datum}), overriding this datum.\n           @kwarg name_Cartesian_kwds: Optional C{B{name}=NN} (C{str}) and optionally, additional\n                       B{C{Cartesian}} keyword arguments, ignored if C{B{Cartesian} is None}.\n\n           @return: The (ECEF) coordinates (B{C{Cartesian}}) or if C{B{Cartesian} is None}, an\n                    L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)} with C{C} and C{M}\n                    if available.\n\n           @raise TypeError: Invalid B{C{Cartesian}} or B{C{name_Cartesian_kwds}} argument.\n\n           @raise ValueError: Invalid B{C{h}}.\n        '''\n        if h is None:\n            h = self.h\n        elif not isinstance(h, Height):\n            h = Height(h=h, Error=VectorError)\n        _, r, v = self._toEcefDrv3(Cartesian, None, datum, h, **name_Cartesian_kwds)\n        if r is None:\n            r = v.toCartesian(Cartesian, **self._name1__(name_Cartesian_kwds))  # h=0\n        return r\n\n    def _toEcefDrv3(self, CC, LL, datum, h, name=NN, **unused):\n        '''(INTERNAL) Helper for methods C{toCartesian} and C{toLatLon}.\n        '''\n        D = self.datum if _isin(datum, None, self.datum) else \\\n           _spherical_datum(datum, name=self.name)\n        if LL is None:\n            v = Vector3d(self, name=name or self.name)  # .toVector3d(norm=False)\n            E = D.ellipsoid\n            r = E.a_b  # Kenneth Gade eqn 22\n            n = v.times_(r, r, _1_0).length\n            n = (E.b / n) if n > EPS0 else _0_0\n            r = E.a2_b2 * n + h  # fma\n            v = v.times_(r, r, n + h)\n            r = self.Ecef(D).reverse(v, M=True) if CC is None else None\n        else:\n            r = v = None\n        return D, r, v\n\n    @deprecated_method\n    def to2ll(self):  # PYCHOK no cover\n        '''DEPRECATED, use property L{latlon}.'''\n        return self.latlon\n\n    @deprecated_method\n    def to3llh(self, height=None):  # PYCHOK no cover\n        '''DEPRECATED, use property C{latlonheight} or C{latlon.to3Tuple(B{height})}.'''\n        return self.latlonheight if _isin(height, None, self.h) else \\\n               self.latlon.to3Tuple(height)\n\n    def toLatLon(self, height=None, LatLon=None, datum=None, **name_LatLon_kwds):\n        '''Convert this n-vector to an C{Nvector}-based geodetic point.\n\n           @kwarg height: Optional height, overriding this n-vector's\n                          height (C{meter}).\n           @kwarg LatLon: Optional class to return the geodetic point\n                          (C{LatLon}) or C{None}.\n           @kwarg datum: Optional, spherical datum (C{Datum}).\n           @kwarg name_LatLon_kwds: Optional C{B{name}=NN} (C{str}) and optionally,\n                       additional B{C{LatLon}} keyword arguments, ignored if\n                       C{B{LatLon} is None}.\n\n           @return: The geodetic point (C{LatLon}) or if C{B{LatLon} is None},\n                    an L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n                    with C{C} and C{M} if available.\n\n           @raise TypeError: Invalid B{C{LatLon}} or B{C{name_LatLon_kwds}} argument.\n\n           @raise ValueError: Invalid B{C{height}}.\n        '''\n        h = self.h if height is None else (\n            height if isinstance(height, Height) else\n            Height(height, Error=VectorError))\n        # use the .toCartesian() logic for better height accuracy instead of\n        # r = self.Ecef(D).forward(self.lat, self.lon, height=h, M=True)\n        D, r, _ = self._toEcefDrv3(None, LatLon, datum, h, **name_LatLon_kwds)\n        if r is None:\n            kwds = _xkwds(name_LatLon_kwds, height=h, datum=D)\n            r = LatLon(self.lat, self.lon, **self._name1__(kwds))\n        return r\n\n    def toStr(self, prec=5, fmt=Fmt.PAREN, sep=_COMMASPACE_):  # PYCHOK expected\n        '''Return a string representation of this n-vector.\n\n           Height component is only included if non-zero.\n\n           @kwarg prec: Number of (decimal) digits, unstripped (C{int}).\n           @kwarg fmt: Enclosing backets format (C{str}).\n           @kwarg sep: Optional separator between components (C{str}).\n\n           @return: Comma-separated C{\"(x, y, z [, h])\"} enclosed in\n                    B{C{fmt}} brackets (C{str}).\n        '''\n        t = Vector3d.toStr(self, prec=prec, fmt=NN, sep=sep)\n        if self.h:\n            t = sep.join((t, self.hStr()))\n        return (fmt % (t,)) if fmt else t\n\n    def toVector3d(self, norm=True):\n        '''Convert this n-vector to a 3-D vector, I{ignoring height}.\n\n           @kwarg norm: If C{True}, normalize the 3-D vector (C{bool}).\n\n           @return: The (normalized) vector (L{Vector3d}).\n        '''\n        v = Vector3d.unit(self) if norm else self\n        return Vector3d(v, name=self.name)\n\n    @deprecated_method\n    def to4xyzh(self, h=None):  # PYCHOK no cover\n        '''DEPRECATED, use property L{xyzh} or C{xyz.to4Tuple(B{h})}.'''\n        return self.xyzh if _isin(h, None, self.h) else Vector4Tuple(\n               self.x, self.y, self.z, h, name=self.name)\n\n    def unit(self, ll=None):\n        '''Normalize this n-vector to unit length.\n\n           @kwarg ll: Optional, original latlon (C{LatLon}).\n\n           @return: Normalized vector (C{Nvector}).\n        '''\n        return _xattrs(Vector3d.unit(self, ll=ll), self, _under(_h_))\n\n    @Property_RO\n    def xyzh(self):\n        '''Get this n-vector's components (L{Vector4Tuple}C{(x, y, z, h)})\n        '''\n        return self.xyz.to4Tuple(self.h)\n\n\nclass _N_Vector(NvectorBase):\n    '''(INTERNAL) Minimal, low-overhead C{n-vector}.\n    '''\n    def __init__(self, x, y, z, h=0, **name):\n        self._x, self._y, self._z = x, y, z\n        if h:\n            self._h = h\n        if name:\n            self.name = name\n\n\nNorthPole = _N_Vector(0, 0, +1, name='NorthPole')  # North pole\nSouthPole = _N_Vector(0, 0, -1, name='SouthPole')  # South pole\n\n\nclass LatLonNvectorBase(LatLonBase):\n    '''(INTERNAL) Base class for n-vector-based ellipsoidal and spherical C{LatLon}s.\n    '''\n\n    def _update(self, updated, *attrs, **setters):  # PYCHOK _Nv=None\n        '''(INTERNAL) Zap cached attributes if updated.\n\n           @see: C{ellipsoidalNvector.LatLon} and C{sphericalNvector.LatLon} for\n                 the special case of B{C{_Nv}}.\n        '''\n        if updated:\n            _Nv, setters = _xkwds_pop2(setters, _Nv=None)\n            if _Nv is not None:\n                if _Nv._fromll is not None:\n                    _Nv._fromll = None\n                self._Nv = None\n            LatLonBase._update(self, updated, *attrs, **setters)\n\n#   def distanceTo(self, other, **kwds):  # PYCHOK no cover\n#       '''I{Must be overloaded}.'''\n#       self._notOverloaded(other, **kwds)\n\n    def intersections2(self, radius1, other, radius2, **kwds):  # PYCHOK expected\n        '''B{Not implemented}, throws a C{NotImplementedError} always.'''\n        self._notImplemented(radius1, other, radius2, **kwds)\n\n    def others(self, *other, **name_other_up):\n        '''Refined class comparison.\n\n           @arg other: The other instance (C{LatLonNvectorBase}).\n           @kwarg name_other_up: Overriding C{name=other} and C{up=1}\n                                 keyword arguments.\n\n           @return: The B{C{other}} if compatible.\n\n           @raise TypeError: Incompatible B{C{other}} C{type}.\n        '''\n        if other:\n            other0 = other[0]\n            if isinstance(other0, (self.__class__, LatLonNvectorBase)):  # XXX NvectorBase?\n                return other0\n\n        other, name, up = _xother3(self, other, **name_other_up)\n        if not isinstance(other, (self.__class__, LatLonNvectorBase)):  # XXX NvectorBase?\n            LatLonBase.others(self, other, name=name, up=up + 1)\n        return other\n\n    def toNvector(self, **Nvector_and_kwds):  # PYCHOK signature\n        '''Convert this point to C{Nvector} components, I{including height}.\n\n           @kwarg Nvector_and_kwds: Optional C{Nvector} class and C{Nvector} keyword arguments,\n                                    Specify C{B{Nvector}=...} to override this C{Nvector} class\n                                    or use C{B{Nvector}=None}.\n\n           @return: An C{Nvector} or if C{Nvector is None}, a L{Vector4Tuple}C{(x, y, z, h)}.\n\n           @raise TypeError: Invalid C{Nvector} or other B{C{Nvector_and_kwds}} item.\n        '''\n        return LatLonBase.toNvector(self, **_xkwds(Nvector_and_kwds, Nvector=NvectorBase))\n\n    def triangulate(self, bearing1, other, bearing2, height=None, wrap=False):  # PYCHOK signature\n        '''Locate a point given this, an other point and the (initial) bearing\n           from this and the other point.\n\n           @arg bearing1: Bearing at this point (compass C{degrees360}).\n           @arg other: The other point (C{LatLon}).\n           @arg bearing2: Bearing at the other point (compass C{degrees360}).\n           @kwarg height: Optional height at the triangulated point, overriding\n                          the mean height (C{meter}).\n           @kwarg wrap: If C{True}, use this and the B{C{other}} point\n                        I{normalized} (C{bool}).\n\n           @return: Triangulated point (C{LatLon}).\n\n           @raise TypeError: Invalid B{C{other}} point.\n\n           @raise Valuerror: Points coincide.\n        '''\n        return _triangulate(self, bearing1, self.others(other), bearing2,\n                                  height=height, wrap=wrap, LatLon=self.classof)\n\n    def trilaterate(self, distance1, point2, distance2, point3, distance3,\n                          radius=R_M, height=None, useZ=False, wrap=False):\n        '''Locate a point at given distances from this and two other points.\n\n           @arg distance1: Distance to this point (C{meter}, same units\n                           as B{C{radius}}).\n           @arg point2: Second reference point (C{LatLon}).\n           @arg distance2: Distance to point2 (C{meter}, same units as\n                           B{C{radius}}).\n           @arg point3: Third reference point (C{LatLon}).\n           @arg distance3: Distance to point3 (C{meter}, same units as\n                           B{C{radius}}).\n           @kwarg radius: Mean earth radius (C{meter}).\n           @kwarg height: Optional height at trilaterated point, overriding\n                          the mean height (C{meter}, same units as B{C{radius}}).\n           @kwarg useZ: Include Z component iff non-NaN, non-zero (C{bool}).\n           @kwarg wrap: If C{True}, use this, B{C{point2}} and B{C{point3}}\n                        I{normalized} (C{bool}).\n\n           @return: Trilaterated point (C{LatLon}).\n\n           @raise IntersectionError: No intersection, trilateration failed.\n\n           @raise TypeError: Invalid B{C{point2}} or B{C{point3}}.\n\n           @raise ValueError: Some B{C{points}} coincide or invalid B{C{distance1}},\n                              B{C{distance2}}, B{C{distance3}} or B{C{radius}}.\n\n           @see: U{Trilateration<https://WikiPedia.org/wiki/Trilateration>}, I{Veness}'\n                 JavaScript U{Trilateration<https://www.Movable-Type.co.UK/scripts/\n                 latlong-vectors.html>} and method C{LatLon.trilaterate5} of other,\n                 non-C{Nvector LatLon} classes.\n        '''\n        return _trilaterate(self, distance1, self.others(point2=point2), distance2,\n                                             self.others(point3=point3), distance3,\n                                             radius=radius, height=height, useZ=useZ,\n                                             wrap=wrap, LatLon=self.classof)\n\n    def trilaterate5(self, distance1, point2, distance2, point3, distance3,  # PYCHOK signature\n                           area=False, eps=EPS1, radius=R_M, wrap=False):\n        '''B{Not implemented} for C{B{area}=True} and falls back to method C{trilaterate}.\n\n           @return: A L{Trilaterate5Tuple}C{(min, minPoint, max, maxPoint, n)} with a\n                    single trilaterated intersection C{minPoint I{is} maxPoint}, C{min\n                    I{is} max} the nearest intersection margin and count C{n = 1}.\n\n           @raise NotImplementedError: Keyword argument C{B{area}=True} not (yet) supported.\n\n           @see: Method L{trilaterate} for other and more details.\n        '''\n        if area:\n            self._notImplemented(area=area)\n\n        t = _trilaterate(self, distance1, self.others(point2=point2), distance2,\n                                          self.others(point3=point3), distance3,\n                                          radius=radius, useZ=True, wrap=wrap,\n                                          LatLon=self.classof)\n        # ... and handle B{C{eps}} and C{IntersectionError}\n        # like function C{.latlonBase._trilaterate5}\n        d = self.distanceTo(t, radius=radius, wrap=wrap)  # PYCHOK distanceTo\n        d = min(fabs(distance1 - d), fabs(distance2 - d), fabs(distance3 - d))\n        if d < eps:  # min is max, minPoint is maxPoint\n            return Trilaterate5Tuple(d, t, d, t, 1)  # n = 1\n        t = _SPACE_(_no_(_intersection_), Fmt.PAREN(min.__name__, Fmt.f(d, prec=3)))\n        raise IntersectionError(area=area, eps=eps, radius=radius, wrap=wrap, txt=t)\n\n\ndef n_xyz2latlon(x_xyz, y=0, z=0, **name):\n    '''Convert C{n-vector} to (geodetic) lat- and longitude in C{degrees}.\n\n       @arg x_xyz: X component (C{scalar}) or (3-D) vector (C{Nvector},\n                   L{Vector3d}, L{Vector3Tuple} or L{Vector4Tuple}).\n       @kwarg y: Y component of vector (C{scalar}), required if C{B{x_xyz} is\n                 scalar} and same units as B{C{x_xyz}}, ignored otherwise.\n       @kwarg z: Z component of vector (C{scalar}), like B{C{y}}.\n       @kwarg name: Optional C{B{name}=NN} (C{str}).\n\n       @return: A L{LatLon2Tuple}C{(lat, lon)}.\n\n       @see: Function L{n_xyz2philam}.\n    '''\n    ll = map(degrees, n_xyz2philam(x_xyz, y, z))\n    return LatLon2Tuple(*ll, **name)\n\n\ndef n_xyz2philam(x_xyz, y=0, z=0, **name):\n    '''Convert C{n-vector} to (geodetic) lat- and longitude in C{radians}.\n\n       @arg x_xyz: X component (C{scalar}) or (3-D) vector (C{Nvector},\n                   L{Vector3d}, L{Vector3Tuple} or L{Vector4Tuple}).\n       @kwarg y: Y component of vector (C{scalar}), required if C{B{x_xyz} is\n                 scalar} and same units as B{C{x_xyz}}, ignored otherwise.\n       @kwarg z: Z component of vector (C{scalar}), like B{C{y}}.\n       @kwarg name: Optional C{B{name}=NN} (C{str}).\n\n       @return: A L{PhiLam2Tuple}C{(phi, lam)}.\n\n       @see: Function L{n_xyz2latlon}.\n    '''\n    try:\n        x, y, z = x_xyz.xyz\n    except AttributeError:\n        x = x_xyz\n    return PhiLam2Tuple(atan2(z, hypot(x, y)), atan2(y, x), **name)\n\n\ndef _nsumOf(nvs, h_None, Vector, Vector_kwds):  # .sphericalNvector, .vector3d\n    '''(INTERNAL) Separated to allow callers to embellish exceptions.\n    '''\n    X, Y, Z, n = Fsum(), Fsum(), Fsum(), 0\n    H = Fsum() if h_None is None else n\n    for n, v in enumerate(nvs or ()):  # one pass\n        X += v.x\n        Y += v.y\n        Z += v.z\n        H += v.h\n    if n < 1:\n        raise ValueError(_SPACE_(Fmt.PARENSPACED(len=n), _insufficient_))\n\n    x, y, z = map1(float, X, Y, Z)\n    h = H.fover(n) if h_None is None else h_None\n    return Vector3Tuple(x, y, z).to4Tuple(h) if Vector is None else \\\n                 Vector(x, y, z, **_xkwds(Vector_kwds, h=h))\n\n\ndef sumOf(nvectors, Vector=None, h=None, **Vector_kwds):\n    '''Return the I{vectorial} sum of two or more n-vectors.\n\n       @arg nvectors: Vectors to be added (C{Nvector}[]).\n       @kwarg Vector: Optional class for the vectorial sum (C{Nvector})\n                      or C{None}.\n       @kwarg h: Optional height, overriding the mean height (C{meter}).\n       @kwarg Vector_kwds: Optional, additional B{C{Vector}} keyword\n                           arguments, ignored if C{B{Vector} is None}.\n\n       @return: Vectorial sum (B{C{Vector}}) or a L{Vector4Tuple}C{(x, y,\n                z, h)} if C{B{Vector} is None}.\n\n       @raise VectorError: No B{C{nvectors}}.\n    '''\n    try:\n        return _nsumOf(nvectors, h, Vector, Vector_kwds)\n    except (TypeError, ValueError) as x:\n        raise VectorError(nvectors=nvectors, Vector=Vector, cause=x)\n\n\ndef _triangulate(point1, bearing1, point2, bearing2, height=None,\n                                   wrap=False, **LatLon_and_kwds):\n    # (INTERNAL) Locate a point given two known points and initial\n    # bearings from those points, see C{LatLon.triangulate} above\n\n    def _gc(p, b, _i_):\n        n  = p.toNvector()\n        de = NorthPole.cross(n, raiser=_pole_).unit()  # east vector @ n\n        dn = n.cross(de)  # north vector @ n\n        s, c = sincos2d(Bearing(b, name=_bearing_ + _i_))\n        dest = de.times(s)\n        dnct = dn.times(c)\n        d = dnct.plus(dest)  # direction vector @ n\n        return n.cross(d)  # great circle point + bearing\n\n    if wrap:\n        point2 = _unrollon(point1, point2, wrap=wrap)\n    if _isequalTo(point1, point2, eps=EPS):\n        raise _ValueError(points=point2, wrap=wrap, txt=_coincident_)\n\n    gc1 = _gc(point1, bearing1, _1_)  # great circle p1 + b1\n    gc2 = _gc(point2, bearing2, _2_)  # great circle p2 + b2\n\n    n = gc1.cross(gc2, raiser=_point_)  # n-vector of intersection point\n    h = point1._havg(point2, h=height)\n    kwds = _xkwds(LatLon_and_kwds, height=h)\n    return n.toLatLon(**kwds)  # Nvector(n.x, n.y, n.z).toLatLon(...)\n\n\ndef _trilaterate(point1, distance1, point2, distance2, point3, distance3,\n                                    radius=R_M, height=None, useZ=False,\n                                    wrap=False, **LatLon_and_kwds):\n    # (INTERNAL) Locate a point at given distances from\n    # three other points, see LatLon.triangulate above\n\n    def _nr2(p, d, r, _i_, *qs):  # .toNvector and angular distance squared\n        for q in qs:\n            if _isequalTo(p, q, eps=EPS):\n                raise _ValueError(points=p, txt=_coincident_)\n        return p.toNvector(), (Scalar(d, name=_distance_ + _i_) / r)**2\n\n    p1, r     =  point1, Radius_(radius)\n    p2, p3, _ = _unrollon3(p1, point2, point3, wrap)\n\n    n1, r12 = _nr2(p1, distance1, r, _1_)\n    n2, r22 = _nr2(p2, distance2, r, _2_, p1)\n    n3, r32 = _nr2(p3, distance3, r, _3_, p1, p2)\n\n    # the following uses x,y coordinate system with origin at n1, x axis n1->n2\n    y = n3.minus(n1)\n    x = n2.minus(n1)\n    z = None\n\n    d = x.length  # distance n1->n2\n    if d > EPS_2:  # and y.length > EPS_2:\n        X = x.unit()  # unit vector in x direction n1->n2\n        i = X.dot(y)  # signed magnitude of x component of n1->n3\n        Y = y.minus(X.times(i)).unit()  # unit vector in y direction\n        j = Y.dot(y)  # signed magnitude of y component of n1->n3\n        if fabs(j) > EPS_2:\n            # courtesy of U{Carlos Freitas<https://GitHub.com/mrJean1/PyGeodesy/issues/33>}\n            x = fsumf_(r12, -r22, d**2) / (d * _2_0)  # n1->intersection x- and ...\n            y = fsumf_(r12, -r32, i**2, j**2, x * i * _N_2_0) / (j * _2_0)  # ... y-component\n            # courtesy of U{AleixDev<https://GitHub.com/mrJean1/PyGeodesy/issues/43>}\n            z = fsumf_(max(r12, r22, r32), -(x**2), -(y**2))  # XXX not just r12!\n            if z > EPS:\n                n = n1.plus(X.times(x)).plus(Y.times(y))\n                if useZ:  # include Z component\n                    Z = X.cross(Y)  # unit vector perpendicular to plane\n                    n = n.plus(Z.times(sqrt(z)))\n                if height is None:\n                    h = fidw((point1.height, point2.height, point3.height),\n                             map1(fabs, distance1, distance2, distance3))\n                else:\n                    h = Height(height)\n                kwds = _xkwds(LatLon_and_kwds, height=h)\n                return n.toLatLon(**kwds)  # Nvector(n.x, n.y, n.z).toLatLon(...)\n\n    # no intersection, d < EPS_2 or fabs(j) < EPS_2 or z < EPS\n    t = _SPACE_(_no_, _intersection_, NN)\n    raise IntersectionError(point1=point1, distance1=distance1,\n                            point2=point2, distance2=distance2,\n                            point3=point3, distance3=distance3,\n                            txt=unstr(t, z=z, useZ=useZ, wrap=wrap))\n\n\n__all__ += _ALL_DOCS(LatLonNvectorBase, NvectorBase, sumOf)  # classes\n\n# **) MIT License\n#\n# Copyright (C) 2016-2026 -- mrJean1 at Gmail -- All Rights Reserved.\n#\n# Permission is hereby granted, free of charge, to any person obtaining a\n# copy of this software and associated documentation files (the \"Software\"),\n# to deal in the Software without restriction, including without limitation\n# the rights to use, copy, modify, merge, publish, distribute, sublicense,\n# and/or sell copies of the Software, and to permit persons to whom the\n# Software is furnished to do so, subject to the following conditions:\n#\n# The above copyright notice and this permission notice shall be included\n# in all copies or substantial portions of the Software.\n#\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL\n# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR\n# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\n# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n# OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "pygeodesy/osgr.py",
    "content": "\n# -*- coding: utf-8 -*-\n\nu'''Ordnance Survey Grid References (OSGR) references on the UK U{National Grid\n<https://www.OrdnanceSurvey.co.UK/documents/resources/guide-to-nationalgrid.pdf>}.\n\nClasses L{Osgr} and L{OSGRError} and functions L{parseOSGR} and L{toOsgr}.\n\nA pure Python implementation, transcoded from I{Chris Veness}' JavaScript originals U{OS National Grid\n<https://www.Movable-Type.co.UK/scripts/latlong-os-gridref.html>} and U{Module osgridref\n<https://www.Movable-Type.co.UK/scripts/geodesy/docs/module-osgridref.html>} and I{Charles Karney}'s\nC++ class U{OSGB<https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1OSGB.html>}.\n\nOSGR provides geocoordinate references for UK mapping purposes, converted in 2015 to work with the C{WGS84}\nor the original C{OSGB36} datum.  In addition, this implementation includes both the OS recommended and the\nKrüger-based method to convert between OSGR and geodetic coordinates (with keyword argument C{kTM} of\nfunction L{toOsgr}, method L{Osgr.toLatLon} and method C{toOsgr} of any ellipsoidal C{LatLon} class).\n\nSee U{Transverse Mercator: Redfearn series<https://WikiPedia.org/wiki/Transverse_Mercator:_Redfearn_series>},\nKarney's U{\"Transverse Mercator with an accuracy of a few nanometers\", 2011<https://ArXiv.org/pdf/1002.1417v3.pdf>}\n(building on U{\"Konforme Abbildung des Erdellipsoids in der Ebene\", 1912<https://bib.GFZ-Potsdam.DE/pub/digi/krueger2.pdf>},\nU{\"Die Mathematik der Gauß-Krueger-Abbildung\", 2006<https://DE.WikiPedia.org/wiki/Gauß-Krüger-Koordinatensystem>},\nU{A Guide<https://www.OrdnanceSurvey.co.UK/documents/resources/guide-coordinate-systems-great-britain.pdf>}\nand U{Ordnance Survey National Grid<https://WikiPedia.org/wiki/Ordnance_Survey_National_Grid>}.\n'''\n# make sure int/int division yields float quotient, see .basics\nfrom __future__ import division as _; del _  # noqa: E702 ;\n\nfrom pygeodesy.basics import halfs2, isbool, isfloat, map1, \\\n                            _splituple, _xsubclassof,  typename\nfrom pygeodesy.constants import _1_0, _10_0,  _N_2_0  # PYCHOK used!\nfrom pygeodesy.datums import Datums, _ellipsoidal_datum, _WGS84\n# from pygeodesy.dms import parseDMS2   # _MODS\nfrom pygeodesy.ellipsoidalBase import LatLonEllipsoidalBase as _LLEB\nfrom pygeodesy.errors import _parseX, _TypeError, _ValueError, \\\n                             _xkwds, _xkwds_get, _xkwds_pop2\nfrom pygeodesy.fmath import Fdot, fpowers\nfrom pygeodesy.fsums import _Fsumf_\n# from pygeodesy.internals import typename  # from .basics\nfrom pygeodesy.interns import MISSING, NN, _A_, _COLON_, _COMMA_, \\\n                             _COMMASPACE_, _DMAIN_, _DOT_, _not_, \\\n                             _ellipsoidal_, _latlon_, _SPACE_\nfrom pygeodesy.lazily import _ALL_LAZY, _ALL_MODS as _MODS\nfrom pygeodesy.named import _name2__, _NamedBase, nameof\nfrom pygeodesy.namedTuples import EasNor2Tuple, LatLon2Tuple, \\\n                                  LatLonDatum3Tuple\nfrom pygeodesy.props import Property_RO, property_RO\nfrom pygeodesy.streprs import _EN_WIDE, enstr2, _enstr2m3, Fmt, \\\n                              _resolution10, unstr, _xzipairs\nfrom pygeodesy.units import Easting, Lamd, Lat, Lon, Northing, \\\n                            Phid, Scalar, _10um, _100km\nfrom pygeodesy.utily import degrees90, degrees180, sincostan3, truncate\n\nfrom math import cos, fabs, radians, sin, sqrt\n\n__all__ = _ALL_LAZY.osgr\n__version__ = '25.05.12'\n\n_equivalent_ = 'equivalent'\n_OSGR_       = 'OSGR'\n_ord_A       =  ord(_A_)\n_TRIPS       =  33  # .toLatLon convergence\n\n\nclass _NG(object):\n    '''Ordnance Survey National Grid parameters.\n    '''\n    @Property_RO\n    def a0(self):  # equatoradius, scaled\n        return self.ellipsoid.a * self.k0\n\n    @Property_RO\n    def b0(self):  # polaradius, scaled\n        return self.ellipsoid.b * self.k0\n\n    @Property_RO\n    def datum(self):  # datum, Airy130 ellipsoid\n        return Datums.OSGB36\n\n    @Property_RO\n    def eas0(self):  # False origin easting (C{meter})\n        return Easting(4 * _100km)\n\n    @Property_RO\n    def easX(self):  # easting [0..extent] (C{meter})\n        return Easting(7 * _100km)\n\n    @Property_RO\n    def ellipsoid(self):  # ellipsoid, Airy130\n        return self.datum.ellipsoid\n\n    def forward2(self, latlon):  # convert C{latlon} to (easting, norting), as I{Karney}'s\n        # U{Forward<https://GeographicLib.SourceForge.io/C++/doc/OSGB_8hpp_source.html>}\n        t = self.kTM.forward(latlon.lat, latlon.lon, lon0=self.lon0)\n        e = t.easting  + self.eas0\n        n = t.northing + self.nor0ffset\n        return e, n\n\n    @Property_RO\n    def k0(self):  # central scale (C{float}), like I{Karney}'s CentralScale\n        # <https://GeographicLib.SourceForge.io/C++/doc/OSGB_8hpp_source.html>\n        _0_9998268 = (9998268 - 10000000) / 10000000\n        return Scalar(_10_0**_0_9998268)  # 0.9996012717...\n\n    @Property_RO\n    def kTM(self):  # the L{KTransverseMercator} instance, like I{Karney}'s OSGBTM\n        # <https://GeographicLib.SourceForge.io/C++/doc/OSGB_8cpp_source.html>\n        return _MODS.ktm.KTransverseMercator(self.datum, lon0=0, k0=self.k0)\n\n    @Property_RO\n    def lam0(self):  # True origin longitude C{radians}\n        return Lamd(self.lon0)\n\n    @Property_RO\n    def lat0(self):  # True origin latitude, 49°N\n        return Lat(49.0)\n\n    @Property_RO\n    def lon0(self):  # True origin longitude, 2°W\n        return Lon(_N_2_0)\n\n    @Property_RO\n    def Mabcd(self):  # meridional coefficients (a, b, c, d)\n        n, n2, n3 = fpowers(self.ellipsoid.n, 3)\n        M = (_Fsumf_(4,  4 * n,  5 * n2,  5 * n3) / 4,\n             _Fsumf_(   24 * n, 24 * n2, 21 * n3) / 8,\n             _Fsumf_(           15 * n2, 15 * n3) / 8,\n                                        (35 * n3 / 24))\n        return M\n\n    def Mabcd0(self, a):  # meridional arc, scaled\n        c = a + self.phi0\n        s = a - self.phi0\n        R = Fdot(self.Mabcd, s, -sin(s)     * cos(c),\n                                 sin(s * 2) * cos(c * 2),\n                                -sin(s * 3) * cos(c * 3))\n        return float(R * self.b0)\n\n    @Property_RO\n    def nor0(self):  # False origin northing (C{meter})\n        return Northing(-_100km)\n\n    @Property_RO\n    def nor0ffset(self):  # like I{Karney}'s computenorthoffset\n        # <https://GeographicLib.SourceForge.io/C++/doc/OSGB_8cpp_source.html>\n        return self.nor0 - self.kTM.forward(self.lat0, 0).northing\n\n    @Property_RO\n    def norX(self):  # northing [0..extent] (C{meter})\n        return Northing(13 * _100km)\n\n    def nu_rho_eta3(self, sa):  # 3-tuple (nu, nu / rho, eta2)\n        E = self.ellipsoid  # rho, nu = E.roc2_(sa)  # .k0?\n        s = E.e2s2(sa)  # == 1 - E.e2 * sa**2\n        v = self.a0 / sqrt(s)  # == nu, transverse roc\n        # rho = .a0 * E.e21 / s**1.5 == v * E.e21 / s\n        # r = v * E.e21 / s  # == rho, meridional roc\n        # nu / rho == v / (v * E.e21 / s) == s / E.e21 == ...\n        s *= E._1_e21  # ... s * E._1_e21 == s * E.a2_b2\n        return v, s, (s - _1_0)  # η2 = nu / rho - 1\n\n    @Property_RO\n    def phi0(self):  # True origin latitude C{radians}\n        return Phid(self.lat0)\n\n    def reverse(self, osgr):  # convert C{osgr} to (ellipsoidal} LatLon, as I{Karney}'s\n        # U{Reverse<https://GeographicLib.SourceForge.io/C++/doc/OSGB_8hpp_source.html>}\n        r = osgr._latlonTM\n        if r is None:\n            x =  osgr.easting  - self.eas0\n            y =  osgr.northing - self.nor0ffset\n            t =  self.kTM.reverse(x, y, lon0=self.lon0)\n            r = _LLEB(t.lat, t.lon, datum=self.datum, name=osgr.name)\n            osgr._latlonTM = r\n        return r\n\n_NG = _NG()  # PYCHOK singleton\n\n\nclass OSGRError(_ValueError):\n    '''Error raised for a L{parseOSGR}, L{Osgr} or other OSGR issue.\n    '''\n    pass\n\n\nclass Osgr(_NamedBase):\n    '''Ordnance Survey Grid References (OSGR) coordinates on\n       the U{National Grid<https://www.OrdnanceSurvey.co.UK/\n       documents/resources/guide-to-nationalgrid.pdf>}.\n    '''\n    _datum      = _NG.datum  # default datum (L{Datums.OSGB36})\n    _easting    =  0         # Easting (C{meter})\n    _latlon     =  None      # cached B{C{_toLatlon}}\n    _latlonTM   =  None      # cached B{C{_toLatlon kTM}}\n    _northing   =  0         # Nothing (C{meter})\n    _resolution =  0         # from L{parseOSGR} (C{meter})\n\n    def __init__(self, easting, northing, datum=None, resolution=0, **name):\n        '''New L{Osgr} coordinate.\n\n           @arg easting: Easting from the OS C{National Grid} origin (C{meter}).\n           @arg northing: Northing from the OS C{National Grid} origin (C{meter}).\n           @kwarg datum: Override default datum (C{Datums.OSGB36}).\n           @kwarg resolution: Optional resolution (C{meter}), C{0} for default.\n           @kwarg name: Optional C{B{name}=NN} (C{str}).\n\n           @raise OSGRError: Invalid or negative B{C{easting}} or B{C{northing}}\n                             or B{C{datum}} not an C{Datums.OSGB36} equivalent.\n        '''\n        if datum:  # PYCHOK no cover\n            try:\n                self._datum = _ellipsoidal_datum(datum)\n                if self.datum != _NG.datum:\n                    raise ValueError(_not_(_NG.datum.name, _equivalent_))\n            except (TypeError, ValueError) as x:\n                raise OSGRError(datum=datum, cause=x)\n\n        self._easting  = Easting( easting,  Error=OSGRError, high=_NG.easX)\n        self._northing = Northing(northing, Error=OSGRError, high=_NG.norX)\n\n        if name:\n            self.name = name\n        if resolution:\n            self._resolution = _resolution10(resolution, Error=OSGRError)\n\n    def __str__(self):\n        return self.toStr(GD=True, sep=_SPACE_)\n\n    @Property_RO\n    def datum(self):\n        '''Get the datum (L{Datum}).\n        '''\n        return self._datum\n\n    @Property_RO\n    def easting(self):\n        '''Get the easting (C{meter}).\n        '''\n        return self._easting\n\n    @Property_RO\n    def falsing0(self):\n        '''Get the C{OS National Grid} falsing (L{EasNor2Tuple}).\n        '''\n        return EasNor2Tuple(_NG.eas0, _NG.nor0, name=_OSGR_)\n\n    @property_RO\n    def iteration(self):\n        '''Get the most recent C{Osgr.toLatLon} iteration number\n           (C{int}) or C{None} if not available/applicable.\n        '''\n        return self._iteration\n\n    @Property_RO\n    def latlon0(self):\n        '''Get the C{OS National Grid} origin (L{LatLon2Tuple}).\n        '''\n        return LatLon2Tuple(_NG.lat, _NG.lon0, name=_OSGR_)\n\n    @Property_RO\n    def northing(self):\n        '''Get the northing (C{meter}).\n        '''\n        return self._northing\n\n    def parse(self, strOSGR, **name):\n        '''Parse an OSGR reference to a similar L{Osgr} instance.\n\n           @arg strOSGR: The OSGR reference (C{str}), see function L{parseOSGR}.\n           @kwarg name: Optional C{B{name}=NN} (C{str}), overriding this name.\n\n           @return: The similar instance (L{Osgr})\n\n           @raise OSGRError: Invalid B{C{strOSGR}}.\n        '''\n        return parseOSGR(strOSGR, Osgr=self.classof, name=self._name__(name))\n\n    @property_RO\n    def resolution(self):\n        '''Get the OSGR resolution (C{meter}, power of 10) or C{0} if undefined.\n        '''\n        return self._resolution\n\n    def toLatLon(self, LatLon=None, datum=_WGS84, kTM=False, eps=_10um, **LatLon_kwds):\n        '''Convert this L{Osgr} coordinate to an (ellipsoidal) geodetic\n           point.\n\n           @kwarg LatLon: Optional ellipsoidal class to return the\n                          geodetic point (C{LatLon}) or C{None}.\n           @kwarg datum: Optional datum to convert to (L{Datum},\n                         L{Ellipsoid}, L{Ellipsoid2}, L{Ellipsoid2}\n                         or L{a_f2Tuple}).\n           @kwarg kTM: If C{True}, use I{Karney}'s Krüger method from\n                       module L{ktm}, otherwise use the Ordnance Survey\n                       formulation (C{bool}).\n           @kwarg eps: Tolerance for OS convergence (C{meter}).\n           @kwarg LatLon_kwds: Optional, additional B{C{LatLon}} keyword\n                               arguments, ignored if C{B{LatLon} is None}.\n\n           @return: A B{C{LatLon}} instance or if C{B{LatLon} is None}\n                    a L{LatLonDatum3Tuple}C{(lat, lon, datum)}.\n\n           @note: While OS grid references are based on the OSGB36 datum,\n                  the Ordnance Survey have deprecated the use of OSGB36 for\n                  lat-/longitude coordinates (in favour of WGS84).  Hence,\n                  this method returns WGS84 by default with OSGB36 as an\n                  option, U{see<https://www.OrdnanceSurvey.co.UK/blog/2014/12/2>}.\n\n           @note: The formulation implemented here due to Thomas, Redfearn,\n                  etc. is as published by the Ordnance Survey, but is\n                  inferior to Krüger as used by e.g. Karney 2011.\n\n           @raise OSGRError: No convergence.\n\n           @raise TypeError: If B{C{LatLon}} is not ellipsoidal or B{C{datum}}\n                             is invalid or conversion to B{C{datum}} failed.\n        '''\n        NG = _NG\n        if kTM:\n            r = NG.reverse(self)\n\n        elif self._latlon is None:\n            _F = _Fsumf_\n            e0 =     self.easting  - NG.eas0\n            n0 = m = self.northing - NG.nor0\n\n            a0 =  NG.a0\n            _M =  NG.Mabcd0\n            a  =  NG.phi0\n            _a =  fabs\n            _A = _F(a).fsum_\n            for self._iteration in range(1, _TRIPS):\n                a = _A(m / a0)\n                m = n0 - _M(a)  # meridional arc\n                if _a(m) < eps:\n                    break\n            else:  # PYCHOK no cover\n                t =  str(self)\n                t =  Fmt.PAREN(self.classname, repr(t))\n                t = _DOT_(t, typename(self.toLatLon))\n                t =  unstr(t, eps=eps, kTM=kTM)\n                raise OSGRError(Fmt.no_convergence(m), txt=t)\n\n            sa, ca, ta = sincostan3(a)\n            v, v_r, n2 = NG.nu_rho_eta3(sa)\n\n            ta2 = ta**2\n            ta4 = ta2**2\n\n            ta *= v_r / 2\n            d   = e0 / v\n            d2  = d**2\n\n            a = (d2 * ta * (-1 +  # Horner-like\n                 d2 / 12 * (_F( 5,  3 * ta2, -9 * ta2 * n2, n2) -\n                 d2 / 30 *  _F(61, 90 * ta2, 45 * ta4)))).fsum_(a)\n\n            b = (d  / ca * ( 1 -  # Horner-like\n                 d2 /  6 * (_F(v_r,  2 * ta2) -\n                 d2 / 20 * (_F( 5,  28 * ta2,   24 * ta4) +\n                 d2 / 42 *  _F(61, 662 * ta2, 1320 * ta4,\n                                   720 * ta2 * ta4))))).fsum_(NG.lam0)\n\n            r = _LLEB(degrees90(a), degrees180(b), datum=self.datum, name=self.name)\n            r._iteration = self._iteration  # only ellipsoidal LatLon\n            self._latlon = r\n        else:\n            r = self._latlon\n\n        return _ll2LatLon3(r, LatLon, datum, LatLon_kwds)\n\n    @Property_RO\n    def scale0(self):\n        '''Get the C{OS National Grid} central scale (C{scalar}).\n        '''\n        return _NG.k0\n\n    def toRepr(self, GD=None, fmt=Fmt.SQUARE, sep=_COMMASPACE_, **prec):  # PYCHOK expected\n        '''Return a string representation of this L{Osgr} coordinate.\n\n           @kwarg GD: If C{bool}, in- or exclude the 2-letter grid designation and get\n                      the new B{C{prec}} behavior, otherwise if C{None}, default to the\n                      DEPRECATED definition C{B{prec}=5} I{for backward compatibility}.\n           @kwarg fmt: Enclosing backets format (C{str}).\n           @kwarg sep: Separator to join (C{str}) or C{None} to return an unjoined 2- or\n                       3-C{tuple} of C{str}s.\n           @kwarg prec: Precison C{B{prec}=0}, the number of I{decimal} digits (C{int}) or\n                        if negative, the number of I{units to drop}, like MGRS U{PRECISION\n                        <https://GeographicLib.SourceForge.io/C++/doc/GeoConvert.1.html#PRECISION>}.\n\n           @return: This OSGR as (C{str}), C{\"[G:GD, E:meter, N:meter]\"} or if C{B{GD}=False}\n                    C{\"[OSGR:easting,northing]\"} or C{B{GD}=False} and C{B{prec} > 0} if\n                    C{\"[OSGR:easting.d,northing.d]\"}.\n\n           @note: OSGR easting and northing values are truncated, not rounded.\n\n           @raise OSGRError: If C{B{GD} not in (None, True, False)} or if C{B{prec} < -4}\n                             and C{B{GD}=False}.\n\n           @raise ValueError: Invalid B{C{prec}}.\n        '''\n        GD, prec = _GD_prec2(GD, fmt=fmt, sep=sep, **prec)\n\n        if GD:\n            t =  self.toStr(GD=True, prec=prec, sep=None)\n            t = _xzipairs('GEN', t, sep=sep, fmt=fmt)\n        else:\n            t = _COLON_(_OSGR_, self.toStr(GD=False, prec=prec))\n            if fmt:\n                t = fmt % (t,)\n        return t\n\n    def toStr(self, GD=None, sep=NN, **prec):  # PYCHOK expected\n        '''Return this L{Osgr} coordinate as a string.\n\n           @kwarg GD: If C{bool}, in- or exclude the 2-letter grid designation and get\n                      the new B{C{prec}} behavior, otherwise if C{None}, default to the\n                      DEPRECATED definition C{B{prec}=5} I{for backward compatibility}.\n           @kwarg sep: Separator to join (C{str}) or C{None} to return an unjoined 2- or\n                       3-C{tuple} of C{str}s.\n           @kwarg prec: Precison C{B{prec}=0}, the number of I{decimal} digits (C{int}) or\n                        if negative, the number of I{units to drop}, like MGRS U{PRECISION\n                        <https://GeographicLib.SourceForge.io/C++/doc/GeoConvert.1.html#PRECISION>}.\n\n           @return: This OSGR as (C{str}), C{\"GD meter meter\"} or if C{B{GD}=False}\n                    C{\"easting,northing\"} or if C{B{GD}=False} and C{B{prec} > 0}\n                    C{\"easting.d,northing.d\"}\n\n           @note: OSGR easting and northing values are truncated, not rounded.\n\n           @raise OSGRError: If C{B{GD} not in (None, True, False)} or if C{B{prec}\n                             < -4} and C{B{GD}=False}.\n\n           @raise ValueError: Invalid B{C{prec}}.\n        '''\n        def _i2c(i):\n            if i > 7:\n                i += 1\n            return chr(_ord_A + i)\n\n        GD, prec = _GD_prec2(GD, sep=sep, **prec)\n\n        if GD:\n            E, e = divmod(self.easting,  _100km)\n            N, n = divmod(self.northing, _100km)\n            E, N = int(E), int(N)\n            if 0 > E or E > 6 or \\\n               0 > N or N > 12:\n                raise OSGRError(E=E, e=e, N=N, n=n, prec=prec, sep=sep)\n            N  =  19 - N\n            EN = _i2c( N - (N % 5) + (E + 10) // 5) + \\\n                 _i2c((N * 5) % 25 + (E % 5))\n            t = enstr2(e, n, prec, EN)\n            s = sep\n\n        elif prec <= -_EN_WIDE:\n            raise OSGRError(GD=GD, prec=prec, sep=sep)\n        else:\n            t = enstr2(self.easting, self.northing, prec, dot=True,\n                                                    wide=_EN_WIDE + 1)\n            s = sep if sep is None else (sep or _COMMA_)\n\n        return t if s is None else s.join(t)\n\n\ndef _GD_prec2(GD, **prec_et_al):\n    '''(INTERNAL) Handle C{prec} backward compatibility.\n    '''\n    if GD is None:  # old C{prec} 5+ or neg\n        prec = _xkwds_get(prec_et_al, prec=_EN_WIDE)\n        GD   =  prec > 0\n        prec = (prec - _EN_WIDE) if GD else -prec\n    elif isbool(GD):\n        prec = _xkwds_get(prec_et_al, prec=0)\n    else:\n        raise OSGRError(GD=GD, **prec_et_al)\n    return GD, prec\n\n\ndef _ll2datum(ll, datum, name):\n    '''(INTERNAL) Convert datum if needed.\n    '''\n    if datum:\n        try:\n            if ll.datum != datum:\n                ll = ll.toDatum(datum)\n        except (AttributeError, TypeError, ValueError) as x:\n            raise _TypeError(cause=x, datum=datum.name, **{name: ll})\n    return ll\n\n\ndef _ll2LatLon3(ll, LatLon, datum, LatLon_kwds):\n    '''(INTERNAL) Convert C{ll} to C{LatLon}\n    '''\n    n = nameof(ll)\n    if LatLon is None:\n        r = _ll2datum(ll, datum, typename(LatLonDatum3Tuple))\n        r =  LatLonDatum3Tuple(r.lat, r.lon, r.datum, name=n)\n    else:  # must be ellipsoidal\n        _xsubclassof(_LLEB, LatLon=LatLon)\n        r = _ll2datum(ll, datum, typename(LatLon))\n        r =  LatLon(r.lat, r.lon, datum=r.datum, **_xkwds(LatLon_kwds, name=n))\n    if r._iteration != ll._iteration:\n        r._iteration = ll._iteration\n    return r\n\n\ndef parseOSGR(strOSGR, Osgr=Osgr, **name_Osgr_kwds):\n    '''Parse a string representing an OS Grid Reference, consisting of C{\"[GD]\n       easting northing\"}.\n\n       Accepts standard OS Grid References like \"SU 387 148\", with or without\n       whitespace separators, from 2- up to 22-digit references, or all-numeric,\n       comma-separated references in meters, for example \"438700,114800\".\n\n       @arg strOSGR: An OSGR coordinate (C{str}).\n       @kwarg Osgr: Optional class to return the OSGR coordinate (L{Osgr}) or C{None}.\n       @kwarg name_Osgr_kwds: Optional C{B{name}=NN} (C{str}) and optionally, additional\n                   B{C{Osgr}} keyword arguments, ignored if C{B{Osgr} is None}.\n\n       @return: An (B{C{Osgr}}) instance or if C{B{Osgr} is None}, an\n                L{EasNor2Tuple}C{(easting, northing)}.\n\n       @raise OSGRError: Invalid B{C{strOSGR}}.\n    '''\n    def _c2i(G):\n        g = ord(G.upper()) - _ord_A\n        if g > 7:\n            g -= 1\n        if g < 0 or g > 25:\n            raise ValueError\n        return g\n\n    def _OSGR(strOSGR, Osgr, kwds):\n        s = _splituple(strOSGR.strip())\n        p =  len(s)\n        if not p:\n            raise ValueError\n        g = s[0]\n        if p == 2 and isfloat(g, both=True):  # \"easting,northing\"\n            e, n, m = _enstr2m3(*s, wide=_EN_WIDE + 1)\n\n        else:\n            if p == 1:  # \"GReastingnorthing\"\n                s = halfs2(g[2:])\n                g = g[:2]\n            elif p == 2:  # \"GReasting northing\"\n                s = g[2:], s[1]  # for backward ...\n                g = g[:2]  # ... compatibility\n            elif p != 3:\n                raise ValueError\n            else:  # \"GR easting northing\"\n                s = s[1:]\n\n            e, n = map(_c2i, g)\n            n, m = divmod(n, 5)\n            E = ((e - 2) % 5) * 5 + m\n            N = 19 - (e // 5) * 5 - n\n            if 0 > E or E > 6 or \\\n               0 > N or N > 12:\n                raise ValueError\n\n            e, n, m = _enstr2m3(*s, wide=_EN_WIDE)\n            e +=  E * _100km\n            n +=  N * _100km\n\n        name, kwds = _name2__(**kwds)\n        if Osgr is None:\n            _ = _MODS.osgr.Osgr(e, n, resolution=m)  # validate\n            r =  EasNor2Tuple(e, n, name=name)\n        else:\n            r =  Osgr(e, n, name=name, **_xkwds(kwds, resolution=m))\n        return r\n\n    return _parseX(_OSGR, strOSGR, Osgr, name_Osgr_kwds,\n                          strOSGR=strOSGR, Error=OSGRError)\n\n\ndef toOsgr(latlon, lon=None, kTM=False, datum=_WGS84, Osgr=Osgr,  # MCCABE 14\n                                          **prec_name_Osgr_kwds):\n    '''Convert a lat-/longitude point to an OSGR coordinate.\n\n       @arg latlon: Latitude (C{degrees}) or an (ellipsoidal) geodetic\n                    C{LatLon} point.\n       @kwarg lon: Optional longitude in degrees (scalar or C{None}).\n       @kwarg kTM: If C{True}, use I{Karney}'s Krüger method from\n                   module L{ktm}, otherwise use the Ordnance Survey\n                   formulation (C{bool}).\n       @kwarg datum: Optional datum to convert B{C{lat, lon}} from\n                     (L{Datum}, L{Ellipsoid}, L{Ellipsoid2} or\n                     L{a_f2Tuple}).\n       @kwarg Osgr: Optional class to return the OSGR coordinate\n                    (L{Osgr}) or C{None}.\n       @kwarg prec_name_Osgr_kwds: Optional C{B{name}=NN} (C{str}),\n                   optional L{truncate} precision C{B{prec}=ndigits}\n                   and additional B{C{Osgr}} keyword arguments,\n                   ignored if C{B{Osgr} is None}.\n\n       @return: An (B{C{Osgr}}) instance or if C{B{Osgr} is None}\n                an L{EasNor2Tuple}C{(easting, northing)}.\n\n       @note: If L{isint}C{(B{prec})} both easting and northing are\n              L{truncate}d to the given number of digits.\n\n       @raise OSGRError: Invalid B{C{latlon}} or B{C{lon}}.\n\n       @raise TypeError: Non-ellipsoidal B{C{latlon}} or invalid\n                         B{C{datum}}, B{C{Osgr}}, B{C{Osgr_kwds}}\n                         or conversion to C{Datums.OSGB36} failed.\n    '''\n    if lon is not None:\n        try:\n            lat, lon = _MODS.dms.parseDMS2(latlon, lon)\n            latlon   = _LLEB(lat, lon, datum=datum)\n        except Exception as x:\n            raise OSGRError(latlon=latlon, lon=lon, datum=datum, cause=x)\n    elif not isinstance(latlon, _LLEB):\n        raise _TypeError(latlon=latlon, txt=_not_(_ellipsoidal_))\n\n    NG = _NG\n    # convert latlon to OSGB36 first\n    ll = _ll2datum(latlon, NG.datum, _latlon_)\n\n    if kTM:\n        e, n = NG.forward2(ll)\n\n    else:\n        try:\n            a, b = ll.philam\n        except AttributeError:\n            a, b = map1(radians, ll.lat, ll.lon)\n\n        sa, ca, ta = sincostan3(a)\n        v, v_r, n2 = NG.nu_rho_eta3(sa)\n\n        m0  = NG.Mabcd0(a)\n        b  -= NG.lam0\n        t   = b * sa * v / 2\n        d   = b * ca\n        d2  = d**2\n\n        ta2 = -(ta**2)\n        ta4 =   ta2**2\n\n        e = (d  *  v * ( 1 +  # Horner-like\n             d2 /  6 * (_Fsumf_(v_r, ta2) +\n             d2 / 20 *  _Fsumf_(5,  18 * ta2, ta4, 14 * n2,\n                               58 * n2 * ta2)))).fsum_(NG.eas0)\n\n        n = (d  *  t * ( 1 +  # Horner-like\n             d2 / 12 * (_Fsumf_( 5, ta2,  9 * n2) +\n             d2 / 30 *  _Fsumf_(61, ta4, 58 * ta2)))).fsum_(m0, NG.nor0)\n\n    t, kwds = _name2__(prec_name_Osgr_kwds, _or_nameof=latlon)\n    if kwds:\n        p, kwds = _xkwds_pop2(kwds, prec=MISSING)\n        if p is not MISSING:\n            e = truncate(e, p)\n            n = truncate(n, p)\n\n    if Osgr is None:\n        _ = _MODS.osgr.Osgr(e, n)  # validate\n        r =  EasNor2Tuple(e, n, name=t)\n    else:\n        r =  Osgr(e, n, name=t, **kwds)  # datum=NG.datum\n        if lon is None and isinstance(latlon, _LLEB):\n            if kTM:\n                r._latlonTM = latlon  # XXX weakref(latlon)?\n            else:\n                r._latlon = latlon  # XXX weakref(latlon)?\n    return r\n\n\nif __name__ == _DMAIN_:\n\n    from pygeodesy import printf\n    from random import random, seed\n    from time import localtime\n\n    seed(localtime().tm_yday)\n\n    def _rnd(X, n):\n        X -= 2\n        d = set()\n        while len(d) < n:\n            r = 1 + int(random() * X)\n            if r not in d:\n                d.add(r)\n                yield r\n\n    D  = _NG.datum\n    i  = t = 0\n    t1 = t2 = 0, 0, 0, 0\n    for e in _rnd(_NG.easX, 256):\n        for n in _rnd(_NG.norX, 512):\n            p  = False\n            t += 1\n\n            g = Osgr(e, n)\n            v = g.toLatLon(kTM=False, datum=D)\n            k = g.toLatLon(kTM=True,  datum=D)\n            d = max(fabs(v.lat - k.lat), fabs(v.lon - k.lon))\n            if d > t1[2]:\n                t1 = e, n, d, t\n                p  = True\n\n            ll = _LLEB((v.lat + k.lat) / 2,\n                       (v.lon + k.lon) / 2, datum=D)\n            v  =  ll.toOsgr(kTM=False)\n            k  =  ll.toOsgr(kTM=True)\n            d  =  max(fabs(v.easting  - k.easting),\n                      fabs(v.northing - k.northing))\n            if d > t2[2]:\n                t2 = ll.lat, ll.lon, d, t\n                p  = True\n\n            if p:\n                i += 1\n                printf('%5d: %s  %s', i,\n                       'll(%.2f, %.2f) %.3e %d' % t2,\n                       'en(%d, %d) %.3e %d' % t1)\n    printf('%d total %s', t, D.name)\n\n# **) MIT License\n#\n# Copyright (C) 2016-2026 -- mrJean1 at Gmail -- All Rights Reserved.\n#\n# Permission is hereby granted, free of charge, to any person obtaining a\n# copy of this software and associated documentation files (the \"Software\"),\n# to deal in the Software without restriction, including without limitation\n# the rights to use, copy, modify, merge, publish, distribute, sublicense,\n# and/or sell copies of the Software, and to permit persons to whom the\n# Software is furnished to do so, subject to the following conditions:\n#\n# The above copyright notice and this permission notice shall be included\n# in all copies or substantial portions of the Software.\n#\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL\n# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR\n# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\n# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n# OTHER DEALINGS IN THE SOFTWARE.\n\n# % python3 -m pygeodesy.osgr\n#     1: ll(53.42, -0.59) 4.672e-07 1  en(493496, 392519) 2.796e-11 1\n#     2: ll(60.86, -0.28) 2.760e-05 2  en(493496, 1220986) 2.509e-10 2\n#     3: ll(61.41, -0.25) 3.045e-05 13  en(493496, 1281644) 2.774e-10 13\n#     4: ll(61.41, -0.25) 3.045e-05 13  en(493496, 1192797) 3.038e-10 20\n#     5: ll(61.41, -0.25) 3.045e-05 13  en(493496, 1192249) 3.073e-10 120\n#     6: ll(61.55, -0.24) 3.120e-05 160  en(493496, 1192249) 3.073e-10 120\n#     7: ll(61.55, -0.24) 3.122e-05 435  en(493496, 1192249) 3.073e-10 120\n#     8: ll(61.57, -0.24) 3.130e-05 473  en(493496, 1192249) 3.073e-10 120\n#     9: ll(58.66, -8.56) 8.084e-04 513  en(19711, 993800) 3.020e-06 513\n#    10: ll(52.83, -7.65) 8.156e-04 518  en(19711, 993800) 3.020e-06 513\n#    11: ll(51.55, -7.49) 8.755e-04 519  en(19711, 993800) 3.020e-06 513\n#    12: ll(60.20, -8.87) 9.439e-04 521  en(19711, 1165686) 4.318e-06 521\n#    13: ll(60.45, -8.92) 9.668e-04 532  en(19711, 1194002) 4.588e-06 532\n#    14: ll(61.17, -9.08) 1.371e-03 535  en(19711, 1274463) 5.465e-06 535\n#    15: ll(61.31, -9.11) 1.463e-03 642  en(19711, 1290590) 5.663e-06 642\n#    16: ll(61.35, -9.12) 1.488e-03 807  en(19711, 1294976) 5.718e-06 807\n#    17: ll(61.38, -9.13) 1.510e-03 929  en(19711, 1298667) 5.765e-06 929\n#    18: ll(61.11, -9.24) 1.584e-03 11270  en(10307, 1268759) 6.404e-06 11270\n#    19: ll(61.20, -9.26) 1.650e-03 11319  en(10307, 1278686) 6.545e-06 11319\n#    20: ll(61.23, -9.27) 1.676e-03 11383  en(10307, 1282514) 6.600e-06 11383\n#    21: ll(61.36, -9.30) 1.776e-03 11437  en(10307, 1297037) 6.816e-06 11437\n#    22: ll(61.38, -9.30) 1.789e-03 11472  en(10307, 1298889) 6.844e-06 11472\n#    23: ll(61.25, -9.39) 1.885e-03 91137  en(4367, 1285831) 7.392e-06 91137\n#    24: ll(61.32, -9.40) 1.944e-03 91207  en(4367, 1293568) 7.519e-06 91207\n#    25: ll(61.34, -9.41) 1.963e-03 91376  en(4367, 1296061) 7.561e-06 91376\n#    26: ll(61.37, -9.41) 1.986e-03 91595  en(4367, 1298908) 7.608e-06 91595\n# 131072 total OSGB36\n"
  },
  {
    "path": "pygeodesy/points.py",
    "content": "\r\n# -*- coding: utf-8 -*-\r\n\r\nu'''Utilities for point lists, tuples, etc.\r\n\r\nFunctions to handle collections and sequences of C{LatLon} points\r\nspecified as 2-d U{NumPy<https://www.NumPy.org>}, C{arrays} or tuples\r\nas C{LatLon} or as C{pseudo-x/-y} pairs.\r\n\r\nC{NumPy} arrays are assumed to contain rows of points with a lat-, a\r\nlongitude -and possibly other- values in different columns.  While\r\niterating over the array rows, create an instance of a given C{LatLon}\r\nclass \"on-the-fly\" for each row with the row's lat- and longitude.\r\n\r\nThe original C{NumPy} array is read-accessed only and never duplicated,\r\nexcept to return a I{subset} of the original array.\r\n\r\nFor example, to process a C{NumPy} array, wrap the array by instantiating\r\nclass L{Numpy2LatLon} and specifying the column index for the lat- and\r\nlongitude in each row.  Then, pass the L{Numpy2LatLon} instance to any\r\nL{pygeodesy} function or method accepting a I{points} argument.\r\n\r\nSimilarly, class L{Tuple2LatLon} is used to instantiate a C{LatLon} from\r\neach 2+tuple in a sequence of such 2+tuples using the C{ilat} lat- and\r\nC{ilon} longitude index in each 2+tuple.\r\n'''\r\n\r\nfrom pygeodesy.basics import isclass, isint, isscalar, issequence, \\\r\n                            _xdup, issubclassof, _Sequence, _xcopy, \\\r\n                            _xinstanceof,  typename\r\nfrom pygeodesy.constants import EPS, EPS1, PI_2, R_M, isnear0, isnear1, \\\r\n                               _umod_360, _0_0, _0_5, _1_0, _2_0, _6_0, \\\r\n                               _90_0, _N_90_0, _180_0, _360_0\r\n# from pygeodesy.datums import _spherical_datum  # from .formy\r\nfrom pygeodesy.dms import F_D, parseDMS\r\nfrom pygeodesy.errors import CrossError, crosserrors, _IndexError, \\\r\n                            _IsnotError, _TypeError, _ValueError, \\\r\n                            _xattr, _xkwds, _xkwds_item2, _xkwds_pop2\r\nfrom pygeodesy.fmath import favg, fdot, hypot,  Fsum, fsum\r\n# from pygeodesy.fsums import Fsum, fsum  # from .fmath\r\nfrom pygeodesy.formy import _bearingTo2, equirectangular4,  _spherical_datum\r\n# from pygeodesy.internals import typename  # from .basics\r\nfrom pygeodesy.interns import NN, _colinear_, _COMMASPACE_, _composite_, \\\r\n                             _DEQUALSPACED_, _ELLIPSIS_, _EW_, _immutable_, \\\r\n                             _near_, _no_, _NS_, _point_, _SPACE_, _UNDER_, \\\r\n                             _valid_  # _lat_, _lon_\r\nfrom pygeodesy.iters import LatLon2PsxyIter, PointsIter, points2\r\nfrom pygeodesy.latlonBase import LatLonBase, _latlonheight3, \\\r\n                                _ALL_DOCS, _ALL_LAZY, _MODS\r\n# from pygeodesy.lazily import _ALL_DOCS, _ALL_LAZY, _ALL_MODS as _MODS\r\nfrom pygeodesy.named import classname, _NamedTuple, nameof, \\\r\n                            notImplemented, notOverloaded\r\nfrom pygeodesy.namedTuples import Bounds2Tuple, Bounds4Tuple, LatLon2Tuple, \\\r\n                                  NearestOn3Tuple, NearestOn5Tuple, \\\r\n                                  Point3Tuple, Vector3Tuple\r\nfrom pygeodesy.props import Property_RO, property_doc_, property_RO\r\nfrom pygeodesy.streprs import Fmt, instr\r\nfrom pygeodesy.units import Number_, Radius, Scalar, Scalar_\r\nfrom pygeodesy.utily import atan2b, degrees90, degrees180, degrees2m, \\\r\n                            unroll180, _unrollon, unrollPI, _Wrap, wrap180\r\n\r\nfrom math import cos, fabs, fmod as _fmod, radians, sin\r\n\r\n__all__ = _ALL_LAZY.points\r\n__version__ = '25.05.12'\r\n\r\n_ilat_  = 'ilat'\r\n_ilon_  = 'ilon'\r\n_ncols_ = 'ncols'\r\n_nrows_ = 'nrows'\r\n\r\n\r\nclass LatLon_(LatLonBase):  # XXX in heights._HeightBase.height\r\n    '''Low-overhead C{LatLon} class, mainly for L{Numpy2LatLon} and L{Tuple2LatLon}.\r\n    '''\r\n    # __slots__ efficiency is voided if the __slots__ class attribute is\r\n    # used in a subclass of a class with the traditional __dict__, @see\r\n    # <https://docs.Python.org/2/reference/datamodel.html#slots> plus ...\r\n    #\r\n    # __slots__ must be repeated in sub-classes, @see Luciano Ramalho,\r\n    # \"Fluent Python\", O'Reilly, 2016 p. 276+ \"Problems with __slots__\",\r\n    # 2nd Ed, 2022 p. 390 \"Summarizing the Issues with __slots__\".\r\n    #\r\n    # __slots__ = (_lat_, _lon_, _height_, _datum_, _name_)\r\n    # Property_RO = property_RO  # no __dict__ with __slots__!\r\n    #\r\n    # In addition, both size and overhead have shrunk in recent Python:\r\n    #\r\n    # sys.getsizeof(LatLon_(1, 2)) is 72-88 I{with} __slots__, but\r\n    # only 48-56 bytes I{without in Python 2.7.18+ and Python 3+}.\r\n    #\r\n    # python3 -m timeit -s \"from pygeodesy... import LatLonBase as LL\" \"LL(0, 0)\" 2.14 usec\r\n    # python3 -m timeit -s \"from pygeodesy import LatLon_\" \"LatLon_(0, 0)\" 216 nsec\r\n\r\n    def __init__(self, latlonh, lon=None, height=0, wrap=False, datum=None, **name):\r\n        '''New L{LatLon_}.\r\n\r\n           @note: The lat- and longitude values are taken I{as-given,\r\n                  un-clipped and un-validated}.\r\n\r\n           @see: L{latlonBase.LatLonBase} for further details.\r\n        '''\r\n        if name:\r\n            self.name = name\r\n\r\n        if lon is None:  # PYCHOK no cover\r\n            lat, lon, height = _latlonheight3(latlonh, height, wrap)\r\n        elif wrap:  # PYCHOK no cover\r\n            lat, lon = _Wrap.latlonDMS2(latlonh, lon)\r\n        else:  # must be latNS, lonEW\r\n            try:\r\n                lat, lon = float(latlonh), float(lon)\r\n            except (TypeError, ValueError):\r\n                lat = parseDMS(latlonh, suffix=_NS_)\r\n                lon = parseDMS(lon,     suffix=_EW_)\r\n\r\n        # get the minimal __dict__, see _isLatLon_ below\r\n        self._lat    = lat  # un-clipped and ...\r\n        self._lon    = lon  # ... un-validated\r\n        self._datum  = None if datum is None else \\\r\n                      _spherical_datum(datum, name=self.name)\r\n        self._height = height\r\n\r\n    def __eq__(self, other):\r\n        return isinstance(other, LatLon_) and \\\r\n                          other.lat == self.lat and \\\r\n                          other.lon == self.lon\r\n\r\n    def __ne__(self, other):\r\n        return not self.__eq__(other)\r\n\r\n    @Property_RO\r\n    def datum(self):\r\n        '''Get the C{datum} (L{Datum}) or C{None}.\r\n        '''\r\n        return self._datum\r\n\r\n    def intermediateTo(self, other, fraction, height=None, wrap=False):\r\n        '''Locate the point at a given fraction, I{linearly} between\r\n           (or along) this and an other point.\r\n\r\n           @arg other: The other point (C{LatLon}).\r\n           @arg fraction: Fraction between both points (C{float},\r\n                          0.0 for this and 1.0 for the other point).\r\n           @kwarg height: Optional height (C{meter}), overriding the\r\n                          intermediate height.\r\n           @kwarg wrap: If C{True}, wrap or I{normalize} and unroll\r\n                        the B{C{other}} point (C{bool}).\r\n\r\n           @return: Intermediate point (same C{LatLon} class).\r\n\r\n           @raise TypeError: Incompatible B{C{other}} C{type}.\r\n        '''\r\n        f = Scalar(fraction=fraction)\r\n        if isnear0(f):\r\n            r = self\r\n        else:\r\n            r = self.others(other)\r\n            if wrap or not isnear1(f):\r\n                _, lat, lon = _Wrap.latlon3(self.lon, r.lat, r.lon, wrap)\r\n                lat = favg(self.lat, lat, f=f)\r\n                lon = favg(self.lon, lon, f=f)\r\n                h = height if height is not None else \\\r\n                    favg(self.height, r.height, f=f)\r\n                # = self._havg(r, f=f, h=height)\r\n                r = self.classof(lat, lon, height=h, datum=r.datum,\r\n                                           name=typename(r.intermediateTo))\r\n        return r\r\n\r\n    def toRepr(self, **kwds):\r\n        '''This L{LatLon_} as a string \"class(<degrees>, ...)\",\r\n           ignoring keyword argument C{B{std}=N/A}.\r\n\r\n           @see: L{latlonBase.LatLonBase.toRepr} for further details.\r\n        '''\r\n        _, kwds = _xkwds_pop2(kwds, std=NotImplemented)\r\n        return LatLonBase.toRepr(self, **kwds)\r\n\r\n    def toStr(self, form=F_D, joined=_COMMASPACE_, **m_prec_sep_s_D_M_S):  # PYCHOK expected\r\n        '''Convert this point to a \"lat, lon[, height][, name][, ...]\"\r\n           string, formatted in the given C{B{form}at}.\r\n\r\n           @see: L{latlonBase.LatLonBase.toStr} for further details.\r\n        '''\r\n        t = LatLonBase.toStr(self, form=form, joined=NN,\r\n                                **_xkwds(m_prec_sep_s_D_M_S, m=NN))\r\n        if self.name:\r\n            t += (repr(self.name),)\r\n        return joined.join(t) if joined else t\r\n\r\n\r\ndef _isLatLon(inst):\r\n    '''(INTERNAL) Check a C{LatLon} or C{LatLon_} instance.\r\n    '''\r\n    return isinstance(inst, (LatLon_, _MODS.latlonBase.LatLonBase))\r\n\r\n\r\ndef _isLatLon_(LL):\r\n    '''(INTERNAL) Check a (sub-)class of C{LatLon_}.\r\n    '''\r\n    return issubclassof(LL, LatLon_) or (isclass(LL) and\r\n            all(hasattr(LL, _) for _ in LatLon_(0, 0).__dict__.keys()))\r\n\r\n\r\nclass _Basequence(_Sequence):  # immutable, on purpose\r\n    '''(INTERNAL) Base class.\r\n    '''\r\n    _array    =  []\r\n    _epsilon  =  EPS\r\n    _itemname = _point_\r\n\r\n    def _contains(self, point):\r\n        '''(INTERNAL) Check for a matching point.\r\n        '''\r\n        return any(self._findall(point, ()))\r\n\r\n    def copy(self, deep=False):  # PYCHOK no cover\r\n        '''Make a shallow or deep copy of this instance.\r\n\r\n           @kwarg deep: If C{True}, make a deep, otherwise a\r\n                        shallow copy (C{bool}).\r\n\r\n           @return: The copy (C{This class}).\r\n        '''\r\n        return _xcopy(self, deep=deep)\r\n\r\n    def _count(self, point):\r\n        '''(INTERNAL) Count the number of matching points.\r\n        '''\r\n        return sum(1 for _ in self._findall(point, ()))  # NOT len()!\r\n\r\n    def dup(self, **items):  # PYCHOK no cover\r\n        '''Duplicate this instance, I{without replacing items}.\r\n\r\n           @kwarg items: No attributes (I{not allowed}).\r\n\r\n           @return: The duplicate (C{This class}).\r\n\r\n           @raise TypeError: Any B{C{items}} invalid.\r\n        '''\r\n        if items:\r\n            t = _SPACE_(classname(self), _immutable_)\r\n            raise _TypeError(txt=t, this=self, **items)\r\n        return _xdup(self)\r\n\r\n    @property_doc_(''' the equality tolerance (C{float}).''')\r\n    def epsilon(self):\r\n        '''Get the tolerance for equality tests (C{float}).\r\n        '''\r\n        return self._epsilon\r\n\r\n    @epsilon.setter  # PYCHOK setter!\r\n    def epsilon(self, tol):\r\n        '''Set the tolerance for equality tests (C{scalar}).\r\n\r\n           @raise UnitError: Non-scalar or invalid B{C{tol}}.\r\n        '''\r\n        self._epsilon = Scalar_(tolerance=tol)\r\n\r\n    def _find(self, point, start_end):\r\n        '''(INTERNAL) Find the first matching point index.\r\n        '''\r\n        for i in self._findall(point, start_end):\r\n            return i\r\n        return -1\r\n\r\n    def _findall(self, point, start_end):  # PYCHOK no cover\r\n        '''(INTERNAL) I{Must be implemented/overloaded}.'''\r\n        notImplemented(self, point, start_end)\r\n\r\n    def _getitem(self, index):\r\n        '''(INTERNAL) Return point [index] or return a slice.\r\n        '''\r\n        # Luciano Ramalho, \"Fluent Python\", O'Reilly, 2016 p. 290+, 2022 p. 405+\r\n        if isinstance(index, slice):\r\n            # XXX an numpy.[nd]array slice is a view, not a copy\r\n            return self.__class__(self._array[index], **self._slicekwds())\r\n        else:\r\n            return self.point(self._array[index])\r\n\r\n    def _index(self, point, start_end):\r\n        '''(INTERNAL) Find the first matching point index.\r\n        '''\r\n        for i in self._findall(point, start_end):\r\n            return i\r\n        raise _IndexError(self._itemname, point, txt_not_='found')\r\n\r\n    @property_RO\r\n    def isNumpy2(self):  # PYCHOK no cover\r\n        '''Is this a Numpy2 wrapper?\r\n        '''\r\n        return False  # isinstance(self, (Numpy2LatLon, ...))\r\n\r\n    @property_RO\r\n    def isPoints2(self):  # PYCHOK no cover\r\n        '''Is this a LatLon2 wrapper/converter?\r\n        '''\r\n        return False  # isinstance(self, (LatLon2psxy, ...))\r\n\r\n    @property_RO\r\n    def isTuple2(self):  # PYCHOK no cover\r\n        '''Is this a Tuple2 wrapper?\r\n        '''\r\n        return False  # isinstance(self, (Tuple2LatLon, ...))\r\n\r\n    def _iter(self):\r\n        '''(INTERNAL) Yield all points.\r\n        '''\r\n        _array, _point = self._array, self.point\r\n        for i in range(len(self)):\r\n            yield _point(_array[i])\r\n\r\n    def point(self, *attrs):  # PYCHOK no cover\r\n        '''I{Must be overloaded}.'''\r\n        notOverloaded(self, *attrs)\r\n\r\n    def _range(self, start=None, end=None, step=1):\r\n        '''(INTERNAL) Return the range.\r\n        '''\r\n        if step > 0:\r\n            if start is None:\r\n                start = 0\r\n            if end is None:\r\n                end = len(self)\r\n        elif step < 0:\r\n            if start is None:\r\n                start = len(self) - 1\r\n            if end is None:\r\n                end = -1\r\n        else:\r\n            raise _ValueError(step=step)\r\n        return range(start, end, step)\r\n\r\n    def _repr(self):\r\n        '''(INTERNAL) Return a string representation.\r\n        '''\r\n        # XXX use Python 3+ reprlib.repr\r\n        t =  repr(self._array[:1])  # only first row\r\n        t = _SPACE_(t[:-1], _ELLIPSIS_, Fmt.SQUARE(t[-1:], len(self)))\r\n        t = _SPACE_.join(t.split())  # coalesce spaces\r\n        return instr(self, t, **self._slicekwds())\r\n\r\n    def _reversed(self):  # PYCHOK false\r\n        '''(INTERNAL) Yield all points in reverse order.\r\n        '''\r\n        _array, point = self._array, self.point\r\n        for i in range(len(self) - 1, -1, -1):\r\n            yield point(_array[i])\r\n\r\n    def _rfind(self, point, start_end):\r\n        '''(INTERNAL) Find the last matching point index.\r\n        '''\r\n        def _r3(start=None, end=None, step=-1):\r\n            return (start, end, step)  # PYCHOK returns\r\n\r\n        for i in self._findall(point, _r3(*start_end)):\r\n            return i\r\n        return -1\r\n\r\n    def _slicekwds(self):  # PYCHOK no cover\r\n        '''(INTERNAL) I{Should be overloaded}.\r\n        '''\r\n        return {}\r\n\r\n\r\nclass _Array2LatLon(_Basequence):  # immutable, on purpose\r\n    '''(INTERNAL) Base class for Numpy2LatLon or Tuple2LatLon.\r\n    '''\r\n    _array  = ()\r\n    _ilat   = 0  # row column index\r\n    _ilon   = 0  # row column index\r\n    _LatLon = LatLon_  # default\r\n    _shape  = ()\r\n\r\n    def __init__(self, array, ilat=0, ilon=1, LatLon=None, shape=()):\r\n        '''Handle a C{NumPy} or C{Tuple} array as a sequence of C{LatLon} points.\r\n        '''\r\n        ais = (_ilat_, ilat), (_ilon_, ilon)\r\n\r\n        if len(shape) != 2 or shape[0] < 1 or shape[1] < len(ais):\r\n            raise _IndexError('array.shape', shape)\r\n\r\n        self._array = array\r\n        self._shape = Shape2Tuple(shape)  # *shape\r\n\r\n        if LatLon:  # check the point class\r\n            if not _isLatLon_(LatLon):\r\n                raise _IsnotError(_valid_, LatLon=LatLon)\r\n            self._LatLon = LatLon\r\n\r\n        # check the attr indices\r\n        for n, (ai, i) in enumerate(ais):\r\n            if not isint(i):\r\n                raise _IsnotError(int, **{ai: i})\r\n            i = int(i)\r\n            if not 0 <= i < shape[1]:\r\n                raise _ValueError(ai, i)\r\n            for aj, j in ais[:n]:\r\n                if int(j) == i:\r\n                    raise _ValueError(_DEQUALSPACED_(ai, aj, i))\r\n            setattr(self, NN(_UNDER_, ai), i)\r\n\r\n    def __contains__(self, latlon):\r\n        '''Check for a specific lat-/longitude.\r\n\r\n           @arg latlon: Point (C{LatLon}, L{LatLon2Tuple} or 2-tuple\r\n                        C{(lat, lon)}).\r\n\r\n           @return: C{True} if B{C{latlon}} is present, C{False} otherwise.\r\n\r\n           @raise TypeError: Invalid B{C{latlon}}.\r\n        '''\r\n        return self._contains(latlon)\r\n\r\n    def __getitem__(self, index):\r\n        '''Return row[index] as C{LatLon} or return a L{Numpy2LatLon} slice.\r\n        '''\r\n        return self._getitem(index)\r\n\r\n    def __iter__(self):\r\n        '''Yield rows as C{LatLon}.\r\n        '''\r\n        return self._iter()\r\n\r\n    def __len__(self):\r\n        '''Return the number of rows.\r\n        '''\r\n        return self._shape[0]\r\n\r\n    def __repr__(self):\r\n        '''Return a string representation.\r\n        '''\r\n        return self._repr()\r\n\r\n    def __reversed__(self):  # PYCHOK false\r\n        '''Yield rows as C{LatLon} in reverse order.\r\n        '''\r\n        return self._reversed()\r\n\r\n    __str__ = __repr__\r\n\r\n    def count(self, latlon):\r\n        '''Count the number of rows with a specific lat-/longitude.\r\n\r\n           @arg latlon: Point (C{LatLon}, L{LatLon2Tuple} or 2-tuple\r\n                        C{(lat, lon)}).\r\n\r\n           @return: Count (C{int}).\r\n\r\n           @raise TypeError: Invalid B{C{latlon}}.\r\n        '''\r\n        return self._count(latlon)\r\n\r\n    def find(self, latlon, *start_end):\r\n        '''Find the first row with a specific lat-/longitude.\r\n\r\n           @arg latlon: Point (C{LatLon}) or 2-tuple (lat, lon).\r\n           @arg start_end: Optional C{[start[, end]]} index (integers).\r\n\r\n           @return: Index or -1 if not found (C{int}).\r\n\r\n           @raise TypeError: Invalid B{C{latlon}}.\r\n        '''\r\n        return self._find(latlon, start_end)\r\n\r\n    def _findall(self, latlon, start_end):\r\n        '''(INTERNAL) Yield indices of all matching rows.\r\n        '''\r\n        try:\r\n            lat, lon = latlon.lat, latlon.lon\r\n        except AttributeError:\r\n            try:\r\n                lat, lon = latlon\r\n            except (TypeError, ValueError):\r\n                raise _IsnotError(_valid_, latlon=latlon)\r\n\r\n        _ilat,  _ilon = self._ilat,  self._ilon\r\n        _array, _eps  = self._array, self._epsilon\r\n        for i in self._range(*start_end):\r\n            row = _array[i]\r\n            if fabs(row[_ilat] - lat) <= _eps and \\\r\n               fabs(row[_ilon] - lon) <= _eps:\r\n                yield i\r\n\r\n    def findall(self, latlon, *start_end):\r\n        '''Yield indices of all rows with a specific lat-/longitude.\r\n\r\n           @arg latlon: Point (C{LatLon}, L{LatLon2Tuple} or 2-tuple\r\n                        C{(lat, lon)}).\r\n           @arg start_end: Optional C{[start[, end]]} index (C{int}).\r\n\r\n           @return: Indices (C{iterable}).\r\n\r\n           @raise TypeError: Invalid B{C{latlon}}.\r\n        '''\r\n        return self._findall(latlon, start_end)\r\n\r\n    def index(self, latlon, *start_end):  # PYCHOK Python 2- issue\r\n        '''Find index of the first row with a specific lat-/longitude.\r\n\r\n           @arg latlon: Point (C{LatLon}, L{LatLon2Tuple} or 2-tuple\r\n                        C{(lat, lon)}).\r\n           @arg start_end: Optional C{[start[, end]]} index (C{int}).\r\n\r\n           @return: Index (C{int}).\r\n\r\n           @raise IndexError: Point not found.\r\n\r\n           @raise TypeError: Invalid B{C{latlon}}.\r\n        '''\r\n        return self._index(latlon, start_end)\r\n\r\n    @Property_RO\r\n    def ilat(self):\r\n        '''Get the latitudes column index (C{int}).\r\n        '''\r\n        return self._ilat\r\n\r\n    @Property_RO\r\n    def ilon(self):\r\n        '''Get the longitudes column index (C{int}).\r\n        '''\r\n        return self._ilon\r\n\r\n#   next = __iter__\r\n\r\n    def point(self, row):  # PYCHOK *attrs\r\n        '''Instantiate a point C{LatLon}.\r\n\r\n           @arg row: Array row (numpy.array).\r\n\r\n           @return: Point (C{LatLon}).\r\n        '''\r\n        return self._LatLon(row[self._ilat], row[self._ilon])\r\n\r\n    def rfind(self, latlon, *start_end):\r\n        '''Find the last row with a specific lat-/longitude.\r\n\r\n           @arg latlon: Point (C{LatLon}, L{LatLon2Tuple} or 2-tuple\r\n                        C{(lat, lon)}).\r\n           @arg start_end: Optional C{[start[, end]]} index (C{int}).\r\n\r\n           @note: Keyword order, first stop, then start.\r\n\r\n           @return: Index or -1 if not found (C{int}).\r\n\r\n           @raise TypeError: Invalid B{C{latlon}}.\r\n        '''\r\n        return self._rfind(latlon, start_end)\r\n\r\n    def _slicekwds(self):\r\n        '''(INTERNAL) Slice kwds.\r\n        '''\r\n        return dict(ilat=self._ilat, ilon=self._ilon)\r\n\r\n    @Property_RO\r\n    def shape(self):\r\n        '''Get the shape of the C{NumPy} array or the C{Tuples} as\r\n           L{Shape2Tuple}C{(nrows, ncols)}.\r\n        '''\r\n        return self._shape\r\n\r\n    def _subset(self, indices):  # PYCHOK no cover\r\n        '''(INTERNAL) I{Must be implemented/overloaded}.'''\r\n        notImplemented(self, indices)\r\n\r\n    def subset(self, indices):\r\n        '''Return a subset of the C{NumPy} array.\r\n\r\n           @arg indices: Row indices (C{range} or C{int}[]).\r\n\r\n           @note: A C{subset} is different from a C{slice} in 2 ways:\r\n                  (a) the C{subset} is typically specified as a list of\r\n                  (un-)ordered indices and (b) the C{subset} allocates\r\n                  a new, separate C{NumPy} array while a C{slice} is\r\n                  just an other C{view} of the original C{NumPy} array.\r\n\r\n           @return: Sub-array (C{numpy.array}).\r\n\r\n           @raise IndexError: Out-of-range B{C{indices}} value.\r\n\r\n           @raise TypeError: If B{C{indices}} is not a C{range}\r\n                             nor an C{int}[].\r\n        '''\r\n        if not issequence(indices, tuple):  # NO tuple, only list\r\n            # and range work properly to get Numpy array sub-sets\r\n            raise _IsnotError(_valid_, indices=type(indices))\r\n\r\n        n = len(self)\r\n        for i, v in enumerate(indices):\r\n            if not isint(v):\r\n                raise _TypeError(Fmt.SQUARE(indices=i), v)\r\n            elif not 0 <= v < n:\r\n                raise _IndexError(Fmt.SQUARE(indices=i), v)\r\n\r\n        return self._subset(indices)\r\n\r\n\r\nclass LatLon2psxy(_Basequence):\r\n    '''Wrapper for C{LatLon} points as \"on-the-fly\" pseudo-xy coordinates.\r\n    '''\r\n    _closed = False\r\n    _len    = 0\r\n    _deg2m  = None  # default, keep degrees\r\n    _radius = None\r\n    _wrap   = True\r\n\r\n    def __init__(self, latlons, closed=False, radius=None, wrap=True):\r\n        '''Handle C{LatLon} points as pseudo-xy coordinates.\r\n\r\n           @note: The C{LatLon} latitude is considered the I{pseudo-y}\r\n                  and longitude the I{pseudo-x} coordinate, likewise\r\n                  for L{LatLon2Tuple}.  However, 2-tuples C{(x, y)} are\r\n                  considered as I{(longitude, latitude)}.\r\n\r\n           @arg latlons: Points C{list}, C{sequence}, C{set}, C{tuple},\r\n                         etc. (C{LatLon[]}).\r\n           @kwarg closed: Optionally, close the polygon (C{bool}).\r\n           @kwarg radius: Mean earth radius (C{meter}).\r\n           @kwarg wrap: If C{True}, wrap or I{normalize} and unroll\r\n                        the B{C{latlons}} points (C{bool}).\r\n\r\n           @raise PointsError: Insufficient number of B{C{latlons}}.\r\n\r\n           @raise TypeError: Some B{C{points}} are not B{C{base}}.\r\n        '''\r\n        self._closed = closed\r\n        self._len, self._array = points2(latlons, closed=closed)\r\n        if radius:\r\n            self._radius = r = Radius(radius)\r\n            self._deg2m  = degrees2m(_1_0, r)\r\n        if not wrap:\r\n            self._wrap = False\r\n\r\n    def __contains__(self, xy):\r\n        '''Check for a matching point.\r\n\r\n           @arg xy: Point (C{LatLon}, L{LatLon2Tuple} or 2-tuple\r\n                    C{(x, y)}) in (C{degrees}.\r\n\r\n           @return: C{True} if B{C{xy}} is present, C{False} otherwise.\r\n\r\n           @raise TypeError: Invalid B{C{xy}}.\r\n        '''\r\n        return self._contains(xy)\r\n\r\n    def __getitem__(self, index):\r\n        '''Return the pseudo-xy or return a L{LatLon2psxy} slice.\r\n        '''\r\n        return self._getitem(index)\r\n\r\n    def __iter__(self):\r\n        '''Yield all pseudo-xy's.\r\n        '''\r\n        return self._iter()\r\n\r\n    def __len__(self):\r\n        '''Return the number of pseudo-xy's.\r\n        '''\r\n        return self._len\r\n\r\n    def __repr__(self):\r\n        '''Return a string representation.\r\n        '''\r\n        return self._repr()\r\n\r\n    def __reversed__(self):  # PYCHOK false\r\n        '''Yield all pseudo-xy's in reverse order.\r\n        '''\r\n        return self._reversed()\r\n\r\n    __str__ = __repr__\r\n\r\n    def count(self, xy):\r\n        '''Count the number of matching points.\r\n\r\n           @arg xy: Point (C{LatLon}, L{LatLon2Tuple} or 2-tuple\r\n                    C{(x, y)}) in (C{degrees}.\r\n\r\n           @return: Count (C{int}).\r\n\r\n           @raise TypeError: Invalid B{C{xy}}.\r\n        '''\r\n        return self._count(xy)\r\n\r\n    def find(self, xy, *start_end):\r\n        '''Find the first matching point.\r\n\r\n           @arg xy: Point (C{LatLon}, L{LatLon2Tuple} or 2-tuple\r\n                    C{(x, y)}) in (C{degrees}.\r\n           @arg start_end: Optional C{[start[, end]]} index (C{int}).\r\n\r\n           @return: Index or -1 if not found (C{int}).\r\n\r\n           @raise TypeError: Invalid B{C{xy}}.\r\n        '''\r\n        return self._find(xy, start_end)\r\n\r\n    def _findall(self, xy, start_end):\r\n        '''(INTERNAL) Yield indices of all matching points.\r\n        '''\r\n        try:\r\n            x, y = xy.lon, xy.lat\r\n\r\n            def _x_y_ll3(ll):  # match LatLon\r\n                return ll.lon, ll.lat, ll\r\n\r\n        except AttributeError:\r\n            try:\r\n                x, y = xy[:2]\r\n            except (IndexError, TypeError, ValueError):\r\n                raise _IsnotError(_valid_, xy=xy)\r\n\r\n            _x_y_ll3 = self.point  # PYCHOK expected\r\n\r\n        _array, _eps = self._array, self._epsilon\r\n        for i in self._range(*start_end):\r\n            xi, yi, _ = _x_y_ll3(_array[i])\r\n            if fabs(xi - x) <= _eps and \\\r\n               fabs(yi - y) <= _eps:\r\n                yield i\r\n\r\n    def findall(self, xy, *start_end):\r\n        '''Yield indices of all matching points.\r\n\r\n           @arg xy: Point (C{LatLon}, L{LatLon2Tuple} or 2-tuple\r\n                    C{(x, y)}) in (C{degrees}.\r\n           @arg start_end: Optional C{[start[, end]]} index (C{int}).\r\n\r\n           @return: Indices (C{iterator}).\r\n\r\n           @raise TypeError: Invalid B{C{xy}}.\r\n        '''\r\n        return self._findall(xy, start_end)\r\n\r\n    def index(self, xy, *start_end):  # PYCHOK Python 2- issue\r\n        '''Find the first matching point.\r\n\r\n           @arg xy: Point (C{LatLon}) or 2-tuple (x, y) in (C{degrees}).\r\n           @arg start_end: Optional C{[start[, end]]} index (C{int}).\r\n\r\n           @return: Index (C{int}).\r\n\r\n           @raise IndexError: Point not found.\r\n\r\n           @raise TypeError: Invalid B{C{xy}}.\r\n        '''\r\n        return self._index(xy, start_end)\r\n\r\n    @property_RO\r\n    def isPoints2(self):\r\n        '''Is this a LatLon2 wrapper/converter?\r\n        '''\r\n        return True  # isinstance(self, (LatLon2psxy, ...))\r\n\r\n    def point(self, ll):  # PYCHOK *attrs\r\n        '''Create a pseudo-xy.\r\n\r\n           @arg ll: Point (C{LatLon}).\r\n\r\n           @return: An L{Point3Tuple}C{(x, y, ll)}.\r\n        '''\r\n        x, y = ll.lon, ll.lat  # note, x, y = lon, lat\r\n        if self._wrap:\r\n            y, x = _Wrap.latlon(y, x)\r\n        d = self._deg2m\r\n        if d:  # convert degrees to meter (or radians)\r\n            x *= d\r\n            y *= d\r\n        return Point3Tuple(x, y, ll)\r\n\r\n    def rfind(self, xy, *start_end):\r\n        '''Find the last matching point.\r\n\r\n           @arg xy: Point (C{LatLon}, L{LatLon2Tuple} or 2-tuple\r\n                    C{(x, y)}) in (C{degrees}.\r\n           @arg start_end: Optional C{[start[, end]]} index (C{int}).\r\n\r\n           @return: Index or -1 if not found (C{int}).\r\n\r\n           @raise TypeError: Invalid B{C{xy}}.\r\n        '''\r\n        return self._rfind(xy, start_end)\r\n\r\n    def _slicekwds(self):\r\n        '''(INTERNAL) Slice kwds.\r\n        '''\r\n        return dict(closed=self._closed, radius=self._radius, wrap=self._wrap)\r\n\r\n\r\nclass Numpy2LatLon(_Array2LatLon):  # immutable, on purpose\r\n    '''Wrapper for C{NumPy} arrays as \"on-the-fly\" C{LatLon} points.\r\n    '''\r\n    def __init__(self, array, ilat=0, ilon=1, LatLon=None):\r\n        '''Handle a C{NumPy} array as a sequence of C{LatLon} points.\r\n\r\n           @arg array: C{NumPy} array (C{numpy.array}).\r\n           @kwarg ilat: Optional index of the latitudes column (C{int}).\r\n           @kwarg ilon: Optional index of the longitudes column (C{int}).\r\n           @kwarg LatLon: Optional C{LatLon} class to use (L{LatLon_}).\r\n\r\n           @raise IndexError: If B{C{array.shape}} is not (1+, 2+).\r\n\r\n           @raise TypeError: If B{C{array}} is not a C{NumPy} array or\r\n                             C{LatLon} is not a class with C{lat}\r\n                             and C{lon} attributes.\r\n\r\n           @raise ValueError: If the B{C{ilat}} and/or B{C{ilon}} values\r\n                              are the same or out of range.\r\n\r\n           @example:\r\n\r\n            >>> type(array)\r\n            <type 'numpy.ndarray'>  # <class ...> in Python 3+\r\n            >>> points = Numpy2LatLon(array, lat=0, lon=1)\r\n            >>> simply = simplifyRDP(points, ...)\r\n            >>> type(simply)\r\n            <type 'numpy.ndarray'>  # <class ...> in Python 3+\r\n            >>> sliced = points[1:-1]\r\n            >>> type(sliced)\r\n            <class '...Numpy2LatLon'>\r\n        '''\r\n        try:  # get shape and check some other numpy.array attrs\r\n            s, _, _ = array.shape, array.nbytes, array.ndim  # PYCHOK expected\r\n        except AttributeError:\r\n            raise _IsnotError('NumPy', array=type(array))\r\n\r\n        _Array2LatLon.__init__(self, array, ilat=ilat, ilon=ilon,\r\n                                     LatLon=LatLon, shape=s)\r\n\r\n    @property_RO\r\n    def isNumpy2(self):\r\n        '''Is this a Numpy2 wrapper?\r\n        '''\r\n        return True  # isinstance(self, (Numpy2LatLon, ...))\r\n\r\n    def _subset(self, indices):\r\n        return self._array[indices]  # NumPy special\r\n\r\n\r\nclass Shape2Tuple(_NamedTuple):\r\n    '''2-Tuple C{(nrows, ncols)}, the number of rows and columns,\r\n       both C{int}.\r\n    '''\r\n    _Names_ = (_nrows_, _ncols_)\r\n    _Units_ = ( Number_, Number_)\r\n\r\n\r\nclass Tuple2LatLon(_Array2LatLon):\r\n    '''Wrapper for tuple sequences as \"on-the-fly\" C{LatLon} points.\r\n    '''\r\n    def __init__(self, tuples, ilat=0, ilon=1, LatLon=None):\r\n        '''Handle a list of tuples, each containing a lat- and longitude\r\n           and perhaps other values as a sequence of C{LatLon} points.\r\n\r\n           @arg tuples: The C{list}, C{tuple} or C{sequence} of tuples (C{tuple}[]).\r\n           @kwarg ilat: Optional index of the latitudes value (C{int}).\r\n           @kwarg ilon: Optional index of the longitudes value (C{int}).\r\n           @kwarg LatLon: Optional C{LatLon} class to use (L{LatLon_}).\r\n\r\n           @raise IndexError: If C{(len(B{tuples}), min(len(t) for t\r\n                              in B{tuples}))} is not (1+, 2+).\r\n\r\n           @raise TypeError: If B{C{tuples}} is not a C{list}, C{tuple}\r\n                             or C{sequence} or if B{C{LatLon}} is not a\r\n                             C{LatLon} with C{lat}, C{lon} and C{name}\r\n                             attributes.\r\n\r\n           @raise ValueError: If the B{C{ilat}} and/or B{C{ilon}} values\r\n                              are the same or out of range.\r\n\r\n           @example:\r\n\r\n            >>> tuples = [(0, 1), (2, 3), (4, 5)]\r\n            >>> type(tuples)\r\n            <type 'list'>  # <class ...> in Python 3+\r\n            >>> points = Tuple2LatLon(tuples, lat=0, lon=1)\r\n            >>> simply = simplifyRW(points, 0.5, ...)\r\n            >>> type(simply)\r\n            <type 'list'>  # <class ...> in Python 3+\r\n            >>> simply\r\n            [(0, 1), (4, 5)]\r\n            >>> sliced = points[1:-1]\r\n            >>> type(sliced)\r\n            <class '...Tuple2LatLon'>\r\n            >>> sliced\r\n            ...Tuple2LatLon([(2, 3), ...][1], ilat=0, ilon=1)\r\n\r\n            >>> closest, _ = nearestOn2(LatLon_(2, 1), points, adjust=False)\r\n            >>> closest\r\n            LatLon_(lat=1.0, lon=2.0)\r\n\r\n            >>> closest, _ = nearestOn2(LatLon_(3, 2), points)\r\n            >>> closest\r\n            LatLon_(lat=2.001162, lon=3.001162)\r\n        '''\r\n        _xinstanceof(list, tuple, tuples=tuples)\r\n        s = len(tuples), min(len(_) for _ in tuples)\r\n        _Array2LatLon.__init__(self, tuples, ilat=ilat, ilon=ilon,\r\n                                     LatLon=LatLon, shape=s)\r\n\r\n    @property_RO\r\n    def isTuple2(self):\r\n        '''Is this a Tuple2 wrapper?\r\n        '''\r\n        return True  # isinstance(self, (Tuple2LatLon, ...))\r\n\r\n    def _subset(self, indices):\r\n        return type(self._array)(self._array[i] for i in indices)\r\n\r\n\r\ndef _area2(points, adjust, wrap):\r\n    '''(INTERNAL) Approximate the area in radians squared, I{signed}.\r\n    '''\r\n    if adjust:\r\n        # approximate trapezoid by a rectangle, adjusting\r\n        # the top width by the cosine of the latitudinal\r\n        # average and bottom width by some fudge factor\r\n        def _adjust(w, h):\r\n            c = cos(h) if fabs(h) < PI_2 else _0_0\r\n            return w * h * (c + 1.2876) * _0_5\r\n    else:\r\n        def _adjust(w, h):  # PYCHOK expected\r\n            return w * h\r\n\r\n    # setting radius=1 converts degrees to radians\r\n    Ps = LatLon2PsxyIter(points, loop=1, radius=_1_0, wrap=wrap)\r\n    x1, y1, ll = Ps[0]\r\n    pts = [ll]  # for _areaError\r\n\r\n    A2 = Fsum()  # trapezoidal area in radians**2\r\n    for p in Ps.iterate(closed=True):\r\n        x2, y2, ll = p\r\n        if len(pts) < 4:\r\n            pts.append(ll)\r\n        w, x2 = unrollPI(x1, x2, wrap=wrap and not Ps.looped)\r\n        A2 += _adjust(w, (y2 + y1) * _0_5)\r\n        x1, y1 = x2, y2\r\n\r\n    return A2.fsum(), tuple(pts)\r\n\r\n\r\ndef _areaError(pts, near_=NN):  # in .ellipsoidalKarney\r\n    '''(INTERNAL) Area issue.\r\n    '''\r\n    t = _ELLIPSIS_(pts[:3], NN)\r\n    return _ValueError(NN(near_, 'zero or polar area'), txt=t)\r\n\r\n\r\ndef areaOf(points, adjust=True, radius=R_M, wrap=True):\r\n    '''Approximate the area of a polygon or composite.\r\n\r\n       @arg points: The polygon points or clips (C{LatLon}[],\r\n                    L{BooleanFHP} or L{BooleanGH}).\r\n       @kwarg adjust: Adjust the wrapped, unrolled longitudinal delta\r\n                      by the cosine of the mean latitude (C{bool}).\r\n       @kwarg radius: Mean earth radius (C{meter}) or C{None}.\r\n       @kwarg wrap: If C{True}, wrap or I{normalize} and unroll\r\n                    the B{C{points}} (C{bool}).\r\n\r\n       @return: Approximate area (I{square} C{meter}, same units as\r\n                B{C{radius}} or C{radians} I{squared} if C{B{radius}\r\n                is None}).\r\n\r\n       @raise PointsError: Insufficient number of B{C{points}}\r\n\r\n       @raise TypeError: Some B{C{points}} are not C{LatLon}.\r\n\r\n       @raise ValueError: Invalid B{C{radius}}.\r\n\r\n       @note: This area approximation has limited accuracy and is\r\n              ill-suited for regions exceeding several hundred Km\r\n              or Miles or with near-polar latitudes.\r\n\r\n       @see: L{sphericalNvector.areaOf}, L{sphericalTrigonometry.areaOf},\r\n             L{ellipsoidalExact.areaOf} and L{ellipsoidalKarney.areaOf}.\r\n    '''\r\n    if _MODS.booleans.isBoolean(points):\r\n        a = points._sum1(areaOf, adjust=adjust, radius=None, wrap=wrap)\r\n    else:\r\n        a, _ = _area2(points, adjust, wrap)\r\n    return fabs(a if radius is None else (Radius(radius)**2 * a))\r\n\r\n\r\ndef boundsOf(points, wrap=False, LatLon=None):  # was=True\r\n    '''Determine the bottom-left SW and top-right NE corners of a\r\n       path or polygon.\r\n\r\n       @arg points: The path or polygon points (C{LatLon}[]).\r\n       @kwarg wrap: If C{True}, wrap or I{normalize} and unroll\r\n                    the B{C{points}} (C{bool}).\r\n       @kwarg LatLon: Optional class to return the C{bounds}\r\n                      corners (C{LatLon}) or C{None}.\r\n\r\n       @return: A L{Bounds2Tuple}C{(latlonSW, latlonNE)}, each\r\n                a B{C{LatLon}} or if C{B{LatLon} is None}, a\r\n                L{Bounds4Tuple}C{(latS, lonW, latN, lonE)}.\r\n\r\n       @raise PointsError: Insufficient number of B{C{points}}\r\n\r\n       @raise TypeError: Some B{C{points}} are not C{LatLon}.\r\n\r\n       @see: Function L{quadOf}.\r\n    '''\r\n    Ps = LatLon2PsxyIter(points, loop=1, wrap=wrap)\r\n    w, s, _ = e, n, _ = Ps[0]\r\n\r\n    v = w\r\n    for x, y, _ in Ps.iterate(closed=False):  # [1:]\r\n        if wrap:\r\n            _, x = unroll180(v, x, wrap=True)\r\n        v = x\r\n\r\n        if w > x:\r\n            w = x\r\n        elif e < x:\r\n            e = x\r\n\r\n        if s > y:\r\n            s = y\r\n        elif n < y:\r\n            n = y\r\n\r\n    return Bounds4Tuple(s, w, n, e) if LatLon is None else \\\r\n           Bounds2Tuple(LatLon(s, w), LatLon(n, e))  # PYCHOK inconsistent\r\n\r\n\r\ndef centroidOf(points, wrap=False, LatLon=None):  # was=True\r\n    '''Determine the centroid of a polygon.\r\n\r\n       @arg points: The polygon points (C{LatLon}[]).\r\n       @kwarg wrap: If C{True}, wrap or I{normalize} and unroll the\r\n                    B{C{points}} (C{bool}).\r\n       @kwarg LatLon: Optional class to return the centroid (C{LatLon})\r\n                      or C{None}.\r\n\r\n       @return: Centroid (B{C{LatLon}}) or a L{LatLon2Tuple}C{(lat, lon)}\r\n                if C{B{LatLon} is None}.\r\n\r\n       @raise PointsError: Insufficient number of B{C{points}}\r\n\r\n       @raise TypeError: Some B{C{points}} are not C{LatLon}.\r\n\r\n       @raise ValueError: The B{C{points}} enclose a pole or\r\n                          near-zero area.\r\n\r\n       @see: U{Centroid<https://WikiPedia.org/wiki/Centroid#Of_a_polygon>} and\r\n             Paul Bourke's U{Calculating The Area And Centroid Of A Polygon\r\n             <https://www.SEAS.UPenn.edu/~ese502/lab-content/extra_materials/\r\n             Polygon%20Area%20and%20Centroid.pdf>}, 1988.\r\n    '''\r\n    A, X, Y = Fsum(), Fsum(), Fsum()\r\n\r\n    # setting radius=1 converts degrees to radians\r\n    Ps = LatLon2PsxyIter(points, loop=1, radius=_1_0, wrap=wrap)\r\n    x1, y1, ll = Ps[0]\r\n    pts = [ll]  # for _areaError\r\n    for p in Ps.iterate(closed=True):\r\n        x2, y2, ll = p\r\n        if len(pts) < 4:\r\n            pts.append(ll)\r\n        if wrap and not Ps.looped:\r\n            _, x2 = unrollPI(x1, x2, wrap=True)\r\n        t  = x1 * y2 - x2 * y1\r\n        A += t\r\n        X += t * (x1 + x2)\r\n        Y += t * (y1 + y2)\r\n        # XXX more elaborately:\r\n        # t1, t2 = x1 * y2, -(x2 * y1)\r\n        # A.fadd_(t1, t2)\r\n        # X.fadd_(t1 * x1, t1 * x2, t2 * x1, t2 * x2)\r\n        # Y.fadd_(t1 * y1, t1 * y2, t2 * y1, t2 * y2)\r\n        x1, y1 = x2, y2\r\n\r\n    a = A.fmul(_6_0).fover(_2_0)\r\n    if isnear0(a):\r\n        raise _areaError(pts, near_=_near_)\r\n    y, x = degrees90(Y.fover(a)), degrees180(X.fover(a))\r\n    return LatLon2Tuple(y, x) if LatLon is None else LatLon(y, x)\r\n\r\n\r\ndef _distanceTo(Error, **name_points):  # .frechet, .hausdorff, .heights\r\n    '''(INTERNAL) Check all callable C{distanceTo} methods.\r\n    '''\r\n    name, ps = _xkwds_item2(name_points)\r\n    for i, p in enumerate(ps):\r\n        if not callable(_xattr(p, distanceTo=None)):\r\n            n =  typename(_distanceTo)[1:]\r\n            t = _SPACE_(_no_, typename(callable), n)\r\n            raise Error(Fmt.SQUARE(name, i), p, txt=t)\r\n    return ps\r\n\r\n\r\ndef fractional(points, fi, j=None, wrap=None, LatLon=None, Vector=None, **kwds):\r\n    '''Return the point at a given I{fractional} index.\r\n\r\n       @arg points: The points (C{LatLon}[], L{Numpy2LatLon}[],\r\n                    L{Tuple2LatLon}[], C{Cartesian}[], C{Vector3d}[],\r\n                    L{Vector3Tuple}[]).\r\n       @arg fi: The fractional index (L{FIx}, C{float} or C{int}).\r\n       @kwarg j: Optionally, index of the other point (C{int}).\r\n       @kwarg wrap: If C{True}, wrap or I{normalize} and unroll the\r\n                    B{{points}} (C{bool}) or C{None} for a backward\r\n                    compatible L{LatLon2Tuple} or B{C{LatLon}} with\r\n                    averaged lat- and longitudes.  Use C{True} or\r\n                    C{False} to get the I{fractional} point computed\r\n                    by method C{B{points}[fi].intermediateTo}.\r\n       @kwarg LatLon: Optional class to return the I{intermediate},\r\n                      I{fractional} point (C{LatLon}) or C{None}.\r\n       @kwarg Vector: Optional class to return the I{intermediate},\r\n                      I{fractional} point (C{Cartesian}, C{Vector3d})\r\n                      or C{None}.\r\n       @kwarg kwds: Optional, additional B{C{LatLon}} I{or} B{C{Vector}}\r\n                    keyword arguments, ignored if both C{B{LatLon}} and\r\n                    C{B{Vector}} are C{None}.\r\n\r\n       @return: A L{LatLon2Tuple}C{(lat, lon)} if B{C{wrap}}, B{C{LatLon}}\r\n                and B{C{Vector}} all are C{None}, the defaults.\r\n\r\n                An instance of B{C{LatLon}} if not C{None} I{or} an instance\r\n                of B{C{Vector}} if not C{None}.\r\n\r\n                Otherwise with B{C{wrap}} either C{True} or C{False} and\r\n                B{C{LatLon}} and B{C{Vector}} both C{None}, an instance of\r\n                B{C{points}}' (sub-)class C{intermediateTo} I{fractional}.\r\n\r\n                Summarized as follows:\r\n\r\n                  >>>  wrap  | LatLon | Vector | returned type/value\r\n                  #   -------+--------+--------+--------------+------\r\n                  #          |        |        | LatLon2Tuple | favg\r\n                  #    None  |  None  |  None  |   or**       |\r\n                  #          |        |        | Vector3Tuple | favg\r\n                  #    None  | LatLon |  None  | LatLon       | favg\r\n                  #    None  |  None  | Vector | Vector       | favg\r\n                  #   -------+--------+--------+--------------+------\r\n                  #    True  |  None  |  None  | points'      | .iTo\r\n                  #    True  | LatLon |  None  | LatLon       | .iTo\r\n                  #    True  |  None  | Vector | Vector       | .iTo\r\n                  #   -------+--------+--------+--------------+------\r\n                  #    False |  None  |  None  | points'      | .iTo\r\n                  #    False | LatLon |  None  | LatLon       | .iTo\r\n                  #    False |  None  | Vector | Vector       | .iTo\r\n                  # _____\r\n                  # favg) averaged lat, lon or x, y, z values\r\n                  # .iTo) value from points[fi].intermediateTo\r\n                  # **) depends on base class of points[fi]\r\n\r\n       @raise IndexError: Fractional index B{C{fi}} invalid or B{C{points}}\r\n                          not subscriptable or not closed.\r\n\r\n       @raise TypeError: Invalid B{C{LatLon}}, B{C{Vector}} or B{C{kwds}}\r\n                         argument.\r\n\r\n       @see: Class L{FIx} and method L{FIx.fractional}.\r\n    '''\r\n    if LatLon and Vector:  # PYCHOK no cover\r\n        kwds = _xkwds(kwds, fi=fi, LatLon=LatLon, Vector=Vector)\r\n        raise _TypeError(txt__=fractional, **kwds)\r\n    w = wrap if LatLon else False  # intermediateTo\r\n    try:\r\n        if (not isscalar(fi)) or fi < 0:\r\n            raise IndexError\r\n        n = _xattr(fi, fin=0)\r\n        p = _fractional(points, fi, j, fin=n, wrap=w)  # see .units.FIx\r\n        if LatLon:\r\n            p = LatLon(p.lat, p.lon, **kwds)\r\n        elif Vector:\r\n            p = Vector(p.x, p.y, p.z, **kwds)\r\n    except (IndexError, TypeError):\r\n        raise _IndexError(fi=fi, points=points, wrap=w, txt__=fractional)\r\n    return p\r\n\r\n\r\ndef _fractional(points, fi, j, fin=None, wrap=None, dup=False):  # in .frechet.py\r\n    '''(INTERNAL) Compute point at L{fractional} index C{fi} and C{j}.\r\n    '''\r\n    i = int(fi)\r\n    p = points[i]\r\n    r = fi - float(i)\r\n    if r > EPS:  # EPS0?\r\n        if j is None:  # in .frechet.py\r\n            j = i + 1\r\n            if fin:\r\n                j %= fin\r\n        q = points[j]\r\n        if r >= EPS1:  # PYCHOK no cover\r\n            p = q\r\n        elif wrap is not None:  # isbool(wrap)\r\n            p = p.intermediateTo(q, r, wrap=wrap)\r\n        elif _isLatLon(p):  # backward compatible default\r\n            t = LatLon2Tuple(favg(p.lat, q.lat, f=r),\r\n                             favg(p.lon, q.lon, f=r),\r\n                             name__=fractional)\r\n            p = p.dup(lat=t.lat, lon=t.lon, name=t.name) if dup else t  # PYCHOK lat, lon\r\n        else:  # assume p and q are cartesian or vectorial\r\n            z = p.z if p.z is q.z else favg(p.z, q.z, f=r)\r\n            p = Vector3Tuple(favg(p.x, q.x, f=r),\r\n                             favg(p.y, q.y, f=r), z,\r\n                             name__=fractional)\r\n    return p\r\n\r\n\r\ndef isclockwise(points, adjust=False, wrap=True):\r\n    '''Determine the direction of a path or polygon.\r\n\r\n       @arg points: The path or polygon points (C{LatLon}[]).\r\n       @kwarg adjust: Adjust the wrapped, unrolled longitudinal delta\r\n                      by the cosine of the mean latitude (C{bool}).\r\n       @kwarg wrap: If C{True}, wrap or I{normalize} and unroll the\r\n                    B{C{points}} (C{bool}).\r\n\r\n       @return: C{True} if B{C{points}} are clockwise, C{False} otherwise.\r\n\r\n       @raise PointsError: Insufficient number of B{C{points}}\r\n\r\n       @raise TypeError: Some B{C{points}} are not C{LatLon}.\r\n\r\n       @raise ValueError: The B{C{points}} enclose a pole or zero area.\r\n    '''\r\n    a, pts = _area2(points, adjust, wrap)\r\n    if a > 0:  # opposite of ellipsoidalExact and -Karney\r\n        return True\r\n    elif a < 0:\r\n        return False\r\n    # <https://blog.Element84.com/determining-if-a-spherical-polygon-contains-a-pole.html>\r\n    raise _areaError(pts)\r\n\r\n\r\ndef isconvex(points, adjust=False, wrap=False):  # was=True\r\n    '''Determine whether a polygon is convex.\r\n\r\n       @arg points: The polygon points (C{LatLon}[]).\r\n       @kwarg adjust: Adjust the wrapped, unrolled longitudinal delta\r\n                      by the cosine of the mean latitude (C{bool}).\r\n       @kwarg wrap: If C{True}, wrap or I{normalize} and unroll the\r\n                    B{C{points}} (C{bool}).\r\n\r\n       @return: C{True} if B{C{points}} are convex, C{False} otherwise.\r\n\r\n       @raise CrossError: Some B{C{points}} are colinear.\r\n\r\n       @raise PointsError: Insufficient number of B{C{points}}\r\n\r\n       @raise TypeError: Some B{C{points}} are not C{LatLon}.\r\n    '''\r\n    return bool(isconvex_(points, adjust=adjust, wrap=wrap))\r\n\r\n\r\ndef isconvex_(points, adjust=False, wrap=False):  # was=True\r\n    '''Determine whether a polygon is convex I{and clockwise}.\r\n\r\n       @arg points: The polygon points (C{LatLon}[]).\r\n       @kwarg adjust: Adjust the wrapped, unrolled longitudinal delta\r\n                      by the cosine of the mean latitude (C{bool}).\r\n       @kwarg wrap: If C{True}, wrap or I{normalize} and unroll the\r\n                    B{C{points}} (C{bool}).\r\n\r\n       @return: C{+1} if B{C{points}} are convex clockwise, C{-1} for\r\n                convex counter-clockwise B{C{points}}, C{0} otherwise.\r\n\r\n       @raise CrossError: Some B{C{points}} are colinear.\r\n\r\n       @raise PointsError: Insufficient number of B{C{points}}\r\n\r\n       @raise TypeError: Some B{C{points}} are not C{LatLon}.\r\n    '''\r\n    if adjust:\r\n        def _unroll2(x1, x2, w, y1, y2):\r\n            x21, x2 = unroll180(x1, x2, wrap=w)\r\n            y = radians(y1 + y2) * _0_5\r\n            x21 *= cos(y) if fabs(y) < PI_2 else _0_0\r\n            return x21, x2\r\n    else:\r\n        def _unroll2(x1, x2, w, *unused):  # PYCHOK expected\r\n            return unroll180(x1, x2, wrap=w)\r\n\r\n    c, s = crosserrors(), 0\r\n\r\n    Ps = LatLon2PsxyIter(points, loop=2, wrap=wrap)\r\n    x1, y1, _ = Ps[0]\r\n    x2, y2, _ = Ps[1]\r\n\r\n    x21, x2 = _unroll2(x1, x2, False, y1, y2)\r\n    for i, p in Ps.enumerate(closed=True):\r\n        x3, y3, ll = p\r\n        x32, x3 = _unroll2(x2, x3, bool(wrap and not Ps.looped), y2, y3)\r\n\r\n        # get the sign of the distance from point\r\n        # x3, y3 to the line from x1, y1 to x2, y2\r\n        # <https://WikiPedia.org/wiki/Distance_from_a_point_to_a_line>\r\n        s3 = fdot((x3, y3, x1, y1), y2 - y1, -x21, -y2, x2)\r\n        if s3 > 0:  # x3, y3 on the right\r\n            if s < 0:  # non-convex\r\n                return 0\r\n            s = +1\r\n\r\n        elif s3 < 0:  # x3, y3 on the left\r\n            if s > 0:  # non-convex\r\n                return 0\r\n            s = -1\r\n\r\n        elif c and fdot((x32, y1 - y2), y3 - y2, -x21) < 0:  # PYCHOK no cover\r\n            # colinear u-turn: x3, y3 not on the\r\n            # opposite side of x2, y2 as x1, y1\r\n            t = Fmt.SQUARE(points=i)\r\n            raise CrossError(t, ll, txt=_colinear_)\r\n\r\n        x1, y1, x2, y2, x21 = x2, y2, x3, y3, x32\r\n\r\n    return s  # all points on the same side\r\n\r\n\r\ndef isenclosedBy(point, points, wrap=False):  # MCCABE 15\r\n    '''Determine whether a point is enclosed by a polygon or composite.\r\n\r\n       @arg point: The point (C{LatLon} or 2-tuple C{(lat, lon)}).\r\n       @arg points: The polygon points or clips (C{LatLon}[], L{BooleanFHP}\r\n                    or L{BooleanGH}).\r\n       @kwarg wrap: If C{True}, wrap or I{normalize} and unroll the\r\n                    B{C{points}} (C{bool}).\r\n\r\n       @return: C{True} if the B{C{point}} is inside the polygon or\r\n                composite, C{False} otherwise.\r\n\r\n       @raise PointsError: Insufficient number of B{C{points}}\r\n\r\n       @raise TypeError: Some B{C{points}} are not C{LatLon}.\r\n\r\n       @raise ValueError: Invalid B{C{point}}, lat- or longitude.\r\n\r\n       @see: Functions L{pygeodesy.isconvex} and L{pygeodesy.ispolar} especially\r\n             if the B{C{points}} may enclose a pole or wrap around the earth\r\n             I{longitudinally}, methods L{sphericalNvector.LatLon.isenclosedBy},\r\n             L{sphericalTrigonometry.LatLon.isenclosedBy} and U{MultiDop\r\n             GeogContainPt<https://GitHub.com/NASA/MultiDop>} (U{Shapiro et.al. 2009,\r\n             JTECH<https://Journals.AMetSoc.org/doi/abs/10.1175/2009JTECHA1256.1>}\r\n             and U{Potvin et al. 2012, JTECH <https://Journals.AMetSoc.org/doi/abs/\r\n             10.1175/JTECH-D-11-00019.1>}).\r\n    '''\r\n    try:\r\n        y0, x0 = point.lat, point.lon\r\n    except AttributeError:\r\n        try:\r\n            y0, x0 = map(float, point[:2])\r\n        except (IndexError, TypeError, ValueError) as x:\r\n            raise _ValueError(point=point, cause=x)\r\n\r\n    if wrap:\r\n        y0, x0 = _Wrap.latlon(y0, x0)\r\n\r\n        def _dxy3(x, x2, y2, Ps):\r\n            dx, x2 = unroll180(x, x2, wrap=not Ps.looped)\r\n            return dx, x2, y2\r\n\r\n    else:\r\n        x0 = _fmod(x0, _360_0)  # not x0 % 360!\r\n        x0_180_ = x0 - _180_0\r\n        x0_180  = x0 + _180_0\r\n\r\n        def _dxy3(x1, x, y, unused):  # PYCHOK expected\r\n            x = _umod_360(float(x))\r\n            if x < x0_180_:\r\n                x += _360_0\r\n            elif x >= x0_180:\r\n                x -= _360_0\r\n            return (x - x1), x, y\r\n\r\n    if _MODS.booleans.isBoolean(points):\r\n        return points._encloses(y0, x0, wrap=wrap)\r\n\r\n    Ps = LatLon2PsxyIter(points, loop=1, wrap=wrap)\r\n    p  = Ps[0]\r\n    e  = m = False\r\n    S  = Fsum()\r\n\r\n    _, x1, y1 = _dxy3(x0, p.x, p.y, False)\r\n    for p in Ps.iterate(closed=True):\r\n        dx, x2, y2 = _dxy3(x1, p.x, p.y, Ps)\r\n        # ignore duplicate and near-duplicate pts\r\n        if fabs(dx) > EPS or fabs(y2 - y1) > EPS:\r\n            # determine if polygon edge (x1, y1)..(x2, y2) straddles\r\n            # point (lat, lon) or is on boundary, but do not count\r\n            # edges on boundary as more than one crossing\r\n            if fabs(dx) < 180 and (x1 < x0 <= x2 or x2 < x0 <= x1):\r\n                m = not m\r\n                dy = (x0 - x1) * (y2 - y1) - (y0 - y1) * dx\r\n                if (dy > 0 and dx >= 0) or (dy < 0 and dx <= 0):\r\n                    e = not e\r\n\r\n            S += sin(radians(y2))\r\n            x1, y1 = x2, y2\r\n\r\n    # An odd number of meridian crossings means, the polygon\r\n    # contains a pole.  Assume it is the pole on the hemisphere\r\n    # containing the polygon mean point and if the polygon does\r\n    # contain the North Pole, flip the result.\r\n    if m and S.fsum() > 0:\r\n        e = not e\r\n    return e\r\n\r\n\r\ndef ispolar(points, wrap=False):\r\n    '''Check whether a polygon encloses a pole.\r\n\r\n       @arg points: The polygon points (C{LatLon}[]).\r\n       @kwarg wrap: If C{True}, wrap or I{normalize} and unroll\r\n                    the B{C{points}} (C{bool}).\r\n\r\n       @return: C{True} if the polygon encloses a pole, C{False}\r\n                otherwise.\r\n\r\n       @raise PointsError: Insufficient number of B{C{points}}\r\n\r\n       @raise TypeError: Some B{C{points}} are not C{LatLon} or don't\r\n                         have C{bearingTo2}, C{initialBearingTo}\r\n                         and C{finalBearingTo} methods.\r\n    '''\r\n    def _cds(ps, w):  # iterate over course deltas\r\n        Ps     =  PointsIter(ps, loop=2, wrap=w)\r\n        p2, p1 =  Ps[0:2]\r\n        b1, _  = _bearingTo2(p2, p1, wrap=False)\r\n        for p2 in Ps.iterate(closed=True):\r\n            if not p2.isequalTo(p1, EPS):\r\n                if w and not Ps.looped:\r\n                    p2 = _unrollon(p1, p2)\r\n                b,  b2 = _bearingTo2(p1, p2, wrap=False)\r\n                yield wrap180(b - b1)  # (b - b1 + 540) % 360 - 180\r\n                yield wrap180(b2 - b)  # (b2 - b + 540) % 360 - 180\r\n                p1, b1 = p2, b2\r\n\r\n    # summation of course deltas around pole is 0° rather than normally ±360°\r\n    # <https://blog.Element84.com/determining-if-a-spherical-polygon-contains-a-pole.html>\r\n    s = fsum(_cds(points, wrap))\r\n    # XXX fix (intermittant) edge crossing pole - eg (85,90), (85,0), (85,-90)\r\n    return fabs(s) < 90  # \"zero-ish\"\r\n\r\n\r\ndef luneOf(lon1, lon2, closed=False, LatLon=LatLon_, **LatLon_kwds):\r\n    '''Generate an ellipsoidal or spherical U{lune\r\n       <https://WikiPedia.org/wiki/Spherical_lune>}-shaped path or polygon.\r\n\r\n       @arg lon1: Left longitude (C{degrees90}).\r\n       @arg lon2: Right longitude (C{degrees90}).\r\n       @kwarg closed: Optionally, close the path (C{bool}).\r\n       @kwarg LatLon: Class to use (L{LatLon_}).\r\n       @kwarg LatLon_kwds: Optional, additional B{C{LatLon}}\r\n                           keyword arguments.\r\n\r\n       @return: A tuple of 4 or 5 B{C{LatLon}} instances outlining\r\n                the lune shape.\r\n\r\n       @see: U{Latitude-longitude quadrangle\r\n             <https://www.MathWorks.com/help/map/ref/areaquad.html>}.\r\n    '''\r\n    t = (LatLon(   _0_0, lon1, **LatLon_kwds),\r\n         LatLon(  _90_0, lon1, **LatLon_kwds),\r\n         LatLon(   _0_0, lon2, **LatLon_kwds),\r\n         LatLon(_N_90_0, lon2, **LatLon_kwds))\r\n    if closed:\r\n        t += t[:1]\r\n    return t\r\n\r\n\r\ndef nearestOn5(point, points, closed=False, wrap=False, adjust=True,\r\n                                            limit=9, **LatLon_and_kwds):\r\n    '''Locate the point on a path or polygon closest to a reference point.\r\n\r\n       The closest point on each polygon edge is either the nearest of that\r\n       edge's end points or a point in between.\r\n\r\n       @arg point: The reference point (C{LatLon}).\r\n       @arg points: The path or polygon points (C{LatLon}[]).\r\n       @kwarg closed: Optionally, close the path or polygon (C{bool}).\r\n       @kwarg wrap: If C{True}, wrap or I{normalize} and unroll the\r\n                    B{C{points}} (C{bool}).\r\n       @kwarg adjust: See function L{pygeodesy.equirectangular4} (C{bool}).\r\n       @kwarg limit: See function L{pygeodesy.equirectangular4} (C{degrees}),\r\n                     default C{9 degrees} is about C{1,000 Kmeter} (for mean\r\n                     spherical earth radius L{R_KM}).\r\n       @kwarg LatLon_and_kwds: Optional, C{B{LatLon}=None} class to use for\r\n                     the closest point and additional B{C{LatLon}} keyword\r\n                     arguments, ignored if C{B{LatLon} is None} or not given.\r\n\r\n       @return: A L{NearestOn3Tuple}C{(closest, distance, angle)} with the\r\n                {closest} point (B{C{LatLon}}) or if C{B{LatLon} is None},\r\n                a L{NearestOn5Tuple}C{(lat, lon, distance, angle, height)}.\r\n                The C{distance} is the L{pygeodesy.equirectangular} distance\r\n                between the C{closest} and reference B{C{point}} in C{degrees}.\r\n                The C{angle} from the B{C{point}} to the C{closest} is in\r\n                compass C{degrees}, like function L{pygeodesy.compassAngle}.\r\n\r\n       @raise LimitError: Lat- and/or longitudinal delta exceeds the B{C{limit}},\r\n                          see function L{pygeodesy.equirectangular4}.\r\n\r\n       @raise PointsError: Insufficient number of B{C{points}}\r\n\r\n       @raise TypeError: Some B{C{points}} are not C{LatLon}.\r\n\r\n       @note: Distances are I{approximated} by function L{pygeodesy.equirectangular4}.\r\n              For more accuracy use one of the C{LatLon.nearestOn6} methods.\r\n\r\n       @see: Function L{pygeodesy.degrees2m}.\r\n    '''\r\n    def _d2yx4(p2, p1, u, alw):\r\n        # w = wrap if (i < (n - 1) or not closed) else False\r\n        # equirectangular4 returns a Distance4Tuple(distance\r\n        # in degrees squared, delta lat, delta lon, p2.lon\r\n        # unroll/wrap'd); the previous p2.lon unroll/wrap'd\r\n        # is also applied to the next edge's p1.lon\r\n        return equirectangular4(p1.lat, p1.lon + u,\r\n                                p2.lat, p2.lon, **alw)\r\n\r\n    def _h(p):  # get height or default 0\r\n        return _xattr(p, height=0) or 0\r\n\r\n    # 3-D version used in .vector3d._nearestOn2\r\n    #\r\n    # point (x, y) on axis rotated ccw by angle a:\r\n    #   x' = x * cos(a) + y * sin(a)\r\n    #   y' = y * cos(a) - x * sin(a)\r\n    #\r\n    # distance (w) along and (h) perpendicular to\r\n    # a line thru point (dx, dy) and the origin:\r\n    #   d =  hypot(dx, dy)\r\n    #   w = (x * dx + y * dy) / d\r\n    #   h = (y * dx - x * dy) / d\r\n    #\r\n    # closest point on that line thru (dx, dy):\r\n    #   xc = dx * w / d\r\n    #   yc = dy * w / d\r\n    # or\r\n    #   xc = dx * f\r\n    #   yc = dy * f\r\n    # with\r\n    #   f = w / d\r\n    # or\r\n    #   f = (y * dy + x * dx) / hypot2(dx, dy)\r\n    #\r\n    # i.e. no need for sqrt or hypot\r\n\r\n    Ps = PointsIter(points, loop=1, wrap=wrap)\r\n    p1 = c = Ps[0]\r\n    u1 = u = _0_0\r\n    kw = dict(adjust=adjust, limit=limit, wrap=False)\r\n    d, dy, dx, _ = _d2yx4(p1, point, u1, kw)\r\n    for p2 in Ps.iterate(closed=closed):\r\n        # iff wrapped, unroll lon1 (actually previous\r\n        # lon2) like function unroll180/-PI would've\r\n        if wrap:\r\n            kw.update(wrap=not (closed and Ps.looped))\r\n        d21, y21, x21, u2 = _d2yx4(p2, p1, u1, kw)\r\n        if d21 > EPS:\r\n            # distance point to p1, y01 and x01 negated\r\n            d2, y01, x01, _ = _d2yx4(point, p1, u1, kw)\r\n            if d2 > EPS:\r\n                w2 = y01 * y21 + x01 * x21\r\n                if w2 > 0:\r\n                    if w2 < d21:\r\n                        # closest is between p1 and p2, use\r\n                        # original delta's, not y21 and x21\r\n                        f = w2 / d21\r\n                        p1 = LatLon_(favg(p1.lat, p2.lat, f=f),\r\n                                     favg(p1.lon, p2.lon + u2, f=f),\r\n                              height=favg(_h(p1), _h(p2), f=f))\r\n                        u1 = _0_0\r\n                    else:  # p2 is closest\r\n                        p1, u1 = p2, u2\r\n                    d2, y01, x01, _ = _d2yx4(point, p1, u1, kw)\r\n            if d2 < d:  # p1 is closer, y01 and x01 negated\r\n                c, u, d, dy, dx = p1, u1, d2, -y01, -x01\r\n        p1, u1 = p2, u2\r\n\r\n    a =  atan2b(dx, dy)  # azimuth\r\n    d =  hypot( dx, dy)\r\n    h = _h(c)\r\n    n =  nameof(point) or typename(nearestOn5)\r\n    if LatLon_and_kwds:\r\n        LL, kwds = _xkwds_pop2(LatLon_and_kwds, LatLon=None)\r\n        if LL is not None:\r\n            r = LL(c.lat, c.lon + u, **_xkwds(kwds, height=h, name=n))\r\n            return NearestOn3Tuple(r, d, a, name=n)\r\n    return NearestOn5Tuple(c.lat, c.lon + u, d, a, h, name=n)  # PYCHOK expected\r\n\r\n\r\ndef perimeterOf(points, closed=False, adjust=True, radius=R_M, wrap=True):\r\n    '''I{Approximate} the perimeter of a path, polygon. or composite.\r\n\r\n       @arg points: The path or polygon points or clips (C{LatLon}[],\r\n                    L{BooleanFHP} or L{BooleanGH}).\r\n       @kwarg closed: Optionally, close the path or polygon (C{bool}).\r\n       @kwarg adjust: Adjust the wrapped, unrolled longitudinal delta\r\n                      by the cosine of the mean latitude (C{bool}).\r\n       @kwarg radius: Mean earth radius (C{meter}).\r\n       @kwarg wrap: If C{True}, wrap or I{normalize} and unroll the\r\n                    B{C{points}} (C{bool}).\r\n\r\n       @return: Approximate perimeter (C{meter}, same units as\r\n                B{C{radius}}).\r\n\r\n       @raise PointsError: Insufficient number of B{C{points}}\r\n\r\n       @raise TypeError: Some B{C{points}} are not C{LatLon}.\r\n\r\n       @raise ValueError: Invalid B{C{radius}} or C{B{closed}=False} with\r\n                          C{B{points}} a composite.\r\n\r\n       @note: This perimeter is based on the L{pygeodesy.equirectangular4}\r\n              distance approximation and is ill-suited for regions exceeding\r\n              several hundred Km or Miles or with near-polar latitudes.\r\n\r\n       @see: Functions L{sphericalTrigonometry.perimeterOf} and\r\n             L{ellipsoidalKarney.perimeterOf}.\r\n    '''\r\n    def _degs(ps, c, a, w):  # angular edge lengths in degrees\r\n        Ps = LatLon2PsxyIter(ps, loop=1)  # wrap=w\r\n        p1, u = Ps[0], _0_0  # previous x2's unroll/wrap\r\n        for p2 in Ps.iterate(closed=c):\r\n            if w and c:\r\n                w = not Ps.looped\r\n            # apply previous x2's unroll/wrap'd to new x1\r\n            _, dy, dx, u = equirectangular4(p1.y, p1.x + u,\r\n                                            p2.y, p2.x,\r\n                                            adjust=a, limit=None,\r\n                                            wrap=w)  # PYCHOK non-seq\r\n            yield hypot(dx, dy)\r\n            p1 = p2\r\n\r\n    if _MODS.booleans.isBoolean(points):\r\n        if not closed:\r\n            notImplemented(None, closed=closed, points=_composite_)\r\n        d = points._sum1(perimeterOf, closed=True, adjust=adjust,\r\n                                      radius=radius, wrap=wrap)\r\n    else:\r\n        d = fsum(_degs(points, closed, adjust, wrap))\r\n    return degrees2m(d, radius=radius)\r\n\r\n\r\ndef quadOf(latS, lonW, latN, lonE, closed=False, LatLon=LatLon_, **LatLon_kwds):\r\n    '''Generate a quadrilateral path or polygon from two points.\r\n\r\n       @arg latS: Souther-nmost latitude (C{degrees90}).\r\n       @arg lonW: Western-most longitude (C{degrees180}).\r\n       @arg latN: Norther-nmost latitude (C{degrees90}).\r\n       @arg lonE: Eastern-most longitude (C{degrees180}).\r\n       @kwarg closed: Optionally, close the path (C{bool}).\r\n       @kwarg LatLon: Class to use (L{LatLon_}).\r\n       @kwarg LatLon_kwds: Optional, additional B{C{LatLon}}\r\n                           keyword arguments.\r\n\r\n       @return: Return a tuple of 4 or 5 B{C{LatLon}} instances\r\n                outlining the quadrilateral.\r\n\r\n       @see: Function L{boundsOf}.\r\n    '''\r\n    t = (LatLon(latS, lonW, **LatLon_kwds),\r\n         LatLon(latN, lonW, **LatLon_kwds),\r\n         LatLon(latN, lonE, **LatLon_kwds),\r\n         LatLon(latS, lonE, **LatLon_kwds))\r\n    if closed:\r\n        t += t[:1]\r\n    return t\r\n\r\n\r\n__all__ += _ALL_DOCS(_Array2LatLon, _Basequence)\r\n\r\n# **) MIT License\r\n#\r\n# Copyright (C) 2016-2026 -- mrJean1 at Gmail -- All Rights Reserved.\r\n#\r\n# Permission is hereby granted, free of charge, to any person obtaining a\r\n# copy of this software and associated documentation files (the \"Software\"),\r\n# to deal in the Software without restriction, including without limitation\r\n# the rights to use, copy, modify, merge, publish, distribute, sublicense,\r\n# and/or sell copies of the Software, and to permit persons to whom the\r\n# Software is furnished to do so, subject to the following conditions:\r\n#\r\n# The above copyright notice and this permission notice shall be included\r\n# in all copies or substantial portions of the Software.\r\n#\r\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\r\n# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r\n# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL\r\n# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR\r\n# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\r\n# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\r\n# OTHER DEALINGS IN THE SOFTWARE.\r\n"
  },
  {
    "path": "pygeodesy/props.py",
    "content": "\n# -*- coding: utf-8 -*-\n\nu'''Mutable, immutable and caching/memoizing properties and\ndeprecation decorators.\n\nTo enable C{DeprecationWarning}s from C{PyGeodesy}, set env var\nC{PYGEODESY_WARNINGS} to a non-empty string I{AND} run C{python}\nwith command line option C{-X dev} or with one of the C{-W}\nchoices, see callable L{DeprecationWarnings} below.\n'''\n\nfrom pygeodesy.basics import isclass as _isclass\nfrom pygeodesy.errors import _AssertionError, _AttributeError, \\\n                             _xcallable, _xkwds_get\nfrom pygeodesy.internals import _tailof, typename\nfrom pygeodesy.interns import MISSING, NN, _an_, _COMMASPACE_, \\\n                             _DEPRECATED_, _DOT_, _EQUALSPACED_, \\\n                             _immutable_, _invalid_, _module_, \\\n                             _N_A_, _NL_, _not_, _SPACE_, _UNDER_\n# from pygeodesy.named import callname  # _MODS, avoid circular\nfrom pygeodesy.lazily import _ALL_LAZY, _ALL_MODS as _MODS, \\\n                             _FOR_DOCS, _WARNINGS_X_DEV\n# from pygeodesy.streprs import Fmt  # _MODS\n\nfrom functools import wraps as _wraps\n\n__all__ = _ALL_LAZY.props\n__version__ = '25.12.31'\n\n_class_       = 'class'\n_DNL_         = _NL_ * 2  # PYCHOK used!\n_dont_use_    = _DEPRECATED_ + \", don't use.\"\n_function_    = 'function'\n_has_been_    = 'has been'  # PYCHOK used!\n_method_      = 'method'\n_not_an_inst_ = _not_(_an_, 'instance')\n\n\ndef _allPropertiesOf(Clas_or_inst, *Bases, **excls):\n    '''(INTERNAL) Yield all C{R/property/_RO}s at C{Clas_or_inst}\n       as specified in the C{Bases} arguments, except C{excls}.\n    '''\n    if _isclass(Clas_or_inst):\n        S = Clas_or_inst,  # just this Clas\n    else:  # class and super-classes of inst\n        try:\n            S = type(Clas_or_inst).__mro__[:-1]  # not object\n        except AttributeError:\n            raise\n            S = ()  # not an inst\n    B =  Bases or _PropertyBase\n    P = _property_RO___\n    for C in S:\n        for n, p in C.__dict__.items():\n            if isinstance(p, B) and p.name == n and not (\n               isinstance(p, P) or n in excls):\n                yield p\n\n\ndef _allPropertiesOf_n(n, Clas_or_inst, *Bases, **excls):\n    '''(INTERNAL) Assert the number of C{R/property/_RO}s at C{Clas_or_inst}.\n    '''\n    t = tuple(p.name for p in _allPropertiesOf(Clas_or_inst, *Bases, **excls))\n    if len(t) != n:\n        raise _AssertionError(_COMMASPACE_.join(t), Clas_or_inst,\n                          txt=_COMMASPACE_(len(t), _not_(n)))\n    return t\n\n\ndef _hasProperty(inst, name, *Classes):  # in .named._NamedBase._update\n    '''(INTERNAL) Check whether C{inst} has a C{P/property/_RO} by this C{name}.\n    '''\n    p = getattr(inst.__class__, name, None)  # walks __class__.__mro__\n    return bool(p and isinstance(p, Classes or _PropertyBase)\n                  and p.name == name)\n\n\n# def _isclass(obj):\n#     '''(INTERNAL) Get and overwrite C{_isclass}.\n#     '''\n#     _MODS.getmodule(__name__)._isclass = f = _MODS.basics.isclass\n#     return f(obj)\n\n\ndef _update_all(inst, *attrs, **Base_needed):\n    '''(INTERNAL) Zap all I{cached} L{property_RO}s, L{Property}s,\n       L{Property_RO}s and the named C{attrs} of an instance.\n\n       @return: The number of updates (C{int}), if any.\n    '''\n    if _isclass(inst):\n        raise _AssertionError(inst, txt=_not_an_inst_)\n    try:\n        d = inst.__dict__\n    except AttributeError:\n        return 0\n    u = len(d)\n    if u >  _xkwds_get(Base_needed, needed=0):\n        B = _xkwds_get(Base_needed, Base=_PropertyBase)\n        for p in _allPropertiesOf(inst, B):\n            p._update(inst)  # d.pop(p.name, None)\n\n        if attrs:\n            _update_attrs(inst, *attrs)  # remove attributes from inst.__dict__\n        u -= len(d)\n    return u  # updates\n\n\n# def _update_all_from(inst, other, **Base):\n#     '''(INTERNAL) Update all I{cached} L{Property}s and\n#        L{Property_RO}s of instance C{inst} from C{other}.\n#\n#        @return: The number of updates (C{int}), if any.\n#     '''\n#     if _isclass(inst):\n#         raise _AssertionError(inst, txt=_not_an_inst_)\n#     try:\n#         d = inst.__dict__\n#         f = other.__dict__\n#     except AttributeError:\n#         return 0\n#     u = len(f)\n#     if u:\n#         u = len(d)\n#         B = _xkwds_get(Base, Base=_PropertyBase)\n#         for p in _allPropertiesOf(inst, B):\n#             p._update_from(inst, other)\n#         u -= len(d)\n#     return u  # number of updates\n\n\ndef _update_attrs(inst, *attrs):\n    '''(INTERNAL) Zap all named C{attrs} of an instance.\n\n       @return: The number of updates (C{int}), if any.\n    '''\n    try:\n        d = inst.__dict__\n    except AttributeError:\n        return 0\n    u = len(d)\n    if u:  # zap attrs from inst.__dict__\n        _p = d.pop\n        for a in attrs:\n            _ = _p(a, MISSING)\n#           if _ is MISSING and not hasattr(inst, a):\n#               n = _MODS.named.classname(inst, prefixed=True)\n#               a = _DOT_(n, _SPACE_(a, _invalid_))\n#               raise _AssertionError(a, txt=repr(inst))\n#           _ = _p(a, None)  # redo: hasattr side effect\n        u -= len(d)\n        # assert u >= 0\n    return u  # number of named C{attrs} zapped\n\n\nclass _PropertyBase(property):\n    '''(INTERNAL) Base class for C{P/property/_RO}.\n    '''\n    def __init__(self, method, fget, fset, doc=NN):\n\n        _xcallable(getter=method, fget=fget)\n\n        self.method = method\n        self.name   = typename(method)\n        d = doc or method.__doc__\n        if _FOR_DOCS and d:\n            self.__doc__ = d   # PYCHOK no cover\n\n        property.__init__(self, fget, fset, self._fdel, d or _N_A_)\n\n    def _Error(self, kind, nameter, farg):\n        '''(INTERNAL) Return an C{AttributeError} instance.\n        '''\n        if farg:\n            n = _DOT_(self.name, typename(nameter))\n            n = _SPACE_(n, typename(farg))\n        else:\n            n = nameter\n        e = _SPACE_(kind, _MODS.named.classname(self))\n        return _AttributeError(e, txt=n)\n\n    def _fdel(self, inst):\n        '''Zap the I{cached/memoized} C{property} value.\n        '''\n        self._update(inst, None)   # PYCHOK no cover\n\n    def _fget(self, inst):\n        '''Get and I{cache/memoize} the C{property} value.\n        '''\n        try:  # to get the value cached in instance' __dict__\n            return inst.__dict__[self.name]\n        except KeyError:\n            # cache the value in the instance' __dict__\n            inst.__dict__[self.name] = val = self.method(inst)\n            return val\n\n    def _fset_error(self, inst, val):\n        '''Throws an C{AttributeError}, always.\n        '''\n        n = _MODS.named.classname(inst)\n        n = _DOT_(n, self.name)\n        n = _EQUALSPACED_(n, repr(val))\n        raise self._Error(_immutable_, n, None)\n\n    def _update(self, inst, *unused):\n        '''(INTERNAL) Zap the I{cached/memoized} C{inst.__dict__[name]} item.\n        '''\n        inst.__dict__.pop(self.name, None)  # name, NOT _name\n\n    def _update_from(self, inst, other):\n        '''(INTERNAL) Copy a I{cached/memoized} C{inst.__dict__[name]} item\n           from C{other.__dict__[name]} if present, otherwise zap it.\n        '''\n        n = self.name  # name, NOT _name\n        v = other.__dict__.get(n, MISSING)\n        if v is MISSING:\n            inst.__dict__.pop(n, None)\n        else:\n            inst.__dict__[n] = v\n\n    def deleter(self, fdel):\n        '''Throws an C{AttributeError}, always.\n        '''\n        raise self._Error(_invalid_, self.deleter, fdel)\n\n    def getter(self, fget):\n        '''Throws an C{AttributeError}, always.\n        '''\n        raise self._Error(_invalid_, self.getter, fget)\n\n    def setter(self, fset):\n        '''Throws an C{AttributeError}, always.\n        '''\n        raise self._Error(_immutable_, self.setter, fset)\n\n\nclass Property_RO(_PropertyBase):\n    # No __doc__ on purpose\n    def __init__(self, method, doc=NN):  # PYCHOK expected\n        '''New I{immutable}, I{caching}, I{memoizing} C{property} I{Factory}\n           to be used as C{decorator}.\n\n           @arg method: The callable being decorated as this C{property}'s C{getter},\n                        to be invoked only once.\n           @kwarg doc: Optional property documentation (C{str}).\n\n           @note: Like standard Python C{property} without a C{setter}, but with\n                  a more descriptive error message when set.\n\n           @see: Python 3's U{functools.cached_property<https://docs.Python.org/3/\n                 library/functools.html#functools.cached_property>} and U{-.cache\n                 <https://Docs.Python.org/3/library/functools.html#functools.cache>}\n                 to I{cache} or I{memoize} the property value.\n\n           @see: Luciano Ramalho, \"Fluent Python\", O'Reilly, 2016 p. 636\n                 Example 19-24 or 2022 p. 870 Example 22-28 and U{class\n                 Property<https://docs.Python.org/3/howto/descriptor.html>}.\n        '''\n        _fget = method if _FOR_DOCS else self._fget  # XXX force method.__doc__ to epydoc\n        _PropertyBase.__init__(self, method, _fget, self._fset_error)\n\n    def __get__(self, inst, *unused):  # PYCHOK 2 vs 3 args\n        if inst is None:\n            return self\n        try:  # to get the cached value immediately\n            return inst.__dict__[self.name]\n        except (AttributeError, KeyError):\n            return self._fget(inst)\n\n\nclass Property(Property_RO):\n    # No __doc__ on purpose\n    __init__ = Property_RO.__init__\n    '''New I{mutable}, I{caching}, I{memoizing} C{property} I{Factory}\n       to be used as C{decorator}.\n\n       @see: L{Property_RO} for more details.\n\n       @note: Unless and until the C{setter} is defined, this L{Property} behaves\n              like an I{immutable}, I{caching}, I{memoizing} L{Property_RO}.\n    '''\n\n    def setter(self, method):\n        '''Make this C{Property} I{mutable}.\n\n           @arg method: The callable being decorated as this C{Property}'s C{setter}.\n\n           @note: Setting a new property value always clears the previously I{cached}\n                  or I{memoized} value I{after} invoking the B{C{method}}.\n        '''\n        def _fset(inst, val):\n            '''Set and I{cache}, I{memoize} the C{property} value.\n            '''\n            _ = method(inst, val)\n            self._update(inst)  # un-cache this item\n\n        return self._setters(method, _fset)\n\n    def setter_(self, method):\n        '''Make this C{Property} I{mutable}.\n\n           @arg method: The callable being decorated as this C{Property}'s C{setter}\n                        and returning the new property value to be I{cached} or\n                        I{memoized}.\n        '''\n        def _fset(inst, val):\n            '''Set and I{cache}, I{memoize} the C{property} value.\n            '''\n            val = method(inst, val)\n            inst.__dict__[self.name] = val\n\n        return self._setters(method, _fset)\n\n    def _setters(self, method, _fset):\n        _xcallable(setter=method, fset=_fset)\n        if _FOR_DOCS:  # XXX force method.__doc__ into epydoc\n            _PropertyBase.__init__(self, self.method, self.method, method)\n        else:  # class Property <https://docs.Python.org/3/howto/descriptor.html>\n            _PropertyBase.__init__(self, self.method, self._fget, _fset)\n        return self\n\n\nclass property_RO(_PropertyBase):\n    # No __doc__ on purpose\n    _uname = NN\n\n    def __init__(self, method, doc=NN):  # PYCHOK expected\n        '''New I{immutable}, standard C{property} to be used as C{decorator}.\n\n           @arg method: The callable being decorated as C{property}'s C{getter}.\n           @kwarg doc: Optional property documentation (C{str}).\n\n           @note: Like standard Python C{property} without a setter, but with\n                  a more descriptive error message when set.\n\n           @see: L{Property_RO}.\n        '''\n        _PropertyBase.__init__(self, method, method, self._fset_error, doc=doc)\n        self._uname = NN(_UNDER_, self.name)  # actual attr UNDER<name>\n\n    def _update(self, inst, *Clas):  # PYCHOK signature\n        '''(INTERNAL) Zap the I{cached} C{B{inst}.__dict__[_name]} item.\n        '''\n        uname = self._uname\n        if uname in inst.__dict__:\n            if Clas:  # overrides inst.__class__\n                d = Clas[0].__dict__.get(uname, MISSING)\n            else:\n                d = getattr(type(inst), uname, MISSING)\n#               if d is MISSING:  # XXX superfluous\n#                   for c in type(inst).__mro__[:-1]:\n#                       if uname in c.__dict__:\n#                           d = c.__dict__[uname]\n#                           break\n            if d is None:  # remove inst value\n                inst.__dict__.pop(uname)\n\n\nclass _property_RO___(_PropertyBase):\n    # No __doc__ on purpose\n\n    def __init__(self, method, doc=NN):  # PYCHOK expected\n        '''New C{property_ROnce} or C{property_ROver}, holding a singleton value as\n           class attribute for all instances of that class and overwriting C{self},\n           the C{property_ROver} instance in the 1st invokation.\n\n           @see: L{property_RO} for further details.\n        '''\n        _PropertyBase.__init__(self, method, self._fget, self._fset_error, doc=doc)\n\n    def _fdel(self, *unused):  # PYCHOK no cover\n        '''Silently ignored, always.\n        '''\n        pass\n\n    def _update(self, *unused):  # PYCHOK signature\n        '''(INTERNAL) No-op, ignore updates.\n        '''\n        pass\n\n\nclass property_ROnce(_property_RO___):\n    # No __doc__ on purpose\n\n    def _fget(self, inst):\n        '''Get the C{property} value, only I{once} and memoize/cache it.\n        '''\n        try:\n            v = self._val\n        except AttributeError:\n            v = self._val = self.method(inst)\n        return v\n\n\nclass property_ROver(_property_RO___):\n    # No __doc__ on purpose\n\n    def _fget(self, inst):\n        '''Get the C{property} value I{once} and overwrite C{self},\n           this C{property} instance in the (super-)class of C{self}\n           where this property is define as a L{property_ROver}.\n        '''\n        v = self.method(inst)\n        n = self.name\n        C = type(inst)\n        for c in C.__mro__:  # [:-1]\n            if getattr(c, n, None) is self:\n                setattr(c, n, v)  # overwrite property_ROver\n                break\n        else:\n            n = _DOT_(typename(C), n)\n            raise _AssertionError(_EQUALSPACED_(n, v))\n        return v\n\n\nclass _NamedProperty(property):  # in .named\n    '''Class C{property} with a C{.name} attribute.\n    '''\n    @Property_RO\n    def name(self):\n        '''Get the name of this C{property} (C{str}).\n        '''\n        return typename(self.fget)\n\n\ndef property_doc_(doc):\n    '''Decorator for a standard C{property} with basic documentation.\n\n       @arg doc: The property documentation (C{str}).\n\n       @example:\n\n        >>>class Clas(object):\n        >>>\n        >>>     @property_doc_(\"documentation text.\")\n        >>>     def name(self):\n        >>>         ...\n        >>>\n        >>>     @name.setter\n        >>>     def name(self, value):\n        >>>         ...\n    '''\n    # See Luciano Ramalho, \"Fluent Python\", O'Reilly, 2016 p. 212+\n    # Example 7-23 or 2022 p. 331+ Example 9-22 and <https://\n    # Python-3-Patterns-Idioms-Test.ReadTheDocs.io/en/latest/PythonDecorators.html>\n\n    def _documented_property(method):\n        '''(INTERNAL) Return the documented C{property}.\n        '''\n        t = 'get and set' if doc.startswith(_SPACE_) else NN\n        return _NamedProperty(method, None, None, NN('Property to ', t, doc))\n\n    return _documented_property\n\n\ndef _deprecated(call, kind, qual_d):\n    '''(INTERNAL) Decorator for DEPRECATED functions, methods, etc.\n\n       @see: Brett Slatkin, \"Effective Python\", 2019 page 105, 2nd\n             ed, Addison-Wesley.\n    '''\n    doc = _DEPRECATEDof(call)\n\n    @_wraps(call)  # PYCHOK self?\n    def _deprecated_call(*args, **kwds):\n        if qual_d:  # function\n            q =  qual_d\n        elif args:  # method\n            q = _qualified(args[0], typename(call))\n        else:  # PYCHOK no cover\n            q =  typename(call)\n        _throwarning(kind, q, doc)\n        return call(*args, **kwds)\n\n    return _deprecated_call\n\n\ndef deprecated_class(cls_or_class):\n    '''Use inside __new__ or __init__ of a DEPRECATED class.\n\n       @arg cls_or_class: The class (C{cls} or C{Class}).\n\n       @note: NOT a decorator!\n    '''\n    if _WARNINGS_X_DEV:\n        q = _DOT_(cls_or_class.__module__, typename(cls_or_class))\n        _throwarning(_class_, q, cls_or_class.__doc__)  # _DDOC_\n\n\ndef deprecated_function(call):\n    '''Decorator for a DEPRECATED function.\n\n       @arg call: The deprecated function (C{callable}).\n\n       @return: The B{C{call}} DEPRECATED.\n    '''\n    return _deprecated(call, _function_, _DOT_(\n                       call.__module__, typename(call))) if \\\n           _WARNINGS_X_DEV else call\n\n\ndef deprecated_method(call):\n    '''Decorator for a DEPRECATED method.\n\n       @arg call: The deprecated method (C{callable}).\n\n       @return: The B{C{call}} DEPRECATED.\n    '''\n    return _deprecated(call, _method_, NN) if _WARNINGS_X_DEV else call\n\n\ndef _deprecated_module(name):  # PYCHOK no cover\n    '''(INTERNAL) Callable within a DEPRECATED module.\n    '''\n    if _WARNINGS_X_DEV:\n        _throwarning(_module_, name, _dont_use_)\n\n\ndef _DEPRECATEDof(obj):\n    '''(INTERNAL) Get uniform DEPRECATED __doc__ string.\n    '''\n    try:\n        d = obj.__doc__.strip()\n        i = d.find(_DEPRECATED_)\n    except AttributeError:\n        i = -1\n    return _DOT_(_DEPRECATED_, NN) if i < 0 else d[i:]\n\n\nif _WARNINGS_X_DEV:\n    class deprecated_property(_PropertyBase):\n        '''Decorator for a DEPRECATED C{property} or C{Property}.\n        '''\n        def __init__(self, method):\n            '''Decorator for a DEPRECATED C{property} or C{Property} getter.\n            '''\n            doc = _DEPRECATEDof(method)\n\n            def _fget(inst):  # PYCHOK no cover\n                '''Get the C{property} or C{Property} value.\n                '''\n                q = _qualified(inst, self.name)\n                _throwarning(typename(property), q, doc)\n                return self.method(inst)  # == method\n\n            _PropertyBase.__init__(self, method, _fget, None, doc=doc)\n\n        def setter(self, method):\n            '''Decorator for a DEPRECATED C{property} or C{Property} setter.\n\n               @arg method: The callable being decorated as this C{Property}'s C{setter}.\n\n               @note: Setting a new property value always clears the previously I{cached}\n                      or I{memoized} value I{after} invoking the B{C{method}}.\n            '''\n            if not callable(method):\n                _PropertyBase.setter(self, method)  # PYCHOK no cover\n\n            if _FOR_DOCS:  # XXX force method.__doc__ into epydoc\n                _PropertyBase.__init__(self, self.method, self.method, method)\n            else:\n\n                def _fset(inst, val):\n                    '''Set the C{property} or C{Property} value.\n                    '''\n                    q = _qualified(inst, self.name)\n                    _throwarning(typename(property), q, _DEPRECATEDof(method))\n                    method(inst, val)\n                    # self._update(inst)  # un-cache this item\n\n                # class Property <https://docs.Python.org/3/howto/descriptor.html>\n                _PropertyBase.__init__(self, self.method, self._fget, _fset)\n            return self\n\nelse:  # PYCHOK no cover\n    class deprecated_property(property):  # PYCHOK expected\n        '''Decorator for a DEPRECATED C{property} or C{Property}.\n        '''\n        pass\n\ndeprecated_Property = deprecated_property\n\n\ndef deprecated_Property_RO(method):\n    '''Decorator for a DEPRECATED L{Property_RO}.\n\n       @arg method: The C{Property_RO.fget} method (C{callable}).\n\n       @return: The B{C{method}} DEPRECATED.\n    '''\n    return _deprecated_RO(method, Property_RO)\n\n\ndef deprecated_property_RO(method):\n    '''Decorator for a DEPRECATED L{property_RO}.\n\n       @arg method: The C{property_RO.fget} method (C{callable}).\n\n       @return: The B{C{method}} DEPRECATED.\n    '''\n    return _deprecated_RO(method, property_RO)\n\n\ndef _deprecated_RO(method, _RO):\n    '''(INTERNAL) Create a DEPRECATED C{property_RO} or C{Property_RO}.\n    '''\n    doc = _DEPRECATEDof(method)\n\n    if _WARNINGS_X_DEV:\n\n        class _Deprecated_RO(_PropertyBase):\n            __doc__ = doc\n\n            def __init__(self, method):\n                _PropertyBase.__init__(self, method, self._fget, self._fset_error, doc=doc)\n\n            def _fget(self, inst):  # PYCHOK no cover\n                q = _qualified(inst, self.name)\n                _throwarning(typename(_RO), q, doc)\n                return self.method(inst)\n\n        return _Deprecated_RO(method)\n    else:  # PYCHOK no cover\n        return _RO(method, doc=doc)\n\n\ndef _qualified(inst, name):\n    '''(INTERNAL) Fully qualify a name.\n    '''\n    # _DOT_(inst.classname, name), not _DOT_(inst.named4, name)\n    t =  type(inst)\n    q = _DOT_(t.__module__, typename(t), name)  # _DMODULE_\n    return q\n\n\nclass DeprecationWarnings(object):\n    '''(INTERNAL) Handle C{DeprecationWaring}s.\n    '''\n    _Warnings = 0\n\n    def __call__(self):  # for backward compatibility\n        '''Have any C{DeprecationWarning}s been reported or raised?\n\n           @return: The number of C{DeprecationWarning}s (C{int}) so\n                    far or C{None} if not enabled.\n\n           @note: To get C{DeprecationWarning}s if any, run C{python}\n                  with env var C{PYGEODESY_WARNINGS} set to a non-empty\n                  string I{AND} use C{python[3]} command line option\n                  C{-X dev}, C{-W always} or C{-W error}, etc.\n        '''\n        return self.Warnings\n\n    @property_ROver\n    def _Fmt(self):\n        '''Get C{streprs.Fmt}, I{once}.\n        '''\n        return _MODS.streprs.Fmt\n\n    @property_ROver\n    def _stacklevel3(self):\n        '''Get C{dict(stacklevel=3)}, I{once}.\n        '''\n        return dict(stacklevel=3)\n\n    def throw(self, kind, name, doc, **stacklevel):  # stacklevel=3\n        '''Report or raise a C{DeprecationWarning}.\n\n           @arg kind: Warning kind (C{str}), C{\"method\"}, C{\"funtion\"}, ...\n           @arg name: Qualified name (C{str}) of B{C{kind}}.\n           @arg doc: The __doc__ (C{str}) of B{C{kind}}, C{\"DEPRECATED ...}.\n        '''\n        link = _tailof(name) or name\n        if link is not name:  # make \"link<name>\"\n            link = self._Fmt.ANGLE(link, name)\n        link =  self._Fmt.CURLY(L=link)  # \"L{link}\"\n        text =  doc.split(_DNL_, 1)[0].strip()\n        text = _SPACE_(kind, link, _has_been_, *text.split())\n        kwds =  stacklevel if stacklevel else self._stacklevel3\n        # XXX invoke warn or raise DeprecationWarning(text)\n        self._warn(text, category=DeprecationWarning, **kwds)\n        self._Warnings += 1\n\n    @property_ROver\n    def _warn(self):\n        '''Get Python's C{warnings.warn} function, I{once}.\n        '''\n        from warnings import warn as w\n        return w\n\n    @property_RO\n    def Warnings(self):\n        '''Get the number of C{DeprecationWarning}s (C{int}) so\n           far or C{None} if not enabled.\n        '''\n        return self._Warnings if _WARNINGS_X_DEV else None\n\nif not _FOR_DOCS:  # PYCHOK force epydoc\n    DeprecationWarnings = DeprecationWarnings()  # singleton\n    _throwarning        = DeprecationWarnings.throw\n# del _FOR_DOCS\n\n# **) MIT License\n#\n# Copyright (C) 2016-2026 -- mrJean1 at Gmail -- All Rights Reserved.\n#\n# Permission is hereby granted, free of charge, to any person obtaining a\n# copy of this software and associated documentation files (the \"Software\"),\n# to deal in the Software without restriction, including without limitation\n# the rights to use, copy, modify, merge, publish, distribute, sublicense,\n# and/or sell copies of the Software, and to permit persons to whom the\n# Software is furnished to do so, subject to the following conditions:\n#\n# The above copyright notice and this permission notice shall be included\n# in all copies or substantial portions of the Software.\n#\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL\n# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR\n# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\n# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n# OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "pygeodesy/resections.py",
    "content": "\n# -*- coding: utf-8 -*-\n\nu'''3-Point resection functions L{cassini}, L{collins5}, L{pierlot}, L{pierlotx} and\nL{tienstra7}, survey functions L{snellius3} and L{wildberger3} and triangle functions\nL{triAngle}, L{triAngle5}, L{triSide}, L{triSide2} and L{triSide4}.\n\n@note: Functions L{pierlot} and L{pierlotx} are transcoded to Python with permission from\n       U{triangulationPierlot<http://www.Telecom.ULg.ac.BE/triangulation/doc/total_8c.html>} and\n       U{Pierlot<http://www.Telecom.ULg.ac.BE/publi/publications/pierlot/Pierlot2014ANewThree>}.\n'''\n# make sure int/int division yields float quotient\nfrom __future__ import division as _; del _  # noqa: E702 ;\n\nfrom pygeodesy.basics import map1, map2, _zip,  _ALL_LAZY, typename\nfrom pygeodesy.constants import EPS, EPS0, EPS02, INT0, PI, PI2, PI_2, PI_4, \\\n                               _0_0, _0_5, _1_0, _N_1_0, _2_0, _N_2_0, _4_0, \\\n                               _16_0, _180_0, _360_0, isnear0, _over, _umod_360\nfrom pygeodesy.errors import _and, _or, TriangleError, _ValueError, _xcallable, \\\n                             _xkwds, _xkwds_pop2\nfrom pygeodesy.fmath import favg, Fdot, Fdot_, fidw, _fma, fmean, hypot, hypot2_\nfrom pygeodesy.fsums import _Fsumf_, fsumf_, fsum1, fsum1f_\n# from pygeodesy.internals import typename  # from .basics\nfrom pygeodesy.interns import _a_, _A_, _area_, _b_, _B_, _c_, _C_, _coincident_, \\\n                              _colinear_, _d_, _invalid_, _negative_, _rIn_, _SPACE_\n# from pygeodesy.lazily import _ALL_LAZY  # from .basics\nfrom pygeodesy.named import _NamedTuple, _Pass,  Fmt\n# from pygeodesy.streprs import Fmt  # from .named\nfrom pygeodesy.units import Degrees, Distance, Radians\nfrom pygeodesy.utily import acos1, asin1, atan2, sincos2, sincos2_, \\\n                            sincos2d, sincos2d_\nfrom pygeodesy.vector3d import _otherV3d, Vector3d\n\nfrom math import cos, degrees, fabs, radians, sin, sqrt\n\n__all__ = _ALL_LAZY.resections\n__version__ = '25.05.12'\n\n_concyclic_ = 'concyclic'\n_PA_        = 'PA'\n_PB_        = 'PB'\n_PC_        = 'PC'\n_pointH_    = 'pointH'\n_pointP_    = 'pointP'\n_radA_      = 'radA'\n_radB_      = 'radB'\n_radC_      = 'radC'\n\n\nclass Collins5Tuple(_NamedTuple):\n    '''5-Tuple C{(pointP, pointH, a, b, c)} with survey C{pointP}, auxiliary\n       C{pointH}, each an instance of B{C{pointA}}'s (sub-)class and triangle\n       sides C{a}, C{b} and C{c} in C{meter}, conventionally.\n    '''\n    _Names_ = (_pointP_, _pointH_, _a_,      _b_,      _c_)\n    _Units_ = (_Pass,    _Pass,     Distance, Distance, Distance)\n\n\nclass ResectionError(_ValueError):\n    '''Error raised for issues in L{pygeodesy.resections}.\n    '''\n    pass\n\n\nclass Survey3Tuple(_NamedTuple):\n    '''3-Tuple C{(PA, PB, PC)} with distance from survey point C{P} to each of\n       the triangle corners C{A}, C{B} and C{C} in C{meter}, conventionally.\n    '''\n    _Names_ = (_PA_,     _PB_,     _PC_)\n    _Units_ = ( Distance, Distance, Distance)\n\n\nclass Tienstra7Tuple(_NamedTuple):\n    '''7-Tuple C{(pointP, A, B, C, a, b, c)} with survey C{pointP}, interior\n       triangle angles C{A}, C{B} and C{C} in C{degrees} and triangle sides\n       C{a}, C{b} and C{c} in C{meter}, conventionally.\n    '''\n    _Names_ = (_pointP_, _A_,     _B_,     _C_,     _a_,      _b_,      _c_)\n    _Units_ = (_Pass,     Degrees, Degrees, Degrees, Distance, Distance, Distance)\n\n\nclass TriAngle5Tuple(_NamedTuple):\n    '''5-Tuple C{(radA, radB, radC, rIn, area)} with the interior angles at\n       triangle corners C{A}, C{B} and C{C} in C{radians}, the C{InCircle}\n       radius C{rIn} aka C{inradius} in C{meter} and the triangle C{area}\n       in C{meter} I{squared}, conventionally.\n    '''\n    _Names_ = (_radA_,  _radB_,  _radC_,  _rIn_,     _area_)\n    _Units_ = ( Radians, Radians, Radians, Distance, _Pass)\n\n\nclass TriSide2Tuple(_NamedTuple):\n    '''2-Tuple C{(a, radA)} with triangle side C{a} in C{meter}, conventionally\n       and angle C{radA} at the opposite triangle corner in C{radians}.\n    '''\n    _Names_ = (_a_,      _radA_)\n    _Units_ = ( Distance, Radians)\n\n\nclass TriSide4Tuple(_NamedTuple):\n    '''4-Tuple C{(a, b, radC, d)} with interior angle C{radC} at triangle corner\n       C{C} in C{radians}with the length of triangle sides C{a} and C{b} and\n       with triangle height C{d} perpendicular to triangle side C{c}, in the\n       same units as triangle sides C{a} and C{b}.\n    '''\n    _Names_ = (_a_,      _b_,      _radC_,  _d_)\n    _Units_ = ( Distance, Distance, Radians, Distance)\n\n\ndef _ABC3(useZ, pointA, pointB, pointC):\n    '''(INTERNAL) Helper for L{cassini} and L{tienstra7}.\n    '''\n    return (_otherV3d(useZ=useZ, pointA=pointA),\n            _otherV3d(useZ=useZ, pointB=pointB),\n            _otherV3d(useZ=useZ, pointC=pointC))\n\n\ndef _B3(useZ, point1, point2, point3):\n    '''(INTERNAL) Helper for L{pierlot} and L{pierlotx}.\n    '''\n    return (_otherV3d(useZ=useZ, point1=point1),\n            _otherV3d(useZ=useZ, point2=point2),\n            _otherV3d(useZ=useZ, point3=point3))\n\n\ndef cassini(pointA, pointB, pointC, alpha, beta, useZ=False, **Clas_and_kwds):\n    '''3-Point resection using U{Cassini<https://NL.WikiPedia.org/wiki/Achterwaartse_insnijding>}'s method.\n\n       @arg pointA: First point (C{Cartesian}, L{Vector3d}, C{Vector3Tuple},\n                    C{Vector4Tuple} or C{Vector2Tuple} if C{B{useZ}=False}).\n       @arg pointB: Second point (C{Cartesian}, L{Vector3d}, C{Vector3Tuple},\n                    C{Vector4Tuple} or C{Vector2Tuple} if C{B{useZ}=False}).\n       @arg pointC: Center point (C{Cartesian}, L{Vector3d}, C{Vector3Tuple},\n                    C{Vector4Tuple} or C{Vector2Tuple} if C{B{useZ}=False}).\n       @arg alpha: Angle subtended by triangle side B{C{pointA}} to B{C{pointC}}\n                   (C{degrees}, non-negative).\n       @arg beta: Angle subtended by triangle side B{C{pointB}} to B{C{pointC}}\n                  (C{degrees}, non-negative).\n       @kwarg useZ: If C{True}, use and interpolate the Z component, otherwise\n                    force C{z=INT0} (C{bool}).\n       @kwarg Clas_and_kwds: Optional class C{B{Clas}=B{pointA}.classof} to\n                   return the survey point with optionally other B{C{Clas}}\n                   keyword arguments to instantiate the survey point.\n\n       @note: Typically, B{C{pointC}} is between B{C{pointA}} and B{C{pointB}}.\n\n       @return: The survey point, an instance of B{C{Clas}} or B{C{pointA}}'s\n                (sub-)class.\n\n       @raise ResectionError: Near-coincident, -colinear or -concyclic points\n                              or negative or invalid B{C{alpha}} or B{C{beta}}.\n\n       @raise TypeError: Invalid B{C{pointA}}, B{C{pointB}} or B{C{pointM}}.\n\n       @see: U{Three Point Resection Problem<https://Dokumen.tips/documents/\n             three-point-resection-problem-introduction-kaestner-burkhardt-method.html>}\n             and functions L{collins5}, L{pierlot}, L{pierlotx} and L{tienstra7}.\n    '''\n\n    def _H(A, C, sa):\n        s, c = sincos2d(sa)\n        if isnear0(s):\n            raise ValueError(_or(_coincident_, _colinear_))\n        t = s, c, c\n        x = Fdot(t, A.x,  C.y, -A.y).fover(s)\n        y = Fdot(t, A.y, -C.x,  A.x).fover(s)\n        return x, y\n\n    A, B, C = _ABC3(useZ, pointA, pointB, pointC)\n    try:\n        sa, sb = _noneg(alpha, beta)\n        if fsumf_(_360_0, -sa, -sb) < EPS0:\n            raise ValueError(_colinear_)\n\n        x1, y1 = _H(A, C,  sa)\n        x2, y2 = _H(B, C, -sb)\n\n        x = x1 - x2\n        y = y1 - y2\n        if isnear0(x) or isnear0(y):\n            raise ValueError(_SPACE_(_concyclic_, (x, y)))\n\n        m = y / x\n        n = x / y\n        N = n + m\n        if isnear0(N):\n            raise ValueError(_SPACE_(_concyclic_, (m, n, N)))\n\n        t =  n, m, _1_0, _N_1_0\n        x =  Fdot(t, C.x, x1, C.y, y1).fover(N)\n        y =  Fdot(t, y1, C.y, C.x, x1).fover(N)\n        z = _zidw(x, y, useZ, A, B, C)\n        return _Clas(cassini, pointA, Clas_and_kwds, x, y, z)\n\n    except (TypeError, ValueError) as x:\n        raise ResectionError(pointA=pointA, pointB=pointB, pointC=pointC,\n                             alpha=alpha, beta=beta, cause=x)\n\n\ndef _Clas(which, point, Clas_and_kwds, *args):\n    '''(INTERNAL) Return a C{B{Clas}=point.classof} survey point.\n    '''\n    Clas, kwds = _xkwds_pop2(Clas_and_kwds, Clas=point.classof)\n    return Clas(*args, **_xkwds(kwds, name=typename(which)))\n\n\ndef collins5(pointA, pointB, pointC, alpha, beta, useZ=False, **Clas_and_kwds):\n    '''3-Point resection using U{Collins<https://Dokumen.tips/documents/\n       three-point-resection-problem-introduction-kaestner-burkhardt-method.html>}' method.\n\n       @arg pointA: First point (C{Cartesian}, L{Vector3d}, C{Vector3Tuple},\n                    C{Vector4Tuple} or C{Vector2Tuple} if C{B{useZ}=False}).\n       @arg pointB: Second point (C{Cartesian}, L{Vector3d}, C{Vector3Tuple},\n                    C{Vector4Tuple} or C{Vector2Tuple} if C{B{useZ}=False}).\n       @arg pointC: Center point (C{Cartesian}, L{Vector3d}, C{Vector3Tuple},\n                    C{Vector4Tuple} or C{Vector2Tuple} if C{B{useZ}=False}).\n       @arg alpha: Angle subtended by triangle side C{b} from B{C{pointA}} to\n                   B{C{pointC}} (C{degrees}, non-negative).\n       @arg beta: Angle subtended by triangle side C{a} from B{C{pointB}} to\n                  B{C{pointC}} (C{degrees}, non-negative).\n       @kwarg useZ: If C{True}, use and interpolate the Z component, otherwise\n                    force C{z=INT0} (C{bool}).\n       @kwarg Clas_and_kwds: Optional class C{B{Clas}=B{pointA}.classof} to\n                   return the survey point with optionally other B{C{Clas}}\n                   keyword arguments to instantiate the survey point.\n\n       @note: Typically, B{C{pointC}} is between B{C{pointA}} and B{C{pointB}}.\n\n       @return: L{Collins5Tuple}C{(pointP, pointH, a, b, c)} with survey C{pointP},\n                auxiliary C{pointH}, each an instance of B{C{Clas}} or B{C{pointA}}'s\n                (sub-)class and triangle sides C{a}, C{b} and C{c} in C{meter},\n                conventionally.\n\n       @raise ResectionError: Near-coincident, -colinear or -concyclic points\n                              or negative or invalid B{C{alpha}} or B{C{beta}}.\n\n       @raise TypeError: Invalid B{C{pointA}}, B{C{pointB}} or B{C{pointM}}.\n\n       @see: U{Collins' methode<https://NL.WikiPedia.org/wiki/Achterwaartse_insnijding>}\n             and functions L{cassini}, L{pierlot}, L{pierlotx} and L{tienstra7}.\n    '''\n\n    def _azi_len2(A, B, pi2=PI2):\n        v = B.minus(A)\n        r = atan2(v.x, v.y)\n        if r < 0 and pi2:\n            r += pi2\n        return r, v.length\n\n    def _xyz(d, r, A, B, C, useZ):\n        s, c = sincos2(r)\n        x = _fma(d, s, A.x)\n        y = _fma(d, c, A.y)\n        z = _zidw(x, y, useZ, A, B, C)\n        return x, y, z\n\n    A, B, C = _ABC3(useZ, pointA, pointB, pointC)\n    try:\n        ra, rb = t = radians(alpha), radians(beta)\n        if min(t) < 0:\n            raise ValueError(_negative_)\n\n        sra, srH = sin(ra), sin(ra + rb - PI)  # rH = PI - ((PI - ra) + (PI - rb))\n        if isnear0(sra) or isnear0(srH):\n            raise ValueError(_or(_coincident_, _colinear_, _concyclic_))\n\n#       za, a = _azi_len2(C, B)\n        zb, b = _azi_len2(C, A)\n        zc, c = _azi_len2(A, B, 0)\n\n#       d =  c * sin(PI - rb) / srH  # B.minus(H).length\n        d =  c * sin(PI - ra) / srH  # A.minus(H).length\n        r =  zc + PI - rb  # zh = zc + (PI - rb)\n        H = _xyz(d, r, A, B, C, useZ)\n\n        zh, _ = _azi_len2(C, Vector3d(*H))\n\n#       d =  a * sin(za - zh) / sin(rb)  # B.minus(P).length\n        d =  b * sin(zb - zh) / sra  # A.minus(P).length\n        r =  zh - ra  # zb - PI + (PI - ra - (zb - zh))\n        P = _xyz(d, r, A, B, C, useZ)\n\n        P = _Clas(collins5, pointA, Clas_and_kwds, *P)\n        H = _Clas(collins5, pointA, Clas_and_kwds, *H)\n        a =  B.minus(C).length\n        return Collins5Tuple(P, H, a, b, c, name=typename(collins5))\n\n    except (TypeError, ValueError) as x:\n        raise ResectionError(pointA=pointA, pointB=pointB, pointC=pointC,\n                             alpha=alpha, beta=beta, cause=x)\n\n\ndef _noneg(*xs):\n    '''(INTERNAL) Return non-negative C{float}s.\n    '''\n    xs = tuple(map(float, xs))\n    if min(xs) < 0:\n        raise ValueError(_negative_)\n    return xs\n\n\ndef pierlot(point1, point2, point3, alpha12, alpha23, useZ=False, eps=EPS,\n                                                    **Clas_and_kwds):\n    '''3-Point resection using U{Pierlot<http://www.Telecom.ULg.ac.BE/publi/publications/\n       pierlot/Pierlot2014ANewThree>}'s method C{ToTal} with I{approximate} limits for\n       the (pseudo-)singularities.\n\n       @arg point1: First point (C{Cartesian}, L{Vector3d}, C{Vector3Tuple},\n                    C{Vector4Tuple} or C{Vector2Tuple} if C{B{useZ}=False}).\n       @arg point2: Second point (C{Cartesian}, L{Vector3d}, C{Vector3Tuple},\n                    C{Vector4Tuple} or C{Vector2Tuple} if C{B{useZ}=False}).\n       @arg point3: Third point (C{Cartesian}, L{Vector3d}, C{Vector3Tuple},\n                    C{Vector4Tuple} or C{Vector2Tuple} if C{B{useZ}=False}).\n       @arg alpha12: Angle subtended from B{C{point1}} to B{C{point2}} or\n                     B{C{alpha2 - alpha1}} (C{degrees}).\n       @arg alpha23: Angle subtended from B{C{point2}} to B{C{point3}} or\n                     B{C{alpha3 - alpha2}}(C{degrees}).\n       @kwarg useZ: If C{True}, interpolate the survey point's Z component,\n                    otherwise use C{z=INT0} (C{bool}).\n       @kwarg eps: Tolerance for C{cot}angent (pseudo-)singularities (C{float}).\n       @kwarg Clas_and_kwds: Optional class C{B{Clas}=B{point1}.classof} to\n                   return the survey point with optionally other B{C{Clas}}\n                   keyword arguments to instantiate the survey point.\n\n       @note: Typically, B{C{point1}}, B{C{point2}} and B{C{point3}} are ordered\n              by angle, modulo 360, counter-clockwise.\n\n       @return: The survey (or robot) point, an instance of B{C{Clas}} or B{C{point1}}'s\n                (sub-)class.\n\n       @raise ResectionError: Near-coincident, -colinear or -concyclic points\n                              or invalid B{C{alpha12}} or B{C{alpha23}} or\n                              non-positive B{C{eps}}.\n\n       @raise TypeError: Invalid B{C{point1}}, B{C{point2}} or B{C{point3}}.\n\n       @see: I{Pierlot}'s C function U{triangulationPierlot<http://www.Telecom.ULg.ac.BE/\n             triangulation/doc/total_8c_source.html>}, U{V. Pierlot, M. Van Droogenbroeck,\n             \"A New Three Object Triangulation Algorithm for Mobile Robot Positioning\"\n             <https://ORBi.ULiege.BE/bitstream/2268/157469/1/Pierlot2014ANewThree.pdf>},\n             U{Vincent Pierlot, Marc Van Droogenbroeck, \"18 Triangulation Algorithms for 2D\n             Positioning (also known as the Resection Problem)\"<http://www.Telecom.ULg.ac.BE/\n             triangulation>} and functions L{pierlotx}, L{cassini}, L{collins5} and L{tienstra7}.\n    '''\n\n    def _cot(s, c):  # -eps < I{approximate} cotangent < eps\n        if eps > 0:\n            return c / (min(s, -eps) if s < 0 else max(s, eps))\n        t = Fmt.PARENSPACED(eps=eps)\n        raise ValueError(_SPACE_(t, _invalid_))\n\n    B1, B2, B3 = _B3(useZ, point1, point2, point3)\n    try:\n        xyz = _pierlot3(B1, B2, B3, alpha12, alpha23, useZ, _cot)\n        return _Clas(pierlot, point1, Clas_and_kwds, *xyz)\n\n    except (TypeError, ValueError) as x:\n        raise ResectionError(point1=point1, point2=point2, point3=point3,\n                             alpha12=alpha12, alpha23=alpha23, eps=eps, cause=x)\n\n\ndef _pierlot3(B1, B2, B3, a12, a23, useZ, _cot):\n    '''(INTERNAL) Shared L{pierlot} and L{pierlotx}.\n    '''\n    x1_, y1_, _ = B1.minus(B2).xyz3\n    x3_, y3_, _ = B3.minus(B2).xyz3\n\n    s12, c12, s23, c23 = sincos2d_(a12, a23)\n    # cot31 = (1 - cot12 * cot23) / (cot12 + cot32)\n    #       = (1 - c12 / s12 * c23 / s23) / (c12 / s12 + c23 / s23)\n    #       = (1 - (c12 * c23) / (s12 * s23)) / (c12 * s23 + s12 * c23) / (s12 * s23)\n    #       = (s12 * s23 - c12 * c23) / (c12 * s23 + s12 * c23)\n    #       =  c31 / s31\n    cot31 = _cot(fsum1f_(c12 * s23,  s12 * c23),  # s31\n                 fsum1f_(s12 * s23, -c12 * c23))  # c31\n\n    K = _Fsumf_(x3_ * x1_,  cot31 * (y3_ * x1_),\n                y3_ * y1_, -cot31 * (x3_ * y1_))\n    if K:\n        cot12 = _cot(s12, c12)\n        cot23 = _cot(s23, c23)\n\n        # x12 = x1_ + cot12 * y1_\n        # y12 = y1_ - cot12 * x1_\n\n        # x23 = x3_ - cot23 * y3_\n        # y23 = y3_ + cot23 * x3_\n\n        # x31 = x3_ + x1_ + cot31 * (y3_ - y1_)\n        # y31 = y3_ + y1_ - cot31 * (x3_ - x1_)\n\n        # x12 - x23 = x1_ + cot12 * y1_ - x3_ + cot23 * y3_\n        X12_23 = _Fsumf_(x1_,  cot12 * y1_, -x3_,  cot23 * y3_)\n        # y12 - y23 = y1_ - cot12 * x1_ - y3_ - cot23 * x3_\n        Y12_23 = _Fsumf_(y1_, -cot12 * x1_, -y3_, -cot23 * x3_)\n\n        # x31 - x23 = x3_ + x1_ + cot31 * (y3_ - y1_) - x3_ + cot23 * y3_\n        #           = x1_ + cot31 * y3_ - cot31 * y1_ + cot23 * y3_\n        X31_23 = _Fsumf_(x1_, -cot31 * y1_,  cot31 * y3_,  cot23 * y3_)\n        # y31 - y23 = y3_ + y1_ - cot31 * (x3_ - x1_) - y3_ - cot23 * x3_\n        #           = y1_ - cot31 * x3_ + cot31 * x1_ - cot23 * x3_\n        Y31_23 = _Fsumf_(y1_,  cot31 * x1_, -cot31 * x3_, -cot23 * x3_)\n\n        # d = (x12 - x23) * (y23 - y31) + (x31 - x23) * (y12 - y23)\n        #   = (x31 - x23) * (y12 - y23) - (x12 - x23) * (y31 - y23)\n        # x = (d * B2.x + K * Y12_23).fover(d)\n        # y = (d * B2.y - K * X12_23).fover(d)\n        x, y = _pierlotxy2(B2, -K, Y12_23, X12_23, Fdot_(X31_23, Y12_23,\n                                                        -X12_23, Y31_23))\n    else:\n        x, y, _ = B2.xyz3\n    return x, y, _zidw(x, y, useZ, B1, B2, B3)\n\n\ndef pierlotx(point1, point2, point3, alpha1, alpha2, alpha3, useZ=False,\n                                                           **Clas_and_kwds):\n    '''3-Point resection using U{Pierlot<http://www.Telecom.ULg.ac.BE/publi/\n       publications/pierlot/Pierlot2014ANewThree>}'s method C{ToTal} with\n       I{exact} limits for the (pseudo-)singularities.\n\n       @arg point1: First point (C{Cartesian}, L{Vector3d}, C{Vector3Tuple},\n                    C{Vector4Tuple} or C{Vector2Tuple} if C{B{useZ}=False}).\n       @arg point2: Second point (C{Cartesian}, L{Vector3d}, C{Vector3Tuple},\n                    C{Vector4Tuple} or C{Vector2Tuple} if C{B{useZ}=False}).\n       @arg point3: Third point (C{Cartesian}, L{Vector3d}, C{Vector3Tuple},\n                    C{Vector4Tuple} or C{Vector2Tuple} if C{B{useZ}=False}).\n       @arg alpha1: Angle at B{C{point1}} (C{degrees}, counter-clockwise).\n       @arg alpha2: Angle at B{C{point2}} (C{degrees}, counter-clockwise).\n       @arg alpha3: Angle at B{C{point3}} (C{degrees}, counter-clockwise).\n       @kwarg useZ: If C{True}, interpolate the survey point's Z component,\n                    otherwise use C{z=INT0} (C{bool}).\n       @kwarg Clas_and_kwds: Optional class C{B{Clas}=B{point1}.classof} to\n                   return the survey point with optionally other B{C{Clas}}\n                   keyword arguments to instantiate the survey point.\n\n       @return: The survey (or robot) point, an instance of B{C{Clas}} or\n                B{C{point1}}'s (sub-)class.\n\n       @raise ResectionError: Near-coincident, -colinear or -concyclic points or\n                              invalid B{C{alpha1}}, B{C{alpha2}} or B{C{alpha3}}.\n\n       @raise TypeError: Invalid B{C{point1}}, B{C{point2}} or B{C{point3}}.\n\n       @see: I{Pierlot}'s C function U{triangulationPierlot2<http://www.Telecom.ULg.ac.BE/\n             triangulation/doc/total_8c_source.html>} and function L{pierlot}, L{cassini},\n             L{collins5} and L{tienstra7}.\n    '''\n\n    def _a_z_Bs(Bs, *alphas):\n        ds = map2(_umod_360, alphas)  # 0 <= alphas < 360\n        ds, Bs = zip(*sorted(_zip(ds, Bs)))  # unzip\n        for p, d, B in _zip(ds, _rotate(ds), Bs):\n            d -= p  # a12 = a2 - a1, ...\n            z  = isnear0(fabs(d) % _180_0)\n            yield d, z, B\n\n    def _cot(s, c):  # I{exact} cotangent\n        try:\n            return (c / s)  # if c else _copysign_0_0(s)\n        except ZeroDivisionError:\n            raise ValueError(_or(_coincident_, _colinear_))\n\n    Bs = _B3(useZ, point1, point2, point3)\n    try:\n        Cs  = [0]  # pseudo-global, passing the exception Case\n        xyz = _pierlotx3(_a_z_Bs(Bs, alpha1, alpha2, alpha3),\n                         useZ, _cot, Cs.append)\n        return _Clas(pierlotx, point1, Clas_and_kwds, *xyz)\n\n    except (TypeError, ValueError) as x:\n        raise ResectionError(point1=point1, point2=point2, point3=point3, C=Cs.pop(),\n                             alpha1=alpha1, alpha2=alpha2, alpha3=alpha3, cause=x)\n\n\ndef _pierlotx3(a_z_Bs, useZ, _cot, Cs):\n    '''(INTERNAL) Core of L{pierlotx}.\n    '''\n    (a12, z12, B1), \\\n    (a23, z23, B2), \\\n    (a31, z31, B3) = a_z_Bs\n    if z12 and not z23:\n        Cs(1)\n    elif z23 and not z31:\n        Cs(2)\n        a23, B1, B2, B3 = a31, B2, B3, B1\n    elif z31 and not z12:\n        Cs(3)\n        a23,     B2, B3 = a12,     B3, B2\n    else:\n        Cs(4)\n        return _pierlot3(B1, B2, B3, a12, a23, useZ, _cot)\n\n    x1_, y1_, _ = B1.minus(B3).xyz3\n    x2_, y2_, _ = B2.minus(B3).xyz3\n\n    K = _Fsumf_(y1_ * x2_, -x1_ * y2_)\n    if K:\n        cot23 = _cot(*sincos2d(a23))\n\n        # x23 = x2_ + cot23 * y2_  # _fma( cot23, y2_, x2_)\n        # y23 = y2_ - cot23 * x2_  # _fma(-cot23, x2_, y2_)\n\n        # x31 = x1_ + cot23 * y1_  # _fma( cot23, y1_, x1_)\n        # y31 = y1_ - cot23 * x1_  # _fma(-cot23, x1_, y1_)\n\n        # x31 - x23 = x1_ + cot23 * y1_ - x2_ - cot23 * y2_\n        X31_23 = _Fsumf_(x1_,  cot23 * y1_, -x2_, -cot23 * y2_)\n        # y31 - y23 = y1_ - cot23 * x1_ - y2_ + cot23 * x2_\n        Y31_23 = _Fsumf_(y1_, -cot23 * x1_, -y2_,  cot23 * x2_)\n\n        # d = (x31 - x23) * (x2_ - x1_) + (y31 - y23) * (y2_ - y1_)\n        # x = (d * B3.x - K * Y31_23).fover(d)\n        # y = (d * B3.y + K * X31_23).fover(d)\n        x, y = _pierlotxy2(B3, K, Y31_23, X31_23, Fdot_(X31_23, _Fsumf_(x2_, -x1_),\n                                                        Y31_23, _Fsumf_(y2_, -y1_)))\n    else:\n        x, y, _ = B3.xyz3\n    return x, y, _zidw(x, y, useZ, B1, B2, B3)\n\n\ndef _pierlotxy2(B, K, X, Y, D):\n    '''(INTERNAL) Helper for C{_pierlot3} and C{_pierlotx3}.\n    '''\n    d = float(D)\n    if isnear0(d):\n        raise ValueError(_or(_coincident_, _colinear_, _concyclic_))\n    x = Fdot_(D, B.x, -K, X).fover(d)\n    y = Fdot_(D, B.y,  K, Y).fover(d)\n    return x, y\n\n\ndef _rotate(xs, n=1):\n    '''Rotate list or tuple C{xs} by C{n} items, right if C{n > 0} else left.\n    '''\n    return xs[n:] + xs[:n]\n\n\ndef snellius3(a, b, degC, alpha, beta):\n    '''Snellius' surveying using U{Snellius Pothenot<https://WikiPedia.org/wiki/Snellius–Pothenot_problem>}.\n\n       @arg a: Length of the triangle side between corners C{B} and C{C} and opposite of\n               triangle corner C{A} (C{scalar}, non-negative C{meter}, conventionally).\n       @arg b: Length of the triangle side between corners C{C} and C{A} and opposite of\n               triangle corner C{B} (C{scalar}, non-negative C{meter}, conventionally).\n       @arg degC: Angle at triangle corner C{C}, opposite triangle side C{c} (non-negative C{degrees}).\n       @arg alpha: Angle subtended by triangle side B{C{b}} (non-negative C{degrees}).\n       @arg beta: Angle subtended by triangle side B{C{a}} (non-negative C{degrees}).\n\n       @return: L{Survey3Tuple}C{(PA, PB, PC)} with distance from survey point C{P} to\n                each of the triangle corners C{A}, C{B} and C{C}, same units as triangle\n                sides B{C{a}}, B{C{b}} and B{C{c}}.\n\n       @raise TriangleError: Invalid B{C{a}}, B{C{b}} or B{C{degC}} or negative B{C{alpha}}\n                             or B{C{beta}}.\n\n       @see: Function L{wildberger3}.\n    '''\n    try:\n        a, b, degC, alpha, beta = _noneg(a, b, degC, alpha, beta)\n        ra, rb, rC = map1(radians, alpha, beta, degC)\n\n        r = fsum1f_(ra, rb, rC) * _0_5\n        k = PI - r\n        if min(k, r) < 0:\n            raise ValueError(_or(_coincident_, _colinear_))\n\n        sa, sb = map1(sin, ra, rb)\n        p = atan2(sa * a,  sb * b)\n        sp, cp, sr, cr = sincos2_(PI_4 - p, r)\n        p = atan2(sp * sr, cp * cr)\n        pa = k + p\n        pb = k - p\n\n        if fabs(sb) > fabs(sa):\n            pc = fabs(a * sin(pb) / sb)\n        elif sa:\n            pc = fabs(b * sin(pa) / sa)\n        else:\n            raise ValueError(_or(_colinear_, _coincident_))\n\n        pa = _triSide(b, pc, fsumf_(PI, -ra, -pa))\n        pb = _triSide(a, pc, fsumf_(PI, -rb, -pb))\n        return Survey3Tuple(pa, pb, pc, name=typename(snellius3))\n\n    except (TypeError, ValueError) as x:\n        raise TriangleError(a=a, b=b, degC=degC, alpha=alpha, beta=beta, cause=x)\n\n\ndef tienstra7(pointA, pointB, pointC, alpha, beta=None, gamma=None,\n                                             useZ=False, **Clas_and_kwds):\n    '''3-Point resection using U{Tienstra<https://WikiPedia.org/wiki/Tienstra_formula>}'s formula.\n\n       @arg pointA: First point (C{Cartesian}, L{Vector3d}, C{Vector3Tuple}, C{Vector4Tuple} or\n                    C{Vector2Tuple} if C{B{useZ}=False}).\n       @arg pointB: Second point (C{Cartesian}, L{Vector3d}, C{Vector3Tuple}, C{Vector4Tuple} or\n                    C{Vector2Tuple} if C{B{useZ}=False}).\n       @arg pointC: Third point (C{Cartesian}, L{Vector3d}, C{Vector3Tuple}, C{Vector4Tuple} or\n                    C{Vector2Tuple} if C{B{useZ}=False}).\n       @arg alpha: Angle subtended by triangle side C{a} from B{C{pointB}} to B{C{pointC}}\n                   (C{degrees}, non-negative).\n       @kwarg beta: Angle subtended by triangle side C{b} from B{C{pointA}} to B{C{pointC}}\n                    (C{degrees}, non-negative) or C{None} if C{B{gamma} is not None}.\n       @kwarg gamma: Angle subtended by triangle side C{c} from B{C{pointA}} to B{C{pointB}}\n                     (C{degrees}, non-negative) or C{None} if C{B{beta} is not None}.\n       @kwarg useZ: If C{True}, use and interpolate the Z component, otherwise force C{z=INT0}\n                    (C{bool}).\n       @kwarg Clas_and_kwds: Optional class C{B{Clas}=B{pointA}.classof} to return the survey\n                   point with optionally other B{C{Clas}} keyword arguments to instantiate\n                   the survey point.\n\n       @note: Points B{C{pointA}}, B{C{pointB}} and B{C{pointC}} are ordered clockwise.\n\n       @return: L{Tienstra7Tuple}C{(pointP, A, B, C, a, b, c)} with survey C{pointP}, an\n                instance of B{C{Clas}} or B{C{pointA}}'s (sub-)class, with triangle angles C{A}\n                at B{C{pointA}}, C{B} at B{C{pointB}} and C{C} at B{C{pointC}} in C{degrees}\n                and with triangle sides C{a}, C{b} and C{c} in C{meter}, conventionally.\n\n       @raise ResectionError: Near-coincident, -colinear or -concyclic points or sum of\n                              B{C{alpha}}, B{C{beta}} and B{C{gamma}} not C{360} or negative\n                              B{C{alpha}}, B{C{beta}} or B{C{gamma}}.\n\n       @raise TypeError: Invalid B{C{pointA}}, B{C{pointB}} or B{C{pointC}}.\n\n       @see: U{3-Point Resection Solver<http://MesaMike.org/geocache/GC1B0Q9/tienstra/>},\n             U{V. Pierlot, M. Van Droogenbroeck, \"A New Three Object Triangulation...\"\n             <http://www.Telecom.ULg.ac.BE/publi/publications/pierlot/Pierlot2014ANewThree/>},\n             U{18 Triangulation Algorithms...<http://www.Telecom.ULg.ac.BE/triangulation/>} and\n             functions L{cassini}, L{collins5}, L{pierlot} and L{pierlotx}.\n    '''\n\n    def _deg_ks(r, s, ks, N):\n        if isnear0(fsumf_(PI, r, -s)):  # r + (PI2 - s) == PI\n            raise ValueError(Fmt.PARENSPACED(concyclic=N))\n        # k = 1 / (cot(r) - cot(s))\n        #   = 1 / (cos(r) / sin(r) - cos(s) / sin(s))\n        #   = 1 / (cos(r) * sin(s) - cos(s) * sin(r)) / (sin(r) * sin(s))\n        #   = sin(r) * sin(s) / (cos(r) * sin(s) - cos(s) * sin(r))\n        sr, cr, ss, cs = sincos2_(r, s)\n        c = fsum1f_(cr * ss, -cs * sr)\n        if isnear0(c):\n            raise ValueError(Fmt.PARENSPACED(cotan=N))\n        ks.append(sr * ss / c)\n        return Degrees(degrees(r), name=N)  # C degrees\n\n    A, B, C = _ABC3(useZ, pointA, pointB, pointC)\n    try:\n        sa, sb, sc = map1(radians, alpha, (beta or 0), (gamma or 0))\n        if beta is None:\n            if gamma is None:\n                raise ValueError(_and(Fmt.EQUAL(beta=beta), Fmt.EQUAL(gamma=gamma)))\n            sb = fsumf_(PI2, -sa, -sc)\n        elif gamma is None:\n            sc = fsumf_(PI2, -sa, -sb)\n        else:  # subtended angles must add to 360 degrees\n            r = fsum1f_(sa, sb, sc)\n            if fabs(r - PI2) > EPS:\n                raise ValueError(Fmt.EQUAL(sum=degrees(r)))\n        if min(sa, sb, sc) < 0:\n            raise ValueError(_negative_)\n\n        # triangle sides\n        a = B.minus(C).length\n        b = A.minus(C).length\n        c = A.minus(B).length\n\n        ks = []  # 3 Ks and triangle angles\n        dA = _deg_ks(_triAngle(b, c, a), sa, ks, _A_)\n        dB = _deg_ks(_triAngle(a, c, b), sb, ks, _B_)\n        dC = _deg_ks(_triAngle(a, b, c), sc, ks, _C_)\n\n        k = fsum1(ks)\n        if isnear0(k):\n            raise ValueError(Fmt.EQUAL(K=k))\n        x =  Fdot(ks, A.x, B.x, C.x).fover(k)\n        y =  Fdot(ks, A.y, B.y, C.y).fover(k)\n        z = _zidw(x, y, useZ, A, B, C)\n\n        P = _Clas(tienstra7, pointA, Clas_and_kwds, x, y, z)\n        return Tienstra7Tuple(P, dA, dB, dC, a, b, c, name=typename(tienstra7))\n\n    except (TypeError, ValueError) as x:\n        raise ResectionError(pointA=pointA, pointB=pointB, pointC=pointC,\n                             alpha=alpha, beta=beta, gamma=gamma, cause=x)\n\n\ndef triAngle(a, b, c):\n    '''Compute one angle of a triangle.\n\n       @arg a: Adjacent triangle side length (C{scalar}, non-negative\n               C{meter}, conventionally).\n       @arg b: Adjacent triangle side length (C{scalar}, non-negative\n               C{meter}, conventionally).\n       @arg c: Opposite triangle side length (C{scalar}, non-negative\n               C{meter}, conventionally).\n\n       @return: Angle in C{radians} at triangle corner C{C}, opposite\n                triangle side B{C{c}}.\n\n       @raise TriangleError: Invalid or negative B{C{a}}, B{C{b}} or B{C{c}}.\n\n       @see: Functions L{triAngle5} and L{triSide}.\n    '''\n    try:\n        return _triAngle(a, b, c)\n    except (TypeError, ValueError) as x:\n        raise TriangleError(a=a, b=b, c=c, cause=x)\n\n\ndef _triAngle(a, b, c):\n    # (INTERNAL) To allow callers to embellish errors\n    a, b, c = _noneg(a, b, c)\n    if b > a:\n        a, b = b, a\n    if a < EPS0:\n        raise ValueError(_coincident_)\n    b_a = b / a\n    if b_a < EPS0:\n        raise ValueError(_coincident_)\n    t = _Fsumf_(_1_0, b_a**2, -(c / a)**2).fover(b_a * _2_0)\n    return acos1(t)\n\n\ndef triAngle5(a, b, c):\n    '''Compute the angles of a triangle.\n\n       @arg a: Length of the triangle side opposite of triangle corner C{A}\n               (C{scalar}, non-negative C{meter}, conventionally).\n       @arg b: Length of the triangle side opposite of triangle corner C{B}\n               (C{scalar}, non-negative C{meter}, conventionally).\n       @arg c: Length of the triangle side opposite of triangle corner C{C}\n               (C{scalar}, non-negative C{meter}, conventionally).\n\n       @return: L{TriAngle5Tuple}C{(radA, radB, radC, rIn, area)} with angles\n                C{radA}, C{radB} and C{radC} at triangle corners C{A}, C{B}\n                and C{C}, all in C{radians}, the C{InCircle} radius C{rIn}\n                aka C{inradius}, same units as triangle sides B{C{a}},\n                B{C{b}} and B{C{c}} and the triangle C{area} in the same\n                units I{squared}.\n\n       @raise TriangleError: Invalid or negative B{C{a}}, B{C{b}} or B{C{c}}.\n\n       @see: Functions L{triAngle} and L{triArea}.\n    '''\n    try:\n        x, y, z = map1(float, a, b, c)\n        ab = x < y\n        if ab:\n            x, y = y, x\n        bc = y < z\n        if bc:\n            y, z = z, y\n\n        if z > EPS0:  # z = min(a, b, c)\n            s  = fsum1f_(z, y, x) * _0_5\n            sa, sb, r = (s - x), (s - y), (s - z)\n            r *= _over(sa * sb, s)\n            if r < EPS02:\n                raise ValueError(_coincident_)\n            r  = sqrt(r)\n            rA = atan2(r, sa) * _2_0\n            rB = atan2(r, sb) * _2_0\n            rC = fsumf_(PI, -rA, -rB)\n            if min(rA, rB, rC) < 0:\n                raise ValueError(_colinear_)\n            s *= r  # Heron's area\n        elif z < 0:\n            raise ValueError(_negative_)\n        else:  # 0 <= c <= EPS0\n            rA = rB = PI_2\n            rC = r = s = _0_0\n\n        if bc:\n            rB, rC = rC, rB\n        if ab:\n            rA, rB = rB, rA\n        return TriAngle5Tuple(rA, rB, rC, r, s, name=typename(triAngle5))\n\n    except (TypeError, ValueError) as x:\n        raise TriangleError(a=a, b=b, c=c, cause=x)\n\n\ndef triArea(a, b, c):\n    '''Compute the area of a triangle using U{Heron's<https://\n       WikiPedia.org/wiki/Heron%27s_formula>} C{stable} formula.\n\n       @arg a: Length of the triangle side opposite of triangle corner C{A}\n               (C{scalar}, non-negative C{meter}, conventionally).\n       @arg b: Length of the triangle side opposite of triangle corner C{B}\n               (C{scalar}, non-negative C{meter}, conventionally).\n       @arg c: Length of the triangle side opposite of triangle corner C{C}\n               (C{scalar}, non-negative C{meter}, conventionally).\n\n       @return: The triangle area (C{float}, conventionally C{meter} or\n                same units as B{C{a}}, B{C{b}} and B{C{c}} I{squared}).\n\n       @raise TriangleError: Invalid or negative B{C{a}}, B{C{b}} or B{C{c}}.\n    '''\n    try:\n        r, y, x = sorted(map1(float, a, b, c))\n        if r > 0:  # r = min(a, b, c)\n            s =  r\n            d =  x - y\n            r = (s + d) * (s - d)\n            if r:\n                y +=  x\n                r *= (y + s) * (y - s)\n        if r < 0:\n            raise ValueError(_negative_)\n        return sqrt(r / _16_0) if r else _0_0\n\n    except (TypeError, ValueError) as x:\n        raise TriangleError(a=a, b=b, c=c, cause=x)\n\n\ndef triSide(a, b, radC):\n    '''Compute one side of a triangle.\n\n       @arg a: Adjacent triangle side length (C{scalar},\n               non-negative C{meter}, conventionally).\n       @arg b: Adjacent triangle side length (C{scalar},\n               non-negative C{meter}, conventionally).\n       @arg radC: Angle included by sides B{C{a}} and B{C{b}},\n                  opposite triangle side C{c} (C{radians}).\n\n       @return: Length of triangle side C{c}, opposite triangle\n                corner C{C} and angle B{C{radC}}, same units as\n                B{C{a}} and B{C{b}}.\n\n       @raise TriangleError: Invalid B{C{a}}, B{C{b}} or B{C{radC}}.\n\n       @see: Functions L{sqrt_a}, L{triAngle}, L{triSide2} and L{triSide4}.\n    '''\n    try:\n        return _triSide(a, b, radC)\n    except (TypeError, ValueError) as x:\n        raise TriangleError(a=a, b=b, radC=radC, cause=x)\n\n\ndef _triSide(a, b, radC):\n    # (INTERNAL) To allow callers to embellish errors\n    a, b, r = _noneg(a, b, radC)\n    if b < a:\n        a, b = b, a\n    if a > EPS0:\n        ba = b / a\n        c2 = fsumf_(_1_0, ba**2, _N_2_0 * ba * cos(r))\n        if c2 > EPS02:\n            return a * sqrt(c2)\n        elif c2 < 0:\n            raise ValueError(_invalid_)\n    return hypot(a, b)\n\n\ndef triSide2(b, c, radB):\n    '''Compute a side and its opposite angle of a triangle.\n\n       @arg b: Adjacent triangle side length (C{scalar},\n               non-negative C{meter}, conventionally).\n       @arg c: Adjacent triangle side length (C{scalar},\n               non-negative C{meter}, conventionally).\n       @arg radB: Angle included by sides B{C{a}} and B{C{c}},\n                  opposite triangle side C{b} (C{radians}).\n\n       @return: L{TriSide2Tuple}C{(a, radA)} with triangle angle\n                C{radA} in C{radians} and length of the opposite\n                triangle side C{a}, same units as B{C{b}} and B{C{c}}.\n\n       @raise TriangleError: Invalid B{C{b}} or B{C{c}} or either\n                             B{C{b}} or B{C{radB}} near zero.\n\n       @see: Functions L{sqrt_a}, L{triSide} and L{triSide4}.\n    '''\n    try:\n        return _triSide2(b, c, radB)\n    except (TypeError, ValueError) as x:\n        raise TriangleError(b=b, c=c, radB=radB, cause=x)\n\n\ndef _triSide2(b, c, radB):\n    # (INTERNAL) To allow callers to embellish errors\n    b, c, rB = _noneg(b, c, radB)\n    sB, cB = sincos2(rB)\n    if isnear0(b) or isnear0(sB):\n        if isnear0(b) and isnear0(sB):\n            if cB < 0:\n                rA = PI\n                a  = b + c\n            else:\n                rA = _0_0\n                a  = fabs(b - c)\n        else:\n            raise ValueError(_invalid_)\n    else:\n        rC = asin1(c * sB / b)\n        rA = max(fsumf_(PI, -rB, -rC), _0_0)\n        a  = sin(rA) * b / sB\n    return TriSide2Tuple(a, rA, name=typename(triSide2))\n\n\ndef triSide4(radA, radB, c):\n    '''Compute two sides and the height of a triangle.\n\n       @arg radA: Angle at triangle corner C{A}, opposite triangle side C{a}\n                  (non-negative C{radians}).\n       @arg radB: Angle at triangle corner C{B}, opposite triangle side C{b}\n                  (non-negative C{radians}).\n       @arg c: Length of triangle side between triangle corners C{A} and C{B},\n               (C{scalar}, non-negative C{meter}, conventionally).\n\n       @return: L{TriSide4Tuple}C{(a, b, radC, d)} with triangle sides C{a} and\n                C{b} and triangle height C{d} perpendicular to triangle side\n                B{C{c}}, all in the same units as B{C{c}} and interior angle\n                C{radC} in C{radians} at triangle corner C{C}, opposite\n                triangle side B{C{c}}.\n\n       @raise TriangleError: Invalid or negative B{C{radA}}, B{C{radB}} or B{C{c}}.\n\n       @see: U{Triangulation, Surveying<https://WikiPedia.org/wiki/Triangulation_(surveying)>}\n             and functions L{sqrt_a}, L{triSide} and L{triSide2}.\n    '''\n    try:\n        rA, rB, c = _noneg(radA, radB, c)\n        rC = fsumf_(PI, -rA, -rB)\n        if rC < 0:\n            raise ValueError(_negative_)\n        sa, ca, sb, cb = sincos2_(rA, rB)\n        sc = fsum1f_(sa * cb, sb * ca)\n        if sc < EPS0 or min(sa, sb) < 0:\n            raise ValueError(_invalid_)\n        sc  = c / sc\n        sa *= sc\n        sd  = sa * sb\n        sb *= sc\n        return TriSide4Tuple(sa, sb, rC, sd, name=typename(triSide4))\n\n    except (TypeError, ValueError) as x:\n        raise TriangleError(radA=radA, radB=radB, c=c, cause=x)\n\n\ndef wildberger3(a, b, c, alpha, beta, R3=min):\n    '''Snellius' surveying using U{Rational Trigonometry\n       <https://WikiPedia.org/wiki/Snellius–Pothenot_problem>}.\n\n       @arg a: Length of the triangle side between corners C{B} and C{C} and opposite of\n               triangle corner C{A} (C{scalar}, non-negative C{meter}, conventionally).\n       @arg b: Length of the triangle side between corners C{C} and C{A} and opposite of\n               triangle corner C{B} (C{scalar}, non-negative C{meter}, conventionally).\n       @arg c: Length of the triangle side between corners C{A} and C{B} and opposite of\n               triangle corner C{C} (C{scalar}, non-negative C{meter}, conventionally).\n       @arg alpha: Angle subtended by triangle side B{C{b}} (C{degrees}, non-negative).\n       @arg beta: Angle subtended by triangle side B{C{a}} (C{degrees}, non-negative).\n       @kwarg R3: Callable to determine C{R3} from C{(R3 - C)**2 = D}, typically standard\n                  Python function C{min} or C{max}, invoked with 2 arguments, each\n                  C{float} or an L{Fsum<pygeodesy.fsums.Fsum>}.\n\n       @return: L{Survey3Tuple}C{(PA, PB, PC)} with distance from survey point C{P} to\n                each of the triangle corners C{A}, C{B} and C{C}, same units as B{C{a}},\n                B{C{b}} and B{C{c}}.\n\n       @raise TriangleError: Invalid B{C{a}}, B{C{b}} or B{C{c}} or negative B{C{alpha}} or\n                             B{C{beta}} or B{C{R3}} not C{callable}.\n\n       @see: U{Wildberger, Norman J.<https://Math.Sc.Chula.ac.TH/cjm/content/\n             survey-article-greek-geometry-rational-trigonometry-and-snellius-–-pothenot-surveying>},\n             U{Devine Proportions, page 252<http://www.MS.LT/derlius/WildbergerDivineProportions.pdf>}\n             and function L{snellius3}.\n    '''\n    def _sin2(x):\n        return sin(x)**2\n\n    def _vpa(r3, q2, q3, s2, s3):\n        r4 = r3 * _4_0\n        s4 = r4 * s2\n        if isnear0(s4):\n            raise ValueError(_coincident_)\n        r1 =  s2 * q3 / s3\n        N2 = _Fsumf_(r1, r3, -q2)**2\n        n  = (r4 * r1 - N2).fover(s4)\n        if n < 0:\n            raise ValueError(_coincident_)\n        return sqrt(n) if n else _0_0\n\n    try:\n        a, b, c, da, db = _noneg(a, b, c, alpha, beta)\n        q1, q2, q3 = q = a**2, b**2, c**2\n        if min(q) < EPS02:\n            raise ValueError(_coincident_)\n\n        ra, rb = map1(radians, da, db)\n        s1, s2, s3 = s = map1(_sin2, rb, ra, ra + rb)  # rb, ra!\n        if min(s) < EPS02:\n            raise ValueError(_or(_coincident_, _colinear_))\n        s += _Fsumf_(*s),  # == fsum1(s),\n\n        Q  = _Fsumf_(*q)   # == a**2 + b**2 + ...\n        C0 =  Fdot(s, q1, q2, q3, -Q * _0_5)\n        r3 =  C0.fover(-s3)  # C0 /= -s3\n\n        Q *=  Q  # Q**2 - 2 * (a**4 + b**4 ...\n        Q -=  hypot2_(*q) * _2_0  # ... + c**4)\n        Q *=  s1 * s2  # Q * s1 * s2 / s3\n        d0 =  Q.fover(s3)\n        if d0 > EPS02:  # > c0\n            _xcallable(R3=R3)\n            d0 = sqrt(d0)\n            r3 = R3(C0 + d0, C0 - d0).as_iscalar  # XXX min or max\n        elif d0 < (-EPS02):\n            raise ValueError(_negative_)\n\n        pa = _vpa(r3, q2, q3, s2, s3)\n        pb = _vpa(r3, q1, q3, s1, s3)\n        pc =  favg(_triSide2(b, pa, ra).a,\n                   _triSide2(a, pb, rb).a)\n        return Survey3Tuple(pa, pb, pc, name=typename(wildberger3))\n\n    except (TypeError, ValueError) as x:\n        raise TriangleError(a=a, b=b, c=c, alpha=alpha, beta=beta, R3=R3, cause=x)\n\n\ndef _zidw(x, y, useZ, *ABC):\n    if useZ:  # interpolate z or coplanar with A, B and C?\n        t = tuple(_.z for _ in ABC)\n        v = Vector3d(x, y, fmean(t))\n        z = fidw(t, (v.minus(T).length for T in ABC))\n    else:\n        z = INT0\n    return z\n\n# **) MIT License\n#\n# Copyright (C) 2016-2026 -- mrJean1 at Gmail -- All Rights Reserved.\n#\n# Permission is hereby granted, free of charge, to any person obtaining a\n# copy of this software and associated documentation files (the \"Software\"),\n# to deal in the Software without restriction, including without limitation\n# the rights to use, copy, modify, merge, publish, distribute, sublicense,\n# and/or sell copies of the Software, and to permit persons to whom the\n# Software is furnished to do so, subject to the following conditions:\n#\n# The above copyright notice and this permission notice shall be included\n# in all copies or substantial portions of the Software.\n#\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL\n# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR\n# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\n# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n# OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "pygeodesy/rhumb/__init__.py",
    "content": "\r\n# -*- coding: utf-8 -*-\r\n\r\nu'''Package of lazily imported C{rhumb} modules L{rhumb.aux_}, L{rhumb.ekx} and L{rhumb.solve}.\r\n\r\n@note: C{S12} area calculations in classes L{RhumbAux} and L{RhumbLineAux} depend on class\r\n       L{AuxDST} which requires U{numpy<https://PyPI.org/project/numpy>} to be installed,\r\n       version 1.16 or newer.\r\n'''\r\nfrom pygeodesy.lazily import _ALL_LAZY, _ALL_OTHER, _lazy_import_as, _unLazy0\r\n\r\n__all__ = _ALL_LAZY.rhumb\r\n__version__ = '25.12.06'\r\n\r\nif _unLazy0:  # or _isfrozen\r\n    from pygeodesy.rhumb.aux_ import RhumbAux, RhumbLineAux\r\n    from pygeodesy.rhumb.ekx import Rhumb, RhumbLine\r\n    from pygeodesy.rhumb.solve import RhumbSolve, RhumbLineSolve, \\\r\n                                      RhumbSolve7Tuple, Rhumb8Tuple  # in .karney\r\n\r\n    __all__ += _ALL_OTHER(RhumbAux, RhumbLineAux, Rhumb, RhumbLine,\r\n                          RhumbSolve, RhumbLineSolve, RhumbSolve7Tuple, Rhumb8Tuple)\r\n    assert _ALL_LAZY.rhumb_aux_ + _ALL_LAZY.rhumb_ekx + _ALL_LAZY.rhumb_solve == __all__\r\n\r\nelse:  # lazily import modules and exported attrs\r\n    __getattr__ = _lazy_import_as(__name__)\r\n\r\n# **) MIT License\r\n#\r\n# Copyright (C) 2018-2026 -- mrJean1 at Gmail -- All Rights Reserved.\r\n#\r\n# Permission is hereby granted, free of charge, to any person obtaining a\r\n# copy of this software and associated documentation files (the \"Software\"),\r\n# to deal in the Software without restriction, including without limitation\r\n# the rights to use, copy, modify, merge, publish, distribute, sublicense,\r\n# and/or sell copies of the Software, and to permit persons to whom the\r\n# Software is furnished to do so, subject to the following conditions:\r\n#\r\n# The above copyright notice and this permission notice shall be included\r\n# in all copies or substantial portions of the Software.\r\n#\r\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\r\n# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r\n# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL\r\n# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR\r\n# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\r\n# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\r\n# OTHER DEALINGS IN THE SOFTWARE.\r\n"
  },
  {
    "path": "pygeodesy/rhumb/aux_.py",
    "content": "\n# -*- coding: utf-8 -*-\n\nu'''A pure Python version of I{Karney}'s I{Auxiliary Latitudes}, C++ classes U{Rhumb\n<https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Rhumb.html>} and U{RhumbLine\n<https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1RhumbLine.html>} from\nI{GeographicLib version 2.2+} renamed to L{RhumbAux} respectively L{RhumbLineAux}.\n\nClass L{RhumbLineAux} has been enhanced with methods C{Intersecant2}, C{Intersection} and C{PlumbTo}\nto iteratively find the intersection of a rhumb line and a circle or an other rhumb line, respectively\na perpendicular geodesic or other rhumb line.\n\nFor more details, see the U{GeographicLib<https://GeographicLib.SourceForge.io/C++/doc/index.html>} I{2.2}\ndocumentation, especially the U{Class List<https://GeographicLib.SourceForge.io/C++/doc/annotated.html>},\nthe background information on U{Rhumb lines<https://GeographicLib.SourceForge.io/C++/doc/rhumb.html>},\nutility U{RhumbSolve<https://GeographicLib.SourceForge.io/C++/doc/RhumbSolve.1.html>} and U{Online rhumb\nline calculations<https://GeographicLib.SourceForge.io/cgi-bin/RhumbSolve>}.\n\nCopyright (C) U{Charles Karney<mailto:Karney@Alum.MIT.edu>} (2022-2024) and licensed under the MIT/X11\nLicense.  For more information, see the U{GeographicLib<https://GeographicLib.SourceForge.io>} documentation.\n\n@note: C{S12} area calculations in classes L{RhumbAux} and L{RhumbLineAux} depend on class L{AuxDST} which\n       requires U{numpy<https://PyPI.org/project/numpy>} to be installed, version 1.16 or newer.\n\n@note: Windows reserves file names U{AUX, COM[#], CON, LPT[#], NUL, PRN<https://learn.Microsoft.com/en-us/\n       windows/win32/fileio/naming-a-file#naming-conventions>} with and without extension.\n'''\n# make sure int/int division yields float quotient\nfrom __future__ import division as _; del _  # noqa: E702 ;\n\nfrom pygeodesy.auxilats.auxAngle import AuxMu, AuxPhi,  hypot\nfrom pygeodesy.auxilats.auxDLat import AuxDLat, _DClenshaw\n# from pygeodesy.auxilats.auxDST import AuxDST  # _MODS\nfrom pygeodesy.auxilats.auxily import _Dlam, _Dp0Dpsi\nfrom pygeodesy.auxilats._CX_Rs import _Rdict, _Rkey, _Rtuple\nfrom pygeodesy.basics import copysign0, _reverange,  _xkwds_get1\nfrom pygeodesy.constants import EPS_2, MANT_DIG, PI4, isinf, \\\n                               _0_0, _4_0, _720_0, _log2, _over\n# from pygeodesy.datums import _WGS84  # from .rhumb.bases\n# from pygeodesy.errors import _xkwds_get1  # from .basics\nfrom pygeodesy.karney import Caps, _polynomial\n# from pygeodesy.fmath import hypot  # from .auxilats.auxAngle\nfrom pygeodesy.lazily import _ALL_DOCS, _ALL_LAZY, _ALL_MODS as _MODS\n# from pygeodesy.props import Property_RO  # from .rhumb.bases\nfrom pygeodesy.rhumb.bases import RhumbBase, RhumbLineBase, \\\n                                  Property_RO, _WGS84\n\nfrom math import ceil as _ceil, fabs, radians\n\n__all__ = _ALL_LAZY.rhumb_aux_\n__version__ = '25.08.31'\n\n# DIGITS = (sizeof(real) * 8) bits\n#        = (ctypes.sizeof(ctypes.c_double(1.0)) * 8) bits\n# For |n| <= 0.99, actual max for doubles is 2163.  This scales\n# as DIGITS and for long doubles (GEOGRAPHICLIB_PRECISION = 3,\n# DIGITS = 64), this becomes 2163 * 64 / 53 = 2612.  Round this\n# up to 2^12 = 4096 and scale this by DIGITS//64 if DIGITS > 64.\n#\n# 64 = DIGITS for long double, 6 = 12 - _log2(64)\n_Lbits = 1 << (int(_ceil(_log2(max(MANT_DIG, 64)))) + 6)\n\n\nclass RhumbAux(RhumbBase):\n    '''Class to solve the I{direct} and I{inverse rhumb} problems, based\n       on I{Auxiliary Latitudes} for accuracy near the poles.\n\n       @note: Package U{numpy<https://PyPI.org/project/numpy>} must be\n              installed, version 1.16 or later.\n    '''\n\n    def __init__(self, a_earth=_WGS84, f=None, exact=True, **TMorder_name):  # PYCHOK signature\n        '''New C{RhumbAux}.\n\n           @kwarg a_earth: This rhumb's earth model (L{Datum}, L{Ellipsoid},\n                           L{Ellipsoid2}, L{a_f2Tuple}, 2-tuple C{(a, f)}) or\n                           the (equatorial) radius (C{meter}, conventionally).\n           @kwarg f: The ellipsoid's flattening (C{scalar}), required if B{C{a_earth}}\n                     is C{scalar}, ignored otherwise.\n           @kwarg exact: If C{True}, use the exact expressions for the I{Auxiliary\n                         Latitudes}, otherwise use the I{Fourier} series expansion\n                         (C{bool}), see also property C{exact}.\n           @kwarg TMorder_name: Optional C{B{name}=NN} (C{str}) and optional\n                          keyword argument C{B{TMorder}=6}, the order of the\n                          L{KTransverseMercator}, see property C{TMorder}.\n\n           @raise ImportError: Package C{numpy} not found or not installed, only\n                               required for area C{S12} when C{B{exact} is True}.\n\n           @raise RhumbError: Invalid B{C{a_earth}}, B{C{f}} or B{C{TMorder}}.\n        '''\n        RhumbBase.__init__(self, a_earth, f, exact, TMorder_name)\n\n    def areaux(self, **exact):\n        '''Get this ellipsoid's B{C{exact}} surface area (C{meter} I{squared}).\n\n           @kwarg exact: Optional C{exact} (C{bool}), overriding this rhumb's\n                         C{exact} setting, if C{True}, use the exact expression\n                         for the authalic radius otherwise the I{Taylor} series.\n\n           @return: The (signed?) surface area (C{meter} I{squared}).\n\n           @raise AuxError: If C{B{exact}=False} and C{abs(flattening)} exceeds\n                            property C{f_max}.\n\n           @note: The area of a polygon encircling a pole can be found by adding\n                  C{areaux / 2} to the sum of C{S12} for each side of the polygon.\n\n           @see: U{The area of rhumb polygons<https://ArXiv.org/pdf/2303.03219.pdf>}\n                 and method L{auxilats.AuxLat.AuthalicRadius2}.\n        '''\n        x = _xkwds_get1(exact, exact=self.exact)\n        a = (self._c2 * _720_0) if bool(x) is self.exact else (\n             self._auxD.AuthalicRadius2(exact=x, f_max=self.f_max) * PI4)\n        return a\n\n    @Property_RO\n    def _auxD(self):\n        return AuxDLat(self.ellipsoid)\n\n    @Property_RO\n    def _c2(self):  # radians makes _c2 a factor per degree\n        return radians(self._auxD.AuthalicRadius2(exact=self.exact, f_max=self.f_max))\n\n    def _DMu_DPsi(self, Phi1, Phi2, Chi1, Chi2):\n        xD = self._auxD\n        r  = xD.DRectifying(Phi1, Phi2) if self.exact else \\\n             xD.CRectifying(Chi1, Chi2)\n        if r:\n            r = _over(r, xD.DIsometric(Phi1, Phi2) if self.exact else\n                        _Dlam(Chi1.tan, Chi2.tan))  # not Lambertian!\n        return r\n\n    def _Inverse4(self, lon12, r, outmask):\n        '''(INTERNAL) See method C{RhumbBase.Inverse}.\n        '''\n        psi1, Chi1, Phi1 = self._psiChiPhi3(r.lat1)\n        psi2, Chi2, Phi2 = self._psiChiPhi3(r.lat2)\n        psi12 = psi2 - psi1  # radians\n        lam12 = radians(lon12)\n        if (outmask & Caps.DISTANCE):\n            if isinf(psi1) or isinf(psi2):  # PYCHOK no cover\n                s = fabs(Phi2.toMu(self).toRadians -\n                         Phi1.toMu(self).toRadians)\n            else:  # dmu/dpsi = dmu/dchi/dpsi/dchi\n                s = hypot(lam12, psi12)\n                if s:\n                    s *= self._DMu_DPsi(Phi1, Phi2, Chi1, Chi2)\n            s *= self._rrm\n            a = _over(s, self._mpd)\n            r.set_(a12=copysign0(a, s), s12=s)\n        return lam12, psi12, Chi1, Chi2\n\n    def _latPhi2(self, mu):\n        Mu  = AuxMu.fromDegrees(mu)\n        Phi = Mu.toPhi(self)\n        return Phi.toDegrees, Phi\n\n    @Property_RO\n    def _mpd(self):  # meter per degree\n        return radians(self._rrm)  # == self.ellipsoid._Lpd\n\n    def _psiChiPhi3(self, lat):\n        Phi = AuxPhi.fromDegrees(lat)\n        Chi = Phi.toChi(self)\n        psi = Chi.toLambertianRadians\n        return psi, Chi, Phi\n\n    @Property_RO\n    def _RA(self):  # get the coefficients for area calculation\n        return tuple(_RAintegrate(self._auxD) if self.exact else\n                     _RAseries(self._auxD))\n\n#   _RhumbLine = RhumbLineAux  # see further below\n\n    @Property_RO\n    def _rrm(self):\n        return self._auxD.RectifyingRadius(exact=self.exact)\n\n    _mpr = _rrm  # meter per radian, see _mpd\n\n    def _S12d(self, Chix, Chiy, lon12):  # degrees\n        '''(INTERNAL) Compute the area C{S12} from C{._meanSinXi(Chix, Chiy) * .c2 * lon12}.\n        '''\n        pP, xD = self._RA, self._auxD\n\n        tx, Phix = Chix.tan, Chix.toPhi(self)\n        ty, Phiy = Chiy.tan, Chiy.toPhi(self)\n\n        dD = xD.DParametric(Phix, Phiy) if self.exact else \\\n             xD.CParametric(Chix, Chiy)\n        if dD:\n            dD  = _over(dD, xD.DIsometric(Phix, Phiy) if self.exact else\n                           _Dlam(tx, ty))  # not Lambertian!\n            dD *= _DClenshaw(False, Phix.toBeta(self).normalized,\n                                    Phiy.toBeta(self).normalized,\n                                    pP, min(len(pP), xD.ALorder))  # Fsum\n        dD += _Dp0Dpsi(tx, ty)\n        dD *=  self._c2 * lon12\n        return float(dD)\n\n\nclass RhumbLineAux(RhumbLineBase):\n    '''Compute one or several points on a single rhumb line.\n\n       Class C{RhumbLineAux} facilitates the determination of points\n       on a single rhumb line.  The starting point (C{lat1}, C{lon1})\n       and the azimuth C{azi12} are specified once.\n    '''\n    _Rhumb = RhumbAux  # rhumb.aux_.RhumbAux\n\n    def __init__(self, rhumb, lat1=0, lon1=0, azi12=None, **caps_name):  # PYCHOK signature\n        '''New C{RhumbLineAux}.\n\n           @arg rhumb: The rhumb reference (L{RhumbAux}).\n           @kwarg lat1: Latitude of the start point (C{degrees90}).\n           @kwarg lon1: Longitude of the start point (C{degrees180}).\n           @kwarg azi12: Azimuth of this rhumb line (compass C{degrees}).\n           @kwarg caps_name: Optional keyword arguments C{B{name}=NN} and C{B{caps}=0},\n                       a bit-or'ed combination of L{Caps<pygeodesy.karney.Caps>} values\n                       specifying the required capabilities.  Include C{Caps.LINE_OFF}\n                       if updates to the B{C{rhumb}} should I{not be reflected} in this\n                       rhumb line.\n        '''\n        RhumbLineBase.__init__(self, rhumb, lat1, lon1, azi12, **caps_name)\n\n    @Property_RO\n    def _Chi1(self):\n        return self._Phi1.toChi(self.rhumb)\n\n    @Property_RO\n    def _mu1(self):\n        '''(INTERNAL) Get the I{rectifying auxiliary} latitude (C{degrees}).\n        '''\n        return self._Phi1.toMu(self.rhumb).toDegrees\n\n    def _mu2lat(self, mu):\n        '''(INTERNAL) Get the inverse I{rectifying auxiliary} latitude (C{degrees}).\n        '''\n        lat, _ = self.rhumb._latPhi2(mu)\n        return lat\n\n    @Property_RO\n    def _Phi1(self):\n        return AuxPhi.fromDegrees(self.lat1)\n\n    def _Position4(self, a12, mu2, *unused):  # PYCHOK s12, mu2\n        '''(INTERNAL) See method C{RhumbLineBase._Position}.\n        '''\n        R = self.rhumb\n        lat2,  Phi2 = R._latPhi2(mu2)\n        Chi2 = Phi2.toChi(R)\n        Chi1 = self._Chi1\n        lon2 = self._salp * a12\n        if lon2:\n            m = R._DMu_DPsi(self._Phi1, Phi2, Chi1, Chi2)\n            lon2 = _over(lon2, m)\n        return lat2, lon2, Chi1, Chi2\n\n#   @Property_RO\n#   def _psi1(self):\n#       return self._Chi1.toLambertianRadians\n\nRhumbAux._RhumbLine = RhumbLineAux  # PYCHOK see RhumbBase._RhumbLine\n\n\ndef _RAintegrate(auxD):\n    # Compute coefficients by Fourier transform of integrand\n    L   =  2\n    fft = _MODS.auxilats.auxDST.AuxDST(L)\n    f   =  auxD._qIntegrand\n    c_  =  fft.transform(f)\n    pP  =  []\n    _P  =  pP.append\n    # assert L < _Lbits\n    while L < _Lbits:\n        L  = fft.reset(L) * 2\n        c_ = fft.refine(f, c_, _0_0)  # sentine[L]\n        # assert len(c_) == L + 1\n        pP[:], k = [], -1\n        for j in range(1, L + 1):\n            # Compute Fourier coefficients of integral\n            p = (c_[j - 1] + c_[j]) / (_4_0 * j)\n            if fabs(p) > EPS_2:\n                k = -1  # run interrupted\n            else:\n                if k < 0:\n                    k = 1  # mark as first small value\n                if (j - k) >= ((j + 7) // 8):\n                    # run of at least (j - 1) // 8 small values\n                    return pP[:j]  # break while L loop\n            _P(-p)\n    return pP  # no convergence, use pP as-is\n\n\ndef _RAseries(auxD):\n    # Series expansions in n for Fourier coeffients of the integral\n    # @see: U{\"Series expansions for computing rhumb areas\"\n    #       <https://DOI.org/10.5281/zenodo.7685484>}.\n    d  =  n = auxD._n\n    i  =  0\n    aL =  auxD.ALorder\n    Cs = _RACoeffs[aL]\n    # assert len(Cs) == (aL * (aL + 1)) // 2\n    pP = []\n    _p = _polynomial\n    for m in _reverange(aL):  # order\n        j  = i + m + 1\n        pP.append(_p(n, Cs, i, j) * d)\n        d *= n\n        i  = j\n    # assert i == len(pP)\n    return pP\n\n\n_RACoeffs = _Rdict(110,  # Rhumb Area Coefficients in matrix Q\n _Rtuple(_Rkey(4), 10,  # GEOGRAPHICLIB_RHUMBAREA_ORDER == 4\n    '596/2025, -398/945, 22/45, -1/3',\n    '1543/4725, -118/315, 1/5',\n    '152/945, -17/315',\n    '5/252'),\n _Rtuple(_Rkey(5), 15,  # GEOGRAPHICLIB_RHUMBAREA_ORDER == 5\n    '-102614/467775, 596/2025, -398/945, 22/45, -1/3',\n    '-24562/155925, 1543/4725, -118/315, 1/5',\n    '-38068/155925, 152/945, -17/315',\n    '-752/10395, 5/252',\n    '-101/17325'),\n _Rtuple(_Rkey(6), 21,  # GEOGRAPHICLIB_RHUMBAREA_ORDER == 6\n    '138734126/638512875, -102614/467775, 596/2025, -398/945, 22/45, -1/3',\n    '17749373/425675250, -24562/155925, 1543/4725, -118/315, 1/5',\n    '1882432/8513505, -38068/155925, 152/945, -17/315',\n    '268864/2027025, -752/10395, 5/252',\n    '62464/2027025, -101/17325',\n    '11537/4054050'),\n _Rtuple(_Rkey(7), 28,  # GEOGRAPHICLIB_RHUMBAREA_ORDER == 7\n    '-565017322/1915538625, 138734126/638512875, -102614/467775, 596/2025, -398/945, 22/45, -1/3',\n    '-1969276/58046625, 17749373/425675250, -24562/155925, 1543/4725, -118/315, 1/5',\n    '-58573784/638512875, 1882432/8513505, -38068/155925, 152/945, -17/315',\n    '-6975184/42567525, 268864/2027025, -752/10395, 5/252',\n    '-112832/1447875, 62464/2027025, -101/17325',\n    '-4096/289575, 11537/4054050',\n    '-311/525525'),\n _Rtuple(_Rkey(8), 36,  # GEOGRAPHICLIB_RHUMBAREA_ORDER == 8\n    '188270561816/488462349375, -565017322/1915538625, 138734126/638512875, -102614/467775, 596/2025, -398/945, 22/45, -1/3',\n    '2332829602/23260111875, -1969276/58046625, 17749373/425675250, -24562/155925, 1543/4725, -118/315, 1/5',\n    '-41570288/930404475, -58573784/638512875, 1882432/8513505, -38068/155925, 152/945, -17/315',\n    '1538774036/10854718875, -6975184/42567525, 268864/2027025, -752/10395, 5/252',\n    '436821248/3618239625, -112832/1447875, 62464/2027025, -101/17325',\n    '3059776/80405325, -4096/289575, 11537/4054050',\n    '4193792/723647925, -311/525525',\n    '1097653/1929727800')\n)\ndel _Rdict, _Rkey, _Rtuple\n\n__all__ += _ALL_DOCS(Caps)\n\n# **) MIT License\n#\n# Copyright (C) 2023-2026 -- mrJean1 at Gmail -- All Rights Reserved.\n#\n# Permission is hereby granted, free of charge, to any person obtaining a\n# copy of this software and associated documentation files (the \"Software\"),\n# to deal in the Software without restriction, including without limitation\n# the rights to use, copy, modify, merge, publish, distribute, sublicense,\n# and/or sell copies of the Software, and to permit persons to whom the\n# Software is furnished to do so, subject to the following conditions:\n#\n# The above copyright notice and this permission notice shall be included\n# in all copies or substantial portions of the Software.\n#\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL\n# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR\n# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\n# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n# OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "pygeodesy/rhumb/bases.py",
    "content": "\n# -*- coding: utf-8 -*-\n\nu'''(INTERNAL) base classes C{RhumbBase} and C{RhumbLineBase}, pure Python version of I{Karney}'s\nC++ classes U{Rhumb<https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Rhumb.html>}\nand U{RhumbLine<https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1RhumbLine.html>}\nfrom I{GeographicLib versions 2.0} and I{2.2} and I{Karney}'s C++ example U{Rhumb intersect\n<https://SourceForge.net/p/geographiclib/discussion/1026620/thread/2ddc295e/>}.\n\nClass L{RhumbLineBase} has been enhanced with methods C{Intersecant2}, C{Intersection} and C{PlumbTo}\nto iteratively find the intersection of a rhumb line and a circle or an other rhumb line, respectively\na perpendicular geodesic or other rhumb line.\n\nFor more details, see the C++ U{GeographicLib<https://GeographicLib.SourceForge.io/C++/doc/index.html>}\ndocumentation, especially the U{Class List<https://GeographicLib.SourceForge.io/C++/doc/annotated.html>},\nthe background information on U{Rhumb lines<https://GeographicLib.SourceForge.io/C++/doc/rhumb.html>},\nthe utily U{RhumbSolve<https://GeographicLib.SourceForge.io/C++/doc/RhumbSolve.1.html>} and U{Online\nrhumb line calculations<https://GeographicLib.SourceForge.io/cgi-bin/RhumbSolve>}.\n\nCopyright (C) U{Charles Karney<mailto:Karney@Alum.MIT.edu>} (2014-2024) and licensed under the MIT/X11\nLicense.  For more information, see the U{GeographicLib<https://GeographicLib.SourceForge.io>} documentation.\n'''\n# make sure int/int division yields float quotient\nfrom __future__ import division as _; del _  # noqa: E702 ;\n\nfrom pygeodesy.basics import _copysign, itemsorted, unsigned0, _xinstanceof\nfrom pygeodesy.constants import EPS, EPS0, EPS1, INT0, NAN, _over, \\\n                               _EPSqrt as _TOL, _0_0, _0_01, _1_0, _90_0\nfrom pygeodesy.datums import Datum, _earth_datum, _spherical_datum, _WGS84\nfrom pygeodesy.errors import IntersectionError, RhumbError, _xdatum, \\\n                            _xkwds, _xkwds_pop2, _Xorder\n# from pygeodesy.etm import ExactTransverseMercator  # _MODS\nfrom pygeodesy.fmath import euclid, favg, sqrt_a,  Fsum\n# from pygeodesy.formy import opposing  # _MODS\n# from pygeodesy.fsums import Fsum  # from .fmath\nfrom pygeodesy.internals import typename, _under\nfrom pygeodesy.interns import NN, _coincident_, _COMMASPACE_, _Dash, \\\n                             _DMAIN_, _parallel_, _too_\nfrom pygeodesy.karney import _atan2d, Caps, _CapsBase, _diff182, _fix90, \\\n                             _norm180, GDict\n# from pygeodesy.ktm import KTransverseMercator, _AlpCoeffs  # _MODS\nfrom pygeodesy.lazily import _ALL_DOCS, _ALL_MODS as _MODS\nfrom pygeodesy.namedTuples import Distance2Tuple, LatLon2Tuple\nfrom pygeodesy.props import deprecated_method, Property, Property_RO, \\\n                            property_RO, _update_all\nfrom pygeodesy.streprs import Fmt, pairs\nfrom pygeodesy.units import Float_, Lat, Lon, Meter, Radius_\nfrom pygeodesy.utily import acos1, _azireversed, _loneg, sincos2d, sincos2d_, \\\n                           _unrollon, _Wrap\nfrom pygeodesy.vector3d import _intersect3d3, Vector3d  # in .Intersection below\n\nfrom math import cos, fabs\n\n__all__ = ()\n__version__ = '25.05.12'\n\n_anti_ = _Dash('anti')\n_rls   = []  # instances of C{RbumbLine...} to be updated\n_TRIPS =  129  # .Intersection, .PlumbTo, 19+\n\n\nclass _Lat(Lat):\n    '''(INTERNAL) Latitude B{C{lat}}.\n    '''\n    def __init__(self, *lat, **Error_name):\n        kwds = _xkwds(Error_name, clip=0, Error=RhumbError)\n        Lat.__new__(_Lat, *lat, **kwds)\n\n\nclass _Lon(Lon):\n    '''(INTERNAL) Longitude B{C{lon}}.\n    '''\n    def __init__(self, *lon, **Error_name):\n        kwds = _xkwds(Error_name, clip=0, Error=RhumbError)\n        Lon.__new__(_Lon, *lon, **kwds)\n\n\ndef _update_all_rls(r):\n    '''(INTERNAL) Zap cached/memoized C{Property[_RO]}s\n       of any C{RhumbLine} instances tied to the given\n       C{Rhumb} instance B{C{r}}.\n    '''\n    # _xinstanceof(_MODS.rhumb.aux_.RhumbAux, _MODS.rhumb.ekx.Rhumb, r=r)\n    _update_all(r)\n    for rl in _rls:  # PYCHOK use weakref?\n        if rl._rhumb is r:\n            _update_all(rl)\n\n\nclass RhumbBase(_CapsBase):\n    '''(INTERNAL) Base class for C{rhumb.aux_.RhumbAux} and C{rhumb.ekx.Rhumb}.\n    '''\n    _datum = _WGS84\n    _exact =  True\n    _f_max = _0_01\n    _mTM   =  6  # see .TMorder\n\n    def __init__(self, a_earth, f, exact, TMorder_name):\n        '''New C{RhumbAux} or C{Rhumb}.\n        '''\n        if TMorder_name:\n            M = self._mTM\n            m, name = _xkwds_pop2(TMorder_name, TMorder=M)\n            if m != M:\n                self.TMorder = m\n        else:\n            name = {}\n        _earth_datum(self, a_earth, f=f, **name)\n        if not exact:\n            self.exact = False\n        if name:\n            self.name = name\n\n    @Property_RO\n    def a(self):\n        '''Get the C{ellipsoid}'s equatorial radius, semi-axis (C{meter}).\n        '''\n        return self.ellipsoid.a\n\n    equatoradius = a\n\n    def ArcDirect(self, lat1, lon1, azi12, a12, outmask=Caps.LATITUDE_LONGITUDE):\n        '''Solve the I{direct rhumb} problem, optionally with area.\n\n           @arg lat1: Latitude of the first point (C{degrees90}).\n           @arg lon1: Longitude of the first point (C{degrees180}).\n           @arg azi12: Azimuth of the rhumb line (compass C{degrees}).\n           @arg a12: Angle along the rhumb line from the given to the\n                     destination point (C{degrees}), can be negative.\n\n           @return: L{GDict} with 2 up to 8 items C{lat2, lon2, a12, S12,\n                    lat1, lon1, azi12, s12} with the destination point's\n                    latitude C{lat2} and longitude C{lon2} in C{degrees},\n                    the rhumb angle C{a12} in C{degrees} and area C{S12}\n                    under the rhumb line in C{meter} I{squared}.\n\n           @raise ImportError: Package C{numpy} not found or not installed,\n                               only required for area C{S12} when C{B{exact}\n                               is True} and L{RhumbAux}.\n\n           @note: If B{C{a12}} is large enough that the rhumb line crosses\n                  a pole, the longitude of the second point is indeterminate\n                  and C{NAN} is returned for C{lon2} and area C{S12}.\n\n           @note: If the given point is a pole, the cosine of its latitude is\n                  taken to be C{sqrt(L{EPS})}.  This position is extremely\n                  close to the actual pole and allows the calculation to be\n                  carried out in finite terms.\n        '''\n        s12 = a12 * self._mpd\n        return self._DirectRhumb(lat1, lon1, azi12, a12, s12, outmask)\n\n    @Property_RO\n    def b(self):\n        '''Get the C{ellipsoid}'s polar radius, semi-axis (C{meter}).\n        '''\n        return self.ellipsoid.b\n\n    polaradius = b\n\n    @property\n    def datum(self):\n        '''Get this rhumb's datum (L{Datum}).\n        '''\n        return self._datum\n\n    @datum.setter  # PYCHOK setter!\n    def datum(self, datum):\n        '''Set this rhumb's datum (L{Datum}).\n\n           @raise RhumbError: If C{abs(B{f}} exceeds non-zero C{f_max} and C{exact=False}.\n        '''\n        _xinstanceof(Datum, datum=datum)\n        if self._datum != datum:\n            self._exactest(self.exact, datum.ellipsoid, self.f_max)\n            _update_all_rls(self)\n            self._datum = datum\n\n    def _Direct(self, ll1, azi12, s12, **outmask):\n        '''(INTERNAL) Short-cut version, see .latlonBase.rhumb....\n        '''\n        return self.Direct(ll1.lat, ll1.lon, azi12, s12, **outmask)\n\n    def Direct(self, lat1, lon1, azi12, s12, outmask=Caps.LATITUDE_LONGITUDE):\n        '''Solve the I{direct rhumb} problem, optionally with area.\n\n           @arg lat1: Latitude of the first point (C{degrees90}).\n           @arg lon1: Longitude of the first point (C{degrees180}).\n           @arg azi12: Azimuth of the rhumb line (compass C{degrees}).\n           @arg s12: Distance along the rhumb line from the given to\n                     the destination point (C{meter}), can be negative.\n\n           @return: L{GDict} with 2 up to 8 items C{lat2, lon2, a12, S12,\n                    lat1, lon1, azi12, s12} with the destination point's\n                    latitude C{lat2} and longitude C{lon2} in C{degrees},\n                    the rhumb angle C{a12} in C{degrees} and area C{S12}\n                    under the rhumb line in C{meter} I{squared}.\n\n           @raise ImportError: Package C{numpy} not found or not installed,\n                               only required for area C{S12} when C{B{exact}\n                               is True} and L{RhumbAux}.\n\n           @note: If B{C{s12}} is large enough that the rhumb line crosses\n                  a pole, the longitude of the second point is indeterminate\n                  and C{NAN} is returned for C{lon2} and area C{S12}.\n\n           @note: If the given point is a pole, the cosine of its latitude is\n                  taken to be C{sqrt(L{EPS})}.  This position is extremely\n                  close to the actual pole and allows the calculation to be\n                  carried out in finite terms.\n        '''\n        a12 = _over(s12, self._mpd)\n        return self._DirectRhumb(lat1, lon1, azi12, a12, s12, outmask)\n\n    def Direct8(self, lat1, lon1, azi12, s12, outmask=Caps.LATITUDE_LONGITUDE_AREA):\n        '''Like method L{Rhumb.Direct} but returning a L{Rhumb8Tuple} with area C{S12}.\n        '''\n        return self.Direct(lat1, lon1, azi12, s12, outmask=outmask).toRhumb8Tuple()\n\n    def _DirectLine(self, ll1, azi12, **caps_name):\n        '''(INTERNAL) Short-cut version, see .latlonBase.\n        '''\n        return self.DirectLine(ll1.lat, ll1.lon, azi12, **caps_name)\n\n    def DirectLine(self, lat1, lon1, azi12, **caps_name):\n        '''Define a C{RhumbLine} in terms of the I{direct} rhumb\n           problem to compute several points on a single rhumb line.\n\n           @arg lat1: Latitude of the first point (C{degrees90}).\n           @arg lon1: Longitude of the first point (C{degrees180}).\n           @arg azi12: Azimuth of the rhumb line (compass C{degrees}).\n           @kwarg caps_name: Optional keyword arguments C{B{name}=NN} and\n                       C{B{caps}=Caps.STANDARD}, a bit-or'ed combination of\n                       L{Caps<pygeodesy.karney.Caps>} values specifying the\n                       required capabilities.  Include C{Caps.LINE_OFF} if\n                       updates to the B{C{rhumb}} should I{not be reflected}\n                       in this rhumb line.\n\n           @return: A C{RhumbLine...} instance and invoke its method\n                    C{.Position} to compute each point.\n\n           @note: Updates to this rhumb are reflected in the returned\n                  rhumb line, unless C{B{caps} |= Caps.LINE_OFF}.\n        '''\n        return self._RhumbLine(self, lat1, lon1, azi12, **caps_name)\n\n    Line = DirectLine  # synonyms\n\n    def _DirectRhumb(self, lat1, lon1, azi12, a12, s12, outmask):\n        '''(INTERNAL) See methods C{.ArcDirect} and C{.Direct}.\n        '''\n        rl = self._RhumbLine(self, lat1, lon1, azi12, caps=Caps.LINE_OFF,\n                                                      name=self.name)\n        return rl._Position(a12, s12, outmask | self._debug)  # lat2, lon2, S12\n\n    @Property\n    def ellipsoid(self):\n        '''Get this rhumb's ellipsoid (L{Ellipsoid}).\n        '''\n        return self.datum.ellipsoid\n\n    @ellipsoid.setter  # PYCHOK setter!\n    def ellipsoid(self, a_earth_f):\n        '''Set this rhumb's ellipsoid (L{Ellipsoid}, L{Ellipsoid2}, L{Datum} or\n           L{a_f2Tuple}) or (equatorial) radius and flattening (2-tuple C{(a, f)}).\n\n           @raise RhumbError: If C{abs(B{f}} exceeds non-zero C{f_max} and C{exact=False}.\n        '''\n        self.datum = _spherical_datum(a_earth_f, Error=RhumbError)\n\n    @Property\n    def exact(self):\n        '''Get the I{exact} option (C{bool}).\n        '''\n        return self._exact\n\n    @exact.setter  # PYCHOK setter!\n    def exact(self, exact):\n        '''Set the I{exact} option (C{bool}).  If C{True}, use I{exact} rhumb\n           expressions, otherwise a series expansion (accurate for oblate or\n           prolate ellipsoids with C{abs(flattening)} below C{f_max}.\n\n           @raise RhumbError: If C{B{exact}=False} and C{abs(flattening})\n                              exceeds non-zero C{f_max}.\n\n           @see: Option U{B{-s}<https://GeographicLib.SourceForge.io/C++/doc/RhumbSolve.1.html>}\n                 and U{ACCURACY<https://GeographicLib.SourceForge.io/C++/doc/RhumbSolve.1.html#ACCURACY>}.\n        '''\n        x = bool(exact)\n        if self._exact != x:\n            self._exactest(x, self.ellipsoid, self.f_max)\n            _update_all_rls(self)\n            self._exact = x\n\n    def _exactest(self, exact, ellipsoid, f_max):\n        # Helper for property setters C{ellipsoid}, C{exact} and C{f_max}\n        if fabs(ellipsoid.f) > f_max > 0 and not exact:\n            raise RhumbError(exact=exact, f=ellipsoid.f, f_max=f_max)\n\n    @Property_RO\n    def f(self):\n        '''Get the C{ellipsoid}'s flattening (C{float}).\n        '''\n        return self.ellipsoid.f\n\n    flattening = f\n\n    @property\n    def f_max(self):\n        '''Get the I{max.} flattening (C{float}).\n        '''\n        return self._f_max\n\n    @f_max.setter  # PYCHOK setter!\n    def f_max(self, f_max):  # PYCHOK no cover\n        '''Set the I{max.} flattening, not to exceed (C{float}).\n\n           @raise RhumbError: If C{exact=False} and C{abs(flattening})\n                              exceeds non-zero C{f_max}.\n        '''\n        f = Float_(f_max=f_max, low=_0_0, high=EPS1)\n        if self._f_max != f:\n            self._exactest(self.exact, self.ellipsoid, f)\n            self._f_max = f\n\n    def _Inverse(self, ll1, ll2, wrap, **outmask):\n        '''(INTERNAL) Short-cut version, see .latlonBase.rhumb....\n        '''\n        if wrap:\n            ll2 = _unrollon(ll1, _Wrap.point(ll2))\n        return self.Inverse(ll1.lat, ll1.lon, ll2.lat, ll2.lon, **outmask)\n\n    def Inverse(self, lat1, lon1, lat2, lon2, outmask=Caps.AZIMUTH_DISTANCE):\n        '''Solve the I{inverse rhumb} problem.\n\n           @arg lat1: Latitude of the first point (C{degrees90}).\n           @arg lon1: Longitude of the first point (C{degrees180}).\n           @arg lat2: Latitude of the second point (C{degrees90}).\n           @arg lon2: Longitude of the second point (C{degrees180}).\n\n           @return: L{GDict} with 4 to 9 items C{lat1, lon1, lat2, lon2,\n                    azi12, azi21, s12, a12, S12}, the rhumb line's azimuth\n                    C{azi12} and I{reverse} azimuth C{azi21}, both in\n                    compass C{degrees} between C{-180} and C{+180}, the\n                    rhumb distance C{s12} and rhumb angle C{a12} between\n                    both points in C{meter} respectively C{degrees} and\n                    the area C{S12} under the rhumb line in C{meter}\n                    I{squared}.\n\n           @raise ImportError: Package C{numpy} not found or not installed,\n                               only required for L{RhumbAux} area C{S12}\n                               when C{B{exact} is True}.\n\n           @note: The shortest rhumb line is found.  If the end points are\n                  on opposite meridians, there are two shortest rhumb lines\n                  and the East-going one is chosen.\n\n           @note: If either point is a pole, the cosine of its latitude is\n                  taken to be C{sqrt(L{EPS})}.  This position is extremely\n                  close to the actual pole and allows the calculation to be\n                  carried out in finite terms.\n        '''\n        r  = GDict(lat1=lat1, lon1=lon1, lat2=lat2, lon2=lon2, name=self.name)\n        Cs = Caps\n        if (outmask & Cs.AZIMUTH_DISTANCE_AREA):\n            lon12, _ = _diff182(lon1, lon2, K_2_0=True)\n            y, x, s1, s2 = self._Inverse4(lon12, r, outmask)\n            if (outmask & Cs.AZIMUTH):\n                z = _atan2d(y, x)\n                r.set_(azi12=z, azi21=_azireversed(z))\n            if (outmask & Cs.AREA):\n                S12 = self._S12d(s1, s2, lon12)\n                r.set_(S12=unsigned0(S12))  # like .gx\n        return r\n\n    def _Inverse4(self, lon12, r, outmask):  # PYCHOK no cover\n        '''(INTERNAL) I{Must be overloaded}.'''\n        self._notOverloaded(lon12, r, Caps.toStr(outmask))  # underOK=True\n\n    def Inverse8(self, lat1, lon1, azi12, s12, outmask=Caps.AZIMUTH_DISTANCE_AREA):\n        '''Like method L{Rhumb.Inverse} but returning a L{Rhumb8Tuple} with area C{S12}.\n        '''\n        return self.Inverse(lat1, lon1, azi12, s12, outmask=outmask).toRhumb8Tuple()\n\n    def _InverseLine(self, ll1, ll2, wrap, **caps_name):\n        '''(INTERNAL) Short-cut version, see .latlonBase.\n        '''\n        if wrap:\n            ll2 = _unrollon(ll1, _Wrap.point(ll2))\n        return self.InverseLine(ll1.lat, ll1.lon, ll2.lat, ll2.lon, **caps_name)\n\n    def InverseLine(self, lat1, lon1, lat2, lon2, **caps_name):\n        '''Define a C{RhumbLine} in terms of the I{inverse} rhumb problem.\n\n           @arg lat1: Latitude of the first point (C{degrees90}).\n           @arg lon1: Longitude of the first point (C{degrees180}).\n           @arg lat2: Latitude of the second point (C{degrees90}).\n           @arg lon2: Longitude of the second point (C{degrees180}).\n           @kwarg caps_name: Optional keyword arguments C{B{name}=NN} and\n                       C{B{caps}=Caps.STANDARD}, a bit-or'ed combination of\n                       L{Caps<pygeodesy.karney.Caps>} values specifying the\n                       required capabilities.  Include C{Caps.LINE_OFF} if\n                       updates to the B{C{rhumb}} should I{not be reflected}\n                       in this rhumb line.\n\n           @return: A C{RhumbLine...} instance and invoke its method\n                    C{ArcPosition} or C{Position} to compute points.\n\n           @note: Updates to this rhumb are reflected in the returned\n                  rhumb line, unless C{B{caps} |= Caps.LINE_OFF}.\n        '''\n        r = self.Inverse(lat1, lon1, lat2, lon2, outmask=Caps.AZIMUTH)\n        return self._RhumbLine(self, lat1, lon1, r.azi12, **caps_name)\n\n    @Property_RO\n    def _mpd(self):  # PYCHOK no cover\n        '''(INTERNAL) I{Must be overloaded}.'''\n        _MODS.named.notOverloaded(self)\n\n    @property_RO\n    def RAorder(self):\n        '''Get the I{Rhumb Area} order, C{None} always.\n        '''\n        return None\n\n    @property_RO\n    def _RhumbLine(self):  # PYCHOK no cover\n        '''(INTERNAL) I{Must be overloaded}.'''\n        self._notOverloaded(underOK=True)\n\n    def _S12d(self, s1, s2, lon):  # PYCHOK no cover\n        '''(INTERNAL) I{Must be overloaded}.'''\n        self._notOverloaded(s1, s2, lon)  # underOK=True\n\n    @Property\n    def TMorder(self):\n        '''Get the L{KTransverseMercator} order (C{int}, 4, 5, 6, 7 or 8).\n        '''\n        return self._mTM\n\n    @TMorder.setter  # PYCHOK setter!\n    def TMorder(self, order):\n        '''Set the L{KTransverseMercator} order (C{int}, 4, 5, 6, 7 or 8).\n\n           @note: Setting C{TMorder} turns property C{exact} off, but only\n                  for L{Rhumb} instances.\n        '''\n        m = _Xorder(_MODS.ktm._AlpCoeffs, RhumbError, TMorder=order)\n        if self._mTM != m:\n            _update_all_rls(self)\n            self._mTM = m\n            if self.exact and isinstance(self, _MODS.rhumb.ekx.Rhumb):\n                self.exact = False\n\n    def toStr(self, prec=6, sep=_COMMASPACE_, **unused):  # PYCHOK signature\n        '''Return this C{Rhumb} as string.\n\n           @kwarg prec: The C{float} precision, number of decimal digits (0..9).\n                        Trailing zero decimals are stripped for B{C{prec}} values\n                        of 1 and above, but kept for negative B{C{prec}} values.\n           @kwarg sep: Separator to join (C{str}).\n\n           @return: Tuple items (C{str}).\n        '''\n        d = dict(ellipsoid=self.ellipsoid, RAorder=self.RAorder,\n                     exact=self.exact,     TMorder=self.TMorder)\n        return sep.join(pairs(itemsorted(d, asorted=False), prec=prec))\n\n\nclass RhumbLineBase(_CapsBase):\n    '''(INTERNAL) Base class for C{rhumb.aux_.RhumbLineAux} and C{rhumb.ekx.RhumbLine}.\n    '''\n    _azi12 = _0_0\n    _calp  = _1_0\n#   _caps  =  \\\n#   _debug =  0\n#   _lat1  =  \\\n#   _lon1  =  \\\n#   _lon12 = _0_0\n    _Rhumb =  RhumbBase  # compatible C{Rhumb} class\n    _rhumb =  None  # C{Rhumb} instance\n    _salp  =  \\\n    _talp  = _0_0\n\n    def __init__(self, rhumb, lat1, lon1, azi12, caps=Caps.STANDARD, name=NN):\n        '''New C{RhumbLine} or C{RhumbLineAux}.\n        '''\n        _xinstanceof(self._Rhumb, rhumb=rhumb)\n\n        self._lat1  = _Lat(lat1=_fix90(lat1))\n        self._lon1  = _Lon(lon1=       lon1)\n        self._lon12 = _norm180(self._lon1)\n        if azi12:  # non-zero, non-None\n            self.azi12 = _norm180(azi12)\n\n        n = name or rhumb.name\n        if n:\n            self.name=n\n\n        self._caps   =  caps\n        self._debug |= (caps | rhumb._debug) & Caps._DEBUG_DIRECT_LINE\n        if (caps & Caps.LINE_OFF):  # copy to avoid updates\n            self._rhumb = rhumb.copy(deep=False, name=_under(rhumb.name))\n        else:\n            self._rhumb = rhumb\n            _rls.append(self)\n\n    def __del__(self):  # XXX use weakref?\n        if _rls:  # may be empty or None\n            try:  # PYCHOK no cover\n                _rls.remove(self)\n            except (TypeError, ValueError):\n                pass\n        self._rhumb = None\n        # _update_all(self)  # throws TypeError during Python 2 cleanup\n\n    def ArcPosition(self, a12, outmask=Caps.LATITUDE_LONGITUDE):\n        '''Compute a point at a given angular distance on this rhumb line.\n\n           @arg a12: The angle along this rhumb line from its origin to the\n                     point (C{degrees}), can be negative.\n           @kwarg outmask: Bit-or'ed combination of L{Caps<pygeodesy.karney.Caps>}\n                           values specifying the quantities to be returned.\n\n           @return: L{GDict} with 4 to 8 items C{azi12, a12, s12, S12, lat2,\n                    lon2, lat1, lon1} with latitude C{lat2} and longitude\n                    C{lon2} of the point in C{degrees}, the rhumb distance\n                    C{s12} in C{meter} from the start point of and the area\n                    C{S12} under this rhumb line in C{meter} I{squared}.\n\n           @raise ImportError: Package C{numpy} not found or not installed,\n                               only required for L{RhumbLineAux} area C{S12}\n                               when C{B{exact} is True}.\n\n           @note: If B{C{a12}} is large enough that the rhumb line crosses a\n                  pole, the longitude of the second point is indeterminate and\n                  C{NAN} is returned for C{lon2} and area C{S12}.\n\n                  If the first point is a pole, the cosine of its latitude is\n                  taken to be C{sqrt(L{EPS})}.  This position is extremely\n                  close to the actual pole and allows the calculation to be\n                  carried out in finite terms.\n        '''\n        return self._Position(a12, self.degrees2m(a12), outmask)\n\n    @Property\n    def azi12(self):\n        '''Get this rhumb line's I{azimuth} (compass C{degrees}).\n        '''\n        return self._azi12\n\n    @azi12.setter  # PYCHOK setter!\n    def azi12(self, azi12):\n        '''Set this rhumb line's I{azimuth} (compass C{degrees}).\n        '''\n        z = _norm180(azi12)\n        if self._azi12 != z:\n            if self._rhumb:\n                _update_all(self)\n            self._azi12 = z\n            self._salp, self._calp = t = sincos2d(z)  # no NEG0\n            self._talp = _over(*t)\n\n    @property_RO\n    def azi12_sincos2(self):  # PYCHOK no cover\n        '''Get the sine and cosine of this rhumb line's I{azimuth} (2-tuple C{(sin, cos)}).\n        '''\n        return self._scalp, self._calp\n\n    @property_RO\n    def datum(self):\n        '''Get this rhumb line's datum (L{Datum}).\n        '''\n        return self.rhumb.datum\n\n    def degrees2m(self, angle):\n        '''Convert an angular distance along this rhumb line to C{meter}.\n\n           @arg angle: Angular distance (C{degrees}).\n\n           @return: Distance (C{meter}).\n        '''\n        return float(angle) * self.rhumb._mpd\n\n    @deprecated_method\n    def distance2(self, lat, lon):  # PYCHOK no cover\n        '''DEPRECATED on 23.09.23, use method L{RhumbLineAux.Inverse} or L{RhumbLine.Inverse}.\n\n           @return: A L{Distance2Tuple}C{(distance, initial)} with the C{distance}\n                    in C{meter} and C{initial} bearing (azimuth) in C{degrees}.\n        '''\n        r = self.Inverse(lat, lon)\n        return Distance2Tuple(r.s12, r.azi12)\n\n    @property_RO\n    def ellipsoid(self):\n        '''Get this rhumb line's ellipsoid (L{Ellipsoid}).\n        '''\n        return self.rhumb.ellipsoid\n\n    @property_RO\n    def exact(self):\n        '''Get this rhumb line's I{exact} option (C{bool}).\n        '''\n        return self.rhumb.exact\n\n    def Intersecant2(self, lat0, lon0, radius, napier=True, **tol_eps):\n        '''Compute the intersection(s) of this rhumb line and a circle.\n\n           @arg lat0: Latitude of the circle center (C{degrees}).\n           @arg lon0: Longitude of the circle center (C{degrees}).\n           @arg radius: Radius of the circle (C{meter}, conventionally).\n           @kwarg napier: If C{True}, apply I{Napier}'s spherical triangle\n                          instead of planar trigonometry (C{bool}).\n           @kwarg tol_eps: Optional keyword arguments, see method\n                           method L{Intersection} for further details.\n\n           @return: 2-Tuple C{(P, Q)} with both intersections (representing\n                    a rhumb chord), each a L{GDict} from method L{Intersection}\n                    extended to 18 items by C{lat3, lon3, azi03, a03, s03}\n                    with azimuth C{azi03} of, distance C{a03} in C{degrees}\n                    and C{s03} in C{meter} along the rhumb line from the circle\n                    C{lat0, lon0} to the chord center C{lat3, lon3}.  If this\n                    rhumb line is tangential to the circle, both points\n                    are the same L{GDict} instance with distances C{s02} and\n                    C{s03} near-equal to the B{C{radius}}.\n\n           @raise IntersectionError: The circle and this rhumb line\n                                     do not intersect.\n\n           @raise UnitError: Invalid B{C{radius}}.\n        '''\n        r = Radius_(radius)\n        p = q = self.PlumbTo(lat0, lon0, exact=None, **tol_eps)\n        a = q.s02\n        t = dict(lat3=q.lat2, lon3=q.lon2, azi03=q.azi02, a03=q.a02, s03=a)\n        if a < r:\n            t.update(iteration=q.iteration, lat0=q.lat1, lon0=q.lon1,  # or lat0, lon0\n                     name=typename(self.Intersecant2, self.name))\n            if fabs(a) < EPS0:  # coincident centers\n                d, h = _0_0, r\n            else:\n                d = q.s12\n                if napier:  # Napier rule (R1) cos(b) = cos(c) / cos(a)\n                    # <https://WikiPedia.org/wiki/Spherical_trigonometry>\n                    m =  self.rhumb._mpr\n                    h = (acos1(cos(r / m) / cos(a / m)) * m) if m else _0_0\n                else:\n                    h = _copysign(sqrt_a(r, a), a)\n            p = q = self.Position(d + h).set_(**t)\n            if h:\n                q = self.Position(d - h).set_(**t)\n        elif a > r:\n            t = _too_(Fmt.distant(a))\n            raise IntersectionError(self, lat0, lon0, radius,\n                                          txt=t, **tol_eps)\n        else:  # tangential\n            q.set_(**t)  # == p.set(_**t)\n        return p, q\n\n    @deprecated_method\n    def intersection2(self, other, **tol_eps):  # PYCHOK no cover\n        '''DEPRECATED on 23.10.10, use method L{Intersection}.'''\n        p = self.Intersection(other, **tol_eps)\n        r = LatLon2Tuple(p.lat2, p.lon2, name=typename(self.intersection2))\n        r._iteration = p.iteration\n        return r\n\n    def Intersection(self, other, tol=_TOL, **eps):\n        '''I{Iteratively} find the intersection of this and an other rhumb line.\n\n           @arg other: The other rhumb line (C{RhumbLine}).\n           @kwarg tol: Tolerance for longitudinal convergence and parallel\n                       error (C{degrees}).\n           @kwarg eps: Tolerance for L{pygeodesy.intersection3d3} (C{EPS}).\n\n           @return: The intersection point, a L{Position}-like L{GDict} with\n                    13 items C{lat1, lon1, azi12, a12, s12, lat2, lon2, lat0,\n                    lon0, azi02, a02, s02, at} with the rhumb angle C{a02}\n                    and rhumb distance C{s02} between the start point C{lat0,\n                    lon0} of the B{C{other}} rhumb line and the intersection\n                    C{lat2, lon2}, the azimuth C{azi02} of the B{C{other}}\n                    rhumb line and the angle C{at} between both rhumb lines.\n                    See method L{Position} for further details.\n\n           @raise IntersectionError: No convergence for this B{C{tol}} or\n                                     no intersection for an other reason.\n\n           @see: Methods C{distance2} and C{PlumbTo} and function\n                 L{pygeodesy.intersection3d3}.\n\n           @note: Each iteration involves a round trip to this rhumb line's\n                  L{ExactTransverseMercator} or L{KTransverseMercator}\n                  projection and function L{pygeodesy.intersection3d3} in\n                  that domain.\n        '''\n        _xinstanceof(RhumbLineBase, other=other)\n        _xdatum(self.rhumb, other.rhumb, Error=RhumbError)\n        try:\n            if self.others(other) is self:\n                raise ValueError(_coincident_)\n            # make invariants and globals locals\n            _s_3d, s_az =  self._xTM3d,  self.azi12\n            _o_3d, o_az = other._xTM3d, other.azi12\n            p = _MODS.formy.opposing(s_az, o_az, margin=tol)\n            if p is not None:  # == isbool(p)\n                raise ValueError(_anti_(_parallel_) if p else _parallel_)\n            _diff =  euclid  # approximate length\n            _i3d3 = _intersect3d3  # NOT .vector3d.intersection3d3\n            _LL2T =  LatLon2Tuple\n            _xTMr =  self.xTM.reverse  # ellipsoidal or spherical\n            # use halfway point as initial estimate\n            p = _LL2T(favg(self.lat1, other.lat1),\n                      favg(self.lon1, other.lon1))\n            for i in range(1, _TRIPS):\n                v = _i3d3(_s_3d(p), s_az,  # point + bearing\n                          _o_3d(p), o_az, useZ=False, **eps)[0]\n                t = _xTMr(v.x, v.y, lon0=p.lon)  # PYCHOK Reverse4Tuple\n                d = _diff(t.lon - p.lon, t.lat)  # PYCHOK t.lat + p.lat - p.lat\n                p = _LL2T(t.lat + p.lat, t.lon)  # PYCHOK t.lon + p.lon = lon0\n                if d < tol:  # 19+ trips\n                    break\n            else:\n                raise ValueError(Fmt.no_convergence(d, tol))\n\n            P = GDict(lat1=self.lat1, lat2=p.lat, lat0=other.lat1,\n                      lon1=self.lon1, lon2=p.lon, lon0=other.lon1,\n                      name=typename(self.Intersection, self.name))\n            r =  self.Inverse(p.lat, p.lon, outmask=Caps.DISTANCE)\n            t = other.Inverse(p.lat, p.lon, outmask=Caps.DISTANCE)\n            P.set_(azi12= self.azi12, a12=r.a12, s12=r.s12,\n                   azi02=other.azi12, a02=t.a12, s02=t.s12,\n                   at=other.azi12 - self.azi12, iteration=i)\n        except Exception as x:\n            raise IntersectionError(self, other, tol=tol, cause=x, **eps)\n        return P\n\n    def Inverse(self, lat2, lon2, wrap=False, **outmask):\n        '''Return the rhumb angle, distance, azimuth, I{reverse} azimuth, etc. of\n           a rhumb line between the given point and this rhumb line's start point.\n\n           @arg lat2: Latitude of the point (C{degrees}).\n           @arg lon2: Longitude of the points (C{degrees}).\n           @kwarg wrap: If C{True}, wrap or I{normalize} and unroll B{C{lat2}}\n                        and B{C{lon2}} (C{bool}).\n\n           @return: L{GDict} with 8 items C{a12, s12, azi12, azi21, lat1, lon1,\n                    lat2, lon2}, the rhumb angle C{a12} and rhumb distance C{s12}\n                    between both points in C{degrees} respectively C{meter}, the\n                    rhumb line's azimuth C{azi12} and I{reverse} azimuth C{azi21}\n                    both in compass C{degrees} between C{-180} and C{+180}.\n        '''\n        if wrap:\n            _, lat2, lon2 = _Wrap.latlon3(self.lon1, _fix90(lat2), lon2, wrap)\n        r = self.rhumb.Inverse(self.lat1, self.lon1,        lat2,  lon2, **outmask)\n        return r\n\n    @Property_RO\n    def isLoxodrome(self):\n        '''Is this rhumb line a meridional (C{None}), a parallel\n           (C{False}) or a C{True} loxodrome?\n\n           @see: I{Osborne's} U{2.5 Rumb lines and loxodromes\n                 <https://Zenodo.org/record/35392>}, page 37.\n        '''\n        return bool(self._salp) if self._calp else None\n\n    @Property_RO\n    def lat1(self):\n        '''Get this rhumb line's latitude (C{degrees90}).\n        '''\n        return self._lat1\n\n    @Property_RO\n    def lon1(self):\n        '''Get this rhumb line's longitude (C{degrees180}).\n        '''\n        return self._lon1\n\n    @Property_RO\n    def latlon1(self):\n        '''Get this rhumb line's lat- and longitude (L{LatLon2Tuple}C{(lat, lon)}).\n        '''\n        return LatLon2Tuple(self.lat1, self.lon1)\n\n    def m2degrees(self, distance):\n        '''Convert a distance along this rhumb line to an angular distance.\n\n           @arg distance: Distance (C{meter}).\n\n           @return: Angular distance (C{degrees}).\n        '''\n        return _over(float(distance), self.rhumb._mpd)\n\n    @property_RO\n    def _mu1(self):  # PYCHOK no cover\n        '''(INTERNAL) I{Must be overloaded}.'''\n        self._notOverloaded(underOK=True)\n\n    def _mu2lat(self, mu2):  # PYCHOK no cover\n        '''(INTERNAL) I{Must be overloaded}.'''\n        self._notOverloaded(mu2)  # underOK=True\n\n    @deprecated_method\n    def nearestOn4(self, lat0, lon0, **exact_eps_est_tol):  # PYCHOK no cover\n        '''DEPRECATED on 23.10.10, use method L{PlumbTo}.'''\n        P =  self.PlumbTo(lat0, lon0, **exact_eps_est_tol)\n        r = _MODS.deprecated.classes.NearestOn4Tuple(P.lat2, P.lon2, P.s12, P.azi02,\n                                                     name=typename(self.nearestOn4))\n        r._iteration = P.iteration\n        return r\n\n    @deprecated_method\n    def NearestOn(self, lat0, lon0, **exact_eps_est_tol):  # PYCHOK no cover\n        '''DEPRECATED on 23.10.30, use method L{PlumbTo}.'''\n        return self.PlumbTo(lat0, lon0, **exact_eps_est_tol)\n\n    def PlumbTo(self, lat0, lon0, exact=None, eps=EPS, est=None, tol=_TOL):\n        '''Compute the I{perpendicular} intersection of this rhumb line with a geodesic\n           from the given point (transcoded from I{Karney}'s C++ U{rhumb-intercept\n           <https://SourceForge.net/p/geographiclib/discussion/1026620/thread/2ddc295e/>}).\n\n           @arg lat0: Latitude of the point on the geodesic (C{degrees}).\n           @arg lon0: Longitude of the point on the geodesic (C{degrees}).\n           @kwarg exact: If C{None}, use a rhumb line perpendicular to this rhumb line,\n                         otherwise use an I{exact} C{Geodesic...} from the given point\n                         perpendicular to this rhumb line (C{bool} or C{Geodesic...}),\n                         see method L{geodesic_<pygeodesy.Ellipsoid.geodesic_>}.\n           @kwarg eps: Optional tolerance (C{EPS}), used only if C{B{exact} is None},\n                       see function L{intersection3d3<pygeodesy.intersection3d3>}.\n           @kwarg est: Optionally, an initial estimate for the distance C{s12} of the\n                       intersection I{along} this rhumb line (C{meter}), used only if\n                       C{B{exact} is not None}.\n           @kwarg tol: Longitudinal convergence tolerance (C{degrees}) or distance\n                       tolerance (C(meter)) when C{B{exact} is None}, respectively\n                       C{not None}.\n\n           @return: The intersection point on this rhumb line, a L{GDict} from method\n                    L{Intersection} if B{C{exact}=None}.  If C{B{exact} is not None},\n                    a L{Position}-like L{GDict} of 13 items C{azi12, a12, s12, lat2,\n                    lat1, lat0, lon2, lon1, lon0, azi0, a02, s02, at} with distance\n                    C{a02} in C{degrees} and C{s02} in C{meter} between the given point\n                    C{lat0, lon0} and the intersection C{lat2, lon2}, geodesic azimuth\n                    C{azi0} at the given point and the (perpendicular) angle C{at}\n                    between the geodesic and this rhumb line at the intersection.  The\n                    I{geodesic} azimuth at the intersection is C{(at + azi12)}.  See\n                    method L{Position} for further details.\n\n           @raise ImportError: I{Karney}'s U{geographiclib\n                               <https://PyPI.org/project/geographiclib>}\n                               package not found or not installed.\n\n           @raise IntersectionError: No convergence for this B{C{eps}} or B{C{tol}} or\n                                     no intersection for some other reason.\n\n           @see: Methods C{distance2}, C{Intersecant2} and C{Intersection} and function\n                 L{intersection3d3<pygeodesy.intersection3d3>}.\n        '''\n        Cs, tol = Caps, Float_(tol=tol, low=EPS, high=None)\n\n#       def _over(p, q):  # see @note at method C{.Position}\n#           if p:\n#               p = (p / (q or _copysign(tol, q))) if isfinite(q) else NAN\n#           return p\n\n        if exact is None:\n            z  = _norm180(self.azi12 + _90_0)  # perpendicular azimuth\n            rl =  RhumbLineBase(self.rhumb, lat0, lon0, z, caps=Cs.LINE_OFF)\n            P  =  self.Intersection(rl, tol=tol, eps=eps)\n\n        else:  # C{rhumb-intercept}\n            E   =  self.ellipsoid\n            _gI =  E.geodesic_(exact=exact).Inverse\n            gm  =  Cs.STANDARD | Cs._REDUCEDLENGTH_GEODESICSCALE  # ^ Cs.DISTANCE_IN\n            _d2 = _diff182\n            if est is None:  # get an estimate from the \"perpendicular\" geodesic\n                r = _gI(self.lat1, self.lon1, lat0, lon0, outmask=Cs.AZIMUTH_DISTANCE)\n                d, _ = _d2(r.azi2, self.azi12, K_2_0=True)\n                _, s12 = sincos2d(d)\n                s12 *=  r.s12  # signed\n            else:\n                s12  =  Meter(est=est)\n            try:\n                _abs =  fabs\n                _ErT =  E.rocPrimeVertical  # aka rocTransverse\n                _ovr = _over\n                _S12 =  Fsum(s12).fsum2f_\n                _scd =  sincos2d_\n                for i in range(1, _TRIPS):  # 9+, suffix 1 == C++ 2, 2 == C++ 3\n                    P =  self.Position(s12)  # outmask=Cs.LATITUDE_LONGITUDE\n                    r = _gI(lat0, lon0, P.lat2, P.lon2, outmask=gm)\n                    d, _ = _d2(self.azi12, r.azi2, K_2_0=True)\n                    s, c, s2, c2 = _scd(d, r.lat2)\n                    c2 *= _ErT(r.lat2)\n                    s  *= _ovr(s2 * self._salp, c2) - _ovr(s * r.M21, r.m12)\n                    s12, t = _S12(c / s) if s else (s12, s)  # XXX _ovr?\n                    if _abs(t) < tol:  # or _abs(c) < EPS\n                        break\n                P.set_(azi0=r.azi1, a02=r.a12, s02=r.s12,  # azi2=r.azi2,\n                       lat0=lat0, lon0=lon0, iteration=i, at=r.azi2 - self.azi12,\n                       name=typename(self.PlumbTo, self.name))\n            except Exception as x:  # Fsum(NAN) Value-, ZeroDivisionError\n                raise IntersectionError(lat0=lat0, lon0=lon0, tol=tol, exact=exact,\n                                        eps=eps, est=est, iteration=i, cause=x)\n\n        return P\n\n    def Position(self, s12, outmask=Caps.LATITUDE_LONGITUDE):\n        '''Compute a point at a given distance on this rhumb line.\n\n           @arg s12: The distance along this rhumb line from its origin to the point\n                     (C{meters}), can be negative.\n           @kwarg outmask: Bit-or'ed combination of L{Caps<pygeodesy.karney.Caps>}\n                           values specifying the quantities to be returned.\n\n           @return: L{GDict} with 4 to 8 items C{azi12, a12, s12, S12, lat2, lat1,\n                    lon2, lon1} with latitude C{lat2} and longitude C{lon2} of the\n                    point in C{degrees}, the rhumb angle C{a12} in C{degrees} from\n                    the start point of and the area C{S12} under this rhumb line\n                    in C{meter} I{squared}.\n\n           @raise ImportError: Package C{numpy} not found or not installed, required\n                               only for L{RhumbLineAux} area C{S12} when C{B{exact}\n                               is True}.\n\n           @note: If B{C{s12}} is large enough that the rhumb line crosses a pole, the\n                  longitude of the second point is indeterminate and C{NAN} is returned\n                  for C{lon2} and area C{S12}.\n\n                  If the first point is a pole, the cosine of its latitude is taken to\n                  be C{sqrt(L{EPS})}.  This position is extremely close to the actual\n                  pole and allows the calculation to be carried out in finite terms.\n        '''\n        return self._Position(self.m2degrees(s12), s12, outmask)\n\n    def _Position(self, a12, s12, outmask):\n        '''(INTERNAL) C{Arc-/Position} helper.\n        '''\n        r  = GDict(azi12=self.azi12, a12=a12, s12=s12, name=self.name)\n        Cs = Caps\n        if (outmask & Cs.LATITUDE_LONGITUDE_AREA):\n            if a12 or s12:\n                mu12 = self._calp * a12\n                mu2  = self._mu1 + mu12\n                if fabs(mu2) > 90:  # past pole\n                    mu2 = _norm180(mu2)  # reduce to [-180, 180)\n                    if fabs(mu2) > 90:  # point on anti-meridian\n                        mu2 = _norm180(_loneg(mu2))\n                    lat2 = self._mu2lat(mu2)\n                    lon2 = S12 = NAN\n                else:\n                    lat2, lon2, S1, S2 = self._Position4(a12, mu2, s12, mu12)\n                    if (outmask & Cs.AREA):\n                        S12 = self.rhumb._S12d(S1, S2, lon2)\n                        S12 = unsigned0(S12)  # like .gx\n#                   else:\n#                       S12 = None  # unused\n                    if (outmask & Cs.LONGITUDE):\n                        if (outmask & Cs.LONG_UNROLL):\n                            lon2 +=  self.lon1\n                        else:\n                            lon2  = _norm180(self._lon12 + lon2)\n            else:  # coincident\n                lat2, lon2 = self.latlon1\n                S12 = _0_0\n\n            if (outmask & Cs.AREA):\n                r.set_(S12=S12)\n            if (outmask & Cs.LATITUDE):\n                r.set_(lat2=lat2, lat1=self.lat1)\n            if (outmask & Cs.LONGITUDE):\n                r.set_(lon2=lon2, lon1=self.lon1)\n        return r\n\n    def _Position4(self, a12, mu2, s12, mu12):  # PYCHOK no cover\n        '''(INTERNAL) I{Must be overloaded}.'''\n        self._notOverloaded(a12, s12, mu2, mu12)  # underOK=True\n\n    @Property_RO\n    def rhumb(self):\n        '''Get this rhumb line's rhumb (L{RhumbAux} or L{Rhumb}).\n        '''\n        return self._rhumb\n\n    def toStr(self, prec=6, sep=_COMMASPACE_, **unused):  # PYCHOK signature\n        '''Return this C{RhumbLine} as string.\n\n           @kwarg prec: The C{float} precision, number of decimal digits (0..9).\n                        Trailing zero decimals are stripped for B{C{prec}} values\n                        of 1 and above, but kept for negative B{C{prec}} values.\n           @kwarg sep: Separator to join (C{str}).\n\n           @return: C{RhumbLine} (C{str}).\n        '''\n        d = dict(rhumb=self.rhumb, lat1=self.lat1, lon1=self.lon1,\n                                   azi12=self.azi12, exact=self.exact,\n                                   TMorder=self.TMorder, xTM=self.xTM)\n        return sep.join(pairs(itemsorted(d, asorted=False), prec=prec))\n\n    @property_RO\n    def TMorder(self):\n        '''Get this rhumb line's I{Transverse Mercator} order (C{int}, 4, 5, 6, 7 or 8).\n        '''\n        return self.rhumb.TMorder\n\n    @Property_RO\n    def xTM(self):\n        '''Get this rhumb line's I{Transverse Mercator} projection (L{ExactTransverseMercator}\n           if I{exact} and I{ellipsoidal}, otherwise L{KTransverseMercator} for C{TMorder}).\n        '''\n        E = self.ellipsoid\n        # ExactTransverseMercator doesn't handle spherical earth models\n        return _MODS.etm.ExactTransverseMercator(E) if self.exact and E.isEllipsoidal else \\\n               _MODS.ktm.KTransverseMercator(E, TMorder=self.TMorder)\n\n    def _xTM3d(self, latlon0, z=INT0, V3d=Vector3d):\n        '''(INTERNAL) C{xTM.forward} this C{latlon1} to C{V3d} with B{C{latlon0}}\n           as current intersection estimate and central meridian.\n        '''\n        t = self.xTM.forward(self.lat1 - latlon0.lat, self.lon1, lon0=latlon0.lon)\n        return V3d(t.easting, t.northing, z)\n\n\nclass _PseudoRhumbLine(RhumbLineBase):\n    '''(INTERNAL) Pseudo-rhumb line for a geodesic (line), see C{geodesicw._PlumbTo}.\n    '''\n    def __init__(self, gl, name=NN):\n        R = RhumbBase(gl.geodesic.ellipsoid, None, True, name)\n        RhumbLineBase.__init__(self, R, gl.lat1, gl.lon1, 0, caps=Caps.LINE_OFF)\n        self._azi1 = self.azi12 = gl.azi1\n        self._gl   = gl\n        self._gD   = gl.geodesic.Direct\n\n    def PlumbTo(self, lat0, lon0, **exact_eps_est_tol):  # PYCHOK signature\n        P = RhumbLineBase.PlumbTo(self, lat0, lon0, **exact_eps_est_tol)\n        z, P = _xkwds_pop2(P, azi12=None)\n        P.set_(azi1=self._gl.azi1, azi2=z)\n        return P  # geodesic L{Position}\n\n    def Position(self, s12, **unused):  # PYCHOK signature\n        r = self._gD(self.lat1, self.lon1, self._azi1, s12)\n        self._azi1     = r.azi1\n        self.azi12 = z = r.azi2\n        self._salp, _  = sincos2d(z)\n        return r.set_(azi12=z)\n\n\n__all__ += _ALL_DOCS(RhumbBase, RhumbLineBase)\n\nif __name__ == _DMAIN_:\n\n    from pygeodesy import printf, Rhumb as Rh, RhumbAux as Ah\n    from pygeodesy.basics import _zip\n    from pygeodesy.ellipsoids import _EWGS84\n\n    Al = Ah(_EWGS84).Line(30, 0, 45)\n    Rl = Rh(_EWGS84).Line(30, 0, 45)\n\n    for i in range(1, 10):\n        s = .5e6 + 1e6 / i\n        a = Al.Position(s).lon2\n        r = Rl.Position(s).lon2\n        e = (fabs(a - r) / a) if a else 0\n        printf('# Position.lon2 %.14f vs %.14f, diff %g', r, a, e)\n\n    for exact in (None, False, True):\n        for est in (None, 1e6):\n            a = Al.PlumbTo(60, 0, exact=exact, est=est)\n            r = Rl.PlumbTo(60, 0, exact=exact, est=est)\n            printf('# %s, iteration=%s, exact=%s, est=%s\\n# %s, iteration=%s',\n                   a.toRepr(), a.iteration, exact, est,\n                   r.toRepr(), r.iteration, nl=1)\n\n    NE_=(71.688899882813, 0.2555198244234, 44095641862956.11)\n    LHR=(77.7683897102557, 5771083.38332803, 37395209100030.39)\n    NRT=(-92.38888798169965, 12782581.067684170, -63760642939072.50)\n\n    def _ref(fmt, r3, x3):\n        e3 = []\n        for r, x in _zip(r3, x3):  # strict=True\n            e = fabs(r - x) / fabs(x)\n            e3.append('%.g' % (e,))\n        printf((fmt % r3) + ', rel errors: ' + ', '.join(e3))\n\n    for R in (Ah, Rh):  # <https://GeographicLib.SourceForge.io/cgi-bin/RhumbSolve -p 9> version 2.2\n        rh = R(exact=True)  # WGS84 default\n        printf('# %r', rh, nl=1)\n        r = rh.Direct8(40.6, -73.8, 51, 5.5e6)  # from JFK about NE\n        _ref('# JFK NE lat2=%.12f, lon2=%.12f, S12=%.1f', (r.lat2, r.lon2, r.S12), NE_)\n        r = rh.Inverse8(40.6, -73.8, 51.6, -0.5)  # JFK to LHR\n        _ref('# JFK-LHR azi12=%.12f, s12=%.3f S12=%.1f', (r.azi12, r.s12, r.S12), LHR)\n        r = rh.Inverse8(40.6, -73.8, 35.8, 140.3)  # JFK to Tokyo Narita\n        _ref('# JFK-NRT azi12=%.12f, s12=%.3f S12=%.1f', (r.azi12, r.s12, r.S12), NRT)\n\n# % python3.10 -m pygeodesy3.rhumb.Bases\n\n# Position.lon2 11.61455846901637 vs 11.61455846901637, diff 3.05885e-16\n# Position.lon2 7.58982302826842 vs 7.58982302826842, diff 2.34045e-16\n# Position.lon2 6.28526067416369 vs 6.28526067416369, diff 2.82623e-16\n# Position.lon2 5.63938995325146 vs 5.63938995325146, diff 1.57495e-16\n# Position.lon2 5.25385527435707 vs 5.25385527435707, diff 0\n# Position.lon2 4.99764604290380 vs 4.99764604290380, diff 8.88597e-16\n# Position.lon2 4.81503363740473 vs 4.81503363740473, diff 1.84459e-16\n# Position.lon2 4.67828821748836 vs 4.67828821748835, diff 5.69553e-16\n# Position.lon2 4.57205667906283 vs 4.57205667906283, diff 5.82787e-16\n\n# Intersection(a02=17.798332, a12=19.521356, at=90.0, azi02=135.0, azi12=45.0, lat0=60.0, lat1=30.0, lat2=45.0, lon0=0.0, lon1=0.0, lon2=15.830286, name='Intersection', s02=1977981.142985, s12=2169465.957531), iteration=9, exact=None, est=None\n# Intersection(a02=17.798332, a12=19.521356, at=90.0, azi02=135.0, azi12=45.0, lat0=60.0, lat1=30.0, lat2=45.0, lon0=0.0, lon1=0.0, lon2=15.830286, name='Intersection', s02=1977981.142985, s12=2169465.957531), iteration=9\n\n# Intersection(a02=17.798332, a12=19.521356, at=90.0, azi02=135.0, azi12=45.0, lat0=60.0, lat1=30.0, lat2=45.0, lon0=0.0, lon1=0.0, lon2=15.830286, name='Intersection', s02=1977981.142985, s12=2169465.957531), iteration=9, exact=None, est=1000000.0\n# Intersection(a02=17.798332, a12=19.521356, at=90.0, azi02=135.0, azi12=45.0, lat0=60.0, lat1=30.0, lat2=45.0, lon0=0.0, lon1=0.0, lon2=15.830286, name='Intersection', s02=1977981.142985, s12=2169465.957531), iteration=9\n\n# PlumbTo(a02=17.967658, a12=27.74256, at=90.0, azi0=113.73626, azi12=45.0, lat0=60, lat1=30.0, lat2=49.634582, lon0=0, lon1=0.0, lon2=25.767876, name='PlumbTo', s02=1997960.116871, s12=3083112.636236), iteration=5, exact=False, est=None\n# PlumbTo(a02=17.967658, a12=27.74256, at=90.0, azi0=113.73626, azi12=45.0, lat0=60, lat1=30.0, lat2=49.634582, lon0=0, lon1=0.0, lon2=25.767876, name='PlumbTo', s02=1997960.116871, s12=3083112.636236), iteration=5\n\n# PlumbTo(a02=17.967658, a12=27.74256, at=90.0, azi0=113.73626, azi12=45.0, lat0=60, lat1=30.0, lat2=49.634582, lon0=0, lon1=0.0, lon2=25.767876, name='PlumbTo', s02=1997960.116871, s12=3083112.636236), iteration=7, exact=False, est=1000000.0\n# PlumbTo(a02=17.967658, a12=27.74256, at=90.0, azi0=113.73626, azi12=45.0, lat0=60, lat1=30.0, lat2=49.634582, lon0=0, lon1=0.0, lon2=25.767876, name='PlumbTo', s02=1997960.116871, s12=3083112.636236), iteration=7\n\n# PlumbTo(a02=17.967658, a12=27.74256, at=90.0, azi0=113.73626, azi12=45.0, lat0=60, lat1=30.0, lat2=49.634582, lon0=0, lon1=0.0, lon2=25.767876, name='PlumbTo', s02=1997960.116871, s12=3083112.636236), iteration=5, exact=True, est=None\n# PlumbTo(a02=17.967658, a12=27.74256, at=90.0, azi0=113.73626, azi12=45.0, lat0=60, lat1=30.0, lat2=49.634582, lon0=0, lon1=0.0, lon2=25.767876, name='PlumbTo', s02=1997960.116871, s12=3083112.636236), iteration=5\n\n# PlumbTo(a02=17.967658, a12=27.74256, at=90.0, azi0=113.73626, azi12=45.0, lat0=60, lat1=30.0, lat2=49.634582, lon0=0, lon1=0.0, lon2=25.767876, name='PlumbTo', s02=1997960.116871, s12=3083112.636236), iteration=7, exact=True, est=1000000.0\n# PlumbTo(a02=17.967658, a12=27.74256, at=90.0, azi0=113.73626, azi12=45.0, lat0=60, lat1=30.0, lat2=49.634582, lon0=0, lon1=0.0, lon2=25.767876, name='PlumbTo', s02=1997960.116871, s12=3083112.636236), iteration=7\n\n# RhumbAux(RAorder=None, TMorder=6, ellipsoid=Ellipsoid(name='WGS84', a=6378137, b=6356752.31424518, f_=298.25722356, f=0.00335281, f2=0.00336409, n=0.00167922, e=0.08181919, e2=0.00669438, e21=0.99330562, e22=0.0067395, e32=0.00335843, A=6367449.14582341, L=10001965.72931272, R1=6371008.77141506, R2=6371007.18091847, R3=6371000.79000916, Rbiaxial=6367453.63451633, Rtriaxial=6372797.5559594), exact=True)\n# JFK NE lat2=71.688899882813, lon2=0.255519824423, S12=44095641862956.1, rel errors: 4e-16, 2e-13, 4e-16\n# JFK-LHR azi12=77.768389710256, s12=5771083.383 S12=37395209100030.4, rel errors: 5e-16, 3e-16, 8e-16\n# JFK-NRT azi12=-92.388887981700, s12=12782581.068 S12=-63760642939072.5, rel errors: 0, 1e-16, 7e-16\n\n# Rhumb(RAorder=6, TMorder=6, ellipsoid=Ellipsoid(name='WGS84', a=6378137, b=6356752.31424518, f_=298.25722356, f=0.00335281, f2=0.00336409, n=0.00167922, e=0.08181919, e2=0.00669438, e21=0.99330562, e22=0.0067395, e32=0.00335843, A=6367449.14582341, L=10001965.72931272, R1=6371008.77141506, R2=6371007.18091847, R3=6371000.79000916, Rbiaxial=6367453.63451633, Rtriaxial=6372797.5559594), exact=True)\n# JFK NE lat2=71.688899882813, lon2=0.255519824423, S12=44095641862956.1, rel errors: 2e-16, 1e-13, 5e-16\n# JFK-LHR azi12=77.768389710256, s12=5771083.383 S12=37395209100030.4, rel errors: 4e-16, 3e-16, 6e-16\n# JFK-NRT azi12=-92.388887981700, s12=12782581.068 S12=-63760642939072.5, rel errors: 0, 1e-16, 1e-16\n\n# **) MIT License\n#\n# Copyright (C) 2022-2026 -- mrJean1 at Gmail -- All Rights Reserved.\n#\n# Permission is hereby granted, free of charge, to any person obtaining a\n# copy of this software and associated documentation files (the \"Software\"),\n# to deal in the Software without restriction, including without limitation\n# the rights to use, copy, modify, merge, publish, distribute, sublicense,\n# and/or sell copies of the Software, and to permit persons to whom the\n# Software is furnished to do so, subject to the following conditions:\n#\n# The above copyright notice and this permission notice shall be included\n# in all copies or substantial portions of the Software.\n#\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL\n# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR\n# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\n# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n# OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "pygeodesy/rhumb/ekx.py",
    "content": "\n# -*- coding: utf-8 -*-\n\nu'''A pure Python version of I{Karney}'s I{elliptic functions}, I{Krüger series expansion}, C++\nclasses U{Rhumb<https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Rhumb.html>} and\nand U{RhumbLine<https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1RhumbLine.html>}\nfrom I{GeographicLib version 2.0}, kept for backward compatibility.\n\nClass L{RhumbLine} has been enhanced with methods C{Intersecant2}, C{Intersection} and C{PlumbTo} to\niteratively find the intersection of a rhumb line and a circle or an other rhumb line, respectively\na perpendicular geodesic or other rhumb line.\n\nFor more details, see the C++ U{GeographicLib<https://GeographicLib.SourceForge.io/C++/doc/index.html>}\ndocumentation, especially the U{Class List<https://GeographicLib.SourceForge.io/C++/doc/annotated.html>},\nthe background information on U{Rhumb lines<https://GeographicLib.SourceForge.io/C++/doc/rhumb.html>},\nthe utily U{RhumbSolve<https://GeographicLib.SourceForge.io/C++/doc/RhumbSolve.1.html>} and U{Online\nrhumb line calculations<https://GeographicLib.SourceForge.io/cgi-bin/RhumbSolve>}.\n\nCopyright (C) U{Charles Karney<mailto:Karney@Alum.MIT.edu>} (2014-2024) and licensed under the MIT/X11\nLicense.  For more information, see the U{GeographicLib<https://GeographicLib.SourceForge.io>} documentation.\n'''\n# make sure int/int division yields float quotient\nfrom __future__ import division as _; del _  # noqa: E702 ;\n\n# from pygeodesy.basics import copysign0, neg  # _MODS\nfrom pygeodesy.constants import PI_2, _over, _1_over, _0_0s, \\\n                               _0_0, _0_5, _1_0, _2_0, _4_0, _720_0\n# from pygeodesy.datums import _WGS84  # from .rhumb.bases\n# from pygeodesy.deprecated import RhumbOrder2Tuple  # _MODS\nfrom pygeodesy.errors import RhumbError, _xkwds_pop2, _Xorder\nfrom pygeodesy.fmath import hypot, hypot1\n# from pygeodesy.fsums import fsum1f_  # _MODS\n# from pygeodesy.karney import Caps  # from .rhumb.bases\nfrom pygeodesy.ktm import _Xs, _AlpCoeffs, _BetCoeffs  # PYCHOK used!\nfrom pygeodesy.lazily import _ALL_DOCS, _ALL_LAZY, _ALL_MODS as _MODS\nfrom pygeodesy.props import deprecated_method, Property, Property_RO, \\\n                            property_RO\nfrom pygeodesy.rhumb.bases import RhumbBase, RhumbLineBase, \\\n                                  Caps, _update_all_rls, _WGS84\nfrom pygeodesy.utily import atan1, sincos2_\n\nfrom math import asinh, atan, cos, cosh, radians, sin, sinh, sqrt, tan  # as _tan\n\n__all__ = _ALL_LAZY.rhumb_ekx\n__version__ = '25.08.31'\n\n\nclass Rhumb(RhumbBase):\n    '''Class to solve the I{direct} and I{inverse rhumb} problems, based on\n       I{elliptic functions} or I{Krüger series expansion}\n\n       @see: The U{Detailed Description<https://GeographicLib.SourceForge.io/C++/doc/\n             classGeographicLib_1_1Rhumb.html>} of I{Karney}'s C++ C{Rhumb Class}.\n    '''\n    _mRA = 6  # see .RAorder\n\n    def __init__(self, a_earth=_WGS84, f=None, exact=True, **RA_TMorder_name):\n        '''New C{Rhumb}.\n\n           @kwarg a_earth: This rhumb's earth model (L{Datum}, L{Ellipsoid},\n                           L{Ellipsoid2}, L{a_f2Tuple}, 2-tuple C{(a, f)}) or\n                           the (equatorial) radius (C{meter}, conventionally).\n           @kwarg f: The ellipsoid's flattening (C{scalar}), required if B{C{a_earth}}\n                     is C{scalar}, ignored otherwise.\n           @kwarg exact: If C{True}, use an addition theorem for elliptic integrals\n                         to compute I{Divided differences}, otherwise use the I{Krüger}\n                         series expansion (C{bool} or C{None}), see also properties\n                         C{exact} and C{TMorder}.\n           @kwarg RA_TMorder_name: Optional C{B{name}=NN} (C{str}) and optional keyword\n                     arguments B{C{RAorder}=6} and B{C{TMorder}=6} to set the respective\n                     C{order}, see properties C{RAorder} and C{TMorder}.\n\n           @raise RhumbError: Invalid B{C{a_earth}}, B{C{f}}, B{C{RAorder}} or B{C{TMorder}}.\n        '''\n        if RA_TMorder_name:\n            M = self._mRA\n            m, kwds = _xkwds_pop2(RA_TMorder_name, RAorder=M)\n            if m != M:\n                self.RAorder = m\n        else:\n            kwds = {}\n        RhumbBase.__init__(self, a_earth, f, exact, kwds)\n\n    @Property_RO\n    def _A2(self):  # Conformal2RectifyingCoeffs\n        m = self.TMorder\n        return _Xs(_AlpCoeffs, m, self.ellipsoid), m\n\n    @Property_RO\n    def _B2(self):  # Rectifying2ConformalCoeffs\n        m = self.TMorder\n        return _Xs(_BetCoeffs, m, self.ellipsoid), m\n\n    def _DConformal2Rectifying(self, x, y):  # radians\n        return _1_0 + (_sincosSeries(True, x, y, *self._A2) if self.f else _0_0)\n\n    @deprecated_method\n    def Direct7(self, lat1, lon1, azi12, s12, outmask=Caps.LATITUDE_LONGITUDE_AREA):  # PYCHOK no cover\n        '''DEPRECATED, use method L{Rhumb.Direct8}.\n\n           @return: A I{DEPRECATED} L{Rhumb7Tuple}.\n        '''\n        return self.Direct8(lat1, lon1, azi12, s12, outmask=outmask)._to7Tuple()\n\n    def _DIsometrict(self, phix, phiy, tphix, tphiy, _Dtan_phix_phiy):\n        E = self.ellipsoid\n        return _Dtan_phix_phiy   * _Dasinh(tphix, tphiy) - \\\n               _Dsin(phix, phiy) * _DeatanhE(sin(phix), sin(phiy), E)\n\n    def _DIsometric2Rectifyingd(self, psix, psiy):  # degrees\n        if self.exact:\n            E = self.ellipsoid\n            phix, phiy, tphix, tphiy = _Eaux4(E.auxIsometric, psix, psiy)\n            t = _Dtant(phix - phiy, tphix, tphiy)\n            r = _over(self._DRectifyingt(           tphix, tphiy, t),\n                      self._DIsometrict(phix, phiy, tphix, tphiy, t))\n        else:\n            x, y = radians(psix), radians(psiy)\n            r = self._DConformal2Rectifying(_gd(x), _gd(y)) * _Dgd(x, y)\n        return r\n\n    def _DRectifyingt(self, tphix, tphiy, _Dtan_phix_phiy):\n        E = self.ellipsoid\n        tbetx = E.f1 *  tphix\n        tbety = E.f1 *  tphiy\n        return (E.f1 * _Dtan_phix_phiy * E.b * PI_2\n                     * _DfEt( tbetx, tbety, self._eF)\n                     * _Datan(tbetx, tbety)) / E.L\n\n    def _DRectifying2Conformal(self, x, y):  # radians\n        return _1_0 - (_sincosSeries(True, x, y, *self._B2) if self.f else _0_0)\n\n    def _DRectifying2Isometricd(self, mux, muy):  # degrees\n        E = self.ellipsoid\n        phix, phiy, tphix, tphiy = _Eaux4(E.auxRectifying, mux, muy)\n        if self.exact:\n            t = _Dtant(phix - phiy, tphix, tphiy)\n            r = _over(self._DIsometrict(phix, phiy, tphix, tphiy, t),\n                      self._DRectifyingt(           tphix, tphiy, t))\n        else:\n            r = self._DRectifying2Conformal(radians(mux), radians(muy)) * \\\n                     _Dgdinv(E.es_taupf(tphix), E.es_taupf(tphiy))\n        return r\n\n    @Property_RO\n    def _eF(self):\n        '''(INTERNAL) Get the ellipsoid's elliptic function.\n        '''\n        # .k2 = 0.006739496742276434\n        return self.ellipsoid._elliptic_e12  # _MODS.elliptic.Elliptic(-self.ellipsoid._e12)\n\n    def _Inverse4(self, lon12, r, outmask):\n        '''(INTERNAL) See method C{RhumbBase.Inverse}.\n        '''\n        E, Cs = self.ellipsoid, Caps\n        psi1  = E.auxIsometric(r.lat1)\n        psi2  = E.auxIsometric(r.lat2)\n        psi12 = psi2 - psi1  # degrees\n        if (outmask & Cs.DISTANCE):\n            a = s = hypot(lon12, psi12)\n            if a:\n                a *=  self._DIsometric2Rectifyingd(psi2, psi1)\n                s  =  self._mpd * a  # == E._Lpd\n                a  = _MODS.basics.copysign0(a, s)\n            r.set_(a12=a, s12=s)\n\n        if ((outmask | self._debug) & Cs._DEBUG_INVERSE):  # PYCHOK no cover\n            r.set_(a=E.a, f=E.f, f1=E.f1, L=E.L,\n                   b=E.b, e=E.e, e2=E.e2, k2=self._eF.k2,\n                   lon12=lon12, psi1=psi1, exact=self.exact,\n                   psi12=psi12, psi2=psi2)\n        return lon12, psi12, psi1, psi2\n\n    @deprecated_method\n    def Inverse7(self, lat1, lon1, azi12, s12, outmask=Caps.AZIMUTH_DISTANCE_AREA):  # PYCHOK no cover\n        '''DEPRECATED, use method L{Rhumb.Inverse8}.\n\n           @return: A I{DEPRECATED} L{Rhumb7Tuple}.\n        '''\n        return self.Inverse8(lat1, lon1, azi12, s12, outmask=outmask)._to7Tuple()\n\n    @Property_RO\n    def _mpd(self):  # meter per degree\n        return self.ellipsoid._Lpd\n\n    @Property_RO\n    def _mpr(self):  # meter per radian\n        return self.ellipsoid._Lpr  # degrees(._Lpd)\n\n    @deprecated_method\n    def orders(self, RAorder=6, TMorder=6):  # PYCHOK no cover\n        '''DEPRECATED, use properties C{RAorder} and/or C{TMorder}.\n\n           Get and set the I{RAorder} and/or I{TMorder}.\n\n           @kwarg RAorder: I{Rhumb Area} order (C{int}, 4, 5, 6, 7\n                           or 8).\n           @kwarg TMorder: I{Transverse Mercator} order (C{int}, 4,\n                           5, 6, 7 or 8).\n\n           @return: DEPRECATED L{RhumbOrder2Tuple}C{(RAorder, TMorder)}\n                    with the previous C{RAorder} and C{TMorder} setting.\n        '''\n        t = _MODS.deprecated.classes.RhumbOrder2Tuple(self.RAorder, self.TMorder)\n        if RAorder != t.RAorder:  # PYCHOK attr\n            self.RAorder = RAorder\n        if TMorder != t.TMorder:  # PYCHOK attr\n            self.TMorder = TMorder\n        return t\n\n    @Property_RO\n    def _RA2(self):\n        # for WGS84: (0, -0.0005583633519275459, -3.743803759172812e-07,  -4.633682270824446e-10,\n        # RAorder 6:     -7.709197397676237e-13, -1.5323287106694307e-15, -3.462875359099873e-18)\n        m = self.RAorder\n        return _Xs(_RACoeffs, m, self.ellipsoid, RA=True), m\n\n    @Property\n    def RAorder(self):\n        '''Get the I{Rhumb Area} order (C{int}, 4, 5, 6, 7 or 8).\n        '''\n        return self._mRA\n\n    @RAorder.setter  # PYCHOK setter!\n    def RAorder(self, order):\n        '''Set the I{Rhumb Area} order (C{int}, 4, 5, 6, 7 or 8).\n        '''\n        m = _Xorder(_RACoeffs, RhumbError, RAorder=order)\n        if self._mRA != m:\n            _update_all_rls(self)\n            self._mRA = m\n\n#   _RhumbLine = RhumbLine  # see further below\n\n    def _S12d(self, psi1, psi2, lon12):  # degrees\n        '''(INTERNAL) Compute the area C{S12}.\n        '''\n        S = (self.ellipsoid.areax if self.exact else\n             self.ellipsoid.area) * lon12 / _720_0\n        if S:\n            x, y = radians(psi1), radians(psi2)  # _meanSinXi(x, y)\n            s = _Dlog(cosh(x), cosh(y)) * _Dcosh(x, y)\n            if self.f:\n                s += _sincosSeries(False, _gd(x), _gd(y), *self._RA2) * _Dgd(x, y)\n            S *= s\n        return S\n\n\nclass RhumbLine(RhumbLineBase):\n    '''Compute one or several points on a single rhumb line.\n\n       Class C{RhumbLine} facilitates the determination of points on\n       a single rhumb line.  The starting point (C{lat1}, C{lon1})\n       and the azimuth C{azi12} are specified once.\n    '''\n    _Rhumb = Rhumb  # rhumb.ekx.Rhumb\n\n    def __init__(self, rhumb, lat1=0, lon1=0, azi12=None, **caps_name):  # PYCHOK signature\n        '''New C{RhumbLine}.\n\n           @arg rhumb: The rhumb reference (L{Rhumb}).\n           @kwarg lat1: Latitude of the start point (C{degrees90}).\n           @kwarg lon1: Longitude of the start point (C{degrees180}).\n           @kwarg azi12: Azimuth of this rhumb line (compass C{degrees}).\n           @kwarg caps_name: Optional keyword arguments C{B{name}=NN} and C{B{caps}=0},\n                       a bit-or'ed combination of L{Caps<pygeodesy.karney.Caps>} values\n                       specifying the required capabilities.  Include C{Caps.LINE_OFF}\n                       if updates to the B{C{rhumb}} should I{not be reflected} in this\n                       rhumb line.\n        '''\n        RhumbLineBase.__init__(self, rhumb, lat1, lon1, azi12, **caps_name)\n\n    @Property_RO\n    def _dpm12(self):  # PYCHOK no cover\n        '''(INTERNAL) Get this rhumb line's parallel I{circle radius} (C{degree per meter}).\n        '''\n        r = self._salp\n        if r:\n            r = _over(r, self.ellipsoid.circle4(self.lat1).radius)\n        return r\n\n    @Property_RO\n    def _mu1(self):\n        '''(INTERNAL) Get the I{rectifying auxiliary} latitude (C{degrees}).\n        '''\n        return self.ellipsoid.auxRectifying(self.lat1)\n\n    def _mu2lat(self, mu):\n        '''(INTERNAL) Get the inverse I{rectifying auxiliary} latitude (C{degrees}).\n        '''\n        return self.ellipsoid.auxRectifying(mu, inverse=True)\n\n    def _Position4(self, unused, mu2, s12, mu12):\n        '''(INTERNAL) See method C{RhumbLineBase._Position}.\n        '''\n        psi1 = psi2 = self._psi1\n        if mu12:  # self._calp != 0\n            lat2  = self._mu2lat(mu2)\n            psi12 = self.rhumb._DRectifying2Isometricd(mu2, self._mu1) * mu12\n            lon2  = self._talp * psi12\n            psi2 += psi12\n        else:  # meridional\n            lat2  = self.lat1\n            lon2  = self._dpm12 * s12\n        return lat2, lon2, psi1, psi2\n\n    @Property_RO\n    def _psi1(self):\n        '''(INTERNAL) Get the I{isometric auxiliary} latitude (C{degrees}).\n        '''\n        return self.ellipsoid.auxIsometric(self.lat1)\n\n    @property_RO\n    def RAorder(self):\n        '''Get this rhumb line's I{Rhumb Area} order (C{int}, 4, 5, 6, 7 or 8).\n        '''\n        return self.rhumb.RAorder\n\nRhumb._RhumbLine = RhumbLine  # PYCHOK see RhumbBase._RhumbLine\n\n\n# Use I{Divided Differences} to determine (mu2 - mu1) / (psi2 - psi1) accurately.\n# Definition: _Df(x,y,d) = (f(x) - f(y)) / (x - y), @see W. M. Kahan & R. J.\n# Fateman, \"Symbolic computation of Divided Differences\", SIGSAM Bull. 33(3),\n# 7-28 (1999). U{ACM<https://DL.ACM.org/doi/pdf/10.1145/334714.334716> and @see\n# U{UCB<https://www.CS.Berkeley.edu/~fateman/papers/divdiff.pdf>}, Dec 8, 1999.\n\ndef _Dasinh(x, y):\n    hx = hypot1(x)\n    d  = x - y\n    if d:\n        hx *= y\n        hy  = x * hypot1(y)\n        t = (d * (x + y) / (hy + hx)) if (x * y) > 0 else (hy - hx)\n        r =  asinh(t) / d\n    else:\n        r = _1_0 / hx\n    return r\n\n\ndef _Datan(x, y):\n    xy = x  *  y\n    r  = xy + _1_0\n    d  = x  -  y\n    if d:  # 2 * xy > -1 == 2 * xy + 1 > 0 == xy + r > 0 == xy > -r\n        r = (atan1(d, r) if xy > -r else (atan1(x) - atan1(y))) / d\n    else:\n        r = _1_over(r)\n    return r\n\n\ndef _Dcosh(x, y):\n    return _Dsincos(x, y, sinh, sinh)\n\n\ndef _DeatanhE(x, y, E):  # see .albers._Datanhee\n    # Deatanhe(x, y) = eatanhe((x - y) / (1 - e^2 * x * y)) / (x - y)\n    e = _1_0 - E.e2 * x * y\n    if e:  # assert not isnear0(e)\n        d =  x - y\n        e = (E._es_atanh(d / e) / d) if d else (E.e2 / e)\n    return e\n\n\ndef _DfEt(tx, ty, eF):  # tangents\n    # eF = Elliptic(-E.e12)  # -E.e2 / (1 - E.e2)\n    r,  x,  y, = _1_0, atan(tx), atan(ty)\n    d = x - y\n    if (x * y) > 0:\n        # See U{DLMF<https://DLMF.NIST.gov/19.11>}: 19.11.2 and 19.11.4\n        # letting theta -> x, phi -> -y, psi -> z\n        # (E(x) - E(y)) / d = E(z)/d - k2 * sin(x) * sin(y) * sin(z)/d\n        # tan(z/2) = (sin(x)*Delta(y) - sin(y)*Delta(x)) / (cos(x) + cos(y))\n        #          = d * Dsin(x,y) * (sin(x) + sin(y))/(cos(x) + cos(y)) /\n        #                (sin(x)*Delta(y) + sin(y)*Delta(x))\n        #          = t = d * Dt\n        # sin(z) = 2*t/(1+t^2); cos(z) = (1-t^2)/(1+t^2)\n        # Alt (this only works for |z| <= pi/2 -- however, this conditions\n        # holds if x*y > 0):\n        #   sin(z) = d * Dsin(x,y) * (sin(x) + sin(y)) /\n        #                (sin(x)*cos(y)*Delta(y) + sin(y)*cos(x)*Delta(x))\n        #   cos(z) = sqrt((1-sin(z))*(1+sin(z)))\n        sx, cx, sy, cy = sincos2_(x, y)\n        D  = (cx + cy) * (eF.fDelta(sy, cy) * sx +\n                          eF.fDelta(sx, cx) * sy)\n        D  = (sx + sy) * _Dsin(x, y) / D\n        t  =  D * d\n        t2 = _1_0 + t**2\n        D *= _2_0 / t2\n        s  =  D * d\n        if s:\n            c = (t + _1_0) * (_1_0 - t) / t2\n            r = eF.fE(s, c, eF.fDelta(s, c)) / s\n        r = D * (r - eF.k2 * sx * sy)\n    elif d:\n        r = (eF.fE(x) - eF.fE(y)) / d\n    return r\n\n\ndef _Dgd(x, y):\n    return _Datan(sinh(x), sinh(y)) * _Dsinh(x, y)\n\n\ndef _Dgdinv(x, y):  # x, y are tangents\n    return _Dasinh(x, y) / _Datan(x, y)\n\n\ndef _Dlog(x, y):\n    d = (x - y) * _0_5\n    # Changed atanh(t / (x + y)) to asinh(t / (2 * sqrt(x*y))) to\n    # avoid taking atanh(1) when x is large and y is 1.  This also\n    # fixes bogus results being returned for the area when an endpoint\n    # is at a pole.  N.B. this routine is invoked with positive x\n    # and y, so the sqrt is always taken of a positive quantity.\n    return (asinh(d / sqrt(x * y)) / d) if d else _1_over(x)\n\n\ndef _Dsin(x, y):\n    return _Dsincos(x, y, sin, cos)\n\n\ndef _Dsincos(x, y, sin_, cos_):\n    r = cos_((x + y) * _0_5)\n    d =      (x - y) * _0_5\n    if d:\n        r *= sin_(d) / d\n    return r\n\n\ndef _Dsinh(x, y):\n    return _Dsincos(x, y, sinh, cosh)\n\n\ndef _Dtan(x, y):  # PYCHOK no cover\n    return _Dtant(x - y, tan(x), tan(y))\n\n\ndef _Dtant(dxy, tx, ty):\n    txy = tx  * ty\n    r   = txy + _1_0\n    if dxy:  # 2 * txy > -1 == 2 * txy + 1 > 0 == txy + r > 0 == txy > -r\n        r = ((tan(dxy) * r) if txy > -r else (tx - ty)) / dxy\n    return r\n\n\ndef _Eaux4(E_aux, mu_psi_x, mu_psi_y):  # degrees\n    # get inverse auxiliary lats in radians and tangents\n    phix = radians(E_aux(mu_psi_x, inverse=True))\n    phiy = radians(E_aux(mu_psi_y, inverse=True))\n    return phix, phiy, tan(phix), tan(phiy)\n\n\ndef _gd(x):\n    return atan(sinh(x))\n\n\ndef _sincosSeries(sinp, x, y, C, n):\n    # N.B. C[] has n+1 elements of which\n    #      C[0] is ignored and n >= 0\n    # Use Clenshaw summation to evaluate\n    #   m = (g(x) + g(y)) / 2        -- mean value\n    #   s = (g(x) - g(y)) / (x - y)  -- average slope\n    # where\n    #   g(x) = sum(C[j] * SC(2 * j * x), j = 1..n)\n    #   SC = sinp ? sin : cos\n    #   CS = sinp ? cos : sin\n    # ...\n    d, _neg = (x - y), _MODS.basics.neg\n    sp, cp, sd, cd = sincos2_(x + y, d)\n    sd = (sd / d) if d else _1_0\n    s  = _neg(sp * sd)  # negative\n    # 2x2 matrices in row-major order\n    a1 = s  *  d**2\n    a2 = s  * _4_0\n    a0 = a3 = _2_0 * cp * cd  # m\n    b2 = b1 = _0_0s(4)\n    if n > 0:\n        b1 = C[n], _0_0, _0_0, C[n]\n\n    _fsum = _MODS.fsums.fsum1f_\n    for j in range(n - 1, 0, -1):  # C[0] unused\n        b1, b2, Cj = b2, b1, C[j]\n        # b1 = a * b2 - b1 + C[j] * I\n        m0, m1, m2, m3 = b2\n        n0, n1, n2, n3 = map(_neg, b1)\n        b1 = (_fsum(a0 * m0, a1 * m2, n0, Cj),\n              _fsum(a0 * m1, a1 * m3, n1),\n              _fsum(a2 * m0, a3 * m2, n2),\n              _fsum(a2 * m1, a3 * m3, n3, Cj))\n    # Here are the full expressions for m and s\n    # f01, f02, f11, f12 = (0, 0, cd * sp,  2 * sd * cp) if sinp else \\\n    #                      (1, 0, cd * cp, -2 * sd * sp)\n    # m = -b2[1] * f02 + (C[0] - b2[0]) * f01 + b1[0] * f11 + b1[1] * f12\n    # s = -b2[2] * f01 + (C[0] - b2[3]) * f02 + b1[2] * f11 + b1[3] * f12\n    cd *=  b1[2]\n    sd *=  b1[3] * _2_0\n    s   = _fsum(cd * sp,      sd * cp) if sinp else \\\n          _fsum(cd * cp, _neg(sd * sp), _neg(b2[2]))\n    return s\n\n\n_RACoeffs = {  # Generated by Maxima on 2015-05-15 08:24:04-04:00\n 4: (  # GEOGRAPHICLIB_RHUMBAREA_ORDER == 4\n     691, 7860, -20160, 18900, 0, 56700,  # R[0]/n^0, polynomial(n), order 4\n     1772, -5340, 6930, -4725, 14175,  # R[1]/n^1, polynomial(n), order 3\n    -1747, 1590, -630, 4725,  # PYCHOK R[2]/n^2, polynomial(n), order 2\n     104, -31, 315,  # R[3]/n^3, polynomial(n), order 1\n    -41, 420),  # PYCHOK R[4]/n^4, polynomial(n), order 0, count = 20\n 5: (  # GEOGRAPHICLIB_RHUMBAREA_ORDER == 5\n    -79036, 22803, 259380, -665280, 623700, 0, 1871100,  # PYCHOK R[0]/n^0, polynomial(n), order 5\n     41662, 58476, -176220, 228690, -155925, 467775,  # PYCHOK R[1]/n^1, polynomial(n), order 4\n     18118, -57651, 52470, -20790, 155925,  # PYCHOK R[2]/n^2, polynomial(n), order 3\n    -23011, 17160, -5115, 51975,  # PYCHOK R[3]/n^3, polynomial(n), order 2\n     5480, -1353, 13860,  # PYCHOK R[4]/n^4, polynomial(n), order 1\n    -668, 5775),    # PYCHOK R[5]/n^5, polynomial(n), order 0, count = 27\n 6: (  # GEOGRAPHICLIB_RHUMBAREA_ORDER == 6\n     128346268, -107884140, 31126095, 354053700, -908107200, 851350500, 0, 2554051500,  # R[0]/n^0, polynomial(n), order 6\n    -114456994, 56868630, 79819740, -240540300, 312161850, -212837625, 638512875,  # PYCHOK R[1]/n^1, polynomial(n), order 5\n     51304574, 24731070, -78693615, 71621550, -28378350, 212837625,  # R[2]/n^2, polynomial(n), order 4\n     1554472, -6282003, 4684680, -1396395, 14189175,  # R[3]/n^3, polynomial(n), order 3\n    -4913956, 3205800, -791505, 8108100,  # PYCHOK R[4]/n^4, polynomial(n), order 2\n     1092376, -234468, 2027025,  # R[5]/n^5, polynomial(n), order 1\n    -313076, 2027025),    # PYCHOK R[6]/n^6, polynomial(n), order 0, count = 35\n 7: (  # GEOGRAPHICLIB_RHUMBAREA_ORDER == 7\n    -317195588, 385038804, -323652420, 93378285, 1062161100, -2724321600, 2554051500, 0, 7662154500,  # PYCHOK R[0]/n^0, polynomial(n), order 7\n     258618446, -343370982, 170605890, 239459220, -721620900, 936485550, -638512875, 1915538625,  # PYCHOK R[1]/n^1, polynomial(n), order 6\n    -248174686, 153913722, 74193210, -236080845, 214864650, -85135050, 638512875,  # PYCHOK R[2]/n^2, polynomial(n), order 5\n     114450437, 23317080, -94230045, 70270200, -20945925, 212837625,  # PYCHOK R[3]/n^3, polynomial(n), order 4\n     15445736, -103193076, 67321800, -16621605, 170270100,  # PYCHOK R[4]/n^4, polynomial(n), order 3\n    -27766753, 16385640, -3517020, 30405375,  # PYCHOK R[4]/n^4, polynomial(n), order 3\n     4892722, -939228, 6081075,  # PYCHOK R[4]/n^4, polynomial(n), order 3\n    -3189007, 14189175),    # PYCHOK R[7]/n^7, polynomial(n), order 0, count = 44\n 8: (  # GEOGRAPHICLIB_RHUMBAREA_ORDER == 8\n     71374704821, -161769749880, 196369790040, -165062734200, 47622925350, 541702161000, -1389404016000, 1302566265000, 0, 3907698795000,  # R[0]/n^0, polynomial(n), order 8\n    -13691187484, 65947703730, -87559600410, 43504501950, 61062101100, -184013329500, 238803815250, -162820783125, 488462349375,  # PYCHOK R[1]/n^1, polynomial(n), order 7\n     30802104839, -63284544930, 39247999110, 18919268550, -60200615475, 54790485750, -21709437750, 162820783125,  # R[2]/n^2, polynomial(n), order 6\n    -8934064508, 5836972287, 1189171080, -4805732295, 3583780200, -1068242175, 10854718875,  # PYCHOK R[3]/n^3, polynomial(n), order 5\n     50072287748, 3938662680, -26314234380, 17167059000, -4238509275, 43418875500,  # R[4]/n^4, polynomial(n), order 4\n     359094172, -9912730821, 5849673480, -1255576140, 10854718875,  # R[5]/n^5, polynomial(n), order 3\n    -16053944387, 8733508770, -1676521980, 10854718875,  # PYCHOK R[6]/n^6, polynomial(n), order 2\n     930092876, -162639357, 723647925,  # R[7]/n^7, polynomial(n), order 1\n    -673429061, 1929727800)    # PYCHOK R[8]/n^8, polynomial(n), order 0, count = 54\n}\n\n__all__ += _ALL_DOCS(Caps)\n\n# **) MIT License\n#\n# Copyright (C) 2022-2026 -- mrJean1 at Gmail -- All Rights Reserved.\n#\n# Permission is hereby granted, free of charge, to any person obtaining a\n# copy of this software and associated documentation files (the \"Software\"),\n# to deal in the Software without restriction, including without limitation\n# the rights to use, copy, modify, merge, publish, distribute, sublicense,\n# and/or sell copies of the Software, and to permit persons to whom the\n# Software is furnished to do so, subject to the following conditions:\n#\n# The above copyright notice and this permission notice shall be included\n# in all copies or substantial portions of the Software.\n#\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL\n# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR\n# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\n# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n# OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "pygeodesy/rhumb/solve.py",
    "content": "\n# -*- coding: utf-8 -*-\n\nu'''Wrapper to invoke I{Karney}'s U{RhumbSolve\n<https://GeographicLib.SourceForge.io/C++/doc/RhumbSolve.1.html>} utility\nas an (exact) rhumb or rhumb line from I{either GeographicLib 2.0 or 2.2+}.\n\n@note: Set env variable C{PYGEODESY_RHUMBSOLVE} to the (fully qualified)\n       path of the C{RhumbSolve} executable.\n'''\nfrom pygeodesy.basics import _xinstanceof\nfrom pygeodesy.constants import _180_0, _N_180_0, _over,  _0_0  # PYCHOK used!\nfrom pygeodesy.errors import RhumbError   # PYCHOK used!\nfrom pygeodesy.interns import NN, _a12_, _azi12_, _DMAIN_, _lat2_, \\\n                             _lon2_, _s12_, _S12_, _UNDER_\nfrom pygeodesy.karney import Caps, GDict, _norm180, Rhumb8Tuple, \\\n                            _sincos2d, _Xables\nfrom pygeodesy.lazily import _ALL_DOCS, _ALL_LAZY  # _ALL_MODS as _MODS\nfrom pygeodesy.namedTuples import Destination3Tuple, Distance3Tuple\nfrom pygeodesy.props import Property, Property_RO\nfrom pygeodesy.solveBase import _SolveGDictBase, _SolveGDictLineBase\nfrom pygeodesy.utily import _unrollon, _Wrap, wrap360\n\n__all__ = _ALL_LAZY.rhumb_solve\n__version__ = '25.12.06'\n\n\nclass _RhumbSolveBase(_SolveGDictBase):\n    '''(INTERNAL) Base class for L{RhumbSolve} and L{RhumbLineSolve}.\n    '''\n    _Error          =  RhumbError\n    _Names_Direct   = \\\n    _Names_Distance = _lat2_, _lon2_, _S12_\n    _Names_Inverse  = _azi12_, _s12_, _S12_\n    _Xable_name     = _Xables.RhumbSolve.__name__  # typename\n    _Xable_path     = _Xables.RhumbSolve()\n\n    @Property_RO\n    def _cmdBasic(self):\n        '''(INTERNAL) Get the basic C{RhumbSolve} cmd (C{tuple}).\n        '''\n        return (self.RhumbSolve,) + (self._e_option +\n                                     self._p_option +\n                                     self._s_option)\n\n    @Property\n    def RhumbSolve(self):\n        '''Get the U{RhumbSolve<https://GeographicLib.SourceForge.io/C++/doc/RhumbSolve.1.html>}\n           executable (C{filename}).\n        '''\n        return self._Xable_path\n\n    @RhumbSolve.setter  # PYCHOK setter!\n    def RhumbSolve(self, path):\n        '''Set the U{RhumbSolve<https://GeographicLib.SourceForge.io/C++/doc/RhumbSolve.1.html>}\n           executable (C{filename}), the (fully qualified) path to the C{RhumbSolve} executable.\n\n           @raise RhumbError: Invalid B{C{path}}, B{C{path}} doesn't exist or isn't\n                              the C{RhumbSolve} executable.\n        '''\n        self._setXable(path)\n\n    @Property_RO\n    def _s_option(self):  # == not -E for GeodSolve\n        return () if self.Exact else ('-s',)\n\n#   @Property_RO\n#   def _u_option(self):\n#       return '-u' if self.unroll else ()\n\n\nclass RhumbSolve(_RhumbSolveBase):\n    '''Wrapper to invoke I{Karney}'s U{RhumbSolve<https://GeographicLib.SourceForge.io/C++/doc/RhumbSolve.1.html>}\n       like a class, similar to L{pygeodesy.Rhumb} and L{pygeodesy.RhumbAux}.\n\n       @note: Use property C{RhumbSolve} or env variable C{PYGEODESY_RHUMBSOLVE} to specify the (fully\n              qualified) path to the C{RhumbSolve} executable.\n\n       @note: This C{rhumb} is intended I{for testing purposes only}, it invokes the C{RhumbSolve}\n              executable for I{every} method call.\n    '''\n#   def Area(self, polyline=False, **name):\n#       '''Set up a L{RhumbArea} to compute area and\n#          perimeter of a polygon.\n#\n#          @kwarg polyline: If C{True}, compute the perimeter only,\n#                           otherwise perimeter and area (C{bool}).\n#          @kwarg name: Optional C{B{name}=NN} (C{str}).\n#\n#          @return: A L{RhumbArea} instance.\n#\n#          @note: The B{C{debug}} setting is passed as C{verbose}\n#                 to the returned L{RhumbAreaExact} instance.\n#       '''\n#       rA = _MODS.rhumbs.rhumb*.RhumbArea(self, polyline=polyline,\n#                                          name=self._name__(name))\n#       if self.verbose or self.debug:  # PYCHOK no cover\n#           rA.verbose = True\n#       return rA\n\n#   Polygon = Area  # for C{geographiclib} compatibility\n\n    def _azimuth_reverse(self, azimuth):\n        '''(INTERNAL) Reverse final azimuth C{azimuth}.\n        '''\n        z = _norm180(float(azimuth))\n        if self.reverse2:  # like .utils.atan2d\n            z += _180_0 if z < 0 else _N_180_0\n        return z\n\n    def _Direct(self, ll1, azi12, s12, **outmask):\n        '''(INTERNAL) Short-cut version, see .latlonBase.\n        '''\n        return self.Direct(ll1.lat, ll1.lon, azi12, s12, **outmask)\n\n    def Direct3(self, lat1, lon1, azi1, s12):  # PYCHOK outmask\n        '''Return the destination lat, lon and reverse azimuth\n           (final bearing) in C{degrees}.\n\n           @return: L{Destination3Tuple}C{(lat, lon, final)}.\n        '''\n        r = self._GDictDirect(lat1, lon1, azi1, False, s12, floats=False)\n        z = self._azimuth_reverse(r.azi12)\n        return Destination3Tuple(float(r.lat2), float(r.lon2), wrap360(z),\n                                 iteration=r._iteration)\n\n    def _DirectLine(self, ll1, azi12, **name_caps):\n        '''(INTERNAL) Short-cut version, see .latlonBase.\n        '''\n        return self.DirectLine(ll1.lat, ll1.lon, azi12, **name_caps)\n\n    def DirectLine(self, lat1, lon1, azi1, caps=Caps.STANDARD, **name):\n        '''Set up a L{RhumbLineSolve} in terms of the I{direct} rhumb\n           problem to compute several points on a single rhumb line.\n\n           @arg lat1: Latitude of the first point (C{degrees}).\n           @arg lon1: Longitude of the first point (C{degrees}).\n           @arg azi1: Azimuth at the first point (compass C{degrees}).\n           @kwarg caps: Bit-or'ed combination of L{Caps<pygeodesy.karney.Caps>}\n                        values specifying the capabilities the L{RhumbLineSolve}\n                        instance should possess, always C{Caps.ALL}.\n           @kwarg name: Optional C{B{name}=NN} (C{str}).\n\n           @return: A L{RhumbLineSolve} instance.\n\n           @note: If the point is at a pole, the azimuth is defined by keeping\n                  B{C{lon1}} fixed, writing C{B{lat1} = ±(90 − ε)}, and taking\n                  the limit C{ε → 0+}.\n\n           @see: C++ U{RhumbExact.Line\n                 <https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1RhumbExact.html>}\n                 and Python U{Rhumb.Line<https://GeographicLib.SourceForge.io/Python/doc/code.html>}.\n        '''\n        return RhumbLineSolve(self, lat1, lon1, azi1, caps=caps, name=self._name__(name))\n\n    def _GDictDirect(self, lat, lon, azi1, arcmode, s12_a12, *unused, **floats):  # PYCHOK signature\n        '''(INTERNAL) Get C{_GenDirect}-like result as an 8-item C{GDict}.\n        '''\n        d = _RhumbSolveBase._GDictDirect(self, lat, lon, azi1, arcmode, s12_a12, **floats)\n        r =  GDict(lat1=lat, lon1=lon, azi12=azi1, s12=s12_a12)  # a12=_over(s12_a12, self._mpd)\n        r.update(d)\n        return r\n\n    def _GDictInverse(self, lat1, lon1, lat2, lon2, *unused, **floats):  # PYCHOK signature\n        '''(INTERNAL) Get C{_GenInverse}-like result as an 8-item C{GDict}, but I{without} C{_SALP_CALPs_}.\n        '''\n        i = _RhumbSolveBase._GDictInverse(self, lat1, lon1, lat2, lon2, **floats)\n        a = _over(float(i.s12), self._mpd)  # for .Inverse1\n        r =  GDict(lat1=lat1, lon1=lon1, lat2=lat2, lon2=lon2, a12=a)\n        r.update(i)\n        return r\n\n    def _Inverse(self, ll1, ll2, wrap, **unused):\n        '''(INTERNAL) Short-cut version, see .latlonBase.\n        '''\n        if wrap:  # PYCHOK no cover\n            ll2 = _unrollon(ll1, _Wrap.point(ll2))\n        return self._GDictInverse(ll1.lat, ll1.lon, ll2.lat, ll2.lon)\n\n    def Inverse3(self, lat1, lon1, lat2, lon2):  # PYCHOK outmask\n        '''Return the distance in C{meter} and the forward and\n           reverse azimuths (initial and final bearing) in C{degrees}.\n\n           @return: L{Distance3Tuple}C{(distance, initial, final)}.\n        '''\n        r = self._GDictInverse(lat1, lon1, lat2, lon2, floats=False)\n        z = self._azimuth_reverse(r.azi12)\n        return Distance3Tuple(float(r.s12), wrap360(r.azi12), wrap360(z),\n                              iteration=r._iteration)\n\n    def _InverseLine(self, ll1, ll2, wrap, **name_caps):\n        '''(INTERNAL) Short-cut version, see .latlonBase.\n        '''\n        if wrap:  # PYCHOK no cover\n            ll2 = _unrollon(ll1, _Wrap.point(ll2))\n        return self.InverseLine(ll1.lat, ll1.lon, ll2.lat, ll2.lon, **name_caps)\n\n    def InverseLine(self, lat1, lon1, lat2, lon2, caps=Caps.STANDARD, **name):\n        '''Define a L{RhumbLineSolve} in terms of the I{inverse}\n           rhumb problem.\n\n           @arg lat1: Latitude of the first point (C{degrees90}).\n           @arg lon1: Longitude of the first point (C{degrees180}).\n           @arg lat2: Latitude of the second point (C{degrees90}).\n           @arg lon2: Longitude of the second point (C{degrees180}).\n           @kwarg caps: Optional C{caps}, see L{RhumbLine} C{B{caps}}.\n           @kwarg name: Optional C{B{name}=NN} (C{str}).\n\n           @return: A L{RhumbLineSolve} instance and invoke its method\n                    L{RhumbLine.Position} to compute each point.\n\n           @note: Updates to this rhumb are reflected in the returned\n                  rhumb line.\n        '''\n        r = self.Inverse(lat1, lon1, lat2, lon2)  # outmask=Caps.AZIMUTH\n        return RhumbLineSolve(self, lat1, lon1, r.azi12, caps=caps,\n                                                name=self._name__(name))\n\n    Line = DirectLine\n\n    def toStr(self, **prec_sep_other):  # PYCHOK signature\n        '''Return this C{RhumbSolve} as string.\n\n           @kwarg prec_sep: See L{toStr<pygeodesy.solveBase._SolveBase.toStr>}.\n\n           @return: RhumbSolve items (C{str}).\n        '''\n        return _RhumbSolveBase.toStr(self, RhumbSolve=self.RhumbSolve, **prec_sep_other)\n\n\nclass RhumbLineSolve(_RhumbSolveBase, _SolveGDictLineBase):\n    '''Wrapper to invoke I{Karney}'s U{RhumbSolve<https://GeographicLib.SourceForge.io/C++/doc/RhumbSolve.1.html>}\n       like a class, similar to L{pygeodesy.RhumbLine} and L{pygeodesy.RhumbLineAux}.\n\n       @note: Use property C{RhumbSolve} or env variable C{PYGEODESY_RHUMBSOLVE} to specify the (fully\n              qualified) path to the C{RhumbSolve} executable.\n\n       @note: This C{rhumb line} is intended I{for testing purposes only}, it invokes the C{RhumbSolve}\n              executable for I{every} method call.\n    '''\n    def __init__(self, rhumb, lat1, lon1, azi12, caps=Caps.STANDARD, **name):\n        '''New L{RhumbLineSolve} instance, allowing points to be found along\n           a rhumb starting at C{(B{lat1}, B{lon1})} with azimuth B{C{azi12}}.\n\n           @arg rhumb: The rhumb to use (L{RhumbSolve}).\n           @arg lat1: Latitude of the first point (C{degrees90}).\n           @arg lon1: Longitude of the first point (C{degrees180}).\n           @arg azi12: Azimuth of the rhumb line (compass C{degrees180}).\n           @kwarg caps: Bit-or'ed combination of L{Caps<pygeodesy.karney.Caps>}\n                        values specifying the capabilities the L{RhumbLineSolve}\n                        instance should possess, always C{Caps.ALL}.  Include\n                        C{Caps.LINE_OFF} if updates to the B{C{rhumb}} should\n                        I{not be reflected} in this L{RhumbLineSolve} instance.\n           @kwarg name: Optional C{B{name}=NN} (C{str}).\n\n           @kwarg name: Optional name (C{str}).\n\n           @raise RhumbError: Invalid path for C{RhumbSolve} executable or isn't the\n                              C{RhumbSolve} executable, see property C{B{rhumb}.RhumbSolve}.\n\n           @raise TypeError: Invalid B{C{rhumb}}.\n        '''\n        _xinstanceof(RhumbSolve, rhumb=rhumb)\n        if (caps & Caps.LINE_OFF):  # copy to avoid updates\n            rhumb = rhumb.copy(deep=False, name=NN(_UNDER_, rhumb.name))\n        _SolveGDictLineBase.__init__(self, rhumb, lat1, lon1, caps, azi12=azi12, **name)\n        try:\n            self.RhumbSolve = rhumb.RhumbSolve  # rhumb or copy of rhumb\n        except RhumbError:\n            pass\n\n#   def ArcPosition(self, a12, *unused):\n#       '''Find the position on the line given B{C{a12}}.\n#\n#          @arg a12: Spherical arc length from the first point to the\n#                    second point (C{degrees}).\n#\n#          @return: A C{dict} with 8 items C{lat1, lon1, lat2, lon2,\n#                   azi12, a12, s12, S12}.\n#       '''\n#       s = a12 * self._mpd\n#       a = self._GDictInvoke(self._cmdArc, self._Names_Distance, s)\n#       r = GDict(a12=a12, s12=s, **self._lla1)\n#       r.updated(a)\n#       return r\n\n    @Property_RO\n    def azi12(self):\n        '''Get this rhumb line's azimuth (compass C{degrees}).\n        '''\n        return self._lla1.azi12\n\n    azi1 = azi12  # like GeodesicLineSolve\n\n    @Property_RO\n    def azi12_sincos2(self):  # PYCHOK no cover\n        '''Get the sine and cosine of this rhumb line's azimuth (2-tuple C{(sin, cos)}).\n        '''\n        return _sincos2d(self.azi12)\n\n    azi1_sincos2 = azi12_sincos2\n\n#   @Property_RO\n#   def _cmdArc(self):\n#       '''(INTERNAL) Get the C{RhumbSolve} I{-a -L} cmd (C{tuple}).\n#       '''\n#       return self._cmdDistance + ('-a',)\n\n    def Position(self, s12, **unused):\n        '''Find the position on the line given B{C{s12}}.\n\n           @arg s12: Distance from the first point to the second (C{meter}).\n\n           @return: A L{GDict} with 7 items C{lat1, lon1, lat2, lon2,\n                    azi12, s12, S12}.\n        '''\n        d = self._GDictInvoke(self._cmdDistance, self._Names_Distance, s12)\n        r = GDict(s12=s12, **self._lla1)  # a12=_over(s12, self._mpd)\n        r.update(d)\n        return r\n\n    def toStr(self, **prec_sep_other):  # PYCHOK signature\n        '''Return this C{RhumbLineSolve} as string.\n\n           @kwarg prec_sep: See L{toStr<pygeodesy.solveBase._SolveBase.toStr>}.\n\n           @return: RhumbLineSolve items (C{str}).\n        '''\n        return _SolveGDictLineBase.toStr(self, rhumb=self._solve, **prec_sep_other)\n\n\nclass RhumbSolve7Tuple(Rhumb8Tuple):\n    '''7-Tuple C{(lat1, lon1, lat2, lon2, azi12, s12, S12)} with lat- C{lat1},\n       C{lat2} and longitudes C{lon1}, C{lon2} of both points, the azimuth of\n       the rhumb line C{azi12}, the distance C{s12} and the area C{S12} under\n       the rhumb line between both points.\n    '''\n    assert Rhumb8Tuple._Names_.index(_a12_) == 7\n    _Names_ = Rhumb8Tuple._Names_[:7]  # drop a12\n    _Units_ = Rhumb8Tuple._Units_[:7]\n\n\n__all__ += _ALL_DOCS(_RhumbSolveBase)\n\nif __name__ == _DMAIN_:\n\n    from pygeodesy import printf\n    from sys import argv\n\n    def rhumb_intercept(rS, lat1, lon1, lat2, lon2, azi2, s23):\n        # using RhumbSolve and GeodesicExact for I{Karney}'s C++ U{rhumb-intercept.cpp\n        # <https://SourceForge.net/p/geographiclib/discussion/1026620/thread/2ddc295e/>\n        from pygeodesy.constants import EPS4 as _TOL\n        from pygeodesy.karney import _diff182\n\n        E  = rS.ellipsoid\n        gX = E.geodesicx  # == GeodesicExact(E)\n        m  = gX.STANDARD | gX.REDUCEDLENGTH | gX.GEODESICSCALE\n\n        rlS = rS.Line(lat2, lon2, azi2)\n        sa, _ = rlS.azi12_sincos2  # aka _salp, _calp\n        for i in range(1, 16):\n            p = rlS.Position(s23)  # outmask=gX.LATITUDE_LONGITUDE\n            r = gX.Inverse(lat1, lon1, p.lat2, p.lon2, outmask=m)\n            d, _ = _diff182(azi2, r.azi2, K_2_0=True)\n            s, c = _sincos2d(d)\n            printf('%2d %.3f %.8f, %.8f, %.8e',\n                   i, s23, r.lat2, r.lon2, c)\n            s2, c2 = _sincos2d(r.lat2)\n            c2 *= E.rocTransverse(r.lat2)\n            if c2 and r.m12:\n                s *= (s2 * sa) / c2 - s * r.M21 / r.m12\n                t  = (c / s) if s else _0_0\n                if abs(t) < _TOL:\n                    break\n                s23 += t\n            else:\n                break\n\n    rS = RhumbSolve(name='Test')\n    rS.verbose = v = '--verbose' in argv  # or '-v' in argv\n\n    if not _Xables.X_OK(rS.RhumbSolve):  # not set\n        rS.RhumbSolve = _Xables.RhumbSolve(_Xables.bin_)\n    printf('version: %s', rS.version)\n\n    if len(argv) > 6:  # 60 0 30 0 45 1e6\n        t = (14, 's23'), (7, 'lat3'), (11, 'lon3'), (13, 'cos()')\n        printf(' '.join('%*s' % _ for _ in t))\n        rhumb_intercept(rS, *map(float, argv[-6:]))\n        exit()\n\n    r = rS.Direct(40.6, -73.8, 51, 5.5e6)\n    printf('Direct: %r', r)\n    printf('Direct3: %r', rS.Direct3(40.6, -73.8, 51, 5.5e6), nt=v)\n\n    printf('Inverse: %r',  rS.Inverse( 40.6, -73.8, 51.6, -0.5))\n    printf('Inverse1: %r', rS.Inverse1(40.6, -73.8, 51.6, -0.5))\n    printf('Inverse3: %r', rS.Inverse3(40.6, -73.8, 51.6, -0.5), nt=v)\n\n    printf('Inverse: %r',  rS.Inverse( 40.6, -73.8, 35.8, 140.3))\n    printf('Inverse1: %r', rS.Inverse1(40.6, -73.8, 35.8, 140.3))\n    printf('Inverse3: %r', rS.Inverse3(40.6, -73.8, 35.8, 140.3), nt=v)\n\n    rlS = RhumbLineSolve(rS, 40.6, -73.8, 51, name='LineTest')\n    printf('Line: %r', rlS)\n    p = rlS.Position(5.5e6)\n    printf('Position:    %r %s', p, p == r)\n#   p = rlS.ArcPosition(49.475527)\n#   printf('ArcPosition: %r %s', p, p == r)\n\n\n# % python3 -m pygeodesy.rhumb.solve\n\n# version: /opt/local/bin/RhumbSolve: GeographicLib version 2.7\n# Direct: GDict(azi12=51, lat1=40.6, lat2=71.6889, lon1=-73.8, lon2=0.25552, s12=5500000.0, S12=44095641862956.132812)\n# Direct3: Destination3Tuple(lat=71.6889, lon=0.25552, final=51.0)\n# Inverse: GDict(a12=51.929543, azi12=77.76839, lat1=40.6, lat2=51.6, lon1=-73.8, lon2=-0.5, s12=5771083.383328, S12=37395209100030.382812)\n# Inverse1: 51.929542507561905\n# Inverse3: Distance3Tuple(distance=5771083.383328, initial=77.76839, final=77.76839)\n# Inverse: GDict(a12=115.02062, azi12=-92.388888, lat1=40.6, lat2=35.8, lon1=-73.8, lon2=140.3, s12=12782581.067684, S12=-63760642939072.5)\n# Inverse1: 115.02061966879248\n# Inverse3: Distance3Tuple(distance=12782581.067684, initial=267.611112, final=267.611112)\n# Line: RhumbLineSolve(invokation=1, rhumb=RhumbSolve(ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), invokation=9, RhumbSolve='/opt/local/bin/RhumbSolve', status=0), status=0)\n# Position:    GDict(azi12=51, lat1=40.6, lat2=71.6889, lon1=-73.8, lon2=0.25552, s12=5500000.0, S12=44095641862956.132812) True\n\n\n# % python3 -m pygeodesy.rhumb.solve --verbose\n\n# RhumbSolve 'Test'@1: /opt/local/bin/RhumbSolve --version (invoke)\n# RhumbSolve 'Test'@1: '/opt/local/bin/RhumbSolve: GeographicLib version 2.7' (0, stdout/-err)\n# RhumbSolve 'Test'@1: /opt/local/bin/RhumbSolve: GeographicLib version 2.7 (0)\n# version: /opt/local/bin/RhumbSolve: GeographicLib version 2.7\n# RhumbSolve 'Test'@2: /opt/local/bin/RhumbSolve -p 10 \\ 40.6 -73.8 51.0 5500000.0 (Direct)\n# RhumbSolve 'Test'@2: '71.688899882813033 0.255519824423445 44095641862956.133' (0, stdout/-err)\n# RhumbSolve 'Test'@2: lat2=71.688899882813033, lon2=0.255519824423445, S12=44095641862956.133 (0)\n# Direct: GDict(azi12=51, lat1=40.6, lat2=71.6889, lon1=-73.8, lon2=0.25552, s12=5500000.0, S12=44095641862956.132812)\n# RhumbSolve 'Test'@3: /opt/local/bin/RhumbSolve -p 10 \\ 40.6 -73.8 51.0 5500000.0 (Direct3)\n# RhumbSolve 'Test'@3: '71.688899882813033 0.255519824423445 44095641862956.133' (0, stdout/-err)\n# RhumbSolve 'Test'@3: lat2=71.688899882813033, lon2=0.255519824423445, S12=44095641862956.133 (0)\n# Direct3: Destination3Tuple(lat=71.6889, lon=0.25552, final=51.0)\n#\n# RhumbSolve 'Test'@4: /opt/local/bin/RhumbSolve -p 10 -i \\ 40.6 -73.8 51.6 -0.5 (Inverse)\n# RhumbSolve 'Test'@4: '77.768389710255676 5771083.3833280280 37395209100030.383' (0, stdout/-err)\n# RhumbSolve 'Test'@4: azi12=77.768389710255676, s12=5771083.383328028, S12=37395209100030.383 (0)\n# Inverse: GDict(a12=51.929543, azi12=77.76839, lat1=40.6, lat2=51.6, lon1=-73.8, lon2=-0.5, s12=5771083.383328, S12=37395209100030.382812)\n# RhumbSolve 'Test'@5: /opt/local/bin/RhumbSolve -p 10 -i \\ 40.6 -73.8 51.6 -0.5 (Inverse1)\n# RhumbSolve 'Test'@5: '77.768389710255676 5771083.3833280280 37395209100030.383' (0, stdout/-err)\n# RhumbSolve 'Test'@5: azi12=77.768389710255676, s12=5771083.383328028, S12=37395209100030.383 (0)\n# Inverse1: 51.929542507561905\n# RhumbSolve 'Test'@6: /opt/local/bin/RhumbSolve -p 10 -i \\ 40.6 -73.8 51.6 -0.5 (Inverse3)\n# RhumbSolve 'Test'@6: '77.768389710255676 5771083.3833280280 37395209100030.383' (0, stdout/-err)\n# RhumbSolve 'Test'@6: azi12=77.768389710255676, s12=5771083.383328028, S12=37395209100030.383 (0)\n# Inverse3: Distance3Tuple(distance=5771083.383328, initial=77.76839, final=77.76839)\n#\n# RhumbSolve 'Test'@7: /opt/local/bin/RhumbSolve -p 10 -i \\ 40.6 -73.8 35.8 140.30000000000001 (Inverse)\n# RhumbSolve 'Test'@7: '-92.388887981699654 12782581.0676841699 -63760642939072.500' (0, stdout/-err)\n# RhumbSolve 'Test'@7: azi12=-92.388887981699654, s12=12782581.0676841699, S12=-63760642939072.5 (0)\n# Inverse: GDict(a12=115.02062, azi12=-92.388888, lat1=40.6, lat2=35.8, lon1=-73.8, lon2=140.3, s12=12782581.067684, S12=-63760642939072.5)\n# RhumbSolve 'Test'@8: /opt/local/bin/RhumbSolve -p 10 -i \\ 40.6 -73.8 35.8 140.30000000000001 (Inverse1)\n# RhumbSolve 'Test'@8: '-92.388887981699654 12782581.0676841699 -63760642939072.500' (0, stdout/-err)\n# RhumbSolve 'Test'@8: azi12=-92.388887981699654, s12=12782581.0676841699, S12=-63760642939072.5 (0)\n# Inverse1: 115.02061966879248\n# RhumbSolve 'Test'@9: /opt/local/bin/RhumbSolve -p 10 -i \\ 40.6 -73.8 35.8 140.30000000000001 (Inverse3)\n# RhumbSolve 'Test'@9: '-92.388887981699654 12782581.0676841699 -63760642939072.500' (0, stdout/-err)\n# RhumbSolve 'Test'@9: azi12=-92.388887981699654, s12=12782581.0676841699, S12=-63760642939072.5 (0)\n# Inverse3: Distance3Tuple(distance=12782581.067684, initial=267.611112, final=267.611112)\n#\n# Line: RhumbLineSolve(invokation=1, rhumb=RhumbSolve(ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), invokation=9, RhumbSolve='/opt/local/bin/RhumbSolve', status=0), status=0)\n# Position:    GDict(azi12=51, lat1=40.6, lat2=71.6889, lon1=-73.8, lon2=0.25552, s12=5500000.0, S12=44095641862956.132812) True\n\n\n# % python3 -m pygeodesy.rhumb.solve 60 0 30 0 45 1e6\n\n# version: /opt/local/bin/RhumbSolve: GeographicLib version 2.2\n#            s23    lat3        lon3         cos()\n#  1 1000000.000 36.37559999, 7.58982303, -5.83098638e-01\n#  2 4532573.097 58.84251798, 41.57078946, 4.05349594e-01\n#  3 2233216.895 44.22871762, 17.86660260, -2.91432608e-01\n#  4 3168401.173 50.17678842, 26.60741388, 3.00555188e-02\n#  5 3082690.347 49.63189746, 25.76374255, -1.49446251e-04\n#  6 3083112.629 49.63458216, 25.76787599, -2.59865190e-09\n#  7 3083112.636 49.63458221, 25.76787606, 4.96052409e-16\n#  8 3083112.636 49.63458221, 25.76787606, -4.96052409e-16\n#  9 3083112.636 49.63458221, 25.76787606, 4.96052409e-16\n# 10 3083112.636 49.63458221, 25.76787606, -4.96052409e-16\n# 11 3083112.636 49.63458221, 25.76787606, 4.96052409e-16\n# 12 3083112.636 49.63458221, 25.76787606, -4.96052409e-16\n# 13 3083112.636 49.63458221, 25.76787606, 4.96052409e-16\n# 14 3083112.636 49.63458221, 25.76787606, -4.96052409e-16\n# 15 3083112.636 49.63458221, 25.76787606, 4.96052409e-16\n\n\n# % python3 -m pygeodesy.rhumb.solve 60 0 30 0 45 1e6\n\n# version: /opt/local/bin/RhumbSolve: GeographicLib version 2.7\n#            s23    lat3        lon3         cos()\n#  1 1000000.000 36.37559999, 7.58982303, -5.83098638e-01\n#  2 4532573.097 58.84251798, 41.57078946, 4.05349594e-01\n#  3 2233216.895 44.22871762, 17.86660260, -2.91432608e-01\n#  4 3168401.173 50.17678842, 26.60741388, 3.00555188e-02\n#  5 3082690.347 49.63189746, 25.76374255, -1.49446251e-04\n#  6 3083112.629 49.63458216, 25.76787599, -2.59865140e-09\n#  7 3083112.636 49.63458221, 25.76787606, -4.96052409e-16\n#  8 3083112.636 49.63458221, 25.76787606, 0.00000000e+00\n\n# **) MIT License\n#\n# Copyright (C) 2022-2026 -- mrJean1 at Gmail -- All Rights Reserved.\n#\n# Permission is hereby granted, free of charge, to any person obtaining a\n# copy of this software and associated documentation files (the \"Software\"),\n# to deal in the Software without restriction, including without limitation\n# the rights to use, copy, modify, merge, publish, distribute, sublicense,\n# and/or sell copies of the Software, and to permit persons to whom the\n# Software is furnished to do so, subject to the following conditions:\n#\n# The above copyright notice and this permission notice shall be included\n# in all copies or substantial portions of the Software.\n#\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL\n# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR\n# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\n# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n# OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "pygeodesy/simplify.py",
    "content": "\r\n# -*- coding: utf-8 -*-\r\n\r\nu'''Simplify or linearize a path of C{LatLon} points.\r\n\r\nEach of the 4 I{simplify} functions is based on a different algorithm and\r\nproduces different, simplified results in (very) different run times for the\r\nsame path:\r\n\r\n - Function L{simplify1} eliminates points with edge lengths shorter than\r\n   the given tolerance.\r\n\r\n - Function L{simplifyRDP} implements the I{Ramer-Douglas-Peucker} (RDP)\r\n   algorithm, iteratively finding the point farthest from each path edge.\r\n   Original RDP exhaustively searches the most distant point in each iteration,\r\n   I{modified} RDP stops at the first point exceeding the distance tolerance.\r\n\r\n - Function L{simplifyRW} uses the I{Reumann-Witkam} (RW) method, sliding a\r\n   \"pipe\" over each path edge, removing all subsequent points within the pipe\r\n   radius, up to the first point outside the pipe.\r\n\r\n - Function L{simplifyVW} provides the I{Visvalingam-Whyatt} (VW) method\r\n   using the area of the triangle formed by three neigboring points.  Original\r\n   VW removes only a single point per iteration, I{modified} VW eliminates all\r\n   points with a triangular area not exceeding the tolerance in each iteration.\r\n\r\nKeyword argument I{shortest} of functions L{simplifyRDP} and L{simplifyRW}\r\nspecifies of the distance between a point and a path edge.  If C{True}, use\r\nthe I{shortest} distance to the path edge or edge points, otherwise use the\r\nI{perpendicular} distance to the (extended) edge through both points.\r\n\r\nKeyword argument B{C{radius}} of all fuctions is set to the mean earth\r\nradius in C{meter}, conventionally.  Other units may be used, provided\r\nthat radius and tolerance are specified in the same units.\r\n\r\nUse keyword argument C{B{indices}=True} in any function to return a list\r\nof I{indices} of simplified point instead of the simplified points with\r\nthe first and last index are always the first and last original index.\r\n\r\nFinally, any additional keyword arguments B{C{options}} to all functions\r\nare passed thru to function L{pygeodesy.equirectangular4} to specify the\r\ndistance approximation.\r\n\r\nTo process C{NumPy} arrays containing rows of lat-, longitude and possibly\r\nother values, use class L{Numpy2LatLon} to wrap the C{NumPy} array into\r\nI{on-the-fly-LatLon} points.  Pass the L{Numpy2LatLon} instance to any\r\nI{simplify} function and the returned result will be a C{NumPy} array\r\ncontaining the simplified subset, a partial copy of the original C{NumPy}\r\narray.  Use keyword argument C{B{indices}=True} to return a list of array\r\nrow indices inlieu of the simplified array subset.\r\n\r\nSee:\r\n - U{https://Bost.Ocks.org/mike/simplify}\r\n - U{https://WikiPedia.org/wiki/Ramer-Douglas-Peucker_algorithm}\r\n - U{https://www.ScienceDirect.com/science/article/pii/S0098300402000092}\r\n - U{https://hydra.Hull.ac.UK/resources/hull:8338}\r\n - U{https://psimpl.SourceForge.net/reumann-witkam.html}\r\n - U{https://www.CS.UBC.Ca/cgi-bin/tr/1992/TR-92-07.pdf}\r\n - U{https://GitHub.com/FlorianWilhelm/gps_data_with_python}\r\n - U{https://www.BDCC.co.UK/Gmaps/GDouglasPeuker.js}\r\n - U{https://GitHub.com/mourner/simplify-js}\r\n - U{https://GitHub.com/OmarEstrella/simplify.py}\r\n - U{https://PyPI.org/project/rdp}\r\n - U{https://PyPI.org/project/visvalingam}\r\n - U{https://PyPI.org/project/simplification}\r\n'''\r\n# make sure int/int division yields float quotient, see .basics\r\nfrom __future__ import division as _; del _  # noqa: E702 ;\r\n\r\n# from pygeodesy.basics import len2  # from .fmath\r\nfrom pygeodesy.constants import EPS, R_M, _1_0\r\nfrom pygeodesy.errors import _AttributeError, _ValueError, _xkwds_pop2\r\nfrom pygeodesy.fmath import fdot_, len2, sqrt0\r\nfrom pygeodesy.formy import equirectangular4\r\nfrom pygeodesy.interns import _small_, _too_\r\nfrom pygeodesy.iters import isNumpy2, isTuple2\r\n# from pygeodesy.lazily import _ALL_LAZY  # from .units\r\nfrom pygeodesy.units import _ALL_LAZY, _1mm, Radius_\r\n\r\nfrom math import degrees, fabs, radians\r\n\r\n__all__ = _ALL_LAZY.simplify\r\n__version__ = '25.05.12'\r\n\r\n\r\n# try:\r\n#     from collections import namedtuple\r\n#     _T2 = namedtuple('_T2', 'ix, h2')\r\n# except ImportError:\r\n#     class _T2(object):\r\n#         ...\r\n# namedtuple (and .named._NamedTuple) can not be\r\n# used because (a) values can not be updated and\r\n# (b) it produces PyChecker warning \"<string>:28:\r\n# self is not first method argument\" which can't\r\n# be suppressed with command line option --stdlib\r\nclass _T2(object):\r\n    '''(INTERNAL) VW 2-tuple (index, area2).\r\n    '''\r\n    # __slots__ are no longer space savers, see\r\n    # the comments at the class .points.LatLon_\r\n    # __slots__ = ('ix', 'h2')\r\n\r\n    def __init__(self, ix, h2):\r\n        self.ix = ix\r\n        self.h2 = h2\r\n\r\n\r\nclass _Sy(object):\r\n    '''(INTERNAL) Simplify state.\r\n    '''\r\n    d2yxse5  = ()     # 5-tuple\r\n    eps      = EPS    # system epsilon\r\n    indices  = False\r\n    ixs      = set()  # set(indices)\r\n    n        = 0\r\n    options  = {}\r\n    pts      = []\r\n    radius   = R_M    # mean earth radius\r\n    s2       = EPS    # tolerance squared\r\n    s2e      = EPS    # VW sentinel\r\n    shortest = False  # i.e. perpendicular\r\n    subset   = None   # isNumpy2 or isTuple2\r\n    t2s      = []     # list(_T2s)\r\n\r\n    def __init__(self, points, tolerance, radius, shortest,\r\n                                          indices, **options):\r\n        '''New C{Simplify} state.\r\n        '''\r\n        n, self.pts = len2(points)\r\n        if n > 0:\r\n            self.n   = n\r\n            self.ixs = set((0, n-1))\r\n\r\n        if radius is not R_M:\r\n            self.radius = Radius_(radius, low=self.eps)\r\n        # tolerance converted to degrees squared\r\n        self.s2 = s2 = degrees(tolerance / self.radius)**2\r\n        if min(s2, tolerance) < self.eps:\r\n            raise _ValueError(tolerance=tolerance, txt=_too_(_small_))\r\n        self.s2e = s2 + _1_0  # VW sentinel\r\n        # assert self.s2e > s2\r\n\r\n        if indices:\r\n            self.indices = True\r\n        if options:\r\n            _, self.options = _xkwds_pop2(options, modified=None)\r\n        if shortest:\r\n            self.shortest = True\r\n        if isNumpy2(points) or isTuple2(points):  # NOT self.pts\r\n            self.subset = points.subset\r\n\r\n    def d21(self, s, e):\r\n        '''Set path edge or line thru (points[s], -[e]).\r\n        '''\r\n        d21, y21, x21, _ = self.d2yxu4(s, e)\r\n        self.d2yxse5 = d21, y21, x21, s, e\r\n        return d21 > self.eps\r\n\r\n    def d2i2(self, m, n, modified):\r\n        '''Find the tallest distance among all points[m..n]\r\n           to (points[s], -[e]) exceeding the tolerance.\r\n        '''\r\n        _, _, _, s, _ = self.d2yxse5\r\n        t2, t = self.s2, 0  # tallest\r\n        for i in range(m, n):\r\n            d2, _, _, _ = self.d2yxu4(s, i)\r\n            if d2 > t2:\r\n                t2, t = d2, i\r\n                if modified and d2 > self.eps:\r\n                    break\r\n        return t2, t\r\n\r\n    def d2ix2(self, m, n, modified):\r\n        '''Find the tallest I{perpendicular B{or} shortest} distance\r\n           among all points[m..n] to the path edge or line through\r\n           (points[s], -[e]) exceeding the tolerance.\r\n        '''\r\n        h = not self.shortest\r\n        # point (x, y) on axis rotated by angle a ccw:\r\n        #   x' = y * sin(a) + x * cos(a)\r\n        #   y' = y * cos(a) - x * sin(a)\r\n        #\r\n        # distance along (w) and perpendicular to (h)\r\n        # a line from the origin to point (dx, dy):\r\n        #   w = (y * dy + x * dx) / hypot(dx, dy)\r\n        #   h = (y * dx - x * dy) / hypot(dx, dy)\r\n        d21, y21, x21, s, e = self.d2yxse5\r\n        t2, t = self.s2, 0  # tallest\r\n        for i in range(m, n):\r\n            # distance points[s] to -[i], ...\r\n            d2, y01, x01, _ = self.d2yxu4(s, i)\r\n            if d2 > self.eps:\r\n                if h:  # perpendicular distance\r\n                    d2 = fdot_(y01, x21, -x01, y21)**2 / d21\r\n                else:\r\n                    w  = fdot_(y01, y21,  x01, x21)\r\n                    if w > 0:\r\n                        if w < d21:  # ... perpendicular ...\r\n                            d2 = fdot_(y01, x21, -x01, y21)**2 / d21\r\n                        else:  # ... or points[e] to -[i]\r\n                            d2, _, _, _ = self.d2yxu4(e, i)\r\n                if d2 > t2:\r\n                    t2, t = d2, i\r\n                    if modified:\r\n                        break\r\n        return t2, t\r\n\r\n    def d2yxu4(self, i, j):\r\n        '''Return the distance I{squared}, the deltas and the\r\n           (longitudinal) unrollment between (points[i], -[j]).\r\n        '''\r\n        p1, p2 = self.pts[i], self.pts[j]\r\n        return equirectangular4(p1.lat, p1.lon,\r\n                                p2.lat, p2.lon, **self.options)\r\n\r\n    def h2t(self, i1, i2, i3):\r\n        '''Compute (double) the triangle area, points[i2] is\r\n           the top and edge (points[i1], -[i3]) is the base\r\n           of the triangle.\r\n        '''\r\n        d21, y21, x21 , _ = self.d2yxu4(i1, i3)\r\n        if d21 > self.eps:\r\n            d01, y01, x01, _ = self.d2yxu4(i1, i2)\r\n            if d01 > self.eps:\r\n                h2 = fabs(fdot_(y01, x21, -x01, y21))\r\n                # triangle height h = h2 / sqrt(d21) and\r\n                # the area = h * sqrt(d21) / 2 == h2 / 2\r\n                return h2  # double triangle area\r\n        return 0\r\n\r\n    def rdp(self, modified):\r\n        '''Ramer-Douglas-Peucker (RDP) simplification of a\r\n           path of C{LatLon} points.\r\n\r\n           @arg modified: Use I{modified} RDP (C{bool}).\r\n        '''\r\n        r, n = self.ixs, self.n\r\n        if n > 1:\r\n            s2, se = self.s2, [(0, n-1)]\r\n            while se:\r\n                s, e = se.pop()\r\n                s1 = s + 1\r\n                if e > s1:\r\n                    if self.d21(s, e):  # points[] to edge [s, e]\r\n                        d2, i = self.d2ix2(s1, e, modified)\r\n                    else:  # points[] to point [s]\r\n                        d2, i = self.d2i2( s1, e, modified)\r\n                    if d2 > s2 and i > 0:\r\n                        se.append((i, e))\r\n                        if not modified:\r\n                            se.append((s, i))\r\n                        r.add(i)\r\n                    r.add(s)\r\n        return self.result(r)\r\n\r\n    def result(self, r):\r\n        '''Return the simplified points or indices.\r\n        '''\r\n        r = sorted(r)\r\n        if self.indices:\r\n            return list(r)\r\n        elif self.subset:\r\n            return self.subset(r)\r\n        else:\r\n            return list(self.pts[i] for i in r)\r\n\r\n    def rw(self):\r\n        '''Reumann-Witkam simplification.\r\n        '''\r\n        r, n = self.ixs, self.n\r\n        if n > 1:\r\n            s, e, s2 = 0, 1, self.s2\r\n            while s < e < n:\r\n                if self.d21(s, e):\r\n                    d2, i = self.d2ix2(e + 1, n, True)\r\n                    r.add(s)\r\n                    if d2 > s2 and i > 0:\r\n                        r.add(i)\r\n                        s = e = i\r\n                    else:\r\n                        # r.add(n - 1)\r\n                        break\r\n                e += 1\r\n        return self.result(r)\r\n\r\n    def sy1(self):\r\n        '''Basic simplification.\r\n        '''\r\n        r, n = self.ixs, self.n\r\n        if n > 1:\r\n            s2, i = self.s2, 0\r\n            for j in range(1, n):\r\n                d2, _, _, _ = self.d2yxu4(i, j)\r\n                if d2 > s2:\r\n                    r.add(j)\r\n                    i = j\r\n        return self.result(r)\r\n\r\n    def vwn(self):\r\n        '''Initialize VW as list of 2-tuples _T2(ix, h2) where\r\n           ix is the points[] index and h2 is the triangular\r\n           area I{(times 2)} of that point.\r\n        '''\r\n        self.t2s = t = []\r\n        n, T2 = self.n, _T2\r\n        if n > 2:\r\n            _h2t = self.h2t\r\n            t[:] = [T2(i, _h2t(i-1, i, i+1)) for i in range(1, n - 1)]\r\n        if n > 1:\r\n            t.append(T2(n - 1, self.s2e))\r\n        if n > 0:\r\n            t.insert(0, T2(0, self.s2e))\r\n        return len(t)\r\n\r\n    def vwr(self, attr):\r\n        '''Return the VW results, optionally including the\r\n           triangular area (in C{meter}) as attribute C{attr}\r\n           to each simplified point.\r\n        '''\r\n        pts, t = self.pts, self.t2s\r\n\r\n        # double check the minimal triangular area\r\n        assert min(t2.h2 for t2 in t) > self.s2 > 0\r\n\r\n        if attr:  # return each trangular area (actually\r\n            # the sqrt of double the triangular area)\r\n            # converted back from degrees to meter\r\n            if isNumpy2(pts):\r\n                raise _AttributeError(attr=attr)\r\n            t[0].h2 = t[-1].h2 = 0  # zap sentinels\r\n            m = radians(_1_0) * self.radius  # meter\r\n            for t2 in t:  # convert back to meter\r\n                setattr(pts[t2.ix], attr, sqrt0(t2.h2) * m)\r\n\r\n        n = len(t)  # double check for duplicates\r\n        r = set(t2.ix for t2 in t)\r\n        assert len(r) == n\r\n        return self.result(r)\r\n\r\n    def vwrm(self):\r\n        '''Keep removing the VW point with the smallest triangular\r\n           area until that area exceeds the tolerance.\r\n        '''\r\n        s2, t = self.s2, self.t2s\r\n        while len(t) > 2:\r\n            m2, m = t[1].h2, 1\r\n            for i in range(2, len(t) - 1):\r\n                h2 = t[i].h2\r\n                if h2 < m2:\r\n                    m2, m = h2, i\r\n            if m2 > s2:\r\n                break\r\n            self.vwrm1(m, 0)\r\n\r\n    def vwrm1(self, m, tol):\r\n        '''Eliminate VW point[m], keep recomputing the trangular\r\n           area of both neighboring points and removing those\r\n           too until the recomputed area exceeds C{tol}.\r\n        '''\r\n        t, _h2t = self.t2s, self.h2t\r\n        t.pop(m)\r\n        for n in (m, m - 1):  # neighbors\r\n            while 0 < n < (len(t) - 1):\r\n                h2 = _h2t(t[n-1].ix, t[n].ix, t[n+1].ix)\r\n                if h2 > tol:\r\n                    t[n].h2 = h2\r\n                    break  # while\r\n                t.pop(n)\r\n\r\n    def vwrm2(self, tol):\r\n        '''Eliminate all VW points with a triangular area not\r\n           exceeding C{tol}.\r\n        '''\r\n        t = self.t2s\r\n        m = len(t) - 1\r\n        while m > 1:\r\n            m -= 1\r\n            if t[m].h2 <= tol:\r\n                self.vwrm1(m, tol)\r\n                m = min(m, len(t) - 1)\r\n\r\n\r\ndef simplify1(points, distance=_1mm, radius=R_M, indices=False, **options):\r\n    '''Basic simplification of a path of C{LatLon} points by eliminating\r\n       any points closer together than the given I{distance} tolerance.\r\n\r\n       @arg points: Iterable with the path points (C{LatLon}[]).\r\n       @kwarg distance: Tolerance (C{meter}, same units as B{C{radius}}).\r\n       @kwarg radius: Mean earth radius (C{meter}, conventionally).\r\n       @kwarg indices: If C{True}, return B{C{points}} indices instead\r\n                       of the simplified points (C{bool}).\r\n       @kwarg options: Optional keyword arguments passed thru to function\r\n                       L{pygeodesy.equirectangular4}.\r\n\r\n       @return: Simplified points (C{LatLon}[]) or B{C{points}} indices.\r\n\r\n       @raise LimitError: Lat- and/or longitudinal delta exceeds the B{C{limit}},\r\n                          see function L{pygeodesy.equirectangular4}.\r\n\r\n       @raise ValueError: Tolerance B{C{distance}} or B{C{radius}} too small.\r\n    '''\r\n    S = _Sy(points, distance, radius, True, indices, **options)\r\n    return S.sy1()\r\n\r\n\r\ndef simplifyRDP(points, distance=_1mm, radius=R_M, shortest=False,\r\n                        indices=False, modified=False, **options):\r\n    '''I{Ramer-Douglas-Peucker} (RDP) simplification of a path of C{LatLon}\r\n       points by eliminating any points too close together or closer to an\r\n       edge than the given I{distance} tolerance.\r\n\r\n       @arg points: Iterable with the path points (C{LatLon}[]).\r\n       @kwarg distance: Tolerance (C{meter}, same units as B{C{radius}}).\r\n       @kwarg radius: Mean earth radius (C{meter}, conventionally).\r\n       @kwarg shortest: If C{True}, use the I{shortest} otherwise the\r\n                        I{perpendicular} distance (C{bool}).\r\n       @kwarg indices: If C{True}, return B{C{points}} indices instead\r\n                       of the simplified points (C{bool}).\r\n       @kwarg modified: If C{True}, use the C{modified RDP} method (C{bool}),\r\n                        see the B{note}.\r\n       @kwarg options: Optional keyword arguments passed thru to function\r\n                       L{pygeodesy.equirectangular4}.\r\n\r\n       @return: Simplified points (C{LatLon}[]) or B{C{points}} indices.\r\n\r\n       @raise LimitError: Lat- and/or longitudinal delta exceeds the B{C{limit}},\r\n                          see function L{pygeodesy.equirectangular4}.\r\n\r\n       @raise ValueError: Tolerance B{C{distance}} or B{C{radius}} too small.\r\n\r\n       @note: The original C{RDP} method exhaustively searches for the point\r\n              with the largest distance (resulting in complexity M{O(n**2)}\r\n              with M{n} is the number of points).  The B{C{modified}} C{RDP}\r\n              method stops at the first point farther than the B{C{distance}}\r\n              tolerance, significantly reducing the run time (but producing\r\n              results different from the original C{RDP} method).\r\n    '''\r\n    S = _Sy(points, distance, radius, shortest, indices, **options)\r\n    return S.rdp(bool(modified))\r\n\r\n\r\ndef simplifyRW(points, pipe=_1mm, radius=R_M, shortest=False,\r\n                                  indices=False, **options):\r\n    '''I{Reumann-Witkam} (RW) simplification of a path of C{LatLon} points\r\n       by eliminating any points too close together or within the given\r\n       I{pipe} tolerance along an edge.\r\n\r\n       @arg points: Iterable with the path points (C{LatLon}[]).\r\n       @kwarg pipe: Pipe radius, half-width (C{meter}, same units as\r\n                    B{C{radius}}).\r\n       @kwarg radius: Mean earth radius (C{meter}, conventionally).\r\n       @kwarg shortest: If C{True}, use the I{shortest} otherwise the\r\n                        I{perpendicular} distance (C{bool}).\r\n       @kwarg indices: If C{True}, return B{C{points}} indices instead\r\n                       of the simplified points (C{bool}).\r\n       @kwarg options: Optional keyword arguments passed thru to function\r\n                       L{pygeodesy.equirectangular4}.\r\n\r\n       @return: Simplified points (C{LatLon}[]) or B{C{points}} indices.\r\n\r\n       @raise LimitError: Lat- and/or longitudinal delta exceeds the B{C{limit}},\r\n                          see function L{pygeodesy.equirectangular4}.\r\n\r\n       @raise ValueError: Tolerance B{C{pipe}} or B{C{radius}} too small.\r\n    '''\r\n    S = _Sy(points, pipe, radius, shortest, indices, **options)\r\n    return S.rw()\r\n\r\n\r\ndef simplifyVW(points, area=_1mm, radius=R_M, indices=False,\r\n                       attr=None, modified=False, **options):\r\n    '''I{Visvalingam-Whyatt} (VW) simplification of a path of C{LatLon}\r\n       points by eliminating any points too close or with a triangular\r\n       area not exceeding the given I{area} tolerance I{squared}.\r\n\r\n       @arg points: Iterable with the path points (C{LatLon}[]).\r\n       @kwarg area: Tolerance (C{meter}, same units as B{C{radius}}).\r\n       @kwarg radius: Mean earth radius (C{meter}, conventionally).\r\n       @kwarg indices: If C{True}, return B{C{points}} indices instead\r\n                       of the simplified points (C{bool}).\r\n       @kwarg attr: Optional, B{C{points}} attribute to save the area\r\n                    value (C{str}).\r\n       @kwarg modified: If C{True}, use the C{modified VW} method (C{bool}),\r\n                        see the B{note}.\r\n       @kwarg options: Optional keyword arguments passed thru to function\r\n                       L{pygeodesy.equirectangular4}.\r\n\r\n       @return: Simplified points (C{LatLon}[]) or B{C{points}} indices.\r\n\r\n       @raise AttributeError: An B{C{attr}} isinvalid for I{Numpy2} B{C{points}}.\r\n\r\n       @raise LimitError: Lat- and/or longitudinal delta exceeds the B{C{limit}},\r\n                          see function L{pygeodesy.equirectangular4}.\r\n\r\n       @raise ValueError: Tolerance B{C{area}} or B{C{radius}} too small.\r\n\r\n       @note: The original C{VW} method exhaustively searches for the point\r\n              with the smallest triangular I{area} (resulting in complexity\r\n              M{O(n**2)} with M{n} the number of points).  The B{C{modified}}\r\n              C{VW} method removes I{all} points with a triangular I{area}\r\n              below the tolerance in each iteration, significantly reducing\r\n              the run time (but producing results different from the original\r\n              C{VW} method).\r\n    '''\r\n    S = _Sy(points, area, radius, False, indices, **options)\r\n    if S.vwn() > 2:\r\n        if modified:\r\n            S.vwrm2(S.s2)\r\n        else:\r\n            S.vwrm2(0)\r\n            S.vwrm()\r\n    return S.vwr(attr)\r\n\r\n# **) MIT License\r\n#\r\n# Copyright (C) 2016-2026 -- mrJean1 at Gmail -- All Rights Reserved.\r\n#\r\n# Permission is hereby granted, free of charge, to any person obtaining a\r\n# copy of this software and associated documentation files (the \"Software\"),\r\n# to deal in the Software without restriction, including without limitation\r\n# the rights to use, copy, modify, merge, publish, distribute, sublicense,\r\n# and/or sell copies of the Software, and to permit persons to whom the\r\n# Software is furnished to do so, subject to the following conditions:\r\n#\r\n# The above copyright notice and this permission notice shall be included\r\n# in all copies or substantial portions of the Software.\r\n#\r\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\r\n# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r\n# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL\r\n# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR\r\n# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\r\n# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\r\n# OTHER DEALINGS IN THE SOFTWARE.\r\n"
  },
  {
    "path": "pygeodesy/solveBase.py",
    "content": "\n# -*- coding: utf-8 -*-\n\nu'''(INTERNAL) Private base classes for L{pygeodesy.geodsolve} and L{pygeodesy.rhumb.solve}.\n'''\n\nfrom pygeodesy.basics import clips, _isin, map2, _zip\nfrom pygeodesy.constants import DIG\nfrom pygeodesy.datums import _earth_datum, _WGS84,  _EWGS84\n# from pygeodesy.ellipsoids import _EWGS84  # from .datums\nfrom pygeodesy.errors import _AssertionError, _xkwds_get, _xkwds_get1, \\\n                             _xkwds_item2\nfrom pygeodesy.internals import _enquote, _popen2, printf\nfrom pygeodesy.interns import NN, _0_, _AT_,_BACKSLASH_, _COLONSPACE_, \\\n                             _COMMASPACE_, _EQUAL_, _Error_, _SPACE_, \\\n                             _UNUSED_\nfrom pygeodesy.karney import Caps, _CapsBase, GDict\nfrom pygeodesy.lazily import _ALL_DOCS, _ALL_LAZY\nfrom pygeodesy.named import callername, _name2__, notOverloaded\nfrom pygeodesy.props import Property, Property_RO, property_RO, _update_all\nfrom pygeodesy.streprs import Fmt, fstr, fstrzs, pairs, strs\nfrom pygeodesy.units import Precision_\nfrom pygeodesy.utily import unroll180\n\n__all__ = _ALL_LAZY.solveBase\n__version__ = '25.12.06'\n\n_ERROR_ = 'ERROR'\n\n\ndef _cmd_stdin_(cmd, stdin):  # PYCHOK no cover\n    '''(INTERNAL) Cmd line, stdin and caller as sC{str}.\n    '''\n    if stdin is not None:\n        cmd += _BACKSLASH_, str(stdin)\n    cmd += Fmt.PAREN(callername(up=3)),\n    return _SPACE_.join(cmd)\n\n\n# def _float_int(r):\n#     '''(INTERNAL) Convert result into C{float} or C{int}.\n#     '''\n#     f = float(r)\n#     i = int(f)\n#     return i if float(i) == f else f  # PYCHOK inconsistent\n\n\nclass _SolveCapsBase(_CapsBase):\n    '''(NTERNAL) Base class for C{_SolveBase} and C{_LineSolveBase}.\n    '''\n    _datum      = _WGS84\n    _Error      =  None\n    _Exact      =  True\n    _invokat    = _AT_\n    _invokation =  0\n    _linelimit  =  0\n    _prec       =  Precision_(prec=DIG)  # -5 stdout\n    _prec2stdin =  DIG - 1\n    _Xable_name =  NN  # executable basename\n    _Xable_path =  NN  # executable path\n    _status     =  None\n    _verbose    =  False\n\n    @Property_RO\n    def a(self):\n        '''Get the ellipsoid's I{equatorial} radius, semi-axis (C{meter}).\n        '''\n        return self.ellipsoid.a\n\n    @Property_RO\n    def b(self):\n        '''Get the ellipsoid's I{polar} radius, semi-axis (C{meter}).\n        '''\n        return self.ellipsoid.b\n\n    @property_RO\n    def _cmdBasic(self):  # PYCHOK no covers        '''(INTERNAL) I{Must be overloaded}.'''\n        notOverloaded(self, underOK=True)\n\n    @property_RO\n    def datum(self):\n        '''Get the datum (C{Datum}).\n        '''\n        return self._datum\n\n    def _Dict(self, Dict, n, v, floats=True, **unused):\n        if self.verbose:  # PYCHOK no cover\n            self._print(_COMMASPACE_.join(map(Fmt.EQUAL, n, map(fstrzs, v))))\n        if floats:\n            v = map(float, v)  # _float_int, see Intersectool._XDistInvoke\n        return Dict(_zip(n, v))  # strict=True\n\n    def _DictInvoke2(self, cmd, args, Names, Dict, **floats_R):\n        '''(INTERNAL) Invoke C{Solve}, return results as C{Dict}.\n        '''\n        N = len(Names)\n        if N < 1:\n            raise _AssertionError(cmd=cmd, Names=Names)\n        i = fstr(args, prec=self._prec2stdin, fmt=Fmt.F, sep=_SPACE_) if args else None  # NOT Fmt.G!\n        t = self._invoke(cmd, stdin=i, **floats_R).lstrip().split()  # 12-/++ tuple\n        if _xkwds_get(floats_R, _R=None):  # == '-R' in cmd\n            return self._Dicts(Dict, Names, t, **floats_R), True\n        elif len(t) > N:  # PYCHOK no cover\n            # unzip instrumented name=value pairs to names and values\n            n, v = _zip(*(p.split(_EQUAL_) for p in t[:-N]))  # strict=True\n            v += tuple(t[-N:])\n            n += Names\n        else:\n            n, v = Names, t\n        r = self._Dict(Dict, n, t, **floats_R)\n        return self._iter2tion(r, **r), None\n\n    def _Dicts(self, Dict, Names, t, **floats_R):\n        i, N = 0, len(Names)\n        for x in range(0, len(t), N):\n            if t[x] == 'nan':\n                break\n            X = self._Dict(Dict, Names, t[x:x + N], **floats_R)\n            yield X.set_(iteration=i)\n            i += 1\n\n    @Property_RO\n    def _E_option(self):\n        return ('-E',) if self.Exact else ()\n\n    @property\n    def Exact(self):\n        '''Get the Solve's C{exact} setting (C{bool}).\n        '''\n        return self._Exact\n\n    @Exact.setter  # PYCHOK setter!\n    def Exact(self, Exact):\n        '''Set the Solve's C{exact} setting (C{bool}),\n           if C{True} use I{exact} version.\n        '''\n        Exact = bool(Exact)\n        if self._Exact != Exact:\n            _update_all(self)\n            self._Exact = Exact\n\n    @Property_RO\n    def ellipsoid(self):\n        '''Get the ellipsoid (C{Ellipsoid}).\n        '''\n        return self.datum.ellipsoid\n\n    @Property_RO\n    def _e_option(self):\n        E = self.ellipsoid\n        if E is _EWGS84:\n            return ()  # default\n        a, f = strs(E.a_f, fmt=Fmt.F, prec=DIG + 3)  # not .G!\n        return ('-e', a, f)\n\n    @Property_RO\n    def flattening(self):\n        '''Get the C{ellipsoid}'s I{flattening} (C{scalar}), M{(a - b) / a},\n           C{0} for spherical, negative for prolate.\n        '''\n        return self.ellipsoid.f\n\n    f = flattening\n\n    def invokat(self, *prefix):\n        '''Get and set the invokation number C{\"@\"} prefix (C{str}).\n\n           @return: Previous prefix (C{str}).\n        '''\n        p = self._invokat\n        if prefix:\n            set._invokat = str(prefix[0])\n        return p\n\n    @property_RO\n    def invokation(self):\n        '''Get the most recent C{Solve} invokation number (C{int}).\n        '''\n        return self._invokation\n\n    def invoke(self, *options, **stdin):\n        '''Invoke the C{Solve} executable and return the result.\n\n           @arg options: No, one or several C{Solve} command line\n                         options (C{str}s).\n           @kwarg stdin: Optional input to pass to C{Solve.stdin} (C{str}).\n\n           @return: The C{Solve.stdout} and C{.stderr} output (C{str}).\n\n           @raise GeodesicError: On any error, including a non-zero return\n                                 code from C{GeodSolve}.\n\n           @raise RhumbError: On any error, including a non-zero return code\n                              from C{RhumbSolve}.\n\n           @note: The C{Solve} return code is in property L{status}.\n        '''\n        c = (self._Xable_path,) + map2(str, options)  # map2(_enquote, options)\n        i = _xkwds_get1(stdin, stdin=None)\n        r =  self._invoke(c, stdin=i)\n        s =  self.status\n        if s:\n            raise self._Error(cmd=_cmd_stdin_(c, i), status=s,\n                              txt_not_=_0_)\n        if self.verbose:  # PYCHOK no cover\n            self._print(r)\n        return r\n\n    def _invoke(self, cmd, stdin=None, **unused):  # _R=None\n        '''(INTERNAL) Invoke the C{Solve} executable, with the\n           given B{C{cmd}} line and optional input to B{C{stdin}}.\n        '''\n        self._invokation += 1\n        self._status = t = None\n        if self.verbose:  # PYCHOK no cover\n            t = _cmd_stdin_(cmd, stdin)\n            self._print(t)\n        try:  # invoke and write to stdin\n            r, s = _popen2(cmd, stdin)\n            if len(r) < 6 or _isin(r[:5], _Error_, _ERROR_):\n                raise ValueError(r)\n        except (IOError, OSError, TypeError, ValueError) as x:\n            raise self._Error(cmd=t or _cmd_stdin_(cmd, stdin), cause=x)\n        self._status = s\n        if self.verbose:  # and _R is None:  # PYCHOK no cover\n            self._print(repr(r), 'stdout/-err')\n        return r\n\n    def linelimit(self, *limit):\n        '''Set and get the print line length limit.\n\n           @arg limit: New line limit (C{int}) or C{0}\n                       or C{None} for unlimited.\n\n           @return: Teh previous limit (C{int}).\n        '''\n        n = self._linelimit\n        if limit:\n            m = int(limit[0] or 0)\n            self._linelimit = max(80, m) if m > 0 else (n if m < 0 else 0)\n        return n\n\n    @Property_RO\n    def _mpd(self):  # meter per degree\n        return self.ellipsoid._Lpd\n\n    @property_RO\n    def _p_option(self):\n        return '-p', str(self.prec - 5)  # -p is distance prec\n\n    @Property\n    def prec(self):\n        '''Get the precision, number of (decimal) digits (C{int}).\n        '''\n        return self._prec\n\n    @prec.setter  # PYCHOK setter!\n    def prec(self, prec):\n        '''Set the precision for C{angles} in C{degrees}, like C{lat}, C{lon},\n           C{azimuth} and C{arc} in number of decimal digits (C{int}, C{0}..L{DIG}).\n\n           @note: The precision for C{distance = B{prec} - 5} or up to\n                  10 decimal digits for C{nanometer} and for C{area =\n                  B{prec} - 12} or at most C{millimeter} I{squared}.\n        '''\n        prec = Precision_(prec=prec, high=DIG)\n        if self._prec != prec:\n            _update_all(self)\n            self._prec = prec\n\n    def _print(self, line, *suffix):  # PYCHOK no cover\n        '''(INTERNAL) Print a status line.\n        '''\n        if self._linelimit:\n            line =  clips(line, limit=self._linelimit, length=True)\n        if self.status is not None:\n            s    = _COMMASPACE_(self.status, *suffix)\n            line = _SPACE_(line, Fmt.PAREN(s))\n        p = NN(self.named2, self._invokat, self.invokation)\n        printf(_COLONSPACE_(p, line))\n\n    def _setXable(self, path, **Xable_path):\n        '''(INTERNAL) Set the executable C{path}.\n        '''\n        hold = self._Xable_path\n        if hold != path:\n            _update_all(self)\n            self._Xable_path = path\n        try:\n            _ = self.version  # test path and ...\n            if self.status:  # ... return code\n                S_p = Xable_path or {self._Xable_name: _enquote(path)}\n                raise self._Error(status=self.status, txt_not_=_0_, **S_p)\n            hold = path\n        finally:  # restore in case of error\n            if self._Xable_path != hold:\n                _update_all(self)\n                self._Xable_path = hold\n\n    @property_RO\n    def status(self):\n        '''Get the most recent C{Solve} return code (C{int}, C{str})\n           or C{None}.\n        '''\n        return self._status\n\n    def _toStdin(self, floats):\n        '''(INTERNAL) Convert C{floats} to strings.\n        '''\n        return strs(floats, prec=self._prec2stdin, fmt=Fmt.F)  # not .G!\n\n    @property\n    def verbose(self):\n        '''Get the C{verbose} option (C{bool}).\n        '''\n        return self._verbose\n\n    @verbose.setter  # PYCHOK setter!\n    def verbose(self, verbose):\n        '''Set the C{verbose} option (C{bool}), C{True} prints\n           a message around each C{RhumbSolve} invokation.\n        '''\n        self._verbose = bool(verbose)\n\n    @Property_RO\n    def version(self):\n        '''Get the result of C{\"GeodSolve --version\"} or C{\"RhumbSolve --version\"}.\n        '''\n        return self.invoke('--version')\n\n\nclass _SolveBase(_SolveCapsBase):\n    '''(INTERNAL) Base class for C{_SolveBase} and C{_SolveLineBase}.\n    '''\n    _Names_Direct  = \\\n    _Names_Inverse = ()\n    _reverse2      =  False\n    _unroll        =  False\n\n    @Property\n    def reverse2(self):\n        '''Get the C{azi2} direction (C{bool}).\n        '''\n        return self._reverse2\n\n    @reverse2.setter  # PYCHOK setter!\n    def reverse2(self, reverse2):\n        '''Set the direction for C{azi2} (C{bool}), if C{True} reverse C{azi2}.\n        '''\n        reverse2 = bool(reverse2)\n        if self._reverse2 != reverse2:\n            _update_all(self)\n            self._reverse2 = reverse2\n\n    def toStr(self, prec=6, sep=_COMMASPACE_, **other):  # PYCHOK signature\n        '''Return this instance as string.\n\n           @kwarg prec_sep: Keyword argumens C{B{prec}=6} and C{B{sep}=\", \"}\n                       for the C{float} C{prec}ision, number of decimal digits\n                       (0..9) and the C{sep}arator string to join.  Trailing\n                       zero decimals are stripped for B{C{prec}} values of 1\n                       and above, but kept for negative B{C{prec}} values.\n        '''\n        return sep.join(pairs(other, prec=prec))\n\n    @Property\n    def unroll(self):\n        '''Get the C{lon2} unroll'ing (C{bool}).\n        '''\n        return self._unroll\n\n    @unroll.setter  # PYCHOK setter!\n    def unroll(self, unroll):\n        '''Set unroll'ing for C{lon2} (C{bool}), if C{True} unroll C{lon2}, otherwise don't.\n        '''\n        unroll = bool(unroll)\n        if self._unroll != unroll:\n            _update_all(self)\n            self._unroll = unroll\n\n\nclass _Solve3Base(_SolveBase):\n    '''(NTERNAL) Base class for C{_Geodesic[3]SolveBase}.\n    '''\n\n    @Property_RO\n    def _cmdDirect(self):\n        '''(INTERNAL) Get the C{[3]Solve} I{Direct} cmd (C{tuple}).\n        '''\n        return self._cmdBasic\n\n    @Property_RO\n    def _cmdInverse(self):\n        '''(INTERNAL) Get the C{[3]Solve} I{Inverse} cmd (C{tuple}).\n        '''\n        return self._cmdBasic + ('-i',)\n\n    def _GDictDirect(self, lat, lon, azi, arcmode, s12_a12, outmask=_UNUSED_, **floats):  # PYCHOK for .geodesicx.gxarea\n        '''(INTERNAL) Get C{_GenDirect}-like result as C{GDict}.\n        '''\n        if arcmode:\n            raise self._Error(arcmode=arcmode, txt=str(NotImplemented))\n        return self._GDictInvoke(self._cmdDirect, self._Names_Direct,\n                                                  lat, lon, azi, s12_a12, **floats)\n\n    def _GDictInverse(self, lat1, lon1, lat2, lon2, outmask=_UNUSED_, **floats):  # PYCHOK for .geodesicx.gxarea\n        '''(INTERNAL) Get C{_GenInverse}-like result as C{GDict}, but I{without} C{_SALP_CALPs_}.\n        '''\n        return self._GDictInvoke(self._cmdInverse, self._Names_Inverse,\n                                                   lat1, lon1, lat2, lon2, **floats)\n\n    def _GDictInvoke(self, cmd,  Names, *args, **floats):\n        '''(INTERNAL) Invoke C{Solve}, return results as C{Dict}.\n        '''\n        return self._DictInvoke2(cmd, args, Names, GDict, **floats)[0]  # _R\n\n    def toStr(self, **prec_sep_other):  # PYCHOK signature\n        '''Return this instance as string.\n\n           @kwarg prec_sep: See L{toStr<pygeodesy.solveBase._SolveBase.toStr>}.\n        '''\n        return _SolveBase.toStr(self, invokation=self.invokation,\n                                      status=self.status, **prec_sep_other)\n\n\nclass _SolveGDictBase(_Solve3Base):\n    '''(NTERNAL) Base class for C{_GeodesicSolveBase} and C{_RhumbSolveBase}.\n    '''\n\n    def __init__(self, a_ellipsoid=_EWGS84, f=None, path=NN, **name):\n        '''New C{Solve} instance.\n\n           @arg a_ellipsoid: An ellipsoid (L{Ellipsoid}) or datum (L{Datum}) or\n                             the equatorial radius of the ellipsoid (C{scalar},\n                             conventionally in C{meter}), see B{C{f}}.\n           @arg f: The flattening of the ellipsoid (C{scalar}) if B{C{a_ellipsoid}}\n                   is specified as C{scalar}.\n           @kwarg path: Optionally, the (fully qualified) path to the C{GeodSolve}\n                        or C{RhumbSolve} executable (C{filename}).\n           @kwarg name: Optional C{B{name}=NN} (C{str}).\n\n           @raise TypeError: Invalid B{C{a_ellipsoid}} or B{C{f}}.\n        '''\n        _earth_datum(self, a_ellipsoid, f=f, **name)\n        if name:\n            self.name = name\n        if path:\n            self._setXable(path)\n\n    def ArcDirect(self, lat1, lon1, azi1, a12, outmask=_UNUSED_):  # PYCHOK unused\n        '''Return the C{Direct} result at C{a12} degrees.\n        '''\n        return self._GDictDirect(lat1, lon1, azi1, True, a12)\n\n    def Direct(self, lat1, lon1, azi1, s12, outmask=_UNUSED_):  # PYCHOK unused\n        '''Return the C{Direct} result at distance C{s12}.\n        '''\n        return self._GDictDirect(lat1, lon1, azi1, False, s12)\n\n    def Inverse(self, lat1, lon1, lat2, lon2, outmask=_UNUSED_):  # PYCHOK unused\n        '''Return the C{Inverse} result.\n        '''\n        return self._GDictInverse(lat1, lon1, lat2, lon2)\n\n    def Inverse1(self, lat1, lon1, lat2, lon2, wrap=False):\n        '''Return the non-negative, I{angular} distance in C{degrees}.\n        '''\n        # see .FrechetKarney.distance, .HausdorffKarney._distance\n        # and .HeightIDWkarney._distances\n        _, lon2 = unroll180(lon1, lon2, wrap=wrap)  # self.LONG_UNROLL\n        r = self._GDictInverse(lat1, lon1, lat2, lon2, floats=False)\n        # XXX self.DISTANCE needed for 'a12'?\n        return abs(float(r.a12))\n\n    def toStr(self, **prec_sep_other):  # PYCHOK signature\n        '''Return this C{_Solve} as string.\n        '''\n        return _Solve3Base.toStr(self, ellipsoid=self.ellipsoid, **prec_sep_other)\n\n\nclass _SolveGDictLineBase(_SolveGDictBase):\n    '''(NTERNAL) Base class for C{GeodesicLineSolve} and C{RhumbLineSolve}.\n    '''\n#   _caps  =  0\n#   _lla1  = {}\n    _solve =  None  # L{GeodesicSolve} or L{RhumbSolve} instance\n\n    def __init__(self, solve, lat1, lon1, caps, **azi_name):\n        name, azi = _name2__(azi_name, _or_nameof=solve)\n        if name:\n            self.name = name\n\n        self._caps  = caps | Caps._AZIMUTH_LATITUDE_LONG_UNROLL\n        self._debug = solve._debug & Caps._DEBUG_ALL\n        self._lla1  = GDict(lat1=lat1, lon1=lon1, **azi)\n        self._solve = solve\n\n    @Property_RO\n    def _cmdDistance(self):\n        '''(INTERNAL) Get the C{GeodSolve} I{-L} cmd (C{tuple}).\n        '''\n        def _lla3(lat1=0, lon1=0, **azi):\n            _, azi = _xkwds_item2(azi)\n            return lat1, lon1, azi\n\n        return self._cmdBasic + ('-L',) + self._toStdin(_lla3(**self._lla1))\n\n    @property_RO\n    def datum(self):\n        '''Get the datum (C{Datum}).\n        '''\n        return self._solve.datum\n\n    @property_RO\n    def ellipsoid(self):\n        '''Get the ellipsoid (C{Ellipsoid}).\n        '''\n        return self._solve.ellipsoid\n\n    @Property_RO\n    def lat1(self):\n        '''Get the latitude of the first point (C{degrees}).\n        '''\n        return self._lla1.lat1\n\n    @Property_RO\n    def lon1(self):\n        '''Get the longitude of the first point (C{degrees}).\n        '''\n        return self._lla1.lon1\n\n    def toStr(self, **prec_sep_other):  # PYCHOK signature\n        '''Return this C{_LineSolve} as string.\n        '''\n        return _Solve3Base.toStr(self, **prec_sep_other)\n\n\n__all__ += _ALL_DOCS(_SolveBase, _SolveCapsBase, _SolveGDictBase, _SolveGDictLineBase)\n\n# **) MIT License\n#\n# Copyright (C) 2016-2026 -- mrJean1 at Gmail -- All Rights Reserved.\n#\n# Permission is hereby granted, free of charge, to any person obtaining a\n# copy of this software and associated documentation files (the \"Software\"),\n# to deal in the Software without restriction, including without limitation\n# the rights to use, copy, modify, merge, publish, distribute, sublicense,\n# and/or sell copies of the Software, and to permit persons to whom the\n# Software is furnished to do so, subject to the following conditions:\n#\n# The above copyright notice and this permission notice shall be included\n# in all copies or substantial portions of the Software.\n#\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL\n# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR\n# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\n# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n# OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "pygeodesy/sphericalBase.py",
    "content": "\n# -*- coding: utf-8 -*-\n\nu'''(INTERNAL) Private spherical base classes C{CartesianSphericalBase} and\nC{LatLonSphericalBase} for L{sphericalNvector} and L{sphericalTrigonometry}.\n\nA pure Python implementation of geodetic (lat-/longitude) functions,\ntranscoded in part from JavaScript originals by I{(C) Chris Veness 2011-2024}\nand published under the same MIT Licence**, see\nU{Latitude/Longitude<https://www.Movable-Type.co.UK/scripts/latlong.html>}.\n'''\n# make sure int/int division yields float quotient, see .basics\nfrom __future__ import division as _; del _  # noqa: E702 ;\n\nfrom pygeodesy.basics import _copysign, isbool, _isin, isinstanceof, map1\nfrom pygeodesy.cartesianBase import CartesianBase\nfrom pygeodesy.constants import EPS, EPS0, PI, PI2, PI_2, R_M, \\\n                               _0_0, _0_5, _1_0, _180_0, _360_0, \\\n                               _over, isnear0, isnon0\nfrom pygeodesy.datums import Datums, _earth_ellipsoid, _spherical_datum\nfrom pygeodesy.errors import IntersectionError, _ValueError, \\\n                            _xattr, _xattrs, _xError\nfrom pygeodesy.fmath import favg, fdot, hypot, sqrt_a\nfrom pygeodesy.interns import _COMMA_, _concentric_, _datum_, _distant_, \\\n                              _exceed_PI_radians_, _name_, _near_, \\\n                              _radius_, _too_\nfrom pygeodesy.latlonBase import LatLonBase\nfrom pygeodesy.lazily import _ALL_DOCS, _ALL_LAZY, _ALL_MODS as _MODS\n# from pygeodesy.namedTuples import Bearing2Tuple  # _MODS\nfrom pygeodesy.nvectorBase import NvectorBase,  Fmt\nfrom pygeodesy.props import deprecated_method, property_doc_, property_RO, \\\n                           _update_all\n# from pygeodesy.streprs import Fmt  # from .nvectorBase\nfrom pygeodesy.units import Bearing, Bearing_, _isRadius, Radians_, Radius, \\\n                            Radius_, Scalar_, _100km\nfrom pygeodesy.utily import acos1, asin1, atan2b, atan2d, degrees90, \\\n                            degrees180, sincos2, sincos2d, _unrollon, \\\n                            tanPI_2_2, wrapPI\n\nfrom math import cos, fabs, log, sin, sqrt\n\n__all__ = _ALL_LAZY.sphericalBase\n__version__ = '25.05.26'\n\n\nclass CartesianSphericalBase(CartesianBase):\n    '''(INTERNAL) Base class for spherical C{Cartesian}s.\n    '''\n    _datum = Datums.Sphere  # L{Datum}\n\n    def intersections2(self, rad1, other, rad2, radius=R_M):\n        '''Compute the intersection points of two circles each defined\n           by a center point and a radius.\n\n           @arg rad1: Radius of the this circle (C{meter} or C{radians},\n                      see B{C{radius}}).\n           @arg other: Center of the other circle (C{Cartesian}).\n           @arg rad2: Radius of the other circle (C{meter} or C{radians},\n                      see B{C{radius}}).\n           @kwarg radius: Mean earth radius (C{meter} or C{None} if both\n                          B{C{rad1}} and B{C{rad2}} are given in C{radians}).\n\n           @return: 2-Tuple of the intersection points, each C{Cartesian}.\n                    For abutting circles, the intersection points are the\n                    same C{Cartesian} instance, aka the I{radical center}.\n\n           @raise IntersectionError: Concentric, antipodal, invalid or\n                                     non-intersecting circles.\n\n           @raise TypeError: If B{C{other}} is not C{Cartesian}.\n\n           @raise ValueError: Invalid B{C{rad1}}, B{C{rad2}} or B{C{radius}}.\n\n           @see: U{Calculating intersection of two Circles\n                 <https://GIS.StackExchange.com/questions/48937/\n                 calculating-intersection-of-two-circles>} and method\n                 or function C{trilaterate3d2}.\n        '''\n        x1, x2 = self, self.others(other)\n        r1, r2, x = _rads3(rad1, rad2, radius)\n        if x:\n            x1, x2 = x2, x1\n        try:\n            n, q = x1.cross(x2), x1.dot(x2)\n            n2, q1 = n.length2, (_1_0 - q**2)\n            if n2 < EPS or isnear0(q1):\n                raise ValueError(_near_(_concentric_))\n            c1, c2 = cos(r1), cos(r2)\n            x0 = x1.times((c1 - q * c2) / q1).plus(\n                 x2.times((c2 - q * c1) / q1))\n            n1 = _1_0 - x0.length2\n            if n1 < EPS:\n                raise ValueError(_too_(_distant_))\n        except ValueError as x:\n            raise IntersectionError(center=self, rad1=rad1,\n                                    other=other, rad2=rad2, cause=x)\n        n = n.times(sqrt(n1 / n2))\n        if n.length > EPS:\n            x1 = x0.plus(n)\n            x2 = x0.minus(n)\n        else:  # abutting circles\n            x1 = x2 = x0\n\n        return (_xattrs(x1, self, _datum_, _name_),\n                _xattrs(x2, self, _datum_, _name_))\n\n    @property_RO\n    def sphericalCartesian(self):\n        '''Get this C{Cartesian}'s spherical class.\n        '''\n        return type(self)\n\n\nclass LatLonSphericalBase(LatLonBase):\n    '''(INTERNAL) Base class for spherical C{LatLon}s.\n    '''\n    _datum       =  Datums.Sphere  # spherical L{Datum}\n    _napieradius = _100km\n\n    def __init__(self, latlonh, lon=None, height=0, datum=None, wrap=False, **name):\n        '''Create a spherical C{LatLon} point frome the given lat-, longitude and\n           height on the given datum.\n\n           @arg latlonh: Latitude (C{degrees} or DMS C{str} with N or S suffix) or\n                         a previous C{LatLon} instance provided C{B{lon}=None}.\n           @kwarg lon: Longitude (C{degrees} or DMS C{str} with E or W suffix) or\n                       C(None), indicating B{C{latlonh}} is a C{LatLon}.\n           @kwarg height: Optional height above (or below) the earth surface (C{meter},\n                          same units as the datum's radius or axes).\n           @kwarg datum: Optional, spherical datum to use (L{Datum}, L{Ellipsoid},\n                         L{Ellipsoid2}, L{a_f2Tuple}) or the mean earth radius\n                         (C{meter}, conventionally).\n           @kwarg wrap: If C{True}, wrap or I{normalize} B{C{lat}} and B{C{lon}}\n                        (C{bool}).\n           @kwarg name: Optional C{B{name}=NN} (C{str}).\n\n           @raise TypeError: Invalid B{C{latlonh}} or B{C{datum}} not spherical.\n        '''\n        LatLonBase.__init__(self, latlonh, lon=lon, height=height, wrap=wrap, **name)\n        if not _isin(datum, None, self.datum):\n            self.datum = datum\n\n    def bearingTo2(self, other, wrap=False, raiser=False):\n        '''Return the initial and final bearing (forward and reverse azimuth)\n           from this to an other point.\n\n           @arg other: The other point (C{LatLon}).\n           @kwarg wrap: If C{True}, wrap or I{normalize} and unroll the\n                        B{C{other}} point (C{bool}).\n\n           @return: A L{Bearing2Tuple}C{(initial, final)}.\n\n           @raise TypeError: The B{C{other}} point is not spherical.\n\n           @see: Methods C{initialBearingTo} and C{finalBearingTo}.\n        '''\n        # .initialBearingTo is inside .-Nvector and .-Trigonometry\n        i = self.initialBearingTo(other, wrap=wrap, raiser=raiser)  # PYCHOK .initialBearingTo\n        f = self.finalBearingTo(  other, wrap=wrap, raiser=raiser)\n        return _MODS.namedTuples.Bearing2Tuple(i, f, name=self.name)\n\n    @property_doc_(''' this point's datum (L{Datum}).''')\n    def datum(self):\n        '''Get this point's datum (L{Datum}).\n        '''\n        return self._datum\n\n    @datum.setter  # PYCHOK setter!\n    def datum(self, datum):\n        '''Set this point's datum I{without conversion} (L{Datum}, L{Ellipsoid},\n           L{Ellipsoid2}, L{a_f2Tuple}) or C{scalar} spherical earth radius).\n\n           @raise TypeError: If B{C{datum}} invalid or not not spherical.\n        '''\n        d = _spherical_datum(datum, name=self.name, raiser=_datum_)\n        if self._datum != d:\n            _update_all(self)\n            self._datum = d\n\n    def finalBearingTo(self, other, wrap=False, raiser=False):\n        '''Return the final bearing (reverse azimuth) from this to\n           an other point.\n\n           @arg other: The other point (spherical C{LatLon}).\n           @kwarg wrap: If C{True}, wrap or I{normalize} and unroll\n                        the B{C{other}} point (C{bool}).\n\n           @return: Final bearing (compass C{degrees360}).\n\n           @raise TypeError: The B{C{other}} point is not spherical.\n        '''\n        p = self.others(other)\n        if wrap:\n            p = _unrollon(self, p, wrap=wrap)\n        # final bearing is the reverse of the other, initial one\n        b = p.initialBearingTo(self, wrap=False, raiser=raiser) + _180_0\n        return b if b < 360 else (b - _360_0)\n\n    def intersecant2(self, circle, point, other, radius=R_M, exact=False,  # PYCHOK signature\n                                                 height=None, wrap=False):\n        '''Compute the intersections of a circle and a (great circle) line\n           given as two points or as a point and bearing.\n\n           @arg circle: Radius of the circle centered at this location (C{meter},\n                        same units as B{C{radius}}) or a point on the circle\n                        (same C{LatLon} class).\n           @arg point: A point on the (great circle) line (same C{LatLon} class).\n           @arg other: An other point I{on} (same C{LatLon} class) or the bearing\n                       at B{C{point}} I{of} the (great circle) line (compass\n                       C{degrees}).\n           @kwarg radius: Mean earth radius (C{meter}, conventionally).\n           @kwarg exact: If C{True}, use the I{exact} rhumb methods for azimuth,\n                         destination and distance, if C{False} use the basic\n                         rhumb methods (C{bool}) or if C{None} use the I{great\n                         circle} methods.\n           @kwarg height: Optional height for the intersection points (C{meter},\n                          conventionally) or C{None} for interpolated heights.\n           @kwarg wrap: If C{True}, wrap or I{normalize} and unroll B{C{circle}},\n                         B{C{point}} and B{C{other}} iff points (C{bool}).\n\n           @return: 2-Tuple of the intersection points (representing a chord), each\n                    an instance of the B{C{point}} class.  Both points are the same\n                    instance if the (great circle) line is tangent to the circle.\n\n           @raise IntersectionError: The circle and line do not intersect.\n\n           @raise TypeError: Invalid B{C{point}}, B{C{circle}} or B{C{other}}.\n\n           @raise UnitError: Invalid B{C{circle}}, B{C{other}}, B{C{radius}},\n                             B{C{exact}}, B{C{height}} or B{C{napieradius}}.\n        '''\n        p = self.others(point=point)\n        try:\n            return _intersecant2(self, circle, p, other, radius=radius, exact=exact,\n                                                         height=height, wrap=wrap)\n        except (TypeError, ValueError) as x:\n            raise _xError(x, center=self, circle=circle, point=point, other=other,\n                             radius=radius, exact=exact, height=height, wrap=wrap)\n\n    def maxLat(self, bearing):\n        '''Return the maximum latitude reached when travelling on a great circle\n           on given bearing from this point based on Clairaut's formula.\n\n           The maximum latitude is independent of longitude and the same for all\n           points on a given latitude.\n\n           Negate the result for the minimum latitude (on the Southern hemisphere).\n\n           @arg bearing: Initial bearing (compass C{degrees360}).\n\n           @return: Maximum latitude (C{degrees90}).\n\n           @raise ValueError: Invalid B{C{bearing}}.\n        '''\n        r = acos1(fabs(sin(Bearing_(bearing)) * cos(self.phi)))\n        return degrees90(r)\n\n    def minLat(self, bearing):\n        '''Return the minimum latitude reached when travelling on a great circle\n           on given bearing from this point.\n\n           @arg bearing: Initial bearing (compass C{degrees360}).\n\n           @return: Minimum latitude (C{degrees90}).\n\n           @see: Method L{maxLat} for more details.\n\n           @raise ValueError: Invalid B{C{bearing}}.\n        '''\n        return -self.maxLat(bearing)\n\n    def _mpr(self, radius=R_M, exact=None):  # meter per radian\n        if exact and not _isRadius(radius):  # see .rhumb.ekx.Rhumb._mpr\n            radius = _earth_ellipsoid(radius)._Lpr\n        return radius\n\n    @property_doc_(''' the I{Napier} radius to apply spherical trigonometry.''')\n    def napieradius(self):\n        '''Get the I{Napier} radius (C{meter}, conventionally).\n        '''\n        return self._napieradius\n\n    @napieradius.setter  # PYCHOK setter!\n    def napieradius(self, radius):\n        '''Set this I{Napier} radius (C{meter}, conventionally) or C{0}.\n\n           In methods L{intersecant2} and L{rhumbIntersecant2}, I{Napier}'s\n           spherical trigonometry is applied if the circle radius exceeds\n           the I{Napier} radius, otherwise planar trigonometry is used.\n\n           @raise UnitError: Invalid B{C{radius}}.\n        '''\n        self._napieradius = Radius(napieradius=radius or 0)\n\n#   def nearestTo(self, point, other, **radius_exact_height_wrap):  # PYCHOK signature\n#       p = self.others(point=point)\n#       try:\n#           p, q = _intersecant2(self, p, p, other, **radius_exact_height_wrap)\n#       except (TypeError, ValueError) as x:\n#           raise _xError(x, this=self, point=point, other=other, **radius_exact_height_wrap)\n#       return p.midpointTo(q)\n\n    def parse(self, strllh, height=0, sep=_COMMA_, **name):\n        '''Parse a string representing a similar, spherical C{LatLon}\n           point, consisting of C{\"lat, lon[, height]\"}.\n\n           @arg strllh: Lat, lon and optional height (C{str}), see function\n                        L{pygeodesy.parse3llh}.\n           @kwarg height: Optional, default height (C{meter}).\n           @kwarg sep: Optional separator (C{str}).\n           @kwarg name: Optional C{B{name}=NN} (C{str}), overriding this name.\n\n           @return: The similar point (spherical C{LatLon}).\n\n           @raise ParseError: Invalid B{C{strllh}}.\n        '''\n        llh = _MODS.dms.parse3llh(strllh, height=height, sep=sep)\n        return self.classof(*llh, **name)\n\n    @property_RO\n    def _radius(self):\n        '''(INTERNAL) Get this sphere's radius.\n        '''\n        return self.datum.ellipsoid.equatoradius\n\n    def _rhumbs3(self, other, wrap, r=False):  # != .latlonBase._rhumbx3\n        '''(INTERNAL) Rhumb_ helper function.\n\n           @arg other: The other point (spherical C{LatLon}).\n        '''\n        p = self.others(other, up=2)\n        if wrap:\n            p = _unrollon(self, p, wrap=wrap)\n        a2, b2 = p.philam\n        a1, b1 = self.philam\n        # if |db| > 180 take shorter rhumb\n        # line across the anti-meridian\n        db =  wrapPI(b2 - b1)\n        dp = _logPI_2_2(a2, a1)\n        da =  a2 - a1\n        if r:\n            # on Mercator projection, longitude distances shrink\n            # by latitude; the 'stretch factor' q becomes ill-\n            # conditioned along E-W line (0/0); use an empirical\n            # tolerance to avoid it\n            q  = (da / dp) if fabs(dp) > EPS else cos(a1)\n            da = hypot(da, q * db)  # angular distance radians\n        return da, db, dp\n\n    def rhumbAzimuthTo(self, other, radius=R_M, exact=False, wrap=False, b360=False):\n        '''Return the azimuth (bearing) of a rhumb line (loxodrome) between\n           this and an other (spherical) point.\n\n           @arg other: The other point (spherical C{LatLon}).\n           @kwarg radius: Earth radius (C{meter}) or earth model (L{Datum},\n                          L{Ellipsoid}, L{Ellipsoid2} or L{a_f2Tuple}).\n           @kwarg exact: If C{True}, use I{Elliptic, Krüger} L{Rhumb} (C{bool}),\n                         default C{False} for backward compatibility.\n           @kwarg wrap: If C{True}, wrap or I{normalize} and unroll the\n                        B{C{other}} point (C{bool}).\n           @kwarg b360: If C{True}, return the azimuth in the bearing range.\n\n           @return: Rhumb azimuth (compass C{degrees180} or C{degrees360}).\n\n           @raise TypeError: The B{C{other}} point is incompatible or\n                             B{C{radius}} is invalid.\n        '''\n        if exact:  # use series, always\n            z = LatLonBase.rhumbAzimuthTo(self, other, exact=False,  # Krüger\n                                                radius=radius, wrap=wrap, b360=b360)\n        else:\n            _, db, dp = self._rhumbs3(other, wrap)\n            z = (atan2b if b360 else atan2d)(db, dp)  # see .rhumbBase.RhumbBase.Inverse\n        return z\n\n    @deprecated_method\n    def rhumbBearingTo(self, other):  # unwrapped\n        '''DEPRECATED, use method C{.rhumbAzimuthTo}.'''\n        return self.rhumbAzimuthTo(other, b360=True)  # [0..360)\n\n    def rhumbDestination(self, distance, azimuth, radius=R_M, height=None,\n                                                   exact=False, **name):\n        '''Return the destination point having travelled the given distance from\n           this point along a rhumb line (loxodrome) of the given azimuth.\n\n           @arg distance: Distance travelled (C{meter}, same units as B{C{radius}}),\n                          may be negative if C{B{exact}=True}.\n           @arg azimuth: Azimuth (bearing) of the rhumb line (compass C{degrees}).\n           @kwarg radius: Earth radius (C{meter}) or earth model (L{Datum},\n                          L{Ellipsoid}, L{Ellipsoid2} or L{a_f2Tuple}) if\n                          C{B{exact}=True}.\n           @kwarg height: Optional height, overriding the default height (C{meter}.\n           @kwarg exact: If C{True}, use I{Elliptic, Krüger} L{Rhumb} (C{bool}),\n                         default C{False} for backward compatibility.\n           @kwarg name: Optional C{B{name}=NN} (C{str}).\n\n           @return: The destination point (spherical C{LatLon}).\n\n           @raise ValueError: Invalid B{C{distance}}, B{C{azimuth}}, B{C{radius}}\n                              or B{C{height}}.\n        '''\n        if exact:  # use series, always\n            r = LatLonBase.rhumbDestination(self, distance, azimuth, exact=False,  # Krüger\n                                                  radius=radius, height=height, **name)\n        else:  # radius=None from .rhumbMidpointTo\n            if _isin(radius, None, self._radius):\n                d, r = self.datum, radius\n            else:\n                d = _spherical_datum(radius, raiser=_radius_)  # spherical only\n                r =  d.ellipsoid.equatoradius\n            r = _m2radians(distance, r, low=-EPS)  # distance=0 from .rhumbMidpointTo\n\n            a1, b1 = self.philam\n            sb, cb = sincos2(Bearing_(azimuth))  # radians\n\n            da = r  * cb\n            a2 = a1 + da\n            # normalize latitude if past pole\n            if fabs(a2) > PI_2:\n                a2 = _copysign(PI, a2) - a2\n\n            dp = _logPI_2_2(a2, a1)\n            # q becomes ill-conditioned on E-W course 0/0\n            q  = cos(a1) if isnear0(dp) else (da / dp)\n            b2 = b1 if isnear0(q) else (b1 + r * sb / q)\n\n            h = self._heigHt(height)\n            r = self.classof(degrees90(a2), degrees180(b2), datum=d, height=h, **name)\n        return r\n\n    def rhumbDistanceTo(self, other, radius=R_M, exact=False, wrap=False):\n        '''Return the distance from this to an other point along\n           a rhumb line (loxodrome).\n\n           @arg other: The other point (spherical C{LatLon}).\n           @kwarg radius: Earth radius (C{meter}) or earth model (L{Datum},\n                          L{Ellipsoid}, L{Ellipsoid2} or L{a_f2Tuple}) if\n                          C{B{exact}=True}.\n           @kwarg exact: If C{True}, use I{Elliptic, Krüger} L{Rhumb} (C{bool}),\n                         default C{False} for backward compatibility.\n           @kwarg wrap: If C{True}, wrap or I{normalize} and unroll the\n                        B{C{other}} point (C{bool}).\n\n           @return: Distance (C{meter}, the same units as B{C{radius}} or\n                    C{radians} if C{B{radius} is None}).\n\n           @raise TypeError: The B{C{other}} point is incompatible.\n\n           @raise ValueError: Invalid B{C{radius}}.\n        '''\n        if exact:  # use series, always\n            r = LatLonBase.rhumbDistanceTo(self, other, exact=False,  # Krüger\n                                                 radius=radius, wrap=wrap)\n            if radius is None:  # angular distance in radians\n                r = r / self._radius  # /= chokes PyChecker\n        else:\n            # see <https://www.EdWilliams.org/avform.htm#Rhumb>\n            r, _, _ = self._rhumbs3(other, wrap, r=True)\n            if radius is not None:\n                r *= Radius(radius)\n        return r\n\n    def rhumbIntersecant2(self, circle, point, other, radius=R_M, exact=True,  # PYCHOK signature\n                                                      height=None, wrap=False):\n        '''Compute the intersections of a circle and a rhumb line given as two\n           points and as a point and azimuth.\n\n           @arg circle: Radius of the circle centered at this location (C{meter},\n                        same units as B{C{radius}}) or a point on the circle\n                        (same C{LatLon} class).\n           @arg point: The rhumb line's start point (same C{LatLon} class).\n           @arg other: An other point (this I{on} C{LatLon}) or the azimuth I{of}\n                       (compass C{degrees}) the rhumb line.\n           @kwarg radius: Mean earth radius (C{meter}, conventionally).\n           @kwarg exact: If C{True}, use the I{exact} rhumb methods for azimuth,\n                         destination and distance, if C{False} use the basic\n                         rhumb methods (C{bool}) or if C{None} use the I{great\n                         circle} methods.\n           @kwarg height: Optional height for the intersection points (C{meter},\n                          conventionally) or C{None}.\n           @kwarg wrap: If C{True}, wrap or I{normalize} and unroll the points\n                        B{C{circle}}, B{C{point}} and/or B{C{other}} (C{bool}).\n\n           @return: 2-Tuple of the intersection points (representing a chord),\n                    each an instance of this class.  For a tangent line, both\n                    points are the same instance, wrapped or I{normalized}.\n\n           @raise IntersectionError: The circle and line do not intersect.\n\n           @raise TypeError: Invalid B{C{point}}, B{C{circle}} or B{C{other}}.\n\n           @raise UnitError: Invalid B{C{circle}}, B{C{other}}, B{C{radius}},\n                             B{C{exact}} or B{C{height}}.\n        '''\n        m = LatLonBase.rhumbIntersecant2 if exact else \\\n            LatLonSphericalBase.intersecant2\n        return m(self, circle, point, other, radius=radius, exact=exact,\n                                             height=height, wrap=wrap)\n\n    def rhumbMidpointTo(self, other, height=None, radius=R_M, exact=False,\n                                                fraction=_0_5, **wrap_name):\n        '''Return the (loxodromic) midpoint on the rhumb line between this\n           and an other point.\n\n           @arg other: The other point (spherical LatLon).\n           @kwarg height: Optional height, overriding the mean height (C{meter}).\n           @kwarg radius: Earth radius (C{meter}) or earth model (L{Datum},\n                          L{Ellipsoid}, L{Ellipsoid2} or L{a_f2Tuple}).\n           @kwarg exact: If C{True}, use I{Elliptic, Krüger} L{Rhumb} (C{bool}),\n                         default C{False} for backward compatibility.\n           @kwarg fraction: Midpoint location from this point (C{scalar}), may\n                            be negative if C{B{exact}=True}.\n           @kwarg wrap_name: Optional C{B{name}=NN} (C{str}) and optional keyword\n                       argument C{B{wrap}=False}, if C{True}, wrap or I{normalize}\n                       and unroll the B{C{other}} point (C{bool}).\n\n           @return: The (mid)point at the given B{C{fraction}} along the rhumb\n                    line (spherical C{LatLon}).\n\n           @raise TypeError: The B{C{other}} point is incompatible.\n\n           @raise ValueError: Invalid B{C{height}} or B{C{fraction}}\n        '''\n        if exact:  # use series, always\n            r = LatLonBase.rhumbMidpointTo(self, other, exact=False,  # Krüger\n                                                 radius=radius, height=height,\n                                                 fraction=fraction, **wrap_name)\n        elif fraction is not _0_5:\n            f = Scalar_(fraction=fraction)  # low=_0_0\n            w, n      = self._wrap_name2(**wrap_name)\n            r, db, dp = self._rhumbs3(other, w, r=True)  # radians\n            z = atan2b(db, dp)\n            h = self._havg(other, f=f, h=height)\n            r = self.rhumbDestination(r * f, z, radius=None, height=h, name=n)\n\n        else:  # for backward compatibility, unwrapped\n            _,  n  = self._wrap_name2(**wrap_name)\n            # see <https://MathForum.org/library/drmath/view/51822.html>\n            a1, b1 = self.philam\n            a2, b2 = self.others(other).philam\n            _,  n  = self._wrap_name2(**wrap_name)\n\n            if fabs(b2 - b1) > PI:\n                b1 += PI2  # crossing anti-meridian\n\n            a3 = favg(a1, a2)\n            b3 = favg(b1, b2)\n\n            f1 = tanPI_2_2(a1)\n            if isnon0(f1):\n                f2 = tanPI_2_2(a2)\n                f  = f2 / f1\n                if isnon0(f):\n                    f = log(f)\n                    if isnon0(f):\n                        f3 = tanPI_2_2(a3)\n                        b3 = fdot(map1(log, f1, f2, f3),\n                                           -b2, b1, b2 - b1) / f\n\n            d = self.datum if _isin(radius, None, self._radius) else \\\n               _spherical_datum(radius, name=self.name, raiser=_radius_)\n            h = self._havg(other, h=height)\n            r = self.classof(degrees90(a3), degrees180(b3), datum=d, height=h, name=n)\n        return r\n\n    @property_RO\n    def sphericalLatLon(self):\n        '''Get this C{LatLon}'s spherical class.\n        '''\n        return type(self)\n\n    def toNvector(self, Nvector=NvectorBase, **Nvector_kwds):  # PYCHOK signature\n        '''Convert this point to C{Nvector} components, I{including\n           height}.\n\n           @kwarg Nvector_kwds: Optional, additional B{C{Nvector}} keyword\n                                arguments, ignored if C{B{Nvector} is None}.\n\n           @return: An B{C{Nvector}} or a L{Vector4Tuple}C{(x, y, z, h)} if\n                    B{C{Nvector} is None}.\n\n           @raise TypeError: Invalid B{C{Nvector}} or B{C{Nvector_kwds}}.\n        '''\n        return LatLonBase.toNvector(self, Nvector=Nvector, **Nvector_kwds)\n\n\ndef _intersecant2(c, r, p, b, radius=R_M, exact=False, height=None, wrap=False):\n    # (INTERNAL) Intersect a circle and line, see L{intersecant2}\n    # above, separated to allow callers to embellish any exceptions\n\n    if wrap:\n        p = _unrollon(c, p, wrap=wrap)\n    nonexact = exact is None\n\n    if not isinstanceof(r, type(c), type(p)):\n        r = Radius_(circle=r)\n    elif nonexact:\n        r = c.distanceTo(r, radius=radius, wrap=wrap)\n    elif isbool(exact):\n        r = c.rhumbDistanceTo(r, radius=radius, exact=exact, wrap=wrap)\n    else:\n        raise _ValueError(exact=exact)\n\n    if not isinstanceof(b, type(c), type(p)):\n        b = Bearing(b)\n    elif nonexact:\n        b = p.initialBearingTo(b, wrap=wrap)\n    else:\n        b = p.rhumbAzimuthTo(b, radius=radius, exact=exact, wrap=wrap,\n                             b360=True)\n\n    d = p.distanceTo(c, radius=radius) if nonexact else \\\n        p.rhumbDistanceTo(c, radius=radius, exact=exact)\n    if d > EPS0:\n        n = _xattr(c, napieradius=0)\n        a =  p.initialBearingTo(c) if nonexact else \\\n             p.rhumbAzimuthTo(c, radius=radius, exact=exact, b360=True)\n        s, c = sincos2d(b - a)  # Napier's sin(A), cos(A)\n        if r > n:\n            # Napier's right spherical triangle rules (R2) and (R1)\n            # <https://WikiPedia.org/wiki/Spherical_trigonometry>\n            m = p._mpr(radius=radius, exact=exact)  # meter per radian\n            if fabs(c) > EPS0:\n                d =  d / m  # /= chokes PyChecker\n                a =  asin1(sin(d) * fabs(s))  # Napier's a\n                c = _copysign(cos(a), c)\n                d =  acos1(cos(d) / c) * m\n                a *= m  # meter\n            else:  # point and chord center coincident\n                a, d = d, 0\n                c = cos(a / m)\n            h = (acos1(cos(r / m) / c) * m) if a < r else 0\n        else:  # distance from the chord center to ...\n            a  = fabs(d * s)  # ... the cicle center ...\n            d *= c  # ... and to the point\n            h  = sqrt_a(r, a) if a < r else 0  # half chord length\n        if a > r:\n            raise IntersectionError(_too_(Fmt.distant(a)))\n    else:\n        d, h = 0, r  # point and circle center coincident\n\n    _intersecant1, kwds = (p.destination, {}) if nonexact else \\\n                          (p.rhumbDestination, dict(exact=exact))\n    kwds.update(radius=radius, height=height)\n    t = (_intersecant1(d + h, b, **kwds),)\n    if h:\n        t += (_intersecant1(d - h, b, **kwds),)\n    else:  # same instance twice\n        t *= 2\n    return t\n\n\ndef _logPI_2_2(a2, a1):\n    '''(INTERNAL) C{log} of C{tanPI_2_2}'s quotient.\n    '''\n    return log(_over(tanPI_2_2(a2), tanPI_2_2(a1)))\n\n\ndef _m2radians(distance, radius, low=EPS):  # PYCHOK in .spherical*\n    '''(INTERNAL) Distance in C{meter} to angular distance in C{radians}.\n\n       @raise UnitError: Invalid B{C{distance}} or B{C{radius}}.\n    '''\n    r = float(distance)\n    if radius:\n        r = r / Radius_(radius=radius)  # /= chokes PyChecker\n    if low is not None:\n        # small near0 values from .rhumbDestination not exact OK\n        r = _0_0 if low < 0 and r < 0 else Radians_(r, low=low)\n        # _0_0 if low < 0 and low < r < 0 else Radians_(r, low=low)\n    return r\n\n\ndef _radians2m(rad, radius):\n    '''(INTERNAL) Angular distance in C{radians} to distance in C{meter}.\n    '''\n    if radius is not None:  # not _isin(radius, None, _0_0)\n        rad *= R_M if radius is R_M else Radius(radius)\n    return rad\n\n\ndef _rads3(rad1, rad2, radius):  # in .sphericalTrigonometry\n    '''(INTERNAL) Convert radii to radians.\n    '''\n    r1 = Radius_(rad1=rad1)\n    r2 = Radius_(rad2=rad2)\n    if radius is not None:  # convert radii to radians\n        r1 = _m2radians(r1, radius)\n        r2 = _m2radians(r2, radius)\n\n    x = r1 < r2\n    if x:\n        r1, r2 = r2, r1\n    if r1 > PI:\n        raise IntersectionError(rad1=rad1, rad2=rad2,\n                                txt=_exceed_PI_radians_)\n    return r1, r2, x\n\n\n__all__ += _ALL_DOCS(CartesianSphericalBase, LatLonSphericalBase)\n\n# **) MIT License\n#\n# Copyright (C) 2016-2026 -- mrJean1 at Gmail -- All Rights Reserved.\n#\n# Permission is hereby granted, free of charge, to any person obtaining a\n# copy of this software and associated documentation files (the \"Software\"),\n# to deal in the Software without restriction, including without limitation\n# the rights to use, copy, modify, merge, publish, distribute, sublicense,\n# and/or sell copies of the Software, and to permit persons to whom the\n# Software is furnished to do so, subject to the following conditions:\n#\n# The above copyright notice and this permission notice shall be included\n# in all copies or substantial portions of the Software.\n#\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL\n# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR\n# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\n# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n# OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "pygeodesy/sphericalNvector.py",
    "content": "\n# -*- coding: utf-8 -*-\n\nu'''Spherical, C{N-vector}-based geodesy.\n\nN-vector-based classes geodetic (lat-/longitude) L{LatLon}, geocentric\n(ECEF) L{Cartesian} and C{Nvector} and functions L{areaOf}, L{intersection},\nL{meanOf}, L{nearestOn3}, L{perimeterOf}, L{sumOf}, L{triangulate} and\nL{trilaterate}, I{all spherical}.\n\nPure Python implementation of n-vector-based spherical geodetic (lat-/longitude)\nmethods, transcoded from JavaScript originals by I{(C) Chris Veness 2011-2024},\npublished under the same MIT Licence**.  See U{Vector-based geodesy\n<https://www.Movable-Type.co.UK/scripts/latlong-vectors.html>} and\nU{Module latlon-nvector-spherical\n<https://www.Movable-Type.co.UK/scripts/geodesy/docs/module-latlon-nvector-spherical.html>}.\n\nTools for working with points and lines on (a spherical model of) the\nearth’s surface using using n-vectors rather than the more common\nspherical trigonometry.  N-vectors make many calculations much simpler,\nand easier to follow, compared with the trigonometric equivalents.\n\nBased on Kenneth Gade’s U{‘Non-singular Horizontal Position Representation’\n<https://www.NavLab.net/Publications/A_Nonsingular_Horizontal_Position_Representation.pdf>},\nThe Journal of Navigation (2010), vol 63, nr 3, pp 395-417.\n\nNote that the formulations below take x => 0°N,0°E, y => 0°N,90°E and\nz => 90°N while Gade uses x => 90°N, y => 0°N,90°E, z => 0°N,0°E.\n\nAlso note that on a spherical earth model, an n-vector is equivalent\nto a normalised version of an (ECEF) cartesian coordinate.\n'''\n# make sure int/int division yields float quosient, see .basics\nfrom __future__ import division as _; del _  # noqa: E702 ;\n\nfrom pygeodesy.basics import _isin, _xinstanceof,  typename\nfrom pygeodesy.constants import EPS, EPS0, PI, PI2, PI_2, R_M, \\\n                               _0_0, _0_5, _1_0\n# from pygeodesy.datums import Datums  # from .sphericalBase\nfrom pygeodesy.errors import PointsError, VectorError, _xError, _xkwds\nfrom pygeodesy.fmath import fdot_, fmean, fsum\n# from pygeodesy.fsums import fsum  # from .fmath\n# from pygeodesy.internals import typename  # from .basics\nfrom pygeodesy.interns import _composite_, _end_, _Nv00_, _other_, \\\n                              _point_, _pole_\nfrom pygeodesy.lazily import _ALL_LAZY, _ALL_MODS as _MODS, _ALL_OTHER\n# from pygeodesy.named import notImplemented  # from .points\n# from pygeodesy.namedTuples import NearestOn3Tuple  # from .points\nfrom pygeodesy.nvectorBase import LatLonNvectorBase, NorthPole, _nsumOf, \\\n                                  NvectorBase, _triangulate, _trilaterate\nfrom pygeodesy.points import NearestOn3Tuple, notImplemented, \\\n                             ispolar  # PYCHOK exported\nfrom pygeodesy.props import deprecated_function, deprecated_method, \\\n                            property_RO\nfrom pygeodesy.sphericalBase import _m2radians, CartesianSphericalBase, \\\n                                    _intersecant2, LatLonSphericalBase, \\\n                                    _radians2m,  Datums\nfrom pygeodesy.units import Bearing, Bearing_, _isDegrees, Radius, Scalar\nfrom pygeodesy.utily import atan2, degrees360, sincos2, sincos2_, sincos2d, \\\n                           _unrollon, _Wrap,  fabs\n\n# from math import fabs  # from utily\n\n__all__ = _ALL_LAZY.sphericalNvector\n__version__ = '25.05.27'\n\n_lines_ = 'lines'\n\n\nclass Cartesian(CartesianSphericalBase):\n    '''Extended to convert geocentric, L{Cartesian} points to\n       C{Nvector} and n-vector-based, spherical L{LatLon}.\n    '''\n\n    def toLatLon(self, **LatLon_and_kwds):  # PYCHOK LatLon=LatLon\n        '''Convert this cartesian to an C{Nvector}-based geodetic point.\n\n           @kwarg LatLon_and_kwds: Optional C{LatLon} class and C{LatLon} keyword\n                                   arguments, like C{datum}.  Use C{B{LatLon}=...}\n                                   to override this L{LatLon} class or specify\n                                   C{B{LatLon}=None}.\n\n           @return: A C{LatLon} or if C{LatLon is None}, an L{Ecef9Tuple}C{(x, y, z,\n                    lat, lon, height, C, M, datum)} with C{C} and C{M} if available.\n\n           @raise TypeError: Invalid C{LatLon} or other B{C{LatLon_and_kwds}} item.\n        '''\n        kwds = _xkwds(LatLon_and_kwds, LatLon=LatLon, datum=self.datum)\n        return CartesianSphericalBase.toLatLon(self, **kwds)\n\n    def toNvector(self, **Nvector_and_kwds):  # PYCHOK Datums.WGS84\n        '''Convert this cartesian to C{Nvector} components, I{including height}.\n\n           @kwarg Nvector_and_kwds: Optional C{Nvector} class and C{Nvector} keyword\n                                    arguments, like C{datum}.  Use C{B{Nvector}=...}\n                                    to override this C{Nvector} class or specify\n                                    C{B{Nvector}=None}.\n\n           @return: An C{Nvector}) or if C{Nvector is None}, a L{Vector4Tuple}C{(x, y, z, h)}.\n\n           @raise TypeError: Invalid C{Nvector} or other B{C{Nvector_and_kwds}} item.\n        '''\n        # ll = CartesianBase.toLatLon(self, LatLon=LatLon,\n        #                                    datum=datum or self.datum)\n        # kwds = _xkwds(kwds, Nvector=Nvector)\n        # return ll.toNvector(**kwds)\n        kwds = _xkwds(Nvector_and_kwds, Nvector=Nvector, datum=self.datum)\n        return CartesianSphericalBase.toNvector(self, **kwds)\n\n\nclass LatLon(LatLonNvectorBase, LatLonSphericalBase):\n    '''New n-vector-based point on a spherical earth model.\n\n       Tools for working with points, lines and paths on (a spherical\n       model of) the earth's surface using vector-based methods.\n    '''\n    _Nv = None  # cached_toNvector C{Nvector})\n\n    def _update(self, updated, *attrs, **setters):  # PYCHOK args\n        '''(INTERNAL) Zap cached attributes if updated.\n        '''\n        if updated:  # reset caches\n            LatLonNvectorBase._update(self, updated, _Nv=self._Nv)  # special case\n            LatLonSphericalBase._update(self, updated, *attrs, **setters)\n\n    def alongTrackDistanceTo(self, start, end, radius=R_M, wrap=False):\n        '''Compute the (signed) distance from the start to the closest\n           point on the great circle line defined by a start and an\n           end point.\n\n           That is, if a perpendicular is drawn from this point to the\n           great circle line, the along-track distance is the distance\n           from the start point to the point where the perpendicular\n           crosses the line.\n\n           @arg start: Start point of great circle line (L{LatLon}).\n           @arg end: End point of great circle line (L{LatLon}) or\n                     initial bearing from start point (compass\n                     C{degrees360}).\n           @kwarg radius: Mean earth radius (C{meter}) or C{None}.\n           @kwarg wrap: If C{True}, wrap or I{normalize} and unroll\n                        the B{C{start}} and B{C{end}} points (C{bool}).\n\n           @return: Distance along the great circle line (C{radians}\n                    if C{B{radius} is None} else C{meter}, same units\n                    as B{C{radius}}), positive if \"after\" the start\n                    toward the end point of the line or negative if\n                    \"before\" the start point.\n\n           @raise TypeError: If B{C{start}} or B{C{end}} point is not L{LatLon}.\n\n           @raise Valuerror: Some points coincide.\n        '''\n        p = self.others(start=start)\n        n = self.toNvector()\n\n        gc, _, _ = self._gc3(p, end, _end_, wrap=wrap)\n        a = gc.cross(n).cross(gc)  # along-track point gc × p × gc\n        return _radians2m(start.toNvector().angleTo(a, vSign=gc), radius)\n\n    @deprecated_method\n    def bearingTo(self, other, **unused):  # PYCHOK no cover\n        '''DEPRECATED, use method L{initialBearingTo}.\n        '''\n        return self.initialBearingTo(other)\n\n    def crossTrackDistanceTo(self, start, end, radius=R_M, wrap=False):\n        '''Compute the (signed) distance from this point to great circle\n           defined by a start and end point.\n\n           @arg start: Start point of great circle line (L{LatLon}).\n           @arg end: End point of great circle line (L{LatLon}) or initial\n                     bearing from start point (compass C{degrees360}).\n           @kwarg radius: Mean earth radius (C{meter}) or C{None}.\n           @kwarg wrap: If C{True}, wrap or I{normalize} and unroll the\n                        B{C{start}} and B{C{end}} points (C{bool}).\n\n           @return: Distance to great circle (C{radians} if C{B{radius}\n                    is None} else C{meter}, same units as B{C{radius}}),\n                    negative if to the left  or positive if to the right\n                    of the line .\n\n           @raise TypeError: If B{C{start}} or B{C{end}} point is not L{LatLon}.\n\n           @raise Valuerror: Some points coincide.\n        '''\n        p = self.others(start=start)\n        n = self.toNvector()\n\n        gc, _, _ = self._gc3(p, end, _end_, wrap=wrap)\n        return _radians2m(gc.angleTo(n) - PI_2, radius)\n\n    def destination(self, distance, bearing, radius=R_M, height=None):\n        '''Locate the destination from this point after having travelled\n           the given distance on the given bearing.\n\n           @arg distance: Distance travelled (C{meter}, same units as\n                          B{C{radius}}).\n           @arg bearing: Bearing from this point (compass C{degrees360}).\n           @kwarg radius: Mean earth radius (C{meter}).\n           @kwarg height: Optional height at destination, overriding the\n                          default height (C{meter}, same units as B{C{radius}}).\n\n           @return: Destination point (L{LatLon}).\n\n           @raise Valuerror: Polar coincidence or invalid B{C{distance}},\n                             B{C{bearing}}, B{C{radius}} or B{C{height}}.\n        '''\n        b =  Bearing_(bearing)\n        a = _m2radians(distance, radius, low=None)\n        sa, ca, sb, cb = sincos2_(a, b)\n\n        n = self.toNvector()\n        e = NorthPole.cross(n, raiser=_pole_).unit()  # east vector at n\n        x = n.cross(e)  # north vector at n\n        d = x.times(cb).plus(e.times(sb))  # direction vector @ n\n        n = n.times(ca).plus(d.times(sa))\n        return n.toLatLon(height=height, LatLon=self.classof)  # Nvector(n.x, n.y, n.z).toLatLon(...)\n\n    def distanceTo(self, other, radius=R_M, wrap=False):\n        '''Compute the distance from this to an other point.\n\n           @arg other: The other point (L{LatLon}).\n           @kwarg radius: Mean earth radius (C{meter}) or C{None}.\n           @kwarg wrap: If C{True}, wrap or I{normalize} and unroll\n                        the B{C{other}} point (C{bool}).\n\n           @return: Distance between this and the B{C{other}} point\n                    (C{meter}, same units as B{C{radius}} or C{radians}\n                    if C{B{radius} is None}).\n\n           @raise TypeError: Invalid B{C{other}} point.\n        '''\n        p = self.others(other)\n        if wrap:\n            p = _unrollon(self, p)\n        n = p.toNvector()\n        r = fabs(self.toNvector().angleTo(n, wrap=wrap))\n        return r if radius is None else (Radius(radius) * r)\n\n#   @Property_RO\n#   def Ecef(self):\n#       '''Get the ECEF I{class} (L{EcefVeness}), I{lazily}.\n#       '''\n#       return _ALL_MODS.ecef.EcefKarney\n\n    def _gc3(self, start, end, namend, raiser=_point_, wrap=False):\n        '''(INTERNAL) Return great circle, start and end Nvectors.\n        '''\n        s = start.toNvector()\n        if _isDegrees(end):  # bearing\n            gc = s.greatCircle(end)\n            e  = None\n        else:  # point\n            p  = self.others(end, name=namend)\n            if wrap:\n                p = _unrollon(start, p, wrap=wrap)\n            e  = p.toNvector()\n            gc = s.cross(e, raiser=raiser)  # XXX .unit()?\n        return gc, s, e\n\n    def greatCircle(self, bearing):\n        '''Compute the vector normal to great circle obtained by\n           heading on the given bearing from this point.\n\n           Direction of vector is such that initial bearing vector\n           b = c × n, where n is an n-vector representing this point.\n\n           @arg bearing: Bearing from this point (compass C{degrees360}).\n\n           @return: N-vector representing the great circle (C{Nvector}).\n        '''\n        t = Bearing_(bearing)\n        a, b = self.philam\n\n        sa, ca, sb, cb, st, ct = sincos2_(a, b, t)\n\n        sa *= st\n        return Nvector(fdot_(sb, ct, -sa, cb),\n                      -fdot_(cb, ct,  sa, sb),\n                       ca * st, name=self.name)  # XXX .unit()\n\n    def greatCircleTo(self, other, wrap=False):\n        '''Compute the vector normal to great circle obtained by\n           heading from this to an other point or on a given bearing.\n\n           Direction of vector is such that initial bearing vector\n           b = c × n, where n is an n-vector representing this point.\n\n           @arg other: The other point (L{LatLon}) or the bearing from\n                       this point (compass C{degrees360}).\n           @kwarg wrap: If C{True}, wrap or I{normalize} and unroll\n                        the B{C{other}} point (C{bool}).\n\n           @return: N-vector representing the great circle (C{Nvector}).\n\n           @raise TypeError: The B{C{other}} point is not L{LatLon}.\n\n           @raise Valuerror: Points coincide.\n        '''\n        gc, _, _ = self._gc3(self, other, _other_, wrap=wrap)\n        return gc.unit()\n\n    def initialBearingTo(self, other, wrap=False, **unused):  # raiser=...\n        '''Compute the initial bearing (forward azimuth) from this\n           to an other point.\n\n           @arg other: The other point (L{LatLon}).\n           @kwarg wrap: If C{True}, wrap or I{normalize} and unroll the\n                        B{C{other}} point (C{bool}).\n\n           @return: Initial bearing (compass C{degrees360}).\n\n           @raise Crosserror: This point coincides with the B{C{other}}\n                              point or the C{NorthPole} and L{crosserrors\n                              <pygeodesy.crosserrors>} is C{True}.\n\n           @raise TypeError: The B{C{other}} point is not L{LatLon}.\n        '''\n        n = self.toNvector()\n        p = self.others(other)\n        if wrap:\n            p = _unrollon(self, p, wrap=wrap)\n        p = p.toNvector()\n        # see <https://MathForum.org/library/drmath/view/55417.html>\n#       gc1 = self.greatCircleTo(other)\n        gc1 = n.cross(p, raiser=_point_)  # .unit()\n#       gc2 = self.greatCircleTo(NorthPole)\n        gc2 = n.cross(NorthPole, raiser=_pole_)  # .unit()\n        return degrees360(gc1.angleTo(gc2, vSign=n))\n\n    def intermediateChordTo(self, other, fraction, height=None, wrap=False):\n        '''Locate the point projected from the point at given fraction\n           on a straight line (chord) between this and an other point.\n\n           @arg other: The other point (L{LatLon}).\n           @arg fraction: Fraction between both points (float, between\n                          0.0 for this and 1.0 for the other point).\n           @kwarg height: Optional height at the intermediate point,\n                          overriding the fractional height (C{meter}).\n           @kwarg wrap: If C{True}, wrap or I{normalize} and unroll\n                        the B{C{other}} point (C{bool}).\n\n           @return: Intermediate point (L{LatLon}).\n\n           @raise TypeError: The B{C{other}} point is not L{LatLon}.\n        '''\n        n = self.toNvector()\n        p = self.others(other)\n        if wrap:\n            p = _unrollon(self, p, wrap=wrap)\n\n        f = Scalar(fraction=fraction)\n        i = p.toNvector().times(f).plus(n.times(1 - f))\n#       i = p.toNvector() * f + self.toNvector() * (1 - f))\n\n        h = self._havg(other, f=f, h=height)\n        return i.toLatLon(height=h, LatLon=self.classof)  # Nvector(i.x, i.y, i.z).toLatLon(...)\n\n    def intermediateTo(self, other, fraction, height=None, wrap=False):\n        '''Locate the point at a given fraction between this and an\n           other point.\n\n           @arg other: The other point (L{LatLon}).\n           @arg fraction: Fraction between both points (C{float}, between\n                          0.0 for this and 1.0 for the other point).\n           @kwarg height: Optional height at the intermediate point,\n                          overriding the fractional height (C{meter}).\n           @kwarg wrap: If C{True}, wrap or I{normalize} and unroll\n                        the B{C{other}} point (C{bool}).\n\n           @return: Intermediate point (L{LatLon}).\n\n           @raise TypeError: The B{C{other}} point is not L{LatLon}.\n\n           @raise Valuerror: Points coincide or invalid B{C{height}}.\n\n           @see: Methods C{midpointTo} and C{rhumbMidpointTo}.\n        '''\n        n = self.toNvector()\n        p = self.others(other)\n        if wrap:\n            p = _unrollon(self, p, wrap=wrap)\n        p = p.toNvector()\n        f = Scalar(fraction=fraction)\n\n        x = n.cross(p, raiser=_point_)\n        d = x.unit().cross(n)  # unit(n × p) × n\n        # angular distance α, tan(α) = |n × p| / n ⋅ p\n        s, c = sincos2(atan2(x.length, n.dot(p)) * f)  # interpolated\n        i = n.times(c).plus(d.times(s))  # n * cosα + d * sinα\n\n        h = self._havg(other, f=f, h=height)\n        return i.toLatLon(height=h, LatLon=self.classof)  # Nvector(i.x, i.y, i.z).toLatLon(...)\n\n    def intersection(self, end1, start2, end2, height=None, wrap=False):\n        '''Locate an intersection point of two lines each defined by two\n           points or by a point and an (initial) bearing.\n\n           @return: The intersection point (L{LatLon}).\n\n           @see: Method L{intersection2<sphericalNvector.LatLon.intersection2>}\n                 for further details.\n        '''\n        return intersection(self, end1, start2, end2, height=height,\n                                        wrap=wrap, LatLon=self.classof)\n\n    def intersection2(self, end1, start2, end2, height=None, wrap=False):\n        '''Locate both intersections of two (great circle) lines each defined\n           by two points or by a point and an (initial) bearing.\n\n           @arg end1: End point of the line starting at this point (L{LatLon})\n                      or the bearing at this point (compass C{degrees360}).\n           @arg start2: Start point of the other line (L{LatLon}).\n           @arg end2: End point of the other line (L{LatLon}) or the bearing\n                      at B{C{start2}} (compass C{degrees360}).\n           @kwarg height: Optional height at the intersection and antipodal\n                          point, overriding the mean height (C{meter}).\n           @kwarg wrap: If C{True}, wrap or I{normalize} and unroll the\n                        B{C{start2}} and both B{C{end*}} points (C{bool}).\n\n           @return: 2-Tuple C{(intersection, antipode)}, each a B{C{LatLon}}.\n\n           @raise TypeError: If B{C{start2}}, B{C{end1}} or B{C{end2}}\n                             point is not L{LatLon}.\n\n           @raise ValueError: Intersection is ambiguous or infinite or\n                              the lines are parallel, coincident or null.\n\n           @see: Function L{sphericalNvector.intersection2}.\n        '''\n        return intersection2(self, end1, start2, end2, height=height,\n                                         wrap=wrap, LatLon=self.classof)\n\n    def isenclosedBy(self, points, wrap=False):\n        '''Check whether a (convex) polygon or composite encloses this point.\n\n           @arg points: The polygon points or composite (L{LatLon}[],\n                        L{BooleanFHP} or L{BooleanGH}).\n           @kwarg wrap: If C{True}, wrap or I{normalize} and unroll the\n                        B{C{points}} (C{bool}).\n\n           @return: C{True} if this point is inside the polygon or composite,\n                    C{False} otherwise.\n\n           @raise PointsError: Insufficient number of B{C{points}}.\n\n           @raise TypeError: Some B{C{points}} are not L{LatLon}.\n\n           @see: Functions L{pygeodesy.isconvex}, L{pygeodesy.isenclosedBy}\n                 and L{pygeodesy.ispolar} especially if the B{C{points}} may\n                 enclose a pole or wrap around the earth I{longitudinally}.\n        '''\n        if _MODS.booleans.isBoolean(points):\n            return points._encloses(self.lat, self.lon, wrap=wrap)\n\n        # sum subtended angles of each edge (using n0, the\n        # normal vector to this point for sign of α)\n        def _subt(Ps, n0, w):\n            p1  = Ps[0]\n            vs1 = n0.minus(p1.toNvector())\n            for p2 in Ps.iterate(closed=True):\n                if w and not Ps.looped:\n                    p2 = _unrollon(p1, p2)\n                p1  = p2\n                vs2 = n0.minus(p2.toNvector())\n                yield vs1.angleTo(vs2, vSign=n0)  # PYCHOK false\n                vs1 = vs2\n\n        # Note, this method uses angle summation test: on a plane,\n        # angles for an enclosed point will sum to 360°, angles for\n        # an exterior point will sum to 0°.  On a sphere, enclosed\n        # point angles will sum to less than 360° (due to spherical\n        # excess), exterior point angles will be small but non-zero.\n        s = fsum(_subt(self.PointsIter(points, loop=1, wrap=wrap),\n                       self.toNvector(), wrap))  # normal vector\n        # XXX are winding number optimisations equally applicable to\n        # spherical surface?\n        return fabs(s) > PI\n\n    @deprecated_method\n    def isEnclosedBy(self, points):  # PYCHOK no cover\n        '''DEPRECATED, use method C{isenclosedBy}.'''\n        return self.isenclosedBy(points)\n\n    def iswithin(self, point1, point2, wrap=False):\n        '''Check whether this point is between two other points.\n\n           If this point is not on the great circle arc defined by\n           both points, return whether it is within the area bound\n           by perpendiculars to the great circle at each point (in\n           the same hemispere).\n\n           @arg point1: Start point of the arc (L{LatLon}).\n           @arg point2: End point of the arc (L{LatLon}).\n           @kwarg wrap: If C{True}, wrap or I{normalize} and unroll\n                        B{C{point1}} and B{C{point2}} (C{bool}).\n\n           @return: C{True} if this point is within the (great circle)\n                    arc, C{False} otherwise.\n\n           @raise TypeError: If B{C{point1}} or B{C{point2}} is not\n                  L{LatLon}.\n        '''\n        p1 = self.others(point1=point1)\n        p2 = self.others(point2=point2)\n        if wrap:\n            p1 = _Wrap.point(p1)\n            p2 = _unrollon(p1, p2, wrap=wrap)\n        n, n1, n2 = (_.toNvector() for _ in (self, p1, p2))\n\n        # corner case, null arc\n        if n1.isequalTo(n2):\n            return n.isequalTo(n1) or n.isequalTo(n2)  # PYCHOK returns\n\n        if n.dot(n1) < 0 or n.dot(n2) < 0:  # different hemisphere\n            return False  # PYCHOK returns\n\n        # get vectors representing d0=p0->p1 and d2=p2->p1 and the\n        # dot product d0⋅d2 tells us if p0 is on the p2 side of p1 or\n        # on the other side (similarly for d0=p0->p2 and d1=p1->p2\n        # and dot product d0⋅d1 and p0 on the p1 side of p2 or not)\n        return n.minus(n1).dot(n2.minus(n1)) >= 0 and \\\n               n.minus(n2).dot(n1.minus(n2)) >= 0\n\n    @deprecated_method\n    def isWithin(self, point1, point2):  # PYCHOK no cover\n        '''DEPRECATED, use method C{iswithin}.'''\n        return self.iswithin(point1, point2)\n\n    def midpointTo(self, other, height=None, fraction=_0_5, wrap=False):\n        '''Find the midpoint between this and an other point.\n\n           @arg other: The other point (L{LatLon}).\n           @kwarg height: Optional height at the midpoint, overriding\n                          the mean height (C{meter}).\n           @kwarg fraction: Midpoint location from this point (C{scalar}),\n                            may be negative or greater than 1.0.\n           @kwarg wrap: If C{True}, wrap or I{normalize} and unroll the\n                        B{C{other}} point (C{bool}).\n\n           @return: Midpoint (L{LatLon}).\n\n           @raise TypeError: The B{C{other}} point is not L{LatLon}.\n\n           @see: Methods C{intermediateTo} and C{rhumbMidpointTo}.\n        '''\n        if fraction is _0_5:\n            p = self.others(other)\n            if wrap:\n                p = _unrollon(self, p, wrap=wrap)\n            m = self.toNvector().plus(p.toNvector())\n            h = self._havg(other, f=fraction, h=height)\n            r = m.toLatLon(height=h, LatLon=self.classof)\n        else:\n            r = self.intermediateTo(other, fraction, height=height, wrap=wrap)\n        return r\n\n    def nearestOn(self, point1, point2, height=None, within=True, wrap=False):\n        '''Locate the point on the great circle arc between two points\n           closest to this point.\n\n           @arg point1: Start point of the arc (L{LatLon}).\n           @arg point2: End point of the arc (L{LatLon}).\n           @kwarg height: Optional height, overriding the mean height for\n                          the point within the arc (C{meter}), or C{None}\n                          to interpolate the height.\n           @kwarg within: If C{True}, return the closest point between both\n                          given points, otherwise the closest point\n                          elsewhere on the great circle arc (C{bool}).\n           @kwarg wrap: If C{True}, wrap or I{normalize} and unroll\n                        B{C{point1}} and B{C{point2}} (C{bool}).\n\n           @return: Closest point on the arc (L{LatLon}).\n\n           @raise NotImplementedError: Keyword argument C{B{wrap}=True}\n                                       not supported.\n\n           @raise TypeError: Invalid B{C{point1}} or B{C{point2}}.\n        '''\n        p1 = self.others(point1=point1)\n        p2 = self.others(point2=point2)\n        if wrap:\n            p1 = _Wrap.point(p1)\n            p2 = _unrollon(p1, p2, wrap=wrap)\n        p0 = self\n\n        if p0.iswithin(p1, p2) and not p1.isequalTo(p2, EPS):\n            # closer to arc than to its endpoints,\n            # find the closest point on the arc\n            gc1 = p1.toNvector().cross(p2.toNvector())\n            gc2 = p0.toNvector().cross(gc1)\n            n   = gc1.cross(gc2)\n\n        elif within:  # for backward compatibility, XXX unwrapped\n            return point1 if (self.distanceTo(point1) <\n                              self.distanceTo(point2)) else point2\n\n        else:  # handle beyond arc extent by .vector3d.nearestOn\n            n1 = p1.toNvector()\n            n2 = p2.toNvector()\n            n  = p0.toNvector().nearestOn(n1, n2, within=False)\n            if n is n1:\n                return p1  # is point1\n            elif n is n2:\n                return p2  # is point2 if not wrap\n\n        p = n.toLatLon(height=height or 0, LatLon=self.classof)\n        if _isin(height, None, False):  # interpolate height within extent\n            d =  p1.distanceTo(p2)\n            f = (p1.distanceTo(p) / d) if d > EPS0 else _0_5\n            p.height = p1._havg(p2, f=max(_0_0, min(f, _1_0)))\n        return p\n\n    # @deprecated_method\n    def nearestOn2(self, points, **closed_radius_height):  # PYCHOK no cover\n        '''DEPRECATED, use method L{sphericalNvector.LatLon.nearestOn3}.\n\n           @return: ... 2-Tuple C{(closest, distance)} of the C{closest}\n                    point (L{LatLon}) on the polygon and the C{distance}\n                    to that point from this point ...\n        '''\n        r = self.nearestOn3(points, **closed_radius_height)\n        return r.closest, r.distance\n\n    def nearestOn3(self, points, closed=False, radius=R_M, height=None, wrap=False):\n        '''Locate the point on a path or polygon (with great circle arcs\n           joining consecutive points) closest to this point.\n\n           The closest point is either on within the extent of any great\n           circle arc or the nearest of the arc's end points.\n\n           @arg points: The path or polygon points (L{LatLon}[]).\n           @kwarg closed: Optionally, close the polygon (C{bool}).\n           @kwarg radius: Mean earth radius (C{meter}) or C{None}.\n           @kwarg height: Optional height, overriding the mean height\n                          for a point within the arc (C{meter}).\n           @kwarg wrap: If C{True}, wrap or I{normalize} and unroll the\n                        B{C{points}} (C{bool}).\n\n           @return: A L{NearestOn3Tuple}C{(closest, distance, angle)} of\n                    the C{closest} point (L{LatLon}), the C{distance}\n                    between this and the C{closest} point in C{meter},\n                    same units as B{C{radius}} (or in C{radians} if\n                    C{B{radius} is None}) and the C{angle} from this to\n                    the C{closest} point in compass C{degrees360}.\n\n           @raise TypeError: Some B{C{points}} are not C{LatLon}.\n\n           @raise ValueError: No B{C{points}}.\n        '''\n        Ps = self.PointsIter(points, loop=1, wrap=wrap)\n        _d = self.distanceTo\n        _n = self.nearestOn\n\n        c = p1 = Ps[0]\n        r = _d(c, radius=None)  # radians\n        for p2 in Ps.iterate(closed=closed):\n            if wrap and not Ps.looped:\n                p2 = _unrollon(p1, p2)\n            p = _n(p1, p2, height=height)\n            d = _d(p, radius=None)  # radians\n            if d < r:\n                c, r = p, d\n            p1 = p2\n        d = r if radius is None else (Radius(radius) * r)\n        return NearestOn3Tuple(c, d, degrees360(r))\n\n    def toCartesian(self, **Cartesian_and_kwds):  # PYCHOK Cartesian=Cartesian, datum=None\n        '''Convert this point to C{Nvector}-based cartesian (ECEF) coordinates.\n\n           @kwarg Cartesian_and_kwds: Optional L{Cartesian} and L{Cartesian} keyword\n                                      arguments, like C{datum}.  Use C{B{Cartesian}=...}\n                                      to override this L{Cartesian} class or specify\n                                      C{B{Cartesian}=None}.\n\n           @return: A L{Cartesian} or if C{B{Cartesian} is None}, an L{Ecef9Tuple}C{(x, y,\n                    z, lat, lon, height, C, M, datum)} with C{C} and C{M} if available.\n\n           @raise TypeError: Invalid L{Cartesian} or other B{C{Cartesian_and_kwds}} item.\n        '''\n        kwds = _xkwds(Cartesian_and_kwds, Cartesian=Cartesian, datum=self.datum)\n        return LatLonSphericalBase.toCartesian(self, **kwds)\n\n    def toNvector(self, **Nvector_and_kwds):  # PYCHOK signature\n        '''Convert this point to C{Nvector} components, I{including height}.\n\n           @kwarg Nvector_and_kwds: Optional C{Nvector} and C{Nvector} keyword arguments.\n                                    Specify C{B{Nvector}=...} to override this C{Nvector}\n                                    class or use C{B{Nvector}=None}.\n\n           @return: An C{Nvector} or if C{B{Nvector} is None}, a L{Vector4Tuple}C{(x, y, z, h)}.\n\n           @raise TypeError: Invalid C{Nvector} or other B{C{Nvector_and_kwds}} item.\n        '''\n        return LatLonNvectorBase.toNvector(self, **_xkwds(Nvector_and_kwds, Nvector=Nvector))\n\n\nclass Nvector(NvectorBase):\n    '''An n-vector is a position representation using a (unit) vector\n       normal to the earth's surface.  Unlike lat-/longitude points,\n       n-vectors have no singularities or discontinuities.\n\n       For many applications, n-vectors are more convenient to work\n       with than other position representations like lat-/longitude,\n       earth-centred earth-fixed (ECEF) vectors, UTM coordinates, etc.\n\n       On a spherical model earth, an n-vector is equivalent to an\n       earth-centred earth-fixed (ECEF) vector.\n\n       Note commonality with L{pygeodesy.ellipsoidalNvector.Nvector}.\n    '''\n    _datum = Datums.Sphere  # default datum (L{Datum})\n\n    @property_RO\n    def sphericalNvector(self):\n        '''Get this C{Nvector}'s spherical class.\n        '''\n        return type(self)\n\n    def toCartesian(self, **Cartesian_and_kwds):  # PYCHOK Cartesian=Cartesian\n        '''Convert this n-vector to C{Nvector}-based cartesian\n           (ECEF) coordinates.\n\n           @kwarg Cartesian_and_kwds: Optional L{Cartesian} and L{Cartesian} keyword\n                                      arguments, like C{h}.  Use C{B{Cartesian}=...}\n                                      to override this L{Cartesian} class or specify\n                                      C{B{Cartesian}=None}.\n\n           @return: The cartesian point (L{Cartesian}) or if B{C{Cartesian}} is\n                    set to C{None}, an L{Ecef9Tuple}C{(x, y, z, lat, lon, height,\n                    C, M, datum)} with C{C} and C{M} if available.\n\n           @raise TypeError: Invalid B{C{Cartesian_and_kwds}} argument.\n        '''\n        kwds = _xkwds(Cartesian_and_kwds, h=self.h, Cartesian=Cartesian)\n        return NvectorBase.toCartesian(self, **kwds)  # class or .classof\n\n    def toLatLon(self, **LatLon_and_kwds):  # PYCHOK height=None, LatLon=LatLon\n        '''Convert this n-vector to an C{Nvector}-based geodetic point.\n\n           @kwarg LatLon_and_kwds: Optional L{LatLon} and L{LatLon} keyword\n                                   arguments, like C{height}.  Use C{B{LatLon}=...}\n                                   to override this L{LatLon} class or specify\n                                   C{B{LatLon}=None}.\n\n           @return: The geodetic point (L{LatLon}) or if B{C{LatLon}} is set\n                    to C{None}, an L{Ecef9Tuple}C{(x, y, z, lat, lon, height,\n                    C, M, datum)} with C{C} and C{M} if available.\n\n           @raise TypeError: Invalid B{C{LatLon_and_kwds}} argument.\n\n           @raise ValueError: Invalid B{C{height}}.\n        '''\n        kwds = _xkwds(LatLon_and_kwds, height=self.h, LatLon=LatLon)\n        return NvectorBase.toLatLon(self, **kwds)  # class or .classof\n\n    def greatCircle(self, bearing):\n        '''Compute the n-vector normal to great circle obtained by\n           heading on given (initial) bearing from this point as its\n           n-vector.\n\n           Direction of vector is such that initial bearing vector\n           b = c × p.\n\n           @arg bearing: Initial bearing (compass C{degrees360}).\n\n           @return: N-vector representing great circle (C{Nvector}).\n\n           @raise Valuerror: Polar coincidence.\n        '''\n        s, c = sincos2d(Bearing(bearing))\n\n        e = NorthPole.cross(self, raiser=_pole_)  # easting\n        n = self.cross(e, raiser=_point_)  # northing\n\n        e = e.times(c / e.length)\n        n = n.times(s / n.length)\n        return n.minus(e)\n\n\n_Nv00 = LatLon(_0_0, _0_0, name=_Nv00_)  # reference instance (L{LatLon})\n\n\ndef areaOf(points, radius=R_M, wrap=False, polar=False):\n    '''Calculate the area of a (spherical) polygon or composite (with\n       great circle arcs joining consecutive points).\n\n       @arg points: The polygon points or clips (C{LatLon}[], L{BooleanFHP}\n                    or L{BooleanGH}).\n       @kwarg radius: Mean earth radius (C{meter}) or C{None}.\n       @kwarg wrap: If C{True}, wrap or I{normalize} and unroll the B{C{points}}\n                    (C{bool}).\n       @kwarg polar: Use of C{B{polar}=True} not implemented (C{bool}).\n\n       @return: Polygon area (C{meter} I{squared}, same units as B{C{radius}},\n                or C{radians} if C{B{radius} is None}).\n\n       @raise PointsError: Insufficient number of B{C{points}}.\n\n       @raise TypeError: Some B{C{points}} are not L{LatLon}.\n\n       @see: Functions L{pygeodesy.areaOf}, L{sphericalTrigonometry.areaOf}\n             and L{ellipsoidalKarney.areaOf}.\n    '''\n    if polar:\n        notImplemented(None, polar=polar, up=2)\n\n    def _interangles(ps, w):  # like .karney._polygon\n        Ps = _Nv00.PointsIter(ps, loop=2, wrap=w)\n        # use vector to 1st point as plane normal for sign of α\n        n0 =  Ps[0].toNvector()\n\n        v2 = Ps[0]._N_vector  # XXX v2 == no?\n        p1 = Ps[1]\n        v1 = p1._N_vector\n        gc = v2.cross(v1)\n        for p2 in Ps.iterate(closed=True):\n            if w and not Ps.looped:\n                p2 = _unrollon(p1, p2)\n            p1  = p2\n            v2  = p2._N_vector\n            gc1 = v1.cross(v2)\n            v1  = v2\n            yield gc.angleTo(gc1, vSign=n0)\n            gc  = gc1\n\n    if _MODS.booleans.isBoolean(points):\n        r = points._sum2(LatLon, areaOf, radius=None, wrap=wrap)\n    else:\n        # sum interior angles: depending on whether polygon is cw or\n        # ccw, angle between edges is π−α or π+α, where α is angle\n        # between great-circle vectors; so sum α, then take n·π − |Σα|\n        # (cannot use Σ(π−|α|) as concave polygons would fail)\n        s = fsum(_interangles(points, wrap))\n        # using Girard’s theorem: A = [Σθᵢ − (n−2)·π]·R²\n        r = fabs(PI2 - fabs(s))  # == n*PI - abs(s) - (n-2)*PI\n    return r if radius is None else (Radius(radius)**2 * r)\n\n\ndef intersecant2(center, circle, point, other, **radius_exact_height_wrap):\n    '''Compute the intersections of a circle and a (great circle) line given as\n       two points or as a point and bearing.\n\n       @arg center: Center of the circle (L{LatLon}).\n       @arg circle: Radius of the circle (C{meter}, same units as the earth\n                    B{C{radius}}) or a point on the circle (L{LatLon}).\n       @arg point: A point on the (great circle) line (L{LatLon}).\n       @arg other: An other point on the (great circle) line (L{LatLon}) or\n                   the bearing at the B{C{point}} (compass C{degrees360}).\n       @kwarg radius_exact_height_wrap: Optional keyword arguments, see method\n                     L{intersecant2<pygeodesy.sphericalBase.LatLonSphericalBase.\n                     intersecant2>} for further details.\n\n       @return: 2-Tuple of the intersection points (representing a chord), each\n                an instance of the B{C{point}} class.  Both points are the same\n                instance if the (great circle) line is tangent to the circle.\n\n       @raise IntersectionError: The circle and line do not intersect.\n\n       @raise TypeError: If B{C{center}}, B{C{point}}, B{C{circle}} or B{C{other}}\n                         not L{LatLon}.\n\n       @raise UnitError: Invalid B{C{circle}}, B{C{other}}, B{C{radius}},\n                         B{C{exact}}, B{C{height}} or B{C{napieradius}}.\n    '''\n    c = _Nv00.others(center=center)\n    p = _Nv00.others(point=point)\n    try:\n        return _intersecant2(c, circle, p, other, **radius_exact_height_wrap)\n    except (TypeError, ValueError) as x:\n        raise _xError(x, center=center, circle=circle, point=point, other=other,\n                                                     **radius_exact_height_wrap)\n\n\ndef intersection(start1, end1, start2, end2, height=None, wrap=False,\n                                             **LatLon_and_kwds):\n    '''Locate an intersection point of two (great circle) lines each defined\n       by two points or by a point and an (initial) bearing.\n\n       @return: The intersection point (L{LatLon}) or if C{B{LatLon}=None},\n                a cartesian L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M,\n                datum)} with C{C} and C{M} if available.\n\n       @see: Function L{intersection2<sphericalNvector.intersection2>}\n             for further details.\n    '''\n    i, _, h = _intersect3(start1, end1, start2, end2, height, wrap)\n    kwds = _xkwds(LatLon_and_kwds, height=h, LatLon=LatLon)\n    return i.toLatLon(**kwds)\n\n\ndef intersection2(start1, end1, start2, end2, height=None, wrap=False,\n                                              **LatLon_and_kwds):\n    '''Locate both intersections of two (great circle) lines each defined\n       by two points or by a point and an (initial) bearing.\n\n       @arg start1: Start point of the first line (L{LatLon}).\n       @arg end1: End point of the first line (L{LatLon}) or the bearing at\n                  B{C{start1}} (compass C{degrees360}).\n       @arg start2: Start point of the second line (L{LatLon}).\n       @arg end2: End point of the second line (L{LatLon}) or the bearing at\n                  B{C{start2}} (compass C{degrees360}).\n       @kwarg height: Optional height at the intersection and antipodal point,\n                      overriding the mean height (C{meter}).\n       @kwarg wrap: If C{True}, wrap or I{normalize} and unroll B{C{start2}} and\n                    both B{C{end*}} points (C{bool}).\n       @kwarg LatLon_and_kwds: Optional class C{B{LatLon}=}L{LatLon} to return\n                     the intersection points and optionally, additional B{C{LatLon}}\n                     keyword arguments, ignored if C{B{LatLon} is None}.\n\n       @return: 2-Tuple C{(intersection, antipode)}, each a (B{C{LatLon}}) or if\n                C{B{LatLon}=None}, a cartesian L{Ecef9Tuple}C{(x, y, z, lat, lon,\n                height, C, M, datum)} with C{C} and C{M} if available.\n\n       @raise TypeError: If B{C{start*}} or B{C{end*}} is not L{LatLon}.\n\n       @raise ValueError: Intersection is ambiguous or infinite or the lines are\n                          parallel, coincident or null.\n\n       @see: Function L{sphericalNvector.intersection}.\n    '''\n    i, a, h = _intersect3(start1, end1, start2, end2, height, wrap)\n    kwds = _xkwds(LatLon_and_kwds, height=h, LatLon=LatLon)\n    return i.toLatLon(**kwds), a.toLatLon(**kwds)\n\n\ndef _intersect3(start1, end1, start2, end2, height, wrap):\n    '''(INTERNAL) Return the intersection and antipodal points for\n       functions C{intersection} and C{intersection2}.\n    '''\n    p1 = _Nv00.others(start1=start1)\n    p2 = _Nv00.others(start2=start2)\n    if wrap:\n        p2 = _unrollon(p1, p2, wrap=wrap)\n    # If gc1 and gc2 are great circles through start and end points\n    # (or defined by start point and bearing), then the candidate\n    # intersections are simply gc1 × gc2 and gc2 × gc1.  Most of the\n    # work is deciding the correct intersection point to select!  If\n    # bearing is given, that determines the intersection, but if both\n    # lines are defined by start/end points, take closer intersection.\n    gc1, s1, e1 = _Nv00._gc3(p1, end1, 'end1', wrap=wrap)\n    gc2, s2, e2 = _Nv00._gc3(p2, end2, 'end2', wrap=wrap)\n\n    hs = start1.height, start2.height\n    # there are two (antipodal) candidate intersection\n    # points ... we have to choose the one to return\n    i1 = gc1.cross(gc2, raiser=_lines_)\n    i2 = gc2.cross(gc1, raiser=_lines_)\n\n    # selection of intersection point depends on how\n    # lines are defined (by bearings or endpoints)\n    if e1 and e2:  # endpoint+endpoint\n        d = sumOf((s1, s2, e1, e2)).dot(i1)\n        hs += end1.height, end2.height\n    elif e1 and not e2:  # endpoint+bearing\n        # gc2 x v2 . i1 +ve means v2 bearing points to i1\n        d = gc2.cross(s2).dot(i1)\n        hs += end1.height,\n    elif e2 and not e1:  # bearing+endpoint\n        # gc1 x v1 . i1 +ve means v1 bearing points to i1\n        d = gc1.cross(s1).dot(i1)\n        hs += end2.height,\n    else:  # bearing+bearing\n        # if gc x v . i1 is +ve, initial bearing is\n        # towards i1, otherwise towards antipodal i2\n        d1 = gc1.cross(s1).dot(i1)  # +ve means p1 bearing points to i1\n        d2 = gc2.cross(s2).dot(i1)  # +ve means p2 bearing points to i1\n        if d1 > 0 and d2 > 0:\n            d = 1  # both point to i1\n        elif d1 < 0 and d2 < 0:\n            d = -1  # both point to i2\n        else:  # d1, d2 opposite signs\n            # intersection is at further-away intersection point,\n            # take opposite intersection from mid- point of v1\n            # and v2 [is this always true?] XXX changed to always\n            # get intersection p1 bearing points to, aka being\n            # located \"after\" p1 along the bearing at p1, like\n            # function .sphericalTrigonometry._intersect and\n            # .ellipsoidalBaseDI._intersect3\n            d = d1  # neg(s1.plus(s2).dot(i1))\n\n    h = fmean(hs) if height is None else height\n    return (i1, i2, h) if d > 0 else (i2, i1, h)\n\n\ndef meanOf(points, height=None, wrap=False, **LatLon_and_kwds):\n    '''Compute the I{geographic} mean of the supplied points.\n\n       @arg points: Array of points to be averaged (L{LatLon}[]).\n       @kwarg height: Optional height, overriding the mean height (C{meter}).\n       @kwarg wrap: If C{True}, wrap or I{normalize} B{C{points}} (C{bool}).\n       @kwarg LatLon_and_kwds: Optional class C{B{LatLon}=}L{LatLon} to return\n                     the mean point and optionally, additional B{C{LatLon}}\n                     keyword arguments, ignored if C{B{LatLon} is None}.\n\n       @return: Point at geographic mean and mean height (B{C{LatLon}}).\n\n       @raise PointsError: Insufficient number of B{C{points}} or some\n                           B{C{points}} are not C{LatLon}.\n    '''\n    def _N_vs(ps, w):\n        Ps = _Nv00.PointsIter(ps, wrap=w)\n        for p in Ps.iterate(closed=False):\n            yield p._N_vector\n\n    try:\n        # geographic mean\n        n = _nsumOf(_N_vs(points, wrap), height, Nvector, {})\n    except (TypeError, ValueError) as x:\n        raise PointsError(points=points, wrap=wrap, cause=x, **LatLon_and_kwds)\n    return n.toLatLon(**_xkwds(LatLon_and_kwds, LatLon=LatLon, height=n.h,\n                                                name=typename(meanOf)))\n\n\n@deprecated_function\ndef nearestOn2(point, points, **closed_radius_height):  # PYCHOK no cover\n    '''DEPRECATED, use method L{sphericalNvector.nearestOn3}.\n\n       @return: ... 2-Tuple C{(closest, distance)} of the C{closest}\n                point (L{LatLon}) on the polygon and the C{distance}\n                between the C{closest} and the given B{C{point}} ...\n    '''\n    r = nearestOn3(point, points, **closed_radius_height)\n    return r.closest, r.distance\n\n\ndef nearestOn3(point, points, closed=False, radius=R_M, height=None, wrap=False):\n    '''Locate the point on a polygon (with great circle arcs joining\n       consecutive points) closest to an other point.\n\n       If the given point is between the end points of a great circle\n       arc, the closest point is on that arc.  Otherwise, the closest\n       point is the nearest of the arc's end points.\n\n       @arg point: The other, reference point (L{LatLon}).\n       @arg points: The polygon points (L{LatLon}[]).\n       @kwarg closed: Optionally, close the polygon (C{bool}).\n       @kwarg radius: Mean earth radius (C{meter}) or C{None}.\n       @kwarg height: Optional height, overriding the mean height for\n                      a point within the (great circle) arc (C{meter}).\n       @kwarg wrap: If C{True}, wrap or I{normalize} and unroll the\n                    B{C{points}} (C{bool}).\n\n       @return: A L{NearestOn3Tuple}C{(closest, distance, angle)} of\n                the C{closest} point (L{LatLon}) on the polygon, the\n                C{distance} and the C{angle} between the C{closest}\n                and the given B{C{point}}.  The C{distance} is in\n                C{meter}, same units as B{C{radius}} or in C{radians}\n                if C{B{radius} is None}, the C{angle} is in compass\n                C{degrees360}.\n\n       @raise PointsError: Insufficient number of B{C{points}}.\n\n       @raise TypeError: Some B{C{points}} or B{C{point}} not C{LatLon}.\n    '''\n    _xinstanceof(LatLon, point=point)\n\n    return point.nearestOn3(points, closed=closed, radius=radius,\n                                    height=height, wrap=wrap)\n\n\ndef perimeterOf(points, closed=False, radius=R_M, wrap=False):\n    '''Compute the perimeter of a (spherical) polygon or composite (with\n       great circle arcs joining consecutive points).\n\n       @arg points: The polygon points (L{LatLon}[]).\n       @kwarg closed: Optionally, close the polygon (C{bool}).\n       @kwarg radius: Mean earth radius (C{meter}) or C{None}.\n       @kwarg wrap: If C{True}, wrap or I{normalize} and unroll the\n                    B{C{points}} (C{bool}).\n\n       @return: Polygon perimeter (C{meter}, same units as B{C{radius}}\n                or C{radians} if C{B{radius} is None}).\n\n       @raise PointsError: Insufficient number of B{C{points}}.\n\n       @raise TypeError: Some B{C{points}} are not L{LatLon}.\n\n       @raise ValueError: Invalid B{C{radius}} or C{B{closed}=False} with\n                          C{B{points}} a composite.\n\n       @see: Functions L{pygeodesy.perimeterOf}, L{ellipsoidalKarney.perimeterOf}\n             and L{sphericalTrigonometry.perimeterOf}.\n    '''\n    def _rads(ps, c, w):  # angular edge lengths in radians\n        Ps = _Nv00.PointsIter(ps, loop=1, wrap=w)\n        p1 =  Ps[0]\n        v1 =  p1._N_vector\n        for p2 in Ps.iterate(closed=c):\n            if w and not (c and Ps.looped):\n                p2 = _unrollon(p1, p2)\n            p1 = p2\n            v2 = p2._N_vector\n            yield v1.angleTo(v2)\n            v1 = v2\n\n    if _MODS.booleans.isBoolean(points):\n        if not closed:\n            notImplemented(None, closed=closed, points=_composite_)\n        r = points._sum2(LatLon, perimeterOf, closed=True, radius=None, wrap=wrap)\n    else:\n        r = fsum(_rads(points, closed, wrap))\n    return r if radius is None else (Radius(radius) * r)\n\n\ndef sumOf(nvectors, Vector=Nvector, h=None, **Vector_kwds):\n    '''Return the I{vectorial} sum of two or more n-vectors.\n\n       @arg nvectors: Vectors to be added (C{Nvector}[]).\n       @kwarg Vector: Optional class for the vectorial sum (C{Nvector}).\n       @kwarg h: Optional height, overriding the mean height (C{meter}).\n       @kwarg Vector_kwds: Optional, additional B{C{Vector}} keyword arguments.\n\n       @return: Vectorial sum (B{C{Vector}}).\n\n       @raise VectorError: No B{C{nvectors}}.\n    '''\n    try:\n        return _nsumOf(nvectors, h, Vector, Vector_kwds)\n    except (TypeError, ValueError) as x:\n        raise VectorError(nvectors=nvectors, Vector=Vector, cause=x)\n\n\ndef triangulate(point1, bearing1, point2, bearing2,\n                                  height=None, wrap=False,\n                                  LatLon=LatLon, **LatLon_kwds):\n    '''Locate a point given two known, reference points and the (initial)\n       bearing from those points.\n\n       @arg point1: First reference point (L{LatLon}).\n       @arg bearing1: Bearing at the first point (compass C{degrees360}).\n       @arg point2: Second reference point (L{LatLon}).\n       @arg bearing2: Bearing at the second point (compass C{degrees360}).\n       @kwarg height: Optional height at the triangulated point, overriding\n                      the mean height (C{meter}).\n       @kwarg wrap: If C{True}, wrap or I{normalize} and unroll B{C{point2}}\n                    (C{bool}).\n       @kwarg LatLon: Optional class to return the triangulated point (L{LatLon}).\n       @kwarg LatLon_kwds: Optional, additional B{C{LatLon}} keyword\n                           arguments, ignored if C{B{LatLon} is None}.\n\n       @return: Triangulated point (B{C{LatLon}}).\n\n       @raise TypeError: If B{C{point1}} or B{C{point2}} is not L{LatLon}.\n\n       @raise Valuerror: Points coincide.\n    '''\n    return _triangulate(_Nv00.others(point1=point1), bearing1,\n                        _Nv00.others(point2=point2), bearing2,\n                         height=height, wrap=wrap,\n                         LatLon=LatLon, **LatLon_kwds)\n\n\ndef trilaterate(point1, distance1, point2, distance2, point3, distance3,  # PYCHOK args\n                                   radius=R_M, height=None, useZ=False, wrap=False,\n                                   LatLon=LatLon, **LatLon_kwds):\n    '''Locate a point at given distances from three other points.\n\n       @arg point1: First point (L{LatLon}).\n       @arg distance1: Distance to the first point (C{meter}, same units\n                       as B{C{radius}}).\n       @arg point2: Second point (L{LatLon}).\n       @arg distance2: Distance to the second point (C{meter}, same units\n                       as B{C{radius}}).\n       @arg point3: Third point (L{LatLon}).\n       @arg distance3: Distance to the third point (C{meter}, same units\n                       as B{C{radius}}).\n       @kwarg radius: Mean earth radius (C{meter}).\n       @kwarg height: Optional height at the trilaterated point, overriding\n                      the IDW height (C{meter}, same units as B{C{radius}}).\n       @kwarg useZ: Include Z component iff non-NaN, non-zero (C{bool}).\n       @kwarg wrap: If C{True}, wrap or I{normalize} and unroll B{C{point2}}\n                    and B{C{point3}} (C{bool}).\n       @kwarg LatLon: Optional class to return the trilaterated point (L{LatLon}).\n       @kwarg LatLon_kwds: Optional, additional B{C{LatLon}} keyword arguments,\n                           ignored if C{B{LatLon} is None}.\n\n       @return: Trilaterated point (B{C{LatLon}}).\n\n       @raise IntersectionError: No intersection, trilateration failed.\n\n       @raise TypeError: Invalid B{C{point1}}, B{C{point2}} or B{C{point3}}.\n\n       @raise ValueError: Coincident B{C{points}} or invalid B{C{distance1}},\n                          B{C{distance2}}, B{C{distance3}} or B{C{radius}}.\n\n       @see: U{Trilateration<https://WikiPedia.org/wiki/Trilateration>}.\n    '''\n    return _trilaterate(_Nv00.others(point1=point1), distance1,\n                        _Nv00.others(point2=point2), distance2,\n                        _Nv00.others(point3=point3), distance3,\n                         radius=radius, height=height, useZ=useZ,\n                         wrap=wrap, LatLon=LatLon, **LatLon_kwds)\n\n\n__all__ += _ALL_OTHER(Cartesian, LatLon, Nvector,  # classes\n                      areaOf,  # functions\n                      intersecant2, intersection, intersection2, ispolar,\n                      meanOf,\n                      nearestOn2, nearestOn3,\n                      perimeterOf,\n                      sumOf,\n                      triangulate, trilaterate)\n\n# **) MIT License\n#\n# Copyright (C) 2016-2026 -- mrJean1 at Gmail -- All Rights Reserved.\n#\n# Permission is hereby granted, free of charge, to any person obtaining a\n# copy of this software and associated documentation files (the \"Software\"),\n# to deal in the Software without restriction, including without limitation\n# the rights to use, copy, modify, merge, publish, distribute, sublicense,\n# and/or sell copies of the Software, and to permit persons to whom the\n# Software is furnished to do so, subject to the following conditions:\n#\n# The above copyright notice and this permission notice shall be included\n# in all copies or substantial portions of the Software.\n#\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL\n# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR\n# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\n# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n# OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "pygeodesy/sphericalTrigonometry.py",
    "content": "\n# -*- coding: utf-8 -*-\n\nu'''Spherical, C{trigonometry}-based geodesy.\n\nTrigonometric classes geodetic (lat-/longitude) L{LatLon} and\ngeocentric (ECEF) L{Cartesian} and functions L{areaOf}, L{intersection},\nL{intersections2}, L{isPoleEnclosedBy}, L{meanOf}, L{nearestOn3} and\nL{perimeterOf}, I{all spherical}.\n\nPure Python implementation of geodetic (lat-/longitude) methods using\nspherical trigonometry, transcoded from JavaScript originals by\nI{(C) Chris Veness 2011-2024} published under the same MIT Licence**, see\nU{Latitude/Longitude<https://www.Movable-Type.co.UK/scripts/latlong.html>}.\n'''\n# make sure int/int division yields float quotient, see .basics\nfrom __future__ import division as _; del _  # noqa: E702 ;\n\nfrom pygeodesy.basics import copysign0, _isin, map1, signOf,  typename\nfrom pygeodesy.constants import EPS, EPS1, EPS4, PI, PI2, PI_2, PI_4, \\\n                                R_M, _0_0, _0_5, _1_0, _2_0, _90_0, \\\n                                isnear0, isnear1, isnon0\nfrom pygeodesy.datums import _ellipsoidal_datum, _mean_radius\nfrom pygeodesy.errors import _AssertionError, CrossError, crosserrors, \\\n                             _TypeError, _ValueError, IntersectionError, \\\n                             _xError, _xkwds, _xkwds_get, _xkwds_pop2\nfrom pygeodesy.fmath import favg, fdot, fdot_, fmean, hypot\nfrom pygeodesy.fsums import Fsum, fsum, fsumf_\nfrom pygeodesy.formy import antipode_, bearing_, _bearingTo2, excessAbc_, \\\n                            excessGirard_, excessLHuilier_, opposing_, _radical2, \\\n                            vincentys_\n# from pygeodesy.internals import typename  # from .basics\nfrom pygeodesy.interns import _1_, _2_, _coincident_, _composite_, _colinear_, \\\n                              _concentric_, _convex_, _end_, _infinite_, \\\n                              _invalid_, _line_, _near_, _null_, _parallel_, \\\n                              _point_, _SPACE_, _too_\nfrom pygeodesy.latlonBase import _trilaterate5\nfrom pygeodesy.lazily import _ALL_LAZY, _ALL_MODS as _MODS, _ALL_OTHER\n# from pygeodesy.nvectorBase import _N_Vector, NvectorBase,  sumOf  # _MODS\nfrom pygeodesy.namedTuples import LatLon2Tuple, LatLon3Tuple, NearestOn3Tuple, \\\n                                  Triangle7Tuple, Triangle8Tuple\nfrom pygeodesy.points import ispolar, nearestOn5 as _nearestOn5, \\\n                             Fmt as _Fmt  # XXX shadowed\nfrom pygeodesy.props import deprecated_function, deprecated_method\nfrom pygeodesy.sphericalBase import _m2radians, CartesianSphericalBase, \\\n                                    _intersecant2, LatLonSphericalBase, \\\n                                    _rads3, _radians2m\n# from pygeodesy.streprs import Fmt as _Fmt  # from .points XXX shadowed\nfrom pygeodesy.units import Bearing_, Height, _isDegrees, _isRadius, Lamd, \\\n                            Phid, Radius_, Scalar\nfrom pygeodesy.utily import acos1, asin1, atan1d, atan2, atan2d, degrees90, \\\n                            degrees180, degrees2m, m2radians, radiansPI2, \\\n                            sincos2_, tan_2, unrollPI, _unrollon, _unrollon3, \\\n                            wrap180, wrapPI, _Wrap\nfrom pygeodesy.vector3d import sumOf, Vector3d\n\nfrom math import asin, cos, degrees, fabs, radians, sin\n\n__all__ = _ALL_LAZY.sphericalTrigonometry\n__version__ = '25.08.31'\n\n_PI_EPS4 = PI - EPS4\nif _PI_EPS4 >= PI:\n    raise _AssertionError(EPS4=EPS4, PI=PI, PI_EPS4=_PI_EPS4)\n\n\nclass Cartesian(CartesianSphericalBase):\n    '''Extended to convert geocentric, L{Cartesian} points to\n       spherical, geodetic L{LatLon}.\n    '''\n\n    def toLatLon(self, **LatLon_and_kwds):  # PYCHOK LatLon=LatLon\n        '''Convert this cartesian point to a C{spherical} geodetic point.\n\n           @kwarg LatLon_and_kwds: Optional L{LatLon} and L{LatLon} keyword\n                                   arguments.  Use C{B{LatLon}=...} to override\n                                   this L{LatLon} class or specify C{B{LatLon}=None}.\n\n           @return: The geodetic point (L{LatLon}) or if C{B{LatLon} is None},\n                    an L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n                    with C{C} and C{M} if available.\n\n           @raise TypeError: Invalid B{C{LatLon_and_kwds}} argument.\n        '''\n        kwds = _xkwds(LatLon_and_kwds, LatLon=LatLon, datum=self.datum)\n        return CartesianSphericalBase.toLatLon(self, **kwds)\n\n\nclass LatLon(LatLonSphericalBase):\n    '''New point on a spherical earth model, based on trigonometry formulae.\n    '''\n\n    def _ab1_ab2_db5(self, other, wrap):\n        '''(INTERNAL) Helper for several methods.\n        '''\n        a1, b1 = self.philam\n        a2, b2 = self.others(other, up=2).philam\n        if wrap:\n            a2, b2 = _Wrap.philam(a2, b2)\n            db, b2 =  unrollPI(b1, b2, wrap=wrap)\n        else:  # unrollPI shortcut\n            db = b2 - b1\n        return a1, b1, a2, b2, db\n\n    def alongTrackDistanceTo(self, start, end, radius=R_M, wrap=False):\n        '''Compute the (signed) distance from the start to the closest\n           point on the great circle line defined by a start and an\n           end point.\n\n           That is, if a perpendicular is drawn from this point to the\n           great circle line, the along-track distance is the distance\n           from the start point to the point where the perpendicular\n           crosses the line.\n\n           @arg start: Start point of the great circle line (L{LatLon}).\n           @arg end: End point of the great circle line (L{LatLon}).\n           @kwarg radius: Mean earth radius (C{meter}) or C{None}.\n           @kwarg wrap: If C{True}, wrap or I{normalize} and unroll\n                        the B{C{start}} and B{C{end}} point (C{bool}).\n\n           @return: Distance along the great circle line (C{radians}\n                    if C{B{radius} is None} or C{meter}, same units\n                    as B{C{radius}}), positive if I{after} the\n                    B{C{start}} toward the B{C{end}} point of the\n                    line, I{negative} if before or C{0} if at the\n                    B{C{start}} point.\n\n           @raise TypeError: Invalid B{C{start}} or B{C{end}} point.\n\n           @raise ValueError: Invalid B{C{radius}}.\n        '''\n        r, x, b = self._a_x_b3(start, end, radius, wrap)\n        cx = cos(x)\n        return _0_0 if isnear0(cx) else \\\n               _radians2m(copysign0(acos1(cos(r) / cx), cos(b)), radius)\n\n    def _a_x_b3(self, start, end, radius, wrap):\n        '''(INTERNAL) Helper for .along-/crossTrackDistanceTo.\n        '''\n        s = self.others(start=start)\n        e = self.others(end=end)\n        s, e, w = _unrollon3(self, s, e, wrap)\n\n        r = Radius_(radius)\n        r = s.distanceTo(self, r, wrap=w) / r\n\n        b = radians(s.initialBearingTo(self, wrap=w)\n                  - s.initialBearingTo(e,    wrap=w))\n        x = asin(sin(r) * sin(b))\n        return r, x, -b\n\n    @deprecated_method\n    def bearingTo(self, other, wrap=False, raiser=False):  # PYCHOK no cover\n        '''DEPRECATED, use method L{initialBearingTo}.\n        '''\n        return self.initialBearingTo(other, wrap=wrap, raiser=raiser)\n\n    def crossingParallels(self, other, lat, wrap=False):\n        '''Return the pair of meridians at which a great circle defined\n           by this and an other point crosses the given latitude.\n\n           @arg other: The other point defining great circle (L{LatLon}).\n           @arg lat: Latitude at the crossing (C{degrees}).\n           @kwarg wrap: If C{True}, wrap or I{normalize} and unroll the\n                        B{C{other}} point (C{bool}).\n\n           @return: 2-Tuple C{(lon1, lon2)}, both in C{degrees180} or\n                    C{None} if the great circle doesn't reach B{C{lat}}.\n        '''\n        a1, b1, a2, b2, db = self._ab1_ab2_db5(other, wrap)\n        sa,  ca,  sa1, ca1, \\\n        sa2, ca2, sdb, cdb = sincos2_(radians(lat), a1, a2, db)\n        sa1 *= ca2 * ca\n\n        x = sa1 * sdb\n        y = sa1 * cdb - ca1 * sa2 * ca\n        z = ca1 * sdb * ca2 * sa\n\n        h = hypot(x, y)\n        if h < EPS or fabs(z) > h:  # PYCHOK no cover\n            return None  # great circle doesn't reach latitude\n\n        m = atan2(-y, x) + b1  # longitude at max latitude\n        d = acos1(z / h)  # delta longitude to intersections\n        return degrees180(m - d), degrees180(m + d)\n\n    def crossTrackDistanceTo(self, start, end, radius=R_M, wrap=False):\n        '''Compute the (signed) distance from this point to a great\n           circle from a start to an end point.\n\n           @arg start: Start point of the great circle line (L{LatLon}).\n           @arg end: End point of the great circle line (L{LatLon}).\n           @kwarg radius: Mean earth radius (C{meter}) or C{None}.\n           @kwarg wrap: If C{True}, wrap or I{normalize} and unroll\n                        the B{C{start}} and B{C{end}} point (C{bool}).\n\n           @return: Distance to the great circle (C{radians} if\n                    B{C{radius}} or C{meter}, same units as\n                    B{C{radius}}), I{negative} if to the left or\n                    I{positive} if to the right of the line.\n\n           @raise TypeError: If B{C{start}} or B{C{end}} is not L{LatLon}.\n\n           @raise ValueError: Invalid B{C{radius}}.\n        '''\n        _, x, _ = self._a_x_b3(start, end, radius, wrap)\n        return _radians2m(x, radius)\n\n    def destination(self, distance, bearing, radius=R_M, height=None):\n        '''Locate the destination from this point after having\n           travelled the given distance on a bearing from North.\n\n           @arg distance: Distance travelled (C{meter}, same units as\n                          B{C{radius}}).\n           @arg bearing: Bearing from this point (compass C{degrees360}).\n           @kwarg radius: Mean earth radius (C{meter}).\n           @kwarg height: Optional height at destination (C{meter}, same\n                          units a B{C{radius}}).\n\n           @return: Destination point (L{LatLon}).\n\n           @raise ValueError: Invalid B{C{distance}}, B{C{bearing}},\n                              B{C{radius}} or B{C{height}}.\n        '''\n        a, b =  self.philam\n        r, t = _m2radians(distance, radius, low=None), Bearing_(bearing)\n\n        a, b = _destination2(a, b, r, t)\n        h = self._heigHt(height)\n        return self.classof(degrees90(a), degrees180(b), height=h)\n\n    def distanceTo(self, other, radius=R_M, wrap=False):\n        '''Compute the (angular) distance from this to an other point.\n\n           @arg other: The other point (L{LatLon}).\n           @kwarg radius: Mean earth radius (C{meter}) or C{None}.\n           @kwarg wrap: If C{True}, wrap or I{normalize} and unroll\n                        the B{C{other}} point (C{bool}).\n\n           @return: Distance between this and the B{C{other}} point\n                    (C{meter}, same units as B{C{radius}} or\n                    C{radians} if C{B{radius} is None}).\n\n           @raise TypeError: The B{C{other}} point is not L{LatLon}.\n\n           @raise ValueError: Invalid B{C{radius}}.\n        '''\n        a1, _, a2, _, db = self._ab1_ab2_db5(other, wrap)\n        return _radians2m(vincentys_(a2, a1, db), radius)\n\n#   @Property_RO\n#   def Ecef(self):\n#       '''Get the ECEF I{class} (L{EcefVeness}), I{lazily}.\n#       '''\n#       return _MODS.ecef.EcefKarney\n\n    def greatCircle(self, bearing, Vector=Vector3d, **Vector_kwds):\n        '''Compute the vector normal to great circle obtained by heading\n           from this point on the bearing from North.\n\n           Direction of vector is such that initial bearing vector\n           b = c × n, where n is an n-vector representing this point.\n\n           @arg bearing: Bearing from this point (compass C{degrees360}).\n           @kwarg Vector: Vector class to return the great circle,\n                          overriding the default L{Vector3d}.\n           @kwarg Vector_kwds: Optional, additional keyword argunents\n                               for B{C{Vector}}.\n\n           @return: Vector representing great circle (C{Vector}).\n\n           @raise ValueError: Invalid B{C{bearing}}.\n        '''\n        a, b = self.philam\n        sa, ca, sb, cb, st, ct = sincos2_(a, b, Bearing_(bearing))\n\n        sa *= st\n        return Vector(fdot_(sb, ct, -cb, sa),\n                     -fdot_(cb, ct,  sb, sa),\n                      ca * st, **Vector_kwds)  # XXX .unit()?\n\n    def initialBearingTo(self, other, wrap=False, raiser=False):\n        '''Compute the initial bearing (forward azimuth) from this\n           to an other point.\n\n           @arg other: The other point (spherical L{LatLon}).\n           @kwarg wrap: If C{True}, wrap or I{normalize} and unroll\n                        the B{C{other}} point (C{bool}).\n           @kwarg raiser: Optionally, raise L{CrossError} (C{bool}),\n                          use C{B{raiser}=True} for behavior like\n                          C{sphericalNvector.LatLon.initialBearingTo}.\n\n           @return: Initial bearing (compass C{degrees360}).\n\n           @raise CrossError: If this and the B{C{other}} point coincide\n                              and if B{C{raiser}} and L{crosserrors\n                              <pygeodesy.crosserrors>} are both C{True}.\n\n           @raise TypeError: The B{C{other}} point is not L{LatLon}.\n        '''\n        a1, b1, a2, b2, db = self._ab1_ab2_db5(other, wrap)\n        # XXX behavior like sphericalNvector.LatLon.initialBearingTo\n        if raiser and crosserrors() and max(fabs(a2 - a1), fabs(db)) < EPS:\n            raise CrossError(_point_, self, other=other, wrap=wrap, txt=_coincident_)\n\n        return degrees(bearing_(a1, b1, a2, b2, final=False))\n\n    def intermediateTo(self, other, fraction, height=None, wrap=False):\n        '''Locate the point at given fraction between (or along) this\n           and an other point.\n\n           @arg other: The other point (L{LatLon}).\n           @arg fraction: Fraction between both points (C{scalar},\n                          0.0 at this and 1.0 at the other point).\n           @kwarg height: Optional height, overriding the intermediate\n                          height (C{meter}).\n           @kwarg wrap: If C{True}, wrap or I{normalize} and unroll the\n                        B{C{other}} point (C{bool}).\n\n           @return: Intermediate point (L{LatLon}).\n\n           @raise TypeError: The B{C{other}} point is not L{LatLon}.\n\n           @raise ValueError: Invalid B{C{fraction}} or B{C{height}}.\n\n           @see: Methods C{midpointTo} and C{rhumbMidpointTo}.\n        '''\n        p = self\n        f = Scalar(fraction=fraction)\n        if not isnear0(f):\n            p = p.others(other)\n            if wrap:\n                p = _Wrap.point(p)\n            if not isnear1(f):  # and not near0\n                a1, b1 = self.philam\n                a2, b2 = p.philam\n                db, b2 = unrollPI(b1, b2, wrap=wrap)\n                r  = vincentys_(a2, a1, db)\n                sr = sin(r)\n                if isnon0(sr):\n                    sa1, ca1, sa2, ca2, \\\n                    sb1, cb1, sb2, cb2 = sincos2_(a1, a2, b1, b2)\n\n                    t = f * r\n                    a = sin(r - t)  # / sr  superflous\n                    b = sin(    t)  # / sr  superflous\n\n                    x = fdot_(a, ca1 * cb1, b, ca2 * cb2)\n                    y = fdot_(a, ca1 * sb1, b, ca2 * sb2)\n                    z = fdot_(a, sa1,       b, sa2)\n\n                    a = atan1d(z, hypot(x, y))\n                    b = atan2d(y, x)\n\n                else:  # PYCHOK no cover\n                    a = degrees90( favg(a1, a2, f=f))  # coincident\n                    b = degrees180(favg(b1, b2, f=f))\n\n                h = self._havg(other, f=f, h=height)\n                p = self.classof(a, b, height=h)\n        return p\n\n    def intersection(self, end1, other, end2, height=None, wrap=False):\n        '''Compute the intersection point of two lines, each defined by\n           two points or a start point and a bearing from North.\n\n           @arg end1: End point of this line (L{LatLon}) or the initial\n                      bearing at this point (compass C{degrees360}).\n           @arg other: Start point of the other line (L{LatLon}).\n           @arg end2: End point of the other line (L{LatLon}) or the\n                      initial bearing at the B{C{other}} point (compass\n                      C{degrees360}).\n           @kwarg height: Optional height for intersection point,\n                          overriding the mean height (C{meter}).\n           @kwarg wrap: If C{True}, wrap or I{normalize} and unroll\n                        B{C{start2}} and both B{C{end*}} points (C{bool}).\n\n           @return: The intersection point (L{LatLon}).  An alternate\n                    intersection point might be the L{antipode} to\n                    the returned result.\n\n           @raise IntersectionError: Ambiguous or infinite intersection\n                                     or colinear, parallel or otherwise\n                                     non-intersecting lines.\n\n           @raise TypeError: If B{C{other}} is not L{LatLon} or B{C{end1}}\n                             or B{C{end2}} not C{scalar} nor L{LatLon}.\n\n           @raise ValueError: Invalid B{C{height}} or C{null} line.\n        '''\n        try:\n            s2 = self.others(other)\n            return _intersect(self, end1, s2, end2, height=height, wrap=wrap,\n                                                    LatLon=self.classof)\n        except (TypeError, ValueError) as x:\n            raise _xError(x, start1=self, end1=end1,\n                             other=other, end2=end2, wrap=wrap)\n\n    def intersections2(self, rad1, other, rad2, radius=R_M, eps=_0_0,\n                                                height=None, wrap=True):\n        '''Compute the intersection points of two circles, each defined\n           by a center point and a radius.\n\n           @arg rad1: Radius of the this circle (C{meter} or C{radians},\n                      see B{C{radius}}).\n           @arg other: Center point of the other circle (L{LatLon}).\n           @arg rad2: Radius of the other circle (C{meter} or C{radians},\n                      see B{C{radius}}).\n           @kwarg radius: Mean earth radius (C{meter} or C{None} if B{C{rad1}},\n                          B{C{rad2}} and B{C{eps}} are given in C{radians}).\n           @kwarg eps: Required overlap (C{meter} or C{radians}, see\n                       B{C{radius}}).\n           @kwarg height: Optional height for the intersection points (C{meter},\n                          conventionally) or C{None} for the I{\"radical height\"}\n                          at the I{radical line} between both centers.\n           @kwarg wrap: If C{True}, wrap or I{normalize} and unroll the\n                        B{C{other}} point (C{bool}).\n\n           @return: 2-Tuple of the intersection points, each a L{LatLon}\n                    instance.  For abutting circles, both intersection\n                    points are the same instance, aka the I{radical center}.\n\n           @raise IntersectionError: Concentric, antipodal, invalid or\n                                     non-intersecting circles.\n\n           @raise TypeError: If B{C{other}} is not L{LatLon}.\n\n           @raise ValueError: Invalid B{C{rad1}}, B{C{rad2}}, B{C{radius}},\n                              B{C{eps}} or B{C{height}}.\n        '''\n        try:\n            c2 = self.others(other)\n            return _intersects2(self, rad1, c2, rad2, radius=radius, eps=eps,\n                                                      height=height, wrap=wrap,\n                                                      LatLon=self.classof)\n        except (TypeError, ValueError) as x:\n            raise _xError(x, center=self,  rad1=rad1,\n                              other=other, rad2=rad2, wrap=wrap)\n\n    @deprecated_method\n    def isEnclosedBy(self, points):  # PYCHOK no cover\n        '''DEPRECATED, use method C{isenclosedBy}.'''\n        return self.isenclosedBy(points)\n\n    def isenclosedBy(self, points, wrap=False):\n        '''Check whether a (convex) polygon or composite encloses this point.\n\n           @arg points: The polygon points or composite (L{LatLon}[],\n                        L{BooleanFHP} or L{BooleanGH}).\n           @kwarg wrap: If C{True}, wrap or I{normalize} and unroll the\n                        B{C{points}} (C{bool}).\n\n           @return: C{True} if this point is inside the polygon or\n                    composite, C{False} otherwise.\n\n           @raise PointsError: Insufficient number of B{C{points}}.\n\n           @raise TypeError: Some B{C{points}} are not L{LatLon}.\n\n           @raise ValueError: Invalid B{C{points}}, non-convex polygon.\n\n           @see: Functions L{pygeodesy.isconvex}, L{pygeodesy.isenclosedBy}\n                 and L{pygeodesy.ispolar} especially if the B{C{points}} may\n                 enclose a pole or wrap around the earth I{longitudinally}.\n        '''\n        if _MODS.booleans.isBoolean(points):\n            return points._encloses(self.lat, self.lon, wrap=wrap)\n\n        Ps = self.PointsIter(points, loop=2, dedup=True, wrap=wrap)\n        n0 = self._N_vector\n\n        v2 = Ps[0]._N_vector\n        p1 = Ps[1]\n        v1 = p1._N_vector\n        # check whether this point on same side of all\n        # polygon edges (to the left or right depending\n        # on the anti-/clockwise polygon direction)\n        gc1 = v2.cross(v1)\n        t0  = gc1.angleTo(n0) > PI_2\n        s0  = None\n        # get great-circle vector for each edge\n        for i, p2 in Ps.enumerate(closed=True):\n            if wrap and not Ps.looped:\n                p2 = _unrollon(p1, p2)\n            p1 = p2\n            v2 = p2._N_vector\n            gc = v1.cross(v2)\n            t  = gc.angleTo(n0) > PI_2\n            if t != t0:  # different sides of edge i\n                return False  # outside\n\n            # check for convex polygon: angle between\n            # gc vectors, signed by direction of n0\n            # (otherwise the test above is not reliable)\n            s = signOf(gc1.angleTo(gc, vSign=n0))\n            if s != s0:\n                if s0 is None:\n                    s0 = s\n                else:\n                    t = _Fmt.SQUARE(points=i)\n                    raise _ValueError(t, p2, wrap=wrap, txt_not_=_convex_)\n            gc1, v1 = gc, v2\n\n        return True  # inside\n\n    def midpointTo(self, other, height=None, fraction=_0_5, wrap=False):\n        '''Find the midpoint between this and an other point.\n\n           @arg other: The other point (L{LatLon}).\n           @kwarg height: Optional height for midpoint, overriding\n                          the mean height (C{meter}).\n           @kwarg fraction: Midpoint location from this point (C{scalar}),\n                            may be negative or greater than 1.0.\n           @kwarg wrap: If C{True}, wrap or I{normalize} and unroll the\n                        B{C{other}} point (C{bool}).\n\n           @return: Midpoint (L{LatLon}).\n\n           @raise TypeError: The B{C{other}} point is not L{LatLon}.\n\n           @raise ValueError: Invalid B{C{height}}.\n\n           @see: Methods C{intermediateTo} and C{rhumbMidpointTo}.\n        '''\n        if fraction is _0_5:\n            # see <https://MathForum.org/library/drmath/view/51822.html>\n            a1, b, a2, _, db = self._ab1_ab2_db5(other, wrap)\n            sa1, ca1, sa2, ca2, sdb, cdb = sincos2_(a1, a2, db)\n\n            x = ca2 * cdb + ca1\n            y = ca2 * sdb\n\n            a = atan1d(sa1 + sa2, hypot(x, y))\n            b = degrees180(b + atan2(y, x))\n\n            h = self._havg(other, h=height)\n            r = self.classof(a, b, height=h)\n        else:\n            r = self.intermediateTo(other, fraction, height=height, wrap=wrap)\n        return r\n\n    def nearestOn(self, point1, point2, radius=R_M, **wrap_adjust_limit):\n        '''Locate the point between two other points closest to this point.\n\n           Distances are approximated by function L{pygeodesy.equirectangular4},\n           subject to the supplied B{C{options}}.\n\n           @arg point1: Start point (L{LatLon}).\n           @arg point2: End point (L{LatLon}).\n           @kwarg radius: Mean earth radius (C{meter}).\n           @kwarg wrap_adjust_limit: Optional keyword arguments for functions\n                              L{sphericalTrigonometry.nearestOn3} and\n                              L{pygeodesy.equirectangular4},\n\n           @return: Closest point on the great circle line (L{LatLon}).\n\n           @raise LimitError: Lat- and/or longitudinal delta exceeds B{C{limit}},\n                              see function L{pygeodesy.equirectangular4}.\n\n           @raise NotImplementedError: Keyword argument C{B{within}=False}\n                                       is not (yet) supported.\n\n           @raise TypeError: Invalid B{C{point1}} or B{C{point2}}.\n\n           @raise ValueError: Invalid B{C{radius}} or B{C{options}}.\n\n           @see: Functions L{pygeodesy.equirectangular4} and L{pygeodesy.nearestOn5}\n                 and method L{sphericalTrigonometry.LatLon.nearestOn3}.\n        '''\n        # remove kwarg B{C{within}} if present\n        w, kwds = _xkwds_pop2(wrap_adjust_limit, within=True)\n        if not w:\n            self._notImplemented(within=w)\n\n#       # UNTESTED - handle C{B{within}=False} and C{B{within}=True}\n#       wrap = _xkwds_get(options, wrap=False)\n#       a = self.alongTrackDistanceTo(point1, point2, radius=radius, wrap=wrap)\n#       if fabs(a) < EPS or (within and a < EPS):\n#           return point1\n#       d = point1.distanceTo(point2, radius=radius, wrap=wrap)\n#       if isnear0(d):\n#           return point1  # or point2\n#       elif fabs(d - a) < EPS or (a + EPS) > d:\n#           return point2\n#       f = a / d\n#       if within:\n#           if f > EPS1:\n#               return point2\n#           elif f < EPS:\n#               return point1\n#       return point1.intermediateTo(point2, f, wrap=wrap)\n\n        # without kwarg B{C{within}}, use backward compatible .nearestOn3\n        return self.nearestOn3([point1, point2], closed=False, radius=radius,\n                                                             **kwds)[0]\n\n    @deprecated_method\n    def nearestOn2(self, points, closed=False, radius=R_M, **options):  # PYCHOK no cover\n        '''DEPRECATED, use method L{sphericalTrigonometry.LatLon.nearestOn3}.\n\n           @return: ... 2-Tuple C{(closest, distance)} of the closest\n                    point (L{LatLon}) on the polygon and the distance\n                    to that point from this point in C{meter}, same\n                    units of B{C{radius}}.\n        '''\n        r = self.nearestOn3(points, closed=closed, radius=radius, **options)\n        return r.closest, r.distance\n\n    def nearestOn3(self, points, closed=False, radius=R_M, **wrap_adjust_limit):\n        '''Locate the point on a polygon closest to this point.\n\n           Distances are approximated by function L{pygeodesy.equirectangular4},\n           subject to the supplied B{C{options}}.\n\n           @arg points: The polygon points (L{LatLon}[]).\n           @kwarg closed: Optionally, close the polygon (C{bool}).\n           @kwarg radius: Mean earth radius (C{meter}).\n           @kwarg wrap_adjust_limit: Optional keyword arguments for function\n                              L{sphericalTrigonometry.nearestOn3} and\n                              L{pygeodesy.equirectangular4},\n\n           @return: A L{NearestOn3Tuple}C{(closest, distance, angle)} of the\n                    C{closest} point (L{LatLon}), the L{pygeodesy.equirectangular4}\n                    C{distance} between this and the C{closest} point converted to\n                    C{meter}, same units as B{C{radius}}.  The C{angle} from this\n                    to the C{closest} point is in compass C{degrees360}, like\n                    function L{pygeodesy.compassAngle}.\n\n           @raise LimitError: Lat- and/or longitudinal delta exceeds B{C{limit}},\n                              see function L{pygeodesy.equirectangular4}.\n\n           @raise PointsError: Insufficient number of B{C{points}}.\n\n           @raise TypeError: Some B{C{points}} are not C{LatLon}.\n\n           @raise ValueError: Invalid B{C{radius}} or B{C{options}}.\n\n           @see: Functions L{pygeodesy.compassAngle}, L{pygeodesy.equirectangular4}\n                 and L{pygeodesy.nearestOn5}.\n        '''\n        return nearestOn3(self, points, closed=closed, radius=radius,\n                                LatLon=self.classof, **wrap_adjust_limit)\n\n    def toCartesian(self, **Cartesian_datum_kwds):  # PYCHOK Cartesian=Cartesian, datum=None\n        '''Convert this point to C{Karney}-based cartesian (ECEF) coordinates.\n\n           @kwarg Cartesian_datum_kwds: Optional L{Cartesian}, B{C{datum}} and other\n                                        keyword arguments, ignored if C{B{Cartesian} is\n                                        None}.  Use C{B{Cartesian}=...} to override this\n                                        L{Cartesian} class or specify C{B{Cartesian}=None}.\n\n           @return: The cartesian point (L{Cartesian}) or if C{B{Cartesian} is None},\n                    an L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)} with C{C}\n                    and C{M} if available.\n\n           @raise TypeError: Invalid B{C{Cartesian_datum_kwds}} argument.\n        '''\n        kwds = _xkwds(Cartesian_datum_kwds, Cartesian=Cartesian, datum=self.datum)\n        return LatLonSphericalBase.toCartesian(self, **kwds)\n\n    def triangle7(self, otherB, otherC, radius=R_M, wrap=False):\n        '''Compute the angles, sides and area of a spherical triangle.\n\n           @arg otherB: Second triangle point (C{LatLon}).\n           @arg otherC: Third triangle point (C{LatLon}).\n           @kwarg radius: Mean earth radius, ellipsoid or datum (C{meter}, L{Ellipsoid},\n                          L{Ellipsoid2}, L{Datum} or L{a_f2Tuple}) or C{None}.\n           @kwarg wrap: If C{True}, wrap or I{normalize} and unroll points B{C{otherB}}\n                        and B{C{otherC}} (C{bool}).\n\n           @return: L{Triangle7Tuple}C{(A, a, B, b, C, c, area)} or if B{C{radius} is\n                    None}, a L{Triangle8Tuple}C{(A, a, B, b, C, c, D, E)}.\n\n           @see: Function L{triangle7} and U{Spherical trigonometry\n                 <https://WikiPedia.org/wiki/Spherical_trigonometry>}.\n        '''\n        B = self.others(otherB=otherB)\n        C = self.others(otherC=otherC)\n        B, C, _ = _unrollon3(self, B, C, wrap)\n\n        r = self.philam + B.philam + C.philam\n        t = triangle8_(*r, wrap=wrap)\n        return self._xnamed(_t7Tuple(t, radius))\n\n    def triangulate(self, bearing1, other, bearing2, **height_wrap):\n        '''Locate a point given this, an other point and a bearing from\n           North at both points.\n\n           @arg bearing1: Bearing at this point (compass C{degrees360}).\n           @arg other: The other point (C{LatLon}).\n           @arg bearing2: Bearing at the other point (compass C{degrees360}).\n           @kwarg height_wrap_tol: Optional keyword arguments C{B{height}=None},\n                         C{B{wrap}=False}, see method L{intersection}.\n\n           @return: Triangulated point (C{LatLon}).\n\n           @see: Method L{intersection} for further details.\n        '''\n        if _isDegrees(bearing1) and _isDegrees(bearing2):\n            return self.intersection(bearing1, other, bearing2, **height_wrap)\n        raise _TypeError(bearing1=bearing1, bearing2=bearing2, **height_wrap)\n\n    def trilaterate5(self, distance1, point2, distance2, point3, distance3,\n                           area=True, eps=EPS1, radius=R_M, wrap=False):\n        '''Trilaterate three points by I{area overlap} or I{perimeter intersection}\n           of three corresponding circles.\n\n           @arg distance1: Distance to this point (C{meter}, same units as B{C{radius}}).\n           @arg point2: Second center point (C{LatLon}).\n           @arg distance2: Distance to point2 (C{meter}, same units as B{C{radius}}).\n           @arg point3: Third center point (C{LatLon}).\n           @arg distance3: Distance to point3 (C{meter}, same units as B{C{radius}}).\n           @kwarg area: If C{True}, compute the area overlap, otherwise the perimeter\n                        intersection of the circles (C{bool}).\n           @kwarg eps: The required I{minimal overlap} for C{B{area}=True} or the\n                       I{intersection margin} if C{B{area}=False} (C{meter}, same\n                       units as B{C{radius}}).\n           @kwarg radius: Mean earth radius (C{meter}, conventionally).\n           @kwarg wrap: If C{True}, wrap or I{normalize} and unroll B{C{point2}} and\n                        B{C{point3}} (C{bool}).\n\n           @return: A L{Trilaterate5Tuple}C{(min, minPoint, max, maxPoint, n)} with\n                    C{min} and C{max} in C{meter}, same units as B{C{eps}}, the\n                    corresponding trilaterated points C{minPoint} and C{maxPoint}\n                    as I{spherical} C{LatLon} and C{n}, the number of trilatered\n                    points found for the given B{C{eps}}.\n\n                    If only a single trilaterated point is found, C{min I{is} max},\n                    C{minPoint I{is} maxPoint} and C{n = 1}.\n\n                    For C{B{area}=True}, C{min} and C{max} are the smallest respectively\n                    largest I{radial} overlap found.\n\n                    For C{B{area}=False}, C{min} and C{max} represent the nearest\n                    respectively farthest intersection margin.\n\n                    If C{B{area}=True} and all 3 circles are concentric, C{n=0} and\n                    C{minPoint} and C{maxPoint} are both the B{C{point#}} with the\n                    smallest B{C{distance#}} C{min} and C{max} the largest B{C{distance#}}.\n\n           @raise IntersectionError: Trilateration failed for the given B{C{eps}},\n                                     insufficient overlap for C{B{area}=True} or\n                                     no intersection or all (near-)concentric if\n                                     C{B{area}=False}.\n\n           @raise TypeError: Invalid B{C{point2}} or B{C{point3}}.\n\n           @raise ValueError: Coincident B{C{point2}} or B{C{point3}} or invalid\n                              B{C{distance1}}, B{C{distance2}}, B{C{distance3}}\n                              or B{C{radius}}.\n        '''\n        return _trilaterate5(self, distance1,\n                             self.others(point2=point2), distance2,\n                             self.others(point3=point3), distance3,\n                             area=area, radius=radius, eps=eps, wrap=wrap)\n\n\n_T00 = LatLon(0, 0, name='T00')  # reference instance (L{LatLon})\n\n\ndef areaOf(points, radius=R_M, wrap=False, polar=False):  # was wrap=True\n    '''Calculate the area of a (spherical) polygon or composite (with the points joined by\n       great circle arcs).\n\n       @arg points: The polygon points or clips (L{LatLon}[], L{BooleanFHP} or L{BooleanGH}).\n       @kwarg radius: Mean earth radius, ellipsoid or datum (C{meter}, L{Ellipsoid},\n                      L{Ellipsoid2}, L{Datum} or L{a_f2Tuple}) or C{None}.\n       @kwarg wrap: If C{True}, wrap or I{normalize} and unroll the B{C{points}} (C{bool}).\n       @kwarg polar: Use C{B{polar}=True} if the polygon encloses a pole (C{bool}), see\n                     function L{ispolar<pygeodesy.points.ispolar>} and U{area of a polygon\n                     enclosing a pole<https://GeographicLib.SourceForge.io/C++/doc/\n                     classGeographicLib_1_1GeodesicExact.html#a3d7a9155e838a09a48dc14d0c3fac525>}.\n\n       @return: Polygon area (C{meter} I{quared}, same units as B{C{radius}} or C{radians} if\n                C{B{radius} is None}).\n\n       @raise PointsError: Insufficient number of B{C{points}}.\n\n       @raise TypeError: Some B{C{points}} are not L{LatLon}.\n\n       @raise ValueError: Invalid B{C{radius}} or semi-circular polygon edge.\n\n       @note: The area is based on I{Karney}'s U{'Area of a spherical polygon'\n              <https://MathOverflow.net/questions/97711/ the-area-of-spherical-polygons>}, 3rd Answer.\n\n       @see: Functions L{pygeodesy.areaOf}, L{sphericalNvector.areaOf}, L{pygeodesy.excessKarney},\n             L{ellipsoidalExact.areaOf} and L{ellipsoidalKarney.areaOf}.\n    '''\n    if _MODS.booleans.isBoolean(points):\n        return points._sum2(LatLon, areaOf, radius=radius, wrap=wrap)\n\n    _at2, _t_2 = atan2, tan_2\n    _un, _w180 = unrollPI, wrap180\n\n    Ps = _T00.PointsIter(points, loop=1, wrap=wrap)\n    p1 = p2 =  Ps[0]\n    a1,  b1 =  p1.philam\n    ta1, z1 = _t_2(a1), None\n\n    A = Fsum()  # mean phi\n    R = Fsum()  # see L{pygeodesy.excessKarney_}\n    # ispolar: Summation of course deltas around pole is 0° rather than normally ±360°\n    # <https://blog.Element84.com/determining-if-a-spherical-polygon-contains-a-pole.html>\n    # XXX duplicate of function C{points.ispolar} to avoid copying all iterated points\n    D = Fsum()\n    for i, p2 in Ps.enumerate(closed=True):\n        a2, b2 =  p2.philam\n        db, b2 = _un(b1, b2, wrap=wrap and not Ps.looped)\n        A  +=  a2\n        ta2 = _t_2(a2)\n        tdb = _t_2(db, points=i)\n        R  += _at2(tdb * (ta1 + ta2),\n                   _1_0 + ta1 * ta2)\n        ta1, b1 = ta2, b2\n\n        if not p2.isequalTo(p1, eps=EPS):\n            z, z2 = _bearingTo2(p1, p2, wrap=wrap)\n            if z1 is not None:\n                D += _w180(z - z1)  # (z - z1 + 540) ...\n            D += _w180(z2 - z)  # (z2 - z + 540) % 360 - 180\n            p1, z1 = p2, z2\n\n    R = abs(R * _2_0)\n    if  abs(D) < _90_0 or polar:  # ispolar(points)\n        R = abs(R - PI2)\n    if radius:\n        a  =  degrees(A.fover(len(A)))  # mean lat\n        R *= _mean_radius(radius, a)**2\n    return float(R)\n\n\ndef _destination2(a, b, r, t):\n    '''(INTERNAL) Destination lat- and longitude in C{radians}.\n\n       @arg a: Latitude (C{radians}).\n       @arg b: Longitude (C{radians}).\n       @arg r: Angular distance (C{radians}).\n       @arg t: Bearing (compass C{radians}).\n\n       @return: 2-Tuple (phi, lam) of (C{radians}, C{radiansPI}).\n    '''\n    # see <https://www.EdWilliams.org/avform.htm#LL>\n    sa, ca, sr, cr, st, ct = sincos2_(a, r, t)\n    ca *= sr\n\n    a = asin1(ct * ca + cr * sa)\n    d = atan2(st * ca,  cr - sa * sin(a))\n    # note, in EdWilliams.org/avform.htm W is + and E is -\n    return a, (b + d)  # (mod(b + d + PI, PI2) - PI)\n\n\ndef _int3d2(s, end, wrap, _i_, Vector, hs):\n    # see <https://www.EdWilliams.org/intersect.htm> (5) ff\n    # and similar logic in .ellipsoidalBaseDI._intersect3\n    a1, b1 = s.philam\n\n    if _isDegrees(end):  # bearing, get pseudo-end point\n        a2, b2 = _destination2(a1, b1, PI_4, radians(end))\n    else:  # must be a point\n        s.others(end, name=_end_ + _i_)\n        hs.append(end.height)\n        a2, b2 = end.philam\n        if wrap:\n            a2, b2 = _Wrap.philam(a2, b2)\n\n    db, b2 = unrollPI(b1, b2, wrap=wrap)\n    if max(fabs(db), fabs(a2 - a1)) < EPS:\n        raise _ValueError(_SPACE_(_line_ + _i_, _null_))\n    # note, in EdWilliams.org/avform.htm W is + and E is -\n    sb21, cb21, sb12, cb12 = sincos2_(db * _0_5,\n                                    -(b1 + b2) * _0_5)\n    cb21 *= sin(a1 - a2)  # sa21\n    sb21 *= sin(a1 + a2)  # sa12\n    x = Vector(fdot_(sb12, cb21, -cb12, sb21),\n               fdot_(cb12, cb21,  sb12, sb21),\n               cos(a1) * cos(a2) * sin(db))  # ll=start\n    return x.unit(), (db, (a2 - a1))  # negated d\n\n\ndef _intdot(ds, a1, b1, a, b, wrap):\n    # compute dot product ds . (-b + b1, a - a1)\n    db, _ = unrollPI(b1, b, wrap=wrap)\n    return fdot(ds, db, a - a1)\n\n\ndef intersecant2(center, circle, point, other, **radius_exact_height_wrap):\n    '''Compute the intersections of a circle and a (great circle) line given as\n       two points or as a point and a bearing from North.\n\n       @arg center: Center of the circle (L{LatLon}).\n       @arg circle: Radius of the circle (C{meter}, same units as the earth\n                    B{C{radius}}) or a point on the circle (L{LatLon}).\n       @arg point: A point on the (great circle) line (L{LatLon}).\n       @arg other: An other point on the (great circle) line (L{LatLon}) or\n                   the bearing at the B{C{point}} (compass C{degrees360}).\n       @kwarg radius_exact_height_wrap: Optional keyword arguments, see method\n                     L{intersecant2<pygeodesy.sphericalBase.LatLonSphericalBase.\n                     intersecant2>} for further details.\n\n       @return: 2-Tuple of the intersection points (representing a chord), each\n                an instance of the B{C{point}} class.  Both points are the same\n                instance if the (great circle) line is tangent to the circle.\n\n       @raise IntersectionError: The circle and line do not intersect.\n\n       @raise TypeError: If B{C{center}}, B{C{point}}, B{C{circle}} or B{C{other}}\n                         not L{LatLon}.\n\n       @raise UnitError: Invalid B{C{circle}}, B{C{other}}, B{C{radius}},\n                         B{C{exact}}, B{C{height}} or B{C{napieradius}}.\n    '''\n    c = _T00.others(center=center)\n    p = _T00.others(point=point)\n    try:\n        return _intersecant2(c, circle, p, other, **radius_exact_height_wrap)\n    except (TypeError, ValueError) as x:\n        raise _xError(x, center=center, circle=circle, point=point, other=other,\n                                                     **radius_exact_height_wrap)\n\n\ndef _intersect(start1, end1, start2, end2, height=None, wrap=False,  # in.ellipsoidalBaseDI._intersect3\n                                           LatLon=LatLon, **LatLon_kwds):\n    # (INTERNAL) Intersect two (spherical) lines, see L{intersection}\n    # above, separated to allow callers to embellish any exceptions\n\n    s1, s2 = start1, start2\n    if wrap:\n        s2 = _Wrap.point(s2)\n    hs = [s1.height, s2.height]\n\n    a1, b1 = s1.philam\n    a2, b2 = s2.philam\n    db, b2 = unrollPI(b1, b2, wrap=wrap)\n    r12 = vincentys_(a2, a1, db)\n    if fabs(r12) < EPS:  # [nearly] coincident points\n        a, b = favg(a1, a2), favg(b1, b2)\n\n    # see <https://www.EdWilliams.org/avform.htm#Intersection>\n    elif _isDegrees(end1) and _isDegrees(end2):  # both bearings\n        sa1, ca1, sa2, ca2, sr12, cr12 = sincos2_(a1, a2, r12)\n\n        x1, x2 = (sr12 * ca1), (sr12 * ca2)\n        if isnear0(x1) or isnear0(x2):\n            raise IntersectionError(_parallel_)\n        # handle domain error for equivalent longitudes,\n        # see also functions asin_safe and acos_safe at\n        # <https://www.EdWilliams.org/avform.htm#Math>\n        t12, t13 = acos1((sa2 - sa1 * cr12) / x1), radiansPI2(end1)\n        t21, t23 = acos1((sa1 - sa2 * cr12) / x2), radiansPI2(end2)\n        if sin(db) > 0:\n            t21 = PI2 - t21\n        else:\n            t12 = PI2 - t12\n        sx1, cx1, sx2, cx2 = sincos2_(wrapPI(t13 - t12),  # angle 2-1-3\n                                      wrapPI(t21 - t23))  # angle 1-2-3)\n        if isnear0(sx1) and isnear0(sx2):\n            raise IntersectionError(_infinite_)\n        sx3 = sx1 * sx2\n# XXX   if sx3 < 0:\n# XXX       raise ValueError(_ambiguous_)\n        x3  = acos1(cr12 * sx3 - cx2 * cx1)\n        r13 = atan2(sr12 * sx3,  cx2 + cx1 * cos(x3))\n\n        a, b = _destination2(a1, b1, r13, t13)\n        # like .ellipsoidalBaseDI,_intersect3, if this intersection\n        # is \"before\" the first point, use the antipodal intersection\n        if opposing_(t13, bearing_(a1, b1, a, b, wrap=wrap)):\n            a, b = antipode_(a, b)  # PYCHOK PhiLam2Tuple\n\n    else:  # end point(s) or bearing(s)\n        _N = _MODS.nvectorBase._N_Vector\n\n        x1, d1 = _int3d2(s1, end1, wrap, _1_, _N, hs)\n        x2, d2 = _int3d2(s2, end2, wrap, _2_, _N, hs)\n        x = x1.cross(x2)\n        if x.length < EPS:  # [nearly] colinear or parallel lines\n            raise IntersectionError(_colinear_)\n        a, b = x.philam\n        # choose intersection similar to sphericalNvector\n        if not (_intdot(d1, a1, b1, a, b, wrap) *\n                _intdot(d2, a2, b2, a, b, wrap)) > 0:\n            a, b = antipode_(a, b)  # PYCHOK PhiLam2Tuple\n\n    h = fmean(hs) if height is None else Height(height)\n    return _LL3Tuple(degrees90(a), degrees180(b), h,\n                     intersection, LatLon, LatLon_kwds)\n\n\ndef intersection(start1, end1, start2, end2, height=None, wrap=False,\n                                             **LatLon_and_kwds):\n    '''Compute the intersection point of two lines, each defined by\n       two points or by a start point and a bearing from North.\n\n       @arg start1: Start point of the first line (L{LatLon}).\n       @arg end1: End point of the first line (L{LatLon}) or the bearing\n                  at the first start point (compass C{degrees360}).\n       @arg start2: Start point of the second line (L{LatLon}).\n       @arg end2: End point of the second line (L{LatLon}) or the bearing\n                  at the second start point (compass C{degrees360}).\n       @kwarg height: Optional height for the intersection point,\n                      overriding the mean height (C{meter}).\n       @kwarg wrap: If C{True}, wrap or I{normalize} and unroll B{C{start2}}\n                    and both B{C{end*}} points (C{bool}).\n       @kwarg LatLon_and_kwds: Optional class C{B{LatLon}=}L{LatLon} to use\n                     for the intersection point and optionally additional\n                     B{C{LatLon}} keyword arguments, ignored if C{B{LatLon}\n                     is None}.\n\n       @return: The intersection point as a (B{C{LatLon}}) or if C{B{LatLon}\n                is None} a L{LatLon3Tuple}C{(lat, lon, height)}.  An alternate\n                intersection point might be the L{antipode} to the returned result.\n\n       @raise IntersectionError: Ambiguous or infinite intersection or colinear,\n                                 parallel or otherwise non-intersecting lines.\n\n       @raise TypeError: A B{C{start1}}, B{C{end1}}, B{C{start2}} or B{C{end2}}\n                         point not L{LatLon}.\n\n       @raise ValueError: Invalid B{C{height}} or C{null} line.\n    '''\n    s1 = _T00.others(start1=start1)\n    s2 = _T00.others(start2=start2)\n    try:\n        return _intersect(s1, end1, s2, end2, height=height, wrap=wrap, **LatLon_and_kwds)\n    except (TypeError, ValueError) as x:\n        raise _xError(x, start1=start1, end1=end1, start2=start2, end2=end2)\n\n\ndef intersections2(center1, rad1, center2, rad2, radius=R_M, eps=_0_0,\n                                                 height=None, wrap=False,  # was=True\n                                               **LatLon_and_kwds):\n    '''Compute the intersection points of two circles each defined by a\n       center point and a radius.\n\n       @arg center1: Center of the first circle (L{LatLon}).\n       @arg rad1: Radius of the first circle (C{meter} or C{radians}, see\n                  B{C{radius}}).\n       @arg center2: Center of the second circle (L{LatLon}).\n       @arg rad2: Radius of the second circle (C{meter} or C{radians}, see\n                  B{C{radius}}).\n       @kwarg radius: Mean earth radius (C{meter} or C{None} if B{C{rad1}},\n                      B{C{rad2}} and B{C{eps}} are given in C{radians}).\n       @kwarg eps: Required overlap (C{meter} or C{radians}, see B{C{radius}}).\n       @kwarg height: Optional height for the intersection points (C{meter},\n                      conventionally) or C{None} for the I{\"radical height\"}\n                      at the I{radical line} between both centers.\n       @kwarg wrap: If C{True}, wrap or I{normalize} and unroll B{C{center2}}\n                    (C{bool}).\n       @kwarg LatLon_and_kwds: Optional class C{B{LatLon}=}L{LatLon} to use for\n                     the intersection points and optionally additional B{C{LatLon}}\n                     keyword arguments, ignored if C{B{LatLon} is None}.\n\n       @return: 2-Tuple of the intersection points, each a B{C{LatLon}}\n                instance or if C{B{LatLon} is None} a L{LatLon3Tuple}C{(lat,\n                lon, height)}.  For abutting circles, both intersection\n                points are the same instance, aka the I{radical center}.\n\n       @raise IntersectionError: Concentric, antipodal, invalid or\n                                 non-intersecting circles.\n\n       @raise TypeError: If B{C{center1}} or B{C{center2}} not L{LatLon}.\n\n       @raise ValueError: Invalid B{C{rad1}}, B{C{rad2}}, B{C{radius}},\n                          B{C{eps}} or B{C{height}}.\n\n       @note: Courtesy of U{Samuel Čavoj<https://GitHub.com/mrJean1/PyGeodesy/issues/41>}.\n\n       @see: This U{Answer<https://StackOverflow.com/questions/53324667/\n             find-intersection-coordinates-of-two-circles-on-earth/53331953>}.\n    '''\n    c1 = _T00.others(center1=center1)\n    c2 = _T00.others(center2=center2)\n    try:\n        return _intersects2(c1, rad1, c2, rad2, radius=radius, eps=eps,\n                                                height=height, wrap=wrap,\n                                              **LatLon_and_kwds)\n    except (TypeError, ValueError) as x:\n        raise _xError(x, center1=center1, rad1=rad1,\n                         center2=center2, rad2=rad2, wrap=wrap)\n\n\ndef _intersects2(c1, rad1, c2, rad2, radius=R_M, eps=_0_0,  # in .ellipsoidalBaseDI._intersects2\n                                     height=None, too_d=None, wrap=False,  # was=True\n                                     LatLon=LatLon, **LatLon_kwds):\n    # (INTERNAL) Intersect two spherical circles, see L{intersections2}\n    # above, separated to allow callers to embellish any exceptions\n\n    def _dest3(bearing, h):\n        a, b = _destination2(a1, b1, r1, bearing)\n        return _LL3Tuple(degrees90(a), degrees180(b), h,\n                         intersections2, LatLon, LatLon_kwds)\n\n    a1, b1 = c1.philam\n    a2, b2 = c2.philam\n    if wrap:\n        a2, b2 = _Wrap.philam(a2, b2)\n\n    r1, r2, f = _rads3(rad1, rad2, radius)\n    if f:  # swapped radii, swap centers\n        a1, a2 = a2, a1  # PYCHOK swap!\n        b1, b2 = b2, b1  # PYCHOK swap!\n\n    db, b2 = unrollPI(b1, b2, wrap=wrap)\n    d = vincentys_(a2, a1, db)  # radians\n    if d < max(r1 - r2, EPS):\n        raise IntersectionError(_near_(_concentric_))  # XXX ConcentricError?\n\n    r = eps if radius is None else (m2radians(\n        eps, radius=radius) if eps else _0_0)\n    if r < _0_0:\n        raise _ValueError(eps=r)\n\n    x = fsumf_(r1, r2, -d)  # overlap\n    if x > max(r, EPS):\n        sd, cd, sr1, cr1, _, cr2 = sincos2_(d, r1, r2)\n        x = sd * sr1\n        if isnear0(x):\n            raise _ValueError(_invalid_)\n        x = acos1((cr2 - cd * cr1) / x)  # 0 <= x <= PI\n\n    elif x < r:  # PYCHOK no cover\n        t = (d * radius) if too_d is None else too_d\n        raise IntersectionError(_too_(_Fmt.distant(t)))\n\n    if height is None:  # \"radical height\"\n        f = _radical2(d, r1, r2).ratio\n        h = Height(favg(c1.height, c2.height, f=f))\n    else:\n        h = Height(height)\n\n    b = bearing_(a1, b1, a2, b2, final=False, wrap=wrap)\n    if x < EPS4:  # externally ...\n        r = _dest3(b, h)\n    elif x > _PI_EPS4:  # internally ...\n        r = _dest3(b + PI, h)\n    else:\n        return _dest3(b + x, h), _dest3(b - x, h)\n    return r, r  # ... abutting circles\n\n\n@deprecated_function\ndef isPoleEnclosedBy(points, wrap=False):  # PYCHOK no cover\n    '''DEPRECATED, use function L{pygeodesy.ispolar}.\n    '''\n    return ispolar(points, wrap=wrap)\n\n\ndef _LL3Tuple(lat, lon, height, where, LatLon, LatLon_kwds):\n    '''(INTERNAL) Helper for L{intersection}, L{intersections2} and L{meanOf}.\n    '''\n    n = typename(where)\n    if LatLon is None:\n        r = LatLon3Tuple(lat, lon, height, name=n)\n    else:\n        kwds = _xkwds(LatLon_kwds, height=height, name=n)\n        r = LatLon(lat, lon, **kwds)\n    return r\n\n\ndef meanOf(points, height=None, wrap=False, LatLon=LatLon, **LatLon_kwds):\n    '''Compute the I{geographic} mean of several points.\n\n       @arg points: Points to be averaged (L{LatLon}[]).\n       @kwarg height: Optional height at mean point, overriding the mean height\n                      (C{meter}).\n       @kwarg wrap: If C{True}, wrap or I{normalize} the B{C{points}} (C{bool}).\n       @kwarg LatLon: Optional class to return the mean point (L{LatLon}) or C{None}.\n       @kwarg LatLon_kwds: Optional, additional B{C{LatLon}} keyword arguments,\n                           ignored if C{B{LatLon} is None}.\n\n       @return: The geographic mean and height (B{C{LatLon}}) or if C{B{LatLon}\n                is None}, a L{LatLon3Tuple}C{(lat, lon, height)}.\n\n       @raise TypeError: Some B{C{points}} are not L{LatLon}.\n\n       @raise ValueError: No B{C{points}} or invalid B{C{height}}.\n    '''\n    def _N_vs(ps, w):\n        Ps = _T00.PointsIter(ps, wrap=w)\n        for p in Ps.iterate(closed=False):\n            yield p._N_vector\n\n    m = _MODS.nvectorBase\n    # geographic, vectorial mean\n    n =  m.sumOf(_N_vs(points, wrap), h=height, Vector=m.NvectorBase)\n    lat, lon, h = n.latlonheight\n    return _LL3Tuple(lat, lon, h, meanOf, LatLon, LatLon_kwds)\n\n\n@deprecated_function\ndef nearestOn2(point, points, **closed_radius_LatLon_options):  # PYCHOK no cover\n    '''DEPRECATED, use function L{sphericalTrigonometry.nearestOn3}.\n\n       @return: ... 2-tuple C{(closest, distance)} of the C{closest}\n                point (L{LatLon}) on the polygon and the C{distance}\n                between the C{closest} and the given B{C{point}}.  The\n                C{closest} is a B{C{LatLon}} or a L{LatLon2Tuple}C{(lat,\n                lon)} if C{B{LatLon} is None} ...\n    '''\n    ll, d, _ = nearestOn3(point, points, **closed_radius_LatLon_options)  # PYCHOK 3-tuple\n    if _xkwds_get(closed_radius_LatLon_options, LatLon=LatLon) is None:\n        ll = LatLon2Tuple(ll.lat, ll.lon)\n    return ll, d\n\n\ndef nearestOn3(point, points, closed=False, radius=R_M, wrap=False, adjust=True,\n                                                        limit=9, **LatLon_and_kwds):\n    '''Locate the point on a path or polygon closest to a reference point.\n\n       Distances are I{approximated} using function L{equirectangular4\n       <pygeodesy.equirectangular4>}, subject to the supplied B{C{options}}.\n\n       @arg point: The reference point (L{LatLon}).\n       @arg points: The path or polygon points (L{LatLon}[]).\n       @kwarg closed: Optionally, close the polygon (C{bool}).\n       @kwarg radius: Mean earth radius (C{meter}).\n       @kwarg wrap: If C{True}, wrap or I{normalize} and unroll the\n                    B{C{points}} (C{bool}).\n       @kwarg adjust: See function L{equirectangular4<pygeodesy.equirectangular4>}\n                      (C{bool}).\n       @kwarg limit: See function L{equirectangular4<pygeodesy.equirectangular4>}\n                     (C{degrees}), default C{9 degrees} is about C{1,000 Km} (for\n                     (mean spherical earth radius L{R_KM}).\n       @kwarg LatLon_and_kwds: Optional class C{B{LatLon}=L{LatLon}} to return the\n                     closest point and optionally additional C{B{LatLon}} keyword\n                     arguments or specify C{B{LatLon}=None}.\n\n       @return: A L{NearestOn3Tuple}C{(closest, distance, angle)} with the\n                C{closest} point as B{C{LatLon}} or L{LatLon3Tuple}C{(lat,\n                lon, height)} if C{B{LatLon} is None}.  The C{distance} is\n                the L{equirectangular4<pygeodesy.equirectangular4>} distance\n                between the C{closest} and the given B{C{point}} converted to\n                C{meter}, same units as B{C{radius}}.  The C{angle} from the\n                given B{C{point}} to the C{closest} is in compass C{degrees360},\n                like function L{compassAngle<pygeodesy.compassAngle>}.  The\n                C{height} is the (interpolated) height at the C{closest} point.\n\n       @raise LimitError: Lat- and/or longitudinal delta exceeds the B{C{limit}},\n                          see function L{equirectangular4<pygeodesy.equirectangular4>}.\n\n       @raise PointsError: Insufficient number of B{C{points}}.\n\n       @raise TypeError: Some B{C{points}} are not C{LatLon}.\n\n       @raise ValueError: Invalid B{C{radius}}.\n\n       @see: Functions L{equirectangular4<pygeodesy.equirectangular4>} and\n             L{nearestOn5<pygeodesy.nearestOn5>}.\n    '''\n    t = _nearestOn5(point, points, closed=closed, wrap=wrap,\n                                   adjust=adjust, limit=limit)\n    d = degrees2m(t.distance, radius=radius)\n    h = t.height\n    n = typename(nearestOn3)\n\n    LL, kwds = _xkwds_pop2(LatLon_and_kwds, LatLon=LatLon)\n    r = LatLon3Tuple(t.lat, t.lon, h, name=n) if LL is None else \\\n                  LL(t.lat, t.lon, **_xkwds(kwds, height=h, name=n))\n    return NearestOn3Tuple(r, d, t.angle, name=n)\n\n\ndef perimeterOf(points, closed=False, radius=R_M, wrap=True):\n    '''Compute the perimeter of a (spherical) polygon or composite\n       (with great circle arcs joining the points).\n\n       @arg points: The polygon points or clips (L{LatLon}[], L{BooleanFHP}\n                    or L{BooleanGH}).\n       @kwarg closed: Optionally, close the polygon (C{bool}).\n       @kwarg radius: Mean earth radius (C{meter}) or C{None}.\n       @kwarg wrap: If C{True}, wrap or I{normalize} and unroll the\n                    B{C{points}} (C{bool}).\n\n       @return: Polygon perimeter (C{meter}, same units as B{C{radius}}\n                or C{radians} if C{B{radius} is None}).\n\n       @raise PointsError: Insufficient number of B{C{points}}.\n\n       @raise TypeError: Some B{C{points}} are not L{LatLon}.\n\n       @raise ValueError: Invalid B{C{radius}} or C{B{closed}=False} with\n                          C{B{points}} a composite.\n\n       @note: Distances are based on function L{vincentys_<pygeodesy.vincentys_>}.\n\n       @see: Functions L{perimeterOf<pygeodesy.perimeterOf>},\n             L{sphericalNvector.perimeterOf} and L{ellipsoidalKarney.perimeterOf}.\n    '''\n    def _rads(ps, c, w):  # angular edge lengths in radians\n        Ps = _T00.PointsIter(ps, loop=1, wrap=w)\n        a1, b1 = Ps[0].philam\n        for p in Ps.iterate(closed=c):\n            a2, b2 = p.philam\n            db, b2 = unrollPI(b1, b2, wrap=w and not (c and Ps.looped))\n            yield vincentys_(a2, a1, db)\n            a1, b1 = a2, b2\n\n    if _MODS.booleans.isBoolean(points):\n        if not closed:\n            raise _ValueError(closed=closed, points=_composite_)\n        r = points._sum2(LatLon, perimeterOf, closed=True, radius=radius, wrap=wrap)\n    else:\n        r = fsum(_rads(points, closed, wrap))\n    return _radians2m(r, radius)\n\n\ndef triangle7(latA, lonA, latB, lonB, latC, lonC, radius=R_M,\n                                                  excess=excessAbc_,\n                                                    wrap=False):\n    '''Compute the angles, sides, and area of a (spherical) triangle.\n\n       @arg latA: First corner latitude (C{degrees}).\n       @arg lonA: First corner longitude (C{degrees}).\n       @arg latB: Second corner latitude (C{degrees}).\n       @arg lonB: Second corner longitude (C{degrees}).\n       @arg latC: Third corner latitude (C{degrees}).\n       @arg lonC: Third corner longitude (C{degrees}).\n       @kwarg radius: Mean earth radius, ellipsoid or datum (C{meter},\n                      L{Ellipsoid}, L{Ellipsoid2}, L{Datum} or L{a_f2Tuple})\n                      or C{None}.\n       @kwarg excess: I{Spherical excess} callable (L{excessAbc_},\n                      L{excessGirard_} or L{excessLHuilier_}).\n       @kwarg wrap: If C{True}, wrap and L{unroll180<pygeodesy.unroll180>}\n                    longitudes (C{bool}).\n\n       @return: A L{Triangle7Tuple}C{(A, a, B, b, C, c, area)} with\n                spherical angles C{A}, C{B} and C{C}, angular sides\n                C{a}, C{b} and C{c} all in C{degrees} and C{area}\n                in I{square} C{meter} or same units as B{C{radius}}\n                I{squared} or if C{B{radius}=0} or C{None}, a\n                L{Triangle8Tuple}C{(A, a, B, b, C, c, D, E)} with\n                I{spherical deficit} C{D} and I{spherical excess}\n                C{E} as the C{unit area}, all in C{radians}.\n    '''\n    t = triangle8_(Phid(latA=latA), Lamd(lonA=lonA),\n                   Phid(latB=latB), Lamd(lonB=lonB),\n                   Phid(latC=latC), Lamd(lonC=lonC),\n                   excess=excess, wrap=wrap)\n    return _t7Tuple(t, radius)\n\n\ndef triangle8_(phiA, lamA, phiB, lamB, phiC, lamC, excess=excessAbc_,\n                                                     wrap=False):\n    '''Compute the angles, sides, I{spherical deficit} and I{spherical\n       excess} of a (spherical) triangle.\n\n       @arg phiA: First corner latitude (C{radians}).\n       @arg lamA: First corner longitude (C{radians}).\n       @arg phiB: Second corner latitude (C{radians}).\n       @arg lamB: Second corner longitude (C{radians}).\n       @arg phiC: Third corner latitude (C{radians}).\n       @arg lamC: Third corner longitude (C{radians}).\n       @kwarg excess: I{Spherical excess} callable (L{excessAbc_},\n                      L{excessGirard_} or L{excessLHuilier_}).\n       @kwarg wrap: If C{True}, L{unrollPI<pygeodesy.unrollPI>} the\n                    longitudinal deltas (C{bool}).\n\n       @return: A L{Triangle8Tuple}C{(A, a, B, b, C, c, D, E)} with\n                spherical angles C{A}, C{B} and C{C}, angular sides\n                C{a}, C{b} and C{c}, I{spherical deficit} C{D} and\n                I{spherical excess} C{E}, all in C{radians}.\n    '''\n    def _a_r(w, phiA, lamA, phiB, lamB, phiC, lamC):\n        d, _ = unrollPI(lamB, lamC, wrap=w)\n        a = vincentys_(phiC, phiB, d)\n        return a, (phiB, lamB, phiC, lamC, phiA, lamA)  # rotate A, B, C\n\n    def _A_r(a, sa, ca, sb, cb, sc, cc):\n        s = sb * sc\n        A = acos1((ca - cb * cc) / s) if isnon0(s) else a\n        return A, (sb, cb, sc, cc, sa, ca)  # rotate sincos2_'s\n\n    # notation: side C{a} is oposite to corner C{A}, etc.\n    a, r = _a_r(wrap, phiA, lamA, phiB, lamB, phiC, lamC)\n    b, r = _a_r(wrap, *r)\n    c, _ = _a_r(wrap, *r)\n\n    A, r = _A_r(a, *sincos2_(a, b, c))\n    B, r = _A_r(b, *r)\n    C, _ = _A_r(c, *r)\n\n    D = fsumf_(PI2, -a, -b, -c)  # deficit aka defect\n    E = excessGirard_(A, B, C)   if _isin(excess, excessGirard_,   True)  else (\n        excessLHuilier_(a, b, c) if _isin(excess, excessLHuilier_, False) else\n        excessAbc_(*max((A, b, c), (B, c, a), (C, a, b))))\n\n    return Triangle8Tuple(A, a, B, b, C, c, D, E)\n\n\ndef _t7Tuple(t, radius):\n    '''(INTERNAL) Convert a L{Triangle8Tuple} to L{Triangle7Tuple}.\n    '''\n    if radius:  # not _isin(radius, None, _0_0)\n        r = radius if _isRadius(radius) else \\\n            _ellipsoidal_datum(radius).ellipsoid.Rmean\n        A, B, C = map1(degrees, t.A, t.B, t.C)\n        t = Triangle7Tuple(A, (r * t.a),\n                           B, (r * t.b),\n                           C, (r * t.c), t.E * r**2)\n    return t\n\n\n__all__ += _ALL_OTHER(Cartesian, LatLon,  # classes\n                      areaOf,  # functions\n                      intersecant2, intersection, intersections2, ispolar,\n                      isPoleEnclosedBy,  # DEPRECATED, use ispolar\n                      meanOf,\n                      nearestOn2, nearestOn3,\n                      perimeterOf,\n                      sumOf,  # XXX == vector3d.sumOf\n                      triangle7, triangle8_)\n\n# **) MIT License\n#\n# Copyright (C) 2016-2026 -- mrJean1 at Gmail -- All Rights Reserved.\n#\n# Permission is hereby granted, free of charge, to any person obtaining a\n# copy of this software and associated documentation files (the \"Software\"),\n# to deal in the Software without restriction, including without limitation\n# the rights to use, copy, modify, merge, publish, distribute, sublicense,\n# and/or sell copies of the Software, and to permit persons to whom the\n# Software is furnished to do so, subject to the following conditions:\n#\n# The above copyright notice and this permission notice shall be included\n# in all copies or substantial portions of the Software.\n#\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL\n# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR\n# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\n# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n# OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "pygeodesy/streprs.py",
    "content": "\n# -*- coding: utf-8 -*-\n\nu'''Floating point and other formatting utilities.\n'''\n\nfrom pygeodesy.basics import isint, islistuple, isscalar, isstr, itemsorted, \\\n                            _zip, _0_0,  typename\n# from pygeodesy.constants import _0_0\nfrom pygeodesy.errors import _or, _IsnotError, _TypeError, _ValueError, \\\n                             _xkwds_get, _xkwds_item2\n# from pygeodesy.internals import typename  # from .basics\nfrom pygeodesy.interns import NN, _0_, _0to9_, MISSING, _BAR_, _COMMASPACE_, \\\n                             _DOT_, _E_, _ELLIPSIS_, _EQUAL_, _H_, _LR_PAIRS, \\\n                             _N_, _name_, _not_scalar_, _PERCENT_, _SPACE_, \\\n                             _STAR_, _UNDER_\nfrom pygeodesy.interns import _convergence_, _distant_, _e_, _exceeds_, \\\n                              _EQUALSPACED_, _f_, _F_, _g_, _limit_, \\\n                              _no_, _tolerance_  # PYCHOK used!\nfrom pygeodesy.lazily import _ALL_LAZY, _ALL_MODS as _MODS\n\nfrom math import fabs, log10 as _log10\n\n__all__ = _ALL_LAZY.streprs\n__version__ = '25.11.24'\n\n_at_        = 'at'         # PYCHOK used!\n_EN_PREC    =  6           # max MGRS/OSGR precision, 1 micrometer\n_EN_WIDE    =  5           # number of MGRS/OSGR units, log10(_100km)\n_eps_       = 'eps'        # PYCHOK used!\n_OKd_       = '._-'        # acceptable name characters\n_PAREN_g    = '(%g)'       # PYCHOK used!\n_RESIDUAL_  = 'RESIDUAL'   # PYCHOK used!\n_threshold_ = 'threshold'  # PYCHOK used!\n\n\nclass _Fmt(str):\n    '''(INTERNAL) Callable formatting.\n    '''\n    name = NN\n\n    def __call__(self, *name_value_, **name_value):\n        '''Format a C{name=value} pair or C{name, value} pair or\n           just a single C{value}.\n        '''\n        for n, v in name_value.items():\n            break\n        else:\n            n, v = name_value_[:2] if len(name_value_) > 1 else \\\n                  (NN, (name_value_ or MISSING))\n        t = str.__mod__(self, v)\n        return NN(n, t) if n else t\n\n#   def __mod__(self, arg, **unused):\n#       '''Regular C{%} operator.\n#       '''\n#       return str.__mod__(self, arg)\n\n\nclass Fstr(str):\n    '''(INTERNAL) C{float} format.\n    '''\n    name = NN\n\n    def __call__(self, flt, prec=None, ints=False):\n        '''Format the B{C{flt}} like function L{fstr}.\n        '''\n        # see also function C{fstr} if isscalar case below\n        t = str.__mod__(_pct(self), flt) if prec is None else next(\n           _streprs(prec, (flt,), self, ints, True, None))\n        return t\n\n    def __mod__(self, arg, **unused):\n        '''Regular C{%} operator.\n\n           @arg arg: A C{scalar} value to be formatted (either\n                     the C{scalar}, or a 1-tuple C{(scalar,)},\n                     or 2-tuple C{(prec, scalar)}.\n\n           @raise TypeError: Non-scalar B{C{arg}} value.\n\n           @raise ValueError: Invalid B{C{arg}}.\n        '''\n        def _error(arg):\n            n = _DOT_(typename(Fstr), self.name or self)\n            return _SPACE_(n, _PERCENT_, repr(arg))\n\n        prec = 6  # default std %f and %F\n        if islistuple(arg):\n            n = len(arg)\n            if n == 1:\n                arg = arg[0]\n            elif n == 2:\n                prec, arg = arg\n            else:\n                raise _ValueError(_error(arg))\n\n        if not isscalar(arg):\n            raise _TypeError(_error(arg))\n        return self(arg, prec=prec)  # Fstr.__call__(self, arg, prec=prec)\n\n\nclass _Sub(str):\n    '''(INTERNAL) Class list formatter.\n    '''\n    # see .ellipsoidalNvector.LatLon.deltaTo\n    def __call__(self, *Classes):\n        t = _or(*map(typename, Classes))\n        return  str.__mod__(self, t or MISSING)\n\n\nclass Fmt(object):\n    '''Formatting options.\n    '''\n    ANGLE         = _Fmt('<%s>')\n    COLON         = _Fmt(':%s')\n#   COLONSPACE    = _Fmt(': %s')  # == _COLONSPACE_(n, v)\n#   COMMASPACE    = _Fmt(', %s')  # == _COMMASPACE_(n, v)\n    convergence   = _Fmt(_convergence_(_PAREN_g))\n    CURLY         = _Fmt('{%s}')  # BRACES\n    distant       = _Fmt(_distant_('(%.3g)'))\n    DOT           = _Fmt('.%s')   # == NN(_DOT_, n)\n    e             =  Fstr(_e_)\n    E             =  Fstr(_E_)\n    EQUAL         = _Fmt(_EQUAL_(NN, '%s'))\n    EQUALg        = _Fmt(_EQUAL_(NN, '%g'))\n    EQUALSPACED   = _Fmt(_EQUALSPACED_(NN, '%s'))\n    exceeds_eps   = _Fmt(_exceeds_(_eps_, _PAREN_g))\n    exceeds_limit = _Fmt(_exceeds_(_limit_, _PAREN_g))\n    exceeds_R     = _Fmt(_exceeds_(_RESIDUAL_, _PAREN_g))\n    f             =  Fstr(_f_)\n    F             =  Fstr(_F_)\n    g             =  Fstr(_g_)\n    G             =  Fstr('G')\n    h             =  Fstr('%+.*f')  # height, .streprs.hstr\n    limit         = _Fmt(' %s limit')  # .units\n    LOPEN         = _Fmt('(%s]')  # left-open range (L, R]\n    PAREN         = _Fmt('(%s)')\n    PAREN_g       = _Fmt(_PAREN_g)\n    PARENSPACED   = _Fmt(' (%s)')\n    QUOTE2        = _Fmt('\"%s\"')\n    ROPEN         = _Fmt('[%s)')  # right-open range [L, R)\n#   SPACE         = _Fmt(' %s')   # == _SPACE_(n, v)\n    SQUARE        = _Fmt('[%s]')  # BRACKETS\n    TAG           =  ANGLE\n    TAGEND        = _Fmt('</%s>')\n    tolerance     = _Fmt(_tolerance_(_PAREN_g))\n    zone          = _Fmt('%02d')  # .epsg, .mgrs, .utmupsBase\n\n    def __init__(self):\n        for n, a in type(self).__dict__.items():\n            if isinstance(a, (Fstr, _Fmt)):\n                setattr(a, _name_, n)\n        self.__name__ = typename(type(self))\n\n    def __call__(self, obj, prec=9):\n        '''Return C{str(B{obj})} or C{repr(B{obj})}.\n        '''\n        return str(obj) if isint(obj) else next(\n              _streprs(prec, (obj,), Fmt.g, False, False, repr))\n\n    def INDEX(self, name=NN, i=None, **name_i):\n        '''Return C{\"B{name}\" if B{i} is None else \"B{name}[B{i}]\"}.\n        '''\n        if name_i:\n            name, i = _xkwds_item2(name_i)\n        return name if i is None else self.SQUARE(name, i)\n\n    def no_convergence(self, _d, *tol, **thresh):\n        '''Return C{\"no convergence (B{_d})\"}, C{\"no convergence\n           (B{_d}), tolerance (B{tol})\"} or C{\"no convergence\n           (B{_d}), threshold (B{tol})\"}.\n        '''\n        t = Fmt.convergence(fabs(_d))\n        if tol:\n            t = _COMMASPACE_(t, Fmt.tolerance(tol[0]))\n            if thresh and _xkwds_get(thresh, thresh=False):\n                t = t.replace(_tolerance_, _threshold_)\n        return _no_(t)\n\n    def repr_at(self, inst, text=NN):\n        '''Return a C{repr} string C{\"<B{text} at B{hex_id}>\"}.\n        '''\n        return self.ANGLE(_SPACE_((text or inst), _at_, hex(id(inst))))\n\nFmt = Fmt()  # PYCHOK singleton\n\n_DOTSTAR_ = Fmt.DOT(_STAR_)  # in _streprs above\n# formats %G and %g drop all trailing zeros and the\n# decimal point, making the float appear as an int\n_Gg       = (Fmt.G, Fmt.g)\n_FfEeGg   = (Fmt.F, Fmt.f, Fmt.E, Fmt.e) + _Gg  # float formats\n_Fspec_   = NN('[%[<flags>][<width>]', _DOTSTAR_, ']', _BAR_.join(_FfEeGg))  # in testStreprs\n\ndel _convergence_, _distant_, _e_, _eps_, _exceeds_, _EQUALSPACED_,\\\n    _f_, _F_, _g_, _limit_, _PAREN_g, _RESIDUAL_\n\n\ndef anstr(name, OKd=_OKd_, sub=_UNDER_):\n    '''Make a valid name of alphanumeric and OKd characters.\n\n       @arg name: The original name (C{str}).\n       @kwarg OKd: Other acceptable characters (C{str}).\n       @kwarg sub: Substitute for invalid charactes (C{str}).\n\n       @return: The modified name (C{str}).\n\n       @note: Leading and trailing whitespace characters are removed,\n              intermediate whitespace characters are coalesced and\n              substituted.\n    '''\n    s = n = str(name).strip()\n    for c in n:\n        if not (c.isalnum() or c in OKd or c in sub):\n            s = s.replace(c, _SPACE_)\n    return sub.join(s.strip().split())\n\n\ndef attrs(inst, *names, **Nones_True__pairs_kwds):  # prec=6, fmt=Fmt.F, ints=False, Nones=True, sep=_EQUAL_\n    '''Get instance attributes as I{name=value} strings, with C{float}s\n       formatted by function L{fstr}.\n\n       @arg inst: The instance (any C{type}).\n       @arg names: The attribute names, all other positional (C{str}).\n       @kwarg Nones_True__pairs_kwds: Keyword argument for function L{pairs}, except\n              C{B{Nones}=True} to in-/exclude missing or C{None}-valued attributes.\n\n       @return: A C{tuple(B{sep}.join(t) for t in zip(B{names}, reprs(values, ...)))}\n                of C{str}s.\n    '''\n    def _items(inst, names, Nones):\n        for n in names:\n            v = getattr(inst, n, None)\n            if Nones or v is not None:\n                yield n, v\n\n    def _Nones_kwds(Nones=True, **kwds):\n        return Nones, kwds\n\n    Nones, kwds = _Nones_kwds(**Nones_True__pairs_kwds)\n    return pairs(_items(inst, names, Nones), **kwds)\n\n\ndef enstr2(easting, northing, prec, *extras, **wide_dot):\n    '''Return an MGRS/OSGR easting, northing string representations.\n\n       @arg easting: Easting from false easting (C{meter}).\n       @arg northing: Northing from from false northing (C{meter}).\n       @arg prec: Precision, the number of I{decimal} digits (C{int}) or if\n                  negative, the number of I{units to drop}, like MGRS U{PRECISION\n                  <https://GeographicLib.SourceForge.io/C++/doc/GeoConvert.1.html#PRECISION>}.\n       @arg extras: Optional leading items (C{str}s).\n       @kwarg wide_dot: Optional keword argument C{B{wide}=%d} for the number of I{unit digits}\n                        (C{int}) and C{B{dot}=False} (C{bool}) to insert a decimal point.\n\n       @return: B{C{extras}} + 2-tuple C{(str(B{easting}), str(B{northing}))} or\n                + 2-tuple C{(\"\", \"\")} for C{B{prec} <= -B{wide}}.\n\n       @raise ValueError: Invalid B{C{easting}}, B{C{northing}} or B{C{prec}}.\n\n       @note: The B{C{easting}} and B{C{northing}} values are I{truncated, not rounded}.\n    '''\n    t = extras\n    try:  # like .dms.compassPoint\n        p = min(int(prec), _EN_PREC)\n        w = p + _xkwds_get(wide_dot, wide=_EN_WIDE)\n        if w > 0:\n            f  =  10**p  # truncate\n            d  = (-p) if p > 0 and _xkwds_get(wide_dot, dot=False) else 0\n            t += (_0wdot(w, int(easting  * f), d),\n                  _0wdot(w, int(northing * f), d))\n        else:  # prec <= -_EN_WIDE\n            t += (NN, NN)\n    except (TypeError, ValueError) as x:\n        raise _ValueError(easting=easting, northing=northing, prec=prec, cause=x)\n    return t\n\nif enstr2.__doc__:  # PYCHOK expected\n    enstr2.__doc__  %= (_EN_WIDE,)\n\n\ndef _enstr2m3(estr, nstr, wide=_EN_WIDE):  # in .mgrs, .osgr\n    '''(INTERNAL) Convert east- and northing C{str}s to meter and resolution.\n    '''\n    def _s2m2(s, m):  # e or n str to float meter\n        if _DOT_ in s:\n            m  = 1  # meter\n        else:\n            s += _0_ * wide\n            s  = _DOT_(s[:wide], s[wide:wide+_EN_PREC])\n        return float(s), m\n\n    e, m = _s2m2(estr, 0)\n    n, m = _s2m2(nstr, m)\n    if not m:\n        p = max(len(estr), len(nstr))  # 2 = Km, 5 = m, 7 = cm\n        m = 10**max(-_EN_PREC, wide - p)  # resolution, meter\n    return e, n, m\n\n\ndef fstr(floats, prec=6, fmt=Fmt.F, ints=False, sep=_COMMASPACE_, strepr=None, force=True):\n    '''Convert one or more floats to string, optionally stripped of trailing zero decimals.\n\n       @arg floats: Single or a list, sequence, tuple, etc. (C{scalar}s).\n       @kwarg prec: The C{float} precision, number of decimal digits (0..9).\n                    Trailing zero decimals are stripped if B{C{prec}} is\n                    positive, but kept for negative B{C{prec}} values.  In\n                    addition, trailing decimal zeros are stripped for U{alternate,\n                    form '#'<https://docs.Python.org/3/library/stdtypes.html\n                    #printf-style-string-formatting>}.\n       @kwarg fmt: Optional C{float} format (C{letter}).\n       @kwarg ints: Optionally, remove the decimal dot for C{int} values (C{bool}).\n       @kwarg sep: Separator joining the B{C{floats}} (C{str}).\n       @kwarg strepr: Optional callable to format non-C{floats} (typically\n                      C{repr}, C{str}) or C{None} to raise a TypeError and used\n                      only if C{B{force} is not True}.\n       @kwarg force: If C{True}, format all B{C{floats}} using B{C{fmt}},\n                     otherwise use B{C{strepr}} for non-C{floats} (C{bool}).\n\n       @return: The C{sep.join(strs(floats, ...)} joined (C{str}) or single\n                C{strs((floats,), ...)} (C{str}) if B{C{floats}} is C{scalar}.\n    '''\n    if isscalar(floats):  # see Fstr.__call__ above\n        t =  next(_streprs(prec, (floats,), fmt, ints, force, strepr))\n    else:\n        t = _streprs(prec, floats, fmt, ints, force, strepr)\n        t =  sep.join(t) if sep else tuple(t)\n    return t\n\n\ndef _fstrENH2(inst, prec, m, fmt=Fmt.F):  # in .css, .lcc, .utmupsBase\n    # (INTERNAL) For C{Css.} and C{Lcc.} C{toRepr} and C{toStr} and C{UtmUpsBase._toStr}.\n    t = inst.easting, inst.northing\n    t = tuple(_streprs(prec, t, fmt, False, True, None))\n    T = _E_, _N_\n    if m is not None and fabs(inst.height):  # fabs(self.height) > EPS\n        t +=  hstr(inst.height, prec=-2, m=m),\n        T += _H_,\n    return t, T\n\n\ndef _fstrLL0(inst, prec, toRepr):  # in .azimuthal, .css\n    # (INTERNAL) For C{_AlbersBase.}, C{_AzimuthalBase.} and C{CassiniSoldner.}\n    t = tuple(_streprs(prec, inst.latlon0, Fmt.F, False, True, None))\n    if toRepr:\n        n = inst.name\n        if n:\n            t += Fmt.EQUAL(_name_, repr(n)),\n        t = Fmt.PAREN(inst.classname, _COMMASPACE_.join(t))\n    return t\n\n\ndef fstrzs(efstr, ap1z=False):\n    '''Strip trailing zero decimals from a C{float} string.\n\n       @arg efstr: Float with or without exponent (C{str}).\n       @kwarg ap1z: Append the decimal point and one zero decimal\n                    if the B{C{efstr}} is all digits (C{bool}).\n\n       @return: Float (C{str}).\n    '''\n    s = efstr.find(_DOT_)\n    if s >= 0:\n        e = efstr.rfind(Fmt.e)\n        if e < 0:\n            e = efstr.rfind(Fmt.E)\n            if e < 0:\n                e = len(efstr)\n        s += 2  # keep 1st _DOT_ + _0_\n        if s < e and efstr[e-1] == _0_:\n            efstr = NN(efstr[:s], efstr[s:e].rstrip(_0_), efstr[e:])\n\n    elif ap1z:\n        # %.G and %.g formats may drop the decimal\n        # point and all trailing zeros, ...\n        if efstr.isdigit():\n            efstr += _DOT_ + _0_  # ... append or ...\n        else:  # ... insert one dot and zero\n            e = efstr.rfind(Fmt.e)\n            if e < 0:\n                e = efstr.rfind(Fmt.E)\n            if e > 0:\n                efstr = NN(efstr[:e], _DOT_, _0_, efstr[e:])\n\n    return efstr\n\n\ndef hstr(height, prec=2, fmt=Fmt.h, ints=False, m=NN):\n    '''Return a string for the height value.\n\n       @arg height: Height value (C{float}).\n       @kwarg prec: The C{float} precision, number of decimal digits (0..9).\n                    Trailing zero decimals are stripped if B{C{prec}} is\n                    positive, but kept for negative B{C{prec}} values.\n       @kwarg fmt: Optional C{float} format (C{letter}).\n       @kwarg ints: Optionally, remove the decimal dot for C{int} values (C{bool}).\n       @kwarg m: Optional unit of the height (C{str}).\n    '''\n    h = next(_streprs(prec, (height,), fmt, ints, True, None))\n    return NN(h, str(m)) if m else h\n\n\ndef instr(inst, *args, **kwds):\n    '''Return the string representation of an instantiation.\n\n       @arg inst: The instance (any C{type}).\n       @arg args: Optional positional arguments.\n       @kwarg kwds: Optional keyword arguments.\n\n       @return: Representation (C{str}).\n    '''\n    return unstr(_MODS.named.classname(inst), *args, **kwds)\n\n\ndef lrstrip(txt, lrpairs=_LR_PAIRS):\n    '''Left- I{and} right-strip parentheses, brackets, etc. from a string.\n\n       @arg txt: String to be stripped (C{str}).\n       @kwarg lrpairs: Parentheses, etc. to remove (C{dict} of one or several\n                       C{(Left, Right)} pairs).\n\n       @return: Stripped B{C{txt}} (C{str}).\n    '''\n    _e, _s, _n = str.endswith, str.startswith, len\n    while _n(txt) > 2:\n        for L, R in lrpairs.items():\n            if _e(txt, R) and _s(txt, L):\n                txt = txt[_n(L):-_n(R)]\n                break  # restart\n        else:\n            return txt\n\n\ndef pairs(items, prec=6, fmt=Fmt.F, ints=False, sep=_EQUAL_):\n    '''Convert items to I{name=value} strings, with C{float}s handled like L{fstr}.\n\n       @arg items: Name-value pairs (C{dict} or 2-{tuple}s of any C{type}s).\n       @kwarg prec: The C{float} precision, number of decimal digits (0..9).\n                    Trailing zero decimals are stripped if B{C{prec}} is\n                    positive, but kept for negative B{C{prec}} values.\n       @kwarg fmt: Optional C{float} format (C{letter}).\n       @kwarg ints: Optionally, remove the decimal dot for C{int} values (C{bool}).\n       @kwarg sep: Separator joining I{names} and I{values} (C{str}).\n\n       @return: A C{tuple(B{sep}.join(t) for t in B{items}))} of C{str}s.\n    '''\n    try:\n        if isinstance(items, dict):\n            items = itemsorted(items)\n        elif not islistuple(items):\n            items = tuple(items)\n        # can't unzip empty items tuple, list, etc.\n        n, v = _zip(*items) if items else ((), ())  # strict=True\n    except (TypeError, ValueError):\n        raise _IsnotError(dict, '2-tuples', items=items)\n    v = _streprs(prec, v, fmt, ints, False, repr)\n    return tuple(sep.join(t) for t in _zip(map(str, n), v))  # strict=True\n\n\ndef _pct(fmt):\n    '''(INTERNAL) Prefix C{%} if needed.\n    '''\n    return fmt if _PERCENT_ in fmt else NN(_PERCENT_, fmt)\n\n\ndef reprs(objs, prec=6, fmt=Fmt.F, ints=False):\n    '''Convert objects to C{repr} strings, with C{float}s handled like L{fstr}.\n\n       @arg objs: List, sequence, tuple, etc. (any C{type}s).\n       @kwarg prec: The C{float} precision, number of decimal digits (0..9).\n                    Trailing zero decimals are stripped if B{C{prec}} is\n                    positive, but kept for negative B{C{prec}} values.\n       @kwarg fmt: Optional C{float} format (C{letter}).\n       @kwarg ints: Optionally, remove the decimal dot for C{int} values (C{bool}).\n\n       @return: A C{tuple(map(fstr|repr, objs))} of C{str}s.\n    '''\n    return tuple(_streprs(prec, objs, fmt, ints, False, repr)) if objs else ()\n\n\ndef _resolution10(resolution, Error=ValueError):  # in .mgrs, .osgr\n    '''(INTERNAL) Validate C{resolution} in C{meter}.\n    '''\n    try:\n        r = int(_log10(resolution))\n        if _EN_WIDE < r or r < -_EN_PREC:\n            raise ValueError\n    except (ValueError, TypeError):\n        raise Error(resolution=resolution)\n    return _MODS.units.Meter(resolution=10**r)\n\n\ndef _streprs(prec, objs, fmt, ints, force, strepr):\n    '''(INTERNAL) Helper for C{fstr}, C{pairs}, C{reprs} and C{strs}\n    '''\n    # <https://docs.Python.org/3/library/stdtypes.html#printf-style-string-formatting>\n    if fmt in _FfEeGg:\n        fGg = fmt in _Gg\n        fmt = NN(_PERCENT_, _DOT_, abs(prec), fmt)\n\n    elif fmt.startswith(_PERCENT_):\n        fGg = False\n        try:  # to make sure fmt is valid\n            f = fmt.replace(_DOTSTAR_, Fmt.DOT(abs(prec)))\n            _ = f % (_0_0,)\n        except (TypeError, ValueError):\n            raise _ValueError(fmt=fmt, txt_not_=repr(_DOTSTAR_))\n        fmt = f\n\n    else:\n        raise _ValueError(fmt=fmt, txt_not_=repr(_Fspec_))\n\n    for i, o in enumerate(objs):\n        if force or isinstance(o, float):\n            t = fmt % (float(o),)\n            if ints and t.rstrip(_0to9_ if isint(o, both=True) else\n                                 _0_).endswith(_DOT_):\n                t = t.split(_DOT_)[0]\n            elif prec > 1:\n                t = fstrzs(t, ap1z=fGg)\n        elif strepr:\n            t = strepr(o)\n        else:\n            t = Fmt.PARENSPACED(Fmt.SQUARE(objs=i), o)\n            raise TypeError(_SPACE_(t, _not_scalar_))\n        yield t\n\n\ndef strs(objs, prec=6, fmt=Fmt.F, ints=False):\n    '''Convert objects to C{str} strings, with C{float}s handled like L{fstr}.\n\n       @arg objs: List, sequence, tuple, etc. (any C{type}s).\n       @kwarg prec: The C{float} precision, number of decimal digits (0..9).\n                    Trailing zero decimals are stripped if B{C{prec}} is\n                    positive, but kept for negative B{C{prec}} values.\n       @kwarg fmt: Optional C{float} format (C{letter}).\n       @kwarg ints: Optionally, remove the decimal dot for C{int} values (C{bool}).\n\n       @return: A C{tuple(map(fstr|str, objs))} of C{str}s.\n    '''\n    return tuple(_streprs(prec, objs, fmt, ints, False, str)) if objs else ()\n\n\ndef unstr(where, *args, **kwds_):\n    '''Return the string representation of an invokation.\n\n       @arg where: Class, function, method (C{type}) or name (C{str}).\n       @arg args: Optional positional arguments.\n       @kwarg kwds_: Optional keyword arguments, except C{B{_Cdot}=None},\n                     C{B{_ELLIPSIS}=False}, C{B{_fmt}=Fmt.g} and C{B{_prec}=6}.\n\n       @return: Representation (C{str}).\n    '''\n    def _C_e_fmt_prec_kwds(_Cdot=None, _ELLIPSIS=0, _fmt=Fmt.g, _prec=6, **kwds):\n        return _Cdot, _ELLIPSIS, dict(fmt=_fmt, prec=_prec), kwds\n\n    C, e, fmt_prec, kwds = _C_e_fmt_prec_kwds(**kwds_)\n    if e and len(args) > (e + 1):\n        t  =  reprs(args[:e], **fmt_prec)\n        t += _ELLIPSIS_,\n        t +=  reprs(args[-1:], **fmt_prec)\n    else:\n        t  =  reprs(args, **fmt_prec) if args else ()\n    if kwds:\n        t += pairs(itemsorted(kwds), **fmt_prec)\n    n = where if isstr(where) else typename(where)  # _NN_\n    if C and hasattr(C, n):\n        try:  # bound method of class C?\n            where = where.__func__\n        except AttributeError:\n            pass  # method of C?\n        if getattr(C, n, None) is where:\n            n = _DOT_(typename(C), n)\n    return Fmt.PAREN(n, _COMMASPACE_.join(t))\n\n\ndef _0wd(*w_i):  # in .osgr, .wgrs\n    '''(INTERNAL) Int formatter'.\n    '''\n    return '%0*d' % w_i\n\n\ndef _0wdot(w, f, dot=0):\n    '''(INTERNAL) Int and Float formatter'.\n    '''\n    s = _0wd(w, int(f))\n    if dot:\n        s = _DOT_(s[:dot], s[dot:])\n    return s\n\n\ndef _0wpF(*w_p_f):  # in .dms, .osgr\n    '''(INTERNAL) Float deg, min, sec formatter'.\n    '''\n    return '%0*.*f' % w_p_f  # XXX was F\n\n\ndef _xzipairs(names, values, sep=_COMMASPACE_, fmt=NN, pair_fmt=Fmt.COLON):\n    '''(INTERNAL) Zip C{names} and C{values} into a C{str}, joined and bracketed.\n    '''\n    try:\n        t = sep.join(pair_fmt(*t) for t in _zip(names, values))  # strict=True\n    except Exception as x:\n        raise _ValueError(names=names, values=values, cause=x)\n    return (fmt % (t,)) if fmt else t  # enc\n\n\n# **) MIT License\n#\n# Copyright (C) 2016-2026 -- mrJean1 at Gmail -- All Rights Reserved.\n#\n# Permission is hereby granted, free of charge, to any person obtaining a\n# copy of this software and associated documentation files (the \"Software\"),\n# to deal in the Software without restriction, including without limitation\n# the rights to use, copy, modify, merge, publish, distribute, sublicense,\n# and/or sell copies of the Software, and to permit persons to whom the\n# Software is furnished to do so, subject to the following conditions:\n#\n# The above copyright notice and this permission notice shall be included\n# in all copies or substantial portions of the Software.\n#\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL\n# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR\n# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\n# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n# OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "pygeodesy/trf.py",
    "content": "\n# -*- coding: utf-8 -*-\n\nu'''I{Veness}' Terrestrial Reference Frames (TRF), classes L{RefFrame}, registry L{RefFrames} and L{TRFError}.\n\nTranscoded from I{Chris Veness'} (C) 2006-2024 JavaScript originals U{latlon-ellipsoidal-referenceframe.js\n<https://GitHub.com/ChrisVeness/geodesy/blob/master/latlon-ellipsoidal-referenceframe.js>} and\nU{latlon-ellipsoidal-referenceframe-txparams.js\n<https://GitHub.com/ChrisVeness/geodesy/blob/master/latlon-ellipsoidal-referenceframe-txparams.js>}.\n\nFollowing is a copy of the comments in I{Veness}' U{latlon-ellipsoidal-referenceframe.js\n<https://GitHub.com/ChrisVeness/geodesy/blob/master/latlon-ellipsoidal-referenceframe.js>}.\n\nModern geodetic reference frames: a latitude/longitude point defines a geographic location on,\nabove or below the earth’s surface, measured in degrees from the equator and the U{International\nReference Meridian<https://WikiPedia.org/wiki/IERS_Reference_Meridian>} (IRM) and metres above\nthe ellipsoid within a given I{Terrestrial Reference Frame} at a given I{epoch}.\n\nThis is scratching the surface of complexities involved in high precision geodesy, but may\nbe of interest and/or value to those with less demanding requirements.  More information U{here\n<https://www.Movable-Type.co.UK/scripts/geodesy-library.html>} and U{here\n<https://www.Movable-Type.co.UK/scripts/geodesy-library.html#latlon-ellipsoidal-referenceframe>}.\n\nNote that I{ITRF solutions} do not directly use an ellipsoid, but are specified by Cartesian\ncoordinates.  The GRS80 ellipsoid is recommended for transformations to geographical coordinates.\n\nNote WGS84(G730/G873/G1150) are coincident with ITRF at 10-centimetre level, see also U{here\n<ftp://ITRF.ENSG.IGN.Fr/pub/itrf/WGS84.TXT>}.  WGS84(G1674) and ITRF20014 / ITRF2008 I{\"are likely\nto agree at the centimeter level\"}, see also U{QPS/Qinsy<https://Confluence.QPS.NL/qinsy/\nen/how-to-deal-with-etrs89-datum-and-time-dependent-transformation-parameters-45353274.html>}.\n\n@var RefFrames.ETRF2000: RefFrame(name='ETRF2000', epoch=2005, datum=Datums.GRS80) .Xforms=(0, -14)\n@var RefFrames.ETRF2005: RefFrame(name='ETRF2005', epoch=2005, datum=Datums.GRS80) .Xforms=(0, -1)\n@var RefFrames.ETRF2008: RefFrame(name='ETRF2008', epoch=2008, datum=Datums.GRS80) .Xforms=(0, 0)\n@var RefFrames.ETRF2014: RefFrame(name='ETRF2014', epoch=2014, datum=Datums.GRS80) .Xforms=(0, -14)\n@var RefFrames.ETRF2020: RefFrame(name='ETRF2020', epoch=2020, datum=Datums.GRS80) .Xforms=(0, -14)\n@var RefFrames.ETRF88: RefFrame(name='ETRF88', epoch=1988, datum=Datums.GRS80) .Xforms=(0, 0)\n@var RefFrames.ETRF89: RefFrame(name='ETRF89', epoch=1989, datum=Datums.GRS80) .Xforms=(0, -1)\n@var RefFrames.ETRF90: RefFrame(name='ETRF90', epoch=1990, datum=Datums.GRS80) .Xforms=(0, -1)\n@var RefFrames.ETRF91: RefFrame(name='ETRF91', epoch=1991, datum=Datums.GRS80) .Xforms=(0, -1)\n@var RefFrames.ETRF92: RefFrame(name='ETRF92', epoch=1992, datum=Datums.GRS80) .Xforms=(0, -1)\n@var RefFrames.ETRF93: RefFrame(name='ETRF93', epoch=1993, datum=Datums.GRS80) .Xforms=(0, -1)\n@var RefFrames.ETRF94: RefFrame(name='ETRF94', epoch=1994, datum=Datums.GRS80) .Xforms=(0, -1)\n@var RefFrames.ETRF96: RefFrame(name='ETRF96', epoch=1996, datum=Datums.GRS80) .Xforms=(0, -1)\n@var RefFrames.ETRF97: RefFrame(name='ETRF97', epoch=1997, datum=Datums.GRS80) .Xforms=(0, -1)\n@var RefFrames.GDA2020: RefFrame(name='GDA2020', epoch=2020, datum=Datums.GRS80) .Xforms=(0, -4)\n@var RefFrames.GDA94: RefFrame(name='GDA94', epoch=1994, datum=Datums.GRS80) .Xforms=(0, -3)\n@var RefFrames.ITRF2000: RefFrame(name='ITRF2000', epoch=1997, datum=Datums.GRS80) .Xforms=(15, -5)\n@var RefFrames.ITRF2005: RefFrame(name='ITRF2005', epoch=2000, datum=Datums.GRS80) .Xforms=(8, -3)\n@var RefFrames.ITRF2008: RefFrame(name='ITRF2008', epoch=2005, datum=Datums.GRS80) .Xforms=(17, -2)\n@var RefFrames.ITRF2014: RefFrame(name='ITRF2014', epoch=2010, datum=Datums.GRS80) .Xforms=(16, -1)\n@var RefFrames.ITRF2020: RefFrame(name='ITRF2020', epoch=2015, datum=Datums.GRS80) .Xforms=(16, 0)\n@var RefFrames.ITRF88: RefFrame(name='ITRF88', epoch=1988, datum=Datums.GRS80) .Xforms=(3, -4)\n@var RefFrames.ITRF89: RefFrame(name='ITRF89', epoch=1989, datum=Datums.GRS80) .Xforms=(4, -4)\n@var RefFrames.ITRF90: RefFrame(name='ITRF90', epoch=1988, datum=Datums.GRS80) .Xforms=(6, -4)\n@var RefFrames.ITRF91: RefFrame(name='ITRF91', epoch=1988, datum=Datums.GRS80) .Xforms=(4, -4)\n@var RefFrames.ITRF92: RefFrame(name='ITRF92', epoch=1988, datum=Datums.GRS80) .Xforms=(4, -4)\n@var RefFrames.ITRF93: RefFrame(name='ITRF93', epoch=1988, datum=Datums.GRS80) .Xforms=(4, -4)\n@var RefFrames.ITRF94: RefFrame(name='ITRF94', epoch=1993, datum=Datums.GRS80) .Xforms=(4, -4)\n@var RefFrames.ITRF96: RefFrame(name='ITRF96', epoch=1997, datum=Datums.GRS80) .Xforms=(5, -5)\n@var RefFrames.ITRF97: RefFrame(name='ITRF97', epoch=1997, datum=Datums.GRS80) .Xforms=(5, -4)\n@var RefFrames.NAD83: RefFrame(name='NAD83', epoch=1997, datum=Datums.GRS80) .Xforms=(0, -6)\n@var RefFrames.NAD83cors96: RefFrame(name='NAD83cors96', epoch=1997, datum=Datums.GRS80) .Xforms=(1, 0)\n@var RefFrames.WGS84: RefFrame(name='WGS84', epoch=1984, datum=Datums.GRS80) .Xforms=(0, -1)\n@var RefFrames.WGS84g1150: RefFrame(name='WGS84g1150', epoch=2001, datum=Datums.GRS80) .Xforms=(1, 0)\n@var RefFrames.WGS84g1674: RefFrame(name='WGS84g1674', epoch=2005, datum=Datums.GRS80) .Xforms=(0, 0)\n@var RefFrames.WGS84g1762: RefFrame(name='WGS84g1762', epoch=2005, datum=Datums.GRS80) .Xforms=(0, 0)\n'''\n\nfrom pygeodesy.basics import _isin, map1, neg, isidentifier, isstr, _xinstanceof, \\\n                             _xscalar,  typename\nfrom pygeodesy.constants import _float as _F, _0_0s, _0_0, _0_001, _0_5, _0_75, _1_0\nfrom pygeodesy.datums import Datums, _earth_datum, _equall, _GDA2020_, _Names7, \\\n                            _negastr, Transform, _WGS84,  _EWGS84, _operator\n# from pygeodesy.ellipsoids import _EWGS84  # from .datums\nfrom pygeodesy.errors import TRFError, _xattr, _xellipsoidall, _xkwds, _xkwds_item2\n# from pygeodesy.internals import typename  # from .basics\nfrom pygeodesy.interns import MISSING, NN, _AT_, _COMMASPACE_, _conversion_, \\\n                             _datum_, _DMAIN_, _DOT_, _exists_, _invalid_, _MINUS_, \\\n                             _NAD83_, _no_, _PLUS_, _reframe_, _s_, _SPACE_, _to_, \\\n                             _STAR_, _vs_, _WGS84_, _x_, _intern as _i\n# from pygeodesy.lazily import _ALL_LAZY  # from .units\nfrom pygeodesy.named import ADict, classname, _lazyNamedEnumItem as _lazy, _name2__, \\\n                           _Named, _NamedEnum, _NamedEnumItem, _NamedTuple,  Fmt, unstr\nfrom pygeodesy.props import deprecated_method, property_doc_, Property_RO, property_RO\n# from pygeodesy.streprs import Fmt, unstr  # from .named\nfrom pygeodesy.units import Epoch, Float,  _ALL_LAZY\n# from pygeodesy.utily import sincos2d_\n\nfrom math import ceil as _ceil, fabs\n# import operator as _operator  # from .datums\n\n__all__ = _ALL_LAZY.trf\n__version__ = '25.09.11'\n\n_EP0CH    =  Epoch(0, low=0)\n_Es       = {_EP0CH: _EP0CH}  # L{Epoch}s, deleted below\n_GRS80    =  Datums.GRS80\n_inverse_ = 'inverse'\n_MAS      = _MM = _PPB = Float  # Units\n_MM2M     = _0_001  # scale mm2m, ppB2ppM, mas2as\n_mDays    = (0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31, 0)\n_366_0    = _F(sum(_mDays))\n_rates_   = 'rates'  # PYCHOK used!\n_Rs       = {}  # L{TRFXform7Tuple}s de-dup, deleted below\n_xform_   = 'xform'  # PYCHOK used!\n_Xs       = {}  # L{TRFXform7Tuple}s de-dup, deleted below\n\n_ETRF88_      = _i('ETRF88')\n_ETRF89_      = _i('ETRF89')\n_ETRF90_      = _i('ETRF90')\n_ETRF91_      = _i('ETRF91')\n_ETRF92_      = _i('ETRF92')\n_ETRF93_      = _i('ETRF93')\n_ETRF94_      = _i('ETRF94')\n_ETRF96_      = _i('ETRF96')\n_ETRF97_      = _i('ETRF97')\n_ETRF2000_    = _i('ETRF2000')\n_ETRF2005_    = _i('ETRF2005')\n_ETRF2008_    = _i('ETRF2008')\n_ETRF2014_    = _i('ETRF2014')\n_ETRF2020_    = _i('ETRF2020')\n_GDA94_       = _i('GDA94')\n_ITRF_        = _i('ITRF')\n_ITRF88_      = _i('ITRF88')\n_ITRF89_      = _i('ITRF89')\n_ITRF90_      = _i('ITRF90')\n_ITRF91_      = _i('ITRF91')\n_ITRF92_      = _i('ITRF92')\n_ITRF93_      = _i('ITRF93')\n_ITRF94_      = _i('ITRF94')\n_ITRF96_      = _i('ITRF96')\n_ITRF97_      = _i('ITRF97')\n_ITRF2000_    = _i('ITRF2000')\n_ITRF2005_    = _i('ITRF2005')\n_ITRF2008_    = _i('ITRF2008')\n_ITRF2014_    = _i('ITRF2014')\n_ITRF2020_    = _i('ITRF2020')\n_NAD83cors96_ = _i('NAD83cors96')\n_WGS84g1150_  = _i('WGS84g1150')\n_WGS84g1674_  = _i('WGS84g1674')\n_WGS84g1762_  = _i('WGS84g1762')\n\n\ndef _E(epoch):  # deleted below\n    '''(INTERNAL) De-dup L{Epochs}s.\n    '''\n    e = Epoch(_F(epoch))\n    return _Es.setdefault(e, e)  # noqa: F821 del\n\n\ndef _P(ps, name, _Ps):  # deleted below\n    '''(INTERNAL) De-dup L{TRFXform7Tuple}s.\n    '''\n    t = TRFXform7Tuple(map(_F, ps), name=name)\n    return _Ps.setdefault(t, t)\n\n\nclass RefFrame(_NamedEnumItem):\n    '''Terrestrial Reference Frame (TRF) parameters.\n    '''\n    _datum = _GRS80  # Datums.GRS80 or .WGS84 (L{Datum})\n    _epoch = _EP0CH  # epoch, fractional year (L{Epoch})\n\n    def __init__(self, epoch, datum=_GRS80, name=NN):\n        '''New L{RefFrame}.\n\n           @arg epoch: Epoch, a fractional calendar year (C{scalar} or C{str}).\n           @arg datum: Datum or ellipsoid (L{Datum}, {Ellipsoid}, L{Ellipsoid2}\n                       or L{a_f2Tuple}).\n           @kwarg name: Unique, non-empty name (C{str}).\n\n           @raise NameError: A L{RefFrame} with that B{C{name}} already exists.\n\n           @raise TRFError: Invalid B{C{epoch}}.\n\n           @raise TypeError: Invalid B{C{datum}}.\n        '''\n        if _isin(datum, None, _GRS80):\n            pass\n        elif _isin(datum, _WGS84, _EWGS84):\n            self._datum = _WGS84\n        else:\n            _earth_datum(self, datum, raiser=_datum_)\n        self._epoch = _Epoch(epoch)\n        self._Xto = {}  # dict of Xforms\n        if name:\n            self._register(RefFrames, _stref(name=name))\n\n    def __eq__(self, other):\n        return isinstance(other, RefFrame) and other.epoch == self.epoch \\\n                                           and other.datum == self.datum \\\n                                           and other.name  == self.name\n\n    def __lt__(self, other):  # for sorting\n        return isinstance(other, RefFrame) and (self.name  < other.name\n                                             or self.epoch < other.epoch)\n\n    @deprecated_method  # PYCHOK Python 3.5+\n    def __matmul__(self, point):\n        '''DEPRECATED on 2024.02.16, use method C{B{point}.toRefFrame}.'''\n        return _toRefFrame(point, self)\n\n    @property_RO\n    def datum(self):\n        '''Get this reference frame's datum (L{Datum}).\n        '''\n        return self._datum\n\n    @property_RO\n    def ellipsoid(self):\n        '''Get this reference frame's ellipsoid (L{Ellipsoid} or L{Ellipsoid2}).\n        '''\n        return self._datum.ellipsoid\n\n    @Property_RO\n    def epoch(self):\n        '''Get this reference frame's epoch (C{Epoch}).\n        '''\n        return self._epoch\n\n    def toRefFrame(self, point, reframe2, **epoch_epoch2_name):\n        '''Convert an ellipsoidal point from this reframe and from C{epoch} to\n           an other C{reframe2} and C{epoch2 or epoch}.\n\n           @arg point: The point to convert (C{LatLon} or C{Cartesian}).\n           @arg reframe2: Reference frame to convert I{to} (L{RefFrame}).\n           @kwarg epoch_epoch2_name: Optional keyword arguments C{B{epoch}=None},\n                        C{B{epoch2}=None} and C{B{name}=B{reframe2}.name}.\n\n           @return: A copy of the B{C{point}}, converted and renamed.\n\n           @raise TypeError: Invalid B{C{point}}.\n\n           @note: The C{B{point}.reframe} is overridden by this reframe and\n                  C{B{point}.epoch} by C{B{epoch}} or this reframe.C{epoch}.\n\n           @see: Methods L{LatLon.toRefFrame<ellipsoidalBase.LatLonEllipsoidalBase.toRefFrame>}\n                 and L{Cartesian.toRefFrame<ellipsoidalBase.CartesianEllipsoidalBase.toRefFrame>}\n                 for more details.\n        '''\n        return _toRefFrame(point, reframe2, reframe=self, **_xkwds(epoch_epoch2_name,\n                                               name=_xattr(reframe2, name=self.name)))\n\n    def toStr(self, epoch=None, name=NN, **unused):  # PYCHOK signature\n        '''Return this reference frame as a string.\n\n           @kwarg epoch: Override this reframe's epoch (C{scalar} or C{str}).\n           @kwarg name: Override name (C{str}) or C{None} to exclude the\n                        reframe's name.\n\n           @return: This L{RefFrame}'s attributes (C{str}).\n        '''\n        D = self.datum\n        e = self.epoch if epoch is None else _Epoch(epoch)\n        t = (Fmt.EQUAL(name=repr(self._name__(name))),\n             Fmt.EQUAL(epoch=e),\n             Fmt.EQUAL(datum=_DOT_(classname(D) + _s_, D.name)))\n        return _COMMASPACE_.join(t[int(name is None):])\n\n    def Xform(self, reframe2):\n        '''Get the converter Xform I{from} this reference frame I{to} C{reframe2}.\n\n           @arg reframe2: Destination frame to convert I{to} (L{RefFrame} or C{str}).\n\n           @return: The L{TRFXform} instance or C{None} if not available.\n\n           @raise TypeError: Invalid B{C{reframe2}}.\n        '''\n        _xinstanceof(RefFrame, str, reframe2=reframe2)\n        n2 = reframe2 if isstr(reframe2) else reframe2.name\n        return self._Xto.get(n2, None)\n\n    def Xforms(self, inverse=False):\n        '''Return all Xforms converting I{from} or I{to} this reference frame or both.\n\n           @kwarg inverse: If C{True}, get all I{from} otherwise I{to} Xforms\n                           I{un-inverted} (C{bool}) or if C{B{inverse}=2} (C{int})\n                           get all I{to} Xforms I{inverted} plus all I{from}s.\n\n           @return: An L{ADict} of C{name=}L{TRFXform}s I{from} this reframe or if\n                    C{B{inverse}=True} I{to} this reframe or both if C{B{inverse}=2}.\n        '''\n        return ADict(self._Xitems(inverse, RefFrames))\n\n    def _Xfrom(self, RFs, inverted):\n        '''(INTERNAL) Yield all 2-tuples C{(name, I{from} Xform)} converting I{to}\n           this reframe, inverted if C{inverted is True}.\n        '''\n        n2 = self.name\n        for n1, r in RFs.items():\n            X = r._Xto.get(n2, None)\n            if X:\n                yield n1, (X.inverse() if inverted else X)\n\n    def _Xitems(self, inverse, RFs):  # in _eXhaustives, .Xforms\n        '''(INTERNAL) Yield all C{._Xfrom} and C{._Xto}'s as 2-tuple items.\n        '''\n        i = inverse == 2\n        if i or inverse:\n            for item in self._Xfrom(RFs, i):\n                yield item\n        if i or not inverse:\n            for item in self._Xto.items():\n                yield item\n\n\nclass RefFrames(_NamedEnum):\n    '''(INTERNAL) L{RefFrame} registry, I{must} be a sub-class\n       to accommodate the L{_LazyNamedEnumItem} properties.\n    '''\n    def _Lazy(self, epoch, datum=_GRS80, name=NN):\n        '''(INTERNAL) Instantiate the L{RefFrame}.\n        '''\n        return RefFrame(epoch, datum, name=name)\n\nRefFrames = RefFrames(RefFrame)  # PYCHOK singleton\n'''Some pre-defined L{RefFrame}s, all I{lazily} instantiated.'''\n# <https://GitHub.com/ChrisVeness/geodesy/blob/master/latlon-ellipsoidal-referenceframe.js>\nRefFrames._assert(\n    ETRF88      = _lazy(_ETRF88_,      _E(1988)),  # epoch, datum?\n    ETRF89      = _lazy(_ETRF89_,      _E(1989)),  # epoch, datum?\n    ETRF90      = _lazy(_ETRF90_,      _E(1990)),  # epoch, datum?\n    ETRF91      = _lazy(_ETRF91_,      _E(1991)),  # epoch, datum?\n    ETRF92      = _lazy(_ETRF92_,      _E(1992)),  # epoch, datum?\n    ETRF93      = _lazy(_ETRF93_,      _E(1993)),  # epoch, datum?\n    ETRF94      = _lazy(_ETRF94_,      _E(1994)),  # epoch, datum?\n    ETRF96      = _lazy(_ETRF96_,      _E(1996)),  # epoch, datum?\n    ETRF97      = _lazy(_ETRF97_,      _E(1997)),  # epoch, datum?\n    ETRF2000    = _lazy(_ETRF2000_,    _E(2005)),\n    ETRF2005    = _lazy(_ETRF2005_,    _E(2005)),  # epoch, datum?\n    ETRF2008    = _lazy(_ETRF2008_,    _E(2008)),  # epoch, datum?\n    ETRF2014    = _lazy(_ETRF2014_,    _E(2014)),  # epoch, datum?\n    ETRF2020    = _lazy(_ETRF2020_,    _E(2020)),  # epoch, datum?\n    GDA94       = _lazy(_GDA94_,       _E(1994)),  # Australia\n    GDA2020     = _lazy(_GDA2020_,     _E(2020)),  # Australia\n    ITRF88      = _lazy(_ITRF88_,      _E(1988)),\n    ITRF89      = _lazy(_ITRF89_,      _E(1989)),\n    ITRF90      = _lazy(_ITRF90_,      _E(1988)),\n    ITRF91      = _lazy(_ITRF91_,      _E(1988)),\n    ITRF92      = _lazy(_ITRF92_,      _E(1988)),\n    ITRF93      = _lazy(_ITRF93_,      _E(1988)),\n    ITRF94      = _lazy(_ITRF94_,      _E(1993)),\n    ITRF96      = _lazy(_ITRF96_,      _E(1997)),\n    ITRF97      = _lazy(_ITRF97_,      _E(1997)),\n    ITRF2000    = _lazy(_ITRF2000_,    _E(1997)),  # aka ITRF00\n    ITRF2005    = _lazy(_ITRF2005_,    _E(2000)),\n    ITRF2008    = _lazy(_ITRF2008_,    _E(2005)),  # aka ITRF08\n    ITRF2014    = _lazy(_ITRF2014_,    _E(2010)),\n    ITRF2020    = _lazy(_ITRF2020_,    _E(2015)),\n    NAD83       = _lazy(_NAD83_,       _E(1997)),\n    NAD83cors96 = _lazy(_NAD83cors96_, _E(1997)),\n    WGS84       = _lazy(_WGS84_,       _E(1984), _WGS84),\n    WGS84g1150  = _lazy(_WGS84g1150_,  _E(2001), _WGS84),\n    WGS84g1674  = _lazy(_WGS84g1674_,  _E(2005), _WGS84),\n    WGS84g1762  = _lazy(_WGS84g1762_,  _E(2005), _WGS84))  # same epoch\n\n\nclass TransformXform(Transform):\n    '''Helmert transformation, extended with an C{Xform} TRF converter.\n\n       @see: L{Transform<datums.Transform>} and L{Xform<TRFXform>}.\n    '''\n    _Xform = None\n\n    def __init__(self, name=NN, **tx_ty_tz_s_sx_sy_sz):  # PYCHOK signature\n        '''New L{TransformXform}.\n\n           @kwarg name: Optional name (C{str}), I{not registered}.\n\n           @see: L{Transform<datums.Transform>} for details.\n\n           @note: This L{TransformXform}'s name starts with C{\"-\"} iff\n                  I{inversed}.\n        '''\n        Transform.__init__(self, **tx_ty_tz_s_sx_sy_sz)\n        if name:\n            self.name = name  # unregistered\n\n    def __eq__(self, other):\n        return isinstance(other, TransformXform) and _equall(other, self)\n\n    def __hash__(self):\n        return Transform.__hash__(self)\n\n    def inverse(self, **name):\n        '''Return the inverse of this transform.\n\n           @kwarg name: Optional, unique C{B{name}=NN} (C{str}).\n\n           @return: Inverse (L{TransformXform}), unregistered.\n        '''\n        r = Transform.inverse(self, **name)\n        X = self.Xform\n        if X:  # unregistered\n            r._Xform = X.inverse()\n        return r\n\n    def rename(self, name=NN):\n        '''Change this transform's name.\n\n           @arg name: New name (C{str}), overriding this transform's Xform's name.\n\n           @return: The previous name (C{str}).\n        '''\n        X = self.Xform\n        n = name or (X.toStr() if X else NN)\n        return Transform.rename(self, n)\n\n    def toRefFrame(self, point, **name):  # PYCHOK signature\n        '''Convert an ellipsoidal point using this transform and Xform.\n\n           @arg point: The point to convert (C{Cartesian} or C{LatLon}).\n           @kwarg name: Optional C{B{name}=NN} (C{str}).\n\n           @return: A copy of the B{C{point}}, converted I{directly} to\n                    this transform's Xform's C{refName2} and C{epoch}.\n\n           @note: The B{C{point}}'s original C{reframe} and C{epoch} are\n                  I{ignored}, its C{datum} and C{height} are preserved\n                  but I{not} taken into account.\n        '''\n        _ = _xellipsoidall(point)\n        p =  point.dup() if self.isunity else point.toTransform(self)\n        X =  self.Xform\n        if X:  # see _toRefFrame below\n            p._reframe = X.reframe2\n            p._epoch   = X.epoch\n        p.rename(self._name__(name))\n        return p\n\n    def toTransform(self, epoch1, **epoch2_inverse):\n        '''Return this transform observed at B{C{epoch1}} as a Helmert\n           L{TransformXform}, optionally at B{C{epoch2 or epoch1}}.\n\n           @arg epoch1: Epoch to observe I{from} (C{scalar}).\n           @kwarg epoch2_inverse: Optional C{B{epoch2}=None} to observe\n                         I{to} and C{B{inverse}=False}, see method\n                         L{toTransform<TRFXform.toTransform>} from\n                         L{TRFXform}.\n\n           @return: The Helmert transform (L{TransformXform}).\n\n           @raise TRFError: Invalid B{C{epoch1}}, B{C{epoch2}} or\n                            missing Xform.\n        '''\n        X = self.Xform\n        if X is None:\n            raise TRFError(Xform=X, txt=MISSING)\n        return X.toTransform(epoch1, **epoch2_inverse)\n\n    def transform2(self, x, y, z, vx=0, vy=0, vz=0, inverse=False, factor=_MM2M,\n                                                  **Vector_and_kwds):\n        '''Transform a (cartesian) position I{with} velocities, forward or inverse.\n\n           @arg x: X coordinate (C{meter}).\n           @arg y: Y coordinate (C{meter}).\n           @arg z: Z coordinate (C{meter}).\n           @kwarg vx: X velocity (C{meter-per-year}).\n           @kwarg vy: Y velocity (C{meter-per-year}).\n           @kwarg vz: Z velocity (C{meter-per-year}).\n           @kwarg inverse: If C{True}, apply the inverse transform (C{bool}).\n           @kwarg factor: Factor to scale this Xform's C{rates} (C{scalar}),\n                          default from C{milli-meter-} to C{meter-per-year},\n                          from C{milli-arc-} to C{arc-seconds-per-year} and\n                          from C{ppB-} to C{ppM-per-year}.\n           @kwarg Vector_and_kwds: An optional, (3-D) C{B{Vector}=None} or cartesian\n                         class and additional C{B{Vector}} keyword arguments to\n                         return the transformed position and the I{velocities}.\n\n           @return: 2-Tuple C{(position, velocities)}, the tranformed C{position}\n                    and C{velocities}, each a L{Vector3Tuple}C{(x, y, z)} unless\n                    some B{C{Vector_and_kwds}} are specified.\n\n           @note: If this transform's Xform is missing, the returned C{velocities}\n                  are the given ones, I{un-transformed}.\n\n           @raise TypeError: Non-scalar B{C{factor}}.\n\n           @see: Soler, T. & Snay, R.A. \"Transforming Positions and Velocities ...\", U{equations\n                 (4) and (5)<https://www.NGS.NOAA.gov/CORS/Articles/SolerSnayASCE.pdf>}\n                 and HTDP functions C{VTRANF} and C{VTRANF_IERS} in file U{HTDP/hdtp.f\n                 <https://Geodesy.NOAA.gov/TOOLS/Htdp/Htdp.shtml>}.\n        '''\n        p = self.transform(x, y, z, inverse=inverse, **Vector_and_kwds)\n        X = self.Xform\n        if X is not None:\n            r = X.rates * factor  # equ (4) ...\n            # vx', vy', vz' = (.tx + x * .s  + y * .rz - z * .ry,\n            #                  .ty - x * .rz + y * .s  + z * .rx,\n            #                  .tz + x * .ry - y * .rx + z * .s)\n            # using counter-/clockwise .rx, .ry, and .rz\n            V = Transform(**dict(r.items()))  # unregistered\n            _ = V._s_s1(0)  # XXX r.s?\n            v = V.transform(p.x, p.y, p.z, inverse=inverse)\n            # + (vx, vy, vz) like HTDP\n            vx += v.x\n            vy += v.y\n            vz += v.z\n        v = p.dup(x=vx, y=vy, z=vz, name=NN(p.name, _vs_))\n        return p, v\n\n    def velocities(self, factor=_MM2M, **Vector_and_kwds):\n        '''Compute the X, Y and Z I{velocities} of this transform.\n\n           @kwarg factor: Factor to scale this Xform's C{rates} (C{scalar}),\n                          default from C{milli-meter-} to C{meter-per-year},\n                          from C{milli-arc-} to C{arc-seconds-per-year} and\n                          from C{ppB-} to C{ppM-per-year}.\n           @kwarg Vector_and_kwds: An optional, (3-D) C{B{Vector}=None} or\n                         cartesian class and additional C{B{Vector}} keyword\n                         arguments to return the I{velocities}.\n\n           @return: A L{Vector3Tuple}C{(x, y, z)} unless some B{C{Vector_and_kwds}}\n                    are specified or C{None} if this transform's Xform is missing.\n\n           @raise TypeError: Non-scalar B{C{factor}}.\n\n           @see: Altamimi, Z. \"EUREF-TN-1-Jan-31-2024\", U{Appendix A, equation (3)\n                 <http://ETRS89.ENSG.IGN.FR/pub/EUREF-TN-1-Jan-31-2024.pdf>} and\n                 method L{transform2<TransformXform.transform2>}.\n        '''\n        v = X = self.Xform\n        if X is not None:\n            r = X.rates * factor  # equ (3) ...\n            V = self.dup(tx=r.sx, ty=r.sy, tz=r.sz, _Xform=None,  # Xyy-dot\n                         name=NN(self.name, _vs_))  # unregistered\n            _ = V._s_s1(0)\n            v = V.transform(r.tx, r.ty, r.tz, inverse=False,  # Xyy\n                                            **Vector_and_kwds)\n        return v\n\n    @property_doc_(''' the Xform (L{TRFXform}).''')\n    def Xform(self):\n        '''Get this Helmert transform's Xform (L{TRFXform} or C{None}).\n        '''\n        return self._Xform\n\n    @Xform.setter  # PYCHOK setter!\n    def Xform(self, Xform):\n        '''Set this Helmert transform's Xform (L{TRFXform}).\n\n           @raise TypeError: Invalid B{C{Xform}}.\n        '''\n        _xinstanceof(TRFXform, Xform=Xform)\n        self._Xform = Xform\n\n\nclass TRFXform7Tuple(_NamedTuple):\n    '''7-Tuple C{(tx, ty, tz, s, sx, sy, sz)} of conversion parameters with\n       translations C{tx}, C{ty} and C{tz} in C{milli-meter}, scale C{s} in\n       C{ppB} and rotations C{sx}, C{sy} and C{sz} in C{milli-arc-seconds}.\n       For C{rates} all are C{units-per-year}.\n\n       @note: The parameters are also named as C{(Tx, Ty, Tz, D, Rx, Ry, Rz)}\n              or C{(T1, T2, T3, D, R1, R2, R3)}.\n\n       @see: Class L{TransformXform}'s matching keyword argument names.\n    '''\n    _Names_ = _Names7  # ('tx', 'ty', 'tz', _s_,  'sx', 'sy', 'sz') == TransformXform.__init__\n    _Units_ =            (_MM,  _MM,  _MM,  _PPB, _MAS, _MAS, _MAS)\n\n    def __add__(self, other):\n        return self._add_sub(other, True)\n\n    def __eq__(self, other):\n        return isinstance(other, TRFXform7Tuple) and _equall(other, self)\n                                       # PYCHOK  and self.name == other.name\n\n    def __hash__(self):\n        return _NamedTuple.__hash__(self)\n\n    def __mul__(self, factor):\n        _xscalar(factor=factor)\n        return type(self)((x * factor for x in self), name=_STAR_)  # .fsums._mul_op\n\n    def __neg__(self):\n        return self.inverse()\n\n    def __sub__(self, other):\n        return self._add_sub(other, False)\n\n    def _add_sub(self, other, p_):\n        '''(INTERNAL) Return C{this +/- other} L{TRFXform7Tuple}.\n        '''\n        _xinstanceof(TRFXform7Tuple, other=other)\n        op = _operator.add if p_ else _operator.sub\n        return type(self)(map(op, self, other), name=_PLUS_ if p_ else _MINUS_)\n\n    def inverse(self, name=NN):\n        '''Return the inverse of this transform.\n\n           @kwarg name: Optional name (C{str}).\n\n           @return: Inverse (L{TransformXform}).\n        '''\n        n = name or _negastr(self.name)\n        return type(self)(map(neg, self), name=n)\n\n    @Property_RO\n    def isunity(self):\n        '''Is this a C{unity, identity} transform (C{bool}).\n        '''\n        return not any(self)\n\n\nclass TRFXform(_Named):\n    '''A Terrestrial Reference Frame (TRF) converter between two\n       reference frames observed at an C{epoch}.\n    '''\n    _epoch   = _EP0CH\n    _epoch_d = _0_0\n    _indir_d =  NN  # refName\n    _inver_d =  False\n    refName1 =  \\\n    refName2 =  NN\n    rates    =  \\\n    xform    =  None\n\n    def __init__(self, refName1, refName2, epoch=None, xform=None,\n                                           rates=None, name=NN):\n        '''New L{TRFXform} TRF converter.\n\n           @arg refName1: Source reframe (C{str}), converting I{from}.\n           @arg refName2: Destination reframe (C{str}), converting I{to}.\n           @kwarg epoch: Epoch, a fractional year (L{Epoch}, C{scalar} or C{str}).\n           @kwarg xform: I{Transform} parameters at B{C{epoch}} (L{TRFXform7Tuple}).\n           @kwarg rates: I{Rate} parameters (L{TRFXform7Tuple}), like B{C{xform}},\n                         but in C{units-per-year}.\n           @kwarg name: Optional name (C{str}), overriding the default from method\n                        L{toStr<TRFXform.toStr>}.\n\n           @raise TRFError: Invalid B{C{refName1}}, B{C{refName2}} or B{C{epoch}}.\n\n           @raise TypeError: Invalid B{C{xform}} or B{C{rates}}.\n\n           @see: Functions L{trfXform}, L{trfTransform0} and L{trfTransforms}.\n        '''\n        self.refName1 = _stref(refName1=refName1)\n        self.refName2 = _stref(refName2=refName2)\n        _xinstanceof(TRFXform7Tuple, xform=xform, rates=rates)\n        self.epoch = epoch\n        self.xform = xform\n        self.rates = rates\n        self.rename(name or self.toStr())\n\n    def __add__(self, other):\n        return self._add_sub(other, True)\n\n    def __eq__(self, other):\n        return isinstance(other, TRFXform) and other.epoch == self.epoch \\\n                                           and other.xform == self.xform \\\n                                           and other.rates == self.rates\n\n#   def __hash__(self):\n#       return hash((self.epoch, self.xform, self.rates))\n\n    def __lt__(self, other):  # for sorting\n        return isinstance(other, TRFXform) and (self.refName1 < other.refName1\n                                             or self.refName2 < other.refName2\n                                             or self.epoch    < other.epoch)\n\n    def __neg__(self):\n        return self.inverse()\n\n    def __repr__(self):\n        return self.toRepr()\n\n    def __str__(self):\n        return self.toStr()\n\n    def __sub__(self, other):\n        return self._add_sub(other, False)\n\n    def _add_sub(self, other, p_, *n1_n2_n):  # in _indirects below\n        '''(INTERNAL) Summate C{this +/- other} Xform at C{this.epoch}.\n\n           @see: U{Appendix, Table 7, last column \"Sum of the previous ...\"\n                 <https://Geodesy.NOAA.gov/TOOLS/Htdp/Pearson_Snay_2012.pdf\">}\n        '''\n        _xinstanceof(TRFXform, other=other)\n        X1 = self\n        e1 = X1.epoch\n        X2 = other.toEpoch(e1)  # if other.epoch != e1 else other\n\n        n1, n2, n = n1_n2_n or _n1_n2_n3(X1, X2)\n\n        X = type(X1)(n1, n2, epoch=e1, xform=X1.xform._add_sub(X2.xform, p_),\n                                       rates=X1.rates._add_sub(X2.rates, p_),\n                                       name=_sumstr(X1.name,   X2.name,  p_))\n        X._epoch_d = X1.epoched + X2.epoched\n        X._indir_d = n  # reframe?\n        X._inver_d = X1.inversed and X2.inversed\n        return X\n\n    def _at(self, epoch):\n        '''(INTERNAL) Return C{\"self.nameB{@}epoch\"}.\n        '''\n        n = self.name\n        if epoch != self.epoch:\n            _e = _AT_(NN, epoch)\n            if not n.endswith(_e):\n                n = NN(n, _e)\n        return n\n\n    @property_doc_(''' the epoch, fractional year (L{Epoch}).''')\n    def epoch(self):\n        '''Get the epoch (L{Epoch}).\n        '''\n        return self._epoch\n\n    @epoch.setter  # PYCHOK setter!\n    def epoch(self, epoch):\n        '''Set the epoch (L{Epoch}, C{scalar} or C{str}).\n\n           @raise TRFError: Invalid B{C{epoch}}.\n        '''\n        e = _Epoch(epoch)\n        if self._epoch != e:\n            self.rename(self._at(e))\n            self._epoch = e\n\n    @property_RO\n    def epoched(self):\n        '''Get this Xform's aggregate I{epoch} deltas (C{float}).\n        '''\n        return self._epoch_d\n\n    @property_RO\n    def indirected(self):\n        '''Is this an I{indirected} Xform? (C{str} of space-separated\n           refNames) or C{NN}.\n        '''\n        return self._indir_d\n\n    def inverse(self, name=NN):\n        '''Return this Xform {inversed}, C{refName1} and C{-2} swapped.\n\n           @return: The inverse (L{TRFXform}).\n        '''\n        n = name or _negastr(self.name)\n        X = self.dup(refName1=self.refName2, xform=-self.xform,\n                     refName2=self.refName1, rates=-self.rates,\n                     name=n, _inver_d=not self.inversed)\n#       X = type(self)(self.refName2, self.refName1, epoch= self.epoch,\n#                                                    xform=-self.xform,\n#                                                    rates=-self.rates, name=n)\n#       if self.epoched:\n#           X._epoch_d = self.epoched\n#       if self.indirected:\n#           X._indir_d = self.indirected\n#       if not self.inversed:\n#           X._inver_d = True\n        return X\n\n    @property_RO\n    def inversed(self):\n        '''Is this an I{inversed} Xform? (C{bool}).\n        '''\n        return self._inver_d\n\n    def _reframe(self, name, datum=_GRS80):\n        '''(INTERNAL) Get an un-/registered frame.\n        '''\n        r = RefFrames.get(name)\n        if r is None or r.datum != datum:\n            r = RefFrame(self.epoch, datum)\n            r.name = name  # unregistered\n        return r\n\n    @property_RO\n    def reframe1(self):\n        '''Get the un-/registered I{from} frame (C{RefFrame}).\n        '''\n        return self._reframe(self.refName1)\n\n    @property_RO\n    def reframe2(self):\n        '''Get the un-/registered I{to} frame (C{RefFrame}).\n        '''\n        return self._reframe(self.refName2)\n\n    def rename(self, name=NN):\n        '''Change this Xform's name.\n\n           @arg name: New name (C{str}), overriding the base\n                      name C{\"refName1B{@}epochB{x}refName2\"}.\n\n           @return: The old name (C{str}).\n        '''\n        return _Named.rename(self, name or self.toStr())\n\n    def toEpoch(self, epoch):\n        '''Convert this Xform to B{C{epoch}}, if needed.\n\n           @arg epoch: Epoch, fractional year (C{Epoch}, C{scalar}\n                       or C{str}).\n\n           @return: This Xform or a copy converted to B{C{epoch}}.\n\n           @raise TRFError: Invalid B{C{epoch}}.\n        '''\n        e    = _Epoch(epoch)\n        X, d =  self, e - self.epoch\n        if d:\n            t = X.xform + X.rates * d\n            X = X.dup(epoch=e, xform=t, name=X._at(e))\n            X._epoch_d += fabs(d)\n        return X\n\n    def toHelmert(self, factor=_MM2M):\n        '''Return the Helmert transform from this Xform scaled accordingly.\n\n           @kwarg factor: Factor to scale this Xform's C{xform} (C{scalar}),\n                          default from C{milli-meter-} to C{meter-}, from\n                          C{milli-arc-} to C{arc-seconds} and from C{ppB}\n                          to C{ppM}.\n\n           @return: The Helmert transform (L{TransformXform}).\n        '''\n        h = self.xform * factor\n        H = TransformXform(**dict(h.items()))\n        H.name  = self.name  # unregistered\n        H.Xform = self\n        return H\n\n    def toRefFrame(self, point, datum=_GRS80, **epoch_epoch2_name):\n        '''Convert an ellipsoidal point from this Xform's C{refName1} and\n           C{epoch} to this Xform's C{refName2} and C{epoch2 or epoch}.\n\n           @arg point: The point to convert (C{Cartesian} or C{LatLon}).\n           @kwarg datum: Optional datum to define a temporary L{RefFrame} from\n                         this Xform's C{refName1} or C{refName2} (C{datum}).\n           @kwarg epoch_epoch2_name: Optional keyword arguments C{B{epoch}=None},\n                        B{C{epoch2}=None} and C{B{name}=refName1}.\n\n           @return: A copy of the B{C{point}}, converted and renamed.\n\n           @see: Method L{RefFrame.toRefFrame} for more details.\n        '''\n        r1 = self._reframe(self.refName1, datum=datum)\n        r2 = self._reframe(self.refName2, datum=datum)\n        return _toRefFrame(point, r2, reframe=r1,\n                        **_xkwds(epoch_epoch2_name, name=r1.name))\n\n    def toRepr(self, **unused):  # PYCHOK signature\n        '''Return the represention of this Xform (C{str}).\n        '''\n        return unstr(self.classname, name=self.name, epoch=self.epoch)\n\n    def toStr(self, epoch=None, **unused):  # PYCHOK signature\n        '''Return this Xform as C{\"refName1B{@}epochB{x}refName2\"} (C{str}).\n\n           @kwarg epoch: Epoch (C{Epoch}, C{scalar} or C{str}), overriding\n                         this Xform's epoch.\n        '''\n        e = self.epoch if epoch is None else _Epoch(epoch)\n        return NN(_AT_(self.refName1, e), _x_, self.refName2)\n\n    def toTransform(self, epoch=None, epoch2=None, inverse=False):\n        '''Combine this Xform observed at B{C{epoch}} into a Helmert\n           L{TransformXform}, optionally at B{C{epoch2 or epoch}}.\n\n           @kwarg epoch: Epoch to observe I{from} (C{scalar}),\n                         overriding this converter's epoch.\n           @kwarg epoch2: Optional epoch to observe I{to} (C{scalar}),\n                          overriding B{C{epoch}}.\n           @kwarg inverse: Use the Xform's inverse (C{bool}).\n\n           @return: The Helmert transform (L{TransformXform}).\n\n           @raise TRFError: Invalid B{C{epoch}} or B{C{epoch2}}.\n\n           @see: Method L{toHelmert}.\n        '''\n        if epoch2 is None:\n            e = self.epoch if epoch is None else epoch\n        elif isinstance(epoch2, Epoch):\n            e = epoch2\n        else:\n            e = Epoch(epoch2=epoch2)\n        X = self.toEpoch(e)\n        if inverse:\n            X = X.inverse()\n        return X.toHelmert()\n\n\ndef date2epoch(year, month, day):\n    '''Return the C{epoch} for a calendar day.\n\n       @arg year: Year of the date (C{scalar}).\n       @arg month: Month in the B{C{year}} (C{scalar}, 1..12).\n       @arg day: Day in the B{C{month}} (C{scalar}, 1..31).\n\n       @return: Epoch, the fractional year (C{float}).\n\n       @raise TRFError: Invalid B{C{year}}, B{C{month}} or B{C{day}}.\n\n       @note: Any B{C{year}} is considered a leap year, i.e. having\n              29 days in February.\n    '''\n    try:\n        y, m, d = map1(int, year, month, day)\n        if y > 0 and 1 <= m <= 12 and 1 <= d <= _mDays[m]:\n            e = y + float(sum(_mDays[:m]) + d) / _366_0\n            return Epoch(e, low=0)\n\n        raise ValueError()  # _invalid_\n    except (TRFError, TypeError, ValueError) as x:\n        raise TRFError(year=year, month=month, day=day, cause=x)\n\n\ndef _direct(n1, n2):\n    '''(INTERNAL) Get the C{n1} to C{n2} Xform or C{None}.\n    '''\n    r = RefFrames.get(n1)\n    return r._Xto.get(n2, None) if r else None\n\n\ndef _Epoch(e, **kwds):\n    '''(INTERNAL) Get the C{Epoch(B{e})}.\n    '''\n    return e if isinstance(e, Epoch) and not kwds else Epoch(e, **kwds)\n\n\ndef epoch2date(epoch):\n    '''Return the date for a reference frame C{epoch}.\n\n       @arg epoch: Fractional year (C{scalar}).\n\n       @return: 3-Tuple C{(year, month, day)}.\n\n       @raise TRFError: Invalid B{C{epoch}}.\n\n       @note: Any B{C{year}} is considered a leap year, i.e. having\n              29 days in February.\n    '''\n    e = Epoch(epoch, low=0)\n    y = int(e)\n    d = int(_ceil((e - y) * _366_0))\n    for m, n in enumerate(_mDays[1:]):\n        if d > n:\n            d -= n\n        else:\n            break\n    return y, (m + 1), max(1, d)\n\n\ndef _eXhaustives(n1, n2):\n    '''(INTERNAL) Yield all I{coalesced} Xforms from C{n1} to {n2}\n       via I{any number of} intermediate reframe conversions.\n    '''\n    def _k2(item):\n        return -item[1].epoch  # most recent first\n\n    R = dict(RefFrames)\n    r = R.pop(n1, None)\n    if r:\n        Xs = list(sorted(tuple(r._Xitems(2, R)), key=_k2))\n        while Xs:\n            n, X = Xs.pop(0)\n            if n == n2:\n                yield _n_pop(X)\n            else:\n                r = R.pop(n, None)\n                if r:\n                    for n, x in r._Xitems(2, R):\n                        Xs.append((n, X + x))\n\n\ndef _indirects(n1, n2):\n    '''(INTERNAL) Yield all Xforms between C{n1} and C{n2} via\n       I{one} intermediate reframe C{n} conversion.\n    '''\n    def _X4(_Xto, n2):\n        _d = _direct\n        for n, X1 in _Xto.items():\n            X2 = _d(n, n2)\n            if X2:\n                yield X1, X2, n, True   # X1 + X2\n            X2 = _d(n2, n)\n            if X2:\n                yield X1, X2, n, False  # X1 - X2\n\n    r1 = RefFrames.get(n1)\n    if r1:\n        for X1, X2, n, p_ in _X4(r1._Xto, n2):\n            e1, e2 = X1.epoch, X2.epoch\n            if e1 < e2:  # X1 to e2\n                X1 = X1.toEpoch(e2)\n#           elif e1 > e2:  # X2 to e1\n#               X2 = X2.toEpoch(e1)\n            yield X1._add_sub(X2, p_, n1, n2, n)\n\n\ndef _n1_n2_n3(X1, X2):\n    '''(INTERNAL) L{TRFXform._add_sub} helper.\n    '''\n    n =  X1.indirected\n    n = _SPACE_(n, X1.refName2) if n else X1.refName2\n    return X1.refName1, X2.refName2, n\n\n\ndef _n_pop(X):\n    '''(INTERNAL) Pop L{TRFXform.indirected}'s ends.\n    '''\n    p, n = None, X.indirected.split()\n    if n and n[-1] == X.refName2:\n        p = n.pop()\n    if n and n[ 0] == X.refName1:\n        p = n.pop(0)\n    if p:\n        X._indir_d = _SPACE_.join(n) if n else NN\n    return X\n\n\ndef _reframe(**name_reframe):\n    '''(INTERNAL) Get a C{reframe}.\n    '''\n    _, r = _xkwds_item2(name_reframe)\n    if isstr(r) and r:  # not NN\n        r = RefFrames.get(r)\n    if r and isinstance(r, RefFrame):\n        return r\n    raise TRFError(**name_reframe)  # _invalid_\n\n\ndef _stref(**name_refname):\n    '''(INTERNAL) Check a reference frame name.\n    '''\n    _, n = _xkwds_item2(name_refname)\n    if isstr(n) and isidentifier(n):\n        return str(n)\n    raise TRFError(**name_refname)  # _invalid_\n\n\ndef _sumstr(name1, name2, p_):\n    '''(INTERNAL) \"Sum\" of C{name1 + ('+' if p_ else '-') + name2}.\n    '''\n    if name2:\n        n = name2 if p_ else _negastr(name2)\n        p = NN if n.startswith(_MINUS_) or \\\n                  n.startswith(_PLUS_) else _PLUS_\n        name1 = NN(name1, p, n)\n    return name1\n\n\ndef _toRefFrame(point, reframe2, reframe=None, epoch=None,\n                       epoch2=None, **name_LatLon_kwds):\n    '''(INTERNAL) Convert an ellipsoidal point to C{reframe2}\n       and C{epoch2 or epoch or pont.epoch or reframe.epoch}.\n    '''\n    ll = _xellipsoidall(point)\n    r1 =  reframe or point.reframe\n    if not r1:\n        t = _SPACE_(_DOT_(repr(point), _reframe_), MISSING)\n        raise TRFError(_no_(_conversion_), txt=t)\n\n    _xinstanceof(RefFrame, reframe2=reframe2, reframe=r1)\n\n    e1 = _Epoch(epoch or point.epoch or r1.epoch)\n    e2 =  e1 if epoch2 is None else Epoch(epoch2=epoch2)\n    t0 = _toTransform0(r1.name, e1, reframe2.name, e2)\n    if t0 is None:\n        t = _SPACE_(typename(RefFrame), _AT_(r1.name, e1),\n                            _to_, _AT_(reframe2.name, e2))\n        raise TRFError(_no_(_conversion_), txt=t)\n\n    name, LatLon_kwds = _name2__(name_LatLon_kwds)\n    if t0:  # is not ()\n        if t0.isunity:\n            p = point.dup()\n        elif point.datum:\n            p = point.toCartesian() if ll else point\n            p = p.toDatum(      r1.datum).toTransform(t0) \\\n                 .toDatum(reframe2.datum).toDatum(point.datum)\n            if ll:\n                p = p.toLatLon(LatLon=point.classof, **LatLon_kwds)\n        elif ll:  # and LatLon_kwds\n            p = point.toTransform(t0, **LatLon_kwds)\n        else:\n            p = point.toTransform(t0)\n        p._reframe =  reframe2  # see TRFXform.toRefFrame above\n        p._epoch   = _xattr(t0.Xform, epoch=e2)\n        p.rename(reframe2._name__(name))\n    else:\n        p = point.dup(_reframe=reframe2,  # ditto\n                      _epoch=e2, name=name) if name else point\n    return p\n\n\ndef _toTransform0(n1, e1, n2, e2, **indirect_inverse):\n    '''(INTERNAL) Return a L{TransformXform}, 0-tuple or C{None}.\n    '''\n    if n1 == n2 and e1 == e2:\n        return ()  # unity?\n\n    for X in _toTransforms(n1, e1, n2, e2, **indirect_inverse):\n        return X  # first OK?\n\n    if (n1.startswith(_ITRF_) and n2.startswith(_WGS84_)) or \\\n       (n2.startswith(_ITRF_) and n1.startswith(_WGS84_)):  # and e1 == e2?\n        return ()  # unity?\n\n    return None\n\n\ndef _toTransforms(n1, e1, n2, e2, indirect=True, inverse=True, exhaust=False):  # MCCABE 16\n    '''(INTERNAL) Yield all possible Helmert transforms, if any.\n    '''\n    class Ts(list):  # L{TransformXform}s de-dup\n        def __call__(self, Xs, e1=e1, e2=e2, **inverse):\n            for X in Xs:\n                if X:\n                    T = X.toTransform(e1, epoch2=e2, **inverse)\n                    if T not in self:\n                        self.append(T)\n                        yield T\n\n#       def __contains__(self, T):\n#           _xinstanceof(TransformXform, T=T)\n#           return any(t == T for t in self)\n\n    def _k(X):\n        return -X.epoch  # most recent first\n\n    _Ts = Ts()\n\n    for T in _Ts((_direct(n1, n2),), inverse=False):\n        yield T\n    if inverse:\n        for T in _Ts((_direct(n2, n1),), inverse=True):\n            yield T\n\n    if indirect:\n        for T in _Ts(sorted(_indirects(n1, n2), key=_k), inverse=False):\n            yield T\n        if inverse:\n            for T in _Ts(sorted(_indirects(n2, n1), key=_k), inverse=True):\n                yield T\n\n    if exhaust:\n        for T in _Ts(_eXhaustives(n1, n2), inverse=False):\n            yield T\n        for T in _Ts(_eXhaustives(n2, n1), inverse=True):\n            yield T\n\n\ndef trfTransform0(reframe, reframe2, epoch=None, epoch2=None, indirect=True, inverse=True, exhaust=False):\n    '''Get a Helmert transform to convert one C{reframe} observed at C{epoch}\n       to an other C{reframe2} at observed at C{epoch2 or epoch}.\n\n       @return: A L{TransformXform} instance, a C{0-tuple} for I{unity, identity} or\n                C{None} if no conversion exists.\n\n       @see: Function L{trfTransforms} for futher details.\n    '''\n    return _trfT0s(_toTransform0, reframe, reframe2, epoch, epoch2,\n                                  indirect=indirect, inverse=inverse, exhaust=exhaust)\n\n\ndef trfTransforms(reframe, reframe2, epoch=None, epoch2=None, indirect=True, inverse=True, exhaust=False):\n    '''Yield all Helmert transform to convert one C{reframe} observed at C{epoch}\n       to an other C{reframe2} at observed at C{epoch2 or epoch}.\n\n       @arg reframe: The frame to convert I{from} (L{RefFrame} or C{str}).\n       @arg reframe2: The frame to convert I{to} (L{RefFrame} or C{str}).\n       @arg epoch: Epoch to observe I{from} (L{Epoch}, C{scalar} or C{str}),\n                   otherwise C{B{reframe}}'s C{epoch}.\n       @kwarg epoch2: Optional epoch to observe I{to} (L{Epoch}, C{scalar} or C{str}),\n                      otherwise B{C{epoch}}.\n       @kwarg indirect: If C{True}, include transforms via I{one} intermediate reframe,\n                        otherwise only I{direct} B{C{reframe}} to B{C{reframe2}}\n                        transforms (C{bool}).\n       @kwarg inverse: If C{True}, include inverse, otherwise only forward transforms\n                       (C{bool}).\n       @kwarg exhaust: If C{True}, exhaustively generate all transforms, forward and\n                       inverse and via any number of intermediate reframes (C{bool}).\n\n       @return: A L{TransformXform} instance for each available conversion, without\n                duplicates.\n\n       @raise TRFError: Invalid B{C{reframe}}, B{C{reframe2}}, B{C{epoch}} or B{C{epoch2}}.\n\n       @raise TypeError: Invalid B{C{reframe}} or B{C{reframe2}}.\n    '''\n    return _trfT0s(_toTransforms, reframe, reframe2, epoch, epoch2,\n                                  indirect=indirect, inverse=inverse, exhaust=exhaust)\n\n\ndef _trfT0s(_toT0s, reframe, reframe2, epoch, epoch2, **indirect_inverse_exhaust):\n    '''(INTERNAL) Handle C{trfTransforms0} and C{trfTransforms} calls.\n    '''\n    r1 = _reframe(reframe=reframe)\n    e1 =  r1.epoch if epoch is None else _Epoch(epoch)\n    r2 = _reframe(reframe2=reframe2)\n    e2 =  e1 if epoch2 is None else Epoch(epoch2=epoch2)\n    return _toT0s(r1.name, e1, r2.name, e2, **indirect_inverse_exhaust)\n\n\ndef trfXform(reframe1, reframe2, epoch=None, xform=None, rates=None, raiser=True):\n    '''Define a new Terrestrial Reference Frame (TRF) converter or get an\n       existing one.\n\n       @arg reframe1: Source frame (L{RefFrame} or C{str}), converting I{from}.\n       @arg reframe2: Destination frame (L{RefFrame} or C{str}), converting I{to}.\n       @kwarg epoch: Epoch, a fractional year (L{Epoch}, C{scalar} or C{str})\n                     or C{None} for C{B{reframe2}}'s epoch.\n       @kwarg xform: I{Transform} parameters (L{TRFXform7Tuple}).\n       @kwarg rates: I{Rate} parameters (L{TRFXform7Tuple}), as B{C{xform}},\n                     but in C{units-per-year}.\n       @kwarg raiser: If C{False}, do not raise an error if the converter\n                      exists, replace it (C{bool}).\n\n       @return: The new TRF converter (L{TRFXform}) or if no B{C{epoch}},\n                B{C{xform}} and B{C{rates}} are given, return the existing\n                one (L{TRFXform}) or C{None} if not available.\n\n       @raise TRFError: Invalid B{C{reframe1}}, B{C{reframe2}}, B{C{epoch}},\n                        B{C{xform}} or B{C{rates}} or the TRF converter\n                        already exists.\n    '''\n    try:\n        r1 = _reframe(reframe1=reframe1)\n        r2 = _reframe(reframe2=reframe2)\n        if epoch is None:\n            if xform is rates is None:\n                return r1._Xto.get(r2.name, None)\n            e =  r2.epoch\n        else:\n            e = _Epoch(epoch)\n        return _trfX(r1.name, r2.name, raiser=raiser, epoch=e,\n                                       xform=xform, rates=rates)\n    except (TypeError, ValueError) as x:\n        t = unstr(trfXform, reframe1, reframe2, epoch=epoch)\n        raise TRFError(t, cause=x)\n\n\ndef _trfX(n1, n2, raiser=True, **epoch_xform_rates):\n    '''(INTERNAL) New, I{unique} L{TRFXform} converter.\n    '''\n    r1 = RefFrames.get(n1)\n    if r1 is None:\n        raise ValueError(_invalid_)\n    r2 = RefFrames.get(n2)\n    if r2 is None:\n        raise ValueError(_invalid_)\n    if raiser:\n        if n2 in r1._Xto:\n            raise ValueError(_exists_)\n        if n1 in r2._Xto:\n            raise ValueError(_SPACE_(_inverse_, _exists_))\n    r1._Xto[n2] = X = TRFXform(n1, n2, **epoch_xform_rates)\n    return X\n\n\n# def velocities2neu(vx, vy, vz, lat=0, lon=0):\n#     '''Convert X, Y, and Z I{velocities} to North, East, Up.\n#\n#        @arg vx: X velocity (C{meter-per-time}).\n#        @arg vx: Y velocity (C{meter-per-time}).\n#        @arg vx: Z velocity (C{meter-per-time}).\n#        @kwarg lat: Latitude (C{degrees}).\n#        @kwarg lon: Longitude (C{degrees}).\n#\n#        @return: 3-Tuple C{(vnorth, veast, vup)} with the\n#                 North, East and Up velocities, same units\n#                 as B{C{vx}, B{C{vy}} and B{C{vx}}.\n#     '''\n#     sa, ca, sb, cb = sincos2d_(lat, lon)\n#     ve  = cb * vy - sb * vx\n#     v   = cb * vx + sb * vy\n#     vn  = ca * vz - sa * v\n#     vu  = sa * vz + ca * v\n#     return vn, ve, vu\n\n\n# def velocities2xyz(vn, ve, vu, lat=0, lon=0):\n#     '''Convert North, East and Up I{velocities} to X, Y, Z.\n#\n#        @arg vn: North velocity (C{meter-per-time}).\n#        @arg ve: East velocity (C{meter-per-time}).\n#        @arg vu: Up velocity (C{meter-per-time}).\n#        @kwarg lat: Latitude (C{degrees}).\n#        @kwarg lon: Longitude (C{degrees}).\n#\n#        @return: 3-Tuple C{(vx, vy, vz)} with the X, Y\n#                 and Z velocities, same units as B{C{vn},\n#                 B{C{ve}} and B{C{vu}}.\n#     '''\n#     sa, ca, sb, cb = sincos2d_(lat, lon)\n#     vz = ca * vn + sa * vu\n#     v  = ca * vu - sa * vn\n#     vx = cb * v  - sb * ve\n#     vy = sb * v  + cb * ve\n#     return vx, vy, vz\n\n\ndef _X(*ps):  # deleted below\n    return _P(ps, _xform_, _Xs)  # noqa: F821 del\n\n\ndef _R(*ps):  # deleted below\n    return _P(ps, _rates_, _Rs)  # noqa: F821 del\n\n\n_P_0_0s = TRFXform7Tuple(_0_0s(len(_Names7)), name='unity')\n\n# TRF conversions specified as an epoch and 2 sets of 7 parameters.  Most from Altamimi, Z. U{\"EUREF Technical\n# Note 1: Relationship and Transformation between the International and the European Terrestrial Reference\n# Systems\"<https://ERTS89.ENSG.IFN.Fr/pub/EUREF-TN-1-Jan-31-2024.pdf>} Appendix A, more at U{Quinsy QPS <https://\n# confluence.QPS.NL/qinsy/files/latest/en/182618383/182618384/1/1579182881000/ITRF_Transformation_Parameters.xlsx>}.\n# See also U{Quinsy International Terrestrial Reference Frame 2014 (ITRF2014)<https://confluence.QPS.NL/qinsy/latest/\n# en/international-terrestrial-reference-frame-2014-itrf2014-182618383.html>}.\n_trfX(_ITRF2020_, _ITRF2014_, epoch=_E(2015),  # <https://ITRF.IGN.Fr/docs/solutions/itrf2020/Transfo-ITRF2020_TRFs.txt>\n                              xform=_X(  -1.4,     -0.9,     1.4,   -0.42,     _0_0,      _0_0,     _0_0),\n                              rates=_R(  _0_0,     -0.1,     0.2,    _0_0,     _0_0,      _0_0,     _0_0))\n_trfX(_ITRF2020_, _ITRF2008_, epoch=_E(2015),\n                              xform=_X(   0.2,      1.0,     3.3,   -0.29,     _0_0,      _0_0,     _0_0),\n                              rates=_R(  _0_0,     -0.1,     0.1,    0.03,     _0_0,      _0_0,     _0_0))\n_trfX(_ITRF2020_, _ITRF2005_, epoch=_E(2015),\n                              xform=_X(   2.7,      0.1,    -1.4,    0.65,     _0_0,      _0_0,     _0_0),\n                              rates=_R(   0.3,     -0.1,     0.1,    0.03,     _0_0,      _0_0,     _0_0))\n_trfX(_ITRF2020_, _ITRF2000_, epoch=_E(2015),\n                              xform=_X(  -0.2,      0.8,   -34.2,    2.25,     _0_0,      _0_0,     _0_0),\n                              rates=_R(   0.1,     _0_0,    -1.7,    0.11,     _0_0,      _0_0,     _0_0))\n_trfX(_ITRF2020_, _ITRF97_,   epoch=_E(2015),\n                              xform=_X(   6.5,     -3.9,   -77.9,    3.98,     _0_0,      _0_0,      0.36),\n                              rates=_R(   0.1,     -0.6,    -3.1,    0.12,     _0_0,      _0_0,      0.02))\n_trfX(_ITRF2020_, _ITRF96_,   epoch=_E(2015),\n                              xform=_X(   6.5,     -3.9,   -77.9,    3.98,     _0_0,      _0_0,      0.36),\n                              rates=_R(   0.1,     -0.6,    -3.1,    0.12,     _0_0,      _0_0,      0.02))\n_trfX(_ITRF2020_, _ITRF94_,   epoch=_E(2015),\n                              xform=_X(   6.5,     -3.9,   -77.9,    3.98,     _0_0,      _0_0,      0.36),\n                              rates=_R(   0.1,     -0.6,    -3.1,    0.12,     _0_0,      _0_0,      0.02))\n_trfX(_ITRF2020_, _ITRF93_,   epoch=_E(2015),\n                              xform=_X( -65.8,      1.9,   -71.3,    4.47,     -3.36,     -4.33,    _0_75),\n                              rates=_R(  -2.8,     -0.2,    -2.3,    0.12,     -0.11,     -0.19,     0.07))\n_trfX(_ITRF2020_, _ITRF92_,   epoch=_E(2015),\n                              xform=_X(  14.5,     -1.9,   -85.9,    3.27,     _0_0,      _0_0,      0.36),\n                              rates=_R(   0.1,     -0.6,    -3.1,    0.12,     _0_0,      _0_0,      0.02))\n_trfX(_ITRF2020_, _ITRF91_,   epoch=_E(2015),\n                              xform=_X(  26.5,     12.1,   -91.9,    4.67,     _0_0,      _0_0,      0.36),\n                              rates=_R(   0.1,     -0.6,    -3.1,    0.12,     _0_0,      _0_0,      0.02))\n_trfX(_ITRF2020_, _ITRF90_,   epoch=_E(2015),\n                              xform=_X(  24.5,      8.1,  -107.9,    4.97,     _0_0,      _0_0,      0.36),\n                              rates=_R(   0.1,     -0.6,    -3.1,    0.12,     _0_0,      _0_0,      0.02))\n_trfX(_ITRF2020_, _ITRF89_,   epoch=_E(2015),\n                              xform=_X(  29.5,     32.1,  -145.9,    8.37,     _0_0,      _0_0,      0.36),\n                              rates=_R(   0.1,     -0.6,    -3.1,    0.12,     _0_0,      _0_0,      0.02))\n_trfX(_ITRF2020_, _ITRF88_,   epoch=_E(2015),\n                              xform=_X(  24.5,     -3.9,  -169.9,   11.47,      0.1,      _0_0,      0.36),\n                              rates=_R(   0.1,     -0.6,    -3.1,    0.12,     _0_0,      _0_0,      0.02))\n\n# see U{Transformation Parameters ITRF2014<http://ITRF.IGN.Fr/doc_ITRF/Transfo-ITRF2014_ITRFs.txt>} and\n# Altamimi, Z. U{\"EUREF Technical Note 1: Relationship and Transformation between the International and\n# the European Terrestrial Reference Systems\"<https://ERTS89.ENSG,IFN.Fr/pub/EUREF-TN-1.pdf>} Appendix A.\n_trfX(_ITRF2014_, _ITRF2008_, epoch=(2010),  # <http://ITRF.ENSG.IGN.Fr/ITRF_solutions/2014/tp_14-08.php>\n                              xform=_X(   1.6,      1.9,     2.4,   -0.02,     _0_0,      _0_0,     _0_0),\n                              rates=_R(  _0_0,     _0_0,    -0.1,    0.03,     _0_0,      _0_0,     _0_0))\n_trfX(_ITRF2014_, _ITRF2005_, epoch=_E(2010),\n                              xform=_X(   2.6,     _1_0,    -2.3,    0.92,     _0_0,      _0_0,     _0_0),\n                              rates=_R(   0.3,     _0_0,    -0.1,    0.03,     _0_0,      _0_0,     _0_0))\n_trfX(_ITRF2014_, _ITRF2000_, epoch=_E(2010),\n                              xform=_X(   0.7,      1.2,   -26.1,    2.12,     _0_0,      _0_0,     _0_0),\n                              rates=_R(   0.1,      0.1,    -1.9,    0.11,     _0_0,      _0_0,     _0_0))\n_trfX(_ITRF2014_, _ITRF97_,   epoch=_E(2010),\n                              xform=_X(   7.4,     -0.5,   -62.8,    3.8,      _0_0,      _0_0,      0.26),\n                              rates=_R(   0.1,     -0.5,    -3.3,    0.12,     _0_0,      _0_0,      0.02))\n_trfX(_ITRF2014_, _ITRF96_,   epoch=_E(2010),\n                              xform=_X(   7.4,     -0.5,   -62.8,    3.8,      _0_0,      _0_0,      0.26),\n                              rates=_R(   0.1,     -0.5,    -3.3,    0.12,     _0_0,      _0_0,      0.02))\n_trfX(_ITRF2014_, _ITRF94_,   epoch=_E(2010),\n                              xform=_X(   7.4,     -0.5,   -62.8,    3.8,      _0_0,      _0_0,      0.26),\n                              rates=_R(   0.1,     -0.5,    -3.3,    0.12,     _0_0,      _0_0,      0.02))\n_trfX(_ITRF2014_, _ITRF93_,   epoch=_E(2010),\n                              xform=_X( -50.4,      3.3,   -60.2,    4.29,     -2.81,     -3.38,     0.4),\n                              rates=_R(  -2.8,     -0.1,    -2.5,    0.12,     -0.11,     -0.19,     0.07))\n_trfX(_ITRF2014_, _ITRF92_,   epoch=_E(2010),\n                              xform=_X(  15.4,      1.5,   -70.8,    3.09,     _0_0,      _0_0,      0.26),\n                              rates=_R(   0.1,     -0.5,    -3.3,    0.12,     _0_0,      _0_0,      0.02))\n_trfX(_ITRF2014_, _ITRF91_,   epoch=_E(2010),\n                              xform=_X(  27.4,     15.5,   -76.8,    4.49,     _0_0,      _0_0,      0.26),\n                              rates=_R(   0.1,     -0.5,    -3.3,    0.12,     _0_0,      _0_0,      0.02))\n_trfX(_ITRF2014_, _ITRF90_,   epoch=_E(2010),\n                              xform=_X(  25.4,     11.5,   -92.8,    4.79,     _0_0,      _0_0,      0.26),\n                              rates=_R(   0.1,     -0.5,    -3.3,    0.12,     _0_0,      _0_0,      0.02))\n_trfX(_ITRF2014_, _ITRF89_,   epoch=_E(2010),\n                              xform=_X(  30.4,     35.5,  -130.8,    8.19,     _0_0,      _0_0,      0.26),\n                              rates=_R(   0.1,     -0.5,    -3.3,    0.12,     _0_0,      _0_0,      0.02))\n_trfX(_ITRF2014_, _ITRF88_,   epoch=_E(2010),\n                              xform=_X(  25.4,     -0.5,  -154.8,   11.29,      0.1,      _0_0,      0.26),\n                              rates=_R(   0.1,     -0.5,    -3.3,    0.12,     _0_0,      _0_0,      0.02))\n\n# Pearson, C. & Snay, R. U{\"Introducing HTDP 3.1 to transform coordinates across time and spatial reference\n# frames\"<https://Geodesy.NOAA.gov/TOOLS/Htdp/Pearson_Snay_2012.pdf> Table 7, 1st and 2nd column\n_trfX(_ITRF2008_, _ITRF2005_, epoch=_E(2005),\n                              xform=_X(  -0.5,     -0.9,    -4.7,    0.94,     _0_0,      _0_0,     _0_0),\n                              rates=_R(   0.3,     _0_0,    _0_0,   _0_0,      _0_0,      _0_0,     _0_0))\n# _trfX(_ITRF2008_, _ITRF2005_, epoch=_E(1997),\n#                             xform=_X(  -2.9,     -0.9,    -4.7,    0.94,     _0_0,      _0_0,     _0_0),\n#                             rates=_R(   0.3,     _0_0,    _0_0,   _0_0,      _0_0,      _0_0,     _0_0))\n# see U{Transformation Parameters ITRF2008<http://ITRF.IGN.Fr/doc_ITRF/Transfo-ITRF2008_ITRFs.txt>}\n# _trfX(_ITRF2008_, _ITRF2005_, epoch=_E(2000),  # <http://ITRF.ENSG.IGN.Fr/ITRF_solutions/2008/tp_08-05.php>\n#                             xform=_X(  -2.0,     -0.9,    -4.7,    0.94,     _0_0,      _0_0,     _0_0),\n#                             rates=_R(   0.3,     _0_0,    _0_0,   _0_0,      _0_0,      _0_0,     _0_0))\n_trfX(_ITRF2008_, _ITRF2000_, epoch=_E(2000),\n                              xform=_X(  -1.9,     -1.7,   -10.5,    1.34,     _0_0,      _0_0,     _0_0),\n                              rates=_R(   0.1,      0.1,    -1.8,    0.08,     _0_0,      _0_0,     _0_0))\n_trfX(_ITRF2008_, _ITRF97_,   epoch=_E(2000),\n                              xform=_X(   4.8,      2.6,   -33.2,    2.92,     _0_0,      _0_0,      0.06),\n                              rates=_R(   0.1,     -0.5,    -3.2,    0.09,     _0_0,      _0_0,      0.02))\n_trfX(_ITRF2008_, _ITRF96_,   epoch=_E(2000),\n                              xform=_X(   4.8,      2.6,   -33.2,    2.92,     _0_0,      _0_0,      0.06),\n                              rates=_R(   0.1,     -0.5,    -3.2,    0.09,     _0_0,      _0_0,      0.02))\n_trfX(_ITRF2008_, _ITRF94_,   epoch=_E(2000),\n                              xform=_X(   4.8,      2.6,   -33.2,    2.92,     _0_0,      _0_0,      0.06),\n                              rates=_R(   0.1,     -0.5,    -3.2,    0.09,     _0_0,      _0_0,      0.02))\n_trfX(_ITRF2008_, _ITRF93_,   epoch=_E(2000),\n                              xform=_X( -24.0,      2.4,   -38.6,    3.41,     -1.71,     -1.48,    -0.3),\n                              rates=_R(  -2.8,     -0.1,    -2.4,    0.09,     -0.11,     -0.19,     0.07))\n_trfX(_ITRF2008_, _ITRF92_,   epoch=_E(2000),\n                              xform=_X(  12.8,      4.6,   -41.2,    2.21,     _0_0,      _0_0,      0.06),\n                              rates=_R(   0.1,     -0.5,    -3.2,    0.09,     _0_0,      _0_0,      0.02))\n_trfX(_ITRF2008_, _ITRF91_,   epoch=_E(2000),\n                              xform=_X(  24.8,     18.6,   -47.2,    3.61,     _0_0,     _0_0,       0.06),\n                              rates=_R(   0.1,     -0.5,    -3.2,    0.09,     _0_0,     _0_0,       0.02))\n_trfX(_ITRF2008_, _ITRF90_,   epoch=_E(2000),\n                              xform=_X(  22.8,     14.6,   -63.2,    3.91,     _0_0,     _0_0,       0.06),\n                              rates=_R(   0.1,     -0.5,    -3.2,    0.09,     _0_0,     _0_0,       0.02))\n_trfX(_ITRF2008_, _ITRF89_,   epoch=_E(2000),\n                              xform=_X(  27.8,     38.6,  -101.2,    7.31,     _0_0,     _0_0,       0.06),\n                              rates=_R(   0.1,     -0.5,    -3.2,    0.09,     _0_0,     _0_0,       0.02))\n_trfX(_ITRF2008_, _ITRF88_,   epoch=_E(2000),\n                              xform=_X(  22.8,      2.6,  -125.2,   10.41,      0.1,     _0_0,       0.06),\n                              rates=_R(   0.1,     -0.5,    -3.2,    0.09,     _0_0,     _0_0,       0.02))\n\n# Pearson, C. & Snay, R. U{\"Introducing HTDP 3.1 to transform coordinates across time and spatial reference\n# frames\"<https://Geodesy.NOAA.gov/TOOLS/Htdp/Pearson_Snay_2012.pdf> Table 7, 3rd column\n# _trfX(_ITRF2005_, _ITRF2000_, epoch=_E(1997),\n#                             xform=_X(   0.7,     -1.1,    -0.4,    0.16,     -0.2,      0.1       -1.8),\n#                             rates=_R(  -0.2,      0.1,    -1.8,    0.08,     _0_0,     _0_0,      _0_0))\n_trfX(_ITRF2005_, _ITRF2000_, epoch=_E(2000),  # <http://ITRF.ENSG.IGN.Fr/ITRF_solutions/2005/tp_05-00.php>\n                              xform=_X(   0.1,     -0.8,    -5.8,    0.4,      _0_0,     _0_0,      _0_0),\n                              rates=_R(  -0.2,      0.1,    -1.8,    0.08,     _0_0,     _0_0,      _0_0))\n\n_trfX(_ITRF2000_, _ITRF97_,   epoch=_E(1997),\n                              xform=_X(   0.67,     0.61,   -1.85,   1.55,     _0_0,     _0_0,      _0_0),\n                              rates=_R(  _0_0,     -0.06,   -0.14,   0.01,     _0_0,     _0_0,      -0.02))  # 0.02?\n_trfX(_ITRF2000_, _ITRF96_,   epoch=_E(1997),\n                              xform=_X(   0.67,     0.61,   -1.85,   1.55,     _0_0,     _0_0,      _0_0),\n                              rates=_R(  _0_0,     -0.06,   -0.14,   0.01,     _0_0,     _0_0,       0.02))\n_trfX(_ITRF2000_, _ITRF94_,   epoch=_E(1997),\n                              xform=_X(   0.67,     0.61,   -1.85,   1.55,     _0_0,     _0_0,      _0_0),\n                              rates=_R(  _0_0,     -0.06,   -0.14,   0.01,     _0_0,     _0_0,       0.02))\n_trfX(_ITRF2000_, _ITRF93_,   epoch=_E(1988),\n                              xform=_X(  12.7,      6.5,   -20.9,    1.95,     -0.39,     0.8,      -1.14),\n                              rates=_R(  -2.9,     -0.2,    -0.6,    0.01,     -0.11,    -0.19,      0.07))\n_trfX(_ITRF2000_, _ITRF92_,   epoch=_E(1988),\n                              xform=_X(   1.47,     1.35,   -1.39,  _0_75,     _0_0,     _0_0,      -0.18),\n                              rates=_R(  _0_0,     -0.06,   -0.14,   0.01,     _0_0,     _0_0,       0.02))\n_trfX(_ITRF2000_, _ITRF91_,   epoch=_E(1988),\n                              xform=_X(   26.7,    27.5,   -19.9,    2.15,     _0_0,     _0_0,      -0.18),\n                              rates=_R(   _0_0,    -0.6,    -1.4,    0.01,     _0_0,     _0_0,       0.02))\n_trfX(_ITRF2000_, _ITRF90_,   epoch=_E(1988),\n                              xform=_X(   2.47,     2.35,   -3.59,   2.45,     _0_0,     _0_0,      -0.18),\n                              rates=_R(  _0_0,     -0.06,   -0.14,   0.01,     _0_0,     _0_0,       0.02))\n_trfX(_ITRF2000_, _ITRF89_,   epoch=_E(1988),\n                              xform=_X(   2.97,     4.75,   -7.39,   5.85,     _0_0,     _0_0,      -0.18),\n                              rates=_R(  _0_0,     -0.06,   -0.14,   0.01,     _0_0,     _0_0,       0.02))\n_trfX(_ITRF2000_, _ITRF88_,   epoch=_E(1988),\n                              xform=_X(   2.47,     1.15,   -9.79,   8.95,      0.1,     _0_0,      -0.18),\n                              rates=_R(  _0_0,     -0.06,   -0.14,   0.01,     _0_0,     _0_0,       0.02))\n\n# Soler, T .& Snay R.A. U{\"Transforming Positions and Velocities between the International Terrestrial\n# Reference Frame of 2000 and North American Datum of 1983\"<https://www.ResearchGate.net/publication/245291390>},\n# Pearson, C. & Snay, R. U{\"Introducing HTDP 3.1 to transform coordinates across time and spatial reference\n# frames\"<https://Geodesy.NOAA.gov/TOOLS/Htdp/Pearson_Snay_2012.pdf> Table 7, 5th and 6th column\n_trfX(_ITRF97_,   _ITRF96_,   epoch=_E(1997),\n                              xform=_X(  -2.07,    -0.21,    9.95,  -0.93496,   0.1267,   -0.22355,  -0.06065,),\n                              rates=_R(   0.69,    -0.1,     1.86,  -0.19201,   0.01347,  -0.01514,   0.00027))\n_trfX(_ITRF96_,   _NAD83_,    epoch=_E(1997),\n                              xform=_X( 991.0,   -190.72, -512.9,   _0_0,      25.79,      9.65,     11.66,),\n                              rates=_R(  _0_0,     _0_0,    _0_0,   _0_0,       0.0532,   -0.7423,   -0.0316,))\n\n# see Altamimi, Z. U{\"EUREF Technical Note 1: Relationship and Transformation between the International and\n# the European Terrestrial Reference Systems\"<https://ERTS89.ENSG.IFN.Fr/pub/EUREF-TN-1-Jan-31-2024.pdf>} Table 1.\n# _trfX(_ITRF2020_, _ETRF2020_, epoch=_E(1989),  # see Table 2 below\n#                             xform=_P_0_0s,\n#                             rates=_R(  _0_0,     _0_0,    _0_0,   _0_0,       0.086,     0.519,    -0.753))\n# _trfX(_ITRF2014_, _ETRF2014_, epoch=_E(1989),  # see Table 3 below\n#                             xform=_P_0_0s,\n#                             rates=_R(  _0_0,     _0_0,    _0_0,   _0_0,       0.085,     0.531,    -0.77))\n_trfX(_ITRF2005_, _ETRF2005_, epoch=_E(1989),\n                              xform=_X(  56.0,     48.0,   -37.0,   _0_0,      _0_0,      _0_0,      _0_0),\n                              rates=_R(  _0_0,     _0_0,    _0_0,   _0_0,       0.054,     0.518,    -0.781))\n# _trfX(_ITRF2000_, _ETRF2000_, epoch=_E(1989),  # see Table 4 below\n#                             xform=_X(  54.0,     51.0,   -48.0,   _0_0,      _0_0,      _0_0,      _0_0),\n#                             rates=_R(  _0_0,     _0_0,    _0_0,   _0_0,       0.081,     0.49,     -0.792))\n_trfX(_ITRF97_,   _ETRF97_,   epoch=_E(1989),\n                              xform=_X(  41.0,     41.0,   -49.0,   _0_0,      _0_0,      _0_0,      _0_0),\n                              rates=_R(  _0_0,     _0_0,    _0_0,   _0_0,       0.2,       0.5,      -0.65))\n_trfX(_ITRF96_,   _ETRF96_,   epoch=_E(1989),\n                              xform=_X(  41.0,     41.0,   -49.0,   _0_0,      _0_0,      _0_0,      _0_0),\n                              rates=_R(  _0_0,     _0_0,    _0_0,   _0_0,       0.2,       0.5,      -0.65))\n_trfX(_ITRF94_,   _ETRF94_,   epoch=_E(1989),\n                              xform=_X(  41.0,     41.0,   -49.0,   _0_0,      _0_0,      _0_0,      _0_0),\n                              rates=_R(  _0_0,     _0_0,    _0_0,   _0_0,       0.2,       0.5,      -0.65))\n_trfX(_ITRF93_,   _ETRF93_,   epoch=_E(1989),\n                              xform=_X(  19.0,     53.0,   -21.0,   _0_0,      _0_0,      _0_0,      _0_0),\n                              rates=_R(  _0_0,     _0_0,    _0_0,   _0_0,       0.32,      0.78,     -0.67))\n_trfX(_ITRF92_,   _ETRF92_,   epoch=_E(1989),\n                              xform=_X(  38.0,     40.0,   -37.0,    0.0,       0.0,       0.0,       0.0),\n                              rates=_R(  _0_0,     _0_0,    _0_0,   _0_0,       0.21,      0.52,     -0.68))\n_trfX(_ITRF91_,   _ETRF91_,   epoch=_E(1989),\n                              xform=_X(  21.0,     25.0,   -37.0,   _0_0,      _0_0,      _0_0,      _0_0),\n                              rates=_R(  _0_0,     _0_0,    _0_0,   _0_0,       0.21,      0.52,     -0.68))\n_trfX(_ITRF90_,   _ETRF90_,   epoch=_E(1989),\n                              xform=_X(  19.0,     28.0,   -23.0,   _0_0,      _0_0,      _0_0,      _0_0),\n                              rates=_R(  _0_0,     _0_0,    _0_0,   _0_0,       0.11,      0.57,     -0.71))\n_trfX(_ITRF89_,   _ETRF89_,   epoch=_E(1989),\n                              xform=_P_0_0s,\n                              rates=_R(  _0_0,     _0_0,    _0_0,   _0_0,       0.11,      0.57,     -0.71))\n\n# see Altamimi, Z. U{\"EUREF Technical Note 1: Relationship and Transformation between the International and\n# the European Terrestrial Reference Systems\"<https://ERTS89.ENSG.IFN.Fr/pub/EUREF-TN-1-Jan-31-2024.pdf>} Table 2.\n_trfX(_ITRF2020_, _ETRF2020_, epoch=_E(2015),\n                              xform=_X(  _0_0,     _0_0,    _0_0,   _0_0,       2.236,    13.494,   -19.578),\n                              rates=_R(  _0_0,     _0_0,    _0_0,   _0_0,       0.086,     0.519,    -0.753))\n_trfX(_ITRF2014_, _ETRF2020_, epoch=_E(2015),\n                              xform=_X(   1.4,      0.9,    -1.4,    0.42,      2.236,    13.494,   -19.578),\n                              rates=_R(  _0_0,      0.1,    -0.2,   _0_0,       0.086,     0.519,    -0.753))\n_trfX(_ITRF2008_, _ETRF2020_, epoch=_E(2015),\n                              xform=_X(   3.0,      2.8,     0.5,    0.55,      2.236,    13.494,   -19.578),\n                              rates=_R(  _0_0,      0.1,    -0.3,    0.03,      0.086,     0.519,    -0.753))\n_trfX(_ITRF2005_, _ETRF2020_, epoch=_E(2015),\n                              xform=_X(   5.5,      1.9,    -4.2,    1.49,      2.236,    13.494,   -19.578),\n                              rates=_R(   0.3,      0.1,    -0.3,    0.03,      0.086,     0.519,    -0.753))\n_trfX(_ITRF2000_, _ETRF2020_, epoch=_E(2015),\n                              xform=_X(   2.6,      2.6,   -37.0,    3.09,      2.236,    13.494,   -19.578),\n                              rates=_R(   0.1,      0.2,    -2.1,    0.11,      0.086,     0.519,    -0.753))\n_trfX(_ITRF97_,   _ETRF2020_, epoch=_E(2015),\n                              xform=_X(   9.3,     -2.1,   -80.7,    4.82,      2.236,    13.494,   -19.218),\n                              rates=_R(   0.1,     -0.4,    -3.5,    0.12,      0.086,     0.519,    -0.733))\n_trfX(_ITRF96_,   _ETRF2020_, epoch=_E(2015),\n                              xform=_X(   9.3,     -2.1,   -80.7,    4.82,      2.236,    13.494,   -19.218),\n                              rates=_R(   0.1,     -0.4,    -3.5,    0.12,      0.086,     0.519,    -0.733))\n_trfX(_ITRF94_,   _ETRF2020_, epoch=_E(2015),\n                              xform=_X(   9.3,     -2.1,   -80.7,    4.82,      2.236,    13.494,   -19.218),\n                              rates=_R(   0.1,     -0.4,    -3.5,    0.12,      0.086,     0.519,    -0.733))\n_trfX(_ITRF93_,   _ETRF2020_, epoch=_E(2015),\n                              xform=_X( -63.0,      3.7,   -74.1,    5.31,     -1.124,     9.164,   -18.828),\n                              rates=_R(  -2.8,     _0_0,    -2.7,    0.12,     -0.024,     0.329,    -0.683))\n_trfX(_ITRF92_,   _ETRF2020_, epoch=_E(2015),\n                              xform=_X(  17.3,     -0.1,   -88.7,    4.11,      2.236,    13.494,   -19.218),\n                              rates=_R(   0.1,     -0.4,    -3.5,    0.12,      0.086,     0.519,    -0.733))\n_trfX(_ITRF91_,   _ETRF2020_, epoch=_E(2015),\n                              xform=_X(  29.3,     13.9,   -94.7,    5.51,      2.236,    13.494,   -19.218),\n                              rates=_R(   0.1,     -0.4,    -3.5,    0.12,      0.086,     0.519,    -0.733))\n_trfX(_ITRF90_,   _ETRF2020_, epoch=_E(2015),\n                              xform=_X(  27.3,      9.9,  -110.7,    5.81,      2.236,    13.494,   -19.218),\n                              rates=_R(   0.1,     -0.4,    -3.5,    0.12,      0.086,     0.519,    -0.733))\n_trfX(_ITRF89_,   _ETRF2020_, epoch=_E(2015),\n                              xform=_X(  32.3,     33.9,  -148.7,    9.21,      2.236,    13.494,   -19.218),\n                              rates=_R(   0.1,     -0.4,    -3.5,    0.12,      0.086,     0.519,    -0.733))\n_trfX(_ITRF88_,   _ETRF2020_, epoch=_E(2015),\n                              xform=_X(  27.3,     -2.1,  -172.7,   12.31,      2.336,    13.494,   -19.218),\n                              rates=_R(   0.1,     -0.4,    -3.5,    0.12,      0.086,     0.519,    -0.733))\n\n# see Altamimi, Z. U{\"EUREF Technical Note 1: Relationship and Transformation between the International and\n# the European Terrestrial Reference Systems\"<https://ERTS89.ENSG.IFN.Fr/pub/EUREF-TN-1-Jan-31-2024.pdf>} Table 3.\n_trfX(_ITRF2020_, _ETRF2014_, epoch=_E(2015),\n                              xform=_X(  -1.4,     -0.9,     1.4,    0.42,      2.21,     13.806,   -20.02),\n                              rates=_R(  _0_0,     -0.1,     0.2,   _0_0,       0.085,     0.531,    -0.77))\n_trfX(_ITRF2014_, _ETRF2014_, epoch=_E(2015),\n                              xform=_X(  _0_0,     _0_0,    _0_0,   _0_0,       2.21,     13.806,   -20.02),\n                              rates=_R(  _0_0,     _0_0,    _0_0,   _0_0,       0.085,     0.531,    -0.77))\n_trfX(_ITRF2008_, _ETRF2014_, epoch=_E(2015),\n                              xform=_X(  -1.6,     -1.9,    -1.9,   -0.13,      2.21,     13.806,   -20.02),\n                              rates=_R(  _0_0,     _0_0,     0.1,   -0.03,      0.085,     0.531,    -0.77))\n_trfX(_ITRF2005_, _ETRF2014_, epoch=_E(2015),\n                              xform=_X(  -4.1,     -1.0,     2.8,   -1.07,      2.21,     13.806,   -20.02),\n                              rates=_R(  -0.3,     _0_0,     0.1,   -0.03,      0.085,     0.531,    -0.77))\n_trfX(_ITRF2000_, _ETRF2014_, epoch=_E(2015),\n                              xform=_X(  -1.2,     -1.7,    35.6,   -2.67,      2.21,     13.806,   -20.02),\n                              rates=_R(  -0.1,     -0.1,     1.9,   -0.11,      0.085,     0.531,    -0.77))\n_trfX(_ITRF97_,   _ETRF2014_, epoch=_E(2015),\n                              xform=_X(  -7.9,      3.0,    79.3,   -4.40,      2.210,    13.806,   -20.38),\n                              rates=_R(  -0.1,      0.5,     3.3,   -0.12,      0.085,     0.531,    -0.79))\n_trfX(_ITRF96_,   _ETRF2014_, epoch=_E(2015),\n                              xform=_X(  -7.9,      3.0,    79.3,   -4.40,      2.210,    13.806,   -20.38),\n                              rates=_R(  -0.1,      0.5,     3.3,   -0.12,      0.085,     0.531,    -0.79))\n_trfX(_ITRF94_,   _ETRF2014_, epoch=_E(2015),\n                              xform=_X(  -7.9,      3.0,    79.3,   -4.40,      2.210,    13.806,   -20.38),\n                              rates=_R(  -0.1,      0.5,     3.3,   -0.12,      0.085,     0.531,    -0.79))\n_trfX(_ITRF93_,   _ETRF2014_, epoch=_E(2015),\n                              xform=_X(  64.4,     -2.8,    72.7,   -4.89,      5.570,    18.136,   -20.77),\n                              rates=_R(   2.8,      0.1,     2.5,   -0.12,      0.195,     0.721,    -0.84))\n_trfX(_ITRF92_,   _ETRF2014_, epoch=_E(2015),\n                              xform=_X( -15.9,      1.0,    87.3,   -3.69,      2.21,     13.806,   -20.38),\n                              rates=_R(  -0.1,      0.5,     3.3,   -0.12,      0.085,     0.531,    -0.79))\n_trfX(_ITRF91_,   _ETRF2014_, epoch=_E(2015),\n                              xform=_X( -27.9,    -13.0,    93.3,   -5.09,      2.21,     13.806,   -20.38),\n                              rates=_R(  -0.1,      0.5,     3.3,   -0.12,      0.085,     0.531,    -0.79))\n_trfX(_ITRF90_,   _ETRF2014_, epoch=_E(2015),\n                              xform=_X( -25.9,     -9.0,   109.3,   -5.39,      2.21,     13.806,   -20.38),\n                              rates=_R(  -0.1,      0.5,     3.3,   -0.12,      0.085,     0.531,    -0.79))\n_trfX(_ITRF89_,   _ETRF2014_, epoch=_E(2015),\n                              xform=_X( -30.9,    -33.0,   147.3,   -8.79,      2.21,     13.806,   -20.38),\n                              rates=_R(  -0.1,      0.5,     3.3,   -0.12,      0.085,     0.531,    -0.79))\n_trfX(_ITRF88_,   _ETRF2014_, epoch=_E(2015),\n                              xform=_X( -25.9,      3.0,   171.3,  -11.89,      2.11,     13.806,   -20.38),\n                              rates=_R(  -0.1,      0.5,     3.3,   -0.12,      0.085,     0.531,    -0.79))\n\n# see U{Altamimi, Z. \"EUREF Technical Note 1: Relationship and Transformation between the International and\n# the European Terrestrial Reference Systems\"<https://ERTS89.ENSG,IFN.Fr/pub/EUREF-TN-1-Jan-31-2024.pdf>} Table 4,\n# U{Boucher, C. & Altamimi, Z. \"Memo: Specifications for reference frame fixing in the analysis of a EUREF GPS\n# campaign\" (2011) <https://ETRS89.ENSG.IGN.Fr/memo-V8.pdf>} and U{Altamimi, Z. \"Key results of ITRF2014 and\n# implication to ETRS89 realization\", EUREF2016<https://www.EUREF.EU/symposia/2016SanSebastian/01-02-Altamimi.pdf>}.\n_trfX(_ITRF2020_, _ETRF2000_, epoch=_E(2015),\n                              xform=_X(  53.8,     51.8,   -82.2,    2.25,      2.106,   12.74,    -20.592),\n                              rates=_R(   0.1,     _0_0,    -1.7,    0.11,      0.081,    0.49,     -0.792))\n# _trfX(_ITRF2014_, _ETRF2000_, epoch=_E(2000),\n#                             xform=_X(  53.7,     51.2,   -55.1,    1.02,      0.891,    5.39,     -8.712),\n#                             rates=_R(   0.1,      0.1,    -1.9,    0.11,      0.081,    0.49,     -0.792))\n_trfX(_ITRF2014_, _ETRF2000_, epoch=_E(2015),\n                              xform=_X(  55.2,     52.7,   -83.6,    2.67,      2.106,   12.74,    -20.592),\n                              rates=_R(   0.1,      0.1,    -1.9,    0.11,      0.081,    0.49,     -0.792))\n# _trfX(_ITRF2008_, _ETRF2000_, epoch=_E(2000),\n#                             xform=_X(  52.1,     49.3,   -58.5,    1.34,      0.891,    5.39,     -8.712),\n#                             rates=_R(   0.1,      0.1,    -1.8,    0.08,      0.081,    0.49,     -0.792))\n_trfX(_ITRF2008_, _ETRF2000_, epoch=_E(2015),\n                              xform=_X(  53.6,     50.8,   -85.5,    2.54,      2.106,   12.74,    -20.592),\n                              rates=_R(   0.1,      0.1,    -1.8,    0.08,      0.081,    0.49,     -0.792))\n# _trfX(_ITRF2005_, _ETRF2000_, epoch=_E(2000),\n#                             xform=_X(  54.1,     50.2,   -53.8,    0.4,       0.891,    5.39,     -8.712),\n#                             rates=_R(  -0.2,      0.1,    -1.8,    0.08,      0.081,    0.49,     -0.792))\n_trfX(_ITRF2005_, _ETRF2000_, epoch=_E(2015),\n                              xform=_X(  51.1,     51.7,   -80.8,    1.6,       2.106,   12.74,    -20.592),\n                              rates=_R(  -0.2,      0.1,    -1.8,    0.08,      0.081,    0.49,     -0.792))\n# _trfX(_ITRF2000_, _ETRF2000_, epoch=_E(2000),\n#                             xform=_X(  54.0,     51.0,   -48.0,   _0_0,       0.891,    5.39,     -8.712),\n#                             rates=_R(  _0_0,     _0_0,    _0_0,   _0_0,       0.081,    0.49,     -0.792))\n_trfX(_ITRF2000_, _ETRF2000_, epoch=_E(2015),\n                              xform=_X(  54.0,     51.0,   -48.0,   _0_0,       2.106,   12.74,    -20.592),\n                              rates=_R(  _0_0,     _0_0,    _0_0,   _0_0,       0.081,    0.49,     -0.792))\n_trfX(_ITRF97_,   _ETRF2000_, epoch=_E(2015),\n                              xform=_X(  47.3,     55.7,    -4.3,   -1.73,      2.106,   12.74,    -20.952),\n                              rates=_R(  _0_0,      0.6,     1.4,   -0.01,      0.081,    0.49,     -0.812))\n_trfX(_ITRF96_,   _ETRF2000_, epoch=_E(2015),\n                              xform=_X(  47.3,     55.7,    -4.3,   -1.73,      2.106,   12.74,    -20.952),\n                              rates=_R(  _0_0,      0.6,     1.4,   -0.01,      0.081,    0.49,     -0.812))\n_trfX(_ITRF94_,   _ETRF2000_, epoch=_E(2015),\n                              xform=_X(  47.3,     55.7,    -4.3,   -1.73,      2.106,   12.74,    -20.952),\n                              rates=_R(  _0_0,      0.6,     1.4,   -0.01,      0.081,    0.49,     -0.812))\n_trfX(_ITRF93_,   _ETRF2000_, epoch=_E(2015),\n                              xform=_X( 119.6,     49.9,   -10.9,   -2.22,      5.466,   17.07,    -21.342),\n                              rates=_R(   2.9,      0.2,     0.6,   -0.01,      0.191,    0.68,     -0.862))\n_trfX(_ITRF92_,   _ETRF2000_, epoch=_E(2015),\n                              xform=_X(  39.3,     53.7,     3.7,   -1.02,      2.106,   12.74,    -20.952),\n                              rates=_R(  _0_0,      0.6,     1.4,   -0.01,      0.081,    0.49,     -0.812))\n_trfX(_ITRF91_,   _ETRF2000_, epoch=_E(2015),\n                              xform=_X(  27.3,     39.7,     9.7,   -2.42,      2.106,   12.74,    -20.952),\n                              rates=_R(  _0_0,      0.6,     1.4,   -0.01,      0.081,    0.49,     -0.812))\n_trfX(_ITRF90_,   _ETRF2000_, epoch=_E(2015),\n                              xform=_X(  29.3,     43.7,    25.7,   -2.72,      2.106,   12.74,    -20.952),\n                              rates=_R(  _0_0,      0.6,     1.4,   -0.01,      0.081,    0.49,     -0.812))\n_trfX(_ITRF89_,   _ETRF2000_, epoch=_E(2015),\n                              xform=_X(  24.3,     19.7,    63.7,   -6.12,      2.106,   12.74,    -20.952),\n                              rates=_R(  _0_0,      0.6,     1.4,   -0.01,      0.081,    0.49,     -0.812))\n_trfX(_ITRF88_,   _ETRF2000_, epoch=_E(2015),\n                              xform=_X(  29.3,     55.7,    87.7,   -9.22,      2.006,   12.74,    -20.952),\n                              rates=_R(  _0_0,      0.6,     1.4,   -0.01,      0.081,    0.49,     -0.812))\n\n# GDA2020 \"Geocentric Datum of Australia 2020 Technical Manual\", v1.5, 2020-12-09, Table 3.3 and 3.4\n# <https://www.ICSM.gov.AU/sites/default/files/2020-12/GDA2020%20Technical%20Manual%20V1.5_4.pdf>\n# (the GDA2020 xforms are different but the rates are the same as GDA94, further below)\n_trfX(_ITRF2014_, _GDA2020_,  epoch=_E(2020),\n                              xform=_P_0_0s,\n                              rates=_R(  _0_0,     _0_0,    _0_0,   _0_0,       1.50379,  1.18346,   1.20716))\n_trfX(_ITRF2008_, _GDA2020_,  epoch=_E(2020),\n                              xform=_X(  13.79,     4.55,   15.22,   2.5,       0.2808,   0.2677,   -0.4638),\n                              rates=_R(   1.42,     1.34,    0.9,    0.109,     1.5461,   1.182,     1.1551))\n_trfX(_ITRF2005_, _GDA2020_,  epoch=_E(2020),\n                              xform=_X(  40.32,   -33.85,  -16.72,   4.286,    -1.2893,  -0.8492,   -0.3342),\n                              rates=_R(   2.25,    -0.62,   -0.56,   0.294,    -1.4707,  -1.1443,   -1.1701))\n_trfX(_ITRF2000_, _GDA2020_,  epoch=_E(2020),\n                              xform=_X(-105.52,    51.58,  231.68,   3.55,      4.2175,   6.3941,    0.8617),\n                              rates=_R(  -4.66,     3.55,   11.24,   0.249,     1.7454,   1.4868,    1.224))\n\n# see Table 2 in U{Dawson, J. & Woods, A. \"ITRF to GDA94 coordinate transformations\", Journal of Applied\n# Geodesy 4 (2010), 189-199<https://www.ResearchGate.net/publication/258401581_ITRF_to_GDA94_coordinate_transformations>}\n# (note, sign of rotations for GDA94 reversed as \"Australia assumes rotation to be of coordinate axes\",\n# rather than the more conventional \"position around the coordinate axes\")\n_trfX(_ITRF2008_, _GDA94_,    epoch=_E(1994),\n                              xform=_X( -84.68,   -19.42,   32.01,   9.71,     -0.4254,   2.2578,    2.4015),\n                              rates=_R(   1.42,     1.34,    0.9,    0.109,     1.5461,   1.182,     1.1551))\n_trfX(_ITRF2005_, _GDA94_,    epoch=_E(1994),\n                              xform=_X( -79.73,    -6.86,   38.03,   6.636,     0.0351,  -2.1211,   -2.1411),\n                              rates=_R(   2.25,    -0.62,   -0.56,   0.294,    -1.4707,  -1.1443,   -1.1701))\n_trfX(_ITRF2000_, _GDA94_,    epoch=_E(1994),\n                              xform=_X( -45.91,   -29.85,  -20.37,   7.07,     -1.6705,   0.4594,    1.9356),\n                              rates=_R(  -4.66,     3.55,   11.24,   0.249,     1.7454,   1.4868,    1.224))\n\n# see U{Quinsy QPS<https://confluence.QPS.NL/qinsy/files/latest/en/182618383/182618384/1/1579182881000/\n# ITRF_Transformation_Parameters.xlsx>}, sheets ITRF and NAD83 and Pearson, C. & Snay, R. U{\"Introducing\n# HTDP 3.1 to transform coordinates across time and spatial reference frames\"<https://Geodesy.NOAA.gov/\n# TOOLS/Htdp/Pearson_Snay_2012.pdf> Table 7, 7th column\n_trfX(_ITRF2008_, _NAD83_,    epoch=_E(1997),\n                              xform=_X( 993.43, -1903.31, -526.55,   1.71504, -25.91467, -9.42645, -11.59935),\n                              rates=_R(   0.79,    -0.6,    -1.34,  -0.10201,  -0.06667,  0.75744,   0.05133))\n# see U{Quinsy QPS<https://confluence.QPS.NL/qinsy/files/latest/en/182618383/182618384/1/1579182881000/\n# ITRF_Transformation_Parameters.xlsx>}, sheets ITRF and NAD83\n_trfX(_ITRF2005_, _NAD83_,    epoch=_E(1997),\n                              xform=_X( 996.3,  -1902.4,  -521.9,    0.775,   -25.915,   -9.426,   -11.599),\n                              rates=_R(   0.5,     -0.6,    -1.3,   -0.10201,  -0.06667,  0.75744,   0.05133))\n# see U{Solar, T. & Snay, R.A. \"Transforming Positions and Velocities between the International Terrestrial Reference\n# Frame of 2000 and North American Datum of 1983\" (2004)<https://www.NGS.NOAA.gov/CORS/Articles/SolerSnayASCE.pdf>}\n_trfX(_ITRF2000_, _NAD83_,    epoch=_E(1997),  # note NAD83(CORS96)\n                              xform=_X( 995.6,  -1901.3,  -521.5,    0.615,   -25.915,   -9.426,   -11.599),\n                              rates=_R(   0.7,     -0.7,    _0_5,   -0.182,    -0.06667,  0.75744,   0.05133))\n_trfX(_ITRF90_,   _NAD83_,    epoch=_E(1997),\n                              xform=_X( 973.0,  -1919.2,  -482.9,   -0.9,     -25.79,    -9.65,    -11.66),\n                              rates=_R(  _0_0,     _0_0,    _0_0,   _0_0,      -0.053,    0.742,     0.032))\n_trfX(_ITRF90_,   _WGS84_,    epoch=_E(1984),  # coverage\n                              xform=_X(  60.0,   -517.0,  -223.0,  -11.0,      18.3,     -0.3,       7.0),\n                              rates=_P_0_0s)\n\n# equivalents U{\"Transformations Between NAD83 and WGS84\"<https://www.NGS.NOAA.gov/CORS/Articles/WGS84NAD83.pdf>}\ntrfXform(_NAD83cors96_, _NAD83_,    epoch=_E(1997), xform=_P_0_0s, rates=_P_0_0s)\ntrfXform(_WGS84g1150_,  _ITRF2000_, epoch=_E(2004), xform=_P_0_0s, rates=_P_0_0s)\n\ndel _E, _Es, _i, _P, _P_0_0s, _R, _Rs, _X, _Xs\n\nif __name__ == _DMAIN_:\n\n    def _main():\n        from pygeodesy.basics import _args_kwds_names\n        from pygeodesy.interns import _COLONSPACE_,_COMMA_, _NL_, _NLATvar_, _vs_\n        from pygeodesy import printf\n        from time import localtime\n\n        D = typename(date2epoch)\n        E = typename(epoch2date)\n        y = localtime()[0]\n        for m in range(1, 13):\n            for d in (1, 15, _mDays[m] - 1, _mDays[m]):\n                f = '%s(%d,%3d,%3d)' % (D, y, m, d)\n                e = date2epoch(y, m, d)\n                t = epoch2date(e)\n                x = NN if t == (y, m, d) else _STAR_\n                e = '%.3f' % (e,)\n                e = '%s, %s(%s)' % (e, E, e)\n                t = '%d,%3d,%3d' % t\n                printf('# %s = %s = %s %s', f, e, t, x)\n\n        # __doc__ of this file, force all into registry\n        def _RFs():\n            yield NN\n            for t in RefFrames.toRepr(all=True).split(_NL_):\n                t = t.strip(_COMMA_)\n                n = t.split(_COLONSPACE_)[0].split(_DOT_)[1]\n                r = RefFrames.get(n)\n                x = len(r.Xforms()), -len(r.Xforms(inverse=True))\n                yield '%s .Xforms=%s' % (t, x)\n\n        printf(_NLATvar_.join(sorted(_RFs())), nt=1)\n\n        X, t = (), 0  # all  form\n        for r in RefFrames.values():\n            X += tuple(r._Xto.values())\n        for X in sorted(X):\n            t += 1\n            printf('#%4d %-24s xform=%r', t, X.name, X.xform)\n            printf('#%29s rates=%r', _SPACE_, X.rates)\n\n        t = _args_kwds_names(Transform.__init__)\n        for n in TRFXform7Tuple._Names_:\n            if n not in t:\n                raise AssertionError(_SPACE_(n, _vs_, t))\n\n    _main()\n#   del _main\n\n# **) MIT License\n#\n# Copyright (C) 2016-2026 -- mrJean1 at Gmail -- All Rights Reserved.\n#\n# Permission is hereby granted, free of charge, to any person obtaining a\n# copy of this software and associated documentation files (the \"Software\"),\n# to deal in the Software without restriction, including without limitation\n# the rights to use, copy, modify, merge, publish, distribute, sublicense,\n# and/or sell copies of the Software, and to permit persons to whom the\n# Software is furnished to do so, subject to the following conditions:\n#\n# The above copyright notice and this permission notice shall be included\n# in all copies or substantial portions of the Software.\n#\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL\n# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR\n# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\n# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n# OTHER DEALINGS IN THE SOFTWARE.\n\n# % python -m pygeodesy.trf\n#\n# date2epoch(2024,  1,  1) = 2024.003, epoch2date(2024.003) = 2024,  1,  1\n# date2epoch(2024,  1, 15) = 2024.041, epoch2date(2024.041) = 2024,  1, 15\n# date2epoch(2024,  1, 30) = 2024.082, epoch2date(2024.082) = 2024,  1, 30\n# date2epoch(2024,  1, 31) = 2024.085, epoch2date(2024.085) = 2024,  1, 31\n# date2epoch(2024,  2,  1) = 2024.087, epoch2date(2024.087) = 2024,  2,  2 *\n# date2epoch(2024,  2, 15) = 2024.126, epoch2date(2024.126) = 2024,  2, 16 *\n# date2epoch(2024,  2, 28) = 2024.161, epoch2date(2024.161) = 2024,  2, 28\n# date2epoch(2024,  2, 29) = 2024.164, epoch2date(2024.164) = 2024,  3,  1 *\n# date2epoch(2024,  3,  1) = 2024.167, epoch2date(2024.167) = 2024,  3,  2 *\n# date2epoch(2024,  3, 15) = 2024.205, epoch2date(2024.205) = 2024,  3, 16 *\n# date2epoch(2024,  3, 30) = 2024.246, epoch2date(2024.246) = 2024,  3, 31 *\n# date2epoch(2024,  3, 31) = 2024.249, epoch2date(2024.249) = 2024,  4,  1 *\n# date2epoch(2024,  4,  1) = 2024.251, epoch2date(2024.251) = 2024,  4,  1\n# date2epoch(2024,  4, 15) = 2024.290, epoch2date(2024.290) = 2024,  4, 15\n# date2epoch(2024,  4, 29) = 2024.328, epoch2date(2024.328) = 2024,  4, 29\n# date2epoch(2024,  4, 30) = 2024.331, epoch2date(2024.331) = 2024,  4, 30\n# date2epoch(2024,  5,  1) = 2024.333, epoch2date(2024.333) = 2024,  5,  1\n# date2epoch(2024,  5, 15) = 2024.372, epoch2date(2024.372) = 2024,  5, 15\n# date2epoch(2024,  5, 30) = 2024.413, epoch2date(2024.413) = 2024,  5, 30\n# date2epoch(2024,  5, 31) = 2024.415, epoch2date(2024.415) = 2024,  6,  1 *\n# date2epoch(2024,  6,  1) = 2024.418, epoch2date(2024.418) = 2024,  6,  2 *\n# date2epoch(2024,  6, 15) = 2024.456, epoch2date(2024.456) = 2024,  6, 16 *\n# date2epoch(2024,  6, 29) = 2024.495, epoch2date(2024.495) = 2024,  6, 30 *\n# date2epoch(2024,  6, 30) = 2024.497, epoch2date(2024.497) = 2024,  7,  1 *\n# date2epoch(2024,  7,  1) = 2024.500, epoch2date(2024.500) = 2024,  7,  1\n# date2epoch(2024,  7, 15) = 2024.538, epoch2date(2024.538) = 2024,  7, 16 *\n# date2epoch(2024,  7, 30) = 2024.579, epoch2date(2024.579) = 2024,  7, 30\n# date2epoch(2024,  7, 31) = 2024.582, epoch2date(2024.582) = 2024,  7, 31\n# date2epoch(2024,  8,  1) = 2024.585, epoch2date(2024.585) = 2024,  8,  1\n# date2epoch(2024,  8, 15) = 2024.623, epoch2date(2024.623) = 2024,  8, 15\n# date2epoch(2024,  8, 30) = 2024.664, epoch2date(2024.664) = 2024,  8, 31 *\n# date2epoch(2024,  8, 31) = 2024.667, epoch2date(2024.667) = 2024,  9,  1 *\n# date2epoch(2024,  9,  1) = 2024.669, epoch2date(2024.669) = 2024,  9,  2 *\n# date2epoch(2024,  9, 15) = 2024.708, epoch2date(2024.708) = 2024,  9, 16 *\n# date2epoch(2024,  9, 29) = 2024.746, epoch2date(2024.746) = 2024,  9, 30 *\n# date2epoch(2024,  9, 30) = 2024.749, epoch2date(2024.749) = 2024, 10,  1 *\n# date2epoch(2024, 10,  1) = 2024.751, epoch2date(2024.751) = 2024, 10,  1\n# date2epoch(2024, 10, 15) = 2024.790, epoch2date(2024.790) = 2024, 10, 15\n# date2epoch(2024, 10, 30) = 2024.831, epoch2date(2024.831) = 2024, 10, 30\n# date2epoch(2024, 10, 31) = 2024.833, epoch2date(2024.833) = 2024, 10, 31\n# date2epoch(2024, 11,  1) = 2024.836, epoch2date(2024.836) = 2024, 11,  1\n# date2epoch(2024, 11, 15) = 2024.874, epoch2date(2024.874) = 2024, 11, 15\n# date2epoch(2024, 11, 29) = 2024.913, epoch2date(2024.913) = 2024, 11, 29\n# date2epoch(2024, 11, 30) = 2024.915, epoch2date(2024.915) = 2024, 12,  1 *\n# date2epoch(2024, 12,  1) = 2024.918, epoch2date(2024.918) = 2024, 12,  2 *\n# date2epoch(2024, 12, 15) = 2024.956, epoch2date(2024.956) = 2024, 12, 16 *\n# date2epoch(2024, 12, 30) = 2024.997, epoch2date(2024.997) = 2024, 12, 31 *\n# date2epoch(2024, 12, 31) = 2025.000, epoch2date(2025.000) = 2025,  1,  1 *\n\n#   1 WGS84g1150@2004xITRF2000 xform=unity(tx=0.0, ty=0.0, tz=0.0, s=0.0, sx=0.0, sy=0.0, sz=0.0)\n#                              rates=unity(tx=0.0, ty=0.0, tz=0.0, s=0.0, sx=0.0, sy=0.0, sz=0.0)\n#   2 NAD83cors96@1997xNAD83   xform=unity(tx=0.0, ty=0.0, tz=0.0, s=0.0, sx=0.0, sy=0.0, sz=0.0)\n#                              rates=unity(tx=0.0, ty=0.0, tz=0.0, s=0.0, sx=0.0, sy=0.0, sz=0.0)\n#   3 ITRF88@2015xETRF2014     xform=xform(tx=-25.9, ty=3.0, tz=171.3, s=-11.89, sx=2.11, sy=13.806, sz=-20.38)\n#                              rates=rates(tx=-0.1, ty=0.5, tz=3.3, s=-0.12, sx=0.085, sy=0.531, sz=-0.79)\n#   4 ITRF89@2015xETRF2000     xform=xform(tx=24.3, ty=19.7, tz=63.7, s=-6.12, sx=2.106, sy=12.74, sz=-20.952)\n#                              rates=rates(tx=0.0, ty=0.6, tz=1.4, s=-0.01, sx=0.081, sy=0.49, sz=-0.812)\n#   5 ITRF89@2015xETRF2014     xform=xform(tx=-30.9, ty=-33.0, tz=147.3, s=-8.79, sx=2.21, sy=13.806, sz=-20.38)\n#                              rates=rates(tx=-0.1, ty=0.5, tz=3.3, s=-0.12, sx=0.085, sy=0.531, sz=-0.79)\n#   6 ITRF89@2015xETRF2020     xform=xform(tx=32.3, ty=33.9, tz=-148.7, s=9.21, sx=2.236, sy=13.494, sz=-19.218)\n#                              rates=rates(tx=0.1, ty=-0.4, tz=-3.5, s=0.12, sx=0.086, sy=0.519, sz=-0.733)\n#   7 ITRF89@1989xETRF89       xform=unity(tx=0.0, ty=0.0, tz=0.0, s=0.0, sx=0.0, sy=0.0, sz=0.0)\n#                              rates=rates(tx=0.0, ty=0.0, tz=0.0, s=0.0, sx=0.11, sy=0.57, sz=-0.71)\n#   8 ITRF90@1984xWGS84        xform=xform(tx=60.0, ty=-517.0, tz=-223.0, s=-11.0, sx=18.3, sy=-0.3, sz=7.0)\n#                              rates=unity(tx=0.0, ty=0.0, tz=0.0, s=0.0, sx=0.0, sy=0.0, sz=0.0)\n#   9 ITRF90@2015xETRF2000     xform=xform(tx=29.3, ty=43.7, tz=25.7, s=-2.72, sx=2.106, sy=12.74, sz=-20.952)\n#                              rates=rates(tx=0.0, ty=0.6, tz=1.4, s=-0.01, sx=0.081, sy=0.49, sz=-0.812)\n#  10 ITRF90@1989xETRF90       xform=xform(tx=19.0, ty=28.0, tz=-23.0, s=0.0, sx=0.0, sy=0.0, sz=0.0)\n#                              rates=rates(tx=0.0, ty=0.0, tz=0.0, s=0.0, sx=0.11, sy=0.57, sz=-0.71)\n#  11 ITRF90@1997xNAD83        xform=xform(tx=973.0, ty=-1919.2, tz=-482.9, s=-0.9, sx=-25.79, sy=-9.65, sz=-11.66)\n#                              rates=rates(tx=0.0, ty=0.0, tz=0.0, s=0.0, sx=-0.053, sy=0.742, sz=0.032)\n#  12 ITRF91@2015xETRF2000     xform=xform(tx=27.3, ty=39.7, tz=9.7, s=-2.42, sx=2.106, sy=12.74, sz=-20.952)\n#                              rates=rates(tx=0.0, ty=0.6, tz=1.4, s=-0.01, sx=0.081, sy=0.49, sz=-0.812)\n#  13 ITRF91@1989xETRF91       xform=xform(tx=21.0, ty=25.0, tz=-37.0, s=0.0, sx=0.0, sy=0.0, sz=0.0)\n#                              rates=rates(tx=0.0, ty=0.0, tz=0.0, s=0.0, sx=0.21, sy=0.52, sz=-0.68)\n#  14 ITRF92@2015xETRF2000     xform=xform(tx=39.3, ty=53.7, tz=3.7, s=-1.02, sx=2.106, sy=12.74, sz=-20.952)\n#                              rates=rates(tx=0.0, ty=0.6, tz=1.4, s=-0.01, sx=0.081, sy=0.49, sz=-0.812)\n#  15 ITRF92@2015xETRF2014     xform=xform(tx=-15.9, ty=1.0, tz=87.3, s=-3.69, sx=2.21, sy=13.806, sz=-20.38)\n#                              rates=rates(tx=-0.1, ty=0.5, tz=3.3, s=-0.12, sx=0.085, sy=0.531, sz=-0.79)\n#  16 ITRF92@2015xETRF2020     xform=xform(tx=17.3, ty=-0.1, tz=-88.7, s=4.11, sx=2.236, sy=13.494, sz=-19.218)\n#                              rates=rates(tx=0.1, ty=-0.4, tz=-3.5, s=0.12, sx=0.086, sy=0.519, sz=-0.733)\n#  17 ITRF92@1989xETRF92       xform=xform(tx=38.0, ty=40.0, tz=-37.0, s=0.0, sx=0.0, sy=0.0, sz=0.0)\n#                              rates=rates(tx=0.0, ty=0.0, tz=0.0, s=0.0, sx=0.21, sy=0.52, sz=-0.68)\n#  18 ITRF93@2015xETRF2000     xform=xform(tx=119.6, ty=49.9, tz=-10.9, s=-2.22, sx=5.466, sy=17.07, sz=-21.342)\n#                              rates=rates(tx=2.9, ty=0.2, tz=0.6, s=-0.01, sx=0.191, sy=0.68, sz=-0.862)\n#  19 ITRF93@2015xETRF2014     xform=xform(tx=64.4, ty=-2.8, tz=72.7, s=-4.89, sx=5.57, sy=18.136, sz=-20.77)\n#                              rates=rates(tx=2.8, ty=0.1, tz=2.5, s=-0.12, sx=0.195, sy=0.721, sz=-0.84)\n#  20 ITRF93@2015xETRF2020     xform=xform(tx=-63.0, ty=3.7, tz=-74.1, s=5.31, sx=-1.124, sy=9.164, sz=-18.828)\n#                              rates=rates(tx=-2.8, ty=0.0, tz=-2.7, s=0.12, sx=-0.024, sy=0.329, sz=-0.683)\n#  21 ITRF93@1989xETRF93       xform=xform(tx=19.0, ty=53.0, tz=-21.0, s=0.0, sx=0.0, sy=0.0, sz=0.0)\n#                              rates=rates(tx=0.0, ty=0.0, tz=0.0, s=0.0, sx=0.32, sy=0.78, sz=-0.67)\n#  22 ITRF94@2015xETRF2000     xform=xform(tx=47.3, ty=55.7, tz=-4.3, s=-1.73, sx=2.106, sy=12.74, sz=-20.952)\n#                              rates=rates(tx=0.0, ty=0.6, tz=1.4, s=-0.01, sx=0.081, sy=0.49, sz=-0.812)\n#  23 ITRF94@2015xETRF2014     xform=xform(tx=-7.9, ty=3.0, tz=79.3, s=-4.4, sx=2.21, sy=13.806, sz=-20.38)\n#                              rates=rates(tx=-0.1, ty=0.5, tz=3.3, s=-0.12, sx=0.085, sy=0.531, sz=-0.79)\n#  24 ITRF94@2015xETRF2020     xform=xform(tx=9.3, ty=-2.1, tz=-80.7, s=4.82, sx=2.236, sy=13.494, sz=-19.218)\n#                              rates=rates(tx=0.1, ty=-0.4, tz=-3.5, s=0.12, sx=0.086, sy=0.519, sz=-0.733)\n#  25 ITRF94@1989xETRF94       xform=xform(tx=41.0, ty=41.0, tz=-49.0, s=0.0, sx=0.0, sy=0.0, sz=0.0)\n#                              rates=rates(tx=0.0, ty=0.0, tz=0.0, s=0.0, sx=0.2, sy=0.5, sz=-0.65)\n#  26 ITRF96@1989xETRF96       xform=xform(tx=41.0, ty=41.0, tz=-49.0, s=0.0, sx=0.0, sy=0.0, sz=0.0)\n#                              rates=rates(tx=0.0, ty=0.0, tz=0.0, s=0.0, sx=0.2, sy=0.5, sz=-0.65)\n#  27 ITRF97@1989xETRF97       xform=xform(tx=41.0, ty=41.0, tz=-49.0, s=0.0, sx=0.0, sy=0.0, sz=0.0)\n#                              rates=rates(tx=0.0, ty=0.0, tz=0.0, s=0.0, sx=0.2, sy=0.5, sz=-0.65)\n#  28 ITRF2000@1994xGDA94      xform=xform(tx=-45.91, ty=-29.85, tz=-20.37, s=7.07, sx=-1.6705, sy=0.4594, sz=1.9356)\n#                              rates=rates(tx=-4.66, ty=3.55, tz=11.24, s=0.249, sx=1.7454, sy=1.4868, sz=1.224)\n#  29 ITRF2000@2015xETRF2000   xform=xform(tx=54.0, ty=51.0, tz=-48.0, s=0.0, sx=2.106, sy=12.74, sz=-20.592)\n#                              rates=rates(tx=0.0, ty=0.0, tz=0.0, s=0.0, sx=0.081, sy=0.49, sz=-0.792)\n#  30 ITRF88@2015xETRF2000     xform=xform(tx=29.3, ty=55.7, tz=87.7, s=-9.22, sx=2.006, sy=12.74, sz=-20.952)\n#                              rates=rates(tx=0.0, ty=0.6, tz=1.4, s=-0.01, sx=0.081, sy=0.49, sz=-0.812)\n#  31 ITRF88@2015xETRF2020     xform=xform(tx=27.3, ty=-2.1, tz=-172.7, s=12.31, sx=2.336, sy=13.494, sz=-19.218)\n#                              rates=rates(tx=0.1, ty=-0.4, tz=-3.5, s=0.12, sx=0.086, sy=0.519, sz=-0.733)\n#  32 ITRF96@2015xETRF2000     xform=xform(tx=47.3, ty=55.7, tz=-4.3, s=-1.73, sx=2.106, sy=12.74, sz=-20.952)\n#                              rates=rates(tx=0.0, ty=0.6, tz=1.4, s=-0.01, sx=0.081, sy=0.49, sz=-0.812)\n#  33 ITRF97@2015xETRF2000     xform=xform(tx=47.3, ty=55.7, tz=-4.3, s=-1.73, sx=2.106, sy=12.74, sz=-20.952)\n#                              rates=rates(tx=0.0, ty=0.6, tz=1.4, s=-0.01, sx=0.081, sy=0.49, sz=-0.812)\n#  34 ITRF2000@2015xETRF2014   xform=xform(tx=-1.2, ty=-1.7, tz=35.6, s=-2.67, sx=2.21, sy=13.806, sz=-20.02)\n#                              rates=rates(tx=-0.1, ty=-0.1, tz=1.9, s=-0.11, sx=0.085, sy=0.531, sz=-0.77)\n#  35 ITRF90@2015xETRF2014     xform=xform(tx=-25.9, ty=-9.0, tz=109.3, s=-5.39, sx=2.21, sy=13.806, sz=-20.38)\n#                              rates=rates(tx=-0.1, ty=0.5, tz=3.3, s=-0.12, sx=0.085, sy=0.531, sz=-0.79)\n#  36 ITRF90@2015xETRF2020     xform=xform(tx=27.3, ty=9.9, tz=-110.7, s=5.81, sx=2.236, sy=13.494, sz=-19.218)\n#                              rates=rates(tx=0.1, ty=-0.4, tz=-3.5, s=0.12, sx=0.086, sy=0.519, sz=-0.733)\n#  37 ITRF91@2015xETRF2014     xform=xform(tx=-27.9, ty=-13.0, tz=93.3, s=-5.09, sx=2.21, sy=13.806, sz=-20.38)\n#                              rates=rates(tx=-0.1, ty=0.5, tz=3.3, s=-0.12, sx=0.085, sy=0.531, sz=-0.79)\n#  38 ITRF96@2015xETRF2014     xform=xform(tx=-7.9, ty=3.0, tz=79.3, s=-4.4, sx=2.21, sy=13.806, sz=-20.38)\n#                              rates=rates(tx=-0.1, ty=0.5, tz=3.3, s=-0.12, sx=0.085, sy=0.531, sz=-0.79)\n#  39 ITRF97@2015xETRF2014     xform=xform(tx=-7.9, ty=3.0, tz=79.3, s=-4.4, sx=2.21, sy=13.806, sz=-20.38)\n#                              rates=rates(tx=-0.1, ty=0.5, tz=3.3, s=-0.12, sx=0.085, sy=0.531, sz=-0.79)\n#  40 ITRF2000@2015xETRF2020   xform=xform(tx=2.6, ty=2.6, tz=-37.0, s=3.09, sx=2.236, sy=13.494, sz=-19.578)\n#                              rates=rates(tx=0.1, ty=0.2, tz=-2.1, s=0.11, sx=0.086, sy=0.519, sz=-0.753)\n#  41 ITRF91@2015xETRF2020     xform=xform(tx=29.3, ty=13.9, tz=-94.7, s=5.51, sx=2.236, sy=13.494, sz=-19.218)\n#                              rates=rates(tx=0.1, ty=-0.4, tz=-3.5, s=0.12, sx=0.086, sy=0.519, sz=-0.733)\n#  42 ITRF96@2015xETRF2020     xform=xform(tx=9.3, ty=-2.1, tz=-80.7, s=4.82, sx=2.236, sy=13.494, sz=-19.218)\n#                              rates=rates(tx=0.1, ty=-0.4, tz=-3.5, s=0.12, sx=0.086, sy=0.519, sz=-0.733)\n#  43 ITRF97@2015xETRF2020     xform=xform(tx=9.3, ty=-2.1, tz=-80.7, s=4.82, sx=2.236, sy=13.494, sz=-19.218)\n#                              rates=rates(tx=0.1, ty=-0.4, tz=-3.5, s=0.12, sx=0.086, sy=0.519, sz=-0.733)\n#  44 ITRF2000@2020xGDA2020    xform=xform(tx=-105.52, ty=51.58, tz=231.68, s=3.55, sx=4.2175, sy=6.3941, sz=0.8617)\n#                              rates=rates(tx=-4.66, ty=3.55, tz=11.24, s=0.249, sx=1.7454, sy=1.4868, sz=1.224)\n#  45 ITRF2000@1988xITRF88     xform=xform(tx=2.47, ty=1.15, tz=-9.79, s=8.95, sx=0.1, sy=0.0, sz=-0.18)\n#                              rates=rates(tx=0.0, ty=-0.06, tz=-0.14, s=0.01, sx=0.0, sy=0.0, sz=0.02)\n#  46 ITRF2000@1988xITRF89     xform=xform(tx=2.97, ty=4.75, tz=-7.39, s=5.85, sx=0.0, sy=0.0, sz=-0.18)\n#                              rates=rates(tx=0.0, ty=-0.06, tz=-0.14, s=0.01, sx=0.0, sy=0.0, sz=0.02)\n#  47 ITRF2000@1988xITRF90     xform=xform(tx=2.47, ty=2.35, tz=-3.59, s=2.45, sx=0.0, sy=0.0, sz=-0.18)\n#                              rates=rates(tx=0.0, ty=-0.06, tz=-0.14, s=0.01, sx=0.0, sy=0.0, sz=0.02)\n#  48 ITRF2000@1988xITRF91     xform=xform(tx=26.7, ty=27.5, tz=-19.9, s=2.15, sx=0.0, sy=0.0, sz=-0.18)\n#                              rates=rates(tx=0.0, ty=-0.6, tz=-1.4, s=0.01, sx=0.0, sy=0.0, sz=0.02)\n#  49 ITRF2000@1988xITRF92     xform=xform(tx=1.47, ty=1.35, tz=-1.39, s=0.75, sx=0.0, sy=0.0, sz=-0.18)\n#                              rates=rates(tx=0.0, ty=-0.06, tz=-0.14, s=0.01, sx=0.0, sy=0.0, sz=0.02)\n#  50 ITRF2000@1988xITRF93     xform=xform(tx=12.7, ty=6.5, tz=-20.9, s=1.95, sx=-0.39, sy=0.8, sz=-1.14)\n#                              rates=rates(tx=-2.9, ty=-0.2, tz=-0.6, s=0.01, sx=-0.11, sy=-0.19, sz=0.07)\n#  51 ITRF2000@1997xITRF94     xform=xform(tx=0.67, ty=0.61, tz=-1.85, s=1.55, sx=0.0, sy=0.0, sz=0.0)\n#                              rates=rates(tx=0.0, ty=-0.06, tz=-0.14, s=0.01, sx=0.0, sy=0.0, sz=0.02)\n#  52 ITRF2000@1997xITRF96     xform=xform(tx=0.67, ty=0.61, tz=-1.85, s=1.55, sx=0.0, sy=0.0, sz=0.0)\n#                              rates=rates(tx=0.0, ty=-0.06, tz=-0.14, s=0.01, sx=0.0, sy=0.0, sz=0.02)\n#  53 ITRF97@1997xITRF96       xform=xform(tx=-2.07, ty=-0.21, tz=9.95, s=-0.93496, sx=0.1267, sy=-0.22355, sz=-0.06065)\n#                              rates=rates(tx=0.69, ty=-0.1, tz=1.86, s=-0.19201, sx=0.01347, sy=-0.01514, sz=0.00027)\n#  54 ITRF2000@1997xITRF97     xform=xform(tx=0.67, ty=0.61, tz=-1.85, s=1.55, sx=0.0, sy=0.0, sz=0.0)\n#                              rates=rates(tx=0.0, ty=-0.06, tz=-0.14, s=0.01, sx=0.0, sy=0.0, sz=-0.02)\n#  55 ITRF2000@1997xNAD83      xform=xform(tx=995.6, ty=-1901.3, tz=-521.5, s=0.615, sx=-25.915, sy=-9.426, sz=-11.599)\n#                              rates=rates(tx=0.7, ty=-0.7, tz=0.5, s=-0.182, sx=-0.06667, sy=0.75744, sz=0.05133)\n#  56 ITRF2005@2015xETRF2000   xform=xform(tx=51.1, ty=51.7, tz=-80.8, s=1.6, sx=2.106, sy=12.74, sz=-20.592)\n#                              rates=rates(tx=-0.2, ty=0.1, tz=-1.8, s=0.08, sx=0.081, sy=0.49, sz=-0.792)\n#  57 ITRF2005@1989xETRF2005   xform=xform(tx=56.0, ty=48.0, tz=-37.0, s=0.0, sx=0.0, sy=0.0, sz=0.0)\n#                              rates=rates(tx=0.0, ty=0.0, tz=0.0, s=0.0, sx=0.054, sy=0.518, sz=-0.781)\n#  58 ITRF2005@1994xGDA94      xform=xform(tx=-79.73, ty=-6.86, tz=38.03, s=6.636, sx=0.0351, sy=-2.1211, sz=-2.1411)\n#                              rates=rates(tx=2.25, ty=-0.62, tz=-0.56, s=0.294, sx=-1.4707, sy=-1.1443, sz=-1.1701)\n#  59 ITRF2005@1997xNAD83      xform=xform(tx=996.3, ty=-1902.4, tz=-521.9, s=0.775, sx=-25.915, sy=-9.426, sz=-11.599)\n#                              rates=rates(tx=0.5, ty=-0.6, tz=-1.3, s=-0.10201, sx=-0.06667, sy=0.75744, sz=0.05133)\n#  60 ITRF2005@2015xETRF2014   xform=xform(tx=-4.1, ty=-1.0, tz=2.8, s=-1.07, sx=2.21, sy=13.806, sz=-20.02)\n#                              rates=rates(tx=-0.3, ty=0.0, tz=0.1, s=-0.03, sx=0.085, sy=0.531, sz=-0.77)\n#  61 ITRF2005@2015xETRF2020   xform=xform(tx=5.5, ty=1.9, tz=-4.2, s=1.49, sx=2.236, sy=13.494, sz=-19.578)\n#                              rates=rates(tx=0.3, ty=0.1, tz=-0.3, s=0.03, sx=0.086, sy=0.519, sz=-0.753)\n#  62 ITRF2005@2020xGDA2020    xform=xform(tx=40.32, ty=-33.85, tz=-16.72, s=4.286, sx=-1.2893, sy=-0.8492, sz=-0.3342)\n#                              rates=rates(tx=2.25, ty=-0.62, tz=-0.56, s=0.294, sx=-1.4707, sy=-1.1443, sz=-1.1701)\n#  63 ITRF2005@2000xITRF2000   xform=xform(tx=0.1, ty=-0.8, tz=-5.8, s=0.4, sx=0.0, sy=0.0, sz=0.0)\n#                              rates=rates(tx=-0.2, ty=0.1, tz=-1.8, s=0.08, sx=0.0, sy=0.0, sz=0.0)\n#  64 ITRF2008@1994xGDA94      xform=xform(tx=-84.68, ty=-19.42, tz=32.01, s=9.71, sx=-0.4254, sy=2.2578, sz=2.4015)\n#                              rates=rates(tx=1.42, ty=1.34, tz=0.9, s=0.109, sx=1.5461, sy=1.182, sz=1.1551)\n#  65 ITRF2008@1997xNAD83      xform=xform(tx=993.43, ty=-1903.31, tz=-526.55, s=1.71504, sx=-25.91467, sy=-9.42645, sz=-11.59935)\n#                              rates=rates(tx=0.79, ty=-0.6, tz=-1.34, s=-0.10201, sx=-0.06667, sy=0.75744, sz=0.05133)\n#  66 ITRF96@1997xNAD83        xform=xform(tx=991.0, ty=-190.72, tz=-512.9, s=0.0, sx=25.79, sy=9.65, sz=11.66)\n#                              rates=rates(tx=0.0, ty=0.0, tz=0.0, s=0.0, sx=0.0532, sy=-0.7423, sz=-0.0316)\n#  67 ITRF2008@2015xETRF2000   xform=xform(tx=53.6, ty=50.8, tz=-85.5, s=2.54, sx=2.106, sy=12.74, sz=-20.592)\n#                              rates=rates(tx=0.1, ty=0.1, tz=-1.8, s=0.08, sx=0.081, sy=0.49, sz=-0.792)\n#  68 ITRF2008@2015xETRF2014   xform=xform(tx=-1.6, ty=-1.9, tz=-1.9, s=-0.13, sx=2.21, sy=13.806, sz=-20.02)\n#                              rates=rates(tx=0.0, ty=0.0, tz=0.1, s=-0.03, sx=0.085, sy=0.531, sz=-0.77)\n#  69 ITRF2008@2015xETRF2020   xform=xform(tx=3.0, ty=2.8, tz=0.5, s=0.55, sx=2.236, sy=13.494, sz=-19.578)\n#                              rates=rates(tx=0.0, ty=0.1, tz=-0.3, s=0.03, sx=0.086, sy=0.519, sz=-0.753)\n#  70 ITRF2008@2020xGDA2020    xform=xform(tx=13.79, ty=4.55, tz=15.22, s=2.5, sx=0.2808, sy=0.2677, sz=-0.4638)\n#                              rates=rates(tx=1.42, ty=1.34, tz=0.9, s=0.109, sx=1.5461, sy=1.182, sz=1.1551)\n#  71 ITRF2008@2000xITRF2000   xform=xform(tx=-1.9, ty=-1.7, tz=-10.5, s=1.34, sx=0.0, sy=0.0, sz=0.0)\n#                              rates=rates(tx=0.1, ty=0.1, tz=-1.8, s=0.08, sx=0.0, sy=0.0, sz=0.0)\n#  72 ITRF2008@2000xITRF88     xform=xform(tx=22.8, ty=2.6, tz=-125.2, s=10.41, sx=0.1, sy=0.0, sz=0.06)\n#                              rates=rates(tx=0.1, ty=-0.5, tz=-3.2, s=0.09, sx=0.0, sy=0.0, sz=0.02)\n#  73 ITRF2008@2000xITRF89     xform=xform(tx=27.8, ty=38.6, tz=-101.2, s=7.31, sx=0.0, sy=0.0, sz=0.06)\n#                              rates=rates(tx=0.1, ty=-0.5, tz=-3.2, s=0.09, sx=0.0, sy=0.0, sz=0.02)\n#  74 ITRF2008@2000xITRF90     xform=xform(tx=22.8, ty=14.6, tz=-63.2, s=3.91, sx=0.0, sy=0.0, sz=0.06)\n#                              rates=rates(tx=0.1, ty=-0.5, tz=-3.2, s=0.09, sx=0.0, sy=0.0, sz=0.02)\n#  75 ITRF2008@2000xITRF91     xform=xform(tx=24.8, ty=18.6, tz=-47.2, s=3.61, sx=0.0, sy=0.0, sz=0.06)\n#                              rates=rates(tx=0.1, ty=-0.5, tz=-3.2, s=0.09, sx=0.0, sy=0.0, sz=0.02)\n#  76 ITRF2008@2000xITRF92     xform=xform(tx=12.8, ty=4.6, tz=-41.2, s=2.21, sx=0.0, sy=0.0, sz=0.06)\n#                              rates=rates(tx=0.1, ty=-0.5, tz=-3.2, s=0.09, sx=0.0, sy=0.0, sz=0.02)\n#  77 ITRF2008@2000xITRF93     xform=xform(tx=-24.0, ty=2.4, tz=-38.6, s=3.41, sx=-1.71, sy=-1.48, sz=-0.3)\n#                              rates=rates(tx=-2.8, ty=-0.1, tz=-2.4, s=0.09, sx=-0.11, sy=-0.19, sz=0.07)\n#  78 ITRF2008@2000xITRF94     xform=xform(tx=4.8, ty=2.6, tz=-33.2, s=2.92, sx=0.0, sy=0.0, sz=0.06)\n#                              rates=rates(tx=0.1, ty=-0.5, tz=-3.2, s=0.09, sx=0.0, sy=0.0, sz=0.02)\n#  79 ITRF2008@2000xITRF96     xform=xform(tx=4.8, ty=2.6, tz=-33.2, s=2.92, sx=0.0, sy=0.0, sz=0.06)\n#                              rates=rates(tx=0.1, ty=-0.5, tz=-3.2, s=0.09, sx=0.0, sy=0.0, sz=0.02)\n#  80 ITRF2008@2000xITRF97     xform=xform(tx=4.8, ty=2.6, tz=-33.2, s=2.92, sx=0.0, sy=0.0, sz=0.06)\n#                              rates=rates(tx=0.1, ty=-0.5, tz=-3.2, s=0.09, sx=0.0, sy=0.0, sz=0.02)\n#  81 ITRF2008@2005xITRF2005   xform=xform(tx=-0.5, ty=-0.9, tz=-4.7, s=0.94, sx=0.0, sy=0.0, sz=0.0)\n#                              rates=rates(tx=0.3, ty=0.0, tz=0.0, s=0.0, sx=0.0, sy=0.0, sz=0.0)\n#  82 ITRF2014@2015xETRF2000   xform=xform(tx=55.2, ty=52.7, tz=-83.6, s=2.67, sx=2.106, sy=12.74, sz=-20.592)\n#                              rates=rates(tx=0.1, ty=0.1, tz=-1.9, s=0.11, sx=0.081, sy=0.49, sz=-0.792)\n#  83 ITRF2014@2015xETRF2014   xform=xform(tx=0.0, ty=0.0, tz=0.0, s=0.0, sx=2.21, sy=13.806, sz=-20.02)\n#                              rates=rates(tx=0.0, ty=0.0, tz=0.0, s=0.0, sx=0.085, sy=0.531, sz=-0.77)\n#  84 ITRF2014@2015xETRF2020   xform=xform(tx=1.4, ty=0.9, tz=-1.4, s=0.42, sx=2.236, sy=13.494, sz=-19.578)\n#                              rates=rates(tx=0.0, ty=0.1, tz=-0.2, s=0.0, sx=0.086, sy=0.519, sz=-0.753)\n#  85 ITRF2014@2020xGDA2020    xform=unity(tx=0.0, ty=0.0, tz=0.0, s=0.0, sx=0.0, sy=0.0, sz=0.0)\n#                              rates=rates(tx=0.0, ty=0.0, tz=0.0, s=0.0, sx=1.50379, sy=1.18346, sz=1.20716)\n#  86 ITRF2014@2010xITRF2000   xform=xform(tx=0.7, ty=1.2, tz=-26.1, s=2.12, sx=0.0, sy=0.0, sz=0.0)\n#                              rates=rates(tx=0.1, ty=0.1, tz=-1.9, s=0.11, sx=0.0, sy=0.0, sz=0.0)\n#  87 ITRF2014@2010xITRF2005   xform=xform(tx=2.6, ty=1.0, tz=-2.3, s=0.92, sx=0.0, sy=0.0, sz=0.0)\n#                              rates=rates(tx=0.3, ty=0.0, tz=-0.1, s=0.03, sx=0.0, sy=0.0, sz=0.0)\n#  88 ITRF2014@2010xITRF2008   xform=xform(tx=1.6, ty=1.9, tz=2.4, s=-0.02, sx=0.0, sy=0.0, sz=0.0)\n#                              rates=rates(tx=0.0, ty=0.0, tz=-0.1, s=0.03, sx=0.0, sy=0.0, sz=0.0)\n#  89 ITRF2014@2010xITRF88     xform=xform(tx=25.4, ty=-0.5, tz=-154.8, s=11.29, sx=0.1, sy=0.0, sz=0.26)\n#                              rates=rates(tx=0.1, ty=-0.5, tz=-3.3, s=0.12, sx=0.0, sy=0.0, sz=0.02)\n#  90 ITRF2014@2010xITRF89     xform=xform(tx=30.4, ty=35.5, tz=-130.8, s=8.19, sx=0.0, sy=0.0, sz=0.26)\n#                              rates=rates(tx=0.1, ty=-0.5, tz=-3.3, s=0.12, sx=0.0, sy=0.0, sz=0.02)\n#  91 ITRF2014@2010xITRF90     xform=xform(tx=25.4, ty=11.5, tz=-92.8, s=4.79, sx=0.0, sy=0.0, sz=0.26)\n#                              rates=rates(tx=0.1, ty=-0.5, tz=-3.3, s=0.12, sx=0.0, sy=0.0, sz=0.02)\n#  92 ITRF2014@2010xITRF91     xform=xform(tx=27.4, ty=15.5, tz=-76.8, s=4.49, sx=0.0, sy=0.0, sz=0.26)\n#                              rates=rates(tx=0.1, ty=-0.5, tz=-3.3, s=0.12, sx=0.0, sy=0.0, sz=0.02)\n#  93 ITRF2014@2010xITRF92     xform=xform(tx=15.4, ty=1.5, tz=-70.8, s=3.09, sx=0.0, sy=0.0, sz=0.26)\n#                              rates=rates(tx=0.1, ty=-0.5, tz=-3.3, s=0.12, sx=0.0, sy=0.0, sz=0.02)\n#  94 ITRF2014@2010xITRF93     xform=xform(tx=-50.4, ty=3.3, tz=-60.2, s=4.29, sx=-2.81, sy=-3.38, sz=0.4)\n#                              rates=rates(tx=-2.8, ty=-0.1, tz=-2.5, s=0.12, sx=-0.11, sy=-0.19, sz=0.07)\n#  95 ITRF2014@2010xITRF94     xform=xform(tx=7.4, ty=-0.5, tz=-62.8, s=3.8, sx=0.0, sy=0.0, sz=0.26)\n#                              rates=rates(tx=0.1, ty=-0.5, tz=-3.3, s=0.12, sx=0.0, sy=0.0, sz=0.02)\n#  96 ITRF2014@2010xITRF96     xform=xform(tx=7.4, ty=-0.5, tz=-62.8, s=3.8, sx=0.0, sy=0.0, sz=0.26)\n#                              rates=rates(tx=0.1, ty=-0.5, tz=-3.3, s=0.12, sx=0.0, sy=0.0, sz=0.02)\n#  97 ITRF2014@2010xITRF97     xform=xform(tx=7.4, ty=-0.5, tz=-62.8, s=3.8, sx=0.0, sy=0.0, sz=0.26)\n#                              rates=rates(tx=0.1, ty=-0.5, tz=-3.3, s=0.12, sx=0.0, sy=0.0, sz=0.02)\n#  98 ITRF2020@2015xETRF2000   xform=xform(tx=53.8, ty=51.8, tz=-82.2, s=2.25, sx=2.106, sy=12.74, sz=-20.592)\n#                              rates=rates(tx=0.1, ty=0.0, tz=-1.7, s=0.11, sx=0.081, sy=0.49, sz=-0.792)\n#  99 ITRF2020@2015xETRF2014   xform=xform(tx=-1.4, ty=-0.9, tz=1.4, s=0.42, sx=2.21, sy=13.806, sz=-20.02)\n#                              rates=rates(tx=0.0, ty=-0.1, tz=0.2, s=0.0, sx=0.085, sy=0.531, sz=-0.77)\n# 100 ITRF2020@2015xETRF2020   xform=xform(tx=0.0, ty=0.0, tz=0.0, s=0.0, sx=2.236, sy=13.494, sz=-19.578)\n#                              rates=rates(tx=0.0, ty=0.0, tz=0.0, s=0.0, sx=0.086, sy=0.519, sz=-0.753)\n# 101 ITRF2020@2015xITRF2000   xform=xform(tx=-0.2, ty=0.8, tz=-34.2, s=2.25, sx=0.0, sy=0.0, sz=0.0)\n#                              rates=rates(tx=0.1, ty=0.0, tz=-1.7, s=0.11, sx=0.0, sy=0.0, sz=0.0)\n# 102 ITRF2020@2015xITRF2005   xform=xform(tx=2.7, ty=0.1, tz=-1.4, s=0.65, sx=0.0, sy=0.0, sz=0.0)\n#                              rates=rates(tx=0.3, ty=-0.1, tz=0.1, s=0.03, sx=0.0, sy=0.0, sz=0.0)\n# 103 ITRF2020@2015xITRF2008   xform=xform(tx=0.2, ty=1.0, tz=3.3, s=-0.29, sx=0.0, sy=0.0, sz=0.0)\n#                              rates=rates(tx=0.0, ty=-0.1, tz=0.1, s=0.03, sx=0.0, sy=0.0, sz=0.0)\n# 104 ITRF2020@2015xITRF2014   xform=xform(tx=-1.4, ty=-0.9, tz=1.4, s=-0.42, sx=0.0, sy=0.0, sz=0.0)\n#                              rates=rates(tx=0.0, ty=-0.1, tz=0.2, s=0.0, sx=0.0, sy=0.0, sz=0.0)\n# 105 ITRF2020@2015xITRF88     xform=xform(tx=24.5, ty=-3.9, tz=-169.9, s=11.47, sx=0.1, sy=0.0, sz=0.36)\n#                              rates=rates(tx=0.1, ty=-0.6, tz=-3.1, s=0.12, sx=0.0, sy=0.0, sz=0.02)\n# 106 ITRF2020@2015xITRF89     xform=xform(tx=29.5, ty=32.1, tz=-145.9, s=8.37, sx=0.0, sy=0.0, sz=0.36)\n#                              rates=rates(tx=0.1, ty=-0.6, tz=-3.1, s=0.12, sx=0.0, sy=0.0, sz=0.02)\n# 107 ITRF2020@2015xITRF90     xform=xform(tx=24.5, ty=8.1, tz=-107.9, s=4.97, sx=0.0, sy=0.0, sz=0.36)\n#                              rates=rates(tx=0.1, ty=-0.6, tz=-3.1, s=0.12, sx=0.0, sy=0.0, sz=0.02)\n# 108 ITRF2020@2015xITRF91     xform=xform(tx=26.5, ty=12.1, tz=-91.9, s=4.67, sx=0.0, sy=0.0, sz=0.36)\n#                              rates=rates(tx=0.1, ty=-0.6, tz=-3.1, s=0.12, sx=0.0, sy=0.0, sz=0.02)\n# 109 ITRF2020@2015xITRF92     xform=xform(tx=14.5, ty=-1.9, tz=-85.9, s=3.27, sx=0.0, sy=0.0, sz=0.36)\n#                              rates=rates(tx=0.1, ty=-0.6, tz=-3.1, s=0.12, sx=0.0, sy=0.0, sz=0.02)\n# 110 ITRF2020@2015xITRF93     xform=xform(tx=-65.8, ty=1.9, tz=-71.3, s=4.47, sx=-3.36, sy=-4.33, sz=0.75)\n#                              rates=rates(tx=-2.8, ty=-0.2, tz=-2.3, s=0.12, sx=-0.11, sy=-0.19, sz=0.07)\n# 111 ITRF2020@2015xITRF94     xform=xform(tx=6.5, ty=-3.9, tz=-77.9, s=3.98, sx=0.0, sy=0.0, sz=0.36)\n#                              rates=rates(tx=0.1, ty=-0.6, tz=-3.1, s=0.12, sx=0.0, sy=0.0, sz=0.02)\n# 112 ITRF2020@2015xITRF96     xform=xform(tx=6.5, ty=-3.9, tz=-77.9, s=3.98, sx=0.0, sy=0.0, sz=0.36)\n#                              rates=rates(tx=0.1, ty=-0.6, tz=-3.1, s=0.12, sx=0.0, sy=0.0, sz=0.02)\n# 113 ITRF2020@2015xITRF97     xform=xform(tx=6.5, ty=-3.9, tz=-77.9, s=3.98, sx=0.0, sy=0.0, sz=0.36)\n#                              rates=rates(tx=0.1, ty=-0.6, tz=-3.1, s=0.12, sx=0.0, sy=0.0, sz=0.02)\n"
  },
  {
    "path": "pygeodesy/triaxials/__init__.py",
    "content": "\r\n# -*- coding: utf-8 -*-\r\n\r\nu'''Package of lazily imported modules L{triaxials.conformal3}, L{triaxials.triaxial3}\r\nand L{triaxials.triaxial5} for triaxial ellipsoids.\r\n\r\nMostly transcoded to pure Python from I{Karney}'s U{GeographicLib 2.7 Triaxial<https://\r\nGeographicLib.SourceForge.io/C++/doc/namespaceGeographicLib_1_1Triaxial.html} classes\r\nand the I{experimental} U{GeographicLib 2.52 Jacobi<https://GeographicLib.SourceForge.io/\r\nC++/2.5.2/jacobi.html>} class.\r\n\r\nCopyright (C) U{Charles Karney<mailto:Karney@Alum.MIT.edu>} (2008-2024, 2024-2025) and\r\nlicensed under the MIT/X11 License.  For more information, see the U{GeographicLib 2.5.2\r\nand 2.7<https://GeographicLib.SourceForge.io>} documentation.\r\n'''\r\nfrom pygeodesy.lazily import _ALL_LAZY, _ALL_OTHER, _lazy_import_as, _unLazy0\r\n# from pygeodesy.triaxials.triaxial5 import *  # PYCHOK for backward compatibility\r\n# from pygeodesy.triaxials.bases import TriaxialError  # likewise\r\n\r\n__all__ = _ALL_LAZY.triaxials  # _triaxial5  # likewise\r\n__version__ = '26.02.06'\r\n\r\nif _unLazy0:  # or _isfrozen\r\n    from pygeodesy.triaxials.bases import LLK, TriaxialError\r\n    from pygeodesy.triaxials.conformal3 import BetOmgGam5Tuple, Conformal3, Conformal3B, \\\r\n                                               Conformal3Sphere, Conformal5Tuple\r\n    from pygeodesy.triaxials.triaxial3 import BetOmgAlp5Tuple, Cartesian5Tuple, PhiLamZet5Tuple, \\\r\n                                              Triaxial3, Triaxial3B, Triaxial3s\r\n    from pygeodesy.triaxials.triaxial5 import BetaOmega2Tuple, BetaOmega3Tuple, \\\r\n                                              Conformal, ConformalSphere, Conformal2Tuple, \\\r\n                                              Triaxial, Triaxial_, Triaxials, \\\r\n                                              hartzell4, height4\r\n\r\n    __all__ += _ALL_OTHER(LLK, TriaxialError,\r\n                          BetOmgGam5Tuple, Conformal3, Conformal3B, ConformalSphere,\r\n                          Conformal5Tuple,\r\n                          BetOmgAlp5Tuple, Cartesian5Tuple, PhiLamZet5Tuple,\r\n                          Triaxial3, Triaxial3B, Triaxial3s,\r\n                          BetaOmega2Tuple, BetaOmega3Tuple,\r\n                          Conformal, Conformal3Sphere, Conformal2Tuple, Triaxial,\r\n                          Triaxial_, Triaxials, hartzell4, height4)\r\n#   assert set(_ALL_LAZY.triaxials + _ALL_LAZY.triaxials_bases\r\n#                                  + _ALL_LAZY.triaxials_conformal3\r\n#                                  + _ALL_LAZY.triaxials_triaxial3\r\n#                                  + _ALL_LAZY.triaxials_triaxial5) == set(__all__)\r\n\r\nelse:  # lazily import modules and exported attrs\r\n    __getattr__ = _lazy_import_as(__name__)\r\n\r\n# **) MIT License\r\n#\r\n# Copyright (C) 2025-2026 -- mrJean1 at Gmail -- All Rights Reserved.\r\n#\r\n# Permission is hereby granted, free of charge, to any person obtaining a\r\n# copy of this software and associated documentation files (the \"Software\"),\r\n# to deal in the Software without restriction, including without limitation\r\n# the rights to use, copy, modify, merge, publish, distribute, sublicense,\r\n# and/or sell copies of the Software, and to permit persons to whom the\r\n# Software is furnished to do so, subject to the following conditions:\r\n#\r\n# The above copyright notice and this permission notice shall be included\r\n# in all copies or substantial portions of the Software.\r\n#\r\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\r\n# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r\n# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL\r\n# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR\r\n# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\r\n# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\r\n# OTHER DEALINGS IN THE SOFTWARE.\r\n"
  },
  {
    "path": "pygeodesy/triaxials/bases.py",
    "content": "\n# -*- coding: utf-8 -*-\n\nu'''(INTERNAL) Base classes for I{ordered} triaxial ellipsoid classes L{Conformal}, L{Conformal3},\nL{Triaxial}, L{Triaxial3} and I{unordered} L{Triaxial_}.\n\nTranscoded to pure Python from I{Karney}'s GeographicLib 2.7 C++ classes U{Ellipsoid3<https://\nGeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Triaxial_1_1Ellipsoid3.html>},\nU{Cartesian3<https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Triaxial_1_1Cartesian3.html>} and\nU{Conformal3<https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Triaxial_1_1Conformal3.html>}.\n\nGeographicLib 2.5.2 C++ class U{JacobiConformal<https://GeographicLib.SourceForge.io/C++/doc/\nclassGeographicLib_1_1JacobiConformal.html#details>}.\n\nCopyright (C) U{Charles Karney<mailto:Karney@Alum.MIT.edu>} (2008-2024, 2025) and licensed under the MIT/X11 License.\nFor more information, see the U{GeographicLib 2.5.2 and 2.7<https://GeographicLib.SourceForge.io/>} documentation.\n\nEnum-like C{Lat-/Longitude Kinds (LLK)}, see I{Karney}'s U{coord<https://GeographicLib.SourceForge.io/\nC++/doc/classGeographicLib_1_1Triaxial_1_1Cartesian3.html>}:\n\n@var LLK.CONFORMAL: Jacobi conformal X and Y projection\n@var LLK.ELLIPSOIDAL: Ellipsoidal lat-, longitude and heading C{bet}, C{omg}, C{alp} (L{Ang})\n@var LLK.GEOCENTRIC: Geocentric lat-, longitude and heading C{phi}\", C{lam}\" and C{zet} (L{Ang})\n@var LLK.GEOCENTRIC_X: Geocentric with pole along major X axis\n@var LLK.GEODETIC: Geodetic lat-, longitude and heading C{phi}, C{lam} and C{zet} (L{Ang})\n@var LLK.GEODETIC_X: Geodetic with pole along major X axis\n@var LLK.GEODETIC_LON0: Geodetic lat-, longitude I{- lon0} and heading C{phi}, C{lam} and C{zet} (L{Ang})\n@var LLK.GEOGRAPHIC = LLK.GEODETIC\n@var LLK.PARAMETRIC: Parametric lat-, longitude and heading C{phi}', C{lam}' and C{zet} (L{Ang})\n@var LLK.PARAMETRIC_X: Parametric with pole along major X axis\n@var LLK.PLANETODETIC = LLK.GEODETIC\n@var LLK.PLANETOCENTRIC = LLK.GEOCENTRIC\n'''\n# make sure int/int division yields float quotient, see .basics\nfrom __future__ import division as _; del _  # noqa: E702 ;\n\n# from pygeodesy.angles import Ang  # _MODS\n# from pygeodesy.basics import map1  # from .namedTuples\nfrom pygeodesy.constants import EPS, EPS0, EPS02, EPS4, INT0, NAN, PI_3, PI2, PI4, \\\n                               _EPS2e4, _isfinite, float0_, _1_over, _0_0, _1_0, \\\n                               _N_1_0,   _3_0, _4_0  # PYCHOK used!\n# from pygeodesy.ellipses import Ellipse, _isFlat  # _MODS\n# from pygeodesy.ellipsoids import Ellipsoid, _EWGS84  # _MODS\n# from pygeodesy.elliptic import Elliptic  # _MODS\n# from pygeodesy.errors import _ValueError, _xkwds  # from .utily\nfrom pygeodesy.fmath import cbrt, fmean_, hypot, norm2, sqrt0,  fabs, sqrt\nfrom pygeodesy.fsums import _Fsumf_, fsumf_\n# from pygeodesy.internals import typename  # _MODS\nfrom pygeodesy.interns import _a_, _b_, _c_, _inside_, _not_, _NOTEQUAL_, _null_, \\\n                              _outside_, _scale_, _SPACE_, _spherical_, _x_, _y_, _z_\nfrom pygeodesy.lazily import _ALL_DOCS, _ALL_LAZY, _ALL_MODS as _MODS, _FOR_DOCS\nfrom pygeodesy.named import _NamedEnum, _NamedEnumItem, _NamedTuple, _Pass\n# from pygeodesy.named import _lazyNamedEnumItem as _lazy  # _MODS\nfrom pygeodesy.namedTuples import Ellipse5Tuple, Vector4Tuple,  map1\nfrom pygeodesy.props import Property_RO, property_doc_, property_RO, \\\n                            deprecated_method, deprecated_property_RO\n# from pygeodesy.streprs import Fmt  # _MODS\nfrom pygeodesy.units import Degrees, Easting, Float, Height, Height_, _Lat0, \\\n                            Meter, Meter2, Meter3, Northing, Radius_, Scalar\nfrom pygeodesy.utily import asin1, km2m, m2km,  _ValueError, _xkwds\nfrom pygeodesy.vector3d import _otherV3d, Vector3d\n\n# from math import fabs, sqrt  # from .fmath\n\n__all__ = _ALL_LAZY.triaxials_bases\n__version__ = '26.03.12'\n\n_bet_         = 'bet'  # PYCHOK shared\n_llk_         = 'llk'  # PYCHOK shared\n_KTpFlat      =  1.5849625007\n_MAXIT        =  33  # 20  # PYCHOK shared\n_not_ordered_ = _not_('ordered')\n_omg_         = 'omg'  # PYCHOK shared\n\n\nclass Conformal5Tuple(_NamedTuple):  # see .Forward4Tuple\n    '''5-Tuple C{(x, y, z, scale, llk)} with the easting C{x} and\n       northing C{y} projection, C{scale} or C{NAN} I{but with}\n       C{z=INT0} I{and kind} C{llk=LLK.CONFORMAL} I{always}.\n    '''\n    _Names_ = (_x_,     _y_,       _z_,  _scale_, _llk_)\n    _Units_ = ( Easting, Northing, _Pass, Scalar, _Pass)\n\n    def __new__(cls, x, y, z=INT0, scale=NAN, llk=None, **kwds):  # **iteration_name\n        args = x, y, (z or INT0), scale, (llk or LLK.CONFORMAL)\n        return _NamedTuple.__new__(cls, args, **kwds)\n\n\nclass _LLK(str):\n    '''(INTERNAL) Lat-/Longitude Kind.\n    '''\n    def __init__(self, llk):  # aka C++ alt\n        self._X = bool(llk.endswith('_X'))\n        str.__init__(llk)\n\n\nclass LLK(object):\n    '''Enum-like C{Lat-/Longitude Kinds (LLK)}, see U{coord<https://GeographicLib.\n       SourceForge.io/C++/doc/classGeographicLib_1_1Triaxial_1_1Cartesian3.html>}.\n    '''\n    CONFORMAL        = _LLK('CONFORMAL')\n\n    ELLIPSOIDAL      = _LLK('ELLIPSOIDAL')    # bet, omg, alp\n    GEOCENTRIC       = _LLK('GEOCENTRIC')     # phi2p, lam2p, zet\n    GEOCENTRIC_X     = _LLK('GEOCENTRIC_X')\n    GEODETIC         = _LLK('GEODETIC')       # phi, lam, zet\n    GEODETIC_LON0    = _LLK('GEODETIC_LON0')\n    GEODETIC_X       = _LLK('GEODETIC_X')\n    GEOGRAPHIC       =  GEODETIC\n    PARAMETRIC       = _LLK('PARAMETRIC')     # phi1p, lam1p, zet\n    PARAMETRIC_X     = _LLK('PARAMETRIC_X')\n    PLANETODETIC     =  GEODETIC\n    PLANETOCENTRIC   =  GEOCENTRIC\n\n    _CENTRICS = (GEOCENTRIC, GEOCENTRIC_X, PLANETOCENTRIC)\n    _DETICS   = (GEODETIC, GEODETIC_X, GEODETIC_LON0, GEOGRAPHIC, PLANETODETIC)\n    _METRICS  = (PARAMETRIC, PARAMETRIC_X)\n    _NOIDAL   = (None, ELLIPSOIDAL)\n#   _XCLUDE   = (CONFORMAL, GEOGRAPHIC, PLANETOCENTRIC, PLANETODETIC)\n\n    def __getitem__(self, name):\n        llk = self.get(name, None)\n        if llk is None:\n            t = _MODS.internals.typename(self)\n            t = _MODS.streprs.Fmt.SQUARE(t, name)\n            raise _ValueError(t, name)\n        return llk\n\n    def get(self, name, dflt=None):\n        '''Get an C{LLK} by C{name}.\n        '''\n        llk = getattr(self, name, None)\n        return llk if isinstance(llk, _LLK) else dflt\n\n    def items(self):\n        '''Yield all C{LLK (name, value)} pairs.\n        '''\n        for n, llk in LLK.__class__.__dict__.items():\n            if isinstance(llk, _LLK):\n                yield n, llk\n\n    def keys(self):\n        '''Yield all C{LLK} names.\n        '''\n        for n, _ in self.items():\n            yield n\n\n    def values(self):\n        '''Yield all C{LLK} values.\n        '''\n        for _, llk in self.items():\n            yield llk\n\nif not _FOR_DOCS:  # PYCHOK force epydoc\n    LLK = LLK()  # singleton\ndel _FOR_DOCS\n\n\ndef _HeightINT0(h):\n    return h if h is INT0 else Height(h=h)\n\n\nclass _UnOrderedTriaxialBase(_NamedEnumItem):\n    '''(INTERNAL) Base class for all I{unordered} triaxial classes.\n    '''\n    _ijk = _kji = None\n    _unordered  = True\n\n    def __init__(self, a_triaxial, b=None, c=None, **name):\n        '''New I{unordered} C{Triaxial_}.\n\n           @arg a_triaxial: Large, C{X} semi-axis (C{scalar}, conventionally in\n                            C{meter}) or an other L{Triaxial}, L{Triaxial_} or\n                            L{TriaxialB} instance.\n           @kwarg b: Middle, C{Y} semi-axis (C{meter}, same units as B{C{a}}),\n                     required if C{B{a_triaxial} is scalar}, ignored otherwise.\n           @kwarg c: Small, C{Z} semi-axis (C{meter}, like B{C{b}}).\n           @kwarg name: Optional C{B{name}=NN} (C{str}).\n\n           @raise TriaxialError: Invalid semi-axis or -axes.\n        '''\n        try:\n            try:\n                a = a_triaxial\n                t = a._abc3\n                name = _xkwds(name, name=a.name)\n            except AttributeError:\n                t = Radius_(a=a), Radius_(b=b), Radius_(c=c)\n        except (TypeError, ValueError) as x:\n            raise TriaxialError(a=a, b=b, c=c, cause=x)\n        if name:\n            self.name = name\n\n        a, b, c = self._abc3 = t\n        if self._unordered:  # == not isinstance(self, Triaxial)\n            s, _, t = sorted(t)\n            if not (_isfinite(t) and _isfinite(s) and s > 0):\n                raise TriaxialError(a=a, b=b, c=c)  # txt=_invalid_\n        elif not (_isfinite(a) and a >= b >= c > 0):  # see TriaxialB\n            raise TriaxialError(a=a, b=b, c=c, txt=_not_ordered_)\n        elif not (a > c and self._a2c2 > 0 and self.e2ac > 0):\n            raise TriaxialError(a=a, c=c, e2ac=self.e2ac, txt=_spherical_)\n\n    def __repr__(self):\n        '''Default C{repr(self)}.\n        '''\n        return self.toRepr(terse=0)\n\n#   def __str__(self):  # in _NamedEnumItem\n#       return self.toStr()\n\n    @Property_RO\n    def a(self):\n        '''Get the C{largest, x} semi-axis (C{meter}, conventionally).\n        '''\n        a, _, _ = self._abc3\n        return a\n\n    @Property_RO\n    def a2(self):\n        '''Get C{a**2}.\n        '''\n        return self.a**2\n\n    @Property_RO\n    def _a2b2(self):\n        '''(INTERNAL) Get C{a**2 - b**2} == E_sub_e**2.\n        '''\n        a, b, _ = self._abc3\n        d = a - b\n        return (d * (a + b)) if d else _0_0\n\n    @Property_RO\n    def _a2_b2(self):\n        '''(INTERNAL) Get C{(a / b)**2}.\n        '''\n        a, b, _ = self._abc3\n        return (a / b)**2 if a != b else _1_0\n\n    @Property_RO\n    def abc3(self):  # in geed3solve._a12d\n        '''Get the semi-axes as 3-tuple C{(a, b, c)}.\n        '''\n        return self._abc3\n\n    @Property_RO\n    def _a2b2c23(self):  # in .triaxials.triaxial3\n        '''(INTERNAL) Get 3-tuple C{(a**2, b**2, c**2)}.\n        '''\n        return self.a2, self.b2, self.c2\n\n    @Property_RO\n    def _a2c2(self):\n        '''(INTERNAL) Get C{a**2 - c**2} == E_sub_x**2.\n        '''\n        a, _, c = self._abc3\n        d = a - c\n        return (d * (a + c)) if d else _0_0\n\n    @Property_RO\n    def area(self):\n        '''Get the surface area (C{meter} I{squared}).\n        '''\n        return self.areaKT(_KTpFlat) if self.isFlat else self.areaRG\n\n    def areaKT(self, *p):\n        '''I{Approximate} the surface area using U{Knud Thomson's\n           <https://WikiPedia.org/wiki/Ellipsoid#Approximate_formula>}\n           formula (C{meter} I{squared}).\n\n           @arg p: Exponent (C{scalar} > 0), 1.6075 for near-spherical\n                   or 1.5849625007 for \"near-flat\" triaxials.\n        '''\n        a, b, c = self._abc3\n        _p = pow\n        p =  p[0] if p else (_KTpFlat if self.isFlat else 1.6075)\n        a = _p(fmean_(_p(a * b, p), _p(a * c, p), _p(b * c, p)), _1_over(p))\n        return Meter2(areaKT=a * PI4)\n\n    @deprecated_method\n    def area_p(self, p=1.6075):\n        '''DEPRECATED on 2026-02-15, use method L{areaKT<Triaxial_.areaKT>}.'''\n        return Meter2(area_p=self.areaKT(p))\n\n    @Property_RO\n    def areaRG(self):\n        '''Get the surface area using Carlson's U{symmetric RG\n           <https://WikiPedia.org/wiki/Ellipsoid#Surface_Area>}\n           form (C{meter} I{squared}), see also C{Elliptic.fRG}\n        '''\n        t =  sorted(self._a2b2c23)  # all non-zero\n        r = _MODS.elliptic._rG3(*map(_1_over, t))\n        return Meter2(areaRG=self.volume * r * _3_0)\n\n    @Property_RO\n    def b(self):\n        '''Get the C{middle, y} semi-axis (C{meter}, same units as B{C{a}}).\n        '''\n        _, b, _ = self._abc3\n        return b\n\n    @Property_RO\n    def b2(self):\n        '''Get C{b**2}.\n        '''\n        return self.b**2\n\n    @Property_RO\n    def _b2_a2(self):\n        '''(INTERNAL) Get C{(b / a)**2}.\n        '''\n        a, b, _ = self._abc3\n        return (b / a)**2 if a != b else _1_0\n\n    @Property_RO\n    def _b2c2(self):\n        '''(INTERNAL) Get C{b**2 - c**2} == E_sub_y**2.\n        '''\n        _, b, c = self._abc3\n        d = b - c\n        return (d * (b + c)) if d else _0_0\n\n    @Property_RO\n    def c(self):\n        '''Get the C{smallest, z} semi-axis (C{meter}, same units as B{C{a}}).\n        '''\n        _, _, c = self._abc3\n        return c\n\n    @Property_RO\n    def c2(self):\n        '''Get C{c**2}.\n        '''\n        return self.c**2\n\n    @Property_RO\n    def _c2_a2(self):\n        '''(INTERNAL) Get C{(c / a)**2}.\n        '''\n        a, _, c = self._abc3\n        return (c / a)**2 if a != c else _1_0\n\n    @Property_RO\n    def _c2_b2(self):\n        '''(INTERNAL) Get C{(c / b)**2}.\n        '''\n        _, b, c = self._abc3\n        return (c / b)**2 if b != c else _1_0\n\n    @Property_RO\n    def e2ab(self):\n        '''Get the C{ab} ellipse' I{(1st) eccentricity squared} (C{scalar}), M{1 - (b/a)**2}.\n        '''\n        return Float(e2ab=(_1_0 - self._b2_a2) or _0_0)\n\n#   _1e2ab = _b2_a2  # == C{1 - e2ab} == C{(b/a)**2}\n\n    @Property_RO\n    def e2ac(self):\n        '''Get the C{ac} ellipse' I{(1st) eccentricity squared} (C{scalar}), M{1 - (c/a)**2}.\n        '''\n        return Float(e2ac=(_1_0 - self._c2_a2) or _0_0)\n\n#   _1e2ac = _c2_a2  # == C{1 - e2ac} == C{(c/a)**2}\n\n    @Property_RO\n    def e2bc(self):\n        '''Get the C{bc} ellipse' I{(1st) eccentricity squared} (C{scalar}), M{1 - (c/b)**2}.\n        '''\n        return Float(e2bc=(_1_0 - self._c2_b2) or _0_0)\n\n#   _1e2bc = _c2_b2  # == C{1 - e2bc} == C{(c/b)**2}\n\n    def ellipse5(self, lat):\n        '''Get the equatorial or a parallel I{ellipse of lattitude}.\n\n           @arg lat: Geodetic latitude (C{degrees90}, C{str} or C{Ang}).\n\n           @return: An L{Ellipse5Tuple}C{(a, b, height, lat, beta)} with C{a},\n                    C{b} and C{height} measured along this trixial's semi-axis\n                    C{a}, C{b} and C{c}, respectively.\n\n           @see: Method L{Ellipsoid.circle4<pygeodesy.Ellipsoid.circle4>} for\n                 further details.\n        '''\n        a, b, c = self._abc3\n        lat = _Lat0(lat)\n        if lat and c > 0:\n            E = _MODS.ellipsoids.Ellipsoid\n            if a > b:\n                r, z, lat, B = E(a, b=c).circle4(lat)\n                b *= r / a\n                a  = r\n            elif b > a:\n                r, z, lat, B = E(b, b=c).circle4(lat)\n                a *= r / b\n                b  = r\n            else:  # a == b\n                r, z, lat, B = E(a, b=c).circle4(lat)\n                a = b = r\n        else:  # equatorial or \"flat\"\n            z = lat = B = _0_0\n        return Ellipse5Tuple(a, b, z, lat, B)\n\n    def hartzell4(self, pov, los=False, **name):\n        '''Compute the intersection of this triaxial's surface with a Line-Of-Sight\n           from a Point-Of-View in space.\n\n           @see: Function L{hartzell4<triaxials.triaxial5.hartzell4>} for further details.\n        '''\n        return _MODS.triaxials.hartzell4(pov, los=los, tri_biax=self, **name)\n\n    def height4(self, x_xyz, y=None, z=None, normal=True, eps=EPS, **name):\n        '''Compute the projection on and the height above or below this triaxial's surface.\n\n           @see: Function L{height4<triaxials.triaxial5.height4>} for further details.\n        '''\n        return _MODS.triaxials.height4(x_xyz, y=y, z=z, tri_biax=self, normal=normal, eps=eps, **name)\n\n    @Property_RO\n    def isFlat(self):\n        '''Is this triaxial \"flat\", too pro-/oblate (C{bool})?\n        '''\n        _f = _MODS.ellipses._isFlat\n        c, b, a = sorted(self._abc3)\n        return _f(a, c) or _f(b, c) or _f(a, b)\n\n    @Property_RO\n    def isOblate(self):\n        '''Is this triaxial oblate (C{bool})?\n        '''\n        return not (self.isProlate or self.isSpherical)\n\n    @Property_RO\n    def isOrdered(self):\n        '''Is this triaxial I{ordered} and I{not spherical} (C{bool})?\n        '''\n        a, b, c = self._abc3\n        return bool(a >= b > c)  # b > c!\n\n    @Property_RO\n    def isProlate(self):\n        '''Is this triaxial prolate (C{bool})?\n        '''\n        a, b, c = self._abc3\n        return a < b or b < c or a < c\n\n    @Property_RO\n    def isSpherical(self):\n        '''Is this triaxial I{spherical} (C{Radius} or INT0)?\n        '''\n        a, b, c = self._abc3\n        return a if a == b == c else INT0\n\n    def _norm2(self, s, c, *a):\n        '''(INTERNAL) Normalize C{s} and C{c} iff not already.\n        '''\n        if fabs(_hypot2_1(s, c)) > EPS02:\n            s, c = norm2(s, c)\n        if a:\n            s, c = norm2(s * self.b, c * a[0])\n        return float0_(s, c)\n\n    def normal3d(self, x_xyz, y=None, z=None, length=_1_0):\n        '''Get a 3-D vector I{on and perpendicular to} this triaxial's surface.\n\n           @arg x_xyz: X component (C{scalar}) or a cartesian (C{Cartesian},\n                       L{Ecef9Tuple}, L{Vector3d}, L{Vector3Tuple} or L{Vector4Tuple}).\n           @kwarg y: Y component (C{scalar}), required if B{C{x_xyz}} if C{scalar}, ignored\n                     otherwise.\n           @kwarg z: Z component (C{scalar}), like B{C{y}}.\n           @kwarg length: Optional, signed length in out-/inward direction (C{scalar}).\n\n           @return: A C{Vector3d(x_, y_, z_)} normalized to B{C{length}}, pointing out-\n                    or inward for postive respectively negative B{C{length}}.\n\n           @raise TriaxialError: Zero length cartesian or vector.\n\n           @note: Cartesian C{(B{x}, B{y}, B{z})} I{must be on} this triaxial's surface,\n                  use method L{Triaxial.sideOf} to validate.\n\n           @see: Methods L{Triaxial.height4} and L{Triaxial.sideOf}.\n        '''\n        # n = 2 * (x / a2, y / b2, z / c2)\n        #  == 2 * (x, y * a2 / b2, z * a2 / c2) / a2  # iff ordered\n        #  == 2 * (x, y / _b2_a2, z / _c2_a2) / a2\n        #  == unit(x, y / _b2_a2, z / _c2_a2).times(length)\n        x, y, z = _otherV3d_(x_xyz, y, z).xyz3\n        n = Vector3d(x, y / self._b2_a2,\n                        z / self._c2_a2, name__=self.normal3d)\n        u = n.length\n        if u < EPS0:\n            raise TriaxialError(x=x_xyz, y=y, z=z, txt=_null_)\n        return n.times(length / u)\n\n    def normal4(self, x_xyz, y=None, z=None, height=0, normal=True):\n        '''Compute a cartesian at a B{C{height}} above or below this triaxial's surface.\n\n           @arg x_xyz: X component (C{scalar}) or a cartesian (C{Cartesian}, L{Ecef9Tuple},\n                       L{Vector3d}, L{Vector3Tuple} or L{Vector4Tuple}).\n           @kwarg y: Y component (C{scalar}), required if B{C{x_xyz}} if C{scalar}, ignored\n                     otherwise.\n           @kwarg z: Z component (C{scalar}), like B{C{y}}.\n           @kwarg normal: If C{True}, the B{C{height}} is I{perpendicular, plumb} to the\n                          triaxial's surface, otherwise C{radially} to the center of this\n                          triaxial (C{bool}).\n\n           @return: L{Vector4Tuple}C{(x, y, z, h)} with the cartesian coordinates C{x},\n                    C{y} and C{z} and C{h} the I{signed, normal distance} to the triaxial's\n                    surface in C{meter}, conventionally.  Positive C{h} indicates, the\n                    cartesian is outside the triaxial, negative C{h} means inside.\n\n           @raise TriaxialError: Zero length cartesian or vector.\n\n           @note: Cartesian C{(B{x}, B{y}, B{z})} I{must be on} this triaxial's surface,\n                  use method L{Triaxial.sideOf} to validate.\n\n           @see: Methods L{Triaxial.normal3d} and L{Triaxial.height4}.\n        '''\n        v, h = _otherV3d_(x_xyz, y, z), Height_(height, low=None)\n        if h:\n            if v.length < EPS0:\n                raise TriaxialError(x=x_xyz, y=y, z=z, txt=_null_)\n            if normal:\n                n  = self.normal3d(v, length=h)\n                h  = n.length\n                n += v\n            else:\n                h = h / v.length  # /= chokes PyChecker\n                n = v.times(h + _1_0)\n        else:\n            n = v\n        return Vector4Tuple(n.x, n.y, n.z, h, name__=self.normal4)\n\n    def _order3(self, *abc, **reverse):  # reverse=False\n        '''(INTERNAL) Un-/Order C{a}, C{b} and C{c}.\n\n           @return: 3-Tuple C{(a, b, c)} ordered by or un-ordered\n                    (reverse-ordered) C{ijk} if C{B{reverse}=True}.\n        '''\n        ijk = self._order_ijk(**reverse)\n        return _getitems(abc, *ijk) if ijk else abc\n\n    def _order3d(self, v, **reverse):  # reverse=False\n        '''(INTERNAL) Un-/Order a C{Vector3d}.\n\n           @return: Vector3d(x, y, z) un-/ordered.\n        '''\n        ijk = self._order_ijk(**reverse)\n        return v.classof(*_getitems(v.xyz3, *ijk)) if ijk else v\n\n    @Property_RO\n    def _ordered4(self):\n        '''(INTERNAL) Helper for C{_hartzell3} and C{_plumbTo5}.\n        '''\n        def _order2(reverse, a, b, c):\n            '''(INTERNAL) Un-Order C{a}, C{b} and C{c}.\n\n               @return: 2-Tuple C{((a, b, c), ijk)} with C{a} >= C{b} >= C{c}\n                        and C{ijk} a 3-tuple with the initial indices.\n            '''\n            i, j, k = range(3)\n            if a < b:\n                a, b, i, j = b, a, j, i\n            if a < c:\n                a, c, i, k = c, a, k, i\n            if b < c:\n                b, c, j, k = c, b, k, j\n            # reverse (k, j, i) since (a, b, c) is reversed-sorted\n            ijk = (k, j, i) if reverse else (None if i < j < k else (i, j, k))\n            return (a, b, c), ijk\n\n        abc, T = self._abc3, self\n        if not self.isOrdered:\n            abc, ijk = _order2(False, *abc)\n            if ijk:\n                _, kji = _order2(True, *ijk)\n                T = _UnOrderedTriaxialBase(*abc)\n                T._ijk, T._kji = ijk, kji\n        return abc + (T,)\n\n    def _order_ijk(self, reverse=False):\n        '''(INTERNAL) Get the un-/order indices.\n        '''\n        return self._kji if reverse else self._ijk\n\n    @deprecated_property_RO\n    def perimeter4ab(self):\n        '''DEPRECATED on 2026.02.09, use property L{Ellipse<pygeodesy.Ellipse>}C{(a, b).perimeter2k_}.'''\n        a, b, _ = self._abc3\n        return Meter(perimeter4ab=_MODS.ellipses.Ellipse(a, b).perimeter2k_)\n\n    @deprecated_property_RO\n    def perimeter4ac(self):\n        '''DEPRECATED on 2026.02.09, use property L{Ellipse<pygeodesy.Ellipse>}C{(a, c).perimeter2k_}.'''\n        a, _, c = self._abc3\n        return Meter(perimeter4ac=_MODS.ellipses.Ellipse(a, c).perimeter2k_)\n\n    @deprecated_property_RO\n    def perimeter4bc(self):\n        '''DEPRECATED on 2026.02.09, use property L{Ellipse<pygeodesy.Ellipse>}C{(b, c).perimeter2k_}.'''\n        _, b, c = self._abc3\n        return Meter(perimeter4bc=_MODS.ellipses.Ellipse(b, c).perimeter2k_)\n\n    @Property_RO\n    def R2(self):\n        '''Get the I{authalic} earth radius (C{meter}), M{sqrt(area / PI4)}.\n        '''\n        r = self.isSpherical\n        return Meter(R2=r if r else sqrt(self.area / PI4))  # Radius\n\n    Rauthalic = R2\n\n    @Property_RO\n    def R3(self):\n        '''Get the I{volumetric} earth radius (C{meter}), M{(a * b * c)**(1/3)}.\n        '''\n        a, b, c = self._abc3\n        return Meter(R3=a if a == b == c else cbrt(a * b * c))  # Radius\n\n    Rvolumetric = R3\n\n    def _radialTo3(self, sbeta, cbeta, somega, comega):\n        '''(INTERNAL) I{Unordered} helper for C{.height4}.\n        '''\n        def _rphi(a, b, sphi, cphi):\n            # <https://WikiPedia.org/wiki/Ellipse#Polar_form_relative_to_focus>\n            # polar form: radius(phi) = a * b / hypot(a * sphi, b * cphi)\n            return (b / hypot(sphi, b / a * cphi)) if a > b else (\n                   (a / hypot(cphi, a / b * sphi)) if a < b else a)\n\n        sa, ca = self._norm2(sbeta,  cbeta)\n        sb, cb = self._norm2(somega, comega)\n\n        a, b, c = self._abc3\n        if a != b:\n            a = _rphi(a, b, sb, cb)\n        if a != c:\n            c = _rphi(a, c, sa, ca)\n        t = c * ca\n        return (t * cb), (t * sb), (c * sa)\n\n    def sideOf(self, x_xyz, y=None, z=None, eps=EPS4):\n        '''Is a cartesian on, above or below the surface of this triaxial?\n\n           @arg x_xyz: X component (C{scalar}) or a cartesian (C{Cartesian},\n                       L{Ecef9Tuple}, L{Vector3d}, L{Vector3Tuple} or L{Vector4Tuple}).\n           @kwarg y: Y component (C{scalar}), required if B{C{x_xyz}} is C{scalar},\n                     ignored otherwise.\n           @kwarg z: Z component (C{scalar}), like B{C{y}}.\n           @kwarg eps: On-surface tolerance (C{scalar}, distance I{squared}).\n\n           @return: C{INT0} if C{(B{x}, B{y}, B{z})} is near this triaxial's surface\n                    within tolerance B{C{eps}}, otherwise the signed, radial distance\n                    I{squared} (C{float}), nega-/positive for in- respectively outside\n                    this triaxial.\n\n           @see: Methods L{Triaxial.height4} and L{Triaxial.normal3d}.\n        '''\n        v = _otherV3d_(x_xyz, y, z)\n        s =  fsumf_(_N_1_0, *map(_over02, v.xyz3, self._abc3))\n        return INT0 if fabs(s) < eps else s\n\n    def _sideOn(self, v, eps=_EPS2e4):\n        s = self.sideOf(v.xyz, eps=eps)\n        if s:  # PYCHOK no cover\n            t = _SPACE_((_inside_ if s < 0 else _outside_), self.toRepr())\n            raise TriaxialError(eps=eps, sideOf=s, x=v.x, y=v.y, z=v.z, txt=t)\n        return s\n\n    def toEllipsoid(self, **name):\n        '''Convert this triaxial to a I{biaxial} L{Ellipsoid}, provided 2 axes match.\n\n           @kwarg name: Optional C{B{name}=NN} (C{str}).\n\n           @return: An L{Ellipsoid} with north along this C{Z} axis if C{a == b},\n                    this C{Y} axis if C{a == c} or this C{X} axis if C{b == c}.\n\n           @raise TriaxialError: This C{a != b}, C{b != c} and C{c != a}.\n\n           @see: Method L{Ellipsoid.toTriaxial}.\n        '''\n        a, b, c = self._abc3\n        if a == b:\n            b = c  # N = c-Z\n        elif b == c:  # N = a-X\n            a, b = b, a\n        elif a != c:  # N = b-Y\n            t = _SPACE_(_a_, _NOTEQUAL_, _b_, _NOTEQUAL_, _c_)\n            raise TriaxialError(a=a, b=b, c=c, txt=t)\n        return _MODS.ellipsoids.Ellipsoid(a, b=b, name=self._name__(name))\n\n    toBiaxial = toEllipsoid\n\n    def toStr(self, prec=9, terse=-3, **name):  # PYCHOK signature\n        '''Return this C{Triaxial} as a string.\n\n           @kwarg prec: Precision, number of decimal digits (0..9).\n           @kwarg terse: Limit the number of items (C{int}, 3..11),\n                         use C{B{terse}=0} or C{=None} for all.\n           @kwarg name: Optional name (C{str}), to override or C{None}\n                        to exclude this triaxial's name.\n\n           @return: This C{Triaxial}'s attributes (C{str}).\n        '''\n        T = _UnOrderedTriaxialBase\n        m = _MODS.triaxials\n        C =  m.Triaxial3B\n        if isinstance(self, C):\n            t  = T.b, C.e2, C.k2, C.kp2\n        else:\n            t  = T.a,  # props\n            C  = m.ConformalSphere\n            t += (C.ab, C.bc) if isinstance(self, C) else (T.b, T.c)\n            C  = _Triaxial3Base\n            t += (C.k2, C.kp2) if isinstance(self, C) else \\\n                 (T.e2ab, T.e2bc, T.e2ac)\n        for C in (m.Conformal, m.Conformal3):\n            if isinstance(self, C):\n                t += C.xyQ2,\n                break\n        t += T.volume, T.area, T.R2\n        if terse:\n            t = t[:terse]\n        return self._instr(prec=prec, props=t, **name)\n\n    @Property_RO\n    def unOrdered(self):\n        '''Is this triaxial I{un-ordered} and I{not spherical} (C{bool})?\n        '''\n        return not (self.isOrdered or bool(self.isSpherical))\n\n    @Property_RO\n    def volume(self):\n        '''Get the volume (C{meter**3}), M{4 / 3 * PI * a * b * c}.\n        '''\n        a, b, c = self._abc3\n        return Meter3(volume=a * b * c * PI_3 * _4_0)\n\n\nclass _OrderedTriaxialBase(_UnOrderedTriaxialBase):\n    '''(INTERNAL) Base class for all I{ordered} triaxial classes.\n    '''\n    _unordered = False\n\n    def __init__(self, a_triaxial, b=None, c=None, **name):\n        '''New I{ordered} L{Triaxial}, L{Triaxial3}, L{Conformal} or L{Conformal3}.\n\n           @arg a_triaxial: Largest semi-axis (C{scalar}, conventionally in C{meter})\n                            or an other L{Triaxial} or L{Triaxial_} instance.\n           @kwarg b: Middle semi-axis (C{meter}, same units as B{C{a}}), required\n                     if C{B{a_triaxial} is scalar}, ignored otherwise.\n           @kwarg c: Smallest semi-axis (C{meter}, like B{C{b}}).\n           @kwarg name: Optional C{B{name}=NN} (C{str}).\n\n           @note: The semi-axes must be ordered as C{B{a} >= B{b} >= B{c} > 0} and\n                  must be ellipsoidal, C{B{a} > B{c}}.\n\n           @raise TriaxialError: Semi-axes unordered, spherical or invalid.\n        '''\n        _UnOrderedTriaxialBase.__init__(self, a_triaxial, b=b, c=c, **name)\n\n    @Property_RO\n    def _a2b2_a2c2(self):\n        '''@see: Methods C{.forwardBetaOmega} and property C{._k2_kp2E}.\n        '''\n        s = self._a2c2\n        if s:\n            s = self._a2b2 / s\n        return s or _0_0\n\n    @Property_RO\n    def area(self):\n        '''Get the surface area (C{meter} I{squared}).\n\n           @see: U{Surface area<https://WikiPedia.org/wiki/Ellipsoid#Surface_area>}.\n        '''\n        a = self._areax\n        if a is None:\n            a = _UnOrderedTriaxialBase(self).area  # or self.area21k\n        return a\n\n    @Property_RO\n    def area21k(self):\n        '''Get the surface area using incomplete elliptic integrals of the\n           2nd and 1st kind (C{meter} I{squared}), see also C{Elliptic.fE}\n           respectively C{Elliptic.fF}.\n        '''\n        a = self._areax\n        if a is None:\n            k2, kp2 = t = self._k2_kp2E\n            if self.e2ac < EPS or min(t) < EPS or max(t) > _1_0:\n                a  =  self.areaKT()  # \"flat\" or near-spherical\n            else:\n                aE = _MODS.elliptic.Elliptic(k2=kp2, kp2=k2)  # swapped!\n                s  =  sqrt(self.e2ac)  # == sin(phi)\n                t  =  self._c2_a2 / s  # == cos(phi)**2 / sin(phi)\n                r  =  asin1(s)  # phi\n                a, b, c = self._abc3\n                t  = (aE.fE(r) * s + aE.fF(r) * t) * a * b\n                a  =  Meter2(area21k=(c**2 + t) * PI2)\n        return a\n\n    @Property_RO\n    def _areax(self):\n        '''(INTERNAL) Get the area as ellipsoidal or C{None}.\n        '''\n        a, b, c = self._abc3\n        return None if a != b else \\\n              _MODS.ellipsoids.Ellipsoid(a, b=c).areax\n\n    @Property_RO\n    def _k2_kp2E(self):\n        '''(INTERNAL) Get elliptic C{k2} and C{kp2} for C{._xE}, C{._yE} and C{.areaE}.\n        '''\n        # k2  = a2b2 / a2c2 * c2_b2\n        # kp2 = b2c2 / a2c2 * a2_b2\n        # b2  = b**2\n        # xE  = Elliptic(k2,  -a2b2 / b2, kp2, a2_b2)\n        # yE  = Elliptic(kp2,  b2c2 / b2, k2,  c2_b2)\n        # aE  = Elliptic(kp2,  0,         k2,  1)\n        k2  = (self._c2_b2 * self._a2b2_a2c2) or _0_0\n        kp2 = (self._a2_b2 * self._b2c2 / self._a2c2) if k2 else _1_0\n        return k2, kp2\n\n    def _radialTo3(self, sbeta, cbeta, somega, comega):\n        '''(INTERNAL) Convert I{ellipsoidal} lat- C{beta} and longitude\n           C{omega} to a cartesian I{on this triaxial's surface}, also\n           I{ordered} helper for C{.height4 with normal=False}.\n        '''\n        sa, ca  =  self._norm2(sbeta,  cbeta)\n        sb, cb  =  self._norm2(somega, comega)\n\n        b2_a2   =  self._b2_a2  # ==  (b/a)**2\n        c2_a2   = -self._c2_a2  # == -(c/a)**2\n        a2c2_a2 =  self.  e2ac  # (a**2 - c**2) / a**2 == 1 - (c/a)**2\n\n        x2 = _Fsumf_(_1_0, -b2_a2 * sa**2, c2_a2 * ca**2).fover(a2c2_a2)\n        z2 = _Fsumf_(c2_a2,         sb**2, b2_a2 * cb**2).fover(a2c2_a2)\n\n        x, y, z =  self._abc3\n        x *= cb * _sqrt0(x2)\n        y *= ca *  sb\n        z *= sa * _sqrt0(z2)\n        return x, y, z\n\n\nclass _Triaxial3Base(_OrderedTriaxialBase):\n    '''(INTERNAL) Base class for I{unordered} triaxialC{3} classes.\n    '''\n    _e2_k2_kp2 = None\n    _Lon0      = None\n\n    @Property_RO\n    def e2(self):\n        '''Get the I{squared eccentricity} (C{scalar}), M{(a**2 - c**2) / b**2}.\n        '''\n        if self._e2_k2_kp2:\n            e2, _, _ = self._e2_k2_kp2\n        else:\n            e2 = self._a2c2 / self.b2\n        return Float(e2=e2)\n\n    def _init_abc3_e2_k2_kp2(self, b, e2, k2, kp2, **name):\n        '''(INTERNAL) C{Triaxial3B.__init__}.\n        '''\n        if name:\n            self.name = name\n        s = k2 + kp2\n        if s > 0 and s != _1_0:\n            k2  = k2 / s  # /= chokes PyChecker\n            kp2 = kp2 / s\n        if min(e2, k2, kp2) < 0 or not s > 0:\n            raise TriaxialError(e2=e2, k2=k2, kp2=kp2)\n        if e2:\n            a = Radius_(a=_sqrt0(_1_0 + e2 * kp2) * b) if kp2 else b\n            c = Radius_(c=_sqrt0(_1_0 - e2 * k2)  * b) if k2  else b\n        else:  # spherical\n            a = c = b\n        if not (_isfinite(b) and a >= b >= c > 0):\n            raise TriaxialError(b=b, a=a, c=c, e2=e2,\n                                k2=k2, kp2=kp2, txt=_not_ordered_)\n        self._abc3 = a, b, c\n        self._e2_k2_kp2 = e2, k2, kp2\n\n    @property_RO\n    def isBiaxial(self):\n        '''Is this triaxial I{biaxial} (C{bool}), C{a} == C{b} or C{b} == C{c}?\n        '''\n        return self.isOblate or self.isProlate\n\n    @property_RO\n    def isOblate(self):\n        '''Is this triaxial I{oblate} (C{bool}), C{a} == C{b}?\n        '''\n        return bool(self.kp2 == 0)\n\n    @property_RO\n    def isProlate(self):\n        '''Is this triaxial I{prolate} (C{bool}), C{b} == C{c}?\n        '''\n        return bool(self.k2 == 0)\n\n    @Property_RO\n    def _k_kp(self):\n        '''(INTERNAL) Get the oblate C{k} and prolate C{kp} parameters.\n        '''\n        return map1(_sqrt0, *self._k2_kp2)\n\n    @Property_RO\n    def k2(self):\n        '''(INTERNAL) Get the oblate C{k2} parameter I{squared}.\n        '''\n        k2, _ = self._k2_kp2\n        return k2\n\n    @Property_RO\n    def _k2_kp2(self):\n        '''(INTERNAL) Get the oblate C{k2} and prolate C{kp2} parameters I{squared}.\n        '''\n        if self._e2_k2_kp2:\n            _, k2, kp2 = self._e2_k2_kp2\n        else:\n            s   =  self._a2c2\n            k2  = (self._b2c2 / s) if s else _1_0\n            kp2 = (self._a2b2 / s) if s else _0_0\n        return k2, kp2\n\n    @Property_RO\n    def kp2(self):\n        '''(INTERNAL) Get the prolate C{kp2} parameter I{squared}.\n        '''\n        _, kp2 = self._k2_kp2\n        return kp2\n\n    @Property_RO\n    def _lcc23(self):\n        return self._a2c2, self._b2c2, _0_0\n\n    @property_doc_(\" longitude of the I{earth}'s major semi-axis C{a}, (L{Ang}), Karney's C{Triaxial_Earth_lon0}.\")\n    def Lon0(self):\n        if self._Lon0 is None:\n            WGS84_3 = self.name.startswith('WGS84_3')\n            self.Lon0 = -(1493 / 100) if WGS84_3 else 0\n        return self._Lon0\n\n    @Lon0.setter  # PYCHOK setter!\n    def Lon0(self, lon0):\n        m = _MODS.angles\n        d =  lon0.degrees if m.isAng(lon0) else Degrees(lon0)\n        n = _Triaxial3Base.Lon0.name\n        self._Lon0 = m.Ang.fromDegrees(d, name=n)\n\n    @Property_RO\n    def _xE(self):\n        '''(INTERNAL) Get the x-elliptic function.\n        '''\n        return self._xyE(self.e2, self.k2, self.kp2)\n\n    def _xyE(self, e2, k2, kp2):\n        '''(INTERNAL) Helper for C{._xE} and C{._yE}.\n        '''\n        if e2:\n            a2   = -kp2 * e2\n            ap2  = _1_0 - a2\n            kp2 *= _1_0 - k2 * e2\n            k2  *=  ap2\n        else:\n            a2, ap2 = _0_0, _1_0\n        return _MODS.elliptic.Elliptic(kp2, a2, k2, ap2)\n\n    @Property_RO\n    def _yE(self):\n        '''(INTERNAL) Get the y-elliptic function.\n        '''\n        return self._xyE(-self.e2, self.kp2, self.k2)\n\n\nclass TriaxialError(_ValueError):\n    '''Raised for any triaxial issue.\n    '''\n    pass  # ...\n\n\nclass _TriaxialsBase(_NamedEnum):\n    '''(INTERNAL) C{Triaxial*} registry, I{must} be a sub-class\n       to accommodate the L{_LazyNamedEnumItem} properties.\n    '''\n    _assert_kwds = {}    # like propertyROnce\n    _Triaxial    = None  # must be overloaded\n\n    def _Lazy(self, *abc, **name):\n        '''(INTERNAL) Instantiate the C{self._Triaxial}.\n        '''\n        return self._Triaxial(*abc, **name)\n\n    def _assert(self):  # PYCHOK signature\n        kwds = _TriaxialsBase._assert_kwds\n        if not kwds:\n            _lazy    = _MODS.named._lazyNamedEnumItem\n            EWGS84   = _MODS.ellipsoids._EWGS84\n            abc84_35 =  map1(m2km, EWGS84.a + 35, EWGS84.a - 35, EWGS84.b)\n            # <https://ArxIV.org/pdf/1909.06452.pdf> Table 1 Semi-axes in Km\n            # <https://www.JPS.NASA.gov/education/images/pdf/ss-moons.pdf>\n            # <https://link.Springer.com/article/10.1007/s00190-022-01650-9>\n            # <https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Constants.html>\n            # <https://www.ResearchGate.net/publication/344992491_Fitting_a_triaxial_ellipsoid_to_a_geoid_model>\n            for n, abc in dict(  # a (Km)       b (Km)      c (Km)       planet\n                      Amalthea= (125.0,        73.0,       64.0),      # Jupiter\n                      Ariel=    (581.1,       577.9,      577.7),      # Uranus\n                      Earth=   (6378.173435, 6378.1039,  6356.7544),\n                      Enceladus=(256.6,       251.4,      248.3),      # Saturn\n                      Europa=  (1564.13,     1561.23,    1560.93),     # Jupiter\n                      Io=      (1829.4,      1819.3,     1815.7),      # Jupiter\n                      Mars=    (3394.6,      3393.3,     3376.3),\n                      Mimas=    (207.4,       196.8,      190.6),      # Saturn\n                      Miranda=  (240.4,       234.2,      232.9),      # Uranus\n                      Moon=    (1735.55,     1735.324,   1734.898),    # Earth\n                      Tethys=   (535.6,       528.2,      525.8),      # Saturn\n                      WGS84_3= (6378.17136,  6378.10161, 6356.75184),  # C++\n                      WGS84_3r=(6378.172,    6378.102,   6356.752),    # C++, rounded\n#                     Panou=   (6378.17188,  6378.10203, 6356.75224),  # et.al. Fitting ...\n                      WGS84_35=abc84_35).items():\n                kwds[n] = _lazy(n, *map(km2m, abc))\n        _NamedEnum._assert(self, **kwds)\n\n\ndef _getitems(items, *indices):\n    '''(INTERNAL) Get the C{items} at the given I{indices}.\n\n       @return: C{Type(items[i] for i in indices)} with\n                C{Type = type(items)}, any C{type} having\n                the special method C{__getitem__}.\n    '''\n    return type(items)(map(items.__getitem__, indices))\n\n\ndef _hypot2_1(x, y, z=0):\n    '''(INTERNAL) Compute M{x**2 + y**2 + z**2 - 1} with C{max(fabs(x), fabs(y),\n       fabs(z))} rarely greater than 1.0.\n    '''\n    return fsumf_(_N_1_0, x*x, y*y, z*z)\n\n\ndef _otherV3d_(x_xyz, y, z, **name):\n    '''(INTERNAL) Get a Vector3d from C{x_xyz}, C{y} and C{z}.\n    '''\n    return _otherV3d(x_xyz=x_xyz, **name) if y is z is None else \\\n            Vector3d(x_xyz, y, z, **name)\n\n\ndef _over0(p, q):\n    '''(INTERNAL) Return C{p / q} or C{0}.\n    '''\n    return (p / q) if q > fabs(p) else _0_0\n\n\ndef _over02(p, q):\n    '''(INTERNAL) Return C{(p / q)**2} or C{0}.\n    '''\n    return (p / q)**2 if p and q else _0_0\n\n\ndef _sqrt0(x):\n    '''(INTERNAL) C{sqrt0} with C{TriaxialError}.\n    '''\n    return sqrt0(x, Error=TriaxialError)\n\n\n__all__ += _ALL_DOCS(_OrderedTriaxialBase, _Triaxial3Base, _UnOrderedTriaxialBase)\n\n# **) MIT License\n#\n# Copyright (C) 2025-2026 -- mrJean1 at Gmail -- All Rights Reserved.\n#\n# Permission is hereby granted, free of charge, to any person obtaining a\n# copy of this software and associated documentation files (the \"Software\"),\n# to deal in the Software without restriction, including without limitation\n# the rights to use, copy, modify, merge, publish, distribute, sublicense,\n# and/or sell copies of the Software, and to permit persons to whom the\n# Software is furnished to do so, subject to the following conditions:\n#\n# The above copyright notice and this permission notice shall be included\n# in all copies or substantial portions of the Software.\n#\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL\n# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR\n# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\n# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n# OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "pygeodesy/triaxials/conformal3.py",
    "content": "\n# -*- coding: utf-8 -*-\n\nu'''I{Jacobi Conformal projection} classes L{Conformal3}, L{Conformal3B} and L{Conformal3Sphere} on\ntriaxial ellipsoids and spheres using L{Ang}, L{Deg}, L{Rad} lat-, longitude, heading and meridian\n(convergence) angles.\n\nTranscoded to pure Python from I{Karney}'s GeographicLib 2.7 C++ class U{Conformal3<https://\nGeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Triaxial_1_1Conformal3.html>}.\n\nCopyright (C) U{Charles Karney<malto:Karney@Alum.MIT.edu>} (2024-2025) and licensed under the MIT/X11\nLicense.  For more information, see the U{GeographicLib 2.7<https://GeographicLib.SourceForge.io/>}\ndocumentation.\n'''\n# make sure int/int division yields float quotient, see .basics\nfrom __future__ import division as _; del _  # noqa: E702 ;\n\nfrom pygeodesy.angles import Ang, _Ang3Tuple, isAng,  Property_RO\nfrom pygeodesy.basics import _copysign, signBit\nfrom pygeodesy.constants import EPS, INF, NAN, PI_2, \\\n                               _copysign_1_0, _over, _1_over, remainder, \\\n                               _0_0, _0_01, _0_5, _0_75, _1_0, _2_0, _4_0\nfrom pygeodesy.constants import _16_0  # PYCHOK used!\n# from pygeodesy.elliptic import Elliptic  # _MODS\nfrom pygeodesy.fmath import hypot1,  _ALL_LAZY, Fmt, _MODS\nfrom pygeodesy.interns import _DMAIN_, _scale_\n# from pygeodesy.lazily import _ALL_LAZY, _ALL_MODS as _MODS  # from .fmath\n# from pygeodesy.named import _NamedTuple, _Pass  # from .namedTuples\nfrom pygeodesy.namedTuples import Vector2Tuple,  _Pass\n# from pygeodesy.props import Property_RO  # from .triaxials.angles\n# from pygeodesy.streprs import Fmt  # from .fmath\nfrom pygeodesy.triaxials.bases import _bet_, Conformal5Tuple, LLK, _llk_, \\\n                                      _MAXIT, _omg_, TriaxialError, \\\n                                      _Triaxial3Base,  Vector3d\nfrom pygeodesy.triaxials.triaxial3 import Triaxial3B\nfrom pygeodesy.units import Easting, Northing, Radians, Radius_, Scalar\nfrom pygeodesy.utily import sincos2\n# from pygeodesy.vector3d import Vector3d  # from .triaxials.bases\n\nfrom math import atan, atanh, exp, fabs, log, sinh, sqrt\n\n__all__ = _ALL_LAZY.triaxials_conformal3\n__version__ = '26.02.15'\n\n_gam_    = 'gam'\n_LOG2MIN =  log(EPS) * _2_0\n# _N     = (log(_4_0) - log(PI)) / (PI_2 - log(_4_0))\n_NLOG2   = -log(_2_0)\n# _B     =  exp(_N * PI_2) - pow(_4_0, _N)\n\n\nclass BetOmgGam5Tuple(_Ang3Tuple):\n    '''5-Tuple C{(bet, omg, gam, scale, llk)} with I{ellipsoidal} lat-\n       C{bet}, longitude C{omg} and meridian convergence C{gam} all\n       L{Ang}les, C{scale} I{and kind} C{llk} I{set to} C{LLK.CONFORMAL}.\n    '''\n    _Names_ = (_bet_, _omg_, _gam_, _scale_, _llk_)\n    _Units_ = ( Ang,   Ang,  _Pass,  Scalar, _Pass)\n\n    def __new__(cls, bet, omg, gam, scale=NAN, llk=None, unit=None, **kwds):  # **iteration_name\n        args = bet, omg, gam, scale, (llk or LLK.CONFORMAL)\n        self = _Ang3Tuple.__new__(cls, args, **kwds)\n        return self.toUnit(unit) if unit else self\n\n\nclass Conformal3(_Triaxial3Base):\n    '''I{Jacobi Conformal} projection of triaxial ellipsoid using class L{Ang}\n       lat- and longitudes.\n\n       @see: L{Triaxial<triaxials.triaxial5.Triaxial>} for details.\n    '''\n    @Property_RO\n    def _a_b(self):\n        return self.a / self.b\n\n    @Property_RO\n    def _a2_b(self):\n        return self.a * self._a_b  # == self.b * self._a2_b2\n\n    @Property_RO\n    def _b_a(self):\n        return self.b / self.a  # = sqrt(self._b2_a2)\n\n    @Property_RO\n    def _b_c(self):\n        return self.b / self.c\n\n    @Property_RO\n    def _c_b(self):\n        return self.c / self.b  # = sqrt(self._c2_b2)\n\n    @Property_RO\n    def _c2_b(self):\n        return self.c * self._c_b  # == self.b * self._c2_b2\n\n    @Property_RO\n    def _C3S(self):\n        '''(INTERNAL) Cache the I{equivalent Conformal Sphere}.\n        '''\n        return self.equi3Sphere(*self.xyQ2, name=self.name)\n\n    def equi3Sphere(self, x, y, **name):\n        '''Get this projection's I{equivalent Conformal Sphere}.\n\n           @arg x: Quadrant x length, easting (C{meter}).\n           @arg y: Quadrant y length, northing (C{meter}).\n\n           @return: The C{Comformal3Sphere} of this projection.\n\n           @see: Classes L{Conformal3Sphere<triaxials.spheres.Conformal3Sphere>} and\n                 L{ConformalSphere<triaxials.triaxial5.ConformalSphere>} and I{Karney}'s\n                 GeographicLib 2.7 C++ U{Triaxial::Conformal3<https://GeographicLib.\n                 SourceForge.io/C++/doc/classGeographicLib_1_1Triaxial_1_1Conformal3.html>}\n                 for more information.\n        '''\n        x, y = self.xyQ2\n        # Find C{b, k2, kp2} s.t. C{b * K(kp2) = x},\n        # C{b * K(k2) = y} and C{x * K(k2) - y * K(kp2) = 0}.\n        _EF = _MODS.elliptic.Elliptic\n        _xy =  x < y\n        if _xy:\n            x, y = y, x\n        # Now x >= y, k2 <= 1/2\n        if x != y:\n            s  =  x + y\n            ny = _over(y, s)\n            if ny:\n                nx = _over(x, s)\n                # assert nx != ny\n                # Find initial guess assume K(k2) = pi/2, so K(kp2) = nx/ny * pi/2.\n                # Invert using approximate k(K) given in https://arxiv.org/abs/2505.17159v4\n                KK = _over(nx, ny) * PI_2\n                # k2 = _16_0 / pow(exp(_N * KK) - _B, _2_0 / _N)\n                # Alternatively using KK = 1/2*log(16/kp) A+S 17.3.26\n                k2 = min(_0_5, exp(-KK * _2_0) * _16_0)  # Make sure guess is sane\n                logk2 = log(k2)\n                if logk2 > _LOG2MIN:\n                    # Solve for log(k2) to preserve relative accuracy for tiny k2.\n                    def _k2s2(logk2):\n                        k2  =  exp(logk2)\n                        kp2 = _1_0 - k2\n                        xS  = _EF(kp2, 0, k2)\n                        yS  = _EF(k2,  0, kp2)\n                        f   =  nx *  yS.cK - ny  * xS.cK\n                        fp  = (nx * (yS.cE - kp2 * yS.cK) +\n                               ny * (xS.cE - k2  * xS.cK)) / (kp2 * _2_0)\n                        return f, fp\n\n                    logk2, _, _, _ = _root4(_k2s2, 0, logk2, _LOG2MIN, _NLOG2)\n                    k2 = exp(logk2)\n                # otherwise accept the asymptotic result\n                kp2 = _1_0 - k2\n            else:\n                k2, kp2 = _0_0, _1_0\n        else:\n            k2 = kp2 = _0_5\n        # b * K(kp2) = x\n        # b * K(k2)  = y\n\n        K = _EF(k2, 0, kp2).cK\n        b = _over(y, K)\n        if _xy:\n            k2, kp2 = kp2, k2\n        return Conformal3Sphere(b, k2, kp2, **name)\n\n    def forwardBetOmg(self, bet, omg, M=False, **unit_name):\n        '''Compute the projection to this conformal triaxial.\n\n           @arg bet: Ellipsoidal latitude (C{Ang} or B{C{unit}}).\n           @arg omg: Ellipsoidal longitude (C{Ang} or B{C{unit}})..\n           @kwarg M: If C{True}, compute and include the scale (C{bool}).\n           @kwarg unit_name: Optional C{B{unit}=}L{Radians} and C{B{name}=NN} (C{str}).\n\n           @return: A L{Conformal5Tuple}C{(x, y, z, scale, llk)} with C{z = INT0}\n                    I{always} and C{scale} if C{B{M}=True}, otherwise C{scale = NAN}.\n        '''\n        bet, omg, name = _bet_omg_name(bet, omg, **unit_name)\n        m = _1_over(self._invScale(bet, omg)) if M else NAN\n        return Conformal5Tuple(self._x(omg), self._y(bet), scale=m, **name)\n\n    def forwardOther(self, other, bet, omg, M=False, **unit_name):\n        '''Compute the projection to an other conformal triaxial.\n\n           @arg other: A conformal triaxial (C{Conformal3}).\n           @arg bet: Ellipsoidal latitude (C{Ang} or B{C{unit}}).\n           @arg omg: Ellipsoidal longitude (C{Ang} or B{C{unit}}).\n           @kwarg M: If C{True}, compute and include the scale (C{bool}).\n           @kwarg unit_name: Optional C{B{unit}=}L{Radians} and C{B{name}=NN} (C{str}).\n\n           @return: A L{BetOmgGam5Tuple}C{(bet, omg, gam, scale, llk)} with C{scale}\n                    if C{B{M}=True}, otherwise C{scale = NAN}.\n        '''\n        if not isinstance(other, Conformal3):\n            raise TriaxialError(other=other)\n        bet, omg, name = _bet_omg_name(bet, omg, **unit_name)\n        m = other._C3S.b / self._C3S.b\n        ct, v, ma = self.forwardSphere3(bet, omg, M=M)\n        ct = Vector3d(ct).times(m)\n        bet, omg, gam, mb, _ = other.reverseSphere(ct, dir3d=v, M=M)\n        if M:\n            m *= _over(ma, mb)\n        else:\n            m  =  NAN\n        return BetOmgGam5Tuple(bet, omg, gam, m, **name)\n\n    def forwardSphere3(self, bet, omg, M=False, **unit_name):\n        '''Compute the projection to and direction on the equivalent I{Conformal\n           Sphere}.\n\n           @arg bet: Ellipsoidal latitude (C{Ang} or B{C{unit}}).\n           @arg omg: Ellipsoidal longitude (C{Ang} or B{C{unit}}).\n           @kwarg M: If C{True}, compute and include the scale (C{bool}).\n           @kwarg unit_name: Optional C{B{unit}=}L{Radians} and C{B{name}=NN} (C{str}).\n\n           @return: 3-Tuple C{(cartesian, direction, scale)} with a C{cartesian}\n                    L{Cartesian5Tuple}C{(x, y, z, h, llk)} on and C{direction} a\n                    C{Vector3d} due North and tangent to the I{Conformal Sphere}\n                    and C{scale} if C{B{M}=True}, otherwise C{scale = NAN}.\n        '''\n        if M:\n            bet, omg, _ = _bet_omg_name(bet, omg, **unit_name)\n        x, y, _, _, _ = self.forwardBetOmg(bet, omg, M=False, **unit_name)\n        S = self._C3S\n        bets = _invF(S._yE, y / S.b)\n        omgs = _invF(S._xE, x / S.b).shift(-1)\n        ct, dir3d = S.forwardBetOmgAlp2(bets, omgs, Ang.N(), **unit_name)\n        if M:\n            ma =  self._invScale(bet, omg)\n            mb = _invScale(S, bets, omgs)\n            m  =  self._sphScale(ma, mb)\n        else:\n            m  =  NAN\n        return ct, dir3d, m\n\n    def _invScale(self, bet, omg):\n        # scale helper\n        return _invScale(self, bet, omg.shift(+1))\n\n    def reverseBetOmg(self, x_cf, y=None, M=False, **unit_name):\n        '''Reverse a projection from this conformal triaxial.\n\n           @arg x_cf: Easting (C{scalar}) or a conformal projection (C{Conformal5Tuple}).\n           @kwarg y: Northing (C{scalar}), required if B{C{x_cf}} is C{scalar},\n                     ignored otherwise.\n           @kwarg M: If C{True}, compute and include the scale (C{bool}).\n           @kwarg unit_name: Optional C{B{unit}=}L{Radians} and C{B{name}=NN} (C{str}).\n\n           @return: A L{BetOmgGam5Tuple}C{(bet, omg, gam, scale, llk)} with\n                    C{gam} set to C{None} and C{scale} only if C{B{M}=True},\n                    otherwise C{scale is NAN}.\n        '''\n        x, y = _cf2en(x_cf, y)\n        bet  = _invPi(self._yE, y / self._c2_b).mod(self._c_b)\n        omg  = _invPi(self._xE, x / self._a2_b).mod(self._a_b).shift(-1)\n        m    = _1_over(self._invScale(bet, omg)) if M else NAN\n        return BetOmgGam5Tuple(bet, omg, None, m, **unit_name)\n\n    def reverseOther(self, other, beto, omgo, M=False, **unit_name):\n        '''Reverse a projection from an other conformal triaxial.\n\n           @arg other: A conformal triaxial (C{Conformal3}).\n           @arg beto: Ellipsoidal latitude on the B{C{other}} triaxial\n                      (C{Ang} or B{C{unit}}).\n           @arg omgo: Ellipsoidal longitude on the B{C{other}} triaxial\n                      (C{Ang} or B{C{unit}}).\n           @kwarg M: If C{True}, compute and include the scale (C{bool}).\n           @kwarg unit_name: Optional C{B{unit}=}L{Radians} and C{B{name}=NN} (C{str}).\n\n           @return: A L{BetOmgGam5Tuple}C{(bet, omg, gam, scale, llk)} with\n                    C{scale} if C{B{M}=True}, otherwise C{scale = NAN}.\n        '''\n        if not isinstance(other, Conformal3):\n            raise TriaxialError(other=other)\n        bet, omg, gam, m, _ = other.forwardOther(self, beto, omgo, M=M)\n        m = _1_over(m) if M else NAN\n        return BetOmgGam5Tuple(bet, omg, _Neg(gam), m, **unit_name)\n\n    def reverseSphere(self, x_ct, y=None, z=None, dir3d=None, M=False, **unit_name):\n        '''Reverse a projection from this C{Conformal Sphere} to this triaxial.\n\n           @arg x_ct: X component (C{scalar}) of or a cartesian on the C{Conformal\n                      Sphere} (C{Cartesian5Tuple}).\n           @kwarg y: Y component (C{scalar}), required if B{C{x_ct}} is C{scalar},\n                     ignored otherwise.\n           @kwarg z: Z component (C{scalar}), like B{C{y}}.\n           @kwarg dir3d: The direction (C{Vector3d} or C{None}), reference.\n           @kwarg M: If C{True}, compute and include the scale (C{bool}).\n           @kwarg unit_name: Optional C{B{unit}=}L{Radians} and C{B{name}=NN} (C{str}).\n\n           @return: A L{BetOmgGam5Tuple}C{(bet, omg, gam, scale, llk)} with\n                    C{scale} only if C{B{M}=True}, otherwise C{scale = NAN}.\n        '''\n        S = self._C3S\n        bets, omgs, alp, _, _ = S.reverseBetOmgAlp(x_ct, y, z, dir3d=dir3d)\n        _  = Ang._norm(bets, omgs, alp, alt=bool(S.k2 == 0))\n        x = S.b * _F(S._xE, omgs.shift(+1))\n        y = S.b * _F(S._yE, bets)\n        bet, omg, _, _, _ = self.reverseBetOmg(x, y, M=False)\n        if M:\n            mb = _invScale(S, bets, omgs)\n            ma = _invScale(S, bet,  omg)\n            m  =  self._sphScale(ma, mb)\n        else:\n            m  =  NAN\n        return BetOmgGam5Tuple(bet, omg, _Neg(alp), m, **unit_name)\n\n    def _sphScale(self, ma, mb):\n        '''(INTERNAL) Compute the C{scale}.\n        '''\n        return _over(mb, ma) if ma and mb else self._sphScale_m\n\n    @Property_RO\n    def _sphScale_m(self):\n        '''(INTERNAL) Cache the constant C{scale}.\n        '''\n        e = sqrt(self.e2)\n\n        def _h1sg(atan_):\n            sg = sinh(e * atan_(e))\n            return hypot1(sg) + sg\n\n        k2, kp2 = self._k2_kp2\n        if not kp2:  # oblate pole\n            m =  self._c_b * _h1sg(atanh)\n        elif not k2:  # prolate pole\n            m = _over(self._a_b, _h1sg(atan))\n        else:  # trixial umbilical\n            S =  self._C3S\n            s = _over(S.k2 * S.kp2, k2 * kp2)\n            m = (sqrt(s) * (self.b / S.b)) if s > 0 else _0_0\n        return m\n\n    def _x(self, omg):  # degrees?\n        '''(INTERNAL) Compute an C{x} projection easting.\n        '''\n        omg = omg.shift(+1)\n        _, c, n = omg.scn3\n        if (n or signBit(c)) and not self.k2:\n            x =  NAN\n        else:\n            x = _Pi(self._xE, omg.mod(self._b_a))\n            x *= self._a2_b\n        return x\n\n    @Property_RO\n    def xyQ2(self):\n        '''Get the quadrant length in x and y direction (Vector2Tuple{x, y}).\n        '''\n        return Vector2Tuple(self._a2_b * self._xE.cPi,\n                            self._c2_b * self._yE.cPi,\n                            name=Conformal3.xyQ2.name)\n\n    def _y(self, bet):  # degrees?\n        '''(INTERNAL) Compute a C{y} projection northing.\n        '''\n        _, c, n = bet.scn3\n        if (n or signBit(c)) and not self.kp2:\n            y =  NAN\n        else:\n            y = _Pi(self._yE, bet.mod(self._b_c))\n            y *= self._c2_b\n        return y\n\n\nclass Conformal3B(Conformal3):\n    '''I{Jacobi Conformal projection} on a triaxial ellipsoid\n       specified by its middle semi-axis and shape.\n\n       @see: L{Conformal3} for details and more information.\n    '''\n    def __init__(self, b, e2=_0_0, k2=_1_0, kp2=_0_0, **name):\n        '''New L{Conformal3B} triaxial.\n\n          @note: Use C{B{b}=radius} and C{B{e2}=0} for a conformal\n                 I{spherical} projection.\n\n          @see: L{Conformal<triaxials.triaxial5.Conformal.__init__>}.\n        '''\n        self._init_abc3_e2_k2_kp2(Radius_(b=b), e2, k2, kp2, **name)\n\n\nclass Conformal3Sphere(Triaxial3B):  # note C{Triaxial3}!\n    '''I{Jacobi Conformal projection} on a I{spherical} triaxial.\n\n       @see: Method L{equiv3Sphere<triaxials.conformal3.Conformal3.equi3Sphere>}.\n    '''\n    def __init__(self, radius, k2=_1_0, kp2=_0_0, **name):\n        '''New, L{Conformal3Sphere} instance.\n\n           @see: L{Triaxial3<triaxials.triaxial3.Triaxial3>} for more information.\n        '''\n        self._init_abc3_e2_k2_kp2(Radius_(radius), 0, k2, kp2, **name)\n        # self._xE = _MODS.elliptic.Elliptic(kp2, 0, k2,  **name)  # _Triaxial3Base._xE\n        # self._yE = _MODS.elliptic.Elliptic(k2,  0, kp2, **name)  # _Triaxial3Base._yE\n\n\ndef _bet_omg_name(bet, omg, unit=Radians, **name):\n    '''(INTERNAL) Get C{(bet, omg, name)}.\n    '''\n    return (Ang.fromScalar(bet, unit=unit),\n            Ang.fromScalar(omg, unit=unit), name)\n\n\ndef _cf2en(x_cf, y):\n    '''(INTERNAL) Get easting C{x} and notrthing C{y}.\n    '''\n    return x_cf[:2] if isinstance(x_cf, Conformal5Tuple) else (\n           Easting(x_cf), Northing(y))\n\n\ndef _F(eF, phi):  # -> float\n    '''(INTERNAL) Elliptic function C{F(phi)}.\n    '''\n    s, c, n = phi.scn3\n    if (n or signBit(c)) and not eF.kp2:\n        p = NAN\n    else:\n        p = eF.fF(s, c, eF.fDelta(s, c))\n        if n:\n            p += eF.cK * n * _4_0\n    return p\n\n\ndef _invF(eF, x):  # -> Ang\n    '''(INTERNAL) Inverse elliptic function C{F(x)}.\n    '''\n    r, y = _invRy2(eF, eF.cK, x)\n    if y:  # solve eF.fF(phi) = y for phi\n        def _fF2(phi):  # -> pair<real, real>\n            s, c = sincos2(phi)\n            f  = eF.fF(s, c, eF.fDelta(s, c))\n            fp = sqrt(eF.kp2 + c**2 * eF.k2)\n            return f, _1_over(fp)\n\n        z = fabs(y)\n        z, _, _, _ = _root4(_fF2, z, z * PI_2 / eF.cK)\n        r += Ang.fromRadians(_copysign(z, y))\n    return r\n\n\ndef _invPi(eF, x):  # -> Ang\n    '''(INTERNAL) Inverse elliptic function C{Pi(x)}.\n    '''\n    r, y = _invRy2(eF, eF.cPi, x)\n    if y:  # solve eF.fPi(phi) = y for phi\n        def _fPi2(phi):  # -> pair<real, real>\n            s, c = sincos2(phi)\n            f  = eF.fPi(s, c, eF.fDelta(s, c))\n            a2 = eF.alpha2\n            fp = (_1_0 - c**2 * a2) if a2 < 0 else \\\n                 (eF.alphap2 + s**2 * a2)\n            fp *= sqrt(eF.kp2 + c**2 * eF.k2)\n            return f, _1_over(fp)\n\n        z = fabs(y)\n        z, _, _, _ = _root4(_fPi2, z, z * PI_2 / eF.cPi)\n        r += Ang.fromRadians(_copysign(z, y))\n    return r\n\n\ndef _invRy2(eF, eF_c, x):\n    # helper for C{_invF} and C{_invPi}\n    if eF.kp2:\n        n = eF_c * _2_0\n        y = remainder(x, n)\n        n = round((x - y) / n) * _2_0\n    else:  # eF_c == N-/INF\n        y, n = x, _0_0\n    if not y:\n        y, n = 0, (n if n else y)  # signed 0\n    elif fabs(y) == eF_c:\n        y, n = 0, (_copysign_1_0(y) + n)\n    return Ang.cardinal(n), y\n\n\ndef _invScale(triax, bet, omg):\n    # helper for triaxial, sphere scale\n    k2, kp2 = triax._k2_kp2\n    return sqrt(k2 * bet.c**2 + kp2 * omg.c**2)\n\n\ndef _Neg(ang):\n    return (-ang) if isAng(ang) else (ang or None)\n\n\ndef _Pi(eF, phi):  # -> float\n    '''(INTERNAL) Elliptic function C{Pi(phi)}.\n    '''\n    s, c, n = phi.scn3\n    if (n or signBit(c)) and not eF.kp2:\n        p = NAN\n    else:\n        p = eF.fPi(s, c, eF.fDelta(s, c))\n        if n:\n            p += eF.cPi * n * _4_0\n    return p\n\n\ndef _root4(_fp2, z, x, xa=_0_0, xb=PI_2, xscale=1, zscale=1, s=1, tol=EPS):  # int s\n    '''(INTERNAL) Solve v = _fp2(x) - z = 0.\n    '''\n    k = b = C = 0\n    if xa < xb and xa <= x <= xb:\n        # p = PI_2 * 0  #???\n        # def _fp2z(x):\n        #     f, fp = _fp2(x)\n        #     f -= z\n        #     # \"DAT \", x, f, fp\n        #     return f\n        # a, _, b = map1(_fp2z, xa, x, xb)\n        # if (a * b) > 0:\n        #     raise TriaxalError('\"DATBAD\")\n        # tol = max(tol, EPS)  # tol if tol > 0 else EPS\n        vtol = tol * zscale * _0_01\n        xtol = pow(tol, _0_75) * xscale\n        oldv = oldx = olddx = INF\n        for k in range(1, _MAXIT):\n            # TODO: 20 60 -90 180 127.4974 24.6254 2.4377\n            v, vp = _fp2(x)\n            v -= z\n            va =  fabs(v)\n            dx = _over(-v, vp)\n            # \"XX \", k, (xa - p), (x - p), (xb - p), dx, (x + dx - p), v, vp\n            if not (va > (0 if k < 2 else vtol)):\n                C = 1  # k, va\n                break\n            elif (v * s) > 0:\n                xb = min(xb, x)\n            else:\n                xa = max(xa, x)\n            x  += dx\n            dxa = fabs(dx)\n            if x < xa or x > xb or va  > oldv or \\\n                        (k > 2 and dxa > olddx):\n                b += 1  # k, xa, x, xb\n                x  = (xa + xb) * _0_5\n                if x == oldx:\n                    C = 3  # k, x, dx\n                    break\n            elif not dxa > xtol:\n                C = 2  # k, dx, xtol\n                break\n            # \"GAPS \", k, dx, (x - xa), (xb - x), oldx, x, (oldx - x)\n            oldx  = x\n            oldv  = va\n            olddx = dxa * _0_5\n        else:\n            t = Fmt.no_convergence(dx, xtol)\n            raise TriaxialError(x=x, xa=xa, xb=xb, txt=t)\n    else:\n        x = NAN\n    return x, k, b, C\n\n\nif __name__ == _DMAIN_:\n\n    from pygeodesy import Degrees, printf\n    from pygeodesy.triaxials import Triaxials\n\n    # <https://GeographicLib.SourceForge.io/C++/doc/Cart3Convert.1.html>\n    T = Conformal3(Triaxials.WGS84_3)\n    printf(T)\n    # name='WGS84_3', a=6378171.36, b=6378101.609999999, c=6356751.84, ...\n    t = T.forwardBetOmg(Ang.fromDegrees(33.3), Ang.fromDegrees(44.4), M=True)\n    printf((t.x, t.y, t.scale))\n    # (-5077726.431878843, 3922574.862034525, 1.1970322930902468)\n    #  -5077732.396        3922571.859        1.1970343759  C++\n    t = T.reverseBetOmg(*t[:2], M=True)\n    printf((t.bet.degrees0, t.omg.degrees0, t.scale))\n    # (33.300000000000004, 44.39999999999999, 1.1970322930902468)\n    #  33.30000000         44.40000000        1.1970343759  C++\n\n    T = Conformal3(Triaxials.WGS84_3r)  # rounded\n    printf(T)\n    # name='WGS84_3r', a=6378172, b=6378102, c=6356752, ...\n    t = T.forwardBetOmg(Degrees(33.3), Degrees(44.4), M=True)\n    printf((t.x, t.y, t.scale))\n    # (-5077732.396020001, 3922571.859124643, 1.197034375926918)\n    #  -5077732.396        3922571.859        1.1970343759  C++\n    t = T.reverseBetOmg(*t[:2], M=True)\n    printf((t.bet.degrees0, t.omg.degrees0, t.scale))\n    # (33.3,       44.400000000000006, 1.197034375926918)\n    #  33.30000000 44.40000000         1.1970343759  C++\n\n    c = 6378137 * (1 - 1 / (298257223563 / 1000000000))\n    T = Conformal3(6378172, 6378102, c)\n    printf(T)\n    # name='', a=6378172, b=6378102, c=6356752.314245179, ...\n    t = T.forwardBetOmg(Degrees(33.3), Degrees(44.4), M=True)\n    printf((t.x, t.y, t.scale))\n    # (-5077732.418682504, 3922572.0186951878, 1.197034384522207)\n    #  -5077732.396        3922571.859         1.1970343759  C++\n    t = T.reverseBetOmg(*t[:2], M=True)\n    printf((t.bet.degrees0, t.omg.degrees0, t.scale))\n    # (33.300000000000004, 44.4,        1.197034384522207)\n    #  33.30000000         44.40000000  1.1970343759  C++\n\n# % python3 -m pygeodesy.triaxials.conformal3\n\n# name='WGS84_3', a=6378171.36, b=6378101.609999999, c=6356751.84, k2=0.996738165, kp2=0.003261835, volume=1083207064030173855744, area=510065541435967.5, R2=6371006.679496506\n# (-5077726.431878843, 3922574.862034525, 1.1970322930902468)\n# (33.300000000000004, 44.39999999999999, 1.1970322930902468)\n\n# name='WGS84_3r', a=6378172, b=6378102, c=6356752, k2=0.996726547, kp2=0.003273453, volume=1083207266220584468480, area=510065604942135.875, R2=6371007.076110449\n# (-5077732.396020001, 3922571.859124643, 1.197034375926918)\n# (33.3, 44.400000000000006, 1.197034375926918)\n\n# name='', a=6378172, b=6378102, c=6356752.314245179, k2=0.996726499, kp2=0.003273501, volume=1083207319768789942272, area=510065621722018.25, R2=6371007.180905545\n# (-5077732.418682504, 3922572.0186951878, 1.197034384522207)\n# (33.300000000000004, 44.4, 1.197034384522207)\n\n# **) MIT License\n#\n# Copyright (C) 2025-2026 -- mrJean1 at Gmail -- All Rights Reserved.\n#\n# Permission is hereby granted, free of charge, to any person obtaining a\n# copy of this software and associated documentation files (the \"Software\"),\n# to deal in the Software without restriction, including without limitation\n# the rights to use, copy, modify, merge, publish, distribute, sublicense,\n# and/or sell copies of the Software, and to permit persons to whom the\n# Software is furnished to do so, subject to the following conditions:\n#\n# The above copyright notice and this permission notice shall be included\n# in all copies or substantial portions of the Software.\n#\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL\n# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR\n# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\n# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n# OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "pygeodesy/triaxials/triaxial3.py",
    "content": "\n# -*- coding: utf-8 -*-\n\nu'''I{Ordered} triaxial ellipsoid classes L{Triaxial3} and L{Triaxial3B} for conversion between\nvariuos lat-/longitudal and cartesian coordinates on a triaxial ellipsoid using L{Ang}, L{Deg},\nL{Rad} lat-, longitude and heading angles.\n\nTranscoded to pure Python from I{Karney}'s GeographicLib 2.7 C++ classes U{Ellipsoidal3<https://\nGeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Triaxial_1_1Ellipsoidal3.html>} and U{Cartesian3\n<https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Triaxial_1_1Cartesian3.html>}.\n\nCopyright (C) U{Charles Karney<mailto:Karney@Alum.MIT.edu>} (2024-2025) and licensed under the MIT/X11\nLicense.  For more information, see the U{GeographicLib 2.7 <https://GeographicLib.SourceForge.io/>}\ndocumentation.\n\n@var Triaxial3s.Amalthea: Triaxial3(name='Amalthea', a=125000, b=73000, c=64000, k2=0.106947697, kp2=0.893052303, volume=2446253479595252, area=93239507787.490356445, R2=86138.05359954)\n@var Triaxial3s.Ariel: Triaxial3(name='Ariel', a=581100, b=577900, c=577700, k2=0.05866109, kp2=0.94133891, volume=812633172614203904, area=4211301462766.580078125, R2=578899.578791275)\n@var Triaxial3s.Earth: Triaxial3(name='Earth', a=6378173.435, b=6378103.9, c=6356754.399999999, k2=0.996748146, kp2=0.003251854, volume=1083208241574987694080, area=510065911057440.9375, R2=6371008.987886564)\n@var Triaxial3s.Enceladus: Triaxial3(name='Enceladus', a=256600, b=251400, c=248300, k2=0.369647336, kp2=0.630352664, volume=67094551514082248, area=798618496278.596679688, R2=252095.300756832)\n@var Triaxial3s.Europa: Triaxial3(name='Europa', a=1564130, b=1561230, c=1560930, k2=0.093663002, kp2=0.906336998, volume=15966575194402123776, area=30663773697323.51953125, R2=1562096.533153486)\n@var Triaxial3s.Io: Triaxial3(name='Io', a=1829400, b=1819300, c=1815700, k2=0.262045618, kp2=0.737954382, volume=25313121117889765376, area=41691875849096.734375, R2=1821464.812747882)\n@var Triaxial3s.Mars: Triaxial3(name='Mars', a=3394600, b=3393300, c=3376300, k2=0.92878339, kp2=0.07121661, volume=162907283585817247744, area=144249140795107.4375, R2=3388064.624110653)\n@var Triaxial3s.Mimas: Triaxial3(name='Mimas', a=207400, b=196800, c=190600, k2=0.359218713, kp2=0.640781287, volume=32587072869017956, area=493855762247.691833496, R2=198241.75359411)\n@var Triaxial3s.Miranda: Triaxial3(name='Miranda', a=240400, b=234200, c=232900, k2=0.171062751, kp2=0.828937249, volume=54926187094835456, area=698880863325.757080078, R2=235828.692095158)\n@var Triaxial3s.Moon: Triaxial3(name='Moon', a=1735550, b=1735324, c=1734898, k2=0.653331685, kp2=0.346668315, volume=21886698675223740416, area=37838824729886.09375, R2=1735257.329122863)\n@var Triaxial3s.Tethys: Triaxial3(name='Tethys', a=535600, b=528200, c=525800, k2=0.243190549, kp2=0.756809451, volume=623086233855821440, area=3528073490771.393554688, R2=529863.348254881)\n@var Triaxial3s.WGS84_3: Triaxial3(name='WGS84_3', a=6378171.36, b=6378101.609999999, c=6356751.84, k2=0.996738165, kp2=0.003261835, volume=1083207064030173855744, area=510065541435967.5, R2=6371006.679496506)\n@var Triaxial3s.WGS84_35: Triaxial3(name='WGS84_35', a=6378172, b=6378102, c=6356752.314245179, k2=0.996726499, kp2=0.003273501, volume=1083207319768789942272, area=510065621722018.25, R2=6371007.180905545)\n@var Triaxial3s.WGS84_3r: Triaxial3(name='WGS84_3r', a=6378172, b=6378102, c=6356752, k2=0.996726547, kp2=0.003273453, volume=1083207266220584468480, area=510065604942135.875, R2=6371007.076110449)\n'''\n# make sure int/int division yields float quotient, see .basics\nfrom __future__ import division as _; del _  # noqa: E702 ;\n\nfrom pygeodesy.angles import Ang, Ang_, _Ang3Tuple,  atan2, sincos2, _SinCos2\nfrom pygeodesy.basics import _copysign, map1\nfrom pygeodesy.constants import EPS, EPS_2, EPS02, EPS8, INT0, NAN, \\\n                               _EPSqrt, _SQRT3, _copysign_0_0, _copysign_1_0, \\\n                               _flipsign, _isfinite, _over, _1_over, _0_0, \\\n                               _0_5, _N_1_0, _1_0, _2_0, _3_0, _4_0, _9_0\nfrom pygeodesy.errors import _xattr, _xkwds, _xkwds_get, _xkwds_pop2\nfrom pygeodesy.fmath import cbrt2, fdot, hypot, hypot2, norm2,  fabs, sqrt\nfrom pygeodesy.fsums import Fsum, fsumf_,  Fmt\nfrom pygeodesy.interns import NN, _DMAIN_, _h_, _lam_, _phi_\n# from pygeodesy.lazily import _ALL_LAZY  # from .vector3d\n# from pygeodesy.named import _Pass  # from .namedTuples\nfrom pygeodesy.namedTuples import Vector4Tuple,  _Pass\n# from pygeodesy.props import Property_RO  # from .units\n# from pygeodesy.streprs import Fmt  # from .fsums\nfrom pygeodesy.triaxials.bases import _bet_, _HeightINT0, LLK, _llk_, \\\n                                      _MAXIT, _omg_, _otherV3d_, _sqrt0, \\\n                                      _Triaxial3Base, TriaxialError, \\\n                                      _TriaxialsBase\nfrom pygeodesy.units import Degrees, Radians, Radius_,  Property_RO\n# from pygeodesy.utily import atan2, sincos2  # from .triaxials.angles\nfrom pygeodesy.vector3d import Vector3d,  _ALL_LAZY\n\n# from math import fabs, sqrt  # from .fmath\nfrom random import random\n\n__all__ = _ALL_LAZY.triaxials_triaxial3\n__version__ = '26.02.20'\n\n_alp_  = 'alp'\n_NAN3d =  Vector3d(NAN, NAN, NAN)\n_TOL   =  cbrt2(EPS)\n_TOL2  = _TOL**2  # cbrt(EPS)**4\n_zet_  = 'zet'\n_27_0  =  27.0\n\n\nclass BetOmgAlp5Tuple(_Ang3Tuple):\n    '''5-Tuple C{(bet, omg, alp, h, llk)} with I{ellipsoidal}\n       lat- C{bet}, longitude C{omg} and azimuth C{alp}, all\n       in L{Ang}les on and height C{h} off the triaxial's\n       surface and kind C{llk} set to C{LLK.ELLIPSOIDAL}.\n    '''\n    _Names_ = (_bet_, _omg_, _alp_, _h_,         _llk_)\n    _Units_ = ( Ang,   Ang,  _Pass, _HeightINT0, _Pass)\n\n\nclass Cartesian5Tuple(Vector4Tuple):\n    '''5-Tuple C{(x, y, z, h, llk)} with I{cartesian} C{x},\n       C{y} and C{z} coordinates on and height C{h} above\n       or below the triaxial's surface and kind C{llk} set\n       to the original C{LLK} or C{None}.\n    '''\n    _Names_ = Vector4Tuple._Names_ + (_llk_,)\n    _Units_ = Vector4Tuple._Units_ + (_Pass,)\n\n    def __new__(cls, x, y, z, h=0, llk=None, **kwds):  # **iteration_name\n        args = x, y, z, (h or INT0), llk\n        return Vector4Tuple.__new__(cls, args, **kwds)\n\n\nclass _Fp2(object):\n    '''(INTERNAL) Function and derivate evaluation.\n    '''\n    def __init__(self, rs, ls, n=1):\n        # assert 0 < n <= 2\n        self._2   = n == 2\n        self._rls = tuple((p, q) for p, q in zip(rs, ls) if p)\n\n    def __call__(self, p):\n        # Evaluate C{f(p) = sum((rs[k] / (p + ls[k]))**n,\n        # k=0..2) - 1} and its derivative C{fp}.\n        f  = _N_1_0\n        fc =  fp = _0_0\n        _D =  EPS_2\n        _2 =  self._2\n        for g, q in self._rls:\n            q  = _1_over(p + q)\n            g *=  q\n            if _2:\n                g *= g\n                q += q\n            r   = round(g / _D) * _D\n            f  += r\n            fc += g - r\n            fp -= g * q\n        return (f + fc), fp\n\n\nclass PhiLamZet5Tuple(_Ang3Tuple):\n    '''5-Tuple C{(phi, lam, zet, h, llk)} with trixial lat-\n       lat- C{phi}, longitude C{lam} and azimuth C{zet}, all\n       in L{Ang}les on and height C{h} off the triaxial's\n       surface and kind C{llk} set to an C{LLK}.\n    '''\n    _Names_ = (_phi_, _lam_, _zet_, _h_,         _llk_)\n    _Units_ = ( Ang,   Ang,  _Pass, _HeightINT0, _Pass)\n\n\nclass Triaxial3(_Triaxial3Base):\n    '''I{Ordered} triaxial ellipsoid convering between cartesian and\n       lat-/longitudes using using class L{Ang}.\n\n       @see: L{Triaxial<triaxials.triaxial5.Triaxial>} for details.\n    '''\n    def _cardinal2(self, v, mer, llk):  # cardinaldir\n        '''(INTERNAL) Get 2-tuple C{(n, e)} at C{mer}idian.\n        '''\n        # assert isinstance(v, Vector3d) and isinstance(mer, Ang) \\\n        #                                and isinstance(llk, LLK.__class__)\n        a2, b2, c2 = self._a2b2c23\n        if llk._X:\n            a2, c2 = c2, a2\n            v = v._roty(True)  # +1\n        x, y, z = v.xyz3\n        if x or y:\n            s = (-z) / c2\n            z = x**2 / a2 + y**2 / b2\n        else:\n            y, x, _ = mer.scn3\n            s = _copysign_1_0(-z)\n            z = _0_0\n        n = Vector3d(x * s, y * s, z).unit()\n        e = v.dividedBy_(a2, b2, c2).unit()  # normvec\n        e = n.cross(e).unit()\n        if llk._X:\n            e = e._roty(False)  # -1\n            n = n._roty(False)  # -1\n        return n, e\n\n    def forwardBetOmg(self, bet, omg, height=0, **unit_name):  # elliptocart2\n        '''Convert an I{ellipsoidal} lat- and longitude to a cartesian\n           on this triaxial's surface.\n\n           @arg bet: Ellipsoidal latitude (C{Ang} or B{C{unit}}).\n           @arg omg: Ellipsoidal longitude (C{Ang} or B{C{unit}}).\n           @kwarg height: Height above or below this triaxial's surface (C{meter},\n                          same units as this triaxial's semi-axes).\n           @kwarg unit_name: Optional C{B{name}=NN} (C{str}) and scalar\n                             C{B{unit}=}L{Radians} (or L{Degrees}).\n\n           @return: A L{Cartesian5Tuple}C{(x, y, z, h, llk)} with C{h=B{height}}\n                    and kind C{llk=LLK.ELLIPSOIDAL}.\n\n           @see: Method L{Triaxial3.reverseBetOmg}.\n        '''\n        ct, _ = self.forwardBetOmgAlp2(bet, omg, None, height, **unit_name)\n        return ct\n\n    forwardBetaOmega = forwardBetOmg  # for backward compatibility\n\n    def forwardBetaOmega_(self, sbeta, cbeta, somega, comega, **name):\n        '''DEPRECATED on 2025.11.15, like C{Triaxial.forwardBetaOmega_}.'''\n        return self.forwardBetaOmega(Ang_(sbeta, cbeta),\n                                     Ang_(somega, comega), **name)\n\n    def forwardBetOmgAlp2(self, bet, omg, alp, height=0, **unit_name):  # elliptocart2\n        '''Convert an I{ellipsoidal} lat-, longitude and heading to a\n           cartesian and a direction on this triaxial's surface.\n\n           @arg bet: Ellipsoidal latitude (C{Ang} or B{C{unit}}).\n           @arg omg: Ellipsoidal longitude (C{Ang} or B{C{unit}}).\n           @arg alp: Azimuth of the heading (C{Ang}, B{C{unit}} or C{None}).\n           @kwarg height: Height above or below this triaxial's surface (C{meter},\n                          same units as this triaxial's semi-axes).\n           @kwarg unit_name: Optional C{B{name}=NN} (C{str}), scalar\n                       C{B{unit}=}L{Radians} (or L{Degrees}).\n\n           @return: 2-Tuple C{(cartesian, direction)} with C{cartesian} a\n                    L{Cartesian5Tuple}C{(x, y, z, h, llk)} with C{h=B{height}},\n                    kind C{llk=LLK.ELLIPSOIDAL} and C{direction} a C{Vector3d}\n                    tangent to this triaxial's surface or C{None}.\n\n           @see: Method L{Triaxial3.reverseBetOmgAlp}.\n        '''\n        h, llk, unit, name = _h_llk_unit_name(height, **unit_name)\n        a, b, c = self._abc3\n        if h:  # Cartesian.elliptocart\n            a, b, _ = self._a2b2c23\n            h = _HeightINT0(h)\n            s = (c * _2_0 + h) * h\n            if s < 0:\n                s = -min(a, b, -s)\n            a  = sqrt(a + s)\n            b  = sqrt(b + s)\n            c += h\n        sb, cb = _SinCos2(bet, unit)\n        so, co = _SinCos2(omg, unit)\n        k,  kp =  self._k_kp\n        tx, tz = _txtz2(cb, so, k, kp)\n        ct = Cartesian5Tuple(a * co * tx,\n                             b * cb * so,\n                             c * sb * tz,\n                             h, llk, **name)\n\n        if alp is None:  # or h?\n            dir3d = None  # _NAN3d?\n        else:\n            try:\n                sa, ca = _SinCos2(alp, unit)\n            except Exception as X:\n                raise TriaxialError(alp=alp, cause=X)\n            a, b, c =  self._abc3\n            if k and kp and not (cb or so):\n                c2s2_b = (ca - sa) * (ca + sa) / b\n                dir3d = Vector3d(a  *  k * co * c2s2_b\n                                -co * sb * ca * sa * _2_0,\n                                 c  * kp * sb * c2s2_b)\n            else:\n                if not tx:  # at oblate pole tx -> |cos(bet)|\n                    c = _flipsign(co, cb)\n                    n =  Vector3d(-c  * sb,\n                                  -so * sb, _0_0)\n                    e =  Vector3d(-so,   c, _0_0)\n                elif not tz:  # at prolate pole tz -> |sin(omg)|\n                    s = _flipsign(sb, so)\n                    n =  Vector3d(_0_0,      -s, cb)\n                    e =  Vector3d(_0_0, cb * co, co * s)\n                else:\n                    k2, kp2 = self._k2_kp2\n                    n = Vector3d(-a * k2  * sb * cb * co / tx,\n                                 -b * sb  * so,   c * cb * tz)\n                    e = Vector3d(-a * tx  * so,   b * cb * co,\n                                  c * kp2 * sb * so * co / tz)\n                dir3d  = n.unit().times(ca)  # NAN\n                dir3d += e.unit().times(sa)  # NAN\n            dir3d.name = ct.name\n        return ct, dir3d\n\n    def forwardCartesian(self, x_ct, y=None, z=None, normal=True, **eps_llk_name):\n        '''Project any cartesian I{onto} this triaxial's surface.\n\n           @arg x_ct: X component (C{scalar}) or a cartesian (L{Cartesian5Tuple} or\n                      any C{Cartesian}, L{Ecef9Tuple}, L{Vector3d}, L{Vector3Tuple}\n                      or L{Vector4Tuple}).\n           @kwarg y: Y component (C{scalar}), required if B{C{x_xyz}} is C{scalar},\n                     ignored otherwise.\n           @kwarg z: Z component (C{scalar}), like B{C{y}}.\n           @kwarg normal: If C{True}, the projection is C{perpendicular} to the surface,\n                          otherwise C{radial} to the center of this triaxial (C{bool}).\n           @kwarg eps_llk_name: Root finder tolerance C{B{eps}=EPS}, kind C{B{llk}=None}\n                      overriding C{B{x_ct}.llk} and optional C{B{name}=\"height4\"} (C{str}).\n\n           @return: A L{Cartesian5Tuple}C{(x, y, z, h, llk)}.\n\n           @see: Method L{Triaxial3.reverseCartesian} to reverse the projection and\n                 function L{height4<triaxials.triaxial5.height4>} for more details.\n        '''\n        llk, kwds = _xkwds_pop2(eps_llk_name, llk=_xattr(x_ct, llk=None))\n        h = self.sideOf(x_ct, y, z)\n        if h:  # signed, square\n            v = self.height4(x_ct, y, z, normal=normal, **kwds)\n            h = v.h\n        else:  # on the surface\n            v = _otherV3d_(x_ct, y, z)\n        n = _xkwds_get(kwds, name=NN)\n        return Cartesian5Tuple(v.x, v.y, v.z, h, llk, iteration=v.iteration, name=n)\n\n    def forwardLatLon(self, lat, lon, height=0, llk=LLK.ELLIPSOIDAL, **unit_name):  # anytocart2\n        '''Convert any lat-/longitude kind to a cartesian on this triaxial's surface.\n\n           @arg lat: Latitude (C{Ang} or B{C{unit}}).\n           @arg lon: Longitude (C{Ang} or B{C{unit}}).\n           @kwarg height: Height above or below this triaxial's surface (C{meter}, same\n                          units as this triaxial's semi-axes).\n           @kwarg llk: The kind (an L{LLK}).\n           @kwarg unit_name: Optional C{B{name}=NN} (C{str}) and scalar C{B{unit}=}L{Degrees}\n                             (or L{Radians}).\n\n           @return: A L{Cartesian5Tuple}C{(x, y, z, h, llk)} with height C{h=B{height}} and\n                    kind C{llk=B{llk}}.\n\n           @see: Method L{Triaxial3.reverseLatLon}.\n        '''\n        _fwd = self.forwardBetOmg if llk in LLK._NOIDAL else \\\n               self.forwardPhiLam  # PYCHOK OK\n        return _fwd(lat, lon, height=height, llk=llk, **_xkwds(unit_name, unit=Degrees))\n\n    def forwardPhiLam(self, phi, lam, height=0, llk=LLK.GEODETIC, **unit_name):  # generictocart2\n        '''Convert any lat-/longitude kind to a cartesian on this triaxial's surface.\n\n           @arg phi: Latitude (C{Ang} or B{C{unit}}).\n           @arg lam: Longitude (C{Ang} or B{C{unit}}).\n           @kwarg height: Height above or below this triaxial's surface (C{meter}, same\n                          units as this triaxial's semi-axes).\n           @kwarg llk: The kind (an L{LLK}).\n           @kwarg unit_name: Optional C{B{name}=NN} (C{str}) and scalar C{B{unit}=}L{Radians}\n                             (or L{Degrees}).\n\n           @return: A L{Cartesian5Tuple}C{(x, y, z, h, llk)} with height C{h=0} and kind\n                    C{llk=B{llk}}.\n\n           @note: Longitude C{B{lam} -= Lon0} if C{B{llk} is LLK.GEODETIC_LON0}.\n\n           @see: Method L{Triaxial3.reverseLatLon}.\n        '''\n        ct, _ = self.forwardPhiLamZet2(phi, lam, None, height=height, llk=llk, **unit_name)\n        return ct\n\n    def forwardPhiLamZet2(self, phi, lam, zet, height=0, llk=LLK.GEODETIC, **unit_name):  # generictocart2\n        '''Convert a lat-, longitude and heading to a cartesian and a direction\n           on this trixial's surface.\n\n           @arg phi: Latitude (C{Ang} or B{C{unit}}).\n           @arg lam: Longitude (C{Ang} or B{C{unit}}).\n           @arg zet: Azimuth of the heading (C{Ang}, B{C{unit}} or C{None}).\n           @kwarg height: Height above or below this triaxial's surface (C{meter},\n                          same units as this triaxial's semi-axes).\n           @kwarg llk: The kind (an L{LLK}).\n           @kwarg unit_name: Optional C{B{name}=NN} (C{str}) and scalar\n                       C{B{unit}=}L{Radians} (or L{Degrees}).\n\n           @return: 2-Tuple C{(cartesian, direction)} with the C{cartesian} a\n                    L{Cartesian5Tuple}C{(x, y, z, h, llk)} with height C{h=0},\n                    kind C{llk=B{llk}} and C{direction}, a C{Vector3d} on and\n                    tangent to this triaxial's surface.\n\n           @note: Longitude C{B{lam} -= Lon0} if C{B{llk} is LLK.GEODETIC_LON0}.\n\n           @see: Method L{Triaxial3.reversePhiLamZet}.\n        '''\n        unit, name = _xkwds_pop2(unit_name, unit=Radians)\n        try:\n            sa, ca = _SinCos2(phi, unit)\n            if llk is LLK.GEODETIC_LON0:\n                lam  = Ang.fromScalar(lam, unit=unit)\n                lam -= self.Lon0\n            sb, cb = _SinCos2(lam, unit)\n        except Exception as X:\n            raise TriaxialError(phi=phi, lam=lam, llk=llk, cause=X)\n        v, _, llk, name = _v_h_llk_name(ca * cb, ca * sb, sa, llk=llk, **name)\n        if llk and llk._X:\n            v = v._roty(False)  # -1\n        d, t = _d_t(self, llk)\n        if t:\n            v = v.times_(*t)\n        if d:\n            d = v.dividedBy_(*self._abc3).length\n            v = v.dividedBy(d)\n\n        h = _HeightINT0(height)\n        if h:  # cart2cart\n            v, h = self._toHeight2(v, h)\n        ct = Cartesian5Tuple(v.x, v.y, v.z, h, llk, **name)\n\n        if zet is None:\n            dir3d = None\n        else:\n            try:\n                s, c = _SinCos2(zet, unit)\n            except Exception as X:\n                raise TriaxialError(zet=zet, cause=X)\n            n, e   = self._meridian2(v, lam, llk)\n            dir3d  = n.times(c)\n            dir3d += e.times(s)\n            dir3d.name = ct.name\n        return ct, dir3d\n\n    def _meridian(self, lam, llk):\n        '''(INTERNAL) Get the meridian plane's at C{lam}.\n        '''\n        _, t = _d_t(self, llk)\n        if t:\n            a, b, c = t\n            lam = lam.mod((c if llk._X else a) / b)\n        return lam\n\n    def _meridian2(self, v, lam, llk):\n        '''(INTERNAL) Get 2-tuple C{(n, e)} at C{lam} meridian.\n        '''\n        mer =  self._meridian(lam, llk)\n        return self._cardinal2(v, mer, llk)\n\n    def normed2(self, x_ct, y=None, z=None, dir3d=None, **llk_name):  # Ellipsoid3.Norm\n        '''Scale a cartesian and direction to this triaxial's surface.\n\n           @arg x_ct: X component (C{scalar}) or a cartesian (L{Cartesian5Tuple} or\n                      any C{Cartesian}, L{Ecef9Tuple}, L{Vector3d}, L{Vector3Tuple}\n                      or L{Vector4Tuple}).\n           @kwarg y: Y component (C{scalar}), required if B{C{x_xyz}} is C{scalar},\n                     ignored otherwise.\n           @kwarg z: Z component (C{scalar}), like B{C{y}}.\n           @kwarg dir3d: The direction (C{Vector3d} or C{None}).\n           @kwarg llk_name: Optional C{B{name}=NN} (C{str}) and kind C{B{llk}=None}\n                      overriding C{B{x_ct}.llk}.\n\n           @return: 2-Tuple C{(cartesian, direction)} with the C{cartesian} a\n                    L{Cartesian5Tuple}C{(x, y, z, h, llk)} and C{direction}, a\n                    C{Vector3d} tangent to this triaxial's surface or C{None}\n                    iff C{B{dir3d} is None}.\n        '''\n        v, h, llk, name = _v_h_llk_name(x_ct, y, z, **llk_name)\n\n        u  = v.dividedBy_(*self._abc3).length\n        r  = v.dividedBy(u) if u else _NAN3d\n        ct = Cartesian5Tuple(r.x, r.y, r.z, h, llk, **name)\n\n        if isinstance(dir3d, Vector3d):\n            if u:  # and r is not _NAN3d\n                u = r.dividedBy_(*self._a2b2c23)\n                d = dir3d.dot(u)\n                if _isfinite(d) and u.length2:\n                    u = u.times(d / u.length2)\n                    dir3d = dir3d.minus(u).unit()  # NAN\n                else:\n                    dir3d = _NAN3d\n            else:\n                dir3d = _NAN3d\n            dir3d.name = ct.name\n        return ct, dir3d\n\n    def reverseBetOmg(self, x_ct, y=None, z=None, **llk_name):  # Cartesian3.carttoellip\n        '''Convert a cartesian I{on this triaxial's surface} to an I{ellipsoidal}\n           lat-/longitude.\n\n           @arg x_ct: X component (C{scalar}) or a cartesian (L{Cartesian5Tuple} or\n                      any C{Cartesian}, L{Ecef9Tuple}, L{Vector3d}, L{Vector3Tuple}\n                      or L{Vector4Tuple}).\n           @kwarg y: Y component (C{scalar}), required if B{C{x_xyz}} is C{scalar},\n                     ignored otherwise.\n           @kwarg z: Z component (C{scalar}), like B{C{y}}.\n           @kwarg llk_name: Optional C{B{name}=NN} (C{str}) and kind C{B{llk}=None}\n                      overriding C{B{x_ct}.llk}.\n\n           @return: A L{BetOmgAlp5Tuple}C{(bet, omg, alp, h, llk)} with C{alp=None}\n                    and C{llk=LLK.ELLIPSOIDAL}.\n        '''\n        v, _, llk, name = _v_h_llk_name_NOIDAL(x_ct, y, z, **llk_name)\n\n        _, y2, z2 = rs = v.x2y2z23\n        l0, l1, _ = ls = self._lcc23\n        qmax = fsumf_(*rs)\n        qmin = q = max(z2, y2 + z2 - l1, qmax - l0)\n        _fp2 = _Fp2(rs, ls, n=1)\n        f, _ = _fp2(q)\n        if f > _TOL2:  # neg means convergence\n            q = max(qmin, min(qmax, _cubic(rs, qmax, l0, l1)))\n            f, fp = _fp2(q)\n            if fabs(f) > _TOL2:\n                q =  max(qmin, q - _over(f, fp))\n                q = _solve(_fp2, q, self.b2)\n\n        a, b, c = map1(_sqrt0, l0 + q, l1 + q, q)  # axes (a, b, c)\n        h = (c - self.c) or INT0\n        bet, omg, _ = self._reverseBetOmgAlp3(v, None, a, b, c, **name)\n        return BetOmgAlp5Tuple(bet, omg, None, h, llk, **name)\n\n    reverseBetaOmega = reverseBetOmg  # for backward compatibility\n\n    def reverseBetOmgAlp(self, x_ct, y=None, z=None, dir3d=None, **llk_name):  # Ellipsoid3.cart2toellip[int]\n        '''Convert a cartesian and direction I{on this triaxial's surface} to an\n           I{ellipsoidal} lat-, longitude and heading.\n\n           @arg x_ct: X component (C{scalar}) or a cartesian (L{Cartesian5Tuple} or\n                      any C{Cartesian}, L{Ecef9Tuple}, L{Vector3d}, L{Vector3Tuple}\n                      or L{Vector4Tuple}).\n           @kwarg y: Y component (C{scalar}), required if B{C{x_ct}} is C{scalar},\n                     ignored otherwise.\n           @kwarg z: Z component (C{scalar}), like B{C{y}}.\n           @kwarg dir3d: The direction (C{Vector3d} or C{None}).\n           @kwarg llk_name: Optional C{B{name}=NN} (C{str}) and kind C{B{llk}=None}\n                      overriding C{B{x_ct}.llk}.\n\n           @return: A L{BetOmgAlp5Tuple}C{(bet, omg, alp, h, llk)} with C{alp=None}\n                    if C{B{dir3d} is None} and C{llk=LLK.ELLIPSOIDAL}.\n        '''\n        v, h, llk, name = _v_h_llk_name_NOIDAL(x_ct, y, z, **llk_name)\n        bet, omg, alp = self._reverseBetOmgAlp3(v, dir3d, **name)\n        return BetOmgAlp5Tuple(bet, omg, alp, h, llk, **name)\n\n    def _reverseBetOmgAlp3(self, v, dir3d, *a_b_c, **name):  # cart2toellipint\n        '''(INTERNAL) Helper for methods C{reverseBetOmg/-Alp}.\n        '''\n        k,  kp  = self._k_kp\n        k2, kp2 = self._k2_kp2\n        a, b, c = a_b_c or self._abc3\n        V       = v.dividedBy_(a, b, c)\n        X, E, Z = V.xyz3  # Xi, Eta, Zeta\n        h = fabs(E * k * kp * _2_0)\n        if v.y or fabs(v.x) != a * kp2 or \\\n                  fabs(v.z) != c * k2:\n            g = fdot(V.x2y2z23, k2, (k2 - kp2), -kp2)\n            h = hypot(g, h)\n        else:\n            g = _0_0\n        if h < EPS02:\n            so = cb = _0_0\n        elif g < 0:\n            h  = _over(sqrt((h - g) * _0_5), kp)\n            so = _copysign(h, E)\n            cb =  fabs(_over(E, so))\n        else:\n            cb = _over(sqrt((h + g) * _0_5), k)\n            so = _over(E, cb)\n        tx, tz = _txtz2(cb, so, k, kp)\n        sb = (Z / tz) if tz else _N_1_0\n        co = (X / tx) if tx else _1_0\n        bet = Ang_(sb, cb, **name)\n        omg = Ang_(so, co, **name)\n\n        if isinstance(dir3d, Vector3d):  # cart2toellip(bet, omg, V) -> alp\n            if cb or so or not (tx and tz):  # not umbilical\n                if not tx:\n                    n = Vector3d(-co, -so, tx) * sb\n                    e = Vector3d(-so,  co, tx)\n                elif not tz:\n                    n = Vector3d(tz, -sb, cb)\n                    e = Vector3d(tz,  cb, sb) * co\n                else:\n                    n = Vector3d(-a * sb * k2 * cb * co / tx,\n                                 -b * sb * so,   c * cb * tz)\n                    e = Vector3d(-a * so * tx,    b * cb * co,\n                                  c * so * kp2 * sb * co / tz)\n                sa = dir3d.dot(e.unit())  # NAN\n                ca = dir3d.dot(n.unit())  # NAN\n            else:  # at umbilicial PYCHOK no cover\n                x, z = norm2(co * tx / a, sb * tz / c)  # _MODS.karney._norm2\n                v   =  dir3d * (sb * co)  # dir3d.times(sb * co)\n                s2a = -v.y\n                c2a =  fdot(v, z, 0, -x)  # v.x * z - v.z * x\n                sa  =  ca = -sb\n                sa *= _copysign(_1_0 - c2a, s2a) if c2a < 0 else  s2a\n                ca *=  fabs(s2a)                 if c2a < 0 else (c2a + _1_0)\n            alp = Ang_(sa, ca, **name)\n        elif dir3d is None:\n            alp = None  # Ang.NAN(**name)\n        else:\n            raise TriaxialError(dir3d=dir3d)\n        return bet, omg, alp\n\n    def reverseCartesian(self, x_ct, y=None, z=None, height=0, normal=True, **llk_name):  # cart2tocart\n        '''\"Unproject\" a cartesian I{off} this triaxial's surface.\n\n           @arg x_ct: X component (C{scalar}) or a cartesian (L{Cartesian5Tuple} or\n                      any C{Cartesian}, L{Ecef9Tuple}, L{Vector3d}, L{Vector3Tuple}\n                      or L{Vector4Tuple}).\n           @kwarg y: Y component (C{scalar}), required if B{C{x_xyz}} is C{scalar},\n                     ignored otherwise.\n           @kwarg z: Z component (C{scalar}), like B{C{y}}.\n           @kwarg height: Height above or below this triaxial's surface (C{meter},\n                          same units as this triaxial's semi-axes).\n           @kwarg normal: If C{True}, B{C{height}} is C{perpendicular} to the surface,\n                          otherwise C{radial} to the center of this triaxial (C{bool}).\n           @kwarg llk_name: Optional C{B{name}=NN} (C{str}) and kind C{B{llk}}\n                            overriding C{B{x_ct}.llk}.\n\n           @return: L{Cartesian5Tuple}C{(x, y, z, h, llk)}.\n\n           @raise TrialError: Cartesian B{C{x_ct}} or C{(x, y, z)} not on this\n                              triaxial's surface.\n\n           @see: Methods L{Triaxial3.forwardCartesian}.\n        '''\n        kwds = _xkwds(llk_name, llk=_xattr(x_ct, llk=None))\n        v, _, llk, name = _v_h_llk_name(x_ct, y, z, **kwds)\n        _ =  self._sideOn(v)\n        h = _HeightINT0(height)\n        if h:\n            v, h = self._toHeight2(v, h, normal)\n        return Cartesian5Tuple(v.x, v.y, v.z, h, llk, **name)\n\n    def reverseLatLon(self, x_ct, y=None, z=None, **llk_name):  # cart2toany\n        '''Convert a cartesian I{on this triaxial's surface} to a lat-/longitude.\n\n           @arg x_ct: X component (C{scalar}) or a cartesian (L{Cartesian5Tuple} or\n                      any C{Cartesian}, L{Ecef9Tuple}, L{Vector3d}, L{Vector3Tuple}\n                      or L{Vector4Tuple}).\n           @kwarg y: Y component (C{scalar}), required if B{C{x_xyz}} is C{scalar},\n                     ignored otherwise.\n           @kwarg z: Z component (C{scalar}), like B{C{y}}.\n           @kwarg llk_name: Optional C{B{name}=NN} (C{str}) and kind C{B{llk}=None}\n                            overriding C{B{x_ct}.llk}.\n\n           @return: A L{BetOmgAlp5Tuple}C{(bet, omg, alp, h, llk)} with C{alp=None} or\n                    a L{PhiLamZet5Tuple}C{(phi, lam, zet, h, llk)} with C{zet=None}.\n\n           @note: Longitude C{B{lam} += Lon0} if C{B{llk} is LLK.GEODETIC_LON0}.\n        '''\n        llk, name = _xkwds_pop2(llk_name, llk=_xattr(x_ct,\n                                          llk=LLK.ELLIPSOIDAL))\n        _rev = self.reverseBetOmg if llk in LLK._NOIDAL else \\\n               self.reversePhiLam  # PYCHOK OK\n        return _rev(x_ct, y, z, llk=llk, **name)\n\n    def reversePhiLam(self, x_ct, y=None, z=None, **llk_name):  # cart2togeneric\n        '''Convert a cartesian I{on this triaxial's surface} to lat-/longitude.\n\n           @arg x_ct: X component (C{scalar}) or a cartesian (L{Cartesian5Tuple} or\n                      any C{Cartesian}, L{Ecef9Tuple}, L{Vector3d}, L{Vector3Tuple}\n                      or L{Vector4Tuple}).\n           @kwarg y: Y component (C{scalar}), required if B{C{x_xyz}} is C{scalar},\n                     ignored otherwise.\n           @kwarg z: Z component (C{scalar}), like B{C{y}}.\n           @kwarg llk_name: Optional C{B{name}=NN} (C{str}) and kind C{B{llk}=None}\n                            overriding C{B{x_ct}.llk}.\n\n           @return: A L{PhiLamZet5Tuple}C{(phi, lam, zet, h, llk)} with C{zet=None}.\n\n           @note: Longitude C{B{lam} += Lon0} if C{B{llk} is LLK.GEODETIC_LON0}.\n        '''\n        return self.reversePhiLamZet(x_ct, y, z, **llk_name)\n\n    def reversePhiLamZet(self, x_ct, y=None, z=None, dir3d=None, **llk_name):  # cart2togeneric(R, V, ...\n        '''Convert a cartesian and direction to lat-, longitude and azimuth.\n\n           @arg x_ct: X component (C{scalar}) or a cartesian (L{Cartesian5Tuple} or\n                      any C{Cartesian}, L{Ecef9Tuple}, L{Vector3d}, L{Vector3Tuple}\n                      or L{Vector4Tuple}).\n           @kwarg y: Y component (C{scalar}), required if B{C{x_xyz}} is C{scalar},\n                     ignored otherwise.\n           @kwarg z: Z component (C{scalar}), like B{C{y}}.\n           @kwarg dir3d: Optional direction (C{Vector3d} or C{None}).\n           @kwarg llk_name: Optional C{B{name}=NN} (C{str}) and kind C{B{llk}=None}\n                            overriding C{B{x_ct}.llk}.\n\n           @return: A L{PhiLamZet5Tuple}C{(phi, lam, zet, h, llk)} with C{zet=None}\n                    if C{B{dir3d} is None}.\n\n           @note: Longitude C{B{lam} += Lon0} if C{B{llk} is LLK.GEODETIC_LON0}.\n        '''\n        ct = self.toTriaxial5(x_ct, y, z, h=NAN, **llk_name)\n        v, h, llk, name = _v_h_llk_name(ct)\n        _, t = _d_t(self, llk)\n        if t:\n            v = v.dividedBy_(*t)\n        if llk._X:\n            v = v._roty(True)  # +1\n        phi = Ang_(v.z, hypot(v.x, v.y), **name)\n        lam = Ang_(v.y, v.x, **name)  # Ang(0, 0) -> 0\n\n        if dir3d is None:\n            zet = None\n        elif isinstance(dir3d, Vector3d):\n            n, e = self._meridian2(v, lam, llk)\n            zet  = Ang_(dir3d.dot(e),\n                        dir3d.dot(n), **name)\n        else:\n            raise TriaxialError(dir3d=dir3d)\n        if llk is LLK.GEODETIC_LON0:\n            lam += self.Lon0\n        return PhiLamZet5Tuple(phi, lam, zet, h, llk, **name)\n\n    def random2(self, llk=LLK.ELLIPSOIDAL, both=False, _rand=random):\n        '''Return a random cartesian with/out direction on this triaxial's surface.\n\n           @kwarg llk: The kind (an L{LLK}).\n           @kwarg both: If C{True}, generate a random direction (C{bool}).\n\n           @return: 2-Tuple C{(cartesian, direction)} with the C{cartesian} a\n                    L{Cartesian5Tuple}C{(x, y, z, h, llk)} and C{direction}, a\n                    C{Vector3d} tangent to this triaxial's surface or C{None}\n                    iff C{B{both} is False}.\n        '''\n        for _ in range(_MAXIT):\n            for _ in range(_MAXIT):\n                v = Vector3d(_rand(), _rand(), _rand())\n                u = v.length\n                if u and _isfinite(u):\n                    break\n            else:\n                raise TriaxialError(Fmt.no_convergence(u))\n            v = v.dividedBy(u).times_(*self._abc3)\n            q = v.dividedBy_(*self._a2b2c23).length * self.c\n            if 0 < q <= _1_0:  # _uni(q) < q:\n                break\n        else:\n            raise TriaxialError(Fmt.no_convergence(q))\n        ct = Cartesian5Tuple(v.x, v.y, v.z, INT0, llk, name__=self.random2)\n        v  = None\n        if both:\n            for _ in range(_MAXIT):\n                v = Vector3d(_rand(), _rand(), _rand())\n                u = v.length\n                if u:\n                    u = v.dividedBy(u).dividedBy_(*self._a2b2c23)\n                    d = v.dot(u) / u.length2\n                    v = v.minus(u.times(d))\n                    u = v.length  # normvec\n                    if u and _isfinite(u):\n                        v = v.dividedBy(u)\n                        break\n            else:\n                raise TriaxialError(Fmt.no_convergence(u))\n            v.name = ct.name\n        return ct, v\n\n    def _toHeight2(self, v, h, normal=True):\n        '''(INTERNAL) Move cartesian C{Vector3d B{v}} to height C{h}.\n        '''\n        n = v.dividedBy_(*self._a2b2c23) if normal else v\n        if n.length > EPS02:\n            h = max(h, -self.c)\n            v = v.plus(n.times(h / n.length))\n        return v, h\n\n    def toOther(self, lat, lon, llk1=LLK.GEODETIC, llk2=LLK.GEODETIC, **unit_name):  # anytoany\n        '''Convert one lat-/longitude kind to an other.\n\n           @arg lat: Latitude (C{Ang} or B{C{unit}}).\n           @arg lon: Longitude (C{Ang} or B{C{unit}}).\n           @kwarg llk1: The given kind (an L{LLK}).\n           @kwarg llk2: The result kind (an L{LLK}).\n           @kwarg name: Optional C{B{name}=NN} (C{str}).\n\n           @return: A L{BetOmgAlp5Tuple}C{(bet, omg, alp, h, llk)} with C{alp=None} or\n                    a L{PhiLamZet5Tuple}C{(phi, lam, zet, h, llk)} with C{zet=None}.\n\n           @see: Methods L{Triaxial3.forwardLatLon} and -L{reverseLatLon}.\n        '''\n        ct = self.forwardLatLon(lat, lon, llk=llk1, **unit_name)\n        r  = self.reverseLatLon(ct,       llk=llk2, name=ct.name)\n#       a, b = r[:2]\n#       if not isAng(lat):\n#           a = float(a)\n#       if not isAng(lon):\n#           b = float(b)\n#       if (a, b) =! r[:2]:\n#           r = r._dup(a, b)\n        return r\n\n    def toTriaxial5(self, x_ct, y=None, z=None, **triaxial_h_llk_name):  # carttocart2\n        '''Find the closest cartesian on this or on another triaxial's surface.\n\n           @arg x_ct: X component (C{scalar}) or a cartesian (L{Cartesian5Tuple} or\n                      any C{Cartesian}, L{Ecef9Tuple}, L{Vector3d}, L{Vector3Tuple}\n                      or L{Vector4Tuple}).\n           @kwarg y: Y component (C{scalar}), required if B{C{x_xyz}} is C{scalar},\n                     ignored otherwise.\n           @kwarg z: Z component (C{scalar}), like B{C{y}}.\n           @kwarg triaxial_llk_name: Optional C{B{triaxial}=self} (C{Triaxial3}),\n                           C{B{name}=NN} (C{str}), height C{B{h}} and kind C{B{llk}}\n                           overriding C{B{x_ct}.h} respectively C{B{x_ct}.llk}.\n\n           @return: L{Cartesian5Tuple}C{(x, y, z, h, llk)}\n\n           @raise TriaxialError: If C{B{triaxial}} is not a L{Triaxial3}.\n\n           @see: Functions L{hartzell4<triaxials.triaxial5.hartzell4>} and\n                 L{height4<triaxials.triaxial5.height4>} and methods.\n        '''\n        T, name = _xkwds_pop2(triaxial_h_llk_name, triaxial=self)\n        if not isinstance(T, Triaxial3):\n            raise TriaxialError(triaxial=T, x=x_ct, y=y, z=z)\n\n        v, h, llk, name = _v_h_llk_name(x_ct, y, z, **name)\n        if h or T is not self:\n            l0, l1, _ = ls = T._lcc23\n            r =  Vector3d(*T._ztol(v))\n            s =  r.times_(*T._abc3)\n            p =  max(fabs(s.z), hypot(s.x, s.y) - l1, s.length - l0)\n            h = _solve(_Fp2(s.xyz3, ls, n=2), p, T.b2)\n            v =  r.times_(*(_over(n, h + l_) for n, l_ in zip(T._a2b2c23, ls)))\n            if not h:  # handle h == 0, v.y indeterminate\n                x = v.x if l0 else r.x  # sphere\n                y = v.y if l1 else r.y  # sphere or prolate\n                s = _1_0 - hypot2(x / T.a, y / T.b)\n                z = (sqrt(s) * _copysign(T.c, r.z)) if s > EPS02 else _0_0\n                v = Vector3d(x, y, z)\n            h -= T.c2\n            if h and v.length:\n                h *= v.dividedBy_(*T._a2b2c23).length\n        return Cartesian5Tuple(v.x, v.y, v.z, (h or INT0), llk, **name)\n\n    @Property_RO\n    def _ZTOL(self):\n        return self.b * (EPS / 8)\n\n    def _ztol(self, v):\n        for x in v.xyz3:\n            yield x if fabs(x) > self._ZTOL else _copysign_0_0(x)\n\n\nclass Triaxial3B(Triaxial3):\n    '''Triaxial ellipsoid specified by its middle semi-axis and shape.\n\n       @see: L{Triaxial3} for more information.\n    '''\n    def __init__(self, b, e2=_0_0, k2=_1_0, kp2=_0_0, **name):\n        '''New, L{Triaxial3B} instance.\n\n           @see: L{Triaxial<triaxials.triaxial5.Triaxial>} for details.\n        '''\n        self._init_abc3_e2_k2_kp2(Radius_(b=b), e2, k2, kp2, **name)\n\n\ndef _cubic(rs, rt, l0, l1):  # Cartesian3.cubic\n    '''(INTERNaL) Solve sum(R2[i]/(z + lq2[i]), i=0,1,2) - 1 = 0\n        with lq2[2] = 0.  This has three real roots with just one\n        satisifying q >= 0.\n    '''\n    a = l0 + l1\n    b = l0 * l1\n    c = -b * rs[2]  # z2\n    # cubic equation z**3 + a*z**2 + b*z + c = 0\n    b -= fdot(rs, l1, l0, a)\n    a -= rt\n    _r = b > 0\n    if _r:\n        a, b = b, a\n        c  = _1_over(c)\n        a *= c\n        b *= c\n    # see https://dlmf.nist.gov/1.11#iii\n    p = (b * _3_0 - a**2) / _3_0\n    t = -p / _3_0  # A / 4\n    if t > 0:\n        q = (a**3 * _2_0 - a * b * _9_0 + c * _27_0) / _27_0\n        # switch to https://dlmf.nist.gov/4.43\n        s = -q**2 - p**3 * _4_0 / _27_0\n        p = sqrt(s) if s > 0 else _0_0\n        s, c = sincos2(atan2(q, p) / _3_0)  # alp\n        t = (c * _SQRT3 - s) * sqrt(t)\n    else:\n        t = _0_0\n    t -= a / _3_0\n    return _1_over(t) if _r else t\n\n\ndef _d_t(triax, llk):\n    '''(INTERNAL) Helper.\n    '''\n    if llk in LLK._CENTRICS:\n        d_t = True,  None\n    elif llk in LLK._DETICS:\n        d_t = True,  triax._a2b2c23\n    elif llk in LLK._METRICS:\n        d_t = False, triax._abc3\n    else:\n        raise TriaxialError(llk=llk)\n    return d_t\n\n\ndef _h_llk_unit_name(height, h=None, llk=LLK.ELLIPSOIDAL, unit=Radians, **name):\n    '''(INTERNAL) Helper, C{h} for backward compatibility.\n    '''\n    if llk is None:\n        llk = LLK.ELLIPSOIDAL\n    elif llk not in LLK._NOIDAL:  # or llk._X\n        raise TriaxialError(llk=llk)\n    if h is None:\n        h = height\n    return h, llk, unit, name\n\n\ndef _solve(_fp2, p, pscale, **n):\n    '''(INTERNAL) Solve _fp2(p) = 0\n    '''\n    dt  = _N_1_0\n    pt  = _EPSqrt * pscale\n    _P2 =  Fsum(p).fsum2_\n    for i in range(_MAXIT):\n        fv, fp = _fp2(p, **n)\n        if not (fv > _TOL2):\n            break\n        p, d = _P2(-fv / fp)  # d is positive\n        if i and d <= dt and (fv <= EPS8 or\n                 d <= (max(pt, p) * _TOL)):\n            break\n        dt = d\n    else:\n        t = Fmt.no_convergence(d, min(dt, pt))\n        raise TriaxialError(_fp2.__name__, p, txt=t)\n    return p\n\n\ndef _txtz2(cb, so, k, kp):\n    '''(INTERNAL) Helper.\n    '''\n    return hypot(cb * k, kp), hypot(k, so * kp)\n\n\ndef _v_h_llk_name(x_ct, y=None, z=None, **h_llk_name):\n    '''(INTERNAL) Helper.\n    '''\n    if y is z is None and isinstance(x_ct, Cartesian5Tuple):\n\n        def _v_h_llk_name(h=x_ct.h, llk=x_ct.llk, **name):\n            v = Vector3d(*x_ct.xyz3, **name)\n            return v, h, llk, name\n    else:\n        def _v_h_llk_name(h=INT0, llk=None, **name):  # PYCHOK redef\n            v = _otherV3d_(x_ct, y, z)\n            return v, h, llk, name\n\n    return _v_h_llk_name(**h_llk_name)\n\n\ndef _v_h_llk_name_NOIDAL(x_ct, y, z, **h_llk_name):\n    '''(INTERNAL) Helper for methods C{reverseBetOmg} and C{-Alp}.\n    '''\n    v, h, llk, name = _v_h_llk_name(x_ct, y, z, **h_llk_name)\n    if h or llk not in LLK._NOIDAL:  # or llk._X\n        kwds = dict(x_ct=x_ct) if y is z is None else \\\n               dict(x=x_ct, y=y, z=z)\n        raise TriaxialError(h=h, llk=llk, **kwds)\n    return v, h, (LLK.ELLIPSOIDAL if llk is None else llk), name\n\n\nclass Triaxial3s(_TriaxialsBase):\n    '''(INTERNAL) L{Triaxial3} registry, I{must} be a sub-class\n       to accommodate the L{_LazyNamedEnumItem} properties.\n    '''\n    _Triaxial = Triaxial3\n\nTriaxial3s = Triaxial3s(Triaxial3, Triaxial3B)  # PYCHOK singleton\n'''Some pre-defined L{Triaxial3}s, like L{Triaxials<triaxials.triaxial5.Triaxials>}.'''\nTriaxial3s._assert()\n\nif __name__ == _DMAIN_:\n    # __doc__ of this file, force all into registry\n    from pygeodesy.internals import _pregistry\n    _pregistry(Triaxial3s)\n\n\n# **) MIT License\n#\n# Copyright (C) 2025-2026 -- mrJean1 at Gmail -- All Rights Reserved.\n#\n# Permission is hereby granted, free of charge, to any person obtaining a\n# copy of this software and associated documentation files (the \"Software\"),\n# to deal in the Software without restriction, including without limitation\n# the rights to use, copy, modify, merge, publish, distribute, sublicense,\n# and/or sell copies of the Software, and to permit persons to whom the\n# Software is furnished to do so, subject to the following conditions:\n#\n# The above copyright notice and this permission notice shall be included\n# in all copies or substantial portions of the Software.\n#\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL\n# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR\n# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\n# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n# OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "pygeodesy/triaxials/triaxial5.py",
    "content": "\n# -*- coding: utf-8 -*-\n\nu'''Triaxal ellipsoid classes L{Triaxial} and I{unordered} L{Triaxial_} and Jacobi conformal projections\nL{Conformal} and L{ConformalSphere}, transcoded from I{Karney}'s GeographicLib 2.5.2 C++ class U{JacobiConformal\n<https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1JacobiConformal.html#details>} to pure\nPython and miscellaneous classes L{BetaOmega2Tuple}, L{BetaOmega3Tuple} and L{Conformal2Tuple}, I{all kept\nfor backward copability}.\n\nCopyright (C) U{Charles Karney<mailto:Karney@Alum.MIT.edu>} (2008-2024) and licensed under the MIT/X11\nLicense.  For more information, see the U{GeographicLib 2.5.2<https://GeographicLib.SourceForge.io>}\nI{experimental} documentation.\n\n@see: U{Geodesics on a triaxial ellipsoid<https://WikiPedia.org/wiki/Geodesics_on_an_ellipsoid#\n      Geodesics_on_a_triaxial_ellipsoid>} and U{Triaxial coordinate systems and their geometrical\n      interpretation<https://OLD.Topo.Auth.GR/wp-content/uploads/sites/111/2021/12/09_Panou.pdf>}.\n\n@var Triaxials.Amalthea: Triaxial(name='Amalthea', a=125000, b=73000, c=64000, e2ab=0.658944, e2bc=0.231375493, e2ac=0.737856, volume=2446253479595252, area=93239507787.490356445, R2=86138.05359954)\n@var Triaxials.Ariel: Triaxial(name='Ariel', a=581100, b=577900, c=577700, e2ab=0.01098327, e2bc=0.000692042, e2ac=0.011667711, volume=812633172614203904, area=4211301462766.580078125, R2=578899.578791275)\n@var Triaxials.Earth: Triaxial(name='Earth', a=6378173.435, b=6378103.9, c=6356754.399999999, e2ab=0.000021804, e2bc=0.006683418, e2ac=0.006705077, volume=1083208241574987694080, area=510065911057440.9375, R2=6371008.987886564)\n@var Triaxials.Enceladus: Triaxial(name='Enceladus', a=256600, b=251400, c=248300, e2ab=0.040119337, e2bc=0.024509841, e2ac=0.06364586, volume=67094551514082248, area=798618496278.596679688, R2=252095.300756832)\n@var Triaxials.Europa: Triaxial(name='Europa', a=1564130, b=1561230, c=1560930, e2ab=0.003704694, e2bc=0.000384275, e2ac=0.004087546, volume=15966575194402123776, area=30663773697323.51953125, R2=1562096.533153486)\n@var Triaxials.Io: Triaxial(name='Io', a=1829400, b=1819300, c=1815700, e2ab=0.011011391, e2bc=0.003953651, e2ac=0.014921506, volume=25313121117889765376, area=41691875849096.734375, R2=1821464.812747882)\n@var Triaxials.Mars: Triaxial(name='Mars', a=3394600, b=3393300, c=3376300, e2ab=0.000765776, e2bc=0.009994646, e2ac=0.010752768, volume=162907283585817247744, area=144249140795107.4375, R2=3388064.624110653)\n@var Triaxials.Mimas: Triaxial(name='Mimas', a=207400, b=196800, c=190600, e2ab=0.09960581, e2bc=0.062015624, e2ac=0.155444317, volume=32587072869017956, area=493855762247.691833496, R2=198241.75359411)\n@var Triaxials.Miranda: Triaxial(name='Miranda', a=240400, b=234200, c=232900, e2ab=0.050915557, e2bc=0.011070811, e2ac=0.061422691, volume=54926187094835456, area=698880863325.757080078, R2=235828.692095158)\n@var Triaxials.Moon: Triaxial(name='Moon', a=1735550, b=1735324, c=1734898, e2ab=0.000260419, e2bc=0.000490914, e2ac=0.000751206, volume=21886698675223740416, area=37838824729886.09375, R2=1735257.329122863)\n@var Triaxials.Tethys: Triaxial(name='Tethys', a=535600, b=528200, c=525800, e2ab=0.027441672, e2bc=0.009066821, e2ac=0.036259685, volume=623086233855821440, area=3528073490771.393554688, R2=529863.348254881)\n@var Triaxials.WGS84_3: Triaxial(name='WGS84_3', a=6378171.36, b=6378101.609999999, c=6356751.84, e2ab=0.000021871, e2bc=0.006683505, e2ac=0.00670523, volume=1083207064030173855744, area=510065541435967.5, R2=6371006.679496506)\n@var Triaxials.WGS84_35: Triaxial(name='WGS84_35', a=6378172, b=6378102, c=6356752.314245179, e2ab=0.00002195, e2bc=0.006683478, e2ac=0.006705281, volume=1083207319768789942272, area=510065621722018.25, R2=6371007.180905545)\n@var Triaxials.WGS84_3r: Triaxial(name='WGS84_3r', a=6378172, b=6378102, c=6356752, e2ab=0.00002195, e2bc=0.006683577, e2ac=0.00670538, volume=1083207266220584468480, area=510065604942135.875, R2=6371007.076110449)\n'''\n# make sure int/int division yields float quotient, see .basics\nfrom __future__ import division as _; del _  # noqa: E702 ;\n\nfrom pygeodesy.angles import _SinCos2,  Property_RO\nfrom pygeodesy.basics import _isin, isLatLon\nfrom pygeodesy.constants import EPS, EPS0, EPS02, _EPS2e4, INT0, \\\n                               _isfinite, isnear1, _over, _SQRT2_2, \\\n                               _0_0, _0_5, _1_0, _N_1_0\nfrom pygeodesy.datums import Datum, _spherical_datum, _WGS84,  Fmt\n# from pygeodesy.elliptic import Elliptic  # _MODS\nfrom pygeodesy.errors import _AssertionError, _ValueError, _xkwds_pop2\nfrom pygeodesy.fmath import fdot, hypot, hypot_,  fabs, sqrt\nfrom pygeodesy.fsums import fsumf_, fsum1f_\nfrom pygeodesy.interns import NN, _beta_, _distant_, _DMAIN_, _finite_, _height_, \\\n                             _inside_, _near_, _negative_, _not_, _null_, _opposite_, \\\n                             _outside_, _too_, _x_, _y_\nfrom pygeodesy.lazily import _ALL_LAZY, _ALL_MODS as _MODS, _FOR_DOCS\nfrom pygeodesy.named import _name__, _Pass\nfrom pygeodesy.namedTuples import LatLon3Tuple, _NamedTupleTo, Vector2Tuple, \\\n                                  Vector3Tuple, Vector4Tuple\n# from pygeodesy.props import Property_RO  # from .triaxials.angles\n# from pygeodesy.streprs import Fmt  # from .datums\nfrom pygeodesy.triaxials.bases import Conformal5Tuple, _HeightINT0, _hypot2_1, \\\n                                     _not_ordered_, _OrderedTriaxialBase, _over0, \\\n                                     _otherV3d_, _over02, _sqrt0, TriaxialError, \\\n                                     _Triaxial3Base, _TriaxialsBase, _UnOrderedTriaxialBase\nfrom pygeodesy.units import Degrees, Height_, Lat, Lon, Meter, Radians, Radius_, Scalar_\nfrom pygeodesy.utily import atan2, atan2d\nfrom pygeodesy.vector3d import _otherV3d, Vector3d\n\n# from math import fabs, sqrt  # from .fmath\n\n__all__ = _ALL_LAZY.triaxials_triaxial5\n__version__ = '26.03.09'\n\n_omega_ = 'omega'\n_TRIPS  =  359  # Eberly 1074?\n\n\nclass _NamedTupleToX(_NamedTupleTo):  # in .testNamedTuples\n    '''(INTERNAL) Base class for L{BetaOmega2Tuple},\n       L{BetaOmega3Tuple} and L{Conformal2Tuple}.\n    '''\n    def _toDegrees(self, name, **toDMS_kwds):\n        '''(INTERNAL) Convert C{self[0:2]} to L{Degrees} or C{toDMS}.\n        '''\n        return self._toX3U(_NamedTupleTo._Degrees3, Degrees, name, *self, **toDMS_kwds)\n\n    def _toRadians(self, name):\n        '''(INTERNAL) Convert C{self[0:2]} to L{Radians}.\n        '''\n        return self._toX3U(_NamedTupleTo._Radians3, Radians, name, *self)\n\n    def _toX3U(self, _X3, U, name, a, b, *c, **kwds):\n        a, b, s = _X3(self, a, b, **kwds)\n        if s is None or name:\n            n = self._name__(name)\n            s = self.classof(a, b, *c, name=n).reUnit(U, U).toUnits()\n        return s\n\n\nclass BetaOmega2Tuple(_NamedTupleToX):\n    '''2-Tuple C{(beta, omega)} with I{ellipsoidal} lat- and\n       longitude C{beta} and C{omega} both in L{Radians} (or\n       L{Degrees}).\n    '''\n    _Names_ = (_beta_, _omega_)\n    _Units_ = (_Pass,  _Pass)\n\n    def toDegrees(self, name=NN, **toDMS_kwds):\n        '''Convert this L{BetaOmega2Tuple} to L{Degrees} or C{toDMS}.\n\n           @kwarg name: Optional C{B{name}=NN} (C{str}).\n\n           @return: L{BetaOmega2Tuple}C{(beta, omega)} with C{beta} and\n                    C{omega} both in L{Degrees} or as L{toDMS} strings\n                    provided some B{C{toDMS_kwds}} keyword arguments are\n                    specified.\n        '''\n        return self._toDegrees(name, **toDMS_kwds)\n\n    def toRadians(self, **name):\n        '''Convert this L{BetaOmega2Tuple} to L{Radians}.\n\n           @kwarg name: Optional C{B{name}=NN} (C{str}).\n\n           @return: L{BetaOmega2Tuple}C{(beta, omega)} with C{beta} and C{omega}\n                    both in L{Radians}.\n        '''\n        return self._toRadians(name)\n\n\nclass BetaOmega3Tuple(_NamedTupleToX):\n    '''3-Tuple C{(beta, omega, height)} with I{ellipsoidal} lat- and\n       longitude C{beta} and C{omega} both in L{Radians} (or L{Degrees})\n       and the C{height}, rather the (signed) I{distance} to the triaxial's\n       surface (measured along the radial line to the triaxial's center)\n       in C{meter}, conventionally.\n    '''\n    _Names_ = BetaOmega2Tuple._Names_ + (_height_,)\n    _Units_ = BetaOmega2Tuple._Units_ + ( Meter,)\n\n    def toDegrees(self, name=NN, **toDMS_kwds):\n        '''Convert this L{BetaOmega3Tuple} to L{Degrees} or C{toDMS}.\n\n           @kwarg name: Optional C{B{name}=NN} (C{str}).\n\n           @return: L{BetaOmega3Tuple}C{(beta, omega, height)} with\n                    C{beta} and C{omega} both in L{Degrees} or as\n                    L{toDMS} strings provided some B{C{toDMS_kwds}}\n                    keyword arguments are specified.\n        '''\n        return self._toDegrees(name, **toDMS_kwds)\n\n    def toRadians(self, **name):\n        '''Convert this L{BetaOmega3Tuple} to L{Radians}.\n\n           @kwarg name: Optional C{B{name}=NN} (C{str}), overriding this name.\n\n           @return: L{BetaOmega3Tuple}C{(beta, omega, height)} with C{beta}\n                    and C{omega} both in L{Radians}.\n        '''\n        return self._toRadians(name)\n\n    def to2Tuple(self, **name):\n        '''Reduce this L{BetaOmega3Tuple} to a L{BetaOmega2Tuple}.\n\n           @kwarg name: Optional C{B{name}=NN} (C{str}), overriding this name.\n        '''\n        return BetaOmega2Tuple(*self[:2], name=self._name__(name))\n\n\nclass Conformal2Tuple(_NamedTupleToX):\n    '''2-Tuple C{(x, y)} with a I{Jacobi Conformal} C{x} and C{y}\n       projection, both in L{Radians} (or L{Degrees}).\n    '''\n    _Names_ = (_x_,   _y_)\n    _Units_ = (_Pass, _Pass)\n\n    def toDegrees(self, name=NN, **toDMS_kwds):\n        '''Convert this L{Conformal2Tuple} to L{Degrees} or C{toDMS}.\n\n           @kwarg name: Optional C{B{name}=NN} (C{str}).\n\n           @return: L{Conformal2Tuple}C{(x, y)} with C{x} and C{y} both\n                    in L{Degrees} or as L{toDMS} strings provided some\n                    B{C{toDMS_kwds}} keyword arguments are specified.\n        '''\n        return self._toDegrees(name, **toDMS_kwds)\n\n    def toRadians(self, **name):\n        '''Convert this L{Conformal2Tuple} to L{Radians}.\n\n           @kwarg name: Optional C{B{name}=NN} (C{str}).\n\n           @return: L{Conformal2Tuple}C{(x, y)} with C{x} and C{y} both in L{Radians}.\n        '''\n        return self._toRadians(name)\n\n    def to5Tuple(self, b_conformal, **z_scale_name):\n        '''Return this L{Conformal2Tuple} as a L{Conformal5Tuple}.\n\n           @arg b_conformal: Middle semi-axis (C{meter}, conventionally)\n                             or the original L{Conformal} of this 2-tuple.\n           @kwarg z_scale_name: Optional C{B{z}=0} meter, C{B{scale}=NAN}\n                                and C{B{name}=NN} (C{str}).\n\n           @return: A L{Conformal5Tuple}.\n        '''\n        if isinstance(b_conformal, Conformal):\n            b = b_conformal.b\n        else:\n            b = Radius_(b=b_conformal)\n        x, y =  self.toRadians()\n        x, y = _over(x, b), _over(y, b)\n        return Conformal5Tuple(x, y, **z_scale_name)\n\n\nclass Triaxial_(_UnOrderedTriaxialBase):\n    '''I{Unordered} triaxial ellipsoid.\n\n       Triaxial ellipsoids with right-handed semi-axes C{a}, C{b} and C{c}, oriented\n       such that the large principal ellipse C{ab} is the equator I{Z}=0, I{beta}=0,\n       while the small principal ellipse C{ac} is the prime meridian, plane I{Y}=0,\n       I{omega}=0.\n\n       The four umbilic points, C{abs}(I{omega}) = C{abs}(I{beta}) = C{PI/2}, lie on\n       the middle principal ellipse C{bc} in plane I{X}=0, I{omega}=C{PI/2}.\n\n       @note: I{Geodetic} C{lat}- and C{lon}gitudes are in C{degrees}, I{geodetic}\n              C{phi} and C{lam}bda are in C{radians}, but I{ellipsoidal} lat- and\n              longitude C{beta} and C{omega} are in L{Radians} by default (or in\n              L{Degrees} if converted).\n    '''\n    if _FOR_DOCS:\n        __init__ = _UnOrderedTriaxialBase.__init__\n\n\nclass Triaxial(_OrderedTriaxialBase):\n    '''I{Ordered} triaxial ellipsoid.\n\n       @see: L{Triaxial_} for more information.\n    '''\n    if _FOR_DOCS:\n        __init__ = _OrderedTriaxialBase.__init__\n\n    def forwardBetaOmega(self, beta, omega, height=0, **unit_name):\n        '''Convert I{ellipsoidal} lat- C{beta}, longitude C{omega} and C{height}\n           to cartesian.\n\n           @arg beta: Ellipsoidal latitude (C{Ang} or B{C{unit}}).\n           @arg omega: Ellipsoidal longitude (C{Ang} or B{C{unit}}).\n           @kwarg height: Height above or below the triaxial's surface (C{meter},\n                          same units as this triaxial's semi-axes.\n           @kwarg unit_name: Optional C{B{name}=NN} (C{str}) and scalar\n                             C{B{unit}=}L{Radians} (or L{Degrees}).\n\n           @return: A L{Vector3Tuple}C{(x, y, z)}.\n\n           @see: Method L{Triaxial.reverseBetaOmega} and U{equations (23-25)<https://\n                 OLD.Topo.Auth.GR/wp-content/uploads/sites/111/2021/12/09_Panou.pdf>}.\n        '''\n        unit, name = _xkwds_pop2(unit_name, unit=Radians)\n        if height:\n            z = self._Height(height) + self.c\n            if z > 0:\n                z2 = z**2\n                x  = z * _sqrt0(_1_0 + self._a2c2 / z2)\n                y  = z * _sqrt0(_1_0 + self._b2c2 / z2)\n            else:\n                x  = y = z = _0_0\n        else:\n            x, y, z = self._abc3\n        if z:  # and x and y:\n            sa, ca = _SinCos2(beta,  unit)\n            sb, cb = _SinCos2(omega, unit)\n\n            r  = self._a2b2_a2c2\n            x *= cb * (_sqrt0(ca**2 + sa**2 * r) if r else fabs(ca))\n            y *= ca *   sb\n            z *= sa * (_sqrt0(_1_0  - cb**2 * r) if r else _1_0)\n        return Vector3Tuple(x, y, z, **name)\n\n    def forwardBetaOmega_(self, sbeta, cbeta, somega, comega, **name):\n        '''Convert I{ellipsoidal} lat- and longitude C{beta} and C{omega}\n           to cartesian coordinates I{on this triaxial's surface}.\n\n           @arg sbeta: Ellipsoidal latitude C{sin(beta)} (C{scalar}).\n           @arg cbeta: Ellipsoidal latitude C{cos(beta)} (C{scalar}).\n           @arg somega: Ellipsoidal longitude C{sin(omega)} (C{scalar}).\n           @arg comega: Ellipsoidal longitude C{cos(omega)} (C{scalar}).\n           @kwarg name: Optional C{B{name}=NN} (C{str}).\n\n           @return: A L{Vector3Tuple}C{(x, y, z)} on the surface.\n\n           @raise TriaxialError: This triaxial is near-spherical.\n\n           @see: Method L{Triaxial.reverseBetaOmega}, U{Triaxial ellipsoid coordinate\n                 system<https://WikiPedia.org/wiki/Geodesics_on_an_ellipsoid#\n                 Triaxial_ellipsoid_coordinate_system>} and U{equations (23-25)<https://\n                 OLD.Topo.Auth.GR/wp-content/uploads/sites/111/2021/12/09_Panou.pdf>}.\n        '''\n        t = self._radialTo3(sbeta, cbeta, somega, comega)\n        return Vector3Tuple(*t, **name)\n\n    def forwardCartesian(self, x_xyz, y=None, z=None, normal=True, **eps_name):\n        '''Project any cartesian to a cartesian I{on this triaxial's surface}.\n\n           @arg x_xyz: X component (C{scalar}) or a cartesian (C{Cartesian},\n                       L{Ecef9Tuple}, L{Vector3d}, L{Vector3Tuple} or L{Vector4Tuple}).\n           @kwarg y: Y component (C{scalar}), required if B{C{x_xyz}} is C{scalar},\n                     ignored otherwise.\n           @kwarg z: Z component (C{scalar}), like B{C{y}}.\n           @kwarg normal: If C{True}, the projection is C{perpendicular} to the surface,\n                          otherwise C{radial} to the center of this triaxial (C{bool}).\n           @kwarg eps_name: Root finder tolerance C{B{eps}=EPS} and optional\n                            C{B{name}=\"height4\"} (C{str}).\n\n           @return: A L{Vector4Tuple}C{(x, y, z, h)}.\n\n           @see: Method L{Triaxial.reverseCartesian} to reverse the projection and\n                 function L{height4<triaxials.triaxial5.height4>} for more details.\n        '''\n        return self.height4(x_xyz, y, z, normal=normal, **eps_name)\n\n    def forwardLatLon(self, lat, lon, height=0, **unit_name):\n        '''Convert I{geodetic} lat-, longitude and height to cartesian.\n\n           @arg lat: Geodetic latitude (C{Ang} or B{C{unit}}).\n           @arg lon: Geodetic longitude (C{Ang} or B{C{unit}}).\n           @arg height: Height above the ellipsoid (C{meter}, same units\n                        as this triaxial's semi-axes).\n           @kwarg unit_name: Optional scalar C{B{unit}=}L{Degrees} and\n                       C{B{name}=NN} (C{str}).\n\n           @return: A L{Vector3Tuple}C{(x, y, z)}.\n\n           @see: Method L{Triaxial.reverseLatLon} and U{equations (9-11)<https://\n                 OLD.Topo.Auth.GR/wp-content/uploads/sites/111/2021/12/09_Panou.pdf>}.\n        '''\n        unit, name = _xkwds_pop2(unit_name, unit=Degrees)\n        return self._forwardLatLon3(height, name, *(_SinCos2(lat, unit) +\n                                                    _SinCos2(lon, unit)))\n\n    def forwardLatLon_(self, slat, clat, slon, clon, height=0, **name):\n        '''Convert I{geodetic} lat-, longitude and height to cartesian.\n\n           @arg slat: Geodetic latitude C{sin(lat)} (C{scalar}).\n           @arg clat: Geodetic latitude C{cos(lat)} (C{scalar}).\n           @arg slon: Geodetic longitude C{sin(lon)} (C{scalar}).\n           @arg clon: Geodetic longitude C{cos(lon)} (C{scalar}).\n           @arg height: Height above the ellipsoid (C{meter}, same units\n                        as this triaxial's semi-axes).\n           @kwarg name: Optional C{B{name}=NN} (C{str}).\n\n           @return: A L{Vector3Tuple}C{(x, y, z)}.\n\n           @see: Method L{Triaxial.reverseLatLon} and U{equations (9-11)<https://\n                 OLD.Topo.Auth.GR/wp-content/uploads/sites/111/2021/12/09_Panou.pdf>}.\n        '''\n        sa, ca = self._norm2(slat, clat)\n        sb, cb = self._norm2(slon, clon)\n        return self._forwardLatLon3(height, name, sa, ca, sb, cb)\n\n    def _forwardLatLon3(self, height, name, sa, ca, sb, cb):  # name always **name\n        '''(INTERNAL) Helper for C{.forwardLatLon} and C{.forwardLatLon_}.\n        '''\n        h = self._Height(height)\n        x = ca * cb\n        y = ca * sb\n        z = sa\n        # 1 - (1 - (c/a)**2) * sa**2 - (1 - (b/a)**2) * ca**2 * sb**2\n        t = fsumf_(_1_0, -self.e2ac * z**2, -self.e2ab * y**2)\n        n = self.a / _sqrt0(t)  # prime vertical\n        x *= h + n\n        y *= h + n * self._b2_a2\n        z *= h + n * self._c2_a2\n        return Vector3Tuple(x, y, z, **name)\n\n    def _Height(self, height):\n        '''(INTERNAL) Validate a C{height}.\n        '''\n        return Height_(height=height, low=-self.c, Error=TriaxialError)\n\n    def reverseBetaOmega(self, x_xyz, y=None, z=None, **name):\n        '''Convert cartesian to I{ellipsoidal} lat- and longitude, C{beta}, C{omega}\n           and height.\n\n           @arg x_xyz: X component (C{scalar}) or a cartesian (C{Cartesian},\n                       L{Ecef9Tuple}, L{Vector3d}, L{Vector3Tuple} or L{Vector4Tuple}).\n           @kwarg y: Y component (C{scalar}), required if B{C{x_xyz}} is C{scalar},\n                     ignored otherwise.\n           @kwarg z: Z component (C{scalar}), like B{C{y}}.\n           @kwarg name: Optional C{B{name}=NN} (C{str}).\n\n           @return: A L{BetaOmega3Tuple}C{(beta, omega, height)} with C{beta} and\n                    C{omega} in L{Radians} and (radial) C{height} in C{meter}, same\n                    units as this triaxial's semi-axes.\n\n           @see: Methods L{Triaxial.forwardBetaOmega} and L{Triaxial.forwardBetaOmega_}\n                 and U{equations (21-22)<https://OLD.Topo.Auth.GR/wp-content/uploads/\n                 sites/111/2021/12/09_Panou.pdf>}.\n        '''\n        v = _otherV3d_(x_xyz, y, z)\n        a, b, h = _reverseLatLon3(v, atan2, v, self.forwardBetaOmega_)\n        return BetaOmega3Tuple(Radians(beta=a), Radians(omega=b), h, **name)\n\n    def reverseCartesian(self, x_xyz, y=None, z=None, height=0, normal=True, eps=_EPS2e4, **name):\n        '''\"Unproject\" a cartesian I{off} this triaxial's surface.\n\n           @arg x_xyz: X component (C{scalar}) or a cartesian (C{Cartesian},\n                       L{Ecef9Tuple}, L{Vector3d}, L{Vector3Tuple} or L{Vector4Tuple}).\n           @kwarg y: Y component (C{scalar}), required if B{C{x_xyz}} is C{scalar},\n                       ignored otherwise.\n           @kwarg z: Z component (C{scalar}), like B{C{y}}.\n           @kwarg height: Height above or below this triaxial's surface (C{meter}, same\n                          units as this triaxial's semi-axes).\n           @kwarg normal: If C{True}, B{C{height}} is C{perpendicular} to the surface,\n                          otherwise C{radial} to the center of this triaxial (C{bool}).\n           @kwarg eps: Tolerance for on-surface test (C{scalar}), see method\n                       L{Triaxial.sideOf}.\n           @kwarg name: Optional C{B{name}=NN} (C{str}).\n\n           @return: A L{Vector3Tuple}C{(x, y, z)}.\n\n           @raise TrialError: Cartesian B{C{x_xyz}} or C{(x, y, z)} not on this triaxial's\n                              surface.\n\n           @see: Methods L{Triaxial.forwardCartesian} and L{Triaxial.height4}.\n        '''\n        h, name = _xkwds_pop2(name, h=height)  # h=height for backward compatibility\n        v = _otherV3d_(x_xyz, y, z, **name)\n        _ =  self._sideOn(v, eps=eps)\n        h = _HeightINT0(h)\n        if h:\n            if normal:\n                v = v.plus(self.normal3d(*v.xyz, length=h))\n            elif v.length > EPS0:\n                v = v.times(_1_0 + (h / v.length))\n        return v.xyz  # Vector3Tuple\n\n    def reverseLatLon(self, x_xyz, y=None, z=None, **name):\n        '''Convert cartesian to I{geodetic} lat-, longitude and height.\n\n           @arg x_xyz: X component (C{scalar}) or a cartesian (C{Cartesian},\n                       L{Ecef9Tuple}, L{Vector3d}, L{Vector3Tuple} or L{Vector4Tuple}).\n           @kwarg y: Y component (C{scalar}), required if B{C{x_xyz}} is C{scalar},\n                     ignored otherwise.\n           @kwarg z: Z component (C{scalar}), like B{C{y}}.\n           @kwarg name: Optional C{B{name}=NN} (C{str}).\n\n           @return: A L{LatLon3Tuple}C{(lat, lon, height)} with C{lat} and C{lon}\n                    in C{degrees} and (radial) C{height} in C{meter}, same units\n                    as this triaxial's semi-axes.\n\n           @see: Methods L{Triaxial.forwardLatLon} and L{Triaxial.forwardLatLon_}\n                 and U{equations (4-5)<https://OLD.Topo.Auth.GR/wp-content/uploads/\n                 sites/111/2021/12/09_Panou.pdf>}.\n        '''\n        v = _otherV3d_(x_xyz, y, z)\n        s =  v.times_(self._c2_a2,  # == 1 - e_sub_x**2\n                      self._c2_b2,  # == 1 - e_sub_y**2\n                     _1_0)\n        a, b, h = _reverseLatLon3(s, atan2d, v, self.forwardLatLon_)\n        return LatLon3Tuple(Lat(a), Lon(b), h, **name)\n\n\nclass TriaxialB(_Triaxial3Base):\n    '''I{Ordered} triaxial ellipsoid specified by its middle semi-axis and shape.\n\n       @see: L{Triaxial} for details and more information.\n    '''\n    def __init__(self, b, e2=_0_0, k2=_1_0, kp2=_0_0, **name):\n        '''New L{TriaxialB} triaxial.\n\n           @arg b: Middle semi-axis (C{meter}, conventionally).\n           @kwarg e2: Excentricty I{squared} (C{scalar, e2 = (a**2 - c**2) / B{b}**2}).\n           @kwarg k2: Oblateness I{squared} (C{scalar, k2 = (C{b}**2 - c**2) / (a**2 - c**2)}).\n           @kwarg kp2: Prolateness I{squared} (C{scalar, kp2 = (a**2 - C{b}**2) / (a**2 - c**2)}).\n           @kwarg name: Optional C{B{name}=NN} (C{str}).\n\n           @note: The semi-axes must be ordered as C{B{a} >= B{b} >= B{c} > 0} but\n                  may be spherical, C{B{e2} == 0}, i.e. C{B{a} == B{c}}.  In that case\n                  C{B{k2} == 0} represents a I{prolate sphere}, C{B{k2} == 1} an\n                  I{oblate sphere}, otherwise a I{triaxial sphere} with C{0 < B{k2} < 1}.\n\n           @note: The B{C{k2}} and B{C{kp2}} arguments are normalized, C{B{k2} + B{kp2} == 1}.\n\n           @raise TriaxialError: Semi-axes unordered or invalid.\n        '''\n        self._init_abc3_e2_k2_kp2(Radius_(b=b), e2, k2, kp2, **name)\n\n\nclass Conformal(Triaxial):\n    '''This is a I{Jacobi Conformal} projection of a triaxial ellipsoid to a plane where\n       the C{X} and C{Y} grid lines are straight.\n\n       I{Ellipsoidal} coordinates I{beta} and I{omega} are converted to Jacobi Conformal\n       I{y} respectively I{x} separately.  Jacobi's coordinates have been multiplied\n       by C{sqrt(B{a}**2 - B{c}**2) / (2 * B{b})} so that the customary results are\n       returned in the case of an ellipsoid of revolution.\n\n       Copyright (C) U{Charles Karney<mailto:Karney@Alum.MIT.edu>} (2014-2024) and\n       licensed under the MIT/X11 License.\n\n       @note: This constructor can I{not be used to specify a sphere}, see alternate\n              L{ConformalSphere}.\n\n       @see: L{Triaxial}, C++ class U{JacobiConformal<https://GeographicLib.SourceForge.io/\n             C++/doc/classGeographicLib_1_1JacobiConformal.html#details>}, U{Jacobi's conformal\n             projection<https://GeographicLib.SourceForge.io/C++/doc/jacobi.html>} and Jacobi,\n             C. G. J. I{U{Vorlesungen über Dynamik<https://Books.Google.com/books?\n             id=ryEOAAAAQAAJ&pg=PA212>}}, page 212ff.\n    '''\n    if _FOR_DOCS:\n        __init__ = Triaxial.__init__\n\n    @Property_RO\n    def _a2_b(self):\n        return self._a2_b2 * self.b\n\n    @Property_RO\n    def _c2_b(self):\n        return self._c2_b2 * self.b\n\n    def x(self, omega, unit=Radians):\n        '''Compute a I{Jacobi Conformal} C{x} projection.\n\n           @arg omega: Ellipsoidal longitude (C{Ang} or B{C{unit}}).\n           @kwarg unit: Unit of scalar B{C{omega}} (or C{Degrees}).\n\n           @return: The C{x} projection (L{Meter}), same units as\n                    this triaxial's semi-axes.\n        '''\n        s, c = _SinCos2(omega, unit)\n        return Meter(x=self._x(s, c, self._a2_b))\n\n    def _x(self, s, c, a2_b_):\n        '''(INTERNAL) Helper for C{.x}, C{.xR_} and C{.xy}.\n        '''\n        s, c = self._norm2(s, c, self.a)\n        return self._xE.fPi(s, c) * a2_b_\n\n    @Property_RO\n    def _xE(self):\n        '''(INTERNAL) Get the x-elliptic function.\n        '''\n        k2, kp2 = self._k2_kp2E\n        # -a2b2 / b2 == (b2 - a2) / b2 == 1 - a2 / b2 == 1 - a2_b2\n        return _MODS.elliptic.Elliptic(k2, _1_0 - self._a2_b2, kp2, self._a2_b2)\n\n    def xR(self, omega, unit=Radians):\n        '''Compute a I{Jacobi Conformal} C{x} projection.\n\n           @arg omega: Ellipsoidal longitude (C{Ang} or B{C{unit}}).\n           @kwarg unit: Unit of scalar B{C{omega}} (or C{Degrees}).\n\n           @return: The C{x} projection (L{Radians}).\n        '''\n        return self.xR_(*_SinCos2(omega, unit))\n\n    def xR_(self, somega, comega):\n        '''Compute a I{Jacobi Conformal} C{x} projection.\n\n           @arg somega: Ellipsoidal longitude C{sin(omega)} (C{scalar}).\n           @arg comega: Ellipsoidal longitude C{cos(omega)} (C{scalar}).\n\n           @return: The C{x} projection (L{Radians}).\n        '''\n        return Radians(x=self._x(somega, comega, self._a2_b2))\n\n    def xy(self, beta, omega, **unit_name):\n        '''Compute a I{Jacobi Conformal} C{x} and C{y} projection.\n\n           @arg beta: Ellipsoidal latitude (C{Ang} or B{C{unit}}).\n           @arg omega: Ellipsoidal longitude (C{Ang} or B{C{unit}}).\n           @kwarg unit_name: Optional scalar C{B{unit}=}L{Radians} and\n                       name (C{str}), overriding C{B{name}=\"xyR2\"}.\n\n           @return: A (L{Vector2Tuple}C{(x, y)}), both in C{Meter},\n                    same units as this triaxial's semi-axes..\n        '''\n        unit, name = _xkwds_pop2(unit_name, unit=Radians)\n        return Vector2Tuple(self.x(omega, unit=unit),\n                            self.y(beta,  unit=unit),\n                            name=_name__(name, name__=self.xy))\n\n    @Property_RO\n    def xyQ2(self):\n        '''Get the I{Jacobi Conformal} quadrant size in C{meter}\n           (L{Vector2Tuple}C{(x, y)}).\n        '''\n        return Vector2Tuple(Meter(x=self._a2_b * self._xE.cPi),\n                            Meter(y=self._c2_b * self._yE.cPi),\n                            name=Conformal.xyQ2.name)\n\n    @Property_RO\n    def xyQR2(self):\n        '''Get the I{Jacobi Conformal} quadrant size in C{Radians}\n           (L{Conformal2Tuple}C{(x, y)}).\n        '''\n        return Conformal2Tuple(Radians(x=self._a2_b2 * self._xE.cPi),\n                               Radians(y=self._c2_b2 * self._yE.cPi),\n                               name=Conformal.xyQR2.name)\n\n    def xyR2(self, beta, omega, **unit_name):\n        '''Compute a I{Jacobi Conformal} C{x} and C{y} projection.\n\n           @arg beta: Ellipsoidal latitude (C{Ang} or B{C{unit}}).\n           @arg omega: Ellipsoidal longitude (C{Ang} or B{C{unit}}).\n           @kwarg unit_name: Optional scalar C{B{unit}=}L{Radians} and\n                       name (C{str}), overriding C{B{name}=\"xyR2\"}.\n\n           @return: A L{Conformal2Tuple}C{(x, y)}, both in C{Radians}.\n        '''\n        unit, name  = _xkwds_pop2(unit_name, unit=Radians)\n        sb_cb_so_co = _SinCos2(beta, unit) + _SinCos2(omega, unit)\n        return self.xyR2_(*sb_cb_so_co, name=_name__(name, name__=self.xyR2))\n\n    def xyR2_(self, sbeta, cbeta, somega, comega, **name):\n        '''Compute a I{Jacobi Conformal} C{x} and C{y} projection.\n\n           @arg sbeta: Ellipsoidal latitude C{sin(beta)} (C{scalar}).\n           @arg cbeta: Ellipsoidal latitude C{cos(beta)} (C{scalar}).\n           @arg somega: Ellipsoidal longitude C{sin(omega)} (C{scalar}).\n           @arg comega: Ellipsoidal longitude C{cos(omega)} (C{scalar}).\n           @kwarg name: Optional name (C{str}), overriding C{B{name}=\"xyR2_\"}.\n\n           @return: A L{Conformal2Tuple}C{(x, y)}.\n        '''\n        return Conformal2Tuple(self.xR_(somega, comega),\n                               self.yR_(sbeta,  cbeta),\n                               name=_name__(name, name__=self.xyR2_))\n\n    def y(self, beta, unit=Radians):\n        '''Compute a I{Jacobi Conformal} C{y} projection.\n\n           @arg beta: Ellipsoidal latitude (C{Ang} or B{C{unit}}).\n           @kwarg unit: Unit of scalar B{C{beta}} (or C{Degrees}).\n\n           @return: The C{y} projection (L{Meter}), same units as\n                    this triaxial's semi-axes.\n        '''\n        s, c = _SinCos2(beta, unit)\n        return Meter(y=self._y(s, c, self._c2_b))\n\n    def _y(self, s, c, c2_b_):\n        '''(INTERNAL) Helper for C{.y}, C{.yR_} and C{.xy}.\n        '''\n        s, c = self._norm2(s, c, self.c)\n        return self._yE.fPi(s, c) * c2_b_\n\n    @Property_RO\n    def _yE(self):\n        '''(INTERNAL) Get the y-elliptic function.\n        '''\n        k2, kp2 = self._k2_kp2E\n        # b2c2 / b2 == (b2 - c2) / b2 == 1 - c2 / b2 == e2bc\n        return _MODS.elliptic.Elliptic(kp2, self.e2bc, k2, self._c2_b2)\n\n    def yR(self, beta, unit=Radians):\n        '''Compute a I{Jacobi Conformal} C{y} projection.\n\n           @arg beta: Ellipsoidal latitude (C{Ang} or B{C{unit}}).\n           @kwarg unit: Unit of scalar B{C{beta}} (or C{Degrees}).\n\n           @return: The C{y} projection (L{Radians}).\n        '''\n        return self.yR_(*_SinCos2(beta, unit))\n\n    def yR_(self, sbeta, cbeta):\n        '''Compute a I{Jacobi Conformal} C{y} projection.\n\n           @arg sbeta: Ellipsoidal latitude C{sin(beta)} (C{scalar}).\n           @arg cbeta: Ellipsoidal latitude C{cos(beta)} (C{scalar}).\n\n           @return: The C{y} projection (L{Radians}).\n        '''\n        return Radians(y=self._y(sbeta, cbeta, self._c2_b2))\n\n\nclass ConformalSphere(Conformal):\n    '''Alternate, I{Jacobi Conformal projection} on a I{spherical} triaxial.\n\n       @see: L{Conformal<triaxials.triaxial5.Conformal>} for more information.\n    '''\n    _ab = _bc = 0\n\n    def __init__(self, radius_conformal, ab=0, bc=0, **name):\n        '''New L{ConformalSphere}.\n\n           @arg radius_conformal: Radius (C{scalar}, conventionally in C{meter})\n                       or an other L{ConformalSphere} or L{Conformal}.\n           @kwarg ab: Relative magnitude of C{B{a} - B{b}} (C{meter}, same units\n                      as C{scalar B{radius}}.\n           @kwarg bc: Relative magnitude of C{B{b} - B{c}} (C{meter}, same units\n                      as C{scalar B{radius}}.\n           @kwarg name: Optional C{B{name}=NN} (C{str}).\n\n           @raise TriaxialError: Invalid B{C{radius_conformal}}, negative B{C{ab}},\n                                 negative B{C{bc}} or C{(B{ab} + B{bc})} not positive.\n\n           @note: If B{C{radius_conformal}} is a L{ConformalSphere} and if B{C{ab}}\n                  and B{C{bc}} are both zero or C{None}, the B{C{radius_conformal}}'s\n                  C{ab}, C{bc}, C{a}, C{b} and C{c} are copied.\n        '''\n        try:\n            r = radius_conformal\n            if isinstance(r, Triaxial):  # ordered only\n                t = r._abc3\n                j = isinstance(r, ConformalSphere) and not bool(ab or bc)\n            else:\n                t = (Radius_(radius=r),) * 3\n                j =  False\n            self._ab = r.ab if j else Scalar_(ab=ab)  # low=0\n            self._bc = r.bc if j else Scalar_(bc=bc)  # low=0\n            if (self.ab + self.bc) <= 0:\n                raise ValueError(_negative_)\n            a, _, c = self._abc3 = t\n            if not (a >= c and _isfinite(self._a2b2)\n                           and _isfinite(self._a2c2)):\n                raise ValueError(_not_(_finite_))\n        except (TypeError, ValueError) as x:\n            raise TriaxialError(radius=r, ab=ab, bc=bc, cause=x)\n        if name:\n            self.name = name\n\n    @Property_RO\n    def ab(self):\n        '''Get relative magnitude C{a - b} (C{meter}, same units as B{C{a}}).\n        '''\n        return self._ab\n\n    @Property_RO\n    def _a2b2(self):\n        '''(INTERNAL) Get C{a**2 - b**2} == ab * (a + b).\n        '''\n        a, b, _ = self._abc3\n        return self.ab * (a + b)\n\n    @Property_RO\n    def _a2c2(self):\n        '''(INTERNAL) Get C{a**2 - c**2} == a2b2 + b2c2.\n        '''\n        return self._a2b2 + self._b2c2\n\n    @Property_RO\n    def bc(self):\n        '''Get relative magnitude C{b - c} (C{meter}, same units as B{C{a}}).\n        '''\n        return self._bc\n\n    @Property_RO\n    def _b2c2(self):\n        '''(INTERNAL) Get C{b**2 - c**2} == bc * (b + c).\n        '''\n        _, b, c = self._abc3\n        return self.bc * (b + c)\n\n    @Property_RO\n    def radius(self):\n        '''Get radius (C{meter}, conventionally).\n        '''\n        return self.a\n\n\ndef _hartzell3(pov, los, Tun):  # in .Ellipsoid.hartzell4, .formy.hartzell\n    '''(INTERNAL) Hartzell's \"Satellite Line-of-Sight Intersection ...\",\n       formula from a Point-Of-View to an I{un-/ordered} Triaxial.\n    '''\n    def _toUvwV3d(los, pov):\n        try:  # pov must be LatLon or Cartesian if los is a Los\n            v = los.toUvw(pov)\n        except (AttributeError, TypeError):\n            v = _otherV3d(los=los)\n        return v\n\n    p3 = _otherV3d(pov=pov.toCartesian() if isLatLon(pov) else pov)\n    if los is True:  # normal\n        a, b, c, d, i = _plumbTo5(p3.x, p3.y, p3.z, Tun)\n        return type(p3)(a, b, c), d, i\n\n    u3 = p3.negate() if los is False or los is None else _toUvwV3d(los, pov)\n\n    a, b, c, T = Tun._ordered4\n\n    a2     =  T.a2  # largest, factored out\n    b2, p2 = (T.b2, T._b2_a2) if b != a else (a2, _1_0)\n    c2, q2 = (T.c2, T._c2_a2) if c != a else (a2, _1_0)\n\n    p3 = T._order3d(p3)\n    u3 = T._order3d(u3).unit()  # unit vector, opposing signs\n\n    x2, y2, z2 = p3.x2y2z23  # p3.times_(p3).xyz3\n    ux, vy, wz = u3.times_(p3).xyz3\n    u2, v2, w2 = u3.x2y2z23  # u3.times_(u3).xyz3\n\n    r = fsumf_(b2 * w2,      c2 * v2,      -v2 * z2,      vy * wz * 2,\n              -w2 * y2,     -u2 * y2 * q2, -u2 * z2 * p2, ux * wz * 2 * p2,\n              -w2 * x2 * p2, b2 * u2 * q2, -v2 * x2 * q2, ux * vy * 2 * q2)\n    if r > 0:  # a2 factored out\n        r = sqrt(r) * b * c  # == a * a * b * c / a2\n    elif r < 0:  # LOS pointing away from or missing the triaxial\n        raise _ValueError(_opposite_ if max(ux, vy, wz) > 0 else _outside_)\n\n    t = (p2 * c2), c2, b2\n    d = _over(fdot(t, ux, vy, wz) + r,  # -r for antipode\n              fdot(t, u2, v2, w2))  # a2 factored out\n    if not _isfinite(d):  # zero or near-null LOS vector\n        raise _ValueError(_near_(_null_))  # XXX or T.isFlat?\n    elif d > 0:  # POV inside or LOS outside or missing the triaxial\n        s = fsumf_(_N_1_0, _over(x2, a2), _over(y2, b2), _over(z2, c2))  # like _sideOf\n        raise _ValueError(_outside_ if s > 0 else _inside_)\n    elif fsum1f_(x2, y2, z2, -d*d) < 0:  # d past triaxial's center\n        raise _ValueError(_too_(_distant_))\n\n    v = p3.minus(u3.times(d))  # cartesian type(pov) or Vector3d\n    h = p3.minus(v).length  # distance to pov == -d\n    return T._order3d(v, reverse=True), h, None\n\n\ndef hartzell4(pov, los=False, tri_biax=_WGS84, **name):\n    '''Compute the intersection of a tri-/biaxial ellipsoid and a Line-Of-Sight from\n       a Point-Of-View outside.\n\n       @arg pov: Point-Of-View outside the tri-/biaxial (C{Cartesian}, L{Ecef9Tuple},\n                 C{LatLon} or L{Vector3d}).\n       @kwarg los: Line-Of-Sight, I{direction} to the tri-/biaxial (L{Los}, L{Vector3d})\n                   or C{True} for the I{normal, perpendicular, plumb} to the surface of\n                   the tri-/biaxial or C{False} or C{None} to point to its center.\n       @kwarg tri_biax: A triaxial (L{Triaxial}, L{Triaxial_}, L{Triaxial3}, L{Triaxial3B},\n                        L{Conformal} or L{ConformalSphere}) or biaxial ellipsoid (L{Datum},\n                        L{Ellipsoid}, L{Ellipsoid2}, L{a_f2Tuple}) or spherical earth\n                        radius (C{scalar}, conventionally in C{meter}).\n       @kwarg name: Optional name (C{str}), overriding C{B{name}=\"hartzell4\"}.\n\n       @return: L{Vector4Tuple}C{(x, y, z, h)} on the tri-/biaxial's surface, with C{h}\n                the distance from B{C{pov}} to C{(x, y, z)} I{along the} B{C{los}}, all\n                in C{meter}, conventionally.\n\n       @raise TriaxialError: Invalid B{C{pov}} or B{C{pov}} inside the tri-/biaxial or\n                             invalid B{C{los}} or B{C{los}} points outside or away from\n                             the tri-/biaxial.\n\n       @raise TypeError: Invalid B{C{tri_biax}}, C{ellipsoid} or C{datum}.\n\n       @see: Class L{pygeodesy3.Los}, functions L{pygeodesy.tyr3d} and L{pygeodesy.hartzell}\n             and U{lookAtSpheroid<https://PyPI.org/project/pymap3d>} and U{\"Satellite\n             Line-of-Sight Intersection with Earth\"<https://StephenHartzell.Medium.com/\n             satellite-line-of-sight-intersection-with-earth-d786b4a6a9b6>}.\n    '''\n    T = _tri_biaxial(tri_biax, hartzell4)\n    try:\n        v, h, i = _hartzell3(pov, los, T)\n    except Exception as x:\n        raise TriaxialError(pov=pov, los=los, tri_biax=tri_biax, cause=x)\n    n = _name__(name, name__=hartzell4)  # typename\n    return Vector4Tuple(v.x, v.y, v.z, h, iteration=i, name=n)\n\n\ndef height4(x_xyz, y=None, z=None, tri_biax=_WGS84, normal=True, eps=EPS, **name):\n    '''Compute the projection on and the height above or below a tri-/biaxial ellipsoid's surface.\n\n       @arg x_xyz: X component (C{scalar}) or a cartesian (C{Cartesian}, L{Ecef9Tuple},\n                   L{Vector3d}, L{Vector3Tuple} or L{Vector4Tuple}).\n       @kwarg y: Y component (C{scalar}), required if B{C{x_xyz}} if C{scalar}, ignored\n                 otherwise.\n       @kwarg z: Z component (C{scalar}), like B{C{y}}.\n       @kwarg tri_biax: A triaxial (L{Triaxial}, L{Triaxial_}, L{Triaxial3}, L{Triaxial3B},\n                        L{Conformal} or L{ConformalSphere}) or biaxial ellipsoid (L{Datum},\n                        L{Ellipsoid}, L{Ellipsoid2}, L{a_f2Tuple}) or spherical earth\n                        radius (C{scalar}, conventionally in C{meter}).\n       @kwarg normal: If C{True}, the projection is the I{perpendicular, plumb} to the\n                      tri-/biaxial's surface, otherwise the C{radial} line to the center\n                      of the tri-/biaxial (C{bool}).\n       @kwarg eps: Tolerance for root finding and validation (C{scalar}), use a negative\n                   value to skip validation.\n       @kwarg name: Optional C{B{name}=\"height4\"} (C{str}).\n\n       @return: L{Vector4Tuple}C{(x, y, z, h)} with the cartesian coordinates C{x}, C{y}\n                and C{z} of the projection on or the intersection with and with the height\n                C{h} above or below the tri-/biaxial's surface in C{meter}, conventionally.\n\n       @raise TriaxialError: Non-cartesian B{C{xyz}}, invalid B{C{eps}}, no convergence in\n              root finding or validation failed.\n\n       @see: Methods L{Triaxial.normal3d} and L{Ellipsoid.height4}, I{Eberly}'s U{Distance from a Point to ...\n             <https://www.GeometricTools.com/Documentation/DistancePointEllipseEllipsoid.pdf>} and I{Bektas}'\n             U{Shortest Distance from a Point to Triaxial Ellipsoid<https://www.ResearchGate.net/publication/\n             272149005_SHORTEST_DISTANCE_FROM_A_POINT_TO_TRIAXIAL_ELLIPSOID>}.\n    '''\n    v = _otherV3d_(x_xyz, y, z)\n    T = _tri_biaxial(tri_biax, height4)\n    r =  T.isSpherical\n\n    i, h = None, v.length\n    if h < EPS0:  # EPS\n        x = y = z = _0_0\n        h -= min(T._abc3)  # nearest\n    elif r:  # .isSpherical\n        x, y, z = v.times(r / h).xyz3\n        h -= r\n    else:\n        x, y, z = v.xyz3\n        try:\n            if normal:  # plumb to surface\n                x, y, z, h, i = _plumbTo5(x, y, z, T, eps=eps)\n            else:  # radial to center\n                x, y, z = T._radialTo3(z, hypot(x, y), y, x)\n                h = v.minus_(x, y, z).length\n        except Exception as e:\n            raise TriaxialError(x=x, y=y, z=z, cause=e)\n        if h > 0 and T.sideOf(v, eps=EPS0) < 0:\n            h = -h  # inside\n    n = _name__(name, name__=height4)  # typename\n    return Vector4Tuple(x, y, z, h, iteration=i, name=n)\n\n\ndef _ordered(a, b, c):\n    '''(INTERNAL) Is C{a >= b >= c > 0}?\n    '''\n    if not (_isfinite(a) and a >= b >= c > 0):\n        raise TriaxialError(a=a, b=b, c=c, txt=_not_ordered_)\n\n\ndef _plumbTo3(px, py, E, eps=EPS):  # in .ellipsoids.Ellipsoid.height4\n    '''(INTERNAL) Nearest point in 1st quadrant on a 2-D ellipse.\n    '''\n    a, b = E.a, E.b\n    if min(px, py, a, b) < EPS0:\n        raise _AssertionError(px=px, py=py, a=a, b=b, E=E)\n\n    a2 = a - b * E.b_a\n    b2 = b - a * E.a_b\n    tx = ty = _SQRT2_2\n    for i in range(16):  # max 5\n        ex = tx**3 * a2\n        ey = ty**3 * b2\n\n        qx = px - ex\n        qy = py - ey\n        q  = hypot(qx, qy)\n        if q < EPS0:  # PYCHOK no cover\n            break\n        r = hypot(ex - tx * a,\n                  ey - ty * b) / q\n\n        sx, tx = tx, min(_1_0, max(0, (ex + qx * r) / a))\n        sy, ty = ty, min(_1_0, max(0, (ey + qy * r) / b))\n        t = hypot(ty, tx)\n        if t < EPS0:  # PYCHOK no cover\n            break\n        tx = tx / t  # /= chokes PyChecker\n        ty = ty / t\n        if fabs(sx - tx) < eps and \\\n           fabs(sy - ty) < eps:\n            break\n\n    tx *= a / px\n    ty *= b / py\n    return tx, ty, i  # x and y as fractions\n\n\ndef _plumbTo4(x, y, a, b, eps=EPS):\n    '''(INTERNAL) Nearest point on and distance to a 2-D ellipse, I{unordered}.\n\n       @see: Function C{_plumbTo3} and I{Eberly}'s U{Distance from a Point to ... an Ellipse ...\n             <https://www.GeometricTools.com/Documentation/DistancePointEllipseEllipsoid.pdf>}.\n    '''\n    if b > a:\n        b, a, d, i = _plumbTo4(y, x, b, a, eps=eps)\n        return a, b, d, i\n\n    if not (b > 0 and _isfinite(a)):\n        raise _ValueError(a=a, b=b)\n\n    i = None\n    if y:\n        if x:\n            u =  fabs(x / a)\n            w =  fabs(y / b)\n            g = _hypot2_1(u, w)\n            if fabs(g) > EPS02:\n                r = (b / a)**2\n                t, i = _rootNd(_1_0 / r, 0, u, 0, w, g)  # eps\n                a = _over(x, t * r + _1_0)\n                b = _over(y, t     + _1_0)\n                d =  hypot(x - a, y - b)\n            else:  # on the ellipse\n                a, b, d = x, y, _0_0\n        else:  # x == 0\n            if y < 0:\n                b = -b\n            a = x  # _copysign_0_0\n            d = fabs(y - b)\n\n    elif x:  # y == 0\n        d, r = None, _over0(a * x, (a + b) * (a - b))\n        if r:\n            a *= r\n            r = _1_0 - r**2\n            if r > EPS02:\n                b *= sqrt(r)\n                d  = hypot(x - a, y - b)\n        elif x < 0:\n            a = -a\n        if d is None:\n            b = y  # _copysign_0_0\n            d = fabs(x - a)\n\n    else:  # x == y == 0\n        a = x  # _copysign_0_0\n        d = b\n\n    return a, b, d, i\n\n\ndef _plumbTo5(x, y, z, Tun, eps=EPS):  # in .testTriaxials\n    '''(INTERNAL) Nearest point on and distance to an I{un-/ordered} triaxial.\n\n       @see: I{Eberly}'s U{Distance from a Point to ... an Ellipsoid ...<https://\n             www.GeometricTools.com/Documentation/DistancePointEllipseEllipsoid.pdf>}.\n    '''\n    a, b, c, T = Tun._ordered4\n    if Tun is not T:  # T is ordered, Tun isn't\n        t = T._order3(x, y, z) + (T,)\n        a, b, c, d, i = _plumbTo5(*t, eps=eps)\n        return T._order3(a, b, c, reverse=True) + (d, i)\n\n    if not (c > 0 and _isfinite(a)):\n        raise _ValueError(a=a, b=b, c=c)\n\n    if eps > 0:\n        val = max(eps * 1e8, EPS)\n    else:  # no validation\n        val, eps = 0, max(EPS0, -eps)\n\n    i = None\n    if z:\n        if y:\n            if x:\n                u =  fabs(x / a)\n                v =  fabs(y / b)\n                w =  fabs(z / c)\n                g = _hypot2_1(u, v, w)\n                if fabs(g) > EPS02:\n                    r = T._c2_a2  # (c / a)**2\n                    s = T._c2_b2  # (c / b)**2\n                    t, i = _rootNd(_1_0 / r, _1_0 / s, u, v, w, g)  # eps\n                    a = _over(x, t * r + _1_0)\n                    b = _over(y, t * s + _1_0)\n                    c = _over(z, t     + _1_0)\n                    d =  hypot_(x - a, y - b, z - c)\n                else:  # on the ellipsoid\n                    a, b, c, d = x, y, z, _0_0\n            else:  # x == 0\n                a          =  x  # = _copysign_0_0(x)\n                b, c, d, i = _plumbTo4(y, z, b, c, eps=eps)\n        elif x:  # y == 0\n            b          =  y  # = _copysign_0_0(y)\n            a, c, d, i = _plumbTo4(x, z, a, c, eps=eps)\n        else:  # x == y == 0\n            if z < 0:\n                c = -c\n            a, b, d = x, y, fabs(z - c)\n\n    else:  # z == 0\n        u = _over0(a * x, T._a2c2)  # (a + c) * (a - c)\n        v = _over0(b * y, T._b2c2)  # (b + c) * (b - c)\n        s = _hypot2_1(u, v)\n        if u and v and s < 0:\n            a *= u\n            b *= v\n            c *= sqrt(-s)\n            d  = hypot_(x - a, y - b, c)\n        else:\n            c          =  z  # _copysign_0_0(z)\n            a, b, d, i = _plumbTo4(x, y, a, b, eps=eps)\n\n    if val > 0:\n        _validate(a, b, c, d, T, x, y, z, val)\n    return a, b, c, d, i\n\n\ndef _reverseLatLon3(s, atan2_, v, forward_):\n    '''(INTERNAL) Helper for C{.reverseBetaOmega} and C{.reverseLatLon}.\n    '''\n    x, y, z = s.xyz3\n    d = hypot( x, y)\n    h = v.minus_(*forward_(z, d, y, x)).length\n    return atan2_(z, d), atan2_(y, x), (h or INT0)\n\n\ndef _rootNd(r, s, u, v, w, g, eps=EPS0):\n    '''(INTERNAL) Robust 2-D or 3-D root finder: 2-D if C{s == v == 0} else 3-D root.\n\n       @see: I{Eberly}'s U{Robust Root Finders ... and Listing 4<https://\n             www.GeometricTools.com/Documentation/DistancePointEllipseEllipsoid.pdf>}.\n    '''\n    u *=  r\n    v *=  s  # 0 for 2-D root\n    t0 =  w - _1_0\n    t1 = _0_0 if g < 0 else (hypot_(u, w, v) - _1_0)\n    # assert t0 <= t1\n    for i in range(1, _TRIPS):  # 48..58\n        t = (t1 + t0) * _0_5\n        e =  t1 - t0\n        if eps > e > -eps or _isin(t, t0, t1):\n            break\n        g = fsumf_(_N_1_0,  # ~= _hypot2_1\n                   _over02(u, t +  r),\n                   _over02(w, t + _1_0), (\n                   _over02(v, t +  s) if v else _0_0))\n        if g > 0:\n            t0 = t\n        elif g < 0:\n            t1 = t\n        else:\n            break\n    else:  # PYCHOK no cover\n        t = Fmt.no_convergence(e, eps)\n        raise _ValueError(t, txt__=_rootNd)\n    return t, i\n\n\ndef _tri_biaxial(tri_biax, where):\n    '''(INTERNAL) Get a triaxial for C{tri_biax}.\n    '''\n    if isinstance(tri_biax, _UnOrderedTriaxialBase):\n        T = tri_biax\n    else:\n        D = tri_biax if isinstance(tri_biax, Datum) else \\\n                  _spherical_datum(tri_biax, name__=where)  # typename\n        T = D.ellipsoid._triaxial\n    return T\n\n\ndef _validate(a, b, c, d, T, x, y, z, val):\n    '''(INTERNAL) Validate an C{_plumTo5} result.\n    '''\n    e = T.sideOf(a, b, c, eps=val)\n    if e:  # not near the ellipsoid's surface\n        raise _ValueError(a=a, b=b, c=c, d=d,\n                          sideOf=e, eps=val)\n    if d:  # angle of delta and normal vector\n        m = Vector3d(x, y, z).minus_(a, b, c)\n        if m.euclid > val:\n            m = m.unit()\n            n = T.normal3d(a, b, c)\n            e = n.dot(m)  # n.negate().dot(m)\n            if not isnear1(fabs(e), eps1=val):\n                raise _ValueError(n=n, m=m,\n                                dot=e, eps=val)\n\n\nclass Triaxials(_TriaxialsBase):\n    '''(INTERNAL) L{Triaxial} registry, I{must} be a sub-class\n       to accommodate the L{_LazyNamedEnumItem} properties.\n    '''\n    _Triaxial = Triaxial\n\nTriaxials = Triaxials(Triaxial, Triaxial_)  # PYCHOK singleton\n'''Some pre-defined L{Triaxial}s, all I{lazily} instantiated.'''\nTriaxials._assert()\n\nif __name__ == _DMAIN_:\n\n    from pygeodesy.internals import _pregistry, printf\n\n    T = Triaxial_(6378388.0, 6378318.0, 6356911.9461)\n    t = T.height4(3909863.9271, 3909778.123, 3170932.5016)\n    printf('# Bektas: %r', t)\n    # __doc__ of this file, force all into registry\n    _pregistry(Triaxials)\n\n# % python3 -m pygeodesy.triaxials.triaxial5\n#\n# Bektas: height4(x=3909251.554667, y=3909165.750567, z=3170432.501602, h=999.999996)\n\n# **) MIT License\n#\n# Copyright (C) 2022-2026 -- mrJean1 at Gmail -- All Rights Reserved.\n#\n# Permission is hereby granted, free of charge, to any person obtaining a\n# copy of this software and associated documentation files (the \"Software\"),\n# to deal in the Software without restriction, including without limitation\n# the rights to use, copy, modify, merge, publish, distribute, sublicense,\n# and/or sell copies of the Software, and to permit persons to whom the\n# Software is furnished to do so, subject to the following conditions:\n#\n# The above copyright notice and this permission notice shall be included\n# in all copies or substantial portions of the Software.\n#\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL\n# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR\n# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\n# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n# OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "pygeodesy/units.py",
    "content": "\n# -*- coding: utf-8 -*-\n\nu'''Various named units, all sub-classes of C{Float}, C{Int} or C{Str} from\nbasic C{float}, C{int} respectively C{str} to named units as L{Degrees},\nL{Feet}, L{Meter}, L{Radians}, etc.\n'''\n\n# from pygeodesy.angles import isAng  # _MODS\nfrom pygeodesy.basics import isscalar, issubclassof, signOf,  typename\nfrom pygeodesy.constants import EPS, EPS1, PI, PI2, PI_2, _umod_360, _0_0, _0_001\nfrom pygeodesy.dms import F__F, F__F_, S_NUL, S_SEP, parseDMS, parseRad, _toDMS\nfrom pygeodesy.errors import _AssertionError, TRFError, UnitError, _xattr, _xcallable\n# from pygeodesy.internals import typename  # from .basics\nfrom pygeodesy.interns import NN, _azimuth_, _band_, _bearing_, _COMMASPACE_, \\\n                             _degrees_, _degrees2_, _distance_, _E_, _easting_, \\\n                             _epoch_, _EW_, _feet_, _height_, _lam_, _lat_, _lon_, \\\n                             _meter_, _meter2_, _N_, _negative_, _northing_, _radians_, \\\n                             _NS_, _NSEW_, _number_, _PERCENT_, _phi_, _precision_, \\\n                             _radians2_, _radius_, _S_, _scalar_, \\\n                             _W_, _zone_,  _std_  # PYCHOK used!\nfrom pygeodesy.lazily import _ALL_DOCS, _ALL_LAZY, _ALL_MODS as _MODS\n# from pygeodesy.named import _name__  # _MODS\nfrom pygeodesy.props import Property_RO\n# from pygeodesy.streprs import Fmt, fstr  # from .unitsBase\nfrom pygeodesy.unitsBase import Float, Int, _NamedUnit, Radius, Str,  Fmt, fstr\n\nfrom math import degrees, isnan, radians\n\n__all__ = _ALL_LAZY.units\n__version__ = '26.03.12'\n\n\nclass Float_(Float):\n    '''Named C{float} with optional C{low} and C{high} limit.\n    '''\n    def __new__(cls, arg=None, name=NN, low=EPS, high=None, **Error_name_arg):\n        '''New, named C{Float_}, see L{Float}.\n\n           @arg cls: This class (C{Float_} or sub-class).\n           @kwarg arg: The value (any C{type} convertable to C{float}).\n           @kwarg name: Optional instance name (C{str}).\n           @kwarg low: Optional lower B{C{arg}} limit (C{float} or C{None}).\n           @kwarg high: Optional upper B{C{arg}} limit (C{float} or C{None}).\n\n           @returns: A named C{Float_}.\n\n           @raise Error: Invalid B{C{arg}} or B{C{arg}} below B{C{low}} or above B{C{high}}.\n        '''\n        self = Float.__new__(cls, arg=arg, name=name, **Error_name_arg)\n        t = _xlimits(self, low, high, g=True)\n        if t:\n            raise _NamedUnit._Error(cls, arg, name, txt=t, **Error_name_arg)\n        return self\n\n\nclass Int_(Int):\n    '''Named C{int} with optional limits C{low} and C{high}.\n    '''\n    def __new__(cls, arg=None, name=NN, low=0, high=None, **Error_name_arg):\n        '''New, named C{int} instance with limits, see L{Int}.\n\n           @kwarg cls: This class (C{Int_} or sub-class).\n           @arg arg: The value (any C{type} convertable to C{int}).\n           @kwarg name: Optional instance name (C{str}).\n           @kwarg low: Optional lower B{C{arg}} limit (C{int} or C{None}).\n           @kwarg high: Optional upper B{C{arg}} limit (C{int} or C{None}).\n\n           @returns: A named L{Int_}.\n\n           @raise Error: Invalid B{C{arg}} or B{C{arg}} below B{C{low}} or above B{C{high}}.\n        '''\n        self = Int.__new__(cls, arg=arg, name=name, **Error_name_arg)\n        t = _xlimits(self, low, high)\n        if t:\n            raise _NamedUnit._Error(cls, arg, name, txt=t, **Error_name_arg)\n        return self\n\n\nclass Bool(Int, _NamedUnit):\n    '''Named C{bool}, a sub-class of C{int} like Python's C{bool}.\n    '''\n    # _std_repr = True  # set below\n    _bool_True_or_False = None\n\n    def __new__(cls, arg=None, name=NN, Error=UnitError, **name_arg):\n        '''New, named C{Bool}.\n\n           @kwarg cls: This class (C{Bool} or sub-class).\n           @kwarg arg: The value (any C{type} convertable to C{bool}).\n           @kwarg name: Optional instance name (C{str}).\n           @kwarg Error: Optional error to raise, overriding the default L{UnitError}.\n           @kwarg name_arg: Optional C{name=arg} keyword argument, inlieu of separate\n                            B{C{arg}} and B{C{name}} ones.\n\n           @returns: A named L{Bool}, C{bool}-like.\n\n           @raise Error: Invalid B{C{arg}}.\n        '''\n        if name_arg:\n            name, arg = _NamedUnit._arg_name_arg2(arg, **name_arg)\n        try:\n            b = bool(arg)\n        except Exception as x:\n            raise _NamedUnit._Error(cls, arg, name, Error, cause=x)\n\n        self = Int.__new__(cls, b, name=name, Error=Error)\n        self._bool_True_or_False = b\n        return self\n\n    # <https://StackOverflow.com/questions/9787890/assign-class-boolean-value-in-python>\n    def __bool__(self):  # PYCHOK Python 3+\n        return self._bool_True_or_False\n\n    __nonzero__ = __bool__  # PYCHOK Python 2-\n\n    def toRepr(self, std=False, **unused):  # PYCHOK **unused\n        '''Return a representation of this C{Bool}.\n\n           @kwarg std: Use the standard C{repr} or the named representation (C{bool}).\n\n           @note: Use C{env} variable C{PYGEODESY_BOOL_STD_REPR=std} prior to C{import\n                  pygeodesy} to get the standard C{repr} or set property C{std_repr=False}\n                  to always get the named C{toRepr} representation.\n        '''\n        r = repr(self._bool_True_or_False)\n        return r if std else self._toRepr(r)\n\n    def toStr(self, **unused):  # PYCHOK **unused\n        '''Return this C{Bool} as standard C{str}.\n        '''\n        return str(self._bool_True_or_False)\n\n\nclass Band(Str):\n    '''Named C{str} representing a UTM/UPS band letter, unchecked.\n    '''\n    def __new__(cls, arg=None, name=_band_, **Error_name_arg):\n        '''New, named L{Band}, see L{Str}.\n        '''\n        return Str.__new__(cls, arg=arg, name=name, **Error_name_arg)\n\n\nclass Degrees(Float):\n    '''Named C{float} representing a coordinate in C{degrees}, optionally clipped.\n    '''\n    _ddd_ =  1  # default for .dms._toDMS\n    _sep_ =  S_SEP\n    _suf_ = (S_NUL,) * 3\n\n    def __new__(cls, arg=None, name=_degrees_, suffix=_NSEW_, clip=0, wrap=None, Error=UnitError, **name_arg):\n        '''New C{Degrees} instance, see L{Float}.\n\n           @arg cls: This class (C{Degrees} or sub-class).\n           @kwarg arg: The value (any C{type} convertable to C{float} or parsable by\n                       function L{parseDMS<pygeodesy.dms.parseDMS>}).\n           @kwarg name: Optional instance name (C{str}).\n           @kwarg suffix: Optional, valid compass direction suffixes (C{NSEW}).\n           @kwarg clip: Optional B{C{arg}} range B{C{-clip..+clip}} (C{degrees} or C{0}\n                        or C{None} for unclipped).\n           @kwarg wrap: Optionally adjust the B{C{arg}} value (L{wrap90<pygeodesy.wrap90>},\n                        L{wrap180<pygeodesy.wrap180>} or L{wrap360<pygeodesy.wrap360>}).\n           @kwarg Error: Optional error to raise, overriding the default L{UnitError}.\n           @kwarg name_arg: Optional C{name=arg} keyword argument, inlieu of separate\n                            B{C{arg}} and B{C{name}} ones.\n\n           @returns: A C{Degrees} instance.\n\n           @raise Error: Invalid B{C{arg}} or B{C{abs(arg)}} outside the B{C{clip}}\n                         range and L{rangerrors<pygeodesy.rangerrors>} is C{True}.\n        '''\n        if name_arg:\n            name, arg = _NamedUnit._arg_name_arg2(arg, name, **name_arg)\n        try:\n            arg = parseDMS(arg, suffix=suffix, clip=clip)\n            if wrap:\n                _xcallable(wrap=wrap)\n                arg = wrap(arg)\n            self = Float.__new__(cls, arg=arg, name=name, Error=Error)\n        except Exception as x:\n            raise _NamedUnit._Error(cls, arg, name, Error, cause=x)\n        return self\n\n    def toDegrees(self):\n        '''Convert C{Degrees} to C{Degrees}.\n        '''\n        return self\n\n    def toRadians(self):\n        '''Convert C{Degrees} to C{Radians}.\n        '''\n        return Radians(radians(self), name=self.name)\n\n    def toRepr(self, std=False, **prec_fmt_ints):  # PYCHOK prec=8, ...\n        '''Return a representation of this C{Degrees}.\n\n           @kwarg std: If C{True}, return the standard C{repr}, otherwise\n                       the named representation (C{bool}).\n\n           @see: Methods L{Degrees.toStr}, L{Float.toRepr} and function\n                 L{pygeodesy.toDMS} for futher C{prec_fmt_ints} details.\n        '''\n        return Float.toRepr(self, std=std, **prec_fmt_ints)\n\n    def toStr(self, prec=None, fmt=F__F_, ints=False, **s_D_M_S):  # PYCHOK prec=8, ...\n        '''Return this C{Degrees} as standard C{str}.\n\n           @see: Function L{pygeodesy.toDMS} for futher details.\n        '''\n        if fmt.startswith(_PERCENT_):  # use regular formatting\n            p = 8 if prec is None else prec\n            return fstr(self, prec=p, fmt=fmt, ints=ints, sep=self._sep_)\n        else:\n            s = self._suf_[signOf(self) + 1]\n            return _toDMS(self, fmt, prec, self._sep_, self._ddd_, s, s_D_M_S)\n\n\nclass Degrees_(Degrees):\n    '''Named C{Degrees} representing a coordinate in C{degrees} with optional limits C{low} and C{high}.\n    '''\n    def __new__(cls, arg=None, name=_degrees_, low=None, high=None, **suffix_Error_name_arg):\n        '''New, named C{Degrees_}, see  L{Degrees} and L{Float}.\n\n           @arg cls: This class (C{Degrees_} or sub-class).\n           @kwarg arg: The value (any C{type} convertable to C{float} or parsable by\n                       function L{parseDMS<pygeodesy.dms.parseDMS>}).\n           @kwarg name: Optional instance name (C{str}).\n           @kwarg low: Optional lower B{C{arg}} limit (C{float} or C{None}).\n           @kwarg high: Optional upper B{C{arg}} limit (C{float} or C{None}).\n\n           @returns: A named C{Degrees}.\n\n           @raise Error: Invalid B{C{arg}} or B{C{arg}} below B{C{low}} or above B{C{high}}.\n        '''\n        self = Degrees.__new__(cls, arg=arg, name=name, clip=0, **suffix_Error_name_arg)\n        t = _xlimits(self, low, high)\n        if t:\n            raise _NamedUnit._Error(cls, arg, name, txt=t, **suffix_Error_name_arg)\n        return self\n\n\nclass Degrees2(Float):\n    '''Named C{float} representing a distance in C{degrees squared}.\n    '''\n    def __new__(cls, arg=None, name=_degrees2_, **Error_name_arg):\n        '''See L{Float}.\n        '''\n        return Float.__new__(cls, arg=arg, name=name, **Error_name_arg)\n\n\nclass Radians(Float):\n    '''Named C{float} representing a coordinate in C{radians}, optionally clipped.\n    '''\n    def __new__(cls, arg=None, name=_radians_, suffix=_NSEW_, clip=0, Error=UnitError, **name_arg):\n        '''New, named C{Radians}, see L{Float}.\n\n           @arg cls: This class (C{Radians} or sub-class).\n           @kwarg arg: The value (any C{type} convertable to C{float} or parsable by\n                       L{pygeodesy.parseRad}).\n           @kwarg name: Optional instance name (C{str}).\n           @kwarg suffix: Optional, valid compass direction suffixes (C{NSEW}).\n           @kwarg clip: Optional B{C{arg}} range B{C{-clip..+clip}} (C{radians} or C{0}\n                        or C{None} for unclipped).\n           @kwarg Error: Optional error to raise, overriding the default L{UnitError}.\n           @kwarg name_arg: Optional C{name=arg} keyword argument, inlieu of separate\n                            B{C{arg}} and B{C{name}} ones.\n\n           @returns: A named C{Radians}.\n\n           @raise Error: Invalid B{C{arg}} or B{C{abs(arg)}} outside the B{C{clip}}\n                         range and L{rangerrors<pygeodesy.rangerrors>} is C{True}.\n        '''\n        if name_arg:\n            name, arg = _NamedUnit._arg_name_arg2(arg, name, **name_arg)\n        try:\n            arg = parseRad(arg, suffix=suffix, clip=clip)\n            return Float.__new__(cls, arg, name=name, Error=Error)\n        except Exception as x:\n            raise _NamedUnit._Error(cls, arg, name, Error, cause=x)\n\n    def toDegrees(self):\n        '''Convert C{Radians} to C{Degrees}.\n        '''\n        return Degrees(degrees(self), name=self.name)\n\n    def toRadians(self):\n        '''Convert C{Radians} to C{Radians}.\n        '''\n        return self\n\n    def toRepr(self, std=False, **prec_fmt_ints):  # PYCHOK prec=8, ...\n        '''Return a representation of this C{Radians}.\n\n           @kwarg std: If C{True}, return the standard C{repr}, otherwise\n                       the named representation (C{bool}).\n\n           @see: Methods L{Radians.toStr}, L{Float.toRepr} and function\n                 L{pygeodesy.toDMS} for more documentation.\n        '''\n        return Float.toRepr(self, std=std, **prec_fmt_ints)\n\n    def toStr(self, prec=8, fmt=F__F, ints=False):  # PYCHOK prec=8, ...\n        '''Return this C{Radians} as standard C{str}.\n\n           @see: Function L{pygeodesy.fstr} for keyword argument details.\n        '''\n        return fstr(self, prec=prec, fmt=fmt, ints=ints)\n\n\nclass Radians_(Radians):\n    '''Named C{float} representing a coordinate in C{radians} with optional limits C{low} and C{high}.\n    '''\n    def __new__(cls, arg=None, name=_radians_, low=_0_0, high=PI2, **suffix_Error_name_arg):\n        '''New, named C{Radians_}, see L{Radians}.\n\n           @arg cls: This class (C{Radians_} or sub-class).\n           @kwarg arg: The value (any C{type} convertable to C{float} or parsable by\n                       function L{parseRad<pygeodesy.dms.parseRad>}).\n           @kwarg name: Optional name (C{str}).\n           @kwarg low: Optional lower B{C{arg}} limit (C{float} or C{None}).\n           @kwarg high: Optional upper B{C{arg}} limit (C{float} or C{None}).\n\n           @returns: A named C{Radians_}.\n\n           @raise Error: Invalid B{C{arg}} or B{C{arg}} below B{C{low}} or above B{C{high}}.\n        '''\n        self = Radians.__new__(cls, arg=arg, name=name, **suffix_Error_name_arg)\n        t = _xlimits(self, low, high)\n        if t:\n            raise _NamedUnit._Error(cls, arg, name, txt=t, **suffix_Error_name_arg)\n        return self\n\n\nclass Radians2(Float_):\n    '''Named C{float} representing a distance in C{radians squared}.\n    '''\n    def __new__(cls, arg=None, name=_radians2_, **Error_name_arg):\n        '''New, named L{Radians2}, see L{Float_}.\n        '''\n        return Float_.__new__(cls, arg=arg, name=name, low=_0_0, **Error_name_arg)\n\n\ndef _Degrees_new(cls, **arg_name_suffix_clip_Error_name_arg):\n    d =  Degrees.__new__(cls, **arg_name_suffix_clip_Error_name_arg)\n    b = _umod_360(d)  # 0 <= b < 360\n    return d if b == d else Degrees.__new__(cls, arg=b, name=d.name)\n\n\nclass Azimuth(Degrees):\n    '''Named C{float} representing an azimuth in compass C{degrees} from (true) North.\n    '''\n    _ddd_ =  1\n    _suf_ = _W_, S_NUL, _E_  # no zero suffix\n\n    def __new__(cls, arg=None, name=_azimuth_, **clip_Error_name_arg):\n        '''New, named L{Azimuth} with optional suffix 'E' for clockwise or 'W' for\n           anti-clockwise, see L{Degrees}.\n        '''\n        return _Degrees_new(cls, arg=arg, name=name, suffix=_EW_, **clip_Error_name_arg)\n\n\nclass Bearing(Degrees):\n    '''Named C{float} representing a bearing in compass C{degrees} from (true) North.\n    '''\n    _ddd_ =  1\n    _suf_ = _N_ * 3  # always suffix N\n\n    def __new__(cls, arg=None, name=_bearing_, **clip_Error_name_arg):\n        '''New, named L{Bearing}, see L{Degrees}.\n        '''\n        return _Degrees_new(cls, arg=arg, name=name, suffix=_N_, **clip_Error_name_arg)\n\n\nclass Bearing_(Radians):\n    '''Named C{float} representing a bearing in C{radians} from compass C{degrees} from (true) North.\n    '''\n    def __new__(cls, arg=None, **name_clip_Error_name_arg):\n        '''New, named L{Bearing_}, see L{Bearing} and L{Radians}.\n        '''\n        d = Bearing.__new__(cls, arg=arg, **name_clip_Error_name_arg)\n        return Radians.__new__(cls, radians(d), name=d.name)\n\n\nclass Distance(Float):\n    '''Named C{float} representing a distance, conventionally in C{meter}.\n    '''\n    def __new__(cls, arg=None, name=_distance_, **Error_name_arg):\n        '''New, named L{Distance}, see L{Float}.\n        '''\n        return Float.__new__(cls, arg=arg, name=name, **Error_name_arg)\n\n\nclass Distance_(Float_):\n    '''Named C{float} with optional C{low} and C{high} limits representing a distance, conventionally in C{meter}.\n    '''\n    def __new__(cls, arg=None, name=_distance_, **low_high_Error_name_arg):\n        '''New L{Distance_} instance, see L{Float}.\n        '''\n        return Float_.__new__(cls, arg=arg, name=name, **low_high_Error_name_arg)\n\n\nclass _EasNorBase(Float):\n    '''(INTERNAL) L{Easting} and L{Northing} base class.\n    '''\n    def __new__(cls, arg, name, falsed, high, **Error_name_arg):\n        self = Float.__new__(cls, arg=arg, name=name, **Error_name_arg)\n        low  = self < 0\n        if (high is not None) and (low or self > high):  # like Veness\n            t = _negative_ if low else Fmt.limit(above=high)\n        elif low and falsed:\n            t = _COMMASPACE_(_negative_, 'falsed')\n        else:\n            return self\n        raise _NamedUnit._Error(cls, arg, name, txt=t, **Error_name_arg)\n\n\nclass Easting(_EasNorBase):\n    '''Named C{float} representing an easting, conventionally in C{meter}.\n    '''\n    def __new__(cls, arg=None, name=_easting_, falsed=False, high=None, **Error_name_arg):\n        '''New, named C{Easting} or C{Easting of Point}, see L{Float}.\n\n           @arg cls: This class (C{Easting} or sub-class).\n           @kwarg arg: The value (any C{type} convertable to C{float}).\n           @kwarg name: Optional name (C{str}).\n           @kwarg falsed: If C{True}, the B{C{arg}} value is falsed (C{bool}).\n           @kwarg high: Optional upper B{C{arg}} limit (C{scalar} or C{None}).\n\n           @returns: A named C{Easting}.\n\n           @raise Error: Invalid B{C{arg}}, above B{C{high}} or negative, falsed B{C{arg}}.\n        '''\n        return _EasNorBase.__new__(cls, arg, name, falsed, high, **Error_name_arg)\n\n\nclass Epoch(Float_):  # in .ellipsoidalBase, .trf\n    '''Named C{epoch} with optional C{low} and C{high} limits representing a fractional\n       calendar year.\n    '''\n    _std_repr = False\n\n    def __new__(cls, arg=None, name=_epoch_, low=1900, high=9999, Error=TRFError, **name_arg):\n        '''New, named L{Epoch}, see L{Float_}.\n        '''\n        if name_arg:\n            name, arg = _NamedUnit._arg_name_arg2(arg, name, **name_arg)\n        return arg if isinstance(arg, Epoch) else Float_.__new__(cls,\n               arg=arg, name=name, Error=Error, low=low, high=high)\n\n    def toRepr(self, prec=3, std=False, **unused):  # PYCHOK fmt=Fmt.F, ints=True\n        '''Return a representation of this C{Epoch}.\n\n           @kwarg std: Use the standard C{repr} or the named\n                       representation (C{bool}).\n\n           @see: Method L{Float.toRepr} for more documentation.\n        '''\n        return Float_.toRepr(self, prec=prec, std=std)  # fmt=Fmt.F, ints=True\n\n    def toStr(self, prec=3, **unused):  # PYCHOK fmt=Fmt.F, nts=True\n        '''Format this C{Epoch} as C{str}.\n\n           @see: Function L{pygeodesy.fstr} for more documentation.\n        '''\n        return fstr(self, prec=prec, fmt=Fmt.F, ints=True)\n\n    __str__ = toStr  # PYCHOK default '%.3F', with trailing zeros and decimal point\n\n\nclass Feet(Float):\n    '''Named C{float} representing a distance or length in C{feet}.\n    '''\n    def __new__(cls, arg=None, name=_feet_, **Error_name_arg):\n        '''New, named L{Feet}, see L{Float}.\n        '''\n        return Float.__new__(cls, arg=arg, name=name, **Error_name_arg)\n\n\nclass FIx(Float_):\n    '''A named I{Fractional Index}, an C{int} or C{float} index into a C{list}\n       or C{tuple} of C{points}, typically.  A C{float} I{Fractional Index}\n       C{fi} represents a location on the edge between C{points[int(fi)]} and\n       C{points[(int(fi) + 1) % len(points)]}.\n    '''\n    _fin = 0\n\n    def __new__(cls, fi, fin=None, Error=UnitError, **name):\n        '''New, named I{Fractional Index} in a C{list} or C{tuple} of points.\n\n           @arg fi: The fractional index (C{float} or C{int}).\n           @kwarg fin: Optional C{len}, the number of C{points}, the index\n                       C{[n]} wrapped to C{[0]} (C{int} or C{None}).\n           @kwarg Error: Optional error to raise.\n           @kwarg name: Optional C{B{name}=NN} (C{str}).\n\n           @return: A named B{C{fi}} (L{FIx}).\n\n           @note: The returned B{C{fi}} may exceed the B{C{len}}, number of\n                  original C{points} in certain open/closed cases.\n\n           @see: Method L{fractional} or function L{pygeodesy.fractional}.\n        '''\n        _ = _MODS.named._name__(name) if name else NN  # check error\n        n =  Int_(fin=fin, low=0) if fin else None\n        f =  Float_.__new__(cls, fi, low=_0_0, high=n, Error=Error, **name)\n        i =  int(f)\n        r =  f - float(i)\n        if r < EPS:  # see .points._fractional\n            f = Float_.__new__(cls, i, low=_0_0, Error=Error, **name)\n        elif r > EPS1:\n            f = Float_.__new__(cls, i + 1, high=n, Error=Error, **name)\n        if n:  # non-zero and non-None\n            f._fin = n\n        return f\n\n    @Property_RO\n    def fin(self):\n        '''Get the given C{len}, the index C{[n]} wrapped to C{[0]} (C{int}).\n        '''\n        return self._fin\n\n    def fractional(self, points, wrap=None, **LatLon_or_Vector_and_kwds):\n        '''Return the point at this I{Fractional Index}.\n\n           @arg points: The points (C{LatLon}[], L{Numpy2LatLon}[], L{Tuple2LatLon}[] or\n                        C{other}[]).\n           @kwarg wrap: If C{True}, wrap or I{normalize} and unroll the B{C{points}}\n                        (C{bool}) or C{None} for backward compatible L{LatLon2Tuple} or\n                        B{C{LatLon}} with I{averaged} lat- and longitudes.\n           @kwarg LatLon_or_Vector_and_kwds: Optional C{B{LatLon}=None} I{or} C{B{Vector}=None}\n                         to return the I{intermediate}, I{fractional} point and optionally,\n                         additional B{C{LatLon}} I{or} B{C{Vector}} keyword arguments, see\n                         function L{fractional<pygeodesy.points.fractional>}.\n\n           @return: See function L{fractional<pygeodesy.points.fractional>}.\n\n           @raise IndexError: In fractional index invalid or B{C{points}} not\n                              subscriptable or not closed.\n\n           @raise TypeError: Invalid B{C{LatLon}}, B{C{Vector}} or B{C{kwds}} argument.\n\n           @see: Function L{pygeodesy.fractional}.\n        '''\n        # fi = 0 if self == self.fin else self\n        return _MODS.points.fractional(points, self, wrap=wrap, **LatLon_or_Vector_and_kwds)\n\n\ndef _fi_j2(f, n):  # PYCHOK in .ellipsoidalBaseDI, .vector3d\n    # Get 2-tuple (C{fi}, C{j})\n    i = int(f)  # like L{FIx}\n    if not 0 <= i < n:\n        raise _AssertionError(i=i, n=n, f=f, r=f - float(i))\n    return FIx(fi=f, fin=n), (i + 1) % n\n\n\nclass Height(Float):  # here to avoid circular import\n    '''Named C{float} representing a height, conventionally in C{meter}.\n    '''\n    def __new__(cls, arg=None, name=_height_, **Error_name_arg):\n        '''New, named L{Height}, see L{Float}.\n        '''\n        return Float.__new__(cls, arg=arg, name=name, **Error_name_arg)\n\n\nclass Height_(Float_):  # here to avoid circular import\n    '''Named C{float} with optional C{low} and C{high} limits representing a height, conventionally in C{meter}.\n    '''\n    def __new__(cls, arg=None, name=_height_, **low_high_Error_name_arg):\n        '''New, named L{Height}, see L{Float}.\n        '''\n        return Float_.__new__(cls, arg=arg, name=name, **low_high_Error_name_arg)\n\n\nclass HeightX(Height):\n    '''Like L{Height}, used to distinguish the interpolated height\n       from an original L{Height} at a clip intersection.\n    '''\n    pass\n\n\ndef _heigHt(inst, height):\n    '''(INTERNAL) Override the C{inst}ance' height.\n    '''\n    return inst.height if height is None else Height(height)\n\n\nclass Lam(Radians):\n    '''Named C{float} representing a longitude in C{radians}.\n    '''\n    def __new__(cls, arg=None, name=_lam_, clip=PI, **Error_name_arg):\n        '''New, named L{Lam}, see L{Radians}.\n        '''\n        return Radians.__new__(cls, arg=arg, name=name, suffix=_EW_, clip=clip, **Error_name_arg)\n\n\nclass Lamd(Lam):\n    '''Named C{float} representing a longitude in C{radians} converted from C{degrees}.\n    '''\n    def __new__(cls, arg=None, name=_lon_, clip=180, **Error_name_arg):\n        '''New, named L{Lamd}, see L{Lam} and L{Radians}.\n        '''\n        d = Degrees(arg=arg, name=name, clip=clip, **Error_name_arg)\n        return Lam.__new__(cls, radians(d), clip=radians(clip), name=d.name)\n\n\nclass Lat(Degrees):\n    '''Named C{float} representing a latitude in C{degrees}.\n    '''\n    _ddd_ =  2\n    _suf_ = _S_, S_NUL, _N_  # no zero suffix\n\n    def __new__(cls, arg=None, name=_lat_, clip=90, **Error_name_arg):\n        '''New, named L{Lat}, see L{Degrees}.\n        '''\n        return Degrees.__new__(cls, arg=arg, name=name, suffix=_NS_, clip=clip, **Error_name_arg)\n\n\nclass Lat_(Degrees_):\n    '''Named C{float} representing a latitude in C{degrees} within limits C{low} and C{high}.\n    '''\n    _ddd_ =  2\n    _suf_ = _S_, S_NUL, _N_  # no zero suffix\n\n    def __new__(cls, arg=None, name=_lat_, low=-90, high=90, **Error_name_arg):\n        '''See L{Degrees_}.\n        '''\n        return Degrees_.__new__(cls, arg=arg, name=name, suffix=_NS_, low=low, high=high, **Error_name_arg)\n\n\ndef _Lat0(lat):  # in .ellipsods and .triaxials.bases\n    '''(INTERNAL) Get latitude.\n    '''\n    return Lat(lat.degrees0 if _MODS.angles.isAng(lat) else lat)\n\n\nclass Lon(Degrees):\n    '''Named C{float} representing a longitude in C{degrees}.\n    '''\n    _ddd_ =  3\n    _suf_ = _W_, S_NUL, _E_  # no zero suffix\n\n    def __new__(cls, arg=None, name=_lon_, clip=180, **Error_name_arg):\n        '''New, named L{Lon}, see L{Degrees}.\n        '''\n        return Degrees.__new__(cls, arg=arg, name=name, suffix=_EW_, clip=clip, **Error_name_arg)\n\n\nclass Lon_(Degrees_):\n    '''Named C{float} representing a longitude in C{degrees} within limits C{low} and C{high}.\n    '''\n    _ddd_ =  3\n    _suf_ = _W_, S_NUL, _E_  # no zero suffix\n\n    def __new__(cls, arg=None, name=_lon_, low=-180, high=180, **Error_name_arg):\n        '''New, named L{Lon_}, see L{Lon} and L{Degrees_}.\n        '''\n        return Degrees_.__new__(cls, arg=arg, name=name, suffix=_EW_, low=low, high=high, **Error_name_arg)\n\n\nclass Meter(Float):\n    '''Named C{float} representing a distance or length in C{meter}.\n    '''\n    def __new__(cls, arg=None, name=_meter_, **Error_name_arg):\n        '''New, named L{Meter}, see L{Float}.\n        '''\n        return Float.__new__(cls, arg=arg, name=name, **Error_name_arg)\n\n    def __repr__(self):\n        '''Return a representation of this C{Meter}.\n\n           @see: Method C{Str.toRepr} and property C{Str.std_repr}.\n\n           @note: Use C{env} variable C{PYGEODESY_METER_STD_REPR=std} prior to C{import\n                  pygeodesy} to get the standard C{repr} or set property C{std_repr=False}\n                  to always get the named C{toRepr} representation.\n        '''\n        return self.toRepr(std=self._std_repr)\n\n\n# _1Å   = Meter(     _Å= 1e-10)  # PyCHOK 1 Ångstrōm\n_1um    = Meter(   _1um= 1.e-6)  # PYCHOK 1 micrometer in .mgrs\n_10um   = Meter(  _10um= 1.e-5)  # PYCHOK 10 micrometer in .osgr\n_1mm    = Meter(   _1mm=_0_001)  # PYCHOK 1 millimeter in .ellipsoidal...\n_100km  = Meter( _100km= 1.e+5)  # PYCHOK 100 kilometer in .formy, .mgrs, .osgr, .sphericalBase\n_2000km = Meter(_2000km= 2.e+6)  # PYCHOK 2,000 kilometer in .mgrs\n\n\nclass Meter_(Float_):\n    '''Named C{float} representing a distance or length in C{meter}.\n    '''\n    def __new__(cls, arg=None, name=_meter_, low=_0_0, **high_Error_name_arg):\n        '''New, named L{Meter_}, see L{Meter} and L{Float_}.\n        '''\n        return Float_.__new__(cls, arg=arg, name=name, low=low, **high_Error_name_arg)\n\n\nclass Meter2(Float_):\n    '''Named C{float} representing an area in C{meter squared}.\n    '''\n    def __new__(cls, arg=None, name=_meter2_, **Error_name_arg):\n        '''New, named L{Meter2}, see L{Float_}.\n        '''\n        return Float_.__new__(cls, arg=arg, name=name, low=_0_0, **Error_name_arg)\n\n\nclass Meter3(Float_):\n    '''Named C{float} representing a volume in C{meter cubed}.\n    '''\n    def __new__(cls, arg=None, name='meter3', **Error_name_arg):\n        '''New, named L{Meter3}, see L{Float_}.\n        '''\n        return Float_.__new__(cls, arg=arg, name=name, low=_0_0, **Error_name_arg)\n\n\nclass Northing(_EasNorBase):\n    '''Named C{float} representing a northing, conventionally in C{meter}.\n    '''\n    def __new__(cls, arg=None, name=_northing_, falsed=False, high=None, **Error_name_arg):\n        '''New, named C{Northing} or C{Northing of point}, see L{Float}.\n\n           @arg cls: This class (C{Northing} or sub-class).\n           @kwarg arg: The value (any C{type} convertable to C{float}).\n           @kwarg name: Optional name (C{str}).\n           @kwarg falsed: If C{True}, the B{C{arg}} value is falsed (C{bool}).\n           @kwarg high: Optional upper B{C{arg}} limit (C{scalar} or C{None}).\n\n           @returns: A named C{Northing}.\n\n           @raise Error: Invalid B{C{arg}}, above B{C{high}} or negative, falsed B{C{arg}}.\n        '''\n        return _EasNorBase.__new__(cls, arg, name, falsed, high, **Error_name_arg)\n\n\nclass Number_(Int_):\n    '''Named C{int} representing a non-negative number.\n    '''\n    def __new__(cls, arg=None, name=_number_, **low_high_Error_name_arg):\n        '''New, named L{Number_}, see L{Int_}.\n        '''\n        return Int_.__new__(cls, arg=arg, name=name, **low_high_Error_name_arg)\n\n\nclass Phi(Radians):\n    '''Named C{float} representing a latitude in C{radians}.\n    '''\n    def __new__(cls, arg=None, name=_phi_, clip=PI_2, **Error_name_arg):\n        '''New, named L{Phi}, see L{Radians}.\n        '''\n        return Radians.__new__(cls, arg=arg, name=name, suffix=_NS_, clip=clip, **Error_name_arg)\n\n\nclass Phid(Phi):\n    '''Named C{float} representing a latitude in C{radians} converted from C{degrees}.\n    '''\n    def __new__(cls, arg=None, name=_lat_, clip=90, **Error_name_arg):\n        '''New, named L{Phid}, see L{Phi} and L{Radians}.\n        '''\n        d = Degrees(arg=arg, name=name, clip=clip, **Error_name_arg)\n        return Phi.__new__(cls, arg=radians(d), clip=radians(clip), name=d.name)\n\n\nclass Precision_(Int_):\n    '''Named C{int} with optional C{low} and C{high} limits representing a precision.\n    '''\n    def __new__(cls, arg=None, name=_precision_, **low_high_Error_name_arg):\n        '''New, named L{Precision_}, see L{Int_}.\n        '''\n        return Int_.__new__(cls, arg=arg, name=name, **low_high_Error_name_arg)\n\n\nclass Radius_(Float_):\n    '''Named C{float} with optional C{low} and C{high} limits representing a radius, conventionally in C{meter}.\n    '''\n    def __new__(cls, arg=None, name=_radius_, **low_high_Error_name_arg):\n        '''New, named L{Radius_}, see L{Radius} and L{Float}.\n        '''\n        return Float_.__new__(cls, arg=arg, name=name, **low_high_Error_name_arg)\n\n\nclass Scalar(Float):\n    '''Named C{float} representing a factor, fraction, scale, etc.\n    '''\n    def __new__(cls, arg=None, name=_scalar_, **Error_name_arg):\n        '''New, named L{Scalar}, see L{Float}.\n        '''\n        return Float.__new__(cls, arg=arg, name=name, **Error_name_arg)\n\n\nclass Scalar_(Float_):\n    '''Named C{float} with optional C{low} and C{high} limits representing a factor, fraction, scale, etc.\n    '''\n    def __new__(cls, arg=None, name=_scalar_, low=_0_0, **high_Error_name_arg):\n        '''New, named L{Scalar_}, see L{Scalar} and L{Float_}.\n        '''\n        return Float_.__new__(cls, arg=arg, name=name, low=low, **high_Error_name_arg)\n\n\nclass Zone(Int):\n    '''Named C{int} representing a UTM/UPS zone number.\n    '''\n    def __new__(cls, arg=None, name=_zone_, **Error_name_arg):\n        '''New, named L{Zone}, see L{Int}\n        '''\n        # usually low=_UTMUPS_ZONE_MIN, high=_UTMUPS_ZONE_MAX\n        return Int_.__new__(cls, arg=arg, name=name, **Error_name_arg)\n\n\n_Degrees = (Azimuth, Bearing, Bearing_, Degrees, Degrees_)\n_Meters  = (Distance, Distance_, Meter, Meter_)\n_Radians = (Radians, Radians_)  # PYCHOK unused\n_Radii   = _Meters + (Radius, Radius_)\n_ScalarU =  Float, Float_, Scalar, Scalar_\n\n\ndef _isDegrees(obj, iscalar=True):\n    # Check for valid degrees types.\n    return isinstance(obj, _Degrees) or (iscalar and _isScalar(obj))\n\n\ndef _isHeight(obj, iscalar=True):\n    # Check for valid height types.\n    return isinstance(obj, _Meters) or (iscalar and _isScalar(obj))\n\n\ndef _isMeter(obj, iscalar=True):\n    # Check for valid meter types.\n    return isinstance(obj, _Meters) or (iscalar and _isScalar(obj))\n\n\ndef _isRadians(obj, iscalar=True):\n    # Check for valid radian types.\n    return isinstance(obj, _Radians) or (iscalar and _isScalar(obj))\n\n\ndef _isRadius(obj, iscalar=True):\n    # Check for valid earth radius types.\n    return isinstance(obj, _Radii) or (iscalar and _isScalar(obj))\n\n\ndef _isScalar(obj, iscalar=True):\n    # Check for pure scalar types.\n    return isinstance(obj, _ScalarU) or (iscalar and isscalar(obj) and not isinstance(obj, _NamedUnit))\n\n\ndef _toUnit(Unit, arg, name=NN, **Error):\n    '''(INTERNAL) Wrap C{arg} in a C{name}d C{Unit}.\n    '''\n    if not (issubclassof(Unit, _NamedUnit) and isinstance(arg, Unit) and\n                                              _xattr(arg, name=NN) == name):\n        arg = Unit(arg, name=name, **Error)\n    return arg\n\n\ndef _xlimits(arg, low, high, g=False):\n    '''(INTERNAL) Check C{low <= arg <= high}.\n    '''\n    if (low is not None) and (arg < low or isnan(arg)):\n        if g:\n            low = Fmt.g(low, prec=6, ints=isinstance(arg, Epoch))\n        t = Fmt.limit(below=low)\n    elif (high is not None) and (arg > high or isnan(arg)):\n        if g:\n            high = Fmt.g(high, prec=6, ints=isinstance(arg, Epoch))\n        t = Fmt.limit(above=high)\n    else:\n        t = NN\n    return t\n\n\ndef _std_repr(*Classes):\n    '''(INTERNAL) Use standard C{repr} or named C{toRepr}.\n    '''\n    from pygeodesy.internals import _getenv\n    for C in Classes:\n        if hasattr(C, typename(_std_repr)):  # noqa: F821 del\n            env = 'PYGEODESY_%s_STD_REPR' % (typename(C).upper(),)\n            if _getenv(env, _std_).lower() != _std_:\n                C._std_repr = False\n\n_std_repr(Azimuth, Bearing, Bool, Degrees, Epoch, Float, Int, Meter, Radians, Str)  # PYCHOK expected\ndel _std_repr\n\n__all__ += _ALL_DOCS(_NamedUnit)\n\n# **) MIT License\n#\n# Copyright (C) 2016-2026 -- mrJean1 at Gmail -- All Rights Reserved.\n#\n# Permission is hereby granted, free of charge, to any person obtaining a\n# copy of this software and associated documentation files (the \"Software\"),\n# to deal in the Software without restriction, including without limitation\n# the rights to use, copy, modify, merge, publish, distribute, sublicense,\n# and/or sell copies of the Software, and to permit persons to whom the\n# Software is furnished to do so, subject to the following conditions:\n#\n# The above copyright notice and this permission notice shall be included\n# in all copies or substantial portions of the Software.\n#\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL\n# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR\n# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\n# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n# OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "pygeodesy/unitsBase.py",
    "content": "\n# -*- coding: utf-8 -*-\n\nu'''Basic C{Float}, C{Int} and C{Str}ing units classes.\n'''\n\nfrom pygeodesy.basics import _isin, isstr, issubclassof, _xsubclassof,  typename\n# from pygeodesy.constants import isneg0  # _MODS\nfrom pygeodesy.errors import _IsnotError, _UnexpectedError, UnitError, _XError\n# from pygeodesy.internals import typename  # from .basics\nfrom pygeodesy.interns import NN, _degrees_, _degrees2_, _invalid_, _meter_, \\\n                             _radians_, _radians2_, _radius_, _UNDER_, _units_, \\\n                             _std_  # PYCHOK used!\nfrom pygeodesy.lazily import _ALL_DOCS, _ALL_LAZY, _ALL_MODS as _MODS\nfrom pygeodesy.named import modulename, _Named,  property_doc_, property_RO\n# from pygeodesy.props import property_doc_, property_RO  # from .named\nfrom pygeodesy.streprs import Fmt, fstr\n\n__all__ = _ALL_LAZY.unitsBase\n__version__ = '26.02.22'\n\n\nclass _NamedUnit(_Named):\n    '''(INTERNAL) Base class for C{units}.\n    '''\n    _std_repr = True  # set below\n    _units    = None\n\n    def __new__(cls, typ, arg, name, Error=UnitError, **name_arg):\n        '''(INTERNAL) Return a named C{typ.__new__(cls, arg)} instance.\n        '''\n        if name_arg:\n            name, arg = _NamedUnit._arg_name_arg2(arg, name, **name_arg)\n        try:  # assert typ in cls.__mro__\n            self = typ.__new__(cls, arg)\n            if name:\n                self.name = name\n        except Exception as x:\n            raise _NamedUnit._Error(cls, arg, name, Error, cause=x)\n        return self\n\n    @staticmethod\n    def _arg_name_arg2(arg, name=NN, name__=None, **name_arg):  # in .units\n        '''(INTERNAL) Get the 2-tuple C{(name, arg)}.\n        '''\n        if name_arg:\n            if len(name_arg) > 1:\n                raise _UnexpectedError(**name_arg)\n            for name, arg in name_arg.items():  # next(iter(.items()))\n                break\n        elif name:\n            pass\n        elif name__ is not None:\n            name = typename(name__)\n        return name, arg\n\n    @staticmethod  # PYCHOK unused suffix\n    def _Error(cls, arg, name, Error=UnitError, suffix=NN,  # unused\n                                txt=_invalid_, cause=None, **name_arg):\n        '''(INTERNAL) Return a C{_NamedUnit} error with explanation.\n\n           @returns: An B{C{Error}} instance.\n        '''\n        kwds, x = {}, cause\n        if x is not None:  # caught exception\n            if Error is UnitError:  # and isError(x)\n                Error = type(x)  # i.e. not overridden\n            if txt is _invalid_:\n                txt = str(x)  # i.e. not overridden\n            kwds.update(cause=x)\n        if name_arg:\n            try:\n                name, arg = _NamedUnit._arg_name_arg2(arg, name, **name_arg)\n            except Exception:  # ignore, same error?\n                kwds.update(name_arg)\n        n = name if name else modulename(cls).lstrip(_UNDER_)\n        return _XError(Error, n, arg, txt=txt, **kwds)\n\n    @property_doc_(' standard C{repr} or named C{toRepr} representation.')\n    def std_repr(self):\n        '''Get the representation (C{bool}, C{True} means standard).\n        '''\n        return self._std_repr\n\n    @std_repr.setter  # PYCHOK setter!\n    def std_repr(self, std):\n        '''Set the representation (C{True} or C{\"std\"} for standard).\n        '''\n        self._std_repr = _isin(std, True, _std_)\n\n    def _toRepr(self, value):\n        '''(INTERNAL) Representation \"<name> (<value>)\" or \"<classname>(<value>)\".\n        '''\n        return Fmt.PARENSPACED(self.name, value) if self.name else \\\n               Fmt.PAREN( self.classname, value)\n\n    @property_doc_(' units name.')\n    def units(self):\n        '''Get the units name (C{str}).\n        '''\n        if self._units is None:\n            self._units = self.classname\n        return self._units\n\n    @units.setter  # PYCHOK setter!\n    def units(self, units):\n        '''Set the units name for this instance (C{str} or C{None} for default).\n        '''\n        self._units = None if units is None else str(units)\n\n\nclass Float(float, _NamedUnit):\n    '''Named C{float}.\n    '''\n    # _std_repr = True  # set below\n\n    def __new__(cls, arg=None, name=NN, **Error_name_arg):\n        '''New, named C{Ffloat}.\n\n           @kwarg arg: The value (any C{type} acceptable to C{float}).\n           @kwarg name: Optional name (C{str}).\n           @kwarg Error_name_arg: Optional C{B{Error}=UnitError} to raise\n                        and optional C{name=arg} keyword argument, inlieu\n                        of separate B{C{arg}} and B{C{name}} ones.\n\n           @returns: A named C{Float}.\n\n           @raise Error: Invalid B{C{arg}}.\n        '''\n        return _NamedUnit.__new__(cls, float, arg, name, **Error_name_arg)\n\n    def __repr__(self):  # to avoid MRO(float)\n        '''Return a representation of this C{Float}.\n\n           @see: Method C{Float.toRepr} and property C{Float.std_repr}.\n\n           @note: Use C{env} variable C{PYGEODESY_FLOAT_STD_REPR=std} prior\n                  to C{import pygeodesy} to get the standard C{repr} or set\n                  property C{std_repr=False} to always get the named C{toRepr}\n                  representation.\n        '''\n        return self.toRepr(std=self._std_repr)\n\n    def __str__(self):  # to avoid MRO(float)\n        '''Return this C{Float} as standard C{str}.\n        '''\n        # must use super(Float, self)... since super()... only works\n        # for Python 3+ and float.__str__(self) invokes .__repr__(self);\n        # calling self.toRepr(std=True) super(Float, self).__repr__()\n        # mimicks this bhavior\n\n        # XXX the default number of decimals is 10-12 when using\n        # float.__str__(self) with both python 3.8+ and 2.7-, but\n        # float.__repr__(self) shows DIG decimals in python2.7!\n        # return super(Float, self).__repr__()  # see .testCss.py\n        return float.__str__(self)  # always _std_str_\n\n    @property_RO\n    def isneg0(self):\n        '''Is this value L{NEG0<pygeodesy.NEG0>}, C{-0.0} or C{-0}? (C{bool}).\n        '''\n        return _MODS.constants.isneg0(self)\n\n    def toRepr(self, std=False, **prec_fmt_ints):  # PYCHOK prec=8, ...\n        '''Return a representation of this C{Float}.\n\n           @kwarg std: If C{True}, return the standard C{repr},\n                       otherwise the named representation (C{bool}).\n\n           @see: Function L{fstr<pygeodesy.streprs.fstr>} and methods\n                 L{Float.__repr__}, L{Float.toStr} for further details.\n        '''\n        # must use super(Float, self)... since super()... only works for\n        # Python 3+; return super(Float, self).__repr__() if std else \\\n        return float.__repr__(self) if std else \\\n               self._toRepr(self.toStr(**prec_fmt_ints))\n\n    def toStr(self, prec=12, fmt=Fmt.g, ints=False):  # PYCHOK prec=8, ...\n        '''Format this C{Float} as C{str}.\n\n           @see: Function L{fstr<pygeodesy.streprs.fstr>} and method\n                 L{Float.__repr__} and for further information.\n        '''\n        return fstr(self, prec=prec, fmt=fmt, ints=ints)\n\n\nclass Int(int, _NamedUnit):\n    '''Named C{int}.\n    '''\n    # _std_repr = True  # set below\n\n    def __new__(cls, arg=None, name=NN, **Error_name_arg):\n        '''New, named C{Int}.\n\n           @kwarg arg: The value (any C{type} acceptable to C{int}).\n           @kwarg name: Optional name (C{str}).\n           @kwarg Error_name_arg: Optional C{B{Error}=UnitError} to raise\n                        and optional C{name=arg} keyword argument, inlieu\n                        of separate B{C{arg}} and B{C{name}} ones.\n\n           @returns: A named C{Int}.\n\n           @raise Error: Invalid B{C{arg}}.\n        '''\n        return _NamedUnit.__new__(cls, int, arg, name, **Error_name_arg)\n\n    def __repr__(self):  # to avoid MRO(int)\n        '''Return a representation of this named C{int}.\n\n           @see: Method C{Int.toRepr} and property C{Int.std_repr}.\n\n           @note: Use C{env} variable C{PYGEODESY_INT_STD_REPR=std}\n                  prior to C{import pygeodesy} to get the standard\n                  C{repr} or set property C{std_repr=False} to always\n                  get the named C{toRepr} representation.\n        '''\n        return self.toRepr(std=self._std_repr)\n\n    def __str__(self):  # to avoid MRO(int)\n        '''Return this C{Int} as standard C{str}.\n        '''\n        return self.toStr()\n\n    def toRepr(self, std=False, **unused):  # PYCHOK **unused\n        '''Return a representation of this C{Int}.\n\n           @kwarg std: If C{True}, return the standard C{repr},\n                       otherwise the named representation (C{bool}).\n\n           @see: Method L{Int.__repr__} for more documentation.\n        '''\n        r = int.__repr__(self)  # self.toStr()\n        return r if std else self._toRepr(r)\n\n    def toStr(self, **unused):  # PYCHOK **unused\n        '''Return this C{Int} as standard C{str}.\n\n           @see: Method L{Int.__repr__} for more documentation.\n        '''\n        # XXX must use '%d' % (self,) since\n        # int.__str__(self) fails with 3.8+\n        return '%d' % (self,)\n\n\nclass Radius(Float):\n    '''Named C{float} representing a radius, conventionally in C{meter}.\n    '''\n    def __new__(cls, arg=None, name=_radius_, **Error_name_arg):\n        '''New L{Radius} instance, see L{Float}.\n        '''\n        return Float.__new__(cls, arg=arg, name=name, **Error_name_arg)\n\n\nclass Str(str, _NamedUnit):\n    '''Named, callable C{str}.\n    '''\n    # _std_repr = True  # set below\n\n    def __new__(cls, arg=None, name=NN, **Error_name_arg):\n        '''New, named and callable C{Str}.\n\n           @kwarg cls: This class (C{Str} or sub-class).\n           @kwarg arg: The value (any C{type} acceptable to C{str}).\n           @kwarg name: Optional name (C{str}).\n           @kwarg Error_name_arg: Optional C{B{Error}=UnitError} to raise\n                        and optional C{name=arg} keyword argument, inlieu\n                        of separate B{C{arg}} and B{C{name}} ones.\n\n           @returns: A named L{Str}.\n\n           @raise Error: Invalid B{C{arg}}.\n\n           @see: Callable, not nameable class L{Str_<pygeodesy.interns.Str_>}.\n        '''\n        return _NamedUnit.__new__(cls, str, arg, name, **Error_name_arg)\n\n    def __repr__(self):\n        '''Return a representation of this C{Str}.\n\n           @see: Method C{Str.toRepr} and property C{Str.std_repr}.\n\n           @note: Use C{env} variable C{PYGEODESY_STR_STD_REPR=std}\n                  prior to C{import pygeodesy} to get the standard\n                  C{repr} or set property C{std_repr=False} to always\n                  get the named C{toRepr} representation.\n        '''\n        return self.toRepr(std=self._std_repr)  # see .test/testGars.py\n\n    def __str__(self):\n        '''Return this C{Str} as standard C{str}.\n        '''\n        return self.toStr()\n\n    def join_(self, *args, **name_Error):\n        '''Join all positional B{C{args}} like C{self.join(B{args})}.\n\n           @return: All B{C{args}} joined by this instance (L{Str_}).\n\n           @note: An other L{Str} instance is returned to make the\n                  result re-callable.\n        '''\n        return Str(str.join(self, map(str, args)), **name_Error)  # re-callable\n\n    __call__ = join_\n\n    def toRepr(self, std=False, **unused):  # PYCHOK **unused\n        '''Return a representation of this C{Str}.\n\n           @kwarg std: If C{True}, return the standard C{repr},\n                       otherwise the named representation (C{bool}).\n\n           @see: Method L{Str.__repr__} for more documentation.\n        '''\n        # must use super(Str, self)... since super()... only works\n        # for Python 3+ and str.__repr__(self) fails in Python 3.8+\n        r = super(Str, self).__repr__()\n        return r if std else self._toRepr(r)\n\n    def toStr(self, **unused):  # PYCHOK **unused\n        '''Return this C{Str} as standard C{str}.\n        '''\n        # must use super(Str, self)... since super()... only works\n        # for Python 3+ and str.__repr__(self) fails in Python 3.8+\n        return super(Str, self).__str__()\n\n\n_Str_degrees  = Str(_degrees_)   # PYCHOK in .frechet, .hausdorff\n_Str_degrees2 = Str(_degrees2_)  # PYCHOK in .frechet, .hausdorff\n_Str_meter    = Str(_meter_)     # PYCHOK in .frechet, .hausdorff\n_Str_NN       = Str(NN)          # PYCHOK in .frechet, .hausdorff\n_Str_radians  = Str(_radians_)   # PYCHOK in .frechet, .hausdorff\n_Str_radians2 = Str(_radians2_)  # PYCHOK in .frechet, .hausdorff\n\n\ndef _xUnit(units, Base):  # PYCHOK in .frechet,  .hausdorff\n    '''(INTERNAL) Get C{Unit} from C{units} or C{name}, ortherwise C{Base}.\n    '''\n    _xsubclassof(_NamedUnit, Base=Base)\n    U = getattr(_MODS, units.capitalize(), Base) if isstr(units) else units\n    return U if issubclassof(U, Base) else Base\n\n\ndef _xUnits(units, Base=_NamedUnit):  # in .frechet, .hausdorff\n    '''(INTERNAL) Set property C{units} as C{Unit} or C{Str}.\n    '''\n    _xsubclassof(_NamedUnit, Base=Base)\n    if issubclassof(units, Base):\n        U = units\n    elif isstr(units):\n        U = Str(units, name=_units_)  # XXX Str to _Pass and for backward compatibility\n    else:\n        raise _IsnotError(Base, Str, str, units=units)\n    return U\n\n\n__all__ += _ALL_DOCS(_NamedUnit)\n\n# **) MIT License\n#\n# Copyright (C) 2016-2026 -- mrJean1 at Gmail -- All Rights Reserved.\n#\n# Permission is hereby granted, free of charge, to any person obtaining a\n# copy of this software and associated documentation files (the \"Software\"),\n# to deal in the Software without restriction, including without limitation\n# the rights to use, copy, modify, merge, publish, distribute, sublicense,\n# and/or sell copies of the Software, and to permit persons to whom the\n# Software is furnished to do so, subject to the following conditions:\n#\n# The above copyright notice and this permission notice shall be included\n# in all copies or substantial portions of the Software.\n#\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL\n# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR\n# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\n# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n# OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "pygeodesy/ups.py",
    "content": "\n# -*- coding: utf-8 -*-\n\nu'''I{Karney}'s Universal Polar Stereographic (UPS) projection.\n\nClasses L{Ups} and L{UPSError} and functions L{parseUPS5}, L{toUps8} and L{upsZoneBand5}.\n\nA pure Python implementation, partially transcoded from I{Karney}'s C++ class U{PolarStereographic\n<https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1PolarStereographic.html>}.\n\nThe U{UPS<https://WikiPedia.org/wiki/Universal_polar_stereographic_coordinate_system>} system is used\nin conjuction with U{UTM<https://WikiPedia.org/wiki/Universal_Transverse_Mercator_coordinate_system>}\nfor locations on the polar regions of the earth.  UPS covers areas south of 79.5°S and north of 83.5°N,\nslightly overlapping the UTM range from 80°S to 84°N by 30' at each end.\n\nEnv variable C{PYGEODESY_UPS_POLES} determines the UPS zones I{at} latitude 90°S and 90°N.  By default,\nthe encoding follows I{Karney}'s and U{Appendix B-3 of DMA TM8358.1<https://Web.Archive.org/web/\n20161226192038/http://earth-info.nga.mil/GandG/publications/tm8358.1/pdf/TM8358_1.pdf>}, using only\nzones C{'B'} respectively C{'Z'} and digraph C{'AN'}.  If C{PYGEODESY_UPS_POLES} is set to anything\nother than C{\"std\"}, zones C{'A'} and C{'Y'} are used for negative, west longitudes I{at} latitude\n90°S respectively 90°N (for backward compatibility).\n'''\n\n# from pygeodesy.basics import neg as _neg  # from .dms\nfrom pygeodesy.constants import EPS, EPS0, _EPSmin as _Tol90, _K0_UPS, \\\n                                isnear90, _0_0, _0_5, _1_0, _2_0\nfrom pygeodesy.datums import _ellipsoidal_datum, _WGS84\nfrom pygeodesy.dms import degDMS, _neg, parseDMS2\nfrom pygeodesy.errors import RangeError, _ValueError, _xkwds_pop2\nfrom pygeodesy.fmath import hypot, hypot1, sqrt0\nfrom pygeodesy.internals import _envPYGEODESY, _under\nfrom pygeodesy.interns import NN, _COMMASPACE_, _inside_, _N_, \\\n                             _pole_, _range_, _S_, _scale0_, \\\n                             _SPACE_, _std_, _to_, _UTM_\n# from pygeodesy.lazily import _ALL_LAZY, _ALL_MODS as _MODS  # from .named\nfrom pygeodesy.named import nameof,  _ALL_LAZY, _MODS\nfrom pygeodesy.namedTuples import EasNor2Tuple, UtmUps5Tuple, \\\n                                  UtmUps8Tuple, UtmUpsLatLon5Tuple\nfrom pygeodesy.props import deprecated_method, property_doc_, \\\n                            Property_RO, _update_all\n# from pygeodesy.streprs import Fmt  # from .utmupsBase\nfrom pygeodesy.units import Float, Float_, Meter, Lat\nfrom pygeodesy.utily import atan1d, atan2, degrees180, sincos2d\nfrom pygeodesy.utmupsBase import Fmt, _LLEB, _hemi, _parseUTMUPS5, _to4lldn, \\\n                                _to3zBhp, _to3zll, _UPS_BANDS as _Bands, \\\n                                _UPS_LAT_MAX, _UPS_LAT_MIN, _UPS_ZONE, \\\n                                _UPS_ZONE_STR, UtmUpsBase\n\nfrom math import fabs, radians, tan  # as _tan\n\n__all__ = _ALL_LAZY.ups\n__version__ = '25.04.14'\n\n_BZ_UPS  = _envPYGEODESY('UPS_POLES', _std_) == _std_\n_Falsing =  Meter(2000e3)  # false easting and northing (C{meter})\n_K1_UPS  =  Float(_K1_UPS=_1_0)    # rescale point scale factor\n\n\nclass UPSError(_ValueError):\n    '''Universal Polar Stereographic (UPS) parse or other L{Ups} issue.\n    '''\n    pass\n\n\nclass Ups(UtmUpsBase):\n    '''Universal Polar Stereographic (UPS) coordinate.\n    '''\n#   _band   =  NN        # polar band ('A', 'B', 'Y' or 'Z')\n    _Bands  = _Bands     # polar Band letters (C{tuple})\n    _Error  =  UPSError  # Error class\n    _pole   =  NN        # UPS projection top/center ('N' or 'S')\n#   _scale  =  None      # point scale factor (C{scalar})\n    _scale0 = _K0_UPS    # central scale factor (C{scalar})\n\n    def __init__(self, zone=0, pole=_N_, easting=_Falsing,  # PYCHOK expected\n                                         northing=_Falsing, band=NN, datum=_WGS84,\n                                         falsed=True, gamma=None, scale=None,\n                                       **name_convergence):\n        '''New L{Ups} UPS coordinate.\n\n           @kwarg zone: UPS zone (C{int}, zero) or zone with/-out I{polar} Band\n                        letter (C{str}, '00', '00A', '00B', '00Y' or '00Z').\n           @kwarg pole: Top/center of (stereographic) projection (C{str},\n                        C{'N[orth]'} or C{'S[outh]'}).\n           @kwarg easting: Easting, see B{C{falsed}} (C{meter}).\n           @kwarg northing: Northing, see B{C{falsed}} (C{meter}).\n           @kwarg band: Optional, I{polar} Band (C{str}, 'A'|'B'|'Y'|'Z').\n           @kwarg datum: Optional, this coordinate's datum (L{Datum},\n                         L{Ellipsoid}, L{Ellipsoid2} or L{a_f2Tuple}).\n           @kwarg falsed: If C{True}, both B{C{easting}} and B{C{northing}} are\n                          falsed (C{bool}).\n           @kwarg gamma: Optional meridian convergence, bearing off grid North,\n                         clockwise from true North to save (C{degrees}) or C{None}.\n           @kwarg scale: Optional grid scale factor to save (C{scalar}) or C{None}.\n           @kwarg name_convergence: Optional C{B{name}=NN} (C{str}) and DEPRECATED\n                       keyword argument C{B{convergence}=None}, use B{C{gamma}}.\n\n           @raise TypeError: Invalid B{C{datum}}.\n\n           @raise UPSError: Invalid B{C{zone}}, B{C{pole}}, B{C{easting}},\n                            B{C{northing}}, B{C{band}}, B{C{convergence}}\n                            or B{C{scale}}.\n        '''\n        if name_convergence:\n            gamma, name = _xkwds_pop2(name_convergence, convergence=gamma)\n            if name:\n                self.name = name\n        try:\n            z, B, self._pole = _to3zBhp(zone, band, hemipole=pole)\n            if z != _UPS_ZONE or (B and (B not in _Bands)):\n                raise ValueError\n        except (TypeError, ValueError) as x:\n            raise UPSError(zone=zone, pole=pole, band=band, cause=x)\n\n        UtmUpsBase.__init__(self, easting, northing, band=B, datum=datum, falsed=falsed,\n                                                             gamma=gamma, scale=scale)\n\n    def __eq__(self, other):\n        return isinstance(other, Ups) and other.zone     == self.zone \\\n                                      and other.pole     == self.pole \\\n                                      and other.easting  == self.easting \\\n                                      and other.northing == self.northing \\\n                                      and other.band     == self.band \\\n                                      and other.datum    == self.datum\n\n    @property_doc_(''' the I{polar} band.''')\n    def band(self):\n        '''Get the I{polar} band (C{'A'|'B'|'Y'|'Z'}).\n        '''\n        if not self._band:\n            self._toLLEB()\n        return self._band\n\n    @band.setter  # PYCHOK setter!\n    def band(self, band):\n        '''Set or reset the I{polar} band letter (C{'A'|'B'|'Y'|'Z'})\n           or C{None} or C{\"\"} to reset.\n\n           @raise TypeError: Invalid B{C{band}}.\n\n           @raise ValueError: Invalid B{C{band}}.\n        '''\n        self._band1(band)\n\n    @Property_RO\n    def falsed2(self):\n        '''Get the easting and northing falsing (L{EasNor2Tuple}C{(easting, northing)}).\n        '''\n        f = _Falsing if self.falsed else 0\n        return EasNor2Tuple(f, f)\n\n    def parse(self, strUPS, **name):\n        '''Parse a string to a similar L{Ups} instance.\n\n           @arg strUPS: The UPS coordinate (C{str}), see function L{parseUPS5}.\n           @kwarg name: Optional C{B{name}=NN} (C{str}), overriding this name.\n\n           @return: The similar instance (L{Ups}).\n\n           @raise UTMError: Invalid B{C{strUPS}}.\n\n           @see: Functions L{parseUTM5} and L{pygeodesy.parseUTMUPS5}.\n        '''\n        return parseUPS5(strUPS, datum=self.datum, Ups=self.classof,\n                                  name=self._name__(name))\n\n    @deprecated_method\n    def parseUPS(self, strUPS):  # PYCHOK no cover\n        '''DEPRECATED, use method L{parse}.'''\n        return self.parse(strUPS)\n\n    @Property_RO\n    def pole(self):\n        '''Get the top/center of (stereographic) projection (C{'N'|'S'} or C{\"\"}).\n        '''\n        return self._pole\n\n    def rescale0(self, lat, scale0=_K0_UPS):\n        '''Set the central scale factor for this UPS projection.\n\n           @arg lat: Northern latitude (C{degrees}).\n           @arg scale0: UPS k0 scale at B{C{lat}} latitude (C{scalar}).\n\n           @raise RangeError: If B{C{lat}} outside the valid range and\n                              L{rangerrors<pygeodesy.rangerrors>} is C{True}.\n\n           @raise UPSError: Invalid B{C{scale}}.\n        '''\n        s0 = Float_(scale0=scale0, Error=UPSError, low=EPS)  # <= 1.003 or 1.0016?\n        u  = toUps8(fabs(Lat(lat)), _0_0, datum=self.datum, Ups=_Ups_K1)\n        k  = s0 / u.scale\n        if self.scale0 != k:\n            _update_all(self)\n            self._band = NN  # force re-compute\n            self._latlon = self._utm = None\n            self._scale0 = Float(scale0=k)\n\n    def toLatLon(self, LatLon=None, unfalse=True, **LatLon_kwds):\n        '''Convert this UPS coordinate to an (ellipsoidal) geodetic point.\n\n           @kwarg LatLon: Optional, ellipsoidal class to return the\n                          geodetic point (C{LatLon}) or C{None}.\n           @kwarg unfalse: Unfalse B{C{easting}} and B{C{northing}}\n                           if falsed (C{bool}).\n           @kwarg LatLon_kwds: Optional, additional B{C{LatLon}} keyword\n                               arguments, ignored if C{B{LatLon} is None}.\n\n           @return: This UPS coordinate (B{C{LatLon}}) or if C{B{LatLon}\n                    is None}, a L{LatLonDatum5Tuple}C{(lat, lon, datum,\n                    gamma, scale)}.\n\n           @raise TypeError: If B{C{LatLon}} is not ellipsoidal.\n\n           @raise UPSError: Invalid meridional radius or H-value.\n        '''\n        if self._latlon and self._latlon._toLLEB_args == (unfalse,):\n            return self._latlon5(LatLon)\n        else:\n            self._toLLEB(unfalse=unfalse)\n            return self._latlon5(LatLon, **LatLon_kwds)\n\n    def _toLLEB(self, unfalse=True):  # PYCHOK signature\n        '''(INTERNAL) Compute (ellipsoidal) lat- and longitude.\n        '''\n        E = self.datum.ellipsoid  # XXX vs LatLon.datum.ellipsoid\n\n        x, y = self.eastingnorthing2(falsed=not unfalse)\n\n        r = hypot(x, y)\n        t = (r * E.es_c / (self.scale0 * E.a * _2_0)) if r > 0 else EPS0\n        t = E.es_tauf(_0_5 / t - _0_5 * t)\n        a = atan1d(t)\n        if self._pole == _N_:\n            b, g    = atan2(x, -y), 1\n        else:\n            b, g, a = atan2(x, y), -1, _neg(a)\n        ll = _LLEB(a, degrees180(b), datum=self._datum, name=self.name)\n\n        k  = _scale(E, r, t) if r > 0 else self.scale0\n        self._latlon5args(ll, g * b, k, _toBand, unfalse)\n\n    def toRepr(self, prec=0, fmt=Fmt.SQUARE, sep=_COMMASPACE_, B=False, cs=False, **unused):  # PYCHOK expected\n        '''Return a string representation of this UPS coordinate.\n\n           Note that UPS coordinates are rounded, not truncated (unlike\n           MGRS grid references).\n\n           @kwarg prec: Number of (decimal) digits, unstripped (C{int}).\n           @kwarg fmt: Enclosing backets format (C{str}).\n           @kwarg sep: Optional separator between name:value pairs (C{str}).\n           @kwarg B: Optionally, include polar band letter (C{bool}).\n           @kwarg cs: Optionally, include gamma meridian convergence and\n                      point scale factor (C{bool} or non-zero C{int} to\n                      specify the precison like B{C{prec}}).\n\n           @return: This UPS as a string with C{00[Band] pole, easting,\n                    northing, [convergence, scale]} as C{\"[Z:00[Band],\n                    P:N|S, E:meter, N:meter]\"} plus C{\", C:DMS, S:float\"}\n                    if C{B{cs} is True}, where C{[Band]} is present and\n                    C{'A'|'B'|'Y'|'Z'} only if C{B{B} is True} and\n                    convergence C{DMS} is in I{either} degrees, minutes\n                    I{or} seconds (C{str}).\n\n           @note: Pseudo zone zero (C{\"00\"}) for UPS follows I{Karney}'s U{zone UPS\n                  <https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1UTMUPS.html>}.\n        '''\n        return self._toRepr(fmt, B, cs, prec, sep)\n\n    def toStr(self, prec=0, sep=_SPACE_, B=False, cs=False):  # PYCHOK expected\n        '''Return a string representation of this UPS coordinate.\n\n           Note that UPS coordinates are rounded, not truncated (unlike\n           MGRS grid references).\n\n           @kwarg prec: Number of (decimal) digits, unstripped (C{int}).\n           @kwarg sep: Optional separator to join (C{str}) or C{None}\n                       to return an unjoined C{tuple} of C{str}s.\n           @kwarg B: Optionally, include and polar band letter (C{bool}).\n           @kwarg cs: Optionally, include gamma meridian convergence and\n                      point scale factor (C{bool} or non-zero C{int} to\n                      specify the precison like B{C{prec}}).\n\n           @return: This UPS as a string with C{00[Band] pole, easting,\n                    northing, [convergence, scale]} as C{\"00[B] N|S\n                    meter meter\"} plus C{\" DMS float\"} if B{C{cs}} is C{True},\n                    where C{[Band]} is present and C{'A'|'B'|'Y'|'Z'} only\n                    if B{C{B}} is C{True} and convergence C{DMS} is in\n                    I{either} degrees, minutes I{or} seconds (C{str}).\n\n           @note: Zone zero (C{\"00\"}) for UPS follows I{Karney}'s U{zone UPS\n                  <https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1UTMUPS.html>}.\n        '''\n        return self._toStr(self.pole, B, cs, prec, sep)  # PYCHOK pole\n\n    def toUps(self, pole=NN, **unused):\n        '''Duplicate this UPS coordinate.\n\n           @kwarg pole: Optional top/center of the UPS projection,\n                        (C{str}, 'N[orth]'|'S[outh]').\n\n           @return: A copy of this UPS coordinate (L{Ups}).\n\n           @raise UPSError: Invalid B{C{pole}} or attempt to transfer\n                            the projection top/center.\n        '''\n        if self.pole == pole or not pole:\n            return self.copy()\n        t = _SPACE_(_pole_, repr(self.pole), _to_, repr(pole))\n        raise UPSError('no transfer', txt=t)\n\n    def toUtm(self, zone, falsed=True, **unused):\n        '''Convert this UPS coordinate to a UTM coordinate.\n\n           @arg zone: The UTM zone (C{int}).\n           @kwarg falsed: False both easting and northing (C{bool}).\n\n           @return: The UTM coordinate (L{Utm}).\n        '''\n        u = self._utm\n        if u is None or u.zone != zone or falsed != bool(u.falsed):\n            ll  =  self.toLatLon(LatLon=None, unfalse=True)\n            utm = _MODS.utm\n            self._utm = u = utm.toUtm8(ll, Utm=utm.Utm, falsed=falsed,\n                                           name=self.name, zone=zone)\n        return u\n\n    @Property_RO\n    def zone(self):\n        '''Get the polar pseudo zone (C{0}), like I{Karney}'s U{zone UPS<https://\n           GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1UTMUPS.html>}.\n        '''\n        return _UPS_ZONE\n\n\nclass _Ups_K1(Ups):\n    '''(INTERNAL) For method L{Ups.rescale0}.\n    '''\n    _scale0 = _K1_UPS\n\n\ndef parseUPS5(strUPS, datum=_WGS84, Ups=Ups, falsed=True, **name):\n    '''Parse a string representing a UPS coordinate, consisting of\n       C{\"[zone][band] pole easting northing\"} where B{C{zone}} is\n       pseudo zone C{\"00\"|\"0\"|\"\"} and C{band} is C{'A'|'B'|'Y'|'Z'|''}.\n\n       @arg strUPS: A UPS coordinate (C{str}).\n       @kwarg datum: Optional datum to use (L{Datum}).\n       @kwarg Ups: Optional class to return the UPS coordinate (L{Ups})\n                   or C{None}.\n       @kwarg falsed: If C{True}, both B{C{easting}} and B{C{northing}}\n                      are falsed (C{bool}).\n       @kwarg name: Optional B{C{Ups}} C{B{name}=NN} (C{str}).\n\n       @return: The UPS coordinate (B{C{Ups}}) or if C{B{Ups} is None}, a\n                L{UtmUps5Tuple}C{(zone, hemipole, easting, northing, band)}.\n                The C{hemipole} is the C{'N'|'S'} pole, the UPS projection\n                top/center.\n\n       @raise UPSError: Invalid B{C{strUPS}}.\n    '''\n    z, p, e, n, B = _parseUTMUPS5(strUPS, _UPS_ZONE_STR, Error=UPSError)\n    if z != _UPS_ZONE or (B and B not in _Bands):\n        raise UPSError(strUPS=strUPS, zone=z, band=B)\n\n    r = UtmUps5Tuple(z, p, e, n, B, Error=UPSError, **name) if Ups is None \\\n            else Ups(z, p, e, n, band=B, falsed=falsed, datum=datum, **name)\n    return r\n\n\ndef _scale(E, rho, tau):\n    # compute the point scale factor, ala Karney\n    t = hypot1(tau)\n    return Float(scale=(rho / E.a) * t * sqrt0(E.e21 + E.e2 / t**2))\n\n\ndef _toBand(lat, lon):  # see utm._toBand\n    '''(INTERNAL) Get the I{polar} Band letter for a (lat, lon).\n    '''\n    return _Bands[(0 if lat < 0 else 2) + (0 if -180 < lon < 0 else 1)]\n\n\ndef toUps8(latlon, lon=None, datum=None, Ups=Ups, pole=NN,\n                             falsed=True, strict=True, **name):\n    '''Convert a lat-/longitude point to a UPS coordinate.\n\n       @arg latlon: Latitude (C{degrees}) or an (ellipsoidal) geodetic\n                    C{LatLon} point.\n       @kwarg lon: Optional longitude (C{degrees}) or C{None} if\n                   B{C{latlon}} is a C{LatLon}.\n       @kwarg datum: Optional datum for this UPS coordinate, overriding\n                     B{C{latlon}}'s datum (C{Datum}, L{Ellipsoid},\n                     L{Ellipsoid2} or L{a_f2Tuple}).\n       @kwarg Ups: Optional class to return the UPS coordinate (L{Ups})\n                   or C{None}.\n       @kwarg pole: Optional top/center of (stereographic) projection\n                    (C{str}, C{'N[orth]'} or C{'S[outh]'}).\n       @kwarg falsed: If C{True}, false both easting and northing (C{bool}).\n       @kwarg strict: Restrict B{C{lat}} to UPS ranges (C{bool}).\n       @kwarg name: Optional B{C{Ups}} C{B{name}=NN} (C{str}).\n\n       @return: The UPS coordinate (B{C{Ups}}) or if C{B{Ups} is None}, a\n                L{UtmUps8Tuple}C{(zone, hemipole, easting, northing, band,\n                datum, gamma, scale)} where C{hemipole} is the C{'N'|'S'}\n                pole, the UPS projection top/center.\n\n       @raise RangeError: If B{C{strict}} and B{C{lat}} outside the valid UPS bands\n                          or if B{C{lat}} or B{C{lon}} outside the valid range and\n                          L{rangerrors<pygeodesy.rangerrors>} is C{True}.\n\n       @raise TypeError: If B{C{latlon}} is not ellipsoidal or if B{C{datum}} is invalid.\n\n       @raise ValueError: If B{C{lon}} value is missing or if B{C{latlon}} is invalid.\n\n       @see: I{Karney}'s C++ class U{UPS\n             <https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1UPS.html>}.\n    '''\n    lat, lon, d, name = _to4lldn(latlon, lon, datum, name)\n    z, B, p, lat, lon = upsZoneBand5(lat, lon, strict=strict)  # PYCHOK UtmUpsLatLon5Tuple\n\n    d = _ellipsoidal_datum(d, name=name)\n    E = d.ellipsoid\n\n    p = str(pole or p)[:1].upper()\n    S = p == _S_  # at south[pole]\n\n    a = -lat if S else lat\n    P = isnear90(a, eps90=_Tol90)  # at pole\n\n    t = tan(radians(a))\n    T = E.es_taupf(t)\n    r = (hypot1(T) - T) if T < 0 else (_0_0 if P else _1_0 /\n        (hypot1(T) + T))\n\n    k0 = getattr(Ups, _under(_scale0_), _K0_UPS)  # Ups is class or None\n    r *= k0 * E.a * _2_0 / E.es_c\n\n    k  = k0 if P else _scale(E, r, t)\n    g  = lon  # [-180, 180) from .upsZoneBand5\n    x, y = sincos2d(g)\n    x *= r\n    y *= r\n    if S:\n        g = _neg(g)\n    else:\n        y = _neg(y)\n\n    if falsed:\n        x += _Falsing\n        y += _Falsing\n\n    n = name or nameof(latlon)\n    if Ups is None:\n        r = UtmUps8Tuple(z, p, x, y, B, d, g, k, Error=UPSError, name=n)\n    else:\n        if z != _UPS_ZONE and not strict:\n            z = _UPS_ZONE  # ignore UTM zone\n        r = Ups(z, p, x, y, band=B, datum=d, falsed=falsed,\n                                    gamma=g, scale=k, name=n)\n        if isinstance(latlon, _LLEB) and d is latlon.datum:  # see utm._toXtm8\n            r._latlon5args(latlon, g, k, _toBand, falsed)  # XXX weakref(latlon)?\n        else:\n            r._hemisphere = _hemi(lat)\n            if not r._band:\n                r._band = _toBand(lat, lon)\n    return r\n\n\ndef upsZoneBand5(lat, lon, strict=True, **name):\n    '''Return the UTM/UPS zone number, I{polar} Band letter, pole and\n       clipped lat- and longitude for a given location.\n\n       @arg lat: Latitude in degrees (C{scalar} or C{str}).\n       @arg lon: Longitude in degrees (C{scalar} or C{str}).\n       @kwarg strict: Restrict B{C{lat}} to UPS ranges (C{bool}).\n       @kwarg name: Optional B{C{Ups}} C{B{name}=NN} (C{str}).\n\n       @return: A L{UtmUpsLatLon5Tuple}C{(zone, band, hemipole, lat, lon)}\n                where C{hemipole} is the C{'N'|'S'} pole, the UPS projection\n                top/center and C{lon} [-180..180).\n\n       @note: The C{lon} is set to C{0} if B{C{lat}} is C{-90} or C{90}, see env\n              variable C{PYGEODESY_UPS_POLES} in module L{ups<pygeodesy.ups>}.\n\n       @raise RangeError: If B{C{strict} is True} and B{C{lat}} within the UTM but not\n                          the UPS range or if B{C{lat}} or B{C{lon}} outside the valid\n                          range and L{rangerrors<pygeodesy.rangerrors>} is C{True}.\n\n       @raise ValueError: Invalid B{C{lat}} or B{C{lon}}.\n    '''\n    z, lat, lon = _to3zll(*parseDMS2(lat, lon))\n    if _BZ_UPS and lon < 0 and isnear90(fabs(lat), eps90=_Tol90):  # DMA TM8358.1 only ...\n        lon = 0  # ... zones B and Z at 90°S and 90°N, see also GeoConvert\n\n    if lat < _UPS_LAT_MIN:  # includes 30' overlap\n        z, B, p = _UPS_ZONE, _toBand(lat, lon), _S_\n\n    elif lat > _UPS_LAT_MAX:  # includes 30' overlap\n        z, B, p = _UPS_ZONE, _toBand(lat, lon), _N_\n\n    elif strict:\n        r = _range_(_UPS_LAT_MIN, _UPS_LAT_MAX, prec=1)\n        t = _SPACE_(_inside_, _UTM_, _range_, r)\n        raise RangeError(lat=degDMS(lat), txt=t)\n\n    else:\n        B, p = NN, _hemi(lat)\n    return UtmUpsLatLon5Tuple(z, B, p, lat, lon, Error=UPSError, **name)\n\n# **) MIT License\n#\n# Copyright (C) 2016-2026 -- mrJean1 at Gmail -- All Rights Reserved.\n#\n# Permission is hereby granted, free of charge, to any person obtaining a\n# copy of this software and associated documentation files (the \"Software\"),\n# to deal in the Software without restriction, including without limitation\n# the rights to use, copy, modify, merge, publish, distribute, sublicense,\n# and/or sell copies of the Software, and to permit persons to whom the\n# Software is furnished to do so, subject to the following conditions:\n#\n# The above copyright notice and this permission notice shall be included\n# in all copies or substantial portions of the Software.\n#\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL\n# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR\n# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\n# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n# OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "pygeodesy/utily.py",
    "content": "\n# -*- coding: utf-8 -*-\n\nu'''Various utility functions.\n\nAfter I{Karney}'s C++ U{Math<https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Math.html>}\nclass and I{Veness}' U{Latitude/Longitude<https://www.Movable-Type.co.UK/scripts/latlong.html>}\nand U{Vector-based geodesy<https://www.Movable-Type.co.UK/scripts/latlong-vectors.html>}\nand published under the same MIT Licence**.\n'''\n# make sure int/int division yields float quotient, see .basics\nfrom __future__ import division as _; del _  # noqa: E702 ;\n\nfrom pygeodesy.basics import _copysign, isinstanceof, isint, isstr\nfrom pygeodesy.constants import EPS, EPS0, NAN, PI, PI2, PI_2, PI_4, PI_6, R_M, \\\n                               _M_KM, _M_NM, _M_SM, _SQRT2_2 as _COS_45, \\\n                               _SQRT3_2 as _COS_30, _0_0, _0_5, _1_0, _N_1_0, \\\n                               _10_0, _90_0, _180_0, _360_0, _copysign_0_0, \\\n                               _copysignINF, _float, _isfinite, isnan, isnear0, \\\n                               _over_1, _umod_360, _umod_PI2, OVERFLOW\nfrom pygeodesy.errors import _ValueError, _xkwds, _xkwds_get\nfrom pygeodesy.internals import _Enum, _passargs, typename\nfrom pygeodesy.interns import _edge_, _radians_, _semi_circular_, _SPACE_\nfrom pygeodesy.lazily import _ALL_LAZY, _ALL_MODS as _MODS\nfrom pygeodesy.units import Degrees, Degrees_, Feet, Float, Lam, Lamd, \\\n                            Meter, Meter2, Radians  # Radians_\n\nfrom math import acos, asin, asinh, atan2 as _atan2, cos, degrees, fabs, \\\n                 radians, sin, sinh, tan as _tan  # pow\n\n__all__ = _ALL_LAZY.utily\n__version__ = '26.03.20'\n\n_SIN_30 = _0_5\n_SIN_45 = _COS_45\n\n_G = _Enum(  # grades per ...\n    DEG     = _float(  400.0 / _360_0),  # degree\n    RAD     = _float(  400.0 /  PI2))    # radian\n\n_M = _Enum(  # meter per ...\n    ACRE    = _float( 4046.8564224),     # acre, chain2m(1) * furlong2m(1), squared\n    CHAIN   = _float(   20.1168),        # yard2m(1) * 22\n    FATHOM  = _float(    1.8288),        # yard2m(1) * 2 or _M.NM * 1e-3\n    FOOT    = _float(    0.3048),        # Int'l foot, 1 / 3.280_839_895_0131 == (254 * 12) / 10_000\n    FOOT_FR = _float(    0.3248406),     # French Pied-du-Roi or pied, 1 / 3.078_432_929_8739\n    FOOT_GE = _float(    0.31608),       # German Fuss, 1 / 3.163_756_011_1364\n    FOOT_IN = _float(    0.304799514),   # India foot, 1 / 3.280_845_126_281_9\n    FOOT_US = _float(    0.3048006096012192),  # US Survey foot, 1_200 / 3_937\n    FURLONG = _float(  201.168),         # furlong, 220 * yard2m(1) = 10 * m2chain(1)\n    HA      = _float(10000.0),           # hectare, 100 * 100, squared\n    KM      = _M_KM,                     # kilo meter\n    NM      = _M_NM,                     # nautical mile\n    SM      = _M_SM,                     # statute mile\n    TOISE   = _float(    1.9490436),     # French toise, 6 pieds = 6 / 3.078_432_929_8739\n    YARD    = _float(    0.9144),        # Int'l yard, 254 * 12 * 3 / 10_000 = 3 * _M.FOOT\n    YARD_UK = _float(    0.914398415))   # Imperial yard, until 1959\n\n\ndef _abs1nan(x):\n    '''(INTERNAL) Bracket C{-1 < x < 1 or isnan(x)}.\n    '''\n    return _N_1_0 < x < _1_0 or isnan(x)\n\n\ndef acos1(x):\n    '''Return C{math.acos(max(-1, min(1, B{x})))}.\n    '''\n    return acos(x) if _abs1nan(x) else (PI if x < 0 else _0_0)\n\n\ndef acre2ha(acres):\n    '''Convert an area in I{acres} to I{hectares}.\n\n       @arg acres: Area in acres (C{scalar}).\n\n       @return: Area in hectares (C{float}).\n\n       @raise ValueError: Invalid B{C{acres}}.\n    '''\n    return m2ha(acre2m2(acres))\n\n\ndef acre2m2(acres):\n    '''Convert an area in I{acres} to I{square} meter.\n\n       @arg acres: Area in acres (C{scalar}).\n\n       @return: Area in C{square} meter (C{float}).\n\n       @raise ValueError: Invalid B{C{acres}}.\n    '''\n    return Meter2(Float(acres=acres) * _M.ACRE)\n\n\ndef agdf(phi):\n    '''Inverse U{Gudermannian function\n       <https://WikiPedia.org/wiki/Gudermannian_function>}.\n\n       @arg phi: Angle (C{radians}).\n\n       @return: Gudermannian (psi, C{float}).\n\n       @see: Function L{gdf}.\n    '''\n    return asinh(tan(phi))\n\n\ndef asin1(x):\n    '''Return C{math.asin(max(-1, min(1, B{x})))}.\n    '''\n    return asin(x) if _abs1nan(x) else _copysign(PI_2, x)\n\n\ndef atan1(y, x=_1_0):\n    '''Return C{atan(B{y} / B{x})} angle in C{radians} M{[-PI/2..+PI/2]}\n       using C{atan2} for consistency and to avoid C{ZeroDivisionError}.\n    '''\n    return _atan1u(y, x, atan2)\n\n\ndef atan1d(y, x=_1_0):\n    '''Return C{atan(B{y} / B{x})} angle in C{degrees} M{[-90..+90]}\n       using C{atan2d} for consistency and to avoid C{ZeroDivisionError}.\n\n       @see: Function L{pygeodesy.atan2d}.\n    '''\n    return _atan1u(y, x, atan2d)\n\n\ndef _atan1u(y, x, _2u):\n    '''(INTERNAL) Helper for functions C{atan1} and C{atan1d}.\n    '''\n    if x < 0:\n        x = -x\n        y = -y\n    return _2u(y, x or _0_0)\n\n\natan2 = _atan2\n'''Return C{atan2(B{y}, B{x})} in radians M{[-PI..+PI]}.\n'''\n\n\ndef atan2b(y, x):\n    '''Return C{atan2(B{y}, B{x})} in degrees M{[0..+360), counter-clockwise}.\n\n       @see: Function L{pygeodesy.atan2p} and L{pygeodesy.atan2d}.\n    '''\n    b = atan2d(y, x)\n    if b < 0:\n        b += _360_0\n    return b or _0_0  # unsigned-0\n\n\ndef atan2d(y, x, reverse=False):\n    '''Return C{atan2(B{y}, B{x})} in degrees M{[-180..+180]},\n       optionally I{reversed} (by 180 degrees for C{azimuth}s).\n\n       @see: I{Karney}'s C++ function U{Math.atan2d\n             <https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Math.html>}.\n    '''\n    d = degrees(_atan2(y, x))  # preserves signed-0\n    return _azireversed(d) if reverse else d\n\n\ndef atan2p(y, x):  # in .fmath.polar2\n    '''Return C{atan2(B{y}, B{x})} in radians M{[0..+PI2), counter-clockwise}.\n\n       @see: Function L{pygeodesy.atan2b}.\n    '''\n    p = atan2(y, x)\n    if p < 0:\n        p += PI2\n    return p or _0_0  # unsigned-0\n\n\ndef _azireversed(azi):  # in .rhumb.bases\n    '''(INTERNAL) Return the I{reverse} B{C{azi}} in degrees M{[-180..+180]}.\n    '''\n    return (azi + _180_0) if azi < 0 else (azi - _180_0)\n\n\ndef chain2m(chains):\n    '''Convert a length in I{UK} chains to meter.\n\n       @arg chains: Length in chains (C{scalar}).\n\n       @return: Length in C{meter} (C{float}).\n\n       @raise ValueError: Invalid B{C{chains}}.\n    '''\n    return Meter(Float(chains=chains) * _M.CHAIN)\n\n\ndef circle4(earth, lat):\n    '''Get the equatorial or a parallel I{circle of latitude}.\n\n       @arg earth: The earth radius (C{meter}) or an ellipsoid or datum\n                   (L{Ellipsoid}, L{Ellipsoid2}, L{Datum} or L{a_f2Tuple}).\n       @arg lat: Geodetic latitude (C{degrees90}, C{str}).\n\n       @return: A L{Circle4Tuple}C{(radius, height, lat, beta)}.\n\n       @raise RangeError: Latitude B{C{lat}} outside valid range and\n                          L{rangerrors<pygeodesy.rangerrors>} is C{True}.\n\n       @raise TypeError: Invalid B{C{earth}}.\n\n       @raise ValueError: invalid B{C{earth}} or B{C{lat}}.\n    '''\n    E = _MODS.datums._earth_ellipsoid(earth)\n    return E.circle4(lat)\n\n\ndef _circle4radius(earth, lat=0, **radius):\n    '''(INTERNAL) Get C{circle4(earth, lat).radius}.\n    '''\n    e = _xkwds_get(radius, radius=earth) if radius else earth\n    return e if e is R_M and not lat else circle4(e, lat).radius\n\n\ndef cot(rad, **raiser_kwds):\n    '''Return the C{cotangent} of an angle in C{radians}.\n\n       @arg rad: Angle (C{radians}).\n       @kwarg raiser_kwds: Use C{B{raiser}=False} to avoid\n                     ValueErrors and optional, additional\n                     ValueError keyword argments.\n\n       @return: C{cot(B{rad})}.\n\n       @raise Error: If L{pygeodesy.isnear0}C{(sin(B{rad})}.\n    '''\n    try:\n        return _cotu(*sincos2(rad))\n    except ZeroDivisionError:\n        return _nonfinite(cot, rad, **raiser_kwds)\n\n\ndef cot_(*rads, **raiser_kwds):\n    '''Yield the C{cotangent} of angle(s) in C{radians}.\n\n       @arg rads: One or more angles (each in C{radians}).\n\n       @return: Yield C{cot(B{rad})} for each angle.\n\n       @see: Function L{pygeodesy.cot} for further details.\n    '''\n    try:\n        for r in rads:\n            yield _cotu(*sincos2(r))\n    except ZeroDivisionError:\n        yield _nonfinite(cot_, r, **raiser_kwds)\n\n\ndef cotd(deg, **raiser_kwds):\n    '''Return the C{cotangent} of an angle in C{degrees}.\n\n       @arg deg: Angle (C{degrees}).\n       @kwarg raiser_kwds: Use C{B{raiser}=False} to avoid\n                     ValueErrors and optional, additional\n                     ValueError keyword argments.\n\n       @return: C{cot(B{deg})}.\n\n       @raise Error: If L{pygeodesy.isnear0}C{(sin(B{deg})}.\n    '''\n    try:\n        return _cotu(*sincos2d(deg))\n    except ZeroDivisionError:\n        return _nonfinite(cotd, deg, **raiser_kwds)\n\n\ndef cotd_(*degs, **raiser_kwds):\n    '''Yield the C{cotangent} of angle(s) in C{degrees}.\n\n       @arg degs: One or more angles (each in C{degrees}).\n\n       @return: Yield C{cotd(B{deg})} for each angle.\n\n       @see: Function L{pygeodesy.cotd} for further details.\n    '''\n    try:\n        for d in degs:\n            yield _cotu(*sincos2d(d))\n    except ZeroDivisionError:\n        yield _nonfinite(cotd_, d, **raiser_kwds)\n\n\ndef _cotu(s, c):\n    '''(INTERNAL) Helper for functions C{cot}, C{cotd}, C{cot_} and C{cotd_}.\n    '''\n    return _tanu(c, s)\n\n\ndef degrees90(rad):\n    '''Convert radians to degrees and wrap M{[-90..+90)}.\n\n       @arg rad: Angle (C{radians}).\n\n       @return: Angle, wrapped (C{degrees90}).\n    '''\n    return wrap90(degrees(rad))\n\n\ndef degrees180(rad):\n    '''Convert radians to degrees and wrap M{[-180..+180)}.\n\n       @arg rad: Angle (C{radians}).\n\n       @return: Angle, wrapped (C{degrees180}).\n    '''\n    return wrap180(degrees(rad))\n\n\ndef degrees360(rad):\n    '''Convert radians to degrees and wrap M{[0..+360)}.\n\n       @arg rad: Angle (C{radians}).\n\n       @return: Angle, wrapped (C{degrees360}).\n    '''\n    return _umod_360(degrees(rad))\n\n\ndef degrees2grades(deg):\n    '''Convert degrees to I{grades} (aka I{gons} or I{gradians}).\n\n       @arg deg: Angle (C{degrees}).\n\n       @return: Angle (C{grades}).\n    '''\n    return Float(grades=Degrees(deg) * _G.DEG)\n\n\ndef degrees2m(deg, earth=R_M, lat=0, **radius):\n    '''Convert an arc in degrees to a distance along the equator or along a\n       parallel at (geodetic) latitude.\n\n       @arg deg: The (longitudinal) angle (C{degrees} or C{str}).\n       @arg earth: The earth radius (C{meter}) or an ellipsoid or datum\n                   (L{Ellipsoid}, L{Ellipsoid2}, L{Datum} or L{a_f2Tuple}).\n       @kwarg lat: Parallel latitude (C{degrees90}, C{str}).\n       @kwarg radius: For backward compatibility C{B{radius}=B{earth}}.\n\n       @return: Distance (C{meter}, same units as B{C{earth}} or polar and\n                equatorial radii) or C{0.0} for near-polar B{C{lat}}.\n\n       @raise RangeError: Latitude B{C{lat}} outside valid range, only if\n                          L{rangerrors<pygeodesy.rangerrors>} is C{True}.\n\n       @raise TypeError: Invalid B{C{earth}} or B{C{radius}}.\n\n       @raise ValueError: Invalid B{C{deg}}, B{C{earth}} or B{C{lat}}.\n\n       @see: Function L{radians2m} and L{m2degrees}.\n    '''\n    return _rad2m(Lamd(deg=deg, clip=0), earth, lat, **radius)\n\n\ndef fathom2m(fathoms):\n    '''Convert a length in I{Imperial} fathoms to meter.\n\n       @arg fathoms: Length in fathoms (C{scalar}).\n\n       @return: Length in C{meter} (C{float}).\n\n       @raise ValueError: Invalid B{C{fathoms}}.\n\n       @see: Function L{toise2m}, U{Fathom<https://WikiPedia.org/wiki/Fathom>}\n             and U{Klafter<https://WikiPedia.org/wiki/Klafter>}.\n    '''\n    return Meter(Float(fathoms=fathoms) * _M.FATHOM)\n\n\ndef ft2m(feet, usurvey=False, pied=False, india=False, fuss=False):\n    '''Convert a length in I{International}, I{US Survey}, I{French},\n       I{Indian} or I{German} feet to meter.\n\n       @arg feet: Length in feet (C{scalar}).\n       @kwarg usurvey: If C{True}, convert I{US Survey} foot else ...\n       @kwarg pied: If C{True}, convert French I{pied-du-Roi} else ...\n       @kwarg india: If C{True}, convert I{India foot} else ...\n       @kwarg fuss: If C{True}, convert German I{Fuss}, otherwise\n                    I{International} foot to C{meter}.\n\n       @return: Length in C{meter} (C{float}).\n\n       @raise ValueError: Invalid B{C{feet}}.\n    '''\n    return Meter(Feet(feet) * (_M.FOOT_US if usurvey else\n                              (_M.FOOT_FR if pied    else\n                              (_M.FOOT_IN if india   else\n                              (_M.FOOT_GE if fuss    else _M.FOOT)))))\n\n\ndef furlong2m(furlongs):\n    '''Convert a length in I{furlongs} to meter.\n\n       @arg furlongs: Length in furlongs (C{scalar}).\n\n       @return: Length in C{meter} (C{float}).\n\n       @raise ValueError: Invalid B{C{furlongs}}.\n    '''\n    return Meter(Float(furlongs=furlongs) * _M.FURLONG)\n\n\ndef gdf(psi):\n    '''U{Gudermannian function\n       <https://WikiPedia.org/wiki/Gudermannian_function>}.\n\n       @arg psi: Gudermannian (C{float}).\n\n       @return: Angle (C{radians}).\n\n       @see: Function L{agdf}.\n    '''\n    return atan1(sinh(psi))\n\n\ndef grades(rad):\n    '''Convert radians to I{grades} (aka I{gons} or I{gradians}).\n\n       @arg rad: Angle (C{radians}).\n\n       @return: Angle (C{grades}).\n    '''\n    return Float(grades=Radians(rad) * _G.RAD)\n\n\ndef grades400(rad):\n    '''Convert radians to I{grades} (aka I{gons} or I{gradians}) and wrap M{[0..+400)}.\n\n       @arg rad: Angle (C{radians}).\n\n       @return: Angle, wrapped (C{grades}).\n    '''\n    return Float(grades400=wrapPI2(rad) * _G.RAD)\n\n\ndef grades2degrees(gon):\n    '''Convert I{grades} (aka I{gons} or I{gradians}) to C{degrees}.\n\n       @arg gon: Angle (C{grades}).\n\n       @return: Angle (C{degrees}).\n    '''\n    return Degrees(Float(gon=gon) / _G.DEG)\n\n\ndef grades2radians(gon):\n    '''Convert I{grades} (aka I{gons} or I{gradians}) to C{radians}.\n\n       @arg gon: Angle (C{grades}).\n\n       @return: Angle (C{radians}).\n    '''\n    return Radians(Float(gon=gon) / _G.RAD)\n\n\ndef ha2acre(ha):\n    '''Convert an area in I{hectares} to I{acres}.\n\n       @arg ha: Area in hectares (C{scalar}).\n\n       @return: Area in C{acres} (C{float}).\n\n       @raise ValueError: Invalid B{C{ha}}.\n    '''\n    return m2acre(ha2m2(ha))\n\n\ndef ha2m2(ha):\n    '''Convert an area in I{hectares} to I{square} meter.\n\n       @arg ha: Area in hectares (C{scalar}).\n\n       @return: Area in C{square} meter (C{float}).\n\n       @raise ValueError: Invalid B{C{ha}}.\n    '''\n    return Meter2(Float(ha=ha) * _M.HA)\n\n\ndef hav(rad):\n    '''Return the U{haversine<https://WikiPedia.org/wiki/Haversine_formula>} of an angle.\n\n       @arg rad: Angle (C{radians}).\n\n       @return: C{sin(B{rad} / 2)**2}.\n    '''\n    return sin(rad * _0_5)**2\n\n\ndef km2m(km):\n    '''Convert a length in I{kilo meter} to meter (C{m}).\n\n       @arg km: Length in kilo meter (C{scalar}).\n\n       @return: Length in meter (C{float}).\n\n       @raise ValueError: Invalid B{C{km}}.\n    '''\n    return Meter(Float(km=km) * _M.KM)\n\n\ndef _loneg(lon):\n    '''(INTERNAL) \"Complement\" of C{lon}.\n    '''\n    return _180_0 - lon\n\n\ndef m2acre(meter2):\n    '''Convert an area in I{square} meter to I{acres}.\n\n       @arg meter2: Area in C{square} meter (C{scalar}).\n\n       @return: Area in acres (C{float}).\n\n       @raise ValueError: Invalid B{C{meter2}}.\n    '''\n    return Float(acre=Meter2(meter2) / _M.ACRE)\n\n\ndef m2chain(meter):\n    '''Convert a length in meter to I{UK} chains.\n\n       @arg meter: Length in meter (C{scalar}).\n\n       @return: Length in C{chains} (C{float}).\n\n       @raise ValueError: Invalid B{C{meter}}.\n    '''\n    return Float(chain=Meter(meter) / _M.CHAIN)  # * 0.049_709_695_378_986_715\n\n\ndef m2degrees(distance, earth=R_M, lat=0, **radius):\n    '''Convert a distance to an arc in degrees along the equator or along a\n       parallel at (geodetic) latitude.\n\n       @arg distance: Distance (C{meter}, same units as B{C{radius}}).\n       @kwarg earth: Mean earth radius (C{meter}) or an ellipsoid or datum\n                     (L{Ellipsoid}, L{Ellipsoid2}, L{Datum} or L{a_f2Tuple}).\n       @kwarg lat: Parallel latitude (C{degrees90}, C{str}).\n       @kwarg radius: For backward compatibility C{B{radius}=B{earth}}.\n\n       @return: Angle (C{degrees}) or C{0.0,} for near-polar B{C{lat}}.\n\n       @raise RangeError: Latitude B{C{lat}} outside valid range, only if\n                          L{rangerrors<pygeodesy.rangerrors>} is C{True}.\n\n       @raise TypeError: Invalid B{C{earth}} or B{C{radius}}.\n\n       @raise ValueError: Invalid B{C{distance}}, B{C{earth}} or B{C{lat}}.\n\n       @see: Function L{m2radians} and L{degrees2m}.\n    '''\n    return Degrees(degrees(_m2rad(distance, earth, lat, **radius)))\n\n\ndef m2fathom(meter):\n    '''Convert a length in meter to I{Imperial} fathoms.\n\n       @arg meter: Length in meter (C{scalar}).\n\n       @return: Length in C{fathoms} (C{float}).\n\n       @raise ValueError: Invalid B{C{meter}}.\n\n       @see: Function L{m2toise}, U{Fathom<https://WikiPedia.org/wiki/Fathom>}\n             and U{Klafter<https://WikiPedia.org/wiki/Klafter>}.\n    '''\n    return Float(fathom=Meter(meter) / _M.FATHOM)  # * 0.546_806_649\n\n\ndef m2ft(meter, usurvey=False, pied=False, india=False, fuss=False):\n    '''Convert a length in meter to I{International}, I{US Survey},\n       I{French}, I{Indian} or I{German} feet (C{ft}).\n\n       @arg meter: Length in meter (C{scalar}).\n       @kwarg usurvey: If C{True}, convert to I{US Survey} foot else ...\n       @kwarg pied: If C{True}, convert to French I{pied-du-Roi} else ...\n       @kwarg india: If C{True}, convert to I{India foot} else ...\n       @kwarg fuss: If C{True}, convert to German I{Fuss}, otherwise to\n                    I{International} foot.\n\n       @return: Length in C{feet} (C{float}).\n\n       @raise ValueError: Invalid B{C{meter}}.\n    '''\n    # * 3.280_833_333_333_3333, US Survey 3_937 / 1_200\n    # * 3.280_839_895_013_1235, Int'l 10_000 / (254 * 12)\n    return Float(feet=Meter(meter) / (_M.FOOT_US if usurvey else\n                                     (_M.FOOT_FR if pied    else\n                                     (_M.FOOT_IN if india   else\n                                     (_M.FOOT_GE if fuss    else _M.FOOT)))))\n\n\ndef m2furlong(meter):\n    '''Convert a length in meter to furlongs.\n\n       @arg meter: Length in meter (C{scalar}).\n\n       @return: Length in C{furlongs} (C{float}).\n\n       @raise ValueError: Invalid B{C{meter}}.\n    '''\n    return Float(furlong=Meter(meter) / _M.FURLONG)  # * 0.004_970_969_54\n\n\ndef m2ha(meter2):\n    '''Convert an area in I{square} meter to I{hectares}.\n\n       @arg meter2: Area in C{square} meter (C{scalar}).\n\n       @return: Area in hectares (C{float}).\n\n       @raise ValueError: Invalid B{C{meter2}}.\n    '''\n    return Float(ha=Meter2(meter2) / _M.HA)\n\n\ndef m2km(meter):\n    '''Convert a length in meter to kilo meter (C{Km}).\n\n       @arg meter: Length in meter (C{scalar}).\n\n       @return: Length in C{Km} (C{float}).\n\n       @raise ValueError: Invalid B{C{meter}}.\n    '''\n    return Float(km=Meter(meter) / _M.KM)\n\n\ndef m2NM(meter):\n    '''Convert a length in meter to nautical miles (C{NM}).\n\n       @arg meter: Length in meter (C{scalar}).\n\n       @return: Length in C{NM} (C{float}).\n\n       @raise ValueError: Invalid B{C{meter}}.\n    '''\n    return Float(NM=Meter(meter) / _M.NM)  # * 5.399_568_04e-4\n\n\ndef _m2rad(distance, earth, lat, **radius):\n    '''(INTERNAL) Helper for C{m2degrees} and C{m2radians}.\n    '''\n    d =  Float(distance=distance)\n    m = _circle4radius(earth, lat, **radius)\n    return _copysign_0_0(d) if m < EPS0 else (d / m)  # radians\n\n\ndef m2radians(distance, earth=R_M, lat=0, **radius):\n    '''Convert a distance to an arc in radians along the equator or along a\n       parallel at (geodetic) latitude.\n\n       @arg distance: Distance (C{meter}, same units as B{C{radius}}).\n       @kwarg earth: Mean earth radius (C{meter}) or an ellipsoid or datum\n                     (L{Ellipsoid}, L{Ellipsoid2}, L{Datum} or L{a_f2Tuple}).\n       @kwarg lat: Parallel latitude (C{degrees90}, C{str}).\n       @kwarg radius: For backward compatibility C{B{radius}=B{earth}}.\n\n       @return: Angle (C{radians}) or C{0.0} for near-polar B{C{lat}}.\n\n       @raise RangeError: Latitude B{C{lat}} outside valid range, only if\n                          L{rangerrors<pygeodesy.rangerrors>} is C{True}.\n\n       @raise TypeError: Invalid B{C{earth}} or B{C{radius}}.\n\n       @raise ValueError: Invalid B{C{distance}}, B{C{earth}} or B{C{lat}}.\n\n       @see: Function L{m2degrees} and L{radians2m}.\n    '''\n    return Radians(_m2rad(distance, earth, lat, **radius))\n\n\ndef m2SM(meter):\n    '''Convert a length in meter to statute miles (SM).\n\n       @arg meter: Length in meter (C{scalar}).\n\n       @return: Length in C{SM} (C{float}).\n\n       @raise ValueError: Invalid B{C{meter}}.\n    '''\n    return Float(SM=Meter(meter) / _M.SM)  # * 6.213_699_49e-4 == 1 / 1_609.344\n\n\ndef m2toise(meter):\n    '''Convert a length in meter to French U{toises\n       <https://WikiPedia.org/wiki/Toise>}.\n\n       @arg meter: Length in meter (C{scalar}).\n\n       @return: Length in C{toises} (C{float}).\n\n       @raise ValueError: Invalid B{C{meter}}.\n\n       @see: Function L{m2fathom}.\n    '''\n    return Float(toise=Meter(meter) / _M.TOISE)  # * 0.513_083_632_632_119\n\n\ndef m2yard(meter, imperial=False):\n    '''Convert a length in meter to I{International} or U{Imperial\n       Standard <https://WikiPedia.org/wiki/Imperial_units>} yards.\n\n       @arg meter: Length in meter (C{scalar}).\n       @kwarg imperial: If C{True}, convert to I{Imperial Standard} yards.\n\n       @return: Length in C{yards} (C{float}).\n\n       @raise ValueError: Invalid B{C{meter}}.\n    '''\n    return Float(yard=Meter(meter) / (_M.YARD_UK if imperial else\n                                      _M.YARD))  # * 1.093_613_298_337_707_8\n\n\ndef NM2m(nm):\n    '''Convert a length in nautical miles to meter (C{m}).\n\n       @arg nm: Length in nautical miles (C{scalar}).\n\n       @return: Length in meter (C{float}).\n\n       @raise ValueError: Invalid B{C{nm}}.\n    '''\n    return Meter(Float(nm=nm) * _M.NM)\n\n\ndef _nonfinite(where, x, raiser=True, **kwds):  # PYCHOK no cover\n    '''(INTERNAL) Raise a C{_ValueError} or return C{INF} or C{NINF}.\n    '''\n    if raiser:\n        t =  typename(where)\n        t = _MODS.streprs.Fmt.PAREN(t, x)\n        raise _ValueError(t, **kwds)\n    return _copysignINF(x)\n\n\ndef radians2m(rad, earth=R_M, lat=0, **radius):\n    '''Convert an arc in radians to a distance along the equator or along a\n       parallel at (geodetic) latitude.\n\n       @arg rad: The (longitudinal) angle (C{radians} or C{str}).\n       @kwarg earth: Mean earth radius (C{meter}) or an ellipsoid or datum\n                     (L{Ellipsoid}, L{Ellipsoid2}, L{Datum} or L{a_f2Tuple}).\n       @kwarg lat: Parallel latitude (C{degrees90}, C{str}).\n       @kwarg radius: For backward compatibility C{B{radius}=B{earth}}.\n\n       @return: Distance (C{meter}, same units as B{C{earth}} or polar and\n                equatorial radii) or C{0.0} for near-polar B{C{lat}}.\n\n       @raise RangeError: Latitude B{C{lat}} outside valid range, only if\n                          L{rangerrors<pygeodesy.rangerrors>} is C{True}.\n\n       @raise TypeError: Invalid B{C{earth}} or B{C{radius}}.\n\n       @raise ValueError: Invalid B{C{rad}}, B{C{earth}} or B{C{lat}}.\n\n       @see: Function L{degrees2m} and L{m2radians}.\n    '''\n    return _rad2m(Lam(rad=rad, clip=0), earth, lat, **radius)\n\n\ndef radiansPI(deg):\n    '''Convert and wrap degrees to radians M{[-PI..+PI]}.\n\n       @arg deg: Angle (C{degrees}).\n\n       @return: Radians, wrapped (C{radiansPI})\n    '''\n    return wrapPI(radians(deg))\n\n\ndef radiansPI2(deg):\n    '''Convert and wrap degrees to radians M{[0..+2PI)}.\n\n       @arg deg: Angle (C{degrees}).\n\n       @return: Radians, wrapped (C{radiansPI2})\n    '''\n    return _umod_PI2(radians(deg))\n\n\ndef radiansPI_2(deg):\n    '''Convert and wrap degrees to radians M{[-3PI/2..+PI/2]}.\n\n       @arg deg: Angle (C{degrees}).\n\n       @return: Radians, wrapped (C{radiansPI_2})\n    '''\n    return wrapPI_2(radians(deg))\n\n\ndef _rad2m(rad, earth, lat, **radius):\n    '''(INTERNAL) Helper for C{degrees2m} and C{radians2m}.\n    '''\n    m = _circle4radius(earth, lat, **radius)\n    return Meter(_copysign_0_0(rad) if m < EPS0 else (rad * m))\n\n\ndef _sin0cos2(q, r, sign):\n    '''(INTERNAL) 2-tuple (C{sin(r), cos(r)}) in quadrant C{0 <= B{q} <= 3} and\n       C{sin} zero I{signed} with B{C{sign}}, like Karney's U{Math.sind and .cosd\n       <https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Math.html>}\n    '''\n    q &= 3  # -1: 3, -2: 2, -3: 1, -4: 0 ...\n    if r < PI_2:  # Quarter turn\n        a = fabs(r)\n        if a:\n            s = sin(r)\n            if a == PI_4:\n                s, c = _copysign(_SIN_45, s), _COS_45\n            elif a == PI_6:\n                s, c = _copysign(_SIN_30, s), _COS_30\n            else:\n                c = cos(r)\n        else:\n            s, c = _0_0, _1_0\n    else:\n        s, c = _1_0, _0_0\n    t = s, c, -s, -c, s\n    s = t[q]     or _copysign_0_0(sign)\n    c = t[q + 1] or _0_0\n    return s, c\n\n\ndef SinCos2(x, unit=Radians):\n    '''Get C{sin} and C{cos} of I{typed} angle.\n\n       @arg x: Angle (L{Degrees}, L{Radians} or scalar C{radians}).\n       @kwarg unit: The C{B{x}} unit (L{Degrees}, L{Radians}).\n\n       @return: 2-Tuple (C{sin(B{x})}, C{cos(B{x})}).\n    '''\n    return sincos2d(x) if unit is Degrees or unit is degrees or isinstanceof(x, Degrees, Degrees_) else (\n#          sincos2(x)  if unit is Radians or unit is radians or isinstanceof(x, Radians, Radians_) else\n           sincos2(Radians(x)))  # assume C{radians}\n\n\ndef sincos2(rad):\n    '''Return the C{sine} and C{cosine} of an angle in C{radians}.\n\n       @arg rad: Angle (C{radians}).\n\n       @return: 2-Tuple (C{sin(B{rad})}, C{cos(B{rad})}).\n\n       @see: U{GeographicLib<https://GeographicLib.SourceForge.io/C++/doc/\n             classGeographicLib_1_1Math.html#sincosd>} function U{sincosd\n             <https://SourceForge.net/p/geographiclib/code/ci/release/tree/\n             python/geographiclib/geomath.py#l155>} and C++ U{sincosd\n             <https://SourceForge.net/p/geographiclib/code/ci/release/tree/\n             include/GeographicLib/Math.hpp#l558>}.\n    '''\n    if _isfinite(rad):\n        q, r = divmod(rad, PI_2)\n        t = _sin0cos2(int(q), r, rad)\n    else:\n        t =  NAN, NAN\n    return t\n\n\ndef sincos2_(*rads):\n    '''Yield the C{sine} and C{cosine} of angle(s) in C{radians}.\n\n       @arg rads: One or more angles (C{radians}).\n\n       @return: Yield C{sin(B{rad})} and C{cos(B{rad})} for each angle.\n\n       @see: Function L{sincos2}.\n    '''\n    for r in rads:\n        s, c = sincos2(r)\n        yield s\n        yield c\n\n\ndef sincos2d(deg, adeg=_0_0):\n    '''Return the C{sine} and C{cosine} of an angle in C{degrees}.\n\n       @arg deg: Angle (C{degrees}).\n       @kwarg adeg: Optional correction (C{degrees}).\n\n       @return: 2-Tuple (C{sin(B{deg_})}, C{cos(B{deg_})} with C{B{deg_} =\n                B{deg} + B{adeg}}).\n\n       @see: U{GeographicLib<https://GeographicLib.SourceForge.io/C++/doc/\n             classGeographicLib_1_1Math.html#sincosd>} function U{sincosd\n             <https://SourceForge.net/p/geographiclib/code/ci/release/tree/\n             python/geographiclib/geomath.py#l155>} and C++ U{sincosd\n             <https://SourceForge.net/p/geographiclib/code/ci/release/tree/\n             include/GeographicLib/Math.hpp#l558>}.\n    '''\n    if _isfinite(deg):\n        q, d = divmod(deg, _90_0)\n        if adeg:\n            d = _MODS.karney._around(d + adeg)\n        t = _sin0cos2(int(q), radians(d), deg)\n    else:\n        t =  NAN, NAN\n    return t\n\n\ndef sincos2d_(*degs):\n    '''Yield the C{sine} and C{cosine} of angle(s) in C{degrees}.\n\n       @arg degs: One or more angles (C{degrees}).\n\n       @return: Yield C{sind(B{deg})} and C{cosd(B{deg})} for each angle.\n\n       @see: Function L{sincos2d}.\n    '''\n    for d in degs:\n        s, c = sincos2d(d)\n        yield s\n        yield c\n\n\ndef sincostan3(rad):\n    '''Return the C{sine}, C{cosine} and C{tangent} of an angle in C{radians}.\n\n       @arg rad: Angle (C{radians}).\n\n       @return: 3-Tuple (C{sin(B{rad})}, C{cos(B{rad})}, C{tan(B{rad})}).\n\n       @see: Function L{sincos2}.\n    '''\n    return _sincostan3(*sincos2(float(rad)))\n\n\ndef _sincostan3(s, c):\n    '''(INTERNAL) Helper for C{sincostan3} and C{sincostan3d}.\n    '''\n    return s, c, _over_1(s, c)  # _tanu(s, c, raiser=False)\n\n\ndef sincostan3d(deg):\n    '''Return the C{sine}, C{cosine} and C{tangent} of an angle in C{degrees}.\n\n       @arg deg: Angle (C{degrees}).\n\n       @return: 3-Tuple (C{sind(B{deg})}, C{cosd(B{deg})}, C{tand(B{deg})}).\n\n       @see: Function L{sincos2d}.\n    '''\n    return _sincostan3(*sincos2d(float(deg)))\n\n\ndef SM2m(sm):\n    '''Convert a length in statute miles to meter (C{m}).\n\n       @arg sm: Length in statute miles (C{scalar}).\n\n       @return: Length in meter (C{float}).\n\n       @raise ValueError: Invalid B{C{sm}}.\n    '''\n    return Meter(Float(sm=sm) * _M.SM)\n\n\ndef tan_2(rad, **semi):  # edge=1\n    '''Compute the tangent of half angle.\n\n       @arg rad: Angle (C{radians}).\n       @kwarg semi: Angle or edge name and index\n                    for semi-circular error.\n\n       @return: M{tan(rad / 2)} (C{float}).\n\n       @raise ValueError: If B{C{rad}} is semi-circular\n                          and B{C{semi}} is given.\n    '''\n    # .formy.excessKarney_, .sphericalTrigonometry.areaOf\n    if semi and isnear0(fabs(rad) - PI):\n        for n, v in semi.items():\n            break\n        n = _SPACE_(n, _radians_) if not isint(v) else \\\n            _SPACE_(_MODS.streprs.Fmt.SQUARE(**semi), _edge_)\n        raise _ValueError(n, rad, txt=_semi_circular_)\n\n    return _tan(rad * _0_5) if _isfinite(rad) else NAN\n\n\ndef tan(rad, **raiser_kwds):\n    '''Return the C{tangent} of an angle in C{radians}.\n\n       @arg rad: Angle (C{radians}).\n       @kwarg raiser_kwds: Use C{B{raiser}=False} to avoid\n                     ValueErrors and optional, additional\n                     ValueError keyword argments.\n\n       @return: C{tan(B{rad})}.\n\n       @raise Error: If L{pygeodesy.isnear0}C{(cos(B{rad})}.\n    '''\n    try:\n        return _tanu(*sincos2(rad))\n    except ZeroDivisionError:\n        return _nonfinite(tan, rad, **raiser_kwds)\n\n\ndef tan_(*rads, **raiser_kwds):\n    '''Yield the C{tangent} of angle(s) in C{radians}.\n\n       @arg rads: One or more angles (each in C{radians}).\n\n       @return: Yield C{tan(B{rad})} for each angle.\n\n       @see: Function L{pygeodesy.tan} for futher details.\n    '''\n    try:\n        for r in rads:\n            yield _tanu(*sincos2(r))\n    except ZeroDivisionError:\n        yield _nonfinite(tan_, r, **raiser_kwds)\n\n\ndef tand(deg, **raiser_clamp_kwds):\n    '''Return the C{tangent} of an angle in C{degrees}.\n\n       @arg deg: Angle (C{degrees}).\n       @kwarg raiser_clamp_kwds: Use C{B{raiser}=False} to avoid\n                     ValueErrors, C{B{clamp}=}L{OVERFLOW} and\n                     optional, additional ValueError keyword\n                     argments.\n\n       @return: C{tan(B{deg})}.\n\n       @raise Error: If L{pygeodesy.isnear0}C{(cos(B{deg})}.\n    '''\n    try:\n        return _tanu(*sincos2d(deg))\n    except ZeroDivisionError:\n        return _nonfinite(tand, deg, **raiser_clamp_kwds)\n\n\ndef tand_(*degs, **raiser_clamp_kwds):\n    '''Yield the C{tangent} of angle(s) in C{degrees}.\n\n       @arg degs: One or more angles (each in C{degrees}).\n\n       @return: Yield C{tand(B{deg})} for each angle.\n\n       @see: Function L{pygeodesy.tand} for futher details.\n    '''\n    try:\n        for d in degs:\n            yield _tanu(*sincos2d(d), **raiser_clamp_kwds)\n    except ZeroDivisionError:\n        yield _nonfinite(tand_, d, **raiser_clamp_kwds)\n\n\ndef tanPI_2_2(rad):\n    '''Compute the tangent of half angle, 90 degrees rotated.\n\n       @arg rad: Angle (C{radians}).\n\n       @return: M{tan((rad + PI/2) / 2)} (C{float}).\n    '''\n    return _tan((rad + PI_2) * _0_5) if _isfinite(rad) else (\n            NAN if isnan(rad) else _copysign(_90_0, rad))\n\n\ndef _tanu(s, c, clamp=OVERFLOW, **unused):\n    '''(INTERNAL) Helper for functions C{_cotu}, C{sincostan3},\n       C{sincostan3d}, C{tan}, C{tan_}, C{tand} and C{tand_}.\n    '''\n    if s is NAN or isnan(s):\n        t = NAN\n    elif isnear0(c):\n        raise ZeroDivisionError()\n    else:\n        t = _over_1(s, c)\n        if clamp:\n            t = min(clamp, max(t, -clamp))\n    return t\n\n\ndef toise2m(toises):\n    '''Convert a length in French U{toises<https://WikiPedia.org/wiki/Toise>}\n       to meter.\n\n       @arg toises: Length in toises (C{scalar}).\n\n       @return: Length in C{meter} (C{float}).\n\n       @raise ValueError: Invalid B{C{toises}}.\n\n       @see: Function L{fathom2m}.\n    '''\n    return Meter(Float(toises=toises) * _M.TOISE)\n\n\ndef truncate(x, ndigits=None):\n    '''Truncate to the given number of digits.\n\n       @arg x: Value to truncate (C{scalar}).\n       @kwarg ndigits: Number of digits (C{int}),\n                       aka I{precision}.\n\n       @return: Truncated B{C{x}} (C{float}).\n\n       @see: Python function C{round}.\n    '''\n    if isint(ndigits):\n        p = _10_0**ndigits\n        x =  int(x * p) / p\n    return x\n\n\ndef unroll180(lon1, lon2, wrap=True):\n    '''Unroll longitudinal delta and wrap longitude in degrees.\n\n       @arg lon1: Start longitude (C{degrees}).\n       @arg lon2: End longitude (C{degrees}).\n       @kwarg wrap: If C{True}, wrap and unroll to the M{(-180..+180]}\n                    range (C{bool}).\n\n       @return: 2-Tuple C{(B{lon2}-B{lon1}, B{lon2})} unrolled (C{degrees},\n                C{degrees}).\n\n       @see: Capability C{LONG_UNROLL} in U{GeographicLib\n             <https://GeographicLib.SourceForge.io/html/python/interface.html#outmask>}.\n    '''\n    d = lon2 - lon1\n    if wrap:\n        u = wrap180(d)\n        if u != d:\n            return u, (lon1 + u)\n    return d, lon2\n\n\ndef _unrollon(p1, p2, wrap=False):  # unroll180 == .karney._unroll2\n    '''(INTERNAL) Wrap/normalize, unroll and replace longitude.\n    '''\n    lat, lon = p2.lat, p2.lon\n    if wrap and _Wrap.normal:\n        lat, lon = _Wrap.latlon(lat, lon)\n    _, lon = unroll180(p1.lon, lon, wrap=True)\n    if lat != p2.lat or fabs(lon - p2.lon) > EPS:\n        p2 = p2.dup(lat=lat, lon=wrap180(lon))\n        # p2 = p2.copy(); p2.latlon = lat, wrap180(lon)\n    return p2\n\n\ndef _unrollon3(p1, p2, p3, wrap=False):\n    '''(INTERNAL) Wrap/normalize, unroll 2 points.\n    '''\n    w = wrap\n    if w:  # PYCHOK no cover\n        w  = _Wrap.normal\n        p2 = _unrollon(p1, p2, wrap=w)\n        p3 = _unrollon(p1, p3, wrap=w)\n        p2 = _unrollon(p2, p3)\n    return p2, p3, w  # was wrapped?\n\n\ndef unrollPI(rad1, rad2, wrap=True):\n    '''Unroll longitudinal delta and wrap longitude in radians.\n\n       @arg rad1: Start longitude (C{radians}).\n       @arg rad2: End longitude (C{radians}).\n       @kwarg wrap: If C{True}, wrap and unroll to the M{(-PI..+PI]}\n                    range (C{bool}).\n\n       @return: 2-Tuple C{(B{rad2}-B{rad1}, B{rad2})} unrolled\n                (C{radians}, C{radians}).\n\n       @see: Capability C{LONG_UNROLL} in U{GeographicLib\n             <https://GeographicLib.SourceForge.io/html/python/interface.html#outmask>}.\n    '''\n    r = rad2 - rad1\n    if wrap:\n        u = wrapPI(r)\n        if u != r:\n            return u, (rad1 + u)\n    return r, rad2\n\n\nclass _Wrap(object):\n\n    _normal = False  # default\n\n    @property\n    def normal(self):\n        '''Get the current L{normal} setting (C{True},\n           C{False} or C{None}).\n        '''\n        return self._normal\n\n    @normal.setter  # PYCHOK setter!\n    def normal(self, setting):  # PYCHOK no cover\n        '''Set L{normal} to C{True}, C{False} or C{None}.\n        '''\n        m = _MODS.formy\n        t = {True:  (m.normal,        m.normal_),\n             False: (self.wraplatlon, self.wraphilam),\n             None:  (_passargs,      _passargs)}.get(setting, ())\n        if t:\n            self.latlon, self.philam = t\n            self._normal = setting\n\n    def latlonDMS2(self, lat, lon, **DMS2_kwds):  # PYCHOK no cover\n        if isstr(lat) or isstr(lon):\n            kwds = _xkwds(DMS2_kwds, clipLon=0, clipLat=0)\n            lat, lon = _MODS.dms.parseDMS2(lat, lon, **kwds)\n        return self.latlon(lat, lon)\n\n#   def normalatlon(self, *latlon):\n#       return _MODS.formy.normal(*latlon)\n\n#   def normalamphi(self, *philam):\n#       return _MODS.formy.normal_(*philam)\n\n    def wraplatlon(self, lat, lon):\n        return wrap90(lat), wrap180(lon)\n\n    latlon = wraplatlon  # default\n\n    def latlon3(self, lon1, lat2, lon2, wrap):\n        if wrap:\n            lat2,  lon2 = self.latlon(lat2, lon2)\n            lon21, lon2 = unroll180(lon1, lon2)\n        else:\n            lon21 = lon2 - lon1\n        return lon21, lat2, lon2\n\n    def _latlonop(self, wrap):\n        if wrap and self._normal is not None:\n            return self.latlon\n        else:\n            return _passargs\n\n    def wraphilam(self, phi, lam):\n        return wrapPI_2(phi), wrapPI(lam)\n\n    philam = wraphilam  # default\n\n    def philam3(self, lam1, phi2, lam2, wrap):\n        if wrap:\n            phi2,  lam2 = self.philam(phi2, lam2)\n            lam21, lam2 = unrollPI(lam1, lam2)\n        else:\n            lam21 = lam2 - lam1\n        return lam21, phi2, lam2\n\n    def _philamop(self, wrap):\n        if wrap and self._normal is not None:\n            return self.philam\n        else:\n            return _passargs\n\n    def point(self, ll, wrap=True):  # in .points._fractional, -.PointsIter.iterate, ...\n        '''Return C{ll} or a copy, I{normalized} or I{wrap}'d.\n        '''\n        if wrap and self._normal is not None:\n            lat, lon = ll.latlon\n            if fabs(lon) > _180_0 or fabs(lat) > _90_0:\n                _n = self.latlon\n                ll = ll.copy(name=typename(_n))\n                ll.latlon = _n(lat, lon)\n        return ll\n\n_Wrap = _Wrap()  # PYCHOK singleton\n\n\n# def _wrap(angle, wrap, modulo):\n#     '''(INTERNAL) Angle wrapper M{((wrap-modulo)..+wrap]}.\n#\n#        @arg angle: Angle (C{degrees}, C{radians} or C{grades}).\n#        @arg wrap: Range (C{degrees}, C{radians} or C{grades}).\n#        @arg modulo: Upper limit (360 C{degrees}, PI2 C{radians} or 400 C{grades}).\n#\n#        @return: The B{C{angle}}, wrapped (C{degrees}, C{radians} or C{grades}).\n#     '''\n#     a = float(angle)\n#     if not (wrap - modulo) <= a < wrap:\n#         # math.fmod(-1.5, 3.14) == -1.5, but -1.5 % 3.14 == 1.64\n#         # math.fmod(-1.5, 360)  == -1.5, but -1.5 % 360 == 358.5\n#         a %= modulo\n#         if a > wrap:\n#             a -= modulo\n#     return a\n\n\ndef wrap90(deg):\n    '''Wrap degrees to M{[-90..+90]}.\n\n       @arg deg: Angle (C{degrees}).\n\n       @return: Degrees, wrapped (C{degrees90}).\n    '''\n    return _wrapu(wrap180(deg), _180_0, _90_0)\n\n\ndef wrap180(deg):\n    '''Wrap degrees to M{[-180..+180]}.\n\n       @arg deg: Angle (C{degrees}).\n\n       @return: Degrees, wrapped (C{degrees180}).\n    '''\n    d =  float(deg)\n    w = _umod_360(d)\n    if w > _180_0:\n        w -= _360_0\n    elif d < 0 and w == _180_0:\n        w = -w\n    return w\n\n\ndef wrap360(deg):  # see .streprs._umod_360\n    '''Wrap degrees to M{[0..+360)}.\n\n       @arg deg: Angle (C{degrees}).\n\n       @return: Degrees, wrapped (C{degrees360}).\n    '''\n    return _umod_360(float(deg))\n\n\ndef wrapPI(rad):\n    '''Wrap radians to M{[-PI..+PI]}.\n\n       @arg rad: Angle (C{radians}).\n\n       @return: Radians, wrapped (C{radiansPI}).\n    '''\n    r =  float(rad)\n    w = _umod_PI2(r)\n    if w > PI:\n        w -= PI2\n    elif r < 0 and w == PI:\n        w = -PI\n    return w\n\n\ndef wrapPI2(rad):\n    '''Wrap radians to M{[0..+2PI)}.\n\n       @arg rad: Angle (C{radians}).\n\n       @return: Radians, wrapped (C{radiansPI2}).\n    '''\n    return _umod_PI2(float(rad))\n\n\ndef wrapPI_2(rad):\n    '''Wrap radians to M{[-PI/2..+PI/2]}.\n\n       @arg rad: Angle (C{radians}).\n\n       @return: Radians, wrapped (C{radiansPI_2}).\n    '''\n    return _wrapu(wrapPI(rad), PI, PI_2)\n\n\n# def wraplatlon(lat, lon):\n#     '''Both C{wrap90(B{lat})} and C{wrap180(B{lon})}.\n#     '''\n#     return wrap90(lat), wrap180(lon)\n\n\ndef wrap_normal(*normal):\n    '''Define the operation for the keyword argument C{B{wrap}=True},\n       across L{pygeodesy}: I{wrap}, I{normalize} or I{no-op}.  For\n       backward compatibility, the default is I{wrap}.\n\n       @arg normal: If C{True}, I{normalize} lat- and longitude using\n                    L{normal} or L{normal_}, if C{False}, I{wrap} the\n                    lat- and longitude individually by L{wrap90} or\n                    L{wrapPI_2} respectively L{wrap180}, L{wrapPI} or\n                    if C{None}, leave lat- and longitude I{unchanged}.\n                    To get the current setting, do not specify.\n\n       @return: The previous L{wrap_normal} setting (C{bool} or C{None}).\n    '''\n    t = _Wrap.normal\n    if normal:\n        _Wrap.normal = normal[0]\n    return t\n\n\n# def wraphilam(phi, lam,):\n#     '''Both C{wrapPI_2(B{phi})} and C{wrapPI(B{lam})}.\n#     '''\n#     return wrapPI_2(phi), wrapPI(lam)\n\n\ndef _wrapu(w, H, Q):\n    '''(INTERNAL) Helper for functions C{wrap180} and C{wrapPI}.\n    '''\n    return (w - H) if w > Q else ((w + H) if w < (-Q) else w)\n\n\ndef yard2m(yards, imperial=False):\n    '''Convert a length in I{International} or U{Imperial Standard\n       <https://WikiPedia.org/wiki/Imperial_units>} yards to meter.\n\n       @arg yards: Length in yards (C{scalar}).\n       @kwarg imperial: If C{True}, convert from I{Imperial Standard} yards.\n\n       @return: Length in C{meter} (C{float}).\n\n       @raise ValueError: Invalid B{C{yards}}.\n    '''\n    return Meter(Float(yards=yards) * (_M.YARD_UK if imperial else _M.YARD))\n\n# **) MIT License\n#\n# Copyright (C) 2016-2026 -- mrJean1 at Gmail -- All Rights Reserved.\n#\n# Permission is hereby granted, free of charge, to any person obtaining a\n# copy of this software and associated documentation files (the \"Software\"),\n# to deal in the Software without restriction, including without limitation\n# the rights to use, copy, modify, merge, publish, distribute, sublicense,\n# and/or sell copies of the Software, and to permit persons to whom the\n# Software is furnished to do so, subject to the following conditions:\n#\n# The above copyright notice and this permission notice shall be included\n# in all copies or substantial portions of the Software.\n#\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL\n# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR\n# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\n# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n# OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "pygeodesy/utm.py",
    "content": "\n# -*- coding: utf-8 -*-\n\nu'''I{Veness}' Universal Transverse Mercator (UTM) projection.\n\nClasses L{Utm} and L{UTMError} and functions L{parseUTM5}, L{toUtm8} and\nL{utmZoneBand5}.\n\nPure Python implementation of UTM / WGS-84 conversion functions using\nan ellipsoidal earth model, transcoded from JavaScript originals by\nI{(C) Chris Veness 2011-2024} published under the same MIT Licence**, see\nU{UTM<https://www.Movable-Type.co.UK/scripts/latlong-utm-mgrs.html>} and\nU{Module utm<https://www.Movable-Type.co.UK/scripts/geodesy/docs/module-utm.html>}.\n\nThe U{UTM<https://WikiPedia.org/wiki/Universal_Transverse_Mercator_coordinate_system>}\nsystem is a 2-dimensional Cartesian coordinate system providing another way\nto identify locations on the surface of the earth.  UTM is a set of 60\ntransverse Mercator projections, normally based on the WGS-84 ellipsoid.\nWithin each zone, coordinates are represented as B{C{easting}}s and B{C{northing}}s,\nmeasured in metres.\n\nThis module includes some of I{Charles Karney}'s U{'Transverse Mercator with an\naccuracy of a few nanometers'<https://ArXiv.org/pdf/1002.1417v3.pdf>}, 2011\n(building on Krüger's U{'Konforme Abbildung des Erdellipsoids in der Ebene'\n<https://bib.GFZ-Potsdam.DE/pub/digi/krueger2.pdf>}, 1912) and C++ class\nU{TransverseMercator<https://GeographicLib.SourceForge.io/C++/doc/\nclassGeographicLib_1_1TransverseMercator.html>}.\n\nSome other references are U{Universal Transverse Mercator coordinate system\n<https://WikiPedia.org/wiki/Universal_Transverse_Mercator_coordinate_system>},\nU{Transverse Mercator Projection<https://GeographicLib.SourceForge.io/tm.html>}\nand Henrik Seidel U{'Die Mathematik der Gauß-Krueger-Abbildung'\n<https://DE.WikiPedia.org/wiki/Gauß-Krüger-Koordinatensystem>}, 2006.\n'''\n\nfrom pygeodesy.basics import len2, map2, neg  # splice\nfrom pygeodesy.constants import EPS, EPS0, _K0_UTM, _0_0, _0_0001\nfrom pygeodesy.datums import _ellipsoidal_datum, _WGS84,  _under\nfrom pygeodesy.dms import degDMS, parseDMS2\nfrom pygeodesy.errors import MGRSError, RangeError, _ValueError, \\\n                            _xkwds_get, _xkwds_pop2\nfrom pygeodesy.fmath import fdot_, fdot3, hypot, hypot1,  _operator\n# from pygeodesy.internals import _under  # from .datums\nfrom pygeodesy.interns import MISSING, NN, _by_, _COMMASPACE_, _N_, \\\n                             _NS_, _outside_, _range_, _S_, _scale0_, \\\n                             _SPACE_, _UTM_, _V_, _X_, _zone_\nfrom pygeodesy.lazily import _ALL_LAZY, _ALL_MODS as _MODS\nfrom pygeodesy.namedTuples import EasNor2Tuple, UtmUps5Tuple, \\\n                                  UtmUps8Tuple, UtmUpsLatLon5Tuple\nfrom pygeodesy.props import deprecated_method, property_doc_, \\\n                            Property_RO\nfrom pygeodesy.streprs import Fmt, unstr\nfrom pygeodesy.units import Band, Int, Lat, Lon, Meter, Zone\nfrom pygeodesy.utily import atan1, atan2, degrees90, degrees180, sincos2\nfrom pygeodesy.utmupsBase import _hemi, _LLEB, _parseUTMUPS5, _to4lldn, \\\n                                 _to3zBhp, _to3zll, _UPS_LATS, _UPS_ZONE, \\\n                                 _UTM_LAT_MAX, _UTM_ZONE_MAX, \\\n                                 _UTM_LAT_MIN, _UTM_ZONE_MIN, \\\n                                 _UTM_ZONE_OFF_MAX, UtmUpsBase\n\nfrom math import asinh, atanh, cos, cosh, degrees, fabs, radians, \\\n                 sin, sinh, tan, tanh  # tan as _tan\n# import operator as _operator  # from .fmath\n\n__all__ = _ALL_LAZY.utm\n__version__ = '24.11.26'\n\n_Bands = 'CDEFGHJKLMNPQRSTUVWXX'  # UTM latitude bands C..X (no\n# I|O) 8° each, covering 80°S to 84°N and X repeated for 80-84°N\n_bandLat_      = 'bandLat'\n_FalseEasting  =  Meter(  500e3)  # falsed offset (C{meter})\n_FalseNorthing =  Meter(10000e3)  # falsed offset (C{meter})\n_SvalbardXzone = {32: 9, 34: 21, 36: 33}  # [zone] longitude\n\n\nclass UTMError(_ValueError):\n    '''Universal Transverse Mercator (UTM parse or other L{Utm} issue.\n    '''\n    pass\n\n\nclass _Kseries(object):\n    '''(INTERNAL) Alpha or Beta Krüger series.\n\n       Krüger series summations for B{C{eta}}, B{C{ksi}}, B{C{p}} and B{C{q}},\n       caching the C{cos}, C{cosh}, C{sin} and C{sinh} values for\n       the given B{C{eta}} and B{C{ksi}} angles (in C{radians}).\n    '''\n    def __init__(self, AB, x, y):\n        '''(INTERNAL) New Alpha or Beta Krüger series\n\n           @arg AB: Krüger Alpha or Beta series coefficients\n                      (C{4-, 6- or 8-tuple}).\n           @arg x: Eta angle (C{radians}).\n           @arg y: Ksi angle (C{radians}).\n        '''\n        n,   j2 = len2(range(2, len(AB) * 2 + 1, 2))\n        _m2, _x = map2, _operator.mul\n\n        self._ab =  AB\n        self._pq = _m2(_x, j2, AB)\n#       assert len(self._ab) == len(self._pq) == n\n\n        x2 = _m2(_x, j2, (x,) * n)\n        self._chx = _m2(cosh, x2)\n        self._shx = _m2(sinh, x2)\n#       assert len(x2) == len(self._chx) == len(self._shx) == n\n\n        y2 = _m2(_x, j2, (y,) * n)\n        self._cy = _m2(cos, y2)\n        self._sy = _m2(sin, y2)\n        # self._sy, self._cy = splice(sincos2(*y2))  # PYCHOK false\n#       assert len(y2) == len(self._cy) == len(self._sy) == n\n\n    def xs(self, x0):\n        '''(INTERNAL) Eta summation (C{float}).\n        '''\n        return fdot3(self._ab, self._cy, self._shx, start=x0)\n\n    def ys(self, y0):\n        '''(INTERNAL) Ksi summation (C{float}).\n        '''\n        return fdot3(self._ab, self._sy, self._chx, start=y0)\n\n    def ps(self, p0):\n        '''(INTERNAL) P summation (C{float}).\n        '''\n        return fdot3(self._pq, self._cy, self._chx, start=p0)\n\n    def qs(self, q0):\n        '''(INTERNAL) Q summation (C{float}).\n        '''\n        return fdot3(self._pq, self._sy, self._shx, start=q0)\n\n\nclass Utm(UtmUpsBase):\n    '''Universal Transverse Mercator (UTM) coordinate.\n    '''\n#   _band   =  NN        # latitudinal band letter ('C'|..|'X', no 'I'|'O')\n    _Bands  = _Bands     # latitudinal Band letters (C{tuple})\n    _Error  =  UTMError  # or etm.ETMError\n#   _scale  =  None      # grid scale factor (C{scalar}) or C{None}\n    _scale0 = _K0_UTM    # central scale factor (C{scalar})\n    _zone   =  0         # longitudinal zone (C{int} 1..60)\n\n    def __init__(self, zone=31, hemisphere=_N_, easting=166022,  # PYCHOK expected\n                                northing=0, band=NN, datum=_WGS84, falsed=True,\n                                gamma=None, scale=None, **name_convergence):\n        '''New L{Utm} UTM coordinate.\n\n           @kwarg zone: Longitudinal UTM zone (C{int}, 1..60) or zone with/-out\n                        I{latitudinal} Band letter (C{str}, '1C'|..|'60X').\n           @kwarg hemisphere: Northern or southern hemisphere (C{str}, C{'N[orth]'}\n                              or C{'S[outh]'}).\n           @kwarg easting: Easting, see B{C{falsed}} (C{meter}).\n           @kwarg northing: Northing, see B{C{falsed}} (C{meter}).\n           @kwarg band: Optional, I{latitudinal} band (C{str}, 'C'|..|'X', no 'I'|'O').\n           @kwarg datum: Optional, this coordinate's datum (L{Datum}, L{Ellipsoid},\n                         L{Ellipsoid2} or L{a_f2Tuple}).\n           @kwarg falsed: If C{True}, both B{C{easting}} and B{C{northing}} are\n                          falsed (C{bool}).\n           @kwarg gamma: Optional meridian convergence, bearing off grid North,\n                         clockwise from true North to save (C{degrees}) or C{None}.\n           @kwarg scale: Optional grid scale factor to save (C{scalar}) or C{None}.\n           @kwarg name_convergence: Optional C{B{name}=NN} (C{str}) and DEPRECATED\n                       keyword argument C{B{convergence}=None}, use B{C{gamma}}.\n\n           @raise TypeError: Invalid or near-spherical B{C{datum}}.\n\n           @raise UTMError: Invalid B{C{zone}}, B{C{hemishere}}, B{C{easting}},\n                            B{C{northing}}, B{C{band}}, B{C{convergence}} or\n                            B{C{scale}}.\n        '''\n        if name_convergence:\n            gamma, name = _xkwds_pop2(name_convergence, convergence=gamma)\n            if name:\n                self.name = name\n\n        self._zone, B, _ = _to3zBlat(zone, band)\n\n        h = str(hemisphere)[:1].upper()\n        if h not in _NS_:\n            raise self._Error(hemisphere=hemisphere)\n        self._hemisphere = h\n\n        e, n = easting, northing  # Easting(easting), ...\n#       if not falsed:\n#           e, n = _false2(e, n, h)\n#       # check easting/northing (with 40km overlap\n#       # between zones) - is this worthwhile?\n#       @raise RangeError: If B{C{easting}} or B{C{northing}} outside\n#                          the valid UTM range.\n#       if 120e3 > e or e > 880e3:\n#           raise RangeError(easting=easting)\n#       if 0 > n or n > _FalseNorthing:\n#           raise RangeError(northing=northing)\n\n        UtmUpsBase.__init__(self, e, n, band=B, datum=datum, falsed=falsed,\n                                                gamma=gamma, scale=scale)\n\n    def __eq__(self, other):\n        return isinstance(other, Utm) and other.zone       == self.zone \\\n                                      and other.hemisphere == self.hemisphere \\\n                                      and other.easting    == self.easting \\\n                                      and other.northing   == self.northing \\\n                                      and other.band       == self.band \\\n                                      and other.datum      == self.datum\n\n    def __repr__(self):\n        return self.toRepr(B=True)\n\n    def __str__(self):\n        return self.toStr()\n\n    def _xcopy2(self, Xtm, **name):\n        '''(INTERNAL) Make copy as an B{C{Xtm}} instance.\n\n           @arg Xtm: Class to return the copy (C{Xtm=Etm}, C{Xtm=Utm} or\n                     C{self.classof}).\n        '''\n        return Xtm(self.zone, self.hemisphere, self.easting, self.northing,\n                   band=self.band, datum=self.datum, falsed=self.falsed,\n                   gamma=self.gamma, scale=self.scale, name=self._name__(name))\n\n    @property_doc_(''' the I{latitudinal} band.''')\n    def band(self):\n        '''Get the I{latitudinal} band (C{'C'|..|'X'}).\n        '''\n        if not self._band:\n            self._toLLEB()\n        return self._band\n\n    @band.setter  # PYCHOK setter!\n    def band(self, band):\n        '''Set or reset the I{latitudinal} band letter (C{'C'|..|'X'})\n           or C{None} or C{\"\"} to reset.\n\n           @raise TypeError: Invalid B{C{band}}.\n\n           @raise ValueError: Invalid B{C{band}}.\n        '''\n        self._band1(band)\n\n    @Property_RO\n    def _etm(self):\n        '''(INTERNAL) Cache for method L{toEtm}.\n        '''\n        return self._xcopy2(_MODS.etm.Etm)\n\n    @Property_RO\n    def falsed2(self):\n        '''Get the easting and northing falsing (L{EasNor2Tuple}C{(easting, northing)}).\n        '''\n        e = n = 0\n        if self.falsed:\n            e = _FalseEasting  # relative to central meridian\n            if self.hemisphere == _S_:  # relative to equator\n                n = _FalseNorthing\n        return EasNor2Tuple(e, n)\n\n    def parse(self, strUTM, **name):\n        '''Parse a string to a similar L{Utm} instance.\n\n           @arg strUTM: The UTM coordinate (C{str}), see function L{parseUTM5}.\n           @kwarg name: Optional instance name (C{str}), overriding this name.\n\n           @return: The similar instance (L{Utm}).\n\n           @raise UTMError: Invalid B{C{strUTM}}.\n\n           @see: Functions L{pygeodesy.parseUPS5} and L{pygeodesy.parseUTMUPS5}.\n        '''\n        return parseUTM5(strUTM, datum=self.datum, Utm=self.classof,\n                                 name=self._name__(name))\n\n    @deprecated_method\n    def parseUTM(self, strUTM):  # PYCHOK no cover\n        '''DEPRECATED, use method L{Utm.parse}.'''\n        return self.parse(strUTM)\n\n    @Property_RO\n    def pole(self):\n        '''Get the top center of (stereographic) projection, C{\"\"} always.\n        '''\n        return NN  # N/A for UTM\n\n    def toEtm(self):\n        '''Copy this UTM to an ETM coordinate.\n\n           @return: The ETM coordinate (L{Etm}).\n        '''\n        return self._etm\n\n    def toLatLon(self, LatLon=None, eps=EPS, unfalse=True, **LatLon_kwds):\n        '''Convert this UTM coordinate to an (ellipsoidal) geodetic point.\n\n           @kwarg LatLon: Optional, ellipsoidal class to return the geodetic\n                          point (C{LatLon}) or C{None}.\n           @kwarg eps: Optional convergence limit, L{EPS} or above (C{float}).\n           @kwarg unfalse: Unfalse B{C{easting}} and B{C{northing}}\n                           if falsed (C{bool}).\n           @kwarg LatLon_kwds: Optional, additional B{C{LatLon}} keyword\n                               arguments, ignored if C{B{LatLon} is None}.\n\n           @return: This UTM as (B{C{LatLon}}) or if B{C{LatLon}} is\n                    C{None}, as L{LatLonDatum5Tuple}C{(lat, lon, datum,\n                    gamma, scale)}.\n\n           @raise TypeError: Invalid B{C{datum}} or B{C{LatLon}} is not ellipsoidal.\n\n           @raise UTMError: Invalid meridional radius or H-value.\n\n        '''\n        if eps < EPS:\n            eps = EPS  # less doesn't converge\n\n        if self._latlon and self._latlon._toLLEB_args == (unfalse, eps):\n            return self._latlon5(LatLon)\n        else:\n            self._toLLEB(unfalse=unfalse, eps=eps)\n            return self._latlon5(LatLon, **LatLon_kwds)\n\n    def _toLLEB(self, unfalse=True, eps=EPS):  # PYCHOK signature\n        '''(INTERNAL) Compute (ellipsoidal) lat- and longitude.\n        '''\n        x, y = self.eastingnorthing2(falsed=not unfalse)\n\n        E  = self.datum.ellipsoid\n        # from Karney 2011 Eq 15-22, 36\n        A0 = self.scale0 * E.A\n        if A0 < EPS0:\n            raise self._Error(meridional=A0)\n        x =  x / A0  # /= chokes PyChecker\n        y =  y / A0\n        K = _Kseries(E.BetaKs, x, y)  # Krüger series\n        x =  neg(K.xs(-x))  # η' eta\n        y =  neg(K.ys(-y))  # ξ' ksi\n\n        sy, cy = sincos2(y)\n        shx = sinh(x)\n        H   = hypot(shx, cy)\n        if H < EPS0:\n            raise self._Error(H=H)\n\n        T =  sy / H  # τʹ == τ0\n        p = _0_0  # previous d\n        e = _0_0001 * eps\n        for T, i, d in E._es_tauf3(T, T):  # 4-5 trips\n            # d may toggle on +/-1.12e-16 or +/-4.47e-16,\n            # see the references at C{Ellipsoid.es_tauf}\n            if fabs(d) < eps or fabs(d + p) < e:\n                break\n            p = d\n        else:\n            t = unstr(self.toLatLon, eps=eps, unfalse=unfalse)\n            raise self._Error(Fmt.no_convergence(d, eps), txt=t)\n\n        a = atan1(T)  # phi, lat\n        b = atan2(shx, cy)\n        if unfalse and self.falsed:\n            b += radians(_cmlon(self.zone))\n        ll = _LLEB(degrees90(a), degrees180(b), datum=self.datum, name=self.name)\n\n        # gamma and scale: Karney 2011 Eq 26, 27 and 28\n        p = neg(K.ps(-1))\n        q =     K.qs(0)\n        g = degrees(atan1(tan(y) * tanh(x)) + atan2(q, p))\n        k = hypot(p, q) * E.a / A0\n        if k:\n            k = E.e2s(sin(a)) * hypot1(T) * H / k  # INF?\n        ll._iteration = i\n        self._latlon5args(ll, g, k, _toBand, unfalse, eps)\n\n    def toRepr(self, prec=0, fmt=Fmt.SQUARE, sep=_COMMASPACE_, B=False, cs=False, **unused):  # PYCHOK expected\n        '''Return a string representation of this UTM coordinate.\n\n           Note that UTM coordinates are rounded, not truncated (unlike\n           MGRS grid references).\n\n           @kwarg prec: Number of (decimal) digits, unstripped (C{int}).\n           @kwarg fmt: Enclosing backets format (C{str}).\n           @kwarg sep: Optional separator between name:value pairs (C{str}).\n           @kwarg B: Optionally, include latitudinal band (C{bool}).\n           @kwarg cs: Optionally, include meridian convergence and grid\n                      scale factor (C{bool} or non-zero C{int} to specify\n                      the precison like B{C{prec}}).\n\n           @return: This UTM as a string C{\"[Z:09[band], H:N|S, E:meter,\n                    N:meter]\"} plus C{\", C:degrees, S:float\"} if C{B{cs}\n                    is True} (C{str}).\n        '''\n        return self._toRepr(fmt, B, cs, prec, sep)\n\n    def toStr(self, prec=0, sep=_SPACE_, B=False, cs=False):  # PYCHOK expected\n        '''Return a string representation of this UTM coordinate.\n\n           To distinguish from MGRS grid zone designators, a space is\n           left between the zone and the hemisphere.\n\n           Note that UTM coordinates are rounded, not truncated (unlike\n           MGRS grid references).\n\n           @kwarg prec: Number of (decimal) digits, unstripped (C{int}).\n           @kwarg sep: Optional separator to join (C{str}) or C{None}\n                       to return an unjoined C{tuple} of C{str}s.\n           @kwarg B: Optionally, include latitudinal band (C{bool}).\n           @kwarg cs: Optionally, include meridian convergence and grid\n                      scale factor (C{bool} or non-zero C{int} to specify\n                      the precison like B{C{prec}}).\n\n           @return: This UTM as a string with C{zone[band], hemisphere,\n                    easting, northing, [convergence, scale]} in\n                    C{\"00 N|S meter meter\"} plus C{\" degrees float\"} if\n                    C{B{cs} is True} (C{str}).\n        '''\n        return self._toStr(self.hemisphere, B, cs, prec, sep)\n\n    def toUps(self, pole=NN, eps=EPS, falsed=True, **unused):\n        '''Convert this UTM coordinate to a UPS coordinate.\n\n           @kwarg pole: Optional top/center of the UPS projection,\n                        (C{str}, 'N[orth]'|'S[outh]').\n           @kwarg eps: Optional convergence limit, L{EPS} or above\n                       (C{float}), see method L{Utm.toLatLon}.\n           @kwarg falsed: If C{True}, false both easting and northing\n                          (C{bool}).\n\n           @return: The UPS coordinate (L{Ups}).\n        '''\n        u = self._ups\n        if u is None or u.pole != (pole or u.pole) or bool(falsed) != u.falsed:\n            ll  =  self.toLatLon(LatLon=_LLEB, eps=eps, unfalse=True)\n            ups = _MODS.ups\n            self._ups = u = ups.toUps8(ll, Ups=ups.Ups, falsed=falsed,\n                                           name=self.name, pole=pole)\n        return u\n\n    def toUtm(self, zone, eps=EPS, falsed=True, **unused):\n        '''Convert this UTM coordinate to a different zone.\n\n           @arg zone: New UTM zone (C{int}).\n           @kwarg eps: Optional convergence limit, L{EPS} or above\n                       (C{float}), see method L{Utm.toLatLon}.\n           @kwarg falsed: If C{True}, fFalse both easting and northing\n                          (C{bool}).\n\n           @return: The UTM coordinate (L{Utm}).\n        '''\n        if zone == self.zone and falsed == self.falsed:\n            return self.copy()\n        elif zone:\n            u = self._utm\n            if u is None or u.zone != zone or bool(falsed) != u.falsed:\n                ll = self.toLatLon(LatLon=_LLEB, eps=eps, unfalse=True)\n                self._utm = u = toUtm8(ll, Utm=self.classof, falsed=falsed,\n                                           name=self.name, zone=zone)\n            return u\n        raise self._Error(zone=zone)\n\n    @Property_RO\n    def zone(self):\n        '''Get the (longitudinal) zone (C{int}, 1..60).\n        '''\n        return self._zone\n\n\ndef _cmlon(zone):\n    '''(INTERNAL) Central meridian longitude (C{degrees180}).\n    '''\n    return (zone * 6) - 183\n\n\ndef _false2(e, n, h):\n    '''(INTERNAL) False easting and northing.\n    '''\n    # Karney, \"Test data for the transverse Mercator projection (2009)\"\n    # <https://GeographicLib.SourceForge.io/C++/doc/transversemercator.html>\n    # and <https://Zenodo.org/record/32470#.W4LEJS2ZON8>\n    e += _FalseEasting  # make e relative to central meridian\n    if h == _S_:\n        n += _FalseNorthing  # make n relative to equator\n    return e, n\n\n\ndef _parseUTM5(strUTM, datum, Xtm, falsed, Error=UTMError, **name):  # imported by .etm\n    '''(INTERNAL) Parse a string representing a UTM coordinate,\n       consisting of C{\"zone[band] hemisphere easting northing\"},\n       see L{pygeodesy.parseETM5} and L{parseUTM5}.\n    '''\n    z, h, e, n, B = _parseUTMUPS5(strUTM, None, Error=Error)\n    if _UTM_ZONE_MIN > z or z > _UTM_ZONE_MAX or (B and B not in _Bands):\n        raise Error(strUTM=strUTM, zone=z, band=B)\n\n    return UtmUps5Tuple(z, h, e, n, B, Error=Error, **name) if Xtm is None else \\\n                    Xtm(z, h, e, n, band=B, datum=datum, falsed=bool(falsed), **name)\n\n\ndef parseUTM5(strUTM, datum=_WGS84, Utm=Utm, falsed=True, **name):\n    '''Parse a string representing a UTM coordinate, consisting\n       of C{\"zone[band] hemisphere easting northing\"}.\n\n       @arg strUTM: A UTM coordinate (C{str}).\n       @kwarg datum: Optional datum to use (L{Datum}, L{Ellipsoid},\n                     L{Ellipsoid2} or L{a_f2Tuple}).\n       @kwarg Utm: Optional class to return the UTM coordinate (L{Utm})\n                   or C{None}.\n       @kwarg falsed: Use C{B{falsed}=False} if both easting and northing\n                      are I{not falsed} (C{bool}).\n       @kwarg name: Optional C{B{name}=NN} (C{str}).\n\n       @return: The UTM coordinate (B{C{Utm}}) or if C{B{Utm} is None}, a\n                L{UtmUps5Tuple}C{(zone, hemipole, easting, northing, band)}.\n                The C{hemipole} is the C{'N'|'S'} hemisphere.\n\n       @raise UTMError: Invalid B{C{strUTM}}.\n\n       @raise TypeError: Invalid B{C{datum}}.\n    '''\n    return _parseUTM5(strUTM, datum, Utm, falsed, **name)\n\n\ndef toUtm8(latlon, lon=None, datum=None, Utm=Utm, falsed=True,\n                             strict=True, zone=None, **name_cmoff):\n    '''Convert a lat-/longitude point to a UTM coordinate.\n\n       @arg latlon: Latitude (C{degrees}) or an (ellipsoidal)\n                    geodetic C{LatLon} point.\n       @kwarg lon: Longitude (C{degrees}), required if B{C{latlon}} is\n                   C{degrees}, ignored otherwise.\n       @kwarg datum: Optional datum for this UTM coordinate, overriding\n                     B{C{latlon}}'s datum (L{Datum}, L{Ellipsoid}, L{Ellipsoid2}\n                     or L{a_f2Tuple}).\n       @kwarg Utm: Optional class to return the UTM coordinate (L{Utm}) or C{None}.\n       @kwarg falsed: If C{True}, false both easting and northing (C{bool}).\n       @kwarg strict: If C{True}, restrict B{C{lat}} to UTM ranges (C{bool}).\n       @kwarg zone: Optional UTM zone to enforce (C{int} or C{str}).\n       @kwarg name_cmoff: Optional C{B{name}=NN} (C{str}) and DEPRECATED keyword\n                   argument C{B{cmoff}=True} to offset the longitude from the zone's\n                   central meridian (C{bool}), use C{B{falsed}} instead.\n\n       @return: The UTM coordinate (B{C{Utm}}) or if C{B{Utm} is None} or C{B{falsed}\n                is False}, a L{UtmUps8Tuple}C{(zone, hemipole, easting, northing, band,\n                datum, gamma, scale)} where C{hemipole} is the C{'N'|'S'} hemisphere.\n\n       @raise RangeError: If B{C{lat}} outside the valid UTM bands or if B{C{lat}}\n                          or B{C{lon}} outside the valid range and L{rangerrors\n                          <pygeodesy.rangerrors>} is C{True}.\n\n       @raise TypeError: Invalid B{C{datum}} or B{C{latlon}} not ellipsoidal.\n\n       @raise UTMError: Invalid B{C{zone}}.\n\n       @raise ValueError: If B{C{lon}} is missing or B{C{latlon}} is invalid.\n\n       @note: Implements Karney’s method, using 8-th order Krüger series, giving\n              results accurate to 5 nm (or better) for distances up to 3,900 Km\n              from the central meridian.\n    '''\n    z, B, lat, lon, d, f, n = _to7zBlldfn(latlon, lon, datum,\n                                          falsed, zone, strict,\n                                          UTMError, **name_cmoff)\n    d = _ellipsoidal_datum(d, name=n)\n    E = d.ellipsoid\n\n    a, b = radians(lat), radians(lon)\n    # easting, northing: Karney 2011 Eq 7-14, 29, 35\n    sb, cb = sincos2(b)\n\n    T   = tan(a)\n    T12 = hypot1(T)\n    S   = sinh(E.e * atanh(E.e * T / T12))\n\n    T_ = fdot_(T, hypot1(S), -S, T12)\n    H  = hypot(T_, cb)\n\n    y = atan2(T_, cb)  # ξ' ksi\n    x = asinh(sb / H)  # η' eta\n\n    A0 = E.A * getattr(Utm, _under(_scale0_), _K0_UTM)  # Utm is class or None\n\n    K = _Kseries(E.AlphaKs, x, y)  # Krüger series\n    y =  K.ys(y) * A0  # ξ\n    x =  K.xs(x) * A0  # η\n\n    # convergence: Karney 2011 Eq 23, 24\n    p_ = K.ps(1)\n    q_ = K.qs(0)\n    g  = degrees(atan2(T_ * tan(b), hypot1(T_)) + atan2(q_, p_))\n    # scale: Karney 2011 Eq 25\n    k  = E.e2s(sin(a)) * T12 / H * (A0 / E.a * hypot(p_, q_))\n\n    return _toXtm8(Utm, z, lat, x, y,\n                        B, d, g, k, f, n, latlon, EPS)\n\n\ndef _toBand(lat, *unused, **strict_Error):  # see ups._toBand\n    '''(INTERNAL) Get the I{latitudinal} Band (row) letter.\n    '''\n    if _UTM_LAT_MIN <= lat < _UTM_LAT_MAX:  # [-80, 84) like Veness\n        return _Bands[int(lat - _UTM_LAT_MIN) >> 3]\n    elif _xkwds_get(strict_Error, strict=True):\n        r = _range_(_UTM_LAT_MIN, _UTM_LAT_MAX, ropen=True)\n        t = _SPACE_(_outside_, _UTM_, _range_, r)\n        E = _xkwds_get(strict_Error, Error=RangeError)\n        raise E(lat=degDMS(lat), txt=t)\n    else:\n        return NN  # None\n\n\ndef _toXtm8(Xtm, z, lat, x, y, B, d, g, k, f,  # PYCHOK 13+ args\n                 n, latlon, eps_other, Error=UTMError):\n    '''(INTERNAL) Helper for methods L{toEtm8} and L{toUtm8}.\n    '''\n    h = _hemi(lat)\n    if f:\n        x, y = _false2(x, y, h)\n    if Xtm is None:  # DEPRECATED\n        r = UtmUps8Tuple(z, h, x, y, B, d, g, k, Error=Error, name=n)\n    else:\n        r = Xtm(z, h, x, y, band=B, datum=d, falsed=f,\n                                    gamma=g, scale=k, name=n)\n        if isinstance(latlon, _LLEB) and d is latlon.datum:  # see ups.toUtm8\n            r._latlon5args(latlon, g, k, _toBand, f, eps_other)  # XXX weakref(latlon)?\n        elif not r._band:\n            r._band = _toBand(lat)\n    return r\n\n\ndef _to3zBlat(zone, band, Error=UTMError):  # in .mgrs\n    '''(INTERNAL) Check and return zone, Band and band latitude.\n\n       @arg zone: Zone number or string.\n       @arg band: Band letter.\n       @arg Error: Exception to raise (L{UTMError}).\n\n       @return: 3-Tuple (zone, Band, latitude).\n    '''\n    z, B, _ = _to3zBhp(zone, band, Error=Error)\n    if not (_UTM_ZONE_MIN <= z <= _UTM_ZONE_MAX or\n           (_UPS_ZONE == z and Error is MGRSError)):\n        raise Error(zone=zone)\n\n    b = None\n    if B:\n        if z == _UPS_ZONE:  # polar\n            try:\n                b = Lat(_UPS_LATS[B], name=_bandLat_)\n            except KeyError:\n                raise Error(band=band or B, zone=z)\n        else:  # UTM\n            b = _Bands.find(B)\n            if b < 0:\n                raise Error(band=band or B, zone=z)\n            b = Int((b << 3) - 80, name=_bandLat_)\n        B = Band(B)\n    elif Error is not UTMError:\n        raise Error(band=band, txt=MISSING)\n\n    return Zone(z), B, b\n\n\ndef _to4zBll(lat, lon, cmoff=True, strict=True, Error=RangeError):\n    '''(INTERNAL) Return zone, Band and lat- and (central) longitude in degrees.\n\n       @arg lat: Latitude (C{degrees}).\n       @arg lon: Longitude (C{degrees}).\n       @kwarg cmoff: If C{True}, offset B{C{lon}} from the zone's central meridian.\n       @kwarg strict: Restrict B{C{lat}} to the UTM ranges (C{bool}).\n       @kwarg Error: Error for out of UTM range B{C{lat}}s.\n\n       @return: 4-Tuple (zone, Band, lat, lon).\n    '''\n    z, lat, lon = _to3zll(lat, lon)  # in .utmupsBase\n\n    x = lon - _cmlon(z)  # z before Norway/Svalbard\n    if fabs(x) > _UTM_ZONE_OFF_MAX:\n        t = _SPACE_(_outside_, _UTM_, _zone_, str(z), _by_, degDMS(x, prec=6))\n        raise Error(lon=degDMS(lon), txt=t)\n\n    B = _toBand(lat, strict=strict, Error=Error)\n    if B == _X_:  # and 0 <= lon < 42: z = int(lon + 183) // 6 + 1\n        x = _SvalbardXzone.get(z, None)\n        if x:  # Svalbard/Spitsbergen archipelago\n            z += 1 if lon >= x else -1\n    elif B == _V_ and z == 31 and lon >= 3:\n        z += 1  # SouthWestern Norway\n\n    if cmoff:  # lon off central meridian\n        lon -= _cmlon(z)  # z I{after} Norway/Svalbard\n    return Zone(z), (Band(B) if B else None), Lat(lat), Lon(lon)\n\n\ndef _to7zBlldfn(latlon, lon, datum, falsed, zone, strict, Error, **name_cmoff):\n    '''(INTERNAL) Determine 7-tuple (zone, band, lat, lon, datum,\n        falsed, name) for methods L{toEtm8} and L{toUtm8}.\n    '''\n    f, name = _xkwds_pop2(name_cmoff, cmoff=falsed)  # DEPRECATED\n    lat, lon, d, n = _to4lldn(latlon, lon, datum, name)\n    z, B, lat, lon = _to4zBll(lat, lon, cmoff=f, strict=strict)\n    if zone:  # re-zone for ETM/UTM\n        r, _, _ = _to3zBhp(zone, B)\n        if r != z:\n            if not _UTM_ZONE_MIN <= r <= _UTM_ZONE_MAX:\n                raise Error(zone=zone)\n            if f:  # re-offset from central meridian\n                lon += _cmlon(z) - _cmlon(r)\n            z = r\n    return z, B, lat, lon, d, f, n\n\n\ndef utmZoneBand5(lat, lon, cmoff=False, **name):\n    '''Return the UTM zone number, Band letter, hemisphere and\n       (clipped) lat- and longitude for a given location.\n\n       @arg lat: Latitude in degrees (C{scalar} or C{str}).\n       @arg lon: Longitude in degrees (C{scalar} or C{str}).\n       @kwarg cmoff: If C{True}, offset longitude from the zone's central\n                     meridian (C{bool}).\n       @kwarg name: Optional C{B{name}=NN} (C{str}).\n\n       @return: A L{UtmUpsLatLon5Tuple}C{(zone, band, hemipole, lat, lon)}\n                where C{hemipole} is the C{'N'|'S'} UTM hemisphere.\n\n       @raise RangeError: If B{C{lat}} outside the valid UTM bands or if\n                          B{C{lat}} or B{C{lon}} outside the valid range and\n                          L{rangerrors<pygeodesy.rangerrors>} is C{True}.\n\n       @raise ValueError: Invalid B{C{lat}} or B{C{lon}}.\n    '''\n    lat, lon = parseDMS2(lat, lon)\n    z, B, lat, lon = _to4zBll(lat, lon, cmoff=cmoff)\n    return UtmUpsLatLon5Tuple(z, B, _hemi(lat), lat, lon, **name)\n\n# **) MIT License\n#\n# Copyright (C) 2016-2026 -- mrJean1 at Gmail -- All Rights Reserved.\n#\n# Permission is hereby granted, free of charge, to any person obtaining a\n# copy of this software and associated documentation files (the \"Software\"),\n# to deal in the Software without restriction, including without limitation\n# the rights to use, copy, modify, merge, publish, distribute, sublicense,\n# and/or sell copies of the Software, and to permit persons to whom the\n# Software is furnished to do so, subject to the following conditions:\n#\n# The above copyright notice and this permission notice shall be included\n# in all copies or substantial portions of the Software.\n#\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL\n# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR\n# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\n# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n# OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "pygeodesy/utmups.py",
    "content": "\n# -*- coding: utf-8 -*-\n\nu'''I{Karney}'s UTM and UPS utilities.\n\nFunctions L{parseUTMUPS5}, L{toUtmUps8}, L{UtmUps} and L{utmupsZoneBand5}\nto handle both I{Universal Transverse Mercator} (U{UTM\n<https://WikiPedia.org/wiki/Universal_Transverse_Mercator_coordinate_system>})\nand I{Universal Polar Stereographic} (U{UPS\n<https://WikiPedia.org/wiki/Universal_polar_stereographic_coordinate_system>})\ncoordinates.\n\nA pure Python implementation, partially transcoded from C++ class U{UTMUPS\n<https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1UTMUPS.html>}\nby I{Charles Karney}.\n'''\nfrom pygeodesy.basics import _isin, map1\n# from pygeodesy.datums import _WGS84  # from .utmupsBase\nfrom pygeodesy.errors import _IsnotError, RangeError, _ValueError, _xkwds_pop2\nfrom pygeodesy.interns import NN, _easting_, _MGRS_, _northing_, _NS_, \\\n                             _outside_, _range_, _SPACE_, _UPS_, _UTM_\nfrom pygeodesy.lazily import _ALL_LAZY, _ALL_MODS as _MODS\nfrom pygeodesy.named import modulename\nfrom pygeodesy.namedTuples import UtmUps5Tuple, UtmUps8Tuple\n# from pygeodesy.streprs import Fmt  # from .utmupsBase\nfrom pygeodesy.units import Northing, _100km\nfrom pygeodesy.ups import parseUPS5, toUps8, Ups, UPSError, upsZoneBand5\nfrom pygeodesy.utm import parseUTM5, toUtm8, Utm, UTMError, utmZoneBand5\nfrom pygeodesy.utmupsBase import Fmt, _to4lldn, _to3zBhp, _UPS_ZONE, \\\n                                _UPS_ZONE_STR, _UTMUPS_ZONE_MIN, \\\n                                _UTMUPS_ZONE_MAX, _WGS84\n\n__all__ = _ALL_LAZY.utmups\n__version__ = '25.04.14'\n\n_MGRS_TILE = _100km  # in .mgrs.Mgrs.tile\n\n_UPS_N_MAX = Northing( 27 * _MGRS_TILE)\n_UPS_N_MIN = Northing( 13 * _MGRS_TILE)\n_UPS_S_MAX = Northing( 32 * _MGRS_TILE)\n_UPS_S_MIN = Northing(  8 * _MGRS_TILE)\n\n_UTM_C_MAX = Northing(  9 * _MGRS_TILE)\n_UTM_C_MIN = Northing(  1 * _MGRS_TILE)\n_UTM_N_MAX = Northing( 95 * _MGRS_TILE)\n_UTM_N_MIN = Northing(  0 * _MGRS_TILE)\n_UTM_S_MAX = Northing(100 * _MGRS_TILE)\n_UTM_S_MIN = Northing( 10 * _MGRS_TILE)\n\n_UTM_N_SHIFT = _UTM_S_MAX - _UTM_N_MIN  # South minus North UTM northing\n\n\nclass _UpsMinMax(object):  # XXX _NamedEnum or _NamedTuple\n    # UPS ranges for North, South pole\n    eMax = _UPS_N_MAX, _UPS_S_MAX\n    eMin = _UPS_N_MIN, _UPS_S_MIN\n    nMax = _UPS_N_MAX, _UPS_S_MAX\n    nMin = _UPS_N_MIN, _UPS_S_MIN\n\n\nclass _UtmMinMax(object):  # XXX _NamedEnum or _NamedTuple\n    # UTM ranges for Northern, Southern hemisphere\n    eMax = _UTM_C_MAX, _UTM_C_MAX\n    eMin = _UTM_C_MIN, _UTM_C_MIN\n    nMax = _UTM_N_MAX, Northing(_UTM_N_MAX + _UTM_N_SHIFT)\n    nMin =  Northing(_UTM_S_MIN - _UTM_N_SHIFT), _UTM_S_MIN\n\n\nclass UTMUPSError(_ValueError):  # XXX (UTMError, UPSError)\n    '''Universal Transverse Mercator/Universal Polar Stereographic\n       (UTM/UPS) parse, validate or other issue.\n    '''\n    pass\n\n\ndef parseUTMUPS5(strUTMUPS, datum=_WGS84, Utm=Utm, Ups=Ups, **name):\n    '''Parse a string representing a UTM or UPS coordinate, consisting\n       of C{\"zone[band] hemisphere/pole easting northing\"}.\n\n       @arg strUTMUPS: A UTM or UPS coordinate (C{str}).\n       @kwarg datum: Optional datum to use (L{Datum}).\n       @kwarg Utm: Optional class to return the UTM coordinate (L{Utm})\n                   or C{None}.\n       @kwarg Ups: Optional class to return the UPS coordinate (L{Ups})\n                   or C{None}.\n       @kwarg name: Optional B{C{Utm}} or B{C{Ups}} C{B{name}=NN} (C{str}).\n\n       @return: The UTM or UPS instance (B{C{Utm}} or B{C{Ups}}) or a\n                L{UtmUps5Tuple}C{(zone, hemipole, easting, northing, band)}\n                if B{C{Utm}} respectively B{C{Ups}} or both are C{None}.\n                The C{hemipole} is C{'N'|'S'}, the UTM hemisphere or UPS\n                pole, the UPS projection top/center.\n\n       @raise UTMUPSError: Invalid B{C{strUTMUPS}}.\n\n       @see: Functions L{pygeodesy.parseUTM5} and L{pygeodesy.parseUPS5}.\n    '''\n    try:\n        try:\n            u = parseUTM5(strUTMUPS, datum=datum, Utm=Utm, name=name)\n        except UTMError:\n            u = parseUPS5(strUTMUPS, datum=datum, Ups=Ups, name=name)\n    except (UTMError, UPSError) as x:\n        raise UTMUPSError(strUTMUPS=strUTMUPS, cause=x)\n    return u\n\n\ndef toUtmUps8(latlon, lon=None, datum=None, falsed=True, Utm=Utm, Ups=Ups,\n                                              pole=NN, **name_cmoff):\n    '''Convert a lat-/longitude point to a UTM or UPS coordinate.\n\n       @arg latlon: Latitude (C{degrees}) or an (ellipsoidal)\n                    geodetic C{LatLon} point.\n       @kwarg lon: Longitude (C{degrees}), required if B{C{latlon}} is C{degrees},\n                   ignored otherwise.\n       @kwarg datum: Optional datum to use this UTM coordinate, overriding the\n                     B{C{latlon}}'s datum (C{Datum}).\n       @kwarg falsed: If C{True}, false both easting and northing (C{bool}).\n       @kwarg Utm: Optional class to return the UTM coordinate (L{Utm}) or C{None}.\n       @kwarg Ups: Optional class to return the UPS coordinate (L{Ups}) or C{None}.\n       @kwarg pole: Optional top/center of UPS (stereographic) projection (C{str},\n                    C{'N[orth]'} or C{'S[outh]'}).\n       @kwarg name_cmoff: Optional C{B{name}=NN} (C{str}) and DEPRECATED keyword\n                   argument C{B{cmoff}=True} to offset the longitude from the zone's\n                   central meridian (C{bool}), use B{C{falsed}} instead and I{for\n                   UTM only}.\n\n       @return: The UTM or UPS coordinate (B{C{Utm}} respectively B{C{Ups}}) or a\n                L{UtmUps8Tuple}C{(zone, hemipole, easting, northing, band, datum,\n                gamma, scale)} if B{C{Utm}} respectively C{B{Ups} is None} or if\n                C{B{falsed} is False}.\n\n       @raise RangeError: If B{C{lat}} outside the valid UTM or UPS bands or if\n                          B{C{lat}} or B{C{lon}} outside the valid range and\n                          L{rangerrors<pygeodesy.rangerrors>} is C{True}.\n\n       @raise TypeError: If B{C{latlon}} is not ellipsoidal or B{C{lon}} is missing\n                         or B{C{datum}} is invalid.\n\n       @raise UTMUPSError: UTM or UPS validation failed.\n\n       @raise ValueError: Invalid B{C{lat}} or B{C{lon}}.\n\n       @see: Functions L{pygeodesy.toUtm8} and L{pygeodesy.toUps8}.\n    '''\n    f, name = _xkwds_pop2(name_cmoff, cmoff=falsed)\n    lat, lon, d, n = _to4lldn(latlon, lon, datum, name)\n    z, _, p, lat, lon = utmupsZoneBand5(lat, lon)\n    if z == _UPS_ZONE:\n        u = toUps8(lat, lon, datum=d, falsed=f, Ups=Ups, name=n, pole=pole or p)\n    else:\n        u = toUtm8(lat, lon, datum=d, falsed=f, Utm=Utm, name=n)\n    return u\n\n\ndef UtmUps(zone, hemipole, easting, northing, band=NN, datum=_WGS84, falsed=True, **name):\n    '''Class-like function to create a UTM/UPS coordinate.\n\n       @kwarg zone: The UTM zone with/-out I{longitudinal} Band or UPS zone C{0}\n                    or C{\"00\"} with/-out I{polar} Band (C{str} or C{int}).\n       @kwarg hemipole: UTM hemisphere or UPS top/center of projection (C{str},\n                        C{'N[orth]'} or C{'S[outh]'}).\n       @arg easting: Easting, see B{C{falsed}} (C{meter}).\n       @arg northing: Northing, see B{C{falsed}} (C{meter}).\n       @kwarg band: Optional, UTM I{latitudinal} C{'C'|'D'|..|'W'|'X'} or UPS\n                    I{polar} Band letter C{'A'|'B'|'Y'|'Z'} Band letter (C{str}).\n       @kwarg datum: The coordinate's datum (L{Datum}).\n       @kwarg falsed: If C{True}, both B{C{easting}} and B{C{northing}} are falsed\n                      (C{bool}).\n       @kwarg name: Optional L{Utm} or L{Ups} C{B{name}=NN} (C{str}).\n\n       @return: New UTM or UPS instance (L{Utm} or L{Ups}).\n\n       @raise TypeError: Invalid B{C{datum}}.\n\n       @raise UTMUPSError: UTM or UPS validation failed.\n\n       @see: Classes L{Utm} and L{Ups} and I{Karney}'s U{UTMUPS\n             <https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1UTMUPS.html>}.\n    '''\n    z, B, hp = _to3zBhp(zone, band, hemipole=hemipole)\n    U = Ups if _isin(z, _UPS_ZONE, _UPS_ZONE_STR) else Utm\n    return U(z, hp, easting, northing, band=B, datum=datum, falsed=falsed, **name)\n\n\ndef utmupsValidate(coord, falsed=False, MGRS=False, Error=UTMUPSError):\n    '''Check a UTM or UPS coordinate.\n\n       @arg coord: The UTM or UPS coordinate (L{Utm}, L{Etm}, L{Ups} or\n                   C{5+Tuple}).\n       @kwarg falsed: If C{True}, easting and northing are falsed in the\n                      C{B{coord} 5+Tuple} (C{bool}), ignored otherwise.\n       @kwarg MGRS: Increase easting and northing ranges (C{bool}).\n       @kwarg Error: Optional error to raise, overriding the default\n                     (L{UTMUPSError}).\n\n       @return: C{None} if validation passed.\n\n       @raise Error: Validation failed.\n\n       @see: Function L{utmupsValidateOK}.\n    '''\n\n    def _en(en, lo, hi, ename):  # U, Error\n        try:\n            if lo <= float(en) <= hi:\n                return\n        except (TypeError, ValueError):\n            pass\n        t = _SPACE_(_outside_, U, _range_, _range_(lo, hi))\n        raise Error(ename, en, txt=t)\n\n    if isinstance(coord, (Ups, Utm)):\n        hemi = coord.hemisphere\n        enMM = coord.falsed\n    elif isinstance(coord, (UtmUps5Tuple, UtmUps8Tuple)):\n        hemi = coord.hemipole\n        enMM = falsed\n    else:\n        raise _IsnotError(Error=Error, coord=coord, *map1(modulename,\n                          Utm, Ups, UtmUps5Tuple, UtmUps8Tuple))\n    band = coord.band\n    zone = coord.zone\n\n    z, B, h = _to3zBhp(zone, band, hemipole=hemi)\n\n    if z == _UPS_ZONE:  # UPS\n        u, U, M = _MODS.ups, _UPS_, _UpsMinMax\n    else:  # UTM\n        u, U, M = _MODS.utm, _UTM_, _UtmMinMax\n\n    if MGRS:\n        U, s = _MGRS_, _MGRS_TILE\n    else:\n        s = 0\n\n    i = _NS_.find(h)\n    if i < 0 or z < _UTMUPS_ZONE_MIN \\\n             or z > _UTMUPS_ZONE_MAX \\\n             or B not in u._Bands:\n        t = Fmt.PAREN(U, repr(_SPACE_(NN(Fmt.zone(z), B), h)))\n        raise Error(coord=t, zone=zone, band=band, hemisphere=hemi)\n\n    if enMM:\n        _en(coord.easting,  M.eMin[i] - s, M.eMax[i] + s, _easting_)   # PYCHOK .eMax .eMin\n        _en(coord.northing, M.nMin[i] - s, M.nMax[i] + s, _northing_)  # PYCHOK .nMax .nMin\n\n\ndef utmupsValidateOK(coord, falsed=False, ok=True):\n    '''Check a UTM or UPS coordinate.\n\n       @arg coord: The UTM or UPS coordinate (L{Utm}, L{Ups} or C{5+Tuple}).\n       @kwarg falsed: If C{True}, easting and northing are falsed in the\n                      C{B{coord} 5+Tuple} (C{bool}), ignored otherwise.\n       @kwarg ok: Result to return if validation passed (B{C{ok}}).\n\n       @return: B{C{ok}} if validation passed, otherwise the L{UTMUPSError}.\n\n       @see: Function L{utmupsValidate}.\n    '''\n    try:\n        utmupsValidate(coord, falsed=falsed)\n    except UTMUPSError as x:\n        return x\n    return ok\n\n\ndef utmupsZoneBand5(lat, lon, cmoff=False, **name):\n    '''Return the UTM/UPS zone number, Band letter, hemisphere/pole\n       and clipped lat- and longitude for a given location.\n\n       @arg lat: Latitude in degrees (C{scalar} or C{str}).\n       @arg lon: Longitude in degrees (C{scalar} or C{str}).\n       @kwarg cmoff: If C{True}, offset longitude from the zone's central\n                     meridian, I{for UTM only} (C{bool}).\n       @kwarg name: Optional C{B{name}=NN} (C{str}).\n\n       @return: A L{UtmUpsLatLon5Tuple}C{(zone, band, hemipole, lat, lon)}\n                where C{hemipole} is C{'N'|'S'}, the UTM hemisphere or UPS\n                pole, projection top/center.\n\n       @raise RangeError: If B{C{lat}} outside the valid UTM or UPS bands or\n                          if B{C{lat}} or B{C{lon}} outside the valid range\n                          and L{rangerrors<pygeodesy.rangerrors>} is C{True}.\n\n       @raise ValueError: Invalid B{C{lat}} or B{C{lon}}.\n\n       @see: Functions L{pygeodesy.utmZoneBand5} and L{pygeodesy.upsZoneBand5}.\n    '''\n    try:\n        return utmZoneBand5(lat, lon, cmoff=cmoff, **name)\n    except RangeError:\n        return upsZoneBand5(lat, lon, **name)\n\n# **) MIT License\n#\n# Copyright (C) 2016-2026 -- mrJean1 at Gmail -- All Rights Reserved.\n#\n# Permission is hereby granted, free of charge, to any person obtaining a\n# copy of this software and associated documentation files (the \"Software\"),\n# to deal in the Software without restriction, including without limitation\n# the rights to use, copy, modify, merge, publish, distribute, sublicense,\n# and/or sell copies of the Software, and to permit persons to whom the\n# Software is furnished to do so, subject to the following conditions:\n#\n# The above copyright notice and this permission notice shall be included\n# in all copies or substantial portions of the Software.\n#\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL\n# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR\n# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\n# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n# OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "pygeodesy/utmupsBase.py",
    "content": "\n# -*- coding: utf-8 -*-\n\nu'''(INTERNAL) Private class C{UtmUpsBase}, functions and constants\nfor modules L{epsg}, L{etm}, L{mgrs}, L{ups} and L{utm}.\n'''\n# make sure int/int division yields float quotient, see .basics\nfrom __future__ import division as _; del _  # noqa: E702 ;\n\nfrom pygeodesy.basics import _copysign, _isin, isint, isscalar, isstr, \\\n                              neg_, _xinstanceof, _xsubclassof\nfrom pygeodesy.constants import _float, _0_0, _0_5, _N_90_0, _180_0\nfrom pygeodesy.datums import _ellipsoidal_datum, _WGS84\nfrom pygeodesy.dms import degDMS, parseDMS2\nfrom pygeodesy.ellipsoidalBase import LatLonEllipsoidalBase as _LLEB\nfrom pygeodesy.errors import _or, ParseError, _parseX, _ValueError, \\\n                             _xattrs, _xkwds, _xkwds_not\n# from pygeodesy.fsums import Fsum  # _MODS\n# from pygeodesy.internals import _name__, _under  # from .named\nfrom pygeodesy.interns import NN, _A_, _B_, _COMMA_, _Error_, _gamma_, \\\n                             _n_a_, _not_, _N_, _NS_, _PLUS_, _scale_, \\\n                             _S_, _SPACE_, _Y_, _Z_\nfrom pygeodesy.lazily import _ALL_DOCS, _ALL_LAZY, _ALL_MODS as _MODS\nfrom pygeodesy.named import _name__, _NamedBase,  _under\nfrom pygeodesy.namedTuples import EasNor2Tuple, LatLonDatum5Tuple\nfrom pygeodesy.props import deprecated_method, property_doc_, _update_all, \\\n                            deprecated_property_RO, Property_RO, property_RO\nfrom pygeodesy.streprs import Fmt, fstr, _fstrENH2, _xzipairs\nfrom pygeodesy.units import Band, Easting, Lat, Northing, Phi, Scalar, Zone\nfrom pygeodesy.utily import atan1, _Wrap, wrap360\n\nfrom math import cos, degrees, fabs, sin, tan  # copysign as _copysign\n\n__all__ = _ALL_LAZY.utmupsBase\n__version__ = '25.05.12'\n\n_UPS_BANDS = _A_, _B_, _Y_, _Z_  # UPS polar bands SE, SW, NE, NW\n# _UTM_BANDS = _MODS.utm._Bands\n\n_UTM_LAT_MAX = _float( 84)          # PYCHOK for export (C{degrees})\n_UTM_LAT_MIN = _float(-80)          # PYCHOK for export (C{degrees})\n\n_UPS_LAT_MAX = _UTM_LAT_MAX - _0_5  # PYCHOK includes 30' UTM overlap\n_UPS_LAT_MIN = _UTM_LAT_MIN + _0_5  # PYCHOK includes 30' UTM overlap\n\n_UPS_LATS = {_A_: _N_90_0, _Y_: _UTM_LAT_MAX,  # UPS band bottom latitudes,\n             _B_: _N_90_0, _Z_: _UTM_LAT_MAX}  # PYCHOK see .Mgrs.bandLatitude\n\n_UTM_ZONE_MAX     =  60  # PYCHOK for export\n_UTM_ZONE_MIN     =   1  # PYCHOK for export\n_UTM_ZONE_OFF_MAX =  60  # PYCHOK max Central meridian offset (C{degrees})\n\n_UPS_ZONE     = _UTM_ZONE_MIN - 1     # PYCHOK for export\n_UPS_ZONE_STR =  Fmt.zone(_UPS_ZONE)  # PYCHOK for export\n\n_UTMUPS_ZONE_INVALID = -4             # PYCHOK for export too\n_UTMUPS_ZONE_MAX     = _UTM_ZONE_MAX  # PYCHOK for export too, by .units.py\n_UTMUPS_ZONE_MIN     = _UPS_ZONE      # PYCHOK for export too, by .units.py\n\n# _MAX_PSEUDO_ZONE      = -1\n# _MIN_PSEUDO_ZONE      = -4\n# _UTMUPS_ZONE_MATCH    = -3\n# _UTMUPS_ZONE_STANDARD = -1\n# _UTM                  = -2\n\n\nclass UtmUpsBase(_NamedBase):\n    '''(INTERNAL) Base class for L{Utm} and L{Ups} coordinates.\n    '''\n    _band       =  NN     # latitude band letter ('A..Z')\n    _Bands      =  NN     # valid Band letters, see L{Utm} and L{Ups}\n    _datum      = _WGS84  # L{Datum}\n    _easting    = _0_0    # Easting, see B{C{falsed}} (C{meter})\n    _Error      =  None   # I{Must be overloaded}, see function C{notOverloaded}\n    _falsed     =  True   # falsed easting and northing (C{bool})\n    _gamma      =  None   # meridian conversion (C{degrees})\n    _hemisphere =  NN     # hemisphere ('N' or 'S'), different from UPS pole\n    _latlon     =  None   # cached toLatLon (C{LatLon} or C{._toLLEB})\n    _northing   = _0_0    # Northing, see B{C{falsed}} (C{meter})\n    _scale      =  None   # grid or point scale factor (C{scalar}) or C{None}\n#   _scale0     = _K0     # central scale factor (C{scalar})\n    _ups        =  None   # cached toUps (L{Ups})\n    _utm        =  None   # cached toUtm (L{Utm})\n\n    def __init__(self, easting, northing, band=NN, datum=None, falsed=True,\n                                                   gamma=None, scale=None):\n        '''(INTERNAL) New L{UtmUpsBase}.\n        '''\n        E = self._Error\n        if not E:  # PYCHOK no cover\n            self._notOverloaded(callername=_under(_Error_))\n\n        self._easting  = Easting(easting,   Error=E)\n        self._northing = Northing(northing, Error=E)\n\n        if band:\n            self._band1(band)\n\n        if not _isin(datum, None, self._datum):\n            self._datum = _ellipsoidal_datum(datum)  # raiser=_datum_, name=band\n\n        if not falsed:\n            self._falsed = False\n\n        if gamma is not self._gamma:\n            self._gamma = Scalar(gamma=gamma, Error=E)\n        if scale is not self._scale:\n            self._scale = Scalar(scale=scale, Error=E)\n\n    def __repr__(self):\n        return self.toRepr(B=True)\n\n    def __str__(self):\n        return self.toStr()\n\n    def _band1(self, band):\n        '''(INTERNAL) Re/set the latitudinal or polar band.\n        '''\n        if band:\n            _xinstanceof(str, band=band)\n#           if not self._Bands:  # PYCHOK no cover\n#               self._notOverloaded(callername=_under('Bands'))\n            if band not in self._Bands:\n                t = _or(*sorted(set(map(repr, self._Bands))))\n                raise self._Error(band=band, txt_not_=t)\n            self._band = band\n        elif self._band:  # reset\n            self._band = NN\n\n    @deprecated_property_RO\n    def convergence(self):\n        '''DEPRECATED, use property C{gamma}.'''\n        return self.gamma\n\n    @property_doc_(''' the (ellipsoidal) datum of this coordinate.''')\n    def datum(self):\n        '''Get the datum (L{Datum}).\n        '''\n        return self._datum\n\n    @datum.setter  # PYCHOK setter!\n    def datum(self, datum):\n        '''Set the (ellipsoidal) datum L{Datum}, L{Ellipsoid}, L{Ellipsoid2} or L{a_f2Tuple}).\n        '''\n        d = _ellipsoidal_datum(datum)\n        if self._datum != d:\n            _update_all(self)\n            self._datum = d\n\n    @Property_RO\n    def easting(self):\n        '''Get the easting (C{meter}).\n        '''\n        return self._easting\n\n    @Property_RO\n    def eastingnorthing(self):\n        '''Get easting and northing (L{EasNor2Tuple}C{(easting, northing)}).\n        '''\n        return EasNor2Tuple(self.easting, self.northing)\n\n    def eastingnorthing2(self, falsed=True):\n        '''Return easting and northing, falsed or unfalsed.\n\n           @kwarg falsed: If C{True}, return easting and northing falsed,\n                          otherwise unfalsed (C{bool}).\n\n           @return: An L{EasNor2Tuple}C{(easting, northing)} in C{meter}.\n        '''\n        e, n = self.falsed2\n        if self.falsed and not falsed:\n            e, n = neg_(e, n)\n        elif falsed and not self.falsed:\n            pass\n        else:\n            e = n = _0_0\n        return EasNor2Tuple(Easting( e + self.easting,  Error=self._Error),\n                            Northing(n + self.northing, Error=self._Error))\n\n    @Property_RO\n    def _epsg(self):\n        '''(INTERNAL) Cache for method L{toEpsg}.\n        '''\n        return _MODS.epsg.Epsg(self)\n\n    @Property_RO\n    def falsed(self):\n        '''Are easting and northing falsed (C{bool})?\n        '''\n        return self._falsed\n\n    @Property_RO\n    def falsed2(self):  # PYCHOK no cover\n        '''I{Must be overloaded}.'''\n        self._notOverloaded(self)\n\n    def _footpoint(self, y, lat0, makris):\n        '''(INTERNAL) Return the foot-point latitude in C{radians}.\n        '''\n        F = _MODS.fsums.Fsum\n        E = self.datum.ellipsoid\n        if y is None:\n            _, y = self.eastingnorthing2(falsed=False)\n        B = F(E.Llat(lat0), y)\n        if E.isSpherical:\n            r = B.fover(E.a)  # == E.b\n\n        elif makris:\n            b = B.fover(E.b)\n            r = fabs(b)\n            if r:\n                e2 = E.e22  # E.e22abs?\n                e4 = E.e4\n\n                e1  = F(-1, e2 /  4, -11 /  64 * e4).as_iscalar\n                e2  = F(    e2 /  8, -13 / 128 * e4).as_iscalar\n                e4 *= cos(r)**2 / 8\n\n                s =  sin(r * 2)\n                r = -r\n                U =  F(e1 * r, e2 * s, e4 * r, e4 / 8 * 5 * s**2)\n                r = _copysign(atan1(E.a * tan(float(U)) / E.b), b)\n\n#       elif clins:  # APRIL-ZJU/clins/include/utils/gps_convert_utils.h\n#           n  = E.n\n#           n2 = n**2\n#           n3 = n**3\n#           n4 = n**4\n#           n5 = n**5\n#           A  = F(1, n2 / 4, n4 / 64).fmul((E.a + E.b) / 2)\n#           r  = B.fover(A)\n#           R  = F(r)\n#           if clins:  # FootpointLatitude, GPS-Theory-Practice, 1994\n#               R += F(3 / 2 * n, -27 / 32 * n3,  269 / 512 * n5).fmul(sin(r * 2))\n#               R += F(            21 / 16 * n2,  -55 /  32 * n4).fmul(sin(r * 4))\n#               R += F(           151 / 96 * n3, -417 / 128 * n5).fmul(sin(r * 6))\n#               R +=                            (1097 / 512 * n4)    * sin(r * 8)\n#           else:  # GPS-Theory-Practice, 1992, page 234-235\n#               R += F(-3 / 2 * n, 9 / 16 * n3,  -3 /  32 * n5).fmul(sin(r * 2))\n#               R += F(           15 / 16 * n2, -15 /  32 * n4).fmul(sin(r * 4))\n#               R += F(          -35 / 48 * n3, 105 / 256 * n4).fmul(sin(r * 6))  # n5?\n#           r = float(R)\n\n        else:  # PyGeodetics/src/geodetics/footpoint_latitude.py\n            f  = E.f\n            f2 = f**2\n            f3 = f**3\n            B0 = F(1, -f / 2, f2 / 16, f3 / 32).fmul(E.a)\n            r  = B.fover(B0)\n            R  = F(r)\n            R += F(3 / 4 * f, 3 /  8 * f2, 21 / 256 * f3).fmul(sin(r * 2))\n            R += F(          21 / 64 * f2, 21 /  64 * f3).fmul(sin(r * 4))\n            R +=                         (151 / 768 * f3)    * sin(r * 6)\n            r  = float(R)\n\n        return r\n\n    @Property_RO\n    def gamma(self):\n        '''Get the meridian convergence (C{degrees}) or C{None}\n           if not available.\n        '''\n        return self._gamma\n\n    @property_RO\n    def hemisphere(self):\n        '''Get the hemisphere (C{str}, 'N'|'S').\n        '''\n        if not self._hemisphere:\n            self._toLLEB()\n        return self._hemisphere\n\n    def latFootPoint(self, northing=None, lat0=0, makris=False):\n        '''Compute the foot-point latitude in C{degrees}.\n\n           @arg northing: Northing (C{meter}, same units this ellipsoid's axes),\n                          overriding this northing, I{unfalsed}.\n           @kwarg lat0: Geodetic latitude of the meridian's origin (C{degrees}).\n           @kwarg makris: If C{True}, use C{Makris}' formula, otherwise C{PyGeodetics}'.\n\n           @return: Foot-point latitude (C{degrees}).\n\n           @see: U{PyGeodetics<https://GitHub.com/paarnes/pygeodetics>}, U{FootpointLatitude\n                 <https://GitHub.com/APRIL-ZJU/clins/blob/master/include/utils/gps_convert_utils.h#L143>},\n                 U{Makris<https://www.TandFonline.com/doi/abs/10.1179/sre.1982.26.205.345>} and\n                 U{Geomatics' Mercator, page 60<https://Geomatics.CC/legacy-files/mercator.pdf>}.\n        '''\n        return Lat(FootPoint=degrees(self._footpoint(northing, lat0, makris)))\n\n    def _latlon5(self, LatLon, **LatLon_kwds):\n        '''(INTERNAL) Get cached C{._toLLEB} as B{C{LatLon}} instance.\n        '''\n        ll = self._latlon\n        if LatLon is None:\n            r = LatLonDatum5Tuple(ll.lat, ll.lon, ll.datum,\n                                  ll.gamma, ll.scale, name=ll.name)\n        else:\n            _xsubclassof(_LLEB, LatLon=LatLon)\n            r =  LatLon(ll.lat, ll.lon, **_xkwds(LatLon_kwds, datum=ll.datum, name=ll.name))\n            r = _xattrs(r, ll, _under(_gamma_), _under(_scale_))\n        return r\n\n    def _latlon5args(self, ll, g, k, _toBand, unfalse, *other):\n        '''(INTERNAL) See C{._toLLEB} methods, functions C{ups.toUps8} and C{utm._toXtm8}\n        '''\n        ll._gamma = g\n        ll._scale = k\n        ll._toLLEB_args = (unfalse,) + other\n        if unfalse:\n            if not self._band:\n                self._band = _toBand(ll.lat, ll.lon)\n            if not self._hemisphere:\n                self._hemisphere = _hemi(ll.lat)\n        self._latlon = ll\n\n    @Property_RO\n    def _lowerleft(self):  # by .ellipsoidalBase._lowerleft\n        '''Get this UTM or UPS C{un}-centered (L{Utm} or L{Ups}) to its C{lowerleft}.\n        '''\n        return _lowerleft(self, 0)\n\n    @Property_RO\n    def _mgrs(self):\n        '''(INTERNAL) Cache for method L{toMgrs}.\n        '''\n        return _toMgrs(self)\n\n    @Property_RO\n    def _mgrs_lowerleft(self):\n        '''(INTERNAL) Cache for method L{toMgrs}, I{un}-centered.\n        '''\n        utmups = self._lowerleft\n        return self._mgrs if utmups is self else _toMgrs(utmups)\n\n    @Property_RO\n    def northing(self):\n        '''Get the northing (C{meter}).\n        '''\n        return self._northing\n\n    def phiFootPoint(self, northing=None, lat0=0, makris=False):\n        '''Compute the foot-point latitude in C{radians}.\n\n           @return: Foot-point latitude (C{radians}).\n\n           @see: Method L{latFootPoint<UtmUpsBase.latFootPoint>} for further details.\n        '''\n        return Phi(FootPoint=self._footpoint(northing, lat0, makris))\n\n    @Property_RO\n    def scale(self):\n        '''Get the grid scale (C{float}) or C{None}.\n        '''\n        return self._scale\n\n    @Property_RO\n    def scale0(self):\n        '''Get the central scale factor (C{float}).\n        '''\n        return self._scale0\n\n    @deprecated_method\n    def to2en(self, falsed=True):  # PYCHOK no cover\n        '''DEPRECATED, use method C{eastingnorthing2}.\n\n           @return: An L{EasNor2Tuple}C{(easting, northing)}.\n        '''\n        return self.eastingnorthing2(falsed=falsed)\n\n    def toEpsg(self):\n        '''Determine the B{EPSG (European Petroleum Survey Group)} code.\n\n           @return: C{EPSG} code (C{int}).\n\n           @raise EPSGError: See L{Epsg}.\n        '''\n        return self._epsg\n\n    def _toLLEB(self, **kwds):  # PYCHOK no cover\n        '''(INTERNAL) I{Must be overloaded}.'''\n        self._notOverloaded(**kwds)\n\n    def toMgrs(self, center=False):\n        '''Convert this UTM/UPS coordinate to an MGRS grid reference.\n\n           @kwarg center: If C{True}, I{un}-center this UTM or UPS to\n                          its C{lowerleft} (C{bool}) or by C{B{center}\n                          meter} (C{scalar}).\n\n           @return: The MGRS grid reference (L{Mgrs}).\n\n           @see: Function L{pygeodesy.toMgrs} in module L{mgrs} for more details.\n\n           @note: If not specified, the I{latitudinal} C{band} is computed from\n                  the (geodetic) latitude and the C{datum}.\n        '''\n        return self._mgrs_lowerleft if center is True else (\n              _toMgrs(_lowerleft(self, center)) if center else\n               self._mgrs)  # PYCHOK indent\n\n    def _toRepr(self, fmt, B, cs, prec, sep):  # PYCHOK expected\n        '''(INTERNAL) Return a representation for this ETM/UTM/UPS coordinate.\n        '''\n        t =  self.toStr(prec=prec, sep=None, B=B, cs=cs)  # hemipole\n        T = 'ZHENCS'[:len(t)]\n        return _xzipairs(T, t, sep=sep, fmt=fmt)\n\n    def _toStr(self, hemipole, B, cs, prec, sep):\n        '''(INTERNAL) Return a string for this ETM/UTM/UPS coordinate.\n        '''\n        z = NN(Fmt.zone(self.zone), (self.band if B else NN))  # PYCHOK band\n        t = (z, hemipole) + _fstrENH2(self, prec, None)[0]\n        if cs:\n            prec = cs if isint(cs) else 8  # for backward compatibility\n            t += (_n_a_ if self.gamma is None else\n                    degDMS(self.gamma, prec=prec, pos=_PLUS_),\n                  _n_a_ if self.scale is None else\n                      fstr(self.scale, prec=prec))\n        return t if sep is None else sep.join(t)\n\n\ndef _hemi(lat, N=0):  # in .ups, .utm\n    '''Return the hemisphere letter.\n\n       @arg lat: Latitude (C{degrees} or C{radians}).\n       @kwarg N: Minimal North latitude, C{0} or C{_N_}.\n\n       @return: C{'N'|'S'} for north-/southern hemisphere.\n    '''\n    return _S_ if lat < N else _N_\n\n\ndef _lowerleft(utmups, center):  # in .ellipsoidalBase._lowerleft\n    '''(INTERNAL) I{Un}-center a B{C{utmups}} to its C{lowerleft} by\n       C{B{center} meter} or by a I{guess} if B{C{center}} is C{0}.\n    '''\n    if center:\n        e = n = -center\n    else:\n        for c in (50, 500, 5000):\n            t = c * 2\n            e = int(utmups.easting  % t)\n            n = int(utmups.northing % t)\n            if (e == c and _isin(n, c, c - 1)) or \\\n               (n == c and _isin(e, c, c - 1)):\n                break\n        else:\n            return utmups  # unchanged\n\n    r = _xkwds_not(None, datum=utmups.datum,\n                         gamma=utmups.gamma,\n                         scale=utmups.scale, name=utmups.name)\n    return utmups.classof(utmups.zone, utmups.hemisphere,\n                          utmups.easting - e, utmups.northing - n,\n                          band=utmups.band, falsed=utmups.falsed, **r)\n\n\ndef _parseUTMUPS5(strUTMUPS, UPS, Error=ParseError, band=NN, sep=_COMMA_):\n    '''(INTERNAL) Parse a string representing a UTM or UPS coordinate\n       consisting of C{\"zone[band] hemisphere/pole easting northing\"}.\n\n       @arg strUTMUPS: A UTM or UPS coordinate (C{str}).\n       @kwarg band: Optional, default Band letter (C{str}).\n       @kwarg sep: Optional, separator to split (\",\").\n\n       @return: 5-Tuple (C{zone, hemisphere/pole, easting, northing,\n                band}).\n\n       @raise ParseError: Invalid B{C{strUTMUPS}}.\n    '''\n    def _UTMUPS5(strUTMUPS, UPS, band, sep):\n        u = strUTMUPS.lstrip()\n        if UPS and not u.startswith(_UPS_ZONE_STR):\n            raise ValueError(_not_(_UPS_ZONE_STR))\n\n        u = u.replace(sep, _SPACE_).strip().split()\n        if len(u) < 4:\n            raise ValueError(_not_(sep))\n\n        z, h = u[:2]\n        if h[:1].upper() not in _NS_:\n            raise ValueError(_SPACE_(h, _not_(_NS_)))\n\n        if z.isdigit():\n            z, B = int(z), band\n        else:\n            for i in range(len(z)):\n                if not z[i].isdigit():\n                    # int('') raises ValueError\n                    z, B = int(z[:i]), z[i:]\n                    break\n            else:\n                raise ValueError(z)\n\n        e, n = map(float, u[2:4])\n        return z, h.upper(), e, n, B.upper()\n\n    return _parseX(_UTMUPS5, strUTMUPS, UPS, band, sep,\n                             strUTMUPS=strUTMUPS, Error=Error)\n\n\ndef _to4lldn(latlon, lon, datum, name, wrap=False):\n    '''(INTERNAL) Return 4-tuple (C{lat, lon, datum, name}).\n    '''\n    try:\n        # if lon is not None:\n        #     raise AttributeError\n        lat, lon = float(latlon.lat), float(latlon.lon)\n        _xinstanceof(_LLEB, LatLonDatum5Tuple, latlon=latlon)\n        if wrap:\n            _Wrap.latlon(lat, lon)\n        d = datum or latlon.datum\n    except AttributeError:  # TypeError\n        lat, lon = _Wrap.latlonDMS2(latlon, lon) if wrap else \\\n                          parseDMS2(latlon, lon)  # clipped\n        d = datum or _WGS84\n    return lat, lon, d, _name__(name, _or_nameof=latlon)\n\n\ndef _toMgrs(utmups):\n    '''(INTERNAL) Convert a L{Utm} or L{Ups} to an L{Mgrs} instance.\n    '''\n    return _MODS.mgrs.toMgrs(utmups, datum=utmups.datum, name=utmups.name)\n\n\ndef _to3zBhp(zone, band, hemipole=NN, Error=_ValueError):  # in .epsg, .ups, .utm, .utmups\n    '''Parse UTM/UPS zone, Band letter and hemisphere/pole letter.\n\n       @arg zone: Zone with/-out Band (C{scalar} or C{str}).\n       @kwarg band: Optional I{longitudinal/polar} Band letter (C{str}).\n       @kwarg hemipole: Optional hemisphere/pole letter (C{str}).\n       @kwarg Error: Optional error to raise, overriding the default\n                     C{ValueError}.\n\n       @return: 3-Tuple (C{zone, Band, hemisphere/pole}) as (C{int, str,\n                'N'|'S'}) where C{zone} is C{0} for UPS or C{1..60} for\n                UTM and C{Band} is C{'A'..'Z'} I{NOT} checked for valid\n                UTM/UPS bands.\n\n       @raise ValueError: Invalid B{C{zone}}, B{C{band}} or B{C{hemipole}}.\n    '''\n    try:\n        B, z = band, _UTMUPS_ZONE_INVALID\n        if isscalar(zone):\n            z = int(zone)\n        elif zone and isstr(zone):\n            if zone.isdigit():\n                z = int(zone)\n            elif len(zone) > 1:\n                B = zone[-1:]\n                z = int(zone[:-1])\n            elif zone.upper() in _UPS_BANDS:  # single letter\n                B =  zone\n                z = _UPS_ZONE\n\n        if _UTMUPS_ZONE_MIN <= z <= _UTMUPS_ZONE_MAX:\n            hp = hemipole[:1].upper()\n            if hp in _NS_ or not hp:\n                z = Zone(z)\n                B = Band(B.upper())\n                if B.isalpha():\n                    return z, B, (hp or _hemi(B, _N_))\n                elif not B:\n                    return z, B, hp\n\n        raise ValueError()  # _invalid_\n    except (AttributeError, IndexError, TypeError, ValueError) as x:\n        raise Error(zone=zone, band=B, hemipole=hemipole, cause=x)\n\n\ndef _to3zll(lat, lon):  # in .ups, .utm\n    '''Wrap lat- and longitude and determine UTM zone.\n\n       @arg lat: Latitude (C{degrees}).\n       @arg lon: Longitude (C{degrees}).\n\n       @return: 3-Tuple (C{zone, lat, lon}) as (C{int}, C{degrees90},\n                C{degrees180}) where C{zone} is C{1..60} for UTM.\n    '''\n    x = wrap360(lon + _180_0)  # use wrap360 to get ...\n    z = int(x) // 6 + 1  # ... longitudinal UTM zone [1, 60] and ...\n    return Zone(z), lat, (x - _180_0)  # ... -180 <= lon < 180\n\n\n__all__ += _ALL_DOCS(UtmUpsBase)\n\n# **) MIT License\n#\n# Copyright (C) 2016-2026 -- mrJean1 at Gmail -- All Rights Reserved.\n#\n# Permission is hereby granted, free of charge, to any person obtaining a\n# copy of this software and associated documentation files (the \"Software\"),\n# to deal in the Software without restriction, including without limitation\n# the rights to use, copy, modify, merge, publish, distribute, sublicense,\n# and/or sell copies of the Software, and to permit persons to whom the\n# Software is furnished to do so, subject to the following conditions:\n#\n# The above copyright notice and this permission notice shall be included\n# in all copies or substantial portions of the Software.\n#\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL\n# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR\n# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\n# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n# OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "pygeodesy/vector2d.py",
    "content": "\n# -*- coding: utf-8 -*-\n\nu'''2- or 3-D vectorial functions L{circin6}, L{circum3}, L{circum4_},\nL{iscolinearWith}, L{meeus2}, L{radii11}, L{soddy4}, L{triaxum5} and\nL{trilaterate2d2}.\n\n@note: Functions L{circin6}, L{circum3}, L{circum4_}, L{soddy4} and\n       L{triaxum5} require U{numpyhttps://PyPI.org/project/numpy>}\n       version 1.10 or newer to be installed.\n'''\n\nfrom pygeodesy.basics import len2, map2, _xnumpy,  typename\nfrom pygeodesy.constants import EPS, EPS0, EPS02, EPS4, INF, INT0, \\\n                               _EPS4e8, isnear0, _0_0, _0_25, _0_5, _N_0_5, \\\n                               _1_0, _1_0_1T, _N_1_0, _2_0, _N_2_0, _4_0\nfrom pygeodesy.errors import _and, _AssertionError, IntersectionError, NumPyError, \\\n                              PointsError, TriangleError, _xError, _xkwds\nfrom pygeodesy.fmath import fabs, fdot, Fdot_, fdot_, hypot, hypot2_, sqrt\nfrom pygeodesy.fsums import _Fsumf_, fsumf_, fsum1f_\n# from pygeodesy.internals import typename  # from .basics\nfrom pygeodesy.interns import NN, _a_, _and_, _b_, _c_, _center_, _coincident_, \\\n                             _colinear_, _COMMASPACE_, _concentric_, _few_, \\\n                             _intersection_, _invalid_, _near_, _no_, _of_, \\\n                             _radius_, _rIn_, _s_, _SPACE_, _too_, _with_\n# from pygeodesy.lazily import _ALL_LAZY  # from .named\nfrom pygeodesy.named import _ALL_LAZY, _NamedTuple, _Pass\nfrom pygeodesy.namedTuples import LatLon3Tuple, Vector2Tuple\nfrom pygeodesy.props import deprecated_function, Property_RO\nfrom pygeodesy.streprs import Fmt, unstr\nfrom pygeodesy.units import Float, Int, Meter, Radius, Radius_\nfrom pygeodesy.vector3d import _nearestOn2, _nVc, _otherV3d, trilaterate3d2, \\\n                                Vector3d,  nearestOn as _nearestOn3d  # DEPRECATED\n\nfrom contextlib import contextmanager\n# from math import fabs, sqrt  # from .fmath\n\n__all__ = _ALL_LAZY.vector2d\n__version__ = '26.02.27'\n\n_cA_        = 'cA'\n_cB_        = 'cB'\n_cC_        = 'cC'\n_deltas_    = 'deltas'\n_outer_     = 'outer'\n_raise_     = 'raise'  # PYCHOK used!\n_rank_      = 'rank'\n_residuals_ = 'residuals'\n_Type_      = 'Type'\n\n\nclass Circin6Tuple(_NamedTuple):\n    '''6-Tuple C{(radius, center, deltas, cA, cB, cC)} with the C{radius}, the\n       trilaterated C{center} and contact points of the I{inscribed} aka I{In-\n       circle} of a triangle.  The C{center} is I{un}ambiguous if C{deltas} is\n       C{None}, otherwise C{center} is the mean and C{deltas} the differences of\n       the L{pygeodesy.trilaterate3d2} results.  Contact points C{cA}, C{cB} and\n       C{cC} are the points of tangency, aka the corners of the U{Contact Triangle\n       <https://MathWorld.Wolfram.com/ContactTriangle.html>}.\n    '''\n    _Names_ = (_radius_, _center_, _deltas_, _cA_,  _cB_,  _cC_)\n    _Units_ = ( Radius,  _Pass,    _Pass,    _Pass, _Pass, _Pass)\n\n\nclass Circum3Tuple(_NamedTuple):  # in .latlonBase\n    '''3-Tuple C{(radius, center, deltas)} with the C{circumradius} and trilaterated\n       C{circumcenter} of the C{circumcircle} through 3 points (aka {Meeus}' Type II\n       circle) or the C{radius} and C{center} of the smallest I{Meeus}' Type I circle.\n       The C{center} is I{un}ambiguous if C{deltas} is C{None}, otherwise C{center}\n       is the mean and C{deltas} the differences of the L{pygeodesy.trilaterate3d2}\n       results.\n    '''\n    _Names_ = (_radius_, _center_, _deltas_)\n    _Units_ = ( Radius,  _Pass,    _Pass)\n\n\nclass Circum4Tuple(_NamedTuple):\n    '''4-Tuple C{(radius, center, rank, residuals)} with C{radius} and C{center}\n       of a sphere I{least-squares} fitted through given points and the C{rank}\n       and C{residuals} -if any- from U{numpy.linalg.lstsq\n       <https://NumPy.org/doc/stable/reference/generated/numpy.linalg.lstsq.html>}.\n    '''\n    _Names_ = (_radius_, _center_, _rank_, _residuals_)\n    _Units_ = ( Radius,  _Pass,     Int,   _Pass)\n\n\nclass Meeus2Tuple(_NamedTuple):\n    '''2-Tuple C{(radius, Type)} with C{radius} and I{Meeus}' C{Type} of the smallest\n       circle I{containing} 3 points.  C{Type} is C{None} for a I{Meeus}' Type II\n       C{circumcircle} passing through all 3 points.  Otherwise C{Type} is the center\n       of a I{Meeus}' Type I circle with 2 points on (a diameter of) and 1 point\n       inside the circle.\n    '''\n    _Names_ = (_radius_, _Type_)\n    _Units_ = ( Radius,  _Pass)\n\n\nclass Radii11Tuple(_NamedTuple):\n    '''11-Tuple C{(rA, rB, rC, cR, rIn, riS, roS, a, b, c, s)} with the C{Tangent}\n       circle radii C{rA}, C{rB} and C{rC}, the C{circumradius} C{cR}, the C{Incircle}\n       radius C{rIn} aka C{inradius}, the inner and outer I{Soddy} circle radii C{riS}\n       and C{roS}, the sides C{a}, C{b} and C{c} and semi-perimeter C{s} of a triangle,\n       all in C{meter} conventionally.\n\n       @note: C{Circumradius} C{cR} and outer I{Soddy} radius C{roS} may be C{INF}.\n    '''\n    _Names_ = ('rA', 'rB', 'rC', 'cR', _rIn_, 'riS', 'roS', _a_, _b_, _c_, _s_)\n    _Units_ = ( Meter,) * len(_Names_)\n\n\nclass Soddy4Tuple(_NamedTuple):\n    '''4-Tuple C{(radius, center, deltas, outer)} with C{radius} and (trilaterated)\n       C{center} of the I{inner} I{Soddy} circle and the radius of the C{outer}\n       I{Soddy} circle.  The C{center} is I{un}ambiguous if C{deltas} is C{None},\n       otherwise C{center} is the mean and C{deltas} the differences of the\n       L{pygeodesy.trilaterate3d2} results.\n\n       @note: The outer I{Soddy} radius C{outer} may be C{INF}.\n    '''\n    _Names_ = (_radius_, _center_, _deltas_, _outer_)\n    _Units_ = ( Radius,  _Pass,    _Pass,     Radius)\n\n\nclass Triaxum5Tuple(_NamedTuple):\n    '''5-Tuple C{(a, b, c, rank, residuals)} with the (unordered) triaxial radii\n       C{a}, C{b} and C{c} of an ellipsoid I{least-squares} fitted through given\n       points and the C{rank} and C{residuals} -if any- from U{numpy.linalg.lstsq\n       <https://NumPy.org/doc/stable/reference/generated/numpy.linalg.lstsq.html>}.\n    '''\n    _Names_ = (_a_,    _b_,    _c_,    _rank_, _residuals_)\n    _Units_ = ( Radius, Radius, Radius, Int,   _Pass)\n\n\ndef circin6(point1, point2, point3, eps=EPS4, useZ=True):\n    '''Return the radius and center of the I{inscribed} aka I{Incircle} of\n       a (2- or 3-D) triangle.\n\n       @arg point1: First point (C{Cartesian}, L{Vector3d}, C{Vector3Tuple},\n                    C{Vector4Tuple} or C{Vector2Tuple} if C{B{useZ}=False}).\n       @arg point2: Second point (C{Cartesian}, L{Vector3d}, C{Vector3Tuple},\n                    C{Vector4Tuple} or C{Vector2Tuple} if C{B{useZ}=False}).\n       @arg point3: Third point (C{Cartesian}, L{Vector3d}, C{Vector3Tuple},\n                    C{Vector4Tuple} or C{Vector2Tuple} if C{B{useZ}=False}).\n       @kwarg eps: Tolerance for function L{pygeodesy.trilaterate3d2} if\n                   C{B{useZ} is True} else L{pygeodesy.trilaterate2d2}.\n       @kwarg useZ: If C{True}, use the Z components, otherwise force C{z=INT0} (C{bool}).\n\n       @return: L{Circin6Tuple}C{(radius, center, deltas, cA, cB, cC)}.  The\n                C{center} and contact points C{cA}, C{cB} and C{cC}, each an\n                instance of B{C{point1}}'s (sub-)class, are co-planar with\n                the three given points.\n\n       @raise ImportError: Package C{numpy} not found, not installed or older\n                           than version 1.10 and C{B{useZ} is True}.\n\n       @raise IntersectionError: Near-coincident or -colinear points or\n                                 a trilateration or C{numpy} issue.\n\n       @raise TypeError: Invalid B{C{point1}}, B{C{point2}} or B{C{point3}}.\n\n       @see: Functions L{radii11} and L{circum3}, U{Contact Triangle\n             <https://MathWorld.Wolfram.com/ContactTriangle.html>} and\n             U{Incircle<https://MathWorld.Wolfram.com/Incircle.html>}.\n    '''\n    try:\n        return _circin6(point1, point2, point3, eps=eps, useZ=useZ)\n    except (AssertionError, TypeError, ValueError) as x:\n        raise _xError(x, point1=point1, point2=point2, point3=point3)\n\n\ndef _circin6(point1, point2, point3, eps=EPS4, useZ=True, dLL3=False, **Vector_kwds):\n    # (INTERNAL) Radius, center, deltas, 3 contact points\n\n    def _fraction(r, a):\n        return (r / a) if a > EPS0 else _0_5\n\n    def _contact2(a, p2, r2, p3, r3, V, V_kwds):\n        c = p2.intermediateTo(p3, _fraction(r2, a)) if r2 > r3 else \\\n            p3.intermediateTo(p2, _fraction(r3, a))\n        C = V(c.x, c.y, c.z, **V_kwds)\n        return c, C\n\n    t, p1, p2, p3 = _radii11ABC4(point1, point2, point3, useZ=useZ)\n    V, r1, r2, r3 =  point1.classof, t.rA, t.rB, t.rC\n\n    c1, cA = _contact2(t.a, p2, r2, p3, r3, V, _xkwds(Vector_kwds, name=_cA_))\n    c2, cB = _contact2(t.b, p3, r3, p1, r1, V, _xkwds(Vector_kwds, name=_cB_))\n    c3, cC = _contact2(t.c, p1, r1, p2, r2, V, _xkwds(Vector_kwds, name=_cC_))\n\n    r    =  t.rIn\n    c, d = _tricenter3d2(c1, r, c2, r, c3, r, eps=eps, useZ=useZ, dLL3=dLL3,\n                       **_xkwds(Vector_kwds, Vector=V, name=typename(circin6)))\n    return Circin6Tuple(r, c, d, cA, cB, cC)\n\n\ndef circum3(point1, point2, point3, circum=True, eps=EPS4, useZ=True):\n    '''Return the radius and center of the smallest circle I{through} or\n       I{containing} three (2- or 3-D) points.\n\n       @arg point1: First point (C{Cartesian}, L{Vector3d}, C{Vector3Tuple} or\n                    C{Vector4Tuple}).\n       @arg point2: Second point (C{Cartesian}, L{Vector3d}, C{Vector3Tuple} or\n                    C{Vector4Tuple}).\n       @arg point3: Third point (C{Cartesian}, L{Vector3d}, C{Vector3Tuple} or\n                    C{Vector4Tuple}).\n       @kwarg circum: If C{True}, return the C{circumradius} and C{circumcenter}\n                      always, ignoring the I{Meeus}' Type I case (C{bool}).\n       @kwarg eps: Tolerance for function L{pygeodesy.trilaterate3d2} if C{B{useZ}\n                   is True} else L{pygeodesy.trilaterate2d2}.\n       @kwarg useZ: If C{True}, use the Z components, otherwise force C{z=INT0} (C{bool}).\n\n       @return: A L{Circum3Tuple}C{(radius, center, deltas)}.  The C{center}, an\n                instance of B{C{point1}}'s (sub-)class, is co-planar with the three\n                given points.\n\n       @raise ImportError: Package C{numpy} not found, not installed or older\n                           than version 1.10 and C{B{useZ} is True}.\n\n       @raise IntersectionError: Near-coincident or -colinear points or\n                                 a trilateration or C{numpy} issue.\n\n       @raise TypeError: Invalid B{C{point1}}, B{C{point2}} or B{C{point3}}.\n\n       @see: Functions L{pygeodesy.circum4_} and L{pygeodesy.meeus2} and Meeus, J.\n             U{I{Astronomical Algorithms}<http://www.Agopax.IT/Libri_astronomia/pdf/\n             Astronomical%20Algorithms.pdf>}, 2nd Ed. 1998, page 127ff, U{circumradius\n             <https://MathWorld.Wolfram.com/Circumradius.html>} and U{circumcircle\n             <https://MathWorld.Wolfram.com/Circumcircle.html>}.\n    '''\n    try:\n        p1 = _otherV3d(useZ=useZ, point1=point1)\n        return _circum3(p1, point2, point3, circum=circum, eps=eps, useZ=useZ,\n                                            clas=point1.classof)\n    except (AssertionError, TypeError, ValueError) as x:\n        raise _xError(x, point1=point1, point2=point2, point3=point3, circum=circum)\n\n\ndef _circum3(p1, point2, point3, circum=True, eps=EPS4, useZ=True, dLL3=False,\n                                 clas=Vector3d, **clas_kwds):  # in .latlonBase\n    # (INTERNAL) Radius, center, deltas\n    r, d, p2, p3 = _meeus4(p1, point2, point3, circum=circum, useZ=useZ,\n                                               clas=clas, **clas_kwds)\n    if d is None:  # Meeus' Type II or circum=True\n        kwds = _xkwds(clas_kwds, eps=eps, Vector=clas, name=typename(circum3))\n        c, d = _tricenter3d2(p1, r, p2, r, p3, r, useZ=useZ, dLL3=dLL3, **kwds)\n    else:  # Meeus' Type I\n        c, d = d, None\n    return Circum3Tuple(r, c, d)\n\n\ndef circum4(points, useZ=True, **Vector_and_kwds):\n    '''Best-fit a sphere through three or more (3-D) points.\n\n       @arg points: Iterable of points (each a C{Cartesian}, L{Vector3d}, C{Vector3Tuple}\n                    or C{Vector4Tuple}).\n       @kwarg useZ: If C{True}, use the points' Z component, otherwise force C{z=INT0}\n                    (C{bool}).\n       @kwarg Vector_and_kwds: Optional class C{B{Vector}=None} to return the center point\n                     and optionally, additional B{C{Vector}} keyword arguments, otherwise\n                     the B{C{points}}' (sub-)class.\n\n       @return: L{Circum4Tuple}C{(radius, center, rank, residuals)} with C{center} an\n                instance of C{B{points}[0]}' (sub-)class or B{C{Vector}} if specified.\n\n       @raise ImportError: Package C{numpy} not found, not installed or older than\n                           version 1.10.\n\n       @raise NumPyError: Some C{numpy} issue.\n\n       @raise PointsError: Too few B{C{points}}.\n\n       @raise TypeError: One of the B{C{points}} is invalid.\n\n       @see: Functions L{pygeodesy.circum3} and L{pygeodesy.meeus2}, I{Charles Jekel}'s\n             U{\"Least Squares Sphere Fit\"<https://Jekel.me/2015/Least-Squares-Sphere-Fit/>},\n             U{Appendix A<https://hdl.handle.net/10019.1/98627>}, U{numpy.linalg.lstsq\n             <https://NumPy.org/doc/stable/reference/generated/numpy.linalg.lstsq.html>} and U{Eberly\n             6<https://www.sci.Utah.edu/~balling/FEtools/doc_files/LeastSquaresFitting.pdf>}.\n    '''\n    n, ps = len2(points)\n    if n < 3:\n        raise PointsError(points=n, txt=_too_(_few_))\n\n    A, b = [], []\n    for i, p in enumerate(ps):\n        v = _otherV3d(useZ=useZ, i=i, points=p)\n        A.append(v.times(_2_0).xyz3 + _1_0_1T)\n        b.append(v.length2)\n\n    with _numpy(circum4, n=n) as _np:\n        A = _np.array(A).reshape((n, 4))\n        b = _np.array(b).reshape((n, 1))\n        C, R, rk = _np.least_squares3(A, b)\n\n    c = Vector3d(*C[:3], name__=circum4)  # .__name__\n    r = Radius(sqrt(fsumf_(C[3], *c.x2y2z2)), name=c.name)\n\n    c = _nVc(c, **_xkwds(Vector_and_kwds, clas=ps[0].classof, name=c.name))\n    return Circum4Tuple(r, c, rk, R)\n\n\ndef circum4_(*points, **useZ_Vector_and_kwds):\n    '''Best-fit a sphere through three or more (3-D) positional points.\n\n       @arg points: The points (each a C{Cartesian}, L{Vector3d}, C{Vector3Tuple}\n                    or C{Vector4Tuple}), all positional.\n       @kwarg useZ_Vector_and_kwds: Keyword arguments C{B{useZ}=True} and\n                   C{B{Vector}=None}, see function L{circum4}.\n\n       @see: Function L{circum4} for further details.\n    '''\n    return circum4(points, **useZ_Vector_and_kwds)\n\n\ndef _iscolinearWith(p, point1, point2, eps=EPS, useZ=True):\n    # (INTERNAL) Check colinear, see L{iscolinearWith} above,\n    # separated to allow callers to embellish any exceptions\n    p1 = _otherV3d(useZ=useZ, point1=point1)\n    p2 = _otherV3d(useZ=useZ, point2=point2)\n    n, _ = _nearestOn2(p, p1, p2, within=False, eps=eps)\n    return n is p1 or n.minus(p).length2 < eps\n\n\ndef meeus2(point1, point2, point3, circum=False, useZ=True):\n    '''Return the radius and I{Meeus}' Type of the smallest circle I{through}\n       or I{containing} three (2- or 3-D) points.\n\n       @arg point1: First point (C{Cartesian}, L{Vector3d}, C{Vector3Tuple},\n                    C{Vector4Tuple} or C{Vector2Tuple} if C{B{useZ}=False}).\n       @arg point2: Second point (C{Cartesian}, L{Vector3d}, C{Vector3Tuple},\n                    C{Vector4Tuple} or C{Vector2Tuple} if C{B{useZ}=False}).\n       @arg point3: Third point (C{Cartesian}, L{Vector3d}, C{Vector3Tuple},\n                    C{Vector4Tuple} or C{Vector2Tuple} if C{B{useZ}=False}).\n       @kwarg circum: If C{True}, return the C{circumradius} and C{circumcenter}\n                      always, overriding I{Meeus}' Type II case (C{bool}).\n       @kwarg useZ: If C{True}, use the Z components, otherwise force C{z=INT0} (C{bool}).\n\n       @return: L{Meeus2Tuple}C{(radius, Type)}, with C{Type} the C{circumcenter}\n                iff C{B{circum}=True}.\n\n       @raise IntersectionError: Near-coincident or -colinear points, iff C{B{circum}=True}.\n\n       @raise TypeError: Invalid B{C{point1}}, B{C{point2}} or B{C{point3}}.\n\n       @see: Functions L{pygeodesy.circum3} and L{pygeodesy.circum4_} and Meeus, J.\n             U{I{Astronomical Algorithms}<http://www.Agopax.IT/Libri_astronomia/pdf/\n             Astronomical%20Algorithms.pdf>}, 2nd Ed. 1998, page 127ff, U{circumradius\n             <https://MathWorld.Wolfram.com/Circumradius.html>} and U{circumcircle\n             <https://MathWorld.Wolfram.com/Circumcircle.html>}.\n    '''\n    try:\n        A = _otherV3d(useZ=useZ, point1=point1)\n        return _meeus2(A, point2, point3, circum, useZ=useZ, clas=point1.classof)\n    except (TypeError, ValueError) as x:\n        raise _xError(x, point1=point1, point2=point2, point3=point3, circum=circum)\n\n\ndef _meeus2(A, point2, point3, circum, useZ=True, **clas_and_kwds):  # in .vector3d\n    # (INTERNAL) Radius and center or Meeus' Type\n    f = _circum3 if circum else _meeus4\n    t =  f(A, point2, point3, circum=circum, useZ=useZ, **clas_and_kwds)[:2]\n    return Meeus2Tuple(t)\n\n\ndef _meeus4(A, point2, point3, circum=False, useZ=True, clas=None, **clas_kwds):\n    # (INTERNAL) Radius and Meeus' Type\n    B = p2 = _otherV3d(useZ=useZ, point2=point2)\n    C = p3 = _otherV3d(useZ=useZ, point3=point3)\n\n    a = B.minus(C).length2\n    b = C.minus(A).length2\n    c = A.minus(B).length2\n    if a < b:\n        a, b, A, B = b, a, B, A\n    if a < c:\n        a, c, A, C = c, a, C, A\n\n    if a > EPS02 and (circum or a < (b + c)):  # circumradius\n        b =  sqrt(b / a)\n        c =  sqrt(c / a)\n        R = _Fsumf_(_1_0,  b, c) * _Fsumf_(_1_0,   b, -c) * \\\n            _Fsumf_(_1_0, -b, c) * _Fsumf_(_N_1_0, b,  c)\n        r =  R.fover(a)\n        if r < EPS02:\n            t = _coincident_ if b < EPS0 or c < EPS0 else (\n                _colinear_ if _iscolinearWith(A, B, C) else _invalid_)\n            raise IntersectionError(t)\n        r = b * c / sqrt(r)\n        t = None  # Meeus' Type II\n    else:  # obtuse or right angle at A\n        r = sqrt(a * _0_25) if a > EPS02 else INT0\n        t = B.plus(C).times(_0_5)  # Meeus' Type I\n        if clas is not None:\n            t = clas(t.x, t.y, t.z, **_xkwds(clas_kwds, name=typename(meeus2)))\n    return r, t, p2, p3\n\n\n@deprecated_function\ndef nearestOn(point, point1, point2, **within_useZ_Vector_and_kwds):\n    '''DEPRECATED on 2025.05.06, use L{pygeodesy.nearestOn<pygeodesy.vector3d.nearestOn>}.'''\n    return _nearestOn3d(point, point1, point2, **within_useZ_Vector_and_kwds)\n\n\nclass _numpy(object):  # see also .formy._idllmn6, .geodesicw._wargs, .latlonBase._toCartesian3\n    '''(INTERNAL) Partial C{NumPy} wrapper.\n    '''\n    @contextmanager  # <https://www.Python.org/dev/peps/pep-0343/> Examples\n    def __call__(self, where, *args, **kwds):\n        '''(INTERNAL) Yield self with any errors raised as L{NumPyError}\n           embellished with all B{C{args}} and B{C{kwds}}.\n        '''\n        np = self.np\n        try:  # <https://NumPy.org/doc/stable/reference/generated/numpy.seterr.html>\n            e = np.seterr(all=_raise_)  # throw FloatingPointError for numpy errors\n            yield self\n        except Exception as x:  # mostly FloatingPointError?\n            t = unstr(where, *args, **kwds)\n            raise NumPyError(t, cause=x)  # _xError2?\n        finally:  # restore numpy error handling\n            np.seterr(**e)\n\n    @Property_RO\n    def array(self):\n        '''Get U{numpy.array<https://NumPy.org/doc/2.2/reference/generated/numpy.array.html#numpy.array>}.\n        '''\n        return self.np.array\n\n    def least_squares3(self, A, b):\n        '''Linear least-squares function.\n        '''\n        C, R, rk, _ = self.np.linalg.lstsq(A, b, rcond=None)  # to silence warning\n        C = map2(float, C)\n        R = map2(float, R)  # empty if rk < 4 or n <= 4\n        return C, R, int(rk)\n\n    @Property_RO\n    def np(self):\n        '''Import numpy 1.10+ once.\n        '''\n        return _xnumpy(type(self), 1, 10)\n\n    def null_space2(self, A, rcond=None):\n        '''Return the C{null_space} and C{rank} of matrix B{C{A}}.\n\n           @see: U{Source<https://docs.SciPy.org/doc/scipy/reference/generated/scipy.linalg.null_space.html>}\n                 U{SciPY Cookbook<https://SciPy-Cookbook.ReadTheDocs.io/items/RankNullspace.html>}, U{here\n                 <https://NumPy.org/doc/stable/reference/generated/numpy.linalg.svd.html>}, U{here\n                 <https://StackOverflow.com/questions/19820921>}, U{here\n                 <https://StackOverflow.com/questions/2992947>} and U{here\n                 <https://StackOverflow.com/questions/5889142>}.\n        '''\n        def _Error(**kwds):\n            return _AssertionError(txt__=self.null_space2, **kwds)\n\n        np = self.np\n        A  = np.array(A)\n        m  = max(A.shape)\n        if m != 4:  # for this usage\n            raise _Error(shape=m)\n        # if needed, square A, pad with zeros\n        A = np.resize(A, m * m).reshape(m, m)\n#       try:  # no np.linalg.null_space <https://docs.SciPy.org/doc/>\n#           Z = scipy.linalg.null_space(A)  # XXX no scipy.linalg?\n#           return Z, ...\n#       except AttributeError:\n#           pass\n        U, S, V = np.linalg.svd(A)\n        s = max(EPS, rcond) if rcond else (EPS * max(U.shape[0], V.shape[1]))\n        t = max(EPS, float(np.max(S) * s))  # abs_tol, rel_tol * largest singular\n        r = int(np.sum(S > t))  # rank\n        if r == 3:  # get null_space\n            Z = np.transpose(V[r:])\n            s = map2(int, Z.shape)\n            if s != (m, 1):  # bad null_space shape\n                raise _Error(shape=s, m=m)\n            D = A.dot(Z)  # near-zeros-vector\n            n = float(np.linalg.norm(D, INF))  # INF = max(fabs(D)), 2 = hypot_(*D)\n            if n > t:  # largest exceed tol\n                raise _Error(dot=tuple(D.ravel()), norm=n, tol=t)\n        else:  # coincident, colinear, concentric centers, ambiguous, etc.\n            Z = None\n        # del A, S, U, V  # release numpy\n        return Z, r\n\n    @Property_RO\n    def pseudo_inverse(self):\n        '''Moore-Penrose pseudo-inverse function.\n        '''\n        return self.np.linalg.pinv\n\n    def real_roots(self, *coeffs):\n        '''Compute the real, non-complex roots of a polynomial.\n        '''\n        np = self.np\n        rs = np.polynomial.polynomial.polyroots(coeffs)\n        return tuple(float(r) for r in rs if not np.iscomplex(r))\n\n_numpy = _numpy()  # PYCHOK singleton\n\n\ndef radii11(point1, point2, point3, useZ=True):\n    '''Return the radii of the C{In-}, I{Soddy} and C{Tangent} circles of a\n       (2- or 3-D) triangle.\n\n       @arg point1: First point (C{Cartesian}, L{Vector3d}, C{Vector3Tuple},\n                    C{Vector4Tuple} or C{Vector2Tuple} if C{B{useZ}=False}).\n       @arg point2: Second point (C{Cartesian}, L{Vector3d}, C{Vector3Tuple},\n                    C{Vector4Tuple} or C{Vector2Tuple} if C{B{useZ}=False}).\n       @arg point3: Third point (C{Cartesian}, L{Vector3d}, C{Vector3Tuple},\n                    C{Vector4Tuple} or C{Vector2Tuple} if C{B{useZ}=False}).\n       @kwarg useZ: If C{True}, use the Z components, otherwise force C{z=INT0} (C{bool}).\n\n       @return: L{Radii11Tuple}C{(rA, rB, rC, cR, rIn, riS, roS, a, b, c, s)}.\n\n       @raise TriangleError: Near-coincident or -colinear points.\n\n       @raise TypeError: Invalid B{C{point1}}, B{C{point2}} or B{C{point3}}.\n\n       @see: U{Circumradius<https://MathWorld.Wolfram.com/Circumradius.html>},\n             U{Incircle<https://MathWorld.Wolfram.com/Incircle.html>}, U{Soddy\n             Circles<https://MathWorld.Wolfram.com/SoddyCircles.html>} and\n             U{Tangent Circles<https://MathWorld.Wolfram.com/TangentCircles.html>}.\n    '''\n    try:\n        return _radii11ABC4(point1, point2, point3, useZ=useZ)[0]\n    except (TypeError, ValueError) as x:\n        raise _xError(x, point1=point1, point2=point2, point3=point3)\n\n\ndef _radii11ABC4(point1, point2, point3, useZ=True):\n    # (INTERNAL) Tangent, Circum, Incircle, Soddy radii, sides and semi-perimeter\n    A = _otherV3d(useZ=useZ, point1=point1, NN_OK=False)\n    B = _otherV3d(useZ=useZ, point2=point2, NN_OK=False)\n    C = _otherV3d(useZ=useZ, point3=point3, NN_OK=False)\n\n    a = B.minus(C).length\n    b = C.minus(A).length\n    c = A.minus(B).length\n\n    S = _Fsumf_(a, b, c) * _0_5\n    s =  float(S)  # semi-perimeter\n    if s > EPS0:\n        rs = float(S - a), float(S - b), float(S - c)\n        r3, r2, r1 = sorted(rs)  # r3 <= r2 <= r1\n        if r3 > EPS0:  # and r2 > EPS0 and r1 > EPS0\n            r3_r1 = r3 / r1\n            r3_r2 = r3 / r2\n            # t = r1 * r2 * r3 * (r1 + r2 + r3)\n            #   = r1**2 * r2 * r3 * (1 + r2 / r1 + r3 / r1)\n            #   = (r1 * r2)**2 * (r3 / r2) * (1 + r2 / r1 + r3 / r1)\n            t = r3_r2 * fsum1f_(_1_0, r2 / r1, r3_r1)  # * (r1 * r2)**2\n            if t > EPS02:\n                t = sqrt(t) * _2_0  # * r1 * r2\n                # d = r1 * r2 + r2 * r3 + r3 * r1\n                #   = r1 * (r2 + r2 * r3 / r1 + r3)\n                #   = r1 * r2 * (1 + r3 / r1 + r3 / r2)\n                d = fsum1f_(_1_0, r3_r1, r3_r2)  # * r1 * r2\n                # si/o = r1 * r2 * r3 / (r1 * r2 * (d +/- t))\n                #      = r3 / (d +/- t)\n                si =  r3 / (d + t)\n                so = (r3 / (d - t)) if d > t else INF\n                # ci = sqrt(r1 * r2 * r3 / s)\n                #    = r1 * sqrt(r2 * r3 / r1 / s)\n                ci = r1 * sqrt(r2 * r3_r1 / s)\n                # co = a * b * c / (4 * ci * s)\n                t  = ci * s * _4_0\n                co = (a * b * c / t) if t > EPS0 else INF\n                r1, r2, r3 = rs  # original order\n                t = Radii11Tuple(r1, r2, r3, co, ci, si, so, a, b, c, s)\n                return t, A, B, C\n\n    raise TriangleError(_near_(_coincident_) if min(a, b, c) < EPS0 else (\n                        _colinear_ if _iscolinearWith(A, B, C) else _invalid_))\n\n\ndef soddy4(point1, point2, point3, eps=EPS4, useZ=True):\n    '''Return the radius and center of the C{inner} I{Soddy} circle of a\n       (2- or 3-D) triangle.\n\n       @arg point1: First point (C{Cartesian}, L{Vector3d}, C{Vector3Tuple},\n                    C{Vector4Tuple} or C{Vector2Tuple} if C{B{useZ}=False}).\n       @arg point2: Second point (C{Cartesian}, L{Vector3d}, C{Vector3Tuple},\n                    C{Vector4Tuple} or C{Vector2Tuple} if C{B{useZ}=False}).\n       @arg point3: Third point (C{Cartesian}, L{Vector3d}, C{Vector3Tuple},\n                    C{Vector4Tuple} or C{Vector2Tuple} if C{B{useZ}=False}).\n       @kwarg eps: Tolerance for function L{pygeodesy.trilaterate3d2} if\n                   C{B{useZ} is True} otherwise L{pygeodesy.trilaterate2d2}.\n       @kwarg useZ: If C{True}, use the Z components, otherwise force C{z=INT0} (C{bool}).\n\n       @return: L{Soddy4Tuple}C{(radius, center, deltas, outer)}.  The C{center},\n                an instance of B{C{point1}}'s (sub-)class, is co-planar with the\n                three given points.  The C{outer} I{Soddy} radius may be C{INF}.\n\n       @raise ImportError: Package C{numpy} not found, not installed or older\n                           than version 1.10 and C{B{useZ} is True}.\n\n       @raise IntersectionError: Near-coincident or -colinear points or\n                                 a trilateration or C{numpy} issue.\n\n       @raise TypeError: Invalid B{C{point1}}, B{C{point2}} or B{C{point3}}.\n\n       @see: Functions L{radii11} and L{circum3} and U{Soddy Circles\n             <https://MathWorld.Wolfram.com/SoddyCircles.html>}.\n    '''\n    t, p1, p2, p3 = _radii11ABC4(point1, point2, point3, useZ=useZ)\n\n    r    =  t.riS\n    c, d = _tricenter3d2(p1, t.rA + r,\n                         p2, t.rB + r,\n                         p3, t.rC + r, eps=eps, useZ=useZ,\n                                       Vector=point1.classof, name=typename(soddy4))\n    return Soddy4Tuple(r, c, d, t.roS)\n\n\ndef triaxum5(points, useZ=True):\n    '''Best-fit a triaxial ellipsoid through three or more (3-D) points.\n\n       @arg points: Iterable of points (each a C{Cartesian}, L{Vector3d}, C{Vector3Tuple}\n                    or C{Vector4Tuple}).\n       @kwarg useZ: If C{True}, use the points' Z component, otherwise force C{z=INT0}\n                    (C{bool}).\n\n       @return: L{Triaxum5Tuple}C{(a, b, c, rank, residuals)} with the unordered triaxial\n                radii C{a}, C{b} and C{c} in C{meter}, same units as the points' coordinates.\n\n       @raise ImportError: Package C{numpy} not found, not installed or older than version 1.10.\n\n       @raise NumPyError: Some C{numpy} issue.\n\n       @raise PointsError: Too few B{C{points}}.\n\n       @raise TypeError: One of the B{C{points}} is invalid.\n\n       @see: I{Charles Jekel}'s U{\"Least Squares Ellipsoid Fit\"<https://Jekel.me/2020/Least-Squares-Ellipsoid-Fit/>}\n             and U{numpy.linalg.lstsq<https://NumPy.org/doc/stable/reference/generated/numpy.linalg.lstsq.html>}.\n    '''\n    n, ps = len2(points)\n    if n < 3:\n        raise PointsError(points=n, txt=_too_(_few_))\n\n    A = []\n    for i, p in enumerate(ps):\n        v = _otherV3d(useZ=useZ, i=i, points=p)\n        A.append(v.x2y2z23)\n\n    with _numpy(triaxum5, n=n) as _np:\n        A = _np.array(A)\n        b = _1_0_1T * n\n        T, R, rk = _np.least_squares3(A, b)\n\n    def _1_sqrt(x):\n        return sqrt(_1_0 / x) if x else _0_0  # INF\n\n    a, b, c = map(_1_sqrt, T)\n    return Triaxum5Tuple(a, b, c, rk, R)\n\n\ndef _tricenter3d2(p1, r1, p2, r2, p3, r3, eps=EPS4, useZ=True, dLL3=False, **kwds):\n    # (INTERNAL) Trilaterate and disambiguate the 3-D center\n    d, kwds = None, _xkwds(kwds, eps=eps, coin=True)\n    if useZ and p1.z != p2.z != p3.z:  # ignore z if all match\n        a, b = _trilaterate3d2(p1, r1, p2, r2, p3, r3, **kwds)\n        if a is b:  # no unambiguity\n            c = a  # == b\n        else:\n            c = a.plus(b).times(_0_5)  # mean\n            if not a.isconjugateTo(b, minum=0, eps=eps):\n                if dLL3:  # deltas as (lat, lon, height)\n                    a = a.toLatLon()\n                    b = b.toLatLon()\n                    d = LatLon3Tuple(b.lat    - a.lat,\n                                     b.lon    - a.lon,\n                                     b.height - a.height, name=_deltas_)\n                else:\n                    d = b.minus(a)  # vectorial deltas\n    else:\n        if useZ:  # pass z to Vector if given\n            kwds = _xkwds(kwds, z=p1.z)\n        c = _trilaterate2d2(p1.x, p1.y, r1,\n                            p2.x, p2.y, r2,\n                            p3.x, p3.y, r3, **kwds)\n    return c, d\n\n\ndef trilaterate2d2(x1, y1, radius1, x2, y2, radius2, x3, y3, radius3,\n                                    eps=None, **Vector_and_kwds):\n    '''Trilaterate three circles, each given as a (2-D) center and a radius.\n\n       @arg x1: Center C{x} coordinate of the 1st circle (C{scalar}).\n       @arg y1: Center C{y} coordinate of the 1st circle (C{scalar}).\n       @arg radius1: Radius of the 1st circle (C{scalar}).\n       @arg x2: Center C{x} coordinate of the 2nd circle (C{scalar}).\n       @arg y2: Center C{y} coordinate of the 2nd circle (C{scalar}).\n       @arg radius2: Radius of the 2nd circle (C{scalar}).\n       @arg x3: Center C{x} coordinate of the 3rd circle (C{scalar}).\n       @arg y3: Center C{y} coordinate of the 3rd circle (C{scalar}).\n       @arg radius3: Radius of the 3rd circle (C{scalar}).\n       @kwarg eps: Tolerance to check the trilaterated point I{delta} on\n                   all 3 circles (C{scalar}) or C{None} for no checking.\n       @kwarg Vector_and_kwds: Optional class C{B{Vector}=None} to return\n                     the trilateration and optionally, additional B{C{Vector}}\n                     keyword arguments).\n\n       @return: Trilaterated point as C{B{Vector}(x, y, **B{Vector_kwds})}\n                or L{Vector2Tuple}C{(x, y)} if C{B{Vector} is None}.\n\n       @raise IntersectionError: No intersection, near-concentric or -colinear\n                                 centers, trilateration failed some other way\n                                 or the trilaterated point is off one circle\n                                 by more than B{C{eps}}.\n\n       @raise UnitError: Invalid B{C{radius1}}, B{C{radius2}} or B{C{radius3}}.\n\n       @see: U{Issue #49<https://GitHub.com/mrJean1/PyGeodesy/issues/49>},\n             U{Find X location using 3 known (X,Y) location using trilateration\n             <https://math.StackExchange.com/questions/884807>} and function\n             L{pygeodesy.trilaterate3d2}.\n    '''\n    return _trilaterate2d2(x1, y1, radius1,\n                           x2, y2, radius2,\n                           x3, y3, radius3, eps=eps, **Vector_and_kwds)\n\n\ndef _trilaterate2d2(x1, y1, radius1, x2, y2, radius2, x3, y3, radius3,\n                                             coin=False, eps=None,\n                                             Vector=None, **Vector_kwds):\n    # (INTERNAL) Trilaterate three circles, see L{pygeodesy.trilaterate2d2}\n\n    def _abct4(x1, y1, r1, x2, y2, r2):\n        a =  x2 - x1\n        b =  y2 - y1\n        t = _tri3near2far(r1, r2, hypot(a, b), coin)\n        c = _0_0 if t else (hypot2_(r1, x2, y2) - hypot2_(r2, x1, y1))\n        return a, b, c, t\n\n    def _astr(**kwds):  # kwds as (name=value, ...) strings\n        return Fmt.PAREN(_COMMASPACE_(*(Fmt.EQUALg(*t) for t in kwds.items())))\n\n    r1 = Radius_(radius1=radius1)\n    r2 = Radius_(radius2=radius2)\n    r3 = Radius_(radius3=radius3)\n\n    a, b, c, t = _abct4(x1, y1, r1, x2, y2, r2)\n    if t:\n        raise IntersectionError(_and(_astr(x1=x1, y1=y1, radius1=r1),\n                                     _astr(x2=x2, y2=y2, radius2=r2)), txt=t)\n\n    d, e, f, t = _abct4(x2, y2, r2, x3, y3, r3)\n    if t:\n        raise IntersectionError(_and(_astr(x2=x2, y2=y2, radius2=r2),\n                                     _astr(x3=x3, y3=y3, radius3=r3)), txt=t)\n\n    _, _, _, t = _abct4(x3, y3, r3, x1, y1, r1)\n    if t:\n        raise IntersectionError(_and(_astr(x3=x3, y3=y3, radius3=r3),\n                                     _astr(x1=x1, y1=y1, radius1=r1)), txt=t)\n\n    q = fdot_(a, e, -b, d) * _2_0\n    if isnear0(q):\n        t = _no_(_intersection_)\n        raise IntersectionError(_and(_astr(x1=x1, y1=y1, radius1=r1),\n                                     _astr(x2=x2, y2=y2, radius2=r2),\n                                     _astr(x3=x3, y3=y3, radius3=r3)), txt=t)\n    t = Vector2Tuple(Fdot_(c, e, -b, f).fover(q),\n                     Fdot_(a, f, -c, d).fover(q), name=typename(trilaterate2d2))\n\n    if eps and eps > 0:  # check distances to center vs radius\n        for x, y, r in ((x1, y1, r1), (x2, y2, r2), (x3, y3, r3)):\n            d = hypot(x - t.x, y - t.y)\n            e = fabs(d - r)\n            if e > eps:\n                t = _and(Float(delta=e).toRepr(), r.toRepr(),\n                         Float(distance=d).toRepr(), t.toRepr())\n                raise IntersectionError(t, txt=Fmt.exceeds_eps(eps))\n\n    if Vector is not None:\n        t = Vector(t.x, t.y, **_xkwds(Vector_kwds, name=t.name))\n    return t\n\n\ndef _trilaterate3d2(c1, r1, c2, r2, c3, r3, eps=EPS4, coin=False,  # MCCABE 13\n                                          **clas_Vector_and_kwds):\n    # (INTERNAL) Intersect three spheres or circles, see function\n    # L{pygeodesy.trilaterate3d2}, separated to allow callers to\n    # embellish exceptions, like C{FloatingPointError}s from C{numpy}\n\n    def _Arow4(c):\n        # make a row for matrix A (1, -2x, -2y, -2z)\n        return _1_0_1T + c.times(_N_2_0).xyz3\n\n    def _F4d3(F):\n        # map numpy 4-vector to floats and xyz3\n        T = map2(float, F)\n        t = T[1:]\n        return T, t, Vector3d(*t)\n\n    def _N3(t01, x, z):\n        # compute x, y and z and return as B{C{clas}} or B{C{Vector}}\n        v = x.plus(z.times(t01))\n        n = typename(trilaterate3d2)\n        return _nVc(v, **_xkwds(clas_Vector_and_kwds, name=n))\n\n    c2 = _otherV3d(center2=c2, NN_OK=False)\n    c3 = _otherV3d(center3=c3, NN_OK=False)\n    rs = (r1, Radius_(radius2=r2, low=EPS),\n              Radius_(radius3=r3, low=EPS))\n\n    # get matrix A[3 x 4], its null_space Z and pseudo-inverse\n    A = [_Arow4(c) for c in (c1, c2, c3)]\n    with _numpy(trilaterate3d2, A=A, eps=eps) as _np:\n        Z, _ = _np.null_space2(A, eps)\n        if Z is not None:\n            Z, _, z = _F4d3(Z)  # [4 x 1]\n            z2 =  z.length2\n            A  = _np.pseudo_inverse(A)  # [4 x 3]\n            bs = [c.length2 for c in (c1, c2, c3)]\n            # perturb radii slightly by eps and eps * 4\n            for p in _tri5perturbs(eps, min(rs)):\n                b = [((r + p)**2 - b) for r, b in zip(rs, bs)]  # [3 x 1]\n                X, t, x = _F4d3(A.dot(b))  # [4 * 1]\n                # quadratic polynomial, coefficients order (^0, ^1, ^2)\n                t = _np.real_roots(fdot(X, _N_1_0, *t),\n                                   fdot(Z, _N_0_5, *t) * _2_0, z2)\n                if t:\n                    v = _N3(t[0], x, z)\n                    if len(t) < 2:  # one intersection\n                        t = v, v\n                    elif fabs(t[0] - t[1]) < eps:  # abutting\n                        t = v, v\n                    else:  # \"lowest\" intersection first (to avoid test failures)\n                        u = _N3(t[1], x, z)\n                        t = (u, v) if u.x < v.x else (v, u)\n                    return t\n\n    def _no_itersection(coin, Z):\n        t = _no_(_intersection_)\n        if coin:\n            def _reprs(*crs):\n                return _and(*map(repr, crs))\n\n            r =  repr(r1) if r1 == r2 == r3 else _reprs(r1, r2, r3)\n            t = _SPACE_(t, _of_, _reprs(c1, c2, c3), _with_, _radius_, r)\n        elif Z is None:\n            t = _COMMASPACE_(t, _no_(typename(_numpy.null_space2)))\n        return t\n\n    # coincident, concentric, colinear, too distant, no intersection:\n    # create the explanation and and throw an IntersectionError\n    t = _tri4near2far(c1, r1, c2, r2, coin) or \\\n        _tri4near2far(c1, r1, c3, r3, coin) or \\\n        _tri4near2far(c2, r2, c3, r3, coin) or (\n        _colinear_ if _iscolinearWith(c1, c2, c3, eps=eps) else\n        _no_itersection(coin, Z))\n    raise IntersectionError(t, txt=None)\n\n\ndef _tri3near2far(r1, r2, h, coin):\n    # check for near-coincident/-concentric or too distant spheres/circles\n    return _too_(Fmt.distant(h)) if h > (r1 + r2) else (_near_(\n           _coincident_ if coin else _concentric_) if h < fabs(r1 - r2) else NN)\n\n\ndef _tri4near2far(c1, r1, c2, r2, coin):\n    # check for near-coincident/-concentric or too distant spheres/circles\n    t = _tri3near2far(r1, r2, c1.minus(c2).length, coin)\n    return _SPACE_(c1.name, _and_, c2.name, t) if t else NN\n\n\ndef _tri5perturbs(eps, r):\n    # perturb the radii to handle this corner case\n    # <https://GitHub.com/mrJean1/PyGeodesy/issues/49>\n    yield _0_0\n    if eps and eps > 0:\n        p = max(eps, EPS)\n        yield  p\n        m = min(p, r)\n        yield -m\n        q = max(eps * _4_0, _EPS4e8)\n        if q > p:\n            yield q\n            q = min(q, r)\n            if q > m:\n                yield -q\n\n# **) MIT License\n#\n# Copyright (C) 2016-2026 -- mrJean1 at Gmail -- All Rights Reserved.\n#\n# Permission is hereby granted, free of charge, to any person obtaining a\n# copy of this software and associated documentation files (the \"Software\"),\n# to deal in the Software without restriction, including without limitation\n# the rights to use, copy, modify, merge, publish, distribute, sublicense,\n# and/or sell copies of the Software, and to permit persons to whom the\n# Software is furnished to do so, subject to the following conditions:\n#\n# The above copyright notice and this permission notice shall be included\n# in all copies or substantial portions of the Software.\n#\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL\n# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR\n# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\n# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n# OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "pygeodesy/vector3d.py",
    "content": "\n# -*- coding: utf-8 -*-\n\nu'''Extended 3-D vector class L{Vector3d} and functions.\n\nFunctions L{intersection3d3}, L{intersections2}, L{nearestOn}, L{parse3d},\nL{sumOf} and L{trilaterate3d2}.\n'''\n\nfrom pygeodesy.constants import EPS, EPS0, EPS1, EPS4, INT0, isnear0, \\\n                               _0_0, _1_0,  typename\nfrom pygeodesy.errors import IntersectionError, _ValueError, VectorError, \\\n                            _xattr, _xError, _xkwds, _xkwds_get, _xkwds_item2\nfrom pygeodesy.fmath import euclid, fabs, fdot, hypot, sqrt\n# from pygeodesy.fsums import fsum1_  # from _MODS\n# from pygeodesy.formy import _radical2  # _MODS\n# from pygeodesy.internals import typename  # from .constants\nfrom pygeodesy.interns import _COMMA_, _concentric_, _intersection_, \\\n                              _near_, _negative_, _no_, _too_\nfrom pygeodesy.iters import PointsIter,  Fmt\nfrom pygeodesy.lazily import _ALL_DOCS, _ALL_LAZY, _ALL_MODS as _MODS\nfrom pygeodesy.named import _name__, _name2__, _xnamed, _xotherError\nfrom pygeodesy.namedTuples import Intersection3Tuple, NearestOn2Tuple, \\\n                                  NearestOn6Tuple, _v2Cls, Vector3Tuple  # Vector4Tuple\n# from pygeodesy.nvectorBase import _nsumOf  # _MODS\n# from pygeodesy.streprs import Fmt  # from .iters\nfrom pygeodesy.units import _fi_j2, _isDegrees, Radius, Radius_\nfrom pygeodesy.utily import atan2b, sincos2d\n# from pygeodesy import vector2d as _vector2d  # _MODS.into\nfrom pygeodesy.vector3dBase import Vector3dBase\n\n# from math import fabs, sqrt  # from .fmath\n\n__all__ = _ALL_LAZY.vector3d\n__version__ = '25.05.07'\n\n_vector2d = _MODS.into(vector2d=__name__)\n\n\nclass Vector3d(Vector3dBase):\n    '''Extended 3-D vector.\n\n       In a geodesy context, these may be used to represent:\n        - n-vector, the normal to a point on the earth's surface\n        - Earth-Centered, Earth-Fixed (ECEF) cartesian (== spherical n-vector)\n        - great circle normal to the vector\n        - motion vector on the earth's surface\n        - etc.\n    '''\n\n    def bearing(self, useZ=True):\n        '''Get this vector's \"bearing\", the angle off the +Z axis, clockwise.\n\n           @kwarg useZ: If C{True}, use the Z component, otherwise ignore the\n                        Z component and consider the +Y as the +Z axis.\n\n           @return: Bearing (compass C{degrees}).\n        '''\n        x, y = self.x, self.y\n        if useZ:\n            x, y = hypot(x, y), self.z\n        return atan2b(x, y)\n\n    def circin6(self, point2, point3, eps=EPS4):\n        '''Return the radius and center of the I{inscribed} aka I{In- circle}\n           of a (3-D) triangle formed by this and two other points.\n\n           @arg point2: Second point (C{Cartesian}, L{Vector3d}, C{Vector3Tuple},\n                        C{Vector4Tuple} or C{Vector2Tuple} if C{B{useZ}=False}).\n           @arg point3: Third point (C{Cartesian}, L{Vector3d}, C{Vector3Tuple},\n                        C{Vector4Tuple} or C{Vector2Tuple} if C{B{useZ}=False}).\n           @kwarg eps: Tolerance for function L{pygeodesy.trilaterate3d2} if\n                       C{B{useZ} is True} otherwise L{pygeodesy.trilaterate2d2}.\n\n           @return: L{Circin6Tuple}C{(radius, center, deltas, cA, cB, cC)}.  The\n                    C{center} and contact points C{cA}, C{cB} and C{cC}, each an\n                    instance of this (sub-)class, are co-planar with this and the\n                    two given points.\n\n           @raise ImportError: Package C{numpy} not found, not installed or older\n                               than version 1.10.\n\n           @raise IntersectionError: Near-coincident or -colinear points or\n                                     a trilateration or C{numpy} issue.\n\n           @raise TypeError: Invalid B{C{point2}} or B{C{point3}}.\n\n           @see: Function L{pygeodesy.circin6}, U{Incircle\n                 <https://MathWorld.Wolfram.com/Incircle.html>} and U{Contact\n                 Triangle<https://MathWorld.Wolfram.com/ContactTriangle.html>}.\n        '''\n        try:\n            return _vector2d._circin6(self, point2, point3, eps=eps, useZ=True)\n        except (AssertionError, TypeError, ValueError) as x:\n            raise _xError(x, point=self, point2=point2, point3=point3)\n\n    def circum3(self, point2, point3, circum=True, eps=EPS4):\n        '''Return the radius and center of the smallest circle I{through} or\n           I{containing} this and two other (3-D) points.\n\n           @arg point2: Second point (C{Cartesian}, L{Vector3d}, C{Vector3Tuple}\n                        or C{Vector4Tuple}).\n           @arg point3: Third point (C{Cartesian}, L{Vector3d}, C{Vector3Tuple}\n                        or C{Vector4Tuple}).\n           @kwarg circum: If C{True}, return the C{circumradius} and C{circumcenter},\n                          always, ignoring the I{Meeus}' Type I case (C{bool}).\n           @kwarg eps: Tolerance passed to function L{pygeodesy.trilaterate3d2}.\n\n           @return: A L{Circum3Tuple}C{(radius, center, deltas)}.  The C{center}, an\n                    instance of this (sub-)class, is co-planar with this and the two\n                    given points.\n\n           @raise ImportError: Package C{numpy} not found, not installed or older than\n                               version 1.10.\n\n           @raise IntersectionError: Near-concentric, -coincident or -colinear points\n                                     or a trilateration or C{numpy} issue.\n\n           @raise TypeError: Invalid B{C{point2}} or B{C{point3}}.\n\n           @see: Function L{pygeodesy.circum3} and methods L{circum4_} and L{meeus2}.\n        '''\n        try:\n            return _vector2d._circum3(self, point2, point3, circum=circum,\n                                            eps=eps, useZ=True, clas=self.classof)\n        except (AssertionError, TypeError, ValueError) as x:\n            raise _xError(x, point=self, point2=point2, point3=point3, circum=circum)\n\n    def circum4_(self, *points):\n        '''Best-fit a sphere through this and two or more other (3-D) points.\n\n           @arg points: Other points (each a C{Cartesian}, L{Vector3d}, C{Vector3Tuple}\n                        or C{Vector4Tuple}).\n\n           @return: L{Circum4Tuple}C{(radius, center, rank, residuals)} with C{center}\n                    an instance if this (sub-)class.\n\n           @raise ImportError: Package C{numpy} not found, not installed or\n                               older than version 1.10.\n\n           @raise NumPyError: Some C{numpy} issue.\n\n           @raise PointsError: Too few B{C{points}}.\n\n           @raise TypeError: One of the B{C{points}} invalid.\n\n           @see: Function L{pygeodesy.circum4_} and methods L{circum3} and L{meeus2}.\n        '''\n        return _vector2d.circum4_(self, *points, useZ=True, Vector=self.classof)\n\n    def iscolinearWith(self, point1, point2, eps=EPS):\n        '''Check whether this and two other (3-D) points are colinear.\n\n           @arg point1: One point (C{Cartesian}, L{Vector3d}, C{Vector3Tuple}\n                        or C{Vector4Tuple}).\n           @arg point2: An other point (C{Cartesian}, L{Vector3d}, C{Vector3Tuple}\n                        or C{Vector4Tuple}).\n           @kwarg eps: Tolerance (C{scalar}), same units as C{x},\n                       C{y}, and C{z}.\n\n           @return: C{True} if this point is colinear with B{C{point1}} and\n                    B{C{point2}}, C{False} otherwise.\n\n           @raise TypeError: Invalid B{C{point1}} or B{C{point2}}.\n\n           @see: Method L{nearestOn}.\n        '''\n        v = self if self.name else _otherV3d(NN_OK=False, this=self)\n        return _vector2d._iscolinearWith(v, point1, point2, eps=eps)\n\n    def meeus2(self, point2, point3, circum=False):\n        '''Return the radius and I{Meeus}' Type of the smallest circle I{through}\n           or I{containing} this and two other (3-D) points.\n\n           @arg point2: Second point (C{Cartesian}, L{Vector3d}, C{Vector3Tuple}\n                        or C{Vector4Tuple}).\n           @arg point3: Third point (C{Cartesian}, L{Vector3d}, C{Vector3Tuple}\n                        or C{Vector4Tuple}).\n           @kwarg circum: If C{True}, return the C{circumradius} and C{circumcenter}\n                          always, overriding I{Meeus}' Type II case (C{bool}).\n\n           @return: L{Meeus2Tuple}C{(radius, Type)}, with C{Type} the C{circumcenter}\n                    iff C{B{circum}=True}.\n\n           @raise IntersectionError: Coincident or colinear points, iff C{B{circum}=True}.\n\n           @raise TypeError: Invalid B{C{point2}} or B{C{point3}}.\n\n           @see: Function L{pygeodesy.meeus2} and methods L{circum3} and L{circum4_}.\n        '''\n        try:\n            return _vector2d._meeus2(self, point2, point3, circum, clas=self.classof)\n        except (TypeError, ValueError) as x:\n            raise _xError(x, point=self, point2=point2, point3=point3, circum=circum)\n\n    def nearestOn(self, point1, point2, within=True):\n        '''Locate the point between two points closest to this point.\n\n           @arg point1: Start point (C{Cartesian}, L{Vector3d}, C{Vector3Tuple} or\n                        C{Vector4Tuple}).\n           @arg point2: End point (C{Cartesian}, L{Vector3d}, C{Vector3Tuple} or\n                        C{Vector4Tuple}).\n           @kwarg within: If C{True}, return the closest point between the given\n                          points, otherwise the closest point on the extended\n                          line through both points (C{bool}).\n\n           @return: Closest point, either B{C{point1}} or B{C{point2}} or an instance\n                    of this (sub-)class.\n\n           @raise TypeError: Invalid B{C{point1}} or B{C{point2}}.\n\n           @see: Method L{sphericalTrigonometry.LatLon.nearestOn3} and U{3-D Point-Line\n                 Distance<https://MathWorld.Wolfram.com/Point-LineDistance3-Dimensional.html>}.\n        '''\n        return _nearestOn2(self, point1, point2, within=within).closest\n\n    def nearestOn6(self, points, closed=False, useZ=True):  # eps=EPS\n        '''Locate the point on a path or polygon closest to this point.\n\n           The closest point is either on and within the extent of a polygon\n           edge or the nearest of that edge's end points.\n\n           @arg points: The path or polygon points (C{Cartesian}, L{Vector3d},\n                        C{Vector3Tuple} or C{Vector4Tuple}[]).\n           @kwarg closed: Optionally, close the path or polygon (C{bool}).\n           @kwarg useZ: If C{True}, use the Z components, otherwise force C{z=INT0} (C{bool}).\n\n           @return: A L{NearestOn6Tuple}C{(closest, distance, fi, j, start, end)}\n                    with the C{closest}, the C{start} and the C{end} point each\n                    an instance of this point's (sub-)class.\n\n           @raise PointsError: Insufficient number of B{C{points}}\n\n           @raise TypeError: Non-cartesian B{C{points}}.\n\n           @note: Distances measured with method L{Vector3d.equirectangular}.\n\n           @see: Function L{nearestOn6}.\n        '''\n        return nearestOn6(self, points, closed=closed, useZ=useZ)  # Vector=self.classof\n\n    def parse(self, str3d, sep=_COMMA_, **name):\n        '''Parse an C{\"x, y, z\"} string to a L{Vector3d} instance.\n\n           @arg str3d: X, y and z string (C{str}), see function L{parse3d}.\n           @kwarg sep: Optional separator (C{str}).\n           @kwarg name: Optional instance C{B{name}=NN} (C{str}), overriding this name.\n\n           @return: The instance (L{Vector3d}).\n\n           @raise VectorError: Invalid B{C{str3d}}.\n        '''\n        return parse3d(str3d, sep=sep, Vector=self.classof, name=self._name__(name))\n\n    def radii11(self, point2, point3):\n        '''Return the radii of the C{Circum-}, C{In-}, I{Soddy} and C{Tangent}\n           circles of a (3-D) triangle.\n\n           @arg point2: Second point (C{Cartesian}, L{Vector3d}, C{Vector3Tuple},\n                        C{Vector4Tuple} or C{Vector2Tuple} if C{B{useZ}=False}).\n           @arg point3: Third point (C{Cartesian}, L{Vector3d}, C{Vector3Tuple},\n                        C{Vector4Tuple} or C{Vector2Tuple} if C{B{useZ}=False}).\n\n           @return: L{Radii11Tuple}C{(rA, rB, rC, cR, rIn, riS, roS, a, b, c, s)}.\n\n           @raise TriangleError: Near-coincident or -colinear points.\n\n           @raise TypeError: Invalid B{C{point2}} or B{C{point3}}.\n\n           @see: Function L{pygeodesy.radii11}, U{Incircle\n                 <https://MathWorld.Wolfram.com/Incircle.html>}, U{Soddy Circles\n                 <https://MathWorld.Wolfram.com/SoddyCircles.html>} and U{Tangent\n                 Circles<https://MathWorld.Wolfram.com/TangentCircles.html>}.\n        '''\n        try:\n            return _vector2d._radii11ABC4(self, point2, point3, useZ=True)[0]\n        except (TypeError, ValueError) as x:\n            raise _xError(x, point=self, point2=point2, point3=point3)\n\n    def soddy4(self, point2, point3, eps=EPS4):\n        '''Return the radius and center of the C{inner} I{Soddy} circle of a\n           (3-D) triangle.\n\n           @arg point2: Second point (C{Cartesian}, L{Vector3d}, C{Vector3Tuple},\n                        C{Vector4Tuple} or C{Vector2Tuple} if C{B{useZ}=False}).\n           @arg point3: Third point (C{Cartesian}, L{Vector3d}, C{Vector3Tuple},\n                        C{Vector4Tuple} or C{Vector2Tuple} if C{B{useZ}=False}).\n           @kwarg eps: Tolerance for function L{pygeodesy.trilaterate3d2} if\n                       C{B{useZ} is True} otherwise L{pygeodesy.trilaterate2d2}.\n\n           @return: L{Soddy4Tuple}C{(radius, center, deltas, outer)}.  The C{center},\n                    an instance of B{C{point1}}'s (sub-)class, is co-planar with the\n                    three given points.\n\n           @raise ImportError: Package C{numpy} not found, not installed or older\n                               than version 1.10.\n\n           @raise IntersectionError: Near-coincident or -colinear points or\n                                     a trilateration or C{numpy} issue.\n\n           @raise TypeError: Invalid B{C{point2}} or B{C{point3}}.\n\n           @see: Function L{pygeodesy.soddy4}.\n        '''\n        return _vector2d.soddy4(self, point2, point3, eps=eps, useZ=True)\n\n    def toCartesian(self, Cartesian, **Cartesian_kwds):\n        '''Return this C{Vector3d} as a C{Cartesian}.\n\n           @arg Cartesian: The C{Cartesian} class to use.\n           @kwarg Cartesian_kwds: Optional, additional C{Cartesian}\n                                  keyword arguments.\n\n           @return: The C{B{Cartesian}} instance.\n        '''\n        return _v2Cls(self, Cartesian, Cartesian_kwds)\n\n    def trilaterate2d2(self, radius, center2, radius2, center3, radius3, eps=EPS4, z=INT0):\n        '''Trilaterate this and two other circles, each given as a (2-D) center\n           and a radius.\n\n           @arg radius: Radius of this circle (same C{units} as this C{x} and C{y}.\n           @arg center2: Center of the 2nd circle (C{Cartesian}, L{Vector3d},\n                         C{Vector2Tuple}, C{Vector3Tuple} or C{Vector4Tuple}).\n           @arg radius2: Radius of this circle (same C{units} as this C{x} and C{y}.\n           @arg center3: Center of the 3rd circle (C{Cartesian}, L{Vector3d},\n                         C{Vector2Tuple}, C{Vector3Tuple} or C{Vector4Tuple}).\n           @arg radius3: Radius of the 3rd circle (same C{units} as this C{x} and C{y}.\n           @kwarg eps: Tolerance to check the trilaterated point I{delta} on all\n                       3 circles (C{scalar}) or C{None} for no checking.\n           @kwarg z: Optional Z component of the trilaterated point (C{scalar}).\n\n           @return: Trilaterated point, an instance of this (sub-)class with C{z=B{z}}.\n\n           @raise IntersectionError: No intersection, near-concentric or -colinear\n                                     centers, trilateration failed some other way\n                                     or the trilaterated point is off one circle\n                                     by more than B{C{eps}}.\n\n           @raise TypeError: Invalid B{C{center2}} or B{C{center3}}.\n\n           @raise UnitError: Invalid B{C{radius1}}, B{C{radius2}} or B{C{radius3}}.\n\n           @see: Function L{pygeodesy.trilaterate2d2}.\n        '''\n\n        def _xyr3(r, **name_v):\n            v = _otherV3d(useZ=False, **name_v)\n            return v.x, v.y, r\n\n        try:\n            return _vector2d._trilaterate2d2(*(_xyr3(radius,  center=self) +\n                                               _xyr3(radius2, center2=center2) +\n                                               _xyr3(radius3, center3=center3)),\n                                               eps=eps, Vector=self.classof, z=z)\n        except (AssertionError, TypeError, ValueError) as x:\n            raise _xError(x, center=self,     radius=radius,\n                             center2=center2, radius2=radius2,\n                             center3=center3, radius3=radius3)\n\n    def trilaterate3d2(self, radius, center2, radius2, center3, radius3, eps=EPS4):\n        '''Trilaterate this and two other spheres, each given as a (3-D) center\n           and a radius.\n\n           @arg radius: Radius of this sphere (same C{units} as this C{x}, C{y}\n                        and C{z}).\n           @arg center2: Center of the 2nd sphere (C{Cartesian}, L{Vector3d},\n                         C{Vector3Tuple} or C{Vector4Tuple}).\n           @arg radius2: Radius of this sphere (same C{units} as this C{x}, C{y}\n                         and C{z}).\n           @arg center3: Center of the 3rd sphere (C{Cartesian}, , L{Vector3d},\n                         C{Vector3Tuple} or C{Vector4Tuple}).\n           @arg radius3: Radius of the 3rd sphere (same C{units} as this C{x}, C{y}\n                         and C{z}).\n           @kwarg eps: Pertubation tolerance (C{scalar}), same units as C{x}, C{y}\n                       and C{z} or C{None} for no pertubations.\n\n           @return: 2-Tuple with two trilaterated points, each an instance of this\n                    (sub-)class.  Both points are the same instance if all three\n                    spheres intersect or abut in a single point.\n\n           @raise ImportError: Package C{numpy} not found, not installed or\n                               older than version 1.10.\n\n           @raise IntersectionError: Near-concentric, -colinear, too distant or\n                                     non-intersecting spheres or C{numpy} issue.\n\n           @raise NumPyError: Some C{numpy} issue.\n\n           @raise TypeError: Invalid B{C{center2}} or B{C{center3}}.\n\n           @raise UnitError: Invalid B{C{radius}}, B{C{radius2}} or B{C{radius3}}.\n\n           @note: Package U{numpy<https://PyPI.org/project/numpy>} is required,\n                  version 1.10 or later.\n\n           @see: Norrdine, A. U{I{An Algebraic Solution to the Multilateration\n                 Problem}<https://www.ResearchGate.net/publication/275027725>}\n                 and U{I{implementation}<https://www.ResearchGate.net/publication/288825016>}.\n        '''\n        try:\n            c1 = _otherV3d(center=self, NN_OK=False)\n            return _vector2d._trilaterate3d2(c1, Radius_(radius, low=eps),\n                                        center2, radius2,\n                                        center3, radius3,\n                                        eps=eps, clas=self.classof)\n        except (AssertionError, TypeError, ValueError) as x:\n            raise _xError(x, center=self,     radius=radius,\n                             center2=center2, radius2=radius2,\n                             center3=center3, radius3=radius3)\n\n\ndef _intersect3d3(start1, end1, start2, end2, eps=EPS, useZ=False):  # MCCABE 16 in .formy.intersection2, .rhumbBase\n    # (INTERNAL) Intersect two lines, see L{intersection3d3} below,\n    # separated to allow callers to embellish any exceptions\n\n    def _corners2(s1, b1, s2, useZ):\n        # Get the C{s1'} and C{e1'} corners of a right-angle\n        # triangle with the hypotenuse thru C{s1} at bearing\n        # C{b1} and the right angle at C{s2}\n        dx, dy, d = s2.minus(s1).xyz3\n        if useZ and not isnear0(d):  # not supported\n            raise IntersectionError(useZ=d, bearing=b1)\n        s, c = sincos2d(b1)\n        if s and c:\n            dx *= c / s\n            dy *= s / c\n            e1 = Vector3d(s2.x,      s1.y + dx, s1.z)\n            s1 = Vector3d(s1.x + dy, s2.y,      s1.z)\n        else:  # orthogonal\n            d  = euclid(dx, dy)  # hypot?\n            e1 = Vector3d(s1.x + s * d, s1.y + c * d, s1.z)\n        return s1, e1\n\n    def _outside(t, d2, o):  # -o before start#, +o after end#\n        return -o if t < 0 else (o if t > d2 else 0)  # XXX d2 + eps?\n\n    s1 = t = _otherV3d(useZ=useZ, start1=start1)\n    s2 =     _otherV3d(useZ=useZ, start2=start2)\n    b1 = _isDegrees(end1)\n    if b1:  # bearing, make an e1\n        s1, e1 = _corners2(s1, end1, s2, useZ)\n    else:\n        e1 = _otherV3d(useZ=useZ, end1=end1)\n    b2 = _isDegrees(end2)\n    if b2:  # bearing, make an e2\n        s2, e2 = _corners2(s2, end2, t, useZ)\n    else:\n        e2 = _otherV3d(useZ=useZ, end2=end2)\n\n    a  = e1.minus(s1)\n    b  = e2.minus(s2)\n    c  = s2.minus(s1)\n\n    ab = a.cross(b)\n    d  = fabs(c.dot(ab))\n    e  = max(EPS0, eps or _0_0)\n    if d > EPS0 and ab.length > e:  # PYCHOK no cover\n        d = d / ab.length  # /= chokes PyChecker\n        if d > e:  # argonic, skew lines distance\n            raise IntersectionError(skew_d=d, txt=_no_(_intersection_))\n\n    # co-planar, non-skew lines\n    ab2 = ab.length2\n    if ab2 < e:  # colinear, parallel or null line(s)\n        x = a.length2 > b.length2\n        if x:  # make C{a} the shortest\n            a,  b  = b,  a\n            s1, s2 = s2, s1\n            e1, e2 = e2, e1\n            b1, b2 = b2, b1\n        if b.length2 < e:  # PYCHOK no cover\n            if c.length < e:\n                return s1, 0, 0\n            elif e2.minus(e1).length < e:\n                return e1, 0, 0\n        elif a.length2 < e:  # null (s1, e1), non-null (s2, e2)\n            # like _nearestOn2(s1, s2, e2, within=False, eps=e)\n            t = s1.minus(s2).dot(b)\n            v = s2.plus(b.times(t / b.length2))\n            if s1.minus(v).length < e:\n                o = 0 if b2 else _outside(t, b.length2, 1 if x else 2)\n                return (v, o, 0) if x else (v, 0, o)\n        raise IntersectionError(length2=ab2, txt=_no_(_intersection_))\n\n    cb = c.cross(b)\n    t  = cb.dot(ab)\n    o1 = 0 if b1 else _outside(t, ab2, 1)\n    v  = s1.plus(a.times(t / ab2))\n    t  = v.minus(s2).dot(b)\n    o2 = 0 if b2 else _outside(t, b.length2, 2)\n    return v, o1, o2\n\n\ndef intersection3d3(start1, end1, start2, end2, eps=EPS, useZ=True,\n                                              **Vector_and_kwds):\n    '''Compute the intersection point of two (2- or 3-D) lines, each defined\n       by two points or by a point and a bearing.\n\n       @arg start1: Start point of the first line (C{Cartesian}, L{Vector3d},\n                    C{Vector3Tuple} or C{Vector4Tuple}).\n       @arg end1: End point of the first line (C{Cartesian}, L{Vector3d},\n                  C{Vector3Tuple} or C{Vector4Tuple}) or the bearing at\n                  B{C{start1}} (compass C{degrees}).\n       @arg start2: Start point of the second line (C{Cartesian}, L{Vector3d},\n                    C{Vector3Tuple} or C{Vector4Tuple}).\n       @arg end2: End point of the second line (C{Cartesian}, L{Vector3d},\n                  C{Vector3Tuple} or C{Vector4Tuple}) or the bearing at\n                  B{C{start2}} (Ccompass C{degrees}).\n       @kwarg eps: Tolerance for skew line distance and length (C{EPS}).\n       @kwarg useZ: If C{True}, use the Z components, otherwise force C{z=INT0} (C{bool}).\n       @kwarg Vector_and_kwds: Optional class C{B{Vector}=None} to return the intersection\n                     points and optional, additional B{C{Vector}} keyword arguments,\n                     otherwise B{C{start1}}'s (sub-)class.\n\n       @return: An L{Intersection3Tuple}C{(point, outside1, outside2)} with C{point}\n                an instance of B{C{Vector}} or B{C{start1}}'s (sub-)class.\n\n       @note: The C{outside} values is C{0} for lines specified by point and bearing.\n\n       @raise IntersectionError: Invalid, skew, non-co-planar or otherwise non-intersecting lines.\n\n       @see: U{Line-line intersection<https://MathWorld.Wolfram.com/Line-LineIntersection.html>}\n             and U{line-line distance<https://MathWorld.Wolfram.com/Line-LineDistance.html>},\n             U{skew lines<https://MathWorld.Wolfram.com/SkewLines.html>} and U{point-line\n             distance<https://MathWorld.Wolfram.com/Point-LineDistance3-Dimensional.html>}.\n    '''\n    try:\n        v, o1, o2 = _intersect3d3(start1, end1, start2, end2, eps=eps, useZ=useZ)\n    except (TypeError, ValueError) as x:\n        raise _xError(x, start1=start1, end1=end1, start2=start2, end2=end2)\n    v = _nVc(v, **_xkwds(Vector_and_kwds, clas=start1.classof,\n                                          name=typename(intersection3d3)))\n    return Intersection3Tuple(v, o1, o2)\n\n\ndef intersections2(center1, radius1, center2, radius2, sphere=True, **Vector_and_kwds):\n    '''Compute the intersection of two spheres or circles, each defined by a (3-D)\n       center point and a radius.\n\n       @arg center1: Center of the first sphere or circle (C{Cartesian}, L{Vector3d},\n                     C{Vector3Tuple} or C{Vector4Tuple}).\n       @arg radius1: Radius of the first sphere or circle (same units as the\n                     B{C{center1}} coordinates).\n       @arg center2: Center of the second sphere or circle (C{Cartesian}, L{Vector3d},\n                     C{Vector3Tuple} or C{Vector4Tuple}).\n       @arg radius2: Radius of the second sphere or circle (same units as the\n                     B{C{center1}} and B{C{center2}} coordinates).\n       @kwarg sphere: If C{True}, compute the center and radius of the intersection of\n                      two spheres.  If C{False}, ignore the C{z}-component and compute\n                      the intersection of two circles (C{bool}).\n       @kwarg Vector_and_kwds: Optional class C{B{Vector}=None} to return the intersection\n                     points and optionally, additional B{C{Vector}} keyword arguments,\n                     otherwise B{C{center1}}'s (sub-)class.\n\n       @return: If C{B{sphere} is True}, a 2-tuple of the C{center} and C{radius} of the\n                intersection of the I{spheres}.  For abutting circles, C{radius} is C{0.0}\n                and C{center} is the I{radical center}.\n\n                If C{B{sphere} is False}, a 2-tuple with the two intersection points of the\n                I{circles}.  For abutting circles, both points are the same instance, aka\n                the I{radical center}.\n\n       @raise IntersectionError: Concentric, invalid or non-intersecting spheres or circles.\n\n       @raise TypeError: Invalid B{C{center1}} or B{C{center2}}.\n\n       @raise UnitError: Invalid B{C{radius1}} or B{C{radius2}}.\n\n       @see: U{Sphere-Sphere<https://MathWorld.Wolfram.com/Sphere-SphereIntersection.html>} and\n             U{Circle-Circle<https://MathWorld.Wolfram.com/Circle-CircleIntersection.html>}\n             Intersection.\n    '''\n    try:\n        return _intersects2(center1, Radius_(radius1=radius1),\n                            center2, Radius_(radius2=radius2), sphere=sphere,\n                            clas=center1.classof, **Vector_and_kwds)\n    except (TypeError, ValueError) as x:\n        raise _xError(x, center1=center1, radius1=radius1, center2=center2, radius2=radius2)\n\n\ndef _intersects2(center1, r1, center2, r2, sphere=True, too_d=None,  # in CartesianEllipsoidalBase.intersections2,\n                                         **clas_Vector_and_kwds):  # .ellipsoidalBaseDI._intersections2, .formy.intersections2\n    # (INTERNAL) Intersect two spheres or circles, see L{intersections2}\n    # above, separated to allow callers to embellish any exceptions\n\n    def _nV3(x, y, z):\n        v = Vector3d(x, y, z)\n        n = typename(intersections2)\n        return _nVc(v, **_xkwds(clas_Vector_and_kwds, name=n))\n\n    def _xV3(c1, u, x, y):\n        xy1 = x, y, _1_0  # transform to original space\n        return _nV3(fdot(xy1, u.x, -u.y, c1.x),\n                    fdot(xy1, u.y,  u.x, c1.y), _0_0)\n\n    c1 = _otherV3d(useZ=sphere, center1=center1)\n    c2 = _otherV3d(useZ=sphere, center2=center2)\n\n    if r1 < r2:  # r1, r2 == R, r\n        c1, c2 = c2, c1\n        r1, r2 = r2, r1\n\n    m = c2.minus(c1)\n    d = m.length\n    if d < max(r2 - r1, EPS):\n        raise IntersectionError(_near_(_concentric_))  # XXX ConcentricError?\n\n    o = _MODS.fsums.fsum1_(-d, r1, r2)  # overlap == -(d - (r1 + r2))\n    # compute intersections with c1 at (0, 0) and c2 at (d, 0), like\n    # <https://MathWorld.Wolfram.com/Circle-CircleIntersection.html>\n    if o > EPS:  # overlapping, r1, r2 == R, r\n        x = _MODS.formy._radical2(d, r1, r2).xline\n        y = _1_0 - (x / r1)**2\n        if y > EPS:\n            y = r1 * sqrt(y)  # y == a / 2\n        elif y < 0:  # PYCHOK no cover\n            raise IntersectionError(_negative_)\n        else:  # abutting\n            y = _0_0\n    elif o < 0:  # PYCHOK no cover\n        if too_d is not None:\n            d = too_d\n        raise IntersectionError(_too_(Fmt.distant(d)))\n    else:  # abutting\n        x, y = r1, _0_0\n\n    u = m.unit()\n    if sphere:  # sphere center and radius\n        c = c1 if x < EPS  else (\n            c2 if x > EPS1 else c1.plus(u.times(x)))\n        t = _nV3(c.x, c.y, c.z), Radius(y)\n\n    elif y > 0:  # intersecting circles\n        t = _xV3(c1, u, x, y), _xV3(c1, u, x, -y)\n    else:  # abutting circles\n        t = _xV3(c1, u, x, 0)\n        t = t, t\n    return t\n\n\ndef iscolinearWith(point, point1, point2, eps=EPS, useZ=True):\n    '''Check whether a point is colinear with two other (2- or 3-D) points.\n\n       @arg point: The point (L{Vector3d}, C{Vector3Tuple} or C{Vector4Tuple}).\n       @arg point1: First point (L{Vector3d}, C{Vector3Tuple} or C{Vector4Tuple}).\n       @arg point2: Second point (L{Vector3d}, C{Vector3Tuple} or C{Vector4Tuple}).\n       @kwarg eps: Tolerance (C{scalar}), same units as C{x}, C{y} and C{z}.\n       @kwarg useZ: If C{True}, use the Z components, otherwise force C{z=INT0} (C{bool}).\n\n       @return: C{True} if B{C{point}} is colinear B{C{point1}} and B{C{point2}}, C{False}\n                otherwise.\n\n       @raise TypeError: Invalid B{C{point}}, B{C{point1}} or B{C{point2}}.\n\n       @see: Function L{nearestOn}.\n    '''\n    p = _otherV3d(useZ=useZ, point=point)\n    return _vector2d._iscolinearWith(p, point1, point2, eps=eps, useZ=useZ)\n\n\ndef nearestOn(point, point1, point2, within=True, useZ=True, Vector=None, **Vector_kwds):\n    '''Locate the point between two points closest to a reference (2- or 3-D).\n\n       @arg point: Reference point (C{Cartesian}, L{Vector3d}, C{Vector3Tuple}\n                                    or C{Vector4Tuple}).\n       @arg point1: Start point (C{Cartesian}, L{Vector3d}, C{Vector3Tuple} or\n                                 C{Vector4Tuple}).\n       @arg point2: End point (C{Cartesian}, L{Vector3d}, C{Vector3Tuple} or\n                               C{Vector4Tuple}).\n       @kwarg within: If C{True}, return the closest point between both given\n                      points, otherwise the closest point on the extended line\n                      through both points (C{bool}).\n       @kwarg useZ: If C{True}, use the Z components, otherwise force C{z=INT0} (C{bool}).\n       @kwarg Vector: Class to return closest point (C{Cartesian}, L{Vector3d} or\n                      C{Vector3Tuple}) or C{None}.\n       @kwarg Vector_kwds: Optional, additional B{C{Vector}} keyword arguments,\n                           ignored if C{B{Vector} is None}.\n\n       @return: Closest point, either B{C{point1}} or B{C{point2}} or an instance\n                of the B{C{point}}'s (sub-)class or B{C{Vector}} if not C{None}.\n\n       @raise TypeError: Invalid B{C{point}}, B{C{point1}} or B{C{point2}}.\n\n       @see: U{3-D Point-Line Distance<https://MathWorld.Wolfram.com/Point-LineDistance3-Dimensional.html>},\n             C{Cartesian} and C{LatLon} methods C{nearestOn}, method L{sphericalTrigonometry.LatLon.nearestOn3}\n             and function L{sphericalTrigonometry.nearestOn3}.\n    '''\n    p0 = _otherV3d(useZ=useZ, point =point)\n    p1 = _otherV3d(useZ=useZ, point1=point1)\n    p2 = _otherV3d(useZ=useZ, point2=point2)\n\n    p, _ = _nearestOn2(p0, p1, p2, within=within)\n    if Vector is not None:\n        p = Vector(p.x, p.y, **_xkwds(Vector_kwds, z=p.z, name__=nearestOn))\n    elif p is p1:\n        p = point1\n    elif p is p2:\n        p = point2\n    else:  # ignore Vector_kwds\n        p = point.classof(p.x, p.y, _xkwds_get(Vector_kwds, z=p.z), name__=nearestOn)\n    return p\n\n\ndef _nearestOn2(p0, p1, p2, within=True, eps=EPS):\n    # (INTERNAL) Closest point and fraction, see L{nearestOn} above,\n    # separated to allow callers to embellish any exceptions\n    p21 = p2.minus(p1)\n    d2 = p21.length2\n    if d2 < eps:  # coincident\n        p = p1  # ~= p2\n        t = 0\n    else:  # see comments in .points.nearestOn5\n        t = p0.minus(p1).dot(p21) / d2\n        if within and t < eps:\n            p = p1\n            t = 0\n        elif within and t > (_1_0 - eps):\n            p = p2\n            t = 1\n        else:\n            p = p1.plus(p21.times(t))\n    return NearestOn2Tuple(p, t)\n\n\ndef nearestOn6(point, points, closed=False, useZ=True, **Vector_and_kwds):  # eps=EPS\n    '''Locate the point on a path or polygon closest to a reference point.\n\n       The closest point on each polygon edge is either the nearest of that\n       edge's end points or a point in between.\n\n       @arg point: Reference point (C{Cartesian}, L{Vector3d}, C{Vector3Tuple} or\n                   C{Vector4Tuple}).\n       @arg points: The path or polygon points (C{Cartesian}, L{Vector3d},\n                    C{Vector3Tuple} or C{Vector4Tuple}[]).\n       @kwarg closed: Optionally, close the path or polygon (C{bool}).\n       @kwarg useZ: If C{True}, use the Z components, otherwise force C{z=INT0} (C{bool}).\n       @kwarg Vector_and_kwds: Optional class C{B{Vector}=None} to return the closest\n                     point and optionally, additional B{C{Vector}} keyword arguments,\n                     otherwise B{C{point}}'s (sub-)class.\n\n       @return: A L{NearestOn6Tuple}C{(closest, distance, fi, j, start, end)} with the\n                C{closest}, the C{start} and the C{end} point each an instance of the\n                B{C{Vector}} keyword argument or if {B{Vector}=None} or not specified,\n                an instance of the reference B{C{point}}'s (sub-)class.\n\n       @raise PointsError: Insufficient number of B{C{points}}\n\n       @raise TypeError: Non-cartesian B{C{point}} and B{C{points}}.\n\n       @note: Distances measured with method L{Vector3d.equirectangular}.  For\n              geodetic distances use function L{nearestOn5} or one of the\n              C{LatLon.nearestOn6} methods.\n    '''\n    r  = _otherV3d(useZ=useZ, point=point)\n    D2 = r.equirectangular  # distance squared\n\n    Ps = PointsIter(points, loop=1, name=typename(nearestOn6))\n    p1 = c = s = e = _otherV3d(useZ=useZ, i=0, points=Ps[0])\n    c2 = D2(c)  # == r.minus(c).length2\n\n    f = i = 0  # p1..p2 == points[i]..[j]\n    for j, p2 in Ps.enumerate(closed=closed):\n        p2 = _otherV3d(useZ=useZ, i=j, points=p2)\n        p, t = _nearestOn2(r, p1, p2)  # within=True, eps=EPS\n        d2 = D2(p)  # == r.minus(p).length2\n        if d2 < c2:\n            c2, c, s, e, f = d2, p, p1, p2, (i + t)\n        p1, i = p2, j\n\n    f, j = _fi_j2(f, len(Ps))  # like .ellipsoidalBaseDI._nearestOn2_\n\n    kwds = _xkwds(Vector_and_kwds, clas=point.classof, name=Ps.name)\n    v = _nVc(c, **kwds)\n    s = _nVc(s, **kwds) if s is not c else v\n    e = _nVc(e, **kwds) if e is not c else v\n    return NearestOn6Tuple(v, sqrt(c2), f, j, s, e)\n\n\ndef _nVc(v, clas=None, Vector=None, **name_Vector_kwds):  # in .vector2d\n    # return a named C{Vector} or C{clas} instance\n    name, kwds = _name2__(**name_Vector_kwds)\n    if Vector is not None:\n        v = Vector(v.x, v.y, v.z, **kwds)\n    elif clas is not None:\n        v = clas(v.x, v.y, v.z)  # ignore Vector_kwds\n    return _xnamed(v, name) if name else v\n\n\ndef _otherV3d(useZ=True, NN_OK=True, i=None, **name_vector):\n    # check named vector instance, return Vector3d\n    n, v = _xkwds_item2(name_vector)\n    n    =  Fmt.INDEX(n, i)\n    if useZ and isinstance(v, Vector3dBase):\n        return v if NN_OK or v.name else v.copy(name=n)\n    try:\n        return Vector3d(v.x, v.y, (v.z if useZ else INT0), name=n)\n    except AttributeError:  # no .x, .y or .z attr\n        pass\n    raise _xotherError(Vector3d(0, 0, 0), v, name=n, up=2)\n\n\ndef parse3d(str3d, sep=_COMMA_, Vector=Vector3d, **Vector_kwds):\n    '''Parse an C{\"x, y, z\"} string.\n\n       @arg str3d: X, y and z values (C{str}).\n       @kwarg sep: Optional separator (C{str}).\n       @kwarg Vector: Optional class (L{Vector3d}).\n       @kwarg Vector_kwds: Optional B{C{Vector}} keyword arguments,\n                           ignored if C{B{Vector} is None}.\n\n       @return: A B{C{Vector}} instance or if C{B{Vector} is None},\n                a named L{Vector3Tuple}C{(x, y, z)}.\n\n       @raise VectorError: Invalid B{C{str3d}}.\n    '''\n    try:\n        v = [float(v.strip()) for v in str3d.split(sep)]\n        n = len(v)\n        if n != 3:\n            raise _ValueError(len=n)\n    except (TypeError, ValueError) as x:\n        raise VectorError(str3d=str3d, cause=x)\n    return _xnamed((Vector3Tuple(v) if Vector is None else  # *v\n                    Vector(*v, **Vector_kwds)), name__=parse3d)  # .__name__\n\n\ndef sumOf(vectors, Vector=Vector3d, **Vector_kwds):\n    '''Compute the I{vectorial} sum of two oe more vectors.\n\n       @arg vectors: Vectors to be added (L{Vector3d}[]).\n       @kwarg Vector: Optional class for the vectorial sum (L{Vector3d}).\n       @kwarg Vector_kwds: Optional B{C{Vector}} keyword arguments, ignored\n                           if C{B{Vector} is None}.\n\n       @return: Vectorial sum as B{C{Vector}} or if B{C{Vector} is None},\n                a named L{Vector3Tuple}C{(x, y, z)}.\n\n       @raise VectorError: No B{C{vectors}}.\n    '''\n    try:\n        t = _MODS.nvectorBase._nsumOf(vectors, 0, None, {})  # no H\n    except (TypeError, ValueError) as x:\n        raise VectorError(vectors=vectors, Vector=Vector, cause=x)\n    x, y, z = t[:3]\n    return Vector3Tuple(x, y, z, name__=sumOf) if Vector is None else \\\n           Vector(x, y, z, **_xkwds(Vector_kwds, name__=sumOf))  # .__name__\n\n\ndef trilaterate3d2(center1, radius1, center2, radius2, center3, radius3,\n                                     eps=EPS, **Vector_and_kwds):\n    '''Trilaterate three spheres, each given as a (3-D) center and a radius.\n\n       @arg center1: Center of the 1st sphere (C{Cartesian}, L{Vector3d},\n                     C{Vector3Tuple} or C{Vector4Tuple}).\n       @arg radius1: Radius of the 1st sphere (same C{units} as C{x}, C{y}\n                     and C{z}).\n       @arg center2: Center of the 2nd sphere (C{Cartesian}, L{Vector3d},\n                     C{Vector3Tuple} or C{Vector4Tuple}).\n       @arg radius2: Radius of this sphere (same C{units} as C{x}, C{y}\n                     and C{z}).\n       @arg center3: Center of the 3rd sphere (C{Cartesian}, L{Vector3d},\n                     C{Vector3Tuple} or C{Vector4Tuple}).\n       @arg radius3: Radius of the 3rd sphere (same C{units} as C{x}, C{y}\n                     and C{z}).\n       @kwarg eps: Pertubation tolerance (C{scalar}), same units as C{x},\n                   C{y} and C{z} or C{None} for no pertubations.\n       @kwarg Vector_and_kwds: Optional class C{B{Vector}=None} to return the\n                     trilateration and optionally, additional B{C{Vector}}\n                     keyword arguments, otherwise B{C{center1}}'s (sub-)class.\n\n       @return: 2-Tuple with two trilaterated points, each a B{C{Vector}}\n                instance.  Both points are the same instance if all three\n                spheres abut/intersect in a single point.\n\n       @raise ImportError: Package C{numpy} not found, not installed or older\n                           than version 1.10.\n\n       @raise IntersectionError: Near-concentric, -colinear, too distant or\n                                 non-intersecting spheres.\n\n       @raise NumPyError: Some C{numpy} issue.\n\n       @raise TypeError: Invalid B{C{center1}}, B{C{center2}} or B{C{center3}}.\n\n       @raise UnitError: Invalid B{C{radius1}}, B{C{radius2}} or B{C{radius3}}.\n\n       @see: Norrdine, A. U{I{An Algebraic Solution to the Multilateration\n             Problem}<https://www.ResearchGate.net/publication/275027725>},\n             the U{I{implementation}<https://www.ResearchGate.net/publication/\n             288825016>} and function L{pygeodesy.trilaterate2d2}.\n    '''\n    try:\n        return _vector2d._trilaterate3d2(_otherV3d(center1=center1, NN_OK=False),\n                                           Radius_(radius1=radius1, low=eps),\n                                           center2, radius2, center3, radius3, eps=eps,\n                                           clas=center1.classof, **Vector_and_kwds)\n    except (AssertionError, TypeError, ValueError) as x:\n        raise _xError(x, center1=center1, radius1=radius1,\n                         center2=center2, radius2=radius2,\n                         center3=center3, radius3=radius3)\n\n\ndef _xyzhdlln4(xyz, height, datum, ll=None, **name):  # in .cartesianBase, .nvectorBase\n    '''(INTERNAL) Get a C{(h, d, ll, name)} 4-tuple.\n    '''\n    _x = _xattr\n    h  =  height or _x(xyz, height=None) or _x(xyz, h=None) or _x(ll, height=None)\n    d  =  datum  or _x(xyz, datum=None)  or _x(ll,  datum=None)\n    return h, d, ll, _name__(name, _or_nameof=ll)\n\n\n__all__ += _ALL_DOCS(intersections2, sumOf, Vector3dBase)\n\n# **) MIT License\n#\n# Copyright (C) 2016-2026 -- mrJean1 at Gmail -- All Rights Reserved.\n#\n# Permission is hereby granted, free of charge, to any person obtaining a\n# copy of this software and associated documentation files (the \"Software\"),\n# to deal in the Software without restriction, including without limitation\n# the rights to use, copy, modify, merge, publish, distribute, sublicense,\n# and/or sell copies of the Software, and to permit persons to whom the\n# Software is furnished to do so, subject to the following conditions:\n#\n# The above copyright notice and this permission notice shall be included\n# in all copies or substantial portions of the Software.\n#\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL\n# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR\n# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\n# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n# OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "pygeodesy/vector3dBase.py",
    "content": "\n# -*- coding: utf-8 -*-\n\nu'''(INTERNAL) Private, 3-D vector base class C{Vector3dBase}.\n\nA pure Python implementation of vector-based functions by I{(C) Chris Veness\n2011-2024} published under the same MIT Licence**, see U{Vector-based geodesy\n<https://www.Movable-Type.co.UK/scripts/latlong-vectors.html>}.\n'''\n\nfrom pygeodesy.basics import _copysign, islistuple, isscalar, \\\n                              map1, map2, _signOf, _zip\nfrom pygeodesy.constants import EPS, EPS0, INT0, PI, PI2, _1_0, \\\n                               _copysignINF, isnear0, isnear1, \\\n                               _flipsign, _float0, _pos_self\nfrom pygeodesy.errors import CrossError, VectorError, _xcallable, _xError\nfrom pygeodesy.fmath import euclid_, fdot, fdot_, hypot_, hypot2_  # _MODS.fmath.fma\nfrom pygeodesy.interns import _coincident_, _colinear_, _COMMASPACE_, _xyz_\nfrom pygeodesy.lazily import _ALL_LAZY, _ALL_DOCS, _ALL_MODS as _MODS\nfrom pygeodesy.named import _NamedBase, _NotImplemented, _xother3\n# from pygeodesy.namedTuples import Vector3Tuple  # _MODS\n# from pygeodesy.nvectorBase import _N_Vector  # _MODS\nfrom pygeodesy.props import deprecated_method, Property, Property_RO, \\\n                            property_doc_, property_RO, _update_all\nfrom pygeodesy.streprs import Fmt, strs, unstr\nfrom pygeodesy.units import Float, Scalar\nfrom pygeodesy.utily import atan2, sincos2,  fabs\n\nfrom math import ceil as _ceil, floor as _floor, trunc as _trunc\n\n__all__ = _ALL_LAZY.vector3dBase\n__version__ = '25.10.25'\n\n\nclass Vector3dBase(_NamedBase):  # sync __methods__ with .fsums.Fsum\n    '''(INTERNAL) Generic 3-D vector base class.\n    '''\n    _crosserrors = True  # un/set by .errors.crosserrors\n\n    _ll = None  # original latlon, '_fromll'\n#   _x  = INT0  # X component\n#   _y  = INT0  # Y component\n#   _z  = INT0  # Z component\n\n    def __init__(self, x_xyz, y=INT0, z=INT0, ll=None, **name):\n        '''New L{Vector3d} or C{Vector3dBase} instance.\n\n           The vector may be normalised or use x, y, z for position and\n           distance from earth centre or height relative to the surface\n           of the earth' sphere or ellipsoid.\n\n           @arg x_xyz: X component of vector (C{scalar}) or a (3-D) vector\n                       (C{Cartesian}, L{Ecef9Tuple}, C{Nvector}, L{Vector3d},\n                       L{Vector3Tuple}, L{Vector4Tuple} or a C{tuple} or\n                       C{list} of 3+ C{scalar} items).\n           @kwarg y: Y component of vector (C{scalar}), ignored if B{C{x_xyz}}\n                     is not C{scalar}, otherwise same units as B{C{x_xyz}}.\n           @kwarg z: Z component of vector (C{scalar}), ignored if B{C{x_xyz}}\n                     is not C{scalar}, otherwise same units as B{C{x_xyz}}.\n           @kwarg ll: Optional latlon reference (C{LatLon}).\n           @kwarg name: Optional C{B{name}=NN} (C{str}).\n\n           @raise VectorError: Invalid B{C{x_xyz}}, B{C{y}} or B{C{z}}.\n        '''\n        self._x, \\\n        self._y, \\\n        self._z = _xyz3(type(self), x_xyz, y, z) if isscalar(x_xyz) else \\\n                  _xyz3(type(self), x_xyz)\n        if ll:\n            self._ll = ll\n        if name:\n            self.name = name\n\n    def __abs__(self):\n        '''Return the norm of this vector.\n\n           @return: Norm, unit length (C{float});\n        '''\n        return self.length\n\n    def __add__(self, other):\n        '''Add this to an other vector (L{Vector3d}).\n\n           @return: Vectorial sum (L{Vector3d}).\n\n           @raise TypeError: Incompatible B{C{other}} C{type}.\n        '''\n        return self.plus(other)\n\n    def __bool__(self):  # PYCHOK PyChecker\n        '''Is this vector non-zero?\n\n           @see: Method C{bools}.\n        '''\n        return bool(self.x or self.y or self.z)\n\n    def __ceil__(self):  # PYCHOK no cover\n        '''Return a vector with the C{ceil} of these components.\n\n           @return: Ceil-ed (L{Vector3d}).\n        '''\n        return self._mapped(_ceil)\n\n    def __cmp__(self, other):  # Python 2-\n        '''Compare this and an other vector (L{Vector3d}).\n\n           @return: -1, 0 or +1 (C{int}).\n\n           @raise TypeError: Incompatible B{C{other}} C{type}.\n        '''\n        return _signOf(self.length, self._other_cmp(other))\n\n    cmp = __cmp__\n\n    def __divmod__(self, scalar):  # PYCHOK no cover\n        '''Apply C{scalar} divmod to this vector's components.\n\n           @arg scalar: Divisor (C{scalar}).\n\n           @return: 2-Tuple C{(d, m)} each a L{Vector3d}.\n        '''\n        s = Scalar(divisor=scalar)\n        d, m = [], []\n        for x in self.xyz3:\n            q, r = divmod(x, s)\n            d.append(q)\n            m.append(r)\n        return self.classof(d), self.classof(m)\n\n    def __eq__(self, other):\n        '''Is this vector equal to an other vector?\n\n           @arg other: The other vector (L{Vector3d}).\n\n           @return: C{True} if equal, C{False} otherwise.\n\n           @raise TypeError: Incompatible B{C{other}} C{type}.\n        '''\n        return self.isequalTo(other, eps=EPS0)\n\n    def __float__(self):  # PYCHOK no cover\n        '''Not implemented, see method C{float}.'''\n        return _NotImplemented(self)  # must return C{float}\n\n    def __floor__(self):  # PYCHOK no cover\n        '''Return a vector with the C{floor} of each components.\n\n           @return: Floor-ed (L{Vector3d}).\n        '''\n        return self._mapped(_floor)\n\n    def __floordiv__(self, scalar):  # PYCHOK no cover\n        '''Floor-divide this vector by a scalar, C{this // B{scalar}}.\n\n           @arg scalar: The divisor (C{scalar}).\n\n           @return: Floored quotient (L{Vector3d}).\n\n           @raise TypeError: Non-scalar B{C{scalar}}.\n        '''\n        return self.floorDividedBy(scalar)\n\n    def __ge__(self, other):\n        '''Is this vector longer than or equal to an other vector?\n\n           @arg other: The other vector (L{Vector3d}).\n\n           @return: C{True} if so, C{False} otherwise.\n\n           @raise TypeError: Incompatible B{C{other}} C{type}.\n        '''\n        return self.length >= self._other_cmp(other)\n\n#   def __getitem__(self, key):\n#       '''Return C{item} at index or slice C{[B{key}]}.\n#       '''\n#       return self.xyz[key]\n\n    def __gt__(self, other):\n        '''Is this vector longer than an other vector?\n\n           @arg other: The other vector (L{Vector3d}).\n\n           @return: C{True} if so, C{False} otherwise.\n\n           @raise TypeError: Incompatible B{C{other}} C{type}.\n        '''\n        return self.length > self._other_cmp(other)\n\n    def __hash__(self):  # PYCHOK no cover\n        '''Return this instance' C{hash}.\n        '''\n        return hash(self.xyz)  # XXX id(self)?\n\n    def __iadd__(self, other):\n        '''Add this and an other vector I{in-place}, C{this += B{other}}.\n\n           @arg other: The other vector (L{Vector3d}).\n\n           @raise TypeError: Incompatible B{C{other}} C{type}.\n        '''\n        return self._xyz(self.plus(other))\n\n    def __ifloordiv__(self, scalar):  # PYCHOK no cover\n        '''Floor-divide this vector by a scalar I{in-place}, C{this //= B{scalar}}.\n\n           @arg scalar: The divisor (C{scalar}).\n\n           @raise TypeError: Non-scalar B{C{scalar}}.\n        '''\n        return self._xyz(self.floorDividedBy(scalar))\n\n    def __imatmul__(self, other):  # PYCHOK Python 3.5+\n        '''Cross multiply this and an other vector I{in-place}, C{this @= B{other}}.\n\n           @arg other: The other vector (L{Vector3d}).\n\n           @raise TypeError: Incompatible B{C{other}} C{type}.\n\n           @see: Luciano Ramalho, \"Fluent Python\", O'Reilly, 2016 p. 397+, 2022 p. 578+.\n        '''\n        return self._xyz(self.cross(other))\n\n    def __imod__(self, other):  # PYCHOK no cover\n        '''Not implemented.'''\n        return _NotImplemented(self, other)\n\n    def __imul__(self, scalar):\n        '''Multiply this vector by a scalar I{in-place}, C{this *= B{scalar}}.\n\n           @arg scalar: Factor (C{scalar}).\n\n           @raise TypeError: Non-scalar B{C{scalar}}.\n        '''\n        return self._xyz(self.times(scalar))\n\n    def __int__(self):  # PYCHOK no cover\n        '''Not implemented, see method C{ints}.'''\n        return _NotImplemented(self)  # must return C{int}\n\n    def __ipow__(self, scalar, *mod):  # PYCHOK no cover\n        '''Raise each component I{in-place} as C{pow(C, B{scalar})}.\n\n           @arg scalar: Exponent (C{scalar}).\n\n           @return: Power (L{Vector3d}).\n\n           @raise TypeError: Non-scalar B{C{scalar}}.\n        '''\n        return self._xyz(self.pow(scalar, *mod))\n\n    def __isub__(self, other):\n        '''Subtract an other vector from this one I{in-place}, C{this -= B{other}}.\n\n           @arg other: The other vector (L{Vector3d}).\n\n           @raise TypeError: Incompatible B{C{other}} C{type}.\n        '''\n        return self._xyz(self.minus(other))\n\n#   def __iter__(self):\n#       '''Return an C{iter}ator over this vector's components.\n#       '''\n#       return iter(self.xyz3)\n\n    def __itruediv__(self, scalar):\n        '''Divide this vector by a scalar I{in-place}, C{this /= B{scalar}}.\n\n           @arg scalar: The divisor (C{scalar}).\n\n           @raise TypeError: Non-scalar B{C{scalar}}.\n        '''\n        return self._xyz(self.dividedBy(scalar))\n\n    def __le__(self, other):  # Python 3+\n        '''Is this vector shorter than or equal to an other vector?\n\n           @arg other: The other vector (L{Vector3d}).\n\n           @return: C{True} if so, C{False} otherwise.\n\n           @raise TypeError: Incompatible B{C{other}} C{type}.\n        '''\n        return self.length <= self._other_cmp(other)\n\n#   def __len__(self):\n#       '''Return C{3}, always.\n#       '''\n#       return len(self.xyz)\n\n    def __lt__(self, other):  # Python 3+\n        '''Is this vector shorter than an other vector?\n\n           @arg other: The other vector (L{Vector3d}).\n\n           @return: C{True} if so, C{False} otherwise.\n\n           @raise TypeError: Incompatible B{C{other}} C{type}.\n        '''\n        return self.length < self._other_cmp(other)\n\n    def __matmul__(self, other):  # PYCHOK Python 3.5+\n        '''Compute the cross product of this and an other vector, C{this @ B{other}}.\n\n           @arg other: The other vector (L{Vector3d}).\n\n           @return: Cross product (L{Vector3d}).\n\n           @raise TypeError: Incompatible B{C{other}} C{type}.\n        '''\n        return self.cross(other)\n\n    def __mod__(self, modulus):  # PYCHOK no cover\n        '''Apply C{scalar} modulo to this vector's components.\n\n           @arg modulus: Modulus (C{scalar}).\n\n           @return: Modulo (L{Vector3d}).\n        '''\n        m = Scalar(modulus=modulus)\n\n        def _mod(x):\n            return x % m\n\n        return self._mapped(_mod)\n\n    def __mul__(self, scalar):\n        '''Multiply this vector by a scalar, C{this * B{scalar}}.\n\n           @arg scalar: Factor (C{scalar}).\n\n           @return: Product (L{Vector3d}).\n        '''\n        return self.times(scalar)\n\n    def __ne__(self, other):\n        '''Is this vector not equal to an other vector?\n\n           @arg other: The other vector (L{Vector3d}).\n\n           @return: C{True} if so, C{False} otherwise.\n\n           @raise TypeError: Incompatible B{C{other}} C{type}.\n        '''\n        return not self.isequalTo(other, eps=EPS0)\n\n    def __neg__(self):\n        '''Return the opposite of this vector.\n\n           @return: A negated copy (L{Vector3d})\n        '''\n        return self.negate()\n\n    def __pos__(self):  # PYCHOK no cover\n        '''Return this vector I{as-is} or a copy.\n\n           @return: This instance (L{Vector3d})\n        '''\n        return self if _pos_self else self.copy()\n\n    def __pow__(self, scalar, *mod):  # PYCHOK no cover\n        '''Return a vector with components as C{pow(C, B{scalar})}.\n\n           @arg scalar: Exponent (C{scalar}).\n\n           @return: Power (L{Vector3d}).\n\n           @raise TypeError: Non-scalar B{C{scalar}}.\n        '''\n        return self.pow(scalar, *mod)\n\n    def __radd__(self, other):  # PYCHOK no cover\n        '''Add this vector to an other vector, C{B{other} + this}.\n\n           @arg other: The other vector (L{Vector3d}).\n\n           @return: Sum (L{Vector3d}).\n\n           @raise TypeError: Incompatible B{C{other}} C{type}.\n        '''\n        return self.others(other).plus(self)\n\n    def __rdivmod__(self, other):\n        '''Not implemented.'''\n        return _NotImplemented(self, other)\n\n#   def __repr__(self):\n#       '''Return the default C{repr(this)}.\n#       '''\n#       return self.toRepr()\n\n    def __rfloordiv__(self, other):\n        '''Not implemented.'''\n        return _NotImplemented(self, other)\n\n    def __rmatmul__(self, other):  # PYCHOK Python 3.5+\n        '''Compute the cross product of an other and this vector, C{B{other} @ this}.\n\n           @arg other: The other vector (L{Vector3d}).\n\n           @return: Cross product (L{Vector3d}).\n\n           @raise TypeError: Incompatible B{C{other}} C{type}.\n        '''\n        return self.others(other).cross(self)\n\n    def __rmod__(self, other):\n        '''Not implemented.'''\n        return _NotImplemented(self, other)\n\n    __rmul__ = __mul__  # scalar other\n\n    def __round__(self, *ndigits):  # PYCHOK no cover\n        '''Return a vector with these components C{rounded}.\n\n           @arg ndigits: Optional number of digits (C{int}).\n\n           @return: Rounded (L{Vector3d}).\n        '''\n        def _rnd(x):\n            return round(x, *ndigits)\n\n        # <https://docs.Python.org/3.12/reference/datamodel.html?#object.__round__>\n        return self._mapped(_rnd)\n\n    def __rpow__(self, other, *mod):  # PYCHOK no cover\n        '''Not implemented.'''\n        return _NotImplemented(self, other, *mod)\n\n    def __rsub__(self, other):  # PYCHOK no cover\n        '''Subtract this vector from an other vector, C{B{other} - this}.\n\n           @arg other: The other vector (L{Vector3d}).\n\n           @return: Difference (L{Vector3d}).\n\n           @raise TypeError: Incompatible B{C{other}} C{type}.\n        '''\n        return self.others(other).minus(self)\n\n    def __rtruediv__(self, other):\n        '''Not implemented.'''\n        return _NotImplemented(self, other)\n\n#   def __str__(self):\n#       '''Return the default C{str(self)}.\n#       '''\n#       return self.toStr()\n\n    def __sub__(self, other):\n        '''Subtract an other vector from this vector, C{this - B{other}}.\n\n           @arg other: The other vector (L{Vector3d}).\n\n           @return: Difference (L{Vector3d}).\n\n           @raise TypeError: Incompatible B{C{other}} C{type}.\n        '''\n        return self.minus(other)\n\n    def __truediv__(self, scalar):\n        '''Divide this vector by a scalar, C{this / B{scalar}}.\n\n           @arg scalar: The divisor (C{scalar}).\n\n           @return: Quotient (L{Vector3d}).\n\n           @raise TypeError: Non-scalar B{C{scalar}}.\n        '''\n        return self.dividedBy(scalar)\n\n    def __trunc__(self):  # PYCHOK no cover\n        '''Return a vector with the C{trunc} of these components.\n\n           @return: Trunc-ed (L{Vector3d}).\n        '''\n        return self._mapped(_trunc)\n\n    if _MODS.sys_version_info2 < (3, 0):  # PYCHOK no cover\n        # <https://docs.Python.org/2/library/operator.html#mapping-operators-to-functions>\n        __div__     = __truediv__\n        __idiv__    = __itruediv__\n        __long__    = __int__\n        __nonzero__ = __bool__\n        __rdiv__    = __rtruediv__\n\n    def angleTo(self, other, vSign=None, wrap=False):\n        '''Compute the angle between this and an other vector.\n\n           @arg other: The other vector (L{Vector3d}).\n           @kwarg vSign: Optional vector, if supplied (and out of the\n                         plane of this and the other), angle is signed\n                         positive if this->other is clockwise looking\n                         along vSign or negative in opposite direction,\n                         otherwise angle is unsigned.\n           @kwarg wrap: If C{True}, wrap/unroll the angle to +/-PI (C{bool}).\n\n           @return: Angle (C{radians}).\n\n           @raise TypeError: If B{C{other}} or B{C{vSign}} not a L{Vector3d}.\n        '''\n        x = self.cross(other)\n        s = x.length\n        # use vSign as reference to set sign of s\n        if s and vSign and x.dot(vSign) < 0:\n            s = -s\n\n        a = atan2(s, self.dot(other))\n        if wrap and fabs(a) > PI:\n            a -= _copysign(PI2, a)\n        return a\n\n    def apply(self, fun2, other_x, *y_z, **fun2_kwds):\n        '''Apply a 2-argument function pairwise to the components\n           of this and an other vector.\n\n           @arg fun2: 2-Argument callable (C{any(scalar, scalar}),\n                      return a C{scalar} or L{INT0} result.\n           @arg other_x: Other X component (C{scalar}) or a vector\n                         with X, Y and Z components (C{Cartesian},\n                         L{Ecef9Tuple}, C{Nvector}, L{Vector3d},\n                         L{Vector3Tuple} or L{Vector4Tuple}).\n           @arg y_z: Other Y and Z components, positional (C{scalar}, C{scalar}).\n           @kwarg fun2_kwds: Optional keyword arguments for B{C{fun2}}.\n\n           @return: New, applied vector (L{Vector3d}).\n\n           @raise ValueError: Invalid B{C{other_x}} or B{C{y_z}}.\n        '''\n        _xcallable(fun2=fun2)\n        if fun2_kwds:\n            def _f2(a, b):\n                return fun2(a, b, **fun2_kwds)\n        else:\n            _f2 = fun2\n\n        xyz = _xyz3(self.apply, other_x, *y_z)\n        xyz = (_f2(a, b) for a, b in _zip(self.xyz3, xyz))  # strict=True\n        return self.classof(*xyz)\n\n    def bools(self):\n        '''Return the vector with C{bool} components.\n        '''\n        return self._mapped(bool)\n\n    def cross(self, other, raiser=None, eps0=EPS):  # raiser=NN\n        '''Compute the cross product of this and an other vector.\n\n           @arg other: The other vector (L{Vector3d}).\n           @kwarg raiser: Optional, L{CrossError} label if raised (C{str}, non-L{NN}).\n           @kwarg eps0: Near-zero tolerance (C{scalar}), same units as C{x}, C{y} and\n                        C{z}.\n\n           @return: Cross product (L{Vector3d}).\n\n           @raise CrossError: Zero or near-zero cross product and if B{C{raiser}} and\n                              L{crosserrors<pygeodesy.crosserrors>} are both C{True}.\n\n           @raise TypeError: Incompatible B{C{other}} C{type}.\n        '''\n        X, Y, Z = self.others(other).xyz3\n        x, y, z = self.xyz3\n        xyz = (fdot_(y, Z, -z, Y),\n               fdot_(z, X, -x, Z),\n               fdot_(x, Y, -y, X))\n\n        if raiser and self.crosserrors and eps0 > 0 \\\n                  and max(map(fabs, xyz)) < eps0:\n            r =  other._fromll or other\n            s =   self._fromll or self\n            t =  self.isequalTo(other, eps=eps0)\n            t = _coincident_ if t else _colinear_\n            raise CrossError(raiser, s, other=r, txt=t)\n\n        return self.classof(*xyz)  # name__=self.cross\n\n    @property_doc_('''raise or ignore L{CrossError} exceptions (C{bool}).''')\n    def crosserrors(self):\n        '''Get L{CrossError} exceptions (C{bool}).\n        '''\n        return self._crosserrors\n\n    @crosserrors.setter  # PYCHOK setter!\n    def crosserrors(self, raiser):\n        '''Raise or ignore L{CrossError} exceptions (C{bool}).\n        '''\n        self._crosserrors = bool(raiser)\n\n    def dividedBy(self, scalar):\n        '''Divide this vector by a scalar.\n\n           @arg scalar: The divisor (C{scalar}).\n\n           @return: New, scaled vector (L{Vector3d}).\n\n           @raise TypeError: Non-scalar B{C{scalar}}.\n\n           @raise VectorError: Invalid or zero B{C{scalar}}.\n        '''\n        d = Scalar(divisor=scalar)\n        try:\n            return self._times(_1_0 / d)\n        except (ValueError, ZeroDivisionError) as x:\n            raise VectorError(divisor=scalar, cause=x)\n\n    def dividedBy_(self, scalar_x, *y_z):\n        '''Divide this vector by separate X, Y and Z divisors.\n\n           @arg scalar_x: X divisor (C{scalar}) or a vector's\n                          X, Y, and Z components as divisors\n                          (C{Cartesian}, L{Ecef9Tuple}, C{Nvector},\n                          L{Vector3d}, L{Vector3Tuple}, L{Vector4Tuple}).\n           @arg y_z: Y and Z divisors (C{scalar}, C{scalar}), ignored\n                     if B{C{scalar_x}} is not C{scalar}.\n\n           @return: New, scaled vector (L{Vector3d}).\n\n           @raise VectorError: Invalid B{C{scalar_x}} or B{C{y_z}}.\n        '''\n        x, y, z = _xyz3(self.dividedBy_, scalar_x, *y_z)\n        return self.classof(self.x / x, self.y / y, self.z / z)\n\n    def dot(self, other):\n        '''Compute the dot (scalar) product of this and an other vector.\n\n           @arg other: The other vector (L{Vector3d}).\n\n           @return: Dot product (C{float}).\n\n           @raise TypeError: Incompatible B{C{other}} C{type}.\n        '''\n        return self.length2 if other is self else fdot(\n               self.xyz3, *self.others(other).xyz3)\n\n    @deprecated_method\n    def equals(self, other, units=False):  # PYCHOK no cover\n        '''DEPRECATED, use method C{isequalTo}.\n        '''\n        return self.isequalTo(other, units=units)\n\n    @Property_RO\n    def euclid(self):\n        '''I{Approximate} the length (norm, magnitude) of this vector (C{Float}).\n\n           @see: Properties C{length} and C{length2} and function\n                 L{pygeodesy.euclid_}.\n        '''\n        return Float(euclid=euclid_(*self.xyz3))\n\n    def equirectangular(self, other):\n        '''I{Approximate} the difference between this and an other vector.\n\n           @arg other: Vector to subtract (C{Vector3dBase}).\n\n           @return: The length I{squared} of the difference (C{Float}).\n\n           @raise TypeError: Incompatible B{C{other}} C{type}.\n\n           @see: Property C{length2}.\n        '''\n        d = self.minus(other)\n        return Float(equirectangular=hypot2_(*d.xyz3))\n\n    def fabs(self):\n        '''Return the vector with C{fabs} components.\n        '''\n        return self._mapped(fabs)\n\n    def floats(self):\n        '''Return the vector with C{float} components.\n        '''\n        return self._mapped(_float0)\n\n    def floorDividedBy(self, scalar):\n        '''Floor-divide this vector by a scalar.\n\n           @arg scalar: The divisor (C{scalar}).\n\n           @return: New, scaled vector (L{Vector3d}).\n\n           @raise TypeError: Non-scalar B{C{scalar}}.\n\n           @raise VectorError: Invalid or zero B{C{scalar}}.\n        '''\n        d = Scalar(divisor=scalar)\n        try:\n            def _floor_d(x):\n                return x // d\n\n            return self._mapped(_floor_d)\n        except (ValueError, ZeroDivisionError) as x:\n            raise VectorError(divisor=scalar, cause=x)\n\n    def floorDividedBy_(self, scalar_x, *y_z):\n        '''Floor-divide this vector by separate X, Y and Z divisors.\n\n           @arg scalar_x: X divisor (C{scalar}) or a vector's\n                          X, Y, and Z components as divisors\n                          (C{Cartesian}, L{Ecef9Tuple}, C{Nvector},\n                          L{Vector3d}, L{Vector3Tuple}, L{Vector4Tuple}).\n           @arg y_z: Y and Z divisors (C{scalar}, C{scalar}), ignored\n                     if B{C{scalar_x}} is not C{scalar}.\n\n           @return: New, scaled vector (L{Vector3d}).\n\n           @raise VectorError: Invalid B{C{scalar_x}} or B{C{y_z}}.\n        '''\n        x, y, z = _xyz3(self.floorDividedBy_, scalar_x, *y_z)\n        return self.classof(self.x // x, self.y // y, self.z // z)\n\n    @Property\n    def _fromll(self):\n        '''(INTERNAL) Get the latlon reference (C{LatLon}) or C{None}.\n        '''\n        return self._ll\n\n    @_fromll.setter  # PYCHOK setter!\n    def _fromll(self, ll):\n        '''(INTERNAL) Set the latlon reference (C{LatLon}) or C{None}.\n        '''\n        self._ll = ll or None\n\n    @property_RO\n    def homogeneous(self):\n        '''Get this vector's homogeneous representation (L{Vector3d}).\n        '''\n        x, y, z = self.xyz3\n        if z:\n            x =  x / z  # /= chokes PyChecker\n            y =  y / z\n#           z = _1_0\n        else:\n            x = _copysignINF(_flipsign(x, z))\n            y = _copysignINF(_flipsign(y, z))\n#           z =  NAN\n        return self.classof(x, y, _1_0)\n\n    def intermediateTo(self, other, fraction, **unused):  # height=None, wrap=False\n        '''Locate the vector at a given fraction between (or along) this\n           and an other vector.\n\n           @arg other: The other vector (L{Vector3d}).\n           @arg fraction: Fraction between both vectors (C{scalar},\n                          0.0 for this and 1.0 for the other vector).\n\n           @return: Intermediate vector (L{Vector3d}).\n\n           @raise TypeError: Incompatible B{C{other}} C{type}.\n        '''\n        f = Scalar(fraction=fraction)\n        if isnear0(f):  # PYCHOK no cover\n            r = self\n        else:\n            r = self.others(other)\n            if not isnear1(f):  # self * (1 - f) + r * f\n                r = self.plus(r.minus(self)._times(f))\n        return r\n\n    def ints(self):\n        '''Return the vector with C{int} components.\n        '''\n        return self._mapped(int)\n\n    def isconjugateTo(self, other, minum=1, eps=EPS):\n        '''Determine whether this and an other vector are conjugates.\n\n           @arg other: The other vector (C{Cartesian}, L{Ecef9Tuple},\n                       L{Vector3d}, C{Vector3Tuple} or C{Vector4Tuple}).\n           @kwarg minum: Minimal number of conjugates required (C{int}, 0..3).\n           @kwarg eps: Tolerance for equality and conjugation (C{scalar}),\n                       same units as C{x}, C{y}, and C{z}.\n\n           @return: C{True} if both vector's components either match\n                    or at least C{B{minum}} have opposite signs.\n\n           @raise TypeError: Incompatible B{C{other}} C{type}.\n\n           @see: Method C{isequalTo}.\n        '''\n        self.others(other)\n        n = 0\n        for a, b in zip(self.xyz3, other.xyz3):\n            if fabs(a + b) < eps and ((a < 0 and b > 0) or\n                                      (a > 0 and b < 0)):\n                n += 1  # conjugate\n            elif fabs(a - b) > eps:\n                return False  # unequal\n        return bool(n >= minum)\n\n    def isequalTo(self, other, units=False, eps=EPS):\n        '''Check if this and an other vector are equal or equivalent.\n\n           @arg other: The other vector (L{Vector3d}).\n           @kwarg units: Optionally, compare the normalized, unit\n                         version of both vectors.\n           @kwarg eps: Tolerance for equality (C{scalar}), same units as\n                       C{x}, C{y}, and C{z}.\n\n           @return: C{True} if vectors are identical, C{False} otherwise.\n\n           @raise TypeError: Incompatible B{C{other}} C{type}.\n\n           @see: Method C{isconjugateTo}.\n        '''\n        if units:\n            self.others(other)\n            d = self.unit().minus(other.unit())\n        else:\n            d = self.minus(other)\n        return max(map(fabs, d.xyz3)) < eps\n\n    @Property_RO\n    def length(self):  # __dict__ value overwritten by Property_RO C{_united}\n        '''Get the length (norm, magnitude) of this vector (C{Float}).\n\n           @see: Properties L{length2} and L{euclid}.\n        '''\n        return Float(length=hypot_(*self.xyz3))\n\n    @Property_RO\n    def length2(self):  # __dict__ value overwritten by Property_RO C{_united}\n        '''Get the length I{squared} of this vector (C{Float}).\n\n           @see: Property L{length} and method C{equirectangular}.\n        '''\n        return Float(length2=hypot2_(*self.xyz3))\n\n    def _mapped(self, func):\n        '''(INTERNAL) Apply C{func} to all components.\n        '''\n        return self.classof(*map2(func, self.xyz3))\n\n    def minus(self, other):\n        '''Subtract an other vector from this vector.\n\n           @arg other: The other vector (L{Vector3d}).\n\n           @return: New vector difference (L{Vector3d}).\n\n           @raise TypeError: Incompatible B{C{other}} C{type}.\n        '''\n        return self._minus(*self.others(other).xyz3)\n\n    def _minus(self, x, y, z):\n        '''(INTERNAL) Helper for methods C{.minus} and C{.minus_}.\n        '''\n        return self.classof(self.x - x, self.y - y, self.z - z)\n\n    def minus_(self, other_x, *y_z):\n        '''Subtract separate X, Y and Z components from this vector.\n\n           @arg other_x: X component (C{scalar}) or a vector's\n                         X, Y, and Z components (C{Cartesian},\n                         L{Ecef9Tuple}, C{Nvector}, L{Vector3d},\n                         L{Vector3Tuple}, L{Vector4Tuple}).\n           @arg y_z: Y and Z components (C{scalar}, C{scalar}),\n                     ignored if B{C{other_x}} is not C{scalar}.\n\n           @return: New, vectiorial vector (L{Vector3d}).\n\n           @raise ValueError: Invalid B{C{other_x}} or B{C{y_z}}.\n        '''\n        return self._minus(*_xyz3(self.minus_, other_x, *y_z))\n\n    def negate(self):\n        '''Return the opposite of this vector.\n\n           @return: A negated copy (L{Vector3d})\n        '''\n        return self.classof(-self.x, -self.y, -self.z)\n\n    @Property_RO\n    def _N_vector(self):\n        '''(INTERNAL) Get the (C{nvectorBase._N_Vector})\n        '''\n        _N = _MODS.nvectorBase._N_Vector\n        return _N(*self.xyz3, name=self.name)\n\n    def _other_cmp(self, other):\n        '''(INTERNAL) Return the value for comparison.\n        '''\n        return other if isscalar(other) else self.others(other).length\n\n    def others(self, *other, **name_other_up):\n        '''Refined class comparison.\n\n           @arg other: The other vector (L{Vector3d}).\n           @kwarg name_other_up: Overriding C{name=other} and C{up=1}\n                                 keyword arguments.\n\n           @return: The B{C{other}} if compatible.\n\n           @raise TypeError: Incompatible B{C{other}} C{type}.\n        '''\n        other, name, up = _xother3(self, other, **name_other_up)\n        if not isinstance(other, Vector3dBase):\n            _NamedBase.others(self, other, name=name, up=up + 1)\n        return other\n\n    def plus(self, other):\n        '''Add this vector and an other vector.\n\n           @arg other: The other vector (L{Vector3d}).\n\n           @return: Vectorial sum (L{Vector3d}).\n\n           @raise TypeError: Incompatible B{C{other}} C{type}.\n        '''\n        return self._plus(*self.others(other).xyz3)\n\n    sum = plus  # alternate name\n\n    def _plus(self, x, y, z):\n        '''(INTERNAL) Helper for methods C{.plus} and C{.plus_}.\n        '''\n        return self.classof(self.x + x, self.y + y, self.z + z)\n\n    def plus_(self, other_x, *y_z):\n        '''Sum of this vector and separate X, Y and Z components.\n\n           @arg other_x: X component (C{scalar}) or a vector's\n                         X, Y, and Z components (C{Cartesian},\n                         L{Ecef9Tuple}, C{Nvector}, L{Vector3d},\n                         L{Vector3Tuple}, L{Vector4Tuple}).\n           @arg y_z: Y and Z components (C{scalar}, C{scalar}),\n                     ignored if B{C{other_x}} is not C{scalar}.\n\n           @return: New, vectorial vector (L{Vector3d}).\n\n           @raise ValueError: Invalid B{C{other_x}} or B{C{y_z}}.\n        '''\n        return self._plus(*_xyz3(self.plus_, other_x, *y_z))\n\n    def pow(self, scalar, *mod):\n        '''Raise each X, Y and Z to C{scalar} power.\n\n           @arg scalar: Exponent (C{scalar}).\n\n           @return: Power (L{Vector3d}).\n\n           @raise TypeError: Non-scalar B{C{scalar}}.\n        '''\n        p = Scalar(power=scalar)\n\n        def _pow(x):\n            return pow(x, p, *mod)\n\n        return self._mapped(_pow)\n\n    def rotate(self, axis, theta, fma=False):\n        '''Rotate this vector around an axis by a specified angle.\n\n           @arg axis: The axis being rotated around (L{Vector3d}).\n           @arg theta: The angle of rotation (C{radians}).\n           @kwarg fma: If C{True}, use fused-multiply-add (C{bool}).\n\n           @return: New, rotated vector (L{Vector3d}).\n\n           @see: U{Rotation matrix from axis and angle<https://WikiPedia.org/wiki/\n                 Rotation_matrix#Rotation_matrix_from_axis_and_angle>} and\n                 U{Quaternion-derived rotation matrix<https://WikiPedia.org/wiki/\n                 Quaternions_and_spatial_rotation#Quaternion-derived_rotation_matrix>}.\n        '''\n        s, c = sincos2(theta)  # rotation angle\n        d = _1_0 - c\n        if d or s:\n            p = self.unit().xyz  # point being rotated\n            r = self.others(axis=axis).unit()  # axis being rotated around\n\n            ax, ay, az = r.xyz3  # quaternion-derived rotation matrix\n            bx, by, bz = r.times(d).xyz3\n            sx, sy, sz = r.times(s).xyz3\n\n            if fma:\n                _fma = _MODS.fmath.fma\n            else:\n                def _fma(a, b, c):\n                    return a * b + c\n\n            x = fdot(p, _fma(ax, bx,   c), _fma(ax, by, -sz), _fma(ax, bz,  sy))\n            y = fdot(p, _fma(ay, bx,  sz), _fma(ay, by,   c), _fma(ay, bz, -sx))\n            z = fdot(p, _fma(az, bx, -sy), _fma(az, by,  sx), _fma(az, bz,   c))\n        else:  # unrotated\n            x, y, z = self.xyz3\n        return self.classof(x, y, z)\n\n    @deprecated_method\n    def rotateAround(self, axis, theta):\n        '''DEPRECATED, use method C{rotate}.'''\n        return self.rotate(axis, theta)  # PYCHOK no cover\n\n    def _roty(self, *pos, **name):\n        '''(INTERNAL) Prolate rotation, for C{+1 if pos else -1}.\n        '''\n        v = self.copy(**name)\n        if pos:\n            x, _, z = v.xyz3\n            _update_all(v, needed=3)\n            v._x, v._z = (-z, x) if pos[0] else (z, -x)\n        return v\n\n    def times(self, factor):\n        '''Multiply this vector by a scalar.\n\n           @arg factor: Scale factor (C{scalar}).\n\n           @return: New, scaled vector (L{Vector3d}).\n\n           @raise TypeError: Non-scalar B{C{factor}}.\n        '''\n        return self._times(Scalar(factor=factor))\n\n    def _times(self, s):\n        '''(INTERNAL) Helper for C{.dividedBy} and C{.times}.\n        '''\n        return self.classof(self.x * s, self.y * s, self.z * s)\n\n    def times_(self, other_x, *y_z):\n        '''Multiply this vector's components by separate X, Y and Z factors.\n\n           @arg other_x: X scale factor (C{scalar}) or a vector's\n                         X, Y, and Z components as scale factors\n                         (C{Cartesian}, L{Ecef9Tuple}, C{Nvector},\n                         L{Vector3d}, L{Vector3Tuple}, L{Vector4Tuple}).\n           @arg y_z: Y and Z scale factors (C{scalar}, C{scalar}),\n                     ignored if B{C{other_x}} is not C{scalar}.\n\n           @return: New, scaled vector (L{Vector3d}).\n\n           @raise ValueError: Invalid B{C{other_x}} or B{C{y_z}}.\n        '''\n        x, y, z = _xyz3(self.times_, other_x, *y_z)\n        return self.classof(self.x * x, self.y * y, self.z * z)\n\n#   @deprecated_method\n#   def to2ab(self):  # PYCHOK no cover\n#       '''DEPRECATED, use property C{Nvector.philam}.\n#\n#          @return: A L{PhiLam2Tuple}C{(phi, lam)}.\n#       '''\n#       return _MODS.nvectorBase.n_xyz2philam(self.x, self.y, self.z)\n\n#   @deprecated_method\n#   def to2ll(self):  # PYCHOK no cover\n#       '''DEPRECATED, use property C{Nvector.latlon}.\n#\n#          @return: A L{LatLon2Tuple}C{(lat, lon)}.\n#       '''\n#       return _MODS.nvectorBase.n_xyz2latlon(self.x, self.y, self.z)\n\n    @deprecated_method\n    def to3xyz(self):  # PYCHOK no cover\n        '''DEPRECATED, use property L{xyz}.\n        '''\n        return self.xyz\n\n    def toStr(self, prec=5, fmt=Fmt.PAREN, sep=_COMMASPACE_):  # PYCHOK expected\n        '''Return a string representation of this vector.\n\n           @kwarg prec: Number of decimal places (C{int}).\n           @kwarg fmt: Enclosing format to use (C{str}).\n           @kwarg sep: Separator between components (C{str}).\n\n           @return: Vector as \"(x, y, z)\" (C{str}).\n        '''\n        t = sep.join(strs(self.xyz3, prec=prec))\n        return (fmt % (t,)) if fmt else t\n\n    def unit(self, ll=None):\n        '''Normalize this vector to unit length.\n\n           @kwarg ll: Optional, original location (C{LatLon}).\n\n           @return: Normalized vector (L{Vector3d}).\n        '''\n        u = self._united\n        if ll:\n            u._fromll = ll\n        return u\n\n    @Property_RO\n    def _united(self):  # __dict__ value overwritten below\n        '''(INTERNAL) Get normalized vector (L{Vector3d}).\n        '''\n        n = self.length\n        if n > EPS0 and fabs(n - _1_0) > EPS0:\n            u = self._xnamed(self.dividedBy(n))\n            u._update(False, length=_1_0, length2=_1_0, _united=u)\n        else:\n            u = self.copy()\n            u._update(False, _united=u)\n        if self._fromll:\n            u._fromll = self._fromll\n        return u\n\n    @Property\n    def x(self):\n        '''Get the X component (C{float}).\n        '''\n        return self._x\n\n    @x.setter  # PYCHOK setter!\n    def x(self, x):\n        '''Set the X component, if different (C{float}).\n        '''\n        x = Float(x=x)\n        if self._x != x:\n            _update_all(self, needed=3)\n            self._x = x\n\n    @Property\n    def xyz(self):\n        '''Get the X, Y and Z components (L{Vector3Tuple}C{(x, y, z)}).\n        '''\n        return _MODS.namedTuples.Vector3Tuple(*self.xyz3, name=self.name)\n\n    @xyz.setter  # PYCHOK setter!\n    def xyz(self, xyz):\n        '''Set the X, Y and Z components (C{Cartesian}, L{Ecef9Tuple},\n           C{Nvector}, L{Vector3d}, L{Vector3Tuple}, L{Vector4Tuple}\n           or a C{tuple} or C{list} of 3+ C{scalar} items).\n        '''\n        self._xyz(xyz)\n\n    def _xyz(self, x_xyz, *y_z):\n        '''(INTERNAL) Set the C{_x}, C{_y} and C{_z} attributes.\n        '''\n        xyz = _xyz3(_xyz_, x_xyz, *y_z)\n        if self.xyz3 != xyz:\n            _update_all(self, needed=3)\n            self._x, self._y, self._z = xyz\n        return self\n\n    @property_RO\n    def xyz3(self):\n        '''Get the X, Y and Z components as C{3-tuple}.\n        '''\n        return self.x, self.y, self.z\n\n    @Property_RO\n    def x2y2z2(self):\n        '''Get the X, Y and Z components, I{squared} (L{Vector3Tuple}).\n        '''\n        return _MODS.namedTuples.Vector3Tuple(*self.x2y2z23, name=self.name)\n\n    @property_RO\n    def x2y2z23(self):\n        '''Get the X, Y and Z components, I{squared} (3-tuple C{(x**2, y**2, z**2)}).\n        '''\n        return self.x**2, self.y**2, self.z**2\n\n    @Property\n    def y(self):\n        '''Get the Y component (C{float}).\n        '''\n        return self._y\n\n    @y.setter  # PYCHOK setter!\n    def y(self, y):\n        '''Set the Y component, if different (C{float}).\n        '''\n        y = Float(y=y)\n        if self._y != y:\n            _update_all(self, needed=3)\n            self._y = y\n\n    @Property\n    def z(self):\n        '''Get the Z component (C{float}).\n        '''\n        return self._z\n\n    @z.setter  # PYCHOK setter!\n    def z(self, z):\n        '''Set the Z component, if different (C{float}).\n        '''\n        z = Float(z=z)\n        if self._z != z:\n            _update_all(self, needed=3)\n            self._z = z\n\n\ndef _xyz3(where, x_xyz, *y_z):  # in .cartesianBase._rtp3\n    '''(INTERNAL) Get X, Y and Z as 3-tuple C{(x, y, z)}.\n    '''\n    try:\n        xyz3 = map1(_float0, x_xyz, *y_z) if y_z else (  # islistuple for Vector*Tuple\n               map2(_float0, x_xyz[:3]) if islistuple(x_xyz, minum=3) else\n               x_xyz.xyz)  # .xyz3\n    except (AttributeError, TypeError, ValueError) as x:\n        raise _xError(x, unstr(where, x_xyz, *y_z))\n    return xyz3\n\n\n__all__ += _ALL_DOCS(Vector3dBase)\n\n# **) MIT License\n#\n# Copyright (C) 2016-2026 -- mrJean1 at Gmail -- All Rights Reserved.\n#\n# Permission is hereby granted, free of charge, to any person obtaining a\n# copy of this software and associated documentation files (the \"Software\"),\n# to deal in the Software without restriction, including without limitation\n# the rights to use, copy, modify, merge, publish, distribute, sublicense,\n# and/or sell copies of the Software, and to permit persons to whom the\n# Software is furnished to do so, subject to the following conditions:\n#\n# The above copyright notice and this permission notice shall be included\n# in all copies or substantial portions of the Software.\n#\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL\n# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR\n# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\n# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n# OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "pygeodesy/webmercator.py",
    "content": "\n# -*- coding: utf-8 -*-\n\nu'''Web Mercator (WM) projection.\n\nClasses L{Wm} and L{WebMercatorError} and functions L{parseWM} and L{toWm}.\n\nPure Python implementation of a U{Web Mercator<https://WikiPedia.org/wiki/Web_Mercator>}\n(aka I{Pseudo-Mercator}) class and conversion functions for spherical and near-spherical\nearth models.\n\n@see: U{Google Maps / Bing Maps Spherical Mercator Projection\n<https://AlastairA.WordPress.com/2011/01/23/the-google-maps-bing-maps-spherical-mercator-projection>},\nU{Geomatics Guidance Note 7, part 2<https://www.IOGP.org/wp-content/uploads/2019/09/373-07-02.pdf>}\nand U{Implementation Practice Web Mercator Map Projection<https://Web.Archive.org/web/20141009142830/\nhttp://earth-info.nga.mil/GandG/wgs84/web_mercator/(U)%20NGA_SIG_0011_1.0.0_WEBMERC.pdf>}.\n'''\n# make sure int/int division yields float quotient, see .basics\nfrom __future__ import division as _; del _  # noqa: E702 ;\n\nfrom pygeodesy.basics import _isin, _splituple, _xinstanceof,  typename\nfrom pygeodesy.constants import PI_2, R_MA, _2_0\nfrom pygeodesy.datums import Datum, _spherical_datum\nfrom pygeodesy.dms import clipDegrees, parseDMS2\nfrom pygeodesy.errors import _parseX, _ValueError, _xattr, _xkwds, _xkwds_pop2\n# from pygeodesy.internals import typename  # from .basics\nfrom pygeodesy.interns import NN, _COMMASPACE_, _datum_, _earth_, _easting_, \\\n                             _northing_, _radius_, _SPACE_, _x_, _y_\n# from pygeodesy.lazily import _ALL_LAZY  from .named\nfrom pygeodesy.named import _name2__, _NamedBase, _NamedTuple,  _ALL_LAZY\nfrom pygeodesy.namedTuples import LatLon2Tuple, LatLonDatum3Tuple, PhiLam2Tuple\nfrom pygeodesy.props import deprecated_method, Property_RO\nfrom pygeodesy.streprs import Fmt, strs, _xzipairs\nfrom pygeodesy.units import Easting, _isRadius, Lat, Northing, Radius\nfrom pygeodesy.utily import degrees90, degrees180\n\nfrom math import atan, atanh, exp, radians, sin, tanh\n\n__all__ = _ALL_LAZY.webmercator\n__version__ = '25.05.12'\n\n# _FalseEasting  = 0   # false Easting (C{meter})\n# _FalseNorthing = 0   # false Northing (C{meter})\n_LatLimit = Lat(limit=85.051129)  # latitudinal limit (C{degrees})\n# _LonOrigin     = 0   # longitude of natural origin (C{degrees})\n\n\nclass EasNorRadius3Tuple(_NamedTuple):\n    '''3-Tuple C{(easting, northing, radius)}, all in C{meter}.\n    '''\n    _Names_ = (_easting_, _northing_, _radius_)\n    _Units_ = ( Easting,   Northing,   Radius)\n\n\nclass WebMercatorError(_ValueError):\n    '''Web Mercator (WM) parser or L{Wm} issue.\n    '''\n    pass\n\n\nclass Wm(_NamedBase):\n    '''Web Mercator (WM) coordinate.\n    '''\n    _datum  = None  # set further below\n    _earths = ()    # dito\n    _radius = R_MA  # earth radius (C{meter})\n    _x      = 0     # Easting (C{meter})\n    _y      = 0     # Northing (C{meter})\n\n    def __init__(self, x, y, earth=R_MA, **name_radius):\n        '''New L{Wm} Web Mercator (WM) coordinate.\n\n           @arg x: Easting from central meridian (C{meter}).\n           @arg y: Northing from equator (C{meter}).\n           @kwarg earth: Earth radius (C{meter}), datum or ellipsoid (L{Datum},\n                         L{a_f2Tuple}, L{Ellipsoid} or L{Ellipsoid2}).\n           @kwarg name_radius: Optional C{B{name}=NN} (C{str}) and DEPRECATED\n                       keyword argument C{B{radius}=earth}, use B{C{earth}}.\n\n           @note: WM is strictly defined for spherical and WGS84 ellipsoidal\n                  earth models only.\n\n           @raise WebMercatorError: Invalid B{C{x}}, B{C{y}} or B{C{radius}}.\n        '''\n        self._x = Easting( x=x, Error=WebMercatorError)\n        self._y = Northing(y=y, Error=WebMercatorError)\n\n        R, name = _xkwds_pop2(name_radius, radius=earth)\n        if name:\n            self.name = name\n        if R not in Wm._earths:\n            self._datum = _datum(R, _radius_ if _radius_ in name_radius else _earth_)\n            self._radius = self.datum.ellipsoid.a\n\n    @Property_RO\n    def datum(self):\n        '''Get the datum (C{Datum}).\n        '''\n        return self._datum\n\n    @Property_RO\n    def ellipsoid(self):\n        '''Get the ellipsoid (C{Ellipsoid}).\n        '''\n        return self.datum.ellipsoid\n\n    @Property_RO\n    def latlon(self):\n        '''Get the lat- and longitude (L{LatLon2Tuple}).\n        '''\n        return self.latlon2()\n\n    def latlon2(self, datum=None):\n        '''Convert this WM coordinate to a lat- and longitude.\n\n           @kwarg datum: Optional datum (L{Datum}, L{Ellipsoid},\n                         L{Ellipsoid2} or L{a_f2Tuple}) or earth\n                         radius (C{meter}), overriding this WM's\n                         C{radius} and C{datum}.\n\n           @return: A L{LatLon2Tuple}C{(lat, lon)}.\n\n           @note: WM is strictly defined for spherical and WGS84\n                  ellipsoidal earth models only.\n\n           @raise TypeError: Invalid or non-ellipsoidal B{C{datum}}.\n\n           @see: Method C{toLatLon} for other return types.\n        '''\n        d = self.datum if _isin(datum, None, self.datum, self.radius) else _datum(datum)\n        E = d.ellipsoid\n        R = self.radius\n        x = self.x / R\n        y = atan(exp(self.y / R)) * _2_0 - PI_2\n        if E.es or E.a != R:  # strictly, WGS84 only\n            # <https://Web.Archive.org/web/20141009142830/http://earth-info.nga.mil/\n            #        GandG/wgs84/web_mercator/(U)%20NGA_SIG_0011_1.0.0_WEBMERC.pdf>\n            y  = y / R  # /= chokes PyChecker\n            y -= E.es_atanh(tanh(y))\n            y *= E.a\n            x *= E.a / R\n\n        return LatLon2Tuple(degrees90(y), degrees180(x), name=self.name)\n\n    def parse(self, strWM, **name):\n        '''Parse a string to a similar L{Wm} instance.\n\n           @arg strWM: The WM coordinate (C{str}), see function L{parseWM}.\n           @kwarg name: Optional C{B{name}=NN} (C{str}), overriding this name.\n\n           @return: The similar instance (L{Wm}).\n\n           @raise WebMercatorError: Invalid B{C{strWM}}.\n        '''\n        return parseWM(strWM, radius=self.radius, Wm=self.classof,\n                                name=self._name__(name))\n\n    @deprecated_method\n    def parseWM(self, strWM, name=NN):  # PYCHOK no cover\n        '''DEPRECATED, use method L{Wm.parse}.'''\n        return self.parse(strWM, name=name)\n\n    @Property_RO\n    def philam(self):\n        '''Get the lat- and longitude ((L{PhiLam2Tuple}).\n        '''\n        return PhiLam2Tuple(*map(radians, self.latlon), name=self.name)\n\n    @Property_RO\n    def radius(self):\n        '''Get the earth radius (C{meter}).\n        '''\n        return self._radius\n\n    @deprecated_method\n    def to2ll(self, datum=None):  # PYCHOK no cover\n        '''DEPRECATED, use method C{latlon2}.\n\n           @return: A L{LatLon2Tuple}C{(lat, lon)}.\n        '''\n        return self.latlon2(datum=datum)\n\n    def toLatLon(self, LatLon=None, datum=None, **LatLon_kwds):\n        '''Convert this WM coordinate to a geodetic point.\n\n           @kwarg LatLon: Ellipsoidal or sphperical C{LatLon} class to\n                          return the geodetic point (C{LatLon}) or C{None}.\n           @kwarg datum: Optional, datum (C{Datum}) overriding this WM's.\n           @kwarg LatLon_kwds: Optional, additional B{C{LatLon}} keyword\n                               arguments, ignored if C{B{LatLon} is None}.\n\n           @return: This WM coordinate as B{C{LatLon}} or if C{B{LatLon}\n                    is None} a L{LatLonDatum3Tuple}.\n\n           @raise TypeError: If B{C{datum}} is invalid or if B{C{LatLon}}\n                             and B{C{datum}} are incompatible.\n        '''\n        d = datum or self.datum\n        _xinstanceof(Datum, datum=d)\n        r = self.latlon2(datum=d)\n        r = LatLonDatum3Tuple(r.lat, r.lon, d, name=r.name) if LatLon is None else \\\n                       LatLon(r.lat, r.lon, **_xkwds(LatLon_kwds, datum=d, name=r.name))\n        return r\n\n    def toRepr(self, prec=3, fmt=Fmt.SQUARE, sep=_COMMASPACE_, radius=False, **unused):  # PYCHOK expected\n        '''Return a string representation of this WM coordinate.\n\n           @kwarg prec: Number of (decimal) digits, unstripped (C{int}).\n           @kwarg fmt: Enclosing backets format (C{str}).\n           @kwarg sep: Optional separator between name:value pairs (C{str}).\n           @kwarg radius: If C{True}, include the radius (C{bool}) or\n                          C{scalar} to override this WM's radius.\n\n           @return: This WM as \"[x:meter, y:meter]\" (C{str}) or as \"[x:meter,\n                    y:meter], radius:meter]\" if B{C{radius}} is C{True} or\n                    C{scalar}.\n\n           @raise WebMercatorError: Invalid B{C{radius}}.\n        '''\n        t = self.toStr(prec=prec, sep=None, radius=radius)\n        n = (_x_, _y_, _radius_)[:len(t)]\n        return _xzipairs(n, t, sep=sep, fmt=fmt)\n\n    def toStr(self, prec=3, fmt=Fmt.F, sep=_SPACE_, radius=False, **unused):  # PYCHOK expected\n        '''Return a string representation of this WM coordinate.\n\n           @kwarg prec: Number of (decimal) digits, unstripped (C{int}).\n           @kwarg fmt: Optional C{float} format (C{letter}).\n           @kwarg sep: Optional separator to join (C{str}) or C{None}\n                       to return an unjoined C{tuple} of C{str}s.\n           @kwarg radius: If C{True}, include the radius (C{bool}) or\n                          C{scalar} to override this WM's radius.\n\n           @return: This WM as \"meter meter\" (C{str}) or as \"meter meter\n                    radius\" if B{C{radius}} is C{True} or C{scalar}.\n\n           @raise WebMercatorError: Invalid B{C{radius}}.\n        '''\n        fs = self.x, self.y\n        if _isRadius(radius):\n            fs += (radius,)\n        elif radius:  # is True:\n            fs += (self.radius,)\n        elif not _isin(radius, None, False):\n            raise WebMercatorError(radius=radius)\n        t = strs(fs, prec=prec)\n        return t if sep is None else sep.join(t)\n\n    @Property_RO\n    def x(self):\n        '''Get the easting (C{meter}).\n        '''\n        return self._x\n\n    @Property_RO\n    def y(self):\n        '''Get the northing (C{meter}).\n        '''\n        return self._y\n\nWm._datum  = _spherical_datum(Wm._radius, name=typename(Wm), raiser=_radius_)  # PYCHOK defaults\nWm._earths = (Wm._radius, Wm._datum, Wm._datum.ellipsoid)\n\n\ndef _datum(earth, name=_datum_):\n    '''(INTERNAL) Make a datum from an C{earth} radius, datum or ellipsoid.\n    '''\n    if earth in Wm._earths:\n        return  Wm._datum\n    try:\n        return _spherical_datum(earth, name=name)\n    except Exception as x:\n        raise WebMercatorError(name, earth, cause=x)\n\n\ndef parseWM(strWM, radius=R_MA, Wm=Wm, **name):\n    '''Parse a string C{\"e n [r]\"} representing a WM coordinate,\n       consisting of easting, northing and an optional radius.\n\n       @arg strWM: A WM coordinate (C{str}).\n       @kwarg radius: Optional earth radius (C{meter}), needed in\n                      case B{C{strWM}} doesn't include C{r}.\n       @kwarg Wm: Optional class to return the WM coordinate (L{Wm})\n                  or C{None}.\n       @kwarg name: Optional C{B{name}=NN} (C{str}).\n\n       @return: The WM coordinate (B{C{Wm}}) or if C{B{Wm} is None}, an\n                L{EasNorRadius3Tuple}C{(easting, northing, radius)}.\n\n       @raise WebMercatorError: Invalid B{C{strWM}}.\n    '''\n    def _WM(strWM, radius, Wm, name):\n        w = _splituple(strWM)\n\n        if len(w) == 2:\n            w += (radius,)\n        elif len(w) != 3:\n            raise ValueError\n        x, y, R = map(float, w)\n\n        return EasNorRadius3Tuple(x, y, R, **name) if Wm is None else \\\n                               Wm(x, y, earth=R, **name)\n\n    return _parseX(_WM, strWM, radius, Wm, name,\n                        strWM=strWM, Error=WebMercatorError)\n\n\ndef toWm(latlon, lon=None, earth=R_MA, Wm=Wm, **name_Wm_kwds_radius):\n    '''Convert a lat-/longitude point to a WM coordinate.\n\n       @arg latlon: Latitude (C{degrees}) or an (ellipsoidal or spherical)\n                    geodetic C{LatLon} point.\n       @kwarg lon: Optional longitude (C{degrees} or C{None}).\n       @kwarg earth: Earth radius (C{meter}), datum or ellipsoid (L{Datum},\n                     L{a_f2Tuple}, L{Ellipsoid} or L{Ellipsoid2}), overridden\n                     by B{C{latlon}}'s datum if present.\n       @kwarg Wm: Optional class to return the WM coordinate (L{Wm}) or C{None}.\n       @kwarg name_Wm_kwds_radius: Optional C{B{name}=NN} (C{str}), optionally,\n                   additional B{C{Wm}} keyword arguments, ignored if C{B{Wm} is\n                   None} and DEPRECATED keyword argument C{B{radius}=earth}, use\n                   B{C{earth}}.\n\n       @return: The WM coordinate (B{C{Wm}}) or if C{B{Wm} is None}, an\n                L{EasNorRadius3Tuple}C{(easting, northing, radius)}.\n\n       @raise ValueError: If B{C{earth}} is invalid, if B{C{lon}} value is missing,\n                          if B{C{latlon}} is not scalar, or if B{C{latlon}} is beyond\n                          the valid WM range and L{rangerrrors<pygeodesy.rangerrors>}\n                          is C{True}.\n    '''\n    name, kwds = _name2__(name_Wm_kwds_radius)\n    R, kwds = _xkwds_pop2(kwds, radius=earth)\n    d = _datum(R, _radius_ if _radius_ in name_Wm_kwds_radius else _earth_)\n    try:\n        y, x = latlon.lat, latlon.lon\n        y =  clipDegrees(y, _LatLimit)\n        d = _xattr(latlon, datum=d)\n        n =  latlon._name__(name)\n    except AttributeError:\n        y, x = parseDMS2(latlon, lon, clipLat=_LatLimit)\n        n =  name\n    E = d.ellipsoid\n    R = E.a\n    s = sin(radians(y))\n    y = atanh(s)  # == log(tand((90 + lat) / 2)) == log(tanPI_2_2(radians(lat)))\n    if E.es:\n        y -= E.es_atanh(s)  # strictly, WGS84 only\n    y *= R\n    x  = R * radians(x)\n    r  = EasNorRadius3Tuple(x, y, R, name=n) if Wm is None else \\\n                         Wm(x, y, **_xkwds(kwds, earth=d, name=n))\n    return r\n\n# **) MIT License\n#\n# Copyright (C) 2016-2026 -- mrJean1 at Gmail -- All Rights Reserved.\n#\n# Permission is hereby granted, free of charge, to any person obtaining a\n# copy of this software and associated documentation files (the \"Software\"),\n# to deal in the Software without restriction, including without limitation\n# the rights to use, copy, modify, merge, publish, distribute, sublicense,\n# and/or sell copies of the Software, and to permit persons to whom the\n# Software is furnished to do so, subject to the following conditions:\n#\n# The above copyright notice and this permission notice shall be included\n# in all copies or substantial portions of the Software.\n#\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL\n# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR\n# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\n# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n# OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "pygeodesy/wgrs.py",
    "content": "\n# -*- coding: utf-8 -*-\n\nu'''World Geographic Reference System (WGRS) en-/decoding, aka GEOREF.\n\nClass L{Georef} and several functions to encode, decode and inspect WGRS\n(or GEOREF) references.\n\nTranscoded from I{Charles Karney}'s C++ class U{Georef\n<https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Georef.html>},\nbut with modified C{precision} and extended with C{height} and C{radius}.\n\n@see: U{World Geographic Reference System\n      <https://WikiPedia.org/wiki/World_Geographic_Reference_System>}.\n'''\nfrom pygeodesy.basics import isstr,  typename\nfrom pygeodesy.constants import INT0, _float, _off90, _0_001, \\\n                               _0_5, _1_0, _2_0, _60_0, _1000_0\nfrom pygeodesy.dms import parse3llh\nfrom pygeodesy.errors import _ValueError, _xattr, _xStrError\n# from pygeodesy.internals import typename  # from .basics\nfrom pygeodesy.interns import NN, _0to9_, _AtoZnoIO_, _COMMA_, \\\n                             _height_, _INV_, _radius_, _SPACE_\nfrom pygeodesy.lazily import _ALL_DOCS, _ALL_LAZY\nfrom pygeodesy.named import _name2__, nameof,  Property_RO\nfrom pygeodesy.namedTuples import LatLon2Tuple, LatLonPrec3Tuple\n# from pygeodesy.props import Property_RO  # from .named\nfrom pygeodesy.streprs import Fmt, _0wd\nfrom pygeodesy.units import Height, Int, Lat, Lon, Precision_, \\\n                            Radius, Scalar_, Str\nfrom pygeodesy.utily import ft2m, m2ft, m2NM\n\nfrom math import floor\n\n__all__ = _ALL_LAZY.wgrs\n__version__ = '25.04.14'\n\n_Base    =  10\n_BaseLen =  4\n_DegChar = _AtoZnoIO_.tillQ\n_Digits  = _0to9_\n_LatOrig = -90\n_LatTile = _AtoZnoIO_.tillM\n_LonOrig = -180\n_LonTile = _AtoZnoIO_\n_60B     =  60000000000  # == 60_000_000_000 == 60e9\n_MaxPrec =  11\n_Tile    =  15  # tile size in degrees\n\n_MaxLen  = _BaseLen + 2 * _MaxPrec\n_MinLen  = _BaseLen - 2\n\n_LatOrig_60B = _LatOrig * _60B\n_LonOrig_60B = _LonOrig * _60B\n\n_float_Tile   = _float(_Tile)\n_LatOrig_Tile = _float(_LatOrig) / _Tile\n_LonOrig_Tile = _float(_LonOrig) / _Tile\n\n\ndef _divmod3(x, _Orig_60B):\n    '''(INTERNAL) Convert B{C{x}} to 3_tuple C{(tile, modulo, fraction)}/\n    '''\n    i = int(floor(x * _60B))\n    i, x = divmod(i - _Orig_60B, _60B)\n    xt, xd = divmod(i, _Tile)\n    return xt, xd, x\n\n\ndef _2fll(lat, lon):\n    '''(INTERNAL) Convert lat, lon.\n    '''\n    # lat, lon = parseDMS2(lat, lon)\n    return (Lat(lat, Error=WGRSError),\n            Lon(lon, Error=WGRSError))\n\n\ndef _2geostr2(georef):\n    '''(INTERNAL) Check a georef string.\n    '''\n    try:\n        n, g = len(georef), georef.upper()\n        p, o = divmod(n, 2)\n        if o or n < _MinLen or n > _MaxLen \\\n             or g.startswith(_INV_) or not g.isalnum():\n            raise ValueError()\n        return g, _2Precision(p - 1)\n\n    except (AttributeError, TypeError, ValueError) as x:\n        raise WGRSError(typename(Georef), georef, cause=x)\n\n\ndef _2Precision(precision):\n    '''(INTERNAL) Return a L{Precision_} instance.\n    '''\n    return Precision_(precision, Error=WGRSError, low=0, high=_MaxPrec)\n\n\nclass WGRSError(_ValueError):\n    '''World Geographic Reference System (WGRS) encode, decode or other L{Georef} issue.\n    '''\n    pass\n\n\nclass Georef(Str):\n    '''Georef class, a named C{str}.\n    '''\n    # no str.__init__ in Python 3\n    def __new__(cls, lat_gll, lon=None, height=None, precision=3, name=NN):\n        '''New L{Georef} from an other L{Georef} instance or georef\n           C{str} or from a C{LatLon} instance or lat-/longitude C{str}.\n\n           @arg lat_gll: Latitude (C{degrees90}), a georef (L{Georef},\n                         C{str}) or a location (C{LatLon}, C{LatLon*Tuple}).\n           @kwarg lon: Logitude (C{degrees180)}, required if B{C{lat_gll}}\n                       is C{degrees90}, ignored otherwise.\n           @kwarg height: Optional height in C{meter}, used if B{C{lat_gll}}\n                          is a location.\n           @kwarg precision: The desired georef resolution and length (C{int}\n                             0..11), see L{encode<pygeodesy.wgrs.encode>}.\n           @kwarg name: Optional name (C{str}).\n\n           @return: New L{Georef}.\n\n           @raise RangeError: Invalid B{C{lat_gll}} or B{C{lon}}.\n\n           @raise TypeError: Invalid B{C{lat_gll}} or B{C{lon}}.\n\n           @raise WGRSError: INValid B{C{lat_gll}}.\n        '''\n        if lon is None:\n            if isinstance(lat_gll, Georef):\n                g, ll, p = str(lat_gll), lat_gll.latlon, lat_gll.precision\n            elif isstr(lat_gll):\n                if _COMMA_ in lat_gll or _SPACE_ in lat_gll:\n                    lat, lon, h = parse3llh(lat_gll, height=height)\n                    g, ll, p = _encode3(lat, lon, precision, h=h)\n                else:\n                    g, ll = lat_gll.upper(), None\n                    try:\n                        _, p = _2geostr2(g)  # validate\n                    except WGRSError:  # R00H00?\n                        p = None  # = decode5(g).precision?\n            else:  # assume LatLon\n                try:\n                    g, ll, p = _encode3(lat_gll.lat, lat_gll.lon, precision,\n                                        h=_xattr(lat_gll, height=height))\n                except AttributeError:\n                    raise _xStrError(Georef, gll=lat_gll)  # Error=WGRSError\n        else:\n            g, ll, p = _encode3(lat_gll, lon, precision, h=height)\n\n        self = Str.__new__(cls, g, name=name or nameof(lat_gll))\n        self._latlon    = ll\n        self._precision = p\n        return self\n\n    @Property_RO\n    def decoded3(self):\n        '''Get this georef's attributes (L{LatLonPrec3Tuple}).\n        '''\n        lat, lon = self.latlon\n        return LatLonPrec3Tuple(lat, lon, self.precision, name=self.name)\n\n    @Property_RO\n    def decoded5(self):\n        '''Get this georef's attributes (L{LatLonPrec5Tuple}) with\n           height and radius set to C{None} if missing.\n        '''\n        return self.decoded3.to5Tuple(self.height, self.radius)\n\n    @Property_RO\n    def _decoded5(self):\n        '''(INTERNAL) Initial L{LatLonPrec5Tuple}.\n        '''\n        return decode5(self)\n\n    @Property_RO\n    def height(self):\n        '''Get this georef's height in C{meter} or C{None} if missing.\n        '''\n        return self._decoded5.height\n\n    @Property_RO\n    def latlon(self):\n        '''Get this georef's (center) lat- and longitude (L{LatLon2Tuple}).\n        '''\n        lat, lon = self._latlon or self._decoded5[:2]\n        return LatLon2Tuple(lat, lon, name=self.name)\n\n    @Property_RO\n    def latlonheight(self):\n        '''Get this georef's (center) lat-, longitude and height (L{LatLon3Tuple}),\n           with height set to C{INT0} if missing.\n        '''\n        return self.latlon.to3Tuple(self.height or INT0)\n\n    @Property_RO\n    def precision(self):\n        '''Get this georef's precision (C{int}).\n        '''\n        p = self._precision\n        return self._decoded5.precision if p is None else p\n\n    @Property_RO\n    def radius(self):\n        '''Get this georef's radius in C{meter} or C{None} if missing.\n        '''\n        return self._decoded5.radius\n\n    def toLatLon(self, LatLon=None, height=None, **name_LatLon_kwds):\n        '''Return (the center of) this georef cell as a C{LatLon}.\n\n           @kwarg LatLon: Class to use (C{LatLon}) or C{None}.\n           @kwarg height: Optional height (C{meter}), overriding this height.\n           @kwarg name_LatLon_kwds: Optional C{B{name}=NN} (C{str}) and optionally,\n                       additional B{C{LatLon}} keyword arguments, ignored if C{B{LatLon}\n                       is None}.\n\n           @return: This georef location (B{C{LatLon}}) or if C{B{LatLon} is None},\n                    a L{LatLon3Tuple}C{(lat, lon, height)}.\n\n           @raise TypeError: Invalid B{C{LatLon}} or B{C{name_LatLon_kwds}}.\n        '''\n        n, kwds = _name2__(name_LatLon_kwds, _or_nameof=self)\n        h = (self.height or INT0) if height is None else height  # _heigHt\n        r =  self.latlon.to3Tuple(h) if LatLon is None else LatLon(\n            *self.latlon, height=h, **kwds)\n        return r.renamed(n) if n else r\n\n\ndef decode3(georef, center=True):\n    '''Decode a C{georef} to lat-, longitude and precision.\n\n       @arg georef: To be decoded (L{Georef} or C{str}).\n       @kwarg center: If C{True}, use the georef's center, otherwise\n                      the south-west, lower-left corner (C{bool}).\n\n       @return: A L{LatLonPrec3Tuple}C{(lat, lon, precision)}.\n\n       @raise WGRSError: Invalid B{C{georef}}, INValid, non-alphanumeric\n                         or odd length B{C{georef}}.\n    '''\n    def _digit(ll, g, i, m):\n        d = _Digits.find(g[i])\n        if d < 0 or d >= m:\n            raise _Error(i)\n        return ll * m + d\n\n    def _Error(i):\n        return WGRSError(Fmt.SQUARE(georef=i), georef)\n\n    def _index(chars, g, i):\n        k = chars.find(g[i])\n        if k < 0:\n            raise _Error(i)\n        return k\n\n    g, precision = _2geostr2(georef)\n    lon = _index(_LonTile, g, 0) + _LonOrig_Tile\n    lat = _index(_LatTile, g, 1) + _LatOrig_Tile\n\n    u = _1_0\n    if precision > 0:\n        lon = lon * _Tile + _index(_DegChar, g, 2)\n        lat = lat * _Tile + _index(_DegChar, g, 3)\n        m, p = 6, precision - 1\n        for i in range(_BaseLen, _BaseLen + p):\n            lon = _digit(lon, g, i,     m)\n            lat = _digit(lat, g, i + p, m)\n            u *= m\n            m  = _Base\n        u *= _Tile\n\n    if center:\n        lon = lon * _2_0 + _1_0\n        lat = lat * _2_0 + _1_0\n        u *= _2_0\n    u = _Tile / u\n    return LatLonPrec3Tuple(Lat(lat * u, Error=WGRSError),\n                            Lon(lon * u, Error=WGRSError),\n                            precision, name=nameof(georef))\n\n\ndef decode5(georef, center=True):\n    '''Decode a C{georef} to lat-, longitude, precision, height and radius.\n\n       @arg georef: To be decoded (L{Georef} or C{str}).\n       @kwarg center: If C{True}, use the georef's center, otherwise the\n                      south-west, lower-left corner (C{bool}).\n\n       @return: A L{LatLonPrec5Tuple}C{(lat, lon, precision, height, radius)}\n                where C{height} and/or C{radius} are C{None} if missing.\n\n       @raise WGRSError: Invalid B{C{georef}}.\n    '''\n    def _h2m(kft, g_n):\n        return Height(ft2m(kft * _1000_0), name=g_n, Error=WGRSError)\n\n    def _r2m(NM, g_n):\n        return Radius(NM / m2NM(1), name=g_n, Error=WGRSError)\n\n    def _split2(g, Unit, _2m):\n        n = typename(Unit)\n        i = max(g.find(n[0]), g.rfind(n[0]))\n        if i > _BaseLen:\n            return g[:i], _2m(int(g[i+1:]), _SPACE_(georef, n))\n        else:\n            return g, None\n\n    g = Str(georef, Error=WGRSError)\n\n    g, h = _split2(g, Height, _h2m)  # H is last\n    g, r = _split2(g, Radius, _r2m)  # R before H\n\n    return decode3(g, center=center).to5Tuple(h, r)\n\n\ndef encode(lat, lon, precision=3, height=None, radius=None):  # MCCABE 14\n    '''Encode a lat-/longitude as a C{georef} of the given precision.\n\n       @arg lat: Latitude (C{degrees}).\n       @arg lon: Longitude (C{degrees}).\n       @kwarg precision: Optional, the desired C{georef} resolution and length\n                         (C{int} 0..11).\n       @kwarg height: Optional, height in C{meter}, see U{Designation of area\n                      <https://WikiPedia.org/wiki/World_Geographic_Reference_System>}.\n       @kwarg radius: Optional, radius in C{meter}, see U{Designation of area\n                      <https://WikiPedia.org/wiki/World_Geographic_Reference_System>}.\n\n       @return: The C{georef} (C{str}).\n\n       @raise RangeError: Invalid B{C{lat}} or B{C{lon}}.\n\n       @raise WGRSError: Invalid B{C{precision}}, B{C{height}} or B{C{radius}}.\n\n       @note: The B{C{precision}} value differs from I{Karney}'s U{Georef<https://\n              GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Georef.html>}.\n              The C{georef} length is M{2 * (precision + 1)} and the C{georef}\n              resolution is I{15°} for B{C{precision}} 0:, I{1°} for 1, I{1′} for 2,\n              I{0.1′} for 3, I{0.01′} for 4, ... up to I{10**(2 - precision)′}.\n    '''\n    def _option(name, m, m2_, K):\n        f = Scalar_(m, name=name, Error=WGRSError)\n        return NN(name[0].upper(), int(m2_(f * K) + _0_5))\n\n    g, _, _ = _encode3(lat, lon, precision)\n    if radius is not None:  # R before H\n        g += _option(_radius_, radius, m2NM, _1_0)\n    if height is not None:  # H is last\n        g += _option(_height_, height, m2ft, _0_001)\n    return g\n\n\ndef _encode3(lat, lon, precision, h=None):\n    '''Return 3-tuple C{(georef, (lat, lon), p)}.\n    '''\n    p = _2Precision(precision)\n\n    lat, lon = _2fll(lat, lon)\n\n    if h is None:\n        xt, xd, x = _divmod3(       lon,  _LonOrig_60B)\n        yt, yd, y = _divmod3(_off90(lat), _LatOrig_60B)\n\n        g = _LonTile[xt], _LatTile[yt]\n        if p > 0:\n            g += _DegChar[xd], _DegChar[yd]\n            p -= 1\n            if p > 0:\n                d =  pow(_Base, _MaxPrec - p)\n                x = _0wd(p, x // d)\n                y = _0wd(p, y // d)\n                g += x, y\n        g = NN.join(g)\n    else:\n        g = encode(lat, lon, precision=p, height=h)\n\n    return g, (lat, lon), p  # XXX Georef(''.join(g))\n\n\ndef precision(res):\n    '''Determine the L{Georef} precision to meet a required (geographic)\n       resolution.\n\n       @arg res: The required resolution (C{degrees}).\n\n       @return: The L{Georef} precision (C{int} 0..11).\n\n       @raise ValueError: Invalid B{C{res}}.\n\n       @see: Function L{wgrs.encode} for more C{precision} details.\n    '''\n    r = Scalar_(res=res)\n    for p in range(_MaxPrec):\n        if resolution(p) <= r:\n            return p\n    return _MaxPrec\n\n\ndef resolution(prec):\n    '''Determine the (geographic) resolution of a given L{Georef} precision.\n\n       @arg prec: The given precision (C{int}).\n\n       @return: The (geographic) resolution (C{degrees}).\n\n       @raise ValueError: Invalid B{C{prec}}.\n\n       @see: Function L{wgrs.encode} for more C{precision} details.\n    '''\n    p = Int(prec=prec, Error=WGRSError)\n    if p > 1:\n        p =  min(p, _MaxPrec) - 1\n        r = _1_0 / (pow(_Base, p) * _60_0)\n    elif p < 1:\n        r = _float_Tile\n    else:\n        r = _1_0\n    return r\n\n\n__all__ += _ALL_DOCS(decode3, decode5,  # functions\n                     encode, precision, resolution)\n\n# **) MIT License\n#\n# Copyright (C) 2016-2026 -- mrJean1 at Gmail -- All Rights Reserved.\n#\n# Permission is hereby granted, free of charge, to any person obtaining a\n# copy of this software and associated documentation files (the \"Software\"),\n# to deal in the Software without restriction, including without limitation\n# the rights to use, copy, modify, merge, publish, distribute, sublicense,\n# and/or sell copies of the Software, and to permit persons to whom the\n# Software is furnished to do so, subject to the following conditions:\n#\n# The above copyright notice and this permission notice shall be included\n# in all copies or substantial portions of the Software.\n#\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL\n# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR\n# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\n# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n# OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "setup.py",
    "content": "\n# -*- coding: utf-8 -*-\n\n# The setuptools script to build, test and install a PyGeodesy distribution.\n\n# Tested with 64-bit Python 3.14.0-2, 3.13.0-6, 3.12.0-4, 3.11.0, 3.10.1-5,\n# 3.9.6, 3.8.10, 3.7.0, 3.6.4-5, 3.5.3, 2.7,13 and 2.6.9 on macOS 26.2-0\n# Tahoe, 10.15 Sequioa, 10.12 Sierra, 10.1 High Sierra, 10.15.5-7 Catalina,\n# 11.0-2 (10.16) Big Sur, 12.0-4 (10.16) Monterey, 13.0.1 Ventura and 14.005\n# Sonoma on Intel (x86_64), Intel emulation (\"arm64_x86_64\") and/or Apple M1,\n# M3 and M4 Silicon native (arm64) and with Pythonista 3.1 and 3.2 on iOS 10.3,\n# 11.0-1 and 11.3-4 and on iPhone 15.5.\n\n# python setup.py sdist --formats=gztar,bztar,zip  # ztar,tar\n# python setup.py bdist_wheel --universal  # XXX\n# python setup.py test\n# python setup.py install\n\n# <https://packaging.Python.org/key_projects/#setuptools>\n# <https://packaging.Python.org/distributing>\n# <https://docs.Python.org/2/distutils/sourcedist.html>\n# <https://docs.Python.org/3.6/distutils/sourcedist.html>\n# <https://setuptools.ReadTheDocs.io/en/latest/setuptools.html#developer-s-guide>\n# <https://setuptools.ReadTheDocs.io/en/latest/setuptools.html#test-build-package-and-run-a-unittest-suite>\n\nfrom os import getenv\nfrom setuptools import setup\n\n__all__ = ()\n__version__ = '26.03.26'\n\n_PACKAGE = 'pygeodesy'  # 'PyGeodesy'\n\n\ndef _c(*names):\n    return ' :: '.join(names)\n\n\ndef _long_description():\n    with open('README.rst', 'rb') as f:\n        t = f.read()\n        if isinstance(t, bytes):\n            t = t.decode('utf-8')\n        return t\n\n\ndef _version():\n    with open('pygeodesy/__init__.py') as f:\n        for t in f.readlines():\n            if t.startswith('__version__'):\n                v = t.split('=')[-1].strip().strip('\\'\"')\n                c = getenv('PYGEODESY_DIST_RC', '')\n                return '.'.join(map(str, map(int, v.split('.')))) + c\n\n\n_KeyWords = ('AER', 'AGM', 'Albers', 'altitude', 'Andoyer', 'annulus', 'antipode', 'apoapsis', 'apses',\n             'area', 'Arithmetic-Geometric-Mean', 'attitude', 'Authalic', 'auxiliary',\n             'azimuth', 'azimuthal', 'azimuth-elevation-range',\n             'bearing', 'bank', 'Barsky', 'Barth', 'beta', 'bi-quadratic', 'boolean',\n             'cached', 'Cagnoli', 'cartesian', 'Cassini', 'Cassini-Soldner', 'chord',\n             'circle-intersections', 'circumcenter', 'circumcircle', 'circumradius',\n             'clip', 'Cohen', 'Cohen-Sutherland', 'Collins', 'composite',\n             'conformal', 'conformal-sphere', 'conic', 'constants', 'contact-triangle',\n             'Cook', 'Correia', 'cosines-law', 'coverage', 'curvature', 'cylindrical',\n             'datum', 'deprecation', 'deficit', 'development', 'discrete', 'distance', 'Douglas',\n             'earth', 'east-north-up', 'eccentricity', 'ECEF', 'elevation', 'ellipse', 'ellipsoid',\n             'ellipsoidal-latitude-beta', 'ellipsoidal-longitude-omega', 'elliptic',\n             'ENU', 'EPSG', 'equal-area', 'equidistant', 'equirectangular', 'ETM', 'ETRF',\n             'Euclidean', 'even-odd-rule', 'ExactTM', 'excess', 'Farrell', 'Farrell-Barth',\n             'Ferrari-solution', 'Field-Of-View', 'flattening', 'fma', 'fmath',\n             'footpoint', 'footprint', 'Forster', 'Forster-Hormann-Popa', 'Forsythe', 'FOV',\n             'fractional', 'Frechet', 'Fréchet', 'frustum', 'Fsum', 'fused-multiply-add',\n             'GARS', 'Gauss-Kummer', 'geocentric', 'GeoConvert', 'GeodesicExact', 'geodesy', 'geodetic',\n             'GeodSolve', 'Geod3Solve', 'GeodTest', 'geographiclib', 'Geohash', 'geoid', 'geoidHeight', 'GeoidHeights',\n             'georef', 'Girard', 'gnomonic', 'gons', 'grades', 'gradians', 'Greiner', 'Greiner-Hormann',\n             'Hartzell', 'Hausdorff', 'Haversine', 'heading', 'hectare', 'height', 'Heikkinen', 'Heron',\n             'Hodgman', 'horizon', 'Hormann', 'Hubeny',\n             'IDW', 'incenter', 'incirle', 'infix_@_operator', 'inradius', 'intermediate', 'interpolate',\n             'intersect', 'intersection', 'intersection3d', 'intersections', 'IntersectTool',\n             'Inverse-Distance-Weighting', 'Isometric', 'ITRF',\n             'Jacobi', 'Jacobi-Conformal', 'Jarque-Bera', 'Jekel',\n             'Karney', 'Krueger', 'Krüger', 'kurtosis',\n             'Lambert', 'latitude', 'law-of-cosines', 'least-squares', 'Lesh',\n             'L_Huilier', 'LHuilier', 'Liang', 'Liang-Barsky', 'Linderholm-Segal', 'linearize', 'Line-Of-Sight',\n             'LocalCartesian', 'local-tangent-plane', 'local-x-y-z', 'longitude', 'LOS', 'loxodrome',\n             'lstsq', 'LTP', 'lune', 'LV03', 'LV95',\n             'mean', 'memoize', 'memoized', 'Mercator', 'Meeus', 'MGRS',\n             'nearest', 'NED', 'Niemeyer', 'non-finite', 'normalize', 'Norrdine', 'north-east-down', 'numpy', 'n-vector', 'Nvector',\n             'oblate', 'omega', 'orthographic', 'orthometric-height', 'OSGB', 'OSGR', 'overlap',\n             'parallel', 'parallel-of-latitude', 'Parametric', 'path-intersection', 'periapsis',\n             'perimeter', 'Peucker', 'Pierlot', 'pitch', 'plumb', 'Point-Of-View', 'polar', 'Popa', 'POV',\n             'precision-cubic-root', 'precision-hypotenuse', 'precision-powers',\n             'precision-running-summation', 'precision-square-root', 'precision-summation',\n             'prolate', 'Pseudo-Mercator', _PACKAGE, 'PyInstaller', 'PyPy', 'quartic',\n             'radical', 'radii', 'radius', 'Ramanujan', 'Ramer', 'Ramer-Douglas-Peucker', 'Rectifying',\n             'Reduced', 'resect', 'resection', 'Rey-Jer', 'Reumann', 'Reumann-Witkam', 'rho-theta-phi', 'rhumb', 'RhumbSolve',\n             'running-linear-regression', 'running-statistics', 'running-stats', 'running-summation',\n             'scipy', 'secant', 'semi-latus-rectum', 'semi-perimeter', 'sexagecimal', 'simplify', 'skewness',\n             'Snellius', 'Snellius-Pothenot', 'Snyder', 'Soddy', 'Soddy-circles', 'Soldner',\n             'sphere', 'sphere-intersections', 'spherical-deficit', 'spherical-excess', 'spherical-polar', 'spherical-triangle',\n             'squared-quartic', 'standard-deviation', 'stereographic', 'Sudano', 'surface-area', 'Sutherland',\n             'Sutherland-Hodgman', 'tangent-circles', 'Terrestrial-Reference-Frame', 'Thomas', 'Tienstra',\n             'tilt', 'TMcoords', 'TMExact', 'toise', 'transverse', 'TransverseMercatorExact', 'TRF',\n             'triangle', 'triangulate', 'triaxial', 'triaxial-ellipsoid',\n             'trigonometry', 'trilaterate', 'trilaterate-2d', 'trilaterate-3d', 'TwoProduct', 'TwoSum',\n             'umbilic-point', 'unit', 'unroll', 'UPS', 'UTM', 'UTM/UPS',\n             'variance', 'velocities', 'Veness', 'Vermeille', 'viewing-frustum', 'Vincenty',\n             'Visvalingam', 'Visvalingam-Whyatt', 'volume', ' volumetric',\n             'Web-Mercator', 'Welford', 'WGRS', 'WGS', 'Whyatt', 'Wildberger', 'Witkam', 'winding-number',\n             'XYZ', 'yaw', 'You', 'zenzi-cubic', 'zenzi-quartic')\n\nsetup(name=_PACKAGE,\n      packages=['pygeodesy', 'pygeodesy.auxilats', 'pygeodesy.deprecated', 'pygeodesy.geodesicx', 'pygeodesy.rhumb', 'pygeodesy.triaxials'],\n      description='Pure Python geodesy tools',\n      version=_version(),\n\n      author='Jean M. Brouwers',\n      author_email='mrJean1@Gmail.com',\n      maintainer='Jean M. Brouwers',\n      maintainer_email='mrJean1@Gmail.com',\n\n      license='MIT',\n      keywords=' '.join(_KeyWords),\n      url='https://GitHub.com/mrJean1/PyGeodesy',\n\n      long_description=_long_description(),\n\n      package_data={_PACKAGE: ['LICENSE']},\n\n      test_suite='test.TestSuite',\n\n      zip_safe=False,\n\n      # <https://PyPI.org/pypi?%3Aaction=list_classifiers>\n      classifiers=[_c('Development Status', '5 - Production/Stable'),\n                   _c('Environment', 'Console'),\n                   _c('Intended Audience', 'Developers'),\n                   _c('License', 'OSI Approved', 'MIT License'),\n                   _c('Operating System', 'OS Independent'),\n                   _c('Programming Language', 'Python'),\n#                  _c('Programming Language', 'Python', '2.6'),\n                   _c('Programming Language', 'Python', '2.7'),\n#                  _c('Programming Language', 'Python', '3.5'),\n#                  _c('Programming Language', 'Python', '3.6'),\n#                  _c('Programming Language', 'Python', '3.7'),\n#                  _c('Programming Language', 'Python', '3.8'),\n#                  _c('Programming Language', 'Python', '3.9'),\n#                  _c('Programming Language', 'Python', '3.10'),\n                   _c('Programming Language', 'Python', '3.11'),\n                   _c('Programming Language', 'Python', '3.12'),\n                   _c('Programming Language', 'Python', '3.13'),\n                   _c('Programming Language', 'Python', '3.14'),\n                   _c('Programming Language', 'Python', '3.15'),\n                   _c('Topic', 'Software Development'),\n                   _c('Topic', 'Scientific/Engineering', 'GIS'),\n      ],  # PYCHOK indent\n\n#     download_url='https://GitHub.com/mrJean1/PyGeodesy',\n#     entry_points={},\n#     include_package_data=False,\n#     install_requires=[],\n#     namespace_packages=[],\n#     py_modules=[],\n)  # PYCHOK indent\n"
  },
  {
    "path": "test/__init__.py",
    "content": "\n# -*- coding: utf-8 -*-\n\n# Module to run all PyGeodesy tests as  python setup.py test\n\nfrom os.path import abspath, dirname\nimport sys\n\n_test_dir = dirname(abspath(__file__))\n# setting __path__ is sufficient for importing\n# modules internal to this test package\n__path__ = [_test_dir, dirname(_test_dir)]\n# extend sys.path to include the .. directory,\n# required for module ..setup.py to work\nif _test_dir not in sys.path:\n    sys.path.insert(0, _test_dir)\n\nfrom unitTestSuite import TestSuite  # PYCHOK for setup.py\n\n__all__ = ('TestSuite',)\n__version__ = '18.09.25'\n\ndel abspath, dirname, sys, _test_dir\n"
  },
  {
    "path": "test/bases.py",
    "content": "\n# -*- coding: utf-8 -*-\n\n# Base classes and functions for PyGeodesy tests.\n\n# After (C) Chris Veness 2011-2024 published under the same MIT Licence,\n# see <https://www.Movable-Type.co.UK/scripts/latlong-vectors.html>\n# and <https://www.Movable-Type.co.UK/scripts/latlong.html>.\n\nfrom glob import glob\nfrom inspect import isclass, isfunction, ismethod, ismodule\nimport os\nfrom os.path import abspath, basename, dirname, join as joined, splitext\nfrom random import random, seed\nimport sys\nfrom time import localtime, time\n\nseed(localtime().tm_yday)\ndel localtime, seed\n\ntest_dir = dirname(abspath(__file__))\nPyGeodesy_dir = dirname(test_dir)\n# extend sys.path to include the ../.. directory,\n# required for module .run.py to work\nif PyGeodesy_dir not in sys.path:  # Python 3+ ModuleNotFoundError\n    sys.path.insert(0, PyGeodesy_dir)\n\nfrom pygeodesy import basics, DeprecationWarnings, internals, interns, isint, \\\n                      isLazy, issubclassof, iterNumpy2over, LazyImportError, \\\n                      karney, NN, normDMS, pairs, printf, property_RO, typename, \\\n                      version as PyGeodesy_version\nfrom pygeodesy import anstr, clips, map2  # noqa: F401 shared\nfrom pygeodesy.internals import _getenv, _name_version, _secs2str as secs2str\n\n_DOT_     = interns._DOT_\n_skipped_ = 'skipped'  # in .run\n_SPACE_   = interns._SPACE_\n_TILDE_   = interns._TILDE_\n_HOME_dir = dirname(PyGeodesy_dir or _TILDE_) or _TILDE_\n_xcopy    = basics._xcopy\n\n__all__ = ('bits_mach2', 'coverage', 'GeodSolve', 'Geod3Solve', 'geographiclib',\n           'isAppleSi', 'isiOS', 'ismacOS', 'isNix', 'isPyPy', 'isPython2',  # 'isIntelPython'\n           'isPython3', 'isPython37', 'isPython39', 'isWindows', 'numpy',\n           'property_RO', 'PyGeodesy_dir', 'PythonX', 'scipy', 'test_dir',\n           'RandomLatLon', 'TestsBase',  # classes\n           'secs2str', 'tilde', 'type2str', 'versions')  # functions\n__version__ = '26.03.20'\n\ntry:\n    _Ints = int, long\n    _Strs = basestring\nexcept NameError:  # Python 3+\n    _Ints = int\n    _Strs = str\n\nendswith   = str.endswith\nstartswith = str.startswith\ntry:\n    if float(_getenv('PYGEODESY_COVERAGE', '0')) > 0:\n        import coverage\n    else:\n        coverage = None  # ignore coverage\nexcept (ImportError, TypeError, ValueError):\n    coverage = None\ntry:\n    geographiclib = basics._xgeographiclib(__name__, 1, 50)  # 1.50+\nexcept ImportError:\n    geographiclib = None\ntry:\n    numpy = basics._xnumpy(__name__, 1, 9)  # 1.9+\nexcept ImportError:\n    numpy = None\ntry:\n    scipy = basics._xscipy(__name__, 1, 0)  # 1.0+\nexcept ImportError:\n    scipy = None\n\n_W_opts = sys.warnoptions or NN\nif _W_opts:\n    _W_opts = _SPACE_(*(_SPACE_('-W', _) for _ in _W_opts))\n\nv2 = sys.version_info[:2]\nbits_mach2 = internals._MODS.bits_machine2\nisAppleSi  = internals._isAppleSi\n# isiOS is used by some tests known to fail on iOS only\nisiOS      = internals._isiOS()  # public\nismacOS    = internals._ismacOS()  # public\nisNix      = internals._isNix()\nisPyPy     = internals._isPyPy()\nisPython2  = v2[0] == 2\nisPython3  = v2[0] == 3\nisPython35 = v2 >= (3, 5)  # in .testCartesian\nisPython37 = v2 >= (3, 7)  # in .run, .testLazy\nisPython39 = v2 >= (3, 9)  # arm64 Apple Si\nisWindows  = internals._isWindows()\nPythonX    = sys.executable  # python or Pythonista path\n# isIntelPython = 'intelpython' in PythonX\ndel v2\n\n\nclass RandomLatLon(object):\n    '''Random LatLon(lat, lon) generator.\n    '''\n    _ndigits = None\n\n    def __init__(self, LatLon, lat_=170, lon_=350, ndigits=None):  # +/- ranges\n        self._LatLon = LatLon\n        self._lat = lat_\n        self._lon = lon_\n        if ndigits and isint(ndigits):\n            self._ndigits = ndigits\n\n    def __call__(self, **LatLon_kwds):\n        lat = self._random_round(self._lat)\n        lon = self._random_round(self._lon)\n        return self._LatLon(lat, lon, **LatLon_kwds)\n\n    def _random_round(self, limit):\n        r = (random() - 0.5) * limit\n        n =  self._ndigits\n        if n is not None:\n            r = round(r, n)  # ndigits=None\n        return r\n\n\nclass TestsBase(object):\n    '''Tests based on @examples from the original JavaScript code\n       and examples in <https://www.EdWilliams.org/avform.htm> or\n       elsewhere as indicated.\n    '''\n    _file     =  NN\n    _name     =  NN\n    _iterisk  =  NN\n    _prefix   = _SPACE_ * 4\n    _raiser   =  False\n    _testX    =  False  # slow Exact test\n    _time     =  None  # -prefix\n    _time0    =  0\n    _verbose  =  True  # print all tests, otherwise failures only\n    _versions =  NN  # cached versions() string, set below\n\n    failed  = 0\n    known   = 0\n    skipped = 0\n    total   = 0\n\n    def __init__(self, testfile, version, module=None, verbose=True,\n                                          raiser=False, testX=False):\n        self._file    = testfile\n        self._name    = basename(testfile)\n        self.title(self._name, version, module=module)\n        self._verbose = verbose\n        self._raiser  = raiser if raiser else '-raiser'.startswith(sys.argv[-1])\n        self._testX   = testX  if testX else ('-testX' in sys.argv[1:] or\n                                              '-Exact' in sys.argv[1:])\n        self._time0   = time()\n        try:\n            sys.argv.remove('-prefix')\n            self._time = self._time0\n        except (IndexError, ValueError):\n            pass\n\n    def errors(self):\n        '''Return the number of tests failures,\n           excluding the KNOWN failures.\n        '''\n        return self.failed - self.known  # new failures\n\n    def exit(self, errors=0):\n        '''Exit with the number of test failures as exit status.\n        '''\n        sys.exit(min(errors + self.errors(), 99))\n\n    def iterNumpy2over(self, n=None):\n        '''Set the I{iterNumpy2} threshold.\n\n           @keyword n: Optional, new threshold value (C{int}).\n\n           @return: Previous threshold (C{int}).\n        '''\n        p = iterNumpy2over(n)\n        self.test('iterNumpy2over', iterNumpy2over(), n)\n        return p\n\n    @property_RO\n    def name(self):\n        return self._name\n\n    def printf(self, fmt, *args, **kwds):  # nl=0, nt=0\n        '''Print a formatted line to sys.stdout.\n        '''\n        printf((fmt % args), prefix=self._prefix, **kwds)\n\n    def pygeodesy_classes(self, Base=None, deprecated=False):\n        '''Yield all PyGeodesy class definitions.\n        '''\n        B = Base if isclass(Base) else None\n        for m in self.pygeodesy_modules(deprecated=deprecated):\n            for n in dir(m):\n                C = getattr(m, n)\n                if isclass(C) and (issubclassof(C, B) if B else True) \\\n                              and C.__module__ == typename(m):  # _DMODULE_\n                    yield C\n\n    def pygeodesy_classes_(self, Base, *Classes):\n        '''Yield all PyGeodesy class definitions, except any in C{Classes}.\n        '''\n        for C in self.pygeodesy_classes(Base):\n            if C not in Classes:\n                yield C\n\n    def pygeodesy_modules(self, deprecated=False):\n        '''Yield all PyGeodesy modules.\n        '''\n        import pygeodesy as _p  # PYCHOK expected\n        for _, n in self.pygeodesy_names2(deprecated=deprecated):\n            try:\n                n = splitext(n)[0]\n                if _DOT_ in n:\n                    p, n = n.split(_DOT_)\n                    m = getattr(_p, p)\n                    if n != '__init__':\n                        m = getattr(m, n)\n                else:\n                    m = getattr(_p, n)\n            except (AttributeError, LazyImportError):\n                continue\n            if ismodule(m):\n                yield m\n\n    def pygeodesy_names2(self, deprecated=False):\n        '''Yield all PyGeodesy module files and basenames.\n        '''\n        def _join(p, j, n):\n            return (p + j + n) if p else n\n\n        for p in (NN,) + interns._SUB_PACKAGES:\n            m = _join(p, os.sep, '[_a-z]*.py')\n            m =  joined(PyGeodesy_dir, interns._pygeodesy_, m)\n            for n in sorted(glob(m)):\n                m = _join(p, _DOT_, basename(n))\n                if deprecated or not m.startswith('deprecated'):\n                    yield n, m\n\n    def results(self, passed='passed', nl=1):\n        '''Summarize the test results.\n        '''\n        n = 'all'\n        r = passed  # or _skipped_\n        s = time() - self._time0\n        t = self.total\n        w = DeprecationWarnings()\n        f = self.failed + (w or 0)\n        if f:\n            a = ', incl. '\n            k = self.known or NN\n            if k:\n                if k == f:\n                    k = ', ALL KNOWN'\n                else:\n                    k = '%s%s KNOWN' % (a, k)\n                    a = ' plus '\n            if w:\n                w = '%s%s %s%s' % (a, w, typename(DeprecationWarning),\n                                         ('s' if w > 1 else ''))\n            p = f * 100.0 / t\n            r = '(%.1f%%) FAILED%s%s' % (p, k, w or '')\n            n = '%s of %d' % (f, t)\n        elif t:\n            n = '%s %d' % (n, t)\n        k = self.skipped or NN\n        if k:\n            k = ', %d %s' % (k, _skipped_)\n        r = '%s%s (%s) %s' % (r, k, self.versions, secs2str(s))\n        self.printf('%s %s tests %s', n, self._name, r, nl=nl)\n\n    def skip(self, text=NN, n=1):\n        '''Skip this test, leave a message.\n        '''\n        self.skipped += n\n        if text and self._verbose:\n            t = 'test' if n < 2 else '%s tests' % (n,)\n            self.printf('%s %s (%d): %s', t, _skipped_, self.skipped, text, nl=1)\n\n    def subtitle(self, module, testing='ing', **kwds):\n        '''Print the subtitle of a test suite.\n        '''\n        t = (basename(module.__name__), module.__version__) + pairs(kwds.items())\n        self.printf('test%s(%s)', testing, ', '.join(t), nl=1)\n\n    def test(self, name, value, expect, error=0, **kwds):\n        '''Compare a test value with the expected result.\n        '''\n        if self._time:\n            self._prefix, self._time = prefix2(self._time)\n\n        if self._iterisk:\n            name += self._iterisk\n\n        fmt, known, kwds = _get_kwds(**kwds)\n\n        if not isinstance(expect, _Strs):\n            expect = fmt % (expect,)  # expect as str\n\n        f, r, v = NN, False, fmt % (value,)  # value as str\n        if v != expect and v != normDMS(expect) and not (\n           callable(known) and known(v, expect)):\n            self.failed += 1  # failures\n            if not known or callable(known):\n                r = True\n            else:  # failed before\n                self.known += 1\n                f = ', KNOWN'\n            if error:\n                f = '%s (%g)' % (f, error)\n            f = '  FAILED%s, expected %s' % (f, expect)\n\n        self.total += 1  # tests, in .testEllipses\n        if f or self._verbose:\n            self.printf('test %d %s: %s%s', self.total, name, v, f, **kwds)\n        if r and self._raiser:\n            raise TestError('test %d %s', self.total, name)\n\n        if self._time:  # undo _prefix change\n            self.__dict__.pop('_prefix')  # _xkwds_pop(self.__dict__, _prefix=None)\n\n        return bool(f)  # True: fail, False: pass in .testKarneySigns\n\n    def test_tol(self, name, value, expect, tol=1e-12, **kwds):\n        e = 0 if value is None or expect is None else abs(value - expect)  # None iteration\n        if e:\n            m = max(abs(value), abs(expect))\n            if m:\n                e = min(e, m, e / m)\n            return self.test(name, value, expect, error=e, known=e < tol, **kwds)\n        else:\n            return self.test(name, value, expect,          known=True, **kwds)\n\n    def test__(self, fmt, *args, **kwds):\n        '''Print subtotal test line.\n        '''\n        t = '-' * len(str(self.total))\n        self.printf('test %s %s', t, (fmt % args), **kwds)\n\n    def testCopy(self, inst, *attrs, **kwds):  # Clas=None\n        C = kwds.get('Clas', type(inst))\n\n        c = _xcopy(inst, **kwds)\n        t =  type(c), id(c) != id(inst)\n        self.test('copy(%s)' % type(C), t, (C, True))\n        for a in attrs:\n            self.test('.' + a, getattr(c, a), getattr(inst, a))\n\n        c = inst.copy(**kwds)\n        t = type(c), id(c) != id(inst)\n        self.test(typename(C) + '.copy()', t, (C, True))\n        for a in attrs:\n            self.test('.' + a, getattr(c, a), getattr(inst, a))\n\n    def testiter(self):\n        '''Test with/-out I{iterNumpy2} threshold.\n        '''\n        yield iterNumpy2over(100000)\n        self._iterisk = '*'\n        yield iterNumpy2over(1)\n        self._iterisk = NN\n\n    def title(self, test, version, module=None):\n        '''Print the title of the test suite.\n        '''\n        z = m = NN\n        if module:\n            m = ' (module %s %s)' % (basename(module.__name__),\n                                     module.__version__)  # _DVERSION_\n        if isLazy:\n            z = ' isLazy=%s' % (isLazy,)\n        self.printf('testing %s %s%s%s', test, version, m, z, nl=1)\n\n    @property\n    def verbose(self):\n        '''Get verbosity (C{bool}).\n        '''\n        return self._verbose\n\n    @verbose.setter  # PYCHOK setter!\n    def verbose(self, v):\n        '''Set verbosity (C{bool}).\n        '''\n        self._verbose = bool(v)\n\n    @property_RO\n    def versions(self):\n        '''Get versions (C{str}).\n        '''\n        return self._versions or versions()\n\n\nclass TestError(RuntimeError):  # ValueError's are often caught\n    '''Error to show the line number of a test failure.\n    '''\n    def __init__(self, fmt, *args):\n        RuntimeError.__init__(self, fmt % args)\n\n\ndef _env_c2(c, dev_null='>/dev/null', NUL_='>NUL:'):  # .testFrozen, .testLazily\n    cmd = _SPACE_(PythonX, c)\n\n    if ismacOS or isNix:\n        env_cmd = _SPACE_('env %s', cmd, dev_null)\n    elif isWindows:\n        env_cmd = _SPACE_('set %s;', cmd, NUL_)\n    else:\n        env_cmd =  NN\n\n    H = _getenv('HOME', NN)\n    if H and cmd.startswith(H):\n        cmd = NN(_TILDE_, cmd[len(H):])\n\n    return env_cmd, cmd\n\n\ndef _fLate(f):\n    t = 'proLate' if f < 0 else \\\n        ('obLate' if f > 0 else 'sphere')\n    return 'f(%.1f)%s' % (f, t)\n\n\ndef _get_kwds(fmt='%s', prec=0, known=False, **kwds):\n    '''(INTERNAL) Get C{fmt}, C{known} and other C{kwds}.\n    '''\n    if prec > 0:\n        fmt = '%%.%df' % (prec,)\n    elif prec < 0:\n        fmt = '%%.%de' % (-prec,)\n    return fmt, known, kwds\n\n\ndef prefix2(prev):  # in .run\n    '''Get time prefix and time stamp.\n    '''\n    t = time()\n    p = '%8.3f ' % ((t - prev),)\n    p = p.replace('  0.', '   .')\n    return p, t\n\n\ndef tilde(path):\n    '''Return a shortened path, especially Pythonista.\n    '''\n    return path.replace(_HOME_dir, _TILDE_)\n\n\ndef type2str(obj, attr, **renamed):\n    '''Return the type name of an object attribute.\n    '''\n    t = getattr(obj, attr, None)\n    if isclass(t):\n        t = '() class'\n    elif isinstance(t, float):\n        t = ' float'\n    elif ismethod(t):\n        t = '() method'\n    elif isfunction(t):\n        if isclass(obj):\n            t = '() method'\n        else:\n            t = '() function'\n    elif isinstance(t, _Ints):\n        t = ' int'\n    elif ismodule(t):\n        t = ' module'\n    elif isinstance(t, property):  # type(t) is property\n        t = typename(type(t))\n        if renamed:\n            t = renamed.get(t, t)\n        t = _SPACE_ + t\n    elif isinstance(t, _Strs):\n        t = ' str'\n    else:\n        t = str(type(t)).replace(\"'\", NN)\n        if t.startswith('<') and t.endswith('>'):\n            t = _SPACE_ + t[1:-1]\n        else:\n            t = ' attribute'\n    return t\n\n\ndef versions():\n    '''Get pygeodesy, Python versions, bits, machine, OS,\n       env variables and packages.\n    '''\n    vs = TestsBase._versions\n    if not vs:\n\n        vs =  internals._Pythonarchine(sep=_SPACE_)\n        vs = 'pygeodesy', PyGeodesy_version, vs\n        for t in (coverage, geographiclib, numpy, scipy):\n            if t:  # .internals._name_version\n                vs += _name_version(t),\n\n        if geographiclib:\n            r = karney._wrapped\n            t = r.Math_K_2\n            if t:\n                vs += typename(r.Math), t\n\n        for t in (GeoConvert, GeodSolve, Geod3Solve, IntersectTool, RhumbSolve):\n            if t:\n                vs += karney._Xables.name_version(t),\n\n        t, r = internals._osversion2()\n        if r:\n            vs += t, r\n\n        if isinstance(isLazy, int):\n            vs += 'isLazy', str(isLazy)\n\n        if _getenv('PYTHONDONTWRITEBYTECODE', None):\n            vs += '-B',\n\n        if _W_opts:\n            vs += _W_opts,\n\n        TestsBase._versions = vs = _SPACE_.join(vs)\n    return vs\n\n# versions()  # get versions once\n\n\ndef _X_OK(_Xables, which):\n    '''(INTERNAL) Get a I{Karney}'s executable path or C{None}.\n    '''\n#   n = typename(which)\n    p = which()  # sets _Xables.ENV\n    if p is _Xables.ENV:  # or n.lower() in basics._XPACKAGES:\n        p = None\n    elif p and not _Xables.X_OK(p):\n        # zap the envar to avoid double messages\n        # when invoked as C{python -m test.bases}\n        # environ[envar] = NN\n        print(_Xables.X_not(p))\n        p = None\n    return p\n\n_Xables       =  karney._Xables  # PYCHOK blank\nGeoConvert    = _X_OK(_Xables, _Xables.GeoConvert)\nGeodSolve     = _X_OK(_Xables, _Xables.GeodSolve)\nGeod3Solve    = _X_OK(_Xables, _Xables.Geod3Solve)\nIntersectTool = _X_OK(_Xables, _Xables.IntersectTool)\nRhumbSolve    = _X_OK(_Xables, _Xables.RhumbSolve)\ndel basics, _Xables, _X_OK\n\nif __name__ == interns._DMAIN_:\n    try:\n        import coverage  # PYCHOK re-imported\n    except ImportError:\n        pass\n    print(versions())\n\n# % python3.14 -m test.bases\n# pygeodesy 25.10.10 Python 3.14.0rc3 64bit arm64 macOS 15.6.1 isLazy 1\n\n# % python3.13 -m test.bases\n# pygeodesy 25.1.5 Python 3.13.1 64bit arm64 coverage 7.6.1 geographiclib 2.0 Math 2 macOS 14.6.1 isLazy 1\n\n# % python3.12 -m test.bases\n# PyGeodesy 24.10.24 Python 3.12.7 64bit arm64 coverage 7.6.1 geographiclib 2.0 numpy 2.1.0 scipy 1.14.1 Math 2 macOS 14.6.1 isLazy 1\n\n# % python3.11 -m test.bases\n# PyGeodesy 24.10.24 Python 3.11.5 64bit arm64 coverage 7.6.1 geographiclib 2.0 numpy 1.24.2 scipy 1.10.1 Math 2 macOS 14.4.1 isLazy 1 -W ignore\n\n# % python3.10 -m test.bases\n# PyGeodesy 24.10.24 Python 3.10.8 64bit arm64 coverage 7.6.1 geographiclib 2.0 numpy 1.23.3 scipy 1.9.1 Math 2 macOS 14.4.1 isLazy 1 -W ignore\n\n# % python2 -m test.bases\n# pygeodesy 25.1.5 Python 2.7.18 64bit arm64_x86_64 coverage 5.5 geographiclib 1.50 numpy 1.16.6 scipy 1.2.2 macOS 10.16\n\n\n# **) MIT License\n#\n# Copyright (C) 2016-2026 -- mrJean1 at Gmail -- All Rights Reserved.\n#\n# Permission is hereby granted, free of charge, to any person obtaining a\n# copy of this software and associated documentation files (the \"Software\"),\n# to deal in the Software without restriction, including without limitation\n# the rights to use, copy, modify, merge, publish, distribute, sublicense,\n# and/or sell copies of the Software, and to permit persons to whom the\n# Software is furnished to do so, subject to the following conditions:\n#\n# The above copyright notice and this permission notice shall be included\n# in all copies or substantial portions of the Software.\n#\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL\n# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR\n# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\n# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n# OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "test/run.py",
    "content": "\n# -*- coding: utf-8 -*-\n# ruff: noqa: E722\n\n# Script to run some or all PyGeodesy tests with Python 2 or 3.\n\nfrom bases import clips, coverage, _DOT_, isiOS, NN, prefix2, printf, \\\n                  PyGeodesy_dir, PythonX, secs2str, _skipped_, test_dir, \\\n                  tilde, _TILDE_, versions, _W_opts  # PYCHOK expected\nfrom pygeodesy.basics import str2ub, ub2str\n\nfrom os import access, environ, F_OK, linesep as LS, pathsep as PS\nimport sys\nfrom traceback import format_exception\n\n__all__ = ('run2',)\n__version__ = '25.10.06'\n\nNL = '\\n'  # pygeodesy.interns._NL_\nP  = None  # process\n\nif isiOS:  # MCCABE 14\n\n    try:  # prefer StringIO over io\n        from StringIO import StringIO\n    except ImportError:  # Python 3+\n        from io import StringIO\n    from os.path import basename\n    from runpy import run_path\n\n    def run2(test, *unused):\n        '''Invoke one test module and return\n           the exit status and console output.\n        '''\n        # Mimick partial behavior of function run2\n        # further below because subprocess.Popen is\n        # not available on iOS/Pythonista/Python.\n        # One issue however, test scripts are all\n        # imported and run in this same process.\n\n        x = None  # no exit, no exception\n\n        sys3 = sys.argv, sys.stdout, sys.stderr\n        sys.stdout = sys.stderr = std = StringIO()\n        try:\n            sys.argv = [test]\n            run_path(test, run_name='__main__')\n        except:  # PYCHOK have to on Pythonista\n            x = sys.exc_info()\n            if x[0] is SystemExit:\n                x = x[1].code  # exit status\n            else:  # append traceback\n                x = [t for t in format_exception(*x)\n                             if 'runpy.py\", line' not in t]\n                printf(NN.join(map(tilde, x)).rstrip())\n                x = 1  # count as a failure\n        finally:\n            sys.argv, sys.stdout, sys.stderr = sys3\n\n        r = ub2str(std.getvalue())\n\n        std.close()\n        std = None  # del std\n\n        if x is None:  # no exit status or exception:\n            # count failed tests excluding KNOWN ones\n            x = r.count('FAILED, expected')\n        return x, r\n\n    PythonX_ = basename(PythonX)\n    _threads = False\n\nelse:  # non-iOS\n    from bases import isAppleSi, isPython37\n    from subprocess import PIPE, Popen, STDOUT\n\n    Popen_kwds = dict(creationflags=0, executable=sys.executable,\n                    # shell=True,\n                      stdin=None, stdout=PIPE, stderr=STDOUT)\n    if isPython37:  # Python 3.7+\n        Popen_kwds.update(text=True)\n\n    pythonC_ = (PythonX,)  # python cmd tuple\n    if not __debug__:\n        pythonC_ += ('-O',)\n    if _W_opts:  # include -W options\n        pythonC_ += (_W_opts,)\n\n    # replace home dir with _TILDE_\n    PythonX_ = ' '.join(pythonC_).replace(environ.get('HOME', _TILDE_), _TILDE_)\n\n    if coverage:\n        pythonC_ += tuple('-m coverage run -a'.split())\n\n    def run2(test, *opts):  # PYCHOK expected\n        '''Invoke one test module and return the\n           exit status and stdout/-err output.\n        '''\n        global P\n        c = pythonC_ + (test,) + opts\n        P = Popen(c, **Popen_kwds)\n        r = ub2str(P.communicate()[0])  # no .strip()\n        # the exit status reflects the number of\n        # test failures in the tested module\n        return P.returncode, r\n\n    _threads = isAppleSi and sys.stdout.isatty()\n\nif _threads:\n    from threading import Lock, Thread\nelse:  # non-threaded version\n    class Lock(object):\n        def __enter__(self):\n            pass\n\n        def __exit__(self, *unused):  # PYCHOK 4 args\n            pass\n\n\nclass ThreadPool(object):\n    '''Partially mimick standard U{ThreadPoolExecutor\n       <https://docs.Python.org/3/library/concurrent.futures.html>}.\n    '''\n    def __init__(self, size=9):\n        self.lock = Lock()\n        self.size = min(size, 9) if _threads and size > 1 else 0\n        self.work = 0\n\n    def onedown(self):\n        if self.work > 0:  # with self.lock\n            self.work -= 1\n\n    def shutdown(self, prefix=NN):\n        w = self.work\n        if w > 0:\n            t = '%srunning %s' % (prefix, w)\n            while w > 0:\n                sleep(2)\n                printf(t, end=NN, flush=True)\n                v, w, t = w, self.work, _DOT_\n                if w != v:\n                    t += str(w)\n            printf(NN)\n\n    def submit(self, call, *args):\n        z = self.size\n        if z > 0:\n            while self.work >= z:\n                sleep(1)\n            with self.lock:\n                self.work += 1\n            t = Thread(target=call, args=args)\n            t.start()\n        else:\n            global P\n            t = call(*args)\n            P = None\n        return t\n\n\np = environ.get('PYTHONPATH', '')\nif p:  # prepend\n    p = PS + p\nenviron['PYTHONPATH'] = PyGeodesy_dir + PS + test_dir + p\ndel p\n\n# shorten Python path [-O]\nPythonX_ = clips(PythonX_, 32)\n\n# command line options\n_failedonly = False\n_prefix     = False\n_raiser     = False\n_results    = False  # or file\n_verbose    = False\n\n_Tpool = ThreadPool(0)\n_Total = 0  # total tests\n_FailX = 0  # failed tests\n\n\ndef _exit(last, text, exit):\n    '''(INTERNAL) Close and exit.\n    '''\n    printf(last)\n    if _results:\n        _write(NL + text + NL)\n        _results.close()\n    if P:\n        P.kill()\n    sys.exit(exit)\n\n\ndef _prefix2(prev):\n    '''(INTERNAL) get the prefix and current time.\n    '''\n    return prefix2(prev) if _prefix else (NN, time())\n\n\ndef _run(prefix, test, *opts):  # MCCABE 13\n    '''(INTERNAL) Run a test script and parse the result.\n    '''\n    global _FailX, _Total  # _Tpool\n\n    t = PythonX_\n    if _Tpool.size > 0:\n        t = '%s %s' % (_Tpool.work, t)\n    t = '%srunning %s %s' % (prefix, t, tilde(test))\n    if access(test, F_OK):\n        printf(t)\n        x,  r = run2(test, *opts)\n        p = r = r.replace(PyGeodesy_dir, '.')\n        if 'Traceback' in r:\n            p += NL\n            if not x:  # count as failure\n                with _Tpool.lock:\n                    _FailX += 1\n            if _raiser:\n                raise SystemExit\n        elif _failedonly:\n            p = NL.join(_ for _ in _testlines(r, False)\n                                if ', KNOWN' not in _)\n        elif _verbose:\n            p += NL\n        elif x:\n            p = NL.join(_ for _ in _testlines(r, True))\n        else:\n            p = NN\n    else:\n        t += ' FAILED:  no such file'\n        p = t + NL\n        r = NN\n        x = 1\n\n    with _Tpool.lock:\n        if p:\n            printf(p)\n        if _results:\n            _write(t + NL + r)\n\n        _Total += r.count(NL + '    test ')  # number of tests\n        _FailX += x or 0  # failures, excluding KNOWN ones\n\n        _Tpool.onedown()\n\n\ndef _testlines(r, skipped):\n    '''(INTERNAL) Yield test lines.\n    '''\n\n    for t in r.split(LS if LS in r else NL):  # use NL on Windows, not LS\n        if 'FAILED,' in t or 'passed' in t \\\n                          or (skipped and _skipped_ in t):\n            yield t.rstrip()\n    yield NN\n\n\ndef _write(text):\n    '''(INTERNAL) Write text to results.\n    '''\n    _results.write(str2ub(text))\n\n\nif __name__ == '__main__':  # MCCABE 19\n\n    from glob import glob\n    from os.path import join\n    from time import sleep, time\n\n    argv0, args = tilde(sys.argv[0]), sys.argv[1:]\n\n    while args and args[0].startswith('-'):\n        arg = args.pop(0)\n        if '-help'.startswith(arg):\n            printf('usage: %s [-B] [-failedonly] [-raiser] [-results]%s [-verbose] [-Z[0-9]] [test/test...py ...]',\n                    argv0, (' [-threads <int>]' if _threads else NN))\n            sys.exit(0)\n        elif arg.startswith('-B'):\n            environ['PYTHONDONTWRITEBYTECODE'] = arg[2:]\n        elif '-failedonly'.startswith(arg):\n            _failedonly = True\n        elif '-prefix'.startswith(arg):\n            _prefix = True\n        elif '-raiser'.startswith(arg):  # also .base.Test.__init__\n            _raiser = True  # break on error\n        elif '-results'.startswith(arg):\n            _results = True\n        elif _threads and '-threads'.startswith(arg) \\\n                      and args and args[0].isdigit():\n            _Tpool = ThreadPool(int(args.pop(0)))\n        elif '-verbose'.startswith(arg):\n            _verbose = True\n        elif arg.startswith('-Z'):\n            environ['PYGEODESY_LAZY_IMPORT'] = arg[2:]\n        else:\n            printf('%s invalid option: %s', argv0, arg)\n            sys.exit(1)\n\n    if not args:  # no tests specified, get all test*.py\n        # scripts in the same directory as this one\n        args = sorted(glob(join(test_dir, 'test[A-Z]*.py')))\n\n    # PyGeodesy and Python versions, size, OS name and release\n    v = versions()\n\n    if _results:  # save all test results\n        t = '-'.join(['testresults'] + v.split()) + '.txt'\n        t = clips(t, 180)  # isWindows MAX?\n        t = join(PyGeodesy_dir, 'testresults', t)\n        _results = open(t, 'wb')  # note, 'b' not 't'!\n        _write('%s typical test results (%s)%s' % (argv0, v, NL))\n\n    s = t = time()\n    try:\n        for arg in args:\n            p, t = _prefix2(t)\n            _Tpool.submit(_run, p, *arg.split())\n        p, t = _prefix2(t)\n        _Tpool.shutdown(p)\n    except KeyboardInterrupt:\n        _exit(NN, '^C', 9)\n    except SystemExit:\n        pass\n    p, t = _prefix2(t)\n    s    =  t - s\n    t    =  secs2str(s)\n    if _Total > s > 1:\n        t = '%s (%.3f tps)' % (t, _Total / s)\n\n    if _FailX:\n        s = NN if _FailX == 1 else 's'\n        x = '%d (of %d) test%s FAILED' % (_FailX, _Total, s)\n    elif _Total > 0:\n        x = 'all %d tests OK' % (_Total,)\n    else:\n        x = 'all OK'\n\n    t = '%s%s %s: %s (%s) %s' % (p, argv0, PythonX_, x, v, t)\n    _exit(t, t, 2 if _FailX else 0)\n\n# **) MIT License\n#\n# Copyright (C) 2016-2026 -- mrJean1 at Gmail -- All Rights Reserved.\n#\n# Permission is hereby granted, free of charge, to any person obtaining a\n# copy of this software and associated documentation files (the \"Software\"),\n# to deal in the Software without restriction, including without limitation\n# the rights to use, copy, modify, merge, publish, distribute, sublicense,\n# and/or sell copies of the Software, and to permit persons to whom the\n# Software is furnished to do so, subject to the following conditions:\n#\n# The above copyright notice and this permission notice shall be included\n# in all copies or substantial portions of the Software.\n#\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL\n# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR\n# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\n# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n# OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "test/testAlbers.py",
    "content": "\n# -*- coding: utf-8 -*-\n\n# Test L{albers} Equal-Area projections.\n\n__all__ = ('Tests',)\n__version__ = '24.12.31'\n\nfrom bases import TestsBase  # RandomLatLon\n\nfrom pygeodesy import albers, AlbersError, AlbersEqualArea, \\\n                      AlbersEqualArea2, AlbersEqualArea4, \\\n                      AlbersEqualAreaCylindrical, \\\n                      AlbersEqualAreaNorth, AlbersEqualAreaSouth, \\\n                      Datums, fstr, sincos2d\n\n_NAD27 = Datums.NAD27  # Clarke1866\n_WGS84 = Datums.WGS84\n\n\nclass Tests(TestsBase):\n\n    def testAlbers2(self):\n\n        A = AlbersEqualArea2(40 + 58/60.0, 39 + 56/60.0, name='Karney_example')  # WGS84\n        self.test('name',      A.named,                 A.named)\n        self.test('datum',     A.datum.name,           _WGS84.name)\n        self.test('ellipsoid', A.datum.ellipsoid.name, _WGS84.ellipsoid.name)\n        for n, x in (('lat0',        '40.451991337063'),\n                     ('scale0',      '0.999959500363'),\n                     ('equatoradius', A.datum.ellipsoid.a),\n                     ('flattening',   A.datum.ellipsoid.f),\n                     ('_sign',       '1.000000000000'),\n                     ('_m02',        '0.580681094922'),\n                     ('_n0',         '0.648810669236'),\n                     ('_txi0',       '0.848822476849')):\n            self.test(n, getattr(A, n), x, fmt='%.12f')\n        self.test('iteration', A.iteration, 3, known=A.iteration > 0)\n        self.test('ispolar', A.ispolar, False)\n\n        for lon0, x in ((0,     '-5675721.76113534, 2516917.91242155, 39.95, -75.17, 311.23285234, 0.99999745'),\n                        (-77.5, '199089.12574012, -53115.52801838, 39.95, 2.33, 1.51160641, 0.99999745')):\n            f = A.forward(39.95, -75.17, lon0=lon0)\n            self.test('forward', fstr(f[:6], prec=8), x, known=round(f.x, 7) == -5675721.7611353)\n            r = A.reverse(f.x, f.y, lon0=lon0)\n            self.test('reverse', fstr(r[:6], prec=8), x, known=round(r.lon, 2) == -75.17)\n\n        for lon0, x in ((0,     '220000.0, -53000.0, 39.94581132, 2.57463362, 1.67031446, 0.99999808'),\n                        (-77.5, '220000.0, -53000.0, 39.94581132, -74.92536638, 1.67031446, 0.99999808')):\n            r = A.reverse(220e3, -53e3,  lon0=lon0)\n            self.test('reverse', fstr(r[:6], prec=8), x)\n            f = A.forward(r.lat, r.lon, lon0=lon0)\n            self.test('forward', fstr(f[:6], prec=8), x, known=round(f.lon, 8) == 2.57463362)\n\n        self.subtitle(albers, 'Page292')\n        A = AlbersEqualArea2(29.5, 45.5, datum=_NAD27, name='Snyder_p292')\n        self.test('name',      A.named,                A.named)\n        self.test('datum',     A.datum.name,           _NAD27.name)\n        self.test('ellipsoid', A.datum.ellipsoid.name, _NAD27.ellipsoid.name)\n        for n, x in (('lat0',        '37.934543880726'),\n                     ('scale0',       '0.990309187872'),\n                     ('equatoradius',  A.datum.ellipsoid.a),\n                     ('flattening',    A.datum.ellipsoid.f),\n                     ('_sign',        '1.000000000000'),\n                     ('_m02',         '0.623664507732'),\n                     ('_n0',          '0.614760830736'),\n#                    ('_nrho0', '5037024.736824393272'),\n                     ('_txi0',        '0.775925617021')):\n            self.test(n, getattr(A, n), x, fmt='%.12f')\n        self.test('iteration', A.iteration, 4, known=A.iteration > 0)\n        self.test('ispolar', A.ispolar, False)\n\n        for lon0, x in ((0,   '-6105839.22928148, 2214046.74930274, 35.0, -75.0, 314.78223745, 0.99155461'),\n                        (-96, '1885472.72581347, -119505.66687766, 35.0, 21.0, 12.66097351, 0.99155461')):\n            f = A.forward(35, -75, lon0=lon0)\n            self.test('forward', fstr(f[:6], prec=8), x, known=round(f.x, 7) == -6105839.2292815 or\n                                                               round(f.y, 7) ==  -119505.6668777)\n            r = A.reverse(f.x, f.y, lon0=lon0)\n            self.test('reverse', fstr(r[:6], prec=8), x, known=round(r.lon, 1) == -75.0)\n\n        for lon0, x in ((0,   '1885427.7, 1535925.0, 49.40436665, 25.93001383, 15.63329611, 1.01436109'),\n                        (-96, '1885427.7, 1535925.0, 49.40436665, -70.06998617, 15.63329611, 1.01436109')):\n            r = A.reverse(1885427.7, 1535925, lon0=lon0)\n            self.test('reverse', fstr(r[:6], prec=8), x)\n            f = A.forward(r.lat, r.lon, lon0=lon0)\n            self.test('forward', fstr(f[:6], prec=8), x, known=round(f.lon, 8) == 25.93001383)\n\n        self.subtitle(albers, 'Table15')\n        A = AlbersEqualArea2(29.5, 45.5, datum=Datums.NAD27, name='Snyder_p103')\n        for lat, k in ((52,   1.02863),\n                       (50,   1.01727),\n                       (45.5, 1.00000),\n                       (45,   0.99869),\n                       (40,   0.99097),\n                       (35,   0.99155),\n                       (30,   0.99893),\n                       (29.5, 1.00000),\n                       (25,   1.01222),\n                       (22,   1.02283)):\n            t = A.forward(lat, 0)\n            self.test(str(lat) + ' k', t.scale, k, fmt='%.5f')\n\n    def testLats(self):\n        self.subtitle(albers, 'Lats')\n        s, c = sincos2d(30)\n        for lat, A in (( 45, AlbersEqualArea(45)),\n                       ( 40, AlbersEqualArea2(40, 40)),\n                       ( 30, AlbersEqualArea4( s, c,  s, c)),\n                       (-30, AlbersEqualArea4(-s, c, -s, c)),\n                       (  0, AlbersEqualAreaCylindrical()),\n                       ( 90, AlbersEqualAreaNorth()),\n                       (-90, AlbersEqualAreaSouth())):\n            t = A.toRepr()\n            self.test(A.named + '.toRepr', t, t)\n            self.test(A.named + '.lat0', A.lat0, lat, fmt='%.1f')\n            self.test(A.named + '.lat1', A.lat1, lat, fmt='%.1f')\n            self.test(A.named + '.lat2', A.lat2, lat, fmt='%.1f', nt=1)\n\n        try:\n            self.test('error', AlbersEqualArea4(s, -c, 0, c), AlbersError.__name__)\n        except Exception as x:\n            self.test('error', str(x), 'clat1 (-0.8660254037844386) or clat2 (1.0): negative', known=True)\n        try:\n            self.test('error', AlbersEqualArea4(-0.5, c, 0.5, c), AlbersError.__name__)\n        except Exception as x:\n            self.test('error', str(x), 'slat1 (-0.5) or slat2 (0.5): negative', known=True)\n\n\nif __name__ == '__main__':\n\n    t = Tests(__file__, __version__, albers)\n    t.testAlbers2()\n    t.testLats()\n    t.results()\n    t.exit()\n"
  },
  {
    "path": "test/testAngles.py",
    "content": "\n# -*- coding: utf-8 -*-\n\n# Test L{angles} module.\n\n__all__ = ('Tests',)\n__version__ = '25.12.01'\n\nfrom bases import startswith, TestsBase\n\nfrom pygeodesy import EPS, INF, PI, Ang, Deg, Fsum, \\\n                      Lambertian, Rad, angles\n\nfrom math import ceil, degrees, floor, radians\n\n\nclass Tests(TestsBase):\n\n    def testAngles(self):  # MCCABE 26\n\n        for d in range(-716, 716, 3):\n            D = Deg(d)\n            self.test('D', D.degrees, d, prec=6)\n            self.test('r', D.radians, radians(d), prec=6)\n            self.test('n', D.n, D.n)\n\n            r = d * 0.01\n            R = Rad(r)\n            self.test('R', R.radians, r, prec=6)\n            self.test('d', R.degrees, degrees(r), prec=6)\n            self.test('n', R.n, R.n)\n\n        D = Deg(30)\n        self.test('radd', float(2 + D), '32.0', prec=1, nl=1)\n        self.test('rdiv', float(2 / D),  '6.67e-02', prec=-2)\n        self.test('rmul', float(2 * D), '60.0', prec=1)\n        self.test('rpow', float(2**D),  '1073741824.0', prec=1)\n        self.test('rsub', float(2 - D), '-28.0', prec=1)\n\n        R = Rad(2)\n        r = R * 2\n        self.test('R * 2', float(r), 4.0, prec=4, known=True, nl=1)\n        s = r / 2  # /= chockes PyChecker\n        self.test('R / 2', float(s), float(R), prec=4, known=True)\n        self.test('R / R', s / s == Ang(1.0), True, known=True)  # PYCHOK \"s / s is always 1 or ZeroDivisionError\"\n        self.test('R / R', float(s / R), '1.0', known=True)\n        self.test('R / R', float(r / R), '2.0', known=True)\n        m = abs(R)\n        self.test('abs  ', m, +R, known=m == R)  # PYCHOK \"Unary positive (+) usually has no effect\"\n        self.test('int  ', int(R), 2, known=True)\n\n        self.test('eq R', R == s,  True)\n        self.test('ge R', R >= s,  True)\n        self.test('gt R', R > s,  False)\n        self.test('le R', R <= s,  True)\n        self.test('lt R', R <  s, False)\n        self.test('ne R', R != s, False)\n        self.test('if R', bool(s), True)\n\n        self.test('gt 0', R > 0, True)\n        self.test('lt 0', R < 0, False)\n        self.test('eq 0', R == 0, False)\n        m = -R  # R is positive\n        self.test('lt 0', m < 0, True)\n        self.test('gt 0', R > 0, True)\n        self.test('gt 0', m > 0, False)\n\n        self.test('signOf', R.signOf(),  1)\n        self.test('signOf', m.signOf(), -1)\n\n        self.test('ceil ', ceil(R.copy() + 1e-15), '3', known=startswith)\n        self.test('floor', floor(R), '2', known=startswith, nt=1)\n\n        self.test('divmod ',  divmod(r, 2),        '(2.0, Radians(0.0))')\n        self.test('divmod ',  r.copy().divmod(2),  '(2.0, Radians(0.0))')\n        self.test('rdivmod ', divmod(2, r),        '(0.0, Radians(2.0))')\n        self.test('divmod ',  divmod(Ang(-3), 2), '(-2.0, Radians(1.0))')\n        m  = r.copy(name='__imod__')\n        m %= 2\n        self.test('imod', m,     '0.0')\n        self.test('mod ', r % 2, '0.0')\n        self.test('rmod', 2 % r, '2.0')\n        m = -R\n        self.test('neg ', m, -R, known=m == -R)\n        m = +R  # PYCHOK \"Unary positive (+) usually has no effect\"\n        self.test('pos ', m, R, known=m == R)\n        self.test('is_int', R.is_integer(), False, known=True)\n\n        x = Rad(float(Fsum(1, 1e-101, -1, -1e-102)))\n        self.test('float', float(x), '9e-102', known=True)\n        self.test('is_int', x.is_integer(), False, known=True)\n        self.test('round1', float(round(x, 1)), '0.0')  # Python2\n\n        m = Deg(float(Fsum(1, 1e-101, -4, -1e-102, name='m')))  # about -3\n        self.test('R //', m // 3,  '-2.0')\n        self.test('// R', 5 // m, '-2.0')\n        m.__ifloordiv__(2)  # //= chockes PyChecker\n        self.test('R //=', m, '-2.0')  # -3.0 // 2 = -2.0, 3.0 // 2 = 1.0\n        try:\n            self.test('R / 0', x / 0, ZeroDivisionError.__name__)\n        except Exception as X:\n            self.test('R / 0', repr(X), ZeroDivisionError.__name__, known=startswith)\n\n        try:\n            self.test('pow(R, +)', pow(x, 2.1), '0.0', nl=1)\n        except Exception as X:\n            self.test('pow(R, +)', repr(X), ZeroDivisionError.__name__, known=startswith)\n        try:\n            self.test('pow(R, -)', pow(x, -1), '0.4767037')\n        except Exception as X:\n            self.test('pow(R, -)', repr(X), ZeroDivisionError.__name__, known=startswith)\n        try:\n            self.test('pow(-R, R)', pow(m, float(x)), ZeroDivisionError.__name__)\n        except Exception as X:  # TypeError('fromDegrees((1+2.8274333882308138e-101j))')\n            self.test('pow(-R, R)', repr(X), TypeError.__name__, known=True)  # =startswith)\n        try:\n            self.test('pow(R, R)', pow(-m, x), '1.0')  # -m = 2, x = 0.+\n        except Exception as X:\n            self.test('pow(R, R)', repr(X), ZeroDivisionError.__name__, known=startswith)\n        try:\n            self.test('pow(R, f, i)', pow(x, 2.1, 2), ZeroDivisionError.__name__)\n        except Exception as X:\n            self.test('pow(R, f, i)', repr(X), TypeError.__name__, known=startswith)\n        try:\n            self.test('pow(R, R, i)', m.pow(Fsum(2.1), 2), TypeError.__name__)\n        except Exception as X:\n            self.test('pow(R, R, i)', repr(X), TypeError.__name__, known=startswith)\n        self.test('pow(R, i, None)', pow(-m, 2, None), '4.0')\n        try:\n            self.test('Z**-2', Fsum(0.0)**-2, ZeroDivisionError.__name__)\n        except Exception as X:\n            self.test('Z**-2', repr(X), ZeroDivisionError.__name__, known=startswith)\n\n        x = Rad(float(Fsum(1, 1e-101, -4, -1e-102)))  # about -3\n        self.test('pow(0)',  x**0,             '1.000', prec=3)\n        self.test('pow(1)',  x**1,            '-3.000', prec=3)\n        self.test('pow(2)',  x**2,             '9.000', prec=3)\n        self.test('pow(21)', x**21, '-10460353203.000', prec=3)\n        self.test('pow(-5)', x**-5,           '-0.004', prec=3)\n        x **= 2\n        self.test('**= 2',  x,                 '9.000', prec=3)\n\n        x = Deg(0)\n        self.test('F0**0',  x**0,            '1.0', nl=1)\n        self.test('F0**0.', x**0.,           '1.0')\n        self.test('0**F0',  0**x,            '1.0')\n        self.test('0.**F0', 0.**x,           '1.0')\n        self.test('F0**0', x.pow(0),         '1.0')\n        self.test('F0**2', x.pow(2),         '0.0')\n        self.test('F0**0.', x.pow(0.),       '1.0')\n        self.test('F0**3.', x.pow(3.),       '0.0')\n        self.test('F0**0.', x.pow(0., None), '1.0')\n\n        x = Rad(float(Fsum(2, 3)))\n        self.test('R**2',     x**x,     '3125.000', prec=3, nl=1)\n        self.test('R**-1',    x**-1,       '0.200', prec=3)\n        self.test('R**-2',    x**-2,       '0.040', prec=3)\n        self.test('R**-2.5',  x**-2.5,     '0.018', prec=3)\n        self.test('R** 2.5',  x** 2.5,    '55.902', prec=3)\n        self.test('pow(2)',   x.pow(2),   '25.000', prec=3)\n        self.test('pow(2.5)', x.pow(2.5), '55.902', prec=3)\n        self.test('pow(R)',   x.pow(x), '3125.000', prec=3)\n\n        self.test('3pow(2, None)',   x.pow(2, None).toStr(), '25.0')\n        self.test('3pow(2.5, None)', x.pow(2.5, None).toStr(prec=5), '55.9017')\n        self.test('3pow(2, 20)', pow(int(x), 2, 20), '5')\n\n        x = float(x)\n        self.test('x * x', x * x,        '25.0', prec=1)\n        self.test('x * R', x * Ang(2.5), '12.5', prec=1)\n        self.test('x + R', x + Ang(2.5), '7.5', prec=1)\n        self.test('x - R', x - Ang(2.5), '2.5', prec=1)\n\n        t = Ang(EPS)\n        self.test('abs(T)',   abs(t),   '0.', known=startswith, nl=1)\n        self.test('bool(T)',  bool(t),   True)\n        self.test('float(T)', float(t), '2.',  known=startswith)\n        self.test('int(T)',   int(t),   '0')\n        self.test('-T',       (-t),     '-0.', known=startswith)\n        self.test('+T',       (+t),     '0.', known=startswith)  # PYCHOK no effect\n\n        p = Rad(PI)\n        self.test('R==T', p == t, False, nl=1)\n        self.test('R>=T', p >= t, True)\n        self.test('R> T', p >  t, True)\n        self.test('R<=T', p <= t, False)\n        self.test('R< T', p <  t, False)\n        self.test('R!=T', p != t, True)\n\n        if True:  # coverage:\n            D = Deg(61)\n            t = D.base(D)\n            self.test('base', t, t, nl=1)\n            t = D.flipsign()\n            self.test('flipsign', t, -D)\n            t = D.lambertian\n            self.test('lambertian', t, t)\n            t = Ang.fromScalar(t, unit=Lambertian)\n            self.test('fromScalar', t, t)  # D?\n            t = D.copy()\n            t.n0 = D.n0 + 2\n            self.test('n0', t, t)\n            t = D.nearest(1)\n            self.test('nearest', t, t)\n            t = D.normalize(2).normalize(0)\n            self.test('normalize', t, D)\n            t = D.quadrant\n            D.quadrant = t + 4\n            self.test('quadrant', D.quadrant, t)\n            t = D.copy().reflect(True, True, True).reflect(True, True, True)\n            self.test('reflect', t, D)\n            t = D.round()\n            self.test('round', t, t)\n            t = D.shift(INF)\n            self.test('shift', t, t)\n            self.test('t', D.t, D.t)\n            t = D.toLambertian()\n            self.test('toLambertian', t, t)\n            t = D.toTuple()\n            self.test('toTuple', t, t)\n\n\nif __name__ == '__main__':\n\n    t = Tests(__file__, __version__, angles)\n    t.testAngles()\n    t.results()\n    t.exit()\n"
  },
  {
    "path": "test/testAuxilats.py",
    "content": "\n# -*- coding: utf-8 -*-\n\n# Some basic L{auxilats} tests.\n\n__all__ = ('Tests',)\n__version__ = '25.09.09'  # '23.08.31'\n\nfrom bases import numpy, TestsBase\n\nfrom pygeodesy import NN, PI_2, PI_4, Fsum, fsum, printf, sincos2\nfrom pygeodesy.auxilats import Aux, AuxAngle, AuxDST, AuxLat, \\\n                               AuxBeta, AuxChi, AuxMu, AuxPhi, AuxTheta, AuxXi\n\n\nclass Tests(TestsBase):\n\n    def testAngles(self, deltas):\n        de = {}\n        # <https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1AuxLatitude.html>\n        aL = AuxLat()\n        for A in (AuxBeta, AuxChi, AuxMu, AuxPhi, AuxTheta, AuxXi):\n            AUX = A._AUX\n            for d in range(0, 360, 7):\n                a = A.fromDegrees(d)\n                for exact in (True, False):\n                    t = 1e-15 if exact else 1e-14\n                    for auxout in range(len(Aux)):\n                        r = aL.convert(auxout, a, exact=exact)\n                        assert r._AUX == auxout\n                        b = aL.convert(AUX, r, exact=exact)\n                        assert b._AUX == AUX\n                        i =  b.iteration\n                        i =  NN if i is None else (', iteration=' + str(i))\n                        n = '%2d %.12f %s%s' % (d, (r.toDegrees % 360.0), r, i)\n                        self.test_tol(n, b.tan, a.tan, tol=t, prec=12, nl=int(not auxout))\n                        if deltas and b != a:  # or i:\n                            pass\n#                           e = fabs(b.tan - a.tan)\n#                           printf('%s tan=%s, e=%.3e', b, b.tan, e)\n#                           printf('%s tan=%s, iteration=%s', a, a.tan, b.iteration)\n#                           if e > de.get(d, 0):\n#                               de[d] = e\n        n = 1\n        for d, e in sorted(de.items()):\n            printf('%2d error %.3e ', d, e, nl=n)\n            n = 0\n\n        A = AuxAngle(2)\n        self.test('abs', abs(A), 'AuxAngle(tan=2.0, x=1.0, y=2.0)', nl=1)\n        self.test('add', A + A,  'AuxAngle(tan=-1.33333, x=-3, y=4.0)')\n        self.test('eq ', A == A, True)\n        self.test('float', float(A), 2.0)\n        self.test('sub', A - A,  'AuxAngle(tan=0.0, x=1.0, y=0.0)')\n        self.test('neg', -A,     'AuxAngle(tan=-2, x=1.0, y=-2)')\n        self.test('ne ', A != A, False)\n        self.test('pos', +A, A)  # PYCHOK no effect\n        A += A\n        self.test('iadd', A,     'AuxAngle(tan=-1.33333, x=-3, y=4.0)')\n        A -= A\n        self.test('isub', A,     'AuxAngle(tan=0.0, x=1.0, y=0.0)')\n        self.test('radd', A.__radd__(A), 'AuxAngle(tan=0.0, x=1.0, y=0.0)')\n        self.test('rsub', A.__rsub__(A), 'AuxAngle(tan=0.0, x=1.0, y=0.0)')\n\n    def testCoeffs(self):\n        a = AuxLat()\n        for al in (4, 6, 8):\n            a.ALorder = al\n            self.test('Aux', al, al, nl=1)\n            for aout in range(Aux.N):\n                self.test('aout', aout, aout, nl=1)\n                for ain in range(Aux.N):\n                    c = a._coeffs(aout, ain)\n                    self.test('Aux', len(c), al)\n\n    def testCXoeffs(self):\n        a = AuxLat(ALorder=6)\n        Cx = a._CXcoeffs\n        self.test('Aux', a.ALorder, a.ALorder, nl=1)\n        for aout in range(Aux.N):\n            self.test('aout', aout, aout, nl=1)\n            for ain in range(Aux.N):\n                try:\n                    t = type(Cx[aout][ain]).__name__\n                except KeyError:\n                    t = 'None'\n                self.test('before', t, t)\n                _ = a._coeffs(aout, ain)\n                try:\n                    self.test('after', type(Cx[aout][ain]).__name__, t, known=True)\n                except KeyError:\n                    pass\n\n    def testDST(self, enums):\n        # <https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1DST.html>\n\n        def _f(a):  # sawtooth\n            return a + PI_4\n\n        def _j(i):\n            return (2 * i + 1)**2 * (1 - ((i & 1) << 1))\n\n        N = 5\n        dst = AuxDST(N)\n        self.test('N', dst.N, N, prec=0, nl=1)\n\n        tx = dst.transform(_f)\n        if enums:\n            for i, t in enumerate(tx):\n                printf('N /%s: %g %g', i, t, t * _j(i), nl=not i)\n        self.test('N /sum', fsum(tx), '2.748844788926', prec=12)\n\n        tx = dst.refine(_f, tx)\n        if enums:\n            for i, t in enumerate(tx):\n                printf('+N/%s: %g %g', i, t, t * _j(i), nl=not i)\n        self.test('+N/sum', fsum(tx), '3.071245975238', prec=12)\n\n        K  = dst.reset(N*2)\n        tx = dst.transform(_f)\n        if enums:\n            for i, t in enumerate(tx):\n                printf('2N/%s: %g %g', i, t, t * _j(i), nl=not i)\n        self.test('2N/sum', fsum(tx), '3.071245975238', prec=12)\n\n        Te, Tg = Fsum(), Fsum()\n        for i in range(K):\n            x = PI_2 * i / K\n            s, c = sincos2(x)\n            e = AuxDST.evaluate(s, c, tx)\n            g = AuxDST.integral(s, c, tx)\n            if enums:\n                printf('T/%s: f(%g)=%g, e=%g, g=%g', i, x, _f(x), e, g, nl=not i)\n            Te += e\n            Tg += g\n        self.test('Te/sum', float(Te),   '57.582664067074', prec=12)\n        self.test('Tg/sum', float(Tg), '-182.807444594653', prec=12)\n\n\nif __name__ == '__main__':\n\n    from pygeodesy import auxilats\n\n    t = Tests(__file__, __version__, auxilats)\n\n    t.testCXoeffs()\n    t.testCoeffs()\n    t.testAngles(False)\n    if numpy:\n        t.testDST(False)\n    else:\n        t.skip('no numpy', 6)\n\n    t.results()\n    t.exit()\n"
  },
  {
    "path": "test/testAzimuthal.py",
    "content": "\n# -*- coding: utf-8 -*-\n\n# Test L{azimuthal} projections and intersections2 functions.\n\n__all__ = ('Tests',)\n__version__ = '25.05.09'\n\nfrom bases import GeodSolve, geographiclib, TestsBase, RandomLatLon\n\nfrom pygeodesy import Equidistant, EquidistantExact, EquidistantGeodSolve, \\\n                      EquidistantKarney, Gnomonic, GnomonicExact, \\\n                      GnomonicGeodSolve, GnomonicKarney, LambertEqualArea, \\\n                      Orthographic, Stereographic, ellipsoidalExact, \\\n                      ellipsoidalKarney, ellipsoidalNvector, \\\n                      ellipsoidalVincenty, F_D, fstr, hypot, \\\n                      IntersectionError, latlonDMS, latlonDMS_, vincentys\n\n\nclass Tests(TestsBase):\n\n    def testAzimuthal(self, Azimuthal, *xs):\n\n        P = Azimuthal(48 + 50/60.0, 2 + 20/60.0, name='Paris')\n        self.test(repr(P), P, P)\n\n        f = P.forward(50.9, 1.8, name='Calais')\n        self.test('forward', fstr(f[:6], prec=6), xs[0])\n        r = P.reverse(f.x, f.y, name='Calais')\n        self.test('reverse', fstr(r[:6], prec=6), xs[1])\n        self.test('iteration', P.iteration, P.iteration)\n\n        self.testCopy(P)\n\n        r = P.reverse(-38e3, 230e3, name='Calais')\n        self.test('reverse', fstr(r[:6], prec=6), xs[2])\n        f = P.forward(r.lat, r.lon, name='Calais')\n        self.test('forward', fstr(f[:6], prec=6), xs[3])\n\n        for m in (ellipsoidalExact, ellipsoidalKarney,\n                  ellipsoidalNvector, ellipsoidalVincenty):\n            r = P.reverse(-38e3, 230e3, LatLon=m.LatLon)\n            self.test('reverse', repr(r), xs[4])\n\n        G = Azimuthal(51.4934, 0.0098, name='Greenwich')\n        self.test(repr(G), G, G)\n        f = G.forward(P.lat0, P.lon0, name=P.name)\n        self.test('forward', fstr(f[:6], prec=6), xs[5])\n        r = G.reverse(f.x, f.y)\n        self.test('reverse', fstr(r[:6], prec=6), xs[6])\n        self.test('iteration', G.iteration, G.iteration)\n\n        h = hypot(f.x, f.y)  # easting + norting ~= distance\n        d = vincentys(G.lat0, G.lon0, r.lat, r.lon)  # haversine\n        self.test('hypot', h, d, fmt='%.3f', known=abs(d - h) < 1000)\n\n        r = r.antipodal(azimuth=0)  # coverage\n        t = r.toStr()\n        self.test('antipodal', t, t, nt=1)\n\n    def testDiscrepancies(self):\n        # Compare ellipsoidal intersections2 for EquidistantKarney\n        # and Equidistant showing the differences in degrees\n        # and as percentage of the reference RandomLatLon.  Also\n        # show the first, spherical intersections2 gu-/estimates.\n\n        # Equidistant implements Snyder's formulas for the sphere\n        # for ellipsoidal projections.  That plus the (high) accuracy\n        # of EquidistantKarney likely cause the discrepancies.  An\n        # other factor may be the innate distortions of azimuthal\n        # equidistance projections for distances beyond 10,000 Km\n        # (about one quarter of the earth circumference), see\n        # <https://WikiPedia.org/wiki/Azimuthal_equidistant_projection>\n        from pygeodesy.ellipsoidalBaseDI import _intersects2 as _ei2\n        from pygeodesy.sphericalTrigonometry import _intersects2 as _si2\n\n        def _100p(p, q, w):\n            r = abs(100 * p / q) if q else 0\n            return '%0*.3f%%' % (w + 4,r)\n\n        def _max(i, r, t=''):\n            s = latlonDMS(i, form=F_D, prec=-6)\n            return '%s  %s, %s of Random%s' % (s, _100p(i.lat, r.lat, 2),\n                                                  _100p(i.lon, r.lon, 3), t)\n\n        for m in (ellipsoidalExact, ellipsoidalVincenty):  # ellipsoidalKarney\n            LL = m.LatLon\n            e = LL(0, 0)\n            n = m.__name__\n            # courtesy of U{Samuel Čavoj<https://GitHub.com/mrJean1/PyGeodesy/issues/41>}\n            R = RandomLatLon(LL, 90, 90)  # +/- 45\n            r = R()\n            s = latlonDMS(r, form=F_D, prec=-6) + ' Random +/- 45'\n            self.test(n, s, s)\n            for _ in range(12):  # 100+\n                p, q = R(), R()\n                r1 = r.distanceTo(p)\n                r2 = r.distanceTo(q)\n                t = []\n                for E in (None, EquidistantExact, Equidistant):\n                    a = getattr(E, '__name__', 'Spherical')\n                    try:\n                        i1, i2 = _si2(p, r1, q, r2, LatLon=LL) if E is None else \\\n                                 _ei2(p, r1, q, r2, equidistant=E, LatLon=LL)\n                        d, d2 = r.distanceTo(i1), r.distanceTo(i2)\n                        if d2 < d:\n                            d, i1, i2 = d2, i2, i1\n                        s = ', '.join(latlonDMS_(i1, i2, form=F_D, prec=-6))\n                        s = '%s  d %g meter  %s' % (s, d, a)\n                        self.test(n, s, s)\n                        if E is not None:\n                            t.append(i1)\n                    except (IntersectionError, TypeError, ValueError) as x:\n                        self.test(n, str(x), a, known=True)\n                if len(t) == 2:\n                    i1, i2 = t\n                    i = LL(i1.lat - i2.lat, i1.lon - i2.lon)\n                    s = _max(i, r)\n                    self.test(n, s, s)\n                    e = LL(max(abs(i.lat), e.lat),\n                           max(abs(i.lon), e.lon))\n            s = _max(e, r, ', max')\n            self.test(n, s, s, nt=1)\n\n    def testSnyder(self, lat, lon, As, *xys):\n        ll = lat, lon\n        t = str(ll)\n        for A, xy in zip(As, xys):\n            n = A.__class__.__name__ + t\n            f = A.forward(lat, lon)\n            self.test(n, fstr(f[:2], prec=5), fstr(xy, prec=5))\n            r = A.reverse(f.x, f.y)\n            self.test(n, fstr(r[2:4], prec=5), fstr(ll, prec=5))\n\n\nif __name__ == '__main__':\n\n    from pygeodesy import azimuthal, Azimuthal7Tuple, equidistant, gnomonic, namedTuples, NAN\n\n    t = Tests(__file__, __version__, azimuthal)\n\n    t.testAzimuthal(Equidistant,\n                   '-37467.812512, 230294.518853, 50.9, 1.8, 350.759218, 1.000223',\n                   '-37467.812512, 230294.518853, 50.9, 1.8, 350.759218, 1.000223',\n                   '-38000.0, 230000.0, 50.897321, 1.792455, 350.61849, 1.000222',\n                   '-38000.0, 230000.0, 50.897321, 1.792455, 350.61849, 1.000222',\n                   'LatLon(50°53′50.36″N, 001°47′32.84″E)',\n                   '170420.92566, -293667.828613, 48.833333, 2.333333, 149.872606, 1.000472',\n                   '170420.92566, -293667.828613, 48.833333, 2.333333, 149.872606, 1.000472')\n\n    t.testAzimuthal(Gnomonic,\n                   '-37484.520018, 230397.210923, 50.9, 1.8, 350.759218, 1.000669',\n                   '-37484.520018, 230397.210923, 50.9, 1.8, 350.759218, 1.000223',\n                   '-38000.0, 230000.0, 50.896405, 1.792706, 350.61849, 1.000222',\n                   '-38000.0, 230000.0, 50.896405, 1.792706, 350.61849, 1.000667',\n                   'LatLon(50°53′47.06″N, 001°47′33.74″E)',\n                   '170581.851218, -293945.134107, 48.833333, 2.333333, 149.872606, 1.001416',\n                   '170581.851218, -293945.134107, 48.833333, 2.333333, 149.872606, 1.000472')\n\n    t.testAzimuthal(EquidistantExact,\n                   '-37526.978232, 230000.911579, 50.9, 1.8, 350.325442, 0.999778',\n                   '-37526.978232, 230000.911579, 50.9, 1.8, 350.325442, 0.999778',\n                   '-38000.0, 230000.0, 50.899962, 1.793278, 350.205524, 0.999778',\n                   '-38000.0, 230000.0, 50.899962, 1.793278, 350.205524, 0.999778',\n                   'LatLon(50°53′59.86″N, 001°47′35.8″E)',\n                   '170617.186469, -293210.754313, 48.833333, 2.333333, 151.589952, 0.999529',\n                   '170617.186469, -293210.754313, 48.833333, 2.333333, 151.589952, 0.999529')\n\n    t.testAzimuthal(GnomonicExact,\n                   '-37543.665895, 230103.189403, 50.9, 1.8, 350.325442, 0.999333',\n                   '-37543.665895, 230103.189403, 50.9, 1.8, 350.325442, 0.999333',\n                   '-38000.0, 230000.0, 50.899044, 1.793528, 350.205718, 0.999333',\n                   '-37999.995965, 229999.975581, 50.899044, 1.793528, 350.205718, 0.999334',\n                   'LatLon(50°53′56.56″N, 001°47′36.7″E)',\n                   '170778.089295, -293487.270649, 48.833333, 2.333333, 151.589952, 0.998587',\n                   '170778.089295, -293487.270649, 48.833333, 2.333334, 151.589953, 0.998588')\n\n    if GeodSolve:\n        t.testAzimuthal(EquidistantGeodSolve,\n                       '-37526.978232, 230000.911579, 50.9, 1.8, 350.325442, 0.999778',\n                       '-37526.978232, 230000.911579, 50.9, 1.8, 350.325442, 0.999778',\n                       '-38000.0, 230000.0, 50.899962, 1.793278, 350.205524, 0.999778',\n                       '-38000.0, 230000.0, 50.899962, 1.793278, 350.205524, 0.999778',\n                       'LatLon(50°53′59.86″N, 001°47′35.8″E)',\n                       '170617.186469, -293210.754313, 48.833333, 2.333333, 151.589952, 0.999529',\n                       '170617.186469, -293210.754313, 48.833333, 2.333333, 151.589952, 0.999529')\n\n        t.testAzimuthal(GnomonicGeodSolve,\n                       '-37543.665895, 230103.189403, 50.9, 1.8, 350.325442, 0.999333',\n                       '-37543.665895, 230103.189403, 50.9, 1.8, 350.325442, 0.999333',\n                       '-38000.0, 230000.0, 50.899044, 1.793528, 350.205718, 0.999333',\n                       '-37999.995965, 229999.975581, 50.899044, 1.793528, 350.205718, 0.999334',\n                       'LatLon(50°53′56.56″N, 001°47′36.7″E)',\n                       '170778.089295, -293487.270649, 48.833333, 2.333333, 151.589952, 0.998587',\n                       '170778.089295, -293487.270649, 48.833333, 2.333334, 151.589953, 0.998588')\n\n    if geographiclib:\n        t.testAzimuthal(EquidistantKarney,\n                       '-37526.978232, 230000.911579, 50.9, 1.8, 350.325442, 0.999778',\n                       '-37526.978232, 230000.911579, 50.9, 1.8, 350.325442, 0.999778',\n                       '-38000.0, 230000.0, 50.899962, 1.793278, 350.205524, 0.999778',\n                       '-38000.0, 230000.0, 50.899962, 1.793278, 350.205524, 0.999778',\n                       'LatLon(50°53′59.86″N, 001°47′35.8″E)',\n                       '170617.186469, -293210.754313, 48.833333, 2.333333, 151.589952, 0.999529',\n                       '170617.186469, -293210.754313, 48.833333, 2.333333, 151.589952, 0.999529')\n\n        t.testAzimuthal(GnomonicKarney,\n                       '-37543.665895, 230103.189403, 50.9, 1.8, 350.325442, 0.999333',\n                       '-37543.665895, 230103.189403, 50.9, 1.8, 350.325442, 0.999333',\n                       '-38000.0, 230000.0, 50.899044, 1.793528, 350.205718, 0.999333',\n                       '-37999.995965, 229999.975581, 50.899044, 1.793528, 350.205718, 0.999334',\n                       'LatLon(50°53′56.56″N, 001°47′36.7″E)',\n                       '170778.089295, -293487.270649, 48.833333, 2.333333, 151.589952, 0.998587',\n                       '170778.089295, -293487.270649, 48.833333, 2.333334, 151.589953, 0.998588')\n    else:\n        t.skip('no geographiclib', n=14)\n\n    t.testDiscrepancies()\n\n    As = tuple(Azimuthal(0, 0, datum=1) for  # spherical datum of radius=1 for Snyder's Table ...\n                        # ... 30, pp 196-197      26, pp 168           28, pp 188-189      22, pp 151          24, pp 158-159\n               Azimuthal in  (Equidistant,        Gnomonic,            LambertEqualArea,   Orthographic,       Stereographic))\n    t.testSnyder(10, 80, As, (1.37704, 0.24656), (5.67128,  1.01543), (1.26747, 0.22694), (0.96985, 0.17365), (1.65643, 0.29658))\n    t.testSnyder(20, 20, As, (0.33454, 0.35601), (0.36397,  0.38733), (0.33123, 0.35248), (0.32139, 0.34202), (0.34136, 0.36327))\n    t.testSnyder(40, 40, As, (0.57386, 0.74912), (0.8391,   1.09537), (0.55281, 0.72164), (0.4924,  0.64279), (0.62062, 0.81016))\n    t.testSnyder(60, 60, As, (0.58948, 1.17896), (1.73205,  3.4641),  (0.54772, 1.09545), (0.43301, 0.86603), (0.69282, 1.38564))\n    t.testSnyder(70, 80, As, (0.50997, 1.42273), (5.67128, 15.82209), (0.46280, 1.29114), (0.33682, 0.93969), (0.63588, 1.77402))\n    t.testSnyder(80, 80, As, (0.26358, 1.51792), (5.67128, 32.65961), (0.23828, 1.37219), (0.17101, 0.98481), (0.33201, 1.91196))  # XXX 1.96962?\n    t.testSnyder(80, 10, As, (0.04281, 1.39829), (0.17633,  5.75877), (0.03941, 1.28702), (0.03015, 0.98481), (0.05150, 1.68198))\n\n    for A in (equidistant, gnomonic):\n        t.test('function', A.__name__, A.__name__, nl=1)\n        A = A(0, 0, datum=1, name='coverage')\n        t.test('equatoradius', A.equatoradius, 1.0)\n        t.test('flattening', A.flattening, 0.0)\n        t.test('iteration', A.iteration, A.iteration)\n        t.test('latlon0', A.latlon0, (0.0, 0.0))\n        A.latlon0 = namedTuples.LatLon2Tuple(1, 2)\n        t.test('latlon0', A.latlon0, (1.0, 2.0))\n        t.test('name', A.name, 'coverage')\n        t.test('radius', A.radius, 1.0)\n\n    A = Stereographic(0, 0)  # coverage\n    A.k0 = A.k0 + 1\n\n    A = Azimuthal7Tuple(NAN, NAN, 0, 0, 0, 1, None)\n    t.test('NANing', A.toUnits(), '(NAN, NAN, 0.0, 0.0, 0.0, 1.0, None)')\n\n    t.results()\n    t.exit()\n"
  },
  {
    "path": "test/testBasics.py",
    "content": "\n# -*- coding: utf-8 -*-\n\n# Test some of the L{basics}.\n\n__all__ = ('Tests',)\n__version__ = '24.09.29'\n\nfrom bases import isPython2, property_RO, TestsBase\n\nfrom pygeodesy import EPS, EPS0, INF, INT0, NAN, NEG0, NINF, clips, halfs2, \\\n                      isclose, isfinite, isint, isint0, isiterable, isiterablen, \\\n                      isneg0, isninf, isscalar, map1, remainder, splice\nfrom pygeodesy.basics import _xdup\n\n\nclass C(object):\n    a = None\n    b = None\n\n    @property_RO\n    def r_o(self):\n        return True\n\n\nclass Tests(TestsBase):\n\n    def testBasics(self):\n\n        self.test('clips',  clips('test/testBasics.py', limit=12), 'test/t....ics.py')\n        self.test('halfs2', halfs2('test/testBasics.py'), \"('test/test', 'Basics.py')\")\n\n        for f, x, y, n, s in ((0,      True,  False, False, True),\n                              (0.0,    True,  False, False, True),\n                              (1,      True,  False, False, True),\n                              (1.0,    True,  False, False, True),\n                              (1e300,  True,  True,  False, True),\n                              (-1e300, True,  True,  False, True),\n                              (1e1234, False, False, False, True),  # == INF\n                              (INF,    False, False, False, True),\n                              (NAN,    False, False, False, True),\n                              (NEG0,   True,  False, False, True),\n                              (NINF,   False, False,  True, True)):\n            t = str(f)\n            self.test('isfinite(%s)'  % (t,), isfinite(f), x, nl=1)\n            self.test('isint(%s)'     % (t,), isint(f, both=True), x)\n            self.test('isint(%s+0.5)' % (t,), isint(f + 0.5, both=True), y)\n            self.test('isninf(%s)'    % (t,), isninf(f), n)\n            self.test('isscalar(%s)'  % (t,), isscalar(f), s)\n\n        self.test('isfinite(complex)', isfinite(complex(1, 2)), True, nl=1)\n        self.test('isfinite(complex)', isfinite(complex(1, NAN)), False)\n\n        self.test('isint0(INT0)',  isint0(INT0), True, nl=1)\n        self.test('isint0(False)', isint0(False), False)\n        self.test('isint0(None)',  isint0(None), False)\n        self.test('isint0(0)',     isint0(0), True)\n        self.test('isint0(0.)',    isint0(0.), False)\n        self.test('isint0(0.0)',   isint0(0, both=True), True)\n\n        self.test('isneg0(NEG0)', isneg0(NEG0), True, nl=1)\n        self.test('isneg0(0.0)',  isneg0(0.0), False)\n        self.test('isneg0(INF)',  isneg0(INF), False)\n        self.test('isneg0(NAN)',  isneg0(NAN), False)\n\n        self.test('type(%s)' % ('C.r_o',), type(C.r_o).__name__, property_RO.__name__, nl=1)\n        c = C()\n        self.test('type(%s)' % ('c.r_o',), type(c.r_o), bool)\n        self.test('c.r_o', c.r_o, True)\n        try:\n            c.r_o = False\n            self.test('c.r_o = False', c.r_o, AttributeError.__name__)\n        except AttributeError as x:\n            self.test('c.r_o = False', str(x), str(x))\n        except Exception as x:\n            self.test('c.r_o = False', repr(x), AttributeError.__name__)\n\n        self.test('c.a, c.b', (c.a, c.b), '(None, None)')\n        d = _xdup(c, a=True, b=False)\n        self.test('d.a, d.b', (d.a, d.b), '(True, False)')\n        self.test('c.a, c.b', (c.a, c.b), '(None, None)')\n\n        a, b = splice(range(10))  # PYCHOK False\n        self.test('splice', (a, b), map1(type(a), (0, 2, 4, 6, 8), (1, 3, 5, 7, 9)))\n        a, b, c = splice(range(10), n=3)  # PYCHOK False\n        self.test('splice', (a, b, c), map1(type(a), (0, 3, 6, 9), (1, 4, 7), (2, 5, 8)))\n        a, b, c = splice(range(10), n=3, fill=-1)  # PYCHOK False\n        self.test('splice', (a, b, c), map1(type(a), (0, 3, 6, 9), (1, 4, 7, -1), (2, 5, 8, -1)))\n        t = tuple(splice(range(12), n=5))  # PYCHOK False\n        self.test('splice', t, map1(type(t[0]), (0, 5, 10), (1, 6, 11), (2, 7), (3, 8), (4, 9)), nt=1)\n\n        for a, b, x in (( 181,  360, '-179.0'),  # Python 3.10.4 results\n                        ( 181, -360, '-179.0'),\n                        ( 181,  INF,  '181.0'),\n                        ( 181,  NAN,   NAN),\n                        ( 181, NINF,  '181.0'),\n                        (-181,  360,  '179.0'),\n                        (-181, -360,  '179.0'),\n                        (-181,  INF, '-181.0'),\n                        (-181,  NAN,   NAN),\n                        (-181, NINF, '-181.0'),\n                        ( 179,  360,  '179.0'),\n                        ( 179, -360,  '179.0'),\n                        ( 179,  INF,  '179.0'),\n                        ( 179,  NAN,   NAN),\n                        ( 179, NINF,  '179.0'),\n                        (-179,  360, '-179.0'),\n                        (-179, -360, '-179.0'),\n                        (-179,  INF, '-179.0'),\n                        (-179,  NAN,   NAN),\n                        (-179, NINF, '-179.0'),\n                        (INF,   360,  'math domain error'),\n                        (INF,  -360,  'math domain error'),\n                        (INF,   INF,  'math domain error'),\n                        (INF,   NAN,   NAN),\n                        (INF,  NINF,  'math domain error'),\n                        (NAN,   360,   NAN),\n                        (NAN,  -360,   NAN),\n                        (NAN,   INF,   NAN),\n                        (NAN,   NAN,   NAN),\n                        (NAN,  NINF,   NAN),\n                        (NINF,  360,  'math domain error'),\n                        (NINF, -360,  'math domain error'),\n                        (NINF,  INF,  'math domain error'),\n                        (NINF,  NAN,   NAN),\n                        (NINF, NINF,  'math domain error')):\n            try:\n                r = remainder(a, b)\n            except Exception as e:\n                r =  str(e)\n            self.test('remainder%s' % ((a, b),), r, x)\n\n        self.test('isclose', isclose(0, EPS0), True)\n        self.test('isclose', isclose(0, EPS), False, nt=1)\n\n        def _t3(f, o, x):\n            n = '%s(%s)' % (f.__name__, o.__class__.__name__)\n            return n, f(o), x\n\n        for o, x, y in ((dict(),       True, True),\n                        (map(int, ()), True, isPython2),\n                        (list(),       True, True),\n                        (range(1),     True, True),\n                        (tuple(),      True, True),\n                        (set(),        True, False)):\n            self.test(*_t3(isiterable,  o, x))\n            self.test(*_t3(isiterablen, o, y))\n\n\nif __name__ == '__main__':\n\n    from pygeodesy import basics\n\n    t = Tests(__file__, __version__, basics)\n    t.testBasics()\n    t.results()\n    t.exit()\n"
  },
  {
    "path": "test/testBooleans.py",
    "content": "\n# -*- coding: utf-8 -*-\n\n# Test L{booleans} module.\n\n__all__ = ('Tests',)\n__version__ = '23.03.31'\n\nfrom bases import TestsBase\n\nfrom pygeodesy import BooleanFHP, BooleanGH, isenclosedBy\n\n\nclass Tests(TestsBase):\n\n    def testBooleans(self, module):  # MCCABE 15\n\n        self.subtitle(module)\n        LatLon = module.LatLon\n        areaOf = module.areaOf\n        periOf = module.perimeterOf\n\n        p = LatLon(0, 0, height=1.),  LatLon(7, 5, height=2.), LatLon(0, 10, height=3.)  # (0, 0)\n        q = LatLon(10, 0, height=1.), LatLon(3, 5, height=2.), LatLon(10, 10, height=3.)  # (5, 0)\n\n        # BooleanGH\n        s = BooleanGH(p, name='subject')\n        c = BooleanGH(q, name='clipper')\n        for n, r, x in (('and',   s & c, 'BooleanGH[4]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=7.0, lon=5.0, height=2.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=3.0, lon=5.0, height=2.0))'),\n                        ('or',    s | c, 'BooleanGH[6]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=0.0, lon=0.0, height=1.0), (lat=0.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=10.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0))'),\n                        ('minus', s - c, 'BooleanGH[5]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=0.0, lon=0.0, height=1.0), (lat=0.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=3.0, lon=5.0, height=2.0))'),\n                        ('rev_d', c - s, 'BooleanGH[5]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=10.0, lon=0.0, height=1.0), (lat=10.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=7.0, lon=5.0, height=2.0))')):\n            self.test(n, repr(r), x)\n\n        s &= c\n        self.test('iand', repr(s), 'BooleanGH[4]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=7.0, lon=5.0, height=2.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=3.0, lon=5.0, height=2.0))')\n        s = BooleanGH(p)\n        s |= c\n        self.test('ior', repr(s), 'BooleanGH[6]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=0.0, lon=0.0, height=1.0), (lat=0.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=10.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0))')\n\n        # s -= s\n        # self.test('isub', repr(s), '')\n\n        b = BooleanGH(p) + BooleanGH(q)\n        self.test('sum', repr(b), 'BooleanGH[2][6]((lat=0.0, lon=0.0, height=1.0), (lat=7.0, lon=5.0, height=2.0), (lat=0.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0, clipid=1), (lat=3.0, lon=5.0, height=2.0, clipid=1), (lat=10.0, lon=10.0, height=3.0, clipid=1))')\n        t = BooleanGH(q) + BooleanGH(p)\n        self.test('GH ==', b == t, True, nl=1)\n        self.test('equalTo', b.isequalTo(t, eps=1e-9), True)\n\n        self.test(areaOf.__name__, areaOf(b) == areaOf(t), True)\n        self.test('enclosed', isenclosedBy(LatLon(9, 5), b), True)\n        self.test('enclosed', isenclosedBy(LatLon(5, 5), t), False)\n        self.test(periOf.__name__, periOf(b, closed=True) == periOf(t, closed=True), True)\n\n        t = tuple(b.toLatLon(LatLon))[:3]\n        self.test('toLatLon[0:3]', repr(t), '(LatLon(00°00′00.0″N, 000°00′00.0″E, +1.00m), LatLon(07°00′00.0″N, 005°00′00.0″E, +2.00m), LatLon(00°00′00.0″N, 010°00′00.0″E, +3.00m))', nl=1)\n        t = tuple(b.toLatLon())[-3:]\n        self.test('toLatLon[-3:]', repr(t), '((lat=10.0, lon=0.0, height=1.0, clipid=1), (lat=3.0, lon=5.0, height=2.0, clipid=1), (lat=10.0, lon=10.0, height=3.0, clipid=1))', nt=1)\n\n        # Boolean FHP\n        s = BooleanFHP(p, name='subject')\n        c = BooleanFHP(q, name='clipper')\n        for n, r, x in (('and',   s & c, 'BooleanFHP[4]((lat=7.0, lon=5.0, height=2.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=3.0, lon=5.0, height=2.0), (lat=5.0, lon=3.5714286, height=1.7142857))'),\n                        ('or',    s | c, 'BooleanFHP[6]((lat=0.0, lon=0.0, height=1.0), (lat=0.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=10.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0), (lat=5.0, lon=3.5714286, height=1.7142857))')):\n            self.test(n, repr(r), x)\n\n        s &= c\n        self.test('iand', repr(s), 'BooleanFHP[4]((lat=7.0, lon=5.0, height=2.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=3.0, lon=5.0, height=2.0), (lat=5.0, lon=3.5714286, height=1.7142857))')\n        s = BooleanFHP(p)\n        s |= c\n        self.test('ior', repr(s), 'BooleanFHP[6]((lat=0.0, lon=0.0, height=1.0), (lat=0.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=10.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0), (lat=5.0, lon=3.5714286, height=1.7142857))')\n\n        # s -= s\n        # self.test('isub', repr(s), '')\n\n        b = BooleanFHP(p) + BooleanFHP(q)\n        self.test('sum', repr(b), 'BooleanFHP[2][6]((lat=0.0, lon=0.0, height=1.0), (lat=7.0, lon=5.0, height=2.0), (lat=0.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0, clipid=1), (lat=3.0, lon=5.0, height=2.0, clipid=1), (lat=10.0, lon=10.0, height=3.0, clipid=1))')\n        t = BooleanFHP(q) + BooleanFHP(p)\n        self.test('FHP ==', b == t, True, nl=1)\n        self.test('equalTo', b.isequalTo(t, eps=1e-9), True)\n\n        self.test(areaOf.__name__, areaOf(b) == areaOf(t), True)\n        self.test('enclosed', isenclosedBy(LatLon(9, 5), b), True)\n        self.test('enclosed', isenclosedBy(LatLon(5, 5), t), False)\n        self.test(periOf.__name__, periOf(b, closed=True) == periOf(t, closed=True), True)\n\n        t = tuple(b.toLatLon(LatLon))[:3]\n        self.test('toLatLon[0:3]', repr(t), '(LatLon(00°00′00.0″N, 000°00′00.0″E, +1.00m), LatLon(07°00′00.0″N, 005°00′00.0″E, +2.00m), LatLon(00°00′00.0″N, 010°00′00.0″E, +3.00m))', nl=1)\n        t = tuple(b.toLatLon())[-3:]\n        self.test('toLatLon[-3:]', repr(t), '((lat=10.0, lon=0.0, height=1.0, clipid=1), (lat=3.0, lon=5.0, height=2.0, clipid=1), (lat=10.0, lon=10.0, height=3.0, clipid=1))')\n\n\nif __name__ == '__main__':\n\n    from pygeodesy import ellipsoidalExact, ellipsoidalVincenty, \\\n                          sphericalNvector, sphericalTrigonometry\n\n    t = Tests(__file__, __version__)\n    t.testBooleans(ellipsoidalExact)\n#   t.testBooleans(ellipsoidalNvector)\n    t.testBooleans(ellipsoidalVincenty)\n    t.testBooleans(sphericalNvector)\n    t.testBooleans(sphericalTrigonometry)\n    t.results()\n    t.exit()\n"
  },
  {
    "path": "test/testCartesian.py",
    "content": "\n# -*- coding: utf-8 -*-\n\n# Test cartesians.\n\n__all__ = ('Tests',)\n__version__ = '25.05.12'\n\nfrom bases import GeodSolve, geographiclib, isPython35, TestsBase\n\nfrom pygeodesy import Aer, classname, Datums, degrees, Enu, fstr, Local9Tuple, Ltp, \\\n                      modulename, Ned, rtp2xyz, xyz2rtp, RefFrames, XyzLocal\nfrom pygeodesy import Transforms  # noqa: F401 for eval() below\nfrom pygeodesy.cartesianBase import CartesianBase, RadiusThetaPhi3Tuple\nfrom pygeodesy.ecef import Ecef9Tuple\nfrom pygeodesy.namedTuples import LatLon2Tuple, LatLon3Tuple, LatLon4Tuple, \\\n                                  PhiLam2Tuple, PhiLam3Tuple, PhiLam4Tuple, \\\n                                                Vector3Tuple, Vector4Tuple  # PYCHOK hanging\n\n\nclass Tests(TestsBase):\n\n    def testCartesian(self, module, Sph=False, Nv=False, X=False):  # MCCABE 45\n\n        self.subtitle(module, 'Cartesian')\n\n        Cartesian = module.Cartesian\n        LatLon    = module.LatLon\n        Nvector   = module.Nvector if Nv else Vector4Tuple\n\n        datum  = Datums.Sphere if Sph else Datums.WGS84\n        datum2 = None          if Sph else Datums.WGS72\n        # <https://www.Movable-Type.co.UK/scripts/geodesy/docs/\n        #        latlon-nvector-ellipsoidal.js.html#line309>\n        c = Cartesian(3980581, 97, 4966825, datum=datum)\n        self.test('Cartesian0', c.toStr(prec=0), '[3980581, 97, 4966825]')\n        self.test('Cartesian4', c.toStr(prec=4), '[3980581.0, 97.0, 4966825.0]')\n\n        self.test('isEllipsoidal', c.isEllipsoidal, not Sph)\n        self.test('isSpherical',   c.isSpherical,       Sph)\n        self.testCopy(c)\n\n        if datum2:\n            d = c.convertDatum(datum2)\n            t = d.convertDatum(datum)\n            self.test('convertDatum', t, c)  # PYCHOK attribute\n            if isPython35:\n                # using eval avoids SyntaxError with Python 3.4-,\n                # but t = eval(\"d @= ...\") throws a SyntaxError\n                t = eval('datum2 @ c')\n                self.test('__matmul__', t, d)\n                t = eval('Transforms.Identity @ d')\n                self.test('__matmul__', t, d)\n                if c.isEllipsoidal:\n                    t = c.dup(reframe=RefFrames.ITRF2000)\n                    t = eval('RefFrames.ITRF2014 @ t')\n                    self.test('__matmul__', t, t)\n\n        self.test('height',  c.height, '-5918.380258' if Sph else '0.242887', prec=6)\n        self.test('height4', c.height4().toStr(prec=1), '(3984282.2, 97.1, 4971443.2, -5918.4)' if Sph\n                                                   else '(3980580.8, 97.0, 4966824.8, 0.2)')\n        t = c.height4(Cartesian=Cartesian, height=0)\n        self.test('height4', t.toStr(prec=1), '[3984282.2, 97.1, 4971443.2]' if Sph\n                                         else '[3980580.8, 97.0, 4966824.8]')\n        t = t.height3(height=c.height)\n        self.test('height3', t.toStr(prec=1), '(3980581.0, 97.0, 4966825.0)')\n\n        n = c.toNvector()  # (x=0.622818, y=0.00002, z=0.782367, h=0.242887)\n        t = n.classname  # Nvector.__name__\n        if Nv:\n            self.test(t, repr(n), 'Nvector(0.62538, 0.00002, 0.78032, -5918.38)' if Sph\n                             else 'Nvector(0.62282, 0.00002, 0.78237, +0.24)')\n            self.test(t+'3', n.toStr(prec=3), '(0.625, 0.0, 0.78, -5918.38)' if Sph\n                                         else '(0.623, 0.0, 0.782, +0.24)')\n            self.test(t+'6', n.toStr(prec=6), '(0.625377, 0.000015, 0.780323, -5918.38)' if Sph\n                                         else '(0.622818, 0.000015, 0.782367, +0.24)')  # PYCHOK attribute\n        else:\n            n = fstr(n, fmt='g', prec=9)\n            self.test(t, n, '0.625376979, 1.52393751e-05, 0.780322775, -5918.38026' if Sph\n                       else '0.622817765, 1.51770114e-05, 0.782366942, 0.242886808')\n\n        for ll in ((50.0379, 8.5622),  # FRA\n                   (51.47,   0.4543),  # LHR\n                   # <https://www.EdWilliams.org/avform.htm#XTE>\n                   (degrees(0.709186), -degrees(1.287762)),  # JFK\n                   (33.+57./60, -(118.+24./60)),  # LAX\n                   # <https://GeographicLib.SourceForge.io/html/python/examples.html>\n                   (-41.32, 174.81),  # WNZ, Wellington, NZ\n                   (40.96,    5.50),  # SAL, Salamanca, Spain\n                   (40.1,   116.6),   # BJS, Beijing Airport\n                   (37.6,  -122.4)):  # SFO\n            p = LatLon(*ll)\n            q = p.toCartesian().toLatLon()\n            t = str(q)\n            self.test('LatLon', t, p, known=t.endswith('m'))  # PYCHOK attribute\n\n        # c = Cartesian(3980581, 97, 4966825, datum=datum)\n        t = c.copy()\n        self.test('copy', t.isequalTo(c), True)\n        self.test('__eq__', t == c, True)\n        self.test('__ne__', t != c, False)\n\n        if hasattr(Cartesian, 'convertRefFrame'):\n            pass  # PYCHOK attribute\n\n        for B in (False, True):  # check return types\n            t = c.__class__\n            self.test('Cartesian', t, t)\n            # self.testReturnType(c.Ecef,             Ecef,       c.Ecef.__name__)\n            self.testReturnType(c.latlon,            LatLon2Tuple, 'latlon')\n            self.testReturnType(c.latlonheight,      LatLon3Tuple, 'latlonheight')\n            self.testReturnType(c.latlonheightdatum, LatLon4Tuple, 'latlonheightdatum')\n            self.testReturnType(c.height4(),         Vector4Tuple, 'height4')\n            self.testReturnType(c.isequalTo(c),      bool,         'isequalTo')\n            self.testReturnType(c.philam,            PhiLam2Tuple, 'philam')\n            self.testReturnType(c.philamheight,      PhiLam3Tuple, 'philamheight')\n            self.testReturnType(c.philamheightdatum, PhiLam4Tuple, 'philamheightdatum')\n            self.testReturnType(c.latlonheight,      LatLon3Tuple, 'latlonheight')\n            self.testReturnType(c.toAer(),           Aer,          'toAer')\n            self.testReturnType(c.toEcef(),          Ecef9Tuple,   'toEcef')\n            self.testReturnType(c.toEnu(),           Enu,          'toEnu')\n            self.testReturnType(c.toLatLon(),        Ecef9Tuple if B else LatLon, 'toLatLon')\n            self.testReturnType(c.toLocal(),         Local9Tuple,  'toLLocal')\n            self.testReturnType(c.toLtp(),           Ltp,          'toLtp')\n            self.testReturnType(c.toNed(),           Ned,          'toNed')\n            self.testReturnType(c.toNvector(),       Vector4Tuple if B else Nvector, 'toNvector')\n            self.testReturnType(c.toXyz(),           XyzLocal,     'toXyz')\n            self.testReturnType(c.xyz,               Vector3Tuple, 'xyz')\n            self.testReturnType(c.xyz3,              tuple, 'xyz3')\n            c = CartesianBase(c)  # PYCHOK attribute\n\n        if hasattr(Cartesian, 'intersections2'):\n            # <https://GIS.StackExchange.com/questions/48937/calculating-intersection-of-two-circles>\n            c = Cartesian(-0.00323306, -0.7915, 0.61116)\n            n = classname(c, prefixed=True) + '.intersections2'\n            self.test(n, c.toLatLon(height=0), '37.673442°N, 090.234036°W' if Sph\n                                          else '89.998941°N, 090.234036°W')  # XXX?\n            d = Cartesian(-0.0134464, -0.807775, 0.589337)\n            self.test(n, d.toLatLon(height=0), '36.109987°N, 090.95367°W' if Sph\n                                          else '89.99892°N, 090.95367°W')  # XXX?\n            if Sph:\n                x, y = c.intersections2(0.0312705, d, 0.0421788, radius=None)  # radii in radians\n                self.test(n, x.toStr(prec=6), '[-0.032779, -0.784769, 0.61892]')  # -0.0327606, -0.784759, 0.618935\n                self.test(n, x.toLatLon(height=0), '38.237342°N, 092.391779°W')  # 38.23838°N, 092.390487°W\n                if y is not x:\n                    self.test(n, y.toStr(prec=6), '[0.025768, -0.798347, 0.601646]')  # 0.0257661, -0.798332, 0.601666\n                    self.test(n, y.toLatLon(height=0), '36.987868°N, 088.151309°W')  # 36.98931°N, 088.151425°W\n                try:\n                    from pygeodesy import trilaterate3d2  # with earth ... equivalent to Cartesian.intersections2?\n                    n = modulename(trilaterate3d2, prefixed=True)\n                    i, j = trilaterate3d2(c, 0.0312705, d, 0.0421788, Cartesian(0, 0, 0), 1)  # radians\n                    self.test(n, i.toStr(prec=6), '[-0.032761, -0.784757, 0.618937]', known=x.minus(i).length < 5e-5)\n                    self.test(n, j.toStr(prec=6),  '[0.025768, -0.798331, 0.601668]', known=y.minus(j).length < 5e-5)\n                except ImportError as x:\n                    self.skip(str(x), n=2)\n            else:\n                x, y = c.intersections2(0.0312705, d, 0.0421788, sphere=True)\n                self.test(n, x.toStr(prec=6), '[-0.0035, -0.791926, 0.610589]')\n                self.test(n, x.toLatLon(height=0), '89.998941°N, 090.253237°W')\n                self.test(n, y.toStr(prec=6), '0.0312613')  # radius\n\n        try:\n            from pygeodesy.vector3d import intersections2\n            n = modulename(intersections2, prefixed=True)\n            u = Vector3Tuple(-0.00323306, -0.7915, 0.61116)\n            v = Vector3Tuple(-0.0134464, -0.807775, 0.589337)\n            c, r = intersections2(u, 0.0312705, v, 0.0421788, sphere=True)\n            self.test(n, c.toStr(prec=6), '(-0.0035, -0.791926, 0.610589)')\n            self.test(n, r.toStr(prec=6), '0.0312613', known=True)  # XXX G and g formats may add 1 decimal\n            v1, v2 = intersections2(u, 0.0312705, v, 0.0421788, sphere=False)\n            self.test(n, v1.toStr(prec=6), '(-0.021973, -0.766467, 0.0)')\n            if v2 is not v1:\n                self.test(n, v2.toStr(prec=6), '(0.027459, -0.797488, 0.0)')\n        except ImportError as x:\n            self.skip(str(x), n=4)\n\n        r = xyz2rtp(10, 20, 30)\n        self.test(xyz2rtp.__name__, fstr(r, prec=3), '37.417, 36.699, 63.435', nl=1)\n        self.test(xyz2rtp.__name__, type(r), RadiusThetaPhi3Tuple)\n        t = rtp2xyz(*r)\n        self.test(rtp2xyz.__name__, fstr(t, prec=2), '10.0, 20.0, 30.0')\n        self.test(rtp2xyz.__name__, type(t), Vector3Tuple)\n        c = r.toCartesian(name='Test', Cartesian=Cartesian)\n        t = c.toRepr()  # coverage\n        self.test(r.toCartesian.__name__, t, t)\n        t = repr(c.toRtp())  # coverage\n        self.test(c.toRtp.__name__, t, t)\n\n        d = XyzLocal(0, 1, 2)\n        t = c.destinationXyz(d, name='Tuple').toRepr()\n        self.test(c.destinationXyz.__name__, t, t, nl=1)\n        t = c.destinationXyz(d, Cartesian=Cartesian, name='Cart').toRepr()\n        self.test(c.destinationXyz.__name__, t, t)\n\n        # <https://GitHub.com/paarnes/pygeodetics> geodetics/ECEF2enu.py\n        c = Cartesian(12738186.63827794, -15447555.301322976, 10385003.518329535)\n        if c.isEllipsoidal:\n            t = Ltp(59.90707247427837, 10.754482924017791)\n            self.test('c.toEnu', c.toEnu(ltp=t), '[-17553188.505, -3108016.462, 7452592.104]', nl=1)\n            e = c.toEcef()\n            self.test('e.toEnu', e.toEnu(ltp=t), '[-17553188.505, -3108016.462, 7452592.104]')\n\n    def testReturnType(self, inst, clas, name):\n        self.test(name, type(inst), clas)  # type(inst).__name__ == clas.__name__\n\n\nif __name__ == '__main__':\n\n    from pygeodesy import ellipsoidalExact, ellipsoidalNvector, ellipsoidalVincenty, \\\n                          sphericalNvector, sphericalTrigonometry\n\n    t = Tests(__file__, __version__)\n\n    t.testCartesian(sphericalNvector, Sph=True, Nv=True)\n    t.testCartesian(sphericalTrigonometry, Sph=True)\n\n    t.testCartesian(ellipsoidalNvector, Nv=True)\n    t.testCartesian(ellipsoidalVincenty)\n\n    if geographiclib:\n        from pygeodesy import ellipsoidalKarney\n        t.testCartesian(ellipsoidalKarney)\n\n    if GeodSolve:\n        from pygeodesy import ellipsoidalGeodSolve\n        t.testCartesian(ellipsoidalGeodSolve)\n\n    t.testCartesian(ellipsoidalExact, X=True)\n\n    t.results()\n    t.exit()\n"
  },
  {
    "path": "test/testClasses.py",
    "content": "\n# -*- coding: utf-8 -*-\n\n# Test class attributes and mro's, especially since\n# the class hierarchy is non-trivial for certain\n# classes, like LatLon.\n\n__all__ = ('Tests',)\n__version__ = '24.07.29'\n\nfrom bases import GeodSolve, TestsBase, type2str\n\nfrom pygeodesy import itemsorted, Geodesic, GeodesicLine, \\\n                      Geohashed, Property, Property_RO, \\\n                      property_RO, property_ROnce, property_ROver, \\\n                      SciPyWarning, Str_\n\nfrom inspect import isclass\nfrom os.path import basename\n\n_No_Copy_OK = set((Geodesic, GeodesicLine,  # fail in python2\n                   Geohashed, Property, Property_RO,\n                   property_RO, property_ROnce, property_ROver,\n                   SciPyWarning, Str_))\n\n\nclass Tests(TestsBase):\n\n    def _subtitle(self, classname, testing, unused):\n        # can't overload method TestsBase.subtitle\n        self.printf('test%s%s(%s)', classname, testing, __version__, nl=1)\n\n    def testAttrs(self, classname, modules, *args, **kwds):\n        self._subtitle(classname, 'Attrs', modules)\n        attrs = {}\n        for m in modules:\n            C = getattr(m, classname, None)\n            if C:\n                i = C(*args, **kwds)\n                n = basename(m.__name__)\n                for a in dir(i):\n                    if not a.startswith('_'):\n                        a += type2str(C, a)\n                        attrs[a] = attrs.get(a, ()) + (n,)\n        for a, m in itemsorted(attrs):\n            m = ', '.join(sorted(m))\n            self.test(a, m, m)  # passes always\n\n    def testMro(self, classname, modules):\n        self._subtitle(classname, 'Mro', modules)\n        for m in modules:\n            C = getattr(m, classname, None)\n            if C:\n                c = ', '.join(str(c)[8:-2] for c in C.mro()[:-1])\n                self.test(m.__name__, c, c)  # passes always\n\n    def testCartesianAttrs(self, *modules):\n        self.testAttrs('Cartesian', modules, 0, 0, 0)\n        self.testMro(  'Cartesian', modules)\n\n    def testCopyAttr(self, package):\n        self._subtitle('Copy', 'Attr', package)\n        for a in sorted(package.__all__):\n            C = getattr(package, a)\n            if isclass(C) and not (C in _No_Copy_OK or a.endswith('Error')):\n                c = getattr(C, 'copy', None) or getattr(C, 'fcopy', None)\n                t = 'copy' if callable(c) else 'missing'\n                self.test(C.__name__, t, 'copy')\n\n    def testLatLonAttrs(self, *modules):\n        self.testAttrs('LatLon', modules, 0, 0)\n        self.testMro(  'LatLon', modules)\n\n    def testVectorAttrs(self, *modules):\n        self.testAttrs('Nvector', modules, 0, 0, 0, h=0)\n        self.testMro(  'Nvector', modules)\n        self.testAttrs('Vector3d', modules, 0, 0, 0)\n        self.testMro(  'Vector3d', modules)\n\n\nif __name__ == '__main__':\n\n    from pygeodesy import ellipsoidalExact, ellipsoidalKarney, \\\n                          ellipsoidalNvector, ellipsoidalVincenty, \\\n                          sphericalNvector, sphericalTrigonometry, \\\n                          vector3d, nvectorBase  # DEPRECATED nvector\n\n    t = Tests(__file__, __version__)\n\n    ms = (sphericalNvector, sphericalTrigonometry,\n          ellipsoidalNvector, ellipsoidalVincenty,\n          ellipsoidalKarney, ellipsoidalExact)\n\n    if GeodSolve:\n        from pygeodesy import ellipsoidalGeodSolve\n        ms += (ellipsoidalGeodSolve,)\n\n    # check Cartesian attributes and mro's\n    t.testCartesianAttrs(*ms)\n\n    # check LatLon attributes and mro's\n    t.testLatLonAttrs(*ms)\n\n    # check vector attributes and mro's\n    t.testVectorAttrs(nvectorBase, vector3d, *ms)  # DEPRECATED nvector\n\n    import pygeodesy  # PYCHOK re-import\n    t.testCopyAttr(pygeodesy)\n\n    t.results()\n    t.exit()\n"
  },
  {
    "path": "test/testClipy.py",
    "content": "\n# -*- coding: utf-8 -*-\n\n# Test L{clipy} module.\n\n__all__ = ('Tests',)\n__version__ = '23.03.27'\n\nfrom bases import TestsBase\n\nfrom pygeodesy import F_D, F__F_, boundsOf, clipCS4, \\\n               ClipError, clipFHP4, ClipFHP4Tuple, \\\n               clipGH4, clipLB6, clipSH, clipSH3\n\n\ndef _lles3(*lles):\n    ll1, _ = lles[-1]\n    for ll2, e in lles:\n        yield ll1, ll2, e\n        ll1 = ll2\n\n\ndef _llsTrue3(lls):\n    ll1 = lls[-1]\n    for ll2 in lls:\n        yield ll1, ll2, True\n        ll1 = ll2\n\n\ndef _4Ts(*cs):\n    for i, c in enumerate(cs):\n        for xy in c.split(','):  # _COMMA_\n            x, y = map(int, xy.strip().split())\n            yield ClipFHP4Tuple(y, x, 0, i)\n\n\nclass Tests(TestsBase):\n\n    def testClipy(self, module):  # MCCABE 15\n\n        self.subtitle(module)\n        LatLon = module.LatLon\n\n        # <https://www.CS.Helsinki.Fi/group/goa/viewing/leikkaus/example1.html>\n        ll, ur = LatLon(0, 0), LatLon(10, 10)\n        ps = LatLon(3, -5), LatLon(5, 5), LatLon(5, 5), LatLon(9, 15)\n        t = tuple(clipCS4(ps, ll, ur, closed=True, inull=True))\n        p1, p2, i, j = t[0]  # closing edge\n        self.test('clipCS4.p1', p1, '07.5°N, 010.0°E')\n        self.test('clipCS4.p2', p2, '04.5°N, 000.0°E')\n        self.test('clipCS4.i', i, 3)\n        self.test('clipCS4.j', j, 0)\n        p1, p2, i, j = t[2]  # only null edge\n        self.test('clipCS4.p1', p1, '05.0°N, 005.0°E')\n        self.test('clipCS4.p2', p2, '05.0°N, 005.0°E')\n        self.test('clipCS4.i', i, 1)\n        self.test('clipCS4.j', j, 2)\n\n        t = tuple(clipLB6(ps, ll, ur, closed=True, inull=True))\n        p1, p2, i, fi, fj, j = t[0]  # closing edge\n        self.test('clipLB6.p1', p1, '07.5°N, 010.0°E')\n        self.test('clipLB6.p2', p2, '04.5°N, 000.0°E')\n        self.test('clipLB6.i',   i, 3)\n        self.test('clipLB6.fi', fi, 3.25, prec=2)\n        self.test('clipLB6.fi', fi.fractional(ps, LatLon=LatLon), p1)\n        self.test('clipLB6.fj', fj, 3.75, prec=2)\n        self.test('clipLB6.fj', fj.fractional(ps, LatLon=LatLon), p2)\n        self.test('clipLB6.j',   j, 0)\n        self.test('clipLB6.fin', fi.fin, 4)\n        p1, p2, i, fi, fj, j = t[2]  # only null edge\n        self.test('clipLB6.p1', p1, '05.0°N, 005.0°E')\n        self.test('clipLB6.p2', p2, '05.0°N, 005.0°E')\n        self.test('clipLB6.i',   i, 1)\n        self.test('clipLB6.fi', fi, 1.00, prec=2)\n        self.test('clipLB6.fi', fi.fractional(ps, LatLon=LatLon), p1)\n        self.test('clipLB6.fj', fj, 2.00, prec=2)\n        self.test('clipLB6.fj', fj.fractional(ps, LatLon=LatLon), p2)\n        self.test('clipLB6.j',   j, 2)\n        self.test('clipLB6.fin', fi.fin, 4)\n\n        ll, ur = LatLon(60, 70), LatLon(70, 130)\n        ps = LatLon(20, 30), LatLon(80, 170)\n        for p1, p2, i, j in clipCS4(ps, ll, ur):\n            self.test('clipCS4.p1', p1, '60.0°N, 123.333333°E')\n            self.test('clipCS4.p2', p2, '62.857143°N, 130.0°E')\n            self.test('clipCS4.i', i, 0)\n            self.test('clipCS4.j', j, 1)\n\n        for p1, p2, i, fi, fj, j in clipLB6(ps, ll, ur):\n            self.test('clipLB6.p1', p1, '60.0°N, 123.333333°E')\n            self.test('clipLB6.p2', p2, '62.857143°N, 130.0°E')\n            self.test('clipLB6.i',   i, 0)\n            self.test('clipLB6.fi', fi, 0.666667, prec=6)\n            self.test('clipLB6.fi', fi.fractional(ps, LatLon=LatLon), p1)\n            self.test('clipLB6.fj', fj, 0.714286, prec=6)\n            self.test('clipLB6.fj', fj.fractional(ps, LatLon=LatLon), p2)\n            self.test('clipLB6.j',   j, 1)\n            self.test('clipLB6.fin', fi.fin, 0)\n\n        ll, ur = LatLon(15, 15), LatLon(20, 20)\n        ps = LatLon(15, 10), LatLon(25, 20), LatLon(20, 30)\n        for p1, p2, i, j in clipCS4(ps, ll, ur, closed=True, inull=False):\n            self.test('clipCS4.p1', p1, '17.5°N, 020.0°E')\n            self.test('clipCS4.p2', p2, '16.25°N, 015.0°E')\n            self.test('clipCS4.i', i, 2)  # closing edge\n            self.test('clipCS4.j', j, 0)\n\n        for p1, p2, i, fi, fj, j in clipLB6(ps, ll, ur, closed=True, inull=False):\n            self.test('clipLB6.p1', p1, '17.5°N, 020.0°E')\n            self.test('clipLB6.p2', p2, '16.25°N, 015.0°E')\n            self.test('clipLB6.i',   i, 2)  # closing edge\n            self.test('clipLB6.fi', fi, 2.500, prec=3)  # closing edge\n            self.test('clipLB6.fi', fi.fractional(ps, LatLon=LatLon), p1)\n            self.test('clipLB6.fj', fj, 2.750, prec=3)  # closing edge\n            self.test('clipLB6.fj', fj.fractional(ps, LatLon=LatLon), p2)\n            self.test('clipLB6.j',   j, 0)  # closing edge\n            self.test('clipLB6.fin', fi.fin, 3)\n\n        # ps = LatLon(15, 10), LatLon(25, 20), LatLon(20, 30)\n        sh = tuple(clipSH(ps, (ll, ur)))\n        self.testClipSH_('clipSH1.', sh, [LatLon(20, 20), LatLon(17.5, 20), LatLon(16.25, 15), LatLon(20, 15)])\n\n        # ps = LatLon(15, 10), LatLon(25, 20), LatLon(20, 30)\n        cs = LatLon(30, 10), LatLon(30, 30), LatLon(10, 20)\n        for r in ('', 'reversed.'):\n            sh = tuple(clipSH(ps, cs, closed=False))\n            self.testClipSH_('clipSH2.' + r, sh, [LatLon(18.571, 24.286), LatLon(16.667, 16.667), LatLon(20, 15), LatLon(25, 20), LatLon(22, 26)])\n            cs = tuple(reversed(cs))\n\n            # ps = LatLon(15, 10), LatLon(25, 20), LatLon(20, 30)\n            # cs = LatLon(30, 10), LatLon(30, 30), LatLon(10, 20)\n            sh = clipSH3(ps, cs, closed=True)\n            for r3, x3 in zip(sh, _lles3((LatLon(16.667, 16.667), True),\n                                         (LatLon(20, 15), False),\n                                         (LatLon(25, 20), True),\n                                         (LatLon(22, 26), True),\n                                         (LatLon(18.571, 24.286), False))):\n                self.testClipSH_('clipSH3.' + r, r3[:2], x3[:2])\n                self.test('clipSH3.edge.' + r, r3[2], x3[2])\n\n        # ps = LatLon(15, 10), LatLon(25, 20), LatLon(20, 30)\n        cs = LatLon(30, -10), LatLon(30, -30), LatLon(10, -20)  # all outside\n        for r in ('', '.reversed'):\n            sh = tuple(clipSH(ps, cs, closed=True))\n            self.test('clipSH.allout' + r, sh, ())\n            sh = tuple(clipSH3(ps, cs, closed=True))\n            self.test('clipSH3.allout' + r, sh, ())\n            cs = tuple(reversed(cs))\n\n        # ps = LatLon(15, 10), LatLon(25, 20), LatLon(20, 30)\n        cs = LatLon(15, 10), LatLon(30, 10), LatLon(30, 30), LatLon(15, 30)  # all inside\n        for r in ('', 'reversed.'):\n            sh = tuple(clipSH(ps, cs, closed=True))\n            self.testClipSH_('clipSH.allin.' + r, sh, (ps[-1],) + ps)  # close ps\n            sh = tuple(clipSH3(ps, cs, closed=False))\n            for r3, x3 in zip(sh, _llsTrue3(ps)):\n                self.testClipSH_('clipSH3.allin.' + r, r3[:2], x3[:2])\n                self.test('clipSH3.edge.' + r, r3[2], x3[2])\n            cs = tuple(reversed(cs))\n\n        # ps = LatLon(15, 10), LatLon(25, 20), LatLon(20, 30)\n        cs = LatLon(10, 10), LatLon(20, 20), LatLon(10, 20), LatLon(20, 10)  # warped\n        for r in ('', 'reversed.'):\n            try:\n                # use list to force exception, see\n                # <https://RickardLindberg.me/writing/bitten-by-python-generators>\n                sh = list(clipSH(ps, cs))\n                t = ClipError.__name__\n            except ClipError as x:\n                t = sh = str(x)  # .split(':')[0]\n            self.test('clipSH.warped' + r, sh, t)\n            try:\n                # use list to force exception, see\n                # <https://RickardLindberg.me/writing/bitten-by-python-generators>\n                sh = list(clipSH3(ps, cs))\n                t = ClipError.__name__\n            except ClipError as x:\n                t = sh = str(x)  # .split(':')[0]\n            self.test('clipSH3.warped' + r, sh, t)\n            cs = tuple(reversed(cs))\n\n        cs = boundsOf(cs)\n        ps = boundsOf(ps)\n        self.test(boundsOf.__name__, cs, '(10.0, 10.0, 20.0, 20.0)')\n        self.test(boundsOf.__name__, ps, '(15.0, 10.0, 25.0, 30.0)')\n        self.test('enclosures', cs.enclosures(ps), '(5.0, 0.0, -5.0, -10.0)')\n        self.test('overlap', cs.overlap(ps), '(15.0, 10.0, 20.0, 20.0)')\n\n        i = 3  # <https://GitHub.com/mdabdk/sutherland-hodgman>\n        for ps, cs, x in (([(-1,  1), ( 1, 1), (1, -1), (-1, -1)], [(0, 0), (0, 2), (2, 2), (2, 0)],\n                                                                   '0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 0.0'),\n                          ([(-1, -1), (-1, 1), (1,  1), ( 1, -1)], [(2, 0), (0, 0), (0, 2), (2, 2)],\n                                                                   '0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 0.0'),\n                          ([(0, 0), (2, 1), (2, 0)],               [(1, 0.5), (3, 1.5), (3, 0.5)],\n                                                                   '1.0, 0.5, 2.0, 1.0, 2.0, 0.5'),\n                          ([(0, 3), (0.5, 0.5), (3, 0), (0.5, -0.5), (0, -3), (-0.5, -0.5), (-3, 0), (-0.5, 0.5)],\n                                                                   [(-2, -2), (-2, 2), (2, 2), (2, -2)],\n                                                                   '-0.2, 2.0, 0.2, 2.0, 0.5, 0.5, 2.0, 0.2, 2.0, -0.2, 0.5, -0.5, 0.2, -2.0, -0.2, -2.0, -0.5, -0.5, -2.0, -0.2, -2.0, 0.2, -0.5, 0.5'),\n                          ([(0, 3), (0.5, 0.5), (3, 0), (0.5, -0.5), (0, -3), (-0.5, -0.5), (-3, 0), (-0.5, 0.5)],\n                                                                   [(0, 2), (2, -2), (-2, -2)],\n                                                                   '-0.33, 1.33, 0.0, 2.0, 0.33, 1.33, 0.5, 0.5, 0.78, 0.44, 1.18, -0.36, 0.5, -0.5, 0.2, -2.0, -0.2, -2.0, -0.5, -0.5, -1.18, -0.36, -0.78, 0.44, -0.5, 0.5'),\n                          ([(86, -174), (86, -173), (75, -82), (73, -65), (77, -30)],\n                                                                   [(28, -95), (28, -94), (29, -94), (29, -95)],  # CCW\n                                                                   None),  # courtesy of U{christophelebrun<https://GitHub.com/mrJean1/PyGeodesy/issues/61>}\n                          ([(86, -174), (86, -173), (75, -82), (73, -65), (77, -30)],\n                                                                   [(29, -95), (29, -94), (28, -94), (28, -95)],  # CW\n                                                                   None),  # courtesy of U{christophelebrun<https://GitHub.com/mrJean1/PyGeodesy/issues/61>}\n                          ([(28, -95), (28, -94), (29, -94)],      [(30, -94), (29, -95), (30, -95)], None),\n                          ([(30, -94), (29, -95), (30, -95)],      [(28, -95), (28, -94), (29, -94)], None)):\n            sh = clipSH((LatLon(*ll) for ll in ps),\n                        (LatLon(*ll) for ll in cs))\n            sh = ', '.join(ll.toStr(form=F__F_, prec=2) for ll in sh) or None\n            i += 1\n            self.test('clipSH' + str(i), sh, x)\n\n        p = LatLon(0, 0, height=1.),  LatLon(7, 5, height=2.), LatLon(0, 10, height=3.)  # (0, 0)\n        q = LatLon(10, 0, height=1.), LatLon(3, 5, height=2.), LatLon(10, 10, height=3.)  # (5, 0)\n\n        r = clipGH4(p, q, raiser=True)\n        self.test(clipGH4.__name__, tuple(r), '(ClipGH4Tuple(lat=5.0, lon=3.571429, height=1.714286, clipid=0), ClipGH4Tuple(lat=7.0, lon=5.0, height=2.0, clipid=0), ClipGH4Tuple(lat=5.0, lon=6.428571, height=2.285714, clipid=0), ClipGH4Tuple(lat=3.0, lon=5.0, height=2.0, clipid=0))', nl=1)\n\n        r = clipFHP4(p, q)\n        self.test(clipFHP4.__name__, tuple(r), '(ClipFHP4Tuple(lat=7.0, lon=5.0, height=2.0, clipid=0), ClipFHP4Tuple(lat=5.0, lon=6.428571, height=2.285714, clipid=0), ClipFHP4Tuple(lat=3.0, lon=5.0, height=2.0, clipid=0), ClipFHP4Tuple(lat=5.0, lon=3.571429, height=1.714286, clipid=0))', nl=1)\n\n        # see <https://www.sciencedirect.com/science/article/pii/S259014861930007X?via%3Dihub>, Figs <https://ars.els-cdn.com/content/image/1-s2.0-S259014861930007X-mmc1.zip>\n        p = LatLon(0, 0), LatLon(4, 2), LatLon(8, 2), LatLon(6, 7), LatLon(8, 10), LatLon(4, 12), LatLon(1, 12), LatLon(-2, 15), LatLon(0, 9)  # Fig 8\n        q = LatLon(6, 12), LatLon(6, 3), LatLon(2, 1), LatLon(-1,4), LatLon(3, 8), LatLon(-1, 12)\n        r = clipFHP4(p, q)\n        self.test('Fig 8', tuple(r), '(ClipFHP4Tuple(lat=4.0, lon=12.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=-1.0, lon=12.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=3.0, lon=8.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=5.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=3.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=2.0, lon=1.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=6.0, lon=3.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=6.0, lon=11.0, height=0.0, clipid=0))', nl=1)\n\n        p = LatLon(0, 0), LatLon(0, 6), LatLon(3, 3), LatLon(6, 6), LatLon(9, 3), LatLon(11, 1), LatLon(13, 3), LatLon(13, 0)  # Fig 14\n        q = LatLon(0, 0), LatLon(3, 3), LatLon(6, 0), LatLon(9, 3), LatLon(11, 5), LatLon(13, 3), LatLon(13, 6), LatLon(0, 6)\n        r = clipFHP4(p, q)\n        self.test('Fig 14', tuple(r), '(ClipFHP4Tuple(lat=3.0, lon=3.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=0.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=6.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=6.0, lon=6.0, height=0.0, clipid=1), ClipFHP4Tuple(lat=9.0, lon=3.0, height=0.0, clipid=1), ClipFHP4Tuple(lat=6.0, lon=0.0, height=0.0, clipid=1), ClipFHP4Tuple(lat=3.0, lon=3.0, height=0.0, clipid=1))')\n\n        p = LatLon(0, 0), LatLon(0, 4), LatLon(2, 4), LatLon(1, 3), LatLon(1, 1), LatLon(2, 0)  # Fig 15\n        q = LatLon(0, 4), LatLon(1, 3), LatLon(1, 1), LatLon(0, 0), LatLon(2, 0), LatLon(2, 4)\n        r = clipFHP4(p, q)\n        self.test('Fig 15', tuple(r), '(ClipFHP4Tuple(lat=1.0, lon=3.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=4.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=2.0, lon=4.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=2.0, lon=0.0, height=0.0, clipid=1), ClipFHP4Tuple(lat=0.0, lon=0.0, height=0.0, clipid=1), ClipFHP4Tuple(lat=1.0, lon=1.0, height=0.0, clipid=1))')\n\n        p = LatLon(0, 0), LatLon(0, 4), LatLon(4, 4), LatLon(4, 0)  # Fig 16\n        q = LatLon(2, 2), LatLon(0, 2), LatLon(0, 6), LatLon(-2, 6), LatLon(-2, -2), LatLon(0, -2)\n        r = clipFHP4(p, q)\n        self.test('Fig 16', tuple(r), '(ClipFHP4Tuple(lat=0.0, lon=0.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=1.0, lon=0.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=2.0, lon=2.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=2.0, height=0.0, clipid=0))')\n\n        p = _4Ts('-10 -10, 10 -10, 10 10, -10 10',  # Fig 18\n                 '-8 -8, 8 -8, 8 8, -8 8',\n                 '-6 6, -6 -6, 6 -6, 6 6',\n                 '4 4, 4 -4, -4 -4, -4 4',\n                 '20 -8, 20 8, 12 8, 12 -8',\n                 '14 -6, 14 6, 18 6, 18 -6')\n        q = _4Ts('-2 -2, -2 -12, -12 -12, -12 -2',\n                 '0 0, -14 0, -14 -14, 0 -14',\n                 '2 2, -16 2, -16 -16, 2 -16',\n                 '-4 4, -18 4, -18 18, -4 18',\n                 '-6 6, -16 6, -16 16, -6 16',\n                 '-8 8, -14 8, -14 14, -8 14',\n                 '-10 10, -12 10, -12 12, -10 12',\n                 '6 -8, 6 8, 20 8, 20 -8',\n                 '8 -6, 8 6, 18 6, 18 -6',\n                 '16 -4, 16 4, 10 4, 10 -4')\n        r = clipFHP4(p, q)\n        t = tuple((int(x), int(y), clipid) for y, x, _, clipid in r)\n        self.test('Fig 18', t, ' '.join('''((-10, -10, 0), (-10, -2, 0), (-8, -2, 0), (-8, -8, 0), (-2, -8, 0), (-2, -10, 0),\n                                            (2, -10, 1), (2, -8, 1), (0, -8, 1), (0, -10, 1),\n                                            (10, -6, 2), (8, -6, 2), (8, -8, 2), (10, -8, 2),\n                                            (10, 8, 3), (8, 8, 3), (8, 6, 3), (10, 6, 3),\n                                            (-6, 10, 4), (-6, 8, 4), (-4, 8, 4), (-4, 10, 4),\n                                            (-10, 10, 5), (-10, 8, 5), (-8, 8, 5), (-8, 10, 5),\n                                            (-10, 4, 6), (-8, 4, 6), (-8, 6, 6), (-10, 6, 6),\n                                            (-10, 0, 7), (-8, 0, 7), (-8, 2, 7), (-10, 2, 7),\n                                            (-6, 6, 8), (-4, 6, 8), (-4, 4, 8), (-6, 4, 8),\n                                            (-6, 0, 9), (-4, 0, 9), (-4, 2, 9), (-6, 2, 9),\n                                            (-6, -6, 10), (-2, -6, 10), (-2, -4, 10), (-4, -4, 10), (-4, -2, 10), (-6, -2, 10),\n                                            (2, -6, 11), (2, -4, 11), (0, -4, 11), (0, -6, 11),\n                                            (12, 8, 12), (20, 8, 12), (20, -8, 12), (12, -8, 12), (12, -6, 12), (18, -6, 12), (18, 6, 12), (12, 6, 12),\n                                            (12, -4, 13), (14, -4, 13), (14, 4, 13), (12, 4, 13))'''.split()))\n\n    def testClipSH_(self, text, sh, lls):\n        self.test(text + 'len', len(sh), len(lls))\n        for i, (r, x) in enumerate(zip(sh, lls)):\n            self.test(text + str(i), r.toStr(F_D, prec=3), x.toStr(F_D))\n            self.test(text + 'LL', isinstance(r, type(x)), True)\n\n\nif __name__ == '__main__':\n\n    from pygeodesy import ellipsoidalNvector, ellipsoidalVincenty, \\\n                          sphericalNvector, sphericalTrigonometry\n\n    t = Tests(__file__, __version__)\n    t.testClipy(ellipsoidalNvector)\n    t.testClipy(ellipsoidalVincenty)\n    t.testClipy(sphericalNvector)\n    t.testClipy(sphericalTrigonometry)\n    t.results()\n    t.exit()\n"
  },
  {
    "path": "test/testConstants.py",
    "content": "\n# -*- coding: utf-8 -*-\n\n# Test L{constants} module.\n\n__all__ = ('Tests',)\n__version__ = '25.10.15'\n\nfrom bases import isPyPy, TestsBase\n\nfrom pygeodesy import Float, Int, Radius, basics, constants, interns, \\\n                      float_, floats_, isinf, isint0, isnan, \\\n                      EPS, EPS0, EPS02, EPS1, EPS2, EPS_2, EPS4, \\\n                      INF, INT0, NAN, NEG0, NINF\n\n\nclass Tests(TestsBase):\n\n    def testConstants(self):\n\n        _all    = set(constants.__all__)\n        _DOT_   = interns._DOT_\n        _UNDER_ = interns._UNDER_\n        _off90  = constants._off90\n        _0_0    = constants._0_0\n        _0_0s   = constants._0_0s\n\n        for n in sorted(dir(constants), key=str.lower):\n            v = getattr(constants, n, None)\n            if isinstance(v, (Float, Int, Radius)):\n                r = v.toRepr(std=False)\n                self.test(n, r, r, nl=1)\n                self.test(n, v.name, n)\n                if not isPyPy:\n                    self.test(n, v.name is n, True)\n                if not n.startswith(_UNDER_):\n                    self.test(n, n in _all, True)\n            elif isinstance(v, float):\n                a = n.strip(_UNDER_).replace(_UNDER_, _DOT_)\n                self.test(n, v, a, known=n.startswith(_UNDER_))\n\n        self.test('EPS',        EPS  > 0, True, nl=1)\n        self.test('EPS+1', (1 + EPS) > 1, True)\n        self.test('EPS-1', (1 - EPS) < 1, True)\n\n        self.test('EPS0',  0 < EPS0  < EPS,  True, nl=1)\n        self.test('EPS02', 0 < EPS02 < EPS0, True)\n\n        self.test('EPS_2', 0 < EPS_2 < EPS, True, nl=1)\n        self.test('EPS_2',     EPS_2,  EPS / 2)\n\n        self.test('EPS1',    0 < EPS1  < 1, True, nl=1)\n        self.test('EPS1+1', (1 - EPS1) > 0, True)\n        self.test('EPS1-1', (EPS1 - 1) < 0, True)\n\n        self.test('EPS2', EPS2 > EPS, True, nl=1)\n        self.test('EPS2', EPS2,  EPS  * 2)\n\n        self.test('EPS4', EPS4 > EPS2, True, nl=1)\n        self.test('EPS4', EPS4,  EPS2 * 2)\n\n        self.test('INF',  isinf(INF),  True, nl=1)\n        self.test('INF',  INF == NINF, False)\n        self.test('NINF', isinf(NINF), True)\n        self.test('NINF',       NINF, -INF)\n\n        self.test('INT0',        INT0,  '0', nl=1)\n        self.test('INT0', isint0(INT0),  True)\n        self.test('INT0', isint0(0),     True)\n        self.test('INT0', isint0(0.0),   False)\n        self.test('INT0', isint0(True),  False)\n        self.test('INT0', isint0(False), False)\n\n        self.test('NAN',  isnan(NAN),  True, nl=1)\n        self.test('NAN',  NAN == INF,  False)\n        self.test('NAN',  NAN == NINF, False)\n\n        self.test('NEG0',       NEG0,  '-0.0', nl=1)\n        self.test('NEG0',  0 == NEG0,   True)\n        self.test('NEG0',  bool(NEG0),  False)\n        self.test('NEG0',   abs(NEG0), '0.0')\n\n        self.test(_off90.__name__, _off90(90) < 90, True, nl=1)\n        self.test(_off90.__name__, _off90(90) > 89.999999, True)\n\n        t = float_(3.14, sets=True)\n        self.test(float_.__name__, t is float(3.14), True)\n        t = floats_(1, 2, 3)  # PYCHOK yield\n        self.test(floats_.__name__, tuple(t), '(1.0, 2.0, 3.0)')\n\n        self.test('_0_0', _0_0 is basics._0_0, True, nl=1, nt=1)\n\n        n = _0_0s.__name__\n        for i in (0, 1, 2, 3, 5, 8, 9, 10, 12, 25, 49, 129, 257):\n            t = _0_0s(i)\n            self.test(n, len(t), i)\n            self.test(n, t.count(_0_0), i)\n\n\nif __name__ == '__main__':\n\n    t = Tests(__file__, __version__, constants)\n    t.testConstants()\n    t.results()\n    t.exit()\n"
  },
  {
    "path": "test/testCss.py",
    "content": "\n# -*- coding: utf-8 -*-\n\n# Test L{lcc} module.\n\n__all__ = ('Tests',)\n__version__ = '23.03.27'\n\nfrom bases import GeodSolve, TestsBase, geographiclib\n\nfrom pygeodesy import CassiniSoldner, Css, CSSError, \\\n                      Ellipsoids, fstr, haversine, hypot, toCss\n\n\nclass Tests(TestsBase):\n\n    def testCss(self, LatLons):\n\n        P = CassiniSoldner(48 + 50/60.0, 2 + 20/60.0, name='Paris')\n        self.test(repr(P), P, P)\n        X = P.isExact\n        self.test('Exact', X, X)\n\n        f = P.forward(50.9, 1.8)  # Calais\n        self.test('forward', fstr(f, prec=6), '-37518.854545, 230003.561828')\n        r = P.reverse(*f)\n        self.test('reverse', fstr(r, prec=6), '50.9, 1.8')\n        f = P.forward4(50.9, 1.8)  # Calais\n        self.test('forward4', fstr(f, prec=6), '-37518.854545, 230003.561828, 89.586104, 0.999983')\n        t = P.forward6(50.9, 1.8)  # Calais\n        self.test('equatorarc',     t.equatorarc,     '89.662511', prec=6)\n        self.test('equatorazimuth', t.equatorazimuth, '39.192992', prec=6)\n\n        self.testCopy(P)\n\n        r = P.reverse(-38e3, 230e3)\n        self.test('reverse', fstr(r, prec=6), '50.899937, 1.793161')\n        f = P.forward(*r)\n        self.test('forward', fstr(f, prec=6), '-38000.0, 230000.0')\n        r = P.reverse4(-38e3, 230e3)\n        self.test('reverse4', fstr(r, prec=6), '50.899937, 1.793161, 89.580797, 0.999982')\n\n        for LL in LatLons:\n            r = P.reverse(-38e3, 230e3, LatLon=LL)\n            n = 'reverse(%s)' % (LL.__module__,)\n            self.test(n, repr(r), 'LatLon(50°53′59.77″N, 001°47′35.38″E)')\n\n        G = CassiniSoldner(51.4934, 0.0098, name='Greenwich')\n        self.test(repr(G), G, G)\n        f = G.forward(48 + 50/60.0, 2 + 20/60.0)  # Paris\n        self.test('forward', fstr(f, prec=6), '170557.151692, -293280.6051')\n        r = G.reverse(*f)\n        self.test('reverse', fstr(r, prec=6), '48.833333, 2.333333')\n\n        h = hypot(*f)  # easting + norting ~= distance\n        d = haversine(*(G.latlon0 + r))\n        self.test('hypot', h, d, fmt='%.3f', known=abs(d - h) < 1500)\n\n        C = toCss(LL(50.9, 1.8, height=1), cs0=P, name='Calais')\n        self.test('toCss', C, '-37518.854545 230003.561828 +1.00m')\n        self.test('toCss', C.toRepr(C=True), \"[E:-37518.854545, N:230003.561828, H:+1.00m, name:'Calais', C:CassiniSoldner(48.833333, 2.333333, name='Paris')]\")\n        for a, f, x in (('easting',  '%.6f', '-37518.854545'),\n                        ('northing', '%.6f', '230003.561828'),\n                      # ('latlon',   '%r',   '(50.9, 1.8)'),  # Python 2.6 Ubuntu (50.899999999999999, 1.8)\n                        ('height',   '%.1f', '1.0'),\n                        ('azi',      '%.9f', '89.586103815'),\n                        ('rk',       '%.9f', '0.999982722'),\n                        ('name',     '%s',   'Calais'),\n                        ('cs0',      '%s',   '48.833333 2.333333')):\n            v = getattr(C, a)\n            self.test('Css.'+a, v, x, fmt=f)\n        r = C.toLatLon(LatLon=LL)\n        self.test('Css.'+'toLatLon', repr(r), 'LatLon(50°54′00.0″N, 001°48′00.0″E, +1.00m)')\n        self.test('Css.'+'toLatLon.height', r.height, '1.0')  # Height\n        self.test('Css.'+'toLatLon.name', r.name, 'Calais')\n        self.test('Css.'+'toLatLon.datum.name', r.datum.name, 'WGS84')\n        t = repr(r.height)\n        self.test('Css.'+'toLatLon.height', t, 'height(1.0)', known=t == '1.0')  # Height\n\n        self.testCopy(C)\n\n        self.test('cs0.name', C.cs0.name, 'Paris')\n        c = Css(C.easting, C.northing)  # coverage css._CassiniSoldner\n        self.test('cs0.name',         c.cs0.name, 'Default')\n        self.test('cs0.flattening',   c.cs0.flattening, 0.00335281066475, fmt='%.9f')\n        self.test('cs0.lat0',         c.cs0.lat0, 0.0)  # Lat\n        self.test('cs0.equatoradius', c.cs0.equatoradius, '6378137.0')\n        t = repr(c.cs0.lat0)\n        self.test('cs0.lat0',         t, 'lat(0.0)', known=t == '0.0')  # Lat\n\n        c = C.classof(C.easting, C.northing, h=C.height, cs0=C.cs0)  # coverage Css._reverse4\n        for a, f, x in (('height',   '%.1f', '1.0'),\n                        ('azi',      '%.9f', '89.586103815'),\n                        ('rk',       '%.9f', '0.999982722'),\n                        ('name',     '%s',   'Calais'),\n                        ('cs0',      '%s',   '48.833333 2.333333')):\n            v = getattr(c, a)\n            self.test('classof.'+a, v, x, fmt=f)\n\n        ll0 = c.cs0.latlon0\n        self.test('cs0.latlon0', ll0, '(48.833333, 2.333333)')\n        c.cs0.latlon0 = ll0\n        self.test('cs0.latlon0', c.cs0.latlon0, ll0)\n        try:\n            c.cs0.latlon0 = None\n            self.test('cs0.latlon0', c.cs0.latlon0, CSSError.__name__)\n        except CSSError as x:\n            self.test('cs0.latlon0', str(x), str(x))\n        c.cs0.latlon0 = 48, 2\n        self.test('cs0.latlon0', c.cs0.latlon0, '(48.0, 2.0)')\n\n        C = CassiniSoldner(50.9, 1.8, datum=Ellipsoids.Plessis1817, name='Calais')  # coverage\n        d = C.datum\n        x = C.isExact\n        C.datum = Ellipsoids.WGS84\n        self.test('datum', C.datum != d, True)\n        self.test('datum', C.isExact, x)\n        t = C.forward6(48 + 50/60.0, 2 + 20/60.0).toStr()\n        self.test('forward6', t, '(39142.269011, -229679.266845, 90.401497, 0.999981, 90.352206, 41.257592)', known=True)  # XXX ToDo\n\n\nif __name__ == '__main__':\n\n    from pygeodesy import css, ellipsoidalExact, \\\n                               ellipsoidalNvector, \\\n                               ellipsoidalVincenty\n\n    t = Tests(__file__, __version__, css)\n\n    if geographiclib:\n        from pygeodesy import ellipsoidalKarney\n        lls = (ellipsoidalKarney.LatLon,)\n    else:\n        lls = ()\n    lls += (ellipsoidalExact.LatLon,\n            ellipsoidalNvector.LatLon,\n            ellipsoidalVincenty.LatLon)\n    if GeodSolve:\n        from pygeodesy import ellipsoidalGeodSolve\n        lls += (ellipsoidalGeodSolve.LatLon,)\n\n    try:\n        t.testCss(lls)\n    except ImportError as x:\n        t.skip(str(x), n=51)\n\n    t.results()\n    t.exit()\n"
  },
  {
    "path": "test/testDatums.py",
    "content": "\n# -*- coding: utf-8 -*-\n\n# Test L{datums} and transforms.\n\n__all__ = ('Tests',)\n__version__ = '24.05.17'\n\nfrom bases import TestsBase\n\nfrom pygeodesy import Datum, Datums, Ellipsoid, Ellipsoids, \\\n                      R_M, Transform, Transforms\nfrom pygeodesy.datums import _spherical_datum\n\n\nclass Tests(TestsBase):\n\n    def testDatum(self):\n        # datum module tests\n        E = Ellipsoid(1000, 1000, 0, name='TestEllipsiod')\n        self.test('ellipsoid', E is Ellipsoids.TestEllipsiod, True)\n#       print(Ellipsoid())\n\n        T = Transform(name='TestTransform')\n        self.test('transform', T is Transforms.TestTransform, True)\n#       print(Transform())\n\n        D = Datum(E, T, name='TestDatum')\n        self.test('datum', D is Datums.TestDatum, True)\n#       print(Datum())\n\n        e = Ellipsoids.unregister('TestEllipsiod')\n        self.test(e.name, e, E)\n        t = Transforms.unregister('TestTransform')\n        self.test(t.name, t, T)\n        d = Datums.unregister('TestDatum')\n        self.test(d.name, d, D)\n\n        T = Transforms.ED50\n        t = T.inverse().inverse(name=\"ED50_\")\n        self.test('ED50.inverse().inverse()', t == T, True)\n\n        S = Datums.Sphere\n        self.test(S.name, _spherical_datum(R_M) is S, True)\n\n    def testDatums(self):\n        self.test(all.__name__, Datums.register(all), all.__name__, nl=1)\n        n = 0\n        for _, d in Datums.items(asorted=True):\n            self.test(d.name, d, d, nl=1)\n            e = d.ellipsoid\n            self.test(e.name, e, e)\n            t = d.transform\n            self.test(t.name, t, t)\n            n += 1\n        self.test('total', n, 18, nl=1)\n\n\nif __name__ == '__main__':\n\n    from pygeodesy import datums  # private\n\n    t = Tests(__file__, __version__, datums)\n    t.testDatum()\n    t.testDatums()\n    t.results()\n    t.exit()\n"
  },
  {
    "path": "test/testDeprecated.py",
    "content": "\n# -*- coding: utf-8 -*-\n# ruff: noqa: F403,F405\n\n# Test L{deprecated} classes, functions and methods.\n\n__all__ = ('Tests',)\n__version__ = '25.05.09'\n\nfrom bases import TestsBase\n\nfrom pygeodesy import R_MA, deprecated, isDEPRECATED, map2, unstr, \\\n                      HeightIDWequirectangular, HeightIDWeuclidean, HeightIDWhaversine\ntry:\n    from pygeodesy.deprecated import __star__\n    __star__(__name__)\nexcept ImportError:\n    from pygeodesy.deprecated import *  # PYCHOK expected\nfrom testRoutes import RdpFFI\n\nfrom math import sqrt\n\n\nclass Tests(TestsBase):\n\n    def testDeprecated(self, LatLon):\n\n        ks = tuple(LatLon(k, k, height=k) for k in range(17))\n        c = HeightIDW(ks)  # PYCHOK == HeightIDWeuclidean in Python 3.7+\n        self.test(c.__class__.__name__, isinstance(c, HeightIDWeuclidean), True, nl=1)\n        c = HeightIDW2(ks)  # PYCHOK == HeightIDWequirectangular in Python 3.7+\n        self.test(c.__class__.__name__, isinstance(c, HeightIDWequirectangular), True)\n        c = HeightIDW3(ks)  # PYCHOK == HeightIDWhaversine in Python 3.7+\n        self.test(c.__class__.__name__, isinstance(c, HeightIDWhaversine), True, nt=1)\n        del ks\n\n        p = LatLon(0, 0), LatLon(1, 0), LatLon(0, 1)\n        self.test('areaof', areaof(p, radius=R_MA), '7.086883e+09', fmt='%.6e')  # PYCHOK DEPRECATED\n\n        p = LatLon(85, 90), LatLon(-85, 0), LatLon(85, -90), LatLon(85, -180)\n        b = map2(float, bounds(p))  # PYCHOK DEPRECATED\n        self.test('bounds', b, '(-85.0, -180.0, 85.0, 90.0)')\n\n        self.test('anStr', anStr('a-b?_'), 'a-b__')  # PYCHOK DEPRECATED\n\n        self.test('clipStr', clipStr('test/testBasics.py', limit=12), 'test/t....ics.py')  # PYCHOK DEPRECATED\n\n        self.test('decodeEPSG2', decodeEPSG2(32712), \"(12, 'S')\")  # PYCHOK DEPRECATED\n        self.test('encodeEPSG', encodeEPSG(12, hemipole='S'), '32712')  # PYCHOK DEPRECATED\n\n        t = equirectangular3(0, 2, 3, 4)  # PYCHOK DEPRECATED\n        self.test('equirectangular3', len(t), 3)\n        self.test('equirectangular3', t[0], 12.997, fmt='%.3f')\n\n        self.test('fStr', fStr(0.123, prec=-6), '0.123000')  # PYCHOK DEPRECATED\n        self.test('fStr', fStr(0.123, prec=+6), '0.123')  # PYCHOK DEPRECATED\n        self.test('fStr', fStr((0.123, 456.789), prec=+6), '0.123, 456.789')  # PYCHOK DEPRECATED\n        self.test('fStr', fStr(0.123, prec=-5, fmt='%.*e'), '1.23000e-01')  # PYCHOK DEPRECATED\n        self.test('fStr', fStr(0.123, prec=+5, fmt='%.*e'), '1.23e-01')  # PYCHOK DEPRECATED\n        self.test('fStr', fStr(0.123, prec=+6, fmt='%.*f'), '0.123')  # PYCHOK DEPRECATED\n\n        h = hypot3(3000, 200, 10)  # PYCHOK DEPRECATED\n        s = sqrt(3000**2 + 200**2 + 10**2)\n        self.test('hypot3', h, s, fmt='%.6f')\n\n        b = LatLon(45, 1), LatLon(45, 2), LatLon(46, 2), LatLon(46, 1)\n        self.test('isenclosedby', isenclosedby(LatLon(45.5, 1.5), b), True)  # PYCHOK DEPRECATED\n\n        p = LatLon(45, 2)\n        b = LatLon(45, 1), LatLon(47, 3)\n        t = nearestOn3(p, b, adjust=False)  # PYCHOK DEPRECATED\n        self.test('nearestOn3', len(t), 3)\n        self.test('nearestOn3', t[:2], (45.5, 1.5))\n        t = nearestOn4(p, b, adjust=False)  # PYCHOK DEPRECATED\n        self.test('nearestOn4', len(t), 4)\n        self.test('nearestOn4', t[:2], (45.5, 1.5))\n\n        t = parseUTM('18 N 516620 4574500', Utm=None)  # PYCHOK Milford, PA\n        self.test('parseUTM', t, \"(18, 'N', 516620.0, 4574500.0)\")\n\n        p = LatLon(0, 0), LatLon(1, 0), LatLon(0, 1)\n        self.test('perimeterof', perimeterof(p, radius=R_MA), '2.687460e+05', fmt='%.6e')  # PYCHOK DEPRECATED\n\n        p = LatLon(0, 0), LatLon(1, 0), LatLon(0, 1)\n        self.test('polygon', polygon(p)[0], 3)  # PYCHOK DEPRECATED\n\n        t = simplify2(RdpFFI, 16, adjust=True, shortest=False)  # PYCHOK DEPRECATED\n        self.test('simplify2', len(t), 4)\n\n        t = toUtm('50°52′10″N', '115°39′03″W', Utm=None, name='Mt Assiniboine')  # PYCHOK DEPRECATED\n        self.test('toUtm', len(t), 6)\n\n        t = utmZoneBand2('50°52′10″N', '115°39′03″W')  # PYCHOK DEPRECATED\n        self.test('utmZoneBand2', t, \"(11, 'U')\")\n\n    def testDEPRECATED(self, *known):\n        from pygeodesy.internals import _headof\n        from pygeodesy.interns import _DOT_, _UNDER_\n        from pygeodesy.lazily import _ALL_MODS as _MODS, _ALL_DEPRECATED, _getattras\n\n        for m, t in _ALL_DEPRECATED.items():\n            if _headof(m) == 'deprecated':\n                self.test(m, len(t), len(t), nl=1)\n                m = _MODS.getmodule(m.replace(_UNDER_, _DOT_))\n                for a in t:\n                    a = _getattras(a)  # a_ or a\n                    n =  unstr(isDEPRECATED, a)\n                    try:\n                        v = getattr(m, a)\n                        self.test(n, isDEPRECATED(v), True, known=v in known)\n                    except Exception as x:\n                        self.test(n, str(x), True)\n\n\nif __name__ == '__main__':\n\n    from pygeodesy import LatLon_, ellipsoidalVincenty, sphericalTrigonometry\n\n    t = Tests(__file__, __version__, deprecated)\n    try:\n        t.testDeprecated(LatLon_)\n        t.testDeprecated(ellipsoidalVincenty.LatLon)\n        t.testDeprecated(sphericalTrigonometry.LatLon)\n        t.testDEPRECATED(isDEPRECATED)\n    except DeprecationWarning:\n        t.skip(DeprecationWarning.__name__, n=87 - t.total)\n    t.results()\n    t.exit()\n"
  },
  {
    "path": "test/testDms.py",
    "content": "\n# -*- coding: utf-8 -*-\n\n# Test L{dms} degrees, minutes, seconds functions.\n\n__all__ = ('Tests',)\n__version__ = '23.03.27'\n\nfrom bases import TestsBase\n\nfrom pygeodesy import F_D,   F_DM,   F_DMS,   F_DEG,   F_MIN,   F_SEC,   F_RAD,   F_D60, \\\n                      F_D_,  F_DM_,  F_DMS_,  F_DEG_,  F_MIN_,  F_SEC_,  F_RAD_,  F_D60_, \\\n                      F_D__, F_DM__, F_DMS__, F_DEG__, F_MIN__, F_SEC__, F_RAD__, F_D60__, \\\n                      compassPoint, degDMS, fstr, normDMS, parseDDDMMSS, parseDMS, \\\n                      ParseError, parse3llh, RangeError, rangerrors, toDMS\n\n\nclass Tests(TestsBase):\n\n    def testDms(self):  # MCCABE 14\n        for t in ('0.0°',\n                  '0°',\n              '''000°00'00\"''',\n              '''000°00'00.0\"''',\n              '''000° 00'00\"''',\n              '''000°00 ' 00.0\"''',\n              '''000° 00' 00.0'''):\n            self.test(\"parseDMS('%s')\" % (t,), parseDMS(t), '0.0')\n        t = '000°-00′-00.0\"'\n        self.test(\"parseDMS('%s')\" % (t,), parseDMS(t, sep='-'), '0.0')\n\n        _X = ''\n        for t, X, x in ((1, '1.0', _X),\n                        (12, '12.0', _X),\n                        (123, '123.0', _X),\n                        (1234, '12.567', '1234.0'),\n                        (12345, '123.75', '12345.0'),\n                        (123456, '12.582', '123456.0'),\n                        (1234567, '123.769', '1234567.0'),\n                        (12345678, '1234.955', '12345678.0'),\n                        (.1, 0.1, _X),\n                        (1.2, 1.2, _X),\n                        (12.3, 12.3, _X),\n                        (123.4, 123.4, _X),\n                        (1234.5, 12.575, 1234.5),\n                        (12345.6, 123.76, 12345.6),\n                        (123456.7, 12.582, 123456.7),\n                        ('1N', '1.0', _X),\n                        ('12S', '-12.0', _X),\n                        ('012.3W', '-12.3', _X),\n                        ('123E', '123.0', _X),\n                        ('1234N', '12.567', '1234.0'),\n                        ('12345E', '123.75', '12345.0'),\n                        ('1234.5S', '-12.575', '-1234.5'),\n                        ('12345.6E', '123.76', '12345.6'),\n                        ('123456.7S', '-12.582', '-123456.7'),\n                        ('1234567.8W', '-123.769', '-1234567.8'),\n                        ('12345678E', '12345678.0', _X)):\n            self.test('parseDDDMMSS(%r)' % (t,), fstr(parseDDDMMSS(t), prec=3), X)\n            self.test('parseDMS(%r)' % (t,), fstr(parseDMS(t), prec=3), x or X)\n\n        t = 345.0\n        self.test('parseDDDMMSS(%r, NS)' % (t,), fstr(parseDDDMMSS(t, suffix='NS'), prec=3), '3.75')\n        self.test('parseDDDMMSS(%r, EW)' % (t,), fstr(parseDDDMMSS(t, suffix='EW'), prec=3), '345.0')\n        t = 5430.0\n        self.test('parseDDDMMSS(%r, NS)' % (t,), fstr(parseDDDMMSS(t, suffix='NS'), prec=3), '54.5')\n        self.test('parseDDDMMSS(%r, EW)' % (t,), fstr(parseDDDMMSS(t, suffix='EW'), prec=3), '54.5')\n        t = 76.5432\n        self.test('parseDDDMMSS(%r, sexagecimal=False)' % (t,), fstr(parseDDDMMSS(t, sexagecimal=False), prec=4), '76.5432')\n        self.test('parseDDDMMSS(%r, sexagecimal=True)'  % (t,), fstr(parseDDDMMSS(t, sexagecimal=True),  prec=4), '76.9089')\n        t = toDMS((1. + 2. / 60) / 60, F_D60, prec=0)\n        self.test('parseDDDMMSS(%s, sexagecimal=False)' % (t,), fstr(parseDDDMMSS(t, sexagecimal=False), prec=4), '0.0102')\n        self.test('parseDDDMMSS(%s, sexagecimal=True)'  % (t,), fstr(parseDDDMMSS(t, sexagecimal=True),  prec=4), '0.0172')\n\n        for t, x in (('12E', '12.0'),\n                     ('012.3S', '-12.3'),\n                     ('123N', '123.0'),\n                     ('1234E', '1234.0'),\n                     ('12345N', '12345.0'),\n                     ('1234.5W', '-1234.5'),\n                     ('123456E', '123456.0'),\n                     ('1234567S', '-1234567.0')):\n            try:\n                self.test('parseDDDMMSS(%r)' % (t,), parseDDDMMSS(t), ParseError.__name__)\n            except ParseError as X:\n                self.test('parseDDDMMSS(%r)' % (t,), repr(X), repr(X))\n            self.test('parseDMS(%r)' % (t,), fstr(parseDMS(t), prec=5), x)\n\n        r = rangerrors(True)\n        try:\n            self.test('parseDMS', parseDMS(181, clip=180), RangeError.__name__)\n        except RangeError as x:\n            self.test('parseDMS', str(x), str(x))\n        rangerrors(False)\n        try:\n            self.test('parseDMS', parseDMS(-91, clip=90), -90.0)\n        except RangeError as x:\n            self.test('parseDMS', repr(x), -90.0)\n        rangerrors(r)\n\n        x = parse3llh('000° 00′ 05.31″W, 51° 28′ 40.12″ N')\n        self.test('parse3llh', fstr(x, prec=6), '51.477811, -0.001475, 0.0')\n\n        t = 'toDMS(%s)' % (F_DM,)\n        self.test(t, toDMS(45.99999, F_DM,  prec=1), '46°00.0′')  # not 45°60.0′\n        self.test(t, toDMS(45.99999, F_DM,  prec=2), '46°00.0′')\n        self.test(t, toDMS(45.9999,  F_DM,  prec=2), '45°59.99′')\n        self.test(t, toDMS(45.99999, F_DM,  prec=3), '45°59.999′')\n        t = 'toDMS(%s)' % (F_DMS,)\n        self.test(t, toDMS(45.99999, F_DMS, prec=1), '46°00′00.0″')\n        self.test(t, toDMS(45.99999, F_DMS, prec=2), '45°59′59.96″')\n        self.test(t, toDMS(45.99999, F_DMS, prec=3), '45°59′59.964″')\n        t = 'toDMS(%s)' % (F_D60,)\n        self.test(t, toDMS(45.99999, F_D60, prec=3), '45.5959964')\n\n        self.test(t, toDMS(45.76260),   '45°45′45.36″')\n        x = toDMS(45.76260, s_D='d', s_M=\"m\", s_S='s')\n        self.test(t,  x,              '''45d45m45.36s''')\n        t = normDMS(x, s_D='d', s_M=\"m\", s_S='s')\n        self.test(normDMS.__name__, t, '45°45′45.36″')\n        t = parseDMS(x, s_D='d', s_M=\"m\", s_S='s')\n        self.test(parseDMS.__name__, t, '45.7626')\n\n        for F, p, x in ((F_D,   None,   '45.7626°'),\n                        (F_DM,  None,   \"45°45.756'\"),\n                        (F_DMS, None, '''45°45'45.36\"'''),\n                        (F_DEG, None,   '45.7626'),\n                        (F_MIN, None,   '4545.756'),\n                        (F_SEC, None,   '454545.36'),\n                        (F_RAD, None,   '0.79871'),\n                        (F_D60, None,   '45.4545'),  # prec=0\n\n                        (F_D,    6,   '45.7626°'),\n                        (F_DM,  -4,   \"45°45.7560'\"),\n                        (F_DMS,  2, '''45°45'45.36\"'''),\n                        (F_DEG, -6,   '45.762600'),\n                        (F_MIN, -5,   '4545.75600'),\n                        (F_SEC, -3,   '454545.360'),\n                        (F_RAD, -6,   '0.798708'),\n                        (F_D60, -3,   '45.4545360'),\n\n                        (F_D_,    6,   '45.7626°'),\n                        (F_DM_,  -4,   \"45°45.7560'\"),\n                        (F_DMS_,  2, '''45°45'45.36\"'''),\n                        (F_DEG_, -6,   '45.762600'),\n                        (F_MIN_, -5,   '4545.75600'),\n                        (F_SEC_, -3,   '454545.360'),\n                        (F_RAD_, -6,   '0.798708'),\n                        (F_D60_, -4,   '45.45453600')):\n\n            t = 'toDMS(%s)' % (F,)\n            self.test(t, toDMS( 45.76260, F, prec=p),       x)\n            self.test(t, toDMS(-45.76260, F, prec=p), '-' + x)\n\n        for F, p, x in ((F_D__,    6,   '45.7626°'),\n                        (F_DM__,  -4,   \"45°45.7560'\"),\n                        (F_DMS__,  2, '''45°45'45.36\"'''),\n                        (F_DEG__, -6,   '45.762600'),\n                        (F_MIN__, -5,   '4545.75600'),\n                        (F_SEC__, -3,   '454545.360'),\n                        (F_RAD__, -6,   '0.798708'),\n                        (F_D60__, -2,   '45.454536')):\n            t = 'toDMS(%s)' % (F,)\n            self.test(t, toDMS( 45.76260, F, prec=p), '+' + x)\n            self.test(t, toDMS(-45.76260, F, prec=p), '-' + x)\n\n        # <https://GitHub.com/ChrisVeness/geodesy/blob/master/test/dms-tests.js>\n        for a, x in (((1,),   'N'),\n                     ((0,),   'N'),\n                     ((-1,),  'N'),\n                     ((359,), 'N'),\n                     ((24,),   'NNE'),\n                     ((24, 1), 'N'),\n                     ((24, 2), 'NE'),\n                     ((24, 3), 'NNE'),\n                     ((226,),   'SW'),\n                     ((226, 1), 'W'),\n                     ((226, 2), 'SW'),\n                     ((226, 3), 'SW'),\n                     ((237,),   'WSW'),\n                     ((237, 1), 'W'),\n                     ((237, 2), 'SW'),\n                     ((237, 3), 'WSW'),\n                     # Martin Schultz\n                     ((11.25,), 'NNE'),\n                     ((11.249,), 'N'),\n                     ((-11.25,), 'N'),\n                     ((348.749,), 'NNW'),\n                     ((45, 1), 'E'),\n                     ((44.99, 1), 'N'),\n                     ((45, 2), 'NE'),\n                     ((44.99, 2), 'NE'),\n                     ((45, 3), 'NE'),\n                     ((44.99, 3), 'NE'),\n                     ((45, 4), 'NE'),\n                     ((44.99, 4), 'NE'),  # XXX\n                     ((22.5, 1), 'N'),\n                     ((22.49, 1), 'N'),\n                     ((22.5, 2), 'NE'),\n                     ((22.49, 2), 'N'),\n                     ((22.5, 3), 'NNE'),\n                     ((22.49, 3), 'NNE'),\n                     ((22.5, 4), 'NNE'),\n                     ((22.49, 4), 'NNE'),  # XXX\n                     ((11.25, 1), 'N'),\n                     ((11.249, 1), 'N'),\n                     ((11.25, 2), 'N'),\n                     ((11.249, 2), 'N'),\n                     ((11.25, 3), 'NNE'),\n                     ((11.249, 3), 'N'),\n                     ((11.25, 4), 'NbE'),\n                     ((11.249, 4), 'NbE'),  # XXX\n                     # examples\n                     ((24, 1), 'N'),\n                     ((24, 2), 'NE'),\n                     ((24, 3), 'NNE'),\n                     ((24,),   'NNE'),\n                     ((18, 3), 'NNE'),\n                     ((11, 4), 'NbE'),\n                     ((30, 4), 'NEbN')):\n            self.test('compassPoint%s' % (a,), compassPoint(*a), x)\n\n        for a, x in enumerate(('NbE', 'NEbN', 'NEbE', 'EbN',\n                               'EbS', 'SEbE', 'SEbS', 'SbE',\n                               'SbW', 'SWbS', 'SWbW', 'WbS',\n                               'WbN', 'NWbW', 'NWbN', 'NbW')):\n            a = 11.25 + a * 22.5\n            self.test('compassPoint(%s)' % (a,), compassPoint(a, 4), x)\n\n        t = degDMS(1.0101, prec=5, s_D='', pos='+')  # coverage\n        self.test('_DEG', t, '+1.0101')\n        t = degDMS(0.0101, prec=5, s_S='', pos='+')\n        self.test('_MIN', t, \"+0.606'\")\n        t = degDMS(0.0101, prec=5, s_M='', pos='+')\n        self.test('_SEC', t, '+36.36\"')\n\n\nif __name__ == '__main__':\n\n    from pygeodesy import dms  # private\n\n    t = Tests(__file__, __version__, dms)\n    t.testDms()\n    t.results()\n    t.exit()\n"
  },
  {
    "path": "test/testEcef.py",
    "content": "\n# -*- coding: utf-8 -*-\n\n# Test L{ecef} module.\n\n__all__ = ('Tests',)\n__version__ = '25.08.24'\n\nfrom bases import bits_mach2, GeodSolve, TestsBase, startswith\n\nfrom pygeodesy import Datums, EcefError, EcefFarrell21, EcefFarrell22, EcefKarney, \\\n                      EcefMatrix, EcefSudano, EcefUPC, EcefVeness, EcefYou, Ellipsoids, \\\n                      fstr, latDMS, lonDMS, parse3llh, sphericalNvector  # deprecated.nvector\n\nfrom math import radians\n\n\ndef _known(t, lat, h, d_h=10.0):\n    # if lat is off, so is height\n    return abs(t.lat - lat) < 0.1 and abs(t.height - h) < d_h\n\n\nclass Tests(TestsBase):\n\n    def testEcef(self, Ecef):\n\n        self.test(Ecef.__name__, '...', '...', nl=1)\n\n        Karney    = Ecef is EcefKarney\n        Farrell_2 = Ecef is EcefFarrell22\n        Sudano    = Ecef is EcefSudano\n\n        g = Ecef(Datums.WGS84, name='Test')\n        self.test('name', g.name, 'Test')\n\n        t = g.toRepr()\n        self.test('toStr', t, g.classname, known=True)\n\n        t = Ecef(g.a, g.f, name=g.name)  # coverage\n        self.test('a, f', t, t.classname, known=True)\n\n        self.testCopy(g)\n\n        # <https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Geocentric.html>\n        t = g.forward(27.99, 86.93, 8820)  # Mt Everest\n        self.test('forward', fstr(t[3:6], prec=2), '27.99, 86.93, 8820.0')\n        self.test('forward', fstr(t[0:3], prec=1), '302271.4, 5635928.4, 2979666.1')\n        self.test('name', t.name, 'Test')\n\n        t = g.reverse(302271.4, 5635928.4, 2979666.1)\n        self.test('reverse', fstr(t[0:3], prec=1), '302271.4, 5635928.4, 2979666.1')\n        self.test('reverse', fstr(t[3:6], prec=2), '27.99, 86.93, 8820.01', known=Sudano and _known(t, 27.99, 8820))\n        self.test('case', t.C, 1)\n        self.test('iteration', t.iteration, t.iteration)\n        self.test('name', t.name, 'Test')\n\n        # <https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Geocentric.html>\n        t = g.reverse(302e3, 5636e3, 2980e3)\n        self.test('reverse', fstr(t[0:3], prec=1), '302000.0, 5636000.0, 2980000.0')\n        self.test('reverse', fstr(t[3:6], prec=2), '27.99, 86.93, 9027.03', known=Sudano and _known(t, 27.99, 9027))\n        self.test('case', t.C, 1)\n        self.test('iteration', t.iteration, t.iteration)\n\n        t = g.forward(27.99, 86.93, 8820.0)\n        self.test('forward', fstr(t[3:6], prec=2), '27.99, 86.93, 8820.0')\n        self.test('forward', fstr(t[0:3], prec=2), '302271.43, 5635928.37, 2979666.13')\n\n        # <https://GeographicLib.SourceForge.io/C++/doc/CartConvert.1.html>\n        t = g.forward(33.3, 44.4, 6000)\n        self.test('forward', fstr(t[3:6], prec=2), '33.3, 44.4, 6000.0')\n        self.test('forward', fstr(t[0:3], prec=2), '3816209.6, 3737108.55, 3485109.57')\n\n        t = g.reverse(3816209.6, 3737108.55, 3485109.57)\n        self.test('reverse', fstr(t[0:3], prec=2), '3816209.6, 3737108.55, 3485109.57')\n        self.test('reverse', fstr(t[3:6], prec=3), '33.3, 44.4, 5999.996', known=Sudano and _known(t, 33.3, 5999))\n        self.test('case', t.C, 1)\n        self.test('iteration', t.iteration, t.iteration)\n\n        # <https://GeographicLib.SourceForge.io/C++/doc/CartConvert.1.html>\n        t = g.reverse(30000, 30000, 0)\n        self.test('reverse', fstr(t[0:3], prec=1), '30000.0, 30000.0, 0.0')\n        self.test('reverse', fstr(t[3:6], prec=3), '6.483, 45.0, -6335709.726', known=not Karney)\n        self.test('case', t.C, 3)\n        self.test('iteration', t.iteration, t.iteration)\n\n        t = g.forward(6.483, 45.0, -6335709.726)\n        self.test('forward', fstr(t[3:6], prec=3), '6.483, 45.0, -6335709.726')\n        self.test('forward', fstr(t[0:3], prec=1), '30000.0, 30000.0, -0.0', known=True)\n\n        # <https://Search.ProQuest.com/docview/847292978> pp 113-114\n        t = g.reverse(-2578.0e3, -504.9e3, 5792.9e3)\n        self.test('Vermeille', t.lonVermeille,      '-168.919', fmt='%.3f')\n        t = g.reverse(-2577.1e3, -498.1e3, 5793.9e3)\n        self.test('Vermeille', t.lonVermeille + 360, '190.939', fmt='%.3f')\n        # coverage\n        t = t.dup(y=-t.y)\n        self.test('Vermeille', t.latlonVermeille, '(65.772506, 169.060801)', known=not Karney)\n        t = t.dup(y=0)\n        self.test('Vermeille', t.philamVermeille, '(1.147947, 3.141593)', known=not Karney)\n\n        # Rey-Jer You <https://www.ResearchGate.net/publication/240359424>\n        for i, (x, y, z, h) in enumerate(((-2259148.993, 3912960.837, 4488055.516, 1e3),\n                                          (-2259502.546, 3913573.210, 4488762.622, 2e3),\n                                          (-2259856.100, 3914185.582, 4489469.729, 3e3),\n                                          (-2260209.653, 3914797.955, 4490176.836, 4e3),\n                                          (-2262330.973, 3918472.189, 4494419.477, 1e4),\n                                          (-2265866.507, 3924595.914, 4501490.544, 2e4),\n                                          (-2294150.778, 3973585.709, 4558059.087, 1e5),\n                                          (-2541638.152, 4402246.414, 5053033.834, 8e5),\n                                          (-2612348.830, 4524720.901, 5194455.190, 1e6))):\n            i = '-%d' % (i + 1,)\n            r = '45.0, 120.0, %.1f' % (h,)  # Zero and First order columns\n            t = g.reverse(x, y, z)\n            k = Sudano and _known(t, 45, h) or Farrell_2 and _known(t, 45, h, d_h=0.01)\n            self.test('reverse' + i, fstr(t[3:6], prec=3), r, known=k)\n            f = g.forward(t.lat, t.lon, t.height)\n            self.test('forward' + i, fstr(f[0:3], prec=1), fstr((x, y, z), prec=1), known=k)\n            self.test('xyzh' + i, fstr(f.xyzh, prec=1), fstr((x, y, z, h), prec=1), known=k)\n            f = f.phi, f.lam\n            t = radians(t.lat), radians(t.lon)\n            self.test('philam' + i, fstr(f, prec=4), fstr(t, prec=4))\n\n        # <https://www.ResearchGate.net/publication/3709199>\n        t = g.reverse(4588301.55696757, 0, 4558059.086984613)\n        self.test('sudano', fstr(t[3:6], prec=3), '45.0, 0.0, 100000.0', known=Sudano)\n\n        # <https://www.OrdnanceSurvey.co.UK/documents/resources/guide-coordinate-systems-great-britain.pdf> pp 47\n        g = Ecef(Ellipsoids.GRS80, name='OS-UK')\n        self.test('name', g.name, 'OS-UK')\n\n        t = g.forward(parse3llh('''53°36'43.1653\"N, 001°39'51.9920\"W, 299.800'''))\n        self.test('forward', fstr(t[3:6], prec=8), '53.61199036, -1.66444222, 299.8')\n        self.test('forward', fstr(t[0:3], prec=2), '3790644.9, -110149.21, 5111482.97')\n\n        t = g.reverse(3790644.9, -110149.21, 5111482.97)\n        self.test('reverse', fstr(t[0:3], prec=2), '3790644.9, -110149.21, 5111482.97')\n        self.test('reverse', fstr(t[3:5], prec=8), '53.61199036, -1.66444223', known=Sudano)\n        self.test('reverse.lat', latDMS(t.lat, prec=4), '53°36′43.1653″N', known=Sudano)\n        self.test('reverse.lon', lonDMS(t.lon, prec=4), '001°39′51.992″W')\n        self.test('reverse.height', fstr(t.height, prec=-3), '299.800', known=Sudano)\n        self.test('case', t.C, 1)\n        self.test('iteration', t.iteration, t.iteration)\n\n        # <https://Books.Google.com/books?id=fW4foWASY6wC> page 27\n        t = g.forward(parse3llh('34 0 0.00174N, 117 20 0.84965W, 251.702'))  # near LA, CA\n        self.test('forward', fstr(t[0:3], prec=6), '-2430601.827685, -4702442.703125, 3546587.358103')\n        t = g.reverse(t)\n        self.test('reverse', fstr(t[3:6], prec=6), '34.0, -117.333569, 251.702', known=not Karney)\n\n        # coverage\n        t = g.forward_(radians(34.0), radians(-117.333569), 251.702)\n        self.test(g.forward_.__name__, fstr(t[:6], prec=6), '-2430601.812953, -4702442.744488, 3546587.313654, 34.0, -117.333569, 251.702', known=not Karney)\n\n        self.test(EcefError.__name__, g.reverse(0, 0, 0), '(0.0, 0.0, ...)', known=True)\n        try:\n            self.test(EcefError.__name__, g.forward(None, None, None), EcefError.__name__)\n        except Exception as x:\n            self.test(EcefError.__name__, str(x).split(':')[0], 'lat (None), lon (None) ...', known=True)\n        try:\n            self.test(Ecef.__name__, Ecef(None), EcefError.__name__)\n        except Exception as x:\n            self.test(Ecef.__name__, str(x), Ecef.__name__, known=True)\n\n        self.test('Mx', t.Mx, t.M or t.Mx)\n\n    def testEcefMatrix(self):\n\n        self.test(EcefMatrix.__name__, '...', '...', nl=1)\n\n        # index order in .multiply\n        t = tuple(r * 3 + c for r in range(3) for c in range(3))\n        self.test('index', t, '(0, 1, 2, 3, 4, 5, 6, 7, 8)')\n\n        M = EcefMatrix(*t)\n        self.test('matrix', fstr(M, prec=0), '0, 1, 2, 3, 4, 5, 6, 7, 8')\n        t = M.multiply(M)\n        self.test('multiply', fstr(t, prec=0), '45, 54, 63, 54, 66, 78, 63, 78, 93')\n\n        self.test('matrix3',  M.matrix3 == (M.row(0), M.row(1), M.row(2)), 'True')\n        self.test('matrixT3', M.matrixTransposed3 == (M.column(0), M.column(1), M.column(2)), 'True')\n\n        self.testCopy(M)\n\n        I = [0] * 9  # noqa: E741 I is eye\n        I[0] = I[4] = I[8] = 1\n        I = EcefMatrix(*I)  # noqa: E741 I is eye\n        self.test('matrix', fstr(I, prec=0), '1, 0, 0, 0, 1, 0, 0, 0, 1')\n        t = I.multiply(I)\n        self.test('multiply', fstr(t, prec=0), '1, 0, 0, 0, 1, 0, 0, 0, 1')\n\n        self.testCopy(I)\n\n        t = I.unrotate((1, 1, 1))  # coverage\n        self.test(I.unrotate.__name__, t, '(1.0, 1.0, 1.0)')\n\n    def testLatLonEcef(self, module, Ecef):\n\n        C = module.Cartesian\n        self.test(module.__name__, C.__name__, C.__name__, nl=1)\n        self.test('Ecef', C(0, 0, 0).Ecef, Ecef)\n\n        LL = module.LatLon\n        self.test(module.__name__, LL.__name__, LL.__name__)\n        ll = LL(48.833, 2.333, name='Paris')\n        self.test('Ecef', ll.Ecef, Ecef)\n\n        t = ll.toEcef()\n        self.test('forward', fstr(t[3:6], prec=3), '48.833, 2.333, 0.0')\n        self.test('forward', fstr(t[0:3], prec=2), '4202946.8, 171232.47, 4778354.17' if ll.isEllipsoidal\n                                              else '4190278.55, 170716.35, 4796058.21')\n        self.test('name', t.name, 'Paris')\n\n        e = ll.datum.ecef().reverse(t)\n        self.test('reverse', fstr(e[3:6], prec=3), '48.833, 2.333, 0.0')\n        self.test('name', e.name, 'Paris')\n\n        ll = e.toLatLon(LL)\n        self.test('toLatLon', repr(ll), 'LatLon(48°49′58.8″N, 002°19′58.8″E, +0.00m)' if ll.isEllipsoidal\n                                   else 'LatLon(48°49′58.8″N, 002°19′58.8″E)')\n        self.test('name', ll.name, 'Paris')\n        self.test('Ecef', ll.Ecef, Ecef)\n\n        t = e.toLatLon(LatLon=None)\n        self.test('to4Tuple', t.classname, 'LatLon4Tuple')\n        self.test('to4Tuple', repr(t), 'Paris(lat=48.833, lon=2.333, height=0.0, datum=%r)' % (t.datum,))\n\n        t = e.toLatLon(LatLon=None, datum=None)\n        self.test('to3Tuple', t.classname, 'LatLon3Tuple')\n        self.test('to3Tuple', repr(t), 'Paris(lat=48.833, lon=2.333, height=0.0)')\n\n        # XXX import NvectorBase from ellipsoidal- or sphericalNvector since nvectorBase is private\n        v = e.toVector(getattr(module, 'Nvector', sphericalNvector.NvectorBase))  # DEPRECATED nvector.Nvector\n        self.test('toVector', str(v), '(4202946.79528, 171232.46613, 4778354.17)' if ll.isEllipsoidal\n                                 else '(4190278.55277, 170716.34863, 4796058.20898)')\n        self.test('name', v.name, 'Paris')\n\n        c = e.toCartesian(C)\n        self.test('forward', c.toStr(prec=2), '[4202946.8, 171232.47, 4778354.17]' if ll.isEllipsoidal\n                                         else '[4190278.55, 170716.35, 4796058.21]')\n        self.test('Ecef', c.Ecef, Ecef)\n\n        t = e.toLocal()\n        self.test('toLocal', t, '(0.0, 0.0, -0.0, 48.833, 2.333, 0.0, Ltp' if ll.isEllipsoidal\n                           else '(0.0, 0.0, 0.0, 48.833, 2.333, 0.0, Ltp', known=startswith)\n        t = e.toAer()\n        self.test('toAer', t, ('[5.708, -86.135, 0.0]'   if bits_mach2[0] == '32bit' else\n                               '[23.434, -85.849, 0.0]') if ll.isEllipsoidal\n                         else  '[0.0, 0.0, 0.0]')  # [178.349, 41.155, 0.0]\n        t = e.toEnu()\n        self.test('toEnu', t, '[0.0, 0.0, -0.0]' if ll.isEllipsoidal\n                         else '[0.0, 0.0, 0.0]')\n        t = e.toNed()\n        self.test('toNed', t, '[0.0, 0.0, 0.0]')\n\n\nif __name__ == '__main__':\n\n    from pygeodesy import ellipsoidalExact, ellipsoidalKarney, \\\n                          ellipsoidalNvector, ellipsoidalVincenty, \\\n                          sphericalTrigonometry\n\n    t = Tests(__file__, __version__)\n    t.testEcef(EcefKarney)\n    t.testEcef(EcefFarrell21)\n    t.testEcef(EcefFarrell22)\n    t.testEcef(EcefVeness)\n    t.testEcef(EcefSudano)\n    t.testEcef(EcefUPC)\n    t.testEcef(EcefYou)\n    t.testEcefMatrix()\n\n    t.testLatLonEcef(sphericalNvector, EcefKarney)\n    t.testLatLonEcef(sphericalTrigonometry, EcefKarney)\n    t.testLatLonEcef(ellipsoidalNvector, EcefVeness)\n    t.testLatLonEcef(ellipsoidalVincenty, EcefVeness)\n    t.testLatLonEcef(ellipsoidalKarney, EcefKarney)\n    t.testLatLonEcef(ellipsoidalExact, EcefKarney)\n    if GeodSolve:\n        from pygeodesy import ellipsoidalGeodSolve\n        t.testLatLonEcef(ellipsoidalGeodSolve, EcefKarney)\n\n    t.results()\n    t.exit()\n"
  },
  {
    "path": "test/testElevations.py",
    "content": "\n# -*- coding: utf-8 -*-\n\n# Test L{elevations} module.\n\n__all__ = ('Tests',)\n__version__ = '24.09.25'\n\nfrom bases import ismacOS, isPython2, isPython3, TestsBase\n\nfrom pygeodesy import elevation2, Datums, geoidHeight2\n\n\nclass Tests(TestsBase):\n\n    def testApprox(self, name, m, e, x):\n        # allow margin and errors\n        if m and e:\n            k = abs((m - e) / e)\n            self.test(name, m, e, fmt='%.3f', error=k, known=k < 0.5)\n        else:  # m is None\n            self.test(name, x, e, fmt='%s', known=True)\n\n    def testElevations(self, LatLon, datum, timeout):\n\n        # <https://WikiPedia.org/wiki/Mount_Diablo>\n        m, x = elevation2(37.8816, -121.9142, timeout=timeout)\n        self.testApprox('elevation2', m, 1173.79, x)\n        m, x = geoidHeight2(37.8816, -121.9142, timeout=timeout)\n        self.testApprox('geoidHeight2', m, -31.699, x)\n\n        MtDiablo = LatLon(37.8816, -121.9142)\n        NewYork = LatLon(40.7791472, -73.9680804)\n        Newport_RI = LatLon(41.49008, -71.312796)\n        Cleveland_OH = LatLon(41.499498, -81.695391)\n        # <https://GitHub.com/maurycyp/vincenty> Maurycy Pietrzak\n        Boston = LatLon(42.3541165, -71.0693514)\n        for p, e, h in ((MtDiablo,    1173.79, -31.699),\n                        (Boston,         2.03, -27.773),\n                        (Cleveland_OH, 199.18, -27.077),  # -36.902\n                        (Newport_RI,     8.52, -30.000),\n                        (NewYork,       32.79, -31.666)):\n            m, x = p.elevation2(datum=datum, timeout=timeout)\n            self.testApprox('elevation2', m, e, x)\n            m, x = p.geoidHeight2(datum=datum, timeout=timeout)\n            self.testApprox('geodHeight2', m, h, x)\n\n        m, x = elevation2(0, 0, timeout=timeout)\n        self.testError('elevation2', m, x, 'non-CONUS -1000000.00')\n        m, x = geoidHeight2(0, 0, timeout=timeout)\n        self.testError('geoidHeight2', m, x, \"<HTTPError 403: 'Forbidden'>\" if isPython3\n                                        else ('HTTPError()' if isPython2 else 'isPython?'))\n\n        non_CONUS = LatLon(51.4, 0.1)\n        m, x = non_CONUS.elevation2(datum=datum, timeout=0.01)  # force timeout\n        self.testError('elevation2', m, x, \"URLError(timeout('timed out'))\")\n        m, x = non_CONUS.geoidHeight2(datum=datum, timeout=0.01)  # force timeout\n        self.testError('geodHeight2', m, x, \"URLError(timeout('timed out'))\")\n\n    def testError(self, name, m, x, error):\n        # check an error test result\n        x = x.replace(',)', ')').split('): ')[-1]\n        self.test(name, (m, x), (None, error), known=True)\n\n\nif __name__ == '__main__':\n\n    import os\n    import sys\n\n    t = Tests(__file__, __version__)\n\n    if len(sys.argv) > 1:\n        timeout = float(sys.argv[1])\n    else:\n        timeout = float(os.getenv('PYGEODESY_COVERAGE', '0'))\n\n    if ismacOS and timeout > 4:\n        from pygeodesy import ellipsoidalVincenty\n        LL = ellipsoidalVincenty.LatLon\n\n        t.testElevations(LL, Datums.NAD83, timeout)\n#       t.testElevations(LL, Datums.Sphere, timeout)\n        t.testElevations(LL, Datums.WGS84, timeout)\n\n        t.results()\n    else:\n        # sites fail/hang when hit too often\n        t.results(passed='SKIPPED', nl=0)\n\n    t.exit()\n\n\n# Typical test results (for 2 second timeout).\n\n# python test/testElevations.py  2\n#\n#   testing testElevations.py 18.08.25\n#   test 1 elevation2: 1173.79\n#   test 2 geoidHeight2: -31.703\n#   test 3 elevation2: 1173.790\n#   test 4 geodHeight2: -31.703\n#   test 5 elevation2: 2.030\n#   test 6 geodHeight2: -27.765\n#   test 7 elevation2: 199.180\n#   test 8 geodHeight2: -34.366\n#   test 9 elevation2: 8.520\n#   test 10 geodHeight2: -30.009\n#   test 11 elevation2: 32.790\n#   test 12 geodHeight2: -31.668\n#   test 13 elevation2: (None, \"ValueError('non-CONUS')\")\n#   test 14 geoidHeight2: (None, 'HTTPError()')\n#   test 15 elevation2: (None, \"URLError(timeout('timed out'))\")\n#   test 16 geodHeight2: (None, \"URLError(timeout('timed out'))\")\n#   test 17 elevation2: 1173.79\n#   test 18 geoidHeight2: -31.703\n#   test 19 elevation2: 1173.790\n#   test 20 geodHeight2: -31.703\n#   test 21 elevation2: 2.030\n#   test 22 geodHeight2: -27.765\n#   test 23 elevation2: 199.180\n#   test 24 geodHeight2: -34.366\n#   test 25 elevation2: 8.520\n#   test 26 geodHeight2: -30.009\n#   test 27 elevation2: 32.790\n#   test 28 geodHeight2: -31.668\n#   test 29 elevation2: (None, \"ValueError('non-CONUS')\")\n#   test 30 geoidHeight2: (None, 'HTTPError()')\n#   test 31 elevation2: (None, \"URLError(timeout('timed out'))\")\n#   test 32 geodHeight2: (None, \"URLError(timeout('timed out'))\")\n\n#   all testElevations.py tests passed (PyGeodesy 18.8.24 Python 2.7.15 64bit geographiclib 1.49 numpy 1.14.0 macOS 10.13.6) 5.757 sec\n\n\n# python3 test/testElevations.py 2\n#\n#   testing testElevations.py 18.08.25\n#   test 1 elevation2: 1173.79\n#   test 2 geoidHeight2: -31.703\n#   test 3 elevation2: 1173.790\n#   test 4 geodHeight2: -31.703\n#   test 5 elevation2: 2.030\n#   test 6 geodHeight2: -27.765\n#   test 7 elevation2: 199.180\n#   test 8 geodHeight2: -34.366\n#   test 9 elevation2: 8.520\n#   test 10 geodHeight2: -30.009\n#   test 11 elevation2: 32.790\n#   test 12 geodHeight2: -31.668\n#   test 13 elevation2: (None, \"ValueError('non-CONUS')\")\n#   test 14 geoidHeight2: (None, \"<HTTPError 403: 'Forbidden'>\")\n#   test 15 elevation2: (None, \"URLError(timeout('timed out'))\")\n#   test 16 geodHeight2: (None, \"URLError(timeout('timed out'))\")\n#   test 17 elevation2: 1173.79\n#   test 18 geoidHeight2: -31.703\n#   test 19 elevation2: 1173.790\n#   test 20 geodHeight2: -31.703\n#   test 21 elevation2: 2.030\n#   test 22 geodHeight2: -27.765\n#   test 23 elevation2: 199.180\n#   test 24 geodHeight2: -34.366\n#   test 25 elevation2: 8.520\n#   test 26 geodHeight2: -30.009\n#   test 27 elevation2: 32.790\n#   test 28 geodHeight2: -31.668\n#   test 29 elevation2: (None, \"ValueError('non-CONUS')\")\n#   test 30 geoidHeight2: (None, \"<HTTPError 403: 'Forbidden'>\")\n#   test 31 elevation2: (None, \"URLError(timeout('timed out'))\")\n#   test 32 geodHeight2: (None, \"URLError(timeout('timed out'))\")\n#\n#   all testElevations.py tests passed (PyGeodesy 18.8.26 Python 3.7.0 64bit macOS 10.13.6) 8.479 sec\n\n\n# intelpython3 test/testElevations.py 2\n#\n#   testing testElevations.py 18.08.25\n#   test 1 elevation2: 1173.79\n#   test 2 geoidHeight2: -31.703\n#   test 3 elevation2: 1173.790\n#   test 4 geodHeight2: -31.703\n#   test 5 elevation2: 2.030\n#   test 6 geodHeight2: -27.765\n#   test 7 elevation2: 199.180\n#   test 8 geodHeight2: -34.366\n#   test 9 elevation2: 8.520\n#   test 10 geodHeight2: -30.009\n#   test 11 elevation2: 32.790\n#   test 12 geodHeight2: -31.668\n#   test 13 elevation2: (None, \"ValueError('non-CONUS')\")\n#   test 14 geoidHeight2: (None, \"<HTTPError 403: 'Forbidden'>\")\n#   test 15 elevation2: (None, \"URLError(timeout('timed out'))\")\n#   test 16 geodHeight2: (None, \"URLError(timeout('timed out'))\")\n#   test 17 elevation2: 1173.79\n#   test 18 geoidHeight2: -31.703\n#   test 19 elevation2: 1173.790\n#   test 20 geodHeight2: -31.703\n#   test 21 elevation2: 2.030\n#   test 22 geodHeight2: -27.765\n#   test 23 elevation2: 199.180\n#   test 24 geodHeight2: -34.366\n#   test 25 elevation2: 8.520\n#   test 26 geodHeight2: -30.009\n#   test 27 elevation2: 32.790\n#   test 28 geodHeight2: -31.668\n#   test 29 elevation2: (None, \"ValueError('non-CONUS')\")\n#   test 30 geoidHeight2: (None, \"<HTTPError 403: 'Forbidden'>\")\n#   test 31 elevation2: (None, \"URLError(timeout('timed out'))\")\n#   test 32 geodHeight2: (None, \"URLError(timeout('timed out'))\")\n#\n#   all testElevations.py tests passed (PyGeodesy 18.8.26 Intel-Python 3.5.3 64bit numpy 1.11.3 macOS 10.13.6) 7.794 sec\n\n\n# Pythonista3: python2.7 test/testElevations.py 2\n\n#   testing testElevations.py 18.08.25\n#   test 1 elevation2: 1173.79\n#   test 2 geoidHeight2: -31.703\n#   test 3 elevation2: 1173.790\n#   test 4 geodHeight2: -31.703\n#   test 5 elevation2: 2.030\n#   test 6 geodHeight2: -27.765\n#   test 7 elevation2: 199.180\n#   test 8 geodHeight2: -34.366\n#   test 9 elevation2: 8.520\n#   test 10 geodHeight2: -30.009\n#   test 11 elevation2: 32.790\n#   test 12 geodHeight2: -31.668\n#   test 13 elevation2: (None, \"ValueError('non-CONUS')\")\n#   test 14 geoidHeight2: (None, 'HTTPError()')\n#   test 15 elevation2: (None, \"URLError(timeout('timed out'))\")\n#   test 16 geodHeight2: (None, \"URLError(timeout('timed out'))\")\n#   test 17 elevation2: 1173.79\n#   test 18 geoidHeight2: -31.703\n#   test 19 elevation2: 1173.790\n#   test 20 geodHeight2: -31.703\n#   test 21 elevation2: 2.030\n#   test 22 geodHeight2: -27.765\n#   test 23 elevation2: 199.180\n#   test 24 geodHeight2: -34.366\n#   test 25 elevation2: 8.520\n#   test 26 geodHeight2: -30.009\n#   test 27 elevation2: 32.790\n#   test 28 geodHeight2: -31.668\n#   test 29 elevation2: (None, \"ValueError('non-CONUS')\")\n#   test 30 geoidHeight2: (None, 'HTTPError()')\n#   test 31 elevation2: (None, \"URLError(timeout('timed out'))\")\n#   test 32 geodHeight2: (None, \"URLError(timeout('timed out'))\")\n\n#   all testElevations.py tests passed (PyGeodesy 18.8.28 Python 2.7.12 64bit numpy 1.8.0 iOS 11.4.1) 11.339 sec\n\n\n# Pythonista3: python3.6 test/testElevations.py 2\n\n#   testing testElevations.py 18.08.25\n#   test 1 elevation2: 1173.79\n#   test 2 geoidHeight2: -31.703\n#   test 3 elevation2: 1173.790\n#   test 4 geodHeight2: -31.703\n#   test 5 elevation2: 2.030\n#   test 6 geodHeight2: -27.765\n#   test 7 elevation2: 199.180\n#   test 8 geodHeight2: -34.366\n#   test 9 elevation2: 8.520\n#   test 10 geodHeight2: -30.009\n#   test 11 elevation2: 32.790\n#   test 12 geodHeight2: -31.668\n#   test 13 elevation2: (None, \"ValueError('non-CONUS')\")\n#   test 14 geoidHeight2: (None, \"<HTTPError 403: 'Forbidden'>\")\n#   test 15 elevation2: (None, \"URLError(timeout('timed out'))\")\n#   test 16 geodHeight2: (None, \"URLError(timeout('timed out'))\")\n#   test 17 elevation2: 1173.79\n#   test 18 geoidHeight2: -31.703\n#   test 19 elevation2: 1173.790\n#   test 20 geodHeight2: -31.703\n#   test 21 elevation2: 2.030\n#   test 22 geodHeight2: -27.765\n#   test 23 elevation2: 199.180\n#   test 24 geodHeight2: -34.366\n#   test 25 elevation2: 8.520\n#   test 26 geodHeight2: -30.009\n#   test 27 elevation2: 32.790\n#   test 28 geodHeight2: -31.668\n#   test 29 elevation2: (None, \"ValueError('non-CONUS')\")\n#   test 30 geoidHeight2: (None, \"<HTTPError 403: 'Forbidden'>\")\n#   test 31 elevation2: (None, \"URLError(timeout('timed out'))\")\n#   test 32 geodHeight2: (None, \"URLError(timeout('timed out'))\")\n\n#   all testElevations.py tests passed (PyGeodesy 18.8.28 Python 3.6.1 64bit numpy 1.8.0 iOS 11.4.1) 7.694 sec\n"
  },
  {
    "path": "test/testEllipses.py",
    "content": "\n# -*- coding: utf-8 -*-\n\n# Test module L{ellipses}.\n\n__all__ = ('Tests',)\n__version__ = '26.03.25'\n\nfrom bases import startswith, TestsBase\n\nfrom pygeodesy import Ellipse, Ellipsoids, EPS, elliperim, polar2d\n\n\nclass Tests(TestsBase):\n\n    def testEllipse(self):\n\n        def _a(name, n=14):\n            return Ellipse.__name__ + '.' + (name + ' ' * 12)[:n]\n\n        def _n(name):\n            return _a('perimeter' + name)\n\n        a = 6378172.0\n        for b, x in ((6378102.0, '40075016.6858801'),\n                     (a * 0.9,   '38097844.6222377'),\n                     (a / 2,     '30897294.5'),\n                     (a / 4,     '273573'),\n                     (a / 8,     '26106'),\n                     (EPS,       '25512')):\n            m = 1.0 - (b / a)**2  # e2\n            t = a, b, (b / a), m\n            self.test('a, b, b/a, m', t, '(6378172.0, ', known=startswith, nl=1)\n            E = Ellipse(a, b)\n            for p, n in ((E.perimeter2k,  '2k'),\n                         (E.perimeter2k_, '2k_'),  # scipy?\n                         (E.perimeterAGM, 'AGM'),\n                         (E.perimeterHGK, 'HGK'),\n                         (E.perimeterCR,  'CR'),\n                         (E.perimeterGK,  'GK'),\n                         (E.perimeter2RC, '2RC'),\n                         (E.perimeter2R,  '2R')):\n                if p is not None:\n                    self.test(_n(n), p, x, known=startswith, prec=9)\n\n            p = E.perimeter4Arc3\n            t = str(p).lstrip('(').rstrip(')')\n            self.test(_n('4Arc3'), t, x[:1], known=startswith)\n\n            n = elliperim.__name__ + ' DEPRECATED  '  # for backward compatibility\n            x = x.split('.')[0]  # str(int(float(x)))\n            self.test(n, elliperim(a, b), x, known=startswith, nl=1)\n            self.test(n, elliperim(a, a), 40075236.597, prec=3)\n            self.test(n, elliperim(a, 0), a * 4, prec=1)\n            self.test(n, elliperim(0, b), b * 4, prec=1)\n            self.test(n, elliperim(0, 0), '0.0')\n\n            self.test(_a('apses2'), E.apses2, E.apses2, nl=1)\n            m =  Ellipse(b, a).arc\n            n = _a('arc')\n            x =  E.arc(45)\n            self.test(n, x, x, prec=6)\n            self.test(n, m(90, 45), x, prec=6)\n            x = E.arc(270)\n            self.test(n, x, x, prec=6)\n            self.test(n, m(360, 90), x, prec=6)\n\n            self.test(_a('area'), E.area, E.area)\n            self.test(_a('e '),   E.e, E.e)\n            self.test(_a('c '),   E.c, E.c)\n            self.test(_a('p '),   E.p, E.p)\n            x = E.point(45)\n            self.test(_a('point 45'), x, x)\n            x = E.polar2d(45)\n            self.test(_a('polar2d 45'), x, x)\n            self.test(_a('R1'), E.R1, E.R1)\n            self.test(_a('R2'), E.R2, E.R2)\n            x = E.Roc(60)\n            self.test(_a('Roc 60'), x, x)\n            x = E.Roc_(-1, 1)\n            self.test(_a('Roc_(-1, 1)'), x, x)\n            self.test(_a('Rrectifying'), E.Rrectifying, E.Rrectifying)\n            x = E.sideOf(0, 1)\n            self.test(_a('sideOf'), x, x)\n            self.test(_a('sideOf(c, p)'), E.sideOf(E.c, E.p), 0.0)\n            x = E.slope(60)\n            self.test(_a('slope 60'), x, x)\n\n            x = E.hartzell4(a, b)\n            self.test(_a('hartzell4'), x, x)\n            x = E.height4(a, b)\n            self.test(_a('height4'), x, x)\n            x = E.normal3d(45)\n            self.test(_a('normal3d'), x, x)\n            x = E.normal4(60)\n            self.test(_a('normal4'), x, x, nt=1)\n\n            x = E.toRepr(terse=0)\n            self.test(_a('toRepr(terse=0)', n=-12), x, x)\n            x = E.toEllipsoid().toStr()\n            self.test(_a('toEllipsoid', n=-12), x, x)\n            x = E.toTriaxial_().toStr()\n            self.test(_a('toTriaxial_', n=-12), x, x)\n\n            if not E.isFlat:  # coverage\n                cw = tuple(E.points(20, ccw=False, ended=True))\n                n  = sum(int(bool(E.sideOf(*t))) for t in cw)\n                self.total += len(cw)\n                self.test(_a('sideOfs'), n, 0, nl=1)\n                self.test(_a('sideOf point'),  E.sideOf(*E.point(45)), '0.0')\n                ccw = tuple(E.points(20, ccw=True, ended=True))\n                self.test(_a('cw vs ccw'), len(cw), len(ccw))\n                t = str(cw == tuple(reversed(ccw)))\n                self.test(_a(\"cw vs ccw'd\"), t, True)\n                n = 0\n                for d in range(0, 360, 15):\n                    x, y, _, _ = E.normal4(d, height=10000)\n                    _, p = polar2d(x, y, *E.point(d))\n                    s = p - E.slope(d)\n                    if abs(s - 90) > 1e-11:\n                        self.test(_a('slopes at %d' % (d,)), s, 90.0)\n                        n += 1\n                    else:\n                        self.total += 1\n                self.test(_a('slopes'), n, 0)\n\n        self.test(_a('isCircular'), E.isCircular, E.isCircular, nl=1)\n        self.test(_a('isFlat'),     E.isFlat, E.isFlat)\n        self.test(_a('isOblate'),   E.isOblate, E.isOblate)\n        self.test(_a('isProlate'),  E.isProlate, E.isProlate, nt=1)\n\n        for n, W in Ellipsoids.items(all=True, asorted=True):\n            self.test(n + '.polarimeter/2k', W.polarimeter, W.toEllipse().perimeter2k, prec=6)\n\n\nif __name__ == '__main__':\n\n    t = Tests(__file__, __version__)\n    t.testEllipse()\n    t.results()\n    t.exit()\n"
  },
  {
    "path": "test/testEllipsoidal.py",
    "content": "\n# -*- coding: utf-8 -*-\n\n# Test ellipsoidals earth model functions and methods.\n\n__all__ = ('Tests',)\n__version__ = '24.11.02'\n\nfrom bases import coverage, GeodSolve, geographiclib, isPython35, isPython39, RandomLatLon\nfrom testLatLon import Tests as _TestsLL\nfrom testVectorial import Tests as _TestsV\n\nfrom pygeodesy import EPS, F_D, F_D__, F_DMS, bearingDMS, compassDMS, \\\n                      Datums, fstr, IntersectionError, \\\n                      latlonDMS, latlonDMS_, m2SM, normDMS, PI, PI_4, R_M, \\\n                      RefFrames, VincentyError, wrap360\n\nfrom math import radians\nfrom random import random\n\n\nclass Tests(_TestsLL, _TestsV):\n\n    def testEllipsoidal(self, module, Cartesian, Nvector, GS=False, V=False, X=False, **unused):  # MCCABE 14\n        # ellipsoidal modules tests\n\n        self.subtitle(module, 'Ellipsoidal')\n\n        LatLon = module.LatLon\n\n        p = LatLon(51.4778, -0.0016, 0, Datums.WGS84)\n        self.test('isEllipsoidal', p.isEllipsoidal, True)\n        self.test('isSpherical', p.isSpherical, False)\n\n        d = p.toDatum(Datums.OSGB36)\n        self.test('isEllipsoidal', d.isEllipsoidal, True)\n        self.test('isSpherical', d.isSpherical, False)\n\n        self.test('toDatum', d, '51.477284°N, 000.00002°E, -45.91m')  # 51.4773°N, 000.0000°E, -45.91m\n        self.test('toDatum', d.toStr(F_D, prec=4), '51.4773°N, 000.0°E, -45.91m')\n        self.test('toDatum', p.toDatum(p.datum), p)  # i.e. p.copy()\n\n        if isPython35:\n            # using eval avoids SyntaxError with Python 3.4-,\n            # but t = eval(\"d @= ...\") throws a SyntaxError\n            t = eval('Datums.OSGB36 @ p')\n            self.test('__matmul__', t, d)\n            t = d.dup(reframe=RefFrames.ITRF2000)\n            t = eval('RefFrames.ITRF2014 @ t')\n            self.test('__matmul__', t, t)\n\n        if coverage:  # coverage\n            n = 'test'\n            self.test('parse',   p.parse(d.toStr(F_D__)), d)\n            p.reframe = None\n            self.test('reframe', p.reframe, None)\n            c = p.toCartesian()\n            self.test('toCartesian', c, '[3980581.21, -111.159, 4966824.522]')\n            if geographiclib:\n                self.test('toCss', p.toCss(), '-111.158797 5705242.333679')\n                self.test('toCss', p.toCss(name=n), '-111.158797 5705242.333679')\n            t = fstr(c.toEcef()[:3], 3)\n            self.test('toEcef',   t,  '3980581.21, -111.159, 4966824.522')\n            self.test('toEtm',    p.toEtm(), '30 N 916396 5720041')\n            self.test('toEtm',    p.toEtm(name=n), '30 N 916396 5720041')\n            self.test('toLcc',    p.toLcc(), '5639901 4612638')\n            self.test('toLcc',    p.toLcc(name=n), '5639901 4612638')\n            self.test('toOsgr',   p.toOsgr(), 'TQ 38876 77320')\n            self.test('toOsgr',   p.toOsgr(name=n), 'TQ 38876 77320')\n            self.test('toOsgrTM', p.toOsgr(kTM=True), 'TQ 38876 77320')\n#           self.test('toUps',    p.toUps(), '00 N 2000000 1333272')\n#           self.test('toUps',    p.toUps(falsed=False), '00 N 2000000 1333272')\n            self.test('toUtmUps', p.toUtmUps(), '30 N 708207 5707224')\n            self.test('toUtm',    p.toUtm(), '30 N 708207 5707224')\n            self.test('toUtm',    p.toUtm(center=True), '30 N 708207 5707224')\n            self.test('toWm',     p.toWm(), '-178.111 6672799.209')\n            self.test('toWm',     p.toWm(name=n), '-178.111 6672799.209')\n\n            self.test('elevation2',   p.elevation2(  timeout=0.1)[0], None)\n            self.test('geoidHeight2', p.geoidHeight2(timeout=0.1)[0], None)\n\n            p._update(True)  # zap cached attrs\n            self.test('toUtmUps', p.toUtmUps(), '30 N 708207 5707224')\n            p = p.copy()\n            self.test('toUtm', p.toUtm(), '30 N 708207 5707224')\n            self.test('toUtm', p.toUtm(center=True), '30 N 708207 5707224')\n\n            p = LatLon(84, 0)\n            self.test('toUtmUps', p.toUtmUps(), '00 N 2000000 1333272')\n            p = p.copy()\n            self.test('toUps', p.toUps(), '00 N 2000000 1333272')\n            self.test('toUps', p.toUps(falsed=False), '00 N 0 -666728')\n\n            p.lat = 86\n            self.test('toUps', p.toUps(), '00 N 2000000 1555732')\n            p.lat = 83\n            self.test('toUtm', p.toUtm(), '31 N 459200 9217519')\n\n            n = getattr(module, 'nearestOn', None)\n            if callable(n):  # function\n                p = n(LatLon(40, 20), LatLon(20, 20), LatLon(40, 40))\n                self.test('nearestOn', p.toStr(form=F_D, prec=2), '32.81°N, 031.42°E')\n\n        if Cartesian and Nvector:\n            c = Cartesian(3980581, 97, 4966825)\n            n = c.toNvector()  # {x: 0.6228, y: 0.0000, z: 0.7824, h: 0.0000}  # XXX height\n            self.test('toNVector', n.toStr(4), '(0.6228, 0.0, 0.7824, +0.24)')\n            self.test('toNvector', isinstance(n, Nvector), True)\n            c = n.toCartesian()\n            self.test('toCartesian', c.toStr(0), '[3980581, 97, 4966825]')\n            self.test('toCartesian', isinstance(c, Cartesian), True)\n            v = n.toVector3d()\n            self.test('toVector3D', v.toStr(4), '(0.6228, 0.0, 0.7824)')\n\n            n = Nvector(0.5, 0.5, 0.7071)\n            self.test('Nvector', n, '(0.5, 0.5, 0.7071)')\n            v = n.toVector3d()\n            self.test('toVector3D', v.toStr(4), '(0.5, 0.5, 0.7071)')\n            t = n.philamheight  # .to3abh() DEPRECATED\n            self.test('philamheight', fstr(t, 4), '0.7854, 0.7854, 0.0')\n            t = n.latlonheight  # .to3llh()  DEPRECATED\n            self.test('latlonheight', fstr(t, 3), '45.0, 45.0, 0.0')\n            t = n.xyzh  # .to4xyzh() DEPRECATED\n            self.test('xyzh', fstr(t, 1), '0.5, 0.5, 0.7, 0.0')\n            n.H = ''  # for test coverage\n\n            c = n.toCartesian()  # [3194434, 3194434, 4487327]\n            self.test('toCartesian', c, '[3194434.411, 3194434.411, 4487326.82]')\n            self.test('toCartesian', isinstance(c, Cartesian), True)\n\n            p = c.toLatLon()  # 45.0°N, 45.0°E\n            self.test('toLatLon', p.toStr('d', prec=2, m=None), '45.0°N, 045.0°E')  # 45.0°N, 45.0°E\n            self.test('toLatLon', isinstance(p, LatLon), True)\n\n            n = Nvector(0.51, 0.512, 0.7071, 1).toStr(3)\n            self.test('Nvector', n, '(0.51, 0.512, 0.707, +1.00)')\n\n        # <https://GitHub.com/DieuwerH/AE3537/blob/master/PyGeodesyTesting.py>\n        s = Cartesian(3145.5036885, 5387.14337206, 3208.93193301).toLatLon()  # WGS84 XXX m, Km, other?\n        self.test('sat', s, '82.545852°N, 059.719736°E, -6353121.71m' if Nvector or V else\n                            '82.219069°N, 059.719736°E, -6353120.97m')  # XXX neg height?\n        d = LatLon(51.99888889, 4.37333333, height=134.64, name='DopTrackStation')\n        self.test('dop', d, '51.998889°N, 004.373333°E, +134.64m')\n        d = d.distanceTo(s)\n        x ='3806542.943647' if Nvector else ('3817991.074015' if V else '3802238.504989')\n        self.test('distance', d, x, known=abs(float(x) - d) < 5e-6)\n\n        if hasattr(LatLon, 'nearestOn8'):\n            b = LatLon(45, 1), LatLon(45, 20), LatLon(46, 20), LatLon(46, 1)\n            t = LatLon(1, 1).nearestOn8(b, height=0)   # degrees2m(44) == 4892583.508323744, degrees2m(44, lat=23) == 4503646.865333374\n            self.test('neareston8', t.toStr(prec=5), '(LatLon(45°00′00.0″N, 001°00′00.0″E), 4874369.98942, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E), 0.0, 0.0)')\n            self.test('iteration', t.iteration, 0)\n            t = LatLon(45.5, 20.5).nearestOn8(b, height=0)\n            self.test('neareston8', t, '(LatLon(45°30′03.93″N, 020°00′00.0″E), 39078.779519, 1.501069, 2, LatLon(45°00′00.0″N, 020°00′00.0″E), LatLon(46°00′00.0″N, 020°00′00.0″E), 270.356041, 269.999412)')\n            self.test('iteration', t.iteration, t.iteration)\n\n        # <https://SourceForge.net/p/geographiclib/discussion/1026621/thread/21aaff9f/>\n        if X and hasattr(LatLon, 'nearestOn'):  # intercept.cpp 2014-11-09\n            t = LatLon(64, -22).nearestOn(LatLon(42, 29), LatLon(39, -77))\n            self.test('nearestOn', t.toStr(form=F_D), '54.928536°N, 021.934843°W')\n\n        try:\n            if Nvector or GS:\n                raise TypeError()\n            c = LatLon(5, -5)  # XXX too basic\n            r = int(c.datum.ellipsoid.degrees2m(30))\n            t = [(LatLon(-30,   0), 45),\n               # (LatLon(-5,    5), 45),\n                 (LatLon(-30,   0), 135),\n                 (LatLon(-30,   0), LatLon( 0, 30)),\n                 (LatLon(-45, -15), LatLon(15, 45))]\n            for _ in range(3 if isPython39 else 1):\n                p, z = c.destination2(r, random() * 360)\n                q, _ = c.destination2(r, random() * 360)\n                t.append((p, q))\n                t.append((p, z))\n            for p, q in t:\n                try:\n                    for t in c.intersecant2(r, p, q):\n                        d = t.distanceTo(c)\n                        e = abs(d - r) * 100.0 / r\n                        i = t.iteration\n                        t = '%.3e%% %d %r' % (e, i, t)\n                        self.test('intersecant2', t, '2.0e-10% ...', known=e < 2.e-10)\n                except IntersectionError as x:\n                    t = str(x)\n                    self.test('intersecant2', t, t)\n        except (ImportError, TypeError):  # no geographiclib\n            self.skip('insersecant2', n=32)\n\n    def testKarney(self, module, datum, X=False, GS=False):\n\n        d = datum\n        self.subtitle(module, 'Karney', datum=d.name)\n        LatLon = module.LatLon\n\n        Newport_RI = LatLon(41.49008, -71.312796, datum=d)\n\n        Cleveland_OH = LatLon(41.499498, -81.695391, datum=d)\n        m = Newport_RI.distanceTo(Cleveland_OH)\n        self.test('distanceTo', m, '866455.4329', fmt='%.4f')\n\n        m = Newport_RI.distanceTo(Newport_RI)\n        self.test('coincident', m, 0.0)\n\n        if hasattr(LatLon, 'toCartesian'):\n            c = Cleveland_OH.toDatum(Datums.OSGB36)\n            self.test('toDatum', c.datum.name, 'OSGB36')\n            try:\n                m = Newport_RI.distanceTo(c)\n                self.test('ValueError1', m, ValueError.__name__)\n            except ValueError as x:\n                self.test('ValueError2', x, \"Ellipsoid 'Airy1830': incompatible with Ellipsoid %r\" % (d.ellipsoid.name,))\n            except Exception as x:\n                self.test('ValueError3', x, ValueError.__name__)\n\n        p = LatLon(-37.95103342, 144.42486789, datum=d)\n        self.test('isEllipsoidal', p.isEllipsoidal, True)\n\n        q = p.copy()\n        self.test('copy', q.isequalTo(p), True)\n        self.test('isEllipsoidal', q.isEllipsoidal, True)\n        self.test('isSpherical', q.isSpherical, False)\n\n        self.test('copy', q.toStr(F_DMS, prec=4), '37°57′03.7203″S, 144°25′29.5244″E')\n\n        self.testKarneyVincenty(module, LatLon, d, X=X, GS=GS)\n        self.testKarneyVincentyError(module, LatLon, d, K=True, X=X, GS=GS)\n\n    def testKarney_s(self, module, X=False):\n\n        self.subtitle(module, 'Karney_s')\n\n        ll1 = module.LatLon(-41.32, 174.81)\n        # <https://GeographicLib.SourceForge.io/html/python>\n        d = ll1.geodesic.Inverse(-41.32, 174.81, 40.96, -5.50)\n        self.test('.lat1', d.lat1, -41.320, fmt='%.3f')\n        self.test('.lon1', d.lon1, 174.810, fmt='%.3f')\n        self.test('.azi1', d.azi1, 161.067669986160, fmt='%.12f', known=abs(d.azi1 - 161.067669986160) < 1e-11)\n        self.test('.lat2', d.lat2,  40.960, fmt='%.3f')\n        self.test('.lon2', d.lon2,  -5.500, fmt='%.3f')\n        self.test('.azi2', d.azi2,  18.825195123247, fmt='%.12f', known=abs(d.azi2 -  18.825195123248) < 1e-12)\n        self.test('.s12',  d.s12, 19959679.267353821546, fmt='%.12f', known=True)\n\n        d3 = ll1.distanceTo3(module.LatLon(40.96, -5.50))\n        t = fstr(d3, prec=-6)\n        self.test('distanceTo3', t, '19959679.267354, 161.067670, 18.825195', known=True)\n        ll2, d2 = ll1.destination2(19959679.26735382, 161.067669986160)\n        self.test('destination2', fstr((ll2.lat, ll2.lon, d2), prec=12), '40.96, -5.5, 18.825195123247')\n\n        # <https://GeographicLib.SourceForge.io/scripts/geod-calc.html>\n        LL = module.LatLon\n        p = LL(-63.1,  -58), LL(-72.9,  -74), LL(-71.9, -102), \\\n            LL(-74.9, -102), LL(-74.3, -131), LL(-77.5, -163), \\\n            LL(-77.4,  163), LL(-71.7,  172), LL(-65.9,  140), \\\n            LL(-65.7,  113), LL(-66.6,   88), LL(-66.9,   59), \\\n            LL(-69.8,   25), LL(-70.0,   -4), LL(-71.0,  -14), \\\n            LL(-77.3,  -33), LL(-77.9,  -46), LL(-74.7,  -61)  # on/around south pole!\n        self.test('areaOf', module.areaOf(p), '1.366270368e+13', fmt='%.9e')  # 1.366270368002013e+13'\n        self.test('perimeterOf', module.perimeterOf(p, closed=True), '1.683089136e+07' if X else '1.683106789e+07', fmt='%.9e')  # 1.683106789279071e+07\n        self.test('isclockwise', module.isclockwise(p), False)  # polar\n        self.test('isclockwise', module.isclockwise(reversed(p)), True)  # polar\n\n        # <https://StackOverflow.com/questions/4681737/how-to-calculate-the-area-of-a-polygon-on-the-earths-surface-using-python>\n        # <https://GeographicLib.SourceForge.io/cgi-bin/Planimeter?\n        #        type=polygon&rhumb=geodesic&input=41+-102.05%0D%0A37+-102.05%0D%0A37+-109.05%0D%0A41+-109.05&option=Submit>\n        co = LL(41, -102.05), LL(37, -102.05), LL(37, -109.05), LL(41, -109.05)  # State of Colorado\n        self.test('areaCO', module.areaOf(co), '2.69154549884e+11', fmt='%.11e', known=True)\n        self.test('isclockwise', module.isclockwise(co), True)\n        self.test('perimeterCO', module.perimeterOf(co, closed=True), '2098430.887891' if X else '2099854.381923', prec=6, known=True)\n\n    def testVincenty(self, module, datum, X=False, GS=False):\n\n        d = datum\n        self.subtitle(module, 'Vincenty', datum=d.name)\n        LatLon = module.LatLon\n\n        Newport_RI = LatLon(41.49008, -71.312796, datum=d)\n        Cleveland_OH = LatLon(41.499498, -81.695391, datum=d)\n        m = Newport_RI.distanceTo(Cleveland_OH)\n        self.test('distanceTo', m, '866455.43292', fmt='%.5f')\n\n        if hasattr(LatLon, 'toCartesian'):\n            c = Cleveland_OH.toDatum(Datums.OSGB36)\n            self.test('toDatum', c.datum.name, 'OSGB36')\n            try:\n                m = Newport_RI.distanceTo(c)\n                self.test('ValueError1', None, ValueError.__name__)\n            except ValueError as x:\n                self.test('ValueError2', x, \"Ellipsoid 'Airy1830': incompatible with Ellipsoid %r\" % (d.ellipsoid.name,))\n            except Exception as x:\n                self.test('ValueError3', x, ValueError.__name__)\n\n        p = LatLon(-37.95103342, 144.42486789, datum=d)\n        self.test('isEllipsoidal', p.isEllipsoidal, True)\n        self.test('isSpherical', p.isSpherical, False)\n\n        self.test('epsilon', p.epsilon, 1e-12)\n        self.test('iterations', p.iterations, 200)\n\n        q = p.copy()\n        self.test('copy', q.isequalTo(p), True)\n        self.test('isEllipsoidal', q.isEllipsoidal, True)\n        self.test('isSpherical', q.isSpherical, False)\n\n        self.test('copy', q.toStr(F_DMS, prec=4), '37°57′03.7203″S, 144°25′29.5244″E')\n\n        q.epsilon, q.iterations = EPS, 400\n        self.test('epsilon', q.epsilon, EPS, fmt='%.12e')\n        self.test('iterations', q.iterations, 400)\n        self.test('iteration', q.iteration, None)\n\n        self.testKarneyVincenty(module, LatLon, d, X=X, GS=GS)\n        self.testKarneyVincentyError(module, LatLon, d, K=False, X=X, GS=GS)\n\n    def testKarneyVincenty(self, module, LatLon, d, **unused):  # GS=False, X=False\n\n        self.subtitle(module, 'KarneyVincenty', datum=d.name)\n\n        p = LatLon(-37.95103342, 144.42486789, datum=d)\n        t = p.distanceTo(p)\n        self.test('coincident', t, '0.0')\n        t = p.distanceTo3(p)\n        self.test('coincident', fstr(t), '0.0, 0.0, 0.0')\n\n        q = p.destination(54972.271, 306.86816)\n        t = q.toStr(F_D, prec=4)\n        self.test('destination', t, '37.6528°S, 143.9265°E')\n        self.test('destination', isinstance(q, LatLon), True)\n\n        q, f = p.destination2(54972.271, 306.86816)\n        t = q.toStr(F_D) + ', ' + compassDMS(f, prec=4)\n        self.test('destination2', t, '37.652821°S, 143.926496°E, 307.1736°NW')\n        self.test('destination2', isinstance(q, LatLon), True)\n\n        f = p.finalBearingOn(54972.271, 306.86816)\n        t = bearingDMS(f, prec=4) + ', ' + compassDMS(f, form=F_DMS, prec=2)\n        self.test('finalBearingOn', t, '307.1736°, 307°10′25.07″NW')\n\n        # <https://GitHub.com/ChrisVeness/geodesy/blob/master/test/latlon-ellipsoidal-vincenty-tests.js>\n        # ... Test case (UK), using WGS-84\n        p = LatLon(50.06632, -5.71475, datum=d)\n        q = LatLon(58.64402, -3.07009, datum=d)\n        m = p.distanceTo(q)\n        self.test('distanceTo', m, '969954.166', fmt='%.3f')\n\n        t = p.distanceTo3(q)\n        t = fstr(t, prec=6)\n        self.test('distanceTo3', t, '969954.166314, 9.141877, 11.29722')\n\n        t = p.distanceTo2(q)\n        t = fstr(t, prec=5)\n        self.test('distanceTo2', t, '972708.16174, 11.22502')\n\n        b = p.initialBearingTo(q)\n        t = bearingDMS(b, prec=4) + ', ' + compassDMS(b, form=F_DMS, prec=2)\n        self.test('initialBearingTo', t, '9.1419°, 9°08′30.76″N')\n\n        t = p.destination(m, b)\n        self.test('destination', t.toStr(form=F_D, prec=5), '58.64402°N, 003.07009°W')\n\n        f = p.finalBearingTo(q)\n        t = bearingDMS(f, prec=4) + ', ' + compassDMS(f, form=F_DMS, prec=2)\n        self.test('finalBearingTo', t, '11.2972°, 11°17′49.99″NNE')\n\n        f = p.finalBearingOn(m, b)\n        t = bearingDMS(f, prec=4) + ', ' + compassDMS(f, form=F_DMS, prec=2)\n        self.test('finalBearingOn', t, '11.2972°, 11°17′49.99″NNE')\n\n        p = LatLon(52.205, 0.119)\n        q = LatLon(48.857, 2.351)\n        m = p.distanceTo(q)\n        self.test('distanceTo', m, '404607.806', fmt='%.3f')\n\n        t = p.distanceTo3(q)\n        t = fstr(t, prec=6)\n        self.test('distanceTo3', t, '404607.805988, 156.11064, 157.8345')\n\n        t = p.distanceTo2(q)\n        t = fstr(t, prec=6)\n        self.test('distanceTo2', t, '402574.597287, 157.726344')\n\n        b = p.initialBearingTo(q)\n        t = bearingDMS(b, prec=4) + ', ' + compassDMS(b, form=F_DMS, prec=2)\n        self.test('initialBearingTo', t, '156.1106°, 156°06′38.31″SSE')\n\n        t = p.destination(m, b)\n        self.test('destination', t.toStr(form=F_D, prec=5), '48.857°N, 002.351°E')\n\n        f = p.finalBearingTo(q)\n        t = bearingDMS(f, prec=4) + ', ' + compassDMS(f, form=F_DMS, prec=2)\n        self.test('finalBearingTo', t, '157.8345°, 157°50′04.2″SSE')  # 157.9\n\n        f = p.finalBearingOn(m, b)\n        t = bearingDMS(f, prec=4) + ', ' + compassDMS(f, form=F_DMS, prec=2)\n        self.test('finalBearingOn', t, '157.8345°, 157°50′04.2″SSE')\n\n        p = LatLon(37.95103, 144.42487, datum=d)\n        q = LatLon(37.65280, 143.9265, datum=d)\n        m = p.distanceTo(q)\n        self.test('distanceTo', m, '54973.295', fmt='%.3f')\n\n        t = p.distanceTo3(q)\n        t = fstr(t, prec=5)\n        self.test('distanceTo3', t, '54973.29527, 233.13008, 232.82461')\n\n        t = p.distanceTo2(q)\n        t = fstr(t, prec=5)\n        self.test('distanceTo2', t, '54903.41209, 232.9209')\n\n        b = p.initialBearingTo(q)\n        t = bearingDMS(b, prec=4) + ', ' + compassDMS(b, form=F_DMS, prec=2)\n        self.test('initialBearingTo', t, '233.1301°, 233°07′48.28″SW')\n\n        t = p.destination(m, b)\n        self.test('destination', t.toStr(form=F_D, prec=5), '37.6528°N, 143.9265°E')\n\n        f = p.finalBearingTo(q)\n        t = bearingDMS(f, prec=4) + ', ' + compassDMS(f, form=F_DMS, prec=2)\n        self.test('finalBearingTo', t, '232.8246°, 232°49′28.59″SW')\n\n        f = p.finalBearingOn(m, b)\n        t = bearingDMS(f, prec=4) + ', ' + compassDMS(f, form=F_DMS, prec=2)\n        self.test('finalBearingOn', t, '232.8246°, 232°49′28.59″SW')\n\n        # <https://GitHub.com/maurycyp/vincenty> Maurycy Pietrzak\n        Boston = LatLon(42.3541165, -71.0693514, datum=d)\n        NewYork = LatLon(40.7791472, -73.9680804, datum=d)\n        m = Boston.distanceTo(NewYork)\n        self.test('distanceToMP', m, '298396.057', fmt='%.3f')\n        self.test('distanceToSM', m2SM(m), 185.415, fmt='%.3f')\n\n        p = LatLon(0, 0, datum=d)\n        q = LatLon(0, 1, datum=d)\n        m = p.distanceTo(q)\n        self.test('distanceToMP', m, '111319.491', fmt='%.3f')\n\n        q = LatLon(1, 0, datum=d)\n        m = p.distanceTo(q)\n        self.test('distanceToMP', m, '110574.361', fmt='%.3f', known=int(m) == 110574)\n\n        # <https://PyPI.org/project/pygc> Kyle Wilcox\n        p = LatLon(0, 50, datum=d)\n        q = LatLon(0, 52, datum=d)\n        m = p.distanceTo(q)\n        self.test('distanceToKW', m, '222638.982', fmt='%.3f')\n\n        q = LatLon(0, 49, datum=d)\n        m = p.distanceTo(q)\n        self.test('distanceToKW', m, '111319.491', fmt='%.3f')\n\n        # <https://www.Movable-Type.co.UK/scripts/latlong-vincenty.html>\n        # ... Test case (from Geoscience Australia), using WGS-84\n        FindersPeak = LatLon('37°57′03.72030″S', '144°25′29.52440″E')\n        Buninyong = LatLon('37°39′10.15610″S', '143°55′35.38390″E')\n        m, b, f = FindersPeak.distanceTo3(Buninyong)\n        self.test('distanceTo3', m, '54972.271', fmt='%.3f')\n        self.test('distanceTo3', bearingDMS(b, F_DMS), '306°52′05.37″')\n        self.test('distanceTo3', bearingDMS(f, F_DMS), '307°10′25.07″')\n        m, b = FindersPeak.distanceTo2(Buninyong)\n        self.test('distanceTo2', m, '54902.390', fmt='%.3f')\n        self.test('distanceTo2', bearingDMS(b, F_DMS), '307°04′38.41″')\n\n    def testKarneyVincentyError(self, module, LatLon, d, K=False, X=False, **unused):  # MCCABE 21, GS=False\n\n        self.subtitle(module, 'KarneyVincentyError', datum=d.name)\n\n        def _i(name, ll):\n            return '%s (%s)' % (name, ll.iteration)\n\n        # <https://GitHub.com/ChrisVeness/geodesy/blob/master/test/latlon-ellipsoidal-vincenty-tests.js>\n        # ... Test case (antipodal), using WGS-84\n        p = LatLon(0, 0, datum=d)\n        q = LatLon(0.5, 179.5, datum=d)\n        try:\n            m, t, fmt = p.distanceTo(q), '19936288.579', '%.3f'\n        except VincentyError as x:\n            m, t, fmt = str(x), 'no convergence: ...', '%s'\n        self.test(_i('distanceTo/antipodal', p), m, t, fmt=fmt, known=True)\n\n        q = LatLon(0.5, 179.7, datum=d)\n        try:\n            m, t, fmt = p.distanceTo(q), '19944127.421', '%.3f'\n        except VincentyError as x:\n            m, t, fmt = str(x), 'no convergence: ...', '%s'\n        self.test(_i('distanceTo/VincentyError', p), m, t, fmt=fmt, known=True)\n        try:\n            b, t, fmt = p.initialBearingTo(q), '15.556883', '%.6f'\n        except VincentyError as x:\n            b, t, fmt = str(x), 'no convergence: ...', '%s'\n        self.test(_i('initialBearingTo/VincentyError', p), b, t, fmt=fmt, known=True)\n        try:\n            f, t, fmt = p.finalBearingTo(q), '164.442514', '%.6f'\n        except VincentyError as x:\n            f, t, fmt = str(x), 'no convergence: ...', '%s'\n        self.test(_i('finalBearingTo/VincentyError', p), f, t, fmt=fmt, known=True)\n\n        q = LatLon(0, 180, datum=d)\n        try:\n            m, t, fmt = p.distanceTo(q), '20003931.46', '%.2f'  # '20001517.12',\n        except VincentyError as x:\n            m, t, fmt = str(x), 'ambiguous, ...', '%s'\n        self.test(_i('distanceTo/equatorial', p), m, t, fmt=fmt, known=True)\n        try:\n            b, t, fmt = p.initialBearingTo(q), '0.0', '%.1f'\n        except VincentyError as x:\n            b, t, fmt = str(x), 'ambiguous, ...', '%s'\n        self.test(_i('initialBearingTo/equatorial', p), b, t, fmt=fmt, known=True)\n\n        q = LatLon(0, 1, datum=d)\n        m = p.distanceTo(q)\n        self.test(_i('distanceTo/coincident', p), m, '111319.491', fmt='%.3f')  # 40075016.686 / 360\n\n        q = LatLon(-90, 0, datum=d)\n        m = p.distanceTo(q)\n        self.test(_i('distanceTo/meridional', p), m, '9999551.606' if X else '10001965.729', fmt='%.3f')\n        b = p.initialBearingTo(q)\n        self.test(_i('initialBearingTo/meridional', p), b, 180.0, fmt='%.1f')\n\n        # <https://GitHub.com/ChrisVeness/geodesy/blob/master/test/latlon-ellipsoidal-vincenty-tests.js>\n        # ... Test case (coincident), using WGS-84\n        p = LatLon(50.06632, -5.71475, datum=d)\n        m = p.distanceTo(p)\n        self.test(_i('distanceTo/coincident', p), m, '0.0', fmt='%.1f')\n        try:\n            b, t, fmt = p.initialBearingTo(p), '180.0' if K else '0.0', '%.1f'\n        except VincentyError as x:\n            b, t, fmt = str(x), 'no convergence: ...', '%s'\n        self.test(_i('initialBearingTo/coincident', p), b, t, fmt=fmt, known=True)  # NaN\n        try:\n            f, t, fmt = p.finalBearingTo(p), '180.0' if K else '0.0', '%.1f'\n        except VincentyError as x:\n            f, t, fmt = str(x), 'no convergence: ...', '%s'\n        self.test(_i('finalBearingTo/coincident', p), f, t, fmt=fmt, known=True)  # NaN\n        try:\n            q, t = p.destination(0, 0), '50.06632°N, 005.71475°W'\n        except VincentyError as x:\n            q, t = str(x), 'no convergence: ...'\n        self.test(_i('destination/coincident', p), q, t, known=True)\n\n        # <https://GitHub.com/ChrisVeness/geodesy/blob/master/test/latlon-ellipsoidal-vincenty-tests.js>\n        # ... Test case (crossing anti-meridian), using WGS-84\n        p = LatLon(30,  120, datum=d)\n        q = LatLon(30, -120, datum=d)\n        m = p.distanceTo(q)\n        self.test(_i('distanceTo/anti-meridian', p), m, '10825924.1', fmt='%.1f')\n\n        # <https://GitHub.com/ChrisVeness/geodesy/blob/master/test/latlon-ellipsoidal-vincenty-tests.js>\n        # ... Test case (quadrants), using WGS-84\n        for t in (( 30, 30,  60, 60),\n                  ( 60, 60,  30, 30),\n                  ( 30, 60,  60, 30),\n                  ( 60, 30,  30, 60),\n                  ( 30,-30,  60,-60),\n                  ( 60,-60,  30,-30),\n                  ( 30,-60,  60,-30),\n                  ( 60,-30,  30,-60),\n                  (-30,-30, -60,-60),\n                  (-60,-60, -30,-30),\n                  (-30,-60, -60,-30),\n                  (-60,-30, -30,-60),\n                  (-30, 30, -60, 60),\n                  (-60, 60, -30, 30),\n                  (-30, 60, -60, 30),\n                  (-60, 30, -30, 60)):\n            p = LatLon(t[0], t[1], datum=d)\n            q = LatLon(t[2], t[3], datum=d)\n            m = p.distanceTo(q)\n            self.test(_i('distanceTo/quadrants', p), m, '4015703.02', fmt='%.2f')\n\n    def testNOAA(self, module):\n        # <https://www.NGS.NOAA.gov/PC_PROD/Inv_Fwd/readme.htm>\n\n        self.subtitle(module, 'NOAA')\n\n        LatLon= module.LatLon\n\n        def _dfr(d, f, r):\n            r = wrap360(r + 180)  # final bearing to back azimuth\n            t = d, normDMS(bearingDMS(f, form=F_DMS, prec=4), norm=' '), \\\n                   normDMS(bearingDMS(r, form=F_DMS, prec=4), norm=' ')\n            return '%.4f, %s, %s' % t\n\n        p = LatLon('34 00 12.12345 N', '111 00 12.12345 W', datum=Datums.WGS84)  # Jones\n        q = LatLon('33 22 11.54321 N', '112 55 44.33333 W', datum=Datums.WGS84)  # Smith\n        t = p.distanceTo3(q)\n        self.test('NOAAexample1', _dfr(*t), '191872.1190, 249 03 16.4237, 67 59 11.1619')\n\n        p = LatLon('45 00 12.0 N', '68 00 0.0 W', datum=Datums.NAD27)  # Charlie\n        q = LatLon('44 33 0.0 N', '70 12 34.7890 W', datum=Datums.NAD27)  # Sam\n        t = p.distanceTo3(q)\n        self.test('NOAAexample2', _dfr(*t), '182009.1679, 254 42 44.6439, 73 09 21.3315')\n\n        p = LatLon('34 00 00.0 N', '111 00 00.0 W', height=76)  # Bill\n        q = LatLon('33 31 25.93490 N', '112 12 16.40986 W', height=54)  # George\n        t = p.distanceTo3(q)\n        self.test('NOAAexample3', _dfr(*t), '123456.7891, 245 00 34.7001, 64 20 24.6864')  # ... 30.70, ... 24.6862\n\n        p = LatLon('36 34 42.89133 N', '118 17 31.18182 W', height=4395.8320)  # Mt Whitney, CA\n        q = LatLon('36 01 37.0 N', '116 49 32.0 W', height=-101.8680)  # Bad Water (Death valley), CA\n        t = p.distanceTo3(q)\n        self.test('NOAAexample4', _dfr(*t), '145239.0603, 114 29 26.9586, 295 21 32.6566')  # Ell Dist, FAZ, BAZ\n\n    def testIntersection3(self, m, GS=False, K=False, X=False, V=False):\n\n        def _b(s, e):\n            return s.initialBearingTo(e)\n\n        self.subtitle(m, 'Intersection3')\n\n        # same as testVectorial for now\n        k = GS or K or V or not X\n        LL = m.LatLon\n\n        # <https://www.MathOpenRef.com/coordintersection.html>\n        s1, e1 = LL(15, 10), LL(49, 25)\n        s2, e2 = LL(29, 5),  LL(32, 32)\n        self.test('(30, 17)', s1.intersection3(e1, s2, e2),         '(LatLon(30°52′03.1″N, 015°30′38.41″E), 0, 0)')\n        self.test('(30, 17)', s1.intersection3(_b(s1, e1), s2, e2), '(LatLon(30°52′03.1″N, 015°30′38.41″E), -1, 0)')\n        s2 = LL(7, 10)\n        self.test('(-1,  3)', s1.intersection3(e1, s2, e2),         '(LatLon(01°34′52.49″N, 006°00′51.83″E), -1, -2)')\n        self.test('(-1,  3)', s1.intersection3(e1, s2, _b(s2, e2)), '(LatLon(01°34′52.49″N, 006°00′51.83″E), -1, 2)')\n        s2 = LL(62, 32)\n        self.test('(65, 32)', s1.intersection3(e1, s2, e2),                 '(LatLon(56°58′26.51″N, 032°00′00.0″E), 1, 0)')\n        self.test('(65, 32)', s1.intersection3(_b(s1, e1), s2, _b(s2, e2)), '(LatLon(56°58′26.51″N, 032°00′00.0″E), 1, 2)')\n        try:\n            s2 = LL(32 - (49 - 15), 32 - (25 - 10))\n            self.test('(-2, 17)', m.intersection3(s1, e1, s2, e2), IntersectionError.__name__)\n        except Exception as x:\n            self.test('(-2, 17)', x.__class__, IntersectionError)\n        t = m.intersection3(s1, e1, e1, e2)\n        self.test('(49, 25)', t, '(LatLon(49°00′00.0″N, 025°00′00.0″E), 0, 0)', known=t.outside2 in (0, -2))\n\n        # courtesy of U{sbonaime<https://GitHub.com/mrJean1/PyGeodesy/issues/58>}\n        s1, s2 = LL(8, 0), LL(0, 8.4)\n        self.test('#58', s1.intersection3(150.06, s2, 55.61), '(LatLon(01°54′25.65″S, 005°37′48.76″E), 1, -2)', known=k)  # 01°54′25.28″N, 174°22′10.76″W, -1, 2\n        try:\n            s1, s2 = LL(80, 0), LL(0, 84)\n            self.test('#58', s1.intersection3(150.06, s2, 55.61), IntersectionError, knonw=True)\n        except Exception as x:\n            self.test('#58', x.__class__, IntersectionError)  # ...: no convergence (7660.82): tolerance (0.001) too low, near-polar?\n\n        # <https://SourceForge.net/p/geographiclib/discussion/1026621/thread/21aaff9f/>\n        if X and hasattr(LL, 'intersection3'):  # intersect.cpp 2014-11-09\n            t = LL(42, 29).intersection3(LL(39, -77), LL(64, -22), LL(6, 0))\n            self.test('intersection3', t, \"(LatLon(54°43′01.31″N, 014°33′49.88″W), 0, 0)\")\n            self.test('intersection3', t.point.toStr(form=F_D), '54.71703°N, 014.563856°W')\n\n    def testIntersections2(self, m, Eq, GS=False, K=False, X=False, V=False, d_m=1e-6):\n\n        self.subtitle(m, 'Intersections2')\n        LL = m.LatLon\n        n  = Eq.__name__\n\n        def _100p2(t, r, *s):\n            e = max(abs(a.distanceTo(b) - r) for a in s\n                                             for b in t) / r\n            return e, '%g (%% of radius)' % (e,)  # percentages\n\n        def _x(x):\n            return '36.9879°N, 088.1564°W, 38.2441°N, 092.3835°W' if x else (\n                   '36.9892°N, 088.152°W, 38.2377°N, 092.39°W')\n                 # '36.9893°N, 088.151°W, 38.2384°N, 092.3905°W'  # PYCHOK cf. sph.Trig\n\n        # <https://GIS.StackExchange.com/questions/48937/calculating-intersection-of-two-circles>\n        p = LL(37.673442, -90.234036)  # (-0.00323306, -0.7915,   0.61116)\n        q = LL(36.109997, -90.953669)  # (-0.0134464,  -0.807775, 0.589337)\n\n        t = p.intersections2(0.0312705 * R_M, q, 0.0421788 * R_M)  # radians to meter\n        self.test(n, ', '.join(latlonDMS(t, form=F_D, prec=4)), _x(GS or K or X), known=V)   # V and isPython2\n\n        t = m.intersections2(p, 0.0312705 * R_M, q, 0.0421788 * R_M,  # radians to meter\n                             equidistant=Eq, LatLon=LL)\n        self.test(n, ', '.join(latlonDMS(t, form=F_D, prec=4)), _x(GS or K or X))\n#       self.test(n,           latlonDMS(t, form=F_D, prec=4, sep=', '), _x(GS or K or X))  # XXX force DeprecationWarning\n\n        r = PI_4 * R_M\n        t = m.intersections2(LL(30, 0), r, LL(-30, 0), r, equidistant=Eq, LatLon=LL)\n        e, s = _100p2(t, r, q, p)\n        self.test(n, ', '.join(latlonDMS(t, form=F_D, prec=4)), '00.0°N, 035.3478°W, 00.0°S, 035.3478°E' if K or X\n                                                           else '00.0°S, 035.4073°W, 00.0°S, 035.4073°E', known=True)  # 0.0\n                                                              # '00.0°N, 035.2644°W, 00.0°N, 035.2644°E'  # PYCHOK cf. sph.Trig\n        self.test(n, s, s)\n\n        t = m.intersections2(LL(0, 40), r, LL(0, -40), r, equidistant=Eq, LatLon=LL)\n        e, s = _100p2(t, r, q, p)\n        self.test(n, ', '.join(latlonDMS(t, form=F_D, prec=4)), '22.657°N, 000.0°E, 22.657°S, 000.0°E' if K or X\n                                                           else '22.756°N, 000.0°W, 22.756°S, 000.0°W', known=True)  # 0.0\n                                                              # '22.622°N, 000.0°E, 22.622°S, 000.0°E'  # PYCHOK cf. sph.Trig\n        self.test(n, s, s)\n\n        r = R_M * PI / 3\n        t = m.intersections2(LL(30, 30), r, LL(-30, -30), r, equidistant=Eq, LatLon=LL)\n        e, s = _100p2(t, r, q, p)\n        self.test(n, ', '.join(latlonDMS(t, form=F_D, prec=4)), '29.4898°N, 040.1785°W, 29.4898°S, 040.1785°E' if GS or K or X\n                                                           else '29.2359°N, 040.2625°W, 29.2359°S, 040.2625°E', knonw=e < 1.5)\n                                                              # '14.6128°N, 026.1109°W, 14.6128°S, 026.1109°E'  # PYCHOK cf. sph.Trig\n        self.test(n, s, s)\n\n        r = R_M * PI / 4\n        t = m.intersections2(LL(0, 0), r, LL(0, 22.567), r / 2, equidistant=Eq, LatLon=LL)\n        e, s = _100p2(t, r, q, p)\n        self.test(n, ', '.join(latlonDMS(t, form=F_D, prec=4)), '02.7402°S, 044.885°E, 02.7402°N, 044.885°E' if GS or K or X\n                                                           else '01.1557°S, 045.0894°E, 01.1557°N, 045.0894°E', knonw=e < 2.0)\n                                                              # '00.0001°S, 045.0°E,    0.00001°N, 045.0°E'  # PYCHOK cf. sph.Trig\n        self.test(n, s, s)\n\n        # centers at 2 opposite corners of a \"square\" and\n        # radius equal to length of square side, expecting\n        # the other 2 as the intersections ... but the\n        # longitudes are farther and farther out\n        for d in range(5, (11 if coverage else 66), 5):\n            p = LL(d, -d)\n            q = LL(-d, d)\n            r = radians(2 * d) * R_M\n            d = '%s %d' % (n, d)\n            try:  # see .testSpherical\n                t = m.intersections2(p, r, q, r, equidistant=Eq, LatLon=LL)\n                if t[0] is t[1]:\n                    s = ', '.join(latlonDMS(t[:1], form=F_D, prec=4)) + ' abutting'\n                else:\n                    s = ', '.join(latlonDMS(t, form=F_D, prec=4))\n                self.test(d, s, s)\n                _, s = _100p2(t, r, q, p)\n                self.test(d, s, s)\n            except IntersectionError as x:  # XXX no convergence after 55 degrees\n                self.test(n, str(x), '2-tuple', known=True)\n\n        # courtesy of U{Samuel Čavoj<https://GitHub.com/mrJean1/PyGeodesy/issues/41>}\n        R = RandomLatLon(LL, 90, 90)  # +/- 45\n        r = R()\n        s = latlonDMS(r, form=F_D) + ' Random +/- 45'\n        self.test(n, s, s)\n        for _ in range(2 if coverage else 12):\n            p, q = R(), R()\n            try:  # see .testSpherical\n                i1, i2 = m.intersections2(p, p.distanceTo(r),\n                                          q, q.distanceTo(r), equidistant=Eq, LatLon=LL)\n                d, d2 = r.distanceTo(i1), r.distanceTo(i2)\n                if d2 < d:\n                    d, i1, i2 = d2, i2, i1\n                s = ', '.join(latlonDMS_(i1, i2, form=F_D))\n                s = '%s  d %g meter (iteration %d)' % (s, d, i1.iteration)\n                self.test(n, s, s)\n                if d > d_m:  # Equidistant >> EquidistantKarney, see .testAzimuthal\n                    raise IntersectionError(d=d, fmt_name_value='%s (%g)', txt='over')\n            except IntersectionError as x:\n                self.test(n, str(x), 'd < %g m' % (d_m), known=True)  # too distant, near concetric, etc.\n\n\nif __name__ == '__main__':\n\n    from pygeodesy import ellipsoidalExact as X, \\\n                          ellipsoidalNvector as N, \\\n                          ellipsoidalVincenty as V, \\\n                          Equidistant, EquidistantExact, \\\n                          EquidistantGeodSolve, EquidistantKarney\n\n    t = Tests(__file__, __version__)\n\n    t.testEllipsoidal(N, N.Cartesian, N.Nvector)\n    t.testLatLon(N, Nv=True)\n    t.testVectorial(N)\n\n    t.testEllipsoidal(V, V.Cartesian, None, V=True)\n    t.testLatLon(V)\n    t.testNOAA(V)\n    t.testIntersection3(V, V=True)\n    t.testIntersections2(V, Equidistant, V=True, d_m=99999)  # 100 Km vs ...\n    for d in (Datums.WGS84, Datums.NAD83,):  # Datums.Sphere):\n        t.testVincenty(V, d)\n\n    if geographiclib:\n        from pygeodesy import ellipsoidalKarney as K\n        t.testEllipsoidal(K, K.Cartesian, None, K=True)\n        t.testLatLon(K, X=False)\n        t.testNOAA(K)\n        t.testIntersection3(K, K=True)  # ... 1 micrometer\n        t.testIntersections2(K, EquidistantKarney, K=True)  # ... 1 micrometer\n        for d in (Datums.WGS84, Datums.NAD83,):  # Datums.Sphere):\n            t.testKarney(K, d)\n        t.testKarney_s(K)\n\n    if GeodSolve:\n        from pygeodesy import ellipsoidalGeodSolve as GS\n        t.testEllipsoidal(GS, GS.Cartesian, None, GS=True)\n        t.testLatLon(GS, GS=True)\n        t.testNOAA(GS)\n        t.testIntersection3(GS, GS=True)  # ... 1 micrometer\n        t.testIntersections2(GS, EquidistantGeodSolve, GS=True)  # ... 1 micrometer\n        for d in (Datums.WGS84, Datums.NAD83,):  # Datums.Sphere):\n            t.testKarney(GS, d, GS=True)\n        t.testKarney_s(GS)  # X=True\n\n    t.testEllipsoidal(X, X.Cartesian, None, X=True)\n    t.testLatLon(X, X=True)\n    t.testNOAA(X)\n    t.testIntersection3(X, X=True)  # ... 1 micrometer\n    t.testIntersections2(X, EquidistantExact, X=True)  # ... 1 micrometer\n    for d in (Datums.WGS84, Datums.NAD83,):  # Datums.Sphere):\n        t.testKarney(X, d, X=True)\n    t.testKarney_s(X, X=True)\n\n    t.results()\n    t.exit()\n"
  },
  {
    "path": "test/testEllipsoidalGeodTest.py",
    "content": "\n# -*- coding: utf-8 -*-\n\n# Test ellipsoidal function with the C(GeodTest.dat} from U{C. F. F. Karney,\n# GeographicLib<https://GeographicLib.SourceForge.io>}, also available\n# U{here<https://Zenodo.org/record/32156>}, file C{GeodTest.dat}.\n# See also U{Geodesic calculations for an ellipsoid done right\n# <https://GeographicLib.SourceForge.io/scripts/geod-calc.html>}.\n\n__all__ = ('Tests',)\n__version__ = '23.12.18'\n\nfrom bases import geographiclib, TestsBase\n\nfrom pygeodesy import ellipsoidalExact, ellipsoidalKarney, ellipsoidalVincenty, \\\n                      Ellipsoids, VincentyError\n\n_LLX = ellipsoidalExact.LatLon\n_LLK = ellipsoidalKarney.LatLon\n_LLV = ellipsoidalVincenty.LatLon\n\n\nclass Tests(TestsBase):\n\n    def testGeodTest(self, test, line, precV, epsV, precK, epsK, precX, epsX):\n        # format: lat1 lon1 azimuth1 lat2 lon2 azimuth2 s12 as12 m12 S12\n        lat1, lon1, azi1, lat2, lon2, azi2, s12, _, _, _ = map(float, test.split())\n\n        try:  # compute Vincenty destination lat, lon and final bearing\n            ll, fb = _LLV(lat1, lon1).destination2(s12, azi1)\n            self.test(line + 'lat', ll.lat, lat2, prec=precV, known=abs(ll.lat - lat2) < epsV)\n            self.test(line + 'lon', ll.lon, lon2, prec=precV, known=abs(ll.lon - lon2) < epsV)\n            self.test(line + 'fb',  fb,     azi2, prec=precV, known=abs(fb - azi2) < epsV)\n        except VincentyError as x:\n            self.test(line + 'VincentyError', x, None, known=True)\n\n        if geographiclib:  # compute Karney destination lat, lon and final bearing\n            ll, b2 = _LLK(lat1, lon1).destination2(s12, azi1)\n            self.test(line + 'lat2', ll.lat, lat2, prec=precK, known=abs(ll.lat - lat2) < epsK)\n            self.test(line + 'lon2', ll.lon, lon2, prec=precK, known=abs(ll.lon - lon2) < epsK)\n            self.test(line + 'azi2', b2,     azi2, prec=precK, known=abs(b2 - azi2) < epsK)\n\n        ll, b2 = _LLX(lat1, lon1).destination2(s12, azi1)\n        self.test(line + 'lat2', ll.lat, lat2, prec=precX, known=abs(ll.lat - lat2) < epsX)\n        self.test(line + 'lon2', ll.lon, lon2, prec=precX, known=abs(ll.lon - lon2) < epsX)\n        self.test(line + 'azi2', b2,     azi2, prec=precX, known=abs(b2 - azi2) < epsX)\n\n\nif __name__ == '__main__':\n\n    import sys\n\n    if len(sys.argv) > 1:  # get \"GeodTest.dat\" file\n        tests = open(sys.argv[1], 'rb')\n        v = False\n        precV, epsV = 3, 1.9e-3\n        precK, epsK = 8, 1.9e-8\n        precX, epsX = 8, 1.9e-8\n\n    else:\n        try:\n            from StringIO import StringIO\n        except ImportError:\n            from io import StringIO\n        v = True\n        precV, epsV = 6,  1.5e-6\n        precK, epsK = 12, 1.5e-12\n        precX, epsX = 12, 1.5e-12\n\n        # first 500 of the 500,000 lines in file \"GeodTest.dat\"\n        tests = StringIO('''\n36.530042355041 0 176.125875162171 -48.164270779097768864 5.762344694676510456 175.334308316285410561 9398502.0434687 84.663858149358862201 6333544.7732452481809 -559418252332.321555\n62.912967770911 0 119.074519410562 -23.186512533703375483 68.567247430960081525 154.287114123871723086 11254667.2007643 101.34948410954772013 6243126.4334319566678 24901551594881.448587\n2.881248229541 0 27.763592972746 53.997072295385487038 44.520619105667619923 52.159486739947740473 6958264.1576889 62.658669064582460176 5654035.862840240277 17238566899063.427934\n15.543058059808 0 165.300914097354 -49.416672064705806337 166.82808321068892367 22.033030848248991914 16063336.69802 144.535997930981394845 3730158.2076640481146 -101426349516912.422958\n7.656410023405 0 151.07456745694 -60.405136414529743836 110.581139538776836414 75.518295964648694469 11865846.7919421 106.813570461088588378 6105060.7173597274207 -53439722800180.53675\n35.588015734358 0 61.748037768251 -11.212600121556132671 144.177076511359789425 133.027766301029387437 15515045.597482 139.719563133296925693 4130006.1801038544218 50359093425263.7649\n65.656162297631 0 176.971135321064 -6.529066987956306169 2.895923948124535977 178.740350145953804927 8009999.3798375 72.122872435008850655 6059140.1956432440007 1251055292541.359652\n30.533518318799 0 85.971354917522 -8.855512357256652639 112.749196494484880359 119.512003891281849601 12687461.941296 114.310919010718276127 5799408.2575653090308 23675630576744.267289\n29.238894557327 0 8.285992223016 29.866967483293077534 171.726892560962686504 171.662244609397133176 13404610.3533163 120.539419025426201571 5526417.3852308035093 115700414594360.174805\n4.731224406747 0 124.670505428083 -29.238404337998337136 133.459813533283710564 69.814124320813157633 14430782.9853097 129.988518636556796002 4884051.6874703858557 -38732501718055.656275\n75.51148228351 0 83.078727908415 55.600487151982554087 75.128743229495482358 153.896688535571761996 3723062.6140266 33.461326117854864555 3516199.9499673388967 50144837813997.001372\n49.434096553168 0 121.492426162955 -22.858434825398832954 67.207513019331651092 142.939529056687250447 10390945.2847473 93.600913797433934271 6350213.8030348145819 15153811930312.44578\n69.431271600219 0 160.836505874559 -32.634475461067263829 22.238523021935408944 172.112992582333446069 11462378.9330848 103.216641036098150218 6198216.8141054193122 7978005675822.946256\n9.010849979097 0 22.595570363789 62.224984867045180852 47.119133304525191631 54.318105291965165296 7015795.1742086 63.154487812129182241 5682148.7125026896869 22429007854320.616993\n14.64372994794 0 15.026799504039 33.069613195449914273 5.796995960185562748 17.403844642345699255 2123472.323569 19.128777244884873422 2084286.7481321837012 1677849152931.016632\n49.267261230396 0 34.70953369568 53.760899500984702142 119.20430589851807476 141.069793254983383767 7247849.6976504 65.158126022505373806 5791304.0472384722252 75280816233222.014561\n37.673622543409 0 83.929705275651 -3.225632004244734605 103.742354347526275933 127.880328388523563663 11440592.6041698 103.050946575205294017 6202435.800752108356 31036080066856.977947\n9.903006408449 0 42.161189985253 47.108712008352567441 99.93410735838654628 104.103491123037808204 9951338.2587212 89.586452691503851389 6372686.0386036167927 43773919694178.531425\n4.81766601028 0 77.585971920787 5.399363208348655124 135.250063670789734431 102.177017677369766623 14934241.1292402 134.592258677281558105 4529846.4052708146851 17345996058004.905562\n23.997257867127 0 154.652103205115 -58.669224697402902434 54.875014559502078324 131.345308028427832621 10456532.7345179 94.175020977359294291 6347953.2379287200598 -16476912634806.11821\n13.320487305712 0 52.885328556715 9.184228666560197378 151.302636871911434271 128.175105446048411097 15992616.9668738 144.02859296572290717 3758113.7445070520803 53168532477896.602091\n11.426121149489 0 36.661518374479 53.467939714246953208 67.724192258332804312 78.863492168727103044 7523817.2236513 67.733947111963973 5893483.7949206756713 29825655567886.074557\n12.450771501443 0 51.833024203378 39.699455912449005615 67.156324625647345425 85.276829539877646927 7185925.8370823 64.716088373368477583 5754809.8287294847493 23617185395399.468387\n25.637954641151 0 7.771604073213 70.942602144324344714 17.379213644124078423 21.869008256311540091 5157420.0236623 46.39931828516223762 4613884.6645766322919 9973895471403.256837\n64.532563494597 0 32.386111613387 69.633349004538138083 110.601933261211357292 138.575192608514502852 4182294.0443743 37.581418393486804033 3890590.6602304707689 75200736365895.735752\n43.490825907507 0 79.577181597122 16.190814826165394745 87.606993293114071408 131.92940950703932379 8599025.6283719 77.416522018614342411 6216720.016880406038 36987353763638.421293\n36.959641322378 0 46.115014139012 54.774904542264254729 52.952506835522642928 85.904050867675986538 4429667.3228199 39.852623320342363961 4082314.7451962365681 28133848636636.247529\n49.335855077049 0 164.340861233836 -62.008568677306543298 172.274876714259906956 21.992601380428880091 18515195.0943815 166.621466455094483308 1492687.4253517237052 -100808961041389.130228\n12.671683150446 0 26.486476107039 27.303729660018309396 159.184451093392926517 150.697920369702518187 15048952.4710535 135.40445670641063035 4509443.0049480220123 87864289836267.171987\n16.893963000253 0 62.39454334819 31.979897342657852696 55.946758945497236631 87.398292964766602599 5847962.731732 52.674538121314982322 5059357.1492701126785 17650959117477.641033\n31.139604566062 0 27.565873937078 49.991467522545417544 133.96241119146678476 142.016540226251410949 9939788.0275973 89.389011831585247038 6387271.3190976276149 80988552229838.549731\n34.599988294336 0 166.387927615662 2.81855884227782685 7.234774421858760424 168.804029404993467036 3597526.7300894 32.412464450271497792 3408826.3447636112217 1705331315160.228814\n34.925303445343 0 121.241074862675 -38.118070550305277383 93.395971367720076098 117.017376985227903935 12559533.5645849 113.151779835803174813 5848371.0945372793911 -2983532967248.145458\n47.085699953661 0 106.166306945526 3.377824468034521099 65.294745963254786023 138.982543784559539308 7881773.4010645 70.982274831566017912 6017543.6972735839468 23180884012977.226796\n42.42109773843 0 90.251828651418 4.631157299023652512 84.335044694540457806 132.120804319473515361 9200537.9686874 82.85963942287029988 6317015.4565433254978 29571787161260.21281\n64.666501974273 0 36.879255647851 38.95221521950675959 133.416463103112854127 160.690585690748686425 7821879.0965592 70.316709797109643535 6010733.479471329554 87660636995618.022007\n44.031384767694 0 77.492914985025 -39.013296805131325253 160.302849365986273941 115.363714797610358389 18289653.4563314 164.720955132452512122 1681182.1705990921178 26766218367872.015159\n8.844075925912 0 153.067452138574 -48.456093143589437295 38.613821719885969569 137.651668464815052952 7389056.0000217 66.559126437158172284 5837083.1191384870412 -10889258553010.5852\n52.476185025541 0 110.636930432732 -13.861956131519484445 74.250571564775901948 143.968262419704497829 10183890.4042073 91.721691232349206524 6362507.0001123906965 23553657256478.321412\n8.976365449267 0 63.898816738176 25.289201968371266546 47.063578519727353671 78.672532588106343923 5290497.6026118 47.668902224382218871 4701326.1651246356267 10424717010585.798424\n63.08923513506 0 33.398602909575 49.498121110507357467 131.993365399320304741 157.425605424889536215 6830237.4756285 61.390109967914399041 5603408.3062655532341 87819384410169.976167\n33.794130897525 0 111.850293446187 -2.104241718493654396 56.532079408825217729 129.406954892035424479 7119055.4336308 64.141898435245081481 5723367.1586376420029 12392075259496.328122\n24.491583454564 0 143.756427949791 -39.997315471628972475 49.004258662720912374 135.432994751523173741 8762329.3850261 78.946839983586964774 6241916.1765066750873 -5878181475070.129716\n29.713553114443 0 77.49059468183 9.333271992381416199 98.670857333200301844 120.694280236304113488 10330974.8552083 93.056223109496083789 6356992.0673499047907 30500018608229.417566\n48.48043688093 0 32.947418626872 38.653646179484441622 136.060467518677213323 152.489415748331057845 9426008.3631053 84.754261565900787363 6360864.0848639650457 84604545216811.02796\n13.896748175492 0 54.52053350004 -4.564994956240214845 166.894968092835703734 127.520036113640947625 18254889.7571327 164.425950954215566403 1729849.2634206553164 51546736056865.855262\n51.661592917381 0 4.452157407826 -38.522500159619912054 178.679306959466138844 176.468684587437611312 18540185.6161794 166.829588271464169283 1483380.7914904332674 121848454457387.193167\n56.3269751734 0 24.658607700525 45.529795503687501491 145.048737846272554942 160.706226714169064006 8253949.1895893 74.191839148385005478 6145057.5333656163073 96330381402702.393275\n43.333911233427 0 173.019242079634 -2.968924563433199128 5.044082955484587151 174.913527615338350788 5153026.4694777 46.421337494700817662 4607924.2654487386697 1337595627933.543705\n39.001678538466 0 24.591382667984 1.618184178387125103 163.262955108027678135 161.09772971386841808 15194490.3704939 136.702262971171421382 4406640.7966952381381 96607345224486.64928\n63.758775485865 0 63.327049113388 25.17974033943720596 107.504991932891908801 154.05555223257211081 8337896.7811702 74.995657826681196357 6161977.3081946679644 64201492089310.286611\n21.399072590463 0 34.661527757273 57.391251345243967151 89.082271206721964021 101.27611455375290594 7974419.4482318 71.7540793160630804 6053926.9977463336317 47107642231231.85856\n47.967022403547 0 130.016325821124 -11.470672507979396723 48.285094684224854882 148.389695684750002628 8123586.3046895 73.177040076110441065 6089944.9618503324637 12978551999357.690171\n18.912843152349 0 65.312622112164 27.356639349122835344 84.391681754671188822 104.661818309238396464 8535264.7666499 76.875500330038308305 6198696.1360798827935 27779190421936.317364\n53.91858081059 0 107.773420301503 -40.533597900970847686 103.488381204008843713 132.398259207370627207 14330915.6890974 129.067367666996053091 4942326.792354242388 17410890728273.067115\n55.496983044446 0 19.104260736838 52.337949466456523592 149.908278798430181246 162.333474334205108746 7734671.6724793 69.515528979665798782 5982247.5566080689881 101429347549104.453629\n33.506365611803 0 146.134838860662 -58.474075605819738855 78.7186055605329346 117.457565115569101509 12505869.2696334 112.628139192634925213 5875851.2066026199438 -20277605247299.091325\n11.583629854123 0 175.405841079194 -35.840568348239475134 4.157534199469788225 174.451066901814232803 5267069.8227735 47.459028881819562988 4685304.7307793504905 -673981751831.778245\n10.229295216134 0 72.127910020525 15.629163409997943457 102.677417064289464034 103.482102722183029137 11045968.5159604 99.529901910481163606 6274136.6891374252135 22122583562740.955366\n11.385616722429 0 80.876668493759 -1.256179633150734234 133.625254783633314458 104.470489013738508911 14791911.8158261 133.308468233706530664 4628542.1997959734114 16643260535437.672496\n18.878721716993 0 126.506486559251 -40.558252601871319412 112.89705386708456919 90.226134266466775247 13270232.7345542 119.542488500691307921 5538080.3481474545731 -25624590642023.493226\n11.680590160491 0 3.454617381719 86.193595821107165314 116.956880430710651346 117.618329340274182003 8905185.9740981 80.109437920394771759 6284171.2594118929493 80865573549985.871467\n4.624672945954 0 84.859617539498 6.874181093561844144 54.891198619260574194 90.820789878786191112 6082040.5178468 54.817510011410934784 5195786.0148775669096 4204393012831.821438\n14.284440635946 0 97.201927360601 -2.554657243384560971 71.539549368441047665 105.722921401612977296 8102681.6827271 73.027278326066566303 6080520.3700239492982 6010449723957.98058\n49.245126292946 0 48.890604376082 1.329645321136461702 138.134968538140002028 150.465118219878877889 13122810.6665654 118.096979975653016515 5638390.7267605087887 71841688490301.198818\n52.567535980701 0 101.333917966987 -44.026426573445515261 121.367591215509636529 123.975227063717588285 15689524.9613062 141.298586118482115749 3980700.7745432290519 16009030273045.213412\n8.476800870747 0 85.411846946378 -3.399080708673397422 138.655764270174507286 98.994343217446874323 15427033.4589312 139.042850810432243181 4167848.4504067070037 9580100905319.310826\n21.211133111746 0 123.430174457287 -26.776984673364351569 67.020054548341436624 119.394664651635683914 8963095.9449195 80.771003338217735705 6275995.4660582282258 -2848216384103.329073\n49.305010396359 0 17.378266228641 52.05723926904983978 151.887270484247142456 161.537826425477283376 8460859.2421616 76.047924642468289003 6199507.4289227565853 102083422298403.492909\n25.292124359247 0 80.920772697985 3.784724165483273182 102.727744934480926468 116.4531554054392155 11111090.2510494 100.105662533436915162 6264762.7576923090295 25076833177041.55528\n36.359393471816 0 125.907547808617 -40.409298772796866713 86.033195335656813313 121.080297615268009517 12215268.8786999 110.046045092174023741 5975525.541582626796 -3410358215533.164124\n7.035197972016 0 16.840493763342 73.013460186925778849 76.188125151657360753 78.87776945962910291 8811577.1302192 79.293644827840365714 6263784.8066368778234 43902133541180.638829\n47.898956763857 0 61.708136542095 52.870131799666999619 51.020900069545151078 102.113351369331051692 3592351.5930099 32.311353423297759242 3405733.7347661413862 28576280361218.564189\n31.371144087006 0 95.038829595627 28.909631785856762476 17.071526465331372406 103.660711362255135363 1665550.2846815 14.999405550550820854 1646623.4338249408166 6087592163895.266734\n51.949999288565 0 171.138506435006 -58.257854831091299448 15.812862089412024943 169.606337169069613737 12301852.480392 110.785163709269884489 5949768.146617839051 -1083846771649.999162\n3.88996347756 0 155.167945553097 -58.869445004288913981 132.036794965085585441 53.946549037654148249 12656393.8352475 113.899510718180677934 5839566.5953753128131 -71615731394785.034635\n39.819854185972 0 133.177550503651 -45.54704259850543869 77.540663933413047906 126.917177154676469019 12204135.1604139 109.93495493047832773 5980542.951958147291 -4424330141143.762382\n53.906238419729 0 21.597565540644 45.046384823603570871 149.38242876945976636 162.117474447248029643 8661174.050408 77.853005964076328921 6245080.6602695035391 99499568772183.376624\n5.23823083584 0 164.789687149715 -74.853338324199100781 96.07209672095543853 85.425493305288860246 10739064.5751586 96.650133285379783498 6334500.1981856381806 -56177012697341.75533\n23.104516713391 0 116.646256493613 -13.205775181751514372 57.532285422139942929 122.358040028963864846 7443018.8017836 67.077197356965430078 5855749.9166494779297 4030187796005.440987\n5.083671277342 0 93.251069157874 -5.135863872649337681 115.048832990096880586 93.168399576995632604 12838857.2071642 115.720221429087154784 5727027.7367091550769 -58305437622.558448\n34.446980587849 0 135.570387658353 13.355452912309759641 19.253945880531200378 143.568718864193056249 3037507.0168011 27.362197843972206395 2923486.7717393421138 5645935337551.662125\n36.984116640248 0 45.842558309494 .766426443891580595 147.485816830606268876 144.982273873382287301 14657580.5791576 131.931957265463190485 4762176.0433370080845 70089798919624.006087\n70.488815458652 0 20.631606843012 10.228416314659243099 159.204118025562126299 173.11197302748756288 10910936.3186733 98.136363991670042994 6324848.9149942362075 107993197784347.702844\n21.559194636621 0 12.683213040733 73.178089048973846609 131.762699581940471607 135.271161440271341775 8915869.2337664 80.181673874994059337 6289437.6709855756404 86803032925623.741404\n15.067806173607 0 97.772651083729 -16.90871723132077799 149.240493850337138082 90.725082091931811281 16739117.6455835 150.858112213263132668 3096362.6025953445956 -4972094990362.972061\n66.681040053372 0 91.646561698604 -23.440025289756829252 98.819595131758846212 154.388319751570359184 12761250.2849649 114.891652148460828936 5782187.3765512770437 44389048061716.756132\n39.409146973655 0 148.595915265879 -51.344465279370613269 54.299399477395513333 139.903236261795425743 11353780.7523553 102.268031975689130807 6217028.7971459613554 -6144832443236.672814\n6.808768903883 0 37.871880481974 33.922319712554458178 143.463070326988010311 132.788229856712967155 14088307.285157 126.809782407729828799 5121098.8953441382978 67092008884046.605626\n36.982703444905 0 179.616543962684 -83.333068057523963159 177.611924577957562406 2.633768744581642783 14840467.8507368 133.573048432790773514 4625571.5733430764618 -125378040351703.190501\n41.813673151676 0 16.405331944003 20.587333492521720117 164.201962479604314468 166.991083245940221296 12907703.7913101 116.078517467142846426 5756219.5876817085708 106616373108773.02114\n81.833023825449 0 60.123995474598 52.61281538614421497 110.766184475279468991 168.281485715810706354 4562323.774583 41.001650648692565486 4185005.4981187706769 76606470734405.894829\n16.105294911471 0 131.904797964935 -41.681372899642136145 82.150183233451312234 107.012959072513907181 10551884.584959 95.061019405522182528 6337396.0570977477936 -17579107088322.070597\n54.526345137566 0 7.773653323206 27.082807052701802982 171.332530862400505556 174.934339881142140869 10924581.4061629 98.219051475416375929 6331219.9699918788988 118399839865594.378517\n52.125418790586 0 49.90176846866 57.992299464190689001 15.128356773546692481 62.34298208473670643 1162588.691752 10.455170176021143192 1156176.5423144634564 8800889303749.603922\n64.249804270848 0 146.084092210402 -10.526000344959011434 33.778701722506370788 165.687803859940836515 8766416.1986483 78.938067290322435929 6248251.4645329798913 13861682613984.33775\n4.438849098677 0 63.524406400047 25.802394934786791927 98.50253119930099371 97.837270592495947254 10650547.1250328 95.956003632299222222 6328729.9540432635349 24216219386914.607583\n32.167545281004 0 15.730179181123 47.16325546576891 156.720176105541609702 160.291021678920564135 10915214.3981797 98.139454328650182919 6331904.7878083723758 102349755159756.684479\n61.559300187203 0 108.39023739083 47.932062978964284053 35.09471409221675257 137.54506511542545457 2671035.2541507 24.020276800965954505 2593830.8799447825539 20625676702539.705017\n14.532835548091 0 150.5977117649 -60.204339807983975744 117.726217548610045108 72.585010656772232104 12916193.0499398 116.274856236698632908 5720282.5486311684862 -55180537881083.787064\n10.921226035849 0 55.357395703568 35.247410984329374119 59.471562388985018642 81.179468094302121466 6552967.9476886 59.026613241850537737 5455151.8726335506024 18229548126795.283291\n40.365735022656 0 15.602963749057 19.21826804770563416 165.507915017642527586 167.452074301866923668 13240327.1407986 119.073105167344706813 5603790.7624722589778 107511961644445.782225\n67.106835222583 0 38.870657572171 55.428809300888078528 121.956541206928638419 154.501481394520737888 5588483.9031275 50.223999449827840619 4903862.3869554005331 81879433121718.383126\n68.949380257798 0 44.637588242057 49.294374468687378483 119.661419832788623041 157.209488754087441819 5994407.3092052 53.877977665233808091 5154021.6690928913524 79709275018380.095811\n1.353978214987 0 143.143813031951 -32.534872085863344049 152.280609797481380461 45.281812386148205805 15506396.1708873 139.585530346496334075 4154788.4116020964393 -69176257602485.369557\n35.642635084621 0 82.062035338344 -1.097899218946765715 104.69735995962855758 126.298488917783092077 11410935.6779242 102.785102079990524485 6209023.5626441682063 31235245213772.235728\n7.404369017575 0 132.280122049852 -18.034366293950019065 28.460387638998924211 129.520363751000799537 4206924.3248979 37.915395784357547146 3906558.565535026669 -1946840315544.076395\n62.842322572224 0 29.800334622272 76.310832995825354922 80.11052468362523739 106.655921818336268914 3124291.703171 28.075211318363466718 3001506.7846166596468 54427194420994.499345\n15.605731483474 0 48.465411695648 39.838033717901157535 42.98961047786086566 69.69528146422232451 4949263.4800926 44.573460317963126322 4465688.8802502842359 14991101724557.790153\n1.639018345309 0 151.496138693428 -56.710165877845243147 125.242287231675295254 60.1187560131680823 12225494.1272409 110.030229844958291103 5997654.8328508075296 -64634264432590.982506\n15.855026952648 0 34.163809923765 55.796061639165187987 59.736598787303052224 73.536727826062621888 6685140.5029947 60.175745123672763956 5525119.7667624793437 27830360940392.300639\n10.614568238758 0 144.238884596913 -36.553675319552677119 38.656806212281346306 134.414836606695490374 6605623.8477879 59.51820208378900084 5480564.5289019885395 -6935125637851.11415\n51.608950756674 0 44.069317622873 -36.798455994877477331 163.588375017283169921 147.3242040214355212 17915905.8775998 161.26730811753694571 2065230.6163431670175 73060222647740.064061\n34.499131948124 0 124.110195748763 -15.952937085210558866 55.126807113657539101 134.743426025962705864 8071189.326103 72.726433538546497313 6072442.6036576163566 7506281015765.37646\n11.76588215561 0 128.445444885656 -34.573086586710321228 69.304064202465949565 111.515973223075667684 8918849.31472 80.361617315826578917 6270189.6437997324485 -11950617682064.851317\n16.215716057056 0 7.408439705129 26.643498959840949855 1.50048092488194166 7.958966071177607606 1165004.8285076 10.495858240867719311 1158505.7837001120876 388508924209.933632\n1.642674834724 0 29.177853976299 60.891878271763423716 91.543409983652637537 92.2730950362455758 9931149.7293326 89.394385728172346965 6373272.0974046722251 44619364205291.457241\n43.411472221121 0 19.001333854403 64.148186913821551876 136.552579389352694652 147.19322870602970949 7487842.5085465 67.306472707759703075 5889589.8112492686309 90768937553608.503236\n25.453887730695 0 24.584520071297 62.31167774869338713 39.238629619778292526 53.78589332444363108 5019894.7199129 45.170419099317422141 4517468.5078418338855 20649721775477.865914\n64.993189876625 0 38.018885135551 27.239733033114883155 136.649227320518020072 162.935700444146301212 9121093.480273 82.01662442154982575 6323566.8863524016788 88438048496728.95224\n60.889795730578 0 10.532570098252 6.562844367534484798 170.15900709434291393 174.85134517458345533 12475973.5475584 112.21207404928834131 5924515.2700090767267 116383691517868.400405\n57.04127718334 0 94.919868984137 -29.537259231420067439 105.350044044461756901 141.393876478961542963 13620924.838441 122.660987593183621986 5362850.9396325683362 32860882432328.071311\n60.978643537156 0 140.474222105121 -66.447699831143443296 83.741960628420151773 129.422490051758175534 15687934.8126056 141.240336312857354519 3986753.1305105185906 -7822542535263.158911\n32.123115445334 0 23.38510368802 56.926817599968096449 20.1971170588961402 37.960006049295442046 3162677.875824 28.458924606506385286 3034650.8379222131861 10304054040768.542958\n58.797840343884 0 56.928302334159 55.018265995959122076 83.735441278690692548 130.766514657995262908 4780352.4346638 42.975526529806668021 4346832.7995004770906 52256821636368.033286\n22.202879028004 0 169.770590151956 -78.131053729786100635 56.09817635932642261 127.132203471256548782 11686060.1389879 105.203427352166662752 6149894.0761225089597 -30182597923715.406871\n25.106481366095 0 107.940945983295 -18.223027345294129929 86.221345156045042597 114.875019395395574661 10491611.8298357 94.547312536853968611 6338285.7543086794512 4893411938681.754777\n24.960880065837 0 121.91120003799 -16.100412777564627162 54.195259657284100046 126.748473963924217284 7429091.1457004 66.95008254306999708 5850376.8124583278694 3413506579258.832199\n43.821476474756 0 104.211675347897 -15.192944143353673943 85.057605312625081443 133.468780913302085511 10776666.0281384 97.0794317961459894 6314834.5537843399664 20664608634683.413062\n38.638954341593 0 88.705960434571 -1.279756550060796468 93.430943123745488266 128.545661704819814661 10399099.9308788 93.669942428268920937 6352403.3642702965607 28132549918372.043798\n16.453346963544 0 121.094998098232 -29.465712645249150927 79.050045796724820227 109.482097420925889895 9881221.6365467 89.04162431784249498 6358034.3284215258137 -8196337701325.977217\n2.313140808847 0 58.3221781927 31.819596255581056403 88.251997328019101892 91.173935030537722958 9714162.0920061 87.513623648833368947 6356990.7974976661945 23189359246371.094253\n.384481324443 0 153.330159683047 -63.260477387264792299 96.535465277414860409 84.208873088520732131 10370985.9514813 93.348756322476606702 6364367.9140288482187 -48890763759081.178893\n13.219213385707 0 69.880456686163 12.908849199388031348 116.734308245854221967 110.313865884978004382 12477283.6158877 112.416686577439777585 5884415.4780549774435 28532330489542.852483\n27.356362633595 0 161.130977136877 -73.345839080077979694 99.753937450114115582 89.074641755278530858 13203937.8736131 118.86523513738713513 5584330.1599414098813 -51002388849589.749997\n5.488011725705 0 168.723562733006 -58.777033293076301197 161.963989905489443137 21.998888971547690234 13893751.4889353 124.996491754660006134 5246149.7102100822342 -103891882373900.000985\n31.027138293626 0 105.713678101658 5.093068996650957756 53.687921438754064179 124.015842231205040438 6289472.367629 56.665745021016531531 5313886.7617347639715 12917031047756.782877\n39.561788005441 0 49.623608517651 35.659488664161195063 111.729315023485090819 133.697281357224465572 9137431.7060819 82.206381042489058605 6320521.5759506729685 59446568146194.189698\n9.365703185509 0 117.514050405621 -24.330783755993681155 71.666567863169498133 106.278062394906532393 8622651.143068 77.705796305372042791 6212488.9022163606881 -7928047336405.021855\n24.498938706676 0 133.05200462986 -46.218742288678102651 91.58007778869994691 106.279110700398463937 12050354.8421526 108.550776585488708262 6032881.3901185545233 -18915010007133.174413\n71.268543687759 0 59.77806463364 50.143352562967794792 101.322502529614900453 154.314496467351817235 5203012.1247675 46.766538605908926541 4647341.6734580074077 66934534232642.400881\n23.544845000338 0 89.38790851495 -16.604375537698709402 134.279201209116874988 106.895989785631793913 15208288.1076431 137.048601550764912644 4333806.0653446399799 12355167267362.268327\n38.263951306103 0 19.916514668653 54.031289901242443439 144.862701667601447669 152.937009701639052462 9239174.511395 83.061498323359864433 6341903.3494873326423 94173621309373.222307\n23.562635615291 0 80.573281377538 .616910921891635868 110.974662272004912692 115.206118431861710978 12120175.1033395 109.204058485726389675 6009298.5779596710809 24440198924826.338413\n61.811416615593 0 5.210785345513 -6.243779047728270441 175.658894820005592479 177.520147377314802192 13828042.0566139 124.398710524397575281 5284463.913920494343 122056743536456.526391\n13.669054148218 0 175.882921853998 -70.416698815768998398 169.642468357273528972 11.978943348082444009 13659776.1656234 122.907016807912071721 5369309.6642484363946 -116097163697384.947771\n25.239863555674 0 72.660722517458 19.558616692495251553 88.645708539223010883 113.578814362496618689 8979040.4729696 80.873684947725551533 6284716.4309433480087 28886005362168.772019\n42.574228047871 0 42.484577412642 -23.555114207891525381 162.457529431664418011 147.104330772141315424 17353287.2799453 156.208135240676972026 2595315.5095251938167 73996486653921.795261\n45.948664491925 0 125.501505529871 -51.275737933996271494 103.747943009536247178 115.235373813929389854 14618302.2574747 131.65788987679485316 4754834.0114845676918 -7258666613688.728352\n6.207840098865 0 46.932489817344 25.37460155252639202 143.135783283238833788 126.548735117002698534 14719464.3826153 132.537318807914037472 4709430.1347141916788 56241730227226.656007\n23.293901585878 0 30.11522926978 23.967824782385457861 153.611115762586601851 149.71411642602454622 14054961.6046631 126.453949634480673884 5156108.9791990843407 84594284106270.037797\n5.137007523384 0 112.450171526302 -22.787506689567668284 111.258646767306005306 86.335099650483121234 12416199.1495246 111.88414464780866759 5902652.0130660953839 -18427189745584.973914\n13.49052916217 0 149.841874885262 -59.789841532293534065 114.0549834222546852 75.61260524272574761 12631733.3880672 113.717236654455340942 5839254.3875498760748 -52500201865716.183446\n55.121886116223 0 60.310560136943 -2.802505438545373872 126.245955176418434911 150.100575968176290064 12480126.5458992 112.32747498677505816 5905357.2950359764575 63505624285836.478239\n1.64634475425 0 53.4096539003 35.735653026164747412 102.768725495109981254 99.024701978368740318 11056439.1336091 99.587315232066780719 6278303.9703253250913 32209508293527.974629\n33.220561601385 0 60.944147422931 15.906681603252465748 117.446653873859610414 130.449965412146623536 11441622.3283164 103.009208604710885088 6213040.5184963080271 49102753878996.129329\n8.578624774979 0 159.881536052134 -54.375987804166438992 33.243362594038374877 144.361175098783120134 7638701.0986741 68.798505999362127026 5932815.9290899905514 -10966985471201.924372\n5.77970608814 0 68.289732837182 3.588250783959711994 156.659583234995199502 112.153293017227595771 17238719.0136839 155.335091342470098071 2662081.4751240302938 30949183894332.264383\n61.311328199397 0 89.57002169026 -51.719977004790021053 134.141060992499470161 129.170451102958259156 17067257.2707292 153.664139524494415219 2827433.5495539228509 28019376019642.107609\n24.953400204545 0 60.873278298893 22.935153219965243145 109.461291078916797899 120.676555897335531052 10751192.9312926 96.808318888805579289 6327337.9979921328677 42235052306875.616295\n37.28650419962 0 105.846589706801 -5.31468999017340053 70.995224692450001666 129.681272635793703055 8710146.2891495 78.471600399555701121 6233113.1687980880415 16826926825355.060259\n30.160079821538 0 28.41535255758 49.147133873971183685 16.182514450690278252 38.926644196247833733 2512645.2482055 22.616141106216277157 2448080.2241452205773 7427690246558.576607\n16.654648572154 0 143.543915057454 -55.079363368716652794 93.170898482120550441 97.017491592293405748 11709356.2799059 105.44761599839894611 6138920.2240006241971 -32888088228817.416906\n4.770995501813 0 60.912246501358 26.410770923895313444 109.934003168640763715 103.660846029905783223 11744138.4659669 105.798312770756343481 6125663.2729206456382 30174174874452.667597\n8.508198845478 0 84.082450769329 -2.539669792389350667 138.682325493918155242 100.016568432751889991 15413933.4624267 138.923296944556152637 4178196.1193601004861 11238903358508.795814\n34.963300781157 0 105.181589969978 10.56329945264939349 50.532119480076461094 126.356065708364370669 5772408.2365698 51.997773511859326469 5012898.2468387978666 14947662873570.640371\n66.856398707289 0 64.613916203622 51.443871023711154125 88.799161779252647479 145.239198135632494823 4864003.0488799 43.723231095619395689 4407953.7905619622338 57072879457610.955989\n71.606214176302 0 169.717716110676 -80.240756380896471977 170.591260542729673958 19.402427357239077616 19009997.0303785 171.070474762228879474 993187.4139545125469 -106482196423531.556041\n35.987827127174 0 9.144224039667 51.976039799073830497 165.045244285456340612 167.962110268433272754 10151272.2530231 91.255215269757186624 6392676.3850747860087 112477713884317.173701\n48.726663942803 0 68.675518243798 29.36565487352353594 91.354349089561449156 135.101278715212414845 7711704.2763444 69.389390059319984968 5966166.3194273146691 46961810541538.294191\n2.426983891456 0 17.906760480723 61.74548581736795016 142.333198773095603791 139.666208757007697169 12204647.4113768 109.8031285334024834 6013138.4261740722722 86184253361578.662134\n47.588932093582 0 122.785380726288 13.414522997031928676 39.32299270673336857 144.276515542082538905 5251124.7295255 47.28481692553263005 4676075.0925451574847 15181161179377.134173\n36.218460985676 0 139.813729934548 -49.831353332108057829 72.426737728886789983 126.251620412456127052 11888995.5719362 107.091841667139831045 6081472.7086567907992 -9585527230608.96039\n7.49325833463 0 93.2200117328 1.822589208020720631 53.589207810480716054 97.925176229123591222 5974884.2101696 53.852322648130430534 5133264.5116104780945 3318504847229.409396\n27.424486935629 0 119.079137094176 -7.987193900849071735 49.318809304075510174 128.386594768747861603 6599262.3694883 59.469165013574310527 5476855.0490182101887 6567819739076.891678\n46.817096329661 0 177.443915970136 -56.807375049863995376 4.521801986352845996 176.806062785469997925 11493075.0687165 103.509540165812146964 6187150.3904802915624 -451111297660.535662\n25.643558024411 0 124.334575817147 -25.969833883721214784 64.903749477058805498 124.103844353942396512 9010091.5311688 81.192887458513370173 6283434.5465613618597 -162862980761.25444\n45.469368982526 0 80.428951351357 32.807359742666679411 65.107961864982896069 124.577990419073311227 5641968.0800627 50.775783354657025868 4934112.5540824352438 31201594130416.757862\n24.830020284097 0 105.189491874788 -21.552137872353264451 102.466021945024658935 109.640197455957527371 12195822.147997 109.903219125927743748 5978671.561293141969 3141093116404.660866\n64.616754960515 0 30.346600456016 -26.271741383677221182 158.321581345077227778 165.993649158304508871 15470363.2647919 139.22169265381116203 4181889.8460401249567 96046793984379.640557\n16.643526079775 0 20.664942438895 41.023069113496231465 155.562542134178539359 153.407413608014235895 13143072.0128514 118.219854127721094761 5644586.001095604946 93941577448914.334362\n36.15988228751 0 17.377755506413 16.445470954340165151 165.26146144887337155 165.424806257118547888 13980304.2458731 125.741378499215436476 5209462.1600587150062 104805730938815.247066\n64.020000391978 0 96.562559689549 -3.222107095787784058 84.129726900596147365 154.083851495687961409 10038981.9782605 90.371142116639844169 6372416.6756594180745 40682391211347.531829\n26.297529885507 0 66.29632339408 7.811709739637789565 123.143308309659900758 123.998105582524580755 12821755.1122628 115.481380978730787412 5753304.71525964774 40741066154353.01873\n33.950423037177 0 121.878508697173 -45.235922276879247756 129.419282696457860108 91.493405946969508649 15577190.1037708 140.309065947199354219 4066164.7351090241787 -21471812656324.656815\n34.821801199155 0 118.660107420752 -43.047563118771784209 121.565540573787556347 99.850542926816455273 14976561.6701469 134.91019258583362906 4506731.2497052672024 -13289977552176.004558\n10.653174040903 0 125.3085108692 -22.881001889671246471 159.765030106649837101 60.474878214383859851 17484216.7762368 157.490274665028773195 2451723.9945256764603 -45780984648851.156399\n20.927440693092 0 118.56019007428 -15.011946251300212797 55.594746074667419808 121.838839080254913211 7260211.8202706 65.431076273888427729 5782012.4643014015533 2313308490792.760384\n12.968620426257 0 178.873012048075 -29.011142183886545518 .856639457160087712 178.744943180805444512 4645657.6699228 41.864441746005877275 4243253.5472574248942 -90381212163.717157\n3.995380005482 0 93.974042050361 -.353000909366607426 48.401254652487494783 95.61255104490823643 5405250.0400016 48.719267867908325167 4777042.0489484093692 1155584717223.091651\n54.038784174903 0 66.594110717849 18.843340962663756469 105.405456105476194179 145.215722323742016319 9294472.0516509 83.63245950315995792 6338269.6941880132925 55598406320675.241259\n45.454618894443 0 93.71721846208 19.672224913225212102 64.132979510420318465 131.894863434272278286 6470407.2976449 58.25309351482810141 5414287.5676692738644 26971767396948.087224\n.336229490133 0 142.938070562508 -44.315073617889112497 132.711860436436568992 57.236875169147836234 13275086.3473914 119.49956516270727856 5558321.8609412293493 -60583204684031.955483\n21.284888626672 0 9.072053968952 71.956293555096475643 23.707587498942648352 28.235946630176998385 5831837.1680569 52.471077423216790538 5052859.5998623450064 13558927920791.20024\n.602259171289 0 93.001011809839 -1.372652195171202924 37.704230798676011604 92.737862264367886216 4202587.4646708 37.879469363463621433 3903063.329056078769 -185588576882.842082\n59.067914674476 0 26.151871253161 32.37714763436166481 148.638709383249201293 164.415210005459220238 9464287.9964605 85.089220373242280187 6365574.0409056093201 97896547928895.351466\n29.497862233915 0 13.977178429685 77.876831887051061586 86.074590642863907859 93.017704501543092289 6726733.5760998 60.492200266898625167 5550209.193927527314 55961568397417.796143\n.782571037546 0 124.483761380166 -7.405194804958325194 11.962468510681354308 123.78848440720781131 1607526.1239133 14.488987492121221826 1590448.0802016657555 -490368073619.326134\n40.568797005828 0 176.967866854556 -75.001310556014873765 173.33414438551211889 8.916523271571969543 16154564.7242942 145.386525693016968361 3633564.0057558463737 -119044270879518.557787\n37.515864873 0 152.481356079909 -33.145966631434870375 32.349240627000767625 154.035798269630554191 8511799.1436023 76.689215549976807557 6188802.7731351695221 1097929701265.75403\n36.266630542565 0 58.536799059456 32.938605083647632908 98.042857137837771412 124.954750401989604459 8567178.3141464 77.101732738505688898 6213165.742940488778 46939376407596.820132\n27.519233030584 0 109.792298153411 18.92431463111676364 20.712135699712837144 118.05845743732695548 2319388.9189003 20.894340302506120788 2268375.5123861668183 5834045463948.213373\n63.796155583615 0 93.182114234024 34.281652047931346551 66.815398066146857636 147.693079659532831351 5518390.5006592 49.636338554904196403 4856318.2551449340177 38562822537571.238\n25.227691428744 0 178.813615605026 -56.830634769512607124 2.137046322216981174 178.04156212630539394 9094559.8059179 81.91610670218562002 6299591.9970986857783 -545728404810.726411\n80.099757106308 0 98.682899111772 -68.481892540173793233 107.03672012307358152 152.384476595411732823 17684467.3789704 159.168312123745299437 2267493.4082943149541 38034239037794.847683\n38.658859285804 0 25.266656343288 -22.502042312255045681 171.827566033607920431 158.834327972406616761 18054702.8673914 162.480000165758506518 1956289.5902058901166 94527641930706.588127\n26.534745770457 0 67.994988291617 -4.504199404774904959 138.544338028736198943 123.633526406204995735 14991568.9132533 135.043612032889634057 4505528.8317583773435 39282049882980.15504\n51.011272934004 0 71.247417277266 -9.226343110711589378 120.310050148004273803 142.789186422067726679 12897778.0816525 116.123611534730993279 5726657.1784100932082 50574870424781.135254\n13.180040781533 0 147.716474193955 -51.684044075581987823 137.764139808689058215 56.844890846790482976 14316708.9845049 128.87596871262001553 4974375.6094730806049 -64265937367385.09491\n39.965140465287 0 72.42926319053 19.467357090193160592 93.87008736129341052 129.125490840369698403 8963746.5534881 80.697051559475716021 6287113.1682685379392 40055255246313.982956\n29.466765674287 0 69.409093290345 33.594607695346900264 58.324143410893318197 101.975372004110701642 5485203.1798304 49.388625263026207875 4832095.192430150763 22999808033416.649242\n44.294953125423 0 88.714323913792 -1.184701423910018391 92.83428503150369859 134.201097217000354924 10328096.7889515 93.015130795121029373 6358735.3931068816176 32131229570973.907217\n67.097829740185 0 86.909743997283 5.878638801092361219 90.756172727681814092 156.936698928214965922 9438990.1361739 84.945005725412891256 6350709.5649934309439 49542633279613.149298\n53.890042118759 0 32.376057952399 47.611646039058464701 131.482217984255263527 152.077667341137571425 7865067.9794542 70.702494306519023189 6025613.8285325688878 84736718077588.908738\n34.789757845931 0 63.42481169811 13.906233945800986186 115.526238064488354512 130.769627488544942774 11347563.2291608 102.165944325835331781 6232494.4016590693762 47575101880209.725533\n4.72901904238 0 87.043118490209 3.675485213595875123 80.781861923838053716 94.188426367881210167 8964224.5513394 80.795763076051664114 6275217.3953492340362 5039465675551.357098\n69.698716382432 0 87.538022653363 68.665599857810000535 21.503123449290355915 107.667809564607514764 856384.3501512 7.696239047615556785 853826.461092201219 14252510465147.681251\n39.948488487143 0 145.637497587456 -60.791732218313879334 82.476062801971208463 117.665952598924245826 13405430.2409911 120.721343212368831005 5473110.0993555517615 -19783779419729.652003\n39.035294738812 0 116.764838248793 -33.122375734011885196 89.871476211442694565 124.06809844446510914 12223644.1264709 110.126186514023579671 5972229.2787322829147 5158772821818.065245\n20.948231001797 0 117.645508125132 -34.085934037206664329 117.886548615401165992 93.366647127153261837 13813062.2669096 124.453790959515389161 5246247.9688980691646 -17141962605073.758059\n28.809907142277 0 125.966112307426 -43.746811413059194078 107.199938541142910315 101.218434581372606303 13487276.3526636 121.497572499253957806 5425930.336422973476 -17483681754086.306\n45.854751222656 0 166.121912963353 -44.514857277517285465 19.560360617265975499 166.449925135617216472 10194905.690224 91.833879375194211194 6358156.9272790740095 231854435435.001777\n56.723060499888 0 139.889433661381 -18.049261796696935351 42.099193394607446737 158.127140901909437379 9166243.4046834 82.557413544422902008 6310306.2416606838506 12890345777904.509499\n25.116265473386 0 97.732153963831 9.832901687662390248 51.448057387281271068 114.348702917675315571 5682772.0698146 51.202513998342462154 4956523.8772448572875 11725253544134.655152\n49.501521808089 0 145.987668320635 -57.516443280706395811 64.700933124812600373 137.459801078684994967 13259299.3086349 119.408356062535898645 5544267.220189525554 -6031929440189.848234\n53.266564553316 0 100.038376477179 -23.072599811854353085 95.392601883768613929 140.11914346910385612 12382089.9881726 111.516739526784857435 5923652.7824960531757 28329764857526.749437\n17.445789085626 0 132.723368950062 -45.117253614099604179 97.361647352714237542 97.339040559114690863 11934818.5608586 107.505747003042553489 6070383.2512726435339 -24996274006675.432026\n31.573304401912 0 153.033027244272 -11.277328262946838772 19.602358024470780923 156.779729902321278544 5182540.2850615 46.700537601065785847 4627608.9932721657291 2644340745153.302034\n29.327071072276 0 33.242240347342 -4.823524348692753957 164.626841855534002015 151.314796841237986387 16852685.6378135 151.675333380703139089 3059999.9610315227422 83506349174823.137051\n6.022332347551 0 53.954105388497 36.317087922282382191 89.326155365943332293 94.589051951234519364 9559434.3144611 86.101917299986323874 6350809.1072351244162 28692013100669.359526\n34.652221222776 0 77.644152174059 3.975432760072988695 105.460358584149336847 126.257925455057776837 11166707.9668331 100.576353887770082607 6260090.4388825473774 34327375341963.004003\n30.224344357247 0 64.629648041413 28.815983592510947588 89.807393686833652977 116.984374981602214054 8445468.5722465 76.035891694239835548 6181167.4235991487074 36980457842103.06652\n44.252665137734 0 34.388821473524 66.161716765269504385 63.218655052917733089 88.869959091487584759 4432851.2703143 39.85981721964703309 4085503.3575441587363 38552852736172.495362\n15.563224557173 0 13.350130962367 74.85997160109044556 53.523360738830844199 58.125008091801599692 7326398.1199733 65.918805466347528702 5818882.3370769574378 31687371830016.95685\n22.647639492465 0 94.20425734835 -.265481234322245997 79.537677388980538159 112.945829781101506075 8953151.5409072 80.680116662942100169 6275257.0950497276402 13223166500174.913376\n5.402299205336 0 107.265570452471 -12.09959802100401094 155.371356164844581053 76.454291606611546441 17227042.8066184 155.246679889291962611 2666440.1156538117343 -21736988641995.384318\n24.121192655026 0 146.321029354121 -6.746464854112403829 19.102484309526166557 149.342236428404529347 3995518.558491 36.007542136972956859 3737706.1890470889727 2131625211649.079073\n43.306862373969 0 81.564928015753 .663830251510330864 101.295720736944021701 133.862626019472877418 10873536.3261399 97.920226219622377044 6309003.3461924338641 36944375838362.290791\n73.804557877394 0 59.949912110792 -61.764623993812864077 148.53752192208728032 149.298771734214187254 18159958.6714517 163.445192611156283581 1820464.5878393777439 63272857509579.724927\n1.921877004399 0 73.748492545106 14.505121777043152035 111.665518774378904342 97.740221959573042714 12291054.6381762 110.765007480315596641 5946932.0845231932045 16924936200638.24623\n3.948804680583 0 132.40993894891 -24.713205327374609041 34.15938414057724518 125.866132443874710561 4869336.048718 43.881215790548414839 4407195.1171290000183 -4617044336121.893254\n71.627200626312 0 115.42153502291 50.480261762892572693 42.263849601327375299 153.395658919027889614 3154875.596851 28.362309497937146147 3028259.8804540495921 26879306379460.584027\n31.021074891215 0 101.459335727786 11.787247309610298486 49.506459509701543725 120.836778496205652679 5503176.1550637 49.576278409709077984 4842401.13088711233 13676908468061.609813\n81.79281339164 0 165.970058450758 -19.956673621926589926 14.599479227718158949 177.883855088778318382 11321260.954864 101.915530959552271329 6235718.9084302624417 8434983076476.759638\n72.726413802613 0 166.750616723726 .738565517814632747 12.600972006926935366 176.085445031797102893 8039654.0648994 72.368616750393277947 6070621.8385983952494 6604259439771.353264\n51.439832390754 0 160.000115262687 25.799128425384019151 9.800259258495130083 166.282764024264400608 2965475.0265668 26.693613362052638262 2859630.302493363658 4439612684967.478298\n54.354223370964 0 160.588186514995 -3.89727713218443562 16.693318601969881579 168.780736094342670589 6639506.6673042 59.796994455964346898 5499571.8462943569844 5788740463156.197033\n36.247533543427 0 98.4914109683 2.479585385319365366 72.317321261259084782 126.935932221710976786 8266459.0782741 74.467530507016830717 6130078.0518296575082 20081094936570.606127\n3.614880856795 0 150.580074179974 -.836621274661653704 2.49019283667939344 150.640498065220872945 564843.1980769 5.091123837856573108 564100.2041594860821 42614819873.29359\n36.424488021464 0 164.635704660421 -69.098226894675014267 43.929873562506536244 143.378403982035222146 12242383.2550208 110.238304067748422131 5974275.919114033839 -15040239270347.110266\n31.364889533308 0 49.927470615537 19.156121137418312204 130.658473280948997903 136.204475163249889667 12336175.9095289 111.034494004828466811 5960150.1468693402492 60974566883427.925684\n42.293886536084 0 28.795397560798 68.881948915820043124 79.375865154433475597 99.052731550674832787 5284525.2484557 47.514468639927731381 4702192.5845312310706 49726324205183.1115\n13.505092314924 0 109.371728051151 -23.509015988874367192 122.232226283490703789 90.354603607380295663 13870946.820391 124.998160637120039647 5209954.2584601119676 -13419449242717.578046\n34.834884359342 0 154.158885818845 -64.950635804576933586 70.184354384370296755 122.478937039089014982 12602578.6181395 113.485766746684273942 5840114.3824242856442 -22409623537465.370791\n39.645470422142 0 5.489559572253 4.93110866954922869 176.100220910177652788 175.754221027085472992 15052461.9413137 135.391549382134450615 4517513.1715669204918 120596095845873.505965\n24.964126463103 0 116.357131086195 -35.503236005726961968 122.767107174013856181 94.201020059323563953 14471307.4328492 130.380471136973720885 4846677.1473519545397 -15645354872172.656582\n50.860078679137 0 48.549731553333 58.728016150447603431 76.607530844044723203 114.353508957613003404 4726685.9775161 42.499003292010857925 4307106.3509766754958 46562563907020.194799\n17.956455420121 0 84.711349925556 13.725792757600825649 60.384502867485774326 102.783241874788952957 6458576.8866868 58.196036433606491796 5404595.2351554257642 12750535602216.113037\n22.973477397103 0 56.009153846096 40.298523592676960029 59.95799345823100206 90.056365696932726789 5884951.5486095 52.986700724527881607 5082969.6664530213514 24048428828720.40175\n20.052889949232 0 81.977578557245 21.526221960544430975 19.836419824898973673 89.081274273399774348 2070318.9073022 18.652543175684854109 2033974.1668489991053 5012810395227.100067\n16.446670152465 0 159.114455786501 -65.26987212388837528 134.049514626723232179 54.613514542799105423 13606499.4308253 122.461602401628370918 5389401.1274961893973 -73960364925985.852815\n32.667967014316 0 133.565559499199 -47.687068378110340646 86.855941174728367032 115.13353157269340785 12392913.4355562 111.634620039129593513 5914486.2977904466738 -13025109317242.52627\n23.882278043017 0 159.775437976533 -56.637272907294450745 158.001120751267172822 35.013276119319165143 15956798.4167285 143.604184899951795803 3804025.179210481653 -88309437354762.051646\n43.15371946164 0 127.900346484883 6.880771895177972878 36.289124705134547842 144.499557452454256019 5359696.9901114 48.27493093785239943 4748466.1243124221391 11721693873627.441743\n8.758688136766 0 27.612955485812 59.205526512430480382 115.787267608171238769 116.793618855456045689 10585783.4004184 95.254975336052389573 6354066.499562712334 63085772302320.059662\n34.19913109722 0 74.184795626387 29.463206450868118642 68.74271021898829455 113.906069374400258811 6404683.7468433 57.663399986051205475 5379274.0212839762604 28055890273446.469366\n35.431227855473 0 174.170972642324 5.507959555354536301 2.91336720934712491 175.225891805561864953 3326839.5060205 29.972051306486833528 3177297.4580713237113 744618580162.659095\n32.377611976934 0 53.514590790067 32.568215067951098953 107.814340389787643655 126.321687264202713653 9577205.7961999 86.193064266947696149 6362295.3613650268617 51454766646575.550898\n24.207700330096 0 6.609151060411 48.941036400993861617 170.30937998956386908 170.816056872563568065 11845706.0301748 106.509638982176025204 6138336.1815344711374 116298551060848.19066\n24.417791659942 0 5.578899154386 32.657810935795211782 174.401372292953739858 173.96702918983767907 13659908.7101205 122.837243875655863982 5393661.5377544350573 119262247494114.807732\n64.847880581235 0 50.019810869132 -30.959341511189455321 144.596944855700431736 157.635538872114446568 15523526.9685424 139.724661369360329736 4133076.699118238321 76174390857721.328442\n15.400682983076 0 39.192169982475 52.180060488771494126 68.363538073510894164 82.619819936898400609 7196316.6769513 64.781442337943824963 5761628.1808499252058 30691326905882.732025\n20.30702371603 0 136.38662532312 -49.230654785600509329 119.08512299537121757 81.553785297210408241 13795285.7692325 124.236159441434755298 5268599.9008693565266 -38753908258931.603701\n10.186836061964 0 82.267763928946 12.315308710130267896 21.800336803956232414 86.572316548512324727 2391377.9926337 21.551561937968063741 2335399.3024574214718 3036352548919.039197\n3.29573414861 0 87.821100305774 .074874782625623256 122.092567299351798892 93.940323652995750961 13584065.3175424 122.437054156026470335 5365184.3694571431268 4315699135918.283976\n33.407984806849 0 122.191972019229 -32.4206091341754167 80.147416945184135973 123.183256201587681687 11113016.2651722 100.128916693778627276 6260513.4919075679958 700034219239.659178\n5.279623415292 0 4.274443210376 82.600418456713382013 34.418367124568620467 35.057122384191760799 8738697.0906736 78.634865028912825625 6249874.4065565247452 21795260816196.660079\n25.649537747683 0 64.865015071073 26.274632977288270007 93.043031668414287215 114.480069066657040147 9072248.307782 81.693927420183926783 6301476.7783773057374 35036687408251.362941\n4.880836497265 0 50.699961849204 28.433985598740278404 132.962041543077873195 118.817241997245908749 13782606.3928806 124.118422614546485114 5282222.5123124392186 48108349355089.425014\n36.073476866209 0 73.628400722975 32.426458512822231104 65.171889395963000333 113.230923394172072087 5902892.2607144 53.139300318861954715 5094325.39455934645 27976343275747.535065\n29.915591206012 0 134.128797614747 8.427284359102363151 20.342496251702238537 140.993359066103446665 3187240.7459052 28.716333877181775825 3055567.744709984454 4844415196350.739798\n72.871537977431 0 134.839250817819 -16.412702228950326306 47.392541669265207368 167.389704666321769305 10489953.9978922 94.442513359784892197 6351168.2107231721558 23031878369755.607142\n42.324699151203 0 138.820391875538 -54.082375801658559769 159.985465829683374144 56.023710499162035173 18043978.6883763 162.439167521351888741 1933967.5058662378746 -58576871824258.028678\n28.138235511711 0 58.06531482097 38.704318557556548767 78.307550831333070691 106.58212572574282344 7159172.0372752 64.446029349201575506 5745915.4583241243153 34276794308422.751346\n28.609257437314 0 90.030509538437 15.206274688848876938 59.878378252291937461 114.460428216582021499 6299658.8006871 56.749307952352034743 5320102.3785673802467 17243127446945.906709\n19.733666783068 0 154.856576444873 -62.789549909135750677 66.649184622336982523 119.232671643970504603 10817351.452045 97.409962504693476326 6314544.4976207158121 -25191239264915.549604\n49.049525107536 0 132.404361521493 31.235252170086746129 19.933467970516981453 145.488469796544444421 2590882.1620568 23.319583896484318269 2520140.6653193377237 9246026976106.850739\n41.398488994315 0 38.869586543594 11.983236088753451682 145.307368849730022939 151.192640854621333388 13111827.751917 117.973024468856771262 5650844.4169478969142 79449096101197.210234\n18.876424052196 0 56.57788712278 27.629693628282550328 16.148459400243926173 63.008012267520905097 1912944.6434413 17.232906042359234535 1884263.3299372670063 4538207998016.060009\n8.472126606194 0 50.878449101086 34.077783768135457454 115.693209573426513587 112.252263721678805053 11780372.9525835 106.08168162466617219 6124216.993599705108 43348125159022.555394\n34.58087139347 0 119.51608959783 17.10033952344412208 26.538642768874612543 131.391925094901741202 3272715.1419499 29.478401766123939966 3130417.1342838252635 8383714728409.53007\n28.777948175329 0 138.670640161434 -8.128039572354068093 28.609615412805776968 144.189095481787942945 5109836.9832486 46.046774710295466595 4577410.3573931347948 3894258194940.962695\n74.217609778402 0 27.833495488521 17.307081581667638884 150.748549863579923274 172.33461107925966369 9638187.1093334 86.679653797623678337 6374463.8500946867147 102340689522403.815213\n74.625606660121 0 38.179620354476 4.13522957581125988 142.094814225629385106 170.513213518677842571 10899884.2917781 98.057936187066722584 6322113.6303125284246 93712795066095.583366\n55.1109089628 0 139.3535538145 -61.544040804471924645 167.154866481811488887 51.41567550486556306 18972859.3911957 170.771247233237815402 1030682.2598597670973 -62247715688294.038368\n6.883546430739 0 60.856949620007 27.782465760718321245 53.844549799795048045 78.357665271794591075 6115350.3427556 55.099353820695446294 5216038.7332613528719 12349979750997.426016\n8.704861676299 0 160.416343798255 -30.157336788087704784 14.759635614931121259 157.487063280782991923 4581052.4219628 41.281055635081539709 4194977.1320337956234 -2067242933933.440725\n57.872340625455 0 157.620535505255 -16.819268371138775019 22.734618221531407858 167.76166343605853696 8538971.7896995 76.907059340681482937 6198237.5466675123726 7167922125230.204612\n54.057542230937 0 58.248576372303 58.190742593673139638 15.576363250416263395 71.213972172079197344 1069175.9728947 9.614541411629378521 1064188.4855863357847 9172357020545.922511\n7.001775004218 0 9.698830599339 57.21498113382328257 163.530751680014219366 162.056064225922885446 12730617.315912 114.505247485635312888 5824642.2774952224618 107888264845417.263408\n29.803563295095 0 64.763711892167 31.811817748935670162 81.663494432962086726 112.546403824976533742 7615365.0739802 68.561664017276336395 5927658.8598767413247 33751194708084.255678\n18.595208426603 0 118.048935154494 -11.315726799011520833 48.40948959052526486 121.43457376458473811 6260126.4978565 56.419692455176718621 5296423.8627318135352 2388507113964.771943\n6.584421624615 0 94.347343283992 6.119956010623282031 5.687908365969318786 94.977170961145542452 631401.2844154 5.690821603023266574 630363.7344763242265 444215273013.050083\n36.346895046544 0 99.139989617843 -13.455262906770638952 92.797729354548470482 125.067595131171128739 11134607.274742 100.318325464792231615 6258978.3049725788861 18305534591621.745346\n35.587449260284 0 164.722604537032 -61.258454070258775796 32.464613321885551221 153.57829958021641094 11130492.3456052 100.242755137348515087 6262840.651050322332 -7881139582706.149245\n54.028875076888 0 9.614942916371 76.656194303754013886 147.658261698858636858 154.870276891566517021 5323412.218253 47.837321912938937505 4729758.9241662933205 102888349124477.028648\n68.133629450931 0 145.898768795305 38.020470355438228516 22.502210018001561022 164.603876406614419546 3626103.4464053 32.61353374667064207 3434258.0617849549826 13234020436823.565094\n.619589446719 0 123.234806771554 -28.475185707346800366 125.031589334957935063 71.946313988392631092 13427274.3110213 120.951885296499688727 5463815.1626488546803 -36209509102492.189124\n2.625315406536 0 50.177742617223 33.123699771125018829 47.79687028128473857 66.233040505914673408 6008013.425711 54.129918576186182286 5153944.9401905905015 11331948802419.561859\n27.698836668 0 55.852452085041 36.967605507924953528 91.462107367844151538 113.555931272413563554 8338486.1315818 75.058711083507797049 6155849.7000491676966 40769883821706.618024\n55.955534476153 0 104.057603055208 -3.784112064078197904 75.465096433718344393 146.940895363525021973 9456097.3248103 85.146646569414239765 6345340.0513183878674 30310463421141.12883\n79.456211214482 0 17.524286711813 10.772454234710489761 162.137694811371507816 176.774642770856609628 9932809.3214666 89.344032381790741509 6383374.2579114962558 112805261610233.591368\n47.989018598438 0 125.990077952583 23.928739648982382998 28.95316949786064774 143.614709768380884364 3692843.4837281 33.244947832959740721 3489573.2092240761865 12452042327378.00208\n19.905471446872 0 35.370449801259 5.199376594427973168 162.802668362269052957 146.85751976134435445 16659153.4769667 149.945207290191329828 3226965.6484825630968 78822071434035.453825\n31.780420080524 0 24.208726233877 6.28533432228228802 164.204548022854726934 159.451359223110790001 15473670.5316307 139.215085581039906332 4202141.7275758376323 95701190002660.327434\n18.214906062982 0 117.33880455805 -8.15187358030599678 43.923539410567657827 121.501272690157890238 5638077.7971539 50.813665975171177372 4927574.18022861238 2936406951863.381831\n6.924055477767 0 69.757020762401 20.145480383316395405 92.310644735771801934 97.369333245026517217 9994019.5055092 90.05176029316491218 6360978.3301083286157 19482837269098.0598\n14.294778748163 0 52.346759469283 38.715578802658041074 89.141426830359699218 100.831086703169735042 8958028.2289877 80.663300880571901498 6283840.8452036043355 34244632095789.186549\n50.559653931278 0 59.052202219634 -25.760685020606670078 145.864001048186774336 142.714673928912201053 16011329.5848346 144.151376566626643661 3744227.8950163651084 59165140017740.67476\n31.651311572009 0 42.297832577674 49.387283074154966931 28.91704365675353116 61.54523514840285809 3110546.3106303 27.995777823658382912 2988596.1386741315116 13602104872867.88147\n45.596585431176 0 175.118535776544 10.120685293027048417 2.869737593886038748 176.526915822865195835 3941582.6108094 35.498840302484269788 3694564.2706561697467 994654238394.783463\n80.39278445103 0 76.80964891084 2.463216066166428262 102.917599852201487682 170.609003610638667815 9972489.396536 89.731079490395534584 6378759.6137616510411 66419487765212.055961\n6.740182520913 0 13.884298571596 58.201293688922668194 155.022079105500830851 153.181268692772793577 12464482.6632632 112.119618606382756843 5926582.4770486619974 98619343539422.228973\n29.083044569381 0 138.914722020679 3.089607756264869197 20.686800266168889736 144.857820265584640885 3614550.3444458 32.569166427562063184 3423117.0018634644628 4193831244813.785825\n.621092749897 0 16.102844264946 48.232274219514793775 18.567244222293248261 24.556437713520476934 5570557.1953373 50.174133621240939315 4886194.6341925733932 5970937312946.952477\n37.653638828447 0 137.853808039161 30.265261486767069606 7.440737656545109234 142.022971576269979005 1069047.8799166 9.625621064868388049 1064036.7507147022245 2944500711417.582393\n4.404606235786 0 156.123678419485 -11.166197413147649405 176.728933575636367164 24.287272842988926489 19179562.4156505 172.61941726095557154 871396.5132016561672 -93263941141010.612045\n27.176701036956 0 6.030012719257 84.64553919608213361 90.023922499395014947 92.786261566827419868 7009435.8491467 63.034203638164144768 5684617.5267910179521 61445159223359.059902\n3.302308911476 0 8.97551862912 61.618716728051320811 162.510958917359390587 160.923939760553143161 12650721.6919684 113.795211947181884636 5854325.1477374319804 107603405398599.282884\n58.879758886177 0 114.824276652884 27.643242341173310281 45.376215094118427881 147.964522484664060996 4901772.5681154 44.108077963579631634 4433296.1609875820692 23431820444230.569935\n9.475220278148 0 38.932383422044 2.218749985363731397 170.35834207829155104 141.658474129787309151 18339165.4163233 165.111514354156799642 1673744.7601118090214 72599278566241.718856\n41.466841043791 0 109.578369879174 26.01914232966282241 32.534760195962826366 128.159784291644724597 3437725.6660353 30.952024150161768797 3273296.0616481287833 13124523626070.666893\n53.888359009931 0 98.381516752494 10.049636247749444181 72.20534695581802854 143.602159725305979245 7945884.5383174 71.533315832132905006 6040973.6839650793269 31960523701308.405554\n23.853889740799 0 118.196826582424 -31.030496743714609035 91.539195292896346896 109.891398221790066834 11478610.3454773 103.43140154442073546 6185290.750478418275 -5863203094428.693584\n55.956731505923 0 57.706685040664 30.113795853670504753 109.09698163150170057 146.779343066540629328 8367728.2577391 75.264404165111183194 6169807.7347468452234 63013162955011.005236\n28.505205913081 0 164.266676515654 -73.967996185770407079 65.944242524678311061 120.592998665528690691 12329069.5588533 111.002219397624849306 5948339.4981782590423 -30908991213226.098046\n51.947055580729 0 7.529183101991 52.211149755493853953 168.054184827868318196 172.425991612466622102 8405690.9692773 75.544634537319494055 6186579.2297242596159 116799015637170.21588\n19.603262241917 0 155.310241469883 -64.497146189687610562 72.073418936580752449 114.249128850218973268 11129803.9331653 100.217567223637470053 6268053.7393983095357 -29040226058653.862954\n8.667276657619 0 170.401487964052 -25.711398997503429914 6.036423474639316832 169.46409829426344205 3859105.2080866 34.77770734969814879 3626505.4134608915443 -661424323766.964183\n45.292351113841 0 104.755570801274 33.904613360449113425 30.989094387217340705 124.896016003639768267 2922442.9238597 26.304113184462176336 2821145.1426668718809 14231419374410.82222\n35.328099152836 0 86.221109285317 -25.053079543515994032 137.07863866549488376 115.960750169085924019 15774272.4712622 142.112205171099396346 3909338.9347988234089 21001668281359.954247\n37.793589573001 0 130.437271461167 10.298031202628896261 27.737373649972565409 142.265457288483062006 4118622.1932492 37.099758244179782669 3837117.033810311744 8350426299600.192198\n77.858061800612 0 29.666112170968 -.738692377457131114 150.933627031610412238 174.004687728765283776 11266464.3885094 101.364099086660346358 6259756.2582398729698 102230672562011.00646\n40.877645811776 0 54.126934551558 50.619289349009252109 67.178203328134562752 105.177353051106966565 5152942.0221439 46.356392328279722171 4610975.9831860985536 36097469097223.160205\n17.450044814197 0 113.230674522015 -2.127739360728270606 38.604245449983240002 118.657849063154071354 4757178.5381671 42.87410925484394413 4325545.2438641988197 3828379824354.209612\n17.678164508809 0 54.002097515254 37.188366752551397072 90.865255121713861749 104.826548310924443141 8918983.7043879 80.307058065303350956 6277988.5205254455472 35898387165952.114734\n7.649776922473 0 21.234632447942 46.019256998096815647 20.402590686048474912 31.068587858373432921 4680601.0073264 42.155636243040333103 4270159.6609485451716 6945253734504.42889\n49.493928171376 0 71.328984986837 9.023355647006460499 106.678645473545463878 141.375490245644784666 10430816.8172407 93.891969970093436229 6360959.7988278229791 49513070716361.390736\n14.047904930908 0 97.048958862099 -1.321473235187342942 67.41887873159455547 105.590912857545573175 7621201.7997324 68.68769560651643038 5922664.0090450095101 6025188743388.939901\n16.45111520522 0 103.259824693141 7.459338626176654053 30.150648477469862081 109.667751753912015087 3426099.5117818 30.87587618383336511 3262718.3697454248367 4520271029708.90057\n11.695368374369 0 49.92711210542 16.34475503818505324 146.829159972333832736 128.666191953615620089 15231713.6153841 137.159351935786427165 4348092.3999257378273 55613455511136.303617\n20.984641117615 0 160.333317255672 -55.785670347269857117 158.086173376809152059 33.903276835070866505 15736335.196457 141.615721780035742751 3980817.154754208854 -89489324626677.555073\n31.084824113429 0 162.048136420535 -74.40960356104954391 111.28093498596546035 78.510830028460637658 13938106.5963352 125.468445120776849816 5195415.0780561726369 -59138231717845.733443\n18.870663525454 0 58.180445349074 9.922203731557252276 138.538333703570730931 125.268473410633811544 14471227.2633508 130.332118290906566426 4865369.2173303833311 47370987321405.479702\n66.02991541352 0 100.342754669946 -27.082389068807474432 91.42584373318543312 153.267616113652685304 12786765.2978041 115.130508724236588555 5768794.6090355894455 37440745112045.917347\n70.284967296784 0 99.426968016059 14.627507744772528826 74.629604673487682213 159.825210987464350709 7906464.5403885 71.140498396889045993 6032133.8812390120941 42735958177528.847494\n37.972632798984 0 51.109946721162 46.941086934168500825 18.833435620675305904 63.924916745147929433 1834454.575038 16.509125462248133188 1809253.6860104463296 9056719742547.616931\n1.191438237168 0 41.096786511078 42.371665615781592609 126.270074354353137462 117.352106840235935033 12799722.4026313 115.234892115541379594 5772127.3295170764404 53890800135300.343996\n9.537350360342 0 27.883681370449 60.888683732870369006 106.363656697521814635 108.973271101790304502 9953495.5052647 89.568654046446137096 6378032.1073367046561 57359656766635.469939\n18.552975093978 0 24.392879944219 53.972089572794851906 136.000657911061631725 138.361588598637747362 10943757.2097338 98.43918262683151297 6319804.6218684734052 80645584263599.882025\n38.039842019748 0 53.848666905753 47.850866585266756679 25.277933660113874242 71.284667717289698135 2318222.3005012 20.861931047147056453 2267498.4141262080266 12323276629978.341741\n47.235493725582 0 21.915442545912 64.28061417115742798 16.447696559380283557 35.692750218622282227 2145577.2956871 19.294588483947561948 2105438.3811477489203 9747398544817.480495\n6.067040272821 0 93.10609854649 -3.339044133284998898 91.646260438367775038 95.928000721064338725 10239343.5540606 92.289971215306380516 6351783.804067240863 1990237079120.228144\n13.166671186654 0 156.9877056519 -46.029874698950134815 30.599196661458344065 146.81052520771938439 7238142.9773793 65.206181332385281853 5774710.8599206300839 -7188054550435.828277\n31.072695366125 0 109.704067512395 25.605076391429388597 14.382002787797685973 116.566847403823664013 1533173.4468247 13.808532332300897289 1518397.1029942927585 4844992979348.218602\n.02350686392 0 118.985409232472 -15.052412502533805435 150.673460237577267056 64.906720897603116626 16400518.515323 147.755333346962655155 3405195.9826022676341 -38168763228247.818173\n12.885878052126 0 144.500189246031 -24.631881773331082027 170.403348095215713823 38.497783925432162186 18368927.3837289 165.365333320060938028 1644607.2769569684109 -74940093549172.812255\n17.268835767565 0 3.700557637282 84.347730272741105718 37.3521300230326359 38.599794179850297196 7594086.835291 68.314024623064996945 5924761.3482346320039 24713679410214.626245\n56.718530905299 0 9.897772522309 11.680772997528739585 170.55261711913522143 174.460435573782803412 12373686.2285536 111.28049139485288627 5964980.0706111166438 116554213838862.626748\n43.093607402015 0 56.807564653343 -4.129057873299349744 136.743626644380405912 142.147603954035099233 13954561.6977207 125.624523770214740978 5192759.2194061199915 60325097259819.123459\n28.085299755109 0 17.582954267573 22.19178209778295611 164.962391587579711277 163.266967353376055975 14213360.6768809 127.840170439906095765 5071368.7419537869414 103122501389921.510692\n28.846720155831 0 92.000519155689 -20.517212185627749577 128.116443546305191548 110.769757212729769379 14738801.4630775 132.806927125116955592 4666764.840918191954 13248646836515.542398\n43.843107846075 0 153.846400347841 -71.269218648518086463 117.744328537214035374 81.341005509003024961 15526314.4049277 139.771876578631718745 4119449.6980175601552 -51324354250566.084605\n41.175109889346 0 175.73404687087 -28.381892766056997998 4.526028955176634461 176.348678015376635495 7714923.0870663 69.508645990850295256 5957365.6034066730878 434128324633.069356\n17.144265589441 0 150.880568229333 -28.786089606638436195 25.937634058026934774 147.973102126478450604 5797835.3616146 52.247238798693200617 5027173.1875010444452 -2052005564979.092369\n18.140008084981 0 123.779585448215 -37.872671755644909775 116.904192578456646427 88.568636418662019413 13572412.5466204 122.270517389846537266 5382144.1579172642762 -24865714493037.827716\n22.821365629541 0 115.952557015238 -26.321446841940254784 85.206986852001494507 112.408108683680597384 10661023.0786034 96.07086930131082739 6322801.6727993400481 -2501697534369.466062\n32.257990201783 0 150.869187174021 -54.824260467183555711 156.561573965852661863 45.534810497878492661 16898916.2234232 152.109817534890474575 2998828.9864221340382 -74535975683922.348712\n39.49327314527 0 140.836566705476 -16.423550298805272605 36.685133578510657407 149.426789575292090701 7268775.0376729 65.491314370547717719 5786727.8920857071384 6065435176920.375666\n23.767991890779 0 81.632828734311 -16.806590952462069709 149.738610286184802047 108.898472198506895209 16785010.6291059 151.247345211174036293 3061967.1783097333549 19242778189717.260658\n42.496576764546 0 .165548738367 61.200095175201199603 179.666196014678657282 179.746893753529690115 8509305.8221784 76.480111135775561028 6211557.6845057436865 127219347433402.487683\n23.37006646977 0 .910228532498 66.474418401287595733 1.552183188406980816 2.088868324926246289 4791481.5364996 43.115174479981862946 4353337.4030778568938 833605733052.19669\n19.994795859237 0 173.593173660623 -75.177219719926159433 158.741596988184950467 24.127093846133804994 13742605.6264524 123.670307530519052626 5318046.9798840628751 -105863201806255.800978\n1.269658479516 0 46.496047601802 43.592976578444478602 90.684525887486170424 91.539242394540461006 9969428.812229 89.783735466496703945 6367305.2324604843569 31816609569360.513062\n18.645215730907 0 91.204763835331 -5.07541546422921436 101.127103351067474523 107.948021613622137757 11367937.1086597 102.449079092539422931 6209191.0456299706663 11811987332961.23841\n68.391288883142 0 32.291360786422 50.406165949083117294 135.501938931444434125 162.003144394968907867 6326014.5139429 56.853780046931667658 5343595.603955821559 91858101945008.14683\n28.459545317132 0 131.627116861212 -17.207732564305947062 43.634692466981953215 136.506792603896624589 6898743.7410256 62.168063753941591155 5622742.1728876008424 3443908545857.640803\n7.686752352213 0 146.211145206052 -28.917723347931304784 163.486470248682233358 38.990273918754185336 17094911.9530533 153.881391878770278586 2837200.9925330907525 -75807485146464.610969\n.64034186365 0 123.369802893649 -32.592414472935303475 76.048812057266849688 98.024248734061607106 8746660.6462652 78.803442938924070906 6240212.8442177494349 -17889922736138.424974\n51.022969333621 0 70.928244094143 50.602735331531517447 49.7928930953542578 110.500760610103236022 3441686.4042094 30.95559583236947878 3277376.1483858760347 27987828749670.560419\n22.288465298004 0 69.621519507085 -4.912231564840104562 142.681743549936929249 119.428358444442736532 15576793.1624633 140.333346714541782701 4069290.6074817798098 35156569187743.198103\n38.278706194814 0 116.769886228164 -45.213514932524026697 131.987859404856965922 96.014100177112467728 16014157.4068109 144.244469214877104097 3719365.5049028169952 -14668254788536.750992\n14.24969115701 0 113.619675867679 -27.151095883522850275 127.729463064735888941 85.960623495334244591 14441696.1273339 130.12857089315515138 4865013.9500414288711 -19521656365878.331201\n32.973411269805 0 46.065698353431 8.000357843774115639 144.233746766534798714 142.364016793767431065 14108473.2364152 126.988325582496448135 5110004.2818679087806 68070157484700.31499\n11.884027068704 0 59.246997449177 -6.431773707290350515 170.549196384305545959 122.18085060024305472 18827330.7069827 169.609961560850627963 1164341.0997014020218 44426770056644.922307\n63.299659355513 0 4.961364308518 62.834146216572416716 171.218297548713166872 175.117432600361965738 5993185.7864619 53.850658370552939515 5154314.1874600872928 120536329850929.123524\n37.104397046123 0 81.889793301424 22.902813652261998905 70.233438162142126967 120.935911762169260057 6805796.5407313 61.280195135154350172 5583008.2364739307334 27577131767888.997322\n27.912201073082 0 93.335334979907 22.584853282541441188 31.616864803984472932 107.124038156544818919 3230177.5487443 29.096248304555476689 3093295.0927297065702 9732934051970.815943\n66.035196665325 0 98.296318724173 31.269173344204243454 65.399305777763442733 151.892599739667467015 5765572.68568 51.861650382347039753 5012957.7356936473664 37918053866653.078372\n58.443950266403 0 29.561905381646 35.519613515114951744 143.165121509798372763 161.479891246030836337 9044293.6999022 81.311310583576305245 6314213.1821767600409 93396249610742.871303\n39.516194068199 0 144.535341584624 -53.741921506580303349 67.12140213504665522 130.871188003208945244 12163096.875085 109.551802866346940804 5996348.8914581477191 -9660403732413.237398\n83.04262434686 0 143.179609854665 9.046227267580238248 35.933736921416898057 175.770788535406313053 8375679.5080332 75.361401388226560165 6168294.6149973241096 23076663392875.912425\n47.852703462638 0 14.782448744043 75.917034235437853607 125.150808062635956586 135.354466840050929534 5723133.267717 51.438119183622424248 4988964.0162152511547 85390548876603.331405\n18.352487745925 0 131.158495572002 -39.72482561850349812 77.372086855266511348 111.852577362107756209 10263734.2384338 92.471280284934150787 6355110.2838508335232 -13632930094129.292034\n19.610027893484 0 61.148999531971 3.917212154430625183 142.62175176423617025 124.176952499321120883 15179268.8311452 136.724652045198704588 4375279.6200615356714 44498545040230.247792\n37.890019024071 0 28.155454916229 60.230364486607121438 26.245688508506560554 48.509486474608027261 3095227.5260516 27.844494485709030885 2975285.8904934431719 14394482235439.926403\n21.27400519437 0 66.518655015288 29.59732207051775542 29.129807944898327676 79.28853866782912214 3062027.7697048 27.58142914962496311 2945278.3863362862975 9013967294900.483375\n18.73757565583 0 173.208006744922 -62.91375966956401215 14.845859018929689704 165.794535940950061082 9144588.3219893 82.353726643526844342 6308367.961877671709 -5241762726523.552269\n42.702510624272 0 20.557404168888 15.360445685187465876 161.450680426048786046 164.457024354600450171 13302891.0974729 119.647390054436528639 5570480.3571510424877 101866160529438.855012\n9.629511505319 0 170.171749157156 -58.330108507597165263 17.628133627704536353 161.349788081183968369 7700234.7132002 69.348168951861912878 5955182.5546470553986 -6235257597677.886041\n28.045488507748 0 172.720784715037 -68.514276940652034598 19.958792438281018172 162.262811488702415433 10832170.1136121 97.543258542384409921 6311521.1346343046551 -7398003716798.313929\n2.772765838802 0 114.5727676662 -23.686765736998649393 77.544158137101346033 97.517041033584958228 8873511.1191586 79.963279648143941131 6261669.4752752822571 -12033996241403.109894\n13.491620630907 0 140.873701285728 -50.843574559524607691 118.404202153051101869 75.92895029648765785 13145525.078646 118.366744383000663652 5610326.7721114432559 -45907341190201.709936\n31.502257150564 0 19.853899687231 44.438741945021011589 152.028260148130413326 156.092336139519375239 11131020.2526886 100.089362799001040705 6297321.982397689138 96438090550519.765353\n19.686906931917 0 2.048670973611 33.820395378014357315 178.008341908010666323 177.679585823345407684 14078751.9392915 126.609273924748206813 5156765.338486156337 124410416867781.41462\n22.762532924501 0 28.503393613681 27.506735286151725226 153.242452449881161736 150.262824421350724109 13748258.9509153 123.685962876758118408 5332567.538098162742 86131087379773.993898\n50.340413863206 0 2.53859523901 -31.250436707467694216 179.014498940189705553 178.103045898455404295 17882405.7777759 160.905575858919580505 2119232.6694804685793 124366479736738.071608\n2.98066520225 0 47.463675192493 40.341542234586241042 109.605984313079385169 105.401958406556345535 11441450.635794 103.030505859102173865 6207893.6379039073443 40927721811346.618862\n29.247293372331 0 45.029410864491 48.318632112438986603 92.282799489207885044 111.987482299261451218 7801472.7770445 70.197565495082740953 5997336.2213959132983 47337640377558.832335\n24.389388046744 0 163.414770950738 .675299289459258553 6.78930079807174955 164.921926385404543513 2723889.5881121 24.546497715284933339 2641353.8302269112429 1063357718624.287312\n62.482652918877 0 8.252125941321 33.232811536179021506 170.163205247231471813 175.445424087909893808 9358158.9821303 84.124507549133482345 6356535.0438882536496 118428234240816.513899\n34.590918562694 0 7.993291365237 51.42553215181805146 167.128188073882944443 169.43130654704308259 10392812.6123231 93.42837056060338675 6383899.2127347763746 114336917888267.914364\n69.821651887204 0 62.92538659285 72.043794732817548879 23.320160820555760315 85.002463342036758801 879631.9531361 7.904642800990551886 876860.9138046876294 15632650536333.254176\n38.376944784789 0 17.473863587495 55.279252586694670166 148.483684405587701783 155.614243012976590637 9203619.3049205 82.73829954433574547 6337809.4817681025881 97807801663396.399292\n46.892014406907 0 67.39750819497 50.054601019930333772 43.609545475730982851 100.758450815354056981 3197345.7586115 28.76243158014969311 3065258.4797589822865 23589784072974.096025\n28.353602081529 0 76.274827000925 31.194436445411213131 31.458476146983860433 92.204244235304787391 3048218.327439 27.451144274668761873 2933128.7134389620344 11247248294344.322481\n5.326532548779 0 9.097780130462 57.758262113136848914 164.499274258052841383 162.877999232894481095 12873200.9722311 115.79055481691698242 5764031.5244371421305 108899008384970.564931\n72.117921223457 0 6.152872172491 27.006897756515806363 173.173811781657280321 177.878073603765553327 8997693.7848986 80.896624818001908421 6306005.4355679725371 121647169141209.337038\n64.177261656652 0 169.155628588387 -62.917580953803579439 18.990464058492882635 169.629168390979152429 14186020.8922706 127.726090058553197116 5035463.735536794077 335168376245.250453\n37.947075857326 0 139.342238102087 -43.128166633901710655 61.680974170546238004 135.269008366092031214 10925408.6406507 98.422557317742166922 6292327.2717351662724 -2878139657337.864058\n26.307941680393 0 147.225038832701 -49.314417365795352401 55.82607154156295034 131.974573587520471938 10034382.3145598 90.391387400182285975 6361835.7956457968674 -10775848973793.992569\n53.631996624514 0 94.231206530873 -24.322411486443992751 103.867391100271214598 139.458674175181108442 13051226.0570234 117.538037317391998175 5647534.6296093432815 31970480317274.357164\n44.004238156528 0 109.824798440887 -19.557318635270308642 81.358494523201842003 134.029609915777875955 10832509.5519374 97.586049107336685077 6306751.8120159249145 17096772259554.504432\n49.639180896033 0 172.391914509103 7.83011525308658278 5.114172330857355993 175.025640902818529736 4659374.0988898 41.960826165673466071 4254522.1423640281091 1860437924352.772834\n27.392085228067 0 163.92423380568 -65.834622858583744806 41.772796000787220511 143.178050120950638477 10931147.314304 98.437517504715533477 6297520.1924809563317 -14673671331667.488425\n44.143562138878 0 142.681821455567 -7.997604143032335841 31.723396618973566196 153.896387549517793874 6597698.9193097 59.436679031786432857 5477238.5042466885471 7919560556324.465099\n42.989475047544 0 35.485593498718 -22.173129586699477905 164.896770399382662366 152.675596916020677073 17310552.7872924 155.802389397994553144 2641260.9889039502104 82910772016290.623801\n12.028199404842 0 6.750615276825 35.085785799083180955 173.892270533009265887 171.931230872909921274 14750382.7256983 132.666113046006373812 4728707.9536052384558 116980822519594.864843\n56.167036940831 0 177.985750277647 -25.378865450268494417 2.197739985587264746 178.756775063163026945 9037584.4900647 81.404025659176216637 6291172.1765981184605 544981451044.363742\n44.441940918959 0 57.104069418997 -13.782608118540132249 143.084798779238657385 141.818572490275480224 15143214.5322994 136.335988833293368798 4413419.1198004675552 59888368012974.924525\n8.208033333575 0 105.258344953671 -16.657588778768321206 100.829440071396485963 94.804408628370802516 11423879.6577821 102.958197727251546693 6195905.1220307793426 -7374599359370.306865\n68.774240952093 0 28.537069063729 23.629665922502092902 148.675530832607903311 169.091766635019720024 9447802.0379189 84.954583535924707864 6361877.220132852006 99534040798290.973825\n17.64690117594 0 40.89679291018 4.022724409294159549 161.803702045621127057 141.272784545677804594 16896388.7566713 152.110851977692491599 3011397.5282767167562 70939153735974.58841\n47.950793718575 0 147.354822294378 13.280167579164271578 20.120413486875134985 158.170551379188741332 4272286.6100659 38.471873067036243415 3958962.9208959494587 7639893821355.344163\n12.497996919791 0 150.82261659966 -47.521449956879211038 150.549196046350859887 44.718791294774737051 15258577.9916899 137.336081323681884506 4340164.2319249751239 -75051437676344.019602\n3.515785865095 0 59.263243201138 17.790615163216038928 141.461005551791370174 115.74678435231796389 15186653.965357 136.806978670866646778 4365588.3395028833446 39870534036456.562468\n28.768517563908 0 110.322680357855 -26.519374288385967715 98.067906321718286668 113.25392864265308837 12113386.7220927 109.152345047190042437 6007048.7596179940492 2069281422608.337633\n31.982822775287 0 109.290114539956 -12.401138571716524225 73.327969848986095205 124.879499241463509126 9212160.6522482 83.008447712202809834 6312229.7146436225717 11003469916752.864095\n19.570432528161 0 28.740966951582 61.619396375101618346 99.785406498834552256 107.998379654880312637 8614755.089148 77.505251812796221543 6226311.3612559850593 56067851874192.170291\n34.143048708981 0 69.51983962219 36.997252125040645904 56.01564263110565584 103.921662760483339202 5013801.5800171 45.134241459400238718 4512393.8659177969 24303198210303.780218\n3.935957557567 0 52.436217226781 37.824446788544112769 83.438439603293535085 89.229164462126771199 9168789.8813277 82.586235168871286337 6311363.6927805446849 25979298394134.639755\n61.129461056535 0 17.551253764348 78.387863550789787985 118.814812128944507196 133.70610813122942263 3997295.7892009 35.917884092904948979 3742170.8344936212443 82271032127693.16589\n3.421155549617 0 117.603077191721 -21.219381398155866681 53.544399883561208716 108.462517491504855818 6439245.0997699 58.031001140391312493 5393641.4739003617397 -6448565537694.646061\n32.199157039059 0 20.027269750465 63.304502042590373196 132.034925840673696992 139.912627269622829752 8604303.0175665 77.364120210701674249 6229815.5630395658899 84869733581589.295238\n.822552758098 0 34.818378986644 13.515662875312775488 8.989765670729653024 35.949534634702059623 1718259.3202848 15.486296191256021634 1697416.6604600584153 797855641430.608891\n22.093738274028 0 170.681472860323 -6.742624347861355679 4.531931315167888431 171.306863155411353935 3227863.7987681 29.090241409291797292 3090980.253994166485 441218726980.953197\n39.48039894993 0 87.282048692256 -24.910509138681227713 128.137681811632628713 121.711631340407178135 14949490.8636683 134.670804855150454647 4527683.2952598058841 24318824920062.879679\n23.69170905579 0 132.063863063217 -40.687590598372122427 76.389897347637172336 116.394432846310699826 10623821.7355492 95.714778422051439614 6329194.6885535600748 -11066522084844.935136\n.813894017158 0 18.816974707058 50.593807692461305191 155.175629862287786372 149.533910451363380311 13842545.7518034 124.538169596131027243 5276254.0872247014538 92515652983842.460323\n60.498135169978 0 14.402672810838 12.198221826511738496 165.83945638179899956 172.783459292832685266 11847843.0323106 106.552664683262988173 6131930.6747794226509 112168579559174.22495\n56.613748278121 0 164.607893291612 34.436568298724291799 7.117337693395296031 169.786491850891132892 2523532.6367527 22.706702518236147407 2458214.2373751964518 3661190909306.800345\n4.353450729152 0 103.233574040466 -3.145254788626592435 30.50229334501562488 103.563748974524958336 3492737.3971927 31.481180872375856418 3319631.297584571004 232863039233.953875\n28.862498245296 0 77.616850437576 16.26472215669566619 85.497207496626466819 116.933862512763500344 8729542.7699654 78.626797302294860567 6239936.5749710824841 27756398721897.174066\n24.304907152864 0 169.325325310051 1.433605151881832464 4.165940219922587965 170.272462365962871455 2570010.31357 23.159688911039333127 2500619.0065841359612 668241278182.719071\n10.189698663604 0 149.730183652442 -43.326676023438175932 153.148366512831958335 42.92139385486819693 15514023.7287334 139.635728491944681302 4150994.8579423507827 -75541446904842.90808\n49.848181590467 0 1.740157383446 20.405242225208311985 178.247549230809907989 178.801032702563268372 12220827.5344691 109.887118815892790351 6022565.4770274773585 125428624899323.659416\n13.030866301142 0 109.893930639714 -22.482831544519822258 140.761210729738855165 82.371736722714851668 15755116.1820327 141.971040979357694774 3920414.5259027910152 -19421881186864.423462\n33.193281467185 0 151.700748956165 -41.151672070525223539 38.419124284860247174 148.221356053664153845 9125842.4572481 82.217488953861158949 6301544.0399167709777 -2457933595572.730309\n33.363702991722 0 172.898206162262 -63.212816746476843028 15.714998156903843357 166.777356149472787827 10796096.0063367 97.229060680347454537 6313972.1564420164324 -4328854162846.139344\n81.209730724037 0 64.607034218371 -33.892680517408251506 120.971495805190110004 170.404813772446965722 14218639.870483 127.984344279961882842 5029362.0312811118308 74927506291674.605445\n84.49313372567 0 44.062176316481 -17.570092516031215028 137.259693182063353824 175.973637230107021589 12392439.9503488 111.531809859488348303 5935680.7949336646973 93436915821997.576421\n8.988389567023 0 135.591577170335 -24.221027716300497021 33.960051796000590159 130.753279335550387413 5207072.006276 46.926129485889807704 4644237.5060699699244 -3413776361754.360498\n7.233769436208 0 176.654551320883 -48.849132604776785109 176.601435366476713421 5.037779120577946247 15380027.8289912 138.358281063797337733 4271593.333427371255 -121560228685539.24198\n25.667301923648 0 165.865810332805 -50.620232529080889031 22.061010504617130536 159.730880799186332309 8724941.2419856 78.596084162726465716 6235905.5322179990845 -4335019959513.589124\n11.393453958608 0 103.983428298864 -11.354875472482677189 76.258812283705016962 104.014356938494710659 8798950.2908855 79.304542647955827858 6246649.2853773449699 21816453964.55196\n67.964135603447 0 82.943262082749 -19.640050782646093412 105.698978700603770784 156.650619021388568928 12667180.9117455 114.032689494338304427 5824218.7016903955541 52154384017978.331639\n62.051119792364 0 11.128018862381 83.855266840097823611 112.674858066810490831 122.383784147680661628 3437930.4441712 30.891069868834740073 3274798.5715679876677 78807778935382.438339\n25.102149869815 0 40.235857039559 48.296557545890560676 34.072462542900448281 61.41586730915713718 3931247.5339453 35.38932910307202416 3686615.2490819738547 14964859344184.471094\n51.327128301361 0 157.507841386438 20.173772376862884207 12.682422408955768442 165.220897942890940421 3630369.8599353 32.683402669213993196 3437105.8869462066052 5449804328186.89709\n23.474216147125 0 46.678628932975 47.501521345953050621 54.338775236772878081 80.572387690285547473 5464355.8057291 49.190120790076259041 4819009.3910381529155 23948341952063.846333\n36.683051268707 0 59.9134220097 -34.023171607795531921 174.31025861217819742 123.138509441522237857 19425192.879691 174.935403818920014616 574068.1429244003429 44682327617138.469844\n58.744150157638 0 136.522735331872 -31.540912691185800066 52.441923606881506406 155.194512958366995248 11118098.9573425 100.134652014767295626 6265005.0978975825826 13201781071499.890157\n51.751281137642 0 33.757132989077 64.121648788158237473 21.295234110582796607 51.966943039533835852 1850116.5799348 16.635495527980984067 1824356.8330153547199 12884889301176.930698\n19.773933963855 0 88.244372170064 -4.599612537189952262 107.72709070189264194 109.270070124629001544 12044598.4080381 108.543100332699285645 6029451.5407405566971 14834037742870.059892\n39.200876320217 0 134.856615004185 -16.799514501718282638 43.675397103785494015 144.940350340820159936 7684240.5553611 69.234710761708416701 5946684.7247707816254 7119964311987.891899\n38.105810689938 0 164.670289256197 -16.33741078518428335 13.110282576578816704 167.467077049712781311 6180176.6676345 55.685031363005101385 5252467.9074625082755 1974618932947.901788\n41.521310479281 0 170.317403231942 -26.145378737930547576 9.977868070750335139 171.92933505080876208 7561784.4790375 68.129172489529052334 5902049.762281321437 1138495223655.47569\n32.241265005248 0 102.500901349632 -3.245748416402291224 71.931980979619742952 124.120046609527451966 8518683.91191 76.753578689823740205 6191281.4857895716355 15259035122497.517915\n41.5153048399 0 17.301852441557 72.97564440737551351 36.459312843012288941 49.41132449653871056 3998772.473891 35.956871650262591942 3742632.2852534434507 22725908076412.652383\n.392629863796 0 25.902510436627 50.342417843480968873 35.445910446930489214 43.087650398316018744 6471966.798244 58.288878571911068624 5413333.9954409372486 12140102677564.2535\n4.213823194191 0 115.396132131615 -22.878804028266716664 69.376306288000431687 102.211557813582238543 8102268.1662216 73.015921625809089974 6081089.6199742587348 -9302233372009.588337\n20.887224275633 0 85.008601901305 21.254912121078436127 21.899214754867725164 92.966926161389850749 2274336.0154563 20.490374931706914196 2226208.2883082050546 5615982051465.404671\n54.110966620489 0 145.266915564664 26.486640906235318411 19.097602913800180787 158.053446850266598587 3445564.6777048 31.011845390383106327 3280240.8171578636715 9037168974943.306119\n67.353134259898 0 51.005098873193 43.041538374783853027 114.186949886940596532 155.795322500736167796 6582850.4474452 59.177622849039962867 5479215.4170259799255 74186400245646.212036\n11.117043578156 0 97.379569600861 -10.570763915881842733 107.625834147203669139 98.142400502746669987 12143815.8415362 109.451796621369871879 5994270.3006119077512 538077628729.114299\n42.020759525796 0 43.442582556896 12.624313141296751219 139.841076840612661427 148.38566192389802066 12699106.2476873 114.26751780414556216 5828586.3898407929424 74217002188639.046493\n71.663254855522 0 149.800422195409 -25.169998746665320364 33.175749310361502176 169.905376778384264918 11039983.0605937 99.405807205381622094 6282838.8209678649497 14225027110652.887943\n56.279982724539 0 68.279892030062 -41.360281944907619279 147.341948469936636537 136.551910060918047489 17139690.6662776 154.314282449997431034 2768502.0240323154614 48295107264106.958536\n60.174647030691 0 22.901941065938 39.182099298590229418 150.590705311218945391 165.522950851634609237 8668548.8071412 77.922632897679367273 6246203.3558503090457 100993609555420.749449\n64.60720493901 0 108.984728103641 -57.494440629886070709 113.054056725195484074 130.988276746435850126 16487654.3721395 148.441701929211374632 3333513.871827889334 15572115521240.964969\n'''.strip())\n\n    m = ellipsoidalKarney if geographiclib else ellipsoidalExact\n    t = Tests(__file__, __version__, m, verbose=v)\n\n    for n, test in enumerate(tests.readlines()):\n        t.testGeodTest(test.rstrip(), 'line %d ' % (n + 1,), precV, epsV, precK, epsK, precX, epsX)\n\n    # XXX Pythonista run_path doesn't reload modules\n    E = Ellipsoids.WGS84\n    t.test(E.name + '.KsOrder', E.KsOrder, 8)\n\n    tests.close()\n\n    t.results()\n"
  },
  {
    "path": "test/testEllipsoids.py",
    "content": "\n# -*- coding: utf-8 -*-\n\n# Test L{ellipsoids} module.\n\n__all__ = ('Tests',)\n__version__ = '25.08.28'\n\nfrom bases import TestsBase\n\nfrom pygeodesy import EcefKarney, Ellipsoid, Ellipsoid2, Ellipsoids, Vector3d, \\\n                      a_b2f_, a_b2f2, a_b2n, a_f2Tuple, b_f2a, b_f_2a, circle4, \\\n                      e2f, ellipsoids, f_2f, fstr, hypot_, n2e2, n2f, \\\n                      PI_2, R_M, sincos2d, unstr\nfrom math import fabs\n\n\nclass Tests(TestsBase):\n\n    def testEllipsoids(self):  # MCCABE 14\n        # datum module tests\n        E = Ellipsoid(1000, 1000, 0, name='TestEllipsoid')\n        self.test('ellipsoid', E is Ellipsoids.TestEllipsoid, True)\n#       print(Ellipsoid())\n\n        e = Ellipsoids.unregister('TestEllipsoid')\n        self.test(e.name, e, E)\n\n        # WGS84 and GRS80/NAD83 are identical up to 3 decimals\n        for E in (Ellipsoids.WGS84, Ellipsoids.GRS80):  # NAD83\n            self.subtitle(ellipsoids, E.name)\n            self.test('R1', E.R1, R_M, fmt='%.4f')\n            self.test('R2', E.R2, '6371007.2', fmt='%.1f')\n            self.test('R3', E.R3, '6371000.8', fmt='%.1f')\n            self.test('A',  E.A,  '6367449.1', fmt='%.1f')\n            self.test('L',  E.L, '10001965.7', fmt='%.1f')\n\n            self.test('Rrectifying', E.Rrectifying,     '6367449.1',   fmt='%.1f')  # 6367445.0\n            self.test('Rgeometric',  E.Rgeometric,      '6367435.7',   fmt='%.1f')\n            self.test('Rgeocentric', E.Rgeocentric(0),  '6378137.000', fmt='%.3f')\n            self.test('Rgeocentric', E.Rgeocentric(45), '6367489.544', fmt='%.3f')\n            self.test('Rgeocentric', E.Rgeocentric(90), '6356752.314', fmt='%.3f')\n\n            self.test('Rlat', E.Rlat(0),  '6378137.000', fmt='%.3f')\n            self.test('Rlat', E.Rlat(45), '6367444.657', fmt='%.3f')\n            self.test('Rlat', E.Rlat(90), '6356752.314', fmt='%.3f')\n\n            self.test('circle4.radius', E.circle4(0).radius,  '6378137.000', fmt='%.3f')\n            self.test('circle4.radius', E.circle4(45).radius, '4517590.879', fmt='%.3f')\n            self.test('circle4.radius', E.circle4(90).radius, '0.000',       fmt='%.3f')\n\n            self.test('distance2', fstr(E.distance2( 0,  0,  1,  1), prec=3),  '156903.472, 45.192')\n            self.test('distance2', fstr(E.distance2( 0,  0, 10, 10), prec=3), '1569034.719, 45.192')\n            self.test('distance2', fstr(E.distance2(40, 40, 50, 50), prec=3), '1400742.676, 37.563')\n            self.test('distance2', fstr(E.distance2(70, 70, 80, 80), prec=3), '1179164.848, 18.896')\n\n            self.test('roc2', fstr(E.roc2(0),  prec=3), '6335439.327, 6378137.0')\n            self.test('roc2', fstr(E.roc2(45), prec=3), '6367381.816, 6388838.29')\n            self.test('roc2', fstr(E.roc2(90), prec=3), '6399593.626, 6399593.626')\n\n            self.test('rocBearing', E.rocBearing( 0,  0), '6335439.327', fmt='%.3f')\n            self.test('rocBearing', E.rocBearing(45, 45), '6378092.008', fmt='%.3f')\n            self.test('rocBearing', E.rocBearing(90,  0), '6399593.626', fmt='%.3f')\n\n            self.test('rocGauss', E.rocGauss(0),  '6356752.314', fmt='%.3f')\n            self.test('rocGauss', E.rocGauss(45), '6378101.030', fmt='%.3f')\n            self.test('rocGauss', E.rocGauss(90), '6399593.626', fmt='%.3f')\n\n            self.test('rocMean', E.rocMean(0),  '6356716.465', fmt='%.3f')\n            self.test('rocMean', E.rocMean(45), '6378092.008', fmt='%.3f')\n            self.test('rocMean', E.rocMean(90), '6399593.626', fmt='%.3f')\n\n            self.test('rocMeridional', fstr(E.rocMeridional(0),  prec=3), '6335439.327')\n            self.test('rocMeridional', fstr(E.rocMeridional(45), prec=3), '6367381.816')\n            self.test('rocMeridional', fstr(E.rocMeridional(90), prec=3), '6399593.626')\n\n            self.test('rocPrimeVertical', fstr(E.rocPrimeVertical(0),  prec=3), '6378137.0')\n            self.test('rocPrimeVertical', fstr(E.rocPrimeVertical(45), prec=3), '6388838.29')\n            self.test('rocPrimeVertical', fstr(E.rocPrimeVertical(90), prec=3), '6399593.626')\n\n        self.subtitle(ellipsoids, Ellipsoid.__init__)\n        self.test('a, b, None',  Ellipsoid(1000, 500, None, name='_f_None').f_,  2.0)  # coverage\n        self.test('a, None, f_', Ellipsoid(1000, None, 2,   name='_b_None').b, 500.0)  # coverage\n\n        E = Ellipsoids.WGS84.copy()  # coverage\n        self.subtitle(ellipsoids, E.name)\n        self.test('WGS84.copy', E is not Ellipsoids.WGS84, True)\n        self.test('WGS84.copy', E == Ellipsoids.WGS84, True)\n        self.test('WGS84.find', Ellipsoids.find(E), None)\n\n        self.test('WGS84.a2_b', E.a2_b, E.a2 / E.b,      prec=6)\n        self.test('WGS84.b2_a', E.b2_a, E.b2 / E.a,      prec=6)\n        self.test('WGS84.R2',   E.R2,   E.Rauthalic,     prec=6)  # obvious\n        self.test('WGS84.c2',   E.c2,   E.R2**2,         fmt='%.0f')\n        self.test('WGS84.es',   E.es,   E.e,             prec=6)\n        self.test('WGS84.e22',  E.e22,  E.e2 / E.e21,    prec=6)  # .albers\n        self.test('WGS84.f2',   E.f2, (E.a - E.b) / E.b, prec=6)\n        self.test('WGS84.m2degrees', int(E.m2degrees(E.a * PI_2)), 90)\n        self.test('WGS84.degrees2m', int(E.degrees2m(90)), int(E.a * PI_2))\n        self.test('WGS84.area',   E.area,   '5.101e+14', fmt='%.3e')\n        self.test('WGS84.volume', E.volume, '1.083e+21', fmt='%.3e')\n\n        self.test('WGS84.ecef', E.ecef().__class__, EcefKarney)\n        self.test('WGS84.ecef', E.ecef().name, E.name)\n\n        t = E.toStr(prec=10, terse=0)\n        self.test('WGS84', t, \"name='WGS84', a=6378137, f=0.0033528107, f_=298.257223563, b=6356752.3142451793, f2=0.0033640898, n=0.0016792204, e=0.0818191908, e2=0.00669438, e21=0.99330562, e22=0.0067394967, e32=0.0033584313, A=6367449.1458234144, L=10001965.7293127235, R1=6371008.7714150595, R2=6371007.1809184738, R3=6371000.7900091587, Rbiaxial=6367453.6345163295, Rtriaxial=6372797.5559594007\",\n                                                                                                                                                                                                                                                  known=' L=10001965.7293127216, ' in t       or      ' R2=6371007.1809184728, ' in t)  # on Intel macOS\n        e = (E.a - E.b) / (E.a + E.b) - E.n\n        t = 'A=%.10f, e=%.10f, f_=%.10f, n=%.10f (%.10e)' % (E.A, E.e, E.f_, E.n, e)\n        self.test('WGS84.', t, 'A=6367449.1458234144, e=0.0818191908, f_=298.2572235630, n=0.0016792204 (1.5612511284e-17)')\n\n        self.subtitle(ellipsoids, 'Kruegers')\n\n        def _AB(E, K, A, B):\n            E.KsOrder = K\n            self.test('WGS84.AlphaKs', fstr(E.AlphaKs, prec=12, fmt='e', ints=True), A)\n            self.test('WGS84.BetaKs ', fstr(E.BetaKs,  prec=12, fmt='e', ints=True), B)\n\n        _AB(E, 8, '8.377318206245e-04, 7.608527773572e-07, 1.197645503242e-09, 2.429170680397e-12, 5.711818370428e-15, 1.47999793138e-17, 4.107624109371e-20, 1.210785038923e-22',\n                  '8.377321640579e-04, 5.90587015222e-08, 1.673482665344e-10, 2.164798110491e-13, 3.787930968626e-16, 7.236769021816e-19, 1.493479824778e-21, 3.259522545838e-24')\n\n        _AB(E, 6, '8.377318206245e-04, 7.608527773572e-07, 1.197645503329e-09, 2.429170607201e-12, 5.711757677866e-15, 1.491117731258e-17',\n                  '8.377321640579e-04, 5.90587015222e-08, 1.673482665284e-10, 2.164798040063e-13, 3.787978046169e-16, 7.248748890694e-19')\n\n        _AB(E, 4, '8.377318206304e-04, 7.608527714249e-07, 1.197638001561e-09, 2.443376194522e-12',\n                  '8.377321640601e-04, 5.905869567934e-08, 1.673488880355e-10, 2.167737763022e-13')\n\n        P = Ellipsoid(E.b, E.a, name='Prolate')\n        _TOL = ellipsoids._TOL\n\n        self.subtitle(ellipsoids, P.name)\n        for p, e in ((P.a, E.b), (P.b, E.a), (P.n, -E.n),\n                     (P.R1, 6363880.543), (P.R2, 6363878.941), (P.R3, 6363872.564),\n                     (P.Rbiaxial, E.Rbiaxial), (P.Rgeometric, E.Rgeometric),\n                     (P.c2, 40498955180263.188), (P.area, 508924880289508.500),\n                     (P.volume, 1079575530747445379072.000)):\n            t = '%s [%s]' % (p.name, p.units)\n            self.test(t, p, e, fmt='%.3f', known=fabs(p - e) < _TOL)\n\n        def _auX(aux, d, x, **kwds):\n            a = aux(d, **kwds)\n            t = fstr(a, prec=9)\n            self.test(unstr(aux, d, **kwds), t, t)\n            self.test('name', a.name, aux.__name__)\n            t = aux(a, inverse=True, **kwds).toRepr(prec=6)\n            self.test('inverse', t, x)\n\n        for E, el, ob, pr in ((E, True, True, False),\n                              (P, True, False, True),\n                              (Ellipsoids.Sphere, False, False, False)):\n            self.subtitle(ellipsoids, 'auxLats ' + E.name)\n            self.test('isEllipsoidal', E.isEllipsoidal, el)\n            self.test('isOblate',      E.isOblate,      ob)\n            self.test('isProlate',     E.isProlate,     pr)\n            self.test('isSpherical',   E.isSpherical,   not el)\n            for d in range(-90, 91, 29):\n                x = 'lat (%d.0)' % (d,)\n                for aux in (E.auxAuthalic,  E.auxConformal,  E.auxRectifying,\n                            E.auxIsometric, E.auxParametric, E.auxGeocentric):\n                    _auX(aux, d, x)\n                _auX(aux, d, x, height=1e6)\n\n        self.subtitle(ellipsoids, 'Flattenings')\n\n        self.test(all.__name__, Ellipsoids.register(all), all.__name__)\n        self.test('_TOL', _TOL, _TOL)\n        for n, E in Ellipsoids.items(asorted=True):  # includes f_None, b_None, Prolate\n            if E.f and E.f_:\n                e = E.f_ - 1 / E.f\n                self.test(n + '.f_ - 1 / .f', e, e if fabs(e) < _TOL else _TOL, nl=1)\n                e = E.f - 1 / E.f_\n                self.test(n + '.f - 1 / .f_', e, e if fabs(e) < _TOL else _TOL)  # PYCHOK attr\n\n        self.subtitle(ellipsoids, Ellipsoid2.__name__)\n        for n, E in Ellipsoids.items(all=True, asorted=True):  # includes f_None, b_None, Prolate\n            n  = '_2_' + n\n            E2 = Ellipsoid2(E.a, E.f, name=n)\n            self.test(n, E2.toStr(name=None, prec=7), E.toStr(name=None, prec=7))\n\n        self.subtitle(ellipsoids, a_f2Tuple.__name__)\n        for n, E in Ellipsoids.items(all=True, asorted=True):  # includes f_None, b_None, Prolate\n            n = 'a_b_' + n\n            a_f = a_f2Tuple(E.a, E.f, name=n)\n            E2 = Ellipsoid(a_f.a, a_f.b)  # PYCHOK a\n            self.test(n, E2.toStr(name=None, prec=7), E.toStr(name=None, prec=7))\n        n  = '_a_f_ellipsoid'\n        E  = Ellipsoids.WGS84\n        E2 = E.a_f.ellipsoid(name=n)\n        self.test(n, E2.toStr(name=None), E.toStr(name=None))\n        n  = '_toEllipsoid2'\n        E2 = E.toEllipsoid2(name=n)\n        self.test(n, E2.toStr(name=None), E.toStr(name=None))\n\n        self.subtitle(ellipsoids, 'Functions')\n        t = 0\n        for _, E in Ellipsoids.items(all=True, asorted=True):  # includes f_None, b_None, Prolate\n            f_ = a_b2f_(E.a, E.b)\n            self.test('%s(%s)' % (a_b2f_.__name__, E.name), f_, E.f_, fmt='%.8f', known=fabs(f_ - E.f_) < _TOL, nl=1)\n            f2 = a_b2f2(E.a, E.b)\n            self.test('%s(%s)' % (a_b2f2.__name__, E.name), f2, E.f2, fmt='%.8f', known=fabs(f2 - E.f2) < _TOL)\n            n = a_b2n(E.a, E.b)\n            self.test('%s(%s)' % (a_b2n.__name__, E.name), n, E.n, fmt='%.8f', known=fabs(n - E.n) < _TOL)\n            a = b_f2a(E.b, E.f)\n            self.test('%s(%s)' % (b_f2a.__name__, E.name), a, E.a, fmt='%.3f', known=fabs(a - E.a) < _TOL)  # millimeter\n            a = b_f_2a(E.b, E.f_)\n            self.test('%s(%s)' % (b_f_2a.__name__, E.name), a, E.a, fmt='%.3f', known=fabs(a - E.a) < _TOL)  # millimeter\n            f = f_2f(E.f_)\n            self.test('%s(%s)' % (f_2f.__name__, E.name), f, E.f, fmt='%.8f', known=fabs(f - E.f) < _TOL)\n            f = e2f(E.e)\n            self.test('%s(%s)' % (e2f.__name__, E.name), f, E.f, fmt='%.8f', known=True)  # fabs(f - fabs(E.f)) < _TOL\n            e2 = n2e2(E.n)\n            self.test('%s(%s)' % (n2e2.__name__, E.name), e2, E.e2, fmt='%.8f', known=fabs(e2 - E.e2) < _TOL)\n            f = n2f(E.n)\n            self.test('%s(%s)' % (n2f.__name__, E.name), f, E.f, fmt='%.8f', known=fabs(f - E.f) < _TOL)\n            t += 1\n        self.test('total', t, 50, nl=1)\n\n        t = P.roc1_.__name__ + ' '\n        for E, x in ((Ellipsoids.WGS84, 1.863e-9), (P, 1.863e-9),\n                     (Ellipsoids.SphereAuthalic, '0.0')):\n            self.subtitle(ellipsoids, E.name)\n            for d in range(0, 91, 5):\n                s, c = sincos2d(d)\n                n = E.roc1_(s)\n                h = E.roc1_(s, c)\n                e = fabs(n - h)  # delta in meter\n                self.test(t + str(d), e, x, known=e < 1.864e-9)\n                n = E.roc2(d).prime_vertical\n                e = fabs(n - h)  # delta in meter\n                self.test(t + str(d), e, x, known=e < 1.864e-9)\n\n        n = circle4.__name__ + ' '\n        self.subtitle(ellipsoids, circle4.__name__)\n        for E in (Ellipsoids.WGS84, Ellipsoids.Sphere):\n            self.subtitle(ellipsoids, E.name)\n            for d in range(0, 91, 10):\n                r = E.Rgeocentric(d)\n                t = E.circle4(d)\n                self.test(n + str(d), hypot_(t.radius, t.height), r, prec=6)\n                t = circle4(E, d)\n                self.test(n + str(d), hypot_(t.radius, t.height), r, prec=6)\n\n        p = Vector3d(10.1e6, 10.2e6, 10.3e6)  # 10+ km\n        h = Ellipsoids.WGS84.hartzell4\n        t = h(p).toStr()\n        self.test(h.__name__, t, t, nl=1)  # coverage\n\n\nif __name__ == '__main__':\n\n    t = Tests(__file__, __version__, ellipsoids)\n    t.testEllipsoids()\n    t.results()\n    t.exit()\n"
  },
  {
    "path": "test/testElliptic.py",
    "content": "\n# -*- coding: utf-8 -*-\n\n# Test L{elliptic} Python implementation.\n\n__all__ = ('Tests',)\n__version__ = '26.02.12'\n\nfrom bases import endswith, TestsBase\n\nfrom pygeodesy import elliptic, Elliptic, EllipticError, Elliptic3Tuple, \\\n                      EPS, fstr, PI_2, PI_4, radians, Scalar, sincos2\n\n\nclass Tests(TestsBase):\n\n    def testElliptic(self):  # MCCABE 13\n        RC = Elliptic.fRC\n        RD = Elliptic.fRD\n        RF = Elliptic.fRF\n        RG = Elliptic.fRG\n        RJ = Elliptic.fRJ\n\n        eps4 = EPS * 4\n        self.test('eps4', eps4, eps4, fmt='%.9e')\n\n        y = 0.1\n        for x in range(2, 100):\n            x *= 0.01\n            rc = RC(x, y)\n            rf = RF(x, y, y)\n            k  = abs(rc - rf) < eps4\n            t  = 'RC, RF(%.3f, ...)' % (x,)\n            self.test(t, rc, rf, fmt='%.12f', known=k)\n            y = x\n\n        for kp2 in range(1, 100):\n            kp2 *= 0.01\n            rd = RD(0, kp2, 1)\n            rj = RJ(0, kp2, 1, 1)\n            k  = abs(rd - rj) < eps4\n            t  = 'RD, RJ(%.3f, ...)' % (kp2,)\n            self.test(t, rd, rj, fmt='%.12f', known=k)\n\n        self.test('eps4', eps4, eps4, fmt='%.9e', nl=1)\n\n        # <https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1EllipticFunction.html>\n        e = Elliptic(0.1)\n        self.test('k2',  e.k2,  '0.1000000',   fmt='%.7f')\n        self.test('kp2', e.kp2, '0.9000000',   fmt='%.7f')\n        self.test('eps', e.eps, '0.0263340',   fmt='%.7f')\n        self.test('cD',  e.cD,  '0.816837118', fmt='%.9f')  # ?\n        self.test('cE',  e.cE,  '1.530757637', fmt='%.9f')\n        self.test('cG',  e.cG,  '1.530757637', fmt='%.9f')\n        self.test('cH',  e.cH,  '0.795604230', fmt='%.9f')  # ?\n        self.test('cK',  e.cK,  '1.612441349', fmt='%.9f')\n        self.test('cKE', e.cKE, '0.081683712', fmt='%.9f')  # ?\n        self.test('cPi', e.cPi, '1.612441349', fmt='%.9f')\n        phi = radians(20)\n        sn, cn = sincos2(phi)\n        self.test('fE(phi)', e.fE(phi), '0.348372822', fmt='%.9f')\n        dn = e.fDelta(sn, cn)\n        self.test('fDelta(sn, cn)', dn, '0.994133906', fmt='%.9f')\n\n        self.test('fD(sn, cn, dn)',  e.fD(sn, cn, dn),  '0.013885234', fmt='%.9f')\n        self.test('fE(sn, cn, dn)',  e.fE(sn, cn, dn),  '0.348372822', fmt='%.9f')\n        self.test('fEd(PI_2)',       e.fEd(PI_2),       '0.027415224', fmt='%.9f')\n        self.test('fEinv(PI_2)',     e.fEinv(PI_2),     '1.612999420', fmt='%.9f')\n        self.test('fF(sn, cn, dn)',  e.fF(sn, cn, dn),  '0.349761345', fmt='%.9f')\n        self.test('fG(sn, cn, dn)',  e.fG(sn, cn, dn),  '0.348372822', fmt='%.9f')\n        self.test('fH(sn, cn, dn)',  e.fH(sn, cn, dn),  '0.335876111', fmt='%.9f')\n        self.test('fPi(sn, cn, dn)', e.fPi(sn, cn, dn), '0.349761345', fmt='%.9f')\n        try:\n            t = e.fPi(0, None, 1)\n        except EllipticError as x:\n            t = str(x)\n        self.test('fPi(sn, None, dn)', t, 'invokation Elliptic.fPi(0, None, 1): invalid')\n        try:\n            t = e.fH(0, 1, None)\n        except EllipticError as x:\n            t = str(x)\n        self.test('fPi(sn, dn, None)', t, 'invokation Elliptic.fH(0, 1, None): invalid')\n\n        self.test('deltaD(sn, cn, dn)',  e.deltaD(sn, cn, dn),  '-0.3223642', fmt='%.7f', nl=1)\n        self.test('deltaE(sn, cn, dn)',  e.deltaE(sn, cn, dn),   '0.0084191', fmt='%.7f')\n        self.test('deltaEinv(sn, cn)',   e.deltaEinv(sn, cn),   '-0.0082518', fmt='%.7f')\n        self.test('deltaF(sn, cn, dn)',  e.deltaF(sn, cn, dn),  '-0.0083379', fmt='%.7f')\n        self.test('deltaG(sn, cn, dn)',  e.deltaG(sn, cn, dn),   '0.0084191', fmt='%.7f')\n        self.test('deltaH(sn, cn, dn)',  e.deltaH(sn, cn, dn),   '0.3140691', fmt='%.7f')\n        self.test('deltaPi(sn, cn, dn)', e.deltaPi(sn, cn, dn), '-0.0083379', fmt='%.7f')\n        try:\n            t = e.deltaPi(0, None, 1)\n        except EllipticError as x:\n            t = str(x)\n        self.test('deltaPi(sn, None, dn)', t, 'invokation Elliptic.deltaPi(0, None, 1): invalid')\n        try:\n            t = e.deltaPi(0, 1, None)\n        except EllipticError as x:\n            t = str(x)\n        self.test('deltaPi(sn, dn, None)', t, 'invokation Elliptic.deltaPi(0, 1, None): invalid')\n\n        # U{Carlson<https://ArXiv.org/pdf/math/9409227.pdf>} 3 Numerical checks\n        self.test('RF(1,   2, 0)', RF(1,   2, 0), '1.3110287771461',  fmt='%.13f', nl=1)\n        self.test('RF(0.5, 1, 0)', RF(0.5, 1, 0), '1.8540746773014',  fmt='%.13f')\n        self.test('RF(2,   3, 4)', RF(2,   3, 4), '0.58408284167715', fmt='%.14f')\n\n        self.test('RC(0,  1/4)', RC(0,  0.25), '3.1415926535898',  fmt='%.13f', nl=1)  # PI\n        self.test('RC(9/4,  2)', RC(2.25,  2), '0.69314718055995', fmt='%.14f')  # ln(2)\n        self.test('RC(1/4, -2)', RC(0.25, -2), '0.23104906018665', fmt='%.14f')  # ln(2) / 3\n\n        self.test('RJ(0, 1, 2, 3)',    RJ(0, 1, 2, 3),    '0.77688623778582', fmt='%.14f', nl=1)\n        self.test('RJ(2, 3, 4, 5)',    RJ(2, 3, 4, 5),    '0.14297579667157', fmt='%.14f')\n#       self.test('RJ(2, 3, 4, -0.5)', RJ(2, 3, 4, -0.5), '0.24723819703052', fmt='%.14f')\n#       self.test('RJ(2, 3, 4, -5)',   RJ(2, 3, 4, -5),  '−0.12711230042964', fmt='%.14f')\n\n        self.test('RD(0, 2, 1)', RD(0, 2, 1), '1.7972103521034',  fmt='%.13f', nl=1)\n        self.test('RD(2, 3, 4)', RD(2, 3, 4), '0.16510527294261', fmt='%.14f')\n\n        self.test('RG(0, 16, 16)',     RG(0, 16, 16),     '3.1415926535898', fmt='%.13f', nl=1)  # PI\n        self.test('RG(2,  3,  4)',     RG(2,  3,  4),     '1.7255030280692', fmt='%.13f')\n        self.test('RG(0,  0.0796, 4)', RG(0,  0.0796, 4), '1.0284758090288', fmt='%.13f', nt=1)  # E(0.99)?\n\n        e.reset(0, 0)\n        self.test('reset', len(e.__dict__), 5, nt=1)  # len(_iteration, _k2, _kp2, _alpha2, _alphap2)\n\n        for j in (True, False):\n            e = Elliptic(0.1)  # assert e.k2 and e.kp2\n            n = 'sncndn(x, jam=%s)' % (j,)\n            self.test(n, fstr(e.sncndn(0, jam=j), prec=9), '0.0, 1.0, 1.0')\n            t = fstr(e.sncndn(PI_2, jam=j), prec=9)\n            self.test(n, t, '0.998602459, 0.052850065, 0.948830497' if j else\n                            '0.999219618, 0.0394988, 0.948765522', known=t[:4] == '0.99')\n            e.reset(1, 1)\n            self.test(n, fstr(e.sncndn(   0, jam=j), prec=9), '0.0, 1.0, 1.0')\n            self.test(n, fstr(e.sncndn(PI_2, jam=j), prec=9), '0.917152336, 0.398536815, 0.398536815')\n            self.test(n, type(e.sncndn(PI_4, jam=j)), Elliptic3Tuple, nt=1)\n\n        self.testCopy(e)\n\n        for f in range(4):  # coverage\n            t = (f / 4.0,) * 4\n            e = Elliptic(*t)\n            s = 'k2 alpha2 kp2 alphap2'\n            e = tuple(getattr(e, a) for a in s.split())\n            t = tuple(Scalar(f, name=n) for n, f in zip(s.split(), t))\n            self.test(s, e, t)\n\n        f = elliptic._ConvergenceError\n        x = f(9, 1, 2)\n        self.test(f.__name__, str(x), \"maxit (9): no convergence (1), tolerance (2)\", nl=1)\n\n        f = elliptic._ellipticError\n        x = f(self.testElliptic, None, txt='test')\n        self.test(f.__name__, str(x), \"invokation Elliptic.testElliptic(None): test\", nl=1)\n        x = f(f.__name__, None, cause=x)\n        self.test(f.__name__, str(x), \"invokation Elliptic.testElliptic(None): test\", known=endswith)\n\n\nif __name__ == '__main__':\n\n    t = Tests(__file__, __version__)\n    t.testElliptic()\n    t.results()\n    t.exit()\n"
  },
  {
    "path": "test/testEpsg.py",
    "content": "\n# -*- coding: utf-8 -*-\n\n# Test L{epsg}.\n\n__all__ = ('Tests',)\n__version__ = '23.03.27'\n\nfrom bases import TestsBase\n\nfrom pygeodesy import Epsg, epsg, toUtmUps8\n\n\nclass Tests(TestsBase):\n\n    def testEpsg(self, decode, encode):\n\n        for p in ('N', 'S'):\n            z = epsg._UPS_ZONE\n            e = encode(z, hemipole=p)\n            self.test('Epsg', Epsg(e), e, known=True)\n            d = decode(e)\n            self.test(str(z) + ' ' + p, str(d), (z, p))\n            for z in range(epsg._UTM_ZONE_MIN, epsg._UTM_ZONE_MAX + 1):\n                e = encode(z, hemipole=p)\n                d = decode(e)\n                self.test(str(z) + ' ' + p, str(d), (z, p))\n\n        for u in ('00A', '00B', '00Y', '00Z'):\n            e = Epsg(u)\n            self.test('Ups', e, e)\n            u = e.utmupsStr(B=True)\n            self.test('Ups', u, u)\n            self.testCopy(e)\n\n    def testEpsgTMcoord(self, n, lat, lon):\n        u = toUtmUps8(lat, lon)\n        e = u.toEpsg()\n        s = ' '.join(u.toStr(B=True).split()[:2])\n        self.test('TMcoord ' + str(n), e.utmupsStr(B=True), s)\n\n\nif __name__ == '__main__':\n\n    from testTMcoords import _TMcoords\n#   from pygeodesy import decodeEPSG2, encodeEPSG\n\n    t = Tests(__file__, __version__)\n    t.testEpsg(epsg.decode2, epsg.encode)\n#   t.testEpsg(decodeEPSG2, encodeEPSG)  # DEPRECATED\n\n    for n, coord in enumerate(_TMcoords.readlines()):\n        t.testEpsgTMcoord(n + 1, *map(float, coord.split()[:2]))\n\n    t.results()\n    t.exit()\n"
  },
  {
    "path": "test/testErrors.py",
    "content": "\n# -*- coding: utf-8 -*-\n\n# Test some of the L{errors}.\n\n__all__ = ('Tests',)\n__version__ = '23.03.27'\n\nfrom bases import isPython3, TestsBase\n\nfrom pygeodesy import crosserrors, exception_chaining, LenError, \\\n                      LimitError, limiterrors, \\\n                      RangeError, rangerrors\n\nfrom os import getenv\n\n\nclass Tests(TestsBase):\n\n    def testError(self, Error):\n        try:\n            raise Error('name', 'value', txt='test1 txt')\n        except Error as x:\n            t = str(x)\n            self.test(Error.__name__, t, t)\n        try:\n            raise Error(txt='test2 txt')  # coverage\n        except Error as x:\n            t = str(x)\n            self.test(Error.__name__, t, t)\n\n    def testErrors(self, InvalidError, IsnotError):\n\n        e = InvalidError(zero=1)\n        self.test(InvalidError.__name__, e, 'zero (1): invalid')\n        self.test(InvalidError.__name__, repr(e).replace(',)', ')'), \"ValueError('zero (1): invalid')\")\n        e = InvalidError(zero=1, one=2, txt='outside')\n        self.test(InvalidError.__name__, e, 'one (2) or zero (1): outside')\n        self.test(InvalidError.__name__, repr(e).replace(',)', ')'), \"ValueError('one (2) or zero (1): outside')\")\n        e = InvalidError(zero=1, Error=RangeError, one=2, txt='outside')\n        self.test(InvalidError.__name__, e, 'one (2) or zero (1): outside')\n        self.test(InvalidError.__name__, repr(e).replace(',)', ')'), \"RangeError('one (2) or zero (1): outside')\")\n        e = InvalidError(two=2, Error=ValueError)  # coverage\n\n        e = IsnotError(int, float, _None=None)\n        self.test(IsnotError.__name__, e, '_None (None): not an int or float')\n        self.test(IsnotError.__name__, repr(e).replace(',)', ')'), \"TypeError('_None (None): not an int or float')\")\n\n        e = IsnotError('scalar', _None=None)\n        self.test(IsnotError.__name__, e, '_None (None): not a scalar')\n        self.test(IsnotError.__name__, repr(e).replace(',)', ')'), \"TypeError('_None (None): not a scalar')\")\n        e = IsnotError('scalar', Error=LimitError, _None=None)\n        self.test(IsnotError.__name__, e, '_None (None): not a scalar')\n        self.test(IsnotError.__name__, repr(e).replace(',)', ')'), \"LimitError('_None (None): not a scalar')\")\n\n        try:\n            raise LenError(LenError, a=1, b=2, c=3, d=4)\n            self.test(LenError.__name__, None, LenError.__name__)\n        except ValueError as x:\n            self.test(LenError.__name__, str(x), 'LenError(a, b, c, d) len 1 vs 2 vs 3 vs 4: invalid')\n\n        self.test(crosserrors.__name__, crosserrors(False), True)\n        self.test(crosserrors.__name__, crosserrors(True), False)\n        self.test(limiterrors.__name__, limiterrors(False), True)\n        self.test(limiterrors.__name__, limiterrors(True), False)\n        self.test(rangerrors.__name__,  rangerrors(False),  True)\n        self.test(rangerrors.__name__,  rangerrors(True),  False)\n\n        x = True if getenv('PYGEODESY_EXCEPTION_CHAINING', None) else False\n        self.test(exception_chaining.__name__, exception_chaining(), x if isPython3 else None)\n        self.test(exception_chaining.__name__, exception_chaining(RangeError()), None)\n        self.test(exception_chaining.__name__, exception_chaining(TypeError()), None)\n\n    def testKwds(self, xkwds):\n        self.test(xkwds.__name__, xkwds({}, test='test1'), 'test1')\n        self.test(xkwds.__name__, xkwds({'test': 'test2'}, test='test3'), 'test2')\n        try:\n            x = AssertionError.__name__\n            t = xkwds({})\n        except AssertionError as a:\n            t = x = str(a)\n        self.test(xkwds.__name__, t, x)\n        try:\n            x = AssertionError.__name__\n            t = xkwds({}, n1='d1', n2='d2')\n        except AssertionError as a:\n            t = x = str(a)\n        self.test(xkwds.__name__, t, x)\n\n\nif __name__ == '__main__':\n\n    from pygeodesy import errors, ClipError, CrossError, CSSError, EcefError, \\\n                                  EllipticError, EPSGError, ETMError, FrechetError, \\\n                                  GARSError, GeohashError, GeoidError, HausdorffError, \\\n                                  HeightError, LazyImportError, LCCError, MGRSError, \\\n                                  OSGRError, PGMError, PointsError, \\\n                                  SciPyError, SciPyWarning, TRFError, UnitError, \\\n                                  UPSError, UTMError, UTMUPSError, VectorError, \\\n                                  VincentyError, WebMercatorError, WGRSError  # ClipError, RefFrameError\n\n    def _xkwds_pop(kwds, **name_default):\n        return errors._xkwds_pop2(kwds, **name_default)[0]\n\n    t = Tests(__file__, __version__, errors)\n    for E in (errors._AssertionError, errors._AttributeError, errors._IndexError,\n              errors.LimitError,      errors._NameError,      errors.ParseError,\n              errors._TypeError,\n              ClipError, CrossError, CSSError, EcefError, EllipticError, EPSGError,\n              ETMError, FrechetError, GARSError, GeohashError, GeoidError, HausdorffError,\n              HeightError, LazyImportError, LCCError, MGRSError, OSGRError, PGMError,\n              PointsError, SciPyError, SciPyWarning, TRFError, UnitError,\n              UPSError, UTMError, UTMUPSError, VectorError, VincentyError,\n              WebMercatorError, WGRSError):  # DEPRECATED RefFrameError\n        t.testError(E)\n    t.testErrors(errors._InvalidError, errors._IsnotError)\n    t.testKwds(errors._xkwds_get)\n    t.testKwds(       _xkwds_pop)\n    t.results()\n    t.exit()\n"
  },
  {
    "path": "test/testEtm.py",
    "content": "\n# -*- coding: utf-8 -*-\n\n# Test L{etm} projection L{ExactTransverseMercator}.\n\n__all__ = ('Tests',)\n__version__ = '23.08.30'\n\nfrom bases import TestsBase\n\nfrom pygeodesy import etm, ExactTransverseMercator\nfrom pygeodesy.karney import _K_2_4\n\n\nclass Tests(TestsBase):\n\n    def testEtm(self, LatLon):\n        self.subtitle(etm, LatLon.__name__)\n\n        e = etm.toEtm8(ellipsoidalVincenty.LatLon(-2, 88), name='test')  # coverage\n        t = '45 S -19368242 3386457' if _K_2_4 else '45 S -20297797 5336899'\n        self.test('toEtm8', e, t)\n        self.test('name', e.name, 'test')\n        u = e.toUtm()\n        self.test('toUtm', u, t)\n        self.test('name', u.name, 'test')\n        self.test('toETM5', etm.parseETM5(t), e)\n\n        self.testCopy(e, 'name')\n\n        e = e.parse('31 N 448251, 5411932', name='parse')  # coverage\n        t = '31 N 448251 5411932'\n        self.test('parse', e, t)\n        self.test('name', e.name, 'parse')\n        e = e.parse(t.replace(' ', ','))\n        self.test('parse', e, t)\n        self.test('name', e.name, 'parse')\n\n    def testExactTM(self, extendp):\n        self.subtitle(etm, ExactTransverseMercator.__name__)\n\n        xtm = ExactTransverseMercator(extendp=extendp, name='test')\n        self.test('name', xtm.name, 'test')  # coverage\n        t = xtm.toStr()\n        self.test('toStr', t, t)  # coverage\n\n        e, n, g, k = xtm.forward(40.4, -3.7, lon0=-3)  # Madrid , UTM zone 30?\n        self.test('easting',  e,  '-59401.799843' if _K_2_4 else  '-59401.921148', prec=6, nl=1)\n        self.test('northing', n, '4470036.484128' if _K_2_4 else '4472390.031129', prec=6)\n        self.test('gamma',    g,      '-0.453309' if _K_2_4 else      '-0.453697', prec=6)\n        self.test('scale',    k,       '0.999643', prec=6)\n        lat, lon, g, k = xtm.reverse(e, n, lon0=-3)\n        self.test('lat', lat, '40.357615' if _K_2_4 else '40.400000', prec=6)\n        self.test('lon', lon, '-3.699485' if _K_2_4 else '-3.700000', prec=6)\n        self.test('gamma', g, '-0.452969' if _K_2_4 else '-0.453697', prec=6)\n        self.test('scale', k,  '0.999643', prec=6)\n\n        e, n, g, k = xtm.forward(lat, lon, lon0=-3)\n        self.test('easting',  e,  '-59395.300630' if _K_2_4 else  '-59401.921148', prec=6)\n        self.test('northing', n, '4465335.557639' if _K_2_4 else '4472390.031129', prec=6)\n        self.test('gamma',    g,      '-0.452582' if _K_2_4 else      '-0.453697', prec=6)\n        self.test('scale',    k,       '0.999643', prec=6)\n\n        e, n, g, k = xtm.forward(40.3, -74.7, lon0=-75)\n        self.test('easting',  e,   '25495.451559' if _K_2_4 else   '25495.511523', prec=6, nl=1)\n        self.test('northing', n, '4458754.643158' if _K_2_4 else '4461098.320889', prec=6)\n        self.test('gamma',    g,       '0.193888' if _K_2_4 else       '0.194038', prec=6)\n        self.test('scale',    k,       '0.999608', prec=6)\n\n        lat, lon, g, k = xtm.reverse(e, n, lon0=-75)\n        self.test('lat', lat,  '40.257789' if _K_2_4 else  '40.300000', prec=6)\n        self.test('lon', lon, '-74.700195' if _K_2_4 else '-74.700000', prec=6)\n        self.test('gamma', g,   '0.193744' if _K_2_4 else   '0.194038', prec=6)\n        self.test('scale', k,      '0.999608', prec=6)\n\n        e, n, g, k = xtm.forward(lat, lon, lon0=-75)\n        self.test('easting',  e,   '25494.753036' if _K_2_4 else   '25495.511523', prec=6)\n        self.test('northing', n, '4454073.433614' if _K_2_4 else '4461098.320889', prec=6)\n        self.test('gamma',    g,       '0.193594' if _K_2_4 else       '0.194038', prec=6)\n        self.test('scale',    k,       '0.999608', prec=6)\n\n        # <https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1TransverseMercatorExact.html>\n        # lat, lon, _, _ = xtm.reverse(22051449.037349, -7131237.022729)\n        lat, lon, g, k = xtm.reverse(29735142.378357, 4235043.607933)\n        self.test('lat', lat,  '6.40143705' if _K_2_4 else '-2.00000000', prec=8, nl=1)\n        self.test('lon', lon, '88.26853332' if _K_2_4 else '88.00000000', prec=8)\n        self.test('gamma', g, '79.02693716' if _K_2_4 else '67.63332900', prec=8)\n        self.test('scale', k,  '7.30720576' if _K_2_4 else '26.33699547', prec=8)\n\n        if extendp:\n            e, n, g, k = xtm.forward(lat, lon)\n            self.test('easting',  e, '16883115.869330' if _K_2_4 else '29735142.378357', prec=6)\n            self.test('northing', n,  '8853236.377995' if _K_2_4 else  '4235043.607933', prec=6)\n            self.test('gamma',    g,       '79.822275' if _K_2_4 else       '67.633329', prec=6)\n            self.test('scale',    k,        '3.873352' if _K_2_4 else       '26.336995', prec=6, nt=1)\n\n        else:\n            e, n, g, k = xtm.forward(-90, -120)  # coverage\n            self.test('easting', abs(e),        '0.000' if _K_2_4 else        '0.000', prec=3, nl=1)\n            self.test('northing',    n, '-10003578.604' if _K_2_4 else '-9997964.943', prec=3, known=True)\n            self.test('gamma',       g,       '120.000' if _K_2_4 else      '120.000', prec=3)\n            self.test('scale',       k,         '1.000' if _K_2_4 else        '1.000', prec=3)\n\n            lat, lon, g, k = xtm.reverse(e, n)\n            self.test('lat', lat,  '-89.899' if _K_2_4 else  '-90.000', prec=3)\n            self.test('lon', lon,  '180.000' if _K_2_4 else    '0.000', prec=3, known=True)\n            self.test('gamma', g, '-180.000' if _K_2_4 else '-180.000', prec=3)\n            self.test('scale', k,    '1.000' if _K_2_4 else    '1.000', prec=3, nt=1)\n\n        self.testCopy(xtm)\n\n\nif __name__ == '__main__':\n\n    from pygeodesy import ellipsoidalNvector, ellipsoidalVincenty\n\n    t = Tests(__file__, __version__, etm)\n    t.testExactTM(True)\n    t.testExactTM(False)\n    t.testEtm(ellipsoidalNvector.LatLon)\n    t.testEtm(ellipsoidalVincenty.LatLon)\n    t.results()\n    t.exit()\n"
  },
  {
    "path": "test/testEtmTMcoords.py",
    "content": "\n# -*- coding: utf-8 -*-\n\n# Test L{etm} module and L{Etm} class with the C(TMcoords.dat} from\n# U{C. F. F. Karney, \"Test data for the transverse Mercator projection (2009)\"\n# <https://GeographicLib.SourceForge.io/C++/doc/transversemercator.html>},\n# also available U{here<https://Zenodo.org/record/32470>}, file C{TMcoords.dat}.\n\n__all__ = ('testEtmTMcoords',)\n__version__ = '23.12.18'\n\nfrom testTMcoords import testTMcoords\n\n\ndef testEtmTMcoords(name):\n\n    from pygeodesy import etm, Etm, toEtm8\n\n    testTMcoords(etm, toEtm8, name=name, eps1=2e-7, eps2=1e-7, lonE=360, Etm=Etm)\n\n\nif __name__ == '__main__':\n\n    testEtmTMcoords(__file__)\n"
  },
  {
    "path": "test/testExactTMcoords.py",
    "content": "\n# -*- coding: utf-8 -*-\n\n# Test projection L{ExactTransverseMercator} with the C(TMcoords.dat} from\n# U{C. F. F. Karney, \"Test data for the transverse Mercator projection (2009)\"\n# <https://GeographicLib.SourceForge.io/C++/doc/transversemercator.html>},\n# also available U{here<https://Zenodo.org/record/32470>}, file C{TMcoords.dat}.\n\n__all__ = ('testExactTMcoords',)\n__version__ = '23.12.18'\n\nfrom testTMcoords import testTMcoords\n\nfrom pygeodesy import etm, ExactTransverseMercator, LatLon_\n\n_ETM = ExactTransverseMercator()  # default WGS84\n\n\nclass _ExactTM(object):\n    '''Minimal C{Etm} class to test C{ExactTransverseMercator}.\n    '''\n    _datum  = _ETM.datum\n    _scale0 = _ETM.k0\n\n    def __init__(self, lat, lon, **unused):\n        self.easting, self.northing, self.gamma, self.scale = _ETM.forward(lat, lon)\n\n    def toLatLon(self, **unused):\n        lat, lon, _, _ = _ETM.reverse(self.easting, self.northing)\n        return LatLon_(lat, lon)\n\n\ndef testExactTMcoords(name):\n\n    testTMcoords(etm, _ExactTM, name=name, eps1=2e-7, eps2=4e-8, lonE=360, Etm=_ExactTM)  # eps1=4e-8\n\n\nif __name__ == '__main__':\n\n    testExactTMcoords(__file__)\n"
  },
  {
    "path": "test/testFmath.py",
    "content": "\n# -*- coding: utf-8 -*-\n\n# Test L{fmath} module.\n\n__all__ = ('Tests',)\n__version__ = '25.09.09'\n\nfrom bases import endswith, isPython2, isWindows, startswith, TestsBase\n\nfrom pygeodesy import EPS, Fcbrt, Fhypot, INF, Fpowers, Froot, Fsqrt, Fsum, \\\n                      bqrt, cbrt, cbrt2, euclid_, Ellipsoids, facos1, fasin1, \\\n                      fatan, fatan1, fatan2, fhorner, fma, fmath, f2mul_, \\\n                      fpolynomial, fpowers, frandoms, fsum_, hypot, hypot_, \\\n                      hypot2_, isinf, norm_, signOf, sqrt3, sqrt_a, zcrt, zqrt\n\nfrom math import acos, asin, atan, atan2, sqrt\nfrom sys import version_info as _version_info\n# hypot issue in Python 3.8 and 3.9 plus 2.7 32-bit on Windows\n_hypot_known = (3, 8) <= _version_info[:2] <= (3, 9) or (isWindows and\n               (2, 7) == _version_info[:2])\n\n\nclass Tests(TestsBase):\n\n    def testFmath(self):  # MCCABE 14\n\n        # see function _p2 in ellipsoidalVincenty.py\n        for i in range(-16, 17):\n            x = pow(1.0, i)\n\n            p = fpolynomial(x, 16384, 4096, -768, 320, -175) / 16384.0\n            a = x / 16384.0 * (4096 + x * (-768 + x * (320 - 175 * x))) + 1\n            self.test('fpolynomialA', p, a)\n            h = fhorner(x, 16384, 4096, -768, 320, -175) / 16384.0\n            self.test('fhornerA', h, p)\n\n            p = fpolynomial(x, 0, 256, -128, 74, -47) / 1024.0\n            b = x / 1024.0 * (256 + x * (-128 + x * (74 - 47 * x)))\n            self.test('fpolynomialB', p, b)\n            h = fhorner(x, 0, 256, -128, 74, -47) / 1024.0\n            self.test('fhornerB', h, p, nt=1)\n\n        p = fpowers(2, 10)  # PYCHOK false!\n        self.test('fpowers', len(p), 10)\n        self.test('fpowers', p[0], 2)\n        self.test('fpowers', p[9], 2**10)\n        p = fpowers(2, 10, 4)  # PYCHOK false!\n        self.test('fpowers', len(p), 4)\n        self.test('fpowers', p[0], 2**4)\n        self.test('fpowers', p[3], 2**10)\n        p = fpowers(2, 10, 3)  # PYCHOK false!\n        self.test('fpowers', len(p), 4)\n        self.test('fpowers', p[0], 2**3)\n        self.test('fpowers', p[3], 2**9, nt=1)\n\n        def _Ak(Ah, A):\n            r = abs(Ah - A) / (A or 1)\n            return r < 3e-16\n\n        for _, E in Ellipsoids.items(all=True, asorted=True):\n            a_n = E.a / (1 + E.n)\n            n2  = E.n**2\n            Ah = a_n * fhorner(n2, 1, 1./4, 1./64, 1./256, 25./16384)\n            self.test(E.name, Ah, E.A, prec=9, known=_Ak(Ah, E.A))  # b_None, f_None on iPhone\n            Ah = a_n * (fhorner(n2, 16384, 4096, 256, 64, 25) / 16384)\n            self.test(E.name, Ah, E.A, prec=9, known=_Ak(Ah, E.A))  # b_None, f_None on iPhone\n\n            Ah = a_n * fhorner(n2, 1, 1./4, 1./64, 1./256, 25./16384, 49./65536)\n            self.test(E.name, Ah, E.A, prec=9, known=_Ak(Ah, E.A))\n            Ah = a_n * (fhorner(n2, 65536, 16384, 1024, 256, 100, 49) / 65536)\n            self.test(E.name, Ah, E.A, prec=9, known=_Ak(Ah, E.A), nt=1)\n\n        # cffk <https://Bugs.Python.org/issue43088> and <https://Bugs.Python.org/file49783/hypot_bug.py>\n        x  = 0.6102683302836215\n        y1 = 0.7906090004346522\n        y2 = y1 + 1e-16\n        h1 = hypot(x, y1)\n        h2 = hypot(x, y2)\n        self.test('hypot', signOf(y2 - y1), signOf(h2 - h1), known=_hypot_known)\n        self.test('sqrt_a', sqrt_a(h1, y1), x, prec=13)\n        self.test('sqrt_a', sqrt_a(h2, y2), x, prec=13)\n\n        h = hypot_(1.0, 0.0050, 0.0000000000010)\n        self.test('hypot_ ', h, '1.00001250', prec=8)\n        e = euclid_(1.0, 0.0050, 0.0000000000010)\n        self.test('euclid_', e, h, prec=8, known=abs(e - h) < h * 0.01)\n        t = hypot2_(1.0, 0.0050, 0.0000000000010)\n        self.test('hypot2_', t, '1.00002500', prec=8)\n        s = hypot_(*norm_(1.0, 0.0050, 0.0000000000010))  # PYCHOK norm_\n        self.test('norm_  ', s, 1.0, prec=8)\n\n        h = hypot_(3000, 2000, 100)  # note, all C{int}\n        self.test('hypot_ ', h, '3606.937759', prec=6)\n        e = euclid_(3000, 2000, 100)\n        self.test('euclid_', e, h * 1.07, prec=6, known=abs(e - h) < h * 0.07)\n        t = hypot2_(3000, 2000, 100)  # note, all C{int}\n        s = fsum_(3000**2, 2000**2, 100**2)\n        self.test('hypot2_', t, s, prec=1)\n        s = hypot_(*norm_(3000, 2000, 100))  # PYCHOK norm_\n        self.test('norm_  ', s, 1.0, prec=1)\n\n        h = hypot_(40000, 3000, 200, 10.0)\n        s = fsum_(40000**2, 3000**2, 200**2, 100)\n        self.test('hypot_ ', h, sqrt(s), prec=3)\n        t = hypot2_(40000, 3000, 200, 10.0)\n        self.test('hypot2_', t, s, prec=1)\n        e = euclid_(40000, 3000, 200, 10.0)\n        self.test('euclid_', e, h * 1.03, prec=3, known=abs(e - h) < h * 0.03)\n\n        self.test('bqrt',  bqrt(16),   '2.00', prec=2)\n        self.test('cbrt',  cbrt(27),   '3.00', prec=2)\n        self.test('cbrt',  cbrt(-27), '-3.00', prec=2)\n        self.test('cbrt2', cbrt2(27),  '9.00', prec=2)\n        self.test('cbrt2', cbrt2(-27), '9.00', prec=2)\n        self.test('sqrt3', sqrt3(9),  '27.00', prec=2)\n        self.test('zcrt',  zcrt(64),   '2.00', prec=2)\n        self.test('zqrt',  zqrt(256),  '2.00', prec=2)\n\n        def _percent(a, x, f):\n            return max(a, abs((f - x) * 100 / x) if x else 0)\n\n        c = s = t = t1 = t2 = 0\n        for f in range(100):\n            f  =  float(f)\n            t  = _percent(t,  atan(f), fatan(f))\n            t2 = _percent(t2, atan2(f, 2.0), fatan2(f, 2.0))\n            f *= 0.01\n            c  = _percent(c,  acos(f), facos1(f))\n            s  = _percent(s,  asin(f), fasin1(f))\n            t1 = _percent(t1, atan(f), fatan1(f))\n        self.test('facos1', c,  '0.005%', fmt='%.3f%%', known=True)\n        self.test('fasin1', s,  '0.439%', fmt='%.3f%%', known=True)\n        self.test('fatan ', t,  '0.134%', fmt='%.3f%%', known=True)\n        self.test('fatan1', t1, '2.834%', fmt='%.3f%%', known=True)\n        self.test('fatan2', t2, '0.321%', fmt='%.3f%%', known=True)\n\n        f = Fsum(3)\n        n = Fhypot.__name__\n        self.test(n, Fhypot(f, 4.0), '(5.0, 0)', known=endswith, nl=1)\n        f = -f\n        self.test(n, Fhypot(f, -4, 8), '(9.43398, 0)', known=endswith)\n        self.test(n, Fhypot(f, Fsum(-4, 8)), '(5.0, 0)', known=endswith)\n        self.test(n, Fhypot(f, -4, 8, root=-1), '(-2.18182, 0)', known=endswith)\n        self.test(n, Fhypot(f, Fsum(-4, 8), root=-1), '(-12, 0)', known=endswith)\n        f = Fsum(-1)\n        self.test(n, Fhypot(f, -1), '(1.41421, 0)', known=endswith)\n        self.test(n, Fhypot(f, -1, root=-1), '(-0.5, 0)', known=endswith)\n        try:  # pow(INF, -1) == 0.0\n            self.test(n, Fhypot(f, INF, f, f, root=-1), '33, 0)', known=endswith)\n        except Exception as x:\n            self.test(n, str(x), ' not finite', known=endswith)\n        try:\n            self.test(n, Fhypot(f, -1, root=0), ZeroDivisionError.__name__)\n        except Exception as x:\n            self.test(n, str(x), ' division by zero', known=endswith)\n\n        f = Fsum(3)\n        n = Fsqrt.__name__\n        r = Froot.__name__\n        self.test(n, Fsqrt(f, 6), '(3.0, 0)', known=endswith, nl=1)\n        self.test(n, Fcbrt(20, 4, f), '(3.0, 0)', known=endswith)\n        f = -f\n        self.test(n, Fsqrt(f, -4, 9),       '(1.41421, 0)', known=endswith)\n        self.test(n, Fsqrt(f, Fsum(-4, 9)), '(1.41421, 0)', known=endswith)\n        self.test(r, Froot(-1, f, -4, 9), '(0.5, 0)', known=endswith)\n        self.test(r, Froot(-1, f, Fsum(-4, 9)), '(0.5, 0)', known=endswith)\n        f = Fsum(-1)\n        try:\n            self.test(n, Fsqrt(f, -1), ValueError.__name__)\n        except Exception as x:\n            self.test(n, str(x), \"fmath.Fsqrt(<Fsum[1] (-1, 0) \", known=startswith)\n        try:\n            self.test(r, Froot(0, f, -1), ValueError.__name__)\n        except Exception as x:\n            self.test(n, str(x), ' division by zero', known=endswith)\n        self.test(r, Froot(-1, f, -3), '(-0.25, 0)', known=endswith)\n\n        for i, t in enumerate(frandoms(10)):\n            F = Fsum(*t)\n            s = fsum_(F, *t)\n            if s > 0:\n                i += 1\n                n  = str(i)\n                h  = hypot_(F, *t)\n                c  = fsum_(F**3, *(_**3 for _ in t))\n                self.test(Fhypot.__name__  + n, float(Fhypot( F, *t, RESIDUAL=EPS)), h,       fmt='%.9g', nl=1)\n                self.test(Fpowers.__name__ + n, float(Fpowers(3, F, *t)),            c,       fmt='%.9g')\n                self.test(Fsqrt.__name__   + n, float(Fsqrt(  F, *t, RESIDUAL=EPS)), sqrt(s), fmt='%.9g')\n                self.test(Fcbrt.__name__   + n, float(Fcbrt(  F, *t, RESIDUAL=EPS)), cbrt(s), fmt='%.9g')\n\n        t = fma(0.0015626218982622226, -2.417031778248417e-06, 2.4416218889444793e-05)\n        self.test('fma', t, '2.4412441982659e-05', fmt='%.13e', nl=1)\n        a = 1.00000011920929\n        b = 53400708\n        t = fma(a, b, -b)  # <https://MomentsInGraphics.De/FMA.html>\n        self.test('fma', t, '6.365860485903399', known=isPython2 or isWindows)\n        self.test('abc', (a * b) - b, t, known=True)\n\n        t = f2mul_(2., 3, 4)\n        self.test('f2mul_', t, 24.0, nl=1)\n        t = f2mul_(2, 3, INF, nonfinites=True)\n        self.test('f2mul_', t, INF, known=isinf(t))\n        t = f2mul_(INF, 3, INF, nonfinites=True)\n        self.test('f2mul_', t, INF, known=isinf(t))\n\n\nif __name__ == '__main__':\n\n    t = Tests(__file__, __version__, fmath)\n    t.testFmath()\n    t.results()\n    t.exit()\n"
  },
  {
    "path": "test/testFormy.py",
    "content": "\n# -*- coding: utf-8 -*-\n\n# Test L{formy} module.\n\n__all__ = ('Tests',)\n__version__ = '26.01.05'\n\nfrom bases import TestsBase\n\nfrom pygeodesy import PI, PI_2, R_M, angle2chord, antipode, bearing, cosineAndoyerLambert, \\\n                      chord2angle, cosineForsytheAndoyerLambert as _cosineForsythe_, \\\n                      cosineLaw, Datums, equirectangular, euclidean, \\\n                      excessAbc_, excessCagnoli_, excessGirard_, excessLHuilier_, \\\n                      excessKarney, excessQuad, Degrees, flatLocal, flatPolar, formy, \\\n                      hartzell, haversine, heightOf, heightOrthometric, horizon, hubeny, \\\n                      IntersectionError, intersection2, intersections2, \\\n                      isantipode, isantipode_, isnormal, isnormal_, \\\n                      LatLon_, latlonDMS, LimitError, limiterrors, map1, normal, \\\n                      parseDMS, radical2, thomas, Vector3d as V3, vincentys\n\nfrom math import degrees, radians\n\n\nclass Tests(TestsBase):\n\n    def testDistance(self, t, f, lat1, lon1, lat2, lon2, x, m, **kwds):\n        d = f(lat1, lon1, lat2, lon2, wrap=True, **kwds)\n        e = 100.0 * abs(d - x) / x\n        t = '%s%s (%.2f%%)' % (f.__name__, t, e)\n        self.test(t, d, x, fmt='%.3f', known=e < m)\n\n    def testDistances(self, t, lat1, lon1, lat2, lon2, x=0):\n        # allow 0.1% margin\n        self.testDistance(t, haversine,            lat1, lon1, lat2, lon2, x, 0.1)\n        # assumed as reference\n        self.testDistance(t, vincentys,            lat1, lon1, lat2, lon2, x, 0.0)\n        self.testDistance(t, vincentys,            lat1, lon1, lat2, lon2, x, 0.0,\n                                                   radius=Datums.Sphere)  # datums._mean_radius\n        # allow 0.4% margin\n        self.testDistance(t, cosineAndoyerLambert, lat1, lon1, lat2, lon2, x, 0.4)\n        # allow 0.4% margin\n        self.testDistance(t, _cosineForsythe_,     lat1, lon1, lat2, lon2, x, 0.4)\n        # allow 0.1% margin\n        self.testDistance(t, cosineLaw,            lat1, lon1, lat2, lon2, x, 0.1)\n        # allow 3% margin, 10% for Auckland-Santiago\n        self.testDistance(t, equirectangular,      lat1, lon1, lat2, lon2, x, 10, limit=None)  # =90)\n        # allow 13% margin\n        self.testDistance(t, euclidean,            lat1, lon1, lat2, lon2, x, 13)\n        # allow .3% margin, 8% for long distances\n        self.testDistance(t, flatLocal,            lat1, lon1, lat2, lon2, x, 8.1)\n        # allow 21% margin, 57% for Auckland-Santiago\n        self.testDistance(t, flatPolar,            lat1, lon1, lat2, lon2, x, 57)\n        # allow 0.4% margin\n        self.testDistance(t, thomas,               lat1, lon1, lat2, lon2, x, 0.4)\n        # same as flatLocal\n        self.test('hubeny' + t, hubeny, flatLocal, nt=1)\n\n    def testDistances2(self, t, lat1, lon1, lat2, lon2, x=0, **datum):\n        # allow 0.1% margin\n        self.testDistance(t, haversine,            lat1, lon1, lat2, lon2, x, 0.1)\n        # assumed as reference\n        self.testDistance(t, vincentys,            lat1, lon1, lat2, lon2, x, 0.1)\n        # allow 0.4% margin\n        self.testDistance(t, cosineAndoyerLambert, lat1, lon1, lat2, lon2, x, 0.4, **datum)\n        # allow 0.4% margin\n        self.testDistance(t, _cosineForsythe_,     lat1, lon1, lat2, lon2, x, 0.4, **datum)\n        # allow 0.1% margin\n        self.testDistance(t, cosineLaw,            lat1, lon1, lat2, lon2, x, 0.1)\n        # allow .3% margin, 16% for long distances\n        self.testDistance(t, flatLocal,            lat1, lon1, lat2, lon2, x, 16, **datum)\n        # allow 0.4% margin\n        self.testDistance(t, thomas,               lat1, lon1, lat2, lon2, x, 0.4, **datum)\n        # same as flatLocal\n        self.test('hubeny' + t, hubeny, flatLocal, nt=1)\n\n    def testFormy(self):  # MCCABE 13\n\n        t = angle2chord(Degrees(90))\n        self.test('angle2chord', angle2chord(PI_2), t, prec=3)\n        self.test('chord2angle', chord2angle(t), PI_2, prec=6)\n\n        self.test('antipode1', antipode( 89,  179), (-89.0, -1.0))\n        self.test('antipode2', antipode(-89, -179), ( 89.0,  1.0))\n\n        # roughly, Newport to New York\n        self.test('bearing1', bearing(41.49, -71.31, 40.78, -73.97),              251.364, fmt='%.3f')\n        self.test('bearing2', bearing(41.49, -71.31, 40.78, -73.97, final=False), 251.364, fmt='%.3f')\n        self.test('bearing3', bearing(41.49, -71.31, 40.78, -73.97, final=True),  249.614, fmt='%.3f')\n\n        # <https://codegolf.StackExchange.com/questions/63870/spherical-excess-of-a-triangle>\n        # t = sphericalTrigonometry.triangle7(10, 10, 70, -20, 70, 40, radius=None) ... -8Tuple\n        # (A=0.386453, a=0.34371, B=1.482026, b=1.098565, C=1.482026, c=1.098565, D=3.742345, E=0.208912)')\n        # XXX with the full t.A, t.a, ... values, all 5 excess' produce the exact same results\n        for f, t in ((excessAbc_,      (0.386453, 1.098565, 1.098565)),\n                     (excessAbc_,      (1.482026, 0.34371,  1.098565)),\n                     (excessCagnoli_,  (0.34371,  1.098565, 1.098565)),\n                     (excessGirard_,   (0.386453, 1.482026, 1.482026)),\n                     (excessLHuilier_, (0.34371,  1.098565, 1.098565))):\n            self.test(f.__name__, degrees(f(*t)), '11.9698', prec=4)\n        for f, t, x in ((excessKarney, (70, -20, 70, 40),  '56.9625'),\n                        (excessQuad,   (70, -20, 70, 40),  '56.9625'),\n                        (excessKarney, ( 0, -20, 70, 40),  '44.0235'),\n                        (excessQuad,   ( 0, -20, 70, 40),  '44.0235'),\n                        (excessKarney, (70, 40,  0, -20), '-44.0235'),\n                        (excessQuad,   (70, 40,  0, -20), '-44.0235')):\n            self.test(f.__name__, degrees(f(*t, radius=None)), x, prec=4)\n\n        self.test('isantipode1', isantipode( 89,  179, -89,  -1), True, nl=1)\n        self.test('isantipode2', isantipode(-89, -179,  89,   1), True)\n        self.test('isantipode3', isantipode(-89, -179, -89,  -1), False)\n        self.test('isantipode4', isantipode(  0,  -45, -0., 135), True)\n\n        self.test('isantipode5', isantipode_(*map1(radians,  89,  179, -89,  -1)), True)\n        self.test('isantipode6', isantipode_(*map1(radians, -89, -179,  89,   1)), True)\n        self.test('isantipode7', isantipode_(*map1(radians, -89, -179, -89,  -1)), False)\n        self.test('isantipode8', isantipode_(*map1(radians,   0,  -45, -0., 135)), True)\n\n        self.test('isnormal1', isnormal( 90, -180), True, nl=1)\n        self.test('isnormal2', isnormal(-99,  180), False)\n        self.test('isnormal3', isnormal(-0.,  180), True)\n        self.test('isnormal4', isnormal(-89,  179, eps=1), True)\n\n        self.test('isnormal5', isnormal_( PI_2, -PI), True)\n        self.test('isnormal6', isnormal_(-PI,    PI), False)\n        self.test('isnormal7', isnormal_(-0.,    PI), True)\n        self.test('isnormal8', isnormal_(-PI_2+0.1, PI-0.1, eps=0.1), True)\n\n        pov = V3(10.1e6, 10.2e6, 10.3e6)  # 10+ km\n        los = V3(-0.7274, -0.3637, -0.5819)\n        n = hartzell.__name__\n        self.test('hartzell', hartzell(pov, los).toStr(prec=6), '(884080.396945, 5592040.198472, 2927517.711001)', nl=1)\n        ll = hartzell(pov, los, LatLon=LatLon_)\n        self.test(n, ll.toStr(prec=6), \"27.500482°N, 081.016111°E, +12669647.30, 'hartzell'\", known=ll.height > 12e6)\n        self.test(n, hartzell(pov).toStr(prec=6), '(3642031.283571, 3678090.99925, 3714150.714929)')\n        ll = hartzell(pov, LatLon=LatLon_)\n        self.test(n, ll.toStr(prec=6), \"35.843738°N, 045.282243°E, +11296639.67, 'hartzell'\", known=ll.height > 11e6)\n        self.test(n, hartzell(pov, los=True).toStr(prec=6), '(3647362.058328, 3683474.553955, 3703640.299338)')\n        ll = hartzell(pov, los=True, LatLon=LatLon_)\n        self.test(n, ll.toStr(prec=6), \"35.726966°N, 045.282243°E, +11296619.03, 'hartzell'\", known=ll.height > 11e6)\n\n        self.test('heightOf0',   heightOf(0,   R_M), 2638958.23912, fmt='%.5f')\n        self.test('heightOf45',  heightOf(45,  R_M), 5401080.43931, fmt='%.5f')\n        self.test('heightOf90',  heightOf(90,  R_M), R_M,           fmt='%.5f')  # Height\n        self.test('heightOf135', heightOf(135, R_M), 5401080.43931, fmt='%.5f')\n\n        self.test('horizon0',     horizon(0), 0.0)\n        self.test('horizon10Km',  horizon(10000), '357099.672', fmt='%.3f')\n        self.test('horizon30Kft', horizon(10000, refraction=True), '392310.704', fmt='%.3f')\n        self.test('horizon10Kft', horizon( 3000, refraction=True), '214877.422', fmt='%.3f')\n\n        self.test('normal1', normal(-89,  179), (-89.0,  179.0))\n        self.test('normal2', normal( 99,    0), ( 81.0,  180.0))\n        self.test('normal3', normal( 99, -199), ( 81.0,  -19.0))\n        self.test('normal4', normal(-99,  180), (-81.0,    0.0), nt=1)\n\n        #              lat          lon\n        Auckland   = -36.8485,    174.7633\n        Boston     =  42.3541165, -71.0693514\n        Cleveland  =  41.499498,  -81.695391\n        LosAngeles =  34.0522,   -118.2437\n        MtDiablo   =  37.8816,   -121.9142\n        Newport    =  41.49008,   -71.312796\n        NewYork    =  40.7791472, -73.9680804\n        Santiago   = -33.4489,    -70.6693\n        X          =  25.2522,     55.28\n        Y          =  14.6042,    120.982\n        # <https://GeographicLib.SourceForge.io/cgi-bin/GeodSolve>, <https://www.Distance.to>\n        for i,  (ll1,        ll2,        expected) in enumerate((\n                (Boston,     NewYork,      298009.404),    # ..328,722.580        370 km\n                (Boston,     Newport,       98164.988),    # ..106,147.318         99 km\n                (Cleveland,  NewYork,      651816.987),    # ..736,534.840        536 km\n                (NewYork,    MtDiablo,    4084985.780),    # ..4,587,896.452    3,952 km\n                (Auckland,   Santiago,    9670051.606),    # ..15,045,906.074   9,665 km\n                (Auckland,   LosAngeles, 10496496.577),    # ..13,002,288.857  10,940 km\n                (LosAngeles, Santiago,    8998396.669),    # ..10,578,638.162   8,993 km\n                (X,          Y,           6906867.946))):  # ..6916,085.326     6,907 km\n            self.testDistances(str(i + 1), *(ll1 + ll2), x=expected)\n\n        # Thomas' S2, page 153 <https://apps.DTIC.mil/dtic/tr/fulltext/u2/703541.pdf>\n        self.testDistances2('9', parseDMS('75 57 42.053'), 0,\n                                 parseDMS('17  5 21.296'), parseDMS('85 31 54.631'),\n                                 x=8044806.076, datum=Datums.NAD27)  # Clarke1866 ellipsoid\n\n        f = intersection2\n        self.test(f.__name__, f.__module__, formy.__name__)\n        for datum in (None, R_M, -R_M, Datums.WGS84):\n            t = str(intersection2(0, 0, 30, 0, 30, -30, datum))\n            self.test('%s(%s)' % (f.__name__, datum), t, '(24.284126, 15.0)', known=t.endswith(' 15.0)'))\n\n        f = intersections2\n        self.test(f.__name__, f.__module__, formy.__name__, nl=1)\n        for datum in (None, R_M, Datums.WGS84):\n            self.testIntersections2(datum)\n\n        n = radical2.__name__\n        self.test(n, radical2(10, 4, 8), '(0.26, 2.6)', nl=1)\n        self.test(n, radical2(10, 8, 4), '(0.74, 7.4)')\n        self.test(n, radical2(10, 5, 5), '(0.5, 5.0)')\n        self.test(n, radical2( 0, 5, 5), '(0.5, 0.0)')\n\n        try:  # coverage\n            self.test(n, radical2(10, 5, 4), IntersectionError.__name__, nt=1)\n        except Exception as x:\n            self.test(IntersectionError.__name__, str(x), 'distance (10.0), ...', known=True, nt=1)\n\n        n = LimitError.__name__\n        t = limiterrors(True)\n        try:  # coverage\n            self.test(n, equirectangular(0, 0, 60, 120), n)\n        except Exception as x:\n            self.test(n, str(x), 'delta exceeds ...', known=True)\n        limiterrors(t)\n\n        p = LatLon_(1, 2, height=3)\n        self.test(heightOrthometric.__name__, heightOrthometric(p, 4), -1.0, nl=1)\n        self.test(heightOrthometric.__name__, heightOrthometric(5, 4),  1.0)\n\n    def testIntersections2(self, datum):\n        # centers at 2 opposite corners of a \"square\" and\n        # radius equal to length of square side, expecting\n        # the other 2 as the intersections ... but the\n        # longitudes are farther and farther out\n        for d in (1, 2, 5, 10, 20, 30, 40):\n            r = radians(2 * d) * R_M\n            n = '%s(%s) %d' % (intersections2.__name__, getattr(datum, 'name', datum), d)\n            try:\n                t = intersections2(d, -d, r, -d, d, r, datum=datum)\n                if t[0] is t[1]:\n                    s = ', '.join(latlonDMS(t[:1], prec=4)) + ' abutting'\n                else:\n                    s = ', '.join(latlonDMS(t, prec=4))\n                self.test(n, s, s)\n            except IntersectionError as x:\n                self.test(n, str(x), '2-tuple', known=True)\n\n\nif __name__ == '__main__':\n\n    t = Tests(__file__, __version__)\n    t.testFormy()\n    t.results()\n    t.exit()\n"
  },
  {
    "path": "test/testFrechet.py",
    "content": "\n# -*- coding: utf-8 -*-\n\n# Test L{frechet} distances.  Very slow with coverage!\n\n__all__ = ('Tests',)\n__version__ = '25.04.21'\n\nfrom bases import GeodSolve, geographiclib, \\\n                  isPython3, isWindows, TestsBase\n\nfrom pygeodesy import FrechetError, fstr, LatLon_, randomrangenerator\n\n_rr = randomrangenerator('R')\n_ms = [LatLon_(*_ll) for _ll in zip(_rr( -90,  90, 2),  # 90\n                                    _rr(-180, 180, 4))]\n\n_ps = [LatLon_(*_ll) for _ll in zip(_rr( -89,  90, 3),  # 60\n                                    _rr(-179, 180, 6))]\n\n\nclass Tests(TestsBase):\n\n    def test2(self, Frechet, x, y, **kwds):\n\n        k = kwds.pop('known', False)\n        p = kwds.pop('prec',  5)\n\n        def _tstr(t):\n            s = list(t[:5])\n            s[0] = fstr(t.fd, prec=p)\n            return '(%s)' % (', '.join(map(str, s)),)\n\n        f = Frechet(_ms, fraction=1, **kwds)\n        n = '%s (%s)' % (f.named, f.units)\n\n        try:\n            t = _tstr(f.discrete(_ps))\n            n = '%s (%s)' % (f.named, f.units)\n            self.test(n, t, x, known=k, nl=1)  # + (t.units,)\n        except FrechetError as e:\n            self.test(n, str(e), x, known=k, nl=1)  # + (t.units,)\n\n        try:\n            t = _tstr(f.discrete(_ps, fraction=0.5))\n            n = '%s (%s)' % (f.named, f.units)\n            self.test(n, t, y, known=k)  # + (t.units,)\n        except FrechetError as e:\n            raise\n            self.test(n, str(e), y, known=k)  # + (t.units,)\n\n        self.testCopy(f)\n\n        f.units = ''  # coverage\n\n\nif __name__ == '__main__':  # MCCABE 25\n\n    from pygeodesy import fractional, frechet_, FrechetCosineLaw, \\\n                          FrechetDegrees, FrechetDistanceTo, FrechetEquirectangular, \\\n                          FrechetEuclidean, FrechetExact, FrechetFlatLocal, FrechetFlatPolar, \\\n                          FrechetKarney, FrechetHaversine, FrechetHubeny, FrechetRadians, \\\n                          FrechetThomas, FrechetVincentys\n\n    def _distance(p1, p2):\n        dy, dx = abs(p1.lat - p2.lat), abs(p1.lon - p2.lon)\n        return (dx + dy * 0.5) if dx > dy else (dy + dx * 0.5)\n\n    class FrechetDegrees_(FrechetDegrees):\n        '''Custom Frechet.'''\n        def distance(self, p1, p2):\n            return _distance(p1, p2)\n\n    class FrechetRadians_(FrechetRadians):\n        '''Custom Frechet.'''\n        def distance(self, p1, p2):\n            dy, dx = abs(p1.phi - p2.phi), abs(p1.lam - p2.lam)\n            return (dx + dy * 0.5) if dx > dy else (dy + dx * 0.5)\n\n    t = Tests(__file__, __version__)\n\n    if isPython3:  # XXX different Random?\n        t.test2(FrechetDegrees_, (178.5, 74, 56,    0,  5400),\n                                 (175.5, 74, 52.5, 29, 10710))\n\n        t.test2(FrechetRadians_, (3.11541, 74, 56,    0,  5400),\n                                 (3.06305, 74, 52.5, 29, 10710))\n\n        t.test2(FrechetCosineLaw, (2.63867, 0, 13,   0,  5400),\n                                  (2.63867, 0,  0, 208, 10710))\n        for c in (1, 2):\n            t.test2(FrechetCosineLaw, (2.6319, 0, 13,   0,  5400),\n                                      (2.6319, 0,  0, 208, 10710), corr=c)\n\n        t.test2(FrechetEquirectangular, (7.1331,  8, 3,   0,  5400),\n                                        (7.01295, 0, 0, 208, 10710))\n\n        t.test2(FrechetEuclidean, (2.81124, 8, 3,   0,  5400),\n                                  (2.74296, 0, 0, 208, 10710))\n\n        t.test2(FrechetFlatLocal, (7.13778, 8, 3,   0,  5400),\n                                  (6.92262, 0, 0, 208, 10710))\n\n        t.test2(FrechetFlatPolar, (2.65039, 0, 4,   0,  5400),\n                                  (2.65039, 0, 0, 208, 10710))\n\n        t.test2(FrechetHaversine, (2.63867, 0, 13,   0,  5400),\n                                  (2.63867, 0,  0, 208, 10710))\n\n        t.test2(FrechetHubeny, (7.13778, 8, 3,   0,  5400),\n                               (6.92262, 0, 0, 208, 10710))\n\n        t.test2(FrechetThomas, (2.63187, 0, 13,   0,  5400),\n                               (2.63187, 0,  0, 208, 10710))\n\n        t.test2(FrechetVincentys, (2.63867, 0, 13,   0,  5400),\n                                  (2.63867, 0,  0, 208, 10710))\n\n        if geographiclib:\n            t.test2(FrechetKarney, (151.09508, 0, 13,   0,  5400),\n                                   (151.09508, 0,  0, 208, 10710))\n\n        if t._testX:\n            t.test2(FrechetExact, (151.09508, 0, 13,   0,  5400),\n                                  (151.09508, 0,  0, 208, 10710))\n\n    elif isWindows:  # Python 2\n        t.test2(FrechetDegrees_, (182.5,  83, 45,    0,  5400),\n                                 (175.75, 83, 56.5, 12, 10710))\n\n        t.test2(FrechetRadians_, (3.18523, 83, 45,    0,  5400),\n                                 (3.06742, 83, 56.5, 12, 10710))\n\n        t.test2(FrechetCosineLaw, (1.75068, 49, 27,   0,  5400),\n                                  (1.75068, 49, 27, 105, 10710))\n        for c in (1, 2):\n            t.test2(FrechetCosineLaw, (1.74692, 49, 27,   0,  5400),\n                                      (1.74692, 49, 27, 105, 10710), corr=c)\n\n        t.test2(FrechetEquirectangular, (5.88254, 41, 18,     0,  5400),\n                                        (5.90078, 40, 15.5, 137, 10710))\n\n        t.test2(FrechetEuclidean, (2.52802, 50, 26,     0,  5400),\n                                  (2.48948, 39, 22.5, 124, 10710))\n\n        t.test2(FrechetFlatLocal, (5.85735, 42, 19,     0,  5400),\n                                  (5.89746, 40, 15.5, 137, 10710))\n\n        t.test2(FrechetFlatPolar, (2.10357, 84, 40,    0,  5400),\n                                  (2.00246, 57, 40.5, 70, 10710))\n\n        t.test2(FrechetHaversine, (1.75068, 49, 27,   0,  5400),\n                                  (1.75068, 49, 27, 105, 10710))\n\n        t.test2(FrechetHubeny, (5.85735, 42, 19,     0,  5400),\n                               (5.89746, 40, 15.5, 137, 10710))\n\n        t.test2(FrechetThomas, (1.74692, 49, 27,   0,  5400),\n                               (1.74692, 49, 27, 105, 10710))\n\n        t.test2(FrechetVincentys, (1.75068, 49, 27,   0,  5400),\n                                  (1.75068, 49, 27, 105, 10710))\n\n        if geographiclib:\n            t.test2(FrechetKarney, (100.27538, 49, 27,   0,  5400),\n                                   (100.27538, 49, 27, 105, 10710))\n\n        if t._testX:\n            t.test2(FrechetExact, (100.27538, 49, 27,   0,  5400),\n                                  (100.27538, 49, 27, 105, 10710))\n\n    else:  # Python 2, elsewhere\n        t.test2(FrechetDegrees_, (288.0, 1, 1,   0,  5400),\n                                 (288.0, 1, 1, 205, 10710))\n\n        t.test2(FrechetRadians_, (5.02655, 1, 1,   0,  5400),\n                                 (5.02655, 1, 1, 205, 10710))\n\n        t.test2(FrechetCosineLaw, (1.81341, 18, 14,     0,  5400),\n                                  (1.83289,  3,  4.5, 196, 10710))\n        for c in (1, 2):\n            t.test2(FrechetCosineLaw, (1.81201, 18, 14,     0,  5400),\n                                      (1.83135,  3,  4.5, 196, 10710), corr=c)\n\n        t.test2(FrechetEquirectangular, ( 7.53702, 1, 3,     0,  5400),\n                                        (12.58507, 0, 2.5, 203, 10710))\n\n        t.test2(FrechetEuclidean, (2.80593, 1, 3,     0,  5400),\n                                  (3.83981, 0, 2.5, 203, 10710))\n\n        t.test2(FrechetFlatLocal, ( 7.55994, 1, 3,     0,  5400),\n                                  (12.61423, 0, 2.5, 203, 10710))\n\n        t.test2(FrechetFlatPolar, (2.88199, 89, 59, 0,  5400),\n                                  (2.88199, 89, 59, 1, 10710))\n\n        t.test2(FrechetHaversine, (1.81341, 18, 14,     0,  5400),\n                                  (1.83289,  3,  4.5, 196, 10710))\n\n        t.test2(FrechetHubeny, ( 7.55994, 1, 3,     0,  5400),\n                               (12.61423, 0, 2.5, 203, 10710))\n\n        t.test2(FrechetThomas, (1.81201, 18, 14,     0,  5400),\n                               (1.83135,  3,  4.5, 196, 10710))\n\n        t.test2(FrechetVincentys, (1.81341, 18, 14,     0,  5400),\n                                  (1.83289,  3,  4.5, 196, 10710))\n\n        if geographiclib:\n            t.test2(FrechetKarney, (104.00172, 18, 14,     0,  5400),\n                                   (105.26515,  3,  4.5, 196, 10710))\n\n        if t._testX:\n            t.test2(FrechetExact, (104.00172, 18, 14,     0,  5400),\n                                  (105.26515,  3,  4.5, 196, 10710))\n\n    if isPython3:\n        from pygeodesy import ellipsoidalNvector, ellipsoidalVincenty, \\\n                              sphericalNvector, sphericalTrigonometry\n\n        ms = (ellipsoidalVincenty,)\n        if geographiclib:\n            from pygeodesy import ellipsoidalKarney\n            ms += (ellipsoidalKarney,)\n        if t._testX:\n            from pygeodesy import ellipsoidalExact\n            ms += (ellipsoidalExact,)\n            if GeodSolve:\n                from pygeodesy import ellipsoidalGeodSolve\n                ms += (ellipsoidalGeodSolve,)\n\n        for m in ms:\n            _ms = [m.LatLon(*ll.latlon) for ll in _ms]\n            _ps = [m.LatLon(*ll.latlon) for ll in _ps]\n            t.test2(FrechetDistanceTo, (16786640.7064, 0, 13,   0,  5400),\n                                       (16786640.7064, 0,  0, 208, 10710), prec=4, known=True)\n\n        for m in (ellipsoidalNvector, sphericalNvector, sphericalTrigonometry):\n            _ms = [m.LatLon(*ll.latlon) for ll in _ms]\n            _ps = [m.LatLon(*ll.latlon) for ll in _ps]\n            t.test2(FrechetDistanceTo, (16810959.0015, 0, 13,  0,  5400),\n                                       (16810959.0015, 0, 0, 208, 10710), prec=4, known=True)\n\n    if True:  # for test coverage\n        f = frechet_(_ms, _ps, distance=_distance, units='recursive', recursive=True)\n        t.test('frechet_', f, \"(178.5, 74, 56, 19, 5400, 'recursive')\" if isPython3 else\n                              \"(288.0, 1, 1, 147, 5400, 'recursive')\", known=True, nl=1)\n\n        t.test('[fi1]', fractional(_ms, f.fi1), '64.0°S, 096.0°E' if isPython3 else '38.0°S, 116.0°W', known=True)\n        t.test('[fi2]', fractional(_ps, f.fi2), '41.0°S, 071.0°W' if isPython3 else '64.0°N, 121.0°E', known=True)\n\n        t.test('[fi1]', fractional(_ms, f.fi1, LatLon=LatLon_).toRepr(), 'LatLon_(64.0°S, 096.0°E)' if isPython3 else\n                                                                         'LatLon_(38.0°S, 116.0°W)', known=True)\n        t.test('[fi2]', fractional(_ps, f.fi2, LatLon=LatLon_).toRepr(), 'LatLon_(41.0°S, 071.0°W)' if isPython3 else\n                                                                         'LatLon_(64.0°N, 121.0°E)', known=True)\n\n        f = frechet_(_ms, _ps, distance=_distance, units='non-recursive', recursive=False)\n        t.test('frechet_', f, \"(178.5, 74, 56, 0, 5400, 'non-recursive')\" if isPython3 else\n                              \"(288.0, 1, 1, 0, 5400, 'non-recursive')\", known=True, nl=1)\n        _ms = list(reversed(_ms))\n        _ps = list(reversed(_ps))\n        f = frechet_(_ms, _ps, distance=_distance, units='non-recursive-reversed', recursive=False)\n        t.test('frechet_', f, \"(178.5, 15, 3, 0, 5400, 'non-recursive-reversed')\" if isPython3 else\n                              \"(288.0, 88, 58, 0, 5400, 'non-recursive-reversed')\", known=True)\n\n    t.results()\n    t.exit()\n"
  },
  {
    "path": "test/testFrozen.py",
    "content": "\n# -*- coding: utf-8 -*-\n\n# Test _isfrozen for PyInstaller, etc. errors.\n\n__all__ = ('Tests',)\n__version__ = '24.03.03'\n\nfrom bases import TestsBase, _env_c2\n\n\nclass Tests(TestsBase):\n\n    def testFrozen(self):\n        # simple _isfrozen test, mimicking PyInstaller\n        env_cmd, cmd = _env_c2(\"-c 'import sys; sys.frozen = True; import pygeodesy; \"\n                                   \"sys.exit(0 if pygeodesy._isfrozen else 1)'\",\n                               dev_null='2>/dev/null')  # NUL_='>NUL:'\n        self.test('cmd', cmd, cmd)\n        if env_cmd:\n            from os import system\n            for z in range(3):\n                e = 'PYGEODESY_LAZY_IMPORT=%s' % (z,)\n                c =  env_cmd % (e,)\n                x =  system(c) >> 8  # exit status in high byte\n                self.test(e, x, 0)\n        else:\n            self.skip('no env_cmd')\n\n\nif __name__ == '__main__':\n\n    t = Tests(__file__, __version__)\n    t.testFrozen()\n    t.results()\n    t.exit()\n"
  },
  {
    "path": "test/testFstats.py",
    "content": "\n# -*- coding: utf-8 -*-\n\n# Test L{fstats} module.\n\n__all__ = ('Tests',)\n__version__ = '23.05.08'\n\nfrom bases import endswith, TestsBase\n\nfrom pygeodesy import EPS0, Fcook, Flinear, fstats, \\\n                      Fsum, Fsum2Tuple, Fwelford\n\n\nclass Tests(TestsBase):\n\n    def testFstats(self):\n\n        c = Fcook((2, 4, 4, 4, 5, 5, 7, Fsum(9)), name=Fcook.__name__)\n        self.test(c.name, len(c), 8)\n        k = c.fkurtosis()\n        self.test(c.name, k, '-0.218750', prec=6)\n        e = c.fmedian()\n        self.test(c.name, e, '4.562500', prec=6)\n        m = c.fmean()\n        self.test(c.name, m, '5.0', known=abs(m - 5) < EPS0)\n        s = c.fskewness()\n        self.test(c.name, s, '0.656250', prec=6)\n        d = c.fstdev(sample=False)\n        self.test(c.name, d, '2.0', prec=1)\n        v = c.fvariance()\n        self.test(c.name, v, d**2, prec=1)\n        j = c.fjb()\n        self.test(c.name, j, '1.039635', prec=6, nt=1)\n\n        t = c.fcopy(name=c.fcopy.__name__)\n        self.test(t.name, t, '[8]', known=endswith)\n        self.test(t.name, t.fmean_(),  m)\n        self.test(t.name, t.fstdev_(), d, prec=1)\n        self.test(c.name, c.fadd(()), 8, nt=1)\n\n        c = t + c\n        c.rename('Doubled')\n        self.test(c.name, len(c),  16)\n        self.test(c.name, c.fkurtosis(), k, prec=6)\n        self.test(c.name, c.fmedian(), e)\n        self.test(c.name, c.fmean(), m)\n        self.test(c.name, c.fskewness(), s, prec=6)\n        self.test(c.name, c.fstdev(), d, prec=1)\n        self.test(c.name, c.fvariance(), v, prec=1)\n        self.test(c.name, c.fjb(), j, prec=6, known=True, nt=1)\n\n        t = Fcook(name='Empty')\n        t += c\n        self.test(t.name, t, '[16]', known=endswith)\n        t += 0\n        t += Fsum()\n        self.test(t.name, len(t), 18)\n        try:\n            t += None\n            self.test(t.name, t, TypeError.__name__)\n        except TypeError as x:\n            self.test_x(t.name, x)\n\n        # <https://www.Real-Statistics.com/descriptive-statistics/symmetry-skewness-kurtosis/>\n        c = Fcook((2, 5, -1, 3, 4, 5, 0, Fsum2Tuple(1, 1)), name='Excel')\n        self.test(c.name, len(c), 8, nl=1)\n        k = c.fkurtosis_()\n        self.test(c.name, k, '-1.114187', prec=6)\n        t = c.fkurtosis_(sample=True)\n        self.test(c.name, t, '-0.939792', prec=6)\n        e = c.fmedian_()\n        self.test(c.name, e, '2.735294', prec=6)\n        m = c.fmean_()\n        self.test(c.name, m, '2.50', prec=2, known=abs(m - 5) < EPS0)\n        s = c.fskewness_()\n        self.test(c.name, s, '-0.342403', prec=6)\n        t = c.fskewness_(sample=True)\n        self.test(c.name, t, '-0.427052', prec=6)\n        d = c.fstdev_(sample=False)\n        self.test(c.name, d, '2.061553', prec=6)\n        v = c.fvariance_()\n        self.test(c.name, v, d**2, prec=1)\n        j = c.fjb_()\n        self.test(c.name, j, '0.470372', prec=6, nt=1)\n\n        w = Fwelford((2, 4, 4, 4, 5, 5, 7, Fsum(9)), name=Fwelford.__name__)\n        self.test(w.name, len(w), 8)\n        m = w.fmean()\n        self.test(w.name, m, '5.0', known=abs(m - 5) < EPS0)\n        d = w.fstdev(sample=False)\n        self.test(w.name, d, '2.0', prec=1, known=abs(m - 2) < EPS0)\n        v = w.fvariance(sample=False)\n        self.test(w.name, v, d**2, prec=1, nt=1)\n\n        t = w.fcopy(name=w.fcopy.__name__)\n        self.test(t.name, t, '[8]', known=endswith)\n        self.test(t.name, t.fmean_(),  m)\n        self.test(t.name, t.fstdev_(), d, prec=1)\n        self.test(t.name, t.fvariance_(), d**2, prec=1)\n        self.test(t.name, t.fadd_(), 8)\n\n        t = Fwelford(name='Empty') + c.toFwelford()\n        t += t\n        t += 0\n        t += Fsum()\n        self.test(t.name, len(t), 18)\n        try:\n            t += None\n            self.test(t.name, t, TypeError.__name__)\n        except TypeError as x:\n            self.test_x(t.name, x)\n\n        # <https://www.DisplayR.com/what-is-linear-regression/>\n        r = Flinear(( 23,  26,  30,   34,   43,   48,   52,   57,   58),\n                    (651, 762, 856, 1063, 1190, 1298, 1421, 1440, 1518), name=Flinear.__name__)\n        self.test(r.name, len(r), 9, nl=1)\n        self.test(r.name, r.fcorrelation(), '0.988288', prec=6)\n        self.test(r.name, r.fintercept(), '167.682949', prec=6)\n        self.test(r.name, r.fslope(),      '23.422786', prec=6)\n\n        r = r + (1, 2)\n        self.test(r.name, len(r), 10)\n        r += r.fcopy()\n        r += Fsum(), Fsum2Tuple(3, 4)\n        self.test(r.name, len(r), 21)\n        try:\n            r += None\n            self.test(r.name, r, TypeError.__name__)\n        except TypeError as x:\n            self.test_x(r.name, x)\n        try:\n            r += 1, 2, 3\n            self.test(r.name, r, ValueError.__name__)\n        except ValueError as x:\n            self.test_x(r.name, x)\n\n    def test_x(self, name, x):\n        x = repr(x)\n        self.test(name, x, x)\n\n\nif __name__ == '__main__':\n\n    t = Tests(__file__, __version__, fstats)\n    t.testFstats()\n    t.results()\n    t.exit()\n"
  },
  {
    "path": "test/testFsums.py",
    "content": "\n# -*- coding: utf-8 -*-\n\n# Test L{fsums} module.\n\n__all__ = ('Tests',)\n__version__ = '25.06.02'\n\nfrom bases import endswith, isPython2, startswith, TestsBase\n\nfrom pygeodesy import EPS, INF, NAN, Fsum, Fsum2product, Fsum2Tuple, \\\n                      NN, ResidualError, f2product, frandoms, fsum, \\\n                      fsum_, fsums, isfinite, nonfiniterrors\n\nfrom math import ceil, floor\n\n_dot0 = '.0' if isPython2 else NN\n\n\nclass Tests(TestsBase):\n\n    def testFsums(self, Fsum):  # MCCABE 26\n\n        # U{Neumaier<https://WikiPedia.org/wiki/Kahan_summation_algorithm>}\n        t = 1, 1e101, 1, -1e101\n        for i in range(1, 11):\n            s = float(len(t) / 2)  # number of ones\n            self.test('sum' + str(i), sum(t), s, known=True)\n            self.test('fsum', fsum(t), s)\n            self.test('Fsum', Fsum().fsum(t), s)\n            t += t\n\n        # <https://GitHub.com/ActiveState/code/blob/master/recipes/Python/\n        #        393090_Binary_floating_point_summatiaccurate_full/recipe-393090.py>\n        t = 1.0, 0.0050, 0.0000000000010\n        s = 1.0050000000010\n        self.test('sum', sum(t), s, known=True)\n        self.test('fsum', fsum(t), s)\n        self.test('Fsum', Fsum().fsum(t), s)\n\n        # <https://GitHub.com/python/cpython/blob/master/Modules/mathmodule.c>\n        t =  1e-16, 1, 1e16\n        s = '1.0000000000000002e+16'  # half-even rounded\n        self.test('fsum', fsum(t),         s, prec=-16)\n        self.test('Fsum', Fsum().fsum(t),  s, prec=-16)\n        self.test('Fsum', float(Fsum(*t)), s, prec=-16, nt=1)\n\n        def _x(x, f):  # f.name and f.len into x\n            x = x.copy(name=f.name)\n            x._n = len(f)\n            return x\n\n        for i, t in enumerate(frandoms(100)):\n            f = Fsum(*t)\n            s = f.fsum()\n            self.test('fsum', s, s, nl=1)\n            self.test('sum' + str(i + 1), sum(t), s, known=True)\n\n            q = f * f * f * f\n            p = f.pow(4)\n            e = abs(p - q)\n            self.test('pow(4)', p, _x(q, p), error=e, known=e < 0.2)\n            p = f.pow(1)\n            self.test('pow(1)', p, _x(f, p), known=p == f)\n            self.test('pow(0)', f.pow(0), 'Fsum[1] pow(1.0, 0)')\n\n            i = f.ceil  # Python 2, ceil(f) != f.__ceil__\n            self.test('ceil', (i - 1) < f <= i, True)\n            i = f.floor  # Python 2, floor(f) != f.__floor__\n            self.test('floor', i <= f < (i + 1), True)\n            n = len(t) // 2\n            i, m = divmod(f, n)  # == f.__divmod__ in Python 2\n            f -= (m + i * n)\n            self.test('divmod', f, _x(Fsum(0), f), known=f == 0)\n\n            r = f.residual\n            self.test('residual', r, '0')\n            self.test('is_exact', f.is_exact(), (not r))\n\n            f = Fsum()\n            f.fsum(t[:n])  # test ps\n            self.test('Fsum', f.fsum(t[n:]), s)\n            f = Fsum()\n            f.fsum(t[n:])  # test ps\n            self.test('Fsum', f.fsum(t[:n]), s)\n        p = f * (f * 1e10)  # coverage Fsum.__imul__\n        f *= f * 1e10\n        self.test('fmul', p.fsum(), f.fsum(), prec=8, nt=1)\n\n        t = 1, 1e101, 1, -1e101\n        for i in range(1, 9):\n            a = Fsum(*t)\n            self.test('len' + str(i), len(a), len(a))\n            b = a.fcopy()\n            c = a + b\n            self.test('FSum+', c.fsum(), a.fsum() + b.fsum())\n            c -= a\n            self.test('FSum-', c.fsum(), b.fsum())\n            c -= b\n            self.test('FSum-', c.fsum(), 0.0)\n            b = a * 2\n            a += a\n            self.test('FSum*', a.fsum(), b.fsum())\n            t += t\n            self.testCopy(a, '_fint2', '_fprs', '_fprs2', '_n', '_ps', deep=True)\n        self.test('len', len(a), 513, known=len(a) == 514)\n        t = a.partials\n        self.test('partials', t, t, nt=1)\n\n        c = a - b\n        self.test('FSum0', c.fsum(), 0.0)\n        c -= 0\n        self.test('FSum0', c.fsum(), 0.0)\n        c -= c\n        self.test('FSum0', c.fsum(), 0.0)\n        c *= Fsum(1.0)\n        self.test('FSum0', c.fsum(), 0.0)\n        t = a + a.fcopy().fmul(-1)\n        self.test('FSum0', t.fsum(), 0.0)\n        z = t.sizeof\n        self.test('sizeof', str(z), 413, known=z is None or z > 64)\n\n        a.fsub_(*a._ps)\n        self.test('FSum0', a.fsum(), 0.0)\n        self.test('Fsum#', len(a), 514, known=len(a) == 515)\n        self.test('Fsum#', len(a._ps), 1)\n        self.test('FSum.', a, 'Fsum[514] (0.0, 0)', known=not a)\n\n        self.test('FsumI', c.imag, 0.0)\n        self.test('FsumR', c.real, float(c))\n\n        self.test('radd', float(2 + b),  '514.0')\n        self.test('rdiv', float(2 / b),    '3.91e-03', prec=-2)\n        self.test('rmul', float(2 * b), '1024.0')\n        self.test('rpow', float(2**a),     '1.0')\n        self.test('rsub', float(2 - b), '-510.0')\n        try:\n            self.test('_2sum', fsums._2sum(1e308, 1e803), OverflowError.__name__)\n        except OverflowError as x:\n            self.test('_2sum', repr(x), repr(x))\n        try:\n            self.test('F(\"nan\")', Fsum(\"nan\"), TypeError.__name__)\n        except Exception as X:\n            self.test('F(\"nan\")', repr(X), TypeError.__name__, known=startswith)\n        try:\n            self.test('F(None)', Fsum(None).fsum(), TypeError.__name__)\n        except Exception as X:\n            self.test('F(None)', repr(X), TypeError.__name__, known=startswith, nt=1)\n\n        # Knuth/Kulisch, TAOCP, vol 2, p 245, sec 4.2.2, item 31, see also .testKarney.py\n        # <https://SeriousComputerist.Atariverse.com/media/pdf/book/\n        #  Art%20of%20Computer%20Programming%20-%20Volume%202%20(Seminumerical%20Algorithms).pdf>\n        x = 408855776\n        y = 708158977\n        self.test('ints', 2*y**2 +  9*x**4 - y**4, 1)\n        self.test('ints', 2*y**2 + (3*x**2 - y**2) * (3*x**2 + y**2), 1)\n        t = 2*float(y)**2, 9*float(x)**4, -(float(y)**4)\n        self.test('fsum ', fsum(t),          '1.0', prec=-8, known=True)  # -3.589050987400773e+19\n        self.test('fsum_', fsum_(*t),        '1.0', prec=-8, known=True)\n        self.test('Fsum ', Fsum().fsum_(*t), '1.0', prec=-8, known=True)\n        self.test('sum  ',  sum(t),          '1.0', prec=-8, known=True)\n\n        t = Fsum(1, 1e101, 1, -1e101)\n        d = t * 2\n        self.test('F * 2', float(d), 4.0, prec=4, known=True)\n        s = d / 2  # /= chockes PyChecker\n        self.test('F / 2', float(s), float(t), prec=4, known=True)\n        self.test('F / F', s / s == Fsum(1.0), True, known=True)  # PYCHOK \"s / s is always 1 or ZeroDivisionError\"\n        self.test('F / F', float(s / t), '1.0', known=True)\n        self.test('F / F', float(d / t), '2.0', known=True)\n        m = abs(t)\n        self.test('abs  ', m, +t, known=m == t)  # PYCHOK \"Unary positive (+) usually has no effect\"\n        self.test('int  ', int(t), 2, known=True)\n\n        self.test('eq F', t == s,  True)\n        self.test('ge F', t >= s,  True)\n        self.test('gt F', t > s,  False)\n        self.test('le F', t <= s,  True)\n        self.test('lt F', t <  s, False)\n        self.test('ne F', t != s, False)\n        self.test('if F', bool(s), True)\n\n        self.test('gt 0', t > 0, True)\n        self.test('lt 0', t < 0, False)\n        self.test('eq 0', t == 0, False)\n        m = -t  # t is positive\n        self.test('lt 0', m < 0, True)\n        self.test('gt 0', t > 0, True)\n        self.test('gt 0', m > 0, False)\n\n        self.test('signOf', t.signOf(),  1)\n        self.test('signOf', m.signOf(), -1)\n\n        self.test('ceil ', ceil(t.fcopy().fadd_(1e-15)), '3', known=startswith)\n        self.test('floor', floor(t), '2', known=startswith, nt=1)\n\n        self.test('divmod ', divmod(d, 2),        ('(2%s, <Fsum[2] __divmod__(0.0, 0)' % _dot0), known=startswith)\n        self.test('divmod ', d.fcopy().divmod(2), ('(2%s, <Fsum[2] __divmod__(0.0, 0)' % _dot0), known=startswith)\n        self.test('rdivmod ', divmod(2, d),       ('(0%s, <Fsum[1] __rdivmod__(2' % _dot0), known=startswith)\n        self.test('divmod ', divmod(Fsum(-3), 2), ('(-2%s, <Fsum[2] __divmod__(1' % _dot0), known=startswith)\n        m  = d.fcopy(name='__imod__')\n        m %= 2\n        self.test('imod', m,     'Fsum[2] __imod__(0.0, 0)')\n        self.test('mod ', d % 2, 'Fsum[2] __mod__(0.0, 0)')\n        self.test('rmod', 2 % d, 'Fsum[1] __rmod__(2', known=startswith)\n        m = -t\n        self.test('neg ', m, -t, known=m == -t)\n        m = +t  # PYCHOK \"Unary positive (+) usually has no effect\"\n        self.test('pos ', m, t, known=m == t)\n        self.test('is_int', t.is_integer(), True, known=True)\n\n        x = Fsum(1, 1e-101, -1, -1e-102)\n        self.test('float', float(x), '9e-102', known=True)\n        self.test('is_int', x.is_integer(), False, known=True)\n        self.test('round1', float(round(x, 1)), '0.0')  # Python2\n        self.test('fset_', x.fset_(x), x, nt=1)\n\n        m = Fsum(1, 1e-101, -4, -1e-102, name='m')  # about -3\n        self.test('F //', m // 3,  'Fsum[1] __floordiv__(-1, 0)')\n        try:\n            self.test('// F', 5 // m, 'Fsum[1] __rfloordiv__(-2, 0)')\n        except Exception as X:\n            self.test('// F', repr(X), ResidualError.__name__, known=startswith)\n        m.__ifloordiv__(2)  # //= chockes PyChecker\n        self.test('F //=', m, 'Fsum[1] m(-2, 0)')\n        try:\n            self.test('F / 0', x / 0, ZeroDivisionError.__name__)\n        except Exception as X:\n            self.test('F / 0', repr(X), ZeroDivisionError.__name__, known=startswith)\n\n        try:\n            self.test('pow(F, +)', pow(x, 2.1), ' 0)', known=endswith)\n        except Exception as X:\n            self.test('pow(F, +)', repr(X), ResidualError.__name__, known=startswith)\n        try:\n            self.test('pow(F, -)', pow(x, -1), 'Fsum[1] __pow__(1.11111e+101, 0)')\n        except Exception as X:\n            self.test('pow(F, -)', repr(X), ResidualError.__name__, known=startswith)\n        try:\n            self.test('pow(-F, F)', pow(m, float(x)), ResidualError.__name__)\n        except Exception as X:\n            self.test('pow(-F, F)', repr(X), ValueError.__name__, known=startswith)\n        try:\n            self.test('pow(F, F)', pow(-m, x), Fsum(1.0, name='__pow__'))  # -m = 2, x = 0.+\n        except Exception as X:\n            self.test('pow(F, F)', repr(X), ResidualError.__name__, known=startswith)\n        try:\n            self.test('pow(F, f, i)', pow(x, 2.1, 2), ResidualError.__name__)\n        except Exception as X:\n            self.test('pow(F, f, i)', repr(X), TypeError.__name__, known=startswith)  # ResidualError.__name__\n        try:\n            self.test('pow(F, F, i)', m.pow(Fsum(2.1), 2), TypeError.__name__)\n        except Exception as X:\n            self.test('pow(F, F, i)', repr(X), TypeError.__name__, known=startswith)\n        self.test('pow(F, i, None)', pow(-m, 2, None), ('Fsum[1] __pow__(4%s, 0)' % _dot0))\n        try:\n            self.test('Z**-2', Fsum(0.0)**-2, ZeroDivisionError.__name__)\n        except Exception as X:\n            self.test('Z**-2', repr(X), ZeroDivisionError.__name__, known=startswith)\n\n        x = Fsum(1, 1e-101, -4, -1e-102)  # about -3\n        self.test('pow(0)',  x**0,             '1.000', prec=3)\n        self.test('pow(1)',  x**1,            '-3.000', prec=3)\n        self.test('pow(2)',  x**2,             '9.000', prec=3)\n        self.test('pow(21)', x**21, '-10460353203.000', prec=3)\n        self.test('pow(-5)', x**-5,           '-0.004', prec=3)\n        x **= 2\n        self.test('**= 2',  x,                 '9.000', prec=3)\n\n        x = Fsum()\n        self.test('F0**0',  x**0,            'Fsum[1] __pow__(1, 0)')\n        self.test('F0**0.', x**0.,           'Fsum[1] __pow__(1.0, 0)')\n        self.test('0**F0',  0**x,            'Fsum[1] __rpow__(1.0, 0)')\n        self.test('0.**F0', 0.**x,           'Fsum[1] __rpow__(1.0, 0)')\n        self.test('F0**0', x.pow(0),         'Fsum[1] pow(1, 0)')\n        self.test('F0**2', x.pow(2),         'Fsum[1] pow(0.0, 0)')\n        self.test('F0**0.', x.pow(0.),       'Fsum[1] pow(1.0, 0)')\n        self.test('F0**3.', x.pow(3.),       'Fsum[1] pow(0.0, 0)')\n        self.test('F0**0.', x.pow(0., None), 'Fsum[1] pow(1, 0)')\n\n        # preserve C{type(base)}\n        t = Fsum()._fset(2)\n        self.test('2**F0',  (2**Fsum()).toStr(),   'Fsum[1] __rpow__(1.0, 0)')\n        self.test('2.**F0', (2.**Fsum()).toStr(),  'Fsum[1] __rpow__(1.0, 0)')\n        self.test('F2**0',  (t**0).toStr(),        'Fsum[1] __pow__(1, 0)')\n        self.test('F2.**0', (Fsum(2.)**0).toStr(), 'Fsum[1] __pow__(1, 0)')\n        self.test('F2**F2',  t**t,                 'Fsum[1] __pow__(4, 0)')\n        self.test('F2**F2',  t.__rpow__(t),        'Fsum[1] __rpow__(4, 0)')\n\n        x = Fsum(2, 3)\n        self.test('F**2',     x**x,     '3125.000', prec=3)\n        self.test('F**-1',    x**-1,       '0.200', prec=3)\n        self.test('F**-2',    x**-2,       '0.040', prec=3)\n        self.test('F**-2.5',  x**-2.5,     '0.018', prec=3)\n        self.test('F** 2.5',  x** 2.5,    '55.902', prec=3)\n        self.test('pow(2)',   x.pow(2),   '25.000', prec=3)\n        self.test('pow(2.5)', x.pow(2.5), '55.902', prec=3)\n        self.test('pow(F)',   x.pow(x), '3125.000', prec=3)\n\n        self.test('3pow(2, None)',   x.pow(2, None).toStr(),         'Fsum[1] pow(25, 0)')\n        self.test('3pow(2.5, None)', x.pow(2.5, None).toStr(prec=5), 'Fsum[1] pow(55.902, 0)')\n        self.test('3pow(2, 20)',     x.pow(2, 20).toStr(),           'Fsum[1] pow(5, 0)')\n\n        t = x.fsum()\n        self.test('fsum()',  t, '5.0', nl=1)\n        self.test('fsum()',  t is x.fsum(), True)  # Property_RO\n        t = x.fsum2()\n        self.test('fsum2()', t, '(5.0, 0)')\n        self.test('fsum2()', t is x.fsum2(), True)  # Property_RO\n        self.test('fsum2()', t.toRepr(), 'Fsum2Tuple(fsum=5.0, residual=0)')\n\n        s, r = t.toUnits()\n        t = t.__class__.__name__\n        self.test(t, (s.name, s, s.__class__), \"('fsum', 5.0, <class 'pygeodesy.unitsBase.Float'>)\")\n        self.test(t, (r.name, r, r.__class__), \"('residual', 0, <class 'pygeodesy.unitsBase.Int'>)\")\n\n        self.test('fmul(x)', x.fmul(x),          '25.0', prec=1)\n        self.test('fmul(F)', x.fmul(Fsum(2.5)),  '62.5', prec=1)\n        self.test('fadd(F)', x.fadd(Fsum(2.5)),  '65.0', prec=1)\n        self.test('fsub(F)', x.fsub(Fsum(2.5)),  '62.5', prec=1)  # iter(Fsum)\n        self.test('Fsum(F)', Fsum(x, x).fsum(), '125.0', prec=1, nt=1)\n\n        f = Fsum(1, 1e-11, -4, -1e-12)  # about -3\n        r = f.as_integer_ratio()\n        self.test('ratio', str(r).replace('L', NN), '(-27021597764141911, 9007199254740992)')  # L on Windows\n        t = Fsum(r[0] / r[1])  # C{int} in Python 2\n        self.test('ratio', t, f, known=abs(t - f) < 1e-9)  # python special\n        self.test('int_float', t.int_float(), '-3.000', prec=3)\n        self.test('fint',  t.fint(raiser=False), ('Fsum[1] fint(-3, 0)' if isPython2\n                                             else 'Fsum[1] fint(-2, 0)'))\n        self.test('fint2', t.fint2(), ('(-3, 0' if isPython2 else '(-2, -1'), known=startswith)\n\n        t = f.f2mul_(-2, 2)\n        self.test('f2mul_', t, '(12.0, ...', known=int(t) == 11)\n        t = f.f2mul_(INF, nonfinites=True)\n        self.test('f2mul_', t, 'NINF', known=not isfinite(t))\n        t = f.f2mul_(3, NAN, nonfinites=True)\n        self.test('f2mul_', t, 'NAN', known=not isfinite(t))\n        f.nonfinites(True)\n        f += NAN\n        self.test('+= NAN', f, NAN, known=not isfinite(f))\n        f.nonfinites(False)\n        self.test('-= NAN', f, NAN, known=not isfinite(f))\n\n        f = Fsum(3) // 1\n        try:\n            t = pow(f, 3, 4)\n            self.test('pow3', t, 'Fsum[1] __pow__(3', known=startswith)\n        except Exception as X:\n            self.test('pow3', repr(X), TypeError.__name__, known=startswith)\n\n        t = f.is_math_fsum()\n        self.test('is_math_fsum', t, t, known=isPython2, nl=1)\n\n        self.test('RESIDUAL', f.RESIDUAL(), '0.0', nl=1)\n        self.test('RESIDUAL', f.RESIDUAL(1e-32), '0.0')\n        self.test('RESIDUAL', f.RESIDUAL(None), 1e-32)\n        n = sorted.__name__  # _xkwds_get_ test\n        f = Fsum(1e17, 1., name=n, RESIDUAL=9)\n        self.test('RESIDUAL', f.RESIDUAL(), 9.0)\n        self.test('RESIDUAL', f.name, n, nt=1)\n        try:\n            n = ResidualError.__name__\n            _ = f.RESIDUAL(-1.e-18)\n            self.test(n, (1 / f), n, nt=1)\n        except Exception as x:\n            self.test(n, x, ' threshold', known=endswith, nt=1)\n\n        f = Fsum(2, Fsum2Tuple(1, -1))\n        try:\n            self.test('recursive', f.fsum_(1, f, 1, f), '8.0')\n        except ValueError as x:\n            self.test('recursive', str(x), 8.0)\n        try:\n            f += f\n            self.test('recursive', f.fsum(), '16.0')\n        except ValueError as x:\n            self.test('recursive', str(x), 16.0)\n\n        t  = Fsum2Tuple(1.0, EPS)\n        f += t\n        self.test('+=F2T', float(f), '17.0', known=startswith, nl=1)\n        f -= t\n        self.test('-=F2T', float(f), '16.0', known=startswith)\n        f *= t\n        self.test('*=F2T', float(f), '16.0', known=startswith)\n        f.fdiv(t, raiser=False)\n        self.test('/=F2T', float(f), '16.0', known=startswith)\n        f.pow(t, raiser=False)\n        self.test('**F2T', float(f), '16.0', known=startswith)\n        f.fdivmod(t, raiser=False)\n        self.test('%=F2T', float(f), '16.0', known=startswith)\n\n        self.test('abs(T)',   abs(t),     'Fsum', known=startswith, nl=1)\n        self.test('bool(T)',  bool(t),     True)\n        self.test('float(T)', float(t),   '1.0',  known=startswith)\n        self.test('T.Fsum_',  t.Fsum_(t), 'Fsum', known=startswith)\n        self.test('int(T)',   int(t),     '1')\n        self.test('-T',       (-t),       'Fsum', known=startswith)\n        self.test('+T',       (+t),       'Fsum', known=startswith)  # PYCHOK no effect\n        self.test('as_i_',  t.as_integer_ratio(), '(4', known=startswith)\n        self.test('is_x?',  t.is_exact(),   True)\n        self.test('is_i?',  t.is_integer(), False)\n\n        self.test('F==T', f == t, False, nl=1)\n        self.test('F>=T', f >= t, True)\n        self.test('F> T', f >  t, True)\n        self.test('F<=T', f <= t, False)\n        self.test('F< T', f <  t, False)\n        self.test('F!=T', f != t, True)\n\n        self.test('T._fint2',  t._fint2, '(1, ',   known=startswith, nl=1)\n        self.test('T._fprs2',  t._fprs2, '(1.0, ', known=startswith)\n        self.test('T._n',      t._n,      '2')\n        self.test('T._ps',     t._ps,     '[1.0',  known=startswith)\n        self.test('T._ps_neg', list(t._ps_neg), '[-1.0', known=startswith)\n        self.test('T.signOf',  t.signOf(), '1')\n\n        f = Fsum()\n        t = f2product(), f.f2product()\n        self.test('f2product', t, t, nl=1)\n        t = nonfiniterrors(), f.nonfinites()\n        self.test('nonfinite*', t, t)\n        f.f2product(None)\n        f.nonfinites(None)\n        t = f.f2product(), f.nonfinites()\n        self.test('Nones', t, (None, None))\n\n        self.test('fma_', Fsum(1).fma_(2, 3, 4, 5, 6, 7), Fsum(69.0), nl=1)\n\n#       t = Fsum._ps_max\n#       self.test('_ps_max', t, t, nl=1)\n\n\nif __name__ == '__main__':\n\n    from sys import version_info\n\n    t = Tests(__file__, __version__, fsums)\n    if version_info[:2] == (3, 12):  # isPython312\n        f2 = f2product(True)\n        nf = nonfiniterrors(False)\n        t.testFsums(Fsum2product)\n        t.test('True', f2product(f2), True, nl=1)\n        t.test('False', nonfiniterrors(nf), False)\n    else:\n        t.testFsums(Fsum)\n    t.results()\n    t.exit()\n"
  },
  {
    "path": "test/testGars.py",
    "content": "\n# -*- coding: utf-8 -*-\n\n# Test L{gars} module.\n\n__all__ = ('Tests',)\n__version__ = '23.03.27'\n\nfrom bases import TestsBase\n\nfrom pygeodesy import degDMS, fstr, gars, Garef, S_MIN\n\n\nclass Tests(TestsBase):\n\n    def testCodec3(self, g, x, prec=4):\n        self.test('codec3', Garef(g), g)\n        t = gars.decode3(g)\n        self.test('decode3', fstr(t, prec=prec), x)\n        self.test('encode', gars.encode(*t), g)\n\n    def testGars(self, LL):\n\n        # Karney's geographiclib/1.49/examples/example-GARS.cpp\n        # <https://SourceForge.net/p/geographiclib/code/ci/release/tree/examples/example-GARS.cpp>\n        g = Garef('57.64911, 10.40744', precision=2)\n        self.test('Garef', g, '381NH45')\n        self.test('Garef', g.toStr(), '381NH45')\n        self.test('Garef', g.toRepr(), \"Garef('381NH45')\")\n        self.test('Garef', g.toRepr(std=True), \"'381NH45'\")\n        t = repr(g)\n        self.test('Garef', t, \"Garef('381NH45')\", known=t == \"'381NH45'\")  # PYGEODESY_NAMEDSTR_REPR\n        self.test('Garef.precision', g.precision, 2)\n        self.testCopy(g)\n\n        self.test('Garef.latlon', fstr(g.latlon, prec=5), '57.64911, 10.40744')\n        t = g.toLatLon(LL)\n        self.test('Garef.toLatLon', repr(t), 'LatLon(57°38′56.8″N, 010°24′26.78″E)')\n        self.testCodec3(g, '57.625, 10.375, 2.0', prec=4)\n        t = Garef(t, precision=2, name='self')\n        self.test('Garef(LatLon)', t, g)\n        self.testCopy(t)\n\n        for t in range(-1, 4):\n            r = gars.resolution(t)\n            p = gars.precision(r)\n            self.test('precision', t, p, known=t < 0 or t > 2)\n            b = degDMS(r, prec=0, s_D='', s_S='')  # only S_MIN\n            x = ('30' + S_MIN) if p < 1 else (\n                ('15' + S_MIN) if p < 2 else ('5' + S_MIN))\n            self.test('resolution', b, x)  # also to test degDMS\n\n\nif __name__ == '__main__':\n\n    from pygeodesy import ellipsoidalVincenty\n\n    t = Tests(__file__, __version__, gars)\n    t.testGars(ellipsoidalVincenty.LatLon)\n    t.results()\n    t.exit()\n"
  },
  {
    "path": "test/testGeodesici.py",
    "content": "\n# -*- coding: utf-8 -*-\n\n# Some C{geodesici} tests for classes C{Intersectool} and C{Intersector}.\n\n__all__ = ('Tests',)\n__version__ = '25.05.09'\n\nfrom bases import GeodSolve, geographiclib, IntersectTool, TestsBase\n\nfrom pygeodesy import euclid, geodesici, Intersectool, Intersector, LatLon_\nfrom pygeodesy.interns import _DOT_\n\n\nclass _LL(LatLon_):\n\n    def __abs__(self):\n        return euclid(self.lat, self.lon)\n\n    def __neg__(self):\n        return _LL(-self.lat, -self.lon)\n\n    def __sub__(self, other):\n        return _LL(self.lat - other.lat,\n                   self.lon - other.lon)\n\n\ndef _re(v, x):  # rel error\n    e = 0 if v is None or x is None else abs(v - x)  # None iteration\n    if e:\n        m = max(abs(v), abs(x))\n        if m:\n            e = min(e, m, e / m)\n    return e\n\n\nclass Tests(TestsBase):\n\n    _Xdict2 = dict()\n    _known1 = set(('a1M', 's1M', 's12', 'latM', 'lonX', 'azi1'))\n    _known2 = set(('aMM', 'sMM', 'sX0', 'sB', 'iteration', 'latB', 'A', 'B'))\n\n    def test_(self, name, v, **nl):\n        t = ('%9g' % (v,)).strip() if isinstance(v, float) else str(v)\n        X, x = self._Xdict2.setdefault(name, (v, t))\n        if isinstance(X, dict):\n            TestsBase.test(self, name, t, x, known=True, **nl)\n            if t != x:\n                if len(v) > len(X):\n                    X, v = v, X\n                for n, v in v.items():\n                    x =  X.get(n, v)\n                    e = _re(v, x)\n                    if e > 1e-12:\n                        m = _DOT_(name, n)\n                        TestsBase.test(self, m, v, x, error=e, known=n in self._known1)\n        else:\n            e, n = _re(v,  X), name.split(_DOT_)[-1]  # _tailof\n            TestsBase.test(self, name, t, x, error=e, known=(e < 9e-9  # max(e) 6e-16\n                                                         or (n in self._known2)\n                                                         or _re(v, -X) < 1e-12), **nl)\n\n    def testEnumerate(self, name, y):\n        for i, t in enumerate(y):\n            n = '%s[%s]' % (name, i)\n            self.testItems(n, t)\n            self.test_(_DOT_(n, 'iteration'), t.iteration)\n            if i > 9:\n                break\n\n    def testItems(self, name, t):\n        nl = 1\n        for n, v in t.items():\n            self.test_(_DOT_(name, n), v, nl=nl)\n            nl = 0\n\n    def testIntersect(self, Intersect, G, **_C):\n        self.subtitle(geodesici, G.__name__)\n\n        I = Intersect(G())  # noqa: E741 I is eye\n        self.test(I.named2, I, I)\n\n        # <https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1Intersect.html>\n        a = I.Line( 0.0,  0.0,  45.0)\n        b = I.Line(45.0, 10.0, 135.0)\n        self.testItems('Closest.1',  I.Closest( a, b, **_C))\n        self.testItems('Closest5.1', I.Closest5(a, b))\n\n        # <https://GeographicLib.SourceForge.io/C++/doc/IntersectTool.1.html>\n        a = I.Line(50.0, -4.0, -147.7)\n        b = I.Line( 0.0,  0.0,   90.0)\n        self.testItems('Closest.2',  I.Closest( a, b, **_C))\n        self.testItems('Closest5.2', I.Closest5(a, b))\n\n        a = I.Line(50.0,  -4.0, -147.7)\n        b = I.Line( 0.0, 180.0,    0.0)\n        self.testEnumerate('All',  I.All( a, b, **_C))\n        self.testEnumerate('All5', I.All5(a, b))\n\n        a = I.Line( 0.0,  0.0,  10.0, 10.0)\n        b = I.Line(50.0, -4.0, -50.0, -4.0)\n        self.testItems('Middle',  I.Middle(a, b, **_C))\n        self.testItems('Middle5', I.Middle5(a, b))\n\n        # % echo 0 0 10 10 50 -4 -50 -4 | IntersectTool -i -p 0 -C\n        # -631414 5988887 0 -3\n        # -4.05187 -4.00000 -4.05187 -4.00000 0\n        self.testItems('Segment', I.Segment(a, b, **_C))\n        self.testItems('Segment5', I.Segment5(a, b))\n\n        self.testEnumerate('intersect7s', I.intersect7(LatLon_( 0,  0), LatLon_( 10, 10),\n                                                       LatLon_(50, -4), LatLon_(-50, -4),\n                                                       LatLon=_LL))\n\n        # % echo 50N 4W 147.7W 0 0 90 | IntersectTool -e 6371e3 0 -c -p 0 -C\n        # 6077191 -3318019 0\n        # -0.00000 -29.83966 -0.00000 -29.83966 0\n        S = Intersect(G(6371e3, 0.0), name='Test')  # PYCHOK I\n        a = S.Line(50.0, -4.0, -147.7)\n        b = S.Line( 0.0,  0.0,   90.0)\n        self.testItems('Sphere.Closest', S.Closest(a, b, **_C))\n        self.testItems('Sphere.Closest5', S.Closest5(a, b))\n\n        try:\n            n = I.invokation\n            self.test('invokations', n, n, nl=1)\n        except AttributeError:\n            pass\n        n = len(self._Xdict2)  # not a test\n        self.test('_Xdict2', n, n, nl=1)\n\n\nif __name__ == '__main__':\n\n    from pygeodesy import GeodesicExact\n\n    t = Tests(__file__, __version__, geodesici)\n\n    for _C in (False, True):\n        t._Xdict2 = dict()\n\n        if IntersectTool:  # first, to populate _xdict, ...\n            t.testIntersect(Intersectool, GeodesicExact, _C=_C)\n\n        if GeodSolve:  # ... or ...\n            from pygeodesy.geodsolve import GeodesicSolve\n            t.testIntersect(Intersector, GeodesicSolve, _C=_C)\n\n        t.testIntersect(Intersector, GeodesicExact)  # ... otherwise\n\n        if geographiclib:\n            from pygeodesy.geodesicw import Geodesic\n            t.testIntersect(Intersector, Geodesic, _C=_C)\n\n    t.results()\n    t.exit()\n"
  },
  {
    "path": "test/testGeodesicx.py",
    "content": "\n# -*- coding: utf-8 -*-\n\n# Some basic C{geodesicx} vs C++ C{GeographicLib}, C{GeodSolve}\n# and Python C{geographiclib} tests.\n\n__all__ = ('Tests',)\n__version__ = '25.09.03'\n\nfrom bases import _fLate, GeodSolve, geographiclib, isPython2, TestsBase\n\nfrom pygeodesy import classname, DIG, Ellipsoid, GDict, GeodesicLineExact, \\\n                      itemsorted, map2, NN\nfrom pygeodesy.interns import _DOT_\n\n_G = '%%.%sg' % (DIG,)\n\n\ndef _t3(n_p_a):\n    return map2(int, map(round, n_p_a))\n\n\nclass Tests(TestsBase):\n\n    def testDiffs(self, name, r, rx, nl, e=1e-13):\n        for n, v in itemsorted(r):\n            x = rx.get(n, None)\n            if x is not None:\n                k = (abs(v - x) / (x or 1)) < e  # rel error\n                self.test(_DOT_(name, n), v, x, fmt=_G, known=k, nl=nl)\n                nl = 0\n\n    def testDirect(self, geodesicx, E, debug=False):\n        self.subtitle(geodesicx, 'DirectX vs ...')\n        # GeographicLib.GeodesicExact example, results from GeoSolve Direct\n        rCpp = GDict(lat1=40.6, lon1=-73.799999999999997, azi1=51.0,\n                     lat2=51.884564505606761, lon2=-1.141172861200829, azi2=107.189397162605886,\n                     s12=5500000.0, a12=49.475527463251467, m12=4844148.703101486,\n                     M12=0.65091056699808603, M21=0.65122865892196558, S12=39735075134877.094)\n\n        gX = E.geodesicx\n        gX.debug = debug\n        rX = gX.Direct(40.6, -73.8, 51, 5.5e6, gX.ALL)\n        self.testDiffs('C++X', rX, rCpp, 0)\n        self.test('iteration', rX.iteration, rX.iteration)\n        gs = gX,\n\n        if geographiclib:\n            gP = E.geodesic\n            rP = gP.Direct(40.6, -73.8, 51, 5.5e6, gP.ALL)\n            self.testDiffs('Python', rX, rP, 1)\n            self.test('iteration', rP.iteration, rP.iteration)\n            gs += gP,\n\n        if GeodSolve:\n            gS = E.geodsolve\n            rS = gS.Direct(40.6, -73.8, 51, 5.5e6, gS.ALL)\n            self.testDiffs('GeodSolve', rX, rS, 1)\n            self.test('iteration', rS.iteration, rS.iteration)\n            gs += gS,\n\n            # extreme ob- and prolate\n            for f in range(-7, 10):  # -9, -8 throw an Ellipsoid.e21 AssertionError\n                try:\n                    f *= 0.1\n                    rX = gX.classof(E.a, f).Direct(40.6, -73.8, 51, 5.5e6, gX.ALL)\n                    rS = gS.classof(E.a, f).Direct(40.6, -73.8, 51, 5.5e6, gS.ALL)\n                    self.testDiffs(_fLate(f), rX, rS, 1, e=1e-4)  # XXX S12 in GeodSolve 2.2\n                except AssertionError:  # eps for f < -0.7\n                    pass\n\n        glX = gX.DirectLine(40.6, -73.8, 51, 5.5e6)  # coverage\n        n = classname(glX)\n        S = glX.toStr()\n        self.test(n, S, S, nl=1)\n        self.test(classname(gX), glX.geodesic.toRepr(), gX.toRepr())\n        t = glX._GenPosition(False, glX.s13, glX.ALL)  # coverage\n        S = t.toRepr()\n        self.test(n, S, S)\n\n        for g in gs:  # coverage\n            g.debug = False  # coverage\n            n = classname(g)\n            r = g._GDictDirect(40.6, -73.8, 51, False, 5.5e6)\n            S = r.toStr()\n            self.test(n, S, S, nl=1)\n            t = r.toDirect9Tuple()\n            S = t.toStr()\n            self.test(n, S, S)\n            self.test(n, t.toGDict(), r, known=True)\n\n        t = gX.ArcDirect(40.6, -73.8, 51, 49.8)  # coverage\n        self.testDiffs(gX.ArcDirect.__name__, t, GDict(lat1=40.6, lon1=-73.8,\n                                                       lat2=51.7876867, lon2=-0.641731,\n                                                       azi1=51.0, azi2=107.5820825,\n                                                       a12=49.8, s12=5536073.734393), 1, e=1e-7)\n        self.test('iteration', t.iteration, t.iteration)\n\n        t = gX.ArcDirectLine(40.6, -73.8, 51, 49.8, gX.STANDARD)  # coverage\n        s = str(t)\n        self.test(gX.ArcDirectLine.__name__, s, s, nl=1)\n        self.test('iteration', t.iteration, t.iteration)\n\n        t = GeodesicLineExact(gX, 40.6, -73.8, 51, caps=gX.ALL)  # coverage\n        self.test(GeodesicLineExact.__name__, t, gX.Line(40.6, -73.8, 51), nl=1)\n        self.test('iteration', t.iteration, t.iteration)\n\n    def testInverse(self, geodesicx, E, debug=False):\n        self.subtitle(geodesicx, 'InverseX vs ...')\n        # GeographicLib.GeodesicExact example, results from instrumented GeoSolve Inverse\n        rCpp = GDict(a=6378137, f=3.35281066474748e-03,\n                     e=8.181919084262149e-02, e2=6.694379990141316e-03,\n                     ep2=6.739496742276434e-03, f1=9.966471893352525e-01,\n                     c2x=4.058973249931476e+13, c2=4.058973249931476e+13,\n                     sig12=8.716402960622249e-01,\n                     slam12=9.578224948453149e-01, clam12=2.873605198497121e-01,\n                     sbet1=-7.82676535388952e-01, cbet1=6.224286633434762e-01,\n                     sbet2=-6.49513671781464e-01, cbet2=7.603499129801756e-01,\n                     ssig1=-9.716339593508425e-01, csig1=-2.364898497530187e-01, dn1=1.002062122905103,\n                     ssig2=-8.063222953935967e-01, csig2=5.914764204524144e-01, dn2=1.001420580015174,\n                     salp1=7.793257472478793e-01, calp1=6.266190067948263e-01,\n                     salp2=9.520131366060522e-01, calp2=-3.060571641532119e-01,\n                     somg12=9.583181997903982e-01, comg12=2.857030415492466e-01,\n                     A4=1.299900770381802e+11, B41=-1.574868160309433e-01, B42=3.939014756725822e-01,\n                     k2=4.373072977143198e-03, alp12=-9.882559303867356e-01,\n                     v=3.919390853535099e-17, dv=1.605102632009351,\n                     iter=3, eFk2=-4.373072977143198e-03, eFa2=-6.739496742276434e-03,\n                     eFcD=7.841136961631642e-01, eFcE=1.572512222993233e+00, eFcH=7.836521215162365e-01,\n                     lat1=40.6, lon1=-73.799999999999997, azi1=51.198882845579824,\n                     lat2=51.6, lon2=-0.5, azi2=107.821776735514248,\n                     s12=5551759.4003186841, a12=49.941310217899037,\n                     m12=4877684.6027061976, M12=0.64472969205948238,\n                     M21=0.64504567852134398, S12=40041368848742.531)\n\n        gX = E.geodesicx\n        gX.debug = debug\n        rX = gX.Inverse(40.6, -73.8, 51.6, -0.5, outmask=gX.ALL)\n        self.testDiffs('C++X', rX, rCpp, 0)\n        self.test('iteration', rX.iteration, rX.iteration)\n        gs = gX,\n\n        if geographiclib:\n            gP = E.geodesic\n            rP = gP.Inverse(40.6, -73.8, 51.6, -0.5, outmask=gP.ALL)\n            self.testDiffs('Python', rX, rP, 1)\n            self.test('iteration', rP.iteration, rP.iteration)\n            gs += gP,\n\n        if GeodSolve:\n            gS = E.geodsolve\n            rS = gS.Inverse(40.6, -73.8, 51.6, -0.5, outmask=gS.ALL)\n            self.testDiffs('GeodSolve', rX, rS, 1)\n            self.test('iteration', rS.iteration, rS.iteration)\n            gs += gS,\n            # extreme ob- and prolate\n            for f in range(-7, 10):  # -9, -8 throw an Ellipsoid.e21 AssertionError\n                try:\n                    f *= 0.1\n                    rX = gX.classof(E.a, f).Inverse(40.6, -73.8, 51.6, -0.5, outmask=gX.ALL)\n                    rS = gS.classof(E.a, f).Inverse(40.6, -73.8, 51.6, -0.5, outmask=gS.ALL)\n                    self.testDiffs(_fLate(f), rX, rS, 1, e=1e-4)  # XXX S12 in GeodSolve 2.2\n                except AssertionError:  # eps for f < -0.7\n                    pass\n\n        glX = gX.InverseLine(40.6, -73.8, 51.6, -0.5)  # coverage\n        n = classname(glX)\n        R = glX.toRepr()\n        self.test(n, R, R, nl=1)\n        self.test(classname(gX), glX.geodesic.toStr(), gX.toStr())\n        t = glX._GenPosition(True, glX.a13, glX.ALL)  # coverage\n        R = t.toRepr()\n        self.test(n, R, R)\n\n        for g in gs:  # coverage\n            g.debug = False  # coverage\n            n = classname(g)\n            r = g._GDictInverse(40.6, -73.8, 51.6, -0.5)\n            R = r.toRepr()\n            self.test(n, R, R, nl=1)\n            t = r.toInverse10Tuple()\n            R = t.toRepr()\n            self.test(n, R, R)\n            self.test(n, t.toGDict(), r, known=True)\n\n        gX = Ellipsoid(E.b, E.a, name='_Prolate').geodesicx  # '_...' for iOS\n        t = str(gX.Inverse(40.6, -73.8, 51.6, -0.5))  # coverage\n        self.test(gX.Inverse.__name__, t, t, nl=1)\n        t = str(gX.Inverse1(40.6, -73.8, 51.6, -0.5))  # coverage\n        self.test(gX.Inverse1.__name__, t, t)\n\n    def testPlumbTo(self, geodesicx, E, debug=False):\n        self.subtitle(geodesicx, 'PlumbTo ...')\n        gX = E.geodesicx  # == geodesicx.GeodesicExact(E)\n        gX.debug = debug\n\n        # see Baselga Moreno, S. & Martinez-Llario, J.C, \"Intersection and point-to-line\n        # solutions for geodesics on the ellipsoid\",  \"3. Minimum point-to-line distance ...\"\n        # <https://riunet.UPV.ES/bitstream/handle/10251/122902/Revised_Manuscript.pdf>\n        g = gX.InverseLine(52, 5, 51.4, 6).PlumbTo(52, 5.5)\n        # g: {a02: 0.213783, a12: 0.222926, at: -270.0, azi0: -136.00267, azi1: 133.603738, azi2: 133.808744,\n        #     lat0: 52, lat1: 52.0, lat2: 51.846089, lon0: 5.5, lon1: 5.0, lon2: 5.260428,\n        #     m12: 24784.226142, M12: 0.999992, M21: 0.999992, name: 'PlumbTo', s02: 23767.724184, s12: 24784.288415}\n        self.test('lat2',      g.lat2,   51.846089, prec=6)  # == 51°50′45.9212″N  51°50'45.9212\"\n        self.test('lon2',      g.lon2,    5.260428, prec=6)  # ==  5°15′37.5426″E   5°15'37.5426\"\n        self.test('s12',       g.s12, 24784.288415, prec=6)  # vs       Table 4  sAX 24,784.2886\n        self.test('at',        g.at,   -270.0, prec=6)\n        self.test('iteration', g.iteration, 6, known=True, nt=1)\n\n        g = gX.InverseLine(42, 29, 39, -77).PlumbTo(64, -22)\n        # g: {a02: 9.086172, a12: 35.341373, at: 270.0, azi0: 179.771122, azi1: -50.693753, azi2: -90.174696,\n        #     lat0: 64, lat1: 42.0, lat2: 54.928531, lon0: -22, lon1: 29.0, lon2: -21.937291,\n        #     m12: 3685326.078106, M12: 0.816334, M21: 0.816521, name: 'PlumbTo', s02: 1010585.998837, s12: 3928788.572003}\n        self.test('lat2',      g.lat2,     54.928531, prec=6)  # == 54°55′42.7116″N  54°55'42.7134\"\n        self.test('lon2',      g.lon2,    -21.937291, prec=6)  # == 21°56′14.2476″W -21°56'14.2477\"\n        self.test('s12',       g.s12, 3928788.572003, prec=6)  # vs    Table 5  sAX 3,928,857.7554\n        self.test('at',        g.at,      270.0, prec=6)\n        self.test('iteration', g.iteration, 27, known=True, nt=1)\n\n        g = gX.InverseLine(42, 29, -35, -70).PlumbTo(64, -22)  # 12,200 Km > 10K Km, too long!\n        # g: {a02: 35.334956, a12: 9.115995, at: 270.005449, azi0: 117.833713, azi1: -112.646672, azi2: -119.509878,\n        #     lat0: 64, lat1: 42.0, lat2: 37.976213, lon0: -22, lon1: 29.0, lon2: 18.344811,\n        #     m12: 1008535.741532, M12: 0.987407, M21: 0.987403, name: 'PlumbTo', s02: 3928422.755727, s12: 1012791.484575}\n        self.test('lat2',      g.lat2,     37.976217, prec=6, known=int(g.lat2)==37)  # == 37°58′34.3812″N  37°58'41.2236\"\n        self.test('lon2',      g.lon2,     18.344820, prec=6, known=int(g.lon2)==18)  # == 18°20′41.3520″E  18°20'56.6279\"\n        self.test('s12',       g.s12, 1012790.599291, prec=6,  # varies 5+ meter        vs    Table 6  sAX 1,012,443.9063\n                                                              known=1012789<g.s12<1012798)\n        self.test('at',        g.at,      270.005437, prec=6, known=int(g.at)  ==270)\n        self.test('iteration', g.iteration, 128, known=True)\n\n    def testPolygon(self, module, g, nC4=NN, K=False):\n        self.subtitle(module, 'Polygon' + str(nC4))\n\n        if nC4:\n            g.C4order = nC4\n        p = g.Polygon()  # GeodesicAreaExact(g)\n\n        p.AddPoint( 0,    0)\n        self.test('Compute', _t3(p.Compute()), '(1, 0, 0)')  # coverage\n        p.AddEdge( 90, 1000)\n        p.AddEdge(  0, 1000)\n        p.AddEdge(-90, 1000)\n        self.test('AddEdges',  _t3(p.Compute()),           '(4, 4000, 1000000)', known=K)\n        self.test('TestEdge',  _t3(p.TestEdge(180, 1000)), '(5, 4000, 1000000)', known=K)\n\n        n = p.Clear()  # .Reset()\n        self.test('Clear', n, 0, known=n is None)\n        self.test('TestPoint', _t3(p.TestPoint(52, 0)), '(1, 0, 0)')  # coverage\n\n        p.AddPoint( 52,   0)  # London\n        p.AddPoint( 41, -74)  # New York\n        p.AddPoint(-23, -43)  # Rio de Janeiro\n        p.AddPoint(-26,  28)  # Johannesburg\n        self.test('AddPoints',  _t3(p.Compute()),        '(4, 29506941, 65690027591346)', known=isPython2)\n        self.test('TestPoint',  _t3(p.TestPoint(52, 0)), '(5, 29506941, 65690027591346)', known=isPython2)\n\n        if not K:  # coverage, but not for pygeodesy.karney.PolygonArea\n            t = p.toStr()\n            self.test(p.toStr.__name__, t, t)\n\n\nif __name__ == '__main__':\n\n    from pygeodesy import Ellipsoids, geodesicw, geodesicx, geodsolve\n    from sys import argv\n\n    _debug = '-d' in argv or '--debug' in argv\n\n    t = Tests(__file__, __version__, geodesicx)\n\n    E = Ellipsoids.WGS84\n\n    t.testDirect(geodesicx, E, debug=_debug)\n\n    t.testInverse(geodesicx, E, debug=_debug)\n\n    t.testPolygon(geodesicx, E.geodesicx, nC4=24)\n    t.testPolygon(geodesicx, E.geodesicx, nC4=27)\n    t.testPolygon(geodesicx, E.geodesicx, nC4=30)\n\n    if GeodSolve:\n        t.testPolygon(geodsolve, E.geodsolve)\n\n    if geographiclib:\n        t.testPolygon(geodesicw, E.geodesic, K=True)  # XXX geographiclib 1.49 issue?\n\n    t.testPlumbTo(geodesicx, E, debug=_debug)\n\n    t.results()\n    t.exit()\n"
  },
  {
    "path": "test/testGeohash.py",
    "content": "\n# -*- coding: utf-8 -*-\n\n# Test L{geohash} module.\n\n__all__ = ('Tests',)\n__version__ = '24.08.01'\n\nfrom bases import TestsBase\n\nfrom pygeodesy import classname, fstr, geohash, Geohash, Geohashed\n\n\nclass Tests(TestsBase):\n\n    def testGeohash(self, LL):\n        cn = classname(LL(0, 0))\n\n        g = Geohash('geek')\n        self.test('Geohash', str(g), 'geek')\n        self.test('Geohash', g.toStr(), 'geek')\n        self.test('Geohash', repr(g), \"'geek'\")  # std_repr\n        self.test('Geohash', g.toRepr(), \"Geohash('geek')\")\n        self.test('Geohash', Geohash(g), 'geek')\n        self.test('bounds', g.bounds(LL), '(%s(65°23′26.25″N, 017°55′46.88″W), %s(65°33′59.06″N, 017°34′41.25″W))' % (cn, cn))\n        self.test('toLatLon', g.toLatLon(LL), '65.478516°N, 017.753906°W')\n        self.test('latlon', fstr(g.latlon, prec=7), '65.4785156, -17.7539062')\n        self.test('philam', fstr(g.philam, prec=7), '1.1428157, -0.3098641')\n        self.testCopy(g)\n\n        g = Geohash(LL(65.390625, -17.929689), precision=9)\n        self.test('Geohash', g, 'geehpbpbp')\n        self.test('toLatLon', g.toLatLon(LL), '65.390625°N, 017.929689°W')\n        self.test('latlon', fstr(g.latlon, prec=8), '65.390625, -17.929689')\n        self.test('ab', fstr(g.philam, prec=7), '1.1412817, -0.3129321')  # deprecated_property_RO .ab\n        self.test('decode',  geohash.decode(g), \"('65.390646', '-17.929709')\")\n        self.test('decode2', geohash.decode2(g), '(65.390646, -17.929709)')\n        self.test('decode_error',  fstr(geohash.decode_error( g), fmt='%.*e'), '2.145767e-05, 2.145767e-05')  # DEPRECATED\n        self.test('decode_error2', fstr(geohash.decode_error2(g), fmt='%.*e'), '2.145767e-05, 2.145767e-05')\n        self.test('distance1To', g.distanceTo('geehpb'), '2758.887', prec=3)\n        self.test('distance2To', g.equirectangularTo('geehpb'), '682.760', prec=3)\n        self.test('distance3To', g.euclideanTo('geehpb'),       '410.732', prec=3)\n        self.test('distance4To', g.haversineTo('geehpb'),       '397.404', prec=3)\n        self.test('distance5To', g.vincentysTo('geehpb'),       '397.404', prec=3)\n        self.test('sizes', fstr(g.sizes, prec=1), '4.8, 4.8')\n        self.testCopy(g)\n\n        for d in (g.neighbors, geohash.neighbors(g)):\n            self.test('N',  d.N,  g.N)\n            self.test('NE', d.NE, g.NE)\n            self.test('E',  d.E,  g.E)\n            self.test('SE', d.SE, g.SE)\n            self.test('S',  d.S,  g.S)\n            self.test('SW', d.SW, g.SW)\n            self.test('W',  d.W,  g.W)\n            self.test('NW', d.NW, g.NW)\n\n            self.test('N',  d['N'],  g.N)\n            self.test('NE', d['NE'], g.NE)\n            self.test('E',  d['E'],  g.E)\n            self.test('SE', d['SE'], g.SE)\n            self.test('S',  d['S'],  g.S)\n            self.test('SW', d['SW'], g.SW)\n            self.test('W',  d['W'],  g.W)\n            self.test('NW', d['NW'], g.NW)\n\n        b = geohash.bounds('u120fxw')\n        self.test('bounds', fstr(b, prec=8), '52.20428467, 0.11810303, 52.20565796, 0.11947632', nl=1)\n        d = geohash.decode('u120fxw')\n        self.test('decode', fstr(d, prec=4), '52.205, 0.1188')\n\n        for g in ('u120fxw', 'geek', 'fur', 'geehpbpbp', 'u4pruydqqvj8', 'bgr96qxvpd46', '0123456789', 'zzzzzz'):\n            self.test('encode-decode', geohash.encode(*geohash.decode(g)), g)\n\n        for p in range(8, 13):\n            g = Geohash(LL(57.64911, 10.40744), precision=p)  # Jutland, Denamrk\n            self.test('Geohash', g, 'u4pruydqqvj8'[:p], )\n            self.test('N.E.S.W', g.N.E.S.W == g, 'True')\n            self.test('E.S.W.N', g.E.S.W.N == g, 'True')\n            self.test('S.W.N.E', g.S.W.N.E == g, 'True')\n            self.test('W.N.E.S', g.W.N.E.S == g, 'True')\n            self.test('N.E.S.S.W.W.N.N.E.S', g.N.E.S.S.W.W.N.N.E.S == g, True)  # MCCABE Law of Demeter\n\n        self.test('encode', geohash.encode(52.205, 0.1188), 'u120fxw', nl=1)\n        self.test('decode', geohash.decode('u120fxw'), \"('52.205', '0.1188')\")\n        self.test('decode2', geohash.decode2('u120fxw'), '(52.205, 0.1188)')\n        self.test('decode_error',  fstr(geohash.decode_error( 'u120fxw'), fmt='%.*e'), '6.866455e-04, 6.866455e-04')  # DEPRECATED\n        self.test('decode_error2', fstr(geohash.decode_error2('u120fxw'), fmt='%.*e'), '6.866455e-04, 6.866455e-04')\n        self.test('distance_', geohash.distance_('u120fxw', 'u120fxws0'), '486.710', prec=3)\n        self.test('distance2', geohash.equirectangular4('u120fxw', 'u120fxws0'), '3.374', prec=3)\n        self.test('distance3', geohash.euclidean_('u120fxw', 'u120fxws0'),       '2.992', prec=3)\n        self.test('distance4', geohash.haversine_('u120fxw', 'u120fxws0'),       '2.798', prec=3)\n        self.test('distance5', geohash.vincentys_('u120fxw', 'u120fxws0'),       '2.798', prec=3)\n        self.test('sizes',  fstr(geohash.sizes( 'u120fxw'), prec=1), '153.0, 153.0')  # DEPRECATED\n        self.test('sizes3', fstr(geohash.sizes3('u120fxw'), prec=1), '153.0, 153.0, 86.3')\n\n        g = Geohash('52.5009, 13.354')\n        self.test('Geohash', g, 'u336xv', nl=1)\n        e = geohash.encode(52.5009, 13.354)\n        self.test('encode', e, 'u336xv')\n        self.test('equal', g == e, True)\n        self.test('sizes',  fstr(geohash.sizes( g), prec=1), '610.0, 1220.0')  # DEPRECATED\n        self.test('sizes3', fstr(geohash.sizes3(g), prec=1), '610.0, 1220.0, 486.7')\n\n        self.test('encode', geohash.encode(69.6, -45.7), 'fur')\n        self.test('decode', geohash.decode('fur'), \"('69.6', '-45.7')\")\n        self.test('decode', geohash.decode('fu'), \"('70.3', '-51')\")\n        self.test('decode', geohash.decode('f'), \"('68', '-68')\")\n        self.test('decode_error2', geohash.decode_error2('fur'), '(0.703125, 0.703125)')\n        self.test('decode_error2', geohash.decode_error2('fu'), '(2.8125, 5.625)')\n        self.test('decode_error2', geohash.decode_error2('f'), '(22.5, 22.5)')\n\n        # <https://PyPI.org/project/pygeohash/>\n        self.test('encode', geohash.encode(42.6, -5.6), 'ezs42e44yx96')\n        self.test('decode', geohash.decode('ezs42e44yx96'), \"('42.60000003', '-5.59999997')\", known=True)\n        self.test('encode', geohash.encode(42.6, -5.6, precision=5), 'ezs42')\n        self.test('decode', geohash.decode('ezs42'), \"('42.605', '-5.603')\")\n        self.test('distance1', geohash.distance_('bcd3u', 'bc83n'), '503442.4', prec=1)  # 625441.\n        self.test('distance2', geohash.equirectangular4('bcd3u', 'bc83n'), '303317.6', prec=1)\n        self.test('distance3', geohash.euclidean_('bcd3u', 'bc83n'), '185425.4', prec=1)\n        self.test('distance4', geohash.haversine_('bcd3u', 'bc83n'), '179940.1', prec=1)\n        self.test('distance5', geohash.vincentys_('bcd3u', 'bc83n'), '179940.1', prec=1, nt=1)\n\n        for t in range(0, 14):\n            r = geohash.resolution2(t, t)\n            p = geohash.precision(*r)\n            self.test('precision', t, p, known=t in (0, 13))\n            b = fstr(r, prec=t + 1)\n            self.test('resolution', b, b)  # just to show\n\n            t = geohash.encode(44, 99, eps=10**(2 - t))\n            p = geohash.encode(44, 99, len(t))\n            self.test('inferred', t, p)\n\n        for n in (None, 12):\n            G = Geohashed(12, ndigits=n)\n            self.test('precision', G.precision, 12, nl=1)\n            self.test('ndigits', G.ndigits, n)\n\n            t = G.encoded(27.988056, 86.925278)  # Mt Everest\n            self.test('encoded', t, 'tuvz4p141zc1')\n            e = G.encoded(27.988056, 86.925278)\n            self.test('encoded', e, 'tuvz4p141zc1')\n            self.test('encoded', e is t, True)\n            e = G.encoded(27.988056, 86.925278, decoded=True)\n            self.test('encoded', e, 'tuvz4p141zc1')\n            self.test('encoded', e is t, True)\n\n            t = G.decoded('tuvz4p141zc1', encoded=True)\n            self.test('decoded', t, '(27.988056, 86.925278)')\n            d = G.decoded('tuvz4p141zc1', encoded=True)\n            self.test('decoded', d, '(27.988056, 86.925278)')\n            self.test('decoded', d is t, True)\n            self.test('len', len(G), 1)\n            self.test('len2', G.len2, '(1, 1)')\n            G.clear()\n\n\nif __name__ == '__main__':\n\n    from pygeodesy import ellipsoidalVincenty\n\n    t = Tests(__file__, __version__, geohash)\n    t.testGeohash(ellipsoidalVincenty.LatLon)\n    t.results()\n    t.exit()\n"
  },
  {
    "path": "test/testGeoids.py",
    "content": "\n# -*- coding: utf-8 -*-\n\n# Test L{geoids} interpolators.\n\n__all__ = ('Tests',)\n__version__ = '26.01.21'\n\nimport warnings  # PYCHOK expected\n# RuntimeWarning: numpy.ufunc size changed, may indicate binary\n# incompatibility. Expected 192 from C header, got 216 from PyObject\n# warnings.filterwarnings(\"ignore\", message=\"numpy.dtype size changed\")\nwarnings.filterwarnings('ignore')  # or 'error'\n\nfrom bases import coverage, scipy, PyGeodesy_dir, TestsBase\n\nfrom pygeodesy import fstr, len2, egmGeoidHeights, Fwelford, GeoidEGM96, \\\n                      GeoidError, GeoidG2012B, GeoidKarney, GeoidPGM, \\\n                      LatLon_, NN, RangeError, reprs\nfrom pygeodesy.interns import _DOT_\n\nimport os.path as _os_path\nfrom os import SEEK_SET as _SEEK_SET\n\n_GeoidHeights_dat = b'''\n# the first and last 100 tests from GeoidHeights.dat.gz\n# <https://GeographicLib.SourceForge.io/C++/doc/geoid.html> or\n# <https://SourceForge.net/projects/geographiclib/files/testdata/>\n\n# Lat EasternLon egm84-15 egm96-5 egm2008-1-height\n\n-76.981466 34.17016 11.728631 11.423169 12.63629\n79.695484 88.805571 .270438 .891749 .749472\n-15.244804 168.747961 67.073604 65.225787 65.108852\n-19.379357 15.85511 25.343778 24.463147 24.888926\n43.377784 229.448418 -28.919198 -29.682024 -29.55705\n-16.074554 21.79547 14.386181 10.50343 9.741516\n-11.256389 286.249745 30.699577 29.325619 30.058864\n69.016564 344.078885 62.22524 60.423629 60.69041\n2.221008 139.73935 70.222337 68.996386 69.133157\n-9.096878 119.141551 34.336473 36.28656 36.520307\n-28.523717 337.8075 8.206342 6.62604 6.80124\n12.27231 223.575832 -20.073991 -20.86047 -20.651171\n-15.20317 274.396247 -3.129 -3.267352 -3.040335\n-63.735565 282.830364 -3.216893 -1.294072 -1.328486\n-48.770825 269.897883 -1.531173 -2.322219 -2.171739\n-.178524 233.631721 -16.741719 -17.556563 -17.410584\n1.585536 231.113033 -15.412191 -16.593709 -16.424896\n-48.780705 357.315776 25.078435 24.452906 24.698135\n-49.091632 136.862256 -18.120484 -18.592271 -18.328547\n47.731727 17.552416 46.224162 44.048683 43.80209\n-49.109549 85.706437 18.648819 18.581347 18.715655\n-49.162281 40.321209 44.763702 44.289338 44.468585\n3.498333 158.117699 51.089409 49.816268 49.944166\n-35.616495 122.648407 -34.470784 -36.114401 -35.878488\n56.598256 263.886304 -39.124416 -41.047955 -40.777363\n-31.850231 149.120596 28.142406 26.455814 26.559031\n-26.568996 182.207804 49.618755 49.317355 49.360929\n76.734699 294.247048 22.575416 20.713728 21.106933\n-21.404166 237.732131 -6.893444 -7.361787 -7.201667\n-77.133426 294.526181 -15.011837 -16.491509 -17.168179\n-58.811779 2.276142 18.775885 18.11021 18.358801\n4.415102 155.683336 53.645102 51.857634 52.1179\n-28.145768 107.081334 -39.074187 -38.980789 -38.949896\n-10.551267 233.309532 -9.644782 -9.913469 -9.934107\n-25.444344 256.662816 -2.527513 -2.827762 -2.879439\n24.435896 46.158715 -6.907432 -5.71888 -5.02473\n-72.888898 37.106907 21.711451 22.42618 24.296122\n-19.628762 13.244525 25.611378 24.545472 25.131399\n-7.602449 171.264763 41.569322 40.652208 40.720931\n-45.364396 358.123588 23.27953 22.383208 22.38785\n-7.292121 290.820435 24.501779 22.181925 22.485568\n-31.566264 193.311015 14.826064 14.929537 14.942774\n-82.751144 197.91477 -45.104466 -47.094479 -47.38728\n-40.699637 99.465509 -17.252382 -18.42052 -18.403108\n48.675771 39.690012 12.971704 10.054773 10.184582\n74.817287 281.595813 4.775889 5.785837 5.671428\n-81.032306 296.135102 -23.577487 -22.83844 -24.576521\n74.021785 9.431926 43.884933 42.989094 43.288464\n-75.070563 17.57935 17.071599 15.353044 13.747941\n-12.54612 305.149386 -6.643347 -6.336934 -5.341732\n-13.621418 42.407805 -23.324774 -25.5549 -25.579123\n-2.265774 268.048563 -10.69818 -9.922819 -9.849219\n-18.672316 42.547125 -10.265162 -10.85178 -10.490815\n-41.439867 157.413161 .689022 -.135359 .244268\n53.68637 280.625 -43.757679 -43.809145 -43.820782\n39.260397 329.648641 57.554204 57.150303 57.401275\n-51.699195 218.506918 -16.936125 -17.657204 -17.889512\n36.584861 4.515157 45.294724 46.358218 46.421497\n39.641638 305.341154 -13.585597 -14.404308 -14.474804\n59.761024 166.566646 11.467687 11.241571 11.118082\n51.830001 13.357464 42.091574 42.236804 42.290864\n-36.530912 184.569196 22.829999 22.146699 22.326393\n-37.079518 125.263901 -32.302423 -33.395909 -33.097781\n-68.650762 92.731524 9.227858 7.961014 9.430239\n35.086645 45.335611 5.964588 7.229317 6.03228\n-61.355646 190.621071 -45.012801 -44.291815 -44.33029\n-36.954967 179.11982 21.117704 21.874779 21.774899\n10.248399 353.286441 30.496904 28.933062 29.243138\n36.868193 84.602243 -40.396259 -41.23805 -40.675514\n28.636703 88.932955 -31.70367 -31.330591 -31.352523\n54.810777 260.031957 -32.276942 -32.701812 -32.700724\n7.610621 145.911188 61.024116 60.116956 60.628741\n59.411557 170.102394 4.994457 6.45672 6.616738\n-61.468618 126.144056 -30.237492 -31.961455 -31.887254\n18.514019 222.916699 -26.005544 -26.571452 -26.53512\n7.854318 233.200852 -29.283445 -29.76023 -29.62976\n47.489222 134.182527 22.393817 21.98005 22.274668\n-34.143602 348.078433 17.549603 16.848958 17.094407\n-58.388787 117.457755 -20.622029 -20.922656 -20.940551\n9.772764 95.845943 -41.484214 -42.748629 -42.739663\n-53.120381 136.993994 -20.967976 -21.841353 -21.650771\n-50.349867 .07532 25.567797 25.482432 25.240177\n31.438387 189.121452 -8.580764 -8.847394 -8.757998\n37.540689 206.975772 -18.329185 -19.603604 -19.60685\n27.586088 2.443556 25.000651 25.668106 26.258251\n-26.139126 253.79919 -2.940176 -3.772451 -3.82443\n-33.425976 345.159641 18.228244 17.747731 18.195353\n39.586286 206.981026 -16.506817 -17.838751 -17.724519\n-60.790289 357.421837 14.274585 14.292293 14.512553\n-20.130538 21.974941 16.852191 16.529145 16.808723\n75.64878 99.920587 -6.872251 -8.228616 -8.025835\n-.385453 336.211664 9.006041 9.829743 9.688362\n-51.559564 309.67313 6.295961 6.214608 6.218105\n-43.129209 192.72853 -1.481421 -2.95956 -2.724054\n46.374177 71.947616 -40.915253 -42.323099 -42.565295\n-22.783085 140.657444 37.495018 38.355565 38.341296\n-12.05584 122.80402 32.257731 34.259127 33.888543\n30.127372 94.738186 -41.528667 -37.397451 -37.380369\n46.296018 185.521384 -1.376543 -2.01595 -1.858026\n34.989646 15.051646 35.280295 33.911985 34.195497\n\n-51.287168 90.564711 12.958348 12.676251 12.766671\n34.217016 141.301548 18.307327 15.691819 15.611693\n-40.423023 217.213408 -10.399985 -11.117167 -11.06297\n-17.854486 189.783646 28.637699 27.436544 27.387362\n47.803271 112.700942 -24.058856 -23.893792 -23.816559\n-23.275962 133.453821 18.806212 18.76554 18.712425\n-26.884369 323.429346 -6.820405 -7.451636 -7.343834\n-37.106468 31.127939 31.486465 30.143266 29.997919\n-75.363185 186.326351 -62.023637 -61.171934 -61.869194\n-18.30485 69.015565 -24.24778 -24.889693 -24.937103\n39.527401 23.580206 43.255362 39.51882 38.556254\n68.903148 30.970247 18.498052 19.419431 19.671416\n53.936937 168.318201 4.066592 2.068616 2.272381\n-38.600098 64.811532 25.454194 25.047773 24.862823\n-41.395739 290.260582 26.656734 22.546619 21.635812\n50.157749 72.319017 -31.965646 -34.358649 -33.850823\n27.691879 176.152884 -4.415253 -5.452957 -5.298515\n-48.419449 170.454472 -6.741234 -6.803845 -6.788802\n-65.34567 235.024039 -34.899718 -35.054051 -35.03012\n-51.873009 167.265613 -14.222699 -15.41797 -15.338108\n-7.262544 84.307626 -79.316645 -79.557063 -79.355862\n-1.461003 254.541677 -16.163092 -16.894081 -16.649513\n7.684324 161.87293 36.28664 36.215074 36.359233\n-31.474549 201.479967 4.067589 3.523011 3.614578\n-36.187212 62.917075 24.406552 23.797348 23.946648\n16.002975 141.686552 53.054459 51.585904 51.495032\n30.182218 86.260576 -30.622274 -30.131119 -30.90993\n-77.303842 159.497665 -53.539632 -51.847914 -52.130637\n39.536 139.795358 36.262233 37.191528 37.044702\n8.569309 134.618403 64.368519 63.59657 64.179967\n14.473483 90.595663 -61.299612 -62.636188 -62.474757\n-13.13767 260.410798 -7.999483 -8.717383 -8.454344\n34.211572 333.692806 41.47749 40.645455 40.833883\n21.889732 76.371362 -59.875563 -60.728795 -60.455377\n29.792909 120.48703 8.403634 8.782794 9.726744\n15.723814 122.713685 39.152283 31.522843 32.141881\n-66.20776 281.501193 -7.076284 -6.250418 -6.220363\n-39.507049 55.808743 33.17796 32.599113 32.488683\n28.159494 51.476474 -23.83233 -24.535816 -24.691902\n-36.206825 120.205019 -38.206222 -38.869477 -38.748596\n30.574607 260.001867 -22.142407 -23.212882 -23.254521\n-16.992515 37.135881 -13.765389 -11.824355 -13.454976\n-11.476997 12.038708 16.898354 16.709275 16.627228\n30.428465 215.234951 -22.473854 -22.378764 -22.2212\n-17.439773 267.575661 -4.717712 -4.940867 -4.835735\n40.203164 143.429799 16.635366 19.393545 19.571063\n-37.098392 253.426288 -9.011662 -9.380758 -9.226603\n54.620478 291.587064 -23.543253 -23.318917 -23.247578\n-31.633252 148.181926 26.236233 24.468356 24.829144\n-56.069748 218.593222 -21.95316 -21.761095 -21.705174\n-8.195214 307.308823 -17.959479 -18.797699 -17.05341\n17.850526 24.748606 9.078096 12.611532 11.715897\n0.349465 251.667333 -19.158189 -19.706347 -19.530079\n15.037932 126.190545 46.775901 45.791796 45.929352\n-21.111105 236.304019 -8.054682 -8.405877 -8.283123\n30.946618 173.002137 -7.696224 -8.367274 -8.466797\n-10.698334 215.908891 -1.048564 -2.02472 -1.829127\n-29.412071 124.75279 -16.0813 -16.568968 -16.505889\n38.223621 222.810624 -35.426661 -35.435226 -35.384083\n36.063775 227.590716 -38.64802 -39.008674 -38.962653\n29.974676 178.075894 -5.518814 -6.920902 -6.956012\n-21.346396 169.259508 53.430852 50.794726 51.005387\n49.282472 207.065591 1.978855 1.070289 1.192049\n16.349121 260.037771 -13.196886 -14.214219 -15.038289\n-14.293325 192.660201 18.944781 17.600467 17.791473\n47.165911 321.477371 45.186641 44.804262 44.652484\n-58.910597 114.346927 -17.145188 -17.922401 -17.97107\n-9.055095 111.294422 13.145756 10.661522 11.631261\n18.390988 29.691577 4.932744 7.670083 7.393769\n-15.074412 22.152663 12.326416 8.623243 7.932082\n-4.234571 62.001081 -60.029589 -60.722522 -60.593396\n15.170822 273.417071 3.110034 3.818214 4.38383\n79.254009 112.115515 -2.740569 -1.871357 1.296574\n15.947068 156.092678 32.08547 30.633315 30.851522\n68.370605 182.617873 2.059527 2.800537 2.704084\n-41.931009 287.906587 22.915549 19.859478 21.263923\n-1.192967 216.866922 5.518518 5.347503 5.442511\n-37.006115 154.512534 11.020238 9.941435 9.997852\n-22.148493 9.938408 22.171442 22.320708 22.427896\n24.328746 109.043774 -22.943766 -24.13483 -23.154175\n-54.877699 114.691444 -17.579665 -17.679452 -17.661936\n45.600662 279.542021 -35.737741 -37.150173 -36.839234\n2.371766 58.974082 -61.040248 -61.157623 -61.220881\n15.936522 165.854035 20.907109 20.601618 20.355248\n4.889499 335.786806 13.874119 13.055023 13.147246\n-11.392365 179.558198 40.92905 40.132377 41.072213\n58.24629 4.862128 43.191036 43.262637 42.982287\n34.302001 250.891341 -22.005975 -23.126167 -22.998424\n-58.195787 117.305696 -20.375014 -20.677701 -20.662136\n44.499876 173.768568 -7.85222 -8.528636 -8.438426\n-28.862539 220.225188 -8.674412 -8.665908 -8.711761\n19.507043 263.900567 -14.116994 -12.795613 -12.653472\n-42.487604 286.093398 17.251016 15.773284 17.165992\n46.138437 218.570807 -19.435532 -19.954462 -19.873676\n60.506969 93.74336 -31.330133 -31.479738 -31.124006\n26.219081 214.565609 -17.090479 -17.429026 -17.30664\n-28.68714 3.370196 24.183794 24.037253 23.434054\n-15.007944 117.449536 6.142445 4.519942 4.507939\n40.710024 144.095126 11.693337 11.393603 11.54915\n20.823096 186.389203 6.839505 5.679085 5.74824\n\n# the Timbuktu example from online GeoidEval\n# <https://GeographicLib.SourceForge.io/cgi-bin/GeoidEval>\n16.776 -3.009 31.2979 28.7067 28.7880\n\n# the G2012B/g2012bu*.bin centers, heights from GeoidEval\n41  -95.0 -31.9524 -30.2615 -30.5889\n49 -120.5 -14.9456 -15.9842 -15.2731\n49 -103.5 -17.0318 -18.6354 -18.6241\n49  -86.5 -37.9619 -37.7488 -37.8725\n49  -69.5 -26.4922 -26.6913 -26.5105\n33 -120.5 -39.5433 -39.5610 -39.6000\n33 -103.5 -22.5560 -22.5622 -22.6888\n33  -86.5 -28.7099 -30.0115 -30.0667\n33  -69.5 -46.5897 -48.0387 -48.0929\n'''\n\n\nclass Tests(TestsBase):\n\n    _crop4     =  None\n    _dat5tests = _GeoidHeights_dat\n    _epsHeight =  0.010  # 1 centi-meter\n    _hIndex    =  0  # invalid\n    _kind      =  3\n    _stats     =  True\n\n    def dat5llhs3(self, grid, hIndex=4):\n        # Generate test 3-tuples (lat, lon, expected)\n        egm = _os_path.basename(grid).lower()\n        # tuple index of the expected geoid height\n        h = 2 if 'egm84-'  in egm else (\n            3 if 'egm96-'  in egm else (\n            4 if 'egm2008-'in egm else (\n            self._hIndex or hIndex)))\n        if h not in (2, 3, 4):\n            raise ValueError('%s: %s' % ('-hindex', h))\n\n        for t5 in egmGeoidHeights(self._dat5tests):\n            lat, lon = t5.lat, t5.lon\n#           if lon > 180:  # EasternLon to earth lon\n#               lon -= 360\n            yield lat, lon, t5[h]\n\n    def testGeoid(self, G, grid, llh3, eps=None, kind=None, **crop):  # MCCABE 18\n        # test geoid G(grid) for (lat, lon, height, eps)\n        if scipy or G is GeoidKarney:\n            e_max = 0\n            if not eps:\n                eps = self._epsHeight\n            with G(grid, kind=kind or self._kind, **crop) as g:\n                f = self.failed - self.known\n                w = Fwelford()\n                s = '%s.height(%%s) kind %s' % (g, g.kind)\n                for lat, lon, expected in llh3:\n                    t = s % (fstr((lat, lon), prec=3),)\n                    try:\n                        h = g.height(lat, lon)\n                        e = abs(h - expected)\n                        if e_max < e:\n                            e_max = e\n                        if self._stats:\n                            w.fadd_(e)  # VERY slow!\n                        self.test(t, h, expected, fmt='%.3f', known=e < eps)\n                    except GeoidError as x:\n                        self.test(t, str(x), '%.3f' % (expected,),\n                                     known=G not in (GeoidKarney, GeoidPGM))\n                    except RangeError as x:\n                        self.test(t, str(x), '%.3f' % (expected,),\n                                     known=bool(crop))\n\n                    except KeyboardInterrupt as x:\n                        self.printf(repr(x), nl=1)\n                        break\n\n                f = self.failed - self.known - f\n                if f > 0 or e_max > 0 or w is not None:\n                    h = NN if g.hits is None else ', hits %s' % (g.hits,)\n                    h = '%s.height() kind %s%s, eps ' % (g, g.kind, h)\n                    t = '%smax (in %s FAILED)' % (h, f)\n                    x = eps if f > 0 else e_max\n                    self.test(t, e_max, x, fmt='%.6f', known=e_max < eps, nl=1)\n                    if self._stats:\n                        for t, x in (('mean',  w.fmean()),\n                                     ('stdev', w.fstdev())):\n                            t = '%s%s (of %s total)' % (h, t, len(w))\n                            self.test(t, x, x, fmt='%.6f')\n\n                # print('%r\\n\\n%r' % (g, getattr(g, 'pgm', None)))\n                if coverage:\n                    for a in ('highest', 'lowerleft', 'lowerright', 'lowest', 'upperleft', 'upperright'):\n                        t = fstr(getattr(g, a)(), prec=3)\n                        self.test(NN(_DOT_(g, a), '()'), t, t, known=True)\n                    for p in ('dtype', 'knots', 'mean', 'nBytes', 'smooth', 'stdev'):  # , 'pgm', 'scipy'\n                        t = NN(reprs((getattr(g, p),), prec=3))\n                        self.test(_DOT_(g, p), t, t, known=True)\n                    for a in ('_g2ll2', '_ll2g2'):\n                        t = getattr(g, a)(180, 360)\n                        self.test(NN(_DOT_(g, a), '(180, 360)'), t, t, known=True)\n                    for t in ((LatLon_(-10, -100), LatLon_(10, 100)),\n                              (       (-10, -100),        (10, 100))):\n                        t = g._swne(t)\n                        self.test(_DOT_(g, '_swne'), t, '(-10.0, -100.0, 10.0, 100.0)')\n\n                t = g.toStr()\n                self.test(_DOT_(g, 'toStr'), t, t, known=True, nt=1)\n\n            self.test('closed', g.closed, True)\n            self.testCopy(g)\n\n        else:\n            n, _ = len2(llh3)\n            if coverage:\n                n += 19\n            self.skip('no scipy', n=n + 3)\n\n\nif __name__ == '__main__':  # PYCHOK internal error?\n\n    import sys\n\n    # usage: testGeoids.py [-dat GeoidHeights.dat] [-eps 0.010]\n    #        [-hindex 2-4] [-kind -5, -3, -2, 1, 2, 3, 4, 5]\n    #        [.../testGeoids/egm*.pgm]\n    #        [.../testGeoids/g2012b*.bin] ...\n\n    t = Tests(__file__, __version__)\n\n    _CONUS = 25, -125, 55, -65\n    _GeoidEGM = None\n\n    gs = sys.argv[1:]\n    while gs:  # get cmd line options\n        g = gs.pop(0)\n        g_ = g.lower()\n\n        if '-crop'.startswith(g_) and len(g_) > 1:\n            t._crop4 = _CONUS\n        elif '-karney'.startswith(g_) and len(g_) > 2:\n            _GeoidEGM = GeoidKarney\n        elif '-pgm'.startswith(g_) and len(g_) > 1:\n            _GeoidEGM = GeoidPGM\n\n        elif not gs:\n            gs.insert(0, g)\n            break\n        elif '-dat'.startswith(g_) and len(g_) > 1:\n            # load GeoidHeights.dat from file\n            f = open(gs.pop(0), 'rb')\n            if f.read(2) == b'\\037\\213':  # .dat.gz\n                t.test('-dat <file.dat>', f.name, '-.dat')\n                t.exit()\n            f.seek(0, _SEEK_SET)\n            t._dat5tests = f\n            t._stats = False  # too slow\n        elif '-eps'.startswith(g_) and len(g_) > 1:\n            t._epsHeight = float(gs.pop(0))\n        elif '-hindex'.startswith(g_) and len(g_) > 1:\n            t._hIndex = int(gs.pop(0))\n        elif '-kind'.startswith(g_) and len(g_) > 2:\n            t._kind = int(gs.pop(0))\n        else:\n            gs.insert(0, g)\n            break\n\n    if not gs:  # look for ../testGeoids/egm*.pgm, etc.\n        from glob import glob\n        gs = glob(_os_path.join(PyGeodesy_dir, '../testGeoids/egm*.pgm')) \\\n           + glob(_os_path.join(PyGeodesy_dir, '../testGeoids/g*u0.bin')) \\\n           + glob(_os_path.join(PyGeodesy_dir, '../testGeoids/WW*.GRD'))\n\n    if gs:  # test one or more geoids/grids\n        for g in gs:\n            g_ = g.lower()\n            G  = None\n\n            if g_.endswith('.pgm',):\n                # Karney or PGM geoids .../egm*.pgm\n                if _GeoidEGM:\n                    t.testGeoid(_GeoidEGM, g, t.dat5llhs3(g), crop=t._crop4, kind=t._kind)\n                else:\n                    t.testGeoid(GeoidKarney, g, t.dat5llhs3(g), kind=2, eps=0.12)\n                    t.testGeoid(GeoidKarney, g, t.dat5llhs3(g), kind=3)\n                    try:\n                        t.testGeoid(GeoidPGM, g, t.dat5llhs3(g), crop=_CONUS)\n                    except ImportError as x:\n                        t.skip(str(x), n=231)\n\n            elif g_.endswith('g2012bu0.bin'):  # .../G2012B/CONUS/g2012bu0.bin\n                G, eps = GeoidG2012B, None\n\n            elif g.endswith('.GRD'):\n                G, eps = GeoidEGM96, 1.5\n\n            elif g:\n                t.test('geoid', repr(g), \"'.GRD', '.pgm' or '.bin'\")\n\n            if G:\n                try:\n                    t.testGeoid(G, g,\n                        # centers of g2012bu*.bin grids\n                        ((41,  -95.0, -30.312),\n                         (49, -120.5, -16.112),\n                         (49, -103.5, -18.955),\n                         (49,  -86.5, -37.584),\n                         (49,  -69.5, -25.867),\n                         (33, -120.5, -39.554),\n                         (33, -103.5, -21.917),\n                         (33,  -86.5, -29.001),\n                         (33,  -69.5, -46.725)), eps=eps)\n                    # t.testGeoid(G, g, *t.dat5llhs3(g, hIndex=4))\n                except ImportError as x:\n                    t.skip(str(x), n=30)\n\n        t.results()\n    else:\n        t.results(passed='SKIPPED', nl=0)\n\n    t.exit()\n"
  },
  {
    "path": "test/testGreatCircle.py",
    "content": "\n# -*- coding: utf-8 -*-\n\n# Transcoded from Objective-C GreatCircleTests by Brian Lambert (C)\n# 2016 Softwarenerd at <https://GitHub.com/softwarenerd/GreatCircle>\n\n# The MIT License (MIT)\n#\n# Copyright (C) 2016 Softwarenerd.\n#\n# Permission is hereby granted, free of charge, to any person obtaining a copy\n# of this software and associated documentation files (the \"Software\"), to deal\n# in the Software without restriction, including without limitation the rights\n# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n# copies of the Software, and to permit persons to whom the Software is\n# furnished to do so, subject to the following conditions:\n#\n# The above copyright notice and this permission notice shall be included in\n# all copies or substantial portions of the Software.\n#\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n# THE SOFTWARE.\n#\n# GreatCircleTests.m\n# GreatCircleTests\n#\n# Created by Brian Lambert on 6/5/16.\n# Copyright (C) 2016 Softwarenerd.\n\n__all__ = ()\n__version__ = '23.05.05'\n\nfrom bases import startswith, TestsBase\n\nfrom pygeodesy import F_D, F_DMS, classname, bearingDMS, CrossError, crosserrors\n\n\nclass Tests(TestsBase):\n\n    def testGreatCircle(self, module):  # spherical only\n\n        self.subtitle(module, 'GreatCircle')\n\n        LatLon = module.LatLon\n\n        # Indian Pond, in Piermond, NH.  My old Boy Scout Camp\n        IndianPond = LatLon(43.930912, -72.053811)\n        Eiffel     = LatLon(48.858158, 2.294825)\n        Versailles = LatLon(48.804766, 2.120339)\n        StGermain  = LatLon(48.897728, 2.094977)\n        Orly       = LatLon(48.747114, 2.400526)\n\n        # distance between the Eiffel Tower and Versailles in meter\n        dEiffelToVersailles = 14084.280704919687\n        xEiffelToVersailles = '%.6f'  # '%.8f'\n\n        # initial and final bearings between Eiffel tower and Versailles\n        ibEiffelToVersailles = 245.13460296861962\n        fbEiffelToVersailles = 245.00325395138532\n        xbEiffelToVersailles = '%.8f'  # '%.14f'\n\n        # initial and final bearing between Versailles and Eiffel tower\n        ibVersaillesToEiffel = 65.003253951385318\n        fbVersaillesToEiffel = 65.134602968619618\n        xbVersaillesToEiffel = '%.9f'  # '%.15f'\n\n        xMidpoint = '%.8f'\n\n        c = crosserrors(False)  # no CrossErrors!\n\n        # initial bearing for two locations that are the same\n        b = IndianPond.initialBearingTo(IndianPond)\n        self.test('InitialBearingSameLocations', b, 0.0, prec=1)\n\n        # initial bearing for two locations that are the equal\n        b = IndianPond.initialBearingTo(IndianPond.copy())\n        self.test('InitialBearingEqualLocations', b, 0.0, prec=1)\n\n        # final bearing for two locations that are the same\n        b = IndianPond.finalBearingTo(IndianPond)\n        self.test('FinalBearingSameLocations', b, 180.0, prec=1)  # 0.0\n\n        # final bearing for two locations that are the equal\n        b = IndianPond.finalBearingTo(IndianPond.copy())\n        self.test('FinalBearingEqualLocations', b, 180.0, prec=1)  # 0.0\n\n        c = crosserrors(c)  # with CrossErrors!\n\n        try:  # should raise CrossError\n            b = str(IndianPond.initialBearingTo(IndianPond, raiser=True))\n        except CrossError as x:\n            b = str(x)\n        self.test('FinalBearingCrossError', b, 'point (%s(43°55′51.28″N, 072°03′13.72″W))' % (classname(IndianPond),), known=startswith)\n\n        # distance for two locations that are the same\n        d = IndianPond.distanceTo(IndianPond)\n        self.test('DistanceSameLocations', d, 0.0, prec=1)\n\n        # distance for two locations that are equal\n        d = IndianPond.distanceTo(IndianPond.copy())\n        self.test('DistanceEqualLocations', d, 0.0, prec=1)\n\n        # distance between Eiffel Tower and Versailles\n        d = Eiffel.distanceTo(Versailles)\n        self.test('DistanceEiffelToVersailles', d, dEiffelToVersailles, fmt=xEiffelToVersailles, known=True)\n\n        # distance between Versailles and Eiffel Tower\n        d = Versailles.distanceTo(Eiffel)\n        self.test('DistanceVersaillesToEiffel', d, dEiffelToVersailles, fmt=xEiffelToVersailles, known=True)\n\n        # initial bearing between Eiffel Tower and Versailles\n        b = Eiffel.initialBearingTo(Versailles)\n        self.test('InitialBearingEiffelToVersailles', b, ibEiffelToVersailles, fmt=xbEiffelToVersailles)\n        self.test('InitialBearingEiffelToVersailles(DMS)', bearingDMS(b, F_DMS, prec=4), '245°08′04.5707″')\n\n        # initial bearing between Versailles and Eiffel Tower\n        b = Versailles.initialBearingTo(Eiffel)\n        self.test('InitialBearingVersaillesToEiffel', b, ibVersaillesToEiffel, fmt=xbVersaillesToEiffel)\n        self.test('InitialBearingVersaillesToEiffel(DMS)', bearingDMS(b, F_DMS, prec=4), '65°00′11.7142″')\n\n        # final bearing between Eiffel Tower and Versailles\n        b = Eiffel.finalBearingTo(Versailles)\n        self.test('FinalBearingEiffelToVersailles', b, fbEiffelToVersailles, fmt=xbEiffelToVersailles)\n        self.test('FinalBearingEiffelToVersailles(DMS)', bearingDMS(b, F_DMS, prec=4), '245°00′11.7142″')\n\n        # final bearing between Versailles and Eiffel Tower\n        b = Versailles.finalBearingTo(Eiffel)\n        self.test('FinalBearingVersaillesToEiffel', b, fbVersaillesToEiffel, fmt=xbVersaillesToEiffel)\n        self.test('FinalBearingVersaillesToEiffel(DMS)', bearingDMS(b, F_DMS, prec=4), '65°08′04.5707″')\n\n        # generating a location for Versailles based on bearing and distance\n        v = Eiffel.destination(dEiffelToVersailles, ibEiffelToVersailles)\n        self.test('GenerateLocationVersailles', v, str(Versailles))\n\n        # generating a location for Eiffel based on bearing and distance.\n        e = Versailles.destination(dEiffelToVersailles, ibVersaillesToEiffel)\n        self.test('GenerateLocationEiffel', e, str(Eiffel))\n\n        # midpoint between the Eiffel and Versailles\n        a = Eiffel.midpointTo(Versailles)\n        b = Eiffel.destination(dEiffelToVersailles / 2.0, ibEiffelToVersailles)\n        self.test('MidpointEiffelToVersailles', a, str(b))\n        self.test('MidpointEiffelToVersailles(DMS)', a.toStr(F_DMS, prec=4), '48°49′53.3817″N, 002°12′27.1279″E')\n        a = Eiffel.distanceTo(a)\n        m = Versailles.distanceTo(b)\n        self.test('MidpointEiffelToVersailles(m)', a, m, fmt=xMidpoint, known=True)\n\n        # midpoint between Versailles and the Eiffel Tower\n        a = Versailles.midpointTo(Eiffel)\n        b = Versailles.destination(dEiffelToVersailles / 2.0, ibVersaillesToEiffel)\n        self.test('MidpointVersaillesToEiffel', a, str(b), known=True)\n        self.test('MidpointVersaillesToEiffel(DMS)', a.toStr(F_DMS, prec=4), '48°49′53.3817″N, 002°12′27.1279″E')\n        a = Versailles.distanceTo(a)\n        m = Eiffel.distanceTo(b)\n        self.test('MidpointVersaillesToEiffel(m)', a, m, fmt=xMidpoint, known=True)\n\n        # intersection.\n        b = StGermain.initialBearingTo(Orly)\n        i = StGermain.intersection(b, Eiffel, ibEiffelToVersailles)\n        self.test('Intersection', i.toStr(F_D, prec=9), '48.83569095°N, 002.221252031°E')  # '48.83569094988361°N, ...\n        self.test('Intersection', i.toStr(F_D, prec=13), '48.8356909498836°N, 002.2212520313074°E')  # 002.2212520313073583°E'\n\n        # cross-track distance test of a point 90° and 200 meters away\n        m = Eiffel.midpointTo(Versailles)\n        b = Eiffel.initialBearingTo(Versailles)\n        p = m.destination(200.0, (b + 90) % 360.0)\n        d = p.crossTrackDistanceTo(Eiffel, Versailles)\n        self.test('CrossTrackDistance200m+90°', d, 200.0, prec=1)\n\n        # cross-track distance test of a point 270° and 200 meters away\n        m = Eiffel.midpointTo(Versailles)\n        b = Eiffel.initialBearingTo(Versailles)\n        p = m.destination(200.0, (b + 270) % 360.0)\n        d = p.crossTrackDistanceTo(Eiffel, Versailles)\n        self.test('CrossTrackDistance200m+270°', d, -200.0, prec=1)\n\n        # cross-track distance that should be very close to 0\n        m = Eiffel.midpointTo(Versailles)\n        d = abs(m.crossTrackDistanceTo(Eiffel, Versailles))\n        self.test('CrossTrackDistanceCloseToZero', d, '0.0000000', fmt='%.7f')\n\n\nif __name__ == '__main__':\n\n    from pygeodesy import sphericalNvector, sphericalTrigonometry\n\n    t = Tests(__file__, __version__)\n\n    t.testGreatCircle(sphericalNvector)\n\n    t.testGreatCircle(sphericalTrigonometry)\n\n    t.results()\n    t.exit()\n"
  },
  {
    "path": "test/testHausdorff.py",
    "content": "\n# -*- coding: utf-8 -*-\n\n# Test L{hausdorff} distances.  Very slow with coverage!\n\n__all__ = ('Tests',)\n__version__ = '24.12.31'\n\nfrom bases import GeodSolve, geographiclib, isPython3, isWindows, \\\n                  TestsBase\n\nfrom pygeodesy import Datums, fstr, hausdorff_, HausdorffCosineLaw, \\\n                      HausdorffDegrees, HausdorffDistanceTo, \\\n                      HausdorffEquirectangular, HausdorffEuclidean, \\\n                      HausdorffExact, HausdorffFlatLocal, HausdorffFlatPolar, \\\n                      HausdorffHaversine, HausdorffHubeny, HausdorffKarney, \\\n                      HausdorffRadians, HausdorffThomas, HausdorffVincentys, \\\n                      LatLon_, randomrangenerator\n\n\nclass HausdorffDegrees_(HausdorffDegrees):\n    '''Custom Hausdorff.'''\n    def distance(self, p1, p2):\n        dy, dx = abs(p1.lat - p2.lat), abs(p1.lon - p2.lon)\n        if dx < dy:\n            dx, dy = dy, dx\n        return dx + dy * 0.5\n\n\nclass HausdorffRadians_(HausdorffRadians):\n    '''Custom Hausdorff.'''\n    def distance(self, p1, p2):\n        dy, dx = abs(p1.phi - p2.phi), abs(p1.lam - p2.lam)\n        if dx < dy:\n            dx, dy = dy, dx\n        return dx + dy * 0.5\n\n\ndef _tstr(t):\n    s = list(t[:5])\n    s[0] = fstr(t.hd, prec=5)\n    s[4] = None if t.md is None else fstr(t.md, prec=5)\n    return '(%s)' % (', '.join(map(str, s)),)\n\n\n_rr = randomrangenerator('R')\n# like <https://GitHub.com/mavillan/py-hausdorff> Example\n_ms = [LatLon_(*_ll) for _ll in zip(_rr( -90,  90, 2),  # 90\n                                    _rr(-180, 180, 4))]\n\n_ps = [LatLon_(*_ll) for _ll in zip(_rr( -89,  90, 3),  # 60\n                                    _rr(-179, 180, 6))]\n\n\nclass Tests(TestsBase):\n\n    def test4(self, Hausdorff, *tests, **kwds):\n\n        k = kwds.pop('known', False)\n        for s, e, x, y in tests:\n            h = Hausdorff(_ms, seed=s, **kwds)\n            n = '%s (%s)' % (h.named, h.units)\n\n            t = _tstr(h.directed(_ps, early=e))\n            self.test(n, t, x, known=k)  # + (h.units,)\n\n            t = _tstr(h.symmetric(_ps, early=e))\n            self.test(n, t, y, known=k)  # + (h.units,)\n\n        self.testCopy(h)\n\n    def test4_(self, H_, *tests):\n\n        h = HausdorffDegrees_(_ms)\n        d = h.distance\n\n        for s, e, x, y in tests:\n\n            t = _tstr(H_(_ms, _ps, both=False, distance=d, early=e, seed=s))\n            self.test(hausdorff_.__name__, t, x)\n\n            t = _tstr(H_(_ms, _ps, both=True,  distance=d, early=e, seed=s))\n            self.test(hausdorff_.__name__, t, y)\n\n\nif __name__ == '__main__':  # MCCABE 13\n\n    def _4(t5directed, t5symmetric):\n        # generate Hausdorff(*args) and results for\n        # 4 different seed= and early= test cases\n        yield None, False, t5directed, t5symmetric\n        yield 'X',  False, t5directed, t5symmetric\n\n        t4directed  = t5directed[:4] + (None,)\n        t4symmetric = t5symmetric[:4] + (None,)\n        yield None, True, t4directed, t4symmetric\n        yield 'X',  True, t4directed, t4symmetric\n\n    t = Tests(__file__, __version__)\n\n    # check repeatable random ranges\n    r1 = randomrangenerator('R')\n    r2 = randomrangenerator('R')\n    for n in (0, 1, 2, 8, 32, 128):\n        t.test('randomrange[%d]' % (n,), tuple(r1(n)), tuple(r2(n)))\n\n    if isPython3:  # XXX different Random?\n        t.test4(HausdorffDegrees_, *_4((40.0, 22,  6,  90, 18.16111),\n                                       (48.0, 38, 36, 150, 17.30667)))\n\n        t.test4(HausdorffRadians_, *_4((0.69813, 22,  6,  90, 0.31697),\n                                       (0.83776, 38, 36, 150, 0.30206)))\n\n        t.test4(HausdorffCosineLaw, *_4((0.50097, 35, 3,  90, 0.212),\n                                        (0.50097, 35, 3, 150, 0.20099)))\n        for c in (1, 2):\n            t.test4(HausdorffCosineLaw, *_4((0.501, 35, 3,  90, 0.21184),\n                                            (0.501, 35, 3, 150, 0.20084)), corr=c)\n\n        t.test4(HausdorffEquirectangular, *_4((0.25113, 35,  3,  90, 0.05965),\n                                              (0.25113, 35,  3, 150, 0.05532)))\n\n        t.test4(HausdorffEuclidean, *_4((0.52803, 56, 51,  90, 0.22571),  # XXX different i, j?\n                                        (0.52803, 56, 51, 150, 0.21579)))\n\n        t.test4(HausdorffFlatLocal, *_4((0.25116, 35, 3,  90, 0.05951),\n                                        (0.25116, 35, 3, 150, 0.0552)))\n\n        t.test4(HausdorffFlatPolar, *_4((0.69043, 4, 31,  90, 0.22286),\n                                        (0.69043, 4, 31, 150, 0.21318)))\n\n        t.test4(HausdorffHaversine, *_4((0.50097, 35, 3,  90, 0.212),\n                                        (0.50097, 35, 3, 150, 0.20099)))\n\n        t.test4(HausdorffHubeny, *_4((0.25116, 35, 3,  90, 0.05951),\n                                     (0.25116, 35, 3, 150, 0.0552)))\n\n        t.test4(HausdorffThomas, *_4((0.501, 35, 3,  90, 0.21184),\n                                     (0.501, 35, 3, 150, 0.20084)))\n\n        t.test4(HausdorffVincentys, *_4((0.50097, 35, 3,  90, 0.212),\n                                        (0.50097, 35, 3, 150, 0.20099)))\n\n        if geographiclib:\n            t.test4(HausdorffKarney, *_4((28.79903, 35, 3,  90, 12.16138),\n                                         (28.79903, 35, 3, 150, 11.53021)),\n                                     datum=Datums.WGS84)\n\n        if t._testX:\n            t.test4(HausdorffExact, *_4((28.79903, 35, 3,  90, 12.16138),\n                                        (28.79903, 35, 3, 150, 11.53021)),\n                                    datum=Datums.WGS84)\n\n        t.test4_(hausdorff_, *_4((40.0, 22,  6,  90, 18.16111),\n                                 (48.0, 38, 36, 150, 17.30667)))\n\n    elif isWindows:  # Python 2\n        t.test4(HausdorffDegrees_, *_4((51.0, 10, 50,  90, 15.92222),\n                                       (51.0, 10, 50, 150, 14.32667)))\n\n        t.test4(HausdorffRadians_, *_4((0.89012, 10, 50,  90, 0.2779),\n                                       (0.89012, 10, 50, 150, 0.25005)))\n\n        t.test4(HausdorffCosineLaw, *_4((0.52674, 74, 45,  90, 0.18192),\n                                        (0.52674, 74, 45, 150, 0.16555)))\n        for c in (1, 2):\n            t.test4(HausdorffCosineLaw, *_4((0.52412, 74, 45,  90, 0.18171),\n                                            (0.52412, 74, 45, 150, 0.16541)), corr=c)\n\n        t.test4(HausdorffEquirectangular, *_4((0.30982, 40, 0,  90, 0.04843),\n                                              (0.30982, 40, 0, 150, 0.04072)))\n\n        t.test4(HausdorffEuclidean, *_4((0.58262, 69, 13,  90, 0.19621),\n                                        (0.58262, 69, 13, 150, 0.1787)))\n\n        t.test4(HausdorffFlatLocal, *_4((0.3105, 40, 0,  90, 0.04826),\n                                        (0.3105, 40, 0, 150, 0.04061)))\n\n        t.test4(HausdorffFlatPolar, *_4((0.89288, 53, 15,  90, 0.22047),\n                                        (0.89288, 53, 15, 150, 0.20447)))\n\n        t.test4(HausdorffHaversine, *_4((0.52674, 74, 45,  90, 0.18192),\n                                        (0.52674, 74, 45, 150, 0.16555)))\n\n        t.test4(HausdorffHubeny, *_4((0.3105, 40, 0,  90, 0.04826),\n                                     (0.3105, 40, 0, 150, 0.04061)))\n\n        t.test4(HausdorffThomas, *_4((0.52412, 74, 45,  90, 0.18171),\n                                     (0.52412, 74, 45, 150, 0.16541)))\n\n        t.test4(HausdorffVincentys, *_4((0.52674, 74, 45,  90, 0.18192),\n                                        (0.52674, 74, 45, 150, 0.16555)))\n\n        if geographiclib:\n            t.test4(HausdorffKarney, *_4((30.11794, 74, 45,  90, 10.43166),\n                                         (30.11794, 74, 45, 150,  9.49554)),\n                                     datum=Datums.WGS84)\n\n        if t._testX:\n            t.test4(HausdorffExact, *_4((30.11794, 74, 45,  90, 10.43166),\n                                        (30.11794, 74, 45, 150,  9.49554)),\n                                    datum=Datums.WGS84)\n\n        t.test4_(hausdorff_, *_4((51.0, 10, 50,  90, 15.92222),\n                                 (51.0, 10, 50, 150, 14.32667)))\n\n    else:  # Python 2, elsewhere\n        t.test4(HausdorffDegrees_, *_4((50.5, 61, 7,  90, 18.45556),\n                                       (50.5, 61, 7, 150, 16.05)))\n\n        t.test4(HausdorffRadians_, *_4((0.88139, 61, 7,  90, 0.32211),\n                                       (0.88139, 61, 7, 150, 0.28013)))\n\n        t.test4(HausdorffCosineLaw, *_4((0.56202, 49, 29,  90, 0.19776),\n                                        (0.56202, 49, 29, 150, 0.176)))\n        for c in (1, 2):\n            t.test4(HausdorffCosineLaw, *_4((0.56263, 49, 29,  90, 0.19764),\n                                            (0.56263, 49, 29, 150, 0.17591)), corr=c)\n\n        t.test4(HausdorffEquirectangular, *_4((0.33016, 49, 29,  90, 0.06075),\n                                              (0.33016, 49, 29, 150, 0.04918)))\n\n        t.test4(HausdorffEuclidean, *_4((0.61785, 49, 29,  90, 0.21327),\n                                        (0.61785, 49, 29, 150, 0.19061)))\n\n        t.test4(HausdorffFlatLocal, *_4((0.33092, 49, 29,  90, 0.06067),\n                                        (0.33092, 49, 29, 150, 0.04912)))\n\n        t.test4(HausdorffFlatPolar, *_4((0.96853, 20, 46,  90, 0.24569),\n                                        (0.96853, 20, 46, 150, 0.21335)))\n\n        t.test4(HausdorffHaversine, *_4((0.56202, 49, 29,  90, 0.19776),\n                                        (0.56202, 49, 29, 150, 0.176)))\n\n        t.test4(HausdorffHubeny, *_4((0.33092, 49, 29,  90, 0.06067),\n                                     (0.33092, 49, 29, 150, 0.04912)))\n\n        t.test4(HausdorffThomas, *_4((0.56263, 49, 29,  90, 0.19764),\n                                     (0.56263, 49, 29, 150, 0.17591)))\n\n        t.test4(HausdorffVincentys, *_4((0.56202, 49, 29,  90, 0.19776),\n                                        (0.56202, 49, 29, 150, 0.176)))\n\n        if geographiclib:\n            t.test4(HausdorffKarney, *_4((32.28234, 49, 29,  90, 11.34653),\n                                         (32.28234, 49, 29, 150, 10.09914)),\n                                     datum=Datums.WGS84)\n        if t._testX:\n            t.test4(HausdorffExact, *_4((32.28234, 49, 29,  90, 11.34653),\n                                        (32.28234, 49, 29, 150, 10.09914)),\n                                    datum=Datums.WGS84)\n\n        t.test4_(hausdorff_, *_4((50.5, 61, 7,  90, 18.45556),\n                                 (50.5, 61, 7, 150, 16.05)))\n\n    if isPython3:\n        from pygeodesy import ellipsoidalNvector, ellipsoidalVincenty, \\\n                              sphericalNvector, sphericalTrigonometry\n\n        ms = (ellipsoidalVincenty,)\n        if geographiclib:\n            from pygeodesy import ellipsoidalKarney\n            ms += (ellipsoidalKarney,)\n        if t._testX:\n            from pygeodesy import ellipsoidalExact\n            ms += (ellipsoidalExact,)\n            if GeodSolve:\n                from pygeodesy import ellipsoidalGeodSolve\n                ms += (ellipsoidalGeodSolve,)\n\n        for m in ms:\n            _ms = [m.LatLon(*ll.latlon) for ll in _ms]\n            _ps = [m.LatLon(*ll.latlon) for ll in _ps]\n            t.test4(HausdorffDistanceTo, *_4((3195418.34044, 35, 3,  90, 1351164.35981),\n                                             (3195418.34044, 35, 3, 150, 1280992.80341)), known=True)\n\n        for m in (ellipsoidalNvector, sphericalNvector, sphericalTrigonometry):\n            _ms = [m.LatLon(*ll.latlon) for ll in _ms]\n            _ps = [m.LatLon(*ll.latlon) for ll in _ps]\n            t.test4(HausdorffDistanceTo, *_4((3191685.70841, 35, 3,  90, 1350684.04012),\n                                             (3191685.70841, 35, 3, 150, 1280478.58707)), known=True)\n\n    t.results()\n    t.exit()\n"
  },
  {
    "path": "test/testHeights.py",
    "content": "\n# -*- coding: utf-8 -*-\n\n# Test L{heights} interpolators.\n\n__all__ = ('Tests',)\n__version__ = '24.12.31'\n\nimport warnings  # PYCHOK expected\n# RuntimeWarning: numpy.ufunc size changed, may indicate binary\n# incompatibility. Expected 192 from C header, got 216 from PyObject\n# warnings.filterwarnings(\"ignore\", message=\"numpy.dtype size changed\")\nwarnings.filterwarnings('ignore')  # or 'error'\n\nfrom bases import coverage, geographiclib, startswith, TestsBase\n\nfrom pygeodesy import Datums, fstr, SciPyError, HeightError, \\\n                      HeightIDWcosineLaw, HeightCubic, \\\n                      HeightIDWdistanceTo, HeightIDWequirectangular, \\\n                      HeightIDWeuclidean, HeightIDWexact, HeightIDWflatLocal, \\\n                      HeightIDWflatPolar, HeightIDWhaversine, HeightIDWhubeny, \\\n                      HeightIDWkarney, HeightIDWthomas, HeightIDWvincentys, \\\n                      HeightLinear, HeightLSQBiSpline, HeightSmoothBiSpline\n#                     HeightIDW, HeightIDW2, HeightIDW3\nfrom pygeodesy.interns import _DOT_\nfrom pygeodesy.sphericalTrigonometry import LatLon\n\n\ndef _fstr(floats):\n    fmt = '[%s]'  if isinstance(floats, list)  else \\\n          '(%s,)' if isinstance(floats, tuple) else '%s'\n    return fmt % (fstr(floats, prec=9),)\n\n\ndef _kwdstr(kwds):\n    return ', '.join('%s=%r' % t for t in sorted(kwds.items()))\n\n\nclass Tests(TestsBase):\n\n    def testHeight(self, H, kts, lli, expected, lats, lons, known=False, **kwds):\n        interpolator = H(kts, **kwds)\n        self.testCopy(interpolator)\n        self.testHeightError(interpolator)\n        h = interpolator(lli)\n        self.test(H.__name__, h, expected, fmt='%.9f', known=known)\n        self.test(H.__name__+'(float)', type(h), float)\n        h2 = interpolator.height(lli.lat, lli.lon)\n        self.test(H.__name__+'(latlon)', h2 == h, True)\n        h2 = interpolator.height_(lli.lat, lli.lon)\n        self.test(H.__name__+'_(tuple)', h2 == (h,), True)\n        hs = interpolator(*kts)  # return tuple\n        self.test(H.__name__+'(tuple)', type(hs), tuple)\n        self.test(H.__name__+'(tuple-float)', type(hs[0]), float)\n        self.test(H.__name__+'(tuple-float)', type(hs[1]), float)\n        hs = interpolator(kts)  # return list\n        self.test(H.__name__+'(list)', type(hs), list)\n        self.test(H.__name__+'(list-float)', type(hs[0]), float)\n        self.test(H.__name__+'(list-float)', type(hs[1]), float)\n        hs2 = interpolator.height(lats, lons)\n        self.test(H.__name__+'(latlon)', hs2 == hs, True, nt=1)\n\n    def testHeightError(self, interpolator, *attrs):\n        try:  # force an error\n            h = interpolator(9.0, 18.0)\n        except HeightError as x:\n            h = str(x)\n        self.test('HeightError', h, \"llis[0] (9.0): 'float' object has no attribute \", known=startswith)\n        if coverage:\n            n = interpolator.__class__.__name__\n            for a in ('datum', 'kmin', 'wrap') + attrs:  # XXX 'adjust'\n                t = getattr(interpolator, a)\n                self.test(_DOT_(n, a), t, t)\n\n    def testIDW(self, IDW, kts, lli, expected, **kwds):\n        interpolator = IDW(kts, **kwds)\n        kt = kts[2]\n        expected1 = '%.1f' % (kt.height,)\n        kwdstr = '(%s)' % (_kwdstr(kwds),)\n        h = interpolator(lli)  # return scalar\n        k = False  # f = float(expected)\n        self.test(IDW.__name__+kwdstr, h, expected, fmt='%.9f', known=k, nl=1)\n        self.test(IDW.__name__+'(float)', type(h), float)\n        h2 = interpolator.height(lli.lat, lli.lon)\n        self.test(IDW.__name__+'(latlon)', h2 == h, True)\n        h2 = interpolator.height_(lli.lat, lli.lon)\n        self.test(IDW.__name__+'_(tuple)', h2 == (h,), True)\n        h = interpolator(kt)  # return scalar\n        t = '%s, %s' % (expected, expected1)\n        self.test(IDW.__name__+kwdstr, h, expected1, fmt='%.1f', known=k)\n        self.test(IDW.__name__+'(float)', type(h), float)\n        h2 = interpolator.height(kt.lat, kt.lon)\n        self.test(IDW.__name__+'(latlon)', h2 == h, True)\n        hs = interpolator(lli, kt)  # return tuple\n        self.test(IDW.__name__+kwdstr, _fstr(hs), '(%s,)' % (t,), known=k)\n        self.test(IDW.__name__+'(tuple)', type(hs), tuple)\n        self.test(IDW.__name__+'(tuple-float)', type(hs[0]), float)\n        self.test(IDW.__name__+'(tuple-float)', type(hs[1]), float)\n        hs = interpolator([lli, kt])  # return list\n        self.test(IDW.__name__+kwdstr, _fstr(hs), '[%s]' % (t,), known=k)\n        self.test(IDW.__name__+'(list', type(hs), list)\n        self.test(IDW.__name__+'(list-float)', type(hs[0]), float)\n        self.test(IDW.__name__+'(list-float)', type(hs[1]), float)\n        self.testCopy(interpolator)\n        self.testHeightError(interpolator, 'beta')\n\n        if coverage:\n            for a in ('adjust', 'beta', 'kmin', 'wrap'):\n                t = getattr(interpolator, a)\n                self.test(_DOT_(IDW.__name__, a), t, t)\n\n    def testHeights(self):\n        kts = LatLon(0.4, 0.9, 1), LatLon(1.5, 1.5, 3), \\\n              LatLon(1, 0.5, 5), LatLon(0.5, 1.4, 7), LatLon(1.2, 1, 7)\n        lli = LatLon(1, 1)\n#       self.testIDW(HeightIDW,                kts, lli, '6.142945781', adjust=True)\n        self.testIDW(HeightIDWcosineLaw,       kts, lli, '6.108538037', wrap=True)\n        self.testIDW(HeightIDWcosineLaw,       kts, lli, '6.108538037', wrap=False)\n        self.testIDW(HeightIDWcosineLaw,       kts, lli, '6.111157919', corr=1, wrap=False)  # XXX 6.108538037\n        self.testIDW(HeightIDWcosineLaw,       kts, lli, '6.111158354', corr=2, wrap=False)  # XXX 6.108538037\n        self.testIDW(HeightIDWdistanceTo,      kts, lli, '6.108538037')\n#       self.testIDW(HeightIDW2,               kts, lli, '6.108538529', adjust=True, wrap=False)\n        self.testIDW(HeightIDWequirectangular, kts, lli, '6.860459007', adjust=True, wrap=True)  # XXX 6.108538529\n#       self.testIDW(HeightIDW2,               kts, lli, '6.108614369', adjust=False, wrap=False)\n        self.testIDW(HeightIDWequirectangular, kts, lli, '6.860498092', adjust=False, wrap=True)  # XXX 6.108614369\n        self.testIDW(HeightIDWeuclidean,       kts, lli, '6.142945781')\n        self.testIDW(HeightIDWexact,           kts, lli, '6.108538037')\n        self.testIDW(HeightIDWflatLocal,       kts, lli, '6.111158784')  # XXX 6.860459007\n        self.testIDW(HeightIDWflatPolar,       kts, lli, '6.261469975')\n#       self.testIDW(HeightIDW3,               kts, lli, '6.108538037', wrap=True)\n        self.testIDW(HeightIDWhaversine,       kts, lli, '6.108538037')\n        self.testIDW(HeightIDWhubeny,          kts, lli, '6.111158784')  # XXX 6.860459007\n        if geographiclib:\n            self.testIDW(HeightIDWkarney,      kts, lli, '6.111158743', wrap=True,  datum=Datums.WGS84)\n            self.testIDW(HeightIDWkarney,      kts, lli, '6.111158743', wrap=False, datum=Datums.WGS84)\n            self.testIDW(HeightIDWkarney,      kts, lli, '6.108538037', wrap=True,  datum=Datums.Sphere)\n            self.testIDW(HeightIDWkarney,      kts, lli, '6.108538037', wrap=False, datum=Datums.Sphere)\n        self.testIDW(HeightIDWthomas,          kts, lli, '6.111159454', wrap=True)   # XXX 6.108538037\n        self.testIDW(HeightIDWthomas,          kts, lli, '6.111159454', wrap=False)  # XXX 6.108538037\n        self.testIDW(HeightIDWvincentys,       kts, lli, '6.108538037', wrap=True)\n        self.testIDW(HeightIDWvincentys,       kts, lli, '6.108538037', wrap=False)\n\n        kts = LatLon(1.1, 1, 2), LatLon(2.1, 2, 2), \\\n              LatLon(1.2, 4, 3), LatLon(2.2, 3, 3)\n        lli = kts[0].intersection(*kts[1:])\n        self.test('intersection', lli, '02.64932°N, 002.550079°E, +2.50m', nt=1)  # mean height\n\n#       self.testIDW(HeightIDW,                kts, lli, '2.592748835', adjust=True)\n        self.testIDW(HeightIDWcosineLaw,       kts, lli, '2.592742938', wrap=True)\n        self.testIDW(HeightIDWcosineLaw,       kts, lli, '2.592742938', wrap=False)\n        self.testIDW(HeightIDWcosineLaw,       kts, lli, '2.592742781', corr=1, wrap=False)  # XXX 2.592742938\n        self.testIDW(HeightIDWcosineLaw,       kts, lli, '2.592742781', corr=2, wrap=False)  # XXX 2.592742938\n#       self.testIDW(HeightIDW2,               kts, lli, '2.592743455', adjust=True, wrap=False)\n        self.testIDW(HeightIDWequirectangular, kts, lli, '2.689429914', adjust=True, wrap=True)  # XXX 2.592743455\n#       self.testIDW(HeightIDW2,               kts, lli, '2.592732915', adjust=False, wrap=False)\n        self.testIDW(HeightIDWequirectangular, kts, lli, '2.689413401', adjust=False, wrap=True)  # XXX 2.592732915\n        self.testIDW(HeightIDWeuclidean,       kts, lli, '2.592735541', adjust=False)\n        self.testIDW(HeightIDWexact,           kts, lli, '2.592742938')\n        self.testIDW(HeightIDWflatLocal,       kts, lli, '2.592743288')  # XXX 2.689429914\n        self.testIDW(HeightIDWflatPolar,       kts, lli, '2.592973059')\n#       self.testIDW(HeightIDW3,               kts, lli, '2.592742938', wrap=True)\n        self.testIDW(HeightIDWhaversine,       kts, lli, '2.592742938')\n        self.testIDW(HeightIDWhubeny,          kts, lli, '2.592743288')  # XXX 2.689429914\n        if geographiclib:\n            self.testIDW(HeightIDWkarney,      kts, lli, '2.592742915', wrap=True,  datum=Datums.WGS84)\n            self.testIDW(HeightIDWkarney,      kts, lli, '2.592742915', wrap=False, datum=Datums.WGS84)\n            self.testIDW(HeightIDWkarney,      kts, lli, '2.592742938', wrap=True,  datum=Datums.Sphere)\n            self.testIDW(HeightIDWkarney,      kts, lli, '2.592742938', wrap=False, datum=Datums.Sphere)\n        self.testIDW(HeightIDWthomas,          kts, lli, '2.592742781', wrap=True)   # XXX 2.592742938\n        self.testIDW(HeightIDWthomas,          kts, lli, '2.592742781', wrap=False)  # XXX 2.592742938\n        self.testIDW(HeightIDWvincentys,       kts, lli, '2.592742938', wrap=True)\n        self.testIDW(HeightIDWvincentys,       kts, lli, '2.592742938', wrap=False)\n\n        try:\n            interpolator = HeightLinear(kts)\n            self.testCopy(interpolator)\n            h = interpolator(lli)\n            self.test(HeightLinear.__name__, h, '2.536626441', fmt='%.9f')\n            self.test(HeightLinear.__name__+'(float)', type(h), float)\n            h2 = interpolator.height(lli.lat, lli.lon)\n            self.test(HeightLinear.__name__+'(latlon)', h2 == h, True)\n\n            kts = tuple(kts)  # XXX grid-, mesh-like\n            kts += LatLon(1.1, 2, 2), LatLon(2.1, 3, 2), LatLon(1.2, 5, 3), LatLon(2.2, 4, 3)\n            kts += LatLon(1.1, 3, 2), LatLon(2.1, 4, 2), LatLon(1.2, 6, 3), LatLon(2.2, 5, 3)\n            kts += LatLon(1.1, 4, 2), LatLon(2.1, 5, 2), LatLon(1.2, 7, 3), LatLon(2.2, 6, 3)\n            # unzip into a list of lats and of lons\n            lats, lons = zip(*[(ll.lat, ll.lon) for ll in kts])\n\n            self.testHeight(HeightCubic,              kts, lli, '3.000000000', lats, lons)\n            self.testHeight(HeightIDWcosineLaw,       kts, lli, '2.402157442', lats, lons)\n            self.testHeight(HeightIDWcosineLaw,       kts, lli, '2.401661864', lats, lons, corr=1)  # 2.402157442\n            self.testHeight(HeightIDWcosineLaw,       kts, lli, '2.401661859', lats, lons, corr=2)  # 2.402157442\n            self.testHeight(HeightIDWequirectangular, kts, lli, '2.469718302', lats, lons)  # 2.402157181\n            self.testHeight(HeightIDWeuclidean,       kts, lli, '2.409288552', lats, lons)\n            self.testHeight(HeightIDWexact,           kts, lli, '2.402157442', lats, lons)\n            self.testHeight(HeightIDWflatLocal,       kts, lli, '2.401661562', lats, lons)  # 2.469718302\n            self.testHeight(HeightIDWflatPolar,       kts, lli, '2.370266641', lats, lons)\n            self.testHeight(HeightIDWhaversine,       kts, lli, '2.402157442', lats, lons)\n            self.testHeight(HeightIDWhubeny,          kts, lli, '2.401661562', lats, lons)  # 2.469718302\n            if geographiclib:\n                self.testHeight(HeightIDWkarney,      kts, lli, '2.402157442', lats, lons)  # datum=Datums.Sphere\n            self.testHeight(HeightIDWthomas,          kts, lli, '2.401661653', lats, lons)  # 2.402157442\n            self.testHeight(HeightIDWvincentys,       kts, lli, '2.402157442', lats, lons)\n            self.testHeight(HeightLinear,             kts, lli, '2.294914622', lats, lons, known=True)  # 3.000000000\n            self.testHeight(HeightLSQBiSpline,        kts, lli, '6.419251669', lats, lons)\n            try:  # SciPy 1.9.0 issue\n                self.testHeight(HeightLSQBiSpline,    kts, lli, '6.419251669', lats, lons, weight=2)  # coverage\n            except SciPyError as x:\n                self.test('SciPy 1.9 issue', str(x), str(x))\n            try:  # SciPy 1.9.0 issue\n                self.testHeight(HeightLSQBiSpline,    kts, lli, '6.419251669', lats, lons, weight=[1] * len(kts))\n            except SciPyError as x:\n                self.test('SciPy 1.19 issue', str(x), str(x))\n            self.testHeight(HeightSmoothBiSpline,     kts, lli, '2.598922541', lats, lons)\n\n        except ImportError as x:\n            self.skip(str(x), n=80)\n\n\nif __name__ == '__main__':  # PYCHOK internal error?\n\n    t = Tests(__file__, __version__)\n    t.testHeights()\n    t.results()\n    t.exit()\n\n    _ = '''\n    import numpy as np\n    from scipy.interpolate import SmoothSphereBivariateSpline\n\n    theta = np.linspace(0., np.pi, 7)\n    phi = np.linspace(0., 2*np.pi, 9)\n    data = np.zeros((theta.shape[0], phi.shape[0]))\n    data[1:-1,1], data[1:-1,-1] = 1., 1.\n    data[1,1:-1], data[-2,1:-1] = 1., 1.\n    data[2:-2,2], data[2:-2,-2] = 2., 2.\n    data[2,2:-2], data[-3,2:-2] = 2., 2.\n    data[3,3:-2] = 3.\n    data = np.roll(data, 4, 1)\n    print('_data', data)\n\n    lats, lons = np.meshgrid(theta, phi)\n    print('lats', lats)\n    print('lons', lons)\n    lut = SmoothSphereBivariateSpline(lats.ravel(), lons.ravel(), data.T.ravel(), s=3.5)\n\n    data_orig = lut(theta, phi)\n    print('_orig', data_orig)\n\n    fine_lats = np.linspace(0., np.pi, 15)\n    fine_lons = np.linspace(0., 2*np.pi, 19)\n    data_smth = lut(fine_lats, fine_lons)\n    print('_smth', data_smth)\n'''\n    del _\n"
  },
  {
    "path": "test/testInterns.py",
    "content": "\n# -*- coding: utf-8 -*-\n\n# Test L{interns} module.\n\n__all__ = ('Tests',)\n__version__ = '25.04.12'\n\nfrom bases import ismacOS, sys, TestsBase\n\nfrom pygeodesy import clips, internals, interns, machine, NN\nfrom pygeodesy.interns import _0to9_, _AtoZnoIO_, _COLONSPACE_, \\\n                              _DOT_, _DUNDER_, _EQUALSPACED_, _UNDER_\nfrom os import getcwd\n# import sys  # from .bases\n\n_cwd        =  getcwd()\n_D0to9_     =  NN(_DUNDER_, _0to9_)\n_exceptions = {_0to9_, _AtoZnoIO_,\n               interns._DALL_,\n               interns._DMAIN_,\n               interns._DNAME_,\n               interns._doesn_t_exist_,\n               interns._exceed_PI_radians_,\n               interns._n_a_,\n               interns._NLATvar_,\n               interns._NLHASH_,\n               interns._not_finite_,\n               interns._not_scalar_,\n               interns._PyPy__,\n               interns._semi_circular_,\n               interns._utf_8_}\n\n\nclass Tests(TestsBase):\n\n    def testInterns(self):\n\n        for a in sorted(dir(interns), key=str.lower):\n            if a.startswith(_UNDER_) and a[-1] in _D0to9_:\n                i = getattr(interns, a, None)\n                n = repr(i)\n                k = a.startswith(_DUNDER_)\n                if k:  # hide home dir\n                    n = n.replace(_cwd, _DOT_)\n                n = _EQUALSPACED_(a, clips(n))\n                self.test(n, isinstance(i, (float, str)), True, known=k)\n                # check the naming conventions\n                s = a.strip(_UNDER_)\n                if isinstance(i, str) and not k:\n                    self.test(n, i.lower(), s.lower(), known=s.isupper() or i in _exceptions)\n                elif isinstance(i, float):\n                    s = s.replace(_UNDER_, _DOT_)\n                    self.test(n, i, s, known=n.startswith(_UNDER_))\n\n        self.test('.tillC', _AtoZnoIO_.tillC, 'ABC')\n        self.test('.fromX', _AtoZnoIO_.fromX, 'XYZ')\n\n        self.test('.fromH.tillJ', _AtoZnoIO_.fromH.tillJ, 'HJ')\n        self.test('.fromN.tillP', _AtoZnoIO_.fromN.tillP, 'NP')\n\n        m = machine()\n        self.test('machine', m, m, nl=1)\n        if ismacOS:  # coverage\n            i = internals._sysctl_uint('sysctl.proc_translated')\n            self.test('sysctl', i, i)  # known=i in (0, 1)\n            u, t = internals._usage('interns.py').split(_COLONSPACE_)\n            self.test(u, t, t)\n            t = internals._version2(sys.version)\n            self.test('version', t, tuple(sys.version_info[:2]))\n\n\nif __name__ == '__main__':\n\n    t = Tests(__file__, __version__, interns)\n    t.testInterns()\n    t.results()\n    t.exit()\n"
  },
  {
    "path": "test/testIters.py",
    "content": "\n# -*- coding: utf-8 -*-\n\n# Test L{iters} module.\n\n__all__ = ('Tests',)\n__version__ = '23.03.27'\n\nfrom bases import TestsBase\n\nfrom pygeodesy import NN, PointsError, PointsIter\n\n\nclass Tests(TestsBase):\n\n    def testIters(self):\n\n        Ps = PointsIter(range(8))\n        for i, p in Ps.enumerate():\n            pass\n        self.test('i ', i, 7)\n        self.test('dedup', Ps.dedup, False)\n\n        Ps = PointsIter(range(8), loop=1)\n        p0 = Ps[0]\n        for i, p in Ps.enumerate(closed=True):\n            pass\n        self.test('i ', i, 0)\n        self.test('p0', p is p0, True)\n        self.test('dedup', Ps.dedup, True)  # == closed\n\n        Ps = PointsIter(range(8))\n        for p in Ps.iterate(copies=True):\n            pass\n        self.test('copies', Ps.copies, list(range(8)))\n\n        r = range(8)  # list in Python 2\n        Ps = PointsIter(r, loop=1)\n        p0 = Ps[0]\n        for i, p in Ps.enumerate(closed=True, copies=True):\n            pass\n        self.test('i ', i, 0)\n        cs = Ps.copies\n        self.test('copies', len(cs), (8 if cs is r else 9))\n        self.test('p0', p is p0, True)\n\n        t  = tuple(range(8))\n        Ps = PointsIter(t)\n        for p in Ps.iterate(copies=True):\n            pass\n        cs = Ps.copies\n        self.test('copies', cs is t, True)  # original\n        self.test('copies', cs, t)\n\n        Ps = PointsIter(range(4), loop=1)\n        for i, p in enumerate(Ps):\n            self.test('iter', p, i + 1)\n        try:\n            for p in Ps:\n                self.test('re-iter', p, PointsError.__name__)\n        except Exception as x:\n            p = repr(x).replace(',', NN)\n        self.test('re-iter', p, \"PointsError('points (0): too few')\")\n\n\nif __name__ == '__main__':\n\n    from pygeodesy import iters\n\n    t = Tests(__file__, __version__, iters)\n    t.testIters()\n    t.results()\n    t.exit()\n"
  },
  {
    "path": "test/testKarney.py",
    "content": "\n# -*- coding: utf-8 -*-\n\n# Test L{karney} module and wrappers.\n\n__all__ = ('Tests',)\n__version__ = '25.12.20'\n\nfrom bases import endswith, GeodSolve, geographiclib, startswith, TestsBase\n\nfrom pygeodesy import fsum_, karney, LatLon_, sincos2d, unroll180, wrap180\nfrom pygeodesy.constants import _0_0, _100_0, _360_0\n\n# some tests from <https://PyPI.org/project/geographiclib>\n_testCases = ((35.60777, -139.44815, 111.098748429560326,\n              -11.17491,  -69.95921, 129.289270889708762,\n               8935244.5604818305, 80.50729714281974,\n               6273170.2055303837,  0.16606318447386067,\n               0.16479116945612937, 12841384694976.432),\n              (55.52454, 106.05087,  22.020059880982801,\n               77.03196, 197.18234, 109.112041110671519,\n               4105086.1713924406, 36.892740690445894,\n               3828869.3344387607,  0.80076349608092607,\n               0.80101006984201008, 61674961290615.615),\n             (-21.97856, 142.59065, -32.44456876433189,\n               41.84138,  98.56635, -41.84359951440466,\n               8394328.894657671, 75.62930491011522,\n               6161154.5773110616, 0.24816339233950381,\n               0.24930251203627892, -6637997720646.717),\n             (-66.99028, 112.2363, 173.73491240878403,\n              -12.70631, 285.90344,  2.512956620913668,\n               11150344.2312080241, 100.278634181155759,\n               6289939.5670446687, -0.17199490274700385,\n              -0.17722569526345708, -121287239862139.744),\n             (-17.42761, 173.34268, -159.033557661192928,\n              -15.84784,   5.93557,  -20.787484651536988,\n               16076603.1631180673, 144.640108810286253,\n               3732902.1583877189, -0.81273638700070476,\n              -0.81299800519154474, 97825992354058.708),)\n\n\ndef _signOf(x):\n    return -1 if x < 0 else (1 if x > 0 else 0)\n\n\nclass Tests(TestsBase):\n\n    def testDelta(self, n, x, v, e=1e-10, prec=12):\n        w = _360_0 if _signOf(v) != _signOf(x) else _0_0  # wrap\n        w =  abs((v - x + w) * _100_0 / x) if x else _0_0\n        self.test(n, v, x, prec=prec, error=w, known=w < e)\n\n    def testDirect(self, g, module):\n        self.subtitle(module, 'Direct')\n\n        # from <https://PyPI.org/project/geographiclib>\n        m = g.ALL | g.LONG_UNROLL\n        for (lat1, lon1, azi1, lat2, lon2, azi2,\n             s12, a12, m12, M12, M21, S12) in _testCases:\n            d = g.Direct(lat1, lon1, azi1, s12, outmask=m)\n            self.testDelta('Direct.lat2', lat2, d.lat2)\n            self.testDelta('Direct.lon2', lon2, d.lon2)\n            self.testDelta('Direct.azi2', azi2, d.azi2)\n            self.testDelta('Direct.a12',  a12,  d.a12)\n            self.testDelta('Direct.m12',  m12,  d.m12)\n            self.testDelta('Direct.M12',  M12,  d.M12)\n            self.testDelta('Direct.M21',  M21,  d.M21)\n            self.testDelta('Direct.S12',  S12,  d.S12)\n\n    def testInverse(self, g, module):\n        self.subtitle(module, 'Inverse')\n        # from <https://PyPI.org/project/geographiclib>\n        m = g.ALL | g.LONG_UNROLL\n        for (lat1, lon1, azi1, lat2, lon2, azi2,\n             s12, a12, m12, M12, M21, S12) in _testCases:\n            d = g.Inverse(lat1, lon1, lat2, lon2, outmask=m)\n            self.testDelta('Inverse.lat2', lat2, d.lat2)\n            self.testDelta('Inverse.lon2', lon2, d.lon2)\n            self.testDelta('Inverse.azi1', azi1, d.azi1)\n            self.testDelta('Inverse.azi2', azi2, d.azi2)\n            self.testDelta('Inverse.s12',  s12,  d.s12)\n            self.testDelta('Inverse.a12',  a12,  d.a12)\n            self.testDelta('Inverse.m12',  m12,  d.m12)\n            self.testDelta('Inverse.M12',  M12,  d.M12)\n            self.testDelta('Inverse.M21',  M21,  d.M21)\n            self.testDelta('Inverse.S12',  S12,  d.S12)\n        # <https://SourceForge.net/p/geographiclib/discussion/1026621/thread/e05fb928/>\n        for (lat1, lon1, azi1, lat2, lon2, azi2,\n             s12, a12, m12, M12, M21, S12) in ((85, 0, 0.0, 90,  0,  0.0, 558455.588646, 5.016735,\n                                                557747.059254, 0.996195, 0.996195, 0.0),\n                                               (85, 0, 0.0, 90, 10, 10.0, 558455.588646, 5.016735,\n                                                557747.059254, 0.996195, 0.996195, 7084244746167.8955)):\n            d = g.Inverse(lat1, lon1, lat2, lon2, outmask=m)\n            self.testDelta('Inverse.lat2', lat2, d.lat2)\n            self.testDelta('Inverse.lon2', lon2, d.lon2)\n            self.testDelta('Inverse.azi1', azi1, d.azi1)\n            self.testDelta('Inverse.azi2', azi2, d.azi2)\n            self.testDelta('Inverse.s12',  s12,  d.s12, e=1e-1)\n            self.testDelta('Inverse.a12',  a12,  d.a12, e=1e-5)\n            self.testDelta('Inverse.m12',  m12,  d.m12, e=1e-9)\n            self.testDelta('Inverse.M12',  M12,  d.M12, e=1e-4)\n            self.testDelta('Inverse.M21',  M21,  d.M21, e=1e-3)\n            self.testDelta('Inverse.S12',  S12,  d.S12, e=1e-3)\n\n    def testInverseLine(self, g, module):\n        self.subtitle(module, 'InverseLine')\n        # from <https://GeographicLib.SourceForge.io/C++/doc/classGeographicLib_1_1GeodesicLine.html>\n        li = g.InverseLine(40.640, -73.779, 1.359, 103.989)  # JFK-SIN\n        n  = int(li.Distance() * 1e-6)  # about 15,000 Km\n        da = li.Arc() / n\n        ds = li.Distance() / n\n        for i in range(n + 1):\n            a = li.ArcPosition(i * da)\n            s = li.Position(i * ds)\n            self.testDelta('InverseLine[%s].lat' % (i,), s.lat2, a.lat2, e=0.8, prec=3)\n            self.testDelta('InverseLine[%s].lon' % (i,), s.lon2, a.lon2, e=0.8, prec=3)\n\n    def testGeodCalc(self, module, X=False):\n        self.subtitle(module, 'GeodCalc')\n        # <https://GeographicLib.SourceForge.io/scripts/geod-calc.html#area>\n        p = [LatLon_(*t) for t in ((-63.1,  -58),\n                                   (-72.9,  -74),\n                                   (-71.9, -102),\n                                   (-74.9, -102),\n                                   (-74.3, -131),\n                                   (-77.5, -163),\n                                   (-77.4,  163),\n                                   (-71.7,  172),\n                                   (-65.9,  140),\n                                   (-65.7,  113),\n                                   (-66.6,   88),\n                                   (-66.9,   59),\n                                   (-69.8,   25),\n                                   (-70.0,   -4),\n                                   (-71.0,  -14),\n                                   (-77.3,  -33),\n                                   (-77.9,  -46),\n                                   (-74.7,  -61))]\n        self.test('area',      module.areaOf(p), 13662703680020.125, fmt='%.0f')\n        self.test('perimeter', module.perimeterOf(p, closed=True), 16830891.356049 if X else\n                                                                   16831067.89279071, fmt='%.6f')\n\n    def testMask(self, G, module):\n        self.subtitle(module, 'Mask')\n\n        g = G(1, 0)  # .WGS84\n        for n in ('EMPTY', 'LATITUDE', 'LONGITUDE', 'AZIMUTH', 'AREA',\n                  'DISTANCE', 'DISTANCE_IN', 'REDUCEDLENGTH', 'GEODESICSCALE',\n                  'STANDARD', 'STANDARD_LINE'):  # 'ALL', 'LONG_UNROLL'\n            m = getattr(g, n)\n            self.test('Geodesic.' + n, bin(m & g.ALL), bin(m))\n        self.test('Geodesic.ALL', bin(g.ALL), bin(g.EMPTY | g.LATITUDE | g.LONGITUDE | g.AZIMUTH|\n                                                  g.DISTANCE | g.STANDARD | g.DISTANCE_IN |\n                                                  g.REDUCEDLENGTH | g.GEODESICSCALE | g.AREA))\n        Cs = karney.Caps\n        n, m = Cs.__class__.__name__, Cs.toStr(g.ALL)\n        self.test(n, m, 'ALL|AREA|AZIMUTH|', known=startswith)\n        self.test(n, m, '|LONGITUDE|REDUCEDLENGTH|STANDARD|STANDARD_LINE', known=endswith)\n\n    def testMath(self):\n        self.subtitle(karney, 'Math')\n\n        if geographiclib and karney._wrapped.Math:\n            _sincosd = karney._wrapped.Math.sincosd\n            for d in range(-360, 391, 15):\n                s, c = sincos2d(d)\n                S, C = _sincosd(d)\n                self.test('sin(%s)' % (d,), s, S, known=abs(s - S) < 8e-16)\n                self.test('cos(%s)' % (d,), c, c)\n\n        # compare geomath.Math.AngDiff with mimicked _diff182\n        _diff = karney._diff182\n        n = '%s(%%d, %%d)' % (_diff.__name__,)\n        for a in range(-180, 181, 90):\n            for b in range(-180, 181, 90):\n                d, _ = _diff(a, b)\n                x, _ = _diff(b, a)\n                self.test(n % (a, b), d, -x, known=d in (0, 180, -180))\n\n        # compare geomath.Math.AngNormalize with mimicked _norm180\n        _norm180 = karney._norm180\n        n = '%s(%%s)' % (_norm180.__name__,)\n        for a, x in zip((-361, -360, -180,   -90,   -0,   0,   90,   180,   360, 361),\n                        (-1.0, -0.0,  180.0, -90.0,  0.0, 0.0, 90.0, 180.0, 0.0, 1.0)):\n            w = _norm180(a)\n            self.test(n % (a), float(w), float(x), known=w in (0, -180))\n            w = wrap180(a)\n            self.test(' wrap180(%s)' % (a), float(w), float(x), known=w in (0, -180))\n\n        _unroll2 = karney._unroll2\n        for lon in range(0, 361, 30):\n            lon = float(lon)\n            _t = _unroll2(-30.0, lon, wrap=True)\n            t = unroll180(-30.0, lon, wrap=True)\n            self.test('unroll(-30, %s)' % (int(lon),), _t, t, known=lon == 150)\n\n        # compare geomath.Math.sum with mimicked _sum2 and -3\n        self.testSum3(1e-20, 7, 1e100, -7, -1e100, 9e-20, -8e-20)\n        # however, summation fails after some shuffling ...\n        self.testSum3(1e-20, 7, 1e100, 9e-20, -7, -1e100, -8e-20)\n        # ... but works after some other shuffling\n        self.testSum3(1e-20, 7, 1e100, -7, 9e-20, -1e100, -8e-20)\n        # Knuth/Kulisch, TAOCP, vol 2, p 245, sec 4.2.2, item 31, see also .testFmath.py\n        # <https://SeriousComputerist.Atariverse.com/media/pdf/book/\n        #          Art%20of%20Computer%20Programming%20-%20Volume%202%20(Seminumerical%20Algorithms).pdf>\n        x = 408855776.0\n        y = 708158977.0\n        self.testSum3('1.0', 2*y**2, 9*x**4, -(y**4))  # -3.589050987400773e+19\n\n    def testSum3(self, txt, x, *xs):\n        s, t, _ = karney._sum3(x, _0_0, *xs)\n        self.test('_sum3.s', s, txt, known=True, fmt='%.3e', nl=1)\n        self.test('_sum3.t', t, 0.0, known=True, fmt='%.3e')\n        t = fsum_(x, *xs)\n        self.test('fsum_',   t, txt, known=True, fmt='%.3e')  # XXX wrong too!\n\n\nif __name__ == '__main__':\n\n    from pygeodesy import ellipsoidalExact, geodesicw, geodesicx\n\n    t = Tests(__file__, __version__, karney)\n\n    if geographiclib:\n        from pygeodesy import ellipsoidalKarney\n        g = geodesicw.Geodesic_WGS84()\n        t.test('Geodesic', isinstance(g, geodesicw._wrapped.Geodesic), True)\n        t.test('Geodesic', isinstance(g, geodesicw.Geodesic), True)\n#       t.test('WGS84.a',           g.a, geodesicw._wrapped.Geodesic.WGS84.a)\n        t.testDirect(g, geodesicw)\n        t.testInverse(g, geodesicw)\n        t.testInverseLine(g, geodesicw)\n        t.testGeodCalc(ellipsoidalKarney)\n        t.testMask(geodesicw.Geodesic, geodesicw)\n    else:\n        t.skip('no geographiclib', n=103)\n\n    g = geodesicx.GeodesicExact()  # _WGS84\n    t.testDirect(g, geodesicx)\n    t.testInverse(g, geodesicx)\n    t.testInverseLine(g, geodesicx)\n    t.testGeodCalc(ellipsoidalExact, X=True)\n    t.testMask(geodesicx.GeodesicExact, geodesicx)\n\n    if GeodSolve:\n        from pygeodesy import ellipsoidalGeodSolve, GeodesicSolve, geodsolve\n        g = GeodesicSolve()  # _WGS84\n        t.testDirect(g, geodsolve)\n        t.testInverse(g, geodsolve)\n#       t.testInverseLine(g, geodsolve)\n        t.testGeodCalc(ellipsoidalGeodSolve)\n        t.testMask(GeodesicSolve, geodsolve)\n    else:\n        t.skip('no GeodSolve', n=102)\n\n    t.testMath()\n    t.results()\n    t.exit()\n"
  },
  {
    "path": "test/testKarneySigns.py",
    "content": "\n# -*- coding: utf-8 -*-\n\n# Sign and some geodesic tests from Karney's Python U{test/test_sign.py\n# <https://GitHub.com/geographiclib/geographiclib-python/tree/main/geographiclib/>}.\n\n__all__ = ('Tests',)\n__version__ = '25.12.23'\n\nfrom bases import TestsBase\n\nfrom pygeodesy import EPS, INF, NAN, signBit  # atan2d, sincos2d\nfrom pygeodesy.geodesicx import GeodesicExact as Geodesic, gxarea\nfrom pygeodesy.karney import _around, _atan2d, _diff182, \\\n                             _norm180, _sincos2d, _sum2\n\ng_WGS84 = Geodesic()\n\n\ndef _sign(x):\n    return '-' if signBit(x) else '+'\n\n\nclass Tests(TestsBase):\n    \"\"\"Sign test suite\"\"\"\n\n    def _T2(self, which, *tuples):\n        i = 0\n        self.test(which.__name__, '...', '...', nl=1)\n        for t in tuples:\n            i += 1\n            yield ('test_' + str(i)), t\n\n    def test_eqv(self, n, y, x, **kwds):\n        if not self.test(n, y, x, **kwds):  # pass\n            if signBit(y) != signBit(x):\n                self.test(n, _sign(y), _sign(x))\n\n    def test_AngDiff(self):\n        \"\"\"Test special cases of AngDiff\"\"\"\n        E128 = EPS * 128\n        for n, (a, b, x) in self._T2(self.test_AngDiff,\n               (  +0.0,   +0.0, +0.0),\n               (  +0.0,   -0.0, -0.0),\n               (  -0.0,   +0.0, +0.0),\n               (  -0.0,   -0.0, +0.0),\n               (  +5.0, +365.0, +0.0),\n               (+365.0,   +5.0, -0.0),\n               (+  5.0, +185.0, +180.0),\n               (+185.0,   +5.0, -180.0),\n               ( EPS  , +180.0, +180.0),\n               (-EPS  , +180.0, -180.0),\n               ( EPS  , -180.0, +180.0),\n               (-EPS  , -180.0, -180.0),\n               (E128+138, -164, 58-E128)):\n            d, _ = _diff182(a, b)\n            self.test_eqv(n, d, x)\n\n    def test_AngNormalize(self):\n        \"\"\"Test special cases of AngNormalize\"\"\"\n        for n, (d, x) in self._T2(self.test_AngNormalize,\n               (-900.0, -180.0),\n               (-720.0,   -0.0),\n               (-540.0, -180.0),\n               (-360.0,   -0.0),\n               (-180.0, -180.0),\n               (  -0.0,   -0.0),\n               (  +0.0,   +0.0),\n               ( 180.0, +180.0),\n               ( 360.0,   +0.0),\n               ( 540.0, +180.0),\n               ( 720.0,   +0.0),\n               ( 900.0, +180.0)):\n            self.test_eqv(n, _norm180(d), x)\n\n    def test_AngRound(self):\n        \"\"\"Test special cases for AngRound\"\"\"\n        for n, (a, x) in self._T2(self.test_AngRound,\n               (      EPS/32,       EPS/32),\n               (     -EPS/32,      -EPS/32),\n               (     -EPS/64, -0.0        ),  # PYCHOK E202\n               (        -0.0, -0.0        ),  # PYCHOK E202\n               (         0.0, +0.0        ),  # PYCHOK E202\n               (      EPS/64, +0.0        ),  # PYCHOK E202\n               ((1-2*EPS)/64, (1-2*EPS)/64),\n               ((1-EPS  )/64,  1.0     /64),  # PYCHOK E202\n               ((1-EPS/2)/64,  1.0     /64),\n               ((1-EPS/4)/64,  1.0     /64),\n               ( 1.0     /64,  1.0     /64),\n               ((1+EPS/2)/64,  1.0     /64),\n               ((1+EPS  )/64,  1.0     /64),  # PYCHOK E202\n               ((1+2*EPS)/64, (1+2*EPS)/64),\n               ((1-EPS  )/32, (1-EPS  )/32),  # PYCHOK E202\n               ((1-EPS/2)/32,  1.0     /32),\n               ((1-EPS/4)/32,  1.0     /32),\n               ( 1.0     /32,  1.0     /32),\n               ((1+EPS/2)/32,  1.0     /32),\n               ((1+EPS  )/32, (1+EPS  )/32),  # PYCHOK E202\n               ((1-EPS  )/16, (1-EPS  )/16),  # PYCHOK E202\n               ((1-EPS/2)/16, (1-EPS/2)/16),\n               ((1-EPS/4)/16,  1.0     /16),\n               ( 1.0     /16,  1.0     /16),\n               ((1+EPS/4)/16,  1.0     /16),\n               ((1+EPS/2)/16,  1.0     /16),\n               ((1+EPS  )/16, (1+EPS  )/16),  # PYCHOK E202\n               ((1-EPS  )/ 8, (1-EPS  )/ 8),  # PYCHOK E202\n               ((1-EPS/2)/ 8, (1-EPS/2)/ 8),\n               ((1-EPS/4)/ 8,  1.0     / 8),\n               ((1+EPS/2)/ 8,  1.0     / 8),\n               ((1+EPS  )/ 8, (1+EPS  )/ 8),  # PYCHOK E202\n               ( 1-EPS      ,  1-EPS      ),  # PYCHOK E202\n               ( 1-EPS/2    ,  1-EPS/2    ),  # PYCHOK E202\n               ( 1-EPS/4    ,  1.0        ),  # PYCHOK E202\n               ( 1.0        ,  1.0        ),  # PYCHOK E202\n               ( 1+EPS/4    ,  1.0        ),  # PYCHOK E202\n               ( 1+EPS/2    ,  1.0        ),  # PYCHOK E202\n               ( 1+EPS      ,  1+  EPS    ),  # PYCHOK E202\n               ( 90.0-64*EPS,  90-64*EPS  ),  # PYCHOK E202\n               ( 90.0-32*EPS,  90.0       ),  # PYCHOK E202\n               ( 90.0       ,  90.0       )):  # PYCHOK E202\n            self.test_eqv(n, _around(a), x)\n\n    def test_antipodal(self):\n        \"\"\"How does the exact antipodal equatorial path go N/S + E/W\"\"\"\n        for n, (lat1, lat2, lon2, azi1, azi2) in self._T2(self.test_antipodal,\n               (+0.0, +0.0, +180,   +0.0, +180.0),\n               (-0.0, -0.0, +180, +180.0,   +0.0),\n               (+0.0, +0.0, -180,   -0.0, -180.0),\n               (-0.0, -0.0, -180, -180.0,   -0.0)):\n            r = g_WGS84.Inverse(lat1, 0.0, lat2, lon2)\n            self.test_eqv(n, r.azi1, azi1)\n            self.test_eqv(n, r.azi2, azi2)\n\n    def test_antipodal_prolate(self):\n        \"\"\"Antipodal points on the equator with prolate ellipsoid\"\"\"\n        g = Geodesic(6.4e6, -1 / 300.0)\n        for n, (lon2, azi) in self._T2(self.test_antipodal_prolate,\n               (+180, +90.0),\n               (-180, -90.0)):\n            r = g.Inverse(0.0, 0.0, 0.0, lon2)\n            self.test_eqv(n, r.azi1, azi)\n            self.test_eqv(n, r.azi2, azi)\n\n    def test_azimuth_0_180(self):\n        \"\"\"Azimuths = +/-0 and +/-180 for the direct problem\"\"\"\n        for n, (azi1, lon2, azi2) in self._T2(self.test_azimuth_0_180,\n               (+0.0, +180.0, +180.0),\n               (-0.0, -180.0, -180.0),\n               (+180, +180.0,   +0.0),\n               (-180, -180.0,   -0.0)):\n            r = g_WGS84.Direct(0.0, 0.0, azi1, 15e6,\n                               Geodesic.STANDARD | Geodesic.LONG_UNROLL)\n            self.test_eqv(n, r.lon2, lon2)\n            self.test_eqv(n, r.azi2, azi2)\n\n    def test_equatorial_coincident(self):\n        \"\"\"Azimuth with coincident point on equator\"\"\"\n        for n, (lat1, lat2, azi) in self._T2(self.test_equatorial_coincident,\n               (+0.0, -0.0, 180.0),\n               (-0.0, +0.0,   0.0)):\n            r = g_WGS84.Inverse(lat1, 0.0, lat2, 0.0)\n            self.test_eqv(n, r.azi1, azi)\n            self.test_eqv(n, r.azi2, azi)\n\n    def test_equatorial_NS(self):\n        \"\"\"Does the nearly antipodal equatorial solution go north or south?\"\"\"\n        for n, (lat1, lat2, azi1, azi2) in self._T2(self.test_equatorial_NS,\n               (+0.0, +0.0,  56., 124.),\n               (-0.0, -0.0, 124.,  56.)):\n            r = g_WGS84.Inverse(lat1, 0.0, lat2, 179.5)\n            self.test_eqv(n, r.azi1, azi1, known=True, prec=2)\n            self.test_eqv(n, r.azi2, azi2, known=True, prec=2)\n\n    def test_atan2d(self):\n        \"\"\"Test special cases for atan2d\"\"\"\n        eps, k = 7e-16, True\n        for n, (a, b, x) in self._T2(self.test_atan2d,\n               ( eps, -1.0,  180 - _atan2d(eps, 1.0)),  # 179.9..4 vs 7 Intel\n               (+0.0, -0.0, +180.0),\n               (-0.0, -0.0, -180.0),\n               (+0.0, +0.0,   +0.0),\n               (-0.0, +0.0,   -0.0),\n               (+0.0, -1.0, +180.0),\n               (-0.0, -1.0, -180.0),\n               (+0.0, +1.0,   +0.0),\n               (-0.0, +1.0,   -0.0),\n               (-1.0, +0.0,  -90.0),\n               (-1.0, -0.0,  -90.0),\n               (+1.0, +0.0,  +90.0),\n               (+1.0, -0.0,  +90.0),\n               (+1.0, -INF, +180.0),\n               (-1.0, -INF, -180.0),\n               (+1.0,  INF,   +0.0),\n               (-1.0,  INF,   -0.0),\n               ( INF, +1.0,  +90.0),\n               ( INF, -1.0,  +90.0),\n               (-INF, +1.0,  -90.0),\n               (-INF, -1.0,  -90.0),\n               ( INF, -INF, +135.0),\n               (-INF, -INF, -135.0),\n               ( INF,  INF,  +45.0),\n               (-INF,  INF,  -45.0),\n               ( NAN, +1.0,    NAN),\n               (+1.0,  NAN,    NAN)):\n            self.test_eqv(n, _atan2d(a, b), x, known=k)\n            k = False\n\n    def test_sincosd(self):\n        \"\"\"Test special cases for sincosd\"\"\"\n        for n, (d, x, y) in self._T2(self.test_sincosd,\n               (-810.0, -1.0, +0.0),\n               (-720.0, -0.0, +1.0),\n               (-630.0, +1.0, +0.0),\n               (-540.0, -0.0, -1.0),\n               (-450.0, -1.0, +0.0),\n               (-360.0, -0.0, +1.0),\n               (-270.0, +1.0, +0.0),\n               (-180.0, -0.0, -1.0),\n               (- 90.0, -1.0, +0.0),\n               (-  0.0, -0.0, +1.0),\n               (+  0.0, +0.0, +1.0),\n               (+ 90.0, +1.0, +0.0),\n               (+180.0, +0.0, -1.0),\n               (+270.0, -1.0, +0.0),\n               (+360.0, +0.0, +1.0),\n               (+450.0, +1.0, +0.0),\n               (+540.0, +0.0, -1.0),\n               (+630.0, -1.0, +0.0),\n               (+720.0, +0.0, +1.0),\n               (+810.0, +1.0, +0.0),\n               (-  INF,  NAN,  NAN),\n               (   INF,  NAN,  NAN),\n               (   NAN,  NAN,  NAN)):\n            s, c = _sincos2d(d)\n            self.test_eqv(n, s, x, prec=16)  # error=(s - x)\n            self.test_eqv(n, c, y)\n\n        s1, c1 = _sincos2d(         9.0)\n        s2, c2 = _sincos2d(        81.0)\n        s3, c3 = _sincos2d(-123456789.0)\n        self.test_eqv(n, s1,  c2, prec=16)\n        self.test_eqv(n, c1,  s2)\n        self.test_eqv(n, s1,  s3, prec=16)\n        self.test_eqv(n, c1, -c3)\n\n    def test_sum2(self):\n        \"\"\"Test special cases of sum\"\"\"\n        for n, (a, b, x) in self._T2(self.test_sum2,\n               (+9.0, -9.0, +0.0),\n               (-9.0, +9.0, +0.0),\n               (-0.0, +0.0, +0.0),\n               (+0.0, -0.0, +0.0),\n               (-0.0, -0.0, -0.0),\n               (+0.0, +0.0, +0.0)):\n            s, _ = _sum2(a, b)\n            self.test_eqv(n, s, x)\n\n        s = gxarea._Accumulator().Add(1, 1e20, 2, 100, 5000, -1e20)\n        self.test('Accu', s, 5103.0, nl=1)\n\n\nif __name__ == '__main__':\n\n    t = Tests(__file__, __version__)\n\n    t.test_AngDiff()\n    t.test_AngNormalize()\n    t.test_AngRound()\n\n    t.test_antipodal()\n    t.test_antipodal_prolate()\n    t.test_azimuth_0_180()\n\n    t.test_equatorial_coincident()\n    t.test_equatorial_NS()\n\n    t.test_atan2d()\n    t.test_sincosd()\n    t.test_sum2()\n\n    t.results()\n    t.exit()\n"
  },
  {
    "path": "test/testKtm.py",
    "content": "# -*- coding: utf-8 -*-\n\n# Some basic L{ktm} L{KTransverseMercator} tests.\n\n__all__ = ('Tests',)\n__version__ = '23.03.27'\n\nfrom bases import TestsBase\n\nfrom pygeodesy import fstr, hypot, NN, sincos2d\nfrom pygeodesy.interns import _SLASH_\n\n\nclass Tests(TestsBase):\n\n    def testKtm(self, xTM, known, fw=NN, rv=NN):\n\n        t = xTM.toRepr()\n        self.test('_TM', t, t, nl=1)\n        e = 0\n        for i in range(0, 361, 3):\n            lon, lat = sincos2d(i)\n            lat *= 80\n            lon *= 160\n            try:\n                w, x, y = 'forward ', lat, lon\n                n = '%s%dN (%.3f, %.3f) ' % (w, i, x, y)\n                x, y, g, k = xTM.forward(lat, lon)\n                z = getattr(xTM, '_zetaC', '-')\n                z = _SLASH_(z, xTM.iteration or '-')\n                t = fstr((x, y, g, k), prec=6)\n                self.test(n + str(z), t, t)\n\n                w = 'reverse '\n                x, y, _, _ = xTM.reverse(x, y)\n                s = getattr(xTM, '_sigmaC', '-')\n                s = _SLASH_(s, xTM.iteration or '-')\n                d = hypot(lat - x, lon - y)\n                n = '%s%dN (%.3f, %.3f) %s' % (w, i, x, y, s)\n                self.test(n, d, min(d, known), known=True)\n                e = max(e, d)\n            except Exception as X:\n                t = repr(X)\n                n = '%s%dN (%.3f, %.3f) ERROR' % (w, i, x, y)\n                self.test(n, t, known, known=True)\n        self.test('max', e, known, known=True)\n\n        t = xTM.forward(30, 60)\n        self.test('forward', fstr(t, prec=6), fw, nl=1)\n        t = xTM.reverse(62e5, 55e5)\n        self.test('reverse', fstr(t, prec=6), rv)\n\n\nif __name__ == '__main__':\n\n    from pygeodesy import Ellipsoids, ExactTransverseMercator as _ETM, \\\n                          ktm, KTransverseMercator as _KTM\n    from sys import argv\n\n    _t = len(argv) > 1 and argv[1] == '-t'\n\n    t = Tests(__file__, __version__, ktm)\n\n    # echo 30 60 | TransverseMercatorProj -s\n    # 6208422.537400 5452954.287187 41.077484300765 1.511911171199\n    # echo 62e5 55e5 | TransverseMercatorProj -s -r\n    # 30.24422805624 60.16966413219 41.479185132982 1.510345924158\n    t.testKtm(_KTM(Ellipsoids.WGS84, TMorder=7),  6e-14,\n               fw='6208422.5374, 5452954.287187, 41.077484, 1.511911',\n               rv='30.244228, 60.169664, 41.479185, 1.510346')\n\n    # echo 30 60 | TransverseMercatorProj -s -e 6371008.771415 0\n    # 6196225.831883 5458228.732328 40.893394649131 1.511253148880\n    # echo 62e5 55e5 | TransverseMercatorProj -s -r -e 6371008.771415 0\n    # 30.17255567482 60.20831594572 41.279729402162 1.511925129658\n    t.testKtm(_KTM(Ellipsoids.Sphere, TMorder=4), 5e-14,\n               fw='6196225.831883, 5458228.732328, 40.893395, 1.511253',\n               rv='30.172556, 60.208316, 41.279729, 1.511925')\n\n    # echo 30 60 | TransverseMercatorProj\n    # 6208422.537400 5452954.287187 41.077484300760 1.511911171199\n    # echo 62e5 55e5 | TransverseMercatorProj -r\n    # 30.24422805624 60.16966413219 41.479185132982 1.510345924158\n    t.testKtm(_ETM(extendp=_t), 9e-14,\n               fw='6208422.5374, 5452954.287187, 41.077484, 1.511911',\n               rv='30.244228, 60.169664, 41.479185, 1.510346')\n\n    t.results()\n    t.exit()\n"
  },
  {
    "path": "test/testLatLon.py",
    "content": "\n# -*- coding: utf-8 -*-\n\n# Test C{LatLon}.\n\n__all__ = ('Tests',)\n__version__ = '25.05.09'\n\nfrom bases import GeodSolve, geographiclib, isPyPy, isPython2, \\\n                  startswith, TestsBase\n\nfrom pygeodesy import Aer, Enu, F_D, F_DM, F_DMS, F_RAD, R_M, R_NM, \\\n                      degrees, fstr, isclockwise, isconvex, isenclosedBy, \\\n                      isnear0, ispolar, Local9Tuple, Ltp, m2km, m2NM, Ned, \\\n                      XyzLocal, IntersectionError, VincentyError\nfrom pygeodesy.namedTuples import Bounds2Tuple, LatLon2Tuple, LatLon3Tuple, \\\n                                                PhiLam2Tuple, PhiLam3Tuple, \\\n                                                Vector3Tuple, Vector4Tuple\n\n\nclass Tests(TestsBase):\n\n    def testLatLon(self, module, Sph=False, Nv=False, X=False, GS=False):  # MCCABE 108\n\n        self.subtitle(module, 'LatLon')\n\n        LatLon = module.LatLon\n\n        # basic LatLon class tests\n        p = LatLon(52.20472, 0.14056)\n        self.test('isEllipsoidal', p.isEllipsoidal, not Sph)\n        self.test('isSpherical', p.isSpherical, Sph)\n\n        self.test('lat/lonDMS', p, '52.20472°N, 000.14056°E')  # 52.20472°N, 000.14056°E\n        self.test('lat/lonDMS F_DM', p.toStr(F_DM, prec=3),  '''52°12.283'N, 000°08.434'E''')\n        self.test('lat/lonDMS F_DM', p.toStr(F_DM, prec=4),  '''52°12.2832'N, 000°08.4336'E''')\n        self.test('lat/lonDMS F_DMS', p.toStr(F_DMS, prec=0), '''52°12'17\"N, 000°08'26\"E''')\n        self.test('lat/lonDMS F_DMS', p.toStr(F_DMS, prec=1), '''52°12'17.0\"N, 000°08'26.0\"E''')\n        self.test('lat/lonDMS F_RAD', p.toStr(F_RAD, prec=6), '0.911144N, 0.002453E')\n\n        q = LatLon(*map(degrees, p.philam))\n        self.test('isequalTo', q.isequalTo(p), True)\n        q = LatLon(*map(degrees, p.philam))\n        self.test('isequalTo', q.isequalTo(p), True)\n\n        self.test('latlon2', fstr(q.latlon2(5)), '52.20472, 0.14056')\n        self.test('latlon2', fstr(q.latlon2(4)), '52.2047, 0.1406')\n        self.test('latlon2', fstr(q.latlon2(3)), '52.205, 0.141')\n        self.test('latlon2', fstr(q.latlon2(2)), '52.2, 0.14')\n        self.test('latlon2', fstr(q.latlon2(1)), '52.2, 0.1')\n        self.test('latlon2', fstr(q.latlon2()),  '52.0, 0.0')\n\n        FRA = LatLon(50.0379, 8.5622)\n        LHR = LatLon(51.47, 0.4543)\n        # <https://www.EdWilliams.org/avform.htm#XTE>\n        JFK = LatLon(degrees(0.709186), -degrees(1.287762))\n        LAX = LatLon(33.+57./60, -(118.+24./60))\n        Rav = m2NM(6366710)  # avg. earth radius in NM\n        # <https://GeographicLib.SourceForge.io/html/python/examples.html>\n        WNZ = LatLon(-41.32, 174.81, name='Wellington, NZ')\n        SAL = LatLon(40.96, -5.50, name='Salamanca, ES')\n        BJS = LatLon(40.1, 116.6)  # Beijing Airport\n        SFO = LatLon(37.6, -122.4)  # San Francisco\n\n        # <https://www.Numericana.com/answer/formula.htm#geodetic>\n        p = LatLon( 42.96125,  -85.655719, height=195)  # Grand Rapids, MI\n        q = LatLon(-37.813611, 144.963056, height=31)  # Melbourne, AU\n        self.test('chordTo', q.chordTo(p),           '12036677.26' if Sph else '12029263.15', fmt='%.2f')\n        self.test('chordTo', p.chordTo(q, height=0), '12036463.78' if Sph else '12029049.69', fmt='%.2f')\n\n        p = LatLon(52.205, 0.119)\n        q = LatLon(48.857, 2.351)\n\n        if hasattr(LatLon, 'initialBearingTo'):\n            b = p.initialBearingTo(q)\n            self.test('initialBearingTo', b, '156.1666' if Sph else '156.1106', fmt='%.4f')  # 156.2\n            b = LAX.initialBearingTo(JFK)\n            self.test('initialBearingTo', b, '65.8921' if Sph else '65.9335', fmt='%.4f')\n            # courtesy of U{Inmars Didaitis (bakakaldsas)<https://GitHub.com/mrJean1/PyGeodesy/issues/56>}\n            a, b = LatLon(5, 5), LatLon(10, 5)  # same lon\n            self.test('initialBearingTo', a.initialBearingTo(b),   0.0, prec=1)\n            self.test('initialBearingTo', b.initialBearingTo(a), 180.0, prec=1)\n\n        if hasattr(LatLon, 'finalBearingTo'):\n            b = p.finalBearingTo(q)\n            self.test('finalBearingTo', b, '157.8904' if Sph else '157.8345', fmt='%.4f')\n            b = LAX.finalBearingTo(JFK)\n            self.test('finalBearingTo', b, '93.8581' if Sph else '93.9034', fmt='%.4f')\n\n        if hasattr(LatLon, 'bearingTo2'):\n            b = p.bearingTo2(q)\n            self.test('bearingTo2', fstr(b, prec=4), '156.1666, 157.8904' if Sph else '156.1106, 157.8345')  # 156.2\n            # <https://blog.Element84.com/determining-if-a-spherical-polygon-contains-a-pole.html>\n            b = LatLon(85, -135), LatLon(85, -45), LatLon(85, 45), LatLon(85, 135), LatLon(85, -135)\n            self.test('ispolar', ispolar(b), True)\n\n        c = p.copy()\n        self.test('copy', p.isequalTo(c), True)\n        self.test('__eq__', p == c, True)\n        self.test('__ne__', p != c, False)\n\n        d = p.equirectangularTo(q)\n        self.test('equirectangularTo', d, '404329.56', fmt='%.2f')\n\n        if hasattr(LatLon, 'distanceTo'):\n            d = p.distanceTo(q)\n            self.test('distanceTo', d, '404279.720589' if Sph else ('404279.720589' if Nv else '404607.805988'), fmt='%.6f')  # 404300\n            d = q.distanceTo(p)\n            self.test('distanceTo', d, '404279.720589' if Sph else ('404279.720589' if Nv else '404607.805988'), fmt='%.6f')  # 404300\n            d = LAX.distanceTo(JFK, radius=R_NM) if Sph else LAX.distanceTo(JFK)\n            self.test('distanceTo', d, 2145 if Sph else (3972863 if Nv else 3981601), fmt='%.0f')\n            if not Nv:  # <https://GeographicLib.SourceForge.io/html/python/examples.html>\n                self.test('antipodal', WNZ.isantipodeTo(SAL, eps=0.1), False)\n                try:\n                    d = WNZ.distanceTo(SAL, wrap=False)\n                    self.test('distanceTo dateline', d, '19119590.551' if Sph else '19959679.267', fmt='%.3f', known=True)\n                except VincentyError as x:\n                    x = str(x)\n                    self.test('distanceTo dateline', x, 'no convergence ...', known=True)\n                try:\n                    d = WNZ.distanceTo(SAL, wrap=True)\n                    self.test('distanceTo unrolled', d, '19119590.551' if Sph else '19959679.267', fmt='%.3f', known=True)\n                except VincentyError as x:\n                    x = str(x)\n                    self.test('distanceTo unrolled', x, 'no convergence ...', known=True)\n                self.test('antipodal', BJS.isantipodeTo(SFO, eps=0.1), False)\n                d = BJS.distanceTo(SFO, wrap=False)\n                self.test('distanceTo dateline', d, '9491735' if Sph else '9513998', fmt='%.0f')\n                d = BJS.distanceTo(SFO, wrap=True)\n                self.test('distanceTo unrolled', d, '9491735' if Sph else '9513998', fmt='%.0f')\n\n            # <https://GitHub.com/ChrisVeness/geodesy/issues/64>\n            d = LatLon(20, 0).distanceTo(LatLon(-2, 180))\n            self.test('distanceTo', d, '18013602.92' if Sph or Nv else '18012714.66', fmt='%.2f')\n            try:\n                d = LatLon(0, 0).distanceTo(LatLon(0, 180))  # antipodal\n                self.test('distanceTo', d, '20015114.35' if Sph else '20003931.46', fmt='%.2f', known=Nv or X or GS)  # PYCHOK 0.0 for Nv ...\n            except ValueError as x:\n                x = str(x)\n                self.test('distanceTo', x, 'ambiguous, antipodal ...', known=True)\n\n        if hasattr(LatLon, 'distanceTo3'):  # and not Sph:\n            for w in (False, True):\n                try:\n                    d = WNZ.distanceTo3(SAL, wrap=w)  # XXX expected values?\n                    self.test('distanceTo3 dateline', fstr(d, prec=4), '19959679.2674, 161.0677, 18.8252', known=True)\n                except VincentyError as x:\n                    x = str(x)\n                    self.test('distanceTo3 dateline', x, 'no convergence ...', known=True)\n                d = BJS.distanceTo3(SFO, wrap=w)\n                self.test('distanceTo3 dateline', fstr(d, prec=4), '9513997.9901, 42.9164, 138.8903')\n\n        if hasattr(LatLon, 'intermediateTo'):\n            i = p.intermediateTo(q, 0.25)\n            self.test('intermediateTo', i, '51.372084°N, 000.707337°E' if Sph\n                                     else ('51.372294°N, 000.707192°E' if Nv\n                                     else  '51.372275°N, 000.707253°E'))\n            self.test('intermediateTo', isinstance(i, LatLon), True)\n\n            if hasattr(p, 'distanceTo'):\n                d = p.distanceTo(q)\n                self.test('intermediateTo', d, '404279.721' if Sph or Nv\n                                          else '404607.806', prec=3)\n\n            i = p.intermediateTo(q, 5)\n            self.test('intermediateTo+5', i, '35.160975°N, 008.989542°E' if Sph\n                                       else ('35.560239°N, 008.833512°E' if Nv\n                                       else  '35.139582°N, 008.994368°E'))\n            if hasattr(p, 'distanceTo'):\n                self.test('intermediateTo+5', p.distanceTo(i) / d, '4.885' if Nv and not Sph else '5.000', prec=3)\n\n            i = p.intermediateTo(q, -4)\n            self.test('intermediateTo-4', i, '64.911647°N, 013.726301°W' if Sph\n                                       else ('64.570387°N, 013.156352°W' if Nv\n                                       else  '64.894124°N, 013.705689°W'))\n            if hasattr(p, 'distanceTo'):\n                self.test('intermediateTo-4', p.distanceTo(i) / d, '3.885' if Nv and not Sph else '4.000', prec=3)\n\n            # courtesy of U{Inmars Didaitis (bakakaldsas)<https://GitHub.com/bakakaldsas>}\n            i = LatLon(52, 0, 100).intermediateTo(LatLon(48, 2, 200), 0.25)\n            self.test('intermediateTo-h', i.height, '125.000', prec=3)\n\n        if hasattr(LatLon, 'intermediateChordTo'):\n            i = p.intermediateChordTo(q, 0.25)\n            self.test('intermediateChordTo', i, '51.372294°N, 000.707192°E')\n            self.test('intermediateChordTo', isinstance(i, LatLon), True)\n\n            # courtesy of U{Inmars Didaitis (bakakaldsas)<https://GitHub.com/bakakaldsas>}\n            i = LatLon(52, 0, 100).intermediateChordTo(LatLon(48, 2, 200), 0.25)\n            self.test('intermediateChordTo-h', i.height, '125.000', fmt='%.3f')\n\n        if hasattr(LatLon, 'midpointTo'):\n            m = p.midpointTo(q)\n            self.test('midpointTo', m, '50.536327°N, 001.274614°E' if Sph or Nv  # 50.5363°N, 001.2746°E\n                                  else '50.536583°N, 001.274507°E')\n\n        if hasattr(LatLon, 'destination'):\n            p = LatLon(51.4778, -0.0015)\n            d = p.destination(7794, 300.7)\n            self.test('destination', d, '51.513546°N, 000.098345°W' if Sph\n                                   else '51.513526°N, 000.098038°W')  # 51.5135°N, 0.0983°W ???\n            self.test('destination', d.toStr(F_DMS, prec=0), '51°30′49″N, 000°05′54″W' if Sph\n                                                        else '51°30′49″N, 000°05′53″W')\n            # <https://www.EdWilliams.org/avform.htm#LL>\n            d = LAX.destination(100, 66, radius=R_NM) if Sph else LAX.destination(100, 66)\n            self.test('destination', d.toStr(F_DM, prec=0), \"34°37′N, 116°33′W\" if Sph\n                                                       else \"33°57′N, 118°24′W\")\n            self.test('destination', d, '34.613647°N, 116.55116°W' if Sph\n                                   else '33.950367°N, 118.399012°W')\n            self.test('destination', d.toStr(F_RAD, prec=6), '0.604122N, 2.034201W' if Sph\n                                                        else '0.592546N, 2.066453W')  # PYCHOK expected\n            # <https://GeographicLib.SourceForge.io/html/python/examples.html>\n            d = LatLon(-32.06, -115.74).destination(20e6, 225).toStr(F_D, prec=8)\n            self.test('destination', d, '31.96383509°N, 064.37329146°E' if Sph\n                                   else '32.11195529°N, 063.95925278°E', known=True)\n\n        if hasattr(LatLon, 'alongTrackDistanceTo'):\n            s = LatLon(53.3206, -1.7297)\n            e = LatLon(53.1887, 0.1334)\n            p = LatLon(53.2611, -0.7972)\n            try:\n                d = p.alongTrackDistanceTo(s, 96)  # XXX  TypeError.__name__\n                self.test('alongTrackDistanceTo', d, '62331.59', fmt='%.2f', known=True)  # 62331\n            except TypeError as x:\n                self.test('alongTrackDistanceTo', str(x), 'incompatible ...', known=True)\n            d = p.alongTrackDistanceTo(s, e)\n            self.test('alongTrackDistanceTo', d, '62331.58', fmt='%.2f')\n\n            # <https://www.EdWilliams.org/avform.htm#XTE>\n            p = LatLon(34.5, -116.5)  # 34:30N, 116:30W\n            d = p.alongTrackDistanceTo(LAX, JFK, radius=Rav)\n            self.test('alongTrackDistanceTo', d, '99.588', fmt='%.3f')  # NM\n\n            # courtesy of Rimvydas Naktinis\n            p = LatLon(53.36366, -1.83883)\n            d = p.alongTrackDistanceTo(s, e)\n            self.test('alongTrackDistanceTo', d, '-7702.7', fmt='%.1f')\n\n            p = LatLon(53.35423, -1.60881)\n            d = p.alongTrackDistanceTo(s, e)\n            self.test('alongTrackDistanceTo', d, '7587.6', fmt='%.1f')\n\n        if hasattr(LatLon, 'crossTrackDistanceTo'):\n            s = LatLon(53.3206, -1.7297)\n            e = LatLon(53.1887, 0.1334)\n            p = LatLon(53.2611, -0.7972)\n            try:\n                d = p.crossTrackDistanceTo(s, 96)\n                self.test('crossTrackDistanceTo', d, TypeError.__name__, known=True)\n            except TypeError as x:\n                self.test('crossTrackDistanceTo', str(x), 'incompatible ...', known=True)\n            d = p.crossTrackDistanceTo(s, e)\n            self.test('crossTrackDistanceTo', d, '-307.55', fmt='%.2f')  # -307.5\n\n            # <https://www.EdWilliams.org/avform.htm#XTE>\n            p = LatLon(34.5, -116.5)  # 34:30N, 116:30W\n            d = p.crossTrackDistanceTo(LAX, JFK, radius=Rav)\n            self.test('crossTrackDistanceTo', d, '7.4524', fmt='%.4f')  # XXX 7.4512 NM\n\n        if hasattr(LatLon, 'greatCircle'):\n            p = LatLon(53.3206, -1.7297)\n            gc = p.greatCircle(96.0)\n            self.test('greatCircle', gc, '(-0.79408, 0.12856, 0.59406)')\n\n        if hasattr(LatLon, 'nearestOn6'):\n            b = LatLon(45, 1), LatLon(45, 2), LatLon(46, 2), LatLon(46, 1)\n            p = LatLon(1, 1).nearestOn6(b, height=0)\n            self.test('neareston6', p, '(LatLon(45°00′00.0″N, 001°00′00.0″E), 4755443.4294, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E))', known=not X)\n            p = LatLon(45.5, 2.5).nearestOn6(b, height=0)\n            self.test('neareston6', p, '(LatLon(45°30′03.94″N, 002°00′00.0″E), 39078.729285, 1.501072, 2, LatLon(45°00′00.0″N, 002°00′00.0″E), LatLon(46°00′00.0″N, 002°00′00.0″E))', known=not X)\n\n        p = LatLon(53.3206, -1.7297)\n        q = LatLon(53.1887, 0.1334)\n        self.test('chordTo', p.chordTo(q), '124799.103' if Sph else '125203.963', fmt='%.3f')\n\n        self.test('cosineAndoyerLambertTo', p.cosineAndoyerLambertTo(q), '124801.098' if Sph else '125205.962', fmt='%.3f')\n        self.test('cosineAndoyerLambertTo', q.cosineAndoyerLambertTo(p), '124801.098' if Sph else '125205.962', fmt='%.3f')\n\n        self.test('cosineForsyheAndoyerLambertTo', p.cosineForsytheAndoyerLambertTo(q), '124801.098' if Sph else '125205.965', fmt='%.3f')\n        self.test('cosineForsyheAndoyerLambertTo', q.cosineForsytheAndoyerLambertTo(p), '124801.098' if Sph else '125205.965', fmt='%.3f')\n\n        self.test('cosineLawTo', p.cosineLawTo(q), '124801.098', fmt='%.3f')\n        self.test('cosineLawTo', q.cosineLawTo(p), '124801.098', fmt='%.3f')\n\n        self.test('equirectangularTo', p.equirectangularTo(q), '124804.754', fmt='%.3f')\n        self.test('equirectangularTo', q.equirectangularTo(p), '124804.754', fmt='%.3f')\n\n        self.test('euclideanTo', p.euclideanTo(q), '130015.089', prec=3)  # XXX 131273.287 @ _0_5\n        self.test('euclideanTo', q.euclideanTo(p), '130015.089', prec=3)\n\n        self.test('flatLocalTo', p.flatLocalTo(q), '124804.754' if Sph else '125209.633', fmt='%.3f')\n        self.test('flatLocalTo', q.flatLocalTo(p), '124804.754' if Sph else '125209.633', fmt='%.3f')\n\n        self.test('flatPolarTo', p.flatPolarTo(q), '133663.257', fmt='%.3f')\n        self.test('flatPolarTo', q.flatPolarTo(p), '133663.257', fmt='%.3f')\n\n        self.test('hartzell', p.hartzell(), p)  # '53.3206°N, 001.7297°W'\n        c = p.toCartesian()  # pos 1,000 km up, los non-None, height is near 0\n        t = c.toLatLon(height=1e6).hartzell(los=c.negate()).toStr(form=F_D, prec=6, m=None)\n        self.test('hartzell', t, '53.3206°N, 001.7297°W' if Sph else '53.349541°N, 001.7297°W')\n\n        h = p.height4().h\n        self.test('height4', h, float(p.height), known=abs(h) < 2e-9)\n        self.test('height4', p.height4(earth=R_M).toStr(prec=1), '(3803904.2, -114870.8, 5109488.3, 0.0)' if Sph\n                                                            else '(3820333.9, -115367.0, 5097204.4, -6584.9)')\n        for n in (True, False):\n            t = p.height4(LatLon=LatLon, normal=n, height=0)\n            self.test('height4', t.toStr(prec=1), '53°19′14.2″N, 001°43′46.9″W')\n\n        self.test('haversineTo', p.haversineTo(q), '124801.098', fmt='%.3f')\n        self.test('haversineTo', q.haversineTo(p), '124801.098', fmt='%.3f')\n\n        self.test('hubenyTo', p.hubenyTo, p.flatLocalTo)\n        self.test('hubenyTo', q.hubenyTo, q.flatLocalTo)\n\n        self.test('thomasTo', p.thomasTo(q), '124801.098' if Sph else '125206.188', fmt='%.3f')\n        self.test('thomasTo', q.thomasTo(p), '124801.098' if Sph else '125206.188', fmt='%.3f')\n\n        self.test('vincentysTo', p.vincentysTo(q), '124801.098', fmt='%.3f')\n        self.test('vincentysTo', q.vincentysTo(p), '124801.098', fmt='%.3f')\n\n        if hasattr(LatLon, 'greatCircleTo'):\n            gc = p.greatCircleTo(q)\n            self.test('greatCircleTo', gc, '(-0.79408, 0.12859, 0.59406)')\n\n        if isclockwise:\n            f = LatLon(45,1), LatLon(45,2), LatLon(46,2), LatLon(46,1)\n            for _ in self.testiter():\n                self.test('isclockwise', isclockwise(f), False)\n            t = LatLon(45,1), LatLon(46,1), LatLon(46,2), LatLon(45,1)\n            for _ in self.testiter():\n                self.test('isclockwise', isclockwise(t), True)\n            for _ in self.testiter():\n                try:\n                    self.test('isclockwise', isclockwise(t[:2]), ValueError.__name__)\n                except ValueError as x:\n                    self.test('isclockwise', str(x), 'points (2): too few', known=True)\n            # <https://blog.Element84.com/determining-if-a-spherical-polygon-contains-a-pole.html>\n            p = LatLon(85, -135), LatLon(85, -45), LatLon(85, 45), LatLon(85, 135), LatLon(85, -135)\n            for _ in self.testiter():\n                try:\n                    self.test('isclockwise', isclockwise(p), ValueError.__name__)\n                except ValueError as x:\n                    self.test('isclockwise', str(x), 'zero or polar area', known=True)\n\n        if isconvex:\n            f = LatLon(45,1), LatLon(46,2), LatLon(45,2), LatLon(46,1)\n            for _ in self.testiter():\n                self.test('isconvex', isconvex(f), False)\n            t = LatLon(45,1), LatLon(46,1), LatLon(46,2), LatLon(45,1)\n            for _ in self.testiter():\n                self.test('isconvex', isconvex(t), True)\n            for _ in self.testiter():\n                try:\n                    self.test('isconvex', isconvex(t[:2]), ValueError.__name__)\n                except ValueError as x:\n                    self.test('isconvex', str(x), 'points (2): too few', known=True)\n\n        if isenclosedBy:\n            b = LatLon(45, 1), LatLon(45, 2), LatLon(46, 2), LatLon(46, 1)\n            for _ in self.testiter():\n                self.test('isenclosedBy1', isenclosedBy(LatLon(45.5, 1.5), b), True)\n            for _ in self.testiter():  # on polygon point is outside\n                self.test('isenclosedBy2', isenclosedBy((46, 2), b), False)\n            for _ in self.testiter():  # on polygon point is outside\n                self.test('isenclosedBy3', isenclosedBy((46, 1), b), False)\n            for _ in self.testiter():  # on polygon edge is outside\n                self.test('isenclosedBy4', isenclosedBy((46, 1.5), b), False)\n            for _ in self.testiter():  # on polygon is False\n                self.test('isenclosedBy5', isenclosedBy((45.5, 1), b), False)\n            p = LatLon(85, 90), LatLon(85, 0), LatLon(85, -90), LatLon(85, -180)\n            for _ in self.testiter():\n                self.test('isenclosedBy6', isenclosedBy((90, 0), p), 'True')\n            p = LatLon(85, 90), LatLon(85, 0), LatLon(85, -90)\n            for _ in self.testiter():\n                self.test('isenclosedBy7', isenclosedBy((90, 0), p), 'True')\n\n        if hasattr(LatLon, 'isenclosedBy'):\n            # courtesy of U{Maranov<https://GitHub.com/mrJean1/PyGeodesy/issues/53>}\n            b = LatLon(0, 0), LatLon(0, 1), LatLon(0, 1), LatLon(1, 1), LatLon(1, 0)\n            for t in ('CCW', 'CW ', 'CCW'):\n                self.test('isenclosedBy-' + t, LatLon(0.5, 0.5).isenclosedBy(b), True)\n                b = tuple(reversed(b))\n\n        if hasattr(LatLon, 'initialBearingTo'):\n            b = LHR.initialBearingTo(FRA)\n            self.test('initialBearingTo', b, '102.432182' if Sph else '102.392291', fmt='%.6f')\n        a = LHR.compassAngleTo(FRA, adjust=False)\n        self.test('compassAngleTo', a, '100.017', fmt='%.3f')\n        a = LHR.compassAngleTo(FRA)  # adjust=True\n        self.test('compassAngleTo', a, '105.599', fmt='%.3f')\n\n        if hasattr(LatLon, 'initialBearingTo'):\n            b = FRA.initialBearingTo(LHR)\n            self.test('initialBearingTo', b, '288.715918' if Sph else '288.676039', fmt='%.6f')\n        a = FRA.compassAngleTo(LHR, adjust=False)\n        self.test('compassAngleTo', a, '280.017', fmt='%.3f')\n        a = FRA.compassAngleTo(LHR)  # adjust=True\n        self.test('compassAngleTo', a, '285.599', fmt='%.3f')\n\n        d = LHR.equirectangularTo(FRA)\n        self.test('equirectangularTo', m2km(d), '592.185', fmt='%.3f')\n        if hasattr(LatLon, 'distanceTo'):\n            d = LHR.distanceTo(FRA)\n            self.test('distanceTo', m2km(d), '591.831' if Sph else ('591.831' if Nv else '593.571'), fmt='%.3f')\n\n        p = LatLon(0, 0)\n        for a, b, d in ((1, 0, 0.0), ( 1, 1,  45.0), ( 0,  1,  90.0),\n                                     (-1, 0, 180.0), (-1, -1, 225.0),\n                                     (1, -1, 315.0), ( 0, -1, 270.0),\n                                     (90, -1, 359.4)):\n            q = LatLon(p.lat + a, p.lon + b)\n            if not Nv:\n                b = p.initialBearingTo(q)\n                self.test('bearingTo', b, d, fmt='%.1f', known=True)\n            c = p.compassAngleTo(q, adjust=False)\n            self.test('compassAngleTo', c, d, fmt='%.1f')\n\n        p.lat, p.lon = 52, '0'  # coverage\n        q = LatLon(p.lat + 1, p.lon + 1)  # 45 unadjusted\n        self.test('latlon2', q.latlon2(1), '(53.0, 1.0)')\n        self.test('philam2', q.philam2(2), '(0.93, 0.02)')\n        if not Nv:\n            b = p.initialBearingTo(q)\n            self.test('bearingTo', b, 31.0, fmt='%.0f')\n        c = p.compassAngleTo(q, adjust=True)\n        self.test('compassAngleTo', c, 31.0, fmt='%.0f')\n        c = p.compassAngleTo(q, adjust=False)\n        self.test('compassAngleTo', c, 45.0, fmt='%.0f', nt=1)\n\n        # check return types\n        self.testReturnType(p.boundsOf(2, 4), Bounds2Tuple, 'boundsOf')\n        self.testReturnType(p.latlon,         LatLon2Tuple, 'latlon')\n        self.testReturnType(p.latlon2(),      LatLon2Tuple, 'latlon2')\n        self.testReturnType(p.latlonheight,   LatLon3Tuple, 'latlonheight')\n#       self.testReturnType(p.height4(),      Vector4Tuple, 'height4')\n        self.testReturnType(p.isequalTo(p),   bool,         'isequalTo')\n        self.testReturnType(p.philam,         PhiLam2Tuple, 'philam')\n        self.testReturnType(p.philamheight,   PhiLam3Tuple, 'philamheight')\n#       self.testReturnType(p.to2ab(),        PhiLam2Tuple, 'to2ab')\n#       self.testReturnType(p.to3llh(0),      LatLon3Tuple, 'to3llh')\n#       self.testReturnType(p.to3xyz(),       Vector3Tuple, 'to3xyz')\n        self.testReturnType(p.xyz,            Vector3Tuple, 'xyz')\n        self.testReturnType(p.xyz3,           tuple, 'xyz3')\n        self.testReturnType(p.xyzh,           Vector4Tuple, 'xyzh')\n\n        self.testReturnType(p.compassAngleTo(q), float, 'compassAngleTo')\n        self.testReturnType(p.cosineLawTo(q),    float, 'cosineLawTo')\n        self.testReturnType(p.euclideanTo(q),    float, 'euclideanTo')\n        self.testReturnType(p.flatLocalTo(q),    float, 'flatLocalTo')\n        self.testReturnType(p.flatPolarTo(q),    float, 'flatPolarTo')\n        self.testReturnType(p.haversineTo(q),    float, 'haversineTo')\n        self.testReturnType(p.hubenyTo(q),       float, 'hubenyTo')\n        self.testReturnType(p.vincentysTo(q),    float, 'vincentysTo')\n\n        self.testReturnType(p.toAer(),   Aer,      'toAer')\n        self.testReturnType(p.toEnu(),   Enu,      'toEnu')\n        self.testReturnType(p.toLocal(), Local9Tuple, 'toLocal')\n        self.testReturnType(p.toLtp(),   Ltp,      'toLtp')\n        self.testReturnType(p.toNed(),   Ned,      'toNed')\n        self.testReturnType(p.toXyz(),   XyzLocal, 'toXyz')\n\n        if not Nv:\n            # XXX prec=5 for NvectorBase.toStr vs prec=6 for Vector3Tuple.toStr\n            self.test('toNvector', p.toNvector(), '(0.61566, 0.0, 0.78801' if Sph\n                                             else '(0.615661, 0.0, 0.788011', known=startswith)\n        self.test('toVector',   p.toVector(), '(3922384.659522, 0.0, 5020423.423198)' if Sph\n                                         else '(3934960.466675, 0.0, 5002803.345483)')  # (0.615661, 0.0, 0.788011)\n        self.test('toVector3d', p.toVector3d(), '(0.61566, 0.0, 0.78801)' if Sph\n                                           else '(0.61823, 0.0, 0.786)')  # (0.61566, 0.0, 0.78801)')\n\n        # courtesy of U{AleixDev<https://GitHub.com/mrJean1/PyGeodesy/issues/43>}\n        def _known(p):\n            return int(p.lat) == 42 and int(p.lon) == 2\n\n        n  = 'trilaterate5 (%s) .' % (LatLon.__module__,)\n        d  = 5110  # meter\n        p1 = LatLon(42.688839, 2.438857)\n        p2 = LatLon(42.635421, 2.522570)\n\n        p3 = LatLon(42.630788, 2.500713)\n        if Nv:  # coverage\n            t = p1.trilaterate5(d, p2, d, p3, d, area=False, eps=250)  # intersection\n            self.test(n + 'min', t.min, '223.305', prec=3, known=120 < t.min < 150)\n            p = t.maxPoint\n            self.test(n + 'point', p.toStr(F_D, prec=8), '42.67456065°N, 002.49539502°E', known=_known(p))\n            self.test(n + 'min- is .maxPoint', t.minPoint is t.maxPoint, True, known=Sph)\n            self.test(n + 'n', t.n, t.n)\n\n        try:\n            t = p1.trilaterate5(d, p2, d, p3, d, area=True)  # overlap\n            self.test(n + 'min', t.min, '313.671' if Sph\n                                  else ('305.091' if geographiclib\n                                  else  '311.234'), prec=3, known= 300 < t.min <  320, nl=1)\n            p = t.minPoint\n            self.test(n + 'point', p.toStr(F_D, prec=8), '42.66937229°N, 002.48639477°E' if Sph\n                                                   else ('42.66933643°N, 002.48620262°E' if geographiclib\n                                                   else  '42.66938776°N, 002.48641176°E'), known=_known(p))\n            self.test(n + 'max', t.max, '1591.044' if Sph\n                                  else ('1592.545' if geographiclib\n                                  else  '1586.951'), prec=3, known=1570 < t.max < 1610)\n            p = t.maxPoint\n            self.test(n + 'point', p.toStr(F_D, prec=8), '42.65153054°N, 002.46822157°E' if Sph\n                                                   else ('42.65141232°N, 002.46816989°E' if geographiclib\n                                                   else  '42.65153156°N, 002.46821899°E'), known=_known(p))\n            self.test(n + 'n', t.n, t.n)\n\n            t = p1.trilaterate5(d, p2, d, p3, d, area=False, eps=250)  # intersection\n            self.test(n + 'min', t.min, '133.815' if Sph\n                                  else ('127.229' if geographiclib\n                                  else  '137.897'), prec=3, known=120 < t.min < 150)\n            self.test(n + 'max', t.max, '160.242' if Sph\n                                  else ('152.612' if geographiclib\n                                  else  '148.175'), prec=3, known=120 < t.max < 170)\n            p = t.maxPoint\n            self.test(n + 'point', p.toStr(F_D, prec=8), '42.67817811°N, 002.49966641°E' if Sph\n                                                   else ('42.67815375°N, 002.49950041°E' if geographiclib\n                                                   else  '42.67811504°N, 002.49959193°E'), known=_known(p))\n            self.test(n + 'n', t.n, t.n)\n\n            p3 = LatLon(42.64540, 2.504811)\n            t = p1.trilaterate5(d, p2, d, p3, d, area=True)  # overlap\n            x = '2403.293' if Sph else ('2400.293' if geographiclib else '2399.908')\n            self.test(n + 'min', t.min, x, prec=3, known=2380 < t.min < 2420)\n            self.test(n + 'max', t.max, x, prec=3, known=2380 < t.max < 2420)\n            p = t.maxPoint\n            self.test(n + 'point', p.toStr(F_D, prec=8), '42.66135649°N, 002.47981645°E' if Sph\n                                                   else ('42.66128984°N, 002.47973818°E' if geographiclib\n                                                   else  '42.6613586°N, 002.47981223°E'), known=_known(p))\n            self.test(n + 'min- is .maxPoint', t.minPoint is t.maxPoint, True)\n            self.test(n + 'n', t.n, t.n)\n\n            t = p1.trilaterate5(d, p2, d, p3, d, area=False, eps=1500)  # intersection\n            self.test(n + 'min', t.min, '1340.608' if Sph\n                                  else ('1343.743' if geographiclib\n                                  else  '1332.749'), prec=3, known=1320 < t.min < 1360)\n            p = t.minPoint\n            self.test(n + 'point', p.toStr(F_D, prec=8), '42.69128229°N, 002.50129001°E' if Sph\n                                                   else ('42.69131964°N, 002.50112167°E' if geographiclib\n                                                   else  '42.69124153°N, 002.50124031°E'), known=_known(p))\n            self.test(n + 'max', t.max, '1499.220' if Sph\n                                  else ('1445.554' if geographiclib\n                                  else  '1450.709'), prec=3, known=1420 < t.max < 1520)\n            p = t.maxPoint\n            self.test(n + 'point', p.toStr(F_D, prec=8), '42.64295864°N, 002.44242391°E' if Sph\n                                                   else ('42.67815375°N, 002.49950041°E' if geographiclib\n                                                   else  '42.67811504°N, 002.49959193°E'), known=_known(p))\n            self.test(n + 'n', t.n, t.n)\n\n            k = (isPyPy and isPython2) or Sph or not X\n            t = repr(p1.radii11(p2, p3))\n            self.test('radii11', t, t, known=k)\n\n            n = 'circum3 (%s) .' % (LatLon.__module__,)\n            t = p1.circum3(p2, p3)\n            c = t.center\n            self.test(n + 'radius', t.radius, '57792.067', prec=3, known=k)\n            self.test(n + 'center', c, '43.053532°N, 002.943255°E, -261.66m', known=k)\n            d = t.deltas\n            self.test(n + 'deltas', d.toStr(prec=3), '(0.0, 0.0, 11.383)', known=k or isnear0(d.lat, 1e-8) or isnear0(d.lon, 1e-8))\n\n            c.height = 0\n            self.test(n + 'd1', p1.distanceTo(c), '57792.858', prec=3, known=k)\n            self.test(n + 'd2', p2.distanceTo(c), '57792.859', prec=3, known=k)\n            self.test(n + 'd3', p3.distanceTo(c), '57792.859', prec=3, known=k)\n\n            self.test(n + 'datum', c.datum, p1.datum)\n            self.test(n + 'Ecef',  c.Ecef,  p1.Ecef)\n\n        except ImportError as x:\n            self.skip(str(x), n=27)\n        except IntersectionError as x:\n            self.test(n + 'error', str(x), str(x))\n        except NotImplementedError as x:\n            self.test(n + 'error', str(x), str(x) if Nv else NotImplementedError.__name__)\n\n        try:  # need numpy\n            k = (isPyPy and isPython2) or Sph or not X\n            t = repr(p1.radii11(p2, p3))\n            self.test('radii11', t, t, known=k, nl=1)\n\n            n = 'circum4 (%s) .' % (LatLon.__module__,)\n            t = p1.circum4_(p2, p3)\n            c = t.center\n            self.test(n + 'radius', t.radius, '3184256.748', prec=3, known=k)\n            self.test(n + 'center', c, '43.054367°N, 002.942573°E, -3183993.92m', known=k)\n            self.test(n + 'rank', t.rank, 3, known=k)\n            self.test(n + 'residuals', t.residuals, (), known=k)\n\n            c.height = 0\n            self.test(n + 'd1', p1.distanceTo(c), '57818.033', prec=3, known=k)\n            self.test(n + 'd2', p2.distanceTo(c), '57834.176', prec=3, known=k)\n            self.test(n + 'd3', p3.distanceTo(c), '57830.992', prec=3, known=k)\n\n            self.test(n + 'datum', c.datum, p1.datum)\n            self.test(n + 'Ecef',  c.Ecef,  p1.Ecef)\n\n            n = 'circin6 (%s) .' % (LatLon.__module__,)\n            t = LatLon(0, 0).radii11(LatLon(10, 0), LatLon(0, 10))\n            r = t.toRepr()\n            self.test('radii11', r, r, known=k)\n            self.test(n + 'rB+rC', t.rB + t.rC, t.a, known=k, prec=3)\n            self.test(n + 'rC+pA', t.rC + t.rA, t.b, known=k, prec=3)\n            self.test(n + 'rA+rB', t.rA + t.rB, t.c, known=k, prec=3)\n\n            t = LatLon(0, 0).circin6(LatLon(10, 0), LatLon(0, 10))  # XXX no intersection\n            c = t.center\n            self.test(n + 'radius', t.radius, '325058.721', prec=3, known=k)\n            self.test(n + 'center', c, '02.948531°N, 002.932537°E, -40041.19m', known=k)\n            self.test(n + 'deltas', t.deltas, '(0.0, 0.0, 0.090491)', known=True)  # XXX\n\n            self.test(n + 'cA', t.cA, '05.04314°N, 005.014578°E, -48104.09m', known=k)\n            self.test(n + 'cB', t.cB, '00.0°N, 002.941713°E, -20168.62m', known=k)\n            self.test(n + 'cC', t.cC, '02.961566°N, 000.0°E, -20113.46m', known=k)\n\n            # c.height = 0\n            self.test(n + 'dA', c.distanceTo(t.cA), '327263.596', prec=3, known=k)\n            self.test(n + 'dB', c.distanceTo(t.cB), '326036.153', prec=3, known=k)\n            self.test(n + 'dC', c.distanceTo(t.cC), '326020.432', prec=3, known=k)\n\n        except ImportError as x:\n            self.skip(str(x), n=22)\n\n        try:  # courtesy of theirix <https://GitHub.com/mrJean1/PyGeodesy/issues/71>\n            a = module.areaOf\n            b = LatLon(22, 10),  LatLon(20, 10), LatLon(20, 11), LatLon(21, 11)\n            r = a(reversed(b))\n            f = a(b)  # ccw\n            self.test('area cw/ccw', (r / f), 1.0, nl=1)\n        except AttributeError:  # no areaOf\n            pass\n\n    def testReturnType(self, inst, clas, name):\n        self.test(name, type(inst), clas)  # type(inst).__name__ == clas.__name__\n\n\nif __name__ == '__main__':\n\n    from pygeodesy import ellipsoidalExact, ellipsoidalNvector, ellipsoidalVincenty, \\\n                          sphericalNvector, sphericalTrigonometry\n\n    t = Tests(__file__, __version__)\n\n    t.testLatLon(sphericalNvector, Sph=True, Nv=True)\n    t.testLatLon(sphericalTrigonometry, Sph=True)\n\n    t.testLatLon(ellipsoidalNvector, Nv=True)\n    t.testLatLon(ellipsoidalVincenty)\n\n    if geographiclib:\n        from pygeodesy import ellipsoidalKarney\n        t.testLatLon(ellipsoidalKarney)\n\n    if GeodSolve:\n        from pygeodesy import ellipsoidalGeodSolve\n        t.testLatLon(ellipsoidalGeodSolve, GS=True)\n\n    t.testLatLon(ellipsoidalExact, X=True)\n\n    t.results()\n    t.exit()\n"
  },
  {
    "path": "test/testLatLonBase.py",
    "content": "\n# -*- coding: utf-8 -*-\n\n# Test L{LatLonBase} classes.\n\n__all__ = ('Tests',)\n__version__ = '23.10.15'\n\nfrom bases import GeodSolve, TestsBase\n\nfrom pygeodesy import clips, F_D, F_DMS, isCartesian, isLatLon, isNvector, precision\n\n\nclass Tests(TestsBase):\n\n    def testBases(self, module, LatLon, Base=False, Sph=False):\n\n        self.subtitle(module, LatLon.__name__)\n\n        p = LatLon(50.06632, -5.71475)\n        self.test('lat, lon', p, '50.06632°N, 005.71475°W')\n        q = LatLon('50°03′59″N', \"\"\"005°42'53\"W\"\"\")\n        self.test('lat, lon', q, '50.066389°N, 005.714722°W')\n\n        p = LatLon(52.205, 0.119)\n        q = p.copy()  # LatLon(52.205, 0.119)\n        self.test('isequalTo',  q.isequalTo(p), True)\n        self.test('isequalTo3', q.isequalTo3(p), True)\n\n        self.test('latlon',       q.latlon, p.latlon)\n        self.test('latlonheight', q.latlonheight, p.latlonheight)\n        self.test('phimlam',       q.philam, p.philam)\n        self.test('phimlamheight', q.philamheight, p.philamheight)\n\n        q = LatLon(48.857, 2.351)\n        self.test('isequalTo', p.isequalTo(q), False)\n\n        a = p.antipode()\n        self.test('antipode1', a, '52.205°S, 179.881°W')\n        self.test('antipode2', a.isantipodeTo(p), True)\n        b = a.antipode()\n        self.test('antipode3', b, '52.205°N, 000.119°E')\n        self.test('antipode4', a.isantipodeTo(b), True)\n        self.test('antipode5', b, p)\n\n        self.test('isnormal1', q.isnormal, True)\n        # XXX force lat, lon around clip/Limit-/RangeErrors\n        q._update(True, _lat=q.lat + 99, _lon=q.lon - 188)\n        self.test('isnormal2', q.isnormal, False)\n        self.test('normal1', q.normal(), False)\n        self.test('normal2', q.normal(), True)\n\n        t = precision(F_DMS, 0)\n        p = LatLon(51.4778, -0.0016)\n        self.test('toStr', p.toStr(), '''51°28'40\"N, 000°00'06\"W''')\n        self.test('toStr', p.toStr(F_D), '51.4778°N, 000.0016°W')\n\n        self.test('precision', precision(F_DMS), 0)\n        p = LatLon(51.4778, -0.0016, 42)\n        self.test('toStr', p.toStr(), '''51°28'40\"N, 000°00'06\"W, +42.00m''')\n        precision(F_DMS, t)  # restore\n\n        q.latlon = p.latlon\n        self.test('isequalTo',  q.isequalTo(p), True)\n        self.test('isequalTo3', q.isequalTo3(p), False)\n\n        self.test('latlon', q.latlon, p.latlon)\n        self.test('phimlam', q.philam, p.philam)\n\n        q.latlon = p.latlon + (p.height,)\n        self.test('isequalTo', q.isequalTo(p), True)\n        self.test('isequalTo3', q.isequalTo3(p), True)\n\n        self.test('latlon',       q.latlon, p.latlon)\n        self.test('latlonheight', q.latlonheight, p.latlonheight)\n        self.test('phimlam',       q.philam, p.philam)\n        self.test('phimlamheight', q.philamheight, p.philamheight)\n\n        self.test('latlon',       repr(q.latlon), repr(p.latlon))\n        self.test('latlonheight', repr(q.latlonheight), repr(p.latlonheight))\n        self.test('phimlam',       repr(q.philam), repr(p.philam))\n        self.test('phimlamheight', repr(q.philamheight), repr(p.philamheight))\n\n        self.test('ellipsoidalLatLon', p.ellipsoidalLatLon in (LatLon, False), True)\n        self.test('sphericalLatLon',   p.sphericalLatLon   in (LatLon, False), True)\n\n        q = LatLon(50.964, 1.853)\n        if Base:\n            for f in (isCartesian, isLatLon, isNvector):\n                t = '%s(%s, %%s)' % (f.__name__, LatLon.__name__)\n                for e in (None, True, False):\n                    r = f(q, ellipsoidal=e)\n                    self.test(t % (e,), r, r)\n        else:  # coverage\n            t = clips(p.rhumbLine(30).toStr(), limit=150)\n            self.test('rhumbLine', t, t, nl=1)\n            t = clips(p.rhumbLine(q).toStr(), limit=150)\n            self.test('rhumbLine', t, t)\n\n            # same rhumb test as testSpherical, invoking rhumb*.Rhumb[Line]\n            # with exact=False for all tests and the differences between\n            # the ellipsoidal and spherical cases are due to the ellipsoid.\n            p = LatLon(51.127, 1.338)\n            z = p.rhumbAzimuthTo(q, exact=Sph)\n            self.test('rhumbAzimuthTo', z, 107.563 if Sph else 116.661, fmt='%.3f')\n\n            d = p.rhumbDestination(40300, 116.7, exact=Sph)\n            self.test('rhumbDestination', d, '50.964155°N, 001.853°E' if Sph\n                                        else '50.964234°N, 001.851383°E')\n            self.test('rhumbDestination', isinstance(d, LatLon), True)\n\n            d = p.rhumbDistanceTo(q, exact=Sph)  # force rhumb*.Rhumb[Line]\n            self.test('rhumbDistanceTo', d, 42186.1 if Sph else 40413.1, fmt='%.1f')\n\n            t = str(p.rhumbIntersecant2(3.33e6, LatLon(30, 1.338), 45))\n            self.test('rhumbIntersecant2', t, t)\n\n            m = p.rhumbMidpointTo(q, exact=Sph)  # ditto\n            self.test('rhumbMidpointo-0.5', m, '51.069759°N, 001.625988°E' if Sph\n                                          else '51.045501°N, 001.595726°E')\n            self.test('rhumbMidpointo', isinstance(m, LatLon), True)\n            m = p.rhumbMidpointTo(q, exact=Sph, fraction=0)  # ditto\n            self.test('rhumbMidpointo-0.0', m, '51.127°N, 001.338°E')\n            m = p.rhumbMidpointTo(q, exact=Sph, fraction=0.25)  # ditto\n            self.test('rhumbMidpointo-0.25', m, '51.09838°N, 001.482038°E' if Sph\n                                           else '51.08625°N, 001.46692°E')\n            m = p.rhumbMidpointTo(q, exact=Sph, fraction=0.75)  # ditto\n            self.test('rhumbMidpointo-0.75', m, '51.041139°N, 001.769848°E' if Sph\n                                           else '51.00475°N, 001.724419°E')\n            m = p.rhumbMidpointTo(q, exact=Sph, fraction=1)  # ditto\n            self.test('rhumbMidpointo-1.0', m, '51.012519°N, 001.913619°E' if Sph\n                                          else '50.964°N, 001.853°E')\n            m = p.rhumbMidpointTo(q, exact=Sph, fraction=2)  # ditto\n            self.test('rhumbMidpointo-2.0', m, '50.898038°N, 002.48782°E' if Sph\n                                          else '50.800995°N, 002.366201°E')\n\n\nif __name__ == '__main__':\n\n    from pygeodesy import ellipsoidalExact, ellipsoidalKarney, \\\n                          ellipsoidalNvector, ellipsoidalVincenty, \\\n                          sphericalNvector, sphericalTrigonometry, \\\n                          LazyImportError\n\n    t = Tests(__file__, __version__)\n\n    t.testBases(sphericalNvector, sphericalNvector.LatLon, Sph=True)\n    t.testBases(sphericalTrigonometry, sphericalTrigonometry.LatLon, Sph=True)\n\n    t.testBases(ellipsoidalNvector, ellipsoidalNvector.LatLon)\n    t.testBases(ellipsoidalVincenty, ellipsoidalVincenty.LatLon)\n    t.testBases(ellipsoidalKarney, ellipsoidalKarney.LatLon)\n    t.testBases(ellipsoidalExact, ellipsoidalExact.LatLon)\n\n    if GeodSolve:\n        from pygeodesy import ellipsoidalGeodSolve\n        t.testBases(ellipsoidalGeodSolve, ellipsoidalGeodSolve.LatLon)\n\n    try:  # (INTERNAL) modules not explicitly exported\n        from pygeodesy import ellipsoidalBase, ellipsoidalBaseDI, \\\n                              latlonBase, nvectorBase, sphericalBase\n\n        t.testBases(ellipsoidalBase, ellipsoidalBase.LatLonEllipsoidalBase)\n        t.testBases(ellipsoidalBaseDI, ellipsoidalBaseDI.LatLonEllipsoidalBaseDI)\n        t.testBases(latlonBase, latlonBase.LatLonBase, Base=True)\n        t.testBases(nvectorBase, nvectorBase.LatLonNvectorBase, Base=True)\n        t.testBases(sphericalBase, sphericalBase.LatLonSphericalBase, Sph=True)\n    except LazyImportError:\n        pass\n\n    t.results()\n    t.exit()\n"
  },
  {
    "path": "test/testLazily.py",
    "content": "\n# -*- coding: utf-8 -*-\n\n# Test the lazy import module L{lazily}.\n\n__all__ = ('Tests',)\n__version__ = '25.12.06'  # '23.11.30'\n\nfrom bases import TestsBase, _env_c2, isPython37, type2str\nimport pygeodesy\n\n\nclass Tests(TestsBase):\n\n    def testLazily(self):\n\n        _all_  = pygeodesy.__all__\n        lazily = pygeodesy.lazily\n\n        for a in sorted(_all_, key=str.lower):\n            t = type2str(pygeodesy, a).replace('()', '').strip()\n            self.test(a, t, t)\n\n        z = pygeodesy.isLazy\n        self.test('isLazy', z, z, nl=1)\n        if not z:\n            for a, m in lazily._all_missing2(_all_):\n                t = all(_.startswith('rhumb.') or\n                        _.startswith('triaxials.') for _ in m) if m else False\n                m = ', '.join(m) if m else None\n                self.test('missing in %s' % (a,), m, None, known=t)\n\n        # simple lazy_import enable tests\n        env_cmd, cmd = _env_c2(\"-c 'import sys; import pygeodesy; \"\n                                   \"sys.exit(0 if pygeodesy.isLazy == %s else 1)'\")\n        self.test('cmd', cmd, cmd, nl=1)\n        if env_cmd:\n            from os import system\n            for z in range(5):\n                e = 'PYGEODESY_LAZY_IMPORT=%s' % (z,)\n                c =  env_cmd % (e, z if isPython37 else None)\n                x =  system(c) >> 8  # exit status in high byte\n                self.test(e, x, 0)\n        else:\n            self.skip('no env_cmd')\n\n        M = lazily._ALL_MODS\n        self.test('items', M.name, M.name, nl=1)\n        for n, m in sorted(M.items()):  # coverage\n            self.test(n, m, m)\n\n#       p = pygeodesy.printf\n#       t = p('to %(std)s, flushed', nl=1, std='stdout', file=sys.stdout, flush=True)\n#       self.test('%s to stdout, flushed' % (p.__name__,), t, t)\n\n\nif __name__ == '__main__':\n\n    t = Tests(__file__, __version__)\n    t.testLazily()\n    t.results()\n    t.exit()\n"
  },
  {
    "path": "test/testLcc.py",
    "content": "\n# -*- coding: utf-8 -*-\n\n# Test L{lcc} module.\n\n__all__ = ('Tests',)\n__version__ = '23.03.27'\n\nfrom bases import TestsBase\n\nfrom pygeodesy import F_D, F_DMS, Conic, Conics, Datums, Lcc, toLcc\n\n\nclass Tests(TestsBase):\n\n    def testConic(self, module, n=''):\n\n        self.subtitle(module, 'Conic')\n\n        LatLon = module.LatLon\n\n        n = 'Snyder' + str(n)\n        # Snyder, pp 297 <https://Pubs.USGS.gov/pp/1395/report.pdf>\n        c = Conic(LatLon(23, -96, datum=Datums.NAD27), 33, 45, E0=0, N0=0, name=n)\n        self.test(n, c, \"name='%s', lat0=23, lon0=-96, par1=33, par2=45, E0=0, N0=0, k0=1, SP=2, datum=Datum(name='NAD27', ellipsoid=Ellipsoids.Clarke1866, transform=Transforms.NAD27)\" % (n,))\n\n        n = '_' + n\n        c = Conic(LatLon(23, -96, datum=Datums.NAD27), 33, name=n)\n        self.test(n, c, \"name='%s', lat0=23, lon0=-96, par1=33, E0=0, N0=0, k0=1, SP=1, datum=Datum(name='NAD27', ellipsoid=Ellipsoids.Clarke1866, transform=Transforms.NAD27)\" % (n,))\n        c = c.toDatum(Datums.NAD83)\n        self.test(n, c, \"name='%s', lat0=23, lon0=-96, par1=33, E0=0, N0=0, k0=1, SP=1, datum=Datum(name='NAD83', ellipsoid=Ellipsoids.GRS80, transform=Transforms.NAD83)\" % (n,))\n\n        self.test(n + ' .auth', repr(c.auth), \"''\")\n        self.test(n + ' .opt3', c.opt3, '0.0')\n        self.test(n + ' .latlon0', c.latlon0, '(23.0, -96.0)')\n        self.test(n + ' .philam0', c.philam0, '(0.401426, -1.675516)')\n\n    def testLcc(self, module):\n\n        self.subtitle(module, 'Lcc')\n\n        LatLon = module.LatLon\n\n        lb = Lcc(448251, 5411932.0001, name='lb1')\n        self.test('lb1', lb.toStr(4), '448251.0 5411932.0001')\n        self.test('lb1', lb.toStr(sep=', '), '448251, 5411932')\n        self.test('lb1', lb.toRepr(), '[E:448251, N:5411932]')\n        self.test('lb1', lb.conic.name2, 'WRF_Lb.WGS84')\n        self.test('lb1', lb.name, 'lb1')\n        self.test('lb1', lb.latlon, '(81.929348, -79.558697)')\n        self.test('lb1', lb.philam, '(1.429937, -1.388561)')\n\n        ll = LatLon(46.5, 3)\n        self.test('LatLon', ll, '46.5°N, 003.0°E')\n        self.test('LatLon', ll.toStr(form=F_DMS), '46°30′00.0″N, 003°00′00.0″E')\n        lb = toLcc(ll, conic=Conics.Fr93Lb)\n        self.test('toLcc1', str(lb), '700000 6600000')\n        self.test('toLcc1', lb.toLatLon(LatLon), '46.5°N, 003.0°E')\n\n        lb = Lcc(1894410.9, 1564649.5, conic=Conics.Snyder, name='lb2')\n        self.test('lb2', lb, '1894411 1564650')\n        self.test('lb2', lb.conic.datum.ellipsoid.name, 'Clarke1866')\n        self.test('lb2', lb.name, 'lb2')\n        ll = lb.toLatLon(LatLon)  # Clark1866\n        self.test('toLatLon2', ll.toStr(prec=6, form=F_D), '35.0°N, 075.0°W')\n        self.test('toLatLon2', ll.toStr(prec=4, form=F_DMS), '35°00′00.0007″N, 074°59′59.9997″W')\n        self.test('toLatLon2', ll.datum.name, 'NAD27')\n        lb = toLcc(ll, conic=Conics.Snyder)\n        self.test('toLcc2', lb.toStr(prec=1), '1894410.9 1564649.5')\n        self.test('toLcc2', lb.toRepr(), '[E:1894411, N:1564649]')\n        self.test('toLcc2', lb.conic.name2, 'Snyder.NAD27', nt=1)\n\n        for n, c in Conics.items(all=True, asorted=True):\n            d = abs(c.par1 - c.par2)\n            if d > 0:  # test corners of the conic\n                for ll in (LatLon(c.par1, c.lon0 - d, datum=c.datum),\n                           LatLon(c.par1, c.lon0,     datum=c.datum),\n                           LatLon(c.par1, c.lon0 + d, datum=c.datum),\n                           LatLon(c.par2, c.lon0 - d, datum=c.datum),\n                           LatLon(c.par2, c.lon0,     datum=c.datum),\n                           LatLon(c.par2, c.lon0 + d, datum=c.datum)):\n#                   self.test(n, ll, str(ll))  # PYCHOK expected\n                    lb = toLcc(ll, conic=c)\n#                   self.test(n, lb, '')\n                    ll_ = lb.toLatLon(LatLon)\n                    self.test(n, ll, str(ll_))\n                    self.test(n, ll.datum.name, ll_.datum.name, nt=1)\n\n\nif __name__ == '__main__':\n\n    from pygeodesy import ellipsoidalNvector, ellipsoidalVincenty, lcc\n\n    # Snyder, pp 297 <https://Pubs.USGS.gov/pp/1395/report.pdf>\n    Conic(ellipsoidalVincenty.LatLon(23, -96, datum=Datums.NAD27),\n                                     33, 45, E0=0, N0=0, name='Snyder')\n\n    t = Tests(__file__, __version__, lcc)\n\n    t.testLcc(ellipsoidalNvector)\n    t.testLcc(ellipsoidalVincenty)\n\n    t.testConic(ellipsoidalNvector, 'N')\n    t.testConic(ellipsoidalVincenty, 'V')\n\n    for n in ('', 'N', 'V'):\n        Conics.unregister('Snyder' + n)\n\n    t.results()\n    t.exit()\n"
  },
  {
    "path": "test/testLtp.py",
    "content": "\n# -*- coding: utf-8 -*-\n\n# Test L{ltp} I{local tangent plane} classes.\n\n__all__ = ('Tests',)\n__version__ = '23.11.21'\n\nfrom bases import startswith, TestsBase\n\nfrom pygeodesy import Aer, Attitude, ChLV, ChLVa, ChLVe, \\\n                      EcefFarrell21, EcefFarrell22, EcefKarney, \\\n                      EcefVeness, EcefSudano, Ecef9Tuple, EcefYou, \\\n                      Enu, Frustum, fstr, LatLon_, LocalCartesian, \\\n                      Local9Tuple, Ltp, Ned, tyr3d, XyzLocal, latDMS, lonDMS\nfrom pygeodesy.deprecated import EcefCartesian  # DEPRECATED, use L{LocalCartesian}\n\n\ndef _absdiff(a, *b):\n    for a, b in zip(a, b):\n        yield abs(a - b)\n\n\nclass Tests(TestsBase):\n\n    def testLtp(self, Ltp, **kwds):\n\n        self.test(Ltp.__name__, kwds, kwds, nl=1)\n\n        # <https://GeographicLib.SourceForge.io/C++/doc/CartConvert.1.html>\n        c = Ltp(33, 44, 20, name='Test', **kwds)\n        self.test('name', c.name, 'Test')\n        t = c.toRepr()\n        self.test('toStr', t, c.classname, known=True)\n        Sudano = c.ecef.__class__ is EcefSudano\n\n        self.testCopy(c)\n        t = Ltp(c)  # like c.copy() or c.dup()\n        self.test('New', t, c)\n\n        t = c.forward(33.3, 44.4, 6000)\n        self.test('forward', fstr(t[0:3], prec=2), '37288.97, 33374.29, 5783.65')  # 5783.64\n        self.test('name', c.name, 'Test')\n\n        t = c.reverse(37288.97, 33374.29, 5783.65)\n        self.test('reverse', fstr(t[3:6], prec=2), '33.3, 44.4, 6000.0', known=Sudano)\n        self.test('name', c.name, 'Test')\n\n        # <https://SourceForge.net/p/geographiclib/code/ci/release/tree/examples/example-LocalCartesian.cpp>\n        c.reset(48 + 50 / 60.0, 2 + 20 / 60.0, name='Paris')\n        self.test('name', c.name, 'Paris')\n        self.test(c.name, fstr((c.lat0, c.lon0, c.height0), prec=3), '48.833, 2.333, 0.0')\n\n        t = c.forward(LatLon_(50.9, 1.8, name='Calais'))  # Local9Tuple\n        self.test('forward', fstr(t[0:3], prec=2), '-37518.64, 229949.65, -4260.43')\n        self.test('name', t.name, 'Calais')\n\n        t = c.reverse(-37518.64, 229949.65, -4260.43)  # Local9Tuple\n        self.test('reverse', fstr(t[3:6], prec=2), '50.9, 1.8, -0.0', known=Sudano)\n        self.test('name', t.name, 'Paris')\n\n        t = c.reverse(-38e3, 230e3, -4e3)\n        self.test('reverse', fstr(t[0:3], prec=1), '-38000.0, 230000.0, -4000.0')\n        self.test('reverse', fstr(t[3:6], prec=2), '50.9, 1.79, 264.92', known=Sudano)\n\n        t = c.forward(50.9, 1.79, 264.92)  # Local9Tuple\n        self.test('forward', fstr(t[0:3], prec=1), '-38223.7, 229964.2, -4000.0')\n\n        # <https://www.MathWorks.com/help/map/ref/enu2geodetic.html>\n        Z = Ltp(46.017, 7.750, 1673, name='Zermatt', **kwds)\n        self.test('Zermatt', Z.toStr(), c.classname, known=True, nl=1)\n        Sudano = Z.ecef.__class__ is EcefSudano\n        M = XyzLocal(-7134.8, -4556.3, 2852.4)  # Matterhorn XYZ\n        t = Z.reverse(M).toLatLon(datum=None)  # Matterhorn Xyz to LatLon\n        self.test('Matterhorn', t.toStr(prec=3), '(45.976, 7.658, 4531.01)', known=Sudano)\n        self.test('xyz', Z.forward(t).xyz.toStr(prec=1), '(-7134.8, -4556.3, 2852.4)', known=Sudano)\n\n        t = Z._local2ecef(M, nine=False)  # coverage\n        self.test('_local2ecef', fstr(t, prec=3), '4403757.602, 592124.536, 4566652.082', known=Sudano)\n        t = Z._local2ecef(M, nine=True)  # coverage\n        self.test('_local2ecef', t.toStr(prec=3), Ecef9Tuple.__name__, known=True)\n        self.test('_local2ecef', t.__class__.__name__, Ecef9Tuple.__name__)\n        t = Z._ecef2local(t, None, {})  # coverage\n        self.test('_ecef2local', t.toStr(prec=3), Local9Tuple.__name__, known=True)\n        self.test('_ecef2local', t.__class__.__name__, Local9Tuple.__name__)\n\n        t = M.toXyz()  # Matterhorn XYZ/ENU\n        self.test('Xyz', t.toStr(prec=3), '(-7134.8, -4556.3, 2852.4, None)', known=Sudano)\n        t = Aer(238.08, 18.744, 8876.8).toXyz()  # Matterhorn Aer\n        self.test('Aer', t.toStr(prec=3), '(-7134.912, -4444.548, 2852.474, None)', known=Sudano)\n\n        t = M.toEnu(Enu).toXyz()  # Matterhorn XYZ/ENU\n        self.test('Enu', t.toStr(prec=3), '(-7134.8, -4556.3, 2852.4, None)', known=Sudano)\n        t = Ned(-4556.3, -7134.8, -2852.4)  # Matterhorn Aer\n        self.test('Ned', t.toStr(prec=3), '[-4556.3, -7134.8, -2852.4]', known=Sudano)\n        t = t.toXyz(Enu)\n        self.test('Enu', t.toStr(prec=3), '[-7134.8, -4556.3, 2852.4]', known=Sudano)\n        t = t.toXyz(Ned)\n        self.test('Ned', t.toStr(prec=3), '[-4556.3, -7134.8, -2852.4]', known=Sudano)\n\n        # courtesy ThomasGreenhill <https://github.com/mrJean1/PyGeodesy/issues/77>\n        c = LocalCartesian(90.0, 57.3)\n        t = c.reverse(0, 0, 0).toLatLon()\n        self.test('lon00', t, '(90.0, 57.3, 0.0, ', known=startswith, nl=1)\n        t = c.reverse(0, 0, 0, lon00=3.75).toLatLon()\n        self.test('lon00', t, '(90.0, 3.75, 0.0, ', known=startswith)\n\n        f = Frustum(90, 90)  # ltp=None\n        self.test(Frustum.__name__, f, '90.0, 90.0', nl=1)\n        self.test('hfov', f.hfov, 90.0)\n        self.test('vfov', f.vfov, 90.0)\n\n        p = f.footprint5(1000, -90)\n        t = p.toStr()\n        self.test('footprint', t, t)\n        t = p.xyzLocal5().toStr()\n        self.test('footprint.xyzLocal5', t, t)\n        t = p.toLatLon5(ltp=Ltp(), LatLon=LatLon_).toStr()\n        self.test('footprint.toLatLon5', t, t)\n\n        t = f.footprint5(1000, -90, 0, 44.99).toStr()\n        self.test('footprint', t, t, nl=1)\n\n        f = Frustum(45, 45)  # ltp=None\n        t = f.footprint5(1000, -90, 0, 22.5).toStr()\n        self.test('footprint', t, t)\n        f = Frustum(45, 45)  # ltp=None\n        t = f.footprint5(1000, -179, 0, 22.5).toStr()\n        self.test('footprint', t, t)\n\n        a = Attitude(0, tilt=350, roll=340, yaw=-30, name='test')\n        self.test(Attitude.__name__, a, '(0.0, -10.0, 330.0, -20.0)', nl=1)\n        self.test('alt',  a.alt,  '0.0')\n        self.test('tilt', a.tilt, '-10.0')\n        self.test('roll', a.roll, '-20.0')\n        self.test('yaw',  a.yaw,  '330.0')\n        self.test('matrix', a.matrix, '((0.8137976813493737, -0.4409696105298823, -0.3785223063697926),'\n                                      ' (0.4698463103929541, 0.8825641192593856, -0.01802831123629725),'\n                                      ' (0.3420201433256688, -0.16317591116653488, 0.9254165783983233))', known=True)\n        self.test('rotate', a.rotate(1, 1, 1), '(-0.005694, 1.334382, 1.104261)')\n        d = tyr3d(tilt=0, yaw=0, roll=0)\n        self.test(tyr3d.__name__, d, '(0.0, 0.0, 0.0)')\n        d = tyr3d(tilt=90, yaw=0, roll=0)\n        self.test(tyr3d.__name__, d, '(0.0, -2.0, 0.0)')\n        d = tyr3d(tilt=0, yaw=90, roll=0)\n        self.test(tyr3d.__name__, d, '(0.0, -2.0, 0.0)')\n        d = tyr3d(tilt=0, yaw=0, roll=90)\n        self.test(tyr3d.__name__, d, '(0.0, 0.0, -2.0)')\n\n    def testChLV(self, ChLV_):\n\n        def _trim(t, neg0=False):\n            t = str(t)\n            if neg0:\n                t = t.replace(' -0.0,', ' 0.0,')\n            i = t.find('EcefMatrix')\n            return t[:i] + '...'\n\n        self.test(ChLV_.__name__, '...', '...', nl=1)\n\n        c = ChLV_(name='Test')\n        self.test('name', c.name, 'Test')\n\n        t = c.forward(46.95108, 7.438637)\n        self.test('ChLV_', t.ltp.__class__.__name__, ChLV_.__name__)\n\n        self.test('forward1', _trim(t), '(-72.039994, -147.361444, -49.552111, 46.95108, 7.438637, 0.0, ' if t.isChLV\n                                   else '(0.329415, -0.292702, -49.554242, 46.95108, 7.438637, 0.0, ' if t.isChLVa\n                                   else '(-72.031251, -147.344948, -49.554242, 46.95108, 7.438637, 0.0, ', known=startswith, nl=1)\n        self.test('Y, X, h_', (t.Y, t.X, t.h_), (t.x, t.y, t.z))\n        self.test('EN2_LV95', t.EN2_LV95, '(2599927.960006, 1199852.638556)' if t.isChLV\n                                     else '(2600000.329415, 1199999.707298)' if t.isChLVa\n                                     else '(2599927.968749, 1199852.655052)')\n        self.test('yx2_LV03', t.yx2_LV03, '(599927.960006, 199852.638556)' if t.isChLV\n                                     else '(600000.329415, 199999.707298)' if t.isChLVa\n                                     else '(599927.968749, 199852.655052)')\n        r = c.reverse(t)  # .Y, t.X, t.h_)\n        self.test('reverse1', _trim(r), '(-72.039994, -147.361444, -49.552111, 46.95108, 7.438637, 0.0, ' if r.isChLV\n                                   else '(0.329415, -0.292702, -49.554242, 46.951078, 7.438642, -0.004239, ' if r.isChLVa\n                                   else '(-72.031251, -147.344948, -49.554242, 46.95108, 7.438637, 0.000002, ', known=startswith)\n\n        r = c.reverse(700000, 100000, 600) if ChLV_ is ChLVa else c.reverse(2700000, 1200000, 600)\n        self.test('reverse2', _trim(r), '(100000.0, 0.0, 600.0, 46.944873, 8.752874, 1431.948128, ' if r.isChLV\n                                   else '(100000.0, -100000.0, 600.0, 46.044127, 8.730499, 650.554, ' if r.isChLVa\n                                   else '(100000.0, 0.0, 600.0, 46.944869, 8.753274, 648.29, ', known=startswith, nl=1)\n        t = c.forward(r.lat, r.lon, r.height)\n        self.test('forward2', _trim(t, neg0=True), '(100000.0, 0.0, 600.0, 46.944873, 8.752874, 1431.948128, ' if t.isChLV\n                                              else '(99999.933937, -100000.44412, 600.003469, 46.044127, 8.730499, 650.554, ' if t.isChLVa\n                                              else '(100000.000001, 0.0, 600.012265, 46.944869, 8.753274, 648.29, ', known=startswith)\n        self.test('Y, X, h_', (t.Y, t.X, t.h_), (t.x, t.y, t.z))\n        self.test('EN2_LV95', t.EN2_LV95, '(2700000.0, 1200000.0)' if t.isChLV\n                                     else '(2699999.933937, 1099999.55588)' if t.isChLVa\n                                     else '(2700000.000001, 1200000.0)')\n        self.test('yx2_LV03', t.yx2_LV03, '(700000.0, 200000.0)' if t.isChLV\n                                     else '(699999.933937, 99999.55588)' if t.isChLVa\n                                     else '(700000.000001, 200000.0)')\n\n        t = c.forward('46 2 38.87', '8 43 49.79', 650.60)\n        self.test('forward3', _trim(t), '(99920.639806, -100148.24791, -967.661696, 46.044131, 8.730497, 650.6, ' if t.isChLV\n                                   else '(99999.763621, -100000.026905, 600.049476, 46.044131, 8.730497, 650.6, ' if t.isChLVa\n                                   else '(99914.740455, -100135.079382, 600.049476, 46.044131, 8.730497, 650.6, ', known=startswith, nl=1)\n        self.test('Y, X, h_', (t.Y, t.X, t.h_), (t.x, t.y, t.z))\n        self.test('EN2_LV95', t.EN2_LV95, '(2699920.639806, 1099851.75209)' if t.isChLV\n                                     else '(2699999.763621, 1099999.973095)' if t.isChLVa\n                                     else '(2699914.740455, 1099864.920618)')\n        self.test('yx2_LV03', t.yx2_LV03, '(699920.639806, 99851.75209)' if t.isChLV\n                                     else '(699999.763621, 99999.973095)' if t.isChLVa\n                                     else '(699914.740455, 99864.920618)')\n        r = c.reverse(t)  # .Y, t.X, t.h_)\n        self.test('reverse3', _trim(r), '(99920.639806, -100148.24791, -967.661696, 46.044131, 8.730497, 650.6, ' if r.isChLV\n                                   else '(99999.763621, -100000.026905, 600.049476, 46.044127, 8.730496, 650.603479, ' if r.isChLVa\n                                   else '(99914.740455, -100135.079382, 600.049476, 46.044131, 8.730497, 650.607608, ', known=startswith)\n\n        t = c.forward('''47° 03' 28.95659233\"''', '''8° 29' 11.11127154\"''')  # Rigi\n        self.test('forward4', _trim(t), '(79527.502386, 12274.804229, -556.312155, 47.058043, 8.48642, 0.0, ' if t.isChLV\n                                   else '(79602.736359, 12421.914221, -48.257243, 47.058043, 8.48642, 0.0, ' if t.isChLVa\n                                   else '(79520.050001, 12273.439993, -48.257243, 47.058043, 8.48642, 0.0, ', known=startswith, nl=1)\n        self.test('Y, X, h_', (t.Y, t.X, t.h_), (t.x, t.y, t.z))\n        self.test('EN2_LV95', t.EN2_LV95, '(2679527.502386, 1212274.804229)' if t.isChLV\n                                     else '(2679602.736359, 1212421.914221)' if t.isChLVa\n                                     else '(2679520.050001, 1212273.439993)')\n        self.test('yx2_LV03', t.yx2_LV03, '(679527.502386, 212274.804229)' if t.isChLV\n                                     else '(679602.736359, 212421.914221)' if t.isChLVa\n                                     else '(679520.050001, 212273.439993)')\n        r = c.reverse(t)  # .Y, t.X, t.h_)\n        self.test('reverse4', _trim(r), '(79527.502386, 12274.804229, -556.312155, 47.058043, 8.48642, ' if t.isChLV\n                                   else '(79602.736359, 12421.914221, -48.257243, 47.058038, 8.486421, 0.00853, ' if r.isChLVa\n                                   else '(79520.050001, 12273.439993, -48.257243, 47.058043, 8.48642, 0.012933, ', known=startswith, nt=1)\n\n        _ = '''swisstopo GeoSuite, 10/2/2022 6:56 PM, REFRAME\n        <https://www.SwissTopo.admin.ch/en/maps-data-online/calculation-services/reframe.html>\n        Change planimetry:      yes\n                Input:          Plane coordinates LV03 (CH1903)\n                                Format: Military (Berne=600/200 km)\n                Output:         Global coordinates ETRF93/CHTRF95 (ETRS89/CHTRS95/≈WGS84)\n                                Format: Geographic Lon/Lat/Alt in [°]  (LTOP ED)\n        Change altimetry:       yes\n                Input:          National leveling network LN02 (leveled heights)\n                Output:         Ellipsoidal heights (GRS80)\n        Parameters and datasets used:\n                1: Htrans       HTRANS (swisstopo 2005)\n                2: CHGeo        CHGeo2004 (swisstopo 2004)\n                3: Fineltra     CHENyx06 (swisstopo 03.2007)\n                4: GPSRef       CHTRF95/CH1903+ (swisstopo 1997)\n        '''\n        i = 1  # XXX (lon, lat) all wrong the ChLVe, but height is correct\n        for e, n, h_, t in ((690112.2987, 167571.01,   2316.17,  ( 8.61588452888461, 46.6532932166132, 2367.70367439557)),\n                            (811208.67,   184302.34,  1495.279,  (10.2046874099038,  46.7763864160066, 1546.62256775331)),\n                            (584293.29,   249277.33,   890.93,   ( 7.23058814336896, 47.3941353658685,  940.206020880491)),\n                            (783515.164,  187452.333, 1595.183,  ( 9.84351348200287, 46.8129146868336, 1645.59174753912)),\n                            (533184.98,   152611.74,   410.638,  ( 6.56789363190021, 46.5214647527993,  460.491580192)),\n                            (700000,      100000,      600,      ( 8.73049738375132, 46.0441209510033,  650.012275829911))):\n            r = c.reverse(e, n, h_, name='REFRAME' + str(i))  # LV03 falsed!\n            d = max(_absdiff(t, r.lon, r.lat))\n            self.test(r.name, (r.lon, r.lat, r.height), t, known=d < 0.005)  # 5 mm\n            d = ' %.3g m' % (d,)\n            self.test(r.name, d, d)\n            i += 1\n\n        # <https://eMuseum.GGGS.CH/literatur-lv/liste-Dateien/1967_Bolliger_a.pdf> p 151\n        if ChLV_ is ChLVe:\n            r, g = c.reverse(*ChLV.false2(130689.06, -83702.04, LV95=True), name='Bollinger', gamma=True)\n        else:\n            r, g = c.reverse(*ChLV.false2(130689.06, -83702.04, LV95=True), name='Bollinger'), None\n        self.test(r.name + '.lat', latDMS(r.lat, prec=5),  \"46°11′12.03969″N\", known=abs(r.lat - 46.18667769) < 0.007, nl=1)\n        self.test(r.name + '.lon', lonDMS(r.lon, prec=5), \"009°07′57.29664″E\", known=abs(r.lon -  9.13258239) < 0.007)\n        if g is not None:\n            self.test(r.name + '.gamma', g, g, nt=1)\n\n        # <https://www.SwissTopo.admin.ch/en/maps-data-online/calculation-services/navref.html>\n        for e, n, h_, t, m in ((623706.01,   96020.08,  1687.567, (46.015314107,  7.74720273,   1742.449),   'Zermatt'),\n                               (602030.68,  191775.03,   897.915, (46.878427446,  7.466218797,   953.0973),  'Zimmerwald'),\n                               (617306.3,   268507.30,   456.064, (47.568308647,  7.6695485844,  897.4060),  'Chrischona'),\n                               (776668.105, 265372.681, 1042.624, (47.5163201698, 9.7843787372, 3868.8599),  'Pfaender'),\n                               (497313.292, 145625.438, 1207.434, (46.4555740686, 6.1033162697, 2313.94497), 'La Givrine'),\n                               (722758.81,   87649.67,  1636.6,   (45.9311184445, 9.0216020471, 3855.4332),  'Monte Generoso')):\n            r = c.reverse(e, n, h_, name=m)\n            d = max(_absdiff(t, r.lat, r.lon))\n            self.test(r.name, (r.lat, r.lon, r.height), t, known=d < 0.005)  # 5 mm\n            d = ' %.3g m' % (d,)\n            self.test(r.name, d, d)\n\n\nif __name__ == '__main__':\n\n    from pygeodesy import Ellipsoids\n\n    E_WGS84 = Ellipsoids.WGS84\n\n    t = Tests(__file__, __version__)\n    t.testLtp(EcefCartesian)  # DEPRECATED, use L{LocalCartesian}\n    t.testLtp(LocalCartesian)\n    t.testLtp(Ltp)\n    t.testLtp(Ltp, ecef=EcefKarney(E_WGS84))\n\n    t.testLtp(Ltp, ecef=EcefFarrell21(E_WGS84))\n    t.testLtp(Ltp, ecef=EcefFarrell22(E_WGS84))\n    t.testLtp(Ltp, ecef=EcefVeness(E_WGS84))\n    t.testLtp(Ltp, ecef=EcefSudano(E_WGS84))\n    t.testLtp(Ltp, ecef=EcefYou(E_WGS84))\n\n    t.testChLV(ChLV)\n    t.testChLV(ChLVa)\n    t.testChLV(ChLVe)\n\n    t.results()\n    t.exit()\n"
  },
  {
    "path": "test/testLtpTuples.py",
    "content": "\n# -*- coding: utf-8 -*-\n\n# Test L{ltpTuples} I{local tangent plane} classes, tuples and conversions.\n\n__all__ = ('Tests',)\n__version__ = '23.11.21'\n\nfrom bases import startswith, TestsBase\n\nfrom pygeodesy import Aer, Enu, fstr, Local9Tuple, Los, Ltp, Ned, XyzLocal\nfrom pygeodesy.ellipsoidalKarney import Cartesian, LatLon\nfrom pygeodesy.interns import _DOT_\n\n\ndef _truncate(txt, n=392):\n    if len(txt) > n:\n        txt = txt[:n]  # ...\n    return txt\n\n\n# <https://www.MathWorks.com/help/map/ref/enu2geodetic.html>\n_Z = Ltp(46.017, 7.750, 1673, name='Zermatt')\n\n\nclass Tests(TestsBase):\n\n    def testLoc(self, Loc, *args, **kwds):\n\n        N = Loc.__name__\n        z = Loc(*args, **kwds)\n\n        t = _truncate(z.toRepr(prec=2))\n        self.test(_DOT_(N, z.toRepr.__name__), t, t, nl=1)\n\n        s = _truncate(z.toStr(prec=2))\n        self.test(_DOT_(N, z.toStr.__name__), s, s)\n\n        for C in (Aer, Enu, Ned, Xyz):  # from Loc to C and back\n            n = C.__name__\n            c = getattr(z.xyzLocal, 'to' + n)(C, name=n)  # Loc to C\n            t = c.toStr(prec=2)\n            self.test(_DOT_(N, 'xyzLocal.to' + n), t, t)\n\n            r = getattr(c.xyzLocal, 'to' + N)(Loc, name=N)  # C back to Loc\n            t = _truncate(r.toStr(prec=2))\n            self.test(_DOT_(C.__name__, 'xyzLocal.to' + N), t, s, known=startswith)\n\n        for C in (Cartesian, LatLon):\n            n = C.__name__\n            c = getattr(z.xyzLocal, 'to' + n)(C, ltp=_Z, name=n)  # XXX ltp req'd\n            t = _truncate(c.toStr(prec=2))\n            self.test(_DOT_(N, 'to' + n), t, t)\n\n            if Loc is Local9Tuple:\n                continue\n\n            r = c.toLocal(Loc, ltp=_Z, name=N)  # XXX ltp req'd\n            t = r.toStr(prec=2)\n            self.test(_DOT_(C.__name__, 'toLocal ' + N), t, s)\n\n        for a in ('azimuth', 'elevation', 'slantrange', 'groundrange',\n                  'east', 'north', 'up', 'down',\n                  'x', 'y', 'z', 'xyz'):  # coverage\n            t = fstr(getattr(z, a), prec=3)\n            self.test(_DOT_(N, a), t, t)\n\n        if Loc is Local9Tuple:  # coverage\n            for a in ('lat', 'lon', 'latlon', 'latlonheight',\n                      'phi', 'lam', 'philam', 'philamheight'):\n                t = fstr(getattr(z, a), prec=3)\n                self.test(_DOT_(N, a), t, t)\n\n        s = Los(45, -45)\n        n = Los.__name__\n        self.test(n, repr(s), '[A:45.0°, E:-45.0°, R:1.0]', nl=1)\n        t = s.toEnu()\n        self.test(n, repr(t), '[E:0.5, N:0.5, U:-0.707]')\n        p = LatLon(0, 0, height=1e3)\n        t = s.toUvw(p)\n        self.test(n, repr(t), '[U:-0.707, V:0.5, W:0.5]')\n        r = t.toEnu(p)\n        self.test(n, r.toRepr(), '[E:0.5, N:0.5, U:-0.707]')\n\n\nclass Xyz(XyzLocal):  # shorten name\n    pass\n\n\nif __name__ == '__main__':\n\n    t = Tests(__file__, __version__)\n    t.testLoc(Aer,  60,  40, 1000, ltp=_Z)\n    t.testLoc(Enu, 100, 200, 1000, ltp=_Z)\n    t.testLoc(Ned, 200, 100, 1000, ltp=_Z)\n    t.testLoc(Xyz,  10,  20, 100, ltp=_Z)\n    t.testLoc(Local9Tuple, 10.0, 20.0, 100.0, 46.02, 7.75, 1773.0, _Z, None, None)\n    t.results()\n    t.exit()\n"
  },
  {
    "path": "test/testMgrs.py",
    "content": "\n# -*- coding: utf-8 -*-\n\n# Test L{mgrs} module.\n\n__all__ = ('Tests',)\n__version__ = '24.10.13'\n\nfrom bases import basename, GeoConvert, RandomLatLon, startswith, TestsBase\n\nfrom pygeodesy import mgrs, Mgrs, parseMGRS\n\n\nclass Tests(TestsBase):\n\n    def testMgrs(self, LatLon):\n\n        # courtesy of Richard Wright\n        m = parseMGRS('42SXD0970538646')\n        self.test('Mgrs1', str(m), '42S XD 09705 38646')\n        self.test('Mgrs1', repr(m), '[Z:42S, G:XD, E:09705, N:38646]')\n\n        # courtesy of Richard Wright\n        m = parseMGRS('42SXD1970508646')\n        self.test('Mgrs2', str(m), '42S XD 19705 08646')\n        self.test('Mgrs2', repr(m), '[Z:42S, G:XD, E:19705, N:08646]')\n\n        m = parseMGRS('42SXD1938')  # 2 digits means Km\n        self.test('Mgrs3', str(m), '42S XD 19000 38000')  # meter\n        self.test('Mgrs3', repr(m), '[Z:42S, G:XD, E:19000, N:38000]')\n\n        s = '31U DQ 48251 11932'\n        r = '[Z:31U, G:DQ, E:48251, N:11932]'\n\n        m = Mgrs('31U', 'DQ', 48251, 11932)\n        self.test('Mgrs4', str(m), s)\n        self.test('Mgrs4', repr(m), r)\n\n        m = parseMGRS('31U DQ 48251,11932')\n        self.test('Mgrs5', str(m), s)\n        self.test('Mgrs5', repr(m), r)\n\n        m = parseMGRS('31UDQ4825111932')\n        self.test('Mgrs6', str(m), s)\n        self.test('Mgrs6', repr(m), r)\n\n        m = parseMGRS('31UDQ 4825111932')  # coverage\n        self.test('Mgrs7', str(m), s)\n        self.test('Mgrs7', repr(m), r)\n\n        # courtesy of U{abubelinha<https://GitHub.com/mrJean1/PyGeodesy/issues/54>}\n        m = parseMGRS('31TDF3182')\n        self.test('Mgrs8', m.toUtm(), '31 N 431000 4582000')  # center=False\n        self.test('Mgrs8', m.toLatLon(center=False), \"(41.38657, 2.174726, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), -0.54564, 0.999659)\")\n        u = m.toUtm(center=True)\n        self.test('Mgrs8', u, '31 N 431500 4582500')\n        self.test('Mgrs8', u.toMgrs(center=True), '31T DF 31000 82000')\n        c = m.toLatLon(LatLon=LatLon)  # center=True\n        self.test('Mgrs8', c, '41.391116°N, 002.180649°E')\n        self.test('Mgrs8', c.toMgrs(center=True), '31T DF 31000 82000')\n\n        m = parseMGRS('31UDQ 48251 11932')  # coverage\n        self.test('Mgrs9', str(m), s)\n        self.test('Mgrs9', repr(m), r)\n\n        u = m.toUtm()\n        self.test('toUtm1', str(u), '31 N 448251 5411932')\n        self.test('toUtm1', repr(u), '[Z:31U, H:N, E:448251, N:5411932]')\n\n        m = mgrs.toMgrs(u)\n        self.test('toMgrs1', str(m), s)\n        self.test('toMgrs1', repr(m), r, nt=1)\n\n        p = m.parse('31UDQ4825111932')  # coverage\n        t = p.toUtm(None)\n        self.test('toUtm(None)', t, \"(31, 'N', 448251.0, 5411932.0, 'U')\", known=True)  # OBSOLETE UtmUps4Tuple\n        for a, x in (('easting',  '48251.0'),\n                     ('northing', '11932.0'),\n                     ('EN', 'DQ'),\n                     ('en100k', 'DQ'),  # DEPRECATED\n                     ('digraph', 'DQ'),  # DEPRECATED\n                     ('zone', 31),\n                     ('band', 'U'),\n                     ('bandLatitude', 48),\n                     ('eastingnorthing', '(48251.0, 11932.0)'),\n                     ('resolution', 1.0),\n                     ('tilesize', 100e3)):\n            self.test(a, getattr(p, a), x)\n\n        m = u.toMgrs()\n        self.test('toMgrs', str(m), s, nl=1)\n        m = mgrs.toMgrs(u, Mgrs=None)\n        self.test('toMgrs(None)', m.classname, mgrs.Mgrs6Tuple.__name__)\n        self.test('digraph', m.digraph, m.EN, nt=1)  # DEPRECATED\n\n        for lat, lon, x in ((60.0,  1.0, '31V CG 88455 53097'),  # SW Norway\n                            (60.0,  3.0, '32V JM 65640 66593'),\n                            (60.0,  9.0, '32V NM 00000 51411'),\n                            (76.0,  1.0, '31X DE 45999 36099'),  # Svalbard\n                            (76.0, 13.0, '33X VE 45999 36099'),\n                            (76.0, 25.0, '35X ME 45999 36099'),\n                            (76.0, 37.0, '37X DE 45999 36099'),\n                            (84.0, 42.0,   'Z GC 46127 04524'),   # polar\n                            (-90.0, 0.0,   'B AN 00000 00000')):  # polar\n            p = LatLon(lat, lon)\n            m = p.toUtmUps().toMgrs()\n            self.test('(%s).toUtmUps.toMgrs' % (p,), m, x)\n\n        m = Mgrs()  # default 'B AN 0 0'\n        n = m.__class__.__name__\n        t = m.toStr(prec=-4)\n        self.test(n, t, 'BAN00', nl=1)\n        t = parseMGRS(t, Mgrs=None, name='SouthPole')\n        n = t.__class__.__name__\n        self.test(n, str(t), \"('B', 'AN', 0.0, 0.0)\")\n        self.test(n, repr(t), \"SouthPole(zone='B', EN='AN', easting=0.0, northing=0.0)\")\n        self.test('digraph', t.digraph, t.EN)  # DEPRECATED\n        t = t.toMgrs().toLatLon()\n        self.test('toMgrs.toLatLon', repr(t), \"SouthPole(lat=-90.0, lon=0.0, datum=Datum(name='WGS84', \", known=startswith)\n\n        m = parseMGRS('BAN0000', name='SouthPole')\n        u = m.toUps()\n        n = u.__class__.__name__\n        self.test(n, u.toStr(), '00 S 2000000 2000000', nl=1)\n        u = m.toUps(center=True)\n        n = u.__class__.__name__\n        self.test(n, u.toStr(), '00 S 2000500 2000500')\n        m = parseMGRS('BAN000000000000', name='SouthPole')\n        n = m.__class__.__name__\n        self.test(n, m.resolution, '0.1')\n\n        m = parseMGRS('YUB17770380')  # GeoConvert\n        n = m.__class__.__name__\n        self.test(n, str(m), 'Y UB 17770 03800', nl=1)\n        self.test(n, repr(m), '[Z:Y, G:UB, E:17770, N:03800]')\n        t = m.toUtmUps(center=True)\n        self.test('toUtmUps', str(t), '00 N 1617775 1403805')\n        self.test('toUtmUps', repr(t), '[Z:00Y, H:N, E:1617775, N:1403805]')\n        t = m.toLatLon()  # always centered\n        self.test('toLatLon', str(t), \"(83.627518, -32.664231, Datum(name='WGS84', \", known=startswith)\n        self.test('toLatLon', repr(t), \"LatLonDatum5Tuple(lat=83.627518, lon=-32.664231, \", known=startswith)\n        m = LatLon(83.627518, -32.664231).toMgrs()\n        self.test('toMgrs!', str(m), '25X EN 04160 86523')  # not 'Y UB 17770 03800'\n\n        # courtesy of U{CF-FHB-X<https://GitHub.com/mrJean1/PyGeodesy/issues/70>}\n        m = parseMGRS('BFS7751499182')  # GeoConvert\n        n = m.__class__.__name__\n        self.test(n, str(m), 'B FS 77514 99182', nl=1)\n        self.test(n, repr(m), '[Z:B, G:FS, E:77514, N:99182]')\n        t = m.toUtmUps(center=False)\n        self.test('toUtmUps', str(t), '00 S 2377514 2499182')\n        self.test('toUtmUps', repr(t), '[Z:00B, H:S, E:2377514, N:2499182]')\n        t = m.toLatLon()  # always centered\n        self.test('toLatLon', str(t), \"(-84.367192, 37.098959, Datum(name='WGS84', \", known=startswith)\n        self.test('toLatLon', repr(t), \"LatLonDatum5Tuple(lat=-84.367192, lon=37.098959, \", known=startswith)\n        m = LatLon(-84.367192, 37.098959).toMgrs()\n        self.test('toMgrs', str(m), 'B FS 77514 99182')\n\n        # DMA TM 8358.1 Appendix B <https://Apps.DTIC.mil/sti/pdfs/ADA247651.pdf>\n        m = parseMGRS('45SXT4791')  # GeoConvert\n        n = m.__class__.__name__\n        self.test(n, str(m), '45S XT 47000 91000', nl=1)\n        self.test(n, repr(m), '[Z:45S, G:XT, E:47000, N:91000]')\n        t = m.toUtmUps(center=True)\n        self.test('toUtmUps', str(t), '45 N 647500 3791500')\n        self.test('toUtmUps', repr(t), '[Z:45S, H:N, E:647500, N:3791500]')\n        t = m.toLatLon()  # always centered\n        self.test('toLatLon', str(t), \"(34.254177, 88.601932, Datum(name='WGS84', \", known=startswith)\n        self.test('toLatLon', repr(t), \"LatLonDatum5Tuple(lat=34.254177, lon=88.601932, \", known=startswith)\n        m = LatLon(34.254177, 88.601932).toMgrs()\n        self.test('toMgrs', str(m), '45S XT 47499 91499')\n\n        # DMA TM 8358.1 Appendix B <https://Apps.DTIC.mil/sti/pdfs/ADA247651.pdf>\n        m = parseMGRS('YXK3543')  # GeoConvert\n        n = m.__class__.__name__\n        self.test(n, str(m), 'Y XK 35000 43000', nl=1)\n        self.test(n, repr(m), '[Z:Y, G:XK, E:35000, N:43000]')\n        t = m.toUtmUps(center=True)\n        self.test('toUtmUps', str(t), '00 N 1735500 2243500')\n        self.test('toUtmUps', repr(t), '[Z:00Y, H:N, E:1735500, N:2243500]')\n        t = m.toLatLon()  # always centered\n        self.test('toLatLon', str(t), \"(86.762629, -132.632821, Datum(name='WGS84', \", known=startswith)\n        self.test('toLatLon', repr(t), \"LatLonDatum5Tuple(lat=86.762629, lon=-132.632821, \", known=startswith)\n        m = LatLon(86.762629, -132.632821).toMgrs()\n        self.test('toMgrs', str(m), 'Y XK 35499 43500')\n\n        if GeoConvert:\n            self.test(basename(GeoConvert), GeoConvert, GeoConvert, nl=1)\n            from pygeodesy.internals import _popen2\n\n            cmd = GeoConvert, '-m'\n            r = RandomLatLon(LatLon, ndigits=3)\n            for _ in range(117):\n                ll = r()\n                t = '%s %s' % (ll.lat, ll.lon)\n                g = _popen2(cmd, stdin=t)[0]\n                t = 'LatLon(%7s, %8s).toMgrs' % tuple(t.split())\n                m =  ll.toMgrs().toStr()\n                self.test(t, m, g)\n\n\nif __name__ == '__main__':\n\n    from pygeodesy import ellipsoidalVincenty\n\n    t = Tests(__file__, __version__, mgrs)\n    t.testMgrs(ellipsoidalVincenty.LatLon)\n    t.results()\n    t.exit()\n"
  },
  {
    "path": "test/testModules.py",
    "content": "\n# -*- coding: utf-8 -*-\n\n# Test modules and attributes.\n\n__all__ = ('Tests',)\n__version__ = '24.06.05'\n\nfrom bases import isPyPy, TestsBase, type2str\nfrom pygeodesy.internals import _headof, _tailof,  _DOT_\n# from pygeodesy.interns import _DOT_  # from .internals\n\n\nclass Tests(TestsBase):\n\n    def testModule(self, m, name=''):\n        # check that __all__ names exist in module m\n        self.subtitle(m, 'Module')\n\n        m_ = _tailof(name or m.__name__) + _DOT_\n        for a in sorted(m.__all__):\n            n = m_ + a + type2str(m, a)\n            o =  getattr(m, a, None)\n            t = _parent(o, None)\n            if t and t != m.__name__:\n                n = '%s (%s)' % (n, t)\n            self.test(n, hasattr(m, a), True)\n\n\ndef _parent(obj, dflt):\n    try:  # module and package\n        return getattr(obj, '__module__', dflt)\n    except (AttributeError, ImportError):\n        return getattr(obj, '__package__', dflt)\n\n\nif __name__ == '__main__':\n\n    import pygeodesy\n\n    t = Tests(__file__, __version__)\n    if pygeodesy.__all__:  # and pygeodesy._init__all__\n        pys = set(pygeodesy.__all__)\n\n        from inspect import ismodule\n\n        t.testModule(pygeodesy, 'pygeodesy')\n        for a in sorted(pys):\n            m = getattr(pygeodesy, a)\n            if ismodule(m):\n                t.testModule(m)\n\n        if not isPyPy:  # XXX because next line throws ...\n            # AttributeError: 'method' object has no attribute '__module__'\n            # at least when testing with PyPy on TravisCI\n\n            # keyword.iskeyword.__module__ == None\n            pygeodesy.iskeyword.__module__ = 'keyword'\n\n            from pygeodesy.interns import _SUB_PACKAGES\n\n            # check module for public functions, etc.\n            t.subtitle(pygeodesy, 'Public')\n            for a in sorted(pys):\n                f =  getattr(pygeodesy, a)\n                m = _headof(_headof(_parent(f, _DOT_)))\n                if m and m not in ('math', 'pygeodesy'):\n                    n = a + type2str(pygeodesy, a)\n                    t.test(n, m in  pys or\n                              m in _SUB_PACKAGES or\n                              a in ('freduce' , 'isclass', 'iskeyword'), True)\n\n    else:\n        t.skip('pygeodesy', 2805)\n    t.results()\n    t.exit()\n"
  },
  {
    "path": "test/testNamed.py",
    "content": "\n# -*- coding: utf-8 -*-\n\n# Test L{named} module.\n\n__all__ = ('Tests',)\n__version__ = '25.12.06'  # '24.06.02'\n\nfrom bases import endswith, TestsBase\nfrom pygeodesy import angles, geohash, Datum, Datums, ltpTuples, \\\n                      named, namedTuples, nameof, NN, ub2str\n\nfrom os import linesep\n\n_B_    = ')}'\n_C_    = '}C{'\n_DEP_D = 'DEPRECATED'  # interns._DEPRECATED_\n_DICT  = 'Dict'\n_HEADS = 'Geod3',\n_LINK  = 'L{'\n_TUPLE = 'Tuple'\n\n\ndef _mod_line(m, py):\n    '''Count number of lines.\n    '''\n    n = py.count(linesep) + 1\n    return '%s:%s' % (m, n)\n\n\nclass Tests(TestsBase):\n\n    def testBases(self):\n        self.subtitle(named, 'ing %s ' % ('bases',))\n\n        nd = named._NamedDict({'1': 1, '2': 2}, name='test')\n        self.test('nd.dict', nd.toRepr(), 'test(1=1, 2=2)')\n        self.test('nd.name', nd.name, 'test')\n        nd = named._NamedDict({'1': 1, '2': 2, 'name': 'test'})\n        self.test('nd.dict', repr(nd), 'test(1=1, 2=2)')\n        self.test('nd.name', nd.name, 'test')\n        nd = named._NamedDict(one=1, two=2, name='test')\n        self.test('nd.kwds', nd.toRepr(), 'test(one=1, two=2)')\n        self.test('nd.name', nd.name, 'test')\n        nd = named._NamedDict({'1': 1, '2': 2, 'name': 'test'}, name='kwds')\n        self.test('nd.dict', nd.toRepr(), 'test(1=1, 2=2)')\n        self.test('nd.name', nd.name, 'test')\n        nd = named._NamedDict([('1', 1), ('2', 2), ('name', 'test')], name='kwds')\n        self.test('nd.list', nd.toRepr(), 'test(1=1, 2=2)')\n        self.test('nd.name', nd.name, 'test')\n        nd.update(dict(name='kwds'))\n        self.test('nd.updated', nd.toRepr(), \"test(1=1, 2=2, name='kwds')\")\n        self.test('nd.name', nd.name, 'test')\n\n    def testNamed(self, N, *args, **kwds):\n        self.subtitle(named, 'ing %s%s ' % (N.__name__, args))\n        k = kwds.pop('known', False)\n        n = N(*args)\n        self.test(n.named, n.classname, N.__name__)\n        self.test(n.named, isinstance(n, N), True)\n        self.test(n.named, repr(n.name), \"''\", known=k)\n\n        n.rename('Test')\n        self.test(n.named,  n.name, 'Test')\n        self.test(n.named2, n.named2, n.classname + \" 'Test'\")\n        self.test(n.named3, n.named3, \" 'Test'\", known=endswith)\n        self.test(n.named4, n.named4, \" 'Test'\", known=endswith)\n        if n.name and N is not named._NamedEnumItem:\n            try:  # coverage\n                n.name = 'X'\n                self.test(n.name, n.name, NameError.__name__)\n            except NameError as x:\n                self.test(n.name, x, x)\n            try:  # coverage\n                self.test(n.name, n._xrenamed(n), n)\n            except (AssertionError, NameError) as x:  # not overloaded\n                self.test(n.name, x, x)\n\n        for a in ('name', '_name'):  # coverage\n            self.test(n.named2, getattr(n, a), 'Test')\n        try:  # coverage\n            self.test(n.named2, str(n), n)\n        except AssertionError as x:\n            self.test(n.named2, x, x)\n        try:  # coverage\n            self.test(n.named2, repr(n), n, f='%r', known=True)\n        except AssertionError as x:\n            self.test(n.named2, x, x)\n        delattr(n, '_name')  # coverage\n        self.test(n.named2, repr(n.name), repr(NN))\n\n    def testNamedDicts(self):\n        self.subtitle(named, 'ing %s ' % ('NamedDicts',))\n        self.testNamed_classes(_DICT, '_Keys_', self._NamedDicts,\n                                named._NamedDict)\n\n    _NamedDicts = {}  # [<name>] = 'L{<name>}C{(...)}'\n\n    def testNamedTuples(self):\n        self.subtitle(namedTuples, 'ing %s ' % ('NamedTuples',))\n        self.testNamed_classes(_TUPLE, '_Names_', self._NamedTuples,\n                                named._NamedTuple, ltpTuples._Abc4Tuple,\n                                angles._Ang3Tuple)\n\n    _NamedTuples = {}  # [<name>] = 'L{<name>}C{(...)}'\n\n    def testNamed_classes(self, _Nclass, _attr_, _Ndict, *_Nbases):\n        _n = -(1 + len(_Nclass))\n        for c in self.pygeodesy_classes(Base=_Nbases[0], deprecated=True):\n            n = c.__name__\n            if c not in _Nbases and n[_n].isdigit():\n                d = ' '.join(c.__doc__.strip().split())\n                if d.startswith(_DEP_D):\n                    self.test(n, d, d)\n                    s = _DEP_D\n                else:  # compare _Nattr_ and __doc__\n                    self.test(n, c.__name__, n)\n                    # check signature\n                    a = getattr(c, _attr_, ())\n                    s = 'C{(%s%s' % (', '.join(a), _B_)\n                    t = '%s-%s %s' % (len(a), _Nclass, s)\n                    self.test(n, d[:len(t)].strip(), t)\n                    # check the count\n                    d = n[:-len(_Nclass)]\n                    for h in _HEADS:\n                        if d.startswith(h):\n                            d = d[len(h):]\n                            break\n                    while d and not d[:1].isdigit():\n                        d = d[1:]\n                    if d:\n                        self.test(n, d, len(a))\n                    s = 'L{%s}%s' % (n, s)\n                # build _Named... dict\n                _Ndict[n] = s\n\n    def testNamed__doc__(self, m, py):\n        self.subtitle(named, 'ing %s ' % (m,))\n        for _N, _Ndict in ((_DICT,  self._NamedDicts),\n                           (_TUPLE, self._NamedTuples)):\n            b = max(map(len, _Ndict.keys()))\n            j, _N_C_ = 0, _N + _C_\n            while True:\n                i = py.find(_N_C_, j)\n                if i > j:\n                    t.testNamed_Link(_N, i, m, py, _Ndict, b)\n                    j = i + len(_N_C_)\n                else:\n                    break\n\n    def testNamed_Link(self, _N, i, m, py, _Ndict, b=30):\n        # check a _Named link in a __doc__ string\n        L = py.rfind(_LINK, max(0, i - b), i)\n        c = py.find(_B_, i)\n        if 0 < L < i < c:\n            m = _mod_line(m, py[:L])\n            n =  py[L + len(_LINK):i + len(_N)]\n            s = _Ndict.get(n, 'signature')\n            t = ' '.join(py[L:c + len(_B_)].split())\n            self.test(m, t, s, known=s == _DEP_D)\n#           self.test(m, t, _Ndict.get(n, 'signature'), known=n in ('ClipCS3Tuple', 'Ned3Tuple'))\n\n    def testNamed_xtend(self, namedTuples):\n        self.subtitle(namedTuples, 'ing %s ' % ('xtend',))\n        # test extending a _NamedTuple class\n        t = namedTuples.LatLon2Tuple(0, 1)\n        x = t.to3Tuple(2)\n        r = namedTuples.LatLon3Tuple(0, 1, 2)\n        self.test(repr(t), x, r)\n        self.test(repr(t), x.__class__, r.__class__)\n\n        t = namedTuples.LatLon2Tuple(0, 1)\n        x = t.to4Tuple(2, Datums.WGS84)\n        r = namedTuples.LatLon4Tuple(0, 1, 2, Datums.WGS84)\n        self.test(repr(t), x, r)\n        self.test(repr(t), x.__class__, r.__class__)\n\n        t = namedTuples.LatLon3Tuple(0, 1, 2)\n        x = t.to4Tuple(Datums.WGS84)\n        r = namedTuples.LatLon4Tuple(0, 1, 2, Datums.WGS84)\n        self.test(repr(t), x, r)\n        self.test(repr(t), x.__class__, r.__class__)\n\n        t = namedTuples.PhiLam2Tuple(0, 1)\n        x = t.to3Tuple(2)\n        r = namedTuples.PhiLam3Tuple(0, 1, 2)\n        self.test(repr(t), x, r)\n        self.test(repr(t), x.__class__, r.__class__)\n\n        t = namedTuples.Vector3Tuple(0, 1, 2)\n        x = t.to4Tuple(4)\n        r = namedTuples.Vector4Tuple(0, 1, 2, 4)\n        self.test(repr(t), x, r)\n        self.test(repr(t), x.__class__, r.__class__)\n\n    def testUnregister(self):\n        self.subtitle(named, 'ing %s ' % ('unregister',))\n        from pygeodesy import Conics, Ellipsoid, Ellipsoids, RefFrames, Transforms\n\n        self.test('Conics', len(Conics), 1, known=True)\n        t = tuple(Conics.items(all=True, asorted=True))\n        self.test('Conics', len(Conics), 8)\n        for n, c in t:\n            c.unregister()  # coverage _NamedEnum.unregister\n            self.test('Conics.' + n + '.unregister', getattr(Conics, n, None), None)\n        self.test('Conics', len(Conics), 0)\n\n        self.test('Datums', len(Datums), 6, known=True, nl=1)\n        t = tuple(Datums.items(all=True, asorted=True))\n        self.test('Datums', len(Datums), 18)\n        for n, d in t:\n            Datums.unregister(d)  # coverage _NamedEnum.unregister\n            self.test('Datums.unregister(%s)' % (n,), getattr(Datums, n, None), None)\n        self.test('Datums', len(Datums), 0)\n\n        self.test('RefFrames', len(RefFrames), 0, known=True, nl=1)\n        t = tuple(RefFrames.items(all=True, asorted=True))\n        self.test('RefFrames', len(RefFrames), 36)\n        for n, r in t:\n            r.unregister()  # coverage _NamedEnum.unregister\n            self.test('RefFrames.' + n + '.unregister', getattr(RefFrames, n, None), None)\n        self.test('RefFrames', len(RefFrames), 0)\n\n        self.test('Ellipsoids', len(Ellipsoids), 12, known=True, nl=1)\n        t = tuple(Ellipsoids.items(all=True, asorted=True))\n        self.test('Ellipsoids', len(Ellipsoids), 49)\n        for n, e in t:\n            e.unregister()  # coverage _NamedEnum.unregister\n            self.test('Ellipsoids.' + n + '.unregister', getattr(Ellipsoids, n, None), None)\n        self.test('Ellipsoids', len(Ellipsoids), 0)\n\n        self.test('Transforms', len(Transforms), 16, known=True, nl=1)\n        t = tuple(Transforms.items(all=True, asorted=True))\n        self.test('Transforms', len(Transforms), 20)\n        for n, x in t:\n            x.unregister()  # coverage _NamedEnumItem.unregister\n            self.test('Transforms.' + n + '.unregister', getattr(Transforms, n, None), None)\n        self.test('Transforms', len(Transforms), 0)\n\n        self.test('nameof', nameof(Ellipsoid.KsOrder), 'KsOrder', nl=1)\n\n\nif __name__ == '__main__':\n\n    from bases import isiOS\n\n    t = Tests(__file__, __version__)\n\n    t.testNamed(named._Named)\n    t.testNamed(named._NamedBase)\n    t.testNamed(named._NamedDict)\n    t.testNamed(named._NamedEnum, Datum, known=True)\n    t.testNamed(named._NamedEnumItem)\n    t.testNamed(namedTuples.LatLon2Tuple, 0, 0)  # _NamedTuple\n\n    # find _NamedDict and _NamedTuple (sub)classes\n    # defined in all pygeodesy modules\n    t.testNamedDicts()\n    t.testNamedTuples()\n\n    # test __doc__ strings in all pygeodesy modules\n    for n, m in t.pygeodesy_names2(deprecated=True):\n        with open(n, 'rb') as f:\n            py = ub2str(f.read())\n            t.testNamed__doc__(m, py)\n\n    t.testNamed_xtend(namedTuples)\n\n    t.testBases()\n\n    t.subtitle(named, 'ing %s ' % ('coverage',))\n    Nd = geohash.Neighbors8Dict  # coverage\n    nd = Nd(**dict((t, t) for t in (Nd._Keys_ + ('name',))))\n    print(nd)\n    t.test('nd.name', nd.name, 'name')\n    t.test('nd.named', nd.named, 'name')\n    del nd.name\n    t.test('nd.named', nd.named, Nd.__name__)\n\n    nd.name = 'test'\n    t.test('nd.name', nd.name, 'test')\n\n    nd.test = 'test'\n    t.test('nd.test', nd.test, 'test')\n    del nd.test\n    t.test('nd.test', getattr(nd, 'test', None), None)\n\n    t.test('nd.classnaming', nd.classnaming, False)\n    t.test('nd.classname', nd.classname, nd.classname)\n    t.test('nd.named2', nd.named2, nd.named2)\n\n    nd.classnaming = True\n    t.test('nd.classnaming', nd.classnaming, True)\n    t.test('nd.classname', nd.classname, nd.classname)\n    t.test('nd.named2', nd.named2, nd.named2)\n\n    delattr(nd, 'N')  # _NamedDict.__delattr__\n    t.test('delattr', getattr(nd, 'N', None), None)\n\n    t.test('classnaming', named.classnaming(True), False)\n    t.test('classnaming', named.classnaming(False), True)\n\n    if not isiOS:  # Pythonista runs in single process\n        t.testUnregister()\n\n    t.results()\n    t.exit()\n"
  },
  {
    "path": "test/testNamedTuples.py",
    "content": "\n# -*- coding: utf-8 -*-\n\n# Test L{namedTuples} module.\n\n__all__ = ('Tests',)\n__version__ = '25.12.06'\n\nfrom bases import TestsBase\nfrom pygeodesy import FIx, issubclassof\nfrom pygeodesy.albers import _Ks\nfrom pygeodesy.frechet import Frechet6Tuple\nfrom pygeodesy.fsums import DivMod2Tuple, _Float_Int\nfrom pygeodesy.hausdorff import Hausdorff6Tuple\nfrom pygeodesy.interns import _DOT_\nfrom pygeodesy.karney import _GTuple\nfrom pygeodesy.namedTuples import _NamedTupleTo\nfrom pygeodesy.ltpTuples import _Abc4Tuple\nfrom pygeodesy.named import _NamedTuple, _Pass\n# from pygeodesy.rhumb.bases import _Lat as rLat, _Lon as rLon\nfrom pygeodesy.angles import Ang, Deg\nfrom pygeodesy.triaxials.bases import _HeightINT0\nfrom pygeodesy.triaxials.triaxial5 import _NamedTupleToX\nfrom pygeodesy.units import _NamedUnit\n\n_Units_ = '_Units_'\n_Xcepts = (Ang, Deg, FIx, _Float_Int, _HeightINT0, _Ks, _Pass)  # rLat, rLon\n\n\nclass Tests(TestsBase):\n\n    def testNamedTuple(self, T, *args):\n        m =  T.__module__\n        n = _DOT_(T.__name__, _Units_)\n        t =  T(*args)\n\n        U = getattr(T, _Units_, ())\n        if len(U) != len(t):  # check _Units_ len\n            e = '%s = %r' % (n, tuple(u.__name__ for u in U))\n            self.test(m, e, len(t))\n\n        for i, u in enumerate(U):  # check _Units_ types\n            if not (callable(u) and (u in _Xcepts or\n                                     issubclassof(u, _NamedUnit))):\n                e = '%s[%s] %r' % (n, i, u)\n                self.test(m, e, callable.__name__)\n\n        if not (Ang in U or Deg in U):\n            u = t.toUnits()  # check _Units_ sample\n            ru = repr(u)\n            rt = repr(t)\n            x = ru if rt == ru.replace(\"'0\", '0').replace(\"5'\", '5') \\\n                              .replace('True', '0.5').replace('0,', '0.5,') \\\n                              .replace('0)', '0.5)') else rt\n            self.test(m, ru, x)\n\n        u = ('%s=%s' % (n, u.__name__) for (n, u) in zip(T._Names_, U))\n        u = '%s(%s)' % (T.__name__, ', '.join(u))\n        self.test(m, u, u)  # the items as name=units\n\n        c = _DOT_(m, t.__class__.__name__)\n        for n in T._Names_:  # coverage\n            x = str(getattr(t, n))\n            self.test(_DOT_(c, n), x, x)\n\n        self.testValidated(T, True)\n        self.testValidated(t.__class__, True)\n\n    def testNamedTuples(self):\n        for T in self.pygeodesy_classes_(_NamedTuple, _Abc4Tuple,\n                  DivMod2Tuple, _GTuple, _NamedTuple, _NamedTupleTo, _NamedTupleToX):\n            t = (0.5,) * len(T._Names_)  # some sample value\n            if T in (Frechet6Tuple, Hausdorff6Tuple):\n                t = t[1:] + ('test',)\n            self.testNamedTuple(T, *t)\n\n        self.testValidated(_NamedTuple, False)\n\n    def testValidated(self, T, x):\n        n = _DOT_(T.__module__, _DOT_(T.__name__, '_validated'))\n        self.test(n , T._validated, x)\n\n\nif __name__ == '__main__':\n\n    t = Tests(__file__, __version__)\n    t.testNamedTuples()\n    t.results()\n    t.exit()\n"
  },
  {
    "path": "test/testNavlabExamples.py",
    "content": "\n# -*- coding: utf-8 -*-\n\n# NavLab examples\n\n# This page illustrates implementations of the examples from\n# <https://www.NavLab.net/nvector>.  Values are chosen to match\n# those used in nvector.readthedocs.org.  Tests marked with\n# +++ are additional, not present in the original examples.\n\n__all__ = ()\n__version__ = '23.03.27'\n\nif __name__ == '__main__':\n\n    from bases import GeodSolve, geographiclib, startswith, TestsBase\n\n    from pygeodesy import Datums, F_D, ellipsoidalExact, \\\n                          ellipsoidalNvector, ellipsoidalVincenty, \\\n                          sphericalNvector, sphericalTrigonometry, \\\n                          EcefVeness, Ned, Ned4Tuple\n\n    class Examples(TestsBase):  # overload test()\n        def test(self, ex, name, *args, **kwds):\n            name = 'Example %s %s' % (ex, name)\n            TestsBase.test(self, name, *args, **kwds)\n\n    def destination(m, x, **nl):\n        a = m.LatLon(80, -90)  # +++\n        b = a.destination(1000, 200)\n        n = '%s(%s)' % (destination.__name__, m.__name__)\n        t.test(8, n, b.toStr(F_D), x, **nl)\n\n    t = Examples(__file__, __version__)\n\n# Example 1: A and B to delta\n    a = ellipsoidalNvector.LatLon(1, 2, 3)  # defaults to WGS-84\n    b = ellipsoidalNvector.LatLon(4, 5, 6)\n    delta = a.deltaTo(b)\n    t.test(1, 'delta', delta, '[331730.863, 332998.501, 17398.304]')\n    t.test(1, 'delta', delta.toRepr(prec=3), '[L:470357.384, B:45.109°, E:-2.12°]')  # DEPRECATED\n    t.test(1, 'elevation', delta.elevation, -2.1198, fmt='%.4f')\n    t.test(1, 'bearing', delta.bearing, 45.109, fmt='%.3f')  # 45.109°\n    t.test(1, 'length', delta.length, 470357.384, fmt='%.3f')  # 470357.384 m\n\n    delta = a.deltaTo(b, Ned=Ned)  # kwarg Ned, new in pygeodesy 22.09.17+\n    t.test(1, 'delta', delta, '[331730.863, 332998.501, 17398.304]', nl=1)\n    t.test(1, 'delta', delta.__class__, Ned)\n    delta = a.deltaTo(b, Ned=Ned4Tuple)\n    t.test(1, 'delta', delta, '(331730.863099, 332998.501491, 17398.304211, Ltp(lat0=1.0, lon0=2.0, height0=3.0, ',\n                               known=startswith)\n    t.test(1, 'delta', delta.__class__, Ned4Tuple)\n    t.test(1, 'delta', delta.ltp.ecef.__class__, EcefVeness)\n\n# Example 2: B and delta to C*\n    n = ellipsoidalNvector.Nvector(1, 2, 3, 400, Datums.WGS72)\n#   t.test(2, 'Nvector', n.toStr(prec=3), '[1.0, 2.0, 3.0, +400.00]')\n    b = n.toLatLon()\n    t.test(2, 'LatLon', b.toStr(F_D, prec=3), '53.301°N, 063.435°E, +400.00m', nl=1)\n    t.test(2, 'toNvector', b.toNvector().toStr(prec=3), '(0.267, 0.535, 0.802, +400.00)')\n    delta = ellipsoidalNvector.Ned(3000, 2000, 100)\n    t.test(2, 'delta', delta, '[3000.0, 2000.0, 100.0]')  # ++\n    t.test(2, 'delta', delta.toRepr(prec=3), '[L:3606.938, B:33.69°, E:-1.589°]')  # DEPRECATED\n    c = b.destinationNed(delta)  # JSname: destinationPoint\n    t.test(2, 'destinationNed', c.toStr(F_D), '53.327726°N, 063.464965°E, +299.138m', known=True)\n\n    a = ellipsoidalNvector.LatLon(49.66618, 3.45063)  # ++\n    b = ellipsoidalNvector.LatLon(48.88667, 2.37472)  # ++\n    delta = a.deltaTo(b)  # ++\n    t.test(2, 'delta', delta.toStr(prec=0), '[-86126, -78900, 1069]')  # ++\n    t.test(2, 'delta', delta.toRepr(prec=3), '[L:116807.681, B:222.493°, E:-0.524°]')  # DEPRECATED\n    c = a.destinationNed(delta)  # JSname: destinationPoint, c.height = -9.3e-10\n    t.test(2, 'destinationNed', c.toStr(F_D), '48.88667°N, 002.37472°E', known=True)\n\n# Example 3: ECEF-vector to geodetic latitude\n    c = ellipsoidalNvector.Cartesian(0.9*6371e3, -1.0*6371e3, 1.1*6371e3)\n#   t.test(3, 'Cartesian', c, '[5733900.0, -6371000.0, 7008100.0]')\n    p = c.toLatLon()\n    t.test(3, 'toLatLon', p.toStr(F_D, prec=3), '39.379°N, 048.013°W, +4702059.83m', nl=1)\n\n# Example 4: Geodetic latitude to ECEF-vector\n    p = ellipsoidalNvector.LatLon(1, 2, 3)\n    c = p.toCartesian()\n    t.test(4, 'toCartesian', c.toStr(prec=3), '[6373290.277, 222560.201, 110568.827]', nl=1)\n\n# Example 5: Surface distance\n    a = sphericalNvector.LatLon(88, 0)\n    b = sphericalNvector.LatLon(89, -170)\n    dist = a.distanceTo(b)\n    t.test(5, 'distanceTo', dist, 332457, fmt='%.0f', nl=1)  # 332,457 m == 332.5 km\n\n# Example 6: Interpolated position\n    a = sphericalNvector.LatLon(89, 0)\n    b = sphericalNvector.LatLon(89, 180)\n    p = a.intermediateChordTo(b, 0.6)\n    t.test(6, 'intermediateChordTo', p.toStr(F_D), '89.799981°N, 180.0°E', nl=1)\n    p = a.intermediateTo(b, 0.6)\n    t.test(6, 'intermediateTo', p.toStr(F_D), '89.8°N, 180.0°E')\n\n    a = sphericalNvector.LatLon(52.205, 0.119)  # +++\n    b = sphericalNvector.LatLon(48.857, 2.351)\n    p = a.intermediateChordTo(b, 0.25)\n    t.test(6, 'intermediateChordTo', p.toStr(F_D), '51.372294°N, 000.707192°E')  # 51.3723°N, 000.7072°E\n    p = a.intermediateTo(b, 0.25)\n    t.test(6, 'intermediateTo', p.toStr(F_D), '51.372084°N, 000.707337°E')\n\n# Example 7: Mean position\n    points = [sphericalNvector.LatLon(90,   0),\n              sphericalNvector.LatLon(60,  10),\n              sphericalNvector.LatLon(50, -20)]\n    mean = sphericalNvector.meanOf(points)  # XXX meanOf\n    t.test(7, 'meanOf', mean.toStr(F_D, prec=4), '67.2362°N, 006.9175°W', nl=1)\n#   t.test(7, 'meanOfLatLon', mean.__class__, \"<class 'sphericalNvector.LatLon'>\")  # ++\n\n# Example 8: A and azimuth/distance to B\n    destination(sphericalNvector,      '79.991549°N, 090.017698°W', nl=1)\n    destination(sphericalTrigonometry, '79.991549°N, 090.017698°W')\n    destination(ellipsoidalVincenty,   '79.991584°N, 090.017621°W')\n    if geographiclib:\n        from pygeodesy import ellipsoidalKarney\n        destination(ellipsoidalKarney, '79.991584°N, 090.017621°W')\n    destination(ellipsoidalExact,      '79.991584°N, 090.017621°W')\n    if GeodSolve:\n        from pygeodesy import ellipsoidalGeodSolve\n        destination(ellipsoidalGeodSolve, '79.991584°N, 090.017621°W')\n\n# Example 9: Intersection of two paths\n    a1 = sphericalNvector.LatLon(10, 20)\n    a2 = sphericalNvector.LatLon(30, 40)\n    b1 = sphericalNvector.LatLon(50, 60)\n    b2 = sphericalNvector.LatLon(70, 80)\n    c = sphericalNvector.intersection(a1, a2, b1, b2)\n    t.test(9, 'intersection', c, '40.318643°N, 055.901868°E', nl=1)\n\n# Example 10: Cross track distance\n    a1 = sphericalNvector.LatLon( 0, 0)\n    a2 = sphericalNvector.LatLon(10, 0)\n    b = sphericalNvector.LatLon(1, 0.1)\n    c = b.crossTrackDistanceTo(a1, a2)\n    t.test(10, 'crossTrackDistance', c, 11118, fmt='%.0f', nl=1)  # 11,118 m == 11.12 km\n\n# <https://GitHub.com/ChrisVeness/geodesy/blob/master/latlon-nvector-ellipsoidal.js>\n    d = ellipsoidalNvector.toNed(116809.178, 222.493, -0.5416)\n    TestsBase.test(t, 'toNed', d.toStr(prec=1), '[-78901.1, -86126.6, 1104.1]', nl=1)  # [N:-86126.6, E:-78901.1, D:1104.1]'\n    TestsBase.test(t, 'bearing',   d.bearing, '227.507',  fmt='%.3f')  # '222.493'\n    TestsBase.test(t, 'elevation', d.elevation, '-0.5416', fmt='%.4f')\n    TestsBase.test(t, 'length',    d.length, '116809.178',  fmt='%.3f')\n    v = d.toVector3d()\n    TestsBase.test(t, 'toVector3d', v.toStr(prec=1), '(-86126.6, -78901.1, -1104.1)')  # 1104.1\n\n    t.results()\n    t.exit()\n"
  },
  {
    "path": "test/testOsgr.py",
    "content": "\n# -*- coding: utf-8 -*-\n\n# Test L{osgr} module.\n\n__all__ = ('Tests',)\n__version__ = '23.03.27'\n\nfrom bases import GeodSolve, geographiclib, startswith, TestsBase\n\nfrom pygeodesy import F_D, F_DEG, F_DMS, fstr, Datums, \\\n                      Osgr, parseOSGR, toOsgr\n\n\nclass Tests(TestsBase):\n\n    def testOSgr(self, module):\n\n        self.subtitle(module, 'OSgr')\n        LatLon = module.LatLon\n\n        # check convertDatum and back\n        p = LatLon(51.4778, -0.0016)  # datum=Datums.WGS84)\n        self.test('WGS84', p, '51.4778°N, 000.0016°W')\n        r = p.convertDatum(Datums.OSGB36)\n        self.test('OSGB36', r.toStr(form=F_D, m=None), '51.477284°N, 000.00002°E')\n        r = r.convertDatum(Datums.WGS84)\n        self.test('WGS84', r.toStr(form=F_D, m=None), '51.4778°N, 000.0016°W', known=True)\n\n        g = Osgr(651409.903, 313177.270)\n        self.test('OSgr1', g, 'TG 51409 13177')\n        self.test('OSgr1', repr(g), '[G:TG, E:51409, N:13177]')\n        self.test('iteration', g.iteration, g.iteration)  # coverage\n\n        p = g.toLatLon(LatLon)\n        self.test('toLatLon1', p.toStr(F_DMS, m=None), '52°39′28.72″N, 001°42′57.79″E', known=True)\n        self.test('toLatLon1', p, '52.657979°N, 001.716052°E', known=True)\n        self.test('iteration', p.iteration, g.iteration)  # coverage\n        r = p.toOsgr()\n        self.test('toOsgr1', r.toStr(prec=-3), '651409.903,313177.270', known=True)  # OLD\n        self.test('toOsgr1', r.toStr(prec=3, GD=False),  '651409.903,313177.270', known=True)\n        self.test('toOsgr1', r.toStr(prec=3, GD=True), 'TG5140990313177270', known=True)\n\n        p = g.toLatLon(LatLon, datum=Datums.OSGB36)\n        self.test('toLatLon2', p.toStr(F_DMS), '52°39′27.25″N, 001°43′04.52″E', known=True)\n        self.test('toLatLon2', p, '52.657570°N, 001.717922°E', known=True)\n        self.test('iteration', p.iteration, g.iteration)  # coverage\n        r = toOsgr(p)\n        self.test('toOsgr2', r.toStr(prec=0), '651409,313177', known=True)  # OLD\n        self.test('toOsgr2', r.toStr(GD=False), '651409,313177', known=True)\n\n        p = LatLon(52.65798, 1.71605)\n        r = p.toOsgr()  # TG 51409 13177\n        self.test('toOsgr3', r, 'TG 51409 13177')\n        p = r.toLatLon()\n        self.test('toLatLon3', p, '(52.65798, 1.71605, ', known=startswith)\n\n        p = LatLon(52.65757, 1.71791, datum=Datums.OSGB36)\n        r = toOsgr(p, kTM=True)\n        self.test('toOsgr4', r, 'TG 51409 13177')\n        t = r.toLatLon(kTM=True, datum=Datums.OSGB36).toStr(prec=-9)\n        self.test('toLatLon4', t, '(52.657570000, 1.717910000, ', known=startswith)\n        t = r.toLatLon(kTM=False, datum=Datums.OSGB36).toStr(prec=-9)\n        self.test('toLatLon4', t, '(52.657569999, 1.717910045, ', known=startswith)\n        t = r.toLatLon(kTM=True).toStr(prec=-9)\n        self.test('toLatLon4', t, '(52.657978296, 1.716040366, ', known=startswith)\n        t = r.toLatLon(kTM=False).toStr(prec=-9)\n        self.test('toLatLon4', t, '(52.657978295, 1.716040411, ', known=startswith)\n\n        r = parseOSGR('TG5140900013177000')\n        self.test('toOsgr5', r.resolution, 0.001)\n        self.test('toOsgr5', r.toStr(GD=True, prec=3), 'TG5140900013177000')\n        self.test('toOsgr5', r.toStr(GD=False, prec=3), '651409.000,313177.000')\n        t = r.toLatLon(kTM=True).toStr(prec=-9)\n        self.test('toLatLon5', t, '(52.657976595, 1.716038422, ', known=startswith)\n\n        g = parseOSGR('TG 48251 11932')\n        self.test('OSGR1', g, 'TG 48251 11932', nl=1)\n        self.test('OSGR1', repr(g), '[G:TG, E:48251, N:11932]')\n\n        g = parseOSGR('TG51409 13177')\n        self.test('OSGR2', g, 'TG 51409 13177')\n        self.test('OSGR2', repr(g), '[G:TG, E:51409, N:13177]')\n\n        g = parseOSGR('TG5140913177')\n        self.test('OSGR3', g, 'TG 51409 13177')\n        self.test('OSGR3', repr(g), '[G:TG, E:51409, N:13177]')\n\n        g = parseOSGR('651409,313177')\n        self.test('OSGR4', g, 'TG 51409 13177')\n        self.test('OSGR4', repr(g), '[G:TG, E:51409, N:13177]')\n\n        self.test('OSGR5', g.toStr(prec=0), '651409,313177')  # OLD\n        self.test('OSGR5', g.toStr(prec=7), 'TG51409001317700')  # OLD\n\n        self.test('OSGR5', g.toStr(GD=False), '651409,313177')\n        self.test('OSGR5', g.toStr(GD=False, prec=7), '651409.000000,313177.000000')  # um max\n        self.test('OSGR5', g.toStr(GD=False, prec=2), '651409.00,313177.00')\n\n        self.test('OSGR5', g.toRepr(prec=-3), '[OSGR:651409.000,313177.000]')  # OLD\n\n        self.test('OSGR5', g.toRepr(GD=False), '[OSGR:651409,313177]')\n        self.test('OSGR5', g.toRepr(GD=False, prec=3), '[OSGR:651409.000,313177.000]')\n        self.test('OSGR5', g.toRepr(GD=False, prec=-3), '[OSGR:651,313]')\n\n        r = g.toStr(prec=-3)  # OLD\n        self.test('OSGR6', r, '651409.000,313177.000')\n        r = parseOSGR(r)  # OLD\n        self.test('OSGR6', r.toStr(prec=0), '651409,313177')  # OLD\n        r = parseOSGR('651409,313177', Osgr=None)  # coverage  # OLD\n        self.test('OSGR6', r.toStr(prec=0), '(651409, 313177)')  # OLD\n        r = g.parse('651409, 313177')  # coverage  # OLD\n        self.test('OSGR6', r.toStr(prec=0), '651409,313177')  # OLD\n\n        r = parseOSGR(g.toStr(GD=False))\n        self.test('OSGR6', r.toStr(GD=False), '651409,313177')\n        r = parseOSGR('651409,313177', Osgr=None)  # coverage\n        self.test('OSGR6', r.toStr(prec=0), '(651409, 313177)')\n        r = g.parse('651409, 313177')  # coverage\n        self.test('OSGR6', r.toStr(GD=False, sep=' '), '651409 313177')\n\n        self.test('issue', 38, 38, nl=1)\n        # courtesy of U{jaluebbe<https://GitHub.com/mrJean1/PyGeodesy/issues/38>}, with expected\n        # results from <https://www.Movable-Type.co.UK/scripts/latlong-os-gridref.html>\n        p = LatLon(52, -0.12, datum=Datums.WGS84)\n        g = toOsgr(p)\n        self.test('toOsgr', g.toRepr(), '[G:TL, E:29158, N:35174]')\n        self.test('toOsgr', fstr((g.easting, g.northing), prec=3), '529158.072, 235174.785')\n        self.test('toOsgr', g.datum.name, 'OSGB36')\n        r = g.toLatLon(LatLon, datum=Datums.OSGB36)\n        self.test('toLatLonOSGB36', r.toStr(m=None), '51°59′58.37″N, 000°07′06.14″W')\n        self.test('toLatLonOSGB36', r.datum.name, 'OSGB36')\n        p = g.toLatLon(LatLon, datum=Datums.WGS84)\n        self.test('toLatLonWGS84 ', p.toStr(m=None), '52°00′00.0″N, 000°07′12.0″W')\n        self.test('toLatLonWGS84 ', p.datum.name, 'WGS84')\n\n        # courtesy of U{jaluebbe<https://GitHub.com/mrJean1/PyGeodesy/issues/38>}, with expected\n        # results from <https://www.Movable-Type.co.UK/scripts/latlong-os-gridref.html>\n        g = Osgr(532014, 123971)\n        self.test('Osgr', g.toRepr(), '[G:TQ, E:32014, N:23971]', nl=1)\n        self.test('Osgr', fstr((g.easting, g.northing), prec=1), '532014.0, 123971.0')\n        self.test('Osgr', g.datum.name, 'OSGB36')\n        r = g.toLatLon(LatLon, datum=Datums.OSGB36)\n        self.test('toLatLonOSGB36', r.toStr(form=F_DEG, m=None), '50.999425N, 000.118417W', known=True)\n        self.test('toLatLonOSGB36', r.datum.name, 'OSGB36')\n        p = g.toLatLon(LatLon, datum=Datums.WGS84)\n        self.test('toLatLonWGS84 ', p.toStr(form=F_DEG, m=None), '50.999995N, 000.120004W', known=True)\n        self.test('toLatLonWGS84 ', p.datum.name, 'WGS84')\n\n        g = parseOSGR('TQ3201423971')\n        self.test('parseOSGR', g.toRepr(), '[G:TQ, E:32014, N:23971]')\n        self.test('parseOSGR', fstr((g.easting, g.northing), prec=1), '532014.0, 123971.0')\n        self.test('parseOSGR', g.datum.name, 'OSGB36')\n        r = g.toLatLon(LatLon, datum=Datums.OSGB36)\n        self.test('toLatLonOSGB36', r.toStr(form=F_DEG, m=None), '50.999425N, 000.118417W', known=True)\n        self.test('toLatLonOSGB36', r.datum.name, 'OSGB36')\n        p = g.toLatLon(LatLon, datum=Datums.WGS84)\n        self.test('toLatLonWGS84', p.toStr(form=F_DEG, m=None), '50.999995N, 000.120004W', known=True)\n        self.test('toLatLonWGS84', p.datum.name, 'WGS84')\n\n        # courtesy of U{jaluebbe<https://GitHub.com/mrJean1/PyGeodesy/issues/38>}, with expected\n        # results from <https://www.Movable-Type.co.UK/scripts/latlong-os-gridref.html>\n        g = toOsgr(LatLon(50.999995, -0.120004, datum=Datums.WGS84))\n        self.test('toOsgr', g.toRepr(), '[G:TQ, E:32013, N:23971]')\n        self.test('toOsgr', fstr((g.easting, g.northing), prec=3), '532013.969, 123971.046')\n        self.test('toOsgr', g.datum.name, 'OSGB36')\n        r = g.toLatLon(LatLon, datum=Datums.OSGB36)\n        self.test('toLatLonOSGB36', r.toStr(form=F_DEG, m=None), '50.999426N, 000.118417W')\n        self.test('toLatLonOSGB36', r.datum.name, 'OSGB36')\n        p = g.toLatLon(LatLon, datum=Datums.WGS84)\n        self.test('toLatLonWGS84 ', p.toStr(form=F_DEG, m=None), '50.999995N, 000.120004W')\n        self.test('toLatLonWGS84 ', p.datum.name, 'WGS84')\n\n        # courtesy of U{jaluebbe<https://GitHub.com/mrJean1/PyGeodesy/issues/38>}, with expected\n        # results from <https://www.Movable-Type.co.UK/scripts/latlong-os-gridref.html>\n        g = toOsgr(LatLon(50.999995, +0.120004, datum=Datums.WGS84))\n        self.test('toOsgr', g.toRepr(), '[G:TQ, E:48853, N:24427]')\n        self.test('toOsgr', fstr((g.easting, g.northing), prec=3), '548853.602, 124427.985')\n        self.test('toOsgr', g.datum.name, 'OSGB36')\n        r = g.toLatLon(LatLon, datum=Datums.OSGB36)\n        self.test('toLatLonOSGB36', r.toStr(form=F_DEG, m=None), '50.999422N, 000.121618E')\n        self.test('toLatLonOSGB36', r.datum.name, 'OSGB36')\n        p = g.toLatLon(LatLon, datum=Datums.WGS84)\n        self.test('toLatLonWGS84 ', p.toStr(form=F_DEG, m=None), '50.999995N, 000.120004E')\n        self.test('toLatLonWGS84 ', p.datum.name, 'WGS84')\n\n        # courtesy of U{jaluebbe<https://GitHub.com/mrJean1/PyGeodesy/issues/38>}, with expected\n        # results from <https://www.Movable-Type.co.UK/scripts/latlong-os-gridref.html>\n        p = LatLon(49.926244, -6.297934)\n        self.test('LatLon', p, '49.926244°N, 006.297934°W', nl=1)\n        self.test('datum', p.datum.name, 'WGS84')\n        g = p.toOsgr()\n        self.test('datum', g.datum.name, 'OSGB36')\n        self.test('toOsgr', g.toRepr(), '[G:SV, E:91645, N:11753]')\n        g = Osgr(g.easting, g.northing)\n        self.test('datum', g.datum.name, 'OSGB36')\n        q = g.toLatLon(LatLon=LatLon)\n        t = q.distanceTo(p)\n        k = abs(t) < 0.015\n        self.test('LatLon', q.toStr(form=F_D, m=None), '49.926244°N, 006.297934°W', known=k)\n        self.test('datum', q.datum.name, 'WGS84')\n        self.test('distanceTo', t, 0.0104, fmt='%.4f', known=k, nt=1)\n\n        g = p.toOsgr(prec=-2)  # coverage\n        self.test('prec=-2', g.toRepr(), '[G:SV, E:91600, N:11700]', nt=1)\n\n        for d in (Datums.WGS84, Datums.OSGB36):\n            p = LatLon(52, -0.12, datum=d)\n            g = toOsgr(p)\n            r = g.toLatLon(LatLon, datum=d)\n            t = r.toStr(form=F_DEG, m=None)  # '52.0N, 000.12W'\n            self.test('toLatLon', t, t)\n            for _ in range(3):\n                g = g.copy()\n                r = g.toLatLon(LatLon, datum=d)\n                self.test('toLatLon', r.toStr(form=F_DEG, m=None), t)\n\n\nif __name__ == '__main__':\n\n    from pygeodesy import ellipsoidalExact, ellipsoidalKarney, osgr, \\\n                          ellipsoidalNvector, ellipsoidalVincenty  # sphericalNvector\n\n    t = Tests(__file__, __version__, osgr)\n    t.testOSgr(ellipsoidalNvector)\n#   t.testOSgr(sphericalNvector)\n    t.testOSgr(ellipsoidalVincenty)\n\n    if geographiclib:\n        t.testOSgr(ellipsoidalKarney)\n    t.testOSgr(ellipsoidalExact)\n    if GeodSolve:\n        from pygeodesy import ellipsoidalGeodSolve\n        t.testOSgr(ellipsoidalGeodSolve)\n\n    t.results()\n    t.exit()\n"
  },
  {
    "path": "test/testPoints.py",
    "content": "\n# -*- coding: utf-8 -*-\n\n# Test L{points} module.\n\n__all__ = ('Tests',)\n__version__ = '23.12.03'\n\nfrom bases import GeodSolve, geographiclib, isPython37, numpy, \\\n                  startswith, TestsBase\n\nfrom pygeodesy import EPS, NN, R_M, R_MA, LatLon_, LatLon2psxy, \\\n                      Numpy2LatLon, Tuple2LatLon, areaOf, boundsOf, \\\n                      centroidOf, classname, fstr, isclockwise, \\\n                      isconvex, ispolar, luneOf, nearestOn5, \\\n                      perimeterOf, points, quadOf\ntry:\n    if isPython37:\n        from collections.abc import Sequence\n    else:\n        from collections import Sequence\nexcept ImportError:\n    Sequence = None\n\n\nclass Tests(TestsBase):\n\n    def test2(self, pts, npt, psxy=False):\n\n        clas_ = classname(pts) + '.'\n\n        def _test(name, *args, **kwds):\n            # prefix class to test name\n            self.test(clas_ + name, *args, **kwds)\n\n        if Sequence:  # check abstact base class conformance\n            _test('ABC', isinstance(pts, Sequence), True)\n\n        e = pts.epsilon\n        _test('epsilon', e, EPS)\n        pts.epsilon = 0\n        _test('epsilon', pts.epsilon, 0.0)\n        pts.epsilon = e\n\n        n = len(pts) // 6  # 0 < some number < len(pts)\n        _test('len',    len(pts), len(npt))\n        _test('iter',   len(tuple(iter(pts))), len(npt))\n        if hasattr(npt, 'shape'):\n            _test('shape',  npt.shape, pts.shape)\n        _test('slice1', len(pts[:n]), n)\n        _test('slice2', type(pts[1:n:2]), type(pts))\n        _test('slice3', pts[1:n][0], pts[1])\n        _test('str/repr', str(pts), repr(pts))\n        if hasattr(pts, 'subset'):\n            _test('subset', type(pts.subset(range(n))), type(npt))  # , nt=1)\n\n        for i, p in ((10, (52.224006, -0.707747)),\n                     (20, (52.232688, -0.714608)),\n                     (30, (52.234375, -0.714348)),\n                     (40, (52.237239, -0.712557)),\n                     (50, (52.24023,  -0.709919)),\n                     (60, (52.240745, -0.707042))):\n\n            if psxy:\n                _test('find LL', pts.find(LatLon_(*p)), i)  # coverage\n                p = tuple(reversed(p))  # flip to x, y tuple\n                _test('find LL', pts.find(LatLon_(*p)), -1)  # coverage\n\n            _test('count', pts.count(p), 1)\n            _test('index', pts.index(p), i)\n            _test('rfind', pts.rfind(p), i)\n            _test('in', p in pts, True)\n\n            p = tuple(reversed(p))\n            _test('count', pts.count(p), 0)\n            _test('find', pts.find(p), -1)\n            _test('rfind', pts.rfind(p), -1)\n            _test('not in', p not in pts, True)\n\n        pts = pts[::6]\n        for i, p in enumerate(pts):\n            _test('enumerate[%s]' % (i,), p, pts[i])\n        _test('enumerate[%s]' % ('*',), i, len(pts) - 1)\n\n        i = len(pts)\n        for p in reversed(pts):\n            i -= 1\n            _test('reversed[%s]' % (i,), p, pts[i])\n\n        for i, p in enumerate(pts):\n            _test('findall[%s]' % (i,), tuple(pts.findall(p)), (i,))\n        _test('findall[%s]' % ('*',), i, len(pts) - 1)\n\n        _test('isNumpy2',  pts.isNumpy2,  pts.__class__ is Numpy2LatLon)\n        _test('isPoints2', pts.isPoints2, pts.__class__ is LatLon2psxy)\n        _test('isTuple2',  pts.isTuple2,  pts.__class__ is Tuple2LatLon)\n\n    def test3(self, LatLon, oK=True, X=False):\n        self.subtitle(points, LatLon=LatLon)\n\n        p = LatLon(45, 1), LatLon(45, 2), LatLon(46, 2), LatLon(46, 1)\n        self.test('areaOf', areaOf(p, radius=R_MA), '8.811228e+09', fmt='%.6e')\n        self.test('centroidOf', fstr(centroidOf(p), prec=6), '45.5, 1.5')\n        self.test('perimeterOf', perimeterOf(p, radius=R_MA), '2.673633e+05', fmt='%.6e')\n        self.test('isclockwise', isclockwise(p), False)\n        self.test('isconvex', isconvex(p), True)\n        if oK:\n            self.test('ispolar', ispolar(p), False)\n\n        p = LatLon(0, 0), LatLon(1, 0), LatLon(0, 1)\n        self.test('areaOf', areaOf(p, radius=R_MA), '7.086883e+09', fmt='%.6e')\n        self.test('perimeterOf', perimeterOf(p, radius=R_MA), '2.687460e+05', fmt='%.6e')\n        self.test('centroidOf', fstr(centroidOf(p), prec=6), '0.333333, 0.333333')\n        self.test('isclockwise', isclockwise(p), True)\n        self.test('isconvex', isconvex(p), True)\n        if oK:\n            self.test('ispolar', ispolar(p), False)\n\n        p = LatLon(0, 1), LatLon(1, 2), LatLon(2, 1), LatLon(1, 0)\n        self.test('areaOf', areaOf(p, radius=R_M), '2.827856e+10', fmt='%.6e')\n        self.test('perimeterOf', perimeterOf(p, radius=R_M), '4.717039e+05', fmt='%.6e')\n        self.test('centroidOf', fstr(centroidOf(p), prec=6), '1.0, 1.0')\n        self.test('isclockwise', isclockwise(p), False)\n        self.test('isconvex', isconvex(p), True)\n        if oK:\n            self.test('ispolar', ispolar(p), False)\n\n        p = LatLon(45, -70), LatLon(60, 0), LatLon(20, 110), LatLon(80, 170)  # XXX warped?\n        self.test('areaOf', areaOf(p, radius=R_M), '2.747297e+13', fmt='%.6e')  # XXX 1.047657e+12\n        self.test('perimeterOf', perimeterOf(p, radius=R_M), '2.332643e+07', fmt='%.6e')\n        self.test('centroidOf', fstr(centroidOf(p), prec=3), '52.113, 102.123')  # XXX '22.536, -164.928'\n        self.test('isclockwise', isclockwise(p), False)  # XXX True\n        self.test('isconvex', isconvex(p), False)\n        if oK:\n            self.test('ispolar', ispolar(p), True)  # XXX warped?\n\n        p = LatLon(0, 0), LatLon(0, 3), LatLon(3, 3), LatLon(3, 2), \\\n            LatLon(1, 2), LatLon(1, 1), LatLon(2, 1), LatLon(2, 0)\n        self.test('areaOf', areaOf(p, radius=R_M), '8.482014e+10', fmt='%.6e')\n        self.test('perimeterOf', perimeterOf(p, radius=R_M), '1.334104e+06', fmt='%.6e')\n        self.test('centroidOf', fstr(centroidOf(p), prec=3), '1.167, 1.667')\n        self.test('isclockwise', isclockwise(p), False)\n        self.test('isconvex', isconvex(p), False)\n        if oK:\n            self.test('ispolar', ispolar(p), False)\n\n        p = LatLon(-20, -180), LatLon(5, -160), LatLon(0, -60), LatLon(-60, -160)\n        self.test('areaOf', areaOf(p, radius=R_M), '5.151974e+13', fmt='%.6e')\n        self.test('perimeterOf', perimeterOf(p, radius=R_M), '2.638608e+07', fmt='%.6e')\n        self.test('centroidOf', fstr(centroidOf(p), prec=3), '-19.444, -133.333')\n        self.test('isclockwise', isclockwise(p), True)\n        self.test('isconvex', isconvex(p), True)\n        if oK:\n            self.test('ispolar', ispolar(p), False)\n\n        # <https://GeographicLib.SourceForge.io/scripts/geod-calc.html>\n        p = (LatLon(-63.1,  -58), LatLon(-72.9,  -74), LatLon(-71.9, -102),\n             LatLon(-74.9, -102), LatLon(-74.3, -131), LatLon(-77.5, -163),\n             LatLon(-77.4,  163), LatLon(-71.7,  172), LatLon(-65.9,  140),\n             LatLon(-65.7,  113), LatLon(-66.6,   88), LatLon(-66.9,   59),\n             LatLon(-69.8,   25), LatLon(-70.0,   -4), LatLon(-71.0,  -14),\n             LatLon(-77.3,  -33), LatLon(-77.9,  -46), LatLon(-74.7,  -61))  # on/around south pole!\n        self.test('areaOf', areaOf(p, radius=R_M), '4.469277e+12', fmt='%.6e', known=True)\n        self.test('perimeterOf', perimeterOf(p, radius=R_M), '1.562029e+07', fmt='%.6e', known=True)\n        self.test('centroidOf', fstr(centroidOf(p), prec=3), '-72.926, 46.47')  # XXX '-72.112, 92.032'\n        self.test('isclockwise', isclockwise(p), True)  # XXX False\n        self.test('isconvex', isconvex(p), False)\n        if oK:\n            self.test('ispolar', ispolar(p), True)\n        self.test('points2', p[0].points2(p)[0], len(p))\n        self.test('nearestOn5', nearestOn5(LatLon(-80, 0), p, limit=0), '(-77.455114, -16.67063, 4.134666, 307.988253, 0)', known=not X)\n\n        # <https://StackOverflow.com/questions/4681737/how-to-calculate-the-area-of-a-polygon-on-the-earths-surface-using-python>\n        co = LatLon(41, -102.05), LatLon(37, -102.05), LatLon(37, -109.05), LatLon(41, -109.05)  # State of Colorado\n        self.test('areaCO', areaOf(co, radius=R_M, wrap=False), '2.69601367661e+11', fmt='%.11e', known=True)\n        self.test('isclockwise', isclockwise(co), True)  #\n        self.test('perimeterCO', perimeterOf(co, closed=True), '2098430.887891' if X else '2099854.381923', prec=6, known=True)\n\n        if LatLon is LatLon_:\n            b = boundsOf(p)\n            self.test('boundsOf', b, '(-77.9, -163.0, -63.1, 172.0)')\n            q = str(quadOf(*b)).replace(LatLon_.__name__, NN).replace('(', NN).replace(')', NN)\n            self.test('quadOf', q, '77.9°S, 163.0°W, 63.1°S, 163.0°W, 63.1°S, 172.0°E, 77.9°S, 172.0°E')\n\n            p = LatLon(52.205, 0.119)\n            q = LatLon(48.857, 2.351)\n            i = p.intermediateTo(q, 0.25)\n            self.test('intermediateTo', i, \"51.368°N, 000.677°E, 'intermediateTo'\")\n            self.test('intermediateTo', isinstance(i, LatLon_), True)\n            i = i.dup(name='')\n            self.test('intermediateTo', i, \"51.368°N, 000.677°E\")\n            i = p.intermediateTo(q, 0)\n            self.test('intermediateTo', i, p)\n            i = p.intermediateTo(q, 1)\n            self.test('intermediateTo', i, q)\n\n            from pygeodesy.points import _Array2LatLon\n            t = _Array2LatLon([], LatLon=LatLon, shape=(1, 2))\n            self.test('_isLatLon_', t, \"_Array2LatLon('[ ... ][1]', ilat=0, ilon=1)\")\n\n        p = LatLon('66.6S', '88W')\n        self.test('latlon', p.latlon, '(-66.6, -88.0)')\n        self.test('philam', p.philam, '(-1.162389, -1.53589)')\n#       self.test('to2ab ', p.to2ab(), p.philam)\n        if LatLon is LatLon_:\n            self.test('toStr', p.toStr(prec=6), '66.6°S, 088.0°W')\n            q = p.classof(p.lat, p.lon, name='test')\n            self.test('__ne__', q != p, False)\n            self.test('isequalTo', q.isequalTo(p), True)  # coverage\n            self.test('isequalTo', q.isequalTo(p, eps=EPS), True)\n\n        self.test('latlonheight', p.latlonheight, '(-66.6, -88.0, 0)')\n        self.test('philamheight', p.philamheight, '(-1.162389, -1.53589, 0)')\n\n        self.test('_N_vector', p._N_vector, '(0.01386, -0.39691, -0.91775)')\n        self.test('toNvector', p.toNvector().toStr(prec=5), '(0.01386, -0.39691, -0.91775', known=startswith)\n        self.test('toNvector', p.toNvector(Nvector=None),   '(0.01386, -0.396906, -0.917755', known=startswith)\n\n        q = p.classof(-66.6, -88)\n        self.test('classof', q, p)\n        try:\n            t = p.others(q)\n        except Exception as x:\n            t = str(x)\n        self.test('others', t, q)\n\n        self.testCopy(p)\n\n    def testArea(self, module, area):\n        self.subtitle(module, 'Area')\n        q = module.areaOf(luneOf(-45, 45))  # datum=WGS84\n        a = area / 4\n        t.test('luneOf', q, a, fmt='%.14e', known=abs(q - a) < 0.1)  # 0.1 m^2 == 10 cm^2\n\n\nif __name__ == '__main__':  # PYCHOK internal error?\n\n    from testRoutes import PtsFFI\n    from sys import getsizeof\n\n    t = Tests(__file__, __version__, points)\n\n    p = LatLon_(0, 0)\n    if hasattr(LatLon_, '__slots__'):\n        try:\n            t.test('LatLon_', p.__dict__, 'AttributeError')\n        except AttributeError as x:\n            t.test('LatLon_', x, \"'LatLon_' object has no attribute '__dict__'\")\n        a = '__slots__'\n    else:\n        a = '__dict__'\n    try:\n        q = getsizeof(p)\n        t.test('sizeof(LatLon_.%s)' % (a,), q, q)\n    except TypeError:  # PyPy warning/error\n        pass\n\n    pts = LatLon2psxy(PtsFFI, wrap=False)\n    t.test2(pts, PtsFFI, True)\n\n    if numpy:\n        t.test('numpy.__version__', numpy.__version__, numpy.__version__)\n\n        npy = numpy.array([(ll.lon, 0, ll.lat, 0) for ll in PtsFFI], dtype=float)\n        pts = Numpy2LatLon(npy, ilat=2, ilon=0)\n        t.test2(pts, npy, False)\n\n    else:  # check abstact base class conformance\n        t.test('no', 'numpy', 'numpy')\n\n    tup = [(0, ll.lon, 0, ll.lat) for ll in PtsFFI]\n    pts = Tuple2LatLon(tup, ilat=3, ilon=1)\n    t.test2(pts, tup, False)\n    tup = pts = None\n\n    from pygeodesy import ellipsoidalExact, ellipsoidalKarney, \\\n                          ellipsoidalNvector, ellipsoidalVincenty, \\\n                          Ellipsoids, sphericalTrigonometry, sphericalNvector\n    t.test3(LatLon_)\n\n    t.test3(sphericalNvector.LatLon)\n    t.test3(sphericalTrigonometry.LatLon)\n\n    t.test3(ellipsoidalNvector.LatLon)\n    t.test3(ellipsoidalVincenty.LatLon)\n    t.test3(ellipsoidalKarney.LatLon, oK=geographiclib)\n    t.test3(ellipsoidalExact.LatLon, X=True)\n\n    if geographiclib:\n        t.testArea(ellipsoidalKarney, Ellipsoids.WGS84.area)\n    t.testArea(ellipsoidalExact, Ellipsoids.WGS84.areax)\n    if GeodSolve:\n        from pygeodesy import ellipsoidalGeodSolve\n        t.testArea(ellipsoidalGeodSolve, Ellipsoids.WGS84.areax)\n\n    t.results()\n    t.exit()\n"
  },
  {
    "path": "test/testProps.py",
    "content": "\n# -*- coding: utf-8 -*-\n\n# Test L{props} module.\n\n__all__ = ('Tests',)\n__version__ = '23.03.27'\n\nfrom bases import TestsBase\n\nfrom pygeodesy import Property, Property_RO, property_RO, props\n\n\nclass Tests(TestsBase):\n\n    def testProps(self, Base, *args):  # MCCABE 26\n\n        self.subtitle(props, Base)\n\n        class T(Base):\n\n            _p = 0\n            _q = 1\n            _u = None  # reset by ._updated\n\n            @Property_RO\n            def P(self):\n                return self.p  # PYCHOK property\n\n            @property_RO\n            def p(self):\n                self._p += 1  # PYCHOK _p?\n                return self._p  # PYCHOK _p?\n\n            @Property\n            def q(self):\n                return self._q  # PYCHOK _q?\n\n            @q.setter  # PYCHOK .setter\n            def q(self, q):\n                self._q = q\n\n            @property_RO\n            def u(self):\n                u = self._u  # PYCHOK T._u\n                self._u = 'U'\n                return u\n\n        t = T(*args)\n        self.test('P1', t.P, 1)\n        self.test('p1', t.p, 2)\n\n        self.test('P2', t.P, 1)\n        self.test('p2', t.p, 3)\n\n        self.test('q1', t.q, 1)\n        t.q = 2\n        self.test('q2', t.q, 2)\n        self.test('q3', 'q' in t.__dict__, True)\n\n        self.test('u1', t.u, None)\n        self.test('u2', t.u, 'U')\n\n        T.P._update(t)\n        self.test('P3', t.P, 4)\n        self.test('p3', t.p, 5)\n\n        T.q._update(t)\n        self.test('q4', 'q' in t.__dict__, False)\n        self.test('q5', t.q, 2)\n\n        T.u._update(t)\n        self.test('u3', t.u, None)\n        self.test('u4', t.u, 'U')\n\n        class E(Base):\n\n            @Property_RO\n            def X(self):\n                return None\n\n            try:\n                @X.setter  # PYCHOK .setter\n                def X(self, x):\n                    self._x = x\n\n                self.test('X1', 'X.setter', AttributeError)\n            except AttributeError as x:\n                self.test('X1', str(x), 'immutable Property_RO: X.setter X')  # PYCHOK x?\n\n            try:\n                @X.deleter  # PYCHOK .deleter\n                def X(self):\n                    pass\n\n                self.test('X2', 'X.deleter', AttributeError)\n            except AttributeError as x:\n                self.test('X2', str(x), 'invalid Property_RO: X.deleter X')\n\n            @property_RO\n            def y(self):\n                return None\n\n            try:\n                @y.setter  # PYCHOK .setter\n                def y(self, y):\n                    self._y = y\n\n                self.test('y1', 'y.setter', AttributeError)\n            except AttributeError as x:\n                self.test('y1', str(x), 'immutable property_RO: y.setter y')\n\n            try:\n                @y.deleter  # PYCHOK .deleter\n                def y(self):\n                    pass\n\n                self.test('y2', 'y.deleter', AttributeError)\n            except AttributeError as x:\n                self.test('y2', str(x), 'invalid property_RO: y.deleter y')\n\n            @Property\n            def Z(self):\n                return None\n\n            try:\n                @Z.deleter  # PYCHOK .deleter\n                def Z(self):\n                    pass\n\n                self.test('Z1', 'Z.deleter', AttributeError)\n            except AttributeError as x:\n                self.test('Z1', str(x), 'invalid Property: Z.deleter Z')\n\n            try:\n                @Z.getter  # PYCHOK .getter\n                def Z(self):\n                    pass\n\n                self.test('Z2', 'Z.getter', AttributeError)\n            except AttributeError as x:\n                self.test('Z2', str(x), 'invalid Property: Z.getter Z')\n\n        del E\n\n\nif __name__ == '__main__':\n\n    from pygeodesy import Ellipsoid, R_M\n    from pygeodesy.named import _NamedBase\n\n    t = Tests(__file__, __version__)\n    t.testProps(_NamedBase)\n    t.testProps(Ellipsoid, R_M, R_M)\n    t.results()\n    t.exit()\n"
  },
  {
    "path": "test/testResections.py",
    "content": "\n# -*- coding: utf-8 -*-\n\n# Test L{resections} module.\n\n__all__ = ('Tests',)\n__version__ = '25.05.04'\n\nfrom bases import endswith, isWindows, TestsBase\n\nfrom pygeodesy import EPS0, PI, PI_4, cassini, collins5, fstr, pierlot, pierlotx, \\\n                      ResectionError, snellius3, tienstra7, triAngle, triAngle5, \\\n                      triArea, triSide, triSide2, triSide4, Vector3d, wildberger3\nfrom pygeodesy.deprecated import collins, tienstra, triAngle4  # DEPRECATED\nfrom math import degrees\n\n\nclass Tests(TestsBase):\n\n    def testResections(self, C_, V3d):\n\n        # Tienstra example <http://MesaMike.org/geocache/GC1B0Q9/resection-methods.pdf>\n        A, B, C = V3d(1000, 5300), V3d(2200, 6300), V3d(3100, 5000)  # DDD.MMSS 115.5220 109.3045\n\n        p = cassini(A, C, B, 109.5125, 115.0889)  # note B center, alpha and beta definition\n        self.test(cassini.__name__, p.toStr(prec=4), '(2128.3903, 5578.1443, 0)')\n        p = C_(A).cassini(C, B, 109.5125, 115.0889)\n        self.test(cassini.__name__, p.toRepr(prec=4), 'Cartesian_(2128.3903, 5578.1443, 0)')\n\n        t = collins5(A, C, B, 109.5125, 115.0889)  # note B center, alpha and beta definition\n        self.test(collins5.__name__, t.pointP.toStr(prec=4), '(2128.3903, 5578.1443, 0)', nl=1)\n        self.test(collins5.__name__, t.pointH.toStr(prec=4), '(1830.5948, 2576.2429, 0)')\n        r = fstr(t[2:], prec=4)\n        self.test(collins5.__name__, r, '1581.1388, 1562.0499, 2121.3203')\n        t = C_(A).collins5(C, B, 109.5125, 115.0889)\n        self.test(collins5.__name__, t.pointP.toRepr(prec=4), 'Cartesian_(2128.3903, 5578.1443, 0)')\n        self.test(collins5.__name__, t.pointH.toRepr(prec=4), 'Cartesian_(1830.5948, 2576.2429, 0)')\n        self.test(collins5.__name__, fstr(t[2:], prec=4), r)\n        self.test(collins5.__name__, fstr(t[2:], prec=4), r)\n        self.test(collins.__name__, C_(A).collins(C, B, 109.5125, 115.0889), t, nl=1)  # DEPRECATED\n\n        p = pierlot(C, B, A, 115.0889, 109.5125)  # note CCW order, alpha12 and alpha23 definition\n        self.test(pierlot.__name__, p.toStr(prec=4), '(2128.3903, 5578.1443, 0)', nl=1)\n        p = C_(C).pierlot(B, A, 115.0889, 109.5125)\n        self.test(pierlot.__name__, p.toRepr(prec=4), 'Cartesian_(2128.3903, 5578.1443, 0)')\n        p = C_(C).pierlot(B, A, 115.0889, 109.5125, useZ=True)  # _zidw coverage\n        self.test(pierlot.__name__, p.toRepr(prec=4), 'Cartesian_(2128.3903, 5578.1443, 0.0)')\n\n        p = pierlotx(C, B, A, -115.0889, 0, 109.5125)  # note CCW order, alpha1, alpha2, alpha3 definition\n        self.test(pierlotx.__name__, p.toStr(prec=4), '(2128.3903, 5578.1443, 0)', nl=1)\n        p = C_(C).pierlotx(B, A, -115.0889, 0, 109.5125)\n        self.test(pierlotx.__name__, p.toRepr(prec=4), 'Cartesian_(2128.3903, 5578.1443, 0)')\n        p = C_(C).pierlotx(B, A, -115.0889, 0, 109.5125, useZ=True)  # _zidw coverage\n        self.test(pierlotx.__name__, p.toRepr(prec=4), 'Cartesian_(2128.3903, 5578.1443, 0.0)')\n\n        t = tienstra7(A, B, C, 115.0889, None, 109.5125)  # note alpha, beta and gamma definition\n        self.test(tienstra7.__name__, t.pointP.toStr(prec=4), '(2128.3903, 5578.1443, 0)', nl=1)\n        r = fstr(t[1:], prec=4)\n        self.test(tienstra7.__name__, r, '47.9357, 84.8896, 47.1747, 1581.1388, 2121.3203, 1562.0499')\n        t = C_(A).tienstra7(B, C, 115.0889, None, 109.5125)\n        self.test(tienstra7.__name__, t.pointP.toRepr(prec=4), 'Cartesian_(2128.3903, 5578.1443, 0)')\n        self.test(tienstra7.__name__, fstr(t[1:], prec=4), r)\n        self.test(tienstra.__name__, C_(A).tienstra(B, C, 115.0889, None, 109.5125), t, nl=1)  # DEPRECATED\n\n        p = cassini(A, C, B, 109.3, 115.1)  # note B center, alpha and beta definition\n        self.test(cassini.__name__, p.toStr(prec=4), '(2129.3018, 5575.8016, 0)', nl=1)\n\n        t = collins5(A, C, B, 109.3, 115.1)  # note B center, alpha and beta definition\n        self.test(collins5.__name__, t.pointP.toStr(prec=4), '(2129.3018, 5575.8016, 0)', nl=1)\n        self.test(collins5.__name__, t.pointH.toStr(prec=4), '(1835.1911, 2563.0708, 0)')\n        self.test(collins5.__name__, fstr(t[2:], prec=4), '1581.1388, 1562.0499, 2121.3203')\n        self.test(collins.__name__, collins(A, C, B, 109.3, 115.1), t, nl=1)  # DEPRECATED\n\n        p = pierlot(C, B, A, 115.1, 109.3)  # note CCW order, alpha12 and alpha23 definition\n        self.test(pierlot.__name__, p.toStr(prec=4), '(2129.3018, 5575.8016, 0)', nl=1)\n        try:\n            p = pierlot(C, B, A, 115.1, 109.3, eps=0).toStr(prec=4)\n        except ResectionError as x:\n            p = str(x)\n        self.test(pierlot.__name__, p, ' invalid', known=endswith)\n\n        p = pierlotx(C, B, A, -115.1, 0, 109.3)  # note CCW order, alpha1, alpha2, alpha3 definition\n        self.test(pierlotx.__name__, p.toStr(prec=4), '(2129.3018, 5575.8016, 0)', nl=1)\n        p = pierlotx(A, B, C, -115.1, 0, 109.3)\n        self.test(pierlotx.__name__, p.toStr(prec=4), '(2128.2026, 4708.1218, 0)')\n        p = pierlotx(B, C, A, 0, 0, 109.3)\n        self.test(pierlotx.__name__, p.toStr(prec=4), '(1969.0673, 6633.5695, 0)')\n        p = pierlotx(C, A, B, 0, 0, 109.3)\n        self.test(pierlotx.__name__, p.toStr(prec=4), '(2438.0239, 5094.568, 0)')\n\n        t = tienstra7(A, B, C, 115.1, 135.6, 109.3)  # note alpha, beta and gamma definition\n        self.test(tienstra7.__name__, t.pointP.toStr(prec=4), '(2129.3018, 5575.8016, 0)',nl=1)\n        self.test(tienstra7.__name__, fstr(t[1:], prec=4), '47.9357, 84.8896, 47.1747, 1581.1388, 2121.3203, 1562.0499')\n        self.test(tienstra.__name__, tienstra(A, B, C, 115.1, beta=135.6, gamma=109.3), t, nl=1)  # DEPRECATED\n\n    def testSnellius(self):\n        n = snellius3.__name__\n\n        c = triSide(10, 30, PI_4)\n        rA, rB, rC, _ = triAngle4(10, 30, c)\n        t = triSide4(rA, rB, c)\n        self.test(triSide4.__name__, t, '(10.0, 30.0, 0.785398, 8.840862)', nl=1)\n\n        t = snellius3(10, 30, 45, degrees(rA), degrees(rA / 2))\n        self.test(n, t, '(17.54582, 38.564239, 46.317675)', nl=1)\n\n        rA, rB, rC, _ = triAngle4(320, 435, 598)\n        t = snellius3(320, 435, degrees(rC), 30, 15)\n        self.test(n, t, '(844.880591, 571.107418, 835.462796)')\n\n        rA, rB, rC, _ = triAngle4(100, 100, 100)\n        t = snellius3(100, 100, degrees(rC), 30, 20)\n        self.test(n, t, '(128.557522, 100.0, 187.938524)')\n\n        rA, rB, rC, _ = triAngle4(435, 320, 600)\n        t = snellius3(435, 320, degrees(rC), 15, 30)\n        self.test(n, t, '(567.480866, 847.344375, 832.446688)')\n\n        rA, rB, rC, _ = triAngle4(1716, 924, 1056)\n        t = snellius3(1716, 924, degrees(rC), 0.0, 14.5)  # alpha 0.0 OK\n        self.test(n, t, '(4064.197388, 3652.539386, 4988.197388)', known=isWindows)  # (0.0, 3652....)\n\n    def testTri(self):  # for coverage\n        t = triAngle(1, 2, 3)\n        self.test(triAngle.__name__, t, PI, prec=9, nl=1)\n        t = triAngle4(1, 2, EPS0 / 2)  # DEPRECATED\n        self.test(triAngle4.__name__, t, '(1.570796, 1.570796, 0.0, 0.0)', known=True)\n        t = triAngle5(1, 2, EPS0 / 2)\n        self.test(triAngle5.__name__, t, '(1.570796, 1.570796, 0.0, 0.0, 0.0)', known=True)\n        t = triAngle5(4, 13, 15)\n        self.test(triAngle5.__name__, t, '(0.24871, 0.927295, 1.965587, 1.5, 24.0)', known=True)\n        t = triArea(4, 13, 15)\n        self.test(triArea.__name__, t, '24.0')\n        t = triSide2(0, 2, 0)\n        self.test(triSide2.__name__, t, '(2.0, 0.0)')\n        t = triSide2(0, 2, PI)\n        self.test(triSide2.__name__, t, '(2.0, 3.141593)')\n\n    def testWildberger(self):\n        n = wildberger3.__name__\n\n        t = wildberger3(10, 30, 23.994498, 17.139272, 8.569636)\n        self.test(n, t, '(17.54582, 38.56424, 46.317675)', nl=1)\n\n        t = wildberger3(320, 435, 598, 30, 15)\n        self.test(n, t, '(844.880591, 571.107418, 835.462796)')\n\n        t = wildberger3(100, 100, 100, 30, 20)\n        self.test(n, t, '(128.557522, 100.0, 187.938524)')\n\n        t = wildberger3(435, 320, 600, 15, 30)\n        self.test(n, t, '(567.480866, 847.344375, 832.446688)')\n\n        t = wildberger3(1716, 924, 1056, 0.0000001, 14.5)\n        self.test(n, t, '(4064.197343, 3652.539342, 4988.197355)', known=round(t[0], 3) == 4064.197)\n\n\nif __name__ == '__main__':\n\n    from pygeodesy.cartesianBase import CartesianBase\n\n    class Cartesian_(CartesianBase):\n        pass\n\n    t = Tests(__file__, __version__)\n    t.testResections(Cartesian_, Vector3d)\n    t.testSnellius()\n    t.testWildberger()\n    t.testTri()\n    t.results()\n    t.exit()\n"
  },
  {
    "path": "test/testRhumb_aux_.py",
    "content": "\n# -*- coding: utf-8 -*-\n\n# Some basic C{rhumb.aux_} vs C++ C{RhumbSolve} tests.\n\n__all__ = ('Tests',)\n__version__ = '24.08.30'\n\nfrom bases import coverage, _fLate, RhumbSolve, startswith, TestsBase\n\nfrom pygeodesy import NN, Caps, classname, DIG, Ellipsoid, Ellipsoids, GDict, \\\n                      isfinite, itemsorted, latDMS, lonDMS, parseDMS, parseDMS2, \\\n                      RhumbAux, RhumbLineAux, RhumbLineSolve, R_M, \\\n                      Fwelford, fremainder, pairs\nfrom pygeodesy.interns import _COLON_, _COMMASPACE_, _DOT_\nfrom pygeodesy.rhumb import aux_ as rhumbaux  # NOT deprecated.rhumbaux\n\n_C = _COLON_\n_G = '%%.%sg' % (DIG,)\n\n\nclass Tests(TestsBase):\n\n    def testDiffs(self, name, r, rx, nl, e=1e-13, known=False):\n        for n, v in itemsorted(r):\n            x = rx.get(n, None)\n            if x is not None:\n                r = abs(v - x) / abs(x or 1)\n                k = known or int(v) == int(x) or r < e  # rel error\n                self.test(_DOT_(name, n), v, x, fmt=_G, error=r, known=k, nl=nl)\n                nl = 0\n\n    def testDirect(self, E, debug=False):\n        self.subtitle(rhumbaux, 'DirectX vs ...')\n        R = E.rhumbaux\n\n        R.exact = False\n        r = R.Direct(40.6, -73.8, -92.38889, 12782581.068)\n        self.testDiffs(R.Direct.__name__, r, GDict(lat1=40.6, lat2=35.79999595,\n                                                   lon1=-73.8, lon2=140.30000410,\n                                                   azi12=-92.38889, s12=12782581.068), 0, e=90)  # XXX neg!\n        R.debug = debug\n        R.exact = True\n        # GeographicLib.RhumbSolve example, _DEBUG_ALL results\n        rX = GDict(a=6378137, b=6356752.31424518,  # WGS84\n                   f=3.35281066474748e-03, f1=9.966471893352525e-01,\n                   e=8.181919084262149e-02, e2=6.694379990141316e-03,\n                   L=10001965.7293127, k2=-0.00673949674227643,\n                   lat1=40.6, lat2=71.688899882813, azi12=51.0,\n                   lon1=-73.8, lon2=0.255519824423359,  # m12=0, M12=1, M21=1,\n                   mu1=40.457426625097, mu2=71.6026636715225, mu12=31.1452370464256,\n                   psi1=44.2483764794879, salp=0.777145961456971, calp=0.629320391049837,\n                   s12=5500000, S12=44095641862956.1)\n\n        r = R.Direct(40.6, -73.8, 51, 5.5e6, outmask=R.ALL)  # from JFK about NE\n        self.testDiffs('GDict', r, rX, 1, e=1e-11)  # Windows lon2=0.2555..23445\n#       self.test('iteration', r.iteration, r.iteration)\n\n        rl = R.Line(40.6, -73.8, 51)  # coverage\n        n = classname(rl)\n        t = rl.toStr()\n        self.test(n, t, t, nl=1)\n        self.test(classname(R), rl.rhumb.toRepr(), R.toRepr())\n        self.test(rl.__class__.isLoxodrome.name, rl.isLoxodrome, True)\n\n        a = 51.0\n        r = rl.ArcPosition(a, rl.ALL)  # coverage\n        self.testDiffs(rl.ArcPosition.__name__, r, GDict(lat1=40.6, lat2=72.635128,\n                                                   lon1=-73.8, lon2=4.068528, S12=46665957571716.4,\n                                                   azi12=51.0, a12=a, s12=5667780.579944), 1, e=1e-5)\n        s = r.s12\n        r = rl.Position(s, rl.ALL)  # coverage\n        self.testDiffs(rl.Position.__name__, r, GDict(lat1=40.6, lat2=72.635128,\n                                                lon1=-73.8, lon2=4.068528, S12=46665957571716.4,\n                                                azi12=51.0, a12=a, s12=s), 1, e=1e-5)\n\n        s = 12782581.068\n        r = R.Direct(40.6, -73.8, -92.38889, s)  # coverage\n        self.testDiffs(R.Direct.__name__, r, GDict(lat1=40.6, lat2=35.8,\n                                                   lon1=-73.8, lon2=140.3,\n                                                   azi12=-92.38889, a12=115.02062, s12=s), 1, e=1e-5)\n        a = r.a12\n        r = R.ArcDirect(40.6, -73.8, -92.38889, a)  # coverage\n        self.testDiffs(R.ArcDirect.__name__, r, GDict(lat1=40.6, lat2=35.8,\n                                                      lon1=-73.8, lon2=140.3,\n                                                      azi12=-92.38889, a12=a, s12=s), 1, e=1e-5)\n\n        r = R.Direct8(40.6, -73.8, -92.38889, 12782581.068)  # coverage\n        t = str(r)\n        self.test(R.Direct8.__name__, t, t, nl=1)\n        t = str(r.toDirect9Tuple())  # coverage\n        self.test(r.toDirect9Tuple.__name__, t, t)\n\n        t = R.Line(40.6, -73.8, 51, caps=R.STANDARD)  # coverage\n        t = str(r)\n        self.test(R.Line.__name__, t, t)  # == DirectLine\n\n        r = RhumbLineAux(R, 40.6, -73.8, 51, name='Test')  # coverage\n        self.test(RhumbLineAux.__name__, r, R.Line(40.6, -73.8, 51), nl=1)\n        r = R.DirectLine(35.8, 140.3, -51)  # coverage\n        self.test(R.DirectLine.__name__, r, R.Line(35.8, 140.3, -51),)\n\n        if RhumbSolve:\n            S = E.rhumbsolve\n            S.reverse2 = True\n            t = S.Direct3(40.6, -73.8, 51, 5.5e6).toStr()\n            self.test('Direct3', t, '(71.6889, 0.25552, 231.0)')\n            S.reverse2 = False\n            t = S.Direct3(40.6, -73.8, 51, 5.5e6).toStr()\n            self.test('Direct3', t, '(71.6889, 0.25552, 51.0)')\n\n            s = S.Direct(40.6, -73.8, 51, 5.5e6, outmask=S.ALL)\n            self.testDiffs('RhumbSolve', rX, s, 1, e=9)  # XXX FIX\n            self.test('iteration', s.iteration, r.iteration)\n            # extreme ob- and prolate\n            for f in range(-7, 10):  # -9, -8 throw an Ellipsoid.e21 AssertionError\n                try:\n                    f *= 0.1\n                    r = R.classof(E.a, f).Direct(40.6, -73.8, 51, 5.5e6, outmask=R.ALL)\n                    s = S.classof(E.a, f).Direct(40.6, -73.8, 51, 5.5e6, outmask=S.ALL)\n                    self.testDiffs(_fLate(f), r, s, 1, e=9)  # XXX FIX\n                except AssertionError:  # eps for f < -0.7\n                    pass\n\n    def testInverse(self, E, debug=False):\n        self.subtitle(rhumbaux, 'InverseX vs ...')\n        R = E.rhumbaux\n\n        R.exact = False\n        r = R.Inverse(40.6, -73.8, 35.8, 140.3, outmask=R.ALL)  # JFK to Tokyo Narita\n        self.testDiffs(R.Inverse.__name__, r, GDict(lat1=40.6, lat2=35.8,\n                                                    lon1=-73.8, lon2=140.3,\n                                                    azi12=-92.38889, s12=1282.19384,  # 12782581.0676842,\n                                                    S12=21207525604650.8), 0, e=1e-2)  # XXX neg!\n\n        # GeographicLib.RhumbSolve example, _DEBUG_ALL results\n        rX = GDict(a=6378137, b=6356752.31424518,  # WGS84\n                   f=3.35281066474748e-03, f1=9.966471893352525e-01,\n                   e=8.181919084262149e-02, e2=6.694379990141316e-03,\n                   L=10001965.7293127, k2=-0.00673949674227643,\n                   lat1=40.6, lat2=51.6,  azi12=77.7683897102557,\n                   lon1=-73.8, lon2=-0.5, lon12=73.3,  # m12=0, M12=1, M21=1,\n                   psi1=44.2483764794879, psi2=60.1387327632216, psi12=15.8903562837337,\n                   s12=5771083.38332803, S12=37395209100030.4)\n\n        R.debug = debug\n        R.exact = True\n        r = R.Inverse(40.6, -73.8, 51.6, -0.5, outmask=R.ALL)  # JFK to LHR\n        self.testDiffs('GDict', r, rX, 1)\n\n        # <https://GeographicLib.SourceForge.io/C++/doc/RhumbSolve.1.html>\n        r = R.Inverse(*(parseDMS2('40:38:23N', '073:46:44W', sep=':') +  # JFK\n                        parseDMS2('01:21:33N', '103:59:22E', sep=':')))  # Chanhi Airport, Singapore\n        self.testDiffs(R.Inverse.__name__, r, GDict(lat1=40.639722, lat2=1.359167,\n                                                    lon=-73.778889, lon2=103.989444,\n                                                    azi12=parseDMS('103:34:58.2', sep=':'),\n                                                    s12=18523563), 1, e=1e-6)\n\n        # <https://GeographicLib.SourceForge.io/C++/doc/RhumbSolve.1.html>\n        L = R.Line(*(parseDMS2('40:38:23N', '073:46:44W', sep=':') +\n                     (parseDMS('103:34:58.2', sep=':'),)))\n        for i, x in enumerate(('40:38:23.0N 073:46:44.0W 0',\n                               '36:24:30.3N 051:28:26.4W 9817078307821',\n                               '32:10:26.8N 030:20:57.3W 18224745682005',\n                               '27:56:13.2N 010:10:54.2W 25358020327741',\n                               '23:41:50.1N 009:12:45.5E 31321269267102',\n                               '19:27:18.7N 027:59:22.1E 36195163180159',\n                               '15:12:40.2N 046:17:01.1E 40041499143669',\n                               '10:57:55.9N 064:12:52.8E 42906570007050',\n                               '06:43:07.3N 081:53:28.8E 44823504180200',\n                               '02:28:16.2N 099:24:54.5E 45813843358737',\n                               '01:46:36.0S 116:52:59.7E 45888525219677')):\n            lat2, lon2, S12 = x.split()\n            n = '%d,000 Km ' % (i,)\n            r = L.Position(i * 2e6, outmask=Caps.LATITUDE_LONGITUDE_AREA)\n            self.test(n + 'lat2', latDMS(r.lat2, prec=1, s_D=_C, s_M=_C, s_S=NN), lat2, nl=0 if i else 1)\n            self.test(n + 'lon2', lonDMS(r.lon2, prec=1, s_D=_C, s_M=_C, s_S=NN), lon2)\n            S = int(S12)\n            e = (abs(r.S12 - S) / S) if S else 0\n            self.test(n + 'S12 ', int(r.S12), S12, known=e < 2e-3)\n\n        P = Ellipsoid(E.b, E.a, name='_Prolate').rhumbaux  # '_...' for iOS\n        t = str(P.Inverse(40.6, -73.8, 51.6, -0.5))  # coverage\n        self.test(P.Inverse.__name__, t, t, nl=1)\n        r = P.Inverse8(40.6, -73.8, 51.6, -0.5)  # coverage\n        t = str(r)\n        self.test(P.Inverse8.__name__, t, t)\n        t = str(r.toInverse10Tuple())\n        self.test(r.toInverse10Tuple.__name__, t, t)\n        rl = R.InverseLine(51.6, -0.5, 40.6, -73.8)\n        t = str(rl.azi12)\n        self.test(R.InverseLine.__name__, t, t)\n\n        if RhumbSolve:\n            S = E.rhumbsolve\n            t = S.Inverse1(40.6, -73.8, 51.6, -0.5)\n            self.test('Inverse1', t, '51.9295425', prec=7, nl=1)\n            t = S.Inverse3(40.6, -73.8, 51.6, -0.5).toStr()\n            self.test('Inverse3', t, '(5771083.383328, 77.76839, 77.76839)')\n\n            s = S.Inverse(40.6, -73.8, 51.6, -0.5, outmask=S.ALL)\n            self.testDiffs('RhumbSolve', rX, s, 1, e=1e-5, known=True)  # XXX FIX\n            self.test('iteration', s.iteration, s.iteration)\n\n            # extreme ob- and prolate\n            for f in range(-7, 10):  # -9, -8 throw an Ellipsoid.e21 AssertionError\n                try:\n                    f *= 0.1\n                    r = R.classof(E.a, f).Inverse(40.6, -73.8, 51.6, -0.5, outmask=R.ALL)\n                    s = S.classof(E.a, f).Inverse(40.6, -73.8, 51.6, -0.5, outmask=S.ALL)\n                    self.testDiffs(_fLate(f), s, r, 1, e=1e-5, known=True)  # XXX FIX\n                except AssertionError:  # eps for f < -0.7\n                    pass\n\n    def testRhumbLine(self, E):\n        R = E.rhumbaux\n        self.test('R.exact', R.exact, True, nl=1)\n        R.exact = x = 0\n        self.test('R.exact', R.exact, bool(x))\n        self.test('R', repr(R), '''RhumbAux(RAorder=None, TMorder=6, ellipsoid=Ellipsoid(name='WGS84',''', known=startswith)\n        rl = R.Line(1, 2, 3)\n        R.exact = x = 1\n        self.test('R.exact', R.exact, bool(x), nl=1)\n        self.test('R.Line.exact', rl.exact, bool(x))\n        self.test('R.Line', repr(rl), '''RhumbLineAux(TMorder=6, azi12=3.0, exact=True, lat1=1.0, lon1=2.0, rhumb=RhumbAux(RAorder=None, TMorder=6, ellipsoid=Ellipsoid(name='WGS84',''', known=startswith)\n#       t = R.orders(4, 8)\n#       self.test(R.orders.__name__, str(t), '(6, 6)')\n#       t = R.orders(6, 6)\n#       self.test(R.orders.__name__, str(t), '(4, 8)', nt=1)\n\n        R.TMorder = 7\n        for exact in (False, True, None):\n            nonexact = exact is None\n            # <https://SourceForge.net/p/geographiclib/discussion/1026620/thread/2ddc295e/>\n            r = R.Line(30, 0, 45, caps=R.LINE_OFF)\n            for est in (None,) if nonexact else (1e6, None):\n                p = r.PlumbTo(60, 0, exact=exact, est=est)\n                t = p.toRepr()\n                self.test('PlumbTo(exact=%s, est=%s)' % (exact, est), t, t, nl=1)\n                if nonexact:\n                    self.test('a02',   p.a02,      17.798332, prec=6)\n                    self.test('s02',   p.s02, 1977981.142985, prec=6)\n                    self.test('s12',   p.s12, 2169465.957531, prec=6)\n                    self.test('azi02', p.azi02,   135.000,    prec=3)\n                else:\n                    self.test('a02',   p.a02,      17.967658, prec=6)\n                    self.test('s02',   p.s02, 1997960.116871, prec=6)\n                    self.test('s12',   p.s12, 3083112.636236, prec=6)\n                    self.test('azi0',  p.azi0,    113.736,    prec=3)\n                    azi2 = p.at + p.azi12\n                    self.test('azi2',    azi2,    135.000,    prec=3)\n                self.test('iteration', p.iteration, p.iteration)\n\n            t = str(r.Intersecant2(60, 0, radius=r.degrees2m(30)))\n            self.test('Intersecant2', t, t, nl=1)\n\n            # stats\n            m = n = j = 0\n            s = Fwelford()\n            r = R.Line(20, 0, 0, caps=R.LINE_OFF)\n            for d in range(0, 361, 60 if coverage else 6):\n                r.azi12 = d\n                p = r.PlumbTo(0, 40, exact=exact)\n                i = p.iteration\n#               t = p.toRepr()\n#               self.test('at %d PlumbTo' % (d,), t, t)\n                t = r.distance2(p.lat2, p.lon2)\n                z = t.initial\n#               t = t.toRepr()\n#               self.test('at %d distance2' % (d,), t, t)\n#               self.test('at %d iteration' % (d,), i, i)\n                j = max(i, j)\n                if isfinite(z):  # XXX\n                    # azi difference with d\n                    if z < 0:\n                        z += 360\n                    z = fremainder(z - d, 360)\n                    if z > 90:\n                        z -= 180\n                    elif z < -90:\n                        z += 180\n                    m  = max(m, z)\n                    n  = min(n, z)\n                    s += z\n            d =  dict(exact=exact, min=n, mean=s.fmean(), stdev=s.fstdev(), max=m, iteration=j)\n            t = _COMMASPACE_(*pairs(d, prec=6))\n            z =  p.azi02 if nonexact else p.azi0\n            self.test('azi0*=%.3f' % (z,), t, t)\n        t = r.xTM.toRepr()  # coverage\n        self.test('xTM', t, t, nl=1)\n\n        # <https://www.MathWorks.com/help/map/ref/rhxrh.html>\n        R = RhumbAux(R_M, 0)  # sphere\n#       R.TMorder = 5\n        r = R.Line(10, -56,  35)\n        s = R.Line( 0, -10, 310)\n        p = r.Intersection(s)\n        t = p.toRepr()\n        self.test('Intersection', t, '(26.9774, -43.4088)', nl=1, known=True)\n        t = r.PlumbTo(p.lat2, p.lon2).toRepr()\n        self.test('PlumbTo', t, t)\n        t = s.PlumbTo(p.lat2, p.lon2).toRepr()\n        self.test('PlumbTo', t, t)\n        t = r.xTM.toRepr()  # coverage\n        self.test('xTM', t, t)\n\n        # <https://lost-contact.MIT.edu/afs/inf.ed.ac.uk/group/teaching/matlab-help/R2018a/help/map/calculate-intersection-of-rhumb-line-tracks.html>\n        R = RhumbAux(R_M, 0)  # sphere\n#       R.TMorder = 7\n        r = R.Line(37, -76,  90)\n        s = R.Line(15, -17, 315)\n        p = r.Intersection(s)\n        t = p.toRepr()\n        self.test('Intersection', t, '(37.0, -41.7028)', nl=1, known=True)\n        t = r.PlumbTo(p.lat2, p.lon2).toRepr()\n        self.test('PlumbTo', t, t)\n        t = s.PlumbTo(p.lat2, p.lon2).toRepr()\n        self.test('PlumbTo', t, t)\n        t = r.xTM.toRepr()  # coverage\n        self.test('xTM', t, t)\n\n        if RhumbSolve:  # coverage\n            for S in (E.rhumbsolve.Line(1, 2, 3), RhumbLineSolve(E.rhumbsolve, 1, 2, 3)):\n                t = S.toStr()\n                self.test('toStr', t, t, nl=1)\n                self.test('lat1', S.lat1, S.lat1)\n                self.test('lon1', S.lon1, S.lon1)\n                self.test('a', S.a, S.a)\n                self.test('f', S.f, S.f)\n                t = S.Position(1e6).toStr()\n                self.test('Position', t, t)\n                S.prec = t = 9\n                self.test('prec', S.prec, t)\n                S.reverse2 = t = True\n                self.test('reverse2', S.reverse2, t)\n                S.unroll = t = True\n                self.test('unroll', S.unroll, t)\n                S.verbose = t = True\n                self.test('verbose', S.verbose, t)\n\n\nif __name__ == '__main__':\n\n    from sys import argv\n\n    _debug = '-d' in argv or '--debug' in argv\n\n    E = Ellipsoids.WGS84\n    t = Tests(__file__, __version__, rhumbaux)\n\n    try:\n        t.testDirect(E, debug=_debug)\n    except ImportError as x:\n        t.skip(str(x), n=20)\n    try:\n        t.testInverse(E, debug=_debug)\n    except ImportError as x:\n        t.skip(str(x), n=60)\n    try:\n        t.testRhumbLine(E)\n    except ImportError as x:\n        t.skip(str(x), n=4)\n\n    t.results()\n    t.exit()\n"
  },
  {
    "path": "test/testRhumb_ekx.py",
    "content": "\n# -*- coding: utf-8 -*-\n\n# Some basic C{rhumb.ekx} vs C++ C{RhumbSolve} tests.\n\n__all__ = ('Tests',)\n__version__ = '23.11.30'\n\nfrom bases import coverage, _fLate, RhumbSolve, startswith, TestsBase\n\nfrom pygeodesy import NN, Caps, classname, DIG, Ellipsoid, GDict, isfinite, \\\n                      itemsorted, latDMS, lonDMS, parseDMS, parseDMS2, \\\n                      Rhumb, RhumbLine, RhumbLineSolve, R_M, \\\n                      Fwelford, fremainder, pairs\nfrom pygeodesy.interns import _COLON_, _COMMASPACE_, _DOT_\nfrom pygeodesy.rhumb import ekx as rhumbx  # NOT deprecated.rhumbx\n\n_C = _COLON_\n_G = '%%.%sg' % (DIG,)\n\n\nclass Tests(TestsBase):\n\n    def testDiffs(self, name, r, rx, nl, e=1e-13):\n        for n, v in itemsorted(r):\n            x = rx.get(n, None)\n            if x is not None:\n                # XXX neg S12 for f 0.9 from RhumbSolve 2.2\n                k = int(v) == int(x) or \\\n                   (v < 0 and n == 'S12') or \\\n                   (abs(v - x) / (x or 1)) < e  # rel error\n                self.test(_DOT_(name, n), v, x, fmt=_G, known=k, nl=nl)\n                nl = 0\n\n    def testDirect(self, E, debug=False):\n        self.subtitle(rhumbx, 'DirectX vs ...')\n        R = E.rhumbx\n\n        R.exact = False\n        r = R.Direct(40.6, -73.8, -92.38889, 12782581.068)\n        self.testDiffs(R.Direct.__name__, r, GDict(lat1=40.6, lat2=35.79999,\n                                                   lon1=-73.8, lon2=140.23651,\n                                                   azi12=-92.38889, s12=12782581.068), 0, e=1e-5)\n        R.debug = debug\n        R.exact = True\n        # GeographicLib.RhumbSolve example, _DEBUG_ALL results\n        rX = GDict(a=6378137, b=6356752.31424518,  # WGS84\n                   f=3.35281066474748e-03, f1=9.966471893352525e-01,\n                   e=8.181919084262149e-02, e2=6.694379990141316e-03,\n                   L=10001965.7293127, k2=-0.00673949674227643,\n                   lat1=40.6, lat2=71.688899882813, azi12=51.0,\n                   lon1=-73.8, lon2=0.255519824423359,  # m12=0, M12=1, M21=1,\n                   mu1=40.457426625097, mu2=71.6026636715225, mu12=31.1452370464256,\n                   psi1=44.2483764794879, salp=0.777145961456971, calp=0.629320391049837,\n                   s12=5500000, S12=44095641862956.1)\n\n        r = R.Direct(40.6, -73.8, 51, 5.5e6, outmask=R.ALL)  # from JFK about NE\n        self.testDiffs('GDict', r, rX, 1, e=1e-11)  # Windows lon2=0.2555..23445\n#       self.test('iteration', r.iteration, r.iteration)\n\n        rl = R.Line(40.6, -73.8, 51)  # coverage\n        n = classname(rl)\n        t = rl.toStr()\n        self.test(n, t, t, nl=1)\n        self.test(classname(R), rl.rhumb.toRepr(), R.toRepr())\n        self.test(rl.__class__.isLoxodrome.name, rl.isLoxodrome, True)\n\n        a = 51.0\n        r = rl.ArcPosition(a, rl.ALL)  # coverage\n        self.testDiffs(rl.ArcPosition.__name__, r, GDict(lat1=40.6, lat2=72.635128,\n                                                   lon1=-73.8, lon2=4.068528, S12=46665957571716.4,\n                                                   azi12=51.0, a12=a, s12=5667780.579944), 1, e=1e-5)\n        s = r.s12\n        r = rl.Position(s, rl.ALL)  # coverage\n        self.testDiffs(rl.Position.__name__, r, GDict(lat1=40.6, lat2=72.635128,\n                                                lon1=-73.8, lon2=4.068528, S12=46665957571716.4,\n                                                azi12=51.0, a12=a, s12=s), 1, e=1e-5)\n\n        s = 12782581.068\n        r = R.Direct(40.6, -73.8, -92.38889, s)  # coverage\n        self.testDiffs(R.Direct.__name__, r, GDict(lat1=40.6, lat2=35.8,\n                                                   lon1=-73.8, lon2=140.3,\n                                                   azi12=-92.38889, a12=115.02062, s12=s), 1, e=1e-5)\n        a = r.a12\n        r = R.ArcDirect(40.6, -73.8, -92.38889, a)  # coverage\n        self.testDiffs(R.ArcDirect.__name__, r, GDict(lat1=40.6, lat2=35.8,\n                                                      lon1=-73.8, lon2=140.3,\n                                                      azi12=-92.38889, a12=a, s12=s), 1, e=1e-5)\n\n        r = R.Direct8(40.6, -73.8, -92.38889, 12782581.068)  # coverage\n        t = str(r)\n        self.test(R.Direct8.__name__, t, t, nl=1)\n        t = str(r.toDirect9Tuple())  # coverage\n        self.test(r.toDirect9Tuple.__name__, t, t)\n\n        t = R.Line(40.6, -73.8, 51, caps=R.STANDARD)  # coverage\n        t = str(r)\n        self.test(R.Line.__name__, t, t)  # == DirectLine\n\n        r = RhumbLine(R, 40.6, -73.8, 51, name='Test')  # coverage\n        self.test(RhumbLine.__name__, r, R.Line(40.6, -73.8, 51), nl=1)\n        r = R.DirectLine(35.8, 140.3, -51)  # coverage\n        self.test(R.DirectLine.__name__, r, R.Line(35.8, 140.3, -51),)\n\n        if RhumbSolve:\n            S = E.rhumbsolve\n            S.reverse2 = True\n            t = S.Direct3(40.6, -73.8, 51, 5.5e6).toStr()\n            self.test('Direct3', t, '(71.6889, 0.25552, 231.0)')\n            S.reverse2 = False\n            t = S.Direct3(40.6, -73.8, 51, 5.5e6).toStr()\n            self.test('Direct3', t, '(71.6889, 0.25552, 51.0)')\n\n            s = S.Direct(40.6, -73.8, 51, 5.5e6, outmask=S.ALL)\n            self.testDiffs('RhumbSolve', rX, s, 1, e=9)  # XXX FIX\n            self.test('iteration', s.iteration, r.iteration)\n            # extreme ob- and prolate\n            for f in range(-7, 10):  # -9, -8 throw an Ellipsoid.e21 AssertionError\n                try:\n                    f *= 0.1\n                    r = R.classof(E.a, f).Direct(40.6, -73.8, 51, 5.5e6, outmask=R.ALL)\n                    s = S.classof(E.a, f).Direct(40.6, -73.8, 51, 5.5e6, outmask=S.ALL)\n                    self.testDiffs(_fLate(f), r, s, 1, e=9)  # XXX FIX\n                except AssertionError:  # eps for f < -0.7\n                    pass\n\n    def testInverse(self, E, debug=False):\n        self.subtitle(rhumbx, 'InverseX vs ...')\n        R = E.rhumbx\n\n        R.exact = False\n        r = R.Inverse(40.6, -73.8, 35.8, 140.3, outmask=R.ALL)  # JFK to Tokyo Narita\n        self.testDiffs(R.Inverse.__name__, r, GDict(lat1=40.6, lat2=35.8,\n                                                    lon1=-73.8, lon2=140.3,\n                                                    azi12=-92.38889, s12=12782581.0676842,\n                                                    S12=-63760642939073), 0, e=1e-5)\n\n        # GeographicLib.RhumbSolve example, _DEBUG_ALL results\n        rX = GDict(a=6378137, b=6356752.31424518,  # WGS84\n                   f=3.35281066474748e-03, f1=9.966471893352525e-01,\n                   e=8.181919084262149e-02, e2=6.694379990141316e-03,\n                   L=10001965.7293127, k2=-0.00673949674227643,\n                   lat1=40.6, lat2=51.6,  azi12=77.7683897102557,\n                   lon1=-73.8, lon2=-0.5, lon12=73.3,  # m12=0, M12=1, M21=1,\n                   psi1=44.2483764794879, psi2=60.1387327632216, psi12=15.8903562837337,\n                   s12=5771083.38332803, S12=37395209100030.4)\n\n        R.debug = debug\n        R.exact = True\n        r = R.Inverse(40.6, -73.8, 51.6, -0.5, outmask=R.ALL)  # JFK to LHR\n        self.testDiffs('GDict', r, rX, 1)\n\n        # <https://GeographicLib.SourceForge.io/C++/doc/RhumbSolve.1.html>\n        r = R.Inverse(*(parseDMS2('40:38:23N', '073:46:44W', sep=':') +  # JFK\n                        parseDMS2('01:21:33N', '103:59:22E', sep=':')))  # Chanhi Airport, Singapore\n        self.testDiffs(R.Inverse.__name__, r, GDict(lat1=40.639722, lat2=1.359167,\n                                                    lon=-73.778889, lon2=103.989444,\n                                                    azi12=parseDMS('103:34:58.2', sep=':'),\n                                                    s12=18523563), 1, e=1e-6)\n\n        # <https://GeographicLib.SourceForge.io/C++/doc/RhumbSolve.1.html>\n        L = R.Line(*(parseDMS2('40:38:23N', '073:46:44W', sep=':') +\n                     (parseDMS('103:34:58.2', sep=':'),)))\n        for i, x in enumerate(('40:38:23.0N 073:46:44.0W 0',\n                               '36:24:30.3N 051:28:26.4W 9817078307821',\n                               '32:10:26.8N 030:20:57.3W 18224745682005',\n                               '27:56:13.2N 010:10:54.2W 25358020327741',\n                               '23:41:50.1N 009:12:45.5E 31321269267102',\n                               '19:27:18.7N 027:59:22.1E 36195163180159',\n                               '15:12:40.2N 046:17:01.1E 40041499143669',\n                               '10:57:55.9N 064:12:52.8E 42906570007050',\n                               '06:43:07.3N 081:53:28.8E 44823504180200',\n                               '02:28:16.2N 099:24:54.5E 45813843358737',\n                               '01:46:36.0S 116:52:59.7E 45888525219677')):\n            lat2, lon2, S12 = x.split()\n            n = '%d,000 Km ' % (i,)\n            r = L.Position(i * 2e6, outmask=Caps.LATITUDE_LONGITUDE_AREA)\n            self.test(n + 'lat2', latDMS(r.lat2, prec=1, s_D=_C, s_M=_C, s_S=NN), lat2, nl=0 if i else 1)\n            self.test(n + 'lon2', lonDMS(r.lon2, prec=1, s_D=_C, s_M=_C, s_S=NN), lon2)\n            S = int(S12)\n            e = (abs(r.S12 - S) / S) if S else 0\n            self.test(n + 'S12 ', int(r.S12), S12, known=e < 2e-3)\n\n        P = Ellipsoid(E.b, E.a, name='_Prolate').rhumbx  # '_...' for iOS\n        t = str(P.Inverse(40.6, -73.8, 51.6, -0.5))  # coverage\n        self.test(P.Inverse.__name__, t, t, nl=1)\n        r = P.Inverse8(40.6, -73.8, 51.6, -0.5)  # coverage\n        t = str(r)\n        self.test(P.Inverse8.__name__, t, t)\n        t = str(r.toInverse10Tuple())\n        self.test(r.toInverse10Tuple.__name__, t, t)\n        rl = R.InverseLine(51.6, -0.5, 40.6, -73.8)\n        t = str(rl.azi12)\n        self.test(R.InverseLine.__name__, t, t)\n\n        if RhumbSolve:\n            S = E.rhumbsolve\n            t = S.Inverse1(40.6, -73.8, 51.6, -0.5)\n            self.test('Inverse1', t, '51.9295425', prec=7, nl=1)\n            t = S.Inverse3(40.6, -73.8, 51.6, -0.5).toStr()\n            self.test('Inverse3', t, '(5771083.383328, 77.76839, 77.76839)')\n\n            s = S.Inverse(40.6, -73.8, 51.6, -0.5, outmask=S.ALL)\n            self.testDiffs('RhumbSolve', rX, s, 1, e=9)  # XXX FIX\n            self.test('iteration', s.iteration, s.iteration)\n\n            # extreme ob- and prolate\n            for f in range(-7, 10):  # -9, -8 throw an Ellipsoid.e21 AssertionError\n                try:\n                    f *= 0.1\n                    r = R.classof(E.a, f).Inverse(40.6, -73.8, 51.6, -0.5, outmask=R.ALL)\n                    s = S.classof(E.a, f).Inverse(40.6, -73.8, 51.6, -0.5, outmask=S.ALL)\n                    self.testDiffs(_fLate(f), s, r, 1, e=9)  # XXX FIX\n                except AssertionError:  # eps for f < -0.7\n                    pass\n\n    def testRhumbLine(self, E):\n        R = E.rhumbx\n        self.test('R.exact', R.exact, True, nl=1)\n        R.exact = x = 0\n        self.test('R.exact', R.exact, bool(x))\n        self.test('R', repr(R), '''Rhumb(RAorder=6, TMorder=6, ellipsoid=Ellipsoid(name='WGS84',''', known=startswith)\n        rl = R.Line(1, 2, 3)\n        R.exact = x = 1\n        self.test('R.exact', R.exact, bool(x), nl=1)\n        self.test('R.Line.exact', rl.exact, bool(x))\n        self.test('R.Line', repr(rl), '''RhumbLine(TMorder=6, azi12=3.0, exact=True, lat1=1.0, lon1=2.0, rhumb=Rhumb(RAorder=6, TMorder=6, ellipsoid=Ellipsoid(name='WGS84',''', known=startswith)\n        t = R.orders(4, 8)\n        self.test(R.orders.__name__, str(t), '(6, 6)')\n        t = R.orders(6, 6)\n        self.test(R.orders.__name__, str(t), '(4, 8)', nt=1)\n\n        R.TMorder = 7\n        for exact in (False, True, None):\n            nonexact = exact is None\n            # <https://SourceForge.net/p/geographiclib/discussion/1026620/thread/2ddc295e/>\n            r = R.Line(30, 0, 45, caps=R.LINE_OFF)\n            for est in (None,) if nonexact else (1e6, None):\n                p = r.PlumbTo(60, 0, exact=exact, est=est)\n                t = p.toRepr()\n                self.test('PlumbTo(exact=%s, est=%s)' % (exact, est), t, t, nl=1)\n                if nonexact:\n                    self.test('a02',   p.a02,      17.798332, prec=6)\n                    self.test('s02',   p.s02, 1977981.142985, prec=6)\n                    self.test('s12',   p.s12, 2169465.957531, prec=6)\n                    self.test('azi02', p.azi02,   135.000,    prec=3)\n                else:\n                    self.test('a02',   p.a02,      17.967658, prec=6)\n                    self.test('s02',   p.s02, 1997960.116871, prec=6)\n                    self.test('s12',   p.s12, 3083112.636236, prec=6)\n                    self.test('azi0',  p.azi0,    113.736,    prec=3)\n                    azi2 = p.at + p.azi12\n                    self.test('azi2',    azi2,     135.000,   prec=3)\n                self.test('iteration', p.iteration, p.iteration)\n\n            t = str(r.Intersecant2(60, 0, radius=r.degrees2m(30)))\n            self.test('Intersecant2', t, t, nl=1)\n\n            # stats\n            m = n = j = 0\n            s = Fwelford()\n            r = R.Line(20, 0, 0, caps=R.LINE_OFF)\n            for d in range(0, 361, 60 if coverage else 6):\n                r.azi12 = d\n                p = r.PlumbTo(0, 40, exact=exact)\n                i = p.iteration\n#               t = p.toRepr()\n#               self.test('at %d PlumbTo' % (d,), t, t)\n                t = r.distance2(p.lat2, p.lon2)\n                z = t.initial\n#               t = t.toRepr()\n#               self.test('at %d distance2' % (d,), t, t)\n#               self.test('at %d iteration' % (d,), i, i)\n                j = max(i, j)\n                if isfinite(z):  # XXX\n                    # azi difference with d\n                    if z < 0:\n                        z += 360\n                    z = fremainder(z - d, 360)\n                    if z > 90:\n                        z -= 180\n                    elif z < -90:\n                        z += 180\n                    m  = max(m, z)\n                    n  = min(n, z)\n                    s += z\n            d =  dict(exact=exact, min=n, mean=s.fmean(), stdev=s.fstdev(), max=m, iteration=j)\n            t = _COMMASPACE_(*pairs(d, prec=6))\n            z =  p.azi02 if nonexact else p.azi0\n            self.test('azi0*=%.3f' % (z,), t, t)\n        t = r.xTM.toRepr()  # coverage\n        self.test('xTM', t, t, nl=1)\n\n        # <https://www.MathWorks.com/help/map/ref/rhxrh.html>\n        R = Rhumb(R_M, 0)  # sphere\n#       R.TMorder = 5\n        r = R.Line(10, -56,  35)\n        s = R.Line( 0, -10, 310)\n        p = r.Intersection(s)\n        t = p.toRepr()\n        self.test('Intersection', t, '(26.9774, -43.4088)', nl=1, known=True)\n        t = r.PlumbTo(p.lat2, p.lon2).toRepr()\n        self.test('PlumbTo', t, t)\n        t = s.PlumbTo(p.lat2, p.lon2).toRepr()\n        self.test('PlumbTo', t, t)\n        t = r.xTM.toRepr()  # coverage\n        self.test('xTM', t, t)\n\n        # <https://lost-contact.MIT.edu/afs/inf.ed.ac.uk/group/teaching/matlab-help/R2018a/help/map/calculate-intersection-of-rhumb-line-tracks.html>\n        R = Rhumb(R_M, 0)  # sphere\n#       R.TMorder = 7\n        r = R.Line(37, -76,  90)\n        s = R.Line(15, -17, 315)\n        p = r.Intersection(s)\n        t = p.toRepr()\n        self.test('Intersection', t, '(37.0, -41.7028)', nl=1, known=True)\n        t = r.PlumbTo(p.lat2, p.lon2).toRepr()\n        self.test('PlumbTo', t, t)\n        t = s.PlumbTo(p.lat2, p.lon2).toRepr()\n        self.test('PlumbTo', t, t)\n        t = r.xTM.toRepr()  # coverage\n        self.test('xTM', t, t)\n\n        if RhumbSolve:  # coverage\n            for S in (E.rhumbsolve.Line(1, 2, 3), RhumbLineSolve(E.rhumbsolve, 1, 2, 3)):\n                t = S.toStr()\n                self.test('toStr', t, t, nl=1)\n                self.test('lat1', S.lat1, S.lat1)\n                self.test('lon1', S.lon1, S.lon1)\n                self.test('a', S.a, S.a)\n                self.test('f', S.f, S.f)\n                t = S.Position(1e6).toStr()\n                self.test('Position', t, t)\n                S.prec = t = 9\n                self.test('prec', S.prec, t)\n                S.reverse2 = t = True\n                self.test('reverse2', S.reverse2, t)\n                S.unroll = t = True\n                self.test('unroll', S.unroll, t)\n                S.verbose = t = True\n                self.test('verbose', S.verbose, t)\n\n\nif __name__ == '__main__':\n\n    from pygeodesy import Ellipsoids\n    from sys import argv\n\n    _debug = '-d' in argv or '--debug' in argv\n\n    E = Ellipsoids.WGS84\n    t = Tests(__file__, __version__, rhumbx)\n\n    t.testDirect(E, debug=_debug)\n    t.testInverse(E, debug=_debug)\n    t.testRhumbLine(E)\n\n    t.results()\n    t.exit()\n"
  },
  {
    "path": "test/testRoutes.py",
    "content": "\n# -*- coding: utf-8 -*-\n\n# Test data for the simplify functions.\n\n# <https://GitHub.com/milkbread/Visvalingam-Wyatt>  not Whyatt!\n# <https://GitHub.com/milkbread/Visvalingam-Wyatt/blob/master/route.json>\n# <https://GitHub.com/milkbread/Visvalingam-Wyatt/blob/master/out.json>\n# <https://milkbread.GitHub.io/Visvalingam-Wyatt>\n\nfrom bases import geographiclib, TestsBase\n\nfrom pygeodesy import LatLon_, R_KM, R_M, \\\n                      ellipsoidalVincenty, sphericalTrigonometry, \\\n                      areaOf, isclockwise, perimeterOf, unstr\n\nif geographiclib:\n    from geographiclib.geodesic import Geodesic\nelse:\n    Geodesic = None\n\n__all__ = ('Antarctica', 'Pts', 'PtsFFI', 'RdpFFI',\n           'PtsJS', 'PtsJS5', 'VwPts')\n__version__ = '23.08.23'\n\n# <https://GeographicLib.SourceForge.io/html/python/examples.html>\nAntarctica = [LatLon_(_lat, _lon) for _lat, _lon in (\n    (-63.1, -58),\n    (-72.9, -74),\n    (-71.9,-102),\n    (-74.9,-102),\n    (-74.3,-131),\n    (-77.5,-163),\n    (-77.4, 163),\n    (-71.7, 172),\n    (-65.9, 140),\n    (-65.7, 113),\n    (-66.6,  88),\n    (-66.9,  59),\n    (-69.8,  25),\n    (-70.0,  -4),\n    (-71.0, -14),\n    (-77.3, -33),\n    (-77.9, -46),\n    (-74.7, -61))]  # open\n\n# <https://GitHub.com/urschrei/rdp>\nPtsFFI = [LatLon_(_lat, _lon) for _lon, _lat in (\n    (-0.701206, 52.220489),  # lon, lat\n    (-0.701418, 52.220485),\n    (-0.703903, 52.220596),\n    (-0.705340, 52.220565),\n    (-0.705434, 52.220821),\n    (-0.705471, 52.221374),\n    (-0.705456, 52.221916),\n    (-0.705337, 52.222507),\n    (-0.705456, 52.222827),\n    (-0.705973, 52.223213),\n    (-0.707747, 52.224006),\n    (-0.708401, 52.224445),\n    (-0.710000, 52.225944),\n    (-0.710947, 52.226829),\n    (-0.713120, 52.228862),\n    (-0.713550, 52.229431),\n    (-0.713990, 52.231090),\n    (-0.714404, 52.232280),\n    (-0.714460, 52.232448),\n    (-0.714533, 52.232585),\n    (-0.714608, 52.232688),\n    (-0.714780, 52.232826),\n    (-0.714839, 52.232887),\n    (-0.714862, 52.232940),\n    (-0.714860, 52.233013),\n    (-0.714852, 52.233074),\n    (-0.714808, 52.233158),\n    (-0.714582, 52.233543),\n    (-0.714474, 52.233818),\n    (-0.714422, 52.234100),\n    (-0.714348, 52.234375),\n    (-0.714232, 52.234745),\n    (-0.714111, 52.234989),\n    (-0.714026, 52.235092),\n    (-0.713913, 52.235191),\n    (-0.713690, 52.235431),\n    (-0.713572, 52.235607),\n    (-0.713169, 52.236484),\n    (-0.713114, 52.236579),\n    (-0.712968, 52.236747),\n    (-0.712557, 52.237239),\n    (-0.712412, 52.237400),\n    (-0.712330, 52.237495),\n    (-0.711926, 52.238056),\n    (-0.711604, 52.238529),\n    (-0.711409, 52.238750),\n    (-0.711181, 52.238952),\n    (-0.711001, 52.239093),\n    (-0.710784, 52.239315),\n    (-0.710603, 52.239521),\n    (-0.709919, 52.240230),\n    (-0.709518, 52.240646),\n    (-0.709263, 52.240825),\n    (-0.708887, 52.240669),\n    (-0.708684, 52.240627),\n    (-0.708565, 52.240600),\n    (-0.708298, 52.240573),\n    (-0.707846, 52.240577),\n    (-0.707594, 52.240596),\n    (-0.707289, 52.240673),\n    (-0.707042, 52.240745),\n    (-0.706827, 52.240795),\n    (-0.706592, 52.240829),\n    (-0.706265, 52.240852),\n    (-0.705551, 52.240890),\n    (-0.705282, 52.240890),\n    (-0.704945, 52.240863),\n    (-0.704327, 52.240795),\n    (-0.703726, 52.240756))]\n\nRdpFFI = [LatLon_(_lat, _lon) for _lon, _lat in (\n    (-0.701206, 52.220489),  # lon, lat\n    (-0.705340, 52.220565),\n    (-0.705456, 52.222827),\n    (-0.713120, 52.228862),\n    (-0.714862, 52.232940),\n    (-0.709263, 52.240825),\n    (-0.703726, 52.240756))]\n\n# <https://GitHub.com/mourner/simplify-js/tree/master/test>\nPtsJS = [LatLon_(_y, _x) for _x, _y in (\n    (224.55, 250.15), (226.91, 244.19), (233.31, 241.45), (234.98, 236.06),\n    (244.21, 232.76), (262.59, 215.31), (267.76, 213.81), (273.57, 201.84),\n    (273.12, 192.16), (277.62, 189.03), (280.36, 181.41), (286.51, 177.74),\n    (292.41, 159.37), (296.91, 155.64), (314.95, 151.37), (319.75, 145.16),\n    (330.33, 137.57), (341.48, 139.96), (369.98, 137.89), (387.39, 142.51),\n    (391.28, 139.39), (409.52, 141.14), (414.82, 139.75), (427.72, 127.30),\n    (439.60, 119.74), (474.93, 107.87), (486.51, 106.75), (489.20, 109.45),\n    (493.79, 108.63), (504.74, 119.66), (512.96, 122.35), (518.63, 120.89),\n    (524.09, 126.88), (529.57, 127.86), (534.21, 140.93), (539.27, 147.24),\n    (567.69, 148.91), (575.25, 157.26), (580.62, 158.15), (601.53, 156.85),\n    (617.74, 159.86), (622.00, 167.04), (629.55, 194.60), (638.90, 195.61),\n    (641.26, 200.81), (651.77, 204.56), (671.55, 222.55), (683.68, 217.45),\n    (695.25, 219.15), (700.64, 217.98), (703.12, 214.36), (712.26, 215.87),\n    (721.49, 212.81), (727.81, 213.36), (729.98, 208.73), (735.32, 208.20),\n    (739.94, 204.77), (769.98, 208.42), (779.60, 216.87), (784.20, 218.16),\n    (800.24, 214.62), (810.53, 219.73), (817.19, 226.82), (820.77, 236.17),\n    (827.23, 236.16), (829.89, 239.89), (851.00, 248.94), (859.88, 255.49),\n    (865.21, 268.53), (857.95, 280.30), (865.48, 291.45), (866.81, 298.66),\n    (864.68, 302.71), (867.79, 306.17), (859.87, 311.37), (860.08, 314.35),\n    (858.29, 314.94), (858.10, 327.60), (854.54, 335.40), (860.92, 343.00),\n    (856.43, 350.15), (851.42, 352.96), (849.84, 359.59), (854.56, 365.53),\n    (849.74, 370.38), (844.09, 371.89), (844.75, 380.44), (841.52, 383.67),\n    (839.57, 390.40), (845.59, 399.05), (848.40, 407.55), (843.71, 411.30),\n    (844.09, 419.88), (839.51, 432.76), (841.33, 441.04), (847.62, 449.22),\n    (847.16, 458.44), (851.38, 462.79), (853.97, 471.15), (866.36, 480.77))]\n\nPtsJS5 = [LatLon_(_y, _x) for _x, _y in (\n    (224.55, 250.15), (267.76, 213.81), (296.91, 155.64), (330.33, 137.57),\n    (409.52, 141.14), (439.60, 119.74), (486.51, 106.75), (529.57, 127.86),\n    (539.27, 147.24), (617.74, 159.86), (629.55, 194.60), (671.55, 222.55),\n    (727.81, 213.36), (739.94, 204.77), (769.98, 208.42), (779.60, 216.87),\n    (800.24, 214.62), (820.77, 236.17), (859.88, 255.49), (865.21, 268.53),\n    (857.95, 280.30), (867.79, 306.17), (859.87, 311.37), (854.54, 335.40),\n    (860.92, 343.00), (849.84, 359.59), (854.56, 365.53), (844.09, 371.89),\n    (839.57, 390.40), (848.40, 407.55), (839.51, 432.76), (853.97, 471.15),\n    (866.36, 480.77))]\n\n# Paris-Berlin-Warsaw-Minsk-Moscow, see\n# <https://milkbread.GitHub.io/Visvalingam-Wyatt>\nPts = [LatLon_(_lat, _lon) for _lon, _lat in (\n    (2.329860, 48.860050),  # lon, lat\n    (2.330270, 48.860580),\n    (2.330650, 48.860691),\n    (2.331600, 48.860500),\n    (2.333330, 48.860119),\n    (2.336570, 48.859371),\n    (2.336840, 48.859329),\n    (2.337980, 48.859261),\n    (2.338480, 48.859180),\n    (2.339850, 48.858990),\n    (2.340110, 48.859501),\n    (2.340350, 48.859970),\n    (2.340570, 48.860390),\n    (2.340730, 48.860722),\n    (2.340820, 48.860901),\n    (2.340850, 48.860958),\n    (2.340950, 48.861130),\n    (2.341210, 48.861691),\n    (2.341580, 48.862419),\n    (2.341870, 48.862968),\n    (2.341910, 48.863049),\n    (2.341950, 48.863110),\n    (2.342140, 48.863468),\n    (2.342200, 48.863590),\n    (2.342330, 48.863621),\n    (2.342430, 48.863628),\n    (2.342530, 48.863628),\n    (2.342660, 48.863602),\n    (2.342770, 48.863602),\n    (2.342840, 48.863560),\n    (2.343080, 48.863468),\n    (2.343590, 48.863319),\n    (2.344070, 48.863201),\n    (2.344550, 48.863121),\n    (2.345200, 48.862991),\n    (2.345810, 48.863060),\n    (2.346850, 48.862991),\n    (2.347310, 48.862980),\n    (2.347620, 48.863010),\n    (2.347870, 48.863029),\n    (2.347960, 48.863071),\n    (2.348150, 48.863468),\n    (2.348260, 48.863640),\n    (2.348940, 48.863800),\n    (2.349060, 48.863861),\n    (2.349140, 48.863838),\n    (2.350000, 48.863628),\n    (2.350930, 48.863411),\n    (2.351350, 48.864170),\n    (2.351480, 48.864410),\n    (2.351940, 48.865238),\n    (2.352500, 48.866241),\n    (2.352940, 48.867039),\n    (2.353170, 48.867451),\n    (2.353270, 48.867641),\n    (2.353420, 48.867908),\n    (2.353580, 48.868191),\n    (2.353690, 48.868389),\n    (2.353850, 48.868690),\n    (2.353990, 48.868950),\n    (2.354200, 48.869320),\n    (2.354210, 48.869339),\n    (2.354940, 48.870609),\n    (2.355190, 48.871040),\n    (2.355280, 48.871208),\n    (2.355570, 48.871719),\n    (2.355880, 48.872280),\n    (2.356490, 48.873360),\n    (2.356750, 48.873829),\n    (2.357130, 48.874489),\n    (2.357270, 48.874760),\n    (2.357330, 48.874851),\n    (2.357410, 48.874939),\n    (2.357460, 48.875019),\n    (2.357690, 48.875019),\n    (2.358570, 48.875031),\n    (2.358920, 48.874931),\n    (2.359020, 48.874901),\n    (2.359200, 48.875141),\n    (2.359350, 48.875259),\n    (2.359560, 48.875340),\n    (2.360060, 48.875641),\n    (2.360280, 48.875771),\n    (2.360550, 48.876091),\n    (2.360580, 48.876129),\n    (2.361370, 48.877430),\n    (2.361600, 48.877838),\n    (2.362010, 48.878490),\n    (2.362220, 48.878799),\n    (2.362250, 48.878860),\n    (2.362330, 48.878929),\n    (2.362590, 48.879021),\n    (2.362900, 48.879250),\n    (2.364290, 48.880402),\n    (2.364700, 48.880730),\n    (2.365150, 48.881100),\n    (2.365580, 48.881451),\n    (2.365780, 48.881611),\n    (2.365990, 48.881779),\n    (2.366910, 48.882530),\n    (2.368220, 48.883572),\n    (2.368570, 48.883850),\n    (2.368720, 48.883942),\n    (2.368850, 48.884022),\n    (2.368990, 48.884171),\n    (2.369040, 48.884220),\n    (2.369170, 48.884350),\n    (2.369340, 48.884480),\n    (2.370710, 48.885578),\n    (2.370850, 48.885689),\n    (2.370970, 48.885780),\n    (2.371050, 48.885860),\n    (2.372420, 48.886978),\n    (2.372700, 48.887211),\n    (2.372870, 48.887348),\n    (2.373530, 48.887878),\n    (2.373950, 48.888241),\n    (2.374100, 48.888371),\n    (2.374260, 48.888489),\n    (2.375960, 48.889839),\n    (2.376720, 48.890450),\n    (2.376850, 48.890560),\n    (2.377010, 48.890690),\n    (2.377450, 48.891041),\n    (2.377540, 48.891109),\n    (2.377680, 48.891220),\n    (2.378960, 48.892181),\n    (2.379130, 48.892311),\n    (2.379280, 48.892429),\n    (2.379950, 48.892948),\n    (2.380070, 48.893040),\n    (2.380170, 48.893120),\n    (2.381570, 48.894218),\n    (2.381700, 48.894321),\n    (2.382190, 48.894680),\n    (2.382310, 48.894791),\n    (2.382740, 48.895142),\n    (2.383250, 48.895561),\n    (2.383490, 48.895660),\n    (2.383590, 48.895741),\n    (2.383650, 48.895779),\n    (2.383700, 48.895809),\n    (2.383890, 48.895939),\n    (2.384010, 48.896049),\n    (2.384100, 48.896130),\n    (2.384180, 48.896210),\n    (2.384260, 48.896278),\n    (2.384380, 48.896389),\n    (2.385610, 48.897499),\n    (2.385690, 48.897579),\n    (2.385770, 48.897659),\n    (2.386150, 48.898041),\n    (2.386240, 48.898140),\n    (2.386330, 48.898232),\n    (2.386610, 48.898499),\n    (2.387750, 48.899559),\n    (2.387980, 48.899780),\n    (2.388400, 48.900051),\n    (2.388640, 48.900181),\n    (2.388750, 48.900318),\n    (2.388820, 48.900520),\n    (2.388890, 48.900719),\n    (2.389160, 48.900879),\n    (2.389330, 48.900982),\n    (2.389460, 48.901089),\n    (2.390250, 48.901840),\n    (2.391140, 48.902729),\n    (2.391520, 48.903069),\n    (2.392090, 48.903549),\n    (2.392120, 48.903580),\n    (2.393980, 48.905231),\n    (2.394080, 48.905479),\n    (2.394520, 48.905899),\n    (2.395340, 48.906681),\n    (2.395880, 48.907162),\n    (2.396300, 48.907570),\n    (2.397030, 48.908249),\n    (2.398050, 48.909168),\n    (2.398300, 48.909409),\n    (2.399990, 48.910980),\n    (2.400360, 48.911301),\n    (2.403230, 48.913940),\n    (2.404030, 48.914711),\n    (2.404120, 48.914780),\n    (2.404360, 48.915001),\n    (2.404860, 48.915482),\n    (2.405740, 48.916290),\n    (2.406070, 48.916599),\n    (2.406820, 48.917290),\n    (2.407610, 48.918072),\n    (2.408840, 48.919022),\n    (2.409140, 48.919281),\n    (2.409910, 48.920059),\n    (2.411690, 48.921719),\n    (2.411850, 48.921848),\n    (2.412930, 48.922852),\n    (2.413100, 48.923100),\n    (2.413260, 48.923210),\n    (2.413680, 48.923630),\n    (2.413840, 48.923771),\n    (2.414280, 48.924171),\n    (2.415020, 48.924759),\n    (2.415610, 48.925289),\n    (2.416950, 48.926701),\n    (2.417470, 48.927139),\n    (2.417590, 48.927238),\n    (2.417970, 48.927460),\n    (2.418110, 48.927509),\n    (2.418320, 48.927738),\n    (2.418650, 48.928082),\n    (2.419150, 48.928619),\n    (2.420250, 48.929562),\n    (2.420320, 48.929630),\n    (2.420700, 48.930000),\n    (2.421070, 48.930359),\n    (2.422530, 48.931641),\n    (2.423830, 48.932831),\n    (2.424150, 48.933159),\n    (2.424780, 48.933659),\n    (2.425490, 48.934380),\n    (2.426000, 48.934872),\n    (2.426320, 48.935200),\n    (2.426570, 48.935490),\n    (2.427010, 48.935959),\n    (2.427340, 48.936291),\n    (2.427930, 48.936909),\n    (2.428080, 48.937099),\n    (2.428420, 48.937450),\n    (2.428730, 48.937790),\n    (2.429840, 48.938839),\n    (2.430530, 48.939720),\n    (2.431150, 48.940418),\n    (2.432060, 48.940479),\n    (2.432480, 48.940559),\n    (2.433640, 48.940731),\n    (2.434080, 48.940842),\n    (2.434770, 48.940929),\n    (2.435000, 48.940971),\n    (2.435260, 48.941090),\n    (2.436180, 48.941540),\n    (2.437190, 48.942059),\n    (2.437280, 48.942101),\n    (2.437840, 48.942329),\n    (2.438350, 48.942539),\n    (2.438780, 48.942669),\n    (2.439050, 48.942730),\n    (2.439940, 48.942848),\n    (2.440410, 48.942909),\n    (2.440930, 48.943031),\n    (2.441960, 48.943218),\n    (2.442970, 48.943329),\n    (2.443940, 48.943481),\n    (2.444340, 48.943581),\n    (2.445940, 48.943939),\n    (2.446270, 48.944019),\n    (2.448270, 48.944538),\n    (2.450060, 48.945000),\n    (2.451370, 48.945351),\n    (2.452680, 48.945728),\n    (2.452900, 48.945728),\n    (2.454310, 48.946060),\n    (2.455540, 48.946369),\n    (2.456860, 48.946690),\n    (2.458690, 48.947109),\n    (2.458730, 48.947060),\n    (2.458800, 48.947021),\n    (2.458930, 48.946991),\n    (2.459000, 48.946999),\n    (2.459080, 48.947029),\n    (2.459150, 48.947079),\n    (2.459180, 48.947151),\n    (2.459170, 48.947208),\n    (2.461370, 48.947720),\n    (2.461940, 48.948311),\n    (2.463250, 48.949650),\n    (2.463490, 48.949940),\n    (2.463760, 48.949928),\n    (2.466330, 48.949871),\n    (2.466370, 48.949799),\n    (2.466430, 48.949749),\n    (2.466520, 48.949711),\n    (2.466580, 48.949699),\n    (2.466730, 48.949699),\n    (2.466860, 48.949741),\n    (2.467400, 48.949692),\n    (2.467820, 48.949692),\n    (2.469920, 48.949829),\n    (2.472930, 48.950180),\n    (2.473820, 48.950272),\n    (2.474330, 48.950298),\n    (2.475240, 48.950352),\n    (2.477710, 48.950611),\n    (2.480360, 48.950851),\n    (2.481900, 48.950981),\n    (2.483330, 48.951099),\n    (2.483900, 48.951092),\n    (2.485350, 48.951141),\n    (2.485500, 48.951180),\n    (2.485930, 48.951149),\n    (2.486160, 48.951180),\n    (2.486300, 48.951248),\n    (2.486330, 48.951271),\n    (2.486410, 48.951241),\n    (2.486720, 48.951328),\n    (2.487290, 48.951401),\n    (2.491060, 48.951740),\n    (2.492490, 48.951920),\n    (2.492850, 48.952030),\n    (2.494550, 48.952229),\n    (2.496230, 48.952419),\n    (2.498810, 48.952721),\n    (2.499010, 48.952740),\n    (2.502680, 48.953178),\n    (2.506410, 48.953678),\n    (2.506450, 48.953690),\n    (2.508050, 48.953918),\n    (2.508290, 48.953979),\n    (2.508580, 48.954079),\n    (2.508750, 48.954109),\n    (2.508900, 48.954128),\n    (2.509050, 48.954121),\n    (2.509240, 48.954090),\n    (2.509580, 48.954079),\n    (2.509730, 48.954102),\n    (2.509880, 48.954170),\n    (2.509950, 48.954201),\n    (2.510010, 48.954300),\n    (2.510140, 48.954300),\n    (2.510630, 48.954330),\n    (2.512180, 48.954639),\n    (2.513540, 48.954971),\n    (2.514620, 48.955151),\n    (2.521420, 48.956329),\n    (2.525490, 48.956989),\n    (2.529870, 48.957691),\n    (2.531110, 48.957771),\n    (2.532370, 48.958019),\n    (2.534790, 48.958630),\n    (2.535170, 48.958752),\n    (2.535550, 48.958839),\n    (2.538520, 48.959591),\n    (2.542460, 48.960732),\n    (2.545620, 48.961769),\n    (2.548730, 48.962849),\n    (2.550420, 48.963409),\n    (2.555610, 48.965111),\n    (2.557160, 48.965599),\n    (2.564680, 48.968071),\n    (2.566800, 48.968811),\n    (2.570560, 48.970200),\n    (2.574050, 48.971600),\n    (2.578760, 48.973690),\n    (2.581110, 48.974758),\n    (2.582220, 48.975220),\n    (2.588090, 48.977798),\n    (2.596700, 48.981602),\n    (2.606930, 48.986118),\n    (2.609050, 48.986980),\n    (2.625880, 48.994381),\n    (2.627740, 48.995270),\n    (2.628640, 48.995720),\n    (2.632740, 48.997822),\n    (2.636360, 48.999821),\n    (2.639420, 49.001621),\n    (2.639990, 49.001961),\n    (2.643460, 49.004150),\n    (2.644960, 49.005150),\n    (2.646000, 49.005840),\n    (2.648860, 49.007881),\n    (2.652250, 49.010490),\n    (2.655380, 49.013100),\n    (2.655860, 49.013611),\n    (2.656140, 49.013859),\n    (2.659600, 49.016830),\n    (2.663360, 49.020771),\n    (2.665070, 49.022251),\n    (2.671970, 49.029140),\n    (2.672740, 49.029900),\n    (2.677350, 49.034431),\n    (2.681620, 49.038300),\n    (2.683020, 49.039391),\n    (2.686010, 49.041729),\n    (2.692220, 49.046200),\n    (2.694150, 49.047779),\n    (2.695610, 49.049099),\n    (2.697020, 49.050690),\n    (2.698580, 49.052738),\n    (2.699740, 49.054810),\n    (2.700310, 49.055809),\n    (2.701510, 49.057819),\n    (2.701710, 49.058140),\n    (2.701940, 49.058510),\n    (2.702280, 49.059052),\n    (2.702470, 49.059341),\n    (2.702720, 49.059689),\n    (2.703050, 49.060139),\n    (2.703460, 49.060661),\n    (2.703850, 49.061131),\n    (2.704390, 49.061699),\n    (2.704850, 49.062130),\n    (2.704990, 49.062271),\n    (2.705190, 49.062462),\n    (2.705460, 49.062710),\n    (2.705870, 49.063061),\n    (2.706310, 49.063450),\n    (2.706720, 49.063770),\n    (2.707360, 49.064281),\n    (2.708040, 49.064819),\n    (2.709280, 49.065800),\n    (2.710000, 49.066341),\n    (2.714270, 49.069450),\n    (2.716200, 49.070911),\n    (2.716240, 49.070950),\n    (2.726290, 49.078609),\n    (2.728440, 49.080490),\n    (2.729600, 49.081779),\n    (2.729910, 49.082119),\n    (2.730850, 49.083778),\n    (2.731650, 49.085449),\n    (2.733080, 49.088581),\n    (2.735540, 49.093849),\n    (2.736160, 49.095032),\n    (2.736890, 49.096149),\n    (2.737470, 49.096771),\n    (2.738340, 49.097839),\n    (2.739250, 49.098728),\n    (2.740940, 49.100060),\n    (2.741190, 49.100220),\n    (2.742500, 49.101139),\n    (2.744210, 49.102161),\n    (2.745890, 49.102982),\n    (2.747800, 49.103828),\n    (2.749350, 49.104340),\n    (2.750670, 49.104721),\n    (2.751840, 49.105049),\n    (2.754740, 49.105659),\n    (2.757920, 49.106281),\n    (2.760130, 49.106819),\n    (2.763110, 49.107792),\n    (2.765390, 49.108791),\n    (2.767670, 49.110130),\n    (2.770040, 49.111778),\n    (2.772610, 49.113689),\n    (2.774680, 49.115330),\n    (2.794490, 49.130249),\n    (2.796580, 49.131882),\n    (2.797070, 49.132301),\n    (2.797420, 49.132721),\n    (2.797790, 49.133190),\n    (2.798180, 49.133862),\n    (2.798440, 49.134548),\n    (2.798610, 49.135361),\n    (2.798690, 49.136189),\n    (2.798870, 49.138161),\n    (2.798970, 49.139111),\n    (2.799120, 49.139870),\n    (2.799240, 49.140171),\n    (2.799530, 49.140930),\n    (2.800020, 49.141762),\n    (2.800450, 49.142368),\n    (2.801030, 49.142971),\n    (2.801730, 49.143631),\n    (2.802600, 49.144218),\n    (2.803390, 49.144669),\n    (2.804160, 49.145050),\n    (2.805470, 49.145649),\n    (2.807750, 49.146530),\n    (2.808680, 49.146900),\n    (2.809650, 49.147221),\n    (2.810750, 49.147511),\n    (2.811270, 49.147621),\n    (2.811960, 49.147751),\n    (2.813080, 49.147900),\n    (2.813710, 49.147968),\n    (2.814350, 49.147999),\n    (2.815350, 49.148029),\n    (2.816500, 49.147991),\n    (2.817170, 49.147942),\n    (2.818330, 49.147820),\n    (2.820250, 49.147640),\n    (2.821510, 49.147629),\n    (2.822670, 49.147720),\n    (2.823810, 49.147888),\n    (2.824940, 49.148159),\n    (2.826310, 49.148640),\n    (2.828040, 49.149410),\n    (2.829780, 49.150211),\n    (2.846210, 49.157539),\n    (2.848480, 49.158550),\n    (2.849820, 49.159149),\n    (2.850810, 49.159611),\n    (2.851190, 49.159790),\n    (2.851330, 49.159882),\n    (2.851500, 49.160000),\n    (2.852040, 49.160511),\n    (2.852090, 49.160549),\n    (2.852240, 49.160690),\n    (2.852440, 49.160839),\n    (2.852820, 49.161060),\n    (2.855420, 49.162529),\n    (2.856930, 49.163368),\n    (2.857180, 49.163509),\n    (2.860080, 49.165089),\n    (2.860800, 49.165390),\n    (2.866650, 49.168430),\n    (2.869650, 49.170021),\n    (2.873730, 49.172180),\n    (2.879990, 49.175621),\n    (2.881100, 49.176231),\n    (2.886420, 49.179279),\n    (2.889700, 49.181438),\n    (2.891760, 49.182590),\n    (2.893580, 49.183601),\n    (2.893850, 49.183750),\n    (2.895700, 49.184780),\n    (2.896540, 49.185249),\n    (2.901080, 49.187790),\n    (2.903030, 49.188808),\n    (2.905490, 49.190102),\n    (2.906770, 49.190701),\n    (2.908700, 49.191761),\n    (2.910320, 49.192410),\n    (2.912400, 49.193031),\n    (2.914880, 49.193470),\n    (2.915770, 49.193699),\n    (2.917970, 49.194241),\n    (2.919990, 49.195129),\n    (2.921780, 49.196159),\n    (2.924060, 49.197929),\n    (2.925930, 49.199371),\n    (2.930850, 49.203152),\n    (2.932420, 49.204380),\n    (2.932740, 49.204620),\n    (2.933660, 49.205330),\n    (2.935190, 49.206249),\n    (2.935960, 49.206699),\n    (2.936980, 49.207180),\n    (2.939450, 49.208111),\n    (2.940620, 49.208591),\n    (2.943580, 49.209690),\n    (2.952730, 49.213112),\n    (2.954420, 49.213718),\n    (2.955060, 49.213951),\n    (2.955160, 49.214001),\n    (2.955570, 49.214230),\n    (2.956040, 49.214489),\n    (2.957640, 49.215549),\n    (2.960670, 49.217560),\n    (2.961880, 49.218311),\n    (2.964670, 49.220150),\n    (2.964830, 49.220261),\n    (2.965000, 49.220360),\n    (2.972160, 49.224949),\n    (2.975900, 49.227390),\n    (2.976840, 49.227852),\n    (2.983170, 49.230679),\n    (2.986860, 49.232349),\n    (2.987760, 49.232700),\n    (2.990060, 49.233730),\n    (2.994960, 49.235939),\n    (2.995490, 49.236160),\n    (2.996000, 49.236301),\n    (2.997150, 49.236519),\n    (2.999040, 49.236801),\n    (3.003640, 49.237469),\n    (3.004990, 49.237701),\n    (3.006480, 49.237999),\n    (3.007710, 49.238449),\n    (3.008760, 49.238819),\n    (3.009690, 49.239140),\n    (3.011200, 49.239620),\n    (3.012310, 49.239899),\n    (3.013490, 49.240120),\n    (3.014250, 49.240231),\n    (3.015150, 49.240311),\n    (3.016120, 49.240349),\n    (3.017420, 49.240330),\n    (3.018650, 49.240261),\n    (3.020380, 49.240170),\n    (3.023760, 49.239960),\n    (3.025360, 49.240009),\n    (3.027050, 49.240231),\n    (3.027880, 49.240459),\n    (3.028370, 49.240631),\n    (3.030500, 49.241070),\n    (3.031730, 49.241322),\n    (3.032260, 49.241440),\n    (3.033010, 49.241539),\n    (3.033920, 49.241879),\n    (3.034080, 49.241982),\n    (3.034860, 49.242661),\n    (3.035130, 49.243038),\n    (3.035700, 49.244301),\n    (3.035810, 49.244530),\n    (3.036360, 49.245651),\n    (3.036820, 49.246090),\n    (3.037580, 49.246540),\n    (3.038700, 49.246910),\n    (3.040070, 49.247040),\n    (3.041250, 49.247139),\n    (3.042700, 49.247311),\n    (3.044330, 49.247700),\n    (3.047330, 49.248638),\n    (3.050370, 49.249550),\n    (3.053900, 49.250599),\n    (3.055890, 49.251160),\n    (3.058300, 49.251621),\n    (3.062000, 49.252178),\n    (3.064620, 49.252682),\n    (3.065430, 49.252930),\n    (3.066100, 49.253201),\n    (3.066700, 49.253490),\n    (3.066980, 49.253632),\n    (3.067390, 49.253849),\n    (3.068230, 49.254398),\n    (3.078680, 49.262150),\n    (3.079680, 49.262779),\n    (3.080680, 49.263340),\n    (3.081650, 49.263840),\n    (3.082680, 49.264229),\n    (3.084300, 49.264870),\n    (3.085430, 49.265160),\n    (3.089230, 49.265839),\n    (3.092040, 49.266029),\n    (3.092700, 49.266048),\n    (3.093200, 49.266041),\n    (3.096540, 49.266109),\n    (3.097390, 49.266129),\n    (3.103670, 49.266090),\n    (3.109060, 49.266151),\n    (3.119280, 49.266190),\n    (3.128740, 49.266121),\n    (3.129820, 49.266151),\n    (3.130540, 49.266201),\n    (3.131220, 49.266312),\n    (3.131470, 49.266361),\n    (3.131980, 49.266472),\n    (3.133990, 49.267200),\n    (3.136750, 49.268410),\n    (3.140430, 49.270390),\n    (3.146590, 49.274078),\n    (3.149110, 49.275848),\n    (3.152100, 49.277939),\n    (3.152650, 49.278271),\n    (3.155960, 49.280190),\n    (3.166630, 49.286388),\n    (3.168200, 49.287510),\n    (3.168330, 49.287609),\n    (3.171030, 49.289768),\n    (3.172910, 49.290920),\n    (3.174810, 49.291920),\n    (3.176870, 49.292740),\n    (3.179640, 49.294060),\n    (3.180860, 49.294731),\n    (3.182540, 49.295399),\n    (3.184010, 49.295811),\n    (3.185710, 49.295959),\n    (3.186950, 49.295979),\n    (3.188330, 49.295898),\n    (3.190000, 49.295830),\n    (3.192030, 49.295979),\n    (3.193800, 49.296310),\n    (3.195400, 49.296730),\n    (3.197530, 49.297539),\n    (3.199720, 49.298759),\n    (3.201480, 49.299938),\n    (3.202860, 49.300652),\n    (3.204240, 49.301220),\n    (3.205910, 49.301651),\n    (3.207880, 49.301891),\n    (3.210380, 49.302059),\n    (3.212190, 49.302269),\n    (3.214290, 49.302959),\n    (3.220310, 49.305710),\n    (3.225460, 49.308640),\n    (3.227030, 49.309811),\n    (3.228490, 49.311020),\n    (3.231070, 49.312740),\n    (3.234290, 49.314880),\n    (3.237800, 49.317299),\n    (3.242330, 49.320560),\n    (3.244540, 49.322750),\n    (3.247090, 49.325081),\n    (3.248000, 49.325722),\n    (3.249020, 49.326302),\n    (3.250990, 49.327320),\n    (3.252060, 49.327991),\n    (3.253070, 49.328751),\n    (3.253900, 49.329418),\n    (3.257490, 49.332272),\n    (3.258560, 49.332909),\n    (3.259720, 49.333790),\n    (3.265700, 49.338329),\n    (3.270380, 49.341782),\n    (3.271720, 49.342751),\n    (3.274530, 49.344791),\n    (3.275560, 49.345718),\n    (3.276030, 49.346260),\n    (3.280220, 49.352268),\n    (3.280560, 49.352921),\n    (3.280790, 49.353329),\n    (3.281640, 49.354950),\n    (3.282500, 49.355968),\n    (3.283010, 49.356419),\n    (3.283050, 49.356419),\n    (3.283880, 49.356510),\n    (3.284400, 49.356571),\n    (3.284950, 49.356640),\n    (3.285660, 49.356709),\n    (3.285950, 49.356720),\n    (3.286410, 49.356709),\n    (3.286630, 49.356770),\n    (3.286910, 49.356861),\n    (3.287190, 49.356979),\n    (3.287520, 49.357090),\n    (3.287810, 49.357208),\n    (3.287940, 49.357300),\n    (3.288090, 49.357399),\n    (3.288210, 49.357471),\n    (3.288400, 49.357559),\n    (3.288700, 49.357670),\n    (3.288830, 49.357731),\n    (3.288870, 49.357750),\n    (3.288940, 49.357769),\n    (3.289060, 49.357761),\n    (3.289170, 49.357719),\n    (3.289480, 49.357529),\n    (3.290170, 49.357059),\n    (3.290520, 49.356831),\n    (3.290690, 49.356720),\n    (3.290800, 49.356682),\n    (3.291080, 49.356670),\n    (3.291320, 49.356709),\n    (3.291660, 49.356750),\n    (3.292060, 49.356781),\n    (3.292320, 49.356831),\n    (3.292550, 49.356781),\n    (3.292740, 49.356781),\n    (3.293140, 49.356880),\n    (3.293420, 49.356880),\n    (3.293690, 49.356869),\n    (3.295290, 49.357380),\n    (3.295900, 49.357559),\n    (3.296600, 49.357738),\n    (3.297600, 49.358002),\n    (3.298180, 49.358212),\n    (3.299700, 49.358330),\n    (3.300740, 49.358459),\n    (3.301890, 49.358669),\n    (3.302850, 49.358860),\n    (3.303910, 49.359089),\n    (3.306240, 49.359570),\n    (3.306690, 49.359631),\n    (3.308230, 49.359730),\n    (3.308740, 49.359779),\n    (3.310330, 49.359970),\n    (3.311200, 49.360020),\n    (3.312280, 49.359970),\n    (3.312860, 49.359921),\n    (3.313560, 49.359840),\n    (3.313890, 49.359890),\n    (3.314410, 49.360039),\n    (3.314660, 49.360050),\n    (3.314950, 49.360001),\n    (3.314950, 49.359982),\n    (3.314970, 49.359890),\n    (3.315050, 49.359791),\n    (3.315200, 49.359718),\n    (3.315420, 49.359692),\n    (3.315620, 49.359730),\n    (3.315750, 49.359798),\n    (3.315820, 49.359890),\n    (3.316060, 49.360039),\n    (3.316830, 49.360142),\n    (3.317100, 49.360149),\n    (3.317360, 49.360100),\n    (3.317640, 49.360031),\n    (3.319780, 49.359299),\n    (3.321730, 49.358810),\n    (3.323170, 49.358620),\n    (3.323640, 49.358551),\n    (3.323940, 49.358509),\n    (3.326280, 49.358509),\n    (3.327730, 49.358620),\n    (3.328900, 49.358730),\n    (3.330980, 49.359200),\n    (3.349990, 49.365822),\n    (3.351160, 49.366230),\n    (3.352330, 49.366730),\n    (3.355320, 49.368061),\n    (3.356530, 49.368698),\n    (3.357560, 49.369381),\n    (3.357830, 49.369579),\n    (3.358450, 49.369961),\n    (3.360150, 49.371399),\n    (3.363180, 49.373959),\n    (3.367320, 49.377419),\n    (3.370900, 49.380451),\n    (3.372170, 49.381710),\n    (3.372800, 49.382549),\n    (3.374870, 49.386822),\n    (3.375080, 49.387329),\n    (3.375150, 49.387901),\n    (3.375240, 49.389030),\n    (3.375010, 49.390369),\n    (3.374590, 49.391369),\n    (3.374240, 49.392052),\n    (3.373570, 49.393021),\n    (3.372610, 49.393848),\n    (3.372210, 49.394199),\n    (3.371460, 49.394890),\n    (3.368940, 49.397270),\n    (3.368580, 49.397690),\n    (3.368070, 49.398499),\n    (3.367670, 49.399349),\n    (3.367590, 49.399570),\n    (3.367500, 49.399948),\n    (3.367460, 49.400379),\n    (3.367420, 49.400700),\n    (3.367340, 49.401569),\n    (3.367250, 49.402779),\n    (3.367160, 49.403622),\n    (3.367100, 49.404339),\n    (3.367150, 49.404831),\n    (3.367290, 49.405369),\n    (3.367540, 49.405891),\n    (3.367840, 49.406319),\n    (3.368120, 49.406639),\n    (3.368400, 49.406940),\n    (3.368780, 49.407242),\n    (3.369190, 49.407539),\n    (3.369860, 49.407921),\n    (3.370590, 49.408291),\n    (3.371510, 49.408718),\n    (3.372310, 49.409000),\n    (3.372740, 49.409088),\n    (3.373290, 49.409142),\n    (3.374990, 49.409199),\n    (3.375520, 49.409309),\n    (3.376000, 49.409401),\n    (3.376460, 49.409538),\n    (3.378450, 49.410198),\n    (3.379020, 49.410419),\n    (3.382080, 49.411491),\n    (3.384580, 49.412601),\n    (3.385940, 49.413212),\n    (3.387610, 49.413940),\n    (3.390790, 49.415298),\n    (3.393280, 49.416401),\n    (3.395830, 49.417488),\n    (3.396460, 49.417801),\n    (3.399930, 49.419800),\n    (3.400920, 49.420280),\n    (3.401950, 49.420719),\n    (3.404630, 49.421539),\n    (3.405740, 49.421871),\n    (3.406840, 49.422260),\n    (3.408060, 49.422791),\n    (3.409550, 49.423580),\n    (3.410440, 49.424141),\n    (3.410780, 49.424381),\n    (3.411500, 49.424919),\n    (3.412330, 49.425652),\n    (3.413080, 49.426418),\n    (3.416940, 49.430618),\n    (3.420280, 49.434330),\n    (3.423710, 49.438011),\n    (3.426440, 49.441021),\n    (3.427190, 49.441700),\n    (3.428040, 49.442322),\n    (3.430210, 49.443810),\n    (3.434050, 49.446411),\n    (3.435040, 49.446930),\n    (3.436110, 49.447430),\n    (3.438210, 49.448330),\n    (3.440600, 49.449200),\n    (3.443830, 49.450031),\n    (3.446150, 49.450439),\n    (3.448860, 49.450741),\n    (3.456300, 49.451180),\n    (3.462530, 49.451530),\n    (3.469740, 49.452019),\n    (3.474970, 49.452339),\n    (3.478090, 49.452728),\n    (3.480840, 49.453320),\n    (3.482780, 49.453819),\n    (3.485520, 49.454800),\n    (3.486720, 49.455299),\n    (3.488420, 49.456131),\n    (3.490070, 49.457031),\n    (3.492070, 49.458191),\n    (3.493050, 49.458771),\n    (3.494410, 49.459541),\n    (3.495600, 49.460110),\n    (3.497170, 49.460640),\n    (3.498790, 49.461029),\n    (3.500430, 49.461220),\n    (3.501740, 49.461281),\n    (3.503300, 49.461300),\n    (3.504010, 49.461311),\n    (3.509640, 49.461349),\n    (3.511750, 49.461601),\n    (3.513870, 49.462139),\n    (3.515130, 49.462608),\n    (3.516610, 49.463291),\n    (3.517880, 49.464142),\n    (3.518930, 49.465061),\n    (3.519840, 49.466122),\n    (3.521070, 49.467690),\n    (3.522470, 49.469349),\n    (3.523720, 49.470531),\n    (3.525360, 49.471779),\n    (3.527410, 49.473110),\n    (3.529690, 49.474491),\n    (3.531250, 49.475441),\n    (3.531780, 49.475800),\n    (3.532920, 49.476620),\n    (3.533950, 49.477421),\n    (3.535650, 49.478870),\n    (3.537120, 49.480110),\n    (3.537430, 49.480400),\n    (3.539120, 49.481930),\n    (3.540960, 49.483459),\n    (3.542120, 49.484451),\n    (3.542850, 49.485119),\n    (3.544400, 49.486420),\n    (3.547350, 49.488979),\n    (3.549230, 49.490631),\n    (3.550780, 49.492081),\n    (3.552560, 49.493870),\n    (3.553730, 49.495121),\n    (3.554140, 49.495548),\n    (3.555050, 49.496510),\n    (3.556820, 49.498039),\n    (3.558710, 49.499439),\n    (3.561810, 49.501659),\n    (3.564780, 49.503830),\n    (3.568700, 49.506649),\n    (3.569100, 49.506931),\n    (3.570060, 49.507648),\n    (3.570990, 49.508320),\n    (3.571610, 49.508770),\n    (3.572810, 49.509640),\n    (3.574500, 49.510830),\n    (3.575360, 49.511421),\n    (3.576340, 49.512112),\n    (3.576690, 49.512360),\n    (3.578030, 49.513309),\n    (3.578760, 49.513821),\n    (3.582210, 49.516281),\n    (3.583260, 49.517010),\n    (3.584260, 49.517731),\n    (3.585200, 49.518490),\n    (3.585820, 49.519058),\n    (3.586330, 49.519619),\n    (3.586650, 49.520000),\n    (3.587030, 49.520519),\n    (3.587340, 49.520988),\n    (3.587630, 49.521469),\n    (3.587870, 49.521938),\n    (3.588050, 49.522339),\n    (3.588220, 49.522781),\n    (3.588370, 49.523220),\n    (3.588550, 49.524010),\n    (3.588870, 49.525612),\n    (3.589130, 49.526970),\n    (3.589420, 49.528580),\n    (3.589730, 49.530399),\n    (3.589890, 49.531071),\n    (3.590110, 49.531830),\n    (3.590310, 49.532181),\n    (3.590610, 49.532509),\n    (3.590940, 49.532761),\n    (3.591280, 49.532940),\n    (3.592260, 49.533421),\n    (3.592400, 49.533581),\n    (3.592460, 49.533741),\n    (3.592360, 49.534031),\n    (3.592290, 49.534222),\n    (3.592370, 49.534241),\n    (3.592860, 49.534489),\n    (3.593240, 49.534790),\n    (3.593800, 49.535480),\n    (3.594050, 49.535789),\n    (3.594790, 49.536228),\n    (3.595810, 49.536789),\n    (3.596730, 49.537159),\n    (3.597140, 49.537479),\n    (3.599650, 49.538719),\n    (3.599970, 49.539108),\n    (3.600450, 49.539421),\n    (3.600820, 49.539551),\n    (3.601390, 49.539650),\n    (3.602220, 49.539509),\n    (3.602950, 49.539421),\n    (3.603350, 49.539310),\n    (3.603850, 49.539249),\n    (3.604360, 49.539291),\n    (3.605310, 49.539490),\n    (3.605580, 49.539612),\n    (3.605980, 49.539791),\n    (3.606510, 49.540310),\n    (3.606640, 49.540459),\n    (3.607050, 49.540970),\n    (3.607500, 49.541649),\n    (3.607960, 49.542278),\n    (3.608400, 49.542610),\n    (3.611060, 49.543991),\n    (3.613960, 49.545181),\n    (3.615610, 49.546120),\n    (3.615900, 49.546219),\n    (3.616320, 49.546299),\n    (3.616530, 49.546539),\n    (3.616600, 49.546558),\n    (3.616690, 49.546619),\n    (3.616720, 49.546680),\n    (3.616730, 49.546711),\n    (3.617040, 49.546860),\n    (3.617910, 49.547211),\n    (3.618900, 49.547562),\n    (3.620940, 49.548370),\n    (3.623760, 49.549431),\n    (3.624250, 49.549641),\n    (3.624880, 49.550018),\n    (3.626860, 49.550911),\n    (3.627010, 49.551029),\n    (3.627090, 49.551182),\n    (3.627290, 49.551819),\n    (3.627550, 49.552280),\n    (3.627790, 49.552601),\n    (3.628240, 49.553009),\n    (3.628690, 49.553291),\n    (3.628770, 49.554050),\n    (3.628790, 49.554321),\n    (3.628820, 49.554680),\n    (3.628800, 49.554859),\n    (3.628710, 49.555721),\n    (3.628570, 49.556099),\n    (3.628310, 49.556961),\n    (3.627870, 49.558140),\n    (3.627800, 49.558270),\n    (3.628630, 49.558441),\n    (3.629470, 49.558849),\n    (3.630120, 49.559368),\n    (3.631420, 49.560188),\n    (3.631780, 49.560749),\n    (3.631920, 49.561279),\n    (3.632250, 49.561569),\n    (3.633230, 49.561970),\n    (3.633680, 49.562191),\n    (3.635550, 49.563992),\n    (3.635680, 49.564770),\n    (3.635610, 49.565159),\n    (3.635350, 49.565399),\n    (3.635320, 49.565430),\n    (3.635200, 49.565689),\n    (3.635040, 49.566040),\n    (3.634470, 49.567150),\n    (3.634340, 49.567471),\n    (3.633980, 49.567780),\n    (3.633670, 49.568180),\n    (3.633550, 49.568359),\n    (3.633640, 49.568691),\n    (3.633410, 49.569500),\n    (3.633290, 49.569859),\n    (3.633510, 49.569950),\n    (3.633570, 49.569981),\n    (3.633600, 49.569969),\n    (3.633640, 49.569981),\n    (3.633670, 49.570000),\n    (3.633690, 49.570011),\n    (3.633700, 49.570030),\n    (3.633690, 49.570049),\n    (3.633680, 49.570068),\n    (3.634200, 49.570210),\n    (3.634640, 49.570259),\n    (3.635020, 49.570301),\n    (3.635240, 49.570381),\n    (3.635420, 49.570492),\n    (3.635550, 49.570641),\n    (3.635600, 49.570770),\n    (3.635580, 49.571621),\n    (3.635540, 49.572151),\n    (3.635530, 49.573311),\n    (3.635530, 49.573460),\n    (3.635550, 49.573650),\n    (3.635670, 49.573921),\n    (3.637930, 49.575909),\n    (3.638240, 49.576191),\n    (3.639780, 49.577591),\n    (3.639890, 49.577690),\n    (3.640070, 49.577850),\n    (3.640530, 49.578281),\n    (3.643680, 49.581089),\n    (3.644690, 49.582039),\n    (3.645210, 49.582531),\n    (3.645500, 49.582802),\n    (3.646340, 49.583530),\n    (3.646730, 49.583858),\n    (3.647170, 49.584259),\n    (3.647650, 49.584702),\n    (3.647900, 49.584919),\n    (3.648290, 49.585270),\n    (3.648620, 49.585571),\n    (3.648910, 49.585850),\n    (3.648990, 49.585819),\n    (3.649090, 49.585812),\n    (3.649170, 49.585812),\n    (3.649260, 49.585838),\n    (3.649350, 49.585911),\n    (3.649380, 49.585972),\n    (3.649380, 49.586029),\n    (3.649350, 49.586090),\n    (3.649280, 49.586151),\n    (3.650120, 49.586929),\n    (3.650600, 49.587379),\n    (3.651390, 49.588112),\n    (3.652500, 49.589119),\n    (3.652540, 49.589149),\n    (3.652660, 49.589260),\n    (3.653470, 49.589981),\n    (3.654110, 49.590549),\n    (3.654450, 49.590870),\n    (3.654470, 49.590889),\n    (3.654500, 49.590889),\n    (3.654530, 49.590889),\n    (3.654560, 49.590889),\n    (3.654580, 49.590900),\n    (3.654600, 49.590919),\n    (3.654600, 49.590931),\n    (3.654600, 49.590950),\n    (3.654600, 49.590969),\n    (3.654580, 49.590981),\n    (3.654610, 49.591011),\n    (3.655440, 49.591770),\n    (3.656120, 49.592361),\n    (3.656490, 49.592640),\n    (3.657070, 49.593090),\n    (3.657270, 49.593239),\n    (3.657390, 49.593330),\n    (3.657860, 49.593689),\n    (3.658080, 49.593849),\n    (3.658210, 49.593868),\n    (3.658330, 49.593849),\n    (3.658450, 49.593868),\n    (3.658580, 49.593910),\n    (3.659140, 49.594090),\n    (3.659180, 49.594009),\n    (3.659270, 49.593941),\n    (3.659440, 49.593891),\n    (3.659540, 49.593891),\n    (3.659670, 49.593910),\n    (3.659780, 49.593971),\n    (3.659850, 49.594040),\n    (3.659870, 49.594090),\n    (3.659860, 49.594200),\n    (3.659800, 49.594280),\n    (3.659680, 49.594341),\n    (3.659530, 49.594372),\n    (3.659910, 49.596668),\n    (3.660890, 49.598480),\n    (3.660990, 49.598671),\n    (3.662510, 49.601540),\n    (3.662790, 49.602051),\n    (3.663590, 49.603500),\n    (3.664810, 49.605740),\n    (3.664940, 49.605930),\n    (3.665180, 49.606392),\n    (3.665300, 49.606571),\n    (3.665420, 49.606709),\n    (3.665570, 49.606800),\n    (3.665740, 49.606861),\n    (3.665860, 49.606949),\n    (3.665910, 49.607071),\n    (3.665910, 49.607151),\n    (3.665840, 49.607262),\n    (3.665790, 49.607399),\n    (3.665840, 49.607559),\n    (3.665960, 49.607780),\n    (3.666050, 49.608021),\n    (3.666270, 49.608391),\n    (3.666860, 49.609539),\n    (3.669590, 49.614330),\n    (3.675250, 49.624729),\n    (3.688710, 49.649849),\n    (3.694050, 49.659801),\n    (3.700230, 49.670971),\n    (3.705510, 49.681160),\n    (3.706730, 49.683460),\n    (3.710120, 49.689899),\n    (3.713400, 49.696129),\n    (3.717570, 49.704128),\n    (3.718100, 49.704990),\n    (3.718670, 49.705761),\n    (3.719380, 49.706539),\n    (3.720230, 49.707321),\n    (3.721050, 49.707970),\n    (3.722050, 49.708641),\n    (3.730960, 49.713829),\n    (3.733580, 49.715481),\n    (3.736450, 49.717491),\n    (3.741890, 49.721199),\n    (3.751640, 49.728088),\n    (3.753830, 49.729691),\n    (3.754140, 49.729980),\n    (3.754540, 49.730549),\n    (3.754850, 49.731079),\n    (3.755080, 49.731152),\n    (3.755180, 49.731239),\n    (3.755200, 49.731380),\n    (3.755150, 49.731480),\n    (3.755050, 49.731560),\n    (3.754900, 49.731609),\n    (3.754560, 49.732288),\n    (3.754500, 49.732590),\n    (3.756180, 49.740540),\n    (3.756230, 49.740791),\n    (3.756360, 49.741291),\n    (3.757130, 49.742630),\n    (3.759450, 49.743961),\n    (3.762960, 49.745411),\n    (3.766400, 49.746841),\n    (3.770610, 49.748749),\n    (3.770690, 49.748791),\n    (3.770880, 49.748829),\n    (3.771120, 49.748840),\n    (3.771210, 49.748829),\n    (3.771340, 49.748840),\n    (3.771440, 49.748871),\n    (3.771520, 49.748909),\n    (3.771570, 49.748989),\n    (3.771570, 49.749069),\n    (3.771640, 49.749168),\n    (3.771810, 49.749340),\n    (3.776450, 49.752281),\n    (3.788980, 49.760368),\n    (3.792580, 49.762699),\n    (3.794380, 49.764481),\n    (3.796360, 49.766750),\n    (3.797300, 49.769020),\n    (3.798100, 49.770100),\n    (3.799330, 49.771358),\n    (3.800050, 49.771950),\n    (3.802710, 49.774071),\n    (3.805200, 49.776779),\n    (3.807520, 49.779331),\n    (3.808520, 49.780540),\n    (3.811210, 49.782219),\n    (3.813480, 49.783451),\n    (3.829830, 49.792301),\n    (3.848630, 49.802551),\n    (3.863480, 49.810909),\n    (3.863900, 49.811131),\n    (3.880470, 49.819889),\n    (3.893350, 49.827751),\n    (3.896740, 49.830109),\n    (3.897640, 49.830742),\n    (3.898660, 49.831470),\n    (3.898920, 49.831539),\n    (3.899070, 49.831558),\n    (3.899270, 49.831581),\n    (3.899380, 49.831631),\n    (3.899530, 49.831760),\n    (3.899600, 49.831779),\n    (3.899630, 49.831799),\n    (3.899670, 49.831829),\n    (3.899680, 49.831871),\n    (3.899670, 49.831921),\n    (3.899690, 49.832001),\n    (3.899740, 49.832100),\n    (3.899870, 49.832230),\n    (3.900140, 49.832340),\n    (3.900940, 49.832489),\n    (3.901730, 49.832630),\n    (3.902750, 49.832821),\n    (3.904400, 49.833111),\n    (3.906980, 49.833530),\n    (3.907290, 49.833580),\n    (3.908120, 49.833710),\n    (3.908610, 49.833809),\n    (3.908840, 49.833858),\n    (3.909280, 49.833969),\n    (3.909560, 49.834099),\n    (3.909810, 49.834320),\n    (3.910860, 49.835670),\n    (3.911180, 49.835949),\n    (3.911630, 49.836300),\n    (3.912390, 49.836891),\n    (3.912530, 49.837002),\n    (3.913060, 49.837421),\n    (3.916350, 49.839970),\n    (3.916710, 49.840160),\n    (3.916960, 49.840221),\n    (3.917070, 49.840210),\n    (3.917300, 49.840260),\n    (3.917360, 49.840309),\n    (3.917390, 49.840408),\n    (3.917330, 49.840542),\n    (3.917430, 49.840752),\n    (3.917630, 49.840939),\n    (3.919260, 49.842201),\n    (3.919500, 49.842281),\n    (3.919800, 49.842361),\n    (3.919860, 49.842411),\n    (3.919940, 49.842571),\n    (3.919900, 49.842690),\n    (3.926010, 49.847469),\n    (3.926100, 49.847530),\n    (3.927710, 49.848579),\n    (3.929610, 49.849781),\n    (3.930600, 49.850300),\n    (3.941230, 49.854511),\n    (3.942080, 49.854778),\n    (3.954800, 49.856899),\n    (3.959390, 49.857658),\n    (3.960350, 49.857780),\n    (3.961810, 49.857868),\n    (3.963710, 49.858070),\n    (3.965780, 49.858379),\n    (3.966650, 49.858490),\n    (3.973290, 49.859180),\n    (3.975030, 49.859360),\n    (3.982970, 49.860130),\n    (3.985420, 49.860401),\n    (3.986070, 49.860531),\n    (3.986740, 49.860741),\n    (3.987330, 49.861000),\n    (3.987540, 49.861130),\n    (3.989040, 49.862068),\n    (3.989500, 49.862339),\n    (3.990080, 49.862549),\n    (3.993040, 49.863449),\n    (3.997550, 49.864590),\n    (3.998430, 49.864880),\n    (3.998970, 49.865131),\n    (4.000990, 49.866039),\n    (4.002960, 49.866619),\n    (4.005520, 49.867611),\n    (4.007150, 49.868370),\n    (4.010130, 49.869839),\n    (4.012740, 49.871159),\n    (4.015630, 49.872959),\n    (4.016130, 49.873371),\n    (4.016580, 49.873878),\n    (4.018910, 49.877590),\n    (4.019100, 49.878090),\n    (4.019190, 49.880131),\n    (4.019280, 49.880920),\n    (4.019520, 49.881828),\n    (4.019870, 49.882740),\n    (4.020220, 49.883438),\n    (4.020700, 49.884109),\n    (4.021340, 49.884880),\n    (4.022490, 49.886120),\n    (4.023420, 49.887161),\n    (4.024220, 49.887981),\n    (4.024990, 49.888649),\n    (4.026250, 49.889511),\n    (4.027650, 49.890209),\n    (4.028720, 49.890591),\n    (4.029860, 49.890961),\n    (4.031140, 49.891220),\n    (4.032380, 49.891411),\n    (4.033970, 49.891659),\n    (4.036540, 49.892029),\n    (4.038550, 49.892368),\n    (4.040190, 49.892620),\n    (4.041120, 49.892830),\n    (4.041780, 49.893051),\n    (4.042410, 49.893330),\n    (4.044140, 49.894169),\n    (4.048230, 49.896320),\n    (4.054980, 49.899811),\n    (4.056230, 49.900478),\n    (4.060370, 49.902988),\n    (4.061550, 49.903519),\n    (4.062930, 49.904060),\n    (4.064410, 49.904518),\n    (4.065390, 49.904732),\n    (4.066980, 49.904961),\n    (4.067780, 49.905140),\n    (4.068570, 49.905491),\n    (4.069050, 49.905701),\n    (4.070350, 49.906460),\n    (4.070600, 49.906601),\n    (4.070690, 49.906570),\n    (4.070790, 49.906559),\n    (4.070890, 49.906582),\n    (4.070980, 49.906609),\n    (4.071190, 49.906502),\n    (4.072450, 49.905621),\n    (4.072890, 49.905312),\n    (4.073520, 49.905060),\n    (4.074240, 49.904911),\n    (4.074970, 49.904812),\n    (4.082860, 49.905090),\n    (4.087080, 49.904499),\n    (4.088390, 49.904419),\n    (4.089860, 49.904381),\n    (4.092300, 49.904541),\n    (4.095470, 49.905190),\n    (4.096590, 49.905418),\n    (4.100890, 49.908192),\n    (4.103290, 49.913052),\n    (4.105860, 49.918251),\n    (4.106550, 49.923000),\n    (4.104830, 49.927971),\n    (4.104150, 49.931950),\n    (4.105860, 49.934929),\n    (4.109810, 49.936588),\n    (4.112560, 49.936920),\n    (4.117880, 49.938251),\n    (4.148260, 49.948738),\n    (4.149640, 49.949631),\n    (4.162780, 49.969139),\n    (4.164520, 49.971760),\n    (4.164910, 49.972351),\n    (4.165800, 49.973339),\n    (4.167240, 49.974251),\n    (4.168270, 49.974651),\n    (4.171550, 49.975559),\n    (4.172620, 49.975941),\n    (4.173360, 49.976349),\n    (4.173910, 49.976688),\n    (4.174100, 49.976929),\n    (4.177870, 49.975800),\n    (4.178340, 49.975651),\n    (4.178620, 49.975590),\n    (4.179330, 49.975571),\n    (4.179650, 49.975540),\n    (4.179890, 49.975590),\n    (4.180130, 49.975609),\n    (4.180510, 49.975571),\n    (4.180900, 49.975521),\n    (4.181290, 49.975460),\n    (4.181880, 49.975498),\n    (4.182420, 49.975620),\n    (4.182990, 49.975712),\n    (4.183370, 49.975719),\n    (4.183710, 49.975712),\n    (4.184230, 49.975651),\n    (4.185360, 49.975521),\n    (4.186190, 49.975441),\n    (4.187830, 49.975231),\n    (4.189180, 49.975040),\n    (4.189570, 49.974991),\n    (4.190710, 49.974850),\n    (4.191450, 49.974739),\n    (4.191680, 49.974689),\n    (4.191740, 49.974682),\n    (4.192250, 49.974720),\n    (4.193980, 49.974758),\n    (4.194610, 49.974819),\n    (4.195240, 49.974930),\n    (4.196010, 49.975090),\n    (4.198770, 49.975700),\n    (4.202800, 49.976631),\n    (4.204610, 49.977039),\n    (4.205310, 49.977230),\n    (4.205990, 49.977520),\n    (4.206680, 49.977890),\n    (4.212200, 49.980869),\n    (4.215440, 49.982651),\n    (4.216500, 49.983219),\n    (4.217160, 49.983749),\n    (4.217560, 49.984138),\n    (4.217690, 49.984280),\n    (4.217870, 49.984482),\n    (4.218070, 49.984879),\n    (4.218200, 49.985600),\n    (4.218540, 49.986408),\n    (4.219080, 49.987141),\n    (4.220190, 49.987831),\n    (4.221790, 49.988659),\n    (4.228820, 49.992199),\n    (4.233960, 49.994770),\n    (4.235670, 49.995602),\n    (4.240140, 49.997871),\n    (4.240750, 49.998192),\n    (4.241000, 49.998310),\n    (4.241370, 49.998440),\n    (4.241730, 49.998550),\n    (4.243570, 49.999081),\n    (4.245940, 49.999790),\n    (4.246210, 49.999680),\n    (4.247340, 49.999420),\n    (4.247580, 49.999378),\n    (4.249150, 49.999329),\n    (4.249730, 49.999310),\n    (4.250340, 49.999401),\n    (4.250730, 49.999561),\n    (4.251060, 49.999599),\n    (4.251770, 49.999619),\n    (4.252970, 49.999630),\n    (4.254970, 49.999260),\n    (4.255600, 49.999149),\n    (4.256180, 49.999111),\n    (4.256690, 49.999149),\n    (4.256990, 49.999321),\n    (4.257080, 49.999359),\n    (4.257860, 50.000092),\n    (4.260200, 50.002411),\n    (4.261530, 50.003780),\n    (4.261560, 50.003811),\n    (4.261860, 50.004120),\n    (4.263240, 50.005482),\n    (4.263300, 50.005539),\n    (4.264680, 50.006519),\n    (4.265480, 50.007149),\n    (4.266200, 50.007801),\n    (4.266710, 50.008579),\n    (4.268820, 50.010052),\n    (4.268920, 50.010120),\n    (4.270130, 50.010910),\n    (4.271170, 50.010750),\n    (4.271970, 50.010750),\n    (4.273030, 50.010960),\n    (4.287950, 50.014118),\n    (4.295290, 50.015720),\n    (4.295830, 50.015831),\n    (4.302240, 50.017262),\n    (4.303490, 50.017559),\n    (4.303960, 50.017639),\n    (4.305480, 50.019310),\n    (4.306760, 50.020748),\n    (4.307400, 50.021290),\n    (4.308140, 50.021839),\n    (4.309140, 50.022072),\n    (4.309750, 50.022202),\n    (4.310350, 50.022339),\n    (4.310990, 50.022659),\n    (4.311990, 50.023708),\n    (4.313130, 50.025181),\n    (4.313640, 50.025761),\n    (4.313910, 50.026001),\n    (4.314030, 50.026100),\n    (4.314490, 50.026329),\n    (4.316360, 50.026798),\n    (4.318560, 50.027500),\n    (4.319550, 50.027710),\n    (4.319610, 50.027721),\n    (4.320890, 50.027901),\n    (4.322450, 50.027981),\n    (4.324050, 50.027962),\n    (4.324750, 50.027729),\n    (4.325420, 50.027519),\n    (4.326710, 50.026550),\n    (4.327300, 50.025921),\n    (4.327370, 50.025841),\n    (4.327950, 50.025791),\n    (4.328380, 50.025970),\n    (4.328570, 50.026051),\n    (4.329900, 50.026539),\n    (4.330990, 50.026859),\n    (4.331440, 50.026939),\n    (4.332390, 50.027161),\n    (4.332720, 50.027180),\n    (4.334770, 50.027340),\n    (4.336990, 50.027481),\n    (4.339210, 50.027161),\n    (4.340140, 50.027168),\n    (4.340950, 50.027210),\n    (4.341560, 50.027241),\n    (4.342820, 50.027550),\n    (4.344410, 50.027988),\n    (4.346580, 50.028351),\n    (4.352510, 50.028629),\n    (4.352690, 50.028641),\n    (4.356230, 50.028591),\n    (4.358270, 50.028519),\n    (4.360110, 50.028221),\n    (4.361280, 50.028210),\n    (4.363060, 50.028629),\n    (4.365290, 50.028900),\n    (4.367810, 50.029251),\n    (4.368030, 50.029282),\n    (4.370650, 50.029499),\n    (4.371810, 50.029701),\n    (4.372350, 50.029591),\n    (4.373150, 50.029530),\n    (4.374710, 50.029491),\n    (4.375130, 50.029789),\n    (4.375530, 50.029919),\n    (4.375700, 50.029930),\n    (4.375590, 50.030701),\n    (4.376790, 50.030861),\n    (4.377430, 50.030521),\n    (4.378140, 50.030540),\n    (4.378850, 50.030609),\n    (4.379130, 50.030750),\n    (4.379790, 50.031639),\n    (4.380530, 50.032398),\n    (4.382070, 50.033600),\n    (4.382530, 50.034111),\n    (4.383410, 50.035561),\n    (4.383440, 50.035599),\n    (4.383550, 50.035740),\n    (4.385020, 50.036079),\n    (4.387330, 50.037170),\n    (4.389230, 50.038078),\n    (4.390820, 50.038441),\n    (4.391130, 50.038490),\n    (4.396630, 50.039471),\n    (4.396690, 50.039478),\n    (4.398380, 50.039780),\n    (4.398620, 50.040081),\n    (4.399100, 50.040371),\n    (4.401460, 50.041271),\n    (4.402740, 50.041691),\n    (4.404880, 50.042210),\n    (4.405430, 50.042561),\n    (4.405630, 50.042900),\n    (4.405870, 50.043331),\n    (4.406040, 50.043510),\n    (4.407150, 50.044350),\n    (4.407720, 50.044670),\n    (4.407890, 50.044739),\n    (4.408620, 50.045040),\n    (4.409170, 50.045158),\n    (4.409520, 50.045189),\n    (4.410110, 50.045361),\n    (4.411240, 50.045731),\n    (4.412920, 50.046371),\n    (4.413720, 50.046680),\n    (4.418210, 50.048119),\n    (4.419450, 50.048801),\n    (4.421410, 50.049629),\n    (4.422380, 50.050179),\n    (4.424350, 50.051449),\n    (4.425510, 50.051910),\n    (4.426710, 50.052231),\n    (4.427880, 50.052540),\n    (4.429570, 50.053150),\n    (4.431280, 50.053612),\n    (4.432570, 50.054241),\n    (4.433690, 50.054691),\n    (4.435320, 50.055359),\n    (4.435620, 50.055519),\n    (4.435600, 50.055771),\n    (4.435070, 50.056252),\n    (4.434970, 50.056450),\n    (4.435060, 50.056599),\n    (4.435510, 50.057011),\n    (4.435650, 50.057060),\n    (4.435790, 50.057159),\n    (4.436210, 50.057480),\n    (4.436590, 50.057850),\n    (4.436730, 50.057961),\n    (4.436700, 50.058361),\n    (4.436630, 50.058701),\n    (4.436720, 50.058880),\n    (4.437140, 50.059231),\n    (4.437650, 50.059570),\n    (4.438030, 50.059700),\n    (4.439820, 50.060230),\n    (4.440370, 50.060398),\n    (4.443130, 50.061230),\n    (4.447210, 50.062489),\n    (4.448910, 50.063011),\n    (4.449100, 50.063068),\n    (4.450840, 50.063881),\n    (4.453690, 50.065201),\n    (4.456760, 50.066620),\n    (4.461400, 50.068562),\n    (4.465330, 50.070049),\n    (4.466550, 50.070530),\n    (4.467920, 50.070969),\n    (4.468860, 50.071751),\n    (4.469760, 50.072510),\n    (4.470700, 50.073109),\n    (4.470820, 50.073269),\n    (4.470870, 50.073349),\n    (4.470990, 50.073540),\n    (4.471190, 50.074051),\n    (4.471220, 50.074810),\n    (4.471230, 50.074879),\n    (4.471250, 50.074951),\n    (4.471320, 50.075310),\n    (4.471360, 50.075729),\n    (4.471440, 50.075970),\n    (4.471620, 50.076172),\n    (4.471770, 50.076271),\n    (4.471810, 50.076302),\n    (4.471580, 50.076530),\n    (4.471580, 50.076630),\n    (4.471580, 50.076740),\n    (4.471670, 50.076900),\n    (4.471970, 50.077011),\n    (4.471660, 50.077370),\n    (4.471390, 50.077671),\n    (4.471250, 50.077881),\n    (4.470960, 50.078201),\n    (4.470490, 50.078442),\n    (4.469200, 50.078869),\n    (4.468800, 50.079021),\n    (4.468530, 50.079201),\n    (4.468590, 50.079681),\n    (4.468620, 50.079910),\n    (4.468720, 50.081051),\n    (4.468780, 50.081612),\n    (4.468790, 50.081699),\n    (4.468850, 50.082470),\n    (4.468850, 50.082661),\n    (4.468860, 50.082771),\n    (4.468860, 50.082859),\n    (4.468880, 50.083000),\n    (4.468880, 50.083069),\n    (4.469300, 50.083099),\n    (4.470440, 50.083382),\n    (4.471110, 50.083591),\n    (4.472320, 50.084030),\n    (4.473600, 50.084419),\n    (4.474940, 50.084629),\n    (4.475430, 50.084770),\n    (4.475640, 50.084919),\n    (4.476180, 50.085258),\n    (4.477440, 50.085979),\n    (4.478490, 50.086571),\n    (4.479500, 50.087151),\n    (4.479880, 50.087280),\n    (4.480820, 50.087620),\n    (4.481370, 50.087910),\n    (4.482050, 50.088451),\n    (4.482370, 50.088692),\n    (4.482900, 50.089039),\n    (4.483270, 50.089191),\n    (4.483510, 50.089340),\n    (4.483750, 50.089531),\n    (4.484640, 50.090080),\n    (4.485040, 50.090462),\n    (4.485470, 50.091080),\n    (4.485530, 50.091370),\n    (4.485650, 50.091721),\n    (4.485760, 50.091961),\n    (4.484420, 50.092560),\n    (4.483960, 50.092838),\n    (4.483650, 50.093140),\n    (4.483580, 50.093399),\n    (4.483710, 50.093788),\n    (4.483730, 50.094379),\n    (4.483470, 50.094429),\n    (4.483340, 50.094582),\n    (4.486500, 50.095711),\n    (4.489520, 50.097229),\n    (4.490030, 50.097809),\n    (4.490160, 50.098141),\n    (4.490290, 50.098770),\n    (4.490920, 50.099209),\n    (4.491620, 50.099388),\n    (4.492400, 50.099400),\n    (4.493410, 50.099602),\n    (4.495380, 50.100342),\n    (4.497230, 50.100990),\n    (4.497720, 50.101231),\n    (4.497970, 50.101540),\n    (4.498120, 50.101711),\n    (4.498300, 50.101910),\n    (4.498470, 50.101952),\n    (4.498550, 50.101940),\n    (4.498630, 50.101940),\n    (4.498710, 50.101990),\n    (4.498750, 50.102051),\n    (4.498710, 50.102169),\n    (4.499550, 50.102650),\n    (4.499580, 50.102631),\n    (4.499680, 50.102619),\n    (4.499800, 50.102631),\n    (4.499860, 50.102741),\n    (4.499870, 50.102779),\n    (4.499820, 50.102840),\n    (4.499720, 50.102871),\n    (4.499590, 50.102859),\n    (4.499510, 50.102829),\n    (4.498890, 50.102940),\n    (4.498470, 50.103191),\n    (4.498060, 50.103470),\n    (4.497680, 50.103779),\n    (4.496910, 50.104530),\n    (4.496620, 50.105129),\n    (4.496350, 50.105751),\n    (4.496250, 50.106461),\n    (4.496300, 50.107231),\n    (4.496700, 50.111130),\n    (4.496780, 50.111961),\n    (4.497120, 50.115211),\n    (4.497190, 50.116470),\n    (4.496990, 50.117191),\n    (4.495100, 50.121288),\n    (4.494320, 50.123459),\n    (4.493730, 50.125092),\n    (4.493510, 50.125900),\n    (4.493510, 50.126808),\n    (4.493680, 50.127609),\n    (4.494040, 50.128559),\n    (4.494440, 50.129189),\n    (4.495350, 50.130192),\n    (4.496420, 50.130981),\n    (4.498580, 50.132580),\n    (4.500640, 50.134689),\n    (4.502040, 50.136169),\n    (4.502620, 50.136860),\n    (4.503070, 50.137531),\n    (4.503730, 50.138950),\n    (4.503900, 50.139511),\n    (4.504170, 50.141010),\n    (4.504210, 50.146320),\n    (4.504220, 50.147518),\n    (4.504190, 50.150139),\n    (4.504240, 50.150650),\n    (4.504380, 50.151230),\n    (4.504530, 50.151669),\n    (4.504650, 50.151852),\n    (4.504780, 50.152081),\n    (4.505300, 50.152790),\n    (4.507430, 50.155079),\n    (4.507870, 50.155491),\n    (4.509910, 50.157631),\n    (4.516290, 50.164360),\n    (4.516590, 50.164631),\n    (4.517350, 50.165310),\n    (4.518300, 50.166161),\n    (4.522510, 50.169350),\n    (4.523000, 50.169868),\n    (4.524500, 50.171089),\n    (4.525660, 50.172199),\n    (4.525990, 50.172451),\n    (4.526580, 50.173260),\n    (4.527610, 50.175430),\n    (4.528490, 50.177410),\n    (4.528900, 50.178669),\n    (4.528930, 50.178761),\n    (4.529060, 50.179180),\n    (4.529440, 50.180279),\n    (4.529530, 50.180618),\n    (4.530210, 50.183731),\n    (4.530300, 50.184631),\n    (4.530480, 50.186069),\n    (4.530560, 50.187279),\n    (4.530560, 50.188679),\n    (4.530420, 50.191021),\n    (4.530160, 50.195850),\n    (4.530740, 50.195950),\n    (4.531430, 50.196091),\n    (4.532100, 50.196251),\n    (4.533910, 50.196899),\n    (4.534410, 50.197140),\n    (4.535060, 50.197430),\n    (4.536930, 50.198292),\n    (4.538270, 50.198872),\n    (4.540600, 50.199909),\n    (4.542970, 50.200439),\n    (4.543080, 50.200340),\n    (4.543470, 50.200050),\n    (4.543550, 50.200100),\n    (4.544220, 50.200371),\n    (4.545320, 50.200489),\n    (4.545690, 50.200260),\n    (4.546040, 50.200150),\n    (4.546810, 50.200081),\n    (4.547450, 50.200020),\n    (4.547720, 50.200039),\n    (4.548080, 50.200298),\n    (4.548320, 50.200439),\n    (4.549570, 50.201172),\n    (4.550390, 50.201649),\n    (4.551650, 50.202511),\n    (4.552260, 50.203079),\n    (4.552650, 50.203850),\n    (4.555720, 50.212891),\n    (4.555770, 50.213070),\n    (4.557430, 50.218269),\n    (4.559250, 50.223999),\n    (4.559640, 50.224899),\n    (4.560050, 50.225342),\n    (4.561460, 50.226662),\n    (4.561980, 50.227150),\n    (4.562510, 50.227619),\n    (4.562590, 50.227680),\n    (4.562710, 50.227779),\n    (4.562900, 50.227982),\n    (4.562700, 50.228222),\n    (4.562570, 50.228390),\n    (4.562640, 50.228531),\n    (4.562740, 50.228561),\n    (4.562940, 50.228630),\n    (4.563650, 50.229721),\n    (4.563990, 50.230591),\n    (4.564440, 50.231430),\n    (4.565530, 50.232201),\n    (4.566080, 50.232658),\n    (4.566400, 50.233150),\n    (4.566740, 50.233829),\n    (4.566970, 50.234390),\n    (4.567220, 50.234638),\n    (4.567360, 50.234772),\n    (4.573110, 50.240292),\n    (4.573160, 50.240349),\n    (4.577600, 50.245140),\n    (4.577790, 50.245411),\n    (4.577920, 50.245850),\n    (4.578090, 50.246059),\n    (4.578520, 50.246361),\n    (4.578880, 50.246620),\n    (4.578920, 50.246651),\n    (4.579030, 50.246731),\n    (4.579210, 50.246861),\n    (4.579380, 50.247051),\n    (4.580160, 50.247780),\n    (4.580270, 50.247841),\n    (4.580410, 50.247898),\n    (4.581570, 50.248402),\n    (4.583990, 50.249451),\n    (4.585590, 50.250019),\n    (4.585640, 50.250038),\n    (4.586040, 50.250210),\n    (4.586160, 50.250259),\n    (4.586210, 50.250290),\n    (4.586300, 50.250340),\n    (4.586380, 50.250381),\n    (4.586420, 50.250389),\n    (4.586470, 50.250401),\n    (4.586560, 50.250439),\n    (4.586610, 50.250450),\n    (4.586960, 50.250530),\n    (4.587680, 50.250591),\n    (4.588160, 50.250530),\n    (4.589040, 50.250729),\n    (4.591290, 50.250858),\n    (4.592290, 50.250919),\n    (4.593520, 50.251080),\n    (4.595130, 50.251339),\n    (4.596340, 50.251640),\n    (4.597470, 50.251770),\n    (4.597660, 50.251770),\n    (4.597840, 50.251801),\n    (4.598510, 50.251911),\n    (4.599170, 50.251999),\n    (4.599820, 50.252102),\n    (4.600420, 50.251629),\n    (4.600760, 50.251781),\n    (4.601530, 50.252251),\n    (4.602230, 50.252781),\n    (4.602640, 50.252529),\n    (4.603200, 50.252449),\n    (4.603510, 50.252560),\n    (4.603790, 50.252731),\n    (4.603960, 50.252781),\n    (4.604090, 50.252800),\n    (4.604430, 50.252800),\n    (4.604810, 50.252750),\n    (4.604850, 50.252739),\n    (4.605060, 50.252998),\n    (4.605960, 50.253689),\n    (4.606690, 50.254398),\n    (4.607160, 50.254951),\n    (4.607220, 50.255009),\n    (4.607400, 50.255169),\n    (4.607530, 50.255268),\n    (4.608600, 50.256279),\n    (4.611360, 50.258839),\n    (4.613750, 50.261101),\n    (4.616130, 50.263351),\n    (4.617450, 50.264580),\n    (4.617910, 50.265011),\n    (4.621530, 50.268379),\n    (4.622060, 50.268929),\n    (4.622380, 50.269241),\n    (4.623560, 50.270340),\n    (4.625030, 50.271751),\n    (4.625790, 50.272469),\n    (4.632180, 50.278500),\n    (4.633660, 50.279900),\n    (4.634610, 50.280788),\n    (4.638420, 50.284409),\n    (4.641510, 50.287350),\n    (4.643670, 50.289391),\n    (4.643940, 50.289639),\n    (4.644780, 50.290440),\n    (4.647800, 50.293301),\n    (4.648590, 50.294048),\n    (4.649090, 50.294521),\n    (4.651460, 50.296768),\n    (4.659000, 50.303940),\n    (4.659550, 50.304298),\n    (4.659920, 50.304459),\n    (4.660310, 50.304630),\n    (4.660730, 50.304760),\n    (4.661960, 50.305099),\n    (4.663200, 50.305370),\n    (4.664630, 50.305698),\n    (4.666710, 50.306149),\n    (4.668210, 50.306480),\n    (4.668900, 50.306629),\n    (4.671050, 50.307060),\n    (4.671700, 50.307190),\n    (4.674660, 50.307880),\n    (4.684200, 50.309891),\n    (4.689570, 50.311111),\n    (4.693470, 50.311920),\n    (4.694890, 50.312241),\n    (4.700810, 50.313511),\n    (4.706690, 50.314838),\n    (4.713050, 50.316181),\n    (4.713310, 50.316250),\n    (4.713580, 50.316761),\n    (4.713740, 50.317329),\n    (4.713560, 50.317741),\n    (4.713510, 50.318111),\n    (4.713610, 50.318649),\n    (4.713910, 50.319359),\n    (4.714190, 50.320358),\n    (4.715040, 50.322701),\n    (4.714990, 50.323910),\n    (4.717590, 50.325001),\n    (4.717770, 50.324921),\n    (4.717850, 50.324821),\n    (4.718120, 50.324509),\n    (4.718450, 50.324520),\n    (4.719770, 50.324989),\n    (4.720650, 50.325409),\n    (4.720700, 50.325451),\n    (4.721360, 50.325920),\n    (4.722590, 50.327000),\n    (4.723550, 50.329041),\n    (4.723630, 50.331020),\n    (4.723940, 50.331860),\n    (4.724420, 50.332710),\n    (4.725740, 50.334461),\n    (4.727670, 50.336201),\n    (4.730730, 50.338959),\n    (4.732270, 50.340450),\n    (4.734830, 50.343040),\n    (4.735180, 50.343479),\n    (4.735340, 50.343788),\n    (4.735410, 50.344261),\n    (4.735390, 50.344372),\n    (4.734920, 50.344349),\n    (4.734470, 50.344479),\n    (4.733720, 50.344952),\n    (4.732910, 50.346062),\n    (4.732770, 50.346191),\n    (4.733700, 50.346630),\n    (4.733740, 50.346760),\n    (4.734880, 50.346569),\n    (4.736010, 50.346432),\n    (4.736110, 50.346420),\n    (4.736880, 50.346321),\n    (4.737300, 50.346279),\n    (4.738290, 50.346149),\n    (4.739500, 50.345989),\n    (4.740260, 50.345940),\n    (4.740830, 50.345921),\n    (4.744770, 50.346062),\n    (4.744920, 50.346069),\n    (4.745100, 50.346272),\n    (4.746170, 50.347092),\n    (4.746770, 50.347519),\n    (4.748540, 50.348888),\n    (4.749480, 50.349758),\n    (4.752270, 50.352509),\n    (4.753900, 50.354118),\n    (4.755600, 50.355808),\n    (4.759850, 50.360039),\n    (4.762570, 50.362671),\n    (4.764570, 50.364422),\n    (4.765580, 50.365391),\n    (4.766400, 50.366650),\n    (4.767660, 50.368839),\n    (4.768670, 50.370480),\n    (4.769410, 50.371750),\n    (4.769860, 50.372219),\n    (4.770530, 50.372532),\n    (4.771550, 50.373001),\n    (4.773970, 50.374100),\n    (4.774030, 50.374130),\n    (4.775150, 50.374630),\n    (4.775330, 50.374729),\n    (4.776860, 50.375439),\n    (4.777530, 50.375912),\n    (4.777930, 50.376179),\n    (4.778130, 50.376400),\n    (4.778210, 50.376530),\n    (4.778180, 50.376690),\n    (4.778440, 50.377060),\n    (4.778620, 50.377468),\n    (4.779190, 50.378429),\n    (4.779270, 50.378609),\n    (4.779180, 50.378960),\n    (4.779040, 50.379421),\n    (4.779070, 50.379608),\n    (4.779210, 50.379780),\n    (4.779620, 50.379940),\n    (4.780100, 50.380081),\n    (4.780390, 50.380169),\n    (4.781570, 50.380329),\n    (4.781800, 50.380421),\n    (4.781910, 50.380428),\n    (4.782600, 50.380569),\n    (4.782890, 50.380650),\n    (4.783150, 50.380779),\n    (4.783420, 50.381001),\n    (4.785600, 50.382809),\n    (4.785960, 50.383129),\n    (4.786310, 50.383369),\n    (4.786620, 50.383530),\n    (4.786970, 50.383671),\n    (4.787390, 50.383781),\n    (4.789910, 50.384331),\n    (4.794010, 50.385250),\n    (4.796470, 50.385769),\n    (4.802470, 50.387051),\n    (4.803070, 50.387180),\n    (4.803800, 50.387348),\n    (4.804120, 50.387459),\n    (4.804480, 50.387428),\n    (4.804610, 50.387489),\n    (4.804670, 50.387520),\n    (4.804700, 50.387669),\n    (4.805080, 50.387829),\n    (4.806710, 50.388599),\n    (4.806770, 50.388618),\n    (4.810200, 50.390339),\n    (4.812270, 50.391331),\n    (4.812730, 50.391560),\n    (4.814450, 50.392399),\n    (4.815130, 50.392738),\n    (4.816840, 50.393589),\n    (4.817520, 50.393848),\n    (4.818640, 50.394150),\n    (4.820810, 50.394878),\n    (4.823160, 50.395729),\n    (4.824710, 50.396290),\n    (4.826060, 50.396770),\n    (4.828430, 50.397621),\n    (4.829650, 50.398071),\n    (4.829870, 50.398190),\n    (4.833330, 50.400909),\n    (4.834690, 50.401981),\n    (4.835050, 50.402309),\n    (4.836200, 50.403900),\n    (4.837020, 50.405041),\n    (4.837400, 50.405411),\n    (4.838800, 50.406551),\n    (4.839240, 50.406960),\n    (4.839900, 50.408199),\n    (4.840070, 50.408600),\n    (4.840800, 50.410141),\n    (4.841710, 50.412090),\n    (4.842430, 50.413528),\n    (4.843000, 50.414169),\n    (4.844230, 50.415329),\n    (4.844960, 50.415779),\n    (4.846510, 50.416248),\n    (4.847440, 50.416351),\n    (4.848820, 50.416439),\n    (4.848990, 50.416470),\n    (4.849840, 50.416611),\n    (4.853020, 50.417690),\n    (4.854840, 50.418308),\n    (4.859200, 50.419769),\n    (4.862290, 50.420860),\n    (4.863330, 50.421211),\n    (4.864990, 50.421761),\n    (4.866280, 50.422180),\n    (4.866110, 50.422798),\n    (4.866040, 50.423031),\n    (4.865850, 50.423531),\n    (4.865380, 50.424351),\n    (4.865440, 50.424381),\n    (4.866160, 50.424728),\n    (4.866860, 50.425152),\n    (4.867130, 50.425259),\n    (4.867450, 50.425270),\n    (4.867960, 50.425362),\n    (4.868010, 50.425388),\n    (4.866960, 50.426369),\n    (4.866110, 50.427429),\n    (4.865710, 50.428028),\n    (4.865730, 50.428310),\n    (4.865980, 50.428761),\n    (4.866080, 50.429001),\n    (4.866100, 50.429062),\n    (4.866180, 50.429119),\n    (4.865970, 50.429409),\n    (4.865830, 50.429600),\n    (4.865330, 50.430260),\n    (4.864830, 50.430859),\n    (4.864180, 50.431782),\n    (4.863410, 50.432671),\n    (4.863170, 50.433022),\n    (4.863050, 50.433270),\n    (4.862960, 50.433521),\n    (4.862700, 50.434669),\n    (4.862670, 50.434780),\n    (4.862560, 50.435139),\n    (4.862410, 50.435600),\n    (4.862280, 50.435940),\n    (4.861470, 50.436951),\n    (4.860850, 50.437710),\n    (4.860310, 50.438381),\n    (4.859920, 50.438839),\n    (4.858760, 50.440289),\n    (4.858180, 50.440960),\n    (4.858110, 50.441040),\n    (4.858090, 50.441078),\n    (4.857790, 50.441479),\n    (4.857240, 50.442139),\n    (4.856830, 50.442760),\n    (4.856610, 50.443130),\n    (4.856490, 50.443470),\n    (4.856440, 50.443600),\n    (4.856260, 50.444401),\n    (4.856040, 50.445438),\n    (4.856040, 50.445511),\n    (4.856020, 50.445629),\n    (4.855990, 50.445961),\n    (4.856060, 50.446918),\n    (4.856090, 50.447430),\n    (4.856200, 50.448040),\n    (4.856370, 50.448929),\n    (4.856550, 50.449532),\n    (4.856610, 50.449879),\n    (4.856820, 50.450489),\n    (4.856890, 50.450611),\n    (4.857150, 50.450951),\n    (4.857970, 50.451931),\n    (4.858150, 50.452110),\n    (4.858320, 50.452259),\n    (4.858470, 50.452339),\n    (4.859240, 50.452450),\n    (4.859930, 50.452549),\n    (4.860250, 50.452660),\n    (4.860460, 50.452770),\n    (4.860650, 50.452950),\n    (4.860820, 50.453152),\n    (4.861040, 50.453461),\n    (4.861600, 50.454391),\n    (4.861860, 50.454910),\n    (4.862080, 50.455318),\n    (4.862160, 50.455448),\n    (4.862720, 50.456161),\n    (4.864500, 50.458290),\n    (4.864600, 50.458389),\n    (4.864860, 50.458660),\n    (4.865030, 50.458790),\n    (4.865450, 50.459011),\n    (4.865700, 50.459141),\n    (4.866690, 50.459599),\n    (4.866920, 50.459740),\n    (4.868190, 50.460480),\n    (4.868790, 50.460831),\n    (4.869320, 50.461182),\n    (4.869420, 50.461281),\n    (4.869480, 50.461399),\n    (4.869510, 50.461498),\n    (4.869530, 50.461639),\n    (4.869530, 50.461712),\n    (4.869560, 50.462151),\n    (4.869600, 50.462261),\n    (4.869620, 50.462299),\n    (4.869690, 50.462341),\n    (4.869720, 50.462349),\n    (4.869810, 50.462391),\n    (4.869890, 50.462410),\n    (4.869970, 50.462421),\n    (4.870140, 50.462429),\n    (4.870210, 50.462448),\n    (4.870370, 50.462448),\n    (4.870470, 50.462440),\n    (4.870510, 50.462429),\n    (4.870580, 50.462429),\n    (4.870640, 50.462460),\n    (4.870850, 50.462429),\n    (4.871170, 50.462391),\n    (4.871420, 50.462399),\n    (4.871590, 50.462410),\n    (4.871750, 50.462440),\n    (4.872050, 50.462528),\n    (4.872270, 50.462631),\n    (4.872530, 50.462769),\n    (4.873040, 50.462929),\n    (4.873250, 50.462978),\n    (4.873630, 50.463081),\n    (4.873940, 50.463181),\n    (4.874190, 50.463310),\n    (4.874550, 50.463459),\n    (4.874940, 50.463680),\n    (4.875350, 50.464001),\n    (4.875710, 50.464241),\n    (4.877010, 50.464760),\n    (4.877490, 50.464939),\n    (4.877750, 50.465069),\n    (4.877940, 50.465240),\n    (4.878030, 50.465370),\n    (4.878060, 50.465500),\n    (4.878070, 50.465641),\n    (4.878030, 50.465778),\n    (4.878020, 50.465851),\n    (4.878010, 50.465931),\n    (4.878030, 50.465988),\n    (4.878140, 50.466049),\n    (4.881460, 50.466301),\n    (4.884810, 50.466541),\n    (4.884960, 50.466469),\n    (4.885160, 50.466450),\n    (4.885360, 50.466499),\n    (4.885430, 50.466591),\n    (4.886350, 50.466640),\n    (4.888070, 50.466751),\n    (4.888800, 50.466801),\n    (4.889450, 50.466869),\n    (4.890240, 50.466961),\n    (4.891470, 50.467121),\n    (4.893350, 50.467442),\n    (4.895050, 50.467819),\n    (4.895320, 50.467899),\n    (4.895940, 50.468140),\n    (4.896040, 50.468182),\n    (4.896710, 50.468529),\n    (4.897180, 50.468800),\n    (4.897970, 50.469360),\n    (4.900340, 50.471039),\n    (4.900830, 50.471371),\n    (4.902530, 50.472561),\n    (4.902830, 50.472790),\n    (4.903100, 50.472980),\n    (4.903250, 50.473091),\n    (4.903340, 50.473099),\n    (4.903410, 50.473129),\n    (4.903450, 50.473160),\n    (4.903680, 50.473221),\n    (4.903750, 50.473240),\n    (4.903800, 50.473270),\n    (4.903830, 50.473301),\n    (4.903830, 50.473339),\n    (4.904120, 50.473640),\n    (4.906120, 50.474949),\n    (4.906300, 50.475079),\n    (4.906840, 50.475441),\n    (4.907170, 50.475651),\n    (4.907690, 50.476028),\n    (4.907840, 50.475990),\n    (4.908000, 50.476002),\n    (4.908080, 50.476021),\n    (4.908130, 50.476051),\n    (4.908240, 50.476151),\n    (4.908250, 50.476292),\n    (4.908210, 50.476360),\n    (4.908640, 50.476639),\n    (4.909430, 50.477188),\n    (4.910410, 50.477810),\n    (4.910740, 50.477810),\n    (4.910910, 50.477909),\n    (4.910970, 50.478050),\n    (4.910930, 50.478142),\n    (4.910800, 50.478241),\n    (4.911110, 50.478779),\n    (4.911650, 50.479450),\n    (4.911780, 50.479641),\n    (4.912280, 50.480240),\n    (4.912790, 50.480839),\n    (4.913840, 50.481880),\n    (4.914830, 50.482719),\n    (4.915350, 50.483040),\n    (4.920780, 50.486271),\n    (4.923060, 50.487629),\n    (4.929100, 50.491150),\n    (4.929500, 50.491459),\n    (4.929700, 50.491611),\n    (4.930340, 50.492390),\n    (4.931090, 50.493462),\n    (4.931850, 50.494431),\n    (4.932390, 50.495121),\n    (4.932520, 50.495289),\n    (4.932630, 50.495361),\n    (4.933290, 50.495708),\n    (4.933770, 50.495960),\n    (4.934270, 50.496231),\n    (4.934550, 50.496380),\n    (4.935930, 50.497108),\n    (4.936220, 50.497231),\n    (4.936410, 50.497318),\n    (4.938330, 50.498219),\n    (4.939470, 50.498638),\n    (4.939750, 50.498699),\n    (4.940450, 50.498909),\n    (4.940980, 50.499180),\n    (4.941110, 50.499439),\n    (4.940820, 50.500210),\n    (4.940840, 50.500462),\n    (4.940980, 50.500721),\n    (4.941300, 50.501011),\n    (4.943990, 50.503239),\n    (4.944560, 50.503571),\n    (4.945430, 50.503960),\n    (4.946800, 50.504471),\n    (4.948450, 50.504902),\n    (4.950240, 50.505192),\n    (4.954170, 50.505421),\n    (4.954450, 50.505428),\n    (4.955600, 50.505470),\n    (4.956050, 50.505489),\n    (4.960170, 50.505569),\n    (4.960470, 50.505581),\n    (4.961170, 50.505619),\n    (4.962500, 50.506039),\n    (4.965570, 50.507179),\n    (4.968170, 50.508049),\n    (4.970230, 50.508789),\n    (4.971540, 50.509972),\n    (4.973330, 50.511459),\n    (4.973990, 50.512032),\n    (4.974310, 50.512199),\n    (4.978170, 50.513741),\n    (4.978800, 50.513988),\n    (4.979530, 50.514339),\n    (4.981160, 50.515148),\n    (4.983910, 50.516510),\n    (4.983990, 50.516460),\n    (4.984060, 50.516441),\n    (4.984170, 50.516430),\n    (4.984290, 50.516449),\n    (4.984380, 50.516479),\n    (4.984460, 50.516560),\n    (4.984470, 50.516628),\n    (4.984450, 50.516701),\n    (4.984420, 50.516739),\n    (4.986180, 50.517620),\n    (4.989530, 50.519279),\n    (4.990840, 50.519920),\n    (4.992850, 50.520790),\n    (4.999800, 50.523811),\n    (5.000080, 50.523911),\n    (5.002110, 50.524620),\n    (5.002630, 50.524799),\n    (5.004290, 50.525360),\n    (5.004590, 50.525509),\n    (5.004830, 50.525661),\n    (5.005610, 50.526180),\n    (5.006470, 50.526749),\n    (5.007230, 50.527271),\n    (5.007400, 50.527401),\n    (5.007480, 50.527481),\n    (5.007570, 50.527580),\n    (5.008510, 50.528992),\n    (5.008680, 50.529228),\n    (5.008910, 50.529629),\n    (5.008960, 50.529701),\n    (5.009160, 50.529999),\n    (5.009460, 50.530460),\n    (5.010200, 50.531601),\n    (5.010220, 50.531620),\n    (5.010620, 50.532261),\n    (5.010700, 50.532398),\n    (5.011310, 50.533390),\n    (5.012290, 50.534809),\n    (5.013000, 50.535950),\n    (5.014500, 50.538200),\n    (5.015580, 50.539841),\n    (5.016950, 50.541969),\n    (5.017490, 50.542850),\n    (5.018010, 50.543690),\n    (5.018310, 50.544079),\n    (5.018560, 50.544380),\n    (5.019120, 50.544720),\n    (5.020110, 50.545349),\n    (5.020830, 50.545799),\n    (5.021230, 50.546082),\n    (5.022120, 50.546619),\n    (5.022600, 50.546921),\n    (5.023540, 50.547531),\n    (5.024330, 50.548031),\n    (5.025130, 50.548538),\n    (5.026240, 50.549271),\n    (5.027370, 50.549992),\n    (5.029500, 50.551380),\n    (5.029760, 50.551540),\n    (5.032730, 50.553490),\n    (5.034510, 50.554661),\n    (5.035080, 50.555038),\n    (5.035220, 50.555141),\n    (5.035740, 50.555489),\n    (5.036270, 50.555851),\n    (5.036640, 50.556080),\n    (5.037480, 50.556591),\n    (5.037850, 50.556820),\n    (5.038620, 50.557362),\n    (5.039830, 50.558552),\n    (5.041740, 50.560570),\n    (5.042760, 50.561649),\n    (5.046120, 50.565220),\n    (5.050530, 50.569870),\n    (5.052660, 50.572128),\n    (5.052870, 50.572350),\n    (5.055420, 50.575069),\n    (5.056920, 50.576649),\n    (5.062500, 50.582500),\n    (5.063340, 50.582439),\n    (5.064060, 50.582401),\n    (5.064570, 50.582371),\n    (5.064810, 50.582371),\n    (5.064980, 50.582340),\n    (5.065190, 50.582249),\n    (5.065530, 50.582111),\n    (5.065880, 50.581970),\n    (5.066270, 50.581810),\n    (5.066500, 50.581749),\n    (5.066750, 50.581718),\n    (5.067400, 50.581741),\n    (5.067810, 50.581760),\n    (5.068150, 50.581779),\n    (5.068980, 50.581791),\n    (5.069530, 50.581779),\n    (5.069890, 50.581749),\n    (5.070180, 50.581730),\n    (5.070580, 50.581741),\n    (5.070710, 50.581749),\n    (5.070910, 50.581841),\n    (5.071000, 50.581970),\n    (5.071110, 50.582588),\n    (5.071170, 50.582760),\n    (5.071310, 50.582890),\n    (5.071440, 50.582951),\n    (5.071690, 50.583061),\n    (5.072150, 50.583229),\n    (5.072370, 50.583340),\n    (5.072480, 50.583469),\n    (5.072620, 50.583561),\n    (5.072720, 50.583672),\n    (5.072860, 50.583820),\n    (5.073110, 50.584030),\n    (5.073380, 50.584190),\n    (5.073840, 50.584381),\n    (5.074120, 50.584549),\n    (5.074290, 50.584690),\n    (5.074590, 50.584881),\n    (5.075100, 50.585178),\n    (5.075420, 50.585361),\n    (5.075760, 50.585548),\n    (5.075940, 50.585629),\n    (5.076830, 50.586021),\n    (5.078080, 50.586571),\n    (5.079290, 50.587109),\n    (5.079860, 50.587349),\n    (5.080580, 50.587631),\n    (5.081270, 50.587898),\n    (5.082160, 50.588150),\n    (5.083110, 50.588390),\n    (5.084410, 50.588669),\n    (5.085440, 50.588860),\n    (5.086040, 50.589001),\n    (5.086810, 50.589191),\n    (5.087790, 50.589378),\n    (5.089000, 50.589771),\n    (5.089740, 50.590000),\n    (5.090110, 50.590179),\n    (5.090680, 50.590469),\n    (5.091330, 50.590752),\n    (5.091770, 50.590969),\n    (5.092110, 50.591270),\n    (5.092570, 50.591530),\n    (5.092970, 50.591660),\n    (5.093530, 50.591648),\n    (5.094270, 50.591648),\n    (5.095110, 50.591671),\n    (5.095940, 50.591740),\n    (5.096180, 50.591770),\n    (5.096350, 50.591820),\n    (5.097150, 50.592041),\n    (5.097810, 50.592201),\n    (5.098500, 50.592400),\n    (5.099230, 50.592602),\n    (5.099940, 50.592651),\n    (5.100650, 50.592659),\n    (5.101350, 50.592651),\n    (5.102080, 50.592560),\n    (5.102760, 50.592491),\n    (5.103350, 50.592442),\n    (5.104000, 50.592400),\n    (5.104780, 50.592281),\n    (5.105390, 50.592201),\n    (5.105930, 50.592010),\n    (5.106460, 50.591770),\n    (5.107240, 50.591549),\n    (5.108010, 50.591419),\n    (5.108790, 50.591358),\n    (5.109740, 50.591381),\n    (5.110280, 50.591370),\n    (5.110900, 50.591358),\n    (5.112230, 50.591339),\n    (5.112930, 50.591400),\n    (5.113890, 50.591549),\n    (5.114590, 50.591648),\n    (5.114910, 50.591591),\n    (5.115750, 50.591351),\n    (5.116760, 50.591068),\n    (5.117380, 50.590881),\n    (5.117930, 50.591202),\n    (5.118380, 50.591480),\n    (5.118810, 50.591640),\n    (5.119390, 50.591690),\n    (5.120220, 50.591660),\n    (5.121100, 50.591610),\n    (5.121990, 50.591572),\n    (5.122330, 50.591610),\n    (5.123380, 50.591831),\n    (5.123930, 50.592640),\n    (5.124240, 50.592850),\n    (5.126180, 50.593910),\n    (5.126440, 50.594170),\n    (5.127900, 50.595909),\n    (5.131090, 50.597488),\n    (5.131430, 50.597710),\n    (5.131620, 50.597969),\n    (5.131420, 50.598259),\n    (5.131420, 50.598381),\n    (5.131540, 50.598530),\n    (5.135540, 50.601601),\n    (5.137230, 50.602890),\n    (5.137710, 50.603310),\n    (5.140380, 50.606461),\n    (5.140450, 50.606602),\n    (5.140460, 50.606770),\n    (5.140260, 50.608372),\n    (5.140010, 50.610310),\n    (5.139810, 50.612240),\n    (5.139670, 50.613201),\n    (5.139670, 50.613689),\n    (5.139710, 50.614182),\n    (5.139810, 50.614609),\n    (5.140140, 50.615211),\n    (5.140520, 50.615791),\n    (5.140840, 50.615860),\n    (5.141580, 50.616192),\n    (5.142670, 50.616508),\n    (5.143600, 50.616680),\n    (5.143890, 50.616718),\n    (5.144080, 50.616718),\n    (5.144310, 50.616718),\n    (5.144980, 50.616699),\n    (5.145220, 50.616680),\n    (5.146530, 50.616772),\n    (5.146790, 50.616791),\n    (5.147490, 50.616920),\n    (5.148940, 50.617180),\n    (5.149580, 50.617260),\n    (5.150890, 50.617371),\n    (5.151800, 50.617409),\n    (5.151870, 50.617420),\n    (5.152010, 50.617401),\n    (5.152190, 50.617359),\n    (5.152820, 50.617149),\n    (5.152910, 50.617119),\n    (5.153150, 50.617119),\n    (5.153910, 50.617161),\n    (5.154220, 50.617199),\n    (5.154540, 50.617249),\n    (5.154700, 50.617310),\n    (5.154840, 50.617329),\n    (5.155010, 50.617359),\n    (5.155220, 50.617371),\n    (5.155360, 50.617371),\n    (5.155580, 50.617352),\n    (5.155770, 50.617321),\n    (5.155960, 50.617290),\n    (5.156110, 50.617298),\n    (5.156270, 50.617359),\n    (5.156580, 50.617519),\n    (5.156320, 50.617722),\n    (5.156200, 50.617760),\n    (5.156020, 50.617821),\n    (5.155510, 50.617931),\n    (5.155180, 50.618011),\n    (5.154910, 50.618130),\n    (5.154840, 50.618229),\n    (5.154930, 50.618320),\n    (5.155570, 50.618481),\n    (5.156330, 50.618721),\n    (5.157090, 50.619030),\n    (5.157860, 50.619431),\n    (5.158170, 50.619820),\n    (5.158200, 50.619999),\n    (5.158160, 50.620441),\n    (5.158020, 50.620911),\n    (5.157780, 50.621590),\n    (5.157520, 50.622219),\n    (5.156940, 50.622959),\n    (5.156870, 50.623100),\n    (5.156880, 50.623199),\n    (5.157020, 50.623199),\n    (5.158200, 50.623199),\n    (5.158860, 50.623291),\n    (5.160070, 50.623669),\n    (5.161150, 50.624081),\n    (5.161750, 50.624290),\n    (5.162410, 50.624420),\n    (5.163030, 50.624519),\n    (5.163230, 50.624489),\n    (5.163350, 50.624481),\n    (5.163350, 50.624451),\n    (5.163350, 50.624432),\n    (5.163380, 50.624409),\n    (5.163400, 50.624401),\n    (5.163440, 50.624390),\n    (5.163480, 50.624390),\n    (5.163530, 50.624390),\n    (5.163550, 50.624401),\n    (5.163580, 50.624420),\n    (5.163600, 50.624458),\n    (5.163600, 50.624489),\n    (5.163580, 50.624512),\n    (5.163540, 50.624531),\n    (5.163600, 50.624611),\n    (5.164110, 50.624748),\n    (5.165490, 50.625469),\n    (5.166200, 50.625801),\n    (5.167550, 50.626450),\n    (5.169750, 50.627239),\n    (5.170390, 50.627399),\n    (5.171860, 50.627831),\n    (5.172950, 50.628170),\n    (5.173410, 50.628311),\n    (5.175910, 50.628990),\n    (5.176120, 50.629181),\n    (5.177840, 50.633789),\n    (5.178230, 50.634281),\n    (5.181190, 50.636341),\n    (5.182460, 50.638451),\n    (5.184490, 50.641121),\n    (5.186420, 50.644291),\n    (5.187350, 50.645592),\n    (5.188370, 50.646790),\n    (5.188860, 50.647228),\n    (5.189570, 50.647881),\n    (5.190670, 50.649441),\n    (5.190880, 50.649490),\n    (5.193410, 50.649948),\n    (5.193970, 50.650051),\n    (5.198890, 50.650829),\n    (5.200420, 50.651100),\n    (5.201730, 50.651501),\n    (5.202740, 50.651829),\n    (5.203400, 50.652191),\n    (5.206130, 50.654350),\n    (5.208680, 50.657120),\n    (5.211730, 50.660419),\n    (5.226750, 50.670261),\n    (5.226870, 50.670330),\n    (5.231030, 50.672909),\n    (5.233430, 50.674332),\n    (5.237950, 50.676979),\n    (5.238410, 50.677189),\n    (5.244430, 50.680000),\n    (5.248100, 50.681721),\n    (5.248130, 50.681721),\n    (5.248270, 50.681660),\n    (5.248490, 50.681721),\n    (5.248520, 50.681881),\n    (5.251630, 50.683559),\n    (5.256480, 50.686939),\n    (5.256910, 50.687199),\n    (5.257320, 50.687420),\n    (5.262970, 50.690708),\n    (5.265500, 50.692249),\n    (5.266960, 50.693111),\n    (5.273010, 50.694790),\n    (5.273910, 50.695080),\n    (5.274450, 50.695309),\n    (5.274600, 50.695381),\n    (5.275310, 50.695728),\n    (5.275420, 50.695789),\n    (5.281430, 50.698700),\n    (5.281520, 50.698738),\n    (5.289040, 50.702381),\n    (5.291930, 50.703789),\n    (5.292140, 50.703911),\n    (5.292250, 50.704041),\n    (5.292390, 50.704010),\n    (5.292490, 50.704029),\n    (5.292570, 50.704090),\n    (5.292570, 50.704170),\n    (5.292750, 50.704231),\n    (5.292820, 50.704250),\n    (5.294350, 50.704960),\n    (5.294510, 50.705009),\n    (5.294720, 50.705051),\n    (5.294810, 50.704990),\n    (5.294930, 50.704971),\n    (5.295070, 50.705009),\n    (5.295120, 50.705070),\n    (5.295100, 50.705170),\n    (5.295010, 50.705219),\n    (5.295220, 50.705311),\n    (5.295770, 50.705528),\n    (5.297260, 50.706070),\n    (5.299930, 50.707081),\n    (5.301580, 50.707668),\n    (5.302840, 50.708221),\n    (5.304340, 50.708900),\n    (5.304710, 50.709148),\n    (5.308070, 50.711479),\n    (5.312100, 50.714931),\n    (5.316450, 50.718658),\n    (5.316750, 50.718910),\n    (5.317790, 50.719810),\n    (5.317850, 50.719849),\n    (5.321440, 50.722919),\n    (5.323200, 50.724239),\n    (5.324100, 50.724720),\n    (5.325300, 50.725201),\n    (5.326510, 50.725670),\n    (5.330000, 50.726589),\n    (5.330400, 50.726688),\n    (5.334550, 50.727749),\n    (5.335720, 50.728039),\n    (5.337340, 50.728439),\n    (5.340080, 50.729130),\n    (5.341560, 50.729591),\n    (5.342660, 50.730000),\n    (5.343350, 50.730309),\n    (5.344070, 50.730690),\n    (5.344300, 50.730808),\n    (5.344350, 50.730789),\n    (5.344410, 50.730770),\n    (5.344480, 50.730782),\n    (5.344540, 50.730801),\n    (5.344580, 50.730831),\n    (5.344590, 50.730862),\n    (5.344600, 50.730900),\n    (5.344590, 50.730919),\n    (5.344560, 50.730961),\n    (5.344540, 50.730980),\n    (5.345760, 50.731651),\n    (5.347450, 50.732571),\n    (5.348760, 50.733212),\n    (5.349450, 50.733551),\n    (5.349520, 50.733570),\n    (5.350320, 50.733921),\n    (5.352170, 50.734680),\n    (5.354010, 50.735458),\n    (5.354660, 50.735722),\n    (5.355370, 50.735859),\n    (5.355950, 50.735920),\n    (5.358870, 50.736092),\n    (5.359140, 50.736111),\n    (5.362270, 50.736279),\n    (5.363670, 50.736359),\n    (5.364720, 50.736469),\n    (5.365220, 50.736599),\n    (5.365790, 50.736729),\n    (5.366590, 50.737000),\n    (5.368300, 50.737942),\n    (5.371030, 50.739361),\n    (5.374230, 50.741070),\n    (5.376120, 50.742001),\n    (5.377920, 50.742920),\n    (5.382180, 50.744930),\n    (5.384110, 50.745731),\n    (5.388770, 50.747570),\n    (5.389090, 50.747711),\n    (5.389630, 50.747940),\n    (5.394050, 50.749969),\n    (5.395770, 50.750641),\n    (5.398630, 50.751652),\n    (5.403090, 50.753311),\n    (5.404040, 50.753578),\n    (5.406910, 50.754398),\n    (5.408040, 50.754650),\n    (5.408680, 50.754848),\n    (5.409770, 50.755341),\n    (5.411380, 50.756229),\n    (5.416730, 50.759048),\n    (5.419830, 50.760639),\n    (5.420670, 50.761070),\n    (5.421200, 50.761421),\n    (5.422010, 50.761871),\n    (5.422720, 50.762138),\n    (5.423860, 50.762569),\n    (5.425990, 50.763340),\n    (5.426430, 50.763481),\n    (5.426930, 50.763691),\n    (5.427820, 50.764149),\n    (5.427990, 50.764252),\n    (5.428510, 50.764519),\n    (5.428700, 50.764702),\n    (5.429570, 50.765160),\n    (5.429690, 50.765228),\n    (5.430810, 50.765831),\n    (5.431890, 50.766350),\n    (5.432700, 50.766762),\n    (5.433000, 50.766899),\n    (5.433170, 50.766979),\n    (5.433460, 50.767071),\n    (5.433970, 50.767208),\n    (5.435560, 50.767632),\n    (5.436670, 50.768009),\n    (5.437660, 50.768349),\n    (5.438330, 50.768608),\n    (5.438490, 50.768669),\n    (5.438770, 50.768768),\n    (5.439610, 50.769100),\n    (5.440550, 50.769520),\n    (5.441410, 50.770020),\n    (5.442390, 50.770599),\n    (5.443020, 50.770988),\n    (5.443350, 50.771198),\n    (5.444840, 50.771980),\n    (5.445870, 50.772610),\n    (5.447290, 50.773529),\n    (5.447780, 50.773911),\n    (5.448410, 50.774509),\n    (5.448630, 50.774738),\n    (5.448960, 50.775219),\n    (5.449400, 50.775829),\n    (5.449810, 50.776340),\n    (5.450110, 50.776730),\n    (5.450150, 50.776711),\n    (5.450220, 50.776711),\n    (5.450270, 50.776718),\n    (5.450310, 50.776741),\n    (5.450330, 50.776772),\n    (5.450340, 50.776798),\n    (5.450330, 50.776821),\n    (5.450310, 50.776852),\n    (5.450260, 50.776878),\n    (5.450360, 50.776951),\n    (5.450530, 50.777039),\n    (5.450760, 50.777069),\n    (5.450890, 50.777050),\n    (5.450940, 50.777142),\n    (5.451050, 50.777241),\n    (5.451310, 50.777409),\n    (5.452080, 50.777740),\n    (5.453870, 50.778351),\n    (5.455820, 50.778961),\n    (5.455880, 50.779091),\n    (5.458110, 50.779530),\n    (5.458630, 50.779652),\n    (5.458730, 50.779671),\n    (5.459400, 50.779800),\n    (5.460290, 50.779980),\n    (5.460280, 50.780201),\n    (5.460270, 50.780491),\n    (5.460240, 50.780800),\n    (5.460260, 50.781151),\n    (5.460370, 50.781509),\n    (5.460690, 50.782101),\n    (5.460780, 50.782200),\n    (5.460870, 50.782299),\n    (5.461040, 50.782471),\n    (5.461460, 50.782711),\n    (5.462030, 50.782970),\n    (5.462130, 50.783001),\n    (5.462280, 50.783039),\n    (5.463340, 50.783199),\n    (5.464120, 50.783310),\n    (5.464760, 50.783340),\n    (5.464960, 50.783321),\n    (5.465170, 50.783321),\n    (5.465730, 50.783321),\n    (5.466150, 50.783329),\n    (5.466320, 50.783360),\n    (5.466470, 50.783360),\n    (5.467180, 50.783470),\n    (5.468030, 50.783699),\n    (5.468870, 50.783958),\n    (5.469370, 50.784000),\n    (5.469720, 50.783951),\n    (5.469940, 50.783859),\n    (5.470100, 50.783760),\n    (5.470440, 50.783508),\n    (5.470630, 50.783218),\n    (5.470760, 50.783058),\n    (5.472870, 50.782940),\n    (5.473680, 50.782959),\n    (5.473790, 50.782951),\n    (5.473930, 50.782951),\n    (5.474590, 50.782990),\n    (5.474660, 50.783081),\n    (5.474670, 50.783169),\n    (5.474550, 50.783508),\n    (5.474430, 50.783798),\n    (5.474430, 50.783939),\n    (5.474490, 50.784050),\n    (5.474560, 50.784088),\n    (5.474710, 50.784149),\n    (5.475000, 50.784210),\n    (5.475580, 50.784229),\n    (5.475990, 50.784210),\n    (5.476440, 50.784161),\n    (5.476820, 50.784050),\n    (5.477710, 50.783810),\n    (5.478430, 50.783699),\n    (5.478890, 50.783661),\n    (5.479540, 50.783680),\n    (5.480060, 50.783718),\n    (5.480540, 50.783798),\n    (5.481850, 50.784050),\n    (5.484940, 50.784618),\n    (5.486270, 50.784859),\n    (5.492890, 50.786129),\n    (5.500330, 50.787479),\n    (5.505270, 50.788422),\n    (5.506380, 50.788631),\n    (5.509460, 50.789211),\n    (5.510560, 50.789410),\n    (5.512140, 50.789711),\n    (5.515800, 50.790371),\n    (5.521850, 50.791500),\n    (5.522390, 50.791599),\n    (5.527870, 50.792660),\n    (5.530150, 50.793110),\n    (5.531600, 50.793381),\n    (5.532440, 50.793530),\n    (5.535150, 50.794029),\n    (5.536200, 50.794231),\n    (5.540630, 50.795059),\n    (5.549790, 50.797211),\n    (5.559130, 50.799412),\n    (5.561260, 50.799919),\n    (5.564600, 50.801060),\n    (5.572560, 50.803791),\n    (5.573930, 50.804272),\n    (5.576030, 50.804989),\n    (5.581800, 50.806999),\n    (5.586580, 50.808681),\n    (5.587350, 50.808941),\n    (5.589610, 50.809731),\n    (5.592580, 50.810768),\n    (5.593660, 50.811199),\n    (5.594020, 50.811310),\n    (5.595070, 50.811729),\n    (5.595120, 50.811722),\n    (5.595190, 50.811722),\n    (5.595240, 50.811741),\n    (5.595270, 50.811749),\n    (5.595290, 50.811779),\n    (5.595310, 50.811810),\n    (5.595310, 50.811829),\n    (5.595520, 50.811920),\n    (5.597460, 50.812698),\n    (5.597590, 50.812752),\n    (5.597980, 50.812931),\n    (5.598810, 50.813271),\n    (5.600820, 50.814079),\n    (5.603430, 50.815140),\n    (5.603600, 50.815208),\n    (5.605310, 50.815899),\n    (5.607630, 50.816830),\n    (5.612710, 50.818878),\n    (5.615520, 50.820019),\n    (5.617510, 50.820808),\n    (5.624470, 50.823620),\n    (5.624910, 50.823799),\n    (5.625930, 50.824200),\n    (5.626070, 50.824261),\n    (5.633040, 50.827080),\n    (5.635110, 50.827900),\n    (5.638210, 50.829140),\n    (5.641280, 50.830399),\n    (5.641740, 50.830620),\n    (5.643520, 50.831341),\n    (5.644030, 50.831520),\n    (5.644160, 50.831558),\n    (5.644660, 50.831760),\n    (5.647650, 50.832951),\n    (5.649930, 50.833851),\n    (5.650020, 50.833881),\n    (5.650070, 50.833900),\n    (5.650140, 50.833931),\n    (5.650220, 50.833969),\n    (5.652300, 50.834801),\n    (5.652740, 50.834991),\n    (5.653410, 50.835258),\n    (5.654060, 50.835529),\n    (5.657140, 50.836769),\n    (5.661090, 50.838360),\n    (5.663420, 50.839291),\n    (5.666420, 50.840488),\n    (5.666580, 50.840549),\n    (5.666700, 50.840599),\n    (5.666700, 50.840599),\n    (5.666830, 50.840649),\n    (5.666790, 50.840691),\n    (5.666390, 50.841110),\n    (5.666140, 50.841282),\n    (5.665880, 50.841541),\n    (5.666110, 50.841690),\n    (5.666330, 50.841831),\n    (5.666770, 50.842121),\n    (5.667430, 50.842541),\n    (5.667560, 50.842590),\n    (5.667670, 50.842628),\n    (5.667940, 50.842682),\n    (5.668040, 50.842720),\n    (5.668420, 50.842911),\n    (5.669750, 50.843182),\n    (5.670560, 50.843330),\n    (5.670930, 50.843391),\n    (5.671380, 50.843498),\n    (5.671760, 50.843590),\n    (5.672050, 50.843811),\n    (5.672210, 50.844028),\n    (5.672240, 50.844109),\n    (5.672230, 50.844200),\n    (5.672200, 50.844238),\n    (5.672390, 50.844311),\n    (5.672350, 50.844421),\n    (5.672350, 50.844551),\n    (5.672380, 50.844669),\n    (5.672430, 50.844791),\n    (5.672490, 50.844872),\n    (5.672690, 50.845161),\n    (5.672810, 50.845249),\n    (5.672880, 50.845291),\n    (5.672990, 50.845322),\n    (5.672820, 50.845570),\n    (5.672510, 50.845951),\n    (5.672360, 50.846081),\n    (5.671980, 50.846241),\n    (5.672050, 50.846340),\n    (5.672320, 50.846539),\n    (5.672470, 50.846649),\n    (5.672830, 50.846889),\n    (5.673290, 50.847069),\n    (5.672940, 50.847549),\n    (5.672870, 50.847641),\n    (5.672870, 50.847851),\n    (5.672560, 50.848400),\n    (5.672540, 50.848480),\n    (5.672560, 50.848598),\n    (5.672630, 50.848701),\n    (5.672720, 50.848759),\n    (5.672820, 50.848808),\n    (5.672860, 50.848839),\n    (5.672970, 50.848869),\n    (5.674750, 50.849049),\n    (5.675680, 50.849140),\n    (5.676790, 50.849239),\n    (5.676780, 50.849319),\n    (5.676930, 50.849339),\n    (5.677380, 50.849319),\n    (5.677420, 50.849251),\n    (5.677480, 50.849209),\n    (5.677560, 50.849171),\n    (5.677640, 50.849140),\n    (5.677720, 50.849129),\n    (5.677800, 50.849129),\n    (5.677850, 50.849140),\n    (5.677950, 50.849159),\n    (5.677970, 50.849171),\n    (5.678020, 50.849190),\n    (5.678040, 50.849201),\n    (5.678090, 50.849251),\n    (5.678120, 50.849281),\n    (5.678140, 50.849331),\n    (5.678150, 50.849369),\n    (5.678150, 50.849419),\n    (5.678130, 50.849461),\n    (5.678090, 50.849510),\n    (5.678030, 50.849548),\n    (5.677980, 50.849579),\n    (5.677900, 50.849609),\n    (5.677840, 50.849621),\n    (5.677840, 50.849720),\n    (5.677850, 50.849800),\n    (5.677890, 50.849892),\n    (5.677950, 50.850010),\n    (5.677960, 50.850010),\n    (5.679030, 50.850739),\n    (5.680250, 50.851589),\n    (5.681260, 50.852299),\n    (5.681360, 50.852371),\n    (5.682300, 50.853020),\n    (5.683340, 50.853710),\n    (5.683390, 50.853748),\n    (5.683650, 50.853901),\n    (5.683720, 50.853970),\n    (5.683800, 50.854061),\n    (5.683840, 50.854141),\n    (5.683870, 50.854271),\n    (5.683890, 50.854370),\n    (5.683890, 50.854469),\n    (5.684050, 50.854481),\n    (5.684190, 50.854500),\n    (5.684330, 50.854549),\n    (5.684470, 50.854599),\n    (5.684850, 50.854759),\n    (5.685480, 50.855259),\n    (5.686320, 50.855850),\n    (5.686510, 50.856041),\n    (5.687400, 50.856819),\n    (5.687740, 50.857090),\n    (5.687920, 50.857220),\n    (5.688290, 50.857460),\n    (5.689570, 50.858181),\n    (5.690190, 50.858509),\n    (5.690370, 50.858601),\n    (5.690560, 50.858711),\n    (5.690680, 50.858780),\n    (5.690720, 50.858799),\n    (5.690860, 50.858871),\n    (5.691020, 50.858940),\n    (5.691190, 50.859020),\n    (5.691520, 50.859169),\n    (5.691810, 50.859291),\n    (5.692170, 50.859421),\n    (5.692580, 50.859550),\n    (5.693130, 50.859692),\n    (5.693650, 50.859791),\n    (5.694020, 50.859852),\n    (5.694330, 50.859879),\n    (5.694670, 50.859909),\n    (5.695150, 50.859940),\n    (5.695930, 50.859970),\n    (5.696450, 50.859989),\n    (5.698640, 50.860039),\n    (5.700240, 50.860111),\n    (5.700900, 50.860149),\n    (5.701340, 50.860191),\n    (5.701770, 50.860222),\n    (5.702240, 50.860260),\n    (5.702810, 50.860321),\n    (5.703080, 50.860340),\n    (5.703260, 50.860359),\n    (5.703430, 50.860371),\n    (5.704550, 50.860470),\n    (5.704900, 50.860500),\n    (5.705330, 50.860489),\n    (5.705690, 50.860470),\n    (5.706020, 50.860432),\n    (5.706280, 50.860371),\n    (5.706580, 50.860310),\n    (5.706970, 50.860199),\n    (5.707290, 50.860100),\n    (5.707650, 50.860001),\n    (5.708430, 50.859791),\n    (5.709210, 50.859600),\n    (5.709420, 50.859539),\n    (5.709550, 50.859509),\n    (5.709640, 50.859631),\n    (5.709690, 50.859711),\n    (5.709990, 50.860111),\n    (5.710040, 50.860241),\n    (5.710080, 50.860359),\n    (5.710300, 50.860641),\n    (5.710850, 50.861340),\n    (5.711070, 50.861629),\n    (5.711360, 50.862011),\n    (5.711660, 50.862400),\n    (5.711740, 50.862499),\n    (5.712330, 50.863289),\n    (5.712400, 50.863380),\n    (5.712350, 50.863411),\n    (5.712320, 50.863449),\n    (5.712310, 50.863480),\n    (5.712310, 50.863499),\n    (5.712340, 50.863541),\n    (5.712380, 50.863571),\n    (5.712430, 50.863579),\n    (5.712480, 50.863579),\n    (5.712530, 50.863579),\n    (5.712730, 50.863838),\n    (5.713560, 50.864941),\n    (5.713780, 50.865280),\n    (5.714060, 50.865639),\n    (5.714900, 50.866482),\n    (5.715090, 50.866680),\n    (5.715960, 50.867599),\n    (5.715990, 50.867630),\n    (5.716350, 50.867908),\n    (5.716750, 50.868141),\n    (5.717110, 50.868279),\n    (5.717400, 50.868370),\n    (5.717990, 50.868610),\n    (5.718370, 50.868820),\n    (5.718590, 50.868980),\n    (5.718680, 50.869041),\n    (5.720060, 50.870152),\n    (5.721030, 50.871170),\n    (5.721420, 50.871552),\n    (5.721790, 50.871861),\n    (5.721950, 50.872009),\n    (5.722400, 50.872349),\n    (5.722880, 50.872631),\n    (5.723100, 50.872742),\n    (5.723780, 50.873089),\n    (5.724240, 50.873291),\n    (5.724770, 50.873489),\n    (5.728780, 50.874630),\n    (5.730080, 50.875019),\n    (5.730190, 50.875050),\n    (5.731080, 50.875309),\n    (5.732250, 50.875648),\n    (5.732440, 50.875702),\n    (5.733930, 50.876080),\n    (5.734470, 50.876240),\n    (5.734810, 50.876350),\n    (5.734960, 50.876411),\n    (5.735000, 50.876369),\n    (5.735040, 50.876350),\n    (5.735120, 50.876339),\n    (5.735200, 50.876339),\n    (5.735260, 50.876362),\n    (5.735290, 50.876381),\n    (5.735330, 50.876431),\n    (5.735340, 50.876469),\n    (5.735330, 50.876511),\n    (5.735870, 50.876640),\n    (5.736160, 50.876720),\n    (5.736660, 50.876881),\n    (5.737330, 50.877140),\n    (5.737970, 50.877441),\n    (5.739170, 50.877991),\n    (5.739950, 50.878288),\n    (5.740650, 50.878502),\n    (5.741140, 50.878609),\n    (5.741520, 50.878651),\n    (5.741710, 50.878658),\n    (5.741960, 50.878658),\n    (5.743090, 50.878651),\n    (5.743970, 50.878651),\n    (5.744050, 50.878651),\n    (5.744200, 50.878681),\n    (5.744340, 50.878738),\n    (5.744740, 50.879009),\n    (5.744990, 50.879139),\n    (5.745630, 50.879330),\n    (5.747410, 50.879990),\n    (5.747560, 50.880039),\n    (5.747840, 50.880138),\n    (5.749530, 50.880730),\n    (5.749880, 50.880852),\n    (5.750240, 50.880989),\n    (5.750340, 50.881062),\n    (5.750340, 50.881062),\n    (5.750410, 50.881130),\n    (5.750990, 50.881729),\n    (5.751100, 50.881828),\n    (5.751560, 50.882339),\n    (5.751610, 50.882408),\n    (5.751630, 50.882469),\n    (5.751630, 50.882580),\n    (5.751630, 50.882641),\n    (5.751630, 50.882931),\n    (5.751750, 50.882961),\n    (5.751900, 50.882992),\n    (5.751940, 50.883018),\n    (5.752030, 50.883190),\n    (5.752510, 50.884159),\n    (5.752910, 50.885021),\n    (5.752940, 50.885078),\n    (5.753140, 50.885071),\n    (5.753510, 50.885040),\n    (5.753610, 50.885170),\n    (5.753730, 50.885330),\n    (5.753950, 50.885738),\n    (5.753980, 50.886021),\n    (5.753930, 50.886341),\n    (5.753940, 50.886478),\n    (5.754040, 50.886742),\n    (5.754140, 50.886921),\n    (5.754310, 50.887199),\n    (5.754870, 50.887600),\n    (5.755060, 50.887718),\n    (5.756620, 50.888699),\n    (5.756990, 50.888988),\n    (5.757320, 50.889290),\n    (5.757520, 50.889469),\n    (5.757970, 50.889870),\n    (5.759160, 50.890911),\n    (5.759660, 50.891258),\n    (5.760380, 50.891670),\n    (5.762130, 50.892479),\n    (5.762210, 50.892521),\n    (5.762390, 50.892590),\n    (5.762880, 50.892780),\n    (5.763250, 50.892979),\n    (5.763680, 50.893299),\n    (5.764010, 50.893551),\n    (5.764310, 50.893810),\n    (5.764500, 50.894058),\n    (5.765220, 50.894901),\n    (5.765440, 50.895100),\n    (5.765870, 50.895359),\n    (5.766100, 50.895500),\n    (5.766640, 50.895962),\n    (5.767040, 50.896381),\n    (5.767400, 50.896690),\n    (5.767680, 50.896980),\n    (5.768000, 50.897369),\n    (5.768210, 50.897709),\n    (5.768270, 50.897861),\n    (5.769210, 50.899570),\n    (5.769350, 50.899792),\n    (5.769590, 50.900188),\n    (5.769750, 50.900349),\n    (5.769870, 50.900429),\n    (5.771450, 50.901230),\n    (5.771730, 50.901360),\n    (5.773130, 50.902039),\n    (5.773660, 50.902302),\n    (5.774050, 50.902481),\n    (5.774390, 50.902618),\n    (5.775660, 50.903019),\n    (5.776320, 50.903229),\n    (5.776740, 50.903370),\n    (5.777030, 50.903530),\n    (5.777690, 50.903820),\n    (5.778650, 50.904140),\n    (5.779020, 50.904282),\n    (5.779590, 50.904381),\n    (5.779730, 50.904411),\n    (5.780180, 50.904491),\n    (5.780480, 50.904579),\n    (5.780790, 50.904720),\n    (5.781400, 50.905140),\n    (5.781610, 50.905251),\n    (5.782170, 50.905479),\n    (5.783090, 50.905769),\n    (5.783450, 50.905918),\n    (5.783670, 50.906052),\n    (5.783880, 50.906181),\n    (5.784140, 50.906361),\n    (5.784580, 50.906639),\n    (5.784800, 50.906792),\n    (5.785160, 50.907021),\n    (5.786190, 50.907681),\n    (5.786530, 50.907829),\n    (5.786810, 50.907909),\n    (5.787200, 50.907982),\n    (5.787630, 50.907990),\n    (5.789450, 50.907890),\n    (5.792080, 50.907742),\n    (5.794240, 50.907619),\n    (5.795040, 50.907612),\n    (5.795800, 50.907619),\n    (5.796100, 50.907639),\n    (5.796710, 50.907719),\n    (5.797150, 50.907810),\n    (5.797970, 50.907982),\n    (5.800650, 50.908619),\n    (5.801250, 50.908749),\n    (5.802530, 50.908970),\n    (5.803530, 50.909111),\n    (5.804040, 50.909149),\n    (5.804450, 50.909161),\n    (5.805180, 50.909180),\n    (5.805740, 50.909248),\n    (5.807090, 50.909550),\n    (5.808030, 50.909779),\n    (5.808610, 50.909859),\n    (5.809130, 50.909870),\n    (5.809430, 50.909851),\n    (5.810010, 50.909771),\n    (5.810640, 50.909618),\n    (5.810760, 50.909618),\n    (5.810860, 50.909641),\n    (5.810930, 50.909561),\n    (5.811400, 50.909180),\n    (5.811490, 50.909081),\n    (5.811820, 50.909119),\n    (5.812160, 50.909111),\n    (5.812670, 50.909039),\n    (5.813870, 50.908791),\n    (5.814330, 50.908680),\n    (5.815690, 50.908310),\n    (5.816060, 50.908230),\n    (5.816590, 50.908150),\n    (5.817270, 50.908112),\n    (5.818620, 50.908051),\n    (5.819490, 50.908020),\n    (5.819930, 50.908058),\n    (5.820260, 50.908100),\n    (5.822140, 50.908440),\n    (5.822580, 50.908562),\n    (5.822830, 50.908649),\n    (5.823990, 50.909050),\n    (5.824860, 50.909321),\n    (5.825000, 50.909340),\n    (5.825610, 50.909359),\n    (5.825760, 50.909328),\n    (5.825960, 50.909489),\n    (5.826760, 50.909981),\n    (5.826990, 50.910118),\n    (5.827210, 50.910332),\n    (5.827320, 50.910301),\n    (5.827470, 50.910332),\n    (5.828350, 50.910931),\n    (5.828550, 50.911041),\n    (5.828910, 50.911171),\n    (5.829790, 50.911240),\n    (5.830410, 50.911308),\n    (5.833060, 50.911659),\n    (5.834070, 50.911831),\n    (5.834770, 50.911999),\n    (5.835690, 50.912189),\n    (5.835700, 50.912189),\n    (5.836050, 50.912300),\n    (5.836250, 50.912392),\n    (5.838230, 50.913540),\n    (5.838950, 50.913879),\n    (5.839610, 50.914150),\n    (5.840920, 50.914730),\n    (5.841510, 50.914902),\n    (5.841370, 50.915131),\n    (5.841320, 50.915279),\n    (5.841330, 50.915371),\n    (5.842360, 50.916672),\n    (5.842460, 50.916801),\n    (5.843370, 50.917931),\n    (5.844580, 50.919250),\n    (5.846780, 50.921429),\n    (5.848380, 50.922932),\n    (5.849410, 50.922459),\n    (5.852490, 50.923519),\n    (5.852890, 50.923660),\n    (5.858860, 50.926071),\n    (5.858940, 50.926128),\n    (5.859390, 50.926899),\n    (5.859550, 50.927029),\n    (5.859660, 50.927059),\n    (5.860290, 50.927139),\n    (5.860700, 50.927238),\n    (5.861380, 50.927559),\n    (5.861950, 50.927711),\n    (5.862150, 50.927830),\n    (5.862560, 50.928329),\n    (5.862910, 50.928551),\n    (5.863050, 50.928730),\n    (5.863080, 50.928810),\n    (5.863090, 50.929409),\n    (5.863160, 50.929520),\n    (5.863490, 50.929871),\n    (5.863560, 50.930038),\n    (5.863560, 50.930382),\n    (5.863480, 50.930630),\n    (5.863500, 50.930859),\n    (5.863580, 50.931042),\n    (5.863930, 50.931339),\n    (5.864330, 50.931931),\n    (5.864470, 50.932098),\n    (5.864890, 50.932449),\n    (5.865070, 50.932720),\n    (5.865360, 50.932861),\n    (5.865730, 50.933102),\n    (5.866650, 50.933842),\n    (5.866980, 50.934059),\n    (5.868010, 50.934528),\n    (5.868790, 50.934940),\n    (5.869210, 50.935101),\n    (5.869960, 50.935429),\n    (5.870230, 50.935589),\n    (5.870750, 50.935982),\n    (5.870970, 50.936100),\n    (5.871500, 50.936340),\n    (5.872260, 50.936588),\n    (5.872670, 50.936749),\n    (5.872790, 50.936852),\n    (5.872880, 50.936958),\n    (5.872950, 50.937092),\n    (5.873060, 50.937130),\n    (5.873410, 50.937439),\n    (5.873560, 50.937538),\n    (5.873700, 50.937611),\n    (5.873760, 50.937630),\n    (5.873880, 50.937698),\n    (5.874170, 50.937881),\n    (5.874300, 50.937950),\n    (5.874310, 50.937950),\n    (5.874330, 50.937950),\n    (5.874330, 50.937950),\n    (5.875550, 50.937462),\n    (5.875560, 50.937462),\n    (5.875570, 50.937462),\n    (5.875640, 50.937469),\n    (5.876550, 50.937611),\n    (5.876810, 50.937672),\n    (5.878040, 50.937969),\n    (5.878430, 50.938042),\n    (5.878570, 50.938049),\n    (5.878760, 50.938110),\n    (5.878860, 50.938179),\n    (5.878880, 50.938210),\n    (5.878910, 50.938259),\n    (5.878950, 50.938358),\n    (5.878960, 50.938560),\n    (5.880440, 50.938740),\n    (5.881460, 50.938931),\n    (5.882140, 50.939098),\n    (5.882480, 50.939251),\n    (5.882800, 50.939449),\n    (5.883030, 50.939640),\n    (5.883290, 50.939892),\n    (5.884040, 50.940521),\n    (5.884070, 50.940552),\n    (5.884660, 50.941101),\n    (5.886090, 50.942471),\n    (5.887160, 50.942341),\n    (5.887700, 50.942291),\n    (5.887920, 50.942280),\n    (5.888080, 50.942280),\n    (5.888360, 50.942291),\n    (5.889940, 50.942490),\n    (5.890530, 50.942619),\n    (5.891130, 50.942799),\n    (5.891970, 50.943069),\n    (5.892520, 50.943291),\n    (5.892970, 50.943401),\n    (5.893370, 50.943451),\n    (5.894070, 50.943501),\n    (5.894380, 50.943489),\n    (5.894610, 50.943451),\n    (5.895750, 50.943321),\n    (5.896350, 50.943321),\n    (5.896510, 50.943340),\n    (5.896720, 50.943359),\n    (5.897430, 50.943420),\n    (5.898040, 50.943420),\n    (5.898490, 50.943378),\n    (5.899010, 50.943272),\n    (5.899050, 50.943310),\n    (5.899120, 50.943378),\n    (5.899250, 50.943451),\n    (5.900030, 50.943588),\n    (5.900250, 50.943649),\n    (5.900430, 50.943729),\n    (5.900980, 50.944092),\n    (5.902580, 50.945271),\n    (5.904560, 50.946972),\n    (5.905180, 50.947479),\n    (5.905420, 50.947689),\n    (5.905480, 50.947739),\n    (5.905900, 50.948120),\n    (5.906960, 50.949020),\n    (5.907350, 50.949348),\n    (5.907400, 50.949390),\n    (5.907810, 50.949730),\n    (5.907910, 50.949791),\n    (5.908100, 50.949860),\n    (5.908170, 50.949909),\n    (5.908510, 50.949791),\n    (5.909060, 50.949699),\n    (5.909530, 50.949638),\n    (5.910440, 50.949539),\n    (5.910820, 50.949478),\n    (5.911770, 50.949360),\n    (5.912790, 50.949249),\n    (5.913520, 50.949169),\n    (5.914020, 50.949089),\n    (5.914490, 50.948959),\n    (5.914890, 50.948799),\n    (5.915070, 50.948719),\n    (5.915160, 50.948711),\n    (5.915280, 50.948738),\n    (5.915780, 50.949341),\n    (5.915960, 50.949459),\n    (5.916420, 50.949581),\n    (5.916500, 50.949612),\n    (5.916130, 50.950119),\n    (5.916000, 50.950241),\n    (5.916490, 50.950562),\n    (5.916890, 50.950821),\n    (5.917390, 50.951099),\n    (5.918270, 50.951561),\n    (5.918530, 50.951729),\n    (5.918730, 50.951908),\n    (5.920360, 50.953331),\n    (5.922500, 50.955151),\n    (5.922730, 50.955349),\n    (5.923100, 50.955631),\n    (5.923630, 50.955971),\n    (5.924190, 50.956291),\n    (5.924540, 50.956470),\n    (5.925870, 50.957081),\n    (5.925940, 50.957211),\n    (5.926060, 50.957180),\n    (5.926270, 50.957161),\n    (5.926980, 50.957199),\n    (5.927300, 50.957191),\n    (5.927440, 50.957321),\n    (5.929570, 50.958118),\n    (5.929710, 50.958172),\n    (5.930070, 50.958241),\n    (5.930120, 50.958370),\n    (5.930190, 50.958420),\n    (5.930560, 50.959011),\n    (5.931170, 50.959949),\n    (5.931400, 50.960171),\n    (5.932130, 50.960499),\n    (5.932540, 50.960720),\n    (5.933060, 50.961048),\n    (5.933390, 50.961311),\n    (5.933620, 50.961441),\n    (5.933830, 50.961529),\n    (5.934200, 50.961632),\n    (5.934420, 50.961720),\n    (5.934630, 50.961842),\n    (5.935200, 50.962261),\n    (5.937810, 50.964642),\n    (5.937940, 50.964809),\n    (5.938250, 50.964851),\n    (5.938400, 50.964901),\n    (5.938740, 50.965080),\n    (5.940090, 50.966129),\n    (5.940280, 50.966251),\n    (5.940620, 50.966400),\n    (5.942330, 50.966911),\n    (5.943150, 50.967300),\n    (5.943690, 50.967541),\n    (5.944520, 50.967899),\n    (5.945230, 50.968208),\n    (5.946030, 50.968578),\n    (5.947780, 50.969490),\n    (5.948090, 50.969608),\n    (5.948510, 50.969818),\n    (5.948890, 50.970051),\n    (5.949200, 50.970299),\n    (5.950060, 50.971062),\n    (5.950290, 50.971352),\n    (5.950660, 50.971882),\n    (5.950950, 50.972221),\n    (5.951260, 50.972542),\n    (5.951610, 50.972809),\n    (5.952010, 50.973000),\n    (5.953850, 50.973660),\n    (5.954340, 50.973930),\n    (5.955320, 50.974739),\n    (5.955510, 50.974861),\n    (5.956020, 50.975109),\n    (5.956210, 50.975231),\n    (5.956710, 50.975620),\n    (5.958210, 50.976631),\n    (5.959020, 50.977070),\n    (5.959210, 50.977219),\n    (5.959470, 50.977421),\n    (5.959710, 50.977581),\n    (5.960060, 50.977810),\n    (5.960490, 50.978142),\n    (5.961210, 50.978100),\n    (5.961350, 50.978340),\n    (5.961560, 50.978611),\n    (5.961940, 50.978939),\n    (5.962230, 50.979141),\n    (5.963630, 50.979969),\n    (5.963870, 50.980091),\n    (5.964160, 50.980202),\n    (5.964800, 50.980301),\n    (5.965150, 50.980400),\n    (5.965410, 50.980480),\n    (5.965500, 50.980511),\n    (5.965510, 50.980511),\n    (5.965540, 50.980518),\n    (5.965610, 50.980541),\n    (5.965740, 50.980591),\n    (5.965950, 50.980640),\n    (5.966030, 50.980640),\n    (5.966130, 50.980629),\n    (5.966240, 50.980598),\n    (5.966350, 50.980579),\n    (5.966470, 50.980549),\n    (5.966550, 50.980518),\n    (5.966690, 50.980389),\n    (5.966770, 50.980289),\n    (5.966810, 50.980240),\n    (5.966870, 50.980179),\n    (5.966970, 50.980129),\n    (5.967100, 50.980091),\n    (5.967350, 50.980061),\n    (5.967810, 50.980030),\n    (5.968050, 50.980019),\n    (5.968230, 50.980030),\n    (5.968370, 50.980080),\n    (5.968480, 50.980110),\n    (5.968590, 50.980160),\n    (5.968720, 50.980209),\n    (5.968860, 50.980282),\n    (5.969250, 50.980461),\n    (5.969530, 50.980591),\n    (5.969820, 50.980721),\n    (5.970060, 50.980808),\n    (5.970360, 50.980919),\n    (5.970540, 50.980980),\n    (5.970950, 50.981071),\n    (5.971140, 50.981110),\n    (5.971260, 50.981129),\n    (5.971340, 50.981140),\n    (5.971410, 50.981140),\n    (5.971470, 50.981129),\n    (5.971510, 50.981110),\n    (5.971550, 50.981091),\n    (5.971570, 50.981060),\n    (5.971590, 50.981030),\n    (5.971590, 50.980942),\n    (5.971620, 50.980511),\n    (5.971640, 50.980190),\n    (5.971650, 50.980129),\n    (5.971670, 50.980110),\n    (5.971710, 50.980091),\n    (5.971810, 50.980068),\n    (5.972180, 50.980129),\n    (5.972300, 50.980129),\n    (5.972300, 50.980209),\n    (5.972350, 50.980251),\n    (5.972270, 50.981171),\n    (5.972330, 50.981258),\n    (5.972460, 50.981319),\n    (5.972680, 50.981331),\n    (5.973040, 50.981319),\n    (5.973470, 50.981361),\n    (5.973900, 50.981430),\n    (5.974240, 50.981529),\n    (5.974430, 50.981609),\n    (5.974970, 50.982010),\n    (5.975080, 50.982101),\n    (5.975210, 50.982182),\n    (5.975360, 50.982262),\n    (5.975620, 50.982380),\n    (5.976220, 50.982601),\n    (5.976640, 50.982731),\n    (5.976740, 50.982761),\n    (5.976780, 50.982811),\n    (5.976920, 50.982922),\n    (5.977330, 50.983200),\n    (5.977860, 50.983582),\n    (5.978440, 50.983990),\n    (5.978580, 50.984089),\n    (5.978810, 50.984249),\n    (5.978990, 50.984379),\n    (5.979150, 50.984489),\n    (5.979340, 50.984581),\n    (5.979550, 50.984650),\n    (5.979800, 50.984718),\n    (5.980510, 50.984909),\n    (5.981640, 50.985210),\n    (5.983110, 50.985649),\n    (5.984540, 50.986031),\n    (5.985020, 50.986160),\n    (5.985210, 50.986198),\n    (5.985290, 50.986229),\n    (5.985370, 50.986271),\n    (5.985460, 50.986309),\n    (5.985520, 50.986351),\n    (5.985530, 50.986340),\n    (5.985570, 50.986340),\n    (5.985600, 50.986340),\n    (5.985640, 50.986340),\n    (5.985670, 50.986351),\n    (5.985680, 50.986351),\n    (5.985700, 50.986351),\n    (5.985720, 50.986370),\n    (5.985740, 50.986382),\n    (5.985750, 50.986389),\n    (5.985760, 50.986401),\n    (5.985780, 50.986420),\n    (5.985930, 50.986420),\n    (5.985980, 50.986431),\n    (5.986040, 50.986431),\n    (5.986120, 50.986450),\n    (5.986220, 50.986469),\n    (5.986310, 50.986511),\n    (5.986390, 50.986530),\n    (5.986690, 50.986622),\n    (5.988720, 50.987160),\n    (5.988870, 50.987202),\n    (5.990210, 50.987549),\n    (5.990710, 50.987679),\n    (5.993070, 50.988270),\n    (5.993440, 50.988350),\n    (5.993890, 50.988499),\n    (5.993930, 50.988522),\n    (5.994270, 50.988701),\n    (5.994440, 50.988831),\n    (5.994680, 50.988991),\n    (5.994870, 50.989090),\n    (5.995000, 50.989128),\n    (5.995140, 50.989151),\n    (5.995240, 50.989151),\n    (5.995330, 50.989151),\n    (5.995420, 50.989151),\n    (5.995510, 50.989140),\n    (5.995590, 50.989120),\n    (5.995690, 50.989101),\n    (5.995780, 50.989071),\n    (5.995870, 50.989029),\n    (5.995960, 50.988972),\n    (5.996090, 50.988892),\n    (5.996200, 50.988811),\n    (5.996330, 50.988731),\n    (5.996460, 50.988659),\n    (5.996570, 50.988602),\n    (5.996710, 50.988541),\n    (5.996870, 50.988510),\n    (5.997260, 50.988480),\n    (5.997790, 50.988480),\n    (5.998180, 50.988468),\n    (5.998430, 50.988480),\n    (5.998560, 50.988480),\n    (5.999060, 50.988499),\n    (5.999470, 50.988548),\n    (5.999900, 50.988621),\n    (6.000060, 50.988659),\n    (6.000400, 50.988750),\n    (6.000740, 50.988861),\n    (6.001110, 50.988979),\n    (6.001070, 50.988972),\n    (6.001720, 50.989189),\n    (6.002780, 50.989552),\n    (6.003220, 50.989700),\n    (6.003680, 50.989861),\n    (6.003910, 50.989971),\n    (6.004130, 50.990101),\n    (6.004330, 50.990238),\n    (6.004480, 50.990379),\n    (6.004600, 50.990540),\n    (6.004680, 50.990681),\n    (6.004750, 50.990810),\n    (6.004780, 50.990940),\n    (6.004790, 50.991001),\n    (6.004840, 50.991211),\n    (6.004870, 50.991451),\n    (6.004880, 50.991520),\n    (6.004880, 50.991539),\n    (6.004890, 50.991611),\n    (6.004970, 50.991619),\n    (6.005050, 50.991661),\n    (6.005080, 50.991692),\n    (6.005100, 50.991718),\n    (6.005100, 50.991760),\n    (6.005080, 50.991798),\n    (6.005030, 50.991840),\n    (6.004970, 50.991859),\n    (6.004910, 50.991871),\n    (6.004900, 50.992008),\n    (6.004900, 50.992180),\n    (6.004840, 50.992310),\n    (6.004780, 50.992470),\n    (6.004780, 50.992489),\n    (6.004800, 50.992710),\n    (6.004800, 50.993031),\n    (6.004820, 50.993698),\n    (6.004850, 50.994381),\n    (6.004860, 50.995079),\n    (6.005790, 50.995209),\n    (6.006890, 50.995369),\n    (6.007660, 50.995468),\n    (6.007800, 50.995491),\n    (6.008670, 50.995609),\n    (6.009860, 50.995770),\n    (6.010370, 50.995850),\n    (6.010400, 50.996269),\n    (6.010440, 50.996910),\n    (6.010450, 50.997372),\n    (6.010490, 50.997849),\n    (6.010540, 50.998379),\n    (6.011580, 50.998501),\n    (6.012430, 50.998589),\n    (6.013520, 50.998699),\n    (6.013550, 50.998699),\n    (6.013610, 50.998699),\n    (6.014730, 50.998611),\n    (6.016590, 50.998459),\n    (6.016920, 50.998440),\n    (6.018100, 50.998348),\n    (6.019460, 50.998241),\n    (6.019930, 50.999271),\n    (6.020340, 51.000130),\n    (6.020680, 51.000839),\n    (6.021110, 51.001770),\n    (6.021320, 51.002190),\n    (6.021520, 51.002628),\n    (6.021560, 51.002701),\n    (6.021780, 51.002682),\n    (6.022470, 51.002621),\n    (6.023480, 51.002541),\n    (6.023890, 51.002510),\n    (6.024010, 51.002499),\n    (6.025230, 51.002399),\n    (6.025450, 51.002380),\n    (6.026220, 51.002319),\n    (6.026950, 51.002270),\n    (6.027040, 51.002258),\n    (6.027260, 51.002239),\n    (6.028120, 51.002171),\n    (6.029350, 51.002071),\n    (6.029890, 51.002029),\n    (6.030030, 51.002022),\n    (6.030410, 51.001991),\n    (6.031180, 51.001930),\n    (6.032260, 51.001839),\n    (6.033170, 51.001770),\n    (6.033700, 51.001801),\n    (6.034430, 51.001839),\n    (6.034490, 51.001831),\n    (6.034870, 51.001751),\n    (6.035310, 51.001640),\n    (6.035480, 51.001598),\n    (6.035630, 51.001560),\n    (6.035950, 51.001629),\n    (6.036250, 51.001781),\n    (6.036680, 51.002010),\n    (6.036730, 51.002041),\n    (6.036780, 51.002079),\n    (6.036810, 51.002121),\n    (6.036830, 51.002178),\n    (6.036840, 51.002209),\n    (6.036830, 51.002239),\n    (6.036940, 51.002251),\n    (6.037040, 51.002258),\n    (6.037130, 51.002289),\n    (6.037220, 51.002319),\n    (6.037380, 51.002392),\n    (6.037550, 51.002468),\n    (6.037850, 51.002609),\n    (6.038010, 51.002689),\n    (6.038200, 51.002781),\n    (6.038580, 51.002960),\n    (6.038860, 51.003078),\n    (6.039150, 51.003189),\n    (6.039590, 51.003342),\n    (6.039640, 51.003349),\n    (6.039920, 51.003448),\n    (6.040110, 51.003510),\n    (6.040770, 51.003719),\n    (6.041390, 51.003929),\n    (6.042230, 51.004219),\n    (6.042880, 51.004429),\n    (6.043140, 51.004501),\n    (6.043190, 51.004509),\n    (6.043570, 51.004601),\n    (6.044670, 51.004829),\n    (6.045820, 51.005058),\n    (6.046360, 51.005169),\n    (6.046550, 51.005211),\n    (6.046880, 51.005280),\n    (6.047740, 51.005451),\n    (6.048510, 51.005611),\n    (6.048660, 51.005638),\n    (6.048850, 51.005692),\n    (6.049040, 51.005749),\n    (6.049300, 51.005852),\n    (6.049490, 51.005951),\n    (6.049670, 51.006039),\n    (6.049850, 51.006149),\n    (6.049980, 51.006241),\n    (6.050280, 51.006481),\n    (6.050500, 51.006660),\n    (6.051000, 51.007061),\n    (6.051180, 51.007191),\n    (6.051510, 51.007450),\n    (6.051860, 51.007710),\n    (6.052400, 51.008091),\n    (6.052730, 51.008331),\n    (6.052890, 51.008430),\n    (6.053040, 51.008499),\n    (6.053140, 51.008541),\n    (6.053250, 51.008579),\n    (6.053380, 51.008621),\n    (6.053480, 51.008640),\n    (6.053600, 51.008659),\n    (6.053770, 51.008678),\n    (6.053930, 51.008690),\n    (6.054160, 51.008720),\n    (6.054430, 51.008751),\n    (6.054720, 51.008789),\n    (6.055010, 51.008831),\n    (6.055300, 51.008888),\n    (6.055340, 51.008900),\n    (6.055710, 51.008980),\n    (6.056220, 51.009079),\n    (6.056760, 51.009209),\n    (6.057380, 51.009399),\n    (6.057750, 51.009510),\n    (6.058010, 51.009590),\n    (6.058170, 51.009628),\n    (6.058930, 51.009861),\n    (6.059230, 51.009972),\n    (6.059410, 51.010040),\n    (6.059630, 51.010132),\n    (6.059850, 51.010220),\n    (6.060090, 51.010311),\n    (6.060320, 51.010399),\n    (6.060600, 51.010521),\n    (6.060820, 51.010601),\n    (6.061040, 51.010670),\n    (6.061200, 51.010712),\n    (6.061360, 51.010731),\n    (6.061510, 51.010738),\n    (6.061690, 51.010738),\n    (6.061830, 51.010731),\n    (6.062080, 51.010719),\n    (6.062310, 51.010700),\n    (6.062510, 51.010689),\n    (6.062670, 51.010689),\n    (6.062900, 51.010689),\n    (6.063080, 51.010689),\n    (6.063250, 51.010689),\n    (6.063420, 51.010712),\n    (6.063560, 51.010731),\n    (6.063700, 51.010769),\n    (6.063820, 51.010799),\n    (6.063920, 51.010841),\n    (6.063980, 51.010860),\n    (6.064020, 51.010880),\n    (6.064110, 51.010921),\n    (6.064320, 51.011028),\n    (6.064540, 51.011162),\n    (6.065320, 51.011539),\n    (6.066150, 51.012020),\n    (6.066730, 51.012371),\n    (6.067330, 51.012741),\n    (6.067340, 51.012749),\n    (6.068100, 51.013191),\n    (6.068470, 51.013420),\n    (6.068840, 51.013649),\n    (6.069170, 51.013859),\n    (6.069500, 51.014069),\n    (6.069840, 51.014271),\n    (6.070140, 51.014450),\n    (6.070180, 51.014481),\n    (6.070290, 51.014549),\n    (6.071080, 51.015030),\n    (6.071160, 51.015072),\n    (6.071280, 51.015148),\n    (6.071810, 51.015469),\n    (6.072310, 51.015781),\n    (6.072530, 51.015911),\n    (6.072720, 51.016041),\n    (6.072830, 51.016129),\n    (6.073020, 51.016270),\n    (6.073130, 51.016361),\n    (6.073430, 51.016609),\n    (6.073740, 51.016861),\n    (6.073870, 51.016979),\n    (6.074020, 51.017132),\n    (6.074160, 51.017269),\n    (6.074370, 51.017509),\n    (6.074540, 51.017712),\n    (6.074630, 51.017811),\n    (6.074700, 51.017872),\n    (6.074790, 51.017929),\n    (6.075060, 51.018059),\n    (6.075590, 51.018299),\n    (6.076190, 51.018570),\n    (6.076410, 51.018681),\n    (6.076640, 51.018799),\n    (6.077030, 51.019020),\n    (6.077360, 51.019199),\n    (6.077710, 51.019379),\n    (6.078390, 51.019730),\n    (6.078700, 51.019890),\n    (6.079010, 51.020050),\n    (6.079310, 51.020210),\n    (6.079580, 51.020359),\n    (6.079750, 51.020451),\n    (6.079900, 51.020519),\n    (6.080070, 51.020592),\n    (6.080230, 51.020641),\n    (6.080440, 51.020691),\n    (6.081010, 51.020851),\n    (6.081730, 51.021049),\n    (6.082100, 51.021149),\n    (6.082420, 51.021240),\n    (6.082750, 51.021332),\n    (6.083060, 51.021431),\n    (6.083290, 51.021500),\n    (6.083560, 51.021610),\n    (6.083820, 51.021721),\n    (6.084060, 51.021851),\n    (6.084280, 51.021969),\n    (6.084450, 51.022072),\n    (6.084610, 51.022171),\n    (6.084790, 51.022308),\n    (6.084900, 51.022388),\n    (6.084940, 51.022419),\n    (6.084960, 51.022411),\n    (6.084970, 51.022411),\n    (6.085010, 51.022400),\n    (6.085060, 51.022400),\n    (6.085090, 51.022411),\n    (6.085110, 51.022419),\n    (6.085130, 51.022430),\n    (6.085150, 51.022449),\n    (6.085150, 51.022469),\n    (6.085160, 51.022480),\n    (6.085150, 51.022499),\n    (6.085140, 51.022518),\n    (6.085130, 51.022541),\n    (6.085170, 51.022560),\n    (6.085200, 51.022591),\n    (6.085380, 51.022690),\n    (6.085560, 51.022812),\n    (6.085740, 51.022911),\n    (6.085970, 51.023041),\n    (6.086220, 51.023170),\n    (6.086700, 51.023418),\n    (6.087170, 51.023659),\n    (6.087670, 51.023899),\n    (6.088560, 51.024349),\n    (6.088630, 51.024380),\n    (6.088940, 51.024529),\n    (6.089600, 51.024811),\n    (6.090530, 51.025188),\n    (6.091470, 51.025570),\n    (6.091680, 51.025650),\n    (6.091890, 51.025730),\n    (6.092000, 51.025761),\n    (6.092220, 51.025810),\n    (6.092500, 51.025879),\n    (6.093080, 51.026020),\n    (6.093450, 51.026100),\n    (6.093830, 51.026199),\n    (6.094550, 51.026390),\n    (6.095000, 51.026520),\n    (6.095010, 51.026520),\n    (6.095790, 51.026730),\n    (6.096640, 51.026970),\n    (6.097510, 51.027199),\n    (6.098150, 51.027382),\n    (6.098770, 51.027550),\n    (6.099070, 51.027630),\n    (6.099270, 51.027679),\n    (6.099610, 51.027760),\n    (6.099640, 51.027771),\n    (6.100050, 51.027859),\n    (6.100270, 51.027908),\n    (6.100520, 51.027962),\n    (6.100800, 51.028000),\n    (6.101050, 51.028019),\n    (6.101400, 51.028030),\n    (6.102040, 51.028061),\n    (6.102300, 51.028080),\n    (6.102550, 51.028091),\n    (6.102830, 51.028130),\n    (6.103030, 51.028172),\n    (6.103240, 51.028229),\n    (6.103500, 51.028320),\n    (6.103900, 51.028481),\n    (6.104060, 51.028542),\n    (6.104710, 51.028770),\n    (6.105260, 51.028980),\n    (6.105800, 51.029179),\n    (6.106110, 51.029270),\n    (6.106480, 51.029362),\n    (6.107040, 51.029469),\n    (6.107650, 51.029610),\n    (6.107940, 51.029671),\n    (6.108100, 51.029709),\n    (6.108360, 51.029758),\n    (6.108480, 51.029781),\n    (6.108590, 51.029800),\n    (6.108900, 51.029869),\n    (6.109110, 51.029911),\n    (6.109420, 51.029968),\n    (6.109690, 51.030029),\n    (6.110440, 51.030270),\n    (6.111010, 51.030472),\n    (6.111280, 51.030571),\n    (6.111990, 51.030869),\n    (6.113650, 51.031609),\n    (6.115930, 51.032631),\n    (6.116910, 51.033070),\n    (6.117810, 51.033421),\n    (6.118220, 51.033550),\n    (6.118680, 51.033699),\n    (6.120020, 51.034088),\n    (6.120890, 51.034328),\n    (6.121260, 51.034439),\n    (6.121720, 51.034550),\n    (6.122560, 51.034698),\n    (6.122920, 51.034760),\n    (6.123310, 51.034851),\n    (6.123480, 51.034920),\n    (6.123860, 51.035042),\n    (6.124220, 51.035198),\n    (6.124850, 51.035542),\n    (6.125600, 51.036030),\n    (6.125840, 51.036190),\n    (6.126140, 51.036331),\n    (6.126840, 51.036560),\n    (6.127020, 51.036610),\n    (6.127230, 51.036671),\n    (6.127800, 51.036751),\n    (6.128910, 51.036850),\n    (6.129820, 51.036919),\n    (6.130710, 51.037022),\n    (6.132220, 51.037239),\n    (6.133020, 51.037338),\n    (6.133640, 51.037380),\n    (6.134090, 51.037361),\n    (6.134430, 51.037331),\n    (6.134630, 51.037300),\n    (6.134850, 51.037258),\n    (6.135220, 51.037159),\n    (6.135990, 51.036980),\n    (6.136270, 51.036942),\n    (6.136550, 51.036930),\n    (6.136830, 51.036949),\n    (6.137150, 51.036980),\n    (6.137510, 51.037071),\n    (6.137880, 51.037189),\n    (6.138660, 51.037460),\n    (6.139370, 51.037731),\n    (6.140020, 51.037971),\n    (6.140700, 51.038181),\n    (6.140900, 51.038239),\n    (6.141060, 51.038280),\n    (6.141780, 51.038490),\n    (6.142720, 51.038750),\n    (6.142900, 51.038811),\n    (6.143490, 51.038940),\n    (6.143940, 51.039040),\n    (6.144160, 51.039089),\n    (6.144540, 51.039150),\n    (6.144960, 51.039211),\n    (6.145250, 51.039249),\n    (6.145790, 51.039299),\n    (6.146390, 51.039410),\n    (6.146560, 51.039440),\n    (6.146610, 51.039459),\n    (6.146680, 51.039879),\n    (6.146680, 51.040291),\n    (6.146680, 51.040371),\n    (6.146670, 51.040791),\n    (6.146730, 51.040939),\n    (6.146870, 51.041039),\n    (6.147190, 51.041309),\n    (6.147360, 51.041382),\n    (6.147580, 51.041431),\n    (6.147940, 51.041470),\n    (6.148140, 51.041561),\n    (6.148520, 51.041870),\n    (6.148780, 51.042000),\n    (6.148780, 51.042099),\n    (6.148760, 51.042271),\n    (6.148820, 51.042389),\n    (6.149050, 51.042648),\n    (6.149430, 51.042912),\n    (6.149840, 51.043591),\n    (6.150040, 51.043850),\n    (6.150260, 51.044151),\n    (6.150340, 51.044239),\n    (6.150760, 51.044708),\n    (6.151100, 51.045078),\n    (6.151720, 51.045761),\n    (6.151800, 51.045849),\n    (6.151830, 51.045879),\n    (6.151890, 51.045959),\n    (6.152000, 51.046131),\n    (6.152370, 51.046890),\n    (6.152440, 51.047150),\n    (6.152660, 51.047932),\n    (6.152810, 51.048309),\n    (6.152750, 51.048531),\n    (6.152710, 51.048740),\n    (6.152720, 51.048840),\n    (6.152760, 51.048901),\n    (6.152850, 51.048901),\n    (6.152940, 51.048920),\n    (6.152990, 51.048931),\n    (6.153050, 51.048969),\n    (6.153100, 51.049030),\n    (6.153100, 51.049099),\n    (6.153070, 51.049160),\n    (6.152990, 51.049210),\n    (6.153700, 51.049980),\n    (6.154080, 51.050388),\n    (6.154820, 51.050991),\n    (6.154920, 51.051048),\n    (6.156130, 51.051781),\n    (6.157430, 51.052502),\n    (6.158220, 51.053169),\n    (6.158790, 51.053501),\n    (6.160210, 51.053848),\n    (6.160490, 51.053909),\n    (6.161980, 51.054161),\n    (6.162820, 51.054329),\n    (6.163550, 51.054489),\n    (6.164160, 51.054619),\n    (6.164470, 51.054661),\n    (6.164800, 51.054661),\n    (6.165450, 51.054600),\n    (6.166130, 51.054489),\n    (6.166790, 51.054401),\n    (6.167550, 51.054359),\n    (6.168190, 51.054390),\n    (6.168830, 51.054482),\n    (6.169520, 51.054508),\n    (6.170310, 51.054451),\n    (6.171130, 51.054359),\n    (6.172380, 51.054298),\n    (6.173120, 51.054390),\n    (6.173760, 51.054501),\n    (6.176260, 51.055061),\n    (6.176340, 51.055080),\n    (6.176330, 51.055119),\n    (6.176420, 51.055260),\n    (6.176620, 51.055309),\n    (6.176830, 51.055260),\n    (6.176900, 51.055191),\n    (6.177230, 51.055271),\n    (6.177650, 51.055408),\n    (6.177990, 51.055561),\n    (6.178240, 51.055672),\n    (6.178430, 51.055809),\n    (6.178710, 51.056110),\n    (6.179080, 51.056709),\n    (6.179270, 51.057240),\n    (6.179290, 51.057381),\n    (6.179260, 51.057522),\n    (6.179180, 51.057720),\n    (6.178890, 51.058201),\n    (6.178660, 51.058529),\n    (6.178320, 51.059040),\n    (6.178290, 51.059299),\n    (6.178350, 51.059551),\n    (6.178470, 51.059761),\n    (6.178620, 51.059978),\n    (6.178890, 51.060181),\n    (6.179200, 51.060329),\n    (6.179880, 51.060520),\n    (6.180360, 51.060619),\n    (6.180820, 51.060799),\n    (6.181480, 51.061111),\n    (6.181950, 51.061352),\n    (6.182360, 51.061539),\n    (6.182460, 51.061600),\n    (6.182780, 51.061798),\n    (6.183030, 51.062099),\n    (6.183350, 51.062489),\n    (6.183720, 51.062969),\n    (6.183930, 51.063251),\n    (6.184000, 51.063309),\n    (6.184320, 51.063599),\n    (6.184580, 51.063862),\n    (6.184860, 51.064129),\n    (6.184980, 51.064240),\n    (6.185600, 51.064041),\n    (6.186310, 51.063889),\n    (6.186780, 51.063881),\n    (6.187140, 51.063999),\n    (6.188280, 51.064430),\n    (6.189040, 51.064732),\n    (6.189410, 51.064911),\n    (6.189880, 51.065189),\n    (6.190290, 51.065552),\n    (6.190900, 51.065941),\n    (6.191470, 51.066380),\n    (6.191630, 51.066509),\n    (6.192830, 51.067768),\n    (6.193130, 51.068020),\n    (6.192580, 51.068539),\n    (6.193660, 51.069031),\n    (6.193780, 51.069099),\n    (6.194340, 51.069370),\n    (6.194920, 51.069660),\n    (6.195450, 51.069920),\n    (6.196120, 51.070259),\n    (6.196370, 51.070381),\n    (6.197170, 51.070770),\n    (6.197800, 51.071091),\n    (6.198970, 51.071671),\n    (6.199570, 51.071980),\n    (6.199880, 51.072159),\n    (6.200500, 51.072559),\n    (6.201120, 51.072979),\n    (6.201430, 51.073200),\n    (6.201830, 51.073639),\n    (6.202400, 51.074291),\n    (6.202600, 51.074459),\n    (6.202830, 51.074612),\n    (6.203310, 51.074799),\n    (6.203390, 51.074829),\n    (6.204530, 51.075249),\n    (6.206080, 51.075748),\n    (6.207360, 51.076149),\n    (6.207430, 51.076180),\n    (6.207620, 51.076260),\n    (6.208190, 51.076500),\n    (6.209370, 51.076981),\n    (6.209470, 51.077011),\n    (6.210460, 51.077419),\n    (6.211180, 51.077610),\n    (6.212200, 51.077850),\n    (6.213080, 51.078049),\n    (6.214170, 51.078308),\n    (6.214360, 51.078350),\n    (6.215360, 51.078491),\n    (6.216030, 51.078579),\n    (6.216560, 51.078640),\n    (6.216660, 51.078671),\n    (6.216790, 51.078739),\n    (6.216910, 51.078800),\n    (6.217040, 51.078861),\n    (6.217190, 51.078899),\n    (6.217330, 51.078911),\n    (6.217430, 51.078899),\n    (6.217510, 51.079041),\n    (6.217580, 51.079102),\n    (6.217690, 51.079140),\n    (6.217840, 51.079170),\n    (6.218000, 51.079189),\n    (6.218920, 51.079182),\n    (6.220350, 51.079151),\n    (6.220550, 51.079151),\n    (6.221930, 51.079128),\n    (6.223720, 51.079090),\n    (6.224500, 51.079029),\n    (6.225980, 51.078892),\n    (6.226310, 51.078850),\n    (6.226680, 51.079079),\n    (6.227020, 51.079300),\n    (6.227240, 51.079441),\n    (6.227420, 51.079552),\n    (6.228110, 51.079979),\n    (6.228520, 51.080238),\n    (6.228880, 51.080448),\n    (6.229260, 51.080639),\n    (6.230070, 51.080959),\n    (6.230380, 51.081051),\n    (6.230930, 51.081211),\n    (6.231700, 51.081402),\n    (6.231800, 51.081429),\n    (6.232530, 51.081600),\n    (6.233260, 51.081760),\n    (6.234130, 51.081940),\n    (6.234640, 51.082020),\n    (6.236250, 51.082180),\n    (6.237020, 51.082279),\n    (6.238530, 51.082520),\n    (6.239280, 51.082642),\n    (6.239430, 51.082661),\n    (6.239860, 51.082722),\n    (6.240450, 51.082802),\n    (6.241040, 51.082890),\n    (6.241640, 51.082970),\n    (6.241960, 51.083050),\n    (6.242300, 51.083111),\n    (6.242440, 51.083141),\n    (6.242590, 51.083149),\n    (6.243330, 51.083130),\n    (6.243390, 51.083130),\n    (6.244020, 51.083221),\n    (6.244400, 51.083302),\n    (6.244520, 51.083290),\n    (6.244630, 51.083191),\n    (6.244900, 51.083069),\n    (6.245160, 51.083019),\n    (6.245430, 51.083012),\n    (6.246600, 51.083191),\n    (6.246840, 51.083229),\n    (6.247210, 51.083290),\n    (6.248400, 51.083481),\n    (6.248690, 51.083488),\n    (6.249900, 51.083500),\n    (6.250130, 51.083519),\n    (6.250970, 51.083561),\n    (6.251990, 51.083580),\n    (6.252420, 51.083618),\n    (6.253230, 51.083740),\n    (6.253400, 51.083740),\n    (6.253640, 51.083691),\n    (6.253810, 51.083672),\n    (6.253980, 51.083672),\n    (6.254670, 51.083740),\n    (6.254890, 51.083790),\n    (6.255350, 51.083870),\n    (6.256040, 51.084000),\n    (6.256540, 51.084049),\n    (6.257050, 51.084091),\n    (6.257110, 51.084339),\n    (6.258240, 51.086559),\n    (6.258300, 51.086700),\n    (6.258310, 51.086819),\n    (6.258310, 51.087311),\n    (6.258340, 51.087429),\n    (6.258360, 51.087471),\n    (6.258380, 51.087509),\n    (6.258450, 51.087551),\n    (6.258600, 51.087589),\n    (6.258750, 51.087650),\n    (6.258940, 51.087730),\n    (6.259710, 51.088409),\n    (6.259890, 51.088558),\n    (6.260130, 51.088749),\n    (6.260340, 51.088909),\n    (6.260520, 51.089111),\n    (6.260980, 51.089470),\n    (6.261190, 51.089642),\n    (6.261300, 51.089771),\n    (6.261550, 51.090019),\n    (6.261670, 51.090149),\n    (6.262440, 51.091541),\n    (6.262790, 51.092152),\n    (6.262850, 51.092258),\n    (6.263340, 51.093140),\n    (6.264130, 51.094181),\n    (6.264460, 51.094589),\n    (6.265060, 51.095280),\n    (6.265760, 51.096001),\n    (6.265910, 51.096218),\n    (6.267040, 51.097099),\n    (6.268620, 51.097980),\n    (6.270300, 51.098911),\n    (6.272230, 51.099930),\n    (6.272760, 51.100101),\n    (6.274360, 51.100449),\n    (6.275280, 51.100769),\n    (6.275550, 51.100861),\n    (6.276170, 51.101051),\n    (6.276640, 51.101330),\n    (6.276760, 51.101501),\n    (6.276840, 51.101730),\n    (6.277130, 51.101730),\n    (6.277640, 51.101742),\n    (6.278170, 51.101761),\n    (6.279730, 51.101978),\n    (6.280080, 51.102032),\n    (6.280420, 51.102112),\n    (6.280860, 51.102242),\n    (6.281210, 51.102360),\n    (6.281550, 51.102520),\n    (6.281930, 51.102699),\n    (6.283200, 51.103279),\n    (6.284240, 51.103748),\n    (6.284650, 51.103859),\n    (6.285140, 51.104061),\n    (6.285400, 51.104179),\n    (6.285610, 51.104290),\n    (6.286050, 51.104660),\n    (6.286350, 51.104950),\n    (6.286530, 51.105091),\n    (6.286680, 51.105202),\n    (6.286890, 51.105289),\n    (6.287310, 51.105438),\n    (6.287590, 51.105511),\n    (6.287950, 51.105610),\n    (6.288220, 51.105690),\n    (6.288450, 51.105831),\n    (6.288880, 51.106152),\n    (6.289430, 51.106571),\n    (6.289620, 51.106689),\n    (6.289780, 51.106750),\n    (6.289980, 51.106800),\n    (6.290180, 51.106850),\n    (6.291890, 51.107059),\n    (6.292280, 51.107109),\n    (6.293570, 51.107319),\n    (6.294620, 51.107521),\n    (6.294820, 51.107552),\n    (6.295060, 51.107590),\n    (6.295490, 51.107670),\n    (6.296110, 51.107792),\n    (6.296470, 51.107841),\n    (6.296830, 51.107868),\n    (6.298120, 51.107941),\n    (6.299530, 51.108040),\n    (6.300310, 51.108139),\n    (6.301080, 51.108292),\n    (6.303230, 51.108780),\n    (6.304290, 51.109058),\n    (6.305560, 51.109402),\n    (6.306840, 51.109791),\n    (6.307790, 51.110199),\n    (6.308840, 51.110641),\n    (6.308940, 51.110661),\n    (6.309740, 51.110889),\n    (6.310590, 51.111069),\n    (6.310910, 51.111130),\n    (6.313200, 51.112720),\n    (6.315150, 51.113991),\n    (6.317060, 51.115269),\n    (6.321160, 51.117939),\n    (6.323710, 51.119629),\n    (6.324220, 51.119961),\n    (6.326390, 51.121971),\n    (6.327430, 51.123711),\n    (6.328610, 51.125690),\n    (6.329740, 51.127720),\n    (6.329780, 51.127781),\n    (6.331400, 51.127499),\n    (6.333760, 51.126999),\n    (6.334270, 51.126919),\n    (6.334790, 51.126900),\n    (6.335680, 51.126862),\n    (6.336050, 51.126850),\n    (6.336360, 51.126831),\n    (6.336510, 51.126850),\n    (6.336580, 51.127270),\n    (6.336970, 51.128651),\n    (6.336990, 51.128780),\n    (6.337470, 51.131119),\n    (6.337960, 51.133202),\n    (6.338140, 51.133919),\n    (6.338160, 51.133949),\n    (6.338260, 51.134140),\n    (6.338290, 51.134190),\n    (6.338490, 51.134521),\n    (6.338630, 51.134670),\n    (6.338800, 51.134861),\n    (6.339120, 51.135151),\n    (6.339490, 51.135399),\n    (6.340010, 51.135719),\n    (6.340580, 51.136051),\n    (6.341140, 51.136360),\n    (6.341580, 51.136650),\n    (6.341700, 51.136730),\n    (6.343330, 51.137791),\n    (6.343950, 51.138248),\n    (6.344210, 51.138451),\n    (6.344470, 51.138680),\n    (6.344750, 51.138920),\n    (6.344890, 51.139050),\n    (6.345280, 51.139488),\n    (6.345490, 51.139790),\n    (6.345780, 51.140121),\n    (6.345940, 51.140228),\n    (6.346180, 51.140308),\n    (6.346400, 51.140339),\n    (6.346770, 51.140419),\n    (6.347080, 51.140560),\n    (6.349160, 51.141869),\n    (6.349670, 51.142239),\n    (6.350130, 51.142590),\n    (6.350530, 51.142761),\n    (6.350720, 51.142849),\n    (6.350810, 51.142860),\n    (6.350880, 51.142879),\n    (6.350930, 51.142921),\n    (6.350950, 51.142941),\n    (6.350970, 51.142990),\n    (6.350960, 51.143028),\n    (6.350920, 51.143089),\n    (6.351030, 51.143169),\n    (6.352290, 51.144039),\n    (6.353340, 51.144810),\n    (6.353860, 51.145180),\n    (6.354000, 51.145302),\n    (6.354120, 51.145432),\n    (6.354300, 51.145679),\n    (6.354590, 51.146030),\n    (6.354840, 51.146351),\n    (6.355210, 51.146778),\n    (6.355430, 51.146999),\n    (6.355690, 51.147202),\n    (6.356280, 51.147621),\n    (6.356880, 51.147961),\n    (6.357680, 51.148399),\n    (6.358470, 51.148769),\n    (6.360030, 51.149479),\n    (6.360370, 51.149590),\n    (6.360680, 51.149719),\n    (6.360790, 51.149761),\n    (6.360910, 51.149750),\n    (6.361020, 51.149799),\n    (6.361040, 51.149879),\n    (6.361120, 51.149929),\n    (6.361890, 51.150291),\n    (6.362060, 51.150410),\n    (6.362690, 51.150711),\n    (6.363140, 51.150982),\n    (6.363280, 51.151089),\n    (6.363400, 51.151169),\n    (6.363470, 51.151230),\n    (6.363530, 51.151291),\n    (6.364310, 51.152061),\n    (6.365030, 51.152969),\n    (6.365470, 51.153641),\n    (6.365990, 51.154461),\n    (6.366500, 51.155182),\n    (6.368140, 51.157379),\n    (6.368250, 51.157520),\n    (6.368330, 51.157669),\n    (6.368340, 51.157742),\n    (6.368310, 51.157841),\n    (6.368400, 51.158020),\n    (6.368550, 51.158169),\n    (6.368730, 51.158279),\n    (6.369030, 51.158409),\n    (6.369850, 51.158760),\n    (6.371150, 51.159538),\n    (6.373670, 51.161320),\n    (6.374970, 51.162270),\n    (6.375580, 51.162720),\n    (6.377170, 51.163879),\n    (6.378380, 51.164749),\n    (6.378590, 51.164890),\n    (6.380190, 51.165859),\n    (6.380650, 51.166111),\n    (6.381930, 51.166630),\n    (6.383120, 51.167042),\n    (6.384440, 51.167500),\n    (6.385380, 51.167850),\n    (6.387220, 51.168751),\n    (6.389630, 51.170040),\n    (6.391190, 51.170872),\n    (6.393010, 51.171871),\n    (6.394810, 51.172920),\n    (6.397420, 51.174252),\n    (6.397540, 51.174309),\n    (6.397930, 51.174519),\n    (6.398630, 51.174889),\n    (6.399960, 51.175579),\n    (6.400670, 51.175961),\n    (6.401170, 51.176250),\n    (6.401240, 51.176311),\n    (6.401590, 51.176510),\n    (6.402730, 51.177200),\n    (6.403230, 51.177528),\n    (6.403280, 51.177559),\n    (6.403690, 51.177860),\n    (6.403760, 51.177910),\n    (6.404050, 51.178108),\n    (6.405440, 51.179062),\n    (6.406300, 51.179649),\n    (6.406440, 51.179779),\n    (6.406560, 51.179871),\n    (6.406800, 51.180069),\n    (6.407070, 51.180271),\n    (6.407270, 51.180401),\n    (6.407610, 51.180641),\n    (6.407860, 51.180851),\n    (6.408560, 51.181389),\n    (6.409290, 51.181900),\n    (6.409780, 51.182220),\n    (6.410380, 51.182659),\n    (6.410600, 51.182800),\n    (6.410930, 51.183022),\n    (6.411270, 51.183250),\n    (6.411740, 51.183540),\n    (6.411880, 51.183640),\n    (6.412060, 51.183750),\n    (6.412370, 51.183971),\n    (6.412590, 51.184139),\n    (6.412770, 51.184280),\n    (6.413020, 51.184460),\n    (6.413440, 51.184731),\n    (6.413910, 51.185001),\n    (6.414270, 51.185219),\n    (6.415720, 51.186230),\n    (6.415930, 51.186378),\n    (6.416580, 51.186821),\n    (6.417540, 51.187489),\n    (6.417950, 51.187771),\n    (6.418260, 51.187981),\n    (6.419230, 51.188629),\n    (6.419700, 51.188950),\n    (6.421150, 51.189980),\n    (6.422030, 51.190639),\n    (6.422180, 51.190750),\n    (6.422800, 51.191189),\n    (6.423820, 51.191799),\n    (6.423970, 51.191891),\n    (6.424960, 51.192558),\n    (6.425120, 51.192669),\n    (6.425170, 51.192760),\n    (6.425260, 51.193069),\n    (6.425330, 51.193420),\n    (6.425350, 51.193501),\n    (6.425410, 51.194000),\n    (6.425430, 51.194118),\n    (6.425570, 51.195129),\n    (6.425620, 51.195309),\n    (6.425720, 51.195469),\n    (6.425850, 51.195591),\n    (6.426100, 51.195728),\n    (6.426200, 51.195751),\n    (6.426350, 51.195770),\n    (6.426500, 51.195789),\n    (6.426630, 51.195789),\n    (6.427080, 51.195709),\n    (6.427940, 51.195549),\n    (6.428650, 51.195400),\n    (6.428910, 51.195381),\n    (6.429150, 51.195400),\n    (6.429730, 51.195530),\n    (6.430970, 51.195839),\n    (6.431160, 51.195881),\n    (6.431680, 51.196030),\n    (6.432580, 51.196320),\n    (6.432880, 51.195980),\n    (6.433050, 51.195850),\n    (6.433330, 51.195629),\n    (6.433870, 51.195278),\n    (6.434140, 51.195160),\n    (6.434460, 51.195068),\n    (6.434790, 51.195061),\n    (6.435480, 51.195080),\n    (6.435840, 51.195080),\n    (6.436560, 51.195080),\n    (6.436820, 51.195049),\n    (6.436970, 51.195122),\n    (6.437100, 51.195141),\n    (6.437370, 51.195179),\n    (6.437690, 51.195179),\n    (6.437940, 51.195179),\n    (6.437990, 51.195179),\n    (6.438040, 51.195190),\n    (6.438510, 51.195400),\n    (6.438580, 51.195431),\n    (6.438650, 51.195461),\n    (6.439150, 51.195721),\n    (6.439690, 51.196011),\n    (6.439810, 51.196098),\n    (6.440080, 51.196270),\n    (6.440510, 51.196510),\n    (6.441130, 51.196781),\n    (6.441530, 51.196999),\n    (6.441990, 51.197128),\n    (6.442520, 51.197479),\n    (6.442920, 51.197731),\n    (6.443210, 51.197899),\n    (6.443530, 51.198090),\n    (6.444490, 51.198551),\n    (6.445990, 51.199131),\n    (6.446900, 51.199478),\n    (6.447920, 51.199730),\n    (6.448180, 51.199791),\n    (6.448850, 51.200310),\n    (6.449020, 51.200451),\n    (6.449180, 51.200550),\n    (6.449350, 51.200668),\n    (6.449910, 51.200932),\n    (6.450790, 51.201271),\n    (6.451240, 51.201462),\n    (6.451360, 51.201500),\n    (6.452290, 51.201920),\n    (6.453120, 51.202251),\n    (6.453440, 51.202400),\n    (6.453530, 51.202438),\n    (6.453730, 51.202560),\n    (6.453950, 51.202690),\n    (6.454530, 51.203171),\n    (6.454640, 51.203251),\n    (6.454710, 51.203281),\n    (6.454780, 51.203289),\n    (6.455190, 51.203190),\n    (6.455230, 51.203190),\n    (6.455280, 51.203201),\n    (6.455360, 51.203220),\n    (6.455440, 51.203289),\n    (6.455530, 51.203381),\n    (6.455640, 51.203499),\n    (6.456200, 51.204250),\n    (6.459430, 51.206520),\n    (6.460260, 51.206970),\n    (6.460360, 51.207039),\n    (6.460410, 51.207069),\n    (6.460480, 51.207111),\n    (6.460860, 51.207378),\n    (6.460890, 51.207401),\n    (6.462590, 51.208530),\n    (6.462860, 51.208710),\n    (6.463000, 51.208801),\n    (6.463800, 51.209332),\n    (6.464510, 51.209808),\n    (6.464780, 51.209991),\n    (6.465610, 51.210541),\n    (6.466760, 51.211319),\n    (6.466900, 51.211430),\n    (6.467670, 51.211929),\n    (6.468180, 51.212238),\n    (6.469270, 51.212978),\n    (6.470670, 51.213951),\n    (6.471920, 51.214802),\n    (6.472510, 51.215160),\n    (6.473070, 51.215500),\n    (6.474330, 51.216431),\n    (6.474570, 51.216579),\n    (6.475070, 51.216911),\n    (6.475220, 51.217010),\n    (6.475770, 51.217369),\n    (6.475930, 51.217468),\n    (6.476670, 51.218029),\n    (6.476970, 51.218269),\n    (6.477290, 51.218578),\n    (6.477980, 51.219261),\n    (6.478890, 51.220089),\n    (6.479120, 51.220310),\n    (6.479280, 51.220470),\n    (6.481180, 51.222301),\n    (6.481410, 51.222519),\n    (6.481960, 51.223042),\n    (6.482470, 51.223499),\n    (6.483160, 51.224209),\n    (6.483410, 51.224449),\n    (6.484540, 51.225632),\n    (6.485840, 51.226849),\n    (6.487210, 51.228100),\n    (6.488080, 51.229000),\n    (6.488620, 51.229519),\n    (6.488820, 51.229778),\n    (6.488830, 51.229980),\n    (6.488760, 51.230228),\n    (6.488560, 51.230640),\n    (6.488540, 51.230690),\n    (6.488350, 51.231049),\n    (6.488300, 51.231171),\n    (6.487930, 51.231838),\n    (6.487080, 51.233509),\n    (6.486560, 51.234489),\n    (6.486200, 51.235161),\n    (6.485840, 51.235790),\n    (6.485230, 51.236980),\n    (6.485170, 51.237080),\n    (6.484770, 51.237808),\n    (6.484570, 51.238159),\n    (6.484340, 51.238590),\n    (6.484230, 51.238800),\n    (6.482210, 51.242500),\n    (6.481280, 51.244389),\n    (6.480810, 51.245338),\n    (6.480530, 51.245838),\n    (6.480420, 51.246059),\n    (6.480060, 51.246719),\n    (6.479880, 51.246990),\n    (6.479560, 51.247341),\n    (6.477230, 51.249260),\n    (6.476790, 51.249691),\n    (6.476600, 51.249939),\n    (6.476560, 51.250118),\n    (6.476550, 51.250229),\n    (6.476550, 51.250252),\n    (6.476580, 51.250469),\n    (6.476640, 51.250679),\n    (6.476810, 51.250969),\n    (6.477230, 51.251801),\n    (6.477480, 51.252258),\n    (6.477630, 51.252510),\n    (6.477790, 51.252701),\n    (6.477970, 51.252861),\n    (6.478230, 51.252998),\n    (6.478830, 51.253250),\n    (6.479140, 51.253399),\n    (6.479390, 51.253510),\n    (6.480150, 51.253860),\n    (6.480240, 51.253899),\n    (6.480320, 51.253941),\n    (6.481060, 51.254280),\n    (6.482120, 51.254810),\n    (6.482430, 51.254951),\n    (6.482670, 51.255070),\n    (6.483060, 51.255241),\n    (6.484660, 51.255989),\n    (6.485630, 51.256439),\n    (6.485690, 51.256470),\n    (6.486280, 51.256760),\n    (6.486360, 51.256790),\n    (6.487050, 51.257130),\n    (6.487450, 51.257320),\n    (6.487970, 51.257580),\n    (6.488880, 51.258011),\n    (6.489010, 51.258080),\n    (6.489610, 51.258438),\n    (6.489780, 51.258572),\n    (6.490960, 51.259338),\n    (6.491430, 51.259640),\n    (6.491990, 51.259991),\n    (6.492860, 51.260471),\n    (6.493320, 51.260670),\n    (6.494270, 51.261082),\n    (6.495140, 51.261478),\n    (6.495510, 51.261681),\n    (6.495860, 51.261902),\n    (6.496330, 51.262291),\n    (6.496750, 51.262798),\n    (6.497170, 51.263500),\n    (6.497720, 51.264778),\n    (6.497790, 51.264938),\n    (6.498170, 51.265869),\n    (6.498410, 51.266418),\n    (6.498750, 51.266891),\n    (6.498950, 51.267090),\n    (6.498990, 51.267120),\n    (6.500030, 51.268181),\n    (6.500230, 51.268490),\n    (6.500860, 51.269779),\n    (6.502950, 51.274021),\n    (6.503270, 51.274738),\n    (6.503310, 51.274830),\n    (6.503750, 51.275841),\n    (6.504520, 51.277451),\n    (6.504870, 51.278030),\n    (6.505200, 51.278519),\n    (6.505580, 51.278969),\n    (6.506040, 51.279350),\n    (6.506790, 51.279869),\n    (6.511900, 51.283329),\n    (6.513920, 51.285000),\n    (6.516000, 51.286709),\n    (6.517480, 51.287922),\n    (6.518010, 51.288349),\n    (6.518670, 51.288891),\n    (6.519470, 51.289558),\n    (6.521020, 51.290840),\n    (6.521980, 51.291641),\n    (6.522610, 51.292160),\n    (6.522750, 51.292271),\n    (6.522820, 51.292339),\n    (6.524220, 51.292461),\n    (6.524480, 51.292488),\n    (6.524930, 51.292599),\n    (6.525390, 51.292770),\n    (6.525880, 51.292870),\n    (6.526380, 51.292820),\n    (6.526590, 51.292801),\n    (6.526610, 51.292850),\n    (6.526990, 51.293880),\n    (6.527590, 51.295090),\n    (6.528450, 51.296310),\n    (6.529650, 51.297668),\n    (6.530700, 51.298721),\n    (6.530910, 51.298901),\n    (6.531000, 51.298981),\n    (6.531090, 51.299049),\n    (6.531550, 51.299412),\n    (6.532840, 51.300381),\n    (6.534400, 51.301361),\n    (6.536610, 51.302528),\n    (6.536830, 51.302639),\n    (6.537940, 51.303249),\n    (6.538710, 51.303650),\n    (6.539150, 51.303871),\n    (6.540110, 51.304359),\n    (6.541170, 51.304871),\n    (6.543160, 51.305840),\n    (6.544400, 51.306431),\n    (6.546260, 51.307369),\n    (6.546780, 51.307590),\n    (6.548530, 51.308392),\n    (6.551900, 51.309860),\n    (6.553790, 51.310692),\n    (6.553860, 51.310730),\n    (6.554060, 51.310822),\n    (6.554140, 51.310848),\n    (6.554260, 51.310909),\n    (6.554370, 51.310959),\n    (6.554660, 51.311100),\n    (6.555230, 51.311359),\n    (6.555990, 51.311699),\n    (6.556740, 51.311970),\n    (6.556880, 51.312000),\n    (6.557110, 51.312061),\n    (6.557270, 51.312092),\n    (6.557410, 51.312191),\n    (6.557470, 51.312321),\n    (6.557470, 51.312462),\n    (6.557460, 51.312569),\n    (6.557440, 51.312679),\n    (6.557380, 51.312939),\n    (6.557400, 51.313229),\n    (6.557810, 51.313839),\n    (6.558110, 51.314281),\n    (6.558300, 51.314579),\n    (6.558320, 51.314610),\n    (6.559460, 51.316311),\n    (6.559690, 51.316650),\n    (6.560100, 51.317280),\n    (6.560460, 51.317810),\n    (6.560760, 51.318272),\n    (6.561400, 51.319248),\n    (6.561460, 51.319321),\n    (6.562250, 51.320518),\n    (6.562300, 51.320610),\n    (6.562470, 51.320862),\n    (6.563460, 51.322361),\n    (6.563580, 51.322529),\n    (6.563870, 51.322639),\n    (6.564130, 51.322689),\n    (6.564370, 51.322651),\n    (6.565080, 51.322762),\n    (6.566440, 51.322979),\n    (6.568320, 51.323250),\n    (6.568580, 51.323200),\n    (6.568850, 51.323219),\n    (6.569220, 51.323261),\n    (6.569390, 51.323299),\n    (6.570890, 51.323750),\n    (6.571200, 51.323860),\n    (6.571260, 51.323879),\n    (6.571350, 51.323910),\n    (6.571460, 51.323959),\n    (6.571570, 51.323990),\n    (6.571580, 51.324009),\n    (6.571690, 51.324051),\n    (6.571910, 51.324139),\n    (6.571950, 51.324200),\n    (6.572070, 51.324280),\n    (6.572790, 51.324551),\n    (6.573140, 51.324680),\n    (6.574440, 51.325161),\n    (6.575610, 51.325588),\n    (6.575780, 51.325649),\n    (6.575780, 51.325760),\n    (6.575710, 51.326309),\n    (6.575620, 51.326900),\n    (6.575580, 51.327030),\n    (6.575180, 51.327549),\n    (6.575130, 51.327862),\n    (6.574950, 51.328152),\n    (6.574830, 51.328289),\n    (6.574900, 51.328350),\n    (6.575590, 51.329041),\n    (6.576380, 51.329491),\n    (6.578720, 51.330719),\n    (6.578860, 51.330791),\n    (6.578940, 51.330841),\n    (6.580060, 51.331509),\n    (6.580100, 51.331532),\n    (6.580340, 51.331619),\n    (6.582370, 51.332321),\n    (6.582650, 51.332420),\n    (6.583520, 51.332691),\n    (6.584040, 51.332821),\n    (6.584450, 51.332932),\n    (6.585960, 51.333260),\n    (6.586120, 51.333260),\n    (6.586390, 51.333309),\n    (6.586690, 51.333370),\n    (6.586880, 51.333408),\n    (6.587160, 51.333469),\n    (6.588060, 51.333672),\n    (6.588550, 51.333790),\n    (6.589020, 51.333889),\n    (6.589450, 51.333931),\n    (6.591340, 51.333969),\n    (6.591420, 51.333981),\n    (6.592550, 51.334061),\n    (6.593630, 51.334270),\n    (6.593850, 51.334370),\n    (6.594710, 51.334560),\n    (6.598070, 51.335369),\n    (6.598480, 51.335442),\n    (6.599410, 51.335651),\n    (6.601330, 51.335979),\n    (6.601640, 51.336048),\n    (6.602770, 51.336418),\n    (6.604090, 51.336849),\n    (6.604740, 51.337070),\n    (6.606700, 51.337730),\n    (6.608440, 51.338310),\n    (6.613540, 51.340000),\n    (6.617310, 51.341240),\n    (6.617620, 51.341339),\n    (6.620760, 51.342411),\n    (6.621230, 51.342579),\n    (6.621720, 51.342739),\n    (6.621900, 51.342789),\n    (6.623800, 51.343529),\n    (6.624650, 51.343861),\n    (6.625710, 51.344318),\n    (6.626290, 51.344582),\n    (6.626680, 51.344742),\n    (6.627100, 51.344891),\n    (6.627520, 51.345020),\n    (6.627920, 51.345119),\n    (6.628390, 51.345230),\n    (6.629730, 51.345490),\n    (6.630520, 51.345650),\n    (6.631280, 51.345798),\n    (6.632440, 51.346031),\n    (6.633350, 51.346199),\n    (6.633960, 51.346298),\n    (6.634550, 51.346378),\n    (6.634720, 51.346409),\n    (6.635060, 51.346451),\n    (6.636250, 51.346569),\n    (6.637490, 51.346699),\n    (6.638480, 51.346809),\n    (6.639080, 51.346859),\n    (6.639500, 51.346889),\n    (6.639870, 51.346889),\n    (6.640360, 51.346901),\n    (6.641780, 51.346840),\n    (6.642810, 51.346809),\n    (6.644000, 51.346802),\n    (6.645240, 51.346809),\n    (6.647590, 51.346882),\n    (6.648060, 51.346901),\n    (6.648670, 51.346931),\n    (6.650100, 51.346970),\n    (6.651950, 51.347031),\n    (6.652820, 51.347061),\n    (6.653220, 51.347099),\n    (6.653410, 51.347118),\n    (6.653620, 51.347149),\n    (6.654060, 51.347229),\n    (6.654370, 51.347290),\n    (6.654640, 51.347370),\n    (6.655150, 51.347542),\n    (6.655590, 51.347710),\n    (6.656000, 51.347919),\n    (6.656360, 51.348129),\n    (6.664210, 51.352791),\n    (6.665110, 51.353298),\n    (6.665180, 51.353329),\n    (6.665830, 51.353710),\n    (6.666850, 51.354160),\n    (6.667610, 51.354431),\n    (6.669930, 51.355122),\n    (6.676180, 51.356899),\n    (6.677830, 51.357342),\n    (6.679310, 51.357681),\n    (6.681070, 51.357979),\n    (6.681880, 51.358070),\n    (6.682730, 51.358158),\n    (6.683250, 51.358200),\n    (6.684690, 51.358292),\n    (6.685720, 51.358318),\n    (6.687060, 51.358299),\n    (6.687410, 51.358280),\n    (6.687760, 51.358269),\n    (6.687960, 51.358250),\n    (6.688010, 51.358311),\n    (6.688310, 51.358620),\n    (6.688390, 51.358700),\n    (6.688570, 51.358871),\n    (6.688790, 51.359089),\n    (6.689190, 51.359489),\n    (6.689370, 51.359680),\n    (6.689880, 51.360081),\n    (6.690420, 51.360481),\n    (6.690470, 51.360519),\n    (6.690560, 51.360580),\n    (6.691460, 51.361149),\n    (6.692410, 51.361801),\n    (6.693340, 51.362400),\n    (6.693960, 51.362801),\n    (6.694430, 51.363110),\n    (6.694880, 51.363430),\n    (6.695090, 51.363579),\n    (6.695320, 51.363682),\n    (6.695580, 51.363770),\n    (6.695730, 51.363789),\n    (6.695800, 51.363800),\n    (6.696080, 51.363800),\n    (6.696760, 51.363609),\n    (6.697340, 51.363430),\n    (6.698020, 51.363232),\n    (6.698240, 51.363171),\n    (6.698690, 51.363041),\n    (6.699230, 51.362888),\n    (6.699760, 51.362770),\n    (6.700570, 51.362679),\n    (6.700790, 51.362671),\n    (6.703410, 51.362461),\n    (6.706770, 51.362228),\n    (6.709060, 51.362091),\n    (6.709560, 51.362122),\n    (6.709970, 51.362160),\n    (6.710380, 51.362240),\n    (6.710810, 51.362400),\n    (6.711980, 51.362831),\n    (6.712310, 51.362961),\n    (6.713600, 51.363522),\n    (6.715280, 51.364159),\n    (6.716770, 51.364769),\n    (6.717890, 51.365231),\n    (6.718980, 51.365639),\n    (6.719200, 51.365730),\n    (6.720220, 51.366119),\n    (6.720940, 51.366440),\n    (6.723390, 51.367249),\n    (6.723580, 51.367310),\n    (6.723630, 51.367329),\n    (6.724940, 51.367741),\n    (6.725180, 51.367821),\n    (6.726090, 51.368099),\n    (6.726800, 51.368271),\n    (6.727530, 51.368370),\n    (6.727970, 51.368420),\n    (6.728190, 51.368450),\n    (6.728810, 51.368500),\n    (6.728910, 51.368511),\n    (6.728980, 51.368519),\n    (6.729870, 51.368629),\n    (6.730450, 51.368690),\n    (6.731750, 51.368912),\n    (6.732050, 51.368950),\n    (6.732340, 51.368980),\n    (6.733520, 51.369091),\n    (6.734100, 51.369148),\n    (6.735440, 51.369251),\n    (6.735980, 51.369289),\n    (6.736440, 51.369339),\n    (6.737410, 51.369419),\n    (6.737600, 51.369431),\n    (6.738100, 51.369499),\n    (6.739700, 51.369740),\n    (6.740450, 51.369839),\n    (6.740760, 51.369881),\n    (6.741130, 51.369942),\n    (6.741290, 51.369961),\n    (6.741500, 51.369991),\n    (6.741580, 51.369999),\n    (6.742380, 51.370079),\n    (6.743150, 51.370140),\n    (6.744560, 51.370239),\n    (6.746420, 51.370380),\n    (6.747700, 51.370510),\n    (6.749510, 51.370781),\n    (6.750010, 51.370861),\n    (6.750100, 51.370880),\n    (6.750950, 51.371021),\n    (6.751800, 51.371189),\n    (6.752040, 51.371181),\n    (6.752270, 51.371132),\n    (6.752650, 51.371490),\n    (6.752750, 51.371510),\n    (6.753200, 51.371738),\n    (6.753520, 51.371929),\n    (6.753780, 51.372139),\n    (6.754730, 51.372879),\n    (6.754910, 51.373032),\n    (6.755450, 51.373470),\n    (6.756800, 51.374611),\n    (6.756870, 51.374680),\n    (6.757560, 51.375160),\n    (6.758290, 51.375622),\n    (6.758890, 51.375900),\n    (6.759200, 51.376030),\n    (6.759320, 51.376068),\n    (6.759980, 51.376289),\n    (6.760290, 51.376381),\n    (6.760890, 51.376560),\n    (6.760980, 51.376591),\n    (6.761530, 51.376820),\n    (6.761580, 51.376839),\n    (6.761850, 51.376942),\n    (6.762050, 51.377048),\n    (6.762350, 51.377171),\n    (6.765670, 51.378922),\n    (6.769670, 51.380989),\n    (6.770860, 51.381580),\n    (6.771070, 51.381680),\n    (6.771160, 51.381729),\n    (6.771170, 51.381741),\n    (6.771920, 51.382130),\n    (6.772790, 51.382481),\n    (6.773410, 51.382740),\n    (6.773900, 51.383011),\n    (6.774310, 51.383209),\n    (6.774490, 51.383289),\n    (6.774580, 51.383339),\n    (6.775290, 51.383690),\n    (6.775780, 51.383949),\n    (6.776100, 51.384121),\n    (6.776300, 51.384239),\n    (6.777120, 51.384800),\n    (6.777390, 51.384960),\n    (6.780710, 51.386730),\n    (6.782120, 51.387459),\n    (6.782950, 51.387779),\n    (6.783430, 51.387970),\n    (6.783580, 51.388020),\n    (6.783760, 51.388081),\n    (6.783850, 51.388222),\n    (6.783890, 51.388290),\n    (6.784020, 51.388481),\n    (6.784180, 51.388699),\n    (6.784480, 51.389111),\n    (6.784840, 51.389519),\n    (6.785240, 51.389912),\n    (6.785850, 51.390610),\n    (6.786050, 51.390949),\n    (6.786250, 51.391121),\n    (6.786490, 51.391140),\n    (6.786600, 51.391140),\n    (6.786780, 51.391140),\n    (6.787050, 51.391140),\n    (6.787700, 51.391140),\n    (6.788180, 51.391209),\n    (6.788970, 51.391411),\n    (6.790210, 51.391891),\n    (6.791520, 51.392330),\n    (6.792030, 51.392509),\n    (6.792270, 51.392601),\n    (6.793060, 51.392879),\n    (6.793340, 51.392990),\n    (6.794180, 51.393291),\n    (6.795490, 51.393799),\n    (6.795700, 51.393879),\n    (6.796840, 51.394279),\n    (6.797160, 51.394409),\n    (6.797290, 51.394451),\n    (6.797820, 51.394630),\n    (6.798740, 51.394970),\n    (6.798960, 51.395061),\n    (6.799110, 51.395130),\n    (6.799240, 51.395210),\n    (6.799510, 51.395229),\n    (6.799820, 51.395370),\n    (6.799930, 51.395451),\n    (6.799990, 51.395538),\n    (6.800110, 51.395519),\n    (6.800510, 51.395660),\n    (6.800780, 51.395771),\n    (6.801040, 51.395870),\n    (6.801210, 51.395920),\n    (6.801330, 51.395950),\n    (6.801410, 51.395969),\n    (6.801540, 51.395988),\n    (6.801650, 51.395988),\n    (6.801690, 51.396099),\n    (6.801660, 51.396172),\n    (6.801650, 51.396198),\n    (6.801660, 51.396599),\n    (6.801690, 51.396629),\n    (6.801740, 51.396660),\n    (6.801810, 51.396671),\n    (6.801860, 51.396660),\n    (6.801970, 51.396641),\n    (6.802020, 51.396641),\n    (6.802070, 51.396648),\n    (6.802140, 51.396660),\n    (6.802200, 51.396660),\n    (6.802250, 51.396648),\n    (6.802300, 51.396690),\n    (6.802350, 51.396751),\n    (6.802370, 51.396801),\n    (6.802380, 51.396870),\n    (6.802370, 51.396931),\n    (6.802360, 51.396980),\n    (6.802360, 51.397011),\n    (6.802360, 51.397049),\n    (6.802390, 51.397060),\n    (6.802430, 51.397079),\n    (6.802500, 51.397091),\n    (6.802550, 51.397129),\n    (6.802550, 51.397160),\n    (6.802550, 51.397209),\n    (6.802600, 51.397228),\n    (6.802940, 51.397282),\n    (6.803010, 51.397289),\n    (6.803200, 51.397308),\n    (6.803470, 51.397339),\n    (6.803530, 51.397339),\n    (6.803590, 51.397350),\n    (6.803650, 51.397362),\n    (6.803730, 51.397381),\n    (6.803800, 51.397388),\n    (6.803870, 51.397400),\n    (6.803920, 51.397411),\n    (6.803930, 51.397411),\n    (6.804120, 51.397419),\n    (6.804260, 51.397449),\n    (6.804320, 51.397461),\n    (6.804450, 51.397469),\n    (6.804530, 51.397480),\n    (6.804610, 51.397499),\n    (6.804630, 51.397499),\n    (6.804800, 51.397549),\n    (6.804860, 51.397572),\n    (6.804980, 51.397598),\n    (6.805450, 51.397751),\n    (6.805600, 51.397789),\n    (6.805800, 51.397579),\n    (6.805960, 51.397598),\n    (6.806460, 51.397781),\n    (6.806800, 51.397911),\n    (6.807900, 51.398312),\n    (6.808490, 51.398521),\n    (6.808710, 51.398590),\n    (6.809430, 51.398830),\n    (6.810120, 51.399071),\n    (6.811280, 51.399460),\n    (6.811660, 51.399570),\n    (6.811950, 51.399651),\n    (6.812160, 51.399712),\n    (6.812370, 51.399792),\n    (6.812570, 51.400009),\n    (6.812870, 51.400391),\n    (6.813730, 51.401588),\n    (6.814080, 51.402050),\n    (6.814540, 51.402679),\n    (6.814850, 51.402969),\n    (6.815680, 51.403690),\n    (6.816290, 51.404381),\n    (6.816460, 51.404530),\n    (6.817250, 51.405079),\n    (6.817910, 51.405472),\n    (6.818560, 51.405861),\n    (6.818710, 51.405949),\n    (6.818890, 51.406059),\n    (6.818940, 51.406090),\n    (6.819170, 51.406231),\n    (6.819270, 51.406300),\n    (6.819720, 51.406551),\n    (6.820450, 51.407139),\n    (6.820460, 51.407162),\n    (6.820990, 51.408199),\n    (6.821430, 51.409119),\n    (6.821490, 51.409248),\n    (6.821710, 51.409691),\n    (6.821820, 51.409901),\n    (6.822340, 51.410950),\n    (6.822660, 51.411369),\n    (6.822850, 51.411598),\n    (6.822920, 51.411709),\n    (6.822990, 51.411789),\n    (6.823190, 51.412140),\n    (6.823470, 51.412998),\n    (6.823520, 51.413681),\n    (6.823570, 51.414280),\n    (6.823580, 51.414532),\n    (6.823550, 51.414841),\n    (6.823740, 51.414909),\n    (6.824850, 51.415279),\n    (6.825560, 51.415520),\n    (6.826170, 51.415730),\n    (6.826930, 51.416088),\n    (6.827020, 51.416130),\n    (6.827250, 51.416279),\n    (6.827620, 51.416271),\n    (6.829410, 51.416489),\n    (6.829700, 51.416489),\n    (6.830100, 51.416451),\n    (6.830190, 51.416481),\n    (6.830270, 51.416519),\n    (6.830550, 51.416710),\n    (6.830780, 51.416870),\n    (6.832240, 51.417809),\n    (6.832530, 51.417931),\n    (6.832990, 51.418129),\n    (6.833330, 51.418289),\n    (6.833590, 51.418430),\n    (6.833640, 51.418468),\n    (6.833810, 51.418549),\n    (6.834160, 51.418770),\n    (6.834640, 51.419170),\n    (6.834820, 51.419331),\n    (6.835230, 51.419670),\n    (6.835830, 51.420139),\n    (6.836010, 51.420269),\n    (6.836650, 51.420712),\n    (6.837070, 51.420979),\n    (6.837530, 51.421261),\n    (6.838160, 51.421570),\n    (6.838770, 51.421841),\n    (6.839230, 51.422050),\n    (6.839610, 51.422230),\n    (6.840000, 51.422489),\n    (6.840150, 51.422661),\n    (6.841350, 51.422710),\n    (6.841590, 51.422760),\n    (6.841830, 51.422840),\n    (6.842100, 51.422939),\n    (6.842490, 51.423130),\n    (6.842790, 51.423328),\n    (6.843160, 51.423691),\n    (6.843450, 51.423981),\n    (6.843560, 51.424091),\n    (6.843710, 51.424240),\n    (6.843950, 51.424480),\n    (6.844180, 51.424721),\n    (6.844250, 51.424831),\n    (6.844280, 51.424911),\n    (6.844290, 51.425079),\n    (6.844290, 51.425110),\n    (6.844290, 51.425171),\n    (6.844300, 51.425220),\n    (6.844300, 51.425251),\n    (6.844300, 51.425301),\n    (6.844330, 51.425400),\n    (6.844420, 51.425491),\n    (6.844880, 51.425930),\n    (6.844920, 51.426022),\n    (6.844920, 51.426109),\n    (6.844980, 51.426121),\n    (6.845030, 51.426140),\n    (6.845060, 51.426170),\n    (6.845080, 51.426201),\n    (6.845070, 51.426262),\n    (6.845850, 51.426479),\n    (6.846630, 51.426731),\n    (6.847150, 51.426960),\n    (6.847620, 51.427158),\n    (6.847840, 51.427250),\n    (6.848390, 51.427559),\n    (6.848670, 51.427780),\n    (6.848810, 51.427929),\n    (6.848960, 51.428169),\n    (6.849070, 51.428299),\n    (6.849590, 51.428871),\n    (6.849890, 51.429039),\n    (6.850050, 51.429050),\n    (6.850500, 51.428940),\n    (6.850820, 51.428860),\n    (6.851970, 51.428711),\n    (6.853020, 51.428730),\n    (6.853520, 51.428719),\n    (6.854420, 51.428810),\n    (6.855220, 51.428970),\n    (6.855630, 51.429062),\n    (6.856080, 51.429161),\n    (6.856650, 51.429321),\n    (6.857290, 51.429489),\n    (6.857970, 51.429668),\n    (6.858360, 51.429749),\n    (6.858640, 51.429790),\n    (6.858850, 51.429920),\n    (6.859630, 51.429939),\n    (6.859910, 51.429970),\n    (6.860180, 51.429989),\n    (6.861050, 51.430069),\n    (6.862750, 51.430271),\n    (6.863410, 51.430359),\n    (6.864890, 51.430611),\n    (6.865930, 51.430809),\n    (6.866540, 51.431000),\n    (6.867070, 51.431190),\n    (6.867590, 51.431400),\n    (6.868310, 51.431660),\n    (6.869000, 51.431881),\n    (6.869530, 51.431980),\n    (6.870220, 51.432030),\n    (6.870260, 51.432041),\n    (6.870940, 51.432060),\n    (6.871690, 51.432018),\n    (6.873570, 51.431839),\n    (6.874450, 51.431770),\n    (6.876040, 51.431629),\n    (6.876640, 51.431580),\n    (6.878010, 51.431438),\n    (6.878030, 51.431580),\n    (6.878040, 51.431721),\n    (6.878010, 51.432060),\n    (6.877910, 51.432362),\n    (6.877760, 51.432621),\n    (6.877380, 51.432941),\n    (6.877310, 51.433121),\n    (6.877350, 51.433289),\n    (6.877510, 51.433430),\n    (6.877600, 51.433479),\n    (6.877740, 51.433529),\n    (6.878400, 51.433762),\n    (6.879260, 51.434120),\n    (6.879600, 51.434319),\n    (6.880080, 51.434570),\n    (6.880190, 51.434608),\n    (6.881100, 51.434910),\n    (6.881350, 51.434990),\n    (6.882250, 51.435299),\n    (6.882730, 51.435459),\n    (6.883480, 51.435711),\n    (6.883680, 51.435780),\n    (6.884870, 51.436199),\n    (6.885190, 51.436291),\n    (6.885500, 51.436378),\n    (6.885810, 51.436508),\n    (6.885910, 51.436600),\n    (6.886390, 51.436749),\n    (6.887300, 51.437069),\n    (6.887800, 51.437260),\n    (6.888050, 51.437359),\n    (6.888320, 51.437469),\n    (6.888460, 51.437531),\n    (6.889540, 51.437889),\n    (6.889970, 51.438011),\n    (6.890840, 51.438339),\n    (6.893290, 51.439709),\n    (6.893790, 51.439991),\n    (6.894280, 51.440281),\n    (6.895450, 51.440891),\n    (6.896770, 51.441601),\n    (6.897420, 51.441841),\n    (6.898040, 51.442039),\n    (6.898450, 51.442131),\n    (6.900820, 51.442848),\n    (6.902600, 51.443409),\n    (6.903710, 51.443748),\n    (6.903890, 51.443821),\n    (6.904110, 51.443920),\n    (6.904430, 51.444080),\n    (6.905150, 51.444450),\n    (6.905440, 51.444599),\n    (6.906020, 51.444901),\n    (6.906730, 51.445271),\n    (6.908280, 51.446098),\n    (6.908600, 51.446301),\n    (6.908850, 51.446510),\n    (6.909320, 51.446850),\n    (6.910030, 51.447201),\n    (6.910910, 51.447601),\n    (6.911440, 51.447819),\n    (6.911530, 51.447861),\n    (6.913320, 51.448750),\n    (6.913730, 51.448792),\n    (6.914390, 51.449059),\n    (6.914580, 51.449139),\n    (6.915310, 51.449421),\n    (6.916130, 51.449940),\n    (6.916290, 51.450050),\n    (6.916670, 51.450321),\n    (6.918340, 51.451832),\n    (6.920460, 51.453758),\n    (6.922440, 51.455280),\n    (6.924640, 51.456982),\n    (6.927170, 51.458969),\n    (6.927300, 51.459080),\n    (6.928930, 51.460461),\n    (6.929010, 51.460522),\n    (6.929790, 51.461090),\n    (6.930030, 51.461288),\n    (6.931100, 51.462120),\n    (6.931670, 51.462551),\n    (6.931870, 51.462601),\n    (6.932070, 51.462631),\n    (6.932300, 51.462639),\n    (6.932490, 51.462639),\n    (6.932770, 51.462631),\n    (6.932900, 51.462589),\n    (6.933590, 51.462460),\n    (6.934030, 51.462421),\n    (6.934480, 51.462410),\n    (6.934880, 51.462399),\n    (6.936700, 51.462379),\n    (6.938470, 51.462360),\n    (6.939440, 51.462349),\n    (6.939940, 51.462410),\n    (6.940090, 51.462399),\n    (6.941000, 51.462391),\n    (6.941170, 51.462410),\n    (6.941940, 51.462509),\n    (6.943800, 51.462860),\n    (6.946120, 51.463242),\n    (6.947520, 51.463501),\n    (6.947810, 51.463558),\n    (6.947900, 51.463570),\n    (6.948570, 51.463619),\n    (6.948690, 51.463619),\n    (6.949140, 51.463589),\n    (6.949140, 51.463589),\n    (6.949140, 51.463589),\n    (6.949150, 51.463600),\n    (6.949160, 51.463600),\n    (6.949160, 51.463612),\n    (6.949310, 51.463718),\n    (6.949910, 51.464230),\n    (6.950270, 51.464539),\n    (6.950630, 51.464821),\n    (6.951360, 51.465389),\n    (6.951650, 51.465611),\n    (6.951910, 51.465820),\n    (6.952280, 51.466099),\n    (6.952800, 51.466511),\n    (6.952970, 51.466640),\n    (6.953490, 51.467060),\n    (6.954180, 51.467529),\n    (6.954520, 51.467701),\n    (6.954880, 51.467838),\n    (6.955330, 51.467991),\n    (6.956400, 51.468369),\n    (6.956510, 51.468418),\n    (6.956850, 51.468651),\n    (6.957690, 51.469151),\n    (6.958340, 51.469509),\n    (6.958560, 51.469601),\n    (6.958700, 51.469662),\n    (6.958780, 51.469681),\n    (6.958990, 51.469780),\n    (6.961440, 51.470810),\n    (6.962140, 51.471169),\n    (6.963080, 51.471710),\n    (6.963780, 51.472061),\n    (6.964020, 51.472191),\n    (6.964840, 51.472698),\n    (6.965170, 51.472900),\n    (6.965650, 51.473122),\n    (6.966700, 51.473469),\n    (6.967240, 51.473591),\n    (6.967290, 51.473610),\n    (6.967830, 51.473740),\n    (6.968600, 51.473930),\n    (6.969000, 51.474091),\n    (6.969600, 51.474312),\n    (6.971220, 51.474819),\n    (6.971690, 51.474941),\n    (6.971750, 51.474949),\n    (6.971920, 51.474991),\n    (6.972870, 51.475281),\n    (6.973260, 51.475399),\n    (6.973980, 51.475590),\n    (6.975700, 51.475910),\n    (6.975950, 51.475960),\n    (6.978550, 51.476440),\n    (6.978390, 51.476952),\n    (6.978330, 51.477070),\n    (6.978050, 51.477489),\n    (6.977570, 51.477940),\n    (6.976690, 51.478859),\n    (6.976510, 51.479031),\n    (6.977390, 51.479321),\n    (6.977540, 51.479382),\n    (6.978040, 51.479568),\n    (6.978230, 51.479721),\n    (6.978260, 51.479759),\n    (6.978570, 51.480099),\n    (6.978590, 51.480190),\n    (6.978620, 51.480282),\n    (6.978770, 51.480820),\n    (6.978780, 51.480888),\n    (6.978810, 51.480980),\n    (6.978870, 51.481178),\n    (6.979060, 51.481758),\n    (6.979080, 51.481819),\n    (6.979150, 51.481979),\n    (6.979260, 51.482311),\n    (6.979370, 51.482620),\n    (6.979360, 51.482750),\n    (6.979380, 51.483009),\n    (6.979390, 51.483189),\n    (6.979350, 51.483429),\n    (6.979350, 51.484150),\n    (6.979390, 51.484440),\n    (6.979400, 51.484650),\n    (6.979410, 51.484711),\n    (6.979430, 51.484989),\n    (6.979590, 51.485310),\n    (6.979680, 51.485519),\n    (6.980070, 51.486629),\n    (6.980090, 51.486710),\n    (6.980130, 51.486858),\n    (6.980150, 51.486969),\n    (6.980150, 51.486980),\n    (6.980230, 51.487350),\n    (6.980320, 51.487789),\n    (6.980470, 51.488770),\n    (6.980480, 51.488819),\n    (6.980740, 51.488819),\n    (6.980960, 51.488831),\n    (6.981170, 51.488831),\n    (6.981310, 51.488850),\n    (6.981690, 51.488911),\n    (6.981860, 51.488930),\n    (6.982290, 51.489010),\n    (6.982640, 51.489090),\n    (6.983170, 51.489208),\n    (6.984330, 51.489479),\n    (6.985300, 51.489700),\n    (6.985850, 51.489841),\n    (6.986260, 51.489941),\n    (6.986460, 51.489990),\n    (6.986560, 51.490009),\n    (6.987440, 51.490200),\n    (6.987520, 51.490219),\n    (6.989690, 51.490730),\n    (6.991020, 51.491039),\n    (6.991890, 51.491261),\n    (6.992160, 51.491329),\n    (6.993650, 51.491680),\n    (6.994830, 51.491951),\n    (6.996520, 51.492371),\n    (6.996840, 51.492451),\n    (6.997000, 51.492489),\n    (6.997370, 51.492580),\n    (6.997490, 51.492611),\n    (6.997730, 51.492661),\n    (6.999430, 51.493099),\n    (6.999930, 51.493221),\n    (7.000160, 51.493279),\n    (7.001570, 51.493629),\n    (7.002440, 51.493832),\n    (7.002710, 51.493900),\n    (7.002720, 51.493980),\n    (7.002740, 51.494099),\n    (7.002930, 51.494202),\n    (7.004070, 51.494781),\n    (7.004230, 51.494862),\n    (7.004900, 51.495152),\n    (7.005380, 51.495369),\n    (7.005400, 51.495380),\n    (7.006020, 51.495659),\n    (7.006350, 51.495800),\n    (7.006610, 51.495911),\n    (7.006760, 51.495979),\n    (7.007080, 51.496090),\n    (7.007930, 51.496361),\n    (7.008070, 51.496368),\n    (7.008110, 51.496429),\n    (7.008170, 51.496590),\n    (7.008110, 51.497059),\n    (7.008070, 51.497742),\n    (7.008070, 51.497890),\n    (7.008050, 51.498100),\n    (7.007980, 51.499371),\n    (7.007980, 51.499489),\n    (7.007980, 51.499580),\n    (7.008160, 51.499630),\n    (7.009670, 51.500118),\n    (7.009910, 51.500309),\n    (7.010240, 51.500580),\n    (7.011140, 51.501438),\n    (7.011360, 51.501659),\n    (7.011850, 51.502151),\n    (7.012350, 51.502640),\n    (7.012500, 51.502800),\n    (7.013110, 51.503361),\n    (7.013690, 51.503948),\n    (7.014550, 51.504780),\n    (7.015890, 51.506111),\n    (7.016030, 51.506260),\n    (7.016110, 51.506340),\n    (7.018230, 51.508400),\n    (7.018530, 51.508781),\n    (7.019770, 51.508999),\n    (7.020680, 51.509171),\n    (7.020930, 51.509209),\n    (7.022620, 51.509491),\n    (7.022680, 51.509499),\n    (7.024580, 51.509850),\n    (7.025340, 51.509991),\n    (7.026400, 51.510181),\n    (7.027440, 51.510391),\n    (7.028190, 51.510521),\n    (7.028740, 51.510620),\n    (7.028910, 51.510658),\n    (7.029600, 51.510799),\n    (7.029870, 51.510849),\n    (7.030550, 51.510990),\n    (7.031890, 51.511230),\n    (7.032240, 51.511311),\n    (7.032610, 51.511391),\n    (7.032790, 51.511421),\n    (7.033410, 51.511532),\n    (7.035740, 51.511978),\n    (7.036210, 51.512058),\n    (7.037060, 51.512218),\n    (7.037380, 51.512249),\n    (7.038290, 51.512260),\n    (7.038690, 51.512280),\n    (7.038770, 51.512299),\n    (7.039000, 51.512390),\n    (7.039610, 51.512619),\n    (7.039840, 51.512730),\n    (7.040410, 51.513210),\n    (7.040880, 51.513531),\n    (7.040970, 51.513569),\n    (7.041140, 51.513649),\n    (7.042200, 51.514000),\n    (7.042750, 51.514030),\n    (7.043330, 51.513939),\n    (7.043550, 51.513908),\n    (7.043710, 51.513870),\n    (7.043890, 51.513859),\n    (7.044000, 51.513870),\n    (7.044070, 51.513889),\n    (7.044200, 51.513920),\n    (7.044300, 51.513931),\n    (7.044530, 51.513950),\n    (7.045140, 51.513901),\n    (7.046010, 51.513828),\n    (7.046380, 51.513821),\n    (7.046630, 51.513908),\n    (7.046750, 51.514042),\n    (7.046970, 51.514301),\n    (7.047190, 51.514420),\n    (7.047590, 51.514469),\n    (7.048220, 51.514500),\n    (7.049060, 51.514580),\n    (7.051300, 51.514709),\n    (7.053370, 51.514931),\n    (7.054910, 51.515228),\n    (7.056660, 51.515690),\n    (7.058100, 51.516090),\n    (7.059580, 51.516640),\n    (7.062840, 51.518040),\n    (7.066110, 51.519421),\n    (7.066850, 51.519760),\n    (7.067600, 51.520069),\n    (7.068440, 51.520451),\n    (7.070340, 51.521461),\n    (7.071280, 51.522091),\n    (7.071740, 51.522469),\n    (7.072260, 51.522919),\n    (7.072920, 51.523548),\n    (7.073240, 51.523918),\n    (7.073490, 51.524281),\n    (7.073950, 51.525040),\n    (7.074220, 51.525612),\n    (7.074470, 51.526230),\n    (7.074710, 51.526821),\n    (7.075000, 51.527401),\n    (7.075350, 51.527969),\n    (7.075730, 51.528481),\n    (7.076070, 51.528870),\n    (7.076450, 51.529240),\n    (7.076910, 51.529640),\n    (7.077410, 51.530029),\n    (7.077920, 51.530369),\n    (7.078470, 51.530689),\n    (7.079200, 51.531059),\n    (7.079960, 51.531380),\n    (7.080800, 51.531700),\n    (7.081240, 51.531830),\n    (7.082770, 51.532188),\n    (7.084560, 51.532478),\n    (7.085140, 51.532539),\n    (7.086800, 51.532681),\n    (7.089140, 51.532902),\n    (7.090960, 51.533161),\n    (7.092490, 51.533421),\n    (7.093760, 51.533749),\n    (7.095030, 51.534119),\n    (7.095840, 51.534389),\n    (7.095970, 51.534439),\n    (7.096290, 51.534561),\n    (7.098190, 51.535290),\n    (7.098580, 51.535419),\n    (7.099770, 51.535782),\n    (7.100560, 51.536011),\n    (7.101720, 51.536228),\n    (7.102770, 51.536419),\n    (7.104190, 51.536591),\n    (7.112680, 51.537460),\n    (7.115820, 51.537781),\n    (7.117000, 51.537899),\n    (7.118180, 51.537960),\n    (7.119090, 51.537991),\n    (7.120190, 51.537979),\n    (7.122710, 51.537830),\n    (7.125020, 51.537720),\n    (7.126460, 51.537651),\n    (7.127010, 51.537651),\n    (7.127800, 51.537659),\n    (7.128950, 51.537670),\n    (7.129230, 51.537670),\n    (7.129450, 51.537670),\n    (7.131140, 51.537731),\n    (7.133150, 51.537880),\n    (7.135010, 51.538040),\n    (7.138780, 51.538460),\n    (7.139920, 51.538631),\n    (7.141490, 51.538929),\n    (7.142510, 51.539188),\n    (7.143450, 51.539471),\n    (7.144430, 51.539780),\n    (7.146750, 51.540569),\n    (7.148490, 51.541119),\n    (7.149090, 51.541260),\n    (7.150260, 51.541531),\n    (7.151980, 51.541851),\n    (7.153310, 51.542000),\n    (7.154160, 51.542042),\n    (7.155170, 51.542049),\n    (7.157830, 51.541931),\n    (7.159010, 51.541889),\n    (7.160640, 51.541821),\n    (7.162270, 51.541889),\n    (7.162950, 51.541931),\n    (7.166520, 51.542160),\n    (7.168060, 51.542259),\n    (7.168840, 51.542290),\n    (7.171180, 51.542358),\n    (7.172460, 51.542419),\n    (7.172710, 51.542431),\n    (7.174350, 51.542580),\n    (7.174900, 51.542641),\n    (7.177280, 51.542992),\n    (7.177530, 51.543041),\n    (7.178090, 51.543129),\n    (7.178870, 51.543251),\n    (7.179880, 51.543381),\n    (7.180110, 51.543411),\n    (7.180740, 51.543491),\n    (7.180980, 51.543510),\n    (7.182250, 51.543640),\n    (7.183710, 51.543720),\n    (7.185510, 51.543770),\n    (7.187350, 51.543739),\n    (7.188310, 51.543751),\n    (7.190100, 51.543739),\n    (7.191140, 51.543770),\n    (7.192030, 51.543770),\n    (7.193450, 51.543800),\n    (7.195470, 51.543900),\n    (7.197000, 51.544010),\n    (7.197800, 51.544090),\n    (7.198560, 51.544189),\n    (7.199550, 51.544361),\n    (7.200300, 51.544498),\n    (7.202270, 51.544949),\n    (7.202740, 51.545071),\n    (7.203270, 51.545212),\n    (7.203850, 51.545368),\n    (7.205020, 51.545738),\n    (7.209100, 51.547192),\n    (7.211500, 51.548038),\n    (7.211980, 51.548210),\n    (7.212500, 51.548439),\n    (7.214700, 51.549198),\n    (7.215410, 51.549500),\n    (7.218480, 51.550709),\n    (7.220240, 51.551399),\n    (7.225720, 51.553692),\n    (7.230400, 51.555630),\n    (7.231080, 51.555908),\n    (7.231370, 51.556030),\n    (7.231640, 51.556141),\n    (7.232450, 51.556469),\n    (7.233100, 51.556751),\n    (7.233900, 51.557121),\n    (7.234810, 51.557549),\n    (7.236040, 51.557961),\n    (7.237320, 51.558350),\n    (7.238660, 51.558632),\n    (7.240110, 51.558880),\n    (7.241480, 51.559021),\n    (7.242900, 51.559101),\n    (7.243860, 51.559132),\n    (7.245710, 51.558990),\n    (7.247140, 51.558868),\n    (7.248560, 51.558651),\n    (7.250410, 51.558300),\n    (7.251590, 51.558060),\n    (7.252660, 51.557812),\n    (7.253990, 51.557541),\n    (7.255320, 51.557320),\n    (7.256710, 51.557159),\n    (7.258090, 51.557060),\n    (7.258620, 51.557030),\n    (7.261410, 51.557030),\n    (7.262540, 51.557098),\n    (7.263540, 51.557159),\n    (7.266210, 51.557510),\n    (7.267520, 51.557701),\n    (7.268390, 51.557861),\n    (7.269020, 51.557961),\n    (7.270180, 51.558128),\n    (7.271110, 51.558270),\n    (7.272070, 51.558392),\n    (7.273210, 51.558479),\n    (7.275510, 51.558601),\n    (7.276560, 51.558620),\n    (7.278040, 51.558590),\n    (7.278980, 51.558540),\n    (7.279820, 51.558491),\n    (7.280970, 51.558418),\n    (7.281940, 51.558361),\n    (7.282910, 51.558289),\n    (7.283860, 51.558239),\n    (7.284810, 51.558189),\n    (7.286240, 51.558159),\n    (7.287660, 51.558189),\n    (7.289060, 51.558270),\n    (7.290470, 51.558411),\n    (7.291850, 51.558571),\n    (7.292080, 51.558601),\n    (7.292610, 51.558670),\n    (7.294170, 51.558830),\n    (7.295070, 51.558949),\n    (7.295980, 51.559071),\n    (7.296880, 51.559189),\n    (7.297780, 51.559299),\n    (7.298680, 51.559422),\n    (7.299580, 51.559528),\n    (7.300450, 51.559639),\n    (7.301270, 51.559731),\n    (7.302070, 51.559830),\n    (7.302830, 51.559929),\n    (7.303620, 51.560020),\n    (7.304420, 51.560120),\n    (7.305200, 51.560211),\n    (7.305830, 51.560299),\n    (7.306340, 51.560329),\n    (7.310260, 51.560749),\n    (7.310560, 51.560768),\n    (7.313380, 51.560768),\n    (7.313970, 51.560760),\n    (7.314110, 51.560749),\n    (7.314250, 51.560749),\n    (7.314390, 51.560711),\n    (7.314490, 51.560680),\n    (7.314580, 51.560638),\n    (7.314640, 51.560551),\n    (7.314750, 51.560249),\n    (7.314670, 51.559898),\n    (7.314650, 51.559841),\n    (7.314470, 51.559219),\n    (7.314140, 51.558239),\n    (7.314350, 51.558231),\n    (7.315000, 51.558109),\n    (7.315160, 51.558090),\n    (7.315890, 51.557961),\n    (7.316350, 51.557880),\n    (7.316490, 51.557850),\n    (7.316840, 51.557800),\n    (7.317270, 51.557751),\n    (7.317570, 51.557758),\n    (7.317980, 51.557789),\n    (7.318210, 51.557831),\n    (7.318480, 51.557899),\n    (7.319500, 51.558208),\n    (7.319750, 51.558289),\n    (7.320080, 51.558392),\n    (7.320160, 51.558418),\n    (7.320490, 51.558521),\n    (7.321400, 51.558800),\n    (7.322810, 51.559250),\n    (7.323580, 51.559471),\n    (7.324290, 51.559681),\n    (7.325180, 51.559879),\n    (7.325560, 51.559971),\n    (7.326670, 51.560211),\n    (7.327210, 51.560379),\n    (7.327620, 51.560520),\n    (7.327980, 51.560711),\n    (7.328030, 51.560730),\n    (7.328480, 51.561001),\n    (7.329130, 51.561489),\n    (7.329250, 51.561581),\n    (7.329860, 51.562038),\n    (7.330410, 51.562408),\n    (7.330640, 51.562592),\n    (7.330950, 51.562832),\n    (7.331530, 51.563251),\n    (7.333310, 51.564541),\n    (7.334320, 51.565159),\n    (7.334720, 51.565361),\n    (7.335070, 51.565540),\n    (7.335430, 51.565708),\n    (7.336160, 51.566040),\n    (7.337720, 51.566689),\n    (7.338890, 51.567181),\n    (7.339240, 51.567329),\n    (7.339560, 51.567471),\n    (7.339720, 51.567539),\n    (7.339900, 51.567612),\n    (7.340540, 51.567890),\n    (7.340810, 51.568001),\n    (7.341020, 51.568089),\n    (7.341150, 51.568150),\n    (7.341480, 51.568298),\n    (7.341900, 51.568481),\n    (7.342160, 51.568588),\n    (7.342360, 51.568691),\n    (7.342840, 51.568901),\n    (7.343530, 51.569191),\n    (7.343850, 51.569302),\n    (7.344320, 51.569450),\n    (7.344830, 51.569561),\n    (7.345880, 51.569839),\n    (7.346380, 51.569962),\n    (7.346760, 51.570061),\n    (7.347200, 51.570171),\n    (7.348050, 51.570381),\n    (7.349450, 51.570709),\n    (7.350990, 51.571072),\n    (7.351180, 51.571140),\n    (7.351720, 51.571301),\n    (7.352200, 51.571442),\n    (7.352390, 51.571491),\n    (7.352530, 51.571560),\n    (7.353330, 51.571911),\n    (7.354190, 51.572289),\n    (7.354810, 51.572399),\n    (7.355370, 51.572491),\n    (7.356620, 51.572689),\n    (7.357270, 51.572720),\n    (7.358590, 51.572781),\n    (7.359440, 51.572811),\n    (7.359890, 51.572830),\n    (7.360180, 51.572842),\n    (7.360310, 51.572880),\n    (7.360370, 51.572960),\n    (7.360550, 51.573311),\n    (7.360670, 51.573551),\n    (7.360930, 51.574039),\n    (7.361230, 51.574440),\n    (7.361500, 51.574360),\n    (7.361730, 51.574291),\n    (7.362130, 51.574100),\n    (7.362480, 51.573940),\n    (7.362530, 51.573921),\n    (7.362890, 51.573799),\n    (7.363010, 51.573761),\n    (7.363120, 51.573730),\n    (7.363590, 51.573631),\n    (7.364080, 51.573559),\n    (7.364470, 51.573528),\n    (7.364870, 51.573521),\n    (7.365560, 51.573509),\n    (7.366160, 51.573540),\n    (7.366250, 51.573540),\n    (7.367080, 51.573589),\n    (7.367890, 51.573570),\n    (7.368850, 51.573479),\n    (7.369360, 51.573399),\n    (7.370030, 51.573280),\n    (7.370150, 51.573261),\n    (7.371070, 51.573090),\n    (7.371310, 51.573051),\n    (7.371420, 51.573029),\n    (7.371880, 51.572971),\n    (7.372020, 51.572948),\n    (7.372330, 51.572922),\n    (7.372450, 51.572910),\n    (7.373350, 51.572788),\n    (7.373680, 51.572750),\n    (7.374530, 51.572651),\n    (7.375500, 51.572529),\n    (7.375980, 51.572479),\n    (7.376460, 51.572418),\n    (7.377620, 51.572289),\n    (7.377810, 51.572609),\n    (7.377980, 51.572830),\n    (7.378030, 51.572899),\n    (7.378090, 51.572990),\n    (7.378390, 51.573261),\n    (7.378600, 51.573410),\n    (7.378930, 51.573620),\n    (7.379240, 51.573769),\n    (7.379740, 51.574039),\n    (7.380050, 51.574181),\n    (7.381400, 51.574810),\n    (7.381610, 51.574902),\n    (7.381730, 51.574951),\n    (7.382290, 51.575180),\n    (7.382660, 51.575241),\n    (7.383260, 51.575241),\n    (7.384020, 51.575199),\n    (7.384500, 51.575161),\n    (7.384930, 51.575161),\n    (7.385220, 51.575191),\n    (7.385490, 51.575230),\n    (7.386010, 51.575260),\n    (7.386540, 51.575272),\n    (7.386540, 51.575359),\n    (7.386550, 51.575611),\n    (7.386580, 51.575790),\n    (7.386600, 51.575851),\n    (7.386640, 51.575958),\n    (7.386680, 51.576099),\n    (7.386780, 51.576340),\n    (7.386830, 51.576530),\n    (7.386880, 51.576759),\n    (7.386900, 51.576889),\n    (7.386910, 51.577030),\n    (7.386880, 51.577412),\n    (7.386870, 51.577629),\n    (7.386890, 51.577839),\n    (7.386920, 51.577961),\n    (7.386990, 51.578251),\n    (7.387120, 51.578430),\n    (7.387320, 51.578621),\n    (7.387460, 51.578701),\n    (7.387690, 51.578781),\n    (7.389000, 51.579170),\n    (7.390220, 51.579540),\n    (7.390520, 51.579632),\n    (7.390900, 51.579739),\n    (7.391280, 51.579861),\n    (7.391520, 51.579941),\n    (7.392170, 51.580181),\n    (7.393070, 51.580471),\n    (7.393790, 51.580750),\n    (7.393980, 51.580818),\n    (7.394110, 51.580879),\n    (7.394270, 51.580940),\n    (7.394420, 51.581020),\n    (7.394860, 51.581261),\n    (7.395160, 51.581429),\n    (7.395450, 51.581581),\n    (7.395870, 51.581841),\n    (7.395980, 51.581982),\n    (7.396010, 51.582001),\n    (7.396610, 51.582500),\n    (7.397290, 51.583229),\n    (7.397430, 51.583401),\n    (7.397790, 51.583820),\n    (7.398040, 51.584011),\n    (7.398340, 51.584190),\n    (7.398830, 51.584480),\n    (7.399360, 51.584751),\n    (7.400520, 51.585121),\n    (7.401540, 51.585381),\n    (7.401570, 51.585388),\n    (7.402560, 51.585640),\n    (7.402770, 51.585701),\n    (7.403220, 51.585812),\n    (7.404350, 51.586102),\n    (7.404550, 51.586151),\n    (7.405610, 51.586411),\n    (7.406340, 51.586590),\n    (7.406750, 51.586700),\n    (7.406970, 51.586750),\n    (7.407530, 51.586891),\n    (7.408110, 51.587101),\n    (7.408410, 51.587318),\n    (7.409200, 51.587879),\n    (7.409710, 51.588490),\n    (7.410140, 51.589008),\n    (7.410380, 51.589260),\n    (7.410650, 51.589451),\n    (7.411800, 51.590080),\n    (7.412610, 51.590519),\n    (7.413240, 51.590851),\n    (7.413850, 51.591160),\n    (7.414360, 51.591450),\n    (7.415630, 51.592159),\n    (7.415740, 51.592220),\n    (7.415800, 51.592258),\n    (7.416390, 51.592609),\n    (7.416490, 51.592682),\n    (7.416920, 51.592930),\n    (7.417290, 51.593140),\n    (7.417670, 51.593319),\n    (7.418040, 51.593460),\n    (7.418260, 51.593529),\n    (7.418520, 51.593590),\n    (7.418800, 51.593651),\n    (7.419720, 51.593849),\n    (7.420630, 51.594040),\n    (7.421510, 51.594219),\n    (7.422010, 51.594330),\n    (7.422030, 51.594341),\n    (7.422750, 51.594521),\n    (7.422960, 51.594582),\n    (7.423230, 51.594650),\n    (7.423380, 51.594688),\n    (7.423850, 51.594810),\n    (7.424720, 51.595032),\n    (7.424900, 51.595081),\n    (7.425270, 51.595181),\n    (7.425530, 51.595249),\n    (7.425690, 51.595291),\n    (7.425890, 51.595341),\n    (7.426130, 51.595390),\n    (7.426370, 51.595428),\n    (7.426450, 51.595440),\n    (7.426690, 51.595470),\n    (7.426870, 51.595482),\n    (7.428010, 51.595551),\n    (7.429650, 51.595638),\n    (7.430080, 51.595669),\n    (7.430770, 51.595711),\n    (7.431370, 51.595760),\n    (7.431610, 51.595791),\n    (7.432410, 51.595791),\n    (7.433220, 51.595749),\n    (7.433560, 51.595749),\n    (7.434140, 51.595741),\n    (7.437100, 51.595600),\n    (7.439340, 51.595490),\n    (7.440170, 51.595459),\n    (7.440890, 51.595539),\n    (7.441250, 51.595570),\n    (7.442550, 51.595821),\n    (7.443630, 51.596100),\n    (7.443910, 51.596180),\n    (7.444950, 51.596481),\n    (7.445220, 51.596550),\n    (7.446530, 51.596951),\n    (7.446740, 51.597000),\n    (7.448020, 51.597389),\n    (7.449000, 51.597672),\n    (7.449710, 51.597919),\n    (7.450110, 51.598091),\n    (7.450730, 51.598431),\n    (7.450830, 51.598480),\n    (7.451700, 51.598930),\n    (7.452770, 51.599571),\n    (7.453860, 51.600182),\n    (7.454320, 51.600361),\n    (7.454660, 51.600529),\n    (7.454970, 51.600689),\n    (7.456780, 51.601528),\n    (7.458250, 51.602169),\n    (7.458750, 51.602379),\n    (7.460630, 51.603062),\n    (7.463120, 51.603779),\n    (7.465240, 51.604179),\n    (7.466110, 51.604309),\n    (7.466580, 51.604401),\n    (7.467750, 51.604549),\n    (7.470300, 51.604740),\n    (7.471580, 51.604771),\n    (7.472760, 51.604759),\n    (7.473840, 51.604740),\n    (7.475450, 51.604630),\n    (7.476410, 51.604511),\n    (7.477200, 51.604351),\n    (7.478160, 51.604149),\n    (7.478650, 51.604031),\n    (7.479620, 51.603828),\n    (7.480420, 51.603710),\n    (7.481510, 51.603588),\n    (7.482620, 51.603489),\n    (7.483940, 51.603298),\n    (7.484580, 51.603161),\n    (7.485470, 51.602921),\n    (7.487050, 51.602280),\n    (7.487480, 51.602089),\n    (7.487680, 51.602001),\n    (7.488080, 51.601799),\n    (7.488310, 51.601669),\n    (7.488550, 51.601551),\n    (7.488790, 51.601440),\n    (7.489020, 51.601318),\n    (7.489290, 51.601200),\n    (7.489460, 51.601120),\n    (7.489640, 51.601028),\n    (7.489750, 51.600979),\n    (7.490240, 51.601372),\n    (7.490620, 51.601719),\n    (7.490760, 51.601841),\n    (7.490800, 51.601891),\n    (7.491570, 51.602501),\n    (7.492020, 51.602852),\n    (7.492400, 51.603222),\n    (7.492930, 51.603519),\n    (7.493270, 51.603729),\n    (7.493730, 51.604080),\n    (7.494250, 51.604431),\n    (7.494590, 51.604691),\n    (7.495210, 51.605221),\n    (7.495670, 51.605579),\n    (7.496280, 51.605999),\n    (7.496780, 51.606331),\n    (7.497300, 51.606670),\n    (7.497920, 51.607021),\n    (7.498530, 51.607319),\n    (7.499170, 51.607601),\n    (7.499830, 51.607849),\n    (7.500440, 51.608040),\n    (7.501300, 51.608330),\n    (7.502050, 51.608570),\n    (7.503020, 51.608822),\n    (7.503720, 51.609001),\n    (7.504520, 51.609180),\n    (7.505300, 51.609371),\n    (7.506100, 51.609531),\n    (7.506950, 51.609631),\n    (7.507730, 51.609730),\n    (7.508520, 51.609772),\n    (7.509490, 51.609760),\n    (7.513560, 51.609558),\n    (7.515010, 51.609631),\n    (7.515260, 51.609650),\n    (7.516320, 51.609772),\n    (7.517320, 51.609680),\n    (7.518600, 51.609509),\n    (7.518700, 51.609489),\n    (7.520320, 51.609249),\n    (7.521180, 51.609138),\n    (7.521980, 51.609039),\n    (7.522410, 51.609009),\n    (7.523140, 51.609009),\n    (7.523390, 51.609001),\n    (7.523480, 51.609001),\n    (7.523960, 51.608971),\n    (7.524530, 51.608971),\n    (7.524630, 51.608971),\n    (7.524880, 51.608971),\n    (7.525000, 51.608971),\n    (7.525560, 51.608971),\n    (7.525810, 51.608971),\n    (7.526030, 51.608971),\n    (7.527270, 51.608978),\n    (7.527820, 51.609020),\n    (7.528830, 51.609051),\n    (7.529610, 51.609081),\n    (7.530090, 51.609131),\n    (7.532630, 51.609489),\n    (7.533150, 51.609531),\n    (7.533680, 51.609550),\n    (7.534130, 51.609539),\n    (7.534810, 51.609440),\n    (7.535840, 51.609100),\n    (7.536850, 51.608742),\n    (7.537630, 51.608551),\n    (7.538530, 51.608471),\n    (7.539050, 51.608459),\n    (7.539930, 51.608559),\n    (7.541050, 51.608761),\n    (7.542060, 51.609051),\n    (7.544400, 51.609810),\n    (7.544650, 51.609901),\n    (7.544930, 51.610008),\n    (7.545500, 51.610229),\n    (7.546150, 51.610470),\n    (7.547840, 51.611050),\n    (7.548260, 51.611191),\n    (7.549090, 51.611420),\n    (7.549810, 51.611580),\n    (7.551280, 51.611729),\n    (7.551280, 51.612030),\n    (7.551330, 51.612171),\n    (7.551380, 51.612251),\n    (7.551470, 51.612331),\n    (7.551630, 51.612431),\n    (7.555080, 51.613689),\n    (7.558390, 51.614971),\n    (7.558680, 51.615101),\n    (7.561150, 51.616261),\n    (7.561930, 51.616669),\n    (7.563330, 51.617439),\n    (7.565350, 51.618721),\n    (7.565980, 51.619190),\n    (7.567140, 51.620071),\n    (7.568810, 51.621399),\n    (7.573740, 51.625648),\n    (7.574310, 51.626110),\n    (7.574650, 51.626389),\n    (7.575130, 51.626732),\n    (7.575790, 51.627159),\n    (7.576920, 51.627861),\n    (7.579400, 51.629070),\n    (7.580830, 51.629589),\n    (7.582310, 51.630070),\n    (7.584300, 51.630680),\n    (7.586690, 51.631481),\n    (7.590960, 51.633430),\n    (7.593070, 51.634670),\n    (7.594350, 51.635262),\n    (7.594900, 51.635490),\n    (7.596590, 51.636028),\n    (7.598540, 51.636379),\n    (7.601560, 51.636650),\n    (7.603980, 51.636929),\n    (7.605940, 51.637329),\n    (7.612510, 51.639351),\n    (7.614280, 51.639790),\n    (7.615750, 51.640011),\n    (7.616490, 51.640099),\n    (7.617210, 51.640148),\n    (7.618300, 51.640221),\n    (7.619620, 51.640282),\n    (7.620650, 51.640339),\n    (7.621630, 51.640419),\n    (7.622030, 51.640480),\n    (7.622530, 51.640572),\n    (7.624210, 51.640942),\n    (7.626370, 51.641460),\n    (7.628820, 51.642139),\n    (7.634750, 51.643681),\n    (7.635640, 51.643970),\n    (7.636560, 51.644421),\n    (7.636980, 51.644680),\n    (7.637490, 51.645039),\n    (7.638330, 51.645611),\n    (7.639040, 51.646111),\n    (7.639550, 51.646389),\n    (7.639960, 51.646561),\n    (7.640430, 51.646709),\n    (7.642880, 51.647190),\n    (7.642980, 51.647209),\n    (7.643580, 51.647339),\n    (7.643700, 51.647369),\n    (7.644530, 51.647560),\n    (7.645630, 51.647820),\n    (7.647280, 51.648300),\n    (7.650240, 51.649158),\n    (7.655060, 51.650620),\n    (7.656790, 51.651039),\n    (7.657930, 51.651279),\n    (7.659280, 51.651501),\n    (7.660660, 51.651699),\n    (7.662230, 51.651798),\n    (7.663080, 51.651859),\n    (7.664560, 51.651878),\n    (7.666480, 51.651859),\n    (7.672810, 51.651810),\n    (7.673580, 51.651821),\n    (7.675420, 51.651878),\n    (7.676140, 51.651939),\n    (7.676420, 51.651951),\n    (7.677360, 51.652031),\n    (7.679450, 51.652290),\n    (7.680310, 51.652409),\n    (7.681320, 51.652599),\n    (7.682190, 51.652790),\n    (7.682280, 51.652809),\n    (7.683120, 51.653011),\n    (7.683950, 51.653221),\n    (7.684570, 51.653389),\n    (7.684680, 51.653419),\n    (7.684820, 51.653450),\n    (7.684960, 51.653500),\n    (7.686470, 51.653980),\n    (7.687130, 51.654221),\n    (7.687800, 51.654480),\n    (7.689140, 51.655022),\n    (7.691210, 51.655899),\n    (7.692850, 51.656590),\n    (7.694180, 51.657059),\n    (7.694440, 51.657150),\n    (7.695310, 51.657452),\n    (7.697580, 51.658081),\n    (7.699870, 51.658588),\n    (7.701910, 51.658932),\n    (7.701890, 51.658989),\n    (7.701590, 51.659618),\n    (7.701460, 51.659889),\n    (7.700490, 51.662441),\n    (7.700390, 51.662739),\n    (7.700210, 51.663311),\n    (7.700170, 51.663540),\n    (7.700170, 51.663700),\n    (7.700230, 51.663872),\n    (7.700440, 51.664101),\n    (7.700670, 51.664230),\n    (7.700970, 51.664330),\n    (7.701310, 51.664398),\n    (7.701820, 51.664509),\n    (7.702550, 51.664639),\n    (7.702940, 51.664711),\n    (7.703890, 51.664879),\n    (7.704340, 51.664951),\n    (7.704640, 51.665051),\n    (7.704760, 51.665112),\n    (7.704870, 51.665180),\n    (7.704960, 51.665260),\n    (7.705030, 51.665329),\n    (7.705070, 51.665409),\n    (7.705130, 51.665531),\n    (7.705140, 51.665680),\n    (7.705140, 51.665821),\n    (7.705090, 51.665951),\n    (7.704970, 51.666199),\n    (7.704170, 51.667679),\n    (7.704010, 51.667980),\n    (7.703890, 51.668289),\n    (7.703860, 51.668530),\n    (7.703870, 51.668770),\n    (7.703970, 51.669140),\n    (7.704210, 51.669472),\n    (7.704690, 51.669922),\n    (7.705010, 51.670200),\n    (7.705220, 51.670490),\n    (7.705300, 51.670639),\n    (7.705320, 51.670830),\n    (7.705310, 51.671150),\n    (7.705240, 51.671501),\n    (7.704870, 51.672310),\n    (7.704830, 51.672401),\n    (7.704740, 51.672581),\n    (7.704720, 51.672630),\n    (7.704830, 51.672680),\n    (7.704870, 51.672710),\n    (7.704890, 51.672791),\n    (7.705590, 51.672798),\n    (7.706210, 51.672810),\n    (7.708320, 51.673340),\n    (7.710350, 51.673851),\n    (7.711020, 51.674019),\n    (7.711750, 51.674191),\n    (7.714670, 51.674789),\n    (7.714950, 51.674870),\n    (7.716420, 51.675369),\n    (7.719040, 51.676529),\n    (7.724280, 51.678661),\n    (7.726390, 51.679489),\n    (7.728640, 51.680309),\n    (7.731230, 51.681129),\n    (7.734800, 51.682400),\n    (7.736040, 51.682850),\n    (7.738920, 51.683830),\n    (7.739220, 51.683929),\n    (7.739520, 51.684021),\n    (7.740040, 51.684219),\n    (7.740620, 51.684441),\n    (7.741100, 51.684631),\n    (7.741560, 51.684849),\n    (7.742240, 51.685211),\n    (7.742920, 51.685631),\n    (7.743730, 51.686100),\n    (7.743810, 51.686138),\n    (7.744290, 51.686390),\n    (7.745370, 51.686790),\n    (7.745930, 51.686958),\n    (7.746390, 51.687080),\n    (7.746710, 51.687160),\n    (7.746970, 51.687210),\n    (7.747760, 51.687359),\n    (7.748560, 51.687469),\n    (7.750250, 51.687679),\n    (7.750750, 51.687740),\n    (7.750920, 51.687759),\n    (7.752000, 51.687920),\n    (7.752380, 51.687981),\n    (7.752760, 51.688080),\n    (7.753840, 51.688450),\n    (7.755840, 51.689140),\n    (7.755890, 51.689159),\n    (7.757460, 51.689690),\n    (7.760750, 51.690849),\n    (7.761000, 51.690899),\n    (7.761180, 51.690922),\n    (7.761370, 51.690941),\n    (7.761610, 51.690960),\n    (7.761850, 51.690971),\n    (7.761990, 51.690960),\n    (7.762140, 51.690948),\n    (7.762230, 51.690929),\n    (7.762500, 51.690899),\n    (7.762580, 51.690880),\n    (7.763100, 51.690800),\n    (7.763270, 51.690769),\n    (7.764220, 51.690609),\n    (7.767710, 51.690189),\n    (7.768120, 51.690128),\n    (7.768460, 51.690079),\n    (7.769020, 51.690010),\n    (7.769620, 51.689968),\n    (7.770700, 51.689930),\n    (7.771820, 51.689850),\n    (7.772370, 51.689831),\n    (7.772930, 51.689800),\n    (7.773920, 51.689850),\n    (7.774170, 51.689850),\n    (7.774340, 51.689850),\n    (7.774410, 51.689838),\n    (7.774600, 51.689831),\n    (7.774800, 51.689812),\n    (7.775650, 51.689671),\n    (7.776600, 51.689449),\n    (7.777210, 51.689301),\n    (7.777610, 51.689220),\n    (7.777810, 51.689190),\n    (7.778180, 51.689140),\n    (7.778760, 51.689072),\n    (7.779400, 51.689011),\n    (7.780390, 51.688950),\n    (7.781380, 51.688900),\n    (7.781630, 51.688881),\n    (7.782010, 51.688850),\n    (7.782290, 51.688831),\n    (7.782500, 51.688789),\n    (7.783140, 51.688641),\n    (7.783430, 51.688580),\n    (7.783830, 51.688499),\n    (7.784250, 51.688438),\n    (7.785610, 51.688290),\n    (7.786320, 51.688210),\n    (7.786950, 51.688141),\n    (7.787640, 51.688068),\n    (7.788370, 51.687981),\n    (7.788820, 51.687931),\n    (7.789100, 51.687908),\n    (7.789580, 51.687889),\n    (7.789780, 51.687889),\n    (7.789970, 51.687920),\n    (7.790220, 51.687950),\n    (7.791070, 51.688091),\n    (7.792030, 51.688259),\n    (7.793490, 51.688511),\n    (7.794210, 51.688641),\n    (7.794550, 51.688690),\n    (7.794910, 51.688721),\n    (7.796290, 51.688789),\n    (7.797050, 51.688820),\n    (7.797820, 51.688850),\n    (7.799880, 51.688938),\n    (7.800170, 51.688961),\n    (7.800570, 51.688999),\n    (7.801060, 51.689079),\n    (7.801230, 51.689110),\n    (7.801300, 51.689129),\n    (7.802510, 51.689350),\n    (7.802940, 51.689430),\n    (7.804320, 51.689678),\n    (7.805030, 51.689812),\n    (7.805300, 51.689861),\n    (7.805760, 51.689949),\n    (7.806660, 51.690121),\n    (7.807620, 51.690300),\n    (7.808460, 51.690418),\n    (7.808820, 51.690441),\n    (7.808970, 51.690460),\n    (7.809070, 51.690491),\n    (7.809150, 51.690529),\n    (7.809220, 51.690559),\n    (7.809300, 51.690620),\n    (7.809380, 51.690701),\n    (7.809500, 51.690769),\n    (7.809580, 51.690811),\n    (7.809620, 51.690830),\n    (7.810100, 51.690941),\n    (7.810570, 51.691040),\n    (7.810730, 51.691071),\n    (7.811580, 51.691238),\n    (7.811770, 51.691269),\n    (7.813030, 51.691479),\n    (7.813860, 51.691620),\n    (7.814490, 51.691761),\n    (7.814650, 51.691811),\n    (7.814900, 51.691879),\n    (7.815110, 51.691959),\n    (7.815500, 51.692108),\n    (7.815870, 51.692299),\n    (7.816680, 51.692719),\n    (7.817370, 51.693062),\n    (7.817810, 51.693279),\n    (7.818610, 51.693680),\n    (7.819050, 51.693890),\n    (7.819330, 51.694031),\n    (7.819680, 51.694180),\n    (7.820030, 51.694290),\n    (7.820460, 51.694401),\n    (7.821670, 51.694710),\n    (7.821810, 51.694759),\n    (7.821820, 51.694740),\n    (7.821930, 51.694698),\n    (7.822050, 51.694710),\n    (7.822140, 51.694729),\n    (7.822190, 51.694771),\n    (7.822210, 51.694801),\n    (7.822210, 51.694870),\n    (7.822720, 51.694981),\n    (7.823010, 51.695061),\n    (7.823290, 51.695179),\n    (7.823540, 51.695309),\n    (7.824200, 51.695679),\n    (7.824550, 51.695862),\n    (7.824570, 51.695869),\n    (7.825160, 51.696129),\n    (7.825550, 51.696270),\n    (7.826180, 51.696449),\n    (7.827010, 51.696720),\n    (7.827220, 51.696789),\n    (7.827850, 51.696991),\n    (7.828360, 51.697151),\n    (7.828770, 51.697269),\n    (7.829640, 51.697529),\n    (7.829990, 51.697639),\n    (7.830360, 51.697750),\n    (7.831060, 51.697960),\n    (7.831580, 51.698090),\n    (7.832500, 51.698261),\n    (7.832850, 51.698330),\n    (7.832960, 51.698349),\n    (7.833300, 51.698421),\n    (7.834360, 51.698620),\n    (7.834950, 51.698730),\n    (7.835190, 51.698769),\n    (7.835770, 51.698898),\n    (7.836910, 51.699131),\n    (7.837250, 51.699200),\n    (7.837500, 51.699249),\n    (7.837530, 51.699261),\n    (7.837760, 51.699329),\n    (7.838010, 51.699440),\n    (7.838250, 51.699551),\n    (7.838940, 51.699902),\n    (7.839500, 51.700150),\n    (7.839650, 51.700199),\n    (7.840070, 51.700321),\n    (7.840340, 51.700390),\n    (7.840960, 51.700550),\n    (7.842070, 51.700840),\n    (7.842490, 51.700958),\n    (7.842820, 51.701092),\n    (7.843850, 51.701660),\n    (7.844120, 51.701778),\n    (7.844550, 51.701950),\n    (7.844900, 51.702061),\n    (7.845180, 51.702148),\n    (7.845410, 51.702221),\n    (7.845630, 51.702271),\n    (7.845990, 51.702358),\n    (7.846310, 51.702400),\n    (7.847030, 51.702492),\n    (7.848190, 51.702629),\n    (7.848880, 51.702702),\n    (7.849160, 51.702740),\n    (7.850570, 51.702888),\n    (7.852090, 51.703060),\n    (7.852500, 51.703110),\n    (7.852540, 51.703110),\n    (7.854330, 51.703308),\n    (7.854770, 51.703350),\n    (7.855300, 51.703381),\n    (7.855580, 51.703400),\n    (7.857360, 51.703468),\n    (7.859240, 51.703560),\n    (7.859940, 51.703579),\n    (7.860050, 51.703590),\n    (7.860360, 51.703602),\n    (7.864410, 51.703781),\n    (7.866300, 51.703861),\n    (7.866740, 51.703911),\n    (7.866840, 51.703930),\n    (7.867210, 51.704041),\n    (7.868600, 51.704460),\n    (7.869660, 51.704800),\n    (7.871430, 51.705372),\n    (7.874690, 51.706310),\n    (7.875130, 51.706409),\n    (7.875760, 51.706532),\n    (7.876130, 51.706581),\n    (7.876510, 51.706619),\n    (7.876960, 51.706650),\n    (7.877410, 51.706669),\n    (7.877800, 51.706669),\n    (7.878530, 51.706661),\n    (7.879290, 51.706631),\n    (7.880410, 51.706581),\n    (7.880750, 51.706570),\n    (7.880890, 51.706581),\n    (7.881250, 51.706581),\n    (7.881580, 51.706600),\n    (7.881960, 51.706638),\n    (7.882570, 51.706730),\n    (7.882930, 51.706791),\n    (7.883280, 51.706860),\n    (7.883940, 51.707008),\n    (7.884410, 51.707111),\n    (7.884700, 51.707169),\n    (7.884980, 51.707211),\n    (7.885520, 51.707298),\n    (7.885920, 51.707340),\n    (7.886390, 51.707371),\n    (7.887840, 51.707432),\n    (7.888570, 51.707451),\n    (7.890580, 51.707531),\n    (7.892450, 51.707581),\n    (7.895620, 51.707691),\n    (7.901300, 51.707241),\n    (7.903640, 51.707390),\n    (7.906690, 51.707619),\n    (7.908260, 51.707741),\n    (7.909720, 51.707851),\n    (7.912270, 51.707741),\n    (7.913980, 51.707680),\n    (7.914480, 51.707680),\n    (7.916180, 51.708050),\n    (7.916470, 51.708099),\n    (7.918300, 51.708370),\n    (7.919360, 51.708481),\n    (7.920380, 51.708580),\n    (7.921570, 51.708809),\n    (7.922190, 51.709122),\n    (7.924830, 51.710819),\n    (7.925770, 51.711449),\n    (7.926900, 51.712189),\n    (7.928760, 51.713409),\n    (7.929150, 51.713669),\n    (7.933590, 51.716770),\n    (7.935140, 51.717571),\n    (7.936760, 51.718262),\n    (7.937310, 51.718460),\n    (7.939620, 51.719200),\n    (7.941940, 51.719959),\n    (7.943930, 51.720661),\n    (7.948920, 51.722408),\n    (7.951300, 51.723270),\n    (7.951670, 51.723400),\n    (7.954740, 51.724449),\n    (7.955850, 51.724892),\n    (7.961000, 51.726631),\n    (7.963850, 51.727589),\n    (7.966830, 51.728642),\n    (7.970640, 51.729961),\n    (7.975080, 51.731491),\n    (7.977760, 51.732422),\n    (7.977990, 51.732498),\n    (7.983950, 51.734558),\n    (7.986270, 51.735321),\n    (7.987960, 51.735901),\n    (7.991960, 51.737259),\n    (7.998030, 51.739349),\n    (8.002740, 51.741009),\n    (8.008920, 51.743172),\n    (8.011830, 51.744240),\n    (8.013640, 51.744991),\n    (8.014930, 51.745571),\n    (8.015380, 51.745781),\n    (8.016030, 51.746101),\n    (8.016870, 51.746510),\n    (8.019270, 51.747711),\n    (8.019900, 51.748001),\n    (8.020280, 51.748180),\n    (8.022440, 51.749260),\n    (8.022500, 51.749229),\n    (8.022580, 51.749222),\n    (8.022640, 51.749229),\n    (8.022700, 51.749260),\n    (8.022730, 51.749298),\n    (8.022730, 51.749340),\n    (8.022700, 51.749401),\n    (8.024840, 51.750401),\n    (8.025290, 51.750622),\n    (8.026820, 51.751381),\n    (8.029510, 51.752731),\n    (8.031450, 51.753670),\n    (8.031810, 51.753899),\n    (8.032060, 51.754139),\n    (8.032170, 51.754250),\n    (8.032610, 51.754688),\n    (8.032740, 51.754829),\n    (8.032810, 51.754879),\n    (8.033240, 51.755070),\n    (8.033810, 51.755161),\n    (8.034180, 51.755180),\n    (8.034570, 51.755199),\n    (8.034800, 51.755299),\n    (8.034960, 51.755150),\n    (8.035170, 51.755081),\n    (8.035460, 51.755039),\n    (8.035830, 51.755032),\n    (8.036310, 51.755039),\n    (8.036450, 51.754601),\n    (8.036610, 51.754261),\n    (8.037070, 51.754318),\n    (8.037860, 51.754410),\n    (8.038660, 51.754440),\n    (8.039080, 51.754379),\n    (8.039950, 51.754108),\n    (8.040550, 51.754028),\n    (8.041070, 51.753990),\n    (8.041580, 51.753979),\n    (8.041750, 51.753971),\n    (8.041960, 51.753990),\n    (8.042180, 51.754040),\n    (8.042410, 51.754139),\n    (8.042480, 51.754181),\n    (8.043120, 51.754459),\n    (8.043530, 51.754681),\n    (8.043710, 51.754730),\n    (8.044050, 51.754761),\n    (8.044300, 51.754730),\n    (8.044570, 51.754669),\n    (8.044940, 51.754539),\n    (8.045130, 51.754471),\n    (8.046050, 51.754150),\n    (8.046150, 51.754108),\n    (8.046280, 51.754238),\n    (8.046610, 51.754490),\n    (8.047370, 51.754860),\n    (8.047580, 51.754822),\n    (8.048110, 51.754860),\n    (8.049910, 51.755081),\n    (8.050660, 51.755169),\n    (8.051850, 51.755299),\n    (8.053010, 51.755428),\n    (8.053670, 51.755550),\n    (8.054420, 51.755711),\n    (8.057820, 51.756500),\n    (8.058410, 51.756630),\n    (8.061620, 51.757389),\n    (8.063310, 51.757771),\n    (8.064930, 51.758148),\n    (8.065800, 51.758350),\n    (8.069010, 51.759102),\n    (8.072970, 51.760010),\n    (8.074950, 51.760471),\n    (8.076230, 51.760830),\n    (8.077300, 51.761162),\n    (8.078230, 51.761539),\n    (8.080850, 51.762711),\n    (8.083360, 51.763821),\n    (8.087620, 51.765671),\n    (8.087780, 51.765739),\n    (8.089110, 51.766209),\n    (8.092900, 51.767429),\n    (8.096570, 51.768620),\n    (8.101140, 51.770100),\n    (8.107470, 51.772141),\n    (8.112800, 51.773289),\n    (8.115980, 51.774010),\n    (8.116450, 51.774181),\n    (8.116860, 51.774330),\n    (8.117740, 51.774769),\n    (8.120650, 51.776218),\n    (8.121550, 51.776680),\n    (8.126540, 51.779060),\n    (8.127030, 51.779301),\n    (8.127730, 51.779560),\n    (8.131980, 51.780739),\n    (8.143320, 51.783939),\n    (8.146170, 51.784988),\n    (8.146280, 51.785042),\n    (8.150670, 51.786911),\n    (8.151920, 51.787479),\n    (8.153490, 51.788151),\n    (8.158580, 51.790359),\n    (8.160190, 51.791050),\n    (8.163960, 51.792648),\n    (8.167300, 51.794071),\n    (8.170160, 51.795219),\n    (8.171060, 51.795429),\n    (8.171780, 51.795559),\n    (8.173490, 51.795891),\n    (8.177630, 51.796612),\n    (8.178090, 51.796761),\n    (8.178500, 51.796951),\n    (8.180230, 51.797760),\n    (8.181820, 51.798470),\n    (8.183500, 51.799229),\n    (8.184430, 51.799671),\n    (8.184690, 51.799801),\n    (8.184910, 51.799900),\n    (8.185050, 51.799839),\n    (8.185180, 51.799831),\n    (8.185330, 51.799858),\n    (8.185420, 51.799931),\n    (8.185450, 51.800018),\n    (8.185390, 51.800121),\n    (8.185680, 51.800251),\n    (8.186770, 51.800739),\n    (8.187870, 51.801231),\n    (8.192930, 51.803490),\n    (8.194680, 51.804260),\n    (8.195030, 51.804329),\n    (8.195870, 51.804508),\n    (8.196770, 51.804581),\n    (8.198000, 51.804588),\n    (8.200410, 51.804459),\n    (8.200990, 51.804352),\n    (8.201580, 51.804241),\n    (8.201940, 51.804100),\n    (8.202060, 51.804001),\n    (8.202160, 51.803928),\n    (8.202320, 51.803600),\n    (8.202400, 51.803509),\n    (8.204240, 51.803741),\n    (8.206670, 51.804050),\n    (8.207570, 51.804192),\n    (8.209340, 51.804409),\n    (8.209970, 51.803928),\n    (8.210700, 51.803440),\n    (8.210900, 51.803379),\n    (8.211150, 51.803398),\n    (8.211700, 51.803551),\n    (8.213170, 51.803982),\n    (8.213470, 51.804008),\n    (8.215100, 51.803970),\n    (8.217450, 51.803822),\n    (8.218550, 51.804050),\n    (8.218970, 51.804169),\n    (8.219110, 51.804291),\n    (8.219100, 51.805229),\n    (8.219120, 51.805370),\n    (8.219200, 51.805489),\n    (8.219410, 51.805592),\n    (8.219600, 51.805660),\n    (8.219840, 51.805721),\n    (8.220520, 51.805859),\n    (8.222650, 51.806061),\n    (8.223920, 51.806332),\n    (8.226340, 51.806850),\n    (8.228030, 51.807251),\n    (8.233910, 51.809799),\n    (8.235520, 51.810360),\n    (8.238710, 51.811508),\n    (8.245180, 51.813759),\n    (8.245520, 51.813881),\n    (8.245700, 51.813950),\n    (8.246720, 51.814301),\n    (8.252230, 51.816132),\n    (8.253340, 51.816502),\n    (8.254550, 51.817162),\n    (8.255980, 51.818310),\n    (8.257390, 51.819080),\n    (8.259960, 51.820148),\n    (8.263060, 51.821770),\n    (8.263450, 51.821980),\n    (8.263980, 51.822250),\n    (8.268110, 51.823101),\n    (8.272320, 51.824310),\n    (8.273230, 51.824570),\n    (8.273900, 51.824741),\n    (8.274320, 51.824772),\n    (8.275260, 51.824760),\n    (8.275480, 51.824760),\n    (8.277480, 51.824760),\n    (8.277720, 51.824791),\n    (8.278530, 51.824970),\n    (8.278990, 51.825130),\n    (8.279130, 51.825180),\n    (8.279260, 51.825230),\n    (8.279490, 51.825340),\n    (8.279590, 51.825390),\n    (8.280600, 51.825840),\n    (8.281210, 51.826080),\n    (8.282110, 51.826488),\n    (8.282360, 51.826569),\n    (8.284040, 51.826790),\n    (8.284590, 51.826859),\n    (8.284860, 51.826920),\n    (8.285060, 51.826969),\n    (8.286180, 51.827351),\n    (8.288930, 51.828251),\n    (8.290830, 51.828800),\n    (8.292060, 51.829128),\n    (8.292970, 51.829319),\n    (8.293260, 51.829411),\n    (8.293590, 51.829571),\n    (8.294310, 51.830132),\n    (8.294550, 51.830280),\n    (8.295090, 51.830551),\n    (8.296370, 51.831150),\n    (8.296930, 51.831402),\n    (8.297880, 51.831749),\n    (8.299700, 51.832409),\n    (8.300160, 51.832561),\n    (8.300550, 51.832680),\n    (8.301020, 51.832760),\n    (8.301420, 51.832760),\n    (8.301820, 51.832668),\n    (8.302210, 51.833179),\n    (8.304430, 51.832668),\n    (8.304610, 51.832909),\n    (8.304800, 51.833061),\n    (8.304910, 51.833141),\n    (8.304990, 51.833191),\n    (8.305300, 51.833382),\n    (8.305490, 51.833340),\n    (8.305730, 51.833328),\n    (8.305920, 51.833328),\n    (8.306210, 51.833340),\n    (8.306320, 51.833340),\n    (8.306600, 51.833340),\n    (8.306790, 51.833340),\n    (8.306990, 51.833328),\n    (8.307110, 51.833328),\n    (8.307480, 51.833340),\n    (8.307570, 51.833340),\n    (8.307880, 51.833340),\n    (8.308470, 51.833370),\n    (8.308810, 51.833561),\n    (8.308920, 51.833679),\n    (8.309780, 51.833500),\n    (8.310000, 51.833790),\n    (8.310250, 51.834110),\n    (8.310310, 51.834110),\n    (8.310930, 51.833961),\n    (8.310940, 51.833939),\n    (8.310950, 51.833920),\n    (8.312010, 51.833641),\n    (8.312150, 51.833832),\n    (8.312330, 51.834000),\n    (8.312380, 51.834049),\n    (8.312850, 51.834480),\n    (8.313140, 51.834740),\n    (8.313460, 51.835030),\n    (8.313780, 51.835419),\n    (8.313880, 51.835991),\n    (8.313880, 51.836102),\n    (8.313880, 51.836159),\n    (8.313910, 51.836609),\n    (8.313960, 51.837311),\n    (8.314110, 51.837730),\n    (8.314190, 51.837841),\n    (8.314270, 51.837990),\n    (8.314310, 51.838051),\n    (8.314500, 51.838390),\n    (8.315100, 51.838341),\n    (8.315530, 51.838280),\n    (8.315910, 51.838390),\n    (8.316360, 51.838699),\n    (8.316840, 51.839069),\n    (8.317490, 51.839550),\n    (8.317740, 51.839699),\n    (8.319500, 51.839882),\n    (8.319940, 51.839920),\n    (8.320830, 51.840000),\n    (8.322010, 51.840099),\n    (8.322720, 51.840191),\n    (8.323100, 51.840260),\n    (8.326350, 51.840881),\n    (8.331460, 51.841850),\n    (8.332570, 51.842030),\n    (8.334530, 51.842220),\n    (8.334900, 51.842270),\n    (8.335250, 51.842331),\n    (8.336490, 51.842640),\n    (8.337130, 51.842770),\n    (8.337550, 51.842831),\n    (8.338640, 51.842991),\n    (8.339870, 51.843151),\n    (8.340000, 51.843170),\n    (8.342370, 51.843498),\n    (8.343420, 51.843632),\n    (8.343830, 51.843719),\n    (8.344430, 51.843948),\n    (8.348190, 51.845570),\n    (8.351180, 51.846859),\n    (8.354450, 51.848259),\n    (8.357140, 51.849411),\n    (8.357500, 51.849529),\n    (8.357820, 51.849621),\n    (8.358150, 51.849682),\n    (8.358480, 51.849720),\n    (8.359200, 51.849739),\n    (8.362050, 51.849751),\n    (8.364060, 51.849770),\n    (8.366050, 51.849789),\n    (8.366690, 51.849838),\n    (8.366800, 51.849861),\n    (8.366930, 51.849880),\n    (8.367330, 51.849941),\n    (8.369150, 51.850311),\n    (8.370110, 51.850498),\n    (8.370420, 51.850559),\n    (8.370690, 51.850590),\n    (8.370860, 51.850620),\n    (8.371020, 51.850632),\n    (8.371280, 51.850651),\n    (8.371760, 51.850651),\n    (8.372970, 51.850651),\n    (8.373480, 51.850651),\n    (8.376830, 51.850700),\n    (8.378320, 51.850731),\n    (8.378650, 51.850750),\n    (8.378980, 51.850800),\n    (8.381890, 51.851311),\n    (8.381980, 51.851330),\n    (8.384680, 51.851799),\n    (8.387510, 51.852299),\n    (8.388060, 51.852402),\n    (8.388340, 51.852470),\n    (8.388610, 51.852551),\n    (8.391920, 51.853748),\n    (8.397420, 51.855751),\n    (8.397740, 51.855839),\n    (8.398750, 51.856030),\n    (8.403170, 51.856819),\n    (8.403480, 51.856861),\n    (8.403920, 51.856869),\n    (8.407030, 51.856861),\n    (8.407610, 51.856869),\n    (8.407990, 51.856899),\n    (8.410130, 51.857090),\n    (8.410710, 51.857140),\n    (8.411710, 51.857231),\n    (8.414270, 51.857460),\n    (8.416270, 51.857639),\n    (8.416630, 51.857712),\n    (8.417000, 51.857819),\n    (8.417940, 51.858158),\n    (8.418790, 51.858471),\n    (8.418920, 51.858509),\n    (8.420170, 51.858971),\n    (8.421200, 51.859341),\n    (8.422890, 51.859970),\n    (8.423710, 51.860271),\n    (8.424130, 51.860409),\n    (8.424570, 51.860500),\n    (8.424870, 51.860538),\n    (8.425230, 51.860561),\n    (8.425740, 51.860561),\n    (8.426250, 51.860531),\n    (8.426700, 51.860500),\n    (8.427130, 51.860451),\n    (8.427610, 51.860371),\n    (8.428520, 51.860241),\n    (8.429000, 51.860168),\n    (8.431540, 51.859791),\n    (8.431700, 51.859779),\n    (8.432090, 51.859741),\n    (8.433930, 51.859600),\n    (8.434120, 51.859581),\n    (8.435800, 51.859459),\n    (8.436930, 51.859451),\n    (8.437920, 51.859440),\n    (8.438160, 51.859440),\n    (8.439580, 51.859440),\n    (8.440450, 51.859440),\n    (8.441770, 51.859440),\n    (8.442310, 51.859440),\n    (8.442520, 51.859440),\n    (8.443110, 51.859440),\n    (8.444330, 51.859482),\n    (8.444320, 51.859550),\n    (8.444300, 51.859821),\n    (8.444360, 51.859940),\n    (8.445190, 51.860340),\n    (8.445510, 51.860470),\n    (8.445930, 51.860668),\n    (8.446350, 51.860760),\n    (8.447640, 51.861012),\n    (8.447770, 51.861012),\n    (8.447820, 51.861210),\n    (8.448240, 51.862949),\n    (8.448450, 51.863411),\n    (8.448790, 51.863918),\n    (8.449210, 51.864609),\n    (8.449510, 51.865040),\n    (8.450180, 51.866051),\n    (8.451420, 51.865978),\n    (8.452740, 51.865910),\n    (8.458410, 51.866001),\n    (8.459560, 51.866009),\n    (8.459790, 51.866058),\n    (8.464610, 51.867168),\n    (8.465220, 51.867310),\n    (8.465400, 51.867359),\n    (8.468020, 51.868679),\n    (8.470760, 51.869999),\n    (8.471910, 51.870548),\n    (8.474170, 51.871670),\n    (8.475480, 51.872280),\n    (8.475780, 51.872440),\n    (8.477090, 51.873089),\n    (8.477390, 51.873329),\n    (8.477640, 51.873562),\n    (8.477860, 51.873711),\n    (8.479590, 51.874550),\n    (8.480480, 51.874908),\n    (8.481920, 51.875641),\n    (8.482000, 51.875710),\n    (8.483130, 51.875851),\n    (8.486430, 51.876122),\n    (8.487630, 51.876492),\n    (8.488870, 51.876911),\n    (8.489750, 51.877121),\n    (8.491130, 51.877609),\n    (8.491310, 51.877659),\n    (8.491280, 51.877781),\n    (8.491240, 51.877991),\n    (8.491210, 51.878201),\n    (8.491120, 51.878490),\n    (8.491030, 51.878841),\n    (8.490790, 51.879719),\n    (8.491030, 51.879749),\n    (8.491690, 51.879829),\n    (8.491950, 51.879848),\n    (8.492220, 51.879871),\n    (8.492920, 51.879921),\n    (8.493690, 51.879959),\n    (8.494240, 51.879990),\n    (8.495600, 51.880070),\n    (8.496850, 51.880131),\n    (8.499040, 51.880260),\n    (8.500740, 51.880348),\n    (8.501400, 51.880409),\n    (8.501860, 51.880482),\n    (8.502230, 51.880569),\n    (8.502590, 51.880692),\n    (8.502870, 51.880779),\n    (8.503800, 51.881119),\n    (8.503990, 51.881210),\n    (8.504370, 51.881371),\n    (8.504570, 51.881458),\n    (8.505290, 51.881760),\n    (8.505580, 51.881821),\n    (8.505850, 51.881882),\n    (8.506190, 51.881920),\n    (8.506350, 51.881939),\n    (8.506700, 51.881969),\n    (8.507870, 51.882030),\n    (8.508340, 51.882030),\n    (8.509350, 51.882000),\n    (8.509590, 51.881989),\n    (8.510730, 51.881908),\n    (8.510820, 51.881901),\n    (8.511370, 51.881859),\n    (8.511710, 51.881840),\n    (8.513150, 51.881721),\n    (8.513300, 51.881710),\n    (8.513750, 51.881710),\n    (8.515440, 51.881599),\n    (8.516330, 51.881531),\n    (8.516850, 51.881500),\n    (8.518100, 51.881420),\n    (8.519050, 51.881359),\n    (8.519660, 51.881310),\n    (8.519890, 51.881302),\n    (8.520010, 51.881310),\n    (8.520150, 51.881329),\n    (8.520290, 51.881371),\n    (8.520390, 51.881420),\n    (8.520550, 51.881512),\n    (8.520720, 51.881592),\n    (8.520860, 51.881630),\n    (8.521410, 51.881699),\n    (8.521490, 51.881741),\n    (8.521540, 51.881779),\n    (8.521560, 51.881821),\n    (8.521570, 51.881870),\n    (8.521460, 51.882339),\n    (8.522850, 51.882511),\n    (8.526480, 51.882648),\n    (8.527450, 51.882721),\n    (8.528830, 51.882740),\n    (8.530820, 51.881618),\n    (8.531290, 51.881481),\n    (8.532660, 51.881279),\n    (8.536980, 51.880810),\n    (8.537210, 51.880779),\n    (8.538730, 51.880329),\n    (8.539450, 51.880112),\n    (8.540330, 51.880001),\n    (8.541270, 51.879929),\n    (8.542050, 51.879971),\n    (8.542970, 51.880192),\n    (8.543830, 51.880360),\n    (8.544810, 51.880508),\n    (8.545340, 51.880562),\n    (8.545820, 51.880589),\n    (8.546280, 51.880550),\n    (8.546870, 51.880169),\n    (8.547560, 51.879860),\n    (8.548480, 51.879871),\n    (8.549540, 51.879879),\n    (8.550350, 51.879829),\n    (8.550940, 51.879639),\n    (8.551310, 51.879391),\n    (8.555000, 51.880360),\n    (8.555960, 51.880600),\n    (8.557420, 51.880970),\n    (8.557610, 51.881008),\n    (8.558270, 51.881149),\n    (8.559230, 51.881329),\n    (8.565740, 51.882408),\n    (8.567580, 51.882710),\n    (8.572110, 51.883461),\n    (8.573590, 51.883621),\n    (8.574620, 51.883709),\n    (8.575280, 51.883789),\n    (8.576080, 51.883862),\n    (8.578400, 51.884090),\n    (8.580020, 51.884258),\n    (8.580310, 51.884289),\n    (8.582600, 51.884541),\n    (8.582870, 51.884560),\n    (8.583910, 51.884640),\n    (8.584100, 51.884579),\n    (8.584470, 51.884949),\n    (8.585300, 51.885689),\n    (8.585710, 51.886082),\n    (8.587160, 51.887402),\n    (8.587330, 51.887569),\n    (8.587470, 51.887779),\n    (8.588090, 51.888840),\n    (8.588440, 51.889290),\n    (8.588960, 51.889729),\n    (8.589830, 51.890282),\n    (8.590700, 51.890850),\n    (8.592240, 51.891869),\n    (8.592490, 51.892071),\n    (8.594910, 51.893921),\n    (8.595860, 51.894650),\n    (8.596980, 51.895500),\n    (8.598520, 51.896709),\n    (8.598640, 51.896648),\n    (8.599290, 51.896358),\n    (8.600690, 51.896259),\n    (8.601790, 51.896370),\n    (8.602870, 51.896839),\n    (8.603510, 51.897400),\n    (8.603620, 51.897621),\n    (8.603800, 51.897980),\n    (8.603940, 51.898369),\n    (8.603970, 51.898430),\n    (8.604100, 51.898602),\n    (8.604260, 51.898819),\n    (8.605360, 51.899639),\n    (8.606920, 51.900452),\n    (8.607170, 51.900539),\n    (8.607520, 51.900669),\n    (8.608610, 51.900799),\n    (8.608950, 51.900841),\n    (8.610280, 51.900990),\n    (8.611790, 51.901161),\n    (8.611840, 51.901089),\n    (8.611930, 51.901070),\n    (8.612000, 51.901112),\n    (8.612030, 51.901180),\n    (8.613270, 51.901260),\n    (8.613610, 51.901291),\n    (8.614560, 51.901340),\n    (8.615340, 51.901371),\n    (8.616340, 51.901440),\n    (8.616390, 51.901440),\n    (8.616900, 51.901470),\n    (8.617690, 51.901489),\n    (8.618560, 51.901550),\n    (8.618590, 51.901550),\n    (8.619070, 51.901581),\n    (8.619760, 51.901588),\n    (8.619950, 51.901588),\n    (8.621270, 51.901600),\n    (8.623390, 51.901600),\n    (8.624270, 51.901600),\n    (8.625220, 51.901600),\n    (8.625850, 51.901600),\n    (8.627590, 51.901630),\n    (8.628930, 51.901669),\n    (8.629200, 51.901661),\n    (8.630150, 51.901669),\n    (8.631770, 51.901649),\n    (8.633190, 51.901630),\n    (8.634040, 51.901730),\n    (8.634780, 51.901989),\n    (8.635500, 51.902351),\n    (8.635840, 51.902630),\n    (8.635990, 51.902611),\n    (8.636140, 51.902649),\n    (8.636210, 51.902760),\n    (8.636150, 51.902870),\n    (8.636470, 51.903069),\n    (8.637370, 51.903461),\n    (8.637750, 51.903629),\n    (8.638560, 51.903980),\n    (8.638810, 51.904091),\n    (8.639920, 51.904560),\n    (8.641050, 51.904980),\n    (8.641370, 51.905060),\n    (8.641500, 51.905090),\n    (8.642630, 51.905361),\n    (8.643820, 51.905830),\n    (8.644730, 51.906212),\n    (8.644850, 51.906231),\n    (8.647180, 51.906860),\n    (8.648900, 51.907379),\n    (8.649500, 51.907532),\n    (8.652670, 51.908401),\n    (8.653380, 51.908581),\n    (8.653540, 51.908470),\n    (8.653800, 51.908360),\n    (8.654130, 51.908249),\n    (8.654450, 51.908211),\n    (8.654830, 51.908272),\n    (8.656270, 51.908569),\n    (8.656410, 51.908611),\n    (8.656970, 51.908760),\n    (8.657580, 51.908890),\n    (8.659170, 51.909309),\n    (8.660210, 51.909580),\n    (8.661010, 51.909760),\n    (8.662160, 51.909859),\n    (8.662770, 51.909950),\n    (8.663270, 51.909489),\n    (8.663240, 51.909409),\n    (8.663250, 51.909340),\n    (8.663310, 51.909302),\n    (8.663400, 51.909290),\n    (8.663530, 51.909309),\n    (8.663600, 51.909409),\n    (8.663810, 51.909382),\n    (8.664400, 51.909222),\n    (8.664860, 51.909222),\n    (8.665170, 51.909279),\n    (8.665820, 51.909401),\n    (8.666340, 51.909409),\n    (8.666850, 51.909340),\n    (8.667100, 51.909290),\n    (8.667660, 51.909180),\n    (8.668190, 51.909142),\n    (8.668820, 51.909241),\n    (8.669560, 51.909439),\n    (8.670410, 51.909538),\n    (8.671440, 51.909439),\n    (8.673440, 51.909168),\n    (8.676970, 51.908718),\n    (8.678260, 51.908531),\n    (8.680700, 51.908119),\n    (8.683090, 51.907570),\n    (8.683850, 51.907360),\n    (8.683930, 51.907330),\n    (8.683940, 51.907219),\n    (8.684040, 51.907131),\n    (8.684220, 51.907120),\n    (8.684340, 51.907211),\n    (8.685080, 51.906952),\n    (8.686120, 51.906601),\n    (8.688420, 51.905651),\n    (8.688800, 51.905472),\n    (8.692020, 51.903961),\n    (8.693180, 51.903450),\n    (8.694460, 51.902988),\n    (8.696320, 51.902660),\n    (8.697910, 51.902649),\n    (8.698210, 51.902641),\n    (8.699280, 51.902840),\n    (8.699380, 51.902851),\n    (8.700250, 51.903049),\n    (8.702220, 51.903519),\n    (8.702370, 51.903561),\n    (8.703170, 51.903709),\n    (8.704200, 51.903721),\n    (8.705700, 51.903702),\n    (8.708280, 51.903660),\n    (8.709170, 51.903702),\n    (8.709530, 51.903721),\n    (8.710630, 51.903881),\n    (8.711230, 51.903961),\n    (8.712360, 51.904190),\n    (8.716750, 51.905090),\n    (8.717140, 51.905201),\n    (8.717460, 51.905289),\n    (8.717730, 51.905418),\n    (8.718630, 51.905842),\n    (8.721820, 51.907879),\n    (8.723350, 51.909081),\n    (8.723950, 51.908852),\n    (8.724400, 51.908710),\n    (8.724760, 51.908600),\n    (8.725310, 51.908440),\n    (8.725890, 51.908321),\n    (8.727020, 51.908150),\n    (8.728910, 51.907879),\n    (8.729970, 51.907768),\n    (8.732130, 51.907600),\n    (8.732640, 51.907490),\n    (8.732890, 51.907360),\n    (8.733860, 51.907532),\n    (8.735160, 51.907761),\n    (8.735370, 51.907810),\n    (8.736600, 51.908051),\n    (8.736780, 51.908089),\n    (8.737430, 51.908230),\n    (8.737930, 51.908340),\n    (8.737950, 51.908329),\n    (8.738000, 51.908310),\n    (8.738050, 51.908298),\n    (8.738190, 51.908199),\n    (8.738510, 51.908180),\n    (8.741390, 51.907990),\n    (8.742720, 51.907902),\n    (8.743200, 51.907871),\n    (8.746060, 51.907909),\n    (8.746800, 51.907921),\n    (8.748460, 51.907928),\n    (8.750070, 51.907810),\n    (8.754740, 51.907471),\n    (8.754900, 51.907459),\n    (8.755680, 51.907391),\n    (8.757550, 51.907230),\n    (8.758370, 51.907150),\n    (8.759910, 51.907009),\n    (8.762270, 51.906830),\n    (8.762710, 51.906792),\n    (8.763510, 51.906712),\n    (8.764450, 51.906639),\n    (8.765460, 51.906590),\n    (8.766410, 51.906509),\n    (8.767350, 51.906429),\n    (8.768100, 51.906330),\n    (8.769060, 51.906361),\n    (8.770420, 51.906471),\n    (8.772600, 51.906609),\n    (8.774440, 51.907330),\n    (8.775530, 51.908199),\n    (8.777360, 51.909679),\n    (8.779380, 51.911308),\n    (8.779830, 51.911770),\n    (8.780060, 51.912209),\n    (8.780170, 51.912601),\n    (8.780190, 51.912998),\n    (8.780210, 51.913410),\n    (8.780590, 51.913490),\n    (8.780680, 51.913490),\n    (8.780830, 51.913250),\n    (8.781900, 51.913460),\n    (8.782600, 51.913540),\n    (8.787000, 51.914181),\n    (8.787180, 51.914211),\n    (8.788950, 51.914410),\n    (8.791140, 51.914669),\n    (8.792130, 51.914780),\n    (8.793250, 51.914890),\n    (8.793330, 51.914902),\n    (8.793370, 51.914909),\n    (8.793590, 51.915039),\n    (8.794420, 51.915459),\n    (8.795490, 51.916000),\n    (8.795770, 51.916161),\n    (8.795910, 51.916260),\n    (8.796390, 51.916821),\n    (8.796540, 51.917000),\n    (8.798400, 51.919182),\n    (8.798540, 51.919361),\n    (8.798720, 51.919479),\n    (8.798820, 51.919521),\n    (8.798960, 51.919609),\n    (8.799260, 51.919731),\n    (8.799750, 51.919891),\n    (8.800800, 51.920212),\n    (8.801180, 51.920330),\n    (8.801600, 51.920460),\n    (8.801820, 51.920509),\n    (8.801980, 51.920559),\n    (8.802140, 51.920601),\n    (8.802400, 51.920650),\n    (8.802590, 51.920670),\n    (8.802920, 51.920650),\n    (8.804250, 51.920540),\n    (8.805520, 51.920441),\n    (8.806030, 51.920399),\n    (8.806290, 51.920391),\n    (8.806590, 51.920399),\n    (8.808060, 51.920502),\n    (8.809390, 51.920570),\n    (8.809660, 51.920609),\n    (8.811790, 51.920738),\n    (8.812130, 51.920761),\n    (8.812200, 51.920761),\n    (8.812390, 51.920780),\n    (8.812460, 51.920780),\n    (8.813160, 51.920830),\n    (8.815240, 51.920990),\n    (8.815610, 51.921021),\n    (8.816160, 51.921101),\n    (8.816600, 51.921219),\n    (8.817000, 51.921349),\n    (8.817530, 51.921619),\n    (8.818070, 51.921890),\n    (8.818560, 51.922112),\n    (8.818960, 51.922249),\n    (8.819170, 51.922329),\n    (8.819740, 51.922482),\n    (8.820170, 51.922569),\n    (8.821210, 51.922729),\n    (8.822260, 51.922901),\n    (8.823500, 51.923100),\n    (8.824140, 51.923260),\n    (8.825760, 51.923752),\n    (8.826460, 51.923939),\n    (8.827850, 51.924191),\n    (8.828910, 51.924351),\n    (8.829250, 51.924389),\n    (8.829680, 51.924400),\n    (8.829870, 51.924389),\n    (8.830250, 51.924351),\n    (8.830630, 51.924290),\n    (8.831010, 51.924198),\n    (8.831470, 51.924080),\n    (8.832270, 51.923931),\n    (8.832680, 51.923870),\n    (8.833070, 51.923851),\n    (8.834230, 51.923889),\n    (8.834380, 51.923981),\n    (8.836620, 51.925449),\n    (8.837110, 51.925819),\n    (8.837490, 51.926281),\n    (8.837840, 51.926708),\n    (8.837990, 51.926739),\n    (8.838050, 51.926849),\n    (8.838170, 51.927010),\n    (8.838350, 51.927231),\n    (8.838440, 51.927410),\n    (8.838590, 51.927689),\n    (8.838720, 51.927952),\n    (8.838760, 51.928101),\n    (8.838770, 51.928230),\n    (8.838840, 51.928322),\n    (8.839100, 51.928612),\n    (8.839600, 51.928959),\n    (8.839980, 51.929062),\n    (8.840170, 51.929111),\n    (8.841150, 51.929230),\n    (8.841760, 51.929501),\n    (8.842120, 51.929760),\n    (8.842330, 51.929890),\n    (8.842630, 51.930111),\n    (8.843480, 51.930630),\n    (8.843790, 51.930672),\n    (8.844380, 51.931030),\n    (8.845170, 51.931461),\n    (8.846540, 51.932110),\n    (8.846940, 51.932301),\n    (8.847230, 51.932320),\n    (8.847810, 51.932251),\n    (8.848400, 51.932140),\n    (8.849010, 51.931999),\n    (8.849170, 51.931961),\n    (8.850030, 51.931679),\n    (8.851220, 51.931290),\n    (8.852020, 51.931099),\n    (8.852370, 51.931141),\n    (8.852660, 51.931271),\n    (8.852830, 51.931301),\n    (8.852930, 51.931320),\n    (8.853000, 51.931309),\n    (8.853090, 51.931229),\n    (8.853730, 51.931492),\n    (8.854450, 51.931648),\n    (8.855140, 51.931789),\n    (8.856540, 51.932030),\n    (8.857110, 51.932049),\n    (8.858320, 51.932110),\n    (8.859910, 51.932159),\n    (8.860750, 51.932178),\n    (8.861990, 51.932190),\n    (8.864280, 51.932110),\n    (8.864710, 51.932152),\n    (8.864980, 51.932220),\n    (8.866450, 51.932831),\n    (8.866580, 51.932899),\n    (8.867640, 51.933590),\n    (8.868190, 51.933899),\n    (8.868450, 51.934040),\n    (8.869190, 51.934490),\n    (8.869670, 51.934750),\n    (8.869840, 51.934818),\n    (8.870480, 51.935211),\n    (8.870720, 51.935390),\n    (8.870860, 51.935589),\n    (8.870960, 51.935589),\n    (8.871150, 51.935589),\n    (8.871580, 51.935631),\n    (8.871530, 51.935871),\n    (8.871810, 51.936581),\n    (8.871990, 51.937069),\n    (8.872130, 51.937401),\n    (8.872190, 51.937550),\n    (8.872340, 51.937920),\n    (8.872370, 51.937969),\n    (8.872530, 51.938370),\n    (8.872610, 51.938358),\n    (8.872720, 51.938339),\n    (8.872860, 51.938320),\n    (8.874110, 51.938160),\n    (8.874850, 51.938061),\n    (8.875130, 51.938770),\n    (8.875300, 51.939209),\n    (8.875400, 51.939491),\n    (8.875430, 51.939571),\n    (8.875520, 51.939800),\n    (8.875780, 51.940479),\n    (8.876020, 51.940430),\n    (8.876440, 51.940350),\n    (8.876590, 51.940311),\n    (8.876810, 51.940250),\n    (8.877180, 51.940140),\n    (8.878120, 51.939941),\n    (8.878970, 51.939751),\n    (8.879080, 51.939720),\n    (8.879340, 51.939678),\n    (8.879720, 51.939621),\n    (8.880550, 51.939411),\n    (8.880820, 51.939289),\n    (8.881450, 51.939739),\n    (8.882250, 51.940269),\n    (8.882970, 51.940842),\n    (8.883740, 51.940620),\n    (8.884710, 51.940361),\n    (8.884950, 51.940319),\n    (8.885910, 51.941521),\n    (8.885930, 51.941559),\n    (8.885980, 51.941551),\n    (8.886000, 51.941559),\n    (8.886020, 51.941559),\n    (8.886060, 51.941540),\n    (8.886740, 51.941059),\n    (8.887510, 51.940552),\n    (8.887900, 51.940289),\n    (8.888430, 51.940521),\n    (8.888950, 51.940689),\n    (8.889830, 51.940960),\n    (8.890710, 51.941151),\n    (8.890980, 51.941250),\n    (8.891310, 51.941559),\n    (8.891810, 51.942188),\n    (8.892230, 51.942848),\n    (8.892350, 51.943001),\n    (8.892780, 51.943329),\n    (8.893040, 51.943451),\n    (8.893250, 51.943569),\n    (8.894240, 51.944118),\n    (8.895010, 51.944599),\n    (8.895500, 51.944889),\n    (8.895880, 51.945110),\n    (8.896630, 51.945541),\n    (8.896750, 51.945610),\n    (8.897980, 51.946320),\n    (8.898020, 51.946350),\n    (8.898800, 51.946819),\n    (8.898860, 51.946812),\n    (8.898900, 51.946812),\n    (8.898960, 51.946819),\n    (8.898990, 51.946838),\n    (8.899020, 51.946869),\n    (8.899040, 51.946911),\n    (8.899020, 51.946960),\n    (8.898990, 51.946980),\n    (8.899210, 51.947109),\n    (8.899570, 51.947281),\n    (8.899980, 51.947399),\n    (8.900440, 51.947609),\n    (8.901160, 51.947491),\n    (8.903800, 51.946941),\n    (8.904860, 51.946690),\n    (8.905440, 51.946499),\n    (8.906870, 51.945911),\n    (8.906970, 51.945850),\n    (8.907760, 51.945450),\n    (8.908530, 51.945160),\n    (8.909690, 51.944851),\n    (8.912460, 51.944141),\n    (8.912650, 51.944431),\n    (8.912920, 51.944641),\n    (8.913320, 51.944752),\n    (8.913650, 51.944820),\n    (8.914890, 51.944939),\n    (8.916690, 51.945190),\n    (8.917900, 51.945450),\n    (8.919110, 51.945801),\n    (8.919560, 51.945961),\n    (8.920310, 51.946201),\n    (8.920630, 51.946320),\n    (8.921980, 51.946831),\n    (8.922580, 51.947121),\n    (8.922700, 51.947189),\n    (8.924140, 51.948002),\n    (8.925360, 51.948841),\n    (8.925910, 51.949299),\n    (8.926340, 51.949730),\n    (8.927230, 51.950790),\n    (8.927510, 51.951229),\n    (8.927610, 51.951370),\n    (8.928110, 51.951340),\n    (8.928780, 51.951530),\n    (8.929290, 51.952171),\n    (8.929440, 51.952888),\n    (8.931010, 51.954929),\n    (8.934300, 51.956890),\n    (8.935750, 51.956989),\n    (8.936330, 51.956989),\n    (8.937620, 51.956902),\n    (8.937900, 51.956871),\n    (8.938690, 51.956749),\n    (8.939140, 51.956680),\n    (8.940520, 51.956532),\n    (8.941660, 51.956501),\n    (8.942960, 51.956650),\n    (8.944280, 51.956909),\n    (8.945480, 51.957218),\n    (8.948040, 51.957970),\n    (8.948480, 51.958038),\n    (8.948690, 51.958069),\n    (8.949790, 51.958080),\n    (8.951740, 51.958000),\n    (8.952180, 51.958000),\n    (8.952260, 51.958000),\n    (8.954150, 51.958019),\n    (8.955560, 51.958111),\n    (8.956100, 51.958111),\n    (8.956180, 51.958149),\n    (8.957250, 51.958569),\n    (8.957880, 51.958889),\n    (8.958400, 51.959202),\n    (8.958940, 51.959461),\n    (8.960180, 51.959751),\n    (8.960860, 51.959862),\n    (8.960910, 51.959862),\n    (8.961630, 51.959831),\n    (8.961870, 51.959789),\n    (8.963140, 51.959431),\n    (8.963640, 51.959259),\n    (8.965080, 51.958691),\n    (8.965750, 51.958389),\n    (8.966970, 51.957741),\n    (8.968310, 51.957130),\n    (8.973130, 51.955120),\n    (8.973610, 51.954929),\n    (8.973760, 51.954929),\n    (8.973770, 51.954929),\n    (8.973900, 51.954979),\n    (8.974020, 51.955139),\n    (8.974100, 51.955601),\n    (8.974190, 51.955849),\n    (8.974270, 51.955921),\n    (8.974350, 51.955971),\n    (8.974540, 51.956020),\n    (8.974720, 51.956039),\n    (8.975070, 51.956020),\n    (8.975590, 51.956039),\n    (8.976130, 51.956108),\n    (8.978040, 51.956371),\n    (8.978660, 51.956409),\n    (8.980740, 51.956409),\n    (8.985680, 51.956402),\n    (8.988110, 51.956390),\n    (8.988790, 51.956379),\n    (8.989320, 51.956429),\n    (8.991520, 51.956638),\n    (8.993410, 51.956821),\n    (8.994130, 51.956951),\n    (8.995250, 51.957359),\n    (8.995550, 51.957420),\n    (8.995820, 51.957420),\n    (8.996480, 51.957272),\n    (8.996840, 51.957230),\n    (8.997340, 51.957249),\n    (8.997570, 51.957249),\n    (8.998020, 51.957279),\n    (8.998640, 51.957352),\n    (8.998810, 51.957359),\n    (8.999350, 51.957310),\n    (8.999670, 51.957241),\n    (8.999750, 51.957211),\n    (9.000040, 51.957088),\n    (9.000180, 51.956940),\n    (9.000270, 51.956680),\n    (9.000430, 51.956558),\n    (9.001530, 51.956390),\n    (9.001960, 51.956360),\n    (9.002410, 51.956379),\n    (9.003530, 51.956558),\n    (9.003950, 51.956692),\n    (9.004300, 51.956871),\n    (9.004880, 51.957390),\n    (9.005840, 51.958260),\n    (9.006710, 51.959049),\n    (9.008460, 51.960640),\n    (9.009380, 51.961460),\n    (9.009440, 51.961479),\n    (9.010470, 51.962250),\n    (9.011320, 51.962799),\n    (9.012460, 51.963421),\n    (9.012610, 51.963501),\n    (9.014000, 51.964169),\n    (9.015120, 51.964630),\n    (9.016080, 51.964970),\n    (9.016630, 51.965130),\n    (9.017260, 51.965328),\n    (9.018160, 51.965561),\n    (9.019040, 51.965759),\n    (9.020040, 51.965950),\n    (9.021020, 51.966099),\n    (9.022090, 51.966240),\n    (9.023410, 51.966358),\n    (9.024970, 51.966461),\n    (9.025740, 51.966511),\n    (9.026520, 51.966549),\n    (9.027220, 51.966629),\n    (9.028230, 51.966721),\n    (9.029300, 51.966831),\n    (9.029820, 51.966919),\n    (9.031090, 51.967121),\n    (9.031480, 51.967190),\n    (9.032360, 51.967361),\n    (9.033370, 51.967590),\n    (9.035860, 51.968239),\n    (9.039070, 51.969460),\n    (9.041180, 51.970558),\n    (9.041930, 51.971191),\n    (9.042370, 51.971691),\n    (9.042970, 51.972641),\n    (9.044110, 51.973431),\n    (9.044790, 51.973991),\n    (9.045420, 51.974602),\n    (9.045800, 51.974850),\n    (9.046270, 51.975010),\n    (9.046770, 51.975060),\n    (9.047290, 51.975029),\n    (9.048360, 51.974880),\n    (9.048890, 51.974838),\n    (9.049410, 51.974850),\n    (9.050440, 51.974972),\n    (9.050870, 51.975101),\n    (9.051650, 51.975498),\n    (9.051790, 51.975590),\n    (9.052150, 51.975842),\n    (9.055370, 51.978439),\n    (9.055730, 51.978691),\n    (9.055970, 51.978809),\n    (9.056370, 51.978920),\n    (9.056840, 51.978970),\n    (9.059960, 51.979099),\n    (9.060520, 51.979172),\n    (9.061720, 51.979420),\n    (9.063360, 51.979752),\n    (9.063940, 51.979820),\n    (9.065730, 51.979801),\n    (9.067220, 51.979820),\n    (9.067790, 51.979912),\n    (9.069170, 51.980251),\n    (9.069810, 51.980358),\n    (9.070590, 51.980499),\n    (9.073670, 51.980869),\n    (9.075070, 51.981041),\n    (9.076460, 51.981098),\n    (9.077910, 51.981159),\n    (9.081540, 51.981590),\n    (9.082270, 51.981670),\n    (9.083600, 51.981812),\n    (9.084020, 51.981892),\n    (9.084590, 51.982010),\n    (9.084940, 51.982121),\n    (9.085110, 51.982170),\n    (9.085280, 51.982300),\n    (9.085480, 51.982460),\n    (9.085580, 51.982658),\n    (9.085620, 51.983089),\n    (9.085530, 51.984020),\n    (9.085670, 51.984230),\n    (9.085970, 51.984539),\n    (9.086990, 51.985439),\n    (9.087250, 51.985641),\n    (9.088880, 51.986469),\n    (9.089490, 51.986980),\n    (9.090300, 51.987881),\n    (9.092440, 51.988960),\n    (9.093740, 51.989849),\n    (9.095540, 51.990501),\n    (9.096870, 51.990940),\n    (9.098910, 51.991020),\n    (9.100970, 51.991100),\n    (9.101210, 51.991070),\n    (9.101620, 51.991032),\n    (9.103660, 51.990650),\n    (9.104470, 51.990620),\n    (9.105130, 51.990822),\n    (9.105560, 51.991039),\n    (9.106610, 51.991699),\n    (9.107020, 51.991539),\n    (9.107440, 51.991371),\n    (9.107980, 51.991192),\n    (9.108270, 51.991112),\n    (9.108900, 51.990940),\n    (9.109160, 51.990879),\n    (9.109680, 51.990761),\n    (9.110180, 51.990669),\n    (9.110500, 51.990631),\n    (9.110640, 51.990631),\n    (9.111290, 51.990589),\n    (9.112420, 51.990589),\n    (9.113060, 51.990601),\n    (9.113760, 51.990601),\n    (9.114170, 51.990601),\n    (9.115000, 51.990608),\n    (9.115500, 51.990589),\n    (9.115940, 51.990540),\n    (9.116350, 51.990459),\n    (9.117180, 51.990261),\n    (9.117680, 51.990231),\n    (9.119810, 51.990330),\n    (9.120250, 51.990349),\n    (9.120350, 51.990349),\n    (9.123520, 51.990269),\n    (9.124480, 51.990238),\n    (9.124940, 51.990231),\n    (9.125700, 51.990150),\n    (9.126000, 51.990101),\n    (9.126410, 51.990028),\n    (9.127030, 51.989922),\n    (9.127630, 51.989910),\n    (9.128030, 51.989899),\n    (9.128680, 51.989891),\n    (9.129310, 51.989830),\n    (9.129990, 51.989700),\n    (9.132880, 51.989010),\n    (9.133670, 51.988861),\n    (9.134680, 51.988689),\n    (9.135670, 51.988579),\n    (9.136050, 51.988510),\n    (9.136290, 51.988461),\n    (9.136480, 51.988392),\n    (9.136660, 51.988319),\n    (9.136770, 51.988380),\n    (9.137040, 51.988571),\n    (9.137370, 51.988762),\n    (9.137890, 51.988998),\n    (9.138030, 51.989052),\n    (9.138560, 51.989239),\n    (9.139460, 51.989460),\n    (9.140160, 51.989559),\n    (9.141240, 51.989639),\n    (9.142510, 51.989719),\n    (9.143170, 51.989761),\n    (9.144410, 51.989841),\n    (9.145030, 51.989868),\n    (9.145630, 51.989910),\n    (9.146130, 51.989960),\n    (9.146870, 51.989990),\n    (9.148020, 51.990101),\n    (9.148920, 51.990200),\n    (9.149690, 51.990311),\n    (9.150280, 51.990410),\n    (9.151490, 51.990669),\n    (9.152190, 51.990799),\n    (9.153070, 51.990971),\n    (9.153530, 51.991058),\n    (9.154250, 51.991199),\n    (9.155020, 51.991360),\n    (9.155740, 51.991550),\n    (9.157820, 51.992229),\n    (9.158310, 51.992470),\n    (9.158730, 51.992729),\n    (9.159060, 51.992981),\n    (9.159500, 51.993290),\n    (9.160040, 51.993660),\n    (9.160540, 51.994011),\n    (9.161230, 51.994492),\n    (9.161740, 51.994888),\n    (9.162490, 51.995640),\n    (9.162760, 51.995899),\n    (9.163500, 51.996658),\n    (9.163800, 51.997009),\n    (9.164050, 51.997440),\n    (9.164360, 51.998009),\n    (9.164790, 51.998791),\n    (9.165070, 51.999290),\n    (9.165290, 51.999649),\n    (9.165500, 51.999931),\n    (9.165930, 52.000381),\n    (9.166540, 52.001030),\n    (9.166960, 52.001461),\n    (9.167190, 52.001690),\n    (9.167450, 52.001881),\n    (9.167880, 52.002121),\n    (9.169230, 52.002800),\n    (9.169480, 52.002918),\n    (9.169880, 52.003101),\n    (9.170390, 52.003281),\n    (9.170870, 52.003448),\n    (9.171710, 52.003719),\n    (9.172240, 52.003811),\n    (9.173350, 52.003990),\n    (9.174280, 52.004009),\n    (9.174620, 52.003990),\n    (9.175110, 52.003979),\n    (9.175670, 52.004040),\n    (9.176330, 52.004181),\n    (9.177450, 52.004559),\n    (9.178260, 52.004822),\n    (9.179220, 52.005119),\n    (9.179890, 52.005329),\n    (9.180650, 52.005638),\n    (9.181780, 52.006168),\n    (9.182810, 52.006630),\n    (9.183960, 52.007149),\n    (9.184940, 52.007599),\n    (9.185590, 52.007950),\n    (9.186330, 52.008430),\n    (9.188160, 52.009640),\n    (9.188990, 52.010170),\n    (9.189390, 52.010311),\n    (9.190770, 52.010750),\n    (9.191580, 52.010990),\n    (9.193010, 52.011421),\n    (9.193870, 52.011681),\n    (9.195920, 52.012310),\n    (9.196740, 52.012550),\n    (9.198020, 52.012951),\n    (9.198770, 52.013161),\n    (9.199620, 52.013329),\n    (9.200940, 52.013531),\n    (9.202110, 52.013721),\n    (9.203040, 52.013870),\n    (9.205250, 52.014210),\n    (9.207430, 52.014511),\n    (9.207950, 52.014530),\n    (9.208400, 52.014530),\n    (9.208640, 52.014500),\n    (9.209130, 52.014549),\n    (9.209500, 52.014660),\n    (9.210160, 52.014820),\n    (9.210600, 52.014870),\n    (9.211050, 52.014839),\n    (9.211750, 52.014729),\n    (9.211930, 52.014690),\n    (9.212330, 52.014599),\n    (9.212720, 52.014721),\n    (9.212960, 52.014839),\n    (9.213170, 52.014961),\n    (9.213390, 52.015091),\n    (9.213570, 52.015190),\n    (9.215030, 52.015991),\n    (9.216950, 52.017071),\n    (9.218230, 52.017811),\n    (9.219460, 52.018589),\n    (9.219710, 52.018780),\n    (9.219740, 52.018799),\n    (9.220990, 52.019779),\n    (9.221580, 52.020210),\n    (9.222400, 52.020870),\n    (9.223160, 52.021549),\n    (9.224500, 52.022861),\n    (9.224860, 52.023270),\n    (9.225280, 52.024261),\n    (9.225360, 52.024502),\n    (9.225440, 52.024712),\n    (9.225520, 52.024891),\n    (9.225780, 52.025131),\n    (9.226040, 52.025318),\n    (9.226650, 52.025681),\n    (9.227480, 52.026169),\n    (9.227560, 52.026211),\n    (9.228310, 52.026669),\n    (9.228800, 52.026920),\n    (9.228900, 52.027000),\n    (9.229280, 52.027290),\n    (9.229870, 52.027939),\n    (9.230280, 52.028191),\n    (9.230740, 52.028389),\n    (9.231730, 52.028801),\n    (9.232290, 52.029079),\n    (9.232800, 52.029339),\n    (9.233290, 52.029629),\n    (9.233810, 52.029888),\n    (9.234330, 52.030079),\n    (9.234580, 52.030128),\n    (9.234670, 52.030151),\n    (9.235700, 52.030312),\n    (9.236870, 52.030411),\n    (9.237450, 52.030449),\n    (9.238000, 52.030548),\n    (9.238540, 52.030720),\n    (9.238910, 52.030960),\n    (9.239010, 52.030991),\n    (9.241060, 52.032211),\n    (9.241880, 52.032669),\n    (9.242110, 52.032810),\n    (9.244670, 52.034229),\n    (9.245710, 52.034779),\n    (9.246680, 52.035309),\n    (9.246780, 52.035370),\n    (9.247730, 52.035992),\n    (9.247940, 52.036129),\n    (9.251320, 52.038380),\n    (9.252050, 52.038879),\n    (9.253550, 52.039902),\n    (9.254610, 52.040600),\n    (9.255150, 52.041000),\n    (9.255210, 52.041039),\n    (9.255840, 52.041500),\n    (9.256340, 52.041809),\n    (9.256530, 52.041931),\n    (9.257480, 52.042580),\n    (9.258250, 52.043072),\n    (9.258390, 52.043159),\n    (9.259220, 52.043690),\n    (9.259800, 52.044048),\n    (9.259980, 52.044270),\n    (9.260400, 52.044640),\n    (9.260670, 52.045052),\n    (9.261040, 52.045681),\n    (9.261300, 52.046162),\n    (9.261830, 52.046638),\n    (9.261960, 52.046799),\n    (9.262300, 52.047031),\n    (9.262550, 52.047180),\n    (9.262850, 52.047409),\n    (9.263920, 52.047939),\n    (9.264930, 52.048458),\n    (9.265070, 52.048550),\n    (9.266790, 52.049438),\n    (9.267000, 52.049549),\n    (9.267500, 52.049900),\n    (9.267780, 52.050159),\n    (9.268080, 52.050522),\n    (9.268360, 52.050812),\n    (9.268720, 52.050999),\n    (9.269420, 52.051540),\n    (9.269860, 52.051861),\n    (9.270770, 52.052330),\n    (9.271680, 52.052670),\n    (9.274810, 52.053719),\n    (9.276400, 52.054279),\n    (9.277820, 52.054871),\n    (9.278700, 52.055191),\n    (9.284200, 52.057549),\n    (9.284420, 52.057640),\n    (9.287080, 52.058788),\n    (9.288980, 52.059631),\n    (9.289740, 52.059940),\n    (9.290310, 52.060169),\n    (9.292290, 52.060909),\n    (9.294490, 52.061260),\n    (9.296530, 52.061501),\n    (9.297760, 52.061680),\n    (9.298360, 52.061790),\n    (9.298890, 52.061932),\n    (9.299390, 52.062050),\n    (9.300190, 52.062290),\n    (9.300960, 52.062592),\n    (9.302080, 52.063271),\n    (9.302480, 52.063591),\n    (9.303400, 52.064449),\n    (9.303490, 52.064621),\n    (9.303910, 52.065361),\n    (9.304040, 52.065632),\n    (9.304270, 52.066071),\n    (9.304480, 52.066509),\n    (9.304810, 52.066849),\n    (9.305210, 52.067150),\n    (9.305360, 52.067261),\n    (9.305470, 52.067341),\n    (9.305620, 52.067451),\n    (9.305710, 52.067509),\n    (9.305840, 52.067600),\n    (9.307340, 52.068760),\n    (9.308240, 52.069420),\n    (9.308410, 52.069530),\n    (9.309240, 52.070068),\n    (9.309440, 52.070171),\n    (9.309930, 52.070351),\n    (9.310470, 52.070549),\n    (9.311060, 52.070721),\n    (9.312150, 52.071030),\n    (9.312530, 52.071140),\n    (9.312620, 52.071171),\n    (9.313930, 52.071609),\n    (9.318700, 52.073158),\n    (9.325960, 52.075989),\n    (9.328320, 52.076908),\n    (9.329650, 52.077412),\n    (9.330400, 52.077709),\n    (9.331120, 52.077969),\n    (9.331360, 52.078079),\n    (9.332870, 52.078651),\n    (9.334440, 52.079269),\n    (9.335350, 52.079762),\n    (9.335620, 52.079910),\n    (9.336530, 52.080421),\n    (9.337750, 52.081188),\n    (9.343260, 52.084782),\n    (9.343390, 52.084850),\n    (9.343980, 52.085209),\n    (9.346470, 52.086811),\n    (9.347240, 52.087170),\n    (9.347770, 52.087440),\n    (9.348230, 52.087749),\n    (9.348810, 52.088211),\n    (9.349610, 52.088692),\n    (9.349850, 52.088829),\n    (9.350270, 52.089062),\n    (9.350650, 52.089340),\n    (9.350770, 52.089458),\n    (9.351040, 52.089729),\n    (9.351230, 52.089870),\n    (9.351340, 52.089981),\n    (9.351560, 52.090191),\n    (9.351770, 52.090340),\n    (9.351820, 52.090370),\n    (9.351930, 52.090439),\n    (9.352010, 52.090500),\n    (9.352070, 52.090561),\n    (9.352110, 52.090660),\n    (9.352010, 52.090790),\n    (9.351750, 52.091141),\n    (9.351690, 52.091339),\n    (9.351630, 52.091560),\n    (9.351690, 52.091770),\n    (9.352020, 52.092541),\n    (9.352140, 52.092930),\n    (9.352220, 52.093609),\n    (9.352310, 52.094769),\n    (9.352230, 52.095749),\n    (9.352190, 52.095970),\n    (9.352040, 52.096512),\n    (9.351850, 52.097019),\n    (9.351600, 52.097569),\n    (9.351190, 52.098301),\n    (9.350860, 52.098709),\n    (9.350780, 52.098801),\n    (9.350480, 52.099121),\n    (9.350260, 52.099331),\n    (9.350190, 52.099400),\n    (9.350070, 52.099522),\n    (9.349880, 52.099880),\n    (9.349280, 52.100639),\n    (9.349090, 52.100910),\n    (9.349050, 52.101139),\n    (9.349090, 52.101231),\n    (9.349160, 52.101280),\n    (9.349390, 52.101429),\n    (9.349740, 52.101471),\n    (9.350130, 52.101570),\n    (9.352110, 52.101589),\n    (9.352270, 52.101509),\n    (9.352690, 52.101501),\n    (9.352940, 52.101490),\n    (9.353280, 52.101440),\n    (9.353340, 52.101429),\n    (9.353410, 52.101410),\n    (9.353910, 52.101231),\n    (9.354300, 52.101101),\n    (9.354350, 52.101082),\n    (9.354740, 52.100979),\n    (9.355080, 52.100891),\n    (9.355540, 52.100811),\n    (9.355780, 52.100780),\n    (9.356000, 52.100761),\n    (9.356230, 52.100739),\n    (9.356470, 52.100731),\n    (9.356840, 52.100731),\n    (9.357230, 52.100719),\n    (9.357510, 52.100719),\n    (9.357830, 52.100739),\n    (9.358290, 52.100849),\n    (9.358670, 52.100990),\n    (9.359430, 52.101379),\n    (9.359960, 52.101761),\n    (9.360420, 52.102180),\n    (9.360490, 52.102261),\n    (9.360590, 52.102390),\n    (9.360680, 52.102520),\n    (9.360890, 52.102840),\n    (9.360950, 52.102940),\n    (9.361080, 52.103161),\n    (9.361160, 52.103340),\n    (9.361270, 52.103588),\n    (9.361350, 52.103779),\n    (9.361550, 52.103970),\n    (9.361600, 52.104019),\n    (9.361680, 52.104061),\n    (9.361840, 52.104111),\n    (9.362560, 52.104172),\n    (9.362620, 52.104172),\n    (9.362730, 52.104172),\n    (9.363240, 52.104172),\n    (9.364170, 52.104172),\n    (9.364620, 52.104172),\n    (9.365220, 52.104172),\n    (9.365270, 52.104172),\n    (9.365990, 52.104141),\n    (9.367500, 52.104069),\n    (9.368130, 52.104038),\n    (9.369640, 52.103951),\n    (9.369850, 52.103939),\n    (9.370170, 52.103920),\n    (9.370430, 52.103909),\n    (9.371680, 52.103840),\n    (9.372220, 52.103821),\n    (9.373130, 52.103779),\n    (9.373790, 52.103748),\n    (9.374530, 52.103722),\n    (9.374780, 52.103710),\n    (9.375970, 52.103619),\n    (9.376260, 52.103580),\n    (9.376670, 52.103561),\n    (9.376770, 52.103561),\n    (9.376860, 52.103569),\n    (9.377070, 52.103580),\n    (9.377330, 52.103470),\n    (9.377520, 52.103439),\n    (9.377590, 52.103401),\n    (9.377720, 52.103352),\n    (9.377820, 52.103279),\n    (9.377970, 52.103180),\n    (9.378040, 52.103119),\n    (9.378120, 52.102970),\n    (9.378160, 52.102871),\n    (9.378210, 52.102772),\n    (9.378240, 52.102699),\n    (9.378250, 52.102661),\n    (9.378330, 52.102470),\n    (9.378550, 52.102039),\n    (9.378580, 52.101990),\n    (9.378750, 52.101681),\n    (9.378830, 52.101582),\n    (9.379010, 52.101372),\n    (9.379140, 52.101379),\n    (9.379410, 52.101398),\n    (9.379690, 52.101452),\n    (9.380140, 52.101559),\n    (9.380460, 52.101650),\n    (9.381570, 52.101891),\n    (9.381920, 52.101971),\n    (9.383200, 52.102268),\n    (9.384070, 52.102451),\n    (9.385520, 52.102699),\n    (9.385750, 52.102741),\n    (9.385900, 52.102772),\n    (9.386480, 52.102852),\n    (9.387040, 52.102921),\n    (9.387250, 52.102909),\n    (9.387540, 52.102890),\n    (9.387860, 52.102829),\n    (9.388380, 52.102631),\n    (9.389180, 52.102180),\n    (9.389470, 52.102032),\n    (9.390400, 52.101490),\n    (9.390930, 52.101158),\n    (9.391130, 52.101051),\n    (9.391440, 52.100868),\n    (9.391980, 52.100540),\n    (9.392180, 52.100441),\n    (9.392410, 52.100349),\n    (9.392770, 52.100269),\n    (9.392980, 52.100250),\n    (9.393060, 52.100250),\n    (9.393250, 52.100262),\n    (9.393720, 52.100330),\n    (9.395060, 52.100609),\n    (9.396060, 52.100830),\n    (9.396460, 52.100899),\n    (9.396820, 52.100948),\n    (9.397100, 52.100948),\n    (9.397400, 52.100941),\n    (9.397720, 52.100922),\n    (9.398180, 52.100849),\n    (9.398670, 52.100780),\n    (9.399540, 52.100639),\n    (9.399910, 52.100590),\n    (9.400250, 52.100540),\n    (9.400540, 52.100521),\n    (9.401160, 52.100521),\n    (9.401830, 52.100540),\n    (9.401950, 52.100540),\n    (9.402030, 52.100540),\n    (9.402180, 52.100552),\n    (9.402250, 52.100552),\n    (9.402770, 52.100559),\n    (9.403190, 52.100540),\n    (9.403590, 52.100491),\n    (9.403820, 52.100471),\n    (9.404200, 52.100422),\n    (9.404600, 52.100391),\n    (9.405110, 52.100399),\n    (9.406030, 52.100422),\n    (9.406740, 52.100422),\n    (9.407160, 52.100399),\n    (9.407570, 52.100361),\n    (9.407940, 52.100319),\n    (9.408140, 52.100311),\n    (9.409830, 52.100159),\n    (9.410390, 52.100128),\n    (9.411290, 52.100140),\n    (9.412450, 52.100140),\n    (9.412750, 52.100151),\n    (9.413140, 52.100159),\n    (9.413560, 52.100201),\n    (9.414340, 52.100311),\n    (9.415510, 52.100460),\n    (9.416050, 52.100521),\n    (9.416930, 52.100651),\n    (9.417490, 52.100750),\n    (9.418290, 52.100929),\n    (9.420060, 52.101349),\n    (9.420540, 52.101452),\n    (9.421140, 52.101540),\n    (9.421770, 52.101631),\n    (9.422250, 52.101681),\n    (9.422750, 52.101719),\n    (9.423530, 52.101761),\n    (9.424440, 52.101768),\n    (9.425920, 52.101749),\n    (9.427500, 52.101711),\n    (9.428130, 52.101711),\n    (9.428760, 52.101719),\n    (9.429460, 52.101749),\n    (9.430110, 52.101799),\n    (9.430320, 52.101822),\n    (9.430540, 52.101841),\n    (9.430660, 52.101849),\n    (9.431100, 52.101910),\n    (9.431930, 52.102039),\n    (9.432760, 52.102211),\n    (9.433620, 52.102428),\n    (9.434210, 52.102612),\n    (9.435140, 52.102928),\n    (9.436810, 52.103642),\n    (9.439350, 52.104671),\n    (9.440780, 52.105099),\n    (9.443110, 52.105358),\n    (9.445260, 52.105339),\n    (9.447500, 52.105560),\n    (9.448080, 52.105740),\n    (9.449500, 52.106190),\n    (9.452430, 52.107288),\n    (9.453290, 52.107521),\n    (9.454020, 52.107658),\n    (9.454890, 52.107769),\n    (9.455360, 52.107811),\n    (9.455880, 52.107811),\n    (9.456510, 52.107830),\n    (9.458330, 52.107571),\n    (9.459790, 52.107368),\n    (9.460600, 52.107239),\n    (9.462310, 52.107128),\n    (9.464340, 52.107269),\n    (9.467670, 52.107700),\n    (9.469740, 52.107761),\n    (9.471840, 52.107479),\n    (9.473400, 52.107231),\n    (9.476390, 52.106659),\n    (9.478230, 52.106491),\n    (9.480070, 52.106560),\n    (9.480620, 52.106651),\n    (9.481020, 52.106720),\n    (9.482280, 52.107052),\n    (9.483450, 52.107521),\n    (9.484140, 52.107929),\n    (9.486540, 52.109810),\n    (9.488460, 52.111320),\n    (9.490280, 52.112000),\n    (9.493380, 52.112621),\n    (9.499270, 52.113701),\n    (9.502160, 52.114201),\n    (9.503020, 52.114349),\n    (9.505480, 52.114769),\n    (9.507090, 52.114948),\n    (9.507730, 52.114990),\n    (9.510220, 52.115181),\n    (9.512210, 52.115292),\n    (9.513940, 52.115551),\n    (9.515930, 52.115959),\n    (9.517330, 52.116390),\n    (9.518620, 52.116859),\n    (9.527090, 52.120281),\n    (9.530070, 52.121460),\n    (9.530930, 52.121738),\n    (9.531280, 52.121861),\n    (9.531880, 52.121979),\n    (9.532310, 52.122040),\n    (9.533620, 52.121899),\n    (9.534560, 52.121731),\n    (9.535160, 52.121521),\n    (9.535780, 52.121189),\n    (9.536470, 52.120831),\n    (9.537420, 52.120140),\n    (9.538710, 52.119041),\n    (9.538990, 52.118820),\n    (9.539630, 52.118320),\n    (9.540140, 52.118031),\n    (9.540770, 52.117920),\n    (9.541480, 52.117889),\n    (9.542100, 52.118000),\n    (9.542830, 52.118130),\n    (9.543560, 52.118252),\n    (9.544210, 52.118320),\n    (9.544880, 52.118382),\n    (9.545180, 52.118401),\n    (9.545380, 52.118320),\n    (9.545520, 52.118290),\n    (9.545990, 52.117962),\n    (9.546140, 52.117821),\n    (9.546500, 52.117538),\n    (9.546650, 52.117481),\n    (9.547230, 52.117310),\n    (9.547850, 52.117310),\n    (9.548310, 52.117310),\n    (9.549220, 52.117371),\n    (9.550030, 52.117611),\n    (9.550280, 52.117611),\n    (9.550440, 52.117611),\n    (9.550680, 52.117619),\n    (9.550920, 52.117630),\n    (9.551430, 52.117630),\n    (9.551760, 52.117619),\n    (9.552800, 52.117229),\n    (9.556490, 52.115829),\n    (9.557680, 52.115341),\n    (9.558520, 52.114922),\n    (9.559310, 52.114449),\n    (9.560550, 52.113621),\n    (9.561300, 52.113071),\n    (9.562090, 52.112560),\n    (9.562740, 52.112160),\n    (9.563520, 52.111778),\n    (9.564240, 52.111511),\n    (9.565020, 52.111271),\n    (9.566100, 52.111061),\n    (9.566790, 52.110909),\n    (9.567500, 52.110691),\n    (9.567860, 52.110561),\n    (9.568220, 52.110359),\n    (9.568580, 52.109859),\n    (9.568660, 52.109760),\n    (9.569150, 52.109131),\n    (9.569550, 52.108669),\n    (9.570250, 52.108120),\n    (9.570590, 52.107849),\n    (9.571350, 52.107090),\n    (9.572970, 52.106030),\n    (9.573960, 52.105480),\n    (9.574290, 52.105251),\n    (9.574850, 52.104839),\n    (9.575100, 52.104580),\n    (9.575380, 52.104321),\n    (9.575660, 52.104080),\n    (9.576560, 52.103611),\n    (9.577230, 52.103298),\n    (9.579310, 52.101830),\n    (9.580600, 52.100830),\n    (9.582080, 52.099400),\n    (9.582820, 52.098808),\n    (9.583580, 52.098301),\n    (9.584710, 52.097698),\n    (9.585950, 52.097111),\n    (9.587000, 52.096352),\n    (9.588790, 52.094769),\n    (9.592510, 52.092171),\n    (9.593340, 52.091469),\n    (9.594270, 52.090530),\n    (9.594860, 52.089760),\n    (9.595400, 52.088749),\n    (9.595830, 52.088230),\n    (9.597050, 52.087269),\n    (9.598500, 52.086472),\n    (9.599180, 52.086109),\n    (9.599340, 52.085991),\n    (9.600050, 52.085499),\n    (9.600650, 52.084999),\n    (9.600830, 52.084492),\n    (9.601010, 52.084278),\n    (9.601290, 52.084061),\n    (9.601850, 52.083900),\n    (9.602380, 52.083820),\n    (9.602820, 52.083832),\n    (9.604850, 52.083889),\n    (9.607300, 52.084042),\n    (9.607700, 52.084061),\n    (9.610950, 52.084141),\n    (9.613350, 52.084469),\n    (9.616770, 52.085072),\n    (9.621520, 52.086189),\n    (9.626500, 52.087292),\n    (9.628230, 52.087700),\n    (9.630760, 52.088440),\n    (9.631600, 52.088760),\n    (9.631920, 52.088860),\n    (9.632220, 52.088970),\n    (9.633510, 52.089481),\n    (9.634050, 52.089809),\n    (9.634800, 52.090382),\n    (9.635020, 52.090511),\n    (9.635210, 52.090561),\n    (9.635400, 52.090591),\n    (9.637670, 52.090618),\n    (9.637870, 52.090618),\n    (9.637970, 52.090630),\n    (9.639250, 52.090691),\n    (9.640370, 52.090889),\n    (9.641530, 52.091171),\n    (9.643040, 52.091549),\n    (9.644490, 52.091930),\n    (9.644680, 52.092010),\n    (9.645180, 52.092201),\n    (9.645930, 52.092449),\n    (9.646780, 52.092751),\n    (9.647390, 52.092899),\n    (9.648540, 52.093109),\n    (9.649180, 52.093208),\n    (9.649560, 52.093281),\n    (9.649760, 52.093330),\n    (9.650020, 52.093430),\n    (9.650160, 52.093540),\n    (9.650270, 52.093620),\n    (9.650550, 52.093842),\n    (9.650980, 52.093990),\n    (9.651740, 52.094090),\n    (9.652160, 52.094231),\n    (9.653030, 52.094791),\n    (9.654240, 52.095570),\n    (9.654740, 52.095928),\n    (9.656630, 52.097149),\n    (9.659270, 52.098869),\n    (9.659290, 52.098881),\n    (9.660510, 52.099480),\n    (9.663510, 52.100609),\n    (9.665370, 52.101452),\n    (9.666440, 52.102001),\n    (9.667510, 52.102440),\n    (9.668970, 52.102959),\n    (9.669690, 52.103230),\n    (9.670600, 52.103569),\n    (9.671650, 52.104080),\n    (9.672680, 52.104580),\n    (9.673320, 52.104820),\n    (9.674300, 52.105190),\n    (9.675080, 52.105530),\n    (9.678510, 52.107071),\n    (9.679590, 52.107590),\n    (9.680910, 52.108410),\n    (9.681770, 52.109268),\n    (9.682280, 52.109241),\n    (9.682540, 52.109280),\n    (9.684210, 52.110130),\n    (9.686740, 52.110931),\n    (9.688640, 52.111649),\n    (9.689830, 52.112209),\n    (9.690550, 52.112621),\n    (9.693010, 52.113861),\n    (9.693210, 52.114159),\n    (9.693830, 52.114719),\n    (9.694260, 52.115051),\n    (9.695090, 52.115051),\n    (9.695350, 52.115051),\n    (9.697560, 52.115070),\n    (9.698450, 52.115200),\n    (9.698980, 52.115421),\n    (9.699130, 52.115601),\n    (9.699370, 52.115841),\n    (9.699570, 52.115990),\n    (9.700620, 52.116249),\n    (9.701120, 52.116421),\n    (9.702660, 52.117168),\n    (9.703720, 52.117580),\n    (9.705080, 52.117970),\n    (9.708590, 52.118721),\n    (9.708980, 52.118801),\n    (9.709120, 52.119160),\n    (9.710380, 52.119141),\n    (9.711720, 52.119240),\n    (9.713990, 52.119598),\n    (9.715850, 52.119930),\n    (9.717220, 52.120239),\n    (9.719210, 52.120720),\n    (9.720200, 52.120899),\n    (9.722440, 52.121189),\n    (9.722560, 52.121208),\n    (9.722670, 52.121231),\n    (9.726220, 52.122002),\n    (9.728550, 52.122551),\n    (9.728790, 52.122608),\n    (9.731590, 52.123268),\n    (9.732880, 52.123379),\n    (9.734520, 52.123520),\n    (9.736270, 52.123600),\n    (9.737150, 52.123680),\n    (9.737600, 52.123760),\n    (9.738050, 52.123852),\n    (9.738330, 52.123920),\n    (9.738620, 52.124001),\n    (9.738920, 52.124130),\n    (9.739730, 52.124580),\n    (9.743160, 52.126190),\n    (9.746260, 52.128220),\n    (9.747150, 52.129299),\n    (9.748090, 52.130428),\n    (9.748360, 52.130981),\n    (9.748400, 52.131401),\n    (9.748530, 52.132462),\n    (9.748830, 52.134861),\n    (9.748930, 52.135109),\n    (9.748990, 52.135231),\n    (9.749130, 52.135460),\n    (9.749660, 52.135960),\n    (9.750320, 52.136398),\n    (9.752660, 52.137421),\n    (9.755910, 52.138870),\n    (9.758290, 52.141060),\n    (9.761700, 52.144211),\n    (9.762230, 52.144562),\n    (9.762300, 52.144600),\n    (9.762460, 52.144699),\n    (9.762630, 52.144810),\n    (9.763520, 52.145321),\n    (9.765480, 52.146469),\n    (9.767290, 52.147079),\n    (9.768110, 52.147289),\n    (9.767910, 52.147530),\n    (9.767790, 52.147781),\n    (9.767730, 52.147999),\n    (9.767730, 52.148209),\n    (9.767770, 52.148411),\n    (9.767870, 52.148602),\n    (9.767990, 52.148750),\n    (9.768060, 52.148941),\n    (9.768150, 52.149029),\n    (9.768340, 52.149059),\n    (9.768880, 52.148998),\n    (9.769040, 52.148960),\n    (9.769140, 52.148891),\n    (9.769220, 52.148800),\n    (9.769250, 52.148689),\n    (9.769320, 52.148640),\n    (9.769450, 52.148609),\n    (9.770180, 52.148651),\n    (9.770310, 52.148651),\n    (9.771160, 52.148750),\n    (9.772290, 52.148891),\n    (9.772930, 52.148930),\n    (9.773510, 52.148930),\n    (9.775340, 52.148670),\n    (9.777630, 52.148201),\n    (9.781770, 52.147739),\n    (9.783290, 52.147621),\n    (9.787960, 52.149891),\n    (9.791240, 52.151211),\n    (9.792300, 52.151630),\n    (9.792800, 52.151711),\n    (9.793240, 52.151680),\n    (9.793670, 52.151588),\n    (9.794920, 52.151260),\n    (9.795140, 52.151199),\n    (9.796090, 52.150990),\n    (9.796350, 52.150970),\n    (9.797150, 52.150990),\n    (9.797370, 52.151009),\n    (9.797780, 52.151089),\n    (9.800790, 52.151791),\n    (9.801040, 52.151859),\n    (9.801320, 52.151909),\n    (9.802260, 52.152130),\n    (9.803110, 52.152390),\n    (9.804140, 52.152748),\n    (9.806500, 52.153580),\n    (9.807570, 52.153919),\n    (9.808910, 52.154190),\n    (9.810200, 52.154339),\n    (9.812580, 52.154499),\n    (9.813050, 52.154541),\n    (9.813650, 52.154659),\n    (9.813800, 52.154701),\n    (9.814180, 52.154819),\n    (9.817120, 52.156151),\n    (9.817960, 52.156509),\n    (9.818800, 52.156738),\n    (9.819770, 52.156929),\n    (9.821170, 52.157040),\n    (9.825230, 52.156921),\n    (9.830120, 52.156719),\n    (9.830370, 52.156731),\n    (9.832150, 52.156830),\n    (9.834290, 52.157108),\n    (9.836860, 52.157440),\n    (9.837230, 52.157490),\n    (9.839890, 52.157841),\n    (9.840580, 52.157921),\n    (9.842350, 52.158272),\n    (9.846100, 52.159031),\n    (9.848960, 52.159618),\n    (9.850910, 52.159939),\n    (9.851850, 52.159981),\n    (9.853960, 52.160069),\n    (9.855800, 52.160019),\n    (9.856100, 52.160000),\n    (9.859130, 52.159962),\n    (9.863040, 52.159691),\n    (9.865840, 52.159370),\n    (9.866470, 52.159302),\n    (9.868950, 52.158951),\n    (9.871000, 52.158611),\n    (9.873590, 52.158279),\n    (9.878760, 52.158150),\n    (9.883940, 52.158661),\n    (9.889120, 52.159340),\n    (9.892180, 52.159512),\n    (9.895160, 52.159550),\n    (9.897760, 52.159519),\n    (9.898930, 52.159439),\n    (9.901990, 52.159111),\n    (9.904140, 52.158901),\n    (9.904320, 52.158890),\n    (9.905080, 52.158760),\n    (9.905970, 52.158501),\n    (9.906950, 52.158131),\n    (9.907420, 52.157890),\n    (9.908590, 52.157398),\n    (9.909650, 52.157089),\n    (9.911350, 52.156849),\n    (9.915390, 52.156929),\n    (9.915880, 52.156929),\n    (9.916710, 52.156910),\n    (9.918320, 52.156929),\n    (9.920270, 52.156879),\n    (9.921500, 52.156830),\n    (9.922770, 52.156700),\n    (9.923850, 52.156521),\n    (9.924650, 52.156311),\n    (9.925070, 52.156170),\n    (9.925600, 52.155899),\n    (9.926740, 52.155369),\n    (9.927650, 52.154869),\n    (9.928220, 52.154530),\n    (9.928980, 52.154190),\n    (9.929920, 52.153851),\n    (9.930810, 52.153641),\n    (9.931470, 52.153561),\n    (9.932340, 52.153511),\n    (9.933200, 52.153481),\n    (9.933680, 52.153469),\n    (9.934170, 52.153461),\n    (9.934850, 52.153511),\n    (9.935110, 52.153561),\n    (9.935410, 52.153622),\n    (9.935810, 52.153690),\n    (9.936290, 52.153782),\n    (9.936780, 52.153889),\n    (9.937000, 52.153950),\n    (9.937330, 52.154011),\n    (9.937540, 52.154060),\n    (9.938140, 52.154221),\n    (9.938880, 52.154400),\n    (9.940200, 52.154709),\n    (9.940820, 52.154789),\n    (9.941160, 52.154819),\n    (9.941780, 52.154800),\n    (9.942300, 52.154789),\n    (9.943200, 52.154770),\n    (9.943840, 52.154751),\n    (9.944530, 52.154720),\n    (9.944810, 52.154709),\n    (9.944950, 52.154701),\n    (9.945370, 52.154671),\n    (9.946350, 52.154640),\n    (9.947150, 52.154640),\n    (9.947430, 52.154671),\n    (9.947880, 52.154758),\n    (9.948230, 52.154850),\n    (9.948460, 52.154888),\n    (9.948580, 52.154919),\n    (9.948740, 52.154961),\n    (9.949000, 52.155048),\n    (9.949270, 52.155128),\n    (9.949900, 52.155338),\n    (9.950260, 52.155460),\n    (9.950580, 52.155560),\n    (9.951340, 52.155819),\n    (9.951940, 52.156021),\n    (9.952480, 52.156189),\n    (9.953570, 52.156528),\n    (9.954910, 52.156940),\n    (9.955590, 52.157188),\n    (9.956220, 52.157330),\n    (9.956660, 52.157421),\n    (9.957040, 52.157478),\n    (9.957500, 52.157539),\n    (9.958490, 52.157661),\n    (9.958650, 52.157681),\n    (9.959430, 52.157761),\n    (9.960580, 52.157909),\n    (9.962280, 52.158089),\n    (9.963510, 52.158211),\n    (9.963740, 52.158218),\n    (9.965700, 52.158371),\n    (9.967420, 52.158489),\n    (9.967900, 52.158501),\n    (9.968400, 52.158501),\n    (9.969320, 52.158489),\n    (9.970380, 52.158421),\n    (9.970740, 52.158390),\n    (9.971130, 52.158340),\n    (9.971350, 52.158230),\n    (9.971430, 52.158051),\n    (9.971560, 52.157909),\n    (9.971780, 52.157791),\n    (9.971950, 52.157730),\n    (9.972120, 52.157700),\n    (9.972320, 52.157681),\n    (9.972580, 52.157711),\n    (9.972840, 52.157799),\n    (9.972970, 52.157879),\n    (9.973100, 52.158001),\n    (9.973340, 52.158089),\n    (9.973540, 52.158119),\n    (9.974840, 52.158039),\n    (9.975550, 52.158031),\n    (9.976190, 52.158070),\n    (9.976830, 52.158119),\n    (9.977600, 52.158260),\n    (9.978540, 52.158508),\n    (9.980470, 52.159050),\n    (9.983470, 52.159870),\n    (9.984340, 52.160110),\n    (9.985340, 52.160412),\n    (9.986770, 52.160782),\n    (9.987150, 52.160851),\n    (9.988110, 52.161030),\n    (9.988750, 52.161129),\n    (9.989600, 52.161240),\n    (9.990610, 52.161331),\n    (9.991720, 52.161400),\n    (9.993100, 52.161419),\n    (9.993180, 52.161419),\n    (9.995980, 52.161419),\n    (9.997790, 52.161419),\n    (9.998010, 52.161419),\n    (9.998170, 52.161419),\n    (9.998890, 52.161419),\n    (10.005160, 52.161461),\n    (10.008090, 52.161461),\n    (10.009190, 52.161362),\n    (10.009650, 52.161301),\n    (10.010350, 52.161190),\n    (10.011360, 52.160980),\n    (10.011450, 52.160969),\n    (10.011960, 52.160870),\n    (10.012120, 52.160839),\n    (10.012800, 52.160721),\n    (10.013620, 52.160690),\n    (10.014520, 52.160648),\n    (10.015050, 52.160660),\n    (10.015320, 52.160671),\n    (10.015680, 52.160728),\n    (10.016040, 52.160839),\n    (10.016350, 52.160992),\n    (10.016400, 52.161011),\n    (10.016830, 52.161259),\n    (10.017430, 52.161598),\n    (10.017800, 52.161831),\n    (10.019610, 52.162849),\n    (10.020260, 52.163250),\n    (10.022070, 52.164322),\n    (10.024960, 52.165970),\n    (10.026340, 52.166679),\n    (10.026930, 52.166939),\n    (10.027590, 52.167240),\n    (10.028640, 52.167709),\n    (10.030410, 52.168491),\n    (10.031550, 52.168980),\n    (10.033190, 52.169731),\n    (10.033230, 52.169750),\n    (10.033320, 52.169788),\n    (10.033740, 52.169971),\n    (10.034460, 52.170319),\n    (10.034520, 52.170361),\n    (10.035100, 52.170719),\n    (10.035450, 52.170929),\n    (10.035720, 52.171131),\n    (10.036000, 52.171261),\n    (10.036530, 52.171421),\n    (10.037180, 52.171551),\n    (10.037500, 52.171619),\n    (10.038630, 52.171860),\n    (10.039890, 52.172180),\n    (10.040780, 52.172421),\n    (10.042100, 52.172810),\n    (10.043320, 52.173149),\n    (10.044020, 52.173359),\n    (10.045030, 52.173691),\n    (10.046060, 52.174042),\n    (10.047230, 52.174431),\n    (10.048620, 52.174850),\n    (10.049970, 52.175251),\n    (10.051160, 52.175610),\n    (10.052040, 52.175880),\n    (10.055750, 52.176979),\n    (10.058510, 52.177731),\n    (10.061100, 52.178410),\n    (10.065900, 52.179371),\n    (10.067440, 52.179729),\n    (10.068340, 52.180000),\n    (10.068990, 52.180111),\n    (10.069270, 52.180141),\n    (10.069500, 52.180191),\n    (10.069870, 52.180309),\n    (10.070500, 52.180550),\n    (10.071480, 52.180920),\n    (10.073240, 52.181702),\n    (10.074400, 52.182209),\n    (10.078630, 52.184021),\n    (10.079810, 52.184502),\n    (10.080640, 52.184799),\n    (10.081370, 52.184978),\n    (10.081480, 52.184990),\n    (10.082780, 52.185188),\n    (10.085290, 52.185410),\n    (10.085430, 52.185421),\n    (10.090880, 52.185890),\n    (10.093590, 52.186138),\n    (10.095170, 52.186279),\n    (10.097510, 52.186489),\n    (10.098590, 52.186691),\n    (10.099890, 52.187061),\n    (10.099990, 52.187099),\n    (10.100950, 52.187420),\n    (10.102080, 52.187679),\n    (10.103480, 52.187962),\n    (10.104440, 52.188171),\n    (10.104980, 52.188400),\n    (10.105220, 52.188519),\n    (10.105490, 52.188751),\n    (10.107500, 52.190319),\n    (10.107660, 52.190460),\n    (10.107700, 52.190529),\n    (10.109190, 52.191711),\n    (10.110350, 52.192638),\n    (10.110780, 52.192902),\n    (10.111150, 52.193161),\n    (10.111850, 52.193531),\n    (10.112890, 52.194019),\n    (10.114490, 52.194550),\n    (10.118380, 52.195690),\n    (10.119510, 52.196041),\n    (10.122500, 52.196991),\n    (10.123390, 52.197250),\n    (10.123870, 52.197399),\n    (10.125200, 52.197842),\n    (10.126410, 52.198200),\n    (10.127940, 52.198681),\n    (10.129380, 52.199108),\n    (10.131670, 52.199730),\n    (10.132000, 52.199829),\n    (10.134390, 52.200432),\n    (10.136350, 52.200901),\n    (10.137920, 52.201229),\n    (10.138930, 52.201321),\n    (10.140190, 52.201290),\n    (10.141220, 52.201160),\n    (10.141730, 52.201050),\n    (10.142850, 52.200722),\n    (10.143770, 52.200371),\n    (10.144910, 52.199970),\n    (10.145460, 52.199860),\n    (10.145940, 52.199760),\n    (10.146780, 52.199650),\n    (10.147320, 52.199669),\n    (10.148480, 52.199780),\n    (10.150120, 52.199909),\n    (10.151090, 52.199982),\n    (10.152710, 52.200100),\n    (10.154100, 52.200218),\n    (10.156120, 52.200378),\n    (10.157630, 52.200562),\n    (10.158790, 52.200760),\n    (10.159670, 52.200970),\n    (10.161660, 52.201679),\n    (10.161870, 52.201790),\n    (10.162300, 52.202011),\n    (10.163270, 52.202560),\n    (10.163810, 52.202888),\n    (10.164340, 52.203190),\n    (10.165310, 52.203709),\n    (10.166290, 52.204269),\n    (10.167920, 52.205181),\n    (10.169570, 52.206120),\n    (10.171180, 52.207150),\n    (10.172290, 52.207840),\n    (10.172750, 52.208172),\n    (10.173080, 52.208382),\n    (10.173620, 52.208660),\n    (10.174040, 52.208820),\n    (10.174600, 52.208961),\n    (10.174980, 52.209000),\n    (10.175190, 52.208988),\n    (10.175280, 52.208981),\n    (10.176090, 52.208939),\n    (10.177770, 52.208771),\n    (10.179020, 52.208691),\n    (10.179150, 52.208679),\n    (10.179380, 52.208672),\n    (10.180330, 52.208599),\n    (10.180570, 52.208591),\n    (10.180910, 52.208599),\n    (10.181150, 52.208630),\n    (10.181790, 52.208710),\n    (10.182580, 52.208839),\n    (10.183650, 52.209042),\n    (10.185270, 52.209351),\n    (10.185890, 52.209480),\n    (10.187530, 52.209808),\n    (10.187990, 52.210030),\n    (10.188380, 52.210331),\n    (10.188690, 52.210602),\n    (10.189100, 52.210930),\n    (10.189610, 52.211330),\n    (10.190040, 52.211601),\n    (10.190550, 52.211868),\n    (10.191320, 52.212231),\n    (10.192160, 52.212650),\n    (10.193490, 52.213249),\n    (10.194200, 52.213551),\n    (10.194910, 52.213821),\n    (10.195740, 52.214008),\n    (10.196280, 52.214119),\n    (10.197040, 52.214260),\n    (10.197810, 52.214359),\n    (10.201960, 52.214828),\n    (10.202300, 52.214870),\n    (10.203470, 52.215050),\n    (10.204990, 52.215279),\n    (10.205180, 52.215309),\n    (10.206290, 52.215569),\n    (10.206970, 52.215771),\n    (10.207100, 52.215809),\n    (10.210400, 52.216839),\n    (10.212420, 52.217468),\n    (10.213800, 52.217911),\n    (10.214360, 52.218079),\n    (10.214610, 52.218170),\n    (10.215370, 52.218529),\n    (10.215990, 52.218929),\n    (10.216030, 52.218971),\n    (10.216200, 52.219070),\n    (10.217370, 52.219711),\n    (10.217730, 52.219849),\n    (10.217960, 52.219940),\n    (10.218250, 52.220051),\n    (10.219500, 52.220501),\n    (10.220470, 52.220840),\n    (10.220610, 52.220890),\n    (10.221590, 52.221279),\n    (10.222160, 52.221470),\n    (10.222490, 52.221581),\n    (10.228360, 52.223679),\n    (10.232120, 52.225029),\n    (10.232770, 52.225269),\n    (10.233190, 52.225410),\n    (10.236340, 52.226589),\n    (10.237340, 52.226891),\n    (10.237770, 52.227001),\n    (10.238160, 52.227081),\n    (10.238450, 52.227100),\n    (10.239140, 52.227131),\n    (10.239270, 52.227131),\n    (10.240510, 52.227112),\n    (10.241460, 52.227131),\n    (10.243510, 52.227112),\n    (10.244870, 52.227242),\n    (10.247440, 52.227470),\n    (10.252320, 52.228649),\n    (10.252640, 52.228741),\n    (10.254890, 52.229359),\n    (10.266070, 52.232399),\n    (10.266650, 52.232559),\n    (10.269390, 52.233261),\n    (10.271580, 52.233990),\n    (10.273730, 52.234840),\n    (10.286100, 52.239361),\n    (10.290150, 52.240841),\n    (10.292990, 52.241890),\n    (10.294100, 52.242298),\n    (10.294780, 52.242550),\n    (10.297500, 52.243542),\n    (10.301470, 52.244980),\n    (10.302640, 52.245399),\n    (10.303930, 52.245869),\n    (10.304180, 52.245960),\n    (10.304820, 52.246231),\n    (10.305680, 52.246780),\n    (10.306320, 52.247299),\n    (10.306850, 52.247688),\n    (10.307430, 52.247978),\n    (10.309040, 52.248531),\n    (10.312200, 52.249630),\n    (10.313140, 52.249950),\n    (10.313820, 52.250271),\n    (10.314860, 52.250938),\n    (10.316620, 52.252048),\n    (10.319340, 52.253780),\n    (10.320280, 52.254349),\n    (10.320340, 52.254391),\n    (10.320530, 52.254509),\n    (10.321070, 52.254829),\n    (10.321630, 52.255001),\n    (10.322500, 52.255169),\n    (10.323160, 52.255291),\n    (10.324700, 52.255550),\n    (10.325310, 52.255501),\n    (10.326020, 52.255440),\n    (10.326790, 52.255600),\n    (10.327440, 52.255791),\n    (10.327610, 52.255878),\n    (10.328080, 52.256130),\n    (10.328580, 52.256359),\n    (10.329090, 52.256519),\n    (10.329530, 52.256569),\n    (10.329920, 52.256660),\n    (10.330140, 52.256882),\n    (10.330220, 52.257172),\n    (10.330280, 52.257679),\n    (10.330370, 52.257832),\n    (10.330570, 52.257961),\n    (10.330790, 52.258030),\n    (10.331450, 52.258011),\n    (10.333850, 52.257919),\n    (10.334390, 52.257881),\n    (10.336570, 52.257740),\n    (10.338500, 52.257610),\n    (10.338960, 52.257591),\n    (10.339300, 52.257561),\n    (10.339570, 52.257549),\n    (10.339920, 52.257530),\n    (10.340710, 52.257530),\n    (10.341260, 52.257530),\n    (10.342040, 52.257549),\n    (10.342730, 52.257591),\n    (10.343450, 52.257648),\n    (10.343650, 52.257629),\n    (10.343810, 52.257599),\n    (10.343990, 52.257549),\n    (10.344220, 52.257450),\n    (10.344260, 52.257420),\n    (10.344500, 52.257320),\n    (10.345110, 52.257191),\n    (10.347010, 52.257061),\n    (10.347070, 52.257061),\n    (10.348580, 52.256969),\n    (10.349970, 52.256920),\n    (10.351140, 52.257019),\n    (10.352880, 52.257320),\n    (10.354330, 52.257599),\n    (10.354390, 52.257599),\n    (10.354450, 52.257610),\n    (10.355950, 52.257870),\n    (10.356800, 52.258011),\n    (10.356900, 52.258030),\n    (10.357040, 52.258049),\n    (10.357100, 52.258060),\n    (10.357210, 52.258080),\n    (10.357730, 52.258171),\n    (10.357890, 52.258221),\n    (10.357970, 52.258259),\n    (10.358050, 52.258339),\n    (10.358180, 52.258430),\n    (10.358300, 52.258499),\n    (10.358460, 52.258572),\n    (10.358610, 52.258591),\n    (10.358720, 52.258579),\n    (10.358870, 52.258518),\n    (10.358950, 52.258450),\n    (10.358990, 52.258419),\n    (10.359010, 52.258400),\n    (10.359040, 52.258389),\n    (10.359060, 52.258400),\n    (10.361540, 52.258839),\n    (10.361690, 52.258869),\n    (10.361750, 52.258881),\n    (10.362440, 52.258999),\n    (10.364420, 52.259350),\n    (10.365410, 52.259541),\n    (10.365610, 52.259571),\n    (10.365660, 52.259579),\n    (10.365990, 52.259640),\n    (10.366060, 52.259651),\n    (10.366350, 52.259701),\n    (10.366500, 52.259731),\n    (10.367430, 52.259899),\n    (10.370090, 52.260368),\n    (10.370150, 52.260380),\n    (10.370540, 52.260460),\n    (10.370770, 52.260509),\n    (10.371020, 52.260559),\n    (10.371230, 52.260601),\n    (10.371690, 52.260700),\n    (10.372170, 52.260761),\n    (10.372210, 52.260769),\n    (10.372690, 52.260799),\n    (10.372790, 52.260799),\n    (10.372880, 52.260792),\n    (10.373050, 52.260780),\n    (10.373230, 52.260780),\n    (10.373310, 52.260780),\n    (10.373680, 52.260799),\n    (10.374150, 52.260899),\n    (10.374190, 52.260910),\n    (10.374720, 52.261089),\n    (10.374980, 52.261238),\n    (10.375130, 52.261330),\n    (10.375320, 52.261429),\n    (10.375620, 52.261532),\n    (10.375860, 52.261589),\n    (10.376250, 52.261631),\n    (10.376760, 52.261639),\n    (10.376970, 52.261639),\n    (10.377350, 52.261631),\n    (10.377450, 52.261620),\n    (10.377720, 52.261620),\n    (10.377910, 52.261600),\n    (10.378030, 52.261589),\n    (10.378210, 52.261581),\n    (10.378640, 52.261620),\n    (10.379280, 52.261730),\n    (10.379310, 52.261730),\n    (10.379690, 52.261768),\n    (10.380520, 52.261841),\n    (10.382160, 52.261890),\n    (10.383030, 52.261921),\n    (10.383210, 52.261940),\n    (10.383330, 52.261940),\n    (10.387520, 52.262058),\n    (10.388210, 52.262081),\n    (10.388500, 52.262131),\n    (10.388760, 52.262230),\n    (10.388920, 52.262299),\n    (10.389050, 52.262379),\n    (10.389140, 52.262428),\n    (10.389250, 52.262459),\n    (10.389410, 52.262470),\n    (10.389580, 52.262470),\n    (10.391140, 52.261990),\n    (10.391880, 52.261780),\n    (10.392000, 52.261742),\n    (10.392160, 52.261700),\n    (10.392410, 52.261631),\n    (10.392770, 52.261532),\n    (10.394220, 52.261040),\n    (10.395740, 52.260521),\n    (10.397560, 52.259899),\n    (10.398880, 52.259472),\n    (10.400450, 52.258949),\n    (10.401480, 52.258652),\n    (10.401520, 52.258640),\n    (10.401960, 52.258518),\n    (10.402840, 52.258270),\n    (10.404130, 52.257919),\n    (10.405100, 52.257648),\n    (10.406100, 52.257381),\n    (10.406620, 52.257240),\n    (10.407400, 52.257069),\n    (10.407580, 52.257038),\n    (10.408090, 52.256939),\n    (10.408750, 52.256908),\n    (10.409630, 52.256939),\n    (10.409730, 52.256950),\n    (10.410730, 52.257000),\n    (10.413280, 52.257092),\n    (10.413560, 52.257099),\n    (10.417180, 52.257240),\n    (10.420290, 52.257351),\n    (10.421030, 52.257381),\n    (10.424820, 52.257561),\n    (10.428660, 52.257710),\n    (10.429440, 52.257801),\n    (10.429970, 52.257851),\n    (10.434900, 52.258362),\n    (10.438180, 52.258411),\n    (10.438910, 52.258419),\n    (10.443590, 52.258511),\n    (10.444940, 52.258530),\n    (10.445700, 52.258560),\n    (10.445950, 52.258610),\n    (10.446460, 52.258720),\n    (10.449720, 52.259789),\n    (10.450540, 52.260059),\n    (10.451580, 52.260250),\n    (10.452470, 52.260422),\n    (10.452530, 52.260368),\n    (10.452900, 52.260151),\n    (10.453000, 52.260059),\n    (10.453030, 52.260010),\n    (10.453100, 52.259861),\n    (10.453210, 52.259621),\n    (10.453510, 52.259109),\n    (10.453630, 52.258991),\n    (10.453680, 52.258911),\n    (10.453760, 52.258789),\n    (10.453850, 52.258701),\n    (10.453990, 52.258652),\n    (10.454120, 52.258572),\n    (10.454630, 52.258659),\n    (10.454820, 52.258400),\n    (10.454880, 52.258320),\n    (10.455180, 52.257912),\n    (10.455240, 52.257839),\n    (10.455250, 52.257820),\n    (10.455590, 52.257420),\n    (10.455650, 52.257359),\n    (10.455660, 52.257339),\n    (10.455750, 52.257240),\n    (10.455790, 52.257221),\n    (10.455960, 52.257229),\n    (10.456580, 52.257278),\n    (10.456850, 52.257301),\n    (10.458370, 52.257408),\n    (10.459540, 52.257500),\n    (10.459640, 52.257511),\n    (10.461140, 52.257629),\n    (10.461260, 52.257641),\n    (10.464370, 52.257900),\n    (10.465300, 52.257980),\n    (10.466380, 52.258080),\n    (10.466860, 52.258121),\n    (10.469080, 52.258301),\n    (10.471310, 52.258492),\n    (10.472040, 52.258549),\n    (10.472700, 52.258610),\n    (10.473580, 52.258671),\n    (10.473960, 52.258709),\n    (10.474140, 52.258720),\n    (10.474270, 52.258732),\n    (10.475210, 52.258820),\n    (10.476190, 52.258911),\n    (10.476450, 52.258930),\n    (10.476820, 52.258961),\n    (10.477290, 52.259010),\n    (10.477840, 52.259071),\n    (10.478430, 52.259121),\n    (10.478590, 52.259140),\n    (10.479310, 52.259201),\n    (10.479860, 52.259251),\n    (10.480950, 52.259350),\n    (10.481250, 52.259380),\n    (10.481720, 52.259430),\n    (10.484480, 52.260132),\n    (10.485020, 52.260269),\n    (10.485320, 52.260330),\n    (10.486060, 52.260361),\n    (10.486560, 52.260380),\n    (10.487820, 52.260399),\n    (10.488120, 52.260410),\n    (10.488500, 52.260441),\n    (10.489730, 52.260460),\n    (10.491020, 52.260479),\n    (10.492290, 52.260509),\n    (10.493910, 52.260540),\n    (10.494650, 52.260551),\n    (10.496830, 52.260590),\n    (10.497610, 52.260601),\n    (10.498380, 52.260609),\n    (10.498590, 52.260620),\n    (10.498810, 52.260620),\n    (10.499050, 52.260651),\n    (10.499960, 52.260849),\n    (10.500270, 52.260860),\n    (10.500790, 52.260830),\n    (10.501580, 52.260738),\n    (10.502250, 52.260651),\n    (10.502700, 52.260609),\n    (10.502860, 52.260609),\n    (10.502930, 52.260609),\n    (10.502990, 52.260609),\n    (10.503120, 52.260620),\n    (10.503930, 52.260750),\n    (10.504410, 52.260830),\n    (10.504740, 52.260880),\n    (10.505510, 52.261009),\n    (10.505600, 52.261021),\n    (10.506550, 52.261181),\n    (10.508110, 52.261429),\n    (10.508240, 52.261429),\n    (10.508930, 52.261391),\n    (10.509100, 52.261379),\n    (10.509350, 52.261341),\n    (10.509430, 52.261330),\n    (10.509540, 52.261311),\n    (10.509960, 52.261250),\n    (10.510110, 52.261261),\n    (10.511250, 52.262299),\n    (10.511330, 52.262329),\n    (10.511470, 52.262371),\n    (10.511630, 52.262390),\n    (10.512020, 52.262371),\n    (10.513320, 52.262440),\n    (10.513360, 52.262451),\n    (10.513520, 52.262459),\n    (10.513940, 52.262489),\n    (10.514020, 52.262501),\n    (10.514200, 52.262520),\n    (10.514290, 52.262138),\n    (10.514290, 52.262112),\n    (10.514340, 52.261959),\n    (10.514440, 52.261581),\n    (10.515090, 52.260769),\n    (10.515300, 52.260490),\n    (10.515750, 52.259800),\n    (10.515960, 52.259460),\n    (10.516130, 52.259190),\n    (10.516300, 52.258961),\n    (10.516640, 52.258411),\n    (10.516720, 52.258301),\n    (10.516790, 52.258202),\n    (10.516850, 52.258141),\n    (10.516880, 52.258110),\n    (10.516920, 52.258091),\n    (10.516980, 52.258060),\n    (10.517040, 52.258041),\n    (10.517120, 52.258018),\n    (10.517180, 52.258018),\n    (10.517270, 52.258018),\n    (10.517320, 52.258030),\n    (10.517410, 52.258049),\n    (10.517600, 52.258091),\n    (10.517730, 52.258129),\n    (10.518290, 52.258270),\n    (10.518470, 52.258301),\n    (10.519580, 52.258419),\n    (10.519760, 52.258438),\n    (10.519860, 52.258450),\n    (10.519980, 52.258469),\n    (10.520170, 52.258492),\n    (10.520440, 52.258518),\n    (10.520630, 52.258530),\n    (10.520860, 52.258549),\n    (10.521030, 52.258572),\n    (10.521180, 52.258579),\n    (10.522020, 52.258629),\n    (10.522440, 52.258640),\n    (10.522710, 52.258629),\n    (10.522990, 52.258591),\n    (10.523130, 52.258572),\n    (10.524730, 52.258221),\n    (10.525330, 52.258148),\n    (10.525520, 52.258072),\n    (10.525680, 52.258011),\n    (10.526500, 52.257549),\n    (10.526820, 52.257381),\n    (10.527020, 52.257290),\n    (10.527480, 52.257221),\n    (10.527610, 52.257240),\n    (10.527730, 52.257301),\n    (10.527880, 52.257420),\n    (10.528080, 52.257839),\n    (10.529220, 52.258129),\n    (10.529370, 52.258148),\n    (10.529560, 52.258171),\n    (10.529650, 52.258179),\n    (10.529710, 52.258179),\n    (10.530140, 52.258221),\n    (10.530400, 52.258190),\n    (10.530770, 52.258160),\n    (10.531240, 52.258041),\n    (10.531540, 52.257900),\n    (10.531660, 52.257851),\n    (10.532340, 52.257431),\n    (10.533220, 52.256771),\n    (10.533440, 52.256779),\n    (10.533600, 52.256790),\n    (10.534190, 52.256760),\n    (10.535690, 52.256729),\n    (10.536180, 52.256729),\n    (10.537300, 52.256760),\n    (10.537850, 52.256771),\n    (10.537990, 52.256771),\n    (10.539140, 52.256760),\n    (10.540030, 52.256790),\n    (10.540190, 52.256790),\n    (10.540410, 52.256790),\n    (10.541160, 52.256809),\n    (10.541910, 52.256859),\n    (10.542710, 52.256901),\n    (10.543570, 52.256939),\n    (10.544370, 52.256969),\n    (10.544840, 52.257038),\n    (10.546020, 52.257500),\n    (10.546730, 52.257179),\n    (10.546950, 52.257080),\n    (10.548220, 52.256519),\n    (10.548370, 52.256451),\n    (10.548810, 52.256260),\n    (10.549010, 52.256180),\n    (10.549330, 52.256039),\n    (10.550260, 52.255661),\n    (10.551020, 52.255451),\n    (10.551270, 52.255402),\n    (10.551500, 52.255360),\n    (10.551550, 52.255360),\n    (10.551680, 52.255341),\n    (10.551790, 52.255329),\n    (10.552520, 52.255291),\n    (10.556050, 52.255100),\n    (10.556410, 52.255081),\n    (10.556800, 52.255058),\n    (10.557110, 52.255051),\n    (10.557990, 52.255001),\n    (10.559070, 52.254940),\n    (10.560430, 52.254871),\n    (10.560780, 52.254860),\n    (10.561360, 52.254829),\n    (10.561780, 52.254799),\n    (10.561900, 52.254799),\n    (10.561990, 52.254791),\n    (10.562380, 52.254768),\n    (10.562600, 52.254761),\n    (10.562740, 52.254742),\n    (10.563450, 52.254608),\n    (10.564310, 52.254372),\n    (10.567420, 52.253479),\n    (10.568170, 52.253311),\n    (10.568640, 52.253281),\n    (10.569330, 52.253239),\n    (10.569740, 52.253151),\n    (10.569960, 52.253090),\n    (10.571390, 52.252720),\n    (10.571700, 52.252621),\n    (10.571920, 52.252560),\n    (10.572190, 52.252510),\n    (10.572780, 52.252380),\n    (10.573470, 52.252300),\n    (10.574210, 52.252232),\n    (10.574850, 52.252171),\n    (10.575530, 52.252079),\n    (10.576460, 52.251930),\n    (10.577060, 52.251839),\n    (10.577780, 52.251770),\n    (10.578960, 52.251720),\n    (10.579870, 52.251690),\n    (10.580230, 52.251678),\n    (10.580640, 52.251671),\n    (10.580840, 52.251659),\n    (10.581550, 52.251621),\n    (10.582310, 52.251560),\n    (10.582820, 52.251511),\n    (10.583300, 52.251450),\n    (10.584120, 52.251331),\n    (10.584980, 52.251190),\n    (10.585890, 52.251019),\n    (10.586760, 52.250858),\n    (10.587100, 52.250801),\n    (10.587440, 52.250751),\n    (10.587840, 52.250710),\n    (10.588290, 52.250671),\n    (10.589410, 52.250629),\n    (10.589820, 52.250622),\n    (10.590710, 52.250599),\n    (10.591010, 52.250591),\n    (10.591330, 52.250599),\n    (10.591590, 52.250610),\n    (10.591800, 52.250629),\n    (10.592260, 52.250648),\n    (10.592600, 52.250660),\n    (10.592820, 52.250671),\n    (10.592980, 52.250660),\n    (10.596100, 52.250580),\n    (10.596370, 52.250580),\n    (10.597430, 52.250568),\n    (10.598660, 52.250549),\n    (10.599270, 52.250568),\n    (10.599630, 52.250580),\n    (10.599940, 52.250599),\n    (10.600290, 52.250622),\n    (10.600630, 52.250660),\n    (10.601310, 52.250729),\n    (10.601860, 52.250809),\n    (10.603320, 52.251091),\n    (10.605440, 52.251671),\n    (10.606260, 52.251919),\n    (10.608650, 52.252609),\n    (10.608770, 52.252651),\n    (10.609300, 52.252800),\n    (10.609620, 52.252899),\n    (10.609730, 52.252930),\n    (10.610040, 52.253040),\n    (10.610430, 52.253239),\n    (10.610630, 52.253410),\n    (10.611050, 52.253750),\n    (10.611490, 52.254040),\n    (10.611850, 52.254211),\n    (10.612300, 52.254318),\n    (10.612870, 52.254391),\n    (10.613420, 52.254391),\n    (10.614080, 52.254349),\n    (10.614390, 52.254330),\n    (10.616040, 52.254230),\n    (10.616430, 52.254211),\n    (10.617590, 52.254169),\n    (10.618070, 52.254131),\n    (10.618590, 52.254082),\n    (10.620830, 52.253880),\n    (10.622270, 52.253712),\n    (10.622400, 52.253700),\n    (10.622700, 52.253670),\n    (10.622940, 52.253639),\n    (10.624570, 52.253460),\n    (10.626910, 52.253269),\n    (10.629610, 52.253120),\n    (10.630600, 52.253040),\n    (10.631080, 52.252979),\n    (10.631660, 52.252869),\n    (10.632340, 52.252689),\n    (10.633140, 52.252419),\n    (10.634220, 52.252060),\n    (10.634700, 52.251930),\n    (10.635320, 52.251781),\n    (10.636120, 52.251652),\n    (10.637320, 52.251461),\n    (10.639420, 52.251148),\n    (10.640440, 52.250999),\n    (10.641400, 52.250858),\n    (10.642030, 52.250759),\n    (10.642800, 52.250641),\n    (10.644490, 52.250381),\n    (10.645280, 52.250259),\n    (10.645890, 52.250172),\n    (10.646320, 52.250111),\n    (10.646870, 52.250031),\n    (10.647170, 52.249981),\n    (10.647540, 52.249939),\n    (10.647900, 52.249901),\n    (10.648440, 52.249828),\n    (10.648880, 52.249771),\n    (10.649140, 52.249722),\n    (10.650510, 52.249371),\n    (10.651710, 52.249100),\n    (10.651970, 52.249031),\n    (10.652320, 52.248951),\n    (10.653410, 52.248711),\n    (10.654520, 52.248470),\n    (10.654990, 52.248371),\n    (10.655430, 52.248310),\n    (10.655870, 52.248249),\n    (10.656600, 52.248150),\n    (10.656840, 52.248119),\n    (10.658460, 52.247890),\n    (10.659050, 52.247791),\n    (10.659610, 52.247669),\n    (10.660670, 52.247410),\n    (10.661060, 52.247299),\n    (10.661570, 52.247181),\n    (10.661850, 52.247150),\n    (10.662160, 52.247150),\n    (10.662430, 52.247200),\n    (10.662630, 52.247280),\n    (10.662850, 52.247398),\n    (10.663820, 52.246899),\n    (10.664260, 52.246712),\n    (10.665310, 52.246311),\n    (10.666150, 52.246052),\n    (10.667150, 52.245800),\n    (10.668090, 52.245640),\n    (10.669100, 52.245571),\n    (10.670000, 52.245579),\n    (10.670710, 52.245640),\n    (10.672540, 52.245880),\n    (10.673920, 52.246010),\n    (10.674800, 52.246040),\n    (10.676790, 52.246059),\n    (10.681360, 52.246109),\n    (10.687790, 52.246220),\n    (10.690960, 52.246269),\n    (10.696410, 52.246349),\n    (10.697090, 52.246380),\n    (10.697560, 52.246449),\n    (10.698120, 52.246552),\n    (10.701680, 52.247299),\n    (10.701960, 52.247360),\n    (10.702890, 52.247509),\n    (10.703510, 52.247570),\n    (10.707870, 52.247910),\n    (10.710460, 52.248119),\n    (10.711630, 52.248192),\n    (10.712460, 52.248180),\n    (10.713470, 52.248150),\n    (10.714560, 52.248070),\n    (10.717750, 52.247662),\n    (10.719770, 52.247398),\n    (10.720460, 52.247360),\n    (10.721240, 52.247330),\n    (10.721990, 52.247341),\n    (10.722660, 52.247410),\n    (10.723380, 52.247501),\n    (10.723990, 52.247601),\n    (10.724600, 52.247711),\n    (10.724780, 52.247749),\n    (10.725170, 52.247822),\n    (10.725930, 52.247921),\n    (10.726470, 52.247971),\n    (10.728340, 52.248051),\n    (10.728710, 52.248100),\n    (10.729600, 52.248260),\n    (10.730710, 52.248589),\n    (10.731400, 52.248901),\n    (10.731880, 52.249180),\n    (10.732310, 52.249500),\n    (10.732860, 52.250080),\n    (10.733670, 52.251530),\n    (10.734110, 52.252110),\n    (10.734500, 52.252480),\n    (10.734790, 52.252762),\n    (10.735510, 52.253311),\n    (10.736580, 52.253880),\n    (10.737570, 52.254238),\n    (10.738380, 52.254509),\n    (10.741360, 52.255268),\n    (10.744810, 52.256168),\n    (10.746630, 52.256741),\n    (10.747950, 52.257160),\n    (10.748950, 52.257339),\n    (10.750180, 52.257431),\n    (10.750780, 52.257408),\n    (10.752070, 52.257351),\n    (10.752480, 52.257301),\n    (10.753210, 52.257179),\n    (10.754830, 52.256920),\n    (10.755520, 52.256851),\n    (10.756210, 52.256870),\n    (10.756870, 52.256989),\n    (10.757250, 52.257092),\n    (10.758190, 52.257462),\n    (10.759250, 52.257832),\n    (10.759680, 52.257931),\n    (10.760660, 52.258049),\n    (10.761250, 52.258091),\n    (10.766470, 52.257881),\n    (10.775620, 52.257610),\n    (10.779140, 52.257542),\n    (10.782370, 52.257568),\n    (10.785740, 52.257629),\n    (10.786510, 52.257641),\n    (10.789100, 52.257660),\n    (10.790770, 52.257530),\n    (10.792700, 52.257191),\n    (10.793280, 52.257069),\n    (10.797040, 52.256302),\n    (10.800580, 52.255711),\n    (10.801040, 52.255630),\n    (10.801880, 52.255409),\n    (10.802570, 52.255211),\n    (10.803100, 52.255070),\n    (10.803600, 52.254929),\n    (10.804580, 52.254650),\n    (10.805610, 52.254360),\n    (10.806280, 52.254181),\n    (10.807140, 52.253941),\n    (10.807740, 52.253769),\n    (10.808430, 52.253578),\n    (10.808410, 52.253220),\n    (10.809760, 52.250870),\n    (10.810410, 52.249660),\n    (10.810900, 52.248779),\n    (10.811510, 52.247662),\n    (10.811770, 52.247581),\n    (10.812940, 52.247391),\n    (10.813820, 52.247360),\n    (10.814670, 52.247410),\n    (10.815340, 52.247490),\n    (10.815450, 52.247398),\n    (10.815500, 52.247181),\n    (10.815550, 52.246941),\n    (10.815710, 52.246731),\n    (10.815940, 52.246540),\n    (10.816250, 52.246330),\n    (10.816440, 52.246201),\n    (10.816770, 52.245991),\n    (10.816910, 52.245892),\n    (10.817020, 52.245762),\n    (10.817150, 52.245209),\n    (10.817400, 52.245098),\n    (10.817840, 52.244980),\n    (10.818300, 52.244831),\n    (10.818390, 52.244659),\n    (10.818990, 52.244659),\n    (10.819960, 52.244499),\n    (10.820840, 52.244270),\n    (10.821070, 52.244190),\n    (10.821310, 52.244091),\n    (10.822250, 52.243839),\n    (10.822960, 52.243729),\n    (10.823680, 52.243690),\n    (10.824080, 52.243698),\n    (10.824410, 52.243759),\n    (10.824950, 52.243500),\n    (10.825370, 52.243370),\n    (10.826080, 52.243149),\n    (10.826950, 52.242828),\n    (10.827460, 52.242599),\n    (10.828080, 52.242279),\n    (10.828670, 52.241859),\n    (10.829190, 52.241348),\n    (10.829730, 52.240841),\n    (10.830280, 52.240479),\n    (10.830710, 52.240238),\n    (10.831290, 52.239971),\n    (10.831810, 52.239761),\n    (10.832320, 52.239540),\n    (10.832910, 52.239300),\n    (10.833560, 52.238972),\n    (10.834300, 52.238541),\n    (10.834610, 52.238338),\n    (10.834990, 52.238121),\n    (10.835270, 52.238022),\n    (10.835840, 52.237839),\n    (10.836990, 52.237492),\n    (10.837570, 52.237282),\n    (10.838070, 52.237019),\n    (10.838780, 52.236549),\n    (10.839300, 52.236149),\n    (10.840020, 52.235630),\n    (10.840870, 52.235149),\n    (10.841490, 52.234901),\n    (10.842130, 52.234711),\n    (10.842630, 52.234612),\n    (10.845100, 52.234280),\n    (10.845720, 52.234180),\n    (10.846570, 52.233971),\n    (10.847470, 52.233669),\n    (10.848420, 52.233269),\n    (10.850600, 52.232140),\n    (10.851690, 52.231720),\n    (10.852330, 52.231522),\n    (10.853010, 52.231331),\n    (10.853800, 52.231152),\n    (10.854710, 52.230991),\n    (10.855660, 52.230888),\n    (10.857250, 52.230839),\n    (10.858350, 52.230900),\n    (10.860050, 52.230980),\n    (10.861170, 52.230949),\n    (10.862580, 52.230801),\n    (10.863920, 52.230621),\n    (10.865240, 52.230450),\n    (10.868730, 52.230011),\n    (10.869540, 52.229900),\n    (10.870250, 52.229740),\n    (10.870910, 52.229580),\n    (10.872930, 52.229012),\n    (10.875630, 52.228249),\n    (10.879890, 52.227058),\n    (10.880560, 52.226898),\n    (10.881130, 52.226810),\n    (10.881840, 52.226742),\n    (10.882530, 52.226719),\n    (10.883090, 52.226749),\n    (10.883480, 52.226791),\n    (10.886530, 52.227322),\n    (10.887490, 52.227459),\n    (10.888350, 52.227539),\n    (10.889200, 52.227570),\n    (10.892610, 52.227520),\n    (10.894570, 52.227509),\n    (10.895680, 52.227581),\n    (10.897810, 52.227840),\n    (10.899730, 52.228088),\n    (10.900490, 52.228199),\n    (10.901070, 52.228222),\n    (10.901740, 52.228130),\n    (10.902650, 52.227940),\n    (10.903160, 52.227798),\n    (10.903800, 52.227600),\n    (10.904170, 52.227501),\n    (10.904650, 52.227360),\n    (10.904930, 52.227291),\n    (10.905070, 52.227261),\n    (10.905320, 52.227230),\n    (10.905430, 52.227211),\n    (10.906100, 52.227180),\n    (10.906520, 52.227200),\n    (10.907350, 52.227261),\n    (10.908700, 52.227291),\n    (10.909000, 52.227291),\n    (10.909210, 52.227261),\n    (10.909330, 52.227249),\n    (10.909430, 52.227219),\n    (10.909790, 52.227119),\n    (10.909960, 52.227051),\n    (10.910030, 52.227032),\n    (10.910090, 52.227001),\n    (10.910250, 52.226940),\n    (10.910640, 52.226780),\n    (10.911260, 52.226589),\n    (10.911750, 52.226479),\n    (10.912220, 52.226440),\n    (10.913550, 52.226440),\n    (10.914250, 52.226452),\n    (10.914660, 52.226460),\n    (10.919680, 52.226528),\n    (10.920230, 52.226509),\n    (10.920860, 52.226452),\n    (10.922210, 52.226250),\n    (10.924780, 52.225800),\n    (10.924890, 52.225780),\n    (10.929970, 52.224869),\n    (10.930930, 52.224731),\n    (10.931620, 52.224659),\n    (10.932630, 52.224602),\n    (10.933530, 52.224602),\n    (10.936470, 52.224640),\n    (10.937150, 52.224609),\n    (10.937800, 52.224548),\n    (10.939190, 52.224430),\n    (10.940500, 52.224300),\n    (10.941780, 52.224220),\n    (10.942590, 52.224201),\n    (10.943440, 52.224209),\n    (10.944350, 52.224258),\n    (10.944660, 52.224289),\n    (10.944990, 52.224319),\n    (10.949000, 52.224800),\n    (10.951500, 52.225109),\n    (10.952410, 52.225208),\n    (10.952840, 52.225250),\n    (10.953360, 52.225269),\n    (10.954700, 52.225269),\n    (10.957700, 52.225311),\n    (10.958130, 52.225330),\n    (10.958440, 52.225349),\n    (10.958770, 52.225399),\n    (10.959420, 52.225491),\n    (10.960880, 52.225811),\n    (10.961710, 52.225960),\n    (10.962840, 52.226139),\n    (10.964190, 52.226280),\n    (10.975070, 52.227501),\n    (10.978550, 52.227829),\n    (10.979330, 52.227890),\n    (10.980200, 52.227959),\n    (10.980500, 52.227989),\n    (10.987670, 52.228611),\n    (10.988090, 52.228649),\n    (10.989730, 52.228821),\n    (10.991070, 52.228951),\n    (10.991890, 52.229031),\n    (10.992520, 52.229050),\n    (10.992620, 52.229061),\n    (10.992920, 52.229080),\n    (10.993270, 52.229111),\n    (10.993900, 52.229160),\n    (10.994460, 52.229179),\n    (10.995200, 52.229191),\n    (10.995450, 52.229191),\n    (10.995470, 52.229191),\n    (10.995980, 52.229191),\n    (10.996420, 52.229191),\n    (10.997400, 52.229179),\n    (10.997780, 52.229191),\n    (10.998050, 52.229099),\n    (10.998720, 52.228851),\n    (10.999300, 52.228661),\n    (11.000870, 52.228119),\n    (11.001780, 52.227829),\n    (11.003680, 52.227261),\n    (11.003920, 52.227089),\n    (11.004090, 52.227001),\n    (11.004330, 52.226879),\n    (11.004910, 52.226540),\n    (11.005050, 52.226460),\n    (11.005150, 52.226391),\n    (11.006050, 52.225868),\n    (11.006240, 52.225761),\n    (11.006460, 52.225620),\n    (11.006570, 52.225552),\n    (11.007290, 52.225109),\n    (11.007480, 52.225010),\n    (11.007690, 52.224911),\n    (11.007950, 52.224819),\n    (11.008250, 52.224720),\n    (11.008900, 52.224541),\n    (11.009140, 52.224468),\n    (11.009290, 52.224430),\n    (11.009390, 52.224411),\n    (11.009770, 52.224350),\n    (11.009980, 52.224331),\n    (11.010040, 52.224319),\n    (11.010160, 52.224331),\n    (11.010400, 52.224339),\n    (11.011150, 52.224369),\n    (11.011340, 52.224361),\n    (11.011530, 52.224350),\n    (11.011730, 52.224312),\n    (11.011920, 52.224281),\n    (11.012500, 52.224159),\n    (11.012790, 52.224140),\n    (11.013020, 52.224152),\n    (11.013320, 52.224171),\n    (11.013400, 52.224190),\n    (11.013620, 52.224232),\n    (11.013920, 52.224331),\n    (11.014360, 52.224609),\n    (11.014800, 52.224930),\n    (11.014920, 52.224972),\n    (11.014980, 52.224979),\n    (11.015050, 52.224972),\n    (11.015140, 52.224930),\n    (11.015690, 52.224400),\n    (11.016710, 52.223412),\n    (11.016820, 52.223320),\n    (11.016870, 52.223282),\n    (11.016950, 52.223240),\n    (11.017060, 52.223190),\n    (11.017210, 52.223141),\n    (11.017570, 52.223030),\n    (11.018890, 52.222672),\n    (11.019880, 52.222382),\n    (11.020120, 52.222290),\n    (11.020320, 52.222229),\n    (11.020500, 52.222160),\n    (11.020670, 52.222080),\n    (11.021430, 52.221722),\n    (11.021540, 52.221661),\n    (11.022170, 52.221371),\n    (11.022690, 52.221130),\n    (11.022730, 52.221111),\n    (11.022830, 52.221069),\n    (11.023500, 52.220749),\n    (11.025770, 52.219719),\n    (11.026020, 52.219608),\n    (11.026860, 52.219231),\n    (11.028230, 52.218590),\n    (11.028500, 52.218460),\n    (11.028630, 52.218399),\n    (11.028680, 52.218369),\n    (11.028730, 52.218349),\n    (11.030050, 52.217781),\n    (11.030140, 52.217739),\n    (11.030220, 52.217709),\n    (11.030420, 52.217651),\n    (11.030620, 52.217602),\n    (11.030840, 52.217571),\n    (11.031060, 52.217541),\n    (11.031290, 52.217529),\n    (11.031500, 52.217548),\n    (11.031700, 52.217579),\n    (11.031890, 52.217609),\n    (11.032020, 52.217651),\n    (11.032270, 52.217709),\n    (11.032530, 52.217800),\n    (11.032940, 52.217918),\n    (11.032980, 52.217930),\n    (11.033290, 52.218021),\n    (11.033760, 52.218109),\n    (11.034100, 52.218140),\n    (11.034370, 52.218140),\n    (11.034700, 52.218121),\n    (11.034990, 52.218090),\n    (11.035040, 52.218090),\n    (11.035510, 52.217979),\n    (11.038080, 52.217400),\n    (11.040610, 52.216759),\n    (11.041350, 52.216572),\n    (11.041860, 52.216438),\n    (11.042180, 52.216301),\n    (11.042380, 52.216190),\n    (11.042530, 52.216061),\n    (11.042600, 52.215961),\n    (11.042650, 52.215870),\n    (11.042840, 52.215939),\n    (11.043260, 52.216099),\n    (11.043360, 52.216141),\n    (11.044120, 52.216370),\n    (11.044500, 52.216450),\n    (11.046010, 52.216740),\n    (11.048150, 52.217159),\n    (11.052340, 52.217960),\n    (11.052040, 52.218510),\n    (11.051700, 52.219109),\n    (11.053120, 52.219360),\n    (11.053380, 52.219398),\n    (11.053800, 52.219471),\n    (11.053890, 52.219501),\n    (11.053930, 52.219551),\n    (11.053970, 52.219662),\n    (11.054010, 52.219810),\n    (11.054000, 52.219940),\n    (11.054000, 52.220070),\n    (11.054150, 52.220058),\n    (11.054300, 52.220081),\n    (11.054440, 52.220112),\n    (11.054630, 52.220139),\n    (11.054770, 52.220150),\n    (11.054940, 52.220131),\n    (11.055560, 52.219940),\n    (11.056610, 52.219559),\n    (11.058190, 52.219021),\n    (11.059490, 52.218639),\n    (11.060970, 52.218262),\n    (11.064060, 52.217609),\n    (11.065950, 52.217312),\n    (11.069040, 52.217010),\n    (11.074340, 52.216759),\n    (11.080810, 52.216389),\n    (11.083960, 52.216160),\n    (11.086790, 52.215820),\n    (11.088480, 52.215549),\n    (11.089660, 52.215321),\n    (11.091000, 52.215000),\n    (11.092060, 52.214710),\n    (11.093080, 52.214390),\n    (11.093930, 52.214119),\n    (11.095410, 52.213581),\n    (11.097000, 52.213032),\n    (11.098420, 52.212528),\n    (11.099480, 52.212200),\n    (11.100290, 52.211971),\n    (11.101480, 52.211639),\n    (11.106470, 52.210320),\n    (11.107940, 52.209942),\n    (11.109450, 52.209572),\n    (11.110860, 52.209259),\n    (11.111960, 52.209019),\n    (11.113010, 52.208809),\n    (11.114370, 52.208530),\n    (11.116760, 52.208210),\n    (11.118510, 52.208031),\n    (11.131400, 52.207260),\n    (11.132010, 52.207218),\n    (11.133300, 52.207180),\n    (11.134460, 52.207150),\n    (11.134740, 52.207142),\n    (11.136630, 52.207142),\n    (11.138070, 52.207230),\n    (11.139100, 52.207298),\n    (11.147410, 52.208012),\n    (11.150500, 52.208260),\n    (11.152660, 52.208382),\n    (11.154280, 52.208431),\n    (11.156830, 52.208389),\n    (11.159520, 52.208260),\n    (11.161680, 52.208080),\n    (11.164340, 52.207748),\n    (11.166670, 52.207439),\n    (11.167560, 52.207272),\n    (11.178970, 52.204609),\n    (11.180410, 52.204288),\n    (11.183070, 52.203690),\n    (11.186970, 52.202950),\n    (11.190540, 52.202518),\n    (11.193090, 52.202309),\n    (11.201360, 52.201889),\n    (11.202060, 52.201839),\n    (11.226170, 52.200691),\n    (11.230640, 52.200531),\n    (11.234650, 52.200310),\n    (11.236250, 52.200180),\n    (11.238530, 52.199970),\n    (11.242180, 52.199551),\n    (11.243590, 52.199379),\n    (11.249320, 52.198601),\n    (11.250600, 52.198441),\n    (11.262890, 52.196831),\n    (11.263430, 52.196758),\n    (11.264250, 52.196640),\n    (11.268200, 52.196110),\n    (11.269560, 52.195919),\n    (11.270210, 52.195831),\n    (11.295260, 52.192509),\n    (11.295720, 52.192451),\n    (11.299800, 52.191921),\n    (11.301930, 52.191681),\n    (11.302420, 52.191631),\n    (11.316440, 52.190380),\n    (11.342720, 52.188000),\n    (11.350630, 52.187290),\n    (11.352270, 52.187160),\n    (11.353910, 52.187069),\n    (11.355560, 52.187012),\n    (11.357350, 52.186981),\n    (11.359240, 52.186951),\n    (11.363340, 52.186958),\n    (11.367130, 52.187000),\n    (11.385550, 52.187130),\n    (11.389680, 52.187180),\n    (11.389980, 52.187180),\n    (11.390580, 52.187191),\n    (11.390910, 52.187191),\n    (11.392750, 52.187210),\n    (11.411410, 52.187790),\n    (11.411850, 52.187809),\n    (11.417390, 52.187962),\n    (11.420940, 52.188080),\n    (11.421540, 52.188099),\n    (11.425000, 52.188190),\n    (11.428030, 52.188290),\n    (11.431270, 52.188339),\n    (11.433130, 52.188320),\n    (11.434950, 52.188210),\n    (11.436680, 52.188049),\n    (11.438530, 52.187771),\n    (11.440890, 52.187340),\n    (11.442460, 52.186981),\n    (11.445990, 52.186001),\n    (11.446220, 52.185928),\n    (11.446530, 52.185829),\n    (11.456380, 52.183041),\n    (11.461970, 52.181412),\n    (11.477810, 52.176910),\n    (11.480200, 52.176159),\n    (11.481380, 52.175781),\n    (11.482780, 52.175251),\n    (11.484910, 52.174389),\n    (11.487240, 52.173431),\n    (11.490690, 52.172020),\n    (11.495770, 52.169930),\n    (11.500370, 52.168049),\n    (11.501730, 52.167519),\n    (11.503070, 52.167030),\n    (11.504530, 52.166550),\n    (11.505440, 52.166279),\n    (11.506770, 52.165939),\n    (11.508040, 52.165649),\n    (11.509270, 52.165401),\n    (11.510260, 52.165230),\n    (11.511350, 52.165070),\n    (11.512380, 52.164940),\n    (11.513680, 52.164829),\n    (11.514800, 52.164749),\n    (11.515870, 52.164700),\n    (11.516040, 52.164700),\n    (11.516230, 52.164688),\n    (11.517430, 52.164680),\n    (11.518250, 52.164680),\n    (11.519800, 52.164742),\n    (11.521640, 52.164879),\n    (11.522490, 52.164982),\n    (11.523280, 52.165081),\n    (11.523650, 52.165131),\n    (11.525440, 52.165390),\n    (11.525690, 52.165421),\n    (11.532670, 52.166431),\n    (11.533920, 52.166611),\n    (11.538470, 52.167301),\n    (11.539150, 52.167400),\n    (11.552810, 52.169441),\n    (11.555750, 52.169910),\n    (11.557110, 52.170231),\n    (11.558390, 52.170559),\n    (11.561330, 52.171291),\n    (11.570870, 52.173820),\n    (11.578120, 52.175751),\n    (11.587460, 52.178219),\n    (11.603000, 52.182308),\n    (11.609190, 52.183929),\n    (11.613150, 52.185032),\n    (11.616280, 52.185822),\n    (11.619190, 52.186619),\n    (11.622380, 52.187531),\n    (11.623750, 52.188011),\n    (11.625240, 52.188580),\n    (11.625460, 52.188660),\n    (11.627330, 52.189590),\n    (11.629590, 52.190868),\n    (11.632370, 52.192478),\n    (11.645400, 52.199959),\n    (11.646130, 52.200359),\n    (11.646950, 52.200840),\n    (11.647290, 52.201038),\n    (11.660160, 52.208420),\n    (11.660650, 52.208679),\n    (11.661790, 52.209332),\n    (11.664840, 52.211090),\n    (11.665650, 52.211540),\n    (11.666070, 52.211788),\n    (11.669590, 52.213799),\n    (11.673390, 52.215851),\n    (11.674780, 52.216461),\n    (11.676330, 52.217049),\n    (11.677310, 52.217369),\n    (11.678770, 52.217838),\n    (11.680520, 52.218311),\n    (11.681510, 52.218540),\n    (11.684450, 52.219070),\n    (11.687590, 52.219440),\n    (11.689300, 52.219589),\n    (11.689450, 52.219601),\n    (11.689830, 52.219631),\n    (11.706810, 52.221169),\n    (11.712110, 52.221680),\n    (11.716320, 52.222061),\n    (11.731660, 52.223511),\n    (11.732720, 52.223629),\n    (11.733620, 52.223759),\n    (11.742580, 52.225361),\n    (11.751690, 52.226990),\n    (11.757410, 52.228050),\n    (11.759240, 52.228409),\n    (11.761170, 52.228741),\n    (11.763740, 52.229019),\n    (11.765710, 52.229149),\n    (11.767780, 52.229179),\n    (11.771920, 52.228970),\n    (11.790400, 52.227791),\n    (11.792140, 52.227680),\n    (11.793290, 52.227600),\n    (11.798040, 52.227291),\n    (11.807330, 52.226688),\n    (11.807930, 52.226650),\n    (11.817910, 52.226009),\n    (11.823130, 52.225689),\n    (11.825870, 52.225510),\n    (11.826620, 52.225471),\n    (11.828190, 52.225410),\n    (11.830020, 52.225430),\n    (11.831250, 52.225471),\n    (11.832670, 52.225559),\n    (11.833790, 52.225651),\n    (11.847730, 52.227291),\n    (11.849970, 52.227551),\n    (11.850620, 52.227631),\n    (11.888910, 52.232159),\n    (11.891810, 52.232510),\n    (11.892760, 52.232639),\n    (11.893580, 52.232731),\n    (11.896580, 52.233051),\n    (11.899950, 52.233360),\n    (11.902740, 52.233601),\n    (11.905310, 52.233768),\n    (11.907980, 52.233879),\n    (11.924290, 52.234348),\n    (11.940530, 52.234779),\n    (11.957140, 52.235249),\n    (11.963760, 52.235409),\n    (11.971190, 52.235600),\n    (11.977290, 52.235748),\n    (11.978940, 52.235790),\n    (11.980510, 52.235771),\n    (11.982490, 52.235699),\n    (11.988120, 52.235432),\n    (11.996990, 52.235081),\n    (12.014010, 52.234341),\n    (12.027730, 52.233761),\n    (12.034740, 52.233421),\n    (12.042130, 52.233101),\n    (12.053010, 52.232632),\n    (12.054200, 52.232609),\n    (12.055410, 52.232620),\n    (12.056750, 52.232670),\n    (12.058700, 52.232841),\n    (12.060020, 52.232960),\n    (12.061130, 52.233101),\n    (12.063840, 52.233459),\n    (12.065480, 52.233681),\n    (12.066100, 52.233768),\n    (12.139940, 52.243149),\n    (12.145010, 52.243790),\n    (12.190650, 52.249649),\n    (12.210380, 52.252121),\n    (12.212640, 52.252350),\n    (12.214300, 52.252441),\n    (12.216910, 52.252491),\n    (12.219900, 52.252319),\n    (12.225030, 52.251801),\n    (12.225720, 52.251740),\n    (12.256650, 52.249069),\n    (12.261740, 52.248631),\n    (12.266100, 52.248280),\n    (12.282260, 52.246990),\n    (12.285430, 52.246780),\n    (12.288500, 52.246658),\n    (12.291590, 52.246750),\n    (12.293490, 52.246891),\n    (12.295680, 52.247169),\n    (12.298310, 52.247650),\n    (12.301450, 52.248470),\n    (12.302460, 52.248791),\n    (12.303680, 52.249241),\n    (12.304370, 52.249500),\n    (12.305230, 52.249821),\n    (12.313510, 52.253349),\n    (12.314190, 52.253639),\n    (12.336280, 52.262920),\n    (12.338910, 52.263882),\n    (12.341070, 52.264481),\n    (12.343050, 52.264950),\n    (12.345230, 52.265339),\n    (12.362520, 52.267719),\n    (12.431900, 52.277241),\n    (12.434010, 52.277550),\n    (12.436580, 52.278061),\n    (12.438510, 52.278561),\n    (12.440700, 52.279259),\n    (12.442440, 52.279900),\n    (12.443860, 52.280529),\n    (12.445220, 52.281189),\n    (12.446400, 52.281849),\n    (12.455230, 52.287270),\n    (12.458280, 52.289360),\n    (12.460310, 52.290829),\n    (12.462350, 52.292488),\n    (12.465950, 52.295609),\n    (12.470670, 52.299759),\n    (12.476090, 52.304459),\n    (12.479050, 52.307030),\n    (12.482170, 52.309750),\n    (12.485250, 52.312519),\n    (12.487820, 52.314991),\n    (12.490880, 52.318409),\n    (12.495110, 52.323139),\n    (12.498370, 52.326832),\n    (12.501480, 52.330280),\n    (12.504580, 52.333721),\n    (12.505860, 52.335201),\n    (12.506450, 52.335838),\n    (12.507230, 52.336571),\n    (12.508400, 52.337528),\n    (12.509530, 52.338360),\n    (12.510550, 52.338982),\n    (12.510970, 52.339230),\n    (12.512640, 52.340118),\n    (12.513260, 52.340401),\n    (12.514130, 52.340809),\n    (12.516030, 52.341591),\n    (12.519680, 52.342892),\n    (12.523590, 52.344269),\n    (12.533890, 52.347919),\n    (12.536660, 52.348782),\n    (12.539220, 52.349419),\n    (12.540550, 52.349751),\n    (12.540900, 52.349819),\n    (12.545170, 52.350552),\n    (12.547970, 52.350880),\n    (12.550270, 52.351059),\n    (12.552950, 52.351181),\n    (12.555190, 52.351189),\n    (12.558470, 52.351158),\n    (12.564220, 52.351070),\n    (12.576610, 52.350922),\n    (12.593040, 52.350681),\n    (12.595990, 52.350632),\n    (12.597170, 52.350590),\n    (12.598600, 52.350498),\n    (12.599810, 52.350410),\n    (12.601710, 52.350182),\n    (12.603670, 52.349911),\n    (12.605070, 52.349659),\n    (12.606440, 52.349380),\n    (12.608030, 52.348999),\n    (12.611330, 52.348122),\n    (12.622960, 52.344818),\n    (12.623840, 52.344570),\n    (12.624460, 52.344391),\n    (12.627790, 52.343460),\n    (12.629730, 52.342911),\n    (12.630380, 52.342720),\n    (12.642090, 52.339420),\n    (12.642970, 52.339191),\n    (12.647150, 52.338009),\n    (12.648890, 52.337540),\n    (12.652240, 52.336620),\n    (12.653700, 52.336250),\n    (12.655360, 52.335899),\n    (12.656730, 52.335670),\n    (12.658540, 52.335419),\n    (12.659740, 52.335300),\n    (12.660930, 52.335209),\n    (12.662180, 52.335152),\n    (12.663090, 52.335121),\n    (12.664030, 52.335129),\n    (12.665500, 52.335171),\n    (12.667210, 52.335270),\n    (12.668830, 52.335411),\n    (12.681370, 52.336739),\n    (12.682070, 52.336811),\n    (12.688020, 52.337440),\n    (12.688730, 52.337521),\n    (12.694720, 52.338161),\n    (12.698200, 52.338520),\n    (12.699360, 52.338631),\n    (12.700870, 52.338799),\n    (12.703560, 52.339081),\n    (12.709730, 52.339729),\n    (12.711740, 52.339951),\n    (12.713220, 52.340092),\n    (12.714300, 52.340160),\n    (12.715550, 52.340210),\n    (12.716970, 52.340221),\n    (12.718340, 52.340179),\n    (12.719680, 52.340111),\n    (12.720690, 52.340050),\n    (12.721430, 52.340000),\n    (12.723750, 52.339859),\n    (12.725330, 52.339790),\n    (12.726110, 52.339771),\n    (12.728040, 52.339729),\n    (12.731750, 52.339642),\n    (12.734090, 52.339588),\n    (12.734990, 52.339611),\n    (12.736280, 52.339661),\n    (12.737440, 52.339729),\n    (12.751660, 52.340691),\n    (12.757700, 52.341099),\n    (12.758480, 52.341141),\n    (12.759660, 52.341209),\n    (12.761340, 52.341270),\n    (12.762910, 52.341259),\n    (12.764640, 52.341171),\n    (12.766080, 52.341049),\n    (12.775800, 52.340149),\n    (12.786890, 52.339111),\n    (12.789910, 52.338871),\n    (12.797160, 52.338409),\n    (12.798920, 52.338299),\n    (12.804110, 52.338009),\n    (12.805840, 52.337910),\n    (12.806810, 52.337830),\n    (12.807680, 52.337711),\n    (12.808710, 52.337509),\n    (12.809700, 52.337280),\n    (12.810700, 52.336960),\n    (12.811940, 52.336460),\n    (12.812680, 52.336109),\n    (12.813380, 52.335690),\n    (12.814050, 52.335190),\n    (12.814260, 52.335030),\n    (12.814470, 52.334839),\n    (12.815130, 52.334141),\n    (12.815610, 52.333599),\n    (12.816120, 52.332981),\n    (12.816730, 52.332359),\n    (12.817230, 52.331921),\n    (12.817940, 52.331402),\n    (12.818690, 52.330929),\n    (12.819610, 52.330479),\n    (12.820400, 52.330170),\n    (12.821240, 52.329880),\n    (12.824390, 52.328949),\n    (12.828370, 52.327759),\n    (12.838430, 52.324871),\n    (12.842380, 52.323738),\n    (12.845870, 52.322739),\n    (12.852710, 52.320759),\n    (12.854590, 52.320202),\n    (12.855640, 52.319859),\n    (12.856490, 52.319580),\n    (12.857380, 52.319260),\n    (12.858520, 52.318802),\n    (12.859410, 52.318409),\n    (12.861300, 52.317501),\n    (12.864130, 52.316090),\n    (12.869840, 52.313278),\n    (12.874000, 52.311230),\n    (12.875580, 52.310440),\n    (12.875820, 52.310322),\n    (12.877530, 52.309509),\n    (12.882600, 52.306961),\n    (12.885130, 52.305679),\n    (12.900260, 52.298168),\n    (12.901990, 52.297329),\n    (12.903640, 52.296490),\n    (12.905730, 52.295471),\n    (12.911700, 52.292488),\n    (12.913530, 52.291592),\n    (12.913940, 52.291409),\n    (12.914830, 52.291069),\n    (12.915400, 52.290920),\n    (12.915930, 52.290779),\n    (12.916740, 52.290630),\n    (12.917690, 52.290520),\n    (12.918310, 52.290482),\n    (12.918790, 52.290451),\n    (12.919240, 52.290451),\n    (12.919920, 52.290482),\n    (12.920990, 52.290581),\n    (12.921830, 52.290749),\n    (12.922740, 52.290970),\n    (12.923710, 52.291271),\n    (12.925080, 52.291809),\n    (12.925990, 52.292110),\n    (12.927430, 52.292511),\n    (12.929490, 52.292961),\n    (12.952280, 52.298199),\n    (12.957070, 52.299309),\n    (12.968360, 52.301849),\n    (12.971160, 52.302490),\n    (12.972770, 52.302849),\n    (12.973450, 52.303020),\n    (12.974100, 52.303169),\n    (12.975030, 52.303341),\n    (12.975950, 52.303471),\n    (12.976580, 52.303539),\n    (12.977330, 52.303600),\n    (12.978170, 52.303638),\n    (13.008040, 52.303379),\n    (13.008660, 52.303322),\n    (13.009480, 52.303280),\n    (13.010430, 52.303249),\n    (13.010930, 52.303219),\n    (13.011450, 52.303162),\n    (13.012040, 52.303059),\n    (13.013970, 52.302910),\n    (13.014370, 52.302849),\n    (13.014660, 52.302799),\n    (13.015060, 52.302719),\n    (13.015580, 52.302582),\n    (13.015720, 52.302540),\n    (13.016150, 52.302441),\n    (13.016210, 52.302422),\n    (13.017660, 52.302010),\n    (13.017930, 52.301929),\n    (13.018020, 52.301910),\n    (13.018180, 52.301880),\n    (13.018420, 52.301861),\n    (13.018670, 52.301819),\n    (13.019480, 52.301571),\n    (13.019910, 52.301540),\n    (13.024850, 52.300140),\n    (13.025320, 52.299999),\n    (13.025890, 52.299839),\n    (13.027300, 52.299450),\n    (13.028280, 52.299179),\n    (13.029000, 52.298981),\n    (13.029480, 52.298851),\n    (13.030070, 52.298691),\n    (13.030510, 52.298599),\n    (13.031000, 52.298489),\n    (13.031500, 52.298409),\n    (13.031910, 52.298351),\n    (13.032350, 52.298302),\n    (13.032750, 52.298260),\n    (13.033160, 52.298229),\n    (13.033570, 52.298222),\n    (13.034020, 52.298210),\n    (13.034480, 52.298210),\n    (13.034770, 52.298210),\n    (13.035350, 52.298229),\n    (13.035790, 52.298248),\n    (13.036390, 52.298309),\n    (13.036890, 52.298370),\n    (13.037500, 52.298470),\n    (13.038050, 52.298580),\n    (13.038600, 52.298691),\n    (13.039300, 52.298889),\n    (13.039770, 52.299019),\n    (13.040380, 52.299240),\n    (13.042630, 52.300060),\n    (13.043380, 52.300331),\n    (13.043860, 52.300480),\n    (13.044410, 52.300621),\n    (13.044910, 52.300739),\n    (13.045350, 52.300819),\n    (13.045860, 52.300911),\n    (13.046340, 52.300980),\n    (13.046860, 52.301041),\n    (13.047350, 52.301090),\n    (13.047840, 52.301121),\n    (13.048340, 52.301140),\n    (13.048960, 52.301140),\n    (13.053110, 52.300999),\n    (13.061630, 52.300701),\n    (13.062230, 52.300671),\n    (13.067090, 52.300499),\n    (13.077720, 52.300159),\n    (13.079520, 52.300110),\n    (13.081230, 52.300049),\n    (13.082190, 52.300030),\n    (13.082930, 52.300060),\n    (13.083620, 52.300091),\n    (13.084300, 52.300140),\n    (13.085200, 52.300228),\n    (13.085820, 52.300331),\n    (13.086960, 52.300541),\n    (13.095170, 52.302139),\n    (13.095260, 52.302139),\n    (13.095850, 52.302261),\n    (13.097340, 52.302559),\n    (13.097990, 52.302670),\n    (13.098570, 52.302750),\n    (13.099330, 52.302830),\n    (13.099790, 52.302860),\n    (13.100390, 52.302898),\n    (13.100910, 52.302921),\n    (13.101390, 52.302929),\n    (13.101960, 52.302921),\n    (13.103990, 52.302879),\n    (13.112850, 52.302631),\n    (13.116350, 52.302570),\n    (13.117120, 52.302540),\n    (13.123870, 52.302391),\n    (13.125530, 52.302311),\n    (13.141690, 52.301029),\n    (13.142490, 52.300968),\n    (13.143980, 52.300850),\n    (13.144470, 52.300831),\n    (13.144880, 52.300812),\n    (13.145390, 52.300812),\n    (13.145920, 52.300800),\n    (13.153460, 52.300850),\n    (13.155580, 52.300819),\n    (13.156120, 52.300800),\n    (13.156620, 52.300781),\n    (13.157140, 52.300739),\n    (13.164180, 52.300209),\n    (13.175240, 52.299351),\n    (13.180640, 52.298931),\n    (13.180970, 52.298920),\n    (13.181420, 52.298908),\n    (13.182100, 52.298908),\n    (13.182570, 52.298920),\n    (13.183010, 52.298931),\n    (13.183490, 52.298962),\n    (13.183910, 52.299000),\n    (13.184310, 52.299042),\n    (13.184750, 52.299091),\n    (13.185190, 52.299149),\n    (13.185690, 52.299221),\n    (13.186080, 52.299301),\n    (13.186460, 52.299370),\n    (13.186780, 52.299431),\n    (13.187320, 52.299561),\n    (13.189250, 52.300030),\n    (13.189950, 52.300190),\n    (13.195300, 52.301510),\n    (13.195660, 52.301579),\n    (13.196120, 52.301670),\n    (13.196520, 52.301731),\n    (13.196930, 52.301800),\n    (13.197300, 52.301849),\n    (13.197730, 52.301899),\n    (13.198060, 52.301929),\n    (13.198410, 52.301960),\n    (13.198870, 52.301979),\n    (13.199350, 52.302010),\n    (13.199770, 52.302021),\n    (13.200110, 52.302021),\n    (13.200530, 52.302010),\n    (13.200890, 52.302010),\n    (13.201350, 52.301998),\n    (13.204370, 52.301891),\n    (13.208190, 52.301739),\n    (13.212510, 52.301590),\n    (13.216580, 52.301430),\n    (13.217610, 52.301399),\n    (13.228140, 52.301010),\n    (13.238760, 52.300629),\n    (13.245770, 52.300362),\n    (13.246180, 52.300339),\n    (13.246670, 52.300331),\n    (13.247130, 52.300320),\n    (13.247610, 52.300320),\n    (13.248020, 52.300320),\n    (13.248490, 52.300331),\n    (13.248960, 52.300350),\n    (13.249440, 52.300369),\n    (13.249960, 52.300419),\n    (13.250480, 52.300461),\n    (13.251020, 52.300529),\n    (13.251540, 52.300598),\n    (13.252070, 52.300701),\n    (13.252590, 52.300812),\n    (13.253120, 52.300919),\n    (13.253600, 52.301041),\n    (13.254090, 52.301170),\n    (13.254670, 52.301331),\n    (13.256820, 52.302052),\n    (13.261490, 52.303631),\n    (13.269090, 52.306171),\n    (13.270180, 52.306549),\n    (13.271920, 52.307129),\n    (13.272380, 52.307289),\n    (13.272850, 52.307430),\n    (13.273350, 52.307571),\n    (13.273830, 52.307701),\n    (13.274300, 52.307819),\n    (13.274810, 52.307941),\n    (13.275320, 52.308048),\n    (13.275810, 52.308140),\n    (13.276320, 52.308239),\n    (13.276800, 52.308319),\n    (13.277320, 52.308392),\n    (13.277840, 52.308449),\n    (13.278350, 52.308510),\n    (13.278890, 52.308559),\n    (13.279420, 52.308590),\n    (13.279940, 52.308601),\n    (13.280480, 52.308609),\n    (13.281000, 52.308620),\n    (13.281530, 52.308601),\n    (13.282060, 52.308571),\n    (13.282550, 52.308552),\n    (13.283110, 52.308498),\n    (13.287640, 52.308010),\n    (13.290700, 52.307640),\n    (13.292300, 52.307468),\n    (13.292830, 52.307430),\n    (13.293320, 52.307388),\n    (13.293850, 52.307369),\n    (13.294910, 52.307350),\n    (13.299500, 52.307259),\n    (13.299880, 52.307259),\n    (13.301670, 52.307220),\n    (13.302440, 52.307178),\n    (13.307490, 52.306789),\n    (13.315530, 52.306160),\n    (13.322290, 52.305630),\n    (13.323360, 52.305561),\n    (13.324420, 52.305519),\n    (13.325470, 52.305500),\n    (13.326560, 52.305500),\n    (13.327600, 52.305531),\n    (13.328690, 52.305580),\n    (13.329760, 52.305660),\n    (13.330870, 52.305771),\n    (13.332030, 52.305901),\n    (13.332780, 52.305969),\n    (13.337120, 52.306438),\n    (13.338030, 52.306530),\n    (13.346600, 52.307461),\n    (13.347680, 52.307571),\n    (13.348730, 52.307659),\n    (13.349790, 52.307709),\n    (13.350730, 52.307739),\n    (13.350860, 52.307751),\n    (13.351910, 52.307758),\n    (13.361540, 52.307690),\n    (13.362370, 52.307690),\n    (13.373330, 52.307610),\n    (13.374340, 52.307590),\n    (13.375230, 52.307549),\n    (13.376120, 52.307499),\n    (13.377130, 52.307430),\n    (13.383940, 52.306961),\n    (13.384850, 52.306900),\n    (13.387660, 52.306709),\n    (13.389970, 52.306549),\n    (13.390380, 52.306530),\n    (13.394690, 52.306259),\n    (13.397370, 52.306160),\n    (13.405090, 52.306030),\n    (13.415100, 52.305882),\n    (13.415750, 52.305882),\n    (13.417210, 52.305851),\n    (13.418310, 52.305840),\n    (13.422420, 52.305801),\n    (13.426090, 52.305828),\n    (13.427570, 52.305851),\n    (13.432750, 52.305931),\n    (13.439150, 52.306030),\n    (13.440540, 52.306080),\n    (13.441310, 52.306141),\n    (13.441600, 52.306160),\n    (13.442380, 52.306229),\n    (13.442900, 52.306290),\n    (13.445510, 52.306641),\n    (13.446600, 52.306839),\n    (13.451870, 52.307899),\n    (13.452980, 52.308128),\n    (13.454210, 52.308380),\n    (13.456110, 52.308769),\n    (13.457860, 52.309120),\n    (13.460550, 52.309681),\n    (13.460780, 52.309719),\n    (13.463900, 52.310341),\n    (13.464500, 52.310459),\n    (13.468600, 52.311310),\n    (13.471770, 52.311951),\n    (13.474960, 52.312611),\n    (13.475350, 52.312679),\n    (13.479510, 52.313530),\n    (13.479950, 52.313622),\n    (13.485670, 52.314789),\n    (13.487830, 52.315231),\n    (13.496450, 52.316971),\n    (13.497990, 52.317291),\n    (13.501230, 52.317951),\n    (13.504420, 52.318600),\n    (13.505640, 52.318810),\n    (13.506420, 52.318932),\n    (13.507180, 52.319031),\n    (13.508220, 52.319141),\n    (13.509160, 52.319210),\n    (13.510010, 52.319260),\n    (13.510740, 52.319302),\n    (13.511550, 52.319309),\n    (13.512310, 52.319321),\n    (13.512930, 52.319309),\n    (13.513680, 52.319290),\n    (13.515050, 52.319229),\n    (13.521420, 52.318851),\n    (13.525850, 52.318569),\n    (13.529360, 52.318359),\n    (13.531070, 52.318310),\n    (13.532680, 52.318279),\n    (13.536010, 52.318340),\n    (13.537040, 52.318371),\n    (13.544710, 52.318588),\n    (13.550870, 52.318771),\n    (13.554570, 52.318890),\n    (13.554780, 52.318890),\n    (13.556580, 52.318951),\n    (13.557850, 52.318970),\n    (13.561250, 52.319111),\n    (13.562410, 52.319141),\n    (13.569820, 52.319351),\n    (13.573750, 52.319481),\n    (13.579050, 52.319611),\n    (13.581390, 52.319679),\n    (13.581790, 52.319679),\n    (13.582280, 52.319672),\n    (13.582740, 52.319649),\n    (13.583240, 52.319630),\n    (13.583710, 52.319592),\n    (13.584290, 52.319530),\n    (13.584770, 52.319469),\n    (13.585300, 52.319401),\n    (13.585790, 52.319302),\n    (13.586300, 52.319199),\n    (13.586740, 52.319111),\n    (13.587160, 52.318981),\n    (13.587580, 52.318878),\n    (13.588000, 52.318771),\n    (13.588540, 52.318600),\n    (13.589080, 52.318409),\n    (13.598340, 52.314541),\n    (13.601870, 52.313011),\n    (13.602440, 52.312778),\n    (13.603550, 52.312370),\n    (13.604420, 52.312092),\n    (13.605830, 52.311699),\n    (13.606620, 52.311562),\n    (13.607410, 52.311440),\n    (13.608280, 52.311340),\n    (13.609650, 52.311218),\n    (13.611020, 52.311131),\n    (13.614750, 52.310940),\n    (13.616850, 52.310749),\n    (13.619420, 52.310581),\n    (13.622190, 52.310410),\n    (13.625030, 52.310219),\n    (13.626990, 52.310089),\n    (13.627500, 52.310070),\n    (13.628450, 52.310070),\n    (13.629390, 52.310070),\n    (13.631210, 52.310169),\n    (13.632530, 52.310249),\n    (13.633490, 52.310280),\n    (13.634270, 52.310299),\n    (13.636980, 52.310390),\n    (13.643890, 52.310650),\n    (13.646030, 52.310699),\n    (13.648170, 52.310829),\n    (13.649040, 52.310890),\n    (13.651330, 52.311039),\n    (13.654370, 52.311359),\n    (13.654970, 52.311451),\n    (13.658490, 52.311939),\n    (13.662560, 52.312649),\n    (13.662700, 52.312679),\n    (13.663310, 52.312778),\n    (13.663630, 52.312840),\n    (13.668210, 52.313709),\n    (13.670780, 52.314220),\n    (13.680740, 52.316711),\n    (13.688530, 52.318481),\n    (13.698690, 52.320930),\n    (13.710610, 52.323811),\n    (13.711570, 52.324039),\n    (13.712430, 52.324181),\n    (13.713570, 52.324329),\n    (13.714400, 52.324421),\n    (13.715380, 52.324478),\n    (13.716400, 52.324501),\n    (13.720130, 52.324390),\n    (13.725390, 52.324230),\n    (13.726510, 52.324211),\n    (13.731150, 52.324032),\n    (13.733640, 52.323959),\n    (13.738060, 52.323719),\n    (13.742050, 52.323471),\n    (13.746680, 52.323330),\n    (13.751640, 52.323170),\n    (13.753060, 52.323151),\n    (13.754100, 52.323158),\n    (13.755050, 52.323200),\n    (13.755920, 52.323231),\n    (13.756700, 52.323261),\n    (13.757510, 52.323280),\n    (13.758260, 52.323280),\n    (13.759340, 52.323261),\n    (13.760090, 52.323231),\n    (13.761710, 52.323090),\n    (13.762770, 52.323009),\n    (13.763620, 52.322910),\n    (13.764640, 52.322769),\n    (13.766320, 52.322479),\n    (13.768990, 52.321991),\n    (13.772660, 52.321259),\n    (13.774100, 52.320969),\n    (13.779390, 52.319851),\n    (13.782620, 52.319210),\n    (13.783960, 52.318939),\n    (13.786130, 52.318501),\n    (13.790780, 52.317551),\n    (13.791020, 52.317509),\n    (13.791810, 52.317341),\n    (13.792900, 52.317108),\n    (13.795190, 52.316570),\n    (13.799770, 52.315449),\n    (13.801290, 52.315079),\n    (13.808440, 52.313332),\n    (13.816510, 52.311310),\n    (13.819120, 52.310841),\n    (13.820420, 52.310638),\n    (13.821700, 52.310490),\n    (13.822920, 52.310379),\n    (13.824100, 52.310299),\n    (13.825230, 52.310242),\n    (13.826590, 52.310211),\n    (13.827630, 52.310211),\n    (13.829190, 52.310280),\n    (13.831020, 52.310390),\n    (13.834560, 52.310612),\n    (13.838080, 52.310829),\n    (13.841170, 52.311031),\n    (13.859730, 52.312199),\n    (13.864920, 52.312481),\n    (13.871600, 52.312920),\n    (13.873940, 52.313129),\n    (13.875990, 52.313400),\n    (13.878480, 52.313770),\n    (13.890500, 52.315659),\n    (13.892830, 52.316002),\n    (13.893820, 52.316109),\n    (13.893950, 52.316139),\n    (13.895130, 52.316231),\n    (13.897110, 52.316341),\n    (13.897430, 52.316349),\n    (13.897820, 52.316360),\n    (13.898430, 52.316368),\n    (13.899410, 52.316368),\n    (13.899740, 52.316368),\n    (13.900800, 52.316319),\n    (13.901260, 52.316299),\n    (13.901460, 52.316280),\n    (13.902170, 52.316231),\n    (13.902650, 52.316200),\n    (13.903500, 52.316120),\n    (13.904230, 52.316051),\n    (13.905060, 52.315929),\n    (13.906220, 52.315769),\n    (13.907530, 52.315540),\n    (13.908080, 52.315449),\n    (13.909350, 52.315250),\n    (13.912430, 52.314678),\n    (13.917170, 52.313839),\n    (13.918560, 52.313591),\n    (13.920600, 52.313251),\n    (13.922720, 52.313000),\n    (13.924570, 52.312859),\n    (13.928280, 52.312672),\n    (13.931980, 52.312469),\n    (13.936850, 52.312210),\n    (13.943620, 52.311890),\n    (13.945010, 52.311821),\n    (13.947110, 52.311699),\n    (13.949250, 52.311600),\n    (13.951860, 52.311531),\n    (13.953880, 52.311501),\n    (13.955690, 52.311520),\n    (13.956470, 52.311550),\n    (13.957230, 52.311550),\n    (13.957590, 52.311550),\n    (13.958480, 52.311600),\n    (13.959390, 52.311649),\n    (13.960510, 52.311710),\n    (13.963300, 52.311890),\n    (13.964030, 52.311958),\n    (13.964760, 52.312031),\n    (13.965530, 52.312111),\n    (13.967600, 52.312309),\n    (13.970420, 52.312679),\n    (13.976950, 52.313519),\n    (13.982210, 52.314190),\n    (13.989010, 52.315079),\n    (13.991140, 52.315590),\n    (13.995350, 52.316631),\n    (14.010750, 52.320862),\n    (14.011740, 52.321140),\n    (14.016990, 52.322540),\n    (14.033020, 52.327091),\n    (14.035490, 52.327888),\n    (14.038170, 52.328770),\n    (14.039940, 52.329361),\n    (14.040850, 52.329639),\n    (14.041850, 52.329868),\n    (14.044900, 52.330509),\n    (14.048330, 52.331181),\n    (14.054310, 52.332371),\n    (14.059400, 52.333389),\n    (14.063500, 52.334190),\n    (14.064160, 52.334278),\n    (14.064990, 52.334389),\n    (14.066080, 52.334450),\n    (14.067790, 52.334480),\n    (14.068820, 52.334492),\n    (14.069610, 52.334499),\n    (14.071800, 52.334530),\n    (14.076110, 52.334610),\n    (14.076730, 52.334621),\n    (14.079480, 52.334629),\n    (14.079900, 52.334641),\n    (14.083190, 52.334690),\n    (14.083960, 52.334709),\n    (14.094040, 52.334930),\n    (14.101640, 52.335129),\n    (14.103790, 52.335171),\n    (14.109770, 52.335300),\n    (14.110470, 52.335320),\n    (14.115300, 52.335442),\n    (14.120590, 52.335579),\n    (14.129080, 52.335781),\n    (14.135940, 52.335941),\n    (14.142780, 52.336109),\n    (14.144190, 52.336159),\n    (14.145630, 52.336269),\n    (14.146980, 52.336399),\n    (14.148470, 52.336590),\n    (14.150050, 52.336849),\n    (14.151060, 52.337040),\n    (14.153230, 52.337559),\n    (14.158990, 52.339050),\n    (14.162260, 52.339931),\n    (14.165920, 52.340870),\n    (14.173330, 52.342800),\n    (14.175650, 52.343361),\n    (14.178100, 52.343769),\n    (14.180730, 52.343922),\n    (14.183420, 52.343849),\n    (14.186900, 52.343418),\n    (14.189890, 52.342861),\n    (14.194280, 52.341751),\n    (14.197150, 52.340660),\n    (14.203530, 52.338570),\n    (14.209150, 52.337471),\n    (14.214410, 52.337059),\n    (14.225970, 52.336620),\n    (14.241650, 52.336029),\n    (14.244650, 52.335850),\n    (14.246820, 52.335609),\n    (14.248630, 52.335361),\n    (14.250900, 52.334930),\n    (14.253710, 52.334209),\n    (14.254860, 52.333839),\n    (14.255420, 52.333649),\n    (14.258210, 52.332611),\n    (14.265300, 52.330059),\n    (14.269440, 52.328659),\n    (14.270810, 52.328289),\n    (14.273100, 52.327721),\n    (14.275730, 52.327179),\n    (14.279540, 52.326401),\n    (14.284480, 52.325371),\n    (14.287700, 52.324718),\n    (14.291050, 52.324291),\n    (14.297960, 52.323990),\n    (14.311890, 52.323471),\n    (14.325860, 52.322960),\n    (14.347400, 52.322159),\n    (14.350580, 52.322029),\n    (14.359000, 52.321739),\n    (14.372530, 52.321239),\n    (14.379740, 52.320950),\n    (14.380240, 52.320938),\n    (14.381830, 52.320881),\n    (14.391430, 52.320560),\n    (14.398040, 52.320290),\n    (14.402530, 52.320190),\n    (14.411640, 52.320221),\n    (14.421280, 52.320320),\n    (14.430980, 52.320400),\n    (14.448890, 52.320591),\n    (14.457170, 52.320690),\n    (14.461260, 52.320679),\n    (14.463750, 52.320641),\n    (14.465980, 52.320591),\n    (14.469340, 52.320530),\n    (14.474220, 52.320431),\n    (14.476170, 52.320412),\n    (14.478410, 52.320358),\n    (14.486460, 52.320190),\n    (14.497410, 52.320011),\n    (14.503240, 52.319920),\n    (14.506290, 52.319832),\n    (14.509290, 52.319721),\n    (14.512840, 52.319519),\n    (14.516510, 52.319302),\n    (14.519920, 52.319069),\n    (14.520700, 52.318989),\n    (14.521670, 52.318890),\n    (14.522650, 52.318729),\n    (14.523810, 52.318451),\n    (14.524880, 52.318111),\n    (14.526010, 52.317699),\n    (14.528360, 52.316898),\n    (14.529150, 52.316601),\n    (14.529920, 52.316311),\n    (14.530360, 52.316170),\n    (14.531150, 52.315948),\n    (14.532090, 52.315681),\n    (14.532660, 52.315552),\n    (14.534120, 52.315231),\n    (14.535880, 52.314899),\n    (14.537050, 52.314720),\n    (14.538460, 52.314548),\n    (14.539610, 52.314442),\n    (14.541020, 52.314350),\n    (14.543540, 52.314289),\n    (14.545710, 52.314320),\n    (14.547280, 52.314381),\n    (14.547860, 52.314388),\n    (14.551430, 52.314510),\n    (14.553820, 52.314579),\n    (14.555630, 52.314610),\n    (14.557090, 52.314621),\n    (14.560080, 52.314590),\n    (14.563030, 52.314548),\n    (14.566590, 52.314499),\n    (14.568220, 52.314579),\n    (14.570630, 52.314789),\n    (14.573180, 52.315029),\n    (14.577680, 52.315430),\n    (14.581390, 52.315800),\n    (14.584040, 52.316078),\n    (14.585230, 52.316212),\n    (14.586150, 52.316299),\n    (14.586610, 52.316319),\n    (14.587420, 52.316380),\n    (14.588230, 52.316490),\n    (14.589910, 52.316669),\n    (14.590260, 52.316700),\n    (14.591270, 52.316830),\n    (14.592640, 52.317039),\n    (14.593280, 52.317169),\n    (14.597120, 52.318180),\n    (14.606010, 52.320629),\n    (14.611060, 52.321980),\n    (14.611630, 52.322140),\n    (14.615200, 52.323078),\n    (14.621090, 52.324699),\n    (14.622960, 52.325180),\n    (14.624350, 52.325459),\n    (14.626080, 52.325741),\n    (14.628220, 52.326019),\n    (14.629100, 52.326092),\n    (14.630640, 52.326199),\n    (14.633120, 52.326248),\n    (14.635360, 52.326160),\n    (14.637460, 52.325989),\n    (14.638980, 52.325851),\n    (14.640770, 52.325691),\n    (14.642970, 52.325489),\n    (14.645360, 52.325272),\n    (14.650070, 52.324810),\n    (14.651870, 52.324631),\n    (14.657510, 52.324131),\n    (14.657730, 52.324120),\n    (14.661480, 52.323959),\n    (14.664560, 52.323940),\n    (14.668520, 52.324268),\n    (14.673860, 52.324959),\n    (14.681930, 52.325951),\n    (14.687980, 52.326790),\n    (14.695770, 52.327820),\n    (14.699480, 52.328308),\n    (14.699910, 52.328381),\n    (14.702760, 52.328800),\n    (14.707160, 52.329350),\n    (14.710180, 52.329762),\n    (14.713110, 52.330120),\n    (14.716110, 52.330570),\n    (14.717430, 52.330719),\n    (14.719870, 52.330990),\n    (14.722980, 52.331348),\n    (14.724190, 52.331509),\n    (14.730330, 52.332329),\n    (14.735100, 52.332970),\n    (14.739980, 52.333672),\n    (14.745970, 52.334278),\n    (14.749610, 52.334839),\n    (14.752850, 52.335121),\n    (14.755990, 52.335320),\n    (14.760150, 52.335251),\n    (14.762590, 52.335251),\n    (14.768020, 52.335251),\n    (14.777380, 52.335281),\n    (14.787830, 52.335312),\n    (14.795240, 52.335312),\n    (14.800100, 52.335312),\n    (14.802870, 52.335121),\n    (14.805950, 52.334740),\n    (14.809920, 52.334000),\n    (14.817190, 52.332600),\n    (14.824690, 52.331188),\n    (14.830980, 52.329979),\n    (14.836990, 52.328960),\n    (14.839050, 52.328659),\n    (14.841760, 52.328522),\n    (14.842560, 52.328499),\n    (14.843740, 52.328541),\n    (14.844960, 52.328590),\n    (14.845750, 52.328621),\n    (14.846370, 52.328690),\n    (14.846940, 52.328739),\n    (14.847760, 52.328831),\n    (14.848110, 52.328869),\n    (14.850100, 52.329151),\n    (14.855030, 52.329880),\n    (14.875600, 52.333172),\n    (14.877770, 52.333542),\n    (14.884010, 52.334438),\n    (14.894500, 52.335011),\n    (14.897290, 52.335060),\n    (14.903640, 52.334839),\n    (14.912530, 52.334080),\n    (14.917210, 52.333851),\n    (14.920660, 52.333939),\n    (14.923950, 52.334221),\n    (14.942390, 52.337490),\n    (14.945660, 52.337959),\n    (14.949630, 52.338470),\n    (14.955640, 52.338371),\n    (14.959930, 52.337681),\n    (14.972060, 52.335072),\n    (14.978420, 52.333679),\n    (14.984860, 52.332790),\n    (15.014210, 52.332489),\n    (15.017210, 52.332470),\n    (15.019230, 52.332359),\n    (15.022400, 52.331928),\n    (15.029720, 52.330811),\n    (15.040660, 52.328541),\n    (15.051960, 52.326160),\n    (15.057440, 52.325199),\n    (15.062210, 52.324680),\n    (15.065990, 52.324520),\n    (15.070300, 52.324551),\n    (15.079760, 52.324860),\n    (15.084980, 52.325050),\n    (15.089620, 52.325111),\n    (15.096840, 52.325298),\n    (15.106060, 52.325520),\n    (15.134010, 52.326260),\n    (15.141860, 52.326530),\n    (15.148840, 52.326599),\n    (15.153770, 52.326420),\n    (15.158660, 52.326069),\n    (15.165720, 52.325298),\n    (15.172770, 52.324230),\n    (15.180940, 52.322510),\n    (15.185700, 52.321178),\n    (15.192000, 52.319199),\n    (15.197980, 52.316959),\n    (15.204170, 52.314671),\n    (15.210300, 52.312710),\n    (15.216020, 52.311481),\n    (15.222380, 52.310791),\n    (15.234390, 52.310040),\n    (15.238000, 52.309811),\n    (15.241970, 52.309299),\n    (15.244940, 52.308620),\n    (15.248080, 52.307560),\n    (15.250510, 52.306511),\n    (15.253310, 52.304852),\n    (15.255260, 52.303299),\n    (15.258480, 52.300861),\n    (15.261660, 52.298618),\n    (15.265100, 52.297039),\n    (15.269280, 52.295712),\n    (15.273790, 52.294769),\n    (15.278350, 52.294399),\n    (15.284460, 52.294231),\n    (15.290280, 52.294762),\n    (15.294180, 52.295330),\n    (15.298300, 52.296082),\n    (15.308130, 52.298470),\n    (15.325480, 52.302799),\n    (15.334270, 52.304981),\n    (15.342390, 52.306999),\n    (15.361300, 52.311710),\n    (15.380580, 52.316380),\n    (15.389680, 52.318008),\n    (15.394060, 52.318531),\n    (15.398210, 52.318890),\n    (15.403980, 52.319118),\n    (15.409600, 52.319031),\n    (15.415450, 52.318649),\n    (15.421370, 52.318130),\n    (15.435500, 52.316940),\n    (15.443140, 52.316601),\n    (15.450850, 52.316429),\n    (15.460130, 52.316448),\n    (15.469640, 52.316780),\n    (15.480500, 52.317581),\n    (15.525930, 52.322929),\n    (15.534810, 52.323811),\n    (15.542090, 52.323990),\n    (15.546080, 52.323750),\n    (15.553530, 52.322948),\n    (15.566190, 52.320820),\n    (15.584820, 52.317322),\n    (15.594200, 52.315411),\n    (15.602580, 52.313671),\n    (15.611310, 52.311298),\n    (15.645000, 52.301800),\n    (15.653580, 52.299480),\n    (15.660380, 52.298550),\n    (15.666340, 52.298111),\n    (15.693540, 52.296860),\n    (15.706100, 52.296539),\n    (15.712540, 52.296532),\n    (15.716380, 52.296692),\n    (15.719710, 52.297009),\n    (15.726210, 52.297649),\n    (15.733410, 52.298710),\n    (15.741850, 52.300629),\n    (15.752860, 52.303860),\n    (15.766420, 52.308010),\n    (15.769980, 52.309109),\n    (15.779090, 52.311970),\n    (15.792040, 52.315861),\n    (15.806970, 52.320320),\n    (15.815940, 52.323009),\n    (15.822290, 52.324772),\n    (15.829860, 52.326359),\n    (15.837110, 52.327572),\n    (15.850700, 52.328609),\n    (15.866580, 52.328949),\n    (15.867550, 52.328979),\n    (15.868890, 52.328991),\n    (15.872030, 52.329029),\n    (15.881970, 52.329041),\n    (15.885570, 52.329102),\n    (15.907500, 52.329449),\n    (15.913320, 52.329540),\n    (15.925070, 52.329750),\n    (15.936360, 52.330448),\n    (15.945400, 52.331379),\n    (15.953600, 52.332611),\n    (15.961800, 52.334122),\n    (15.995240, 52.342091),\n    (16.007250, 52.344440),\n    (16.049379, 52.350460),\n    (16.069920, 52.353291),\n    (16.093580, 52.357590),\n    (16.097740, 52.358330),\n    (16.100071, 52.358749),\n    (16.101440, 52.358990),\n    (16.102610, 52.359211),\n    (16.104290, 52.359539),\n    (16.108561, 52.360352),\n    (16.117229, 52.361950),\n    (16.123461, 52.362999),\n    (16.130489, 52.363850),\n    (16.136801, 52.364521),\n    (16.147249, 52.365608),\n    (16.161501, 52.367062),\n    (16.165270, 52.367298),\n    (16.168301, 52.367420),\n    (16.172119, 52.367451),\n    (16.185591, 52.367611),\n    (16.187149, 52.367630),\n    (16.192730, 52.367821),\n    (16.196550, 52.368038),\n    (16.201460, 52.368622),\n    (16.207010, 52.369450),\n    (16.222179, 52.372471),\n    (16.238211, 52.375481),\n    (16.241230, 52.375839),\n    (16.244749, 52.376221),\n    (16.249599, 52.376629),\n    (16.263130, 52.377140),\n    (16.270679, 52.377380),\n    (16.279659, 52.377781),\n    (16.288481, 52.378220),\n    (16.309139, 52.379379),\n    (16.321550, 52.380039),\n    (16.342890, 52.381180),\n    (16.356291, 52.381981),\n    (16.369160, 52.382660),\n    (16.377230, 52.383240),\n    (16.383631, 52.383869),\n    (16.396589, 52.385590),\n    (16.408449, 52.387280),\n    (16.415630, 52.388142),\n    (16.422710, 52.388851),\n    (16.428341, 52.389351),\n    (16.434139, 52.389690),\n    (16.445290, 52.390060),\n    (16.448879, 52.390018),\n    (16.453251, 52.389881),\n    (16.456450, 52.389729),\n    (16.459141, 52.389500),\n    (16.461380, 52.389240),\n    (16.466070, 52.388569),\n    (16.473820, 52.387341),\n    (16.475540, 52.387070),\n    (16.477989, 52.386841),\n    (16.479481, 52.386749),\n    (16.480310, 52.386700),\n    (16.483351, 52.386551),\n    (16.486731, 52.386478),\n    (16.491039, 52.386570),\n    (16.494961, 52.386761),\n    (16.499990, 52.387081),\n    (16.507830, 52.387459),\n    (16.511551, 52.387501),\n    (16.514919, 52.387451),\n    (16.520399, 52.387249),\n    (16.526070, 52.386700),\n    (16.531031, 52.386040),\n    (16.535200, 52.385269),\n    (16.537630, 52.384708),\n    (16.540649, 52.383999),\n    (16.551830, 52.380840),\n    (16.560900, 52.378120),\n    (16.561279, 52.378010),\n    (16.563869, 52.377232),\n    (16.566050, 52.376591),\n    (16.575661, 52.373539),\n    (16.584909, 52.370152),\n    (16.599230, 52.364700),\n    (16.609520, 52.360741),\n    (16.616970, 52.357941),\n    (16.619610, 52.357101),\n    (16.622040, 52.356419),\n    (16.624540, 52.355820),\n    (16.628189, 52.355068),\n    (16.638000, 52.353432),\n    (16.646940, 52.352150),\n    (16.654249, 52.350979),\n    (16.656679, 52.350590),\n    (16.660419, 52.349979),\n    (16.664169, 52.349369),\n    (16.666870, 52.349030),\n    (16.671410, 52.348579),\n    (16.679750, 52.348389),\n    (16.691719, 52.348930),\n    (16.704990, 52.349468),\n    (16.713869, 52.349819),\n    (16.715731, 52.349899),\n    (16.718731, 52.350010),\n    (16.726601, 52.350319),\n    (16.729759, 52.350422),\n    (16.730129, 52.350441),\n    (16.731810, 52.350491),\n    (16.731850, 52.350491),\n    (16.731960, 52.350491),\n    (16.731979, 52.350491),\n    (16.733709, 52.350491),\n    (16.736811, 52.350491),\n    (16.742020, 52.350491),\n    (16.750790, 52.350479),\n    (16.761419, 52.350521),\n    (16.770590, 52.350479),\n    (16.778931, 52.350430),\n    (16.795071, 52.350460),\n    (16.810120, 52.350330),\n    (16.826269, 52.350300),\n    (16.838690, 52.350288),\n    (16.841270, 52.350361),\n    (16.845310, 52.350529),\n    (16.846109, 52.350571),\n    (16.849070, 52.350800),\n    (16.851641, 52.351028),\n    (16.851950, 52.351070),\n    (16.863569, 52.352489),\n    (16.876530, 52.354092),\n    (16.879700, 52.354420),\n    (16.884821, 52.354610),\n    (16.886431, 52.354622),\n    (16.888260, 52.354610),\n    (16.890070, 52.354580),\n    (16.892290, 52.354500),\n    (16.895750, 52.354301),\n    (16.897921, 52.354149),\n    (16.899799, 52.353989),\n    (16.901699, 52.353840),\n    (16.902439, 52.353779),\n    (16.907690, 52.353359),\n    (16.910280, 52.353130),\n    (16.914261, 52.352810),\n    (16.916389, 52.352650),\n    (16.919210, 52.352428),\n    (16.923109, 52.352100),\n    (16.937201, 52.350979),\n    (16.949640, 52.349918),\n    (16.956039, 52.349400),\n    (16.961029, 52.348999),\n    (16.965500, 52.348652),\n    (16.973419, 52.348000),\n    (16.986170, 52.347019),\n    (16.991770, 52.346531),\n    (17.000900, 52.345741),\n    (17.004881, 52.345322),\n    (17.007601, 52.345009),\n    (17.013760, 52.344269),\n    (17.020700, 52.343330),\n    (17.025400, 52.342529),\n    (17.034031, 52.340950),\n    (17.049919, 52.337791),\n    (17.064600, 52.334721),\n    (17.078711, 52.331821),\n    (17.087839, 52.329639),\n    (17.089300, 52.329311),\n    (17.092470, 52.328499),\n    (17.094801, 52.327869),\n    (17.099489, 52.326542),\n    (17.107441, 52.324188),\n    (17.114479, 52.322010),\n    (17.124830, 52.318771),\n    (17.124960, 52.318729),\n    (17.128820, 52.317520),\n    (17.136431, 52.315140),\n    (17.144501, 52.312561),\n    (17.147800, 52.311531),\n    (17.149670, 52.311031),\n    (17.150949, 52.310692),\n    (17.151051, 52.310669),\n    (17.151300, 52.310612),\n    (17.151421, 52.310589),\n    (17.153610, 52.310101),\n    (17.154390, 52.309872),\n    (17.157721, 52.309158),\n    (17.163059, 52.308281),\n    (17.166821, 52.307789),\n    (17.170919, 52.307411),\n    (17.175390, 52.307159),\n    (17.179951, 52.307072),\n    (17.185240, 52.307159),\n    (17.190941, 52.307610),\n    (17.193920, 52.307919),\n    (17.201851, 52.309040),\n    (17.207350, 52.309639),\n    (17.212879, 52.310059),\n    (17.223009, 52.310219),\n    (17.241720, 52.310131),\n    (17.253790, 52.310131),\n    (17.265499, 52.310059),\n    (17.272200, 52.310009),\n    (17.278469, 52.310040),\n    (17.296169, 52.310001),\n    (17.305731, 52.309929),\n    (17.321720, 52.309929),\n    (17.342350, 52.309841),\n    (17.354420, 52.309818),\n    (17.362419, 52.310108),\n    (17.376181, 52.311218),\n    (17.382330, 52.312019),\n    (17.388250, 52.312881),\n    (17.399639, 52.314861),\n    (17.411970, 52.317001),\n    (17.414829, 52.317390),\n    (17.417191, 52.317711),\n    (17.421089, 52.318138),\n    (17.424089, 52.318409),\n    (17.425091, 52.318489),\n    (17.427660, 52.318691),\n    (17.431700, 52.318920),\n    (17.436029, 52.319038),\n    (17.440769, 52.319050),\n    (17.454201, 52.318821),\n    (17.468769, 52.318630),\n    (17.482670, 52.318409),\n    (17.496050, 52.318180),\n    (17.509060, 52.317921),\n    (17.513220, 52.317699),\n    (17.521919, 52.316971),\n    (17.526711, 52.316311),\n    (17.529650, 52.315899),\n    (17.531231, 52.315552),\n    (17.531919, 52.315262),\n    (17.532320, 52.314949),\n    (17.532579, 52.314449),\n    (17.532690, 52.313931),\n    (17.532721, 52.313709),\n    (17.532900, 52.313400),\n    (17.533180, 52.313160),\n    (17.533661, 52.312901),\n    (17.534140, 52.312790),\n    (17.535089, 52.312660),\n    (17.537979, 52.312389),\n    (17.540131, 52.312119),\n    (17.540211, 52.312050),\n    (17.540260, 52.312031),\n    (17.540291, 52.311951),\n    (17.540371, 52.311680),\n    (17.540400, 52.311550),\n    (17.540489, 52.311111),\n    (17.540710, 52.310650),\n    (17.541161, 52.309971),\n    (17.541880, 52.309269),\n    (17.542521, 52.308830),\n    (17.542919, 52.308590),\n    (17.543131, 52.308472),\n    (17.544741, 52.307850),\n    (17.545010, 52.307770),\n    (17.545589, 52.307590),\n    (17.546570, 52.307289),\n    (17.548800, 52.306599),\n    (17.549089, 52.306469),\n    (17.549259, 52.306381),\n    (17.549271, 52.306301),\n    (17.549339, 52.306221),\n    (17.549410, 52.306190),\n    (17.549561, 52.306160),\n    (17.549709, 52.306190),\n    (17.549810, 52.306240),\n    (17.549870, 52.306358),\n    (17.549820, 52.306450),\n    (17.549780, 52.306480),\n    (17.549919, 52.306782),\n    (17.550961, 52.308361),\n    (17.552139, 52.310181),\n    (17.552441, 52.310711),\n    (17.553921, 52.312820),\n    (17.554529, 52.313641),\n    (17.554741, 52.313629),\n    (17.554911, 52.313709),\n    (17.555559, 52.313580),\n    (17.556240, 52.313389),\n    (17.556780, 52.313240),\n    (17.557289, 52.313160),\n    (17.558620, 52.312969),\n    (17.563829, 52.312168),\n    (17.568171, 52.311501),\n    (17.569120, 52.311501),\n    (17.570061, 52.311661),\n    (17.570820, 52.311909),\n    (17.572210, 52.312511),\n    (17.575109, 52.313751),\n    (17.580099, 52.316212),\n    (17.581940, 52.317131),\n    (17.582109, 52.317059),\n    (17.582239, 52.317131),\n    (17.582260, 52.317299),\n    (17.591841, 52.322079),\n    (17.593470, 52.322899),\n    (17.595200, 52.323669),\n    (17.597691, 52.324501),\n    (17.600439, 52.325150),\n    (17.602650, 52.325489),\n    (17.610991, 52.326290),\n    (17.612070, 52.326389),\n    (17.616261, 52.326771),\n    (17.618530, 52.326981),\n    (17.620930, 52.326950),\n    (17.625080, 52.326351),\n    (17.630070, 52.325581),\n    (17.634701, 52.324890),\n    (17.635469, 52.324772),\n    (17.639090, 52.324211),\n    (17.644131, 52.323441),\n    (17.645760, 52.323231),\n    (17.649719, 52.323078),\n    (17.654930, 52.322880),\n    (17.659500, 52.322701),\n    (17.663910, 52.322510),\n    (17.665409, 52.322430),\n    (17.669571, 52.322449),\n    (17.671431, 52.322460),\n    (17.675159, 52.321980),\n    (17.675320, 52.321960),\n    (17.678539, 52.321899),\n    (17.684780, 52.321812),\n    (17.691059, 52.321671),\n    (17.694660, 52.321720),\n    (17.700939, 52.322041),\n    (17.704840, 52.322281),\n    (17.706450, 52.322250),\n    (17.712780, 52.321701),\n    (17.718519, 52.321220),\n    (17.724510, 52.320690),\n    (17.726589, 52.320740),\n    (17.729259, 52.320820),\n    (17.732750, 52.320930),\n    (17.738630, 52.321152),\n    (17.740990, 52.321152),\n    (17.743330, 52.320919),\n    (17.750771, 52.319420),\n    (17.757271, 52.318192),\n    (17.765110, 52.318439),\n    (17.768921, 52.317822),\n    (17.770720, 52.317669),\n    (17.771641, 52.317791),\n    (17.776390, 52.318741),\n    (17.778669, 52.319000),\n    (17.780680, 52.319012),\n    (17.781050, 52.319012),\n    (17.783670, 52.318829),\n    (17.789230, 52.317570),\n    (17.797211, 52.315601),\n    (17.805929, 52.313480),\n    (17.810341, 52.312401),\n    (17.813641, 52.311600),\n    (17.814590, 52.311371),\n    (17.815290, 52.311111),\n    (17.817551, 52.310280),\n    (17.818331, 52.309990),\n    (17.819960, 52.309391),\n    (17.820360, 52.309250),\n    (17.823561, 52.308071),\n    (17.825010, 52.307571),\n    (17.829069, 52.306221),\n    (17.834209, 52.304508),\n    (17.837660, 52.303299),\n    (17.843309, 52.300629),\n    (17.848810, 52.298031),\n    (17.854540, 52.295311),\n    (17.860399, 52.292549),\n    (17.864611, 52.290531),\n    (17.865049, 52.290310),\n    (17.865410, 52.290039),\n    (17.865549, 52.289860),\n    (17.865549, 52.289768),\n    (17.865601, 52.289711),\n    (17.865650, 52.289688),\n    (17.865721, 52.289669),\n    (17.865841, 52.289680),\n    (17.865940, 52.289711),\n    (17.865959, 52.289730),\n    (17.865990, 52.289768),\n    (17.865999, 52.289829),\n    (17.866091, 52.289822),\n    (17.866220, 52.289799),\n    (17.866529, 52.289669),\n    (17.866779, 52.289581),\n    (17.866791, 52.289520),\n    (17.866859, 52.289471),\n    (17.866989, 52.289459),\n    (17.867029, 52.289410),\n    (17.867620, 52.289101),\n    (17.868530, 52.288670),\n    (17.869690, 52.288109),\n    (17.870939, 52.287590),\n    (17.872110, 52.287239),\n    (17.872881, 52.287010),\n    (17.873240, 52.286911),\n    (17.873751, 52.286819),\n    (17.874180, 52.286739),\n    (17.875660, 52.286572),\n    (17.876240, 52.286480),\n    (17.878031, 52.286201),\n    (17.879259, 52.286018),\n    (17.879860, 52.285919),\n    (17.880501, 52.285801),\n    (17.880600, 52.285789),\n    (17.883101, 52.284969),\n    (17.887421, 52.283581),\n    (17.888941, 52.283051),\n    (17.889429, 52.282902),\n    (17.889730, 52.282822),\n    (17.889999, 52.282791),\n    (17.890190, 52.282780),\n    (17.890551, 52.282730),\n    (17.890619, 52.282669),\n    (17.890560, 52.282631),\n    (17.890530, 52.282600),\n    (17.890499, 52.282539),\n    (17.890511, 52.282501),\n    (17.890520, 52.282459),\n    (17.890570, 52.282410),\n    (17.890650, 52.282372),\n    (17.890699, 52.282349),\n    (17.890829, 52.282341),\n    (17.890909, 52.282360),\n    (17.891710, 52.282181),\n    (17.892910, 52.281811),\n    (17.899090, 52.279800),\n    (17.899920, 52.279579),\n    (17.900669, 52.279449),\n    (17.903799, 52.279190),\n    (17.904619, 52.279060),\n    (17.905491, 52.278839),\n    (17.906620, 52.278419),\n    (17.908340, 52.277248),\n    (17.909760, 52.276470),\n    (17.911570, 52.275829),\n    (17.921329, 52.272469),\n    (17.937460, 52.263641),\n    (17.956169, 52.253769),\n    (17.958750, 52.252399),\n    (17.960810, 52.252090),\n    (17.995489, 52.248508),\n    (18.003380, 52.247780),\n    (18.008190, 52.247879),\n    (18.019690, 52.248409),\n    (18.030331, 52.247150),\n    (18.061041, 52.245140),\n    (18.081181, 52.243660),\n    (18.083620, 52.243481),\n    (18.086220, 52.243279),\n    (18.088440, 52.243130),\n    (18.092360, 52.242840),\n    (18.092350, 52.242771),\n    (18.092390, 52.242722),\n    (18.092470, 52.242680),\n    (18.092569, 52.242661),\n    (18.092710, 52.242691),\n    (18.092779, 52.242741),\n    (18.092800, 52.242802),\n    (18.093210, 52.242771),\n    (18.094580, 52.242680),\n    (18.095360, 52.242680),\n    (18.097000, 52.242779),\n    (18.097740, 52.242790),\n    (18.099400, 52.242760),\n    (18.099621, 52.242760),\n    (18.100220, 52.242748),\n    (18.100380, 52.242748),\n    (18.103991, 52.242680),\n    (18.106251, 52.242641),\n    (18.114321, 52.242512),\n    (18.117729, 52.242451),\n    (18.143881, 52.243092),\n    (18.145260, 52.243019),\n    (18.146799, 52.242710),\n    (18.149191, 52.241810),\n    (18.151239, 52.241261),\n    (18.154840, 52.240372),\n    (18.188250, 52.235580),\n    (18.192940, 52.234940),\n    (18.193689, 52.234829),\n    (18.199640, 52.234009),\n    (18.200640, 52.233860),\n    (18.202101, 52.233650),\n    (18.207590, 52.232849),\n    (18.207750, 52.232830),\n    (18.210970, 52.232361),\n    (18.211769, 52.232319),\n    (18.211910, 52.232361),\n    (18.212061, 52.232288),\n    (18.212351, 52.232281),\n    (18.212500, 52.232231),\n    (18.213150, 52.232052),\n    (18.219040, 52.231239),\n    (18.219170, 52.231220),\n    (18.221760, 52.230869),\n    (18.222111, 52.230808),\n    (18.223400, 52.230598),\n    (18.224770, 52.230320),\n    (18.226959, 52.229851),\n    (18.228170, 52.229591),\n    (18.230150, 52.229172),\n    (18.232510, 52.228661),\n    (18.233431, 52.228470),\n    (18.234320, 52.228279),\n    (18.239700, 52.227131),\n    (18.239901, 52.227089),\n    (18.241430, 52.226761),\n    (18.243719, 52.226261),\n    (18.243750, 52.226131),\n    (18.243950, 52.226009),\n    (18.244190, 52.226009),\n    (18.244450, 52.226131),\n    (18.245581, 52.225868),\n    (18.246241, 52.225731),\n    (18.246599, 52.225681),\n    (18.247110, 52.225601),\n    (18.247561, 52.225441),\n    (18.248569, 52.225208),\n    (18.249229, 52.224998),\n    (18.249580, 52.224831),\n    (18.249910, 52.224651),\n    (18.250050, 52.224541),\n    (18.250330, 52.224251),\n    (18.250580, 52.223862),\n    (18.250879, 52.223110),\n    (18.250980, 52.222912),\n    (18.252430, 52.219280),\n    (18.252670, 52.218880),\n    (18.253201, 52.218281),\n    (18.253790, 52.217628),\n    (18.255859, 52.215401),\n    (18.256559, 52.214809),\n    (18.257931, 52.213692),\n    (18.258289, 52.213409),\n    (18.259171, 52.212700),\n    (18.260090, 52.211960),\n    (18.262831, 52.209869),\n    (18.270050, 52.204010),\n    (18.270399, 52.203819),\n    (18.271231, 52.203411),\n    (18.272209, 52.203091),\n    (18.272480, 52.203011),\n    (18.272690, 52.202969),\n    (18.272940, 52.202919),\n    (18.273720, 52.202770),\n    (18.274210, 52.202721),\n    (18.274950, 52.202560),\n    (18.276640, 52.202221),\n    (18.277731, 52.201988),\n    (18.278629, 52.201809),\n    (18.281620, 52.201199),\n    (18.289351, 52.199638),\n    (18.301750, 52.197021),\n    (18.305389, 52.196270),\n    (18.312389, 52.194870),\n    (18.315889, 52.194199),\n    (18.320650, 52.193211),\n    (18.328430, 52.191570),\n    (18.340090, 52.189140),\n    (18.347509, 52.187630),\n    (18.351219, 52.186771),\n    (18.356600, 52.185650),\n    (18.361509, 52.184650),\n    (18.366680, 52.183529),\n    (18.371960, 52.182411),\n    (18.379070, 52.180969),\n    (18.384871, 52.179749),\n    (18.389879, 52.178661),\n    (18.394800, 52.177670),\n    (18.400860, 52.176449),\n    (18.405199, 52.175491),\n    (18.410469, 52.174400),\n    (18.415020, 52.173630),\n    (18.416691, 52.173630),\n    (18.420380, 52.174320),\n    (18.421061, 52.174412),\n    (18.422409, 52.174469),\n    (18.425890, 52.174400),\n    (18.431320, 52.174301),\n    (18.434980, 52.174240),\n    (18.438641, 52.174110),\n    (18.443649, 52.174019),\n    (18.450720, 52.173840),\n    (18.458700, 52.173660),\n    (18.475010, 52.173370),\n    (18.486191, 52.173119),\n    (18.492510, 52.172958),\n    (18.500191, 52.172771),\n    (18.507509, 52.172829),\n    (18.509069, 52.172871),\n    (18.511530, 52.172932),\n    (18.515970, 52.173019),\n    (18.524281, 52.173210),\n    (18.530710, 52.173340),\n    (18.534420, 52.173370),\n    (18.539120, 52.173500),\n    (18.545441, 52.173660),\n    (18.550980, 52.173820),\n    (18.554800, 52.173920),\n    (18.561331, 52.174019),\n    (18.567909, 52.174179),\n    (18.570721, 52.174179),\n    (18.570910, 52.174179),\n    (18.571409, 52.174240),\n    (18.576380, 52.175362),\n    (18.581450, 52.176579),\n    (18.589180, 52.178471),\n    (18.595551, 52.179939),\n    (18.601980, 52.181419),\n    (18.606159, 52.182381),\n    (18.608431, 52.182800),\n    (18.610491, 52.182899),\n    (18.610920, 52.183399),\n    (18.611210, 52.183601),\n    (18.615829, 52.184700),\n    (18.619110, 52.185471),\n    (18.620390, 52.185760),\n    (18.629360, 52.187820),\n    (18.631380, 52.188271),\n    (18.631510, 52.188190),\n    (18.631660, 52.188171),\n    (18.631821, 52.188202),\n    (18.631929, 52.188271),\n    (18.631950, 52.188339),\n    (18.631941, 52.188419),\n    (18.631889, 52.188469),\n    (18.634359, 52.190029),\n    (18.634609, 52.190380),\n    (18.634670, 52.190689),\n    (18.634630, 52.190922),\n    (18.634460, 52.191219),\n    (18.634251, 52.191582),\n    (18.634470, 52.191639),\n    (18.634550, 52.191750),\n    (18.634411, 52.193062),\n    (18.634300, 52.193909),\n    (18.634220, 52.194382),\n    (18.634130, 52.194462),\n    (18.633900, 52.194592),\n    (18.634430, 52.195148),\n    (18.636311, 52.197369),\n    (18.637630, 52.198978),\n    (18.638439, 52.199921),\n    (18.639561, 52.200199),\n    (18.641560, 52.200668),\n    (18.642611, 52.200920),\n    (18.646320, 52.201801),\n    (18.647070, 52.202091),\n    (18.647120, 52.202049),\n    (18.647190, 52.202030),\n    (18.647310, 52.202019),\n    (18.647421, 52.202049),\n    (18.647511, 52.202110),\n    (18.647970, 52.202148),\n    (18.648300, 52.202229),\n    (18.659580, 52.204929),\n    (18.663980, 52.205921),\n    (18.665001, 52.205940),\n    (18.666149, 52.205761),\n    (18.667360, 52.205349),\n    (18.667419, 52.205399),\n    (18.669479, 52.206970),\n    (18.671671, 52.208561),\n    (18.672421, 52.209110),\n    (18.673220, 52.209702),\n    (18.674770, 52.210369),\n    (18.676310, 52.210678),\n    (18.677629, 52.210732),\n    (18.679911, 52.210461),\n    (18.682190, 52.210361),\n    (18.685480, 52.211060),\n    (18.707380, 52.216282),\n    (18.723631, 52.220341),\n    (18.740179, 52.224468),\n    (18.761070, 52.229771),\n    (18.774151, 52.232971),\n    (18.777250, 52.233742),\n    (18.791170, 52.237202),\n    (18.814440, 52.242981),\n    (18.832359, 52.247540),\n    (18.838200, 52.249008),\n    (18.843590, 52.250240),\n    (18.845110, 52.250511),\n    (18.848881, 52.250931),\n    (18.853649, 52.251480),\n    (18.864920, 52.252789),\n    (18.881430, 52.254711),\n    (18.893669, 52.256168),\n    (18.895350, 52.256229),\n    (18.897690, 52.256130),\n    (18.899700, 52.256001),\n    (18.905581, 52.255482),\n    (18.908171, 52.255009),\n    (18.910839, 52.254601),\n    (18.913570, 52.254238),\n    (18.914570, 52.254089),\n    (18.915560, 52.253891),\n    (18.919010, 52.252560),\n    (18.920570, 52.252110),\n    (18.923180, 52.251961),\n    (18.924049, 52.251919),\n    (18.927750, 52.251751),\n    (18.937000, 52.250671),\n    (18.942400, 52.250080),\n    (18.947941, 52.249538),\n    (18.953840, 52.248959),\n    (18.967060, 52.249111),\n    (18.978081, 52.249161),\n    (18.993450, 52.249329),\n    (19.022381, 52.249641),\n    (19.037729, 52.249779),\n    (19.057770, 52.251240),\n    (19.062490, 52.251560),\n    (19.078590, 52.252621),\n    (19.087900, 52.253010),\n    (19.097851, 52.253391),\n    (19.098301, 52.252651),\n    (19.100410, 52.250050),\n    (19.102510, 52.248348),\n    (19.102680, 52.248211),\n    (19.106131, 52.248081),\n    (19.112711, 52.247890),\n    (19.116409, 52.248081),\n    (19.119570, 52.248428),\n    (19.129230, 52.248489),\n    (19.132219, 52.248379),\n    (19.132780, 52.248211),\n    (19.133989, 52.247910),\n    (19.136061, 52.248112),\n    (19.143221, 52.248798),\n    (19.144760, 52.248428),\n    (19.146049, 52.248371),\n    (19.150400, 52.248791),\n    (19.154869, 52.249931),\n    (19.155210, 52.250111),\n    (19.155830, 52.250439),\n    (19.156290, 52.250610),\n    (19.157089, 52.250820),\n    (19.157909, 52.251041),\n    (19.158430, 52.251179),\n    (19.159491, 52.251350),\n    (19.159769, 52.251400),\n    (19.160210, 52.251530),\n    (19.161860, 52.252048),\n    (19.162830, 52.252350),\n    (19.163080, 52.252430),\n    (19.165310, 52.253109),\n    (19.166000, 52.253319),\n    (19.167870, 52.253929),\n    (19.170031, 52.254082),\n    (19.170040, 52.254791),\n    (19.170059, 52.255871),\n    (19.170771, 52.255859),\n    (19.171080, 52.255852),\n    (19.173180, 52.255798),\n    (19.174749, 52.255772),\n    (19.177340, 52.255718),\n    (19.184870, 52.255581),\n    (19.185410, 52.255539),\n    (19.185801, 52.255409),\n    (19.186239, 52.255280),\n    (19.188431, 52.255241),\n    (19.189030, 52.255329),\n    (19.190531, 52.255291),\n    (19.191151, 52.255459),\n    (19.195700, 52.255360),\n    (19.197201, 52.255112),\n    (19.199301, 52.254509),\n    (19.199980, 52.254318),\n    (19.201010, 52.254028),\n    (19.204729, 52.252998),\n    (19.213940, 52.250370),\n    (19.221689, 52.248699),\n    (19.230410, 52.246910),\n    (19.238400, 52.245220),\n    (19.246651, 52.243561),\n    (19.254869, 52.241871),\n    (19.259621, 52.240871),\n    (19.260960, 52.240429),\n    (19.261471, 52.240181),\n    (19.263260, 52.239311),\n    (19.265921, 52.238239),\n    (19.268141, 52.238159),\n    (19.269831, 52.238571),\n    (19.271111, 52.238800),\n    (19.272249, 52.238850),\n    (19.273951, 52.238811),\n    (19.277100, 52.238461),\n    (19.282230, 52.237900),\n    (19.287399, 52.237339),\n    (19.296709, 52.236359),\n    (19.297529, 52.236271),\n    (19.304729, 52.235481),\n    (19.312590, 52.234631),\n    (19.315479, 52.234150),\n    (19.316460, 52.233780),\n    (19.317141, 52.233521),\n    (19.318279, 52.232792),\n    (19.319950, 52.231079),\n    (19.320780, 52.230339),\n    (19.321680, 52.229462),\n    (19.325310, 52.225819),\n    (19.326210, 52.224918),\n    (19.327101, 52.224129),\n    (19.327730, 52.223598),\n    (19.328920, 52.222889),\n    (19.331511, 52.221642),\n    (19.338480, 52.218380),\n    (19.338980, 52.218090),\n    (19.342680, 52.216400),\n    (19.344561, 52.215790),\n    (19.348150, 52.215031),\n    (19.350771, 52.214470),\n    (19.354900, 52.213570),\n    (19.355600, 52.213409),\n    (19.356300, 52.213249),\n    (19.358801, 52.212700),\n    (19.365080, 52.211281),\n    (19.367050, 52.210960),\n    (19.369400, 52.210941),\n    (19.371731, 52.211288),\n    (19.373770, 52.211941),\n    (19.380480, 52.214779),\n    (19.385851, 52.216991),\n    (19.386290, 52.217152),\n    (19.387329, 52.217590),\n    (19.388611, 52.218121),\n    (19.391710, 52.219349),\n    (19.392851, 52.219818),\n    (19.394199, 52.220371),\n    (19.395330, 52.220890),\n    (19.404119, 52.224468),\n    (19.405670, 52.224911),\n    (19.406651, 52.225090),\n    (19.408079, 52.225201),\n    (19.410160, 52.225040),\n    (19.421770, 52.223900),\n    (19.427210, 52.223358),\n    (19.431721, 52.222851),\n    (19.431730, 52.222820),\n    (19.431749, 52.222790),\n    (19.431810, 52.222740),\n    (19.431850, 52.222721),\n    (19.431890, 52.222710),\n    (19.431990, 52.222691),\n    (19.432079, 52.222698),\n    (19.432171, 52.222721),\n    (19.432249, 52.222759),\n    (19.432289, 52.222790),\n    (19.434370, 52.222591),\n    (19.436371, 52.222462),\n    (19.444071, 52.221691),\n    (19.451731, 52.220940),\n    (19.456949, 52.220440),\n    (19.460630, 52.220100),\n    (19.465050, 52.219631),\n    (19.478041, 52.218391),\n    (19.480280, 52.218170),\n    (19.490030, 52.217159),\n    (19.512360, 52.215012),\n    (19.528200, 52.213451),\n    (19.536350, 52.212681),\n    (19.572590, 52.209068),\n    (19.573191, 52.209011),\n    (19.576130, 52.208340),\n    (19.577801, 52.207859),\n    (19.581690, 52.210312),\n    (19.585791, 52.212872),\n    (19.588449, 52.214561),\n    (19.589291, 52.215481),\n    (19.591129, 52.217701),\n    (19.595900, 52.223301),\n    (19.598000, 52.225101),\n    (19.599670, 52.226131),\n    (19.601351, 52.227112),\n    (19.605021, 52.229450),\n    (19.605740, 52.229519),\n    (19.607180, 52.229530),\n    (19.607830, 52.229542),\n    (19.609091, 52.230320),\n    (19.609400, 52.230370),\n    (19.615530, 52.228699),\n    (19.616131, 52.228580),\n    (19.617331, 52.228249),\n    (19.618900, 52.227909),\n    (19.619720, 52.227749),\n    (19.622101, 52.231258),\n    (19.622940, 52.232441),\n    (19.623350, 52.232330),\n    (19.623541, 52.232281),\n    (19.627701, 52.231121),\n    (19.629101, 52.232800),\n    (19.629890, 52.233730),\n    (19.631729, 52.235909),\n    (19.632259, 52.236549),\n    (19.634371, 52.236080),\n    (19.636040, 52.235699),\n    (19.637199, 52.235439),\n    (19.638100, 52.235222),\n    (19.638580, 52.235142),\n    (19.651711, 52.237110),\n    (19.652399, 52.237202),\n    (19.653431, 52.237370),\n    (19.654579, 52.237541),\n    (19.655920, 52.237759),\n    (19.657631, 52.238010),\n    (19.659389, 52.238312),\n    (19.661110, 52.238571),\n    (19.680220, 52.241619),\n    (19.698179, 52.244518),\n    (19.699261, 52.244370),\n    (19.700871, 52.244122),\n    (19.702730, 52.243961),\n    (19.703270, 52.243950),\n    (19.705320, 52.243931),\n    (19.710480, 52.243900),\n    (19.711880, 52.243870),\n    (19.712549, 52.243790),\n    (19.714161, 52.243488),\n    (19.716089, 52.243179),\n    (19.719360, 52.242641),\n    (19.722860, 52.242050),\n    (19.723040, 52.242008),\n    (19.723471, 52.241920),\n    (19.724039, 52.241711),\n    (19.726480, 52.240700),\n    (19.728371, 52.239971),\n    (19.728979, 52.239792),\n    (19.730400, 52.239380),\n    (19.731230, 52.239071),\n    (19.731550, 52.238918),\n    (19.731951, 52.238602),\n    (19.732651, 52.237869),\n    (19.732830, 52.237091),\n    (19.733000, 52.236172),\n    (19.733080, 52.236031),\n    (19.733290, 52.235931),\n    (19.737129, 52.234829),\n    (19.741230, 52.233719),\n    (19.743799, 52.233101),\n    (19.746941, 52.233021),\n    (19.751450, 52.233212),\n    (19.758301, 52.232349),\n    (19.763460, 52.231739),\n    (19.766451, 52.230869),\n    (19.767920, 52.230419),\n    (19.769779, 52.229839),\n    (19.770370, 52.229610),\n    (19.770901, 52.229309),\n    (19.770990, 52.229229),\n    (19.771830, 52.229301),\n    (19.772200, 52.229340),\n    (19.772619, 52.229401),\n    (19.774870, 52.230049),\n    (19.776630, 52.230549),\n    (19.777651, 52.230820),\n    (19.779461, 52.231339),\n    (19.781460, 52.231930),\n    (19.781960, 52.232040),\n    (19.782419, 52.232079),\n    (19.786301, 52.232231),\n    (19.790260, 52.232361),\n    (19.793949, 52.232498),\n    (19.795410, 52.232559),\n    (19.797871, 52.232639),\n    (19.800650, 52.232738),\n    (19.803659, 52.232849),\n    (19.806290, 52.232948),\n    (19.810631, 52.233089),\n    (19.812740, 52.233170),\n    (19.814779, 52.233250),\n    (19.815491, 52.233280),\n    (19.818729, 52.233391),\n    (19.821711, 52.233501),\n    (19.823891, 52.233551),\n    (19.824261, 52.233570),\n    (19.826160, 52.233631),\n    (19.831699, 52.233810),\n    (19.833719, 52.233860),\n    (19.835661, 52.233860),\n    (19.839380, 52.233849),\n    (19.842951, 52.233841),\n    (19.844761, 52.233849),\n    (19.846251, 52.233841),\n    (19.847139, 52.233829),\n    (19.847580, 52.233841),\n    (19.847980, 52.233910),\n    (19.848709, 52.234051),\n    (19.849331, 52.234161),\n    (19.849850, 52.234268),\n    (19.851650, 52.234638),\n    (19.853239, 52.234798),\n    (19.853809, 52.234890),\n    (19.854219, 52.235050),\n    (19.855499, 52.236351),\n    (19.856110, 52.236679),\n    (19.861731, 52.239120),\n    (19.865940, 52.241058),\n    (19.867241, 52.241619),\n    (19.867809, 52.241692),\n    (19.869671, 52.241741),\n    (19.871321, 52.241741),\n    (19.871481, 52.241730),\n    (19.873211, 52.241638),\n    (19.873730, 52.241581),\n    (19.880541, 52.241299),\n    (19.880989, 52.241249),\n    (19.881069, 52.241280),\n    (19.883221, 52.241211),\n    (19.886360, 52.241070),\n    (19.892839, 52.240810),\n    (19.895020, 52.240730),\n    (19.895981, 52.240688),\n    (19.896460, 52.240711),\n    (19.897890, 52.240940),\n    (19.900591, 52.241341),\n    (19.901649, 52.241508),\n    (19.906429, 52.242229),\n    (19.909010, 52.242599),\n    (19.910391, 52.242802),\n    (19.911840, 52.243011),\n    (19.914829, 52.243469),\n    (19.917040, 52.243809),\n    (19.917509, 52.243881),\n    (19.917879, 52.243889),\n    (19.920160, 52.243790),\n    (19.920200, 52.243778),\n    (19.920980, 52.243771),\n    (19.921101, 52.243759),\n    (19.921640, 52.243660),\n    (19.922079, 52.243568),\n    (19.922310, 52.243488),\n    (19.924030, 52.243462),\n    (19.925440, 52.243469),\n    (19.927071, 52.243500),\n    (19.929750, 52.243519),\n    (19.931709, 52.243542),\n    (19.934771, 52.243568),\n    (19.935450, 52.243580),\n    (19.936270, 52.243580),\n    (19.936649, 52.243580),\n    (19.936911, 52.243629),\n    (19.940519, 52.244499),\n    (19.941170, 52.244671),\n    (19.946720, 52.246010),\n    (19.950979, 52.247082),\n    (19.955580, 52.248169),\n    (19.959391, 52.249088),\n    (19.962049, 52.249729),\n    (19.964821, 52.250420),\n    (19.967421, 52.251060),\n    (19.967550, 52.251091),\n    (19.968969, 52.251400),\n    (19.973110, 52.252430),\n    (19.973419, 52.252499),\n    (19.973690, 52.252560),\n    (19.978081, 52.253632),\n    (19.981970, 52.254551),\n    (19.982330, 52.254581),\n    (19.982809, 52.254761),\n    (19.983610, 52.254951),\n    (19.985109, 52.255341),\n    (19.987591, 52.255970),\n    (19.990191, 52.256569),\n    (19.991199, 52.256821),\n    (19.991449, 52.256809),\n    (19.992290, 52.256729),\n    (19.994390, 52.256630),\n    (19.996040, 52.256561),\n    (19.997040, 52.256519),\n    (19.998659, 52.256489),\n    (20.006901, 52.256699),\n    (20.008631, 52.256741),\n    (20.017210, 52.256939),\n    (20.017700, 52.256931),\n    (20.024111, 52.256859),\n    (20.033489, 52.256741),\n    (20.041599, 52.256641),\n    (20.042749, 52.256630),\n    (20.043699, 52.256550),\n    (20.046391, 52.256149),\n    (20.049400, 52.255630),\n    (20.050341, 52.255451),\n    (20.055519, 52.254520),\n    (20.057230, 52.254219),\n    (20.059910, 52.253738),\n    (20.062420, 52.253300),\n    (20.069441, 52.251968),\n    (20.076811, 52.250462),\n    (20.085699, 52.248772),\n    (20.086180, 52.248619),\n    (20.086800, 52.248508),\n    (20.092779, 52.248169),\n    (20.093170, 52.248119),\n    (20.093321, 52.248058),\n    (20.100500, 52.243580),\n    (20.101419, 52.243011),\n    (20.101810, 52.242760),\n    (20.102091, 52.242619),\n    (20.102360, 52.242538),\n    (20.102930, 52.242409),\n    (20.103340, 52.242310),\n    (20.103781, 52.242180),\n    (20.105459, 52.241501),\n    (20.105600, 52.241531),\n    (20.117611, 52.240589),\n    (20.120569, 52.240398),\n    (20.129551, 52.240070),\n    (20.134100, 52.239910),\n    (20.136419, 52.239819),\n    (20.138590, 52.239761),\n    (20.140120, 52.239719),\n    (20.141211, 52.239700),\n    (20.142941, 52.239799),\n    (20.144850, 52.239899),\n    (20.147341, 52.240059),\n    (20.153601, 52.239491),\n    (20.156521, 52.239120),\n    (20.160561, 52.238430),\n    (20.165649, 52.238770),\n    (20.167259, 52.238850),\n    (20.168070, 52.239040),\n    (20.175770, 52.241760),\n    (20.179319, 52.242931),\n    (20.181070, 52.240528),\n    (20.181629, 52.239670),\n    (20.182261, 52.238819),\n    (20.182320, 52.238739),\n    (20.182440, 52.238762),\n    (20.182940, 52.238918),\n    (20.183180, 52.238960),\n    (20.183559, 52.238979),\n    (20.183950, 52.238918),\n    (20.185961, 52.238529),\n    (20.193470, 52.237030),\n    (20.197439, 52.236229),\n    (20.199650, 52.235779),\n    (20.201540, 52.235401),\n    (20.203171, 52.235069),\n    (20.211411, 52.233421),\n    (20.216820, 52.232349),\n    (20.219151, 52.231869),\n    (20.222700, 52.231152),\n    (20.223780, 52.230881),\n    (20.224131, 52.230770),\n    (20.224220, 52.230740),\n    (20.224400, 52.230721),\n    (20.224819, 52.230701),\n    (20.225531, 52.230640),\n    (20.226259, 52.230591),\n    (20.227551, 52.230480),\n    (20.230730, 52.230099),\n    (20.232109, 52.229961),\n    (20.235849, 52.229580),\n    (20.236610, 52.229500),\n    (20.237221, 52.229439),\n    (20.238300, 52.229351),\n    (20.240570, 52.229149),\n    (20.245220, 52.228699),\n    (20.247200, 52.228539),\n    (20.247290, 52.228531),\n    (20.250999, 52.228199),\n    (20.251249, 52.228180),\n    (20.254890, 52.227859),\n    (20.256281, 52.227741),\n    (20.258261, 52.227570),\n    (20.264879, 52.226952),\n    (20.265450, 52.226830),\n    (20.265760, 52.226528),\n    (20.265970, 52.226158),\n    (20.266020, 52.226082),\n    (20.266050, 52.226021),\n    (20.267429, 52.226261),\n    (20.267891, 52.226398),\n    (20.269930, 52.226471),\n    (20.270821, 52.226421),\n    (20.279560, 52.225651),\n    (20.284170, 52.225231),\n    (20.312540, 52.222660),\n    (20.312559, 52.222660),\n    (20.332560, 52.220852),\n    (20.337410, 52.220421),\n    (20.341660, 52.220032),\n    (20.349609, 52.219318),\n    (20.360630, 52.218319),\n    (20.371441, 52.217331),\n    (20.379770, 52.216560),\n    (20.386440, 52.215939),\n    (20.399679, 52.214710),\n    (20.410049, 52.213760),\n    (20.416161, 52.213200),\n    (20.421209, 52.212730),\n    (20.428320, 52.212090),\n    (20.430229, 52.211891),\n    (20.432301, 52.211700),\n    (20.442711, 52.210758),\n    (20.444670, 52.210590),\n    (20.457140, 52.209419),\n    (20.464710, 52.208721),\n    (20.488091, 52.206589),\n    (20.504660, 52.205059),\n    (20.512369, 52.204350),\n    (20.513290, 52.204269),\n    (20.528410, 52.202869),\n    (20.541780, 52.201641),\n    (20.545820, 52.201469),\n    (20.571939, 52.200390),\n    (20.603590, 52.199059),\n    (20.605860, 52.198990),\n    (20.605989, 52.198990),\n    (20.606270, 52.198978),\n    (20.609030, 52.198841),\n    (20.610081, 52.198799),\n    (20.612419, 52.198711),\n    (20.615770, 52.198582),\n    (20.616989, 52.198528),\n    (20.617180, 52.198528),\n    (20.617800, 52.198502),\n    (20.619940, 52.199001),\n    (20.621490, 52.199360),\n    (20.622860, 52.199680),\n    (20.623730, 52.199902),\n    (20.624050, 52.199982),\n    (20.625120, 52.200249),\n    (20.630800, 52.201630),\n    (20.650591, 52.206440),\n    (20.653879, 52.207199),\n    (20.656031, 52.207699),\n    (20.656719, 52.207859),\n    (20.659109, 52.208321),\n    (20.663530, 52.208889),\n    (20.664450, 52.208988),\n    (20.673531, 52.210060),\n    (20.681749, 52.211029),\n    (20.684040, 52.211300),\n    (20.684271, 52.211330),\n    (20.688919, 52.211842),\n    (20.691401, 52.212139),\n    (20.696220, 52.212730),\n    (20.699341, 52.212742),\n    (20.700979, 52.212711),\n    (20.707050, 52.212570),\n    (20.714899, 52.212391),\n    (20.735781, 52.211922),\n    (20.740480, 52.211800),\n    (20.747881, 52.211632),\n    (20.748190, 52.211620),\n    (20.756330, 52.211430),\n    (20.757820, 52.211399),\n    (20.764900, 52.211239),\n    (20.768450, 52.211151),\n    (20.769911, 52.211121),\n    (20.774481, 52.210991),\n    (20.776991, 52.210911),\n    (20.777290, 52.210899),\n    (20.778219, 52.210880),\n    (20.779650, 52.210838),\n    (20.782400, 52.210770),\n    (20.785101, 52.210690),\n    (20.785780, 52.210678),\n    (20.788231, 52.210579),\n    (20.788971, 52.210560),\n    (20.791401, 52.210499),\n    (20.793079, 52.210461),\n    (20.794001, 52.210442),\n    (20.794769, 52.210411),\n    (20.796230, 52.210381),\n    (20.797279, 52.210331),\n    (20.798109, 52.210300),\n    (20.801121, 52.210232),\n    (20.804319, 52.210140),\n    (20.807760, 52.210041),\n    (20.809210, 52.209999),\n    (20.809710, 52.209999),\n    (20.810190, 52.210030),\n    (20.810459, 52.210060),\n    (20.810530, 52.210079),\n    (20.811230, 52.210178),\n    (20.817699, 52.211182),\n    (20.823919, 52.212151),\n    (20.825809, 52.212440),\n    (20.826891, 52.212551),\n    (20.830940, 52.213100),\n    (20.835529, 52.213821),\n    (20.838430, 52.214272),\n    (20.838989, 52.214352),\n    (20.839729, 52.214451),\n    (20.841749, 52.214741),\n    (20.845209, 52.214951),\n    (20.849510, 52.215221),\n    (20.849810, 52.215240),\n    (20.859699, 52.215832),\n    (20.859930, 52.215839),\n    (20.861000, 52.215900),\n    (20.861971, 52.215961),\n    (20.862600, 52.216000),\n    (20.864870, 52.216141),\n    (20.865061, 52.216148),\n    (20.867830, 52.216320),\n    (20.869600, 52.216419),\n    (20.871410, 52.216431),\n    (20.873581, 52.216431),\n    (20.873911, 52.216431),\n    (20.874929, 52.216389),\n    (20.877769, 52.216381),\n    (20.880011, 52.216381),\n    (20.880110, 52.216381),\n    (20.880430, 52.216370),\n    (20.880590, 52.216370),\n    (20.882721, 52.216381),\n    (20.883820, 52.216381),\n    (20.885969, 52.216381),\n    (20.888700, 52.216389),\n    (20.890570, 52.216370),\n    (20.890720, 52.216370),\n    (20.892530, 52.216358),\n    (20.896070, 52.216370),\n    (20.896629, 52.216389),\n    (20.897150, 52.216431),\n    (20.897690, 52.216480),\n    (20.898470, 52.216572),\n    (20.900440, 52.216770),\n    (20.900890, 52.216808),\n    (20.901470, 52.216869),\n    (20.901930, 52.216930),\n    (20.904011, 52.217159),\n    (20.904280, 52.217209),\n    (20.906019, 52.217579),\n    (20.907990, 52.218021),\n    (20.909330, 52.218342),\n    (20.909580, 52.218399),\n    (20.910271, 52.218559),\n    (20.914419, 52.219501),\n    (20.915840, 52.219879),\n    (20.916050, 52.219921),\n    (20.916210, 52.219971),\n    (20.916550, 52.220051),\n    (20.918680, 52.220539),\n    (20.920620, 52.221008),\n    (20.921289, 52.221161),\n    (20.923550, 52.221710),\n    (20.924530, 52.221939),\n    (20.925131, 52.222080),\n    (20.926991, 52.222500),\n    (20.928200, 52.222778),\n    (20.929831, 52.223190),\n    (20.930031, 52.223240),\n    (20.930210, 52.223289),\n    (20.931520, 52.223671),\n    (20.932190, 52.223881),\n    (20.932739, 52.224041),\n    (20.936180, 52.225071),\n    (20.936390, 52.225140),\n    (20.936680, 52.225220),\n    (20.936890, 52.225269),\n    (20.938530, 52.225620),\n    (20.939369, 52.225719),\n    (20.939659, 52.225761),\n    (20.940701, 52.225788),\n    (20.941589, 52.225868),\n    (20.941660, 52.225880),\n    (20.941980, 52.225929),\n    (20.942369, 52.225979),\n    (20.944630, 52.226311),\n    (20.946051, 52.226559),\n    (20.948071, 52.226921),\n    (20.951281, 52.227390),\n    (20.951660, 52.227451),\n    (20.951990, 52.227482),\n    (20.954250, 52.227638),\n    (20.955820, 52.227730),\n    (20.956141, 52.227730),\n    (20.956659, 52.227692),\n    (20.956940, 52.227692),\n    (20.957491, 52.227730),\n    (20.957609, 52.227760),\n    (20.958191, 52.227890),\n    (20.958549, 52.227940),\n    (20.959330, 52.227970),\n    (20.959591, 52.225151),\n    (20.959650, 52.224880),\n    (20.959721, 52.224800),\n    (20.960070, 52.224739),\n    (20.960630, 52.224659),\n    (20.961420, 52.224541),\n    (20.962500, 52.224388),\n    (20.963850, 52.224209),\n    (20.964861, 52.224060),\n    (20.967770, 52.223629),\n    (20.968719, 52.223499),\n    (20.969360, 52.223400),\n    (20.969971, 52.223309),\n    (20.970280, 52.223282),\n    (20.971260, 52.223469),\n    (20.971821, 52.223560),\n    (20.974091, 52.224079),\n    (20.975559, 52.224388),\n    (20.977409, 52.224800),\n    (20.977730, 52.224861),\n    (20.978390, 52.225170),\n    (20.981100, 52.225750),\n    (20.983339, 52.226189),\n    (20.984390, 52.226479),\n    (20.986641, 52.227268),\n    (20.986820, 52.227291),\n    (20.987040, 52.227139),\n    (20.987261, 52.226891),\n    (20.987410, 52.226669),\n    (20.987520, 52.226440),\n    (20.988010, 52.225811),\n    (20.988230, 52.225510),\n    (20.988581, 52.225090),\n    (20.988649, 52.225010),\n    (20.988560, 52.224949),\n    (20.988569, 52.224850),\n    (20.988680, 52.224689),\n    (20.988750, 52.224628),\n    (20.988760, 52.224621),\n    (20.988779, 52.224602),\n    (20.988791, 52.224590),\n    (20.988831, 52.224548),\n    (20.988970, 52.224461),\n    (20.989599, 52.224682),\n    (20.989771, 52.224739),\n    (20.990841, 52.225159),\n    (20.991171, 52.225250),\n    (20.992580, 52.225571),\n    (20.995470, 52.226250),\n    (20.995750, 52.226311),\n    (20.995831, 52.226330),\n    (20.995859, 52.226330),\n    (20.996000, 52.226360),\n    (20.996201, 52.226410),\n    (20.997089, 52.226620),\n    (20.999750, 52.227180),\n    (21.000700, 52.227360),\n    (21.001249, 52.227421),\n    (21.001730, 52.227428),\n    (21.002090, 52.227482),\n    (21.002359, 52.227581),\n    (21.003170, 52.227810),\n    (21.003839, 52.228001),\n    (21.005409, 52.228352),\n    (21.007721, 52.228859),\n    (21.009621, 52.229259),\n    (21.010559, 52.229469),\n    (21.010960, 52.229542),\n    (21.011259, 52.229549),\n    (21.011431, 52.229542),\n    (21.011551, 52.229542),\n    (21.011749, 52.229561),\n    (21.011850, 52.229568),\n    (21.011900, 52.229580),\n    (21.012110, 52.229641),\n    (21.012190, 52.229691),\n    (21.012230, 52.229740),\n    (21.012640, 52.229900),\n    (21.012960, 52.230000),\n    (21.013281, 52.230049),\n    (21.014391, 52.230289),\n    (21.016171, 52.230671),\n    (21.016390, 52.230709),\n    (21.016710, 52.230782),\n    (21.018749, 52.231201),\n    (21.020380, 52.231529),\n    (21.020720, 52.231571),\n    (21.020769, 52.231571),\n    (21.020910, 52.231571),\n    (21.021009, 52.231590),\n    (21.021170, 52.231651),\n    (21.021379, 52.231781),\n    (21.021740, 52.231899),\n    (21.022949, 52.232140),\n    (21.023741, 52.232319),\n    (21.025000, 52.232590),\n    (21.026150, 52.232830),\n    (21.026369, 52.232880),\n    (21.026640, 52.232941),\n    (21.032320, 52.234119),\n    (21.033760, 52.234409),\n    (21.034439, 52.234550),\n    (21.035789, 52.234821),\n    (21.036739, 52.234970),\n    (21.037279, 52.235100),\n    (21.037399, 52.235142),\n    (21.037540, 52.235180),\n    (21.044930, 52.236691),\n    (21.045219, 52.236740),\n    (21.045389, 52.236771),\n    (21.046270, 52.236938),\n    (21.047819, 52.237259),\n    (21.048960, 52.237492),\n    (21.049299, 52.237549),\n    (21.049641, 52.237621),\n    (21.050110, 52.237709),\n    (21.050619, 52.237782),\n    (21.050800, 52.237801),\n    (21.051121, 52.237820),\n    (21.051571, 52.237831),\n    (21.051750, 52.237862),\n    (21.051889, 52.237881),\n    (21.052010, 52.237919),\n    (21.052191, 52.237961),\n    (21.052429, 52.238079),\n    (21.052650, 52.238178),\n    (21.052919, 52.238289),\n    (21.053579, 52.238499),\n    (21.054090, 52.238640),\n    (21.055361, 52.238892),\n    (21.055691, 52.238960),\n    (21.058580, 52.239552),\n    (21.059811, 52.239799),\n    (21.061790, 52.240211),\n    (21.062330, 52.240318),\n    (21.062550, 52.240372),\n    (21.064421, 52.240749),\n    (21.069500, 52.241791),\n    (21.071520, 52.242210),\n    (21.071791, 52.242260),\n    (21.075680, 52.243061),\n    (21.075800, 52.243092),\n    (21.077669, 52.243469),\n    (21.077971, 52.243530),\n    (21.081539, 52.244259),\n    (21.082701, 52.244499),\n    (21.083500, 52.244652),\n    (21.083839, 52.244690),\n    (21.083910, 52.244629),\n    (21.083969, 52.244591),\n    (21.084221, 52.244461),\n    (21.084440, 52.244411),\n    (21.084810, 52.244381),\n    (21.085100, 52.244419),\n    (21.085310, 52.244480),\n    (21.085489, 52.244560),\n    (21.085699, 52.244678),\n    (21.085831, 52.244751),\n    (21.086000, 52.244781),\n    (21.086281, 52.244781),\n    (21.087080, 52.244740),\n    (21.088400, 52.244671),\n    (21.088659, 52.244709),\n    (21.088900, 52.244759),\n    (21.089130, 52.244820),\n    (21.089399, 52.244862),\n    (21.089540, 52.244839),\n    (21.090120, 52.244751),\n    (21.090960, 52.244610),\n    (21.092991, 52.244202),\n    (21.094851, 52.243809),\n    (21.094940, 52.243801),\n    (21.095190, 52.243740),\n    (21.095350, 52.243710),\n    (21.095461, 52.243690),\n    (21.095631, 52.243649),\n    (21.097300, 52.243290),\n    (21.097771, 52.243191),\n    (21.099270, 52.242882),\n    (21.099951, 52.242741),\n    (21.101561, 52.242401),\n    (21.101870, 52.242340),\n    (21.102100, 52.242290),\n    (21.102381, 52.242222),\n    (21.103750, 52.241940),\n    (21.105391, 52.241581),\n    (21.106760, 52.241291),\n    (21.107389, 52.241161),\n    (21.107531, 52.241131),\n    (21.108259, 52.240971),\n    (21.109070, 52.240799),\n    (21.110590, 52.240479),\n    (21.113319, 52.239899),\n    (21.113800, 52.239792),\n    (21.114130, 52.239700),\n    (21.114300, 52.239658),\n    (21.115021, 52.239429),\n    (21.115240, 52.239349),\n    (21.115629, 52.239208),\n    (21.116280, 52.238930),\n    (21.118500, 52.237930),\n    (21.120090, 52.237251),\n    (21.120291, 52.237148),\n    (21.120520, 52.237049),\n    (21.121441, 52.236649),\n    (21.122311, 52.236271),\n    (21.123060, 52.235931),\n    (21.124081, 52.235500),\n    (21.125320, 52.234959),\n    (21.125690, 52.234779),\n    (21.126040, 52.234570),\n    (21.126240, 52.234440),\n    (21.126410, 52.234299),\n    (21.126511, 52.234200),\n    (21.126551, 52.234100),\n    (21.126480, 52.234020),\n    (21.126431, 52.233910),\n    (21.126419, 52.233829),\n    (21.126459, 52.233700),\n    (21.126539, 52.233601),\n    (21.126680, 52.233501),\n    (21.126850, 52.233440),\n    (21.127010, 52.233410),\n    (21.127220, 52.233398),\n    (21.127430, 52.233440),\n    (21.127661, 52.233540),\n    (21.127729, 52.233589),\n    (21.127790, 52.233650),\n    (21.127850, 52.233761),\n    (21.127859, 52.233849),\n    (21.127819, 52.234001),\n    (21.127769, 52.234070),\n    (21.127729, 52.234150),\n    (21.127760, 52.234219),\n    (21.128941, 52.235310),\n    (21.129070, 52.235420),\n    (21.130039, 52.236340),\n    (21.130600, 52.236900),\n    (21.130711, 52.237080),\n    (21.130810, 52.237209),\n    (21.130871, 52.237309),\n    (21.130899, 52.237389),\n    (21.130951, 52.237709),\n    (21.131290, 52.238060),\n    (21.131580, 52.238312),\n    (21.131861, 52.238571),\n    (21.132740, 52.239399),\n    (21.133150, 52.239750),\n    (21.134050, 52.240440),\n    (21.134529, 52.240810),\n    (21.135059, 52.241219),\n    (21.135590, 52.241711),\n    (21.135830, 52.241730),\n    (21.137260, 52.242840),\n    (21.137470, 52.243000),\n    (21.138510, 52.243809),\n    (21.138700, 52.243950),\n    (21.138840, 52.244061),\n    (21.139179, 52.244320),\n    (21.139400, 52.244480),\n    (21.140181, 52.245140),\n    (21.141460, 52.246422),\n    (21.141590, 52.246540),\n    (21.142651, 52.247391),\n    (21.143499, 52.248131),\n    (21.144341, 52.249088),\n    (21.144520, 52.249279),\n    (21.144859, 52.249531),\n    (21.145710, 52.250050),\n    (21.151991, 52.252911),\n    (21.152651, 52.253220),\n    (21.154461, 52.254501),\n    (21.154980, 52.254848),\n    (21.155220, 52.255001),\n    (21.155270, 52.255039),\n    (21.156580, 52.255959),\n    (21.156540, 52.256119),\n    (21.156410, 52.256359),\n    (21.156401, 52.256611),\n    (21.156521, 52.257229),\n    (21.156561, 52.257389),\n    (21.156590, 52.257439),\n    (21.156679, 52.257469),\n    (21.156910, 52.257481),\n    (21.158649, 52.257431),\n    (21.158951, 52.257420),\n    (21.159460, 52.257389),\n    (21.160879, 52.257320),\n    (21.165060, 52.257160),\n    (21.168831, 52.256981),\n    (21.169411, 52.257000),\n    (21.170540, 52.257030),\n    (21.171551, 52.256981),\n    (21.172991, 52.256920),\n    (21.174320, 52.256851),\n    (21.175619, 52.256790),\n    (21.176781, 52.256729),\n    (21.178049, 52.256672),\n    (21.178301, 52.256660),\n    (21.178471, 52.256649),\n    (21.179440, 52.256592),\n    (21.180731, 52.256550),\n    (21.208300, 52.255299),\n    (21.208910, 52.255268),\n    (21.220619, 52.254688),\n    (21.222561, 52.254589),\n    (21.224140, 52.254520),\n    (21.227230, 52.254391),\n    (21.229210, 52.254311),\n    (21.252150, 52.253189),\n    (21.252090, 52.254688),\n    (21.252371, 52.255081),\n    (21.252649, 52.255192),\n    (21.253269, 52.255440),\n    (21.253820, 52.256069),\n    (21.253839, 52.256432),\n    (21.253519, 52.257130),\n    (21.253510, 52.257450),\n    (21.254860, 52.258018),\n    (21.257771, 52.259048),\n    (21.259520, 52.259350),\n    (21.262800, 52.260132),\n    (21.263500, 52.260231),\n    (21.264410, 52.260502),\n    (21.265249, 52.260578),\n    (21.267340, 52.261181),\n    (21.269720, 52.261951),\n    (21.270981, 52.262272),\n    (21.271311, 52.262310),\n    (21.271570, 52.262341),\n    (21.272141, 52.262489),\n    (21.276079, 52.263840),\n    (21.278299, 52.264370),\n    (21.279119, 52.264568),\n    (21.286650, 52.265968),\n    (21.288630, 52.266380),\n    (21.294300, 52.267342),\n    (21.295530, 52.267578),\n    (21.295971, 52.267540),\n    (21.296370, 52.267750),\n    (21.296820, 52.267910),\n    (21.299459, 52.268410),\n    (21.300091, 52.268589),\n    (21.301479, 52.269199),\n    (21.302441, 52.269920),\n    (21.302620, 52.270000),\n    (21.302870, 52.270111),\n    (21.302999, 52.270168),\n    (21.304131, 52.270580),\n    (21.306370, 52.271370),\n    (21.307011, 52.271858),\n    (21.307581, 52.272251),\n    (21.308371, 52.272812),\n    (21.309580, 52.273640),\n    (21.309731, 52.273720),\n    (21.309919, 52.273750),\n    (21.310530, 52.273720),\n    (21.311609, 52.273628),\n    (21.312401, 52.273590),\n    (21.312599, 52.273590),\n    (21.313869, 52.273701),\n    (21.316839, 52.274281),\n    (21.318609, 52.274639),\n    (21.319241, 52.274712),\n    (21.330360, 52.275379),\n    (21.331360, 52.275372),\n    (21.332310, 52.275291),\n    (21.342470, 52.274471),\n    (21.346479, 52.274170),\n    (21.348869, 52.273731),\n    (21.358480, 52.271099),\n    (21.360519, 52.270748),\n    (21.365950, 52.270241),\n    (21.371161, 52.269810),\n    (21.377380, 52.269169),\n    (21.379520, 52.268829),\n    (21.385941, 52.267799),\n    (21.409889, 52.264690),\n    (21.417910, 52.264622),\n    (21.421129, 52.263962),\n    (21.424780, 52.263458),\n    (21.431490, 52.262821),\n    (21.432850, 52.262859),\n    (21.434200, 52.263119),\n    (21.436190, 52.263790),\n    (21.441469, 52.265820),\n    (21.449129, 52.267410),\n    (21.460421, 52.270741),\n    (21.462460, 52.271339),\n    (21.462589, 52.271381),\n    (21.464279, 52.271870),\n    (21.465580, 52.272141),\n    (21.467930, 52.272419),\n    (21.473370, 52.273079),\n    (21.474079, 52.273239),\n    (21.476101, 52.274078),\n    (21.476910, 52.274261),\n    (21.478580, 52.274490),\n    (21.486990, 52.275291),\n    (21.495800, 52.276199),\n    (21.497709, 52.276409),\n    (21.511250, 52.278950),\n    (21.514771, 52.279652),\n    (21.523621, 52.281479),\n    (21.524710, 52.281830),\n    (21.532551, 52.285461),\n    (21.535490, 52.286751),\n    (21.537130, 52.288689),\n    (21.537519, 52.288940),\n    (21.537979, 52.289101),\n    (21.538380, 52.289150),\n    (21.538790, 52.289169),\n    (21.539989, 52.289211),\n    (21.541809, 52.289268),\n    (21.541929, 52.289268),\n    (21.544279, 52.289310),\n    (21.546591, 52.289360),\n    (21.548090, 52.289360),\n    (21.548830, 52.289360),\n    (21.553391, 52.289600),\n    (21.553949, 52.289631),\n    (21.554390, 52.290321),\n    (21.554461, 52.290421),\n    (21.554840, 52.291618),\n    (21.555080, 52.292839),\n    (21.555550, 52.296009),\n    (21.556990, 52.297119),\n    (21.561310, 52.299980),\n    (21.568979, 52.305168),\n    (21.574070, 52.308479),\n    (21.576059, 52.309200),\n    (21.578119, 52.309792),\n    (21.580690, 52.310219),\n    (21.583160, 52.310631),\n    (21.584400, 52.310799),\n    (21.585859, 52.311031),\n    (21.586910, 52.310902),\n    (21.588421, 52.310452),\n    (21.589760, 52.310150),\n    (21.590960, 52.310040),\n    (21.591801, 52.310162),\n    (21.593981, 52.310760),\n    (21.618759, 52.317848),\n    (21.623739, 52.319279),\n    (21.624611, 52.319530),\n    (21.626089, 52.319729),\n    (21.627260, 52.319679),\n    (21.629009, 52.319370),\n    (21.631081, 52.319279),\n    (21.635151, 52.319199),\n    (21.635220, 52.319191),\n    (21.644079, 52.318890),\n    (21.651810, 52.318569),\n    (21.655870, 52.318390),\n    (21.657030, 52.318359),\n    (21.658279, 52.318420),\n    (21.659140, 52.318630),\n    (21.660610, 52.319111),\n    (21.663679, 52.320122),\n    (21.663679, 52.320122),\n    (21.664940, 52.320580),\n    (21.666229, 52.321301),\n    (21.667210, 52.322010),\n    (21.667700, 52.322361),\n    (21.668659, 52.323040),\n    (21.669531, 52.323551),\n    (21.670570, 52.323971),\n    (21.671350, 52.324211),\n    (21.672510, 52.324429),\n    (21.673679, 52.324532),\n    (21.675220, 52.324501),\n    (21.679590, 52.324162),\n    (21.682070, 52.324200),\n    (21.686239, 52.324348),\n    (21.688061, 52.324478),\n    (21.689051, 52.324650),\n    (21.690281, 52.325020),\n    (21.691530, 52.325588),\n    (21.706160, 52.333389),\n    (21.710211, 52.335529),\n    (21.711380, 52.336159),\n    (21.712780, 52.336731),\n    (21.714380, 52.337170),\n    (21.717489, 52.338428),\n    (21.718840, 52.339039),\n    (21.720430, 52.339828),\n    (21.722851, 52.341389),\n    (21.728460, 52.345242),\n    (21.729950, 52.346291),\n    (21.730619, 52.346859),\n    (21.731079, 52.347191),\n    (21.734051, 52.348969),\n    (21.734230, 52.349091),\n    (21.735420, 52.349838),\n    (21.738180, 52.351398),\n    (21.739260, 52.351910),\n    (21.743040, 52.353119),\n    (21.744619, 52.353531),\n    (21.746840, 52.354050),\n    (21.748810, 52.354969),\n    (21.749781, 52.355381),\n    (21.752371, 52.356140),\n    (21.753441, 52.356461),\n    (21.754669, 52.356998),\n    (21.755880, 52.357750),\n    (21.760290, 52.359798),\n    (21.761850, 52.360470),\n    (21.763691, 52.361130),\n    (21.768230, 52.362431),\n    (21.771500, 52.363331),\n    (21.773350, 52.363739),\n    (21.776381, 52.365059),\n    (21.779610, 52.366371),\n    (21.789061, 52.370701),\n    (21.790079, 52.371208),\n    (21.791201, 52.371620),\n    (21.792629, 52.371830),\n    (21.794001, 52.371861),\n    (21.796570, 52.371811),\n    (21.798870, 52.371861),\n    (21.802040, 52.372070),\n    (21.804840, 52.372311),\n    (21.806259, 52.372330),\n    (21.807449, 52.372631),\n    (21.808580, 52.372940),\n    (21.812031, 52.373520),\n    (21.813471, 52.373600),\n    (21.822800, 52.373531),\n    (21.825130, 52.373459),\n    (21.828079, 52.373459),\n    (21.841631, 52.374420),\n    (21.843430, 52.374519),\n    (21.844460, 52.374531),\n    (21.845360, 52.374432),\n    (21.846500, 52.374161),\n    (21.847811, 52.373772),\n    (21.848740, 52.373569),\n    (21.849770, 52.373402),\n    (21.850710, 52.373390),\n    (21.880100, 52.376629),\n    (21.889009, 52.377659),\n    (21.890329, 52.377831),\n    (21.892250, 52.377869),\n    (21.902870, 52.377209),\n    (21.904329, 52.377121),\n    (21.907120, 52.376740),\n    (21.910721, 52.376141),\n    (21.912140, 52.375919),\n    (21.913549, 52.375568),\n    (21.916920, 52.375431),\n    (21.920151, 52.374729),\n    (21.927441, 52.374241),\n    (21.931620, 52.373970),\n    (21.958200, 52.371609),\n    (21.958910, 52.371590),\n    (21.959970, 52.371681),\n    (21.961691, 52.371868),\n    (21.962250, 52.371819),\n    (21.962709, 52.371780),\n    (21.963120, 52.371799),\n    (21.963461, 52.371880),\n    (21.964701, 52.372318),\n    (21.965450, 52.372581),\n    (21.966000, 52.372940),\n    (21.966610, 52.373611),\n    (21.966860, 52.373951),\n    (21.967199, 52.374359),\n    (21.967529, 52.374859),\n    (21.967791, 52.375622),\n    (21.968189, 52.376652),\n    (21.969030, 52.377991),\n    (21.970510, 52.379929),\n    (21.970579, 52.380089),\n    (21.970690, 52.380119),\n    (21.970739, 52.380161),\n    (21.970751, 52.380180),\n    (21.970819, 52.380219),\n    (21.970940, 52.380268),\n    (21.971210, 52.380371),\n    (21.974350, 52.380951),\n    (21.982210, 52.382401),\n    (21.985380, 52.382938),\n    (21.986111, 52.382919),\n    (21.986540, 52.382851),\n    (21.987440, 52.382622),\n    (21.991730, 52.381180),\n    (21.991899, 52.381130),\n    (21.992439, 52.380970),\n    (21.992910, 52.380859),\n    (21.993509, 52.380821),\n    (21.993980, 52.380878),\n    (22.006540, 52.386799),\n    (22.010229, 52.388500),\n    (22.011240, 52.389080),\n    (22.011520, 52.389408),\n    (22.011700, 52.389690),\n    (22.011869, 52.389999),\n    (22.011921, 52.390091),\n    (22.012440, 52.391010),\n    (22.012850, 52.391628),\n    (22.012991, 52.391769),\n    (22.013041, 52.391739),\n    (22.013140, 52.391731),\n    (22.013241, 52.391762),\n    (22.013300, 52.391819),\n    (22.013430, 52.391819),\n    (22.013580, 52.391811),\n    (22.013781, 52.391811),\n    (22.014280, 52.391830),\n    (22.015060, 52.391899),\n    (22.015680, 52.392139),\n    (22.016260, 52.392479),\n    (22.016359, 52.392559),\n    (22.017260, 52.393471),\n    (22.017691, 52.393719),\n    (22.018280, 52.393890),\n    (22.019011, 52.393921),\n    (22.019711, 52.393909),\n    (22.020140, 52.393879),\n    (22.020849, 52.393822),\n    (22.024771, 52.394051),\n    (22.025539, 52.394112),\n    (22.025700, 52.394131),\n    (22.025721, 52.394081),\n    (22.025780, 52.394039),\n    (22.025850, 52.394009),\n    (22.025930, 52.394001),\n    (22.026039, 52.394020),\n    (22.026091, 52.394051),\n    (22.026150, 52.394131),\n    (22.026150, 52.394180),\n    (22.026110, 52.394230),\n    (22.026310, 52.394360),\n    (22.026461, 52.394482),\n    (22.026680, 52.394699),\n    (22.026779, 52.394878),\n    (22.027121, 52.395760),\n    (22.027201, 52.396240),\n    (22.027451, 52.396919),\n    (22.027620, 52.397678),\n    (22.027580, 52.397949),\n    (22.027309, 52.398819),\n    (22.027229, 52.399040),\n    (22.027399, 52.399090),\n    (22.027460, 52.399170),\n    (22.027470, 52.399239),\n    (22.027639, 52.399239),\n    (22.028191, 52.399101),\n    (22.029560, 52.399181),\n    (22.046600, 52.402012),\n    (22.049709, 52.402531),\n    (22.059540, 52.404480),\n    (22.060699, 52.404739),\n    (22.064110, 52.405060),\n    (22.065630, 52.405170),\n    (22.067539, 52.405411),\n    (22.068550, 52.405621),\n    (22.069670, 52.405708),\n    (22.070980, 52.405602),\n    (22.072430, 52.405090),\n    (22.073549, 52.404610),\n    (22.074150, 52.404442),\n    (22.078440, 52.404140),\n    (22.080799, 52.404060),\n    (22.083719, 52.404011),\n    (22.085220, 52.404099),\n    (22.088909, 52.403881),\n    (22.113550, 52.401649),\n    (22.115520, 52.401482),\n    (22.116720, 52.401272),\n    (22.120890, 52.399891),\n    (22.122900, 52.399120),\n    (22.124210, 52.398628),\n    (22.128759, 52.398460),\n    (22.131269, 52.398430),\n    (22.149981, 52.405041),\n    (22.154831, 52.406670),\n    (22.164829, 52.410110),\n    (22.165730, 52.410412),\n    (22.166590, 52.410622),\n    (22.172340, 52.409801),\n    (22.173500, 52.409630),\n    (22.178221, 52.408390),\n    (22.180500, 52.407742),\n    (22.181049, 52.407612),\n    (22.198730, 52.407471),\n    (22.203430, 52.407421),\n    (22.203831, 52.407421),\n    (22.209270, 52.407360),\n    (22.211060, 52.407341),\n    (22.213150, 52.407330),\n    (22.215740, 52.407299),\n    (22.217461, 52.407299),\n    (22.220461, 52.407280),\n    (22.225430, 52.407219),\n    (22.226400, 52.407219),\n    (22.226730, 52.407211),\n    (22.227850, 52.407200),\n    (22.230591, 52.407181),\n    (22.232929, 52.407150),\n    (22.233589, 52.407150),\n    (22.235901, 52.407131),\n    (22.236191, 52.407150),\n    (22.236200, 52.407089),\n    (22.236259, 52.407051),\n    (22.236361, 52.407040),\n    (22.236441, 52.407051),\n    (22.236490, 52.407089),\n    (22.236509, 52.407139),\n    (22.240351, 52.407051),\n    (22.240829, 52.407089),\n    (22.242670, 52.407070),\n    (22.244970, 52.407040),\n    (22.247061, 52.407021),\n    (22.247999, 52.407150),\n    (22.248150, 52.407211),\n    (22.249720, 52.407860),\n    (22.250710, 52.408001),\n    (22.251221, 52.408051),\n    (22.252081, 52.406910),\n    (22.252760, 52.406361),\n    (22.252960, 52.406200),\n    (22.253691, 52.405811),\n    (22.254320, 52.405460),\n    (22.254551, 52.405338),\n    (22.254999, 52.404999),\n    (22.255730, 52.404549),\n    (22.256729, 52.403980),\n    (22.256510, 52.403709),\n    (22.258240, 52.402451),\n    (22.258720, 52.402149),\n    (22.260509, 52.401089),\n    (22.261629, 52.399979),\n    (22.265341, 52.396278),\n    (22.266029, 52.395901),\n    (22.266581, 52.395859),\n    (22.292850, 52.393970),\n    (22.303789, 52.394508),\n    (22.306070, 52.394310),\n    (22.309710, 52.393631),\n    (22.311970, 52.392921),\n    (22.316799, 52.391220),\n    (22.320440, 52.389851),\n    (22.321951, 52.389721),\n    (22.326839, 52.389679),\n    (22.331341, 52.389400),\n    (22.332569, 52.389530),\n    (22.339649, 52.391029),\n    (22.341169, 52.391048),\n    (22.342550, 52.390839),\n    (22.352461, 52.389462),\n    (22.361980, 52.388222),\n    (22.368771, 52.387379),\n    (22.381081, 52.388710),\n    (22.382240, 52.388618),\n    (22.383230, 52.388359),\n    (22.384470, 52.388031),\n    (22.387770, 52.385658),\n    (22.389021, 52.385071),\n    (22.390530, 52.385040),\n    (22.402330, 52.384850),\n    (22.408279, 52.384739),\n    (22.411360, 52.384682),\n    (22.436550, 52.386219),\n    (22.445650, 52.389511),\n    (22.450350, 52.391159),\n    (22.471720, 52.396889),\n    (22.490240, 52.401840),\n    (22.495741, 52.401661),\n    (22.500000, 52.401520),\n    (22.514490, 52.401009),\n    (22.514830, 52.400928),\n    (22.515810, 52.400730),\n    (22.516581, 52.400650),\n    (22.519381, 52.401100),\n    (22.519899, 52.401501),\n    (22.521009, 52.403961),\n    (22.521629, 52.404400),\n    (22.547840, 52.411331),\n    (22.551279, 52.411652),\n    (22.552099, 52.411732),\n    (22.554331, 52.412399),\n    (22.559601, 52.414398),\n    (22.561319, 52.415058),\n    (22.572910, 52.419521),\n    (22.574480, 52.419590),\n    (22.595699, 52.413731),\n    (22.603260, 52.412251),\n    (22.613960, 52.410149),\n    (22.646240, 52.403030),\n    (22.651409, 52.401840),\n    (22.657560, 52.400532),\n    (22.658470, 52.400318),\n    (22.658590, 52.400291),\n    (22.659950, 52.400002),\n    (22.660749, 52.399948),\n    (22.661921, 52.400242),\n    (22.663589, 52.400921),\n    (22.664221, 52.401031),\n    (22.665119, 52.400921),\n    (22.672649, 52.399719),\n    (22.688009, 52.397270),\n    (22.690420, 52.396889),\n    (22.694981, 52.396000),\n    (22.697500, 52.395512),\n    (22.711451, 52.392422),\n    (22.714790, 52.391701),\n    (22.715820, 52.391571),\n    (22.717190, 52.391651),\n    (22.720501, 52.392120),\n    (22.724751, 52.392422),\n    (22.739599, 52.393879),\n    (22.755819, 52.395512),\n    (22.770451, 52.397018),\n    (22.773390, 52.397308),\n    (22.786461, 52.398651),\n    (22.792299, 52.399250),\n    (22.793711, 52.399330),\n    (22.798000, 52.399330),\n    (22.800320, 52.399288),\n    (22.805691, 52.398392),\n    (22.807400, 52.398090),\n    (22.820061, 52.395031),\n    (22.824190, 52.393990),\n    (22.831249, 52.392651),\n    (22.837379, 52.391609),\n    (22.840170, 52.391090),\n    (22.840879, 52.391010),\n    (22.846380, 52.391041),\n    (22.849030, 52.391048),\n    (22.866739, 52.393200),\n    (22.869190, 52.393509),\n    (22.870041, 52.393650),\n    (22.870081, 52.393589),\n    (22.870180, 52.393539),\n    (22.870270, 52.393520),\n    (22.870380, 52.393520),\n    (22.870489, 52.393559),\n    (22.870569, 52.393631),\n    (22.870581, 52.393700),\n    (22.879110, 52.394730),\n    (22.880230, 52.394871),\n    (22.894329, 52.395580),\n    (22.900061, 52.395828),\n    (22.906900, 52.394379),\n    (22.914431, 52.391609),\n    (22.916149, 52.391159),\n    (22.932631, 52.387810),\n    (22.936081, 52.387192),\n    (22.951330, 52.384472),\n    (22.952221, 52.384312),\n    (22.955351, 52.384209),\n    (22.982630, 52.383560),\n    (22.984390, 52.383389),\n    (22.986660, 52.382568),\n    (22.989260, 52.381142),\n    (22.992929, 52.380058),\n    (22.996450, 52.379311),\n    (23.025761, 52.373539),\n    (23.028931, 52.372978),\n    (23.032320, 52.372509),\n    (23.035601, 52.371811),\n    (23.036810, 52.371559),\n    (23.040131, 52.370819),\n    (23.041960, 52.370708),\n    (23.042919, 52.370602),\n    (23.046120, 52.369961),\n    (23.067961, 52.365520),\n    (23.084681, 52.365089),\n    (23.116390, 52.364552),\n    (23.117599, 52.364471),\n    (23.121201, 52.363392),\n    (23.122419, 52.362900),\n    (23.123699, 52.362091),\n    (23.127041, 52.360020),\n    (23.128990, 52.359341),\n    (23.129910, 52.359161),\n    (23.133320, 52.359058),\n    (23.138651, 52.358711),\n    (23.143370, 52.358559),\n    (23.149380, 52.358421),\n    (23.153681, 52.358391),\n    (23.172119, 52.358070),\n    (23.202539, 52.356010),\n    (23.205111, 52.355869),\n    (23.211750, 52.355751),\n    (23.226709, 52.356140),\n    (23.242081, 52.357330),\n    (23.253811, 52.357792),\n    (23.261181, 52.357792),\n    (23.262850, 52.357792),\n    (23.265181, 52.357830),\n    (23.266239, 52.357849),\n    (23.267241, 52.357780),\n    (23.269779, 52.357460),\n    (23.270861, 52.357319),\n    (23.271391, 52.357262),\n    (23.271830, 52.357231),\n    (23.272680, 52.357349),\n    (23.273451, 52.357491),\n    (23.275560, 52.357880),\n    (23.277719, 52.358349),\n    (23.282061, 52.359291),\n    (23.290710, 52.361160),\n    (23.304449, 52.364491),\n    (23.306040, 52.364799),\n    (23.307760, 52.364769),\n    (23.309681, 52.364319),\n    (23.311710, 52.363831),\n    (23.318100, 52.361809),\n    (23.323410, 52.360149),\n    (23.325171, 52.360001),\n    (23.327271, 52.360149),\n    (23.336010, 52.360710),\n    (23.338619, 52.360859),\n    (23.346500, 52.363960),\n    (23.352020, 52.366131),\n    (23.354349, 52.367039),\n    (23.355789, 52.367580),\n    (23.355949, 52.367649),\n    (23.357189, 52.368229),\n    (23.358130, 52.368401),\n    (23.359381, 52.368481),\n    (23.360479, 52.368698),\n    (23.360821, 52.368771),\n    (23.362070, 52.369099),\n    (23.362160, 52.369122),\n    (23.363449, 52.369461),\n    (23.363880, 52.369591),\n    (23.365379, 52.370029),\n    (23.366249, 52.370750),\n    (23.366650, 52.371090),\n    (23.367090, 52.371460),\n    (23.368139, 52.372341),\n    (23.370300, 52.371300),\n    (23.371330, 52.370811),\n    (23.372181, 52.370399),\n    (23.373840, 52.369591),\n    (23.374649, 52.369160),\n    (23.375040, 52.368961),\n    (23.375130, 52.368912),\n    (23.375231, 52.368790),\n    (23.375340, 52.368530),\n    (23.375561, 52.368191),\n    (23.375719, 52.368031),\n    (23.376011, 52.368050),\n    (23.376341, 52.368111),\n    (23.376961, 52.368259),\n    (23.377251, 52.368309),\n    (23.377560, 52.368328),\n    (23.378151, 52.368340),\n    (23.378750, 52.368320),\n    (23.379419, 52.368259),\n    (23.380871, 52.367981),\n    (23.387060, 52.366760),\n    (23.387400, 52.366699),\n    (23.387640, 52.366638),\n    (23.389891, 52.366070),\n    (23.390120, 52.366020),\n    (23.393551, 52.365150),\n    (23.394810, 52.364830),\n    (23.395809, 52.364540),\n    (23.396851, 52.364250),\n    (23.397940, 52.363930),\n    (23.401119, 52.362919),\n    (23.401331, 52.362862),\n    (23.402920, 52.362381),\n    (23.404020, 52.362049),\n    (23.411501, 52.359821),\n    (23.415010, 52.358669),\n    (23.415939, 52.358410),\n    (23.418400, 52.357670),\n    (23.431160, 52.353649),\n    (23.435530, 52.352570),\n    (23.440331, 52.351349),\n    (23.446329, 52.349789),\n    (23.456421, 52.347252),\n    (23.473850, 52.342812),\n    (23.499460, 52.337379),\n    (23.515949, 52.333660),\n    (23.538010, 52.328690),\n    (23.550560, 52.325871),\n    (23.562099, 52.323261),\n    (23.578819, 52.319530),\n    (23.607420, 52.310791),\n    (23.630039, 52.303959),\n    (23.631901, 52.303410),\n    (23.632750, 52.303211),\n    (23.633690, 52.303120),\n    (23.634920, 52.303230),\n    (23.635811, 52.303490),\n    (23.639290, 52.304409),\n    (23.640150, 52.304619),\n    (23.640930, 52.304710),\n    (23.683750, 52.304981),\n    (23.702250, 52.305141),\n    (23.707750, 52.305611),\n    (23.723570, 52.306980),\n    (23.736130, 52.310532),\n    (23.741360, 52.312012),\n    (23.747580, 52.314209),\n    (23.758909, 52.318230),\n    (23.765020, 52.320351),\n    (23.771931, 52.322739),\n    (23.775940, 52.324310),\n    (23.776699, 52.324612),\n    (23.779400, 52.325539),\n    (23.781460, 52.326210),\n    (23.782249, 52.326370),\n    (23.782890, 52.326420),\n    (23.782970, 52.326420),\n    (23.783030, 52.326431),\n    (23.783140, 52.326439),\n    (23.783220, 52.326450),\n    (23.786091, 52.326691),\n    (23.790001, 52.327061),\n    (23.794260, 52.327431),\n    (23.802071, 52.328201),\n    (23.828220, 52.330688),\n    (23.832529, 52.331120),\n    (23.851870, 52.332901),\n    (23.872919, 52.334900),\n    (23.878469, 52.336109),\n    (23.896601, 52.340229),\n    (23.901180, 52.341141),\n    (23.905741, 52.342018),\n    (23.907280, 52.342312),\n    (23.910770, 52.342979),\n    (23.915230, 52.343781),\n    (23.916260, 52.343990),\n    (23.935129, 52.347641),\n    (23.947220, 52.349861),\n    (23.960070, 52.352329),\n    (23.961050, 52.352520),\n    (23.962111, 52.352631),\n    (23.963110, 52.352730),\n    (23.985500, 52.352249),\n    (23.986540, 52.352230),\n    (23.987410, 52.352261),\n    (23.988310, 52.352348),\n    (23.989580, 52.352589),\n    (24.007839, 52.356209),\n    (24.046850, 52.364220),\n    (24.049509, 52.364769),\n    (24.056959, 52.366291),\n    (24.096809, 52.374321),\n    (24.119551, 52.378929),\n    (24.122410, 52.379520),\n    (24.138790, 52.382820),\n    (24.152611, 52.385609),\n    (24.165819, 52.388279),\n    (24.166380, 52.388451),\n    (24.166910, 52.388618),\n    (24.167391, 52.388840),\n    (24.167860, 52.389080),\n    (24.172600, 52.392250),\n    (24.178471, 52.396160),\n    (24.181021, 52.397850),\n    (24.183241, 52.399342),\n    (24.183689, 52.399700),\n    (24.184160, 52.400131),\n    (24.184540, 52.400551),\n    (24.184780, 52.400879),\n    (24.185049, 52.401329),\n    (24.185301, 52.401909),\n    (24.185711, 52.403149),\n    (24.186199, 52.404709),\n    (24.186350, 52.405090),\n    (24.186569, 52.405441),\n    (24.186819, 52.405788),\n    (24.187090, 52.406078),\n    (24.187361, 52.406349),\n    (24.187880, 52.406761),\n    (24.188290, 52.407051),\n    (24.188810, 52.407360),\n    (24.189501, 52.407700),\n    (24.190220, 52.407990),\n    (24.191080, 52.408279),\n    (24.192101, 52.408550),\n    (24.201571, 52.410931),\n    (24.218170, 52.415119),\n    (24.219271, 52.415421),\n    (24.219980, 52.415661),\n    (24.220501, 52.415871),\n    (24.220930, 52.416050),\n    (24.224140, 52.417580),\n    (24.231239, 52.421051),\n    (24.241261, 52.425900),\n    (24.246500, 52.428440),\n    (24.254440, 52.432301),\n    (24.259550, 52.434780),\n    (24.260780, 52.435371),\n    (24.270000, 52.439800),\n    (24.291140, 52.450119),\n    (24.293200, 52.451130),\n    (24.294970, 52.451988),\n    (24.296221, 52.452599),\n    (24.297220, 52.453121),\n    (24.297939, 52.453579),\n    (24.299391, 52.454590),\n    (24.301060, 52.455730),\n    (24.312889, 52.463921),\n    (24.333639, 52.478088),\n    (24.355289, 52.492939),\n    (24.358540, 52.495159),\n    (24.370390, 52.503250),\n    (24.372410, 52.504681),\n    (24.373369, 52.505310),\n    (24.374109, 52.505821),\n    (24.374981, 52.506329),\n    (24.375900, 52.506790),\n    (24.380140, 52.508759),\n    (24.403669, 52.519920),\n    (24.423820, 52.529400),\n    (24.434549, 52.534500),\n    (24.440020, 52.537109),\n    (24.444500, 52.539249),\n    (24.446150, 52.540031),\n    (24.446840, 52.540340),\n    (24.447189, 52.540501),\n    (24.447531, 52.540649),\n    (24.448259, 52.541000),\n    (24.449261, 52.541431),\n    (24.449400, 52.541500),\n    (24.450020, 52.541759),\n    (24.450880, 52.542179),\n    (24.458019, 52.545559),\n    (24.459160, 52.546120),\n    (24.460899, 52.546951),\n    (24.462700, 52.547791),\n    (24.463869, 52.548351),\n    (24.463989, 52.548409),\n    (24.464199, 52.548500),\n    (24.464430, 52.548611),\n    (24.468321, 52.550430),\n    (24.470020, 52.551262),\n    (24.472309, 52.552319),\n    (24.472639, 52.552479),\n    (24.473009, 52.552639),\n    (24.473740, 52.553059),\n    (24.474001, 52.553219),\n    (24.474211, 52.553341),\n    (24.474560, 52.553520),\n    (24.474770, 52.553631),\n    (24.474960, 52.553669),\n    (24.475250, 52.553661),\n    (24.475309, 52.553661),\n    (24.475380, 52.553661),\n    (24.475861, 52.553509),\n    (24.476139, 52.553452),\n    (24.478809, 52.552849),\n    (24.481300, 52.552261),\n    (24.488960, 52.550320),\n    (24.496340, 52.548481),\n    (24.502090, 52.547031),\n    (24.502741, 52.546848),\n    (24.503269, 52.546570),\n    (24.509460, 52.542561),\n    (24.509899, 52.542389),\n    (24.514351, 52.541851),\n    (24.520571, 52.541168),\n    (24.521650, 52.540852),\n    (24.528530, 52.538071),\n    (24.535030, 52.535450),\n    (24.548109, 52.533852),\n    (24.549700, 52.533661),\n    (24.551741, 52.533390),\n    (24.553921, 52.533119),\n    (24.569540, 52.531219),\n    (24.579081, 52.530060),\n    (24.581881, 52.529510),\n    (24.593559, 52.527321),\n    (24.613720, 52.523540),\n    (24.616880, 52.523029),\n    (24.620190, 52.522629),\n    (24.625980, 52.521770),\n    (24.628811, 52.521400),\n    (24.633940, 52.520721),\n    (24.642771, 52.519508),\n    (24.648130, 52.518749),\n    (24.653151, 52.518059),\n    (24.658340, 52.517319),\n    (24.659731, 52.517189),\n    (24.661329, 52.517200),\n    (24.665880, 52.511589),\n    (24.669519, 52.506451),\n    (24.670309, 52.505440),\n    (24.675800, 52.502560),\n    (24.682810, 52.498409),\n    (24.694901, 52.491291),\n    (24.698389, 52.489399),\n    (24.699961, 52.490620),\n    (24.702690, 52.492199),\n    (24.708040, 52.492809),\n    (24.710590, 52.492550),\n    (24.711470, 52.492329),\n    (24.712250, 52.491951),\n    (24.713591, 52.490871),\n    (24.714270, 52.490520),\n    (24.715111, 52.490559),\n    (24.721880, 52.491531),\n    (24.723989, 52.491501),\n    (24.732140, 52.493221),\n    (24.740191, 52.494919),\n    (24.747370, 52.497070),\n    (24.755520, 52.499512),\n    (24.762341, 52.502892),\n    (24.780310, 52.503029),\n    (24.786449, 52.503078),\n    (24.788561, 52.502190),\n    (24.809050, 52.499008),\n    (24.810440, 52.499630),\n    (24.812590, 52.500389),\n    (24.814489, 52.500599),\n    (24.818460, 52.500729),\n    (24.823030, 52.500771),\n    (24.833281, 52.502239),\n    (24.839069, 52.502850),\n    (24.846621, 52.504009),\n    (24.847549, 52.504269),\n    (24.849100, 52.505081),\n    (24.851669, 52.506489),\n    (24.854589, 52.507271),\n    (24.857510, 52.507950),\n    (24.860430, 52.508381),\n    (24.863951, 52.508640),\n    (24.879440, 52.510391),\n    (24.891340, 52.511711),\n    (24.895720, 52.512119),\n    (24.897850, 52.512348),\n    (24.908319, 52.515850),\n    (24.910521, 52.516541),\n    (24.912729, 52.517239),\n    (24.927090, 52.521999),\n    (24.931499, 52.522301),\n    (24.937590, 52.522610),\n    (24.937941, 52.522629),\n    (24.942240, 52.523640),\n    (24.952829, 52.526131),\n    (24.953590, 52.526291),\n    (24.953770, 52.526199),\n    (24.953970, 52.526192),\n    (24.954201, 52.526211),\n    (24.954300, 52.526230),\n    (24.954411, 52.526409),\n    (24.954439, 52.526470),\n    (24.954910, 52.526661),\n    (24.958260, 52.527500),\n    (24.958469, 52.527592),\n    (24.961321, 52.528271),\n    (24.963610, 52.528870),\n    (24.968941, 52.530201),\n    (24.976240, 52.532040),\n    (24.977341, 52.532379),\n    (24.977510, 52.532440),\n    (24.977720, 52.532520),\n    (24.980650, 52.534592),\n    (24.983040, 52.533489),\n    (24.984240, 52.534069),\n    (24.984280, 52.534088),\n    (24.985680, 52.534821),\n    (24.987551, 52.535782),\n    (24.989691, 52.536900),\n    (24.991579, 52.537891),\n    (24.992439, 52.538288),\n    (24.994350, 52.539200),\n    (24.996559, 52.540291),\n    (25.009001, 52.546490),\n    (25.015949, 52.549919),\n    (25.022520, 52.553200),\n    (25.028641, 52.556240),\n    (25.039310, 52.561581),\n    (25.082600, 52.583099),\n    (25.089399, 52.586479),\n    (25.092480, 52.587978),\n    (25.098669, 52.591030),\n    (25.105860, 52.594669),\n    (25.143629, 52.613449),\n    (25.166519, 52.624908),\n    (25.186199, 52.634369),\n    (25.195511, 52.638672),\n    (25.208820, 52.645618),\n    (25.214830, 52.648621),\n    (25.218840, 52.650631),\n    (25.219761, 52.651070),\n    (25.220961, 52.651649),\n    (25.227699, 52.655151),\n    (25.236811, 52.659550),\n    (25.248730, 52.665451),\n    (25.261490, 52.671700),\n    (25.305740, 52.693470),\n    (25.308670, 52.694920),\n    (25.312599, 52.696800),\n    (25.312960, 52.696972),\n    (25.317030, 52.698898),\n    (25.321791, 52.701408),\n    (25.324810, 52.702888),\n    (25.325939, 52.703442),\n    (25.329550, 52.705219),\n    (25.331450, 52.706150),\n    (25.333040, 52.706921),\n    (25.333321, 52.707062),\n    (25.335239, 52.708000),\n    (25.335390, 52.708038),\n    (25.336519, 52.708599),\n    (25.337450, 52.709049),\n    (25.338840, 52.709770),\n    (25.339001, 52.709850),\n    (25.340651, 52.710678),\n    (25.343031, 52.711849),\n    (25.344570, 52.712582),\n    (25.345390, 52.712959),\n    (25.348261, 52.714401),\n    (25.351110, 52.715820),\n    (25.353230, 52.716869),\n    (25.353319, 52.716919),\n    (25.362921, 52.721691),\n    (25.368521, 52.724361),\n    (25.383369, 52.731709),\n    (25.416059, 52.747719),\n    (25.416531, 52.747940),\n    (25.422319, 52.750851),\n    (25.444260, 52.761650),\n    (25.447741, 52.763309),\n    (25.457479, 52.768108),\n    (25.480209, 52.779350),\n    (25.497141, 52.787552),\n    (25.524851, 52.801071),\n    (25.530849, 52.803902),\n    (25.579710, 52.827850),\n    (25.582350, 52.829300),\n    (25.604130, 52.839729),\n    (25.631390, 52.852959),\n    (25.635679, 52.855019),\n    (25.638460, 52.855549),\n    (25.639090, 52.855640),\n    (25.644520, 52.855450),\n    (25.646669, 52.855289),\n    (25.648319, 52.855350),\n    (25.650080, 52.855690),\n    (25.651960, 52.856602),\n    (25.653681, 52.857800),\n    (25.655680, 52.858841),\n    (25.666500, 52.860920),\n    (25.672050, 52.862011),\n    (25.687149, 52.864841),\n    (25.709299, 52.869221),\n    (25.723789, 52.872040),\n    (25.724230, 52.872131),\n    (25.732470, 52.873589),\n    (25.748199, 52.876610),\n    (25.767550, 52.880322),\n    (25.783020, 52.883289),\n    (25.783541, 52.883381),\n    (25.851761, 52.896431),\n    (25.856750, 52.897282),\n    (25.930479, 52.911362),\n    (25.960039, 52.916840),\n    (25.991899, 52.923031),\n    (26.004629, 52.925510),\n    (26.023239, 52.928768),\n    (26.032280, 52.930408),\n    (26.072531, 52.937889),\n    (26.078020, 52.938911),\n    (26.086691, 52.940540),\n    (26.125660, 52.948780),\n    (26.151751, 52.949902),\n    (26.180330, 52.951092),\n    (26.217840, 52.952808),\n    (26.225479, 52.953072),\n    (26.242020, 52.953640),\n    (26.271139, 52.954868),\n    (26.291340, 52.955780),\n    (26.299210, 52.956081),\n    (26.314320, 52.956760),\n    (26.348240, 52.958221),\n    (26.349079, 52.958241),\n    (26.372940, 52.959171),\n    (26.407610, 52.960541),\n    (26.418341, 52.960991),\n    (26.446751, 52.962170),\n    (26.459021, 52.962662),\n    (26.465981, 52.962940),\n    (26.466881, 52.962978),\n    (26.472099, 52.963219),\n    (26.472839, 52.963261),\n    (26.473551, 52.963291),\n    (26.474150, 52.963322),\n    (26.474880, 52.963348),\n    (26.478081, 52.963451),\n    (26.511980, 52.964661),\n    (26.524260, 52.965000),\n    (26.532261, 52.965340),\n    (26.533991, 52.965420),\n    (26.542440, 52.965752),\n    (26.545700, 52.965919),\n    (26.550270, 52.966122),\n    (26.556589, 52.966381),\n    (26.592489, 52.967831),\n    (26.603390, 52.968349),\n    (26.620871, 52.969181),\n    (26.623011, 52.969299),\n    (26.637550, 52.969891),\n    (26.653870, 52.970409),\n    (26.664419, 52.970749),\n    (26.665220, 52.970772),\n    (26.694630, 52.971611),\n    (26.696430, 52.971611),\n    (26.715059, 52.972809),\n    (26.729601, 52.973400),\n    (26.766821, 52.974621),\n    (26.768490, 52.974689),\n    (26.773380, 52.975121),\n    (26.839090, 52.977451),\n    (26.845301, 52.977669),\n    (26.846380, 52.977711),\n    (26.866699, 52.978661),\n    (26.881140, 52.979328),\n    (26.896160, 52.979759),\n    (26.909599, 52.980141),\n    (26.911270, 52.980190),\n    (26.922470, 52.980640),\n    (26.947130, 52.981609),\n    (26.983450, 52.982861),\n    (26.988070, 52.982990),\n    (27.001150, 52.983540),\n    (27.023769, 52.984261),\n    (27.036060, 52.984661),\n    (27.036230, 52.984669),\n    (27.055620, 52.985291),\n    (27.074570, 52.986019),\n    (27.078770, 52.986149),\n    (27.081270, 52.986191),\n    (27.127819, 52.987751),\n    (27.168501, 52.989460),\n    (27.199940, 52.990349),\n    (27.214680, 52.990810),\n    (27.218941, 52.990952),\n    (27.259140, 52.992290),\n    (27.264380, 52.992378),\n    (27.272190, 52.992809),\n    (27.279261, 52.993130),\n    (27.308750, 52.994438),\n    (27.339569, 52.995171),\n    (27.346260, 52.995331),\n    (27.382740, 52.996498),\n    (27.398050, 52.997169),\n    (27.400141, 52.997189),\n    (27.413799, 52.999321),\n    (27.417629, 52.999859),\n    (27.432301, 53.002079),\n    (27.447081, 53.004219),\n    (27.461821, 53.006359),\n    (27.485849, 53.009850),\n    (27.487740, 53.010132),\n    (27.487949, 53.010170),\n    (27.490499, 53.010559),\n    (27.490761, 53.010590),\n    (27.494181, 53.011101),\n    (27.506029, 53.012840),\n    (27.512131, 53.013680),\n    (27.518230, 53.014591),\n    (27.521481, 53.015049),\n    (27.526051, 53.015701),\n    (27.530600, 53.016392),\n    (27.537170, 53.017391),\n    (27.538179, 53.017590),\n    (27.538811, 53.017761),\n    (27.539570, 53.018131),\n    (27.540400, 53.018608),\n    (27.540541, 53.018719),\n    (27.541241, 53.019291),\n    (27.544220, 53.021450),\n    (27.545719, 53.022480),\n    (27.545971, 53.022659),\n    (27.547640, 53.023842),\n    (27.548229, 53.024261),\n    (27.548531, 53.024471),\n    (27.549490, 53.025150),\n    (27.549870, 53.025421),\n    (27.550011, 53.025520),\n    (27.552160, 53.026970),\n    (27.553129, 53.027660),\n    (27.553310, 53.027790),\n    (27.554621, 53.028709),\n    (27.555000, 53.028992),\n    (27.555201, 53.029140),\n    (27.555889, 53.029621),\n    (27.558380, 53.031368),\n    (27.558769, 53.031651),\n    (27.560419, 53.032681),\n    (27.564240, 53.035461),\n    (27.564520, 53.035679),\n    (27.566790, 53.037090),\n    (27.567261, 53.037380),\n    (27.568850, 53.037941),\n    (27.570440, 53.038261),\n    (27.571859, 53.038540),\n    (27.572830, 53.038750),\n    (27.573971, 53.039001),\n    (27.576210, 53.039421),\n    (27.577440, 53.039661),\n    (27.578341, 53.039822),\n    (27.579081, 53.039982),\n    (27.580570, 53.040298),\n    (27.581440, 53.040470),\n    (27.582230, 53.040619),\n    (27.582510, 53.040668),\n    (27.582781, 53.040730),\n    (27.582970, 53.040771),\n    (27.583719, 53.040920),\n    (27.584270, 53.041031),\n    (27.585211, 53.041222),\n    (27.586500, 53.041481),\n    (27.586840, 53.041561),\n    (27.588980, 53.041988),\n    (27.593399, 53.042919),\n    (27.596750, 53.043560),\n    (27.598339, 53.043880),\n    (27.610590, 53.046360),\n    (27.617970, 53.047852),\n    (27.620350, 53.048328),\n    (27.621500, 53.048550),\n    (27.622881, 53.048820),\n    (27.624161, 53.049110),\n    (27.632420, 53.050732),\n    (27.632940, 53.050838),\n    (27.664419, 53.057129),\n    (27.670670, 53.058399),\n    (27.672421, 53.058640),\n    (27.684271, 53.061150),\n    (27.695499, 53.063358),\n    (27.722830, 53.068779),\n    (27.730869, 53.070381),\n    (27.752890, 53.074749),\n    (27.754780, 53.075062),\n    (27.758169, 53.074902),\n    (27.766920, 53.074261),\n    (27.788549, 53.072449),\n    (27.825140, 53.069500),\n    (27.838329, 53.068432),\n    (27.842470, 53.068081),\n    (27.846479, 53.067741),\n    (27.850821, 53.067440),\n    (27.861071, 53.066631),\n    (27.889940, 53.064232),\n    (27.909740, 53.062592),\n    (27.926821, 53.061230),\n    (27.938061, 53.060329),\n    (27.973850, 53.057362),\n    (27.977369, 53.057011),\n    (27.981150, 53.056751),\n    (27.987410, 53.056129),\n    (28.005100, 53.054951),\n    (28.040030, 53.051849),\n    (28.046650, 53.051189),\n    (28.052521, 53.050720),\n    (28.061010, 53.050129),\n    (28.125759, 53.044628),\n    (28.129511, 53.044281),\n    (28.147129, 53.042671),\n    (28.179171, 53.040001),\n    (28.195299, 53.038391),\n    (28.216209, 53.036362),\n    (28.226280, 53.035381),\n    (28.233919, 53.034779),\n    (28.241890, 53.034061),\n    (28.252291, 53.033150),\n    (28.261971, 53.032230),\n    (28.263050, 53.032181),\n    (28.267071, 53.032730),\n    (28.269020, 53.033020),\n    (28.269510, 53.033089),\n    (28.278351, 53.034439),\n    (28.280609, 53.034779),\n    (28.284861, 53.035419),\n    (28.285601, 53.035530),\n    (28.304390, 53.038330),\n    (28.323210, 53.041290),\n    (28.325399, 53.041630),\n    (28.326660, 53.041828),\n    (28.337860, 53.043430),\n    (28.405621, 53.053551),\n    (28.409691, 53.053951),\n    (28.413910, 53.054352),\n    (28.419130, 53.054680),\n    (28.439140, 53.056332),\n    (28.445580, 53.057011),\n    (28.458891, 53.058201),\n    (28.472811, 53.059460),\n    (28.481770, 53.060181),\n    (28.544580, 53.065800),\n    (28.553869, 53.066631),\n    (28.556170, 53.066830),\n    (28.607281, 53.071281),\n    (28.611170, 53.071621),\n    (28.618851, 53.072281),\n    (28.623421, 53.072510),\n    (28.626169, 53.072491),\n    (28.628071, 53.072479),\n    (28.630119, 53.072472),\n    (28.633230, 53.072529),\n    (28.634871, 53.072559),\n    (28.663200, 53.074108),\n    (28.687780, 53.075722),\n    (28.693199, 53.076050),\n    (28.716709, 53.077789),\n    (28.766411, 53.081051),\n    (28.798000, 53.083321),\n    (28.799629, 53.083431),\n    (28.818451, 53.084709),\n    (28.837820, 53.086021),\n    (28.846500, 53.086689),\n    (28.849060, 53.086861),\n    (28.855320, 53.087269),\n    (28.857380, 53.087410),\n    (28.867519, 53.088081),\n    (28.870781, 53.088211),\n    (28.882799, 53.088940),\n    (28.890850, 53.089520),\n    (28.909241, 53.090832),\n    (28.914900, 53.091251),\n    (28.938320, 53.092991),\n    (28.939560, 53.093079),\n    (28.947340, 53.093658),\n    (28.978920, 53.095612),\n    (28.980650, 53.095718),\n    (28.983049, 53.095871),\n    (28.985880, 53.096062),\n    (28.993771, 53.096642),\n    (29.004551, 53.097431),\n    (29.006580, 53.097721),\n    (29.018410, 53.099590),\n    (29.040810, 53.103100),\n    (29.050859, 53.104740),\n    (29.052059, 53.104900),\n    (29.055830, 53.105511),\n    (29.057470, 53.105770),\n    (29.061331, 53.106449),\n    (29.062460, 53.106640),\n    (29.066561, 53.107311),\n    (29.078150, 53.109112),\n    (29.091970, 53.111359),\n    (29.106050, 53.113659),\n    (29.113939, 53.114861),\n    (29.127159, 53.116840),\n    (29.129129, 53.117180),\n    (29.136431, 53.118290),\n    (29.138060, 53.118549),\n    (29.143909, 53.119450),\n    (29.151859, 53.120682),\n    (29.166771, 53.123051),\n    (29.169649, 53.123669),\n    (29.173700, 53.124279),\n    (29.178190, 53.124939),\n    (29.178961, 53.125149),\n    (29.181480, 53.125481),\n    (29.184099, 53.125889),\n    (29.186310, 53.126228),\n    (29.190371, 53.126888),\n    (29.192350, 53.127190),\n    (29.192659, 53.127239),\n    (29.193769, 53.127411),\n    (29.195040, 53.127621),\n    (29.195190, 53.127651),\n    (29.196751, 53.127899),\n    (29.202351, 53.128761),\n    (29.203470, 53.128880),\n    (29.204180, 53.128948),\n    (29.206289, 53.129120),\n    (29.209860, 53.129391),\n    (29.213110, 53.129688),\n    (29.218639, 53.130119),\n    (29.220690, 53.130291),\n    (29.220631, 53.130711),\n    (29.223249, 53.131260),\n    (29.225410, 53.131710),\n    (29.227699, 53.132198),\n    (29.227520, 53.133579),\n    (29.229670, 53.133991),\n    (29.231939, 53.134350),\n    (29.231760, 53.135750),\n    (29.231600, 53.136929),\n    (29.231560, 53.137112),\n    (29.231199, 53.140072),\n    (29.231110, 53.140751),\n    (29.231230, 53.141041),\n    (29.231899, 53.141918),\n    (29.233471, 53.143570),\n    (29.233810, 53.143879),\n    (29.234150, 53.144138),\n    (29.235531, 53.145000),\n    (29.235630, 53.145061),\n    (29.235800, 53.145149),\n    (29.237089, 53.145901),\n    (29.239590, 53.146999),\n    (29.240339, 53.147320),\n    (29.241261, 53.147709),\n    (29.243731, 53.148762),\n    (29.245939, 53.149681),\n    (29.246460, 53.149792),\n    (29.246519, 53.149780),\n    (29.246811, 53.149761),\n    (29.247000, 53.149750),\n    (29.249069, 53.149071),\n    (29.249580, 53.148861),\n    (29.250010, 53.148659),\n    (29.250250, 53.148479),\n    (29.250549, 53.148121),\n    (29.251381, 53.147079),\n    (29.252350, 53.146069),\n    (29.253639, 53.145309),\n    (29.257401, 53.143250),\n    (29.258301, 53.142872),\n    (29.259260, 53.142601),\n    (29.260290, 53.142368),\n    (29.264980, 53.141861),\n    (29.267790, 53.141590),\n    (29.275591, 53.140789),\n    (29.277031, 53.140652),\n    (29.279301, 53.140419),\n    (29.280010, 53.140350),\n    (29.290359, 53.139290),\n    (29.293119, 53.139011),\n    (29.293591, 53.138981),\n    (29.294870, 53.138828),\n    (29.295340, 53.138779),\n    (29.296049, 53.138748),\n    (29.298241, 53.138859),\n    (29.303610, 53.139130),\n    (29.303770, 53.139141),\n    (29.305349, 53.139221),\n    (29.308620, 53.139420),\n    (29.311440, 53.139580),\n    (29.311760, 53.139591),\n    (29.312099, 53.139610),\n    (29.313669, 53.139671),\n    (29.314360, 53.139751),\n    (29.316759, 53.139839),\n    (29.319719, 53.140018),\n    (29.321051, 53.140099),\n    (29.322081, 53.140099),\n    (29.344090, 53.141369),\n    (29.345770, 53.141472),\n    (29.353149, 53.141899),\n    (29.356670, 53.142071),\n    (29.363710, 53.142502),\n    (29.363800, 53.142231),\n    (29.364161, 53.142059),\n    (29.364660, 53.142040),\n    (29.364910, 53.142159),\n    (29.365080, 53.142330),\n    (29.365129, 53.142502),\n    (29.372580, 53.142899),\n    (29.375811, 53.143009),\n    (29.389799, 53.141300),\n    (29.395380, 53.140701),\n    (29.408600, 53.139149),\n    (29.433491, 53.136230),\n    (29.434780, 53.136150),\n    (29.438040, 53.135799),\n    (29.450480, 53.134430),\n    (29.461040, 53.133141),\n    (29.469790, 53.132019),\n    (29.481300, 53.130650),\n    (29.483530, 53.130051),\n    (29.485161, 53.129539),\n    (29.504299, 53.124298),\n    (29.510910, 53.123791),\n    (29.511681, 53.123699),\n    (29.516140, 53.123531),\n    (29.522320, 53.124130),\n    (29.530199, 53.124859),\n    (29.533300, 53.125542),\n    (29.540779, 53.127480),\n    (29.542990, 53.127991),\n    (29.544161, 53.128208),\n    (29.545650, 53.128132),\n    (29.551500, 53.126961),\n    (29.558460, 53.124729),\n    (29.562941, 53.123291),\n    (29.563780, 53.123020),\n    (29.566099, 53.121300),\n    (29.566490, 53.121071),\n    (29.567129, 53.120701),\n    (29.568640, 53.120361),\n    (29.569540, 53.120251),\n    (29.583860, 53.118549),\n    (29.603781, 53.116150),\n    (29.625059, 53.113659),\n    (29.636570, 53.112228),\n    (29.656820, 53.109711),\n    (29.657940, 53.109631),\n    (29.683340, 53.106621),\n    (29.719311, 53.102341),\n    (29.724751, 53.101700),\n    (29.726990, 53.101429),\n    (29.729691, 53.101040),\n    (29.731750, 53.100780),\n    (29.743509, 53.099411),\n    (29.763290, 53.096970),\n    (29.788660, 53.093830),\n    (29.802650, 53.092201),\n    (29.823690, 53.089680),\n    (29.840580, 53.087650),\n    (29.864401, 53.084721),\n    (29.875521, 53.083359),\n    (29.877001, 53.083179),\n    (29.903330, 53.080021),\n    (29.922640, 53.077610),\n    (29.947451, 53.074730),\n    (29.951059, 53.074310),\n    (29.978600, 53.070831),\n    (29.985229, 53.070019),\n    (29.986151, 53.069908),\n    (29.989540, 53.069500),\n    (29.990629, 53.069370),\n    (29.991011, 53.069321),\n    (29.992451, 53.069149),\n    (29.996010, 53.068710),\n    (30.000360, 53.068218),\n    (30.001600, 53.068081),\n    (30.003960, 53.067810),\n    (30.005659, 53.067589),\n    (30.006830, 53.067539),\n    (30.009411, 53.067410),\n    (30.012739, 53.067379),\n    (30.013580, 53.067471),\n    (30.014099, 53.067532),\n    (30.015829, 53.067749),\n    (30.017599, 53.067940),\n    (30.018511, 53.068039),\n    (30.020069, 53.068241),\n    (30.021709, 53.068470),\n    (30.022720, 53.068581),\n    (30.026520, 53.069141),\n    (30.027460, 53.069401),\n    (30.030581, 53.069832),\n    (30.034470, 53.070358),\n    (30.038059, 53.070850),\n    (30.038759, 53.070999),\n    (30.039370, 53.071259),\n    (30.039900, 53.071579),\n    (30.041679, 53.072670),\n    (30.043989, 53.074070),\n    (30.044880, 53.074589),\n    (30.045740, 53.074848),\n    (30.046101, 53.074890),\n    (30.047260, 53.074821),\n    (30.048389, 53.074741),\n    (30.049780, 53.074638),\n    (30.051060, 53.074570),\n    (30.052340, 53.074509),\n    (30.053101, 53.074471),\n    (30.054050, 53.074409),\n    (30.055620, 53.074329),\n    (30.057480, 53.074242),\n    (30.083309, 53.072891),\n    (30.091200, 53.072830),\n    (30.094299, 53.072811),\n    (30.117630, 53.072521),\n    (30.125299, 53.072418),\n    (30.137730, 53.071918),\n    (30.150520, 53.072121),\n    (30.167259, 53.071861),\n    (30.187000, 53.071602),\n    (30.191280, 53.071579),\n    (30.193661, 53.071541),\n    (30.209141, 53.071259),\n    (30.227850, 53.070999),\n    (30.240129, 53.070911),\n    (30.245020, 53.070831),\n    (30.248350, 53.070831),\n    (30.255489, 53.070831),\n    (30.257210, 53.071259),\n    (30.258841, 53.071930),\n    (30.268560, 53.075840),\n    (30.299669, 53.089359),\n    (30.313080, 53.095032),\n    (30.333080, 53.103619),\n    (30.337971, 53.105770),\n    (30.362089, 53.115891),\n    (30.364000, 53.116711),\n    (30.374201, 53.121059),\n    (30.377661, 53.122540),\n    (30.386040, 53.126110),\n    (30.416170, 53.138969),\n    (30.437540, 53.147991),\n    (30.444401, 53.151001),\n    (30.448160, 53.152550),\n    (30.449369, 53.153049),\n    (30.458191, 53.156700),\n    (30.458670, 53.156849),\n    (30.458969, 53.156860),\n    (30.459209, 53.156849),\n    (30.459511, 53.156830),\n    (30.459730, 53.156860),\n    (30.459900, 53.156910),\n    (30.460039, 53.157001),\n    (30.460110, 53.157120),\n    (30.460150, 53.157230),\n    (30.460350, 53.157520),\n    (30.460489, 53.157669),\n    (30.460680, 53.157829),\n    (30.470150, 53.161812),\n    (30.480600, 53.166168),\n    (30.494450, 53.178581),\n    (30.497021, 53.181381),\n    (30.508350, 53.191681),\n    (30.510839, 53.193741),\n    (30.522079, 53.199230),\n    (30.534100, 53.205330),\n    (30.542589, 53.209702),\n    (30.551090, 53.214081),\n    (30.583191, 53.230289),\n    (30.586281, 53.231850),\n    (30.608250, 53.243011),\n    (30.611860, 53.244850),\n    (30.616320, 53.247131),\n    (30.616751, 53.247341),\n    (30.637030, 53.257469),\n    (30.652800, 53.265320),\n    (30.671169, 53.274681),\n    (30.682409, 53.280338),\n    (30.706270, 53.292358),\n    (30.710911, 53.294590),\n    (30.726101, 53.302269),\n    (30.742229, 53.310429),\n    (30.756571, 53.317680),\n    (30.761141, 53.319962),\n    (30.762230, 53.320511),\n    (30.787130, 53.332958),\n    (30.802660, 53.340851),\n    (30.815550, 53.347321),\n    (30.822781, 53.350941),\n    (30.830730, 53.354931),\n    (30.836821, 53.357929),\n    (30.848410, 53.363861),\n    (30.854300, 53.366730),\n    (30.854931, 53.367031),\n    (30.873301, 53.376301),\n    (30.884710, 53.381882),\n    (30.901810, 53.390461),\n    (30.904890, 53.392010),\n    (30.910351, 53.394749),\n    (30.933981, 53.406601),\n    (30.944880, 53.412090),\n    (30.948320, 53.413731),\n    (30.959841, 53.419529),\n    (30.962200, 53.420780),\n    (30.969601, 53.424541),\n    (30.974609, 53.426979),\n    (30.976730, 53.428009),\n    (30.984970, 53.432011),\n    (30.985479, 53.432270),\n    (30.997259, 53.438049),\n    (30.998779, 53.438702),\n    (30.999990, 53.440762),\n    (31.003160, 53.446079),\n    (31.005739, 53.445999),\n    (31.006680, 53.450802),\n    (31.008829, 53.451832),\n    (31.021009, 53.455608),\n    (31.035259, 53.460331),\n    (31.035780, 53.460499),\n    (31.036810, 53.460838),\n    (31.051229, 53.465569),\n    (31.053200, 53.466171),\n    (31.084339, 53.476158),\n    (31.120661, 53.487801),\n    (31.127359, 53.489941),\n    (31.148809, 53.496819),\n    (31.151739, 53.497761),\n    (31.201521, 53.513721),\n    (31.216360, 53.518471),\n    (31.226089, 53.521580),\n    (31.235849, 53.524700),\n    (31.266920, 53.534489),\n    (31.269680, 53.535412),\n    (31.275669, 53.537411),\n    (31.277990, 53.538090),\n    (31.310711, 53.548351),\n    (31.314131, 53.549419),\n    (31.319790, 53.551311),\n    (31.320940, 53.551689),\n    (31.335770, 53.556591),\n    (31.339531, 53.557831),\n    (31.357420, 53.563061),\n    (31.362410, 53.564030),\n    (31.365841, 53.565762),\n    (31.373310, 53.568260),\n    (31.377001, 53.569279),\n    (31.380520, 53.569660),\n    (31.385370, 53.568390),\n    (31.387079, 53.571220),\n    (31.391371, 53.575089),\n    (31.420740, 53.590790),\n    (31.424650, 53.592030),\n    (31.428391, 53.592731),\n    (31.431049, 53.593109),\n    (31.432501, 53.593319),\n    (31.439369, 53.594311),\n    (31.445450, 53.595169),\n    (31.452440, 53.596371),\n    (31.453930, 53.596668),\n    (31.465750, 53.600960),\n    (31.471399, 53.603020),\n    (31.481331, 53.606651),\n    (31.482731, 53.607151),\n    (31.489559, 53.609631),\n    (31.494949, 53.611561),\n    (31.505440, 53.615421),\n    (31.529890, 53.624260),\n    (31.541691, 53.628521),\n    (31.542160, 53.628689),\n    (31.548361, 53.630959),\n    (31.567680, 53.637932),\n    (31.569559, 53.638611),\n    (31.589491, 53.645859),\n    (31.624319, 53.658379),\n    (31.636930, 53.662880),\n    (31.639851, 53.663921),\n    (31.642670, 53.664959),\n    (31.654530, 53.669319),\n    (31.660830, 53.671631),\n    (31.681999, 53.679272),\n    (31.683701, 53.680340),\n    (31.684629, 53.681080),\n    (31.685640, 53.682060),\n    (31.686550, 53.683319),\n    (31.693090, 53.693390),\n    (31.694229, 53.695141),\n    (31.694740, 53.695930),\n    (31.695511, 53.697109),\n    (31.696060, 53.697689),\n    (31.696760, 53.698421),\n    (31.699160, 53.700481),\n    (31.701910, 53.702202),\n    (31.702900, 53.702690),\n    (31.703449, 53.702969),\n    (31.704149, 53.703209),\n    (31.705770, 53.703751),\n    (31.708260, 53.704430),\n    (31.710159, 53.704891),\n    (31.712900, 53.705212),\n    (31.714540, 53.705330),\n    (31.715990, 53.705441),\n    (31.720440, 53.705662),\n    (31.722601, 53.705761),\n    (31.724850, 53.705872),\n    (31.726311, 53.705940),\n    (31.727690, 53.706001),\n    (31.729271, 53.706070),\n    (31.742350, 53.706680),\n    (31.747009, 53.706909),\n    (31.757780, 53.707432),\n    (31.760620, 53.707520),\n    (31.764219, 53.707352),\n    (31.765850, 53.707088),\n    (31.767401, 53.706749),\n    (31.769970, 53.705811),\n    (31.774441, 53.703400),\n    (31.776751, 53.702541),\n    (31.780010, 53.702030),\n    (31.782930, 53.701859),\n    (31.784389, 53.701939),\n    (31.787050, 53.702030),\n    (31.795719, 53.702801),\n    (31.810230, 53.703999),\n    (31.824560, 53.705120),\n    (31.835030, 53.706150),\n    (31.842070, 53.706661),\n    (31.844130, 53.706841),\n    (31.854429, 53.707779),\n    (31.856661, 53.707951),\n    (31.878731, 53.709679),\n    (31.908760, 53.712238),\n    (31.921749, 53.713310),\n    (31.924400, 53.713581),\n    (31.928930, 53.713959),\n    (31.938351, 53.714771),\n    (31.938810, 53.714802),\n    (31.940701, 53.714951),\n    (31.960110, 53.716560),\n    (31.966921, 53.717121),\n    (31.969749, 53.717258),\n    (31.975229, 53.717709),\n    (31.978889, 53.717972),\n    (31.985920, 53.718391),\n    (31.991329, 53.718941),\n    (31.999571, 53.719879),\n    (32.001202, 53.719971),\n    (32.003849, 53.720112),\n    (32.011810, 53.720718),\n    (32.014320, 53.721008),\n    (32.016762, 53.721169),\n    (32.018009, 53.721321),\n    (32.028240, 53.722111),\n    (32.035530, 53.722759),\n    (32.042629, 53.723381),\n    (32.056950, 53.724621),\n    (32.059109, 53.724720),\n    (32.065948, 53.725311),\n    (32.073551, 53.725891),\n    (32.076149, 53.726120),\n    (32.077351, 53.726219),\n    (32.098450, 53.727901),\n    (32.118629, 53.729530),\n    (32.141430, 53.731369),\n    (32.145771, 53.731670),\n    (32.146889, 53.731758),\n    (32.147339, 53.731800),\n    (32.155910, 53.732460),\n    (32.157070, 53.732780),\n    (32.157661, 53.733009),\n    (32.158779, 53.733372),\n    (32.176979, 53.739109),\n    (32.186131, 53.742001),\n    (32.205460, 53.748100),\n    (32.214230, 53.750870),\n    (32.215260, 53.751190),\n    (32.218090, 53.752071),\n    (32.219570, 53.752541),\n    (32.225052, 53.754261),\n    (32.227089, 53.754910),\n    (32.243031, 53.759941),\n    (32.244499, 53.760399),\n    (32.261349, 53.765720),\n    (32.280788, 53.771671),\n    (32.297779, 53.777081),\n    (32.387821, 53.805222),\n    (32.442059, 53.821991),\n    (32.445259, 53.822990),\n    (32.474480, 53.832130),\n    (32.502659, 53.840931),\n    (32.540859, 53.852680),\n    (32.543861, 53.853390),\n    (32.547459, 53.853851),\n    (32.558708, 53.855320),\n    (32.563690, 53.856030),\n    (32.567890, 53.857239),\n    (32.606689, 53.867771),\n    (32.608570, 53.868370),\n    (32.621731, 53.875198),\n    (32.634491, 53.881790),\n    (32.638531, 53.883610),\n    (32.644711, 53.884720),\n    (32.648911, 53.885632),\n    (32.654411, 53.887249),\n    (32.671051, 53.892269),\n    (32.685909, 53.896759),\n    (32.730629, 53.910309),\n    (32.753029, 53.917030),\n    (32.771091, 53.922508),\n    (32.773891, 53.923359),\n    (32.774872, 53.923630),\n    (32.775959, 53.923962),\n    (32.777081, 53.924301),\n    (32.778389, 53.924702),\n    (32.779079, 53.924919),\n    (32.796848, 53.930271),\n    (32.804909, 53.932701),\n    (32.810940, 53.934528),\n    (32.817348, 53.936470),\n    (32.822350, 53.937988),\n    (32.824451, 53.938641),\n    (32.826309, 53.939209),\n    (32.827549, 53.939590),\n    (32.830070, 53.940350),\n    (32.831909, 53.940891),\n    (32.832001, 53.940910),\n    (32.832031, 53.940929),\n    (32.835251, 53.941891),\n    (32.837631, 53.942600),\n    (32.838711, 53.942928),\n    (32.841450, 53.943741),\n    (32.842590, 53.944080),\n    (32.843510, 53.944389),\n    (32.846111, 53.945251),\n    (32.846539, 53.945499),\n    (32.849110, 53.946960),\n    (32.850361, 53.947739),\n    (32.851051, 53.948120),\n    (32.852058, 53.948662),\n    (32.852551, 53.948719),\n    (32.854340, 53.947762),\n    (32.854771, 53.947529),\n    (32.856049, 53.946838),\n    (32.857849, 53.947990),\n    (32.859341, 53.949070),\n    (32.860691, 53.950340),\n    (32.862061, 53.951630),\n    (32.863331, 53.952801),\n    (32.863651, 53.953121),\n    (32.863892, 53.953339),\n    (32.864059, 53.953411),\n    (32.864250, 53.953449),\n    (32.864578, 53.953411),\n    (32.865021, 53.953098),\n    (32.865479, 53.952969),\n    (32.865910, 53.952942),\n    (32.866680, 53.953178),\n    (32.866951, 53.953289),\n    (32.867081, 53.953529),\n    (32.867111, 53.953850),\n    (32.867020, 53.954109),\n    (32.866760, 53.954330),\n    (32.866692, 53.954399),\n    (32.865841, 53.954578),\n    (32.865540, 53.954720),\n    (32.865479, 53.954948),\n    (32.865559, 53.955021),\n    (32.865929, 53.955429),\n    (32.866161, 53.955688),\n    (32.866360, 53.955921),\n    (32.866631, 53.956211),\n    (32.867199, 53.956841),\n    (32.867390, 53.957069),\n    (32.867611, 53.957298),\n    (32.868019, 53.957760),\n    (32.868080, 53.957829),\n    (32.868130, 53.957890),\n    (32.868698, 53.958519),\n    (32.869381, 53.959278),\n    (32.869541, 53.959469),\n    (32.870010, 53.959999),\n    (32.871231, 53.961399),\n    (32.875759, 53.966579),\n    (32.876991, 53.967812),\n    (32.877159, 53.967918),\n    (32.878880, 53.969090),\n    (32.880539, 53.970200),\n    (32.881580, 53.970879),\n    (32.885300, 53.973331),\n    (32.886890, 53.974388),\n    (32.888050, 53.974861),\n    (32.916790, 53.986599),\n    (32.920910, 53.988239),\n    (32.924728, 53.989849),\n    (32.926651, 53.990631),\n    (32.927860, 53.991089),\n    (32.964561, 54.006031),\n    (33.038891, 54.036240),\n    (33.050991, 54.041031),\n    (33.051430, 54.041199),\n    (33.052380, 54.041592),\n    (33.053719, 54.042030),\n    (33.055519, 54.042580),\n    (33.057732, 54.043129),\n    (33.060059, 54.043800),\n    (33.062340, 54.044449),\n    (33.063938, 54.044930),\n    (33.065208, 54.045502),\n    (33.079830, 54.050030),\n    (33.103489, 54.057098),\n    (33.135578, 54.066780),\n    (33.198151, 54.085751),\n    (33.233330, 54.096329),\n    (33.259430, 54.104149),\n    (33.281120, 54.110691),\n    (33.281681, 54.110851),\n    (33.284809, 54.111820),\n    (33.293892, 54.114540),\n    (33.294930, 54.114849),\n    (33.316238, 54.121250),\n    (33.340012, 54.128311),\n    (33.343342, 54.129299),\n    (33.362679, 54.135101),\n    (33.364719, 54.135700),\n    (33.371750, 54.137810),\n    (33.372959, 54.138180),\n    (33.402931, 54.147099),\n    (33.445080, 54.159512),\n    (33.463009, 54.164791),\n    (33.537849, 54.187191),\n    (33.564289, 54.195030),\n    (33.581970, 54.200150),\n    (33.600311, 54.205681),\n    (33.611179, 54.208969),\n    (33.655270, 54.221840),\n    (33.665249, 54.224751),\n    (33.669731, 54.226158),\n    (33.676559, 54.227951),\n    (33.708389, 54.234341),\n    (33.712551, 54.235241),\n    (33.713539, 54.235451),\n    (33.714989, 54.235790),\n    (33.717682, 54.236382),\n    (33.719151, 54.236912),\n    (33.719379, 54.236992),\n    (33.720921, 54.237560),\n    (33.723511, 54.238628),\n    (33.732540, 54.242168),\n    (33.757610, 54.251999),\n    (33.815540, 54.268921),\n    (33.858860, 54.281670),\n    (33.877350, 54.287121),\n    (33.922550, 54.300240),\n    (33.997280, 54.322060),\n    (34.064171, 54.341591),\n    (34.073601, 54.345390),\n    (34.090092, 54.351990),\n    (34.093239, 54.353230),\n    (34.124500, 54.365719),\n    (34.169109, 54.383549),\n    (34.171322, 54.384411),\n    (34.184570, 54.392181),\n    (34.195370, 54.398689),\n    (34.219109, 54.412819),\n    (34.225010, 54.415981),\n    (34.241489, 54.421669),\n    (34.303249, 54.443432),\n    (34.331100, 54.453220),\n    (34.373199, 54.467949),\n    (34.412640, 54.481750),\n    (34.417511, 54.483570),\n    (34.427059, 54.486912),\n    (34.478222, 54.504799),\n    (34.480282, 54.505779),\n    (34.481899, 54.506870),\n    (34.517441, 54.539501),\n    (34.523239, 54.544819),\n    (34.525311, 54.546371),\n    (34.527210, 54.547169),\n    (34.584171, 54.562981),\n    (34.585339, 54.563301),\n    (34.585979, 54.563480),\n    (34.608330, 54.569618),\n    (34.640869, 54.578629),\n    (34.696659, 54.594090),\n    (34.709099, 54.597500),\n    (34.709541, 54.597630),\n    (34.723831, 54.601551),\n    (34.726841, 54.602379),\n    (34.748009, 54.608200),\n    (34.795799, 54.621521),\n    (34.805470, 54.624062),\n    (34.825062, 54.629459),\n    (34.844830, 54.634911),\n    (34.845520, 54.635090),\n    (34.853790, 54.637371),\n    (34.874390, 54.643051),\n    (34.919960, 54.655540),\n    (35.013649, 54.681080),\n    (35.016289, 54.681789),\n    (35.025162, 54.684170),\n    (35.036732, 54.687302),\n    (35.044930, 54.689522),\n    (35.053928, 54.691952),\n    (35.095718, 54.703239),\n    (35.107868, 54.706532),\n    (35.109951, 54.707100),\n    (35.113838, 54.708149),\n    (35.118740, 54.709480),\n    (35.120369, 54.709900),\n    (35.126949, 54.711681),\n    (35.127090, 54.711712),\n    (35.132839, 54.713261),\n    (35.137161, 54.714649),\n    (35.143459, 54.716660),\n    (35.145729, 54.717361),\n    (35.150440, 54.718811),\n    (35.166191, 54.723900),\n    (35.168770, 54.724731),\n    (35.172482, 54.725971),\n    (35.172958, 54.726120),\n    (35.179489, 54.728210),\n    (35.180222, 54.728439),\n    (35.182850, 54.729271),\n    (35.184719, 54.729900),\n    (35.186470, 54.730461),\n    (35.187069, 54.730659),\n    (35.194382, 54.733002),\n    (35.195290, 54.733299),\n    (35.195530, 54.733379),\n    (35.204639, 54.736271),\n    (35.207020, 54.737011),\n    (35.208580, 54.737511),\n    (35.209351, 54.737751),\n    (35.210571, 54.738152),\n    (35.211830, 54.738579),\n    (35.212830, 54.738899),\n    (35.214191, 54.739330),\n    (35.214951, 54.739571),\n    (35.219650, 54.741070),\n    (35.220150, 54.741230),\n    (35.220921, 54.741489),\n    (35.221779, 54.741680),\n    (35.224110, 54.741680),\n    (35.224209, 54.741680),\n    (35.225849, 54.741669),\n    (35.226681, 54.741680),\n    (35.226849, 54.741669),\n    (35.229580, 54.741711),\n    (35.229630, 54.742531),\n    (35.229710, 54.744011),\n    (35.230808, 54.744019),\n    (35.231411, 54.744019),\n    (35.232170, 54.744030),\n    (35.232311, 54.744030),\n    (35.233341, 54.744030),\n    (35.234570, 54.744019),\n    (35.234909, 54.744019),\n    (35.236061, 54.744030),\n    (35.237591, 54.744041),\n    (35.237991, 54.744091),\n    (35.238270, 54.744171),\n    (35.239239, 54.744438),\n    (35.239658, 54.744560),\n    (35.241009, 54.744961),\n    (35.242569, 54.745419),\n    (35.242950, 54.745541),\n    (35.247139, 54.746780),\n    (35.247311, 54.746830),\n    (35.248058, 54.747059),\n    (35.248402, 54.747150),\n    (35.248920, 54.747311),\n    (35.249229, 54.747398),\n    (35.249519, 54.747490),\n    (35.251381, 54.748020),\n    (35.252491, 54.748360),\n    (35.254082, 54.748821),\n    (35.254398, 54.748920),\n    (35.255581, 54.749260),\n    (35.257179, 54.749729),\n    (35.261021, 54.750858),\n    (35.263340, 54.751530),\n    (35.265411, 54.752331),\n    (35.279129, 54.758949),\n    (35.282539, 54.760559),\n    (35.288071, 54.763210),\n    (35.294102, 54.766079),\n    (35.296951, 54.767319),\n    (35.302391, 54.769920),\n    (35.303188, 54.770370),\n    (35.305199, 54.771389),\n    (35.305710, 54.771648),\n    (35.311272, 54.774261),\n    (35.315849, 54.776451),\n    (35.319820, 54.777950),\n    (35.334599, 54.783192),\n    (35.340771, 54.785351),\n    (35.341209, 54.785511),\n    (35.351120, 54.788990),\n    (35.352211, 54.789379),\n    (35.359989, 54.792110),\n    (35.365379, 54.793980),\n    (35.393929, 54.803989),\n    (35.407162, 54.808620),\n    (35.434368, 54.818199),\n    (35.462391, 54.828030),\n    (35.468342, 54.830101),\n    (35.481152, 54.834560),\n    (35.493389, 54.838829),\n    (35.518871, 54.847698),\n    (35.520470, 54.848259),\n    (35.532269, 54.852348),\n    (35.533649, 54.852840),\n    (35.548180, 54.857880),\n    (35.558769, 54.861561),\n    (35.567570, 54.864620),\n    (35.581860, 54.869549),\n    (35.592758, 54.873348),\n    (35.603760, 54.877140),\n    (35.620819, 54.883018),\n    (35.629929, 54.886162),\n    (35.633900, 54.887520),\n    (35.638401, 54.889069),\n    (35.651321, 54.893520),\n    (35.655830, 54.895081),\n    (35.659550, 54.896351),\n    (35.666920, 54.898891),\n    (35.670391, 54.900101),\n    (35.672218, 54.900711),\n    (35.674221, 54.901409),\n    (35.678131, 54.902771),\n    (35.678921, 54.903042),\n    (35.684929, 54.905109),\n    (35.696800, 54.909199),\n    (35.703579, 54.911541),\n    (35.712620, 54.914639),\n    (35.737862, 54.923290),\n    (35.741692, 54.924610),\n    (35.742722, 54.925011),\n    (35.743809, 54.925598),\n    (35.745010, 54.926311),\n    (35.750839, 54.929729),\n    (35.752251, 54.930569),\n    (35.753201, 54.931061),\n    (35.754810, 54.931808),\n    (35.756771, 54.932629),\n    (35.759392, 54.933609),\n    (35.762180, 54.934620),\n    (35.762600, 54.934780),\n    (35.767792, 54.936649),\n    (35.775349, 54.939301),\n    (35.779930, 54.940910),\n    (35.790298, 54.944550),\n    (35.806461, 54.950161),\n    (35.823910, 54.956268),\n    (35.839981, 54.961800),\n    (35.840271, 54.961899),\n    (35.847511, 54.964432),\n    (35.848301, 54.964668),\n    (35.848919, 54.964802),\n    (35.851650, 54.965309),\n    (35.852692, 54.965500),\n    (35.854912, 54.965900),\n    (35.855782, 54.966110),\n    (35.856140, 54.966240),\n    (35.856441, 54.966450),\n    (35.859550, 54.966141),\n    (35.862381, 54.965721),\n    (35.865120, 54.965290),\n    (35.867939, 54.964909),\n    (35.870731, 54.964500),\n    (35.871250, 54.965599),\n    (35.873619, 54.965290),\n    (35.874229, 54.965271),\n    (35.876148, 54.965221),\n    (35.878670, 54.965172),\n    (35.881920, 54.965191),\n    (35.886051, 54.965340),\n    (35.894878, 54.965649),\n    (35.897099, 54.965729),\n    (35.900318, 54.965839),\n    (35.904202, 54.965981),\n    (35.914379, 54.966351),\n    (35.929390, 54.966911),\n    (35.944618, 54.967468),\n    (35.974880, 54.968552),\n    (36.047100, 54.971069),\n    (36.054531, 54.971291),\n    (36.058708, 54.971439),\n    (36.082439, 54.972290),\n    (36.087860, 54.972481),\n    (36.095200, 54.972721),\n    (36.107658, 54.973148),\n    (36.108089, 54.973171),\n    (36.151329, 54.974640),\n    (36.153542, 54.974751),\n    (36.155701, 54.974960),\n    (36.159931, 54.975422),\n    (36.161758, 54.975620),\n    (36.163250, 54.975780),\n    (36.164879, 54.975971),\n    (36.167641, 54.976261),\n    (36.172161, 54.976749),\n    (36.194340, 54.979172),\n    (36.202919, 54.980099),\n    (36.234692, 54.983521),\n    (36.236420, 54.983700),\n    (36.246609, 54.984791),\n    (36.246861, 54.984821),\n    (36.247059, 54.984840),\n    (36.248909, 54.985050),\n    (36.253040, 54.985489),\n    (36.257801, 54.986000),\n    (36.277729, 54.988140),\n    (36.297169, 54.990219),\n    (36.297371, 54.990238),\n    (36.302509, 54.990791),\n    (36.322029, 54.992882),\n    (36.323780, 54.993069),\n    (36.332779, 54.993999),\n    (36.334911, 54.994221),\n    (36.336399, 54.994389),\n    (36.338459, 54.994610),\n    (36.341640, 54.994961),\n    (36.347569, 54.995590),\n    (36.351299, 54.995991),\n    (36.352261, 54.996120),\n    (36.352680, 54.996170),\n    (36.357460, 54.996681),\n    (36.377491, 54.998791),\n    (36.378300, 54.998871),\n    (36.386490, 54.999722),\n    (36.391960, 55.000278),\n    (36.394230, 55.000511),\n    (36.394600, 55.000038),\n    (36.395210, 54.999519),\n    (36.395691, 54.999359),\n    (36.395821, 54.999660),\n    (36.395561, 55.000259),\n    (36.395309, 55.000648),\n    (36.395580, 55.000679),\n    (36.411018, 55.002300),\n    (36.414059, 55.002621),\n    (36.421051, 55.003361),\n    (36.425171, 55.003799),\n    (36.426300, 55.003929),\n    (36.427990, 55.004101),\n    (36.428810, 55.004189),\n    (36.435989, 55.004959),\n    (36.437290, 55.005100),\n    (36.438580, 55.005230),\n    (36.439560, 55.005329),\n    (36.439579, 55.005329),\n    (36.440109, 55.005390),\n    (36.443340, 55.005730),\n    (36.445881, 55.006001),\n    (36.446079, 55.006020),\n    (36.447769, 55.006229),\n    (36.448231, 55.006371),\n    (36.448589, 55.006512),\n    (36.449081, 55.006760),\n    (36.450779, 55.007771),\n    (36.452450, 55.008732),\n    (36.454571, 55.007561),\n    (36.456871, 55.008881),\n    (36.458450, 55.009800),\n    (36.460331, 55.010841),\n    (36.461552, 55.011589),\n    (36.462090, 55.011589),\n    (36.462749, 55.011902),\n    (36.462528, 55.012180),\n    (36.463310, 55.012600),\n    (36.466789, 55.011360),\n    (36.467178, 55.011219),\n    (36.469379, 55.010441),\n    (36.471001, 55.010990),\n    (36.474190, 55.012058),\n    (36.475910, 55.012661),\n    (36.476929, 55.013008),\n    (36.478828, 55.013660),\n    (36.480381, 55.014118),\n    (36.482128, 55.014690),\n    (36.483849, 55.015320),\n    (36.485119, 55.015709),\n    (36.486740, 55.016289),\n    (36.489059, 55.017052),\n    (36.491879, 55.017979),\n    (36.497520, 55.019859),\n    (36.499729, 55.020611),\n    (36.500172, 55.020729),\n    (36.500690, 55.020950),\n    (36.503029, 55.021721),\n    (36.504539, 55.022240),\n    (36.515591, 55.026871),\n    (36.519932, 55.028660),\n    (36.521889, 55.029491),\n    (36.522259, 55.029640),\n    (36.526299, 55.031319),\n    (36.528919, 55.032429),\n    (36.533401, 55.034599),\n    (36.540951, 55.038361),\n    (36.548439, 55.042110),\n    (36.549259, 55.042660),\n    (36.552898, 55.046169),\n    (36.553551, 55.046589),\n    (36.555988, 55.047668),\n    (36.556519, 55.047890),\n    (36.560410, 55.049530),\n    (36.560940, 55.049751),\n    (36.571308, 55.054111),\n    (36.571781, 55.054310),\n    (36.574070, 55.055260),\n    (36.578732, 55.057240),\n    (36.582039, 55.058578),\n    (36.583260, 55.059101),\n    (36.589630, 55.061840),\n    (36.592579, 55.063110),\n    (36.594040, 55.063709),\n    (36.597710, 55.065151),\n    (36.608292, 55.069592),\n    (36.609440, 55.070099),\n    (36.612560, 55.071381),\n    (36.616371, 55.072971),\n    (36.626659, 55.077259),\n    (36.627541, 55.077621),\n    (36.627869, 55.077759),\n    (36.628151, 55.077839),\n    (36.628300, 55.077869),\n    (36.628460, 55.077881),\n    (36.628479, 55.077839),\n    (36.628590, 55.077820),\n    (36.628719, 55.077839),\n    (36.628880, 55.077900),\n    (36.629021, 55.078030),\n    (36.629250, 55.078232),\n    (36.629601, 55.078480),\n    (36.630199, 55.078732),\n    (36.635231, 55.080791),\n    (36.646080, 55.085030),\n    (36.646770, 55.085289),\n    (36.647362, 55.085510),\n    (36.648689, 55.086029),\n    (36.649731, 55.086449),\n    (36.650089, 55.086590),\n    (36.650791, 55.086868),\n    (36.650810, 55.086880),\n    (36.653461, 55.087921),\n    (36.655010, 55.088531),\n    (36.655140, 55.088581),\n    (36.657181, 55.089359),\n    (36.657661, 55.089539),\n    (36.660591, 55.090691),\n    (36.661110, 55.090889),\n    (36.661880, 55.091190),\n    (36.662682, 55.091511),\n    (36.664280, 55.092121),\n    (36.664989, 55.092400),\n    (36.665119, 55.092449),\n    (36.672081, 55.095150),\n    (36.673569, 55.095741),\n    (36.673870, 55.095860),\n    (36.674370, 55.096062),\n    (36.674389, 55.096069),\n    (36.676991, 55.097069),\n    (36.684021, 55.099781),\n    (36.691219, 55.102600),\n    (36.697910, 55.105228),\n    (36.699532, 55.105881),\n    (36.724789, 55.115730),\n    (36.739330, 55.121391),\n    (36.741249, 55.122150),\n    (36.782631, 55.138222),\n    (36.783581, 55.138592),\n    (36.827160, 55.124310),\n    (36.827240, 55.124439),\n    (36.827469, 55.124500),\n    (36.828400, 55.124371),\n    (36.828861, 55.124191),\n    (36.829460, 55.123871),\n    (36.831390, 55.123260),\n    (36.833130, 55.122669),\n    (36.833691, 55.122631),\n    (36.837830, 55.125221),\n    (36.838299, 55.125488),\n    (36.838829, 55.125599),\n    (36.839470, 55.125420),\n    (36.839802, 55.125408),\n    (36.840450, 55.125500),\n    (36.841061, 55.125702),\n    (36.841450, 55.125751),\n    (36.844299, 55.127022),\n    (36.844299, 55.127270),\n    (36.844170, 55.127510),\n    (36.844090, 55.127651),\n    (36.843800, 55.128342),\n    (36.845020, 55.128139),\n    (36.845650, 55.127850),\n    (36.847130, 55.128010),\n    (36.851540, 55.129349),\n    (36.852230, 55.129501),\n    (36.853519, 55.128181),\n    (36.854671, 55.126999),\n    (36.855030, 55.126869),\n    (36.856468, 55.126320),\n    (36.857281, 55.126209),\n    (36.858219, 55.125500),\n    (36.858620, 55.125050),\n    (36.859791, 55.124939),\n    (36.861351, 55.125252),\n    (36.863739, 55.125210),\n    (36.865528, 55.124840),\n    (36.866920, 55.123600),\n    (36.867962, 55.123371),\n    (36.868210, 55.123230),\n    (36.868519, 55.123230),\n    (36.870239, 55.122799),\n    (36.871319, 55.122719),\n    (36.873489, 55.122120),\n    (36.878040, 55.121422),\n    (36.879768, 55.121571),\n    (36.881130, 55.121429),\n    (36.882271, 55.120300),\n    (36.882439, 55.120140),\n    (36.883530, 55.119930),\n    (36.885380, 55.118759),\n    (36.885719, 55.118679),\n    (36.888580, 55.118851),\n    (36.890270, 55.119499),\n    (36.893002, 55.119720),\n    (36.893909, 55.120510),\n    (36.895050, 55.120571),\n    (36.896858, 55.120560),\n    (36.897900, 55.120510),\n    (36.899040, 55.120838),\n    (36.898998, 55.121250),\n    (36.899231, 55.121410),\n    (36.901169, 55.121361),\n    (36.904629, 55.121361),\n    (36.906700, 55.121632),\n    (36.907532, 55.121658),\n    (36.908291, 55.121361),\n    (36.909599, 55.121201),\n    (36.910629, 55.121189),\n    (36.912361, 55.121510),\n    (36.913651, 55.121300),\n    (36.913849, 55.120960),\n    (36.914822, 55.120880),\n    (36.916538, 55.120350),\n    (36.917221, 55.119930),\n    (36.917641, 55.119400),\n    (36.918671, 55.118858),\n    (36.923481, 55.117691),\n    (36.924629, 55.117088),\n    (36.925041, 55.117111),\n    (36.925522, 55.117378),\n    (36.926281, 55.117409),\n    (36.927269, 55.117722),\n    (36.929180, 55.117870),\n    (36.930370, 55.117722),\n    (36.931049, 55.117771),\n    (36.932671, 55.118160),\n    (36.934750, 55.118370),\n    (36.936138, 55.118290),\n    (36.936272, 55.118229),\n    (36.936821, 55.118179),\n    (36.937000, 55.118500),\n    (36.938251, 55.119270),\n    (36.939838, 55.119869),\n    (36.940750, 55.120289),\n    (36.941639, 55.120701),\n    (36.941830, 55.120861),\n    (36.941490, 55.121479),\n    (36.943291, 55.121792),\n    (36.944160, 55.121792),\n    (36.944839, 55.121342),\n    (36.946201, 55.120682),\n    (36.946701, 55.120651),\n    (36.947140, 55.120171),\n    (36.947350, 55.119579),\n    (36.947800, 55.119331),\n    (36.950001, 55.118980),\n    (36.952759, 55.118759),\n    (36.954979, 55.118290),\n    (36.956612, 55.117630),\n    (36.959080, 55.116741),\n    (36.959782, 55.116261),\n    (36.960171, 55.115780),\n    (36.961102, 55.115959),\n    (36.963470, 55.116131),\n    (36.964779, 55.116020),\n    (36.966122, 55.115688),\n    (36.967899, 55.115410),\n    (36.969620, 55.115162),\n    (36.971779, 55.114609),\n    (36.972111, 55.114410),\n    (36.975330, 55.113541),\n    (36.976372, 55.113091),\n    (36.979698, 55.112720),\n    (36.981850, 55.112061),\n    (36.982861, 55.111900),\n    (36.983608, 55.111919),\n    (36.983849, 55.111900),\n    (36.984032, 55.111889),\n    (36.984131, 55.111729),\n    (36.984329, 55.111691),\n    (36.985050, 55.111481),\n    (36.986408, 55.111431),\n    (36.986691, 55.111671),\n    (36.986691, 55.112030),\n    (36.986950, 55.112202),\n    (36.988060, 55.112289),\n    (36.990520, 55.112129),\n    (36.995300, 55.112720),\n    (36.997551, 55.113468),\n    (37.002251, 55.112461),\n    (37.002441, 55.112202),\n    (37.002010, 55.111301),\n    (37.002331, 55.111259),\n    (37.002491, 55.111469),\n    (37.003620, 55.112839),\n    (37.004219, 55.112991),\n    (37.004631, 55.113361),\n    (37.004700, 55.113750),\n    (37.004871, 55.113708),\n    (37.005569, 55.112679),\n    (37.006821, 55.112041),\n    (37.009731, 55.110920),\n    (37.011341, 55.110828),\n    (37.012211, 55.111111),\n    (37.013489, 55.111740),\n    (37.015469, 55.112370),\n    (37.025341, 55.113319),\n    (37.028591, 55.113392),\n    (37.033852, 55.113140),\n    (37.038738, 55.113060),\n    (37.039631, 55.113041),\n    (37.040710, 55.113220),\n    (37.041599, 55.113998),\n    (37.041950, 55.114510),\n    (37.042931, 55.114922),\n    (37.043598, 55.114948),\n    (37.045071, 55.114681),\n    (37.045959, 55.114349),\n    (37.048660, 55.112850),\n    (37.050270, 55.111179),\n    (37.055370, 55.108898),\n    (37.056831, 55.108440),\n    (37.057072, 55.108139),\n    (37.057430, 55.107979),\n    (37.057678, 55.107849),\n    (37.057838, 55.107262),\n    (37.058128, 55.107182),\n    (37.058922, 55.106998),\n    (37.059620, 55.107159),\n    (37.060150, 55.107090),\n    (37.060841, 55.106640),\n    (37.062290, 55.106491),\n    (37.063110, 55.106880),\n    (37.064270, 55.106812),\n    (37.065941, 55.106300),\n    (37.066029, 55.105728),\n    (37.066090, 55.105122),\n    (37.066662, 55.105049),\n    (37.070591, 55.105068),\n    (37.072441, 55.105000),\n    (37.074471, 55.105499),\n    (37.076759, 55.106209),\n    (37.077831, 55.106541),\n    (37.081692, 55.107811),\n    (37.082699, 55.108021),\n    (37.084110, 55.107941),\n    (37.086071, 55.107460),\n    (37.090179, 55.107029),\n    (37.092060, 55.106750),\n    (37.094391, 55.106251),\n    (37.096390, 55.105461),\n    (37.096081, 55.104919),\n    (37.096249, 55.104839),\n    (37.096260, 55.104649),\n    (37.096039, 55.104561),\n    (37.096230, 55.104519),\n    (37.096291, 55.104389),\n    (37.096909, 55.104198),\n    (37.097580, 55.103859),\n    (37.098019, 55.103531),\n    (37.100090, 55.103168),\n    (37.103882, 55.103390),\n    (37.107899, 55.102951),\n    (37.108829, 55.105179),\n    (37.109989, 55.106289),\n    (37.114559, 55.108601),\n    (37.126110, 55.112492),\n    (37.132870, 55.113869),\n    (37.135551, 55.114422),\n    (37.143639, 55.114399),\n    (37.160591, 55.113689),\n    (37.167400, 55.112629),\n    (37.168499, 55.112598),\n    (37.173981, 55.113960),\n    (37.177631, 55.115292),\n    (37.181881, 55.111858),\n    (37.184792, 55.110481),\n    (37.186169, 55.109829),\n    (37.197540, 55.109692),\n    (37.206772, 55.106010),\n    (37.211079, 55.105511),\n    (37.222580, 55.106209),\n    (37.228321, 55.106129),\n    (37.233238, 55.105061),\n    (37.244549, 55.103298),\n    (37.247639, 55.103149),\n    (37.251339, 55.102421),\n    (37.252621, 55.102470),\n    (37.253731, 55.102798),\n    (37.256569, 55.103989),\n    (37.267151, 55.105621),\n    (37.275108, 55.106789),\n    (37.276058, 55.107079),\n    (37.286098, 55.111752),\n    (37.287560, 55.112240),\n    (37.291851, 55.112679),\n    (37.304550, 55.116409),\n    (37.308929, 55.117290),\n    (37.312279, 55.117882),\n    (37.324741, 55.121410),\n    (37.327599, 55.122120),\n    (37.335152, 55.123531),\n    (37.337212, 55.123909),\n    (37.337811, 55.123749),\n    (37.338638, 55.123631),\n    (37.339630, 55.123581),\n    (37.343979, 55.123459),\n    (37.345379, 55.123421),\n    (37.346241, 55.123451),\n    (37.347469, 55.123619),\n    (37.348919, 55.123890),\n    (37.351589, 55.123871),\n    (37.353069, 55.123852),\n    (37.354549, 55.123878),\n    (37.356030, 55.123951),\n    (37.359230, 55.124241),\n    (37.365318, 55.124741),\n    (37.369572, 55.125099),\n    (37.374989, 55.125599),\n    (37.376949, 55.125889),\n    (37.380440, 55.126400),\n    (37.381500, 55.126640),\n    (37.384418, 55.127621),\n    (37.387081, 55.128578),\n    (37.387680, 55.128719),\n    (37.388451, 55.128849),\n    (37.391029, 55.129051),\n    (37.391918, 55.129059),\n    (37.392891, 55.128929),\n    (37.393860, 55.128700),\n    (37.395061, 55.128460),\n    (37.396061, 55.128349),\n    (37.396832, 55.128281),\n    (37.401058, 55.128029),\n    (37.404419, 55.127831),\n    (37.405540, 55.127850),\n    (37.406551, 55.127918),\n    (37.407661, 55.128029),\n    (37.407982, 55.128071),\n    (37.408821, 55.128250),\n    (37.410431, 55.128651),\n    (37.415249, 55.130058),\n    (37.416939, 55.130619),\n    (37.418121, 55.131161),\n    (37.418579, 55.131500),\n    (37.419781, 55.132660),\n    (37.421021, 55.133739),\n    (37.421600, 55.134079),\n    (37.422401, 55.134399),\n    (37.423740, 55.134689),\n    (37.430691, 55.135429),\n    (37.439819, 55.136429),\n    (37.444241, 55.137070),\n    (37.445789, 55.137390),\n    (37.446259, 55.137711),\n    (37.446480, 55.137909),\n    (37.446522, 55.138149),\n    (37.446522, 55.138840),\n    (37.446651, 55.139130),\n    (37.446819, 55.139309),\n    (37.447330, 55.139400),\n    (37.448231, 55.139309),\n    (37.449612, 55.139111),\n    (37.450611, 55.139000),\n    (37.450859, 55.139011),\n    (37.451141, 55.139160),\n    (37.451370, 55.140060),\n    (37.451740, 55.141350),\n    (37.451839, 55.141541),\n    (37.452782, 55.141369),\n    (37.453220, 55.142189),\n    (37.455021, 55.141769),\n    (37.455151, 55.141739),\n    (37.456871, 55.141331),\n    (37.457401, 55.141209),\n    (37.457920, 55.141090),\n    (37.458149, 55.141060),\n    (37.458469, 55.141041),\n    (37.458759, 55.141090),\n    (37.460041, 55.141430),\n    (37.461380, 55.141788),\n    (37.462379, 55.142052),\n    (37.462780, 55.142170),\n    (37.463261, 55.142288),\n    (37.465839, 55.143002),\n    (37.467461, 55.143429),\n    (37.468800, 55.143780),\n    (37.468929, 55.143810),\n    (37.470261, 55.144161),\n    (37.472549, 55.144730),\n    (37.472809, 55.144791),\n    (37.472919, 55.144821),\n    (37.473640, 55.145000),\n    (37.473930, 55.145069),\n    (37.474579, 55.145241),\n    (37.475269, 55.145409),\n    (37.476589, 55.145729),\n    (37.477341, 55.145920),\n    (37.477928, 55.146061),\n    (37.478760, 55.146271),\n    (37.480831, 55.146721),\n    (37.481369, 55.146839),\n    (37.484119, 55.147449),\n    (37.484379, 55.147511),\n    (37.486080, 55.147911),\n    (37.487350, 55.148220),\n    (37.487560, 55.148270),\n    (37.487820, 55.148331),\n    (37.487961, 55.148350),\n    (37.488129, 55.148338),\n    (37.488251, 55.148319),\n    (37.488350, 55.148300),\n    (37.488491, 55.148300),\n    (37.488590, 55.148289),\n    (37.488670, 55.148258),\n    (37.488750, 55.148201),\n    (37.489029, 55.147820),\n    (37.489441, 55.147301),\n    (37.489552, 55.147141),\n    (37.489601, 55.146950),\n    (37.489651, 55.146370),\n    (37.489910, 55.143520),\n    (37.489929, 55.143330),\n    (37.489910, 55.143139),\n    (37.489658, 55.142712),\n    (37.489529, 55.142540),\n    (37.489479, 55.142349),\n    (37.489471, 55.142250),\n    (37.489460, 55.142078),\n    (37.489571, 55.141670),\n    (37.490040, 55.140911),\n    (37.490170, 55.140800),\n    (37.490341, 55.140751),\n    (37.490551, 55.140739),\n    (37.490761, 55.140751),\n    (37.490978, 55.140789),\n    (37.491161, 55.140881),\n    (37.492050, 55.141529),\n    (37.492809, 55.141972),\n    (37.493599, 55.142300),\n    (37.494450, 55.142559),\n    (37.495399, 55.142799),\n    (37.499352, 55.143520),\n    (37.500710, 55.143681),\n    (37.502541, 55.143810),\n    (37.503448, 55.143860),\n    (37.504372, 55.143829),\n    (37.510361, 55.143398),\n    (37.512569, 55.143269),\n    (37.520920, 55.143978),\n    (37.522591, 55.144081),\n    (37.523918, 55.144058),\n    (37.524540, 55.144039),\n    (37.524780, 55.143970),\n    (37.525200, 55.143761),\n    (37.525620, 55.143398),\n    (37.526211, 55.142811),\n    (37.528091, 55.140289),\n    (37.529202, 55.139511),\n    (37.532959, 55.137581),\n    (37.537201, 55.134258),\n    (37.538979, 55.132900),\n    (37.541039, 55.131809),\n    (37.542179, 55.131199),\n    (37.545330, 55.129169),\n    (37.546650, 55.129459),\n    (37.546921, 55.129520),\n    (37.555550, 55.130920),\n    (37.556320, 55.130970),\n    (37.557949, 55.131062),\n    (37.559521, 55.131149),\n    (37.560650, 55.131229),\n    (37.567589, 55.128361),\n    (37.575562, 55.117641),\n    (37.579189, 55.112530),\n    (37.580021, 55.111240),\n    (37.580830, 55.109951),\n    (37.581760, 55.108349),\n    (37.582611, 55.106709),\n    (37.583469, 55.104809),\n    (37.584179, 55.102982),\n    (37.584450, 55.101910),\n    (37.584751, 55.100800),\n    (37.585098, 55.098652),\n    (37.585129, 55.096741),\n    (37.585041, 55.095650),\n    (37.584900, 55.094589),\n    (37.584690, 55.093491),\n    (37.584419, 55.092388),\n    (37.584171, 55.091629),\n    (37.583961, 55.091049),\n    (37.583450, 55.089729),\n    (37.582878, 55.088551),\n    (37.582291, 55.087399),\n    (37.582001, 55.086880),\n    (37.581619, 55.086182),\n    (37.581181, 55.085449),\n    (37.580238, 55.084030),\n    (37.579189, 55.082489),\n    (37.578209, 55.081131),\n    (37.577320, 55.080040),\n    (37.577030, 55.079651),\n    (37.576401, 55.078850),\n    (37.576080, 55.078442))]\n\n# \"threshold\": \"0.0005\", ...  # lon, lat, area?\nVwPts = [LatLon_(_lat, _lon) for _lon, _lat, _a2 in (\n    (2.32986, 48.86005,  0),  # lon, lat\n    (2.35093, 48.863411, 0.0006764590350000889),\n    (2.43115, 48.940418, 0.005275181324999963),\n    (2.54246, 48.960732, 0.0013039877850000996),\n    (2.63999, 49.001961, 0.010534887319999823),\n    (2.80339, 49.144669, 0.024102912679999897),\n    (2.85119, 49.159790, 0.0007342628499998849),\n    (2.99549, 49.236160, 0.0034791586549993733),\n    (3.08543, 49.265160, 0.0006159743600001309),\n    (3.13198, 49.266472, 0.003311627689999829),\n    (3.21429, 49.302959, 0.0009464529800000195),\n    (3.28301, 49.356419, 0.0018893187500001478),\n    (3.32890, 49.358730, 0.09552116839999703),\n    (3.37508, 49.387329, 0.0005483386499999484),\n    (3.36840, 49.406940, 0.0008029409999999435),\n    (3.43405, 49.446411, 0.002959171529999519),\n    (3.51661, 49.463291, 0.0026900486400000365),\n    (3.62701, 49.551029, 0.015417812199999662),\n    (3.65985, 49.594040, 0.0005695053100000875),\n    (3.71867, 49.705761, 0.00977195401000054),\n    (3.80852, 49.780540, 0.0014305421600002072),\n    (3.93060, 49.850300, 0.011768190849826103),\n    (4.00552, 49.867611, 0.0006279938350000511),\n    (4.02625, 49.889511, 0.0006053469450000905),\n    (4.09659, 49.905418, 0.0021937935149999514),\n    (4.10586, 49.934929, 0.0008882974199991181),\n    (4.16724, 49.974251, 0.0006570687600002264),\n    (4.31856, 50.027500, 0.004801179380001489),\n    (4.37885, 50.030609, 0.0010781928850002172),\n    (4.46792, 50.070969, 0.03488412753500111),\n    (4.49368, 50.127609, 0.0008648552000000303),\n    (4.57809, 50.246059, 0.0010913535349680074),\n    (4.60485, 50.252739, 0.0005071614200001603),\n    (4.65955, 50.304298, 0.001078659360000252),\n    (4.71331, 50.316250, 0.005746164855001361),\n    (4.86628, 50.422180, 0.0012534538349999722),\n    (4.85599, 50.445961, 0.0036526170449996402),\n    (4.94456, 50.503571, 0.0007576398200001946),\n    (5.00459, 50.525509, 0.0019311189600001934),\n    (5.06250, 50.582500, 0.01865430001500212),\n    (5.12338, 50.591831, 0.0014397069050002618),\n    (5.19067, 50.649441, 0.0005253489150003868),\n    (5.32410, 50.724720, 0.0013054674849995174),\n    (5.46203, 50.782970, 0.38402723349999696),\n    (5.59527, 50.811749, 0.003648713830000012),\n    (5.70955, 50.859509, 0.0009227223999996644),\n    (5.78653, 50.907829, 0.0012011808400062926),\n    (5.83605, 50.912300, 0.0013927635499998384),\n    (5.96387, 50.980091, 0.0013384183800003785),\n    (6.14661, 51.039459, 0.0032356071399997893),\n    (6.21046, 51.077419, 0.0008143443249999117),\n    (6.33651, 51.126850, 0.04902457900000075),\n    (6.36855, 51.158169, 0.0007331124400002367),\n    (6.48883, 51.229980, 0.003027862770000432),\n    (6.47779, 51.252701, 0.0015974398750002344),\n    (6.58010, 51.331532, 0.026891873830001863),\n    (6.75227, 51.371132, 0.007320081329999557),\n    (6.84989, 51.429039, 0.0016811635150002966),\n    (6.87801, 51.431438, 0.000512130390000089),\n    (6.97855, 51.476440, 0.0011294343550004844),\n    (7.01853, 51.508781, 0.0005533025450000715),\n    (7.08124, 51.531830, 30.637291359080464),\n    (7.24011, 51.558880, 0.0005946596100000248),\n    (7.31798, 51.557789, 0.0031382185750001104),\n    (7.42589, 51.595341, 0.0014381680599997108),\n    (7.54105, 51.608761, 0.023957451864999257),\n    (7.59659, 51.636028, 0.0007998361400001845),\n    (7.70191, 51.658932, 0.0011498674699997706),\n    (7.74593, 51.686958, 0.004628844099999091),\n    (7.92157, 51.708809, 0.004967921119997949),\n    (8.03324, 51.755070, 0.0006727705950003259),\n    (8.19468, 51.804260, 0.0005307743000001811),\n    (8.35782, 51.849621, 0.05281267402498393),\n    (8.44433, 51.859482, 0.0006462804050000689),\n    (8.49079, 51.879719, 0.0005782189850000984),\n    (8.5841000, 51.884579, 0.0009925159049999634),\n    (8.6627700, 51.909950, 0.0038223860100000872),\n    (8.7726000, 51.906609, 0.00667983440999894),\n    (8.9343000, 51.956890, 0.002762111659999994),\n    (9.0024100, 51.956379, 0.0012302698100002585),\n    (9.0968700, 51.990940, 0.0009850244750002075),\n    (9.1550200, 51.991360, 0.00463162946500384),\n    (9.3353500, 52.079762, 0.00102454309500001),\n    (9.3618400, 52.104111, 0.016210181225000855),\n    (9.4800700, 52.106560, 0.0008511323199998173),\n    (9.5323100, 52.122040, 0.003928847264999778),\n    (9.6133500, 52.084469, 0.024710846605002817),\n    (9.7386200, 52.124001, 0.0009839387999998684),\n    (9.7681500, 52.149029, 0.007084765800000054),\n    (9.8509100, 52.159939, 0.00086617153000034),\n    (9.9341700, 52.153461, 0.0005665361000000064),\n    (10.015680, 52.160728, 0.007558770084999596),\n    (10.159670, 52.200970, 0.0006649291799999768),\n    (10.330790, 52.258030, 2.6073560327749523),\n    (10.514200, 52.262520, 0.001902058545000699),\n    (10.669100, 52.245571, 0.004948494300001596),\n    (10.790770, 52.257530, 0.0024091588200003456),\n    (10.881130, 52.226810, 0.0011020893599978292),\n    (10.997780, 52.229191, 0.0013778860650000852),\n    (11.118510, 52.208031, 0.0006157936350002171),\n    (11.352270, 52.187160, 0.000984766875000195),\n    (11.436680, 52.188049, 0.18220487750999814),\n    (11.521640, 52.164879, 0.005529395700000094),\n    (11.622380, 52.187531, 0.0008918949599999886),\n    (11.680520, 52.218311, 0.0013726619999999356),\n    (11.763740, 52.229019, 0.0079287214000009),\n    (12.056750, 52.232670, 0.0016880092800002455),\n    (12.214300, 52.252441, 0.0012197837899998105),\n    (12.343050, 52.264950, 0.0005295360450000073),\n    (12.442440, 52.279900, 0.003422048374999983),\n    (12.509530, 52.338360, 0.0008390861550002213),\n    (12.552950, 52.351181, 0.026837878589999302),\n    (12.660930, 52.335209, 0.001307028479999809),\n    (12.807680, 52.337711, 0.005270944050000337),\n    (12.918790, 52.290451, 0.02498763803498333),\n    (12.977330, 52.303600, 0.0018784250500008376),\n    (13.248490, 52.300331, 0.0016729491000007984),\n    (13.279420, 52.308590, 0.0007041621900002286),\n    (13.440540, 52.306080, 0.0010678526499998911),\n    (13.510740, 52.319302, 0.0012690690550003036),\n    (13.646030, 52.310699, 0.0012363328449999094),\n    (13.824100, 52.310299, 0.0010152788399996218),\n    (13.957590, 52.311550, 0.005348844410000293),\n    (14.063500, 52.334190, 0.0008116855400002243),\n    (14.180730, 52.343922, 0.20303513344984891),\n    (14.291050, 52.324291, 0.0019266052749997023),\n    (14.543540, 52.314289, 0.01409927991499738),\n    (14.755990, 52.335320, 0.005373102765001079),\n    (14.842560, 52.328499, 0.0008129688600002133),\n    (14.955640, 52.338371, 0.001625489265000505),\n    (15.062210, 52.324680, 0.0007415078349998441),\n    (15.165720, 52.325298, 0.002478634384999817),\n    (15.284460, 52.294231, 0.005768687434999004),\n    (15.394060, 52.318531, 0.0014994112999996828),\n    (15.542090, 52.323990, 0.014535860675002775),\n    (15.653580, 52.299480, 0.0005582185399998018),\n    (15.712540, 52.296532, 0.06615280913498117),\n    (15.837110, 52.327572, 0.0013612283400006745),\n    (16.130489, 52.363850, 0.005248244294000376),\n    (16.448879, 52.390018, 0.08860175424850196),\n    (16.535200, 52.385269, 0.0012601281000001862),\n    (16.671410, 52.348579, 0.005768998621500028),\n    (16.888260, 52.354610, 0.001358722025499731),\n    (17.004881, 52.345322, 0.006050716657500223),\n    (17.170919, 52.307411, 0.029430887288497232),\n    (17.440769, 52.319050, 0.0007205185349998619),\n    (17.620930, 52.326950, 0.0013525745904998316),\n    (17.783670, 52.318829, 1.150875008088602),\n    (17.890829, 52.282341, 0.01088199056599956),\n    (17.986370, 52.313019, 0.0007916693010001785),\n    (18.009010, 52.336861, 0.0006768038859996414),\n    (18.130541, 52.365410, 0.0013594757285001848),\n    (18.158409, 52.394329, 0.010194835151500213),\n    (18.418810, 52.389400, 0.0023208751200005082),\n    (18.527161, 52.386780, 0.0005453816600001758),\n    (18.615891, 52.398628, 0.0006317860959999628),\n    (18.681290, 52.393120, 0.003998675989999382),\n    (18.762569, 52.420631, 0.0012300901194997852),\n    (18.805080, 52.412800, 0.0005289674395001868),\n    (18.868090, 52.426079, 0.018334857585000558),\n    (19.052900, 52.404129, 0.01182622432000123),\n    (19.164961, 52.405380, 0.0009709318260000118),\n    (19.248480, 52.423641, 0.0005799199539998452),\n    (19.305229, 52.413750, 0.0007908931205001335),\n    (19.482149, 52.444271, 0.0007165993455001046),\n    (19.611401, 52.465778, 0.13340130416599558),\n    (19.706430, 52.546162, 0.009254246704500575),\n    (19.816271, 52.573441, 0.000855054029499975),\n    (19.885170, 52.606121, 0.0014355817200004946),\n    (20.056530, 52.647541, 0.21623071443998879),\n    (20.331970, 52.616940, 0.029833217064998682),\n    (20.440701, 52.624760, 0.0013162869750000267),\n    (20.493790, 52.652790, 0.0026567240250003573),\n    (20.570709, 52.663910, 0.0007827753049998423),\n    (20.655951, 52.655880, 0.0016156096159978728),\n    (20.890230, 52.694012, 0.007938527149999652),\n    (21.043341, 52.678680, 0.005578297333500103),\n    (21.115641, 52.708408, 0.002397200585999842),\n    (21.315540, 52.724289, 0.03672012526000031),\n    (21.398420, 52.698738, 0.0024483483700000817),\n    (21.633520, 52.685341, 0.6855450359339951),\n    (21.859060, 52.784401, 0.0043868435999998906),\n    (22.246490, 52.987999, 0.002620540360000784),\n    (22.466600, 53.090141, 0.06174189788000266),\n    (22.924431, 53.164379, 1.3505344985999352),\n    (22.975700, 53.163528, 0.0008491012775003619),\n    (23.233709, 53.126122, 0.0050751893489986806),\n    (23.418150, 53.125820, 0.0017231361000003742),\n    (23.506680, 53.144360, 0.006176253293999816),\n    (23.643511, 53.108250, 0.0389964381259985),\n    (23.796881, 53.108688, 0.001176999713999742),\n    (23.871290, 53.124249, 0.0024300958499996546),\n    (24.068720, 53.116779, 0.0062176423539992195),\n    (24.450899, 53.153690, 0.008191595654608464),\n    (24.478390, 53.142380, 0.0005606419294997695),\n    (24.717630, 53.137539, 0.00233563516000034),\n    (24.851120, 53.146969, 0.00970452865549962),\n    (25.131519, 53.118011, 0.0023665216855005135),\n    (25.251310, 53.088760, 0.006705846240499901),\n    (25.417540, 53.097252, 0.0010895988389995814),\n    (25.488529, 53.087769, 0.037688359720497694),\n    (25.598780, 53.107700, 0.0009777281950000749),\n    (25.715191, 53.146481, 0.007753966616000042),\n    (25.901340, 53.139820, 0.0005876681744998979),\n    (25.925850, 53.132629, 15.624207141311611),\n    (26.067511, 53.181671, 0.0006953675744998947),\n    (26.120001, 53.209660, 0.0025667765099997154),\n    (26.330429, 53.266708, 0.015442059139498357),\n    (26.599449, 53.402821, 0.00306352640349959),\n    (26.761070, 53.507370, 0.014732591120000332),\n    (26.813770, 53.512680, 0.0006814578999998298),\n    (26.966890, 53.553970, 0.05847813158500108),\n    (27.039070, 53.589420, 0.0018875338250001297),\n    (27.089849, 53.666660, 0.007829284025000079),\n    (27.303511, 53.735130, 0.005011199784500702),\n    (27.391319, 53.803421, 0.0005928050575001501),\n    (27.432171, 53.817829, 0.0006160187779998591),\n    (27.494040, 53.869808, 0.0016981824205002005),\n    (27.585680, 53.916759, 0.9355083148300166),\n    (27.719620, 53.955311, 0.0009746368959998464),\n    (27.854549, 54.008701, 0.009018125029501734),\n    (27.997959, 54.030449, 0.0017747047010011285),\n    (28.337090, 54.106628, 0.011066727375504988),\n    (28.481810, 54.202950, 0.0005153089800003474),\n    (28.512350, 54.237518, 0.0007449054899999776),\n    (28.571150, 54.255291, 0.027840016371499444),\n    (28.770069, 54.277180, 0.0006223182559984489),\n    (29.036091, 54.312710, 0.04917403952351433),\n    (29.166031, 54.364811, 0.003102402454000118),\n    (29.304399, 54.372540, 0.0010403242859962842),\n    (29.807631, 54.477001, 0.005650901765488488),\n    (29.896370, 54.473911, 0.0017798839699999177),\n    (30.119080, 54.506271, 0.013423775744500646),\n    (30.195641, 54.542679, 0.0009894983555001128),\n    (30.275570, 54.554840, 0.0018340367199999046),\n    (30.409130, 54.619732, 0.10448855816644895),\n    (30.591089, 54.642479, 0.001543720579999872),\n    (30.780769, 54.683159, 0.009890022788000625),\n    (31.064070, 54.689949, 0.007023433094500995),\n    (31.201559, 54.703480, 0.0012718874155001928),\n    (31.372890, 54.738861, 0.0010077760915000265),\n    (31.481560, 54.749538, 0.08998507272699677),\n    (31.637960, 54.814232, 0.0011683243500004794),\n    (31.673710, 54.843960, 0.01575373942200063),\n    (32.004681, 54.865780, 0.0029648347299996514),\n    (32.101212, 54.890060, 0.02520276334899922),\n    (32.147099, 54.925900, 0.0006533915870000944),\n    (32.299351, 55.016338, 2.5306121627785108),\n    (32.504452, 55.056099, 0.0014501986585007901),\n    (32.597309, 55.059959, 0.0024946020060057374),\n    (32.674419, 55.078171, 0.000604723479999913),\n    (33.195610, 55.132179, 0.000745868490499901),\n    (33.346119, 55.152840, 0.007396271786001787),\n    (33.471249, 55.183289, 0.04676558635650117),\n    (33.647659, 55.179359, 0.002276000220000347),\n    (33.897350, 55.199600, 0.0039050867449983546),\n    (34.061390, 55.187550, 0.06661104649048372),\n    (34.237122, 55.222080, 0.0033569191450003952),\n    (34.389042, 55.265400, 0.000708731580000381),\n    (34.562809, 55.324280, 0.0073479436810012224),\n    (34.946049, 55.486511, 0.010486538965999144),\n    (35.120701, 55.505718, 0.17555820487549917),\n    (35.398941, 55.491329, 0.002017215894500156),\n    (35.519581, 55.470581, 0.0007216633059995171),\n    (35.618980, 55.465450, 0.007075233160503159),\n    (35.913269, 55.465580, 0.0011515429755005692),\n    (36.064789, 55.457821, 0.27428072454153984),\n    (36.175480, 55.494419, 0.002097421690499958),\n    (36.455029, 55.548950, 0.01867971054849846),\n    (37.198662, 55.626869, 0.0554204532515025),\n    (37.297470, 55.657600, 0.0015273776339998135),\n    (37.366482, 55.709980, 0.002582013140000326),\n    (37.537930, 55.737560, 0.003194690800000177),\n    (37.569962, 55.779980, 0))]\n\n# <https://GeographicLib.SourceForge.io/html/python/examples.html>\n_JFK_LHR1 = [LatLon_(_lat, _lon) for _lat, _lon in (\n    ( 0,   73.8),  # equator\n    (40.6, 73.8),  # JFK\n    (51.6,  0.5),  # LHR\n    ( 0,    0.5))]\n\n_JFK_LHR2 = [LatLon_(_lat, _lon) for _lat, _lon in (\n    (-40.6, 73.8),  # double the area\n    ( 40.6, 73.8),  # JFK\n    ( 51.6,  0.5),  # LHR\n    (-51.6,  0.5))]\n\n# del _lat, _lon\n\n\ndef _2LL(pts, LL):\n    # map LatLon_ instances to LL\n    for p in pts:\n        yield LL(p.lat, p.lon)\n\n\nclass Tests(TestsBase):\n\n    def test7(self, f, xs, fmt='%.3f', skip=False, LL=None, known=False, **kwds):\n        n = f.__name__\n        if n.endswith('Of'):\n            n = '.'.join(f.__module__.split('.')[-1:] + [n])\n\n        g = globals()\n        for x, p in zip(xs, ('Antarctica',\n                             'PtsFFI', 'RdpFFI', 'Pts', 'VwPts',\n                             '_JFK_LHR1', '_JFK_LHR2')):\n            t   = unstr(n, p, wrap=True, **kwds)\n            pts = g[p]\n            if skip and len(pts) > 1024:\n                r = e = 0\n            else:\n                if LL:\n                    pts = _2LL(pts, LL)\n                # wrap since GeographicLib LONG_UNROLL is always set\n                r = f(pts, wrap=True, **kwds)\n                e = abs((r - x) / x) if x else 0\n            self.test(t, r, x, fmt=fmt, known=known or (e < 4e-4))\n\n    def testAreas(self):\n        self.test7(areaOf, (13552524.8,\n                   1.288, 1.241, 131184.240, 140310.144,\n                   4.00413688487425e7, 2*4.00413688487425e7),\n                   known=True, radius=R_KM, adjust=True)\n        self.test7(areaOf, (13552524.8,\n                   1.288, 1.241, 131184.240, 140310.144,\n                   4.00413688487425e7, 2*4.00413688487425e7),\n                   known=True, radius=R_KM, adjust=False)\n        # spherical areaOf requires spherical LatLon\n        self.test7(sphericalTrigonometry.areaOf, (241480413.388,  # 13552524.8096748\n                   1.338, 1.289, 125942.444, 118897.757,\n                   40105639.197, 80211278.393),  # 2*40105639.197 == .394\n                   LL=sphericalTrigonometry.LatLon, radius=R_KM)\n        try:  # no LatLon restrictions for ellipsoidal areaOf\n            # XXX keep ellipsoidalVincenty for backward compatibility\n            self.test7(ellipsoidalVincenty.areaOf, (1.366270e+13,  # 13662703680020.1\n                       1.343272e+06, 1.294375e+06, 1.271286e+11, 1.200540e+11,\n                       4.00413688487425e13, 2*4.00413688487425e13),\n                       fmt='%.6e', skip=Geodesic is None)\n            self.test7(ellipsoidalVincenty.areaOf, (1.366270e+13,  # 13662703680020.1\n                       1.343272e+06, 1.294375e+06, 1.271286e+11, 1.200540e+11,\n                       4.00413688487425e13, 2*4.00413688487425e13),\n                       fmt='%.6e', LL=ellipsoidalVincenty.LatLon, skip=Geodesic is None)\n        except (DeprecationWarning, ImportError) as x:\n            t = ' '.join(str(x).split())\n            # XXX keep ellipsoidalVincenty for backward compatibility\n            self.test('ellipsoidalVincenty.areaOf', t, 'DEPRECATED', known=True)\n\n    def testClockwise(self):\n        self.test7(isclockwise, (True,  # XXX False if ispolar is True?\n                   True, True, True, True,\n                   False, False),\n                   adjust=False)\n\n    def testPerimeters(self):\n        self.test7(perimeterOf, (16765661.499,\n                   3224.123, 3185.467, 2762313.129, 2672557.850,\n                   15766750.804, 25981742.208),\n                   known=True, radius=R_M, closed=False)\n        # spherical perimeterOf requires spherical LatLon\n        self.test7(sphericalTrigonometry.perimeterOf, (15470624.834,  # 16765661.499 closed\n                   3224.123, 3185.467, 2762313.116, 2672556.441,\n                   15789078.314, 26041264.665),  # 15766750.804, 25981742.208\n                   LL=sphericalTrigonometry.LatLon, radius=R_M, closed=False)\n        try:  # no LatLon restrictions for ellipsoidal perimeterOf\n            # XXX keep ellipsoidalVincenty for backward compatibility\n            self.test7(ellipsoidalVincenty.perimeterOf, (15531770.613,\n                       3229.337, 3190.602, 2769709.412, 2679915.858,\n                       15763434.962, 25972353.155),  # assumed\n                       LL=ellipsoidalVincenty.LatLon, closed=False, skip=Geodesic is None)\n            self.test7(ellipsoidalVincenty.perimeterOf, (16830891.356,\n                       5491.045, 5452.310, 5259077.242, 5171947.931,\n                       23921931.540, 31524112.555), closed=True, skip=Geodesic is None)  # assumed\n        except (DeprecationWarning, ImportError) as x:\n            t = ' '.join(str(x).split())\n            # XXX keep ellipsoidalVincenty for backward compatibility\n            self.test('ellipsoidalVincenty.perimeterOf', t, 'DEPRECATED', known=True)\n\n    def testGeodesic(self):\n        # <https://GeographicLib.SourceForge.io/html/python/examples.html>\n        def _s(n, m='(Sphere)'):\n            return 'geographiclib.' + n + m\n\n        def _w(n, m='(WGS84)'):\n            return 'geographiclib.' + n + m\n\n        if Geodesic:\n            wgs = Geodesic.WGS84\n            sph = Geodesic(R_M, 0)\n\n            w = wgs.Inverse(-41.32, 174.81, 40.96, -5.50, outmask=Geodesic.DISTANCE | Geodesic.LONG_UNROLL)\n            self.test(_w('WNZ-SAL'), w['s12'], 19959679.267, fmt='%.3f')\n            self.test(_w('WNZ-SAL'), w['lon2'], 354.50, fmt='%.2f')\n            s = sph.Inverse(-41.32, 174.81, 40.96, -5.50, outmask=Geodesic.DISTANCE | Geodesic.LONG_UNROLL)\n            self.test(_s('WNZ-SAL'), s['s12'], 19967403.498, fmt='%.3f')\n            self.test(_s('WNZ-SAL'), s['lon2'], 354.50, fmt='%.2f')\n\n            w = wgs.Inverse(40.1, 116.6, 37.6, -122.4, outmask=Geodesic.DISTANCE | Geodesic.LONG_UNROLL)\n            self.test(_w('BJS-SFO'), w['s12'], 9513998.0, fmt='%.1f')\n            self.test(_w('BJS-SFO'), w['lon2'], 237.6, fmt='%.1f')\n            s = sph.Inverse(40.1, 116.6, 37.6, -122.4, outmask=Geodesic.DISTANCE | Geodesic.LONG_UNROLL)\n            self.test(_s('BJS-SFO'), s['s12'], 9491734.6, fmt='%.1f')\n            self.test(_s('BJS-SFO'), s['lon2'], 237.6, fmt='%.1f')\n\n            w = wgs.Direct(-32.06, 115.74, 225, 20000e3)\n            self.test(_w('SW-Perth'), w['lat2'],  32.11195529, fmt='%.8f')\n            self.test(_w('SW-Perth'), w['lon2'], -63.95925278, fmt='%.8f')\n            s = sph.Direct(-32.06, 115.74, 225, 20000e3)\n            self.test(_s('SW-Perth'), s['lat2'],  31.96383509, fmt='%.8f')\n            self.test(_s('SW-Perth'), s['lon2'], -64.14670854, fmt='%.8f')\n\n            w = wgs.Inverse(40.6, -73.8, 51.6, -0.5, outmask=Geodesic.DISTANCE | Geodesic.AREA | Geodesic.LONG_UNROLL)\n            self.test(_w('JFK-LHR'), w['S12'], 40041368848742.5, fmt='%.1f')\n            self.test(_w('JFK-LHR'), w['s12'], 5551759.4, fmt='%.1f')\n            s = sph.Inverse(40.6, -73.8, 51.6, -0.5, outmask=Geodesic.DISTANCE | Geodesic.AREA | Geodesic.LONG_UNROLL)\n            self.test(_s('JFK-LHR'), s['S12'], 40105639196534.8, fmt='%.1f')\n            self.test(_s('JFK-LHR'), s['s12'], 5536892.0, fmt='%.1f')\n\n            p = wgs.Polygon()\n            for ll in Antarctica:\n                p.AddPoint(ll.lat, ll.lon)\n            _, p, a = p.Compute()\n            self.test(_w('Antarctica Peri'), p, 16831067.893, fmt='%.3f')\n            self.test(_w('Antarctica Area'), a, 13662703680020.1, fmt='%.1f')\n\n            p = sph.Polygon()\n            for ll in Antarctica:\n                p.AddPoint(ll.lat, ll.lon)\n            _, p, a = p.Compute()\n            self.test(_s('Antarctica Peri'), p, 16765661.499, fmt='%.3f')\n            self.test(_s('Antarctica Area'), a, 13552524809674.8, fmt='%.1f')\n\n        else:\n            self.test('no module', _s('Geodesic', ''), _s('Geodesic', ''))\n\n\nif __name__ == '__main__':\n\n    t = Tests(__file__, __version__)\n    t.testAreas()\n    t.testPerimeters()\n    t.testGeodesic()\n    t.testClockwise()\n    t.results()\n    t.exit()\n"
  },
  {
    "path": "test/testSimplify.py",
    "content": "\n# -*- coding: utf-8 -*-\n\n# Test L{simplify} module.\n\n__all__ = ('Tests',)\n__version__ = '23.03.27'\n\nfrom bases import numpy, TestsBase, secs2str\n\nfrom pygeodesy import EPS, R_M, LatLon_, Numpy2LatLon, pairs, \\\n                      simplify1, simplifyRW, \\\n                      simplifyRDP, simplifyRDPm, \\\n                      simplifyVW, simplifyVWm, \\\n                      simplify\n\nfrom math import cos, degrees, radians\nfrom time import time\n\n_Simplifys = ()  # simplifyXYZ functions to run\n\n\nclass Tests(TestsBase):\n\n    def test2(self, function, points, ms, typ=None, **kwds):\n\n        if _Simplifys and function.__name__[8:] not in _Simplifys:\n            return  # skip this simplify function\n\n        n = len(points)\n        t = ', '.join(pairs(kwds.items()))\n        f = '%s(%s, %s)' % (function.__name__, n, t)\n\n        S = s = 0\n        for m in reversed(sorted(ms.keys())):\n            s = time()\n            r = function(points, m, **kwds)\n            n = len(r)\n            s = time() - s\n            t = '%s %dm (%s)' % (f, m, secs2str(s))\n            self.test(t, n, ms[m])\n            S += s\n            if typ:\n                self.test(f + ' result', type(r), typ)\n\n        if S > s:  # sub-total time\n            self.test__('%s %s', f, secs2str(S), nt=1)\n\n\n# for comparison, following are 2 other RDP implementations,\n# modified to match signatures of simplifyRDP and -RDPm.\n\ndef simplifyRDPfw(points, epsilon, radius=R_M, adjust=False, shortest=False,  # MCCABE 20\n                                   modified=False, indices=False):  # PYCHOK expected\n    '''Iterative Ramer-Douglas-Peucker algorithm.\n\n       <https://GitHub.com/FlorianWilhelm/gps_data_with_python>\n\n       points[] -- Input coordinates as LatLon's in degrees\n       epsilon -- distance tolerance in meter\n       radius -- mean earth radius in meter\n       adjust -- adjust lon's delta by cos(average lat's)\n       shortest -- use shortest or perpendicular distance\n       modified -- stop search at the first deviant point\n       indices -- return points indices inlieu of points\n    '''\n    def _d2xy(p1, p2):\n        # get deltas and hypot squared\n        dx = p2.lon - p1.lon\n        if dx > 180:\n            dx -= 360\n        elif dx < -180:\n            dx += 360\n        if adjust:\n            dx *= cos(radians((p1.lat + p2.lat) * 0.5))\n        dy = p2.lat - p1.lat\n        d2 = dx**2 + dy**2\n        return d2, dx, dy  # PYCHOK returns\n\n    if shortest:\n        raise NotImplementedError('shortest=%s' % (shortest,))\n\n    if len(points) < 3:\n        return points\n\n    # convert epsilon meters to degrees\n    ed2 = degrees(epsilon / radius)**2  # use squared distances\n\n    use = [True] * len(points)\n    stk = [(0, len(points) - 1)]\n\n    while stk:\n        s, e = stk.pop()\n        if e > (s + 1):\n            t2, t = ed2, 0\n\n            p2, px, py = _d2xy(points[s], points[e])\n            if p2 > EPS:\n                p2 = 1.0 / p2\n            else:  # distance to point\n                p2 = 0\n\n            for i in range(s + 1, e):\n                if use[i]:\n                    d2, dx, dy = _d2xy(points[i], points[s])\n                    if p2 and d2 > EPS:  # distance to line\n                        d2 = p2 * (px * dy - py * dx)**2\n                    if d2 > t2:\n                        t2, t = d2, i\n                        if modified:\n                            break\n\n            if t2 > ed2:  # and t > 0:\n                stk.append((t, e))\n                if modified:\n                    for i in range(s + 1, t):\n                        use[i] = False\n                else:\n                    stk.append((s, t))\n            else:\n                for i in range(s + 1, e):\n                    use[i] = False\n\n    if indices:\n        return [i for i, b in enumerate(use) if b]\n    else:\n        return [points[i] for i, b in enumerate(use) if b]\n\n\ndef simplifyRDPgr(source, kink, radius=R_M, adjust=True, shortest=True,  # MCCABE 17\n                                modified=False, indices=False):  # PYCHOK expected\n    '''Stack-based Douglas Peucker line simplification.\n\n       Transcoded from JavaScript original after code by U{Dr. Gary J.\n       Robinson<https://www.BDCC.co.UK/Gmaps/GDouglasPeuker.js>},\n       Environmental Systems Science Centre, University of Reading,\n       Reading, UK.\n\n       source[] -- Input coordinates as LatLon's in degrees\n       kink -- distance in metres, kinks above this depth are kept\n       radius -- mean earth radius in metres\n       adjust -- adjust lon's delta by cos(average lat's)\n       shortest -- use shortest or perpendicular distance\n       modified -- stop search at the first deviant point\n       indices -- return source indices inlieu of points\n\n       The kink depth is the height of the triangle abc where\n       a-b and b-c are two consecutive line segments.\n    '''\n\n    def _d2xy(p1, p2):\n        # get deltas and hypot squared\n        dx = p2.lon - p1.lon\n        if abs(dx) > 180:\n            dx = 360 - abs(dx)\n        if adjust:\n            dx *= cos(radians((p1.lat + p2.lat) * 0.5))\n        dy = p2.lat - p1.lat\n        d2 = dx**2 + dy**2\n        return d2, dx, dy  # PYCHOK returns\n\n    if not shortest:\n        raise NotImplementedError('shortest=%s' % (shortest,))\n\n    n1 = len(source) - 1\n    if n1 < 2:\n        return source\n\n    k2 = degrees(kink / radius) ** 2  # kink in degrees squared\n\n    ixs = {0: True, n1: True}\n    stk = [(0, n1)]\n\n    while stk:\n        s, e = stk.pop()\n        if e > (s + 1):\n            d12, x12, y12 = _d2xy(source[s], source[e])\n\n            max2, ix = k2, s\n            for i in range(s + 1, e):\n                d13, x13, y13 = _d2xy(source[s], source[i])\n                d23,   _,   _ = _d2xy(source[e], source[i])\n\n                if d13 >= (d12 + d23):\n                    d2 = d23\n                elif d23 >= (d12 + d13):\n                    d2 = d13\n                elif d12 > EPS:  # perpendicular distance squared\n                    d2 = (x13 * y12 - y13 * x12)**2 / d12\n                else:  # null edge\n                    d2 = (d13 + d23) * 0.5\n\n                if d2 > max2:\n                    max2, ix = d2, i\n                    if modified:\n                        break\n\n            if max2 > k2:\n                stk.append((ix, e))\n                if not modified:\n                    stk.append((s, ix))\n                    s = 0\n        ixs[s] = True\n\n    if indices:\n        return [i for i in sorted(ixs.keys())]\n    else:\n        return [source[i] for i in sorted(ixs.keys())]\n\n\nif __name__ == '__main__':  # PYCHOK internal error?\n\n    # usage: python testSimplify [[1-9] [RDP RDPm VW VWm ...]]\n\n    import sys\n    from testRoutes import Pts, PtsFFI  # PtsJS, RdpFFI\n\n    # simplifyXYZ functions to run, all otherwise\n    _Simplifys = sys.argv[2:]\n    # number of meter values for each test\n    m = 1 if len(sys.argv) < 2 else int(sys.argv[1])\n\n    def _ms(ms):  # reduce the number of tests\n        return dict(t for t in list(sorted(ms.items()))[:m])\n\n    t = Tests(__file__, __version__, simplify)\n\n    t.test2(simplify1, Pts, _ms({160: 6638, 80: 9362, 40: 12079, 20: 14245, 10: 15621, 1: 16597}), adjust=True)\n\n    t.test2(simplifyRW, Pts, _ms({160: 1179, 80: 1737, 40: 2322, 20: 3121, 10: 4041, 1: 7095}), adjust=True, shortest=False, indices=True)\n    t.test2(simplifyRW, Pts, _ms({160: 1179, 80: 1737, 40: 2322, 20: 3121, 10: 4041, 1: 7095}), adjust=True, shortest=False)\n    t.test2(simplifyRW, Pts, _ms({160: 4350, 80: 5646, 40: 6744, 20: 7535, 10: 7995, 1: 8302}), adjust=True, shortest=True)\n\n    t.test2(simplifyVWm, Pts, _ms({160: 1425, 80: 2648, 40: 4701, 20: 7678, 10: 11166, 1: 16328}), adjust=True, indices=True)\n    t.test2(simplifyVWm, Pts, _ms({160: 1425, 80: 2648, 40: 4701, 20: 7678, 10: 11166, 1: 16328}), adjust=True)\n    t.test2(simplifyVWm, Pts, _ms({160: 1755, 80: 3253, 40: 5590, 20: 8911, 10: 12331, 1: 16373}), adjust=False)\n\n    t.test2(simplifyRDPm,  Pts, _ms({160: 3099, 80: 4924, 40: 7189, 20: 9663, 10: 11876, 1: 15864}), adjust=True, shortest=False)\n    t.test2(simplifyRDPm,  Pts, _ms({160: 3099, 80: 4926, 40: 7195, 20: 9670, 10: 11884, 1: 15867}), adjust=True, shortest=True)\n    # for comparison, the RDPgr results should be less than a few points different\n    t.test2(simplifyRDPgr, Pts, _ms({160: 3099, 80: 4925, 40: 7196, 20: 9670, 10: 11884, 1: 15867}), adjust=True, shortest=True, modified=True)\n\n    t.test2(simplifyRDPm,  Pts, _ms({160: 3166, 80: 5002, 40: 7259, 20:  9720, 10: 11939, 1: 15869}), adjust=False, shortest=False)\n    # for comparison, the RDPfw results should be less than a few points different\n    t.test2(simplifyRDPfw, Pts, _ms({160: 3166, 80: 5002, 40: 7259, 20:  9720, 10: 11939, 1: 15869}), adjust=False, shortest=False, modified=True)\n\n    # run time may be too long\n    t.test2(simplifyRDP,   Pts, _ms({100: 1185, 10: 4209, 1: 10960}), adjust=True, shortest=True, indices=True)\n    t.test2(simplifyRDP,   Pts, _ms({100: 1185, 10: 4209, 1: 10960}), adjust=True, shortest=True)\n    # for comparison, the RDPgr results should be less than a few points different\n    t.test2(simplifyRDPgr, Pts, _ms({100: 1185, 10: 4209, 1: 10960}), adjust=True, shortest=True, modified=False)\n\n    t.test2(simplifyRDP,   Pts, _ms({100: 1251, 10: 4461, 1: 11248}), adjust=False, shortest=False, indices=True)\n    t.test2(simplifyRDP,   Pts, _ms({100: 1251, 10: 4461, 1: 11248}), adjust=False, shortest=False)\n    # for comparison, the RDPfw results should be less than a few points different\n    t.test2(simplifyRDPfw, Pts, _ms({100: 1251, 10: 4461, 1: 11248}), adjust=False, shortest=False, modified=False)\n\n    # cut number of points (to shorten run time)\n    n = len(Pts) // 10\n    Ptsn = Pts[:n]\n\n    t.test2(simplifyVW, Ptsn, _ms({160: 277, 80: 430, 40: 694, 20:  981, 10: 1266, 1: 1641}), adjust=True)\n    t.test2(simplifyVW, Ptsn, _ms({160: 314, 80: 495, 40: 793, 20: 1081, 10: 1351, 1: 1646}), adjust=False)\n\n    t.test2(simplifyRDP,   Ptsn, _ms({160: 98, 80: 147, 40: 226, 20: 354, 10: 501, 1: 1231}), adjust=True, shortest=False)\n    t.test2(simplifyRDP,   Ptsn, _ms({160: 98, 80: 147, 40: 226, 20: 354, 10: 501, 1: 1231}), adjust=True, shortest=True)\n    t.test2(simplifyRDPgr, Ptsn, _ms({160: 98, 80: 147, 40: 226, 20: 354, 10: 501, 1: 1231}), adjust=True, shortest=True)\n\n    t.test2(simplifyRDP,   Ptsn, _ms({160: 111, 80: 161, 40: 256, 20: 387, 10: 542, 1: 1267}), adjust=False, shortest=False)\n    # for comparison, the RDPfw results should be less than a few points different\n    t.test2(simplifyRDPfw, Ptsn, _ms({160: 111, 80: 161, 40: 256, 20: 387, 10: 542, 1: 1267}), adjust=False, shortest=False)\n    # for comparison, the RDPgr results should be less than a few points different\n    t.test2(simplifyRDPgr, Ptsn, _ms({160: 111, 80: 161, 40: 256, 20: 387, 10: 542, 1: 1267}), adjust=False, shortest=True)\n\n    # different points\n    t.test2(simplifyVW,    PtsFFI, _ms({1000: 3, 100: 12, 10: 48, 1: 69}), adjust=False)\n    t.test2(simplifyRDP,   PtsFFI, _ms({1000: 3, 100:  7, 10: 18, 1: 50}), adjust=False, shortest=False)  # XXX len(RdpFFI) = 7\n    # for comparison, the RDPgr results should be less than a few points different\n    t.test2(simplifyRDPfw, PtsFFI, _ms({1000: 3, 100:  7, 10: 18, 1: 50}), adjust=False, shortest=False)\n    # for comparison, the RDPgr results should be less than a few points different\n    t.test2(simplifyRDPgr, PtsFFI, _ms({1000: 3, 100:  7, 10: 18, 1: 50}), adjust=False, shortest=True)\n    t.test2(simplifyRDPgr, PtsFFI, _ms({1000: 2, 100:  7, 10: 15, 1: 45}), adjust=True, shortest=True)\n\n    # <https://docs.RS/geo/0.8.3/geo/algorithm/simplify/trait.Simplify.html>\n#   t.test2(simplifyRDP, [LatLon_(*ll) for ll in ((0.0, 0.0), (5.0, 4.0), (11.0, 5.5), (17.3, 3.2), (27.8, 0.1))],\n#                        _ms({1: 5}), adjust=False, shortest=True)  # (0.0, 0.0), (5.0, 4.0), (11.0, 5.5), (27.8, 0.1)\n    t.test2(simplifyRDP, [LatLon_(*ll) for ll in ((0.0, 0.0), (5.0, 4.0), (11.0, 5.5), (17.3, 3.2), (EPS, EPS))],\n                         _ms({1: 5}), adjust=False, shortest=True)  # coverage d2ih\n\n    # <https://docs.RS/geo/0.8.3/geo/algorithm/simplifyvw/trait.SimplifyVW.html>\n#   t.test2(simplifyVW, [LatLon_(*ll) for ll in ((5.0, 2.0), (3.0, 8.0), (6.0, 20.0), (7.0, 25.0), (10.0, 10.0))],\n#                       _ms({30: 3}), adjust=False)  # (5.0, 2.0), (7.0, 25.0), (10.0, 10.0)\n    t.test2(simplifyVW, [LatLon_(*ll) for ll in ((5.0, 2.0), (3.0, 8.0), (6.0, 20.0), (7.0, 25.0), (10.0, 10.0))],\n                        _ms({30: 5}), adjust=False, attr='name')  # coverage attr, 3 set to 5\n\n    if numpy:\n        if 'numpy' in _Simplifys:\n            _Simplifys.remove('numpy')\n\n        t.test('numpy.__version__', numpy.__version__, numpy.__version__)\n\n        npy = numpy.array([(ll.lon, 0, ll.lat, 0) for ll in PtsFFI], dtype=float)\n        pts = Numpy2LatLon(npy, ilat=2, ilon=0)\n\n        t.test2(simplify1,     pts, _ms({1000: 5, 100: 25, 10: 67, 1: 69}), adjust=False, typ=type(npy))\n        t.test2(simplifyRW,    pts, _ms({1000: 4, 100:  9, 10: 22, 1: 33}), adjust=False, typ=type(npy))\n        t.test2(simplifyRDP,   pts, _ms({1000: 3, 100:  7, 10: 18, 1: 50}), adjust=False, typ=type(npy))\n        t.test2(simplifyRDPm,  pts, _ms({1000: 3, 100: 16, 10: 48, 1: 67}), adjust=False, typ=type(npy))\n        t.test2(simplifyRDPfw, pts, _ms({1000: 3, 100:  7, 10: 18, 1: 50}), adjust=False)\n        t.test2(simplifyRDPgr, pts, _ms({1000: 3, 100:  7, 10: 18, 1: 50}), adjust=False)\n        t.test2(simplifyVW,    pts, _ms({1000: 3, 100: 12, 10: 48, 1: 69}), adjust=False, typ=type(npy))\n        t.test2(simplifyVWm,   pts, _ms({1000: 2, 100:  7, 10: 45, 1: 69}), adjust=False, typ=type(npy))\n\n        t.test2(simplify1,     pts, _ms({1000: 4, 100: 23, 10: 65, 1: 69}), adjust=True, typ=type(npy))\n        t.test2(simplifyRW,    pts, _ms({1000: 3, 100:  8, 10: 21, 1: 31}), adjust=True, typ=type(npy))\n        t.test2(simplifyRDP,   pts, _ms({1000: 2, 100:  7, 10: 15, 1: 45}), adjust=True, typ=type(npy))\n        t.test2(simplifyRDPm,  pts, _ms({1000: 2, 100: 13, 10: 46, 1: 67}), adjust=True, typ=type(npy))\n        t.test2(simplifyRDPfw, pts, _ms({1000: 2, 100:  7, 10: 15, 1: 45}), adjust=True)\n        t.test2(simplifyRDPgr, pts, _ms({1000: 2, 100:  7, 10: 15, 1: 45}), adjust=True)\n        t.test2(simplifyVW,    pts, _ms({1000: 3, 100: 11, 10: 43, 1: 69}), adjust=True, typ=type(npy))\n        t.test2(simplifyVWm,   pts, _ms({1000: 2, 100:  6, 10: 39, 1: 69}), adjust=True, typ=type(npy))\n\n        t.test2(simplify1,     pts, _ms({1000: 5, 100: 25, 10: 67, 1: 69}), adjust=False, indices=True, typ=list)\n        t.test2(simplifyRW,    pts, _ms({1000: 4, 100:  9, 10: 22, 1: 33}), adjust=False, indices=True, typ=list)\n        t.test2(simplifyRDP,   pts, _ms({1000: 3, 100:  7, 10: 18, 1: 50}), adjust=False, indices=True, typ=list)\n        t.test2(simplifyRDPm,  pts, _ms({1000: 3, 100: 16, 10: 48, 1: 67}), adjust=False, indices=True, typ=list)\n        t.test2(simplifyRDPfw, pts, _ms({1000: 2, 100:  7, 10: 15, 1: 45}), adjust=True, indices=True)\n        t.test2(simplifyRDPgr, pts, _ms({1000: 2, 100:  7, 10: 15, 1: 45}), adjust=True, indices=True)\n        t.test2(simplifyVW,    pts, _ms({1000: 3, 100: 12, 10: 48, 1: 69}), adjust=False, indices=True, typ=list)\n        t.test2(simplifyVWm,   pts, _ms({1000: 2, 100:  7, 10: 45, 1: 69}), adjust=False, indices=True, typ=list)\n\n    else:\n        t.test('no module', 'numpy', 'numpy')\n\n    t.results()\n    t.exit()\n\n#   Compare Vw routes\n#   for i, p in enumerate(simplifyVW(Pts, 890, attr='vw2')):\n#       print('%3d: %10.6f, %10.6f, %.15f' % (i, p.lon, p.lat, p.vw2))\n"
  },
  {
    "path": "test/testSpherical.py",
    "content": "\n# -*- coding: utf-8 -*-\n\n# Test spherical earth model functions and methods.\n\n__all__ = ('Tests',)\n__version__ = '23.10.23'\n\nfrom bases import isPython2, isWindows, RandomLatLon\nfrom testLatLon import Tests as _TestsLL\nfrom testVectorial import Tests as _TestsV\n\nfrom pygeodesy import F_D, F_DEG_, F_DMS, PI_4, R_M, \\\n                      classname, degrees2m, Ellipsoids, \\\n                      IntersectionError, latlonDMS, lonDMS\nfrom math import radians\n\n# <https://GeographicLib.SourceForge.io/html/python/examples.html>\nAntarctica = ((-63.1, -58),\n              (-72.9, -74),\n              (-71.9,-102),\n              (-74.9,-102),\n              (-74.3,-131),\n              (-77.5,-163),\n              (-77.4, 163),\n              (-71.7, 172),\n              (-65.9, 140),\n              (-65.7, 113),\n              (-66.6,  88),\n              (-66.9,  59),\n              (-69.8,  25),\n              (-70.0,  -4),\n              (-71.0, -14),\n              (-77.3, -33),\n              (-77.9, -46),\n              (-74.7, -61))  # open\n\n\nclass Tests(_TestsLL, _TestsV):\n\n    def testSpherical(self, module, Sph=True, Nv=False):  # MCCABE 13\n\n        self.subtitle(module, 'Spherical')\n\n        LatLon = module.LatLon\n\n        p = LatLon(51.8853, 0.2545)\n        self.test('isSpherical', p.isSpherical, True)\n        self.test('isEllipsoidal', p.isEllipsoidal, False)\n\n        q = LatLon(49.0034, 2.5735)\n        self.test('datum', q.datum, p.datum)  # coverage\n        q.datum = Ellipsoids.SphereAuthalic\n        self.test('ellipsoid', q.datum.ellipsoid, Ellipsoids.SphereAuthalic)\n        q.datum = p.datum\n        self.test('datum', q.datum, p.datum)\n\n        self.test('isSpherical', q.isSpherical, True)\n        self.test('isEllipsoidal', q.isEllipsoidal, False)\n\n        i = p.intersection(108.55, q, 32.44)\n        self.test('intersection1', i.toStr(F_D), '50.907608°N, 004.508575°E')  # 50.9076°N, 004.5086°E  # Trig\n        self.test('intersection1', i.toStr(F_DMS), '50°54′27.39″N, 004°30′30.87″E')\n        self.test('intersection1', isinstance(i, LatLon), True)\n\n        REO = LatLon(42.600, -117.866)\n        BKE = LatLon(44.840, -117.806)\n        i = REO.intersection(51, BKE, 137)\n        self.test('intersection2', isinstance(i, LatLon), True)\n        self.test('intersection2', i.toStr(F_D), '43.5719°N, 116.188757°W')  # 43.572°N, 116.189°W\n        self.test('intersection2', i.toStr(F_DMS), '43°34′18.84″N, 116°11′19.53″W')\n\n        # <https://GitHub.com/ChrisVeness/geodesy/issues/46>\n        p = LatLon(51.8853, 0.2545)\n        q = LatLon(51.8763, 0.2545)  # identical lon\n        i = p.intersection(110.8878, q, 54.4525)\n        self.test('intersection3', i, '51.882166°N, 000.267801°E')  # 51°52′55.8″N, 000°16′04.08″E?\n\n        p = LatLon(+30, 0)\n        q = LatLon(-30, 0)  # identical, zero lon\n        i = p.intersection(135, q, 45)\n        self.test('intersection4', i, '00.0°N, 026.565051°E', known=abs(i.lat) < 1e-6)\n\n        p = LatLon(0, -30)\n        q = LatLon(0, +30)  # identical, zero lat\n        i = p.intersection(45, q, 315)\n        self.test('intersection5', i, '26.565051°N, 000.0°W', known=abs(i.lon) < 1e-6)\n\n        # <https://GitHub.com/ChrisVeness/geodesy/blob/master/test/latlon-vectors-tests.js>\n        STN = LatLon(51.8853, 0.2545)\n        CDG = LatLon(49.0034, 2.5735)\n        i = STN.intersection(108.547, CDG, 32.435)\n        self.test('intersection6', i, '50.907809°N, 004.50841°E')  # 50.9078°N, 004.5084°E\n\n        # courtesy of U{sbonaime<https://GitHub.com/mrJean1/PyGeodesy/issues/58>}\n        s1, s2 = LatLon(8, 0), LatLon(0, 8.4)\n        self.test('intersection7', s1.intersection(150.06, s2, 55.61).toStr(), '''01°52′46.41″S, 005°39′06.87″E''')  # 01°52′46.41″N, 174°20′53.13″W\n        s1, s2 = LatLon(80, 0), LatLon(0, 84)\n        self.test('intersection8', s1.intersection(150.06, s2, 55.61).toStr(), '''28°15′40.35″S, 032°14′33.2″E''')  # 28°15′40.35″N, 147°45′26.8″W\n\n        # <https://GitHub.com/ChrisVeness/geodesy/blob/master/test/latlon-vectors-tests.js>\n        # <https://GitHub.com/ChrisVeness/geodesy/blob/master/test/latlon-spherical-tests.js>\n        N, E, S, W, p, q = 0, 90, 180, 270, LatLon(0, 1), LatLon(1, 0)\n        self.test('toward 1,1 N,E nearest',        p.intersection(N, q, E), '00.999848°N, 001.0°E')\n        self.test('toward 1,1 E,N nearest',        q.intersection(E, p, N), '00.999848°N, 001.0°E')\n        self.test('toward 1,1 N,E antipodal',      LatLon(2, 1).intersection(N, q, E), '00.999848°S, 179.0°W')\n        self.test('toward/away 1,1 N,W antipodal', p.intersection(N, q, W), '00.999848°N, 001.0°E')\n        self.test('toward/away 1,1 W,N antipodal', q.intersection(W, p, N), '00.999848°S, 179.0°W')\n        self.test('toward/away 1,1 S,E antipodal', p.intersection(S, q, E), '00.999848°S, 179.0°W')\n        self.test('toward/away 1,1 E,S antipodal', q.intersection(E, p, S), '00.999848°N, 001.0°E')\n        self.test('away 1,1 S,W antipodal',        p.intersection(S, q, W), '00.999848°S, 179.0°W')\n        self.test('away 1,1 W,S antipodal',        q.intersection(W, p, S), '00.999848°S, 179.0°W')\n        self.test('1E/90E N,E antipodal',          p.intersection(N, LatLon(1, 90), E), '00.017454°N, 001.0°E')\n        self.test('1E/90E N,E nearest',            p.intersection(N, LatLon(1, 92), E), '00.017454°N, 179.0°W')\n\n        # <https://GitHub.com/ChrisVeness/geodesy/blob/master/test/latlon-vectors-tests.js>\n        p, r = LatLon(1, 3), LatLon(2, 2)\n        self.test('brng+end 1a', q.intersection(p, r, S), '01.000305°N, 002.0°E')\n        self.test('brng+end 1b', r.intersection(S, q, p), '01.000305°N, 002.0°E')\n        self.test('brng+end 2a', q.intersection(p, r, N), '01.000305°S, 178.0°W')\n        self.test('brng+end 2b', r.intersection(N, q, p), '01.000305°S, 178.0°W')\n\n        i = LatLon(1, 1).intersection(LatLon(2, 2), LatLon(1, 4), LatLon(2, 3))\n        self.test('intersection7', i, '02.499372°N, 002.5°E')  # 02.4994°N, 002.5°E'\n\n        p = LatLon(0, 0)\n        self.test('maxLat0',  p.maxLat( 0), '90.0')\n        self.test('maxLat1',  p.maxLat( 1), '89.0')\n        self.test('maxLat90', p.maxLat(90),  '0.0')\n        self.test('minLat0',  p.minLat( 0), '-90.0')\n        self.test('minLat1',  p.minLat( 1), '-89.0')\n        self.test('minLat90', p.minLat(90),  '-0.0', known=True)\n\n        self.test('parse', p.parse('0, 0', name='parse'), p)  # coverage\n\n        if hasattr(LatLon, 'crossingParallels'):\n            ps = p.crossingParallels(LatLon(60, 30), 30)\n            t = ', '.join(map(lonDMS, ps))\n            self.test('crossingParallels', t, '009°35′38.65″E, 170°24′21.35″E')\n\n        c, p = LatLon(5, 0), LatLon(0, 2)\n        for e, x in ((None,  '04.260346°N, 006.272173°E and 01.250608°S, 000.749094°E'),\n                     (False, '04.261539°N, 006.265474°E and 00.0°N, 002.0°E'),\n                     (True,  '04.262363°N, 006.2663°E and 01.258709°S, 000.74119°E')):\n            # c.napieradius = ...\n            t = c.intersecant2(700.e3, p, 45, exact=e)\n            s = ' and '.join(_.toStr(form=F_D) for _ in t)\n            self.test('intersecant2', s, x, nl=1)\n            for i, s in enumerate(t):  # both secant points should be on the circle\n                d = c.distanceTo(s) if e is None else c.rhumbDistanceTo(s, exact=e)\n                self.test('intersecant2', int(d), '700000', known=True)\n            s, t = t\n            b = t.initialBearingTo(s) if e is None else t.rhumbAzimuthTo(s, exact=e)\n            self.test('intersecant2', b, 45, known=44 < b < 46, prec=3)\n\n        c, p = LatLon(0, 0), LatLon(-25, 0)\n        for e in (None, True, False):\n            nl = 1\n            for r in (degrees2m(25), LatLon(25, 0)):  # r = 2_779_874 > rNspherical\n                for z in (45, LatLon(0, 25)):\n                    a, b = t = c.intersecant2(r, p, z, exact=e)\n                    s = ' and '.join(_.toStr(form=F_D) for _ in t)\n                    self.test('intersecant4', s, '00.0°N, 025.0°E and 25.0°S, 000.0°E', nl=nl,\n                                                 known=24 < a.lon < 27 and -26 < b.lat < -24)\n                    nl = 0\n\n        c  = LatLon(0, 0)\n        r  = 3333000.0  # int(_EWGS84.degrees2m(30))\n        i  = 0\n        for p, q in ((LatLon(+30,   0), 45),\n                     (LatLon(+30,   0), 135),\n                     (LatLon(-30,   0), 135),\n                     (LatLon(-15,  15), 45),\n                     (LatLon(-30,   0), LatLon( 0, 30)),\n                     (LatLon(-45, -15), LatLon(15, 45))):\n            i += 1\n            nl = 1\n            for n in (0, r * 2):\n                c.napieradius = n\n                n = '' if r < n else 'Napier'\n                for t in c.intersecant2(r, p, q, exact=None):\n                    d = t.distanceTo(c)\n                    # p = '%.3f%%' % (d * 100 / r)\n                    t = 'intersecant2.%d: %r %s' % (i, t, n)\n                    self.test(t, d, r, prec=3, nl=nl, known=abs(d - r) < 2 or not n)\n                    nl = 0\n\n        if hasattr(LatLon, 'intersections2') and Sph:\n\n            n = 'intersections2 (%s)' % (LatLon.__module__,)\n\n            def _100p2(t, r, *s):\n                e = max(abs(a.distanceTo(b) - r) for a in s\n                                                 for b in t) / r\n                return e, '%g (%% of radius)' % (e,)  # percentages\n\n            # <https://GIS.StackExchange.com/questions/48937/calculating-intersection-of-two-circles>\n            p = LatLon(37.673442, -90.234036)  # (-0.00323306, -0.7915,   0.61116)\n            q = LatLon(36.109997, -90.953669)  # (-0.0134464,  -0.807775, 0.589337)\n            t = p.intersections2(0.0312705, q, 0.0421788, radius=None, height=0)  # radii in radians\n            s = ', '.join(latlonDMS(t, form=F_D, prec=6))\n            self.test(n, s, '36.98931°N, 088.151425°W, 38.23838°N, 092.390487°W', nl=1)\n            s = ', '.join(latlonDMS(t, form=F_DEG_, prec=9))\n            # 36.989311051533505, -88.15142628069133, 38.2383796094578, -92.39048549120287\n            self.test(n, s, '36.989310429, -088.151425243, 38.238379679, -092.390486808', known=True)\n\n            t = LatLon(30, 0).intersections2(PI_4, LatLon(-30, 0), PI_4, radius=None)  # radii in radians\n            s = ', '.join(latlonDMS(t, form=F_D))\n            self.test(n, s, '00.0°N, 035.26439°W, 00.0°N, 035.26439°E', known='S, ' in s)\n\n            t = LatLon(0, 40).intersections2(PI_4, LatLon(0, -40), PI_4, radius=None)  # radii in radians\n            s = ', '.join(latlonDMS(t, form=F_D))\n            self.test(n, s, '22.622036°N, 000.0°E, 22.622036°S, 000.0°E', known='W' in s)\n\n            t = LatLon(30, 20).intersections2(PI_4, LatLon(-30, -20), PI_4, radius=None)  # radii in radians\n            s = ', '.join(latlonDMS(t, form=F_D))\n            self.test(n, s, '14.612841°N, 026.110934°W, 14.612841°S, 026.110934°E')\n\n            t = LatLon(0, 0).intersections2(PI_4, LatLon(0, 22.5), PI_4 / 2, radius=None)  # abutting\n            s = ', '.join(latlonDMS(t, form=F_D))\n            self.test(n, s, '00.000001°S, 045.0°E, 00.000001°N, 045.0°E', known=True)  # N-S\n\n            # centers at 2 opposite corners of a \"square\" and\n            # radius equal to length of square side, expecting\n            # the other 2 as the intersections ... but the\n            # longitudes are farther and farther out\n            for d in range(5, 66, 5):\n                p = LatLon(d, -d)\n                q = LatLon(-d, d)\n                r = radians(2 * d) * R_M\n                t = p.intersections2(r, q, r, radius=R_M)\n                if t[0] is t[1]:\n                    s = ', '.join(latlonDMS(t[:1], form=F_D)) + ' abutting'\n                else:\n                    s = ', '.join(latlonDMS(t, form=F_D))\n                d = '%s %d' % (n, d)\n                self.test(d, s, s)\n                _, s = _100p2(t, r, q, p)\n                self.test(d, s, s)\n\n            d_m = 5e-5  # 50 micrometer\n            # courtesy of U{Samuel Čavoj<https://GitHub.com/mrJean1/PyGeodesy/issues/41>}\n            R = RandomLatLon(LatLon, 178, 178)  # +/- 89\n            r = R()\n            s = latlonDMS(r, form=F_D) + ' Random +/- 89'\n            self.test(n, s, s)\n            for _ in range(12):\n                p, q = R(), R()\n                try:  # see .testEllipsoidal\n                    i1, i2 = p.intersections2(r.distanceTo(p),\n                                           q, r.distanceTo(q), radius=R_M)\n                    d, d2 = r.distanceTo(i1), r.distanceTo(i2)\n                    if d2 < d:\n                        d, i1, i2 = d2, i2, i1\n                    s = '%s  d %g meter' % (', '.join(latlonDMS((i1, i2), form=F_D)), d)\n                    self.test(n, s, s)\n                    if d > d_m:\n                        raise IntersectionError(d=d, fmt_name_value='%s (%g)', txt='over')\n                except IntersectionError as x:\n                    self.test(n, str(x), 'd < %g m' % (d_m), known=True)  # too distant, near concetric, etc.\n\n            # courtesy of U{AleixDev<https://GitHub.com/mrJean1/PyGeodesy/issues/43>}\n            def _known(p):\n                return int(p.lat) == 42 and int(p.lon) == 2\n\n            n = 'trilaterate5 (%s) .' % (LatLon.__module__,)\n            d  = 5110  # meter\n            p1 = LatLon(42.688839, 2.438857)\n            p2 = LatLon(42.635421, 2.522570)\n\n            p3 = LatLon(42.630788, 2.500713)\n            t = p1.trilaterate5(d, p2, d, p3, d, area=True)  # overlap, default eps=EPS1\n            self.test(n + 'min',   t.min, '313.671', prec=3, known= 300 < t.min < 320)\n            p = t.minPoint\n            self.test(n + 'point', p.toStr(F_D, prec=8), '42.66937229°N, 002.48639477°E', known=_known(p))\n            self.test(n + 'max',   t.max, '1591.044', prec=3, known=1570 < t.max < 1610)\n            p = t.maxPoint\n            self.test(n + 'point', p.toStr(F_D, prec=8), '42.65153054°N, 002.46822157°E', known=_known(p))\n            self.test(n + 'n', t.n, t.n)\n\n            t = p1.trilaterate5(d, p2, d, p3, d, area=False, eps=200)  # intersection\n            self.test(n + 'min',   t.min, '133.815', prec=3, known= 100 < t.min < 200)\n            p = t.minPoint\n            self.test(n + 'inter', p.toStr(F_D, prec=8), '42.6767291°N, 002.49916157°E', known=_known(p))\n            self.test(n + 'n', t.n, t.n)\n\n            p3 = LatLon(42.64540, 2.504811)\n            t = p1.trilaterate5(d, p2, d, p3, d, area=True)  # overlap, default eps=EPS1\n            self.test(n + 'min',   t.min, '2403.293', prec=3, known=2390 < t.min < 2420)\n            self.test(n + 'max',   t.max, '2403.293', prec=3, known=2390 < t.max < 2420)\n            p = t.maxPoint\n            self.test(n + 'point', p.toStr(F_D, prec=8), '42.66135649°N, 002.47981645°E', known=_known(p))\n            self.test(n + 'min- is .maxPoint', t.minPoint is t.maxPoint, True)\n            self.test(n + 'n', t.n, t.n)\n            try:\n                t = p1.trilaterate5(d, p2, d, p3, d, area=False, eps=1000)  # no intersection in 1000 meter\n                self.test(n + 'inter', t.minPoint, IntersectionError.__name__)\n            except IntersectionError as x:\n                self.test(n + 'inter', str(x), str(x))\n\n        if hasattr(LatLon, 'isenclosedBy'):\n            p = LatLon(45.1, 1.1)\n\n            b = LatLon(45, 1), LatLon(45, 2), LatLon(46, 2), LatLon(46, 1)\n            for _ in self.testiter():\n                self.test('isenclosedBy', p.isenclosedBy(b), True)\n\n            b = LatLon(45, 1), LatLon(45, 3), LatLon(46, 2), LatLon(47, 3), LatLon(47, 1)\n            for _ in self.testiter():\n                try:\n                    self.test('isenclosedBy', p.isenclosedBy(b), True)  # Nvector\n                except ValueError as x:\n                    t = str(x).replace(',)', ')')\n                    self.test('isenclosedBy', t, 'points[3] (%s(47°00′00.0″N, 003°00′00.0″E)) or wrap (False): not convex' % (classname(p),))\n\n        p = LatLon(51.127, 1.338)\n        q = LatLon(50.964, 1.853)\n        b = p.rhumbBearingTo(q)  # rhumbAzimuthTo\n        self.test('rhumbBearingTo', b, 116.722, fmt='%.3f')  # 116.7\n\n        d = p.rhumbDestination(40300, 116.7)\n        self.test('rhumbDestination', d, '50.964155°N, 001.853°E')  # 50.9642°N, 001.8530°E\n        self.test('rhumbDestination', isinstance(d, LatLon), True)\n\n        d = p.rhumbDistanceTo(q)\n        self.test('rhumbDistanceTo', d, 40307.8, fmt='%.1f')  # XXX 40310 ?\n\n        m = p.rhumbMidpointTo(q)\n        self.test('rhumbMidpointo-0.5', m, '51.0455°N, 001.595727°E')\n        self.test('rhumbMidpointo', isinstance(m, LatLon), True)\n        m = p.rhumbMidpointTo(q, fraction=0)\n        self.test('rhumbMidpointo-0.0', m, '51.127°N, 001.338°E')\n        m = p.rhumbMidpointTo(q, fraction=0.25)\n        self.test('rhumbMidpointo-0.25', m, '51.08625°N, 001.46692°E')\n        m = p.rhumbMidpointTo(q, fraction=0.75)\n        self.test('rhumbMidpointo-0.75', m, '51.00475°N, 001.72442°E')\n        m = p.rhumbMidpointTo(q, fraction=1)\n        self.test('rhumbMidpointo-1.0', m, '50.964°N, 001.853°E')\n        m = p.rhumbMidpointTo(q, fraction=2)\n        self.test('rhumbMidpointo-2.0', m, '50.801°N, 002.366196°E')\n\n        b = LatLon(45, 1), LatLon(45, 2), LatLon(46, 2), LatLon(46, 1)\n        self.test('areaOf', module.areaOf(b), '8.66605875e+09', fmt='%.8e')  # 8666058750.718977\n        self.test('perimeterOf', module.perimeterOf(b, closed=True),  '3.78258541e+05', fmt='%.8e')\n        self.test('perimeterOf', module.perimeterOf(b, closed=False), '2.67063461e+05', fmt='%.8e')\n\n        c = LatLon(0, 0), LatLon(1, 0), LatLon(0, 1)\n        self.test('areaOf', module.areaOf(c), '6.18e+09', fmt='%.2e')\n        self.test('perimeterOf', module.perimeterOf(c, closed=True),  '3.79639757e+05', fmt='%.8e')\n        self.test('perimeterOf', module.perimeterOf(c, closed=False), '2.68444678e+05', fmt='%.8e')\n\n        if hasattr(module, 'nearestOn3'):\n            c, d, _ = module.nearestOn3(p, b)\n            self.test('nearestOn3', c, '46.000996°N, 001.353049°E' if Nv else '46.0°N, 001.369324°E')\n            self.test('nearestOn3', d, '569987.49' if Nv else '570101.83', fmt='%.2f')\n            d = p.distanceTo(c)\n            self.test('distanceTo', d, '569987.49' if Nv else '570101.82', fmt='%.2f')\n\n            p = LatLon(47, 3)\n            c, d, _ = module.nearestOn3(p, b)\n            self.test('nearestOn3', c, '46.0°N, 002.0°E' if Nv else '46.0°N, 002.0°E')\n            self.test('nearestOn3', d, '134989.80' if Nv else '134992.48', fmt='%.2f')\n            d = p.distanceTo(c)\n            self.test('distanceTo', d, '134989.80' if Nv else '134989.80', fmt='%.2f')\n\n            p = LatLon(45, 2)\n            b = LatLon(45, 1), LatLon(47, 3)\n            if Nv:\n                c, d, _ = module.nearestOn3(p, b)\n                self.test('nearestOn3', c, '45.330691°N, 001.318551°E')\n                self.test('distance', d, '64856.28', fmt='%.2f')\n            else:\n                c, d, a = p.nearestOn3(b, adjust=False)\n                self.test('nearestOn3', c, '45.5°N, 001.5°E')\n                self.test('distance', d, '78626.79', fmt='%.2f')\n                self.test('angle', a, '315.00', fmt='%.2f')\n                a = p.compassAngleTo(c, adjust=False)\n                self.test('compassAngleTo', a, '315.00', fmt='%.2f')\n                c, d, a = p.nearestOn3(b, adjust=True)\n                self.test('nearestOn3', c, '45.331319°N, 001.331319°E')\n                self.test('distance', d, '64074.48', fmt='%.2f')\n                self.test('angle', a, '305.10', fmt='%.2f')\n            d = p.distanceTo(c)\n            self.test('distanceTo', d, '64856.28' if Nv else '64074.12', fmt='%.2f')\n            a = p.compassAngleTo(c)  # adjust=True\n            self.test('compassAngleTo', a, '304.54' if Nv else '305.10', fmt='%.2f')\n            # TrigTrue vs Nvector closests\n            p = LatLon(45.330691, 001.318551)\n            d = p.distanceTo(LatLon(45.331319, 001.331319))\n            self.test('difference', d, '1000.53', fmt='%.2f')\n\n            if Sph:  # check nearestOn2/3 with closest on the segment\n                b = LatLon(0, 1), LatLon(2, 3), LatLon(4, 5), LatLon(6, 7), LatLon(8, 9)\n                for i in range(8):\n                    p = LatLon(i + 2, i)\n                    c, d, a = p.nearestOn3(b, adjust=False)\n                    t = LatLon(p.lat - 1.5, p.lon + 1.5).toStr(F_D, prec=6)\n                    self.test('nearestOn3', c.toStr(F_D, prec=6), t)\n                    self.test('distance', d, '235880.385', fmt='%.3f')\n                    self.test('angle', a, '135.00', fmt='%.2f')\n\n                n = module.meanOf(b)  # coverage\n                self.test('meanOf', n.toStr(F_D, prec=6), '04.004858°N, 004.990226°E')\n                n = module.nearestOn3(p, b, LatLon=LatLon, adjust=False)[0]  # coverage\n                self.test('nearestOn3', n, '07.5°N, 008.5°E')\n                c = p.toCartesian()  # coverage\n                self.test('toCartesian', c, '[6245667.211, 766871.506, 996645.349]')\n\n        if hasattr(module, 'ispolar'):\n            p = LatLon(85, 90), LatLon(85, 0), LatLon(85, -90), LatLon(85, -180)\n            for _ in self.testiter():\n                self.test('ispolar', module.ispolar(p), 'True')\n            p = LatLon(85, 90), LatLon(85, 0), LatLon(85, -180)\n            for _ in self.testiter():\n                self.test('ispolar', module.ispolar(p), 'True', known=True)\n            p = [LatLon(*ll) for ll in Antarctica]\n            for _ in self.testiter():\n                self.test('ispolar', module.ispolar(p), 'True', known=Nv)\n\n        if hasattr(LatLon, 'triangle7'):\n            t = LatLon(10, 10).triangle7(LatLon(70, -20), LatLon(70, 40))  # radius=R_M\n            self.test('triangle7', t.toStr(prec=6), '(22.142114, 2189776.256122, 84.91384, 6998970.168483, 84.91384, 6998970.168483, 8479698853790.72168)', known=isPython2 and isWindows)\n            t = LatLon(10, 10).triangle7(LatLon(70, -20), LatLon(70, 40), radius=None)\n            self.test('triangle7', t.toRepr(prec=5), 'Triangle8Tuple(A=0.38645, a=0.34371, B=1.48203, b=1.09857, C=1.48203, c=1.09857, D=3.74234, E=0.20891)')\n\n        if hasattr(LatLon, 'nearestOn'):\n            # <https://GitHub.com/mrJean1/PyGeodesy/issues/25>\n            a = LatLon(1, 1, height=100)\n            b = LatLon(2, 2, height=200)\n            t = LatLon(1, 2).nearestOn(a, b).toStr(form=F_D, prec=1)\n            self.test('nearestOn', t, '01.5°N, 001.5°E, +149.99m')\n            t = LatLon(1, 2).nearestOn3([a, b])[0].toStr(form=F_D, prec=1)\n            self.test('nearestOn3', t, '01.5°N, 001.5°E, +149.99m')\n\n        if hasattr(LatLon, 'midpointTo'):\n            a = LatLon(52.205, 0.119, height=100)\n            b = LatLon(48.857, 2.351, height=200)\n            t = a.midpointTo(b).toStr(form=F_D, prec=4)\n            self.test('midpointTo', t, '50.5363°N, 001.2746°E, +150.00m')\n            t = a.midpointTo(b, fraction=0.5).toStr(form=F_D, prec=4)\n            self.test('intermediateTo', t, '50.5363°N, 001.2746°E, +150.00m')\n\n\nif __name__ == '__main__':\n\n    from pygeodesy import sphericalNvector as Nv, \\\n                          sphericalTrigonometry as Trig\n\n    t = Tests(__file__, __version__)\n\n    t.testLatLon(Nv, Sph=True, Nv=True)\n    t.testVectorial(Nv, Sph=True)  # special case\n    t.testSpherical(Nv, Sph=False, Nv=True)\n\n    t.testLatLon(Trig, Sph=True)\n    t.testSpherical(Trig)\n\n    t.results()\n    t.exit()\n"
  },
  {
    "path": "test/testStreprs.py",
    "content": "\n# -*- coding: utf-8 -*-\n\n# Test L{streprs} module.\n\n__all__ = ('Tests',)\n__version__ = '23.03.27'\n\nfrom bases import TestsBase\n\nfrom pygeodesy import INF, NEG0, NAN, \\\n                      anstr, fstr, fstrzs, instr, LatLon_, unstr\n\n\nclass Tests(TestsBase):\n\n    def testFmt(self, fmt, x):\n        self.test(fmt.name,  fmt(1e-3, prec=6), x)\n        self.test(fmt.name, (fmt % 1e-3), x)\n        self.test(fmt.name,  fmt % (1e-3,), x)\n        self.test(fmt.name,  fmt % (6, 1e-3), x)\n\n    def testStreprs(self):\n\n        self.test('anstr', anstr('a-b?_'), 'a-b__')\n\n        self.test('fstr', fstr(0.123, prec=-6), '0.123000')\n        self.test('fstr', fstr(0.123, prec=+6), '0.123')\n        self.test('fstr', fstr((0.123, 456.789), prec=+6), '0.123, 456.789')\n        self.test('fstr', fstr(0.123, prec=-5, fmt='%.*e'), '1.23000e-01')\n        self.test('fstr', fstr(0.123, prec=+5, fmt='%.*e'), '1.23e-01')\n        try:  # coverage\n            self.test('fstr', fstr(1, fmt='X'), ValueError.__name__)\n        except ValueError as x:\n            from pygeodesy.streprs import _Fspec_\n            self.test('fstr', str(x), \"fmt ('X'): not %r\" % (_Fspec_,))\n\n        for f, x in ((1,      '1.0'),\n                     (1.0,    '1.0'),\n                     (-1,    '-1.0'),\n                   # (1e300,  '10000<290>40160.'),\n                     (1e1234, 'INF'),  # == INF\n                     (INF,    'INF'),\n                     (NAN,    'NAN'),\n                     (NEG0,  '-0.0'),\n                     (0.0,    '0.0')):\n            self.test('fstr(%F)' % (f,), fstr(f), x)\n\n        for f, x in (('0.0',      '0.0'),\n                     ('0.00',     '0.0'),\n                     ('0.000',    '0.0'),\n                     ('00.0',    '00.0'),\n                     ('000.00', '000.0'),\n                     ('0.000',    '0.0'),\n                     ('0.010',    '0.01'),\n                     ('0.0200',   '0.02'),\n                     ('0.0e+01',      '0.0e+01'),\n                     ('0.00e+02',     '0.0e+02'),\n                     ('0.000e+03',    '0.0e+03'),\n                     ('00.0e+00',    '00.0e+00'),\n                     ('000.00e+01', '000.0e+01'),\n                     ('0.000e+02',    '0.0e+02'),\n                     ('0.010e+03',    '0.01e+03'),\n                     ('0.0200e+00',   '0.02e+00')):\n            self.test('fstrzs(%s)' % (f,), fstrzs(f), x)\n\n        for f, x in (('0',    '0.0'),\n                     ('0.0',  '0.0'),\n                     ('0.',   '0.'),\n                     ('1e10', '1.0e10'),\n                     ('2E+2', '2.0E+2'),\n                     ('3.E3', '3.E3')):\n            self.test('fstrzs(%s, ap1z=True)' % (f,), fstrzs(f, ap1z=True), x)\n\n        ll = LatLon_(45, 90, height=1.2)\n        self.test('instr', ll.toRepr(), 'LatLon_(45.0°N, 090.0°E, +1.20)')\n        self.test('instr', instr(ll, 45, 90, h=1.2), 'LatLon_(45, 90, h=1.2)')\n\n        self.test('unstr', unstr('f', 1.1, 2.2), 'f(1.1, 2.2)')\n        self.test('unstr', unstr('f', y=2.2, x=1.1), 'f(x=1.1, y=2.2)')\n\n\nif __name__ == '__main__':\n\n    from pygeodesy import streprs\n\n    t = Tests(__file__, __version__, streprs)\n    t.testStreprs()\n    t.testFmt(streprs.Fmt.F, '0.001')\n    t.testFmt(streprs.Fmt.f, '0.001')\n    t.testFmt(streprs.Fmt.E, '1.0E-03')\n    t.testFmt(streprs.Fmt.e, '1.0e-03')\n    t.testFmt(streprs.Fmt.G, '0.001')\n    t.testFmt(streprs.Fmt.g, '0.001')\n    t.results()\n    t.exit()\n"
  },
  {
    "path": "test/testTMcoords.py",
    "content": "\n# -*- coding: utf-8 -*-\n\n# For UTM/UPS tests using C(TMcoords.dat} from U{C. F. F. Karney,\n# \"Test data for the transverse Mercator projection (2009)\"\n# <https://GeographicLib.SourceForge.io/C++/doc/transversemercator.html>},\n# also available U{here<https://Zenodo.org/record/32470>}, file C{TMcoords.dat}.\n\n__all__ = ('testTMcoords',)\n__version__ = '24.03.22'\n\nfrom bases import isiOS, TestsBase\n\nfrom pygeodesy import Ellipsoids, EPS, RangeError\n\ntry:\n    from StringIO import StringIO\nexcept ImportError:\n    from io import StringIO\n\nfrom sys import argv as _argv\n\n# first 258 of 258,000 lines in file \"TMcoords.dat\", imported by .testEpsg.py\n\n# The WGS84 ellipsoid is used, with central meridian 0°, central scale\n# factor 0.9996 (the UTM value), false easting = false northing = 0 m.\n\n# Each line of the test set gives 6 space delimited numbers:\n# - latitude (degrees, exact)\n# - longitude (degrees, exact — see below)\n# - easting (meters, accurate to 0.1 pm)\n# - northing (meters, accurate to 0.1 pm)\n# - meridian convergence (degrees, accurate to 10−18 deg)\n# - scale (accurate to 10−20)\n\n_TMcoords = StringIO('''\n70.579277094557 45.599419731762 1548706.7916191491794 8451449.1987722350778 43.922790121040067192 1.02906022837807180952\n10.018893710119 23.313323816796 2624150.74092867098 1204434.0416046227631 4.292619330037266837 1.08605124643084949596\n19.479895588178 75.662049225092 9855841.2329353332058 6145496.1151551160577 53.348315487088028046 2.44509802490834298722\n21.072464821428 29.82868439326 3206390.6919962592145 2650745.4004060203847 11.666949788578689434 1.12935868700276526857\n5.458957393183 36.385237374895 4328154.0835012728645 749647.6236903529367 4.024317088431326062 1.24082851823154139331\n70.175453699652 22.865350231728 847598.2665137468857 7947180.9624403351564 21.639091006346664631 1.00839909846273441335\n61.965604972549 58.931370849824 2727657.3379737519243 8283916.696409868168 55.690908843041317298 1.09194224601298976532\n11.11604988045 20.901069188458 2331001.7518903972451 1313608.2247509045811 4.214689849139200616 1.067599217405929328\n32.210543147532 60.705849110026 6035557.2394798919255 5791770.7918786862854 43.698170496647401371 1.48126008977138889627\n79.187450900634 61.532382486867 1064553.1258517419121 9417273.7372082489829 61.100379706055074729 1.01347470196600136158\n77.103758907396 74.899104969954 1400137.116164341178 9616907.0176860890621 74.527086843388856251 1.02363990993625301115\n21.889514024862 80.019885892785 9860691.0166261508479 7433039.1433282732643 65.357693372142649007 2.43897318400097845293\n30.53629567699 82.186177919416 8076501.8336948099169 8561614.1747819103782 75.073393190238557702 1.90620203595203984732\n49.990484734989 48.203178547341 3335099.8666228919764 6740519.0840148855017 40.611821429856773932 1.13902138155931159626\n14.486311853451 80.905136710227 12051574.9284996192629 6587213.0519512810474 59.033236797073779959 3.3574686117030164354\n25.936823898765 49.913597662516 5387578.7352981155567 4111216.907168232907 27.574337077887971363 1.37935729177176469738\n64.402196051067 64.091394847023 2622214.3802330300654 8678923.9845665762 61.697275181170245505 1.08480957578496618881\n48.451353594584 84.856197560189 5068474.169632778036 9492066.9937094951003 83.156739839119105102 1.3299901985118008373\n27.203894742072 7.440229319956 738062.0477794809553 3031007.0741158638797 3.416801681625375868 1.00633168074600267019\n72.509000485409 78.982283482292 1944413.834565346853 9613299.2244925100134 78.462831057851165665 1.04613441222572206659\n41.824953736899 25.39274385366 2114521.4184058719787 4954077.4400978378572 17.571877886939805077 1.05509329051878698199\n42.701376407719 7.572738186139 620365.9050898417601 4755542.0265620241836 5.152021939103753522 1.00433819291969569998\n40.552052236608 3.10605643618 263004.7709889716198 4493669.7624508701848 2.020523080004668331 1.00045152537558245158\n3.501241735308 27.806507229666 3217221.7394620754606 437776.1191609587993 1.848169127986085672 1.13055811977484279446\n10.148714782203 85.373767569431 14661142.4449607145297 7476100.8241849819567 68.376669038799719822 4.89664968310721668858\n58.582623413754 16.755557927357 967777.1585538550834 6615684.2665918122107 14.410044184805568143 1.01110049967174710461\n19.793004266049 61.746763253022 7558840.7284607307613 4144728.1307639004491 32.557263709306064222 1.79148974312616264707\n78.666776295717 56.365355032529 1056008.3141606622993 9290799.6926694787804 55.843278085670068777 1.01325308986429560329\n11.99878827065 17.597873384909 1943965.1346867432457 1389972.228689978338 3.774868749144232083 1.04672441163442516954\n32.540378157921 58.764613204285 5803077.0729023443587 5649957.9436588808605 41.717942799520694469 1.44257204179252015685\n45.160355715851 37.465284907696 2928716.9860089971354 5731835.0583167290719 28.538550438111537283 1.10677992098177181933\n79.584190378868 16.367006094695 326141.9757557496954 8881325.164542603823 16.111414681359673051 1.00089993942341181312\n52.470664133515 64.125580446166 3933015.2674496992268 7932373.9095122782833 58.577423527128429231 1.19481101723429277124\n23.702672650774 72.630363287434 8598926.9832129798489 6214135.1675031200387 52.612877781738863878 2.05136696382462895237\n32.603520070077 67.280123028581 6620553.3337715800496 6540527.1229476324152 52.3501400177981775 1.58661390145658678613\n33.776224430873 16.280993301103 1515136.7582917435602 3858996.0875369629012 9.225127467948732285 1.02802878359903348214\n79.932747307768 25.363621893141 479854.3734451901139 8980501.3898956884036 25.021222386954738067 1.00241454728029893439\n.935055560116 42.53882371151 5243446.5649397923937 140657.2139601745984 .862816875528843911 1.36035750366692273797\n13.490862440668 83.178380075606 12806457.9232176809509 7170118.6846750266674 64.708921319446620085 3.7405880916836789809\n48.979056611144 16.474541916245 1202993.4591584864223 5557316.0535990491813 12.579061086594141623 1.01742642054231242781\n65.03601551382 38.72909058624 1729088.7101955880128 7770874.2899540818008 36.021783497671091455 1.03639655778420600386\n45.510091059252 31.303728868569 2437301.5174252324938 5539327.7483181566592 23.461878886124479373 1.07345865279937953966\n16.058009627762 32.520026226815 3647186.1350656452881 2086412.3309827435192 10.023991299493014563 1.16870736569005615013\n36.84520033941 20.282283332283 1818497.2435558675661 4275471.7450572589369 12.499655874401409124 1.04060375620579838882\n37.865481186501 41.990401524014 3751304.1137831969124 5130454.0015917055942 28.959706974035481776 1.17768130761447297485\n3.28727188791 22.917603895056 2616733.138544322417 394644.4638147892681 1.390425099091137669 1.08559457351075303955\n47.813685905876 23.545092456754 1756506.5739421266743 5570393.9863943798503 17.89789444055791977 1.03773249943759836051\n22.836853045404 72.604384975988 8752461.8947109875583 6087728.1522842465577 51.628464534451266003 2.09546464339560774477\n.527262488978 11.684209132768 1309272.2164321123566 59520.0288993871333 .109069182167531056 1.02089660980397436268\n20.166741997072 3.143947731274 328652.2771294843991 2233043.9588736710395 1.084863297347176706 1.00093521803437134364\n28.604629015528 85.988721094779 8637959.7164470998207 9190635.1560309800028 81.802562643198123218 2.05432863342852874819\n28.984047991106 85.833447775172 8548521.4551470334531 9172410.9432821880799 81.583928102890161419 2.02964145862183583179\n68.071020468737 19.392822879186 796987.2811043724991 7677446.3576754183788 18.084471771162892811 1.00738114483985271123\n61.416576191872 81.981611413918 3291036.4967623295988 9513199.6006662170596 80.890253980644739593 1.13482563910814382209\n35.074753204279 79.496002969799 7087225.3309060931216 8382823.8558221762359 72.25375612182016949 1.67806984242534083556\n28.078789930145 48.684349570647 5090358.1257235686008 4318294.1334886064437 28.266280188302695739 1.33626407173290792824\n84.986930137199 2.067177857261 20163.0752214330146 9438635.9888499043815 2.059277291707588222 .99960496589466017622\n28.473948268025 34.12730567449 3447670.5507847334006 3680238.888222715322 17.934947982475010676 1.14983099536013499926\n56.629353655336 62.196473719193 3396522.9067977887178 8093659.6875928252142 57.747116822698645359 1.1440063909987750803\n4.747761773803 70.932554556127 11249894.1007840611758 1619226.5062987145353 14.210358187648878999 3.04834698412044976957\n35.882112501618 76.741848750875 6808805.23095023548 8044779.7773693533498 68.242008178358314082 1.62146359128641854174\n6.42070482504 20.416028355525 2306021.5565059955892 757191.5928659006169 2.385685550799879322 1.06615932703313059382\n52.335248167422 22.879293778793 1547406.3138615646706 6048712.7518236823564 18.474372076286182044 1.0291226350124929634\n59.846390709402 46.262536374951 2430467.6503829496158 7557167.6139715559925 42.110020812285922144 1.07275901175575821842\n16.461790285243 21.433269186661 2334053.9058301522643 1948076.9665824793916 6.353185129915976783 1.06773282981445423028\n11.707905244928 45.827075179052 5564175.1867374906587 1836851.6604118701417 11.870682401525300151 1.40826542507146242973\n38.519075230481 71.935917931082 6118505.5903586656687 7631684.5524210322411 62.477323370615224648 1.49341988810791699\n34.264007222954 82.647878110272 7365359.2946646287171 8818194.4515306837741 77.207042218974141605 1.73763853091849729372\n19.376879758731 .344604702538 36187.3424147238117 2142565.3248023055831 .114334366652574163 .99961618629427946552\n65.075805475982 57.653438169334 2380328.5468508919474 8440109.8723841409767 55.076066661701381469 1.06965834492909651546\n78.691869858364 27.591736411927 582511.6088260822781 8876047.2170705300021 27.133299634302376408 1.00374884070881342847\n40.893022388204 10.668803645636 899441.3504769787009 4582046.4305161929187 7.031211200325183102 1.00957251523499968837\n48.914278679322 87.35926802682 5022485.1243369246483 9741774.9337207800497 86.505947369926030588 1.32369954850478170836\n16.208377106594 54.494282151347 6701004.5872038334316 2954368.2582310730947 21.560152646875578 1.60855373936651177994\n43.977935890852 5.672541129169 454986.2188972515956 4885087.8878842827264 3.945648021963556589 1.00214702964307690511\n26.850860749352 82.834479937822 8903956.1403106503714 8470608.5774824981183 74.723116471645531699 2.13131124920824155268\n52.234164942694 22.827654621252 1547627.5947405022567 6036584.5383472499045 18.407628762946557814 1.0291318457152898605\n11.674645926334 43.500147485032 5221488.7785972672924 1762592.0443920618937 10.927880117548569099 1.35672143999466385616\n22.49275252749 44.179153244168 4880570.2971608056244 3325433.9888672882599 20.469862411706803346 1.3084757212046467219\n.910999463005 88.548822916123 23930680.0826936110445 7491462.0990379651261 75.937628056628715446 15.55636485152285563369\n33.028801664026 .765842683855 71519.4504575306802 3654740.4448518867014 .417448360256695198 .9996630662116279997\n50.649194793146 64.389075825035 4152797.7952199466443 7823098.5027514052623 58.238900518140347763 1.21805179919494488513\n58.820639878533 55.841047796984 2926725.7076386952317 7904918.0728436936236 51.592748230544387725 1.10620560258341567775\n77.86576233957 76.414618233373 1325509.1138687410279 9675214.9482134019947 76.116212990328245516 1.02113632957426301409\n4.389639152193 26.458976490586 3045296.4489264779145 542153.443280018004 2.185095458409962455 1.11666391460268667495\n13.924448317313 79.017873037038 11843870.8875184068712 5912803.073342800756 52.814259465980122311 3.26725623456589470495\n.679713299722 62.036791960028 8891099.7049355983737 162160.1422267625235 1.312094322525505534 2.15736251126013465557\n20.478280678952 42.678233741598 4784814.2144494965077 2984497.432579909692 17.946544510697015083 1.29611569101488809107\n73.695702778891 74.259097009997 1772074.6821540221529 9491552.5601429632962 73.634829544651613543 1.03820223054775212902\n58.569370243141 33.777549098621 1907649.7821061786815 6994232.4293791756103 29.718928505880864701 1.04450291519041301412\n18.933880535395 19.492695056232 2084423.8189620029383 2211816.0356192490603 6.556448180639453111 1.05379306456956292405\n68.317934453741 26.515687019151 1064373.6717288683288 7812482.547460769636 24.874124026895538133 1.01348961758472755197\n50.641941364984 87.111556505544 4770385.4792965339274 9734318.9029801439364 86.27311877223132818 1.29055338238288419467\n24.411297840798 56.88182311078 6398096.6772973600439 4410894.7521038311977 32.558023304777286275 1.54800368213678933224\n24.571871102264 30.073097169764 3138623.3004145471641 3082960.6007977759991 13.557671585295237223 1.12372399807947897752\n34.20257557563 29.383165969835 2748325.7946509686296 4202811.912667864605 17.578705709567679327 1.09410195730734136777\n27.756284848275 61.881904854712 6677830.6303670122334 5350071.837395327614 41.306641371021023125 1.59977445641749126253\n19.74226995492 50.957821039519 5941536.6674313585796 3293112.1751404267828 22.752845451823778194 1.46847293646826714846\n45.453581601033 40.659833471976 3152481.7925671135891 5903048.8379780052155 31.494605530298385784 1.12408455578287267344\n8.322143510836 69.488157190493 10460475.8977297807162 2553463.624390859904 21.965868544314762363 2.70029645950992131633\n47.749830606963 26.322001579253 1964010.7780209841382 5634042.9230556657743 20.117800254064358466 1.04734380074617176454\n18.297492825554 19.244669003371 2065306.4249344182821 2135008.4686507365035 6.258980787330580674 1.05280028635971539682\n40.834540746347 61.650750017598 5127738.1329756395441 6793804.3044111353216 50.557914709602202724 1.33941150728477513513\n26.27324746762 74.926694319674 8385525.1481661815737 6924932.3443060878421 59.087561176849211121 1.9903641945426514594\n23.698347493871 22.155656995693 2297510.7919089474927 2805666.9628340797276 9.30155297617018372 1.06550832603200218621\n12.364112546807 86.348578425071 13749544.9176345767153 8288728.3846500523233 75.033969786420407131 4.27058754359004466627\n9.916090592983 2.895277339837 317518.4555464869534 1097517.5837454216348 .499003720919636014 1.00084775964536943313\n56.553876228037 78.215077042034 3856035.1848884240006 9141364.4502903059687 75.972762873607038529 1.18678624695045238303\n75.957630588142 67.407382685044 1457484.9428227196297 9385297.1019733464598 66.784661729241963706 1.02566019553942792804\n31.826530823362 13.731050162682 1304934.9018412828799 3604655.155715481906 7.343988561535999759 1.02067230331888663326\n70.542985267281 40.282054589142 1399093.4917923557236 8314607.120342236932 38.630161278888698433 1.0236249515019550137\n38.617487254111 4.099838486616 356983.618539634654 4282309.0489941972154 2.561484750887838159 1.00116967656345686077\n5.389446869748 66.729612162904 9952911.3250914975731 1510288.2122287705261 12.752154123386704553 2.51135680697119678551\n6.995168275875 50.014762673612 6367592.5040067391371 1200437.0776723467399 8.338041363617584015 1.5462097188295546001\n42.32189384152 53.784040052344 4391263.6764595202809 6325455.989407695451 42.653540961791053971 1.24556015758625337757\n12.698514957503 50.242046782422 6209880.5275270171723 2154754.4497471950918 14.919512494122454149 1.5165601290898930918\n54.207636072355 23.325730771441 1507053.6887724474652 6261383.5132798271265 19.280372700853517863 1.02758396387063827962\n13.224786669751 62.426697605612 8332725.0037766352019 3002712.3297530032296 24.059211770061643256 1.99044967828556833824\n25.650281524787 37.710390879145 3958910.0852347261854 3462284.9261024711771 18.546398104130172202 1.19935066297013315842\n20.684773383075 82.849734261238 10452892.2820830090734 8000059.6051139389546 71.07524025411428855 2.6501109339363854772\n57.367533447896 8.260865981663 496148.2537306291007 6388503.3650426645438 6.970955082495557851 1.00261965657610768433\n25.958756519165 65.760477206515 7375792.0858501333485 5544624.072155191546 44.510851262372117173 1.74589815151284094781\n41.395847513261 33.661790413276 2826258.0419787338802 5167759.8169594580007 23.783897043835053021 1.09941471776423452703\n54.266617122219 70.602199344259 3958563.3788510011838 8499923.2312431065963 66.570944905261286671 1.19729647829139513622\n49.840392952501 68.036727864486 4408189.5334624673805 8046312.0036419493641 62.216958843252958235 1.24674966630032523203\n46.306035173144 48.085828071782 3629225.6275122633607 6371258.4546454462175 38.881674764054976478 1.16551075937682077929\n43.570988154502 7.46449391571 602838.450710449767 4851370.6372051615015 5.160395241581517306 1.00407312998832083041\n19.427290417638 7.268247299591 764616.6650506681717 2164299.3379453227242 2.429300399613599967 1.00683508317252458097\n12.713793748691 42.507018471253 5048953.0219314851332 1885974.0573976666868 11.459803714497619668 1.33220663200426135551\n20.238782471807 21.566067847502 2293996.6011553478844 2392408.6442210939576 7.791837899898628743 1.06534808910887717165\n62.367847456811 30.43884908056 1530603.839417656944 7287841.4598977046908 27.502921059804991696 1.02841626834792068661\n41.891568633612 31.959547272043 2660000.0931521348398 5161982.2132484260178 22.629836281156892582 1.08785143983905682151\n47.664247649433 77.630061639566 5037478.3294144716228 8768172.3799078950489 73.511182499373789255 1.32591926229798518833\n67.2595593736 62.71529258458 2289650.95779913061 8784328.5936072402413 60.786067001346348057 1.06434628696322565557\n60.295380699684 11.763096536191 647913.8897442235616 6742382.2282168677249 10.252667402382069508 1.00474800452158321223\n76.878914074271 49.685772707959 1118372.6985656095089 9040627.9422628652853 48.936802955632901532 1.01491963932848643155\n49.495348846691 6.087551111735 440696.5100700030027 5500355.8262971466109 4.636103927615996534 1.00198639702101890472\n80.297265209749 33.816371631992 601728.1497271233657 9095352.0481485300158 33.435771182948412959 1.00402665627010237281\n2.286436766954 29.855148933378 3481444.7778274356602 291665.7087491972233 1.314726047860802375 1.15353417379878877774\n11.264456523809 30.743906888841 3515304.9015238188873 1443981.8829184631458 6.641637995051852051 1.15650928833492118964\n35.434073450488 1.762794707137 160012.1869587518858 3922609.2532306700222 1.022225124144958262 .99991553289064298164\n6.923694525049 35.289455784944 4163744.2456224223412 936884.6748035344939 4.89255872378144431 1.22216428398585218853\n36.129671646557 67.533176237312 6155200.0179262357161 6926306.6283897454627 55.103257728863139942 1.5005557389379217801\n4.406528980638 81.965734206053 16263383.2854400911299 3591296.7313406507021 36.040254103487111035 6.58928781751888396522\n8.474589009114 81.129945130597 14220995.5153984992101 5100587.4575033509156 47.314258427760984573 4.69320221531225352172\n53.9072758977 51.252904494063 3173034.8023721438908 7263421.9429571994497 45.215808095130154586 1.1254103499728070173\n22.120544817855 85.756781608119 10253274.0922039670098 8867574.2997916978265 79.198250285604314115 2.57237240666878171579\n66.444099685789 64.532959623888 2415561.4832300277853 8813225.2170972443615 62.548978471128893639 1.07174792673045743011\n6.670965383497 65.660407658138 9589179.2932946116388 1777680.7841433564398 14.838482736502380244 2.38071598202088822511\n33.054056916574 7.787458413753 727939.4383912861907 3684363.2368099898959 4.266227267489998418 1.00614020225651810072\n7.03552544447 11.253707285756 1250765.991085162047 792869.242718733336 1.396497323452689659 1.01902556917615578856\n44.971340061426 9.009304223525 710421.7058868297322 5019406.0759277693493 6.39394902348355911 1.00581176650310200228\n30.821397273114 45.970576586721 4600995.0746431898409 4505712.0845933605189 27.997457530594202466 1.27184146679060042739\n62.763886473774 10.960144152175 557642.6277821351813 7006911.2516444447618 9.769902837537033542 1.00341081628731571164\n18.888610683787 41.009871020315 4635062.294290666664 2702556.1533113415592 15.779546941050109522 1.27717838268611630498\n7.524119461376 81.050715469439 14554962.2559189870471 4716639.9085720199214 44.192751352918149954 4.96001986321419027847\n70.063902088267 23.705255280431 882126.661735638301 7947612.3695055354723 22.429486595349178622 1.0091317513017451276\n3.556525834215 88.363529198819 20262021.6459832969292 8113827.8207957955275 76.936057264555500879 10.34909168211805703369\n34.551256940467 69.111090740792 6500508.3998499190022 6956476.3423679842735 56.237115700755496095 1.56316164401685017241\n47.929051428655 54.103418434236 3884036.6413140485904 6890167.4117333333762 45.760130455073278298 1.19016705049074162293\n55.753535712331 3.471798114123 217855.5460780085389 6184108.1225681774287 2.870992737838008847 1.00018219161553870971\n18.530847071862 86.555312055898 11384139.290401676268 8893889.9495562311576 79.77485364572019046 3.02467156922968230025\n54.51012548939 58.556056134661 3469855.989804779935 7723193.799228055759 53.114700483137237471 1.15054018967525499602\n42.864161881687 84.866325602975 5926165.994939154109 9385463.7327467371322 82.506981261616342016 1.45975761947329382411\n30.911943481323 57.114101855719 5798639.6622244850132 5305387.6409164746931 38.617257368242120557 1.44226267698891684426\n58.542492989325 .162592684741 9464.9343875445955 6489121.6249442771542 .138696123095078659 .9996010981636145684\n15.022689088683 85.792615487152 12575834.2756139069875 8356610.8954857643175 75.235223160840771295 3.59944161831319404851\n65.692275101448 77.241377062715 2719653.543469453487 9362389.163494812678 76.049669860936597376 1.09131485659964876498\n48.806211025007 76.486364889518 4845341.924698123028 8710522.3269010880979 72.320942261938292347 1.30038173928117133974\n56.436024794624 82.61156798689 3935261.5227628794258 9454271.6490618694486 81.162334302626197333 1.19476734082123451158\n8.766053048623 54.367539445614 7074299.8229999322031 1648736.0650554142139 12.145925189190523145 1.68755130286482068464\n17.095494987028 33.059128480797 3689072.5793081136744 2230802.665210606288 10.856247689039007266 1.172689254381165737\n22.142861155811 67.200684381182 8102565.8855870031253 5167396.6175796945199 42.324885914448306908 1.9219274646958517469\n19.222622658932 65.180784834064 8181271.3535636852753 4425436.5471854103601 35.900845441172145359 1.94501710140275939189\n33.182473524247 8.216951902375 767067.394002692496 3701745.8572961374759 4.51920087574012941 1.00686283543265220857\n11.417962794215 52.808690576538 6688114.1685717468661 2052857.2996385244734 14.766190785695058024 1.60720037033586573011\n23.836687975833 50.500179576009 5608408.7737612426501 3859055.6591101537216 26.244150765445430928 1.41346329021445609204\n45.550019860279 50.14803591077 3836942.7652752247224 6415467.6343256756272 40.575884932620234329 1.18561510259200656239\n52.74607907826 19.343926388799 1298730.3660248456423 6021453.0007924546626 15.61331972872290951 1.02036705756269413871\n65.513347930022 9.039528600078 416934.2892077992663 7295683.4517048496437 8.238231681111888838 1.00172869465579164901\n48.709795163906 63.554005498623 4336076.8508893208355 7617975.7227786210095 56.53708844224499691 1.23858191461628412453\n19.753508884702 1.603846135125 168047.3369803282036 2185000.046530304967 .542186563040675395 .99994905785319155467\n1.20281563245 59.377275851199 8276281.3287903988364 263444.3505446412864 2.071435348100689305 1.98031420974262704294\n42.564974643093 59.356947122688 4772573.8107103474239 6765710.3360024941148 48.857561258189057019 1.29191121145283131016\n10.090572450083 44.604132315642 5427755.0746387213808 1556055.8209236854074 9.862177972083542442 1.38739359283613734884\n14.133028449482 78.097533396115 11588458.6160411409115 5707993.9226125151612 50.784827016461182713 3.14956744637764457506\n4.031123274 54.048782203105 7152433.8026883113497 761390.6958441980795 5.607350212971261226 1.70526145367652322678\n62.746603094236 79.968640698878 3105651.3909011889729 9426026.169064495616 78.750206331373698422 1.1197368650353186846\n60.626429309951 61.851551200568 2959009.6390219621423 8339242.2692824755336 58.460864592396548599 1.10855399347957011951\n23.600626307178 72.811633889695 8640472.2671449642382 6230320.4179312077616 52.816810016658736762 2.06297336227917101194\n82.572235784013 77.402323331121 811352.1089323540173 9816129.813480900982 77.299183800337734488 1.00765089959951951668\n6.030050581949 50.783504648331 6521874.9734575493479 1053612.4797442143876 7.407328325531892571 1.57552927490754724882\n42.411522802341 42.258009167689 3477983.9978745138452 5651613.3259470101084 31.530672987296576972 1.15187476329973936765\n29.526119573162 6.49306920517 629892.8222431609312 3283914.9104510948801 3.210482004553411381 1.00449937658081974569\n39.021852555506 38.64177900453 3381879.6872268223164 5103629.3256646459488 26.748108324630378211 1.14355942712754379458\n64.971849693 78.151893481622 2815986.5341766402522 9387029.1207183539003 76.967261983821977885 1.0980320958404978263\n59.961819383357 76.473421916083 3398195.8896027542059 9138936.0314903480334 74.477498798722526602 1.1440087531530389723\n41.374039662563 28.848343380399 2421734.7546371300191 5002372.094990707966 20.017081678810957981 1.07259228948474384177\n68.946086784215 79.574522659006 2360869.8955247775101 9553298.4495364430773 78.848204601472288619 1.06845342678358744205\n79.275096210569 83.551272329394 1196539.9721941076965 9861920.8362302532842 83.437668440198132309 1.01713723718699411107\n21.00025216114 12.697444145976 1327758.7047952488776 2375509.2416830163028 4.617571985370999766 1.02146477826651065683\n68.015226658605 56.732418805889 2070860.3276435193044 8604500.7195812988461 54.722761328920499997 1.05246941876679550946\n37.423674968963 76.947359213963 6564776.6548642858201 8171207.1773792722081 69.237522745576966155 1.57389402814129411208\n54.922706739174 9.260818037311 592653.5538208670326 6125529.8100517279554 7.600784978354020046 1.00391174097748520221\n61.982810332428 13.299659317104 693459.6718213818294 6943779.9910315244271 11.787586852381879951 1.00549585710526849984\n30.324214164174 18.95976913715 1838956.1876248715618 3511959.6123814068572 9.844313438294355647 1.04160310725478373473\n37.629667084297 49.649130811064 4460690.8845966838252 5541873.2354029792273 35.768612643971450111 1.25417856143495034578\n69.225574124261 77.656135038343 2311168.9989410427594 9480561.8691194226305 76.828257327042052528 1.06555550830984186384\n44.698477679082 52.979304033315 4111775.1144506591286 6509014.34879221625 43.052129903922234176 1.21412520026532777805\n69.499593633291 1.928335626092 75358.2619616238705 7711258.6622510055509 1.806297402204658786 .99966947406657274597\n27.981363604998 86.061112755721 8781885.2291162503299 9184776.4522114918448 81.795538514711932534 2.09490761781464961377\n65.699838958157 21.104724677749 954378.415174206079 7449110.6698066379025 19.380657249577556028 1.01076790612075854417\n47.143647786825 9.512189225272 720971.7937060109688 5265195.1215547760107 7.002994879368465904 1.00599450857948113857\n8.920166746304 5.101512904759 561561.4939374572189 989910.2362210683617 .793118092514896753 1.00350496287174529381\n59.778971443417 78.080321923984 3446829.6344680763077 9232868.1556635258258 76.279074811621407782 1.14826328124958159164\n55.865310107291 87.384288430943 4048307.5459092527942 9800416.4229977935137 86.843918034217523739 1.20649504624906774925\n24.310972620263 76.823776927159 8973188.4802934670189 7042230.0870214786274 60.872455730741034486 2.15609754083154148987\n3.58204121273 1.137286307295 126314.1916179008865 396006.6879211498981 .071064512019013209 .99979750106848045799\n46.124232899607 77.313118243239 5247652.3456465087758 8670513.3597516003913 72.700498211859798231 1.35527175380864724565\n31.17139056295 87.104503768139 8103656.8381187232079 9469794.014736839373 84.490673011906282841 1.91216400164486142107\n.553170847481 49.117104423642 6300112.7582358087614 93835.917364330774 .644804518587009776 1.53407289319208408993\n35.361587058134 41.860599406739 3894813.5937815908838 4833832.3410270198018 27.453297917146541997 1.19213517510824943619\n31.750313985725 4.2481669819 402511.3467124300447 3520621.5619106356485 2.238473873171145824 1.0015987516192805961\n17.924336382444 46.096401879115 5357378.5031484014897 2772997.6022343006705 17.823560123150715559 1.3760313482865829253\n60.93148826873 58.221214091933 2807553.985865849925 8177847.9802750533299 54.680044767243502309 1.09753087110632478314\n5.358150979521 87.556213284144 18289045.16650076146 7792942.3396035398889 73.216494415207315628 8.09800850850277481729\n28.616673489124 80.452426461437 8376822.4595378634541 8128174.6238782329989 70.920116640676321501 1.98487312027093768388\n11.709762713844 76.76029473875 11898068.3532717452677 4772439.493697450272 42.613968390266890749 3.31441188528359472753\n12.009497822309 71.782350911974 10550946.9390504663061 3851968.8152950466266 33.383025340643754993 2.72475395098346736944\n37.62978386356 85.795687334213 6828299.1236065501034 9394803.2274626281036 83.181386462369626591 1.62435875189611017521\n7.721127951451 71.662730825344 11162550.3340223216379 2640267.2795929572988 23.145403728553680897 2.9984080097281902618\n34.295025633828 46.442191339458 4411584.4479407645043 4956173.6944069178108 30.713918710252302272 1.24873566005930301271\n42.622496157528 8.193605260546 672108.8979047416191 4751554.6570537128986 5.569178495150195348 1.00516237476077590859\n41.667779769016 61.518287698071 5022964.2905788176273 6860418.1995022955836 50.862229638446081312 1.32492457134934124443\n36.060369077115 18.444112270623 1669655.5952065894204 4152086.5370207665606 11.110236960128259085 1.03413776443206420354\n27.948090550481 56.816429243836 6055876.7296551104864 4896837.5526193317564 35.799747003161249681 1.48596684753865910284\n63.386029820146 24.662716065038 1209214.164379140446 7266409.8591775283149 22.319632705363371281 1.01755357711026002199\n4.68092204293 42.114426024981 5154564.5595835170479 698118.3499747117951 4.242359757630121766 1.34748098807212642544\n61.826624569709 57.525095752371 2695149.8065425071908 8208197.765605494917 54.178615016022205573 1.08972999788265824831\n25.104353060784 32.528660477914 3394792.3278196264635 3217583.4155517515191 15.165863193990857289 1.14528478584558078423\n69.678351026027 39.275512777413 1429160.9669848868208 8212685.3620316119996 37.484903790606035469 1.02467583111433290394\n29.671383681805 84.19659549085 8343387.9980651104898 8885196.9545780118644 78.561937382568633298 1.97473261886829061763\n62.300207596594 40.474050846282 1990722.9286056967338 7569202.0651622239222 37.075276428875924023 1.04848569035674592378\n12.721775625713 14.19000340868 1554980.0995591305952 1449423.9195855762854 3.188328226050696487 1.02966384266140977388\n49.811296434482 10.925010729071 785205.4501960671258 5575158.4230962316151 8.388417204407732086 1.00718127027442280511\n45.132680485087 42.478624119594 3310405.9883131323503 5955022.2338814200249 33.007586777459435385 1.13714097985385542068\n.904279361648 39.078411665769 4733460.9606659335466 129034.8898158858145 .737551493227957266 1.2904394895705916755\n30.163605012904 33.577996163511 3322708.343909214722 3864738.0787416917819 18.472565938696923191 1.13883761185498551135\n27.643243707755 81.892859091432 8672864.4172042475623 8333465.9834441061554 73.206272638168122883 2.06544053870286774312\n18.201207657521 82.434617649311 11126818.23119627031 7618712.1749910723126 67.88717347393512063 2.92241673495261070414\n28.804576432117 89.886072420251 8650100.9817967479337 9975084.1689971279206 89.767446308690086924 2.05728879562910108817\n5.542997543365 19.589578015412 2212701.1801922521748 650348.1002291364067 1.970441347893608046 1.06082971035302853684\n34.237147232655 73.678164431851 6890222.3266181808204 7506813.4995466613258 62.684825342605895137 1.63848831967028469855\n22.704949386668 57.877009924539 6692260.0673245543216 4244174.0081103084813 31.81292024414934456 1.60464028065919297249\n42.192424494362 14.828195694778 1225564.1371902108879 4778923.9241444004467 10.08341913141319719 1.01813429638637496502\n11.481151181645 78.189236347565 12341116.1549503000916 5081855.5219659557156 45.712545623618863671 3.53517039848850746171\n6.609625778315 51.735782590089 6673845.0217707773023 1177587.1905652433534 8.389140750220349367 1.60517112128624127574\n19.059369023131 57.52643949087 6966354.6904170428304 3641802.0050929558396 27.409635588911986928 1.66146945739340651918\n'''.strip())\n\n\nclass Tests(TestsBase):\n\n    _max_fwd_err = 0\n    _max_rev_err = 0\n\n    def testTMcoord(self, coord, line, toEtmUtmUps8, fmt='%.6f', eps1=25.0, eps2=1e-3, lonE=80, **EtmUtmUps):\n        # format: lat lon easting northing convergence scale\n        lat, lon, e1, n1, c1, s1 = map(float, coord.split())\n        # skip \"extended\" or \"out of (UTM) range\" tests\n        if lat < 0 or lon < 0 or lat > 84 or lon > lonE:\n            self.skip(line + repr(coord))\n        else:\n            try:\n                u = toEtmUtmUps8(lat, lon, falsed=False, **EtmUtmUps)\n#               e2, n2, c2, s2 = u.easting, u.northing, u.gamma, u.scale\n#               self.test(line + 'easting',     e2, e1, fmt=fmt, known=abs(e2 - e1) < eps1)\n#               self.test(line + 'northing',    n2, n1, fmt=fmt, known=abs(n2 - n1) < eps1)\n#               self.test(line + 'convergence', c2, c1, fmt=fmt, known=abs(c2 - c1) < 0.1)\n#               self.test(line + 'scale',       s2, s1, fmt=fmt, known=abs(s2 - s1) < 0.1)\n                m = self._max_fwd_err\n                for t, v, x in (('easting',  u.easting,  e1),\n                                ('northing', u.northing, n1)):\n                    r = abs(v - x)\n                    self.test(line + t, v, x, fmt=fmt, known=r < eps1)\n                    if m < r:\n                        m = r\n                self._max_fwd_err = m\n\n                for t, v, x in (('gamma', u.gamma, c1),\n                                ('scale', u.scale,       s1)):\n                    r = abs(v - x)\n                    self.test(line + t, v, x, fmt=fmt, known=r < 0.1)\n\n                ll = u.toLatLon(eps=EPS*2)\n#               self.test(line + 'lat', ll.lat, lat, fmt=fmt, known=abs(ll.lat - lat) < eps2)\n#               self.test(line + 'lon', ll.lon, lon, fmt=fmt, known=abs(ll.lon - lon) < eps2)  # isneg0?\n                m = self._max_rev_err\n                for t, v, x in (('lat', ll.lat, lat),\n                                ('lon', ll.lon, lon)):\n                    r = abs(v - x)\n                    self.test(line + t, v, x, fmt=fmt, known=r < eps2)\n                    if m < r:\n                        m = r\n                self._max_rev_err = m\n            except RangeError as x:\n                self.test(line + 'RangeError', x, None, known=True)\n\n\ndef testTMcoords(etmutmups, toEtmUtmUps8, name='', **EtmUtmUps):\n    '''Test module L{etm}, L{utm} or L{utmups} with Karney's\n       U{TMcoords.dat<https://Zenodo.org/record/32470>} tests.\n    '''\n    if len(_argv) > 1:  # get the \"TMcoords.dat\" file\n        TMcoords, v = open(_argv[1], 'rb'), False\n    else:\n        TMcoords, v = _TMcoords, True\n\n    t = Tests(name or __file__, __version__, etmutmups, verbose=v)\n    x = None\n    try:\n        n, line = 0, 'line %%d %s.' % (toEtmUtmUps8.__name__,)\n        for coord in TMcoords.readlines():\n            n += 1\n            t.testTMcoord(coord.strip(), line % (n,), toEtmUtmUps8, **EtmUtmUps)  # PYCHOK testTMcoord\n    except KeyboardInterrupt:\n        x = KeyboardInterrupt.__name__\n    if isiOS:\n        TMcoords.seek(0, 0)\n    else:\n        TMcoords.close()\n\n    t.verbose = True\n    if x:\n        t.test(t.name, x, x, nl=1)\n\n    for e, r in (('forward', t._max_fwd_err),\n                 ('reverse', t._max_rev_err)):\n        t.test('max %s error' % (e,), r, r, fmt='%.6e')  # PYCHOK _max_r\n\n    for u in ('Etm', 'Utm', 'Ups'):\n        U = EtmUtmUps.get(u, None)\n        if U:\n            u = U.__name__\n            t.test(u + '.scale0', U._scale0, 0.9996, known=True)\n            t.test(u + '.datum', U._datum.name, 'WGS84')\n            t.test(u + '.datum.ellipsoid.KsOrder', U._datum.ellipsoid.KsOrder, 8)\n\n    # XXX Pythonista run_path doesn't reload modules\n    E = Ellipsoids.WGS84\n    t.test(E.name + '.KsOrder', E.KsOrder, 8)\n\n    t.results()\n    t.exit()\n\n\nif __name__ == '__main__':\n\n    t = TestsBase(__file__, __version__)\n    t.test('TMcoords', len(_TMcoords.readlines()), 258)\n    t.results()\n    t.exit()\n"
  },
  {
    "path": "test/testTrf.py",
    "content": "\n# -*- coding: utf-8 -*-\n\n# Test L{trf} I{Terrestrial Reference Frame} implementation.\n\n# All tests transcoded from Chris Veness (C) 2006-2024 U{Geodesy tools for conversions between\n# reference frames<https://www.Movable-Type.co.UK/scripts/geodesy-library.html>} JavaScript original\n# <https://GitHub.com/ChrisVeness/geodesy/blob/master/test/latlon-ellipsoidal-referenceframe-tests.js>\n\n__all__ = ('Tests',)\n__version__ = '24.10.14'\n\nfrom bases import GeodSolve, isPython2, TestsBase\n\nfrom pygeodesy import date2epoch, datums, Epoch, epoch2date, F_D, F_DMS, fstr, RefFrames, \\\n                      TRFError, trfTransform0, trfTransforms, trfXform, Vector3d\n\n\nclass Tests(TestsBase):\n\n    def testTrf(self, ellipsoidal_):  # MCCABE 17\n\n        self.subtitle(ellipsoidal_, 'Trf')\n\n        Cartesian = ellipsoidal_.Cartesian\n        LatLon    = ellipsoidal_.LatLon\n\n        p = LatLon(51.47788, -0.00147, reframe=RefFrames.ITRF2000)\n        x = p.convertRefFrame(RefFrames.ETRF2000)\n        self.test('convertRefFrame', x.toStr(form=F_D, prec=8), '51.47787826°N, 000.00147125°W', known=True)\n\n        c = Cartesian(4027893.924, 307041.993, 4919474.294)\n        x = c.toLatLon()\n        x.reframe = RefFrames.ITRF2000\n        self.testCopy(x.reframe)\n        self.test('toLatLon', x.toStr(form=F_D, prec=4), '50.7978°N, 004.3592°E, +148.96m')\n        c = Cartesian(3980574.247, -102.127, 4966830.065)\n        x = c.toRefFrame(RefFrames.ETRF2000, RefFrames.ITRF2000)\n        self.test('convertRefFrame', x, '[3980574.395, -102.214, 4966829.941]')\n\n        p = LatLon(0, 0, reframe=RefFrames.ITRF2000)\n        x = p.toRefFrame(RefFrames.ITRF2000)\n        self.test('Nil', x is p, True)\n        self.testCopy(x.reframe)\n        c = Cartesian(1, 2, 3)\n        x = c.toRefFrame(RefFrames.ITRF2000, RefFrames.ITRF2000)\n        self.test('Nil', x is c, True)\n\n        p = LatLon(0, 0, reframe=RefFrames.NAD83)\n        x = p.toRefFrame(RefFrames.ITRF2014)  # # via ITRF2000\n        self.test('reframe', x.reframe == RefFrames.ITRF2014, True)\n        x = p.toRefFrame(RefFrames.NAD83)\n        self.test('Roundtrip', x == p, True)\n        self.test('reframe', x.reframe == RefFrames.NAD83, True)\n        self.testCopy(x.reframe)\n\n        # Dawson, J. & Woods, A., Appendix A, Journal of Applied Geodesy 4 (2010)\n        p = LatLon('23°40′12.41482″S', '133°53′7.86712″E', height=603.2562, reframe=RefFrames.ITRF2005, epoch=2010.4559)\n        x = p.toRefFrame(RefFrames.GDA94)\n        self.test('Geodetic', x.toStr(form=F_DMS, prec=5), '23°40′12.44582″S, 133°53′07.84795″E, +603.34m', nl=1)  # +603.3361m\n        c = x.toCartesian()\n        self.test('Cartesian', c.toStr(prec=4), '[-4052051.7614, 4212836.1945, -2545106.0147]')\n\n        x = p.toRefFrame(RefFrames.GDA94)  # epoch 2010.4559\n        self.test('Geodetic', x.toStr(form=F_DMS, prec=5), '23°40′12.44582″S, 133°53′07.84795″E, +603.34m')  # +603.3361m'\n        c = x.toCartesian()\n        self.test('Cartesian', c.toStr(prec=4), '[-4052051.7614, 4212836.1945, -2545106.0147]')\n\n        x = x.toRefFrame(RefFrames.ITRF2005)  # epoch 2010.4559\n        self.test('Roundtrip', x.toStr(form=F_DMS, prec=5), '23°40′12.41482″S, 133°53′07.86712″E, +603.26m')  # +603.2562m\n\n        # <https://GitHub.com/OSGeo/proj.4/blob/2aaf53/test/gie/more_builtins.gie#L357>\n        c = Cartesian(3370658.37800, 711877.31400, 5349787.08600)  # Proj4 Onsala observatory\n        x = c.toRefFrame(RefFrames.ITRF93, RefFrames.ITRF2000, 2017)\n        self.test('GNSStrans', x.toStr(prec=5), '[3370658.18892, 711877.42369, 5349787.1243]')  # accurate to within 0.02 mm\n\n        # <https://www.NGS.NOAA.gov/cgi-bin/ds_mark.prl?PidBox=kg0640>\n        p = LatLon('39 13 26.71220', '098 32 31.74540', height=573.961, reframe=RefFrames.NAD83, epoch=2010.0)\n        c = p.toCartesian()  # NGS Data Sheet Meades Ranch\n        self.test('Cartesian', c, '[-734972.563, 4893188.492, 4011982.811]')\n\n        # Tutorial <https://EPNCB.OMA.Be/_productsservices/coord_trans>\n        def _ts(x, c, r1, r2, e, **exhaust):\n            for i, T in enumerate(trfTransforms(r1, r2, epoch=e, **exhaust)):\n                x = T.toRefFrame(x)\n                d = c - x\n                d = max(map(abs, d.xyz))\n                t = '%s max %.5g, epoched %s' % (T.name, d, fstr(T.Xform.epoched, prec=3))\n                self.test('transform%s' % (i,), t, t)\n\n        c = Cartesian(4027894.006, 307045.600, 4919474.910)\n        x = c.toRefFrame(RefFrames.ITRF2005, RefFrames.ITRF91, 2007)\n        self.test('EUREF EX1', x.toStr(prec=4), '[4027894.0444, 307045.6209, 4919474.8613]', known=isPython2, nl=1)\n        _ts(x, c, 'ITRF2005', 'ITRF91', 2007, exhaust=True)\n\n        x = x.toRefFrame(RefFrames.ITRF91, RefFrames.ITRF2005, 2007)\n        self.test('EUREF EX2', x.toStr(prec=-4), c.toStr(prec=-4), known=isPython2)\n        _ts(x, c, 'ITRF91', 'ITRF2005', 2007)\n\n        x = c.toRefFrame(RefFrames.ETRF2000, RefFrames.ITRF2000, 2012)\n        self.test('EUREF EX4', x.toStr(prec=-4), '[4027894.3559, 307045.2508, 4919474.6447]', known=isPython2)\n        _ts(x, c, 'ETRF2000', 'ITRF2000', 2012)\n\n        x = c.toRefFrame(RefFrames.ITRF2014, RefFrames.ETRF2000, 2012)\n        self.test('EUREF EX5', x.toStr(prec=-4), '[4027894.3662, 307045.2530, 4919474.6263]', known=isPython2 or abs(x.x - 4027894.3662) < 0.75)\n        _ts(x, c, 'ITRF2014', 'ETRF2000', 2012)\n\n        # Altamimi, Z. U{\"EUREF Technical Note 1: Relationship and Transformation between the International and\n        # the European Terrestrial Reference Systems\"<https://ERTS89.ENSG,IFN.Fr/pub/EUREF-TN-1.pdf>} Appendix B.\n        c = Cartesian(4027893.6719, 307045.9064, 4919475.1704, reframe=RefFrames.ITRF2014, epoch=2010.0)\n        x = c.toRefFrame(RefFrames.ETRF2014, epoch=2010)\n        self.test('Case 1A', x.toStr(prec=4), '[4027893.9619, 307045.5481, 4919474.9553]', nl=1)  # was .9620, .5480\n        c = Cartesian(4027893.6812, 307045.9082, 4919475.1547, reframe=RefFrames.ITRF2000)\n        x = c.toRefFrame(RefFrames.ETRF2000, epoch=2010)\n        self.test('Case 1B', x.toStr(prec=4), '[4027894.0054, 307045.5938, 4919474.9083]')  # was .0053, .5939\n        c = Cartesian(4027893.5358, 307046.0740, 4919475.2748, reframe=RefFrames.ITRF2014, epoch=2020.0)\n        x = c.toRefFrame(RefFrames.ETRF2014, epoch=2020)\n        self.test('Case 2A', x.toStr(prec=4), '[4027893.9639, 307045.545, 4919474.9573]')\n        c = Cartesian(4027893.5505, 307046.0772, 4919475.245, reframe=RefFrames.ITRF2000)\n        x = c.toRefFrame(RefFrames.ETRF2000, epoch=2020)\n        self.test('Case 2B', x.toStr(prec=4), '[4027894.0033, 307045.5889, 4919474.9041]')  # was .0033, .5889, .9047\n\n        try:\n            t = LatLon(0, 0, reframe='ITRF2000')\n        except TypeError as x:\n            t = str(x)\n        self.test('TypeError', t, \"type(reframe) ('ITRF2000'): not a RefFrame\", nl=1)\n\n        try:\n            t = LatLon(0, 0, reframe=RefFrames.ITRF2000, epoch=1899)\n        except TRFError as x:\n            t = str(x)\n        self.test(TRFError.__name__, t, \"epoch (1899): below 1900.0 limit\")\n\n        try:\n            t = LatLon(0, 0, reframe=RefFrames.ITRF2000).convertRefFrame('ITRF2000')\n        except TypeError as x:\n            t = str(x)\n        self.test('TypeError', t, \"type(reframe2) ('ITRF2000'): not a RefFrame\")\n\n        try:\n            t = LatLon(0, 0).toRefFrame(RefFrames.ITRF2000)\n        except TRFError as x:\n            t = str(x)\n        self.test('TRFError', t, 'no conversion: LatLon(00°00′00.0″N, 000°00′00.0″E).reframe MISSING')\n\n        c = Cartesian(0, 0, 0)\n        try:\n            t = c.toRefFrame('ITRF2000', RefFrames.ITRF2000)\n        except TypeError as x:\n            t = str(x)\n        self.test('TypeError', t, \"type(reframe2) ('ITRF2000'): not a RefFrame\")\n\n        try:\n            t = c.toRefFrame(RefFrames.ITRF2000, 'ITRF2000')\n        except TypeError as x:\n            t = str(x)\n        self.test('TypeError', t, \"type(reframe) ('ITRF2000'): not a RefFrame\")\n\n#       try:\n#           t = c.convertRefFrame(RefFrames.ITRF2000, RefFrames.ITRF2000, '2000')\n#       except TypeError as x:\n#           t = str(x)\n#       self.test('TypeError', t, \"type(epoch) ('2000'): not scalar\")\n\n        def _n(c):\n            return '%s@%s' % (c.reframe.name, c.epoch)\n\n        X = Cartesian(4160476.485, 653193.021, 4774604.780)  # expected\n        for c in (Cartesian(4160476.944, 653192.600, 4774604.455, reframe=RefFrames.ETRF89,   epoch=1989),\n                  Cartesian(4160476.952, 653192.582, 4774604.441, reframe=RefFrames.ETRF2000, epoch=2000),\n                  Cartesian(4160476.674, 653192.806, 4774604.648, reframe=RefFrames.ITRF2008, epoch=2005)):\n            t = c.toStr(prec=-6)\n            self.test(_n(c), t, t, known=True, nl=1)\n            x = c.toRefFrame(RefFrames.ITRF2014, epoch2=2018.8)\n            self.test(_n(x), x.toStr(prec=-3), X, known=True)  # see e < 1.5\n            h = trfTransform0(c.reframe, RefFrames.ITRF2014, epoch=c.epoch, epoch2=2018.8)\n            self.test('TransformXform', h.name, h.name)\n            e = x - X\n            self.test('Delta (m)', e.toStr(prec=6), '[0.01, 0.01, 0.01]', known=max(map(abs, e.xyz)) < 0.5)\n            e = e.length\n            self.test('Error (m)', e, '0.01', prec=6, known=e < 1.5)\n            r = x.epoch - c.epoch\n            self.test('Epoch range', r, '14.0', prec=3, known=13 < abs(r) < 30)\n            r = x.toRefFrame(c.reframe, epoch2=c.epoch)\n            self.test(_n(r), r.toStr(prec=-6), t, known=(r - c).length < 1)\n            h = trfTransform0(x.reframe, c.reframe, epoch=x.epoch, epoch2=c.epoch)\n            self.test('TransformXform', h.name, h.name)\n\n            t = h.inverse()\n            self.test('inverse', t.name, datums._negastr(h.name), nl=1)\n            t = t.inverse()\n            self.test('inverse', t.name, h.name)\n            self.test('inverse', t, h)\n\n        def _t(x, dX):\n            return '%s@%s %s %s' % (x.reframe.name, x.reframe.epoch, x.epoch, dX.toStr(prec=8))\n\n        x = RefFrames.ITRF2014.toRefFrame(X, RefFrames.ITRF2020, epoch=2018.8, epoch2=2024.31)\n        self.test('toRefFrame1', _t(x, x - X), \"ITRF2020@2015 2024.31 [0.0031474, 0.00210534, -0.00125667]\", nl=1)\n        x = RefFrames.ITRF2020.Xform('ITRF2014').toRefFrame(X, epoch=2018.8, epoch2=2024.32)\n        self.test('toRefFrame2', _t(x, X - x), \"ITRF2014@2010 2024.32 [0.0031474, 0.00210634, -0.00125867]\")  # flipped\n        T = trfTransform0('ITRF2014', RefFrames.ITRF2020)  # get Transform from reframe, no epoch or epoch2 ...\n        self.test('transform0', T.name, T.name)\n        t = repr(T.Xform)\n        self.test('transform0X', t, t)\n        x = T.toRefFrame(X)\n        self.test('toRefFrame3', _t(x, x - X), \"ITRF2020@2015 2010 [0.0031474, 0.00067434, 0.00160533]\")\n        x = T.transform(X.x, X.y, X.z)\n        self.test('transform2x', x.toStr(prec=-6), '(4160476.488147, 653193.021674, 4774604.781605)')\n        v = T.velocities()\n        self.test('transform2v', v.toStr(prec=-3), '(0.004, 0.003, 0.004)', known=True)\n\n        def _t4(c, x, p, X=None):\n            x = Vector3d(x)\n            e = c - x\n            d = max(map(abs, e.xyz))\n            X = (', epoched %s' % (fstr(X.epoched, prec=3),)) if X else ''\n            return c.toStr(prec=p), x.toStr(prec=p), d, '%s max %.4g%s' % (e.toStr(prec=9), d, X)\n\n        # Alamimi, Z. Example 1 <http://ETRS89.ENSG.IGN.FR/pub/EUREF-TN-1-Jan-31-2024.pdf>\n        f, v, r1 =        (4027893.6750, 307045.9069, 4919475.1721), (-0.01361,  0.01686,  0.01024), 'ITRF2020'\n        for t, w, r2 in (((4027893.9585, 307045.5550, 4919474.9619), ( 0.00011,  0.00011,  0.00024), 'ETRF2020'),\n                         ((4027893.6719, 307045.9064, 4919475.1704), (-0.01361,  0.01676,  0.01044), 'ITRF2014'),\n                         ((4027893.9620, 307045.5480, 4919474.9553), ( 0.00020, -0.00030,  0.00020), 'ETRF2014'),\n                         ((4027893.6812, 307045.9082, 4919475.1547), (-0.01307,  0.01690,  0.00908), 'ITRF2000'),\n                         ((4027894.0053, 307045.5939, 4919474.9083), (-0.00020, -0.00050, -0.00036), 'ETRF2000')):\n            T = trfTransform0(r1, r2, epoch=2010)\n            x = T.toStr(prec=9)\n            self.test('transform0', x, x, nl=1)\n            c, v = T.transform2(*(f + v), Vector=Vector3d)\n            c, x, d, e = _t4(c, t, -4, T.Xform)\n            self.test('transform2c', c, x, known=d < 1.e-4)\n            self.test('    Error2c', e, e)\n            v, x, d, e = _t4(v, w, -5)\n            self.test('transform2v', v, x, known=d < 1.0 or d > 100.0)\n            self.test('    Error2v', e, e)\n            v = T.velocities(Vector=Vector3d)\n            v, x, d, e = _t4(v, w, -5)\n            self.test('transform0v', v, x, known=d < 1.0)\n            self.test('    Error0v', e, e)\n            f, r1, v = t, r2, w\n\n        f,    r1 = (4027893.9620, 307045.5480, 4919474.9553,    0.00020, -0.00030,  0.00020), 'ETRF2014'\n        t, w, r2 = (4027893.6812, 307045.9082, 4919475.1547), (-0.01307,  0.01690,  0.00908), 'ITRF2000'\n        for i, T in enumerate(trfTransforms(r1, r2, epoch=2010)):\n            n = 'transform' + str(i)\n            x = T.toStr(prec=9)\n            self.test(n + '/', x, x, nl=1)\n            c, v = T.transform2(*f, Vector=Vector3d)\n            c, x, d, e = _t4(c, t, -4, T.Xform)\n            self.test('transform2c', c, x, known=d < 0.2)\n            self.test('    Error2c', e, e)\n            v, x, d, e = _t4(v, w, -5)\n            self.test('transform2v', v, x, known=d < 1.0 or d > 100.0)\n            self.test('    Error2v', e, e)\n\n        # Alamimi, Z. Example 2 <http://ETRS89.ENSG.IGN.FR/pub/EUREF-TN-1-Jan-31-2024.pdf>\n        f, r1 =        (4027893.5389, 307046.0755, 4919475.2745), 'ITRF2020'\n        for t, r2 in (((4027893.9574, 307045.5561, 4919474.9643), 'ETRF2020'),\n                      ((4027893.5358, 307046.0740, 4919475.2748), 'ITRF2014'),\n                      ((4027893.9639, 307045.5450, 4919474.9573), 'ETRF2014'),\n                      ((4027893.5505, 307046.0772, 4919475.2456), 'ITRF2000'),\n                      ((4027894.0033, 307045.5889, 4919474.9047), 'ETRF2000')):\n            T = trfTransform0(r1, r2, epoch=2020)\n            x = T.toStr(prec=9)\n            self.test('transform0', x, x, nl=1)\n            c, v = T.transform2(*f, Vector=Vector3d)\n            c, x, d, e = _t4(c, t, -4, T.Xform)\n            self.test('transform2c', c, x, known=d < 1.e-4)\n            self.test('    Error2c', e, e)\n            v = v.toStr(prec=-5)\n            self.test('transform2v', v, v)\n            f, r1 = t, r2\n\n        # courtesy GGaessler <https://GitHub.com/mrJean1/PyGeodesy/issues/80>\n        t, w = (4160476.485, 653193.021, 4774604.780), (0.004, 0.003, 0.004)\n        for f, r1, e in (((4160476.944, 653192.600, 4774604.455), 'ETRF89',   1989),\n                         ((4160476.952, 653192.582, 4774604.441), 'ETRF2000', 2000),\n                         ((4160476.674, 653192.806, 4774604.648), 'ETRF2008', 2005)):\n            for i, T in enumerate(trfTransforms(r1, 'ITRF2014', epoch=e, epoch2=2018.8)):\n                n = 'transform' + str(i)\n                x = T.toStr(prec=9)\n                self.test(n + '*', x, x, nl=1)\n                c, v = T.transform2(*(f + w), Vector=Vector3d)\n                c, x, d, e = _t4(c, t, -4, T.Xform)\n                self.test('transform2c', c, x, known=d < 0.2)\n                self.test('    Error2c', e, e)\n                v, x, d, e = _t4(v, w, -5)\n                self.test('transform2v', v, x, known=d < 0.03)\n                self.test('    Error2v', e, e)\n\n        t = str(T)\n        self.test('toTransform', t, t, nl=1)\n        t = str(T.toTransform(epoch1=T.Xform.epoch))\n        self.test('toTransform', t, t)\n\n        # courtesy GGaessler <https://GitHub.com/mrJean1/PyGeodesy/issues/80>\n        p = LatLon('48 46 36.89676N', '8 55 21.25713E', height=476.049, reframe=RefFrames.ETRF89, epoch=1989)\n        self.test('Issue80', p.toStr(form='D', prec=8), '48.77691577°N, 008.92257142°E, +476.05m', nl=1)\n        x = p.toRefFrame(RefFrames.ITRF2014, epoch2=2018.8)\n        self.test('Issue80', x.toStr(form='D', prec=8), '48.77692147°N, 008.92257868°E, +476.09m')\n        t = x.toRefFrame(RefFrames.ETRF89, epoch=1989)  # 48.7769157667°N, 008.9225714250°E, +476.049m\n        d = p.vincentysTo(t)\n        self.test('Issue80', t.toStr(prec=6), '48°46′36.915134″N, 008°55′21.285094″E, +476.10', known=d < 0.9)\n        self.test('Issue80', d, '0.01', prec=3, known=d < 0.9)\n\n        c = p.toCartesian(Cartesian=Cartesian)  # reframe=RefFrames.ETRF89, epoch=1989\n        self.test('Issue80', c.toStr(prec=6), '[4160476.944064, 653192.600457, 4774604.455385]')\n        x = c.toRefFrame(RefFrames.ITRF2014, epoch2=2018.8)\n        self.test('Issue80', x.toStr(prec=6), '[4160476.415504, 653193.057171, 4774604.903316]')\n        t = x.toRefFrame(RefFrames.ETRF89, epoch=1989)\n        self.test('Issue80', t.toStr(prec=6), '[4160476.467901, 653193.103647, 4774604.868888]')\n        p = t.toLatLon(LatLon=LatLon)  # reframe=RefFrames.ETRF89, epoch=1989\n        self.test('Issue80', p.toStr(prec=6), '48°46′36.915133″N, 008°55′21.285094″E, +476.10m')\n\n        p = LatLon('48 46 36.91314N', '8 55 21.28095E', height=476.049, reframe=RefFrames.ITRF2014, epoch=2018.8)\n        self.test('Issue80', p.toStr(form='D', prec=8), '48.77692032°N, 008.92257804°E, +476.05m', nl=1)\n        x = p.toRefFrame(RefFrames.ETRF89, epoch2=1989)\n        self.test('Issue80', x.toStr(form='D', prec=8, nl=1), '48.77691971°N, 008.92257856°E, +476.06m')\n        t = x.toRefFrame(RefFrames.ITRF2014, epoch=2018.8)   # 48.7769203167°N, 008.9225780417°E, +476.037m\n        d = p.vincentysTo(t)\n        self.test('Issue80', t.toStr(prec=4), '48°46′36.9131″N, 008°55′21.28095″E, +476.05m', known=d < 0.9)\n        self.test('Issue80', d, '0.01', prec=3, known=d < 0.9)\n\n        c = p.toCartesian(Cartesian=Cartesian)  # reframe=RefFrames.ITRF2014, epoch=2018.8\n        self.test('Issue80', c.toStr(prec=6), '[4160476.492633, 653193.021888, 4774604.78885]')\n        x = c.toRefFrame(RefFrames.ETRF89, epoch2=1989)\n        self.test('Issue80', x.toStr(prec=6), '[4160476.54503, 653193.068365, 4774604.754422]')\n        t = x.toRefFrame(RefFrames.ITRF2014, epoch=2018.8)\n        self.test('Issue80', t.toStr(prec=6), '[4160476.016469, 653193.525079, 4774605.202353]')\n        t = t.toLatLon(LatLon=LatLon)  # reframe=RefFrames.ITRF2014, epoch=2018.8\n        self.test('Issue80', t.toStr(prec=4), '48°46′36.9315″N, 008°55′21.3089″E, +476.10m')\n\n        # <https://Geodesy.NOAA.gov/TOOLS/Htdp/Using_HTDP.pdf> equations (5)-(11)\n        X = trfXform('ITRF96', 'NAD83')\n        self.test(X.name, X.toRepr(), repr(RefFrames.ITRF96.Xform('NAD83')), nl=1)\n        h = X.toHelmert()\n        self.test(X.name, h, \"name='ITRF96@1997xNAD83', tx=0.991, ty=-0.19072, tz=-0.5129, s1=1.0,\"\n                                                      \" rx=1.2503e-07, ry=4.6785e-08, rz=5.6529e-08, s=0.0,\"\n                                                      \" sx=0.02579, sy=0.00965, sz=0.01166\")\n        t = X.toTransform(2007)  # to show the 10-year deltas for rx, ry and rz\n        self.test(X.name, t, \"name='ITRF96@1997xNAD83@2007', tx=0.991, ty=-0.19072, tz=-0.5129, s1=1.0,\"\n                                                           \" rx=1.2761e-07, ry=1.0797e-08, rz=5.4997e-08, s=0.0,\"\n                                                           \" sx=0.026322, sy=0.002227, sz=0.011344\")\n\n        def _d(h, t):\n            return '%.5g' % ((h - t) * 0.1)  # per year, see (8)-(10)\n\n        t = 'rx=%s, ry=%s, rz=%s' % (_d(h.rx, t.rx), _d(h.ry, t.ry), _d(h.rz, t.rz))\n        self.test(X.name, t, \"rx=-2.5792e-10, ry=3.5988e-09, rz=1.532e-10\")\n\n    def testEpoch(self):\n\n        try:  # coverage\n            e = date2epoch(None, 1, 2)\n            self.test('epoch', e, TRFError.__name__, nl=1)\n        except TRFError as x:\n            t = str(x)\n            self.test('TRFError', t, t, nl=1)\n\n        r = RefFrames.GDA94\n        t = r.toStr()\n        self.test('toStr', t, \"name='GDA94', epoch=1994, datum=Datums.GRS80\")\n        self.test('str', str(r),t)\n        t = r.toRepr()\n        self.test('toStr2', t, \"RefFrame(name='GDA94', epoch=1994, datum=Datums.GRS80)\")\n        self.test('repr', repr(r), t, nt=1)\n\n        for y, m, d, x in ((2020,  1,  1, 2020.003),\n                           (2020,  4,  1, 2020.251),\n                           (2020,  7,  1, 2020.5),\n                           (2020, 10,  1, 2020.751),\n                           (2020, 12, 31, 2021.0)):\n            e = date2epoch(y, m, d)\n            self.test('epoch', e, x, fmt='%.3f')\n            t = epoch2date(e)\n            self.test('y-m-d', t, (y, m, d), known=t[0] == 2021)\n\n        e = Epoch(Epoch=2020.)\n        self.test(e.toRepr() + '.std_repr', e.std_repr, False, nl=1)\n        d = m = 0\n        for n in (0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31):\n            m += 1\n            d += n\n            e = 2020.001 + d / 366.0\n            self.test(Epoch(Epoch=e).toRepr(), epoch2date(e), (2020, m, 1), known=m == 13)\n\n\nif __name__ == '__main__':\n\n    from pygeodesy import ellipsoidalExact, ellipsoidalKarney, \\\n                          ellipsoidalNvector, ellipsoidalVincenty, trf\n\n    t = Tests(__file__, __version__, trf)\n    t.testTrf(ellipsoidalNvector)\n    t.testTrf(ellipsoidalVincenty)\n    t.testTrf(ellipsoidalKarney)\n    t.testTrf(ellipsoidalExact)\n\n    if GeodSolve:\n        from pygeodesy import ellipsoidalGeodSolve\n        t.testTrf(ellipsoidalGeodSolve)\n\n    t.testEpoch()\n    t.results()\n    t.exit()\n"
  },
  {
    "path": "test/testTriaxials.py",
    "content": "\n# -*- coding: utf-8 -*-\n\n# Test L{triaxials} module.\n# make sure int/int division yields float quotient, see .basics\nfrom __future__ import division as _; del _  # noqa: E702 ;\n\n__all__ = ('Tests',)\n__version__ = '26.03.12'\n\nfrom bases import Geod3Solve, numpy, random, startswith, TestsBase\n\nfrom pygeodesy import EPS4, F_DEG_, F_DMS, PI_2, PI_4, \\\n                      ConformalSphere, Conformal, Degrees, Ellipsoids, \\\n                      fstr, LLK, Los, map1, map2, signBit, sincos2d_, \\\n                      Triaxial, Triaxial_, Triaxials, Triaxial3s, \\\n                      triaxum5, Vector3d\nfrom math import fabs, radians\n\n\ndef _r(s):\n    r = random()\n    if r < 0.05:\n        r = 0\n    elif r > 0.5:\n        r = -r\n    return r * s\n\n# <https://www.ResearchGate.net/profile/Maxim-Nyrtsov/publication/299693481/links/57ee6b2308ae8da3ce499cfc/\n#  Jacobi-Conformal-Projection-of-the-Triaxial-Ellipsoid-New-Projection-for-Mapping-of-Small-Celestial-Bodies.pdf>\n\n\nclass Tests(TestsBase):\n\n    def testAreas(self):\n        for t in Triaxials.values(all=True, asorted=True):\n            s = str(t)\n            self.test(t.name, s, s, nl=1)\n            n = t.name + '.'\n            self.test(n+'area    ', t.area, t.area)\n            a = str(t.areaKT())\n            self.test(n+'areaKT  ', a, a)\n            a = t.areaRG\n            self.test(n+'areaRG  ', a, a)\n            if t.isOrdered:\n                self.test(n+'area21k ', t.area21k, a, known=fabs(t.area21k - a) < 1)\n            e = t.ellipse5(45)\n            s = repr(e)\n            self.test(n+'ellipse5', s, s)\n            s = str(e.toTriaxial_())\n            self.test(n+'toTriaxial_', s, s)\n            s = str(e.toTriaxial())\n            self.test(n+'toTriaxial ', s, s)\n\n    def testHartzell(self, module, LatLon):\n        self.subtitle(module, 'Hartzell')\n\n        T = Triaxial(6378388, 6378318, 6356911.9461, name='Test')  # a - b = 70\n        n = T.hartzell4.__name__\n        U = Triaxial_(T.c, T.a, T.b, name='Un')\n\n        p = Vector3d(10.1e6, 10.2e6, 10.3e6)  # 10+ km\n        v = Vector3d(-0.7274, -0.3637, -0.5819)\n        t = T.hartzell4(p, v)\n        self.test(n, t.toStr(prec=6), '(884268.349816, 5592134.174908, 2927668.068131, 12669388.912805)')\n        self.test(n, T.sideOf(t), 0)\n        t = T.hartzell4(p)\n        self.test(n, t.toStr(prec=6), '(3642143.609933, 3678204.437754, 3714265.265575, 11296443.179278)')\n        self.test(n, T.sideOf(t), 0)\n\n        t = U.hartzell4(p, v)\n        self.test(n, t.toStr(prec=6), '(888679.181482, 5594339.590741, 2931196.612187, 12663325.092381)', nl=1)\n        self.test(n, U.sideOf(t), 0)\n        t = U.hartzell4(p)\n        self.test(n, t.toStr(prec=6), '(3642304.092727, 3678366.509487, 3714428.926247, 11296162.453809)')\n        self.test(n, U.sideOf(t, eps=EPS4), 0)\n\n        T = Ellipsoids.WGS84.toTriaxial()\n        t = T.hartzell4(p, v)\n        self.test(n, t.toStr(prec=6), '(884080.396945, 5592040.198472, 2927517.711001, 12669647.302276)', nl=1)\n        self.test(n, T.sideOf(t), 0)\n        t = T.hartzell4(p)\n        self.test(n, t.toStr(prec=6), '(3642031.283571, 3678090.99925, 3714150.714929, 11296639.666827)')\n        self.test(n, T.sideOf(t), 0)\n\n        p = LatLon(30, 60, height=100e3)\n        n = p.hartzell.__name__\n        t = p.hartzell(Los(45, -45))\n        self.test(n, t.toStr(prec=3), '30°38′27.119″N, 060°44′36.777″E, +142549.69m', nl=1)\n        self.test(n, t.toStr(form=F_DEG_), '30.640866, 060.743549, +142549.69m')\n        c = p.toCartesian()\n        self.test(n, c.toStr(prec=3), '[2807429.59, 4862610.688, 3220373.735]')\n        t = c.hartzell(Los(45, -45))\n        self.test(n, t.toStr(prec=3), '[2684238.298, 4791786.806, 3231700.636]')\n        t = (t - c).length\n        self.test(n, t, '142549.6943849337', known=int(t)==142549)\n\n        t = p.hartzell(los=True)\n        self.test(n, t.toStr(prec=3), '30°00′00.0″N, 060°00′00.0″E, +100000.00m', nl=1)\n        self.test(n, t.toStr(form=F_DEG_), '30.0, 060.0, +100000.00m')\n        c = p.toCartesian()\n        self.test(n, c.toStr(prec=3), '[2807429.59, 4862610.688, 3220373.735]')\n        t = c.hartzell(los=True)\n        self.test(n, t.toStr(prec=3), '[2764128.32, 4787610.688, 3170373.735]')\n        t = (t - c).length\n        self.test(n, t, '100000.0', known=abs(t - 100000.0) < 1e-6)\n\n    def testConformal(self, module):\n        self.subtitle(module, Conformal.__name__)\n\n        n = Conformal.__name__\n        # <https://GeographicLib.SourceForge.io/1.52/jacobi.html>\n        J = Conformal(6378137+35, 6378137-35, 6356752, name='Test')\n        self.test(n, repr(J), \"%s(name='Test', a=6378172, b=6378102, c=6356752, e2ab=\" % (n,), known=startswith)\n\n        n = J.xR.__name__\n        x = J.xR(PI_2)\n        self.test(n, x, '1.572092804', known=round(x, 7) == 1.5720928)\n\n        n = J.yR.__name__\n        y = J.yR(PI_2)\n        self.test(n, y, '4.246581015',  known=round(y, 7) == 4.2465810)\n\n        n = J.xyR2.__name__ + '.toDegrees'\n        p = J.xyR2(PI_2, PI_2)\n        t = p.toDegrees()\n        self.test(n, t, '(90.074283, 243.31117)', known=map2(int, t) == (90, 243))\n        t = p.toDegrees(form=F_DMS)\n        self.test(n, t, \"('90°04′27.42″N', '243°18′40.21″E')\", known=True)\n        n = J.area.name\n        a = J.area\n        self.test(n, int(a), '510065604942135', known=int(a * 1e-19) == 510)\n        n = J.area_p.__name__  # DEPRECATED, use .areaKT\n        p = J.area_p()\n        self.test(n, int(p), '510065609807745', known=int(p * 1e-19) == 510)\n        e = abs((a - p) / a)\n        self.test('error', e, '9.54e-09', fmt='%.2e')\n        n = J.volume.name\n        p = J.volume\n        self.test(n, p, '1.083207e+21', fmt='%.6e')\n\n        n = Conformal.__name__\n        J = Conformal(267.5, 147, 104.5, name='Itokawa25134')\n        self.test(n, repr(J), \"%s(name='Itokawa25134', a=267.5, b=147, c=104.5, e2ab=\" % (n,), known=startswith, nl=1)\n\n        n = J.xyR2.__name__\n        p = J.xyR2(PI_4, 0)\n        self.test(n, p, '(0.0, 0.61539)')\n\n        n = p.toDegrees.__name__\n        t = p.toDegrees()\n        self.test(n, t, '(0.0, 35.259243)', known=True)\n        t = p.toDegrees(form=F_DMS)\n        self.test(n, t, \"('00°00′00.0″N', '035°15′33.27″E')\", known=True)\n\n        n = Conformal.xyQR2.name\n        q = J.xyQR2\n        self.test(n, q, '(3.13215, 1.42547)')\n\n        n = q.toDegrees.__name__\n        t = q.toDegrees()\n        self.test(n, t, '(179.4589659, 81.673412)', known=True)\n        t = q.toDegrees(form=F_DMS)\n        self.test(n, t, \"('179°27′32.28″N', '081°40′24.28″E')\", known=True)\n\n    def testConformalSphere(self, module):\n        self.subtitle(module, ConformalSphere.__name__)\n\n        n = ConformalSphere.__name__\n        # <https://GeographicLib.SourceForge.io/1.52/jacobi.html>\n        J = ConformalSphere(6378137+35, ab=1, bc=2, name='Test')\n        self.test(n, repr(J), \"%s(name='Test', a=6378172, ab=1, bc=2, e2ab=0, \" % (n,), known=startswith)\n\n        n = J.xR.__name__\n        x = J.xR(PI_2)\n        self.test(n, x, '1.73391688526', known=round(x, 7) == 1.7339169)\n\n        n = J.yR.__name__\n        y = J.yR(PI_2)\n        self.test(n, y, '2.02895910275',  known=round(y, 7) == 2.0289591)\n\n        n = J.xyR2.__name__ + '.toDegrees'\n        p = J.xyR2(PI_2, PI_2)\n        t = p.toDegrees()\n        self.test(n, t, '(99.34612, 116.250793)', known=map2(int, t) == (99, 116))\n        t = p.toDegrees(form=F_DMS)\n        self.test(n, t, \"('99°20′46.03″N', '116°15′02.86″E')\", known=True)\n        n = J.area.name\n        a = J.area\n        self.test(n, int(a), '511213503913540', known=int(a * 1e-12) == 511)\n        n = J.area_p.__name__  # DEPRECATED\n        p = J.area_p()\n        self.test(n, int(p), '511213503913540', known=int(p * 1e-12) == 511)\n#       e = abs((a - p) / a)\n#       self.test('error', e, '0.00e+00', fmt='%.2e')\n        n = J.volume.name\n        p = J.volume\n        self.test(n, p, '1.086869e+21', fmt='%.6e')\n\n        n = ConformalSphere.__name__\n        J = ConformalSphere(267.5, 147, 104.5, name='Itokawa25134')\n        self.test(n, repr(J), \"%s(name='Itokawa25134', a=267.5, ab=147, bc=104.5, e2ab=0, \" % (n,), known=startswith, nl=1)\n\n        n = J.xyR2.__name__\n        p = J.xyR2(PI_4, 0)\n        self.test(n, p, '(0.0, 0.818354)')\n\n        n = p.toDegrees.__name__\n        t = p.toDegrees()\n        self.test(n, t, '(0.0, 46.888217)', known=True)\n        t = p.toDegrees(form=F_DMS)\n        self.test(n, t, \"('00°00′00.0″N', '046°53′17.58″E')\", known=True)\n\n        n = ConformalSphere.xyQR2.name\n        q = J.xyQR2\n        self.test(n, q, '(1.933157, 1.788429)')\n\n        n = q.toDegrees.__name__\n        t = q.toDegrees()\n        self.test(n, t, '(179.4589659, 81.673412)', known=True)\n        t = q.toDegrees(form=F_DMS)\n        self.test(n, t, \"('110°45′42.27″N', '102°28′10.04″E')\", known=True)\n\n    def testConformal3(self, module):\n        n = module.Conformal3.__name__\n        self.subtitle(module, n)\n\n        # <https://GeographicLib.SourceForge.io/C++/doc/Cart3Convert.1.html>\n        T = TX = module.Conformal3(Triaxials.WGS84_3)\n        self.test(n, T, \"name='WGS84_3', a=6378171.36, b=6378101.6\", known=startswith)  # b=6378101.609999999, c=6356751.84, ...\n\n        n = T.forwardBetOmg.__name__\n        t = T.forwardBetOmg(33.3, 44.4, M=True, unit=Degrees)\n        self.test(n, t.toStr(prec=5), \"(-5077726.43188, 3922574.86203, 0, 1.19703, 'CONFORMAL')\")  # Conformal3Proj\n        n = T.reverseBetOmg.__name__\n        t = T.reverseBetOmg(t.x, t.y, M=True)\n        self.test(n, t.toDegrees(), \"(Degrees(33.3), Degrees(44.4), None, 1.197032\", known=startswith)  # Conformal3Proj\n\n#       n = T.forwardSphere3.__name__\n#       t, d, _ = T.forwardSphere3(33.3, 44.4, M=True, unit=Degrees)\n#       self.test(n, t, \"(-5077726.431881, 3922574.862033, 0, 1.1970322930911, 'CONFORMAL')\", known=TBD)  # Conformal3Proj\n#       n = T.reverseSphere.__name__\n#       t = T.reverseSphere(t, dir3d=d, M=True)\n#       self.test(n, t.toDegrees(), \"(Degrees(33.3), Degrees(44.4), None, 1.197032\", known=startswith)  # Conformal3Proj\n\n        n = module.Conformal3.__name__\n        T = module.Conformal3(Triaxials.WGS84_3r)  # rounded\n        self.test(n, T, \"name='WGS84_3r', a=6378172, b=6378102, c=6356752, \", known=startswith, nl=1)\n        n = T.forwardBetOmg.__name__\n        t = T.forwardBetOmg(Degrees(33.3), Degrees(44.4), M=True)\n        self.test(n, t.toStr(prec=3), '(-5077732.396, 3922571.859, ', known=startswith)  # Conformal3Proj\n        n = T.reverseBetOmg.__name__\n        t = T.reverseBetOmg(t.x, t.y, M=True)\n        self.test(n, t.toDegrees(), \"(Degrees(33.3), Degrees(44.4), None, 1.197034, 'CONFORMAL')\")\n\n        n = T.forwardOther.__name__\n        t = T.forwardOther(TX, 33.3, 44.4, M=True, unit=Degrees)\n        self.test(n, t.toDegrees(0, prec=6), \"(33.299887, 44.399927, 0.000263, 1.000046, 'CONFORMAL')\")  # Conformal3Proj -tx\n        n = T.reverseOther.__name__\n        t = T.reverseOther(TX, t.bet, t.omg, M=True)\n        self.test(n, t.toDegrees(0), \"(Degrees(33.3), Degrees(44.4), Degrees(0.00026262), 0.999954, 'CONFORMAL')\")  # Conformal3Proj -tx -r\n\n        n = module.Conformal3.__name__\n        c = 6378137 * (1 - 1 / (298257223563 / 1000000000))\n        T = module.Conformal3(6378172, 6378102, c, name='WGS84+/-35')\n        self.test(n, T, \"name='WGS84+/-35', a=6378172, b=6378102, c=6356752.314245179, \", known=startswith, nl=1)\n        n = T.forwardBetOmg.__name__\n        t = T.forwardBetOmg(Degrees(33.3), Degrees(44.4), M=True)\n        self.test(n, t.toStr(prec=3), '(-5077732.419, 3922572.019, 0', known=startswith)  # Conformal3Proj -t 6378172 6378102 6356752.314245179\n        n = T.reverseBetOmg.__name__\n        t = T.reverseBetOmg(t.x, t.y, M=True)\n        self.test(n, t.toDegrees(), \"(Degrees(33.3), Degrees(44.4), None, 1.197\", known=startswith)\n\n    def testGeod3Solve(self, Geodesic3Solve):\n        g3S = Geodesic3Solve()\n        n = g3S.__class__.__name__\n        self.test(n, g3S, 'Geod3Solve=', known=startswith, nl=1)\n        n = g3S.Direct.__name__\n        t = g3S.Direct(40.57193, -54.38111, 3.20824, 15347602)\n        self.test(n, t, '{a12: 137.869863, alp1: 3.20824, alp2: ', known=startswith)\n        t = t.toGeod3Solve8Tuple()\n        self.test(n, t, '(40.57193, ', known=startswith)\n\n        n = g3S.Inverse.__name__\n        t = g3S.Inverse(40.57193, -54.38111, 1.355292, 123.419711)\n        self.test(n, t, '{a12: 137.869863, alp1: 3.20824, alp2: ', known=startswith)\n        t = t.toGeod3Solve8Tuple()\n        self.test(n, t, '(40.57193, ', known=startswith)\n\n        gl3S = g3S.Line(40.57193, -54.38111, 3.20824)\n        n = gl3S.__class__.__name__\n        self.test(n, gl3S.toStr(), \"alp1=\", known=startswith)\n        n = gl3S.Position.__name__\n        t = gl3S.Position(15347602)\n        self.test(n, t, '{a12: 137.869863, alp1: 3.20824, alp2: ', known=startswith)\n        t = t.toGeod3Solve8Tuple()\n        self.test(n, t, '(40.57193, ', known=startswith)\n\n        gl3S = g3S.InverseLine(40.57193, -54.38111, 1.355292, 123.419711)\n        n = gl3S.__class__.__name__\n        self.test(n, gl3S.toStr(), \"alp1=\", known=startswith)\n        n = gl3S.Position.__name__\n        t = gl3S.Position(15347602)\n        self.test(n, t, '{a12: 137.869863, alp1: 3.20824, alp2: ', known=startswith)\n        t = t.toGeod3Solve8Tuple()\n        self.test(n, t, '(40.57193, ', known=startswith)\n\n    def testTriaxial3(self, module):\n        n = module.Triaxial3.__name__\n        self.subtitle(module, n)\n\n#       E = Ellipsoids.WGS84  # earth as testFormy\n\n        # <https://GeographicLib.SourceForge.io/C++/doc/Cart3Convert.1.html>\n        T = module.Triaxial3(3, 2, 1)\n        self.test(n, repr(T), \"Triaxial3(name='', a=3, b=2, c=1, k2=0.375, kp2=0.625\", known=startswith)\n\n        n = T.reverseLatLon.__name__\n        t = T.reverseLatLon(1, 2, 3)\n        self.test(n, t.toDegrees(0), \"(Degrees(58.69140449), Degrees(75.11263103), None, 2.586065, 'ELLIPSOIDAL')\")\n        n = T.forwardLatLon.__name__\n        t = T.forwardLatLon(t.bet, t.omg, h=t.h)\n        self.test(n, t, \"(1.0, 2.0, 3.0, 2.586065, 'ELLIPSOIDAL')\")\n\n        # <https://GeographicLib.SourceForge.io/C++/doc/Cart3Convert.1.html>\n#       T = module.Triaxial3(3, 2, 1)\n#       self.test(n, repr(T), \"Triaxial3(name='', a=3, b=2, c=1, k2=0.375, kp2=0.625, \", known=startswith, nl=1)\n        for llk, x in ((LLK.ELLIPSOIDAL,   \"(58.691404, 75.112631, None, 2.586065, \"),  # Cart3Convert\n                       (LLK.GEOCENTRIC,    \"(29.12663, 56.916602, None, 2.391078, \"),  # Cart3Convert\n                       (LLK.GEOCENTRIC_X,  \"(28.478775, 123.624552, None, 2.391078, \"),  # Cart3Convert\n                       (LLK.GEODETIC,      \"(68.626017, 73.851827, None, 2.391078, \"),  # Cart3Convert\n# not WGS_3.           (LLK.GEODETIC_LON0, \"(68.626017, 58.921827, None, 2.391078, \"),  # Cart3Convert\n                       (LLK.GEODETIC_X,    \"(5.817652, 159.397221, None, 2.391078, \"),  # Cart3Convert\n                       (LLK.PARAMETRIC,    \"(50.658091, 66.523762, None, 2.391078, \"),  # Cart3Convert\n                       (LLK.PARAMETRIC_X,  \"(14.628136, 143.06191, None, 2.391078, \")):  # Cart3Convert\n            n = str(llk)\n            t = T.reverseLatLon(1, 2, 3, llk=llk)\n            self.test(n, t.toDegrees(0, fmt=F_DEG_), x, known=startswith, nl=1)\n            t = T.forwardLatLon(t.bet, t.omg, height=t.h) if llk in LLK._NOIDAL else \\\n                T.forwardLatLon(t.phi, t.lam, height=t.h, llk=llk)\n            self.test(n, t, \"(1.0, 2.0, 3.0, 2.\", known=startswith)\n\n        n = module.Triaxial3.__name__\n        # <http://OJS.BBWPublisher.com/index.php/JWA/article/view/74>  # Bektas\n        T = module.Triaxial3(6378388, 6378318, 6356911.9461, name='Bektas')  # a - b = 70\n        self.test(n, repr(T), \"Triaxial3(name='Bektas', a=6378388, b=6378318, c=6356911.9461, k2=\", known=startswith, nl=1)\n\n        n = T.forwardBetaOmega.__name__\n        q = T.forwardBetaOmega(30, 40, 1200, unit=Degrees)\n        self.test(n, q, \"(4234607.381429, 3551286.590486, 3176009.080037, 1200.0, 'ELLIPSOIDAL')\")\n        v = Vector3d(q.xyz3)\n        p = T.forwardBetaOmega(radians(30), radians(40))\n        self.test(n, p, \"(4233813.533025, 3550620.827453, 3175409.655093, 0, 'ELLIPSOIDAL')\")  # C++\n        d = v.minus_(*p[:3]).length\n        self.test('length', d, '1196.973671', known=abs(d - 1200) < 5, prec=6)\n        n = T.reverseBetaOmega.__name__\n        t = T.reverseBetaOmega(4234607.381429, 3551286.590486, 3176009.080037)\n        self.test(n, t.toDegrees(0), \"(Degrees(30.0), Degrees(40.0), None, 1200.0, 'ELLIPSOIDAL')\")\n        t = T.reverseBetaOmega(4233813.533025, 3550620.827453, 3175409.655093)\n        self.test(n, t.toDegrees(0), \"(Degrees(30.0), Degrees(40.0), None, 0.0, 'ELLIPSOIDAL')\")  # C++\n\n        n = T.forwardCartesian.__name__\n        t = T.forwardCartesian(q, normal=True)\n        self.test(n, t, \"(4233813.533151, 3550620.827558, 3175409.654809, 1196.973671, 'ELLIPSOIDAL')\", known=abs(t.h - 1200) < 5, nl=1)\n        f = T.forwardCartesian(q, normal=False)\n        self.test(n, f, \"(4239665.951888, 3553574.566129, 3164352.410834, 12911.309173, 'ELLIPSOIDAL')\", known=abs(t.h - 1200) < 100)\n\n        n = T.reverseCartesian.__name__\n        t = T.reverseCartesian(t, height=t.h)  # normal=True\n        self.test(n, t, \"(4234607.381429, 3551286.590486, 3176009.080037, \", known=startswith, nl=1)  # == q above\n        f = T.reverseCartesian(f, height=f.h, normal=False)  # off by 0.27%\n        d = v.minus_(f[:3]).length * 100 / v.length\n        self.test(n, f, q, known=abs(d) < 0.5)\n\n        n = T.forwardBetaOmega_.__name__\n        p = T.forwardBetaOmega_(*sincos2d_(30, 40))  # h=0\n        self.test(n, p, \"(4233813.533025, 3550620.827453, 3175409.655093, 0, 'ELLIPSOIDAL')\", nl=1)\n        n = T.reverseLatLon.__name__\n        q = T.reverseLatLon(p)\n        self.test(n, q.toDegrees(0), \"(Degrees(30.0), Degrees(40.0), None, \", known=startswith)\n        n = T.forwardLatLon.__name__\n        q = T.forwardLatLon(q.bet, q.omg)\n        self.test(n, q, p)\n\n        n = T.reverseBetaOmega.__name__\n        p = T.reverseBetaOmega(4235882.4602, 3554249.4108, 3171030.2321)  # Ex-2 p 82 T 2\n        self.test(n, p.toDegrees(0), \"(Degrees(29.94812666), Degrees(40.01497072), None, 1203.037176, 'ELLIPSOIDAL')\", nl=1)  # (30, 40, 12000)\n        t = p.toDegrees(0, fmt=F_DMS)  # sep=_COMMASPACE_\n        self.test(n, t, \"(29°56′53.26″, 40°00′53.89″, None, 1203.0\", known=startswith)\n        p = T.reverseBetaOmega(4233721.2616, 3554717.2818, 3173743.2226)  # Ex-2 p 82 T 2\n        self.test(n, p.toDegrees(0), \"(Degrees(29.97539672), Degrees(40.03311872), None, 1387.637345, 'ELLIPSOIDAL')\")\n#       self.test(n, p.toRadians(0), \"(Radians(0.52316937),  Radians(0.69870973),  None, 1387.637345, 'ELLIPSOIDAL')\")\n        t = p.toDegrees(0, fmt=F_DMS)  # sep=_COMMASPACE_\n        self.test(n, t, \"(29°58′31.43″, 40°01′59.23″, None, 1387.6\", known=startswith)  # (30°01′38.2729″, 40°01′05.2057″)\n\n        n = T.height4.__name__\n        t = T.height4(3909863.9271, 3909778.123, 3170932.5016)  # Bektas\n        self.test(n, t, '(3909251.554667, 3909165.750567, 3170432.501602, 999.999996)', nl=1)\n        ct = T.forwardCartesian(t, normal=True)\n        self.test(n, ct, '(3909251.554667, 3909165.750567, 3170432.501602, 0, None)')\n        ct = T.forwardCartesian(t, normal=False)\n        self.test(n, ct, '(3909251.554667, 3909165.750567, 3170432.501602, 0, None)')  # XXX\n\n        n = 'JFK-SIN'\n        # <https://GeographicLib.SourceForge.io/C++/doc/Geod3Solve.1.html>\n        # echo 40:38:23N 073:46:44W-19.43W X 01:21:33N 103:59:22E-19.43W | \\  # note 19.43W\n        # tr X '\\n' | Cart3Convert -G | Cart3Convert -E -r | tr '\\n' ' ' | Geod3Solve -i -: -p 0\n        # 003:12:29.7 177:28:59.5 15347602 == 3.20824 177.48319 15347602\n        T = Triaxial3s.WGS84_35  # module.Triaxial3(Triaxials.WGS84_35)  # a - b = 70\n        self.test(n, repr(T), \"Triaxial3(name='WGS84_35', a=6378172, b=6378102, c=6356752.314245179, \", known=startswith, nl=1)\n        d = Degrees('73 46 44W') - Degrees('19.43W')  # XXX T.lon0?\n        self.test(n, d, '-54.34', prec=5, known=startswith)\n        f = T.forwardLatLon(Degrees('40 38 23N'), Degrees(d), llk=LLK.GEODETIC)\n        self.test(n, f, \"(2824949.36608, -3938333.736799, 4132149.896611, 0, 'GEODETIC')\")  # 2824949.425 -3938333.819 4132149.574\n        r = T.reverseLatLon(f)\n        self.test(n, r.toDegrees(0, fmt=F_DMS), \"(40°38′23.0″, 54°20′56.0″, None, 0\", known=startswith)  # 0.0, 'ELLIPSOIDAL')\")\n        t = T.reverseLatLon(f, llk=LLK.ELLIPSOIDAL)\n        self.test(n, t.toDegrees(0), \"(Degrees(40.57193395), Degrees(-54.38110954), None, 0\", known=startswith)  # 0.0, 'ELLIPSOIDAL')\")  # 40.57193215 -54.38110906\n\n        d = Degrees('103 59 22E') - Degrees('19.43W')  # XXX T.lon0?\n        self.test(n, d, '123.4', prec=2, known=startswith, nl=1)\n        f = T.forwardLatLon(Degrees('1 21 33N'), Degrees(d), llk=LLK.GEODETIC)\n        self.test(n, f, \"(-3511912.82574, 5322047.492059, 150275.382099, 0, 'GEODETIC')\")  # -3511912.826 5322047.492 150275.367\n        r = T.reverseLatLon(f)  # llk=LLK.GEODETIC)\n        self.test(n, r.toDegrees(0, fmt=F_DMS), \"(1°21′33.0″, 123°25′10.0″, None, \", known=startswith)\n        t = T.reverseLatLon(f, llk=LLK.ELLIPSOIDAL)\n        self.test(n, t.toDegrees(0, prec=6), \"(1.355287, 123.419709, None, 0\", known=startswith)  # 1.35528738 123.41970939\n\n        # echo 40:38:23N 073:46:44W-14.93W X 01:21:33N 103:59:22E-14.93W | \\  # note 14.93W\n        # tr X '\\n' | Cart3Convert -G | Cart3Convert -E -r | tr '\\n' ' ' | Geod3Solve -i -: -p 0\n        # 003:12:53.4 177:29:00.3 15347592 == 3.21482 177.48341 15347592\n        f = T.forwardLatLon(Degrees('40 38 23N'), Degrees('73 46 44W'), llk=LLK.GEODETIC_LON0)\n        self.test(n, f, \"(2507237.249613, -4147833.171672, 4132151.785141, 0, 'GEODETIC_LON0')\")  # 2507237.302 -4147833.258 4132151.463\n        r = T.reverseLatLon(f, llk=LLK.ELLIPSOIDAL)\n        self.test(n, r.toDegrees(0), \"(Degrees(40.56616585), Degrees(-58.87899203), \", known=startswith)  # 40.56616414 -58.87899158\n\n        f = T.forwardLatLon(Degrees('1 21 33N'), Degrees('103 59 22E'), llk=LLK.GEODETIC_LON0)\n        self.test(n, f, \"(-3083516.921703, 5581181.10656, 150275.496647, 0, 'GEODETIC_LON0')\")  # -3083516.922 5581181.107 150275.482\n        r = T.reverseLatLon(f, llk=LLK.ELLIPSOIDAL)\n        self.test(n, r.toDegrees(0), \"(Degrees(1.35513418), Degrees(118.9196884), \", known=startswith)  # 1.35513411 118.91968840\n\n        for n, llk in sorted(LLK.items()):\n            if llk is not LLK.CONFORMAL:\n                ct, d3 = T.random2(llk, True)\n                self.test(n, ct, ct, nl=1)\n                self.test(n, d3, d3)\n                if llk is LLK.ELLIPSOIDAL:\n                    r    = T.reverseBetOmgAlp(ct, dir3d=d3)\n                    f, d = T.forwardBetOmgAlp2(r.bet, r.omg, r.alp)\n                else:\n                    r    = T.reversePhiLamZet(ct, dir3d=d3, llk=llk)\n                    f, d = T.forwardPhiLamZet2(r.phi, r.lam, r.zet, llk=llk)\n                self.test(n, r, r)\n                self.test(n, f, ct, known=llk in (LLK.GEODETIC_LON0, LLK.PLANETOCENTRIC))\n                self.test(n, d, d3, known=True)\n                _ = T.normed2(ct, d3)  # PYCHOK coverage\n\n        self.test(T.Lon0.name, T.Lon0, -14.93, nl=1)\n        n = T.forwardLatLon.__name__\n        t = T.forwardLatLon(0, T.Lon0)  # bi- to triaxial lon\n        self.test(n, t, \"(6162853.284268, -1643246.23441, 0.0, 0, 'ELLIPSOIDAL')\")\n        n = T.reverseLatLon.__name__\n        t = T.reverseLatLon(t)\n        self.test(n, t.toDegrees(0), \"(Degrees(0.0), Degrees(-14.93), None, \", known=startswith)\n        t = t.omg - T.Lon0\n        self.test(n, t.degrees0, 0, known=abs(t.degrees0) < 1e-13)  # tri- to biaxial lon\n\n    def testTriaxial5(self, module):\n        n = Triaxial.__name__\n        self.subtitle(module, n)\n\n        E = Ellipsoids.WGS84  # earth as testFormy\n\n        # <http://OJS.BBWPublisher.com/index.php/JWA/article/view/74>  # Bektas\n        T = Triaxial(6378388, 6378318, 6356911.9461, name='Test')  # a - b = 70\n        self.test(n, repr(T), \"Triaxial(name='Test', a=6378388, b=6378318, c=6356911.9461, e2ab=\", known=startswith)\n        U = Triaxial_(T.c, T.a, T.b, name='Un')\n        self.test(n, repr(U), \"Triaxial_(name='Un', a=6356911.9461, b=6378388, c=6378318, e2ab=\", known=startswith)\n\n#       e = EPS4\n#       for a in range(91):\n#           for b in range(91):\n#               sa, ca, sb, cb = sincos2d_(a, b)\n#               sU = U.sideOf(*U._radialTo3(sa, ca, sb, cb))\n#               sT = T.sideOf(*T._radialTo3(sa, ca, sb, cb))\n#               s = abs(sU - sT)\n#               if s > e:\n#                   self.test('sU-sT%r' % ((a, b),), s, s)\n#                   e = s\n\n        n = T.forwardBetaOmega.__name__\n        q = T.forwardBetaOmega(radians(30), radians(40), 1200)\n        self.test(n, q, '(4234607.381429, 3551286.590486, 3176009.080037)', nl=1)\n        v = Vector3d(q.xyz3)\n        p = T.forwardBetaOmega(radians(30), radians(40))\n        self.test(n, p, '(4233813.533025, 3550620.827453, 3175409.655093)')\n        d = v.minus_(*p[:3]).length\n        self.test('length', d, '1196.973671', known=abs(d - 1200) < 5, prec=6)\n\n        n = T.forwardCartesian.__name__\n        t = T.forwardCartesian(q, normal=True)\n        self.test(n, t, '(4233813.533151, 3550620.827558, 3175409.654809, 1196.973671)', known=abs(t.h - 1200) < 5, nl=1)\n        f = T.forwardCartesian(q, normal=False)\n        self.test(n, f, '(4239665.951888, 3553574.566129, 3164352.410834, 12911.309173)', known=abs(t.h - 1200) < 100)\n\n        n = T.reverseCartesian.__name__\n        t = T.reverseCartesian(*t)  # normal=True\n        self.test(n, t, q, nl=1)  # q above\n        f = T.reverseCartesian(*f, normal=False)  # off by 0.27%\n        d = v.minus_(f[:3]).length * 100 / v.length\n        self.test(n, f, q, known=abs(d) < 0.5)\n\n        n = T.forwardBetaOmega_.__name__\n        p = T.forwardBetaOmega_(*sincos2d_(30, 40))  # h=0\n        self.test(n, p, '(4233813.533025, 3550620.827453, 3175409.655093)', nl=1)\n\n        n = T.reverseLatLon.__name__\n        q = T.reverseLatLon(p)\n        self.test(n, q, '(30.051881, 39.984967, 0.0)', nl=1)\n        n = T.forwardLatLon.__name__\n        q = T.forwardLatLon(*q)\n        self.test(n, q, p)\n\n        n = T.reverseBetaOmega.__name__\n        p = T.reverseBetaOmega(4235882.4602, 3554249.4108, 3171030.2321)  # Ex-2 p 82 T 2\n\n        self.test(n, p, '(0.520687, 0.698121, 12892.55755)', nl=1)  # (30, 40, 12000)\n        p = T.reverseBetaOmega(4233721.2616, 3554717.2818, 3173743.2226)  # Ex-2 p 82 T 2\n        self.test(n, p, '(0.521162, 0.698437, 12918.032538)')  # (30°01′38.2729″, 40°01′05.2057″, 1384.1361)\n        n = p.toDegrees.__name__\n        d = p.toDegrees()\n        self.test(n, d, '(29.860398, 40.017494, 12918.032538)', known=True)\n        d = p.toDegrees(form=F_DMS)\n        self.test(n, d, \"('29°51′37.43″', '40°01′02.98″', 12918.032538)\", known=True)  # (30°01′38.2729″, 40°01′05.2057″)\n\n        n = T.height4.__name__\n        t = T.height4(3909863.9271, 3909778.123, 3170932.5016)  # Bektas\n        self.test(n, t, '(3909251.554667, 3909165.750567, 3170432.501602, 999.999996)', nl=1)\n\n        T = Triaxial(3, 2, 1)  # Eberly\n        p = T.height4(2, 4, 3)\n        self.test(n, p.toStr(prec=6), '(1.206423, 1.61288, 0.433517, 3.593736)', nl=1)\n        self.test(n, p.iteration, p.iteration)\n        self.test(n, T.sideOf(p), 0)\n        p = T.height4(-2, -4, -3)\n        self.test(n, p.toStr(prec=6), '(-1.206423, -1.61288, -0.433517, 3.593736)')\n        p = T.height4(0, 4, 3)\n        self.test(n, p.toStr(prec=6), '(0.0, 1.746769, 0.487031, 3.375213)')\n        p = T.height4(2, 0, 3)\n        self.test(n, p.toStr(prec=6), '(1.563196, 0.0, 0.853517, 2.190477)')\n        p = T.height4(2, 4, 0)\n        self.test(n, p.toStr(prec=6), '(1.297504, 1.803267, 0.0, 2.306326)', nt=1)\n\n        b = signBit.__name__\n        for x in (-2, 0, 2):\n            for y in (-4, 0, 4):\n                for z in (-3, 0, 3):\n                    p = T.height4(x, y, z)\n                    s = '%s %s' % (str(p), p.iteration)\n                    xyz = str((x, y, z))\n                    self.test(n + xyz, s, s)  # decoration\n                    self.test(b + xyz, map1(signBit, p.x, p.y, p.z),\n                                       map1(signBit,   x,   y,   z), nt=1)\n\n        a, b, c = 6, 5, 4\n        t  = T.height4(a, b, c)\n        t += t.iteration,\n        x, y, z, d, i = t\n        f  = module._plumbTo5\n        n  = f.__name__\n        s  = f(a, b, c, T)  # ordered\n        self.test(f.__name__, fstr(t, prec=3, ints=True), fstr(s, prec=3, ints=True))\n        u  = f(a, c, b, Triaxial_(T.a, T.c, T.b))\n        s  = x, z, y, d, i\n        self.test(n, fstr(u, prec=3, ints=True), fstr(s, prec=3, ints=True))\n        u  = f(b, a, c, Triaxial_(T.b, T.a, T.c))\n        s  = y, x, z, d, i\n        self.test(n, fstr(u, prec=3, ints=True), fstr(s, prec=3, ints=True))\n        u  = f(b, c, a, Triaxial_(T.b, T.c, T.a))\n        s  = y, z, x, d, i\n        self.test(n, fstr(u, prec=3, ints=True), fstr(s, prec=3, ints=True))\n        u  = f(c, a, b, Triaxial_(T.c, T.a, T.b))\n        s  = z, x, y, d, i\n        self.test(n, fstr(u, prec=3, ints=True), fstr(s, prec=3, ints=True))\n        u  = f(c, b, a, Triaxial_(T.c, T.b, T.a))\n        s  = z, y, x, d, i\n        self.test(n, fstr(u, prec=3, ints=True), fstr(s, prec=3, ints=True), nt=1)\n\n#       n = U.height4.__name__\n        x, y, z, _s = U.a * 2, U.b * 2, U.c * 2, signBit\n        for _ in range(256):\n            xyz = _r(x), _r(y), _r(z)\n            s = n + str(xyz)\n            p = U.height4(*xyz)\n            t = '%s %s' % (str(p), p.iteration)\n            self.test(s, t, t)\n            sp   = map2(_s, p[:3])\n            sxyz = map2(_s, xyz)\n            if sp != sxyz:\n                self.test(s, sp, sxyz)\n\n#       for xyz in ((0, 0, 0), (0, 0, 1), (0, 1, 0),\n#                   (0, 1, 1), (1, 0, 0), (1, 0, 1),\n#                   (1, 1, 0), (1, 1, 1)):\n#           p = T.height4(*xyz)\n#           s = '%s %s' % (str(p), p.iteration)\n#           self.test(n + str(xyz), s, s)\n\n        U = Triaxial_(3, 2, 1)  # coverage\n        p = U.height4(2, 4, 3, normal=False)\n        self.test(n, p.toStr(prec=6), '(0.545455, 1.090909, 0.818182, 3.916483)', nl=1)  # ???\n        self.test(n, p.iteration, p.iteration)\n        self.test(n, U.sideOf(p), 0)\n\n        U = Triaxial_(2, 3, 1)  # coverage\n        p = U.height4(4, 2, 3, normal=False)\n        self.test(n, p.toStr(prec=6), '(1.090909, 0.545455, 0.818182, 3.916483)', nl=1)  # ???\n        self.test(n, p.iteration, p.iteration)\n        self.test(n, U.sideOf(p), 0)\n\n        U = Triaxial_(2, 2, 2)  # coverage\n        p = U.height4(2, 3, 4, normal=False)\n        self.test(n, p.toStr(prec=6), '(0.742781, 1.114172, 1.485563, 3.385165)', nl=1)  # ???\n        self.test(n, p.iteration, p.iteration)\n        self.test(n, U.sideOf(p), 0)\n\n        n = E.toTriaxial.__name__\n        T = E.toTriaxial()\n        t = str(T)\n        self.test(n, t, t, nl=1)\n        n = T.toEllipsoid.__name__\n        e = T.toEllipsoid(name='_')\n        t = str(e)\n        self.test(n, t, t)\n        T = Triaxial(3, 2, 2)\n        e = T.toEllipsoid()\n        t = str(e)\n        self.test(n, t, t)\n\n        self.test('Triaxials', len(Triaxials.items(all=True)), 14, nl=1)\n        for t in Triaxials.values(all=True, asorted=True):\n            self.test(t.name, t, getattr(Triaxials, t.name))\n\n    def testTriaxum5(self):\n        # <https://Jekel.me/2020/Least-Squares-Ellipsoid-Fit/>\n        ps, v = [], Vector3d(1.2, 0.2, 0.9)\n        for d in range(0, 180, 9):\n            su, cu, sv, cv = sincos2d_(d, d * 0.5)\n            ps.append(v.times_(cu * sv, su * sv, cv))\n        n = triaxum5.__name__\n        t = triaxum5(ps, useZ=True)\n        self.test(n, t, '(1.2, 0.2, 0.9, 3, ', known=startswith, nl=1)\n        t = triaxum5(ps, useZ=False)\n        self.test(n, t, '(1.244625, 0.145582, 0.0, 2, ', known=startswith)\n\n\nif __name__ == '__main__':\n\n    from pygeodesy.ellipsoidalVincenty import LatLon\n    import pygeodesy.triaxials.triaxial5 as triaxial5\n    import pygeodesy.triaxials.conformal3 as conformal3\n    import pygeodesy.triaxials.triaxial3 as triaxial3\n\n    t = Tests(__file__, __version__)\n    t.testHartzell(triaxial5, LatLon)\n    t.testConformal(triaxial5)\n    t.testConformalSphere(triaxial5)\n    t.testTriaxial5(triaxial5)\n    t.testTriaxial3(triaxial3)\n    t.testConformal3(conformal3)\n    if numpy:\n        t.testTriaxum5()\n    else:\n        t.skip(triaxum5.__name__, 2)\n    if Geod3Solve:\n        from pygeodesy.geod3solve import Geodesic3Solve\n        t.testGeod3Solve(Geodesic3Solve)\n    t.testAreas()\n    t.results()\n    t.exit()\n"
  },
  {
    "path": "test/testUnits.py",
    "content": "\n# -*- coding: utf-8 -*-\n\n# Test L{units} module.\n\n__all__ = ('Tests',)\n__version__ = '24.07.25'\n\nfrom bases import TestsBase\n\nfrom pygeodesy import Azimuth, Band, Bearing, Bearing_, Bool, \\\n                      Epoch, Epsg, FIx, Garef, Geohash, Georef, \\\n                      Int, Int_, Number_, Precision_, Lamd, Phid, \\\n                      Str, Zone, Float, units\n_NamedUnit  = units._NamedUnit\n_EasNorBase = units._EasNorBase\n\n\nclass Tests(TestsBase):\n\n    def testUnit(self, U, arg, known=False):\n        self.subtitle(units, 'ing %s%s ' % (U.__name__, (arg,)))\n\n        r = repr(arg)\n        s = str(arg)\n\n        n = U.__name__.lower()\n        u = U(arg, name=n)\n        u.units = n\n        R = '%s (%s)' % (u.name, r)\n\n        self.test('.classname', u.classname, U.__name__)\n        self.test('isinstance', isinstance(u, U), True)\n        self.test('.name', u.name, n)\n        self.test('.named', u.named, n)\n        self.test('.named2', u.named2, u.classname + ' %r' % (n,))\n        self.test('.str', str(u), s)\n        self.test('.toStr', u.toStr(), s)\n        self.test('.std_repr', u.std_repr, u.std_repr)\n        self.test('.repr', repr(u), r if u.std_repr else R)\n        self.test('.toRepr', u.toRepr(), R)\n        self.test('.units', u.units, n)\n\n        try:\n            self.test('error', U('X'), ValueError, known=known)\n        except ValueError as x:\n            self.test(n, str(x), str(x))\n        try:\n            self.test('error', U('X', name='U'), ValueError, known=known)\n        except ValueError as x:\n            self.test(n, str(x), str(x))\n        try:\n            self.test('Error', U('X', Error=TypeError), TypeError, known=known)\n        except TypeError as x:\n            self.test(n, x.__class__.__name__, TypeError.__name__)\n            x = str(x)\n            self.test(n, x, \"'X'\", known='X' in x)\n\n        u.rename('Test')\n        R = '%s (%r)' % (u.name, arg)\n\n        self.test('.named', u.named, 'Test')\n        self.test('.named2', u.named2, u.classname + ' %r' % ('Test',))\n        self.test('.str', str(u), s)\n        self.test('.toStr', u.toStr(), s)\n        self.test('.repr', repr(u), r if u.std_repr else R)\n        self.test('.toRepr', u.toRepr(), R)\n        self.test('.units', u.units, n)\n\n        for a in ('name', '_name'):  # coverage\n            self.test('.'+a, getattr(u, a), 'Test')\n        try:  # coverage\n            self.test('.str', str(u), u)\n        except AssertionError as x:\n            self.test('.str', x, x)  # PYCHOK test\n        try:  # coverage\n            self.test('.repr', repr(u), r if u.std_repr else R)\n        except AssertionError as x:\n            self.test('.repr', x, x)\n\n        delattr(u, '_name')  # coverage\n        self.test('delattr', repr(u.name), \"''\")\n\n    def testUnits(self):\n        for U in self.pygeodesy_classes_(_NamedUnit,\n                 Azimuth, Band, Bool, Bearing_, _EasNorBase, Epoch, Epsg,\n                 FIx, Garef, Geohash, Georef, Int, Int_, Number_, Precision_,\n                 Str, Lamd, Phid, Zone, _NamedUnit):\n            self.testUnit(U, 1.0)  # sample\n\n        for U in (Band, Str):\n            self.testUnit(U, 'U', known=True)\n\n        for U in (Bool,):\n            self.testUnit(U, True, known=True)\n\n        for U in (Int, Int_, Number_, Precision_, Zone):\n            self.testUnit(U, 2)\n\n        for U in (Epoch,):\n            self.testUnit(U, 1901, known=True)\n\n        self.subtitle(units)  # courtesy of JaapZee at Gmail\n        self.test(Azimuth.__name__,  Azimuth(361), 1.0, nl=1)\n\n        self.test(Bearing.__name__,  Bearing(361), 1.0, nl=1)\n        self.test(Bearing_.__name__, Bearing_(361), 0.01745, fmt='%.5f')\n\n        self.test(Lamd.__name__, Lamd(361, clip=0), 6.3, fmt='%.2f', nl=1)\n        self.test(Phid.__name__, Phid(361, clip=0), 6.3, fmt='%.2f')\n\n        self.test(FIx.__name__, FIx(1),   Int(1), known=True, nl=1)\n        self.test(FIx.__name__, FIx(1.5), Float(1.5),)\n\n        s = Str(Dash='-')\n        self.test(s.name, s, '-', nl=1)\n        self.test(s.name, s.toStr(), '-')\n        self.test(s.name, repr(s), repr('-'), nl=1)\n        self.test(s.name, s.toRepr(std=False), \"Dash ('-')\")\n        t = s('c', 'a', 'l', 'l', name='Join_d')\n        self.test(t.name, t, 'c-a-l-l', nl=1)\n        self.test(t.name, t.toStr(), 'c-a-l-l')\n        self.test(t.name, repr(t), repr('c-a-l-l'), nl=1)\n        self.test(t.name, t.toRepr(std=False), \"Join_d ('c-a-l-l')\")\n\n\nif __name__ == '__main__':\n\n    t = Tests(__file__, __version__)\n    t.testUnits()\n    t.results()\n    t.exit()\n"
  },
  {
    "path": "test/testUps.py",
    "content": "\n# -*- coding: utf-8 -*-\n\n# Test L{ups} module.\n\n__all__ = ('Tests',)\n__version__ = '23.03.27'\n\nfrom bases import endswith, TestsBase\n\nfrom pygeodesy import degDMS, F_DMS, parseUTMUPS5, RangeError, strs, \\\n                      toUps8, toUtmUps8, ups, Ups, UtmUps\n\n\nclass Tests(TestsBase):\n\n    def testUps(self, LL):\n        u = Ups(0, 'N', 448251, 5411932.0001)  # NOT Ups\n        self.test('Ups', u.toStr(4), '00 N 448251.0 5411932.0001')\n\n        u = Ups(0, 'N', 448251.795, 5411932.678, falsed=False)  # NOT Ups\n        self.test('Ups', u, '00 N 448252 5411933')\n        self.test('Ups', u.toStr(prec=3), '00 N 448251.795 5411932.678')\n        self.test('Ups', u.toStr(prec=1, B=True, cs=True), '00Z N 448251.8 5411932.7 n/a n/a')\n        self.test('Ups2', u.toRepr(), '[Z:00, H:N, E:448252, N:5411933]')\n#       self.test('Ups2', u.toStr2(), '[Z:00, H:N, E:448252, N:5411933]')\n\n        # u = ll.toUps(falsed=False)  # UTM N 448251.795205746 5411932.67761691\n        # self.test('LL.toUps', u, 'N 448252 5411933')\n        # self.test('LL.toUps', u.toStr(prec=3), 'N 448251.795 5411932.678')\n        # self.test('LL.toUps', u.toStr2(B=True, cs=True), '[Z:00Z P:N E:448252 N:5411933 C:+175.26519494° S:1.17547892]')\n\n        u  = UtmUps(60, 'N', 360176.69112, 4838249.4217, falsed=True)\n        ll = u.toLatLon(LL, unfalse=False)  # UTM 48.85820000°N, 002.29450000°E\n        self.test('UtmUps.toLatLon', ll, '43.610051°N, 004.46308°E')\n        self.test('UtmUps.toLatLon', ll.toStr(form=F_DMS), '43°36′36.18″N, 004°27′47.09″E')\n\n        m = u.toMgrs()\n        self.test('UtmUps.toMgrs', m, '60T UP 60176 38249')\n        try:\n            t = u.toUps()\n            self.test('toUps', str(u), RangeError.__name__)\n        except Exception as x:\n            self.test('toUps', str(x), 'inside UTM range [-79.5, 83.5]', known=endswith)\n        t = u.toUtm(u.zone)\n        self.test('UtmUps.toUtm', t, '60 N 360177 4838249')\n\n        # TM8358-2 pg 3-7 ID 1\n        u = toUps8('84 17 14.042N', '132 14 52.761W')  # -132.247988889\n        self.test('toUpsID1', u.toStr(prec=2, cs=True), '00 N 1530125.78 2426773.6 -132.24798917° 0.99647445')\n\n        # TM8358-2 pg 3-7 ID 2\n        u = toUtmUps8('73N', '44E')  # Karney 38n 467368 8100752 (73°00'00.0\"N 044°00'00.0\"E) MGRS 38XMG6736700752\n        self.test('toUtmUps8ID2', u.toStr(prec=2, cs=True), '38 N 3320416.75 632668.43 +44.0° 1.01619505', known=True)\n        u = toUps8('73N', '44E', strict=False)  # allow lat outside UPS range\n        self.test('toUtmUps8ID2', u.toStr(prec=2, cs=True), '00 N 3320416.75 632668.43 +44.0° 1.01619505')\n\n        # TM8358-2 pg 3-7 ID 3\n        u = toUps8('87 17 14.4S', '132 14 52.303E', pole='S')  # -132.247861111\n        self.test('toUpsID3', u.toStr(prec=2, cs=True), '00 S 2222979.47 1797474.9 -132.24786194° 0.99455723')\n\n        # TM8358-2 pg 3-7 ID 4\n        u = Ups(0, 'N', '1530125.78', '2426773.6')\n        ll = u.toLatLon(LL)\n        self.test('Ups.toLatLonID4', ll.toStr(form=F_DMS), '84°17′14.04″N, 132°14′52.76″W')\n        self.test('Ups.toLatLonID4', ll, '84.287234°N, 132.247989°W')\n\n        # TM8358-2 pg 3-7 ID 5\n        u = Ups(0, 'N', '3320416.75', '632668.43')\n        ll = u.toLatLon(LL)\n        self.test('Ups.toLatLonID5', ll.toStr(form=F_DMS), '73°00′00.0″N, 044°00′00.0″E')  # '72°59′60.0″N, ...\n        self.test('Ups.toLatLonID5', ll, '73.0°N, 044.0°E')\n\n        # TM8358-2 pg 3-7 ID 6\n        u = Ups(0, 'S', '2222979.47', '1797474.9')\n        ll = u.toLatLon(LL)\n        self.test('Ups.toLatLonID6', ll.toStr(form=F_DMS), '87°17′14.4″S, 132°14′52.3″E')\n        self.test('Ups.toLatLonID6', ll, '87.287333°S, 132.247861°E')\n\n        # <https://GeographicLib.SourceForge.io/cgi-bin/GeoConvert>\n        ll = LL(84, 84)\n        self.test('latlon', ll, ll)\n        u = toUps8(ll)  # n 2663075 1930308 (84°00'00.0\"N 084°00'00.0\"E) MGRS ZJG6307530307\n        self.test('toUps', u, '00 N 2663075 1930308')\n        self.test('toUps', u.toStr(prec=6, cs=True), '00 N 2663075.299562 1930307.977716 +84.0° 0.99673')\n        # self.test('toMgrs5', u.toMgrs(), 'Z JG 63075 30307')\n\n        t = ' '.join(toUps8(ll, Ups=None).toStr(prec=6).split()[:5] + ['...)'])\n        self.test('toUps(None)', t, \"(0, 'N', 2663075.299562, 1930307.977716, 'Z', ...)\", known=True)  # coverage\n        self.test('.scale0', u.scale0, '0.994000', fmt='%.6f')\n        u.rescale0(84, 1.0)\n        self.test('rescale0', u.scale0, '0.997261', fmt='%.6f')\n\n        # <https://Earth-Info.NGA.mil/GandG/publications/NGA_SIG_0012_2_0_0_UTMUPS/NGA.SIG.0012_2.0.0_UTMUPS.pdf>\n        # 10.2 Examples of computng {x, y, sigma, gamma}, given {lambda, phi, Z} page 41\n        # replaced with Karney's results from <https://GeographicLib.SourceForge.io/cgi-bin/GeoConvert>\n        #  8: lat lon 83   90  UTM/UPS 46n 459200.256323 9217519.441609  MGRS 46X DT 5920025632317519441609\n        #  9: lat lon 82   91  UTM/UPS 46n 468930.934996 9105366.008486  MGRS 46X DS 6893093499605366008486\n        # 10: lat lon 81  179  UTM/UPS 60n 534921.971582 8993806.415149  MGRS 60X WQ 3492197158193806415148\n        # 11: lat lon 80  180  UTM/UPS 01n 441867.784867 8883084.955948  MGRS 01X DJ 4186778486783084955948\n        # 12: lat lon 40    0  UTM/UPS 31n 243900.352030 4432069.056899  MGRS 31T BE 4390035202932069056898\n        # 13: lat lon  3 -179  UTM/UPS 01n 277707.830749  331796.291679  MGRS 01N BD 7770783074931796291678\n        # 14: lat lon  2  -90  UTM/UPS 16n 166223.907623  221366.166030  MGRS 16N AH 6622390762321366166030\n        # 15: lat lon  1   -1  UTM/UPS 30n 722561.736479  110597.972524  MGRS 30N YG 2256173647810597972523\n        # 16: lat lon  0    0  UTM/UPS 31n 166021.443081       0.000000  MGRS 31N AA 6602144308000000000000\n        # 17: lat lon -1    1  UTM/UPS 31s 277438.263521 9889402.027476  MGRS 31M BU 7743826352189402027476\n        # 18: lat lon -2   90  UTM/UPS 46s 166223.907623 9778633.833970  MGRS 46M AC 6622390762378633833969\n        # 19: lat lon -3  179  UTM/UPS 60s 722292.169251 9668203.708321  MGRS 60M YB 2229216925068203708321\n        # 20: lat lon -4  180  UTM/UPS 01s 166831.065275 9557263.747314  MGRS 01M AR 6683106527557263747313\n        for t in ('1   -0 90 N   2000000.0        2000000.0      0.994      -0',\n                  '2 -179 89 N   1998062.320046   2111009.610243 0.994076 -179',\n                  '3  -90 88 N   1777930.731071   2000000.0      0.994303  -90',\n                  '4   -1 87 N   1994185.827038   1666906.254073 0.994682   -1',\n                  '5    0 86 N   2000000.0        1555731.570643 0.995212    0',\n                  '6    1 85 N   2009694.068153   1444627.207468 0.995895    1',\n                  '7   89 84 N   2666626.157825   1988363.997132 0.996730   89',\n               #  '8   90 83 N   2778095.750322   2000000.0      0.997718   90',\n                  '8   90 83 N    459200.256323   9217519.441609 0.997718   -2.97767886',\n               #  '9   91 82 N   2889442.490749   2015525.276426 0.998860   91',\n                  '9   91 82 N    468930.934996   9105366.008486 0.998860   -1.98055172',\n               # '10  179 81 N   2017473.190606   3001038.419357 1.000156  179',\n                 '10  179 81 N    534921.971582   8993806.415149 1.000156   +1.97539632',\n               # '11  180 80 N   2000000.0        3112951.136955 1.001608  180',\n                 '11  180 80 N    441867.784867   8883084.955948 1.001608   -2.95450468',\n               # '12    0 40 N   2000000.0       -3918313.984953 1.209619    0',\n                 '12    0 40 N   243900.35203     4432069.056899 1.0004075  -1.92940969',\n               # '13 -179  3 N   1790630.987261  13994742.706481 1.883453 -179',\n                 '13 -179  3 N    277707.830749    331796.291679 1.00021172 -0.1047151895',\n               # '14  -90  2 N -10206568.118587   2000000.0      1.914973  -90',\n                 '14  -90  2 N    166223.907623    221366.16603  1.00097936 -0.104796101',\n               # '15   -1  1 N   1783239.204558 -10418217.653909 1.947589   -1',\n                 '15   -1  1 N    722561.736479    110597.972524 1.00021322  0.03491928033333334',\n               # '16    0  0 N   2000000.0      -10637318.498257 1.981349    0',\n                 '16    0  0 N    166021.443081         0.0      1.00098106  0',\n               # '17    1 -1 N   2224408.737826 -10856367.979638 2.016305    1',\n                 '17    1 -1 S    277438.263521   9889402.027476 1.00021322  0.03491928033333334',\n               # '18   90 -2 N  15083269.373905   2000000.0      2.052510   90',\n                 '18   90 -2 S    166223.907623   9778633.83397  1.00097936  0.104796101',\n               # '19  179 -3 N   2232331.498720  15310262.647286 2.090020  179',\n                 '19  179 -3 S    722292.169251   9668203.708321 1.00021172 -0.1047151895',\n               # '20  180 -4 N   2000000.0       15545537.944524 2.128897  180',\n                 '20  180 -4 S    166831.065275   9557263.747314 1.00097428  0.209463796167',):\n            i, lon, lat, p, e, n, s, c = t.split()\n            u = toUtmUps8(lat, lon)\n            z = '%02d' % (u.zone,)\n            x = ' '.join((z, p, e, n, degDMS(float(c), prec=8, pos='+'), s))\n            t = u.toStr(prec=6, cs=True)\n            if abs(float(s) - u.scale) < 1e-2:\n                t = ' '.join(t.split()[:-1] + [s])\n            self.test('NGA-10.2-' + i, t, x)\n\n        # <https://Earth-Info.NGA.mil/GandG/publications/NGA_SIG_0012_2_0_0_UTMUPS/NGA.SIG.0012_2.0.0_UTMUPS.pdf>\n        # 10.3 Examples of computing {lambda, phi}, given {Z, x, y} page 41\n        for t in ('1 S       0       0 -135.0          -64.9164123332',\n                  '2 S 1000000       0 -153.4349488229 -70.0552944014',\n                  '3 S 2000000       0 -180.0          -72.1263610163',\n                  '4 S 3000000       0  153.4349488229 -70.0552944014',\n                  '5 S 4000000       0  135.0          -64.9164123332',\n                  '6 S       0 1000000 -116.5650511771 -70.0552944014',\n                  '7 S 1000000 1000000 -135.0          -77.3120791908',\n                  '8 S 2000000 1000000  180.0          -81.0106632645',\n                  '9 S 3000000 1000000  135.0          -77.3120791908',\n                 '10 S 4000000 1000000  116.5650511771 -70.0552944014',\n                 '11 S       0 2000000  -90.0          -72.1263610163',\n                 '12 S 1000000 2000000  -90.0          -81.0106632645',\n                 '13 S 2000000 2000000    0.0          -90.0',\n                 '14 S 3000000 2000000   90.0          -81.0106632645',\n                 '15 S 4000000 2000000   90.0          -72.1263610163',\n                 '16 S       0 3000000  -63.4349488229 -70.0552944014',\n                 '17 S 1000000 3000000  -45.0          -77.3120791908',\n                 '18 S 2000000 3000000    0.0          -81.0106632645',\n                 '19 S 3000000 3000000   45.0          -77.3120791908',\n                 '20 S 4000000 3000000   63.4349488229 -70.0552944014',\n                 '21 S       0 4000000  -45.0          -64.9164123332',\n                 '22 S 1000000 4000000  -26.5650511771 -70.0552944014',\n                 '23 S 2000000 4000000    0.0          -72.1263610163',\n                 '24 S 3000000 4000000   26.5650511771 -70.0552944014',\n                 '25 S 4000000 4000000   45.0          -64.9164123332'):\n            i, p, e, n, lon, lat = t.split()\n            x = lat + ' ' + lon\n            u = parseUTMUPS5(' '.join(('00', p, e, n)))\n            ll = u.toLatLon(LL)\n            t = ' '.join(strs(ll.latlon, prec=10))\n            self.test('NGA-10.3-' + i, t, x, known=i == '3')\n\n        u = LL(83.6, 0).toUps()  # coverage\n        self.test('toUps', str(u.toUps()), '00 N 2000000 1288738')\n        self.test('toUtm', str(u.toUtm(2)), '02 N 611555 10703765')\n        u = Ups()  # default kwds\n        self.test('toUtm', repr(u), '[Z:00Z, H:N, E:2000000, N:2000000]')\n\n\nif __name__ == '__main__':\n\n    from pygeodesy import ellipsoidalVincenty\n\n    t = Tests(__file__, __version__, ups)\n    t.testUps(ellipsoidalVincenty.LatLon)\n    t.results()\n    t.exit()\n"
  },
  {
    "path": "test/testUtily.py",
    "content": "\n# -*- coding: utf-8 -*-\n\n# Test L{utily} module.\n\n__all__ = ('Tests',)\n__version__ = '24.12.24'\n\nfrom bases import TestsBase, geographiclib\n\nfrom pygeodesy import EPS, INF, NEG0, NINF, PI, PI2, PI_2, PI3_2, \\\n                      acre2ha, acre2m2, atan1, atan2d, chain2m, cot, cot_, cotd, cotd_, \\\n                      degrees90, degrees180, degrees360, degrees2m, \\\n                      fathom2m, fstr, ft2m, furlong2m, \\\n                      grades400, degrees2grades, grades2degrees, grades2radians, \\\n                      ha2acre, isPoints2, map1, \\\n                      m2chain, m2degrees, m2fathom, m2ft, m2furlong, m2ha, m2toise, m2yard, \\\n                      radiansPI, radiansPI2, radiansPI_2, \\\n                      sincos2, sincos2d, sincostan3, \\\n                      tan, tan_, tan_2, tand, tand_, toise2m, unroll180, \\\n                      wrap90, wrap180, wrap360, wrapPI, wrapPI2, wrapPI_2, \\\n                      yard2m  # DEPRECATED, use fstr\n\nfrom math import cos, fabs, radians, sin, tan as _tan\n\nif geographiclib:\n    from geographiclib.geomath import Math\n    Matan2d  = Math.atan2d\n    Msincosd = Math.sincosd\nelse:\n    Math = None\n\n\nclass Tests(TestsBase):\n\n    def testUtily(self):  # MCCABE 14\n\n        # Python 2.6.9 on Travis Ubuntu 14.04 produces -0.0\n\n        self.test('degrees90(PI_2)', degrees90(PI_2), 90.0, nl=1)\n        self.test('degrees90(PI)',   degrees90(PI),    0.0)\n        self.test('degrees90(PI2)',  degrees90(PI2),   0.0)\n        self.test('degrees90(-PI_2)',    degrees90(-PI_2), -90.0)\n        self.test('degrees90(-PI)',      degrees90(-PI),     0.0)\n        self.test('degrees90(-PI2)', abs(degrees90(-PI2)),   0.0)  # -0.0\n\n        self.test('degrees180(PI_2)', degrees180(PI_2), 90.0, nl=1)\n        self.test('degrees180(PI)',   degrees180(PI),  180.0)  # XXX\n        self.test('degrees180(PI2)',  degrees180(PI2),   0.0)\n        self.test('degrees180(-PI_2)',    degrees180(-PI_2), -90.0)\n        self.test('degrees180(-PI)',      degrees180(-PI),  -180.0)  # XXX\n        self.test('degrees180(-PI2)', abs(degrees180(-PI2)),   0.0)  # -0.0\n\n        self.test('degrees360(PI_2)', degrees360(PI_2), 90.0, nl=1)\n        self.test('degrees360(PI)',   degrees360(PI),  180.0)  # XXX\n        self.test('degrees360(PI2)',  degrees360(PI2),   0.0)\n        self.test('degrees360(-PI_2)',    degrees360(-PI_2), 270.0)\n        self.test('degrees360(-PI)',      degrees360(-PI),   180.0)  # XXX\n        self.test('degrees360(-PI2)', abs(degrees360(-PI2)),   0.0)  # -0.0\n\n        self.test('degrees2grades(90)',  degrees2grades(90),  100.0, nl=1)\n        self.test('degrees2grades(180)', degrees2grades(180), 200.0)\n        self.test('degrees2grades(360)', degrees2grades(360), 400.0)\n        self.test('degrees2grades(-90)',  degrees2grades(-90),  -100.0)\n        self.test('degrees2grades(-180)', degrees2grades(-180), -200.0)\n        self.test('degrees2grades(-360)', degrees2grades(-360), -400.0)\n\n        self.test('grades400(PI_2)', grades400(PI_2), 100.0, nl=1)\n        self.test('grades400(PI)',   grades400(PI),   200.0)  # XXX\n        self.test('grades400(PI2)',  grades400(PI2),    0.0)\n        self.test('grades400(-PI_2)',    grades400(-PI_2), 300.0)\n        self.test('grades400(-PI)',      grades400(-PI),   200.0)  # XXX\n        self.test('grades400(-PI2)', abs(grades400(-PI2)),   0.0)  # -0.0\n\n        self.test('grades2degrees(100)', grades2degrees(100),  90.0, nl=1)\n        self.test('grades2degrees(200)', grades2degrees(200), 180.0)\n        self.test('grades2degrees(400)', grades2degrees(400), 360.0)\n        self.test('grades2degrees(-100)', grades2degrees(-100),  -90.0)\n        self.test('grades2degrees(-200)', grades2degrees(-200), -180.0)\n        self.test('grades2degrees(-400)', grades2degrees(-400), -360.0)\n\n        self.test('grades2radians(100)', grades2radians(100), PI_2, nl=1)\n        self.test('grades2radians(200)', grades2radians(200), PI)\n        self.test('grades2radians(400)', grades2radians(400), PI2)\n        self.test('grades2radians(-100)', grades2radians(-100), -PI_2)\n        self.test('grades2radians(-200)', grades2radians(-200), -PI)\n        self.test('grades2radians(-400)', grades2radians(-400), -PI2)\n\n        self.test('radiansPI_2(90)',  radiansPI_2(90), PI_2, nl=1)\n        self.test('radiansPI_2(180)', radiansPI_2(180), 0.0)\n        self.test('radiansPI_2(360)', radiansPI_2(360), 0.0)\n        self.test('radiansPI_2(-90)',      radiansPI_2(-90), -PI_2)\n        self.test('radiansPI_2(-180)',     radiansPI_2(-180),  0.0)\n        self.test('radiansPI_2(-360)', abs(radiansPI_2(-360)), 0.0)  # -0.0\n\n        self.test('radiansPI(90)',  radiansPI(90), PI_2, nl=1)\n        self.test('radiansPI(180)', radiansPI(180),  PI)\n        self.test('radiansPI(360)', radiansPI(360), 0.0)\n        self.test('radiansPI(-90)',      radiansPI(-90), -PI_2)\n        self.test('radiansPI(-180)',     radiansPI(-180),  -PI)\n        self.test('radiansPI(-360)', abs(radiansPI(-360)), 0.0)  # -0.0\n\n        self.test('radiansPI2(90)',  radiansPI2(90), PI_2, nl=1)\n        self.test('radiansPI2(180)', radiansPI2(180),  PI)\n        self.test('radiansPI2(360)', radiansPI2(360), 0.0)\n        self.test('radiansPI2(-90)',      radiansPI2(-90), PI_2+PI)\n        self.test('radiansPI2(-180)',     radiansPI2(-180),     PI)\n        self.test('radiansPI2(-360)', abs(radiansPI2(-360)),   0.0)  # -0.0\n\n        self.test('wrap90(90)',   wrap90(90),     90.0, nl=1)\n        self.test('wrap90(180)',  wrap90(180),     0.0)\n        self.test('wrap90(360)',  wrap90(360),     0.0)\n        self.test('wrap90(-90)',  wrap90(-90),   -90.0)\n        self.test('wrap90(-180)', wrap90(-180),    0.0)\n        self.test('wrap90(-360)', wrap90(-360),    0.0)\n\n        self.test('wrap180(90)',   wrap180(90),     90.0, nl=1)\n        self.test('wrap180(180)',  wrap180(180),   180.0)\n        self.test('wrap180(360)',  wrap180(360),     0.0)\n        self.test('wrap180(-90)',  wrap180(-90),   -90.0)\n        self.test('wrap180(-180)', wrap180(-180), -180.0)\n        self.test('wrap180(-360)', wrap180(-360),    0.0)\n\n        self.test('wrap360(90)',   wrap360(90),    90.0, nl=1)\n        self.test('wrap360(180)',  wrap360(180),  180.0)\n        self.test('wrap360(360)',  wrap360(360),    0.0)\n        self.test('wrap360(-90)',  wrap360(-90),  270.0)\n        self.test('wrap360(-180)', wrap360(-180), 180.0)\n        self.test('wrap360(-360)', wrap360(-360),   0.0)\n\n        self.test('wrapPI_2(PI_2)', wrapPI_2(PI_2), PI_2, nl=1)\n        self.test('wrapPI_2(PI)',   wrapPI_2(PI),    0.0)\n        self.test('wrapPI_2(PI2)',  wrapPI_2(PI2),   0.0)\n        self.test('wrapPI_2(-PI_2)',    wrapPI_2(-PI_2), -PI_2)\n        self.test('wrapPI_2(-PI)',      wrapPI_2(-PI),     0.0)\n        self.test('wrapPI_2(-PI2)', abs(wrapPI_2(-PI2)),   0.0)\n\n        self.test('wrapPI(PI_2)', wrapPI(PI_2), PI_2, nl=1)\n        self.test('wrapPI(PI)',   wrapPI(PI),     PI)\n        self.test('wrapPI(PI2)',  wrapPI(PI2),   0.0)\n        self.test('wrapPI(-PI_2)',    wrapPI(-PI_2), -PI_2)\n        self.test('wrapPI(-PI)',      wrapPI(-PI),     -PI)\n        self.test('wrapPI(-PI2)', abs(wrapPI(-PI2)),   0.0)  # -0.0\n\n        self.test('wrapPI2(PI_2)', wrapPI2(PI_2), PI_2, nl=1)\n        self.test('wrapPI2(PI)',   wrapPI2(PI),     PI)\n        self.test('wrapPI2(PI2)',  wrapPI2(PI2),   0.0)\n        self.test('wrapPI2(-PI_2)',    wrapPI2(-PI_2), PI_2+PI)\n        self.test('wrapPI2(-PI)',      wrapPI2(-PI),        PI)\n        self.test('wrapPI2(-PI2)', abs(wrapPI2(-PI2)),     0.0)  # -0.0\n\n        self.test('unroll180', fstr(unroll180(-90, 110, wrap=True)), '-160.0, -250.0', nl=1)\n        self.test('unroll180', fstr(unroll180(-90, 110, wrap=False)), '200.0, 110.0')\n\n        self.test('unroll180', fstr(unroll180(-90, 830, wrap=True)), '-160.0, -250.0', nl=1)\n        self.test('unroll180', fstr(unroll180(-90, 830, wrap=False)), '920.0, 830.0')\n\n        self.test('unroll180', fstr(unroll180(-110, 90, wrap=True)), '-160.0, -270.0', nl=1)\n        self.test('unroll180', fstr(unroll180(-110, 90, wrap=False)), '200.0, 90.0')\n\n        self.test('unroll180', fstr(unroll180(-830, 90, wrap=True)), '-160.0, -990.0', nl=1)\n        self.test('unroll180', fstr(unroll180(-830, 90, wrap=False)), '920.0, 90.0')\n\n        self.test('atan1', atan1(0,   -1), '0.0', nl=1)\n        self.test('atan1', atan1(0, NEG0), '0.0')\n\n        e = d = g = f = t = 0\n        for a in range(-1000, 1000, 1):\n            a *= 0.47\n            r = radians(a)\n            sr, cr = sin(r), cos(r)\n\n            s, c = sincos2(r)\n            e = max(e, fabs(sr - s), fabs(cr - c))\n\n            sd, cd = sincos2d(a)\n            d = max(d, fabs(sr - sd), fabs(cr - cd))\n            if Math:  # compare with geographiclib\n                t = max(t, fabs(atan2d(sr, cr) - Matan2d(sr, cr)))\n                s, c = Msincosd(a)\n                g = max(g, fabs(sr - s), fabs(cr - c))\n                f = max(f, fabs(sd - s), fabs(cd - c))\n\n        if sr:  # coverage\n            self.test('cot  ', cot(r), cr / sr, prec=12, nl=1)\n            c, _ = cot_(r, r)  # PYCHOK .next() or __next__()\n            self.test('cot_ ', c, cr / sr, prec=12)\n        if sd:  # coverage\n            self.test('cotd ', cotd(a), cd / sd, prec=12, nl=1)\n            c, _ = cotd_(a, a)  # PYCHOK .next() or __next__()\n            self.test('cotd_', c, cd / sd, prec=12)\n        EPS_ = EPS * 8\n        self.test('sincos2',  e, EPS_, known=e < EPS_, nl=1)\n        self.test('sincos2d', d, EPS_, known=d < EPS_)\n        if Math:\n            self.test('Matan2d ', t, EPS_, known=t < EPS_ * 20, nl=1)\n            self.test('Msincosd', g, EPS_, known=g < EPS_)\n            self.test('sincos*d', f, EPS_, known=f < EPS_)\n        if cr:  # coverage\n            self.test('tan  ', tan(r), sr / cr, prec=12, nl=1)\n            t, _ = tan_(r, r)  # PYCHOK .next() or __next__()\n            self.test('tan_ ', t, sr / cr, prec=12)\n        if cd:  # coverage\n            self.test('tand ', tand(a), sd / cd, prec=12, nl=1)\n            t, _ = tand_(a, a)  # PYCHOK .next() or __next__()\n            self.test('tand_', t, sd / cd, prec=12)\n\n        # <https://www.CivilGeo.com/when-a-foot-isnt-really-a-foot/>\n        self.test('iFt2m', ft2m( 614963.91), 187441, fmt='%.0f', nl=1)\n        self.test('iFt2m', ft2m(2483759.84), 757050, fmt='%.0f')\n        self.test('sFt2m', ft2m( 614962.68, usurvey=True), 187441, fmt='%.0f')\n        self.test('sFt2m', ft2m(2483754.87, usurvey=True), 757050, fmt='%.0f')\n\n        self.test('m2iFt', m2ft(187441),  614963.91, prec=2, nl=1)\n        self.test('m2iFt', m2ft(757050), 2483759.84, prec=2)\n        self.test('m2sFt', m2ft(187441, usurvey=True),  614962.68, prec=2)\n        self.test('m2sFt', m2ft(757050, usurvey=True), 2483754.88, prec=2, nt=1)\n\n        for f, x in ((acre2ha,     '0.404686'), (acre2m2, '4046.856422'),\n                     (chain2m,    '20.116800'), (fathom2m,   '1.828800'),\n                     (furlong2m, '201.168000'), (ha2acre,    '2.471054'),\n                     (toise2m,     '1.949044'), (yard2m,     '0.914400'),\n                     (m2chain,     '0.049710'), (m2fathom,   '0.546807'),\n                     (m2furlong,   '0.004971'), (m2ha,       '0.000100'),\n                     (m2toise,     '0.513072'), (m2yard,     '1.093613')):\n            self.test(f.__name__, f(1), x, prec=6)\n\n        self.test('degrees2m', fstr(degrees2m(90), prec=4),        '10007557.1761', nl=1)\n        self.test('degrees2m', fstr(degrees2m(90, lat=30), prec=4), '8666798.7443')\n        self.test('m2degrees', fstr(m2degrees(degrees2m(90)), prec=1),   '90.0')\n\n        self.test('degrees2m', fstr(degrees2m(180), prec=4),          '20015114.3522', nl=1)\n        self.test('degrees2m', fstr(degrees2m(180, lat=3-0), prec=4), '19987684.3336')\n        self.test('m2degrees', fstr(m2degrees(degrees2m(180)), prec=1),    '180.0', nt=1)\n\n        t = 'm2degrees2m(%s, lat=%s)'\n        for a in range(0, 90, 7):\n            d = m2degrees(degrees2m(45, lat=a), lat=a)\n            self.test(t % (45, a), d, '45.00', prec=2)\n\n        self.test('isPoints2', isPoints2(None), False, nl=1)\n\n        try:  # coverage\n            self.test('tan_2_semi', tan_2(PI, PI=1), ValueError.__name__, nl=1)\n        except ValueError as x:\n            t = str(x)\n            t = t[:t.find('(')+9] + t[t.find(')'):]\n            self.test('tan_2_semi', t, 'PI[1] edge (3.141592): semi-circular', nl=1)\n\n        def _fin(x):\n            return (NEG0 if x < 0 else 0.0) if abs(x) < 3e-16 else (\n                   (NINF if x < 0 else INF) if abs(x) > 5e+15 else x)\n\n        f = sincostan3.__name__ + '(%+.4f)'\n        for a in (0, NEG0, PI_2, -PI_2, PI, -PI, PI3_2, -PI_2, PI2, -PI2):\n            t = map1(_fin, sin(a), cos(a), _tan(a))\n            self.test(f % (a,), sincostan3(a), t, known=True)  # =a in (PI3_2, PI2)\n\n\nif __name__ == '__main__':\n\n    from pygeodesy import utily  # private\n\n    t = Tests(__file__, __version__, utily)\n    t.testUtily()\n    t.results()\n    t.exit()\n"
  },
  {
    "path": "test/testUtm.py",
    "content": "\n# -*- coding: utf-8 -*-\n\n# Test L{utm} module.\n\n__all__ = ('Tests',)\n__version__ = '25.04.25'\n\nfrom bases import TestsBase\n\nfrom pygeodesy import Ellipsoids, EPS, F_DEG, F_DMS, fstr, parseUTM5, toUtm8, Utm\n\n\nclass Tests(TestsBase):\n\n    def testUtm(self, LL):\n        u = utm.Utm(3, 'N', 448251, 5411932.0001)\n        self.test('Utm1', u.toStr(4), '03 N 448251.0 5411932.0001')\n\n        u = utm.Utm(31, 'N', 448251.795, 5411932.678)\n        self.test('Utm2', u, '31 N 448252 5411933')\n        self.test('Utm2', u.toStr(prec=3), '31 N 448251.795 5411932.678')\n        self.test('Utm2', u.toStr(prec=1, cs=True), '31 N 448251.8 5411932.7 n/a n/a')\n\n        ll = u.toLatLon(LL)  # 48.85820000°N, 002.29450000°E\n        self.test('Utm.toLatLon1', ll, '48.8582°N, 002.2945°E')\n        self.test('Utm.toLatLon1', ll.toStr(form=F_DMS),  '48°51′29.52″N, 002°17′40.2″E')\n\n        u = ll.toUtm()  # 31U N 448251.795205746 5411932.67761691 -000.53131221° 0.9996329\n        self.test('toUtm1', u, '31 N 448252 5411933')\n        self.test('toUtm1', u.toStr(prec=3), '31 N 448251.795 5411932.678')\n        self.test('toUtm2', u.toRepr(B=True, cs=True), '[Z:31U, H:N, E:448252, N:5411933, C:-31.87873265′, S:0.9996329]')\n#       self.test('toUtm2', u.toStr2(B=True, cs=True), '[Z:31U, H:N, E:448252, N:5411933, C:-31.87873265′, S:0.9996329]')\n\n        ll = LL(13.4125, 103.8667)\n        u = toUtm8(ll)  # 48P N 377302.354182663 1483034.77706381 -000.26291348° 0.999786229\n        self.test('toUtm4', u, '48 N 377302 1483035')\n        self.test('toUtm5', u.toStr(prec=6, B=True, cs=True), '48P N 377302.354183 1483034.777084 -15.77480856′ 0.99978623')\n\n        ll = LL(-13.4125, -103.8667)\n        u = ll.toUtm()  # 13L S 622697.645817337 8516965.22293619 -000.26291348° 0.999786229\n        self.test('toUtm6', u, '13 S 622698 8516965')\n        self.test('toUtm7', u.toStr(prec=6, B=True, cs=True), '13L S 622697.645817 8516965.222916 -15.77480856′ 0.99978623')\n\n        t = u.toEtm()\n        self.test('toEtm', t, '13 S 622698 8516965')\n\n        m = u.toMgrs()\n        self.test('toMgrs1', m, '13L FF 22697 16965')\n\n        m = Utm('31U', 'N', 448251, 5411932).toMgrs()\n        self.test('toMgrs2', m, '31U DQ 48251 11932')\n\n#       t = u.toUps(pole=u.pole)\n#       self.test('toUps', t, '00 S -7702368 -395110')  # XXX invalid?\n\n        t = u.toUtm(14)\n        self.test('toUtm14', t, '14 S -27436 8512042')  # XXX invalid?\n\n        u = parseUTM5('18 N 516620 4574500')  # Milford, PA\n        self.test('Utm8', u, '18 N 516620 4574500')\n        ll = u.toLatLon(LL)\n        self.test('Utm8.toLatLon', ll, '41.321801°N, 074.801413°W')\n        self.test('Utm8.toLatLon', ll.toStr(F_DEG), '41.321801N, 074.801413W')\n\n        for lat, lon, x in (( 61.44,       25.4,     '35V N 414668 6812845'),  # 35V N 414668.257431168 6812844.72764648\n                            (-47.04,      -73.48,    '18G S 615472 4789270'),  # 18G S 615471.65815765  4789269.76738578\n                            ( 40.4,       -74.7,     '18T N 525458 4472198'),  # 18T N 525457.882388688 4472198.04072697\n                            ( 44.5,       -88.5,     '16T N 380753 4928503'),  # 16T N 380753.114847639 4928503.38224615\n                            ( 50.8694,   -115.6508,  '11U N 594937 5636169'),  # 11U N 594936.575444796 5636168.98481247\n                            (  0.0,         0.0,     '31N N 166021 0'),        # 31N N 166021.443080537       0\n                            (  0.13,       -0.2324,  '30N N 808084 14386'),    # 30N N 808084.436750719   14385.7989105346\n                            (-45.6456,     23.3545,  '34G S 683474 4942631'),  # 34G S 683473.746903862 4942631.26945221\n                            (-12.765,     -33.8765,  '25L S 404859 8588691'),  # 25L S 404859.139809849 8588691.00770755\n                            (-80.5434,   -170.654,   '02A S 506346 1057743'),  # outside 02C? S 506346 1057743\n                            (  90.0,      177.0,     '60Z N 500000 9997965'),  # outside\n                            ( -90.0,     -177.0,     '01A S 500000 2035'),     # outside\n                            (  90.0,        3.0,     '31Z N 500000 9997965'),  # outside\n                            (  23.4578,  -135.4545,  '08Q N 453580 2594273'),  # 08Q N 453580 2594273\n                            (  77.345,    156.9876,  '57X N 450794 8586116'),  # 57X N 450793.553276976 8586116.22730171\n                            ( -89.3454,   -48.9306,  '22A S 502639 75073'),    # outside\n                            (  60.0,        1.0,     '31V N 388456 6653097'),  # southern Norway\n                            (  60.0,        3.0,     '32V N 165640 6666594'),\n                            (  60.0,        6.0,     '32V N 332705 6655205'),\n                            (  60.0,        9.0,     '32V N 500000 6651411'),\n                            (  60.0,       12.0,     '33V N 332705 6655205'),\n                            (  76.0,        1.0,     '31X N 446000 8436100'),  # Svalbard\n                            (  76.0,        7.0,     '31X N 607943 8438843'),\n                            (  76.0,       13.0,     '33X N 446000 8436100'),\n                            (  76.0,       19.0,     '33X N 607943 8438843'),\n                            (  76.0,       25.0,     '35X N 446000 8436100'),\n                            (  76.0,       31.0,     '35X N 607943 8438843'),\n                            (  76.0,       37.0,     '37X N 446000 8436100'),\n                            # copied from <https://GitHub.com/Turbo87/utm>\n                            (  50.77535,    6.08389, '32U N 294409 5628898'),  # Aachen\n                            (  40.71435,  -74.00597, '18T N 583960 4507523'),  # New York\n                            ( -41.28646,  174.77624, '60G S 313784 5427057'),  # Wellington, New Zealand\n                            ( -33.92487,   18.42406, '34H S 261878 6243186'),  # Capetown, South Africa\n                            ( -32.89018,  -68.84405, '19H S 514586 6360877'),  # Mendoza, Argentina\n                            (  64.83778, -147.71639, '06W N 466013 7190568'),  # Fairbanks, Alaska\n                            (  56.79680,   -5.00601, '30V N 377486 6296562'),  # Ben Nevis, Scotland\n                            (  84.0,       -5.00601, '30X N 476594 9328501')):  # Lat 84 >= _UTM_LAT_MAX\n            p = LL(lat, lon)\n            try:\n                u = p.toUtm().toStr(prec=0, B=True)\n            except ValueError as e:\n                u = str(e)\n                if x[2] in 'ABXYZ':  # X only for Lat 84\n                    x = u\n            self.test('toUtm(%s)' % (p,), u, x)\n\n        # <https://WikiPedia.org/wiki/Easting_and_northing>\n        m = toUtm8('50°52′10″N', '115°39′03″W', name='Mt Assiniboine')\n        self.test('toUtm(%r)' % (m.name,), repr(m), '[Z:11U, H:N, E:594934, N:5636174]')\n\n        # Utm.toLatLon should converge, for any eps,\n        # but eps = max(eps, EPS) and cached as EPS\n        _EPSs = tuple(EPS * 10**(4 - e) for e in range(9))\n\n        # courtesy of U{sumnamazu<https://GitHub.com/mrJean1/PyGeodesy/issues/26>}\n        u = Utm(55, 'S', 321441.0425108216, 5810117.133231169)\n        self.test('Utm9', u, '55 S 321441 5810117')\n        for eps in _EPSs:\n            # u._latlon = None  # XXX hack to zap cache\n            ll = fstr(u.toLatLon(eps=eps)[:2], prec=8)\n            self.test('Utm9.toLatLon(eps=%.4e)' % (eps,), ll, '-37.83891644, 144.97077387')\n\n        u = Utm(31, 'N', 400000, 5000000)\n        self.test('Utm10', u, '31 N 400000 5000000')\n        for eps in _EPSs:\n            # u._latlon = None  # XXX hack to zap cache\n            ll = fstr(u.toLatLon(eps=eps)[:2], prec=8)\n            self.test('Utm10.toLatLon(eps=%.4e)' % (eps,), ll, '45.14639288, 1.72796704')\n\n        # TMcoords.dat line 111:  70.542985267281 40.282054589142 1399093.4917923557236 8314607.120342236932 ...\n        u = toUtm8(70.542985267281, 40.282054589142, falsed=False, name='TMcoords.dat.110')\n        self.test('Utm111', u, '37 N 1399093 8314607')\n        for eps in _EPSs:\n            # u._latlon = None  # XXX hack to zap cache\n            ll = fstr(u.toLatLon(eps=eps)[:2], prec=8)\n            self.test('Utm111.toLatLon(eps=%.4e)' % (eps,), ll, '70.54298527, 40.28205459')\n\n        # <https://GitHub.com/ChrisVeness/geodesy/issues/86>\n        u = Utm(1, 'N', 100000, 0)  # XXX easting exceeds limit?\n        self.test('CV#86', u.toRepr(cs=6), '[Z:01, H:N, E:100000, N:0, C:n/a, S:n/a]')\n        ll = u.toLatLon(LatLon=LL)\n        self.test('CV#86', ll, '00.0°N, 179.407673°E')\n        u = ll.toUtm()\n        self.test('CV#86', u.toRepr(cs=6), '[Z:01, H:N, E:100000, N:0, ...]', known=True)  # [Z:60N, H:N, E:767993, N:0]\n\n        # courtesy of U{CaipiDE<https://GitHub.com/mrJean1/PyGeodesy/issues/63>} with\n        # results from <https://www.Movable-Type.co.UK/scripts/latlong-utm-mgrs.html>\n        u = Utm(32, 'N', 280000.0, 5653000.0)\n        self.test('#63', u, '32 N 280000 5653000')\n        m = u.toMgrs()\n        self.test('toMgrs', m, '32U KB 80000 53000')\n        t = u.toLatLon()\n        self.test('toLatLon', t, \"(50.986484, 5.865326, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), -2.436605, 1.000194)\")\n\n        u.band = None  # coverage\n        self.test('band', u.band, 'U')\n        try:\n            x = Exception.__name__\n            u.band = t = '?'\n        except Exception as X:\n            x = t = str(X)\n        self.test('band', t, x)\n\n        u.datum = Ellipsoids.Sphere  # coverage\n        self.test('datum', u.datum.toRepr(), 'same', known=True)\n\n        self.test('repr', repr(u), '[Z:32U, H:N, E:280000, N:5653000]')\n        self.test('E.N.', u.eastingnorthing2(), '(280000.0, 5653000.0)')\n\n        u, n = Utm(), 6651832.735433666\n        self.test('latFootPoint', u.latFootPoint( n),               59.979893712986794, prec=8, nl=1)\n        self.test('latFootPoint', u.latFootPoint(-n),              -59.979893712986794, prec=8)\n        self.test('latFootPoint', u.latFootPoint( n, makris=True),  59.979886144347320, prec=8)\n        self.test('latFootPoint', u.latFootPoint(-n, makris=True), -59.979886144347320, prec=8)\n        u = Utm(datum=Ellipsoids.Sphere)\n        self.test('phiFootPoint', u.phiFootPoint( n),               1.0440784142816830, prec=8)\n        self.test('phiFootPoint', u.phiFootPoint(-n, makris=True), -1.0440784142816830, prec=8)\n\n\nif __name__ == '__main__':\n\n    from pygeodesy import ellipsoidalVincenty, utm\n\n    t = Tests(__file__, __version__, utm)\n    t.testUtm(ellipsoidalVincenty.LatLon)\n    t.results()\n    t.exit()\n"
  },
  {
    "path": "test/testUtmTMcoords.py",
    "content": "\n# -*- coding: utf-8 -*-\n\n# Test UTM functions with the C(TMcoords.dat} from U{C. F. F. Karney,\n# \"Test data for the transverse Mercator projection (2009)\"\n# <https://GeographicLib.SourceForge.io/C++/doc/transversemercator.html>},\n# also available U{here<https://Zenodo.org/record/32470>}, file C{TMcoords.dat}.\n\n__all__ = ('testUtmTMcoords',)\n__version__ = '24.03.22'\n\nfrom testTMcoords import testTMcoords\n\n\ndef testUtmTMcoords(name):\n\n    from pygeodesy import toUtm8, Utm, utm\n\n    testTMcoords(utm, toUtm8, name=name, Utm=Utm)\n\n\nif __name__ == '__main__':\n\n    testUtmTMcoords(__file__)\n"
  },
  {
    "path": "test/testUtmUps.py",
    "content": "\n# -*- coding: utf-8 -*-\n\n# Test L{utmups} module.\n\n__all__ = ('Tests',)\n__version__ = '23.03.27'\n\nfrom bases import TestsBase\n\nfrom pygeodesy import F_DMS, parseUTMUPS5, toUps8, toUtmUps8, \\\n                      utmups, UtmUps, utmupsValidateOK\n\n\nclass Tests(TestsBase):\n\n    def testUtmUps(self, LL):\n        OK = True  # deprecated, was ok='OK', OK='OK'\n\n        u = UtmUps(0, 'N', 448251, 5411932.0001, falsed=False)\n        self.test('UtmUps', u.toStr(4), '00 N 448251.0 5411932.0001')\n        self.test('UtmUps.ValidateOK', utmupsValidateOK(u), OK)\n\n        u = UtmUps(0, 'N', 448251.795, 5411932.678, falsed=False)\n        self.test('UtmUps', u, '00 N 448252 5411933')\n        self.test('UtmUps', u.toStr(prec=3), '00 N 448251.795 5411932.678')\n        self.test('UtmUps', u.toStr(prec=1, B=True, cs=True), '00Z N 448251.8 5411932.7 n/a n/a')\n        self.test('UtmUps.ValidateOK', utmupsValidateOK(u), OK)\n\n        ll = u.toLatLon(LL, unfalse=False)\n        self.test('UtmUps.toLatLon', ll, '43.684097°N, 175.265195°E')\n        self.test('UtmUps.toLatLon', ll.toStr(form=F_DMS), '43°41′02.75″N, 175°15′54.7″E')\n\n        u = ll.toUtmUps()\n        self.test('LL.toUtmUps', u, '60 N 360177 4838249')\n        self.test('LL.toUtmUps', u.toStr(prec=3), '60 N 360176.686 4838249.416')\n        self.test('LL.toUtmUps', u.toRepr(B=True, cs=True), '[Z:60T, H:N, E:360177, N:4838249, C:-1.19839167°, S:0.99984048]')\n#       self.test('LL.toUtmUps', u.toStr2(B=True, cs=True), '[Z:60T, H:N, E:360177, N:4838249, C:-1.19839167°, S:0.99984048]')\n        self.test('LL.toUtmUps.ValidateOK', utmupsValidateOK(u), OK)\n\n        # TM8358-2 pg 3-7 ID 1\n        u = toUtmUps8('84 17 14.042N', '132 14 52.761W')  # -132.247988889\n        self.test('toUtmUps8ID1', u.toStr(prec=2, B=True, cs=True), '00Y N 1530125.78 2426773.6 -132.24798917° 0.99647445')\n        self.test('toUtmUps8ID1.ValidateOK', utmupsValidateOK(u), OK)\n        u = toUtmUps8('84 17 14.042N', '132 14 52.761W', Utm=None, Ups=None)  # coverage\n        self.test('toUtmUps8ID1.ValidateOK', utmupsValidateOK(u), OK)\n\n        # TM8358-2 pg 3-7 ID 2\n        u = toUtmUps8('73N', '44E')  # Karney 38n 467368 8100752 (73°00'00.0\"N 044°00'00.0\"E) MGRS 38XMG6736700752\n        self.test('toUtmUps8ID2', u.toStr(prec=2, cs=True), '38 N 3320416.75 632668.43 +44.0° 1.01619505', known=True)\n        self.test('toUtmUps8ID2.ValidateOK', utmupsValidateOK(u), OK)\n        u = toUtmUps8('73N', '44E', Utm=None, Ups=None)  # coverage\n        self.test('toUtmUps8ID2.ValidateOK', utmupsValidateOK(u), OK)\n        u = toUps8('73N', '44E', strict=False)  # allow lat outside UPS range\n        self.test('toUtmUps8ID2', u.toStr(prec=2, cs=True), '00 N 3320416.75 632668.43 +44.0° 1.01619505')\n        self.test('toUtmUps8ID2.ValidateOK', utmupsValidateOK(u), OK, known=True)\n\n        # TM8358-2 pg 3-7 ID 3\n        u = toUtmUps8('87 17 14.4S', '132 14 52.303E')  # -132.247861111\n        self.test('toUtmUps8ID3', u.toStr(prec=2, B=True, cs=True), '00B S 2222979.47 1797474.9 -132.24786194° 0.99455723')\n        self.test('toUtmUps8ID3.ValidateOK', utmupsValidateOK(u), OK)\n        u = toUtmUps8('87 17 14.4S', '132 14 52.303E', Utm=None, Ups=None)  # coverage\n        self.test('toUtmUps8ID3.ValidateOK', utmupsValidateOK(u), OK)\n\n        # TM8358-2 pg 3-7 ID 4\n        u = UtmUps(0, 'N', '1530125.78', '2426773.6')\n        self.test('UtmUps.toLatLonID4.ValidateOK', utmupsValidateOK(u), OK)\n        ll = u.toLatLon(LL)\n        self.test('UtmUps.toLatLonID4', ll.toStr(form=F_DMS), '84°17′14.04″N, 132°14′52.76″W')\n        self.test('UtmUps.toLatLonID4', ll, '84.287234°N, 132.247989°W')\n\n        # TM8358-2 pg 3-7 ID 5\n        u = UtmUps(0, 'N', '3320416.75', '632668.43')\n        self.test('UtmUps.ValidateOK', utmupsValidateOK(u), OK, known=True)\n        ll = u.toLatLon(LL)\n        self.test('UtmUps.toLatLonID5', ll.toStr(form=F_DMS), '73°00′00.0″N, 044°00′00.0″E')  # 72°59′60.0″N, ...\n        self.test('UtmUps.toLatLonID5', ll, '73.0°N, 044.0°E')\n\n        # TM8358-2 pg 3-7 ID 6\n        u = UtmUps(0, 'S', '2222979.47', '1797474.9')\n        self.test('UtmUps.ValidateOK', utmupsValidateOK(u), OK)\n        ll = u.toLatLon(LL)\n        self.test('UtmUps.toLatLonID6', ll.toStr(form=F_DMS), '87°17′14.4″S, 132°14′52.3″E')\n        self.test('UtmUps.toLatLonID6', ll, '87.287333°S, 132.247861°E')\n\n        # <https://GeographicLib.SourceForge.io/cgi-bin/GeoConvert>\n        ll = LL(61.2, -149.9, name='Anchorage')\n        self.test('latlon1', ll, ll)\n        u = toUtmUps8(ll)  # 06n 344174 6788521 (61°12'00.0\"N 149°54'00.0\"W) MGRS 06VUN4417388521\n        self.test('toUtmUps8', u, '06 N 344174 6788521')\n        self.test('toUtmUps8', u.toStr(prec=6, B=True, cs=True), '06V N 344173.864114 6788521.418164 -2.54179531° 0.99989751')\n        self.test('toUtmUps8.ValidateOK', utmupsValidateOK(u), OK)\n        self.test('toMgrs', u.toMgrs(), '06V UN 44173 88521')\n\n        ll = LL(83.627, -32.664, name='Cape Morris Jesup, Greenland')\n        self.test('latlon2', repr(ll), 'LatLon(83°37′37.2″N, 032°39′50.4″W)')\n        u = toUtmUps8(ll)  # 25n 504164 9286466 (83°37'37.2\"N 032°39'50.4\"W) MGRS 25XEN0416386465\n        self.test('toUtmUps8', u, '25 N 504164 9286466')\n        self.test('toUtmUps8', repr(u), '[Z:25X, H:N, E:504164, N:9286466]')\n        self.test('toUtmUps8', u.toStr(prec=6, B=True, cs=True), '25X N 504163.899383 9286465.664902 +20.03542083′ 0.99960021')\n        self.test('toUtmUps8.ValidateOK', utmupsValidateOK(u), OK)\n        self.test('toMgrs', u.toMgrs(), '25X EN 04163 86465')\n\n        ll = LL(33.33, 44.44)\n        self.test('latlon3', ll, ll)\n        u = toUtmUps8(ll)  # 38n 447882 3688012 (33°19'48.0\"N 044°26'24.0\"E) MGRS 38SMB4788288011\n        self.test('toUtmUps8', u, '38 N 447882 3688012')\n        self.test('toUtmUps8', u.toStr(prec=6, B=True, cs=True), '38S N 447882.413169 3688011.692733 -18.46228466′ 0.99963349')\n        self.test('toUtmUps8.ValidateOK', utmupsValidateOK(u), OK)\n        self.test('toMgrs', u.toMgrs(), '38S MB 47882 88011')\n\n        ll = LL(-79, -79)\n        self.test('latlon4', ll, ll)\n        u = toUtmUps8(ll)  # 17s 542594 1229296 (79°00'00.0\"S 079°00'00.0\"W) MGRS 17CNN4259429296\n        self.test('toUtmUps8', u, '17 S 542594 1229296')\n        self.test('toUtmUps8', u.toStr(prec=6, B=True, cs=True), '17C S 542594.134555 1229296.157301 -1.96328341° 0.99962217')\n        self.test('toUtmUps8.ValidateOK', utmupsValidateOK(u), OK)\n        self.test('toMgrs', u.toMgrs(), '17C NN 42594 29296')\n\n        ll = LL(84, 84)\n        self.test('latlon5', ll, ll)\n        u = toUtmUps8(ll)  # n 2663075 1930308 (84°00'00.0\"N 084°00'00.0\"E) MGRS ZJG6307530307\n        self.test('toUtmUps8', u, '00 N 2663075 1930308')\n        self.test('toUtmUps8', u.toStr(prec=6, B=True, cs=True), '00Z N 2663075.299562 1930307.977716 +84.0° 0.99673')\n        self.test('toUtmUps8.ValidateOK', utmupsValidateOK(u), OK)\n        # self.test('toMgrs', u.toMgrs(), 'Z JG 63075 30307')\n\n        ll = LL(13.4125, 103.8667)\n        self.test('latlon6', ll, ll)\n        u = toUtmUps8(ll)  # N 377302.354182663 1483034.77706381 -000.26291348° 0.999786229\n        self.test('toUtmUps8', u, '48 N 377302 1483035')\n        self.test('toUtmUps8', u.toStr(prec=6, B=True, cs=True), '48P N 377302.354183 1483034.777084 -15.77480856′ 0.99978623')\n        self.test('toUtmUps8.ValidateOK', utmupsValidateOK(u), OK)\n        self.test('toMgrs', u.toMgrs(), '48P UV 77302 83034')\n\n        ll = LL(-13.4125, -103.8667)\n        self.test('latlon7', ll, ll)\n        u = ll.toUtmUps()  # S 622697.645817337 8516965.22293619 -000.26291348° 0.999786229\n        self.test('LL.toUtmUps', u, '13 S 622698 8516965')\n        self.test('LL.toUtmUps', u.toStr(prec=6, B=True, cs=True), '13L S 622697.645817 8516965.222916 -15.77480856′ 0.99978623')\n        self.test('LL.toUtmUps.ValidateOK', utmupsValidateOK(u), OK)\n        self.test('toMgrs', u.toMgrs(), '13L FF 22697 16965')\n\n        ll = LL(43.684097, 175.265195)\n        self.test('latlon8', ll, ll)\n        u = ll.toUtmUps()\n        self.test('LL.toUtmUps', u, '60 N 360177 4838249')\n        self.test('LL.toUtmUps', u.toStr(prec=3), '60 N 360176.691 4838249.422')\n        self.test('LL.toUtmUps', u.toRepr(B=True, cs=True), '[Z:60T, H:N, E:360177, N:4838249, C:-1.19839163°, S:0.99984048]')\n#       self.test('LL.toUtmUps', u.toStr2(B=True, cs=True), '[Z:60T, H:N, E:360177, N:4838249, C:-1.19839163°, S:0.99984048]')\n        self.test('LL.toUtmUps.ValidateOK', utmupsValidateOK(u), OK)\n        self.test('toMgrs', u.toMgrs(), '60T UP 60176 38249')\n        ll = u.toLatLon(LL)\n        self.test('UtmUps.toLatLon', ll, '43.684097°N, 175.265195°E')\n        self.test('UtmUps.toLatLon', ll.toStr(form=F_DMS), '43°41′02.75″N, 175°15′54.7″E')\n\n        ll = LL(41.321801, -74.801413)  # Milford, PA\n        self.test('latlon9', ll, ll)\n        u = ll.toUtmUps()\n        self.test('LL.toUtmUps', u, '18 N 516620 4574500')\n        self.test('LL.toUtmUps', u.toRepr(B=True, cs=True), '[Z:18T, H:N, E:516620, N:4574500, C:+7.86748851′, S:0.9996034]')\n#        self.test('LL.toUtmUps', u.toStr2(B=True, cs=True), '[Z:18T, H:N, E:516620, N:4574500, C:+7.86748851′, S:0.9996034]')\n        self.test('LL.toUtmUps.ValidateOK', utmupsValidateOK(u), OK)\n        self.test('toMgrs', u.toMgrs(), '18T WL 16619 74500')\n        ll = u.toLatLon(LL)\n        self.test('UtmUps.toLatLon', ll, '41.321801°N, 074.801413°W')\n        self.test('UtmUps.toLatLon', ll.toStr(form=F_DMS), '41°19′18.48″N, 074°48′05.09″W')\n        u = parseUTMUPS5(str(u))\n        self.test('parseUTMUPS5', u, '18 N 516620 4574500')\n        self.test('parseUTMUPS5.ValidateOK', utmupsValidateOK(u), OK)\n        ll = u.toLatLon(LL)\n        self.test('UtmUps.toLatLon', ll, '41.321801°N, 074.801413°W')\n\n        # courtesy of U{sumnamazu<https://GitHub.com/mrJean1/PyGeodesy/issues/26>}\n        u = UtmUps(0, 'S', 321441.0425108216, 5810117.133231169)  # falsed=False\n        self.test('UtmUps', u.toStr(B=True), '00A S 321441 5810117')\n        self.test('UtmUps.ValidateOK', utmupsValidateOK(u), OK, known=True)\n        ll = u.toLatLon(LL)\n        self.test('UtmUps.toLatLon', ll, '53.713776°S, 023.77604°W')\n        self.test('UtmUps.toLatLon', ll.toStr(form=F_DMS), '53°42′49.59″S, 023°46′33.74″W')\n        u = ll.toUtmUps()  # 27s 316807 4044745 (53°42'49.6\"S 023°46'33.7\"W) MGRS 27FUA1680744744\n        self.test('LL.toUtmUps', u, '27 S 316807 4044745')\n        self.test('LL.toUtmUps.ValidateOK', utmupsValidateOK(u), OK)\n        self.test('LL.toUtmUps', u.toStr(prec=3), '27 S 316807.326 4044744.532')\n        self.test('LL.toUtmUps', u.toRepr(B=True, cs=True), '[Z:27F, H:S, E:316807, N:4044745, C:+2.23830171°, S:1.00001184]')\n#       self.test('LL.toUtmUps', u.toStr2(B=True, cs=True), '[Z:27F, H:S, E:316807, N:4044745, C:+2.23830171°, S:1.00001184]')\n\n        u = UtmUps(0, 'N', 400000, 5000000, falsed=False)\n        self.test('UtmUps', u.toStr(B=True), '00Z N 400000 5000000')\n        self.test('UtmUps.ValidateOK', utmupsValidateOK(u), OK)\n\n        u = parseUTMUPS5('31X N 446000,8436100', Utm=None, Ups=None)  # Svalbard\n        self.test('parseUTMUPS5', u, \"(31, 'N', 446000.0, 8436100.0, 'X')\")\n        u = parseUTMUPS5('00A S 506346 1057743', Utm=None, Ups=None)\n        self.test('parseUTMUPS5', u, \"(0, 'S', 506346.0, 1057743.0, 'A')\")\n\n\nif __name__ == '__main__':\n\n    from pygeodesy import ellipsoidalVincenty\n\n    t = Tests(__file__, __version__, utmups)\n    t.testUtmUps(ellipsoidalVincenty.LatLon)\n    t.results()\n    t.exit()\n"
  },
  {
    "path": "test/testUtmUpsTMcoords.py",
    "content": "\n# -*- coding: utf-8 -*-\n\n# Test UTM/UPS function with the C(TMcoords.dat} from U{C. F. F. Karney,\n# \"Test data for the transverse Mercator projection (2009)\"\n# <https://GeographicLib.SourceForge.io/C++/doc/transversemercator.html>},\n# also available U{here<https://Zenodo.org/record/32470>}, file C{TMcoords.dat}.\n\n__all__ = ('testUtmUpsTMcoords',)\n__version__ = '24.03.22'\n\nfrom testTMcoords import testTMcoords\n\n\ndef testUtmUpsTMcoords(name):\n\n    from pygeodesy import toUtmUps8, Ups, Utm, utmups\n\n    testTMcoords(utmups, toUtmUps8, name=name, Utm=Utm, Ups=Ups)\n\n\nif __name__ == '__main__':\n\n    testUtmUpsTMcoords(__file__)\n"
  },
  {
    "path": "test/testVectorial.py",
    "content": "\n# -*- coding: utf-8 -*-\n\n# Test L{vector3d} and L{vector3d} modules.\n\n__all__ = ('Tests',)\n__version__ = '25.10.07'\n\nfrom bases import coverage, endswith, GeodSolve, numpy, TestsBase\n\nfrom pygeodesy import EPS, EPS4, F_D, NEG0, \\\n                      circin6, circum3, circum4_, fstr, \\\n                      intersection3d3, IntersectionError, isnear0, \\\n                      meeus2, radii11, sincos2d, sphericalNvector, \\\n                      soddy4, trilaterate2d2, trilaterate3d2, \\\n                      vector2d, vector3d, Vector3d as V3d, VectorError\nfrom pygeodesy.interns import _DOT_  # INTERNAL\n\n\nclass Tests(TestsBase):\n\n    def testIntersection3d3(self):\n\n        self.subtitle(vector3d, intersection3d3.__name__.capitalize())\n\n        # <https://www.MathOpenRef.com/coordintersection.html>\n        s1, e1 = V3d(15, 10, 1), V3d(49, 25, 2)\n        s2, e2 = V3d(29, 5, 3),  V3d(32, 32, 4)\n        self.test('(30, 17)', intersection3d3(s1, e1, s2, e2, useZ=False), '(Vector3d(30.30584, 16.75258, 0.0), 0, 0)')\n        s2 = V3d(7, 10, 5)\n        self.test('(-1,  3)', intersection3d3(s1, e1, s2, e2, useZ=False), '(Vector3d(-1.0429, 2.92225, 0.0), -1, -2)')\n        s2 = V3d(62, 32, 6)\n        self.test('(65, 32)', intersection3d3(s1, e1, s2, e2, useZ=False), '(Vector3d(64.86667, 32.0, 0.0), 1, -2)')\n        try:\n            s2 = V3d(32 - (49 - 15), 32 - (25 - 10), 7)\n            self.test('(-2, 17)', intersection3d3(s1, e1, s2, e2, useZ=False), IntersectionError.__name__)\n        except Exception as x:\n            self.test('(-2, 17)', x.__class__, IntersectionError)\n        self.test('(49, 25)', intersection3d3(s1, e1, e1, e1, useZ=False), '(Vector3d(49.0, 25.0, 0.0), 0, 0)')\n\n        # bearing test\n        s1 = V3d(0, 10)\n        s2 = V3d(20, 0)\n        r, m = 50, 0.0\n        for d in range(0, 361, 3):\n            v  = V3d(*sincos2d(d)).times(r)\n            b1 = v.minus(s1).bearing(useZ=False)\n            b2 = v.minus(s2).bearing(useZ=False)\n            p  = intersection3d3(s1, b1, s2, b2).point\n            e  = p.minus(v).length / r\n            m  = max(e, m)\n            self.test('at %d' % (d,), p, v, known=e <= m, nl=not d)\n        self.test('max error', m, m, fmt='%.10e')\n\n    def testNvectorBase(self, module, **kwds):\n\n        try:\n            Nvector = module.Nvector\n            c = Nvector.__name__\n        except AttributeError:\n            Nvector = module.NvectorBase\n            c = 'Vector4Tuple'\n        self.subtitle(module, Nvector.__name__)\n\n        v = Nvector(0.500, 0.500, 0.707, **kwds)\n        s = module.sumOf((v, v), h=0, name='sumOf')\n        self.test('sumOf', s.__class__.__name__, c)\n\n        p = v.toLatLon(LatLon=None)\n        c = v.toCartesian(Cartesian=None)\n        self.test('ecef.x, .y, .z', fstr(p[:3],  prec=5), fstr(c[:3],  prec=5))\n        self.test('ecef.lat, .lon', fstr(p[3:5], prec=6), fstr(c[3:5], prec=6))\n        self.test('ecef.height', fstr(p.height, prec=6), fstr(c.height, prec=6), known=True)\n        if c.M is not None:\n            self.test('ecef.M', fstr(p.M, prec=9), fstr(c.M, prec=9))\n\n        if coverage:\n            from pygeodesy.namedTuples import LatLon2Tuple, LatLon3Tuple, \\\n                                              PhiLam2Tuple, PhiLam3Tuple\n\n            self.test('.isEllipsoidal', v.isEllipsoidal, not v.isSpherical)\n            self.test('.isSpherical',   v.isSpherical,   not v.isEllipsoidal)\n\n            self.test('.latlon', v.latlon, LatLon2Tuple(v.lat, v.lon))\n            self.test('.philam', v.philam, PhiLam2Tuple(v.phi, v.lam))\n\n            self.test('.latlonheight', v.latlonheight, LatLon3Tuple(v.lat, v.lon, v.h), known=v.h in (0, 0.0, NEG0))\n            self.test('.philamheight', v.philamheight, PhiLam3Tuple(v.phi, v.lam, v.h), known=v.h in (0, 0.0, NEG0))\n\n            t = v.parse('0.5, 0.5, 0.707')\n            self.test('parse', t, v)\n            self.test('cmp', t.cmp(v), 0)\n\n            self.test('eq', t == v, True)\n            self.test('ge', t >= v, True)\n            self.test('gt', t >  v, False)\n            self.test('le', t <= v, True)\n            self.test('lt', t <  v, False)\n            self.test('ne', t != v, False)\n\n            m = t * 2\n            self.test('*', m, '(1.0, 1.0, 1.414)')\n            self.test('+', t + v, m)\n            self.test('/', m / 2, t)\n            self.test('-', m - t, t)\n\n            m = v.__matmul__(t)\n            self.test('@', m, '(0.0, 0.0, 0.0)')\n            r = t.__rmatmul__(m)\n            self.test('@', r, m)\n\n            r = v.rotate(m, 45)\n            self.test('rotate', r, '(0.26268, 0.26268, 0.37143)')\n\n            r.crosserrors = True\n            self.test('crosserrors', r.crosserrors, True)\n\n            try:\n                self.test('0', v.dividedBy(0), VectorError.__name__)\n            except Exception as x:\n                self.test('0', str(x), ' division by zero', known=endswith)\n\n            t = vector3d.intersections2(Nvector(   0, 0, 0), 500,\n                                        Nvector(1000, 0, 0), 500, sphere=False)\n            self.test('intersections2', t[0], t[1])  # abutting\n\n        p1, p2 = Nvector(-100, -100, -100), Nvector(100, 100, 100)\n        t = vector2d.nearestOn(Nvector(0, 0, 0), p1, p2)\n        self.test('nearestOn', t, '(0.0, 0.0, 0.0)')\n        t = vector3d.nearestOn(Nvector(-200, -200, 0), p1, p2)\n        self.test('nearestOn', t is p1, True)\n        t = vector3d.nearestOn(Nvector(200, 200, 0), p1, p2)\n        self.test('nearestOn', t, p2)\n        self.test('nearestOn', t is p2, True)\n        t = vector3d.iscolinearWith(Nvector(200, 200, 0), p1, p2)\n        self.test('iscolinearWith', t, False)\n        t = vector3d.iscolinearWith(Nvector(0, 0, 0), p1, p2)\n        self.test('iscolinearWith', t, True)\n\n        p1, p2 = V3d(-100, -100, -100), V3d(100, 100, 100)\n        t = V3d(0, 0, 0).nearestOn(p1, p2)\n        self.test('nearestOn', t, '(0.0, 0.0, 0.0)')\n        t = V3d(-200, -200, 0).nearestOn(p1, p2)\n        self.test('nearestOn', t is p1, True)\n        t = V3d(200, 200, 0).nearestOn(p1, p2)\n        self.test('nearestOn', t, p2)\n        self.test('nearestOn', t is p2, True)\n        t = V3d(200, 200, 0).iscolinearWith(p1, p2)\n        self.test('iscolinearWith', t, False)\n        t = V3d(0, 0, 0).iscolinearWith(p1, p2)\n        self.test('iscolinearWith', t, True)\n\n    def testVectorial(self, module, Sph=False):  # MCCABE 14\n        # .testSpherical.py line 386 uses ...(Nv, Sph=True)\n        self.subtitle(module, 'Vectorial')\n\n        LatLon, Nvector, meanOf, sumOf = module.LatLon, module.Nvector, module.meanOf, module.sumOf\n\n        if hasattr(LatLon, 'crossTrackDistanceTo'):\n            p = LatLon(53.2611, -0.7972)\n            s = LatLon(53.3206, -1.7297)\n            d = p.crossTrackDistanceTo(s, 96.0)\n            self.test('crossTrackDistanceTo', d, '-305.67', prec=2)  # -305.7\n            e = LatLon(53.1887, 0.1334)\n            d = p.crossTrackDistanceTo(s, e)\n            self.test('crossTrackDistanceTo', d, '-307.55', prec=2)  # -307.5\n\n        if hasattr(LatLon, 'enclosedby'):\n            r = LatLon(45,1), LatLon(45,2), LatLon(46,2), LatLon(46,1)\n            p = LatLon(45.1, 1.1)\n            self.test('enclosedby', p.enclosedby(r), True)\n            r = LatLon(45,1), LatLon(46,2), LatLon(45,2), LatLon(46,1)\n            self.test('enclosedby', p.enclosedby(r), False)\n\n        v = Nvector(0.500, 0.500, 0.707)\n        p = v.toLatLon()\n        self.test('toLatLon', p, '44.995674°N, 045.0°E', nl=1)  # 45.0°N, 45.0°E\n        c = p.toNvector()\n        self.test('toNvector', c, '(0.50004, 0.50004, 0.70705)')  # 0.500, 0.500, 0.707\n        self.test('isequalTo', c.isequalTo(v), False)\n        self.test('isequalTo', c.isequalTo(v, units=True), True)\n        self.test('length', v.length, '0.99992449715', prec=11)\n        self.test('euclid', v.euclid, '0.99995577', prec=8)\n        self.test('length', c.length, '1.00', prec=2)\n        self.test('euclid', c.euclid, '1.0000', prec=4)\n\n        s = meanOf((p, p, p, p), height=0, LatLon=LatLon)\n        self.test('meanOf', s, '44.995674°N, 045.0°E')\n        self.test('meanOf', s.__class__.__name__, LatLon.__name__)\n\n        t = v.apply(max, v)\n        self.test('apply', t, v)\n        t.x += v.x  # coverage\n        t.y += v.y\n        t.z += v.z\n        t = v.classof(v)\n        self.test('init', t, v)\n\n        t  = v.copy()  # coverage\n        t += v\n        t -= v\n        t *= 2\n        t  = t.__itruediv__(2)  # # /= chokes PyChecker\n        self.test('i***', t, v)\n        self.test('abs', abs(t), v.length, prec=11)\n\n        class Nv(Nvector):\n            pass\n        v = Nvector(52.205, 0.119, 0.0)\n        s = sumOf((v, c), Vector=Nv, h=0, name='sumOf')\n        self.test('sumOf', s, '(52.70504, 0.61904, 0.70705)')\n        self.test('sumOf', s.__class__.__name__, 'Nv')\n        self.test('sumOf', s._name, 'sumOf')\n        self.test('length', s.length, '52.7134151513', prec=10)\n        z = v.sizeof  # coverage\n        self.test('sizeof', str(z), 128, known=z is None or z > 64)  # without length\n        self.test('length', v.length, '52.2051356286', prec=10)\n        z = v.sizeof  # coverage\n        self.test('sizeof', str(z), 247, known=z is None or z > 64)  # with length\n\n        c = v.copy()\n        self.test('copy', c.isequalTo(v), True)\n        self.test('length', c.length, '52.2051356286', prec=10)\n        self.test('sizeof', c.sizeof, str(z), known=True)\n\n        if module is sphericalNvector:  # coverage\n            c = p.toCartesian()\n            self.test('toCartesian', c, '[3185744.919, 3185744.919, 4504643.315]', nl=1)\n            self.test('toLatLon',  c.toLatLon(), p, known=True)  # '44.995674°N, 045.0°E, -0.00m'\n            self.test('toNvector', c.toNvector(), '(0.50004, 0.50004, 0.70705, -0.00)', known=True)\n\n        if hasattr(LatLon, 'intersection'):\n            # <https://GitHub.com/ChrisVeness/geodesy/blob/master/test/latlon-vectors-tests.js>\n            p = LatLon(1, 1)\n            i = p.intersection(LatLon(2, 2), LatLon(1, 4), LatLon(2, 3))\n            self.test('intersection', i, '02.499372°N, 002.5°E', nl=1, nt=1)\n\n        if Sph and hasattr(module, 'intersection2'):  # sphericalNvector\n            i, a = module.intersection2(LatLon(1, 1), LatLon(2, 2), LatLon(1, 4), LatLon(2, 3))\n            self.test('intersection1', i, '02.499372°N, 002.5°E')\n            self.test('intersection2', a, '02.499372°S, 177.5°W', nt=1)\n\n        if hasattr(LatLon, 'isenclosedBy'):\n            p = LatLon(45.1, 1.1)\n\n            b = LatLon(45, 1), LatLon(45, 2), LatLon(46, 2), LatLon(46, 1)\n            for _ in self.testiter():\n                self.test('isenclosedBy', p.isenclosedBy(b), True)\n\n            b = LatLon(45, 1), LatLon(45, 3), LatLon(46, 2), LatLon(47, 3), LatLon(47, 1)\n            for _ in self.testiter():\n                try:\n                    self.test('isenclosedBy', p.isenclosedBy(b), True)  # Nvector\n                except ValueError as x:\n                    t = ' '.join(str(x).split()[:3] + ['...)'])\n                    self.test('isenclosedBy', t, 'non-convex: (LatLon(45°00′00.0″N, 001°00′00.0″E), ...)')  # Trig\n\n        if hasattr(LatLon, 'iswithin'):\n            # courtesy of Paulius Šarka (psarka) Aug 30, 2017\n            p = LatLon(1, 1).iswithin(LatLon(2, 2), LatLon(2, 2))\n            self.test('iswithin', p, False, nl=1)\n            p = LatLon(2, 2).iswithin(LatLon(2, 2), LatLon(2, 2))\n            self.test('iswithin', p, True)\n\n        if hasattr(LatLon, 'nearestOn'):\n            s1 = LatLon(51.0, 1.0)\n            s2 = LatLon(51.0, 2.0)\n\n            s = LatLon(41.0, 0.0)\n            p = s.nearestOn(s1, s2, within=True)\n            self.test('nearestOn', p.toStr(F_D, prec=3), '51.0°N, 001.0°E', nl=1)\n            p = s.nearestOn(s1, s2, within=False)\n            self.test('nearestOn', p.toStr(F_D, prec=3), '50.987°N, 000.298°W')\n\n            s = LatLon(61.0, 3.0)\n            p = s.nearestOn(s1, s2, within=True)\n            self.test('nearestOn', p.toStr(F_D, prec=3), '51.0°N, 002.0°E')\n            p = s.nearestOn(s1, s2, within=False)\n            self.test('nearestOn', p.toStr(F_D, prec=3), '50.995°N, 002.655°E')\n\n            s = LatLon(51.0, 1.9)\n            p = s.nearestOn(s1, s2)  # 51.0004°N, 001.9000°E\n            self.test('nearestOn', p.toStr(F_D, prec=3), '51.0°N, 001.9°E')\n            self.test('nearestOn', isinstance(p, LatLon), True)\n\n            d = p.distanceTo(s)  # 42.71 m\n            self.test('distanceTo', d, 42.712 if module is sphericalNvector else 42.826, prec=3, known=int(d) == 42)\n            s = LatLon(51.0, 2.1)\n            p = s.nearestOn(s1, s2)  # 51.0000°N, 002.0000°E\n            self.test('nearestOn', p.toStr(F_D), '51.0°N, 002.0°E')\n            self.test('nearestOn', isinstance(p, LatLon), True)\n\n            # courtesy of AkimboEG on GitHub\n            s1 = LatLon(0, 0)\n            s2 = LatLon(0, 1)\n            s = LatLon(1, 0)\n            p = s.nearestOn(s1, s2)  # 0.0°N, 0.0°E\n            self.test('nearestOn', p, '00.0°N, 000.0°E')\n            self.test('nearestOn', isinstance(p, LatLon), True)\n\n            p = LatLon(10, -140).nearestOn(LatLon(0, 20), LatLon(0, 40))\n            self.test('nearestOn', p, '00.0°N, 020.0°E')\n            self.test('nearestOn', isinstance(p, LatLon), True)\n\n            # courtesy of Paulius Šarka (psarka) Aug 30, 2017\n            p = LatLon(1, 1).nearestOn(LatLon(2, 2), LatLon(2, 2))\n            self.test('nearestOn', p, '02.0°N, 002.0°E')\n            p = LatLon(2, 2).nearestOn(LatLon(2, 2), LatLon(2, 2))\n            self.test('nearestOn', p, '02.0°N, 002.0°E')\n\n        if hasattr(LatLon, 'nearestOn6'):\n            b = LatLon(45, 1), LatLon(45, 2), LatLon(46, 2), LatLon(46, 1)\n            p = LatLon(1, 1).nearestOn6(b, height=0)\n            self.test('neareston6', p, '(LatLon(45°00′00.0″N, 001°00′00.0″E), 4773243.784965, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E))' if Sph\n                                  else '(LatLon(45°00′00.0″N, 001°00′00.0″E), 4755443.4294, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E))', nl=1)\n            p = LatLon(45.5, 2.5).nearestOn6(b, height=0)\n            self.test('neareston6', p, '(LatLon(45°30′03.93″N, 002°00′00.0″E), 38968.531578, 1.501091, 2, LatLon(45°00′00.0″N, 002°00′00.0″E), LatLon(46°00′00.0″N, 002°00′00.0″E))' if Sph\n                                  else '(LatLon(45°30′03.94″N, 002°00′00.0″E), 39078.729285, 1.501072, 2, LatLon(45°00′00.0″N, 002°00′00.0″E), LatLon(46°00′00.0″N, 002°00′00.0″E))')\n\n        if hasattr(LatLon, 'triangulate'):\n            # courtesy of pvezid  Feb 10, 2017\n            p = LatLon(\"47°18.228'N\",\"002°34.326'W\")  # Basse Castouillet\n            self.test('BasseC', p, '47.3038°N, 002.5721°W', nl=1)\n            s = LatLon(\"47°18.664'N\",\"002°31.717'W\")  # Basse Hergo\n            self.test('BasseH', s, '47.311067°N, 002.528617°W')\n            t = p.triangulate(7, s, 295)\n            self.test('triangulate', t, '47.323667°N, 002.568501°W')\n            self.test('triangulate', isinstance(t, LatLon), True)\n\n        if hasattr(LatLon, 'trilaterate'):\n            # <https://GitHub.com/ChrisVeness/geodesy/blob/master/test/latlon-nvector-spherical-tests.js>\n            p = LatLon(37.418436, -121.963477)\n            t = p.trilaterate(265.710701754, LatLon(37.417243, -121.961889), 234.592423446,\n                                             LatLon(37.418692, -121.960194), 54.8954278262)\n            self.test('trilaterate', t, '37.419078°N, 121.960579°W', nl=1)\n            self.test('trilaterate', isinstance(t, LatLon), True)\n\n            # courtesy of U{Carlos Freitas<https://GitHub.com/mrJean1/PyGeodesy/issues/33>}\n            b1 = LatLon(-8.068361, -34.892722)\n            b2 = LatLon(-8.075917, -34.894611)\n            b3 = LatLon(-8.076361, -34.908000)\n            p  = LatLon(-8.068912, -34.888699)\n            d1 = b1.distanceTo(p)\n            d2 = b2.distanceTo(p)\n            d3 = b3.distanceTo(p)\n            t = b1.trilaterate(d1, b2, d2, b3, d3)\n            self.test('trilaterate', t, p)\n            self.test('trilaterate', isinstance(t, LatLon), True)\n            t = b1.trilaterate(d1, b2, d2, b3, d3, useZ=True)\n            self.test('trilaterate', t, p, known=abs(t.lon - p.lon) < 1e-5)\n            self.test('trilaterate', isinstance(t, LatLon), True)\n\n            # courtesy of U{AleixDev<https://GitHub.com/mrJean1/PyGeodesy/issues/43>}\n            d  = 5110  # meter\n            p1 = LatLon(42.688839, 2.438857)\n            p2 = LatLon(42.635421, 2.522570)\n            t = p1.trilaterate(d, p2, d, LatLon(42.630788,2.500713), d)\n            self.test('trilaterate', t.toStr(F_D, prec=8), '42.67456065°N, 002.49539502°E')\n            try:\n                t = p1.trilaterate(d, p2, d, LatLon(42.64540, 2.504811), d)\n                self.test('trilaterate', t.toStr(F_D, prec=8), IntersectionError.__name__)\n            except IntersectionError as x:\n                self.test('trilaterate', str(x), str(x))\n\n        if hasattr(LatLon, 'destinationNed'):\n            # courtesy of PatrikHudak <https://GitHub.com/mrJean1/PyGeodesy/issues/72>\n            from pygeodesy import Ned  # in .ltpTuples\n            d = LatLon(49.66618, 3.45063).destinationNed(Ned(-86126, -78900, 1069))\n            self.test('destinationNed', d.toStr(), \"48°53′12.01″N, 002°22′29.0″E, +0.20m\", nl=1)\n\n        self.testNvectorBase(module)\n\n    def testTrilaterate3d(self, module, Vector):\n\n        try:  # need numpy\n            self.subtitle(module, Vector.__name__)\n\n            # <https://GISPoint.de/artikelarchiv/avn/2008/avn-ausgabe-12008/\n            # 2303-direkte-loesung-des-raeumlichen-bogenschnitts-mit-methoden-der-linearen-algebra.html>\n            c1, r1 = Vector( 50.0, 150.0, 13.0), 74.760\n            c2, r2 = Vector(100.0,  50.0, 11.0), 84.623\n            c3, r3 = Vector(200.0, 120.0, 12.0), 82.608\n            t = c1.trilaterate3d2(r1, c2, r2, c3, r3)\n            k = float(numpy.__version__.rsplit('.', 1)[0]) < 1.12  # numpy too old?\n\n            n = _DOT_(c1.named3, Vector.trilaterate3d2.__name__)\n            self.test(n, len(t), 2)\n            self.test(t[0].named3, fstr(t[0].xyz, prec=4), '119.8958, 130.6508, -5.1451', known=k)\n            self.test(t[1].named3, fstr(t[1].xyz, prec=4), '119.9999, 129.9999, 30.0019', known=k)\n\n            # <https://www.ResearchGate.net/publication/275027725>\n            c1, r1 = Vector(27.297, -4.953, 1.470), 3.851  # 3.857\n            c2, r2 = Vector(25.475, -6.124, 2.360), 3.875  # 3.988\n            c3, r3 = Vector(22.590,  0.524, 1.200), 3.514  # 3.497\n            for C, V in ((vector3d, dict(Vector=Vector)),\n                         (Vector, {})):  # method\n                f = C.trilaterate3d2\n                t = f(c1, r1, c2, r2, c3, r3, **V)\n                n = _DOT_(C.__name__, f.__name__)\n\n                self.test(n, len(t), 2)\n                self.test(t[0].named3, fstr(t[0].xyz, prec=5), '24.31229, -2.52045, 1.53649', known=k)\n                self.test(t[1].named3, fstr(t[1].xyz, prec=5), '24.35062, -2.48109, 1.66673', known=k)\n\n                try:  # concentric\n                    t = f(c3, r1, c2, r2, c3, r3, **V)\n                    self.test(n, t, IntersectionError.__name__)\n                except IntersectionError as x:\n                    t = str(x)\n                    self.test(n, t, t)\n\n                try:  # too distant\n                    t = f(c1, r1 * 0.1, c2, r2 * 0.1, c3, r3, **V)\n                    self.test(n, t, IntersectionError.__name__)\n                except IntersectionError as x:\n                    t = str(x)\n                    self.test(n, t, t)\n\n                try:  # colinear\n                    t = f(Vector(0, 0, 0), 10, Vector(0, 9, 0), 10, Vector(0, -9, 0), 10)\n                    self.test(n, t, IntersectionError.__name__)\n                except IntersectionError as x:\n                    t = str(x)\n                    self.test(n, t, t)\n\n        except ImportError as x:\n            self.skip(str(x), n=14)\n\n    def testTrilaterate2d2(self):\n\n        self.subtitle(vector2d, trilaterate2d2.__name__.capitalize())\n        # courtesy of U{MartinManganiello<https://GitHub.com/mrJean1/PyGeodesy/issues/49>}\n        t = trilaterate2d2(2, 2, 1, 3, 3, 1, 1, 4, 1.4142)\n        self.test(trilaterate2d2.__name__, t.toStr(prec=1), '(2.0, 3.0)')  # XXX ?\n        try:\n            t = trilaterate2d2(2, 2, 1, 3, 3, 1, 1, 4, 1.4142, eps=EPS)\n            self.test(trilaterate2d2.__name__, t.toStr(prec=1), IntersectionError.__name__)\n        except ValueError as x:\n            self.test(trilaterate2d2.__name__, str(x), str(x))\n\n        t = trilaterate2d2(-500, -200,  450,\n                            100, -100,  694.6221994724903,\n                            500,  100, 1011.1874208078342)\n        self.test(trilaterate2d2.__name__, t.toStr(prec=1), '(-500.0, 250.0)')\n\n        v1, v2, v3 = V3d(1, 1), V3d(2, 4), V3d(5, 3)\n        r, c = v1.meeus2(v2, v3)  # PYCHOK Meeus2Tuple\n        self.test(meeus2.__name__, fstr((r, c.x, c.y, c.z), prec=3), '2.236, 3.0, 2.0, 0.0')\n        t = v1.trilaterate2d2(r, v2, r, v3, r)\n        self.test(meeus2.__name__, t, '(3.0, 2.0, 0)')\n\n        v, c, d = circum3(v1, v2, v3, useZ=False, eps=1e-14)\n        self.test(circum3.__name__, v, r, prec=4)\n        self.test(circum3.__name__, c, t)\n        self.test(circum3.__name__, d, None, known=d)\n\n        try:  # need numpy\n            v, c, k, s = circum4_(v1, v2, v3)\n            self.test(circum4_.__name__, v, r, prec=4)\n            self.test(circum4_.__name__, c, t, known=isnear0(c.z))\n            self.test(circum4_.__name__, k, 3, known=True)\n            self.test(circum4_.__name__, s, (), known=True)\n\n            # v1, v2, v3 = V3d(0, 0), V3d(100, 0), V3d(0, 100)\n            t = radii11(v1, v2, v3).toRepr()\n            self.test(radii11.__name__, t, t)  # XXX\n            t = circin6(v1, v2, v3, eps=1e-14).toRepr()\n            self.test(circin6.__name__, t, t)  # XXX\n            t = soddy4(v1, v2, v3, eps=1e-14).toRepr()\n            self.test(soddy4.__name__, t, t)  # XXX\n        except ImportError as x:\n            self.skip(str(x), n=7)\n\n    def testTrilaterate3d2(self, Vector):\n\n        try:  # need numpy\n            self.subtitle(vector2d, trilaterate3d2.__name__.capitalize())\n            n = _DOT_(vector2d.__name__, trilaterate3d2.__name__)\n\n            # coutesy Martin Manganiello <https://GitHub.com/mrJean1/PyGeodesy/issues/49>\n            c1, r1 = Vector(-500, -200, 0),  450.0\n            c2, r2 = Vector( 100, -100, 0),  694.6221994724903\n            c3, r3 = Vector( 500,  100, 0), 1011.1874208078342\n\n            try:  # no intersection, no perturbation for eps=0\n                t = trilaterate3d2(c1, r1, c2, r2, c3, r3, eps=0)\n                self.test(n, t, IntersectionError.__name__)\n            except IntersectionError as x:\n                t = str(x)\n                self.test(n, t, t)\n\n            # by default, perturbation at EPS and qsrt(EPS)\n            t = trilaterate3d2(c1, r1, c2, r2, c3, r3)  # eps=EPS\n            self.test(n, len(t), 2)\n            for v in t:\n                self.test(v.named3, fstr(v.xyz, prec=5), '-500.0, 250.0, 0.0', known=v.z)\n\n            v1, v2, v3 = V3d(-1, 0, -1), V3d(0, 2), V3d(1, 0, 1)\n            r, t = meeus2(v1, v2, v3)\n            self.test(meeus2.__name__, r, 1.5, prec=2)\n            self.test(meeus2.__name__, t, None)\n            for c in v1.trilaterate3d2(r, v2, r, v3, r, eps=EPS4):\n                self.test(meeus2.__name__, fstr(c.xyz, prec=9), '0.0, 0.5, 0.0', known=c.z)\n\n            t, c, d = v1.circum3(v2, v3)  # PYCHOK unpacking eps=EPS4\n            self.test(circum3.__name__, t, r, prec=2)\n            self.test(circum3.__name__, fstr(c.xyz, prec=9), '0.0, 0.5, 0.0', known=c.z)\n            self.test(circum3.__name__, d, None, known=d)\n\n            t, c, k, s = v1.circum4_(v2, v3)\n            self.test(circum4_.__name__, t, r, prec=2)\n            self.test(circum4_.__name__, fstr(c.xyz, prec=9), '0.0, 0.5, 0.0', known=c.z)\n            self.test(circum4_.__name__, k, 3, known=True)\n            self.test(circum4_.__name__, s, (), known=True)\n\n            # v1, v2, v3 = V3d(3, 3), V3d(6, 6), V3d(10, -4)  # (5.835, (8, 1), None)\n            # t = v1.circum3(v2, v3, eps=1e-14).toRepr()\n            # self.test(circum3.__name__, t, t)\n\n            # v1, v2, v3 = V3d(0, 0), V3d(100, 0), V3d(0, 100)\n            t = v1.radii11(v2, v3).toRepr()\n            self.test(radii11.__name__, t, t)  # XXX\n            t = v1.circin6(v2, v3, eps=1e-14).toRepr()\n            self.test(circin6.__name__, t, t)  # XXX\n            t = v1.soddy4(v2, v3, eps=1e-14).toRepr()\n            self.test(soddy4.__name__, t, t)  # XXX\n        except ImportError as x:\n            self.skip(str(x), n=18)\n\n\nif __name__ == '__main__':\n\n    from pygeodesy import Datums, cartesianBase, ellipsoidalExact, ellipsoidalKarney, \\\n                          ellipsoidalNvector, ellipsoidalVincenty, nvectorBase, \\\n                          sphericalTrigonometry\n\n    t = Tests(__file__, __version__)\n\n    t.testVectorial(ellipsoidalNvector, Sph=False)\n    t.testVectorial(sphericalNvector, Sph=True)\n\n    t.testNvectorBase(nvectorBase, datum=Datums.Sphere)\n    t.testNvectorBase(nvectorBase, datum=Datums.WGS84)\n\n    t.testTrilaterate3d(sphericalNvector,      sphericalNvector.Cartesian)\n    t.testTrilaterate3d(sphericalTrigonometry, sphericalTrigonometry.Cartesian)\n\n    t.testTrilaterate3d(ellipsoidalNvector,  ellipsoidalNvector.Cartesian)\n    t.testTrilaterate3d(ellipsoidalVincenty, ellipsoidalVincenty.Cartesian)\n    t.testTrilaterate3d(ellipsoidalKarney,   ellipsoidalKarney.Cartesian)\n    t.testTrilaterate3d(ellipsoidalExact,    ellipsoidalExact.Cartesian)\n\n    if GeodSolve:\n        from pygeodesy import ellipsoidalGeodSolve\n        t.testTrilaterate3d(ellipsoidalGeodSolve, ellipsoidalGeodSolve.Cartesian)\n\n    t.testTrilaterate3d(cartesianBase,         cartesianBase.CartesianBase)\n    t.testTrilaterate3d(nvectorBase,           nvectorBase.NvectorBase)\n    t.testTrilaterate3d(vector2d,              vector3d.Vector3d)\n\n    t.testTrilaterate2d2()\n    t.testTrilaterate3d2(vector3d.Vector3d)\n\n    t.testIntersection3d3()\n\n    t.results()\n    t.exit()\n"
  },
  {
    "path": "test/testWebMercator.py",
    "content": "\n# -*- coding: utf-8 -*-\n\n# Test L{webmercator} module.\n\n__all__ = ('Tests',)\n__version__ = '23.06.12'\n\nfrom math import log, radians, tan  # as _tan\nfrom bases import startswith, TestsBase\n\nfrom pygeodesy import F_D, F_DMS, R_M, R_MA, Datums, \\\n                      fstr, toWm, webmercator, Wm\n\n\nclass Tests(TestsBase):\n\n    def testWebMercator(self, LatLon, LatLonE):\n        # <https://AlastairA.WordPress.com/2011/01/23/\n        #        the-google-maps-bing-maps-spherical-mercator-projection>\n        lat = 52.4827802220782\n        w = toWm(lat, -5.625)\n        self.test('toWm1', w.toStr(prec=8), '-626172.13571216 6887893.4928338')\n        y = R_MA * log(tan(radians((90 + lat) * 0.5)))\n        self.test('Wm1.y', y, '6887893.49283380', fmt='%.8f')\n        self.testCopy(w)\n\n        w = Wm(448251.795, 5411932.678)\n        self.test('Wm2', w, '448251.795 5411932.678')\n        self.test('Wm2', w.toStr(prec=0), '448252 5411933')\n        self.test('Wm2', w.toStr(prec=1), '448251.8 5411932.7')\n        self.testCopy(w)\n\n        ll = w.latlon2(None)  # 2-tuple\n        self.test('Wm2.to2ll', fstr(ll, prec=8), '43.65321741, 4.02671439')\n\n        ll = w.toLatLon()  # LatLonDatum3Tuple\n        self.test('Wm2.toLatLon', ll, \"(43.653217, 4.026714, Datum(name='_Wm', \", known=startswith)\n\n        ll = w.toLatLon(LatLon)\n        self.test('Wm2.toLatLon', ll, '43.653217°N, 004.026714°E')\n        self.test('Wm2.toLatLon', ll.toStr(form=F_DMS), '43°39′11.58″N, 004°01′36.17″E')\n\n        w = ll.toWm()  # 448251.795205746 5411932.67761691\n        self.test('toWm1', w, '448251.795 5411932.678')\n        self.test('toWm2', w.toStr(prec=0), '448252 5411933')\n        self.test('toWm3', w.toRepr(prec=0, radius=True), '[x:448252, y:5411933, radius:6378137]')\n#       self.test('toWm3', w.toStr2(prec=0, radius=True), '[x:448252, y:5411933, radius:6378137]')\n\n        t = w.copy()\n        self.test('copy', t, w)\n        t = w.parse(w.toStr(prec=3))\n        self.test('parse', t, w)\n        t = w.parse(w.toStr(prec=3, radius=True))\n        self.test('parse', t, w)\n        t = w.parse(w.toStr(prec=3, radius=False))\n        self.test('parse', t.toRepr(radius=True), w.toRepr(radius=True))\n\n        ll = LatLon(13.4125, 103.8667)\n        w = toWm(ll)  # R_M\n        self.test('toWm4', w.toStr(prec=0), '11549466 1505215')\n        self.test('toWm4', w.toStr(prec=6), '11549465.988273 1505214.929251')\n\n        ll = LatLonE(13.4125, 103.8667)\n        w = toWm(ll)\n        self.test('toWm4E', w.toStr(prec=0), '11562388 1496994')\n        self.test('toWm4E', w.toStr(prec=6), '11562388.154378 1496993.698095')\n\n        # <https://www.EPSG.org/Portals/0/373-07-02.pdf> page 45\n        w = toWm('''24°22'54.433\"N''', '''100°20'0\"W''', radius=R_MA)  # earth=R_MA\n        self.test('toWm', w.toStr(prec=0), '-11169056 2800000')\n        self.test('toWm', w.toStr(prec=6), '-11169055.576258 2800000.003136')\n\n        ll = LatLonE('''24°22'54.433\"N''', '''100°20'00.0\"W''')\n        w = ll.toWm()  # R_MA\n        self.test('toWm5E', w.toStr(prec=0), '-11169056 2782367')\n        self.test('toWm5E', w.toStr(prec=6), '-11169055.576258 2782367.05923')\n\n        ll = LatLon('''24°22'54.433\"N''', '''100°20'0\"W''')\n        w = ll.toWm()  # R_M\n        self.test('toWm5', w.toStr(prec=0), '-11156573 2796871')\n        self.test('toWm5', w.toStr(prec=6), '-11156573.000041 2796870.713179')\n\n        w = Wm(-11169055.58, 2810000)\n        ll = w.toLatLon(LatLon)\n        self.test('Wm6.toLatLon', ll, '24.46358°N, 100.333333°W')\n        self.test('Wm6.toLatLon', ll.toStr(form=F_DMS), '24°27′48.89″N, 100°20′00.0″W')\n        ll = w.toLatLon(LatLonE, datum=Datums.WGS84)\n        self.test('Wm6.toLatLonE', ll, '24.299812°N, 100.333333°W')\n        self.test('Wm6.toLatLonE', ll.toStr(form=F_DMS), '24°17′59.32″N, 100°20′00.0″W')\n\n        w = Wm(-11169055.58, 2800000)\n        ll = w.toLatLon(LatLon)\n        self.test('Wm7.toLatLon', ll, '24.381787°N, 100.333333°W')\n        self.test('Wm7.toLatLon', ll.toStr(form=F_DMS), '24°22′54.43″N, 100°20′00.0″W')\n        ll = w.toLatLon(LatLonE, datum=Datums.WGS84)\n        self.test('Wm7.toLatLonE', ll, '24.218566°N, 100.333333°W')\n        self.test('Wm7.toLatLonE', ll.toStr(form=F_DMS), '24°13′06.84″N, 100°20′00.0″W')\n\n        # <https://AlastairA.WordPress.com/2011/01/23/\n        #        the-google-maps-bing-maps-spherical-mercator-projection>\n        w = toWm(51.4085960537841, -0.304339270784791, Wm=None)\n        self.test('Wm8.toWm', fstr(w, prec=3), '-33878.893, 6693890.382, 6378137.0')\n        w = toWm(51.4085960537841, -0.304339270784791)\n        self.test('Wm8.toWm', w.toRepr(), '[x:-33878.893, y:6693890.382]')\n#       self.test('Wm8.toWm', w.toStr2(), '[x:-33878.893, y:6693890.382]')\n        self.test('Wm8.toWm', w.toStr(radius=R_M), '-33878.893 6693890.382 6371008.771')\n        self.test('Wm8.toWm.x', w.x, '-33878.893',  fmt='%.3f')\n        self.test('Wm8.toWm.y', w.y, '6693890.382', fmt='%.3f')\n        self.test('Wm8.toWm.latlon', fstr(w.latlon, prec=6), '51.408596, -0.304339')\n        self.test('Wm8.toWm.philam', fstr(w.philam, prec=6),  '0.897249, -0.005312')\n        ll = w.toLatLon(LatLon)\n        self.test('Wm8.toLatLon', ll.toStr(form=F_D, prec=12),  '51.408596053784°N, 000.304339270785°W')\n        self.test('Wm8.toLatLon', ll.toStr(form=F_DMS, prec=6), '51°24′30.945794″N, 000°18′15.621375″W')\n\n        for LL, datum in ((LatLon , Datums.WGS84),):\n            #             (None,    Datums.WGS84),\n            #             (None,    None),\n            #             (LatLonE, None),\n            #             (LatLon_, Datums.WGS84)):\n            try:\n                ll = w.toLatLon(LL, datum=datum)\n            except TypeError:\n                ll = 'TypeError'\n            self.test('Wm9.toLatLon', ll, 'TypeError')\n\n        # <https://Earth-Info.NGA.mil/GandG/wgs84/web_mercator/\n        #         %28U%29%20NGA_SIG_0011_1.0.0_WEBMERC.pdf>\n        self._TableA1(R_MA, 0,\n                      '1118889.97', '2273030.93', '3503549.84',\n                      '4865942.28', '6446275.84', '8399737.89')\n        self._TableA1(R_MA, 1.0 / 3600,\n                      '1118921.37', '2273063.83', '3503585.55',\n                      '4865982.65', '6446323.95', '8399799.73')\n        self._TableA1(Datums.WGS84, 0,\n                      '1111475.10', '2258423.65', '3482189.09',\n                      '4838471.40', '6413524.59', '8362698.55')\n        self._TableA1(Datums.WGS84, 1.0 / 3600,\n                      '1111506.30', '2258456.36', '3482224.61',\n                      '4838511.61', '6413572.57', '8362760.29')\n\n    def _TableA1(self, R, secs, *ns):\n        lat, nl = secs, dict(nl=1)\n        for n in ns:\n            lat += 10\n            t = 'toWm(%.4f, 0, earth=%s).y' % (lat, R.name)\n            self.test(t, toWm(lat, 0, earth=R).y, n, fmt='%.2f', **nl)\n            nl = {}\n\n\nif __name__ == '__main__':\n\n    from pygeodesy import ellipsoidalVincenty, sphericalTrigonometry\n\n    t = Tests(__file__, __version__, webmercator)\n    t.testWebMercator(sphericalTrigonometry.LatLon,\n                      ellipsoidalVincenty.LatLon)\n    t.results()\n    t.exit()\n"
  },
  {
    "path": "test/testWgrs.py",
    "content": "\n# -*- coding: utf-8 -*-\n\n# Test L{wgrs} module.\n\n__all__ = ('Tests',)\n__version__ = '23.03.27'\n\nfrom bases import TestsBase\n\nfrom pygeodesy import degDMS, fstr, Georef, S_DEG, S_MIN, wgrs\n\n\ndef _fstr(floats, prec=6):\n    return ', '.join('None' if f is None else fstr(f, prec=prec) for f in floats)\n\n\nclass Tests(TestsBase):\n\n    def testCodec3(self, g, x, prec=4):\n        self.test('codec3', Georef(g), g)\n        t = wgrs.decode3(g)\n        self.test('decode3', _fstr(t, prec=prec), x)\n        self.test('encode', wgrs.encode(*t), g)\n\n    def testCodec5(self, g, x, prec=4):\n        self.test('codec5', Georef(g), g)\n        t = wgrs.decode5(g)\n        self.test('decode5', _fstr(t, prec=prec), x)\n        self.test('encode', wgrs.encode(*t), g)\n\n    def testGeoref(self, LL):\n\n        # Karney's geographiclib/1.49/examples/example-Georef.cpp\n        # <https://SourceForge.net/p/geographiclib/code/ci/release/tree/examples/example-Georef.cpp>\n        g = Georef('57.64911, 10.40744', precision=6)\n        self.test('Georef', repr(g),             \"'NKLN2444638946'\")\n        self.test('Georef', g.toRepr(),   \"Georef('NKLN2444638946')\")\n        self.test('Georef', str(g), g.toStr())  # 'NKLN2444638946'\n        self.test('Georef.latlon', fstr(g.latlon, prec=5), '57.64911, 10.40744')\n        ll = g.toLatLon(LL)\n        self.test('Georef.toLatLon', repr(ll), 'LatLon(57°38′56.8″N, 010°24′26.78″E)')\n        self.testCodec3(g, '57.64911, 10.40744, 6.0', prec=5)\n\n        g = Georef(ll, precision=6)\n        self.test('Georef', repr(g),             \"'NKLN2444638946H0'\")\n        self.test('Georef', g.toRepr(),   \"Georef('NKLN2444638946H0')\")\n        self.test('Georef', str(g), g.toStr())  # 'NKLN2444638946H0'\n        self.test('Georef.latlon', fstr(g.latlon, prec=5), '57.64911, 10.40744')\n        self.test('Georef.precision', g.precision, 6)\n        self.test('Georef.radius', g.radius, None)\n\n        # <https://WikiPedia.org/wiki/World_Geographic_Reference_System>\n        g = Georef('38.286108, -76.4291704', precision=6)\n        self.test('Georef', repr(g),             \"'GJPJ3424917166'\")\n        self.test('Georef', g.toRepr(),   \"Georef('GJPJ3424917166')\")\n        self.test('Georef', str(g), g.toStr())  # 'GJPJ3424917166'\n        self.test('Georef.latlon', fstr(g.latlon, prec=6), '38.286108, -76.42917')\n        ll = g.toLatLon(LL)\n        self.test('Georef.toLatLon', repr(ll), 'LatLon(38°17′09.99″N, 076°25′45.01″W)')\n        self.testCodec3(g, '38.286108, -76.429175, 6.0', prec=6)\n\n        g = Georef(ll, precision=6)\n        self.test('Georef', repr(g),             \"'GJPJ3424917166H0'\")\n        self.test('Georef', g.toRepr(),   \"Georef('GJPJ3424917166H0')\")\n        self.test('Georef', str(g), g.toStr())  # 'GJPJ3424917166H0'\n        self.test('Georef.latlon', fstr(g.latlon, prec=6), '38.286108, -76.42917')\n        self.test('Georef.precision', g.precision, 6)\n        self.test('Georef.radius', g.radius, None)\n        t = g.toLatLon()  # LatLon=None\n        self.test('Georef.3Tuple', fstr(t, prec=6), '38.286108, -76.42917, 0.0')\n\n        # <https://Earth-Info.NGA.mil/GandG/coordsys/grids/georef.pdf>\n        self.testCodec3('MKPG1204', '51.075, -1.7917, 3.0', prec=4)\n\n        # <https://www.Map-Reading.com/ch4-4.php>\n        self.testCodec3('WJKG1503', '36.0583, 129.2583, 3.0', prec=4)\n\n        # <https://WikiPedia.org/wiki/World_Geographic_Reference_System>\n        self.testCodec5('GJPJ4103R5',    '38.0583, -76.3083, 3.0, None, 9260.0',   prec=4)\n        self.testCodec5('GJPJ4103H17',   '38.0583, -76.3083, 3.0, 5181.6, None',   prec=4)\n        self.testCodec5('GJPJ4103R5H17', '38.0583, -76.3083, 3.0, 5181.6, 9260.0', prec=4)\n\n        for t in range(-1, 13):\n            r = wgrs.resolution(t)\n            p = wgrs.precision(r)\n            self.test('precision', t, p, known=t < 0 or t > 11)\n            b = degDMS(r, prec=t if r < 1 else 0, s_S='')  # no S_SEC\n            x = ('15' + S_DEG) if p < 1 else (\n                ( '1' + S_DEG) if p < 2 else ('0.%s1%s' % ('0' * (p - 2), S_MIN)))\n            self.test('resolution', b, x)  # also to test degDMS\n\n\nif __name__ == '__main__':\n\n    from pygeodesy import ellipsoidalVincenty\n\n    t = Tests(__file__, __version__, wgrs)\n    t.testGeoref(ellipsoidalVincenty.LatLon)\n    t.results()\n    t.exit()\n"
  },
  {
    "path": "test/unitTestSuite.py",
    "content": "\n# -*- coding: utf-8 -*-\n\n# Module to run all PyGeodesy tests as  python setup.py test\n\nfrom run import run2\nfrom bases import test_dir\n\nfrom glob import glob\nfrom os.path import join\nimport unittest\n\n__all__ = ('TestSuite',)\n__version__ = '26.02.12'\n\n\nclass TestSuite(unittest.TestCase):\n    '''Combine all test modules into a test suite/case\n       and run each test module as a separate test.\n    '''\n    _runs = 0  # pseudo global, 0 for testGeoids\n\n    def _run(self, test, *argv):\n        TestSuite._runs += 1  # pseudo global\n        x, _ = run2(join(test_dir, test + '.py'), *argv)\n        self.assertEqual(x, 0)\n\n    def test_Albers(self):\n        self._run('testAlbers')\n\n    def test_Angles(self):\n        self._run('testAngles')\n\n    def test_Auxilats(self):\n        self._run('testAuxilats')\n\n    def test_Azimuthal(self):\n        self._run('testAzimuthal')\n\n    def test_Basics(self):\n        self._run('testBasics')\n\n    def test_Booleans(self):\n        self._run('testBooleans')\n\n    def test_Cartesian(self):\n        self._run('testCartesian')\n\n    def test_Classes(self):\n        self._run('testClasses')\n\n    def test_Clipy(self):\n        self._run('testClipy')\n\n    def test_Constants(self):\n        self._run('testConstants')\n\n    def test_Css(self):\n        self._run('testCss')\n\n    def test_Datums(self):\n        self._run('testDatums')\n\n    def test_Deprecated(self):\n        self._run('testDeprecated')\n\n    def test_Dms(self):\n        self._run('testDms')\n\n    def test_Ecef(self):\n        self._run('testEcef')\n\n    def test_Elevations(self):\n        self._run('testElevations')\n\n    def test_Ellipses(self):\n        self._run('testEllipses')\n\n    def test_Ellipsoidal(self):\n        self._run('testEllipsoidal')\n\n    def test_EllipsoidalGeodTest(self):\n        self._run('testEllipsoidalGeodTest')\n\n    def test_Ellipsoids(self):\n        self._run('testEllipsoids')\n\n    def test_Elliptic(self):\n        self._run('testElliptic')\n\n    def test_Espg(self):\n        self._run('testEpsg')\n\n    def test_Errors(self):\n        self._run('testErrors')\n\n    def test_Etm(self):\n        self._run('testEtm')\n\n    def test_EtmTMcoords(self):\n        self._run('testEtmTMcoords')\n\n    def test_ExactTMcoords(self):\n        self._run('testExactTMcoords')\n\n    def test_Fmath(self):\n        self._run('testFmath')\n\n    def test_Formy(self):\n        self._run('testFormy')\n\n    def test_Frechet(self):\n        self._run('testFrechet')\n\n    def test_Frozen(self):\n        self._run('testFrozen')\n\n    def test_Fstats(self):\n        self._run('testFstats')\n\n    def test_Fsums(self):\n        self._run('testFsums')\n\n    def test_Gars(self):\n        self._run('testGars')\n\n    def test_Geohash(self):\n        self._run('testGeohash')\n\n    def test_Geodesici(self):\n        self._run('testGeodesici')\n\n    def test_Geodesicx(self):\n        self._run('testGeodesicx')\n\n    def test_Geoids(self):\n        self._run('testGeoids')  # both Karney and PGM\n        # self._run('testGeoids', '-Karney')\n        # self._run('testGeoids', '-PGM', '-crop')  # -crop to cut time\n\n    def test_GreatCircle(self):\n        self._run('testGreatCircle')\n\n    def test_Hausdorff(self):\n        self._run('testHausdorff')\n\n    def test_Heights(self):\n        self._run('testHeights')\n\n    def test_Interns(self):\n        self._run('testInterns')\n\n    def test_Iters(self):\n        self._run('testIters')\n\n    def test_Karney(self):\n        self._run('testKarney')\n\n    def test_KarneySigns(self):\n        self._run('testKarneySigns')\n\n    def test_Ktm(self):\n        self._run('testKtm')\n\n    def test_LatLonBase(self):\n        self._run('testLatLonBase')\n\n    def test_LatLon(self):\n        self._run('testLatLon')\n\n    def test_Lazily(self):\n        self._run('testLazily')\n\n    def test_Lcc(self):\n        self._run('testLcc')\n\n    def test_Ltp(self):\n        self._run('testLtp')\n\n    def test_LtpTuples(self):\n        self._run('testLtpTuples')\n\n    def test_Mgrs(self):\n        self._run('testMgrs')\n\n    def test_Modules(self):\n        self._run('testModules')\n\n    def test_Named(self):\n        self._run('testNamed')\n\n    def test_NamedTuples(self):\n        self._run('testNamedTuples')\n\n    def test_NavlabExamples(self):\n        self._run('testNavlabExamples')\n\n    def test_Osgr(self):\n        self._run('testOsgr')\n\n    def test_Points(self):\n        self._run('testPoints')\n\n    def test_Props(self):\n        self._run('testProps')\n\n    def test_Resections(self):\n        self._run('testResections')\n\n    def test_Rhumb_aux_(self):\n        self._run('testRhumb_aux_')\n\n    def test_Rhumb_ekx(self):\n        self._run('testRhumb_ekx')\n\n    def test_Routes(self):\n        self._run('testRoutes')\n\n    def test_Simplify(self):\n        self._run('testSimplify')\n\n    def test_Spherical(self):\n        self._run('testSpherical')\n\n    def test_Streprs(self):\n        self._run('testStreprs')\n\n    def test_TMcoords(self):\n        self._run('testTMcoords')\n\n    def test_Trf(self):\n        self._run('testTrf')\n\n    def test_Triaxials(self):\n        self._run('testTriaxials')\n\n    def test_Units(self):\n        self._run('testUnits')\n\n    def test_Ups(self):\n        self._run('testUps')\n\n    def test_Utily(self):\n        self._run('testUtily')\n\n    def test_Utm(self):\n        self._run('testUtm')\n\n    def test_UtmTMcoords(self):\n        self._run('testUtmTMcoords')\n\n    def test_UtmUps(self):\n        self._run('testUtmUps')\n\n    def test_UtmUpsTMcoords(self):\n        self._run('testUtmUpsTMcoords')\n\n    def test_Vectorial(self):\n        self._run('testVectorial')\n\n    def test_WebMercator(self):\n        self._run('testWebMercator')\n\n    def test_Wgrs(self):\n        self._run('testWgrs')\n\n    def test_Ztotal(self):\n        # final test to make sure all tests were run\n        t = len(glob(join(test_dir, 'test[A-Z]*.py')))\n        self.assertEqual(TestSuite._runs, t)\n\n\nif __name__ == '__main__':\n\n    import sys\n\n    unittest.main(argv=sys.argv)  # catchbreak=None, failfast=None, verbosity=2\n"
  },
  {
    "path": "testcoverage.rc",
    "content": "\n# python -m coverage html --rcfile=testcoverage.rc --title=\"...\"\n# __version__ = '25.12.06'\n\n[run]\nbranch = True\n\n[report]\nexclude_lines =\n    pragma: no cover\n    no cover\n    PYCHOK no cover\n    except \\S.*\n    \\sraise\\s\n    if False:\n    if __name__ == .__main__.:\n    if __name__ == _DMAIN_:\n    if _FOR_DOCS:\n\ninclude =\n    pygeodesy/*.py\n    pygeodesy/auxilats/*.py\n    pygeodesy/deprecated/*.py\n    pygeodesy/geodesicx/*.py\n    pygeodesy/rhumb/*.py\n    pygeodesy/triaxials/*.py\n\n# omit = test/*.py\n\n[html]\ndirectory = testcoverage\n"
  },
  {
    "path": "testresults/testresults-pygeodesy-26.3.26-PyPy-7.3.17-Python-3.10.14-64bit-arm64-geographiclib-2.1-Math-2-macOS-26.3.1-isLazy-3--W-default.txt",
    "content": "test/run.py typical test results (pygeodesy 26.3.26 PyPy 7.3.17 Python 3.10.14 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W default)\nrunning /opt/local/bin/p....y3.10 -W default ~/PyGeodesy/test/testAlbers.py\n# lazily imported pygeodesy.basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.DeprecationWarnings from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isint from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isLazy from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.issubclassof from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.iterNumpy2over from .iters by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.LazyImportError from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.karney by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.NN from .interns by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.normDMS from .dms by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.pairs from .streprs by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.printf from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.property_RO from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.typename from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.albers by testAlbers.py line 11\n# lazily imported pygeodesy.AlbersError from .albers by testAlbers.py line 11\n# lazily imported pygeodesy.AlbersEqualArea from .albers by testAlbers.py line 11\n# lazily imported pygeodesy.AlbersEqualArea2 from .albers by testAlbers.py line 11\n# lazily imported pygeodesy.AlbersEqualArea4 from .albers by testAlbers.py line 11\n# lazily imported pygeodesy.AlbersEqualAreaCylindrical from .albers by testAlbers.py line 11\n# lazily imported pygeodesy.AlbersEqualAreaNorth from .albers by testAlbers.py line 11\n# lazily imported pygeodesy.AlbersEqualAreaSouth from .albers by testAlbers.py line 11\n# lazily imported pygeodesy.Datums from .datums by testAlbers.py line 11\n# lazily imported pygeodesy.fstr from .streprs by testAlbers.py line 11\n# lazily imported pygeodesy.sincos2d from .utily by testAlbers.py line 11\n\n    testing testAlbers.py 24.12.31 (module pygeodesy.albers 26.02.27) isLazy=3\n    test 1 name: Karney_example\n    test 2 datum: WGS84\n    test 3 ellipsoid: WGS84\n    test 4 lat0: 40.451991337063\n    test 5 scale0: 0.999959500363\n    test 6 equatoradius: 6378137.000000000000\n    test 7 flattening: 0.003352810665\n    test 8 _sign: 1.000000000000\n    test 9 _m02: 0.580681094922\n    test 10 _n0: 0.648810669236\n    test 11 _txi0: 0.848822476849\n    test 12 iteration: 3\n    test 13 ispolar: False\n    test 14 forward: -5675721.76113533, 2516917.91242155, 39.95, -75.17, 311.23285234, 0.99999745  FAILED, KNOWN, expected -5675721.76113534, 2516917.91242155, 39.95, -75.17, 311.23285234, 0.99999745\n    test 15 reverse: -5675721.76113533, 2516917.91242155, 39.95, -75.17, 311.23285234, 0.99999745  FAILED, KNOWN, expected -5675721.76113534, 2516917.91242155, 39.95, -75.17, 311.23285234, 0.99999745\n    test 16 forward: 199089.12574012, -53115.52801838, 39.95, 2.33, 1.51160641, 0.99999745\n    test 17 reverse: 199089.12574012, -53115.52801838, 39.95, -75.17, 1.51160641, 0.99999745  FAILED, KNOWN, expected 199089.12574012, -53115.52801838, 39.95, 2.33, 1.51160641, 0.99999745\n    test 18 reverse: 220000.0, -53000.0, 39.94581132, 2.57463362, 1.67031446, 0.99999808\n    test 19 forward: 220000.0, -53000.0, 39.94581132, 2.57463362, 1.67031446, 0.99999808\n    test 20 reverse: 220000.0, -53000.0, 39.94581132, -74.92536638, 1.67031446, 0.99999808\n    test 21 forward: 220000.0, -53000.0, 39.94581132, 2.57463362, 1.67031446, 0.99999808  FAILED, KNOWN, expected 220000.0, -53000.0, 39.94581132, -74.92536638, 1.67031446, 0.99999808\n\n    testPage292(pygeodesy.albers, 26.02.27)\n    test 22 name: Snyder_p292\n    test 23 datum: NAD27\n    test 24 ellipsoid: Clarke1866\n    test 25 lat0: 37.934543880726\n    test 26 scale0: 0.990309187872\n    test 27 equatoradius: 6378206.400000000373\n    test 28 flattening: 0.003390075304\n    test 29 _sign: 1.000000000000\n    test 30 _m02: 0.623664507732\n    test 31 _n0: 0.614760830736\n    test 32 _txi0: 0.775925617021\n    test 33 iteration: 4\n    test 34 ispolar: False\n    test 35 forward: -6105839.22928149, 2214046.74930275, 35.0, -75.0, 314.78223745, 0.99155461  FAILED, KNOWN, expected -6105839.22928148, 2214046.74930274, 35.0, -75.0, 314.78223745, 0.99155461\n    test 36 reverse: -6105839.22928149, 2214046.74930275, 35.0, -75.0, 314.78223745, 0.99155461  FAILED, KNOWN, expected -6105839.22928148, 2214046.74930274, 35.0, -75.0, 314.78223745, 0.99155461\n    test 37 forward: 1885472.72581347, -119505.66687765, 35.0, 21.0, 12.66097351, 0.99155461  FAILED, KNOWN, expected 1885472.72581347, -119505.66687766, 35.0, 21.0, 12.66097351, 0.99155461\n    test 38 reverse: 1885472.72581347, -119505.66687765, 35.0, -75.0, 12.66097351, 0.99155461  FAILED, KNOWN, expected 1885472.72581347, -119505.66687766, 35.0, 21.0, 12.66097351, 0.99155461\n    test 39 reverse: 1885427.7, 1535925.0, 49.40436665, 25.93001383, 15.63329611, 1.01436109\n    test 40 forward: 1885427.7, 1535925.0, 49.40436665, 25.93001383, 15.63329611, 1.01436109\n    test 41 reverse: 1885427.7, 1535925.0, 49.40436665, -70.06998617, 15.63329611, 1.01436109\n    test 42 forward: 1885427.7, 1535925.0, 49.40436665, 25.93001383, 15.63329611, 1.01436109  FAILED, KNOWN, expected 1885427.7, 1535925.0, 49.40436665, -70.06998617, 15.63329611, 1.01436109\n\n    testTable15(pygeodesy.albers, 26.02.27)\n    test 43 52 k: 1.02863\n    test 44 50 k: 1.01727\n    test 45 45.5 k: 1.00000\n    test 46 45 k: 0.99869\n    test 47 40 k: 0.99097\n    test 48 35 k: 0.99155\n    test 49 30 k: 0.99893\n    test 50 29.5 k: 1.00000\n    test 51 25 k: 1.01222\n    test 52 22 k: 1.02283\n\n    testLats(pygeodesy.albers, 26.02.27)\n    test 53 AlbersEqualArea.toRepr: AlbersEqualArea(45.0, k0=1.0)\n    test 54 AlbersEqualArea.lat0: 45.0\n    test 55 AlbersEqualArea.lat1: 45.0\n    test 56 AlbersEqualArea.lat2: 45.0\n\n    test 57 AlbersEqualArea2.toRepr: AlbersEqualArea2(40.0, 40.0, k1=1.0)\n    test 58 AlbersEqualArea2.lat0: 40.0\n    test 59 AlbersEqualArea2.lat1: 40.0\n    test 60 AlbersEqualArea2.lat2: 40.0\n\n    test 61 AlbersEqualArea4.toRepr: AlbersEqualArea4(30.0, 30.0, k1=1.0)\n    test 62 AlbersEqualArea4.lat0: 30.0\n    test 63 AlbersEqualArea4.lat1: 30.0\n    test 64 AlbersEqualArea4.lat2: 30.0\n\n    test 65 AlbersEqualArea4.toRepr: AlbersEqualArea4(-30.0, -30.0, k1=1.0)\n    test 66 AlbersEqualArea4.lat0: -30.0\n    test 67 AlbersEqualArea4.lat1: -30.0\n    test 68 AlbersEqualArea4.lat2: -30.0\n\n    test 69 AlbersEqualAreaCylindrical.toRepr: AlbersEqualAreaCylindrical(0.0)\n    test 70 AlbersEqualAreaCylindrical.lat0: 0.0\n    test 71 AlbersEqualAreaCylindrical.lat1: 0.0\n    test 72 AlbersEqualAreaCylindrical.lat2: 0.0\n\n    test 73 AlbersEqualAreaNorth.toRepr: AlbersEqualAreaNorth(90.0)\n    test 74 AlbersEqualAreaNorth.lat0: 90.0\n    test 75 AlbersEqualAreaNorth.lat1: 90.0\n    test 76 AlbersEqualAreaNorth.lat2: 90.0\n\n    test 77 AlbersEqualAreaSouth.toRepr: AlbersEqualAreaSouth(-90.0)\n    test 78 AlbersEqualAreaSouth.lat0: -90.0\n    test 79 AlbersEqualAreaSouth.lat1: -90.0\n    test 80 AlbersEqualAreaSouth.lat2: -90.0\n\n# imported pygeodesy.basics into errors.py line 443\n    test 81 error: clat1 (-0.8660254037844386) or clat2 (1.0): negative\n    test 82 error: slat1 (-0.5) or slat2 (0.5): negative\n\n    9 of 82 testAlbers.py tests (11.0%) FAILED, ALL KNOWN (pygeodesy 26.3.26 PyPy 7.3.17 Python 3.10.14 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 35.140 ms\nrunning /opt/local/bin/p....y3.10 -W default ~/PyGeodesy/test/testAngles.py\n# lazily imported pygeodesy.basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.DeprecationWarnings from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isint from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isLazy from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.issubclassof from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.iterNumpy2over from .iters by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.LazyImportError from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.karney by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.NN from .interns by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.normDMS from .dms by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.pairs from .streprs by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.printf from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.property_RO from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.typename from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.EPS from .constants by testAngles.py line 11\n# lazily imported pygeodesy.INF from .constants by testAngles.py line 11\n# lazily imported pygeodesy.PI from .constants by testAngles.py line 11\n# lazily imported pygeodesy.Ang from .angles by testAngles.py line 11\n# lazily imported pygeodesy.Deg from .angles by testAngles.py line 11\n# lazily imported pygeodesy.Fsum from .fsums by testAngles.py line 11\n# lazily imported pygeodesy.Lambertian from .angles by testAngles.py line 11\n# lazily imported pygeodesy.Rad from .angles by testAngles.py line 11\n\n    testing testAngles.py 25.12.01 (module pygeodesy.angles 25.12.02) isLazy=3\n    test 1 D: -716.000000\n    test 2 r: -12.496557\n    test 3 n: -2.0\n    test 4 R: -7.160000\n    test 5 d: -410.237781\n    test 6 n: -1.0\n    test 7 D: -713.000000\n    test 8 r: -12.444198\n    test 9 n: -2.0\n    test 10 R: -7.130000\n    test 11 d: -408.518908\n    test 12 n: -1.0\n    test 13 D: -710.000000\n    test 14 r: -12.391838\n    test 15 n: -2.0\n    test 16 R: -7.100000\n    test 17 d: -406.800035\n    test 18 n: -1.0\n    test 19 D: -707.000000\n    test 20 r: -12.339478\n    test 21 n: -2.0\n    test 22 R: -7.070000\n    test 23 d: -405.081161\n    test 24 n: -1.0\n    test 25 D: -704.000000\n    test 26 r: -12.287118\n    test 27 n: -2.0\n    test 28 R: -7.040000\n    test 29 d: -403.362288\n    test 30 n: -1.0\n    test 31 D: -701.000000\n    test 32 r: -12.234758\n    test 33 n: -2.0\n    test 34 R: -7.010000\n    test 35 d: -401.643414\n    test 36 n: -1.0\n    test 37 D: -698.000000\n    test 38 r: -12.182398\n    test 39 n: -2.0\n    test 40 R: -6.980000\n    test 41 d: -399.924541\n    test 42 n: -1.0\n    test 43 D: -695.000000\n    test 44 r: -12.130038\n    test 45 n: -2.0\n    test 46 R: -6.950000\n    test 47 d: -398.205668\n    test 48 n: -1.0\n    test 49 D: -692.000000\n    test 50 r: -12.077678\n    test 51 n: -2.0\n    test 52 R: -6.920000\n    test 53 d: -396.486794\n    test 54 n: -1.0\n    test 55 D: -689.000000\n    test 56 r: -12.025319\n    test 57 n: -2.0\n    test 58 R: -6.890000\n    test 59 d: -394.767921\n    test 60 n: -1.0\n    test 61 D: -686.000000\n    test 62 r: -11.972959\n    test 63 n: -2.0\n    test 64 R: -6.860000\n    test 65 d: -393.049047\n    test 66 n: -1.0\n    test 67 D: -683.000000\n    test 68 r: -11.920599\n    test 69 n: -2.0\n    test 70 R: -6.830000\n    test 71 d: -391.330174\n    test 72 n: -1.0\n    test 73 D: -680.000000\n    test 74 r: -11.868239\n    test 75 n: -2.0\n    test 76 R: -6.800000\n    test 77 d: -389.611301\n    test 78 n: -1.0\n    test 79 D: -677.000000\n    test 80 r: -11.815879\n    test 81 n: -2.0\n    test 82 R: -6.770000\n    test 83 d: -387.892427\n    test 84 n: -1.0\n    test 85 D: -674.000000\n    test 86 r: -11.763519\n    test 87 n: -2.0\n    test 88 R: -6.740000\n    test 89 d: -386.173554\n    test 90 n: -1.0\n    test 91 D: -671.000000\n    test 92 r: -11.711159\n    test 93 n: -2.0\n    test 94 R: -6.710000\n    test 95 d: -384.454681\n    test 96 n: -1.0\n    test 97 D: -668.000000\n    test 98 r: -11.658799\n    test 99 n: -2.0\n    test 100 R: -6.680000\n    test 101 d: -382.735807\n    test 102 n: -1.0\n    test 103 D: -665.000000\n    test 104 r: -11.606440\n    test 105 n: -2.0\n    test 106 R: -6.650000\n    test 107 d: -381.016934\n    test 108 n: -1.0\n    test 109 D: -662.000000\n    test 110 r: -11.554080\n    test 111 n: -2.0\n    test 112 R: -6.620000\n    test 113 d: -379.298060\n    test 114 n: -1.0\n    test 115 D: -659.000000\n    test 116 r: -11.501720\n    test 117 n: -2.0\n    test 118 R: -6.590000\n    test 119 d: -377.579187\n    test 120 n: -1.0\n    test 121 D: -656.000000\n    test 122 r: -11.449360\n    test 123 n: -2.0\n    test 124 R: -6.560000\n    test 125 d: -375.860314\n    test 126 n: -1.0\n    test 127 D: -653.000000\n    test 128 r: -11.397000\n    test 129 n: -2.0\n    test 130 R: -6.530000\n    test 131 d: -374.141440\n    test 132 n: -1.0\n    test 133 D: -650.000000\n    test 134 r: -11.344640\n    test 135 n: -2.0\n    test 136 R: -6.500000\n    test 137 d: -372.422567\n    test 138 n: -1.0\n    test 139 D: -647.000000\n    test 140 r: -11.292280\n    test 141 n: -2.0\n    test 142 R: -6.470000\n    test 143 d: -370.703693\n    test 144 n: -1.0\n    test 145 D: -644.000000\n    test 146 r: -11.239920\n    test 147 n: -2.0\n    test 148 R: -6.440000\n    test 149 d: -368.984820\n    test 150 n: -1.0\n    test 151 D: -641.000000\n    test 152 r: -11.187561\n    test 153 n: -2.0\n    test 154 R: -6.410000\n    test 155 d: -367.265947\n    test 156 n: -1.0\n    test 157 D: -638.000000\n    test 158 r: -11.135201\n    test 159 n: -2.0\n    test 160 R: -6.380000\n    test 161 d: -365.547073\n    test 162 n: -1.0\n    test 163 D: -635.000000\n    test 164 r: -11.082841\n    test 165 n: -2.0\n    test 166 R: -6.350000\n    test 167 d: -363.828200\n    test 168 n: -1.0\n    test 169 D: -632.000000\n    test 170 r: -11.030481\n    test 171 n: -2.0\n    test 172 R: -6.320000\n    test 173 d: -362.109327\n    test 174 n: -1.0\n    test 175 D: -629.000000\n    test 176 r: -10.978121\n    test 177 n: -2.0\n    test 178 R: -6.290000\n    test 179 d: -360.390453\n    test 180 n: -1.0\n    test 181 D: -626.000000\n    test 182 r: -10.925761\n    test 183 n: -2.0\n    test 184 R: -6.260000\n    test 185 d: -358.671580\n    test 186 n: -1.0\n    test 187 D: -623.000000\n    test 188 r: -10.873401\n    test 189 n: -2.0\n    test 190 R: -6.230000\n    test 191 d: -356.952706\n    test 192 n: -1.0\n    test 193 D: -620.000000\n    test 194 r: -10.821041\n    test 195 n: -2.0\n    test 196 R: -6.200000\n    test 197 d: -355.233833\n    test 198 n: -1.0\n    test 199 D: -617.000000\n    test 200 r: -10.768681\n    test 201 n: -2.0\n    test 202 R: -6.170000\n    test 203 d: -353.514960\n    test 204 n: -1.0\n    test 205 D: -614.000000\n    test 206 r: -10.716322\n    test 207 n: -2.0\n    test 208 R: -6.140000\n    test 209 d: -351.796086\n    test 210 n: -1.0\n    test 211 D: -611.000000\n    test 212 r: -10.663962\n    test 213 n: -2.0\n    test 214 R: -6.110000\n    test 215 d: -350.077213\n    test 216 n: -1.0\n    test 217 D: -608.000000\n    test 218 r: -10.611602\n    test 219 n: -2.0\n    test 220 R: -6.080000\n    test 221 d: -348.358339\n    test 222 n: -1.0\n    test 223 D: -605.000000\n    test 224 r: -10.559242\n    test 225 n: -2.0\n    test 226 R: -6.050000\n    test 227 d: -346.639466\n    test 228 n: -1.0\n    test 229 D: -602.000000\n    test 230 r: -10.506882\n    test 231 n: -2.0\n    test 232 R: -6.020000\n    test 233 d: -344.920593\n    test 234 n: -1.0\n    test 235 D: -599.000000\n    test 236 r: -10.454522\n    test 237 n: -2.0\n    test 238 R: -5.990000\n    test 239 d: -343.201719\n    test 240 n: -1.0\n    test 241 D: -596.000000\n    test 242 r: -10.402162\n    test 243 n: -2.0\n    test 244 R: -5.960000\n    test 245 d: -341.482846\n    test 246 n: -1.0\n    test 247 D: -593.000000\n    test 248 r: -10.349802\n    test 249 n: -2.0\n    test 250 R: -5.930000\n    test 251 d: -339.763973\n    test 252 n: -1.0\n    test 253 D: -590.000000\n    test 254 r: -10.297443\n    test 255 n: -2.0\n    test 256 R: -5.900000\n    test 257 d: -338.045099\n    test 258 n: -1.0\n    test 259 D: -587.000000\n    test 260 r: -10.245083\n    test 261 n: -2.0\n    test 262 R: -5.870000\n    test 263 d: -336.326226\n    test 264 n: -1.0\n    test 265 D: -584.000000\n    test 266 r: -10.192723\n    test 267 n: -2.0\n    test 268 R: -5.840000\n    test 269 d: -334.607352\n    test 270 n: -1.0\n    test 271 D: -581.000000\n    test 272 r: -10.140363\n    test 273 n: -2.0\n    test 274 R: -5.810000\n    test 275 d: -332.888479\n    test 276 n: -1.0\n    test 277 D: -578.000000\n    test 278 r: -10.088003\n    test 279 n: -2.0\n    test 280 R: -5.780000\n    test 281 d: -331.169606\n    test 282 n: -1.0\n    test 283 D: -575.000000\n    test 284 r: -10.035643\n    test 285 n: -2.0\n    test 286 R: -5.750000\n    test 287 d: -329.450732\n    test 288 n: -1.0\n    test 289 D: -572.000000\n    test 290 r: -9.983283\n    test 291 n: -2.0\n    test 292 R: -5.720000\n    test 293 d: -327.731859\n    test 294 n: -1.0\n    test 295 D: -569.000000\n    test 296 r: -9.930923\n    test 297 n: -2.0\n    test 298 R: -5.690000\n    test 299 d: -326.012985\n    test 300 n: -1.0\n    test 301 D: -566.000000\n    test 302 r: -9.878564\n    test 303 n: -2.0\n    test 304 R: -5.660000\n    test 305 d: -324.294112\n    test 306 n: -1.0\n    test 307 D: -563.000000\n    test 308 r: -9.826204\n    test 309 n: -2.0\n    test 310 R: -5.630000\n    test 311 d: -322.575239\n    test 312 n: -1.0\n    test 313 D: -560.000000\n    test 314 r: -9.773844\n    test 315 n: -2.0\n    test 316 R: -5.600000\n    test 317 d: -320.856365\n    test 318 n: -1.0\n    test 319 D: -557.000000\n    test 320 r: -9.721484\n    test 321 n: -2.0\n    test 322 R: -5.570000\n    test 323 d: -319.137492\n    test 324 n: -1.0\n    test 325 D: -554.000000\n    test 326 r: -9.669124\n    test 327 n: -2.0\n    test 328 R: -5.540000\n    test 329 d: -317.418619\n    test 330 n: -1.0\n    test 331 D: -551.000000\n    test 332 r: -9.616764\n    test 333 n: -2.0\n    test 334 R: -5.510000\n    test 335 d: -315.699745\n    test 336 n: -1.0\n    test 337 D: -548.000000\n    test 338 r: -9.564404\n    test 339 n: -2.0\n    test 340 R: -5.480000\n    test 341 d: -313.980872\n    test 342 n: -1.0\n    test 343 D: -545.000000\n    test 344 r: -9.512044\n    test 345 n: -2.0\n    test 346 R: -5.450000\n    test 347 d: -312.261998\n    test 348 n: -1.0\n    test 349 D: -542.000000\n    test 350 r: -9.459685\n    test 351 n: -2.0\n    test 352 R: -5.420000\n    test 353 d: -310.543125\n    test 354 n: -1.0\n    test 355 D: -539.000000\n    test 356 r: -9.407325\n    test 357 n: -1.0\n    test 358 R: -5.390000\n    test 359 d: -308.824252\n    test 360 n: -1.0\n    test 361 D: -536.000000\n    test 362 r: -9.354965\n    test 363 n: -1.0\n    test 364 R: -5.360000\n    test 365 d: -307.105378\n    test 366 n: -1.0\n    test 367 D: -533.000000\n    test 368 r: -9.302605\n    test 369 n: -1.0\n    test 370 R: -5.330000\n    test 371 d: -305.386505\n    test 372 n: -1.0\n    test 373 D: -530.000000\n    test 374 r: -9.250245\n    test 375 n: -1.0\n    test 376 R: -5.300000\n    test 377 d: -303.667631\n    test 378 n: -1.0\n    test 379 D: -527.000000\n    test 380 r: -9.197885\n    test 381 n: -1.0\n    test 382 R: -5.270000\n    test 383 d: -301.948758\n    test 384 n: -1.0\n    test 385 D: -524.000000\n    test 386 r: -9.145525\n    test 387 n: -1.0\n    test 388 R: -5.240000\n    test 389 d: -300.229885\n    test 390 n: -1.0\n    test 391 D: -521.000000\n    test 392 r: -9.093165\n    test 393 n: -1.0\n    test 394 R: -5.210000\n    test 395 d: -298.511011\n    test 396 n: -1.0\n    test 397 D: -518.000000\n    test 398 r: -9.040806\n    test 399 n: -1.0\n    test 400 R: -5.180000\n    test 401 d: -296.792138\n    test 402 n: -1.0\n    test 403 D: -515.000000\n    test 404 r: -8.988446\n    test 405 n: -1.0\n    test 406 R: -5.150000\n    test 407 d: -295.073264\n    test 408 n: -1.0\n    test 409 D: -512.000000\n    test 410 r: -8.936086\n    test 411 n: -1.0\n    test 412 R: -5.120000\n    test 413 d: -293.354391\n    test 414 n: -1.0\n    test 415 D: -509.000000\n    test 416 r: -8.883726\n    test 417 n: -1.0\n    test 418 R: -5.090000\n    test 419 d: -291.635518\n    test 420 n: -1.0\n    test 421 D: -506.000000\n    test 422 r: -8.831366\n    test 423 n: -1.0\n    test 424 R: -5.060000\n    test 425 d: -289.916644\n    test 426 n: -1.0\n    test 427 D: -503.000000\n    test 428 r: -8.779006\n    test 429 n: -1.0\n    test 430 R: -5.030000\n    test 431 d: -288.197771\n    test 432 n: -1.0\n    test 433 D: -500.000000\n    test 434 r: -8.726646\n    test 435 n: -1.0\n    test 436 R: -5.000000\n    test 437 d: -286.478898\n    test 438 n: -1.0\n    test 439 D: -497.000000\n    test 440 r: -8.674286\n    test 441 n: -1.0\n    test 442 R: -4.970000\n    test 443 d: -284.760024\n    test 444 n: -1.0\n    test 445 D: -494.000000\n    test 446 r: -8.621927\n    test 447 n: -1.0\n    test 448 R: -4.940000\n    test 449 d: -283.041151\n    test 450 n: -1.0\n    test 451 D: -491.000000\n    test 452 r: -8.569567\n    test 453 n: -1.0\n    test 454 R: -4.910000\n    test 455 d: -281.322277\n    test 456 n: -1.0\n    test 457 D: -488.000000\n    test 458 r: -8.517207\n    test 459 n: -1.0\n    test 460 R: -4.880000\n    test 461 d: -279.603404\n    test 462 n: -1.0\n    test 463 D: -485.000000\n    test 464 r: -8.464847\n    test 465 n: -1.0\n    test 466 R: -4.850000\n    test 467 d: -277.884531\n    test 468 n: -1.0\n    test 469 D: -482.000000\n    test 470 r: -8.412487\n    test 471 n: -1.0\n    test 472 R: -4.820000\n    test 473 d: -276.165657\n    test 474 n: -1.0\n    test 475 D: -479.000000\n    test 476 r: -8.360127\n    test 477 n: -1.0\n    test 478 R: -4.790000\n    test 479 d: -274.446784\n    test 480 n: -1.0\n    test 481 D: -476.000000\n    test 482 r: -8.307767\n    test 483 n: -1.0\n    test 484 R: -4.760000\n    test 485 d: -272.727910\n    test 486 n: -1.0\n    test 487 D: -473.000000\n    test 488 r: -8.255407\n    test 489 n: -1.0\n    test 490 R: -4.730000\n    test 491 d: -271.009037\n    test 492 n: -1.0\n    test 493 D: -470.000000\n    test 494 r: -8.203047\n    test 495 n: -1.0\n    test 496 R: -4.700000\n    test 497 d: -269.290164\n    test 498 n: -1.0\n    test 499 D: -467.000000\n    test 500 r: -8.150688\n    test 501 n: -1.0\n    test 502 R: -4.670000\n    test 503 d: -267.571290\n    test 504 n: -1.0\n    test 505 D: -464.000000\n    test 506 r: -8.098328\n    test 507 n: -1.0\n    test 508 R: -4.640000\n    test 509 d: -265.852417\n    test 510 n: -1.0\n    test 511 D: -461.000000\n    test 512 r: -8.045968\n    test 513 n: -1.0\n    test 514 R: -4.610000\n    test 515 d: -264.133544\n    test 516 n: -1.0\n    test 517 D: -458.000000\n    test 518 r: -7.993608\n    test 519 n: -1.0\n    test 520 R: -4.580000\n    test 521 d: -262.414670\n    test 522 n: -1.0\n    test 523 D: -455.000000\n    test 524 r: -7.941248\n    test 525 n: -1.0\n    test 526 R: -4.550000\n    test 527 d: -260.695797\n    test 528 n: -1.0\n    test 529 D: -452.000000\n    test 530 r: -7.888888\n    test 531 n: -1.0\n    test 532 R: -4.520000\n    test 533 d: -258.976923\n    test 534 n: -1.0\n    test 535 D: -449.000000\n    test 536 r: -7.836528\n    test 537 n: -1.0\n    test 538 R: -4.490000\n    test 539 d: -257.258050\n    test 540 n: -1.0\n    test 541 D: -446.000000\n    test 542 r: -7.784168\n    test 543 n: -1.0\n    test 544 R: -4.460000\n    test 545 d: -255.539177\n    test 546 n: -1.0\n    test 547 D: -443.000000\n    test 548 r: -7.731809\n    test 549 n: -1.0\n    test 550 R: -4.430000\n    test 551 d: -253.820303\n    test 552 n: -1.0\n    test 553 D: -440.000000\n    test 554 r: -7.679449\n    test 555 n: -1.0\n    test 556 R: -4.400000\n    test 557 d: -252.101430\n    test 558 n: -1.0\n    test 559 D: -437.000000\n    test 560 r: -7.627089\n    test 561 n: -1.0\n    test 562 R: -4.370000\n    test 563 d: -250.382556\n    test 564 n: -1.0\n    test 565 D: -434.000000\n    test 566 r: -7.574729\n    test 567 n: -1.0\n    test 568 R: -4.340000\n    test 569 d: -248.663683\n    test 570 n: -1.0\n    test 571 D: -431.000000\n    test 572 r: -7.522369\n    test 573 n: -1.0\n    test 574 R: -4.310000\n    test 575 d: -246.944810\n    test 576 n: -1.0\n    test 577 D: -428.000000\n    test 578 r: -7.470009\n    test 579 n: -1.0\n    test 580 R: -4.280000\n    test 581 d: -245.225936\n    test 582 n: -1.0\n    test 583 D: -425.000000\n    test 584 r: -7.417649\n    test 585 n: -1.0\n    test 586 R: -4.250000\n    test 587 d: -243.507063\n    test 588 n: -1.0\n    test 589 D: -422.000000\n    test 590 r: -7.365289\n    test 591 n: -1.0\n    test 592 R: -4.220000\n    test 593 d: -241.788190\n    test 594 n: -1.0\n    test 595 D: -419.000000\n    test 596 r: -7.312930\n    test 597 n: -1.0\n    test 598 R: -4.190000\n    test 599 d: -240.069316\n    test 600 n: -1.0\n    test 601 D: -416.000000\n    test 602 r: -7.260570\n    test 603 n: -1.0\n    test 604 R: -4.160000\n    test 605 d: -238.350443\n    test 606 n: -1.0\n    test 607 D: -413.000000\n    test 608 r: -7.208210\n    test 609 n: -1.0\n    test 610 R: -4.130000\n    test 611 d: -236.631569\n    test 612 n: -1.0\n    test 613 D: -410.000000\n    test 614 r: -7.155850\n    test 615 n: -1.0\n    test 616 R: -4.100000\n    test 617 d: -234.912696\n    test 618 n: -1.0\n    test 619 D: -407.000000\n    test 620 r: -7.103490\n    test 621 n: -1.0\n    test 622 R: -4.070000\n    test 623 d: -233.193823\n    test 624 n: -1.0\n    test 625 D: -404.000000\n    test 626 r: -7.051130\n    test 627 n: -1.0\n    test 628 R: -4.040000\n    test 629 d: -231.474949\n    test 630 n: -1.0\n    test 631 D: -401.000000\n    test 632 r: -6.998770\n    test 633 n: -1.0\n    test 634 R: -4.010000\n    test 635 d: -229.756076\n    test 636 n: -1.0\n    test 637 D: -398.000000\n    test 638 r: -6.946410\n    test 639 n: -1.0\n    test 640 R: -3.980000\n    test 641 d: -228.037202\n    test 642 n: -1.0\n    test 643 D: -395.000000\n    test 644 r: -6.894051\n    test 645 n: -1.0\n    test 646 R: -3.950000\n    test 647 d: -226.318329\n    test 648 n: -1.0\n    test 649 D: -392.000000\n    test 650 r: -6.841691\n    test 651 n: -1.0\n    test 652 R: -3.920000\n    test 653 d: -224.599456\n    test 654 n: -1.0\n    test 655 D: -389.000000\n    test 656 r: -6.789331\n    test 657 n: -1.0\n    test 658 R: -3.890000\n    test 659 d: -222.880582\n    test 660 n: -1.0\n    test 661 D: -386.000000\n    test 662 r: -6.736971\n    test 663 n: -1.0\n    test 664 R: -3.860000\n    test 665 d: -221.161709\n    test 666 n: -1.0\n    test 667 D: -383.000000\n    test 668 r: -6.684611\n    test 669 n: -1.0\n    test 670 R: -3.830000\n    test 671 d: -219.442836\n    test 672 n: -1.0\n    test 673 D: -380.000000\n    test 674 r: -6.632251\n    test 675 n: -1.0\n    test 676 R: -3.800000\n    test 677 d: -217.723962\n    test 678 n: -1.0\n    test 679 D: -377.000000\n    test 680 r: -6.579891\n    test 681 n: -1.0\n    test 682 R: -3.770000\n    test 683 d: -216.005089\n    test 684 n: -1.0\n    test 685 D: -374.000000\n    test 686 r: -6.527531\n    test 687 n: -1.0\n    test 688 R: -3.740000\n    test 689 d: -214.286215\n    test 690 n: -1.0\n    test 691 D: -371.000000\n    test 692 r: -6.475172\n    test 693 n: -1.0\n    test 694 R: -3.710000\n    test 695 d: -212.567342\n    test 696 n: -1.0\n    test 697 D: -368.000000\n    test 698 r: -6.422812\n    test 699 n: -1.0\n    test 700 R: -3.680000\n    test 701 d: -210.848469\n    test 702 n: -1.0\n    test 703 D: -365.000000\n    test 704 r: -6.370452\n    test 705 n: -1.0\n    test 706 R: -3.650000\n    test 707 d: -209.129595\n    test 708 n: -1.0\n    test 709 D: -362.000000\n    test 710 r: -6.318092\n    test 711 n: -1.0\n    test 712 R: -3.620000\n    test 713 d: -207.410722\n    test 714 n: -1.0\n    test 715 D: -359.000000\n    test 716 r: -6.265732\n    test 717 n: -1.0\n    test 718 R: -3.590000\n    test 719 d: -205.691848\n    test 720 n: -1.0\n    test 721 D: -356.000000\n    test 722 r: -6.213372\n    test 723 n: -1.0\n    test 724 R: -3.560000\n    test 725 d: -203.972975\n    test 726 n: -1.0\n    test 727 D: -353.000000\n    test 728 r: -6.161012\n    test 729 n: -1.0\n    test 730 R: -3.530000\n    test 731 d: -202.254102\n    test 732 n: -1.0\n    test 733 D: -350.000000\n    test 734 r: -6.108652\n    test 735 n: -1.0\n    test 736 R: -3.500000\n    test 737 d: -200.535228\n    test 738 n: -1.0\n    test 739 D: -347.000000\n    test 740 r: -6.056293\n    test 741 n: -1.0\n    test 742 R: -3.470000\n    test 743 d: -198.816355\n    test 744 n: -1.0\n    test 745 D: -344.000000\n    test 746 r: -6.003933\n    test 747 n: -1.0\n    test 748 R: -3.440000\n    test 749 d: -197.097482\n    test 750 n: -1.0\n    test 751 D: -341.000000\n    test 752 r: -5.951573\n    test 753 n: -1.0\n    test 754 R: -3.410000\n    test 755 d: -195.378608\n    test 756 n: -1.0\n    test 757 D: -338.000000\n    test 758 r: -5.899213\n    test 759 n: -1.0\n    test 760 R: -3.380000\n    test 761 d: -193.659735\n    test 762 n: -1.0\n    test 763 D: -335.000000\n    test 764 r: -5.846853\n    test 765 n: -1.0\n    test 766 R: -3.350000\n    test 767 d: -191.940861\n    test 768 n: -1.0\n    test 769 D: -332.000000\n    test 770 r: -5.794493\n    test 771 n: -1.0\n    test 772 R: -3.320000\n    test 773 d: -190.221988\n    test 774 n: -1.0\n    test 775 D: -329.000000\n    test 776 r: -5.742133\n    test 777 n: -1.0\n    test 778 R: -3.290000\n    test 779 d: -188.503115\n    test 780 n: -1.0\n    test 781 D: -326.000000\n    test 782 r: -5.689773\n    test 783 n: -1.0\n    test 784 R: -3.260000\n    test 785 d: -186.784241\n    test 786 n: -1.0\n    test 787 D: -323.000000\n    test 788 r: -5.637413\n    test 789 n: -1.0\n    test 790 R: -3.230000\n    test 791 d: -185.065368\n    test 792 n: -1.0\n    test 793 D: -320.000000\n    test 794 r: -5.585054\n    test 795 n: -1.0\n    test 796 R: -3.200000\n    test 797 d: -183.346494\n    test 798 n: -1.0\n    test 799 D: -317.000000\n    test 800 r: -5.532694\n    test 801 n: -1.0\n    test 802 R: -3.170000\n    test 803 d: -181.627621\n    test 804 n: -1.0\n    test 805 D: -314.000000\n    test 806 r: -5.480334\n    test 807 n: -1.0\n    test 808 R: -3.140000\n    test 809 d: -179.908748\n    test 810 n: 0.0\n    test 811 D: -311.000000\n    test 812 r: -5.427974\n    test 813 n: -1.0\n    test 814 R: -3.110000\n    test 815 d: -178.189874\n    test 816 n: 0.0\n    test 817 D: -308.000000\n    test 818 r: -5.375614\n    test 819 n: -1.0\n    test 820 R: -3.080000\n    test 821 d: -176.471001\n    test 822 n: 0.0\n    test 823 D: -305.000000\n    test 824 r: -5.323254\n    test 825 n: -1.0\n    test 826 R: -3.050000\n    test 827 d: -174.752128\n    test 828 n: 0.0\n    test 829 D: -302.000000\n    test 830 r: -5.270894\n    test 831 n: -1.0\n    test 832 R: -3.020000\n    test 833 d: -173.033254\n    test 834 n: 0.0\n    test 835 D: -299.000000\n    test 836 r: -5.218534\n    test 837 n: -1.0\n    test 838 R: -2.990000\n    test 839 d: -171.314381\n    test 840 n: 0.0\n    test 841 D: -296.000000\n    test 842 r: -5.166175\n    test 843 n: -1.0\n    test 844 R: -2.960000\n    test 845 d: -169.595507\n    test 846 n: 0.0\n    test 847 D: -293.000000\n    test 848 r: -5.113815\n    test 849 n: -1.0\n    test 850 R: -2.930000\n    test 851 d: -167.876634\n    test 852 n: 0.0\n    test 853 D: -290.000000\n    test 854 r: -5.061455\n    test 855 n: -1.0\n    test 856 R: -2.900000\n    test 857 d: -166.157761\n    test 858 n: 0.0\n    test 859 D: -287.000000\n    test 860 r: -5.009095\n    test 861 n: -1.0\n    test 862 R: -2.870000\n    test 863 d: -164.438887\n    test 864 n: 0.0\n    test 865 D: -284.000000\n    test 866 r: -4.956735\n    test 867 n: -1.0\n    test 868 R: -2.840000\n    test 869 d: -162.720014\n    test 870 n: 0.0\n    test 871 D: -281.000000\n    test 872 r: -4.904375\n    test 873 n: -1.0\n    test 874 R: -2.810000\n    test 875 d: -161.001140\n    test 876 n: 0.0\n    test 877 D: -278.000000\n    test 878 r: -4.852015\n    test 879 n: -1.0\n    test 880 R: -2.780000\n    test 881 d: -159.282267\n    test 882 n: 0.0\n    test 883 D: -275.000000\n    test 884 r: -4.799655\n    test 885 n: -1.0\n    test 886 R: -2.750000\n    test 887 d: -157.563394\n    test 888 n: 0.0\n    test 889 D: -272.000000\n    test 890 r: -4.747296\n    test 891 n: -1.0\n    test 892 R: -2.720000\n    test 893 d: -155.844520\n    test 894 n: 0.0\n    test 895 D: -269.000000\n    test 896 r: -4.694936\n    test 897 n: -1.0\n    test 898 R: -2.690000\n    test 899 d: -154.125647\n    test 900 n: 0.0\n    test 901 D: -266.000000\n    test 902 r: -4.642576\n    test 903 n: -1.0\n    test 904 R: -2.660000\n    test 905 d: -152.406774\n    test 906 n: 0.0\n    test 907 D: -263.000000\n    test 908 r: -4.590216\n    test 909 n: -1.0\n    test 910 R: -2.630000\n    test 911 d: -150.687900\n    test 912 n: 0.0\n    test 913 D: -260.000000\n    test 914 r: -4.537856\n    test 915 n: -1.0\n    test 916 R: -2.600000\n    test 917 d: -148.969027\n    test 918 n: 0.0\n    test 919 D: -257.000000\n    test 920 r: -4.485496\n    test 921 n: -1.0\n    test 922 R: -2.570000\n    test 923 d: -147.250153\n    test 924 n: 0.0\n    test 925 D: -254.000000\n    test 926 r: -4.433136\n    test 927 n: -1.0\n    test 928 R: -2.540000\n    test 929 d: -145.531280\n    test 930 n: 0.0\n    test 931 D: -251.000000\n    test 932 r: -4.380776\n    test 933 n: -1.0\n    test 934 R: -2.510000\n    test 935 d: -143.812407\n    test 936 n: 0.0\n    test 937 D: -248.000000\n    test 938 r: -4.328417\n    test 939 n: -1.0\n    test 940 R: -2.480000\n    test 941 d: -142.093533\n    test 942 n: 0.0\n    test 943 D: -245.000000\n    test 944 r: -4.276057\n    test 945 n: -1.0\n    test 946 R: -2.450000\n    test 947 d: -140.374660\n    test 948 n: 0.0\n    test 949 D: -242.000000\n    test 950 r: -4.223697\n    test 951 n: -1.0\n    test 952 R: -2.420000\n    test 953 d: -138.655786\n    test 954 n: 0.0\n    test 955 D: -239.000000\n    test 956 r: -4.171337\n    test 957 n: -1.0\n    test 958 R: -2.390000\n    test 959 d: -136.936913\n    test 960 n: 0.0\n    test 961 D: -236.000000\n    test 962 r: -4.118977\n    test 963 n: -1.0\n    test 964 R: -2.360000\n    test 965 d: -135.218040\n    test 966 n: 0.0\n    test 967 D: -233.000000\n    test 968 r: -4.066617\n    test 969 n: -1.0\n    test 970 R: -2.330000\n    test 971 d: -133.499166\n    test 972 n: 0.0\n    test 973 D: -230.000000\n    test 974 r: -4.014257\n    test 975 n: -1.0\n    test 976 R: -2.300000\n    test 977 d: -131.780293\n    test 978 n: 0.0\n    test 979 D: -227.000000\n    test 980 r: -3.961897\n    test 981 n: -1.0\n    test 982 R: -2.270000\n    test 983 d: -130.061419\n    test 984 n: 0.0\n    test 985 D: -224.000000\n    test 986 r: -3.909538\n    test 987 n: -1.0\n    test 988 R: -2.240000\n    test 989 d: -128.342546\n    test 990 n: 0.0\n    test 991 D: -221.000000\n    test 992 r: -3.857178\n    test 993 n: -1.0\n    test 994 R: -2.210000\n    test 995 d: -126.623673\n    test 996 n: 0.0\n    test 997 D: -218.000000\n    test 998 r: -3.804818\n    test 999 n: -1.0\n    test 1000 R: -2.180000\n    test 1001 d: -124.904799\n    test 1002 n: 0.0\n    test 1003 D: -215.000000\n    test 1004 r: -3.752458\n    test 1005 n: -1.0\n    test 1006 R: -2.150000\n    test 1007 d: -123.185926\n    test 1008 n: 0.0\n    test 1009 D: -212.000000\n    test 1010 r: -3.700098\n    test 1011 n: -1.0\n    test 1012 R: -2.120000\n    test 1013 d: -121.467053\n    test 1014 n: 0.0\n    test 1015 D: -209.000000\n    test 1016 r: -3.647738\n    test 1017 n: -1.0\n    test 1018 R: -2.090000\n    test 1019 d: -119.748179\n    test 1020 n: 0.0\n    test 1021 D: -206.000000\n    test 1022 r: -3.595378\n    test 1023 n: -1.0\n    test 1024 R: -2.060000\n    test 1025 d: -118.029306\n    test 1026 n: 0.0\n    test 1027 D: -203.000000\n    test 1028 r: -3.543018\n    test 1029 n: -1.0\n    test 1030 R: -2.030000\n    test 1031 d: -116.310432\n    test 1032 n: 0.0\n    test 1033 D: -200.000000\n    test 1034 r: -3.490659\n    test 1035 n: -1.0\n    test 1036 R: -2.000000\n    test 1037 d: -114.591559\n    test 1038 n: 0.0\n    test 1039 D: -197.000000\n    test 1040 r: -3.438299\n    test 1041 n: -1.0\n    test 1042 R: -1.970000\n    test 1043 d: -112.872686\n    test 1044 n: 0.0\n    test 1045 D: -194.000000\n    test 1046 r: -3.385939\n    test 1047 n: -1.0\n    test 1048 R: -1.940000\n    test 1049 d: -111.153812\n    test 1050 n: 0.0\n    test 1051 D: -191.000000\n    test 1052 r: -3.333579\n    test 1053 n: -1.0\n    test 1054 R: -1.910000\n    test 1055 d: -109.434939\n    test 1056 n: 0.0\n    test 1057 D: -188.000000\n    test 1058 r: -3.281219\n    test 1059 n: -1.0\n    test 1060 R: -1.880000\n    test 1061 d: -107.716065\n    test 1062 n: 0.0\n    test 1063 D: -185.000000\n    test 1064 r: -3.228859\n    test 1065 n: -1.0\n    test 1066 R: -1.850000\n    test 1067 d: -105.997192\n    test 1068 n: 0.0\n    test 1069 D: -182.000000\n    test 1070 r: -3.176499\n    test 1071 n: -1.0\n    test 1072 R: -1.820000\n    test 1073 d: -104.278319\n    test 1074 n: 0.0\n    test 1075 D: -179.000000\n    test 1076 r: -3.124139\n    test 1077 n: 0.0\n    test 1078 R: -1.790000\n    test 1079 d: -102.559445\n    test 1080 n: 0.0\n    test 1081 D: -176.000000\n    test 1082 r: -3.071779\n    test 1083 n: 0.0\n    test 1084 R: -1.760000\n    test 1085 d: -100.840572\n    test 1086 n: 0.0\n    test 1087 D: -173.000000\n    test 1088 r: -3.019420\n    test 1089 n: 0.0\n    test 1090 R: -1.730000\n    test 1091 d: -99.121699\n    test 1092 n: 0.0\n    test 1093 D: -170.000000\n    test 1094 r: -2.967060\n    test 1095 n: 0.0\n    test 1096 R: -1.700000\n    test 1097 d: -97.402825\n    test 1098 n: 0.0\n    test 1099 D: -167.000000\n    test 1100 r: -2.914700\n    test 1101 n: 0.0\n    test 1102 R: -1.670000\n    test 1103 d: -95.683952\n    test 1104 n: 0.0\n    test 1105 D: -164.000000\n    test 1106 r: -2.862340\n    test 1107 n: 0.0\n    test 1108 R: -1.640000\n    test 1109 d: -93.965078\n    test 1110 n: 0.0\n    test 1111 D: -161.000000\n    test 1112 r: -2.809980\n    test 1113 n: 0.0\n    test 1114 R: -1.610000\n    test 1115 d: -92.246205\n    test 1116 n: 0.0\n    test 1117 D: -158.000000\n    test 1118 r: -2.757620\n    test 1119 n: 0.0\n    test 1120 R: -1.580000\n    test 1121 d: -90.527332\n    test 1122 n: 0.0\n    test 1123 D: -155.000000\n    test 1124 r: -2.705260\n    test 1125 n: 0.0\n    test 1126 R: -1.550000\n    test 1127 d: -88.808458\n    test 1128 n: 0.0\n    test 1129 D: -152.000000\n    test 1130 r: -2.652900\n    test 1131 n: 0.0\n    test 1132 R: -1.520000\n    test 1133 d: -87.089585\n    test 1134 n: 0.0\n    test 1135 D: -149.000000\n    test 1136 r: -2.600541\n    test 1137 n: 0.0\n    test 1138 R: -1.490000\n    test 1139 d: -85.370711\n    test 1140 n: 0.0\n    test 1141 D: -146.000000\n    test 1142 r: -2.548181\n    test 1143 n: 0.0\n    test 1144 R: -1.460000\n    test 1145 d: -83.651838\n    test 1146 n: 0.0\n    test 1147 D: -143.000000\n    test 1148 r: -2.495821\n    test 1149 n: 0.0\n    test 1150 R: -1.430000\n    test 1151 d: -81.932965\n    test 1152 n: 0.0\n    test 1153 D: -140.000000\n    test 1154 r: -2.443461\n    test 1155 n: 0.0\n    test 1156 R: -1.400000\n    test 1157 d: -80.214091\n    test 1158 n: 0.0\n    test 1159 D: -137.000000\n    test 1160 r: -2.391101\n    test 1161 n: 0.0\n    test 1162 R: -1.370000\n    test 1163 d: -78.495218\n    test 1164 n: 0.0\n    test 1165 D: -134.000000\n    test 1166 r: -2.338741\n    test 1167 n: 0.0\n    test 1168 R: -1.340000\n    test 1169 d: -76.776345\n    test 1170 n: 0.0\n    test 1171 D: -131.000000\n    test 1172 r: -2.286381\n    test 1173 n: 0.0\n    test 1174 R: -1.310000\n    test 1175 d: -75.057471\n    test 1176 n: 0.0\n    test 1177 D: -128.000000\n    test 1178 r: -2.234021\n    test 1179 n: 0.0\n    test 1180 R: -1.280000\n    test 1181 d: -73.338598\n    test 1182 n: 0.0\n    test 1183 D: -125.000000\n    test 1184 r: -2.181662\n    test 1185 n: 0.0\n    test 1186 R: -1.250000\n    test 1187 d: -71.619724\n    test 1188 n: 0.0\n    test 1189 D: -122.000000\n    test 1190 r: -2.129302\n    test 1191 n: 0.0\n    test 1192 R: -1.220000\n    test 1193 d: -69.900851\n    test 1194 n: 0.0\n    test 1195 D: -119.000000\n    test 1196 r: -2.076942\n    test 1197 n: 0.0\n    test 1198 R: -1.190000\n    test 1199 d: -68.181978\n    test 1200 n: 0.0\n    test 1201 D: -116.000000\n    test 1202 r: -2.024582\n    test 1203 n: 0.0\n    test 1204 R: -1.160000\n    test 1205 d: -66.463104\n    test 1206 n: 0.0\n    test 1207 D: -113.000000\n    test 1208 r: -1.972222\n    test 1209 n: 0.0\n    test 1210 R: -1.130000\n    test 1211 d: -64.744231\n    test 1212 n: 0.0\n    test 1213 D: -110.000000\n    test 1214 r: -1.919862\n    test 1215 n: 0.0\n    test 1216 R: -1.100000\n    test 1217 d: -63.025357\n    test 1218 n: 0.0\n    test 1219 D: -107.000000\n    test 1220 r: -1.867502\n    test 1221 n: 0.0\n    test 1222 R: -1.070000\n    test 1223 d: -61.306484\n    test 1224 n: 0.0\n    test 1225 D: -104.000000\n    test 1226 r: -1.815142\n    test 1227 n: 0.0\n    test 1228 R: -1.040000\n    test 1229 d: -59.587611\n    test 1230 n: 0.0\n    test 1231 D: -101.000000\n    test 1232 r: -1.762783\n    test 1233 n: 0.0\n    test 1234 R: -1.010000\n    test 1235 d: -57.868737\n    test 1236 n: 0.0\n    test 1237 D: -98.000000\n    test 1238 r: -1.710423\n    test 1239 n: 0.0\n    test 1240 R: -0.980000\n    test 1241 d: -56.149864\n    test 1242 n: 0.0\n    test 1243 D: -95.000000\n    test 1244 r: -1.658063\n    test 1245 n: 0.0\n    test 1246 R: -0.950000\n    test 1247 d: -54.430991\n    test 1248 n: 0.0\n    test 1249 D: -92.000000\n    test 1250 r: -1.605703\n    test 1251 n: 0.0\n    test 1252 R: -0.920000\n    test 1253 d: -52.712117\n    test 1254 n: 0.0\n    test 1255 D: -89.000000\n    test 1256 r: -1.553343\n    test 1257 n: 0.0\n    test 1258 R: -0.890000\n    test 1259 d: -50.993244\n    test 1260 n: 0.0\n    test 1261 D: -86.000000\n    test 1262 r: -1.500983\n    test 1263 n: 0.0\n    test 1264 R: -0.860000\n    test 1265 d: -49.274370\n    test 1266 n: 0.0\n    test 1267 D: -83.000000\n    test 1268 r: -1.448623\n    test 1269 n: 0.0\n    test 1270 R: -0.830000\n    test 1271 d: -47.555497\n    test 1272 n: 0.0\n    test 1273 D: -80.000000\n    test 1274 r: -1.396263\n    test 1275 n: 0.0\n    test 1276 R: -0.800000\n    test 1277 d: -45.836624\n    test 1278 n: 0.0\n    test 1279 D: -77.000000\n    test 1280 r: -1.343904\n    test 1281 n: 0.0\n    test 1282 R: -0.770000\n    test 1283 d: -44.117750\n    test 1284 n: 0.0\n    test 1285 D: -74.000000\n    test 1286 r: -1.291544\n    test 1287 n: 0.0\n    test 1288 R: -0.740000\n    test 1289 d: -42.398877\n    test 1290 n: 0.0\n    test 1291 D: -71.000000\n    test 1292 r: -1.239184\n    test 1293 n: 0.0\n    test 1294 R: -0.710000\n    test 1295 d: -40.680003\n    test 1296 n: 0.0\n    test 1297 D: -68.000000\n    test 1298 r: -1.186824\n    test 1299 n: 0.0\n    test 1300 R: -0.680000\n    test 1301 d: -38.961130\n    test 1302 n: 0.0\n    test 1303 D: -65.000000\n    test 1304 r: -1.134464\n    test 1305 n: 0.0\n    test 1306 R: -0.650000\n    test 1307 d: -37.242257\n    test 1308 n: 0.0\n    test 1309 D: -62.000000\n    test 1310 r: -1.082104\n    test 1311 n: 0.0\n    test 1312 R: -0.620000\n    test 1313 d: -35.523383\n    test 1314 n: 0.0\n    test 1315 D: -59.000000\n    test 1316 r: -1.029744\n    test 1317 n: 0.0\n    test 1318 R: -0.590000\n    test 1319 d: -33.804510\n    test 1320 n: 0.0\n    test 1321 D: -56.000000\n    test 1322 r: -0.977384\n    test 1323 n: 0.0\n    test 1324 R: -0.560000\n    test 1325 d: -32.085637\n    test 1326 n: 0.0\n    test 1327 D: -53.000000\n    test 1328 r: -0.925025\n    test 1329 n: 0.0\n    test 1330 R: -0.530000\n    test 1331 d: -30.366763\n    test 1332 n: 0.0\n    test 1333 D: -50.000000\n    test 1334 r: -0.872665\n    test 1335 n: 0.0\n    test 1336 R: -0.500000\n    test 1337 d: -28.647890\n    test 1338 n: 0.0\n    test 1339 D: -47.000000\n    test 1340 r: -0.820305\n    test 1341 n: 0.0\n    test 1342 R: -0.470000\n    test 1343 d: -26.929016\n    test 1344 n: 0.0\n    test 1345 D: -44.000000\n    test 1346 r: -0.767945\n    test 1347 n: 0.0\n    test 1348 R: -0.440000\n    test 1349 d: -25.210143\n    test 1350 n: 0.0\n    test 1351 D: -41.000000\n    test 1352 r: -0.715585\n    test 1353 n: 0.0\n    test 1354 R: -0.410000\n    test 1355 d: -23.491270\n    test 1356 n: 0.0\n    test 1357 D: -38.000000\n    test 1358 r: -0.663225\n    test 1359 n: 0.0\n    test 1360 R: -0.380000\n    test 1361 d: -21.772396\n    test 1362 n: 0.0\n    test 1363 D: -35.000000\n    test 1364 r: -0.610865\n    test 1365 n: 0.0\n    test 1366 R: -0.350000\n    test 1367 d: -20.053523\n    test 1368 n: 0.0\n    test 1369 D: -32.000000\n    test 1370 r: -0.558505\n    test 1371 n: 0.0\n    test 1372 R: -0.320000\n    test 1373 d: -18.334649\n    test 1374 n: 0.0\n    test 1375 D: -29.000000\n    test 1376 r: -0.506145\n    test 1377 n: 0.0\n    test 1378 R: -0.290000\n    test 1379 d: -16.615776\n    test 1380 n: 0.0\n    test 1381 D: -26.000000\n    test 1382 r: -0.453786\n    test 1383 n: 0.0\n    test 1384 R: -0.260000\n    test 1385 d: -14.896903\n    test 1386 n: 0.0\n    test 1387 D: -23.000000\n    test 1388 r: -0.401426\n    test 1389 n: 0.0\n    test 1390 R: -0.230000\n    test 1391 d: -13.178029\n    test 1392 n: 0.0\n    test 1393 D: -20.000000\n    test 1394 r: -0.349066\n    test 1395 n: 0.0\n    test 1396 R: -0.200000\n    test 1397 d: -11.459156\n    test 1398 n: 0.0\n    test 1399 D: -17.000000\n    test 1400 r: -0.296706\n    test 1401 n: 0.0\n    test 1402 R: -0.170000\n    test 1403 d: -9.740283\n    test 1404 n: 0.0\n    test 1405 D: -14.000000\n    test 1406 r: -0.244346\n    test 1407 n: 0.0\n    test 1408 R: -0.140000\n    test 1409 d: -8.021409\n    test 1410 n: 0.0\n    test 1411 D: -11.000000\n    test 1412 r: -0.191986\n    test 1413 n: 0.0\n    test 1414 R: -0.110000\n    test 1415 d: -6.302536\n    test 1416 n: 0.0\n    test 1417 D: -8.000000\n    test 1418 r: -0.139626\n    test 1419 n: 0.0\n    test 1420 R: -0.080000\n    test 1421 d: -4.583662\n    test 1422 n: 0.0\n    test 1423 D: -5.000000\n    test 1424 r: -0.087266\n    test 1425 n: 0.0\n    test 1426 R: -0.050000\n    test 1427 d: -2.864789\n    test 1428 n: 0.0\n    test 1429 D: -2.000000\n    test 1430 r: -0.034907\n    test 1431 n: 0.0\n    test 1432 R: -0.020000\n    test 1433 d: -1.145916\n    test 1434 n: 0.0\n    test 1435 D: 1.000000\n    test 1436 r: 0.017453\n    test 1437 n: 0.0\n    test 1438 R: 0.010000\n    test 1439 d: 0.572958\n    test 1440 n: 0.0\n    test 1441 D: 4.000000\n    test 1442 r: 0.069813\n    test 1443 n: 0.0\n    test 1444 R: 0.040000\n    test 1445 d: 2.291831\n    test 1446 n: 0.0\n    test 1447 D: 7.000000\n    test 1448 r: 0.122173\n    test 1449 n: 0.0\n    test 1450 R: 0.070000\n    test 1451 d: 4.010705\n    test 1452 n: 0.0\n    test 1453 D: 10.000000\n    test 1454 r: 0.174533\n    test 1455 n: 0.0\n    test 1456 R: 0.100000\n    test 1457 d: 5.729578\n    test 1458 n: 0.0\n    test 1459 D: 13.000000\n    test 1460 r: 0.226893\n    test 1461 n: 0.0\n    test 1462 R: 0.130000\n    test 1463 d: 7.448451\n    test 1464 n: 0.0\n    test 1465 D: 16.000000\n    test 1466 r: 0.279253\n    test 1467 n: 0.0\n    test 1468 R: 0.160000\n    test 1469 d: 9.167325\n    test 1470 n: 0.0\n    test 1471 D: 19.000000\n    test 1472 r: 0.331613\n    test 1473 n: 0.0\n    test 1474 R: 0.190000\n    test 1475 d: 10.886198\n    test 1476 n: 0.0\n    test 1477 D: 22.000000\n    test 1478 r: 0.383972\n    test 1479 n: 0.0\n    test 1480 R: 0.220000\n    test 1481 d: 12.605071\n    test 1482 n: 0.0\n    test 1483 D: 25.000000\n    test 1484 r: 0.436332\n    test 1485 n: 0.0\n    test 1486 R: 0.250000\n    test 1487 d: 14.323945\n    test 1488 n: 0.0\n    test 1489 D: 28.000000\n    test 1490 r: 0.488692\n    test 1491 n: 0.0\n    test 1492 R: 0.280000\n    test 1493 d: 16.042818\n    test 1494 n: 0.0\n    test 1495 D: 31.000000\n    test 1496 r: 0.541052\n    test 1497 n: 0.0\n    test 1498 R: 0.310000\n    test 1499 d: 17.761692\n    test 1500 n: 0.0\n    test 1501 D: 34.000000\n    test 1502 r: 0.593412\n    test 1503 n: 0.0\n    test 1504 R: 0.340000\n    test 1505 d: 19.480565\n    test 1506 n: 0.0\n    test 1507 D: 37.000000\n    test 1508 r: 0.645772\n    test 1509 n: 0.0\n    test 1510 R: 0.370000\n    test 1511 d: 21.199438\n    test 1512 n: 0.0\n    test 1513 D: 40.000000\n    test 1514 r: 0.698132\n    test 1515 n: 0.0\n    test 1516 R: 0.400000\n    test 1517 d: 22.918312\n    test 1518 n: 0.0\n    test 1519 D: 43.000000\n    test 1520 r: 0.750492\n    test 1521 n: 0.0\n    test 1522 R: 0.430000\n    test 1523 d: 24.637185\n    test 1524 n: 0.0\n    test 1525 D: 46.000000\n    test 1526 r: 0.802851\n    test 1527 n: 0.0\n    test 1528 R: 0.460000\n    test 1529 d: 26.356059\n    test 1530 n: 0.0\n    test 1531 D: 49.000000\n    test 1532 r: 0.855211\n    test 1533 n: 0.0\n    test 1534 R: 0.490000\n    test 1535 d: 28.074932\n    test 1536 n: 0.0\n    test 1537 D: 52.000000\n    test 1538 r: 0.907571\n    test 1539 n: 0.0\n    test 1540 R: 0.520000\n    test 1541 d: 29.793805\n    test 1542 n: 0.0\n    test 1543 D: 55.000000\n    test 1544 r: 0.959931\n    test 1545 n: 0.0\n    test 1546 R: 0.550000\n    test 1547 d: 31.512679\n    test 1548 n: 0.0\n    test 1549 D: 58.000000\n    test 1550 r: 1.012291\n    test 1551 n: 0.0\n    test 1552 R: 0.580000\n    test 1553 d: 33.231552\n    test 1554 n: 0.0\n    test 1555 D: 61.000000\n    test 1556 r: 1.064651\n    test 1557 n: 0.0\n    test 1558 R: 0.610000\n    test 1559 d: 34.950426\n    test 1560 n: 0.0\n    test 1561 D: 64.000000\n    test 1562 r: 1.117011\n    test 1563 n: 0.0\n    test 1564 R: 0.640000\n    test 1565 d: 36.669299\n    test 1566 n: 0.0\n    test 1567 D: 67.000000\n    test 1568 r: 1.169371\n    test 1569 n: 0.0\n    test 1570 R: 0.670000\n    test 1571 d: 38.388172\n    test 1572 n: 0.0\n    test 1573 D: 70.000000\n    test 1574 r: 1.221730\n    test 1575 n: 0.0\n    test 1576 R: 0.700000\n    test 1577 d: 40.107046\n    test 1578 n: 0.0\n    test 1579 D: 73.000000\n    test 1580 r: 1.274090\n    test 1581 n: 0.0\n    test 1582 R: 0.730000\n    test 1583 d: 41.825919\n    test 1584 n: 0.0\n    test 1585 D: 76.000000\n    test 1586 r: 1.326450\n    test 1587 n: 0.0\n    test 1588 R: 0.760000\n    test 1589 d: 43.544792\n    test 1590 n: 0.0\n    test 1591 D: 79.000000\n    test 1592 r: 1.378810\n    test 1593 n: 0.0\n    test 1594 R: 0.790000\n    test 1595 d: 45.263666\n    test 1596 n: 0.0\n    test 1597 D: 82.000000\n    test 1598 r: 1.431170\n    test 1599 n: 0.0\n    test 1600 R: 0.820000\n    test 1601 d: 46.982539\n    test 1602 n: 0.0\n    test 1603 D: 85.000000\n    test 1604 r: 1.483530\n    test 1605 n: 0.0\n    test 1606 R: 0.850000\n    test 1607 d: 48.701413\n    test 1608 n: 0.0\n    test 1609 D: 88.000000\n    test 1610 r: 1.535890\n    test 1611 n: 0.0\n    test 1612 R: 0.880000\n    test 1613 d: 50.420286\n    test 1614 n: 0.0\n    test 1615 D: 91.000000\n    test 1616 r: 1.588250\n    test 1617 n: 0.0\n    test 1618 R: 0.910000\n    test 1619 d: 52.139159\n    test 1620 n: 0.0\n    test 1621 D: 94.000000\n    test 1622 r: 1.640609\n    test 1623 n: 0.0\n    test 1624 R: 0.940000\n    test 1625 d: 53.858033\n    test 1626 n: 0.0\n    test 1627 D: 97.000000\n    test 1628 r: 1.692969\n    test 1629 n: 0.0\n    test 1630 R: 0.970000\n    test 1631 d: 55.576906\n    test 1632 n: 0.0\n    test 1633 D: 100.000000\n    test 1634 r: 1.745329\n    test 1635 n: 0.0\n    test 1636 R: 1.000000\n    test 1637 d: 57.295780\n    test 1638 n: 0.0\n    test 1639 D: 103.000000\n    test 1640 r: 1.797689\n    test 1641 n: 0.0\n    test 1642 R: 1.030000\n    test 1643 d: 59.014653\n    test 1644 n: 0.0\n    test 1645 D: 106.000000\n    test 1646 r: 1.850049\n    test 1647 n: 0.0\n    test 1648 R: 1.060000\n    test 1649 d: 60.733526\n    test 1650 n: 0.0\n    test 1651 D: 109.000000\n    test 1652 r: 1.902409\n    test 1653 n: 0.0\n    test 1654 R: 1.090000\n    test 1655 d: 62.452400\n    test 1656 n: 0.0\n    test 1657 D: 112.000000\n    test 1658 r: 1.954769\n    test 1659 n: 0.0\n    test 1660 R: 1.120000\n    test 1661 d: 64.171273\n    test 1662 n: 0.0\n    test 1663 D: 115.000000\n    test 1664 r: 2.007129\n    test 1665 n: 0.0\n    test 1666 R: 1.150000\n    test 1667 d: 65.890146\n    test 1668 n: 0.0\n    test 1669 D: 118.000000\n    test 1670 r: 2.059489\n    test 1671 n: 0.0\n    test 1672 R: 1.180000\n    test 1673 d: 67.609020\n    test 1674 n: 0.0\n    test 1675 D: 121.000000\n    test 1676 r: 2.111848\n    test 1677 n: 0.0\n    test 1678 R: 1.210000\n    test 1679 d: 69.327893\n    test 1680 n: 0.0\n    test 1681 D: 124.000000\n    test 1682 r: 2.164208\n    test 1683 n: 0.0\n    test 1684 R: 1.240000\n    test 1685 d: 71.046767\n    test 1686 n: 0.0\n    test 1687 D: 127.000000\n    test 1688 r: 2.216568\n    test 1689 n: 0.0\n    test 1690 R: 1.270000\n    test 1691 d: 72.765640\n    test 1692 n: 0.0\n    test 1693 D: 130.000000\n    test 1694 r: 2.268928\n    test 1695 n: 0.0\n    test 1696 R: 1.300000\n    test 1697 d: 74.484513\n    test 1698 n: 0.0\n    test 1699 D: 133.000000\n    test 1700 r: 2.321288\n    test 1701 n: 0.0\n    test 1702 R: 1.330000\n    test 1703 d: 76.203387\n    test 1704 n: 0.0\n    test 1705 D: 136.000000\n    test 1706 r: 2.373648\n    test 1707 n: 0.0\n    test 1708 R: 1.360000\n    test 1709 d: 77.922260\n    test 1710 n: 0.0\n    test 1711 D: 139.000000\n    test 1712 r: 2.426008\n    test 1713 n: 0.0\n    test 1714 R: 1.390000\n    test 1715 d: 79.641134\n    test 1716 n: 0.0\n    test 1717 D: 142.000000\n    test 1718 r: 2.478368\n    test 1719 n: 0.0\n    test 1720 R: 1.420000\n    test 1721 d: 81.360007\n    test 1722 n: 0.0\n    test 1723 D: 145.000000\n    test 1724 r: 2.530727\n    test 1725 n: 0.0\n    test 1726 R: 1.450000\n    test 1727 d: 83.078880\n    test 1728 n: 0.0\n    test 1729 D: 148.000000\n    test 1730 r: 2.583087\n    test 1731 n: 0.0\n    test 1732 R: 1.480000\n    test 1733 d: 84.797754\n    test 1734 n: 0.0\n    test 1735 D: 151.000000\n    test 1736 r: 2.635447\n    test 1737 n: 0.0\n    test 1738 R: 1.510000\n    test 1739 d: 86.516627\n    test 1740 n: 0.0\n    test 1741 D: 154.000000\n    test 1742 r: 2.687807\n    test 1743 n: 0.0\n    test 1744 R: 1.540000\n    test 1745 d: 88.235500\n    test 1746 n: 0.0\n    test 1747 D: 157.000000\n    test 1748 r: 2.740167\n    test 1749 n: 0.0\n    test 1750 R: 1.570000\n    test 1751 d: 89.954374\n    test 1752 n: 0.0\n    test 1753 D: 160.000000\n    test 1754 r: 2.792527\n    test 1755 n: 0.0\n    test 1756 R: 1.600000\n    test 1757 d: 91.673247\n    test 1758 n: 0.0\n    test 1759 D: 163.000000\n    test 1760 r: 2.844887\n    test 1761 n: 0.0\n    test 1762 R: 1.630000\n    test 1763 d: 93.392121\n    test 1764 n: 0.0\n    test 1765 D: 166.000000\n    test 1766 r: 2.897247\n    test 1767 n: 0.0\n    test 1768 R: 1.660000\n    test 1769 d: 95.110994\n    test 1770 n: 0.0\n    test 1771 D: 169.000000\n    test 1772 r: 2.949606\n    test 1773 n: 0.0\n    test 1774 R: 1.690000\n    test 1775 d: 96.829867\n    test 1776 n: 0.0\n    test 1777 D: 172.000000\n    test 1778 r: 3.001966\n    test 1779 n: 0.0\n    test 1780 R: 1.720000\n    test 1781 d: 98.548741\n    test 1782 n: 0.0\n    test 1783 D: 175.000000\n    test 1784 r: 3.054326\n    test 1785 n: 0.0\n    test 1786 R: 1.750000\n    test 1787 d: 100.267614\n    test 1788 n: 0.0\n    test 1789 D: 178.000000\n    test 1790 r: 3.106686\n    test 1791 n: 0.0\n    test 1792 R: 1.780000\n    test 1793 d: 101.986488\n    test 1794 n: 0.0\n    test 1795 D: 181.000000\n    test 1796 r: 3.159046\n    test 1797 n: 1.0\n    test 1798 R: 1.810000\n    test 1799 d: 103.705361\n    test 1800 n: 0.0\n    test 1801 D: 184.000000\n    test 1802 r: 3.211406\n    test 1803 n: 1.0\n    test 1804 R: 1.840000\n    test 1805 d: 105.424234\n    test 1806 n: 0.0\n    test 1807 D: 187.000000\n    test 1808 r: 3.263766\n    test 1809 n: 1.0\n    test 1810 R: 1.870000\n    test 1811 d: 107.143108\n    test 1812 n: 0.0\n    test 1813 D: 190.000000\n    test 1814 r: 3.316126\n    test 1815 n: 1.0\n    test 1816 R: 1.900000\n    test 1817 d: 108.861981\n    test 1818 n: 0.0\n    test 1819 D: 193.000000\n    test 1820 r: 3.368485\n    test 1821 n: 1.0\n    test 1822 R: 1.930000\n    test 1823 d: 110.580854\n    test 1824 n: 0.0\n    test 1825 D: 196.000000\n    test 1826 r: 3.420845\n    test 1827 n: 1.0\n    test 1828 R: 1.960000\n    test 1829 d: 112.299728\n    test 1830 n: 0.0\n    test 1831 D: 199.000000\n    test 1832 r: 3.473205\n    test 1833 n: 1.0\n    test 1834 R: 1.990000\n    test 1835 d: 114.018601\n    test 1836 n: 0.0\n    test 1837 D: 202.000000\n    test 1838 r: 3.525565\n    test 1839 n: 1.0\n    test 1840 R: 2.020000\n    test 1841 d: 115.737475\n    test 1842 n: 0.0\n    test 1843 D: 205.000000\n    test 1844 r: 3.577925\n    test 1845 n: 1.0\n    test 1846 R: 2.050000\n    test 1847 d: 117.456348\n    test 1848 n: 0.0\n    test 1849 D: 208.000000\n    test 1850 r: 3.630285\n    test 1851 n: 1.0\n    test 1852 R: 2.080000\n    test 1853 d: 119.175221\n    test 1854 n: 0.0\n    test 1855 D: 211.000000\n    test 1856 r: 3.682645\n    test 1857 n: 1.0\n    test 1858 R: 2.110000\n    test 1859 d: 120.894095\n    test 1860 n: 0.0\n    test 1861 D: 214.000000\n    test 1862 r: 3.735005\n    test 1863 n: 1.0\n    test 1864 R: 2.140000\n    test 1865 d: 122.612968\n    test 1866 n: 0.0\n    test 1867 D: 217.000000\n    test 1868 r: 3.787364\n    test 1869 n: 1.0\n    test 1870 R: 2.170000\n    test 1871 d: 124.331842\n    test 1872 n: 0.0\n    test 1873 D: 220.000000\n    test 1874 r: 3.839724\n    test 1875 n: 1.0\n    test 1876 R: 2.200000\n    test 1877 d: 126.050715\n    test 1878 n: 0.0\n    test 1879 D: 223.000000\n    test 1880 r: 3.892084\n    test 1881 n: 1.0\n    test 1882 R: 2.230000\n    test 1883 d: 127.769588\n    test 1884 n: 0.0\n    test 1885 D: 226.000000\n    test 1886 r: 3.944444\n    test 1887 n: 1.0\n    test 1888 R: 2.260000\n    test 1889 d: 129.488462\n    test 1890 n: 0.0\n    test 1891 D: 229.000000\n    test 1892 r: 3.996804\n    test 1893 n: 1.0\n    test 1894 R: 2.290000\n    test 1895 d: 131.207335\n    test 1896 n: 0.0\n    test 1897 D: 232.000000\n    test 1898 r: 4.049164\n    test 1899 n: 1.0\n    test 1900 R: 2.320000\n    test 1901 d: 132.926208\n    test 1902 n: 0.0\n    test 1903 D: 235.000000\n    test 1904 r: 4.101524\n    test 1905 n: 1.0\n    test 1906 R: 2.350000\n    test 1907 d: 134.645082\n    test 1908 n: 0.0\n    test 1909 D: 238.000000\n    test 1910 r: 4.153884\n    test 1911 n: 1.0\n    test 1912 R: 2.380000\n    test 1913 d: 136.363955\n    test 1914 n: 0.0\n    test 1915 D: 241.000000\n    test 1916 r: 4.206243\n    test 1917 n: 1.0\n    test 1918 R: 2.410000\n    test 1919 d: 138.082829\n    test 1920 n: 0.0\n    test 1921 D: 244.000000\n    test 1922 r: 4.258603\n    test 1923 n: 1.0\n    test 1924 R: 2.440000\n    test 1925 d: 139.801702\n    test 1926 n: 0.0\n    test 1927 D: 247.000000\n    test 1928 r: 4.310963\n    test 1929 n: 1.0\n    test 1930 R: 2.470000\n    test 1931 d: 141.520575\n    test 1932 n: 0.0\n    test 1933 D: 250.000000\n    test 1934 r: 4.363323\n    test 1935 n: 1.0\n    test 1936 R: 2.500000\n    test 1937 d: 143.239449\n    test 1938 n: 0.0\n    test 1939 D: 253.000000\n    test 1940 r: 4.415683\n    test 1941 n: 1.0\n    test 1942 R: 2.530000\n    test 1943 d: 144.958322\n    test 1944 n: 0.0\n    test 1945 D: 256.000000\n    test 1946 r: 4.468043\n    test 1947 n: 1.0\n    test 1948 R: 2.560000\n    test 1949 d: 146.677196\n    test 1950 n: 0.0\n    test 1951 D: 259.000000\n    test 1952 r: 4.520403\n    test 1953 n: 1.0\n    test 1954 R: 2.590000\n    test 1955 d: 148.396069\n    test 1956 n: 0.0\n    test 1957 D: 262.000000\n    test 1958 r: 4.572763\n    test 1959 n: 1.0\n    test 1960 R: 2.620000\n    test 1961 d: 150.114942\n    test 1962 n: 0.0\n    test 1963 D: 265.000000\n    test 1964 r: 4.625123\n    test 1965 n: 1.0\n    test 1966 R: 2.650000\n    test 1967 d: 151.833816\n    test 1968 n: 0.0\n    test 1969 D: 268.000000\n    test 1970 r: 4.677482\n    test 1971 n: 1.0\n    test 1972 R: 2.680000\n    test 1973 d: 153.552689\n    test 1974 n: 0.0\n    test 1975 D: 271.000000\n    test 1976 r: 4.729842\n    test 1977 n: 1.0\n    test 1978 R: 2.710000\n    test 1979 d: 155.271562\n    test 1980 n: 0.0\n    test 1981 D: 274.000000\n    test 1982 r: 4.782202\n    test 1983 n: 1.0\n    test 1984 R: 2.740000\n    test 1985 d: 156.990436\n    test 1986 n: 0.0\n    test 1987 D: 277.000000\n    test 1988 r: 4.834562\n    test 1989 n: 1.0\n    test 1990 R: 2.770000\n    test 1991 d: 158.709309\n    test 1992 n: 0.0\n    test 1993 D: 280.000000\n    test 1994 r: 4.886922\n    test 1995 n: 1.0\n    test 1996 R: 2.800000\n    test 1997 d: 160.428183\n    test 1998 n: 0.0\n    test 1999 D: 283.000000\n    test 2000 r: 4.939282\n    test 2001 n: 1.0\n    test 2002 R: 2.830000\n    test 2003 d: 162.147056\n    test 2004 n: 0.0\n    test 2005 D: 286.000000\n    test 2006 r: 4.991642\n    test 2007 n: 1.0\n    test 2008 R: 2.860000\n    test 2009 d: 163.865929\n    test 2010 n: 0.0\n    test 2011 D: 289.000000\n    test 2012 r: 5.044002\n    test 2013 n: 1.0\n    test 2014 R: 2.890000\n    test 2015 d: 165.584803\n    test 2016 n: 0.0\n    test 2017 D: 292.000000\n    test 2018 r: 5.096361\n    test 2019 n: 1.0\n    test 2020 R: 2.920000\n    test 2021 d: 167.303676\n    test 2022 n: 0.0\n    test 2023 D: 295.000000\n    test 2024 r: 5.148721\n    test 2025 n: 1.0\n    test 2026 R: 2.950000\n    test 2027 d: 169.022550\n    test 2028 n: 0.0\n    test 2029 D: 298.000000\n    test 2030 r: 5.201081\n    test 2031 n: 1.0\n    test 2032 R: 2.980000\n    test 2033 d: 170.741423\n    test 2034 n: 0.0\n    test 2035 D: 301.000000\n    test 2036 r: 5.253441\n    test 2037 n: 1.0\n    test 2038 R: 3.010000\n    test 2039 d: 172.460296\n    test 2040 n: 0.0\n    test 2041 D: 304.000000\n    test 2042 r: 5.305801\n    test 2043 n: 1.0\n    test 2044 R: 3.040000\n    test 2045 d: 174.179170\n    test 2046 n: 0.0\n    test 2047 D: 307.000000\n    test 2048 r: 5.358161\n    test 2049 n: 1.0\n    test 2050 R: 3.070000\n    test 2051 d: 175.898043\n    test 2052 n: 0.0\n    test 2053 D: 310.000000\n    test 2054 r: 5.410521\n    test 2055 n: 1.0\n    test 2056 R: 3.100000\n    test 2057 d: 177.616916\n    test 2058 n: 0.0\n    test 2059 D: 313.000000\n    test 2060 r: 5.462881\n    test 2061 n: 1.0\n    test 2062 R: 3.130000\n    test 2063 d: 179.335790\n    test 2064 n: 0.0\n    test 2065 D: 316.000000\n    test 2066 r: 5.515240\n    test 2067 n: 1.0\n    test 2068 R: 3.160000\n    test 2069 d: 181.054663\n    test 2070 n: 1.0\n    test 2071 D: 319.000000\n    test 2072 r: 5.567600\n    test 2073 n: 1.0\n    test 2074 R: 3.190000\n    test 2075 d: 182.773537\n    test 2076 n: 1.0\n    test 2077 D: 322.000000\n    test 2078 r: 5.619960\n    test 2079 n: 1.0\n    test 2080 R: 3.220000\n    test 2081 d: 184.492410\n    test 2082 n: 1.0\n    test 2083 D: 325.000000\n    test 2084 r: 5.672320\n    test 2085 n: 1.0\n    test 2086 R: 3.250000\n    test 2087 d: 186.211283\n    test 2088 n: 1.0\n    test 2089 D: 328.000000\n    test 2090 r: 5.724680\n    test 2091 n: 1.0\n    test 2092 R: 3.280000\n    test 2093 d: 187.930157\n    test 2094 n: 1.0\n    test 2095 D: 331.000000\n    test 2096 r: 5.777040\n    test 2097 n: 1.0\n    test 2098 R: 3.310000\n    test 2099 d: 189.649030\n    test 2100 n: 1.0\n    test 2101 D: 334.000000\n    test 2102 r: 5.829400\n    test 2103 n: 1.0\n    test 2104 R: 3.340000\n    test 2105 d: 191.367904\n    test 2106 n: 1.0\n    test 2107 D: 337.000000\n    test 2108 r: 5.881760\n    test 2109 n: 1.0\n    test 2110 R: 3.370000\n    test 2111 d: 193.086777\n    test 2112 n: 1.0\n    test 2113 D: 340.000000\n    test 2114 r: 5.934119\n    test 2115 n: 1.0\n    test 2116 R: 3.400000\n    test 2117 d: 194.805650\n    test 2118 n: 1.0\n    test 2119 D: 343.000000\n    test 2120 r: 5.986479\n    test 2121 n: 1.0\n    test 2122 R: 3.430000\n    test 2123 d: 196.524524\n    test 2124 n: 1.0\n    test 2125 D: 346.000000\n    test 2126 r: 6.038839\n    test 2127 n: 1.0\n    test 2128 R: 3.460000\n    test 2129 d: 198.243397\n    test 2130 n: 1.0\n    test 2131 D: 349.000000\n    test 2132 r: 6.091199\n    test 2133 n: 1.0\n    test 2134 R: 3.490000\n    test 2135 d: 199.962271\n    test 2136 n: 1.0\n    test 2137 D: 352.000000\n    test 2138 r: 6.143559\n    test 2139 n: 1.0\n    test 2140 R: 3.520000\n    test 2141 d: 201.681144\n    test 2142 n: 1.0\n    test 2143 D: 355.000000\n    test 2144 r: 6.195919\n    test 2145 n: 1.0\n    test 2146 R: 3.550000\n    test 2147 d: 203.400017\n    test 2148 n: 1.0\n    test 2149 D: 358.000000\n    test 2150 r: 6.248279\n    test 2151 n: 1.0\n    test 2152 R: 3.580000\n    test 2153 d: 205.118891\n    test 2154 n: 1.0\n    test 2155 D: 361.000000\n    test 2156 r: 6.300639\n    test 2157 n: 1.0\n    test 2158 R: 3.610000\n    test 2159 d: 206.837764\n    test 2160 n: 1.0\n    test 2161 D: 364.000000\n    test 2162 r: 6.352998\n    test 2163 n: 1.0\n    test 2164 R: 3.640000\n    test 2165 d: 208.556637\n    test 2166 n: 1.0\n    test 2167 D: 367.000000\n    test 2168 r: 6.405358\n    test 2169 n: 1.0\n    test 2170 R: 3.670000\n    test 2171 d: 210.275511\n    test 2172 n: 1.0\n    test 2173 D: 370.000000\n    test 2174 r: 6.457718\n    test 2175 n: 1.0\n    test 2176 R: 3.700000\n    test 2177 d: 211.994384\n    test 2178 n: 1.0\n    test 2179 D: 373.000000\n    test 2180 r: 6.510078\n    test 2181 n: 1.0\n    test 2182 R: 3.730000\n    test 2183 d: 213.713258\n    test 2184 n: 1.0\n    test 2185 D: 376.000000\n    test 2186 r: 6.562438\n    test 2187 n: 1.0\n    test 2188 R: 3.760000\n    test 2189 d: 215.432131\n    test 2190 n: 1.0\n    test 2191 D: 379.000000\n    test 2192 r: 6.614798\n    test 2193 n: 1.0\n    test 2194 R: 3.790000\n    test 2195 d: 217.151004\n    test 2196 n: 1.0\n    test 2197 D: 382.000000\n    test 2198 r: 6.667158\n    test 2199 n: 1.0\n    test 2200 R: 3.820000\n    test 2201 d: 218.869878\n    test 2202 n: 1.0\n    test 2203 D: 385.000000\n    test 2204 r: 6.719518\n    test 2205 n: 1.0\n    test 2206 R: 3.850000\n    test 2207 d: 220.588751\n    test 2208 n: 1.0\n    test 2209 D: 388.000000\n    test 2210 r: 6.771877\n    test 2211 n: 1.0\n    test 2212 R: 3.880000\n    test 2213 d: 222.307625\n    test 2214 n: 1.0\n    test 2215 D: 391.000000\n    test 2216 r: 6.824237\n    test 2217 n: 1.0\n    test 2218 R: 3.910000\n    test 2219 d: 224.026498\n    test 2220 n: 1.0\n    test 2221 D: 394.000000\n    test 2222 r: 6.876597\n    test 2223 n: 1.0\n    test 2224 R: 3.940000\n    test 2225 d: 225.745371\n    test 2226 n: 1.0\n    test 2227 D: 397.000000\n    test 2228 r: 6.928957\n    test 2229 n: 1.0\n    test 2230 R: 3.970000\n    test 2231 d: 227.464245\n    test 2232 n: 1.0\n    test 2233 D: 400.000000\n    test 2234 r: 6.981317\n    test 2235 n: 1.0\n    test 2236 R: 4.000000\n    test 2237 d: 229.183118\n    test 2238 n: 1.0\n    test 2239 D: 403.000000\n    test 2240 r: 7.033677\n    test 2241 n: 1.0\n    test 2242 R: 4.030000\n    test 2243 d: 230.901991\n    test 2244 n: 1.0\n    test 2245 D: 406.000000\n    test 2246 r: 7.086037\n    test 2247 n: 1.0\n    test 2248 R: 4.060000\n    test 2249 d: 232.620865\n    test 2250 n: 1.0\n    test 2251 D: 409.000000\n    test 2252 r: 7.138397\n    test 2253 n: 1.0\n    test 2254 R: 4.090000\n    test 2255 d: 234.339738\n    test 2256 n: 1.0\n    test 2257 D: 412.000000\n    test 2258 r: 7.190757\n    test 2259 n: 1.0\n    test 2260 R: 4.120000\n    test 2261 d: 236.058612\n    test 2262 n: 1.0\n    test 2263 D: 415.000000\n    test 2264 r: 7.243116\n    test 2265 n: 1.0\n    test 2266 R: 4.150000\n    test 2267 d: 237.777485\n    test 2268 n: 1.0\n    test 2269 D: 418.000000\n    test 2270 r: 7.295476\n    test 2271 n: 1.0\n    test 2272 R: 4.180000\n    test 2273 d: 239.496358\n    test 2274 n: 1.0\n    test 2275 D: 421.000000\n    test 2276 r: 7.347836\n    test 2277 n: 1.0\n    test 2278 R: 4.210000\n    test 2279 d: 241.215232\n    test 2280 n: 1.0\n    test 2281 D: 424.000000\n    test 2282 r: 7.400196\n    test 2283 n: 1.0\n    test 2284 R: 4.240000\n    test 2285 d: 242.934105\n    test 2286 n: 1.0\n    test 2287 D: 427.000000\n    test 2288 r: 7.452556\n    test 2289 n: 1.0\n    test 2290 R: 4.270000\n    test 2291 d: 244.652979\n    test 2292 n: 1.0\n    test 2293 D: 430.000000\n    test 2294 r: 7.504916\n    test 2295 n: 1.0\n    test 2296 R: 4.300000\n    test 2297 d: 246.371852\n    test 2298 n: 1.0\n    test 2299 D: 433.000000\n    test 2300 r: 7.557276\n    test 2301 n: 1.0\n    test 2302 R: 4.330000\n    test 2303 d: 248.090725\n    test 2304 n: 1.0\n    test 2305 D: 436.000000\n    test 2306 r: 7.609636\n    test 2307 n: 1.0\n    test 2308 R: 4.360000\n    test 2309 d: 249.809599\n    test 2310 n: 1.0\n    test 2311 D: 439.000000\n    test 2312 r: 7.661995\n    test 2313 n: 1.0\n    test 2314 R: 4.390000\n    test 2315 d: 251.528472\n    test 2316 n: 1.0\n    test 2317 D: 442.000000\n    test 2318 r: 7.714355\n    test 2319 n: 1.0\n    test 2320 R: 4.420000\n    test 2321 d: 253.247345\n    test 2322 n: 1.0\n    test 2323 D: 445.000000\n    test 2324 r: 7.766715\n    test 2325 n: 1.0\n    test 2326 R: 4.450000\n    test 2327 d: 254.966219\n    test 2328 n: 1.0\n    test 2329 D: 448.000000\n    test 2330 r: 7.819075\n    test 2331 n: 1.0\n    test 2332 R: 4.480000\n    test 2333 d: 256.685092\n    test 2334 n: 1.0\n    test 2335 D: 451.000000\n    test 2336 r: 7.871435\n    test 2337 n: 1.0\n    test 2338 R: 4.510000\n    test 2339 d: 258.403966\n    test 2340 n: 1.0\n    test 2341 D: 454.000000\n    test 2342 r: 7.923795\n    test 2343 n: 1.0\n    test 2344 R: 4.540000\n    test 2345 d: 260.122839\n    test 2346 n: 1.0\n    test 2347 D: 457.000000\n    test 2348 r: 7.976155\n    test 2349 n: 1.0\n    test 2350 R: 4.570000\n    test 2351 d: 261.841712\n    test 2352 n: 1.0\n    test 2353 D: 460.000000\n    test 2354 r: 8.028515\n    test 2355 n: 1.0\n    test 2356 R: 4.600000\n    test 2357 d: 263.560586\n    test 2358 n: 1.0\n    test 2359 D: 463.000000\n    test 2360 r: 8.080874\n    test 2361 n: 1.0\n    test 2362 R: 4.630000\n    test 2363 d: 265.279459\n    test 2364 n: 1.0\n    test 2365 D: 466.000000\n    test 2366 r: 8.133234\n    test 2367 n: 1.0\n    test 2368 R: 4.660000\n    test 2369 d: 266.998333\n    test 2370 n: 1.0\n    test 2371 D: 469.000000\n    test 2372 r: 8.185594\n    test 2373 n: 1.0\n    test 2374 R: 4.690000\n    test 2375 d: 268.717206\n    test 2376 n: 1.0\n    test 2377 D: 472.000000\n    test 2378 r: 8.237954\n    test 2379 n: 1.0\n    test 2380 R: 4.720000\n    test 2381 d: 270.436079\n    test 2382 n: 1.0\n    test 2383 D: 475.000000\n    test 2384 r: 8.290314\n    test 2385 n: 1.0\n    test 2386 R: 4.750000\n    test 2387 d: 272.154953\n    test 2388 n: 1.0\n    test 2389 D: 478.000000\n    test 2390 r: 8.342674\n    test 2391 n: 1.0\n    test 2392 R: 4.780000\n    test 2393 d: 273.873826\n    test 2394 n: 1.0\n    test 2395 D: 481.000000\n    test 2396 r: 8.395034\n    test 2397 n: 1.0\n    test 2398 R: 4.810000\n    test 2399 d: 275.592699\n    test 2400 n: 1.0\n    test 2401 D: 484.000000\n    test 2402 r: 8.447394\n    test 2403 n: 1.0\n    test 2404 R: 4.840000\n    test 2405 d: 277.311573\n    test 2406 n: 1.0\n    test 2407 D: 487.000000\n    test 2408 r: 8.499753\n    test 2409 n: 1.0\n    test 2410 R: 4.870000\n    test 2411 d: 279.030446\n    test 2412 n: 1.0\n    test 2413 D: 490.000000\n    test 2414 r: 8.552113\n    test 2415 n: 1.0\n    test 2416 R: 4.900000\n    test 2417 d: 280.749320\n    test 2418 n: 1.0\n    test 2419 D: 493.000000\n    test 2420 r: 8.604473\n    test 2421 n: 1.0\n    test 2422 R: 4.930000\n    test 2423 d: 282.468193\n    test 2424 n: 1.0\n    test 2425 D: 496.000000\n    test 2426 r: 8.656833\n    test 2427 n: 1.0\n    test 2428 R: 4.960000\n    test 2429 d: 284.187066\n    test 2430 n: 1.0\n    test 2431 D: 499.000000\n    test 2432 r: 8.709193\n    test 2433 n: 1.0\n    test 2434 R: 4.990000\n    test 2435 d: 285.905940\n    test 2436 n: 1.0\n    test 2437 D: 502.000000\n    test 2438 r: 8.761553\n    test 2439 n: 1.0\n    test 2440 R: 5.020000\n    test 2441 d: 287.624813\n    test 2442 n: 1.0\n    test 2443 D: 505.000000\n    test 2444 r: 8.813913\n    test 2445 n: 1.0\n    test 2446 R: 5.050000\n    test 2447 d: 289.343687\n    test 2448 n: 1.0\n    test 2449 D: 508.000000\n    test 2450 r: 8.866273\n    test 2451 n: 1.0\n    test 2452 R: 5.080000\n    test 2453 d: 291.062560\n    test 2454 n: 1.0\n    test 2455 D: 511.000000\n    test 2456 r: 8.918632\n    test 2457 n: 1.0\n    test 2458 R: 5.110000\n    test 2459 d: 292.781433\n    test 2460 n: 1.0\n    test 2461 D: 514.000000\n    test 2462 r: 8.970992\n    test 2463 n: 1.0\n    test 2464 R: 5.140000\n    test 2465 d: 294.500307\n    test 2466 n: 1.0\n    test 2467 D: 517.000000\n    test 2468 r: 9.023352\n    test 2469 n: 1.0\n    test 2470 R: 5.170000\n    test 2471 d: 296.219180\n    test 2472 n: 1.0\n    test 2473 D: 520.000000\n    test 2474 r: 9.075712\n    test 2475 n: 1.0\n    test 2476 R: 5.200000\n    test 2477 d: 297.938053\n    test 2478 n: 1.0\n    test 2479 D: 523.000000\n    test 2480 r: 9.128072\n    test 2481 n: 1.0\n    test 2482 R: 5.230000\n    test 2483 d: 299.656927\n    test 2484 n: 1.0\n    test 2485 D: 526.000000\n    test 2486 r: 9.180432\n    test 2487 n: 1.0\n    test 2488 R: 5.260000\n    test 2489 d: 301.375800\n    test 2490 n: 1.0\n    test 2491 D: 529.000000\n    test 2492 r: 9.232792\n    test 2493 n: 1.0\n    test 2494 R: 5.290000\n    test 2495 d: 303.094674\n    test 2496 n: 1.0\n    test 2497 D: 532.000000\n    test 2498 r: 9.285152\n    test 2499 n: 1.0\n    test 2500 R: 5.320000\n    test 2501 d: 304.813547\n    test 2502 n: 1.0\n    test 2503 D: 535.000000\n    test 2504 r: 9.337511\n    test 2505 n: 1.0\n    test 2506 R: 5.350000\n    test 2507 d: 306.532420\n    test 2508 n: 1.0\n    test 2509 D: 538.000000\n    test 2510 r: 9.389871\n    test 2511 n: 1.0\n    test 2512 R: 5.380000\n    test 2513 d: 308.251294\n    test 2514 n: 1.0\n    test 2515 D: 541.000000\n    test 2516 r: 9.442231\n    test 2517 n: 2.0\n    test 2518 R: 5.410000\n    test 2519 d: 309.970167\n    test 2520 n: 1.0\n    test 2521 D: 544.000000\n    test 2522 r: 9.494591\n    test 2523 n: 2.0\n    test 2524 R: 5.440000\n    test 2525 d: 311.689041\n    test 2526 n: 1.0\n    test 2527 D: 547.000000\n    test 2528 r: 9.546951\n    test 2529 n: 2.0\n    test 2530 R: 5.470000\n    test 2531 d: 313.407914\n    test 2532 n: 1.0\n    test 2533 D: 550.000000\n    test 2534 r: 9.599311\n    test 2535 n: 2.0\n    test 2536 R: 5.500000\n    test 2537 d: 315.126787\n    test 2538 n: 1.0\n    test 2539 D: 553.000000\n    test 2540 r: 9.651671\n    test 2541 n: 2.0\n    test 2542 R: 5.530000\n    test 2543 d: 316.845661\n    test 2544 n: 1.0\n    test 2545 D: 556.000000\n    test 2546 r: 9.704031\n    test 2547 n: 2.0\n    test 2548 R: 5.560000\n    test 2549 d: 318.564534\n    test 2550 n: 1.0\n    test 2551 D: 559.000000\n    test 2552 r: 9.756391\n    test 2553 n: 2.0\n    test 2554 R: 5.590000\n    test 2555 d: 320.283407\n    test 2556 n: 1.0\n    test 2557 D: 562.000000\n    test 2558 r: 9.808750\n    test 2559 n: 2.0\n    test 2560 R: 5.620000\n    test 2561 d: 322.002281\n    test 2562 n: 1.0\n    test 2563 D: 565.000000\n    test 2564 r: 9.861110\n    test 2565 n: 2.0\n    test 2566 R: 5.650000\n    test 2567 d: 323.721154\n    test 2568 n: 1.0\n    test 2569 D: 568.000000\n    test 2570 r: 9.913470\n    test 2571 n: 2.0\n    test 2572 R: 5.680000\n    test 2573 d: 325.440028\n    test 2574 n: 1.0\n    test 2575 D: 571.000000\n    test 2576 r: 9.965830\n    test 2577 n: 2.0\n    test 2578 R: 5.710000\n    test 2579 d: 327.158901\n    test 2580 n: 1.0\n    test 2581 D: 574.000000\n    test 2582 r: 10.018190\n    test 2583 n: 2.0\n    test 2584 R: 5.740000\n    test 2585 d: 328.877774\n    test 2586 n: 1.0\n    test 2587 D: 577.000000\n    test 2588 r: 10.070550\n    test 2589 n: 2.0\n    test 2590 R: 5.770000\n    test 2591 d: 330.596648\n    test 2592 n: 1.0\n    test 2593 D: 580.000000\n    test 2594 r: 10.122910\n    test 2595 n: 2.0\n    test 2596 R: 5.800000\n    test 2597 d: 332.315521\n    test 2598 n: 1.0\n    test 2599 D: 583.000000\n    test 2600 r: 10.175270\n    test 2601 n: 2.0\n    test 2602 R: 5.830000\n    test 2603 d: 334.034395\n    test 2604 n: 1.0\n    test 2605 D: 586.000000\n    test 2606 r: 10.227629\n    test 2607 n: 2.0\n    test 2608 R: 5.860000\n    test 2609 d: 335.753268\n    test 2610 n: 1.0\n    test 2611 D: 589.000000\n    test 2612 r: 10.279989\n    test 2613 n: 2.0\n    test 2614 R: 5.890000\n    test 2615 d: 337.472141\n    test 2616 n: 1.0\n    test 2617 D: 592.000000\n    test 2618 r: 10.332349\n    test 2619 n: 2.0\n    test 2620 R: 5.920000\n    test 2621 d: 339.191015\n    test 2622 n: 1.0\n    test 2623 D: 595.000000\n    test 2624 r: 10.384709\n    test 2625 n: 2.0\n    test 2626 R: 5.950000\n    test 2627 d: 340.909888\n    test 2628 n: 1.0\n    test 2629 D: 598.000000\n    test 2630 r: 10.437069\n    test 2631 n: 2.0\n    test 2632 R: 5.980000\n    test 2633 d: 342.628761\n    test 2634 n: 1.0\n    test 2635 D: 601.000000\n    test 2636 r: 10.489429\n    test 2637 n: 2.0\n    test 2638 R: 6.010000\n    test 2639 d: 344.347635\n    test 2640 n: 1.0\n    test 2641 D: 604.000000\n    test 2642 r: 10.541789\n    test 2643 n: 2.0\n    test 2644 R: 6.040000\n    test 2645 d: 346.066508\n    test 2646 n: 1.0\n    test 2647 D: 607.000000\n    test 2648 r: 10.594149\n    test 2649 n: 2.0\n    test 2650 R: 6.070000\n    test 2651 d: 347.785382\n    test 2652 n: 1.0\n    test 2653 D: 610.000000\n    test 2654 r: 10.646508\n    test 2655 n: 2.0\n    test 2656 R: 6.100000\n    test 2657 d: 349.504255\n    test 2658 n: 1.0\n    test 2659 D: 613.000000\n    test 2660 r: 10.698868\n    test 2661 n: 2.0\n    test 2662 R: 6.130000\n    test 2663 d: 351.223128\n    test 2664 n: 1.0\n    test 2665 D: 616.000000\n    test 2666 r: 10.751228\n    test 2667 n: 2.0\n    test 2668 R: 6.160000\n    test 2669 d: 352.942002\n    test 2670 n: 1.0\n    test 2671 D: 619.000000\n    test 2672 r: 10.803588\n    test 2673 n: 2.0\n    test 2674 R: 6.190000\n    test 2675 d: 354.660875\n    test 2676 n: 1.0\n    test 2677 D: 622.000000\n    test 2678 r: 10.855948\n    test 2679 n: 2.0\n    test 2680 R: 6.220000\n    test 2681 d: 356.379749\n    test 2682 n: 1.0\n    test 2683 D: 625.000000\n    test 2684 r: 10.908308\n    test 2685 n: 2.0\n    test 2686 R: 6.250000\n    test 2687 d: 358.098622\n    test 2688 n: 1.0\n    test 2689 D: 628.000000\n    test 2690 r: 10.960668\n    test 2691 n: 2.0\n    test 2692 R: 6.280000\n    test 2693 d: 359.817495\n    test 2694 n: 1.0\n    test 2695 D: 631.000000\n    test 2696 r: 11.013028\n    test 2697 n: 2.0\n    test 2698 R: 6.310000\n    test 2699 d: 361.536369\n    test 2700 n: 1.0\n    test 2701 D: 634.000000\n    test 2702 r: 11.065387\n    test 2703 n: 2.0\n    test 2704 R: 6.340000\n    test 2705 d: 363.255242\n    test 2706 n: 1.0\n    test 2707 D: 637.000000\n    test 2708 r: 11.117747\n    test 2709 n: 2.0\n    test 2710 R: 6.370000\n    test 2711 d: 364.974115\n    test 2712 n: 1.0\n    test 2713 D: 640.000000\n    test 2714 r: 11.170107\n    test 2715 n: 2.0\n    test 2716 R: 6.400000\n    test 2717 d: 366.692989\n    test 2718 n: 1.0\n    test 2719 D: 643.000000\n    test 2720 r: 11.222467\n    test 2721 n: 2.0\n    test 2722 R: 6.430000\n    test 2723 d: 368.411862\n    test 2724 n: 1.0\n    test 2725 D: 646.000000\n    test 2726 r: 11.274827\n    test 2727 n: 2.0\n    test 2728 R: 6.460000\n    test 2729 d: 370.130736\n    test 2730 n: 1.0\n    test 2731 D: 649.000000\n    test 2732 r: 11.327187\n    test 2733 n: 2.0\n    test 2734 R: 6.490000\n    test 2735 d: 371.849609\n    test 2736 n: 1.0\n    test 2737 D: 652.000000\n    test 2738 r: 11.379547\n    test 2739 n: 2.0\n    test 2740 R: 6.520000\n    test 2741 d: 373.568482\n    test 2742 n: 1.0\n    test 2743 D: 655.000000\n    test 2744 r: 11.431907\n    test 2745 n: 2.0\n    test 2746 R: 6.550000\n    test 2747 d: 375.287356\n    test 2748 n: 1.0\n    test 2749 D: 658.000000\n    test 2750 r: 11.484266\n    test 2751 n: 2.0\n    test 2752 R: 6.580000\n    test 2753 d: 377.006229\n    test 2754 n: 1.0\n    test 2755 D: 661.000000\n    test 2756 r: 11.536626\n    test 2757 n: 2.0\n    test 2758 R: 6.610000\n    test 2759 d: 378.725103\n    test 2760 n: 1.0\n    test 2761 D: 664.000000\n    test 2762 r: 11.588986\n    test 2763 n: 2.0\n    test 2764 R: 6.640000\n    test 2765 d: 380.443976\n    test 2766 n: 1.0\n    test 2767 D: 667.000000\n    test 2768 r: 11.641346\n    test 2769 n: 2.0\n    test 2770 R: 6.670000\n    test 2771 d: 382.162849\n    test 2772 n: 1.0\n    test 2773 D: 670.000000\n    test 2774 r: 11.693706\n    test 2775 n: 2.0\n    test 2776 R: 6.700000\n    test 2777 d: 383.881723\n    test 2778 n: 1.0\n    test 2779 D: 673.000000\n    test 2780 r: 11.746066\n    test 2781 n: 2.0\n    test 2782 R: 6.730000\n    test 2783 d: 385.600596\n    test 2784 n: 1.0\n    test 2785 D: 676.000000\n    test 2786 r: 11.798426\n    test 2787 n: 2.0\n    test 2788 R: 6.760000\n    test 2789 d: 387.319470\n    test 2790 n: 1.0\n    test 2791 D: 679.000000\n    test 2792 r: 11.850786\n    test 2793 n: 2.0\n    test 2794 R: 6.790000\n    test 2795 d: 389.038343\n    test 2796 n: 1.0\n    test 2797 D: 682.000000\n    test 2798 r: 11.903145\n    test 2799 n: 2.0\n    test 2800 R: 6.820000\n    test 2801 d: 390.757216\n    test 2802 n: 1.0\n    test 2803 D: 685.000000\n    test 2804 r: 11.955505\n    test 2805 n: 2.0\n    test 2806 R: 6.850000\n    test 2807 d: 392.476090\n    test 2808 n: 1.0\n    test 2809 D: 688.000000\n    test 2810 r: 12.007865\n    test 2811 n: 2.0\n    test 2812 R: 6.880000\n    test 2813 d: 394.194963\n    test 2814 n: 1.0\n    test 2815 D: 691.000000\n    test 2816 r: 12.060225\n    test 2817 n: 2.0\n    test 2818 R: 6.910000\n    test 2819 d: 395.913836\n    test 2820 n: 1.0\n    test 2821 D: 694.000000\n    test 2822 r: 12.112585\n    test 2823 n: 2.0\n    test 2824 R: 6.940000\n    test 2825 d: 397.632710\n    test 2826 n: 1.0\n    test 2827 D: 697.000000\n    test 2828 r: 12.164945\n    test 2829 n: 2.0\n    test 2830 R: 6.970000\n    test 2831 d: 399.351583\n    test 2832 n: 1.0\n    test 2833 D: 700.000000\n    test 2834 r: 12.217305\n    test 2835 n: 2.0\n    test 2836 R: 7.000000\n    test 2837 d: 401.070457\n    test 2838 n: 1.0\n    test 2839 D: 703.000000\n    test 2840 r: 12.269665\n    test 2841 n: 2.0\n    test 2842 R: 7.030000\n    test 2843 d: 402.789330\n    test 2844 n: 1.0\n    test 2845 D: 706.000000\n    test 2846 r: 12.322025\n    test 2847 n: 2.0\n    test 2848 R: 7.060000\n    test 2849 d: 404.508203\n    test 2850 n: 1.0\n    test 2851 D: 709.000000\n    test 2852 r: 12.374384\n    test 2853 n: 2.0\n    test 2854 R: 7.090000\n    test 2855 d: 406.227077\n    test 2856 n: 1.0\n    test 2857 D: 712.000000\n    test 2858 r: 12.426744\n    test 2859 n: 2.0\n    test 2860 R: 7.120000\n    test 2861 d: 407.945950\n    test 2862 n: 1.0\n    test 2863 D: 715.000000\n    test 2864 r: 12.479104\n    test 2865 n: 2.0\n    test 2866 R: 7.150000\n    test 2867 d: 409.664824\n    test 2868 n: 1.0\n\n    test 2869 radd: 32.0\n    test 2870 rdiv: 6.67e-02\n    test 2871 rmul: 60.0\n    test 2872 rpow: 1073741824.0\n    test 2873 rsub: -28.0\n\n    test 2874 R * 2: 4.0000\n    test 2875 R / 2: 2.0000\n    test 2876 R / R: True\n    test 2877 R / R: 1.0\n    test 2878 R / R: 2.0\n    test 2879 abs  : 2.0\n    test 2880 int  : 2\n    test 2881 eq R: True\n    test 2882 ge R: True\n    test 2883 gt R: False\n    test 2884 le R: True\n    test 2885 lt R: False\n    test 2886 ne R: False\n    test 2887 if R: True\n    test 2888 gt 0: True\n    test 2889 lt 0: False\n    test 2890 eq 0: False\n    test 2891 lt 0: True\n    test 2892 gt 0: True\n    test 2893 gt 0: False\n    test 2894 signOf: 1\n    test 2895 signOf: -1\n    test 2896 ceil : 3.0\n    test 2897 floor: 2.0\n\n    test 2898 divmod : (2.0, Radians(0.0))\n    test 2899 divmod : (2.0, Radians(0.0))\n    test 2900 rdivmod : (0.0, Radians(2.0))\n    test 2901 divmod : (-2.0, Radians(1.0))\n    test 2902 imod: 0.0\n    test 2903 mod : 0.0\n    test 2904 rmod: 2.0\n    test 2905 neg : -2.0\n    test 2906 pos : 2.0\n    test 2907 is_int: False\n    test 2908 float: 9e-102\n    test 2909 is_int: False\n    test 2910 round1: 0.0\n    test 2911 R //: -2.0\n    test 2912 // R: -2.0\n    test 2913 R //=: -2.0\n    test 2914 R / 0: ZeroDivisionError('float division by zero')\n\n    test 2915 pow(R, +): 0.0\n    test 2916 pow(R, -): 0.4767037\n    test 2917 pow(-R, R): TypeError('fromDegrees((1+2.8274333882308138e-101j))')  FAILED, KNOWN, expected TypeError\n    test 2918 pow(R, R): 1.0\n    test 2919 pow(R, f, i): TypeError('pow() 3rd argument not allowed unless all arguments are integers')\n    test 2920 pow(R, R, i): TypeError('fromDegrees(<Fsum[1] (2.1, 0) at 0x7c5629168>)')\n    test 2921 pow(R, i, None): 4.0\n# imported pygeodesy.basics into errors.py line 531\n    test 2922 Z**-2: ZeroDivisionError('0.0 ** -2: 0.0 cannot be raised to a negative power')\n    test 2923 pow(0): 1.000\n    test 2924 pow(1): -3.000\n    test 2925 pow(2): 9.000\n    test 2926 pow(21): -10460353203.000\n    test 2927 pow(-5): -0.004\n    test 2928 **= 2: 9.000\n\n    test 2929 F0**0: 1.0\n    test 2930 F0**0.: 1.0\n    test 2931 0**F0: 1.0\n    test 2932 0.**F0: 1.0\n    test 2933 F0**0: 1.0\n    test 2934 F0**2: 0.0\n    test 2935 F0**0.: 1.0\n    test 2936 F0**3.: 0.0\n    test 2937 F0**0.: 1.0\n\n    test 2938 R**2: 3125.000\n    test 2939 R**-1: 0.200\n    test 2940 R**-2: 0.040\n    test 2941 R**-2.5: 0.018\n    test 2942 R** 2.5: 55.902\n    test 2943 pow(2): 25.000\n    test 2944 pow(2.5): 55.902\n    test 2945 pow(R): 3125.000\n    test 2946 3pow(2, None): 25.0\n    test 2947 3pow(2.5, None): 55.9017\n    test 2948 3pow(2, 20): 5\n    test 2949 x * x: 25.0\n    test 2950 x * R: 12.5\n    test 2951 x + R: 7.5\n    test 2952 x - R: 2.5\n\n    test 2953 abs(T): 0.0\n    test 2954 bool(T): True\n    test 2955 float(T): 2.220446049250313e-16\n    test 2956 int(T): 0\n    test 2957 -T: -0.0\n    test 2958 +T: 0.0\n\n    test 2959 R==T: False\n    test 2960 R>=T: True\n    test 2961 R> T: True\n    test 2962 R<=T: False\n    test 2963 R< T: False\n    test 2964 R!=T: True\n\n    test 2965 base: 61.0\n    test 2966 flipsign: -61.0\n    test 2967 lambertian: 1.3524048166735199\n    test 2968 fromScalar: 1.35240482\n    test 2969 n0: 61.0\n    test 2970 nearest: 90.0\n    test 2971 normalize: 61.0\n    test 2972 quadrant: 0\n    test 2973 reflect: 61.0\n    test 2974 round: 61.0\n    test 2975 shift: nan\n    test 2976 t: 1.8040477552714236\n    test 2977 toLambertian: 1.3524048166735199\n    test 2978 toTuple: 0.87462, 0.48481, 0.0\n\n    1 of 2978 testAngles.py tests (0.0%) FAILED, ALL KNOWN (pygeodesy 26.3.26 PyPy 7.3.17 Python 3.10.14 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 64.695 ms\nrunning /opt/local/bin/p....y3.10 -W default ~/PyGeodesy/test/testAuxilats.py\n# lazily imported pygeodesy.basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.DeprecationWarnings from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isint from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isLazy from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.issubclassof from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.iterNumpy2over from .iters by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.LazyImportError from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.karney by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.NN from .interns by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.normDMS from .dms by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.pairs from .streprs by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.printf from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.property_RO from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.typename from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.PI_2 from .constants by testAuxilats.py line 11\n# lazily imported pygeodesy.PI_4 from .constants by testAuxilats.py line 11\n# lazily imported pygeodesy.Fsum from .fsums by testAuxilats.py line 11\n# lazily imported pygeodesy.fsum from .fsums by testAuxilats.py line 11\n# lazily imported pygeodesy.sincos2 from .utily by testAuxilats.py line 11\n\n    testing testAuxilats.py 25.09.09 (module pygeodesy.auxilats 25.12.02) isLazy=3\n\n    test 1 Aux: 6\n\n    test 2 aout: 0\n    test 3 before: None\n    test 4 before: _Rtuple\n    test 5 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 6 before: _Rtuple\n    test 7 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 8 before: _Rtuple\n    test 9 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 10 before: _Rtuple\n    test 11 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 12 before: _Rtuple\n    test 13 after: tuple  FAILED, KNOWN, expected _Rtuple\n\n    test 14 aout: 1\n    test 15 before: _Rtuple\n    test 16 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 17 before: None\n    test 18 before: _Rtuple\n    test 19 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 20 before: _Rtuple\n    test 21 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 22 before: _Rtuple\n    test 23 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 24 before: _Rtuple\n    test 25 after: tuple  FAILED, KNOWN, expected _Rtuple\n\n    test 26 aout: 2\n    test 27 before: _Rtuple\n    test 28 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 29 before: _Rtuple\n    test 30 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 31 before: None\n    test 32 before: _Rtuple\n    test 33 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 34 before: _Rtuple\n    test 35 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 36 before: _Rtuple\n    test 37 after: tuple  FAILED, KNOWN, expected _Rtuple\n\n    test 38 aout: 3\n    test 39 before: _Rtuple\n    test 40 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 41 before: _Rtuple\n    test 42 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 43 before: _Rtuple\n    test 44 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 45 before: None\n    test 46 before: _Rtuple\n    test 47 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 48 before: _Rtuple\n    test 49 after: tuple  FAILED, KNOWN, expected _Rtuple\n\n    test 50 aout: 4\n    test 51 before: _Rtuple\n    test 52 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 53 before: _Rtuple\n    test 54 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 55 before: _Rtuple\n    test 56 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 57 before: _Rtuple\n    test 58 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 59 before: None\n    test 60 before: _Rtuple\n    test 61 after: tuple  FAILED, KNOWN, expected _Rtuple\n\n    test 62 aout: 5\n    test 63 before: _Rtuple\n    test 64 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 65 before: _Rtuple\n    test 66 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 67 before: _Rtuple\n    test 68 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 69 before: _Rtuple\n    test 70 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 71 before: _Rtuple\n    test 72 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 73 before: None\n# imported pygeodesy.basics into errors.py line 915\n\n    test 74 Aux: 4\n\n    test 75 aout: 0\n    test 76 Aux: 4\n    test 77 Aux: 4\n    test 78 Aux: 4\n    test 79 Aux: 4\n    test 80 Aux: 4\n    test 81 Aux: 4\n\n    test 82 aout: 1\n    test 83 Aux: 4\n    test 84 Aux: 4\n    test 85 Aux: 4\n    test 86 Aux: 4\n    test 87 Aux: 4\n    test 88 Aux: 4\n\n    test 89 aout: 2\n    test 90 Aux: 4\n    test 91 Aux: 4\n    test 92 Aux: 4\n    test 93 Aux: 4\n    test 94 Aux: 4\n    test 95 Aux: 4\n\n    test 96 aout: 3\n    test 97 Aux: 4\n    test 98 Aux: 4\n    test 99 Aux: 4\n    test 100 Aux: 4\n    test 101 Aux: 4\n    test 102 Aux: 4\n\n    test 103 aout: 4\n    test 104 Aux: 4\n    test 105 Aux: 4\n    test 106 Aux: 4\n    test 107 Aux: 4\n    test 108 Aux: 4\n    test 109 Aux: 4\n\n    test 110 aout: 5\n    test 111 Aux: 4\n    test 112 Aux: 4\n    test 113 Aux: 4\n    test 114 Aux: 4\n    test 115 Aux: 4\n    test 116 Aux: 4\n\n    test 117 Aux: 6\n\n    test 118 aout: 0\n    test 119 Aux: 6\n    test 120 Aux: 6\n    test 121 Aux: 6\n    test 122 Aux: 6\n    test 123 Aux: 6\n    test 124 Aux: 6\n\n    test 125 aout: 1\n    test 126 Aux: 6\n    test 127 Aux: 6\n    test 128 Aux: 6\n    test 129 Aux: 6\n    test 130 Aux: 6\n    test 131 Aux: 6\n\n    test 132 aout: 2\n    test 133 Aux: 6\n    test 134 Aux: 6\n    test 135 Aux: 6\n    test 136 Aux: 6\n    test 137 Aux: 6\n    test 138 Aux: 6\n\n    test 139 aout: 3\n    test 140 Aux: 6\n    test 141 Aux: 6\n    test 142 Aux: 6\n    test 143 Aux: 6\n    test 144 Aux: 6\n    test 145 Aux: 6\n\n    test 146 aout: 4\n    test 147 Aux: 6\n    test 148 Aux: 6\n    test 149 Aux: 6\n    test 150 Aux: 6\n    test 151 Aux: 6\n    test 152 Aux: 6\n\n    test 153 aout: 5\n    test 154 Aux: 6\n    test 155 Aux: 6\n    test 156 Aux: 6\n    test 157 Aux: 6\n    test 158 Aux: 6\n    test 159 Aux: 6\n\n    test 160 Aux: 8\n\n    test 161 aout: 0\n    test 162 Aux: 8\n    test 163 Aux: 8\n    test 164 Aux: 8\n    test 165 Aux: 8\n    test 166 Aux: 8\n    test 167 Aux: 8\n\n    test 168 aout: 1\n    test 169 Aux: 8\n    test 170 Aux: 8\n    test 171 Aux: 8\n    test 172 Aux: 8\n    test 173 Aux: 8\n    test 174 Aux: 8\n\n    test 175 aout: 2\n    test 176 Aux: 8\n    test 177 Aux: 8\n    test 178 Aux: 8\n    test 179 Aux: 8\n    test 180 Aux: 8\n    test 181 Aux: 8\n\n    test 182 aout: 3\n    test 183 Aux: 8\n    test 184 Aux: 8\n    test 185 Aux: 8\n    test 186 Aux: 8\n    test 187 Aux: 8\n    test 188 Aux: 8\n\n    test 189 aout: 4\n    test 190 Aux: 8\n    test 191 Aux: 8\n    test 192 Aux: 8\n    test 193 Aux: 8\n    test 194 Aux: 8\n    test 195 Aux: 8\n\n    test 196 aout: 5\n    test 197 Aux: 8\n    test 198 Aux: 8\n    test 199 Aux: 8\n    test 200 Aux: 8\n    test 201 Aux: 8\n    test 202 Aux: 8\n\n    test 203  0 0.000000000000 Phi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 204  0 0.000000000000 Beta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 205  0 0.000000000000 Theta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 206  0 0.000000000000 Mu(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 207  0 0.000000000000 Chi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 208  0 0.000000000000 Xi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n\n    test 209  0 0.000000000000 Phi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 210  0 0.000000000000 Beta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 211  0 0.000000000000 Theta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 212  0 0.000000000000 Mu(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 213  0 0.000000000000 Chi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 214  0 0.000000000000 Xi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n\n    test 215  7 7.023313832609 Phi(tan=0.123198, x=0.992546, y=0.122279): 0.122784560903\n    test 216  7 7.000000000000 Beta(tan=0.122785, x=0.992546, y=0.121869): 0.122784560903\n    test 217  7 6.976762016136 Theta(tan=0.122373, x=0.992546, y=0.121461): 0.122784560903\n    test 218  7 6.988357344130 Mu(tan=0.122578, x=0.992571, y=0.121668), iteration=2: 0.122784560903\n    test 219  7 6.976762787606 Chi(tan=0.122373, x=1.0, y=0.122373), iteration=2: 0.122784560903\n    test 220  7 6.992232010256 Xi(tan=0.122647, x=1.99404, y=0.244563), iteration=2: 0.122784560903\n\n    test 221  7 7.023313832609 Phi(tan=0.123198, x=0.992496, y=0.122273): 0.122784560903\n    test 222  7 7.000000000000 Beta(tan=0.122785, x=0.992546, y=0.121869): 0.122784560903\n    test 223  7 6.976762016136 Theta(tan=0.122373, x=0.992595, y=0.121467): 0.122784560903\n    test 224  7 6.988357344130 Mu(tan=0.122578, x=0.992571, y=0.121668): 0.122784560903\n    test 225  7 6.976762787606 Chi(tan=0.122373, x=0.992595, y=0.121467): 0.122784560903\n    test 226  7 6.992232010256 Xi(tan=0.122647, x=0.992563, y=0.121735): 0.122784560903\n\n    test 227 14 14.045235971490 Phi(tan=0.250167, x=0.970296, y=0.242736): 0.249328002843\n    test 228 14 14.000000000000 Beta(tan=0.249328, x=0.970296, y=0.241922): 0.249328002843\n    test 229 14 13.954897969322 Theta(tan=0.248492, x=0.970296, y=0.241111): 0.249328002843\n    test 230 14 13.977407191407 Mu(tan=0.248909, x=0.970391, y=0.241539), iteration=3: 0.249328002843\n    test 231 14 13.954903870195 Chi(tan=0.248492, x=1.0, y=0.248492), iteration=3: 0.249328002843\n    test 232 14 13.984926538790 Xi(tan=0.249049, x=1.94943, y=0.485503), iteration=3: 0.249328002843\n\n    test 233 14 14.045235971490 Phi(tan=0.250167, x=0.970104, y=0.242688): 0.249328002843\n    test 234 14 14.000000000000 Beta(tan=0.249328, x=0.970296, y=0.241922): 0.249328002843\n    test 235 14 13.954897969322 Theta(tan=0.248492, x=0.970486, y=0.241158): 0.249328002843\n    test 236 14 13.977407191407 Mu(tan=0.248909, x=0.970391, y=0.241539): 0.249328002843\n    test 237 14 13.954903870195 Chi(tan=0.248492, x=0.970486, y=0.241158): 0.249328002843\n    test 238 14 13.984926538790 Xi(tan=0.249049, x=0.970359, y=0.241667): 0.249328002843\n\n    test 239 21 21.064458966605 Phi(tan=0.385155, x=0.93358, y=0.359574): 0.383864035035\n    test 240 21 21.000000000000 Beta(tan=0.383864, x=0.93358, y=0.358368): 0.383864035035\n    test 241 21 20.935701709947 Theta(tan=0.382577, x=0.93358, y=0.357166): 0.383864035035\n    test 242 21 20.967800709613 Mu(tan=0.383219, x=0.933782, y=0.357843), iteration=2: 0.383864035035\n    test 243 21 20.935720172355 Chi(tan=0.382577, x=1.0, y=0.382577), iteration=3: 0.383864035035\n    test 244 21 20.978518383767 Xi(tan=0.383434, x=1.87581, y=0.719251), iteration=3: 0.383864035035\n\n    test 245 21 21.064458966605 Phi(tan=0.385155, x=0.933177, y=0.359418): 0.383864035035\n    test 246 21 21.000000000000 Beta(tan=0.383864, x=0.93358, y=0.358368): 0.383864035035\n    test 247 21 20.935701709947 Theta(tan=0.382577, x=0.933982, y=0.35732): 0.383864035035\n    test 248 21 20.967800709613 Mu(tan=0.383219, x=0.933782, y=0.357843): 0.383864035035\n    test 249 21 20.935720172355 Chi(tan=0.382577, x=0.933982, y=0.35732): 0.383864035035\n    test 250 21 20.978518383767 Xi(tan=0.383434, x=0.933715, y=0.358018): 0.383864035035\n\n    test 251 28 28.079838480095 Phi(tan=0.533498, x=0.882948, y=0.471051): 0.531709431661\n    test 252 28 28.000000000000 Beta(tan=0.531709, x=0.882948, y=0.469472): 0.531709431661\n    test 253 28 27.920311317014 Theta(tan=0.529927, x=0.882948, y=0.467898): 0.531709431661\n    test 254 28 27.960108897314 Mu(tan=0.530817, x=0.883274, y=0.468857), iteration=3: 0.531709431661\n    test 255 28 27.920350592883 Chi(tan=0.529928, x=1.0, y=0.529928), iteration=3: 0.531709431661\n    test 256 28 27.973388607066 Xi(tan=0.531114, x=1.77426, y=0.942335), iteration=3: 0.531709431661\n\n    test 257 28 28.079838480095 Phi(tan=0.533498, x=0.882293, y=0.470701): 0.531709431661\n    test 258 28 28.000000000000 Beta(tan=0.531709, x=0.882948, y=0.469472): 0.531709431661\n    test 259 28 27.920311317014 Theta(tan=0.529927, x=0.8836, y=0.468243): 0.531709431661\n    test 260 28 27.960108897314 Mu(tan=0.530817, x=0.883274, y=0.468857): 0.531709431661\n    test 261 28 27.920350592883 Chi(tan=0.529928, x=0.883599, y=0.468244): 0.531709431661\n    test 262 28 27.973388607066 Xi(tan=0.531114, x=0.883166, y=0.469061): 0.531709431661\n\n    test 263 35 35.090461812463 Phi(tan=0.702563, x=0.819152, y=0.575506): 0.700207538210\n    test 264 35 35.000000000000 Beta(tan=0.700208, x=0.819152, y=0.573576): 0.700207538210\n    test 265 35 34.909642037079 Theta(tan=0.69786, x=0.819152, y=0.571653): 0.700207538210\n    test 266 35 34.954788593575 Mu(tan=0.699032, x=0.819604, y=0.57293), iteration=3: 0.700207538210\n    test 267 35 34.909708526741 Chi(tan=0.697862, x=1.0, y=0.697862), iteration=2: 0.700207538210\n    test 268 35 34.969841811236 Xi(tan=0.699423, x=1.64627, y=1.15144), iteration=3: 0.700207538210\n\n    test 269 35 35.090461812463 Phi(tan=0.702563, x=0.818245, y=0.574869): 0.700207538210\n    test 270 35 35.000000000000 Beta(tan=0.700208, x=0.819152, y=0.573576): 0.700207538210\n    test 271 35 34.909642037079 Theta(tan=0.69786, x=0.820056, y=0.572284): 0.700207538210\n    test 272 35 34.954788593575 Mu(tan=0.699032, x=0.819604, y=0.57293): 0.700207538210\n    test 273 35 34.909708526741 Chi(tan=0.697862, x=0.820055, y=0.572285): 0.700207538210\n    test 274 35 34.969841811236 Xi(tan=0.699423, x=0.819454, y=0.573145): 0.700207538210\n\n    test 275 42 42.095701889505 Phi(tan=0.903433, x=0.743145, y=0.671382): 0.900404044298\n    test 276 42 42.000000000000 Beta(tan=0.900404, x=0.743145, y=0.669131): 0.900404044298\n    test 277 42 41.904331700939 Theta(tan=0.897385, x=0.743145, y=0.666887): 0.900404044298\n    test 278 42 41.952155366417 Mu(tan=0.898893, x=0.743703, y=0.66851), iteration=3: 0.900404044298\n    test 279 42 41.904427530254 Chi(tan=0.897388, x=1.0, y=0.897388), iteration=3: 0.900404044298\n    test 280 42 41.968088079226 Xi(tan=0.899396, x=1.49371, y=1.34344), iteration=2: 0.900404044298\n\n    test 281 42 42.095701889505 Phi(tan=0.903433, x=0.742026, y=0.670371): 0.900404044298\n    test 282 42 42.000000000000 Beta(tan=0.900404, x=0.743145, y=0.669131): 0.900404044298\n    test 283 42 41.904331700939 Theta(tan=0.897385, x=0.744261, y=0.667889): 0.900404044298\n    test 284 42 41.952155366417 Mu(tan=0.898893, x=0.743703, y=0.66851): 0.900404044298\n    test 285 42 41.904427530254 Chi(tan=0.897388, x=0.74426, y=0.66789): 0.900404044298\n    test 286 42 41.968088079226 Xi(tan=0.899396, x=0.743517, y=0.668717): 0.900404044298\n\n    test 287 49 49.095253561343 Phi(tan=1.15424, x=0.656059, y=0.757248): 1.150368407221\n    test 288 49 49.000000000000 Beta(tan=1.15037, x=0.656059, y=0.75471): 1.150368407221\n    test 289 49 48.904701906378 Theta(tan=1.14651, x=0.656059, y=0.752179): 1.150368407221\n    test 290 49 48.952364883757 Mu(tan=1.14844, x=0.656686, y=0.754164), iteration=2: 1.150368407221\n    test 291 49 48.904823373499 Chi(tan=1.14652, x=1.0, y=1.14652), iteration=3: 1.150368407221\n    test 292 49 48.968230641178 Xi(tan=1.14908, x=1.31885, y=1.51547), iteration=3: 1.150368407221\n\n    test 293 49 49.095253561343 Phi(tan=1.15424, x=0.654803, y=0.755799): 1.150368407221\n    test 294 49 49.000000000000 Beta(tan=1.15037, x=0.656059, y=0.75471): 1.150368407221\n    test 295 49 48.904701906378 Theta(tan=1.14651, x=0.657313, y=0.753617): 1.150368407221\n    test 296 49 48.952364883757 Mu(tan=1.14844, x=0.656686, y=0.754164): 1.150368407221\n    test 297 49 48.904823373499 Chi(tan=1.14652, x=0.657312, y=0.753619): 1.150368407221\n    test 298 49 48.968230641178 Xi(tan=1.14908, x=0.656477, y=0.754346): 1.150368407221\n\n    test 299 56 56.089150284766 Phi(tan=1.48755, x=0.559193, y=0.831827): 1.482560968513\n    test 300 56 56.000000000000 Beta(tan=1.48256, x=0.559193, y=0.829038): 1.482560968513\n    test 301 56 55.910737485374 Theta(tan=1.47759, x=0.559193, y=0.826258): 1.482560968513\n    test 302 56 55.955403845590 Mu(tan=1.48007, x=0.559838, y=0.828602), iteration=3: 1.482560968513\n    test 303 56 55.910874805786 Chi(tan=1.4776, x=1.0, y=1.4776), iteration=3: 1.482560968513\n    test 304 56 55.970259966049 Xi(tan=1.4809, x=1.12427, y=1.66494), iteration=2: 1.482560968513\n\n    test 305 56 56.089150284766 Phi(tan=1.48755, x=0.557902, y=0.829907): 1.482560968513\n    test 306 56 56.000000000000 Beta(tan=1.48256, x=0.559193, y=0.829038): 1.482560968513\n    test 307 56 55.910737485374 Theta(tan=1.47759, x=0.560484, y=0.828165): 1.482560968513\n    test 308 56 55.955403845590 Mu(tan=1.48007, x=0.559838, y=0.828602): 1.482560968513\n    test 309 56 55.910874805786 Chi(tan=1.4776, x=0.560482, y=0.828167): 1.482560968513\n    test 310 56 55.970259966049 Xi(tan=1.4809, x=0.559623, y=0.828747): 1.482560968513\n\n    test 311 63 63.077760538972 Phi(tan=1.96921, x=0.45399, y=0.894004): 1.962610505505\n    test 312 63 63.000000000000 Beta(tan=1.96261, x=0.45399, y=0.891007): 1.962610505505\n    test 313 63 62.922085806991 Theta(tan=1.95603, x=0.45399, y=0.888019): 1.962610505505\n    test 314 63 62.961090973753 Mu(tan=1.95932, x=0.454595, y=0.890698), iteration=2: 1.962610505505\n    test 315 63 62.922224287619 Chi(tan=1.95604, x=1.0, y=1.95604), iteration=3: 1.962610505505\n    test 316 63 62.974054576334 Xi(tan=1.96042, x=0.912868, y=1.7896), iteration=3: 1.962610505505\n\n    test 317 63 63.077760538972 Phi(tan=1.96921, x=0.452781, y=0.891622): 1.962610505505\n    test 318 63 63.000000000000 Beta(tan=1.96261, x=0.45399, y=0.891007): 1.962610505505\n    test 319 63 62.922085806991 Theta(tan=1.95603, x=0.455202, y=0.890388): 1.962610505505\n    test 320 63 62.961090973753 Mu(tan=1.95932, x=0.454595, y=0.890698): 1.962610505505\n    test 321 63 62.922224287619 Chi(tan=1.95604, x=0.4552, y=0.890389): 1.962610505505\n    test 322 63 62.974054576334 Xi(tan=1.96042, x=0.454394, y=0.890801): 1.962610505505\n\n    test 323 70 70.061764561164 Phi(tan=2.75672, x=0.34202, y=0.942854): 2.747477419455\n    test 324 70 70.000000000000 Beta(tan=2.74748, x=0.34202, y=0.939693): 2.747477419455\n    test 325 70 69.938076331685 Theta(tan=2.73827, x=0.34202, y=0.936542): 2.747477419455\n    test 326 70 69.969087953771 Mu(tan=2.74287, x=0.342527, y=0.939508), iteration=3: 2.747477419455\n    test 327 70 69.938198769881 Chi(tan=2.73828, x=1.0, y=2.73828), iteration=3: 2.747477419455\n    test 328 70 69.979388479327 Xi(tan=2.74441, x=0.687791, y=1.88758), iteration=2: 2.747477419455\n\n    test 329 70 70.061764561164 Phi(tan=2.75672, x=0.341007, y=0.940061): 2.747477419455\n    test 330 70 70.000000000000 Beta(tan=2.74748, x=0.34202, y=0.939693): 2.747477419455\n    test 331 70 69.938076331685 Theta(tan=2.73827, x=0.343036, y=0.939322): 2.747477419455\n    test 332 70 69.969087953771 Mu(tan=2.74287, x=0.342527, y=0.939508): 2.747477419455\n    test 333 70 69.938198769881 Chi(tan=2.73828, x=0.343034, y=0.939323): 2.747477419455\n    test 334 70 69.979388479327 Xi(tan=2.74441, x=0.342358, y=0.93957): 2.747477419455\n\n    test 335 77 77.042113102652 Phi(tan=4.34605, x=0.224951, y=0.977648): 4.331475874284\n    test 336 77 77.000000000000 Beta(tan=4.33148, x=0.224951, y=0.97437): 4.331475874284\n    test 337 77 76.957759584883 Theta(tan=4.31695, x=0.224951, y=0.971103): 4.331475874284\n    test 338 77 76.978919638565 Mu(tan=4.32422, x=0.22531, y=0.974287), iteration=3: 4.331475874284\n    test 339 77 76.957849394477 Chi(tan=4.31698, x=1.0, y=4.31698), iteration=3: 4.331475874284\n    test 340 77 76.985944723491 Xi(tan=4.32663, x=0.452402, y=1.95738), iteration=3: 4.331475874284\n\n    test 341 77 77.042113102652 Phi(tan=4.34605, x=0.224235, y=0.974535): 4.331475874284\n    test 342 77 77.000000000000 Beta(tan=4.33148, x=0.224951, y=0.97437): 4.331475874284\n    test 343 77 76.957759584883 Theta(tan=4.31695, x=0.225669, y=0.974204): 4.331475874284\n    test 344 77 76.978919638565 Mu(tan=4.32422, x=0.22531, y=0.974287): 4.331475874284\n    test 345 77 76.957849394477 Chi(tan=4.31698, x=0.225668, y=0.974204): 4.331475874284\n    test 346 77 76.985944723491 Xi(tan=4.32663, x=0.22519, y=0.974315): 4.331475874284\n\n    test 347 84 84.019970846274 Phi(tan=9.54637, x=0.104528, y=0.997868): 9.514364454223\n    test 348 84 84.000000000000 Beta(tan=9.51436, x=0.104528, y=0.994522): 9.514364454223\n    test 349 84 83.979963440552 Theta(tan=9.48246, x=0.104528, y=0.991187): 9.514364454223\n    test 350 84 83.990002289461 Mu(tan=9.49842, x=0.104702, y=0.994504), iteration=3: 9.514364454223\n    test 351 84 83.980007825249 Chi(tan=9.48254, x=1.0, y=9.48254), iteration=3: 9.514364454223\n    test 352 84 83.993334244416 Xi(tan=9.50373, x=0.210228, y=1.99795), iteration=3: 9.514364454223\n\n    test 353 84 84.019970846274 Phi(tan=9.54637, x=0.104182, y=0.994558): 9.514364454223\n    test 354 84 84.000000000000 Beta(tan=9.51436, x=0.104528, y=0.994522): 9.514364454223\n    test 355 84 83.979963440552 Theta(tan=9.48246, x=0.104876, y=0.994485): 9.514364454223\n    test 356 84 83.990002289461 Mu(tan=9.49842, x=0.104702, y=0.994504): 9.514364454223\n    test 357 84 83.980007825249 Chi(tan=9.48254, x=0.104875, y=0.994485): 9.514364454223\n    test 358 84 83.993334244416 Xi(tan=9.50373, x=0.104644, y=0.99451): 9.514364454223\n\n    test 359 91 90.996647866757 Phi(tan=-57.4827, x=-0.0174524, y=1.00321): -57.289961630759\n    test 360 91 91.000000000000 Beta(tan=-57.29, x=-0.0174524, y=0.999848): -57.289961630759\n    test 361 91 91.003363403239 Theta(tan=-57.0979, x=-0.0174524, y=0.996495): -57.289961630759\n    test 362 91 91.001678173837 Mu(tan=-57.194, x=-0.0174817, y=0.999847), iteration=3: -57.289961630759\n    test 363 91 91.003355872504 Chi(tan=-57.0983, x=-1, y=57.0983), iteration=3: -57.289961630759\n    test 364 91 91.001118877197 Xi(tan=-57.2259, x=-0.0351008, y=2.00867), iteration=3: -57.289961630759\n\n    test 365 91 90.996647866757 Phi(tan=-57.4827, x=-0.0173939, y=0.999849): -57.289961630759\n    test 366 91 91.000000000000 Beta(tan=-57.29, x=-0.0174524, y=0.999848): -57.289961630759\n    test 367 91 91.003363403239 Theta(tan=-57.0979, x=-0.0175111, y=0.999847): -57.289961630760  FAILED, KNOWN (6.07726e-15), expected -57.289961630759\n    test 368 91 91.001678173837 Mu(tan=-57.194, x=-0.0174817, y=0.999847): -57.289961630760  FAILED, KNOWN (6.44934e-15), expected -57.289961630759\n    test 369 91 91.003355872504 Chi(tan=-57.0983, x=-0.017511, y=0.999847): -57.289961630760  FAILED, KNOWN (4.21687e-15), expected -57.289961630759\n    test 370 91 91.001118877197 Xi(tan=-57.2259, x=-0.0174719, y=0.999847): -57.289961630760  FAILED, KNOWN (5.08505e-15), expected -57.289961630759\n\n    test 371 98 97.973523052479 Phi(tan=-7.13931, x=-0.139173, y=0.993599): -7.115369722384\n    test 372 98 98.000000000000 Beta(tan=-7.11537, x=-0.139173, y=0.990268): -7.115369722384\n    test 373 98 98.026562562307 Theta(tan=-7.09151, x=-0.139173, y=0.986948): -7.115369722384\n    test 374 98 98.013254483126 Mu(tan=-7.10345, x=-0.139402, y=0.990236), iteration=3: -7.115369722384\n    test 375 98 98.026504224575 Chi(tan=-7.09157, x=-1, y=7.09157), iteration=3: -7.115369722384\n    test 376 98 98.008837191904 Xi(tan=-7.10742, x=-0.279903, y=1.98939), iteration=3: -7.115369722384\n\n    test 377 98 97.973523052479 Phi(tan=-7.13931, x=-0.138715, y=0.990332): -7.115369722384\n    test 378 98 98.000000000000 Beta(tan=-7.11537, x=-0.139173, y=0.990268): -7.115369722384\n    test 379 98 98.026562562307 Theta(tan=-7.09151, x=-0.139632, y=0.990203): -7.115369722384\n    test 380 98 98.013254483126 Mu(tan=-7.10345, x=-0.139402, y=0.990236): -7.115369722384\n    test 381 98 98.026504224575 Chi(tan=-7.09157, x=-0.139631, y=0.990204): -7.115369722384\n    test 382 98 98.008837191904 Xi(tan=-7.10742, x=-0.139326, y=0.990247): -7.115369722384\n\n    test 383 105 104.951963747366 Phi(tan=-3.74461, x=-0.258819, y=0.969175): -3.732050807569\n    test 384 105 105.000000000000 Beta(tan=-3.73205, x=-0.258819, y=0.965926): -3.732050807569\n    test 385 105 105.048176169243 Theta(tan=-3.71954, x=-0.258819, y=0.962687): -3.732050807569\n    test 386 105 105.024044295704 Mu(tan=-3.7258, x=-0.259224, y=0.965817), iteration=3: -3.732050807569\n    test 387 105 105.048075510346 Chi(tan=-3.71956, x=-1, y=3.71956), iteration=3: -3.732050807569\n    test 388 105 105.016031662804 Xi(tan=-3.72788, x=-0.520505, y=1.94038), iteration=3: -3.732050807569\n\n    test 389 105 104.951963747366 Phi(tan=-3.74461, x=-0.258009, y=0.966142): -3.732050807569\n    test 390 105 105.000000000000 Beta(tan=-3.73205, x=-0.258819, y=0.965926): -3.732050807569\n    test 391 105 105.048176169243 Theta(tan=-3.71954, x=-0.259631, y=0.965708): -3.732050807569\n    test 392 105 105.024044295704 Mu(tan=-3.7258, x=-0.259224, y=0.965817): -3.732050807569\n    test 393 105 105.048075510346 Chi(tan=-3.71956, x=-0.259629, y=0.965708): -3.732050807569\n    test 394 105 105.016031662804 Xi(tan=-3.72788, x=-0.259089, y=0.965853): -3.732050807569\n\n    test 395 112 111.933246025813 Phi(tan=-2.48341, x=-0.374607, y=0.930303): -2.475086853416\n    test 396 112 112.000000000000 Beta(tan=-2.47509, x=-0.374607, y=0.927184): -2.475086853416\n    test 397 112 112.066915437341 Theta(tan=-2.46679, x=-0.374607, y=0.924075): -2.475086853416\n    test 398 112 112.033407196712 Mu(tan=-2.47094, x=-0.375147, y=0.926965), iteration=2: -2.475086853416\n    test 399 112 112.066786634266 Chi(tan=-2.4668, x=-1, y=2.4668), iteration=3: -2.475086853416\n    test 400 112 112.022275613932 Xi(tan=-2.47232, x=-0.753301, y=1.8624), iteration=3: -2.475086853416\n\n    test 401 112 111.933246025813 Phi(tan=-2.48341, x=-0.373526, y=0.92762): -2.475086853416\n    test 402 112 112.000000000000 Beta(tan=-2.47509, x=-0.374607, y=0.927184): -2.475086853416\n    test 403 112 112.066915437341 Theta(tan=-2.46679, x=-0.375689, y=0.926746): -2.475086853416\n    test 404 112 112.033407196712 Mu(tan=-2.47094, x=-0.375147, y=0.926965): -2.475086853416\n    test 405 112 112.066786634266 Chi(tan=-2.4668, x=-0.375687, y=0.926747): -2.475086853416\n    test 406 112 112.022275613932 Xi(tan=-2.47232, x=-0.374967, y=0.927038): -2.475086853416\n\n    test 407 119 118.918479987923 Phi(tan=-1.81012, x=-0.48481, y=0.877562): -1.804047755271\n    test 408 119 119.000000000000 Beta(tan=-1.80405, x=-0.48481, y=0.87462): -1.804047755271\n    test 409 119 119.081665222463 Theta(tan=-1.798, x=-0.48481, y=0.871687): -1.804047755271\n    test 410 119 119.040787185717 Mu(tan=-1.80102, x=-0.485432, y=0.874274), iteration=3: -1.804047755271\n    test 411 119 119.081525372917 Chi(tan=-1.79801, x=-1, y=1.79801), iteration=3: -1.804047755271\n    test 412 119 119.027198394988 Xi(tan=-1.80203, x=-0.974807, y=1.75663), iteration=3: -1.804047755271\n\n    test 413 119 118.918479987923 Phi(tan=-1.81012, x=-0.483565, y=0.875309): -1.804047755271\n    test 414 119 119.000000000000 Beta(tan=-1.80405, x=-0.48481, y=0.87462): -1.804047755271\n    test 415 119 119.081665222463 Theta(tan=-1.798, x=-0.486056, y=0.873928): -1.804047755271\n    test 416 119 119.040787185717 Mu(tan=-1.80102, x=-0.485432, y=0.874274): -1.804047755271\n    test 417 119 119.081525372917 Chi(tan=-1.79801, x=-0.486054, y=0.873929): -1.804047755271\n    test 418 119 119.027198394988 Xi(tan=-1.80203, x=-0.485225, y=0.874389): -1.804047755271\n\n    test 419 126 125.908544256035 Phi(tan=-1.38101, x=-0.587785, y=0.811739): -1.376381920471\n    test 420 126 126.000000000000 Beta(tan=-1.37638, x=-0.587785, y=0.809017): -1.376381920471\n    test 421 126 126.091550707249 Theta(tan=-1.37177, x=-0.587785, y=0.806305): -1.376381920471\n    test 422 126 126.045745652474 Mu(tan=-1.37407, x=-0.588431, y=0.808547), iteration=3: -1.376381920471\n    test 423 126 126.091416595783 Chi(tan=-1.37177, x=-1, y=1.37177), iteration=3: -1.376381920471\n    test 424 126 126.030507332108 Xi(tan=-1.37484, x=-1.18171, y=1.62467), iteration=2: -1.376381920471\n\n    test 425 126 125.908544256035 Phi(tan=-1.38101, x=-0.586493, y=0.809954): -1.376381920471\n    test 426 126 126.000000000000 Beta(tan=-1.37638, x=-0.587785, y=0.809017): -1.376381920471\n    test 427 126 126.091550707249 Theta(tan=-1.37177, x=-0.589077, y=0.808077): -1.376381920471\n    test 428 126 126.045745652474 Mu(tan=-1.37407, x=-0.588431, y=0.808547): -1.376381920471\n    test 429 126 126.091416595783 Chi(tan=-1.37177, x=-0.589075, y=0.808078): -1.376381920471\n    test 430 126 126.030507332108 Xi(tan=-1.37484, x=-0.588216, y=0.808704): -1.376381920471\n\n    test 431 133 132.904033458108 Phi(tan=-1.07598, x=-0.681998, y=0.733814): -1.072368710025\n    test 432 133 133.000000000000 Beta(tan=-1.07237, x=-0.681998, y=0.731354): -1.072368710025\n    test 433 133 133.095989026852 Theta(tan=-1.06877, x=-0.681998, y=0.728902): -1.072368710025\n    test 434 133 133.047987474831 Mu(tan=-1.07057, x=-0.682611, y=0.730782), iteration=3: -1.072368710025\n    test 435 133 133.095874142459 Chi(tan=-1.06878, x=-1, y=1.06878), iteration=2: -1.072368710025\n    test 436 133 133.032005165725 Xi(tan=-1.07117, x=-1.37094, y=1.46851), iteration=3: -1.072368710025\n\n    test 437 133 132.904033458108 Phi(tan=-1.07598, x=-0.680772, y=0.732495): -1.072368710025\n    test 438 133 133.000000000000 Beta(tan=-1.07237, x=-0.681998, y=0.731354): -1.072368710025\n    test 439 133 133.095989026852 Theta(tan=-1.06877, x=-0.683223, y=0.73021): -1.072368710025\n    test 440 133 133.047987474831 Mu(tan=-1.07057, x=-0.682611, y=0.730782): -1.072368710025\n    test 441 133 133.095874142459 Chi(tan=-1.06878, x=-0.683221, y=0.730211): -1.072368710025\n    test 442 133 133.032005165725 Xi(tan=-1.07117, x=-0.682407, y=0.730973): -1.072368710025\n\n    test 443 140 139.905221888853 Phi(tan=-0.841922, x=-0.766044, y=0.64495): -0.839099631177\n    test 444 140 140.000000000000 Beta(tan=-0.8391, x=-0.766044, y=0.642788): -0.839099631177\n    test 445 140 140.094722853987 Theta(tan=-0.836286, x=-0.766044, y=0.640632): -0.839099631177\n    test 446 140 140.047378679025 Mu(tan=-0.837691, x=-0.766576, y=0.642154), iteration=2: -0.839099631177\n    test 447 140 140.094635301560 Chi(tan=-0.836289, x=-1, y=0.836289), iteration=3: -0.839099631177\n    test 448 140 140.031601928062 Xi(tan=-0.83816, x=-1.53968, y=1.2905), iteration=3: -0.839099631177\n\n    test 449 140 139.905221888853 Phi(tan=-0.841922, x=-0.76498, y=0.644054): -0.839099631177\n    test 450 140 140.000000000000 Beta(tan=-0.8391, x=-0.766044, y=0.642788): -0.839099631177\n    test 451 140 140.094722853987 Theta(tan=-0.836286, x=-0.767106, y=0.64152): -0.839099631177\n    test 452 140 140.047378679025 Mu(tan=-0.837691, x=-0.766576, y=0.642154): -0.839099631177\n    test 453 140 140.094635301560 Chi(tan=-0.836289, x=-0.767105, y=0.641521): -0.839099631177\n    test 454 140 140.031601928062 Xi(tan=-0.83816, x=-0.766399, y=0.642365): -0.839099631177\n\n    test 455 147 146.912045740495 Phi(tan=-0.651592, x=-0.838671, y=0.546471): -0.649407593198\n    test 456 147 147.000000000000 Beta(tan=-0.649408, x=-0.838671, y=0.544639): -0.649407593198\n    test 457 147 147.087834196097 Theta(tan=-0.64723, x=-0.838671, y=0.542813): -0.649407593198\n    test 458 147 147.043954583618 Mu(tan=-0.648317, x=-0.839088, y=0.543995), iteration=3: -0.649407593198\n    test 459 147 147.087775924345 Chi(tan=-0.647232, x=-1, y=0.647232), iteration=3: -0.649407593198\n    test 460 147 147.029320517871 Xi(tan=-0.64868, x=-1.68543, y=1.09331), iteration=3: -0.649407593198\n\n    test 461 147 146.912045740495 Phi(tan=-0.651592, x=-0.837834, y=0.545926): -0.649407593198\n    test 462 147 147.000000000000 Beta(tan=-0.649408, x=-0.838671, y=0.544639): -0.649407593198\n    test 463 147 147.087834196097 Theta(tan=-0.64723, x=-0.839505, y=0.543353): -0.649407593198\n    test 464 147 147.043954583618 Mu(tan=-0.648317, x=-0.839088, y=0.543995): -0.649407593198\n    test 465 147 147.087775924345 Chi(tan=-0.647232, x=-0.839504, y=0.543354): -0.649407593198\n    test 466 147 147.029320517871 Xi(tan=-0.64868, x=-0.838949, y=0.54421): -0.649407593198\n\n    test 467 154 153.924105301481 Phi(tan=-0.489373, x=-0.898794, y=0.439846): -0.487732588566\n    test 468 154 154.000000000000 Beta(tan=-0.487733, x=-0.898794, y=0.438371): -0.487732588566\n    test 469 154 154.075737936138 Theta(tan=-0.486097, x=-0.898794, y=0.436901): -0.487732588566\n    test 470 154 154.037917900127 Mu(tan=-0.486914, x=-0.899084, y=0.437776), iteration=3: -0.487732588566\n    test 471 154 154.075705391203 Chi(tan=-0.486098, x=-1, y=0.486098), iteration=3: -0.487732588566\n    test 472 154 154.025295587615 Xi(tan=-0.487186, x=-1.80605, y=0.879882), iteration=3: -0.487732588566\n\n    test 473 154 153.924105301481 Phi(tan=-0.489373, x=-0.898213, y=0.439561): -0.487732588566\n    test 474 154 154.000000000000 Beta(tan=-0.487733, x=-0.898794, y=0.438371): -0.487732588566\n    test 475 154 154.075737936138 Theta(tan=-0.486097, x=-0.899373, y=0.437183): -0.487732588566\n    test 476 154 154.037917900127 Mu(tan=-0.486914, x=-0.899084, y=0.437776): -0.487732588566\n    test 477 154 154.075705391203 Chi(tan=-0.486098, x=-0.899372, y=0.437183): -0.487732588566\n    test 478 154 154.025295587615 Xi(tan=-0.487186, x=-0.898987, y=0.437974): -0.487732588566\n\n    test 479 161 160.940687365843 Phi(tan=-0.345486, x=-0.945519, y=0.326663): -0.344327613290\n    test 480 161 161.000000000000 Beta(tan=-0.344328, x=-0.945519, y=0.325568): -0.344327613290\n    test 481 161 161.059155871563 Theta(tan=-0.343173, x=-0.945519, y=0.324477): -0.344327613290\n    test 482 161 161.029626856612 Mu(tan=-0.343749, x=-0.945687, y=0.325079), iteration=3: -0.344327613290\n    test 483 161 161.059141853346 Chi(tan=-0.343173, x=-1, y=0.343173), iteration=3: -0.344327613290\n    test 484 161 161.019765751188 Xi(tan=-0.343942, x=-1.89975, y=0.653405), iteration=2: -0.344327613290\n\n    test 485 161 160.940687365843 Phi(tan=-0.345486, x=-0.945181, y=0.326547): -0.344327613290\n    test 486 161 161.000000000000 Beta(tan=-0.344328, x=-0.945519, y=0.325568): -0.344327613290\n    test 487 161 161.059155871563 Theta(tan=-0.343173, x=-0.945854, y=0.324592): -0.344327613290\n    test 488 161 161.029626856612 Mu(tan=-0.343749, x=-0.945687, y=0.325079): -0.344327613290\n    test 489 161 161.059141853346 Chi(tan=-0.343173, x=-0.945854, y=0.324592): -0.344327613290\n    test 490 161 161.019765751188 Xi(tan=-0.343942, x=-0.945631, y=0.325242): -0.344327613290\n\n    test 491 168 167.960806838131 Phi(tan=-0.213272, x=-0.978148, y=0.208611): -0.212556561670\n    test 492 168 168.000000000000 Beta(tan=-0.212557, x=-0.978148, y=0.207912): -0.212556561670\n    test 493 168 168.039073098008 Theta(tan=-0.211844, x=-0.978148, y=0.207215): -0.212556561670\n    test 494 168 168.019574010622 Mu(tan=-0.2122, x=-0.978219, y=0.207578), iteration=2: -0.212556561670\n    test 495 168 168.039069322354 Chi(tan=-0.211844, x=-1, y=0.211844), iteration=2: -0.212556561670\n    test 496 168 168.013059526305 Xi(tan=-0.212318, x=-1.96517, y=0.417243), iteration=3: -0.212556561670\n\n    test 497 168 167.960806838131 Phi(tan=-0.213272, x=-0.978005, y=0.208581): -0.212556561670\n    test 498 168 168.000000000000 Beta(tan=-0.212557, x=-0.978148, y=0.207912): -0.212556561670\n    test 499 168 168.039073098008 Theta(tan=-0.211844, x=-0.978289, y=0.207245): -0.212556561670\n    test 500 168 168.019574010622 Mu(tan=-0.2122, x=-0.978219, y=0.207578): -0.212556561670\n    test 501 168 168.039069322354 Chi(tan=-0.211844, x=-0.978289, y=0.207245): -0.212556561670\n    test 502 168 168.013059526305 Xi(tan=-0.212318, x=-0.978195, y=0.207689): -0.212556561670\n\n    test 503 175 174.983265245736 Phi(tan=-0.087783, x=-0.996195, y=0.0874489): -0.087488663526\n    test 504 175 175.000000000000 Beta(tan=-0.0874887, x=-0.996195, y=0.0871557): -0.087488663526\n    test 505 175 175.016679496811 Theta(tan=-0.0871953, x=-0.996195, y=0.0868635): -0.087488663526\n    test 506 175 175.008356987733 Mu(tan=-0.0873417, x=-0.996207, y=0.0870104), iteration=3: -0.087488663526\n    test 507 175 175.016679213606 Chi(tan=-0.0871953, x=-1, y=0.0871953), iteration=2: -0.087488663526\n    test 508 175 175.005575818689 Xi(tan=-0.0873906, x=-2.00135, y=0.174899), iteration=2: -0.087488663526\n\n    test 509 175 174.983265245736 Phi(tan=-0.087783, x=-0.996169, y=0.0874467): -0.087488663526\n    test 510 175 175.000000000000 Beta(tan=-0.0874887, x=-0.996195, y=0.0871557): -0.087488663526\n    test 511 175 175.016679496811 Theta(tan=-0.0871953, x=-0.99622, y=0.0868657): -0.087488663526\n    test 512 175 175.008356987733 Mu(tan=-0.0873417, x=-0.996207, y=0.0870104): -0.087488663526\n    test 513 175 175.016679213606 Chi(tan=-0.0871953, x=-0.99622, y=0.0868657): -0.087488663526\n    test 514 175 175.005575818689 Xi(tan=-0.0873906, x=-0.996203, y=0.0870588): -0.087488663526\n\n    test 515 182 182.006722688009 Phi(tan=0.0350382, x=-0.999391, y=-0.0350169): 0.034920769492\n    test 516 182 182.000000000000 Beta(tan=0.0349208, x=-0.999391, y=-0.0348995): 0.034920769492\n    test 517 182 181.993299797077 Theta(tan=0.0348037, x=-0.999391, y=-0.0347825): 0.034920769492\n    test 518 182 181.996642883728 Mu(tan=0.0348621, x=-0.999393, y=-0.0348409), iteration=3: 0.034920769492\n    test 519 182 181.993299815318 Chi(tan=0.0348037, x=-1, y=-0.0348037), iteration=2: 0.034920769492\n    test 520 182 181.997760106963 Xi(tan=0.0348816, x=-2.00776, y=-0.0700339), iteration=3: 0.034920769492\n\n    test 521 182 182.006722688009 Phi(tan=0.0350382, x=-0.999387, y=-0.0350168): 0.034920769492\n    test 522 182 182.000000000000 Beta(tan=0.0349208, x=-0.999391, y=-0.0348995): 0.034920769492\n    test 523 182 181.993299797077 Theta(tan=0.0348037, x=-0.999395, y=-0.0347826): 0.034920769492\n    test 524 182 181.996642883728 Mu(tan=0.0348621, x=-0.999393, y=-0.0348409): 0.034920769492\n    test 525 182 181.993299815318 Chi(tan=0.0348037, x=-0.999395, y=-0.0347826): 0.034920769492\n    test 526 182 181.997760106963 Xi(tan=0.0348816, x=-0.999392, y=-0.0348604): 0.034920769492\n\n    test 527 189 189.029778772560 Phi(tan=0.158917, x=-0.987688, y=-0.156961): 0.158384440325\n    test 528 189 189.000000000000 Beta(tan=0.158384, x=-0.987688, y=-0.156434): 0.158384440325\n    test 529 189 188.970316191157 Theta(tan=0.157853, x=-0.987688, y=-0.15591): 0.158384440325\n    test 530 189 188.985128467162 Mu(tan=0.158118, x=-0.987729, y=-0.156178), iteration=3: 0.158384440325\n    test 531 189 188.970317814928 Chi(tan=0.157853, x=-1, y=-0.157853), iteration=3: 0.158384440325\n    test 532 189 188.990077770379 Xi(tan=0.158207, x=-1.9843, y=-0.31393), iteration=3: 0.158384440325\n\n    test 533 189 189.029778772560 Phi(tan=0.158917, x=-0.987607, y=-0.156948): 0.158384440325\n    test 534 189 189.000000000000 Beta(tan=0.158384, x=-0.987688, y=-0.156434): 0.158384440325\n    test 535 189 188.970316191157 Theta(tan=0.157853, x=-0.987769, y=-0.155923): 0.158384440325\n    test 536 189 188.985128467162 Mu(tan=0.158118, x=-0.987729, y=-0.156178): 0.158384440325\n    test 537 189 188.970317814928 Chi(tan=0.157853, x=-0.987769, y=-0.155923): 0.158384440325\n    test 538 189 188.990077770379 Xi(tan=0.158207, x=-0.987715, y=-0.156263): 0.158384440325\n\n    test 539 196 196.051057415277 Phi(tan=0.28771, x=-0.961262, y=-0.276565): 0.286745385759\n    test 540 196 196.000000000000 Beta(tan=0.286745, x=-0.961262, y=-0.275637): 0.286745385759\n    test 541 196 195.949087795468 Theta(tan=0.285784, x=-0.961262, y=-0.274713): 0.286745385759\n    test 542 196 195.974498585700 Mu(tan=0.286264, x=-0.961384, y=-0.275209), iteration=3: 0.286745385759\n    test 543 196 195.949096442818 Chi(tan=0.285784, x=-1, y=-0.285784), iteration=2: 0.286745385759\n    test 544 196 195.982986192635 Xi(tan=0.286424, x=-1.93132, y=-0.553176), iteration=3: 0.286745385759\n\n    test 545 196 196.051057415277 Phi(tan=0.28771, x=-0.961016, y=-0.276494): 0.286745385759\n    test 546 196 196.000000000000 Beta(tan=0.286745, x=-0.961262, y=-0.275637): 0.286745385759\n    test 547 196 195.949087795468 Theta(tan=0.285784, x=-0.961506, y=-0.274783): 0.286745385759\n    test 548 196 195.974498585700 Mu(tan=0.286264, x=-0.961384, y=-0.275209): 0.286745385759\n    test 549 196 195.949096442818 Chi(tan=0.285784, x=-0.961506, y=-0.274783): 0.286745385759\n    test 550 196 195.982986192635 Xi(tan=0.286424, x=-0.961344, y=-0.275352): 0.286745385759\n\n    test 551 203 203.069290086312 Phi(tan=0.425903, x=-0.920505, y=-0.392046): 0.424474816210\n    test 552 203 203.000000000000 Beta(tan=0.424475, x=-0.920505, y=-0.390731): 0.424474816210\n    test 553 203 202.930871376810 Theta(tan=0.423052, x=-0.920505, y=-0.389421): 0.424474816210\n    test 554 203 202.965385294258 Mu(tan=0.423762, x=-0.920741, y=-0.390175), iteration=3: 0.424474816210\n    test 555 203 202.930894974288 Chi(tan=0.423052, x=-1, y=-0.423052), iteration=3: 0.424474816210\n    test 556 203 202.976907357652 Xi(tan=0.423999, x=-1.84959, y=-0.784226), iteration=3: 0.424474816210\n\n    test 557 203 203.069290086312 Phi(tan=0.425903, x=-0.920032, y=-0.391844): 0.424474816210\n    test 558 203 203.000000000000 Beta(tan=0.424475, x=-0.920505, y=-0.390731): 0.424474816210\n    test 559 203 202.930871376810 Theta(tan=0.423052, x=-0.920976, y=-0.38962): 0.424474816210\n    test 560 203 202.965385294258 Mu(tan=0.423762, x=-0.920741, y=-0.390175): 0.424474816210\n    test 561 203 202.930894974288 Chi(tan=0.423052, x=-0.920975, y=-0.389621): 0.424474816210\n    test 562 203 202.976907357652 Xi(tan=0.423999, x=-0.920662, y=-0.39036): 0.424474816210\n\n    test 563 210 210.083392202979 Phi(tan=0.579293, x=-0.866025, y=-0.501682): 0.577350269190\n    test 564 210 210.000000000000 Beta(tan=0.57735, x=-0.866025, y=-0.5): 0.577350269190\n    test 565 210 209.916747713236 Theta(tan=0.575415, x=-0.866025, y=-0.498324): 0.577350269190\n    test 566 210 209.958330176858 Mu(tan=0.576381, x=-0.866389, y=-0.49937), iteration=2: 0.577350269190\n    test 567 210 209.916794258180 Chi(tan=0.575416, x=-1, y=-0.575416), iteration=2: 0.577350269190\n    test 568 210 209.972202619898 Xi(tan=0.576704, x=-1.74031, y=-1.00365), iteration=2: 0.577350269190\n\n    test 569 210 210.083392202979 Phi(tan=0.579293, x=-0.865297, y=-0.50126): 0.577350269190\n    test 570 210 210.000000000000 Beta(tan=0.57735, x=-0.866025, y=-0.5): 0.577350269190\n    test 571 210 209.916747713236 Theta(tan=0.575415, x=-0.866751, y=-0.498741): 0.577350269190\n    test 572 210 209.958330176858 Mu(tan=0.576381, x=-0.866389, y=-0.49937): 0.577350269190\n    test 573 210 209.916794258180 Chi(tan=0.575416, x=-0.866751, y=-0.498742): 0.577350269190\n    test 574 210 209.972202619898 Xi(tan=0.576704, x=-0.866268, y=-0.49958): 0.577350269190\n\n    test 575 217 217.092527888642 Phi(tan=0.756089, x=-0.798636, y=-0.60384): 0.753554050103\n    test 576 217 217.000000000000 Beta(tan=0.753554, x=-0.798636, y=-0.601815): 0.753554050103\n    test 577 217 216.907557725734 Theta(tan=0.751028, x=-0.798636, y=-0.599797): 0.753554050103\n    test 578 217 216.953752130797 Mu(tan=0.752289, x=-0.799121, y=-0.60117), iteration=2: 0.753554050103\n    test 579 217 216.907632616913 Chi(tan=0.75103, x=-1, y=-0.75103), iteration=2: 0.753554050103\n    test 580 217 216.969151185746 Xi(tan=0.75271, x=-1.60509, y=-1.20817), iteration=2: 0.753554050103\n\n    test 581 217 217.092527888642 Phi(tan=0.756089, x=-0.797663, y=-0.603104): 0.753554050103\n    test 582 217 217.000000000000 Beta(tan=0.753554, x=-0.798636, y=-0.601815): 0.753554050103\n    test 583 217 216.907557725734 Theta(tan=0.751028, x=-0.799605, y=-0.600526): 0.753554050103\n    test 584 217 216.953752130797 Mu(tan=0.752289, x=-0.799121, y=-0.60117): 0.753554050103\n    test 585 217 216.907632616913 Chi(tan=0.75103, x=-0.799605, y=-0.600527): 0.753554050103\n    test 586 217 216.969151185746 Xi(tan=0.75271, x=-0.798959, y=-0.601385): 0.753554050103\n\n    test 587 224 224.096159176144 Phi(tan=0.968937, x=-0.71934, y=-0.696995): 0.965688774807\n    test 588 224 224.000000000000 Beta(tan=0.965689, x=-0.71934, y=-0.694658): 0.965688774807\n    test 589 224 223.903852093789 Theta(tan=0.962451, x=-0.71934, y=-0.692329): 0.965688774807\n    test 590 224 223.951922536530 Mu(tan=0.964068, x=-0.719922, y=-0.694055), iteration=2: 0.965688774807\n    test 591 224 223.903955899504 Chi(tan=0.962454, x=-1, y=-0.962454), iteration=3: 0.965688774807\n    test 592 224 223.967933596024 Xi(tan=0.964608, x=-1.44592, y=-1.39475), iteration=3: 0.965688774807\n\n    test 593 224 224.096159176144 Phi(tan=0.968937, x=-0.718173, y=-0.695865): 0.965688774807\n    test 594 224 224.000000000000 Beta(tan=0.965689, x=-0.71934, y=-0.694658): 0.965688774807\n    test 595 224 223.903852093789 Theta(tan=0.962451, x=-0.720504, y=-0.69345): 0.965688774807\n    test 596 224 223.951922536530 Mu(tan=0.964068, x=-0.719922, y=-0.694055): 0.965688774807\n    test 597 224 223.903955899504 Chi(tan=0.962454, x=-0.720503, y=-0.693452): 0.965688774807\n    test 598 224 223.967933596024 Xi(tan=0.964608, x=-0.719728, y=-0.694256): 0.965688774807\n\n    test 599 231 231.094076843128 Phi(tan=1.23905, x=-0.62932, y=-0.77976): 1.234897156535\n    test 600 231 231.000000000000 Beta(tan=1.2349, x=-0.62932, y=-0.777146): 1.234897156535\n    test 601 231 230.905857444036 Theta(tan=1.23076, x=-0.62932, y=-0.77454): 1.234897156535\n    test 602 231 230.952949275029 Mu(tan=1.23283, x=-0.629958, y=-0.776629), iteration=3: 1.234897156535\n    test 603 231 230.905984687641 Chi(tan=1.23076, x=-1, y=-1.23076), iteration=3: 1.234897156535\n    test 604 231 230.968621174367 Xi(tan=1.23352, x=-1.26515, y=-1.56058), iteration=3: 1.234897156535\n\n    test 605 231 231.094076843128 Phi(tan=1.23905, x=-0.628044, y=-0.778178): 1.234897156535\n    test 606 231 231.000000000000 Beta(tan=1.2349, x=-0.62932, y=-0.777146): 1.234897156535\n    test 607 231 230.905857444036 Theta(tan=1.23076, x=-0.630596, y=-0.776111): 1.234897156535\n    test 608 231 230.952949275029 Mu(tan=1.23283, x=-0.629958, y=-0.776629): 1.234897156535\n    test 609 231 230.905984687641 Chi(tan=1.23076, x=-0.630595, y=-0.776112): 1.234897156535\n    test 610 231 230.968621174367 Xi(tan=1.23352, x=-0.629746, y=-0.776801): 1.234897156535\n\n    test 611 238 238.086411314589 Phi(tan=1.60572, x=-0.529919, y=-0.850901): 1.600334529041\n    test 612 238 238.000000000000 Beta(tan=1.60033, x=-0.529919, y=-0.848048): 1.600334529041\n    test 613 238 237.913461373388 Theta(tan=1.59497, x=-0.529919, y=-0.845205): 1.600334529041\n    test 614 238 237.956770509194 Mu(tan=1.59765, x=-0.530559, y=-0.847648), iteration=3: 1.600334529041\n    test 615 238 237.913600687903 Chi(tan=1.59498, x=-1, y=-1.59498), iteration=2: 1.600334529041\n    test 616 238 237.971172027129 Xi(tan=1.59854, x=-1.06545, y=-1.70318), iteration=3: 1.600334529041\n\n    test 617 238 238.086411314589 Phi(tan=1.60572, x=-0.52864, y=-0.848846): 1.600334529041\n    test 618 238 238.000000000000 Beta(tan=1.60033, x=-0.529919, y=-0.848048): 1.600334529041\n    test 619 238 237.913461373388 Theta(tan=1.59497, x=-0.5312, y=-0.847247): 1.600334529041\n    test 620 238 237.956770509194 Mu(tan=1.59765, x=-0.530559, y=-0.847648): 1.600334529041\n    test 621 238 237.913600687903 Chi(tan=1.59498, x=-0.531197, y=-0.847248): 1.600334529041\n    test 622 238 237.971172027129 Xi(tan=1.59854, x=-0.530346, y=-0.847781): 1.600334529041\n\n    test 623 245 245.073623344306 Phi(tan=2.15172, x=-0.422618, y=-0.909357): 2.144506920510\n    test 624 245 245.000000000000 Beta(tan=2.14451, x=-0.422618, y=-0.906308): 2.144506920510\n    test 625 245 244.926217548699 Theta(tan=2.13732, x=-0.422618, y=-0.903269): 2.144506920510\n    test 626 245 244.963158554024 Mu(tan=2.14091, x=-0.423201, y=-0.906036), iteration=2: 2.144506920510\n    test 627 245 244.926353236006 Chi(tan=2.13733, x=-1, y=-2.13733), iteration=3: 2.144506920510\n    test 628 245 244.975433776813 Xi(tan=2.14211, x=-0.849812, y=-1.82039), iteration=3: 2.144506920510\n\n    test 629 245 245.073623344306 Phi(tan=2.15172, x=-0.421453, y=-0.90685): 2.144506920510\n    test 630 245 245.000000000000 Beta(tan=2.14451, x=-0.422618, y=-0.906308): 2.144506920510\n    test 631 245 244.926217548699 Theta(tan=2.13732, x=-0.423785, y=-0.905763): 2.144506920510\n    test 632 245 244.963158554024 Mu(tan=2.14091, x=-0.423201, y=-0.906036): 2.144506920510\n    test 633 245 244.926353236006 Chi(tan=2.13733, x=-0.423783, y=-0.905764): 2.144506920510\n    test 634 245 244.975433776813 Xi(tan=2.14211, x=-0.423007, y=-0.906127): 2.144506920510\n\n    test 635 252 252.056475395211 Phi(tan=3.08804, x=-0.309017, y=-0.954256): 3.077683537175\n    test 636 252 252.000000000000 Beta(tan=3.07768, x=-0.309017, y=-0.951057): 3.077683537175\n    test 637 252 251.943370950484 Theta(tan=3.06736, x=-0.309017, y=-0.947868): 3.077683537175\n    test 638 252 251.971733559721 Mu(tan=3.07253, x=-0.309486, y=-0.950904), iteration=3: 3.077683537175\n    test 639 252 251.943485649406 Chi(tan=3.06739, x=-1, y=-3.06739), iteration=2: 3.077683537175\n    test 640 252 251.981152809484 Xi(tan=3.07424, x=-0.621437, y=-1.91045), iteration=3: 3.077683537175\n\n    test 641 252 252.056475395211 Phi(tan=3.08804, x=-0.308079, y=-0.951361): 3.077683537175\n    test 642 252 252.000000000000 Beta(tan=3.07768, x=-0.309017, y=-0.951057): 3.077683537175\n    test 643 252 251.943370950484 Theta(tan=3.06736, x=-0.309957, y=-0.950751): 3.077683537175\n    test 644 252 251.971733559721 Mu(tan=3.07253, x=-0.309486, y=-0.950904): 3.077683537175\n    test 645 252 251.943485649406 Chi(tan=3.06739, x=-0.309955, y=-0.950751): 3.077683537175\n    test 646 252 251.981152809484 Xi(tan=3.07424, x=-0.30933, y=-0.950955): 3.077683537175\n\n    test 647 259 259.035985707307 Phi(tan=5.16186, x=-0.190809, y=-0.984929): 5.144554015970\n    test 648 259 259.000000000000 Beta(tan=5.14455, x=-0.190809, y=-0.981627): 5.144554015970\n    test 649 259 258.963902062378 Theta(tan=5.12731, x=-0.190809, y=-0.978336): 5.144554015970\n    test 650 259 258.981986158342 Mu(tan=5.13593, x=-0.191118, y=-0.981567), iteration=3: 5.144554015970\n    test 651 259 258.963979961875 Chi(tan=5.12734, x=-1, y=-5.12734), iteration=2: 5.144554015970\n    test 652 259 258.987989441453 Xi(tan=5.1388, x=-0.383745, y=-1.97199), iteration=2: 5.144554015970\n\n    test 653 259 259.035985707307 Phi(tan=5.16186, x=-0.190192, y=-0.981747): 5.144554015970\n    test 654 259 259.000000000000 Beta(tan=5.14455, x=-0.190809, y=-0.981627): 5.144554015970\n    test 655 259 258.963902062378 Theta(tan=5.12731, x=-0.191427, y=-0.981507): 5.144554015970\n    test 656 259 258.981986158342 Mu(tan=5.13593, x=-0.191118, y=-0.981567): 5.144554015970\n    test 657 259 258.963979961875 Chi(tan=5.12734, x=-0.191426, y=-0.981507): 5.144554015970\n    test 658 259 258.987989441453 Xi(tan=5.1388, x=-0.191015, y=-0.981587): 5.144554015970\n\n    test 659 266 266.013367926454 Phi(tan=14.3488, x=-0.0697565, y=-1.00092): 14.300666256712\n    test 660 266 266.000000000000 Beta(tan=14.3007, x=-0.0697565, y=-0.997564): 14.300666256712\n    test 661 266 265.986587541025 Theta(tan=14.2527, x=-0.0697565, y=-0.994219): 14.300666256712\n    test 662 266 265.993307710088 Mu(tan=14.2767, x=-0.069873, y=-0.997556), iteration=3: 14.300666256712\n    test 663 266 265.986617434521 Chi(tan=14.2528, x=-1, y=-14.2528), iteration=3: 14.300666256712\n    test 664 266 265.995538081208 Xi(tan=14.2847, x=-0.140295, y=-2.00408), iteration=3: 14.300666256712\n\n    test 665 266 266.013367926454 Phi(tan=14.3488, x=-0.0695237, y=-0.99758): 14.300666256712\n    test 666 266 266.000000000000 Beta(tan=14.3007, x=-0.0697565, y=-0.997564): 14.300666256712\n    test 667 266 265.986587541025 Theta(tan=14.2527, x=-0.06999, y=-0.997548): 14.300666256712\n    test 668 266 265.993307710088 Mu(tan=14.2767, x=-0.069873, y=-0.997556): 14.300666256712\n    test 669 266 265.986617434521 Chi(tan=14.2528, x=-0.0699895, y=-0.997548): 14.300666256712\n    test 670 266 265.995538081208 Xi(tan=14.2847, x=-0.0698342, y=-0.997559): 14.300666256712\n\n    test 671 273 272.989959849669 Phi(tan=-19.1453, x=0.052336, y=-1.00199): -19.081136687728\n    test 672 273 273.000000000000 Beta(tan=-19.0811, x=0.052336, y=-0.99863): -19.081136687728\n    test 673 273 273.010073740960 Theta(tan=-19.0172, x=0.052336, y=-0.995281): -19.081136687728\n    test 674 273 273.005026355872 Mu(tan=-19.0492, x=0.0524236, y=-0.998625), iteration=2: -19.081136687728\n    test 675 273 273.010051240667 Chi(tan=-19.0173, x=1.0, y=-19.0173), iteration=3: -19.081136687728\n    test 676 273 273.003351193295 Xi(tan=-19.0598, x=0.105259, y=-2.00622), iteration=3: -19.081136687728\n\n    test 677 273 272.989959849669 Phi(tan=-19.1453, x=0.052161, y=-0.998639): -19.081136687728\n    test 678 273 273.000000000000 Beta(tan=-19.0811, x=0.052336, y=-0.99863): -19.081136687728\n    test 679 273 273.010073740960 Theta(tan=-19.0172, x=0.0525115, y=-0.99862): -19.081136687728\n    test 680 273 273.005026355872 Mu(tan=-19.0492, x=0.0524236, y=-0.998625): -19.081136687728\n    test 681 273 273.010051240667 Chi(tan=-19.0173, x=0.0525111, y=-0.99862): -19.081136687728\n    test 682 273 273.003351193295 Xi(tan=-19.0598, x=0.0523944, y=-0.998626): -19.081136687728\n\n    test 683 280 279.967145322218 Phi(tan=-5.69036, x=0.173648, y=-0.988121): -5.671281819618\n    test 684 280 280.000000000000 Beta(tan=-5.67128, x=0.173648, y=-0.984808): -5.671281819618\n    test 685 280 280.032958527773 Theta(tan=-5.65227, x=0.173648, y=-0.981506): -5.671281819618\n    test 686 280 280.016446759121 Mu(tan=-5.66178, x=0.173931, y=-0.984758), iteration=3: -5.671281819618\n    test 687 280 280.032886940584 Chi(tan=-5.65231, x=1.0, y=-5.65231), iteration=3: -5.671281819618\n    test 688 280 280.010965671278 Xi(tan=-5.66494, x=0.349234, y=-1.97839), iteration=3: -5.671281819618\n\n    test 689 280 279.967145322218 Phi(tan=-5.69036, x=0.173083, y=-0.984907): -5.671281819618\n    test 690 280 280.000000000000 Beta(tan=-5.67128, x=0.173648, y=-0.984808): -5.671281819618\n    test 691 280 280.032958527773 Theta(tan=-5.65227, x=0.174215, y=-0.984708): -5.671281819618\n    test 692 280 280.016446759121 Mu(tan=-5.66178, x=0.173931, y=-0.984758): -5.671281819618\n    test 693 280 280.032886940584 Chi(tan=-5.65231, x=0.174213, y=-0.984708): -5.671281819618\n    test 694 280 280.010965671278 Xi(tan=-5.66494, x=0.173837, y=-0.984775): -5.671281819618\n\n    test 695 287 286.946273607855 Phi(tan=-3.28186, x=0.292372, y=-0.959522): -3.270852618484\n    test 696 287 287.000000000000 Beta(tan=-3.27085, x=0.292372, y=-0.956305): -3.270852618484\n    test 697 287 287.053876189570 Theta(tan=-3.25989, x=0.292372, y=-0.953098): -3.270852618484\n    test 698 287 287.026891215965 Mu(tan=-3.26537, x=0.292821, y=-0.956167), iteration=3: -3.270852618484\n    test 699 287 287.053765856507 Chi(tan=-3.25991, x=1.0, y=-3.25991), iteration=3: -3.270852618484\n    test 700 287 287.017930102981 Xi(tan=-3.2672, x=0.58797, y=-1.92101), iteration=2: -3.270852618484\n\n    test 701 287 286.946273607855 Phi(tan=-3.28186, x=0.291475, y=-0.956578): -3.270852618484\n    test 702 287 287.000000000000 Beta(tan=-3.27085, x=0.292372, y=-0.956305): -3.270852618484\n    test 703 287 287.053876189570 Theta(tan=-3.25989, x=0.293271, y=-0.956029): -3.270852618484\n    test 704 287 287.026891215965 Mu(tan=-3.26537, x=0.292821, y=-0.956167): -3.270852618484\n    test 705 287 287.053765856507 Chi(tan=-3.25991, x=0.293269, y=-0.95603): -3.270852618484\n    test 706 287 287.017930102981 Xi(tan=-3.2672, x=0.292671, y=-0.956213): -3.270852618484\n\n    test 707 294 293.928580656019 Phi(tan=-2.25359, x=0.406737, y=-0.916619): -2.246036773904\n    test 708 294 294.000000000000 Beta(tan=-2.24604, x=0.406737, y=-0.913545): -2.246036773904\n    test 709 294 294.071580020440 Theta(tan=-2.23851, x=0.406737, y=-0.910483): -2.246036773904\n    test 710 294 294.035739737781 Mu(tan=-2.24227, x=0.407306, y=-0.913292), iteration=2: -2.246036773904\n    test 711 294 294.071446269026 Chi(tan=-2.23852, x=1.0, y=-2.23852), iteration=3: -2.246036773904\n    test 712 294 294.023831365709 Xi(tan=-2.24352, x=0.817889, y=-1.83495), iteration=3: -2.246036773904\n\n    test 713 294 293.928580656019 Phi(tan=-2.25359, x=0.405598, y=-0.914052): -2.246036773904\n    test 714 294 294.000000000000 Beta(tan=-2.24604, x=0.406737, y=-0.913545): -2.246036773904\n    test 715 294 294.071580020440 Theta(tan=-2.23851, x=0.407878, y=-0.913037): -2.246036773904\n    test 716 294 294.035739737781 Mu(tan=-2.24227, x=0.407306, y=-0.913292): -2.246036773904\n    test 717 294 294.071446269026 Chi(tan=-2.23852, x=0.407875, y=-0.913038): -2.246036773904\n    test 718 294 294.023831365709 Xi(tan=-2.24352, x=0.407117, y=-0.913376): -2.246036773904\n\n    test 719 301 300.915116613042 Phi(tan=-1.66988, x=0.515038, y=-0.860051): -1.664279482351\n    test 720 301 301.000000000000 Beta(tan=-1.66428, x=0.515038, y=-0.857167): -1.664279482351\n    test 721 301 301.085017327347 Theta(tan=-1.6587, x=0.515038, y=-0.854293): -1.664279482351\n    test 722 301 301.042466766526 Mu(tan=-1.66149, x=0.515673, y=-0.856785), iteration=2: -1.664279482351\n    test 723 301 301.084877498227 Chi(tan=-1.65871, x=1.0, y=-1.65871), iteration=3: -1.664279482351\n    test 724 301 301.028319023279 Xi(tan=-1.66242, x=1.03555, y=-1.72152), iteration=2: -1.664279482351\n\n    test 725 301 300.915116613042 Phi(tan=-1.66988, x=0.513768, y=-0.857929): -1.664279482351\n    test 726 301 301.000000000000 Beta(tan=-1.66428, x=0.515038, y=-0.857167): -1.664279482351\n    test 727 301 301.085017327347 Theta(tan=-1.6587, x=0.516309, y=-0.856402): -1.664279482351\n    test 728 301 301.042466766526 Mu(tan=-1.66149, x=0.515673, y=-0.856785): -1.664279482351\n    test 729 301 301.084877498227 Chi(tan=-1.65871, x=0.516307, y=-0.856403): -1.664279482351\n    test 730 301 301.028319023279 Xi(tan=-1.66242, x=0.515462, y=-0.856913): -1.664279482351\n\n    test 731 308 307.906683665119 Phi(tan=-1.28425, x=0.615661, y=-0.790662): -1.279941632193\n    test 732 308 308.000000000000 Beta(tan=-1.27994, x=0.615661, y=-0.788011): -1.279941632193\n    test 733 308 308.093392183249 Theta(tan=-1.27565, x=0.615661, y=-0.785369): -1.279941632193\n    test 734 308 308.046672369053 Mu(tan=-1.27779, x=0.616303, y=-0.787509), iteration=3: -1.279941632193\n    test 735 308 308.093262395276 Chi(tan=-1.27566, x=1.0, y=-1.27566), iteration=3: -1.279941632193\n    test 736 308 308.031126109597 Xi(tan=-1.27851, x=1.23771, y=-1.58243), iteration=2: -1.279941632193\n\n    test 737 308 307.906683665119 Phi(tan=-1.28425, x=0.614377, y=-0.789012): -1.279941632193\n    test 738 308 308.000000000000 Beta(tan=-1.27994, x=0.615661, y=-0.788011): -1.279941632193\n    test 739 308 308.093392183249 Theta(tan=-1.27565, x=0.616945, y=-0.787006): -1.279941632193\n    test 740 308 308.046672369053 Mu(tan=-1.27779, x=0.616303, y=-0.787509): -1.279941632193\n    test 741 308 308.093262395276 Chi(tan=-1.27566, x=0.616943, y=-0.787008): -1.279941632193\n    test 742 308 308.031126109597 Xi(tan=-1.27851, x=0.616089, y=-0.787676): -1.279941632193\n\n    test 743 315 314.903787849420 Phi(tan=-1.00336, x=0.707107, y=-0.709486): -1.000000000000\n    test 744 315 315.000000000000 Beta(tan=-1, x=0.707107, y=-0.707107): -1.000000000000\n    test 745 315 315.096212150580 Theta(tan=-0.996647, x=0.707107, y=-0.704736): -1.000000000000\n    test 746 315 315.048106063986 Mu(tan=-0.998322, x=0.7077, y=-0.706513), iteration=2: -1.000000000000\n    test 747 315 315.096104515452 Chi(tan=-0.996651, x=1.0, y=-0.996651), iteration=2: -1.000000000000\n    test 748 315 315.032085072505 Xi(tan=-0.998881, x=1.42136, y=-1.41977), iteration=3: -1.000000000000\n\n    test 749 315 314.903787849420 Phi(tan=-1.00336, x=0.705918, y=-0.708293): -1.000000000000\n    test 750 315 315.000000000000 Beta(tan=-1, x=0.707107, y=-0.707107): -1.000000000000\n    test 751 315 315.096212150580 Theta(tan=-0.996647, x=0.708293, y=-0.705918): -1.000000000000\n    test 752 315 315.048106063986 Mu(tan=-0.998322, x=0.7077, y=-0.706513): -1.000000000000\n    test 753 315 315.096104515452 Chi(tan=-0.996651, x=0.708292, y=-0.70592): -1.000000000000\n    test 754 315 315.032085072505 Xi(tan=-0.998881, x=0.707503, y=-0.706711): -1.000000000000\n\n    test 755 322 321.906607816751 Phi(tan=-0.783914, x=0.788011, y=-0.617733): -0.781285626507\n    test 756 322 322.000000000000 Beta(tan=-0.781286, x=0.788011, y=-0.615661): -0.781285626507\n    test 757 322 322.093316334881 Theta(tan=-0.778666, x=0.788011, y=-0.613597): -0.781285626507\n    test 758 322 322.046681850102 Mu(tan=-0.779974, x=0.788512, y=-0.615019), iteration=3: -0.781285626507\n    test 759 322 322.093237214147 Chi(tan=-0.778668, x=1.0, y=-0.778668), iteration=3: -0.781285626507\n    test 760 322 322.031137911470 Xi(tan=-0.780411, x=1.58377, y=-1.23599), iteration=2: -0.781285626507\n\n    test 761 322 321.906607816751 Phi(tan=-0.783914, x=0.787006, y=-0.616945): -0.781285626507\n    test 762 322 322.000000000000 Beta(tan=-0.781286, x=0.788011, y=-0.615661): -0.781285626507\n    test 763 322 322.093316334881 Theta(tan=-0.778666, x=0.789012, y=-0.614377): -0.781285626507\n    test 764 322 322.046681850102 Mu(tan=-0.779974, x=0.788512, y=-0.615019): -0.781285626507\n    test 765 322 322.093237214147 Chi(tan=-0.778668, x=0.789012, y=-0.614378): -0.781285626507\n    test 766 322 322.031137911470 Xi(tan=-0.780411, x=0.788345, y=-0.615233): -0.781285626507\n\n    test 767 329 328.914982672653 Phi(tan=-0.602882, x=0.857167, y=-0.516771): -0.600860619028\n    test 768 329 329.000000000000 Beta(tan=-0.600861, x=0.857167, y=-0.515038): -0.600860619028\n    test 769 329 329.084883386958 Theta(tan=-0.598846, x=0.857167, y=-0.513311): -0.600860619028\n    test 770 329 329.042483509069 Mu(tan=-0.599852, x=0.857549, y=-0.514402), iteration=3: -0.600860619028\n    test 771 329 329.084833030986 Chi(tan=-0.598847, x=1.0, y=-0.598847), iteration=3: -0.600860619028\n    test 772 329 329.028339864157 Xi(tan=-0.600188, x=1.72254, y=-1.03385), iteration=2: -0.600860619028\n\n    test 773 329 328.914982672653 Phi(tan=-0.602882, x=0.856402, y=-0.516309): -0.600860619028\n    test 774 329 329.000000000000 Beta(tan=-0.600861, x=0.857167, y=-0.515038): -0.600860619028\n    test 775 329 329.084883386958 Theta(tan=-0.598846, x=0.857929, y=-0.513768): -0.600860619028\n    test 776 329 329.042483509069 Mu(tan=-0.599852, x=0.857549, y=-0.514402): -0.600860619028\n    test 777 329 329.084833030986 Chi(tan=-0.598847, x=0.857929, y=-0.513768): -0.600860619028\n    test 778 329 329.028339864157 Xi(tan=-0.600188, x=0.857422, y=-0.514614): -0.600860619028\n\n    test 779 336 335.928419979560 Phi(tan=-0.446726, x=0.913545, y=-0.408105): -0.445228685309\n    test 780 336 336.000000000000 Beta(tan=-0.445229, x=0.913545, y=-0.406737): -0.445228685309\n    test 781 336 336.071419343981 Theta(tan=-0.443736, x=0.913545, y=-0.405373): -0.445228685309\n    test 782 336 336.035759822314 Mu(tan=-0.444481, x=0.913799, y=-0.406166), iteration=3: -0.445228685309\n    test 783 336 336.071392925660 Chi(tan=-0.443736, x=1.0, y=-0.443736), iteration=2: -0.445228685309\n    test 784 336 336.023856366648 Xi(tan=-0.44473, x=1.83563, y=-0.816362), iteration=3: -0.445228685309\n\n    test 785 336 335.928419979560 Phi(tan=-0.446726, x=0.913037, y=-0.407878): -0.445228685309\n    test 786 336 336.000000000000 Beta(tan=-0.445229, x=0.913545, y=-0.406737): -0.445228685309\n    test 787 336 336.071419343981 Theta(tan=-0.443736, x=0.914052, y=-0.405598): -0.445228685309\n    test 788 336 336.035759822314 Mu(tan=-0.444481, x=0.913799, y=-0.406166): -0.445228685309\n    test 789 336 336.071392925660 Chi(tan=-0.443736, x=0.914052, y=-0.405598): -0.445228685309\n    test 790 336 336.023856366648 Xi(tan=-0.44473, x=0.913715, y=-0.406356): -0.445228685309\n\n    test 791 343 342.946123810430 Phi(tan=-0.306759, x=0.956305, y=-0.293355): -0.305730681459\n    test 792 343 343.000000000000 Beta(tan=-0.305731, x=0.956305, y=-0.292372): -0.305730681459\n    test 793 343 343.053726392145 Theta(tan=-0.304706, x=0.956305, y=-0.291391): -0.305730681459\n    test 794 343 343.026909940603 Mu(tan=-0.305217, x=0.956442, y=-0.291923), iteration=3: -0.305730681459\n    test 795 343 343.053716124954 Chi(tan=-0.304706, x=1.0, y=-0.304706), iteration=3: -0.305730681459\n    test 796 343 343.017953411145 Xi(tan=-0.305388, x=1.92138, y=-0.586767), iteration=2: -0.305730681459\n\n    test 797 343 342.946123810430 Phi(tan=-0.306759, x=0.956029, y=-0.293271): -0.305730681459\n    test 798 343 343.000000000000 Beta(tan=-0.305731, x=0.956305, y=-0.292372): -0.305730681459\n    test 799 343 343.053726392145 Theta(tan=-0.304706, x=0.956578, y=-0.291475): -0.305730681459\n    test 800 343 343.026909940603 Mu(tan=-0.305217, x=0.956442, y=-0.291923): -0.305730681459\n    test 801 343 343.053716124955 Chi(tan=-0.304706, x=0.956578, y=-0.291475): -0.305730681459\n    test 802 343 343.017953411145 Xi(tan=-0.305388, x=0.956396, y=-0.292072): -0.305730681459\n\n    test 803 350 349.967041472227 Phi(tan=-0.17692, x=0.984808, y=-0.174232): -0.176326980708\n    test 804 350 350.000000000000 Beta(tan=-0.176327, x=0.984808, y=-0.173648): -0.176326980708\n    test 805 350 350.032854677782 Theta(tan=-0.175736, x=0.984808, y=-0.173066): -0.176326980708\n    test 806 350 350.016459740333 Mu(tan=-0.176031, x=0.984858, y=-0.173365), iteration=3: -0.176326980708\n    test 807 350 350.032852463246 Chi(tan=-0.175736, x=1.0, y=-0.175736), iteration=2: -0.176326980708\n    test 808 350 350.010981830106 Xi(tan=-0.176129, x=1.97853, y=-0.348476), iteration=3: -0.176326980708\n\n    test 809 350 349.967041472227 Phi(tan=-0.17692, x=0.984708, y=-0.174215): -0.176326980708\n    test 810 350 350.000000000000 Beta(tan=-0.176327, x=0.984808, y=-0.173648): -0.176326980708\n    test 811 350 350.032854677782 Theta(tan=-0.175736, x=0.984907, y=-0.173083): -0.176326980708\n    test 812 350 350.016459740333 Mu(tan=-0.176031, x=0.984858, y=-0.173365): -0.176326980708\n    test 813 350 350.032852463246 Chi(tan=-0.175736, x=0.984907, y=-0.173083): -0.176326980708\n    test 814 350 350.010981830106 Xi(tan=-0.176129, x=0.984841, y=-0.173459): -0.176326980708\n\n    test 815 357 356.989926259040 Phi(tan=-0.0525841, x=0.99863, y=-0.052512): -0.052407779283\n    test 816 357 357.000000000000 Beta(tan=-0.0524078, x=0.99863, y=-0.052336): -0.052407779283\n    test 817 357 357.010040150331 Theta(tan=-0.0522321, x=0.99863, y=-0.0521605): -0.052407779283\n    test 818 357 357.005030554687 Mu(tan=-0.0523197, x=0.998634, y=-0.0522483), iteration=2: -0.052407779283\n    test 819 357 357.010040088861 Chi(tan=-0.0522321, x=1.0, y=-0.0522321), iteration=2: -0.052407779283\n    test 820 357 357.003356419920 Xi(tan=-0.052349, x=2.00623, y=-0.105024), iteration=3: -0.052407779283\n\n    test 821 357 356.989926259040 Phi(tan=-0.0525841, x=0.99862, y=-0.0525115): -0.052407779283\n    test 822 357 357.000000000000 Beta(tan=-0.0524078, x=0.99863, y=-0.052336): -0.052407779283\n    test 823 357 357.010040150331 Theta(tan=-0.0522321, x=0.998639, y=-0.052161): -0.052407779283\n    test 824 357 357.005030554687 Mu(tan=-0.0523197, x=0.998634, y=-0.0522483): -0.052407779283\n    test 825 357 357.010040088861 Chi(tan=-0.0522321, x=0.998639, y=-0.052161): -0.052407779283\n    test 826 357 357.003356419920 Xi(tan=-0.052349, x=0.998633, y=-0.0522775): -0.052407779283\n\n    test 827  0 0.000000000000 Phi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 828  0 0.000000000000 Beta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 829  0 0.000000000000 Theta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 830  0 0.000000000000 Mu(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 831  0 0.000000000000 Chi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 832  0 0.000000000000 Xi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n\n    test 833  0 0.000000000000 Phi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 834  0 0.000000000000 Beta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 835  0 0.000000000000 Theta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 836  0 0.000000000000 Mu(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 837  0 0.000000000000 Chi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 838  0 0.000000000000 Xi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n\n    test 839  7 7.046702961824 Phi(tan=0.123612, x=1.0, y=0.123612): 0.122784560903\n    test 840  7 7.023313050940 Beta(tan=0.123198, x=1.0, y=0.123198): 0.122784560903\n    test 841  7 6.999999220873 Theta(tan=0.122785, x=1.0, y=0.122785): 0.122784560903\n    test 842  7 7.011632399558 Mu(tan=0.122991, x=0.992521, y=0.122071), iteration=3: 0.122784560903\n    test 843  7 7.000000000000 Chi(tan=0.122785, x=0.992546, y=0.121869): 0.122784560903\n    test 844  7 7.015519711118 Xi(tan=0.12306, x=1.99394, y=0.245373), iteration=3: 0.122784560903\n\n    test 845  7 7.046702961824 Phi(tan=0.123612, x=0.992446, y=0.122678): 0.122784560903\n    test 846  7 7.023313050940 Beta(tan=0.123198, x=0.992496, y=0.122273): 0.122784560903\n    test 847  7 6.999999220873 Theta(tan=0.122785, x=0.992546, y=0.121869): 0.122784560903\n    test 848  7 7.011632399558 Mu(tan=0.122991, x=0.992521, y=0.122071): 0.122784560903\n    test 849  7 7.000000000000 Chi(tan=0.122785, x=0.992546, y=0.121869): 0.122784560903\n    test 850  7 7.015519711118 Xi(tan=0.12306, x=0.992513, y=0.122138): 0.122784560903\n\n    test 851 14 14.090600177106 Phi(tan=0.251008, x=1.0, y=0.251008): 0.249328002843\n    test 852 14 14.045229997878 Beta(tan=0.250167, x=1.0, y=0.250167): 0.249328002843\n    test 853 14 13.999994044068 Theta(tan=0.249328, x=1.0, y=0.249328): 0.249328002843\n    test 854 14 14.022570138869 Mu(tan=0.249746, x=0.9702, y=0.242304), iteration=2: 0.249328002843\n    test 855 14 14.000000000000 Chi(tan=0.249328, x=0.970296, y=0.241922): 0.249328002843\n    test 856 14 14.030111806086 Xi(tan=0.249886, x=1.94905, y=0.487041), iteration=3: 0.249328002843\n\n    test 857 14 14.090600177106 Phi(tan=0.251008, x=0.969912, y=0.243456): 0.249328002843\n    test 858 14 14.045229997878 Beta(tan=0.250167, x=0.970104, y=0.242688): 0.249328002843\n    test 859 14 13.999994044068 Theta(tan=0.249328, x=0.970296, y=0.241922): 0.249328002843\n    test 860 14 14.022570138869 Mu(tan=0.249746, x=0.9702, y=0.242304): 0.249328002843\n    test 861 14 14.000000000000 Chi(tan=0.249328, x=0.970296, y=0.241922): 0.249328002843\n    test 862 14 14.030111806086 Xi(tan=0.249886, x=0.970168, y=0.242432): 0.249328002843\n\n    test 863 21 21.129059974007 Phi(tan=0.386451, x=1.0, y=0.386451): 0.383864035035\n    test 864 21 21.064440302978 Beta(tan=0.385155, x=1.0, y=0.385155): 0.383864035035\n    test 865 21 20.999981382849 Theta(tan=0.383864, x=1.0, y=0.383864): 0.383864035035\n    test 866 21 21.032160674247 Mu(tan=0.384508, x=0.933379, y=0.358892), iteration=3: 0.383864035035\n    test 867 21 21.000000000000 Chi(tan=0.383864, x=0.93358, y=0.358368): 0.383864035035\n    test 868 21 21.042905101186 Xi(tan=0.384723, x=1.875, y=0.721358), iteration=2: 0.383864035035\n\n    test 869 21 21.129059974007 Phi(tan=0.386451, x=0.932771, y=0.36047): 0.383864035035\n    test 870 21 21.064440302978 Beta(tan=0.385155, x=0.933177, y=0.359418): 0.383864035035\n    test 871 21 20.999981382849 Theta(tan=0.383864, x=0.933581, y=0.358368): 0.383864035035\n    test 872 21 21.032160674247 Mu(tan=0.384508, x=0.933379, y=0.358892): 0.383864035035\n    test 873 21 21.000000000000 Chi(tan=0.383864, x=0.93358, y=0.358368): 0.383864035035\n    test 874 21 21.042905101186 Xi(tan=0.384723, x=0.933312, y=0.359067): 0.383864035035\n\n    test 875 28 28.159786713307 Phi(tan=0.535292, x=1.0, y=0.535292): 0.531709431661\n    test 876 28 28.079798849800 Beta(tan=0.533497, x=1.0, y=0.533497): 0.531709431661\n    test 877 28 27.999960443908 Theta(tan=0.531709, x=1.0, y=0.531709): 0.531709431661\n    test 878 28 28.039832991509 Mu(tan=0.532602, x=0.882621, y=0.470085), iteration=3: 0.531709431661\n    test 879 28 28.000000000000 Chi(tan=0.531709, x=0.882948, y=0.469472): 0.531709431661\n    test 880 28 28.053137609764 Xi(tan=0.5329, x=1.77295, y=0.944804), iteration=2: 0.531709431661\n\n    test 881 28 28.159786713307 Phi(tan=0.535292, x=0.881635, y=0.471932): 0.531709431661\n    test 882 28 28.079798849800 Beta(tan=0.533497, x=0.882293, y=0.470701): 0.531709431661\n    test 883 28 27.999960443908 Theta(tan=0.531709, x=0.882948, y=0.469471): 0.531709431661\n    test 884 28 28.039832991509 Mu(tan=0.532602, x=0.882621, y=0.470085): 0.531709431661\n    test 885 28 28.000000000000 Chi(tan=0.531709, x=0.882948, y=0.469472): 0.531709431661\n    test 886 28 28.053137609764 Xi(tan=0.5329, x=0.882512, y=0.47029): 0.531709431661\n\n    test 887 35 35.180959671970 Phi(tan=0.704925, x=1.0, y=0.704925): 0.700207538210\n    test 888 35 35.090394869583 Beta(tan=0.702561, x=1.0, y=0.702561): 0.700207538210\n    test 889 35 34.999933133637 Theta(tan=0.700206, x=1.0, y=0.700206): 0.700207538210\n    test 890 35 35.045131821097 Mu(tan=0.701382, x=0.8187, y=0.574222), iteration=3: 0.700207538210\n    test 891 35 35.000000000000 Chi(tan=0.700208, x=0.819152, y=0.573576): 0.700207538210\n    test 892 35 35.060202265669 Xi(tan=0.701775, x=1.64445, y=1.15403), iteration=2: 0.700207538210\n\n    test 893 35 35.180959671970 Phi(tan=0.704925, x=0.817336, y=0.576161): 0.700207538210\n    test 894 35 35.090394869583 Beta(tan=0.702561, x=0.818246, y=0.574868): 0.700207538210\n    test 895 35 34.999933133637 Theta(tan=0.700206, x=0.819153, y=0.573575): 0.700207538210\n    test 896 35 35.045131821097 Mu(tan=0.701382, x=0.8187, y=0.574222): 0.700207538210\n    test 897 35 35.000000000000 Chi(tan=0.700208, x=0.819152, y=0.573576): 0.700207538210\n    test 898 35 35.060202265669 Xi(tan=0.701775, x=0.818549, y=0.574437): 0.700207538210\n\n    test 899 42 42.191340028820 Phi(tan=0.906469, x=1.0, y=0.906469): 0.900404044298\n    test 900 42 42.095605637640 Beta(tan=0.90343, x=1.0, y=0.90343): 0.900404044298\n    test 901 42 41.999903781382 Theta(tan=0.900401, x=1.0, y=0.900401): 0.900404044298\n    test 902 42 42.047744555205 Mu(tan=0.901914, x=0.742587, y=0.66975), iteration=2: 0.900404044298\n    test 903 42 42.000000000000 Chi(tan=0.900404, x=0.743145, y=0.669131): 0.900404044298\n    test 904 42 42.063682784184 Xi(tan=0.902419, x=1.49147, y=1.34593), iteration=2: 0.900404044298\n\n    test 905 42 42.191340028820 Phi(tan=0.906469, x=0.740906, y=0.671609): 0.900404044298\n    test 906 42 42.095605637640 Beta(tan=0.90343, x=0.742027, y=0.67037): 0.900404044298\n    test 907 42 41.999903781382 Theta(tan=0.900401, x=0.743146, y=0.669129): 0.900404044298\n    test 908 42 42.047744555205 Mu(tan=0.901914, x=0.742587, y=0.66975): 0.900404044298\n    test 909 42 42.000000000000 Chi(tan=0.900404, x=0.743145, y=0.669131): 0.900404044298\n    test 910 42 42.063682784184 Xi(tan=0.902419, x=0.742401, y=0.669956): 0.900404044298\n\n    test 911 49 49.190339913877 Phi(tan=1.15812, x=1.0, y=1.15812): 1.150368407221\n    test 912 49 49.095131857689 Beta(tan=1.15423, x=1.0, y=1.15423): 1.150368407221\n    test 913 49 48.999878238776 Theta(tan=1.15036, x=1.0, y=1.15036): 1.150368407221\n    test 914 49 49.047519300953 Mu(tan=1.1523, x=0.655433, y=0.755253), iteration=2: 1.150368407221\n    test 915 49 49.000000000000 Chi(tan=1.15037, x=0.656059, y=0.75471): 1.150368407221\n    test 916 49 49.063377582472 Xi(tan=1.15294, x=1.31633, y=1.51765), iteration=3: 1.150368407221\n\n    test 917 49 49.190339913877 Phi(tan=1.15812, x=0.653548, y=0.756885): 1.150368407221\n    test 918 49 49.095131857689 Beta(tan=1.15423, x=0.654805, y=0.755798): 1.150368407221\n    test 919 49 48.999878238776 Theta(tan=1.15036, x=0.656061, y=0.754708): 1.150368407221\n    test 920 49 49.047519300953 Mu(tan=1.1523, x=0.655433, y=0.755253): 1.150368407221\n    test 921 49 49.000000000000 Chi(tan=1.15037, x=0.656059, y=0.75471): 1.150368407221\n    test 922 49 49.063377582472 Xi(tan=1.15294, x=0.655224, y=0.755435): 1.150368407221\n\n    test 923 56 56.178050530882 Phi(tan=1.49254, x=1.0, y=1.49254): 1.482560968513\n    test 924 56 56.089013022552 Beta(tan=1.48754, x=1.0, y=1.48754): 1.482560968513\n    test 925 56 55.999862564323 Theta(tan=1.48255, x=1.0, y=1.48255): 1.482560968513\n    test 926 56 56.044473121630 Mu(tan=1.48505, x=0.558549, y=0.829471), iteration=2: 1.482560968513\n    test 927 56 56.000000000000 Chi(tan=1.48256, x=0.559193, y=0.829038): 1.482560968513\n    test 928 56 56.059310533694 Xi(tan=1.48588, x=1.12168, y=1.66668), iteration=2: 1.482560968513\n\n    test 929 56 56.178050530882 Phi(tan=1.49254, x=0.556614, y=0.830771): 1.482560968513\n    test 930 56 56.089013022552 Beta(tan=1.48754, x=0.557904, y=0.829905): 1.482560968513\n    test 931 56 55.999862564323 Theta(tan=1.48255, x=0.559195, y=0.829036): 1.482560968513\n    test 932 56 56.044473121630 Mu(tan=1.48505, x=0.558549, y=0.829471): 1.482560968513\n    test 933 56 56.000000000000 Chi(tan=1.48256, x=0.559193, y=0.829038): 1.482560968513\n    test 934 56 56.059310533694 Xi(tan=1.48588, x=0.558334, y=0.829616): 1.482560968513\n\n    test 935 63 63.155229303561 Phi(tan=1.97583, x=1.0, y=1.97583): 1.962610505505\n    test 936 63 63.077622413475 Beta(tan=1.9692, x=1.0, y=1.9692): 1.962610505505\n    test 937 63 62.999861601059 Theta(tan=1.9626, x=1.0, y=1.9626): 1.962610505505\n    test 938 63 63.038790161591 Mu(tan=1.9659, x=0.453387, y=0.891314), iteration=2: 1.962610505505\n    test 939 63 63.000000000000 Chi(tan=1.96261, x=0.45399, y=0.891007): 1.962610505505\n    test 940 63 63.051728205304 Xi(tan=1.967, x=0.910441, y=1.79084), iteration=3: 1.962610505505\n\n    test 941 63 63.155229303561 Phi(tan=1.97583, x=0.451575, y=0.892233): 1.962610505505\n    test 942 63 63.077622413475 Beta(tan=1.9692, x=0.452783, y=0.891621): 1.962610505505\n    test 943 63 62.999861601059 Theta(tan=1.9626, x=0.453993, y=0.891005): 1.962610505505\n    test 944 63 63.038790161591 Mu(tan=1.9659, x=0.453387, y=0.891314): 1.962610505505\n    test 945 63 63.000000000000 Chi(tan=1.96261, x=0.45399, y=0.891007): 1.962610505505\n    test 946 63 63.051728205304 Xi(tan=1.967, x=0.453186, y=0.891416): 1.962610505505\n\n    test 947 70 70.123248546098 Phi(tan=2.76598, x=1.0, y=2.76598): 2.747477419455\n    test 948 70 70.061642655565 Beta(tan=2.7567, x=1.0, y=2.7567): 2.747477419455\n    test 949 70 69.999877780085 Theta(tan=2.74746, x=1.0, y=2.74746): 2.747477419455\n    test 950 70 70.030809967607 Mu(tan=2.75208, x=0.341515, y=0.939876), iteration=3: 2.747477419455\n    test 951 70 70.000000000000 Chi(tan=2.74748, x=0.34202, y=0.939693): 2.747477419455\n    test 952 70 70.041084059681 Xi(tan=2.75362, x=0.685758, y=1.88832), iteration=3: 2.747477419455\n\n    test 953 70 70.123248546098 Phi(tan=2.76598, x=0.339998, y=0.940426): 2.747477419455\n    test 954 70 70.061642655565 Beta(tan=2.7567, x=0.341009, y=0.94006): 2.747477419455\n    test 955 70 69.999877780085 Theta(tan=2.74746, x=0.342022, y=0.939692): 2.747477419455\n    test 956 70 70.030809967607 Mu(tan=2.75208, x=0.341515, y=0.939876): 2.747477419455\n    test 957 70 70.000000000000 Chi(tan=2.74748, x=0.34202, y=0.939693): 2.747477419455\n    test 958 70 70.041084059681 Xi(tan=2.75362, x=0.341346, y=0.939938): 2.747477419455\n\n    test 959 77 77.084010155505 Phi(tan=4.36064, x=1.0, y=4.36064): 4.331475874284\n    test 960 77 77.042023802893 Beta(tan=4.34602, x=1.0, y=4.34602): 4.331475874284\n    test 961 77 76.999910430182 Theta(tan=4.33144, x=1.0, y=4.33144): 4.331475874284\n    test 962 77 77.021006871193 Mu(tan=4.33873, x=0.224594, y=0.974452), iteration=2: 4.331475874284\n    test 963 77 77.000000000000 Chi(tan=4.33148, x=0.224951, y=0.97437): 4.331475874284\n    test 964 77 77.028010821264 Xi(tan=4.34116, x=0.450965, y=1.95771), iteration=2: 4.331475874284\n\n    test 965 77 77.084010155505 Phi(tan=4.36064, x=0.223522, y=0.974699): 4.331475874284\n    test 966 77 77.042023802893 Beta(tan=4.34602, x=0.224236, y=0.974535): 4.331475874284\n    test 967 77 76.999910430182 Theta(tan=4.33144, x=0.224953, y=0.97437): 4.331475874284\n    test 968 77 77.021006871193 Mu(tan=4.33873, x=0.224594, y=0.974452): 4.331475874284\n    test 969 77 77.000000000000 Chi(tan=4.33148, x=0.224951, y=0.97437): 4.331475874284\n    test 970 77 77.028010821264 Xi(tan=4.34116, x=0.224475, y=0.97448): 4.331475874284\n\n    test 971 84 84.039832232299 Phi(tan=9.57842, x=1.0, y=9.57842): 9.514364454223\n    test 972 84 84.019926748698 Beta(tan=9.5463, x=1.0, y=9.5463): 9.514364454223\n    test 973 84 83.999955757312 Theta(tan=9.51429, x=1.0, y=9.51429): 9.514364454223\n    test 974 84 84.009961757905 Mu(tan=9.5303, x=0.104356, y=0.99454), iteration=3: 9.514364454223\n    test 975 84 84.000000000000 Chi(tan=9.51436, x=0.104528, y=0.994522): 9.514364454223\n    test 976 84 84.013282808640 Xi(tan=9.53563, x=0.209532, y=1.99802), iteration=2: 9.514364454223\n\n    test 977 84 84.039832232299 Phi(tan=9.57842, x=0.103837, y=0.994594): 9.514364454223\n    test 978 84 84.019926748698 Beta(tan=9.5463, x=0.104183, y=0.994558): 9.514364454223\n    test 979 84 83.999955757312 Theta(tan=9.51429, x=0.104529, y=0.994522): 9.514364454223\n    test 980 84 84.009961757905 Mu(tan=9.5303, x=0.104356, y=0.99454): 9.514364454223\n    test 981 84 84.000000000000 Chi(tan=9.51436, x=0.104528, y=0.994522): 9.514364454223\n    test 982 84 84.013282808640 Xi(tan=9.53563, x=0.104298, y=0.994546): 9.514364454223\n\n    test 983 91 90.993314421151 Phi(tan=-57.6756, x=-1, y=57.6756): -57.289961630759\n    test 984 91 90.996655347181 Beta(tan=-57.4823, x=-1, y=57.4823): -57.289961630759\n    test 985 91 91.000007505573 Theta(tan=-57.2895, x=-1, y=57.2895): -57.289961630759\n    test 986 91 90.998327910374 Mu(tan=-57.3859, x=-0.0174232, y=0.999848), iteration=3: -57.289961630759\n    test 987 91 91.000000000000 Chi(tan=-57.29, x=-0.0174524, y=0.999848): -57.289961630759\n    test 988 91 90.997770483630 Xi(tan=-57.418, x=-0.0349834, y=2.00868), iteration=2: -57.289961630759\n\n    test 989 91 90.993314421151 Phi(tan=-57.6756, x=-0.0173357, y=0.99985): -57.289961630760  FAILED, KNOWN (8.1857e-15), expected -57.289961630759\n    test 990 91 90.996655347181 Beta(tan=-57.4823, x=-0.017394, y=0.999849): -57.289961630760  FAILED, KNOWN (3.72077e-15), expected -57.289961630759\n    test 991 91 91.000007505573 Theta(tan=-57.2895, x=-0.0174525, y=0.999848): -57.289961630759\n    test 992 91 90.998327910374 Mu(tan=-57.3859, x=-0.0174232, y=0.999848): -57.289961630759\n    test 993 91 91.000000000000 Chi(tan=-57.29, x=-0.0174524, y=0.999848): -57.289961630759\n    test 994 91 90.997770483630 Xi(tan=-57.418, x=-0.0174135, y=0.999848): -57.289961630760  FAILED, KNOWN (3.8448e-15), expected -57.289961630759\n\n    test 995 98 97.947189249597 Phi(tan=-7.16327, x=-1, y=7.16327): -7.115369722384\n    test 996 98 97.973581022657 Beta(tan=-7.13925, x=-1, y=7.13925): -7.115369722384\n    test 997 98 98.000058157653 Theta(tan=-7.11532, x=-1, y=7.11532): -7.115369722384\n    test 998 98 97.986792871261 Mu(tan=-7.12729, x=-0.138945, y=0.9903), iteration=2: -7.115369722384\n    test 999 98 98.000000000000 Chi(tan=-7.11537, x=-0.139173, y=0.990268): -7.115369722384\n    test 1000 98 97.982389787937 Xi(tan=-7.13127, x=-0.278984, y=1.98951), iteration=3: -7.115369722384\n\n    test 1001 98 97.947189249597 Phi(tan=-7.16327, x=-0.13826, y=0.990396): -7.115369722384\n    test 1002 98 97.973581022657 Beta(tan=-7.13925, x=-0.138716, y=0.990332): -7.115369722384\n    test 1003 98 98.000058157653 Theta(tan=-7.11532, x=-0.139174, y=0.990268): -7.115369722384\n    test 1004 98 97.986792871261 Mu(tan=-7.12729, x=-0.138945, y=0.9903): -7.115369722384\n    test 1005 98 98.000000000000 Chi(tan=-7.11537, x=-0.139173, y=0.990268): -7.115369722384\n    test 1006 98 97.982389787937 Xi(tan=-7.13127, x=-0.138869, y=0.990311): -7.115369722384\n\n    test 1007 105 104.904166968877 Phi(tan=-3.75718, x=-1, y=3.75718): -3.732050807569\n    test 1008 105 104.952063867788 Beta(tan=-3.74458, x=-1, y=3.74458): -3.732050807569\n    test 1009 105 105.000100412186 Theta(tan=-3.73202, x=-1, y=3.73202): -3.732050807569\n    test 1010 105 104.976038435868 Mu(tan=-3.7383, x=-0.258415, y=0.966034), iteration=3: -3.732050807569\n    test 1011 105 105.000000000000 Chi(tan=-3.73205, x=-0.258819, y=0.965926): -3.732050807569\n    test 1012 105 104.968049034476 Xi(tan=-3.74039, x=-0.51888, y=1.94082), iteration=3: -3.732050807569\n\n    test 1013 105 104.904166968877 Phi(tan=-3.75718, x=-0.257203, y=0.966357): -3.732050807569\n    test 1014 105 104.952063867788 Beta(tan=-3.74458, x=-0.258011, y=0.966142): -3.732050807569\n    test 1015 105 105.000100412186 Theta(tan=-3.73202, x=-0.258821, y=0.965925): -3.732050807569\n    test 1016 105 104.976038435868 Mu(tan=-3.7383, x=-0.258415, y=0.966034): -3.732050807569\n    test 1017 105 105.000000000000 Chi(tan=-3.73205, x=-0.258819, y=0.965926): -3.732050807569\n    test 1018 105 104.968049034476 Xi(tan=-3.74039, x=-0.25828, y=0.96607): -3.732050807569\n\n    test 1019 112 111.866781479115 Phi(tan=-2.49175, x=-1, y=2.49175): -2.475086853416\n    test 1020 112 111.933374328805 Beta(tan=-2.4834, x=-1, y=2.4834): -2.475086853416\n    test 1021 112 112.000128613678 Theta(tan=-2.47507, x=-1, y=2.47507): -2.475086853416\n    test 1022 112 111.966700957925 Mu(tan=-2.47923, x=-0.374068, y=0.927401), iteration=2: -2.475086853416\n    test 1023 112 112.000000000000 Chi(tan=-2.47509, x=-0.374607, y=0.927184): -2.475086853416\n    test 1024 112 111.955596207977 Xi(tan=-2.48062, x=-0.751133, y=1.86328), iteration=3: -2.475086853416\n\n    test 1025 112 111.866781479115 Phi(tan=-2.49175, x=-0.37245, y=0.928052): -2.475086853416\n    test 1026 112 111.933374328805 Beta(tan=-2.4834, x=-0.373528, y=0.927619): -2.475086853416\n    test 1027 112 112.000128613678 Theta(tan=-2.47507, x=-0.374609, y=0.927183): -2.475086853416\n    test 1028 112 111.966700957925 Mu(tan=-2.47923, x=-0.374068, y=0.927401): -2.475086853416\n    test 1029 112 112.000000000000 Chi(tan=-2.47509, x=-0.374607, y=0.927184): -2.475086853416\n    test 1030 112 111.955596207976 Xi(tan=-2.48062, x=-0.373888, y=0.927474): -2.475086853416\n\n    test 1031 119 118.837244909169 Phi(tan=-1.8162, x=-1, y=1.8162): -1.804047755271\n    test 1032 119 118.918619560007 Beta(tan=-1.81011, x=-1, y=1.81011): -1.804047755271\n    test 1033 119 119.000139821268 Theta(tan=-1.80404, x=-1, y=1.80404): -1.804047755271\n    test 1034 119 118.959334139853 Mu(tan=-1.80707, x=-0.484189, y=0.874964), iteration=2: -1.804047755271\n    test 1035 119 119.000000000000 Chi(tan=-1.80405, x=-0.48481, y=0.87462): -1.804047755271\n    test 1036 119 118.945769514985 Xi(tan=-1.80808, x=-0.972309, y=1.75801), iteration=3: -1.804047755271\n\n    test 1037 119 118.837244909169 Phi(tan=-1.8162, x=-0.482323, y=0.875993): -1.804047755271\n    test 1038 119 118.918619560007 Beta(tan=-1.81011, x=-0.483567, y=0.875307): -1.804047755271\n    test 1039 119 119.000139821268 Theta(tan=-1.80404, x=-0.484812, y=0.874619): -1.804047755271\n    test 1040 119 118.959334139853 Mu(tan=-1.80707, x=-0.484189, y=0.874964): -1.804047755271\n    test 1041 119 119.000000000000 Chi(tan=-1.80405, x=-0.48481, y=0.87462): -1.804047755271\n    test 1042 119 118.945769514985 Xi(tan=-1.80808, x=-0.483982, y=0.875078): -1.804047755271\n\n    test 1043 126 125.817318309875 Phi(tan=-1.38565, x=-1, y=1.38565): -1.376381920471\n    test 1044 126 125.908678399154 Beta(tan=-1.38101, x=-1, y=1.38101): -1.376381920471\n    test 1045 126 126.000134283091 Theta(tan=-1.37638, x=-1, y=1.37638): -1.376381920471\n    test 1046 126 125.954376379912 Mu(tan=-1.37869, x=-0.587141, y=0.809485), iteration=3: -1.376381920471\n    test 1047 126 126.000000000000 Chi(tan=-1.37638, x=-0.587785, y=0.809017): -1.376381920471\n    test 1048 126 125.939153905889 Xi(tan=-1.37946, x=-1.17912, y=1.62655), iteration=2: -1.376381920471\n\n    test 1049 126 125.817318309875 Phi(tan=-1.38565, x=-0.585203, y=0.810887): -1.376381920471\n    test 1050 126 125.908678399154 Beta(tan=-1.38101, x=-0.586495, y=0.809953): -1.376381920471\n    test 1051 126 126.000134283091 Theta(tan=-1.37638, x=-0.587787, y=0.809016): -1.376381920471\n    test 1052 126 125.954376379912 Mu(tan=-1.37869, x=-0.587141, y=0.809485): -1.376381920471\n    test 1053 126 126.000000000000 Chi(tan=-1.37638, x=-0.587785, y=0.809017): -1.376381920471\n    test 1054 126 125.939153905889 Xi(tan=-1.37946, x=-0.586926, y=0.809641): -1.376381920471\n\n    test 1055 133 132.808205632210 Phi(tan=-1.07959, x=-1, y=1.07959): -1.072368710025\n    test 1056 133 132.904148646694 Beta(tan=-1.07597, x=-1, y=1.07597): -1.072368710025\n    test 1057 133 133.000115216221 Theta(tan=-1.07236, x=-1, y=1.07236): -1.072368710025\n    test 1058 133 132.952124558388 Mu(tan=-1.07417, x=-0.681387, y=0.731923), iteration=2: -1.072368710025\n    test 1059 133 133.000000000000 Chi(tan=-1.07237, x=-0.681998, y=0.731354): -1.072368710025\n    test 1060 133 132.936146061572 Xi(tan=-1.07477, x=-1.36848, y=1.4708), iteration=3: -1.072368710025\n\n    test 1061 133 132.808205632210 Phi(tan=-1.07959, x=-0.679546, y=0.733633): -1.072368710025\n    test 1062 133 132.904148646694 Beta(tan=-1.07597, x=-0.680774, y=0.732494): -1.072368710025\n    test 1063 133 133.000115216221 Theta(tan=-1.07236, x=-0.682, y=0.731352): -1.072368710025\n    test 1064 133 132.952124558388 Mu(tan=-1.07417, x=-0.681387, y=0.731923): -1.072368710025\n    test 1065 133 133.000000000000 Chi(tan=-1.07237, x=-0.681998, y=0.731354): -1.072368710025\n    test 1066 133 132.936146061572 Xi(tan=-1.07477, x=-0.681183, y=0.732113): -1.072368710025\n\n    test 1067 140 139.810477575926 Phi(tan=-0.844752, x=-1, y=0.844752): -0.839099631177\n    test 1068 140 139.905309888599 Beta(tan=-0.84192, x=-1, y=0.84192): -0.839099631177\n    test 1069 140 140.000087948921 Theta(tan=-0.839097, x=-1, y=0.839097): -0.839099631177\n    test 1070 140 139.952715856955 Mu(tan=-0.840507, x=-0.765514, y=0.64342), iteration=2: -0.839099631177\n    test 1071 140 140.000000000000 Chi(tan=-0.8391, x=-0.766044, y=0.642788): -0.839099631177\n    test 1072 140 139.936929981390 Xi(tan=-0.840977, x=-1.53755, y=1.29304), iteration=2: -0.839099631177\n\n    test 1073 140 139.810477575926 Phi(tan=-0.844752, x=-0.763914, y=0.645318): -0.839099631177\n    test 1074 140 139.905309888599 Beta(tan=-0.84192, x=-0.764981, y=0.644053): -0.839099631177\n    test 1075 140 140.000087948921 Theta(tan=-0.839097, x=-0.766045, y=0.642786): -0.839099631177\n    test 1076 140 139.952715856955 Mu(tan=-0.840507, x=-0.765514, y=0.64342): -0.839099631177\n    test 1077 140 140.000000000000 Chi(tan=-0.8391, x=-0.766044, y=0.642788): -0.839099631177\n    test 1078 140 139.936929981390 Xi(tan=-0.840977, x=-0.765336, y=0.64363): -0.839099631177\n\n    test 1079 147 146.824030870318 Phi(tan=-0.653783, x=-1, y=0.653783): -0.649407593198\n    test 1080 147 146.912104447745 Beta(tan=-0.651591, x=-1, y=0.651591): -0.649407593198\n    test 1081 147 147.000058627387 Theta(tan=-0.649406, x=-1, y=0.649406): -0.649407593198\n    test 1082 147 146.956118815411 Mu(tan=-0.650497, x=-0.838253, y=0.545281), iteration=2: -0.649407593198\n    test 1083 147 147.000000000000 Chi(tan=-0.649408, x=-0.838671, y=0.544639): -0.649407593198\n    test 1084 147 146.941464815429 Xi(tan=-0.650861, x=-1.68375, y=1.09589), iteration=3: -0.649407593198\n\n    test 1085 147 146.824030870318 Phi(tan=-0.653783, x=-0.836994, y=0.547212): -0.649407593198\n    test 1086 147 146.912104447745 Beta(tan=-0.651591, x=-0.837834, y=0.545925): -0.649407593198\n    test 1087 147 147.000058627387 Theta(tan=-0.649406, x=-0.838671, y=0.544638): -0.649407593198\n    test 1088 147 146.956118815411 Mu(tan=-0.650497, x=-0.838253, y=0.545281): -0.649407593198\n    test 1089 147 147.000000000000 Chi(tan=-0.649408, x=-0.838671, y=0.544639): -0.649407593198\n    test 1090 147 146.941464815429 Xi(tan=-0.650861, x=-0.838114, y=0.545496): -0.649407593198\n\n    test 1091 154 153.848086974871 Phi(tan=-0.491019, x=-1, y=0.491019): -0.487732588566\n    test 1092 154 153.924138158817 Beta(tan=-0.489373, x=-1, y=0.489373): -0.487732588566\n    test 1093 154 154.000032789582 Theta(tan=-0.487732, x=-1, y=0.487732): -0.487732588566\n    test 1094 154 153.962134341087 Mu(tan=-0.488551, x=-0.898504, y=0.438965), iteration=2: -0.487732588566\n    test 1095 154 154.000000000000 Chi(tan=-0.487733, x=-0.898794, y=0.438371): -0.487732588566\n    test 1096 154 153.949485950322 Xi(tan=-0.488824, x=-1.80488, y=0.88227), iteration=2: -0.487732588566\n\n    test 1097 154 153.848086974871 Phi(tan=-0.491019, x=-0.897629, y=0.440753): -0.487732588566\n    test 1098 154 153.924138158817 Beta(tan=-0.489373, x=-0.898213, y=0.439561): -0.487732588566\n    test 1099 154 154.000032789582 Theta(tan=-0.487732, x=-0.898794, y=0.438371): -0.487732588566\n    test 1100 154 153.962134341087 Mu(tan=-0.488551, x=-0.898504, y=0.438965): -0.487732588566\n    test 1101 154 154.000000000000 Chi(tan=-0.487733, x=-0.898794, y=0.438371): -0.487732588566\n    test 1102 154 153.949485950322 Xi(tan=-0.488824, x=-0.898407, y=0.439163): -0.487732588566\n\n    test 1103 161 160.881232023490 Phi(tan=-0.346648, x=-1, y=0.346648): -0.344327613290\n    test 1104 161 160.940701543262 Beta(tan=-0.345486, x=-1, y=0.345486): -0.344327613290\n    test 1105 161 161.000014139979 Theta(tan=-0.344327, x=-1, y=0.344327): -0.344327613290\n    test 1106 161 160.970406812613 Mu(tan=-0.344905, x=-0.94535, y=0.326056), iteration=3: -0.344327613290\n    test 1107 161 161.000000000000 Chi(tan=-0.344328, x=-0.945519, y=0.325568): -0.344327613290\n    test 1108 161 160.960519598812 Xi(tan=-0.345099, x=-1.89908, y=0.655369), iteration=3: -0.344327613290\n\n    test 1109 161 160.881232023490 Phi(tan=-0.346648, x=-0.944842, y=0.327527): -0.344327613290\n    test 1110 161 160.940701543262 Beta(tan=-0.345486, x=-0.945181, y=0.326547): -0.344327613290\n    test 1111 161 161.000014139979 Theta(tan=-0.344327, x=-0.945519, y=0.325568): -0.344327613290\n    test 1112 161 160.970406812613 Mu(tan=-0.344905, x=-0.94535, y=0.326056): -0.344327613290\n    test 1113 161 161.000000000000 Chi(tan=-0.344328, x=-0.945519, y=0.325568): -0.344327613290\n    test 1114 161 160.960519598812 Xi(tan=-0.345099, x=-0.945294, y=0.32622): -0.344327613290\n\n    test 1115 168 167.921497152166 Phi(tan=-0.213989, x=-1, y=0.213989): -0.212556561670\n    test 1116 168 167.960810661508 Beta(tan=-0.213272, x=-1, y=0.213272): -0.212556561670\n    test 1117 168 168.000003811668 Theta(tan=-0.212556, x=-1, y=0.212556): -0.212556561670\n    test 1118 168 167.980444790381 Mu(tan=-0.212913, x=-0.978077, y=0.208246), iteration=2: -0.212556561670\n    test 1119 168 168.000000000000 Chi(tan=-0.212557, x=-0.978148, y=0.207912): -0.212556561670\n    test 1120 168 167.973910295272 Xi(tan=-0.213033, x=-1.96489, y=0.418585), iteration=3: -0.212556561670\n\n    test 1121 168 167.921497152166 Phi(tan=-0.213989, x=-0.977862, y=0.209252): -0.212556561670\n    test 1122 168 167.960810661508 Beta(tan=-0.213272, x=-0.978005, y=0.208581): -0.212556561670\n    test 1123 168 168.000003811668 Theta(tan=-0.212556, x=-0.978148, y=0.207912): -0.212556561670\n    test 1124 168 167.980444790381 Mu(tan=-0.212913, x=-0.978077, y=0.208246): -0.212556561670\n    test 1125 168 168.000000000000 Chi(tan=-0.212557, x=-0.978148, y=0.207912): -0.212556561670\n    test 1126 168 167.973910295272 Xi(tan=-0.213033, x=-0.978053, y=0.208357): -0.212556561670\n\n    test 1127 175 174.966475344628 Phi(tan=-0.0880783, x=-1, y=0.0880783): -0.087488663526\n    test 1128 175 174.983265532727 Beta(tan=-0.087783, x=-1, y=0.087783): -0.087488663526\n    test 1129 175 175.000000286043 Theta(tan=-0.0874887, x=-1, y=0.0874887): -0.087488663526\n    test 1130 175 174.991650204039 Mu(tan=-0.0876355, x=-0.996182, y=0.0873009), iteration=3: -0.087488663526\n    test 1131 175 175.000000000000 Chi(tan=-0.0874887, x=-0.996195, y=0.0871557): -0.087488663526\n    test 1132 175 174.988859821813 Xi(tan=-0.0876846, x=-2.0013, y=0.175483), iteration=3: -0.087488663526\n\n    test 1133 175 174.966475344628 Phi(tan=-0.0880783, x=-0.996144, y=0.0877386): -0.087488663526\n    test 1134 175 174.983265532727 Beta(tan=-0.087783, x=-0.996169, y=0.0874467): -0.087488663526\n    test 1135 175 175.000000286043 Theta(tan=-0.0874887, x=-0.996195, y=0.0871557): -0.087488663526\n    test 1136 175 174.991650204039 Mu(tan=-0.0876355, x=-0.996182, y=0.0873009): -0.087488663526\n    test 1137 175 175.000000000000 Chi(tan=-0.0874887, x=-0.996195, y=0.0871557): -0.087488663526\n    test 1138 175 174.988859821813 Xi(tan=-0.0876846, x=-0.996178, y=0.0873494): -0.087488663526\n\n    test 1139 182 182.013467917640 Phi(tan=0.0351561, x=-1, y=-0.0351561): 0.034920769492\n    test 1140 182 182.006722669522 Beta(tan=0.0350382, x=-1, y=-0.0350382): 0.034920769492\n    test 1141 182 181.999999981575 Theta(tan=0.0349208, x=-1, y=-0.0349208): 0.034920769492\n    test 1142 182 182.003354287313 Mu(tan=0.0349794, x=-0.999389, y=-0.034958), iteration=3: 0.034920769492\n    test 1143 182 182.000000000000 Chi(tan=0.0349208, x=-0.999391, y=-0.0348995): 0.034920769492\n    test 1144 182 182.004475259781 Xi(tan=0.034999, x=-2.00775, y=-0.0702692), iteration=2: 0.034920769492\n\n    test 1145 182 182.013467917640 Phi(tan=0.0351561, x=-0.999383, y=-0.0351344): 0.034920769492\n    test 1146 182 182.006722669522 Beta(tan=0.0350382, x=-0.999387, y=-0.0350168): 0.034920769492\n    test 1147 182 181.999999981575 Theta(tan=0.0349208, x=-0.999391, y=-0.0348995): 0.034920769492\n    test 1148 182 182.003354287313 Mu(tan=0.0349794, x=-0.999389, y=-0.034958): 0.034920769492\n    test 1149 182 182.000000000000 Chi(tan=0.0349208, x=-0.999391, y=-0.0348995): 0.034920769492\n    test 1150 182 182.004475259781 Xi(tan=0.034999, x=-0.999388, y=-0.0349776): 0.034920769492\n\n    test 1151 189 189.059651130185 Phi(tan=0.159452, x=-1, y=-0.159452): 0.158384440325\n    test 1152 189 189.029777127642 Beta(tan=0.158917, x=-1, y=-0.158917): 0.158384440325\n    test 1153 189 188.999998360327 Theta(tan=0.158384, x=-1, y=-0.158384): 0.158384440325\n    test 1154 189 189.014858030843 Mu(tan=0.15865, x=-0.987648, y=-0.156691), iteration=3: 0.158384440325\n    test 1155 189 189.000000000000 Chi(tan=0.158384, x=-0.987688, y=-0.156434): 0.158384440325\n    test 1156 189 189.019823164695 Xi(tan=0.158739, x=-1.98414, y=-0.31496), iteration=3: 0.158384440325\n\n    test 1157 189 189.059651130185 Phi(tan=0.159452, x=-0.987525, y=-0.157463): 0.158384440325\n    test 1158 189 189.029777127642 Beta(tan=0.158917, x=-0.987607, y=-0.156948): 0.158384440325\n    test 1159 189 188.999998360327 Theta(tan=0.158384, x=-0.987688, y=-0.156434): 0.158384440325\n    test 1160 189 189.014858030843 Mu(tan=0.15865, x=-0.987648, y=-0.156691): 0.158384440325\n    test 1161 189 189.000000000000 Chi(tan=0.158384, x=-0.987688, y=-0.156434): 0.158384440325\n    test 1162 189 189.019823164695 Xi(tan=0.158739, x=-0.987634, y=-0.156776): 0.158384440325\n\n    test 1163 196 196.102251517048 Phi(tan=0.288678, x=-1, y=-0.288678): 0.286745385759\n    test 1164 196 196.051048664417 Beta(tan=0.28771, x=-1, y=-0.28771): 0.286745385759\n    test 1165 196 195.999991274014 Theta(tan=0.286745, x=-1, y=-0.286745): 0.286745385759\n    test 1166 196 196.025474578648 Mu(tan=0.287227, x=-0.961139, y=-0.276065), iteration=3: 0.286745385759\n    test 1167 196 196.000000000000 Chi(tan=0.286745, x=-0.961262, y=-0.275637): 0.286745385759\n    test 1168 196 196.033986378622 Xi(tan=0.287387, x=-1.93083, y=-0.554895), iteration=3: 0.286745385759\n\n    test 1169 196 196.102251517048 Phi(tan=0.288678, x=-0.960768, y=-0.277352): 0.286745385759\n    test 1170 196 196.051048664417 Beta(tan=0.28771, x=-0.961016, y=-0.276494): 0.286745385759\n    test 1171 196 195.999991274014 Theta(tan=0.286745, x=-0.961262, y=-0.275637): 0.286745385759\n    test 1172 196 196.025474578648 Mu(tan=0.287227, x=-0.961139, y=-0.276065): 0.286745385759\n    test 1173 196 196.000000000000 Chi(tan=0.286745, x=-0.961262, y=-0.275637): 0.286745385759\n    test 1174 196 196.033986378622 Xi(tan=0.287387, x=-0.961098, y=-0.276208): 0.286745385759\n\n    test 1175 203 203.138717708106 Phi(tan=0.427335, x=-1, y=-0.427335): 0.424474816210\n    test 1176 203 203.069266243319 Beta(tan=0.425902, x=-1, y=-0.425902): 0.424474816210\n    test 1177 203 202.999976212498 Theta(tan=0.424474, x=-1, y=-0.424474): 0.424474816210\n    test 1178 203 203.034570842744 Mu(tan=0.425187, x=-0.920269, y=-0.391286), iteration=3: 0.424474816210\n    test 1179 203 203.000000000000 Chi(tan=0.424475, x=-0.920505, y=-0.390731): 0.424474816210\n    test 1180 203 203.046119781391 Xi(tan=0.425425, x=-1.84864, y=-0.786459), iteration=3: 0.424474816210\n\n    test 1181 203 203.138717708106 Phi(tan=0.427335, x=-0.919556, y=-0.392959): 0.424474816210\n    test 1182 203 203.069266243319 Beta(tan=0.425902, x=-0.920032, y=-0.391844): 0.424474816210\n    test 1183 203 202.999976212498 Theta(tan=0.424474, x=-0.920505, y=-0.390731): 0.424474816210\n    test 1184 203 203.034570842744 Mu(tan=0.425187, x=-0.920269, y=-0.391286): 0.424474816210\n    test 1185 203 203.000000000000 Chi(tan=0.424475, x=-0.920505, y=-0.390731): 0.424474816210\n    test 1186 203 203.046119781391 Xi(tan=0.425425, x=-0.92019, y=-0.391472): 0.424474816210\n\n    test 1187 210 210.166876834292 Phi(tan=0.58124, x=-1, y=-0.58124): 0.577350269190\n    test 1188 210 210.083345266050 Beta(tan=0.579291, x=-1, y=-0.579291): 0.577350269190\n    test 1189 210 209.999953141624 Theta(tan=0.577349, x=-1, y=-0.577349): 0.577350269190\n    test 1190 210 210.041605671429 Mu(tan=0.578319, x=-0.865662, y=-0.500629), iteration=2: 0.577350269190\n    test 1191 210 210.000000000000 Chi(tan=0.57735, x=-0.866025, y=-0.5): 0.577350269190\n    test 1192 210 210.055501367888 Xi(tan=0.578643, x=-1.73885, y=-1.00617), iteration=3: 0.577350269190\n\n    test 1193 210 210.166876834292 Phi(tan=0.58124, x=-0.864565, y=-0.50252): 0.577350269190\n    test 1194 210 210.083345266050 Beta(tan=0.579291, x=-0.865297, y=-0.501259): 0.577350269190\n    test 1195 210 209.999953141624 Theta(tan=0.577349, x=-0.866026, y=-0.499999): 0.577350269190\n    test 1196 210 210.041605671429 Mu(tan=0.578319, x=-0.865662, y=-0.500629): 0.577350269190\n    test 1197 210 210.000000000000 Chi(tan=0.57735, x=-0.866025, y=-0.5): 0.577350269190\n    test 1198 210 210.055501367888 Xi(tan=0.578643, x=-0.865541, y=-0.500839): 0.577350269190\n\n    test 1199 217 217.185065085003 Phi(tan=0.758631, x=-1, y=-0.758631): 0.753554050103\n    test 1200 217 217.092452537420 Beta(tan=0.756087, x=-1, y=-0.756087): 0.753554050103\n    test 1201 217 216.999924718107 Theta(tan=0.753552, x=-1, y=-0.753552): 0.753554050103\n    test 1202 217 217.046162172363 Mu(tan=0.754818, x=-0.79815, y=-0.602458), iteration=2: 0.753554050103\n    test 1203 217 217.000000000000 Chi(tan=0.753554, x=-0.798636, y=-0.601815): 0.753554050103\n    test 1204 217 217.061575411936 Xi(tan=0.75524, x=-1.60314, y=-1.21076), iteration=3: 0.753554050103\n\n    test 1205 217 217.185065085003 Phi(tan=0.758631, x=-0.796687, y=-0.604391): 0.753554050103\n    test 1206 217 217.092452537420 Beta(tan=0.756087, x=-0.797663, y=-0.603103): 0.753554050103\n    test 1207 217 216.999924718107 Theta(tan=0.753552, x=-0.798636, y=-0.601814): 0.753554050103\n    test 1208 217 217.046162172363 Mu(tan=0.754818, x=-0.79815, y=-0.602458): 0.753554050103\n    test 1209 217 217.000000000000 Chi(tan=0.753554, x=-0.798636, y=-0.601815): 0.753554050103\n    test 1210 217 217.061575411936 Xi(tan=0.75524, x=-0.797988, y=-0.602673): 0.753554050103\n\n    test 1211 224 224.192224339246 Phi(tan=0.972193, x=-1, y=-0.972193): 0.965688774807\n    test 1212 224 224.096054985813 Beta(tan=0.968934, x=-1, y=-0.968934): 0.965688774807\n    test 1213 224 223.999895821294 Theta(tan=0.965685, x=-1, y=-0.965685): 0.965688774807\n    test 1214 224 224.047972230974 Mu(tan=0.967308, x=-0.718758, y=-0.69526), iteration=2: 0.965688774807\n    test 1215 224 224.000000000000 Chi(tan=0.965689, x=-0.71934, y=-0.694658): 0.965688774807\n    test 1216 224 224.063985091722 Xi(tan=0.967849, x=-1.44358, y=-1.39717), iteration=3: 0.965688774807\n\n    test 1217 224 224.192224339246 Phi(tan=0.972193, x=-0.717005, y=-0.697068): 0.965688774807\n    test 1218 224 224.096054985813 Beta(tan=0.968934, x=-0.718174, y=-0.695863): 0.965688774807\n    test 1219 224 223.999895821294 Theta(tan=0.965685, x=-0.719341, y=-0.694657): 0.965688774807\n    test 1220 224 224.047972230974 Mu(tan=0.967308, x=-0.718758, y=-0.69526): 0.965688774807\n    test 1221 224 224.000000000000 Chi(tan=0.965689, x=-0.71934, y=-0.694658): 0.965688774807\n    test 1222 224 224.063985091722 Xi(tan=0.967849, x=-0.718564, y=-0.695461): 0.965688774807\n\n    test 1223 231 231.187959693265 Phi(tan=1.24321, x=-1, y=-1.24321): 1.234897156535\n    test 1224 231 231.093949439927 Beta(tan=1.23905, x=-1, y=-1.23905): 1.234897156535\n    test 1225 231 230.999872507121 Theta(tan=1.23489, x=-1, y=-1.23489): 1.234897156535\n    test 1226 231 231.046931828803 Mu(tan=1.23697, x=-0.628684, y=-0.777661), iteration=3: 1.234897156535\n    test 1227 231 231.000000000000 Chi(tan=1.2349, x=-0.62932, y=-0.777146): 1.234897156535\n    test 1228 231 231.062592734966 Xi(tan=1.23766, x=-1.26259, y=-1.56265), iteration=2: 1.234897156535\n\n    test 1229 231 231.187959693265 Phi(tan=1.24321, x=-0.626768, y=-0.779206): 1.234897156535\n    test 1230 231 231.093949439927 Beta(tan=1.23905, x=-0.628045, y=-0.778177): 1.234897156535\n    test 1231 231 230.999872507121 Theta(tan=1.23489, x=-0.629322, y=-0.777145): 1.234897156535\n    test 1232 231 231.046931828803 Mu(tan=1.23697, x=-0.628684, y=-0.777661): 1.234897156535\n    test 1233 231 231.000000000000 Chi(tan=1.2349, x=-0.62932, y=-0.777146): 1.234897156535\n    test 1234 231 231.062592734966 Xi(tan=1.23766, x=-0.628471, y=-0.777833): 1.234897156535\n\n    test 1235 238 238.172555759873 Phi(tan=1.61111, x=-1, y=-1.61111): 1.600334529041\n    test 1236 238 238.086272148408 Beta(tan=1.60571, x=-1, y=-1.60571): 1.600334529041\n    test 1237 238 237.999860628148 Theta(tan=1.60033, x=-1, y=-1.60033): 1.600334529041\n    test 1238 238 238.043106397552 Mu(tan=1.60302, x=-0.529281, y=-0.848447), iteration=2: 1.600334529041\n    test 1239 238 238.000000000000 Chi(tan=1.60033, x=-0.529919, y=-0.848048): 1.600334529041\n    test 1240 238 238.057486709388 Xi(tan=1.60391, x=-1.06289, y=-1.70478), iteration=3: 1.600334529041\n\n    test 1241 238 238.172555759873 Phi(tan=1.61111, x=-0.527363, y=-0.84964): 1.600334529041\n    test 1242 238 238.086272148408 Beta(tan=1.60571, x=-0.528642, y=-0.848845): 1.600334529041\n    test 1243 238 237.999860628148 Theta(tan=1.60033, x=-0.529921, y=-0.848047): 1.600334529041\n    test 1244 238 238.043106397552 Mu(tan=1.60302, x=-0.529281, y=-0.848447): 1.600334529041\n    test 1245 238 238.000000000000 Chi(tan=1.60033, x=-0.529919, y=-0.848048): 1.600334529041\n    test 1246 238 238.057486709388 Xi(tan=1.60391, x=-0.529068, y=-0.848579): 1.600334529041\n\n    test 1247 245 245.146952468013 Phi(tan=2.15895, x=-1, y=-2.15895): 2.144506920510\n    test 1248 245 245.073488079777 Beta(tan=2.15171, x=-1, y=-2.15171): 2.144506920510\n    test 1249 245 244.999864442704 Theta(tan=2.14449, x=-1, y=-2.14449): 2.144506920510\n    test 1250 245 245.036726085420 Mu(tan=2.1481, x=-0.422037, y=-0.906578), iteration=3: 2.144506920510\n    test 1251 245 245.000000000000 Chi(tan=2.14451, x=-0.422618, y=-0.906308): 2.144506920510\n    test 1252 245 245.048974853160 Xi(tan=2.1493, x=-0.847475, y=-1.82148), iteration=3: 2.144506920510\n\n    test 1253 245 245.146952468013 Phi(tan=2.15895, x=-0.420292, y=-0.907389): 2.144506920510\n    test 1254 245 245.073488079777 Beta(tan=2.15171, x=-0.421455, y=-0.906849): 2.144506920510\n    test 1255 245 244.999864442704 Theta(tan=2.14449, x=-0.42262, y=-0.906307): 2.144506920510\n    test 1256 245 245.036726085420 Mu(tan=2.1481, x=-0.422037, y=-0.906578): 2.144506920510\n    test 1257 245 245.000000000000 Chi(tan=2.14451, x=-0.422618, y=-0.906308): 2.144506920510\n    test 1258 245 245.048974853160 Xi(tan=2.1493, x=-0.421843, y=-0.906669): 2.144506920510\n\n    test 1259 252 252.112683493851 Phi(tan=3.0984, x=-1, y=-3.0984): 3.077683537175\n    test 1260 252 252.056361244518 Beta(tan=3.08802, x=-1, y=-3.08802): 3.077683537175\n    test 1261 252 251.999885538511 Theta(tan=3.07766, x=-1, y=-3.07766): 3.077683537175\n    test 1262 252 252.028171414224 Mu(tan=3.08284, x=-0.308549, y=-0.951208), iteration=3: 3.077683537175\n    test 1263 252 252.000000000000 Chi(tan=3.07768, x=-0.309017, y=-0.951057): 3.077683537175\n    test 1264 252 252.037565143061 Xi(tan=3.08456, x=-0.619556, y=-1.91106), iteration=3: 3.077683537175\n\n    test 1265 252 252.112683493851 Phi(tan=3.0984, x=-0.307146, y=-0.951662): 3.077683537175\n    test 1266 252 252.056361244518 Beta(tan=3.08802, x=-0.308081, y=-0.95136): 3.077683537175\n    test 1267 252 251.999885538511 Theta(tan=3.07766, x=-0.309019, y=-0.951056): 3.077683537175\n    test 1268 252 252.028171414224 Mu(tan=3.08284, x=-0.308549, y=-0.951208): 3.077683537175\n    test 1269 252 252.000000000000 Chi(tan=3.07768, x=-0.309017, y=-0.951057): 3.077683537175\n    test 1270 252 252.037565143061 Xi(tan=3.08456, x=-0.308393, y=-0.951259): 3.077683537175\n\n    test 1271 259 259.071782282365 Phi(tan=5.17919, x=-1, y=-5.17919): 5.144554015970\n    test 1272 259 259.035908272116 Beta(tan=5.16182, x=-1, y=-5.16182): 5.144554015970\n    test 1273 259 258.999922323247 Theta(tan=5.14452, x=-1, y=-5.14452): 5.144554015970\n    test 1274 259 259.017950333560 Mu(tan=5.15317, x=-0.190501, y=-0.981687), iteration=3: 5.144554015970\n    test 1275 259 259.000000000000 Chi(tan=5.14455, x=-0.190809, y=-0.981627): 5.144554015970\n    test 1276 259 259.023934988471 Xi(tan=5.15605, x=-0.382508, y=-1.97223), iteration=3: 5.144554015970\n\n    test 1277 259 259.071782282365 Phi(tan=5.17919, x=-0.189579, y=-0.981865): 5.144554015970\n    test 1278 259 259.035908272116 Beta(tan=5.16182, x=-0.190194, y=-0.981747): 5.144554015970\n    test 1279 259 258.999922323247 Theta(tan=5.14452, x=-0.19081, y=-0.981627): 5.144554015970\n    test 1280 259 259.017950333560 Mu(tan=5.15317, x=-0.190501, y=-0.981687): 5.144554015970\n    test 1281 259 259.000000000000 Chi(tan=5.14455, x=-0.190809, y=-0.981627): 5.144554015970\n    test 1282 259 259.023934988471 Xi(tan=5.15605, x=-0.190399, y=-0.981707): 5.144554015970\n\n    test 1283 266 266.026661867451 Phi(tan=14.3969, x=-1, y=-14.3969): 14.300666256712\n    test 1284 266 266.013338229951 Beta(tan=14.3487, x=-1, y=-14.3487): 14.300666256712\n    test 1285 266 265.999970204566 Theta(tan=14.3006, x=-1, y=-14.3006): 14.300666256712\n    test 1286 266 266.006668111562 Mu(tan=14.3246, x=-0.0696404, y=-0.997572), iteration=2: 14.300666256712\n    test 1287 266 266.000000000000 Chi(tan=14.3007, x=-0.0697565, y=-0.997564): 14.300666256712\n    test 1288 266 266.008891093578 Xi(tan=14.3326, x=-0.139828, y=-2.00411), iteration=3: 14.300666256712\n\n    test 1289 266 266.026661867451 Phi(tan=14.3969, x=-0.0692923, y=-0.997596): 14.300666256712\n    test 1290 266 266.013338229951 Beta(tan=14.3487, x=-0.0695242, y=-0.99758): 14.300666256712\n    test 1291 266 265.999970204566 Theta(tan=14.3006, x=-0.069757, y=-0.997564): 14.300666256712\n    test 1292 266 266.006668111562 Mu(tan=14.3246, x=-0.0696404, y=-0.997572): 14.300666256712\n    test 1293 266 266.000000000000 Chi(tan=14.3007, x=-0.0697565, y=-0.997564): 14.300666256712\n    test 1294 266 266.008891093578 Xi(tan=14.3326, x=-0.0696017, y=-0.997575): 14.300666256712\n\n    test 1295 273 272.979975455720 Phi(tan=-19.2096, x=1.0, y=-19.2096): -19.081136687728\n    test 1296 273 272.989982200734 Beta(tan=-19.1452, x=1.0, y=-19.1452): -19.081136687728\n    test 1297 273 273.000022425845 Theta(tan=-19.081, x=1.0, y=-19.081): -19.081136687728\n    test 1298 273 272.994991833280 Mu(tan=-19.1131, x=0.0522487, y=-0.998634), iteration=3: -19.081136687728\n    test 1299 273 273.000000000000 Chi(tan=-19.0811, x=0.052336, y=-0.99863): -19.081136687728\n    test 1300 273 272.993322244137 Xi(tan=-19.1238, x=0.104908, y=-2.00624), iteration=2: -19.081136687728\n\n    test 1301 273 272.979975455720 Phi(tan=-19.2096, x=0.0519869, y=-0.998648): -19.081136687728\n    test 1302 273 272.989982200734 Beta(tan=-19.1452, x=0.0521614, y=-0.998639): -19.081136687728\n    test 1303 273 273.000022425845 Theta(tan=-19.081, x=0.0523363, y=-0.99863): -19.081136687728\n    test 1304 273 272.994991833280 Mu(tan=-19.1131, x=0.0522487, y=-0.998634): -19.081136687728\n    test 1305 273 273.000000000000 Chi(tan=-19.0811, x=0.052336, y=-0.99863): -19.081136687728\n    test 1306 273 272.993322244137 Xi(tan=-19.1238, x=0.0522196, y=-0.998636): -19.081136687728\n\n    test 1307 280 279.934465137513 Phi(tan=-5.70946, x=1.0, y=-5.70946): -5.671281819618\n    test 1308 280 279.967216473785 Beta(tan=-5.69032, x=1.0, y=-5.69032): -5.671281819618\n    test 1309 280 280.000071376516 Theta(tan=-5.67124, x=1.0, y=-5.67124): -5.671281819618\n    test 1310 280 279.983611509112 Mu(tan=-5.68078, x=0.173366, y=-0.984857), iteration=3: -5.671281819618\n    test 1311 280 280.000000000000 Chi(tan=-5.67128, x=0.173648, y=-0.984808): -5.671281819618\n    test 1312 280 279.978147657318 Xi(tan=-5.68396, x=0.348101, y=-1.97859), iteration=3: -5.671281819618\n\n    test 1313 280 279.934465137513 Phi(tan=-5.70946, x=0.172522, y=-0.985006): -5.671281819618\n    test 1314 280 279.967216473785 Beta(tan=-5.69032, x=0.173085, y=-0.984907): -5.671281819618\n    test 1315 280 280.000071376516 Theta(tan=-5.67124, x=0.173649, y=-0.984808): -5.671281819618\n    test 1316 280 279.983611509112 Mu(tan=-5.68078, x=0.173366, y=-0.984857): -5.671281819618\n    test 1317 280 280.000000000000 Chi(tan=-5.67128, x=0.173648, y=-0.984808): -5.671281819618\n    test 1318 280 279.978147657318 Xi(tan=-5.68396, x=0.173273, y=-0.984874): -5.671281819618\n\n    test 1319 287 286.892806262875 Phi(tan=-3.29287, x=1.0, y=-3.29287): -3.270852618484\n    test 1320 287 286.946383391473 Beta(tan=-3.28183, x=1.0, y=-3.28183): -3.270852618484\n    test 1321 287 287.000110089905 Theta(tan=-3.27083, x=1.0, y=-3.27083): -3.270852618484\n    test 1322 287 286.973199933024 Mu(tan=-3.27633, x=0.291924, y=-0.956441), iteration=2: -3.270852618484\n    test 1323 287 287.000000000000 Chi(tan=-3.27085, x=0.292372, y=-0.956305): -3.270852618484\n    test 1324 287 286.964263697434 Xi(tan=-3.27816, x=0.586171, y=-1.92156), iteration=2: -3.270852618484\n\n    test 1325 287 286.892806262875 Phi(tan=-3.29287, x=0.290582, y=-0.95685): -3.270852618484\n    test 1326 287 286.946383391473 Beta(tan=-3.28183, x=0.291477, y=-0.956578): -3.270852618484\n    test 1327 287 287.000110089905 Theta(tan=-3.27083, x=0.292374, y=-0.956304): -3.270852618484\n    test 1328 287 286.973199933024 Mu(tan=-3.27633, x=0.291924, y=-0.956441): -3.270852618484\n    test 1329 287 287.000000000000 Chi(tan=-3.27085, x=0.292372, y=-0.956305): -3.270852618484\n    test 1330 287 286.964263697434 Xi(tan=-3.27816, x=0.291775, y=-0.956487): -3.270852618484\n\n    test 1331 294 293.857455069612 Phi(tan=-2.26116, x=1.0, y=-2.26116): -2.246036773904\n    test 1332 294 293.928713955385 Beta(tan=-2.25358, x=1.0, y=-2.25358): -2.246036773904\n    test 1333 294 294.000133599673 Theta(tan=-2.24602, x=1.0, y=-2.24602): -2.246036773904\n    test 1334 294 293.964373479294 Mu(tan=-2.2498, x=0.406169, y=-0.913798), iteration=2: -2.246036773904\n    test 1335 294 294.000000000000 Chi(tan=-2.24604, x=0.406737, y=-0.913545): -2.246036773904\n    test 1336 294 293.952491818284 Xi(tan=-2.25106, x=0.815604, y=-1.83597), iteration=3: -2.246036773904\n\n    test 1337 294 293.857455069612 Phi(tan=-2.26116, x=0.404463, y=-0.914555): -2.246036773904\n    test 1338 294 293.928713955385 Beta(tan=-2.25358, x=0.4056, y=-0.914051): -2.246036773904\n    test 1339 294 294.000133599673 Theta(tan=-2.24602, x=0.406739, y=-0.913545): -2.246036773904\n    test 1340 294 293.964373479294 Mu(tan=-2.2498, x=0.406169, y=-0.913798): -2.246036773904\n    test 1341 294 294.000000000000 Chi(tan=-2.24604, x=0.406737, y=-0.913545): -2.246036773904\n    test 1342 294 293.952491818284 Xi(tan=-2.25106, x=0.405979, y=-0.913882): -2.246036773904\n\n    test 1343 301 300.830507114227 Phi(tan=-1.67549, x=1.0, y=-1.67549): -1.664279482351\n    test 1344 301 300.915256249596 Beta(tan=-1.66987, x=1.0, y=-1.66987): -1.664279482351\n    test 1345 301 301.000139857505 Theta(tan=-1.66427, x=1.0, y=-1.66427): -1.664279482351\n    test 1346 301 300.957655989828 Mu(tan=-1.66707, x=0.514404, y=-0.857548), iteration=2: -1.664279482351\n    test 1347 301 301.000000000000 Chi(tan=-1.66428, x=0.515038, y=-0.857167): -1.664279482351\n    test 1348 301 300.943530549480 Xi(tan=-1.668, x=1.033, y=-1.72305), iteration=3: -1.664279482351\n\n    test 1349 301 300.830507114227 Phi(tan=-1.67549, x=0.5125, y=-0.858687): -1.664279482351\n    test 1350 301 300.915256249596 Beta(tan=-1.66987, x=0.51377, y=-0.857928): -1.664279482351\n    test 1351 301 301.000139857505 Theta(tan=-1.66427, x=0.51504, y=-0.857166): -1.664279482351\n    test 1352 301 300.957655989828 Mu(tan=-1.66707, x=0.514404, y=-0.857548): -1.664279482351\n    test 1353 301 301.000000000000 Chi(tan=-1.66428, x=0.515038, y=-0.857167): -1.664279482351\n    test 1354 301 300.943530549480 Xi(tan=-1.668, x=0.514193, y=-0.857674): -1.664279482351\n\n    test 1355 308 307.813573905031 Phi(tan=-1.28856, x=1.0, y=-1.28856): -1.279941632193\n    test 1356 308 307.906813571405 Beta(tan=-1.28424, x=1.0, y=-1.28424): -1.279941632193\n    test 1357 308 308.000130012564 Theta(tan=-1.27994, x=1.0, y=-1.27994): -1.279941632193\n    test 1358 308 307.953447779688 Mu(tan=-1.28209, x=0.615021, y=-0.788511), iteration=3: -1.279941632193\n    test 1359 308 308.000000000000 Chi(tan=-1.27994, x=0.615661, y=-0.788011): -1.279941632193\n    test 1360 308 307.937914195662 Xi(tan=-1.2828, x=1.23514, y=-1.58444), iteration=3: -1.279941632193\n\n    test 1361 308 307.813573905031 Phi(tan=-1.28856, x=0.613094, y=-0.79001): -1.279941632193\n    test 1362 308 307.906813571405 Beta(tan=-1.28424, x=0.614379, y=-0.789011): -1.279941632193\n    test 1363 308 308.000130012564 Theta(tan=-1.27994, x=0.615663, y=-0.788009): -1.279941632193\n    test 1364 308 307.953447779688 Mu(tan=-1.28209, x=0.615021, y=-0.788511): -1.279941632193\n    test 1365 308 308.000000000000 Chi(tan=-1.27994, x=0.615661, y=-0.788011): -1.279941632193\n    test 1366 308 307.937914195662 Xi(tan=-1.2828, x=0.614807, y=-0.788677): -1.279941632193\n\n    test 1367 315 314.807684778155 Phi(tan=-1.00674, x=1.0, y=-1.00674): -1.000000000000\n    test 1368 315 314.903895845383 Beta(tan=-1.00336, x=1.0, y=-1.00336): -1.000000000000\n    test 1369 315 315.000107996571 Theta(tan=-0.999996, x=1.0, y=-0.999996): -1.000000000000\n    test 1370 315 314.952001570934 Mu(tan=-1.00168, x=0.706514, y=-0.707699), iteration=2: -1.000000000000\n    test 1371 315 315.000000000000 Chi(tan=-1, x=0.707107, y=-0.707107): -1.000000000000\n    test 1372 315 314.935980653019 Xi(tan=-1.00224, x=1.41898, y=-1.42215), iteration=3: -1.000000000000\n\n    test 1373 315 314.807684778155 Phi(tan=-1.00674, x=0.704729, y=-0.709476): -1.000000000000\n    test 1374 315 314.903895845383 Beta(tan=-1.00336, x=0.70592, y=-0.708292): -1.000000000000\n    test 1375 315 315.000107996571 Theta(tan=-0.999996, x=0.707108, y=-0.707105): -1.000000000000\n    test 1376 315 314.952001570934 Mu(tan=-1.00168, x=0.706514, y=-0.707699): -1.000000000000\n    test 1377 315 315.000000000000 Chi(tan=-1, x=0.707107, y=-0.707107): -1.000000000000\n    test 1378 315 314.935980653019 Xi(tan=-1.00224, x=0.706316, y=-0.707896): -1.000000000000\n\n    test 1379 322 321.813220359944 Phi(tan=-0.786549, x=1.0, y=-0.786549): -0.781285626507\n    test 1380 322 321.906687396462 Beta(tan=-0.783912, x=1.0, y=-0.783912): -0.781285626507\n    test 1381 322 322.000079515502 Theta(tan=-0.781283, x=1.0, y=-0.781283): -0.781285626507\n    test 1382 322 321.953406847958 Mu(tan=-0.782596, x=0.78751, y=-0.616302), iteration=2: -0.781285626507\n    test 1383 322 322.000000000000 Chi(tan=-0.781286, x=0.788011, y=-0.615661): -0.781285626507\n    test 1384 322 321.937850353113 Xi(tan=-0.783034, x=1.58176, y=-1.23857), iteration=3: -0.781285626507\n\n    test 1385 322 321.813220359944 Phi(tan=-0.786549, x=0.786, y=-0.618227): -0.781285626507\n    test 1386 322 321.906687396462 Beta(tan=-0.783912, x=0.787007, y=-0.616944): -0.781285626507\n    test 1387 322 322.000079515502 Theta(tan=-0.781283, x=0.788012, y=-0.61566): -0.781285626507\n    test 1388 322 321.953406847958 Mu(tan=-0.782596, x=0.78751, y=-0.616302): -0.781285626507\n    test 1389 322 322.000000000000 Chi(tan=-0.781286, x=0.788011, y=-0.615661): -0.781285626507\n    test 1390 322 321.937850353113 Xi(tan=-0.783034, x=0.787342, y=-0.616516): -0.781285626507\n\n    test 1391 329 328.829882787345 Phi(tan=-0.604909, x=1.0, y=-0.604909): -0.600860619028\n    test 1392 329 328.915033437072 Beta(tan=-0.602881, x=1.0, y=-0.602881): -0.600860619028\n    test 1393 329 329.000050684665 Theta(tan=-0.600859, x=1.0, y=-0.600859): -0.600860619028\n    test 1394 329 328.957583708533 Mu(tan=-0.601869, x=0.856786, y=-0.515672), iteration=3: -0.600860619028\n    test 1395 329 329.000000000000 Chi(tan=-0.600861, x=0.857167, y=-0.515038): -0.600860619028\n    test 1396 329 328.943417809954 Xi(tan=-0.602205, x=1.72101, y=-1.0364), iteration=3: -0.600860619028\n\n    test 1397 329 328.829882787345 Phi(tan=-0.604909, x=0.855634, y=-0.517581): -0.600860619028\n    test 1398 329 328.915033437072 Beta(tan=-0.602881, x=0.856403, y=-0.516309): -0.600860619028\n    test 1399 329 329.000050684665 Theta(tan=-0.600859, x=0.857168, y=-0.515037): -0.600860619028\n    test 1400 329 328.957583708533 Mu(tan=-0.601869, x=0.856786, y=-0.515672): -0.600860619028\n    test 1401 329 329.000000000000 Chi(tan=-0.600861, x=0.857167, y=-0.515038): -0.600860619028\n    test 1402 329 328.943417809954 Xi(tan=-0.602205, x=0.856658, y=-0.515884): -0.600860619028\n\n    test 1403 336 335.856706115158 Phi(tan=-0.448229, x=1.0, y=-0.448229): -0.445228685309\n    test 1404 336 335.928446665868 Beta(tan=-0.446726, x=1.0, y=-0.446726): -0.445228685309\n    test 1405 336 336.000026626488 Theta(tan=-0.445228, x=1.0, y=-0.445228): -0.445228685309\n    test 1406 336 335.964286769667 Mu(tan=-0.445976, x=0.913292, y=-0.407306), iteration=2: -0.445228685309\n    test 1407 336 336.000000000000 Chi(tan=-0.445229, x=0.913545, y=-0.406737): -0.445228685309\n    test 1408 336 335.952356574339 Xi(tan=-0.446225, x=1.83461, y=-0.818652), iteration=2: -0.445228685309\n\n    test 1409 336 335.856706115158 Phi(tan=-0.448229, x=0.912525, y=-0.40902): -0.445228685309\n    test 1410 336 335.928446665868 Beta(tan=-0.446726, x=0.913037, y=-0.407877): -0.445228685309\n    test 1411 336 336.000026626488 Theta(tan=-0.445228, x=0.913546, y=-0.406736): -0.445228685309\n    test 1412 336 335.964286769667 Mu(tan=-0.445976, x=0.913292, y=-0.407306): -0.445228685309\n    test 1413 336 336.000000000000 Chi(tan=-0.445229, x=0.913545, y=-0.406737): -0.445228685309\n    test 1414 336 335.952356574339 Xi(tan=-0.446225, x=0.913207, y=-0.407496): -0.445228685309\n\n    test 1415 343 342.892108013861 Phi(tan=-0.307791, x=1.0, y=-0.307791): -0.305730681459\n    test 1416 343 342.946134198526 Beta(tan=-0.306759, x=1.0, y=-0.306759): -0.305730681459\n    test 1417 343 343.000010359231 Theta(tan=-0.30573, x=1.0, y=-0.30573): -0.305730681459\n    test 1418 343 342.973119094169 Mu(tan=-0.306244, x=0.956167, y=-0.29282), iteration=3: -0.305730681459\n    test 1419 343 343.000000000000 Chi(tan=-0.305731, x=0.956305, y=-0.292372): -0.305730681459\n    test 1420 343 342.964137610259 Xi(tan=-0.306415, x=1.92083, y=-0.588571), iteration=3: -0.305730681459\n\n    test 1421 343 342.892108013861 Phi(tan=-0.307791, x=0.955753, y=-0.294172): -0.305730681459\n    test 1422 343 342.946134198526 Beta(tan=-0.306759, x=0.956029, y=-0.293271): -0.305730681459\n    test 1423 343 343.000010359231 Theta(tan=-0.30573, x=0.956305, y=-0.292372): -0.305730681459\n    test 1424 343 342.973119094169 Mu(tan=-0.306244, x=0.956167, y=-0.29282): -0.305730681459\n    test 1425 343 343.000000000000 Chi(tan=-0.305731, x=0.956305, y=-0.292372): -0.305730681459\n    test 1426 343 342.964137610259 Xi(tan=-0.306415, x=0.956122, y=-0.29297): -0.305730681459\n\n    test 1427 350 349.933981060171 Phi(tan=-0.177515, x=1.0, y=-0.177515): -0.176326980708\n    test 1428 350 349.967043715347 Beta(tan=-0.17692, x=1.0, y=-0.17692): -0.176326980708\n    test 1429 350 350.000002236053 Theta(tan=-0.176327, x=1.0, y=-0.176327): -0.176326980708\n    test 1430 350 349.983555465918 Mu(tan=-0.176623, x=0.984758, y=-0.173931), iteration=3: -0.176326980708\n    test 1431 350 350.000000000000 Chi(tan=-0.176327, x=0.984808, y=-0.173648): -0.176326980708\n    test 1432 350 349.978060244759 Xi(tan=-0.176722, x=1.97833, y=-0.349613), iteration=3: -0.176326980708\n\n    test 1433 350 349.933981060171 Phi(tan=-0.177515, x=0.984607, y=-0.174783): -0.176326980708\n    test 1434 350 349.967043715347 Beta(tan=-0.17692, x=0.984708, y=-0.174215): -0.176326980708\n    test 1435 350 350.000002236053 Theta(tan=-0.176327, x=0.984808, y=-0.173648): -0.176326980708\n    test 1436 350 349.983555465918 Mu(tan=-0.176623, x=0.984758, y=-0.173931): -0.176326980708\n    test 1437 350 350.000000000000 Chi(tan=-0.176327, x=0.984808, y=-0.173648): -0.176326980708\n    test 1438 350 349.978060244759 Xi(tan=-0.176722, x=0.984741, y=-0.174025): -0.176326980708\n\n    test 1439 357 356.979818878824 Phi(tan=-0.052761, x=1.0, y=-0.052761): -0.052407779283\n    test 1440 357 356.989926321337 Beta(tan=-0.0525841, x=1.0, y=-0.0525841): -0.052407779283\n    test 1441 357 357.000000062090 Theta(tan=-0.0524078, x=1.0, y=-0.0524078): -0.052407779283\n    test 1442 357 356.994973705906 Mu(tan=-0.0524957, x=0.998625, y=-0.0524236), iteration=3: -0.052407779283\n    test 1443 357 357.000000000000 Chi(tan=-0.0524078, x=0.99863, y=-0.052336): -0.052407779283\n    test 1444 357 356.993293970223 Xi(tan=-0.0525251, x=2.00621, y=-0.105377), iteration=2: -0.052407779283\n\n    test 1445 357 356.979818878824 Phi(tan=-0.052761, x=0.998611, y=-0.0526877): -0.052407779283\n    test 1446 357 356.989926321337 Beta(tan=-0.0525841, x=0.99862, y=-0.0525115): -0.052407779283\n    test 1447 357 357.000000062090 Theta(tan=-0.0524078, x=0.99863, y=-0.052336): -0.052407779283\n    test 1448 357 356.994973705906 Mu(tan=-0.0524957, x=0.998625, y=-0.0524236): -0.052407779283\n    test 1449 357 357.000000000000 Chi(tan=-0.0524078, x=0.99863, y=-0.052336): -0.052407779283\n    test 1450 357 356.993293970223 Xi(tan=-0.0525251, x=0.998623, y=-0.0524528): -0.052407779283\n\n    test 1451  0 0.000000000000 Phi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 1452  0 0.000000000000 Beta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 1453  0 0.000000000000 Theta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 1454  0 0.000000000000 Mu(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 1455  0 0.000000000000 Chi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 1456  0 0.000000000000 Xi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n\n    test 1457  0 0.000000000000 Phi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 1458  0 0.000000000000 Beta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 1459  0 0.000000000000 Theta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 1460  0 0.000000000000 Mu(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 1461  0 0.000000000000 Chi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 1462  0 0.000000000000 Xi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n\n    test 1463  7 7.035013553420 Phi(tan=0.123405, x=1.0, y=0.123405): 0.122784560903\n    test 1464  7 7.011661662966 Beta(tan=0.122991, x=1.0, y=0.122991): 0.122784560903\n    test 1465  7 6.988385737369 Theta(tan=0.122579, x=1.0, y=0.122579): 0.122784560903\n    test 1466  7 7.000000000000 Mu(tan=0.122785, x=0.992546, y=0.121869): 0.122784560903\n    test 1467  7 6.988386512663 Chi(tan=0.122579, x=1.0, y=0.122579), iteration=3: 0.122784560903\n    test 1468  7 7.003880991951 Xi(tan=0.122853, x=1.99399, y=0.244968), iteration=3: 0.122784560903\n\n    test 1469  7 7.035013553420 Phi(tan=0.123405, x=0.992471, y=0.122476): 0.122784560903\n    test 1470  7 7.011661662966 Beta(tan=0.122991, x=0.992521, y=0.122071): 0.122784560903\n    test 1471  7 6.988385737369 Theta(tan=0.122579, x=0.992571, y=0.121668): 0.122784560903\n    test 1472  7 7.000000000000 Mu(tan=0.122785, x=0.992546, y=0.121869): 0.122784560903\n    test 1473  7 6.988386512663 Chi(tan=0.122579, x=0.992571, y=0.121668): 0.122784560903\n    test 1474  7 7.003880991951 Xi(tan=0.122853, x=0.992538, y=0.121937): 0.122784560903\n\n    test 1475 14 14.067929480939 Phi(tan=0.250588, x=1.0, y=0.250588): 0.249328002843\n    test 1476 14 14.022626357697 Beta(tan=0.249747, x=1.0, y=0.249747): 0.249328002843\n    test 1477 14 13.977457317809 Theta(tan=0.24891, x=1.0, y=0.24891): 0.249328002843\n    test 1478 14 14.000000000000 Mu(tan=0.249328, x=0.970296, y=0.241922): 0.249328002843\n    test 1479 14 13.977463246186 Chi(tan=0.24891, x=1.0, y=0.24891), iteration=3: 0.249328002843\n    test 1480 14 14.007530515250 Xi(tan=0.249468, x=1.94924, y=0.486272), iteration=2: 0.249328002843\n\n    test 1481 14 14.067929480939 Phi(tan=0.250588, x=0.970008, y=0.243072): 0.249328002843\n    test 1482 14 14.022626357697 Beta(tan=0.249747, x=0.9702, y=0.242305): 0.249328002843\n    test 1483 14 13.977457317809 Theta(tan=0.24891, x=0.970391, y=0.24154): 0.249328002843\n    test 1484 14 14.000000000000 Mu(tan=0.249328, x=0.970296, y=0.241922): 0.249328002843\n    test 1485 14 13.977463246186 Chi(tan=0.24891, x=0.970391, y=0.24154): 0.249328002843\n    test 1486 14 14.007530515250 Xi(tan=0.249468, x=0.970264, y=0.242049): 0.249328002843\n\n    test 1487 21 21.096778912148 Phi(tan=0.385803, x=1.0, y=0.385803): 0.383864035035\n    test 1488 21 21.032239504096 Beta(tan=0.38451, x=1.0, y=0.38451): 0.383864035035\n    test 1489 21 20.967860810199 Theta(tan=0.383221, x=1.0, y=0.383221): 0.383864035035\n    test 1490 21 21.000000000000 Mu(tan=0.383864, x=0.93358, y=0.358368): 0.383864035035\n    test 1491 21 20.967879349935 Chi(tan=0.383221, x=1.0, y=0.383221), iteration=2: 0.383864035035\n    test 1492 21 21.010731065364 Xi(tan=0.384079, x=1.87541, y=0.720305), iteration=3: 0.383864035035\n\n    test 1493 21 21.096778912148 Phi(tan=0.385803, x=0.932974, y=0.359944): 0.383864035035\n    test 1494 21 21.032239504096 Beta(tan=0.38451, x=0.933379, y=0.358893): 0.383864035035\n    test 1495 21 20.967860810199 Theta(tan=0.383221, x=0.933781, y=0.357844): 0.383864035035\n    test 1496 21 21.000000000000 Mu(tan=0.383864, x=0.93358, y=0.358368): 0.383864035035\n    test 1497 21 20.967879349935 Chi(tan=0.383221, x=0.933781, y=0.357845): 0.383864035035\n    test 1498 21 21.010731065364 Xi(tan=0.384079, x=0.933513, y=0.358543): 0.383864035035\n\n    test 1499 28 28.119841850563 Phi(tan=0.534395, x=1.0, y=0.534395): 0.531709431661\n    test 1500 28 28.039928546523 Beta(tan=0.532604, x=1.0, y=0.532604): 0.531709431661\n    test 1501 28 27.960164870301 Theta(tan=0.530818, x=1.0, y=0.530818): 0.531709431661\n    test 1502 28 28.000000000000 Mu(tan=0.531709, x=0.882948, y=0.469472): 0.531709431661\n    test 1503 28 27.960204286276 Chi(tan=0.530819, x=1.0, y=0.530819), iteration=3: 0.531709431661\n    test 1504 28 28.013292185978 Xi(tan=0.532007, x=1.77361, y=0.94357), iteration=3: 0.531709431661\n\n    test 1505 28 28.119841850563 Phi(tan=0.534395, x=0.881964, y=0.471317): 0.531709431661\n    test 1506 28 28.039928546523 Beta(tan=0.532604, x=0.88262, y=0.470087): 0.531709431661\n    test 1507 28 27.960164870301 Theta(tan=0.530818, x=0.883274, y=0.468858): 0.531709431661\n    test 1508 28 28.000000000000 Mu(tan=0.531709, x=0.882948, y=0.469472): 0.531709431661\n    test 1509 28 27.960204286276 Chi(tan=0.530819, x=0.883273, y=0.468858): 0.531709431661\n    test 1510 28 28.013292185978 Xi(tan=0.532007, x=0.882839, y=0.469676): 0.531709431661\n\n    test 1511 35 35.135750772251 Phi(tan=0.703744, x=1.0, y=0.703744): 0.700207538210\n    test 1512 35 35.045237306558 Beta(tan=0.701385, x=1.0, y=0.701385): 0.700207538210\n    test 1513 35 34.954827299026 Theta(tan=0.699033, x=1.0, y=0.699033): 0.700207538210\n    test 1514 35 35.000000000000 Mu(tan=0.700208, x=0.819152, y=0.573576): 0.700207538210\n    test 1515 35 34.954893977158 Chi(tan=0.699035, x=1.0, y=0.699035), iteration=3: 0.700207538210\n    test 1516 35 35.015061857454 Xi(tan=0.700599, x=1.64536, y=1.15274), iteration=3: 0.700207538210\n\n    test 1517 35 35.135750772251 Phi(tan=0.703744, x=0.817791, y=0.575516): 0.700207538210\n    test 1518 35 35.045237306558 Beta(tan=0.701385, x=0.818699, y=0.574223): 0.700207538210\n    test 1519 35 34.954827299026 Theta(tan=0.699033, x=0.819604, y=0.57293): 0.700207538210\n    test 1520 35 35.000000000000 Mu(tan=0.700208, x=0.819152, y=0.573576): 0.700207538210\n    test 1521 35 34.954893977158 Chi(tan=0.699035, x=0.819603, y=0.572931): 0.700207538210\n    test 1522 35 35.015061857454 Xi(tan=0.700599, x=0.819001, y=0.573792): 0.700207538210\n\n    test 1523 42 42.143571223962 Phi(tan=0.904952, x=1.0, y=0.904952): 0.900404044298\n    test 1524 42 42.047852933259 Beta(tan=0.901917, x=1.0, y=0.901917): 0.900404044298\n    test 1525 42 41.952167704870 Theta(tan=0.898894, x=1.0, y=0.898894): 0.900404044298\n    test 1526 42 42.000000000000 Mu(tan=0.900404, x=0.743145, y=0.669131): 0.900404044298\n    test 1527 42 41.952263729127 Chi(tan=0.898897, x=1.0, y=0.898897), iteration=3: 0.900404044298\n    test 1528 42 42.015935495968 Xi(tan=0.900908, x=1.49259, y=1.34469), iteration=2: 0.900404044298\n\n    test 1529 42 42.143571223962 Phi(tan=0.904952, x=0.741466, y=0.670991): 0.900404044298\n    test 1530 42 42.047852933259 Beta(tan=0.901917, x=0.742586, y=0.669751): 0.900404044298\n    test 1531 42 41.952167704870 Theta(tan=0.898894, x=0.743703, y=0.66851): 0.900404044298\n    test 1532 42 42.000000000000 Mu(tan=0.900404, x=0.743145, y=0.669131): 0.900404044298\n    test 1533 42 41.952263729127 Chi(tan=0.898897, x=0.743702, y=0.668511): 0.900404044298\n    test 1534 42 42.015935495968 Xi(tan=0.900908, x=0.742959, y=0.669337): 0.900404044298\n\n    test 1535 49 49.142854800592 Phi(tan=1.15618, x=1.0, y=1.15618): 1.150368407221\n    test 1536 49 49.047623888378 Beta(tan=1.1523, x=1.0, y=1.1523): 1.150368407221\n    test 1537 49 48.952347927786 Theta(tan=1.14844, x=1.0, y=1.14844): 1.150368407221\n    test 1538 49 49.000000000000 Mu(tan=1.15037, x=0.656059, y=0.75471): 1.150368407221\n    test 1539 49 48.952469542367 Chi(tan=1.14844, x=1.0, y=1.14844), iteration=3: 1.150368407221\n    test 1540 49 49.015862036782 Xi(tan=1.15101, x=1.31759, y=1.51656), iteration=2: 1.150368407221\n\n    test 1541 49 49.142854800592 Phi(tan=1.15618, x=0.654175, y=0.756343): 1.150368407221\n    test 1542 49 49.047623888378 Beta(tan=1.1523, x=0.655431, y=0.755255): 1.150368407221\n    test 1543 49 48.952347927786 Theta(tan=1.14844, x=0.656686, y=0.754164): 1.150368407221\n    test 1544 49 49.000000000000 Mu(tan=1.15037, x=0.656059, y=0.75471): 1.150368407221\n    test 1545 49 48.952469542367 Chi(tan=1.14844, x=0.656685, y=0.754165): 1.150368407221\n    test 1546 49 49.015862036782 Xi(tan=1.15101, x=0.65585, y=0.754891): 1.150368407221\n\n    test 1547 56 56.133661968442 Phi(tan=1.49005, x=1.0, y=1.49005): 1.482560968513\n    test 1548 56 56.044568042538 Beta(tan=1.48505, x=1.0, y=1.48505): 1.482560968513\n    test 1549 56 55.955361525715 Theta(tan=1.48007, x=1.0, y=1.48007): 1.482560968513\n    test 1550 56 56.000000000000 Mu(tan=1.48256, x=0.559193, y=0.829038): 1.482560968513\n    test 1551 56 55.955498904140 Chi(tan=1.48008, x=1.0, y=1.48008), iteration=3: 1.482560968513\n    test 1552 56 56.014846771252 Xi(tan=1.48339, x=1.12298, y=1.66581), iteration=2: 1.482560968513\n\n    test 1553 56 56.133661968442 Phi(tan=1.49005, x=0.557257, y=0.83034): 1.482560968513\n    test 1554 56 56.044568042538 Beta(tan=1.48505, x=0.558548, y=0.829472): 1.482560968513\n    test 1555 56 55.955361525715 Theta(tan=1.48007, x=0.559839, y=0.828602): 1.482560968513\n    test 1556 56 56.000000000000 Mu(tan=1.48256, x=0.559193, y=0.829038): 1.482560968513\n    test 1557 56 55.955498904140 Chi(tan=1.48008, x=0.559837, y=0.828603): 1.482560968513\n    test 1558 56 56.014846771252 Xi(tan=1.48339, x=0.558978, y=0.829182): 1.482560968513\n\n    test 1559 63 63.116554283961 Phi(tan=1.97252, x=1.0, y=1.97252): 1.962610505505\n    test 1560 63 63.038870615950 Beta(tan=1.96591, x=1.0, y=1.96591): 1.962610505505\n    test 1561 63 62.961033158986 Theta(tan=1.95932, x=1.0, y=1.95932): 1.962610505505\n    test 1562 63 63.000000000000 Mu(tan=1.96261, x=0.45399, y=0.891007): 1.962610505505\n    test 1563 63 62.961171598977 Chi(tan=1.95933, x=1.0, y=1.95933), iteration=3: 1.962610505505\n    test 1564 63 63.012950815476 Xi(tan=1.96371, x=0.911653, y=1.79022), iteration=3: 1.962610505505\n\n    test 1565 63 63.116554283961 Phi(tan=1.97252, x=0.452177, y=0.891928): 1.962610505505\n    test 1566 63 63.038870615950 Beta(tan=1.96591, x=0.453386, y=0.891314): 1.962610505505\n    test 1567 63 62.961033158986 Theta(tan=1.95932, x=0.454596, y=0.890698): 1.962610505505\n    test 1568 63 63.000000000000 Mu(tan=1.96261, x=0.45399, y=0.891007): 1.962610505505\n    test 1569 63 62.961171598977 Chi(tan=1.95933, x=0.454594, y=0.890699): 1.962610505505\n    test 1570 63 63.012950815476 Xi(tan=1.96371, x=0.453789, y=0.891109): 1.962610505505\n\n    test 1571 70 70.092557449454 Phi(tan=2.76135, x=1.0, y=2.76135): 2.747477419455\n    test 1572 70 70.030872319297 Beta(tan=2.75209, x=1.0, y=2.75209): 2.747477419455\n    test 1573 70 69.969028142824 Theta(tan=2.74286, x=1.0, y=2.74286): 2.747477419455\n    test 1574 70 70.000000000000 Mu(tan=2.74748, x=0.34202, y=0.939693): 2.747477419455\n    test 1575 70 69.969150471863 Chi(tan=2.74288, x=1.0, y=2.74288), iteration=2: 2.747477419455\n    test 1576 70 70.010287292906 Xi(tan=2.74901, x=0.686773, y=1.88795), iteration=2: 2.747477419455\n\n    test 1577 70 70.092557449454 Phi(tan=2.76135, x=0.340502, y=0.940244): 2.747477419455\n    test 1578 70 70.030872319297 Beta(tan=2.75209, x=0.341514, y=0.939877): 2.747477419455\n    test 1579 70 69.969028142824 Theta(tan=2.74286, x=0.342528, y=0.939508): 2.747477419455\n    test 1580 70 70.000000000000 Mu(tan=2.74748, x=0.34202, y=0.939693): 2.747477419455\n    test 1581 70 69.969150471863 Chi(tan=2.74288, x=0.342526, y=0.939508): 2.747477419455\n    test 1582 70 70.010287292906 Xi(tan=2.74901, x=0.341851, y=0.939754): 2.747477419455\n\n    test 1583 77 77.063098225048 Phi(tan=4.35334, x=1.0, y=4.35334): 4.331475874284\n    test 1584 77 77.021048596835 Beta(tan=4.33875, x=1.0, y=4.33875): 4.331475874284\n    test 1585 77 76.978871802460 Theta(tan=4.3242, x=1.0, y=4.3242): 4.331475874284\n    test 1586 77 77.000000000000 Mu(tan=4.33148, x=0.224951, y=0.97437): 4.331475874284\n    test 1587 77 76.978961492015 Chi(tan=4.32423, x=1.0, y=4.32423), iteration=3: 4.331475874284\n    test 1588 77 77.007014500932 Xi(tan=4.3339, x=0.451683, y=1.95755), iteration=3: 4.331475874284\n\n    test 1589 77 77.063098225048 Phi(tan=4.35334, x=0.223878, y=0.974617): 4.331475874284\n    test 1590 77 77.021048596835 Beta(tan=4.33875, x=0.224593, y=0.974453): 4.331475874284\n    test 1591 77 76.978871802460 Theta(tan=4.3242, x=0.22531, y=0.974287): 4.331475874284\n    test 1592 77 77.000000000000 Mu(tan=4.33148, x=0.224951, y=0.97437): 4.331475874284\n    test 1593 77 76.978961492015 Chi(tan=4.32423, x=0.225309, y=0.974287): 4.331475874284\n    test 1594 77 77.007014500932 Xi(tan=4.3339, x=0.224832, y=0.974398): 4.331475874284\n\n    test 1595 84 84.029919429066 Phi(tan=9.5624, x=1.0, y=9.5624): 9.514364454223\n    test 1596 84 84.009981321799 Beta(tan=9.53033, x=1.0, y=9.53033): 9.514364454223\n    test 1597 84 83.989977604221 Theta(tan=9.49838, x=1.0, y=9.49838): 9.514364454223\n    test 1598 84 84.000000000000 Mu(tan=9.51436, x=0.104528, y=0.994522): 9.514364454223\n    test 1599 84 83.990021917793 Chi(tan=9.49845, x=1.0, y=9.49845), iteration=2: 9.514364454223\n    test 1600 84 84.003326493225 Xi(tan=9.51968, x=0.20988, y=1.99799), iteration=3: 9.514364454223\n\n    test 1601 84 84.029919429066 Phi(tan=9.5624, x=0.104009, y=0.994576): 9.514364454223\n    test 1602 84 84.009981321799 Beta(tan=9.53033, x=0.104355, y=0.99454): 9.514364454223\n    test 1603 84 83.989977604221 Theta(tan=9.49838, x=0.104702, y=0.994504): 9.514364454223\n    test 1604 84 84.000000000000 Mu(tan=9.51436, x=0.104528, y=0.994522): 9.514364454223\n    test 1605 84 83.990021917793 Chi(tan=9.49845, x=0.104702, y=0.994504): 9.514364454223\n    test 1606 84 84.003326493225 Xi(tan=9.51968, x=0.104471, y=0.994528): 9.514364454223\n\n    test 1607 91 90.994978117111 Phi(tan=-57.5792, x=-1, y=57.5792): -57.289961630759\n    test 1608 91 90.998324636576 Beta(tan=-57.3861, x=-1, y=57.3861): -57.289961630759\n    test 1609 91 91.001682407187 Theta(tan=-57.1937, x=-1, y=57.1937): -57.289961630759\n    test 1610 91 91.000000000000 Mu(tan=-57.29, x=-0.0174524, y=0.999848): -57.289961630759\n    test 1611 91 91.001674889056 Chi(tan=-57.1941, x=-1, y=57.1941), iteration=3: -57.289961630759\n    test 1612 91 90.999441640005 Xi(tan=-57.322, x=-0.035042, y=2.00867), iteration=3: -57.289961630759\n\n    test 1613 91 90.994978117111 Phi(tan=-57.5792, x=-0.0173648, y=0.999849): -57.289961630759\n    test 1614 91 90.998324636576 Beta(tan=-57.3861, x=-0.0174232, y=0.999848): -57.289961630760  FAILED, KNOWN (5.95323e-15), expected -57.289961630759\n    test 1615 91 91.001682407187 Theta(tan=-57.1937, x=-0.0174818, y=0.999847): -57.289961630760  FAILED, KNOWN (5.82921e-15), expected -57.289961630759\n    test 1616 91 91.000000000000 Mu(tan=-57.29, x=-0.0174524, y=0.999848): -57.289961630759\n    test 1617 91 91.001674889056 Chi(tan=-57.1941, x=-0.0174816, y=0.999847): -57.289961630760  FAILED, KNOWN (9.30193e-15), expected -57.289961630759\n    test 1618 91 90.999441640005 Xi(tan=-57.322, x=-0.0174427, y=0.999848): -57.289961630759\n\n    test 1619 98 97.960332584009 Phi(tan=-7.15129, x=-1, y=7.15129): -7.115369722384\n    test 1620 98 97.986766870880 Beta(tan=-7.12731, x=-1, y=7.12731): -7.115369722384\n    test 1621 98 98.013286645922 Theta(tan=-7.10342, x=-1, y=7.10342): -7.115369722384\n    test 1622 98 98.000000000000 Mu(tan=-7.11537, x=-0.139173, y=0.990268): -7.115369722384\n    test 1623 98 98.013228398375 Chi(tan=-7.10347, x=-1, y=7.10347), iteration=3: -7.115369722384\n    test 1624 98 97.995589824971 Xi(tan=-7.11935, x=-0.279443, y=1.98945), iteration=2: -7.115369722384\n\n    test 1625 98 97.960332584009 Phi(tan=-7.15129, x=-0.138487, y=0.990364): -7.115369722384\n    test 1626 98 97.986766870880 Beta(tan=-7.12731, x=-0.138944, y=0.9903): -7.115369722384\n    test 1627 98 98.013286645922 Theta(tan=-7.10342, x=-0.139403, y=0.990236): -7.115369722384\n    test 1628 98 98.000000000000 Mu(tan=-7.11537, x=-0.139173, y=0.990268): -7.115369722384\n    test 1629 98 98.013228398375 Chi(tan=-7.10347, x=-0.139402, y=0.990236): -7.115369722384\n    test 1630 98 97.995589824971 Xi(tan=-7.11935, x=-0.139097, y=0.990279): -7.115369722384\n\n    test 1631 105 104.928024147426 Phi(tan=-3.75089, x=-1, y=3.75089): -3.732050807569\n    test 1632 105 104.975990619809 Beta(tan=-3.73832, x=-1, y=3.73832): -3.732050807569\n    test 1633 105 105.024096873204 Theta(tan=-3.72578, x=-1, y=3.72578): -3.732050807569\n    test 1634 105 105.000000000000 Mu(tan=-3.73205, x=-0.258819, y=0.965926): -3.732050807569\n    test 1635 105 105.023996337790 Chi(tan=-3.72581, x=-1, y=3.72581), iteration=3: -3.732050807569\n    test 1636 105 104.991999000074 Xi(tan=-3.73414, x=-0.519691, y=1.9406), iteration=3: -3.732050807569\n\n    test 1637 105 104.928024147426 Phi(tan=-3.75089, x=-0.257605, y=0.96625): -3.732050807569\n    test 1638 105 104.975990619809 Beta(tan=-3.73832, x=-0.258414, y=0.966034): -3.732050807569\n    test 1639 105 105.024096873204 Theta(tan=-3.72578, x=-0.259225, y=0.965817): -3.732050807569\n    test 1640 105 105.000000000000 Mu(tan=-3.73205, x=-0.258819, y=0.965926): -3.732050807569\n    test 1641 105 105.023996337790 Chi(tan=-3.72581, x=-0.259224, y=0.965817): -3.732050807569\n    test 1642 105 104.991999000074 Xi(tan=-3.73414, x=-0.258684, y=0.965962): -3.732050807569\n\n    test 1643 112 111.899959803709 Phi(tan=-2.48758, x=-1, y=2.48758): -2.475086853416\n    test 1644 112 111.966633129887 Beta(tan=-2.47924, x=-1, y=2.47924): -2.475086853416\n    test 1645 112 112.033467905647 Theta(tan=-2.47093, x=-1, y=2.47093): -2.475086853416\n    test 1646 112 112.000000000000 Mu(tan=-2.47509, x=-0.374607, y=0.927184): -2.475086853416\n    test 1647 112 112.033339197227 Chi(tan=-2.47095, x=-1, y=2.47095), iteration=3: -2.475086853416\n    test 1648 112 111.988881847875 Xi(tan=-2.47647, x=-0.752216, y=1.86284), iteration=3: -2.475086853416\n\n    test 1649 112 111.899959803709 Phi(tan=-2.48758, x=-0.372987, y=0.927837): -2.475086853416\n    test 1650 112 111.966633129887 Beta(tan=-2.47924, x=-0.374067, y=0.927402): -2.475086853416\n    test 1651 112 112.033467905647 Theta(tan=-2.47093, x=-0.375148, y=0.926965): -2.475086853416\n    test 1652 112 112.000000000000 Mu(tan=-2.47509, x=-0.374607, y=0.927184): -2.475086853416\n    test 1653 112 112.033339197227 Chi(tan=-2.47095, x=-0.375146, y=0.926966): -2.475086853416\n    test 1654 112 111.988881847875 Xi(tan=-2.47647, x=-0.374427, y=0.927257): -2.475086853416\n\n    test 1655 119 118.877801825189 Phi(tan=-1.81316, x=-1, y=1.81316): -1.804047755271\n    test 1656 119 118.959249130251 Beta(tan=-1.80708, x=-1, y=1.80708): -1.804047755271\n    test 1657 119 119.040841846602 Theta(tan=-1.80102, x=-1, y=1.80102): -1.804047755271\n    test 1658 119 119.000000000000 Mu(tan=-1.80405, x=-0.48481, y=0.87462): -1.804047755271\n    test 1659 119 119.040702010928 Chi(tan=-1.80103, x=-1, y=1.80103), iteration=3: -1.804047755271\n    test 1660 119 118.986423296510 Xi(tan=-1.80506, x=-0.973556, y=1.75732), iteration=2: -1.804047755271\n\n    test 1661 119 118.877801825189 Phi(tan=-1.81316, x=-0.482943, y=0.875652): -1.804047755271\n    test 1662 119 118.959249130251 Beta(tan=-1.80708, x=-0.484187, y=0.874964): -1.804047755271\n    test 1663 119 119.040841846602 Theta(tan=-1.80102, x=-0.485433, y=0.874274): -1.804047755271\n    test 1664 119 119.000000000000 Mu(tan=-1.80405, x=-0.48481, y=0.87462): -1.804047755271\n    test 1665 119 119.040702010928 Chi(tan=-1.80103, x=-0.485431, y=0.874275): -1.804047755271\n    test 1666 119 118.986423296510 Xi(tan=-1.80506, x=-0.484602, y=0.874735): -1.804047755271\n\n    test 1667 126 125.862870188589 Phi(tan=-1.38333, x=-1, y=1.38333): -1.376381920471\n    test 1668 126 125.954278157197 Beta(tan=-1.37869, x=-1, y=1.37869): -1.376381920471\n    test 1669 126 126.045781505815 Theta(tan=-1.37407, x=-1, y=1.37407): -1.376381920471\n    test 1670 126 126.000000000000 Mu(tan=-1.37638, x=-0.587785, y=0.809017): -1.376381920471\n    test 1671 126 126.045647308130 Chi(tan=-1.37408, x=-1, y=1.37408), iteration=3: -1.376381920471\n    test 1672 126 125.984769594047 Xi(tan=-1.37715, x=-1.18042, y=1.62561), iteration=2: -1.376381920471\n\n    test 1673 126 125.862870188589 Phi(tan=-1.38333, x=-0.585847, y=0.810421): -1.376381920471\n    test 1674 126 125.954278157197 Beta(tan=-1.37869, x=-0.587139, y=0.809486): -1.376381920471\n    test 1675 126 126.045781505815 Theta(tan=-1.37407, x=-0.588431, y=0.808547): -1.376381920471\n    test 1676 126 126.000000000000 Mu(tan=-1.37638, x=-0.587785, y=0.809017): -1.376381920471\n    test 1677 126 126.045647308130 Chi(tan=-1.37408, x=-0.58843, y=0.808548): -1.376381920471\n    test 1678 126 125.984769594047 Xi(tan=-1.37715, x=-0.58757, y=0.809173): -1.376381920471\n\n    test 1679 133 132.856063347719 Phi(tan=-1.07778, x=-1, y=1.07778): -1.072368710025\n    test 1680 133 132.952018246366 Beta(tan=-1.07417, x=-1, y=1.07417): -1.072368710025\n    test 1681 133 133.047996165770 Theta(tan=-1.07057, x=-1, y=1.07057): -1.072368710025\n    test 1682 133 133.000000000000 Mu(tan=-1.07237, x=-0.681998, y=0.731354): -1.072368710025\n    test 1683 133 133.047881115076 Chi(tan=-1.07057, x=-1, y=1.07057), iteration=3: -1.072368710025\n    test 1684 133 132.984019576906 Xi(tan=-1.07297, x=-1.36971, y=1.46966), iteration=2: -1.072368710025\n\n    test 1685 133 132.856063347719 Phi(tan=-1.07778, x=-0.680159, y=0.733065): -1.072368710025\n    test 1686 133 132.952018246366 Beta(tan=-1.07417, x=-0.681386, y=0.731925): -1.072368710025\n    test 1687 133 133.047996165770 Theta(tan=-1.07057, x=-0.682611, y=0.730782): -1.072368710025\n    test 1688 133 133.000000000000 Mu(tan=-1.07237, x=-0.681998, y=0.731354): -1.072368710025\n    test 1689 133 133.047881115076 Chi(tan=-1.07057, x=-0.682609, y=0.730784): -1.072368710025\n    test 1690 133 132.984019576906 Xi(tan=-1.07297, x=-0.681794, y=0.731544): -1.072368710025\n\n    test 1691 140 139.857802229338 Phi(tan=-0.843338, x=-1, y=0.843338): -0.839099631177\n    test 1692 140 139.952607597930 Beta(tan=-0.84051, x=-1, y=0.84051): -0.839099631177\n    test 1693 140 140.047358211970 Theta(tan=-0.837692, x=-1, y=0.837692): -0.839099631177\n    test 1694 140 140.000000000000 Mu(tan=-0.8391, x=-0.766044, y=0.642788): -0.839099631177\n    test 1695 140 140.047270461053 Chi(tan=-0.837695, x=-1, y=0.837695), iteration=3: -0.839099631177\n    test 1696 140 139.984218660625 Xi(tan=-0.839569, x=-1.53861, y=1.29177), iteration=3: -0.839099631177\n\n    test 1697 140 139.857802229338 Phi(tan=-0.843338, x=-0.764447, y=0.644687): -0.839099631177\n    test 1698 140 139.952607597930 Beta(tan=-0.84051, x=-0.765512, y=0.643421): -0.839099631177\n    test 1699 140 140.047358211970 Theta(tan=-0.837692, x=-0.766575, y=0.642154): -0.839099631177\n    test 1700 140 140.000000000000 Mu(tan=-0.8391, x=-0.766044, y=0.642788): -0.839099631177\n    test 1701 140 140.047270461053 Chi(tan=-0.837695, x=-0.766574, y=0.642155): -0.839099631177\n    test 1702 140 139.984218660625 Xi(tan=-0.839569, x=-0.765867, y=0.642999): -0.839099631177\n\n    test 1703 147 146.868001375396 Phi(tan=-0.652688, x=-1, y=0.652688): -0.649407593198\n    test 1704 147 146.956015447561 Beta(tan=-0.6505, x=-1, y=0.6505): -0.649407593198\n    test 1705 147 147.043909788845 Theta(tan=-0.648319, x=-1, y=0.648319): -0.649407593198\n    test 1706 147 147.000000000000 Mu(tan=-0.649408, x=-0.838671, y=0.544639): -0.649407593198\n    test 1707 147 147.043851339199 Chi(tan=-0.64832, x=-1, y=0.64832), iteration=2: -0.649407593198\n    test 1708 147 146.985355941569 Xi(tan=-0.649771, x=-1.68459, y=1.0946), iteration=3: -0.649407593198\n\n    test 1709 147 146.868001375396 Phi(tan=-0.652688, x=-0.837414, y=0.54657): -0.649407593198\n    test 1710 147 146.956015447561 Beta(tan=-0.6505, x=-0.838252, y=0.545283): -0.649407593198\n    test 1711 147 147.043909788845 Theta(tan=-0.648319, x=-0.839088, y=0.543996): -0.649407593198\n    test 1712 147 147.000000000000 Mu(tan=-0.649408, x=-0.838671, y=0.544639): -0.649407593198\n    test 1713 147 147.043851339199 Chi(tan=-0.64832, x=-0.839087, y=0.543997): -0.649407593198\n    test 1714 147 146.985355941569 Xi(tan=-0.649771, x=-0.838531, y=0.544853): -0.649407593198\n\n    test 1715 154 153.886069836452 Phi(tan=-0.490196, x=-1, y=0.490196): -0.487732588566\n    test 1716 154 153.962042898489 Beta(tan=-0.488553, x=-1, y=0.488553): -0.487732588566\n    test 1717 154 154.037859302268 Theta(tan=-0.486915, x=-1, y=0.486915): -0.487732588566\n    test 1718 154 154.000000000000 Mu(tan=-0.487733, x=-0.898794, y=0.438371): -0.487732588566\n    test 1719 154 154.037826635034 Chi(tan=-0.486916, x=-1, y=0.486916), iteration=3: -0.487732588566\n    test 1720 154 153.987364628293 Xi(tan=-0.488006, x=-1.80546, y=0.881077), iteration=3: -0.487732588566\n\n    test 1721 154 153.886069836452 Phi(tan=-0.490196, x=-0.897921, y=0.440157): -0.487732588566\n    test 1722 154 153.962042898489 Beta(tan=-0.488553, x=-0.898503, y=0.438966): -0.487732588566\n    test 1723 154 154.037859302268 Theta(tan=-0.486915, x=-0.899084, y=0.437777): -0.487732588566\n    test 1724 154 154.000000000000 Mu(tan=-0.487733, x=-0.898794, y=0.438371): -0.487732588566\n    test 1725 154 154.037826635034 Chi(tan=-0.486916, x=-0.899083, y=0.437778): -0.487732588566\n    test 1726 154 153.987364628293 Xi(tan=-0.488006, x=-0.898697, y=0.438569): -0.487732588566\n\n    test 1727 161 160.910942745263 Phi(tan=-0.346067, x=-1, y=0.346067): -0.344327613290\n    test 1728 161 160.970333898803 Beta(tan=-0.344907, x=-1, y=0.344907): -0.344327613290\n    test 1729 161 161.029568209135 Theta(tan=-0.34375, x=-1, y=0.34375): -0.344327613290\n    test 1730 161 161.000000000000 Mu(tan=-0.344328, x=-0.945519, y=0.325568): -0.344327613290\n    test 1731 161 161.029554130079 Chi(tan=-0.343751, x=-1, y=0.343751), iteration=2: -0.344327613290\n    test 1732 161 160.990125827674 Xi(tan=-0.34452, x=-1.89942, y=0.654387), iteration=3: -0.344327613290\n\n    test 1733 161 160.910942745263 Phi(tan=-0.346067, x=-0.945011, y=0.327037): -0.344327613290\n    test 1734 161 160.970333898803 Beta(tan=-0.344907, x=-0.94535, y=0.326058): -0.344327613290\n    test 1735 161 161.029568209135 Theta(tan=-0.34375, x=-0.945686, y=0.32508): -0.344327613290\n    test 1736 161 161.000000000000 Mu(tan=-0.344328, x=-0.945519, y=0.325568): -0.344327613290\n    test 1737 161 161.029554130079 Chi(tan=-0.343751, x=-0.945686, y=0.32508): -0.344327613290\n    test 1738 161 160.990125827674 Xi(tan=-0.34452, x=-0.945462, y=0.325731): -0.344327613290\n\n    test 1739 168 167.941142537455 Phi(tan=-0.21363, x=-1, y=0.21363): -0.212556561670\n    test 1740 168 167.980395911211 Beta(tan=-0.212914, x=-1, y=0.212914): -0.212556561670\n    test 1741 168 168.019529073263 Theta(tan=-0.2122, x=-1, y=0.2122): -0.212556561670\n    test 1742 168 168.000000000000 Mu(tan=-0.212557, x=-0.978148, y=0.207912): -0.212556561670\n    test 1743 168 168.019525279620 Chi(tan=-0.2122, x=-1, y=0.2122), iteration=3: -0.212556561670\n    test 1744 168 167.993475503952 Xi(tan=-0.212676, x=-1.96503, y=0.417914), iteration=3: -0.212556561670\n\n    test 1745 168 167.941142537455 Phi(tan=-0.21363, x=-0.977934, y=0.208916): -0.212556561670\n    test 1746 168 167.980395911211 Beta(tan=-0.212914, x=-0.978076, y=0.208246): -0.212556561670\n    test 1747 168 168.019529073263 Theta(tan=-0.2122, x=-0.978218, y=0.207578): -0.212556561670\n    test 1748 168 168.000000000000 Mu(tan=-0.212557, x=-0.978148, y=0.207912): -0.212556561670\n    test 1749 168 168.019525279620 Chi(tan=-0.2122, x=-0.978218, y=0.207578): -0.212556561670\n    test 1750 168 167.993475503952 Xi(tan=-0.212676, x=-0.978124, y=0.208023): -0.212556561670\n\n    test 1751 175 174.974866680328 Phi(tan=-0.0879307, x=-1, y=0.0879307): -0.087488663526\n    test 1752 175 174.991629164161 Beta(tan=-0.0876359, x=-1, y=0.0876359): -0.087488663526\n    test 1753 175 175.008336301828 Theta(tan=-0.0873421, x=-1, y=0.0873421): -0.087488663526\n    test 1754 175 175.000000000000 Mu(tan=-0.0874887, x=-0.996195, y=0.0871557): -0.087488663526\n    test 1755 175 175.008336017206 Chi(tan=-0.0873421, x=-1, y=0.0873421), iteration=2: -0.087488663526\n    test 1756 175 174.997214222263 Xi(tan=-0.0875377, x=-2.00133, y=0.175191), iteration=2: -0.087488663526\n\n    test 1757 175 174.974866680328 Phi(tan=-0.0879307, x=-0.996156, y=0.0875927): -0.087488663526\n    test 1758 175 174.991629164161 Beta(tan=-0.0876359, x=-0.996182, y=0.0873013): -0.087488663526\n    test 1759 175 175.008336301828 Theta(tan=-0.0873421, x=-0.996207, y=0.0870108): -0.087488663526\n    test 1760 175 175.000000000000 Mu(tan=-0.0874887, x=-0.996195, y=0.0871557): -0.087488663526\n    test 1761 175 175.008336017206 Chi(tan=-0.0873421, x=-0.996207, y=0.0870108): -0.087488663526\n    test 1762 175 174.997214222263 Xi(tan=-0.0875377, x=-0.99619, y=0.0872042): -0.087488663526\n\n    test 1763 182 182.010096724503 Phi(tan=0.0350972, x=-1, y=-0.0350972): 0.034920769492\n    test 1764 182 182.003362751638 Beta(tan=0.0349795, x=-1, y=-0.0349795): 0.034920769492\n    test 1765 182 181.996651301418 Theta(tan=0.0348623, x=-1, y=-0.0348623): 0.034920769492\n    test 1766 182 182.000000000000 Mu(tan=0.0349208, x=-0.999391, y=-0.0348995): 0.034920769492\n    test 1767 182 181.996651319751 Chi(tan=0.0348623, x=-1, y=-0.0348623), iteration=2: 0.034920769492\n    test 1768 182 182.001119098649 Xi(tan=0.0349403, x=-2.00775, y=-0.0701516), iteration=3: 0.034920769492\n\n    test 1769 182 182.010096724503 Phi(tan=0.0350972, x=-0.999385, y=-0.0350756): 0.034920769492\n    test 1770 182 182.003362751638 Beta(tan=0.0349795, x=-0.999389, y=-0.0349582): 0.034920769492\n    test 1771 182 181.996651301418 Theta(tan=0.0348623, x=-0.999393, y=-0.0348411): 0.034920769492\n    test 1772 182 182.000000000000 Mu(tan=0.0349208, x=-0.999391, y=-0.0348995): 0.034920769492\n    test 1773 182 181.996651319751 Chi(tan=0.0348623, x=-0.999393, y=-0.0348411): 0.034920769492\n    test 1774 182 182.001119098649 Xi(tan=0.0349403, x=-0.99939, y=-0.034919): 0.034920769492\n\n    test 1775 189 189.044721740866 Phi(tan=0.159185, x=-1, y=-0.159185): 0.158384440325\n    test 1776 189 189.014895327636 Beta(tan=0.158651, x=-1, y=-0.158651): 0.158384440325\n    test 1777 189 188.985164013992 Theta(tan=0.158119, x=-1, y=-0.158119): 0.158384440325\n    test 1778 189 189.000000000000 Mu(tan=0.158384, x=-0.987688, y=-0.156434): 0.158384440325\n    test 1779 189 188.985165645705 Chi(tan=0.158119, x=-1, y=-0.158119), iteration=3: 0.158384440325\n    test 1780 189 189.004957222799 Xi(tan=0.158473, x=-1.98422, y=-0.314445), iteration=2: 0.158384440325\n\n    test 1781 189 189.044721740866 Phi(tan=0.159185, x=-0.987566, y=-0.157205): 0.158384440325\n    test 1782 189 189.014895327636 Beta(tan=0.158651, x=-0.987648, y=-0.156691): 0.158384440325\n    test 1783 189 188.985164013992 Theta(tan=0.158119, x=-0.987729, y=-0.156179): 0.158384440325\n    test 1784 189 189.000000000000 Mu(tan=0.158384, x=-0.987688, y=-0.156434): 0.158384440325\n    test 1785 189 188.985165645705 Chi(tan=0.158119, x=-0.987729, y=-0.156179): 0.158384440325\n    test 1786 189 189.004957222799 Xi(tan=0.158473, x=-0.987675, y=-0.15652): 0.158384440325\n\n    test 1787 196 196.076667971970 Phi(tan=0.288194, x=-1, y=-0.288194): 0.286745385759\n    test 1788 196 196.025537779325 Beta(tan=0.287228, x=-1, y=-0.287228): 0.286745385759\n    test 1789 196 195.974552923462 Theta(tan=0.286265, x=-1, y=-0.286265): 0.286745385759\n    test 1790 196 196.000000000000 Mu(tan=0.286745, x=-0.961262, y=-0.275637): 0.286745385759\n    test 1791 196 195.974561610097 Chi(tan=0.286265, x=-1, y=-0.286265), iteration=3: 0.286745385759\n    test 1792 196 196.008499713199 Xi(tan=0.286906, x=-1.93107, y=-0.554036), iteration=3: 0.286745385759\n\n    test 1793 196 196.076667971970 Phi(tan=0.288194, x=-0.960892, y=-0.276923): 0.286745385759\n    test 1794 196 196.025537779325 Beta(tan=0.287228, x=-0.961139, y=-0.276066): 0.286745385759\n    test 1795 196 195.974552923462 Theta(tan=0.286265, x=-0.961384, y=-0.27521): 0.286745385759\n    test 1796 196 196.000000000000 Mu(tan=0.286745, x=-0.961262, y=-0.275637): 0.286745385759\n    test 1797 196 195.974561610097 Chi(tan=0.286265, x=-0.961384, y=-0.275211): 0.286745385759\n    test 1798 196 196.008499713199 Xi(tan=0.286906, x=-0.961221, y=-0.27578): 0.286745385759\n\n    test 1799 203 203.104025981749 Phi(tan=0.426619, x=-1, y=-0.426619): 0.424474816210\n    test 1800 203 203.034655104114 Beta(tan=0.425189, x=-1, y=-0.425189): 0.424474816210\n    test 1801 203 202.965445675486 Theta(tan=0.423763, x=-1, y=-0.423763): 0.424474816210\n    test 1802 203 203.000000000000 Mu(tan=0.424475, x=-0.920505, y=-0.390731): 0.424474816210\n    test 1803 203 202.965469367936 Chi(tan=0.423764, x=-1, y=-0.423764), iteration=3: 0.424474816210\n    test 1804 203 203.011535517974 Xi(tan=0.424712, x=-1.84912, y=-0.785343), iteration=2: 0.424474816210\n\n    test 1805 203 203.104025981749 Phi(tan=0.426619, x=-0.919794, y=-0.392402): 0.424474816210\n    test 1806 203 203.034655104114 Beta(tan=0.425189, x=-0.920268, y=-0.391288): 0.424474816210\n    test 1807 203 202.965445675486 Theta(tan=0.423763, x=-0.92074, y=-0.390176): 0.424474816210\n    test 1808 203 203.000000000000 Mu(tan=0.424475, x=-0.920505, y=-0.390731): 0.424474816210\n    test 1809 203 202.965469367936 Chi(tan=0.423764, x=-0.92074, y=-0.390176): 0.424474816210\n    test 1810 203 203.011535517974 Xi(tan=0.424712, x=-0.920426, y=-0.390916): 0.424474816210\n\n    test 1811 210 210.125166807834 Phi(tan=0.580267, x=-1, y=-0.580267): 0.577350269190\n    test 1812 210 210.041704779944 Beta(tan=0.578321, x=-1, y=-0.578321): 0.577350269190\n    test 1813 210 209.958382432479 Theta(tan=0.576382, x=-1, y=-0.576382): 0.577350269190\n    test 1814 210 210.000000000000 Mu(tan=0.57735, x=-0.866025, y=-0.5): 0.577350269190\n    test 1815 210 209.958429134161 Chi(tan=0.576383, x=-1, y=-0.576383), iteration=3: 0.577350269190\n    test 1816 210 210.013884093401 Xi(tan=0.577673, x=-1.73958, y=-1.00491), iteration=2: 0.577350269190\n\n    test 1817 210 210.125166807834 Phi(tan=0.580267, x=-0.864931, y=-0.501891): 0.577350269190\n    test 1818 210 210.041704779944 Beta(tan=0.578321, x=-0.865661, y=-0.50063): 0.577350269190\n    test 1819 210 209.958382432479 Theta(tan=0.576382, x=-0.866388, y=-0.499371): 0.577350269190\n    test 1820 210 210.000000000000 Mu(tan=0.57735, x=-0.866025, y=-0.5): 0.577350269190\n    test 1821 210 209.958429134161 Chi(tan=0.576383, x=-0.866388, y=-0.499372): 0.577350269190\n    test 1822 210 210.013884093401 Xi(tan=0.577673, x=-0.865904, y=-0.50021): 0.577350269190\n\n    test 1823 217 217.138839575219 Phi(tan=0.75736, x=-1, y=-0.75736): 0.753554050103\n    test 1824 217 217.046269197118 Beta(tan=0.754821, x=-1, y=-0.754821): 0.753554050103\n    test 1825 217 216.953783990372 Theta(tan=0.75229, x=-1, y=-0.75229): 0.753554050103\n    test 1826 217 217.000000000000 Mu(tan=0.753554, x=-0.798636, y=-0.601815): 0.753554050103\n    test 1827 217 216.953859077076 Chi(tan=0.752292, x=-1, y=-0.752292), iteration=3: 0.753554050103\n    test 1828 217 217.015406173898 Xi(tan=0.753976, x=-1.60412, y=-1.20947), iteration=3: 0.753554050103\n\n    test 1829 217 217.138839575219 Phi(tan=0.75736, x=-0.797175, y=-0.603749): 0.753554050103\n    test 1830 217 217.046269197118 Beta(tan=0.754821, x=-0.798149, y=-0.60246): 0.753554050103\n    test 1831 217 216.953783990372 Theta(tan=0.75229, x=-0.799121, y=-0.601171): 0.753554050103\n    test 1832 217 217.000000000000 Mu(tan=0.753554, x=-0.798636, y=-0.601815): 0.753554050103\n    test 1833 217 216.953859077076 Chi(tan=0.752292, x=-0.79912, y=-0.601172): 0.753554050103\n    test 1834 217 217.015406173898 Xi(tan=0.753976, x=-0.798474, y=-0.60203): 0.753554050103\n\n    test 1835 224 224.144244585156 Phi(tan=0.970566, x=-1, y=-0.970566): 0.965688774807\n    test 1836 224 224.048080179626 Beta(tan=0.967312, x=-1, y=-0.967312): 0.965688774807\n    test 1837 224 223.951926502986 Theta(tan=0.964069, x=-1, y=-0.964069): 0.965688774807\n    test 1838 224 224.000000000000 Mu(tan=0.965689, x=-0.71934, y=-0.694658): 0.965688774807\n    test 1839 224 223.952030495532 Chi(tan=0.964072, x=-1, y=-0.964072), iteration=2: 0.965688774807\n    test 1840 224 224.016011983610 Xi(tan=0.966229, x=-1.44475, y=-1.39596), iteration=2: 0.965688774807\n\n    test 1841 224 224.144244585156 Phi(tan=0.970566, x=-0.717589, y=-0.696467): 0.965688774807\n    test 1842 224 224.048080179626 Beta(tan=0.967312, x=-0.718757, y=-0.695262): 0.965688774807\n    test 1843 224 223.951926502986 Theta(tan=0.964069, x=-0.719922, y=-0.694055): 0.965688774807\n    test 1844 224 224.000000000000 Mu(tan=0.965689, x=-0.71934, y=-0.694658): 0.965688774807\n    test 1845 224 223.952030495532 Chi(tan=0.964072, x=-0.719921, y=-0.694056): 0.965688774807\n    test 1846 224 224.016011983610 Xi(tan=0.966229, x=-0.719146, y=-0.694859): 0.965688774807\n\n    test 1847 231 231.141077842653 Phi(tan=1.24113, x=-1, y=-1.24113): 1.234897156535\n    test 1848 231 231.047034210293 Beta(tan=1.23697, x=-1, y=-1.23697): 1.234897156535\n    test 1849 231 230.952924380812 Theta(tan=1.23282, x=-1, y=-1.23282): 1.234897156535\n    test 1850 231 231.000000000000 Mu(tan=1.2349, x=-0.62932, y=-0.777146): 1.234897156535\n    test 1851 231 230.953051749472 Chi(tan=1.23283, x=-1, y=-1.23283), iteration=3: 1.234897156535\n    test 1852 231 231.015666416855 Xi(tan=1.23559, x=-1.26387, y=-1.56162), iteration=2: 1.234897156535\n\n    test 1853 231 231.141077842654 Phi(tan=1.24113, x=-0.627405, y=-0.778693): 1.234897156535\n    test 1854 231 231.047034210293 Beta(tan=1.23697, x=-0.628682, y=-0.777662): 1.234897156535\n    test 1855 231 230.952924380812 Theta(tan=1.23282, x=-0.629959, y=-0.776629): 1.234897156535\n    test 1856 231 231.000000000000 Mu(tan=1.2349, x=-0.62932, y=-0.777146): 1.234897156535\n    test 1857 231 230.953051749472 Chi(tan=1.23283, x=-0.629957, y=-0.77663): 1.234897156535\n    test 1858 231 231.015666416855 Xi(tan=1.23559, x=-0.629108, y=-0.777318): 1.234897156535\n\n    test 1859 238 238.129545093885 Phi(tan=1.60842, x=-1, y=-1.60842): 1.600334529041\n    test 1860 238 238.043197624299 Beta(tan=1.60302, x=-1, y=-1.60302): 1.600334529041\n    test 1861 238 237.956722543300 Theta(tan=1.59765, x=-1, y=-1.59765): 1.600334529041\n    test 1862 238 238.000000000000 Mu(tan=1.60033, x=-0.529919, y=-0.848048): 1.600334529041\n    test 1863 238 237.956861886827 Chi(tan=1.59766, x=-1, y=-1.59766), iteration=3: 1.600334529041\n    test 1864 238 238.014390916077 Xi(tan=1.60123, x=-1.06417, y=-1.70398), iteration=3: 1.600334529041\n\n    test 1865 238 238.129545093885 Phi(tan=1.60842, x=-0.528, y=-0.849244): 1.600334529041\n    test 1866 238 238.043197624299 Beta(tan=1.60302, x=-0.52928, y=-0.848447): 1.600334529041\n    test 1867 238 237.956722543300 Theta(tan=1.59765, x=-0.53056, y=-0.847648): 1.600334529041\n    test 1868 238 238.000000000000 Mu(tan=1.60033, x=-0.529919, y=-0.848048): 1.600334529041\n    test 1869 238 237.956861886827 Chi(tan=1.59766, x=-0.530558, y=-0.847649): 1.600334529041\n    test 1870 238 238.014390916077 Xi(tan=1.60123, x=-0.529706, y=-0.848181): 1.600334529041\n\n    test 1871 245 245.110345489960 Phi(tan=2.15533, x=-1, y=-2.15533): 2.144506920510\n    test 1872 245 245.036801688087 Beta(tan=2.14811, x=-1, y=-2.14811): 2.144506920510\n    test 1873 245 244.963098707662 Theta(tan=2.14091, x=-1, y=-2.14091): 2.144506920510\n    test 1874 245 245.000000000000 Mu(tan=2.14451, x=-0.422618, y=-0.906308): 2.144506920510\n    test 1875 245 244.963234330104 Chi(tan=2.14092, x=-1, y=-2.14092), iteration=2: 2.144506920510\n    test 1876 245 245.012261984604 Xi(tan=2.14571, x=-0.848642, y=-1.82094), iteration=3: 2.144506920510\n\n    test 1877 245 245.110345489960 Phi(tan=2.15533, x=-0.420872, y=-0.90712): 2.144506920510\n    test 1878 245 245.036801688087 Beta(tan=2.14811, x=-0.422036, y=-0.906579): 2.144506920510\n    test 1879 245 244.963098707662 Theta(tan=2.14091, x=-0.423202, y=-0.906035): 2.144506920510\n    test 1880 245 245.000000000000 Mu(tan=2.14451, x=-0.422618, y=-0.906308): 2.144506920510\n    test 1881 245 244.963234330104 Chi(tan=2.14092, x=-0.4232, y=-0.906036): 2.144506920510\n    test 1882 245 245.012261984604 Xi(tan=2.14571, x=-0.422424, y=-0.906398): 2.144506920510\n\n    test 1883 252 252.084626804899 Phi(tan=3.09322, x=-1, y=-3.09322): 3.077683537175\n    test 1884 252 252.028228084417 Beta(tan=3.08285, x=-1, y=-3.08285): 3.077683537175\n    test 1885 252 251.971675808314 Theta(tan=3.07251, x=-1, y=-3.07251): 3.077683537175\n    test 1886 252 252.000000000000 Mu(tan=3.07768, x=-0.309017, y=-0.951057): 3.077683537175\n    test 1887 252 251.971790388449 Chi(tan=3.07254, x=-1, y=-3.07254), iteration=3: 3.077683537175\n    test 1888 252 252.009406472364 Xi(tan=3.0794, x=-0.620495, y=-1.91076), iteration=3: 3.077683537175\n\n    test 1889 252 252.084626804899 Phi(tan=3.09322, x=-0.307612, y=-0.951512): 3.077683537175\n    test 1890 252 252.028228084417 Beta(tan=3.08285, x=-0.308548, y=-0.951209): 3.077683537175\n    test 1891 252 251.971675808314 Theta(tan=3.07251, x=-0.309487, y=-0.950904): 3.077683537175\n    test 1892 252 252.000000000000 Mu(tan=3.07768, x=-0.309017, y=-0.951057): 3.077683537175\n    test 1893 252 251.971790388449 Chi(tan=3.07254, x=-0.309485, y=-0.950904): 3.077683537175\n    test 1894 252 252.009406472364 Xi(tan=3.0794, x=-0.308861, y=-0.951107): 3.077683537175\n\n    test 1895 259 259.053915611440 Phi(tan=5.17053, x=-1, y=-5.17053): 5.144554015970\n    test 1896 259 259.017985844271 Beta(tan=5.15319, x=-1, y=-5.15319): 5.144554015970\n    test 1897 259 258.981943992803 Theta(tan=5.13591, x=-1, y=-5.13591): 5.144554015970\n    test 1898 259 259.000000000000 Mu(tan=5.14455, x=-0.190809, y=-0.981627): 5.144554015970\n    test 1899 259 258.982021780770 Chi(tan=5.13595, x=-1, y=-5.13595), iteration=2: 5.144554015970\n    test 1900 259 259.005993953740 Xi(tan=5.14743, x=-0.383125, y=-1.97211), iteration=3: 5.144554015970\n\n    test 1901 259 259.053915611440 Phi(tan=5.17053, x=-0.189885, y=-0.981806): 5.144554015970\n    test 1902 259 259.017985844271 Beta(tan=5.15319, x=-0.190501, y=-0.981687): 5.144554015970\n    test 1903 259 258.981943992803 Theta(tan=5.13591, x=-0.191118, y=-0.981567): 5.144554015970\n    test 1904 259 259.000000000000 Mu(tan=5.14455, x=-0.190809, y=-0.981627): 5.144554015970\n    test 1905 259 258.982021780770 Chi(tan=5.13595, x=-0.191117, y=-0.981567): 5.144554015970\n    test 1906 259 259.005993953740 Xi(tan=5.14743, x=-0.190706, y=-0.981647): 5.144554015970\n\n    test 1907 266 266.020026926530 Phi(tan=14.3729, x=-1, y=-14.3729): 14.300666256712\n    test 1908 266 266.006681184269 Beta(tan=14.3247, x=-1, y=-14.3247): 14.300666256712\n    test 1909 266 265.993290981931 Theta(tan=14.2766, x=-1, y=-14.2766): 14.300666256712\n    test 1910 266 266.000000000000 Mu(tan=14.3007, x=-0.0697565, y=-0.997564): 14.300666256712\n    test 1911 266 265.993320826309 Chi(tan=14.2767, x=-1, y=-14.2767), iteration=3: 14.300666256712\n    test 1912 266 266.002226669943 Xi(tan=14.3087, x=-0.140061, y=-2.00409), iteration=3: 14.300666256712\n\n    test 1913 266 266.020026926530 Phi(tan=14.3729, x=-0.0694078, y=-0.997588): 14.300666256712\n    test 1914 266 266.006681184269 Beta(tan=14.3247, x=-0.0696401, y=-0.997572): 14.300666256712\n    test 1915 266 265.993290981931 Theta(tan=14.2766, x=-0.0698733, y=-0.997556): 14.300666256712\n    test 1916 266 266.000000000000 Mu(tan=14.3007, x=-0.0697565, y=-0.997564): 14.300666256712\n    test 1917 266 265.993320826309 Chi(tan=14.2767, x=-0.0698728, y=-0.997556): 14.300666256712\n    test 1918 266 266.002226669943 Xi(tan=14.3087, x=-0.0697177, y=-0.997567): 14.300666256712\n\n    test 1919 273 272.984958603323 Phi(tan=-19.1775, x=1.0, y=-19.1775): -19.081136687728\n    test 1920 273 272.994982020871 Beta(tan=-19.1132, x=1.0, y=-19.1132): -19.081136687728\n    test 1921 273 273.005038973685 Theta(tan=-19.0491, x=1.0, y=-19.0491): -19.081136687728\n    test 1922 273 273.000000000000 Mu(tan=-19.0811, x=0.052336, y=-0.99863): -19.081136687728\n    test 1923 273 273.005016510682 Chi(tan=-19.0492, x=1.0, y=-19.0492), iteration=3: -19.081136687728\n    test 1924 273 272.998327629166 Xi(tan=-19.0918, x=0.105083, y=-2.00623), iteration=3: -19.081136687728\n\n    test 1925 273 272.984958603323 Phi(tan=-19.1775, x=0.0520738, y=-0.998643): -19.081136687728\n    test 1926 273 272.994982020871 Beta(tan=-19.1132, x=0.0522485, y=-0.998634): -19.081136687728\n    test 1927 273 273.005038973685 Theta(tan=-19.0491, x=0.0524238, y=-0.998625): -19.081136687728\n    test 1928 273 273.000000000000 Mu(tan=-19.0811, x=0.052336, y=-0.99863): -19.081136687728\n    test 1929 273 273.005016510682 Chi(tan=-19.0492, x=0.0524234, y=-0.998625): -19.081136687728\n    test 1930 273 272.998327629166 Xi(tan=-19.0918, x=0.0523068, y=-0.998631): -19.081136687728\n\n    test 1931 280 279.950776225319 Phi(tan=-5.69991, x=1.0, y=-5.69991): -5.671281819618\n    test 1932 280 279.983579145989 Beta(tan=-5.6808, x=1.0, y=-5.6808): -5.671281819618\n    test 1933 280 280.016485774700 Theta(tan=-5.66176, x=1.0, y=-5.66176): -5.671281819618\n    test 1934 280 280.000000000000 Mu(tan=-5.67128, x=0.173648, y=-0.984808): -5.671281819618\n    test 1935 280 280.016414293005 Chi(tan=-5.6618, x=1.0, y=-5.6618), iteration=3: -5.671281819618\n    test 1936 280 279.994527544579 Xi(tan=-5.67445, x=0.348667, y=-1.97849), iteration=3: -5.671281819618\n\n    test 1937 280 279.950776225319 Phi(tan=-5.69991, x=0.172802, y=-0.984957): -5.671281819618\n    test 1938 280 279.983579145989 Beta(tan=-5.6808, x=0.173366, y=-0.984857): -5.671281819618\n    test 1939 280 280.016485774700 Theta(tan=-5.66176, x=0.173932, y=-0.984758): -5.671281819618\n    test 1940 280 280.000000000000 Mu(tan=-5.67128, x=0.173648, y=-0.984808): -5.671281819618\n    test 1941 280 280.016414293005 Chi(tan=-5.6618, x=0.17393, y=-0.984758): -5.671281819618\n    test 1942 280 279.994527544579 Xi(tan=-5.67445, x=0.173554, y=-0.984824): -5.671281819618\n\n    test 1943 287 286.919494515865 Phi(tan=-3.28737, x=1.0, y=-3.28737): -3.270852618484\n    test 1944 287 286.973146172898 Beta(tan=-3.27634, x=1.0, y=-3.27634): -3.270852618484\n    test 1945 287 287.026947513630 Theta(tan=-3.26536, x=1.0, y=-3.26536): -3.270852618484\n    test 1946 287 287.000000000000 Mu(tan=-3.27085, x=0.292372, y=-0.956305): -3.270852618484\n    test 1947 287 287.026837302239 Chi(tan=-3.26538, x=1.0, y=-3.26538), iteration=3: -3.270852618484\n    test 1948 287 286.991051342914 Xi(tan=-3.27268, x=0.587069, y=-1.92129), iteration=3: -3.270852618484\n\n    test 1949 287 286.919494515865 Phi(tan=-3.28737, x=0.291028, y=-0.956715): -3.270852618484\n    test 1950 287 286.973146172898 Beta(tan=-3.27634, x=0.291923, y=-0.956442): -3.270852618484\n    test 1951 287 287.026947513630 Theta(tan=-3.26536, x=0.292821, y=-0.956167): -3.270852618484\n    test 1952 287 287.000000000000 Mu(tan=-3.27085, x=0.292372, y=-0.956305): -3.270852618484\n    test 1953 287 287.026837302239 Chi(tan=-3.26538, x=0.29282, y=-0.956168): -3.270852618484\n    test 1954 287 286.991051342914 Xi(tan=-3.27268, x=0.292222, y=-0.95635): -3.270852618484\n\n    test 1955 294 293.892961362638 Phi(tan=-2.25738, x=1.0, y=-2.25738): -2.246036773904\n    test 1956 294 293.964300405205 Beta(tan=-2.24981, x=1.0, y=-2.24981): -2.246036773904\n    test 1957 294 294.035800165821 Theta(tan=-2.24227, x=1.0, y=-2.24227): -2.246036773904\n    test 1958 294 294.000000000000 Mu(tan=-2.24604, x=0.406737, y=-0.913545): -2.246036773904\n    test 1959 294 294.035666490170 Chi(tan=-2.24228, x=1.0, y=-2.24228), iteration=3: -2.246036773904\n    test 1960 294 293.988104995444 Xi(tan=-2.24729, x=0.816745, y=-1.83546), iteration=3: -2.246036773904\n\n    test 1961 294 293.892961362638 Phi(tan=-2.25738, x=0.405029, y=-0.914304): -2.246036773904\n    test 1962 294 293.964300405205 Beta(tan=-2.24981, x=0.406167, y=-0.913799): -2.246036773904\n    test 1963 294 294.035800165821 Theta(tan=-2.24227, x=0.407307, y=-0.913291): -2.246036773904\n    test 1964 294 294.000000000000 Mu(tan=-2.24604, x=0.406737, y=-0.913545): -2.246036773904\n    test 1965 294 294.035666490170 Chi(tan=-2.24228, x=0.407305, y=-0.913292): -2.246036773904\n    test 1966 294 293.988104995444 Xi(tan=-2.24729, x=0.406547, y=-0.91363): -2.246036773904\n\n    test 1967 301 300.872750492296 Phi(tan=-1.67268, x=1.0, y=-1.67268): -1.664279482351\n    test 1968 301 300.957566748779 Beta(tan=-1.66707, x=1.0, y=-1.66707): -1.664279482351\n    test 1969 301 301.042517212699 Theta(tan=-1.66149, x=1.0, y=-1.66149): -1.664279482351\n    test 1970 301 301.000000000000 Mu(tan=-1.66428, x=0.515038, y=-0.857167): -1.664279482351\n    test 1971 301 301.042377369066 Chi(tan=-1.66149, x=1.0, y=-1.66149), iteration=3: -1.664279482351\n    test 1972 301 300.985863408886 Xi(tan=-1.66521, x=1.03428, y=-1.72229), iteration=2: -1.664279482351\n\n    test 1973 301 300.872750492296 Phi(tan=-1.67268, x=0.513133, y=-0.858309): -1.664279482351\n    test 1974 301 300.957566748779 Beta(tan=-1.66707, x=0.514403, y=-0.857549): -1.664279482351\n    test 1975 301 301.042517212699 Theta(tan=-1.66149, x=0.515674, y=-0.856785): -1.664279482351\n    test 1976 301 301.000000000000 Mu(tan=-1.66428, x=0.515038, y=-0.857167): -1.664279482351\n    test 1977 301 301.042377369066 Chi(tan=-1.66149, x=0.515672, y=-0.856786): -1.664279482351\n    test 1978 301 300.985863408886 Xi(tan=-1.66521, x=0.514827, y=-0.857294): -1.664279482351\n\n    test 1979 308 307.860068599875 Phi(tan=-1.28641, x=1.0, y=-1.28641): -1.279941632193\n    test 1980 308 307.953346674264 Beta(tan=-1.28209, x=1.0, y=-1.28209): -1.279941632193\n    test 1981 308 308.046701061231 Theta(tan=-1.27779, x=1.0, y=-1.27779): -1.279941632193\n    test 1982 308 308.000000000000 Mu(tan=-1.27994, x=0.615661, y=-0.788011): -1.279941632193\n    test 1983 308 308.046571160545 Chi(tan=-1.2778, x=1.0, y=-1.2778), iteration=3: -1.279941632193\n    test 1984 308 307.984460065878 Xi(tan=-1.28066, x=1.23642, y=-1.58343), iteration=3: -1.279941632193\n\n    test 1985 308 307.860068599875 Phi(tan=-1.28641, x=0.613735, y=-0.789512): -1.279941632193\n    test 1986 308 307.953346674264 Beta(tan=-1.28209, x=0.61502, y=-0.788512): -1.279941632193\n    test 1987 308 308.046701061231 Theta(tan=-1.27779, x=0.616304, y=-0.787509): -1.279941632193\n    test 1988 308 308.000000000000 Mu(tan=-1.27994, x=0.615661, y=-0.788011): -1.279941632193\n    test 1989 308 308.046571160545 Chi(tan=-1.2778, x=0.616302, y=-0.78751): -1.279941632193\n    test 1990 308 307.984460065878 Xi(tan=-1.28066, x=0.615448, y=-0.788178): -1.279941632193\n\n    test 1991 315 314.855682294112 Phi(tan=-1.00505, x=1.0, y=-1.00505): -1.000000000000\n    test 1992 315 314.951894037750 Beta(tan=-1.00168, x=1.0, y=-1.00168): -1.000000000000\n    test 1993 315 315.048106323978 Theta(tan=-0.998322, x=1.0, y=-0.998322): -1.000000000000\n    test 1994 315 315.000000000000 Mu(tan=-1, x=0.707107, y=-0.707107): -1.000000000000\n    test 1995 315 315.047998507775 Chi(tan=-0.998326, x=1.0, y=-0.998326), iteration=3: -1.000000000000\n    test 1996 315 314.983979022806 Xi(tan=-1.00056, x=1.42017, y=-1.42096), iteration=2: -1.000000000000\n\n    test 1997 315 314.855682294112 Phi(tan=-1.00505, x=0.705323, y=-0.708886): -1.000000000000\n    test 1998 315 314.951894037750 Beta(tan=-1.00168, x=0.706513, y=-0.7077): -1.000000000000\n    test 1999 315 315.048106323978 Theta(tan=-0.998322, x=0.7077, y=-0.706513): -1.000000000000\n    test 2000 315 315.000000000000 Mu(tan=-1, x=0.707107, y=-0.707107): -1.000000000000\n    test 2001 315 315.047998507775 Chi(tan=-0.998326, x=0.707699, y=-0.706514): -1.000000000000\n    test 2002 315 314.983979022806 Xi(tan=-1.00056, x=0.706909, y=-0.707304): -1.000000000000\n\n    test 2003 322 321.859869499768 Phi(tan=-0.785232, x=1.0, y=-0.785232): -0.781285626507\n    test 2004 322 321.953299269346 Beta(tan=-0.782599, x=1.0, y=-0.782599): -0.781285626507\n    test 2005 322 322.046653656044 Theta(tan=-0.779975, x=1.0, y=-0.779975): -0.781285626507\n    test 2006 322 322.000000000000 Mu(tan=-0.781286, x=0.788011, y=-0.615661): -0.781285626507\n    test 2007 322 322.046574337734 Chi(tan=-0.779977, x=1.0, y=-0.779977), iteration=2: -0.781285626507\n    test 2008 322 321.984449756665 Xi(tan=-0.781723, x=1.58276, y=-1.23728), iteration=3: -0.781285626507\n\n    test 2009 322 321.859869499768 Phi(tan=-0.785232, x=0.786503, y=-0.617587): -0.781285626507\n    test 2010 322 321.953299269346 Beta(tan=-0.782599, x=0.787509, y=-0.616304): -0.781285626507\n    test 2011 322 322.046653656044 Theta(tan=-0.779975, x=0.788512, y=-0.61502): -0.781285626507\n    test 2012 322 322.000000000000 Mu(tan=-0.781286, x=0.788011, y=-0.615661): -0.781285626507\n    test 2013 322 322.046574337734 Chi(tan=-0.779977, x=0.788511, y=-0.615021): -0.781285626507\n    test 2014 322 321.984449756665 Xi(tan=-0.781723, x=0.787844, y=-0.615875): -0.781285626507\n\n    test 2015 329 328.872398901328 Phi(tan=-0.603896, x=1.0, y=-0.603896): -0.600860619028\n    test 2016 329 328.957483036491 Beta(tan=-0.601871, x=1.0, y=-0.601871): -0.600860619028\n    test 2017 329 329.042433500019 Theta(tan=-0.599853, x=1.0, y=-0.599853): -0.600860619028\n    test 2018 329 329.000000000000 Mu(tan=-0.600861, x=0.857167, y=-0.515038): -0.600860619028\n    test 2019 329 329.042382979662 Chi(tan=-0.599854, x=1.0, y=-0.599854), iteration=3: -0.600860619028\n    test 2020 329 328.985845203875 Xi(tan=-0.601197, x=1.72178, y=-1.03513), iteration=2: -0.600860619028\n\n    test 2021 329 328.872398901328 Phi(tan=-0.603896, x=0.856018, y=-0.516946): -0.600860619028\n    test 2022 329 328.957483036491 Beta(tan=-0.601871, x=0.856785, y=-0.515674): -0.600860619028\n    test 2023 329 329.042433500019 Theta(tan=-0.599853, x=0.857549, y=-0.514403): -0.600860619028\n    test 2024 329 329.000000000000 Mu(tan=-0.600861, x=0.857167, y=-0.515038): -0.600860619028\n    test 2025 329 329.042382979662 Chi(tan=-0.599854, x=0.857548, y=-0.514404): -0.600860619028\n    test 2026 329 328.985845203875 Xi(tan=-0.601197, x=0.85704, y=-0.51525): -0.600860619028\n\n    test 2027 336 335.892539588775 Phi(tan=-0.447478, x=1.0, y=-0.447478): -0.445228685309\n    test 2028 336 335.964199982805 Beta(tan=-0.445978, x=1.0, y=-0.445978): -0.445228685309\n    test 2029 336 336.035699743087 Theta(tan=-0.444482, x=1.0, y=-0.444482): -0.445228685309\n    test 2030 336 336.000000000000 Mu(tan=-0.445229, x=0.913545, y=-0.406737): -0.445228685309\n    test 2031 336 336.035673220720 Chi(tan=-0.444483, x=1.0, y=-0.444483), iteration=2: -0.445228685309\n    test 2032 336 335.988083156490 Xi(tan=-0.445478, x=1.83512, y=-0.817507), iteration=3: -0.445228685309\n\n    test 2033 336 335.892539588775 Phi(tan=-0.447478, x=0.912781, y=-0.408449): -0.445228685309\n    test 2034 336 335.964199982805 Beta(tan=-0.445978, x=0.913291, y=-0.407307): -0.445228685309\n    test 2035 336 336.035699743087 Theta(tan=-0.444482, x=0.913799, y=-0.406167): -0.445228685309\n    test 2036 336 336.000000000000 Mu(tan=-0.445229, x=0.913545, y=-0.406737): -0.445228685309\n    test 2037 336 336.035673220720 Chi(tan=-0.444483, x=0.913799, y=-0.406168): -0.445228685309\n    test 2038 336 335.988083156490 Xi(tan=-0.445478, x=0.913461, y=-0.406927): -0.445228685309\n\n    test 2039 343 342.919101298136 Phi(tan=-0.307275, x=1.0, y=-0.307275): -0.305730681459\n    test 2040 343 342.973052549710 Beta(tan=-0.306245, x=1.0, y=-0.306245): -0.305730681459\n    test 2041 343 343.026853890266 Theta(tan=-0.305218, x=1.0, y=-0.305218): -0.305730681459\n    test 2042 343 343.000000000000 Mu(tan=-0.305731, x=0.956305, y=-0.292372): -0.305730681459\n    test 2043 343 343.026843577092 Chi(tan=-0.305218, x=1.0, y=-0.305218), iteration=3: -0.305730681459\n    test 2044 343 342.991030982615 Xi(tan=-0.305902, x=1.92111, y=-0.58767), iteration=3: -0.305730681459\n\n    test 2045 343 342.919101298136 Phi(tan=-0.307275, x=0.955891, y=-0.293722): -0.305730681459\n    test 2046 343 342.973052549710 Beta(tan=-0.306245, x=0.956167, y=-0.292821): -0.305730681459\n    test 2047 343 343.026853890266 Theta(tan=-0.305218, x=0.956442, y=-0.291923): -0.305730681459\n    test 2048 343 343.000000000000 Mu(tan=-0.305731, x=0.956305, y=-0.292372): -0.305730681459\n    test 2049 343 343.026843577092 Chi(tan=-0.305218, x=0.956442, y=-0.291924): -0.305730681459\n    test 2050 343 342.991030982615 Xi(tan=-0.305902, x=0.956259, y=-0.292521): -0.305730681459\n\n    test 2051 350 349.950503618765 Phi(tan=-0.177218, x=1.0, y=-0.177218): -0.176326980708\n    test 2052 350 349.983514239795 Beta(tan=-0.176624, x=1.0, y=-0.176624): -0.176326980708\n    test 2053 350 350.016420868461 Theta(tan=-0.176031, x=1.0, y=-0.176031): -0.176326980708\n    test 2054 350 350.000000000000 Mu(tan=-0.176327, x=0.984808, y=-0.173648): -0.176326980708\n    test 2055 350 350.016418643178 Chi(tan=-0.176032, x=1.0, y=-0.176032), iteration=3: -0.176326980708\n    test 2056 350 349.994513429399 Xi(tan=-0.176426, x=1.97843, y=-0.349045), iteration=3: -0.176326980708\n\n    test 2057 350 349.950503618765 Phi(tan=-0.177218, x=0.984657, y=-0.174499): -0.176326980708\n    test 2058 350 349.983514239795 Beta(tan=-0.176624, x=0.984758, y=-0.173932): -0.176326980708\n    test 2059 350 350.016420868461 Theta(tan=-0.176031, x=0.984857, y=-0.173366): -0.176326980708\n    test 2060 350 350.000000000000 Mu(tan=-0.176327, x=0.984808, y=-0.173648): -0.176326980708\n    test 2061 350 350.016418643178 Chi(tan=-0.176032, x=0.984857, y=-0.173366): -0.176326980708\n    test 2062 350 349.994513429399 Xi(tan=-0.176426, x=0.984791, y=-0.173742): -0.176326980708\n\n    test 2063 357 356.984870427697 Phi(tan=-0.0526726, x=1.0, y=-0.0526726): -0.052407779283\n    test 2064 357 356.994961026729 Beta(tan=-0.052496, x=1.0, y=-0.052496): -0.052407779283\n    test 2065 357 357.005017979541 Theta(tan=-0.05232, x=1.0, y=-0.05232): -0.052407779283\n    test 2066 357 357.000000000000 Mu(tan=-0.0524078, x=0.99863, y=-0.052336): -0.052407779283\n    test 2067 357 357.005017917762 Chi(tan=-0.05232, x=1.0, y=-0.05232), iteration=3: -0.052407779283\n    test 2068 357 356.998323063562 Xi(tan=-0.0524371, x=2.00622, y=-0.105201), iteration=3: -0.052407779283\n\n    test 2069 357 356.984870427697 Phi(tan=-0.0526726, x=0.998616, y=-0.0525997): -0.052407779283\n    test 2070 357 356.994961026729 Beta(tan=-0.052496, x=0.998625, y=-0.0524238): -0.052407779283\n    test 2071 357 357.005017979541 Theta(tan=-0.05232, x=0.998634, y=-0.0522485): -0.052407779283\n    test 2072 357 357.000000000000 Mu(tan=-0.0524078, x=0.99863, y=-0.052336): -0.052407779283\n    test 2073 357 357.005017917762 Chi(tan=-0.05232, x=0.998634, y=-0.0522485): -0.052407779283\n    test 2074 357 356.998323063562 Xi(tan=-0.0524371, x=0.998628, y=-0.0523652): -0.052407779283\n\n    test 2075  0 0.000000000000 Phi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 2076  0 0.000000000000 Beta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 2077  0 0.000000000000 Theta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 2078  0 0.000000000000 Mu(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 2079  0 0.000000000000 Chi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 2080  0 0.000000000000 Xi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n\n    test 2081  0 0.000000000000 Phi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 2082  0 0.000000000000 Beta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 2083  0 0.000000000000 Theta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 2084  0 0.000000000000 Mu(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 2085  0 0.000000000000 Chi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 2086  0 0.000000000000 Xi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n\n    test 2087  7 7.000000000000 Phi(tan=0.122785, x=0.992546, y=0.121869): 0.122784560903\n    test 2088  7 6.976762016136 Beta(tan=0.122373, x=0.992546, y=0.121461): 0.122784560903\n    test 2089  7 6.953599649493 Theta(tan=0.121963, x=0.992546, y=0.121054): 0.122784560903\n    test 2090  7 6.965157241116 Mu(tan=0.122167, x=0.99262, y=0.121266), iteration=3: 0.122784560903\n    test 2091  7 6.953600413381 Chi(tan=0.121963, x=1.0, y=0.121963), iteration=2: 0.122784560903\n    test 2092  7 6.969019299974 Xi(tan=0.122236, x=1.99414, y=0.243755), iteration=3: 0.122784560903\n\n    test 2093  7 7.000000000000 Phi(tan=0.122785, x=0.992546, y=0.121869): 0.122784560903\n    test 2094  7 6.976762016136 Beta(tan=0.122373, x=0.992595, y=0.121467): 0.122784560903\n    test 2095  7 6.953599649493 Theta(tan=0.121963, x=0.992645, y=0.121066): 0.122784560903\n    test 2096  7 6.965157241116 Mu(tan=0.122167, x=0.99262, y=0.121266): 0.122784560903\n    test 2097  7 6.953600413381 Chi(tan=0.121963, x=0.992645, y=0.121066): 0.122784560903\n    test 2098  7 6.969019299974 Xi(tan=0.122236, x=0.992612, y=0.121333): 0.122784560903\n\n    test 2099 14 14.000000000000 Phi(tan=0.249328, x=0.970296, y=0.241922): 0.249328002843\n    test 2100 14 13.954897969322 Beta(tan=0.248492, x=0.970296, y=0.241111): 0.249328002843\n    test 2101 14 13.909929594324 Theta(tan=0.247659, x=0.970296, y=0.240302): 0.249328002843\n    test 2102 14 13.932372077582 Mu(tan=0.248075, x=0.970581, y=0.240776), iteration=3: 0.249328002843\n    test 2103 14 13.909935440611 Chi(tan=0.247659, x=1.0, y=0.247659), iteration=3: 0.249328002843\n    test 2104 14 13.939869149632 Xi(tan=0.248214, x=1.94981, y=0.48397), iteration=3: 0.249328002843\n\n    test 2105 14 14.000000000000 Phi(tan=0.249328, x=0.970296, y=0.241922): 0.249328002843\n    test 2106 14 13.954897969322 Beta(tan=0.248492, x=0.970486, y=0.241158): 0.249328002843\n    test 2107 14 13.909929594324 Theta(tan=0.247659, x=0.970675, y=0.240396): 0.249328002843\n    test 2108 14 13.932372077582 Mu(tan=0.248075, x=0.970581, y=0.240776): 0.249328002843\n    test 2109 14 13.909935440611 Chi(tan=0.247659, x=0.970675, y=0.240396): 0.249328002843\n    test 2110 14 13.939869149632 Xi(tan=0.248214, x=0.970549, y=0.240903): 0.249328002843\n\n    test 2111 21 21.000000000000 Phi(tan=0.383864, x=0.93358, y=0.358368): 0.383864035035\n    test 2112 21 20.935701709947 Beta(tan=0.382577, x=0.93358, y=0.357166): 0.383864035035\n    test 2113 21 20.871564019024 Theta(tan=0.381294, x=0.93358, y=0.355969): 0.383864035035\n    test 2114 21 20.903582743391 Mu(tan=0.381935, x=0.934182, y=0.356796), iteration=3: 0.383864035035\n    test 2115 21 20.871582327745 Chi(tan=0.381295, x=1.0, y=0.381295), iteration=2: 0.383864035035\n    test 2116 21 20.914273669704 Xi(tan=0.382148, x=1.87662, y=0.717147), iteration=3: 0.383864035035\n\n    test 2117 21 21.000000000000 Phi(tan=0.383864, x=0.93358, y=0.358368): 0.383864035035\n    test 2118 21 20.935701709947 Beta(tan=0.382577, x=0.933982, y=0.35732): 0.383864035035\n    test 2119 21 20.871564019024 Theta(tan=0.381294, x=0.934381, y=0.356274): 0.383864035035\n    test 2120 21 20.903582743391 Mu(tan=0.381935, x=0.934182, y=0.356796): 0.383864035035\n    test 2121 21 20.871582327745 Chi(tan=0.381295, x=0.934381, y=0.356275): 0.383864035035\n    test 2122 21 20.914273669703 Xi(tan=0.382148, x=0.934116, y=0.356971): 0.383864035035\n\n    test 2123 28 28.000000000000 Phi(tan=0.531709, x=0.882948, y=0.469472): 0.531709431661\n    test 2124 28 27.920311317014 Beta(tan=0.529927, x=0.882948, y=0.467898): 0.531709431661\n    test 2125 28 27.840772765521 Theta(tan=0.52815, x=0.882948, y=0.466329): 0.531709431661\n    test 2126 28 27.880495175823 Mu(tan=0.529037, x=0.883925, y=0.467629), iteration=2: 0.531709431661\n    test 2127 28 27.840811762412 Chi(tan=0.528151, x=1.0, y=0.528151), iteration=2: 0.531709431661\n    test 2128 28 27.893749908688 Xi(tan=0.529333, x=1.77557, y=0.939868), iteration=2: 0.531709431661\n\n    test 2129 28 28.000000000000 Phi(tan=0.531709, x=0.882948, y=0.469472): 0.531709431661\n    test 2130 28 27.920311317014 Beta(tan=0.529927, x=0.8836, y=0.468243): 0.531709431661\n    test 2131 28 27.840772765521 Theta(tan=0.52815, x=0.884249, y=0.467016): 0.531709431661\n    test 2132 28 27.880495175823 Mu(tan=0.529037, x=0.883925, y=0.467629): 0.531709431661\n    test 2133 28 27.840811762412 Chi(tan=0.528151, x=0.884249, y=0.467017): 0.531709431661\n    test 2134 28 27.893749908688 Xi(tan=0.529333, x=0.883817, y=0.467833): 0.531709431661\n\n    test 2135 35 35.000000000000 Phi(tan=0.700208, x=0.819152, y=0.573576): 0.700207538210\n    test 2136 35 34.909642037079 Beta(tan=0.69786, x=0.819152, y=0.571653): 0.700207538210\n    test 2137 35 34.819388702350 Theta(tan=0.69552, x=0.819152, y=0.569737): 0.700207538210\n    test 2138 35 34.864482701692 Mu(tan=0.696688, x=0.820506, y=0.571637), iteration=3: 0.700207538210\n    test 2139 35 34.819454815840 Chi(tan=0.695522, x=1.0, y=0.695522), iteration=3: 0.700207538210\n    test 2140 35 34.879518549737 Xi(tan=0.697078, x=1.64808, y=1.14884), iteration=3: 0.700207538210\n\n    test 2141 35 35.000000000000 Phi(tan=0.700208, x=0.819152, y=0.573576): 0.700207538210\n    test 2142 35 34.909642037079 Beta(tan=0.69786, x=0.820056, y=0.572284): 0.700207538210\n    test 2143 35 34.819388702350 Theta(tan=0.69552, x=0.820956, y=0.570991): 0.700207538210\n    test 2144 35 34.864482701692 Mu(tan=0.696688, x=0.820506, y=0.571637): 0.700207538210\n    test 2145 35 34.819454815840 Chi(tan=0.695522, x=0.820955, y=0.570992): 0.700207538210\n    test 2146 35 34.879518549737 Xi(tan=0.697078, x=0.820356, y=0.571853): 0.700207538210\n\n    test 2147 42 42.000000000000 Phi(tan=0.900404, x=0.743145, y=0.669131): 0.900404044298\n    test 2148 42 41.904331700939 Beta(tan=0.897385, x=0.743145, y=0.666887): 0.900404044298\n    test 2149 42 41.808698047037 Theta(tan=0.894376, x=0.743145, y=0.664651): 0.900404044298\n    test 2150 42 41.856504060443 Mu(tan=0.895879, x=0.744818, y=0.667267), iteration=2: 0.900404044298\n    test 2151 42 41.808793486106 Chi(tan=0.894379, x=1.0, y=0.894379), iteration=3: 0.900404044298\n    test 2152 42 41.872431075863 Xi(tan=0.896381, x=1.49595, y=1.34094), iteration=3: 0.900404044298\n\n    test 2153 42 42.000000000000 Phi(tan=0.900404, x=0.743145, y=0.669131): 0.900404044298\n    test 2154 42 41.904331700939 Beta(tan=0.897385, x=0.744261, y=0.667889): 0.900404044298\n    test 2155 42 41.808698047037 Theta(tan=0.894376, x=0.745375, y=0.666646): 0.900404044298\n    test 2156 42 41.856504060443 Mu(tan=0.895879, x=0.744818, y=0.667267): 0.900404044298\n    test 2157 42 41.808793486106 Chi(tan=0.894379, x=0.745374, y=0.666647): 0.900404044298\n    test 2158 42 41.872431075863 Xi(tan=0.896381, x=0.744633, y=0.667474): 0.900404044298\n\n    test 2159 49 49.000000000000 Phi(tan=1.15037, x=0.656059, y=0.75471): 1.150368407221\n    test 2160 49 48.904701906378 Beta(tan=1.14651, x=0.656059, y=0.752179): 1.150368407221\n    test 2161 49 48.809360314692 Theta(tan=1.14267, x=0.656059, y=0.749657): 1.150368407221\n    test 2162 49 48.857044717775 Mu(tan=1.14459, x=0.65794, y=0.75307), iteration=3: 1.150368407221\n    test 2163 49 48.809481485365 Chi(tan=1.14267, x=1.0, y=1.14267), iteration=2: 1.150368407221\n    test 2164 49 48.872917788725 Xi(tan=1.14523, x=1.32137, y=1.51327), iteration=2: 1.150368407221\n\n    test 2165 49 49.000000000000 Phi(tan=1.15037, x=0.656059, y=0.75471): 1.150368407221\n    test 2166 49 48.904701906378 Beta(tan=1.14651, x=0.657313, y=0.753617): 1.150368407221\n    test 2167 49 48.809360314692 Theta(tan=1.14267, x=0.658567, y=0.752523): 1.150368407221\n    test 2168 49 48.857044717775 Mu(tan=1.14459, x=0.65794, y=0.75307): 1.150368407221\n    test 2169 49 48.809481485365 Chi(tan=1.14267, x=0.658565, y=0.752524): 1.150368407221\n    test 2170 49 48.872917788725 Xi(tan=1.14523, x=0.657731, y=0.753253): 1.150368407221\n\n    test 2171 56 56.000000000000 Phi(tan=1.48256, x=0.559193, y=0.829038): 1.482560968513\n    test 2172 56 55.910737485374 Beta(tan=1.47759, x=0.559193, y=0.826258): 1.482560968513\n    test 2173 56 55.821363467296 Theta(tan=1.47264, x=0.559193, y=0.823488): 1.482560968513\n    test 2174 56 55.866085351958 Mu(tan=1.47511, x=0.561129, y=0.827728), iteration=3: 1.482560968513\n    test 2175 56 55.821500669702 Chi(tan=1.47264, x=1.0, y=1.47264), iteration=2: 1.482560968513\n    test 2176 56 55.880960089169 Xi(tan=1.47594, x=1.12687, y=1.66318), iteration=3: 1.482560968513\n\n    test 2177 56 56.000000000000 Phi(tan=1.48256, x=0.559193, y=0.829038): 1.482560968513\n    test 2178 56 55.910737485374 Beta(tan=1.47759, x=0.560484, y=0.828165): 1.482560968513\n    test 2179 56 55.821363467296 Theta(tan=1.47264, x=0.561775, y=0.82729): 1.482560968513\n    test 2180 56 55.866085351958 Mu(tan=1.47511, x=0.561129, y=0.827728): 1.482560968513\n    test 2181 56 55.821500669702 Chi(tan=1.47264, x=0.561773, y=0.827291): 1.482560968513\n    test 2182 56 55.880960089169 Xi(tan=1.47594, x=0.560914, y=0.827874): 1.482560968513\n\n    test 2183 63 63.000000000000 Phi(tan=1.96261, x=0.45399, y=0.891007): 1.962610505505\n    test 2184 63 62.922085806991 Beta(tan=1.95603, x=0.45399, y=0.888019): 1.962610505505\n    test 2185 63 62.844018233783 Theta(tan=1.94947, x=0.45399, y=0.885042): 1.962610505505\n    test 2186 63 62.883100004844 Mu(tan=1.95275, x=0.455807, y=0.890078), iteration=3: 1.962610505505\n    test 2187 63 62.844156794245 Chi(tan=1.94948, x=1.0, y=1.94948), iteration=3: 1.962610505505\n    test 2188 63 62.896089166605 Xi(tan=1.95384, x=0.915303, y=1.78836), iteration=3: 1.962610505505\n\n    test 2189 63 63.000000000000 Phi(tan=1.96261, x=0.45399, y=0.891007): 1.962610505505\n    test 2190 63 62.922085806991 Beta(tan=1.95603, x=0.455202, y=0.890388): 1.962610505505\n    test 2191 63 62.844018233783 Theta(tan=1.94947, x=0.456414, y=0.889767): 1.962610505505\n    test 2192 63 62.883100004844 Mu(tan=1.95275, x=0.455807, y=0.890078): 1.962610505505\n    test 2193 63 62.844156794245 Chi(tan=1.94948, x=0.456412, y=0.889768): 1.962610505505\n    test 2194 63 62.896089166605 Xi(tan=1.95384, x=0.455606, y=0.890182): 1.962610505505\n\n    test 2195 70 70.000000000000 Phi(tan=2.74748, x=0.34202, y=0.939693): 2.747477419455\n    test 2196 70 69.938076331685 Beta(tan=2.73827, x=0.34202, y=0.936542): 2.747477419455\n    test 2197 70 69.875993436424 Theta(tan=2.72908, x=0.34202, y=0.933402): 2.747477419455\n    test 2198 70 69.907084709374 Mu(tan=2.73368, x=0.343544, y=0.939137), iteration=2: 2.747477419455\n    test 2199 70 69.876116092580 Chi(tan=2.7291, x=1.0, y=2.7291), iteration=3: 2.747477419455\n    test 2200 70 69.917411740864 Xi(tan=2.7352, x=0.689832, y=1.88683), iteration=3: 2.747477419455\n\n    test 2201 70 70.000000000000 Phi(tan=2.74748, x=0.34202, y=0.939693): 2.747477419455\n    test 2202 70 69.938076331685 Beta(tan=2.73827, x=0.343036, y=0.939322): 2.747477419455\n    test 2203 70 69.875993436424 Theta(tan=2.72908, x=0.344053, y=0.93895): 2.747477419455\n    test 2204 70 69.907084709374 Mu(tan=2.73368, x=0.343544, y=0.939137): 2.747477419455\n    test 2205 70 69.876116092580 Chi(tan=2.7291, x=0.344051, y=0.938951): 2.747477419455\n    test 2206 70 69.917411740864 Xi(tan=2.7352, x=0.343374, y=0.939199): 2.747477419455\n\n    test 2207 77 77.000000000000 Phi(tan=4.33148, x=0.224951, y=0.97437): 4.331475874284\n    test 2208 77 76.957759584883 Beta(tan=4.31695, x=0.224951, y=0.971103): 4.331475874284\n    test 2209 77 76.915391564534 Theta(tan=4.30248, x=0.224951, y=0.967847): 4.331475874284\n    test 2210 77 76.936615512426 Mu(tan=4.30972, x=0.226029, y=0.974121), iteration=3: 4.331475874284\n    test 2211 77 76.915481614667 Chi(tan=4.30251, x=1.0, y=4.30251), iteration=3: 4.331475874284\n    test 2212 77 76.943661825901 Xi(tan=4.31213, x=0.453847, y=1.95704), iteration=3: 4.331475874284\n\n    test 2213 77 77.000000000000 Phi(tan=4.33148, x=0.224951, y=0.97437): 4.331475874284\n    test 2214 77 76.957759584883 Beta(tan=4.31695, x=0.225669, y=0.974204): 4.331475874284\n    test 2215 77 76.915391564534 Theta(tan=4.30248, x=0.22639, y=0.974037): 4.331475874284\n    test 2216 77 76.936615512426 Mu(tan=4.30972, x=0.226029, y=0.974121): 4.331475874284\n    test 2217 77 76.915481614667 Chi(tan=4.30251, x=0.226388, y=0.974037): 4.331475874284\n    test 2218 77 76.943661825901 Xi(tan=4.31213, x=0.225909, y=0.974148): 4.331475874284\n\n    test 2219 84 84.000000000000 Phi(tan=9.51436, x=0.104528, y=0.994522): 9.514364454223\n    test 2220 84 83.979963440552 Beta(tan=9.48246, x=0.104528, y=0.991187): 9.514364454223\n    test 2221 84 83.959860961536 Theta(tan=9.45067, x=0.104528, y=0.987864): 9.514364454223\n    test 2222 84 83.969932834829 Mu(tan=9.46657, x=0.10505, y=0.994467), iteration=3: 9.514364454223\n    test 2223 84 83.959905488972 Chi(tan=9.45074, x=1.0, y=9.45074), iteration=3: 9.514364454223\n    test 2224 84 83.973275752467 Xi(tan=9.47186, x=0.210927, y=1.99788), iteration=3: 9.514364454223\n\n    test 2225 84 84.000000000000 Phi(tan=9.51436, x=0.104528, y=0.994522): 9.514364454223\n    test 2226 84 83.979963440552 Beta(tan=9.48246, x=0.104876, y=0.994485): 9.514364454223\n    test 2227 84 83.959860961536 Theta(tan=9.45067, x=0.105225, y=0.994448): 9.514364454223\n    test 2228 84 83.969932834829 Mu(tan=9.46657, x=0.10505, y=0.994467): 9.514364454223\n    test 2229 84 83.959905488972 Chi(tan=9.45074, x=0.105224, y=0.994449): 9.514364454223\n    test 2230 84 83.973275752467 Xi(tan=9.47186, x=0.104992, y=0.994473): 9.514364454223\n\n    test 2231 91 91.000000000000 Phi(tan=-57.29, x=-0.0174524, y=0.999848): -57.289961630759\n    test 2232 91 91.003363403239 Beta(tan=-57.0979, x=-0.0174524, y=0.996495): -57.289961630759\n    test 2233 91 91.006738114317 Theta(tan=-56.9064, x=-0.0174524, y=0.993154): -57.289961630759\n    test 2234 91 91.005047219150 Mu(tan=-57.0022, x=-0.0175405, y=0.999846), iteration=2: -57.289961630759\n    test 2235 91 91.006730558280 Chi(tan=-56.9069, x=-1, y=56.9069), iteration=3: -57.289961630759\n    test 2236 91 91.004486042138 Xi(tan=-57.0341, x=-0.0352188, y=2.00867), iteration=3: -57.289961630759\n\n    test 2237 91 91.000000000000 Phi(tan=-57.29, x=-0.0174524, y=0.999848): -57.289961630759\n    test 2238 91 91.003363403239 Beta(tan=-57.0979, x=-0.0175111, y=0.999847): -57.289961630760  FAILED, KNOWN (6.07726e-15), expected -57.289961630759\n    test 2239 91 91.006738114317 Theta(tan=-56.9064, x=-0.01757, y=0.999846): -57.289961630760  FAILED, KNOWN (2.48051e-15), expected -57.289961630759\n    test 2240 91 91.005047219150 Mu(tan=-57.0022, x=-0.0175405, y=0.999846): -57.289961630760  FAILED, KNOWN (8.6818e-15), expected -57.289961630759\n    test 2241 91 91.006730558280 Chi(tan=-56.9069, x=-0.0175699, y=0.999846): -57.289961630759\n    test 2242 91 91.004486042138 Xi(tan=-57.0341, x=-0.0175307, y=0.999846): -57.289961630759\n\n    test 2243 98 98.000000000000 Phi(tan=-7.11537, x=-0.139173, y=0.990268): -7.115369722384\n    test 2244 98 98.026562562307 Beta(tan=-7.09151, x=-0.139173, y=0.986948): -7.115369722384\n    test 2245 98 98.053210993331 Theta(tan=-7.06774, x=-0.139173, y=0.983639): -7.115369722384\n    test 2246 98 98.039859900320 Mu(tan=-7.07963, x=-0.139862, y=0.990171), iteration=3: -7.115369722384\n    test 2247 98 98.053152474664 Chi(tan=-7.06779, x=-1, y=7.06779), iteration=3: -7.115369722384\n    test 2248 98 98.035428327772 Xi(tan=-7.08359, x=-0.280826, y=1.98926), iteration=2: -7.115369722384\n\n    test 2249 98 98.000000000000 Phi(tan=-7.11537, x=-0.139173, y=0.990268): -7.115369722384\n    test 2250 98 98.026562562307 Beta(tan=-7.09151, x=-0.139632, y=0.990203): -7.115369722384\n    test 2251 98 98.053210993331 Theta(tan=-7.06774, x=-0.140093, y=0.990138): -7.115369722384\n    test 2252 98 98.039859900320 Mu(tan=-7.07963, x=-0.139862, y=0.990171): -7.115369722384\n    test 2253 98 98.053152474664 Chi(tan=-7.06779, x=-0.140092, y=0.990139): -7.115369722384\n    test 2254 98 98.035428327772 Xi(tan=-7.08359, x=-0.139785, y=0.990182): -7.115369722384\n\n    test 2255 105 105.000000000000 Phi(tan=-3.73205, x=-0.258819, y=0.965926): -3.732050807569\n    test 2256 105 105.048176169243 Beta(tan=-3.71954, x=-0.258819, y=0.962687): -3.732050807569\n    test 2257 105 105.096492525996 Theta(tan=-3.70707, x=-0.258819, y=0.95946): -3.732050807569\n    test 2258 105 105.072290473972 Mu(tan=-3.7133, x=-0.260038, y=0.965599), iteration=3: -3.732050807569\n    test 2259 105 105.096391619832 Chi(tan=-3.70709, x=-1, y=3.70709), iteration=3: -3.732050807569\n    test 2260 105 105.064254515857 Xi(tan=-3.71538, x=-0.522138, y=1.93994), iteration=2: -3.732050807569\n\n    test 2261 105 105.000000000000 Phi(tan=-3.73205, x=-0.258819, y=0.965926): -3.732050807569\n    test 2262 105 105.048176169243 Beta(tan=-3.71954, x=-0.259631, y=0.965708): -3.732050807569\n    test 2263 105 105.096492525996 Theta(tan=-3.70707, x=-0.260445, y=0.965489): -3.732050807569\n    test 2264 105 105.072290473972 Mu(tan=-3.7133, x=-0.260038, y=0.965599): -3.732050807569\n    test 2265 105 105.096391619832 Chi(tan=-3.70709, x=-0.260444, y=0.965489): -3.732050807569\n    test 2266 105 105.064254515857 Xi(tan=-3.71538, x=-0.259902, y=0.965635): -3.732050807569\n\n    test 2267 112 112.000000000000 Phi(tan=-2.47509, x=-0.374607, y=0.927184): -2.475086853416\n    test 2268 112 112.066915437341 Beta(tan=-2.46679, x=-0.374607, y=0.924075): -2.475086853416\n    test 2269 112 112.133992362411 Theta(tan=-2.45852, x=-0.374607, y=0.920977): -2.475086853416\n    test 2270 112 112.100403370338 Mu(tan=-2.46265, x=-0.376231, y=0.926526), iteration=3: -2.475086853416\n    test 2271 112 112.133863370700 Chi(tan=-2.45853, x=-1, y=2.45853), iteration=3: -2.475086853416\n    test 2272 112 112.089244898668 Xi(tan=-2.46403, x=-0.755478, y=1.86152), iteration=3: -2.475086853416\n\n    test 2273 112 112.000000000000 Phi(tan=-2.47509, x=-0.374607, y=0.927184): -2.475086853416\n    test 2274 112 112.066915437341 Beta(tan=-2.46679, x=-0.375689, y=0.926746): -2.475086853416\n    test 2275 112 112.133992362411 Theta(tan=-2.45852, x=-0.376774, y=0.926305): -2.475086853416\n    test 2276 112 112.100403370338 Mu(tan=-2.46265, x=-0.376231, y=0.926526): -2.475086853416\n    test 2277 112 112.133863370700 Chi(tan=-2.45853, x=-0.376772, y=0.926306): -2.475086853416\n    test 2278 112 112.089244898668 Xi(tan=-2.46403, x=-0.37605, y=0.926599): -2.475086853416\n\n    test 2279 119 119.000000000000 Phi(tan=-1.80405, x=-0.48481, y=0.87462): -1.804047755271\n    test 2280 119 119.081665222463 Beta(tan=-1.798, x=-0.48481, y=0.871687): -1.804047755271\n    test 2281 119 119.163475249163 Theta(tan=-1.79197, x=-0.48481, y=0.868765): -1.804047755271\n    test 2282 119 119.122524937479 Mu(tan=-1.79498, x=-0.486679, y=0.873581), iteration=3: -1.804047755271\n    test 2283 119 119.163335373555 Chi(tan=-1.79198, x=-1, y=1.79198), iteration=3: -1.804047755271\n    test 2284 119 119.108912006611 Xi(tan=-1.79599, x=-0.977311, y=1.75524), iteration=3: -1.804047755271\n\n    test 2285 119 119.000000000000 Phi(tan=-1.80405, x=-0.48481, y=0.87462): -1.804047755271\n    test 2286 119 119.081665222463 Beta(tan=-1.798, x=-0.486056, y=0.873928): -1.804047755271\n    test 2287 119 119.163475249163 Theta(tan=-1.79197, x=-0.487303, y=0.873233): -1.804047755271\n    test 2288 119 119.122524937479 Mu(tan=-1.79498, x=-0.486679, y=0.873581): -1.804047755271\n    test 2289 119 119.163335373555 Chi(tan=-1.79198, x=-0.487301, y=0.873234): -1.804047755271\n    test 2290 119 119.108912006611 Xi(tan=-1.79599, x=-0.486471, y=0.873697): -1.804047755271\n\n    test 2291 126 126.000000000000 Phi(tan=-1.37638, x=-0.587785, y=0.809017): -1.376381920471\n    test 2292 126 126.091550707249 Beta(tan=-1.37177, x=-0.587785, y=0.806305): -1.376381920471\n    test 2293 126 126.183195540448 Theta(tan=-1.36717, x=-0.587785, y=0.803601): -1.376381920471\n    test 2294 126 126.137343684620 Mu(tan=-1.36947, x=-0.589723, y=0.807606), iteration=3: -1.376381920471\n    test 2295 126 126.183061603372 Chi(tan=-1.36717, x=-1, y=1.36717), iteration=3: -1.376381920471\n    test 2296 126 126.122089633630 Xi(tan=-1.37023, x=-1.18431, y=1.62278), iteration=2: -1.376381920471\n\n    test 2297 126 126.000000000000 Phi(tan=-1.37638, x=-0.587785, y=0.809017): -1.376381920471\n    test 2298 126 126.091550707249 Beta(tan=-1.37177, x=-0.589077, y=0.808077): -1.376381920471\n    test 2299 126 126.183195540448 Theta(tan=-1.36717, x=-0.590369, y=0.807133): -1.376381920471\n    test 2300 126 126.137343684620 Mu(tan=-1.36947, x=-0.589723, y=0.807606): -1.376381920471\n    test 2301 126 126.183061603372 Chi(tan=-1.36717, x=-0.590367, y=0.807135): -1.376381920471\n    test 2302 126 126.122089633630 Xi(tan=-1.37023, x=-0.589508, y=0.807763): -1.376381920471\n\n    test 2303 133 133.000000000000 Phi(tan=-1.07237, x=-0.681998, y=0.731354): -1.072368710025\n    test 2304 133 133.095989026852 Beta(tan=-1.06877, x=-0.681998, y=0.728902): -1.072368710025\n    test 2305 133 133.191999466035 Theta(tan=-1.06519, x=-0.681998, y=0.726458): -1.072368710025\n    test 2306 133 133.143987543114 Mu(tan=-1.06698, x=-0.683834, y=0.729637), iteration=2: -1.072368710025\n    test 2307 133 133.191884915480 Chi(tan=-1.06519, x=-1, y=1.06519), iteration=3: -1.072368710025\n    test 2308 133 133.128001595557 Xi(tan=-1.06758, x=-1.3734, y=1.46621), iteration=3: -1.072368710025\n\n    test 2309 133 133.000000000000 Phi(tan=-1.07237, x=-0.681998, y=0.731354): -1.072368710025\n    test 2310 133 133.095989026852 Beta(tan=-1.06877, x=-0.683223, y=0.73021): -1.072368710025\n    test 2311 133 133.191999466035 Theta(tan=-1.06519, x=-0.684445, y=0.729064): -1.072368710025\n    test 2312 133 133.143987543114 Mu(tan=-1.06698, x=-0.683834, y=0.729637): -1.072368710025\n    test 2313 133 133.191884915480 Chi(tan=-1.06519, x=-0.684444, y=0.729066): -1.072368710025\n    test 2314 133 133.128001595557 Xi(tan=-1.06758, x=-0.683631, y=0.729828): -1.072368710025\n\n    test 2315 140 140.000000000000 Phi(tan=-0.8391, x=-0.766044, y=0.642788): -0.839099631177\n    test 2316 140 140.094722853987 Beta(tan=-0.836286, x=-0.766044, y=0.640632): -0.839099631177\n    test 2317 140 140.189389448072 Theta(tan=-0.833482, x=-0.766044, y=0.638485): -0.839099631177\n    test 2318 140 140.142073716249 Mu(tan=-0.834883, x=-0.767636, y=0.640886), iteration=2: -0.839099631177\n    test 2319 140 140.189302292623 Chi(tan=-0.833485, x=-1, y=0.833485), iteration=2: -0.839099631177\n    test 2320 140 140.126306265466 Xi(tan=-0.83535, x=-1.54181, y=1.28795), iteration=2: -0.839099631177\n\n    test 2321 140 140.000000000000 Phi(tan=-0.8391, x=-0.766044, y=0.642788): -0.839099631177\n    test 2322 140 140.094722853987 Beta(tan=-0.836286, x=-0.767106, y=0.64152): -0.839099631177\n    test 2323 140 140.189389448072 Theta(tan=-0.833482, x=-0.768165, y=0.640252): -0.839099631177\n    test 2324 140 140.142073716249 Mu(tan=-0.834883, x=-0.767636, y=0.640886): -0.839099631177\n    test 2325 140 140.189302292623 Chi(tan=-0.833485, x=-0.768164, y=0.640253): -0.839099631177\n    test 2326 140 140.126306265466 Xi(tan=-0.83535, x=-0.76746, y=0.641097): -0.839099631177\n\n    test 2327 147 147.000000000000 Phi(tan=-0.649408, x=-0.838671, y=0.544639): -0.649407593198\n    test 2328 147 147.087834196097 Beta(tan=-0.64723, x=-0.838671, y=0.542813): -0.649407593198\n    test 2329 147 147.175547668144 Theta(tan=-0.64506, x=-0.838671, y=0.540993): -0.649407593198\n    test 2330 147 147.131728623858 Mu(tan=-0.646144, x=-0.839921, y=0.542709), iteration=2: -0.649407593198\n    test 2331 147 147.175489751194 Chi(tan=-0.645062, x=-1, y=0.645062), iteration=3: -0.649407593198\n    test 2332 147 147.117114615992 Xi(tan=-0.646505, x=-1.68711, y=1.09072), iteration=3: -0.649407593198\n\n    test 2333 147 147.000000000000 Phi(tan=-0.649408, x=-0.838671, y=0.544639): -0.649407593198\n    test 2334 147 147.087834196097 Beta(tan=-0.64723, x=-0.839505, y=0.543353): -0.649407593198\n    test 2335 147 147.175547668144 Theta(tan=-0.64506, x=-0.840335, y=0.542067): -0.649407593198\n    test 2336 147 147.131728623858 Mu(tan=-0.646144, x=-0.839921, y=0.542709): -0.649407593198\n    test 2337 147 147.175489751194 Chi(tan=-0.645062, x=-0.840335, y=0.542068): -0.649407593198\n    test 2338 147 147.117114615992 Xi(tan=-0.646505, x=-0.839782, y=0.542924): -0.649407593198\n\n    test 2339 154 154.000000000000 Phi(tan=-0.487733, x=-0.898794, y=0.438371): -0.487732588566\n    test 2340 154 154.075737936138 Beta(tan=-0.486097, x=-0.898794, y=0.436901): -0.487732588566\n    test 2341 154 154.151318905421 Theta(tan=-0.484468, x=-0.898794, y=0.435437): -0.487732588566\n    test 2342 154 154.113577416532 Mu(tan=-0.485281, x=-0.899661, y=0.436589), iteration=2: -0.487732588566\n    test 2343 154 154.151286603865 Chi(tan=-0.484468, x=-1, y=0.484468), iteration=2: -0.487732588566\n    test 2344 154 154.100981227925 Xi(tan=-0.485553, x=-1.80721, y=0.877495), iteration=3: -0.487732588566\n\n    test 2345 154 154.000000000000 Phi(tan=-0.487733, x=-0.898794, y=0.438371): -0.487732588566\n    test 2346 154 154.075737936138 Beta(tan=-0.486097, x=-0.899373, y=0.437183): -0.487732588566\n    test 2347 154 154.151318905421 Theta(tan=-0.484468, x=-0.899949, y=0.435996): -0.487732588566\n    test 2348 154 154.113577416532 Mu(tan=-0.485281, x=-0.899661, y=0.436589): -0.487732588566\n    test 2349 154 154.151286603865 Chi(tan=-0.484468, x=-0.899948, y=0.435996): -0.487732588566\n    test 2350 154 154.100981227925 Xi(tan=-0.485553, x=-0.899565, y=0.436786): -0.487732588566\n\n    test 2351 161 161.000000000000 Phi(tan=-0.344328, x=-0.945519, y=0.325568): -0.344327613290\n    test 2352 161 161.059155871563 Beta(tan=-0.343173, x=-0.945519, y=0.324477): -0.344327613290\n    test 2353 161 161.118155143282 Theta(tan=-0.342023, x=-0.945519, y=0.323389): -0.344327613290\n    test 2354 161 161.088704377377 Mu(tan=-0.342597, x=-0.946021, y=0.324104), iteration=2: -0.344327613290\n    test 2355 161 161.118141245926 Chi(tan=-0.342023, x=-1, y=0.342023), iteration=2: -0.344327613290\n    test 2356 161 161.078869359618 Xi(tan=-0.342789, x=-1.90043, y=0.651445), iteration=3: -0.344327613290\n\n    test 2357 161 161.000000000000 Phi(tan=-0.344328, x=-0.945519, y=0.325568): -0.344327613290\n    test 2358 161 161.059155871563 Beta(tan=-0.343173, x=-0.945854, y=0.324592): -0.344327613290\n    test 2359 161 161.118155143282 Theta(tan=-0.342023, x=-0.946188, y=0.323618): -0.344327613290\n    test 2360 161 161.088704377377 Mu(tan=-0.342597, x=-0.946021, y=0.324104): -0.344327613290\n    test 2361 161 161.118141245926 Chi(tan=-0.342023, x=-0.946188, y=0.323618): -0.344327613290\n    test 2362 161 161.078869359618 Xi(tan=-0.342789, x=-0.945966, y=0.324266): -0.344327613290\n\n    test 2363 168 168.000000000000 Phi(tan=-0.212557, x=-0.978148, y=0.207912): -0.212556561670\n    test 2364 168 168.039073098008 Beta(tan=-0.211844, x=-0.978148, y=0.207215): -0.212556561670\n    test 2365 168 168.078026427494 Theta(tan=-0.211134, x=-0.978148, y=0.20652): -0.212556561670\n    test 2366 168 168.058587132190 Mu(tan=-0.211488, x=-0.97836, y=0.206911), iteration=3: -0.212556561670\n    test 2367 168 168.078022687531 Chi(tan=-0.211134, x=-1, y=0.211134), iteration=3: -0.212556561670\n    test 2368 168 168.052092611435 Xi(tan=-0.211606, x=-1.96546, y=0.415904), iteration=3: -0.212556561670\n\n    test 2369 168 168.000000000000 Phi(tan=-0.212557, x=-0.978148, y=0.207912): -0.212556561670\n    test 2370 168 168.039073098008 Beta(tan=-0.211844, x=-0.978289, y=0.207245): -0.212556561670\n    test 2371 168 168.078026427494 Theta(tan=-0.211134, x=-0.97843, y=0.206579): -0.212556561670\n    test 2372 168 168.058587132190 Mu(tan=-0.211488, x=-0.97836, y=0.206911): -0.212556561670\n    test 2373 168 168.078022687531 Chi(tan=-0.211134, x=-0.97843, y=0.20658): -0.212556561670\n    test 2374 168 168.052092611435 Xi(tan=-0.211606, x=-0.978336, y=0.207022): -0.212556561670\n\n    test 2375 175 175.000000000000 Phi(tan=-0.0874887, x=-0.996195, y=0.0871557): -0.087488663526\n    test 2376 175 175.016679496811 Beta(tan=-0.0871953, x=-0.996195, y=0.0868635): -0.087488663526\n    test 2377 175 175.033303912991 Theta(tan=-0.086903, x=-0.996195, y=0.0865723): -0.087488663526\n    test 2378 175 175.025008889061 Mu(tan=-0.0870489, x=-0.996233, y=0.0867209), iteration=3: -0.087488663526\n    test 2379 175 175.033303632597 Chi(tan=-0.086903, x=-1, y=0.086903), iteration=2: -0.087488663526\n    test 2380 175 175.022236903877 Xi(tan=-0.0870976, x=-2.0014, y=0.174317), iteration=2: -0.087488663526\n\n    test 2381 175 175.000000000000 Phi(tan=-0.0874887, x=-0.996195, y=0.0871557): -0.087488663526\n    test 2382 175 175.016679496811 Beta(tan=-0.0871953, x=-0.99622, y=0.0868657): -0.087488663526\n    test 2383 175 175.033303912991 Theta(tan=-0.086903, x=-0.996245, y=0.0865767): -0.087488663526\n    test 2384 175 175.025008889061 Mu(tan=-0.0870489, x=-0.996233, y=0.0867209): -0.087488663526\n    test 2385 175 175.033303632597 Chi(tan=-0.086903, x=-0.996245, y=0.0865767): -0.087488663526\n    test 2386 175 175.022236903877 Xi(tan=-0.0870976, x=-0.996228, y=0.0867691): -0.087488663526\n\n    test 2387 182 182.000000000000 Phi(tan=0.0349208, x=-0.999391, y=-0.0348995): 0.034920769492\n    test 2388 182 181.993299797077 Beta(tan=0.0348037, x=-0.999391, y=-0.0347825): 0.034920769492\n    test 2389 182 181.986622004399 Theta(tan=0.034687, x=-0.999391, y=-0.0346659): 0.034920769492\n    test 2390 182 181.989953909276 Mu(tan=0.0347452, x=-0.999397, y=-0.0347243), iteration=3: 0.034920769492\n    test 2391 182 181.986622022458 Chi(tan=0.034687, x=-1, y=-0.034687), iteration=2: 0.034920769492\n    test 2392 182 181.991067395746 Xi(tan=0.0347647, x=-2.00777, y=-0.0697994), iteration=3: 0.034920769492\n\n    test 2393 182 182.000000000000 Phi(tan=0.0349208, x=-0.999391, y=-0.0348995): 0.034920769492\n    test 2394 182 181.993299797077 Beta(tan=0.0348037, x=-0.999395, y=-0.0347826): 0.034920769492\n    test 2395 182 181.986622004399 Theta(tan=0.034687, x=-0.999399, y=-0.0346661): 0.034920769492\n    test 2396 182 181.989953909276 Mu(tan=0.0347452, x=-0.999397, y=-0.0347243): 0.034920769492\n    test 2397 182 181.986622022458 Chi(tan=0.034687, x=-0.999399, y=-0.0346661): 0.034920769492\n    test 2398 182 181.991067395746 Xi(tan=0.0347647, x=-0.999396, y=-0.0347437): 0.034920769492\n\n    test 2399 189 189.000000000000 Phi(tan=0.158384, x=-0.987688, y=-0.156434): 0.158384440325\n    test 2400 189 188.970316191157 Beta(tan=0.157853, x=-0.987688, y=-0.15591): 0.158384440325\n    test 2401 189 188.940727074962 Theta(tan=0.157324, x=-0.987688, y=-0.155387): 0.158384440325\n    test 2402 189 188.955492089230 Mu(tan=0.157588, x=-0.98781, y=-0.155667), iteration=3: 0.158384440325\n    test 2403 189 188.940728682981 Chi(tan=0.157324, x=-1, y=-0.157324), iteration=2: 0.158384440325\n    test 2404 189 188.960425606106 Xi(tan=0.157676, x=-1.98446, y=-0.312903), iteration=3: 0.158384440325\n\n    test 2405 189 189.000000000000 Phi(tan=0.158384, x=-0.987688, y=-0.156434): 0.158384440325\n    test 2406 189 188.970316191157 Beta(tan=0.157853, x=-0.987769, y=-0.155923): 0.158384440325\n    test 2407 189 188.940727074962 Theta(tan=0.157324, x=-0.98785, y=-0.155413): 0.158384440325\n    test 2408 189 188.955492089230 Mu(tan=0.157588, x=-0.98781, y=-0.155667): 0.158384440325\n    test 2409 189 188.940728682981 Chi(tan=0.157324, x=-0.98785, y=-0.155413): 0.158384440325\n    test 2410 189 188.960425606106 Xi(tan=0.157676, x=-0.987796, y=-0.155752): 0.158384440325\n\n    test 2411 196 196.000000000000 Phi(tan=0.286745, x=-0.961262, y=-0.275637): 0.286745385759\n    test 2412 196 195.949087795468 Beta(tan=0.285784, x=-0.961262, y=-0.274713): 0.286745385759\n    test 2413 196 195.898320549032 Theta(tan=0.284826, x=-0.961262, y=-0.273792): 0.286745385759\n    test 2414 196 195.923658939114 Mu(tan=0.285304, x=-0.961628, y=-0.274356), iteration=3: 0.286745385759\n    test 2415 196 195.898329118388 Chi(tan=0.284826, x=-1, y=-0.284826), iteration=3: 0.286745385759\n    test 2416 196 195.932122390859 Xi(tan=0.285464, x=-1.93181, y=-0.551462), iteration=2: 0.286745385759\n\n    test 2417 196 196.000000000000 Phi(tan=0.286745, x=-0.961262, y=-0.275637): 0.286745385759\n    test 2418 196 195.949087795468 Beta(tan=0.285784, x=-0.961506, y=-0.274783): 0.286745385759\n    test 2419 196 195.898320549032 Theta(tan=0.284826, x=-0.961749, y=-0.273931): 0.286745385759\n    test 2420 196 195.923658939114 Mu(tan=0.285304, x=-0.961628, y=-0.274356): 0.286745385759\n    test 2421 196 195.898329118388 Chi(tan=0.284826, x=-0.961749, y=-0.273931): 0.286745385759\n    test 2422 196 195.932122390859 Xi(tan=0.285464, x=-0.961588, y=-0.274498): 0.286745385759\n\n    test 2423 203 203.000000000000 Phi(tan=0.424475, x=-0.920505, y=-0.390731): 0.424474816210\n    test 2424 203 202.930871376810 Beta(tan=0.423052, x=-0.920505, y=-0.389421): 0.424474816210\n    test 2425 203 202.861904242075 Theta(tan=0.421633, x=-0.920505, y=-0.388115): 0.424474816210\n    test 2426 203 202.896337407506 Mu(tan=0.422341, x=-0.92121, y=-0.389065), iteration=3: 0.424474816210\n    test 2427 203 202.861927650711 Chi(tan=0.421634, x=-1, y=-0.421634), iteration=3: 0.424474816210\n    test 2428 203 202.907832581930 Xi(tan=0.422578, x=-1.85054, y=-0.781995), iteration=3: 0.424474816210\n\n    test 2429 203 203.000000000000 Phi(tan=0.424475, x=-0.920505, y=-0.390731): 0.424474816210\n    test 2430 203 202.930871376810 Beta(tan=0.423052, x=-0.920976, y=-0.38962): 0.424474816210\n    test 2431 203 202.861904242075 Theta(tan=0.421633, x=-0.921444, y=-0.388511): 0.424474816210\n    test 2432 203 202.896337407506 Mu(tan=0.422341, x=-0.92121, y=-0.389065): 0.424474816210\n    test 2433 203 202.861927650711 Chi(tan=0.421634, x=-0.921444, y=-0.388512): 0.424474816210\n    test 2434 203 202.907832581930 Xi(tan=0.422578, x=-0.921132, y=-0.38925): 0.424474816210\n\n    test 2435 210 210.000000000000 Phi(tan=0.57735, x=-0.866025, y=-0.5): 0.577350269190\n    test 2436 210 209.916747713236 Beta(tan=0.575415, x=-0.866025, y=-0.498324): 0.577350269190\n    test 2437 210 209.833635809829 Theta(tan=0.573485, x=-0.866025, y=-0.496653): 0.577350269190\n    test 2438 210 209.875147936061 Mu(tan=0.574448, x=-0.867113, y=-0.498112), iteration=3: 0.577350269190\n    test 2439 210 209.833682042481 Chi(tan=0.573486, x=-1, y=-0.573486), iteration=2: 0.577350269190\n    test 2440 210 209.888997034460 Xi(tan=0.57477, x=-1.74177, y=-1.00112), iteration=3: 0.577350269190\n\n    test 2441 210 210.000000000000 Phi(tan=0.57735, x=-0.866025, y=-0.5): 0.577350269190\n    test 2442 210 209.916747713236 Beta(tan=0.575415, x=-0.866751, y=-0.498741): 0.577350269190\n    test 2443 210 209.833635809829 Theta(tan=0.573485, x=-0.867474, y=-0.497483): 0.577350269190\n    test 2444 210 209.875147936061 Mu(tan=0.574448, x=-0.867113, y=-0.498112): 0.577350269190\n    test 2445 210 209.833682042481 Chi(tan=0.573486, x=-0.867473, y=-0.497484): 0.577350269190\n    test 2446 210 209.888997034460 Xi(tan=0.57477, x=-0.866992, y=-0.498321): 0.577350269190\n\n    test 2447 217 217.000000000000 Phi(tan=0.753554, x=-0.798636, y=-0.601815): 0.753554050103\n    test 2448 217 216.907557725734 Beta(tan=0.751028, x=-0.798636, y=-0.599797): 0.753554050103\n    test 2449 217 216.815201948287 Theta(tan=0.748509, x=-0.798636, y=-0.597786): 0.753554050103\n    test 2450 217 216.861352829418 Mu(tan=0.749767, x=-0.800089, y=-0.599881), iteration=2: 0.753554050103\n    test 2451 217 216.815276448911 Chi(tan=0.748512, x=-1, y=-0.748512), iteration=2: 0.753554050103\n    test 2452 217 216.876737541007 Xi(tan=0.750187, x=-1.60704, y=-1.20558), iteration=3: 0.753554050103\n\n    test 2453 217 217.000000000000 Phi(tan=0.753554, x=-0.798636, y=-0.601815): 0.753554050103\n    test 2454 217 216.907557725734 Beta(tan=0.751028, x=-0.799605, y=-0.600526): 0.753554050103\n    test 2455 217 216.815201948287 Theta(tan=0.748509, x=-0.800572, y=-0.599236): 0.753554050103\n    test 2456 217 216.861352829418 Mu(tan=0.749767, x=-0.800089, y=-0.599881): 0.753554050103\n    test 2457 217 216.815276448911 Chi(tan=0.748512, x=-0.800572, y=-0.599237): 0.753554050103\n    test 2458 217 216.876737541007 Xi(tan=0.750187, x=-0.799928, y=-0.600095): 0.753554050103\n\n    test 2459 224 224.000000000000 Phi(tan=0.965689, x=-0.71934, y=-0.694658): 0.965688774807\n    test 2460 224 223.903852093789 Beta(tan=0.962451, x=-0.71934, y=-0.692329): 0.965688774807\n    test 2461 224 223.807716539068 Theta(tan=0.959224, x=-0.71934, y=-0.690008): 0.965688774807\n    test 2462 224 223.855780468115 Mu(tan=0.960836, x=-0.721086, y=-0.692846), iteration=3: 0.965688774807\n    test 2463 224 223.807819970397 Chi(tan=0.959228, x=-1, y=-0.959228), iteration=3: 0.965688774807\n    test 2464 224 223.871789544357 Xi(tan=0.961374, x=-1.44826, y=-1.39232), iteration=3: 0.965688774807\n\n    test 2465 224 224.000000000000 Phi(tan=0.965689, x=-0.71934, y=-0.694658): 0.965688774807\n    test 2466 224 223.903852093789 Beta(tan=0.962451, x=-0.720504, y=-0.69345): 0.965688774807\n    test 2467 224 223.807716539068 Theta(tan=0.959224, x=-0.721667, y=-0.69224): 0.965688774807\n    test 2468 224 223.855780468115 Mu(tan=0.960836, x=-0.721086, y=-0.692846): 0.965688774807\n    test 2469 224 223.807819970397 Chi(tan=0.959228, x=-0.721666, y=-0.692242): 0.965688774807\n    test 2470 224 223.871789544357 Xi(tan=0.961374, x=-0.720892, y=-0.693047): 0.965688774807\n\n    test 2471 231 231.000000000000 Phi(tan=1.2349, x=-0.62932, y=-0.777146): 1.234897156535\n    test 2472 231 230.905857444036 Beta(tan=1.23076, x=-0.62932, y=-0.77454): 1.234897156535\n    test 2473 231 230.811650146691 Theta(tan=1.22663, x=-0.62932, y=-0.771943): 1.234897156535\n    test 2474 231 230.858774044602 Mu(tan=1.22869, x=-0.631234, y=-0.775592), iteration=3: 1.234897156535\n    test 2475 231 230.811777138431 Chi(tan=1.22664, x=-1, y=-1.22664), iteration=3: 1.234897156535\n    test 2476 231 230.874456790611 Xi(tan=1.22938, x=-1.26771, y=-1.5585), iteration=2: 1.234897156535\n\n    test 2477 231 231.000000000000 Phi(tan=1.2349, x=-0.62932, y=-0.777146): 1.234897156535\n    test 2478 231 230.905857444036 Beta(tan=1.23076, x=-0.630596, y=-0.776111): 1.234897156535\n    test 2479 231 230.811650146691 Theta(tan=1.22663, x=-0.631872, y=-0.775073): 1.234897156535\n    test 2480 231 230.858774044602 Mu(tan=1.22869, x=-0.631234, y=-0.775592): 1.234897156535\n    test 2481 231 230.811777138431 Chi(tan=1.22664, x=-0.63187, y=-0.775074): 1.234897156535\n    test 2482 231 230.874456790611 Xi(tan=1.22938, x=-0.631022, y=-0.775765): 1.234897156535\n\n    test 2483 238 238.000000000000 Phi(tan=1.60033, x=-0.529919, y=-0.848048): 1.600334529041\n    test 2484 238 237.913461373388 Beta(tan=1.59497, x=-0.529919, y=-0.845205): 1.600334529041\n    test 2485 238 237.826796038008 Theta(tan=1.58962, x=-0.529919, y=-0.842371): 1.600334529041\n    test 2486 238 237.870168339397 Mu(tan=1.59229, x=-0.53184, y=-0.846845), iteration=2: 1.600334529041\n    test 2487 238 237.826935292578 Chi(tan=1.58963, x=-1, y=-1.58963), iteration=2: 1.600334529041\n    test 2488 238 237.884590997667 Xi(tan=1.59318, x=-1.06803, y=-1.70156), iteration=2: 1.600334529041\n\n    test 2489 238 238.000000000000 Phi(tan=1.60033, x=-0.529919, y=-0.848048): 1.600334529041\n    test 2490 238 237.913461373388 Beta(tan=1.59497, x=-0.5312, y=-0.847247): 1.600334529041\n    test 2491 238 237.826796038008 Theta(tan=1.58962, x=-0.53248, y=-0.846442): 1.600334529041\n    test 2492 238 237.870168339397 Mu(tan=1.59229, x=-0.53184, y=-0.846845): 1.600334529041\n    test 2493 238 237.826935292578 Chi(tan=1.58963, x=-0.532478, y=-0.846444): 1.600334529041\n    test 2494 238 237.884590997667 Xi(tan=1.59318, x=-0.531626, y=-0.846979): 1.600334529041\n\n    test 2495 245 245.000000000000 Phi(tan=2.14451, x=-0.422618, y=-0.906308): 2.144506920510\n    test 2496 245 244.926217548699 Beta(tan=2.13732, x=-0.422618, y=-0.903269): 2.144506920510\n    test 2497 245 244.852276137025 Theta(tan=2.13015, x=-0.422618, y=-0.900241): 2.144506920510\n    test 2498 245 244.889296576536 Mu(tan=2.13373, x=-0.424369, y=-0.90549), iteration=2: 2.144506920510\n    test 2499 245 244.852411952909 Chi(tan=2.13016, x=-1, y=-2.13016), iteration=3: 2.144506920510\n    test 2500 245 244.901598279036 Xi(tan=2.13493, x=-0.852157, y=-1.81929), iteration=2: 2.144506920510\n\n    test 2501 245 245.000000000000 Phi(tan=2.14451, x=-0.422618, y=-0.906308): 2.144506920510\n    test 2502 245 244.926217548699 Beta(tan=2.13732, x=-0.423785, y=-0.905763): 2.144506920510\n    test 2503 245 244.852276137025 Theta(tan=2.13015, x=-0.424954, y=-0.905215): 2.144506920510\n    test 2504 245 244.889296576536 Mu(tan=2.13373, x=-0.424369, y=-0.90549): 2.144506920510\n    test 2505 245 244.852411952909 Chi(tan=2.13016, x=-0.424951, y=-0.905216): 2.144506920510\n    test 2506 245 244.901598279036 Xi(tan=2.13493, x=-0.424174, y=-0.905581): 2.144506920510\n\n    test 2507 252 252.000000000000 Phi(tan=3.07768, x=-0.309017, y=-0.951057): 3.077683537175\n    test 2508 252 251.943370950484 Beta(tan=3.06736, x=-0.309017, y=-0.947868): 3.077683537175\n    test 2509 252 251.886588050489 Theta(tan=3.05708, x=-0.309017, y=-0.94469): 3.077683537175\n    test 2510 252 251.915027646278 Mu(tan=3.06222, x=-0.310427, y=-0.950597), iteration=3: 3.077683537175\n    test 2511 252 251.886702986922 Chi(tan=3.0571, x=-1, y=-3.0571), iteration=3: 3.077683537175\n    test 2512 252 251.924472501487 Xi(tan=3.06393, x=-0.623327, y=-1.90983), iteration=3: 3.077683537175\n\n    test 2513 252 252.000000000000 Phi(tan=3.07768, x=-0.309017, y=-0.951057): 3.077683537175\n    test 2514 252 251.943370950484 Beta(tan=3.06736, x=-0.309957, y=-0.950751): 3.077683537175\n    test 2515 252 251.886588050489 Theta(tan=3.05708, x=-0.310899, y=-0.950443): 3.077683537175\n    test 2516 252 251.915027646278 Mu(tan=3.06222, x=-0.310427, y=-0.950597): 3.077683537175\n    test 2517 252 251.886702986922 Chi(tan=3.0571, x=-0.310897, y=-0.950444): 3.077683537175\n    test 2518 252 251.924472501487 Xi(tan=3.06393, x=-0.31027, y=-0.950648): 3.077683537175\n\n    test 2519 259 259.000000000000 Phi(tan=5.14455, x=-0.190809, y=-0.981627): 5.144554015970\n    test 2520 259 258.963902062378 Beta(tan=5.12731, x=-0.190809, y=-0.978336): 5.144554015970\n    test 2521 259 258.927691601915 Theta(tan=5.11011, x=-0.190809, y=-0.975056): 5.144554015970\n    test 2522 259 258.945832050834 Mu(tan=5.11871, x=-0.191737, y=-0.981446), iteration=3: 5.144554015970\n    test 2523 259 258.927769725031 Chi(tan=5.11015, x=-1, y=-5.11015), iteration=3: 5.144554015970\n    test 2524 259 258.951854051022 Xi(tan=5.12157, x=-0.384988, y=-1.97175), iteration=3: 5.144554015970\n\n    test 2525 259 259.000000000000 Phi(tan=5.14455, x=-0.190809, y=-0.981627): 5.144554015970\n    test 2526 259 258.963902062378 Beta(tan=5.12731, x=-0.191427, y=-0.981507): 5.144554015970\n    test 2527 259 258.927691601915 Theta(tan=5.11011, x=-0.192048, y=-0.981386): 5.144554015970\n    test 2528 259 258.945832050834 Mu(tan=5.11871, x=-0.191737, y=-0.981446): 5.144554015970\n    test 2529 259 258.927769725031 Chi(tan=5.11015, x=-0.192046, y=-0.981386): 5.144554015970\n    test 2530 259 258.951854051022 Xi(tan=5.12157, x=-0.191634, y=-0.981466): 5.144554015970\n\n    test 2531 266 266.000000000000 Phi(tan=14.3007, x=-0.0697565, y=-0.997564): 14.300666256712\n    test 2532 266 265.986587541025 Beta(tan=14.2527, x=-0.0697565, y=-0.994219): 14.300666256712\n    test 2533 266 265.973130404128 Theta(tan=14.2049, x=-0.0697565, y=-0.990886): 14.300666256712\n    test 2534 266 265.979872957664 Mu(tan=14.2288, x=-0.0701069, y=-0.997539), iteration=3: 14.300666256712\n    test 2535 266 265.973160396216 Chi(tan=14.205, x=-1, y=-14.205), iteration=3: 14.300666256712\n    test 2536 266 265.982110758522 Xi(tan=14.2368, x=-0.140765, y=-2.00404), iteration=3: 14.300666256712\n\n    test 2537 266 266.000000000000 Phi(tan=14.3007, x=-0.0697565, y=-0.997564): 14.300666256712\n    test 2538 266 265.986587541025 Beta(tan=14.2527, x=-0.06999, y=-0.997548): 14.300666256712\n    test 2539 266 265.973130404128 Theta(tan=14.2049, x=-0.0702243, y=-0.997531): 14.300666256712\n    test 2540 266 265.979872957664 Mu(tan=14.2288, x=-0.0701069, y=-0.997539): 14.300666256712\n    test 2541 266 265.973160396216 Chi(tan=14.205, x=-0.0702238, y=-0.997531): 14.300666256712\n    test 2542 266 265.982110758522 Xi(tan=14.2368, x=-0.0700679, y=-0.997542): 14.300666256712\n\n    test 2543 273 273.000000000000 Phi(tan=-19.0811, x=0.052336, y=-0.99863): -19.081136687728\n    test 2544 273 273.010073740960 Beta(tan=-19.0172, x=0.052336, y=-0.995281): -19.081136687728\n    test 2545 273 273.020181183682 Theta(tan=-18.9534, x=0.052336, y=-0.991944): -19.081136687728\n    test 2546 273 273.015116912927 Mu(tan=-18.9853, x=0.0525994, y=-0.998616), iteration=3: -19.081136687728\n    test 2547 273 273.020158608531 Chi(tan=-18.9535, x=1.0, y=-18.9535), iteration=2: -19.081136687728\n    test 2548 273 273.013436145998 Xi(tan=-18.9959, x=0.105612, y=-2.0062), iteration=2: -19.081136687728\n\n    test 2549 273 273.000000000000 Phi(tan=-19.0811, x=0.052336, y=-0.99863): -19.081136687728\n    test 2550 273 273.010073740960 Beta(tan=-19.0172, x=0.0525115, y=-0.99862): -19.081136687728\n    test 2551 273 273.020181183682 Theta(tan=-18.9534, x=0.0526877, y=-0.998611): -19.081136687728\n    test 2552 273 273.015116912927 Mu(tan=-18.9853, x=0.0525994, y=-0.998616): -19.081136687728\n    test 2553 273 273.020158608531 Chi(tan=-18.9535, x=0.0526873, y=-0.998611): -19.081136687728\n    test 2554 273 273.013436145998 Xi(tan=-18.9959, x=0.0525701, y=-0.998617): -19.081136687728\n\n    test 2555 280 280.000000000000 Phi(tan=-5.67128, x=0.173648, y=-0.984808): -5.671281819618\n    test 2556 280 280.032958527773 Beta(tan=-5.65227, x=0.173648, y=-0.981506): -5.671281819618\n    test 2557 280 280.066021190034 Theta(tan=-5.63332, x=0.173648, y=-0.978215): -5.671281819618\n    test 2558 280 280.049457265110 Mu(tan=-5.64279, x=0.174498, y=-0.984657), iteration=3: -5.671281819618\n    test 2559 280 280.065949391281 Chi(tan=-5.63336, x=1.0, y=-5.63336), iteration=2: -5.671281819618\n    test 2560 280 280.043958856452 Xi(tan=-5.64595, x=0.350374, y=-1.97819), iteration=3: -5.671281819618\n\n    test 2561 280 280.000000000000 Phi(tan=-5.67128, x=0.173648, y=-0.984808): -5.671281819618\n    test 2562 280 280.032958527773 Beta(tan=-5.65227, x=0.174215, y=-0.984708): -5.671281819618\n    test 2563 280 280.066021190034 Theta(tan=-5.63332, x=0.174783, y=-0.984607): -5.671281819618\n    test 2564 280 280.049457265110 Mu(tan=-5.64279, x=0.174498, y=-0.984657): -5.671281819618\n    test 2565 280 280.065949391281 Chi(tan=-5.63336, x=0.174782, y=-0.984607): -5.671281819618\n    test 2566 280 280.043958856452 Xi(tan=-5.64595, x=0.174404, y=-0.984674): -5.671281819618\n\n    test 2567 287 287.000000000000 Phi(tan=-3.27085, x=0.292372, y=-0.956305): -3.270852618484\n    test 2568 287 287.053876189570 Beta(tan=-3.25989, x=0.292372, y=-0.953098): -3.270852618484\n    test 2569 287 287.107902403143 Theta(tan=-3.24896, x=0.292372, y=-0.949903): -3.270852618484\n    test 2570 287 287.080842346698 Mu(tan=-3.25442, x=0.293721, y=-0.955891), iteration=3: -3.270852618484\n    test 2571 287 287.107791826667 Chi(tan=-3.24898, x=1.0, y=-3.24898), iteration=3: -3.270852618484\n    test 2572 287 287.071856267521 Xi(tan=-3.25624, x=0.589778, y=-1.92046), iteration=3: -3.270852618484\n\n    test 2573 287 287.000000000000 Phi(tan=-3.27085, x=0.292372, y=-0.956305): -3.270852618484\n    test 2574 287 287.053876189570 Beta(tan=-3.25989, x=0.293271, y=-0.956029): -3.270852618484\n    test 2575 287 287.107902403143 Theta(tan=-3.24896, x=0.294172, y=-0.955752): -3.270852618484\n    test 2576 287 287.080842346698 Mu(tan=-3.25442, x=0.293721, y=-0.955891): -3.270852618484\n    test 2577 287 287.107791826667 Chi(tan=-3.24898, x=0.29417, y=-0.955753): -3.270852618484\n    test 2578 287 287.071856267521 Xi(tan=-3.25624, x=0.293571, y=-0.955937): -3.270852618484\n\n    test 2579 294 294.000000000000 Phi(tan=-2.24604, x=0.406737, y=-0.913545): -2.246036773904\n    test 2580 294 294.071580020440 Beta(tan=-2.23851, x=0.406737, y=-0.910483): -2.246036773904\n    test 2581 294 294.143320630937 Theta(tan=-2.231, x=0.406737, y=-0.90743): -2.246036773904\n    test 2582 294 294.107400080405 Mu(tan=-2.23475, x=0.408448, y=-0.912781), iteration=3: -2.246036773904\n    test 2583 294 294.143186728996 Chi(tan=-2.23101, x=1.0, y=-2.23101), iteration=3: -2.246036773904\n    test 2584 294 294.095464961355 Xi(tan=-2.236, x=0.820183, y=-1.83393), iteration=3: -2.246036773904\n\n    test 2585 294 294.000000000000 Phi(tan=-2.24604, x=0.406737, y=-0.913545): -2.246036773904\n    test 2586 294 294.071580020440 Beta(tan=-2.23851, x=0.407878, y=-0.913037): -2.246036773904\n    test 2587 294 294.143320630937 Theta(tan=-2.231, x=0.409021, y=-0.912525): -2.246036773904\n    test 2588 294 294.107400080405 Mu(tan=-2.23475, x=0.408448, y=-0.912781): -2.246036773904\n    test 2589 294 294.143186728996 Chi(tan=-2.23101, x=0.409018, y=-0.912526): -2.246036773904\n    test 2590 294 294.095464961355 Xi(tan=-2.236, x=0.408258, y=-0.912866): -2.246036773904\n\n    test 2591 301 301.000000000000 Phi(tan=-1.66428, x=0.515038, y=-0.857167): -1.664279482351\n    test 2592 301 301.085017327347 Beta(tan=-1.6587, x=0.515038, y=-0.854293): -1.664279482351\n    test 2593 301 301.170168056505 Theta(tan=-1.65314, x=0.515038, y=-0.851429): -1.664279482351\n    test 2594 301 301.127550963364 Mu(tan=-1.65592, x=0.516945, y=-0.856019), iteration=3: -1.664279482351\n    test 2595 301 301.170028258270 Chi(tan=-1.65315, x=1.0, y=-1.65315), iteration=3: -1.664279482351\n    test 2596 301 301.113380969671 Xi(tan=-1.65684, x=1.03811, y=-1.71998), iteration=3: -1.664279482351\n\n    test 2597 301 301.000000000000 Phi(tan=-1.66428, x=0.515038, y=-0.857167): -1.664279482351\n    test 2598 301 301.085017327347 Beta(tan=-1.6587, x=0.516309, y=-0.856402): -1.664279482351\n    test 2599 301 301.170168056505 Theta(tan=-1.65314, x=0.517582, y=-0.855634): -1.664279482351\n    test 2600 301 301.127550963364 Mu(tan=-1.65592, x=0.516945, y=-0.856019): -1.664279482351\n    test 2601 301 301.170028258270 Chi(tan=-1.65315, x=0.517579, y=-0.855635): -1.664279482351\n    test 2602 301 301.113380969671 Xi(tan=-1.65684, x=0.516733, y=-0.856146): -1.664279482351\n\n    test 2603 308 308.000000000000 Phi(tan=-1.27994, x=0.615661, y=-0.788011): -1.279941632193\n    test 2604 308 308.093392183249 Beta(tan=-1.27565, x=0.615661, y=-0.785369): -1.279941632193\n    test 2605 308 308.186859283180 Theta(tan=-1.27137, x=0.615661, y=-0.782736): -1.279941632193\n    test 2606 308 308.140102302012 Mu(tan=-1.27351, x=0.617587, y=-0.786503), iteration=2: -1.279941632193\n    test 2607 308 308.186729722475 Chi(tan=-1.27138, x=1.0, y=-1.27138), iteration=3: -1.279941632193\n    test 2608 308 308.124543504213 Xi(tan=-1.27422, x=1.24029, y=-1.58041), iteration=2: -1.279941632193\n\n    test 2609 308 308.000000000000 Phi(tan=-1.27994, x=0.615661, y=-0.788011): -1.279941632193\n    test 2610 308 308.093392183249 Beta(tan=-1.27565, x=0.616945, y=-0.787006): -1.279941632193\n    test 2611 308 308.186859283180 Theta(tan=-1.27137, x=0.618228, y=-0.785999): -1.279941632193\n    test 2612 308 308.140102302012 Mu(tan=-1.27351, x=0.617587, y=-0.786503): -1.279941632193\n    test 2613 308 308.186729722475 Chi(tan=-1.27138, x=0.618226, y=-0.786): -1.279941632193\n    test 2614 308 308.124543504213 Xi(tan=-1.27422, x=0.617373, y=-0.786671): -1.279941632193\n\n    test 2615 315 315.000000000000 Phi(tan=-1, x=0.707107, y=-0.707107): -1.000000000000\n    test 2616 315 315.096212150580 Beta(tan=-0.996647, x=0.707107, y=-0.704736): -1.000000000000\n    test 2617 315 315.192423215982 Theta(tan=-0.993306, x=0.707107, y=-0.702373): -1.000000000000\n    test 2618 315 315.144318011093 Mu(tan=-0.994975, x=0.708886, y=-0.705323), iteration=2: -1.000000000000\n    test 2619 315 315.192315943911 Chi(tan=-0.993309, x=1.0, y=-0.993309), iteration=3: -1.000000000000\n    test 2620 315 315.128297126566 Xi(tan=-0.995532, x=1.42374, y=-1.41738), iteration=3: -1.000000000000\n\n    test 2621 315 315.000000000000 Phi(tan=-1, x=0.707107, y=-0.707107): -1.000000000000\n    test 2622 315 315.096212150580 Beta(tan=-0.996647, x=0.708293, y=-0.705918): -1.000000000000\n    test 2623 315 315.192423215982 Theta(tan=-0.993306, x=0.709478, y=-0.704728): -1.000000000000\n    test 2624 315 315.144318011093 Mu(tan=-0.994975, x=0.708886, y=-0.705323): -1.000000000000\n    test 2625 315 315.192315943911 Chi(tan=-0.993309, x=0.709476, y=-0.704729): -1.000000000000\n    test 2626 315 315.128297126566 Xi(tan=-0.995532, x=0.708688, y=-0.705522): -1.000000000000\n\n    test 2627 322 322.000000000000 Phi(tan=-0.781286, x=0.788011, y=-0.615661): -0.781285626507\n    test 2628 322 322.093316334881 Beta(tan=-0.778666, x=0.788011, y=-0.613597): -0.781285626507\n    test 2629 322 322.186555893687 Theta(tan=-0.776055, x=0.788011, y=-0.61154): -0.781285626507\n    test 2630 322 322.139960086634 Mu(tan=-0.777359, x=0.789512, y=-0.613735), iteration=3: -0.781285626507\n    test 2631 322 322.186477167765 Chi(tan=-0.776058, x=1.0, y=-0.776058), iteration=3: -0.781285626507\n    test 2632 322 322.124428869604 Xi(tan=-0.777794, x=1.58578, y=-1.23341), iteration=2: -0.781285626507\n\n    test 2633 322 322.000000000000 Phi(tan=-0.781286, x=0.788011, y=-0.615661): -0.781285626507\n    test 2634 322 322.093316334881 Beta(tan=-0.778666, x=0.789012, y=-0.614377): -0.781285626507\n    test 2635 322 322.186555893687 Theta(tan=-0.776055, x=0.790011, y=-0.613092): -0.781285626507\n    test 2636 322 322.139960086634 Mu(tan=-0.777359, x=0.789512, y=-0.613735): -0.781285626507\n    test 2637 322 322.186477167765 Chi(tan=-0.776058, x=0.79001, y=-0.613094): -0.781285626507\n    test 2638 322 322.124428869604 Xi(tan=-0.777794, x=0.789346, y=-0.613949): -0.781285626507\n\n    test 2639 329 329.000000000000 Phi(tan=-0.600861, x=0.857167, y=-0.515038): -0.600860619028\n    test 2640 329 329.084883386958 Beta(tan=-0.598846, x=0.857167, y=-0.513311): -0.600860619028\n    test 2641 329 329.169632300503 Theta(tan=-0.596838, x=0.857167, y=-0.51159): -0.600860619028\n    test 2642 329 329.127299825611 Mu(tan=-0.597841, x=0.858309, y=-0.513132), iteration=2: -0.600860619028\n    test 2643 329 329.169582272165 Chi(tan=-0.596839, x=1.0, y=-0.596839), iteration=3: -0.600860619028\n    test 2644 329 329.113178536759 Xi(tan=-0.598175, x=1.72407, y=-1.0313), iteration=3: -0.600860619028\n\n    test 2645 329 329.000000000000 Phi(tan=-0.600861, x=0.857167, y=-0.515038): -0.600860619028\n    test 2646 329 329.084883386958 Beta(tan=-0.598846, x=0.857929, y=-0.513768): -0.600860619028\n    test 2647 329 329.169632300503 Theta(tan=-0.596838, x=0.858688, y=-0.512498): -0.600860619028\n    test 2648 329 329.127299825611 Mu(tan=-0.597841, x=0.858309, y=-0.513132): -0.600860619028\n    test 2649 329 329.169582272165 Chi(tan=-0.596839, x=0.858688, y=-0.512499): -0.600860619028\n    test 2650 329 329.113178536759 Xi(tan=-0.598175, x=0.858183, y=-0.513344): -0.600860619028\n\n    test 2651 336 336.000000000000 Phi(tan=-0.445229, x=0.913545, y=-0.406737): -0.445228685309\n    test 2652 336 336.071419343981 Beta(tan=-0.443736, x=0.913545, y=-0.405373): -0.445228685309\n    test 2653 336 336.142677929298 Theta(tan=-0.442248, x=0.913545, y=-0.404014): -0.445228685309\n    test 2654 336 336.107098812499 Mu(tan=-0.442991, x=0.914304, y=-0.405028), iteration=3: -0.445228685309\n    test 2655 336 336.142651717918 Chi(tan=-0.442249, x=1.0, y=-0.442249), iteration=3: -0.445228685309\n    test 2656 336 336.095222120427 Xi(tan=-0.443239, x=1.83665, y=-0.814074), iteration=3: -0.445228685309\n\n    test 2657 336 336.000000000000 Phi(tan=-0.445229, x=0.913545, y=-0.406737): -0.445228685309\n    test 2658 336 336.071419343981 Beta(tan=-0.443736, x=0.914052, y=-0.405598): -0.445228685309\n    test 2659 336 336.142677929298 Theta(tan=-0.442248, x=0.914555, y=-0.40446): -0.445228685309\n    test 2660 336 336.107098812499 Mu(tan=-0.442991, x=0.914304, y=-0.405028): -0.445228685309\n    test 2661 336 336.142651717918 Chi(tan=-0.442249, x=0.914555, y=-0.404461): -0.445228685309\n    test 2662 336 336.095222120427 Xi(tan=-0.443239, x=0.91422, y=-0.405218): -0.445228685309\n\n    test 2663 343 343.000000000000 Phi(tan=-0.305731, x=0.956305, y=-0.292372): -0.305730681459\n    test 2664 343 343.053726392145 Beta(tan=-0.304706, x=0.956305, y=-0.291391): -0.305730681459\n    test 2665 343 343.107303214923 Theta(tan=-0.303684, x=0.956305, y=-0.290414): -0.305730681459\n    test 2666 343 343.080561476830 Mu(tan=-0.304194, x=0.956715, y=-0.291027), iteration=3: -0.305730681459\n    test 2667 343 343.107293039045 Chi(tan=-0.303684, x=1.0, y=-0.303684), iteration=2: -0.305730681459\n    test 2668 343 343.071629868756 Xi(tan=-0.304364, x=1.92193, y=-0.584967), iteration=3: -0.305730681459\n\n    test 2669 343 343.000000000000 Phi(tan=-0.305731, x=0.956305, y=-0.292372): -0.305730681459\n    test 2670 343 343.053726392145 Beta(tan=-0.304706, x=0.956578, y=-0.291475): -0.305730681459\n    test 2671 343 343.107303214923 Theta(tan=-0.303684, x=0.956851, y=-0.29058): -0.305730681459\n    test 2672 343 343.080561476830 Mu(tan=-0.304194, x=0.956715, y=-0.291027): -0.305730681459\n    test 2673 343 343.107293039045 Chi(tan=-0.303684, x=0.956851, y=-0.29058): -0.305730681459\n    test 2674 343 343.071629868756 Xi(tan=-0.304364, x=0.95667, y=-0.291176): -0.305730681459\n\n    test 2675 350 350.000000000000 Phi(tan=-0.176327, x=0.984808, y=-0.173648): -0.176326980708\n    test 2676 350 350.032854677782 Beta(tan=-0.175736, x=0.984808, y=-0.173066): -0.176326980708\n    test 2677 350 350.065605789721 Theta(tan=-0.175147, x=0.984808, y=-0.172486): -0.176326980708\n    test 2678 350 350.049262546520 Mu(tan=-0.175441, x=0.984957, y=-0.172801), iteration=3: -0.176326980708\n    test 2679 350 350.065603596501 Chi(tan=-0.175147, x=1.0, y=-0.175147), iteration=3: -0.176326980708\n    test 2680 350 350.043801901064 Xi(tan=-0.175539, x=1.97873, y=-0.347343), iteration=3: -0.176326980708\n\n    test 2681 350 350.000000000000 Phi(tan=-0.176327, x=0.984808, y=-0.173648): -0.176326980708\n    test 2682 350 350.032854677782 Beta(tan=-0.175736, x=0.984907, y=-0.173083): -0.176326980708\n    test 2683 350 350.065605789721 Theta(tan=-0.175147, x=0.985006, y=-0.17252): -0.176326980708\n    test 2684 350 350.049262546520 Mu(tan=-0.175441, x=0.984957, y=-0.172801): -0.176326980708\n    test 2685 350 350.065603596501 Chi(tan=-0.175147, x=0.985006, y=-0.17252): -0.176326980708\n    test 2686 350 350.043801901064 Xi(tan=-0.175539, x=0.98494, y=-0.172895): -0.176326980708\n\n    test 2687 357 357.000000000000 Phi(tan=-0.0524078, x=0.99863, y=-0.052336): -0.052407779283\n    test 2688 357 357.010040150331 Beta(tan=-0.0522321, x=0.99863, y=-0.0521605): -0.052407779283\n    test 2689 357 357.020046820811 Theta(tan=-0.0520569, x=0.99863, y=-0.0519856): -0.052407779283\n    test 2690 357 357.015053930532 Mu(tan=-0.0521443, x=0.998643, y=-0.0520736), iteration=3: -0.052407779283\n    test 2691 357 357.020046759956 Chi(tan=-0.0520569, x=1.0, y=-0.0520569), iteration=3: -0.052407779283\n    test 2692 357 357.013385378246 Xi(tan=-0.0521735, x=2.00625, y=-0.104673), iteration=3: -0.052407779283\n\n    test 2693 357 357.000000000000 Phi(tan=-0.0524078, x=0.99863, y=-0.052336): -0.052407779283\n    test 2694 357 357.010040150331 Beta(tan=-0.0522321, x=0.998639, y=-0.052161): -0.052407779283\n    test 2695 357 357.020046820811 Theta(tan=-0.0520569, x=0.998648, y=-0.0519865): -0.052407779283\n    test 2696 357 357.015053930532 Mu(tan=-0.0521443, x=0.998643, y=-0.0520736): -0.052407779283\n    test 2697 357 357.020046759956 Chi(tan=-0.0520569, x=0.998648, y=-0.0519866): -0.052407779283\n    test 2698 357 357.013385378246 Xi(tan=-0.0521735, x=0.998642, y=-0.0521027): -0.052407779283\n\n    test 2699  0 0.000000000000 Phi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 2700  0 0.000000000000 Beta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 2701  0 0.000000000000 Theta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 2702  0 0.000000000000 Mu(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 2703  0 0.000000000000 Chi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 2704  0 0.000000000000 Xi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n\n    test 2705  0 0.000000000000 Phi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 2706  0 0.000000000000 Beta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 2707  0 0.000000000000 Theta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 2708  0 0.000000000000 Mu(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 2709  0 0.000000000000 Chi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 2710  0 0.000000000000 Xi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n\n    test 2711  7 7.046703746044 Phi(tan=0.123612, x=0.992546, y=0.122691): 0.122784560903\n    test 2712  7 7.023313832609 Beta(tan=0.123198, x=0.992546, y=0.122279): 0.122784560903\n    test 2713  7 7.000000000000 Theta(tan=0.122785, x=0.992546, y=0.121869): 0.122784560903\n    test 2714  7 7.011633179954 Mu(tan=0.122991, x=0.992521, y=0.122071), iteration=3: 0.122784560903\n    test 2715  7 7.000000779127 Chi(tan=0.122785, x=1.0, y=0.122785), iteration=2: 0.122784560903\n    test 2716  7 7.015520491938 Xi(tan=0.12306, x=1.99394, y=0.245373), iteration=2: 0.122784560903\n\n    test 2717  7 7.046703746044 Phi(tan=0.123612, x=0.992446, y=0.122678): 0.122784560903\n    test 2718  7 7.023313832609 Beta(tan=0.123198, x=0.992496, y=0.122273): 0.122784560903\n    test 2719  7 7.000000000000 Theta(tan=0.122785, x=0.992546, y=0.121869): 0.122784560903\n    test 2720  7 7.011633179954 Mu(tan=0.122991, x=0.992521, y=0.122071): 0.122784560903\n    test 2721  7 7.000000779127 Chi(tan=0.122785, x=0.992546, y=0.121869): 0.122784560903\n    test 2722  7 7.015520491938 Xi(tan=0.12306, x=0.992513, y=0.122138): 0.122784560903\n\n    test 2723 14 14.090606168436 Phi(tan=0.251008, x=0.970296, y=0.243552): 0.249328002843\n    test 2724 14 14.045235971490 Beta(tan=0.250167, x=0.970296, y=0.242736): 0.249328002843\n    test 2725 14 14.000000000000 Theta(tan=0.249328, x=0.970296, y=0.241922): 0.249328002843\n    test 2726 14 14.022576103630 Mu(tan=0.249747, x=0.9702, y=0.242304), iteration=3: 0.249328002843\n    test 2727 14 14.000005955939 Chi(tan=0.249328, x=1.0, y=0.249328), iteration=2: 0.249328002843\n    test 2728 14 14.030117773793 Xi(tan=0.249886, x=1.94905, y=0.487041), iteration=3: 0.249328002843\n\n    test 2729 14 14.090606168436 Phi(tan=0.251008, x=0.969912, y=0.243456): 0.249328002843\n    test 2730 14 14.045235971490 Beta(tan=0.250167, x=0.970104, y=0.242688): 0.249328002843\n    test 2731 14 14.000000000000 Theta(tan=0.249328, x=0.970296, y=0.241922): 0.249328002843\n    test 2732 14 14.022576103630 Mu(tan=0.249747, x=0.9702, y=0.242304): 0.249328002843\n    test 2733 14 14.000005955939 Chi(tan=0.249328, x=0.970296, y=0.241922): 0.249328002843\n    test 2734 14 14.030117773793 Xi(tan=0.249886, x=0.970168, y=0.242432): 0.249328002843\n\n    test 2735 21 21.129078684131 Phi(tan=0.386451, x=0.93358, y=0.360783): 0.383864035035\n    test 2736 21 21.064458966605 Beta(tan=0.385155, x=0.93358, y=0.359574): 0.383864035035\n    test 2737 21 21.000000000000 Theta(tan=0.383864, x=0.93358, y=0.358368): 0.383864035035\n    test 2738 21 21.032179314629 Mu(tan=0.384509, x=0.933379, y=0.358892), iteration=2: 0.383864035035\n    test 2739 21 21.000018617196 Chi(tan=0.383864, x=1.0, y=0.383864), iteration=3: 0.383864035035\n    test 2740 21 21.042923749309 Xi(tan=0.384724, x=1.875, y=0.721359), iteration=3: 0.383864035035\n\n    test 2741 21 21.129078684131 Phi(tan=0.386451, x=0.932771, y=0.36047): 0.383864035035\n    test 2742 21 21.064458966605 Beta(tan=0.385155, x=0.933177, y=0.359418): 0.383864035035\n    test 2743 21 21.000000000000 Theta(tan=0.383864, x=0.93358, y=0.358368): 0.383864035035\n    test 2744 21 21.032179314629 Mu(tan=0.384509, x=0.933379, y=0.358892): 0.383864035035\n    test 2745 21 21.000018617196 Chi(tan=0.383864, x=0.93358, y=0.358368): 0.383864035035\n    test 2746 21 21.042923749309 Xi(tan=0.384724, x=0.933312, y=0.359067): 0.383864035035\n\n    test 2747 28 28.159826417635 Phi(tan=0.535293, x=0.882948, y=0.472636): 0.531709431661\n    test 2748 28 28.079838480095 Beta(tan=0.533498, x=0.882948, y=0.471051): 0.531709431661\n    test 2749 28 28.000000000000 Theta(tan=0.531709, x=0.882948, y=0.469472): 0.531709431661\n    test 2750 28 28.039872584755 Mu(tan=0.532602, x=0.882621, y=0.470086), iteration=3: 0.531709431661\n    test 2751 28 28.000039556231 Chi(tan=0.53171, x=1.0, y=0.53171), iteration=2: 0.531709431661\n    test 2752 28 28.053177215354 Xi(tan=0.532901, x=1.77295, y=0.944805), iteration=3: 0.531709431661\n\n    test 2753 28 28.159826417635 Phi(tan=0.535293, x=0.881635, y=0.471933): 0.531709431661\n    test 2754 28 28.079838480095 Beta(tan=0.533498, x=0.882293, y=0.470701): 0.531709431661\n    test 2755 28 28.000000000000 Theta(tan=0.531709, x=0.882948, y=0.469472): 0.531709431661\n    test 2756 28 28.039872584755 Mu(tan=0.532602, x=0.882621, y=0.470086): 0.531709431661\n    test 2757 28 28.000039556231 Chi(tan=0.53171, x=0.882947, y=0.469472): 0.531709431661\n    test 2758 28 28.053177215354 Xi(tan=0.532901, x=0.882511, y=0.470291): 0.531709431661\n\n    test 2759 35 35.181026690786 Phi(tan=0.704927, x=0.819152, y=0.577442): 0.700207538210\n    test 2760 35 35.090461812463 Beta(tan=0.702563, x=0.819152, y=0.575506): 0.700207538210\n    test 2761 35 35.000000000000 Theta(tan=0.700208, x=0.819152, y=0.573576): 0.700207538210\n    test 2762 35 35.045198725900 Mu(tan=0.701384, x=0.818699, y=0.574222), iteration=3: 0.700207538210\n    test 2763 35 35.000066866642 Chi(tan=0.700209, x=1.0, y=0.700209), iteration=2: 0.700207538210\n    test 2764 35 35.060269183174 Xi(tan=0.701776, x=1.64445, y=1.15403), iteration=3: 0.700207538210\n\n    test 2765 35 35.181026690786 Phi(tan=0.704927, x=0.817336, y=0.576162): 0.700207538210\n    test 2766 35 35.090461812463 Beta(tan=0.702563, x=0.818245, y=0.574869): 0.700207538210\n    test 2767 35 35.000000000000 Theta(tan=0.700208, x=0.819152, y=0.573576): 0.700207538210\n    test 2768 35 35.045198725900 Mu(tan=0.701384, x=0.818699, y=0.574222): 0.700207538210\n    test 2769 35 35.000066866642 Chi(tan=0.700209, x=0.819151, y=0.573577): 0.700207538210\n    test 2770 35 35.060269183174 Xi(tan=0.701776, x=0.818548, y=0.574438): 0.700207538210\n\n    test 2771 42 42.191436312869 Phi(tan=0.906472, x=0.743145, y=0.67364): 0.900404044298\n    test 2772 42 42.095701889505 Beta(tan=0.903433, x=0.743145, y=0.671382): 0.900404044298\n    test 2773 42 42.000000000000 Theta(tan=0.900404, x=0.743145, y=0.669131): 0.900404044298\n    test 2774 42 42.047840790779 Mu(tan=0.901917, x=0.742586, y=0.669751), iteration=3: 0.900404044298\n    test 2775 42 42.000096219009 Chi(tan=0.900407, x=1.0, y=0.900407), iteration=2: 0.900404044298\n    test 2776 42 42.063779025222 Xi(tan=0.902422, x=1.49147, y=1.34593), iteration=2: 0.900404044298\n\n    test 2777 42 42.191436312869 Phi(tan=0.906472, x=0.740905, y=0.67161): 0.900404044298\n    test 2778 42 42.095701889505 Beta(tan=0.903433, x=0.742026, y=0.670371): 0.900404044298\n    test 2779 42 42.000000000000 Theta(tan=0.900404, x=0.743145, y=0.669131): 0.900404044298\n    test 2780 42 42.047840790779 Mu(tan=0.901917, x=0.742586, y=0.669751): 0.900404044298\n    test 2781 42 42.000096219009 Chi(tan=0.900407, x=0.743144, y=0.669132): 0.900404044298\n    test 2782 42 42.063779025222 Xi(tan=0.902422, x=0.7424, y=0.669957): 0.900404044298\n\n    test 2783 49 49.190461558643 Phi(tan=1.15812, x=0.656059, y=0.759796): 1.150368407221\n    test 2784 49 49.095253561343 Beta(tan=1.15424, x=0.656059, y=0.757248): 1.150368407221\n    test 2785 49 49.000000000000 Theta(tan=1.15037, x=0.656059, y=0.75471): 1.150368407221\n    test 2786 49 49.047641033804 Mu(tan=1.1523, x=0.655431, y=0.755255), iteration=3: 1.150368407221\n    test 2787 49 49.000121761599 Chi(tan=1.15037, x=1.0, y=1.15037), iteration=3: 1.150368407221\n    test 2788 49 49.063499305647 Xi(tan=1.15295, x=1.31633, y=1.51766), iteration=3: 1.150368407221\n\n    test 2789 49 49.190461558643 Phi(tan=1.15812, x=0.653547, y=0.756886): 1.150368407221\n    test 2790 49 49.095253561343 Beta(tan=1.15424, x=0.654803, y=0.755799): 1.150368407221\n    test 2791 49 49.000000000000 Theta(tan=1.15037, x=0.656059, y=0.75471): 1.150368407221\n    test 2792 49 49.047641033804 Mu(tan=1.1523, x=0.655431, y=0.755255): 1.150368407221\n    test 2793 49 49.000121761599 Chi(tan=1.15037, x=0.656057, y=0.754711): 1.150368407221\n    test 2794 49 49.063499305647 Xi(tan=1.15295, x=0.655222, y=0.755436): 1.150368407221\n\n    test 2795 56 56.178187618527 Phi(tan=1.49255, x=0.559193, y=0.834625): 1.482560968513\n    test 2796 56 56.089150284766 Beta(tan=1.48755, x=0.559193, y=0.831827): 1.482560968513\n    test 2797 56 56.000000000000 Theta(tan=1.48256, x=0.559193, y=0.829038): 1.482560968513\n    test 2798 56 56.044610470922 Mu(tan=1.48505, x=0.558547, y=0.829473), iteration=3: 1.482560968513\n    test 2799 56 56.000137435853 Chi(tan=1.48257, x=1.0, y=1.48257), iteration=3: 1.482560968513\n    test 2800 56 56.059447854026 Xi(tan=1.48588, x=1.12168, y=1.66668), iteration=2: 1.482560968513\n\n    test 2801 56 56.178187618527 Phi(tan=1.49255, x=0.556612, y=0.830773): 1.482560968513\n    test 2802 56 56.089150284766 Beta(tan=1.48755, x=0.557902, y=0.829907): 1.482560968513\n    test 2803 56 56.000000000000 Theta(tan=1.48256, x=0.559193, y=0.829038): 1.482560968513\n    test 2804 56 56.044610470922 Mu(tan=1.48505, x=0.558547, y=0.829473): 1.482560968513\n    test 2805 56 56.000137435853 Chi(tan=1.48257, x=0.559191, y=0.829039): 1.482560968513\n    test 2806 56 56.059447854026 Xi(tan=1.48588, x=0.558332, y=0.829617): 1.482560968513\n\n    test 2807 63 63.155367155141 Phi(tan=1.97584, x=0.45399, y=0.897011): 1.962610505505\n    test 2808 63 63.077760538972 Beta(tan=1.96921, x=0.45399, y=0.894004): 1.962610505505\n    test 2809 63 63.000000000000 Theta(tan=1.96261, x=0.45399, y=0.891007): 1.962610505505\n    test 2810 63 63.038928423958 Mu(tan=1.96591, x=0.453385, y=0.891315), iteration=3: 1.962610505505\n    test 2811 63 63.000138398794 Chi(tan=1.96262, x=1.0, y=1.96262), iteration=3: 1.962610505505\n    test 2812 63 63.051866422105 Xi(tan=1.96701, x=0.910437, y=1.79084), iteration=3: 1.962610505505\n\n    test 2813 63 63.155367155141 Phi(tan=1.97584, x=0.451573, y=0.892234): 1.962610505505\n    test 2814 63 63.077760538972 Beta(tan=1.96921, x=0.452781, y=0.891622): 1.962610505505\n    test 2815 63 63.000000000000 Theta(tan=1.96261, x=0.45399, y=0.891007): 1.962610505505\n    test 2816 63 63.038928423958 Mu(tan=1.96591, x=0.453385, y=0.891315): 1.962610505505\n    test 2817 63 63.000138398794 Chi(tan=1.96262, x=0.453988, y=0.891008): 1.962610505505\n    test 2818 63 63.051866422105 Xi(tan=1.96701, x=0.453184, y=0.891417): 1.962610505505\n\n    test 2819 70 70.123370137625 Phi(tan=2.76599, x=0.34202, y=0.946026): 2.747477419455\n    test 2820 70 70.061764561164 Beta(tan=2.75672, x=0.34202, y=0.942854): 2.747477419455\n    test 2821 70 70.000000000000 Theta(tan=2.74748, x=0.34202, y=0.939693): 2.747477419455\n    test 2822 70 70.030932030288 Mu(tan=2.7521, x=0.341513, y=0.939877), iteration=3: 2.747477419455\n    test 2823 70 70.000122219482 Chi(tan=2.7475, x=1.0, y=2.7475), iteration=3: 2.747477419455\n    test 2824 70 70.041206070039 Xi(tan=2.75364, x=0.685754, y=1.88832), iteration=3: 2.747477419455\n\n    test 2825 70 70.123370137625 Phi(tan=2.76599, x=0.339996, y=0.940427): 2.747477419455\n    test 2826 70 70.061764561164 Beta(tan=2.75672, x=0.341007, y=0.940061): 2.747477419455\n    test 2827 70 70.000000000000 Theta(tan=2.74748, x=0.34202, y=0.939693): 2.747477419455\n    test 2828 70 70.030932030288 Mu(tan=2.7521, x=0.341513, y=0.939877): 2.747477419455\n    test 2829 70 70.000122219482 Chi(tan=2.7475, x=0.342018, y=0.939693): 2.747477419455\n    test 2830 70 70.041206070039 Xi(tan=2.75364, x=0.341344, y=0.939938): 2.747477419455\n\n    test 2831 77 77.084099185826 Phi(tan=4.36067, x=0.224951, y=0.980937): 4.331475874284\n    test 2832 77 77.042113102652 Beta(tan=4.34605, x=0.224951, y=0.977648): 4.331475874284\n    test 2833 77 77.000000000000 Theta(tan=4.33148, x=0.224951, y=0.97437): 4.331475874284\n    test 2834 77 77.021096305787 Mu(tan=4.33876, x=0.224592, y=0.974453), iteration=3: 4.331475874284\n    test 2835 77 77.000089569308 Chi(tan=4.33151, x=1.0, y=4.33151), iteration=2: 4.331475874284\n    test 2836 77 77.028100210930 Xi(tan=4.34119, x=0.450962, y=1.95771), iteration=3: 4.331475874284\n\n    test 2837 77 77.084099185826 Phi(tan=4.36067, x=0.223521, y=0.974699): 4.331475874284\n    test 2838 77 77.042113102652 Beta(tan=4.34605, x=0.224235, y=0.974535): 4.331475874284\n    test 2839 77 77.000000000000 Theta(tan=4.33148, x=0.224951, y=0.97437): 4.331475874284\n    test 2840 77 77.021096305787 Mu(tan=4.33876, x=0.224592, y=0.974453): 4.331475874284\n    test 2841 77 77.000089569308 Chi(tan=4.33151, x=0.22495, y=0.97437): 4.331475874284\n    test 2842 77 77.028100210930 Xi(tan=4.34119, x=0.224473, y=0.97448): 4.331475874284\n\n    test 2843 84 84.039876185217 Phi(tan=9.57849, x=0.104528, y=1.00122): 9.514364454223\n    test 2844 84 84.019970846274 Beta(tan=9.54637, x=0.104528, y=0.997868): 9.514364454223\n    test 2845 84 84.000000000000 Theta(tan=9.51436, x=0.104528, y=0.994522): 9.514364454223\n    test 2846 84 84.010005927895 Mu(tan=9.53037, x=0.104355, y=0.99454), iteration=3: 9.514364454223\n    test 2847 84 84.000044242373 Chi(tan=9.51444, x=1.0, y=9.51444), iteration=2: 9.514364454223\n    test 2848 84 84.013326954497 Xi(tan=9.5357, x=0.209531, y=1.99802), iteration=2: 9.514364454223\n\n    test 2849 84 84.039876185217 Phi(tan=9.57849, x=0.103836, y=0.994594): 9.514364454223\n    test 2850 84 84.019970846274 Beta(tan=9.54637, x=0.104182, y=0.994558): 9.514364454223\n    test 2851 84 84.000000000000 Theta(tan=9.51436, x=0.104528, y=0.994522): 9.514364454223\n    test 2852 84 84.010005927895 Mu(tan=9.53037, x=0.104355, y=0.99454): 9.514364454223\n    test 2853 84 84.000044242373 Chi(tan=9.51444, x=0.104528, y=0.994522): 9.514364454223\n    test 2854 84 84.013326954497 Xi(tan=9.5357, x=0.104297, y=0.994546): 9.514364454223\n\n    test 2855 91 90.993306965793 Phi(tan=-57.6761, x=-0.0174524, y=1.00659): -57.289961630759\n    test 2856 91 90.996647866757 Beta(tan=-57.4827, x=-0.0174524, y=1.00321): -57.289961630759\n    test 2857 91 91.000000000000 Theta(tan=-57.29, x=-0.0174524, y=0.999848): -57.289961630759\n    test 2858 91 90.998320417403 Mu(tan=-57.3864, x=-0.0174231, y=0.999848), iteration=3: -57.289961630759\n    test 2859 91 90.999992494484 Chi(tan=-57.2904, x=-1, y=57.2904), iteration=3: -57.289961630759\n    test 2860 91 90.997762994841 Xi(tan=-57.4184, x=-0.0349831, y=2.00868), iteration=3: -57.289961630759\n\n    test 2861 91 90.993306965793 Phi(tan=-57.6761, x=-0.0173356, y=0.99985): -57.289961630760  FAILED, KNOWN (4.3409e-15), expected -57.289961630759\n    test 2862 91 90.996647866757 Beta(tan=-57.4827, x=-0.0173939, y=0.999849): -57.289961630759\n    test 2863 91 91.000000000000 Theta(tan=-57.29, x=-0.0174524, y=0.999848): -57.289961630759\n    test 2864 91 90.998320417403 Mu(tan=-57.3864, x=-0.0174231, y=0.999848): -57.289961630760  FAILED, KNOWN (4.3409e-15), expected -57.289961630759\n    test 2865 91 90.999992494484 Chi(tan=-57.2904, x=-0.0174523, y=0.999848): -57.289961630760  FAILED, KNOWN (3.72077e-15), expected -57.289961630759\n    test 2866 91 90.997762994841 Xi(tan=-57.4184, x=-0.0174134, y=0.999848): -57.289961630760  FAILED, KNOWN (2.85259e-15), expected -57.289961630759\n\n    test 2867 98 97.947131466338 Phi(tan=-7.16332, x=-0.139173, y=0.996942): -7.115369722384\n    test 2868 98 97.973523052479 Beta(tan=-7.13931, x=-0.139173, y=0.993599): -7.115369722384\n    test 2869 98 98.000000000000 Theta(tan=-7.11537, x=-0.139173, y=0.990268): -7.115369722384\n    test 2870 98 97.986734807520 Mu(tan=-7.12734, x=-0.138944, y=0.9903), iteration=3: -7.115369722384\n    test 2871 98 97.999941842742 Chi(tan=-7.11542, x=-1, y=7.11542), iteration=3: -7.115369722384\n    test 2872 98 97.982331755375 Xi(tan=-7.13133, x=-0.278982, y=1.98951), iteration=3: -7.115369722384\n\n    test 2873 98 97.947131466338 Phi(tan=-7.16332, x=-0.138259, y=0.990396): -7.115369722384\n    test 2874 98 97.973523052479 Beta(tan=-7.13931, x=-0.138715, y=0.990332): -7.115369722384\n    test 2875 98 98.000000000000 Theta(tan=-7.11537, x=-0.139173, y=0.990268): -7.115369722384\n    test 2876 98 97.986734807520 Mu(tan=-7.12734, x=-0.138944, y=0.9903): -7.115369722384\n    test 2877 98 97.999941842742 Chi(tan=-7.11542, x=-0.139172, y=0.990268): -7.115369722384\n    test 2878 98 97.982331755375 Xi(tan=-7.13133, x=-0.138868, y=0.990311): -7.115369722384\n\n    test 2879 105 104.904067139653 Phi(tan=-3.7572, x=-0.258819, y=0.972436): -3.732050807569\n    test 2880 105 104.951963747366 Beta(tan=-3.74461, x=-0.258819, y=0.969175): -3.732050807569\n    test 2881 105 105.000000000000 Theta(tan=-3.73205, x=-0.258819, y=0.965926): -3.732050807569\n    test 2882 105 104.975938169742 Mu(tan=-3.73833, x=-0.258413, y=0.966034), iteration=3: -3.732050807569\n    test 2883 105 104.999899588330 Chi(tan=-3.73208, x=-1, y=3.73208), iteration=2: -3.732050807569\n    test 2884 105 104.967948816895 Xi(tan=-3.74042, x=-0.518877, y=1.94082), iteration=3: -3.732050807569\n\n    test 2885 105 104.904067139653 Phi(tan=-3.7572, x=-0.257201, y=0.966358): -3.732050807569\n    test 2886 105 104.951963747366 Beta(tan=-3.74461, x=-0.258009, y=0.966142): -3.732050807569\n    test 2887 105 105.000000000000 Theta(tan=-3.73205, x=-0.258819, y=0.965926): -3.732050807569\n    test 2888 105 104.975938169742 Mu(tan=-3.73833, x=-0.258413, y=0.966034): -3.732050807569\n    test 2889 105 104.999899588330 Chi(tan=-3.73208, x=-0.258817, y=0.965926): -3.732050807569\n    test 2890 105 104.967948816895 Xi(tan=-3.74042, x=-0.258279, y=0.96607): -3.732050807569\n\n    test 2891 112 111.866653486751 Phi(tan=-2.49177, x=-0.374607, y=0.933433): -2.475086853416\n    test 2892 112 111.933246025813 Beta(tan=-2.48341, x=-0.374607, y=0.930303): -2.475086853416\n    test 2893 112 112.000000000000 Theta(tan=-2.47509, x=-0.374607, y=0.927184): -2.475086853416\n    test 2894 112 111.966572499608 Mu(tan=-2.47925, x=-0.374066, y=0.927402), iteration=3: -2.475086853416\n    test 2895 112 111.999871386688 Chi(tan=-2.4751, x=-1, y=2.4751), iteration=3: -2.475086853416\n    test 2896 112 111.955467801390 Xi(tan=-2.48064, x=-0.751129, y=1.86328), iteration=2: -2.475086853416\n\n    test 2897 112 111.866653486751 Phi(tan=-2.49177, x=-0.372448, y=0.928053): -2.475086853416\n    test 2898 112 111.933246025813 Beta(tan=-2.48341, x=-0.373526, y=0.92762): -2.475086853416\n    test 2899 112 112.000000000000 Theta(tan=-2.47509, x=-0.374607, y=0.927184): -2.475086853416\n    test 2900 112 111.966572499608 Mu(tan=-2.47925, x=-0.374066, y=0.927402): -2.475086853416\n    test 2901 112 111.999871386688 Chi(tan=-2.4751, x=-0.374605, y=0.927185): -2.475086853416\n    test 2902 112 111.955467801390 Xi(tan=-2.48064, x=-0.373886, y=0.927475): -2.475086853416\n\n    test 2903 119 118.837105586950 Phi(tan=-1.81621, x=-0.48481, y=0.880514): -1.804047755271\n    test 2904 119 118.918479987923 Beta(tan=-1.81012, x=-0.48481, y=0.877562): -1.804047755271\n    test 2905 119 119.000000000000 Theta(tan=-1.80405, x=-0.48481, y=0.87462): -1.804047755271\n    test 2906 119 118.959194442963 Mu(tan=-1.80708, x=-0.484187, y=0.874965), iteration=3: -1.804047755271\n    test 2907 119 118.999860178783 Chi(tan=-1.80406, x=-1, y=1.80406), iteration=3: -1.804047755271\n    test 2908 119 118.945629859635 Xi(tan=-1.80809, x=-0.972305, y=1.75802), iteration=3: -1.804047755271\n\n    test 2909 119 118.837105586950 Phi(tan=-1.81621, x=-0.482321, y=0.875995): -1.804047755271\n    test 2910 119 118.918479987923 Beta(tan=-1.81012, x=-0.483565, y=0.875309): -1.804047755271\n    test 2911 119 119.000000000000 Theta(tan=-1.80405, x=-0.48481, y=0.87462): -1.804047755271\n    test 2912 119 118.959194442963 Mu(tan=-1.80708, x=-0.484187, y=0.874965): -1.804047755271\n    test 2913 119 118.999860178783 Chi(tan=-1.80406, x=-0.484807, y=0.874621): -1.804047755271\n    test 2914 119 118.945629859635 Xi(tan=-1.80809, x=-0.483979, y=0.875079): -1.804047755271\n\n    test 2915 126 125.817184307945 Phi(tan=-1.38566, x=-0.587785, y=0.814469): -1.376381920471\n    test 2916 126 125.908544256035 Beta(tan=-1.38101, x=-0.587785, y=0.811739): -1.376381920471\n    test 2917 126 126.000000000000 Theta(tan=-1.37638, x=-0.587785, y=0.809017): -1.376381920471\n    test 2918 126 125.954242166425 Mu(tan=-1.3787, x=-0.587139, y=0.809486), iteration=2: -1.376381920471\n    test 2919 126 125.999865716658 Chi(tan=-1.37639, x=-1, y=1.37639), iteration=3: -1.376381920471\n    test 2920 126 125.939019715793 Xi(tan=-1.37947, x=-1.17912, y=1.62655), iteration=2: -1.376381920471\n\n    test 2921 126 125.817184307945 Phi(tan=-1.38566, x=-0.585201, y=0.810888): -1.376381920471\n    test 2922 126 125.908544256035 Beta(tan=-1.38101, x=-0.586493, y=0.809954): -1.376381920471\n    test 2923 126 126.000000000000 Theta(tan=-1.37638, x=-0.587785, y=0.809017): -1.376381920471\n    test 2924 126 125.954242166425 Mu(tan=-1.3787, x=-0.587139, y=0.809486): -1.376381920471\n    test 2925 126 125.999865716658 Chi(tan=-1.37639, x=-0.587783, y=0.809018): -1.376381920471\n    test 2926 126 125.939019715793 Xi(tan=-1.37947, x=-0.586924, y=0.809642): -1.376381920471\n\n    test 2927 133 132.808090472544 Phi(tan=-1.0796, x=-0.681998, y=0.736283): -1.072368710025\n    test 2928 133 132.904033458108 Beta(tan=-1.07598, x=-0.681998, y=0.733814): -1.072368710025\n    test 2929 133 133.000000000000 Theta(tan=-1.07237, x=-0.681998, y=0.731354): -1.072368710025\n    test 2930 133 132.952009355583 Mu(tan=-1.07417, x=-0.681386, y=0.731925), iteration=2: -1.072368710025\n    test 2931 133 132.999884783382 Chi(tan=-1.07237, x=-1, y=1.07237), iteration=2: -1.072368710025\n    test 2932 133 132.936030863456 Xi(tan=-1.07477, x=-1.36848, y=1.4708), iteration=3: -1.072368710025\n\n    test 2933 133 132.808090472544 Phi(tan=-1.0796, x=-0.679545, y=0.733634): -1.072368710025\n    test 2934 133 132.904033458108 Beta(tan=-1.07598, x=-0.680772, y=0.732495): -1.072368710025\n    test 2935 133 133.000000000000 Theta(tan=-1.07237, x=-0.681998, y=0.731354): -1.072368710025\n    test 2936 133 132.952009355583 Mu(tan=-1.07417, x=-0.681386, y=0.731925): -1.072368710025\n    test 2937 133 132.999884783382 Chi(tan=-1.07237, x=-0.681997, y=0.731355): -1.072368710025\n    test 2938 133 132.936030863456 Xi(tan=-1.07477, x=-0.681181, y=0.732115): -1.072368710025\n\n    test 2939 140 139.810389526291 Phi(tan=-0.844755, x=-0.766044, y=0.64712): -0.839099631177\n    test 2940 140 139.905221888853 Beta(tan=-0.841922, x=-0.766044, y=0.64495): -0.839099631177\n    test 2941 140 140.000000000000 Theta(tan=-0.8391, x=-0.766044, y=0.642788): -0.839099631177\n    test 2942 140 139.952627882329 Mu(tan=-0.84051, x=-0.765513, y=0.643421), iteration=3: -0.839099631177\n    test 2943 140 139.999912050710 Chi(tan=-0.839102, x=-1, y=0.839102), iteration=3: -0.839099631177\n    test 2944 140 139.936841998365 Xi(tan=-0.84098, x=-1.53754, y=1.29304), iteration=2: -0.839099631177\n\n    test 2945 140 139.810389526291 Phi(tan=-0.844755, x=-0.763913, y=0.645319): -0.839099631177\n    test 2946 140 139.905221888853 Beta(tan=-0.841922, x=-0.76498, y=0.644054): -0.839099631177\n    test 2947 140 140.000000000000 Theta(tan=-0.8391, x=-0.766044, y=0.642788): -0.839099631177\n    test 2948 140 139.952627882329 Mu(tan=-0.84051, x=-0.765513, y=0.643421): -0.839099631177\n    test 2949 140 139.999912050710 Chi(tan=-0.839102, x=-0.766043, y=0.642789): -0.839099631177\n    test 2950 140 139.936841998365 Xi(tan=-0.84098, x=-0.765335, y=0.643632): -0.839099631177\n\n    test 2951 147 146.823972083650 Phi(tan=-0.653784, x=-0.838671, y=0.54831): -0.649407593198\n    test 2952 147 146.912045740495 Beta(tan=-0.651592, x=-0.838671, y=0.546471): -0.649407593198\n    test 2953 147 147.000000000000 Theta(tan=-0.649408, x=-0.838671, y=0.544639): -0.649407593198\n    test 2954 147 146.956060147954 Mu(tan=-0.650498, x=-0.838253, y=0.545282), iteration=2: -0.649407593198\n    test 2955 147 146.999941372376 Chi(tan=-0.649409, x=-1, y=0.649409), iteration=2: -0.649407593198\n    test 2956 147 146.941406134703 Xi(tan=-0.650863, x=-1.68375, y=1.09589), iteration=2: -0.649407593198\n\n    test 2957 147 146.823972083650 Phi(tan=-0.653784, x=-0.836993, y=0.547213): -0.649407593198\n    test 2958 147 146.912045740495 Beta(tan=-0.651592, x=-0.837834, y=0.545926): -0.649407593198\n    test 2959 147 147.000000000000 Theta(tan=-0.649408, x=-0.838671, y=0.544639): -0.649407593198\n    test 2960 147 146.956060147954 Mu(tan=-0.650498, x=-0.838253, y=0.545282): -0.649407593198\n    test 2961 147 146.999941372376 Chi(tan=-0.649409, x=-0.83867, y=0.54464): -0.649407593198\n    test 2962 147 146.941406134703 Xi(tan=-0.650863, x=-0.838113, y=0.545496): -0.649407593198\n\n    test 2963 154 153.848054049875 Phi(tan=-0.49102, x=-0.898794, y=0.441326): -0.487732588566\n    test 2964 154 153.924105301481 Beta(tan=-0.489373, x=-0.898794, y=0.439846): -0.487732588566\n    test 2965 154 154.000000000000 Theta(tan=-0.487733, x=-0.898794, y=0.438371): -0.487732588566\n    test 2966 154 153.962101517600 Mu(tan=-0.488552, x=-0.898504, y=0.438966), iteration=3: -0.487732588566\n    test 2967 154 153.999967210311 Chi(tan=-0.487733, x=-1, y=0.487733), iteration=3: -0.487732588566\n    test 2968 154 153.949453115559 Xi(tan=-0.488825, x=-1.80488, y=0.882271), iteration=3: -0.487732588566\n\n    test 2969 154 153.848054049875 Phi(tan=-0.49102, x=-0.897628, y=0.440753): -0.487732588566\n    test 2970 154 153.924105301481 Beta(tan=-0.489373, x=-0.898213, y=0.439561): -0.487732588566\n    test 2971 154 154.000000000000 Theta(tan=-0.487733, x=-0.898794, y=0.438371): -0.487732588566\n    test 2972 154 153.962101517600 Mu(tan=-0.488552, x=-0.898504, y=0.438966): -0.487732588566\n    test 2973 154 153.999967210311 Chi(tan=-0.487733, x=-0.898794, y=0.438372): -0.487732588566\n    test 2974 154 153.949453115559 Xi(tan=-0.488825, x=-0.898407, y=0.439164): -0.487732588566\n\n    test 2975 161 160.881217808592 Phi(tan=-0.346648, x=-0.945519, y=0.327762): -0.344327613290\n    test 2976 161 160.940687365843 Beta(tan=-0.345486, x=-0.945519, y=0.326663): -0.344327613290\n    test 2977 161 161.000000000000 Theta(tan=-0.344328, x=-0.945519, y=0.325568): -0.344327613290\n    test 2978 161 160.970392653926 Mu(tan=-0.344906, x=-0.94535, y=0.326057), iteration=3: -0.344327613290\n    test 2979 161 160.999985859992 Chi(tan=-0.344328, x=-1, y=0.344328), iteration=3: -0.344327613290\n    test 2980 161 160.960505433888 Xi(tan=-0.345099, x=-1.89908, y=0.655369), iteration=2: -0.344327613290\n\n    test 2981 161 160.881217808592 Phi(tan=-0.346648, x=-0.944842, y=0.327528): -0.344327613290\n    test 2982 161 160.940687365843 Beta(tan=-0.345486, x=-0.945181, y=0.326547): -0.344327613290\n    test 2983 161 161.000000000000 Theta(tan=-0.344328, x=-0.945519, y=0.325568): -0.344327613290\n    test 2984 161 160.970392653926 Mu(tan=-0.344906, x=-0.94535, y=0.326057): -0.344327613290\n    test 2985 161 160.999985859992 Chi(tan=-0.344328, x=-0.945518, y=0.325568): -0.344327613290\n    test 2986 161 160.960505433888 Xi(tan=-0.345099, x=-0.945294, y=0.32622): -0.344327613290\n\n    test 2987 168 167.921493317051 Phi(tan=-0.213989, x=-0.978148, y=0.209313): -0.212556561670\n    test 2988 168 167.960806838131 Beta(tan=-0.213272, x=-0.978148, y=0.208611): -0.212556561670\n    test 2989 168 168.000000000000 Theta(tan=-0.212557, x=-0.978148, y=0.207912): -0.212556561670\n    test 2990 168 167.980440972867 Mu(tan=-0.212913, x=-0.978077, y=0.208246), iteration=3: -0.212556561670\n    test 2991 168 167.999996188328 Chi(tan=-0.212557, x=-1, y=0.212557), iteration=3: -0.212556561670\n    test 2992 168 167.973906475806 Xi(tan=-0.213033, x=-1.96489, y=0.418585), iteration=3: -0.212556561670\n\n    test 2993 168 167.921493317051 Phi(tan=-0.213989, x=-0.977862, y=0.209252): -0.212556561670\n    test 2994 168 167.960806838131 Beta(tan=-0.213272, x=-0.978005, y=0.208581): -0.212556561670\n    test 2995 168 168.000000000000 Theta(tan=-0.212557, x=-0.978148, y=0.207912): -0.212556561670\n    test 2996 168 167.980440972867 Mu(tan=-0.212913, x=-0.978077, y=0.208246): -0.212556561670\n    test 2997 168 167.999996188328 Chi(tan=-0.212557, x=-0.978148, y=0.207912): -0.212556561670\n    test 2998 168 167.973906475806 Xi(tan=-0.213033, x=-0.978053, y=0.208357): -0.212556561670\n\n    test 2999 175 174.966475056686 Phi(tan=-0.0880783, x=-0.996195, y=0.0877431): -0.087488663526\n    test 3000 175 174.983265245736 Beta(tan=-0.087783, x=-0.996195, y=0.0874489): -0.087488663526\n    test 3001 175 175.000000000000 Theta(tan=-0.0874887, x=-0.996195, y=0.0871557): -0.087488663526\n    test 3002 175 174.991649917523 Mu(tan=-0.0876355, x=-0.996182, y=0.0873009), iteration=3: -0.087488663526\n    test 3003 175 174.999999713957 Chi(tan=-0.0874887, x=-1, y=0.0874887), iteration=3: -0.087488663526\n    test 3004 175 174.988859535139 Xi(tan=-0.0876846, x=-2.0013, y=0.175483), iteration=2: -0.087488663526\n\n    test 3005 175 174.966475056686 Phi(tan=-0.0880783, x=-0.996144, y=0.0877386): -0.087488663526\n    test 3006 175 174.983265245736 Beta(tan=-0.087783, x=-0.996169, y=0.0874467): -0.087488663526\n    test 3007 175 175.000000000000 Theta(tan=-0.0874887, x=-0.996195, y=0.0871557): -0.087488663526\n    test 3008 175 174.991649917523 Mu(tan=-0.0876355, x=-0.996182, y=0.0873009): -0.087488663526\n    test 3009 175 174.999999713957 Chi(tan=-0.0874887, x=-0.996195, y=0.0871557): -0.087488663526\n    test 3010 175 174.988859535139 Xi(tan=-0.0876846, x=-0.996178, y=0.0873494): -0.087488663526\n\n    test 3011 182 182.013467936189 Phi(tan=0.0351561, x=-0.999391, y=-0.0351347): 0.034920769492\n    test 3012 182 182.006722688009 Beta(tan=0.0350382, x=-0.999391, y=-0.0350169): 0.034920769492\n    test 3013 182 182.000000000000 Theta(tan=0.0349208, x=-0.999391, y=-0.0348995): 0.034920769492\n    test 3014 182 182.003354305769 Mu(tan=0.0349794, x=-0.999389, y=-0.034958), iteration=3: 0.034920769492\n    test 3015 182 182.000000018425 Chi(tan=0.0349208, x=-1, y=-0.0349208), iteration=2: 0.034920769492\n    test 3016 182 182.004475278247 Xi(tan=0.034999, x=-2.00775, y=-0.0702692), iteration=3: 0.034920769492\n\n    test 3017 182 182.013467936189 Phi(tan=0.0351561, x=-0.999383, y=-0.0351344): 0.034920769492\n    test 3018 182 182.006722688009 Beta(tan=0.0350382, x=-0.999387, y=-0.0350168): 0.034920769492\n    test 3019 182 182.000000000000 Theta(tan=0.0349208, x=-0.999391, y=-0.0348995): 0.034920769492\n    test 3020 182 182.003354305769 Mu(tan=0.0349794, x=-0.999389, y=-0.034958): 0.034920769492\n    test 3021 182 182.000000018425 Chi(tan=0.0349208, x=-0.999391, y=-0.0348995): 0.034920769492\n    test 3022 182 182.004475278247 Xi(tan=0.034999, x=-0.999388, y=-0.0349776): 0.034920769492\n\n    test 3023 189 189.059652780363 Phi(tan=0.159452, x=-0.987688, y=-0.157489): 0.158384440325\n    test 3024 189 189.029778772560 Beta(tan=0.158917, x=-0.987688, y=-0.156961): 0.158384440325\n    test 3025 189 189.000000000000 Theta(tan=0.158384, x=-0.987688, y=-0.156434): 0.158384440325\n    test 3026 189 189.014859673134 Mu(tan=0.15865, x=-0.987648, y=-0.156691), iteration=2: 0.158384440325\n    test 3027 189 189.000001639674 Chi(tan=0.158384, x=-1, y=-0.158384), iteration=3: 0.158384440325\n    test 3028 189 189.019824807860 Xi(tan=0.158739, x=-1.98414, y=-0.31496), iteration=3: 0.158384440325\n\n    test 3029 189 189.059652780363 Phi(tan=0.159452, x=-0.987525, y=-0.157463): 0.158384440325\n    test 3030 189 189.029778772560 Beta(tan=0.158917, x=-0.987607, y=-0.156948): 0.158384440325\n    test 3031 189 189.000000000000 Theta(tan=0.158384, x=-0.987688, y=-0.156434): 0.158384440325\n    test 3032 189 189.014859673134 Mu(tan=0.15865, x=-0.987648, y=-0.156691): 0.158384440325\n    test 3033 189 189.000001639674 Chi(tan=0.158384, x=-0.987688, y=-0.156434): 0.158384440325\n    test 3034 189 189.019824807860 Xi(tan=0.158739, x=-0.987634, y=-0.156776): 0.158384440325\n\n    test 3035 196 196.102260292825 Phi(tan=0.288678, x=-0.961262, y=-0.277495): 0.286745385759\n    test 3036 196 196.051057415277 Beta(tan=0.28771, x=-0.961262, y=-0.276565): 0.286745385759\n    test 3037 196 196.000000000000 Theta(tan=0.286745, x=-0.961262, y=-0.275637): 0.286745385759\n    test 3038 196 196.025483317057 Mu(tan=0.287227, x=-0.961139, y=-0.276065), iteration=2: 0.286745385759\n    test 3039 196 196.000008725999 Chi(tan=0.286746, x=-1, y=-0.286746), iteration=3: 0.286745385759\n    test 3040 196 196.033995121177 Xi(tan=0.287388, x=-1.93083, y=-0.554896), iteration=2: 0.286745385759\n\n    test 3041 196 196.102260292825 Phi(tan=0.288678, x=-0.960768, y=-0.277353): 0.286745385759\n    test 3042 196 196.051057415277 Beta(tan=0.28771, x=-0.961016, y=-0.276494): 0.286745385759\n    test 3043 196 196.000000000000 Theta(tan=0.286745, x=-0.961262, y=-0.275637): 0.286745385759\n    test 3044 196 196.025483317057 Mu(tan=0.287227, x=-0.961139, y=-0.276065): 0.286745385759\n    test 3045 196 196.000008725999 Chi(tan=0.286746, x=-0.961262, y=-0.275638): 0.286745385759\n    test 3046 196 196.033995121177 Xi(tan=0.287388, x=-0.961098, y=-0.276208): 0.286745385759\n\n    test 3047 203 203.138741606579 Phi(tan=0.427336, x=-0.920505, y=-0.393364): 0.424474816210\n    test 3048 203 203.069290086312 Beta(tan=0.425903, x=-0.920505, y=-0.392046): 0.424474816210\n    test 3049 203 203.000000000000 Theta(tan=0.424475, x=-0.920505, y=-0.390731): 0.424474816210\n    test 3050 203 203.034594657995 Mu(tan=0.425188, x=-0.920269, y=-0.391287), iteration=2: 0.424474816210\n    test 3051 203 203.000023787567 Chi(tan=0.424475, x=-1, y=-0.424475), iteration=2: 0.424474816210\n    test 3052 203 203.046143605881 Xi(tan=0.425426, x=-1.84864, y=-0.78646), iteration=2: 0.424474816210\n\n    test 3053 203 203.138741606579 Phi(tan=0.427336, x=-0.919556, y=-0.392959): 0.424474816210\n    test 3054 203 203.069290086312 Beta(tan=0.425903, x=-0.920032, y=-0.391844): 0.424474816210\n    test 3055 203 203.000000000000 Theta(tan=0.424475, x=-0.920505, y=-0.390731): 0.424474816210\n    test 3056 203 203.034594657995 Mu(tan=0.425188, x=-0.920269, y=-0.391287): 0.424474816210\n    test 3057 203 203.000023787567 Chi(tan=0.424475, x=-0.920505, y=-0.390732): 0.424474816210\n    test 3058 203 203.046143605881 Xi(tan=0.425426, x=-0.92019, y=-0.391472): 0.424474816210\n\n    test 3059 210 210.166923849507 Phi(tan=0.581241, x=-0.866025, y=-0.50337): 0.577350269190\n    test 3060 210 210.083392202979 Beta(tan=0.579293, x=-0.866025, y=-0.501682): 0.577350269190\n    test 3061 210 210.000000000000 Theta(tan=0.57735, x=-0.866025, y=-0.5): 0.577350269190\n    test 3062 210 210.041652569165 Mu(tan=0.57832, x=-0.865662, y=-0.500629), iteration=3: 0.577350269190\n    test 3063 210 210.000046858553 Chi(tan=0.577351, x=-1, y=-0.577351), iteration=2: 0.577350269190\n    test 3064 210 210.055548278686 Xi(tan=0.578644, x=-1.73885, y=-1.00618), iteration=2: 0.577350269190\n\n    test 3065 210 210.166923849507 Phi(tan=0.581241, x=-0.864565, y=-0.502521): 0.577350269190\n    test 3066 210 210.083392202979 Beta(tan=0.579293, x=-0.865297, y=-0.50126): 0.577350269190\n    test 3067 210 210.000000000000 Theta(tan=0.57735, x=-0.866025, y=-0.5): 0.577350269190\n    test 3068 210 210.041652569165 Mu(tan=0.57832, x=-0.865662, y=-0.500629): 0.577350269190\n    test 3069 210 210.000046858553 Chi(tan=0.577351, x=-0.866025, y=-0.500001): 0.577350269190\n    test 3070 210 210.055548278686 Xi(tan=0.578644, x=-0.86554, y=-0.500839): 0.577350269190\n\n    test 3071 217 217.185140504831 Phi(tan=0.758633, x=-0.798636, y=-0.605871): 0.753554050103\n    test 3072 217 217.092527888642 Beta(tan=0.756089, x=-0.798636, y=-0.60384): 0.753554050103\n    test 3073 217 217.000000000000 Theta(tan=0.753554, x=-0.798636, y=-0.601815): 0.753554050103\n    test 3074 217 217.046237489147 Mu(tan=0.75482, x=-0.79815, y=-0.602459), iteration=2: 0.753554050103\n    test 3075 217 217.000075282212 Chi(tan=0.753556, x=-1, y=-0.753556), iteration=3: 0.753554050103\n    test 3076 217 217.061650740215 Xi(tan=0.755242, x=-1.60314, y=-1.21076), iteration=2: 0.753554050103\n\n    test 3077 217 217.185140504831 Phi(tan=0.758633, x=-0.796687, y=-0.604393): 0.753554050103\n    test 3078 217 217.092527888642 Beta(tan=0.756089, x=-0.797663, y=-0.603104): 0.753554050103\n    test 3079 217 217.000000000000 Theta(tan=0.753554, x=-0.798636, y=-0.601815): 0.753554050103\n    test 3080 217 217.046237489147 Mu(tan=0.75482, x=-0.79815, y=-0.602459): 0.753554050103\n    test 3081 217 217.000075282212 Chi(tan=0.753556, x=-0.798635, y=-0.601816): 0.753554050103\n    test 3082 217 217.061650740215 Xi(tan=0.755242, x=-0.797987, y=-0.602674): 0.753554050103\n\n    test 3083 224 224.192328540028 Phi(tan=0.972197, x=-0.71934, y=-0.69934): 0.965688774807\n    test 3084 224 224.096159176144 Beta(tan=0.968937, x=-0.71934, y=-0.696995): 0.965688774807\n    test 3085 224 224.000000000000 Theta(tan=0.965689, x=-0.71934, y=-0.694658): 0.965688774807\n    test 3086 224 224.048076415859 Mu(tan=0.967312, x=-0.718757, y=-0.695262), iteration=3: 0.965688774807\n    test 3087 224 224.000104179110 Chi(tan=0.965692, x=-1, y=-0.965692), iteration=3: 0.965688774807\n    test 3088 224 224.064089278462 Xi(tan=0.967853, x=-1.44358, y=-1.39717), iteration=3: 0.965688774807\n\n    test 3089 224 224.192328540028 Phi(tan=0.972197, x=-0.717004, y=-0.697069): 0.965688774807\n    test 3090 224 224.096159176144 Beta(tan=0.968937, x=-0.718173, y=-0.695865): 0.965688774807\n    test 3091 224 224.000000000000 Theta(tan=0.965689, x=-0.71934, y=-0.694658): 0.965688774807\n    test 3092 224 224.048076415859 Mu(tan=0.967312, x=-0.718757, y=-0.695262): 0.965688774807\n    test 3093 224 224.000104179110 Chi(tan=0.965692, x=-0.719339, y=-0.69466): 0.965688774807\n    test 3094 224 224.064089278462 Xi(tan=0.967853, x=-0.718562, y=-0.695463): 0.965688774807\n\n    test 3095 231 231.188087005479 Phi(tan=1.24322, x=-0.62932, y=-0.782384): 1.234897156535\n    test 3096 231 231.094076843128 Beta(tan=1.23905, x=-0.62932, y=-0.77976): 1.234897156535\n    test 3097 231 231.000000000000 Theta(tan=1.2349, x=-0.62932, y=-0.777146): 1.234897156535\n    test 3098 231 231.047059277252 Mu(tan=1.23697, x=-0.628682, y=-0.777663), iteration=3: 1.234897156535\n    test 3099 231 231.000127493216 Chi(tan=1.2349, x=-1, y=-1.2349), iteration=2: 1.234897156535\n    test 3100 231 231.062720168394 Xi(tan=1.23766, x=-1.26258, y=-1.56265), iteration=3: 1.234897156535\n\n    test 3101 231 231.188087005479 Phi(tan=1.24322, x=-0.626766, y=-0.779208): 1.234897156535\n    test 3102 231 231.094076843128 Beta(tan=1.23905, x=-0.628044, y=-0.778178): 1.234897156535\n    test 3103 231 231.000000000000 Theta(tan=1.2349, x=-0.62932, y=-0.777146): 1.234897156535\n    test 3104 231 231.047059277252 Mu(tan=1.23697, x=-0.628682, y=-0.777663): 1.234897156535\n    test 3105 231 231.000127493216 Chi(tan=1.2349, x=-0.629319, y=-0.777147): 1.234897156535\n    test 3106 231 231.062720168394 Xi(tan=1.23766, x=-0.628469, y=-0.777834): 1.234897156535\n\n    test 3107 238 238.172694719424 Phi(tan=1.61112, x=-0.529919, y=-0.853764): 1.600334529041\n    test 3108 238 238.086411314589 Beta(tan=1.60572, x=-0.529919, y=-0.850901): 1.600334529041\n    test 3109 238 238.000000000000 Theta(tan=1.60033, x=-0.529919, y=-0.848048): 1.600334529041\n    test 3110 238 238.043245666868 Mu(tan=1.60303, x=-0.529279, y=-0.848448), iteration=3: 1.600334529041\n    test 3111 238 238.000139371942 Chi(tan=1.60034, x=-1, y=-1.60034), iteration=3: 1.600334529041\n    test 3112 238 238.057625944391 Xi(tan=1.60392, x=-1.06288, y=-1.70478), iteration=2: 1.600334529041\n\n    test 3113 238 238.172694719424 Phi(tan=1.61112, x=-0.527361, y=-0.849641): 1.600334529041\n    test 3114 238 238.086411314589 Beta(tan=1.60572, x=-0.52864, y=-0.848846): 1.600334529041\n    test 3115 238 238.000000000000 Theta(tan=1.60033, x=-0.529919, y=-0.848048): 1.600334529041\n    test 3116 238 238.043245666868 Mu(tan=1.60303, x=-0.529279, y=-0.848448): 1.600334529041\n    test 3117 238 238.000139371942 Chi(tan=1.60034, x=-0.529917, y=-0.848049): 1.600334529041\n    test 3118 238 238.057625944391 Xi(tan=1.60392, x=-0.529066, y=-0.848581): 1.600334529041\n\n    test 3119 245 245.147087439517 Phi(tan=2.15896, x=-0.422618, y=-0.912416): 2.144506920510\n    test 3120 245 245.073623344306 Beta(tan=2.15172, x=-0.422618, y=-0.909357): 2.144506920510\n    test 3121 245 245.000000000000 Theta(tan=2.14451, x=-0.422618, y=-0.906308): 2.144506920510\n    test 3122 245 245.036861496413 Mu(tan=2.14811, x=-0.422035, y=-0.906579), iteration=3: 2.144506920510\n    test 3123 245 245.000135557054 Chi(tan=2.14452, x=-1, y=-2.14452), iteration=3: 2.144506920510\n    test 3124 245 245.049110215384 Xi(tan=2.14931, x=-0.847471, y=-1.82148), iteration=3: 2.144506920510\n\n    test 3125 245 245.147087439517 Phi(tan=2.15896, x=-0.42029, y=-0.90739): 2.144506920510\n    test 3126 245 245.073623344306 Beta(tan=2.15172, x=-0.421453, y=-0.90685): 2.144506920510\n    test 3127 245 245.000000000000 Theta(tan=2.14451, x=-0.422618, y=-0.906308): 2.144506920510\n    test 3128 245 245.036861496413 Mu(tan=2.14811, x=-0.422035, y=-0.906579): 2.144506920510\n    test 3129 245 245.000135557054 Chi(tan=2.14452, x=-0.422616, y=-0.906309): 2.144506920510\n    test 3130 245 245.049110215384 Xi(tan=2.14931, x=-0.421841, y=-0.90667): 2.144506920510\n\n    test 3131 252 252.112797334151 Phi(tan=3.09843, x=-0.309017, y=-0.957466): 3.077683537175\n    test 3132 252 252.056475395211 Beta(tan=3.08804, x=-0.309017, y=-0.954256): 3.077683537175\n    test 3133 252 252.000000000000 Theta(tan=3.07768, x=-0.309017, y=-0.951057): 3.077683537175\n    test 3134 252 252.028285720189 Mu(tan=3.08286, x=-0.308547, y=-0.951209), iteration=2: 3.077683537175\n    test 3135 252 252.000114461007 Chi(tan=3.0777, x=-1, y=-3.0777), iteration=3: 3.077683537175\n    test 3136 252 252.037679397301 Xi(tan=3.08458, x=-0.619552, y=-1.91106), iteration=3: 3.077683537175\n\n    test 3137 252 252.112797334151 Phi(tan=3.09843, x=-0.307144, y=-0.951663): 3.077683537175\n    test 3138 252 252.056475395211 Beta(tan=3.08804, x=-0.308079, y=-0.951361): 3.077683537175\n    test 3139 252 252.000000000000 Theta(tan=3.07768, x=-0.309017, y=-0.951057): 3.077683537175\n    test 3140 252 252.028285720189 Mu(tan=3.08286, x=-0.308547, y=-0.951209): 3.077683537175\n    test 3141 252 252.000114461007 Chi(tan=3.0777, x=-0.309015, y=-0.951057): 3.077683537175\n    test 3142 252 252.037679397301 Xi(tan=3.08458, x=-0.308391, y=-0.95126): 3.077683537175\n\n    test 3143 259 259.071859476624 Phi(tan=5.17923, x=-0.190809, y=-0.988243): 5.144554015970\n    test 3144 259 259.035985707307 Beta(tan=5.16186, x=-0.190809, y=-0.984929): 5.144554015970\n    test 3145 259 259.000000000000 Theta(tan=5.14455, x=-0.190809, y=-0.981627): 5.144554015970\n    test 3146 259 259.018027889335 Mu(tan=5.15321, x=-0.1905, y=-0.981687), iteration=3: 5.144554015970\n    test 3147 259 259.000077676273 Chi(tan=5.14459, x=-1, y=-5.14459), iteration=3: 5.144554015970\n    test 3148 259 259.024012504065 Xi(tan=5.15609, x=-0.382505, y=-1.97223), iteration=2: 5.144554015970\n\n    test 3149 259 259.071859476624 Phi(tan=5.17923, x=-0.189578, y=-0.981866): 5.144554015970\n    test 3150 259 259.035985707307 Beta(tan=5.16186, x=-0.190192, y=-0.981747): 5.144554015970\n    test 3151 259 259.000000000000 Theta(tan=5.14455, x=-0.190809, y=-0.981627): 5.144554015970\n    test 3152 259 259.018027889335 Mu(tan=5.15321, x=-0.1905, y=-0.981687): 5.144554015970\n    test 3153 259 259.000077676273 Chi(tan=5.14459, x=-0.190808, y=-0.981627): 5.144554015970\n    test 3154 259 259.024012504065 Xi(tan=5.15609, x=-0.190398, y=-0.981707): 5.144554015970\n\n    test 3155 266 266.026691465344 Phi(tan=14.397, x=-0.0697565, y=-1.00429): 14.300666256712\n    test 3156 266 266.013367926454 Beta(tan=14.3488, x=-0.0697565, y=-1.00092): 14.300666256712\n    test 3157 266 266.000000000000 Theta(tan=14.3007, x=-0.0697565, y=-0.997564): 14.300666256712\n    test 3158 266 266.006697857429 Mu(tan=14.3247, x=-0.0696399, y=-0.997572), iteration=2: 14.300666256712\n    test 3159 266 266.000029795215 Chi(tan=14.3008, x=-1, y=-14.3008), iteration=3: 14.300666256712\n    test 3160 266 266.008920822994 Xi(tan=14.3327, x=-0.139827, y=-2.00411), iteration=3: 14.300666256712\n\n    test 3161 266 266.026691465344 Phi(tan=14.397, x=-0.0692917, y=-0.997596): 14.300666256712\n    test 3162 266 266.013367926454 Beta(tan=14.3488, x=-0.0695237, y=-0.99758): 14.300666256712\n    test 3163 266 266.000000000000 Theta(tan=14.3007, x=-0.0697565, y=-0.997564): 14.300666256712\n    test 3164 266 266.006697857429 Mu(tan=14.3247, x=-0.0696399, y=-0.997572): 14.300666256712\n    test 3165 266 266.000029795215 Chi(tan=14.3008, x=-0.069756, y=-0.997564): 14.300666256712\n    test 3166 266 266.008920822994 Xi(tan=14.3327, x=-0.0696012, y=-0.997575): 14.300666256712\n\n    test 3167 273 272.979953179188 Phi(tan=-19.2097, x=0.052336, y=-1.00536): -19.081136687728\n    test 3168 273 272.989959849669 Beta(tan=-19.1453, x=0.052336, y=-1.00199): -19.081136687728\n    test 3169 273 273.000000000000 Theta(tan=-19.0811, x=0.052336, y=-0.99863): -19.081136687728\n    test 3170 273 272.994969444902 Mu(tan=-19.1132, x=0.0522483, y=-0.998634), iteration=3: -19.081136687728\n    test 3171 273 272.999977574321 Chi(tan=-19.0813, x=1.0, y=-19.0813), iteration=3: -19.081136687728\n    test 3172 273 272.993299868195 Xi(tan=-19.1239, x=0.104907, y=-2.00624), iteration=3: -19.081136687728\n\n    test 3173 273 272.979953179188 Phi(tan=-19.2097, x=0.0519865, y=-0.998648): -19.081136687728\n    test 3174 273 272.989959849669 Beta(tan=-19.1453, x=0.052161, y=-0.998639): -19.081136687728\n    test 3175 273 273.000000000000 Theta(tan=-19.0811, x=0.052336, y=-0.99863): -19.081136687728\n    test 3176 273 272.994969444902 Mu(tan=-19.1132, x=0.0522483, y=-0.998634): -19.081136687728\n    test 3177 273 272.999977574321 Chi(tan=-19.0813, x=0.0523356, y=-0.99863): -19.081136687728\n    test 3178 273 272.993299868195 Xi(tan=-19.1239, x=0.0522192, y=-0.998636): -19.081136687728\n\n    test 3179 280 279.934394210279 Phi(tan=-5.7095, x=0.173648, y=-0.991445): -5.671281819618\n    test 3180 280 279.967145322218 Beta(tan=-5.69036, x=0.173648, y=-0.988121): -5.671281819618\n    test 3181 280 280.000000000000 Theta(tan=-5.67128, x=0.173648, y=-0.984808): -5.671281819618\n    test 3182 280 279.983540245263 Mu(tan=-5.68082, x=0.173365, y=-0.984858), iteration=3: -5.671281819618\n    test 3183 280 279.999928623941 Chi(tan=-5.67132, x=1.0, y=-5.67132), iteration=3: -5.671281819618\n    test 3184 280 279.978076430885 Xi(tan=-5.684, x=0.348099, y=-1.97859), iteration=3: -5.671281819618\n\n    test 3185 280 279.934394210279 Phi(tan=-5.7095, x=0.17252, y=-0.985006): -5.671281819618\n    test 3186 280 279.967145322218 Beta(tan=-5.69036, x=0.173083, y=-0.984907): -5.671281819618\n    test 3187 280 280.000000000000 Theta(tan=-5.67128, x=0.173648, y=-0.984808): -5.671281819618\n    test 3188 280 279.983540245263 Mu(tan=-5.68082, x=0.173365, y=-0.984858): -5.671281819618\n    test 3189 280 279.999928623941 Chi(tan=-5.67132, x=0.173647, y=-0.984808): -5.671281819618\n    test 3190 280 279.978076430885 Xi(tan=-5.684, x=0.173271, y=-0.984874): -5.671281819618\n\n    test 3191 287 286.892696785077 Phi(tan=-3.2929, x=0.292372, y=-0.96275): -3.270852618484\n    test 3192 287 286.946273607855 Beta(tan=-3.28186, x=0.292372, y=-0.959522): -3.270852618484\n    test 3193 287 287.000000000000 Theta(tan=-3.27085, x=0.292372, y=-0.956305): -3.270852618484\n    test 3194 287 286.973089996409 Mu(tan=-3.27636, x=0.291923, y=-0.956442), iteration=2: -3.270852618484\n    test 3195 287 286.999889910594 Chi(tan=-3.27088, x=1.0, y=-3.27088), iteration=3: -3.270852618484\n    test 3196 287 286.964153811789 Xi(tan=-3.27819, x=0.586167, y=-1.92156), iteration=3: -3.270852618484\n\n    test 3197 287 286.892696785077 Phi(tan=-3.2929, x=0.29058, y=-0.956851): -3.270852618484\n    test 3198 287 286.946273607855 Beta(tan=-3.28186, x=0.291475, y=-0.956578): -3.270852618484\n    test 3199 287 287.000000000000 Theta(tan=-3.27085, x=0.292372, y=-0.956305): -3.270852618484\n    test 3200 287 286.973089996409 Mu(tan=-3.27636, x=0.291923, y=-0.956442): -3.270852618484\n    test 3201 287 286.999889910594 Chi(tan=-3.27088, x=0.29237, y=-0.956305): -3.270852618484\n    test 3202 287 286.964153811789 Xi(tan=-3.27819, x=0.291773, y=-0.956487): -3.270852618484\n\n    test 3203 294 293.857322070702 Phi(tan=-2.26117, x=0.406737, y=-0.919702): -2.246036773904\n    test 3204 294 293.928580656019 Beta(tan=-2.25359, x=0.406737, y=-0.916619): -2.246036773904\n    test 3205 294 294.000000000000 Theta(tan=-2.24604, x=0.406737, y=-0.913545): -2.246036773904\n    test 3206 294 293.964240029727 Mu(tan=-2.24981, x=0.406166, y=-0.913799), iteration=2: -2.246036773904\n    test 3207 294 293.999866400612 Chi(tan=-2.24605, x=1.0, y=-2.24605), iteration=3: -2.246036773904\n    test 3208 294 293.952358418734 Xi(tan=-2.25107, x=0.815599, y=-1.83597), iteration=2: -2.246036773904\n\n    test 3209 294 293.857322070702 Phi(tan=-2.26117, x=0.40446, y=-0.914555): -2.246036773904\n    test 3210 294 293.928580656019 Beta(tan=-2.25359, x=0.405598, y=-0.914052): -2.246036773904\n    test 3211 294 294.000000000000 Theta(tan=-2.24604, x=0.406737, y=-0.913545): -2.246036773904\n    test 3212 294 293.964240029727 Mu(tan=-2.24981, x=0.406166, y=-0.913799): -2.246036773904\n    test 3213 294 293.999866400612 Chi(tan=-2.24605, x=0.406735, y=-0.913546): -2.246036773904\n    test 3214 294 293.952358418734 Xi(tan=-2.25107, x=0.405977, y=-0.913883): -2.246036773904\n\n    test 3215 301 300.830367699497 Phi(tan=-1.6755, x=0.515038, y=-0.862944): -1.664279482351\n    test 3216 301 300.915116613042 Beta(tan=-1.66988, x=0.515038, y=-0.860051): -1.664279482351\n    test 3217 301 301.000000000000 Theta(tan=-1.66428, x=0.515038, y=-0.857167): -1.664279482351\n    test 3218 301 300.957516242525 Mu(tan=-1.66708, x=0.514402, y=-0.857549), iteration=3: -1.664279482351\n    test 3219 301 300.999860142450 Chi(tan=-1.66429, x=1.0, y=-1.66429), iteration=3: -1.664279482351\n    test 3220 301 300.943390839029 Xi(tan=-1.66801, x=1.033, y=-1.72305), iteration=2: -1.664279482351\n\n    test 3221 301 300.830367699497 Phi(tan=-1.6755, x=0.512498, y=-0.858688): -1.664279482351\n    test 3222 301 300.915116613042 Beta(tan=-1.66988, x=0.513768, y=-0.857929): -1.664279482351\n    test 3223 301 301.000000000000 Theta(tan=-1.66428, x=0.515038, y=-0.857167): -1.664279482351\n    test 3224 301 300.957516242525 Mu(tan=-1.66708, x=0.514402, y=-0.857549): -1.664279482351\n    test 3225 301 300.999860142450 Chi(tan=-1.66429, x=0.515036, y=-0.857169): -1.664279482351\n    test 3226 301 300.943390839029 Xi(tan=-1.66801, x=0.514191, y=-0.857676): -1.664279482351\n\n    test 3227 308 307.813444106313 Phi(tan=-1.28857, x=0.615661, y=-0.793322): -1.279941632193\n    test 3228 308 307.906683665119 Beta(tan=-1.28425, x=0.615661, y=-0.790662): -1.279941632193\n    test 3229 308 308.000000000000 Theta(tan=-1.27994, x=0.615661, y=-0.788011): -1.279941632193\n    test 3230 308 307.953317819859 Mu(tan=-1.28209, x=0.615019, y=-0.788512), iteration=3: -1.279941632193\n    test 3231 308 307.999869987124 Chi(tan=-1.27995, x=1.0, y=-1.27995), iteration=2: -1.279941632193\n    test 3232 308 307.937784253619 Xi(tan=-1.28281, x=1.23513, y=-1.58444), iteration=3: -1.279941632193\n\n    test 3233 308 307.813444106313 Phi(tan=-1.28857, x=0.613092, y=-0.790011): -1.279941632193\n    test 3234 308 307.906683665119 Beta(tan=-1.28425, x=0.614377, y=-0.789012): -1.279941632193\n    test 3235 308 308.000000000000 Theta(tan=-1.27994, x=0.615661, y=-0.788011): -1.279941632193\n    test 3236 308 307.953317819859 Mu(tan=-1.28209, x=0.615019, y=-0.788512): -1.279941632193\n    test 3237 308 307.999869987124 Chi(tan=-1.27995, x=0.61566, y=-0.788012): -1.279941632193\n    test 3238 308 307.937784253619 Xi(tan=-1.28281, x=0.614805, y=-0.788679): -1.279941632193\n\n    test 3239 315 314.807576784018 Phi(tan=-1.00674, x=0.707107, y=-0.711872): -1.000000000000\n    test 3240 315 314.903787849420 Beta(tan=-1.00336, x=0.707107, y=-0.709486): -1.000000000000\n    test 3241 315 315.000000000000 Theta(tan=-1, x=0.707107, y=-0.707107): -1.000000000000\n    test 3242 315 314.951893574286 Mu(tan=-1.00168, x=0.706513, y=-0.7077), iteration=2: -1.000000000000\n    test 3243 315 314.999892003023 Chi(tan=-1, x=1.0, y=-1), iteration=3: -1.000000000000\n    test 3244 315 314.935872656555 Xi(tan=-1.00224, x=1.41897, y=-1.42215), iteration=3: -1.000000000000\n\n    test 3245 315 314.807576784018 Phi(tan=-1.00674, x=0.704728, y=-0.709478): -1.000000000000\n    test 3246 315 314.903787849420 Beta(tan=-1.00336, x=0.705918, y=-0.708293): -1.000000000000\n    test 3247 315 315.000000000000 Theta(tan=-1, x=0.707107, y=-0.707107): -1.000000000000\n    test 3248 315 314.951893574286 Mu(tan=-1.00168, x=0.706513, y=-0.7077): -1.000000000000\n    test 3249 315 314.999892003023 Chi(tan=-1, x=0.707105, y=-0.707108): -1.000000000000\n    test 3250 315 314.935872656555 Xi(tan=-1.00224, x=0.706315, y=-0.707898): -1.000000000000\n\n    test 3251 322 321.813140716820 Phi(tan=-0.786551, x=0.788011, y=-0.619811): -0.781285626507\n    test 3252 322 321.906607816751 Beta(tan=-0.783914, x=0.788011, y=-0.617733): -0.781285626507\n    test 3253 322 322.000000000000 Theta(tan=-0.781286, x=0.788011, y=-0.615661): -0.781285626507\n    test 3254 322 321.953327300103 Mu(tan=-0.782598, x=0.787509, y=-0.616303), iteration=2: -0.781285626507\n    test 3255 322 321.999920484161 Chi(tan=-0.781288, x=1.0, y=-0.781288), iteration=2: -0.781285626507\n    test 3256 322 321.937770794620 Xi(tan=-0.783036, x=1.58175, y=-1.23857), iteration=3: -0.781285626507\n\n    test 3257 322 321.813140716820 Phi(tan=-0.786551, x=0.785999, y=-0.618228): -0.781285626507\n    test 3258 322 321.906607816751 Beta(tan=-0.783914, x=0.787006, y=-0.616945): -0.781285626507\n    test 3259 322 322.000000000000 Theta(tan=-0.781286, x=0.788011, y=-0.615661): -0.781285626507\n    test 3260 322 321.953327300103 Mu(tan=-0.782598, x=0.787509, y=-0.616303): -0.781285626507\n    test 3261 322 321.999920484161 Chi(tan=-0.781288, x=0.78801, y=-0.615663): -0.781285626507\n    test 3262 322 321.937770794620 Xi(tan=-0.783036, x=0.787342, y=-0.616517): -0.781285626507\n\n    test 3263 329 328.829831943495 Phi(tan=-0.60491, x=0.857167, y=-0.518509): -0.600860619028\n    test 3264 329 328.914982672653 Beta(tan=-0.602882, x=0.857167, y=-0.516771): -0.600860619028\n    test 3265 329 329.000000000000 Theta(tan=-0.600861, x=0.857167, y=-0.515038): -0.600860619028\n    test 3266 329 328.957532983891 Mu(tan=-0.60187, x=0.856785, y=-0.515673), iteration=2: -0.600860619028\n    test 3267 329 328.999949315138 Chi(tan=-0.600862, x=1.0, y=-0.600862), iteration=2: -0.600860619028\n    test 3268 329 328.943367072053 Xi(tan=-0.602207, x=1.72101, y=-1.0364), iteration=2: -0.600860619028\n\n    test 3269 329 328.829831943495 Phi(tan=-0.60491, x=0.855634, y=-0.517582): -0.600860619028\n    test 3270 329 328.914982672653 Beta(tan=-0.602882, x=0.856402, y=-0.516309): -0.600860619028\n    test 3271 329 329.000000000000 Theta(tan=-0.600861, x=0.857167, y=-0.515038): -0.600860619028\n    test 3272 329 328.957532983891 Mu(tan=-0.60187, x=0.856785, y=-0.515673): -0.600860619028\n    test 3273 329 328.999949315138 Chi(tan=-0.600862, x=0.857167, y=-0.515039): -0.600860619028\n    test 3274 329 328.943367072053 Xi(tan=-0.602207, x=0.856658, y=-0.515885): -0.600860619028\n\n    test 3275 336 335.856679369063 Phi(tan=-0.448229, x=0.913545, y=-0.409478): -0.445228685309\n    test 3276 336 335.928419979560 Beta(tan=-0.446726, x=0.913545, y=-0.408105): -0.445228685309\n    test 3277 336 336.000000000000 Theta(tan=-0.445229, x=0.913545, y=-0.406737): -0.445228685309\n    test 3278 336 335.964260113259 Mu(tan=-0.445976, x=0.913292, y=-0.407306), iteration=3: -0.445228685309\n    test 3279 336 335.999973373434 Chi(tan=-0.445229, x=1.0, y=-0.445229), iteration=3: -0.445228685309\n    test 3280 336 335.952329907972 Xi(tan=-0.446226, x=1.83461, y=-0.818652), iteration=3: -0.445228685309\n\n    test 3281 336 335.856679369063 Phi(tan=-0.448229, x=0.912525, y=-0.409021): -0.445228685309\n    test 3282 336 335.928419979560 Beta(tan=-0.446726, x=0.913037, y=-0.407878): -0.445228685309\n    test 3283 336 336.000000000000 Theta(tan=-0.445229, x=0.913545, y=-0.406737): -0.445228685309\n    test 3284 336 335.964260113259 Mu(tan=-0.445976, x=0.913292, y=-0.407306): -0.445228685309\n    test 3285 336 335.999973373434 Chi(tan=-0.445229, x=0.913545, y=-0.406737): -0.445228685309\n    test 3286 336 335.952329907972 Xi(tan=-0.446226, x=0.913207, y=-0.407497): -0.445228685309\n\n    test 3287 343 342.892097596857 Phi(tan=-0.307791, x=0.956305, y=-0.294342): -0.305730681459\n    test 3288 343 342.946123810430 Beta(tan=-0.306759, x=0.956305, y=-0.293355): -0.305730681459\n    test 3289 343 343.000000000000 Theta(tan=-0.305731, x=0.956305, y=-0.292372): -0.305730681459\n    test 3290 343 342.973108720519 Mu(tan=-0.306244, x=0.956167, y=-0.292821), iteration=2: -0.305730681459\n    test 3291 343 342.999989640752 Chi(tan=-0.305731, x=1.0, y=-0.305731), iteration=2: -0.305730681459\n    test 3292 343 342.964127231800 Xi(tan=-0.306415, x=1.92083, y=-0.588572), iteration=2: -0.305730681459\n\n    test 3293 343 342.892097596857 Phi(tan=-0.307791, x=0.955752, y=-0.294172): -0.305730681459\n    test 3294 343 342.946123810430 Beta(tan=-0.306759, x=0.956029, y=-0.293271): -0.305730681459\n    test 3295 343 343.000000000000 Theta(tan=-0.305731, x=0.956305, y=-0.292372): -0.305730681459\n    test 3296 343 342.973108720519 Mu(tan=-0.306244, x=0.956167, y=-0.292821): -0.305730681459\n    test 3297 343 342.999989640752 Chi(tan=-0.305731, x=0.956305, y=-0.292372): -0.305730681459\n    test 3298 343 342.964127231800 Xi(tan=-0.306415, x=0.956122, y=-0.29297): -0.305730681459\n\n    test 3299 350 349.933978809966 Phi(tan=-0.177515, x=0.984808, y=-0.174818): -0.176326980708\n    test 3300 350 349.967041472227 Beta(tan=-0.17692, x=0.984808, y=-0.174232): -0.176326980708\n    test 3301 350 350.000000000000 Theta(tan=-0.176327, x=0.984808, y=-0.173648): -0.176326980708\n    test 3302 350 349.983553226337 Mu(tan=-0.176623, x=0.984758, y=-0.173931), iteration=2: -0.176326980708\n    test 3303 350 349.999997763945 Chi(tan=-0.176327, x=1.0, y=-0.176327), iteration=3: -0.176326980708\n    test 3304 350 349.978058004001 Xi(tan=-0.176722, x=1.97833, y=-0.349613), iteration=3: -0.176326980708\n\n    test 3305 350 349.933978809966 Phi(tan=-0.177515, x=0.984607, y=-0.174783): -0.176326980708\n    test 3306 350 349.967041472227 Beta(tan=-0.17692, x=0.984708, y=-0.174215): -0.176326980708\n    test 3307 350 350.000000000000 Theta(tan=-0.176327, x=0.984808, y=-0.173648): -0.176326980708\n    test 3308 350 349.983553226337 Mu(tan=-0.176623, x=0.984758, y=-0.173931): -0.176326980708\n    test 3309 350 349.999997763945 Chi(tan=-0.176327, x=0.984808, y=-0.173648): -0.176326980708\n    test 3310 350 349.978058004001 Xi(tan=-0.176722, x=0.984741, y=-0.174025): -0.176326980708\n\n    test 3311 357 356.979818816318 Phi(tan=-0.052761, x=0.99863, y=-0.0526887): -0.052407779283\n    test 3312 357 356.989926259040 Beta(tan=-0.0525841, x=0.99863, y=-0.052512): -0.052407779283\n    test 3313 357 357.000000000000 Theta(tan=-0.0524078, x=0.99863, y=-0.052336): -0.052407779283\n    test 3314 357 356.994973643713 Mu(tan=-0.0524957, x=0.998625, y=-0.0524236), iteration=3: -0.052407779283\n    test 3315 357 356.999999937910 Chi(tan=-0.0524078, x=1.0, y=-0.0524078), iteration=3: -0.052407779283\n    test 3316 357 356.993293907994 Xi(tan=-0.0525251, x=2.00621, y=-0.105377), iteration=3: -0.052407779283\n\n    test 3317 357 356.979818816318 Phi(tan=-0.052761, x=0.998611, y=-0.0526877): -0.052407779283\n    test 3318 357 356.989926259040 Beta(tan=-0.0525841, x=0.99862, y=-0.0525115): -0.052407779283\n    test 3319 357 357.000000000000 Theta(tan=-0.0524078, x=0.99863, y=-0.052336): -0.052407779283\n    test 3320 357 356.994973643713 Mu(tan=-0.0524957, x=0.998625, y=-0.0524236): -0.052407779283\n    test 3321 357 356.999999937910 Chi(tan=-0.0524078, x=0.99863, y=-0.052336): -0.052407779283\n    test 3322 357 356.993293907994 Xi(tan=-0.0525251, x=0.998623, y=-0.0524528): -0.052407779283\n\n    test 3323  0 0.000000000000 Phi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 3324  0 0.000000000000 Beta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 3325  0 0.000000000000 Theta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 3326  0 0.000000000000 Mu(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 3327  0 0.000000000000 Chi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 3328  0 0.000000000000 Xi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n\n    test 3329  0 0.000000000000 Phi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 3330  0 0.000000000000 Beta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 3331  0 0.000000000000 Theta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 3332  0 0.000000000000 Mu(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 3333  0 0.000000000000 Chi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 3334  0 0.000000000000 Xi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n\n    test 3335  7 7.031115657726 Phi(tan=0.123336, x=1.0, y=0.123336): 0.122784560903\n    test 3336  7 7.007776446248 Beta(tan=0.122922, x=1.0, y=0.122922): 0.122784560903\n    test 3337  7 6.984513160948 Theta(tan=0.12251, x=1.0, y=0.12251): 0.122784560903\n    test 3338  7 6.996121115499 Mu(tan=0.122716, x=0.992554, y=0.121802), iteration=2: 0.122784560903\n    test 3339  7 6.984513934967 Chi(tan=0.12251, x=1.0, y=0.12251), iteration=3: 0.122784560903\n    test 3340  7 7.000000000000 Xi(tan=0.122785, x=0.992546, y=0.121869): 0.122784560903\n\n    test 3341  7 7.031115657726 Phi(tan=0.123336, x=0.99248, y=0.122408): 0.122784560903\n    test 3342  7 7.007776446248 Beta(tan=0.122922, x=0.99253, y=0.122004): 0.122784560903\n    test 3343  7 6.984513160948 Theta(tan=0.12251, x=0.992579, y=0.121601): 0.122784560903\n    test 3344  7 6.996121115499 Mu(tan=0.122716, x=0.992554, y=0.121802): 0.122784560903\n    test 3345  7 6.984513934967 Chi(tan=0.12251, x=0.992579, y=0.121601): 0.122784560903\n    test 3346  7 7.000000000000 Xi(tan=0.122785, x=0.992546, y=0.121869): 0.122784560903\n\n    test 3347 14 14.060369141975 Phi(tan=0.250447, x=1.0, y=0.250447): 0.249328002843\n    test 3348 14 14.015088387186 Beta(tan=0.249608, x=1.0, y=0.249608): 0.249328002843\n    test 3349 14 13.969941668301 Theta(tan=0.248771, x=1.0, y=0.248771): 0.249328002843\n    test 3350 14 13.992473204804 Mu(tan=0.249188, x=0.970327, y=0.241794), iteration=3: 0.249328002843\n    test 3351 14 13.969947587506 Chi(tan=0.248771, x=1.0, y=0.248771), iteration=2: 0.249328002843\n    test 3352 14 14.000000000000 Xi(tan=0.249328, x=0.970296, y=0.241922): 0.249328002843\n\n    test 3353 14 14.060369141975 Phi(tan=0.250447, x=0.97004, y=0.242944): 0.249328002843\n    test 3354 14 14.015088387186 Beta(tan=0.249608, x=0.970232, y=0.242177): 0.249328002843\n    test 3355 14 13.969941668301 Theta(tan=0.248771, x=0.970423, y=0.241413): 0.249328002843\n    test 3356 14 13.992473204803 Mu(tan=0.249188, x=0.970327, y=0.241794): 0.249328002843\n    test 3357 14 13.969947587506 Chi(tan=0.248771, x=0.970422, y=0.241413): 0.249328002843\n    test 3358 14 14.000000000000 Xi(tan=0.249328, x=0.970296, y=0.241922): 0.249328002843\n\n    test 3359 21 21.086012125911 Phi(tan=0.385587, x=1.0, y=0.385587): 0.383864035035\n    test 3360 21 21.021499506340 Beta(tan=0.384295, x=1.0, y=0.384295): 0.383864035035\n    test 3361 21 20.957147588487 Theta(tan=0.383006, x=1.0, y=0.383006): 0.383864035035\n    test 3362 21 20.989273394164 Mu(tan=0.383649, x=0.933648, y=0.358193), iteration=3: 0.383864035035\n    test 3363 21 20.957166102443 Chi(tan=0.383007, x=1.0, y=0.383007), iteration=3: 0.383864035035\n    test 3364 21 21.000000000000 Xi(tan=0.383864, x=0.93358, y=0.358368): 0.383864035035\n\n    test 3365 21 21.086012125911 Phi(tan=0.385587, x=0.933041, y=0.359769): 0.383864035035\n    test 3366 21 21.021499506340 Beta(tan=0.384295, x=0.933446, y=0.358718): 0.383864035035\n    test 3367 21 20.957147588487 Theta(tan=0.383006, x=0.933848, y=0.35767): 0.383864035035\n    test 3368 21 20.989273394164 Mu(tan=0.383649, x=0.933648, y=0.358193): 0.383864035035\n    test 3369 21 20.957166102443 Chi(tan=0.383007, x=0.933848, y=0.35767): 0.383864035035\n    test 3370 21 21.000000000000 Xi(tan=0.383864, x=0.93358, y=0.358368): 0.383864035035\n\n    test 3371 28 28.106516446309 Phi(tan=0.534096, x=1.0, y=0.534096): 0.531709431661\n    test 3372 28 28.026628049399 Beta(tan=0.532306, x=1.0, y=0.532306): 0.531709431661\n    test 3373 28 27.946889336829 Theta(tan=0.530521, x=1.0, y=0.530521): 0.531709431661\n    test 3374 28 27.986711967080 Mu(tan=0.531412, x=0.883056, y=0.469267), iteration=2: 0.531709431661\n    test 3375 28 27.946928706111 Chi(tan=0.530522, x=1.0, y=0.530522), iteration=2: 0.531709431661\n    test 3376 28 28.000000000000 Xi(tan=0.531709, x=0.882948, y=0.469472): 0.531709431661\n\n    test 3377 28 28.106516446309 Phi(tan=0.534096, x=0.882073, y=0.471112): 0.531709431661\n    test 3378 28 28.026628049399 Beta(tan=0.532306, x=0.882729, y=0.469882): 0.531709431661\n    test 3379 28 27.946889336829 Theta(tan=0.530521, x=0.883382, y=0.468653): 0.531709431661\n    test 3380 28 27.986711967080 Mu(tan=0.531412, x=0.883056, y=0.469267): 0.531709431661\n    test 3381 28 27.946928706111 Chi(tan=0.530522, x=0.883382, y=0.468654): 0.531709431661\n    test 3382 28 28.000000000000 Xi(tan=0.531709, x=0.882948, y=0.469472): 0.531709431661\n\n    test 3383 35 35.120665994598 Phi(tan=0.703351, x=1.0, y=0.703351): 0.700207538210\n    test 3384 35 35.030169708409 Beta(tan=0.700993, x=1.0, y=0.700993): 0.700207538210\n    test 3385 35 34.939777010856 Theta(tan=0.698642, x=1.0, y=0.698642): 0.700207538210\n    test 3386 35 34.984941016111 Mu(tan=0.699816, x=0.819303, y=0.573361), iteration=3: 0.700207538210\n    test 3387 35 34.939843626202 Chi(tan=0.698644, x=1.0, y=0.698644), iteration=3: 0.700207538210\n    test 3388 35 35.000000000000 Xi(tan=0.700208, x=0.819152, y=0.573576): 0.700207538210\n\n    test 3389 35 35.120665994598 Phi(tan=0.703351, x=0.817942, y=0.5753): 0.700207538210\n    test 3390 35 35.030169708409 Beta(tan=0.700993, x=0.81885, y=0.574008): 0.700207538210\n    test 3391 35 34.939777010856 Theta(tan=0.698642, x=0.819754, y=0.572715): 0.700207538210\n    test 3392 35 34.984941016111 Mu(tan=0.699816, x=0.819303, y=0.573361): 0.700207538210\n    test 3393 35 34.939843626202 Chi(tan=0.698644, x=0.819754, y=0.572716): 0.700207538210\n    test 3394 35 35.000000000000 Xi(tan=0.700208, x=0.819152, y=0.573576): 0.700207538210\n\n    test 3395 42 42.127628467909 Phi(tan=0.904446, x=1.0, y=0.904446): 0.900404044298\n    test 3396 42 42.031915609918 Beta(tan=0.901413, x=1.0, y=0.901413): 0.900404044298\n    test 3397 42 41.936235990174 Theta(tan=0.898391, x=1.0, y=0.898391): 0.900404044298\n    test 3398 42 41.984065426020 Mu(tan=0.899901, x=0.743331, y=0.668924), iteration=3: 0.900404044298\n    test 3399 42 41.936331949525 Chi(tan=0.898394, x=1.0, y=0.898394), iteration=3: 0.900404044298\n    test 3400 42 42.000000000000 Xi(tan=0.900404, x=0.743145, y=0.669131): 0.900404044298\n\n    test 3401 42 42.127628467909 Phi(tan=0.904446, x=0.741652, y=0.670784): 0.900404044298\n    test 3402 42 42.031915609918 Beta(tan=0.901413, x=0.742772, y=0.669544): 0.900404044298\n    test 3403 42 41.936235990174 Theta(tan=0.898391, x=0.743889, y=0.668303): 0.900404044298\n    test 3404 42 41.984065426020 Mu(tan=0.899901, x=0.743331, y=0.668924): 0.900404044298\n    test 3405 42 41.936331949525 Chi(tan=0.898394, x=0.743888, y=0.668304): 0.900404044298\n    test 3406 42 42.000000000000 Xi(tan=0.900404, x=0.743145, y=0.669131): 0.900404044298\n\n    test 3407 49 49.127002845320 Phi(tan=1.15553, x=1.0, y=1.15553): 1.150368407221\n    test 3408 49 49.031764361370 Beta(tan=1.15166, x=1.0, y=1.15166): 1.150368407221\n    test 3409 49 48.936481000855 Theta(tan=1.1478, x=1.0, y=1.1478): 1.150368407221\n    test 3410 49 48.984136719315 Mu(tan=1.14973, x=0.656268, y=0.754528), iteration=2: 1.150368407221\n    test 3411 49 48.936602566380 Chi(tan=1.1478, x=1.0, y=1.1478), iteration=2: 1.150368407221\n    test 3412 49 49.000000000000 Xi(tan=1.15037, x=0.656059, y=0.75471): 1.150368407221\n\n    test 3413 49 49.127002845320 Phi(tan=1.15553, x=0.654385, y=0.756162): 1.150368407221\n    test 3414 49 49.031764361370 Beta(tan=1.15166, x=0.655641, y=0.755073): 1.150368407221\n    test 3415 49 48.936481000855 Theta(tan=1.1478, x=0.656895, y=0.753982): 1.150368407221\n    test 3416 49 48.984136719315 Mu(tan=1.14973, x=0.656268, y=0.754528): 1.150368407221\n    test 3417 49 48.936602566380 Chi(tan=1.1478, x=0.656894, y=0.753983): 1.150368407221\n    test 3418 49 49.000000000000 Xi(tan=1.15037, x=0.656059, y=0.75471): 1.150368407221\n\n    test 3419 56 56.118840243467 Phi(tan=1.48921, x=1.0, y=1.48921): 1.482560968513\n    test 3420 56 56.029727526967 Beta(tan=1.48422, x=1.0, y=1.48422): 1.482560968513\n    test 3421 56 55.940502339654 Theta(tan=1.47925, x=1.0, y=1.47925): 1.482560968513\n    test 3422 56 55.985150111604 Mu(tan=1.48173, x=0.559408, y=0.828893), iteration=3: 1.482560968513\n    test 3423 56 55.940639698829 Chi(tan=1.47925, x=1.0, y=1.47925), iteration=3: 1.482560968513\n    test 3424 56 56.000000000000 Xi(tan=1.48256, x=0.559193, y=0.829038): 1.482560968513\n\n    test 3425 56 56.118840243467 Phi(tan=1.48921, x=0.557472, y=0.830196): 1.482560968513\n    test 3426 56 56.029727526967 Beta(tan=1.48422, x=0.558763, y=0.829328): 1.482560968513\n    test 3427 56 55.940502339654 Theta(tan=1.47925, x=0.560053, y=0.828456): 1.482560968513\n    test 3428 56 55.985150111604 Mu(tan=1.48173, x=0.559408, y=0.828893): 1.482560968513\n    test 3429 56 55.940639698829 Chi(tan=1.47925, x=0.560052, y=0.828458): 1.482560968513\n    test 3430 56 56.000000000000 Xi(tan=1.48256, x=0.559193, y=0.829038): 1.482560968513\n\n    test 3431 63 63.103637615859 Phi(tan=1.97142, x=1.0, y=1.97142): 1.962610505505\n    test 3432 63 63.025928337212 Beta(tan=1.96481, x=1.0, y=1.96481): 1.962610505505\n    test 3433 63 62.948065314408 Theta(tan=1.95822, x=1.0, y=1.95822): 1.962610505505\n    test 3434 63 62.987044924306 Mu(tan=1.96151, x=0.454192, y=0.890904), iteration=3: 1.962610505505\n    test 3435 63 62.948203767989 Chi(tan=1.95823, x=1.0, y=1.95823), iteration=3: 1.962610505505\n    test 3436 63 63.000000000000 Xi(tan=1.96261, x=0.45399, y=0.891007): 1.962610505505\n\n    test 3437 63 63.103637615859 Phi(tan=1.97142, x=0.452378, y=0.891826): 1.962610505505\n    test 3438 63 63.025928337212 Beta(tan=1.96481, x=0.453587, y=0.891212): 1.962610505505\n    test 3439 63 62.948065314408 Theta(tan=1.95822, x=0.454798, y=0.890595): 1.962610505505\n    test 3440 63 62.987044924306 Mu(tan=1.96151, x=0.454192, y=0.890904): 1.962610505505\n    test 3441 63 62.948203767989 Chi(tan=1.95823, x=0.454796, y=0.890596): 1.962610505505\n    test 3442 63 63.000000000000 Xi(tan=1.96261, x=0.45399, y=0.891007): 1.962610505505\n\n    test 3443 70 70.082305433342 Phi(tan=2.75981, x=1.0, y=2.75981): 2.747477419455\n    test 3444 70 70.020593849911 Beta(tan=2.75055, x=1.0, y=2.75055): 2.747477419455\n    test 3445 70 69.958723199827 Theta(tan=2.74133, x=1.0, y=2.74133): 2.747477419455\n    test 3446 70 69.989708300156 Mu(tan=2.74594, x=0.342189, y=0.939631), iteration=3: 2.747477419455\n    test 3447 70 69.958845565244 Chi(tan=2.74135, x=1.0, y=2.74135), iteration=3: 2.747477419455\n    test 3448 70 70.000000000000 Xi(tan=2.74748, x=0.34202, y=0.939693): 2.747477419455\n\n    test 3449 70 70.082305433342 Phi(tan=2.75981, x=0.34067, y=0.940183): 2.747477419455\n    test 3450 70 70.020593849911 Beta(tan=2.75055, x=0.341682, y=0.939815): 2.747477419455\n    test 3451 70 69.958723199827 Theta(tan=2.74133, x=0.342697, y=0.939446): 2.747477419455\n    test 3452 70 69.989708300156 Mu(tan=2.74594, x=0.342189, y=0.939631): 2.747477419455\n    test 3453 70 69.958845565244 Chi(tan=2.74135, x=0.342695, y=0.939447): 2.747477419455\n    test 3454 70 70.000000000000 Xi(tan=2.74748, x=0.34202, y=0.939693): 2.747477419455\n\n    test 3455 77 77.056111910623 Phi(tan=4.35091, x=1.0, y=4.35091): 4.331475874284\n    test 3456 77 77.014041148140 Beta(tan=4.33632, x=1.0, y=4.33632): 4.331475874284\n    test 3457 77 76.971843170758 Theta(tan=4.32179, x=1.0, y=4.32179): 4.331475874284\n    test 3458 77 76.992981975049 Mu(tan=4.32906, x=0.22507, y=0.974343), iteration=3: 4.331475874284\n    test 3459 77 76.971932900289 Chi(tan=4.32182, x=1.0, y=4.32182), iteration=3: 4.331475874284\n    test 3460 77 77.000000000000 Xi(tan=4.33148, x=0.224951, y=0.97437): 4.331475874284\n\n    test 3461 77 77.056111910623 Phi(tan=4.35091, x=0.223997, y=0.97459): 4.331475874284\n    test 3462 77 77.014041148140 Beta(tan=4.33632, x=0.224712, y=0.974425): 4.331475874284\n    test 3463 77 76.971843170758 Theta(tan=4.32179, x=0.22543, y=0.974259): 4.331475874284\n    test 3464 77 76.992981975049 Mu(tan=4.32906, x=0.22507, y=0.974343): 4.331475874284\n    test 3465 77 76.971932900289 Chi(tan=4.32182, x=0.225428, y=0.97426): 4.331475874284\n    test 3466 77 77.000000000000 Xi(tan=4.33148, x=0.224951, y=0.97437): 4.331475874284\n\n    test 3467 84 84.026607472936 Phi(tan=9.55706, x=1.0, y=9.55706): 9.514364454223\n    test 3468 84 84.006658466345 Beta(tan=9.52501, x=1.0, y=9.52501): 9.514364454223\n    test 3469 84 83.986643815196 Theta(tan=9.49308, x=1.0, y=9.49308): 9.514364454223\n    test 3470 84 83.996671688480 Mu(tan=9.50905, x=0.104586, y=0.994516), iteration=3: 9.514364454223\n    test 3471 84 83.986688152448 Chi(tan=9.49315, x=1.0, y=9.49315), iteration=3: 9.514364454223\n    test 3472 84 84.000000000000 Xi(tan=9.51436, x=0.104528, y=0.994522): 9.514364454223\n\n    test 3473 84 84.026607472936 Phi(tan=9.55706, x=0.104067, y=0.99457): 9.514364454223\n    test 3474 84 84.006658466345 Beta(tan=9.52501, x=0.104413, y=0.994534): 9.514364454223\n    test 3475 84 83.986643815196 Theta(tan=9.49308, x=0.10476, y=0.994498): 9.514364454223\n    test 3476 84 83.996671688480 Mu(tan=9.50905, x=0.104586, y=0.994516): 9.514364454223\n    test 3477 84 83.986688152448 Chi(tan=9.49315, x=0.10476, y=0.994498): 9.514364454223\n    test 3478 84 84.000000000000 Xi(tan=9.51436, x=0.104528, y=0.994522): 9.514364454223\n\n    test 3479 91 90.995533984466 Phi(tan=-57.547, x=-1, y=57.547): -57.289961630759\n    test 3480 91 90.998882372785 Beta(tan=-57.3541, x=-1, y=57.3541): -57.289961630759\n    test 3481 91 91.002242018525 Theta(tan=-57.1618, x=-1, y=57.1618): -57.289961630759\n    test 3482 91 91.000558671809 Mu(tan=-57.258, x=-0.0174622, y=0.999848), iteration=3: -57.289961630759\n    test 3483 91 91.002234496198 Chi(tan=-57.1622, x=-1, y=57.1622), iteration=3: -57.289961630759\n    test 3484 91 91.000000000000 Xi(tan=-57.29, x=-0.0174524, y=0.999848): -57.289961630759\n\n    test 3485 91 90.995533984466 Phi(tan=-57.547, x=-0.0173745, y=0.999849): -57.289961630760  FAILED, KNOWN (9.42595e-15), expected -57.289961630759\n    test 3486 91 90.998882372785 Beta(tan=-57.3541, x=-0.0174329, y=0.999848): -57.289961630759\n    test 3487 91 91.002242018525 Theta(tan=-57.1618, x=-0.0174915, y=0.999847): -57.289961630760  FAILED, KNOWN (5.82921e-15), expected -57.289961630759\n    test 3488 91 91.000558671809 Mu(tan=-57.258, x=-0.0174622, y=0.999848): -57.289961630759\n    test 3489 91 91.002234496198 Chi(tan=-57.1622, x=-0.0174914, y=0.999847): -57.289961630760  FAILED, KNOWN (9.54998e-15), expected -57.289961630759\n    test 3490 91 91.000000000000 Xi(tan=-57.29, x=-0.0174524, y=0.999848): -57.289961630759\n\n    test 3491 98 97.964723816165 Phi(tan=-7.1473, x=-1, y=7.1473): -7.115369722384\n    test 3492 98 97.991172305797 Beta(tan=-7.12333, x=-1, y=7.12333): -7.115369722384\n    test 3493 98 98.017706325759 Theta(tan=-7.09945, x=-1, y=7.09945): -7.115369722384\n    test 3494 98 98.004412544182 Mu(tan=-7.1114, x=-0.139249, y=0.990257), iteration=3: -7.115369722384\n    test 3495 98 98.017648048185 Chi(tan=-7.0995, x=-1, y=7.0995), iteration=3: -7.115369722384\n    test 3496 98 98.000000000000 Xi(tan=-7.11537, x=-0.139173, y=0.990268): -7.115369722384\n\n    test 3497 98 97.964723816164 Phi(tan=-7.1473, x=-0.138563, y=0.990354): -7.115369722384\n    test 3498 98 97.991172305797 Beta(tan=-7.12333, x=-0.139021, y=0.990289): -7.115369722384\n    test 3499 98 98.017706325759 Theta(tan=-7.09945, x=-0.139479, y=0.990225): -7.115369722384\n    test 3500 98 98.004412544182 Mu(tan=-7.1114, x=-0.139249, y=0.990257): -7.115369722384\n    test 3501 98 98.017648048185 Chi(tan=-7.0995, x=-0.139478, y=0.990225): -7.115369722384\n    test 3502 98 98.000000000000 Xi(tan=-7.11537, x=-0.139173, y=0.990268): -7.115369722384\n\n    test 3503 105 104.935994159741 Phi(tan=-3.7488, x=-1, y=3.7488): -3.732050807569\n    test 3504 105 104.983983867222 Beta(tan=-3.73623, x=-1, y=3.73623): -3.732050807569\n    test 3505 105 105.032113400902 Theta(tan=-3.7237, x=-1, y=3.7237): -3.732050807569\n    test 3506 105 105.008004873422 Mu(tan=-3.72997, x=-0.258954, y=0.96589), iteration=2: -3.732050807569\n    test 3507 105 105.032012824358 Chi(tan=-3.72373, x=-1, y=3.72373), iteration=3: -3.732050807569\n    test 3508 105 105.000000000000 Xi(tan=-3.73205, x=-0.258819, y=0.965926): -3.732050807569\n\n    test 3509 105 104.935994159741 Phi(tan=-3.7488, x=-0.25774, y=0.966214): -3.732050807569\n    test 3510 105 104.983983867222 Beta(tan=-3.73623, x=-0.258549, y=0.965998): -3.732050807569\n    test 3511 105 105.032113400902 Theta(tan=-3.7237, x=-0.25936, y=0.965781): -3.732050807569\n    test 3512 105 105.008004873422 Mu(tan=-3.72997, x=-0.258954, y=0.96589): -3.732050807569\n    test 3513 105 105.032012824358 Chi(tan=-3.72373, x=-0.259359, y=0.965781): -3.732050807569\n    test 3514 105 105.000000000000 Xi(tan=-3.73205, x=-0.258819, y=0.965926): -3.732050807569\n\n    test 3515 112 111.911042136698 Phi(tan=-2.48619, x=-1, y=2.48619): -2.475086853416\n    test 3516 112 111.977742323906 Beta(tan=-2.47786, x=-1, y=2.47786): -2.475086853416\n    test 3517 112 112.044603965311 Theta(tan=-2.46955, x=-1, y=2.46955): -2.475086853416\n    test 3518 112 112.011122625415 Mu(tan=-2.4737, x=-0.374787, y=0.927111), iteration=3: -2.475086853416\n    test 3519 112 112.044475225333 Chi(tan=-2.46957, x=-1, y=2.46957), iteration=3: -2.475086853416\n    test 3520 112 112.000000000000 Xi(tan=-2.47509, x=-0.374607, y=0.927184): -2.475086853416\n\n    test 3521 112 111.911042136698 Phi(tan=-2.48619, x=-0.373167, y=0.927764): -2.475086853416\n    test 3522 112 111.977742323906 Beta(tan=-2.47786, x=-0.374246, y=0.927329): -2.475086853416\n    test 3523 112 112.044603965311 Theta(tan=-2.46955, x=-0.375328, y=0.926892): -2.475086853416\n    test 3524 112 112.011122625415 Mu(tan=-2.4737, x=-0.374787, y=0.927111): -2.475086853416\n    test 3525 112 112.044475225333 Chi(tan=-2.46957, x=-0.375326, y=0.926893): -2.475086853416\n    test 3526 112 112.000000000000 Xi(tan=-2.47509, x=-0.374607, y=0.927184): -2.475086853416\n\n    test 3527 119 118.891346228069 Phi(tan=-1.81214, x=-1, y=1.81214): -1.804047755271\n    test 3528 119 118.972817760312 Beta(tan=-1.80607, x=-1, y=1.80607): -1.804047755271\n    test 3529 119 119.054434637080 Theta(tan=-1.80001, x=-1, y=1.80001): -1.804047755271\n    test 3530 119 119.013580731176 Mu(tan=-1.80304, x=-0.485017, y=0.874505), iteration=3: -1.804047755271\n    test 3531 119 119.054294796723 Chi(tan=-1.80002, x=-1, y=1.80002), iteration=3: -1.804047755271\n    test 3532 119 119.000000000000 Xi(tan=-1.80405, x=-0.48481, y=0.87462): -1.804047755271\n\n    test 3533 119 118.891346228069 Phi(tan=-1.81214, x=-0.48315, y=0.875538): -1.804047755271\n    test 3534 119 118.972817760312 Beta(tan=-1.80607, x=-0.484395, y=0.87485): -1.804047755271\n    test 3535 119 119.054434637080 Theta(tan=-1.80001, x=-0.48564, y=0.874159): -1.804047755271\n    test 3536 119 119.013580731176 Mu(tan=-1.80304, x=-0.485017, y=0.874505): -1.804047755271\n    test 3537 119 119.054294796723 Chi(tan=-1.80002, x=-0.485638, y=0.87416): -1.804047755271\n    test 3538 119 119.000000000000 Xi(tan=-1.80405, x=-0.48481, y=0.87462): -1.804047755271\n\n    test 3539 126 125.878079358159 Phi(tan=-1.38256, x=-1, y=1.38256): -1.376381920471\n    test 3540 126 125.969503261502 Beta(tan=-1.37792, x=-1, y=1.37792): -1.376381920471\n    test 3541 126 126.061022406195 Theta(tan=-1.3733, x=-1, y=1.3733): -1.376381920471\n    test 3542 126 126.015233045717 Mu(tan=-1.37561, x=-0.588, y=0.808861), iteration=2: -1.376381920471\n    test 3543 126 126.060888237156 Chi(tan=-1.37331, x=-1, y=1.37331), iteration=2: -1.376381920471\n    test 3544 126 126.000000000000 Xi(tan=-1.37638, x=-0.587785, y=0.809017): -1.376381920471\n\n    test 3545 126 125.878079358159 Phi(tan=-1.38256, x=-0.586062, y=0.810266): -1.376381920471\n    test 3546 126 125.969503261502 Beta(tan=-1.37792, x=-0.587355, y=0.80933): -1.376381920471\n    test 3547 126 126.061022406195 Theta(tan=-1.3733, x=-0.588647, y=0.808391): -1.376381920471\n    test 3548 126 126.015233045717 Mu(tan=-1.37561, x=-0.588, y=0.808861): -1.376381920471\n    test 3549 126 126.060888237156 Chi(tan=-1.37331, x=-0.588645, y=0.808392): -1.376381920471\n    test 3550 126 126.000000000000 Xi(tan=-1.37638, x=-0.587785, y=0.809017): -1.376381920471\n\n    test 3551 133 132.872038576251 Phi(tan=-1.07718, x=-1, y=1.07718): -1.072368710025\n    test 3552 133 132.967997382278 Beta(tan=-1.07357, x=-1, y=1.07357): -1.072368710025\n    test 3553 133 133.063979030656 Theta(tan=-1.06997, x=-1, y=1.06997): -1.072368710025\n    test 3554 133 133.015981056163 Mu(tan=-1.07177, x=-0.682202, y=0.731163), iteration=2: -1.072368710025\n    test 3555 133 133.063864035301 Chi(tan=-1.06998, x=-1, y=1.06998), iteration=3: -1.072368710025\n    test 3556 133 133.000000000000 Xi(tan=-1.07237, x=-0.681998, y=0.731354): -1.072368710025\n\n    test 3557 133 132.872038576251 Phi(tan=-1.07718, x=-0.680363, y=0.732875): -1.072368710025\n    test 3558 133 132.967997382278 Beta(tan=-1.07357, x=-0.68159, y=0.731735): -1.072368710025\n    test 3559 133 133.063979030656 Theta(tan=-1.06997, x=-0.682815, y=0.730592): -1.072368710025\n    test 3560 133 133.015981056163 Mu(tan=-1.07177, x=-0.682202, y=0.731163): -1.072368710025\n    test 3561 133 133.063864035301 Chi(tan=-1.06998, x=-0.682813, y=0.730593): -1.072368710025\n    test 3562 133 133.000000000000 Xi(tan=-1.07237, x=-0.681998, y=0.731354): -1.072368710025\n\n    test 3563 140 139.873595650901 Phi(tan=-0.842866, x=-1, y=0.842866): -0.839099631177\n    test 3564 140 139.968391970048 Beta(tan=-0.84004, x=-1, y=0.84004): -0.839099631177\n    test 3565 140 140.063133367178 Theta(tan=-0.837224, x=-1, y=0.837224): -0.839099631177\n    test 3566 140 140.015779815968 Mu(tan=-0.83863, x=-0.766221, y=0.642577), iteration=3: -0.839099631177\n    test 3567 140 140.063045682360 Chi(tan=-0.837226, x=-1, y=0.837226), iteration=2: -0.839099631177\n    test 3568 140 140.000000000000 Xi(tan=-0.8391, x=-0.766044, y=0.642788): -0.839099631177\n\n    test 3569 140 139.873595650901 Phi(tan=-0.842866, x=-0.764624, y=0.644476): -0.839099631177\n    test 3570 140 139.968391970048 Beta(tan=-0.84004, x=-0.76569, y=0.64321): -0.839099631177\n    test 3571 140 140.063133367178 Theta(tan=-0.837224, x=-0.766752, y=0.641943): -0.839099631177\n    test 3572 140 140.015779815968 Mu(tan=-0.83863, x=-0.766221, y=0.642577): -0.839099631177\n    test 3573 140 140.063045682360 Chi(tan=-0.837226, x=-0.766751, y=0.641944): -0.839099631177\n    test 3574 140 140.000000000000 Xi(tan=-0.8391, x=-0.766044, y=0.642788): -0.839099631177\n\n    test 3575 147 146.882671979706 Phi(tan=-0.652323, x=-1, y=0.652323): -0.649407593198\n    test 3576 147 146.970666152106 Beta(tan=-0.650136, x=-1, y=0.650136): -0.649407593198\n    test 3577 147 147.058540482739 Theta(tan=-0.647956, x=-1, y=0.647956): -0.649407593198\n    test 3578 147 147.014640733824 Mu(tan=-0.649044, x=-0.83881, y=0.544425), iteration=2: -0.649407593198\n    test 3579 147 147.058482092364 Chi(tan=-0.647957, x=-1, y=0.647957), iteration=3: -0.649407593198\n    test 3580 147 147.000000000000 Xi(tan=-0.649408, x=-0.838671, y=0.544639): -0.649407593198\n\n    test 3581 147 146.882671979706 Phi(tan=-0.652323, x=-0.837554, y=0.546355): -0.649407593198\n    test 3582 147 146.970666152106 Beta(tan=-0.650136, x=-0.838392, y=0.545068): -0.649407593198\n    test 3583 147 147.058540482739 Theta(tan=-0.647956, x=-0.839227, y=0.543782): -0.649407593198\n    test 3584 147 147.014640733824 Mu(tan=-0.649044, x=-0.83881, y=0.544425): -0.649407593198\n    test 3585 147 147.058482092364 Chi(tan=-0.647957, x=-0.839226, y=0.543783): -0.649407593198\n    test 3586 147 147.000000000000 Xi(tan=-0.649408, x=-0.838671, y=0.544639): -0.649407593198\n\n    test 3587 154 153.898740000769 Phi(tan=-0.489922, x=-1, y=0.489922): -0.487732588566\n    test 3588 154 153.974686973605 Beta(tan=-0.48828, x=-1, y=0.48828): -0.487732588566\n    test 3589 154 154.050477253377 Theta(tan=-0.486642, x=-1, y=0.486642): -0.487732588566\n    test 3590 154 154.012631023956 Mu(tan=-0.48746, x=-0.898891, y=0.438173), iteration=3: -0.487732588566\n    test 3591 154 154.050444626907 Chi(tan=-0.486643, x=-1, y=0.486643), iteration=2: -0.487732588566\n    test 3592 154 154.000000000000 Xi(tan=-0.487733, x=-0.898794, y=0.438371): -0.487732588566\n\n    test 3593 154 153.898740000769 Phi(tan=-0.489922, x=-0.898018, y=0.439959): -0.487732588566\n    test 3594 154 153.974686973605 Beta(tan=-0.48828, x=-0.8986, y=0.438768): -0.487732588566\n    test 3595 154 154.050477253377 Theta(tan=-0.486642, x=-0.89918, y=0.437579): -0.487732588566\n    test 3596 154 154.012631023956 Mu(tan=-0.48746, x=-0.898891, y=0.438173): -0.487732588566\n    test 3597 154 154.050444626907 Chi(tan=-0.486643, x=-0.89918, y=0.43758): -0.487732588566\n    test 3598 154 154.000000000000 Xi(tan=-0.487733, x=-0.898794, y=0.438371): -0.487732588566\n\n    test 3599 161 160.920851786649 Phi(tan=-0.345874, x=-1, y=0.345874): -0.344327613290\n    test 3600 161 160.980216789536 Beta(tan=-0.344714, x=-1, y=0.344714): -0.344327613290\n    test 3601 161 161.039424975997 Theta(tan=-0.343558, x=-1, y=0.343558): -0.344327613290\n    test 3602 161 161.009869820426 Mu(tan=-0.344135, x=-0.945575, y=0.325405), iteration=3: -0.344327613290\n    test 3603 161 161.039410917225 Chi(tan=-0.343558, x=-1, y=0.343558), iteration=3: -0.344327613290\n    test 3604 161 161.000000000000 Xi(tan=-0.344328, x=-0.945519, y=0.325568): -0.344327613290\n\n    test 3605 161 160.920851786649 Phi(tan=-0.345874, x=-0.945068, y=0.326874): -0.344327613290\n    test 3606 161 160.980216789536 Beta(tan=-0.344714, x=-0.945406, y=0.325895): -0.344327613290\n    test 3607 161 161.039424975997 Theta(tan=-0.343558, x=-0.945742, y=0.324917): -0.344327613290\n    test 3608 161 161.009869820426 Mu(tan=-0.344135, x=-0.945575, y=0.325405): -0.344327613290\n    test 3609 161 161.039410917225 Chi(tan=-0.343558, x=-0.945742, y=0.324918): -0.344327613290\n    test 3610 161 161.000000000000 Xi(tan=-0.344328, x=-0.945519, y=0.325568): -0.344327613290\n\n    test 3611 168 167.947693775816 Phi(tan=-0.213511, x=-1, y=0.213511): -0.212556561670\n    test 3612 168 167.986927091791 Beta(tan=-0.212795, x=-1, y=0.212795): -0.212556561670\n    test 3613 168 168.026040245291 Theta(tan=-0.212082, x=-1, y=0.212082): -0.212556561670\n    test 3614 168 168.006521160939 Mu(tan=-0.212438, x=-0.978171, y=0.2078), iteration=3: -0.212556561670\n    test 3615 168 168.026036457648 Chi(tan=-0.212082, x=-1, y=0.212082), iteration=3: -0.212556561670\n    test 3616 168 168.000000000000 Xi(tan=-0.212557, x=-0.978148, y=0.207912): -0.212556561670\n\n    test 3617 168 167.947693775816 Phi(tan=-0.213511, x=-0.977957, y=0.208805): -0.212556561670\n    test 3618 168 167.986927091791 Beta(tan=-0.212795, x=-0.9781, y=0.208135): -0.212556561670\n    test 3619 168 168.026040245291 Theta(tan=-0.212082, x=-0.978242, y=0.207467): -0.212556561670\n    test 3620 168 168.006521160939 Mu(tan=-0.212438, x=-0.978171, y=0.2078): -0.212556561670\n    test 3621 168 168.026036457648 Chi(tan=-0.212082, x=-0.978242, y=0.207467): -0.212556561670\n    test 3622 168 168.000000000000 Xi(tan=-0.212557, x=-0.978148, y=0.207912): -0.212556561670\n\n    test 3623 175 174.977664774563 Phi(tan=-0.0878815, x=-1, y=0.0878815): -0.087488663526\n    test 3624 175 174.994418020079 Beta(tan=-0.0875868, x=-1, y=0.0875868): -0.087488663526\n    test 3625 175 175.011115948983 Theta(tan=-0.0872932, x=-1, y=0.0872932): -0.087488663526\n    test 3626 175 175.002784242316 Mu(tan=-0.0874397, x=-0.996199, y=0.0871073), iteration=2: -0.087488663526\n    test 3627 175 175.011115664833 Chi(tan=-0.0872932, x=-1, y=0.0872932), iteration=3: -0.087488663526\n    test 3628 175 175.000000000000 Xi(tan=-0.0874887, x=-0.996195, y=0.0871557): -0.087488663526\n\n    test 3629 175 174.977664774563 Phi(tan=-0.0878815, x=-0.996161, y=0.0875441): -0.087488663526\n    test 3630 175 174.994418020079 Beta(tan=-0.0875868, x=-0.996186, y=0.0872528): -0.087488663526\n    test 3631 175 175.011115948983 Theta(tan=-0.0872932, x=-0.996212, y=0.0869625): -0.087488663526\n    test 3632 175 175.002784242316 Mu(tan=-0.0874397, x=-0.996199, y=0.0871073): -0.087488663526\n    test 3633 175 175.011115664833 Chi(tan=-0.0872932, x=-0.996212, y=0.0869625): -0.087488663526\n    test 3634 175 175.000000000000 Xi(tan=-0.0874887, x=-0.996195, y=0.0871557): -0.087488663526\n\n    test 3635 182 182.008972613463 Phi(tan=0.0350776, x=-1, y=-0.0350776): 0.034920769492\n    test 3636 182 182.002242400308 Beta(tan=0.03496, x=-1, y=-0.03496): 0.034920769492\n    test 3637 182 181.995534697284 Theta(tan=0.0348427, x=-1, y=-0.0348427): 0.034920769492\n    test 3638 182 181.998881526172 Mu(tan=0.0349012, x=-0.999392, y=-0.03488), iteration=3: 0.034920769492\n    test 3639 182 181.995534715586 Chi(tan=0.0348427, x=-1, y=-0.0348427), iteration=2: 0.034920769492\n    test 3640 182 182.000000000000 Xi(tan=0.0349208, x=-0.999391, y=-0.0348995): 0.034920769492\n\n    test 3641 182 182.008972613463 Phi(tan=0.0350776, x=-0.999385, y=-0.035056): 0.034920769492\n    test 3642 182 182.002242400308 Beta(tan=0.03496, x=-0.999389, y=-0.0349386): 0.034920769492\n    test 3643 182 181.995534697284 Theta(tan=0.0348427, x=-0.999394, y=-0.0348216): 0.034920769492\n    test 3644 182 181.998881526172 Mu(tan=0.0349012, x=-0.999392, y=-0.03488): 0.034920769492\n    test 3645 182 181.995534715586 Chi(tan=0.0348427, x=-0.999394, y=-0.0348216): 0.034920769492\n    test 3646 182 182.000000000000 Xi(tan=0.0349208, x=-0.999391, y=-0.0348995): 0.034920769492\n\n    test 3647 189 189.039743358381 Phi(tan=0.159096, x=-1, y=-0.159096): 0.158384440325\n    test 3648 189 189.009932816166 Beta(tan=0.158562, x=-1, y=-0.158562): 0.158384440325\n    test 3649 189 188.980217328283 Theta(tan=0.158031, x=-1, y=-0.158031): 0.158384440325\n    test 3650 189 188.995045415532 Mu(tan=0.158296, x=-0.987702, y=-0.156349), iteration=3: 0.158384440325\n    test 3651 189 188.980218957347 Chi(tan=0.158031, x=-1, y=-0.158031), iteration=3: 0.158384440325\n    test 3652 189 189.000000000000 Xi(tan=0.158384, x=-0.987688, y=-0.156434): 0.158384440325\n\n    test 3653 189 189.039743358381 Phi(tan=0.159096, x=-0.98758, y=-0.15712): 0.158384440325\n    test 3654 189 189.009932816166 Beta(tan=0.158562, x=-0.987661, y=-0.156606): 0.158384440325\n    test 3655 189 188.980217328283 Theta(tan=0.158031, x=-0.987742, y=-0.156093): 0.158384440325\n    test 3656 189 188.995045415532 Mu(tan=0.158296, x=-0.987702, y=-0.156349): 0.158384440325\n    test 3657 189 188.980218957347 Chi(tan=0.158031, x=-0.987742, y=-0.156093): 0.158384440325\n    test 3658 189 189.000000000000 Xi(tan=0.158384, x=-0.987688, y=-0.156434): 0.158384440325\n\n    test 3659 196 196.068135937668 Phi(tan=0.288033, x=-1, y=-0.288033): 0.286745385759\n    test 3660 196 196.017029985937 Beta(tan=0.287067, x=-1, y=-0.287067): 0.286745385759\n    test 3661 196 195.966069329052 Theta(tan=0.286105, x=-1, y=-0.286105): 0.286745385759\n    test 3662 196 195.991504319198 Mu(tan=0.286585, x=-0.961303, y=-0.275495), iteration=3: 0.286745385759\n    test 3663 196 195.966078002587 Chi(tan=0.286105, x=-1, y=-0.286105), iteration=3: 0.286745385759\n    test 3664 196 196.000000000000 Xi(tan=0.286745, x=-0.961262, y=-0.275637): 0.286745385759\n\n    test 3665 196 196.068135937668 Phi(tan=0.288033, x=-0.960933, y=-0.27678): 0.286745385759\n    test 3666 196 196.017029985937 Beta(tan=0.287067, x=-0.96118, y=-0.275923): 0.286745385759\n    test 3667 196 195.966069329052 Theta(tan=0.286105, x=-0.961425, y=-0.275068): 0.286745385759\n    test 3668 196 195.991504319198 Mu(tan=0.286585, x=-0.961303, y=-0.275495): 0.286745385759\n    test 3669 196 195.966078002587 Chi(tan=0.286105, x=-0.961425, y=-0.275068): 0.286745385759\n    test 3670 196 196.000000000000 Xi(tan=0.286745, x=-0.961262, y=-0.275637): 0.286745385759\n\n    test 3671 203 203.092454589560 Phi(tan=0.426381, x=-1, y=-0.426381): 0.424474816210\n    test 3672 203 203.023110614245 Beta(tan=0.424951, x=-1, y=-0.424951): 0.424474816210\n    test 3673 203 202.953928092744 Theta(tan=0.423526, x=-1, y=-0.423526): 0.424474816210\n    test 3674 203 202.988468962214 Mu(tan=0.424237, x=-0.920583, y=-0.390546), iteration=2: 0.424474816210\n    test 3675 203 202.953951753533 Chi(tan=0.423527, x=-1, y=-0.423527), iteration=3: 0.424474816210\n    test 3676 203 203.000000000000 Xi(tan=0.424475, x=-0.920505, y=-0.390731): 0.424474816210\n\n    test 3677 203 203.092454589560 Phi(tan=0.426381, x=-0.919873, y=-0.392216): 0.424474816210\n    test 3678 203 203.023110614245 Beta(tan=0.424951, x=-0.920347, y=-0.391102): 0.424474816210\n    test 3679 203 202.953928092744 Theta(tan=0.423526, x=-0.920819, y=-0.389991): 0.424474816210\n    test 3680 203 202.988468962214 Mu(tan=0.424237, x=-0.920583, y=-0.390546): 0.424474816210\n    test 3681 203 202.953951753533 Chi(tan=0.423527, x=-0.920819, y=-0.389991): 0.424474816210\n    test 3682 203 203.000000000000 Xi(tan=0.424475, x=-0.920505, y=-0.390731): 0.424474816210\n\n    test 3683 210 210.111251718648 Phi(tan=0.579942, x=-1, y=-0.579942): 0.577350269190\n    test 3684 210 210.027812929728 Beta(tan=0.577998, x=-1, y=-0.577998): 0.577350269190\n    test 3685 210 209.944513899906 Theta(tan=0.57606, x=-1, y=-0.57606): 0.577350269190\n    test 3686 210 209.986119784065 Mu(tan=0.577027, x=-0.866147, y=-0.49979), iteration=3: 0.577350269190\n    test 3687 210 209.944560549356 Chi(tan=0.576061, x=-1, y=-0.576061), iteration=3: 0.577350269190\n    test 3688 210 210.000000000000 Xi(tan=0.57735, x=-0.866025, y=-0.5): 0.577350269190\n\n    test 3689 210 210.111251718648 Phi(tan=0.579942, x=-0.865053, y=-0.501681): 0.577350269190\n    test 3690 210 210.027812929728 Beta(tan=0.577998, x=-0.865783, y=-0.50042): 0.577350269190\n    test 3691 210 209.944513899906 Theta(tan=0.57606, x=-0.866509, y=-0.499161): 0.577350269190\n    test 3692 210 209.986119784065 Mu(tan=0.577027, x=-0.866147, y=-0.49979): 0.577350269190\n    test 3693 210 209.944560549356 Chi(tan=0.576061, x=-0.866509, y=-0.499162): 0.577350269190\n    test 3694 210 210.000000000000 Xi(tan=0.57735, x=-0.866025, y=-0.5): 0.577350269190\n\n    test 3695 217 217.123414552554 Phi(tan=0.756937, x=-1, y=-0.756937): 0.753554050103\n    test 3696 217 217.030858299580 Beta(tan=0.754399, x=-1, y=-0.754399): 0.753554050103\n    test 3697 217 216.938387365618 Theta(tan=0.751869, x=-1, y=-0.751869): 0.753554050103\n    test 3698 217 216.984596192751 Mu(tan=0.753133, x=-0.798797, y=-0.6016), iteration=3: 0.753554050103\n    test 3699 217 216.938462387195 Chi(tan=0.751871, x=-1, y=-0.751871), iteration=3: 0.753554050103\n    test 3700 217 217.000000000000 Xi(tan=0.753554, x=-0.798636, y=-0.601815): 0.753554050103\n\n    test 3701 217 217.123414552554 Phi(tan=0.756937, x=-0.797337, y=-0.603534): 0.753554050103\n    test 3702 217 217.030858299580 Beta(tan=0.754399, x=-0.798311, y=-0.602245): 0.753554050103\n    test 3703 217 216.938387365618 Theta(tan=0.751869, x=-0.799282, y=-0.600956): 0.753554050103\n    test 3704 217 216.984596192751 Mu(tan=0.753133, x=-0.798797, y=-0.6016): 0.753554050103\n    test 3705 217 216.938462387195 Chi(tan=0.751871, x=-0.799281, y=-0.600957): 0.753554050103\n    test 3706 217 217.000000000000 Xi(tan=0.753554, x=-0.798636, y=-0.601815): 0.753554050103\n\n    test 3707 224 224.128230303258 Phi(tan=0.970023, x=-1, y=-0.970023): 0.965688774807\n    test 3708 224 224.032067609230 Beta(tan=0.966771, x=-1, y=-0.966771): 0.965688774807\n    test 3709 224 223.935915824293 Theta(tan=0.96353, x=-1, y=-0.96353): 0.965688774807\n    test 3710 224 223.983988319148 Mu(tan=0.965149, x=-0.719534, y=-0.694457), iteration=3: 0.965688774807\n    test 3711 224 223.936019754646 Chi(tan=0.963533, x=-1, y=-0.963533), iteration=3: 0.965688774807\n    test 3712 224 224.000000000000 Xi(tan=0.965689, x=-0.71934, y=-0.694658): 0.965688774807\n\n    test 3713 224 224.128230303258 Phi(tan=0.970023, x=-0.717783, y=-0.696267): 0.965688774807\n    test 3714 224 224.032067609230 Beta(tan=0.966771, x=-0.718951, y=-0.695061): 0.965688774807\n    test 3715 224 223.935915824293 Theta(tan=0.96353, x=-0.720116, y=-0.693853): 0.965688774807\n    test 3716 224 223.983988319148 Mu(tan=0.965149, x=-0.719534, y=-0.694457): 0.965688774807\n    test 3717 224 223.936019754646 Chi(tan=0.963533, x=-0.720115, y=-0.693855): 0.965688774807\n    test 3718 224 224.000000000000 Xi(tan=0.965689, x=-0.71934, y=-0.694658): 0.965688774807\n\n    test 3719 231 231.125426196540 Phi(tan=1.24044, x=-1, y=-1.24044): 1.234897156535\n    test 3720 231 231.031371476626 Beta(tan=1.23628, x=-1, y=-1.23628): 1.234897156535\n    test 3721 231 230.937250720782 Theta(tan=1.23214, x=-1, y=-1.23214): 1.234897156535\n    test 3722 231 230.984331752747 Mu(tan=1.23421, x=-0.629533, y=-0.776974), iteration=3: 1.234897156535\n    test 3723 231 230.937378047856 Chi(tan=1.23214, x=-1, y=-1.23214), iteration=2: 1.234897156535\n    test 3724 231 231.000000000000 Xi(tan=1.2349, x=-0.62932, y=-0.777146): 1.234897156535\n\n    test 3725 231 231.125426196540 Phi(tan=1.24044, x=-0.627618, y=-0.778522): 1.234897156535\n    test 3726 231 231.031371476626 Beta(tan=1.23628, x=-0.628895, y=-0.77749): 1.234897156535\n    test 3727 231 230.937250720782 Theta(tan=1.23214, x=-0.630171, y=-0.776456): 1.234897156535\n    test 3728 231 230.984331752747 Mu(tan=1.23421, x=-0.629533, y=-0.776974): 1.234897156535\n    test 3729 231 230.937378047856 Chi(tan=1.23214, x=-0.630169, y=-0.776458): 1.234897156535\n    test 3730 231 231.000000000000 Xi(tan=1.2349, x=-0.62932, y=-0.777146): 1.234897156535\n\n    test 3731 238 238.115182546420 Phi(tan=1.60752, x=-1, y=-1.60752): 1.600334529041\n    test 3732 238 238.028813796136 Beta(tan=1.60213, x=-1, y=-1.60213): 1.600334529041\n    test 3733 238 237.942317534000 Theta(tan=1.59676, x=-1, y=-1.59676): 1.600334529041\n    test 3734 238 237.985605550109 Mu(tan=1.59944, x=-0.530132, y=-0.847915), iteration=3: 1.600334529041\n    test 3735 238 237.942456867934 Chi(tan=1.59676, x=-1, y=-1.59676), iteration=2: 1.600334529041\n    test 3736 238 238.000000000000 Xi(tan=1.60033, x=-0.529919, y=-0.848048): 1.600334529041\n\n    test 3737 238 238.115182546420 Phi(tan=1.60752, x=-0.528213, y=-0.849112): 1.600334529041\n    test 3738 238 238.028813796136 Beta(tan=1.60213, x=-0.529493, y=-0.848314): 1.600334529041\n    test 3739 238 237.942317534000 Theta(tan=1.59676, x=-0.530773, y=-0.847514): 1.600334529041\n    test 3740 238 237.985605550109 Mu(tan=1.59944, x=-0.530132, y=-0.847915): 1.600334529041\n    test 3741 238 237.942456867934 Chi(tan=1.59676, x=-0.530771, y=-0.847515): 1.600334529041\n    test 3742 238 238.000000000000 Xi(tan=1.60033, x=-0.529919, y=-0.848048): 1.600334529041\n\n    test 3743 245 245.098118836759 Phi(tan=2.15413, x=-1, y=-2.15413): 2.144506920510\n    test 3744 245 245.024548537731 Beta(tan=2.14691, x=-1, y=-2.14691): 2.144506920510\n    test 3745 245 244.950819083860 Theta(tan=2.13971, x=-1, y=-2.13971): 2.144506920510\n    test 3746 245 244.987733605483 Mu(tan=2.14331, x=-0.422812, y=-0.906217), iteration=3: 2.144506920510\n    test 3747 245 244.950954727954 Chi(tan=2.13972, x=-1, y=-2.13972), iteration=2: 2.144506920510\n    test 3748 245 245.000000000000 Xi(tan=2.14451, x=-0.422618, y=-0.906308): 2.144506920510\n\n    test 3749 245 245.098118836759 Phi(tan=2.15413, x=-0.421066, y=-0.90703): 2.144506920510\n    test 3750 245 245.024548537731 Beta(tan=2.14691, x=-0.42223, y=-0.906489): 2.144506920510\n    test 3751 245 244.950819083860 Theta(tan=2.13971, x=-0.423396, y=-0.905945): 2.144506920510\n    test 3752 245 244.987733605483 Mu(tan=2.14331, x=-0.422812, y=-0.906217): 2.144506920510\n    test 3753 245 244.950954727954 Chi(tan=2.13972, x=-0.423394, y=-0.905946): 2.144506920510\n    test 3754 245 245.000000000000 Xi(tan=2.14451, x=-0.422618, y=-0.906308): 2.144506920510\n\n    test 3755 252 252.075254383698 Phi(tan=3.09149, x=-1, y=-3.09149): 3.077683537175\n    test 3756 252 252.018830129897 Beta(tan=3.08113, x=-1, y=-3.08113): 3.077683537175\n    test 3757 252 251.962252287555 Theta(tan=3.0708, x=-1, y=-3.0708): 3.077683537175\n    test 3758 252 251.990589272651 Mu(tan=3.07596, x=-0.309173, y=-0.951006), iteration=2: 3.077683537175\n    test 3759 252 251.962366907267 Chi(tan=3.07082, x=-1, y=-3.07082), iteration=3: 3.077683537175\n    test 3760 252 252.000000000000 Xi(tan=3.07768, x=-0.309017, y=-0.951057): 3.077683537175\n\n    test 3761 252 252.075254383698 Phi(tan=3.09149, x=-0.307768, y=-0.951462): 3.077683537175\n    test 3762 252 252.018830129897 Beta(tan=3.08113, x=-0.308704, y=-0.951158): 3.077683537175\n    test 3763 252 251.962252287555 Theta(tan=3.0708, x=-0.309644, y=-0.950853): 3.077683537175\n    test 3764 252 251.990589272651 Mu(tan=3.07596, x=-0.309173, y=-0.951006): 3.077683537175\n    test 3765 252 251.962366907267 Chi(tan=3.07082, x=-0.309642, y=-0.950853): 3.077683537175\n    test 3766 252 252.000000000000 Xi(tan=3.07768, x=-0.309017, y=-0.951057): 3.077683537175\n\n    test 3767 259 259.047946497885 Phi(tan=5.16764, x=-1, y=-5.16764): 5.144554015970\n    test 3768 259 259.011998105898 Beta(tan=5.15031, x=-1, y=-5.15031): 5.144554015970\n    test 3769 259 258.975937580981 Theta(tan=5.13304, x=-1, y=-5.13304): 5.144554015970\n    test 3770 259 258.994002940120 Mu(tan=5.14168, x=-0.190912, y=-0.981607), iteration=3: 5.144554015970\n    test 3771 259 258.976015406086 Chi(tan=5.13308, x=-1, y=-5.13308), iteration=2: 5.144554015970\n    test 3772 259 259.000000000000 Xi(tan=5.14455, x=-0.190809, y=-0.981627): 5.144554015970\n\n    test 3773 259 259.047946497885 Phi(tan=5.16764, x=-0.189987, y=-0.981787): 5.144554015970\n    test 3774 259 259.011998105898 Beta(tan=5.15031, x=-0.190603, y=-0.981667): 5.144554015970\n    test 3775 259 258.975937580981 Theta(tan=5.13304, x=-0.191221, y=-0.981547): 5.144554015970\n    test 3776 259 258.994002940120 Mu(tan=5.14168, x=-0.190912, y=-0.981607): 5.144554015970\n    test 3777 259 258.976015406086 Chi(tan=5.13308, x=-0.19122, y=-0.981547): 5.144554015970\n    test 3778 259 259.000000000000 Xi(tan=5.14455, x=-0.190809, y=-0.981627): 5.144554015970\n\n    test 3779 266 266.017810106930 Phi(tan=14.3648, x=-1, y=-14.3648): 14.300666256712\n    test 3780 266 266.004456979343 Beta(tan=14.3167, x=-1, y=-14.3167): 14.300666256712\n    test 3781 266 265.991059367560 Theta(tan=14.2687, x=-1, y=-14.2687): 14.300666256712\n    test 3782 266 265.997772097900 Mu(tan=14.2927, x=-0.0697953, y=-0.997561), iteration=3: 14.300666256712\n    test 3783 266 265.991089228290 Chi(tan=14.2688, x=-1, y=-14.2688), iteration=3: 14.300666256712\n    test 3784 266 266.000000000000 Xi(tan=14.3007, x=-0.0697565, y=-0.997564): 14.300666256712\n\n    test 3785 266 266.017810106930 Phi(tan=14.3648, x=-0.0694464, y=-0.997586): 14.300666256712\n    test 3786 266 266.004456979343 Beta(tan=14.3167, x=-0.0696789, y=-0.997569): 14.300666256712\n    test 3787 266 265.991059367560 Theta(tan=14.2687, x=-0.0699121, y=-0.997553): 14.300666256712\n    test 3788 266 265.997772097900 Mu(tan=14.2927, x=-0.0697953, y=-0.997561): 14.300666256712\n    test 3789 266 265.991089228290 Chi(tan=14.2688, x=-0.0699116, y=-0.997553): 14.300666256712\n    test 3790 266 266.000000000000 Xi(tan=14.3007, x=-0.0697565, y=-0.997564): 14.300666256712\n\n    test 3791 273 272.986623544405 Phi(tan=-19.1668, x=1.0, y=-19.1668): -19.081136687728\n    test 3792 273 272.996652532418 Beta(tan=-19.1025, x=1.0, y=-19.1025): -19.081136687728\n    test 3793 273 273.006715074128 Theta(tan=-19.0384, x=1.0, y=-19.0384): -19.081136687728\n    test 3794 273 273.001673300226 Mu(tan=-19.0705, x=0.0523651, y=-0.998628), iteration=2: -19.081136687728\n    test 3795 273 273.006692598711 Chi(tan=-19.0386, x=1.0, y=-19.0386), iteration=3: -19.081136687728\n    test 3796 273 273.000000000000 Xi(tan=-19.0811, x=0.052336, y=-0.99863): -19.081136687728\n\n    test 3797 273 272.986623544405 Phi(tan=-19.1668, x=0.0521028, y=-0.998642): -19.081136687728\n    test 3798 273 272.996652532418 Beta(tan=-19.1025, x=0.0522776, y=-0.998633): -19.081136687728\n    test 3799 273 273.006715074128 Theta(tan=-19.0384, x=0.052453, y=-0.998623): -19.081136687728\n    test 3800 273 273.001673300226 Mu(tan=-19.0705, x=0.0523651, y=-0.998628): -19.081136687728\n    test 3801 273 273.006692598711 Chi(tan=-19.0386, x=0.0524526, y=-0.998623): -19.081136687728\n    test 3802 273 273.000000000000 Xi(tan=-19.0811, x=0.052336, y=-0.99863): -19.081136687728\n\n    test 3803 280 279.956225698278 Phi(tan=-5.69673, x=1.0, y=-5.69673): -5.671281819618\n    test 3804 280 279.989045850720 Beta(tan=-5.67763, x=1.0, y=-5.67763): -5.671281819618\n    test 3805 280 280.021969758476 Theta(tan=-5.65859, x=1.0, y=-5.65859): -5.671281819618\n    test 3806 280 280.005475329461 Mu(tan=-5.66811, x=0.173742, y=-0.984791), iteration=3: -5.671281819618\n    test 3807 280 280.021898241655 Chi(tan=-5.65863, x=1.0, y=-5.65863), iteration=3: -5.671281819618\n    test 3808 280 280.000000000000 Xi(tan=-5.67128, x=0.173648, y=-0.984808): -5.671281819618\n\n    test 3809 280 279.956225698278 Phi(tan=-5.69673, x=0.172896, y=-0.98494): -5.671281819618\n    test 3810 280 279.989045850720 Beta(tan=-5.67763, x=0.17346, y=-0.984841): -5.671281819618\n    test 3811 280 280.021969758476 Theta(tan=-5.65859, x=0.174026, y=-0.984741): -5.671281819618\n    test 3812 280 280.005475329461 Mu(tan=-5.66811, x=0.173742, y=-0.984791): -5.671281819618\n    test 3813 280 280.021898241655 Chi(tan=-5.65863, x=0.174025, y=-0.984741): -5.671281819618\n    test 3814 280 280.000000000000 Xi(tan=-5.67128, x=0.173648, y=-0.984808): -5.671281819618\n\n    test 3815 287 286.928409983832 Phi(tan=-3.28553, x=1.0, y=-3.28553): -3.270852618484\n    test 3816 287 286.982086527391 Beta(tan=-3.27451, x=1.0, y=-3.27451): -3.270852618484\n    test 3817 287 287.035912792570 Theta(tan=-3.26354, x=1.0, y=-3.26354): -3.270852618484\n    test 3818 287 287.008952804861 Mu(tan=-3.26903, x=0.292521, y=-0.956259), iteration=2: -3.270852618484\n    test 3819 287 287.035802540646 Chi(tan=-3.26356, x=1.0, y=-3.26356), iteration=3: -3.270852618484\n    test 3820 287 287.000000000000 Xi(tan=-3.27085, x=0.292372, y=-0.956305): -3.270852618484\n\n    test 3821 287 286.928409983832 Phi(tan=-3.28553, x=0.291177, y=-0.956669): -3.270852618484\n    test 3822 287 286.982086527391 Beta(tan=-3.27451, x=0.292073, y=-0.956396): -3.270852618484\n    test 3823 287 287.035912792570 Theta(tan=-3.26354, x=0.292971, y=-0.956121): -3.270852618484\n    test 3824 287 287.008952804861 Mu(tan=-3.26903, x=0.292521, y=-0.956259): -3.270852618484\n    test 3825 287 287.035802540646 Chi(tan=-3.26356, x=0.292969, y=-0.956122): -3.270852618484\n    test 3826 287 287.000000000000 Xi(tan=-3.27085, x=0.292372, y=-0.956305): -3.270852618484\n\n    test 3827 294 293.904820699861 Phi(tan=-2.25612, x=1.0, y=-2.25612): -2.246036773904\n    test 3828 294 293.976186490838 Beta(tan=-2.24855, x=1.0, y=-2.24855): -2.246036773904\n    test 3829 294 294.047712986128 Theta(tan=-2.24101, x=1.0, y=-2.24101): -2.246036773904\n    test 3830 294 294.011899457288 Mu(tan=-2.24478, x=0.406926, y=-0.913461), iteration=3: -2.246036773904\n    test 3831 294 294.047579285201 Chi(tan=-2.24103, x=1.0, y=-2.24103), iteration=3: -2.246036773904\n    test 3832 294 294.000000000000 Xi(tan=-2.24604, x=0.406737, y=-0.913545): -2.246036773904\n\n    test 3833 294 293.904820699861 Phi(tan=-2.25612, x=0.405219, y=-0.91422): -2.246036773904\n    test 3834 294 293.976186490838 Beta(tan=-2.24855, x=0.406357, y=-0.913714): -2.246036773904\n    test 3835 294 294.047712986128 Theta(tan=-2.24101, x=0.407497, y=-0.913206): -2.246036773904\n    test 3836 294 294.011899457288 Mu(tan=-2.24478, x=0.406926, y=-0.913461): -2.246036773904\n    test 3837 294 294.047579285201 Chi(tan=-2.24103, x=0.407495, y=-0.913207): -2.246036773904\n    test 3838 294 294.000000000000 Xi(tan=-2.24604, x=0.406737, y=-0.913545): -2.246036773904\n\n    test 3839 301 300.886857256907 Phi(tan=-1.67175, x=1.0, y=-1.67175): -1.664279482351\n    test 3840 301 300.971695886665 Beta(tan=-1.66614, x=1.0, y=-1.66614): -1.664279482351\n    test 3841 301 301.056668635072 Theta(tan=-1.66056, x=1.0, y=-1.66056): -1.664279482351\n    test 3842 301 301.014140307923 Mu(tan=-1.66335, x=0.51525, y=-0.85704), iteration=3: -1.664279482351\n    test 3843 301 301.056528796205 Chi(tan=-1.66057, x=1.0, y=-1.66057), iteration=2: -1.664279482351\n    test 3844 301 301.000000000000 Xi(tan=-1.66428, x=0.515038, y=-0.857167): -1.664279482351\n\n    test 3845 301 300.886857256907 Phi(tan=-1.67175, x=0.513344, y=-0.858183): -1.664279482351\n    test 3846 301 300.971695886665 Beta(tan=-1.66614, x=0.514615, y=-0.857422): -1.664279482351\n    test 3847 301 301.056668635072 Theta(tan=-1.66056, x=0.515886, y=-0.856657): -1.664279482351\n    test 3848 301 301.014140307923 Mu(tan=-1.66335, x=0.51525, y=-0.85704): -1.664279482351\n    test 3849 301 301.056528796205 Chi(tan=-1.66057, x=0.515884, y=-0.856659): -1.664279482351\n    test 3850 301 301.000000000000 Xi(tan=-1.66428, x=0.515038, y=-0.857167): -1.664279482351\n\n    test 3851 308 307.875591521416 Phi(tan=-1.28569, x=1.0, y=-1.28569): -1.279941632193\n    test 3852 308 307.968882364101 Beta(tan=-1.28138, x=1.0, y=-1.28138): -1.279941632193\n    test 3853 308 308.062249364871 Theta(tan=-1.27708, x=1.0, y=-1.27708): -1.279941632193\n    test 3854 308 308.015542045055 Mu(tan=-1.27923, x=0.615875, y=-0.787844), iteration=2: -1.279941632193\n    test 3855 308 308.062119501659 Chi(tan=-1.27709, x=1.0, y=-1.27709), iteration=3: -1.279941632193\n    test 3856 308 308.000000000000 Xi(tan=-1.27994, x=0.615661, y=-0.788011): -1.279941632193\n\n    test 3857 308 307.875591521416 Phi(tan=-1.28569, x=0.613949, y=-0.789346): -1.279941632193\n    test 3858 308 307.968882364101 Beta(tan=-1.28138, x=0.615233, y=-0.788345): -1.279941632193\n    test 3859 308 308.062249364871 Theta(tan=-1.27708, x=0.616517, y=-0.787341): -1.279941632193\n    test 3860 308 308.015542045055 Mu(tan=-1.27923, x=0.615875, y=-0.787844): -1.279941632193\n    test 3861 308 308.062119501659 Chi(tan=-1.27709, x=0.616515, y=-0.787343): -1.279941632193\n    test 3862 308 308.000000000000 Xi(tan=-1.27994, x=0.615661, y=-0.788011): -1.279941632193\n\n    test 3863 315 314.871703066479 Phi(tan=-1.00449, x=1.0, y=-1.00449): -1.000000000000\n    test 3864 315 314.967914975772 Beta(tan=-1.00112, x=1.0, y=-1.00112): -1.000000000000\n    test 3865 315 315.064127246955 Theta(tan=-0.997764, x=1.0, y=-0.997764): -1.000000000000\n    test 3866 315 315.016020986969 Mu(tan=-0.999441, x=0.707304, y=-0.706909), iteration=2: -1.000000000000\n    test 3867 315 315.064019491023 Chi(tan=-0.997768, x=1.0, y=-0.997768), iteration=3: -1.000000000000\n    test 3868 315 315.000000000000 Xi(tan=-1, x=0.707107, y=-0.707107): -1.000000000000\n\n    test 3869 315 314.871703066479 Phi(tan=-1.00449, x=0.705522, y=-0.708688): -1.000000000000\n    test 3870 315 314.967914975772 Beta(tan=-1.00112, x=0.706711, y=-0.707503): -1.000000000000\n    test 3871 315 315.064127246955 Theta(tan=-0.997764, x=0.707898, y=-0.706315): -1.000000000000\n    test 3872 315 315.016020986969 Mu(tan=-0.999441, x=0.707304, y=-0.706909): -1.000000000000\n    test 3873 315 315.064019491023 Chi(tan=-0.997768, x=0.707896, y=-0.706316): -1.000000000000\n    test 3874 315 315.000000000000 Xi(tan=-1, x=0.707107, y=-0.707107): -1.000000000000\n\n    test 3875 322 321.875436413614 Phi(tan=-0.784793, x=1.0, y=-0.784793): -0.781285626507\n    test 3876 322 321.968853692070 Beta(tan=-0.782161, x=1.0, y=-0.782161): -0.781285626507\n    test 3877 322 322.062195432519 Theta(tan=-0.779539, x=1.0, y=-0.779539): -0.781285626507\n    test 3878 322 322.015548148041 Mu(tan=-0.780849, x=0.788178, y=-0.615448), iteration=2: -0.781285626507\n    test 3879 322 322.062116180014 Chi(tan=-0.779541, x=1.0, y=-0.779541), iteration=3: -0.781285626507\n    test 3880 322 322.000000000000 Xi(tan=-0.781286, x=0.788011, y=-0.615661): -0.781285626507\n\n    test 3881 322 321.875436413614 Phi(tan=-0.784793, x=0.78667, y=-0.617373): -0.781285626507\n    test 3882 322 321.968853692070 Beta(tan=-0.782161, x=0.787676, y=-0.61609): -0.781285626507\n    test 3883 322 322.062195432519 Theta(tan=-0.779539, x=0.788679, y=-0.614806): -0.781285626507\n    test 3884 322 322.015548148041 Mu(tan=-0.780849, x=0.788178, y=-0.615448): -0.781285626507\n    test 3885 322 322.062116180014 Chi(tan=-0.779541, x=0.788678, y=-0.614807): -0.781285626507\n    test 3886 322 322.000000000000 Xi(tan=-0.781286, x=0.788011, y=-0.615661): -0.781285626507\n\n    test 3887 329 328.886583352158 Phi(tan=-0.603558, x=1.0, y=-0.603558): -0.600860619028\n    test 3888 329 328.971645254782 Beta(tan=-0.601534, x=1.0, y=-0.601534): -0.600860619028\n    test 3889 329 329.056573396118 Theta(tan=-0.599518, x=1.0, y=-0.599518): -0.600860619028\n    test 3890 329 329.014151085164 Mu(tan=-0.600525, x=0.857294, y=-0.514826), iteration=3: -0.600860619028\n    test 3891 329 329.056522930537 Chi(tan=-0.599519, x=1.0, y=-0.599519), iteration=3: -0.600860619028\n    test 3892 329 329.000000000000 Xi(tan=-0.600861, x=0.857167, y=-0.515038): -0.600860619028\n\n    test 3893 329 328.886583352158 Phi(tan=-0.603558, x=0.856146, y=-0.516734): -0.600860619028\n    test 3894 329 328.971645254782 Beta(tan=-0.601534, x=0.856912, y=-0.515462): -0.600860619028\n    test 3895 329 329.056573396118 Theta(tan=-0.599518, x=0.857675, y=-0.514191): -0.600860619028\n    test 3896 329 329.014151085164 Mu(tan=-0.600525, x=0.857294, y=-0.514826): -0.600860619028\n    test 3897 329 329.056522930537 Chi(tan=-0.599519, x=0.857675, y=-0.514192): -0.600860619028\n    test 3898 329 329.000000000000 Xi(tan=-0.600861, x=0.857167, y=-0.515038): -0.600860619028\n\n    test 3899 336 335.904492119885 Phi(tan=-0.447228, x=1.0, y=-0.447228): -0.445228685309\n    test 3900 336 335.976125752178 Beta(tan=-0.445728, x=1.0, y=-0.445728): -0.445228685309\n    test 3901 336 336.047598736385 Theta(tan=-0.444234, x=1.0, y=-0.444234): -0.445228685309\n    test 3902 336 336.011912385791 Mu(tan=-0.44498, x=0.91363, y=-0.406547), iteration=2: -0.445228685309\n    test 3903 336 336.047572248701 Chi(tan=-0.444234, x=1.0, y=-0.444234), iteration=3: -0.445228685309\n    test 3904 336 336.000000000000 Xi(tan=-0.445229, x=0.913545, y=-0.406737): -0.445228685309\n\n    test 3905 336 335.904492119885 Phi(tan=-0.447228, x=0.912866, y=-0.408259): -0.445228685309\n    test 3906 336 335.976125752178 Beta(tan=-0.445728, x=0.913376, y=-0.407117): -0.445228685309\n    test 3907 336 336.047598736385 Theta(tan=-0.444234, x=0.913883, y=-0.405978): -0.445228685309\n    test 3908 336 336.011912385791 Mu(tan=-0.44498, x=0.91363, y=-0.406547): -0.445228685309\n    test 3909 336 336.047572248701 Chi(tan=-0.444234, x=0.913883, y=-0.405978): -0.445228685309\n    test 3910 336 336.000000000000 Xi(tan=-0.445229, x=0.913545, y=-0.406737): -0.445228685309\n\n    test 3911 343 342.928103650624 Phi(tan=-0.307103, x=1.0, y=-0.307103): -0.305730681459\n    test 3912 343 342.982029901147 Beta(tan=-0.306074, x=1.0, y=-0.306074): -0.305730681459\n    test 3913 343 343.035806278435 Theta(tan=-0.305047, x=1.0, y=-0.305047): -0.305730681459\n    test 3914 343 343.008964858001 Mu(tan=-0.30556, x=0.95635, y=-0.292222), iteration=3: -0.305730681459\n    test 3915 343 343.035795980594 Chi(tan=-0.305048, x=1.0, y=-0.305048), iteration=3: -0.305730681459\n    test 3916 343 343.000000000000 Xi(tan=-0.305731, x=0.956305, y=-0.292372): -0.305730681459\n\n    test 3917 343 342.928103650624 Phi(tan=-0.307103, x=0.955937, y=-0.293571): -0.305730681459\n    test 3918 343 342.982029901147 Beta(tan=-0.306074, x=0.956213, y=-0.292672): -0.305730681459\n    test 3919 343 343.035806278435 Theta(tan=-0.305047, x=0.956487, y=-0.291774): -0.305730681459\n    test 3920 343 343.008964858001 Mu(tan=-0.30556, x=0.95635, y=-0.292222): -0.305730681459\n    test 3921 343 343.035795980594 Chi(tan=-0.305048, x=0.956487, y=-0.291774): -0.305730681459\n    test 3922 343 343.000000000000 Xi(tan=-0.305731, x=0.956305, y=-0.292372): -0.305730681459\n\n    test 3923 350 349.956013326444 Phi(tan=-0.177119, x=1.0, y=-0.177119): -0.176326980708\n    test 3924 350 349.989006593437 Beta(tan=-0.176525, x=1.0, y=-0.176525): -0.176326980708\n    test 3925 350 350.021895915483 Theta(tan=-0.175933, x=1.0, y=-0.175933): -0.176326980708\n    test 3926 350 350.005483685534 Mu(tan=-0.176228, x=0.984824, y=-0.173554), iteration=3: -0.176326980708\n    test 3927 350 350.021893693784 Chi(tan=-0.175933, x=1.0, y=-0.175933), iteration=3: -0.176326980708\n    test 3928 350 350.000000000000 Xi(tan=-0.176327, x=0.984808, y=-0.173648): -0.176326980708\n\n    test 3929 350 349.956013326444 Phi(tan=-0.177119, x=0.984674, y=-0.174404): -0.176326980708\n    test 3930 350 349.989006593437 Beta(tan=-0.176525, x=0.984774, y=-0.173837): -0.176326980708\n    test 3931 350 350.021895915483 Theta(tan=-0.175933, x=0.984874, y=-0.173272): -0.176326980708\n    test 3932 350 350.005483685534 Mu(tan=-0.176228, x=0.984824, y=-0.173554): -0.176326980708\n    test 3933 350 350.021893693784 Chi(tan=-0.175933, x=0.984874, y=-0.173272): -0.176326980708\n    test 3934 350 350.000000000000 Xi(tan=-0.176327, x=0.984808, y=-0.173648): -0.176326980708\n\n    test 3935 357 356.986554851958 Phi(tan=-0.0526431, x=1.0, y=-0.0526431): -0.052407779283\n    test 3936 357 356.996639834512 Beta(tan=-0.0524666, x=1.0, y=-0.0524666): -0.052407779283\n    test 3937 357 357.006691189366 Theta(tan=-0.0522907, x=1.0, y=-0.0522907): -0.052407779283\n    test 3938 357 357.001676003026 Mu(tan=-0.0523784, x=0.998631, y=-0.0523067), iteration=3: -0.052407779283\n    test 3939 357 357.006691127690 Chi(tan=-0.0522907, x=1.0, y=-0.0522907), iteration=3: -0.052407779283\n    test 3940 357 357.000000000000 Xi(tan=-0.0524078, x=0.99863, y=-0.052336): -0.052407779283\n\n    test 3941 357 356.986554851958 Phi(tan=-0.0526431, x=0.998617, y=-0.0525703): -0.052407779283\n    test 3942 357 356.996639834512 Beta(tan=-0.0524666, x=0.998626, y=-0.0523945): -0.052407779283\n    test 3943 357 357.006691189366 Theta(tan=-0.0522907, x=0.998636, y=-0.0522193): -0.052407779283\n    test 3944 357 357.001676003026 Mu(tan=-0.0523784, x=0.998631, y=-0.0523067): -0.052407779283\n    test 3945 357 357.006691127690 Chi(tan=-0.0522907, x=0.998636, y=-0.0522193): -0.052407779283\n    test 3946 357 357.000000000000 Xi(tan=-0.0524078, x=0.99863, y=-0.052336): -0.052407779283\n\n    test 3947 abs: AuxAngle(tan=2.0, x=1.0, y=2.0)\n    test 3948 add: AuxAngle(tan=-1.33333, x=-3, y=4.0)\n    test 3949 eq : True\n    test 3950 float: 2.0\n    test 3951 sub: AuxAngle(tan=0.0, x=1.0, y=0.0)\n    test 3952 neg: AuxAngle(tan=-2, x=1.0, y=-2)\n    test 3953 ne : False\n    test 3954 pos: AuxAngle(tan=2.0, x=1.0, y=2.0)\n    test 3955 iadd: AuxAngle(tan=-1.33333, x=-3, y=4.0)\n    test 3956 isub: AuxAngle(tan=0.0, x=1.0, y=0.0)\n    test 3957 radd: AuxAngle(tan=0.0, x=1.0, y=0.0)\n    test 3958 rsub: AuxAngle(tan=0.0, x=1.0, y=0.0)\n\n    6 tests skipped (6): no numpy\n\n    50 of 3958 testAuxilats.py tests (1.3%) FAILED, ALL KNOWN, 6 skipped (pygeodesy 26.3.26 PyPy 7.3.17 Python 3.10.14 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 2.384 sec\nrunning /opt/local/bin/p....y3.10 -W default ~/PyGeodesy/test/testAzimuthal.py\n./pygeodesy/azimuthal.py:636: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return self.datum.ellipsoid.geodesic\n./pygeodesy/azimuthal.py:937: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return self.datum.ellipsoid.geodesic\n# lazily imported pygeodesy.basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.DeprecationWarnings from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isint from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isLazy from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.issubclassof from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.iterNumpy2over from .iters by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.LazyImportError from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.karney by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.NN from .interns by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.normDMS from .dms by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.pairs from .streprs by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.printf from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.property_RO from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.typename from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.Equidistant from .azimuthal by testAzimuthal.py line 11\n# lazily imported pygeodesy.EquidistantExact from .azimuthal by testAzimuthal.py line 11\n# lazily imported pygeodesy.EquidistantGeodSolve from .azimuthal by testAzimuthal.py line 11\n# lazily imported pygeodesy.EquidistantKarney from .azimuthal by testAzimuthal.py line 11\n# lazily imported pygeodesy.Gnomonic from .azimuthal by testAzimuthal.py line 11\n# lazily imported pygeodesy.GnomonicExact from .azimuthal by testAzimuthal.py line 11\n# lazily imported pygeodesy.GnomonicGeodSolve from .azimuthal by testAzimuthal.py line 11\n# lazily imported pygeodesy.GnomonicKarney from .azimuthal by testAzimuthal.py line 11\n# lazily imported pygeodesy.LambertEqualArea from .azimuthal by testAzimuthal.py line 11\n# lazily imported pygeodesy.Orthographic from .azimuthal by testAzimuthal.py line 11\n# lazily imported pygeodesy.Stereographic from .azimuthal by testAzimuthal.py line 11\n# lazily imported pygeodesy.ellipsoidalExact by testAzimuthal.py line 11\n# lazily imported pygeodesy.ellipsoidalKarney by testAzimuthal.py line 11\n# lazily imported pygeodesy.ellipsoidalNvector by testAzimuthal.py line 11\n# lazily imported pygeodesy.ellipsoidalVincenty by testAzimuthal.py line 11\n# lazily imported pygeodesy.F_D from .dms by testAzimuthal.py line 11\n# lazily imported pygeodesy.fstr from .streprs by testAzimuthal.py line 11\n# lazily imported pygeodesy.hypot from .fmath by testAzimuthal.py line 11\n# lazily imported pygeodesy.IntersectionError from .errors by testAzimuthal.py line 11\n# lazily imported pygeodesy.latlonDMS from .dms by testAzimuthal.py line 11\n# lazily imported pygeodesy.latlonDMS_ from .dms by testAzimuthal.py line 11\n# lazily imported pygeodesy.vincentys from .formy by testAzimuthal.py line 11\n# lazily imported pygeodesy.Azimuthal7Tuple from .azimuthal by testAzimuthal.py line 138\n# lazily imported pygeodesy.equidistant from .azimuthal by testAzimuthal.py line 138\n# lazily imported pygeodesy.gnomonic from .azimuthal by testAzimuthal.py line 138\n# lazily imported pygeodesy.NAN from .constants by testAzimuthal.py line 138\n\n    testing testAzimuthal.py 25.05.09 (module pygeodesy.azimuthal 25.11.29) isLazy=3\n    test 1 Equidistant(48.833333, 2.333333, name='Paris'): 48.833333 2.333333\n    test 2 forward: -37467.812512, 230294.518853, 50.9, 1.8, 350.759218, 1.000223\n    test 3 reverse: -37467.812512, 230294.518853, 50.9, 1.8, 350.759218, 1.000223\n    test 4 iteration: None\n    test 5 copy(<class 'type'>): (<class 'pygeodesy.azimuthal.Equidistant'>, True)\n    test 6 Equidistant.copy(): (<class 'pygeodesy.azimuthal.Equidistant'>, True)\n    test 7 reverse: -38000.0, 230000.0, 50.897321, 1.792455, 350.61849, 1.000222\n    test 8 forward: -38000.0, 230000.0, 50.897321, 1.792455, 350.61849, 1.000222\n    test 9 reverse: LatLon(50°53′50.36″N, 001°47′32.84″E)\n    test 10 reverse: LatLon(50°53′50.36″N, 001°47′32.84″E)\n    test 11 reverse: LatLon(50°53′50.36″N, 001°47′32.84″E)\n    test 12 reverse: LatLon(50°53′50.36″N, 001°47′32.84″E)\n    test 13 Equidistant(51.4934, 0.0098, name='Greenwich'): 51.4934 0.0098\n    test 14 forward: 170420.92566, -293667.828613, 48.833333, 2.333333, 149.872606, 1.000472\n    test 15 reverse: 170420.92566, -293667.828613, 48.833333, 2.333333, 149.872606, 1.000472\n    test 16 iteration: None\n    test 17 hypot: 339535.102  FAILED, KNOWN, expected 338901.865\n    test 18 antipodal: (170420.92566, -293667.828613, -48.833333, -177.666667, 0.0, 1.000472, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n\n    test 19 Gnomonic(48.833333, 2.333333, name='Paris'): 48.833333 2.333333\n    test 20 forward: -37484.520018, 230397.210923, 50.9, 1.8, 350.759218, 1.000669\n    test 21 reverse: -37484.520018, 230397.210923, 50.9, 1.8, 350.759218, 1.000223\n    test 22 iteration: None\n    test 23 copy(<class 'type'>): (<class 'pygeodesy.azimuthal.Gnomonic'>, True)\n    test 24 Gnomonic.copy(): (<class 'pygeodesy.azimuthal.Gnomonic'>, True)\n    test 25 reverse: -38000.0, 230000.0, 50.896405, 1.792706, 350.61849, 1.000222\n    test 26 forward: -38000.0, 230000.0, 50.896405, 1.792706, 350.61849, 1.000667\n    test 27 reverse: LatLon(50°53′47.06″N, 001°47′33.74″E)\n    test 28 reverse: LatLon(50°53′47.06″N, 001°47′33.74″E)\n    test 29 reverse: LatLon(50°53′47.06″N, 001°47′33.74″E)\n    test 30 reverse: LatLon(50°53′47.06″N, 001°47′33.74″E)\n    test 31 Gnomonic(51.4934, 0.0098, name='Greenwich'): 51.4934 0.0098\n    test 32 forward: 170581.851218, -293945.134107, 48.833333, 2.333333, 149.872606, 1.001416\n    test 33 reverse: 170581.851218, -293945.134107, 48.833333, 2.333333, 149.872606, 1.000472\n    test 34 iteration: None\n    test 35 hypot: 339855.719  FAILED, KNOWN, expected 338901.865\n    test 36 antipodal: (170581.851218, -293945.134107, -48.833333, -177.666667, 0.0, 1.000472, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n\n# lazily imported pygeodesy.geodesicx by ellipsoids.py line 1082\n    test 37 EquidistantExact(48.833333, 2.333333, name='Paris'): 48.833333 2.333333\n# lazily imported pygeodesy.elliptic by gx.py line 421\n    test 38 forward: -37526.978232, 230000.911579, 50.9, 1.8, 350.325442, 0.999778\n    test 39 reverse: -37526.978232, 230000.911579, 50.9, 1.8, 350.325442, 0.999778\n    test 40 iteration: None\n    test 41 copy(<class 'type'>): (<class 'pygeodesy.azimuthal.EquidistantExact'>, True)\n    test 42 EquidistantExact.copy(): (<class 'pygeodesy.azimuthal.EquidistantExact'>, True)\n    test 43 reverse: -38000.0, 230000.0, 50.899962, 1.793278, 350.205524, 0.999778\n    test 44 forward: -38000.0, 230000.0, 50.899962, 1.793278, 350.205524, 0.999778\n    test 45 reverse: LatLon(50°53′59.86″N, 001°47′35.8″E)\n    test 46 reverse: LatLon(50°53′59.86″N, 001°47′35.8″E)\n    test 47 reverse: LatLon(50°53′59.86″N, 001°47′35.8″E)\n    test 48 reverse: LatLon(50°53′59.86″N, 001°47′35.8″E)\n    test 49 EquidistantExact(51.4934, 0.0098, name='Greenwich'): 51.4934 0.0098\n    test 50 forward: 170617.186469, -293210.754313, 48.833333, 2.333333, 151.589952, 0.999529\n    test 51 reverse: 170617.186469, -293210.754313, 48.833333, 2.333333, 151.589952, 0.999529\n    test 52 iteration: None\n    test 53 hypot: 339238.516  FAILED, KNOWN, expected 338901.865\n    test 54 antipodal: (170617.186469, -293210.754313, -48.833333, -177.666667, 0.0, 0.999529, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n\n    test 55 GnomonicExact(48.833333, 2.333333, name='Paris'): 48.833333 2.333333\n    test 56 forward: -37543.665895, 230103.189403, 50.9, 1.8, 350.325442, 0.999333\n    test 57 reverse: -37543.665895, 230103.189403, 50.9, 1.8, 350.325442, 0.999333\n    test 58 iteration: 3\n    test 59 copy(<class 'type'>): (<class 'pygeodesy.azimuthal.GnomonicExact'>, True)\n    test 60 GnomonicExact.copy(): (<class 'pygeodesy.azimuthal.GnomonicExact'>, True)\n    test 61 reverse: -38000.0, 230000.0, 50.899044, 1.793528, 350.205718, 0.999333\n    test 62 forward: -37999.995965, 229999.975581, 50.899044, 1.793528, 350.205718, 0.999334\n    test 63 reverse: LatLon(50°53′56.56″N, 001°47′36.7″E)\n    test 64 reverse: LatLon(50°53′56.56″N, 001°47′36.7″E)\n    test 65 reverse: LatLon(50°53′56.56″N, 001°47′36.7″E)\n    test 66 reverse: LatLon(50°53′56.56″N, 001°47′36.7″E)\n    test 67 GnomonicExact(51.4934, 0.0098, name='Greenwich'): 51.4934 0.0098\n    test 68 forward: 170778.089295, -293487.270649, 48.833333, 2.333333, 151.589952, 0.998587\n    test 69 reverse: 170778.089295, -293487.270649, 48.833333, 2.333334, 151.589953, 0.998588\n    test 70 iteration: 3\n    test 71 hypot: 339558.439  FAILED, KNOWN, expected 338901.963\n    test 72 antipodal: (170778.089295, -293487.270649, -48.833333, -177.666666, 0.0, 0.998588, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n\n# lazily imported pygeodesy.geodesicw by ellipsoids.py line 1074\n    test 73 EquidistantKarney(48.833333, 2.333333, name='Paris'): 48.833333 2.333333\n    test 74 forward: -37526.978232, 230000.911579, 50.9, 1.8, 350.325442, 0.999778\n    test 75 reverse: -37526.978232, 230000.911579, 50.9, 1.8, 350.325442, 0.999778\n    test 76 iteration: None\n    test 77 copy(<class 'type'>): (<class 'pygeodesy.azimuthal.EquidistantKarney'>, True)\n    test 78 EquidistantKarney.copy(): (<class 'pygeodesy.azimuthal.EquidistantKarney'>, True)\n    test 79 reverse: -38000.0, 230000.0, 50.899962, 1.793278, 350.205524, 0.999778\n    test 80 forward: -38000.0, 230000.0, 50.899962, 1.793278, 350.205524, 0.999778\n    test 81 reverse: LatLon(50°53′59.86″N, 001°47′35.8″E)\n    test 82 reverse: LatLon(50°53′59.86″N, 001°47′35.8″E)\n    test 83 reverse: LatLon(50°53′59.86″N, 001°47′35.8″E)\n    test 84 reverse: LatLon(50°53′59.86″N, 001°47′35.8″E)\n    test 85 EquidistantKarney(51.4934, 0.0098, name='Greenwich'): 51.4934 0.0098\n    test 86 forward: 170617.186469, -293210.754313, 48.833333, 2.333333, 151.589952, 0.999529\n    test 87 reverse: 170617.186469, -293210.754313, 48.833333, 2.333333, 151.589952, 0.999529\n    test 88 iteration: None\n    test 89 hypot: 339238.516  FAILED, KNOWN, expected 338901.865\n    test 90 antipodal: (170617.186469, -293210.754313, -48.833333, -177.666667, 0.0, 0.999529, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n\n    test 91 GnomonicKarney(48.833333, 2.333333, name='Paris'): 48.833333 2.333333\n    test 92 forward: -37543.665895, 230103.189403, 50.9, 1.8, 350.325442, 0.999333\n    test 93 reverse: -37543.665895, 230103.189403, 50.9, 1.8, 350.325442, 0.999333\n    test 94 iteration: 3\n    test 95 copy(<class 'type'>): (<class 'pygeodesy.azimuthal.GnomonicKarney'>, True)\n    test 96 GnomonicKarney.copy(): (<class 'pygeodesy.azimuthal.GnomonicKarney'>, True)\n    test 97 reverse: -38000.0, 230000.0, 50.899044, 1.793528, 350.205718, 0.999333\n    test 98 forward: -37999.995965, 229999.975581, 50.899044, 1.793528, 350.205718, 0.999334\n    test 99 reverse: LatLon(50°53′56.56″N, 001°47′36.7″E)\n    test 100 reverse: LatLon(50°53′56.56″N, 001°47′36.7″E)\n    test 101 reverse: LatLon(50°53′56.56″N, 001°47′36.7″E)\n    test 102 reverse: LatLon(50°53′56.56″N, 001°47′36.7″E)\n    test 103 GnomonicKarney(51.4934, 0.0098, name='Greenwich'): 51.4934 0.0098\n    test 104 forward: 170778.089295, -293487.270649, 48.833333, 2.333333, 151.589952, 0.998587\n    test 105 reverse: 170778.089295, -293487.270649, 48.833333, 2.333334, 151.589953, 0.998588\n    test 106 iteration: 3\n    test 107 hypot: 339558.439  FAILED, KNOWN, expected 338901.963\n    test 108 antipodal: (170778.089295, -293487.270649, -48.833333, -177.666666, 0.0, 0.998588, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n\n    test 109 pygeodesy.ellipsoidalExact: 20.837802°N, 037.265561°E Random +/- 45\n    test 110 pygeodesy.ellipsoidalExact: 20.731625°N, 037.239134°E, 47.241037°N, 090.706953°W  d 12073 meter  Spherical\n    test 111 pygeodesy.ellipsoidalExact: 20.837802°N, 037.265561°E, 47.570386°N, 090.710621°W  d 6.17408e-09 meter  EquidistantExact\n    test 112 pygeodesy.ellipsoidalExact: 20.782926°N, 037.386689°E, 47.157338°N, 090.535988°W  d 13996.9 meter  Equidistant\n    test 113 pygeodesy.ellipsoidalExact: 00.054876°N, 000.121128°W  00.263%, 000.325% of Random\n    test 114 pygeodesy.ellipsoidalExact: 20.178788°N, 037.863183°E, 25.430614°N, 029.712824°E  d 95962.9 meter  Spherical\n    test 115 pygeodesy.ellipsoidalExact: 20.837802°N, 037.265561°E, 25.165736°N, 030.636290°E  d 4.44746e-09 meter  EquidistantExact\n    test 116 pygeodesy.ellipsoidalExact: 20.476289°N, 037.616298°E, 25.350745°N, 029.993058°E  d 54200.8 meter  Equidistant\n    test 117 pygeodesy.ellipsoidalExact: 00.361512°N, 000.350737°W  01.735%, 000.941% of Random\n    test 118 pygeodesy.ellipsoidalExact: 20.709830°N, 037.325305°E, 23.986765°S, 006.357154°E  d 15473.9 meter  Spherical\n    test 119 pygeodesy.ellipsoidalExact: 20.837802°N, 037.265561°E, 24.154986°S, 006.451641°E  d 2.4412e-08 meter  EquidistantExact\n    test 120 pygeodesy.ellipsoidalExact: 20.649633°N, 037.393582°E, 24.020776°S, 006.424760°E  d 24734.1 meter  Equidistant\n    test 121 pygeodesy.ellipsoidalExact: 00.188169°N, 000.128021°W  00.903%, 000.344% of Random\n    test 122 pygeodesy.ellipsoidalExact: 20.711361°N, 037.299061°E, 05.817097°S, 011.555753°E  d 14426.8 meter  Spherical\n    test 123 pygeodesy.ellipsoidalExact: 20.837802°N, 037.265561°E, 05.951600°S, 011.594991°E  d 1.4791e-09 meter  EquidistantExact\n    test 124 pygeodesy.ellipsoidalExact: 20.741251°N, 037.340858°E, 05.878220°S, 011.509974°E  d 13256.2 meter  Equidistant\n    test 125 pygeodesy.ellipsoidalExact: 00.096551°N, 000.075297°W  00.463%, 000.202% of Random\n    test 126 pygeodesy.ellipsoidalExact: 20.575926°N, 037.192481°E, 24.714874°S, 101.748846°E  d 29975.9 meter  Spherical\n    test 127 pygeodesy.ellipsoidalExact: 20.837802°N, 037.265561°E, 24.833538°S, 101.692379°E  d 5.92692e-09 meter  EquidistantExact\n    test 128 pygeodesy.ellipsoidalExact: 20.655364°N, 037.264116°E, 24.641480°S, 101.782492°E  d 20198.9 meter  Equidistant\n    test 129 pygeodesy.ellipsoidalExact: 00.182438°N, 000.001445°E  00.876%, 000.004% of Random\n    test 130 pygeodesy.ellipsoidalExact: 20.580088°N, 037.318129°E, 24.532151°N, 030.587744°W  d 29053.1 meter  Spherical\n    test 131 pygeodesy.ellipsoidalExact: 20.837802°N, 037.265561°E, 24.827619°N, 030.502704°W  d 4.49312e-09 meter  EquidistantExact\n    test 132 pygeodesy.ellipsoidalExact: 20.657872°N, 037.365880°E, 24.595305°N, 030.618001°W  d 22494.2 meter  Equidistant\n    test 133 pygeodesy.ellipsoidalExact: 00.179930°N, 000.100319°W  00.863%, 000.269% of Random\n    test 134 pygeodesy.ellipsoidalExact: 20.563907°N, 037.369395°E, 35.558645°N, 066.016542°W  d 32195.3 meter  Spherical\n    test 135 pygeodesy.ellipsoidalExact: 20.837802°N, 037.265561°E, 35.944754°N, 065.829690°W  d 6.13477e-09 meter  EquidistantExact\n    test 136 pygeodesy.ellipsoidalExact: 20.685070°N, 037.419860°E, 35.556493°N, 066.016170°W  d 23326.1 meter  Equidistant\n    test 137 pygeodesy.ellipsoidalExact: 00.152732°N, 000.154299°W  00.733%, 000.414% of Random\n    test 138 pygeodesy.ellipsoidalExact: 20.653766°N, 037.295820°E, 49.956972°N, 009.743883°W  d 20617.5 meter  Spherical\n    test 139 pygeodesy.ellipsoidalExact: 20.837802°N, 037.265561°E, 50.163866°N, 009.239277°W  d 8.19485e-10 meter  EquidistantExact\n    test 140 pygeodesy.ellipsoidalExact: 20.778102°N, 037.357245°E, 49.843129°N, 009.925447°W  d 11609.8 meter  Equidistant\n    test 141 pygeodesy.ellipsoidalExact: 00.059700°N, 000.091684°W  00.286%, 000.246% of Random\n    test 142 pygeodesy.ellipsoidalExact: 20.669139°N, 037.346294°E, 25.229903°N, 036.730998°E  d 20478.8 meter  Spherical\n    test 143 pygeodesy.ellipsoidalExact: 20.837802°N, 037.265561°E, 25.068982°N, 036.706044°E  d 1.06037e-08 meter  EquidistantExact\n    test 144 pygeodesy.ellipsoidalExact: 20.355166°N, 037.510605°E, 25.474475°N, 036.786569°E  d 59225.7 meter  Equidistant\n    test 145 pygeodesy.ellipsoidalExact: 00.482636°N, 000.245043°W  02.316%, 000.658% of Random\n    test 146 pygeodesy.ellipsoidalExact: 20.651840°N, 037.302123°E, 07.288325°N, 033.384623°E  d 20937.7 meter  Spherical\n    test 147 pygeodesy.ellipsoidalExact: 20.837802°N, 037.265561°E, 07.108581°N, 033.280790°E  d 6.38364e-09 meter  EquidistantExact\n    test 148 pygeodesy.ellipsoidalExact: 20.486897°N, 037.336334°E, 07.474387°N, 033.557659°E  d 39543.3 meter  Equidistant\n    test 149 pygeodesy.ellipsoidalExact: 00.350904°N, 000.070773°W  01.684%, 000.190% of Random\n    test 150 pygeodesy.ellipsoidalExact: 20.563067°N, 037.338802°E, 36.599711°S, 073.027235°W  d 31359.2 meter  Spherical\n    test 151 pygeodesy.ellipsoidalExact: 20.837802°N, 037.265561°E, 36.849146°S, 072.969640°W  d 6.13477e-09 meter  EquidistantExact\n    test 152 pygeodesy.ellipsoidalExact: 20.610465°N, 037.435977°E, 36.598020°S, 073.014794°W  d 30799 meter  Equidistant\n    test 153 pygeodesy.ellipsoidalExact: 00.227337°N, 000.170416°W  01.091%, 000.457% of Random\n    test 154 pygeodesy.ellipsoidalExact: 20.537724°N, 037.383819°E, 11.911851°N, 075.711324°W  d 35433.5 meter  Spherical\n    test 155 pygeodesy.ellipsoidalExact: 20.837802°N, 037.265561°E, 12.125687°N, 075.616731°W  d 7.70591e-09 meter  EquidistantExact\n    test 156 pygeodesy.ellipsoidalExact: 20.617723°N, 037.447504°E, 12.013413°N, 075.806826°W  d 30867.7 meter  Equidistant\n    test 157 pygeodesy.ellipsoidalExact: 00.220078°N, 000.181943°W  01.056%, 000.488% of Random\n    test 158 pygeodesy.ellipsoidalExact: 00.482636°N, 000.350737°E  02.316%, 000.941% of Random, max\n\n    test 159 pygeodesy.ellipsoidalVincenty: 41.186078°N, 034.518810°E Random +/- 45\n    test 160 pygeodesy.ellipsoidalVincenty: 41.216002°N, 034.466444°E, 36.757969°N, 036.250386°E  d 5507.89 meter  Spherical\n    test 161 pygeodesy.ellipsoidalVincenty: 41.186078°N, 034.518810°E, 36.788859°N, 036.252161°E  d 3.32017e-05 meter  EquidistantExact\n    test 162 pygeodesy.ellipsoidalVincenty: 41.261815°N, 034.378326°E, 36.740313°N, 036.242240°E  d 14474.3 meter  Equidistant\n    test 163 pygeodesy.ellipsoidalVincenty: 00.075738°S, 000.140484°E  00.184%, 000.407% of Random\n    test 164 pygeodesy.ellipsoidalVincenty: 40.851194°N, 034.534088°E, 50.241748°S, 131.016402°W  d 37212.5 meter  Spherical\n    test 165 pygeodesy.ellipsoidalVincenty: 41.186078°N, 034.518810°E, 50.477317°S, 130.978321°W  d 1.93863e-06 meter  EquidistantExact\n    test 166 pygeodesy.ellipsoidalVincenty: 40.798654°N, 034.533581°E, 50.386452°S, 130.973130°W  d 43042.9 meter  Equidistant\n    test 167 pygeodesy.ellipsoidalVincenty: 00.387424°N, 000.014771°W  00.941%, 000.043% of Random\n    test 168 pygeodesy.ellipsoidalVincenty: 41.074804°N, 034.598238°E, 21.089845°S, 024.140244°E  d 14042.6 meter  Spherical\n    test 169 pygeodesy.ellipsoidalVincenty: 41.186078°N, 034.518810°E, 21.224760°S, 024.109286°E  d 2.64958e-05 meter  EquidistantExact\n    test 170 pygeodesy.ellipsoidalVincenty: 41.048538°N, 034.546214°E, 21.170019°S, 024.203830°E  d 15447.1 meter  Equidistant\n    test 171 pygeodesy.ellipsoidalVincenty: 00.137540°N, 000.027405°W  00.334%, 000.079% of Random\n    test 172 pygeodesy.ellipsoidalVincenty: 41.032073°N, 034.369399°E, 19.422826°S, 067.358116°E  d 21213.6 meter  Spherical\n    test 173 pygeodesy.ellipsoidalVincenty: 41.186078°N, 034.518810°E, 19.600494°S, 067.286307°E  d 4.1392e-06 meter  EquidistantExact\n    test 174 pygeodesy.ellipsoidalVincenty: 41.006716°N, 034.332358°E, 19.395639°S, 067.447246°E  d 25340.6 meter  Equidistant\n    test 175 pygeodesy.ellipsoidalVincenty: 00.179362°N, 000.186452°E  00.435%, 000.540% of Random\n    test 176 pygeodesy.ellipsoidalVincenty: 40.945458°N, 034.537613°E, 58.224252°S, 061.713015°E  d 26768.7 meter  Spherical\n    test 177 pygeodesy.ellipsoidalVincenty: 41.186078°N, 034.518810°E, 58.347421°S, 061.621933°E  d 1.06295e-05 meter  EquidistantExact\n    test 178 pygeodesy.ellipsoidalVincenty: 40.924263°N, 034.481009°E, 58.252605°S, 061.344166°E  d 29248.9 meter  Equidistant\n    test 179 pygeodesy.ellipsoidalVincenty: 00.261815°N, 000.037800°E  00.636%, 000.110% of Random\n    test 180 pygeodesy.ellipsoidalVincenty: 40.897988°N, 039.011844°E, 40.464581°N, 028.238987°E  d 379091 meter  Spherical\n    test 181 pygeodesy.ellipsoidalVincenty: 41.186078°N, 034.518810°E, 41.110091°N, 032.648742°E  d 0.000119755 meter  EquidistantExact\n    test 182 pygeodesy.ellipsoidalVincenty: 40.839819°N, 039.393167°E, 40.383760°N, 027.900519°E  d 411769 meter  Equidistant\n    test 183 pygeodesy.ellipsoidalVincenty: 00.346258°N, 004.874358°W  00.841%, 014.121% of Random\n    test 184 pygeodesy.ellipsoidalVincenty: 40.870493°N, 034.662375°E, 20.549400°S, 050.731096°W  d 37068.5 meter  Spherical\n    test 185 pygeodesy.ellipsoidalVincenty: 41.186078°N, 034.518810°E, 20.738461°S, 050.709252°W  d 2.02846e-05 meter  EquidistantExact\n    test 186 pygeodesy.ellipsoidalVincenty: 40.818186°N, 034.634875°E, 20.527794°S, 050.866478°W  d 42006.6 meter  Equidistant\n    test 187 pygeodesy.ellipsoidalVincenty: 00.367892°N, 000.116065°W  00.893%, 000.336% of Random\n    test 188 pygeodesy.ellipsoidalVincenty: 41.093896°N, 034.232689°E, 37.091356°N, 041.500904°E  d 26112.3 meter  Spherical\n    test 189 pygeodesy.ellipsoidalVincenty: 41.186078°N, 034.518810°E, 37.299306°N, 041.502155°E  d 3.95827e-06 meter  EquidistantExact\n    test 190 pygeodesy.ellipsoidalVincenty: 41.073515°N, 034.180923°E, 37.078362°N, 041.498623°E  d 31004.2 meter  Equidistant\n    test 191 pygeodesy.ellipsoidalVincenty: 00.112563°N, 000.337887°E  00.273%, 000.979% of Random\n    test 192 pygeodesy.ellipsoidalVincenty: 40.781100°N, 034.669980°E, 52.089480°N, 061.225269°W  d 46738.9 meter  Spherical\n    test 193 pygeodesy.ellipsoidalVincenty: 41.186078°N, 034.518810°E, 52.535730°N, 060.874484°W  d 3.27216e-05 meter  EquidistantExact\n    test 194 pygeodesy.ellipsoidalVincenty: 40.727656°N, 034.642283°E, 51.911337°N, 061.190728°W  d 51959.6 meter  Equidistant\n    test 195 pygeodesy.ellipsoidalVincenty: 00.458422°N, 000.123473°W  01.113%, 000.358% of Random\n    test 196 pygeodesy.ellipsoidalVincenty: 41.264357°N, 034.318737°E, 33.708712°N, 039.965866°E  d 18894.5 meter  Spherical\n    test 197 pygeodesy.ellipsoidalVincenty: 41.186078°N, 034.518810°E, 33.842045°N, 039.937641°E  d 1.60302e-05 meter  EquidistantExact\n    test 198 pygeodesy.ellipsoidalVincenty: 41.296883°N, 034.225283°E, 33.729060°N, 039.967302°E  d 27511.2 meter  Equidistant\n    test 199 pygeodesy.ellipsoidalVincenty: 00.110805°S, 000.293526°E  00.269%, 000.850% of Random\n    test 200 pygeodesy.ellipsoidalVincenty: 40.981210°N, 034.381310°E, 21.581340°S, 084.205539°E  d 25517.2 meter  Spherical\n    test 201 pygeodesy.ellipsoidalVincenty: 41.186078°N, 034.518810°E, 21.747177°S, 084.134687°E  d 6.24179e-06 meter  EquidistantExact\n    test 202 pygeodesy.ellipsoidalVincenty: 40.944802°N, 034.323160°E, 21.498714°S, 084.299938°E  d 31438.7 meter  Equidistant\n    test 203 pygeodesy.ellipsoidalVincenty: 00.241275°N, 000.195650°E  00.586%, 000.567% of Random\n    test 204 pygeodesy.ellipsoidalVincenty: 41.004915°N, 034.623936°E, 06.517706°N, 020.398169°E  d 21972.4 meter  Spherical\n    test 205 pygeodesy.ellipsoidalVincenty: 41.186078°N, 034.518810°E, 06.309051°N, 020.241933°E  d 5.18488e-05 meter  EquidistantExact\n    test 206 pygeodesy.ellipsoidalVincenty: 41.055640°N, 034.588070°E, 06.583593°N, 020.579717°E  d 15610.1 meter  Equidistant\n    test 207 pygeodesy.ellipsoidalVincenty: 00.130438°N, 000.069260°W  00.317%, 000.201% of Random\n    test 208 pygeodesy.ellipsoidalVincenty: 00.458422°N, 004.874358°E  01.113%, 014.121% of Random, max\n\n    test 209 Equidistant(10, 80): 1.37704, 0.24656\n    test 210 Equidistant(10, 80): 10.0, 80.0\n    test 211 Gnomonic(10, 80): 5.67128, 1.01543\n    test 212 Gnomonic(10, 80): 10.0, 80.0\n    test 213 LambertEqualArea(10, 80): 1.26747, 0.22694\n    test 214 LambertEqualArea(10, 80): 10.0, 80.0\n    test 215 Orthographic(10, 80): 0.96985, 0.17365\n    test 216 Orthographic(10, 80): 10.0, 80.0\n    test 217 Stereographic(10, 80): 1.65643, 0.29658\n    test 218 Stereographic(10, 80): 10.0, 80.0\n    test 219 Equidistant(20, 20): 0.33454, 0.35601\n    test 220 Equidistant(20, 20): 20.0, 20.0\n    test 221 Gnomonic(20, 20): 0.36397, 0.38733\n    test 222 Gnomonic(20, 20): 20.0, 20.0\n    test 223 LambertEqualArea(20, 20): 0.33123, 0.35248\n    test 224 LambertEqualArea(20, 20): 20.0, 20.0\n    test 225 Orthographic(20, 20): 0.32139, 0.34202\n    test 226 Orthographic(20, 20): 20.0, 20.0\n    test 227 Stereographic(20, 20): 0.34136, 0.36327\n    test 228 Stereographic(20, 20): 20.0, 20.0\n    test 229 Equidistant(40, 40): 0.57386, 0.74912\n    test 230 Equidistant(40, 40): 40.0, 40.0\n    test 231 Gnomonic(40, 40): 0.8391, 1.09537\n    test 232 Gnomonic(40, 40): 40.0, 40.0\n    test 233 LambertEqualArea(40, 40): 0.55281, 0.72164\n    test 234 LambertEqualArea(40, 40): 40.0, 40.0\n    test 235 Orthographic(40, 40): 0.4924, 0.64279\n    test 236 Orthographic(40, 40): 40.0, 40.0\n    test 237 Stereographic(40, 40): 0.62062, 0.81016\n    test 238 Stereographic(40, 40): 40.0, 40.0\n    test 239 Equidistant(60, 60): 0.58948, 1.17896\n    test 240 Equidistant(60, 60): 60.0, 60.0\n    test 241 Gnomonic(60, 60): 1.73205, 3.4641\n    test 242 Gnomonic(60, 60): 60.0, 60.0\n    test 243 LambertEqualArea(60, 60): 0.54772, 1.09545\n    test 244 LambertEqualArea(60, 60): 60.0, 60.0\n    test 245 Orthographic(60, 60): 0.43301, 0.86603\n    test 246 Orthographic(60, 60): 60.0, 60.0\n    test 247 Stereographic(60, 60): 0.69282, 1.38564\n    test 248 Stereographic(60, 60): 60.0, 60.0\n    test 249 Equidistant(70, 80): 0.50997, 1.42273\n    test 250 Equidistant(70, 80): 70.0, 80.0\n    test 251 Gnomonic(70, 80): 5.67128, 15.82209\n    test 252 Gnomonic(70, 80): 70.0, 80.0\n    test 253 LambertEqualArea(70, 80): 0.4628, 1.29114\n    test 254 LambertEqualArea(70, 80): 70.0, 80.0\n    test 255 Orthographic(70, 80): 0.33682, 0.93969\n    test 256 Orthographic(70, 80): 70.0, 80.0\n    test 257 Stereographic(70, 80): 0.63588, 1.77402\n    test 258 Stereographic(70, 80): 70.0, 80.0\n    test 259 Equidistant(80, 80): 0.26358, 1.51792\n    test 260 Equidistant(80, 80): 80.0, 80.0\n    test 261 Gnomonic(80, 80): 5.67128, 32.65961\n    test 262 Gnomonic(80, 80): 80.0, 80.0\n    test 263 LambertEqualArea(80, 80): 0.23828, 1.37219\n    test 264 LambertEqualArea(80, 80): 80.0, 80.0\n    test 265 Orthographic(80, 80): 0.17101, 0.98481\n    test 266 Orthographic(80, 80): 80.0, 80.0\n    test 267 Stereographic(80, 80): 0.33201, 1.91196\n    test 268 Stereographic(80, 80): 80.0, 80.0\n    test 269 Equidistant(80, 10): 0.04281, 1.39829\n    test 270 Equidistant(80, 10): 80.0, 10.0\n    test 271 Gnomonic(80, 10): 0.17633, 5.75877\n    test 272 Gnomonic(80, 10): 80.0, 10.0\n    test 273 LambertEqualArea(80, 10): 0.03941, 1.28702\n    test 274 LambertEqualArea(80, 10): 80.0, 10.0\n    test 275 Orthographic(80, 10): 0.03015, 0.98481\n    test 276 Orthographic(80, 10): 80.0, 10.0\n    test 277 Stereographic(80, 10): 0.0515, 1.68198\n    test 278 Stereographic(80, 10): 80.0, 10.0\n\n    test 279 function: equidistant\n    test 280 equatoradius: 1.0\n    test 281 flattening: 0.0\n    test 282 iteration: None\n    test 283 latlon0: (0.0, 0.0)\n    test 284 latlon0: (1.0, 2.0)\n    test 285 name: coverage\n    test 286 radius: 1.0\n\n    test 287 function: gnomonic\n    test 288 equatoradius: 1.0\n    test 289 flattening: 0.0\n    test 290 iteration: None\n    test 291 latlon0: (0.0, 0.0)\n    test 292 latlon0: (1.0, 2.0)\n    test 293 name: coverage\n    test 294 radius: 1.0\n    test 295 NANing: (NAN, NAN, 0.0, 0.0, 0.0, 1.0, None)\n\n    12 of 295 testAzimuthal.py tests (4.1%) FAILED, incl. 6 KNOWN plus 6 DeprecationWarnings (pygeodesy 26.3.26 PyPy 7.3.17 Python 3.10.14 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 5.842 sec\nrunning /opt/local/bin/p....y3.10 -W default ~/PyGeodesy/test/testBasics.py\n# lazily imported pygeodesy.basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.DeprecationWarnings from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isint from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isLazy from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.issubclassof from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.iterNumpy2over from .iters by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.LazyImportError from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.karney by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.NN from .interns by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.normDMS from .dms by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.pairs from .streprs by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.printf from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.property_RO from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.typename from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.EPS from .constants by testBasics.py line 11\n# lazily imported pygeodesy.EPS0 from .constants by testBasics.py line 11\n# lazily imported pygeodesy.INF from .constants by testBasics.py line 11\n# lazily imported pygeodesy.INT0 from .constants by testBasics.py line 11\n# lazily imported pygeodesy.NAN from .constants by testBasics.py line 11\n# lazily imported pygeodesy.NEG0 from .constants by testBasics.py line 11\n# lazily imported pygeodesy.NINF from .constants by testBasics.py line 11\n# lazily imported pygeodesy.halfs2 from .basics by testBasics.py line 11\n# lazily imported pygeodesy.isclose from .constants by testBasics.py line 11\n# lazily imported pygeodesy.isfinite from .constants by testBasics.py line 11\n# lazily imported pygeodesy.isint0 from .constants by testBasics.py line 11\n# lazily imported pygeodesy.isiterable from .basics by testBasics.py line 11\n# lazily imported pygeodesy.isiterablen from .basics by testBasics.py line 11\n# lazily imported pygeodesy.isneg0 from .constants by testBasics.py line 11\n# lazily imported pygeodesy.isninf from .constants by testBasics.py line 11\n# lazily imported pygeodesy.isscalar from .basics by testBasics.py line 11\n# lazily imported pygeodesy.map1 from .basics by testBasics.py line 11\n# lazily imported pygeodesy.remainder from .constants by testBasics.py line 11\n# lazily imported pygeodesy.splice from .basics by testBasics.py line 11\n\n    testing testBasics.py 24.09.29 (module pygeodesy.basics 26.02.22) isLazy=3\n    test 1 clips: test/t....ics.py\n    test 2 halfs2: ('test/test', 'Basics.py')\n\n    test 3 isfinite(0): True\n    test 4 isint(0): True\n    test 5 isint(0+0.5): False\n    test 6 isninf(0): False\n    test 7 isscalar(0): True\n\n    test 8 isfinite(0.0): True\n    test 9 isint(0.0): True\n    test 10 isint(0.0+0.5): False\n    test 11 isninf(0.0): False\n    test 12 isscalar(0.0): True\n\n    test 13 isfinite(1): True\n    test 14 isint(1): True\n    test 15 isint(1+0.5): False\n    test 16 isninf(1): False\n    test 17 isscalar(1): True\n\n    test 18 isfinite(1.0): True\n    test 19 isint(1.0): True\n    test 20 isint(1.0+0.5): False\n    test 21 isninf(1.0): False\n    test 22 isscalar(1.0): True\n\n    test 23 isfinite(1e+300): True\n    test 24 isint(1e+300): True\n    test 25 isint(1e+300+0.5): True\n    test 26 isninf(1e+300): False\n    test 27 isscalar(1e+300): True\n\n    test 28 isfinite(-1e+300): True\n    test 29 isint(-1e+300): True\n    test 30 isint(-1e+300+0.5): True\n    test 31 isninf(-1e+300): False\n    test 32 isscalar(-1e+300): True\n\n    test 33 isfinite(inf): False\n    test 34 isint(inf): False\n    test 35 isint(inf+0.5): False\n    test 36 isninf(inf): False\n    test 37 isscalar(inf): True\n\n    test 38 isfinite(inf): False\n    test 39 isint(inf): False\n    test 40 isint(inf+0.5): False\n    test 41 isninf(inf): False\n    test 42 isscalar(inf): True\n\n    test 43 isfinite(nan): False\n    test 44 isint(nan): False\n    test 45 isint(nan+0.5): False\n    test 46 isninf(nan): False\n    test 47 isscalar(nan): True\n\n    test 48 isfinite(-0.0): True\n    test 49 isint(-0.0): True\n    test 50 isint(-0.0+0.5): False\n    test 51 isninf(-0.0): False\n    test 52 isscalar(-0.0): True\n\n    test 53 isfinite(-inf): False\n    test 54 isint(-inf): False\n    test 55 isint(-inf+0.5): False\n    test 56 isninf(-inf): True\n    test 57 isscalar(-inf): True\n\n    test 58 isfinite(complex): True\n    test 59 isfinite(complex): False\n\n    test 60 isint0(INT0): True\n    test 61 isint0(False): False\n    test 62 isint0(None): False\n    test 63 isint0(0): True\n    test 64 isint0(0.): False\n    test 65 isint0(0.0): True\n\n    test 66 isneg0(NEG0): True\n    test 67 isneg0(0.0): False\n    test 68 isneg0(INF): False\n    test 69 isneg0(NAN): False\n\n    test 70 type(C.r_o): property_RO\n    test 71 type(c.r_o): <class 'bool'>\n    test 72 c.r_o: True\n    test 73 c.r_o = False: immutable property_RO: C.r_o = False\n    test 74 c.a, c.b: (None, None)\n    test 75 d.a, d.b: (True, False)\n    test 76 c.a, c.b: (None, None)\n    test 77 splice: ((0, 2, 4, 6, 8), (1, 3, 5, 7, 9))\n    test 78 splice: ((0, 3, 6, 9), (1, 4, 7), (2, 5, 8))\n    test 79 splice: ((0, 3, 6, 9), (1, 4, 7, -1), (2, 5, 8, -1))\n    test 80 splice: ((0, 5, 10), (1, 6, 11), (2, 7), (3, 8), (4, 9))\n\n    test 81 remainder(181, 360): -179.0\n    test 82 remainder(181, -360): -179.0\n    test 83 remainder(181, inf): 181.0\n    test 84 remainder(181, nan): nan\n    test 85 remainder(181, -inf): 181.0\n    test 86 remainder(-181, 360): 179.0\n    test 87 remainder(-181, -360): 179.0\n    test 88 remainder(-181, inf): -181.0\n    test 89 remainder(-181, nan): nan\n    test 90 remainder(-181, -inf): -181.0\n    test 91 remainder(179, 360): 179.0\n    test 92 remainder(179, -360): 179.0\n    test 93 remainder(179, inf): 179.0\n    test 94 remainder(179, nan): nan\n    test 95 remainder(179, -inf): 179.0\n    test 96 remainder(-179, 360): -179.0\n    test 97 remainder(-179, -360): -179.0\n    test 98 remainder(-179, inf): -179.0\n    test 99 remainder(-179, nan): nan\n    test 100 remainder(-179, -inf): -179.0\n    test 101 remainder(inf, 360): math domain error\n    test 102 remainder(inf, -360): math domain error\n    test 103 remainder(inf, inf): math domain error\n    test 104 remainder(inf, nan): nan\n    test 105 remainder(inf, -inf): math domain error\n    test 106 remainder(nan, 360): nan\n    test 107 remainder(nan, -360): nan\n    test 108 remainder(nan, inf): nan\n    test 109 remainder(nan, nan): nan\n    test 110 remainder(nan, -inf): nan\n    test 111 remainder(-inf, 360): math domain error\n    test 112 remainder(-inf, -360): math domain error\n    test 113 remainder(-inf, inf): math domain error\n    test 114 remainder(-inf, nan): nan\n    test 115 remainder(-inf, -inf): math domain error\n    test 116 isclose: True\n    test 117 isclose: False\n\n    test 118 isiterable(dict): True\n    test 119 isiterablen(dict): True\n    test 120 isiterable(map): True\n    test 121 isiterablen(map): False\n    test 122 isiterable(list): True\n    test 123 isiterablen(list): True\n    test 124 isiterable(range): True\n    test 125 isiterablen(range): True\n    test 126 isiterable(tuple): True\n    test 127 isiterablen(tuple): True\n    test 128 isiterable(set): True\n    test 129 isiterablen(set): False\n\n    all 129 testBasics.py tests passed (pygeodesy 26.3.26 PyPy 7.3.17 Python 3.10.14 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 1.884 ms\nrunning /opt/local/bin/p....y3.10 -W default ~/PyGeodesy/test/testBooleans.py\n./test/testBooleans.py:50: DeprecationWarning: function L{areaOf<pygeodesy.ellipsoidalVincenty.areaOf>} has been DEPRECATED, use function L{ellipsoidalExact.areaOf} or L{ellipsoidalKarney.areaOf}.\n  self.test(areaOf.__name__, areaOf(b) == areaOf(t), True)\n./pygeodesy/ellipsoidalKarney.py:139: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return fabs(_polygon(datum.ellipsoid.geodesic, points, True, False, wrap, polar))\n./test/testBooleans.py:53: DeprecationWarning: function L{perimeterOf<pygeodesy.ellipsoidalVincenty.perimeterOf>} has been DEPRECATED, use function L{ellipsoidalExact.perimeterOf} or L{ellipsoidalKarney.perimeterOf}.\n  self.test(periOf.__name__, periOf(b, closed=True) == periOf(t, closed=True), True)\n./pygeodesy/ellipsoidalKarney.py:347: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return _polygon(datum.ellipsoid.geodesic, points, closed, True, wrap, False)\n./test/testBooleans.py:82: DeprecationWarning: function L{areaOf<pygeodesy.ellipsoidalVincenty.areaOf>} has been DEPRECATED, use function L{ellipsoidalExact.areaOf} or L{ellipsoidalKarney.areaOf}.\n  self.test(areaOf.__name__, areaOf(b) == areaOf(t), True)\n./test/testBooleans.py:85: DeprecationWarning: function L{perimeterOf<pygeodesy.ellipsoidalVincenty.perimeterOf>} has been DEPRECATED, use function L{ellipsoidalExact.perimeterOf} or L{ellipsoidalKarney.perimeterOf}.\n  self.test(periOf.__name__, periOf(b, closed=True) == periOf(t, closed=True), True)\n# lazily imported pygeodesy.basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.DeprecationWarnings from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isint from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isLazy from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.issubclassof from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.iterNumpy2over from .iters by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.LazyImportError from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.karney by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.NN from .interns by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.normDMS from .dms by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.pairs from .streprs by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.printf from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.property_RO from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.typename from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.BooleanFHP from .booleans by testBooleans.py line 11\n# lazily imported pygeodesy.BooleanGH from .booleans by testBooleans.py line 11\n# lazily imported pygeodesy.isenclosedBy from .points by testBooleans.py line 11\n# lazily imported pygeodesy.ellipsoidalExact by testBooleans.py line 95\n# lazily imported pygeodesy.ellipsoidalVincenty by testBooleans.py line 95\n# lazily imported pygeodesy.sphericalNvector by testBooleans.py line 95\n# lazily imported pygeodesy.sphericalTrigonometry by testBooleans.py line 95\n\n    testing testBooleans.py 23.03.31 isLazy=3\n\n    testing(pygeodesy.ellipsoidalExact, 25.08.28)\n    test 1 and: BooleanGH[4]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=7.0, lon=5.0, height=2.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=3.0, lon=5.0, height=2.0))\n    test 2 or: BooleanGH[6]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=0.0, lon=0.0, height=1.0), (lat=0.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=10.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0))\n    test 3 minus: BooleanGH[5]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=0.0, lon=0.0, height=1.0), (lat=0.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=3.0, lon=5.0, height=2.0))\n    test 4 rev_d: BooleanGH[5]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=10.0, lon=0.0, height=1.0), (lat=10.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=7.0, lon=5.0, height=2.0))\n    test 5 iand: BooleanGH[4]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=7.0, lon=5.0, height=2.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=3.0, lon=5.0, height=2.0))\n    test 6 ior: BooleanGH[6]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=0.0, lon=0.0, height=1.0), (lat=0.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=10.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0))\n    test 7 sum: BooleanGH[2][6]((lat=0.0, lon=0.0, height=1.0), (lat=7.0, lon=5.0, height=2.0), (lat=0.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0, clipid=1), (lat=3.0, lon=5.0, height=2.0, clipid=1), (lat=10.0, lon=10.0, height=3.0, clipid=1))\n\n    test 8 GH ==: True\n    test 9 equalTo: True\n# lazily imported pygeodesy.geodesicx by ellipsoids.py line 1082\n# lazily imported pygeodesy.elliptic by gx.py line 421\n    test 10 areaOf: True\n    test 11 enclosed: True\n    test 12 enclosed: False\n    test 13 perimeterOf: True\n\n    test 14 toLatLon[0:3]: (LatLon(00°00′00.0″N, 000°00′00.0″E, +1.00m), LatLon(07°00′00.0″N, 005°00′00.0″E, +2.00m), LatLon(00°00′00.0″N, 010°00′00.0″E, +3.00m))\n    test 15 toLatLon[-3:]: ((lat=10.0, lon=0.0, height=1.0, clipid=1), (lat=3.0, lon=5.0, height=2.0, clipid=1), (lat=10.0, lon=10.0, height=3.0, clipid=1))\n\n    test 16 and: BooleanFHP[4]((lat=7.0, lon=5.0, height=2.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=3.0, lon=5.0, height=2.0), (lat=5.0, lon=3.5714286, height=1.7142857))\n    test 17 or: BooleanFHP[6]((lat=0.0, lon=0.0, height=1.0), (lat=0.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=10.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0), (lat=5.0, lon=3.5714286, height=1.7142857))\n    test 18 iand: BooleanFHP[4]((lat=7.0, lon=5.0, height=2.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=3.0, lon=5.0, height=2.0), (lat=5.0, lon=3.5714286, height=1.7142857))\n    test 19 ior: BooleanFHP[6]((lat=0.0, lon=0.0, height=1.0), (lat=0.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=10.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0), (lat=5.0, lon=3.5714286, height=1.7142857))\n    test 20 sum: BooleanFHP[2][6]((lat=0.0, lon=0.0, height=1.0), (lat=7.0, lon=5.0, height=2.0), (lat=0.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0, clipid=1), (lat=3.0, lon=5.0, height=2.0, clipid=1), (lat=10.0, lon=10.0, height=3.0, clipid=1))\n\n    test 21 FHP ==: True\n    test 22 equalTo: True\n    test 23 areaOf: True\n    test 24 enclosed: True\n    test 25 enclosed: False\n    test 26 perimeterOf: True\n\n    test 27 toLatLon[0:3]: (LatLon(00°00′00.0″N, 000°00′00.0″E, +1.00m), LatLon(07°00′00.0″N, 005°00′00.0″E, +2.00m), LatLon(00°00′00.0″N, 010°00′00.0″E, +3.00m))\n    test 28 toLatLon[-3:]: ((lat=10.0, lon=0.0, height=1.0, clipid=1), (lat=3.0, lon=5.0, height=2.0, clipid=1), (lat=10.0, lon=10.0, height=3.0, clipid=1))\n\n    testing(pygeodesy.ellipsoidalVincenty, 25.05.26)\n    test 29 and: BooleanGH[4]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=7.0, lon=5.0, height=2.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=3.0, lon=5.0, height=2.0))\n    test 30 or: BooleanGH[6]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=0.0, lon=0.0, height=1.0), (lat=0.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=10.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0))\n    test 31 minus: BooleanGH[5]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=0.0, lon=0.0, height=1.0), (lat=0.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=3.0, lon=5.0, height=2.0))\n    test 32 rev_d: BooleanGH[5]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=10.0, lon=0.0, height=1.0), (lat=10.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=7.0, lon=5.0, height=2.0))\n    test 33 iand: BooleanGH[4]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=7.0, lon=5.0, height=2.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=3.0, lon=5.0, height=2.0))\n    test 34 ior: BooleanGH[6]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=0.0, lon=0.0, height=1.0), (lat=0.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=10.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0))\n    test 35 sum: BooleanGH[2][6]((lat=0.0, lon=0.0, height=1.0), (lat=7.0, lon=5.0, height=2.0), (lat=0.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0, clipid=1), (lat=3.0, lon=5.0, height=2.0, clipid=1), (lat=10.0, lon=10.0, height=3.0, clipid=1))\n\n    test 36 GH ==: True\n    test 37 equalTo: True\n# lazily imported pygeodesy.ellipsoidalKarney by ellipsoidalVincenty.py line 383\n# lazily imported pygeodesy.geodesicw by ellipsoids.py line 1074\n    test 38 areaOf: True\n    test 39 enclosed: True\n    test 40 enclosed: False\n    test 41 perimeterOf: True\n\n    test 42 toLatLon[0:3]: (LatLon(00°00′00.0″N, 000°00′00.0″E, +1.00m), LatLon(07°00′00.0″N, 005°00′00.0″E, +2.00m), LatLon(00°00′00.0″N, 010°00′00.0″E, +3.00m))\n    test 43 toLatLon[-3:]: ((lat=10.0, lon=0.0, height=1.0, clipid=1), (lat=3.0, lon=5.0, height=2.0, clipid=1), (lat=10.0, lon=10.0, height=3.0, clipid=1))\n\n    test 44 and: BooleanFHP[4]((lat=7.0, lon=5.0, height=2.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=3.0, lon=5.0, height=2.0), (lat=5.0, lon=3.5714286, height=1.7142857))\n    test 45 or: BooleanFHP[6]((lat=0.0, lon=0.0, height=1.0), (lat=0.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=10.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0), (lat=5.0, lon=3.5714286, height=1.7142857))\n    test 46 iand: BooleanFHP[4]((lat=7.0, lon=5.0, height=2.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=3.0, lon=5.0, height=2.0), (lat=5.0, lon=3.5714286, height=1.7142857))\n    test 47 ior: BooleanFHP[6]((lat=0.0, lon=0.0, height=1.0), (lat=0.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=10.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0), (lat=5.0, lon=3.5714286, height=1.7142857))\n    test 48 sum: BooleanFHP[2][6]((lat=0.0, lon=0.0, height=1.0), (lat=7.0, lon=5.0, height=2.0), (lat=0.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0, clipid=1), (lat=3.0, lon=5.0, height=2.0, clipid=1), (lat=10.0, lon=10.0, height=3.0, clipid=1))\n\n    test 49 FHP ==: True\n    test 50 equalTo: True\n    test 51 areaOf: True\n    test 52 enclosed: True\n    test 53 enclosed: False\n    test 54 perimeterOf: True\n\n    test 55 toLatLon[0:3]: (LatLon(00°00′00.0″N, 000°00′00.0″E, +1.00m), LatLon(07°00′00.0″N, 005°00′00.0″E, +2.00m), LatLon(00°00′00.0″N, 010°00′00.0″E, +3.00m))\n    test 56 toLatLon[-3:]: ((lat=10.0, lon=0.0, height=1.0, clipid=1), (lat=3.0, lon=5.0, height=2.0, clipid=1), (lat=10.0, lon=10.0, height=3.0, clipid=1))\n\n    testing(pygeodesy.sphericalNvector, 25.05.27)\n    test 57 and: BooleanGH[4]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=7.0, lon=5.0, height=2.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=3.0, lon=5.0, height=2.0))\n    test 58 or: BooleanGH[6]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=0.0, lon=0.0, height=1.0), (lat=0.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=10.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0))\n    test 59 minus: BooleanGH[5]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=0.0, lon=0.0, height=1.0), (lat=0.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=3.0, lon=5.0, height=2.0))\n    test 60 rev_d: BooleanGH[5]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=10.0, lon=0.0, height=1.0), (lat=10.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=7.0, lon=5.0, height=2.0))\n    test 61 iand: BooleanGH[4]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=7.0, lon=5.0, height=2.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=3.0, lon=5.0, height=2.0))\n    test 62 ior: BooleanGH[6]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=0.0, lon=0.0, height=1.0), (lat=0.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=10.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0))\n    test 63 sum: BooleanGH[2][6]((lat=0.0, lon=0.0, height=1.0), (lat=7.0, lon=5.0, height=2.0), (lat=0.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0, clipid=1), (lat=3.0, lon=5.0, height=2.0, clipid=1), (lat=10.0, lon=10.0, height=3.0, clipid=1))\n\n    test 64 GH ==: True\n    test 65 equalTo: True\n# imported pygeodesy.formy into latlonBase.py line 756\n    test 66 areaOf: True\n    test 67 enclosed: True\n    test 68 enclosed: False\n    test 69 perimeterOf: True\n\n    test 70 toLatLon[0:3]: (LatLon(00°00′00.0″N, 000°00′00.0″E, +1.00m), LatLon(07°00′00.0″N, 005°00′00.0″E, +2.00m), LatLon(00°00′00.0″N, 010°00′00.0″E, +3.00m))\n    test 71 toLatLon[-3:]: ((lat=10.0, lon=0.0, height=1.0, clipid=1), (lat=3.0, lon=5.0, height=2.0, clipid=1), (lat=10.0, lon=10.0, height=3.0, clipid=1))\n\n    test 72 and: BooleanFHP[4]((lat=7.0, lon=5.0, height=2.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=3.0, lon=5.0, height=2.0), (lat=5.0, lon=3.5714286, height=1.7142857))\n    test 73 or: BooleanFHP[6]((lat=0.0, lon=0.0, height=1.0), (lat=0.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=10.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0), (lat=5.0, lon=3.5714286, height=1.7142857))\n    test 74 iand: BooleanFHP[4]((lat=7.0, lon=5.0, height=2.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=3.0, lon=5.0, height=2.0), (lat=5.0, lon=3.5714286, height=1.7142857))\n    test 75 ior: BooleanFHP[6]((lat=0.0, lon=0.0, height=1.0), (lat=0.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=10.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0), (lat=5.0, lon=3.5714286, height=1.7142857))\n    test 76 sum: BooleanFHP[2][6]((lat=0.0, lon=0.0, height=1.0), (lat=7.0, lon=5.0, height=2.0), (lat=0.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0, clipid=1), (lat=3.0, lon=5.0, height=2.0, clipid=1), (lat=10.0, lon=10.0, height=3.0, clipid=1))\n\n    test 77 FHP ==: True\n    test 78 equalTo: True\n    test 79 areaOf: True\n    test 80 enclosed: True\n    test 81 enclosed: False\n    test 82 perimeterOf: True\n\n    test 83 toLatLon[0:3]: (LatLon(00°00′00.0″N, 000°00′00.0″E, +1.00m), LatLon(07°00′00.0″N, 005°00′00.0″E, +2.00m), LatLon(00°00′00.0″N, 010°00′00.0″E, +3.00m))\n    test 84 toLatLon[-3:]: ((lat=10.0, lon=0.0, height=1.0, clipid=1), (lat=3.0, lon=5.0, height=2.0, clipid=1), (lat=10.0, lon=10.0, height=3.0, clipid=1))\n\n    testing(pygeodesy.sphericalTrigonometry, 25.08.31)\n    test 85 and: BooleanGH[4]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=7.0, lon=5.0, height=2.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=3.0, lon=5.0, height=2.0))\n    test 86 or: BooleanGH[6]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=0.0, lon=0.0, height=1.0), (lat=0.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=10.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0))\n    test 87 minus: BooleanGH[5]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=0.0, lon=0.0, height=1.0), (lat=0.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=3.0, lon=5.0, height=2.0))\n    test 88 rev_d: BooleanGH[5]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=10.0, lon=0.0, height=1.0), (lat=10.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=7.0, lon=5.0, height=2.0))\n    test 89 iand: BooleanGH[4]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=7.0, lon=5.0, height=2.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=3.0, lon=5.0, height=2.0))\n    test 90 ior: BooleanGH[6]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=0.0, lon=0.0, height=1.0), (lat=0.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=10.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0))\n    test 91 sum: BooleanGH[2][6]((lat=0.0, lon=0.0, height=1.0), (lat=7.0, lon=5.0, height=2.0), (lat=0.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0, clipid=1), (lat=3.0, lon=5.0, height=2.0, clipid=1), (lat=10.0, lon=10.0, height=3.0, clipid=1))\n\n    test 92 GH ==: True\n    test 93 equalTo: True\n    test 94 areaOf: True\n    test 95 enclosed: True\n    test 96 enclosed: False\n    test 97 perimeterOf: True\n\n    test 98 toLatLon[0:3]: (LatLon(00°00′00.0″N, 000°00′00.0″E, +1.00m), LatLon(07°00′00.0″N, 005°00′00.0″E, +2.00m), LatLon(00°00′00.0″N, 010°00′00.0″E, +3.00m))\n    test 99 toLatLon[-3:]: ((lat=10.0, lon=0.0, height=1.0, clipid=1), (lat=3.0, lon=5.0, height=2.0, clipid=1), (lat=10.0, lon=10.0, height=3.0, clipid=1))\n\n    test 100 and: BooleanFHP[4]((lat=7.0, lon=5.0, height=2.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=3.0, lon=5.0, height=2.0), (lat=5.0, lon=3.5714286, height=1.7142857))\n    test 101 or: BooleanFHP[6]((lat=0.0, lon=0.0, height=1.0), (lat=0.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=10.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0), (lat=5.0, lon=3.5714286, height=1.7142857))\n    test 102 iand: BooleanFHP[4]((lat=7.0, lon=5.0, height=2.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=3.0, lon=5.0, height=2.0), (lat=5.0, lon=3.5714286, height=1.7142857))\n    test 103 ior: BooleanFHP[6]((lat=0.0, lon=0.0, height=1.0), (lat=0.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=10.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0), (lat=5.0, lon=3.5714286, height=1.7142857))\n    test 104 sum: BooleanFHP[2][6]((lat=0.0, lon=0.0, height=1.0), (lat=7.0, lon=5.0, height=2.0), (lat=0.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0, clipid=1), (lat=3.0, lon=5.0, height=2.0, clipid=1), (lat=10.0, lon=10.0, height=3.0, clipid=1))\n\n    test 105 FHP ==: True\n    test 106 equalTo: True\n    test 107 areaOf: True\n    test 108 enclosed: True\n    test 109 enclosed: False\n    test 110 perimeterOf: True\n\n    test 111 toLatLon[0:3]: (LatLon(00°00′00.0″N, 000°00′00.0″E, +1.00m), LatLon(07°00′00.0″N, 005°00′00.0″E, +2.00m), LatLon(00°00′00.0″N, 010°00′00.0″E, +3.00m))\n    test 112 toLatLon[-3:]: ((lat=10.0, lon=0.0, height=1.0, clipid=1), (lat=3.0, lon=5.0, height=2.0, clipid=1), (lat=10.0, lon=10.0, height=3.0, clipid=1))\n\n    16 of 112 testBooleans.py tests (14.3%) FAILED, incl. 16 DeprecationWarnings (pygeodesy 26.3.26 PyPy 7.3.17 Python 3.10.14 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 1.027 sec\nrunning /opt/local/bin/p....y3.10 -W default ~/PyGeodesy/test/testCartesian.py\n./test/testCartesian.py:44: DeprecationWarning: method L{convertDatum<pygeodesy.ellipsoidalNvector.Cartesian.convertDatum>} has been DEPRECATED, use method L{toDatum}.\n  d = c.convertDatum(datum2)\n./test/testCartesian.py:45: DeprecationWarning: method L{convertDatum<pygeodesy.ellipsoidalNvector.Cartesian.convertDatum>} has been DEPRECATED, use method L{toDatum}.\n  t = d.convertDatum(datum)\n<string>:1: DeprecationWarning: method L{__matmul__<pygeodesy.trf.RefFrame.__matmul__>} has been DEPRECATED on 2024.02.16, use method C{B{point}.toRefFrame}.\n./test/testCartesian.py:44: DeprecationWarning: method L{convertDatum<pygeodesy.ellipsoidalVincenty.Cartesian.convertDatum>} has been DEPRECATED, use method L{toDatum}.\n  d = c.convertDatum(datum2)\n./test/testCartesian.py:45: DeprecationWarning: method L{convertDatum<pygeodesy.ellipsoidalVincenty.Cartesian.convertDatum>} has been DEPRECATED, use method L{toDatum}.\n  t = d.convertDatum(datum)\n# lazily imported pygeodesy.basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.DeprecationWarnings from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isint from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isLazy from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.issubclassof from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.iterNumpy2over from .iters by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.LazyImportError from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.karney by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.NN from .interns by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.normDMS from .dms by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.pairs from .streprs by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.printf from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.property_RO from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.typename from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.Aer from .ltpTuples by testCartesian.py line 11\n# lazily imported pygeodesy.classname from .named by testCartesian.py line 11\n# lazily imported pygeodesy.Datums from .datums by testCartesian.py line 11\n# lazily imported pygeodesy.degrees from .utily by testCartesian.py line 11\n# lazily imported pygeodesy.Enu from .ltpTuples by testCartesian.py line 11\n# lazily imported pygeodesy.fstr from .streprs by testCartesian.py line 11\n# lazily imported pygeodesy.Local9Tuple from .ltpTuples by testCartesian.py line 11\n# lazily imported pygeodesy.Ltp from .ltp by testCartesian.py line 11\n# lazily imported pygeodesy.modulename from .named by testCartesian.py line 11\n# lazily imported pygeodesy.Ned from .ltpTuples by testCartesian.py line 11\n# lazily imported pygeodesy.rtp2xyz from .cartesianBase by testCartesian.py line 11\n# lazily imported pygeodesy.xyz2rtp from .cartesianBase by testCartesian.py line 11\n# lazily imported pygeodesy.RefFrames from .trf by testCartesian.py line 11\n# lazily imported pygeodesy.XyzLocal from .ltpTuples by testCartesian.py line 11\n# lazily imported pygeodesy.Transforms from .datums by testCartesian.py line 13\n# lazily imported pygeodesy.ellipsoidalExact by testCartesian.py line 209\n# lazily imported pygeodesy.ellipsoidalNvector by testCartesian.py line 209\n# lazily imported pygeodesy.ellipsoidalVincenty by testCartesian.py line 209\n# lazily imported pygeodesy.sphericalNvector by testCartesian.py line 209\n# lazily imported pygeodesy.sphericalTrigonometry by testCartesian.py line 209\n\n    testing testCartesian.py 25.05.12 isLazy=3\n\n    testCartesian(pygeodesy.sphericalNvector, 25.05.27)\n    test 1 Cartesian0: [3980581, 97, 4966825]\n    test 2 Cartesian4: [3980581.0, 97.0, 4966825.0]\n    test 3 isEllipsoidal: False\n    test 4 isSpherical: True\n    test 5 copy(<class 'type'>): (<class 'pygeodesy.sphericalNvector.Cartesian'>, True)\n    test 6 Cartesian.copy(): (<class 'pygeodesy.sphericalNvector.Cartesian'>, True)\n    test 7 height: -5918.380258\n    test 8 height4: (3984282.2, 97.1, 4971443.2, -5918.4)\n    test 9 height4: [3984282.2, 97.1, 4971443.2]\n    test 10 height3: (3980581.0, 97.0, 4966825.0)\n    test 11 Nvector: Nvector(0.62538, 0.00002, 0.78032, -5918.38)\n    test 12 Nvector3: (0.625, 0.0, 0.78, -5918.38)\n    test 13 Nvector6: (0.625377, 0.000015, 0.780323, -5918.38)\n    test 14 LatLon: 50.0379°N, 008.5622°E\n    test 15 LatLon: 51.47°N, 000.4543°E\n    test 16 LatLon: 40.633365°N, 073.783328°W\n    test 17 LatLon: 33.95°N, 118.4°W\n    test 18 LatLon: 41.32°S, 174.81°E, +0.00m  FAILED, KNOWN, expected 41.32°S, 174.81°E\n    test 19 LatLon: 40.96°N, 005.5°E\n    test 20 LatLon: 40.1°N, 116.6°E\n    test 21 LatLon: 37.6°N, 122.4°W, -0.00m  FAILED, KNOWN, expected 37.6°N, 122.4°W\n    test 22 copy: True\n    test 23 __eq__: True\n    test 24 __ne__: False\n    test 25 Cartesian: <class 'pygeodesy.sphericalNvector.Cartesian'>\n    test 26 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 27 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 28 latlonheightdatum: <class 'pygeodesy.namedTuples.LatLon4Tuple'>\n    test 29 height4: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 30 isequalTo: <class 'bool'>\n    test 31 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 32 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 33 philamheightdatum: <class 'pygeodesy.namedTuples.PhiLam4Tuple'>\n    test 34 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n# imported pygeodesy.ltpTuples into ecefLocals.py line 80\n# imported pygeodesy.ltp into ecefLocals.py line 63\n# imported pygeodesy.ltp into ltpTuples.py line 1585\n    test 35 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 36 toEcef: <class 'pygeodesy.ecef.Ecef9Tuple'>\n    test 37 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 38 toLatLon: <class 'pygeodesy.sphericalNvector.LatLon'>\n    test 39 toLLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 40 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 41 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 42 toNvector: <class 'pygeodesy.sphericalNvector.Nvector'>\n    test 43 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 44 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 45 xyz3: <class 'tuple'>\n    test 46 Cartesian: <class 'pygeodesy.cartesianBase.CartesianBase'>\n    test 47 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 48 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 49 latlonheightdatum: <class 'pygeodesy.namedTuples.LatLon4Tuple'>\n    test 50 height4: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 51 isequalTo: <class 'bool'>\n    test 52 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 53 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 54 philamheightdatum: <class 'pygeodesy.namedTuples.PhiLam4Tuple'>\n    test 55 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 56 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 57 toEcef: <class 'pygeodesy.ecef.Ecef9Tuple'>\n    test 58 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 59 toLatLon: <class 'pygeodesy.ecef.Ecef9Tuple'>\n    test 60 toLLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 61 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 62 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 63 toNvector: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 64 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 65 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 66 xyz3: <class 'tuple'>\n    test 67 sphericalNvector.Cartesian.intersections2: 37.673442°N, 090.234036°W\n    test 68 sphericalNvector.Cartesian.intersections2: 36.109987°N, 090.95367°W\n    test 69 sphericalNvector.Cartesian.intersections2: [-0.032779, -0.784769, 0.61892]\n    test 70 sphericalNvector.Cartesian.intersections2: 38.237342°N, 092.391779°W\n    test 71 sphericalNvector.Cartesian.intersections2: [0.025768, -0.798347, 0.601646]\n    test 72 sphericalNvector.Cartesian.intersections2: 36.987868°N, 088.151309°W\n# lazily imported pygeodesy.trilaterate3d2 from .vector3d by testCartesian.py line 149\n# imported pygeodesy.vector2d into vector3d.py line 894\n\n    2 tests skipped (2): numpy in PYGEODESY_XPACKAGES=numpy,scipy: required by vector2d._numpy\n    test 73 vector3d.intersections2: (-0.0035, -0.791926, 0.610589)\n    test 74 vector3d.intersections2: 0.0312613\n    test 75 vector3d.intersections2: (-0.021973, -0.766467, 0.0)\n    test 76 vector3d.intersections2: (0.027459, -0.797488, 0.0)\n\n    test 77 xyz2rtp: 37.417, 36.699, 63.435\n    test 78 xyz2rtp: <class 'pygeodesy.cartesianBase.RadiusThetaPhi3Tuple'>\n    test 79 rtp2xyz: 10.0, 20.0, 30.0\n    test 80 rtp2xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 81 toCartesian: Cartesian(10.0, 20.0, 30.0)\n    test 82 toRtp: Test(r=37.416574, theta=36.699225, phi=63.434949)\n\n    test 83 destinationXyz: Tuple(x=10.175954, y=20.351908, z=32.201182, lat=54.754059, lon=63.434949, height=-6370969.342158, C=2, M=None, datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84))\n    test 84 destinationXyz: Cartesian(10.176, 20.352, 32.201)\n\n    testCartesian(pygeodesy.sphericalTrigonometry, 25.08.31)\n    test 85 Cartesian0: [3980581, 97, 4966825]\n    test 86 Cartesian4: [3980581.0, 97.0, 4966825.0]\n    test 87 isEllipsoidal: False\n    test 88 isSpherical: True\n    test 89 copy(<class 'type'>): (<class 'pygeodesy.sphericalTrigonometry.Cartesian'>, True)\n    test 90 Cartesian.copy(): (<class 'pygeodesy.sphericalTrigonometry.Cartesian'>, True)\n    test 91 height: -5918.380258\n    test 92 height4: (3984282.2, 97.1, 4971443.2, -5918.4)\n    test 93 height4: [3984282.2, 97.1, 4971443.2]\n    test 94 height3: (3980581.0, 97.0, 4966825.0)\n    test 95 Vector4Tuple: 0.625376979, 1.52393751e-05, 0.780322775, -5918.38026\n    test 96 LatLon: 50.0379°N, 008.5622°E\n    test 97 LatLon: 51.47°N, 000.4543°E\n    test 98 LatLon: 40.633365°N, 073.783328°W\n    test 99 LatLon: 33.95°N, 118.4°W\n    test 100 LatLon: 41.32°S, 174.81°E, +0.00m  FAILED, KNOWN, expected 41.32°S, 174.81°E\n    test 101 LatLon: 40.96°N, 005.5°E\n    test 102 LatLon: 40.1°N, 116.6°E\n    test 103 LatLon: 37.6°N, 122.4°W, -0.00m  FAILED, KNOWN, expected 37.6°N, 122.4°W\n    test 104 copy: True\n    test 105 __eq__: True\n    test 106 __ne__: False\n    test 107 Cartesian: <class 'pygeodesy.sphericalTrigonometry.Cartesian'>\n    test 108 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 109 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 110 latlonheightdatum: <class 'pygeodesy.namedTuples.LatLon4Tuple'>\n    test 111 height4: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 112 isequalTo: <class 'bool'>\n    test 113 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 114 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 115 philamheightdatum: <class 'pygeodesy.namedTuples.PhiLam4Tuple'>\n    test 116 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 117 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 118 toEcef: <class 'pygeodesy.ecef.Ecef9Tuple'>\n    test 119 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 120 toLatLon: <class 'pygeodesy.sphericalTrigonometry.LatLon'>\n    test 121 toLLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 122 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 123 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 124 toNvector: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 125 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 126 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 127 xyz3: <class 'tuple'>\n    test 128 Cartesian: <class 'pygeodesy.cartesianBase.CartesianBase'>\n    test 129 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 130 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 131 latlonheightdatum: <class 'pygeodesy.namedTuples.LatLon4Tuple'>\n    test 132 height4: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 133 isequalTo: <class 'bool'>\n    test 134 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 135 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 136 philamheightdatum: <class 'pygeodesy.namedTuples.PhiLam4Tuple'>\n    test 137 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 138 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 139 toEcef: <class 'pygeodesy.ecef.Ecef9Tuple'>\n    test 140 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 141 toLatLon: <class 'pygeodesy.ecef.Ecef9Tuple'>\n    test 142 toLLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 143 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 144 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 145 toNvector: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 146 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 147 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 148 xyz3: <class 'tuple'>\n    test 149 sphericalTrigonometry.Cartesian.intersections2: 37.673442°N, 090.234036°W\n    test 150 sphericalTrigonometry.Cartesian.intersections2: 36.109987°N, 090.95367°W\n    test 151 sphericalTrigonometry.Cartesian.intersections2: [-0.032779, -0.784769, 0.61892]\n    test 152 sphericalTrigonometry.Cartesian.intersections2: 38.237342°N, 092.391779°W\n    test 153 sphericalTrigonometry.Cartesian.intersections2: [0.025768, -0.798347, 0.601646]\n    test 154 sphericalTrigonometry.Cartesian.intersections2: 36.987868°N, 088.151309°W\n\n    2 tests skipped (4): numpy in PYGEODESY_XPACKAGES=numpy,scipy: required by vector2d._numpy\n    test 155 vector3d.intersections2: (-0.0035, -0.791926, 0.610589)\n    test 156 vector3d.intersections2: 0.0312613\n    test 157 vector3d.intersections2: (-0.021973, -0.766467, 0.0)\n    test 158 vector3d.intersections2: (0.027459, -0.797488, 0.0)\n\n    test 159 xyz2rtp: 37.417, 36.699, 63.435\n    test 160 xyz2rtp: <class 'pygeodesy.cartesianBase.RadiusThetaPhi3Tuple'>\n    test 161 rtp2xyz: 10.0, 20.0, 30.0\n    test 162 rtp2xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 163 toCartesian: Cartesian(10.0, 20.0, 30.0)\n    test 164 toRtp: Test(r=37.416574, theta=36.699225, phi=63.434949)\n\n    test 165 destinationXyz: Tuple(x=10.175954, y=20.351908, z=32.201182, lat=54.754059, lon=63.434949, height=-6370969.342158, C=2, M=None, datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84))\n    test 166 destinationXyz: Cartesian(10.176, 20.352, 32.201)\n\n    testCartesian(pygeodesy.ellipsoidalNvector, 25.05.12)\n    test 167 Cartesian0: [3980581, 97, 4966825]\n    test 168 Cartesian4: [3980581.0, 97.0, 4966825.0]\n    test 169 isEllipsoidal: True\n    test 170 isSpherical: False\n    test 171 copy(<class 'type'>): (<class 'pygeodesy.ellipsoidalNvector.Cartesian'>, True)\n    test 172 Cartesian.copy(): (<class 'pygeodesy.ellipsoidalNvector.Cartesian'>, True)\n    test 173 convertDatum: [3980581.0, 97.0, 4966825.0]\n# imported pygeodesy.basics into errors.py line 715\n    test 174 __matmul__: [3980580.124, 107.691, 4966819.407]\n    test 175 __matmul__: [3980580.124, 107.691, 4966819.407]\n    test 176 __matmul__: [3980580.998, 97.0, 4966824.998]\n# lazily imported pygeodesy.triaxials by lazily.py line 529\n    test 177 height: 0.242887\n    test 178 height4: (3980580.8, 97.0, 4966824.8, 0.2)\n    test 179 height4: [3980580.8, 97.0, 4966824.8]\n    test 180 height3: (3980581.0, 97.0, 4966825.0)\n    test 181 Nvector: Nvector(0.62282, 0.00002, 0.78237, +0.24)\n    test 182 Nvector3: (0.623, 0.0, 0.782, +0.24)\n    test 183 Nvector6: (0.622818, 0.000015, 0.782367, +0.24)\n    test 184 LatLon: 50.0379°N, 008.5622°E, +0.00m  FAILED, KNOWN, expected 50.0379°N, 008.5622°E\n    test 185 LatLon: 51.47°N, 000.4543°E, -0.00m  FAILED, KNOWN, expected 51.47°N, 000.4543°E\n    test 186 LatLon: 40.633365°N, 073.783328°W\n    test 187 LatLon: 33.95°N, 118.4°W\n    test 188 LatLon: 41.32°S, 174.81°E, +0.00m  FAILED, KNOWN, expected 41.32°S, 174.81°E\n    test 189 LatLon: 40.96°N, 005.5°E, -0.00m  FAILED, KNOWN, expected 40.96°N, 005.5°E\n    test 190 LatLon: 40.1°N, 116.6°E, -0.00m  FAILED, KNOWN, expected 40.1°N, 116.6°E\n    test 191 LatLon: 37.6°N, 122.4°W\n    test 192 copy: True\n    test 193 __eq__: True\n    test 194 __ne__: False\n    test 195 Cartesian: <class 'pygeodesy.ellipsoidalNvector.Cartesian'>\n    test 196 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 197 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 198 latlonheightdatum: <class 'pygeodesy.namedTuples.LatLon4Tuple'>\n    test 199 height4: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 200 isequalTo: <class 'bool'>\n    test 201 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 202 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n./test/testCartesian.py:44: DeprecationWarning: method L{convertDatum<pygeodesy.ellipsoidalKarney.Cartesian.convertDatum>} has been DEPRECATED, use method L{toDatum}.\n  d = c.convertDatum(datum2)\n./test/testCartesian.py:45: DeprecationWarning: method L{convertDatum<pygeodesy.ellipsoidalKarney.Cartesian.convertDatum>} has been DEPRECATED, use method L{toDatum}.\n  t = d.convertDatum(datum)\n./test/testCartesian.py:44: DeprecationWarning: method L{convertDatum<pygeodesy.ellipsoidalExact.Cartesian.convertDatum>} has been DEPRECATED, use method L{toDatum}.\n  d = c.convertDatum(datum2)\n./test/testCartesian.py:45: DeprecationWarning: method L{convertDatum<pygeodesy.ellipsoidalExact.Cartesian.convertDatum>} has been DEPRECATED, use method L{toDatum}.\n  t = d.convertDatum(datum)\n    test 203 philamheightdatum: <class 'pygeodesy.namedTuples.PhiLam4Tuple'>\n    test 204 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 205 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 206 toEcef: <class 'pygeodesy.ecef.Ecef9Tuple'>\n    test 207 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 208 toLatLon: <class 'pygeodesy.ellipsoidalNvector.LatLon'>\n    test 209 toLLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 210 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 211 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 212 toNvector: <class 'pygeodesy.ellipsoidalNvector.Nvector'>\n    test 213 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 214 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 215 xyz3: <class 'tuple'>\n    test 216 Cartesian: <class 'pygeodesy.cartesianBase.CartesianBase'>\n    test 217 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 218 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 219 latlonheightdatum: <class 'pygeodesy.namedTuples.LatLon4Tuple'>\n    test 220 height4: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 221 isequalTo: <class 'bool'>\n    test 222 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 223 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 224 philamheightdatum: <class 'pygeodesy.namedTuples.PhiLam4Tuple'>\n    test 225 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 226 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 227 toEcef: <class 'pygeodesy.ecef.Ecef9Tuple'>\n    test 228 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 229 toLatLon: <class 'pygeodesy.ecef.Ecef9Tuple'>\n    test 230 toLLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 231 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 232 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 233 toNvector: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 234 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 235 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 236 xyz3: <class 'tuple'>\n    test 237 ellipsoidalNvector.Cartesian.intersections2: 89.998941°N, 090.234036°W\n    test 238 ellipsoidalNvector.Cartesian.intersections2: 89.99892°N, 090.95367°W\n    test 239 ellipsoidalNvector.Cartesian.intersections2: [-0.0035, -0.791926, 0.610589]\n    test 240 ellipsoidalNvector.Cartesian.intersections2: 89.998941°N, 090.253237°W\n    test 241 ellipsoidalNvector.Cartesian.intersections2: 0.0312613\n    test 242 vector3d.intersections2: (-0.0035, -0.791926, 0.610589)\n    test 243 vector3d.intersections2: 0.0312613\n    test 244 vector3d.intersections2: (-0.021973, -0.766467, 0.0)\n    test 245 vector3d.intersections2: (0.027459, -0.797488, 0.0)\n\n    test 246 xyz2rtp: 37.417, 36.699, 63.435\n    test 247 xyz2rtp: <class 'pygeodesy.cartesianBase.RadiusThetaPhi3Tuple'>\n    test 248 rtp2xyz: 10.0, 20.0, 30.0\n    test 249 rtp2xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 250 toCartesian: Cartesian(10.0, 20.0, 30.0)\n    test 251 toRtp: Test(r=37.416574, theta=36.699225, phi=63.434949)\n\n    test 252 destinationXyz: Tuple(x=9.553253, y=19.106505, z=32.000521, lat=89.971452, lon=63.434949, height=-6356720.308402, C=1, M=None, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 253 destinationXyz: Cartesian(9.553, 19.107, 32.001)\n\n    test 254 c.toEnu: [-17553188.505, -3108016.462, 7452592.104]\n    test 255 e.toEnu: [-17553188.505, -3108016.462, 7452592.104]\n\n    testCartesian(pygeodesy.ellipsoidalVincenty, 25.05.26)\n    test 256 Cartesian0: [3980581, 97, 4966825]\n    test 257 Cartesian4: [3980581.0, 97.0, 4966825.0]\n    test 258 isEllipsoidal: True\n    test 259 isSpherical: False\n    test 260 copy(<class 'type'>): (<class 'pygeodesy.ellipsoidalVincenty.Cartesian'>, True)\n    test 261 Cartesian.copy(): (<class 'pygeodesy.ellipsoidalVincenty.Cartesian'>, True)\n    test 262 convertDatum: [3980581.0, 97.0, 4966825.0]\n    test 263 __matmul__: [3980580.124, 107.691, 4966819.407]\n    test 264 __matmul__: [3980580.124, 107.691, 4966819.407]\n    test 265 __matmul__: [3980580.998, 97.0, 4966824.998]\n    test 266 height: 0.242887\n    test 267 height4: (3980580.8, 97.0, 4966824.8, 0.2)\n    test 268 height4: [3980580.8, 97.0, 4966824.8]\n    test 269 height3: (3980581.0, 97.0, 4966825.0)\n    test 270 Vector4Tuple: 0.622817765, 1.51770114e-05, 0.782366942, 0.242886808\n    test 271 LatLon: 50.0379°N, 008.5622°E, +0.00m  FAILED, KNOWN, expected 50.0379°N, 008.5622°E\n    test 272 LatLon: 51.47°N, 000.4543°E, -0.00m  FAILED, KNOWN, expected 51.47°N, 000.4543°E\n    test 273 LatLon: 40.633365°N, 073.783328°W\n    test 274 LatLon: 33.95°N, 118.4°W\n    test 275 LatLon: 41.32°S, 174.81°E, +0.00m  FAILED, KNOWN, expected 41.32°S, 174.81°E\n    test 276 LatLon: 40.96°N, 005.5°E, -0.00m  FAILED, KNOWN, expected 40.96°N, 005.5°E\n    test 277 LatLon: 40.1°N, 116.6°E, -0.00m  FAILED, KNOWN, expected 40.1°N, 116.6°E\n    test 278 LatLon: 37.6°N, 122.4°W\n    test 279 copy: True\n    test 280 __eq__: True\n    test 281 __ne__: False\n    test 282 Cartesian: <class 'pygeodesy.ellipsoidalVincenty.Cartesian'>\n    test 283 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 284 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 285 latlonheightdatum: <class 'pygeodesy.namedTuples.LatLon4Tuple'>\n    test 286 height4: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 287 isequalTo: <class 'bool'>\n    test 288 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 289 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 290 philamheightdatum: <class 'pygeodesy.namedTuples.PhiLam4Tuple'>\n    test 291 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 292 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 293 toEcef: <class 'pygeodesy.ecef.Ecef9Tuple'>\n    test 294 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 295 toLatLon: <class 'pygeodesy.ellipsoidalVincenty.LatLon'>\n    test 296 toLLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 297 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 298 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 299 toNvector: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 300 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 301 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 302 xyz3: <class 'tuple'>\n    test 303 Cartesian: <class 'pygeodesy.cartesianBase.CartesianBase'>\n    test 304 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 305 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 306 latlonheightdatum: <class 'pygeodesy.namedTuples.LatLon4Tuple'>\n    test 307 height4: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 308 isequalTo: <class 'bool'>\n    test 309 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 310 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 311 philamheightdatum: <class 'pygeodesy.namedTuples.PhiLam4Tuple'>\n    test 312 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 313 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 314 toEcef: <class 'pygeodesy.ecef.Ecef9Tuple'>\n    test 315 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 316 toLatLon: <class 'pygeodesy.ecef.Ecef9Tuple'>\n    test 317 toLLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 318 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 319 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 320 toNvector: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 321 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 322 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 323 xyz3: <class 'tuple'>\n    test 324 ellipsoidalVincenty.Cartesian.intersections2: 89.998941°N, 090.234036°W\n    test 325 ellipsoidalVincenty.Cartesian.intersections2: 89.99892°N, 090.95367°W\n    test 326 ellipsoidalVincenty.Cartesian.intersections2: [-0.0035, -0.791926, 0.610589]\n    test 327 ellipsoidalVincenty.Cartesian.intersections2: 89.998941°N, 090.253237°W\n    test 328 ellipsoidalVincenty.Cartesian.intersections2: 0.0312613\n    test 329 vector3d.intersections2: (-0.0035, -0.791926, 0.610589)\n    test 330 vector3d.intersections2: 0.0312613\n    test 331 vector3d.intersections2: (-0.021973, -0.766467, 0.0)\n    test 332 vector3d.intersections2: (0.027459, -0.797488, 0.0)\n\n    test 333 xyz2rtp: 37.417, 36.699, 63.435\n    test 334 xyz2rtp: <class 'pygeodesy.cartesianBase.RadiusThetaPhi3Tuple'>\n    test 335 rtp2xyz: 10.0, 20.0, 30.0\n    test 336 rtp2xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 337 toCartesian: Cartesian(10.0, 20.0, 30.0)\n    test 338 toRtp: Test(r=37.416574, theta=36.699225, phi=63.434949)\n\n    test 339 destinationXyz: Tuple(x=9.553253, y=19.106505, z=32.000521, lat=89.971452, lon=63.434949, height=-6356720.308402, C=1, M=None, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 340 destinationXyz: Cartesian(9.553, 19.107, 32.001)\n\n    test 341 c.toEnu: [-17553188.505, -3108016.462, 7452592.104]\n    test 342 e.toEnu: [-17553188.505, -3108016.462, 7452592.104]\n# lazily imported pygeodesy.ellipsoidalKarney by testCartesian.py line 221\n\n    testCartesian(pygeodesy.ellipsoidalKarney, 25.05.27)\n    test 343 Cartesian0: [3980581, 97, 4966825]\n    test 344 Cartesian4: [3980581.0, 97.0, 4966825.0]\n    test 345 isEllipsoidal: True\n    test 346 isSpherical: False\n    test 347 copy(<class 'type'>): (<class 'pygeodesy.ellipsoidalKarney.Cartesian'>, True)\n    test 348 Cartesian.copy(): (<class 'pygeodesy.ellipsoidalKarney.Cartesian'>, True)\n    test 349 convertDatum: [3980581.0, 97.0, 4966825.0]\n    test 350 __matmul__: [3980580.124, 107.691, 4966819.407]\n    test 351 __matmul__: [3980580.124, 107.691, 4966819.407]\n    test 352 __matmul__: [3980580.998, 97.0, 4966824.998]\n    test 353 height: 0.242887\n    test 354 height4: (3980580.8, 97.0, 4966824.8, 0.2)\n    test 355 height4: [3980580.8, 97.0, 4966824.8]\n    test 356 height3: (3980581.0, 97.0, 4966825.0)\n    test 357 Vector4Tuple: 0.622817765, 1.51770114e-05, 0.782366942, 0.242886808\n    test 358 LatLon: 50.0379°N, 008.5622°E, +0.00m  FAILED, KNOWN, expected 50.0379°N, 008.5622°E\n    test 359 LatLon: 51.47°N, 000.4543°E\n    test 360 LatLon: 40.633365°N, 073.783328°W\n    test 361 LatLon: 33.95°N, 118.4°W, +0.00m  FAILED, KNOWN, expected 33.95°N, 118.4°W\n    test 362 LatLon: 41.32°S, 174.81°E\n    test 363 LatLon: 40.96°N, 005.5°E\n    test 364 LatLon: 40.1°N, 116.6°E\n    test 365 LatLon: 37.6°N, 122.4°W\n    test 366 copy: True\n    test 367 __eq__: True\n    test 368 __ne__: False\n    test 369 Cartesian: <class 'pygeodesy.ellipsoidalKarney.Cartesian'>\n    test 370 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 371 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 372 latlonheightdatum: <class 'pygeodesy.namedTuples.LatLon4Tuple'>\n    test 373 height4: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 374 isequalTo: <class 'bool'>\n    test 375 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 376 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 377 philamheightdatum: <class 'pygeodesy.namedTuples.PhiLam4Tuple'>\n    test 378 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 379 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 380 toEcef: <class 'pygeodesy.ecef.Ecef9Tuple'>\n    test 381 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 382 toLatLon: <class 'pygeodesy.ellipsoidalKarney.LatLon'>\n    test 383 toLLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 384 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 385 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 386 toNvector: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 387 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 388 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 389 xyz3: <class 'tuple'>\n    test 390 Cartesian: <class 'pygeodesy.cartesianBase.CartesianBase'>\n    test 391 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 392 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 393 latlonheightdatum: <class 'pygeodesy.namedTuples.LatLon4Tuple'>\n    test 394 height4: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 395 isequalTo: <class 'bool'>\n    test 396 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 397 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 398 philamheightdatum: <class 'pygeodesy.namedTuples.PhiLam4Tuple'>\n    test 399 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 400 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 401 toEcef: <class 'pygeodesy.ecef.Ecef9Tuple'>\n    test 402 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 403 toLatLon: <class 'pygeodesy.ecef.Ecef9Tuple'>\n    test 404 toLLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 405 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 406 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 407 toNvector: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 408 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 409 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 410 xyz3: <class 'tuple'>\n    test 411 ellipsoidalKarney.Cartesian.intersections2: 89.998941°N, 090.234036°W\n    test 412 ellipsoidalKarney.Cartesian.intersections2: 89.99892°N, 090.95367°W\n    test 413 ellipsoidalKarney.Cartesian.intersections2: [-0.0035, -0.791926, 0.610589]\n    test 414 ellipsoidalKarney.Cartesian.intersections2: 89.998941°N, 090.253237°W\n    test 415 ellipsoidalKarney.Cartesian.intersections2: 0.0312613\n    test 416 vector3d.intersections2: (-0.0035, -0.791926, 0.610589)\n    test 417 vector3d.intersections2: 0.0312613\n    test 418 vector3d.intersections2: (-0.021973, -0.766467, 0.0)\n    test 419 vector3d.intersections2: (0.027459, -0.797488, 0.0)\n\n    test 420 xyz2rtp: 37.417, 36.699, 63.435\n    test 421 xyz2rtp: <class 'pygeodesy.cartesianBase.RadiusThetaPhi3Tuple'>\n    test 422 rtp2xyz: 10.0, 20.0, 30.0\n    test 423 rtp2xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 424 toCartesian: Cartesian(10.0, 20.0, 30.0)\n    test 425 toRtp: Test(r=37.416574, theta=36.699225, phi=63.434949)\n\n    test 426 destinationXyz: Tuple(x=9.553253, y=19.106506, z=32.000521, lat=89.971452, lon=63.434949, height=-6356720.308402, C=1, M=None, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 427 destinationXyz: Cartesian(9.553, 19.107, 32.001)\n\n    test 428 c.toEnu: [-17553188.505, -3108016.462, 7452592.104]\n    test 429 e.toEnu: [-17553188.505, -3108016.462, 7452592.104]\n\n    testCartesian(pygeodesy.ellipsoidalExact, 25.08.28)\n    test 430 Cartesian0: [3980581, 97, 4966825]\n    test 431 Cartesian4: [3980581.0, 97.0, 4966825.0]\n    test 432 isEllipsoidal: True\n    test 433 isSpherical: False\n    test 434 copy(<class 'type'>): (<class 'pygeodesy.ellipsoidalExact.Cartesian'>, True)\n    test 435 Cartesian.copy(): (<class 'pygeodesy.ellipsoidalExact.Cartesian'>, True)\n    test 436 convertDatum: [3980581.0, 97.0, 4966825.0]\n    test 437 __matmul__: [3980580.124, 107.691, 4966819.407]\n    test 438 __matmul__: [3980580.124, 107.691, 4966819.407]\n    test 439 __matmul__: [3980580.998, 97.0, 4966824.998]\n    test 440 height: 0.242887\n    test 441 height4: (3980580.8, 97.0, 4966824.8, 0.2)\n    test 442 height4: [3980580.8, 97.0, 4966824.8]\n    test 443 height3: (3980581.0, 97.0, 4966825.0)\n    test 444 Vector4Tuple: 0.622817765, 1.51770114e-05, 0.782366942, 0.242886808\n    test 445 LatLon: 50.0379°N, 008.5622°E, +0.00m  FAILED, KNOWN, expected 50.0379°N, 008.5622°E\n    test 446 LatLon: 51.47°N, 000.4543°E\n    test 447 LatLon: 40.633365°N, 073.783328°W\n    test 448 LatLon: 33.95°N, 118.4°W, +0.00m  FAILED, KNOWN, expected 33.95°N, 118.4°W\n    test 449 LatLon: 41.32°S, 174.81°E\n    test 450 LatLon: 40.96°N, 005.5°E\n    test 451 LatLon: 40.1°N, 116.6°E\n    test 452 LatLon: 37.6°N, 122.4°W\n    test 453 copy: True\n    test 454 __eq__: True\n    test 455 __ne__: False\n    test 456 Cartesian: <class 'pygeodesy.ellipsoidalExact.Cartesian'>\n    test 457 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 458 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 459 latlonheightdatum: <class 'pygeodesy.namedTuples.LatLon4Tuple'>\n    test 460 height4: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 461 isequalTo: <class 'bool'>\n    test 462 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 463 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 464 philamheightdatum: <class 'pygeodesy.namedTuples.PhiLam4Tuple'>\n    test 465 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 466 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 467 toEcef: <class 'pygeodesy.ecef.Ecef9Tuple'>\n    test 468 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 469 toLatLon: <class 'pygeodesy.ellipsoidalExact.LatLon'>\n    test 470 toLLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 471 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 472 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 473 toNvector: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 474 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 475 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 476 xyz3: <class 'tuple'>\n    test 477 Cartesian: <class 'pygeodesy.cartesianBase.CartesianBase'>\n    test 478 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 479 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 480 latlonheightdatum: <class 'pygeodesy.namedTuples.LatLon4Tuple'>\n    test 481 height4: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 482 isequalTo: <class 'bool'>\n    test 483 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 484 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 485 philamheightdatum: <class 'pygeodesy.namedTuples.PhiLam4Tuple'>\n    test 486 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 487 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 488 toEcef: <class 'pygeodesy.ecef.Ecef9Tuple'>\n    test 489 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 490 toLatLon: <class 'pygeodesy.ecef.Ecef9Tuple'>\n    test 491 toLLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 492 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 493 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 494 toNvector: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 495 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 496 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 497 xyz3: <class 'tuple'>\n    test 498 ellipsoidalExact.Cartesian.intersections2: 89.998941°N, 090.234036°W\n    test 499 ellipsoidalExact.Cartesian.intersections2: 89.99892°N, 090.95367°W\n    test 500 ellipsoidalExact.Cartesian.intersections2: [-0.0035, -0.791926, 0.610589]\n    test 501 ellipsoidalExact.Cartesian.intersections2: 89.998941°N, 090.253237°W\n    test 502 ellipsoidalExact.Cartesian.intersections2: 0.0312613\n    test 503 vector3d.intersections2: (-0.0035, -0.791926, 0.610589)\n    test 504 vector3d.intersections2: 0.0312613\n    test 505 vector3d.intersections2: (-0.021973, -0.766467, 0.0)\n    test 506 vector3d.intersections2: (0.027459, -0.797488, 0.0)\n\n    test 507 xyz2rtp: 37.417, 36.699, 63.435\n    test 508 xyz2rtp: <class 'pygeodesy.cartesianBase.RadiusThetaPhi3Tuple'>\n    test 509 rtp2xyz: 10.0, 20.0, 30.0\n    test 510 rtp2xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 511 toCartesian: Cartesian(10.0, 20.0, 30.0)\n    test 512 toRtp: Test(r=37.416574, theta=36.699225, phi=63.434949)\n\n    test 513 destinationXyz: Tuple(x=9.553253, y=19.106506, z=32.000521, lat=89.971452, lon=63.434949, height=-6356720.308402, C=1, M=None, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 514 destinationXyz: Cartesian(9.553, 19.107, 32.001)\n\n    test 515 c.toEnu: [-17553188.505, -3108016.462, 7452592.104]\n    test 516 e.toEnu: [-17553188.505, -3108016.462, 7452592.104]\n\n    30 of 516 testCartesian.py tests (5.8%) FAILED, incl. 18 KNOWN plus 12 DeprecationWarnings, 4 skipped (pygeodesy 26.3.26 PyPy 7.3.17 Python 3.10.14 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 151.675 ms\nrunning /opt/local/bin/p....y3.10 -W default ~/PyGeodesy/test/testClasses.py\n# lazily imported pygeodesy.basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.DeprecationWarnings from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isint from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isLazy from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.issubclassof from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.iterNumpy2over from .iters by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.LazyImportError from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.karney by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.NN from .interns by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.normDMS from .dms by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.pairs from .streprs by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.printf from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.property_RO from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.typename from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.itemsorted from .basics by testClasses.py line 13\n# lazily imported pygeodesy.Geodesic from .geodesicw by testClasses.py line 13\n# lazily imported pygeodesy.GeodesicLine from .geodesicw by testClasses.py line 13\n# lazily imported pygeodesy.Geohashed from .geohash by testClasses.py line 13\n# lazily imported pygeodesy.Property from .props by testClasses.py line 13\n# lazily imported pygeodesy.Property_RO from .props by testClasses.py line 13\n# lazily imported pygeodesy.property_ROnce from .props by testClasses.py line 13\n# lazily imported pygeodesy.property_ROver from .props by testClasses.py line 13\n# lazily imported pygeodesy.SciPyWarning from .errors by testClasses.py line 13\n# lazily imported pygeodesy.Str_ from .interns by testClasses.py line 13\n# lazily imported pygeodesy.ellipsoidalExact by testClasses.py line 83\n# lazily imported pygeodesy.ellipsoidalKarney by testClasses.py line 83\n# lazily imported pygeodesy.ellipsoidalNvector by testClasses.py line 83\n# lazily imported pygeodesy.ellipsoidalVincenty by testClasses.py line 83\n# lazily imported pygeodesy.sphericalNvector by testClasses.py line 83\n# lazily imported pygeodesy.sphericalTrigonometry by testClasses.py line 83\n\n    testing testClasses.py 24.07.29 isLazy=3\n\n    testCartesianAttrs(24.07.29)\n    test 1 angleTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 2 apply() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 3 attrs() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 4 bearing() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 5 bools() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 6 cassini() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 7 circin6() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 8 circum3() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 9 circum4_() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 10 classname Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 11 classnaming _NamedProperty: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 12 classof() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 13 cmp() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 14 collins() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 15 collins5() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 16 convertDatum() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 17 convertRefFrame() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 18 copy() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 19 cross() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 20 crosserrors _NamedProperty: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 21 datum _NamedProperty: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 22 destinationXyz() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 23 dividedBy() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 24 dividedBy_() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 25 dot() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 26 dup() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 27 Ecef property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 28 Ecef property_ROver: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 29 ellipsoidalCartesian property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 30 epoch _NamedProperty: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 31 equals() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 32 equirectangular() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 33 euclid Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 34 fabs() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 35 floats() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 36 floorDividedBy() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 37 floorDividedBy_() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 38 hartzell() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 39 height Property: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 40 height3() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 41 height4() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 42 homogeneous property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 43 intermediateTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 44 intersections2() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 45 ints() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 46 iscolinearWith() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 47 isconjugateTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 48 isEllipsoidal Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 49 isequalTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 50 isSpherical Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 51 iteration property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 52 latlon Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 53 latlonheight Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 54 latlonheightdatum Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 55 length Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 56 length2 Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 57 meeus2() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 58 methodname() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 59 minus() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 60 minus_() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 61 name _NamedProperty: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 62 named Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 63 named2 Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 64 named3 Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 65 named4 Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 66 nearestOn() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 67 nearestOn6() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 68 negate() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 69 others() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 70 parse() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 71 philam Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 72 philamheight Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 73 philamheightdatum Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 74 pierlot() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 75 pierlotx() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 76 plus() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 77 plus_() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 78 pow() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 79 radii11() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 80 reframe _NamedProperty: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 81 rename() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 82 renamed() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 83 Roc2() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 84 rotate() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 85 rotateAround() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 86 sizeof property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 87 soddy4() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 88 sphericalCartesian property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 89 sum() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 90 tienstra() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 91 tienstra7() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 92 times() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 93 times_() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 94 to2ab() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 95 to2ll() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 96 to3llh() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 97 to3xyz() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 98 toAer() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 99 toCartesian() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 100 toDatum() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 101 toEcef() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 102 toEnu() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 103 toLatLon() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 104 toLocal() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 105 toLtp() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 106 toNed() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 107 toNvector() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 108 toRefFrame() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 109 toRepr() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 110 toRtp() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 111 toStr() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 112 toStr2() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 113 toTransform() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 114 toTransforms_() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 115 toVector() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 116 toXyz() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 117 trilaterate2d2() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 118 trilaterate3d2() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 119 typename property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 120 unit() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 121 x Property: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 122 x2y2z2 Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 123 x2y2z23 property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 124 xyz Property: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 125 xyz3 property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 126 y Property: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 127 z Property: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n\n    testCartesianMro(24.07.29)\n    test 128 pygeodesy.sphericalNvector: pygeodesy.sphericalNvector.Cartesian, pygeodesy.sphericalBase.CartesianSphericalBase, pygeodesy.cartesianBase.CartesianBase, pygeodesy.vector3d.Vector3d, pygeodesy.vector3dBase.Vector3dBase, pygeodesy.named._NamedBase, pygeodesy.ecefLocals._EcefLocal, pygeodesy.named._Named\n    test 129 pygeodesy.sphericalTrigonometry: pygeodesy.sphericalTrigonometry.Cartesian, pygeodesy.sphericalBase.CartesianSphericalBase, pygeodesy.cartesianBase.CartesianBase, pygeodesy.vector3d.Vector3d, pygeodesy.vector3dBase.Vector3dBase, pygeodesy.named._NamedBase, pygeodesy.ecefLocals._EcefLocal, pygeodesy.named._Named\n    test 130 pygeodesy.ellipsoidalNvector: pygeodesy.ellipsoidalNvector.Cartesian, pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase, pygeodesy.cartesianBase.CartesianBase, pygeodesy.vector3d.Vector3d, pygeodesy.vector3dBase.Vector3dBase, pygeodesy.named._NamedBase, pygeodesy.ecefLocals._EcefLocal, pygeodesy.named._Named\n    test 131 pygeodesy.ellipsoidalVincenty: pygeodesy.ellipsoidalVincenty.Cartesian, pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase, pygeodesy.cartesianBase.CartesianBase, pygeodesy.vector3d.Vector3d, pygeodesy.vector3dBase.Vector3dBase, pygeodesy.named._NamedBase, pygeodesy.ecefLocals._EcefLocal, pygeodesy.named._Named\n    test 132 pygeodesy.ellipsoidalKarney: pygeodesy.ellipsoidalKarney.Cartesian, pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase, pygeodesy.cartesianBase.CartesianBase, pygeodesy.vector3d.Vector3d, pygeodesy.vector3dBase.Vector3dBase, pygeodesy.named._NamedBase, pygeodesy.ecefLocals._EcefLocal, pygeodesy.named._Named\n    test 133 pygeodesy.ellipsoidalExact: pygeodesy.ellipsoidalExact.Cartesian, pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase, pygeodesy.cartesianBase.CartesianBase, pygeodesy.vector3d.Vector3d, pygeodesy.vector3dBase.Vector3dBase, pygeodesy.named._NamedBase, pygeodesy.ecefLocals._EcefLocal, pygeodesy.named._Named\n\n    testLatLonAttrs(24.07.29)\n    test 134 alongTrackDistanceTo() method: pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 135 antipode() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 136 attrs() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 137 bearingTo() method: pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 138 bearingTo2() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 139 bounds() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 140 boundsOf() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 141 chordTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 142 circin6() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 143 circum3() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 144 circum4_() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 145 classname Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 146 classnaming _NamedProperty: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 147 classof() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 148 clipid property: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 149 compassAngle() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 150 compassAngleTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 151 convergence _Deprecated_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 152 convertDatum() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 153 convertRefFrame() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 154 copy() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 155 cosineAndoyerLambertTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 156 cosineForsytheAndoyerLambertTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 157 cosineLawTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 158 crossingParallels() method: pygeodesy.sphericalTrigonometry\n    test 159 crossTrackDistanceTo() method: pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 160 datum _NamedProperty: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 161 deltaTo() method: pygeodesy.ellipsoidalNvector\n    test 162 destination() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 163 destination2() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalVincenty\n    test 164 destinationNed() method: pygeodesy.ellipsoidalNvector\n    test 165 destinationXyz() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 166 distanceTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 167 distanceTo2() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 168 distanceTo3() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalVincenty\n    test 169 dup() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 170 Ecef property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 171 Ecef property_ROver: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 172 elevation2() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 173 ellipsoid() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 174 ellipsoidalLatLon property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 175 ellipsoids() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 176 epoch _NamedProperty: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 177 epsilon _NamedProperty: pygeodesy.ellipsoidalVincenty\n    test 178 equals() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 179 equals3() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 180 Equidistant Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 181 equirectangularTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 182 euclideanTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 183 finalBearingOn() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalVincenty\n    test 184 finalBearingTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 185 flatLocalTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 186 flatPolarTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 187 gamma property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 188 geodesic property_RO: pygeodesy.ellipsoidalVincenty\n    test 189 geodesic Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney\n    test 190 geodesicx Property_RO: pygeodesy.ellipsoidalExact\n    test 191 geoidHeight2() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 192 greatCircle() method: pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 193 greatCircleTo() method: pygeodesy.sphericalNvector\n    test 194 hartzell() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 195 haversineTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 196 height Property: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 197 height4() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 198 heightStr() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 199 hubenyTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 200 initialBearingTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 201 intermediateChordTo() method: pygeodesy.sphericalNvector\n    test 202 intermediateTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 203 intersecant2() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 204 intersection() method: pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 205 intersection2() method: pygeodesy.sphericalNvector\n    test 206 intersection3() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 207 intersections2() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 208 isantipode() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 209 isantipodeTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 210 isEllipsoidal Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 211 isEnclosedBy() method: pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 212 isenclosedBy() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 213 isequalTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 214 isequalTo3() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 215 isnormal Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 216 isSpherical Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 217 isWithin() method: pygeodesy.sphericalNvector\n    test 218 iswithin() method: pygeodesy.sphericalNvector\n    test 219 iteration property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 220 iterations _NamedProperty: pygeodesy.ellipsoidalVincenty\n    test 221 lam Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 222 lat Property: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 223 latlon Property: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 224 latlon2() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 225 latlon2round() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 226 latlon_() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 227 latlonheight Property: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 228 lon Property: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 229 maxLat() method: pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 230 methodname() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 231 midpointTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 232 minLat() method: pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 233 name _NamedProperty: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 234 named Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 235 named2 Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 236 named3 Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 237 named4 Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 238 napieradius _NamedProperty: pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 239 nearestOn() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 240 nearestOn2() method: pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 241 nearestOn3() method: pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 242 nearestOn6() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 243 nearestOn8() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalVincenty\n    test 244 nearestTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 245 normal() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 246 others() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 247 parse() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 248 phi Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 249 philam Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 250 philam2() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 251 philamheight Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 252 plumbTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalVincenty\n    test 253 points() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 254 points2() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 255 PointsIter() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 256 radii11() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 257 reframe _NamedProperty: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 258 rename() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 259 renamed() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 260 rhumbAzimuthTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 261 rhumbBearingTo() method: pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 262 rhumbDestination() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 263 rhumbDistanceTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 264 rhumbIntersecant2() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 265 rhumbLine() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 266 rhumbMidpointTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 267 scale Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 268 sizeof property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 269 sphericalLatLon property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 270 thomasTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 271 to2ab() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 272 to3llh() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 273 to3xyz() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 274 toAer() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 275 toCartesian() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 276 toCss() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 277 toDatum() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 278 toEcef() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 279 toEnu() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 280 toEtm() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 281 toLcc() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 282 toLocal() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 283 toLtp() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 284 toMgrs() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 285 toNed() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 286 toNormal() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 287 toNvector() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 288 toOsgr() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 289 toRefFrame() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 290 toRepr() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 291 toStr() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 292 toStr2() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 293 toTransform() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 294 toUps() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 295 toUtm() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 296 toUtmUps() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 297 toVector() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 298 toVector3d() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 299 toWm() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 300 toXyz() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 301 triangle7() method: pygeodesy.sphericalTrigonometry\n    test 302 triangulate() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 303 trilaterate() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 304 trilaterate5() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 305 typename property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 306 vincentysTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 307 xyz property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 308 xyz3 property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 309 xyzh Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n\n    testLatLonMro(24.07.29)\n    test 310 pygeodesy.sphericalNvector: pygeodesy.sphericalNvector.LatLon, pygeodesy.nvectorBase.LatLonNvectorBase, pygeodesy.sphericalBase.LatLonSphericalBase, pygeodesy.latlonBase.LatLonBase, pygeodesy.named._NamedBase, pygeodesy.ecefLocals._EcefLocal, pygeodesy.named._Named\n    test 311 pygeodesy.sphericalTrigonometry: pygeodesy.sphericalTrigonometry.LatLon, pygeodesy.sphericalBase.LatLonSphericalBase, pygeodesy.latlonBase.LatLonBase, pygeodesy.named._NamedBase, pygeodesy.ecefLocals._EcefLocal, pygeodesy.named._Named\n    test 312 pygeodesy.ellipsoidalNvector: pygeodesy.ellipsoidalNvector.LatLon, pygeodesy.nvectorBase.LatLonNvectorBase, pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase, pygeodesy.latlonBase.LatLonBase, pygeodesy.named._NamedBase, pygeodesy.ecefLocals._EcefLocal, pygeodesy.named._Named\n    test 313 pygeodesy.ellipsoidalVincenty: pygeodesy.ellipsoidalVincenty.LatLon, pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI, pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase, pygeodesy.latlonBase.LatLonBase, pygeodesy.named._NamedBase, pygeodesy.ecefLocals._EcefLocal, pygeodesy.named._Named\n    test 314 pygeodesy.ellipsoidalKarney: pygeodesy.ellipsoidalKarney.LatLon, pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI, pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase, pygeodesy.latlonBase.LatLonBase, pygeodesy.named._NamedBase, pygeodesy.ecefLocals._EcefLocal, pygeodesy.named._Named\n    test 315 pygeodesy.ellipsoidalExact: pygeodesy.ellipsoidalExact.LatLon, pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI, pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase, pygeodesy.latlonBase.LatLonBase, pygeodesy.named._NamedBase, pygeodesy.ecefLocals._EcefLocal, pygeodesy.named._Named\n\n    testNvectorAttrs(24.07.29)\n    test 316 angleTo() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 317 apply() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 318 attrs() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 319 bearing() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 320 bools() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 321 circin6() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 322 circum3() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 323 circum4_() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 324 classname Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 325 classnaming _NamedProperty: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 326 classof() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 327 cmp() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 328 copy() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 329 cross() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 330 crosserrors _NamedProperty: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 331 datum Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 332 dividedBy() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 333 dividedBy_() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 334 dot() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 335 dup() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 336 Ecef property_ROnce: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 337 ellipsoidalNvector property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 338 equals() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 339 equirectangular() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 340 euclid Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 341 fabs() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 342 floats() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 343 floorDividedBy() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 344 floorDividedBy_() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 345 greatCircle() method: pygeodesy.sphericalNvector\n    test 346 H _NamedProperty: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 347 h _NamedProperty: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 348 homogeneous property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 349 hStr() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 350 intermediateTo() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 351 ints() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 352 iscolinearWith() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 353 isconjugateTo() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 354 isEllipsoidal Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 355 isequalTo() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 356 isSpherical Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 357 iteration property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 358 lam Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 359 lat Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 360 latlon Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 361 latlonheight Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 362 latlonheightdatum Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 363 length Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 364 length2 Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 365 lon Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 366 meeus2() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 367 methodname() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 368 minus() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 369 minus_() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 370 name _NamedProperty: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 371 named Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 372 named2 Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 373 named3 Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 374 named4 Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 375 nearestOn() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 376 nearestOn6() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 377 negate() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 378 others() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 379 parse() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 380 phi Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 381 philam Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 382 philamheight Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 383 philamheightdatum Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 384 plus() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 385 plus_() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 386 pow() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 387 radii11() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 388 rename() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 389 renamed() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 390 rotate() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 391 rotateAround() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 392 sizeof property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 393 soddy4() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 394 sphericalNvector property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 395 sum() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 396 times() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 397 times_() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 398 to2ab() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 399 to2ll() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 400 to3abh() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 401 to3llh() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 402 to3xyz() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 403 to4xyzh() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 404 toCartesian() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 405 toLatLon() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 406 toRepr() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 407 toStr() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 408 toStr2() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 409 toVector3d() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 410 trilaterate2d2() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 411 trilaterate3d2() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 412 typename property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 413 unit() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 414 x Property: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 415 x2y2z2 Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 416 x2y2z23 property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 417 xyz Property: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 418 xyz3 property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 419 xyzh Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 420 y Property: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 421 z Property: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n\n    testNvectorMro(24.07.29)\n    test 422 pygeodesy.sphericalNvector: pygeodesy.sphericalNvector.Nvector, pygeodesy.nvectorBase.NvectorBase, pygeodesy.vector3d.Vector3d, pygeodesy.vector3dBase.Vector3dBase, pygeodesy.named._NamedBase, pygeodesy.named._Named\n    test 423 pygeodesy.ellipsoidalNvector: pygeodesy.ellipsoidalNvector.Nvector, pygeodesy.nvectorBase.NvectorBase, pygeodesy.vector3d.Vector3d, pygeodesy.vector3dBase.Vector3dBase, pygeodesy.named._NamedBase, pygeodesy.named._Named\n\n    testVector3dAttrs(24.07.29)\n    test 424 angleTo() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 425 apply() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 426 attrs() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 427 bearing() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 428 bools() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 429 circin6() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 430 circum3() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 431 circum4_() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 432 classname Property_RO: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 433 classnaming _NamedProperty: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 434 classof() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 435 cmp() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 436 copy() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 437 cross() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 438 crosserrors _NamedProperty: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 439 dividedBy() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 440 dividedBy_() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 441 dot() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 442 dup() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 443 equals() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 444 equirectangular() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 445 euclid Property_RO: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 446 fabs() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 447 floats() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 448 floorDividedBy() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 449 floorDividedBy_() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 450 homogeneous property_RO: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 451 intermediateTo() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 452 ints() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 453 iscolinearWith() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 454 isconjugateTo() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 455 isequalTo() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 456 iteration property_RO: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 457 length Property_RO: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 458 length2 Property_RO: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 459 meeus2() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 460 methodname() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 461 minus() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 462 minus_() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 463 name _NamedProperty: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 464 named Property_RO: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 465 named2 Property_RO: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 466 named3 Property_RO: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 467 named4 Property_RO: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 468 nearestOn() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 469 nearestOn6() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 470 negate() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 471 others() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 472 parse() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 473 plus() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 474 plus_() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 475 pow() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 476 radii11() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 477 rename() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 478 renamed() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 479 rotate() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 480 rotateAround() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 481 sizeof property_RO: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 482 soddy4() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 483 sum() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 484 times() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 485 times_() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 486 to3xyz() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 487 toCartesian() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 488 toRepr() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 489 toStr() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 490 toStr2() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 491 trilaterate2d2() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 492 trilaterate3d2() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 493 typename property_RO: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 494 unit() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 495 x Property: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 496 x2y2z2 Property_RO: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 497 x2y2z23 property_RO: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 498 xyz Property: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 499 xyz3 property_RO: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 500 y Property: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 501 z Property: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n\n    testVector3dMro(24.07.29)\n    test 502 pygeodesy.nvectorBase: pygeodesy.vector3d.Vector3d, pygeodesy.vector3dBase.Vector3dBase, pygeodesy.named._NamedBase, pygeodesy.named._Named\n    test 503 pygeodesy.vector3d: pygeodesy.vector3d.Vector3d, pygeodesy.vector3dBase.Vector3dBase, pygeodesy.named._NamedBase, pygeodesy.named._Named\n    test 504 pygeodesy.sphericalTrigonometry: pygeodesy.vector3d.Vector3d, pygeodesy.vector3dBase.Vector3dBase, pygeodesy.named._NamedBase, pygeodesy.named._Named\n\n    testCopyAttr(24.07.29)\n\n    all 504 testClasses.py tests passed (pygeodesy 26.3.26 PyPy 7.3.17 Python 3.10.14 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 11.772 ms\nrunning /opt/local/bin/p....y3.10 -W default ~/PyGeodesy/test/testClipy.py\n# lazily imported pygeodesy.basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.DeprecationWarnings from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isint from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isLazy from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.issubclassof from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.iterNumpy2over from .iters by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.LazyImportError from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.karney by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.NN from .interns by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.normDMS from .dms by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.pairs from .streprs by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.printf from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.property_RO from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.typename from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.F_D from .dms by testClipy.py line 11\n# lazily imported pygeodesy.F__F_ from .dms by testClipy.py line 11\n# lazily imported pygeodesy.boundsOf from .points by testClipy.py line 11\n# lazily imported pygeodesy.clipCS4 from .clipy by testClipy.py line 11\n# lazily imported pygeodesy.ClipError from .errors by testClipy.py line 11\n# lazily imported pygeodesy.clipFHP4 from .clipy by testClipy.py line 11\n# lazily imported pygeodesy.ClipFHP4Tuple from .clipy by testClipy.py line 11\n# lazily imported pygeodesy.clipGH4 from .clipy by testClipy.py line 11\n# lazily imported pygeodesy.clipLB6 from .clipy by testClipy.py line 11\n# lazily imported pygeodesy.clipSH from .clipy by testClipy.py line 11\n# lazily imported pygeodesy.clipSH3 from .clipy by testClipy.py line 11\n# lazily imported pygeodesy.ellipsoidalNvector by testClipy.py line 288\n# lazily imported pygeodesy.ellipsoidalVincenty by testClipy.py line 288\n# lazily imported pygeodesy.sphericalNvector by testClipy.py line 288\n# lazily imported pygeodesy.sphericalTrigonometry by testClipy.py line 288\n\n    testing testClipy.py 23.03.27 isLazy=3\n\n    testing(pygeodesy.ellipsoidalNvector, 25.05.12)\n    test 1 clipCS4.p1: 07.5°N, 010.0°E\n    test 2 clipCS4.p2: 04.5°N, 000.0°E\n    test 3 clipCS4.i: 3\n    test 4 clipCS4.j: 0\n    test 5 clipCS4.p1: 05.0°N, 005.0°E\n    test 6 clipCS4.p2: 05.0°N, 005.0°E\n    test 7 clipCS4.i: 1\n    test 8 clipCS4.j: 2\n    test 9 clipLB6.p1: 07.5°N, 010.0°E\n    test 10 clipLB6.p2: 04.5°N, 000.0°E\n    test 11 clipLB6.i: 3\n    test 12 clipLB6.fi: 3.25\n    test 13 clipLB6.fi: 07.5°N, 010.0°E\n    test 14 clipLB6.fj: 3.75\n    test 15 clipLB6.fj: 04.5°N, 000.0°E\n    test 16 clipLB6.j: 0\n    test 17 clipLB6.fin: 4\n    test 18 clipLB6.p1: 05.0°N, 005.0°E\n    test 19 clipLB6.p2: 05.0°N, 005.0°E\n    test 20 clipLB6.i: 1\n    test 21 clipLB6.fi: 1.00\n    test 22 clipLB6.fi: 05.0°N, 005.0°E\n    test 23 clipLB6.fj: 2.00\n    test 24 clipLB6.fj: 05.0°N, 005.0°E\n    test 25 clipLB6.j: 2\n    test 26 clipLB6.fin: 4\n# lazily imported pygeodesy.booleans by iters.py line 503\n    test 27 clipCS4.p1: 60.0°N, 123.333333°E\n    test 28 clipCS4.p2: 62.857143°N, 130.0°E\n    test 29 clipCS4.i: 0\n    test 30 clipCS4.j: 1\n    test 31 clipLB6.p1: 60.0°N, 123.333333°E\n    test 32 clipLB6.p2: 62.857143°N, 130.0°E\n    test 33 clipLB6.i: 0\n    test 34 clipLB6.fi: 0.666667\n    test 35 clipLB6.fi: 60.0°N, 123.333333°E\n    test 36 clipLB6.fj: 0.714286\n    test 37 clipLB6.fj: 62.857143°N, 130.0°E\n    test 38 clipLB6.j: 1\n    test 39 clipLB6.fin: 0\n    test 40 clipCS4.p1: 17.5°N, 020.0°E\n    test 41 clipCS4.p2: 16.25°N, 015.0°E\n    test 42 clipCS4.i: 2\n    test 43 clipCS4.j: 0\n    test 44 clipLB6.p1: 17.5°N, 020.0°E\n    test 45 clipLB6.p2: 16.25°N, 015.0°E\n    test 46 clipLB6.i: 2\n    test 47 clipLB6.fi: 2.500\n    test 48 clipLB6.fi: 17.5°N, 020.0°E\n    test 49 clipLB6.fj: 2.750\n    test 50 clipLB6.fj: 16.25°N, 015.0°E\n    test 51 clipLB6.j: 0\n    test 52 clipLB6.fin: 3\n# lazily imported pygeodesy.angles by units.py line 633\n    test 53 clipSH1.len: 4\n    test 54 clipSH1.0: 20.0°N, 020.0°E\n    test 55 clipSH1.LL: True\n    test 56 clipSH1.1: 17.5°N, 020.0°E\n    test 57 clipSH1.LL: True\n    test 58 clipSH1.2: 16.25°N, 015.0°E\n    test 59 clipSH1.LL: True\n    test 60 clipSH1.3: 20.0°N, 015.0°E\n    test 61 clipSH1.LL: True\n    test 62 clipSH2.len: 5\n    test 63 clipSH2.0: 18.571°N, 024.286°E\n    test 64 clipSH2.LL: True\n    test 65 clipSH2.1: 16.667°N, 016.667°E\n    test 66 clipSH2.LL: True\n    test 67 clipSH2.2: 20.0°N, 015.0°E\n    test 68 clipSH2.LL: True\n    test 69 clipSH2.3: 25.0°N, 020.0°E\n    test 70 clipSH2.LL: True\n    test 71 clipSH2.4: 22.0°N, 026.0°E\n    test 72 clipSH2.LL: True\n    test 73 clipSH3.len: 2\n    test 74 clipSH3.0: 18.571°N, 024.286°E\n    test 75 clipSH3.LL: True\n    test 76 clipSH3.1: 16.667°N, 016.667°E\n    test 77 clipSH3.LL: True\n    test 78 clipSH3.edge.: True\n    test 79 clipSH3.len: 2\n    test 80 clipSH3.0: 16.667°N, 016.667°E\n    test 81 clipSH3.LL: True\n    test 82 clipSH3.1: 20.0°N, 015.0°E\n    test 83 clipSH3.LL: True\n    test 84 clipSH3.edge.: False\n    test 85 clipSH3.len: 2\n    test 86 clipSH3.0: 20.0°N, 015.0°E\n    test 87 clipSH3.LL: True\n    test 88 clipSH3.1: 25.0°N, 020.0°E\n    test 89 clipSH3.LL: True\n    test 90 clipSH3.edge.: True\n    test 91 clipSH3.len: 2\n    test 92 clipSH3.0: 25.0°N, 020.0°E\n    test 93 clipSH3.LL: True\n    test 94 clipSH3.1: 22.0°N, 026.0°E\n    test 95 clipSH3.LL: True\n    test 96 clipSH3.edge.: True\n    test 97 clipSH3.len: 2\n    test 98 clipSH3.0: 22.0°N, 026.0°E\n    test 99 clipSH3.LL: True\n    test 100 clipSH3.1: 18.571°N, 024.286°E\n    test 101 clipSH3.LL: True\n    test 102 clipSH3.edge.: False\n    test 103 clipSH2.reversed.len: 5\n    test 104 clipSH2.reversed.0: 18.571°N, 024.286°E\n    test 105 clipSH2.reversed.LL: True\n    test 106 clipSH2.reversed.1: 16.667°N, 016.667°E\n    test 107 clipSH2.reversed.LL: True\n    test 108 clipSH2.reversed.2: 20.0°N, 015.0°E\n    test 109 clipSH2.reversed.LL: True\n    test 110 clipSH2.reversed.3: 25.0°N, 020.0°E\n    test 111 clipSH2.reversed.LL: True\n    test 112 clipSH2.reversed.4: 22.0°N, 026.0°E\n    test 113 clipSH2.reversed.LL: True\n    test 114 clipSH3.reversed.len: 2\n    test 115 clipSH3.reversed.0: 18.571°N, 024.286°E\n    test 116 clipSH3.reversed.LL: True\n    test 117 clipSH3.reversed.1: 16.667°N, 016.667°E\n    test 118 clipSH3.reversed.LL: True\n    test 119 clipSH3.edge.reversed.: True\n    test 120 clipSH3.reversed.len: 2\n    test 121 clipSH3.reversed.0: 16.667°N, 016.667°E\n    test 122 clipSH3.reversed.LL: True\n    test 123 clipSH3.reversed.1: 20.0°N, 015.0°E\n    test 124 clipSH3.reversed.LL: True\n    test 125 clipSH3.edge.reversed.: False\n    test 126 clipSH3.reversed.len: 2\n    test 127 clipSH3.reversed.0: 20.0°N, 015.0°E\n    test 128 clipSH3.reversed.LL: True\n    test 129 clipSH3.reversed.1: 25.0°N, 020.0°E\n    test 130 clipSH3.reversed.LL: True\n    test 131 clipSH3.edge.reversed.: True\n    test 132 clipSH3.reversed.len: 2\n    test 133 clipSH3.reversed.0: 25.0°N, 020.0°E\n    test 134 clipSH3.reversed.LL: True\n    test 135 clipSH3.reversed.1: 22.0°N, 026.0°E\n    test 136 clipSH3.reversed.LL: True\n    test 137 clipSH3.edge.reversed.: True\n    test 138 clipSH3.reversed.len: 2\n    test 139 clipSH3.reversed.0: 22.0°N, 026.0°E\n    test 140 clipSH3.reversed.LL: True\n    test 141 clipSH3.reversed.1: 18.571°N, 024.286°E\n    test 142 clipSH3.reversed.LL: True\n    test 143 clipSH3.edge.reversed.: False\n    test 144 clipSH.allout: ()\n    test 145 clipSH3.allout: ()\n    test 146 clipSH.allout.reversed: ()\n    test 147 clipSH3.allout.reversed: ()\n    test 148 clipSH.allin.len: 4\n    test 149 clipSH.allin.0: 20.0°N, 030.0°E\n    test 150 clipSH.allin.LL: True\n    test 151 clipSH.allin.1: 15.0°N, 010.0°E\n    test 152 clipSH.allin.LL: True\n    test 153 clipSH.allin.2: 25.0°N, 020.0°E\n    test 154 clipSH.allin.LL: True\n    test 155 clipSH.allin.3: 20.0°N, 030.0°E\n    test 156 clipSH.allin.LL: True\n    test 157 clipSH3.allin.len: 2\n    test 158 clipSH3.allin.0: 20.0°N, 030.0°E\n    test 159 clipSH3.allin.LL: True\n    test 160 clipSH3.allin.1: 15.0°N, 010.0°E\n    test 161 clipSH3.allin.LL: True\n    test 162 clipSH3.edge.: True\n    test 163 clipSH3.allin.len: 2\n    test 164 clipSH3.allin.0: 15.0°N, 010.0°E\n    test 165 clipSH3.allin.LL: True\n    test 166 clipSH3.allin.1: 25.0°N, 020.0°E\n    test 167 clipSH3.allin.LL: True\n    test 168 clipSH3.edge.: True\n    test 169 clipSH.allin.reversed.len: 4\n    test 170 clipSH.allin.reversed.0: 20.0°N, 030.0°E\n    test 171 clipSH.allin.reversed.LL: True\n    test 172 clipSH.allin.reversed.1: 15.0°N, 010.0°E\n    test 173 clipSH.allin.reversed.LL: True\n    test 174 clipSH.allin.reversed.2: 25.0°N, 020.0°E\n    test 175 clipSH.allin.reversed.LL: True\n    test 176 clipSH.allin.reversed.3: 20.0°N, 030.0°E\n    test 177 clipSH.allin.reversed.LL: True\n    test 178 clipSH3.allin.reversed.len: 2\n    test 179 clipSH3.allin.reversed.0: 20.0°N, 030.0°E\n    test 180 clipSH3.allin.reversed.LL: True\n    test 181 clipSH3.allin.reversed.1: 15.0°N, 010.0°E\n    test 182 clipSH3.allin.reversed.LL: True\n    test 183 clipSH3.edge.reversed.: True\n    test 184 clipSH3.allin.reversed.len: 2\n    test 185 clipSH3.allin.reversed.0: 15.0°N, 010.0°E\n    test 186 clipSH3.allin.reversed.LL: True\n    test 187 clipSH3.allin.reversed.1: 25.0°N, 020.0°E\n    test 188 clipSH3.allin.reversed.LL: True\n    test 189 clipSH3.edge.reversed.: True\n    test 190 clipSH.warped: clipSH clip region ((LatLon(10°00′00.0″N, 010°00′00.0″E), LatLon(20°00′00.0″N, 020°00′00.0″E), LatLon(10°00′00.0″N, 020°00′00.0″E), LatLon(20°00′00.0″N, 010°00′00.0″E))): not convex\n    test 191 clipSH3.warped: clipSH3 clip region ((LatLon(10°00′00.0″N, 010°00′00.0″E), LatLon(20°00′00.0″N, 020°00′00.0″E), LatLon(10°00′00.0″N, 020°00′00.0″E), LatLon(20°00′00.0″N, 010°00′00.0″E))): not convex\n    test 192 clipSH.warpedreversed.: clipSH clip region ((LatLon(20°00′00.0″N, 010°00′00.0″E), LatLon(10°00′00.0″N, 020°00′00.0″E), LatLon(20°00′00.0″N, 020°00′00.0″E), LatLon(10°00′00.0″N, 010°00′00.0″E))): not convex\n    test 193 clipSH3.warpedreversed.: clipSH3 clip region ((LatLon(20°00′00.0″N, 010°00′00.0″E), LatLon(10°00′00.0″N, 020°00′00.0″E), LatLon(20°00′00.0″N, 020°00′00.0″E), LatLon(10°00′00.0″N, 010°00′00.0″E))): not convex\n    test 194 boundsOf: (10.0, 10.0, 20.0, 20.0)\n    test 195 boundsOf: (15.0, 10.0, 25.0, 30.0)\n    test 196 enclosures: (5.0, 0.0, -5.0, -10.0)\n    test 197 overlap: (15.0, 10.0, 20.0, 20.0)\n    test 198 clipSH4: 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 0.0\n    test 199 clipSH5: 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 0.0\n    test 200 clipSH6: 1.0, 0.5, 2.0, 1.0, 2.0, 0.5\n    test 201 clipSH7: -0.2, 2.0, 0.2, 2.0, 0.5, 0.5, 2.0, 0.2, 2.0, -0.2, 0.5, -0.5, 0.2, -2.0, -0.2, -2.0, -0.5, -0.5, -2.0, -0.2, -2.0, 0.2, -0.5, 0.5\n    test 202 clipSH8: -0.33, 1.33, 0.0, 2.0, 0.33, 1.33, 0.5, 0.5, 0.78, 0.44, 1.18, -0.36, 0.5, -0.5, 0.2, -2.0, -0.2, -2.0, -0.5, -0.5, -1.18, -0.36, -0.78, 0.44, -0.5, 0.5\n    test 203 clipSH9: None\n    test 204 clipSH10: None\n    test 205 clipSH11: None\n    test 206 clipSH12: None\n\n    test 207 clipGH4: (ClipGH4Tuple(lat=5.0, lon=3.571429, height=1.714286, clipid=0), ClipGH4Tuple(lat=7.0, lon=5.0, height=2.0, clipid=0), ClipGH4Tuple(lat=5.0, lon=6.428571, height=2.285714, clipid=0), ClipGH4Tuple(lat=3.0, lon=5.0, height=2.0, clipid=0))\n\n    test 208 clipFHP4: (ClipFHP4Tuple(lat=7.0, lon=5.0, height=2.0, clipid=0), ClipFHP4Tuple(lat=5.0, lon=6.428571, height=2.285714, clipid=0), ClipFHP4Tuple(lat=3.0, lon=5.0, height=2.0, clipid=0), ClipFHP4Tuple(lat=5.0, lon=3.571429, height=1.714286, clipid=0))\n\n    test 209 Fig 8: (ClipFHP4Tuple(lat=4.0, lon=12.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=-1.0, lon=12.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=3.0, lon=8.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=5.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=3.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=2.0, lon=1.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=6.0, lon=3.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=6.0, lon=11.0, height=0.0, clipid=0))\n    test 210 Fig 14: (ClipFHP4Tuple(lat=3.0, lon=3.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=0.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=6.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=6.0, lon=6.0, height=0.0, clipid=1), ClipFHP4Tuple(lat=9.0, lon=3.0, height=0.0, clipid=1), ClipFHP4Tuple(lat=6.0, lon=0.0, height=0.0, clipid=1), ClipFHP4Tuple(lat=3.0, lon=3.0, height=0.0, clipid=1))\n    test 211 Fig 15: (ClipFHP4Tuple(lat=1.0, lon=3.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=4.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=2.0, lon=4.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=2.0, lon=0.0, height=0.0, clipid=1), ClipFHP4Tuple(lat=0.0, lon=0.0, height=0.0, clipid=1), ClipFHP4Tuple(lat=1.0, lon=1.0, height=0.0, clipid=1))\n    test 212 Fig 16: (ClipFHP4Tuple(lat=0.0, lon=0.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=1.0, lon=0.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=2.0, lon=2.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=2.0, height=0.0, clipid=0))\n    test 213 Fig 18: ((-10, -10, 0), (-10, -2, 0), (-8, -2, 0), (-8, -8, 0), (-2, -8, 0), (-2, -10, 0), (2, -10, 1), (2, -8, 1), (0, -8, 1), (0, -10, 1), (10, -6, 2), (8, -6, 2), (8, -8, 2), (10, -8, 2), (10, 8, 3), (8, 8, 3), (8, 6, 3), (10, 6, 3), (-6, 10, 4), (-6, 8, 4), (-4, 8, 4), (-4, 10, 4), (-10, 10, 5), (-10, 8, 5), (-8, 8, 5), (-8, 10, 5), (-10, 4, 6), (-8, 4, 6), (-8, 6, 6), (-10, 6, 6), (-10, 0, 7), (-8, 0, 7), (-8, 2, 7), (-10, 2, 7), (-6, 6, 8), (-4, 6, 8), (-4, 4, 8), (-6, 4, 8), (-6, 0, 9), (-4, 0, 9), (-4, 2, 9), (-6, 2, 9), (-6, -6, 10), (-2, -6, 10), (-2, -4, 10), (-4, -4, 10), (-4, -2, 10), (-6, -2, 10), (2, -6, 11), (2, -4, 11), (0, -4, 11), (0, -6, 11), (12, 8, 12), (20, 8, 12), (20, -8, 12), (12, -8, 12), (12, -6, 12), (18, -6, 12), (18, 6, 12), (12, 6, 12), (12, -4, 13), (14, -4, 13), (14, 4, 13), (12, 4, 13))\n\n    testing(pygeodesy.ellipsoidalVincenty, 25.05.26)\n    test 214 clipCS4.p1: 07.5°N, 010.0°E\n    test 215 clipCS4.p2: 04.5°N, 000.0°E\n    test 216 clipCS4.i: 3\n    test 217 clipCS4.j: 0\n    test 218 clipCS4.p1: 05.0°N, 005.0°E\n    test 219 clipCS4.p2: 05.0°N, 005.0°E\n    test 220 clipCS4.i: 1\n    test 221 clipCS4.j: 2\n    test 222 clipLB6.p1: 07.5°N, 010.0°E\n    test 223 clipLB6.p2: 04.5°N, 000.0°E\n    test 224 clipLB6.i: 3\n    test 225 clipLB6.fi: 3.25\n    test 226 clipLB6.fi: 07.5°N, 010.0°E\n    test 227 clipLB6.fj: 3.75\n    test 228 clipLB6.fj: 04.5°N, 000.0°E\n    test 229 clipLB6.j: 0\n    test 230 clipLB6.fin: 4\n    test 231 clipLB6.p1: 05.0°N, 005.0°E\n    test 232 clipLB6.p2: 05.0°N, 005.0°E\n    test 233 clipLB6.i: 1\n    test 234 clipLB6.fi: 1.00\n    test 235 clipLB6.fi: 05.0°N, 005.0°E\n    test 236 clipLB6.fj: 2.00\n    test 237 clipLB6.fj: 05.0°N, 005.0°E\n    test 238 clipLB6.j: 2\n    test 239 clipLB6.fin: 4\n    test 240 clipCS4.p1: 60.0°N, 123.333333°E\n    test 241 clipCS4.p2: 62.857143°N, 130.0°E\n    test 242 clipCS4.i: 0\n    test 243 clipCS4.j: 1\n    test 244 clipLB6.p1: 60.0°N, 123.333333°E\n    test 245 clipLB6.p2: 62.857143°N, 130.0°E\n    test 246 clipLB6.i: 0\n    test 247 clipLB6.fi: 0.666667\n    test 248 clipLB6.fi: 60.0°N, 123.333333°E\n    test 249 clipLB6.fj: 0.714286\n    test 250 clipLB6.fj: 62.857143°N, 130.0°E\n    test 251 clipLB6.j: 1\n    test 252 clipLB6.fin: 0\n# imported pygeodesy.formy into latlonBase.py line 756\n    test 253 clipCS4.p1: 17.5°N, 020.0°E\n    test 254 clipCS4.p2: 16.25°N, 015.0°E\n    test 255 clipCS4.i: 2\n    test 256 clipCS4.j: 0\n    test 257 clipLB6.p1: 17.5°N, 020.0°E\n    test 258 clipLB6.p2: 16.25°N, 015.0°E\n    test 259 clipLB6.i: 2\n    test 260 clipLB6.fi: 2.500\n    test 261 clipLB6.fi: 17.5°N, 020.0°E\n    test 262 clipLB6.fj: 2.750\n    test 263 clipLB6.fj: 16.25°N, 015.0°E\n    test 264 clipLB6.j: 0\n    test 265 clipLB6.fin: 3\n    test 266 clipSH1.len: 4\n    test 267 clipSH1.0: 20.0°N, 020.0°E\n    test 268 clipSH1.LL: True\n    test 269 clipSH1.1: 17.5°N, 020.0°E\n    test 270 clipSH1.LL: True\n    test 271 clipSH1.2: 16.25°N, 015.0°E\n    test 272 clipSH1.LL: True\n    test 273 clipSH1.3: 20.0°N, 015.0°E\n    test 274 clipSH1.LL: True\n    test 275 clipSH2.len: 5\n    test 276 clipSH2.0: 18.571°N, 024.286°E\n    test 277 clipSH2.LL: True\n    test 278 clipSH2.1: 16.667°N, 016.667°E\n    test 279 clipSH2.LL: True\n    test 280 clipSH2.2: 20.0°N, 015.0°E\n    test 281 clipSH2.LL: True\n    test 282 clipSH2.3: 25.0°N, 020.0°E\n    test 283 clipSH2.LL: True\n    test 284 clipSH2.4: 22.0°N, 026.0°E\n    test 285 clipSH2.LL: True\n    test 286 clipSH3.len: 2\n    test 287 clipSH3.0: 18.571°N, 024.286°E\n    test 288 clipSH3.LL: True\n    test 289 clipSH3.1: 16.667°N, 016.667°E\n    test 290 clipSH3.LL: True\n    test 291 clipSH3.edge.: True\n    test 292 clipSH3.len: 2\n    test 293 clipSH3.0: 16.667°N, 016.667°E\n    test 294 clipSH3.LL: True\n    test 295 clipSH3.1: 20.0°N, 015.0°E\n    test 296 clipSH3.LL: True\n    test 297 clipSH3.edge.: False\n    test 298 clipSH3.len: 2\n    test 299 clipSH3.0: 20.0°N, 015.0°E\n    test 300 clipSH3.LL: True\n    test 301 clipSH3.1: 25.0°N, 020.0°E\n    test 302 clipSH3.LL: True\n    test 303 clipSH3.edge.: True\n    test 304 clipSH3.len: 2\n    test 305 clipSH3.0: 25.0°N, 020.0°E\n    test 306 clipSH3.LL: True\n    test 307 clipSH3.1: 22.0°N, 026.0°E\n    test 308 clipSH3.LL: True\n    test 309 clipSH3.edge.: True\n    test 310 clipSH3.len: 2\n    test 311 clipSH3.0: 22.0°N, 026.0°E\n    test 312 clipSH3.LL: True\n    test 313 clipSH3.1: 18.571°N, 024.286°E\n    test 314 clipSH3.LL: True\n    test 315 clipSH3.edge.: False\n    test 316 clipSH2.reversed.len: 5\n    test 317 clipSH2.reversed.0: 18.571°N, 024.286°E\n    test 318 clipSH2.reversed.LL: True\n    test 319 clipSH2.reversed.1: 16.667°N, 016.667°E\n    test 320 clipSH2.reversed.LL: True\n    test 321 clipSH2.reversed.2: 20.0°N, 015.0°E\n    test 322 clipSH2.reversed.LL: True\n    test 323 clipSH2.reversed.3: 25.0°N, 020.0°E\n    test 324 clipSH2.reversed.LL: True\n    test 325 clipSH2.reversed.4: 22.0°N, 026.0°E\n    test 326 clipSH2.reversed.LL: True\n    test 327 clipSH3.reversed.len: 2\n    test 328 clipSH3.reversed.0: 18.571°N, 024.286°E\n    test 329 clipSH3.reversed.LL: True\n    test 330 clipSH3.reversed.1: 16.667°N, 016.667°E\n    test 331 clipSH3.reversed.LL: True\n    test 332 clipSH3.edge.reversed.: True\n    test 333 clipSH3.reversed.len: 2\n    test 334 clipSH3.reversed.0: 16.667°N, 016.667°E\n    test 335 clipSH3.reversed.LL: True\n    test 336 clipSH3.reversed.1: 20.0°N, 015.0°E\n    test 337 clipSH3.reversed.LL: True\n    test 338 clipSH3.edge.reversed.: False\n    test 339 clipSH3.reversed.len: 2\n    test 340 clipSH3.reversed.0: 20.0°N, 015.0°E\n    test 341 clipSH3.reversed.LL: True\n    test 342 clipSH3.reversed.1: 25.0°N, 020.0°E\n    test 343 clipSH3.reversed.LL: True\n    test 344 clipSH3.edge.reversed.: True\n    test 345 clipSH3.reversed.len: 2\n    test 346 clipSH3.reversed.0: 25.0°N, 020.0°E\n    test 347 clipSH3.reversed.LL: True\n    test 348 clipSH3.reversed.1: 22.0°N, 026.0°E\n    test 349 clipSH3.reversed.LL: True\n    test 350 clipSH3.edge.reversed.: True\n    test 351 clipSH3.reversed.len: 2\n    test 352 clipSH3.reversed.0: 22.0°N, 026.0°E\n    test 353 clipSH3.reversed.LL: True\n    test 354 clipSH3.reversed.1: 18.571°N, 024.286°E\n    test 355 clipSH3.reversed.LL: True\n    test 356 clipSH3.edge.reversed.: False\n    test 357 clipSH.allout: ()\n    test 358 clipSH3.allout: ()\n    test 359 clipSH.allout.reversed: ()\n    test 360 clipSH3.allout.reversed: ()\n    test 361 clipSH.allin.len: 4\n    test 362 clipSH.allin.0: 20.0°N, 030.0°E\n    test 363 clipSH.allin.LL: True\n    test 364 clipSH.allin.1: 15.0°N, 010.0°E\n    test 365 clipSH.allin.LL: True\n    test 366 clipSH.allin.2: 25.0°N, 020.0°E\n    test 367 clipSH.allin.LL: True\n    test 368 clipSH.allin.3: 20.0°N, 030.0°E\n    test 369 clipSH.allin.LL: True\n    test 370 clipSH3.allin.len: 2\n    test 371 clipSH3.allin.0: 20.0°N, 030.0°E\n    test 372 clipSH3.allin.LL: True\n    test 373 clipSH3.allin.1: 15.0°N, 010.0°E\n    test 374 clipSH3.allin.LL: True\n    test 375 clipSH3.edge.: True\n    test 376 clipSH3.allin.len: 2\n    test 377 clipSH3.allin.0: 15.0°N, 010.0°E\n    test 378 clipSH3.allin.LL: True\n    test 379 clipSH3.allin.1: 25.0°N, 020.0°E\n    test 380 clipSH3.allin.LL: True\n    test 381 clipSH3.edge.: True\n    test 382 clipSH.allin.reversed.len: 4\n    test 383 clipSH.allin.reversed.0: 20.0°N, 030.0°E\n    test 384 clipSH.allin.reversed.LL: True\n    test 385 clipSH.allin.reversed.1: 15.0°N, 010.0°E\n    test 386 clipSH.allin.reversed.LL: True\n    test 387 clipSH.allin.reversed.2: 25.0°N, 020.0°E\n    test 388 clipSH.allin.reversed.LL: True\n    test 389 clipSH.allin.reversed.3: 20.0°N, 030.0°E\n    test 390 clipSH.allin.reversed.LL: True\n    test 391 clipSH3.allin.reversed.len: 2\n    test 392 clipSH3.allin.reversed.0: 20.0°N, 030.0°E\n    test 393 clipSH3.allin.reversed.LL: True\n    test 394 clipSH3.allin.reversed.1: 15.0°N, 010.0°E\n    test 395 clipSH3.allin.reversed.LL: True\n    test 396 clipSH3.edge.reversed.: True\n    test 397 clipSH3.allin.reversed.len: 2\n    test 398 clipSH3.allin.reversed.0: 15.0°N, 010.0°E\n    test 399 clipSH3.allin.reversed.LL: True\n    test 400 clipSH3.allin.reversed.1: 25.0°N, 020.0°E\n    test 401 clipSH3.allin.reversed.LL: True\n    test 402 clipSH3.edge.reversed.: True\n    test 403 clipSH.warped: clipSH clip region ((LatLon(10°00′00.0″N, 010°00′00.0″E), LatLon(20°00′00.0″N, 020°00′00.0″E), LatLon(10°00′00.0″N, 020°00′00.0″E), LatLon(20°00′00.0″N, 010°00′00.0″E))): not convex\n    test 404 clipSH3.warped: clipSH3 clip region ((LatLon(10°00′00.0″N, 010°00′00.0″E), LatLon(20°00′00.0″N, 020°00′00.0″E), LatLon(10°00′00.0″N, 020°00′00.0″E), LatLon(20°00′00.0″N, 010°00′00.0″E))): not convex\n    test 405 clipSH.warpedreversed.: clipSH clip region ((LatLon(20°00′00.0″N, 010°00′00.0″E), LatLon(10°00′00.0″N, 020°00′00.0″E), LatLon(20°00′00.0″N, 020°00′00.0″E), LatLon(10°00′00.0″N, 010°00′00.0″E))): not convex\n    test 406 clipSH3.warpedreversed.: clipSH3 clip region ((LatLon(20°00′00.0″N, 010°00′00.0″E), LatLon(10°00′00.0″N, 020°00′00.0″E), LatLon(20°00′00.0″N, 020°00′00.0″E), LatLon(10°00′00.0″N, 010°00′00.0″E))): not convex\n    test 407 boundsOf: (10.0, 10.0, 20.0, 20.0)\n    test 408 boundsOf: (15.0, 10.0, 25.0, 30.0)\n    test 409 enclosures: (5.0, 0.0, -5.0, -10.0)\n    test 410 overlap: (15.0, 10.0, 20.0, 20.0)\n    test 411 clipSH4: 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 0.0\n    test 412 clipSH5: 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 0.0\n    test 413 clipSH6: 1.0, 0.5, 2.0, 1.0, 2.0, 0.5\n    test 414 clipSH7: -0.2, 2.0, 0.2, 2.0, 0.5, 0.5, 2.0, 0.2, 2.0, -0.2, 0.5, -0.5, 0.2, -2.0, -0.2, -2.0, -0.5, -0.5, -2.0, -0.2, -2.0, 0.2, -0.5, 0.5\n    test 415 clipSH8: -0.33, 1.33, 0.0, 2.0, 0.33, 1.33, 0.5, 0.5, 0.78, 0.44, 1.18, -0.36, 0.5, -0.5, 0.2, -2.0, -0.2, -2.0, -0.5, -0.5, -1.18, -0.36, -0.78, 0.44, -0.5, 0.5\n    test 416 clipSH9: None\n    test 417 clipSH10: None\n    test 418 clipSH11: None\n    test 419 clipSH12: None\n\n    test 420 clipGH4: (ClipGH4Tuple(lat=5.0, lon=3.571429, height=1.714286, clipid=0), ClipGH4Tuple(lat=7.0, lon=5.0, height=2.0, clipid=0), ClipGH4Tuple(lat=5.0, lon=6.428571, height=2.285714, clipid=0), ClipGH4Tuple(lat=3.0, lon=5.0, height=2.0, clipid=0))\n\n    test 421 clipFHP4: (ClipFHP4Tuple(lat=7.0, lon=5.0, height=2.0, clipid=0), ClipFHP4Tuple(lat=5.0, lon=6.428571, height=2.285714, clipid=0), ClipFHP4Tuple(lat=3.0, lon=5.0, height=2.0, clipid=0), ClipFHP4Tuple(lat=5.0, lon=3.571429, height=1.714286, clipid=0))\n\n    test 422 Fig 8: (ClipFHP4Tuple(lat=4.0, lon=12.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=-1.0, lon=12.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=3.0, lon=8.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=5.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=3.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=2.0, lon=1.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=6.0, lon=3.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=6.0, lon=11.0, height=0.0, clipid=0))\n    test 423 Fig 14: (ClipFHP4Tuple(lat=3.0, lon=3.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=0.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=6.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=6.0, lon=6.0, height=0.0, clipid=1), ClipFHP4Tuple(lat=9.0, lon=3.0, height=0.0, clipid=1), ClipFHP4Tuple(lat=6.0, lon=0.0, height=0.0, clipid=1), ClipFHP4Tuple(lat=3.0, lon=3.0, height=0.0, clipid=1))\n    test 424 Fig 15: (ClipFHP4Tuple(lat=1.0, lon=3.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=4.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=2.0, lon=4.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=2.0, lon=0.0, height=0.0, clipid=1), ClipFHP4Tuple(lat=0.0, lon=0.0, height=0.0, clipid=1), ClipFHP4Tuple(lat=1.0, lon=1.0, height=0.0, clipid=1))\n    test 425 Fig 16: (ClipFHP4Tuple(lat=0.0, lon=0.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=1.0, lon=0.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=2.0, lon=2.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=2.0, height=0.0, clipid=0))\n    test 426 Fig 18: ((-10, -10, 0), (-10, -2, 0), (-8, -2, 0), (-8, -8, 0), (-2, -8, 0), (-2, -10, 0), (2, -10, 1), (2, -8, 1), (0, -8, 1), (0, -10, 1), (10, -6, 2), (8, -6, 2), (8, -8, 2), (10, -8, 2), (10, 8, 3), (8, 8, 3), (8, 6, 3), (10, 6, 3), (-6, 10, 4), (-6, 8, 4), (-4, 8, 4), (-4, 10, 4), (-10, 10, 5), (-10, 8, 5), (-8, 8, 5), (-8, 10, 5), (-10, 4, 6), (-8, 4, 6), (-8, 6, 6), (-10, 6, 6), (-10, 0, 7), (-8, 0, 7), (-8, 2, 7), (-10, 2, 7), (-6, 6, 8), (-4, 6, 8), (-4, 4, 8), (-6, 4, 8), (-6, 0, 9), (-4, 0, 9), (-4, 2, 9), (-6, 2, 9), (-6, -6, 10), (-2, -6, 10), (-2, -4, 10), (-4, -4, 10), (-4, -2, 10), (-6, -2, 10), (2, -6, 11), (2, -4, 11), (0, -4, 11), (0, -6, 11), (12, 8, 12), (20, 8, 12), (20, -8, 12), (12, -8, 12), (12, -6, 12), (18, -6, 12), (18, 6, 12), (12, 6, 12), (12, -4, 13), (14, -4, 13), (14, 4, 13), (12, 4, 13))\n\n    testing(pygeodesy.sphericalNvector, 25.05.27)\n    test 427 clipCS4.p1: 07.5°N, 010.0°E\n    test 428 clipCS4.p2: 04.5°N, 000.0°E\n    test 429 clipCS4.i: 3\n    test 430 clipCS4.j: 0\n    test 431 clipCS4.p1: 05.0°N, 005.0°E\n    test 432 clipCS4.p2: 05.0°N, 005.0°E\n    test 433 clipCS4.i: 1\n    test 434 clipCS4.j: 2\n    test 435 clipLB6.p1: 07.5°N, 010.0°E\n    test 436 clipLB6.p2: 04.5°N, 000.0°E\n    test 437 clipLB6.i: 3\n    test 438 clipLB6.fi: 3.25\n    test 439 clipLB6.fi: 07.5°N, 010.0°E\n    test 440 clipLB6.fj: 3.75\n    test 441 clipLB6.fj: 04.5°N, 000.0°E\n    test 442 clipLB6.j: 0\n    test 443 clipLB6.fin: 4\n    test 444 clipLB6.p1: 05.0°N, 005.0°E\n    test 445 clipLB6.p2: 05.0°N, 005.0°E\n    test 446 clipLB6.i: 1\n    test 447 clipLB6.fi: 1.00\n    test 448 clipLB6.fi: 05.0°N, 005.0°E\n    test 449 clipLB6.fj: 2.00\n    test 450 clipLB6.fj: 05.0°N, 005.0°E\n    test 451 clipLB6.j: 2\n    test 452 clipLB6.fin: 4\n    test 453 clipCS4.p1: 60.0°N, 123.333333°E\n    test 454 clipCS4.p2: 62.857143°N, 130.0°E\n    test 455 clipCS4.i: 0\n    test 456 clipCS4.j: 1\n    test 457 clipLB6.p1: 60.0°N, 123.333333°E\n    test 458 clipLB6.p2: 62.857143°N, 130.0°E\n    test 459 clipLB6.i: 0\n    test 460 clipLB6.fi: 0.666667\n    test 461 clipLB6.fi: 60.0°N, 123.333333°E\n    test 462 clipLB6.fj: 0.714286\n    test 463 clipLB6.fj: 62.857143°N, 130.0°E\n    test 464 clipLB6.j: 1\n    test 465 clipLB6.fin: 0\n    test 466 clipCS4.p1: 17.5°N, 020.0°E\n    test 467 clipCS4.p2: 16.25°N, 015.0°E\n    test 468 clipCS4.i: 2\n    test 469 clipCS4.j: 0\n    test 470 clipLB6.p1: 17.5°N, 020.0°E\n    test 471 clipLB6.p2: 16.25°N, 015.0°E\n    test 472 clipLB6.i: 2\n    test 473 clipLB6.fi: 2.500\n    test 474 clipLB6.fi: 17.5°N, 020.0°E\n    test 475 clipLB6.fj: 2.750\n    test 476 clipLB6.fj: 16.25°N, 015.0°E\n    test 477 clipLB6.j: 0\n    test 478 clipLB6.fin: 3\n    test 479 clipSH1.len: 4\n    test 480 clipSH1.0: 20.0°N, 020.0°E\n    test 481 clipSH1.LL: True\n    test 482 clipSH1.1: 17.5°N, 020.0°E\n    test 483 clipSH1.LL: True\n    test 484 clipSH1.2: 16.25°N, 015.0°E\n    test 485 clipSH1.LL: True\n    test 486 clipSH1.3: 20.0°N, 015.0°E\n    test 487 clipSH1.LL: True\n    test 488 clipSH2.len: 5\n    test 489 clipSH2.0: 18.571°N, 024.286°E\n    test 490 clipSH2.LL: True\n    test 491 clipSH2.1: 16.667°N, 016.667°E\n    test 492 clipSH2.LL: True\n    test 493 clipSH2.2: 20.0°N, 015.0°E\n    test 494 clipSH2.LL: True\n    test 495 clipSH2.3: 25.0°N, 020.0°E\n    test 496 clipSH2.LL: True\n    test 497 clipSH2.4: 22.0°N, 026.0°E\n    test 498 clipSH2.LL: True\n    test 499 clipSH3.len: 2\n    test 500 clipSH3.0: 18.571°N, 024.286°E\n    test 501 clipSH3.LL: True\n    test 502 clipSH3.1: 16.667°N, 016.667°E\n    test 503 clipSH3.LL: True\n    test 504 clipSH3.edge.: True\n    test 505 clipSH3.len: 2\n    test 506 clipSH3.0: 16.667°N, 016.667°E\n    test 507 clipSH3.LL: True\n    test 508 clipSH3.1: 20.0°N, 015.0°E\n    test 509 clipSH3.LL: True\n    test 510 clipSH3.edge.: False\n    test 511 clipSH3.len: 2\n    test 512 clipSH3.0: 20.0°N, 015.0°E\n    test 513 clipSH3.LL: True\n    test 514 clipSH3.1: 25.0°N, 020.0°E\n    test 515 clipSH3.LL: True\n    test 516 clipSH3.edge.: True\n    test 517 clipSH3.len: 2\n    test 518 clipSH3.0: 25.0°N, 020.0°E\n    test 519 clipSH3.LL: True\n    test 520 clipSH3.1: 22.0°N, 026.0°E\n    test 521 clipSH3.LL: True\n    test 522 clipSH3.edge.: True\n    test 523 clipSH3.len: 2\n    test 524 clipSH3.0: 22.0°N, 026.0°E\n    test 525 clipSH3.LL: True\n    test 526 clipSH3.1: 18.571°N, 024.286°E\n    test 527 clipSH3.LL: True\n    test 528 clipSH3.edge.: False\n    test 529 clipSH2.reversed.len: 5\n    test 530 clipSH2.reversed.0: 18.571°N, 024.286°E\n    test 531 clipSH2.reversed.LL: True\n    test 532 clipSH2.reversed.1: 16.667°N, 016.667°E\n    test 533 clipSH2.reversed.LL: True\n    test 534 clipSH2.reversed.2: 20.0°N, 015.0°E\n    test 535 clipSH2.reversed.LL: True\n    test 536 clipSH2.reversed.3: 25.0°N, 020.0°E\n    test 537 clipSH2.reversed.LL: True\n    test 538 clipSH2.reversed.4: 22.0°N, 026.0°E\n    test 539 clipSH2.reversed.LL: True\n    test 540 clipSH3.reversed.len: 2\n    test 541 clipSH3.reversed.0: 18.571°N, 024.286°E\n    test 542 clipSH3.reversed.LL: True\n    test 543 clipSH3.reversed.1: 16.667°N, 016.667°E\n    test 544 clipSH3.reversed.LL: True\n    test 545 clipSH3.edge.reversed.: True\n    test 546 clipSH3.reversed.len: 2\n    test 547 clipSH3.reversed.0: 16.667°N, 016.667°E\n    test 548 clipSH3.reversed.LL: True\n    test 549 clipSH3.reversed.1: 20.0°N, 015.0°E\n    test 550 clipSH3.reversed.LL: True\n    test 551 clipSH3.edge.reversed.: False\n    test 552 clipSH3.reversed.len: 2\n    test 553 clipSH3.reversed.0: 20.0°N, 015.0°E\n    test 554 clipSH3.reversed.LL: True\n    test 555 clipSH3.reversed.1: 25.0°N, 020.0°E\n    test 556 clipSH3.reversed.LL: True\n    test 557 clipSH3.edge.reversed.: True\n    test 558 clipSH3.reversed.len: 2\n    test 559 clipSH3.reversed.0: 25.0°N, 020.0°E\n    test 560 clipSH3.reversed.LL: True\n    test 561 clipSH3.reversed.1: 22.0°N, 026.0°E\n    test 562 clipSH3.reversed.LL: True\n    test 563 clipSH3.edge.reversed.: True\n    test 564 clipSH3.reversed.len: 2\n    test 565 clipSH3.reversed.0: 22.0°N, 026.0°E\n    test 566 clipSH3.reversed.LL: True\n    test 567 clipSH3.reversed.1: 18.571°N, 024.286°E\n    test 568 clipSH3.reversed.LL: True\n    test 569 clipSH3.edge.reversed.: False\n    test 570 clipSH.allout: ()\n    test 571 clipSH3.allout: ()\n    test 572 clipSH.allout.reversed: ()\n    test 573 clipSH3.allout.reversed: ()\n    test 574 clipSH.allin.len: 4\n    test 575 clipSH.allin.0: 20.0°N, 030.0°E\n    test 576 clipSH.allin.LL: True\n    test 577 clipSH.allin.1: 15.0°N, 010.0°E\n    test 578 clipSH.allin.LL: True\n    test 579 clipSH.allin.2: 25.0°N, 020.0°E\n    test 580 clipSH.allin.LL: True\n    test 581 clipSH.allin.3: 20.0°N, 030.0°E\n    test 582 clipSH.allin.LL: True\n    test 583 clipSH3.allin.len: 2\n    test 584 clipSH3.allin.0: 20.0°N, 030.0°E\n    test 585 clipSH3.allin.LL: True\n    test 586 clipSH3.allin.1: 15.0°N, 010.0°E\n    test 587 clipSH3.allin.LL: True\n    test 588 clipSH3.edge.: True\n    test 589 clipSH3.allin.len: 2\n    test 590 clipSH3.allin.0: 15.0°N, 010.0°E\n    test 591 clipSH3.allin.LL: True\n    test 592 clipSH3.allin.1: 25.0°N, 020.0°E\n    test 593 clipSH3.allin.LL: True\n    test 594 clipSH3.edge.: True\n    test 595 clipSH.allin.reversed.len: 4\n    test 596 clipSH.allin.reversed.0: 20.0°N, 030.0°E\n    test 597 clipSH.allin.reversed.LL: True\n    test 598 clipSH.allin.reversed.1: 15.0°N, 010.0°E\n    test 599 clipSH.allin.reversed.LL: True\n    test 600 clipSH.allin.reversed.2: 25.0°N, 020.0°E\n    test 601 clipSH.allin.reversed.LL: True\n    test 602 clipSH.allin.reversed.3: 20.0°N, 030.0°E\n    test 603 clipSH.allin.reversed.LL: True\n    test 604 clipSH3.allin.reversed.len: 2\n    test 605 clipSH3.allin.reversed.0: 20.0°N, 030.0°E\n    test 606 clipSH3.allin.reversed.LL: True\n    test 607 clipSH3.allin.reversed.1: 15.0°N, 010.0°E\n    test 608 clipSH3.allin.reversed.LL: True\n    test 609 clipSH3.edge.reversed.: True\n    test 610 clipSH3.allin.reversed.len: 2\n    test 611 clipSH3.allin.reversed.0: 15.0°N, 010.0°E\n    test 612 clipSH3.allin.reversed.LL: True\n    test 613 clipSH3.allin.reversed.1: 25.0°N, 020.0°E\n    test 614 clipSH3.allin.reversed.LL: True\n    test 615 clipSH3.edge.reversed.: True\n    test 616 clipSH.warped: clipSH clip region ((LatLon(10°00′00.0″N, 010°00′00.0″E), LatLon(20°00′00.0″N, 020°00′00.0″E), LatLon(10°00′00.0″N, 020°00′00.0″E), LatLon(20°00′00.0″N, 010°00′00.0″E))): not convex\n    test 617 clipSH3.warped: clipSH3 clip region ((LatLon(10°00′00.0″N, 010°00′00.0″E), LatLon(20°00′00.0″N, 020°00′00.0″E), LatLon(10°00′00.0″N, 020°00′00.0″E), LatLon(20°00′00.0″N, 010°00′00.0″E))): not convex\n    test 618 clipSH.warpedreversed.: clipSH clip region ((LatLon(20°00′00.0″N, 010°00′00.0″E), LatLon(10°00′00.0″N, 020°00′00.0″E), LatLon(20°00′00.0″N, 020°00′00.0″E), LatLon(10°00′00.0″N, 010°00′00.0″E))): not convex\n    test 619 clipSH3.warpedreversed.: clipSH3 clip region ((LatLon(20°00′00.0″N, 010°00′00.0″E), LatLon(10°00′00.0″N, 020°00′00.0″E), LatLon(20°00′00.0″N, 020°00′00.0″E), LatLon(10°00′00.0″N, 010°00′00.0″E))): not convex\n    test 620 boundsOf: (10.0, 10.0, 20.0, 20.0)\n    test 621 boundsOf: (15.0, 10.0, 25.0, 30.0)\n    test 622 enclosures: (5.0, 0.0, -5.0, -10.0)\n    test 623 overlap: (15.0, 10.0, 20.0, 20.0)\n    test 624 clipSH4: 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 0.0\n    test 625 clipSH5: 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 0.0\n    test 626 clipSH6: 1.0, 0.5, 2.0, 1.0, 2.0, 0.5\n    test 627 clipSH7: -0.2, 2.0, 0.2, 2.0, 0.5, 0.5, 2.0, 0.2, 2.0, -0.2, 0.5, -0.5, 0.2, -2.0, -0.2, -2.0, -0.5, -0.5, -2.0, -0.2, -2.0, 0.2, -0.5, 0.5\n    test 628 clipSH8: -0.33, 1.33, 0.0, 2.0, 0.33, 1.33, 0.5, 0.5, 0.78, 0.44, 1.18, -0.36, 0.5, -0.5, 0.2, -2.0, -0.2, -2.0, -0.5, -0.5, -1.18, -0.36, -0.78, 0.44, -0.5, 0.5\n    test 629 clipSH9: None\n    test 630 clipSH10: None\n    test 631 clipSH11: None\n    test 632 clipSH12: None\n\n    test 633 clipGH4: (ClipGH4Tuple(lat=5.0, lon=3.571429, height=1.714286, clipid=0), ClipGH4Tuple(lat=7.0, lon=5.0, height=2.0, clipid=0), ClipGH4Tuple(lat=5.0, lon=6.428571, height=2.285714, clipid=0), ClipGH4Tuple(lat=3.0, lon=5.0, height=2.0, clipid=0))\n\n    test 634 clipFHP4: (ClipFHP4Tuple(lat=7.0, lon=5.0, height=2.0, clipid=0), ClipFHP4Tuple(lat=5.0, lon=6.428571, height=2.285714, clipid=0), ClipFHP4Tuple(lat=3.0, lon=5.0, height=2.0, clipid=0), ClipFHP4Tuple(lat=5.0, lon=3.571429, height=1.714286, clipid=0))\n\n    test 635 Fig 8: (ClipFHP4Tuple(lat=4.0, lon=12.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=-1.0, lon=12.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=3.0, lon=8.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=5.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=3.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=2.0, lon=1.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=6.0, lon=3.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=6.0, lon=11.0, height=0.0, clipid=0))\n    test 636 Fig 14: (ClipFHP4Tuple(lat=3.0, lon=3.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=0.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=6.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=6.0, lon=6.0, height=0.0, clipid=1), ClipFHP4Tuple(lat=9.0, lon=3.0, height=0.0, clipid=1), ClipFHP4Tuple(lat=6.0, lon=0.0, height=0.0, clipid=1), ClipFHP4Tuple(lat=3.0, lon=3.0, height=0.0, clipid=1))\n    test 637 Fig 15: (ClipFHP4Tuple(lat=1.0, lon=3.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=4.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=2.0, lon=4.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=2.0, lon=0.0, height=0.0, clipid=1), ClipFHP4Tuple(lat=0.0, lon=0.0, height=0.0, clipid=1), ClipFHP4Tuple(lat=1.0, lon=1.0, height=0.0, clipid=1))\n    test 638 Fig 16: (ClipFHP4Tuple(lat=0.0, lon=0.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=1.0, lon=0.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=2.0, lon=2.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=2.0, height=0.0, clipid=0))\n    test 639 Fig 18: ((-10, -10, 0), (-10, -2, 0), (-8, -2, 0), (-8, -8, 0), (-2, -8, 0), (-2, -10, 0), (2, -10, 1), (2, -8, 1), (0, -8, 1), (0, -10, 1), (10, -6, 2), (8, -6, 2), (8, -8, 2), (10, -8, 2), (10, 8, 3), (8, 8, 3), (8, 6, 3), (10, 6, 3), (-6, 10, 4), (-6, 8, 4), (-4, 8, 4), (-4, 10, 4), (-10, 10, 5), (-10, 8, 5), (-8, 8, 5), (-8, 10, 5), (-10, 4, 6), (-8, 4, 6), (-8, 6, 6), (-10, 6, 6), (-10, 0, 7), (-8, 0, 7), (-8, 2, 7), (-10, 2, 7), (-6, 6, 8), (-4, 6, 8), (-4, 4, 8), (-6, 4, 8), (-6, 0, 9), (-4, 0, 9), (-4, 2, 9), (-6, 2, 9), (-6, -6, 10), (-2, -6, 10), (-2, -4, 10), (-4, -4, 10), (-4, -2, 10), (-6, -2, 10), (2, -6, 11), (2, -4, 11), (0, -4, 11), (0, -6, 11), (12, 8, 12), (20, 8, 12), (20, -8, 12), (12, -8, 12), (12, -6, 12), (18, -6, 12), (18, 6, 12), (12, 6, 12), (12, -4, 13), (14, -4, 13), (14, 4, 13), (12, 4, 13))\n\n    testing(pygeodesy.sphericalTrigonometry, 25.08.31)\n    test 640 clipCS4.p1: 07.5°N, 010.0°E\n    test 641 clipCS4.p2: 04.5°N, 000.0°E\n    test 642 clipCS4.i: 3\n    test 643 clipCS4.j: 0\n    test 644 clipCS4.p1: 05.0°N, 005.0°E\n    test 645 clipCS4.p2: 05.0°N, 005.0°E\n    test 646 clipCS4.i: 1\n    test 647 clipCS4.j: 2\n    test 648 clipLB6.p1: 07.5°N, 010.0°E\n    test 649 clipLB6.p2: 04.5°N, 000.0°E\n    test 650 clipLB6.i: 3\n    test 651 clipLB6.fi: 3.25\n    test 652 clipLB6.fi: 07.5°N, 010.0°E\n    test 653 clipLB6.fj: 3.75\n    test 654 clipLB6.fj: 04.5°N, 000.0°E\n    test 655 clipLB6.j: 0\n    test 656 clipLB6.fin: 4\n    test 657 clipLB6.p1: 05.0°N, 005.0°E\n    test 658 clipLB6.p2: 05.0°N, 005.0°E\n    test 659 clipLB6.i: 1\n    test 660 clipLB6.fi: 1.00\n    test 661 clipLB6.fi: 05.0°N, 005.0°E\n    test 662 clipLB6.fj: 2.00\n    test 663 clipLB6.fj: 05.0°N, 005.0°E\n    test 664 clipLB6.j: 2\n    test 665 clipLB6.fin: 4\n    test 666 clipCS4.p1: 60.0°N, 123.333333°E\n    test 667 clipCS4.p2: 62.857143°N, 130.0°E\n    test 668 clipCS4.i: 0\n    test 669 clipCS4.j: 1\n    test 670 clipLB6.p1: 60.0°N, 123.333333°E\n    test 671 clipLB6.p2: 62.857143°N, 130.0°E\n    test 672 clipLB6.i: 0\n    test 673 clipLB6.fi: 0.666667\n    test 674 clipLB6.fi: 60.0°N, 123.333333°E\n    test 675 clipLB6.fj: 0.714286\n    test 676 clipLB6.fj: 62.857143°N, 130.0°E\n    test 677 clipLB6.j: 1\n    test 678 clipLB6.fin: 0\n    test 679 clipCS4.p1: 17.5°N, 020.0°E\n    test 680 clipCS4.p2: 16.25°N, 015.0°E\n    test 681 clipCS4.i: 2\n    test 682 clipCS4.j: 0\n    test 683 clipLB6.p1: 17.5°N, 020.0°E\n    test 684 clipLB6.p2: 16.25°N, 015.0°E\n    test 685 clipLB6.i: 2\n    test 686 clipLB6.fi: 2.500\n    test 687 clipLB6.fi: 17.5°N, 020.0°E\n    test 688 clipLB6.fj: 2.750\n    test 689 clipLB6.fj: 16.25°N, 015.0°E\n    test 690 clipLB6.j: 0\n    test 691 clipLB6.fin: 3\n    test 692 clipSH1.len: 4\n    test 693 clipSH1.0: 20.0°N, 020.0°E\n    test 694 clipSH1.LL: True\n    test 695 clipSH1.1: 17.5°N, 020.0°E\n    test 696 clipSH1.LL: True\n    test 697 clipSH1.2: 16.25°N, 015.0°E\n    test 698 clipSH1.LL: True\n    test 699 clipSH1.3: 20.0°N, 015.0°E\n    test 700 clipSH1.LL: True\n    test 701 clipSH2.len: 5\n    test 702 clipSH2.0: 18.571°N, 024.286°E\n    test 703 clipSH2.LL: True\n    test 704 clipSH2.1: 16.667°N, 016.667°E\n    test 705 clipSH2.LL: True\n    test 706 clipSH2.2: 20.0°N, 015.0°E\n    test 707 clipSH2.LL: True\n    test 708 clipSH2.3: 25.0°N, 020.0°E\n    test 709 clipSH2.LL: True\n    test 710 clipSH2.4: 22.0°N, 026.0°E\n    test 711 clipSH2.LL: True\n    test 712 clipSH3.len: 2\n    test 713 clipSH3.0: 18.571°N, 024.286°E\n    test 714 clipSH3.LL: True\n    test 715 clipSH3.1: 16.667°N, 016.667°E\n    test 716 clipSH3.LL: True\n    test 717 clipSH3.edge.: True\n    test 718 clipSH3.len: 2\n    test 719 clipSH3.0: 16.667°N, 016.667°E\n    test 720 clipSH3.LL: True\n    test 721 clipSH3.1: 20.0°N, 015.0°E\n    test 722 clipSH3.LL: True\n    test 723 clipSH3.edge.: False\n    test 724 clipSH3.len: 2\n    test 725 clipSH3.0: 20.0°N, 015.0°E\n    test 726 clipSH3.LL: True\n    test 727 clipSH3.1: 25.0°N, 020.0°E\n    test 728 clipSH3.LL: True\n    test 729 clipSH3.edge.: True\n    test 730 clipSH3.len: 2\n    test 731 clipSH3.0: 25.0°N, 020.0°E\n    test 732 clipSH3.LL: True\n    test 733 clipSH3.1: 22.0°N, 026.0°E\n    test 734 clipSH3.LL: True\n    test 735 clipSH3.edge.: True\n    test 736 clipSH3.len: 2\n    test 737 clipSH3.0: 22.0°N, 026.0°E\n    test 738 clipSH3.LL: True\n    test 739 clipSH3.1: 18.571°N, 024.286°E\n    test 740 clipSH3.LL: True\n    test 741 clipSH3.edge.: False\n    test 742 clipSH2.reversed.len: 5\n    test 743 clipSH2.reversed.0: 18.571°N, 024.286°E\n    test 744 clipSH2.reversed.LL: True\n    test 745 clipSH2.reversed.1: 16.667°N, 016.667°E\n    test 746 clipSH2.reversed.LL: True\n    test 747 clipSH2.reversed.2: 20.0°N, 015.0°E\n    test 748 clipSH2.reversed.LL: True\n    test 749 clipSH2.reversed.3: 25.0°N, 020.0°E\n    test 750 clipSH2.reversed.LL: True\n    test 751 clipSH2.reversed.4: 22.0°N, 026.0°E\n    test 752 clipSH2.reversed.LL: True\n    test 753 clipSH3.reversed.len: 2\n    test 754 clipSH3.reversed.0: 18.571°N, 024.286°E\n    test 755 clipSH3.reversed.LL: True\n    test 756 clipSH3.reversed.1: 16.667°N, 016.667°E\n    test 757 clipSH3.reversed.LL: True\n    test 758 clipSH3.edge.reversed.: True\n    test 759 clipSH3.reversed.len: 2\n    test 760 clipSH3.reversed.0: 16.667°N, 016.667°E\n    test 761 clipSH3.reversed.LL: True\n    test 762 clipSH3.reversed.1: 20.0°N, 015.0°E\n    test 763 clipSH3.reversed.LL: True\n    test 764 clipSH3.edge.reversed.: False\n    test 765 clipSH3.reversed.len: 2\n    test 766 clipSH3.reversed.0: 20.0°N, 015.0°E\n    test 767 clipSH3.reversed.LL: True\n    test 768 clipSH3.reversed.1: 25.0°N, 020.0°E\n    test 769 clipSH3.reversed.LL: True\n    test 770 clipSH3.edge.reversed.: True\n    test 771 clipSH3.reversed.len: 2\n    test 772 clipSH3.reversed.0: 25.0°N, 020.0°E\n    test 773 clipSH3.reversed.LL: True\n    test 774 clipSH3.reversed.1: 22.0°N, 026.0°E\n    test 775 clipSH3.reversed.LL: True\n    test 776 clipSH3.edge.reversed.: True\n    test 777 clipSH3.reversed.len: 2\n    test 778 clipSH3.reversed.0: 22.0°N, 026.0°E\n    test 779 clipSH3.reversed.LL: True\n    test 780 clipSH3.reversed.1: 18.571°N, 024.286°E\n    test 781 clipSH3.reversed.LL: True\n    test 782 clipSH3.edge.reversed.: False\n    test 783 clipSH.allout: ()\n    test 784 clipSH3.allout: ()\n    test 785 clipSH.allout.reversed: ()\n    test 786 clipSH3.allout.reversed: ()\n    test 787 clipSH.allin.len: 4\n    test 788 clipSH.allin.0: 20.0°N, 030.0°E\n    test 789 clipSH.allin.LL: True\n    test 790 clipSH.allin.1: 15.0°N, 010.0°E\n    test 791 clipSH.allin.LL: True\n    test 792 clipSH.allin.2: 25.0°N, 020.0°E\n    test 793 clipSH.allin.LL: True\n    test 794 clipSH.allin.3: 20.0°N, 030.0°E\n    test 795 clipSH.allin.LL: True\n    test 796 clipSH3.allin.len: 2\n    test 797 clipSH3.allin.0: 20.0°N, 030.0°E\n    test 798 clipSH3.allin.LL: True\n    test 799 clipSH3.allin.1: 15.0°N, 010.0°E\n    test 800 clipSH3.allin.LL: True\n    test 801 clipSH3.edge.: True\n    test 802 clipSH3.allin.len: 2\n    test 803 clipSH3.allin.0: 15.0°N, 010.0°E\n    test 804 clipSH3.allin.LL: True\n    test 805 clipSH3.allin.1: 25.0°N, 020.0°E\n    test 806 clipSH3.allin.LL: True\n    test 807 clipSH3.edge.: True\n    test 808 clipSH.allin.reversed.len: 4\n    test 809 clipSH.allin.reversed.0: 20.0°N, 030.0°E\n    test 810 clipSH.allin.reversed.LL: True\n    test 811 clipSH.allin.reversed.1: 15.0°N, 010.0°E\n    test 812 clipSH.allin.reversed.LL: True\n    test 813 clipSH.allin.reversed.2: 25.0°N, 020.0°E\n    test 814 clipSH.allin.reversed.LL: True\n    test 815 clipSH.allin.reversed.3: 20.0°N, 030.0°E\n    test 816 clipSH.allin.reversed.LL: True\n    test 817 clipSH3.allin.reversed.len: 2\n    test 818 clipSH3.allin.reversed.0: 20.0°N, 030.0°E\n    test 819 clipSH3.allin.reversed.LL: True\n    test 820 clipSH3.allin.reversed.1: 15.0°N, 010.0°E\n    test 821 clipSH3.allin.reversed.LL: True\n    test 822 clipSH3.edge.reversed.: True\n    test 823 clipSH3.allin.reversed.len: 2\n    test 824 clipSH3.allin.reversed.0: 15.0°N, 010.0°E\n    test 825 clipSH3.allin.reversed.LL: True\n    test 826 clipSH3.allin.reversed.1: 25.0°N, 020.0°E\n    test 827 clipSH3.allin.reversed.LL: True\n    test 828 clipSH3.edge.reversed.: True\n    test 829 clipSH.warped: clipSH clip region ((LatLon(10°00′00.0″N, 010°00′00.0″E), LatLon(20°00′00.0″N, 020°00′00.0″E), LatLon(10°00′00.0″N, 020°00′00.0″E), LatLon(20°00′00.0″N, 010°00′00.0″E))): not convex\n    test 830 clipSH3.warped: clipSH3 clip region ((LatLon(10°00′00.0″N, 010°00′00.0″E), LatLon(20°00′00.0″N, 020°00′00.0″E), LatLon(10°00′00.0″N, 020°00′00.0″E), LatLon(20°00′00.0″N, 010°00′00.0″E))): not convex\n    test 831 clipSH.warpedreversed.: clipSH clip region ((LatLon(20°00′00.0″N, 010°00′00.0″E), LatLon(10°00′00.0″N, 020°00′00.0″E), LatLon(20°00′00.0″N, 020°00′00.0″E), LatLon(10°00′00.0″N, 010°00′00.0″E))): not convex\n    test 832 clipSH3.warpedreversed.: clipSH3 clip region ((LatLon(20°00′00.0″N, 010°00′00.0″E), LatLon(10°00′00.0″N, 020°00′00.0″E), LatLon(20°00′00.0″N, 020°00′00.0″E), LatLon(10°00′00.0″N, 010°00′00.0″E))): not convex\n    test 833 boundsOf: (10.0, 10.0, 20.0, 20.0)\n    test 834 boundsOf: (15.0, 10.0, 25.0, 30.0)\n    test 835 enclosures: (5.0, 0.0, -5.0, -10.0)\n    test 836 overlap: (15.0, 10.0, 20.0, 20.0)\n    test 837 clipSH4: 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 0.0\n    test 838 clipSH5: 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 0.0\n    test 839 clipSH6: 1.0, 0.5, 2.0, 1.0, 2.0, 0.5\n    test 840 clipSH7: -0.2, 2.0, 0.2, 2.0, 0.5, 0.5, 2.0, 0.2, 2.0, -0.2, 0.5, -0.5, 0.2, -2.0, -0.2, -2.0, -0.5, -0.5, -2.0, -0.2, -2.0, 0.2, -0.5, 0.5\n    test 841 clipSH8: -0.33, 1.33, 0.0, 2.0, 0.33, 1.33, 0.5, 0.5, 0.78, 0.44, 1.18, -0.36, 0.5, -0.5, 0.2, -2.0, -0.2, -2.0, -0.5, -0.5, -1.18, -0.36, -0.78, 0.44, -0.5, 0.5\n    test 842 clipSH9: None\n    test 843 clipSH10: None\n    test 844 clipSH11: None\n    test 845 clipSH12: None\n\n    test 846 clipGH4: (ClipGH4Tuple(lat=5.0, lon=3.571429, height=1.714286, clipid=0), ClipGH4Tuple(lat=7.0, lon=5.0, height=2.0, clipid=0), ClipGH4Tuple(lat=5.0, lon=6.428571, height=2.285714, clipid=0), ClipGH4Tuple(lat=3.0, lon=5.0, height=2.0, clipid=0))\n\n    test 847 clipFHP4: (ClipFHP4Tuple(lat=7.0, lon=5.0, height=2.0, clipid=0), ClipFHP4Tuple(lat=5.0, lon=6.428571, height=2.285714, clipid=0), ClipFHP4Tuple(lat=3.0, lon=5.0, height=2.0, clipid=0), ClipFHP4Tuple(lat=5.0, lon=3.571429, height=1.714286, clipid=0))\n\n    test 848 Fig 8: (ClipFHP4Tuple(lat=4.0, lon=12.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=-1.0, lon=12.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=3.0, lon=8.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=5.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=3.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=2.0, lon=1.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=6.0, lon=3.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=6.0, lon=11.0, height=0.0, clipid=0))\n    test 849 Fig 14: (ClipFHP4Tuple(lat=3.0, lon=3.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=0.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=6.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=6.0, lon=6.0, height=0.0, clipid=1), ClipFHP4Tuple(lat=9.0, lon=3.0, height=0.0, clipid=1), ClipFHP4Tuple(lat=6.0, lon=0.0, height=0.0, clipid=1), ClipFHP4Tuple(lat=3.0, lon=3.0, height=0.0, clipid=1))\n    test 850 Fig 15: (ClipFHP4Tuple(lat=1.0, lon=3.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=4.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=2.0, lon=4.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=2.0, lon=0.0, height=0.0, clipid=1), ClipFHP4Tuple(lat=0.0, lon=0.0, height=0.0, clipid=1), ClipFHP4Tuple(lat=1.0, lon=1.0, height=0.0, clipid=1))\n    test 851 Fig 16: (ClipFHP4Tuple(lat=0.0, lon=0.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=1.0, lon=0.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=2.0, lon=2.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=2.0, height=0.0, clipid=0))\n    test 852 Fig 18: ((-10, -10, 0), (-10, -2, 0), (-8, -2, 0), (-8, -8, 0), (-2, -8, 0), (-2, -10, 0), (2, -10, 1), (2, -8, 1), (0, -8, 1), (0, -10, 1), (10, -6, 2), (8, -6, 2), (8, -8, 2), (10, -8, 2), (10, 8, 3), (8, 8, 3), (8, 6, 3), (10, 6, 3), (-6, 10, 4), (-6, 8, 4), (-4, 8, 4), (-4, 10, 4), (-10, 10, 5), (-10, 8, 5), (-8, 8, 5), (-8, 10, 5), (-10, 4, 6), (-8, 4, 6), (-8, 6, 6), (-10, 6, 6), (-10, 0, 7), (-8, 0, 7), (-8, 2, 7), (-10, 2, 7), (-6, 6, 8), (-4, 6, 8), (-4, 4, 8), (-6, 4, 8), (-6, 0, 9), (-4, 0, 9), (-4, 2, 9), (-6, 2, 9), (-6, -6, 10), (-2, -6, 10), (-2, -4, 10), (-4, -4, 10), (-4, -2, 10), (-6, -2, 10), (2, -6, 11), (2, -4, 11), (0, -4, 11), (0, -6, 11), (12, 8, 12), (20, 8, 12), (20, -8, 12), (12, -8, 12), (12, -6, 12), (18, -6, 12), (18, 6, 12), (12, 6, 12), (12, -4, 13), (14, -4, 13), (14, 4, 13), (12, 4, 13))\n\n    all 852 testClipy.py tests passed (pygeodesy 26.3.26 PyPy 7.3.17 Python 3.10.14 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 364.016 ms\nrunning /opt/local/bin/p....y3.10 -W default ~/PyGeodesy/test/testConstants.py\n# lazily imported pygeodesy.basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.DeprecationWarnings from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isint from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isLazy from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.issubclassof from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.iterNumpy2over from .iters by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.LazyImportError from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.karney by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.NN from .interns by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.normDMS from .dms by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.pairs from .streprs by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.printf from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.property_RO from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.typename from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.Float from .unitsBase by testConstants.py line 11\n# lazily imported pygeodesy.Int from .unitsBase by testConstants.py line 11\n# lazily imported pygeodesy.Radius from .unitsBase by testConstants.py line 11\n# lazily imported pygeodesy.float_ from .constants by testConstants.py line 11\n# lazily imported pygeodesy.floats_ from .constants by testConstants.py line 11\n# lazily imported pygeodesy.isinf from .constants by testConstants.py line 11\n# lazily imported pygeodesy.isint0 from .constants by testConstants.py line 11\n# lazily imported pygeodesy.isnan from .constants by testConstants.py line 11\n# lazily imported pygeodesy.EPS from .constants by testConstants.py line 11\n# lazily imported pygeodesy.EPS0 from .constants by testConstants.py line 11\n# lazily imported pygeodesy.EPS02 from .constants by testConstants.py line 11\n# lazily imported pygeodesy.EPS1 from .constants by testConstants.py line 11\n# lazily imported pygeodesy.EPS2 from .constants by testConstants.py line 11\n# lazily imported pygeodesy.EPS_2 from .constants by testConstants.py line 11\n# lazily imported pygeodesy.EPS4 from .constants by testConstants.py line 11\n# lazily imported pygeodesy.INF from .constants by testConstants.py line 11\n# lazily imported pygeodesy.INT0 from .constants by testConstants.py line 11\n# lazily imported pygeodesy.NAN from .constants by testConstants.py line 11\n# lazily imported pygeodesy.NEG0 from .constants by testConstants.py line 11\n# lazily imported pygeodesy.NINF from .constants by testConstants.py line 11\n\n    testing testConstants.py 25.10.15 (module pygeodesy.constants 26.02.09) isLazy=3\n    test 1 _0_0: 0.0\n    test 2 _0_0001: 0.0001\n    test 3 _0_001: 0.001\n    test 4 _0_01: 0.01\n    test 5 _0_1: 0.1\n    test 6 _0_125: 0.125\n    test 7 _0_25: 0.25\n    test 8 _0_5: 0.5\n    test 9 _0_75: 0.75\n    test 10 _1000_0: 1000.0\n    test 11 _100_0: 100.0\n    test 12 _10_0: 10.0\n    test 13 _16_0: 16.0\n    test 14 _180_0: 180.0\n    test 15 _1_0: 1.0\n    test 16 _1_3rd: 0.3333333333333333  FAILED, KNOWN, expected 1.3rd\n    test 17 _1_5: 1.5\n    test 18 _1_75: 1.75\n\n    test 19 _1_EPS: _1_EPS (4.50359962737e+15)\n    test 20 _1_EPS: _1_EPS\n    test 21 _270_0: 270.0\n    test 22 _2_0: 2.0\n    test 23 _2_3rd: 0.6666666666666666  FAILED, KNOWN, expected 2.3rd\n\n    test 24 _2__PI: _2__PI (0.636619772368)\n    test 25 _2__PI: _2__PI\n    test 26 _32_0: 32.0\n    test 27 _3600_0: 3600.0\n    test 28 _360_0: 360.0\n    test 29 _3_0: 3.0\n    test 30 _45_0: 45.0\n    test 31 _4_0: 4.0\n    test 32 _5_0: 5.0\n    test 33 _60_0: 60.0\n    test 34 _64_0: 64.0\n    test 35 _6_0: 6.0\n    test 36 _720_0: 720.0\n\n    test 37 _89_999: _89_999 (90.0)\n    test 38 _89_999: _89_999\n    test 39 _8_0: 8.0\n    test 40 _90_0: 90.0\n    test 41 _9_0: 9.0\n\n    test 42 _EPS2e4: _EPS2e4 (4.4408920985e-12)\n    test 43 _EPS2e4: _EPS2e4\n\n    test 44 _EPS4e8: _EPS4e8 (8.881784197e-08)\n    test 45 _EPS4e8: _EPS4e8\n\n    test 46 _EPSjam: _EPSjam (1.81898940355e-12)\n    test 47 _EPSjam: _EPSjam\n\n    test 48 _EPSmin: _EPSmin (1.49166814624e-154)\n    test 49 _EPSmin: _EPSmin\n\n    test 50 _EPSqrt: _EPSqrt (1.49011611938e-08)\n    test 51 _EPSqrt: _EPSqrt\n\n    test 52 _EPStol: _EPStol (1.49011611938e-09)\n    test 53 _EPStol: _EPStol\n    test 54 _inf: inf\n\n    test 55 _K0_UPS: _K0_UPS (0.994)\n    test 56 _K0_UPS: _K0_UPS\n\n    test 57 _K0_UTM: _K0_UTM (0.9996)\n    test 58 _K0_UTM: _K0_UTM\n    test 59 _M_KM: 1000.0  FAILED, KNOWN, expected M.KM\n    test 60 _M_NM: 1852.0  FAILED, KNOWN, expected M.NM\n    test 61 _M_SM: 1609.344  FAILED, KNOWN, expected M.SM\n    test 62 _N_0_0: -0.0  FAILED, KNOWN, expected N.0.0\n    test 63 _N_0_5: -0.5  FAILED, KNOWN, expected N.0.5\n    test 64 _N_180_0: -180.0  FAILED, KNOWN, expected N.180.0\n    test 65 _N_1_0: -1.0  FAILED, KNOWN, expected N.1.0\n    test 66 _N_2_0: -2.0  FAILED, KNOWN, expected N.2.0\n    test 67 _N_90_0: -90.0  FAILED, KNOWN, expected N.90.0\n    test 68 _nan: nan\n    test 69 _pi: 3.141592653589793  FAILED, KNOWN, expected pi\n\n    test 70 _SQRT2: _SQRT2 (1.41421356237)\n    test 71 _SQRT2: _SQRT2\n\n    test 72 _SQRT2_2: _SQRT2_2 (0.707106781187)\n    test 73 _SQRT2_2: _SQRT2_2\n\n    test 74 _SQRT3: _SQRT3 (1.73205080757)\n    test 75 _SQRT3: _SQRT3\n\n    test 76 _SQRT3_2: _SQRT3_2 (0.866025403784)\n    test 77 _SQRT3_2: _SQRT3_2\n\n    test 78 DIG: DIG (15)\n    test 79 DIG: DIG\n    test 80 DIG: True\n\n    test 81 EPS: EPS (2.22044604925e-16)\n    test 82 EPS: EPS\n    test 83 EPS: True\n\n    test 84 EPS0: EPS0 (4.93038065763e-32)\n    test 85 EPS0: EPS0\n    test 86 EPS0: True\n\n    test 87 EPS02: EPS02 (2.43086534291e-63)\n    test 88 EPS02: EPS02\n    test 89 EPS02: True\n\n    test 90 EPS1: EPS1 (1.0)\n    test 91 EPS1: EPS1\n    test 92 EPS1: True\n\n    test 93 EPS2: EPS2 (4.4408920985e-16)\n    test 94 EPS2: EPS2\n    test 95 EPS2: True\n\n    test 96 EPS4: EPS4 (8.881784197e-16)\n    test 97 EPS4: EPS4\n    test 98 EPS4: True\n\n    test 99 EPS8: EPS8 (1.7763568394e-15)\n    test 100 EPS8: EPS8\n    test 101 EPS8: True\n\n    test 102 EPS_2: EPS_2 (1.11022302463e-16)\n    test 103 EPS_2: EPS_2\n    test 104 EPS_2: True\n\n    test 105 INF: INF (inf)\n    test 106 INF: INF\n    test 107 INF: True\n\n    test 108 INT0: INT0 (0)\n    test 109 INT0: INT0\n    test 110 INT0: True\n\n    test 111 MANT_DIG: MANT_DIG (53)\n    test 112 MANT_DIG: MANT_DIG\n    test 113 MANT_DIG: True\n\n    test 114 MAX: MAX (1.79769313486e+308)\n    test 115 MAX: MAX\n    test 116 MAX: True\n\n    test 117 MAX_EXP: MAX_EXP (1024)\n    test 118 MAX_EXP: MAX_EXP\n    test 119 MAX_EXP: True\n\n    test 120 MIN: MIN (2.22507385851e-308)\n    test 121 MIN: MIN\n    test 122 MIN: True\n\n    test 123 MIN_EXP: MIN_EXP (-1021)\n    test 124 MIN_EXP: MIN_EXP\n    test 125 MIN_EXP: True\n\n    test 126 NAN: NAN (nan)\n    test 127 NAN: NAN\n    test 128 NAN: True\n\n    test 129 NEG0: NEG0 (-0)\n    test 130 NEG0: NEG0\n    test 131 NEG0: True\n\n    test 132 NINF: NINF (-inf)\n    test 133 NINF: NINF\n    test 134 NINF: True\n\n    test 135 OVERFLOW: OVERFLOW (2.02824096037e+31)\n    test 136 OVERFLOW: OVERFLOW\n    test 137 OVERFLOW: True\n\n    test 138 PI: PI (3.14159265359)\n    test 139 PI: PI\n    test 140 PI: True\n\n    test 141 PI2: PI2 (6.28318530718)\n    test 142 PI2: PI2\n    test 143 PI2: True\n\n    test 144 PI3: PI3 (9.42477796077)\n    test 145 PI3: PI3\n    test 146 PI3: True\n\n    test 147 PI3_2: PI3_2 (4.71238898038)\n    test 148 PI3_2: PI3_2\n    test 149 PI3_2: True\n\n    test 150 PI4: PI4 (12.5663706144)\n    test 151 PI4: PI4\n    test 152 PI4: True\n\n    test 153 PI_2: PI_2 (1.57079632679)\n    test 154 PI_2: PI_2\n    test 155 PI_2: True\n\n    test 156 PI_3: PI_3 (1.0471975512)\n    test 157 PI_3: PI_3\n    test 158 PI_3: True\n\n    test 159 PI_4: PI_4 (0.785398163397)\n    test 160 PI_4: PI_4\n    test 161 PI_4: True\n\n    test 162 PI_6: PI_6 (0.523598775598)\n    test 163 PI_6: PI_6\n    test 164 PI_6: True\n\n    test 165 R_FM: R_FM (6371000.0)\n    test 166 R_FM: R_FM\n    test 167 R_FM: True\n\n    test 168 R_GM: R_GM (6371230.0)\n    test 169 R_GM: R_GM\n    test 170 R_GM: True\n\n    test 171 R_KM: R_KM (6371.00877141)\n    test 172 R_KM: R_KM\n    test 173 R_KM: True\n\n    test 174 R_M: R_M (6371008.77141)\n    test 175 R_M: R_M\n    test 176 R_M: True\n\n    test 177 R_MA: R_MA (6378137.0)\n    test 178 R_MA: R_MA\n    test 179 R_MA: True\n\n    test 180 R_MB: R_MB (6356752.3)\n    test 181 R_MB: R_MB\n    test 182 R_MB: True\n\n    test 183 R_NM: R_NM (3440.069531)\n    test 184 R_NM: R_NM\n    test 185 R_NM: True\n\n    test 186 R_QM: R_QM (6372797.56086)\n    test 187 R_QM: R_QM\n    test 188 R_QM: True\n\n    test 189 R_SM: R_SM (3958.76131605)\n    test 190 R_SM: R_SM\n    test 191 R_SM: True\n\n    test 192 R_VM: R_VM (6366707.01949)\n    test 193 R_VM: R_VM\n    test 194 R_VM: True\n\n    test 195 EPS: True\n    test 196 EPS+1: True\n    test 197 EPS-1: True\n\n    test 198 EPS0: True\n    test 199 EPS02: True\n\n    test 200 EPS_2: True\n    test 201 EPS_2: 1.1102230246251565e-16\n\n    test 202 EPS1: True\n    test 203 EPS1+1: True\n    test 204 EPS1-1: True\n\n    test 205 EPS2: True\n    test 206 EPS2: 4.440892098500626e-16\n\n    test 207 EPS4: True\n    test 208 EPS4: 8.881784197001252e-16\n\n    test 209 INF: True\n    test 210 INF: False\n    test 211 NINF: True\n    test 212 NINF: -inf\n\n    test 213 INT0: 0\n    test 214 INT0: True\n    test 215 INT0: True\n    test 216 INT0: False\n    test 217 INT0: False\n    test 218 INT0: False\n\n    test 219 NAN: True\n    test 220 NAN: False\n    test 221 NAN: False\n\n    test 222 NEG0: -0.0\n    test 223 NEG0: True\n    test 224 NEG0: False\n    test 225 NEG0: 0.0\n\n    test 226 _off90: True\n    test 227 _off90: True\n    test 228 float_: True\n    test 229 floats_: (1.0, 2.0, 3.0)\n\n    test 230 _0_0: True\n\n    test 231 _0_0s: 0\n    test 232 _0_0s: 0\n    test 233 _0_0s: 1\n    test 234 _0_0s: 1\n    test 235 _0_0s: 2\n    test 236 _0_0s: 2\n    test 237 _0_0s: 3\n    test 238 _0_0s: 3\n    test 239 _0_0s: 5\n    test 240 _0_0s: 5\n    test 241 _0_0s: 8\n    test 242 _0_0s: 8\n    test 243 _0_0s: 9\n    test 244 _0_0s: 9\n    test 245 _0_0s: 10\n    test 246 _0_0s: 10\n    test 247 _0_0s: 12\n    test 248 _0_0s: 12\n    test 249 _0_0s: 25\n    test 250 _0_0s: 25\n    test 251 _0_0s: 49\n    test 252 _0_0s: 49\n    test 253 _0_0s: 129\n    test 254 _0_0s: 129\n    test 255 _0_0s: 257\n    test 256 _0_0s: 257\n\n    12 of 256 testConstants.py tests (4.7%) FAILED, ALL KNOWN (pygeodesy 26.3.26 PyPy 7.3.17 Python 3.10.14 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 2.366 ms\nrunning /opt/local/bin/p....y3.10 -W default ~/PyGeodesy/test/testCss.py\n# lazily imported pygeodesy.basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.DeprecationWarnings from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isint from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isLazy from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.issubclassof from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.iterNumpy2over from .iters by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.LazyImportError from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.karney by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.NN from .interns by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.normDMS from .dms by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.pairs from .streprs by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.printf from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.property_RO from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.typename from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.CassiniSoldner from .css by testCss.py line 11\n# lazily imported pygeodesy.Css from .css by testCss.py line 11\n# lazily imported pygeodesy.CSSError from .css by testCss.py line 11\n# lazily imported pygeodesy.Ellipsoids from .ellipsoids by testCss.py line 11\n# lazily imported pygeodesy.fstr from .streprs by testCss.py line 11\n# lazily imported pygeodesy.haversine from .formy by testCss.py line 11\n# lazily imported pygeodesy.hypot from .fmath by testCss.py line 11\n# lazily imported pygeodesy.toCss from .css by testCss.py line 11\n# lazily imported pygeodesy.ellipsoidalExact by testCss.py line 124\n# lazily imported pygeodesy.ellipsoidalNvector by testCss.py line 124\n# lazily imported pygeodesy.ellipsoidalVincenty by testCss.py line 124\n\n    testing testCss.py 23.03.27 (module pygeodesy.css 25.04.14) isLazy=3\n# lazily imported pygeodesy.ellipsoidalKarney by testCss.py line 131\n# lazily imported pygeodesy.geodesicw by ellipsoids.py line 1074\n    test 1 CassiniSoldner(48.833333, 2.333333, name='Paris'): 48.833333 2.333333\n# lazily imported pygeodesy.geodesicx by css.py line 255\n    test 2 Exact: False\n    test 3 forward: -37518.854545, 230003.561828\n    test 4 reverse: 50.9, 1.8\n    test 5 forward4: -37518.854545, 230003.561828, 89.586104, 0.999983\n    test 6 equatorarc: 89.662511\n    test 7 equatorazimuth: 39.192992\n    test 8 copy(<class 'type'>): (<class 'pygeodesy.css.CassiniSoldner'>, True)\n    test 9 CassiniSoldner.copy(): (<class 'pygeodesy.css.CassiniSoldner'>, True)\n    test 10 reverse: 50.899937, 1.793161\n    test 11 forward: -38000.0, 230000.0\n    test 12 reverse4: 50.899937, 1.793161, 89.580797, 0.999982\n    test 13 reverse(pygeodesy.ellipsoidalKarney): LatLon(50°53′59.77″N, 001°47′35.38″E)\n    test 14 reverse(pygeodesy.ellipsoidalExact): LatLon(50°53′59.77″N, 001°47′35.38″E)\n    test 15 reverse(pygeodesy.ellipsoidalNvector): LatLon(50°53′59.77″N, 001°47′35.38″E)\n    test 16 reverse(pygeodesy.ellipsoidalVincenty): LatLon(50°53′59.77″N, 001°47′35.38″E)\n    test 17 CassiniSoldner(51.4934, 0.0098, name='Greenwich'): 51.4934 0.0098\n    test 18 forward: 170557.151692, -293280.6051\n    test 19 reverse: 48.833333, 2.333333\n    test 20 hypot: 339268.707  FAILED, KNOWN, expected 338901.865\n    test 21 toCss: -37518.854545 230003.561828 +1.00m\n    test 22 toCss: [E:-37518.854545, N:230003.561828, H:+1.00m, name:'Calais', C:CassiniSoldner(48.833333, 2.333333, name='Paris')]\n    test 23 Css.easting: -37518.854545\n    test 24 Css.northing: 230003.561828\n    test 25 Css.height: 1.0\n    test 26 Css.azi: 89.586103815\n    test 27 Css.rk: 0.999982722\n    test 28 Css.name: Calais\n    test 29 Css.cs0: 48.833333 2.333333\n    test 30 Css.toLatLon: LatLon(50°54′00.0″N, 001°48′00.0″E, +1.00m)\n    test 31 Css.toLatLon.height: 1.0\n    test 32 Css.toLatLon.name: Calais\n    test 33 Css.toLatLon.datum.name: WGS84\n    test 34 Css.toLatLon.height: 1.0  FAILED, KNOWN, expected height(1.0)\n    test 35 copy(<class 'type'>): (<class 'pygeodesy.css.Css'>, True)\n    test 36 Css.copy(): (<class 'pygeodesy.css.Css'>, True)\n    test 37 cs0.name: Paris\n    test 38 cs0.name: Default\n    test 39 cs0.flattening: 0.003352811\n    test 40 cs0.lat0: 0.0\n    test 41 cs0.equatoradius: 6378137.0\n    test 42 cs0.lat0: 0.0  FAILED, KNOWN, expected lat(0.0)\n    test 43 classof.height: 1.0\n    test 44 classof.azi: 89.586103815\n    test 45 classof.rk: 0.999982722\n    test 46 classof.name: Calais\n    test 47 classof.cs0: 48.833333 2.333333\n    test 48 cs0.latlon0: (48.833333, 2.333333)\n    test 49 cs0.latlon0: (48.833333, 2.333333)\n# imported pygeodesy.basics into errors.py line 443\n    test 50 cs0.latlon0: latlon0 (None): 'NoneType' object has no attribute 'lat'\n    test 51 cs0.latlon0: (48.0, 2.0)\n    test 52 datum: True\n    test 53 datum: False\n    test 54 forward6: (39142.269011, -229679.266845, 90.401497, 0.999981, 90.352206, 41.257592)\n\n    3 of 54 testCss.py tests (5.6%) FAILED, ALL KNOWN (pygeodesy 26.3.26 PyPy 7.3.17 Python 3.10.14 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 12.502 ms\nrunning /opt/local/bin/p....y3.10 -W default ~/PyGeodesy/test/testDatums.py\n# lazily imported pygeodesy.basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.DeprecationWarnings from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isint from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isLazy from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.issubclassof from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.iterNumpy2over from .iters by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.LazyImportError from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.karney by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.NN from .interns by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.normDMS from .dms by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.pairs from .streprs by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.printf from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.property_RO from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.typename from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.Datum from .datums by testDatums.py line 11\n# lazily imported pygeodesy.Datums from .datums by testDatums.py line 11\n# lazily imported pygeodesy.Ellipsoid from .ellipsoids by testDatums.py line 11\n# lazily imported pygeodesy.Ellipsoids from .ellipsoids by testDatums.py line 11\n# lazily imported pygeodesy.R_M from .constants by testDatums.py line 11\n# lazily imported pygeodesy.Transform from .datums by testDatums.py line 11\n# lazily imported pygeodesy.Transforms from .datums by testDatums.py line 11\n\n    testing testDatums.py 24.05.17 (module pygeodesy.datums 26.01.13) isLazy=3\n    test 1 ellipsoid: True\n    test 2 transform: True\n    test 3 datum: True\n    test 4 TestEllipsiod: name='TestEllipsiod', a=1000, f=0, f_=0, b=1000\n    test 5 TestTransform: name='TestTransform', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=0.0, ry=0.0, rz=0.0, s=0.0, sx=0.0, sy=0.0, sz=0.0\n    test 6 TestDatum: name='TestDatum', ellipsoid=Ellipsoids.TestEllipsiod, transform=Transforms.TestTransform\n    test 7 ED50.inverse().inverse(): True\n    test 8 Sphere: True\n\n    test 9 all: all\n\n    test 10 BD72: name='BD72', ellipsoid=Ellipsoids.Intl1924, transform=Transforms.BD72\n    test 11 Intl1924: name='Intl1924', a=6378388, f=0.003367, f_=297, b=6356911.94612795\n    test 12 BD72: name='BD72', tx=106.87, ty=-52.298, tz=103.72, s1=1.0, rx=-1.6317e-06, ry=-2.2154e-06, rz=-8.9311e-06, s=1.2727, sx=-0.33657, sy=-0.45696, sz=-1.8422\n\n    test 13 DHDN: name='DHDN', ellipsoid=Ellipsoids.Bessel1841, transform=Transforms.DHDN\n    test 14 Bessel1841: name='Bessel1841', a=6377397.155, f=0.00334277, f_=299.1528128, b=6356078.962818\n    test 15 DHDN: name='DHDN', tx=-591.28, ty=-81.35, tz=-396.39, s1=0.99999, rx=7.1607e-06, ry=-3.5682e-07, rz=-7.0686e-06, s=-9.82, sx=1.477, sy=-0.0736, sz=-1.458\n\n    test 16 ED50: name='ED50', ellipsoid=Ellipsoids.Intl1924, transform=Transforms.ED50\n    test 17 Intl1924: name='Intl1924', a=6378388, f=0.003367, f_=297, b=6356911.94612795\n    test 18 ED50: name='ED50', tx=89.5, ty=93.8, tz=123.1, s1=1.0, rx=0.0, ry=0.0, rz=7.5631e-07, s=-1.2, sx=0.0, sy=0.0, sz=0.156\n\n    test 19 GDA2020: name='GDA2020', ellipsoid=Ellipsoids.GRS80, transform=Transforms.WGS84\n    test 20 GRS80: name='GRS80', a=6378137, f=0.00335281, f_=298.2572221, b=6356752.31414035\n    test 21 WGS84: name='WGS84', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=0.0, ry=0.0, rz=0.0, s=0.0, sx=0.0, sy=0.0, sz=0.0\n\n    test 22 GRS80: name='GRS80', ellipsoid=Ellipsoids.GRS80, transform=Transforms.WGS84\n    test 23 GRS80: name='GRS80', a=6378137, f=0.00335281, f_=298.2572221, b=6356752.31414035\n    test 24 WGS84: name='WGS84', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=0.0, ry=0.0, rz=0.0, s=0.0, sx=0.0, sy=0.0, sz=0.0\n\n    test 25 Irl1975: name='Irl1975', ellipsoid=Ellipsoids.AiryModified, transform=Transforms.Irl1975\n    test 26 AiryModified: name='AiryModified', a=6377340.189, f=0.00334085, f_=299.3249646, b=6356034.44793853\n    test 27 Irl1975: name='Irl1975', tx=-482.53, ty=130.6, tz=-564.56, s1=0.99999, rx=5.0518e-06, ry=1.0375e-06, rz=3.0592e-06, s=-8.15, sx=1.042, sy=0.214, sz=0.631\n\n    test 28 Krassovski1940: name='Krassovski1940', ellipsoid=Ellipsoids.Krassovski1940, transform=Transforms.Krassovski1940\n    test 29 Krassovski1940: name='Krassovski1940', a=6378245, f=0.00335233, f_=298.3, b=6356863.01877305\n    test 30 Krassovski1940: name='Krassovski1940', tx=-24, ty=123.0, tz=94.0, s1=1.0, rx=-9.6963e-08, ry=1.2605e-06, rz=6.3026e-07, s=-2.423, sx=-0.02, sy=0.26, sz=0.13\n\n    test 31 Krassowsky1940: name='Krassowsky1940', ellipsoid=Ellipsoids.Krassowsky1940, transform=Transforms.Krassowsky1940\n    test 32 Krassowsky1940: name='Krassowsky1940', a=6378245, f=0.00335233, f_=298.3, b=6356863.01877305\n    test 33 Krassowsky1940: name='Krassowsky1940', tx=-24, ty=123.0, tz=94.0, s1=1.0, rx=-9.6963e-08, ry=1.2605e-06, rz=6.3026e-07, s=-2.423, sx=-0.02, sy=0.26, sz=0.13\n\n    test 34 MGI: name='MGI', ellipsoid=Ellipsoids.Bessel1841, transform=Transforms.MGI\n    test 35 Bessel1841: name='Bessel1841', a=6377397.155, f=0.00334277, f_=299.1528128, b=6356078.962818\n    test 36 MGI: name='MGI', tx=-577.33, ty=-90.129, tz=-463.92, s1=1.0, rx=2.4905e-05, ry=7.1462e-06, rz=2.5681e-05, s=-2.423, sx=5.137, sy=1.474, sz=5.297\n\n    test 37 NAD27: name='NAD27', ellipsoid=Ellipsoids.Clarke1866, transform=Transforms.NAD27\n    test 38 Clarke1866: name='Clarke1866', a=6378206.4, f=0.00339008, f_=294.97869821, b=6356583.8\n    test 39 NAD27: name='NAD27', tx=8.0, ty=-160, tz=-176, s1=1.0, rx=0.0, ry=0.0, rz=0.0, s=0.0, sx=0.0, sy=0.0, sz=0.0\n\n    test 40 NAD83: name='NAD83', ellipsoid=Ellipsoids.GRS80, transform=Transforms.NAD83\n    test 41 GRS80: name='GRS80', a=6378137, f=0.00335281, f_=298.2572221, b=6356752.31414035\n    test 42 NAD83: name='NAD83', tx=1.004, ty=-1.91, tz=-0.515, s1=1.0, rx=1.2945e-07, ry=1.6484e-09, rz=5.333e-08, s=-0.0015, sx=0.0267, sy=0.00034, sz=0.011\n\n    test 43 NTF: name='NTF', ellipsoid=Ellipsoids.Clarke1880IGN, transform=Transforms.NTF\n    test 44 Clarke1880IGN: name='Clarke1880IGN', a=6378249.2, f=0.00340755, f_=293.46602129, b=6356515\n    test 45 NTF: name='NTF', tx=-168, ty=-60, tz=320.0, s1=1.0, rx=0.0, ry=0.0, rz=0.0, s=0.0, sx=0.0, sy=0.0, sz=0.0\n\n    test 46 OSGB36: name='OSGB36', ellipsoid=Ellipsoids.Airy1830, transform=Transforms.OSGB36\n    test 47 Airy1830: name='Airy1830', a=6377563.396, f=0.00334085, f_=299.3249646, b=6356256.90923729\n    test 48 OSGB36: name='OSGB36', tx=-446.45, ty=125.16, tz=-542.06, s1=1.0, rx=-7.2819e-07, ry=-1.1975e-06, rz=-4.0826e-06, s=20.489, sx=-0.1502, sy=-0.247, sz=-0.8421\n\n    test 49 Potsdam: name='Potsdam', ellipsoid=Ellipsoids.Bessel1841, transform=Transforms.Bessel1841\n    test 50 Bessel1841: name='Bessel1841', a=6377397.155, f=0.00334277, f_=299.1528128, b=6356078.962818\n    test 51 Bessel1841: name='Bessel1841', tx=-582, ty=-105, tz=-414, s1=0.99999, rx=-5.0421e-06, ry=-1.6968e-06, rz=1.4932e-05, s=-8.3, sx=-1.04, sy=-0.35, sz=3.08\n\n    test 52 Sphere: name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84\n    test 53 Sphere: name='Sphere', a=6371008.771415, f=0, f_=0, b=6371008.771415\n    test 54 WGS84: name='WGS84', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=0.0, ry=0.0, rz=0.0, s=0.0, sx=0.0, sy=0.0, sz=0.0\n\n    test 55 TokyoJapan: name='TokyoJapan', ellipsoid=Ellipsoids.Bessel1841, transform=Transforms.TokyoJapan\n    test 56 Bessel1841: name='Bessel1841', a=6377397.155, f=0.00334277, f_=299.1528128, b=6356078.962818\n    test 57 TokyoJapan: name='TokyoJapan', tx=148.0, ty=-507, tz=-685, s1=1.0, rx=0.0, ry=0.0, rz=0.0, s=0.0, sx=0.0, sy=0.0, sz=0.0\n\n    test 58 WGS72: name='WGS72', ellipsoid=Ellipsoids.WGS72, transform=Transforms.WGS72\n    test 59 WGS72: name='WGS72', a=6378135, f=0.00335278, f_=298.26, b=6356750.52001609\n    test 60 WGS72: name='WGS72', tx=0.0, ty=0.0, tz=-4.5, s1=1.0, rx=0.0, ry=0.0, rz=2.6859e-06, s=-0.22, sx=0.0, sy=0.0, sz=0.554\n\n    test 61 WGS84: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 62 WGS84: name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518\n    test 63 WGS84: name='WGS84', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=0.0, ry=0.0, rz=0.0, s=0.0, sx=0.0, sy=0.0, sz=0.0\n\n    test 64 total: 18\n\n    all 64 testDatums.py tests passed (pygeodesy 26.3.26 PyPy 7.3.17 Python 3.10.14 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 6.591 ms\nrunning /opt/local/bin/p....y3.10 -W default ~/PyGeodesy/test/testDeprecated.py\n./pygeodesy/deprecated/classes.py:185: DeprecationWarning: class L{HeightIDW<pygeodesy.deprecated.classes.HeightIDW>} has been DEPRECATED, use class L{HeightIDWeuclidean}.\n  deprecated_class(self.__class__)\n./pygeodesy/deprecated/classes.py:198: DeprecationWarning: class L{HeightIDW2<pygeodesy.deprecated.classes.HeightIDW2>} has been DEPRECATED, use class L{HeightIDWequirectangular}.\n  deprecated_class(self.__class__)\n./pygeodesy/deprecated/classes.py:212: DeprecationWarning: class L{HeightIDW3<pygeodesy.deprecated.classes.HeightIDW3>} has been DEPRECATED, use class L{HeightIDWhaversine}.\n  deprecated_class(self.__class__)\n./test/testDeprecated.py:38: DeprecationWarning: function L{areaof<pygeodesy.deprecated.functions.areaof>} has been DEPRECATED, use function L{pygeodesy.areaOf}.\n  self.test('areaof', areaof(p, radius=R_MA), '7.086883e+09', fmt='%.6e')  # PYCHOK DEPRECATED\n./test/testDeprecated.py:41: DeprecationWarning: function L{bounds<pygeodesy.deprecated.functions.bounds>} has been DEPRECATED, use function L{pygeodesy.boundsOf}.\n  b = map2(float, bounds(p))  # PYCHOK DEPRECATED\n./test/testDeprecated.py:44: DeprecationWarning: function L{anStr<pygeodesy.deprecated.functions.anStr>} has been DEPRECATED, use function L{pygeodesy.anstr}.\n  self.test('anStr', anStr('a-b?_'), 'a-b__')  # PYCHOK DEPRECATED\n./test/testDeprecated.py:46: DeprecationWarning: function L{clipStr<pygeodesy.deprecated.functions.clipStr>} has been DEPRECATED, use function L{pygeodesy.clips}.\n  self.test('clipStr', clipStr('test/testBasics.py', limit=12), 'test/t....ics.py')  # PYCHOK DEPRECATED\n./test/testDeprecated.py:48: DeprecationWarning: function L{decodeEPSG2<pygeodesy.deprecated.functions.decodeEPSG2>} has been DEPRECATED, use function L{epsg.decode2}.\n  self.test('decodeEPSG2', decodeEPSG2(32712), \"(12, 'S')\")  # PYCHOK DEPRECATED\n./test/testDeprecated.py:49: DeprecationWarning: function L{encodeEPSG<pygeodesy.deprecated.functions.encodeEPSG>} has been DEPRECATED, use function L{epsg.encode}.\n  self.test('encodeEPSG', encodeEPSG(12, hemipole='S'), '32712')  # PYCHOK DEPRECATED\n./test/testDeprecated.py:51: DeprecationWarning: function L{equirectangular3<pygeodesy.deprecated.functions.equirectangular3>} has been DEPRECATED, use function L{pygeodesy.equirectangular4}.\n  t = equirectangular3(0, 2, 3, 4)  # PYCHOK DEPRECATED\n./test/testDeprecated.py:55: DeprecationWarning: function L{fStr<pygeodesy.deprecated.functions.fStr>} has been DEPRECATED, use function L{fstr}.\n  self.test('fStr', fStr(0.123, prec=-6), '0.123000')  # PYCHOK DEPRECATED\n./test/testDeprecated.py:56: DeprecationWarning: function L{fStr<pygeodesy.deprecated.functions.fStr>} has been DEPRECATED, use function L{fstr}.\n  self.test('fStr', fStr(0.123, prec=+6), '0.123')  # PYCHOK DEPRECATED\n./test/testDeprecated.py:57: DeprecationWarning: function L{fStr<pygeodesy.deprecated.functions.fStr>} has been DEPRECATED, use function L{fstr}.\n  self.test('fStr', fStr((0.123, 456.789), prec=+6), '0.123, 456.789')  # PYCHOK DEPRECATED\n./test/testDeprecated.py:58: DeprecationWarning: function L{fStr<pygeodesy.deprecated.functions.fStr>} has been DEPRECATED, use function L{fstr}.\n  self.test('fStr', fStr(0.123, prec=-5, fmt='%.*e'), '1.23000e-01')  # PYCHOK DEPRECATED\n./test/testDeprecated.py:59: DeprecationWarning: function L{fStr<pygeodesy.deprecated.functions.fStr>} has been DEPRECATED, use function L{fstr}.\n  self.test('fStr', fStr(0.123, prec=+5, fmt='%.*e'), '1.23e-01')  # PYCHOK DEPRECATED\n./test/testDeprecated.py:60: DeprecationWarning: function L{fStr<pygeodesy.deprecated.functions.fStr>} has been DEPRECATED, use function L{fstr}.\n  self.test('fStr', fStr(0.123, prec=+6, fmt='%.*f'), '0.123')  # PYCHOK DEPRECATED\n./test/testDeprecated.py:62: DeprecationWarning: function L{hypot3<pygeodesy.deprecated.functions.hypot3>} has been DEPRECATED, use function L{pygeodesy.hypot_}.\n  h = hypot3(3000, 200, 10)  # PYCHOK DEPRECATED\n./test/testDeprecated.py:67: DeprecationWarning: function L{isenclosedby<pygeodesy.deprecated.functions.isenclosedby>} has been DEPRECATED, use function L{pygeodesy.isenclosedBy}.\n  self.test('isenclosedby', isenclosedby(LatLon(45.5, 1.5), b), True)  # PYCHOK DEPRECATED\n./test/testDeprecated.py:71: DeprecationWarning: function L{nearestOn3<pygeodesy.deprecated.functions.nearestOn3>} has been DEPRECATED, use function L{pygeodesy.nearestOn5}.\n  t = nearestOn3(p, b, adjust=False)  # PYCHOK DEPRECATED\n./test/testDeprecated.py:74: DeprecationWarning: function L{nearestOn4<pygeodesy.deprecated.functions.nearestOn4>} has been DEPRECATED, use function L{pygeodesy.nearestOn5}.\n  t = nearestOn4(p, b, adjust=False)  # PYCHOK DEPRECATED\n./test/testDeprecated.py:78: DeprecationWarning: function L{parseUTM<pygeodesy.deprecated.functions.parseUTM>} has been DEPRECATED, use function L{parseUTM5}.\n  t = parseUTM('18 N 516620 4574500', Utm=None)  # PYCHOK Milford, PA\n./test/testDeprecated.py:82: DeprecationWarning: function L{perimeterof<pygeodesy.deprecated.functions.perimeterof>} has been DEPRECATED, use function L{pygeodesy.perimeterOf}.\n  self.test('perimeterof', perimeterof(p, radius=R_MA), '2.687460e+05', fmt='%.6e')  # PYCHOK DEPRECATED\n./test/testDeprecated.py:85: DeprecationWarning: function L{polygon<pygeodesy.deprecated.functions.polygon>} has been DEPRECATED, use function L{pygeodesy.points2}.\n  self.test('polygon', polygon(p)[0], 3)  # PYCHOK DEPRECATED\n./test/testDeprecated.py:87: DeprecationWarning: function L{simplify2<pygeodesy.deprecated.functions.simplify2>} has been DEPRECATED, use function L{pygeodesy.simplifyRW}.\n  t = simplify2(RdpFFI, 16, adjust=True, shortest=False)  # PYCHOK DEPRECATED\n./test/testDeprecated.py:90: DeprecationWarning: function L{toUtm<pygeodesy.deprecated.functions.toUtm>} has been DEPRECATED, use function L{pygeodesy.toUtm8}.\n  t = toUtm('50°52′10″N', '115°39′03″W', Utm=None, name='Mt Assiniboine')  # PYCHOK DEPRECATED\n./test/testDeprecated.py:93: DeprecationWarning: function L{utmZoneBand2<pygeodesy.deprecated.functions.utmZoneBand2>} has been DEPRECATED, use function L{pygeodesy.utmZoneBand5}.\n  t = utmZoneBand2('50°52′10″N', '115°39′03″W')  # PYCHOK DEPRECATED\n# lazily imported pygeodesy.basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.DeprecationWarnings from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isint from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isLazy from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.issubclassof from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.iterNumpy2over from .iters by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.LazyImportError from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.karney by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.NN from .interns by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.normDMS from .dms by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.pairs from .streprs by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.printf from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.property_RO from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.typename from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.R_MA from .constants by testDeprecated.py line 12\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by <frozen importlib._bootstrap> line 1075\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by <frozen importlib._bootstrap> line 1075\n# lazily imported pygeodesy.Conformal2Tuple from .triaxials.triaxial5 by <frozen importlib._bootstrap> line 1075\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by classes.py line 21\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by classes.py line 21\n# lazily imported pygeodesy.Conformal2Tuple from .triaxials.triaxial5 by classes.py line 21\n# lazily imported pygeodesy.deprecated by testDeprecated.py line 12\n# lazily imported pygeodesy.isDEPRECATED from .basics by testDeprecated.py line 12\n# lazily imported pygeodesy.unstr from .streprs by testDeprecated.py line 12\n# lazily imported pygeodesy.HeightIDWequirectangular from .heights by testDeprecated.py line 12\n# lazily imported pygeodesy.HeightIDWeuclidean from .heights by testDeprecated.py line 12\n# lazily imported pygeodesy.HeightIDWhaversine from .heights by testDeprecated.py line 12\n# lazily imported pygeodesy.LatLon_ from .points by testRoutes.py line 13\n# lazily imported pygeodesy.R_KM from .constants by testRoutes.py line 13\n# lazily imported pygeodesy.R_M from .constants by testRoutes.py line 13\n# lazily imported pygeodesy.ellipsoidalVincenty by testRoutes.py line 13\n# lazily imported pygeodesy.sphericalTrigonometry by testRoutes.py line 13\n# lazily imported pygeodesy.areaOf from .points by testRoutes.py line 13\n# lazily imported pygeodesy.isclockwise from .points by testRoutes.py line 13\n# lazily imported pygeodesy.perimeterOf from .points by testRoutes.py line 13\n\n    testing testDeprecated.py 25.05.09 (module pygeodesy.deprecated 26.02.08) isLazy=3\n# imported pygeodesy.formy into heights.py line 882\n\n    test 1 HeightIDW: True\n    test 2 HeightIDW2: True\n    test 3 HeightIDW3: True\n\n# lazily imported pygeodesy.booleans by points.py line 978\n    test 4 areaof: 7.086883e+09\n    test 5 bounds: (-85.0, -180.0, 85.0, 90.0)\n    test 6 anStr: a-b__\n    test 7 clipStr: test/t....ics.py\n# lazily imported pygeodesy.epsg by functions.py line 119\n    test 8 decodeEPSG2: (12, 'S')\n    test 9 encodeEPSG: 32712\n    test 10 equirectangular3: 3\n    test 11 equirectangular3: 12.997\n    test 12 fStr: 0.123000\n    test 13 fStr: 0.123\n    test 14 fStr: 0.123, 456.789\n    test 15 fStr: 1.23000e-01\n    test 16 fStr: 1.23e-01\n    test 17 fStr: 0.123\n    test 18 hypot3: 3006.675905\n    test 19 isenclosedby: True\n    test 20 nearestOn3: 3\n    test 21 nearestOn3: (45.5, 1.5)\n    test 22 nearestOn4: 4\n    test 23 nearestOn4: (45.5, 1.5)\n    test 24 parseUTM: (18, 'N', 516620.0, 4574500.0)\n    test 25 perimeterof: 2.687460e+05\n    test 26 polygon: 3\n# lazily imported pygeodesy.simplify by functions.py line 340\n    test 27 simplify2: 4\n    test 28 toUtm: 6\n    test 29 utmZoneBand2: (11, 'U')\n\n    test 30 HeightIDW: True\n    test 31 HeightIDW2: True\n    test 32 HeightIDW3: True\n\n    test 33 areaof: 7.086883e+09\n    test 34 bounds: (-85.0, -180.0, 85.0, 90.0)\n    test 35 anStr: a-b__\n    test 36 clipStr: test/t....ics.py\n    test 37 decodeEPSG2: (12, 'S')\n    test 38 encodeEPSG: 32712\n    test 39 equirectangular3: 3\n    test 40 equirectangular3: 12.997\n    test 41 fStr: 0.123000\n    test 42 fStr: 0.123\n    test 43 fStr: 0.123, 456.789\n    test 44 fStr: 1.23000e-01\n    test 45 fStr: 1.23e-01\n    test 46 fStr: 0.123\n    test 47 hypot3: 3006.675905\n    test 48 isenclosedby: True\n    test 49 nearestOn3: 3\n    test 50 nearestOn3: (45.5, 1.5)\n    test 51 nearestOn4: 4\n    test 52 nearestOn4: (45.5, 1.5)\n    test 53 parseUTM: (18, 'N', 516620.0, 4574500.0)\n    test 54 perimeterof: 2.687460e+05\n# imported pygeodesy.formy into latlonBase.py line 756\n    test 55 polygon: 3\n    test 56 simplify2: 4\n    test 57 toUtm: 6\n    test 58 utmZoneBand2: (11, 'U')\n\n    test 59 HeightIDW: True\n    test 60 HeightIDW2: True\n    test 61 HeightIDW3: True\n\n    test 62 areaof: 7.086883e+09\n    test 63 bounds: (-85.0, -180.0, 85.0, 90.0)\n    test 64 anStr: a-b__\n    test 65 clipStr: test/t....ics.py\n    test 66 decodeEPSG2: (12, 'S')\n    test 67 encodeEPSG: 32712\n    test 68 equirectangular3: 3\n    test 69 equirectangular3: 12.997\n    test 70 fStr: 0.123000\n    test 71 fStr: 0.123\n    test 72 fStr: 0.123, 456.789\n    test 73 fStr: 1.23000e-01\n    test 74 fStr: 1.23e-01\n    test 75 fStr: 0.123\n    test 76 hypot3: 3006.675905\n    test 77 isenclosedby: True\n    test 78 nearestOn3: 3\n    test 79 nearestOn3: (45.5, 1.5)\n    test 80 nearestOn4: 4\n    test 81 nearestOn4: (45.5, 1.5)\n    test 82 parseUTM: (18, 'N', 516620.0, 4574500.0)\n    test 83 perimeterof: 2.687460e+05\n    test 84 polygon: 3\n    test 85 simplify2: 4\n    test 86 toUtm: 6\n    test 87 utmZoneBand2: (11, 'U')\n\n    test 88 deprecated: 7\n    test 89 isDEPRECATED('bases'): True\n    test 90 isDEPRECATED('datum'): True\n    test 91 isDEPRECATED('nvector'): True\n    test 92 isDEPRECATED('rhumbaux'): True\n    test 93 isDEPRECATED('rhumbBase'): True\n    test 94 isDEPRECATED('rhumbsolve'): True\n    test 95 isDEPRECATED('rhumbx'): True\n\n    78 of 95 testDeprecated.py tests (82.1%) FAILED, incl. 78 DeprecationWarnings (pygeodesy 26.3.26 PyPy 7.3.17 Python 3.10.14 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 55.928 ms\nrunning /opt/local/bin/p....y3.10 -W default ~/PyGeodesy/test/testDms.py\n# lazily imported pygeodesy.basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.DeprecationWarnings from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isint from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isLazy from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.issubclassof from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.iterNumpy2over from .iters by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.LazyImportError from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.karney by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.NN from .interns by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.normDMS from .dms by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.pairs from .streprs by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.printf from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.property_RO from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.typename from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.F_D from .dms by testDms.py line 11\n# lazily imported pygeodesy.F_DM from .dms by testDms.py line 11\n# lazily imported pygeodesy.F_DMS from .dms by testDms.py line 11\n# lazily imported pygeodesy.F_DEG from .dms by testDms.py line 11\n# lazily imported pygeodesy.F_MIN from .dms by testDms.py line 11\n# lazily imported pygeodesy.F_SEC from .dms by testDms.py line 11\n# lazily imported pygeodesy.F_RAD from .dms by testDms.py line 11\n# lazily imported pygeodesy.F_D60 from .dms by testDms.py line 11\n# lazily imported pygeodesy.F_D_ from .dms by testDms.py line 11\n# lazily imported pygeodesy.F_DM_ from .dms by testDms.py line 11\n# lazily imported pygeodesy.F_DMS_ from .dms by testDms.py line 11\n# lazily imported pygeodesy.F_DEG_ from .dms by testDms.py line 11\n# lazily imported pygeodesy.F_MIN_ from .dms by testDms.py line 11\n# lazily imported pygeodesy.F_SEC_ from .dms by testDms.py line 11\n# lazily imported pygeodesy.F_RAD_ from .dms by testDms.py line 11\n# lazily imported pygeodesy.F_D60_ from .dms by testDms.py line 11\n# lazily imported pygeodesy.F_D__ from .dms by testDms.py line 11\n# lazily imported pygeodesy.F_DM__ from .dms by testDms.py line 11\n# lazily imported pygeodesy.F_DMS__ from .dms by testDms.py line 11\n# lazily imported pygeodesy.F_DEG__ from .dms by testDms.py line 11\n# lazily imported pygeodesy.F_MIN__ from .dms by testDms.py line 11\n# lazily imported pygeodesy.F_SEC__ from .dms by testDms.py line 11\n# lazily imported pygeodesy.F_RAD__ from .dms by testDms.py line 11\n# lazily imported pygeodesy.F_D60__ from .dms by testDms.py line 11\n# lazily imported pygeodesy.compassPoint from .dms by testDms.py line 11\n# lazily imported pygeodesy.degDMS from .dms by testDms.py line 11\n# lazily imported pygeodesy.fstr from .streprs by testDms.py line 11\n# lazily imported pygeodesy.parseDDDMMSS from .dms by testDms.py line 11\n# lazily imported pygeodesy.parseDMS from .dms by testDms.py line 11\n# lazily imported pygeodesy.ParseError from .errors by testDms.py line 11\n# lazily imported pygeodesy.parse3llh from .dms by testDms.py line 11\n# lazily imported pygeodesy.RangeError from .errors by testDms.py line 11\n# lazily imported pygeodesy.rangerrors from .errors by testDms.py line 11\n# lazily imported pygeodesy.toDMS from .dms by testDms.py line 11\n\n    testing testDms.py 23.03.27 (module pygeodesy.dms 25.08.31) isLazy=3\n    test 1 parseDMS('0.0°'): 0.0\n    test 2 parseDMS('0°'): 0.0\n    test 3 parseDMS('000°00'00\"'): 0.0\n    test 4 parseDMS('000°00'00.0\"'): 0.0\n    test 5 parseDMS('000° 00'00\"'): 0.0\n    test 6 parseDMS('000°00 ' 00.0\"'): 0.0\n    test 7 parseDMS('000° 00' 00.0'): 0.0\n    test 8 parseDMS('000°-00′-00.0\"'): 0.0\n    test 9 parseDDDMMSS(1): 1.0\n    test 10 parseDMS(1): 1.0\n    test 11 parseDDDMMSS(12): 12.0\n    test 12 parseDMS(12): 12.0\n    test 13 parseDDDMMSS(123): 123.0\n    test 14 parseDMS(123): 123.0\n    test 15 parseDDDMMSS(1234): 12.567\n    test 16 parseDMS(1234): 1234.0\n    test 17 parseDDDMMSS(12345): 123.75\n    test 18 parseDMS(12345): 12345.0\n    test 19 parseDDDMMSS(123456): 12.582\n    test 20 parseDMS(123456): 123456.0\n    test 21 parseDDDMMSS(1234567): 123.769\n    test 22 parseDMS(1234567): 1234567.0\n    test 23 parseDDDMMSS(12345678): 1234.955\n    test 24 parseDMS(12345678): 12345678.0\n    test 25 parseDDDMMSS(0.1): 0.1\n    test 26 parseDMS(0.1): 0.1\n    test 27 parseDDDMMSS(1.2): 1.2\n    test 28 parseDMS(1.2): 1.2\n    test 29 parseDDDMMSS(12.3): 12.3\n    test 30 parseDMS(12.3): 12.3\n    test 31 parseDDDMMSS(123.4): 123.4\n    test 32 parseDMS(123.4): 123.4\n    test 33 parseDDDMMSS(1234.5): 12.575\n    test 34 parseDMS(1234.5): 1234.5\n    test 35 parseDDDMMSS(12345.6): 123.76\n    test 36 parseDMS(12345.6): 12345.6\n    test 37 parseDDDMMSS(123456.7): 12.582\n    test 38 parseDMS(123456.7): 123456.7\n    test 39 parseDDDMMSS('1N'): 1.0\n    test 40 parseDMS('1N'): 1.0\n    test 41 parseDDDMMSS('12S'): -12.0\n    test 42 parseDMS('12S'): -12.0\n    test 43 parseDDDMMSS('012.3W'): -12.3\n    test 44 parseDMS('012.3W'): -12.3\n    test 45 parseDDDMMSS('123E'): 123.0\n    test 46 parseDMS('123E'): 123.0\n    test 47 parseDDDMMSS('1234N'): 12.567\n    test 48 parseDMS('1234N'): 1234.0\n    test 49 parseDDDMMSS('12345E'): 123.75\n    test 50 parseDMS('12345E'): 12345.0\n    test 51 parseDDDMMSS('1234.5S'): -12.575\n    test 52 parseDMS('1234.5S'): -1234.5\n    test 53 parseDDDMMSS('12345.6E'): 123.76\n    test 54 parseDMS('12345.6E'): 12345.6\n    test 55 parseDDDMMSS('123456.7S'): -12.582\n    test 56 parseDMS('123456.7S'): -123456.7\n    test 57 parseDDDMMSS('1234567.8W'): -123.769\n    test 58 parseDMS('1234567.8W'): -1234567.8\n    test 59 parseDDDMMSS('12345678E'): 12345678.0\n    test 60 parseDMS('12345678E'): 12345678.0\n    test 61 parseDDDMMSS(345.0, NS): 3.75\n    test 62 parseDDDMMSS(345.0, EW): 345.0\n    test 63 parseDDDMMSS(5430.0, NS): 54.5\n    test 64 parseDDDMMSS(5430.0, EW): 54.5\n    test 65 parseDDDMMSS(76.5432, sexagecimal=False): 76.5432\n    test 66 parseDDDMMSS(76.5432, sexagecimal=True): 76.9089\n    test 67 parseDDDMMSS(00.0102, sexagecimal=False): 0.0102\n    test 68 parseDDDMMSS(00.0102, sexagecimal=True): 0.0172\n# imported pygeodesy.basics into errors.py line 443\n    test 69 parseDDDMMSS('12E'): ParseError(\"sexagecimal (False), strDDDMMSS ('12E') or suffix ('NSEW'): form DDMMSS applies N-S: invalid\")\n    test 70 parseDMS('12E'): 12.0\n    test 71 parseDDDMMSS('012.3S'): ParseError(\"sexagecimal (False), strDDDMMSS ('012.3S') or suffix ('NSEW'): form DDDMMSS applies E-W: invalid\")\n    test 72 parseDMS('012.3S'): -12.3\n    test 73 parseDDDMMSS('123N'): ParseError(\"sexagecimal (False), strDDDMMSS ('123N') or suffix ('NSEW'): form DDDMMSS applies E-W: invalid\")\n    test 74 parseDMS('123N'): 123.0\n    test 75 parseDDDMMSS('1234E'): ParseError(\"sexagecimal (False), strDDDMMSS ('1234E') or suffix ('NSEW'): form DDMMSS applies N-S: invalid\")\n    test 76 parseDMS('1234E'): 1234.0\n    test 77 parseDDDMMSS('12345N'): ParseError(\"sexagecimal (False), strDDDMMSS ('12345N') or suffix ('NSEW'): form DDDMMSS applies E-W: invalid\")\n    test 78 parseDMS('12345N'): 12345.0\n    test 79 parseDDDMMSS('1234.5W'): ParseError(\"sexagecimal (False), strDDDMMSS ('1234.5W') or suffix ('NSEW'): form DDMMSS applies N-S: invalid\")\n    test 80 parseDMS('1234.5W'): -1234.5\n    test 81 parseDDDMMSS('123456E'): ParseError(\"sexagecimal (False), strDDDMMSS ('123456E') or suffix ('NSEW'): form DDMMSS applies N-S: invalid\")\n    test 82 parseDMS('123456E'): 123456.0\n    test 83 parseDDDMMSS('1234567S'): ParseError(\"sexagecimal (False), strDDDMMSS ('1234567S') or suffix ('NSEW'): form DDDMMSS applies E-W: invalid\")\n    test 84 parseDMS('1234567S'): -1234567.0\n    test 85 parseDMS: strDMS (181) or suffix ('NSEW'): 181 beyond 180.0 degrees\n    test 86 parseDMS: -90.0\n    test 87 parse3llh: 51.477811, -0.001475, 0.0\n    test 88 toDMS(dm): 46°00.0′\n    test 89 toDMS(dm): 46°00.0′\n    test 90 toDMS(dm): 45°59.99′\n    test 91 toDMS(dm): 45°59.999′\n    test 92 toDMS(dms): 46°00′00.0″\n    test 93 toDMS(dms): 45°59′59.96″\n    test 94 toDMS(dms): 45°59′59.964″\n    test 95 toDMS(d60): 45.5959964\n    test 96 toDMS(d60): 45°45′45.36″\n    test 97 toDMS(d60): 45d45m45.36s\n    test 98 normDMS: 45°45′45.36″\n    test 99 parseDMS: 45.7626\n    test 100 toDMS(d): 45.7626°\n    test 101 toDMS(d): -45.7626°\n    test 102 toDMS(dm): 45°45.756′\n    test 103 toDMS(dm): -45°45.756′\n    test 104 toDMS(dms): 45°45′45.36″\n    test 105 toDMS(dms): -45°45′45.36″\n    test 106 toDMS(deg): 45.7626\n    test 107 toDMS(deg): -45.7626\n    test 108 toDMS(min): 4545.756\n    test 109 toDMS(min): -4545.756\n    test 110 toDMS(sec): 454545.36\n    test 111 toDMS(sec): -454545.36\n    test 112 toDMS(rad): 0.79871\n    test 113 toDMS(rad): -0.79871\n    test 114 toDMS(d60): 45.4545\n    test 115 toDMS(d60): -45.4545\n    test 116 toDMS(d): 45.7626°\n    test 117 toDMS(d): -45.7626°\n    test 118 toDMS(dm): 45°45.7560′\n    test 119 toDMS(dm): -45°45.7560′\n    test 120 toDMS(dms): 45°45′45.36″\n    test 121 toDMS(dms): -45°45′45.36″\n    test 122 toDMS(deg): 45.762600\n    test 123 toDMS(deg): -45.762600\n    test 124 toDMS(min): 4545.75600\n    test 125 toDMS(min): -4545.75600\n    test 126 toDMS(sec): 454545.360\n    test 127 toDMS(sec): -454545.360\n    test 128 toDMS(rad): 0.798708\n    test 129 toDMS(rad): -0.798708\n    test 130 toDMS(d60): 45.4545360\n    test 131 toDMS(d60): -45.4545360\n    test 132 toDMS(-d): 45.7626°\n    test 133 toDMS(-d): -45.7626°\n    test 134 toDMS(-dm): 45°45.7560′\n    test 135 toDMS(-dm): -45°45.7560′\n    test 136 toDMS(-dms): 45°45′45.36″\n    test 137 toDMS(-dms): -45°45′45.36″\n    test 138 toDMS(-deg): 45.762600\n    test 139 toDMS(-deg): -45.762600\n    test 140 toDMS(-min): 4545.75600\n    test 141 toDMS(-min): -4545.75600\n    test 142 toDMS(-sec): 454545.360\n    test 143 toDMS(-sec): -454545.360\n    test 144 toDMS(-rad): 0.798708\n    test 145 toDMS(-rad): -0.798708\n    test 146 toDMS(-d60): 45.45453600\n    test 147 toDMS(-d60): -45.45453600\n    test 148 toDMS(+d): +45.7626°\n    test 149 toDMS(+d): -45.7626°\n    test 150 toDMS(+dm): +45°45.7560′\n    test 151 toDMS(+dm): -45°45.7560′\n    test 152 toDMS(+dms): +45°45′45.36″\n    test 153 toDMS(+dms): -45°45′45.36″\n    test 154 toDMS(+deg): +45.762600\n    test 155 toDMS(+deg): -45.762600\n    test 156 toDMS(+min): +4545.75600\n    test 157 toDMS(+min): -4545.75600\n    test 158 toDMS(+sec): +454545.360\n    test 159 toDMS(+sec): -454545.360\n    test 160 toDMS(+rad): +0.798708\n    test 161 toDMS(+rad): -0.798708\n    test 162 toDMS(+d60): +45.454536\n    test 163 toDMS(+d60): -45.454536\n    test 164 compassPoint(1,): N\n    test 165 compassPoint(0,): N\n    test 166 compassPoint(-1,): N\n    test 167 compassPoint(359,): N\n    test 168 compassPoint(24,): NNE\n    test 169 compassPoint(24, 1): N\n    test 170 compassPoint(24, 2): NE\n    test 171 compassPoint(24, 3): NNE\n    test 172 compassPoint(226,): SW\n    test 173 compassPoint(226, 1): W\n    test 174 compassPoint(226, 2): SW\n    test 175 compassPoint(226, 3): SW\n    test 176 compassPoint(237,): WSW\n    test 177 compassPoint(237, 1): W\n    test 178 compassPoint(237, 2): SW\n    test 179 compassPoint(237, 3): WSW\n    test 180 compassPoint(11.25,): NNE\n    test 181 compassPoint(11.249,): N\n    test 182 compassPoint(-11.25,): N\n    test 183 compassPoint(348.749,): NNW\n    test 184 compassPoint(45, 1): E\n    test 185 compassPoint(44.99, 1): N\n    test 186 compassPoint(45, 2): NE\n    test 187 compassPoint(44.99, 2): NE\n    test 188 compassPoint(45, 3): NE\n    test 189 compassPoint(44.99, 3): NE\n    test 190 compassPoint(45, 4): NE\n    test 191 compassPoint(44.99, 4): NE\n    test 192 compassPoint(22.5, 1): N\n    test 193 compassPoint(22.49, 1): N\n    test 194 compassPoint(22.5, 2): NE\n    test 195 compassPoint(22.49, 2): N\n    test 196 compassPoint(22.5, 3): NNE\n    test 197 compassPoint(22.49, 3): NNE\n    test 198 compassPoint(22.5, 4): NNE\n    test 199 compassPoint(22.49, 4): NNE\n    test 200 compassPoint(11.25, 1): N\n    test 201 compassPoint(11.249, 1): N\n    test 202 compassPoint(11.25, 2): N\n    test 203 compassPoint(11.249, 2): N\n    test 204 compassPoint(11.25, 3): NNE\n    test 205 compassPoint(11.249, 3): N\n    test 206 compassPoint(11.25, 4): NbE\n    test 207 compassPoint(11.249, 4): NbE\n    test 208 compassPoint(24, 1): N\n    test 209 compassPoint(24, 2): NE\n    test 210 compassPoint(24, 3): NNE\n    test 211 compassPoint(24,): NNE\n    test 212 compassPoint(18, 3): NNE\n    test 213 compassPoint(11, 4): NbE\n    test 214 compassPoint(30, 4): NEbN\n    test 215 compassPoint(11.25): NbE\n    test 216 compassPoint(33.75): NEbN\n    test 217 compassPoint(56.25): NEbE\n    test 218 compassPoint(78.75): EbN\n    test 219 compassPoint(101.25): EbS\n    test 220 compassPoint(123.75): SEbE\n    test 221 compassPoint(146.25): SEbS\n    test 222 compassPoint(168.75): SbE\n    test 223 compassPoint(191.25): SbW\n    test 224 compassPoint(213.75): SWbS\n    test 225 compassPoint(236.25): SWbW\n    test 226 compassPoint(258.75): WbS\n    test 227 compassPoint(281.25): WbN\n    test 228 compassPoint(303.75): NWbW\n    test 229 compassPoint(326.25): NWbN\n    test 230 compassPoint(348.75): NbW\n    test 231 _DEG: +1.0101\n    test 232 _MIN: +0.606′\n    test 233 _SEC: +36.36″\n\n    all 233 testDms.py tests passed (pygeodesy 26.3.26 PyPy 7.3.17 Python 3.10.14 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 4.548 ms\nrunning /opt/local/bin/p....y3.10 -W default ~/PyGeodesy/test/testEcef.py\n# lazily imported pygeodesy.basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.DeprecationWarnings from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isint from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isLazy from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.issubclassof from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.iterNumpy2over from .iters by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.LazyImportError from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.karney by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.NN from .interns by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.normDMS from .dms by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.pairs from .streprs by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.printf from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.property_RO from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.typename from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.Datums from .datums by testEcef.py line 11\n# lazily imported pygeodesy.EcefError from .ecef by testEcef.py line 11\n# lazily imported pygeodesy.EcefFarrell21 from .ecef by testEcef.py line 11\n# lazily imported pygeodesy.EcefFarrell22 from .ecef by testEcef.py line 11\n# lazily imported pygeodesy.EcefKarney from .ecef by testEcef.py line 11\n# lazily imported pygeodesy.EcefMatrix from .ecef by testEcef.py line 11\n# lazily imported pygeodesy.EcefSudano from .ecef by testEcef.py line 11\n# lazily imported pygeodesy.EcefUPC from .ecef by testEcef.py line 11\n# lazily imported pygeodesy.EcefVeness from .ecef by testEcef.py line 11\n# lazily imported pygeodesy.EcefYou from .ecef by testEcef.py line 11\n# lazily imported pygeodesy.Ellipsoids from .ellipsoids by testEcef.py line 11\n# lazily imported pygeodesy.fstr from .streprs by testEcef.py line 11\n# lazily imported pygeodesy.latDMS from .dms by testEcef.py line 11\n# lazily imported pygeodesy.lonDMS from .dms by testEcef.py line 11\n# lazily imported pygeodesy.parse3llh from .dms by testEcef.py line 11\n# lazily imported pygeodesy.sphericalNvector by testEcef.py line 11\n# lazily imported pygeodesy.ellipsoidalExact by testEcef.py line 258\n# lazily imported pygeodesy.ellipsoidalKarney by testEcef.py line 258\n# lazily imported pygeodesy.ellipsoidalNvector by testEcef.py line 258\n# lazily imported pygeodesy.ellipsoidalVincenty by testEcef.py line 258\n# lazily imported pygeodesy.sphericalTrigonometry by testEcef.py line 258\n\n    testing testEcef.py 25.08.24 isLazy=3\n\n    test 1 EcefKarney: ...\n    test 2 name: Test\n    test 3 toStr: EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name='Test')  FAILED, KNOWN, expected EcefKarney\n    test 4 a, f: a=6378137.0, f=0.003352811, datum=Datum(name='_Test', ellipsoid=Ellipsoids._Test, transform=Transforms.Identity), name='Test'  FAILED, KNOWN, expected EcefKarney\n    test 5 copy(<class 'type'>): (<class 'pygeodesy.ecef.EcefKarney'>, True)\n    test 6 EcefKarney.copy(): (<class 'pygeodesy.ecef.EcefKarney'>, True)\n    test 7 forward: 27.99, 86.93, 8820.0\n    test 8 forward: 302271.4, 5635928.4, 2979666.1\n    test 9 name: Test\n    test 10 reverse: 302271.4, 5635928.4, 2979666.1\n    test 11 reverse: 27.99, 86.93, 8820.01\n    test 12 case: 1\n    test 13 iteration: None\n    test 14 name: Test\n    test 15 reverse: 302000.0, 5636000.0, 2980000.0\n    test 16 reverse: 27.99, 86.93, 9027.03\n    test 17 case: 1\n    test 18 iteration: None\n    test 19 forward: 27.99, 86.93, 8820.0\n    test 20 forward: 302271.43, 5635928.37, 2979666.13\n    test 21 forward: 33.3, 44.4, 6000.0\n    test 22 forward: 3816209.6, 3737108.55, 3485109.57\n    test 23 reverse: 3816209.6, 3737108.55, 3485109.57\n    test 24 reverse: 33.3, 44.4, 5999.996\n    test 25 case: 1\n    test 26 iteration: None\n    test 27 reverse: 30000.0, 30000.0, 0.0\n    test 28 reverse: 6.483, 45.0, -6335709.726\n    test 29 case: 3\n    test 30 iteration: None\n    test 31 forward: 6.483, 45.0, -6335709.726\n    test 32 forward: 30000.0, 30000.0, -0.0\n    test 33 Vermeille: -168.919\n    test 34 Vermeille: 190.939\n    test 35 Vermeille: (65.772506, 169.060801)\n    test 36 Vermeille: (1.147947, 3.141593)\n    test 37 reverse-1: 45.0, 120.0, 1000.0\n    test 38 forward-1: -2259149.0, 3912960.8, 4488055.5\n    test 39 xyzh-1: -2259149.0, 3912960.8, 4488055.5, 1000.0\n    test 40 philam-1: 0.7854, 2.0944\n    test 41 reverse-2: 45.0, 120.0, 2000.0\n    test 42 forward-2: -2259502.5, 3913573.2, 4488762.6\n    test 43 xyzh-2: -2259502.5, 3913573.2, 4488762.6, 2000.0\n    test 44 philam-2: 0.7854, 2.0944\n    test 45 reverse-3: 45.0, 120.0, 3000.0\n    test 46 forward-3: -2259856.1, 3914185.6, 4489469.7\n    test 47 xyzh-3: -2259856.1, 3914185.6, 4489469.7, 3000.0\n    test 48 philam-3: 0.7854, 2.0944\n    test 49 reverse-4: 45.0, 120.0, 4000.0\n    test 50 forward-4: -2260209.7, 3914798.0, 4490176.8\n    test 51 xyzh-4: -2260209.7, 3914798.0, 4490176.8, 4000.0\n    test 52 philam-4: 0.7854, 2.0944\n    test 53 reverse-5: 45.0, 120.0, 10000.0\n    test 54 forward-5: -2262331.0, 3918472.2, 4494419.5\n    test 55 xyzh-5: -2262331.0, 3918472.2, 4494419.5, 10000.0\n    test 56 philam-5: 0.7854, 2.0944\n    test 57 reverse-6: 45.0, 120.0, 20000.0\n    test 58 forward-6: -2265866.5, 3924595.9, 4501490.5\n    test 59 xyzh-6: -2265866.5, 3924595.9, 4501490.5, 20000.0\n    test 60 philam-6: 0.7854, 2.0944\n    test 61 reverse-7: 45.0, 120.0, 100000.0\n    test 62 forward-7: -2294150.8, 3973585.7, 4558059.1\n    test 63 xyzh-7: -2294150.8, 3973585.7, 4558059.1, 100000.0\n    test 64 philam-7: 0.7854, 2.0944\n    test 65 reverse-8: 45.0, 120.0, 800000.0\n    test 66 forward-8: -2541638.2, 4402246.4, 5053033.8\n    test 67 xyzh-8: -2541638.2, 4402246.4, 5053033.8, 800000.0\n    test 68 philam-8: 0.7854, 2.0944\n    test 69 reverse-9: 45.0, 120.0, 1000000.0\n    test 70 forward-9: -2612348.8, 4524720.9, 5194455.2\n    test 71 xyzh-9: -2612348.8, 4524720.9, 5194455.2, 1000000.0\n    test 72 philam-9: 0.7854, 2.0944\n    test 73 sudano: 45.0, 0.0, 100000.0\n    test 74 name: OS-UK\n    test 75 forward: 53.61199036, -1.66444222, 299.8\n    test 76 forward: 3790644.9, -110149.21, 5111482.97\n    test 77 reverse: 3790644.9, -110149.21, 5111482.97\n    test 78 reverse: 53.61199036, -1.66444223\n    test 79 reverse.lat: 53°36′43.1653″N\n    test 80 reverse.lon: 001°39′51.992″W\n    test 81 reverse.height: 299.800\n    test 82 case: 1\n    test 83 iteration: None\n    test 84 forward: -2430601.827685, -4702442.703125, 3546587.358103\n    test 85 reverse: 34.0, -117.333569, 251.702\n    test 86 forward_: -2430601.812953, -4702442.744488, 3546587.313654, 34.0, -117.333569, 251.702\n    test 87 EcefError: (0.0, 0.0, 0.0, 90.0, 0, -6356752.31414, 3, None, Datum(name='Datum', ellipsoid=Ellipsoids.GRS80, transform=Transforms.Identity))  FAILED, KNOWN, expected (0.0, 0.0, ...)\n# imported pygeodesy.basics into errors.py line 531\n    test 88 EcefError: height (None), lat (None) or lon (None)  FAILED, KNOWN, expected lat (None), lon (None) ...\n    test 89 EcefKarney: EcefKarney(a=None, f=None) ellipsoid: type(earth) (None): not a Datum, Ellipsoid, Ellipsoid2 or a_f2Tuple  FAILED, KNOWN, expected EcefKarney\n    test 90 Mx: (0.888348, 0.25558, -0.381466, -0.45917, 0.494465, -0.738015, 0.0, 0.830773, 0.556612)\n\n    test 91 EcefFarrell21: ...\n    test 92 name: Test\n    test 93 toStr: EcefFarrell21(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name='Test')  FAILED, KNOWN, expected EcefFarrell21\n    test 94 a, f: a=6378137.0, f=0.003352811, datum=Datum(name='_Test', ellipsoid=Ellipsoids._Test, transform=Transforms.Identity), name='Test'  FAILED, KNOWN, expected EcefFarrell21\n    test 95 copy(<class 'type'>): (<class 'pygeodesy.ecef.EcefFarrell21'>, True)\n    test 96 EcefFarrell21.copy(): (<class 'pygeodesy.ecef.EcefFarrell21'>, True)\n    test 97 forward: 27.99, 86.93, 8820.0\n    test 98 forward: 302271.4, 5635928.4, 2979666.1\n    test 99 name: Test\n    test 100 reverse: 302271.4, 5635928.4, 2979666.1\n    test 101 reverse: 27.99, 86.93, 8820.01\n    test 102 case: 1\n    test 103 iteration: None\n    test 104 name: Test\n    test 105 reverse: 302000.0, 5636000.0, 2980000.0\n    test 106 reverse: 27.99, 86.93, 9027.03\n    test 107 case: 1\n    test 108 iteration: None\n    test 109 forward: 27.99, 86.93, 8820.0\n    test 110 forward: 302271.43, 5635928.37, 2979666.13\n    test 111 forward: 33.3, 44.4, 6000.0\n    test 112 forward: 3816209.6, 3737108.55, 3485109.57\n    test 113 reverse: 3816209.6, 3737108.55, 3485109.57\n    test 114 reverse: 33.3, 44.4, 5999.996\n    test 115 case: 1\n    test 116 iteration: None\n    test 117 reverse: 30000.0, 30000.0, 0.0\n    test 118 reverse: 0.0, 45.0, -6335710.593  FAILED, KNOWN, expected 6.483, 45.0, -6335709.726\n    test 119 case: 3\n    test 120 iteration: None\n    test 121 forward: 6.483, 45.0, -6335709.726\n    test 122 forward: 30000.0, 30000.0, -0.0\n    test 123 Vermeille: -168.919\n    test 124 Vermeille: 190.939\n    test 125 Vermeille: (65.772506, 169.060801)\n    test 126 Vermeille: (1.147947, 3.141593)\n    test 127 reverse-1: 45.0, 120.0, 1000.0\n    test 128 forward-1: -2259149.0, 3912960.8, 4488055.5\n    test 129 xyzh-1: -2259149.0, 3912960.8, 4488055.5, 1000.0\n    test 130 philam-1: 0.7854, 2.0944\n    test 131 reverse-2: 45.0, 120.0, 2000.0\n    test 132 forward-2: -2259502.5, 3913573.2, 4488762.6\n    test 133 xyzh-2: -2259502.5, 3913573.2, 4488762.6, 2000.0\n    test 134 philam-2: 0.7854, 2.0944\n    test 135 reverse-3: 45.0, 120.0, 3000.0\n    test 136 forward-3: -2259856.1, 3914185.6, 4489469.7\n    test 137 xyzh-3: -2259856.1, 3914185.6, 4489469.7, 3000.0\n    test 138 philam-3: 0.7854, 2.0944\n    test 139 reverse-4: 45.0, 120.0, 4000.0\n    test 140 forward-4: -2260209.7, 3914798.0, 4490176.8\n    test 141 xyzh-4: -2260209.7, 3914798.0, 4490176.8, 4000.0\n    test 142 philam-4: 0.7854, 2.0944\n    test 143 reverse-5: 45.0, 120.0, 10000.0\n    test 144 forward-5: -2262331.0, 3918472.2, 4494419.5\n    test 145 xyzh-5: -2262331.0, 3918472.2, 4494419.5, 10000.0\n    test 146 philam-5: 0.7854, 2.0944\n    test 147 reverse-6: 45.0, 120.0, 20000.0\n    test 148 forward-6: -2265866.5, 3924595.9, 4501490.5\n    test 149 xyzh-6: -2265866.5, 3924595.9, 4501490.5, 20000.0\n    test 150 philam-6: 0.7854, 2.0944\n    test 151 reverse-7: 45.0, 120.0, 100000.0\n    test 152 forward-7: -2294150.8, 3973585.7, 4558059.1\n    test 153 xyzh-7: -2294150.8, 3973585.7, 4558059.1, 100000.0\n    test 154 philam-7: 0.7854, 2.0944\n    test 155 reverse-8: 45.0, 120.0, 800000.0\n    test 156 forward-8: -2541638.2, 4402246.4, 5053033.8\n    test 157 xyzh-8: -2541638.2, 4402246.4, 5053033.8, 800000.0\n    test 158 philam-8: 0.7854, 2.0944\n    test 159 reverse-9: 45.0, 120.0, 1000000.0\n    test 160 forward-9: -2612348.8, 4524720.9, 5194455.2\n    test 161 xyzh-9: -2612348.8, 4524720.9, 5194455.2, 1000000.0\n    test 162 philam-9: 0.7854, 2.0944\n    test 163 sudano: 45.0, 0.0, 100000.0\n    test 164 name: OS-UK\n    test 165 forward: 53.61199036, -1.66444222, 299.8\n    test 166 forward: 3790644.9, -110149.21, 5111482.97\n    test 167 reverse: 3790644.9, -110149.21, 5111482.97\n    test 168 reverse: 53.61199036, -1.66444223\n    test 169 reverse.lat: 53°36′43.1653″N\n    test 170 reverse.lon: 001°39′51.992″W\n    test 171 reverse.height: 299.800\n    test 172 case: 1\n    test 173 iteration: None\n    test 174 forward: -2430601.827685, -4702442.703125, 3546587.358103\n    test 175 reverse: 34.0, -117.333569, 251.702\n    test 176 forward_: -2430601.812953, -4702442.744488, 3546587.313654, 34.0, -117.333569, 251.702\n    test 177 EcefError: (0.0, 0.0, 0.0, 90.0, 0, -6356752.31414, 2, None, Datum(name='Datum', ellipsoid=Ellipsoids.GRS80, transform=Transforms.Identity))  FAILED, KNOWN, expected (0.0, 0.0, ...)\n    test 178 EcefError: height (None), lat (None) or lon (None)  FAILED, KNOWN, expected lat (None), lon (None) ...\n    test 179 EcefFarrell21: EcefFarrell21(a=None, f=None) ellipsoid: type(earth) (None): not a Datum, Ellipsoid, Ellipsoid2 or a_f2Tuple  FAILED, KNOWN, expected EcefFarrell21\n    test 180 Mx: (0.888348, 0.25558, -0.381466, -0.45917, 0.494465, -0.738015, 0.0, 0.830773, 0.556612)\n\n    test 181 EcefFarrell22: ...\n    test 182 name: Test\n    test 183 toStr: EcefFarrell22(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name='Test')  FAILED, KNOWN, expected EcefFarrell22\n    test 184 a, f: a=6378137.0, f=0.003352811, datum=Datum(name='_Test', ellipsoid=Ellipsoids._Test, transform=Transforms.Identity), name='Test'  FAILED, KNOWN, expected EcefFarrell22\n    test 185 copy(<class 'type'>): (<class 'pygeodesy.ecef.EcefFarrell22'>, True)\n    test 186 EcefFarrell22.copy(): (<class 'pygeodesy.ecef.EcefFarrell22'>, True)\n    test 187 forward: 27.99, 86.93, 8820.0\n    test 188 forward: 302271.4, 5635928.4, 2979666.1\n    test 189 name: Test\n    test 190 reverse: 302271.4, 5635928.4, 2979666.1\n    test 191 reverse: 27.99, 86.93, 8820.01\n    test 192 case: 1\n    test 193 iteration: None\n    test 194 name: Test\n    test 195 reverse: 302000.0, 5636000.0, 2980000.0\n    test 196 reverse: 27.99, 86.93, 9027.03\n    test 197 case: 1\n    test 198 iteration: None\n    test 199 forward: 27.99, 86.93, 8820.0\n    test 200 forward: 302271.43, 5635928.37, 2979666.13\n    test 201 forward: 33.3, 44.4, 6000.0\n    test 202 forward: 3816209.6, 3737108.55, 3485109.57\n    test 203 reverse: 3816209.6, 3737108.55, 3485109.57\n    test 204 reverse: 33.3, 44.4, 5999.996\n    test 205 case: 1\n    test 206 iteration: None\n    test 207 reverse: 30000.0, 30000.0, 0.0\n    test 208 reverse: 0.0, 45.0, -6335710.593  FAILED, KNOWN, expected 6.483, 45.0, -6335709.726\n    test 209 case: 3\n    test 210 iteration: None\n    test 211 forward: 6.483, 45.0, -6335709.726\n    test 212 forward: 30000.0, 30000.0, -0.0\n    test 213 Vermeille: -168.919\n    test 214 Vermeille: 190.939\n    test 215 Vermeille: (65.772506, 169.060801)\n    test 216 Vermeille: (1.147947, 3.141593)\n    test 217 reverse-1: 45.0, 120.0, 1000.0\n    test 218 forward-1: -2259149.0, 3912960.8, 4488055.5\n    test 219 xyzh-1: -2259149.0, 3912960.8, 4488055.5, 1000.0\n    test 220 philam-1: 0.7854, 2.0944\n    test 221 reverse-2: 45.0, 120.0, 2000.0\n    test 222 forward-2: -2259502.5, 3913573.2, 4488762.6\n    test 223 xyzh-2: -2259502.5, 3913573.2, 4488762.6, 2000.0\n    test 224 philam-2: 0.7854, 2.0944\n    test 225 reverse-3: 45.0, 120.0, 3000.0\n    test 226 forward-3: -2259856.1, 3914185.6, 4489469.7\n    test 227 xyzh-3: -2259856.1, 3914185.6, 4489469.7, 3000.0\n    test 228 philam-3: 0.7854, 2.0944\n    test 229 reverse-4: 45.0, 120.0, 4000.0\n    test 230 forward-4: -2260209.7, 3914798.0, 4490176.8\n    test 231 xyzh-4: -2260209.7, 3914798.0, 4490176.8, 4000.0\n    test 232 philam-4: 0.7854, 2.0944\n    test 233 reverse-5: 45.0, 120.0, 10000.0\n    test 234 forward-5: -2262331.0, 3918472.2, 4494419.5\n    test 235 xyzh-5: -2262331.0, 3918472.2, 4494419.5, 10000.0\n    test 236 philam-5: 0.7854, 2.0944\n    test 237 reverse-6: 45.0, 120.0, 20000.0\n    test 238 forward-6: -2265866.5, 3924595.9, 4501490.5\n    test 239 xyzh-6: -2265866.5, 3924595.9, 4501490.5, 20000.0\n    test 240 philam-6: 0.7854, 2.0944\n    test 241 reverse-7: 45.0, 120.0, 100000.0\n    test 242 forward-7: -2294150.8, 3973585.7, 4558059.1\n    test 243 xyzh-7: -2294150.8, 3973585.7, 4558059.1, 100000.0\n    test 244 philam-7: 0.7854, 2.0944\n    test 245 reverse-8: 45.0, 120.0, 800000.005  FAILED, KNOWN, expected 45.0, 120.0, 800000.0\n    test 246 forward-8: -2541638.2, 4402246.4, 5053033.8\n    test 247 xyzh-8: -2541638.2, 4402246.4, 5053033.8, 800000.0\n    test 248 philam-8: 0.7854, 2.0944\n    test 249 reverse-9: 45.0, 120.0, 1000000.007  FAILED, KNOWN, expected 45.0, 120.0, 1000000.0\n    test 250 forward-9: -2612348.8, 4524720.9, 5194455.2\n    test 251 xyzh-9: -2612348.8, 4524720.9, 5194455.2, 1000000.0\n    test 252 philam-9: 0.7854, 2.0944\n    test 253 sudano: 45.0, 0.0, 100000.0\n    test 254 name: OS-UK\n    test 255 forward: 53.61199036, -1.66444222, 299.8\n    test 256 forward: 3790644.9, -110149.21, 5111482.97\n    test 257 reverse: 3790644.9, -110149.21, 5111482.97\n    test 258 reverse: 53.61199036, -1.66444223\n    test 259 reverse.lat: 53°36′43.1653″N\n    test 260 reverse.lon: 001°39′51.992″W\n    test 261 reverse.height: 299.800\n    test 262 case: 1\n    test 263 iteration: None\n    test 264 forward: -2430601.827685, -4702442.703125, 3546587.358103\n    test 265 reverse: 34.0, -117.333569, 251.702\n    test 266 forward_: -2430601.812953, -4702442.744488, 3546587.313654, 34.0, -117.333569, 251.702\n    test 267 EcefError: (0.0, 0.0, 0.0, 90.0, 0, -6356752.31414, 2, None, Datum(name='Datum', ellipsoid=Ellipsoids.GRS80, transform=Transforms.Identity))  FAILED, KNOWN, expected (0.0, 0.0, ...)\n    test 268 EcefError: height (None), lat (None) or lon (None)  FAILED, KNOWN, expected lat (None), lon (None) ...\n    test 269 EcefFarrell22: EcefFarrell22(a=None, f=None) ellipsoid: type(earth) (None): not a Datum, Ellipsoid, Ellipsoid2 or a_f2Tuple  FAILED, KNOWN, expected EcefFarrell22\n    test 270 Mx: (0.888348, 0.25558, -0.381466, -0.45917, 0.494465, -0.738015, 0.0, 0.830773, 0.556612)\n\n    test 271 EcefVeness: ...\n    test 272 name: Test\n    test 273 toStr: EcefVeness(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name='Test')  FAILED, KNOWN, expected EcefVeness\n    test 274 a, f: a=6378137.0, f=0.003352811, datum=Datum(name='_Test', ellipsoid=Ellipsoids._Test, transform=Transforms.Identity), name='Test'  FAILED, KNOWN, expected EcefVeness\n    test 275 copy(<class 'type'>): (<class 'pygeodesy.ecef.EcefVeness'>, True)\n    test 276 EcefVeness.copy(): (<class 'pygeodesy.ecef.EcefVeness'>, True)\n    test 277 forward: 27.99, 86.93, 8820.0\n    test 278 forward: 302271.4, 5635928.4, 2979666.1\n    test 279 name: Test\n    test 280 reverse: 302271.4, 5635928.4, 2979666.1\n    test 281 reverse: 27.99, 86.93, 8820.01\n    test 282 case: 1\n    test 283 iteration: None\n    test 284 name: Test\n    test 285 reverse: 302000.0, 5636000.0, 2980000.0\n    test 286 reverse: 27.99, 86.93, 9027.03\n    test 287 case: 1\n    test 288 iteration: None\n    test 289 forward: 27.99, 86.93, 8820.0\n    test 290 forward: 302271.43, 5635928.37, 2979666.13\n    test 291 forward: 33.3, 44.4, 6000.0\n    test 292 forward: 3816209.6, 3737108.55, 3485109.57\n    test 293 reverse: 3816209.6, 3737108.55, 3485109.57\n    test 294 reverse: 33.3, 44.4, 5999.996\n    test 295 case: 1\n    test 296 iteration: None\n    test 297 reverse: 30000.0, 30000.0, 0.0\n    test 298 reverse: 0.0, 45.0, -6335710.593  FAILED, KNOWN, expected 6.483, 45.0, -6335709.726\n    test 299 case: 3\n    test 300 iteration: None\n    test 301 forward: 6.483, 45.0, -6335709.726\n    test 302 forward: 30000.0, 30000.0, -0.0\n    test 303 Vermeille: -168.919\n    test 304 Vermeille: 190.939\n    test 305 Vermeille: (65.772506, 169.060801)\n    test 306 Vermeille: (1.147947, 3.141593)\n    test 307 reverse-1: 45.0, 120.0, 1000.0\n    test 308 forward-1: -2259149.0, 3912960.8, 4488055.5\n    test 309 xyzh-1: -2259149.0, 3912960.8, 4488055.5, 1000.0\n    test 310 philam-1: 0.7854, 2.0944\n    test 311 reverse-2: 45.0, 120.0, 2000.0\n    test 312 forward-2: -2259502.5, 3913573.2, 4488762.6\n    test 313 xyzh-2: -2259502.5, 3913573.2, 4488762.6, 2000.0\n    test 314 philam-2: 0.7854, 2.0944\n    test 315 reverse-3: 45.0, 120.0, 3000.0\n    test 316 forward-3: -2259856.1, 3914185.6, 4489469.7\n    test 317 xyzh-3: -2259856.1, 3914185.6, 4489469.7, 3000.0\n    test 318 philam-3: 0.7854, 2.0944\n    test 319 reverse-4: 45.0, 120.0, 4000.0\n    test 320 forward-4: -2260209.7, 3914798.0, 4490176.8\n    test 321 xyzh-4: -2260209.7, 3914798.0, 4490176.8, 4000.0\n    test 322 philam-4: 0.7854, 2.0944\n    test 323 reverse-5: 45.0, 120.0, 10000.0\n    test 324 forward-5: -2262331.0, 3918472.2, 4494419.5\n    test 325 xyzh-5: -2262331.0, 3918472.2, 4494419.5, 10000.0\n    test 326 philam-5: 0.7854, 2.0944\n    test 327 reverse-6: 45.0, 120.0, 20000.0\n    test 328 forward-6: -2265866.5, 3924595.9, 4501490.5\n    test 329 xyzh-6: -2265866.5, 3924595.9, 4501490.5, 20000.0\n    test 330 philam-6: 0.7854, 2.0944\n    test 331 reverse-7: 45.0, 120.0, 100000.0\n    test 332 forward-7: -2294150.8, 3973585.7, 4558059.1\n    test 333 xyzh-7: -2294150.8, 3973585.7, 4558059.1, 100000.0\n    test 334 philam-7: 0.7854, 2.0944\n    test 335 reverse-8: 45.0, 120.0, 800000.0\n    test 336 forward-8: -2541638.2, 4402246.4, 5053033.8\n    test 337 xyzh-8: -2541638.2, 4402246.4, 5053033.8, 800000.0\n    test 338 philam-8: 0.7854, 2.0944\n    test 339 reverse-9: 45.0, 120.0, 1000000.0\n    test 340 forward-9: -2612348.8, 4524720.9, 5194455.2\n    test 341 xyzh-9: -2612348.8, 4524720.9, 5194455.2, 1000000.0\n    test 342 philam-9: 0.7854, 2.0944\n    test 343 sudano: 45.0, 0.0, 100000.0\n    test 344 name: OS-UK\n    test 345 forward: 53.61199036, -1.66444222, 299.8\n    test 346 forward: 3790644.9, -110149.21, 5111482.97\n    test 347 reverse: 3790644.9, -110149.21, 5111482.97\n    test 348 reverse: 53.61199036, -1.66444223\n    test 349 reverse.lat: 53°36′43.1653″N\n    test 350 reverse.lon: 001°39′51.992″W\n    test 351 reverse.height: 299.800\n    test 352 case: 1\n    test 353 iteration: None\n    test 354 forward: -2430601.827685, -4702442.703125, 3546587.358103\n    test 355 reverse: 34.0, -117.333569, 251.702\n    test 356 forward_: -2430601.812953, -4702442.744488, 3546587.313654, 34.0, -117.333569, 251.702\n    test 357 EcefError: (0.0, 0.0, 0.0, 90.0, 0, -6356752.31414, 2, None, Datum(name='Datum', ellipsoid=Ellipsoids.GRS80, transform=Transforms.Identity))  FAILED, KNOWN, expected (0.0, 0.0, ...)\n    test 358 EcefError: height (None), lat (None) or lon (None)  FAILED, KNOWN, expected lat (None), lon (None) ...\n    test 359 EcefVeness: EcefVeness(a=None, f=None) ellipsoid: type(earth) (None): not a Datum, Ellipsoid, Ellipsoid2 or a_f2Tuple  FAILED, KNOWN, expected EcefVeness\n    test 360 Mx: (0.888348, 0.25558, -0.381466, -0.45917, 0.494465, -0.738015, 0.0, 0.830773, 0.556612)\n\n    test 361 EcefSudano: ...\n    test 362 name: Test\n    test 363 toStr: EcefSudano(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name='Test')  FAILED, KNOWN, expected EcefSudano\n    test 364 a, f: a=6378137.0, f=0.003352811, datum=Datum(name='_Test', ellipsoid=Ellipsoids._Test, transform=Transforms.Identity), name='Test'  FAILED, KNOWN, expected EcefSudano\n    test 365 copy(<class 'type'>): (<class 'pygeodesy.ecef.EcefSudano'>, True)\n    test 366 EcefSudano.copy(): (<class 'pygeodesy.ecef.EcefSudano'>, True)\n    test 367 forward: 27.99, 86.93, 8820.0\n    test 368 forward: 302271.4, 5635928.4, 2979666.1\n    test 369 name: Test\n    test 370 reverse: 302271.4, 5635928.4, 2979666.1\n    test 371 reverse: 28.01, 86.93, 8819.58  FAILED, KNOWN, expected 27.99, 86.93, 8820.01\n    test 372 case: 1\n    test 373 iteration: 6\n    test 374 name: Test\n    test 375 reverse: 302000.0, 5636000.0, 2980000.0\n    test 376 reverse: 28.01, 86.93, 9026.6  FAILED, KNOWN, expected 27.99, 86.93, 9027.03\n    test 377 case: 1\n    test 378 iteration: 6\n    test 379 forward: 27.99, 86.93, 8820.0\n    test 380 forward: 302271.43, 5635928.37, 2979666.13\n    test 381 forward: 33.3, 44.4, 6000.0\n    test 382 forward: 3816209.6, 3737108.55, 3485109.57\n    test 383 reverse: 3816209.6, 3737108.55, 3485109.57\n    test 384 reverse: 33.335, 44.4, 5998.836  FAILED, KNOWN, expected 33.3, 44.4, 5999.996\n    test 385 case: 1\n    test 386 iteration: 6\n    test 387 reverse: 30000.0, 30000.0, 0.0\n    test 388 reverse: 0.0, 45.0, -6335710.593  FAILED, KNOWN, expected 6.483, 45.0, -6335709.726\n    test 389 case: 3\n    test 390 iteration: 0\n    test 391 forward: 6.483, 45.0, -6335709.726\n    test 392 forward: 30000.0, 30000.0, -0.0\n    test 393 Vermeille: -168.919\n    test 394 Vermeille: 190.939\n    test 395 Vermeille: (65.979481, 169.060801)  FAILED, KNOWN, expected (65.772506, 169.060801)\n    test 396 Vermeille: (1.151559, 3.141593)  FAILED, KNOWN, expected (1.147947, 3.141593)\n    test 397 reverse-1: 45.08, 120.0, 993.852  FAILED, KNOWN, expected 45.0, 120.0, 1000.0\n    test 398 forward-1: -2256016.0, 3907534.4, 4494304.0  FAILED, KNOWN, expected -2259149.0, 3912960.8, 4488055.5\n    test 399 xyzh-1: -2256016.0, 3907534.4, 4494304.0, 993.9  FAILED, KNOWN, expected -2259149.0, 3912960.8, 4488055.5, 1000.0\n    test 400 philam-1: 0.7868, 2.0944\n    test 401 reverse-2: 45.08, 120.0, 1993.853  FAILED, KNOWN, expected 45.0, 120.0, 2000.0\n    test 402 forward-2: -2256369.6, 3908146.8, 4495011.2  FAILED, KNOWN, expected -2259502.5, 3913573.2, 4488762.6\n    test 403 xyzh-2: -2256369.6, 3908146.8, 4495011.2, 1993.9  FAILED, KNOWN, expected -2259502.5, 3913573.2, 4488762.6, 2000.0\n    test 404 philam-2: 0.7868, 2.0944\n    test 405 reverse-3: 45.08, 120.0, 2993.854  FAILED, KNOWN, expected 45.0, 120.0, 3000.0\n    test 406 forward-3: -2256723.1, 3908759.1, 4495718.3  FAILED, KNOWN, expected -2259856.1, 3914185.6, 4489469.7\n    test 407 xyzh-3: -2256723.1, 3908759.1, 4495718.3, 2993.9  FAILED, KNOWN, expected -2259856.1, 3914185.6, 4489469.7, 3000.0\n    test 408 philam-3: 0.7868, 2.0944\n    test 409 reverse-4: 45.08, 120.0, 3993.855  FAILED, KNOWN, expected 45.0, 120.0, 4000.0\n    test 410 forward-4: -2257076.7, 3909371.5, 4496425.4  FAILED, KNOWN, expected -2260209.7, 3914798.0, 4490176.8\n    test 411 xyzh-4: -2257076.7, 3909371.5, 4496425.4, 3993.9  FAILED, KNOWN, expected -2260209.7, 3914798.0, 4490176.8, 4000.0\n    test 412 philam-4: 0.7868, 2.0944\n    test 413 reverse-5: 45.08, 120.0, 9993.861  FAILED, KNOWN, expected 45.0, 120.0, 10000.0\n    test 414 forward-5: -2259198.0, 3913045.8, 4500668.0  FAILED, KNOWN, expected -2262331.0, 3918472.2, 4494419.5\n    test 415 xyzh-5: -2259198.0, 3913045.8, 4500668.0, 9993.9  FAILED, KNOWN, expected -2262331.0, 3918472.2, 4494419.5, 10000.0\n    test 416 philam-5: 0.7868, 2.0944\n    test 417 reverse-6: 45.079, 120.0, 19993.87  FAILED, KNOWN, expected 45.0, 120.0, 20000.0\n    test 418 forward-6: -2262733.6, 3919169.6, 4507739.0  FAILED, KNOWN, expected -2265866.5, 3924595.9, 4501490.5\n    test 419 xyzh-6: -2262733.6, 3919169.6, 4507739.0, 19993.9  FAILED, KNOWN, expected -2265866.5, 3924595.9, 4501490.5, 20000.0\n    test 420 philam-6: 0.7868, 2.0944\n    test 421 reverse-7: 45.078, 120.0, 99993.947  FAILED, KNOWN, expected 45.0, 120.0, 100000.0\n    test 422 forward-7: -2291018.1, 3968159.8, 4564307.3  FAILED, KNOWN, expected -2294150.8, 3973585.7, 4558059.1\n    test 423 xyzh-7: -2291018.1, 3968159.8, 4564307.3, 99993.9  FAILED, KNOWN, expected -2294150.8, 3973585.7, 4558059.1, 100000.0\n    test 424 philam-7: 0.7868, 2.0944\n    test 425 reverse-8: 45.071, 120.0, 799994.544  FAILED, KNOWN, expected 45.0, 120.0, 800000.0\n    test 426 forward-8: -2538507.3, 4396823.7, 5059280.0  FAILED, KNOWN, expected -2541638.2, 4402246.4, 5053033.8\n    test 427 xyzh-8: -2538507.3, 4396823.7, 5059280.0, 799994.5  FAILED, KNOWN, expected -2541638.2, 4402246.4, 5053033.8, 800000.0\n    test 428 philam-8: 0.7866, 2.0944\n    test 429 reverse-9: 45.069, 120.0, 999994.693  FAILED, KNOWN, expected 45.0, 120.0, 1000000.0\n    test 430 forward-9: -2609218.5, 4519299.0, 5200700.9  FAILED, KNOWN, expected -2612348.8, 4524720.9, 5194455.2\n    test 431 xyzh-9: -2609218.5, 4519299.0, 5200700.9, 999994.7  FAILED, KNOWN, expected -2612348.8, 4524720.9, 5194455.2, 1000000.0\n    test 432 philam-9: 0.7866, 2.0944\n    test 433 sudano: 45.078, 0.0, 99993.947  FAILED, KNOWN, expected 45.0, 0.0, 100000.0\n    test 434 name: OS-UK\n    test 435 forward: 53.61199036, -1.66444222, 299.8\n    test 436 forward: 3790644.9, -110149.21, 5111482.97\n    test 437 reverse: 3790644.9, -110149.21, 5111482.97\n    test 438 reverse: 53.73795244, -1.66444223  FAILED, KNOWN, expected 53.61199036, -1.66444223\n    test 439 reverse.lat: 53°44′16.6288″N  FAILED, KNOWN, expected 53°36′43.1653″N\n    test 440 reverse.lon: 001°39′51.992″W\n    test 441 reverse.height: 284.389  FAILED, KNOWN, expected 299.800\n    test 442 case: 1\n    test 443 iteration: 7\n    test 444 forward: -2430601.827685, -4702442.703125, 3546587.358103\n    test 445 reverse: 34.036724, -117.333569, 250.396541  FAILED, KNOWN, expected 34.0, -117.333569, 251.702\n    test 446 forward_: -2430601.812953, -4702442.744488, 3546587.313654, 34.0, -117.333569, 251.702\n    test 447 EcefError: (0.0, 0.0, 0.0, 90.0, 0, -6356752.31414, 2, None, Datum(name='Datum', ellipsoid=Ellipsoids.GRS80, transform=Transforms.Identity))  FAILED, KNOWN, expected (0.0, 0.0, ...)\n    test 448 EcefError: height (None), lat (None) or lon (None)  FAILED, KNOWN, expected lat (None), lon (None) ...\n    test 449 EcefSudano: EcefSudano(a=None, f=None) ellipsoid: type(earth) (None): not a Datum, Ellipsoid, Ellipsoid2 or a_f2Tuple  FAILED, KNOWN, expected EcefSudano\n    test 450 Mx: (0.888348, 0.25558, -0.381466, -0.45917, 0.494465, -0.738015, 0.0, 0.830773, 0.556612)\n\n    test 451 EcefUPC: ...\n    test 452 name: Test\n    test 453 toStr: EcefUPC(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name='Test')  FAILED, KNOWN, expected EcefUPC\n    test 454 a, f: a=6378137.0, f=0.003352811, datum=Datum(name='_Test', ellipsoid=Ellipsoids._Test, transform=Transforms.Identity), name='Test'  FAILED, KNOWN, expected EcefUPC\n    test 455 copy(<class 'type'>): (<class 'pygeodesy.ecef.EcefUPC'>, True)\n    test 456 EcefUPC.copy(): (<class 'pygeodesy.ecef.EcefUPC'>, True)\n    test 457 forward: 27.99, 86.93, 8820.0\n    test 458 forward: 302271.4, 5635928.4, 2979666.1\n    test 459 name: Test\n    test 460 reverse: 302271.4, 5635928.4, 2979666.1\n    test 461 reverse: 27.99, 86.93, 8820.01\n    test 462 case: 1\n    test 463 iteration: 5\n    test 464 name: Test\n    test 465 reverse: 302000.0, 5636000.0, 2980000.0\n    test 466 reverse: 27.99, 86.93, 9027.03\n    test 467 case: 1\n    test 468 iteration: 5\n    test 469 forward: 27.99, 86.93, 8820.0\n    test 470 forward: 302271.43, 5635928.37, 2979666.13\n    test 471 forward: 33.3, 44.4, 6000.0\n    test 472 forward: 3816209.6, 3737108.55, 3485109.57\n    test 473 reverse: 3816209.6, 3737108.55, 3485109.57\n    test 474 reverse: 33.3, 44.4, 5999.996\n    test 475 case: 1\n    test 476 iteration: 5\n    test 477 reverse: 30000.0, 30000.0, 0.0\n    test 478 reverse: 0.0, 45.0, -6335710.593  FAILED, KNOWN, expected 6.483, 45.0, -6335709.726\n    test 479 case: 3\n    test 480 iteration: 0\n    test 481 forward: 6.483, 45.0, -6335709.726\n    test 482 forward: 30000.0, 30000.0, -0.0\n    test 483 Vermeille: -168.919\n    test 484 Vermeille: 190.939\n    test 485 Vermeille: (65.772506, 169.060801)\n    test 486 Vermeille: (1.147947, 3.141593)\n    test 487 reverse-1: 45.0, 120.0, 1000.0\n    test 488 forward-1: -2259149.0, 3912960.8, 4488055.5\n    test 489 xyzh-1: -2259149.0, 3912960.8, 4488055.5, 1000.0\n    test 490 philam-1: 0.7854, 2.0944\n    test 491 reverse-2: 45.0, 120.0, 2000.0\n    test 492 forward-2: -2259502.5, 3913573.2, 4488762.6\n    test 493 xyzh-2: -2259502.5, 3913573.2, 4488762.6, 2000.0\n    test 494 philam-2: 0.7854, 2.0944\n    test 495 reverse-3: 45.0, 120.0, 3000.0\n    test 496 forward-3: -2259856.1, 3914185.6, 4489469.7\n    test 497 xyzh-3: -2259856.1, 3914185.6, 4489469.7, 3000.0\n    test 498 philam-3: 0.7854, 2.0944\n    test 499 reverse-4: 45.0, 120.0, 4000.0\n    test 500 forward-4: -2260209.7, 3914798.0, 4490176.8\n    test 501 xyzh-4: -2260209.7, 3914798.0, 4490176.8, 4000.0\n    test 502 philam-4: 0.7854, 2.0944\n    test 503 reverse-5: 45.0, 120.0, 10000.0\n    test 504 forward-5: -2262331.0, 3918472.2, 4494419.5\n    test 505 xyzh-5: -2262331.0, 3918472.2, 4494419.5, 10000.0\n    test 506 philam-5: 0.7854, 2.0944\n    test 507 reverse-6: 45.0, 120.0, 20000.0\n    test 508 forward-6: -2265866.5, 3924595.9, 4501490.5\n    test 509 xyzh-6: -2265866.5, 3924595.9, 4501490.5, 20000.0\n    test 510 philam-6: 0.7854, 2.0944\n    test 511 reverse-7: 45.0, 120.0, 100000.0\n    test 512 forward-7: -2294150.8, 3973585.7, 4558059.1\n    test 513 xyzh-7: -2294150.8, 3973585.7, 4558059.1, 100000.0\n    test 514 philam-7: 0.7854, 2.0944\n    test 515 reverse-8: 45.0, 120.0, 800000.0\n    test 516 forward-8: -2541638.2, 4402246.4, 5053033.8\n    test 517 xyzh-8: -2541638.2, 4402246.4, 5053033.8, 800000.0\n    test 518 philam-8: 0.7854, 2.0944\n    test 519 reverse-9: 45.0, 120.0, 1000000.0\n    test 520 forward-9: -2612348.8, 4524720.9, 5194455.2\n    test 521 xyzh-9: -2612348.8, 4524720.9, 5194455.2, 1000000.0\n    test 522 philam-9: 0.7854, 2.0944\n    test 523 sudano: 45.0, 0.0, 100000.0\n    test 524 name: OS-UK\n    test 525 forward: 53.61199036, -1.66444222, 299.8\n    test 526 forward: 3790644.9, -110149.21, 5111482.97\n    test 527 reverse: 3790644.9, -110149.21, 5111482.97\n    test 528 reverse: 53.61199036, -1.66444223\n    test 529 reverse.lat: 53°36′43.1653″N\n    test 530 reverse.lon: 001°39′51.992″W\n    test 531 reverse.height: 299.800\n    test 532 case: 1\n    test 533 iteration: 5\n    test 534 forward: -2430601.827685, -4702442.703125, 3546587.358103\n    test 535 reverse: 34.0, -117.333569, 251.702\n    test 536 forward_: -2430601.812953, -4702442.744488, 3546587.313654, 34.0, -117.333569, 251.702\n    test 537 EcefError: (0.0, 0.0, 0.0, 90.0, 0, -6356752.31414, 2, None, Datum(name='Datum', ellipsoid=Ellipsoids.GRS80, transform=Transforms.Identity))  FAILED, KNOWN, expected (0.0, 0.0, ...)\n    test 538 EcefError: height (None), lat (None) or lon (None)  FAILED, KNOWN, expected lat (None), lon (None) ...\n    test 539 EcefUPC: EcefUPC(a=None, f=None) ellipsoid: type(earth) (None): not a Datum, Ellipsoid, Ellipsoid2 or a_f2Tuple  FAILED, KNOWN, expected EcefUPC\n    test 540 Mx: (0.888348, 0.25558, -0.381466, -0.45917, 0.494465, -0.738015, 0.0, 0.830773, 0.556612)\n\n    test 541 EcefYou: ...\n    test 542 name: Test\n    test 543 toStr: EcefYou(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name='Test')  FAILED, KNOWN, expected EcefYou\n    test 544 a, f: a=6378137.0, f=0.003352811, datum=Datum(name='_Test', ellipsoid=Ellipsoids._Test, transform=Transforms.Identity), name='Test'  FAILED, KNOWN, expected EcefYou\n    test 545 copy(<class 'type'>): (<class 'pygeodesy.ecef.EcefYou'>, True)\n    test 546 EcefYou.copy(): (<class 'pygeodesy.ecef.EcefYou'>, True)\n    test 547 forward: 27.99, 86.93, 8820.0\n    test 548 forward: 302271.4, 5635928.4, 2979666.1\n    test 549 name: Test\n    test 550 reverse: 302271.4, 5635928.4, 2979666.1\n    test 551 reverse: 27.99, 86.93, 8820.01\n    test 552 case: 1\n    test 553 iteration: None\n    test 554 name: Test\n    test 555 reverse: 302000.0, 5636000.0, 2980000.0\n    test 556 reverse: 27.99, 86.93, 9027.03\n    test 557 case: 1\n    test 558 iteration: None\n    test 559 forward: 27.99, 86.93, 8820.0\n    test 560 forward: 302271.43, 5635928.37, 2979666.13\n    test 561 forward: 33.3, 44.4, 6000.0\n    test 562 forward: 3816209.6, 3737108.55, 3485109.57\n    test 563 reverse: 3816209.6, 3737108.55, 3485109.57\n    test 564 reverse: 33.3, 44.4, 5999.996\n    test 565 case: 1\n    test 566 iteration: None\n    test 567 reverse: 30000.0, 30000.0, 0.0\n    test 568 reverse: 0.0, 45.0, -6335710.593  FAILED, KNOWN, expected 6.483, 45.0, -6335709.726\n    test 569 case: 3\n    test 570 iteration: None\n    test 571 forward: 6.483, 45.0, -6335709.726\n    test 572 forward: 30000.0, 30000.0, -0.0\n    test 573 Vermeille: -168.919\n    test 574 Vermeille: 190.939\n    test 575 Vermeille: (65.772506, 169.060801)\n    test 576 Vermeille: (1.147947, 3.141593)\n    test 577 reverse-1: 45.0, 120.0, 1000.0\n    test 578 forward-1: -2259149.0, 3912960.8, 4488055.5\n    test 579 xyzh-1: -2259149.0, 3912960.8, 4488055.5, 1000.0\n    test 580 philam-1: 0.7854, 2.0944\n    test 581 reverse-2: 45.0, 120.0, 2000.0\n    test 582 forward-2: -2259502.5, 3913573.2, 4488762.6\n    test 583 xyzh-2: -2259502.5, 3913573.2, 4488762.6, 2000.0\n    test 584 philam-2: 0.7854, 2.0944\n    test 585 reverse-3: 45.0, 120.0, 3000.0\n    test 586 forward-3: -2259856.1, 3914185.6, 4489469.7\n    test 587 xyzh-3: -2259856.1, 3914185.6, 4489469.7, 3000.0\n    test 588 philam-3: 0.7854, 2.0944\n    test 589 reverse-4: 45.0, 120.0, 4000.0\n    test 590 forward-4: -2260209.7, 3914798.0, 4490176.8\n    test 591 xyzh-4: -2260209.7, 3914798.0, 4490176.8, 4000.0\n    test 592 philam-4: 0.7854, 2.0944\n    test 593 reverse-5: 45.0, 120.0, 10000.0\n    test 594 forward-5: -2262331.0, 3918472.2, 4494419.5\n    test 595 xyzh-5: -2262331.0, 3918472.2, 4494419.5, 10000.0\n    test 596 philam-5: 0.7854, 2.0944\n    test 597 reverse-6: 45.0, 120.0, 20000.0\n    test 598 forward-6: -2265866.5, 3924595.9, 4501490.5\n    test 599 xyzh-6: -2265866.5, 3924595.9, 4501490.5, 20000.0\n    test 600 philam-6: 0.7854, 2.0944\n    test 601 reverse-7: 45.0, 120.0, 100000.0\n    test 602 forward-7: -2294150.8, 3973585.7, 4558059.1\n    test 603 xyzh-7: -2294150.8, 3973585.7, 4558059.1, 100000.0\n    test 604 philam-7: 0.7854, 2.0944\n    test 605 reverse-8: 45.0, 120.0, 800000.0\n    test 606 forward-8: -2541638.2, 4402246.4, 5053033.8\n    test 607 xyzh-8: -2541638.2, 4402246.4, 5053033.8, 800000.0\n    test 608 philam-8: 0.7854, 2.0944\n    test 609 reverse-9: 45.0, 120.0, 1000000.0\n    test 610 forward-9: -2612348.8, 4524720.9, 5194455.2\n    test 611 xyzh-9: -2612348.8, 4524720.9, 5194455.2, 1000000.0\n    test 612 philam-9: 0.7854, 2.0944\n    test 613 sudano: 45.0, 0.0, 100000.0\n    test 614 name: OS-UK\n    test 615 forward: 53.61199036, -1.66444222, 299.8\n    test 616 forward: 3790644.9, -110149.21, 5111482.97\n    test 617 reverse: 3790644.9, -110149.21, 5111482.97\n    test 618 reverse: 53.61199036, -1.66444223\n    test 619 reverse.lat: 53°36′43.1653″N\n    test 620 reverse.lon: 001°39′51.992″W\n    test 621 reverse.height: 299.800\n    test 622 case: 1\n    test 623 iteration: None\n    test 624 forward: -2430601.827685, -4702442.703125, 3546587.358103\n    test 625 reverse: 34.0, -117.333569, 251.702\n    test 626 forward_: -2430601.812953, -4702442.744488, 3546587.313654, 34.0, -117.333569, 251.702\n    test 627 EcefError: (0.0, 0.0, 0.0, 90.0, 0, -6356752.31414, 2, None, Datum(name='Datum', ellipsoid=Ellipsoids.GRS80, transform=Transforms.Identity))  FAILED, KNOWN, expected (0.0, 0.0, ...)\n    test 628 EcefError: height (None), lat (None) or lon (None)  FAILED, KNOWN, expected lat (None), lon (None) ...\n    test 629 EcefYou: EcefYou(a=None, f=None) ellipsoid: type(earth) (None): not a Datum, Ellipsoid, Ellipsoid2 or a_f2Tuple  FAILED, KNOWN, expected EcefYou\n    test 630 Mx: (0.888348, 0.25558, -0.381466, -0.45917, 0.494465, -0.738015, 0.0, 0.830773, 0.556612)\n\n    test 631 EcefMatrix: ...\n    test 632 index: (0, 1, 2, 3, 4, 5, 6, 7, 8)\n    test 633 matrix: 0, 1, 2, 3, 4, 5, 6, 7, 8\n    test 634 multiply: 45, 54, 63, 54, 66, 78, 63, 78, 93\n    test 635 matrix3: True\n    test 636 matrixT3: True\n    test 637 copy(<class 'type'>): (<class 'pygeodesy.ecef.EcefMatrix'>, True)\n    test 638 EcefMatrix.copy(): (<class 'pygeodesy.ecef.EcefMatrix'>, True)\n    test 639 matrix: 1, 0, 0, 0, 1, 0, 0, 0, 1\n    test 640 multiply: 1, 0, 0, 0, 1, 0, 0, 0, 1\n    test 641 copy(<class 'type'>): (<class 'pygeodesy.ecef.EcefMatrix'>, True)\n    test 642 EcefMatrix.copy(): (<class 'pygeodesy.ecef.EcefMatrix'>, True)\n    test 643 unrotate: (1.0, 1.0, 1.0)\n\n    test 644 pygeodesy.sphericalNvector: Cartesian\n    test 645 Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 646 pygeodesy.sphericalNvector: LatLon\n    test 647 Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 648 forward: 48.833, 2.333, 0.0\n    test 649 forward: 4190278.55, 170716.35, 4796058.21\n    test 650 name: Paris\n    test 651 reverse: 48.833, 2.333, 0.0\n    test 652 name: Paris\n    test 653 toLatLon: LatLon(48°49′58.8″N, 002°19′58.8″E)\n    test 654 name: Paris\n    test 655 Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 656 to4Tuple: LatLon4Tuple\n    test 657 to4Tuple: Paris(lat=48.833, lon=2.333, height=0.0, datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84))\n    test 658 to3Tuple: LatLon3Tuple\n    test 659 to3Tuple: Paris(lat=48.833, lon=2.333, height=0.0)\n    test 660 toVector: (4190278.55277, 170716.34863, 4796058.20898)\n    test 661 name: Paris\n    test 662 forward: [4190278.55, 170716.35, 4796058.21]\n    test 663 Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n# imported pygeodesy.ltp into ecefLocals.py line 63\n    test 664 toLocal: (0.0, 0.0, 0.0, 48.833, 2.333, 0.0, Ltp(lat0=48.833, lon0=2.333, height0=0.0, M=EcefMatrix(_0_0_=-0.040707, _0_1_=-0.75217, _0_2_=0.65771, _1_0_=0.999171, _1_1_=-0.030644, _1_2_=0.026796, _2_0_=0.0, _2_1_=0.658256, _2_2_=0.752794), ecef=EcefKarney(a=6371008.771415, f=0.0, datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84), name=''), name='Paris'), Paris(x=4190278.55277, y=170716.348629, z=4796058.208983, lat=48.833, lon=2.333, height=0.0, C=2, M=None, datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84)), None)\n# imported pygeodesy.ltpTuples into ecefLocals.py line 80\n# imported pygeodesy.ltp into ltpTuples.py line 1585\n    test 665 toAer: [0.0, 0.0, 0.0]\n    test 666 toEnu: [0.0, 0.0, 0.0]\n    test 667 toNed: [0.0, 0.0, 0.0]\n\n    test 668 pygeodesy.sphericalTrigonometry: Cartesian\n    test 669 Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 670 pygeodesy.sphericalTrigonometry: LatLon\n    test 671 Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 672 forward: 48.833, 2.333, 0.0\n    test 673 forward: 4190278.55, 170716.35, 4796058.21\n    test 674 name: Paris\n    test 675 reverse: 48.833, 2.333, 0.0\n    test 676 name: Paris\n    test 677 toLatLon: LatLon(48°49′58.8″N, 002°19′58.8″E)\n    test 678 name: Paris\n    test 679 Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 680 to4Tuple: LatLon4Tuple\n    test 681 to4Tuple: Paris(lat=48.833, lon=2.333, height=0.0, datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84))\n    test 682 to3Tuple: LatLon3Tuple\n    test 683 to3Tuple: Paris(lat=48.833, lon=2.333, height=0.0)\n    test 684 toVector: (4190278.55277, 170716.34863, 4796058.20898)\n    test 685 name: Paris\n    test 686 forward: [4190278.55, 170716.35, 4796058.21]\n    test 687 Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 688 toLocal: (0.0, 0.0, 0.0, 48.833, 2.333, 0.0, Ltp(lat0=48.833, lon0=2.333, height0=0.0, M=EcefMatrix(_0_0_=-0.040707, _0_1_=-0.75217, _0_2_=0.65771, _1_0_=0.999171, _1_1_=-0.030644, _1_2_=0.026796, _2_0_=0.0, _2_1_=0.658256, _2_2_=0.752794), ecef=EcefKarney(a=6371008.771415, f=0.0, datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84), name=''), name='Paris'), Paris(x=4190278.55277, y=170716.348629, z=4796058.208983, lat=48.833, lon=2.333, height=0.0, C=2, M=None, datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84)), None)\n    test 689 toAer: [0.0, 0.0, 0.0]\n    test 690 toEnu: [0.0, 0.0, 0.0]\n    test 691 toNed: [0.0, 0.0, 0.0]\n\n    test 692 pygeodesy.ellipsoidalNvector: Cartesian\n    test 693 Ecef: <class 'pygeodesy.ecef.EcefVeness'>\n    test 694 pygeodesy.ellipsoidalNvector: LatLon\n    test 695 Ecef: <class 'pygeodesy.ecef.EcefVeness'>\n    test 696 forward: 48.833, 2.333, 0.0\n    test 697 forward: 4202946.8, 171232.47, 4778354.17\n    test 698 name: Paris\n    test 699 reverse: 48.833, 2.333, 0.0\n    test 700 name: Paris\n    test 701 toLatLon: LatLon(48°49′58.8″N, 002°19′58.8″E, +0.00m)\n    test 702 name: Paris\n    test 703 Ecef: <class 'pygeodesy.ecef.EcefVeness'>\n    test 704 to4Tuple: LatLon4Tuple\n    test 705 to4Tuple: Paris(lat=48.833, lon=2.333, height=0.0, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 706 to3Tuple: LatLon3Tuple\n    test 707 to3Tuple: Paris(lat=48.833, lon=2.333, height=0.0)\n    test 708 toVector: (4202946.79528, 171232.46613, 4778354.17)\n    test 709 name: Paris\n    test 710 forward: [4202946.8, 171232.47, 4778354.17]\n    test 711 Ecef: <class 'pygeodesy.ecef.EcefVeness'>\n    test 712 toLocal: (0.0, 0.0, -0.0, 48.833, 2.333, 0.0, Ltp(lat0=48.833, lon0=2.333, height0=0.000000001, M=EcefMatrix(_0_0_=-0.040707, _0_1_=-0.75217, _0_2_=0.65771, _1_0_=0.999171, _1_1_=-0.030644, _1_2_=0.026796, _2_0_=0.0, _2_1_=0.658256, _2_2_=0.752794), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Paris'), Paris(x=4202946.795276, y=171232.466132, z=4778354.169996, lat=48.833, lon=2.333, height=0.0, C=1, M=None, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84)), None)\n    test 713 toAer: [23.434, -85.849, 0.0]\n    test 714 toEnu: [0.0, 0.0, -0.0]\n    test 715 toNed: [0.0, 0.0, 0.0]\n\n    test 716 pygeodesy.ellipsoidalVincenty: Cartesian\n    test 717 Ecef: <class 'pygeodesy.ecef.EcefVeness'>\n    test 718 pygeodesy.ellipsoidalVincenty: LatLon\n    test 719 Ecef: <class 'pygeodesy.ecef.EcefVeness'>\n    test 720 forward: 48.833, 2.333, 0.0\n    test 721 forward: 4202946.8, 171232.47, 4778354.17\n    test 722 name: Paris\n    test 723 reverse: 48.833, 2.333, 0.0\n    test 724 name: Paris\n    test 725 toLatLon: LatLon(48°49′58.8″N, 002°19′58.8″E, +0.00m)\n    test 726 name: Paris\n    test 727 Ecef: <class 'pygeodesy.ecef.EcefVeness'>\n    test 728 to4Tuple: LatLon4Tuple\n    test 729 to4Tuple: Paris(lat=48.833, lon=2.333, height=0.0, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 730 to3Tuple: LatLon3Tuple\n    test 731 to3Tuple: Paris(lat=48.833, lon=2.333, height=0.0)\n    test 732 toVector: (4202946.79528, 171232.46613, 4778354.17)\n    test 733 name: Paris\n    test 734 forward: [4202946.8, 171232.47, 4778354.17]\n    test 735 Ecef: <class 'pygeodesy.ecef.EcefVeness'>\n    test 736 toLocal: (0.0, 0.0, -0.0, 48.833, 2.333, 0.0, Ltp(lat0=48.833, lon0=2.333, height0=0.000000001, M=EcefMatrix(_0_0_=-0.040707, _0_1_=-0.75217, _0_2_=0.65771, _1_0_=0.999171, _1_1_=-0.030644, _1_2_=0.026796, _2_0_=0.0, _2_1_=0.658256, _2_2_=0.752794), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Paris'), Paris(x=4202946.795276, y=171232.466132, z=4778354.169996, lat=48.833, lon=2.333, height=0.0, C=1, M=None, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84)), None)\n    test 737 toAer: [23.434, -85.849, 0.0]\n    test 738 toEnu: [0.0, 0.0, -0.0]\n    test 739 toNed: [0.0, 0.0, 0.0]\n\n    test 740 pygeodesy.ellipsoidalKarney: Cartesian\n    test 741 Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 742 pygeodesy.ellipsoidalKarney: LatLon\n    test 743 Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 744 forward: 48.833, 2.333, 0.0\n    test 745 forward: 4202946.8, 171232.47, 4778354.17\n    test 746 name: Paris\n    test 747 reverse: 48.833, 2.333, 0.0\n    test 748 name: Paris\n    test 749 toLatLon: LatLon(48°49′58.8″N, 002°19′58.8″E, +0.00m)\n    test 750 name: Paris\n    test 751 Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 752 to4Tuple: LatLon4Tuple\n    test 753 to4Tuple: Paris(lat=48.833, lon=2.333, height=0.0, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 754 to3Tuple: LatLon3Tuple\n    test 755 to3Tuple: Paris(lat=48.833, lon=2.333, height=0.0)\n    test 756 toVector: (4202946.79528, 171232.46613, 4778354.17)\n    test 757 name: Paris\n    test 758 forward: [4202946.8, 171232.47, 4778354.17]\n    test 759 Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 760 toLocal: (0.0, 0.0, -0.0, 48.833, 2.333, 0.0, Ltp(lat0=48.833, lon0=2.333, height0=0.000000001, M=EcefMatrix(_0_0_=-0.040707, _0_1_=-0.75217, _0_2_=0.65771, _1_0_=0.999171, _1_1_=-0.030644, _1_2_=0.026796, _2_0_=0.0, _2_1_=0.658256, _2_2_=0.752794), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Paris'), Paris(x=4202946.795276, y=171232.466132, z=4778354.169996, lat=48.833, lon=2.333, height=0.0, C=1, M=None, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84)), None)\n    test 761 toAer: [23.434, -85.849, 0.0]\n    test 762 toEnu: [0.0, 0.0, -0.0]\n    test 763 toNed: [0.0, 0.0, 0.0]\n\n    test 764 pygeodesy.ellipsoidalExact: Cartesian\n    test 765 Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 766 pygeodesy.ellipsoidalExact: LatLon\n    test 767 Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 768 forward: 48.833, 2.333, 0.0\n    test 769 forward: 4202946.8, 171232.47, 4778354.17\n    test 770 name: Paris\n    test 771 reverse: 48.833, 2.333, 0.0\n    test 772 name: Paris\n    test 773 toLatLon: LatLon(48°49′58.8″N, 002°19′58.8″E, +0.00m)\n    test 774 name: Paris\n    test 775 Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 776 to4Tuple: LatLon4Tuple\n    test 777 to4Tuple: Paris(lat=48.833, lon=2.333, height=0.0, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 778 to3Tuple: LatLon3Tuple\n    test 779 to3Tuple: Paris(lat=48.833, lon=2.333, height=0.0)\n    test 780 toVector: (4202946.79528, 171232.46613, 4778354.17)\n    test 781 name: Paris\n    test 782 forward: [4202946.8, 171232.47, 4778354.17]\n    test 783 Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 784 toLocal: (0.0, 0.0, -0.0, 48.833, 2.333, 0.0, Ltp(lat0=48.833, lon0=2.333, height0=0.000000001, M=EcefMatrix(_0_0_=-0.040707, _0_1_=-0.75217, _0_2_=0.65771, _1_0_=0.999171, _1_1_=-0.030644, _1_2_=0.026796, _2_0_=0.0, _2_1_=0.658256, _2_2_=0.752794), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Paris'), Paris(x=4202946.795276, y=171232.466132, z=4778354.169996, lat=48.833, lon=2.333, height=0.0, C=1, M=None, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84)), None)\n    test 785 toAer: [23.434, -85.849, 0.0]\n    test 786 toEnu: [0.0, 0.0, -0.0]\n    test 787 toNed: [0.0, 0.0, 0.0]\n\n    80 of 787 testEcef.py tests (10.2%) FAILED, ALL KNOWN (pygeodesy 26.3.26 PyPy 7.3.17 Python 3.10.14 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 74.319 ms\nrunning /opt/local/bin/p....y3.10 -W default ~/PyGeodesy/test/testElevations.py\n# lazily imported pygeodesy.basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.DeprecationWarnings from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isint from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isLazy from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.issubclassof from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.iterNumpy2over from .iters by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.LazyImportError from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.karney by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.NN from .interns by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.normDMS from .dms by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.pairs from .streprs by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.printf from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.property_RO from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.typename from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.elevation2 from .elevations by testElevations.py line 11\n# lazily imported pygeodesy.Datums from .datums by testElevations.py line 11\n# lazily imported pygeodesy.geoidHeight2 from .elevations by testElevations.py line 11\n\n    testing testElevations.py 24.09.25 isLazy=3\n    all testElevations.py tests SKIPPED (pygeodesy 26.3.26 PyPy 7.3.17 Python 3.10.14 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 10.967 us\nrunning /opt/local/bin/p....y3.10 -W default ~/PyGeodesy/test/testEllipses.py\n./test/testEllipses.py:52: DeprecationWarning: function L{elliperim<pygeodesy.deprecated.functions.elliperim>} has been DEPRECATED on 2026.02.12, use method L{pygeodesy.Ellipse.arc} or property L{pygeodesy.Ellipse.perimeter2k_}.\n  self.test(n, elliperim(a, b), x, known=startswith, nl=1)\n./test/testEllipses.py:53: DeprecationWarning: function L{elliperim<pygeodesy.deprecated.functions.elliperim>} has been DEPRECATED on 2026.02.12, use method L{pygeodesy.Ellipse.arc} or property L{pygeodesy.Ellipse.perimeter2k_}.\n  self.test(n, elliperim(a, a), 40075236.597, prec=3)\n./test/testEllipses.py:54: DeprecationWarning: function L{elliperim<pygeodesy.deprecated.functions.elliperim>} has been DEPRECATED on 2026.02.12, use method L{pygeodesy.Ellipse.arc} or property L{pygeodesy.Ellipse.perimeter2k_}.\n  self.test(n, elliperim(a, 0), a * 4, prec=1)\n./test/testEllipses.py:55: DeprecationWarning: function L{elliperim<pygeodesy.deprecated.functions.elliperim>} has been DEPRECATED on 2026.02.12, use method L{pygeodesy.Ellipse.arc} or property L{pygeodesy.Ellipse.perimeter2k_}.\n  self.test(n, elliperim(0, b), b * 4, prec=1)\n./test/testEllipses.py:56: DeprecationWarning: function L{elliperim<pygeodesy.deprecated.functions.elliperim>} has been DEPRECATED on 2026.02.12, use method L{pygeodesy.Ellipse.arc} or property L{pygeodesy.Ellipse.perimeter2k_}.\n  self.test(n, elliperim(0, 0), '0.0')\n# lazily imported pygeodesy.basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.DeprecationWarnings from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isint from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isLazy from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.issubclassof from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.iterNumpy2over from .iters by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.LazyImportError from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.karney by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.NN from .interns by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.normDMS from .dms by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.pairs from .streprs by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.printf from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.property_RO from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.typename from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.Ellipse from .ellipses by testEllipses.py line 11\n# lazily imported pygeodesy.Ellipsoids from .ellipsoids by testEllipses.py line 11\n# lazily imported pygeodesy.EPS from .constants by testEllipses.py line 11\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by <frozen importlib._bootstrap> line 1075\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by <frozen importlib._bootstrap> line 1075\n# lazily imported pygeodesy.Conformal2Tuple from .triaxials.triaxial5 by <frozen importlib._bootstrap> line 1075\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by classes.py line 21\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by classes.py line 21\n# lazily imported pygeodesy.Conformal2Tuple from .triaxials.triaxial5 by classes.py line 21\n# lazily imported pygeodesy.elliperim from .deprecated.functions by testEllipses.py line 11\n# lazily imported pygeodesy.polar2d from .fmath by testEllipses.py line 11\n\n    testing testEllipses.py 26.03.25 isLazy=3\n\n    test 1 a, b, b/a, m: (6378172.0, 6378102.0, 0.9999890250686246, 2.194974230163016e-05)\n# lazily imported pygeodesy.elliptic by ellipses.py line 176\n    test 2 Ellipse.perimeter2k   : 40075016.685880177\n    test 3 Ellipse.perimeter2k_  : 40075016.685880177\n    test 4 Ellipse.perimeterAGM  : 40075016.685880177\n    test 5 Ellipse.perimeterHGK  : 40075016.685880177\n    test 6 Ellipse.perimeterCR   : 40075016.685880177\n    test 7 Ellipse.perimeterGK   : 40075016.685880177\n    test 8 Ellipse.perimeter2RC  : 40075016.685880177\n    test 9 Ellipse.perimeter2R   : 40075016.685880177\n    test 10 Ellipse.perimeter4Arc3: 40075016.6859892, 6378052.503181054, 6378221.49813043\n\n    test 11 elliperim DEPRECATED  : 40075016.68588018\n    test 12 elliperim DEPRECATED  : 40075236.597\n    test 13 elliperim DEPRECATED  : 25512688.0\n    test 14 elliperim DEPRECATED  : 25512408.0\n    test 15 elliperim DEPRECATED  : 0.0\n\n    test 16 Ellipse.apses2        : (6408054.087945863, 6348289.912054137)\n    test 17 Ellipse.arc           : 5009394.585735\n    test 18 Ellipse.arc           : 5009394.585735\n    test 19 Ellipse.arc           : 30056262.514410\n    test 20 Ellipse.arc           : 30056262.514410\n    test 21 Ellipse.area          : 127801973345104.3\n    test 22 Ellipse.e             : 0.004685055207959684\n    test 23 Ellipse.c             : 29882.087945862633\n    test 24 Ellipse.p             : 6378032.000768245\n    test 25 Ellipse.point 45      : (4510048.672774165, 4509999.1752994815)\n    test 26 Ellipse.polar2d 45    : (6378136.999711906, 45.0)\n    test 27 Ellipse.R1            : 6378148.666666666\n    test 28 Ellipse.R2            : 6378136.999903969\n    test 29 Ellipse.Roc 60        : 6378189.500552184\n    test 30 Ellipse.Roc_(-1, 1)   : 6378137.0004801545\n    test 31 Ellipse.Rrectifying   : 6378137.000048016\n    test 32 Ellipse.sideOf        : -0.9999998432135453\n    test 33 Ellipse.sideOf(c, p)  : 0.0\n    test 34 Ellipse.slope 60      : -29.999727713397277\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by ellipses.py line 800\n# lazily imported pygeodesy.hartzell4 from .triaxials.triaxial5 by bases.py line 411\n    test 35 Ellipse.hartzell4     : (4510048.672774, 4509999.175299, 0.0, 2641910.848113)\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 36 Ellipse.height4       : (4510063.170305, 4509984.677881, 0.0, 2641910.848001)\n    test 37 Ellipse.normal3d      : (0.7071, 0.70711, 0.0)\n    test 38 Ellipse.normal4       : (3189086.0, 5523598.359928, 0.0, 0.0)\n\n    test 39 Ellipse.toRepr(terse=0): Ellipse(name='', a=6378172, b=6378102, c=29882.08794586, e=0.00468506, e2=0.00002195, p=6378032.00076825, area=127801973345104.296875, perimeter2k=40075016.68588018, R2=6378136.99990397)\n    test 40 Ellipse.toEllipsoid: name='', a=6378172, f=0.00001097, f_=91116.74285714, b=6378102\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by ellipses.py line 800\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 41 Ellipse.toTriaxial_: name='_', a=6378172, b=6378102, c=0, e2ab=0.00002195, e2bc=1, e2ac=1\n\n    test 63 Ellipse.sideOfs       : 0\n    test 64 Ellipse.sideOf point  : 0.0\n    test 65 Ellipse.cw vs ccw     : 21\n    test 66 Ellipse.cw vs ccw'd   : True\n    test 91 Ellipse.slopes        : 0\n\n    test 92 a, b, b/a, m: (6378172.0, 5740354.8, 0.9, 0.18999999999999995)\n    test 93 Ellipse.perimeter2k   : 38097844.622237749\n    test 94 Ellipse.perimeter2k_  : 38097844.622237749\n    test 95 Ellipse.perimeterAGM  : 38097844.622237757\n    test 96 Ellipse.perimeterHGK  : 38097844.622237757\n    test 97 Ellipse.perimeterCR   : 38097844.622237757\n    test 98 Ellipse.perimeterGK   : 38097844.622237757\n    test 99 Ellipse.perimeter2RC  : 38097844.622237757\n    test 100 Ellipse.perimeter2R   : 38097844.622237757\n    test 101 Ellipse.perimeter4Arc3: 38107337.959388405, 5343198.019022138, 6890325.8899754025\n\n    test 102 elliperim DEPRECATED  : 38097844.62223775\n    test 103 elliperim DEPRECATED  : 40075236.597\n    test 104 elliperim DEPRECATED  : 25512688.0\n    test 105 elliperim DEPRECATED  : 22961419.2\n    test 106 elliperim DEPRECATED  : 0.0\n\n    test 107 Ellipse.apses2        : (9158352.71925207, 3597991.28074793)\n    test 108 Ellipse.arc           : 4921611.270994\n    test 109 Ellipse.arc           : 4921611.270994\n    test 110 Ellipse.arc           : 28573383.466678\n    test 111 Ellipse.arc           : 28573383.466678\n    test 112 Ellipse.area          : 115023038380546.69\n    test 113 Ellipse.e             : 0.4358898943540673\n    test 114 Ellipse.c             : 2780180.71925207\n    test 115 Ellipse.p             : 5166319.32\n    test 116 Ellipse.point 45      : (4510048.672774165, 4059043.805496748)\n    test 117 Ellipse.polar2d 45    : (6034126.999973108, 45.0)\n    test 118 Ellipse.R1            : 6165566.266666667\n    test 119 Ellipse.R2            : 6050865.248493441\n    test 120 Ellipse.Roc 60        : 6587963.642879878\n    test 121 Ellipse.Roc_(-1, 1)   : 6101359.094016017\n    test 122 Ellipse.Rrectifying   : 6063460.29277612\n    test 123 Ellipse.sideOf        : -0.9999998257947401\n    test 124 Ellipse.sideOf(c, p)  : 0.0\n    test 125 Ellipse.slope 60      : -27.457076095938262\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by ellipses.py line 800\n# lazily imported pygeodesy.hartzell4 from .triaxials.triaxial5 by bases.py line 411\n    test 126 Ellipse.hartzell4     : (4510048.672774, 4059043.805497, 0.0, 2513302.891806)\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 127 Ellipse.height4       : (4646979.930894, 3931944.941451, 0.0, 2503472.028331)\n    test 128 Ellipse.normal3d      : (0.66896, 0.74329, 0.0)\n    test 129 Ellipse.normal4       : (3189086.0, 4971293.083536, 0.0, 0.0)\n\n    test 130 Ellipse.toRepr(terse=0): Ellipse(name='', a=6378172, b=5740354.8, c=2780180.71925207, e=0.43588989, e2=0.19, p=5166319.32, area=115023038380546.6875, perimeter2k=38097844.62223775, R2=6050865.24849344)\n    test 131 Ellipse.toEllipsoid: name='', a=6378172, f=0.1, f_=10, b=5740354.8\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by ellipses.py line 800\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 132 Ellipse.toTriaxial_: name='_', a=6378172, b=5740354.8, c=0, e2ab=0.19, e2bc=1, e2ac=1\n\n    test 154 Ellipse.sideOfs       : 0\n    test 155 Ellipse.sideOf point  : 0.0\n    test 156 Ellipse.cw vs ccw     : 21\n    test 157 Ellipse.cw vs ccw'd   : True\n    test 182 Ellipse.slopes        : 0\n\n    test 183 a, b, b/a, m: (6378172.0, 3189086.0, 0.5, 0.75)\n    test 184 Ellipse.perimeter2k   : 30897294.581873503\n    test 185 Ellipse.perimeter2k_  : 30897294.581873503\n    test 186 Ellipse.perimeterAGM  : 30897294.581873506\n    test 187 Ellipse.perimeterHGK  : 30897294.581873506\n    test 188 Ellipse.perimeterCR   : 30897294.581819803\n    test 189 Ellipse.perimeterGK   : 30897294.581743788\n    test 190 Ellipse.perimeter2RC  : 30897294.567785483\n    test 191 Ellipse.perimeter2R   : 30897294.567785427\n    test 192 Ellipse.perimeter4Arc3: 31157545.70727452, 2203604.2294767764, 11538221.541046448\n\n    test 193 elliperim DEPRECATED  : 30897294.581873503\n    test 194 elliperim DEPRECATED  : 40075236.597\n    test 195 elliperim DEPRECATED  : 25512688.0\n    test 196 elliperim DEPRECATED  : 12756344.0\n    test 197 elliperim DEPRECATED  : 0.0\n\n    test 198 Ellipse.apses2        : (11901830.9817066, 854513.0182933994)\n    test 199 Ellipse.arc           : 4644738.918062\n    test 200 Ellipse.arc           : 4644738.918062\n    test 201 Ellipse.arc           : 23172970.936405\n    test 202 Ellipse.arc           : 23172970.936405\n    test 203 Ellipse.area          : 63901687989192.6\n    test 204 Ellipse.e             : 0.8660254037844386\n    test 205 Ellipse.c             : 5523658.981706601\n    test 206 Ellipse.p             : 1594543.0\n    test 207 Ellipse.point 45      : (4510048.672774165, 2255024.3363870825)\n    test 208 Ellipse.polar2d 45    : (4033910.165662294, 45.0)\n    test 209 Ellipse.R1            : 5315143.333333333\n    test 210 Ellipse.R2            : 4510048.672774164\n    test 211 Ellipse.Roc 60        : 9342460.639577284\n    test 212 Ellipse.Roc_(-1, 1)   : 6302984.633847336\n    test 213 Ellipse.Rrectifying   : 4917457.1608716035\n    test 214 Ellipse.sideOf        : -0.9999996864305322\n    test 215 Ellipse.sideOf(c, p)  : 0.0\n    test 216 Ellipse.slope 60      : -16.102113751986025\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by ellipses.py line 800\n# lazily imported pygeodesy.hartzell4 from .triaxials.triaxial5 by bases.py line 411\n    test 217 Ellipse.hartzell4     : (4510048.672774, 2255024.336387, 0.0, 2088625.375015)\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 218 Ellipse.height4       : (5309727.884418, 1766908.87251, 0.0, 1778808.761525)\n    test 219 Ellipse.normal3d      : (0.44721, 0.89443, 0.0)\n    test 220 Ellipse.normal4       : (3189086.0, 2761829.490853, 0.0, 0.0)\n\n    test 221 Ellipse.toRepr(terse=0): Ellipse(name='', a=6378172, b=3189086, c=5523658.9817066, e=0.8660254, e2=0.75, p=1594543, area=63901687989192.6015625, perimeter2k=30897294.5818735, R2=4510048.67277416)\n    test 222 Ellipse.toEllipsoid: name='', a=6378172, f=0.5, f_=2, b=3189086\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by ellipses.py line 800\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 223 Ellipse.toTriaxial_: name='_', a=6378172, b=3189086, c=0, e2ab=0.75, e2bc=1, e2ac=1\n\n    test 245 Ellipse.sideOfs       : 0\n    test 246 Ellipse.sideOf point  : 0.0\n    test 247 Ellipse.cw vs ccw     : 21\n    test 248 Ellipse.cw vs ccw'd   : True\n    test 273 Ellipse.slopes        : 0\n\n    test 274 a, b, b/a, m: (6378172.0, 1594543.0, 0.25, 0.9375)\n    test 275 Ellipse.perimeter2k   : 27357324.785247806\n    test 276 Ellipse.perimeter2k_  : 27357324.785247806\n    test 277 Ellipse.perimeterAGM  : 27357324.785247806\n    test 278 Ellipse.perimeterHGK  : 27357324.785247806\n    test 279 Ellipse.perimeterCR   : 27357324.462550402\n    test 280 Ellipse.perimeterGK   : 27357323.163297798\n    test 281 Ellipse.perimeter2RC  : 27357318.008817654\n    test 282 Ellipse.perimeter2R   : 27357317.948020011\n    test 283 Ellipse.perimeter4Arc3: 27839816.212722465, 922977.919904027, 23415319.320383895\n\n    test 284 elliperim DEPRECATED  : 27357324.785247806\n    test 285 elliperim DEPRECATED  : 40075236.597\n    test 286 elliperim DEPRECATED  : 25512688.0\n    test 287 elliperim DEPRECATED  : 6378172.0\n    test 288 elliperim DEPRECATED  : 0.0\n\n    test 289 Ellipse.apses2        : (12553810.483811613, 202533.51618838683)\n    test 290 Ellipse.arc           : 4544501.990341\n    test 291 Ellipse.arc           : 4544501.990341\n    test 292 Ellipse.arc           : 20517993.588936\n    test 293 Ellipse.arc           : 20517993.588936\n    test 294 Ellipse.area          : 31950843994596.3\n    test 295 Ellipse.e             : 0.9682458365518543\n    test 296 Ellipse.c             : 6175638.483811613\n    test 297 Ellipse.p             : 398635.75\n    test 298 Ellipse.point 45      : (4510048.672774165, 1127512.1681935412)\n    test 299 Ellipse.polar2d 45    : (2187694.9475911316, 45.0)\n    test 300 Ellipse.R1            : 4783629.0\n    test 301 Ellipse.R2            : 3189086.0\n    test 302 Ellipse.Roc 60        : 17091507.78125\n    test 303 Ellipse.Roc_(-1, 1)   : 9878809.997716203\n    test 304 Ellipse.Rrectifying   : 4354053.469342613\n    test 305 Ellipse.sideOf        : -0.9999993728610642\n    test 306 Ellipse.sideOf(c, p)  : 0.0\n    test 307 Ellipse.slope 60      : -8.213210701738216\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by ellipses.py line 800\n# lazily imported pygeodesy.hartzell4 from .triaxials.triaxial5 by bases.py line 411\n    test 308 Ellipse.hartzell4     : (4510048.672774, 1127512.168194, 0.0, 1925617.449958)\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 309 Ellipse.height4       : (5837520.368165, 642477.334856, 0.0, 1094866.757991)\n    test 310 Ellipse.normal3d      : (0.24254, 0.97014, 0.0)\n    test 311 Ellipse.normal4       : (3189086.0, 1380914.745427, 0.0, 0.0)\n\n    test 312 Ellipse.toRepr(terse=0): Ellipse(name='', a=6378172, b=1594543, c=6175638.48381161, e=0.96824584, e2=0.9375, p=398635.75, area=31950843994596.30078125, perimeter2k=27357324.78524781, R2=3189086)\n    test 313 Ellipse.toEllipsoid: name='', a=6378172, f=0.75, f_=1.33333333, b=1594543\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by ellipses.py line 800\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 314 Ellipse.toTriaxial_: name='_', a=6378172, b=1594543, c=0, e2ab=0.9375, e2bc=1, e2ac=1\n\n    test 336 Ellipse.sideOfs       : 0\n    test 337 Ellipse.sideOf point  : 0.0\n    test 338 Ellipse.cw vs ccw     : 21\n    test 339 Ellipse.cw vs ccw'd   : True\n    test 364 Ellipse.slopes        : 0\n\n    test 365 a, b, b/a, m: (6378172.0, 797271.5, 0.125, 0.984375)\n    test 366 Ellipse.perimeter2k   : 26106620.666072767\n    test 367 Ellipse.perimeter2k_  : 26106620.666072767\n    test 368 Ellipse.perimeterAGM  : 26106620.666072764\n    test 369 Ellipse.perimeterHGK  : 26106620.666072760\n    test 370 Ellipse.perimeterCR   : 26106596.269819759\n    test 371 Ellipse.perimeterGK   : 26106498.674043797\n    test 372 Ellipse.perimeter2RC  : 26106496.429202825\n    test 373 Ellipse.perimeter2R   : 26106468.693959467\n    test 374 Ellipse.perimeter4Arc3: 26548502.51849537, 426749.3250869843, 48408652.89930413\n\n    test 375 elliperim DEPRECATED  : 26106620.666072767\n    test 376 elliperim DEPRECATED  : 40075236.597\n    test 377 elliperim DEPRECATED  : 25512688.0\n    test 378 elliperim DEPRECATED  : 3189086.0\n    test 379 elliperim DEPRECATED  : 0.0\n\n    test 380 Ellipse.apses2        : (12706318.349198299, 50025.65080170147)\n    test 381 Ellipse.arc           : 4518714.450822\n    test 382 Ellipse.arc           : 4518714.450822\n    test 383 Ellipse.arc           : 19579965.499555\n    test 384 Ellipse.arc           : 19579965.499555\n    test 385 Ellipse.area          : 15975421997298.15\n    test 386 Ellipse.e             : 0.9921567416492215\n    test 387 Ellipse.c             : 6328146.3491982985\n    test 388 Ellipse.p             : 99658.9375\n    test 389 Ellipse.point 45      : (4510048.672774165, 563756.0840967706)\n    test 390 Ellipse.polar2d 45    : (1118805.3802239103, 45.0)\n    test 391 Ellipse.R1            : 4517871.833333333\n    test 392 Ellipse.R2            : 2255024.336387082\n    test 393 Ellipse.Roc 60        : 33401212.250312246\n    test 394 Ellipse.Roc_(-1, 1)   : 18464659.107211024\n    test 395 Ellipse.Rrectifying   : 4154997.72643051\n    test 396 Ellipse.sideOf        : -0.9999987457221285\n    test 397 Ellipse.sideOf(c, p)  : 0.0\n    test 398 Ellipse.slope 60      : -4.127810304512707\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by ellipses.py line 800\n# lazily imported pygeodesy.hartzell4 from .triaxials.triaxial5 by bases.py line 411\n    test 399 Ellipse.hartzell4     : (4510048.672774, 563756.084097, 0.0, 1882661.471213)\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 400 Ellipse.height4       : (6128382.04862, 220935.918585, 0.0, 628138.298638)\n    test 401 Ellipse.normal3d      : (0.12403, 0.99228, 0.0)\n    test 402 Ellipse.normal4       : (3189086.0, 690457.372713, 0.0, 0.0)\n\n    test 403 Ellipse.toRepr(terse=0): Ellipse(name='', a=6378172, b=797271.5, c=6328146.3491983, e=0.99215674, e2=0.984375, p=99658.9375, area=15975421997298.15039062, perimeter2k=26106620.66607277, R2=2255024.33638708)\n    test 404 Ellipse.toEllipsoid: name='', a=6378172, f=0.875, f_=1.14285714, b=797271.5\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by ellipses.py line 800\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 405 Ellipse.toTriaxial_: name='_', a=6378172, b=797271.5, c=0, e2ab=0.984375, e2bc=1, e2ac=1\n\n    test 427 Ellipse.sideOfs       : 0\n    test 428 Ellipse.sideOf point  : 0.0\n    test 429 Ellipse.cw vs ccw     : 21\n    test 430 Ellipse.cw vs ccw'd   : True\n    test 455 Ellipse.slopes        : 0\n\n    test 456 a, b, b/a, m: (6378172.0, 2.220446049250313e-16, 3.4813204304467065e-23, 1.0)\n    test 457 Ellipse.perimeter2k   : 25512688.000000000\n    test 458 Ellipse.perimeter2k_  : 25512688.000000000\n    test 459 Ellipse.perimeterAGM  : 25512688.000000000\n    test 460 Ellipse.perimeterHGK  : 25512688.000000000\n    test 461 Ellipse.perimeterCR   : 25512688.000000000\n    test 462 Ellipse.perimeterGK   : 25512688.000000000\n    test 463 Ellipse.perimeter2RC  : 25512688.000000000\n    test 464 Ellipse.perimeter2R   : 25512688.000000000\n    test 465 Ellipse.perimeter4Arc3: 25512688.0, 0.0, 4503599627370496.0\n\n    test 466 elliperim DEPRECATED  : 25512688.0\n    test 467 elliperim DEPRECATED  : 40075236.597\n    test 468 elliperim DEPRECATED  : 25512688.0\n    test 469 elliperim DEPRECATED  : 0.0\n    test 470 elliperim DEPRECATED  : 0.0\n\n    test 471 Ellipse.apses2        : (12756344.0, 0.0)\n    test 472 Ellipse.arc           : 3189086.000000\n    test 473 Ellipse.arc           : 3189086.000000\n    test 474 Ellipse.arc           : 19134516.000000\n    test 475 Ellipse.arc           : 19134516.000000\n    test 476 Ellipse.area          : 4.449245038736142e-09\n    test 477 Ellipse.e             : 1.0\n    test 478 Ellipse.c             : 6378172.0\n    test 479 Ellipse.p             : 7.730084195959789e-39\n    test 480 Ellipse.point 45      : (4510048.672774165, 1.5700924586837752e-16)\n    test 481 Ellipse.polar2d 45    : (3.14018491736755e-16, 45.0)\n    test 482 Ellipse.R1            : 4252114.666666666\n    test 483 Ellipse.R2            : 3.763294676057001e-05\n    test 484 Ellipse.Roc 60        : 1.1899922225051757e+29\n    test 485 Ellipse.Roc_(-1, 1)   : 6.477497206707077e+28\n    test 486 Ellipse.Rrectifying   : 4060470.406761281\n    test 487 Ellipse.sideOf        : 4503599627370494.5\n    test 488 Ellipse.sideOf(c, p)  : 0.0\n    test 489 Ellipse.slope 60      : 0.0\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by ellipses.py line 800\n# lazily imported pygeodesy.hartzell4 from .triaxials.triaxial5 by bases.py line 411\n    test 490 Ellipse.hartzell4     : (4510048.672774, 0.0, 0.0, 1868123.327226)\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 491 Ellipse.height4       : (6378172.0, 0.0, 0.0, 0.0)\n    test 492 Ellipse.normal3d      : (0.0, 1.0, 0.0)\n    test 493 Ellipse.normal4       : (3189086.0, 0.0, 0.0, 0.0)\n\n    test 494 Ellipse.toRepr(terse=0): Ellipse(name='', a=6378172, b=0, c=6378172, e=1, e2=1, p=0, area=0, perimeter2k=25512688, R2=0.00003763)\n    test 495 Ellipse.toEllipsoid: name='', a=6378172, f=0, f_=0, b=6378172\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by ellipses.py line 800\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 496 Ellipse.toTriaxial_: name='_', a=6378172, b=0, c=0, e2ab=1, e2bc=0, e2ac=1\n\n    test 497 Ellipse.isCircular    : False\n    test 498 Ellipse.isFlat        : True\n    test 499 Ellipse.isOblate      : True\n    test 500 Ellipse.isProlate     : False\n\n    test 501 Airy1830.polarimeter/2k: 40004504.322866\n    test 502 AiryModified.polarimeter/2k: 40003104.213633\n    test 503 ATS1977.polarimeter/2k: 40007850.321623\n    test 504 Australia1966.polarimeter/2k: 40008005.562578\n    test 505 Bessel1841.polarimeter/2k: 40003423.057729\n    test 506 BesselModified.polarimeter/2k: 40004018.103739\n    test 507 CGCS2000.polarimeter/2k: 40007862.916922\n    test 508 Clarke1866.polarimeter/2k: 40007552.171931\n    test 509 Clarke1880.polarimeter/2k: 40007470.206590\n    test 510 Clarke1880IGN.polarimeter/2k: 40007470.788996\n    test 511 Clarke1880Mod.polarimeter/2k: 40007470.510580\n    test 512 CPM1799.polarimeter/2k: 40000070.108863\n    test 513 Delambre1810.polarimeter/2k: 39999995.935832\n    test 514 Engelis1985.polarimeter/2k: 40007856.817888\n    test 515 Everest1969.polarimeter/2k: 40003153.246198\n    test 516 Everest1975.polarimeter/2k: 40003175.124904\n    test 517 Fisher1968.polarimeter/2k: 40007954.087654\n    test 518 GEM10C.polarimeter/2k: 40007862.917259\n    test 519 GPES.polarimeter/2k: 40075004.119208\n    test 520 GRS67.polarimeter/2k: 40008004.925042\n    test 521 GRS80.polarimeter/2k: 40007862.916922\n    test 522 Helmert1906.polarimeter/2k: 40008267.720558\n    test 523 IAU76.polarimeter/2k: 40007881.684906\n    test 524 IERS1989.polarimeter/2k: 40007856.594279\n    test 525 IERS1992TOPEX.polarimeter/2k: 40007858.526391\n    test 526 IERS2003.polarimeter/2k: 40007860.227339\n    test 527 Intl1924.polarimeter/2k: 40009153.195958\n    test 528 Intl1967.polarimeter/2k: 40007989.794372\n    test 529 Krassovski1940.polarimeter/2k: 40008549.990171\n    test 530 Krassowsky1940.polarimeter/2k: 40008549.990171\n    test 531 Maupertuis1738.polarimeter/2k: 40090266.793877\n    test 532 Mercury1960.polarimeter/2k: 40008054.450184\n    test 533 Mercury1968Mod.polarimeter/2k: 40007954.087654\n    test 534 NWL1965.polarimeter/2k: 40007911.472733\n    test 535 OSU86F.polarimeter/2k: 40007857.899134\n    test 536 OSU91A.polarimeter/2k: 40007858.526400\n    test 537 Plessis1817.polarimeter/2k: 39999996.440146\n    test 538 PZ90.polarimeter/2k: 40007856.783172\n    test 539 SGS85.polarimeter/2k: 40007856.594279\n    test 540 SoAmerican1969.polarimeter/2k: 40008005.562578\n    test 541 Sphere.polarimeter/2k: 40030228.704467\n    test 542 SphereAuthalic.polarimeter/2k: 40030173.592041\n    test 543 SpherePopular.polarimeter/2k: 40075016.685578\n    test 544 Struve1860.polarimeter/2k: 40008071.346229\n    test 545 WGS60.polarimeter/2k: 40008048.177526\n    test 546 WGS66.polarimeter/2k: 40007911.472733\n    test 547 WGS72.polarimeter/2k: 40007850.996794\n    test 548 WGS84.polarimeter/2k: 40007862.917251\n    test 549 WGS84_NGS.polarimeter/2k: 40007862.916922\n\n    30 of 549 testEllipses.py tests (5.5%) FAILED, incl. 30 DeprecationWarnings (pygeodesy 26.3.26 PyPy 7.3.17 Python 3.10.14 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 242.448 ms\nrunning /opt/local/bin/p....y3.10 -W default ~/PyGeodesy/test/testEllipsoidal.py\n<string>:1: DeprecationWarning: method L{__matmul__<pygeodesy.trf.RefFrame.__matmul__>} has been DEPRECATED on 2024.02.16, use method C{B{point}.toRefFrame}.\n./test/testLatLon.py:276: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.ellipsoidalNvector.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', p.cosineAndoyerLambertTo(q), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:277: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.ellipsoidalNvector.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', q.cosineAndoyerLambertTo(p), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:279: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.ellipsoidalNvector.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', p.cosineForsytheAndoyerLambertTo(q), '124801.098' if Sph else '125205.965', fmt='%.3f')\n./test/testLatLon.py:280: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.ellipsoidalNvector.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', q.cosineForsytheAndoyerLambertTo(p), '124801.098' if Sph else '125205.965', fmt='%.3f')\n./pygeodesy/ellipsoidalBase.py:443: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  _ = self.datum.ellipsoid.geodesic\n./pygeodesy/azimuthal.py:636: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return self.datum.ellipsoid.geodesic\n./pygeodesy/ellipsoidalNvector.py:247: DeprecationWarning: Property_RO L{ned<pygeodesy.ltpTuples.Ned.ned>} has been DEPRECATED, use property C{ned4}.\n  dn = delta.ned[:3]  # XXX Ned4Tuple.to3Tuple\n./pygeodesy/deprecated/classes.py:33: DeprecationWarning: class L{Ned3Tuple<pygeodesy.deprecated.classes.Ned3Tuple>} has been DEPRECATED, use class L{Ned4Tuple}, ignoring item C{ltp}.\n  deprecated_class(cls)\n./test/testVectorial.py:128: DeprecationWarning: function L{nearestOn<pygeodesy.vector2d.nearestOn>} has been DEPRECATED on 2025.05.06, use L{pygeodesy.nearestOn<pygeodesy.vector3d.nearestOn>}.\n  t = vector2d.nearestOn(Nvector(0, 0, 0), p1, p2)\n# lazily imported pygeodesy.basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.DeprecationWarnings from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isint from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isLazy from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.issubclassof from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.iterNumpy2over from .iters by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.LazyImportError from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.karney by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.NN from .interns by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.normDMS from .dms by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.pairs from .streprs by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.printf from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.property_RO from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.typename from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.Aer from .ltpTuples by testLatLon.py line 12\n# lazily imported pygeodesy.Enu from .ltpTuples by testLatLon.py line 12\n# lazily imported pygeodesy.F_D from .dms by testLatLon.py line 12\n# lazily imported pygeodesy.F_DM from .dms by testLatLon.py line 12\n# lazily imported pygeodesy.F_DMS from .dms by testLatLon.py line 12\n# lazily imported pygeodesy.F_RAD from .dms by testLatLon.py line 12\n# lazily imported pygeodesy.R_M from .constants by testLatLon.py line 12\n# lazily imported pygeodesy.R_NM from .constants by testLatLon.py line 12\n# lazily imported pygeodesy.degrees from .utily by testLatLon.py line 12\n# lazily imported pygeodesy.fstr from .streprs by testLatLon.py line 12\n# lazily imported pygeodesy.isclockwise from .points by testLatLon.py line 12\n# lazily imported pygeodesy.isconvex from .points by testLatLon.py line 12\n# lazily imported pygeodesy.isenclosedBy from .points by testLatLon.py line 12\n# lazily imported pygeodesy.isnear0 from .constants by testLatLon.py line 12\n# lazily imported pygeodesy.ispolar from .points by testLatLon.py line 12\n# lazily imported pygeodesy.Local9Tuple from .ltpTuples by testLatLon.py line 12\n# lazily imported pygeodesy.Ltp from .ltp by testLatLon.py line 12\n# lazily imported pygeodesy.m2km from .utily by testLatLon.py line 12\n# lazily imported pygeodesy.m2NM from .utily by testLatLon.py line 12\n# lazily imported pygeodesy.Ned from .ltpTuples by testLatLon.py line 12\n# lazily imported pygeodesy.XyzLocal from .ltpTuples by testLatLon.py line 12\n# lazily imported pygeodesy.IntersectionError from .errors by testLatLon.py line 12\n# lazily imported pygeodesy.VincentyError from .ellipsoidalVincenty by testLatLon.py line 12\n# lazily imported pygeodesy.EPS from .constants by testVectorial.py line 11\n# lazily imported pygeodesy.EPS4 from .constants by testVectorial.py line 11\n# lazily imported pygeodesy.NEG0 from .constants by testVectorial.py line 11\n# lazily imported pygeodesy.circin6 from .vector2d by testVectorial.py line 11\n# lazily imported pygeodesy.circum3 from .vector2d by testVectorial.py line 11\n# lazily imported pygeodesy.circum4_ from .vector2d by testVectorial.py line 11\n# lazily imported pygeodesy.intersection3d3 from .vector3d by testVectorial.py line 11\n# lazily imported pygeodesy.meeus2 from .vector2d by testVectorial.py line 11\n# lazily imported pygeodesy.radii11 from .vector2d by testVectorial.py line 11\n# lazily imported pygeodesy.sincos2d from .utily by testVectorial.py line 11\n# lazily imported pygeodesy.sphericalNvector by testVectorial.py line 11\n# lazily imported pygeodesy.soddy4 from .vector2d by testVectorial.py line 11\n# lazily imported pygeodesy.trilaterate2d2 from .vector2d by testVectorial.py line 11\n# lazily imported pygeodesy.trilaterate3d2 from .vector3d by testVectorial.py line 11\n# lazily imported pygeodesy.Vector3d from .vector3d by testVectorial.py line 11\n# lazily imported pygeodesy.VectorError from .errors by testVectorial.py line 11\n# lazily imported pygeodesy.F_D__ from .dms by testEllipsoidal.py line 13\n# lazily imported pygeodesy.bearingDMS from .dms by testEllipsoidal.py line 13\n# lazily imported pygeodesy.compassDMS from .dms by testEllipsoidal.py line 13\n# lazily imported pygeodesy.Datums from .datums by testEllipsoidal.py line 13\n# lazily imported pygeodesy.latlonDMS from .dms by testEllipsoidal.py line 13\n# lazily imported pygeodesy.latlonDMS_ from .dms by testEllipsoidal.py line 13\n# lazily imported pygeodesy.m2SM from .utily by testEllipsoidal.py line 13\n# lazily imported pygeodesy.PI from .constants by testEllipsoidal.py line 13\n# lazily imported pygeodesy.PI_4 from .constants by testEllipsoidal.py line 13\n# lazily imported pygeodesy.RefFrames from .trf by testEllipsoidal.py line 13\n# lazily imported pygeodesy.wrap360 from .utily by testEllipsoidal.py line 13\n# lazily imported pygeodesy.ellipsoidalExact by testEllipsoidal.py line 753\n# lazily imported pygeodesy.ellipsoidalNvector by testEllipsoidal.py line 753\n# lazily imported pygeodesy.Equidistant from .azimuthal by testEllipsoidal.py line 753\n# lazily imported pygeodesy.EquidistantExact from .azimuthal by testEllipsoidal.py line 753\n# lazily imported pygeodesy.EquidistantGeodSolve from .azimuthal by testEllipsoidal.py line 753\n# lazily imported pygeodesy.EquidistantKarney from .azimuthal by testEllipsoidal.py line 753\n\n    testing testEllipsoidal.py 24.11.02 isLazy=3\n\n    testEllipsoidal(pygeodesy.ellipsoidalNvector, 25.05.12)\n    test 1 isEllipsoidal: True\n    test 2 isSpherical: False\n    test 3 isEllipsoidal: True\n    test 4 isSpherical: False\n    test 5 toDatum: 51.477284°N, 000.00002°E, -45.91m\n    test 6 toDatum: 51.4773°N, 000.0°E, -45.91m\n    test 7 toDatum: 51.4778°N, 000.0016°W\n    test 8 __matmul__: 51.477284°N, 000.00002°E, -45.91m\n    test 9 __matmul__: 51.477284°N, 000.00002°E, -45.90m\n    test 10 toNVector: (0.6228, 0.0, 0.7824, +0.24)\n    test 11 toNvector: True\n    test 12 toCartesian: [3980581, 97, 4966825]\n    test 13 toCartesian: True\n    test 14 toVector3D: (0.6228, 0.0, 0.7824)\n    test 15 Nvector: (0.5, 0.5, 0.7071)\n    test 16 toVector3D: (0.5, 0.5, 0.7071)\n    test 17 philamheight: 0.7854, 0.7854, 0.0\n    test 18 latlonheight: 45.0, 45.0, 0.0\n    test 19 xyzh: 0.5, 0.5, 0.7, 0.0\n    test 20 toCartesian: [3194434.411, 3194434.411, 4487326.82]\n    test 21 toCartesian: True\n    test 22 toLatLon: 45.0°N, 045.0°E\n    test 23 toLatLon: True\n    test 24 Nvector: (0.51, 0.512, 0.707, +1.00)\n    test 25 sat: 82.545852°N, 059.719736°E, -6353121.71m\n    test 26 dop: 51.998889°N, 004.373333°E, +134.64m\n    test 27 distance: 3806542.943645768  FAILED, KNOWN, expected 3806542.943647\n\n    32 tests skipped (32): insersecant2\n\n    testLatLon(pygeodesy.ellipsoidalNvector, 25.05.12)\n    test 28 isEllipsoidal: True\n    test 29 isSpherical: False\n    test 30 lat/lonDMS: 52.20472°N, 000.14056°E\n    test 31 lat/lonDMS F_DM: 52°12.283′N, 000°08.434′E\n    test 32 lat/lonDMS F_DM: 52°12.2832′N, 000°08.4336′E\n    test 33 lat/lonDMS F_DMS: 52°12′17″N, 000°08′26″E\n    test 34 lat/lonDMS F_DMS: 52°12′17.0″N, 000°08′26.0″E\n    test 35 lat/lonDMS F_RAD: 0.911144N, 0.002453E\n    test 36 isequalTo: True\n    test 37 isequalTo: True\n    test 38 latlon2: 52.20472, 0.14056\n    test 39 latlon2: 52.2047, 0.1406\n    test 40 latlon2: 52.205, 0.141\n    test 41 latlon2: 52.2, 0.14\n    test 42 latlon2: 52.2, 0.1\n    test 43 latlon2: 52.0, 0.0\n    test 44 chordTo: 12029263.15\n    test 45 chordTo: 12029049.69\n    test 46 copy: True\n    test 47 __eq__: True\n    test 48 __ne__: False\n# imported pygeodesy.formy into latlonBase.py line 484\n# lazily imported pygeodesy.angles by units.py line 633\n    test 49 equirectangularTo: 404329.56\n    test 50 distanceTo: 404279.720589\n    test 51 distanceTo: 404279.720589\n    test 52 distanceTo: 3972863\n    test 53 distanceTo: 18013602.92\n    test 54 distanceTo: 20015114.35  FAILED, KNOWN, expected 20003931.46\n    test 55 intermediateTo: 51.372294°N, 000.707192°E\n    test 56 intermediateTo: True\n    test 57 intermediateTo: 404279.721\n    test 58 intermediateTo+5: 35.560239°N, 008.833512°E\n    test 59 intermediateTo+5: 4.885\n    test 60 intermediateTo-4: 64.570387°N, 013.156352°W\n    test 61 intermediateTo-4: 3.885\n    test 62 intermediateTo-h: 125.000\n    test 63 midpointTo: 50.536327°N, 001.274614°E\n# lazily imported pygeodesy.booleans by iters.py line 76\n    test 64 neareston6: (LatLon(45°00′00.0″N, 001°00′00.0″E), 4755443.4294, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E))\n    test 65 neareston6: (LatLon(45°30′03.94″N, 002°00′00.0″E), 39078.729285, 1.501072, 2, LatLon(45°00′00.0″N, 002°00′00.0″E), LatLon(46°00′00.0″N, 002°00′00.0″E))\n    test 66 chordTo: 125203.963\n    test 67 cosineAndoyerLambertTo: 125205.962\n    test 68 cosineAndoyerLambertTo: 125205.962\n    test 69 cosineForsyheAndoyerLambertTo: 125205.965\n    test 70 cosineForsyheAndoyerLambertTo: 125205.965\n    test 71 cosineLawTo: 124801.098\n    test 72 cosineLawTo: 124801.098\n    test 73 equirectangularTo: 124804.754\n    test 74 equirectangularTo: 124804.754\n    test 75 euclideanTo: 130015.089\n    test 76 euclideanTo: 130015.089\n    test 77 flatLocalTo: 125209.633\n    test 78 flatLocalTo: 125209.633\n    test 79 flatPolarTo: 133663.257\n    test 80 flatPolarTo: 133663.257\n    test 81 hartzell: 53.3206°N, 001.7297°W\n# lazily imported pygeodesy.triaxials by lazily.py line 529\n# lazily imported pygeodesy.Triaxial from .triaxials.triaxial5 by ellipsoids.py line 1905\n    test 82 hartzell: 53.349541°N, 001.7297°W\n    test 83 height4: 0.0\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by cartesianBase.py line 364\n    test 84 height4: (3820333.9, -115367.0, 5097204.4, -6584.9)\n    test 85 height4: 53°19′14.2″N, 001°43′46.9″W\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by cartesianBase.py line 364\n    test 86 height4: 53°19′14.2″N, 001°43′46.9″W\n    test 87 haversineTo: 124801.098\n    test 88 haversineTo: 124801.098\n    test 89 hubenyTo: <bound method LatLonBase.flatLocalTo of LatLon(53°19′14.16″N, 001°43′46.92″W)>\n    test 90 hubenyTo: <bound method LatLonBase.flatLocalTo of LatLon(53°11′19.32″N, 000°08′00.24″E)>\n    test 91 thomasTo: 125206.188\n    test 92 thomasTo: 125206.188\n    test 93 vincentysTo: 124801.098\n    test 94 vincentysTo: 124801.098\n    test 95 isclockwise: False\n    test 96 isclockwise*: False\n    test 97 isclockwise: True\n    test 98 isclockwise*: True\n    test 99 isclockwise: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 100 isclockwise*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 101 isclockwise: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 102 isclockwise*: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 103 isconvex: False\n    test 104 isconvex*: False\n    test 105 isconvex: True\n    test 106 isconvex*: True\n    test 107 isconvex: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 108 isconvex*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 109 isenclosedBy1: True\n    test 110 isenclosedBy1*: True\n    test 111 isenclosedBy2: False\n    test 112 isenclosedBy2*: False\n    test 113 isenclosedBy3: False\n    test 114 isenclosedBy3*: False\n    test 115 isenclosedBy4: False\n    test 116 isenclosedBy4*: False\n    test 117 isenclosedBy5: False\n    test 118 isenclosedBy5*: False\n    test 119 isenclosedBy6: True\n    test 120 isenclosedBy6*: True\n    test 121 isenclosedBy7: True\n    test 122 isenclosedBy7*: True\n    test 123 isenclosedBy-CCW: True\n    test 124 isenclosedBy-CW : True\n    test 125 isenclosedBy-CCW: True\n    test 126 compassAngleTo: 100.017\n    test 127 compassAngleTo: 105.599\n    test 128 compassAngleTo: 280.017\n    test 129 compassAngleTo: 285.599\n    test 130 equirectangularTo: 592.185\n    test 131 distanceTo: 591.831\n    test 132 compassAngleTo: 0.0\n    test 133 compassAngleTo: 45.0\n    test 134 compassAngleTo: 90.0\n    test 135 compassAngleTo: 180.0\n    test 136 compassAngleTo: 225.0\n    test 137 compassAngleTo: 315.0\n    test 138 compassAngleTo: 270.0\n    test 139 compassAngleTo: 359.4\n    test 140 latlon2: (53.0, 1.0)\n    test 141 philam2: (0.93, 0.02)\n    test 142 compassAngleTo: 31\n    test 143 compassAngleTo: 45\n\n    test 144 boundsOf: <class 'pygeodesy.namedTuples.Bounds2Tuple'>\n    test 145 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 146 latlon2: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 147 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 148 isequalTo: <class 'bool'>\n    test 149 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 150 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 151 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 152 xyz3: <class 'tuple'>\n    test 153 xyzh: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 154 compassAngleTo: <class 'float'>\n    test 155 cosineLawTo: <class 'float'>\n    test 156 euclideanTo: <class 'float'>\n    test 157 flatLocalTo: <class 'float'>\n    test 158 flatPolarTo: <class 'float'>\n    test 159 haversineTo: <class 'float'>\n    test 160 hubenyTo: <class 'float'>\n    test 161 vincentysTo: <class 'float'>\n# imported pygeodesy.ltpTuples into ecefLocals.py line 80\n# imported pygeodesy.ltp into ecefLocals.py line 63\n# imported pygeodesy.ltp into ltpTuples.py line 1585\n    test 162 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 163 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 164 toLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 165 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 166 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 167 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 168 toVector: (3934960.466675, 0.0, 5002803.345483)\n    test 169 toVector3d: (0.61823, 0.0, 0.786)\n    test 170 trilaterate5 (pygeodesy.ellipsoidalNvector) .min: 223.305\n    test 171 trilaterate5 (pygeodesy.ellipsoidalNvector) .point: 42.67456065°N, 002.49539502°E\n    test 172 trilaterate5 (pygeodesy.ellipsoidalNvector) .min- is .maxPoint: True\n    test 173 trilaterate5 (pygeodesy.ellipsoidalNvector) .n: 1\n    test 174 trilaterate5 (pygeodesy.ellipsoidalNvector) .error: ellipsoidalNvector.LatLon.trilaterate5(area=True), MRO(nvectorBase.LatLonNvectorBase, ellipsoidalBase.LatLonEllipsoidalBase, latlonBase.LatLonBase, named._NamedBase, ecefLocals._EcefLocal, named._Named): not implemented\n\n    test 175 radii11: Radii11Tuple(rA=7705.84217, rB=1367.057272, rC=498.160185, cR=4897.488519, rIn=740.470746, riS=179.544791, roS=5964.029657, a=1865.217457, b=8204.002354, c=9072.899442, s=9571.059626)\n\n    22 tests skipped (54): numpy in PYGEODESY_XPACKAGES=numpy,scipy: required by vector2d._numpy\n\n    testVectorial(pygeodesy.ellipsoidalNvector, 25.05.12)\n\n    test 176 toLatLon: 44.995674°N, 045.0°E\n    test 177 toNvector: (0.50004, 0.50004, 0.70705)\n    test 178 isequalTo: False\n    test 179 isequalTo: True\n    test 180 length: 0.99992449715\n    test 181 euclid: 0.99995577\n    test 182 length: 1.00\n    test 183 euclid: 1.0000\n    test 184 meanOf: 44.995674°N, 045.0°E\n    test 185 meanOf: LatLon\n    test 186 apply: (0.5, 0.5, 0.707)\n    test 187 init: (0.5, 0.5, 0.707)\n    test 188 i***: (0.5, 0.5, 0.707)\n    test 189 abs: 0.99992449715\n    test 190 sumOf: (52.70504, 0.61904, 0.70705)\n./test/testLatLon.py:276: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.ellipsoidalVincenty.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', p.cosineAndoyerLambertTo(q), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:277: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.ellipsoidalVincenty.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', q.cosineAndoyerLambertTo(p), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:279: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.ellipsoidalVincenty.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', p.cosineForsytheAndoyerLambertTo(q), '124801.098' if Sph else '125205.965', fmt='%.3f')\n./test/testLatLon.py:280: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.ellipsoidalVincenty.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', q.cosineForsytheAndoyerLambertTo(p), '124801.098' if Sph else '125205.965', fmt='%.3f')\n./test/testLatLon.py:627: DeprecationWarning: function L{areaOf<pygeodesy.ellipsoidalVincenty.areaOf>} has been DEPRECATED, use function L{ellipsoidalExact.areaOf} or L{ellipsoidalKarney.areaOf}.\n  r = a(reversed(b))\n./pygeodesy/ellipsoidalKarney.py:139: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return fabs(_polygon(datum.ellipsoid.geodesic, points, True, False, wrap, polar))\n./test/testLatLon.py:628: DeprecationWarning: function L{areaOf<pygeodesy.ellipsoidalVincenty.areaOf>} has been DEPRECATED, use function L{ellipsoidalExact.areaOf} or L{ellipsoidalKarney.areaOf}.\n  f = a(b)  # ccw\n    test 191 sumOf: Nv\n    test 192 sumOf: sumOf\n    test 193 length: 52.7134151513\n    test 194 sizeof: None  FAILED, KNOWN, expected 128\n    test 195 length: 52.2051356286\n    test 196 sizeof: None  FAILED, KNOWN, expected 247\n    test 197 copy: True\n    test 198 length: 52.2051356286\n    test 199 sizeof: None\n    test 200 isenclosedBy: True\n    test 201 isenclosedBy*: True\n    test 202 isenclosedBy: True\n    test 203 isenclosedBy*: True\n# lazily imported pygeodesy.geodesicw by ellipsoids.py line 1074\n\n    test 204 nearestOn: 51.0°N, 001.0°E\n    test 205 nearestOn: 50.987°N, 000.298°W\n    test 206 nearestOn: 51.0°N, 002.0°E\n    test 207 nearestOn: 50.995°N, 002.655°E\n    test 208 nearestOn: 51.0°N, 001.9°E\n    test 209 nearestOn: True\n    test 210 distanceTo: 42.826\n    test 211 nearestOn: 51.0°N, 002.0°E\n    test 212 nearestOn: True\n    test 213 nearestOn: 00.0°N, 000.0°E\n    test 214 nearestOn: True\n    test 215 nearestOn: 00.0°N, 020.0°E\n    test 216 nearestOn: True\n    test 217 nearestOn: 02.0°N, 002.0°E\n    test 218 nearestOn: 02.0°N, 002.0°E\n\n    test 219 neareston6: (LatLon(45°00′00.0″N, 001°00′00.0″E), 4755443.4294, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E))\n    test 220 neareston6: (LatLon(45°30′03.94″N, 002°00′00.0″E), 39078.729285, 1.501072, 2, LatLon(45°00′00.0″N, 002°00′00.0″E), LatLon(46°00′00.0″N, 002°00′00.0″E))\n\n    test 221 BasseC: 47.3038°N, 002.5721°W\n    test 222 BasseH: 47.311067°N, 002.528617°W\n    test 223 triangulate: 47.323667°N, 002.568501°W\n    test 224 triangulate: True\n\n    test 225 trilaterate: 37.419078°N, 121.960579°W\n    test 226 trilaterate: True\n    test 227 trilaterate: 08.068912°S, 034.888699°W\n    test 228 trilaterate: True\n    test 229 trilaterate: 08.068912°S, 034.888695°W  FAILED, KNOWN, expected 08.068912°S, 034.888699°W\n    test 230 trilaterate: True\n    test 231 trilaterate: 42.67456065°N, 002.49539502°E\n# imported pygeodesy.basics into errors.py line 443\n    test 232 trilaterate: distance1 (5110), distance2 (5110), distance3 (5110), point1 (LatLon(42°41′19.82″N, 002°26′19.89″E)), point2 (LatLon(42°38′07.52″N, 002°31′21.25″E)) or point3 (LatLon(42°38′43.44″N, 002°30′17.32″E)): no intersection (useZ=False, wrap=False, z=-8.13526e-05)\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by <frozen importlib._bootstrap> line 1075\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by <frozen importlib._bootstrap> line 1075\n# lazily imported pygeodesy.Conformal2Tuple from .triaxials.triaxial5 by <frozen importlib._bootstrap> line 1075\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by classes.py line 21\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by classes.py line 21\n# lazily imported pygeodesy.Conformal2Tuple from .triaxials.triaxial5 by classes.py line 21\n# lazily imported pygeodesy.deprecated by ltpTuples.py line 483\n\n    test 233 destinationNed: 48°53′12.01″N, 002°22′29.0″E, +0.20m\n\n    testNvector(pygeodesy.ellipsoidalNvector, 25.05.12)\n    test 234 sumOf: Nvector\n    test 235 ecef.x, .y, .z: 3194659.54086, 3194659.54086, 4487008.4122\n    test 236 ecef.lat, .lon: 44.995674, 45.0\n    test 237 ecef.height: -0.0\n    test 238 ecef.M: -0.707106781, -0.499962243, 0.500037754, 0.707106781, -0.499962243, 0.500037754, 0.0, 0.707160174, 0.707053385\n    test 239 nearestOn: (0.0, 0.0, 0.0)\n    test 240 nearestOn: True\n    test 241 nearestOn: (100.0, 100.0, 100.0)\n    test 242 nearestOn: True\n# imported pygeodesy.vector2d into vector3d.py line 659\n    test 243 iscolinearWith: False\n    test 244 iscolinearWith: True\n    test 245 nearestOn: (0.0, 0.0, 0.0)\n    test 246 nearestOn: True\n    test 247 nearestOn: (100.0, 100.0, 100.0)\n    test 248 nearestOn: True\n    test 249 iscolinearWith: False\n    test 250 iscolinearWith: True\n\n    testEllipsoidal(pygeodesy.ellipsoidalVincenty, 25.05.26)\n    test 251 isEllipsoidal: True\n    test 252 isSpherical: False\n    test 253 isEllipsoidal: True\n    test 254 isSpherical: False\n    test 255 toDatum: 51.477284°N, 000.00002°E, -45.91m\n    test 256 toDatum: 51.4773°N, 000.0°E, -45.91m\n    test 257 toDatum: 51.4778°N, 000.0016°W\n    test 258 __matmul__: 51.477284°N, 000.00002°E, -45.91m\n    test 259 __matmul__: 51.477284°N, 000.00002°E, -45.90m\n    test 260 sat: 82.545852°N, 059.719736°E, -6353121.71m\n    test 261 dop: 51.998889°N, 004.373333°E, +134.64m\n    test 262 distance: 3817991.074012262  FAILED, KNOWN, expected 3817991.074015\n    test 263 neareston8: (LatLon(45°00′00.0″N, 001°00′00.0″E), 4874369.98942, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E), 0.0, 0.0)\n    test 264 iteration: 0\n    test 265 neareston8: (LatLon(45°30′03.93″N, 020°00′00.0″E), 39078.779519, 1.501069, 2, LatLon(45°00′00.0″N, 020°00′00.0″E), LatLon(46°00′00.0″N, 020°00′00.0″E), 270.356041, 269.999412)\n    test 266 iteration: 1\n# lazily imported pygeodesy.geodesicx by ellipsoids.py line 1043\n# lazily imported pygeodesy.rhumb by geodesicw.py line 606\n# lazily imported pygeodesy.geodsolve by ellipsoids.py line 1057\n# lazily imported pygeodesy.elliptic by gx.py line 421\n    test 267 intersecant2: 2.851e-11% 5 LatLon(03°18′54.69″S, 023°52′08.48″E)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 268 intersecant2: 2.948e-11% 5 LatLon(22°22′23.65″S, 007°55′54.49″E)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 269 intersecant2: 7.380e-11% 5 LatLon(10°39′24.95″N, 034°45′48.18″W)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 270 intersecant2: 6.489e-11% 4 LatLon(25°11′09.14″S, 005°10′35.44″W)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 271 intersecant2: 6.554e-12% 5 LatLon(10°14′21.91″S, 021°00′17.05″E)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 272 intersecant2: 1.994e-11% 5 LatLon(20°55′17.31″S, 010°40′21.43″E)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 273 intersecant2: center (LatLon(05°00′00.0″N, 005°00′00.0″W)), circle (3339584), end (LatLon(15°00′00.0″N, 045°00′00.0″E)), exact (False), start (LatLon(45°00′00.0″S, 015°00′00.0″W)) or wrap (False): 'too distant (3.69e+06) plumb to (16°56′45.9″S, 020°17′02.98″E)'\n    test 274 intersecant2: 4.822e-11% 5 LatLon(30°19′11.9″N, 022°18′22.76″W)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 275 intersecant2: 2.138e-11% 5 LatLon(00°59′41.3″N, 034°46′57.09″W)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 276 intersecant2: center (LatLon(05°00′00.0″N, 005°00′00.0″W)), circle (3339584), end (261.75669472183114), exact (False), start (LatLon(00°59′41.3″N, 034°46′57.09″W)) or wrap (False): 'no convergence (256), tolerance (1.49012e-08) plumb to (07°38′54.0″S, 004°16′43.16″W)'\n    test 277 intersecant2: center (LatLon(05°00′00.0″N, 005°00′00.0″W)), circle (3339584), end (LatLon(35°08′52.15″N, 004°02′04.68″W)), exact (False), start (LatLon(34°12′31.53″N, 003°04′01.61″E)) or wrap (False): 'no convergence (2.36323e-08), tolerance (1.49012e-08) plumb to (34°43′48.27″N, 000°27′49.31″W)'\n    test 278 intersecant2: center (LatLon(05°00′00.0″N, 005°00′00.0″W)), circle (3339584), end (16.24030146123896), exact (False), start (LatLon(34°12′31.53″N, 003°04′01.61″E)) or wrap (False): 'too distant (5.41e+06) plumb to (07°36′44.42″S, 042°01′16.36″E)'\n    test 279 intersecant2: 1.610e-11% 5 LatLon(07°41′21.22″S, 022°17′12.7″E)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 280 intersecant2: 5.536e-12% 5 LatLon(35°07′53.48″N, 006°26′21.82″W)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 281 intersecant2: center (LatLon(05°00′00.0″N, 005°00′00.0″W)), circle (3339584), end (357.1305274303066), exact (False), start (LatLon(35°07′53.48″N, 006°26′21.82″W)) or wrap (False): 'no convergence (128), tolerance (1.49012e-08) plumb to (06°05′12.95″N, 023°45′44.61″W)'\n\n    testLatLon(pygeodesy.ellipsoidalVincenty, 25.05.26)\n    test 282 isEllipsoidal: True\n    test 283 isSpherical: False\n    test 284 lat/lonDMS: 52.20472°N, 000.14056°E\n    test 285 lat/lonDMS F_DM: 52°12.283′N, 000°08.434′E\n    test 286 lat/lonDMS F_DM: 52°12.2832′N, 000°08.4336′E\n    test 287 lat/lonDMS F_DMS: 52°12′17″N, 000°08′26″E\n    test 288 lat/lonDMS F_DMS: 52°12′17.0″N, 000°08′26.0″E\n    test 289 lat/lonDMS F_RAD: 0.911144N, 0.002453E\n    test 290 isequalTo: True\n    test 291 isequalTo: True\n    test 292 latlon2: 52.20472, 0.14056\n    test 293 latlon2: 52.2047, 0.1406\n    test 294 latlon2: 52.205, 0.141\n    test 295 latlon2: 52.2, 0.14\n    test 296 latlon2: 52.2, 0.1\n    test 297 latlon2: 52.0, 0.0\n    test 298 chordTo: 12029263.15\n    test 299 chordTo: 12029049.69\n    test 300 initialBearingTo: 156.1106\n    test 301 initialBearingTo: 65.9335\n    test 302 initialBearingTo: 0.0\n    test 303 initialBearingTo: 180.0\n    test 304 finalBearingTo: 157.8345\n    test 305 finalBearingTo: 93.9034\n    test 306 bearingTo2: 156.1106, 157.8345\n    test 307 ispolar: True\n    test 308 copy: True\n    test 309 __eq__: True\n    test 310 __ne__: False\n    test 311 equirectangularTo: 404329.56\n    test 312 distanceTo: 404607.805988\n    test 313 distanceTo: 404607.805988\n    test 314 distanceTo: 3981601\n    test 315 antipodal: False\n    test 316 distanceTo dateline: 19959679.267\n    test 317 distanceTo unrolled: 19959679.267\n    test 318 antipodal: False\n    test 319 distanceTo dateline: 9513998\n    test 320 distanceTo unrolled: 9513998\n    test 321 distanceTo: 18012714.66\n    test 322 distanceTo: ambiguous: LatLon(00°00′00.0″N, 000°00′00.0″E) antipodal to LatLon(00°00′00.0″N, 180°00′00.0″E)  FAILED, KNOWN, expected ambiguous, antipodal ...\n    test 323 distanceTo3 dateline: 19959679.2674, 161.0677, 18.8252\n    test 324 distanceTo3 dateline: 9513997.9901, 42.9164, 138.8903\n    test 325 distanceTo3 dateline: 19959679.2674, 161.0677, 18.8252\n    test 326 distanceTo3 dateline: 9513997.9901, 42.9164, 138.8903\n    test 327 intermediateTo: 51.372275°N, 000.707253°E\n    test 328 intermediateTo: True\n    test 329 intermediateTo: 404607.806\n    test 330 intermediateTo+5: 35.139582°N, 008.994368°E\n    test 331 intermediateTo+5: 5.000\n    test 332 intermediateTo-4: 64.894124°N, 013.705689°W\n    test 333 intermediateTo-4: 4.000\n    test 334 intermediateTo-h: 125.000\n    test 335 midpointTo: 50.536583°N, 001.274507°E\n    test 336 destination: 51.513526°N, 000.098038°W\n    test 337 destination: 51°30′49″N, 000°05′53″W\n    test 338 destination: 33°57′N, 118°24′W\n    test 339 destination: 33.950367°N, 118.399012°W\n    test 340 destination: 0.592546N, 2.066453W\n    test 341 destination: 32.11195529°N, 064.56074722°E  FAILED, KNOWN, expected 32.11195529°N, 063.95925278°E\n    test 342 neareston6: (LatLon(45°00′00.0″N, 001°00′00.0″E), 4755443.4294, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E))\n    test 343 neareston6: (LatLon(45°30′03.94″N, 002°00′00.0″E), 39078.729285, 1.501072, 2, LatLon(45°00′00.0″N, 002°00′00.0″E), LatLon(46°00′00.0″N, 002°00′00.0″E))\n    test 344 chordTo: 125203.963\n    test 345 cosineAndoyerLambertTo: 125205.962\n    test 346 cosineAndoyerLambertTo: 125205.962\n    test 347 cosineForsyheAndoyerLambertTo: 125205.965\n    test 348 cosineForsyheAndoyerLambertTo: 125205.965\n    test 349 cosineLawTo: 124801.098\n    test 350 cosineLawTo: 124801.098\n    test 351 equirectangularTo: 124804.754\n    test 352 equirectangularTo: 124804.754\n    test 353 euclideanTo: 130015.089\n    test 354 euclideanTo: 130015.089\n    test 355 flatLocalTo: 125209.633\n    test 356 flatLocalTo: 125209.633\n    test 357 flatPolarTo: 133663.257\n    test 358 flatPolarTo: 133663.257\n    test 359 hartzell: 53.3206°N, 001.7297°W\n# lazily imported pygeodesy.Triaxial from .triaxials.triaxial5 by ellipsoids.py line 1905\n    test 360 hartzell: 53.349541°N, 001.7297°W\n    test 361 height4: 0.0\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by cartesianBase.py line 364\n    test 362 height4: (3820333.9, -115367.0, 5097204.4, -6584.9)\n    test 363 height4: 53°19′14.2″N, 001°43′46.9″W\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by cartesianBase.py line 364\n    test 364 height4: 53°19′14.2″N, 001°43′46.9″W\n    test 365 haversineTo: 124801.098\n    test 366 haversineTo: 124801.098\n    test 367 hubenyTo: <bound method LatLonBase.flatLocalTo of LatLon(53°19′14.16″N, 001°43′46.92″W)>\n    test 368 hubenyTo: <bound method LatLonBase.flatLocalTo of LatLon(53°11′19.32″N, 000°08′00.24″E)>\n    test 369 thomasTo: 125206.188\n    test 370 thomasTo: 125206.188\n    test 371 vincentysTo: 124801.098\n    test 372 vincentysTo: 124801.098\n    test 373 isclockwise: False\n    test 374 isclockwise*: False\n    test 375 isclockwise: True\n    test 376 isclockwise*: True\n    test 377 isclockwise: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 378 isclockwise*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 379 isclockwise: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 380 isclockwise*: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 381 isconvex: False\n    test 382 isconvex*: False\n    test 383 isconvex: True\n    test 384 isconvex*: True\n    test 385 isconvex: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 386 isconvex*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 387 isenclosedBy1: True\n    test 388 isenclosedBy1*: True\n    test 389 isenclosedBy2: False\n    test 390 isenclosedBy2*: False\n    test 391 isenclosedBy3: False\n    test 392 isenclosedBy3*: False\n    test 393 isenclosedBy4: False\n    test 394 isenclosedBy4*: False\n    test 395 isenclosedBy5: False\n    test 396 isenclosedBy5*: False\n    test 397 isenclosedBy6: True\n    test 398 isenclosedBy6*: True\n    test 399 isenclosedBy7: True\n    test 400 isenclosedBy7*: True\n    test 401 isenclosedBy-CCW: True\n    test 402 isenclosedBy-CW : True\n    test 403 isenclosedBy-CCW: True\n    test 404 initialBearingTo: 102.392291\n    test 405 compassAngleTo: 100.017\n    test 406 compassAngleTo: 105.599\n    test 407 initialBearingTo: 288.676039\n    test 408 compassAngleTo: 280.017\n    test 409 compassAngleTo: 285.599\n    test 410 equirectangularTo: 592.185\n    test 411 distanceTo: 593.571\n    test 412 bearingTo: 0.0\n    test 413 compassAngleTo: 0.0\n    test 414 bearingTo: 45.2  FAILED, KNOWN, expected 45.0\n    test 415 compassAngleTo: 45.0\n    test 416 bearingTo: 90.0\n    test 417 compassAngleTo: 90.0\n    test 418 bearingTo: 180.0\n    test 419 compassAngleTo: 180.0\n    test 420 bearingTo: 225.2  FAILED, KNOWN, expected 225.0\n    test 421 compassAngleTo: 225.0\n    test 422 bearingTo: 314.8  FAILED, KNOWN, expected 315.0\n    test 423 compassAngleTo: 315.0\n    test 424 bearingTo: 270.0\n    test 425 compassAngleTo: 270.0\n    test 426 bearingTo: 360.0  FAILED, KNOWN, expected 359.4\n    test 427 compassAngleTo: 359.4\n    test 428 latlon2: (53.0, 1.0)\n    test 429 philam2: (0.93, 0.02)\n    test 430 bearingTo: 31\n    test 431 compassAngleTo: 31\n    test 432 compassAngleTo: 45\n\n    test 433 boundsOf: <class 'pygeodesy.namedTuples.Bounds2Tuple'>\n    test 434 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 435 latlon2: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n./pygeodesy/ellipsoidalKarney.py:94: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return self.datum.ellipsoid.geodesic\n    test 436 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 437 isequalTo: <class 'bool'>\n    test 438 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 439 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 440 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 441 xyz3: <class 'tuple'>\n    test 442 xyzh: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 443 compassAngleTo: <class 'float'>\n    test 444 cosineLawTo: <class 'float'>\n    test 445 euclideanTo: <class 'float'>\n    test 446 flatLocalTo: <class 'float'>\n    test 447 flatPolarTo: <class 'float'>\n    test 448 haversineTo: <class 'float'>\n    test 449 hubenyTo: <class 'float'>\n    test 450 vincentysTo: <class 'float'>\n    test 451 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 452 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 453 toLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 454 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 455 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 456 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 457 toNvector: (0.615661, 0.0, 0.788011, 0)\n    test 458 toVector: (3934960.466675, 0.0, 5002803.345483)\n    test 459 toVector3d: (0.61823, 0.0, 0.786)\n# lazily imported pygeodesy.sphericalTrigonometry by ellipsoidalBaseDI.py line 734\n\n    test 460 trilaterate5 (pygeodesy.ellipsoidalVincenty) .min: 305.091\n    test 461 trilaterate5 (pygeodesy.ellipsoidalVincenty) .point: 42.66933643°N, 002.48620262°E\n    test 462 trilaterate5 (pygeodesy.ellipsoidalVincenty) .max: 1592.545\n    test 463 trilaterate5 (pygeodesy.ellipsoidalVincenty) .point: 42.65141232°N, 002.46816989°E\n    test 464 trilaterate5 (pygeodesy.ellipsoidalVincenty) .n: 3\n    test 465 trilaterate5 (pygeodesy.ellipsoidalVincenty) .min: 127.229\n    test 466 trilaterate5 (pygeodesy.ellipsoidalVincenty) .max: 152.612\n    test 467 trilaterate5 (pygeodesy.ellipsoidalVincenty) .point: 42.67815375°N, 002.49950041°E\n    test 468 trilaterate5 (pygeodesy.ellipsoidalVincenty) .n: 2\n    test 469 trilaterate5 (pygeodesy.ellipsoidalVincenty) .min: 2400.293\n    test 470 trilaterate5 (pygeodesy.ellipsoidalVincenty) .max: 2400.293\n    test 471 trilaterate5 (pygeodesy.ellipsoidalVincenty) .point: 42.66128984°N, 002.47973818°E\n    test 472 trilaterate5 (pygeodesy.ellipsoidalVincenty) .min- is .maxPoint: True\n    test 473 trilaterate5 (pygeodesy.ellipsoidalVincenty) .n: 1\n    test 474 trilaterate5 (pygeodesy.ellipsoidalVincenty) .min: 1343.743\n    test 475 trilaterate5 (pygeodesy.ellipsoidalVincenty) .point: 42.69131964°N, 002.50112167°E\n    test 476 trilaterate5 (pygeodesy.ellipsoidalVincenty) .max: 1445.554\n    test 477 trilaterate5 (pygeodesy.ellipsoidalVincenty) .point: 42.67815375°N, 002.49950041°E\n    test 478 trilaterate5 (pygeodesy.ellipsoidalVincenty) .n: 2\n    test 479 radii11: Radii11Tuple(rA=7244.792747, rB=1828.106695, rC=2.25502, cR=57792.067128, rIn=57.366968, riS=2.087668, roS=2.443334, a=1830.361715, b=7247.047766, c=9072.899442, s=9075.154461)\n\n    27 tests skipped (81): numpy in PYGEODESY_XPACKAGES=numpy,scipy: required by vector2d._numpy\n\n    test 480 radii11: Radii11Tuple(rA=7244.792747, rB=1828.106695, rC=2.25502, cR=57792.067128, rIn=57.366968, riS=2.087668, roS=2.443334, a=1830.361715, b=7247.047766, c=9072.899442, s=9075.154461)\n\n    22 tests skipped (103): numpy in PYGEODESY_XPACKAGES=numpy,scipy: required by vector2d._numpy\n# lazily imported pygeodesy.ellipsoidalKarney by ellipsoidalVincenty.py line 383\n\n    test 481 area cw/ccw: 1.0\n\n    testNOAA(pygeodesy.ellipsoidalVincenty, 25.05.26)\n    test 482 NOAAexample1: 191872.1190, 249 03 16.4237, 67 59 11.1619\n    test 483 NOAAexample2: 182009.1679, 254 42 44.6439, 73 09 21.3315\n    test 484 NOAAexample3: 123456.7891, 245 00 34.7001, 64 20 24.6864\n    test 485 NOAAexample4: 145239.0603, 114 29 26.9586, 295 21 32.6566\n\n    testIntersection3(pygeodesy.ellipsoidalVincenty, 25.05.26)\n    test 486 (30, 17): (LatLon(30°52′03.1″N, 015°30′38.41″E), 0, 0)\n    test 487 (30, 17): (LatLon(30°52′03.1″N, 015°30′38.41″E), -1, 0)\n    test 488 (-1,  3): (LatLon(01°34′52.49″N, 006°00′51.83″E), -1, -2)\n    test 489 (-1,  3): (LatLon(01°34′52.49″N, 006°00′51.83″E), -1, 2)\n    test 490 (65, 32): (LatLon(56°58′26.51″N, 032°00′00.0″E), 1, 0)\n    test 491 (65, 32): (LatLon(56°58′26.51″N, 032°00′00.0″E), 1, 2)\n    test 492 (-2, 17): <class 'pygeodesy.errors.IntersectionError'>\n    test 493 (49, 25): (LatLon(49°00′00.0″N, 025°00′00.0″E), 1, -2)  FAILED, KNOWN, expected (LatLon(49°00′00.0″N, 025°00′00.0″E), 0, 0)\n    test 494 #58: (LatLon(01°54′25.65″S, 005°37′48.76″E), 1, -2)\n    test 495 #58: <class 'pygeodesy.errors.IntersectionError'>\n\n    testIntersections2(pygeodesy.ellipsoidalVincenty, 25.05.26)\n    test 496 Equidistant: 36.9879°N, 088.1564°W, 38.2441°N, 092.3835°W  FAILED, KNOWN, expected 36.9892°N, 088.152°W, 38.2377°N, 092.39°W\n    test 497 Equidistant: 36.9892°N, 088.152°W, 38.2377°N, 092.39°W\n    test 498 Equidistant: 00.0°S, 035.4073°W, 00.0°S, 035.4073°E\n    test 499 Equidistant: 1.63814 (% of radius)\n    test 500 Equidistant: 22.756°N, 000.0°W, 22.756°S, 000.0°W\n    test 501 Equidistant: 1.30784 (% of radius)\n    test 502 Equidistant: 29.2359°N, 040.2625°W, 29.2359°S, 040.2625°E\n    test 503 Equidistant: 1.31348 (% of radius)\n    test 504 Equidistant: 01.1557°S, 045.0894°E, 01.1557°N, 045.0894°E\n    test 505 Equidistant: 1.81093 (% of radius)\n    test 506 Equidistant 5: 05.0218°S, 005.0605°W, 05.0218°N, 005.0605°E\n    test 507 Equidistant 5: 0.00337268 (% of radius)\n    test 508 Equidistant 10: 10.0378°S, 010.3545°W, 10.0378°N, 010.3545°E\n    test 509 Equidistant 10: 0.00344677 (% of radius)\n    test 510 Equidistant 15: 15.0326°S, 016.1429°W, 15.0326°N, 016.1429°E\n    test 511 Equidistant 15: 0.00356146 (% of radius)\n    test 512 Equidistant 20: 19.9682°S, 022.7468°W, 19.9682°N, 022.7468°E\n    test 513 Equidistant 20: 0.00370135 (% of radius)\n    test 514 Equidistant 25: 24.7603°S, 030.5908°W, 24.7603°N, 030.5908°E\n    test 515 Equidistant 25: 0.00383987 (% of radius)\n    test 516 Equidistant 30: 29.2359°S, 040.2625°W, 29.2359°N, 040.2625°E\n    test 517 Equidistant 30: 0.00393258 (% of radius)\n    test 518 Equidistant 35: 33.0487°S, 052.585°W, 33.0487°N, 052.585°E\n    test 519 Equidistant 35: 0.00390516 (% of radius)\n    test 520 Equidistant 40: 35.5123°S, 068.6794°W, 35.5123°N, 068.6794°E\n    test 521 Equidistant 40: 0.0036308 (% of radius)\n    test 522 Equidistant 45: 35.2644°S, 090.0019°W, 35.2644°N, 090.0019°E\n    test 523 Equidistant 45: 0.00288386 (% of radius)\n    test 524 Equidistant 50: 29.3392°S, 119.0221°W, 29.3392°N, 119.0221°E\n    test 525 Equidistant 50: 0.00271777 (% of radius)\n    test 526 Equidistant: center1 (LatLon(55°00′00.0″N, 055°00′00.0″W)), center2 (LatLon(55°00′00.0″S, 055°00′00.0″E)), radius1 (12231458.77080936) or radius2 (12231458.77080936): 'no convergence (222847)': tolerance (0.001) too low, antipodal or near-polar?  FAILED, KNOWN, expected 2-tuple\n    test 527 Equidistant: center1 (LatLon(60°00′00.0″N, 060°00′00.0″W)), center2 (LatLon(60°00′00.0″S, 060°00′00.0″E)), radius1 (13343409.568155663) or radius2 (13343409.568155663): 'no convergence (1.02385e+06)': tolerance (0.001) too low, antipodal or near-polar?  FAILED, KNOWN, expected 2-tuple\n    test 528 Equidistant: center1 (LatLon(65°00′00.0″N, 065°00′00.0″W)), center2 (LatLon(65°00′00.0″S, 065°00′00.0″E)), radius1 (14455360.36550197) or radius2 (14455360.36550197): 'no convergence (1.55077e+06)': tolerance (0.001) too low, antipodal or near-polar?  FAILED, KNOWN, expected 2-tuple\n    test 529 Equidistant: 27.303074°S, 000.114806°W Random +/- 45\n    test 530 Equidistant: 27.139544°S, 000.202037°W, 42.598888°N, 023.760304°E  d 20075.1 meter (iteration 4)\n    test 531 Equidistant: 27.152964°S, 000.217004°W, 38.368233°N, 040.200784°E  d 19471.6 meter (iteration 5)\n    test 532 Equidistant: 27.103977°S, 000.140881°W, 01.561457°S, 053.300099°E  d 22212 meter (iteration 4)\n    test 533 Equidistant: 27.314798°S, 000.194395°W, 33.373107°S, 004.567697°W  d 7984.27 meter (iteration 3)\n    test 534 Equidistant: 27.107474°S, 000.272735°W, 16.774122°S, 025.774574°W  d 26731.4 meter (iteration 4)\n    test 535 Equidistant: 27.214548°S, 000.064356°W, 06.812675°S, 045.761846°W  d 11008.3 meter (iteration 3)\n    test 536 Equidistant: 27.114482°S, 000.011698°E, 43.624395°N, 047.204386°W  d 24367.3 meter (iteration 5)\n    test 537 Equidistant: 27.107089°S, 000.180606°W, 60.270165°N, 038.576976°W  d 22673.9 meter (iteration 4)\n    test 538 Equidistant: 27.170795°S, 000.12015°E, 28.473408°S, 010.356715°E  d 27502.7 meter (iteration 4)\n    test 539 Equidistant: 27.101449°S, 000.006328°W, 35.659876°S, 024.132585°W  d 24792.1 meter (iteration 4)\n    test 540 Equidistant: 27.15192°S, 000.013233°E, 00.089591°N, 036.199528°W  d 21009.1 meter (iteration 5)\n    test 541 Equidistant: 27.139028°S, 000.007808°W, 27.821305°N, 056.008532°W  d 21041.9 meter (iteration 5)\n\n    testVincenty(pygeodesy.ellipsoidalVincenty, 25.05.26, datum='WGS84')\n    test 542 distanceTo: 866455.43292\n    test 543 toDatum: OSGB36\n    test 544 ValueError2: Ellipsoid 'Airy1830': incompatible with Ellipsoid 'WGS84'\n    test 545 isEllipsoidal: True\n    test 546 isSpherical: False\n    test 547 epsilon: 1e-12\n    test 548 iterations: 200\n    test 549 copy: True\n    test 550 isEllipsoidal: True\n    test 551 isSpherical: False\n    test 552 copy: 37°57′03.7203″S, 144°25′29.5244″E\n    test 553 epsilon: 2.220446049250e-16\n    test 554 iterations: 400\n    test 555 iteration: None\n\n    testKarneyVincenty(pygeodesy.ellipsoidalVincenty, 25.05.26, datum='WGS84')\n    test 556 coincident: 0.0\n    test 557 coincident: 0.0, 0.0, 0.0\n    test 558 destination: 37.6528°S, 143.9265°E\n    test 559 destination: True\n    test 560 destination2: 37.652821°S, 143.926496°E, 307.1736°NW\n    test 561 destination2: True\n    test 562 finalBearingOn: 307.1736°, 307°10′25.07″NW\n    test 563 distanceTo: 969954.166\n    test 564 distanceTo3: 969954.166314, 9.141877, 11.29722\n    test 565 distanceTo2: 972708.16174, 11.22502\n    test 566 initialBearingTo: 9.1419°, 9°08′30.76″N\n    test 567 destination: 58.64402°N, 003.07009°W\n    test 568 finalBearingTo: 11.2972°, 11°17′49.99″NNE\n    test 569 finalBearingOn: 11.2972°, 11°17′49.99″NNE\n    test 570 distanceTo: 404607.806\n    test 571 distanceTo3: 404607.805988, 156.11064, 157.8345\n    test 572 distanceTo2: 402574.597287, 157.726344\n    test 573 initialBearingTo: 156.1106°, 156°06′38.31″SSE\n    test 574 destination: 48.857°N, 002.351°E\n    test 575 finalBearingTo: 157.8345°, 157°50′04.2″SSE\n    test 576 finalBearingOn: 157.8345°, 157°50′04.2″SSE\n    test 577 distanceTo: 54973.295\n    test 578 distanceTo3: 54973.29527, 233.13008, 232.82461\n    test 579 distanceTo2: 54903.41209, 232.9209\n    test 580 initialBearingTo: 233.1301°, 233°07′48.28″SW\n    test 581 destination: 37.6528°N, 143.9265°E\n    test 582 finalBearingTo: 232.8246°, 232°49′28.59″SW\n    test 583 finalBearingOn: 232.8246°, 232°49′28.59″SW\n    test 584 distanceToMP: 298396.057\n    test 585 distanceToSM: 185.415\n    test 586 distanceToMP: 111319.491\n    test 587 distanceToMP: 110574.389  FAILED, KNOWN, expected 110574.361\n    test 588 distanceToKW: 222638.982\n    test 589 distanceToKW: 111319.491\n    test 590 distanceTo3: 54972.271\n    test 591 distanceTo3: 306°52′05.37″\n    test 592 distanceTo3: 307°10′25.07″\n    test 593 distanceTo2: 54902.390\n    test 594 distanceTo2: 307°04′38.41″\n\n    testKarneyVincentyError(pygeodesy.ellipsoidalVincenty, 25.05.26, datum='WGS84')\n    test 595 distanceTo/antipodal (182): 19936288.579\n    test 596 distanceTo/VincentyError (182): no convergence (0.00746541): epsilon (1e-12) and iterations (200), LatLon(00°00′00.0″N, 000°00′00.0″E) to LatLon(00°30′00.0″N, 179°42′00.0″E)  FAILED, KNOWN, expected no convergence: ...\n    test 597 initialBearingTo/VincentyError (182): no convergence (0.00746541): epsilon (1e-12) and iterations (200), LatLon(00°00′00.0″N, 000°00′00.0″E) to LatLon(00°30′00.0″N, 179°42′00.0″E)  FAILED, KNOWN, expected no convergence: ...\n    test 598 finalBearingTo/VincentyError (182): no convergence (0.00746541): epsilon (1e-12) and iterations (200), LatLon(00°00′00.0″N, 000°00′00.0″E) to LatLon(00°30′00.0″N, 179°42′00.0″E)  FAILED, KNOWN, expected no convergence: ...\n    test 599 distanceTo/equatorial (182): ambiguous: LatLon(00°00′00.0″N, 000°00′00.0″E) antipodal to LatLon(00°00′00.0″N, 180°00′00.0″E)  FAILED, KNOWN, expected ambiguous, ...\n    test 600 initialBearingTo/equatorial (182): ambiguous: LatLon(00°00′00.0″N, 000°00′00.0″E) antipodal to LatLon(00°00′00.0″N, 180°00′00.0″E)  FAILED, KNOWN, expected ambiguous, ...\n    test 601 distanceTo/coincident (5): 111319.491\n    test 602 distanceTo/meridional (1): 10001965.729\n    test 603 initialBearingTo/meridional (1): 180.0\n    test 604 distanceTo/coincident (1): 0.0\n    test 605 initialBearingTo/coincident (1): 0.0\n    test 606 finalBearingTo/coincident (1): 0.0\n    test 607 destination/coincident (1): 50.06632°N, 005.71475°W\n    test 608 distanceTo/anti-meridian (4): 10825924.1\n    test 609 distanceTo/quadrants (5): 4015703.02\n    test 610 distanceTo/quadrants (5): 4015703.02\n    test 611 distanceTo/quadrants (5): 4015703.02\n    test 612 distanceTo/quadrants (5): 4015703.02\n    test 613 distanceTo/quadrants (5): 4015703.02\n    test 614 distanceTo/quadrants (5): 4015703.02\n    test 615 distanceTo/quadrants (5): 4015703.02\n    test 616 distanceTo/quadrants (5): 4015703.02\n    test 617 distanceTo/quadrants (5): 4015703.02\n    test 618 distanceTo/quadrants (5): 4015703.02\n    test 619 distanceTo/quadrants (5): 4015703.02\n    test 620 distanceTo/quadrants (5): 4015703.02\n    test 621 distanceTo/quadrants (5): 4015703.02\n    test 622 distanceTo/quadrants (5): 4015703.02\n    test 623 distanceTo/quadrants (5): 4015703.02\n    test 624 distanceTo/quadrants (5): 4015703.02\n\n    testVincenty(pygeodesy.ellipsoidalVincenty, 25.05.26, datum='NAD83')\n    test 625 distanceTo: 866455.43292\n    test 626 toDatum: OSGB36\n    test 627 ValueError2: Ellipsoid 'Airy1830': incompatible with Ellipsoid 'GRS80'\n    test 628 isEllipsoidal: True\n    test 629 isSpherical: False\n    test 630 epsilon: 1e-12\n    test 631 iterations: 200\n    test 632 copy: True\n    test 633 isEllipsoidal: True\n    test 634 isSpherical: False\n    test 635 copy: 37°57′03.7203″S, 144°25′29.5244″E\n    test 636 epsilon: 2.220446049250e-16\n    test 637 iterations: 400\n    test 638 iteration: None\n\n    testKarneyVincenty(pygeodesy.ellipsoidalVincenty, 25.05.26, datum='NAD83')\n    test 639 coincident: 0.0\n    test 640 coincident: 0.0, 0.0, 0.0\n    test 641 destination: 37.6528°S, 143.9265°E\n    test 642 destination: True\n    test 643 destination2: 37.652821°S, 143.926496°E, 307.1736°NW\n    test 644 destination2: True\n    test 645 finalBearingOn: 307.1736°, 307°10′25.07″NW\n    test 646 distanceTo: 969954.166\n    test 647 distanceTo3: 969954.166314, 9.141877, 11.29722\n    test 648 distanceTo2: 972708.16174, 11.22502\n    test 649 initialBearingTo: 9.1419°, 9°08′30.76″N\n    test 650 destination: 58.64402°N, 003.07009°W\n    test 651 finalBearingTo: 11.2972°, 11°17′49.99″NNE\n    test 652 finalBearingOn: 11.2972°, 11°17′49.99″NNE\n    test 653 distanceTo: 404607.806\n    test 654 distanceTo3: 404607.805988, 156.11064, 157.8345\n    test 655 distanceTo2: 402574.597287, 157.726344\n    test 656 initialBearingTo: 156.1106°, 156°06′38.31″SSE\n    test 657 destination: 48.857°N, 002.351°E\n    test 658 finalBearingTo: 157.8345°, 157°50′04.2″SSE\n    test 659 finalBearingOn: 157.8345°, 157°50′04.2″SSE\n    test 660 distanceTo: 54973.295\n    test 661 distanceTo3: 54973.29527, 233.13008, 232.82461\n    test 662 distanceTo2: 54903.41209, 232.9209\n./test/testLatLon.py:276: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.ellipsoidalKarney.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', p.cosineAndoyerLambertTo(q), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:277: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.ellipsoidalKarney.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', q.cosineAndoyerLambertTo(p), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:279: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.ellipsoidalKarney.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', p.cosineForsytheAndoyerLambertTo(q), '124801.098' if Sph else '125205.965', fmt='%.3f')\n./test/testLatLon.py:280: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.ellipsoidalKarney.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', q.cosineForsytheAndoyerLambertTo(p), '124801.098' if Sph else '125205.965', fmt='%.3f')\n    test 663 initialBearingTo: 233.1301°, 233°07′48.28″SW\n    test 664 destination: 37.6528°N, 143.9265°E\n    test 665 finalBearingTo: 232.8246°, 232°49′28.59″SW\n    test 666 finalBearingOn: 232.8246°, 232°49′28.59″SW\n    test 667 distanceToMP: 298396.057\n    test 668 distanceToSM: 185.415\n    test 669 distanceToMP: 111319.491\n    test 670 distanceToMP: 110574.389  FAILED, KNOWN, expected 110574.361\n    test 671 distanceToKW: 222638.982\n    test 672 distanceToKW: 111319.491\n    test 673 distanceTo3: 54972.271\n    test 674 distanceTo3: 306°52′05.37″\n    test 675 distanceTo3: 307°10′25.07″\n    test 676 distanceTo2: 54902.390\n    test 677 distanceTo2: 307°04′38.41″\n\n    testKarneyVincentyError(pygeodesy.ellipsoidalVincenty, 25.05.26, datum='NAD83')\n    test 678 distanceTo/antipodal (182): 19936288.579\n    test 679 distanceTo/VincentyError (182): no convergence (0.00746541): epsilon (1e-12) and iterations (200), LatLon(00°00′00.0″N, 000°00′00.0″E) to LatLon(00°30′00.0″N, 179°42′00.0″E)  FAILED, KNOWN, expected no convergence: ...\n    test 680 initialBearingTo/VincentyError (182): no convergence (0.00746541): epsilon (1e-12) and iterations (200), LatLon(00°00′00.0″N, 000°00′00.0″E) to LatLon(00°30′00.0″N, 179°42′00.0″E)  FAILED, KNOWN, expected no convergence: ...\n    test 681 finalBearingTo/VincentyError (182): no convergence (0.00746541): epsilon (1e-12) and iterations (200), LatLon(00°00′00.0″N, 000°00′00.0″E) to LatLon(00°30′00.0″N, 179°42′00.0″E)  FAILED, KNOWN, expected no convergence: ...\n    test 682 distanceTo/equatorial (182): ambiguous: LatLon(00°00′00.0″N, 000°00′00.0″E) antipodal to LatLon(00°00′00.0″N, 180°00′00.0″E)  FAILED, KNOWN, expected ambiguous, ...\n    test 683 initialBearingTo/equatorial (182): ambiguous: LatLon(00°00′00.0″N, 000°00′00.0″E) antipodal to LatLon(00°00′00.0″N, 180°00′00.0″E)  FAILED, KNOWN, expected ambiguous, ...\n    test 684 distanceTo/coincident (5): 111319.491\n    test 685 distanceTo/meridional (1): 10001965.729\n    test 686 initialBearingTo/meridional (1): 180.0\n    test 687 distanceTo/coincident (1): 0.0\n    test 688 initialBearingTo/coincident (1): 0.0\n    test 689 finalBearingTo/coincident (1): 0.0\n    test 690 destination/coincident (1): 50.06632°N, 005.71475°W\n    test 691 distanceTo/anti-meridian (4): 10825924.1\n    test 692 distanceTo/quadrants (5): 4015703.02\n    test 693 distanceTo/quadrants (5): 4015703.02\n    test 694 distanceTo/quadrants (5): 4015703.02\n    test 695 distanceTo/quadrants (5): 4015703.02\n    test 696 distanceTo/quadrants (5): 4015703.02\n    test 697 distanceTo/quadrants (5): 4015703.02\n    test 698 distanceTo/quadrants (5): 4015703.02\n    test 699 distanceTo/quadrants (5): 4015703.02\n    test 700 distanceTo/quadrants (5): 4015703.02\n    test 701 distanceTo/quadrants (5): 4015703.02\n    test 702 distanceTo/quadrants (5): 4015703.02\n    test 703 distanceTo/quadrants (5): 4015703.02\n    test 704 distanceTo/quadrants (5): 4015703.02\n    test 705 distanceTo/quadrants (5): 4015703.02\n    test 706 distanceTo/quadrants (5): 4015703.02\n    test 707 distanceTo/quadrants (5): 4015703.02\n\n    testEllipsoidal(pygeodesy.ellipsoidalKarney, 25.05.27)\n    test 708 isEllipsoidal: True\n    test 709 isSpherical: False\n    test 710 isEllipsoidal: True\n    test 711 isSpherical: False\n    test 712 toDatum: 51.477284°N, 000.00002°E, -45.91m\n    test 713 toDatum: 51.4773°N, 000.0°E, -45.91m\n    test 714 toDatum: 51.4778°N, 000.0016°W\n    test 715 __matmul__: 51.477284°N, 000.00002°E, -45.91m\n    test 716 __matmul__: 51.477284°N, 000.00002°E, -45.90m\n    test 717 sat: 82.219069°N, 059.719736°E, -6353120.97m\n    test 718 dop: 51.998889°N, 004.373333°E, +134.64m\n    test 719 distance: 3802238.504988623  FAILED, KNOWN, expected 3802238.504989\n    test 720 neareston8: (LatLon(45°00′00.0″N, 001°00′00.0″E), 4874369.98942, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E), 0.0, 0.0)\n    test 721 iteration: 0\n    test 722 neareston8: (LatLon(45°30′03.93″N, 020°00′00.0″E), 39078.779519, 1.501069, 2, LatLon(45°00′00.0″N, 020°00′00.0″E), LatLon(46°00′00.0″N, 020°00′00.0″E), 270.356041, 269.999412)\n    test 723 iteration: 1\n    test 724 intersecant2: 2.789e-14% 60 LatLon(03°18′54.69″S, 023°52′08.48″E)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 725 intersecant2: 1.394e-14% 60 LatLon(22°22′23.65″S, 007°55′54.49″E)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 726 intersecant2: 1.673e-13% 57 LatLon(10°39′24.95″N, 034°45′48.18″W)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 727 intersecant2: 1.394e-13% 57 LatLon(25°11′09.14″S, 005°10′35.44″W)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 728 intersecant2: 1.394e-14% 61 LatLon(10°14′21.91″S, 021°00′17.05″E)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 729 intersecant2: 4.183e-14% 61 LatLon(20°55′17.31″S, 010°40′21.43″E)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 730 intersecant2: center (LatLon(05°00′00.0″N, 005°00′00.0″W)), circle (3339584), end (LatLon(15°00′00.0″N, 045°00′00.0″E)), exact (False), start (LatLon(45°00′00.0″S, 015°00′00.0″W)) or wrap (False): 'too distant (3.69e+06) plumb to (16°56′45.9″S, 020°17′02.98″E)'\n    test 731 intersecant2: 1.673e-13% 65 LatLon(15°42′12.97″N, 033°34′04.94″W)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 732 intersecant2: 1.255e-13% 65 LatLon(34°58′04.71″N, 001°19′53.38″W)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 733 intersecant2: center (LatLon(05°00′00.0″N, 005°00′00.0″W)), circle (3339584), end (7.325916376821471), exact (False), start (LatLon(34°58′04.71″N, 001°19′53.38″W)) or wrap (False): 'too distant (1.38e+07) plumb to (18°09′38.92″S, 129°14′23.79″W)'\n    test 734 intersecant2: 8.366e-14% 67 LatLon(22°02′23.21″N, 030°35′10.77″W)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 735 intersecant2: 9.761e-14% 67 LatLon(35°02′44.03″N, 002°09′34.44″W)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 736 intersecant2: center (LatLon(05°00′00.0″N, 005°00′00.0″W)), circle (3339584), end (5.6676265633977145), exact (False), start (LatLon(35°02′44.03″N, 002°09′34.44″W)) or wrap (False): 'too distant (1e+07) plumb to (76°25′03.35″N, 105°49′26.68″E)'\n    test 737 intersecant2: 5.577e-14% 52 LatLon(31°36′40.43″N, 020°03′59.04″W)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 738 intersecant2: 1.394e-13% 52 LatLon(19°52′34.59″S, 022°17′19.8″W)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 739 intersecant2: center (LatLon(05°00′00.0″N, 005°00′00.0″W)), circle (3339584), end (216.31679472482134), exact (False), start (LatLon(19°52′34.59″S, 022°17′19.8″W)) or wrap (False): 'too distant (6.38e+06) plumb to (45°26′19.21″S, 025°56′43.95″E)'\n\n    testLatLon(pygeodesy.ellipsoidalKarney, 25.05.27)\n    test 740 isEllipsoidal: True\n    test 741 isSpherical: False\n    test 742 lat/lonDMS: 52.20472°N, 000.14056°E\n    test 743 lat/lonDMS F_DM: 52°12.283′N, 000°08.434′E\n    test 744 lat/lonDMS F_DM: 52°12.2832′N, 000°08.4336′E\n    test 745 lat/lonDMS F_DMS: 52°12′17″N, 000°08′26″E\n    test 746 lat/lonDMS F_DMS: 52°12′17.0″N, 000°08′26.0″E\n    test 747 lat/lonDMS F_RAD: 0.911144N, 0.002453E\n    test 748 isequalTo: True\n    test 749 isequalTo: True\n    test 750 latlon2: 52.20472, 0.14056\n    test 751 latlon2: 52.2047, 0.1406\n    test 752 latlon2: 52.205, 0.141\n    test 753 latlon2: 52.2, 0.14\n    test 754 latlon2: 52.2, 0.1\n    test 755 latlon2: 52.0, 0.0\n    test 756 chordTo: 12029263.15\n    test 757 chordTo: 12029049.69\n    test 758 initialBearingTo: 156.1106\n    test 759 initialBearingTo: 65.9335\n    test 760 initialBearingTo: 0.0\n    test 761 initialBearingTo: 180.0\n    test 762 finalBearingTo: 157.8345\n    test 763 finalBearingTo: 93.9034\n    test 764 bearingTo2: 156.1106, 157.8345\n    test 765 ispolar: True\n    test 766 copy: True\n    test 767 __eq__: True\n    test 768 __ne__: False\n    test 769 equirectangularTo: 404329.56\n    test 770 distanceTo: 404607.805988\n    test 771 distanceTo: 404607.805988\n    test 772 distanceTo: 3981601\n    test 773 antipodal: False\n    test 774 distanceTo dateline: 19959679.267\n    test 775 distanceTo unrolled: 19959679.267\n    test 776 antipodal: False\n    test 777 distanceTo dateline: 9513998\n    test 778 distanceTo unrolled: 9513998\n    test 779 distanceTo: 18012714.66\n    test 780 distanceTo: 20003931.46\n    test 781 distanceTo3 dateline: 19959679.2674, 161.0677, 18.8252\n    test 782 distanceTo3 dateline: 9513997.9901, 42.9164, 138.8903\n    test 783 distanceTo3 dateline: 19959679.2674, 161.0677, 18.8252\n    test 784 distanceTo3 dateline: 9513997.9901, 42.9164, 138.8903\n    test 785 intermediateTo: 51.372275°N, 000.707253°E\n    test 786 intermediateTo: True\n    test 787 intermediateTo: 404607.806\n    test 788 intermediateTo+5: 35.139582°N, 008.994368°E\n    test 789 intermediateTo+5: 5.000\n    test 790 intermediateTo-4: 64.894124°N, 013.705689°W\n    test 791 intermediateTo-4: 4.000\n    test 792 intermediateTo-h: 125.000\n    test 793 midpointTo: 50.536583°N, 001.274507°E\n    test 794 destination: 51.513526°N, 000.098038°W\n    test 795 destination: 51°30′49″N, 000°05′53″W\n    test 796 destination: 33°57′N, 118°24′W\n    test 797 destination: 33.950367°N, 118.399012°W\n    test 798 destination: 0.592546N, 2.066453W\n    test 799 destination: 32.11195529°N, 064.56074722°E  FAILED, KNOWN, expected 32.11195529°N, 063.95925278°E\n    test 800 neareston6: (LatLon(45°00′00.0″N, 001°00′00.0″E), 4755443.4294, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E))\n    test 801 neareston6: (LatLon(45°30′03.94″N, 002°00′00.0″E), 39078.729285, 1.501072, 2, LatLon(45°00′00.0″N, 002°00′00.0″E), LatLon(46°00′00.0″N, 002°00′00.0″E))\n    test 802 chordTo: 125203.963\n    test 803 cosineAndoyerLambertTo: 125205.962\n    test 804 cosineAndoyerLambertTo: 125205.962\n    test 805 cosineForsyheAndoyerLambertTo: 125205.965\n    test 806 cosineForsyheAndoyerLambertTo: 125205.965\n    test 807 cosineLawTo: 124801.098\n    test 808 cosineLawTo: 124801.098\n    test 809 equirectangularTo: 124804.754\n    test 810 equirectangularTo: 124804.754\n    test 811 euclideanTo: 130015.089\n    test 812 euclideanTo: 130015.089\n    test 813 flatLocalTo: 125209.633\n    test 814 flatLocalTo: 125209.633\n    test 815 flatPolarTo: 133663.257\n    test 816 flatPolarTo: 133663.257\n    test 817 hartzell: 53.3206°N, 001.7297°W\n# lazily imported pygeodesy.Triaxial from .triaxials.triaxial5 by ellipsoids.py line 1905\n    test 818 hartzell: 53.349541°N, 001.7297°W\n    test 819 height4: 0.0\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by cartesianBase.py line 364\n    test 820 height4: (3820333.9, -115367.0, 5097204.4, -6584.9)\n    test 821 height4: 53°19′14.2″N, 001°43′46.9″W\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by cartesianBase.py line 364\n    test 822 height4: 53°19′14.2″N, 001°43′46.9″W\n    test 823 haversineTo: 124801.098\n    test 824 haversineTo: 124801.098\n    test 825 hubenyTo: <bound method LatLonBase.flatLocalTo of LatLon(53°19′14.16″N, 001°43′46.92″W)>\n    test 826 hubenyTo: <bound method LatLonBase.flatLocalTo of LatLon(53°11′19.32″N, 000°08′00.24″E)>\n    test 827 thomasTo: 125206.188\n    test 828 thomasTo: 125206.188\n    test 829 vincentysTo: 124801.098\n    test 830 vincentysTo: 124801.098\n    test 831 isclockwise: False\n    test 832 isclockwise*: False\n    test 833 isclockwise: True\n    test 834 isclockwise*: True\n    test 835 isclockwise: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 836 isclockwise*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 837 isclockwise: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 838 isclockwise*: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 839 isconvex: False\n    test 840 isconvex*: False\n    test 841 isconvex: True\n    test 842 isconvex*: True\n    test 843 isconvex: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 844 isconvex*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 845 isenclosedBy1: True\n    test 846 isenclosedBy1*: True\n    test 847 isenclosedBy2: False\n    test 848 isenclosedBy2*: False\n    test 849 isenclosedBy3: False\n    test 850 isenclosedBy3*: False\n    test 851 isenclosedBy4: False\n    test 852 isenclosedBy4*: False\n    test 853 isenclosedBy5: False\n    test 854 isenclosedBy5*: False\n    test 855 isenclosedBy6: True\n    test 856 isenclosedBy6*: True\n    test 857 isenclosedBy7: True\n    test 858 isenclosedBy7*: True\n    test 859 isenclosedBy-CCW: True\n    test 860 isenclosedBy-CW : True\n    test 861 isenclosedBy-CCW: True\n    test 862 initialBearingTo: 102.392291\n    test 863 compassAngleTo: 100.017\n    test 864 compassAngleTo: 105.599\n    test 865 initialBearingTo: 288.676039\n    test 866 compassAngleTo: 280.017\n    test 867 compassAngleTo: 285.599\n    test 868 equirectangularTo: 592.185\n    test 869 distanceTo: 593.571\n    test 870 bearingTo: 0.0\n    test 871 compassAngleTo: 0.0\n    test 872 bearingTo: 45.2  FAILED, KNOWN, expected 45.0\n    test 873 compassAngleTo: 45.0\n    test 874 bearingTo: 90.0\n    test 875 compassAngleTo: 90.0\n    test 876 bearingTo: 180.0\n    test 877 compassAngleTo: 180.0\n    test 878 bearingTo: 225.2  FAILED, KNOWN, expected 225.0\n    test 879 compassAngleTo: 225.0\n    test 880 bearingTo: 314.8  FAILED, KNOWN, expected 315.0\n    test 881 compassAngleTo: 315.0\n    test 882 bearingTo: 270.0\n    test 883 compassAngleTo: 270.0\n    test 884 bearingTo: 0.0  FAILED, KNOWN, expected 359.4\n    test 885 compassAngleTo: 359.4\n    test 886 latlon2: (53.0, 1.0)\n    test 887 philam2: (0.93, 0.02)\n    test 888 bearingTo: 31\n    test 889 compassAngleTo: 31\n    test 890 compassAngleTo: 45\n\n    test 891 boundsOf: <class 'pygeodesy.namedTuples.Bounds2Tuple'>\n    test 892 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 893 latlon2: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 894 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 895 isequalTo: <class 'bool'>\n    test 896 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 897 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 898 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 899 xyz3: <class 'tuple'>\n    test 900 xyzh: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 901 compassAngleTo: <class 'float'>\n    test 902 cosineLawTo: <class 'float'>\n    test 903 euclideanTo: <class 'float'>\n    test 904 flatLocalTo: <class 'float'>\n    test 905 flatPolarTo: <class 'float'>\n    test 906 haversineTo: <class 'float'>\n    test 907 hubenyTo: <class 'float'>\n    test 908 vincentysTo: <class 'float'>\n    test 909 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 910 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 911 toLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 912 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 913 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 914 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 915 toNvector: (0.615661, 0.0, 0.788011, 0)\n    test 916 toVector: (3934960.466675, 0.0, 5002803.345483)\n    test 917 toVector3d: (0.61823, 0.0, 0.786)\n\n    test 918 trilaterate5 (pygeodesy.ellipsoidalKarney) .min: 305.091\n    test 919 trilaterate5 (pygeodesy.ellipsoidalKarney) .point: 42.66933643°N, 002.48620262°E\n    test 920 trilaterate5 (pygeodesy.ellipsoidalKarney) .max: 1592.545\n    test 921 trilaterate5 (pygeodesy.ellipsoidalKarney) .point: 42.65141232°N, 002.46816989°E\n./pygeodesy/ellipsoidalKarney.py:347: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return _polygon(datum.ellipsoid.geodesic, points, closed, True, wrap, False)\n./pygeodesy/ellipsoidalKarney.py:266: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  a = _polygon(datum.ellipsoid.geodesic, points, True, False, wrap, polar)\n./test/testLatLon.py:276: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.ellipsoidalExact.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', p.cosineAndoyerLambertTo(q), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:277: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.ellipsoidalExact.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', q.cosineAndoyerLambertTo(p), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:279: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.ellipsoidalExact.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', p.cosineForsytheAndoyerLambertTo(q), '124801.098' if Sph else '125205.965', fmt='%.3f')\n./test/testLatLon.py:280: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.ellipsoidalExact.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', q.cosineForsytheAndoyerLambertTo(p), '124801.098' if Sph else '125205.965', fmt='%.3f')\n    test 922 trilaterate5 (pygeodesy.ellipsoidalKarney) .n: 3\n    test 923 trilaterate5 (pygeodesy.ellipsoidalKarney) .min: 127.229\n    test 924 trilaterate5 (pygeodesy.ellipsoidalKarney) .max: 152.612\n    test 925 trilaterate5 (pygeodesy.ellipsoidalKarney) .point: 42.67815375°N, 002.49950041°E\n    test 926 trilaterate5 (pygeodesy.ellipsoidalKarney) .n: 2\n    test 927 trilaterate5 (pygeodesy.ellipsoidalKarney) .min: 2400.293\n    test 928 trilaterate5 (pygeodesy.ellipsoidalKarney) .max: 2400.293\n    test 929 trilaterate5 (pygeodesy.ellipsoidalKarney) .point: 42.66128984°N, 002.47973818°E\n    test 930 trilaterate5 (pygeodesy.ellipsoidalKarney) .min- is .maxPoint: True\n    test 931 trilaterate5 (pygeodesy.ellipsoidalKarney) .n: 1\n    test 932 trilaterate5 (pygeodesy.ellipsoidalKarney) .min: 1343.743\n    test 933 trilaterate5 (pygeodesy.ellipsoidalKarney) .point: 42.69131964°N, 002.50112167°E\n    test 934 trilaterate5 (pygeodesy.ellipsoidalKarney) .max: 1445.554\n    test 935 trilaterate5 (pygeodesy.ellipsoidalKarney) .point: 42.67815375°N, 002.49950041°E\n    test 936 trilaterate5 (pygeodesy.ellipsoidalKarney) .n: 2\n    test 937 radii11: Radii11Tuple(rA=7244.792747, rB=1828.106695, rC=2.25502, cR=57792.067128, rIn=57.366968, riS=2.087668, roS=2.443334, a=1830.361715, b=7247.047766, c=9072.899442, s=9075.154461)\n\n    27 tests skipped (130): numpy in PYGEODESY_XPACKAGES=numpy,scipy: required by vector2d._numpy\n\n    test 938 radii11: Radii11Tuple(rA=7244.792747, rB=1828.106695, rC=2.25502, cR=57792.067128, rIn=57.366968, riS=2.087668, roS=2.443334, a=1830.361715, b=7247.047766, c=9072.899442, s=9075.154461)\n\n    22 tests skipped (152): numpy in PYGEODESY_XPACKAGES=numpy,scipy: required by vector2d._numpy\n\n    test 939 area cw/ccw: 1.0\n\n    testNOAA(pygeodesy.ellipsoidalKarney, 25.05.27)\n    test 940 NOAAexample1: 191872.1190, 249 03 16.4237, 67 59 11.1619\n    test 941 NOAAexample2: 182009.1679, 254 42 44.6439, 73 09 21.3315\n    test 942 NOAAexample3: 123456.7891, 245 00 34.7001, 64 20 24.6864\n    test 943 NOAAexample4: 145239.0603, 114 29 26.9586, 295 21 32.6566\n\n    testIntersection3(pygeodesy.ellipsoidalKarney, 25.05.27)\n    test 944 (30, 17): (LatLon(30°52′03.1″N, 015°30′38.41″E), 0, 0)\n    test 945 (30, 17): (LatLon(30°52′03.1″N, 015°30′38.41″E), -1, 0)\n    test 946 (-1,  3): (LatLon(01°34′52.49″N, 006°00′51.83″E), -1, -2)\n    test 947 (-1,  3): (LatLon(01°34′52.49″N, 006°00′51.83″E), -1, 2)\n    test 948 (65, 32): (LatLon(56°58′26.51″N, 032°00′00.0″E), 1, 0)\n    test 949 (65, 32): (LatLon(56°58′26.51″N, 032°00′00.0″E), 1, 2)\n    test 950 (-2, 17): <class 'pygeodesy.errors.IntersectionError'>\n    test 951 (49, 25): (LatLon(49°00′00.0″N, 025°00′00.0″E), 1, -2)  FAILED, KNOWN, expected (LatLon(49°00′00.0″N, 025°00′00.0″E), 0, 0)\n    test 952 #58: (LatLon(01°54′25.65″S, 005°37′48.76″E), 1, -2)\n    test 953 #58: <class 'pygeodesy.errors.IntersectionError'>\n\n    testIntersections2(pygeodesy.ellipsoidalKarney, 25.05.27)\n    test 954 EquidistantKarney: 36.9879°N, 088.1564°W, 38.2441°N, 092.3835°W\n    test 955 EquidistantKarney: 36.9879°N, 088.1564°W, 38.2441°N, 092.3835°W\n    test 956 EquidistantKarney: 00.0°N, 035.3478°W, 00.0°S, 035.3478°E\n    test 957 EquidistantKarney: 1.63715 (% of radius)\n    test 958 EquidistantKarney: 22.657°N, 000.0°E, 22.657°S, 000.0°E\n    test 959 EquidistantKarney: 1.30663 (% of radius)\n    test 960 EquidistantKarney: 29.4898°N, 040.1785°W, 29.4898°S, 040.1785°E\n    test 961 EquidistantKarney: 1.31396 (% of radius)\n    test 962 EquidistantKarney: 02.7402°S, 044.885°E, 02.7402°N, 044.885°E\n    test 963 EquidistantKarney: 1.83268 (% of radius)\n    test 964 EquidistantKarney 5: 05.0558°S, 005.0271°W, 05.0558°N, 005.0271°E\n    test 965 EquidistantKarney 5: 4.18779e-16 (% of radius)\n    test 966 EquidistantKarney 10: 10.1081°S, 010.2901°W, 10.1081°N, 010.2901°E\n    test 967 EquidistantKarney 10: 6.28168e-16 (% of radius)\n    test 968 EquidistantKarney 15: 15.1433°S, 016.0531°W, 15.1433°N, 016.0531°E\n    test 969 EquidistantKarney 15: 0 (% of radius)\n    test 970 EquidistantKarney 20: 20.1241°S, 022.6411°W, 20.1241°N, 022.6411°E\n    test 971 EquidistantKarney 20: 4.18779e-16 (% of radius)\n    test 972 EquidistantKarney 25: 24.9655°S, 030.4846°W, 24.9655°N, 030.4846°E\n    test 973 EquidistantKarney 25: 1.67511e-16 (% of radius)\n    test 974 EquidistantKarney 30: 29.4898°S, 040.1785°W, 29.4898°N, 040.1785°E\n    test 975 EquidistantKarney 30: 6.97964e-16 (% of radius)\n    test 976 EquidistantKarney 35: 33.3405°S, 052.5516°W, 33.3405°N, 052.5516°E\n    test 977 EquidistantKarney 35: 2.39302e-16 (% of radius)\n    test 978 EquidistantKarney 40: 35.8146°S, 068.7149°W, 35.8146°N, 068.7149°E\n    test 979 EquidistantKarney 40: 0 (% of radius)\n    test 980 EquidistantKarney 45: 35.5368°S, 090.0616°W, 35.5368°N, 090.0616°E\n    test 981 EquidistantKarney 45: 1.86124e-16 (% of radius)\n    test 982 EquidistantKarney 50: 29.5972°S, 118.8695°W, 29.5972°N, 118.8695°E\n    test 983 EquidistantKarney 50: 1.67511e-16 (% of radius)\n    test 984 EquidistantKarney: center1 (LatLon(55°00′00.0″N, 055°00′00.0″W)), center2 (LatLon(55°00′00.0″S, 055°00′00.0″E)), radius1 (12231458.77080936) or radius2 (12231458.77080936): 'no convergence (188568)': tolerance (0.001) too low, antipodal or near-polar?  FAILED, KNOWN, expected 2-tuple\n    test 985 EquidistantKarney: center1 (LatLon(60°00′00.0″N, 060°00′00.0″W)), center2 (LatLon(60°00′00.0″S, 060°00′00.0″E)), radius1 (13343409.568155663) or radius2 (13343409.568155663): 'no convergence (1.01348e+06)': tolerance (0.001) too low, antipodal or near-polar?  FAILED, KNOWN, expected 2-tuple\n    test 986 EquidistantKarney: center1 (LatLon(65°00′00.0″N, 065°00′00.0″W)), center2 (LatLon(65°00′00.0″S, 065°00′00.0″E)), radius1 (14455360.36550197) or radius2 (14455360.36550197): 'no convergence (1.55092e+06)': tolerance (0.001) too low, antipodal or near-polar?  FAILED, KNOWN, expected 2-tuple\n    test 987 EquidistantKarney: 12.232165°N, 031.983261°W Random +/- 45\n    test 988 EquidistantKarney: 12.232165°N, 031.983261°W, 56.080071°S, 005.618708°W  d 2.99971e-09 meter (iteration 3)\n    test 989 EquidistantKarney: 12.232165°N, 031.983261°W, 36.579515°S, 038.359212°W  d 5.76417e-09 meter (iteration 3)\n    test 990 EquidistantKarney: 12.232165°N, 031.983261°W, 16.534506°N, 102.732034°E  d 3.54767e-09 meter (iteration 3)\n    test 991 EquidistantKarney: 12.232165°N, 031.983261°W, 31.506008°N, 011.105658°W  d 6.52443e-09 meter (iteration 3)\n    test 992 EquidistantKarney: 12.232165°N, 031.983261°W, 26.240759°S, 054.382759°E  d 5.68465e-09 meter (iteration 3)\n    test 993 EquidistantKarney: 12.232165°N, 031.983261°W, 08.328754°N, 002.632252°W  d 1.1597e-09 meter (iteration 3)\n    test 994 EquidistantKarney: 12.232165°N, 031.983261°W, 22.106883°S, 005.991654°E  d 2.50053e-09 meter (iteration 3)\n    test 995 EquidistantKarney: 12.232165°N, 031.983261°W, 77.026292°S, 014.052022°E  d 1.311e-09 meter (iteration 3)\n    test 996 EquidistantKarney: 12.232165°N, 031.983261°W, 45.749992°N, 039.149829°W  d 1.23505e-09 meter (iteration 3)\n    test 997 EquidistantKarney: 12.232165°N, 031.983261°W, 43.385162°N, 030.379864°E  d 2.17633e-08 meter (iteration 3)\n    test 998 EquidistantKarney: 12.232165°N, 031.983261°W, 06.605562°N, 022.562672°W  d 3.74803e-09 meter (iteration 3)\n    test 999 EquidistantKarney: 12.232165°N, 031.983261°W, 29.406424°N, 010.679991°W  d 5.85263e-09 meter (iteration 3)\n\n    testKarney(pygeodesy.ellipsoidalKarney, 25.05.27, datum='WGS84')\n    test 1000 distanceTo: 866455.4329\n    test 1001 coincident: 0.0\n    test 1002 toDatum: OSGB36\n    test 1003 ValueError2: Ellipsoid 'Airy1830': incompatible with Ellipsoid 'WGS84'\n    test 1004 isEllipsoidal: True\n    test 1005 copy: True\n    test 1006 isEllipsoidal: True\n    test 1007 isSpherical: False\n    test 1008 copy: 37°57′03.7203″S, 144°25′29.5244″E\n\n    testKarneyVincenty(pygeodesy.ellipsoidalKarney, 25.05.27, datum='WGS84')\n    test 1009 coincident: 0.0\n    test 1010 coincident: 0.0, 0.0, 0.0\n    test 1011 destination: 37.6528°S, 143.9265°E\n    test 1012 destination: True\n    test 1013 destination2: 37.652821°S, 143.926496°E, 307.1736°NW\n    test 1014 destination2: True\n    test 1015 finalBearingOn: 307.1736°, 307°10′25.07″NW\n    test 1016 distanceTo: 969954.166\n    test 1017 distanceTo3: 969954.166314, 9.141877, 11.29722\n    test 1018 distanceTo2: 972708.16174, 11.22502\n    test 1019 initialBearingTo: 9.1419°, 9°08′30.76″N\n    test 1020 destination: 58.64402°N, 003.07009°W\n    test 1021 finalBearingTo: 11.2972°, 11°17′49.99″NNE\n    test 1022 finalBearingOn: 11.2972°, 11°17′49.99″NNE\n    test 1023 distanceTo: 404607.806\n    test 1024 distanceTo3: 404607.805988, 156.11064, 157.8345\n    test 1025 distanceTo2: 402574.597287, 157.726344\n    test 1026 initialBearingTo: 156.1106°, 156°06′38.31″SSE\n    test 1027 destination: 48.857°N, 002.351°E\n    test 1028 finalBearingTo: 157.8345°, 157°50′04.2″SSE\n    test 1029 finalBearingOn: 157.8345°, 157°50′04.2″SSE\n    test 1030 distanceTo: 54973.295\n    test 1031 distanceTo3: 54973.29527, 233.13008, 232.82461\n    test 1032 distanceTo2: 54903.41209, 232.9209\n    test 1033 initialBearingTo: 233.1301°, 233°07′48.28″SW\n    test 1034 destination: 37.6528°N, 143.9265°E\n    test 1035 finalBearingTo: 232.8246°, 232°49′28.59″SW\n    test 1036 finalBearingOn: 232.8246°, 232°49′28.59″SW\n    test 1037 distanceToMP: 298396.057\n    test 1038 distanceToSM: 185.415\n    test 1039 distanceToMP: 111319.491\n    test 1040 distanceToMP: 110574.389  FAILED, KNOWN, expected 110574.361\n    test 1041 distanceToKW: 222638.982\n    test 1042 distanceToKW: 111319.491\n    test 1043 distanceTo3: 54972.271\n    test 1044 distanceTo3: 306°52′05.37″\n    test 1045 distanceTo3: 307°10′25.07″\n    test 1046 distanceTo2: 54902.390\n    test 1047 distanceTo2: 307°04′38.41″\n\n    testKarneyVincentyError(pygeodesy.ellipsoidalKarney, 25.05.27, datum='WGS84')\n    test 1048 distanceTo/antipodal (None): 19936288.579\n    test 1049 distanceTo/VincentyError (None): 19944127.421\n    test 1050 initialBearingTo/VincentyError (None): 15.556883\n    test 1051 finalBearingTo/VincentyError (None): 164.442514\n    test 1052 distanceTo/equatorial (None): 20003931.46\n    test 1053 initialBearingTo/equatorial (None): 0.0\n    test 1054 distanceTo/coincident (None): 111319.491\n    test 1055 distanceTo/meridional (None): 10001965.729\n    test 1056 initialBearingTo/meridional (None): 180.0\n    test 1057 distanceTo/coincident (None): 0.0\n    test 1058 initialBearingTo/coincident (None): 180.0\n    test 1059 finalBearingTo/coincident (None): 180.0\n    test 1060 destination/coincident (None): 50.06632°N, 005.71475°W\n    test 1061 distanceTo/anti-meridian (None): 10825924.1\n    test 1062 distanceTo/quadrants (None): 4015703.02\n    test 1063 distanceTo/quadrants (None): 4015703.02\n    test 1064 distanceTo/quadrants (None): 4015703.02\n    test 1065 distanceTo/quadrants (None): 4015703.02\n    test 1066 distanceTo/quadrants (None): 4015703.02\n    test 1067 distanceTo/quadrants (None): 4015703.02\n    test 1068 distanceTo/quadrants (None): 4015703.02\n    test 1069 distanceTo/quadrants (None): 4015703.02\n    test 1070 distanceTo/quadrants (None): 4015703.02\n    test 1071 distanceTo/quadrants (None): 4015703.02\n    test 1072 distanceTo/quadrants (None): 4015703.02\n    test 1073 distanceTo/quadrants (None): 4015703.02\n    test 1074 distanceTo/quadrants (None): 4015703.02\n    test 1075 distanceTo/quadrants (None): 4015703.02\n    test 1076 distanceTo/quadrants (None): 4015703.02\n    test 1077 distanceTo/quadrants (None): 4015703.02\n\n    testKarney(pygeodesy.ellipsoidalKarney, 25.05.27, datum='NAD83')\n    test 1078 distanceTo: 866455.4329\n    test 1079 coincident: 0.0\n    test 1080 toDatum: OSGB36\n    test 1081 ValueError2: Ellipsoid 'Airy1830': incompatible with Ellipsoid 'GRS80'\n    test 1082 isEllipsoidal: True\n    test 1083 copy: True\n    test 1084 isEllipsoidal: True\n    test 1085 isSpherical: False\n    test 1086 copy: 37°57′03.7203″S, 144°25′29.5244″E\n\n    testKarneyVincenty(pygeodesy.ellipsoidalKarney, 25.05.27, datum='NAD83')\n    test 1087 coincident: 0.0\n    test 1088 coincident: 0.0, 0.0, 0.0\n    test 1089 destination: 37.6528°S, 143.9265°E\n    test 1090 destination: True\n    test 1091 destination2: 37.652821°S, 143.926496°E, 307.1736°NW\n    test 1092 destination2: True\n    test 1093 finalBearingOn: 307.1736°, 307°10′25.07″NW\n    test 1094 distanceTo: 969954.166\n    test 1095 distanceTo3: 969954.166314, 9.141877, 11.29722\n    test 1096 distanceTo2: 972708.16174, 11.22502\n    test 1097 initialBearingTo: 9.1419°, 9°08′30.76″N\n    test 1098 destination: 58.64402°N, 003.07009°W\n    test 1099 finalBearingTo: 11.2972°, 11°17′49.99″NNE\n    test 1100 finalBearingOn: 11.2972°, 11°17′49.99″NNE\n    test 1101 distanceTo: 404607.806\n    test 1102 distanceTo3: 404607.805988, 156.11064, 157.8345\n    test 1103 distanceTo2: 402574.597287, 157.726344\n    test 1104 initialBearingTo: 156.1106°, 156°06′38.31″SSE\n    test 1105 destination: 48.857°N, 002.351°E\n    test 1106 finalBearingTo: 157.8345°, 157°50′04.2″SSE\n    test 1107 finalBearingOn: 157.8345°, 157°50′04.2″SSE\n    test 1108 distanceTo: 54973.295\n    test 1109 distanceTo3: 54973.29527, 233.13008, 232.82461\n    test 1110 distanceTo2: 54903.41209, 232.9209\n    test 1111 initialBearingTo: 233.1301°, 233°07′48.28″SW\n    test 1112 destination: 37.6528°N, 143.9265°E\n    test 1113 finalBearingTo: 232.8246°, 232°49′28.59″SW\n    test 1114 finalBearingOn: 232.8246°, 232°49′28.59″SW\n    test 1115 distanceToMP: 298396.057\n    test 1116 distanceToSM: 185.415\n    test 1117 distanceToMP: 111319.491\n    test 1118 distanceToMP: 110574.389  FAILED, KNOWN, expected 110574.361\n    test 1119 distanceToKW: 222638.982\n    test 1120 distanceToKW: 111319.491\n    test 1121 distanceTo3: 54972.271\n    test 1122 distanceTo3: 306°52′05.37″\n    test 1123 distanceTo3: 307°10′25.07″\n    test 1124 distanceTo2: 54902.390\n    test 1125 distanceTo2: 307°04′38.41″\n\n    testKarneyVincentyError(pygeodesy.ellipsoidalKarney, 25.05.27, datum='NAD83')\n    test 1126 distanceTo/antipodal (None): 19936288.579\n    test 1127 distanceTo/VincentyError (None): 19944127.421\n    test 1128 initialBearingTo/VincentyError (None): 15.556883\n    test 1129 finalBearingTo/VincentyError (None): 164.442514\n    test 1130 distanceTo/equatorial (None): 20003931.46\n    test 1131 initialBearingTo/equatorial (None): 0.0\n    test 1132 distanceTo/coincident (None): 111319.491\n    test 1133 distanceTo/meridional (None): 10001965.729\n    test 1134 initialBearingTo/meridional (None): 180.0\n    test 1135 distanceTo/coincident (None): 0.0\n    test 1136 initialBearingTo/coincident (None): 180.0\n    test 1137 finalBearingTo/coincident (None): 180.0\n    test 1138 destination/coincident (None): 50.06632°N, 005.71475°W\n    test 1139 distanceTo/anti-meridian (None): 10825924.1\n    test 1140 distanceTo/quadrants (None): 4015703.02\n    test 1141 distanceTo/quadrants (None): 4015703.02\n    test 1142 distanceTo/quadrants (None): 4015703.02\n    test 1143 distanceTo/quadrants (None): 4015703.02\n    test 1144 distanceTo/quadrants (None): 4015703.02\n    test 1145 distanceTo/quadrants (None): 4015703.02\n    test 1146 distanceTo/quadrants (None): 4015703.02\n    test 1147 distanceTo/quadrants (None): 4015703.02\n    test 1148 distanceTo/quadrants (None): 4015703.02\n    test 1149 distanceTo/quadrants (None): 4015703.02\n    test 1150 distanceTo/quadrants (None): 4015703.02\n    test 1151 distanceTo/quadrants (None): 4015703.02\n    test 1152 distanceTo/quadrants (None): 4015703.02\n    test 1153 distanceTo/quadrants (None): 4015703.02\n    test 1154 distanceTo/quadrants (None): 4015703.02\n    test 1155 distanceTo/quadrants (None): 4015703.02\n\n    testKarney_s(pygeodesy.ellipsoidalKarney, 25.05.27)\n    test 1156 .lat1: -41.320\n    test 1157 .lon1: 174.810\n    test 1158 .azi1: 161.067669986160\n    test 1159 .lat2: 40.960\n    test 1160 .lon2: -5.500\n    test 1161 .azi2: 18.825195123247\n    test 1162 .s12: 19959679.267353821546\n    test 1163 distanceTo3: 19959679.267354, 161.067670, 18.825195\n    test 1164 destination2: 40.96, -5.5, 18.825195123247\n    test 1165 areaOf: 1.366270368e+13\n    test 1166 perimeterOf: 1.683106789e+07\n    test 1167 isclockwise: False\n    test 1168 isclockwise: True\n    test 1169 areaCO: 2.69154549884e+11\n    test 1170 isclockwise: True\n    test 1171 perimeterCO: 2099854.381923\n\n    testEllipsoidal(pygeodesy.ellipsoidalExact, 25.08.28)\n    test 1172 isEllipsoidal: True\n    test 1173 isSpherical: False\n    test 1174 isEllipsoidal: True\n    test 1175 isSpherical: False\n    test 1176 toDatum: 51.477284°N, 000.00002°E, -45.91m\n    test 1177 toDatum: 51.4773°N, 000.0°E, -45.91m\n    test 1178 toDatum: 51.4778°N, 000.0016°W\n    test 1179 __matmul__: 51.477284°N, 000.00002°E, -45.91m\n    test 1180 __matmul__: 51.477284°N, 000.00002°E, -45.90m\n    test 1181 sat: 82.219069°N, 059.719736°E, -6353120.97m\n    test 1182 dop: 51.998889°N, 004.373333°E, +134.64m\n    test 1183 distance: 3802238.504988622  FAILED, KNOWN, expected 3802238.504989\n    test 1184 neareston8: (LatLon(45°00′00.0″N, 001°00′00.0″E), 4874369.98942, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E), 0.0, 0.0)\n    test 1185 iteration: 0\n    test 1186 neareston8: (LatLon(45°30′03.93″N, 020°00′00.0″E), 39078.779519, 1.501069, 2, LatLon(45°00′00.0″N, 020°00′00.0″E), LatLon(46°00′00.0″N, 020°00′00.0″E), 270.356041, 269.999412)\n    test 1187 iteration: 1\n    test 1188 nearestOn: 54.928536°N, 021.934843°W\n    test 1189 intersecant2: 2.789e-14% 60 LatLon(03°18′54.69″S, 023°52′08.48″E)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 1190 intersecant2: 1.394e-14% 60 LatLon(22°22′23.65″S, 007°55′54.49″E)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 1191 intersecant2: 1.673e-13% 57 LatLon(10°39′24.95″N, 034°45′48.18″W)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 1192 intersecant2: 1.394e-13% 57 LatLon(25°11′09.14″S, 005°10′35.44″W)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 1193 intersecant2: 1.394e-14% 61 LatLon(10°14′21.91″S, 021°00′17.05″E)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 1194 intersecant2: 1.394e-14% 61 LatLon(20°55′17.31″S, 010°40′21.43″E)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 1195 intersecant2: center (LatLon(05°00′00.0″N, 005°00′00.0″W)), circle (3339584), end (LatLon(15°00′00.0″N, 045°00′00.0″E)), exact (False), start (LatLon(45°00′00.0″S, 015°00′00.0″W)) or wrap (False): 'too distant (3.69e+06) plumb to (16°56′45.9″S, 020°17′02.98″E)'\n    test 1196 intersecant2: 1.952e-13% 60 LatLon(09°50′27.38″S, 031°13′29.64″W)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 1197 intersecant2: 1.255e-13% 60 LatLon(14°41′42.65″S, 017°56′18.86″E)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 1198 intersecant2: center (LatLon(05°00′00.0″N, 005°00′00.0″W)), circle (3339584), end (129.04590972667714), exact (False), start (LatLon(14°41′42.65″S, 017°56′18.86″E)) or wrap (False): 'no convergence (32768), tolerance (1.49012e-08) plumb to (00°49′45.31″S, 010°32′55.43″W)'\n    test 1199 intersecant2: 1.673e-13% 55 LatLon(34°54′14.14″N, 000°46′12.9″W)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 1200 intersecant2: 2.092e-13% 55 LatLon(13°51′35.07″S, 018°36′32.63″E)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 1201 intersecant2: center (LatLon(05°00′00.0″N, 005°00′00.0″W)), circle (3339584), end (127.05526645721615), exact (False), start (LatLon(13°51′35.07″S, 018°36′32.63″E)) or wrap (False): 'no convergence (32768), tolerance (1.49012e-08) plumb to (05°05′03.13″S, 002°50′18.8″E)'\n    test 1202 intersecant2: 2.510e-13% 53 LatLon(23°39′08.78″S, 014°40′58.21″W)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 1203 intersecant2: 2.231e-13% 53 LatLon(32°28′02.17″N, 018°16′08.49″W)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 1204 intersecant2: center (LatLon(05°00′00.0″N, 005°00′00.0″W)), circle (3339584), end (332.78042603053865), exact (False), start (LatLon(32°28′02.17″N, 018°16′08.49″W)) or wrap (False): 'too distant (3.88e+06) plumb to (09°29′18.47″S, 026°53′06.97″E)'\n\n    testLatLon(pygeodesy.ellipsoidalExact, 25.08.28)\n    test 1205 isEllipsoidal: True\n    test 1206 isSpherical: False\n    test 1207 lat/lonDMS: 52.20472°N, 000.14056°E\n    test 1208 lat/lonDMS F_DM: 52°12.283′N, 000°08.434′E\n    test 1209 lat/lonDMS F_DM: 52°12.2832′N, 000°08.4336′E\n    test 1210 lat/lonDMS F_DMS: 52°12′17″N, 000°08′26″E\n    test 1211 lat/lonDMS F_DMS: 52°12′17.0″N, 000°08′26.0″E\n    test 1212 lat/lonDMS F_RAD: 0.911144N, 0.002453E\n    test 1213 isequalTo: True\n    test 1214 isequalTo: True\n    test 1215 latlon2: 52.20472, 0.14056\n    test 1216 latlon2: 52.2047, 0.1406\n    test 1217 latlon2: 52.205, 0.141\n    test 1218 latlon2: 52.2, 0.14\n    test 1219 latlon2: 52.2, 0.1\n    test 1220 latlon2: 52.0, 0.0\n    test 1221 chordTo: 12029263.15\n    test 1222 chordTo: 12029049.69\n    test 1223 initialBearingTo: 156.1106\n    test 1224 initialBearingTo: 65.9335\n    test 1225 initialBearingTo: 0.0\n    test 1226 initialBearingTo: 180.0\n    test 1227 finalBearingTo: 157.8345\n    test 1228 finalBearingTo: 93.9034\n    test 1229 bearingTo2: 156.1106, 157.8345\n    test 1230 ispolar: True\n    test 1231 copy: True\n    test 1232 __eq__: True\n    test 1233 __ne__: False\n    test 1234 equirectangularTo: 404329.56\n    test 1235 distanceTo: 404607.805988\n    test 1236 distanceTo: 404607.805988\n    test 1237 distanceTo: 3981601\n    test 1238 antipodal: False\n    test 1239 distanceTo dateline: 19959679.267\n    test 1240 distanceTo unrolled: 19959679.267\n    test 1241 antipodal: False\n    test 1242 distanceTo dateline: 9513998\n    test 1243 distanceTo unrolled: 9513998\n    test 1244 distanceTo: 18012714.66\n    test 1245 distanceTo: 20003931.46\n    test 1246 distanceTo3 dateline: 19959679.2674, 161.0677, 18.8252\n    test 1247 distanceTo3 dateline: 9513997.9901, 42.9164, 138.8903\n    test 1248 distanceTo3 dateline: 19959679.2674, 161.0677, 18.8252\n    test 1249 distanceTo3 dateline: 9513997.9901, 42.9164, 138.8903\n    test 1250 intermediateTo: 51.372275°N, 000.707253°E\n    test 1251 intermediateTo: True\n    test 1252 intermediateTo: 404607.806\n    test 1253 intermediateTo+5: 35.139582°N, 008.994368°E\n    test 1254 intermediateTo+5: 5.000\n    test 1255 intermediateTo-4: 64.894124°N, 013.705689°W\n    test 1256 intermediateTo-4: 4.000\n    test 1257 intermediateTo-h: 125.000\n    test 1258 midpointTo: 50.536583°N, 001.274507°E\n    test 1259 destination: 51.513526°N, 000.098038°W\n    test 1260 destination: 51°30′49″N, 000°05′53″W\n    test 1261 destination: 33°57′N, 118°24′W\n    test 1262 destination: 33.950367°N, 118.399012°W\n    test 1263 destination: 0.592546N, 2.066453W\n    test 1264 destination: 32.11195529°N, 064.56074722°E  FAILED, KNOWN, expected 32.11195529°N, 063.95925278°E\n    test 1265 neareston6: (LatLon(45°00′00.0″N, 001°00′00.0″E), 4755443.4294, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E))\n    test 1266 neareston6: (LatLon(45°30′03.94″N, 002°00′00.0″E), 39078.729285, 1.501072, 2, LatLon(45°00′00.0″N, 002°00′00.0″E), LatLon(46°00′00.0″N, 002°00′00.0″E))\n    test 1267 chordTo: 125203.963\n    test 1268 cosineAndoyerLambertTo: 125205.962\n    test 1269 cosineAndoyerLambertTo: 125205.962\n    test 1270 cosineForsyheAndoyerLambertTo: 125205.965\n    test 1271 cosineForsyheAndoyerLambertTo: 125205.965\n    test 1272 cosineLawTo: 124801.098\n    test 1273 cosineLawTo: 124801.098\n    test 1274 equirectangularTo: 124804.754\n    test 1275 equirectangularTo: 124804.754\n    test 1276 euclideanTo: 130015.089\n    test 1277 euclideanTo: 130015.089\n    test 1278 flatLocalTo: 125209.633\n    test 1279 flatLocalTo: 125209.633\n    test 1280 flatPolarTo: 133663.257\n    test 1281 flatPolarTo: 133663.257\n    test 1282 hartzell: 53.3206°N, 001.7297°W\n# lazily imported pygeodesy.Triaxial from .triaxials.triaxial5 by ellipsoids.py line 1905\n    test 1283 hartzell: 53.349541°N, 001.7297°W\n    test 1284 height4: 0.0\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by cartesianBase.py line 364\n    test 1285 height4: (3820333.9, -115367.0, 5097204.4, -6584.9)\n    test 1286 height4: 53°19′14.2″N, 001°43′46.9″W\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by cartesianBase.py line 364\n    test 1287 height4: 53°19′14.2″N, 001°43′46.9″W\n    test 1288 haversineTo: 124801.098\n    test 1289 haversineTo: 124801.098\n    test 1290 hubenyTo: <bound method LatLonBase.flatLocalTo of LatLon(53°19′14.16″N, 001°43′46.92″W)>\n    test 1291 hubenyTo: <bound method LatLonBase.flatLocalTo of LatLon(53°11′19.32″N, 000°08′00.24″E)>\n    test 1292 thomasTo: 125206.188\n    test 1293 thomasTo: 125206.188\n    test 1294 vincentysTo: 124801.098\n    test 1295 vincentysTo: 124801.098\n    test 1296 isclockwise: False\n    test 1297 isclockwise*: False\n    test 1298 isclockwise: True\n    test 1299 isclockwise*: True\n    test 1300 isclockwise: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 1301 isclockwise*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 1302 isclockwise: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 1303 isclockwise*: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 1304 isconvex: False\n    test 1305 isconvex*: False\n    test 1306 isconvex: True\n    test 1307 isconvex*: True\n    test 1308 isconvex: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 1309 isconvex*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 1310 isenclosedBy1: True\n    test 1311 isenclosedBy1*: True\n    test 1312 isenclosedBy2: False\n    test 1313 isenclosedBy2*: False\n    test 1314 isenclosedBy3: False\n    test 1315 isenclosedBy3*: False\n    test 1316 isenclosedBy4: False\n    test 1317 isenclosedBy4*: False\n    test 1318 isenclosedBy5: False\n    test 1319 isenclosedBy5*: False\n    test 1320 isenclosedBy6: True\n    test 1321 isenclosedBy6*: True\n    test 1322 isenclosedBy7: True\n    test 1323 isenclosedBy7*: True\n    test 1324 isenclosedBy-CCW: True\n    test 1325 isenclosedBy-CW : True\n    test 1326 isenclosedBy-CCW: True\n    test 1327 initialBearingTo: 102.392291\n    test 1328 compassAngleTo: 100.017\n    test 1329 compassAngleTo: 105.599\n    test 1330 initialBearingTo: 288.676039\n    test 1331 compassAngleTo: 280.017\n    test 1332 compassAngleTo: 285.599\n    test 1333 equirectangularTo: 592.185\n    test 1334 distanceTo: 593.571\n    test 1335 bearingTo: 0.0\n    test 1336 compassAngleTo: 0.0\n    test 1337 bearingTo: 45.2  FAILED, KNOWN, expected 45.0\n    test 1338 compassAngleTo: 45.0\n    test 1339 bearingTo: 90.0\n    test 1340 compassAngleTo: 90.0\n    test 1341 bearingTo: 180.0\n    test 1342 compassAngleTo: 180.0\n    test 1343 bearingTo: 225.2  FAILED, KNOWN, expected 225.0\n    test 1344 compassAngleTo: 225.0\n    test 1345 bearingTo: 314.8  FAILED, KNOWN, expected 315.0\n    test 1346 compassAngleTo: 315.0\n    test 1347 bearingTo: 270.0\n    test 1348 compassAngleTo: 270.0\n    test 1349 bearingTo: 0.0  FAILED, KNOWN, expected 359.4\n    test 1350 compassAngleTo: 359.4\n    test 1351 latlon2: (53.0, 1.0)\n    test 1352 philam2: (0.93, 0.02)\n    test 1353 bearingTo: 31\n    test 1354 compassAngleTo: 31\n    test 1355 compassAngleTo: 45\n\n    test 1356 boundsOf: <class 'pygeodesy.namedTuples.Bounds2Tuple'>\n    test 1357 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 1358 latlon2: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 1359 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 1360 isequalTo: <class 'bool'>\n    test 1361 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 1362 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 1363 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 1364 xyz3: <class 'tuple'>\n    test 1365 xyzh: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 1366 compassAngleTo: <class 'float'>\n    test 1367 cosineLawTo: <class 'float'>\n    test 1368 euclideanTo: <class 'float'>\n    test 1369 flatLocalTo: <class 'float'>\n    test 1370 flatPolarTo: <class 'float'>\n    test 1371 haversineTo: <class 'float'>\n    test 1372 hubenyTo: <class 'float'>\n    test 1373 vincentysTo: <class 'float'>\n    test 1374 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 1375 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 1376 toLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 1377 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 1378 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 1379 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 1380 toNvector: (0.615661, 0.0, 0.788011, 0)\n    test 1381 toVector: (3934960.466675, 0.0, 5002803.345483)\n    test 1382 toVector3d: (0.61823, 0.0, 0.786)\n\n    test 1383 trilaterate5 (pygeodesy.ellipsoidalExact) .min: 305.091\n    test 1384 trilaterate5 (pygeodesy.ellipsoidalExact) .point: 42.66933643°N, 002.48620262°E\n    test 1385 trilaterate5 (pygeodesy.ellipsoidalExact) .max: 1592.545\n    test 1386 trilaterate5 (pygeodesy.ellipsoidalExact) .point: 42.65141232°N, 002.46816989°E\n    test 1387 trilaterate5 (pygeodesy.ellipsoidalExact) .n: 3\n    test 1388 trilaterate5 (pygeodesy.ellipsoidalExact) .min: 127.229\n    test 1389 trilaterate5 (pygeodesy.ellipsoidalExact) .max: 152.612\n    test 1390 trilaterate5 (pygeodesy.ellipsoidalExact) .point: 42.67815375°N, 002.49950041°E\n    test 1391 trilaterate5 (pygeodesy.ellipsoidalExact) .n: 2\n    test 1392 trilaterate5 (pygeodesy.ellipsoidalExact) .min: 2400.293\n    test 1393 trilaterate5 (pygeodesy.ellipsoidalExact) .max: 2400.293\n    test 1394 trilaterate5 (pygeodesy.ellipsoidalExact) .point: 42.66128984°N, 002.47973818°E\n    test 1395 trilaterate5 (pygeodesy.ellipsoidalExact) .min- is .maxPoint: True\n    test 1396 trilaterate5 (pygeodesy.ellipsoidalExact) .n: 1\n    test 1397 trilaterate5 (pygeodesy.ellipsoidalExact) .min: 1343.743\n    test 1398 trilaterate5 (pygeodesy.ellipsoidalExact) .point: 42.69131964°N, 002.50112167°E\n    test 1399 trilaterate5 (pygeodesy.ellipsoidalExact) .max: 1445.554\n    test 1400 trilaterate5 (pygeodesy.ellipsoidalExact) .point: 42.67815375°N, 002.49950041°E\n    test 1401 trilaterate5 (pygeodesy.ellipsoidalExact) .n: 2\n    test 1402 radii11: Radii11Tuple(rA=7244.792747, rB=1828.106695, rC=2.25502, cR=57792.067128, rIn=57.366968, riS=2.087668, roS=2.443334, a=1830.361715, b=7247.047766, c=9072.899442, s=9075.154461)\n\n    27 tests skipped (179): numpy in PYGEODESY_XPACKAGES=numpy,scipy: required by vector2d._numpy\n\n    test 1403 radii11: Radii11Tuple(rA=7244.792747, rB=1828.106695, rC=2.25502, cR=57792.067128, rIn=57.366968, riS=2.087668, roS=2.443334, a=1830.361715, b=7247.047766, c=9072.899442, s=9075.154461)\n\n    22 tests skipped (201): numpy in PYGEODESY_XPACKAGES=numpy,scipy: required by vector2d._numpy\n\n    test 1404 area cw/ccw: 1.0\n\n    testNOAA(pygeodesy.ellipsoidalExact, 25.08.28)\n    test 1405 NOAAexample1: 191872.1190, 249 03 16.4237, 67 59 11.1619\n    test 1406 NOAAexample2: 182009.1679, 254 42 44.6439, 73 09 21.3315\n    test 1407 NOAAexample3: 123456.7891, 245 00 34.7001, 64 20 24.6864\n    test 1408 NOAAexample4: 145239.0603, 114 29 26.9586, 295 21 32.6566\n\n    testIntersection3(pygeodesy.ellipsoidalExact, 25.08.28)\n    test 1409 (30, 17): (LatLon(30°52′03.1″N, 015°30′38.41″E), 0, 0)\n    test 1410 (30, 17): (LatLon(30°52′03.1″N, 015°30′38.41″E), -1, 0)\n    test 1411 (-1,  3): (LatLon(01°34′52.49″N, 006°00′51.83″E), -1, -2)\n    test 1412 (-1,  3): (LatLon(01°34′52.49″N, 006°00′51.83″E), -1, 2)\n    test 1413 (65, 32): (LatLon(56°58′26.51″N, 032°00′00.0″E), 1, 0)\n    test 1414 (65, 32): (LatLon(56°58′26.51″N, 032°00′00.0″E), 1, 2)\n    test 1415 (-2, 17): <class 'pygeodesy.errors.IntersectionError'>\n    test 1416 (49, 25): (LatLon(49°00′00.0″N, 025°00′00.0″E), 1, -2)  FAILED, KNOWN, expected (LatLon(49°00′00.0″N, 025°00′00.0″E), 0, 0)\n    test 1417 #58: (LatLon(01°54′25.65″S, 005°37′48.76″E), 1, -2)\n    test 1418 #58: <class 'pygeodesy.errors.IntersectionError'>\n    test 1419 intersection3: (LatLon(54°43′01.31″N, 014°33′49.88″W), 0, 0)\n    test 1420 intersection3: 54.71703°N, 014.563856°W\n\n    testIntersections2(pygeodesy.ellipsoidalExact, 25.08.28)\n    test 1421 EquidistantExact: 36.9879°N, 088.1564°W, 38.2441°N, 092.3835°W\n    test 1422 EquidistantExact: 36.9879°N, 088.1564°W, 38.2441°N, 092.3835°W\n    test 1423 EquidistantExact: 00.0°S, 035.3478°W, 00.0°N, 035.3478°E  FAILED, KNOWN, expected 00.0°N, 035.3478°W, 00.0°S, 035.3478°E\n    test 1424 EquidistantExact: 1.63715 (% of radius)\n    test 1425 EquidistantExact: 22.657°N, 000.0°W, 22.657°S, 000.0°E  FAILED, KNOWN, expected 22.657°N, 000.0°E, 22.657°S, 000.0°E\n    test 1426 EquidistantExact: 1.30663 (% of radius)\n    test 1427 EquidistantExact: 29.4898°N, 040.1785°W, 29.4898°S, 040.1785°E\n    test 1428 EquidistantExact: 1.31396 (% of radius)\n    test 1429 EquidistantExact: 02.7402°S, 044.885°E, 02.7402°N, 044.885°E\n    test 1430 EquidistantExact: 1.83268 (% of radius)\n    test 1431 EquidistantExact 5: 05.0558°S, 005.0271°W, 05.0558°N, 005.0271°E\n    test 1432 EquidistantExact 5: 1.25634e-15 (% of radius)\n    test 1433 EquidistantExact 10: 10.1081°S, 010.2901°W, 10.1081°N, 010.2901°E\n    test 1434 EquidistantExact 10: 2.09389e-16 (% of radius)\n    test 1435 EquidistantExact 15: 15.1433°S, 016.0531°W, 15.1433°N, 016.0531°E\n    test 1436 EquidistantExact 15: 4.74616e-15 (% of radius)\n    test 1437 EquidistantExact 20: 20.1241°S, 022.6411°W, 20.1241°N, 022.6411°E\n    test 1438 EquidistantExact 20: 2.09389e-16 (% of radius)\n    test 1439 EquidistantExact 25: 24.9655°S, 030.4846°W, 24.9655°N, 030.4846°E\n    test 1440 EquidistantExact 25: 1.17258e-15 (% of radius)\n    test 1441 EquidistantExact 30: 29.4898°S, 040.1785°W, 29.4898°N, 040.1785°E\n    test 1442 EquidistantExact 30: 4.18779e-16 (% of radius)\n    test 1443 EquidistantExact 35: 33.3405°S, 052.5516°W, 33.3405°N, 052.5516°E\n    test 1444 EquidistantExact 35: 2.39302e-16 (% of radius)\n    test 1445 EquidistantExact 40: 35.8146°S, 068.7149°W, 35.8146°N, 068.7149°E\n    test 1446 EquidistantExact 40: 1.46573e-15 (% of radius)\n    test 1447 EquidistantExact 45: 35.5368°S, 090.0616°W, 35.5368°N, 090.0616°E\n    test 1448 EquidistantExact 45: 3.72248e-16 (% of radius)\n    test 1449 EquidistantExact 50: 29.5972°S, 118.8695°W, 29.5972°N, 118.8695°E\n    test 1450 EquidistantExact 50: 3.35023e-16 (% of radius)\n    test 1451 EquidistantExact: center1 (LatLon(55°00′00.0″N, 055°00′00.0″W)), center2 (LatLon(55°00′00.0″S, 055°00′00.0″E)), radius1 (12231458.77080936) or radius2 (12231458.77080936): 'no convergence (188568)': tolerance (0.001) too low, antipodal or near-polar?  FAILED, KNOWN, expected 2-tuple\n    test 1452 EquidistantExact: center1 (LatLon(60°00′00.0″N, 060°00′00.0″W)), center2 (LatLon(60°00′00.0″S, 060°00′00.0″E)), radius1 (13343409.568155663) or radius2 (13343409.568155663): 'no convergence (1.01348e+06)': tolerance (0.001) too low, antipodal or near-polar?  FAILED, KNOWN, expected 2-tuple\n    test 1453 EquidistantExact: center1 (LatLon(65°00′00.0″N, 065°00′00.0″W)), center2 (LatLon(65°00′00.0″S, 065°00′00.0″E)), radius1 (14455360.36550197) or radius2 (14455360.36550197): 'no convergence (1.55092e+06)': tolerance (0.001) too low, antipodal or near-polar?  FAILED, KNOWN, expected 2-tuple\n    test 1454 EquidistantExact: 19.786871°S, 036.127885°E Random +/- 45\n    test 1455 EquidistantExact: 19.786871°S, 036.127885°E, 16.272349°S, 054.232208°E  d 6.70102e-09 meter (iteration 3)\n    test 1456 EquidistantExact: 19.786871°S, 036.127885°E, 25.864959°S, 014.294477°W  d 3.52985e-10 meter (iteration 3)\n    test 1457 EquidistantExact: 19.786871°S, 036.127885°E, 15.479134°N, 027.504764°W  d 2.23367e-09 meter (iteration 3)\n    test 1458 EquidistantExact: 19.786871°S, 036.127885°E, 24.734011°N, 060.231409°W  d 3.60063e-09 meter (iteration 3)\n    test 1459 EquidistantExact: 19.786871°S, 036.127885°E, 30.523917°N, 018.934718°W  d 2.86032e-08 meter (iteration 3)\n    test 1460 EquidistantExact: 19.786871°S, 036.127885°E, 42.592897°S, 019.962108°E  d 1.02607e-09 meter (iteration 3)\n    test 1461 EquidistantExact: 19.786871°S, 036.127885°E, 20.172211°S, 041.204831°E  d 3.72279e-09 meter (iteration 3)\n    test 1462 EquidistantExact: 19.786871°S, 036.127885°E, 13.653508°N, 001.297552°E  d 2.23367e-09 meter (iteration 3)\n    test 1463 EquidistantExact: 19.786871°S, 036.127885°E, 79.632143°N, 144.295881°W  d 2.47201e-09 meter (iteration 3)\n    test 1464 EquidistantExact: 19.786871°S, 036.127885°E, 13.952235°S, 022.336735°E  d 3.06077e-09 meter (iteration 3)\n    test 1465 EquidistantExact: 19.786871°S, 036.127885°E, 14.421681°N, 037.003128°E  d 1.08232e-08 meter (iteration 3)\n    test 1466 EquidistantExact: 19.786871°S, 036.127885°E, 16.086776°S, 045.658303°W  d 2.58912e-09 meter (iteration 3)\n\n    testKarney(pygeodesy.ellipsoidalExact, 25.08.28, datum='WGS84')\n    test 1467 distanceTo: 866455.4329\n    test 1468 coincident: 0.0\n    test 1469 toDatum: OSGB36\n    test 1470 ValueError2: Ellipsoid 'Airy1830': incompatible with Ellipsoid 'WGS84'\n    test 1471 isEllipsoidal: True\n    test 1472 copy: True\n    test 1473 isEllipsoidal: True\n    test 1474 isSpherical: False\n    test 1475 copy: 37°57′03.7203″S, 144°25′29.5244″E\n\n    testKarneyVincenty(pygeodesy.ellipsoidalExact, 25.08.28, datum='WGS84')\n    test 1476 coincident: 0.0\n    test 1477 coincident: 0.0, 0.0, 0.0\n    test 1478 destination: 37.6528°S, 143.9265°E\n    test 1479 destination: True\n    test 1480 destination2: 37.652821°S, 143.926496°E, 307.1736°NW\n    test 1481 destination2: True\n    test 1482 finalBearingOn: 307.1736°, 307°10′25.07″NW\n    test 1483 distanceTo: 969954.166\n    test 1484 distanceTo3: 969954.166314, 9.141877, 11.29722\n    test 1485 distanceTo2: 972708.16174, 11.22502\n    test 1486 initialBearingTo: 9.1419°, 9°08′30.76″N\n    test 1487 destination: 58.64402°N, 003.07009°W\n    test 1488 finalBearingTo: 11.2972°, 11°17′49.99″NNE\n    test 1489 finalBearingOn: 11.2972°, 11°17′49.99″NNE\n    test 1490 distanceTo: 404607.806\n    test 1491 distanceTo3: 404607.805988, 156.11064, 157.8345\n    test 1492 distanceTo2: 402574.597287, 157.726344\n    test 1493 initialBearingTo: 156.1106°, 156°06′38.31″SSE\n    test 1494 destination: 48.857°N, 002.351°E\n    test 1495 finalBearingTo: 157.8345°, 157°50′04.2″SSE\n    test 1496 finalBearingOn: 157.8345°, 157°50′04.2″SSE\n    test 1497 distanceTo: 54973.295\n    test 1498 distanceTo3: 54973.29527, 233.13008, 232.82461\n    test 1499 distanceTo2: 54903.41209, 232.9209\n    test 1500 initialBearingTo: 233.1301°, 233°07′48.28″SW\n    test 1501 destination: 37.6528°N, 143.9265°E\n    test 1502 finalBearingTo: 232.8246°, 232°49′28.59″SW\n    test 1503 finalBearingOn: 232.8246°, 232°49′28.59″SW\n    test 1504 distanceToMP: 298396.057\n    test 1505 distanceToSM: 185.415\n    test 1506 distanceToMP: 111319.491\n    test 1507 distanceToMP: 110574.389  FAILED, KNOWN, expected 110574.361\n    test 1508 distanceToKW: 222638.982\n    test 1509 distanceToKW: 111319.491\n    test 1510 distanceTo3: 54972.271\n    test 1511 distanceTo3: 306°52′05.37″\n    test 1512 distanceTo3: 307°10′25.07″\n    test 1513 distanceTo2: 54902.390\n    test 1514 distanceTo2: 307°04′38.41″\n\n    testKarneyVincentyError(pygeodesy.ellipsoidalExact, 25.08.28, datum='WGS84')\n    test 1515 distanceTo/antipodal (None): 19936288.579\n    test 1516 distanceTo/VincentyError (None): 19944127.421\n    test 1517 initialBearingTo/VincentyError (None): 15.556883\n    test 1518 finalBearingTo/VincentyError (None): 164.442514\n    test 1519 distanceTo/equatorial (None): 20001517.12  FAILED, KNOWN, expected 20003931.46\n    test 1520 initialBearingTo/equatorial (None): 0.0\n    test 1521 distanceTo/coincident (None): 111319.491\n    test 1522 distanceTo/meridional (None): 9999551.606\n    test 1523 initialBearingTo/meridional (None): 180.0\n    test 1524 distanceTo/coincident (None): 0.0\n    test 1525 initialBearingTo/coincident (None): 180.0\n    test 1526 finalBearingTo/coincident (None): 180.0\n    test 1527 destination/coincident (None): 50.06632°N, 005.71475°W\n    test 1528 distanceTo/anti-meridian (None): 10825924.1\n    test 1529 distanceTo/quadrants (None): 4015703.02\n    test 1530 distanceTo/quadrants (None): 4015703.02\n    test 1531 distanceTo/quadrants (None): 4015703.02\n    test 1532 distanceTo/quadrants (None): 4015703.02\n    test 1533 distanceTo/quadrants (None): 4015703.02\n    test 1534 distanceTo/quadrants (None): 4015703.02\n    test 1535 distanceTo/quadrants (None): 4015703.02\n    test 1536 distanceTo/quadrants (None): 4015703.02\n    test 1537 distanceTo/quadrants (None): 4015703.02\n    test 1538 distanceTo/quadrants (None): 4015703.02\n    test 1539 distanceTo/quadrants (None): 4015703.02\n    test 1540 distanceTo/quadrants (None): 4015703.02\n    test 1541 distanceTo/quadrants (None): 4015703.02\n    test 1542 distanceTo/quadrants (None): 4015703.02\n    test 1543 distanceTo/quadrants (None): 4015703.02\n    test 1544 distanceTo/quadrants (None): 4015703.02\n\n    testKarney(pygeodesy.ellipsoidalExact, 25.08.28, datum='NAD83')\n    test 1545 distanceTo: 866455.4329\n    test 1546 coincident: 0.0\n    test 1547 toDatum: OSGB36\n    test 1548 ValueError2: Ellipsoid 'Airy1830': incompatible with Ellipsoid 'GRS80'\n    test 1549 isEllipsoidal: True\n    test 1550 copy: True\n    test 1551 isEllipsoidal: True\n    test 1552 isSpherical: False\n    test 1553 copy: 37°57′03.7203″S, 144°25′29.5244″E\n\n    testKarneyVincenty(pygeodesy.ellipsoidalExact, 25.08.28, datum='NAD83')\n    test 1554 coincident: 0.0\n    test 1555 coincident: 0.0, 0.0, 0.0\n    test 1556 destination: 37.6528°S, 143.9265°E\n    test 1557 destination: True\n    test 1558 destination2: 37.652821°S, 143.926496°E, 307.1736°NW\n    test 1559 destination2: True\n    test 1560 finalBearingOn: 307.1736°, 307°10′25.07″NW\n    test 1561 distanceTo: 969954.166\n    test 1562 distanceTo3: 969954.166314, 9.141877, 11.29722\n    test 1563 distanceTo2: 972708.16174, 11.22502\n    test 1564 initialBearingTo: 9.1419°, 9°08′30.76″N\n    test 1565 destination: 58.64402°N, 003.07009°W\n    test 1566 finalBearingTo: 11.2972°, 11°17′49.99″NNE\n    test 1567 finalBearingOn: 11.2972°, 11°17′49.99″NNE\n    test 1568 distanceTo: 404607.806\n    test 1569 distanceTo3: 404607.805988, 156.11064, 157.8345\n    test 1570 distanceTo2: 402574.597287, 157.726344\n    test 1571 initialBearingTo: 156.1106°, 156°06′38.31″SSE\n    test 1572 destination: 48.857°N, 002.351°E\n    test 1573 finalBearingTo: 157.8345°, 157°50′04.2″SSE\n    test 1574 finalBearingOn: 157.8345°, 157°50′04.2″SSE\n    test 1575 distanceTo: 54973.295\n    test 1576 distanceTo3: 54973.29527, 233.13008, 232.82461\n    test 1577 distanceTo2: 54903.41209, 232.9209\n    test 1578 initialBearingTo: 233.1301°, 233°07′48.28″SW\n    test 1579 destination: 37.6528°N, 143.9265°E\n    test 1580 finalBearingTo: 232.8246°, 232°49′28.59″SW\n    test 1581 finalBearingOn: 232.8246°, 232°49′28.59″SW\n    test 1582 distanceToMP: 298396.057\n    test 1583 distanceToSM: 185.415\n    test 1584 distanceToMP: 111319.491\n    test 1585 distanceToMP: 110574.389  FAILED, KNOWN, expected 110574.361\n    test 1586 distanceToKW: 222638.982\n    test 1587 distanceToKW: 111319.491\n    test 1588 distanceTo3: 54972.271\n    test 1589 distanceTo3: 306°52′05.37″\n    test 1590 distanceTo3: 307°10′25.07″\n    test 1591 distanceTo2: 54902.390\n    test 1592 distanceTo2: 307°04′38.41″\n\n    testKarneyVincentyError(pygeodesy.ellipsoidalExact, 25.08.28, datum='NAD83')\n    test 1593 distanceTo/antipodal (None): 19936288.579\n    test 1594 distanceTo/VincentyError (None): 19944127.421\n    test 1595 initialBearingTo/VincentyError (None): 15.556883\n    test 1596 finalBearingTo/VincentyError (None): 164.442514\n    test 1597 distanceTo/equatorial (None): 20001517.12  FAILED, KNOWN, expected 20003931.46\n    test 1598 initialBearingTo/equatorial (None): 0.0\n    test 1599 distanceTo/coincident (None): 111319.491\n    test 1600 distanceTo/meridional (None): 9999551.606\n    test 1601 initialBearingTo/meridional (None): 180.0\n    test 1602 distanceTo/coincident (None): 0.0\n    test 1603 initialBearingTo/coincident (None): 180.0\n    test 1604 finalBearingTo/coincident (None): 180.0\n    test 1605 destination/coincident (None): 50.06632°N, 005.71475°W\n    test 1606 distanceTo/anti-meridian (None): 10825924.1\n    test 1607 distanceTo/quadrants (None): 4015703.02\n    test 1608 distanceTo/quadrants (None): 4015703.02\n    test 1609 distanceTo/quadrants (None): 4015703.02\n    test 1610 distanceTo/quadrants (None): 4015703.02\n    test 1611 distanceTo/quadrants (None): 4015703.02\n    test 1612 distanceTo/quadrants (None): 4015703.02\n    test 1613 distanceTo/quadrants (None): 4015703.02\n    test 1614 distanceTo/quadrants (None): 4015703.02\n    test 1615 distanceTo/quadrants (None): 4015703.02\n    test 1616 distanceTo/quadrants (None): 4015703.02\n    test 1617 distanceTo/quadrants (None): 4015703.02\n    test 1618 distanceTo/quadrants (None): 4015703.02\n    test 1619 distanceTo/quadrants (None): 4015703.02\n    test 1620 distanceTo/quadrants (None): 4015703.02\n    test 1621 distanceTo/quadrants (None): 4015703.02\n    test 1622 distanceTo/quadrants (None): 4015703.02\n\n    testKarney_s(pygeodesy.ellipsoidalExact, 25.08.28)\n    test 1623 .lat1: -41.320\n    test 1624 .lon1: 174.810\n    test 1625 .azi1: 161.067669986160\n    test 1626 .lat2: 40.960\n    test 1627 .lon2: -5.500\n    test 1628 .azi2: 18.825195123247\n    test 1629 .s12: 19959679.267353817821  FAILED, KNOWN, expected 19959679.267353821546\n    test 1630 distanceTo3: 19959679.267354, 161.067670, 18.825195\n    test 1631 destination2: 40.96, -5.5, 18.825195123247\n    test 1632 areaOf: 1.366270368e+13\n    test 1633 perimeterOf: 1.683089136e+07\n    test 1634 isclockwise: False\n    test 1635 isclockwise: True\n    test 1636 areaCO: 2.69154549884e+11\n    test 1637 isclockwise: True\n    test 1638 perimeterCO: 2099102.485159  FAILED, KNOWN, expected 2098430.887891\n\n    1132 of 1638 testEllipsoidal.py tests (69.1%) FAILED, incl. 117 KNOWN plus 1015 DeprecationWarnings, 201 skipped (pygeodesy 26.3.26 PyPy 7.3.17 Python 3.10.14 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 43.689 sec\nrunning /opt/local/bin/p....y3.10 -W default ~/PyGeodesy/test/testEllipsoidalGeodTest.py\n./pygeodesy/ellipsoidalKarney.py:94: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return self.datum.ellipsoid.geodesic\n# lazily imported pygeodesy.basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.DeprecationWarnings from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isint from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isLazy from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.issubclassof from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.iterNumpy2over from .iters by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.LazyImportError from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.karney by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.NN from .interns by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.normDMS from .dms by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.pairs from .streprs by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.printf from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.property_RO from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.typename from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.ellipsoidalExact by testEllipsoidalGeodTest.py line 15\n# lazily imported pygeodesy.ellipsoidalKarney by testEllipsoidalGeodTest.py line 15\n# lazily imported pygeodesy.ellipsoidalVincenty by testEllipsoidalGeodTest.py line 15\n# lazily imported pygeodesy.Ellipsoids from .ellipsoids by testEllipsoidalGeodTest.py line 15\n# lazily imported pygeodesy.VincentyError from .ellipsoidalVincenty by testEllipsoidalGeodTest.py line 15\n\n    testing testEllipsoidalGeodTest.py 23.12.18 (module pygeodesy.ellipsoidalKarney 25.05.27) isLazy=3\n    test 1 line 1 lat: -48.164271\n    test 2 line 1 lon: 5.762345\n    test 3 line 1 fb: 175.334308\n# lazily imported pygeodesy.geodesicw by ellipsoids.py line 1074\n    test 4 line 1 lat2: -48.164270779098\n    test 5 line 1 lon2: 5.762344694676  FAILED, KNOWN, expected 5.762344694677\n    test 6 line 1 azi2: 175.334308316285\n# lazily imported pygeodesy.geodesicx by ellipsoids.py line 1082\n# lazily imported pygeodesy.elliptic by gxline.py line 289\n    test 7 line 1 lat2: -48.164270779098\n    test 8 line 1 lon2: 5.762344694676  FAILED, KNOWN, expected 5.762344694677\n    test 9 line 1 azi2: 175.334308316285\n    test 10 line 2 lat: -23.186513\n    test 11 line 2 lon: 68.567247\n    test 12 line 2 fb: 154.287114\n    test 13 line 2 lat2: -23.186512533703\n    test 14 line 2 lon2: 68.567247430960\n    test 15 line 2 azi2: 154.287114123872\n    test 16 line 2 lat2: -23.186512533703\n    test 17 line 2 lon2: 68.567247430960\n    test 18 line 2 azi2: 154.287114123872\n    test 19 line 3 lat: 53.997072\n    test 20 line 3 lon: 44.520619\n    test 21 line 3 fb: 52.159487\n    test 22 line 3 lat2: 53.997072295385\n    test 23 line 3 lon2: 44.520619105668\n    test 24 line 3 azi2: 52.159486739948\n    test 25 line 3 lat2: 53.997072295385\n    test 26 line 3 lon2: 44.520619105668\n    test 27 line 3 azi2: 52.159486739948\n    test 28 line 4 lat: -49.416672\n    test 29 line 4 lon: 166.828083\n    test 30 line 4 fb: 22.033031\n    test 31 line 4 lat2: -49.416672064706\n    test 32 line 4 lon2: 166.828083210689\n    test 33 line 4 azi2: 22.033030848249\n    test 34 line 4 lat2: -49.416672064706\n    test 35 line 4 lon2: 166.828083210689\n    test 36 line 4 azi2: 22.033030848249\n    test 37 line 5 lat: -60.405136\n    test 38 line 5 lon: 110.581140\n    test 39 line 5 fb: 75.518296\n    test 40 line 5 lat2: -60.405136414530\n    test 41 line 5 lon2: 110.581139538777\n    test 42 line 5 azi2: 75.518295964649\n    test 43 line 5 lat2: -60.405136414530\n    test 44 line 5 lon2: 110.581139538777\n    test 45 line 5 azi2: 75.518295964649\n    test 46 line 6 lat: -11.212600\n    test 47 line 6 lon: 144.177077\n    test 48 line 6 fb: 133.027766\n    test 49 line 6 lat2: -11.212600121556\n    test 50 line 6 lon2: 144.177076511360\n    test 51 line 6 azi2: 133.027766301029\n    test 52 line 6 lat2: -11.212600121556\n    test 53 line 6 lon2: 144.177076511360\n    test 54 line 6 azi2: 133.027766301029\n    test 55 line 7 lat: -6.529067\n    test 56 line 7 lon: 2.895924\n    test 57 line 7 fb: 178.740350\n    test 58 line 7 lat2: -6.529066987956\n    test 59 line 7 lon2: 2.895923948125\n    test 60 line 7 azi2: 178.740350145954\n    test 61 line 7 lat2: -6.529066987956\n    test 62 line 7 lon2: 2.895923948125\n    test 63 line 7 azi2: 178.740350145954\n    test 64 line 8 lat: -8.855512\n    test 65 line 8 lon: 112.749196\n    test 66 line 8 fb: 119.512004\n    test 67 line 8 lat2: -8.855512357257\n    test 68 line 8 lon2: 112.749196494485\n    test 69 line 8 azi2: 119.512003891282\n    test 70 line 8 lat2: -8.855512357257\n    test 71 line 8 lon2: 112.749196494485\n    test 72 line 8 azi2: 119.512003891282\n    test 73 line 9 lat: 29.866967\n    test 74 line 9 lon: 171.726893\n    test 75 line 9 fb: 171.662245\n    test 76 line 9 lat2: 29.866967483293\n    test 77 line 9 lon2: 171.726892560963\n    test 78 line 9 azi2: 171.662244609397\n    test 79 line 9 lat2: 29.866967483293\n    test 80 line 9 lon2: 171.726892560963\n    test 81 line 9 azi2: 171.662244609397\n    test 82 line 10 lat: -29.238404\n    test 83 line 10 lon: 133.459814\n    test 84 line 10 fb: 69.814124\n    test 85 line 10 lat2: -29.238404337998\n    test 86 line 10 lon2: 133.459813533284\n    test 87 line 10 azi2: 69.814124320813\n    test 88 line 10 lat2: -29.238404337998\n    test 89 line 10 lon2: 133.459813533284\n    test 90 line 10 azi2: 69.814124320813\n    test 91 line 11 lat: 55.600487\n    test 92 line 11 lon: 75.128743\n    test 93 line 11 fb: 153.896689\n    test 94 line 11 lat2: 55.600487151983\n    test 95 line 11 lon2: 75.128743229495\n    test 96 line 11 azi2: 153.896688535572\n    test 97 line 11 lat2: 55.600487151983\n    test 98 line 11 lon2: 75.128743229496  FAILED, KNOWN, expected 75.128743229495\n    test 99 line 11 azi2: 153.896688535572\n    test 100 line 12 lat: -22.858435\n    test 101 line 12 lon: 67.207513\n    test 102 line 12 fb: 142.939529\n    test 103 line 12 lat2: -22.858434825399\n    test 104 line 12 lon2: 67.207513019332\n    test 105 line 12 azi2: 142.939529056687\n    test 106 line 12 lat2: -22.858434825399\n    test 107 line 12 lon2: 67.207513019332\n    test 108 line 12 azi2: 142.939529056687\n    test 109 line 13 lat: -32.634475\n    test 110 line 13 lon: 22.238523\n    test 111 line 13 fb: 172.112993\n    test 112 line 13 lat2: -32.634475461067\n    test 113 line 13 lon2: 22.238523021935\n    test 114 line 13 azi2: 172.112992582333\n    test 115 line 13 lat2: -32.634475461067\n    test 116 line 13 lon2: 22.238523021935\n    test 117 line 13 azi2: 172.112992582333\n    test 118 line 14 lat: 62.224985\n    test 119 line 14 lon: 47.119133\n    test 120 line 14 fb: 54.318105\n    test 121 line 14 lat2: 62.224984867045\n    test 122 line 14 lon2: 47.119133304525\n    test 123 line 14 azi2: 54.318105291965\n    test 124 line 14 lat2: 62.224984867045\n    test 125 line 14 lon2: 47.119133304525\n    test 126 line 14 azi2: 54.318105291965\n    test 127 line 15 lat: 33.069613\n    test 128 line 15 lon: 5.796996\n    test 129 line 15 fb: 17.403845\n    test 130 line 15 lat2: 33.069613195450\n    test 131 line 15 lon2: 5.796995960186\n    test 132 line 15 azi2: 17.403844642346\n    test 133 line 15 lat2: 33.069613195450\n    test 134 line 15 lon2: 5.796995960186\n    test 135 line 15 azi2: 17.403844642346\n    test 136 line 16 lat: 53.760900\n    test 137 line 16 lon: 119.204306\n    test 138 line 16 fb: 141.069793\n    test 139 line 16 lat2: 53.760899500985\n    test 140 line 16 lon2: 119.204305898518\n    test 141 line 16 azi2: 141.069793254983\n    test 142 line 16 lat2: 53.760899500985\n    test 143 line 16 lon2: 119.204305898518\n    test 144 line 16 azi2: 141.069793254983\n    test 145 line 17 lat: -3.225632\n    test 146 line 17 lon: 103.742354\n    test 147 line 17 fb: 127.880328\n    test 148 line 17 lat2: -3.225632004245\n    test 149 line 17 lon2: 103.742354347526\n    test 150 line 17 azi2: 127.880328388524\n    test 151 line 17 lat2: -3.225632004245\n    test 152 line 17 lon2: 103.742354347526\n    test 153 line 17 azi2: 127.880328388524\n    test 154 line 18 lat: 47.108712\n    test 155 line 18 lon: 99.934107\n    test 156 line 18 fb: 104.103491\n    test 157 line 18 lat2: 47.108712008353\n    test 158 line 18 lon2: 99.934107358387\n    test 159 line 18 azi2: 104.103491123038\n    test 160 line 18 lat2: 47.108712008353\n    test 161 line 18 lon2: 99.934107358387\n    test 162 line 18 azi2: 104.103491123038\n    test 163 line 19 lat: 5.399363\n    test 164 line 19 lon: 135.250064\n    test 165 line 19 fb: 102.177018\n    test 166 line 19 lat2: 5.399363208349\n    test 167 line 19 lon2: 135.250063670790\n    test 168 line 19 azi2: 102.177017677370\n    test 169 line 19 lat2: 5.399363208349\n    test 170 line 19 lon2: 135.250063670790\n    test 171 line 19 azi2: 102.177017677370\n    test 172 line 20 lat: -58.669225\n    test 173 line 20 lon: 54.875015\n    test 174 line 20 fb: 131.345308\n    test 175 line 20 lat2: -58.669224697403\n    test 176 line 20 lon2: 54.875014559502\n    test 177 line 20 azi2: 131.345308028428\n    test 178 line 20 lat2: -58.669224697403\n    test 179 line 20 lon2: 54.875014559502\n    test 180 line 20 azi2: 131.345308028428\n    test 181 line 21 lat: 9.184229\n    test 182 line 21 lon: 151.302637\n    test 183 line 21 fb: 128.175105\n    test 184 line 21 lat2: 9.184228666560\n    test 185 line 21 lon2: 151.302636871911\n    test 186 line 21 azi2: 128.175105446048\n    test 187 line 21 lat2: 9.184228666560\n    test 188 line 21 lon2: 151.302636871911\n    test 189 line 21 azi2: 128.175105446048\n    test 190 line 22 lat: 53.467940\n    test 191 line 22 lon: 67.724192\n    test 192 line 22 fb: 78.863492\n    test 193 line 22 lat2: 53.467939714247\n    test 194 line 22 lon2: 67.724192258333\n    test 195 line 22 azi2: 78.863492168727\n    test 196 line 22 lat2: 53.467939714247\n    test 197 line 22 lon2: 67.724192258333\n    test 198 line 22 azi2: 78.863492168727\n    test 199 line 23 lat: 39.699456\n    test 200 line 23 lon: 67.156325\n    test 201 line 23 fb: 85.276830\n    test 202 line 23 lat2: 39.699455912449\n    test 203 line 23 lon2: 67.156324625647\n    test 204 line 23 azi2: 85.276829539878\n    test 205 line 23 lat2: 39.699455912449\n    test 206 line 23 lon2: 67.156324625647\n    test 207 line 23 azi2: 85.276829539878\n    test 208 line 24 lat: 70.942602\n    test 209 line 24 lon: 17.379214\n    test 210 line 24 fb: 21.869008\n    test 211 line 24 lat2: 70.942602144324\n    test 212 line 24 lon2: 17.379213644124\n    test 213 line 24 azi2: 21.869008256312\n    test 214 line 24 lat2: 70.942602144324\n    test 215 line 24 lon2: 17.379213644124\n    test 216 line 24 azi2: 21.869008256312\n    test 217 line 25 lat: 69.633349\n    test 218 line 25 lon: 110.601933\n    test 219 line 25 fb: 138.575193\n    test 220 line 25 lat2: 69.633349004538\n    test 221 line 25 lon2: 110.601933261211\n    test 222 line 25 azi2: 138.575192608514\n    test 223 line 25 lat2: 69.633349004538\n    test 224 line 25 lon2: 110.601933261211\n    test 225 line 25 azi2: 138.575192608515  FAILED, KNOWN, expected 138.575192608514\n    test 226 line 26 lat: 16.190815\n    test 227 line 26 lon: 87.606993\n    test 228 line 26 fb: 131.929410\n    test 229 line 26 lat2: 16.190814826165\n    test 230 line 26 lon2: 87.606993293114\n    test 231 line 26 azi2: 131.929409507039\n    test 232 line 26 lat2: 16.190814826165\n    test 233 line 26 lon2: 87.606993293114\n    test 234 line 26 azi2: 131.929409507039\n    test 235 line 27 lat: 54.774905\n    test 236 line 27 lon: 52.952507\n    test 237 line 27 fb: 85.904051\n    test 238 line 27 lat2: 54.774904542264\n    test 239 line 27 lon2: 52.952506835523\n    test 240 line 27 azi2: 85.904050867676\n    test 241 line 27 lat2: 54.774904542264\n    test 242 line 27 lon2: 52.952506835523\n    test 243 line 27 azi2: 85.904050867676\n    test 244 line 28 lat: -62.008569\n    test 245 line 28 lon: 172.274877\n    test 246 line 28 fb: 21.992601\n    test 247 line 28 lat2: -62.008568677307\n    test 248 line 28 lon2: 172.274876714260\n    test 249 line 28 azi2: 21.992601380429\n    test 250 line 28 lat2: -62.008568677307\n    test 251 line 28 lon2: 172.274876714260\n    test 252 line 28 azi2: 21.992601380429\n    test 253 line 29 lat: 27.303730\n    test 254 line 29 lon: 159.184451\n    test 255 line 29 fb: 150.697920\n    test 256 line 29 lat2: 27.303729660018\n    test 257 line 29 lon2: 159.184451093393\n    test 258 line 29 azi2: 150.697920369703\n    test 259 line 29 lat2: 27.303729660018\n    test 260 line 29 lon2: 159.184451093393\n    test 261 line 29 azi2: 150.697920369703\n    test 262 line 30 lat: 31.979897\n    test 263 line 30 lon: 55.946759\n    test 264 line 30 fb: 87.398293\n    test 265 line 30 lat2: 31.979897342658\n    test 266 line 30 lon2: 55.946758945497\n    test 267 line 30 azi2: 87.398292964767\n    test 268 line 30 lat2: 31.979897342658\n    test 269 line 30 lon2: 55.946758945497\n    test 270 line 30 azi2: 87.398292964767\n    test 271 line 31 lat: 49.991468\n    test 272 line 31 lon: 133.962411\n    test 273 line 31 fb: 142.016540\n    test 274 line 31 lat2: 49.991467522545\n    test 275 line 31 lon2: 133.962411191467\n    test 276 line 31 azi2: 142.016540226251\n    test 277 line 31 lat2: 49.991467522545\n    test 278 line 31 lon2: 133.962411191467\n    test 279 line 31 azi2: 142.016540226251\n    test 280 line 32 lat: 2.818559\n    test 281 line 32 lon: 7.234774\n    test 282 line 32 fb: 168.804029\n    test 283 line 32 lat2: 2.818558842278\n    test 284 line 32 lon2: 7.234774421859\n    test 285 line 32 azi2: 168.804029404993\n    test 286 line 32 lat2: 2.818558842278\n    test 287 line 32 lon2: 7.234774421859\n    test 288 line 32 azi2: 168.804029404993\n    test 289 line 33 lat: -38.118071\n    test 290 line 33 lon: 93.395971\n    test 291 line 33 fb: 117.017377\n    test 292 line 33 lat2: -38.118070550305\n    test 293 line 33 lon2: 93.395971367720\n    test 294 line 33 azi2: 117.017376985228\n    test 295 line 33 lat2: -38.118070550305\n    test 296 line 33 lon2: 93.395971367720\n    test 297 line 33 azi2: 117.017376985228\n    test 298 line 34 lat: 3.377824\n    test 299 line 34 lon: 65.294746\n    test 300 line 34 fb: 138.982544\n    test 301 line 34 lat2: 3.377824468035\n    test 302 line 34 lon2: 65.294745963255\n    test 303 line 34 azi2: 138.982543784560\n    test 304 line 34 lat2: 3.377824468035\n    test 305 line 34 lon2: 65.294745963255\n    test 306 line 34 azi2: 138.982543784560\n    test 307 line 35 lat: 4.631157\n    test 308 line 35 lon: 84.335045\n    test 309 line 35 fb: 132.120804\n    test 310 line 35 lat2: 4.631157299024\n    test 311 line 35 lon2: 84.335044694540\n    test 312 line 35 azi2: 132.120804319474\n    test 313 line 35 lat2: 4.631157299024\n    test 314 line 35 lon2: 84.335044694540\n    test 315 line 35 azi2: 132.120804319474\n    test 316 line 36 lat: 38.952215\n    test 317 line 36 lon: 133.416463\n    test 318 line 36 fb: 160.690586\n    test 319 line 36 lat2: 38.952215219507\n    test 320 line 36 lon2: 133.416463103113\n    test 321 line 36 azi2: 160.690585690749\n    test 322 line 36 lat2: 38.952215219507\n    test 323 line 36 lon2: 133.416463103113\n    test 324 line 36 azi2: 160.690585690749\n    test 325 line 37 lat: -39.013297\n    test 326 line 37 lon: 160.302849\n    test 327 line 37 fb: 115.363715\n    test 328 line 37 lat2: -39.013296805131\n    test 329 line 37 lon2: 160.302849365986\n    test 330 line 37 azi2: 115.363714797610\n    test 331 line 37 lat2: -39.013296805131\n    test 332 line 37 lon2: 160.302849365986\n    test 333 line 37 azi2: 115.363714797610\n    test 334 line 38 lat: -48.456093\n    test 335 line 38 lon: 38.613822\n    test 336 line 38 fb: 137.651668\n    test 337 line 38 lat2: -48.456093143589\n    test 338 line 38 lon2: 38.613821719886\n    test 339 line 38 azi2: 137.651668464815\n    test 340 line 38 lat2: -48.456093143589\n    test 341 line 38 lon2: 38.613821719886\n    test 342 line 38 azi2: 137.651668464815\n    test 343 line 39 lat: -13.861956\n    test 344 line 39 lon: 74.250572\n    test 345 line 39 fb: 143.968262\n    test 346 line 39 lat2: -13.861956131519\n    test 347 line 39 lon2: 74.250571564776\n    test 348 line 39 azi2: 143.968262419705\n    test 349 line 39 lat2: -13.861956131519\n    test 350 line 39 lon2: 74.250571564776\n    test 351 line 39 azi2: 143.968262419705\n    test 352 line 40 lat: 25.289202\n    test 353 line 40 lon: 47.063579\n    test 354 line 40 fb: 78.672533\n    test 355 line 40 lat2: 25.289201968371\n    test 356 line 40 lon2: 47.063578519727\n    test 357 line 40 azi2: 78.672532588106\n    test 358 line 40 lat2: 25.289201968371\n    test 359 line 40 lon2: 47.063578519727\n    test 360 line 40 azi2: 78.672532588106\n    test 361 line 41 lat: 49.498121\n    test 362 line 41 lon: 131.993365\n    test 363 line 41 fb: 157.425605\n    test 364 line 41 lat2: 49.498121110507\n    test 365 line 41 lon2: 131.993365399320\n    test 366 line 41 azi2: 157.425605424890\n    test 367 line 41 lat2: 49.498121110507\n    test 368 line 41 lon2: 131.993365399320\n    test 369 line 41 azi2: 157.425605424890\n    test 370 line 42 lat: -2.104242\n    test 371 line 42 lon: 56.532079\n    test 372 line 42 fb: 129.406955\n    test 373 line 42 lat2: -2.104241718494\n    test 374 line 42 lon2: 56.532079408825\n    test 375 line 42 azi2: 129.406954892035\n    test 376 line 42 lat2: -2.104241718494\n    test 377 line 42 lon2: 56.532079408825\n    test 378 line 42 azi2: 129.406954892035\n    test 379 line 43 lat: -39.997315\n    test 380 line 43 lon: 49.004259\n    test 381 line 43 fb: 135.432995\n    test 382 line 43 lat2: -39.997315471629\n    test 383 line 43 lon2: 49.004258662721\n    test 384 line 43 azi2: 135.432994751523\n    test 385 line 43 lat2: -39.997315471629\n    test 386 line 43 lon2: 49.004258662721\n    test 387 line 43 azi2: 135.432994751523\n    test 388 line 44 lat: 9.333272\n    test 389 line 44 lon: 98.670857\n    test 390 line 44 fb: 120.694280\n    test 391 line 44 lat2: 9.333271992381\n    test 392 line 44 lon2: 98.670857333200\n    test 393 line 44 azi2: 120.694280236304\n    test 394 line 44 lat2: 9.333271992381\n    test 395 line 44 lon2: 98.670857333200\n    test 396 line 44 azi2: 120.694280236304\n    test 397 line 45 lat: 38.653646\n    test 398 line 45 lon: 136.060468\n    test 399 line 45 fb: 152.489416\n    test 400 line 45 lat2: 38.653646179484\n    test 401 line 45 lon2: 136.060467518677\n    test 402 line 45 azi2: 152.489415748331\n    test 403 line 45 lat2: 38.653646179484\n    test 404 line 45 lon2: 136.060467518677\n    test 405 line 45 azi2: 152.489415748331\n    test 406 line 46 lat: -4.564995\n    test 407 line 46 lon: 166.894968\n    test 408 line 46 fb: 127.520036\n    test 409 line 46 lat2: -4.564994956240\n    test 410 line 46 lon2: 166.894968092836\n    test 411 line 46 azi2: 127.520036113641\n    test 412 line 46 lat2: -4.564994956240\n    test 413 line 46 lon2: 166.894968092836\n    test 414 line 46 azi2: 127.520036113641\n    test 415 line 47 lat: -38.522500\n    test 416 line 47 lon: 178.679307\n    test 417 line 47 fb: 176.468685\n    test 418 line 47 lat2: -38.522500159620\n    test 419 line 47 lon2: 178.679306959466\n    test 420 line 47 azi2: 176.468684587438\n    test 421 line 47 lat2: -38.522500159620\n    test 422 line 47 lon2: 178.679306959466\n    test 423 line 47 azi2: 176.468684587438\n    test 424 line 48 lat: 45.529796\n    test 425 line 48 lon: 145.048738\n    test 426 line 48 fb: 160.706227\n    test 427 line 48 lat2: 45.529795503687  FAILED, KNOWN, expected 45.529795503688\n    test 428 line 48 lon2: 145.048737846273\n    test 429 line 48 azi2: 160.706226714169\n    test 430 line 48 lat2: 45.529795503688\n    test 431 line 48 lon2: 145.048737846273\n    test 432 line 48 azi2: 160.706226714169\n    test 433 line 49 lat: -2.968925\n    test 434 line 49 lon: 5.044083\n    test 435 line 49 fb: 174.913528\n    test 436 line 49 lat2: -2.968924563433\n    test 437 line 49 lon2: 5.044082955485\n    test 438 line 49 azi2: 174.913527615338\n    test 439 line 49 lat2: -2.968924563433\n    test 440 line 49 lon2: 5.044082955485\n    test 441 line 49 azi2: 174.913527615338\n    test 442 line 50 lat: 1.618184\n    test 443 line 50 lon: 163.262955\n    test 444 line 50 fb: 161.097730\n    test 445 line 50 lat2: 1.618184178387\n    test 446 line 50 lon2: 163.262955108028\n    test 447 line 50 azi2: 161.097729713868\n    test 448 line 50 lat2: 1.618184178387\n    test 449 line 50 lon2: 163.262955108028\n    test 450 line 50 azi2: 161.097729713868\n    test 451 line 51 lat: 25.179740\n    test 452 line 51 lon: 107.504992\n    test 453 line 51 fb: 154.055552\n    test 454 line 51 lat2: 25.179740339437\n    test 455 line 51 lon2: 107.504991932892\n    test 456 line 51 azi2: 154.055552232572\n    test 457 line 51 lat2: 25.179740339437\n    test 458 line 51 lon2: 107.504991932892\n    test 459 line 51 azi2: 154.055552232572\n    test 460 line 52 lat: 57.391251\n    test 461 line 52 lon: 89.082271\n    test 462 line 52 fb: 101.276115\n    test 463 line 52 lat2: 57.391251345244\n    test 464 line 52 lon2: 89.082271206722\n    test 465 line 52 azi2: 101.276114553753\n    test 466 line 52 lat2: 57.391251345244\n    test 467 line 52 lon2: 89.082271206722\n    test 468 line 52 azi2: 101.276114553753\n    test 469 line 53 lat: -11.470673\n    test 470 line 53 lon: 48.285095\n    test 471 line 53 fb: 148.389696\n    test 472 line 53 lat2: -11.470672507979\n    test 473 line 53 lon2: 48.285094684225\n    test 474 line 53 azi2: 148.389695684750\n    test 475 line 53 lat2: -11.470672507979\n    test 476 line 53 lon2: 48.285094684225\n    test 477 line 53 azi2: 148.389695684750\n    test 478 line 54 lat: 27.356639\n    test 479 line 54 lon: 84.391682\n    test 480 line 54 fb: 104.661818\n    test 481 line 54 lat2: 27.356639349123\n    test 482 line 54 lon2: 84.391681754671\n    test 483 line 54 azi2: 104.661818309238\n    test 484 line 54 lat2: 27.356639349123\n    test 485 line 54 lon2: 84.391681754671\n    test 486 line 54 azi2: 104.661818309238\n    test 487 line 55 lat: -40.533598\n    test 488 line 55 lon: 103.488381\n    test 489 line 55 fb: 132.398259\n    test 490 line 55 lat2: -40.533597900971\n    test 491 line 55 lon2: 103.488381204009\n    test 492 line 55 azi2: 132.398259207371\n    test 493 line 55 lat2: -40.533597900971\n    test 494 line 55 lon2: 103.488381204009\n    test 495 line 55 azi2: 132.398259207371\n    test 496 line 56 lat: 52.337949\n    test 497 line 56 lon: 149.908279\n    test 498 line 56 fb: 162.333474\n    test 499 line 56 lat2: 52.337949466457\n    test 500 line 56 lon2: 149.908278798430\n    test 501 line 56 azi2: 162.333474334205\n    test 502 line 56 lat2: 52.337949466457\n    test 503 line 56 lon2: 149.908278798430\n    test 504 line 56 azi2: 162.333474334205\n    test 505 line 57 lat: -58.474076\n    test 506 line 57 lon: 78.718606\n    test 507 line 57 fb: 117.457565\n    test 508 line 57 lat2: -58.474075605820\n    test 509 line 57 lon2: 78.718605560533\n    test 510 line 57 azi2: 117.457565115569\n    test 511 line 57 lat2: -58.474075605820\n    test 512 line 57 lon2: 78.718605560533\n    test 513 line 57 azi2: 117.457565115569\n    test 514 line 58 lat: -35.840568\n    test 515 line 58 lon: 4.157534\n    test 516 line 58 fb: 174.451067\n    test 517 line 58 lat2: -35.840568348239\n    test 518 line 58 lon2: 4.157534199470\n    test 519 line 58 azi2: 174.451066901814\n    test 520 line 58 lat2: -35.840568348239\n    test 521 line 58 lon2: 4.157534199470\n    test 522 line 58 azi2: 174.451066901814\n    test 523 line 59 lat: 15.629163\n    test 524 line 59 lon: 102.677417\n    test 525 line 59 fb: 103.482103\n    test 526 line 59 lat2: 15.629163409998\n    test 527 line 59 lon2: 102.677417064290  FAILED, KNOWN, expected 102.677417064289\n    test 528 line 59 azi2: 103.482102722183\n    test 529 line 59 lat2: 15.629163409998\n    test 530 line 59 lon2: 102.677417064290  FAILED, KNOWN, expected 102.677417064289\n    test 531 line 59 azi2: 103.482102722183\n    test 532 line 60 lat: -1.256180\n    test 533 line 60 lon: 133.625255\n    test 534 line 60 fb: 104.470489\n    test 535 line 60 lat2: -1.256179633151\n    test 536 line 60 lon2: 133.625254783633\n    test 537 line 60 azi2: 104.470489013739\n    test 538 line 60 lat2: -1.256179633151\n    test 539 line 60 lon2: 133.625254783633\n    test 540 line 60 azi2: 104.470489013739\n    test 541 line 61 lat: -40.558253\n    test 542 line 61 lon: 112.897054\n    test 543 line 61 fb: 90.226134\n    test 544 line 61 lat2: -40.558252601871\n    test 545 line 61 lon2: 112.897053867085\n    test 546 line 61 azi2: 90.226134266467\n    test 547 line 61 lat2: -40.558252601871\n    test 548 line 61 lon2: 112.897053867085\n    test 549 line 61 azi2: 90.226134266467\n    test 550 line 62 lat: 86.193596\n    test 551 line 62 lon: 116.956880\n    test 552 line 62 fb: 117.618329\n    test 553 line 62 lat2: 86.193595821107\n    test 554 line 62 lon2: 116.956880430711\n    test 555 line 62 azi2: 117.618329340274\n    test 556 line 62 lat2: 86.193595821107\n    test 557 line 62 lon2: 116.956880430711\n    test 558 line 62 azi2: 117.618329340274\n    test 559 line 63 lat: 6.874181\n    test 560 line 63 lon: 54.891199\n    test 561 line 63 fb: 90.820790\n    test 562 line 63 lat2: 6.874181093562\n    test 563 line 63 lon2: 54.891198619261\n    test 564 line 63 azi2: 90.820789878786\n    test 565 line 63 lat2: 6.874181093562\n    test 566 line 63 lon2: 54.891198619261\n    test 567 line 63 azi2: 90.820789878786\n    test 568 line 64 lat: -2.554657\n    test 569 line 64 lon: 71.539549\n    test 570 line 64 fb: 105.722921\n    test 571 line 64 lat2: -2.554657243385\n    test 572 line 64 lon2: 71.539549368441\n    test 573 line 64 azi2: 105.722921401613\n    test 574 line 64 lat2: -2.554657243385\n    test 575 line 64 lon2: 71.539549368441\n    test 576 line 64 azi2: 105.722921401613\n    test 577 line 65 lat: 1.329645\n    test 578 line 65 lon: 138.134969\n    test 579 line 65 fb: 150.465118\n    test 580 line 65 lat2: 1.329645321136\n    test 581 line 65 lon2: 138.134968538140\n    test 582 line 65 azi2: 150.465118219879\n    test 583 line 65 lat2: 1.329645321136\n    test 584 line 65 lon2: 138.134968538140\n    test 585 line 65 azi2: 150.465118219879\n    test 586 line 66 lat: -44.026427\n    test 587 line 66 lon: 121.367591\n    test 588 line 66 fb: 123.975227\n    test 589 line 66 lat2: -44.026426573446\n    test 590 line 66 lon2: 121.367591215510\n    test 591 line 66 azi2: 123.975227063718\n    test 592 line 66 lat2: -44.026426573446\n    test 593 line 66 lon2: 121.367591215510\n    test 594 line 66 azi2: 123.975227063718\n    test 595 line 67 lat: -3.399081\n    test 596 line 67 lon: 138.655764\n    test 597 line 67 fb: 98.994343\n    test 598 line 67 lat2: -3.399080708673\n    test 599 line 67 lon2: 138.655764270175\n    test 600 line 67 azi2: 98.994343217447\n    test 601 line 67 lat2: -3.399080708673\n    test 602 line 67 lon2: 138.655764270175\n    test 603 line 67 azi2: 98.994343217447\n    test 604 line 68 lat: -26.776985\n    test 605 line 68 lon: 67.020055\n    test 606 line 68 fb: 119.394665\n    test 607 line 68 lat2: -26.776984673364\n    test 608 line 68 lon2: 67.020054548341\n    test 609 line 68 azi2: 119.394664651636\n    test 610 line 68 lat2: -26.776984673364\n    test 611 line 68 lon2: 67.020054548341\n    test 612 line 68 azi2: 119.394664651636\n    test 613 line 69 lat: 52.057239\n    test 614 line 69 lon: 151.887270\n    test 615 line 69 fb: 161.537826\n    test 616 line 69 lat2: 52.057239269050\n    test 617 line 69 lon2: 151.887270484247\n    test 618 line 69 azi2: 161.537826425477\n    test 619 line 69 lat2: 52.057239269050\n    test 620 line 69 lon2: 151.887270484247\n    test 621 line 69 azi2: 161.537826425477\n    test 622 line 70 lat: 3.784724\n    test 623 line 70 lon: 102.727745\n    test 624 line 70 fb: 116.453155\n    test 625 line 70 lat2: 3.784724165483\n    test 626 line 70 lon2: 102.727744934481\n    test 627 line 70 azi2: 116.453155405439\n    test 628 line 70 lat2: 3.784724165483\n    test 629 line 70 lon2: 102.727744934481\n    test 630 line 70 azi2: 116.453155405439\n    test 631 line 71 lat: -40.409299\n    test 632 line 71 lon: 86.033195\n    test 633 line 71 fb: 121.080298\n    test 634 line 71 lat2: -40.409298772797\n    test 635 line 71 lon2: 86.033195335657\n    test 636 line 71 azi2: 121.080297615268\n    test 637 line 71 lat2: -40.409298772797\n    test 638 line 71 lon2: 86.033195335657\n    test 639 line 71 azi2: 121.080297615268\n    test 640 line 72 lat: 73.013460\n    test 641 line 72 lon: 76.188125\n    test 642 line 72 fb: 78.877769\n    test 643 line 72 lat2: 73.013460186926\n    test 644 line 72 lon2: 76.188125151657\n    test 645 line 72 azi2: 78.877769459629\n    test 646 line 72 lat2: 73.013460186926\n    test 647 line 72 lon2: 76.188125151657\n    test 648 line 72 azi2: 78.877769459629\n    test 649 line 73 lat: 52.870132\n    test 650 line 73 lon: 51.020900\n    test 651 line 73 fb: 102.113351\n    test 652 line 73 lat2: 52.870131799667\n    test 653 line 73 lon2: 51.020900069545\n    test 654 line 73 azi2: 102.113351369331\n    test 655 line 73 lat2: 52.870131799667\n    test 656 line 73 lon2: 51.020900069545\n    test 657 line 73 azi2: 102.113351369331\n    test 658 line 74 lat: 28.909632\n    test 659 line 74 lon: 17.071526\n    test 660 line 74 fb: 103.660711\n    test 661 line 74 lat2: 28.909631785857\n    test 662 line 74 lon2: 17.071526465331\n    test 663 line 74 azi2: 103.660711362255\n    test 664 line 74 lat2: 28.909631785857\n    test 665 line 74 lon2: 17.071526465331\n    test 666 line 74 azi2: 103.660711362255\n    test 667 line 75 lat: -58.257855\n    test 668 line 75 lon: 15.812862\n    test 669 line 75 fb: 169.606337\n    test 670 line 75 lat2: -58.257854831091\n    test 671 line 75 lon2: 15.812862089412\n    test 672 line 75 azi2: 169.606337169070\n    test 673 line 75 lat2: -58.257854831091\n    test 674 line 75 lon2: 15.812862089412\n    test 675 line 75 azi2: 169.606337169070\n    test 676 line 76 lat: -58.869445\n    test 677 line 76 lon: 132.036795\n    test 678 line 76 fb: 53.946549\n    test 679 line 76 lat2: -58.869445004289\n    test 680 line 76 lon2: 132.036794965086\n    test 681 line 76 azi2: 53.946549037654\n    test 682 line 76 lat2: -58.869445004289\n    test 683 line 76 lon2: 132.036794965086\n    test 684 line 76 azi2: 53.946549037654\n    test 685 line 77 lat: -45.547043\n    test 686 line 77 lon: 77.540664\n    test 687 line 77 fb: 126.917177\n    test 688 line 77 lat2: -45.547042598505\n    test 689 line 77 lon2: 77.540663933413\n    test 690 line 77 azi2: 126.917177154676\n    test 691 line 77 lat2: -45.547042598505\n    test 692 line 77 lon2: 77.540663933413\n    test 693 line 77 azi2: 126.917177154676\n    test 694 line 78 lat: 45.046385\n    test 695 line 78 lon: 149.382429\n    test 696 line 78 fb: 162.117474\n    test 697 line 78 lat2: 45.046384823604\n    test 698 line 78 lon2: 149.382428769460\n    test 699 line 78 azi2: 162.117474447248\n    test 700 line 78 lat2: 45.046384823604\n    test 701 line 78 lon2: 149.382428769460\n    test 702 line 78 azi2: 162.117474447248\n    test 703 line 79 lat: -74.853338\n    test 704 line 79 lon: 96.072097\n    test 705 line 79 fb: 85.425493\n    test 706 line 79 lat2: -74.853338324199\n    test 707 line 79 lon2: 96.072096720955\n    test 708 line 79 azi2: 85.425493305289\n    test 709 line 79 lat2: -74.853338324199\n    test 710 line 79 lon2: 96.072096720956  FAILED, KNOWN, expected 96.072096720955\n    test 711 line 79 azi2: 85.425493305289\n    test 712 line 80 lat: -13.205775\n    test 713 line 80 lon: 57.532285\n    test 714 line 80 fb: 122.358040\n    test 715 line 80 lat2: -13.205775181752\n    test 716 line 80 lon2: 57.532285422140\n    test 717 line 80 azi2: 122.358040028964\n    test 718 line 80 lat2: -13.205775181752\n    test 719 line 80 lon2: 57.532285422140\n    test 720 line 80 azi2: 122.358040028964\n    test 721 line 81 lat: -5.135864\n    test 722 line 81 lon: 115.048833\n    test 723 line 81 fb: 93.168400\n    test 724 line 81 lat2: -5.135863872649\n    test 725 line 81 lon2: 115.048832990097\n    test 726 line 81 azi2: 93.168399576996\n    test 727 line 81 lat2: -5.135863872649\n    test 728 line 81 lon2: 115.048832990097\n    test 729 line 81 azi2: 93.168399576996\n    test 730 line 82 lat: 13.355453\n    test 731 line 82 lon: 19.253946\n    test 732 line 82 fb: 143.568719\n    test 733 line 82 lat2: 13.355452912310\n    test 734 line 82 lon2: 19.253945880531\n    test 735 line 82 azi2: 143.568718864193\n    test 736 line 82 lat2: 13.355452912310\n    test 737 line 82 lon2: 19.253945880531\n    test 738 line 82 azi2: 143.568718864193\n    test 739 line 83 lat: 0.766426\n    test 740 line 83 lon: 147.485817\n    test 741 line 83 fb: 144.982274\n    test 742 line 83 lat2: 0.766426443892\n    test 743 line 83 lon2: 147.485816830606\n    test 744 line 83 azi2: 144.982273873382\n    test 745 line 83 lat2: 0.766426443892\n    test 746 line 83 lon2: 147.485816830606\n    test 747 line 83 azi2: 144.982273873382\n    test 748 line 84 lat: 10.228416\n    test 749 line 84 lon: 159.204118\n    test 750 line 84 fb: 173.111973\n    test 751 line 84 lat2: 10.228416314659\n    test 752 line 84 lon2: 159.204118025562\n    test 753 line 84 azi2: 173.111973027488\n    test 754 line 84 lat2: 10.228416314659\n    test 755 line 84 lon2: 159.204118025562\n    test 756 line 84 azi2: 173.111973027488\n    test 757 line 85 lat: 73.178089\n    test 758 line 85 lon: 131.762700\n    test 759 line 85 fb: 135.271161\n    test 760 line 85 lat2: 73.178089048974\n    test 761 line 85 lon2: 131.762699581940\n    test 762 line 85 azi2: 135.271161440271\n    test 763 line 85 lat2: 73.178089048974\n    test 764 line 85 lon2: 131.762699581941  FAILED, KNOWN, expected 131.762699581940\n    test 765 line 85 azi2: 135.271161440271\n    test 766 line 86 lat: -16.908717\n    test 767 line 86 lon: 149.240494\n    test 768 line 86 fb: 90.725082\n    test 769 line 86 lat2: -16.908717231321\n    test 770 line 86 lon2: 149.240493850337\n    test 771 line 86 azi2: 90.725082091932\n    test 772 line 86 lat2: -16.908717231321\n    test 773 line 86 lon2: 149.240493850337\n    test 774 line 86 azi2: 90.725082091932\n    test 775 line 87 lat: -23.440025\n    test 776 line 87 lon: 98.819595\n    test 777 line 87 fb: 154.388320\n    test 778 line 87 lat2: -23.440025289757\n    test 779 line 87 lon2: 98.819595131759\n    test 780 line 87 azi2: 154.388319751570\n    test 781 line 87 lat2: -23.440025289757\n    test 782 line 87 lon2: 98.819595131759\n    test 783 line 87 azi2: 154.388319751570\n    test 784 line 88 lat: -51.344465\n    test 785 line 88 lon: 54.299399\n    test 786 line 88 fb: 139.903236\n    test 787 line 88 lat2: -51.344465279371\n    test 788 line 88 lon2: 54.299399477396\n    test 789 line 88 azi2: 139.903236261795\n    test 790 line 88 lat2: -51.344465279371\n    test 791 line 88 lon2: 54.299399477396\n    test 792 line 88 azi2: 139.903236261795\n    test 793 line 89 lat: 33.922320\n    test 794 line 89 lon: 143.463070\n    test 795 line 89 fb: 132.788230\n    test 796 line 89 lat2: 33.922319712554\n    test 797 line 89 lon2: 143.463070326988\n    test 798 line 89 azi2: 132.788229856713\n    test 799 line 89 lat2: 33.922319712554\n    test 800 line 89 lon2: 143.463070326988\n    test 801 line 89 azi2: 132.788229856713\n    test 802 line 90 lat: -83.333068\n    test 803 line 90 lon: 177.611925\n    test 804 line 90 fb: 2.633769\n    test 805 line 90 lat2: -83.333068057524\n    test 806 line 90 lon2: 177.611924577958\n    test 807 line 90 azi2: 2.633768744582\n    test 808 line 90 lat2: -83.333068057524\n    test 809 line 90 lon2: 177.611924577958\n    test 810 line 90 azi2: 2.633768744582\n    test 811 line 91 lat: 20.587333\n    test 812 line 91 lon: 164.201962\n    test 813 line 91 fb: 166.991083\n    test 814 line 91 lat2: 20.587333492522\n    test 815 line 91 lon2: 164.201962479604\n    test 816 line 91 azi2: 166.991083245940\n    test 817 line 91 lat2: 20.587333492522\n    test 818 line 91 lon2: 164.201962479604\n    test 819 line 91 azi2: 166.991083245940\n    test 820 line 92 lat: 52.612815\n    test 821 line 92 lon: 110.766184\n    test 822 line 92 fb: 168.281486\n    test 823 line 92 lat2: 52.612815386144\n    test 824 line 92 lon2: 110.766184475279\n    test 825 line 92 azi2: 168.281485715811\n    test 826 line 92 lat2: 52.612815386144\n    test 827 line 92 lon2: 110.766184475279\n    test 828 line 92 azi2: 168.281485715811\n    test 829 line 93 lat: -41.681373\n    test 830 line 93 lon: 82.150183\n    test 831 line 93 fb: 107.012959\n    test 832 line 93 lat2: -41.681372899642\n    test 833 line 93 lon2: 82.150183233451\n    test 834 line 93 azi2: 107.012959072514\n    test 835 line 93 lat2: -41.681372899642\n    test 836 line 93 lon2: 82.150183233451\n    test 837 line 93 azi2: 107.012959072514\n    test 838 line 94 lat: 27.082807\n    test 839 line 94 lon: 171.332531\n    test 840 line 94 fb: 174.934340\n    test 841 line 94 lat2: 27.082807052702\n    test 842 line 94 lon2: 171.332530862401\n    test 843 line 94 azi2: 174.934339881142\n    test 844 line 94 lat2: 27.082807052702\n    test 845 line 94 lon2: 171.332530862401\n    test 846 line 94 azi2: 174.934339881142\n    test 847 line 95 lat: 57.992299\n    test 848 line 95 lon: 15.128357\n    test 849 line 95 fb: 62.342982\n    test 850 line 95 lat2: 57.992299464191\n    test 851 line 95 lon2: 15.128356773547\n    test 852 line 95 azi2: 62.342982084737\n    test 853 line 95 lat2: 57.992299464191\n    test 854 line 95 lon2: 15.128356773547\n    test 855 line 95 azi2: 62.342982084737\n    test 856 line 96 lat: -10.526000\n    test 857 line 96 lon: 33.778702\n    test 858 line 96 fb: 165.687804\n    test 859 line 96 lat2: -10.526000344959\n    test 860 line 96 lon2: 33.778701722506\n    test 861 line 96 azi2: 165.687803859941\n    test 862 line 96 lat2: -10.526000344959\n    test 863 line 96 lon2: 33.778701722506\n    test 864 line 96 azi2: 165.687803859941\n    test 865 line 97 lat: 25.802395\n    test 866 line 97 lon: 98.502531\n    test 867 line 97 fb: 97.837271\n    test 868 line 97 lat2: 25.802394934787\n    test 869 line 97 lon2: 98.502531199301\n    test 870 line 97 azi2: 97.837270592496\n    test 871 line 97 lat2: 25.802394934787\n    test 872 line 97 lon2: 98.502531199301\n    test 873 line 97 azi2: 97.837270592496\n    test 874 line 98 lat: 47.163255\n    test 875 line 98 lon: 156.720176\n    test 876 line 98 fb: 160.291022\n    test 877 line 98 lat2: 47.163255465769\n    test 878 line 98 lon2: 156.720176105542\n    test 879 line 98 azi2: 160.291021678921\n    test 880 line 98 lat2: 47.163255465769\n    test 881 line 98 lon2: 156.720176105542\n    test 882 line 98 azi2: 160.291021678921\n    test 883 line 99 lat: 47.932063\n    test 884 line 99 lon: 35.094714\n    test 885 line 99 fb: 137.545065\n    test 886 line 99 lat2: 47.932062978964\n    test 887 line 99 lon2: 35.094714092217\n    test 888 line 99 azi2: 137.545065115425\n    test 889 line 99 lat2: 47.932062978964\n    test 890 line 99 lon2: 35.094714092217\n    test 891 line 99 azi2: 137.545065115425\n    test 892 line 100 lat: -60.204340\n    test 893 line 100 lon: 117.726218\n    test 894 line 100 fb: 72.585011\n    test 895 line 100 lat2: -60.204339807984\n    test 896 line 100 lon2: 117.726217548610\n    test 897 line 100 azi2: 72.585010656772\n    test 898 line 100 lat2: -60.204339807984\n    test 899 line 100 lon2: 117.726217548610\n    test 900 line 100 azi2: 72.585010656772\n    test 901 line 101 lat: 35.247411\n    test 902 line 101 lon: 59.471562\n    test 903 line 101 fb: 81.179468\n    test 904 line 101 lat2: 35.247410984329\n    test 905 line 101 lon2: 59.471562388985\n    test 906 line 101 azi2: 81.179468094302\n    test 907 line 101 lat2: 35.247410984329\n    test 908 line 101 lon2: 59.471562388985\n    test 909 line 101 azi2: 81.179468094302\n    test 910 line 102 lat: 19.218268\n    test 911 line 102 lon: 165.507915\n    test 912 line 102 fb: 167.452074\n    test 913 line 102 lat2: 19.218268047706\n    test 914 line 102 lon2: 165.507915017643\n    test 915 line 102 azi2: 167.452074301867\n    test 916 line 102 lat2: 19.218268047706\n    test 917 line 102 lon2: 165.507915017643\n    test 918 line 102 azi2: 167.452074301867\n    test 919 line 103 lat: 55.428809\n    test 920 line 103 lon: 121.956541\n    test 921 line 103 fb: 154.501481\n    test 922 line 103 lat2: 55.428809300888\n    test 923 line 103 lon2: 121.956541206929\n    test 924 line 103 azi2: 154.501481394521\n    test 925 line 103 lat2: 55.428809300888\n    test 926 line 103 lon2: 121.956541206929\n    test 927 line 103 azi2: 154.501481394521\n    test 928 line 104 lat: 49.294374\n    test 929 line 104 lon: 119.661420\n    test 930 line 104 fb: 157.209489\n    test 931 line 104 lat2: 49.294374468687\n    test 932 line 104 lon2: 119.661419832789\n    test 933 line 104 azi2: 157.209488754087\n    test 934 line 104 lat2: 49.294374468687\n    test 935 line 104 lon2: 119.661419832789\n    test 936 line 104 azi2: 157.209488754087\n    test 937 line 105 lat: -32.534872\n    test 938 line 105 lon: 152.280610\n    test 939 line 105 fb: 45.281812\n    test 940 line 105 lat2: -32.534872085863\n    test 941 line 105 lon2: 152.280609797481\n    test 942 line 105 azi2: 45.281812386148\n    test 943 line 105 lat2: -32.534872085863\n    test 944 line 105 lon2: 152.280609797481\n    test 945 line 105 azi2: 45.281812386148\n    test 946 line 106 lat: -1.097899\n    test 947 line 106 lon: 104.697360\n    test 948 line 106 fb: 126.298489\n    test 949 line 106 lat2: -1.097899218947\n    test 950 line 106 lon2: 104.697359959629\n    test 951 line 106 azi2: 126.298488917783\n    test 952 line 106 lat2: -1.097899218947\n    test 953 line 106 lon2: 104.697359959629\n    test 954 line 106 azi2: 126.298488917783\n    test 955 line 107 lat: -18.034366\n    test 956 line 107 lon: 28.460388\n    test 957 line 107 fb: 129.520364\n    test 958 line 107 lat2: -18.034366293950\n    test 959 line 107 lon2: 28.460387638999\n    test 960 line 107 azi2: 129.520363751001\n    test 961 line 107 lat2: -18.034366293950\n    test 962 line 107 lon2: 28.460387638999\n    test 963 line 107 azi2: 129.520363751001\n    test 964 line 108 lat: 76.310833\n    test 965 line 108 lon: 80.110525\n    test 966 line 108 fb: 106.655922\n    test 967 line 108 lat2: 76.310832995825\n    test 968 line 108 lon2: 80.110524683625\n    test 969 line 108 azi2: 106.655921818336\n    test 970 line 108 lat2: 76.310832995825\n    test 971 line 108 lon2: 80.110524683625\n    test 972 line 108 azi2: 106.655921818336\n    test 973 line 109 lat: 39.838034\n    test 974 line 109 lon: 42.989610\n    test 975 line 109 fb: 69.695281\n    test 976 line 109 lat2: 39.838033717901\n    test 977 line 109 lon2: 42.989610477861\n    test 978 line 109 azi2: 69.695281464222\n    test 979 line 109 lat2: 39.838033717901\n    test 980 line 109 lon2: 42.989610477861\n    test 981 line 109 azi2: 69.695281464222\n    test 982 line 110 lat: -56.710166\n    test 983 line 110 lon: 125.242287\n    test 984 line 110 fb: 60.118756\n    test 985 line 110 lat2: -56.710165877845\n    test 986 line 110 lon2: 125.242287231675\n    test 987 line 110 azi2: 60.118756013168\n    test 988 line 110 lat2: -56.710165877845\n    test 989 line 110 lon2: 125.242287231675\n    test 990 line 110 azi2: 60.118756013168\n    test 991 line 111 lat: 55.796062\n    test 992 line 111 lon: 59.736599\n    test 993 line 111 fb: 73.536728\n    test 994 line 111 lat2: 55.796061639165\n    test 995 line 111 lon2: 59.736598787303\n    test 996 line 111 azi2: 73.536727826063\n    test 997 line 111 lat2: 55.796061639165\n    test 998 line 111 lon2: 59.736598787303\n    test 999 line 111 azi2: 73.536727826063\n    test 1000 line 112 lat: -36.553675\n    test 1001 line 112 lon: 38.656806\n    test 1002 line 112 fb: 134.414837\n    test 1003 line 112 lat2: -36.553675319553\n    test 1004 line 112 lon2: 38.656806212281\n    test 1005 line 112 azi2: 134.414836606696\n    test 1006 line 112 lat2: -36.553675319553\n    test 1007 line 112 lon2: 38.656806212281\n    test 1008 line 112 azi2: 134.414836606696\n    test 1009 line 113 lat: -36.798456\n    test 1010 line 113 lon: 163.588375\n    test 1011 line 113 fb: 147.324204\n    test 1012 line 113 lat2: -36.798455994877\n    test 1013 line 113 lon2: 163.588375017283\n    test 1014 line 113 azi2: 147.324204021436\n    test 1015 line 113 lat2: -36.798455994877\n    test 1016 line 113 lon2: 163.588375017283\n    test 1017 line 113 azi2: 147.324204021436\n    test 1018 line 114 lat: -15.952937\n    test 1019 line 114 lon: 55.126807\n    test 1020 line 114 fb: 134.743426\n    test 1021 line 114 lat2: -15.952937085211\n    test 1022 line 114 lon2: 55.126807113658\n    test 1023 line 114 azi2: 134.743426025963\n    test 1024 line 114 lat2: -15.952937085211\n    test 1025 line 114 lon2: 55.126807113658\n    test 1026 line 114 azi2: 134.743426025963\n    test 1027 line 115 lat: -34.573087\n    test 1028 line 115 lon: 69.304064\n    test 1029 line 115 fb: 111.515973\n    test 1030 line 115 lat2: -34.573086586710\n    test 1031 line 115 lon2: 69.304064202466\n    test 1032 line 115 azi2: 111.515973223076\n    test 1033 line 115 lat2: -34.573086586710\n    test 1034 line 115 lon2: 69.304064202466\n    test 1035 line 115 azi2: 111.515973223076\n    test 1036 line 116 lat: 26.643499\n    test 1037 line 116 lon: 1.500481\n    test 1038 line 116 fb: 7.958966\n    test 1039 line 116 lat2: 26.643498959841\n    test 1040 line 116 lon2: 1.500480924882\n    test 1041 line 116 azi2: 7.958966071178\n    test 1042 line 116 lat2: 26.643498959841\n    test 1043 line 116 lon2: 1.500480924882\n    test 1044 line 116 azi2: 7.958966071178\n    test 1045 line 117 lat: 60.891878\n    test 1046 line 117 lon: 91.543410\n    test 1047 line 117 fb: 92.273095\n    test 1048 line 117 lat2: 60.891878271763\n    test 1049 line 117 lon2: 91.543409983653\n    test 1050 line 117 azi2: 92.273095036246\n    test 1051 line 117 lat2: 60.891878271763\n    test 1052 line 117 lon2: 91.543409983653\n    test 1053 line 117 azi2: 92.273095036246\n    test 1054 line 118 lat: 64.148187\n    test 1055 line 118 lon: 136.552579\n    test 1056 line 118 fb: 147.193229\n    test 1057 line 118 lat2: 64.148186913822\n    test 1058 line 118 lon2: 136.552579389353\n    test 1059 line 118 azi2: 147.193228706030\n    test 1060 line 118 lat2: 64.148186913822\n    test 1061 line 118 lon2: 136.552579389353\n    test 1062 line 118 azi2: 147.193228706030\n    test 1063 line 119 lat: 62.311678\n    test 1064 line 119 lon: 39.238630\n    test 1065 line 119 fb: 53.785893\n    test 1066 line 119 lat2: 62.311677748693\n    test 1067 line 119 lon2: 39.238629619778\n    test 1068 line 119 azi2: 53.785893324444\n    test 1069 line 119 lat2: 62.311677748693\n    test 1070 line 119 lon2: 39.238629619778\n    test 1071 line 119 azi2: 53.785893324444\n    test 1072 line 120 lat: 27.239733\n    test 1073 line 120 lon: 136.649227\n    test 1074 line 120 fb: 162.935700\n    test 1075 line 120 lat2: 27.239733033115\n    test 1076 line 120 lon2: 136.649227320518\n    test 1077 line 120 azi2: 162.935700444146\n    test 1078 line 120 lat2: 27.239733033115\n    test 1079 line 120 lon2: 136.649227320518\n    test 1080 line 120 azi2: 162.935700444146\n    test 1081 line 121 lat: 6.562844\n    test 1082 line 121 lon: 170.159007\n    test 1083 line 121 fb: 174.851345\n    test 1084 line 121 lat2: 6.562844367534\n    test 1085 line 121 lon2: 170.159007094343\n    test 1086 line 121 azi2: 174.851345174583\n    test 1087 line 121 lat2: 6.562844367534\n    test 1088 line 121 lon2: 170.159007094343\n    test 1089 line 121 azi2: 174.851345174583\n    test 1090 line 122 lat: -29.537259\n    test 1091 line 122 lon: 105.350044\n    test 1092 line 122 fb: 141.393876\n    test 1093 line 122 lat2: -29.537259231420\n    test 1094 line 122 lon2: 105.350044044462\n    test 1095 line 122 azi2: 141.393876478962\n    test 1096 line 122 lat2: -29.537259231420\n    test 1097 line 122 lon2: 105.350044044462\n    test 1098 line 122 azi2: 141.393876478962\n    test 1099 line 123 lat: -66.447700\n    test 1100 line 123 lon: 83.741961\n    test 1101 line 123 fb: 129.422490\n    test 1102 line 123 lat2: -66.447699831143\n    test 1103 line 123 lon2: 83.741960628420\n    test 1104 line 123 azi2: 129.422490051758\n    test 1105 line 123 lat2: -66.447699831143\n    test 1106 line 123 lon2: 83.741960628420\n    test 1107 line 123 azi2: 129.422490051758\n    test 1108 line 124 lat: 56.926818\n    test 1109 line 124 lon: 20.197117\n    test 1110 line 124 fb: 37.960006\n    test 1111 line 124 lat2: 56.926817599968\n    test 1112 line 124 lon2: 20.197117058896\n    test 1113 line 124 azi2: 37.960006049295\n    test 1114 line 124 lat2: 56.926817599968\n    test 1115 line 124 lon2: 20.197117058896\n    test 1116 line 124 azi2: 37.960006049295\n    test 1117 line 125 lat: 55.018266\n    test 1118 line 125 lon: 83.735441\n    test 1119 line 125 fb: 130.766515\n    test 1120 line 125 lat2: 55.018265995959\n    test 1121 line 125 lon2: 83.735441278691\n    test 1122 line 125 azi2: 130.766514657995\n    test 1123 line 125 lat2: 55.018265995959\n    test 1124 line 125 lon2: 83.735441278691\n    test 1125 line 125 azi2: 130.766514657995\n    test 1126 line 126 lat: -78.131054\n    test 1127 line 126 lon: 56.098176\n    test 1128 line 126 fb: 127.132203\n    test 1129 line 126 lat2: -78.131053729786\n    test 1130 line 126 lon2: 56.098176359327  FAILED, KNOWN, expected 56.098176359326\n    test 1131 line 126 azi2: 127.132203471256  FAILED, KNOWN, expected 127.132203471257\n    test 1132 line 126 lat2: -78.131053729786\n    test 1133 line 126 lon2: 56.098176359326\n    test 1134 line 126 azi2: 127.132203471257\n    test 1135 line 127 lat: -18.223027\n    test 1136 line 127 lon: 86.221345\n    test 1137 line 127 fb: 114.875019\n    test 1138 line 127 lat2: -18.223027345294\n    test 1139 line 127 lon2: 86.221345156045\n    test 1140 line 127 azi2: 114.875019395396\n    test 1141 line 127 lat2: -18.223027345294\n    test 1142 line 127 lon2: 86.221345156045\n    test 1143 line 127 azi2: 114.875019395396\n    test 1144 line 128 lat: -16.100413\n    test 1145 line 128 lon: 54.195260\n    test 1146 line 128 fb: 126.748474\n    test 1147 line 128 lat2: -16.100412777565\n    test 1148 line 128 lon2: 54.195259657284\n    test 1149 line 128 azi2: 126.748473963924\n    test 1150 line 128 lat2: -16.100412777565\n    test 1151 line 128 lon2: 54.195259657284\n    test 1152 line 128 azi2: 126.748473963924\n    test 1153 line 129 lat: -15.192944\n    test 1154 line 129 lon: 85.057605\n    test 1155 line 129 fb: 133.468781\n    test 1156 line 129 lat2: -15.192944143354\n    test 1157 line 129 lon2: 85.057605312625\n    test 1158 line 129 azi2: 133.468780913302\n    test 1159 line 129 lat2: -15.192944143354\n    test 1160 line 129 lon2: 85.057605312625\n    test 1161 line 129 azi2: 133.468780913302\n    test 1162 line 130 lat: -1.279757\n    test 1163 line 130 lon: 93.430943\n    test 1164 line 130 fb: 128.545662\n    test 1165 line 130 lat2: -1.279756550061\n    test 1166 line 130 lon2: 93.430943123745\n    test 1167 line 130 azi2: 128.545661704820\n    test 1168 line 130 lat2: -1.279756550061\n    test 1169 line 130 lon2: 93.430943123745\n    test 1170 line 130 azi2: 128.545661704820\n    test 1171 line 131 lat: -29.465713\n    test 1172 line 131 lon: 79.050046\n    test 1173 line 131 fb: 109.482097\n    test 1174 line 131 lat2: -29.465712645249\n    test 1175 line 131 lon2: 79.050045796725\n    test 1176 line 131 azi2: 109.482097420926\n    test 1177 line 131 lat2: -29.465712645249\n    test 1178 line 131 lon2: 79.050045796725\n    test 1179 line 131 azi2: 109.482097420926\n    test 1180 line 132 lat: 31.819596\n    test 1181 line 132 lon: 88.251997\n    test 1182 line 132 fb: 91.173935\n    test 1183 line 132 lat2: 31.819596255581\n    test 1184 line 132 lon2: 88.251997328019\n    test 1185 line 132 azi2: 91.173935030538\n    test 1186 line 132 lat2: 31.819596255581\n    test 1187 line 132 lon2: 88.251997328019\n    test 1188 line 132 azi2: 91.173935030538\n    test 1189 line 133 lat: -63.260477\n    test 1190 line 133 lon: 96.535465\n    test 1191 line 133 fb: 84.208873\n    test 1192 line 133 lat2: -63.260477387265\n    test 1193 line 133 lon2: 96.535465277415\n    test 1194 line 133 azi2: 84.208873088521\n    test 1195 line 133 lat2: -63.260477387265\n    test 1196 line 133 lon2: 96.535465277415\n    test 1197 line 133 azi2: 84.208873088521\n    test 1198 line 134 lat: 12.908849\n    test 1199 line 134 lon: 116.734308\n    test 1200 line 134 fb: 110.313866\n    test 1201 line 134 lat2: 12.908849199388\n    test 1202 line 134 lon2: 116.734308245854\n    test 1203 line 134 azi2: 110.313865884978\n    test 1204 line 134 lat2: 12.908849199388\n    test 1205 line 134 lon2: 116.734308245854\n    test 1206 line 134 azi2: 110.313865884978\n    test 1207 line 135 lat: -73.345839\n    test 1208 line 135 lon: 99.753937\n    test 1209 line 135 fb: 89.074642\n    test 1210 line 135 lat2: -73.345839080078\n    test 1211 line 135 lon2: 99.753937450114\n    test 1212 line 135 azi2: 89.074641755279\n    test 1213 line 135 lat2: -73.345839080078\n    test 1214 line 135 lon2: 99.753937450114\n    test 1215 line 135 azi2: 89.074641755279\n    test 1216 line 136 lat: -58.777033\n    test 1217 line 136 lon: 161.963990\n    test 1218 line 136 fb: 21.998889\n    test 1219 line 136 lat2: -58.777033293076\n    test 1220 line 136 lon2: 161.963989905489\n    test 1221 line 136 azi2: 21.998888971548\n    test 1222 line 136 lat2: -58.777033293076\n    test 1223 line 136 lon2: 161.963989905489\n    test 1224 line 136 azi2: 21.998888971548\n    test 1225 line 137 lat: 5.093069\n    test 1226 line 137 lon: 53.687921\n    test 1227 line 137 fb: 124.015842\n    test 1228 line 137 lat2: 5.093068996651\n    test 1229 line 137 lon2: 53.687921438754\n    test 1230 line 137 azi2: 124.015842231205\n    test 1231 line 137 lat2: 5.093068996651\n    test 1232 line 137 lon2: 53.687921438754\n    test 1233 line 137 azi2: 124.015842231205\n    test 1234 line 138 lat: 35.659489\n    test 1235 line 138 lon: 111.729315\n    test 1236 line 138 fb: 133.697281\n    test 1237 line 138 lat2: 35.659488664161\n    test 1238 line 138 lon2: 111.729315023485\n    test 1239 line 138 azi2: 133.697281357224\n    test 1240 line 138 lat2: 35.659488664161\n    test 1241 line 138 lon2: 111.729315023485\n    test 1242 line 138 azi2: 133.697281357224\n    test 1243 line 139 lat: -24.330784\n    test 1244 line 139 lon: 71.666568\n    test 1245 line 139 fb: 106.278062\n    test 1246 line 139 lat2: -24.330783755994\n    test 1247 line 139 lon2: 71.666567863169  FAILED, KNOWN, expected 71.666567863170\n    test 1248 line 139 azi2: 106.278062394907\n    test 1249 line 139 lat2: -24.330783755994\n    test 1250 line 139 lon2: 71.666567863170\n    test 1251 line 139 azi2: 106.278062394907\n    test 1252 line 140 lat: -46.218742\n    test 1253 line 140 lon: 91.580078\n    test 1254 line 140 fb: 106.279111\n    test 1255 line 140 lat2: -46.218742288678\n    test 1256 line 140 lon2: 91.580077788700\n    test 1257 line 140 azi2: 106.279110700398\n    test 1258 line 140 lat2: -46.218742288678\n    test 1259 line 140 lon2: 91.580077788700\n    test 1260 line 140 azi2: 106.279110700399  FAILED, KNOWN, expected 106.279110700398\n    test 1261 line 141 lat: 50.143353\n    test 1262 line 141 lon: 101.322503\n    test 1263 line 141 fb: 154.314496\n    test 1264 line 141 lat2: 50.143352562968\n    test 1265 line 141 lon2: 101.322502529615\n    test 1266 line 141 azi2: 154.314496467352\n    test 1267 line 141 lat2: 50.143352562968\n    test 1268 line 141 lon2: 101.322502529615\n    test 1269 line 141 azi2: 154.314496467352\n    test 1270 line 142 lat: -16.604376\n    test 1271 line 142 lon: 134.279201\n    test 1272 line 142 fb: 106.895990\n    test 1273 line 142 lat2: -16.604375537699\n    test 1274 line 142 lon2: 134.279201209117\n    test 1275 line 142 azi2: 106.895989785632\n    test 1276 line 142 lat2: -16.604375537699\n    test 1277 line 142 lon2: 134.279201209117\n    test 1278 line 142 azi2: 106.895989785632\n    test 1279 line 143 lat: 54.031290\n    test 1280 line 143 lon: 144.862702\n    test 1281 line 143 fb: 152.937010\n    test 1282 line 143 lat2: 54.031289901242\n    test 1283 line 143 lon2: 144.862701667601\n    test 1284 line 143 azi2: 152.937009701639\n    test 1285 line 143 lat2: 54.031289901242\n    test 1286 line 143 lon2: 144.862701667601\n    test 1287 line 143 azi2: 152.937009701639\n    test 1288 line 144 lat: 0.616911\n    test 1289 line 144 lon: 110.974662\n    test 1290 line 144 fb: 115.206118\n    test 1291 line 144 lat2: 0.616910921892\n    test 1292 line 144 lon2: 110.974662272005\n    test 1293 line 144 azi2: 115.206118431862\n    test 1294 line 144 lat2: 0.616910921892\n    test 1295 line 144 lon2: 110.974662272005\n    test 1296 line 144 azi2: 115.206118431862\n    test 1297 line 145 lat: -6.243779\n    test 1298 line 145 lon: 175.658895\n    test 1299 line 145 fb: 177.520147\n    test 1300 line 145 lat2: -6.243779047728\n    test 1301 line 145 lon2: 175.658894820006\n    test 1302 line 145 azi2: 177.520147377315\n    test 1303 line 145 lat2: -6.243779047728\n    test 1304 line 145 lon2: 175.658894820006\n    test 1305 line 145 azi2: 177.520147377315\n    test 1306 line 146 lat: -70.416699\n    test 1307 line 146 lon: 169.642468\n    test 1308 line 146 fb: 11.978943\n    test 1309 line 146 lat2: -70.416698815769\n    test 1310 line 146 lon2: 169.642468357274\n    test 1311 line 146 azi2: 11.978943348082\n    test 1312 line 146 lat2: -70.416698815769\n    test 1313 line 146 lon2: 169.642468357274\n    test 1314 line 146 azi2: 11.978943348082\n    test 1315 line 147 lat: 19.558617\n    test 1316 line 147 lon: 88.645709\n    test 1317 line 147 fb: 113.578814\n    test 1318 line 147 lat2: 19.558616692495\n    test 1319 line 147 lon2: 88.645708539223\n    test 1320 line 147 azi2: 113.578814362497\n    test 1321 line 147 lat2: 19.558616692495\n    test 1322 line 147 lon2: 88.645708539223\n    test 1323 line 147 azi2: 113.578814362497\n    test 1324 line 148 lat: -23.555114\n    test 1325 line 148 lon: 162.457529\n    test 1326 line 148 fb: 147.104331\n    test 1327 line 148 lat2: -23.555114207892\n    test 1328 line 148 lon2: 162.457529431664\n    test 1329 line 148 azi2: 147.104330772141\n    test 1330 line 148 lat2: -23.555114207892\n    test 1331 line 148 lon2: 162.457529431664\n    test 1332 line 148 azi2: 147.104330772141\n    test 1333 line 149 lat: -51.275738\n    test 1334 line 149 lon: 103.747943\n    test 1335 line 149 fb: 115.235374\n    test 1336 line 149 lat2: -51.275737933996\n    test 1337 line 149 lon2: 103.747943009536\n    test 1338 line 149 azi2: 115.235373813929\n    test 1339 line 149 lat2: -51.275737933996\n    test 1340 line 149 lon2: 103.747943009536\n    test 1341 line 149 azi2: 115.235373813929\n    test 1342 line 150 lat: 25.374602\n    test 1343 line 150 lon: 143.135783\n    test 1344 line 150 fb: 126.548735\n    test 1345 line 150 lat2: 25.374601552526\n    test 1346 line 150 lon2: 143.135783283239\n    test 1347 line 150 azi2: 126.548735117003\n    test 1348 line 150 lat2: 25.374601552526\n    test 1349 line 150 lon2: 143.135783283239\n    test 1350 line 150 azi2: 126.548735117003\n    test 1351 line 151 lat: 23.967825\n    test 1352 line 151 lon: 153.611116\n    test 1353 line 151 fb: 149.714116\n    test 1354 line 151 lat2: 23.967824782385\n    test 1355 line 151 lon2: 153.611115762587\n    test 1356 line 151 azi2: 149.714116426025\n    test 1357 line 151 lat2: 23.967824782385\n    test 1358 line 151 lon2: 153.611115762587\n    test 1359 line 151 azi2: 149.714116426025\n    test 1360 line 152 lat: -22.787507\n    test 1361 line 152 lon: 111.258647\n    test 1362 line 152 fb: 86.335100\n    test 1363 line 152 lat2: -22.787506689568\n    test 1364 line 152 lon2: 111.258646767306\n    test 1365 line 152 azi2: 86.335099650483\n    test 1366 line 152 lat2: -22.787506689568\n    test 1367 line 152 lon2: 111.258646767306\n    test 1368 line 152 azi2: 86.335099650483\n    test 1369 line 153 lat: -59.789842\n    test 1370 line 153 lon: 114.054983\n    test 1371 line 153 fb: 75.612605\n    test 1372 line 153 lat2: -59.789841532294\n    test 1373 line 153 lon2: 114.054983422255\n    test 1374 line 153 azi2: 75.612605242726\n    test 1375 line 153 lat2: -59.789841532294\n    test 1376 line 153 lon2: 114.054983422255\n    test 1377 line 153 azi2: 75.612605242726\n    test 1378 line 154 lat: -2.802505\n    test 1379 line 154 lon: 126.245955\n    test 1380 line 154 fb: 150.100576\n    test 1381 line 154 lat2: -2.802505438545\n    test 1382 line 154 lon2: 126.245955176418\n    test 1383 line 154 azi2: 150.100575968176\n    test 1384 line 154 lat2: -2.802505438545\n    test 1385 line 154 lon2: 126.245955176418\n    test 1386 line 154 azi2: 150.100575968176\n    test 1387 line 155 lat: 35.735653\n    test 1388 line 155 lon: 102.768725\n    test 1389 line 155 fb: 99.024702\n    test 1390 line 155 lat2: 35.735653026165\n    test 1391 line 155 lon2: 102.768725495110\n    test 1392 line 155 azi2: 99.024701978369\n    test 1393 line 155 lat2: 35.735653026165\n    test 1394 line 155 lon2: 102.768725495110\n    test 1395 line 155 azi2: 99.024701978369\n    test 1396 line 156 lat: 15.906682\n    test 1397 line 156 lon: 117.446654\n    test 1398 line 156 fb: 130.449965\n    test 1399 line 156 lat2: 15.906681603252\n    test 1400 line 156 lon2: 117.446653873860\n    test 1401 line 156 azi2: 130.449965412147\n    test 1402 line 156 lat2: 15.906681603252\n    test 1403 line 156 lon2: 117.446653873860\n    test 1404 line 156 azi2: 130.449965412147\n    test 1405 line 157 lat: -54.375988\n    test 1406 line 157 lon: 33.243363\n    test 1407 line 157 fb: 144.361175\n    test 1408 line 157 lat2: -54.375987804166\n    test 1409 line 157 lon2: 33.243362594038\n    test 1410 line 157 azi2: 144.361175098783\n    test 1411 line 157 lat2: -54.375987804166\n    test 1412 line 157 lon2: 33.243362594038\n    test 1413 line 157 azi2: 144.361175098783\n    test 1414 line 158 lat: 3.588251\n    test 1415 line 158 lon: 156.659583\n    test 1416 line 158 fb: 112.153293\n    test 1417 line 158 lat2: 3.588250783960\n    test 1418 line 158 lon2: 156.659583234995\n    test 1419 line 158 azi2: 112.153293017228\n    test 1420 line 158 lat2: 3.588250783960\n    test 1421 line 158 lon2: 156.659583234995\n    test 1422 line 158 azi2: 112.153293017228\n    test 1423 line 159 lat: -51.719977\n    test 1424 line 159 lon: 134.141061\n    test 1425 line 159 fb: 129.170451\n    test 1426 line 159 lat2: -51.719977004790\n    test 1427 line 159 lon2: 134.141060992499\n    test 1428 line 159 azi2: 129.170451102958\n    test 1429 line 159 lat2: -51.719977004790\n    test 1430 line 159 lon2: 134.141060992499\n    test 1431 line 159 azi2: 129.170451102958\n    test 1432 line 160 lat: 22.935153\n    test 1433 line 160 lon: 109.461291\n    test 1434 line 160 fb: 120.676556\n    test 1435 line 160 lat2: 22.935153219965\n    test 1436 line 160 lon2: 109.461291078917\n    test 1437 line 160 azi2: 120.676555897336\n    test 1438 line 160 lat2: 22.935153219965\n    test 1439 line 160 lon2: 109.461291078917\n    test 1440 line 160 azi2: 120.676555897336\n    test 1441 line 161 lat: -5.314690\n    test 1442 line 161 lon: 70.995225\n    test 1443 line 161 fb: 129.681273\n    test 1444 line 161 lat2: -5.314689990173\n    test 1445 line 161 lon2: 70.995224692450\n    test 1446 line 161 azi2: 129.681272635794\n    test 1447 line 161 lat2: -5.314689990173\n    test 1448 line 161 lon2: 70.995224692450\n    test 1449 line 161 azi2: 129.681272635794\n    test 1450 line 162 lat: 49.147134\n    test 1451 line 162 lon: 16.182514\n    test 1452 line 162 fb: 38.926644\n    test 1453 line 162 lat2: 49.147133873971\n    test 1454 line 162 lon2: 16.182514450690\n    test 1455 line 162 azi2: 38.926644196248\n    test 1456 line 162 lat2: 49.147133873971\n    test 1457 line 162 lon2: 16.182514450690\n    test 1458 line 162 azi2: 38.926644196248\n    test 1459 line 163 lat: -55.079363\n    test 1460 line 163 lon: 93.170898\n    test 1461 line 163 fb: 97.017492\n    test 1462 line 163 lat2: -55.079363368717\n    test 1463 line 163 lon2: 93.170898482121\n    test 1464 line 163 azi2: 97.017491592293\n    test 1465 line 163 lat2: -55.079363368717\n    test 1466 line 163 lon2: 93.170898482121\n    test 1467 line 163 azi2: 97.017491592293\n    test 1468 line 164 lat: 26.410771\n    test 1469 line 164 lon: 109.934003\n    test 1470 line 164 fb: 103.660846\n    test 1471 line 164 lat2: 26.410770923895\n    test 1472 line 164 lon2: 109.934003168641\n    test 1473 line 164 azi2: 103.660846029906\n    test 1474 line 164 lat2: 26.410770923895\n    test 1475 line 164 lon2: 109.934003168641\n    test 1476 line 164 azi2: 103.660846029906\n    test 1477 line 165 lat: -2.539670\n    test 1478 line 165 lon: 138.682325\n    test 1479 line 165 fb: 100.016568\n    test 1480 line 165 lat2: -2.539669792389\n    test 1481 line 165 lon2: 138.682325493918\n    test 1482 line 165 azi2: 100.016568432752\n    test 1483 line 165 lat2: -2.539669792389\n    test 1484 line 165 lon2: 138.682325493918\n    test 1485 line 165 azi2: 100.016568432752\n    test 1486 line 166 lat: 10.563299\n    test 1487 line 166 lon: 50.532119\n    test 1488 line 166 fb: 126.356066\n    test 1489 line 166 lat2: 10.563299452649\n    test 1490 line 166 lon2: 50.532119480076\n    test 1491 line 166 azi2: 126.356065708364\n    test 1492 line 166 lat2: 10.563299452649\n    test 1493 line 166 lon2: 50.532119480076\n    test 1494 line 166 azi2: 126.356065708364\n    test 1495 line 167 lat: 51.443871\n    test 1496 line 167 lon: 88.799162\n    test 1497 line 167 fb: 145.239198\n    test 1498 line 167 lat2: 51.443871023711\n    test 1499 line 167 lon2: 88.799161779253\n    test 1500 line 167 azi2: 145.239198135633\n    test 1501 line 167 lat2: 51.443871023711\n    test 1502 line 167 lon2: 88.799161779253\n    test 1503 line 167 azi2: 145.239198135632  FAILED, KNOWN, expected 145.239198135633\n    test 1504 line 168 lat: -80.240756\n    test 1505 line 168 lon: 170.591261\n    test 1506 line 168 fb: 19.402427\n    test 1507 line 168 lat2: -80.240756380896\n    test 1508 line 168 lon2: 170.591260542730\n    test 1509 line 168 azi2: 19.402427357239\n    test 1510 line 168 lat2: -80.240756380896\n    test 1511 line 168 lon2: 170.591260542730\n    test 1512 line 168 azi2: 19.402427357239\n    test 1513 line 169 lat: 51.976040\n    test 1514 line 169 lon: 165.045244\n    test 1515 line 169 fb: 167.962110\n    test 1516 line 169 lat2: 51.976039799074\n    test 1517 line 169 lon2: 165.045244285456\n    test 1518 line 169 azi2: 167.962110268433\n    test 1519 line 169 lat2: 51.976039799074\n    test 1520 line 169 lon2: 165.045244285456\n    test 1521 line 169 azi2: 167.962110268433\n    test 1522 line 170 lat: 29.365655\n    test 1523 line 170 lon: 91.354349\n    test 1524 line 170 fb: 135.101279\n    test 1525 line 170 lat2: 29.365654873524\n    test 1526 line 170 lon2: 91.354349089561\n    test 1527 line 170 azi2: 135.101278715212\n    test 1528 line 170 lat2: 29.365654873524\n    test 1529 line 170 lon2: 91.354349089561\n    test 1530 line 170 azi2: 135.101278715212\n    test 1531 line 171 lat: 61.745486\n    test 1532 line 171 lon: 142.333199\n    test 1533 line 171 fb: 139.666209\n    test 1534 line 171 lat2: 61.745485817368\n    test 1535 line 171 lon2: 142.333198773096\n    test 1536 line 171 azi2: 139.666208757008\n    test 1537 line 171 lat2: 61.745485817368\n    test 1538 line 171 lon2: 142.333198773096\n    test 1539 line 171 azi2: 139.666208757008\n    test 1540 line 172 lat: 13.414523\n    test 1541 line 172 lon: 39.322993\n    test 1542 line 172 fb: 144.276516\n    test 1543 line 172 lat2: 13.414522997032\n    test 1544 line 172 lon2: 39.322992706733\n    test 1545 line 172 azi2: 144.276515542083\n    test 1546 line 172 lat2: 13.414522997032\n    test 1547 line 172 lon2: 39.322992706733\n    test 1548 line 172 azi2: 144.276515542083\n    test 1549 line 173 lat: -49.831353\n    test 1550 line 173 lon: 72.426738\n    test 1551 line 173 fb: 126.251620\n    test 1552 line 173 lat2: -49.831353332108\n    test 1553 line 173 lon2: 72.426737728887\n    test 1554 line 173 azi2: 126.251620412456\n    test 1555 line 173 lat2: -49.831353332108\n    test 1556 line 173 lon2: 72.426737728887\n    test 1557 line 173 azi2: 126.251620412456\n    test 1558 line 174 lat: 1.822589\n    test 1559 line 174 lon: 53.589208\n    test 1560 line 174 fb: 97.925176\n    test 1561 line 174 lat2: 1.822589208021\n    test 1562 line 174 lon2: 53.589207810481\n    test 1563 line 174 azi2: 97.925176229124\n    test 1564 line 174 lat2: 1.822589208021\n    test 1565 line 174 lon2: 53.589207810481\n    test 1566 line 174 azi2: 97.925176229124\n    test 1567 line 175 lat: -7.987194\n    test 1568 line 175 lon: 49.318809\n    test 1569 line 175 fb: 128.386595\n    test 1570 line 175 lat2: -7.987193900849\n    test 1571 line 175 lon2: 49.318809304076\n    test 1572 line 175 azi2: 128.386594768748\n    test 1573 line 175 lat2: -7.987193900849\n    test 1574 line 175 lon2: 49.318809304075  FAILED, KNOWN, expected 49.318809304076\n    test 1575 line 175 azi2: 128.386594768748\n    test 1576 line 176 lat: -56.807375\n    test 1577 line 176 lon: 4.521802\n    test 1578 line 176 fb: 176.806063\n    test 1579 line 176 lat2: -56.807375049864\n    test 1580 line 176 lon2: 4.521801986353\n    test 1581 line 176 azi2: 176.806062785470\n    test 1582 line 176 lat2: -56.807375049864\n    test 1583 line 176 lon2: 4.521801986353\n    test 1584 line 176 azi2: 176.806062785470\n    test 1585 line 177 lat: -25.969834\n    test 1586 line 177 lon: 64.903749\n    test 1587 line 177 fb: 124.103844\n    test 1588 line 177 lat2: -25.969833883721\n    test 1589 line 177 lon2: 64.903749477059\n    test 1590 line 177 azi2: 124.103844353942\n    test 1591 line 177 lat2: -25.969833883721\n    test 1592 line 177 lon2: 64.903749477059\n    test 1593 line 177 azi2: 124.103844353942\n    test 1594 line 178 lat: 32.807360\n    test 1595 line 178 lon: 65.107962\n    test 1596 line 178 fb: 124.577990\n    test 1597 line 178 lat2: 32.807359742667\n    test 1598 line 178 lon2: 65.107961864983\n    test 1599 line 178 azi2: 124.577990419073\n    test 1600 line 178 lat2: 32.807359742667\n    test 1601 line 178 lon2: 65.107961864983\n    test 1602 line 178 azi2: 124.577990419073\n    test 1603 line 179 lat: -21.552138\n    test 1604 line 179 lon: 102.466022\n    test 1605 line 179 fb: 109.640197\n    test 1606 line 179 lat2: -21.552137872353\n    test 1607 line 179 lon2: 102.466021945025\n    test 1608 line 179 azi2: 109.640197455958\n    test 1609 line 179 lat2: -21.552137872353\n    test 1610 line 179 lon2: 102.466021945025\n    test 1611 line 179 azi2: 109.640197455958\n    test 1612 line 180 lat: -26.271741\n    test 1613 line 180 lon: 158.321581\n    test 1614 line 180 fb: 165.993649\n    test 1615 line 180 lat2: -26.271741383677\n    test 1616 line 180 lon2: 158.321581345077\n    test 1617 line 180 azi2: 165.993649158304  FAILED, KNOWN, expected 165.993649158305\n    test 1618 line 180 lat2: -26.271741383677\n    test 1619 line 180 lon2: 158.321581345077\n    test 1620 line 180 azi2: 165.993649158304  FAILED, KNOWN, expected 165.993649158305\n    test 1621 line 181 lat: 41.023069\n    test 1622 line 181 lon: 155.562542\n    test 1623 line 181 fb: 153.407414\n    test 1624 line 181 lat2: 41.023069113496\n    test 1625 line 181 lon2: 155.562542134179\n    test 1626 line 181 azi2: 153.407413608014\n    test 1627 line 181 lat2: 41.023069113496\n    test 1628 line 181 lon2: 155.562542134179\n    test 1629 line 181 azi2: 153.407413608014\n    test 1630 line 182 lat: 16.445471\n    test 1631 line 182 lon: 165.261461\n    test 1632 line 182 fb: 165.424806\n    test 1633 line 182 lat2: 16.445470954340\n    test 1634 line 182 lon2: 165.261461448873\n    test 1635 line 182 azi2: 165.424806257119\n    test 1636 line 182 lat2: 16.445470954340\n    test 1637 line 182 lon2: 165.261461448873\n    test 1638 line 182 azi2: 165.424806257119\n    test 1639 line 183 lat: -3.222107\n    test 1640 line 183 lon: 84.129727\n    test 1641 line 183 fb: 154.083851\n    test 1642 line 183 lat2: -3.222107095788\n    test 1643 line 183 lon2: 84.129726900596\n    test 1644 line 183 azi2: 154.083851495688\n    test 1645 line 183 lat2: -3.222107095788\n    test 1646 line 183 lon2: 84.129726900596\n    test 1647 line 183 azi2: 154.083851495688\n    test 1648 line 184 lat: 7.811710\n    test 1649 line 184 lon: 123.143308\n    test 1650 line 184 fb: 123.998106\n    test 1651 line 184 lat2: 7.811709739638\n    test 1652 line 184 lon2: 123.143308309660\n    test 1653 line 184 azi2: 123.998105582525\n    test 1654 line 184 lat2: 7.811709739638\n    test 1655 line 184 lon2: 123.143308309660\n    test 1656 line 184 azi2: 123.998105582525\n    test 1657 line 185 lat: -45.235922\n    test 1658 line 185 lon: 129.419283\n    test 1659 line 185 fb: 91.493406\n    test 1660 line 185 lat2: -45.235922276879\n    test 1661 line 185 lon2: 129.419282696458\n    test 1662 line 185 azi2: 91.493405946969  FAILED, KNOWN, expected 91.493405946970\n    test 1663 line 185 lat2: -45.235922276879\n    test 1664 line 185 lon2: 129.419282696458\n    test 1665 line 185 azi2: 91.493405946970\n    test 1666 line 186 lat: -43.047563\n    test 1667 line 186 lon: 121.565541\n    test 1668 line 186 fb: 99.850543\n    test 1669 line 186 lat2: -43.047563118772\n    test 1670 line 186 lon2: 121.565540573788\n    test 1671 line 186 azi2: 99.850542926816\n    test 1672 line 186 lat2: -43.047563118772\n    test 1673 line 186 lon2: 121.565540573788\n    test 1674 line 186 azi2: 99.850542926816\n    test 1675 line 187 lat: -22.881002\n    test 1676 line 187 lon: 159.765030\n    test 1677 line 187 fb: 60.474878\n    test 1678 line 187 lat2: -22.881001889671\n    test 1679 line 187 lon2: 159.765030106650\n    test 1680 line 187 azi2: 60.474878214384\n    test 1681 line 187 lat2: -22.881001889671\n    test 1682 line 187 lon2: 159.765030106650\n    test 1683 line 187 azi2: 60.474878214384\n    test 1684 line 188 lat: -15.011946\n    test 1685 line 188 lon: 55.594746\n    test 1686 line 188 fb: 121.838839\n    test 1687 line 188 lat2: -15.011946251300\n    test 1688 line 188 lon2: 55.594746074667\n    test 1689 line 188 azi2: 121.838839080255\n    test 1690 line 188 lat2: -15.011946251300\n    test 1691 line 188 lon2: 55.594746074667\n    test 1692 line 188 azi2: 121.838839080255\n    test 1693 line 189 lat: -29.011142\n    test 1694 line 189 lon: 0.856639\n    test 1695 line 189 fb: 178.744943\n    test 1696 line 189 lat2: -29.011142183887\n    test 1697 line 189 lon2: 0.856639457160\n    test 1698 line 189 azi2: 178.744943180805\n    test 1699 line 189 lat2: -29.011142183887\n    test 1700 line 189 lon2: 0.856639457160\n    test 1701 line 189 azi2: 178.744943180805\n    test 1702 line 190 lat: -0.353001\n    test 1703 line 190 lon: 48.401255\n    test 1704 line 190 fb: 95.612551\n    test 1705 line 190 lat2: -0.353000909367\n    test 1706 line 190 lon2: 48.401254652487\n    test 1707 line 190 azi2: 95.612551044908\n    test 1708 line 190 lat2: -0.353000909367\n    test 1709 line 190 lon2: 48.401254652487\n    test 1710 line 190 azi2: 95.612551044908\n    test 1711 line 191 lat: 18.843341\n    test 1712 line 191 lon: 105.405456\n    test 1713 line 191 fb: 145.215722\n    test 1714 line 191 lat2: 18.843340962664\n    test 1715 line 191 lon2: 105.405456105476\n    test 1716 line 191 azi2: 145.215722323742\n    test 1717 line 191 lat2: 18.843340962664\n    test 1718 line 191 lon2: 105.405456105476\n    test 1719 line 191 azi2: 145.215722323742\n    test 1720 line 192 lat: 19.672225\n    test 1721 line 192 lon: 64.132980\n    test 1722 line 192 fb: 131.894863\n    test 1723 line 192 lat2: 19.672224913225\n    test 1724 line 192 lon2: 64.132979510420\n    test 1725 line 192 azi2: 131.894863434272\n    test 1726 line 192 lat2: 19.672224913225\n    test 1727 line 192 lon2: 64.132979510420\n    test 1728 line 192 azi2: 131.894863434272\n    test 1729 line 193 lat: -44.315074\n    test 1730 line 193 lon: 132.711860\n    test 1731 line 193 fb: 57.236875\n    test 1732 line 193 lat2: -44.315073617889\n    test 1733 line 193 lon2: 132.711860436437\n    test 1734 line 193 azi2: 57.236875169148\n    test 1735 line 193 lat2: -44.315073617889\n    test 1736 line 193 lon2: 132.711860436437\n    test 1737 line 193 azi2: 57.236875169148\n    test 1738 line 194 lat: 71.956294\n    test 1739 line 194 lon: 23.707587\n    test 1740 line 194 fb: 28.235947\n    test 1741 line 194 lat2: 71.956293555096\n    test 1742 line 194 lon2: 23.707587498943\n    test 1743 line 194 azi2: 28.235946630177\n    test 1744 line 194 lat2: 71.956293555096\n    test 1745 line 194 lon2: 23.707587498943\n    test 1746 line 194 azi2: 28.235946630177\n    test 1747 line 195 lat: -1.372652\n    test 1748 line 195 lon: 37.704231\n    test 1749 line 195 fb: 92.737862\n    test 1750 line 195 lat2: -1.372652195171\n    test 1751 line 195 lon2: 37.704230798676\n    test 1752 line 195 azi2: 92.737862264368\n    test 1753 line 195 lat2: -1.372652195171\n    test 1754 line 195 lon2: 37.704230798676\n    test 1755 line 195 azi2: 92.737862264368\n    test 1756 line 196 lat: 32.377148\n    test 1757 line 196 lon: 148.638709\n    test 1758 line 196 fb: 164.415210\n    test 1759 line 196 lat2: 32.377147634362\n    test 1760 line 196 lon2: 148.638709383249\n    test 1761 line 196 azi2: 164.415210005459\n    test 1762 line 196 lat2: 32.377147634362\n    test 1763 line 196 lon2: 148.638709383249\n    test 1764 line 196 azi2: 164.415210005459\n    test 1765 line 197 lat: 77.876832\n    test 1766 line 197 lon: 86.074591\n    test 1767 line 197 fb: 93.017705\n    test 1768 line 197 lat2: 77.876831887051\n    test 1769 line 197 lon2: 86.074590642864\n    test 1770 line 197 azi2: 93.017704501543\n    test 1771 line 197 lat2: 77.876831887051\n    test 1772 line 197 lon2: 86.074590642864\n    test 1773 line 197 azi2: 93.017704501543\n    test 1774 line 198 lat: -7.405195\n    test 1775 line 198 lon: 11.962469\n    test 1776 line 198 fb: 123.788484\n    test 1777 line 198 lat2: -7.405194804958\n    test 1778 line 198 lon2: 11.962468510681\n    test 1779 line 198 azi2: 123.788484407208\n    test 1780 line 198 lat2: -7.405194804958\n    test 1781 line 198 lon2: 11.962468510681\n    test 1782 line 198 azi2: 123.788484407208\n    test 1783 line 199 lat: -75.001311\n    test 1784 line 199 lon: 173.334144\n    test 1785 line 199 fb: 8.916523\n    test 1786 line 199 lat2: -75.001310556015\n    test 1787 line 199 lon2: 173.334144385512\n    test 1788 line 199 azi2: 8.916523271572\n    test 1789 line 199 lat2: -75.001310556015\n    test 1790 line 199 lon2: 173.334144385512\n    test 1791 line 199 azi2: 8.916523271572\n    test 1792 line 200 lat: -33.145967\n    test 1793 line 200 lon: 32.349241\n    test 1794 line 200 fb: 154.035798\n    test 1795 line 200 lat2: -33.145966631435\n    test 1796 line 200 lon2: 32.349240627001\n    test 1797 line 200 azi2: 154.035798269631\n    test 1798 line 200 lat2: -33.145966631435\n    test 1799 line 200 lon2: 32.349240627001\n    test 1800 line 200 azi2: 154.035798269631\n    test 1801 line 201 lat: 32.938605\n    test 1802 line 201 lon: 98.042857\n    test 1803 line 201 fb: 124.954750\n    test 1804 line 201 lat2: 32.938605083648\n    test 1805 line 201 lon2: 98.042857137838\n    test 1806 line 201 azi2: 124.954750401990\n    test 1807 line 201 lat2: 32.938605083648\n    test 1808 line 201 lon2: 98.042857137838\n    test 1809 line 201 azi2: 124.954750401990\n    test 1810 line 202 lat: 18.924315\n    test 1811 line 202 lon: 20.712136\n    test 1812 line 202 fb: 118.058457\n    test 1813 line 202 lat2: 18.924314631117\n    test 1814 line 202 lon2: 20.712135699713\n    test 1815 line 202 azi2: 118.058457437327\n    test 1816 line 202 lat2: 18.924314631117\n    test 1817 line 202 lon2: 20.712135699713\n    test 1818 line 202 azi2: 118.058457437327\n    test 1819 line 203 lat: 34.281652\n    test 1820 line 203 lon: 66.815398\n    test 1821 line 203 fb: 147.693080\n    test 1822 line 203 lat2: 34.281652047931\n    test 1823 line 203 lon2: 66.815398066147\n    test 1824 line 203 azi2: 147.693079659533\n    test 1825 line 203 lat2: 34.281652047931\n    test 1826 line 203 lon2: 66.815398066147\n    test 1827 line 203 azi2: 147.693079659533\n    test 1828 line 204 lat: -56.830635\n    test 1829 line 204 lon: 2.137046\n    test 1830 line 204 fb: 178.041562\n    test 1831 line 204 lat2: -56.830634769513\n    test 1832 line 204 lon2: 2.137046322217\n    test 1833 line 204 azi2: 178.041562126305\n    test 1834 line 204 lat2: -56.830634769513\n    test 1835 line 204 lon2: 2.137046322217\n    test 1836 line 204 azi2: 178.041562126305\n    test 1837 line 205 lat: -68.481893\n    test 1838 line 205 lon: 107.036720\n    test 1839 line 205 fb: 152.384477\n    test 1840 line 205 lat2: -68.481892540174\n    test 1841 line 205 lon2: 107.036720123074\n    test 1842 line 205 azi2: 152.384476595412\n    test 1843 line 205 lat2: -68.481892540174\n    test 1844 line 205 lon2: 107.036720123074\n    test 1845 line 205 azi2: 152.384476595412\n    test 1846 line 206 lat: -22.502042\n    test 1847 line 206 lon: 171.827566\n    test 1848 line 206 fb: 158.834328\n    test 1849 line 206 lat2: -22.502042312255\n    test 1850 line 206 lon2: 171.827566033608\n    test 1851 line 206 azi2: 158.834327972407\n    test 1852 line 206 lat2: -22.502042312255\n    test 1853 line 206 lon2: 171.827566033608\n    test 1854 line 206 azi2: 158.834327972407\n    test 1855 line 207 lat: -4.504199\n    test 1856 line 207 lon: 138.544338\n    test 1857 line 207 fb: 123.633526\n    test 1858 line 207 lat2: -4.504199404775\n    test 1859 line 207 lon2: 138.544338028736\n    test 1860 line 207 azi2: 123.633526406205\n    test 1861 line 207 lat2: -4.504199404775\n    test 1862 line 207 lon2: 138.544338028736\n    test 1863 line 207 azi2: 123.633526406205\n    test 1864 line 208 lat: -9.226343\n    test 1865 line 208 lon: 120.310050\n    test 1866 line 208 fb: 142.789186\n    test 1867 line 208 lat2: -9.226343110712\n    test 1868 line 208 lon2: 120.310050148004\n    test 1869 line 208 azi2: 142.789186422068\n    test 1870 line 208 lat2: -9.226343110712\n    test 1871 line 208 lon2: 120.310050148004\n    test 1872 line 208 azi2: 142.789186422068\n    test 1873 line 209 lat: -51.684044\n    test 1874 line 209 lon: 137.764140\n    test 1875 line 209 fb: 56.844891\n    test 1876 line 209 lat2: -51.684044075582\n    test 1877 line 209 lon2: 137.764139808689\n    test 1878 line 209 azi2: 56.844890846790\n    test 1879 line 209 lat2: -51.684044075582\n    test 1880 line 209 lon2: 137.764139808689\n    test 1881 line 209 azi2: 56.844890846790\n    test 1882 line 210 lat: 19.467357\n    test 1883 line 210 lon: 93.870087\n    test 1884 line 210 fb: 129.125491\n    test 1885 line 210 lat2: 19.467357090193\n    test 1886 line 210 lon2: 93.870087361293\n    test 1887 line 210 azi2: 129.125490840370\n    test 1888 line 210 lat2: 19.467357090193\n    test 1889 line 210 lon2: 93.870087361293\n    test 1890 line 210 azi2: 129.125490840370\n    test 1891 line 211 lat: 33.594608\n    test 1892 line 211 lon: 58.324143\n    test 1893 line 211 fb: 101.975372\n    test 1894 line 211 lat2: 33.594607695347\n    test 1895 line 211 lon2: 58.324143410893\n    test 1896 line 211 azi2: 101.975372004111\n    test 1897 line 211 lat2: 33.594607695347\n    test 1898 line 211 lon2: 58.324143410893\n    test 1899 line 211 azi2: 101.975372004111\n    test 1900 line 212 lat: -1.184701\n    test 1901 line 212 lon: 92.834285\n    test 1902 line 212 fb: 134.201097\n    test 1903 line 212 lat2: -1.184701423910\n    test 1904 line 212 lon2: 92.834285031504\n    test 1905 line 212 azi2: 134.201097217000\n    test 1906 line 212 lat2: -1.184701423910\n    test 1907 line 212 lon2: 92.834285031504\n    test 1908 line 212 azi2: 134.201097217000\n    test 1909 line 213 lat: 5.878639\n    test 1910 line 213 lon: 90.756173\n    test 1911 line 213 fb: 156.936699\n    test 1912 line 213 lat2: 5.878638801092\n    test 1913 line 213 lon2: 90.756172727682\n    test 1914 line 213 azi2: 156.936698928215\n    test 1915 line 213 lat2: 5.878638801092\n    test 1916 line 213 lon2: 90.756172727682\n    test 1917 line 213 azi2: 156.936698928215\n    test 1918 line 214 lat: 47.611646\n    test 1919 line 214 lon: 131.482218\n    test 1920 line 214 fb: 152.077667\n    test 1921 line 214 lat2: 47.611646039058\n    test 1922 line 214 lon2: 131.482217984255\n    test 1923 line 214 azi2: 152.077667341138\n    test 1924 line 214 lat2: 47.611646039058\n    test 1925 line 214 lon2: 131.482217984255\n    test 1926 line 214 azi2: 152.077667341138\n    test 1927 line 215 lat: 13.906234\n    test 1928 line 215 lon: 115.526238\n    test 1929 line 215 fb: 130.769627\n    test 1930 line 215 lat2: 13.906233945801\n    test 1931 line 215 lon2: 115.526238064488\n    test 1932 line 215 azi2: 130.769627488545\n    test 1933 line 215 lat2: 13.906233945801\n    test 1934 line 215 lon2: 115.526238064488\n    test 1935 line 215 azi2: 130.769627488545\n    test 1936 line 216 lat: 3.675485\n    test 1937 line 216 lon: 80.781862\n    test 1938 line 216 fb: 94.188426\n    test 1939 line 216 lat2: 3.675485213596\n    test 1940 line 216 lon2: 80.781861923838\n    test 1941 line 216 azi2: 94.188426367881\n    test 1942 line 216 lat2: 3.675485213596\n    test 1943 line 216 lon2: 80.781861923838\n    test 1944 line 216 azi2: 94.188426367881\n    test 1945 line 217 lat: 68.665600\n    test 1946 line 217 lon: 21.503123\n    test 1947 line 217 fb: 107.667810\n    test 1948 line 217 lat2: 68.665599857810\n    test 1949 line 217 lon2: 21.503123449290\n    test 1950 line 217 azi2: 107.667809564608\n    test 1951 line 217 lat2: 68.665599857810\n    test 1952 line 217 lon2: 21.503123449290\n    test 1953 line 217 azi2: 107.667809564608\n    test 1954 line 218 lat: -60.791732\n    test 1955 line 218 lon: 82.476063\n    test 1956 line 218 fb: 117.665953\n    test 1957 line 218 lat2: -60.791732218314\n    test 1958 line 218 lon2: 82.476062801971\n    test 1959 line 218 azi2: 117.665952598924\n    test 1960 line 218 lat2: -60.791732218314\n    test 1961 line 218 lon2: 82.476062801971\n    test 1962 line 218 azi2: 117.665952598924\n    test 1963 line 219 lat: -33.122376\n    test 1964 line 219 lon: 89.871476\n    test 1965 line 219 fb: 124.068098\n    test 1966 line 219 lat2: -33.122375734012\n    test 1967 line 219 lon2: 89.871476211443\n    test 1968 line 219 azi2: 124.068098444465\n    test 1969 line 219 lat2: -33.122375734012\n    test 1970 line 219 lon2: 89.871476211443\n    test 1971 line 219 azi2: 124.068098444465\n    test 1972 line 220 lat: -34.085934\n    test 1973 line 220 lon: 117.886549\n    test 1974 line 220 fb: 93.366647\n    test 1975 line 220 lat2: -34.085934037207\n    test 1976 line 220 lon2: 117.886548615401\n    test 1977 line 220 azi2: 93.366647127153\n    test 1978 line 220 lat2: -34.085934037207\n    test 1979 line 220 lon2: 117.886548615401\n    test 1980 line 220 azi2: 93.366647127153\n    test 1981 line 221 lat: -43.746811\n    test 1982 line 221 lon: 107.199939\n    test 1983 line 221 fb: 101.218435\n    test 1984 line 221 lat2: -43.746811413059\n    test 1985 line 221 lon2: 107.199938541143\n    test 1986 line 221 azi2: 101.218434581373\n    test 1987 line 221 lat2: -43.746811413059\n    test 1988 line 221 lon2: 107.199938541143\n    test 1989 line 221 azi2: 101.218434581373\n    test 1990 line 222 lat: -44.514857\n    test 1991 line 222 lon: 19.560361\n    test 1992 line 222 fb: 166.449925\n    test 1993 line 222 lat2: -44.514857277517\n    test 1994 line 222 lon2: 19.560360617266\n    test 1995 line 222 azi2: 166.449925135617\n    test 1996 line 222 lat2: -44.514857277517\n    test 1997 line 222 lon2: 19.560360617266\n    test 1998 line 222 azi2: 166.449925135617\n    test 1999 line 223 lat: -18.049262\n    test 2000 line 223 lon: 42.099193\n    test 2001 line 223 fb: 158.127141\n    test 2002 line 223 lat2: -18.049261796697\n    test 2003 line 223 lon2: 42.099193394607\n    test 2004 line 223 azi2: 158.127140901909\n    test 2005 line 223 lat2: -18.049261796697\n    test 2006 line 223 lon2: 42.099193394607\n    test 2007 line 223 azi2: 158.127140901909\n    test 2008 line 224 lat: 9.832902\n    test 2009 line 224 lon: 51.448057\n    test 2010 line 224 fb: 114.348703\n    test 2011 line 224 lat2: 9.832901687662\n    test 2012 line 224 lon2: 51.448057387281\n    test 2013 line 224 azi2: 114.348702917675\n    test 2014 line 224 lat2: 9.832901687662\n    test 2015 line 224 lon2: 51.448057387281\n    test 2016 line 224 azi2: 114.348702917675\n    test 2017 line 225 lat: -57.516443\n    test 2018 line 225 lon: 64.700933\n    test 2019 line 225 fb: 137.459801\n    test 2020 line 225 lat2: -57.516443280706\n    test 2021 line 225 lon2: 64.700933124813\n    test 2022 line 225 azi2: 137.459801078685\n    test 2023 line 225 lat2: -57.516443280706\n    test 2024 line 225 lon2: 64.700933124813\n    test 2025 line 225 azi2: 137.459801078685\n    test 2026 line 226 lat: -23.072600\n    test 2027 line 226 lon: 95.392602\n    test 2028 line 226 fb: 140.119143\n    test 2029 line 226 lat2: -23.072599811854\n    test 2030 line 226 lon2: 95.392601883769\n    test 2031 line 226 azi2: 140.119143469104\n    test 2032 line 226 lat2: -23.072599811854\n    test 2033 line 226 lon2: 95.392601883769\n    test 2034 line 226 azi2: 140.119143469104\n    test 2035 line 227 lat: -45.117254\n    test 2036 line 227 lon: 97.361647\n    test 2037 line 227 fb: 97.339041\n    test 2038 line 227 lat2: -45.117253614100\n    test 2039 line 227 lon2: 97.361647352714\n    test 2040 line 227 azi2: 97.339040559115\n    test 2041 line 227 lat2: -45.117253614100\n    test 2042 line 227 lon2: 97.361647352714\n    test 2043 line 227 azi2: 97.339040559115\n    test 2044 line 228 lat: -11.277328\n    test 2045 line 228 lon: 19.602358\n    test 2046 line 228 fb: 156.779730\n    test 2047 line 228 lat2: -11.277328262947\n    test 2048 line 228 lon2: 19.602358024471\n    test 2049 line 228 azi2: 156.779729902321\n    test 2050 line 228 lat2: -11.277328262947\n    test 2051 line 228 lon2: 19.602358024471\n    test 2052 line 228 azi2: 156.779729902321\n    test 2053 line 229 lat: -4.823524\n    test 2054 line 229 lon: 164.626842\n    test 2055 line 229 fb: 151.314797\n    test 2056 line 229 lat2: -4.823524348693\n    test 2057 line 229 lon2: 164.626841855534\n    test 2058 line 229 azi2: 151.314796841238\n    test 2059 line 229 lat2: -4.823524348693\n    test 2060 line 229 lon2: 164.626841855534\n    test 2061 line 229 azi2: 151.314796841238\n    test 2062 line 230 lat: 36.317088\n    test 2063 line 230 lon: 89.326155\n    test 2064 line 230 fb: 94.589052\n    test 2065 line 230 lat2: 36.317087922282\n    test 2066 line 230 lon2: 89.326155365943\n    test 2067 line 230 azi2: 94.589051951235\n    test 2068 line 230 lat2: 36.317087922282\n    test 2069 line 230 lon2: 89.326155365943\n    test 2070 line 230 azi2: 94.589051951235\n    test 2071 line 231 lat: 3.975433\n    test 2072 line 231 lon: 105.460359\n    test 2073 line 231 fb: 126.257925\n    test 2074 line 231 lat2: 3.975432760073\n    test 2075 line 231 lon2: 105.460358584149\n    test 2076 line 231 azi2: 126.257925455058\n    test 2077 line 231 lat2: 3.975432760073\n    test 2078 line 231 lon2: 105.460358584149\n    test 2079 line 231 azi2: 126.257925455058\n    test 2080 line 232 lat: 28.815984\n    test 2081 line 232 lon: 89.807394\n    test 2082 line 232 fb: 116.984375\n    test 2083 line 232 lat2: 28.815983592511\n    test 2084 line 232 lon2: 89.807393686834\n    test 2085 line 232 azi2: 116.984374981602\n    test 2086 line 232 lat2: 28.815983592511\n    test 2087 line 232 lon2: 89.807393686834\n    test 2088 line 232 azi2: 116.984374981602\n    test 2089 line 233 lat: 66.161717\n    test 2090 line 233 lon: 63.218655\n    test 2091 line 233 fb: 88.869959\n    test 2092 line 233 lat2: 66.161716765270\n    test 2093 line 233 lon2: 63.218655052918\n    test 2094 line 233 azi2: 88.869959091488\n    test 2095 line 233 lat2: 66.161716765270\n    test 2096 line 233 lon2: 63.218655052918\n    test 2097 line 233 azi2: 88.869959091488\n    test 2098 line 234 lat: 74.859972\n    test 2099 line 234 lon: 53.523361\n    test 2100 line 234 fb: 58.125008\n    test 2101 line 234 lat2: 74.859971601090\n    test 2102 line 234 lon2: 53.523360738831\n    test 2103 line 234 azi2: 58.125008091802\n    test 2104 line 234 lat2: 74.859971601090\n    test 2105 line 234 lon2: 53.523360738831\n    test 2106 line 234 azi2: 58.125008091802\n    test 2107 line 235 lat: -0.265481\n    test 2108 line 235 lon: 79.537677\n    test 2109 line 235 fb: 112.945830\n    test 2110 line 235 lat2: -0.265481234322\n    test 2111 line 235 lon2: 79.537677388981\n    test 2112 line 235 azi2: 112.945829781102\n    test 2113 line 235 lat2: -0.265481234322\n    test 2114 line 235 lon2: 79.537677388981\n    test 2115 line 235 azi2: 112.945829781102\n    test 2116 line 236 lat: -12.099598\n    test 2117 line 236 lon: 155.371356\n    test 2118 line 236 fb: 76.454292\n    test 2119 line 236 lat2: -12.099598021004\n    test 2120 line 236 lon2: 155.371356164845\n    test 2121 line 236 azi2: 76.454291606612\n    test 2122 line 236 lat2: -12.099598021004\n    test 2123 line 236 lon2: 155.371356164845\n    test 2124 line 236 azi2: 76.454291606612\n    test 2125 line 237 lat: -6.746465\n    test 2126 line 237 lon: 19.102484\n    test 2127 line 237 fb: 149.342236\n    test 2128 line 237 lat2: -6.746464854112\n    test 2129 line 237 lon2: 19.102484309526\n    test 2130 line 237 azi2: 149.342236428405\n    test 2131 line 237 lat2: -6.746464854112\n    test 2132 line 237 lon2: 19.102484309526\n    test 2133 line 237 azi2: 149.342236428405\n    test 2134 line 238 lat: 0.663830\n    test 2135 line 238 lon: 101.295721\n    test 2136 line 238 fb: 133.862626\n    test 2137 line 238 lat2: 0.663830251510\n    test 2138 line 238 lon2: 101.295720736944\n    test 2139 line 238 azi2: 133.862626019473\n    test 2140 line 238 lat2: 0.663830251510\n    test 2141 line 238 lon2: 101.295720736944\n    test 2142 line 238 azi2: 133.862626019473\n    test 2143 line 239 lat: -61.764624\n    test 2144 line 239 lon: 148.537522\n    test 2145 line 239 fb: 149.298772\n    test 2146 line 239 lat2: -61.764623993813\n    test 2147 line 239 lon2: 148.537521922087\n    test 2148 line 239 azi2: 149.298771734214\n    test 2149 line 239 lat2: -61.764623993813\n    test 2150 line 239 lon2: 148.537521922087\n    test 2151 line 239 azi2: 149.298771734214\n    test 2152 line 240 lat: 14.505122\n    test 2153 line 240 lon: 111.665519\n    test 2154 line 240 fb: 97.740222\n    test 2155 line 240 lat2: 14.505121777043\n    test 2156 line 240 lon2: 111.665518774379\n    test 2157 line 240 azi2: 97.740221959573\n    test 2158 line 240 lat2: 14.505121777043\n    test 2159 line 240 lon2: 111.665518774379\n    test 2160 line 240 azi2: 97.740221959573\n    test 2161 line 241 lat: -24.713205\n    test 2162 line 241 lon: 34.159384\n    test 2163 line 241 fb: 125.866132\n    test 2164 line 241 lat2: -24.713205327375\n    test 2165 line 241 lon2: 34.159384140577\n    test 2166 line 241 azi2: 125.866132443875\n    test 2167 line 241 lat2: -24.713205327375\n    test 2168 line 241 lon2: 34.159384140577\n    test 2169 line 241 azi2: 125.866132443875\n    test 2170 line 242 lat: 50.480262\n    test 2171 line 242 lon: 42.263850\n    test 2172 line 242 fb: 153.395659\n    test 2173 line 242 lat2: 50.480261762893\n    test 2174 line 242 lon2: 42.263849601327\n    test 2175 line 242 azi2: 153.395658919028\n    test 2176 line 242 lat2: 50.480261762893\n    test 2177 line 242 lon2: 42.263849601327\n    test 2178 line 242 azi2: 153.395658919028\n    test 2179 line 243 lat: 11.787247\n    test 2180 line 243 lon: 49.506460\n    test 2181 line 243 fb: 120.836778\n    test 2182 line 243 lat2: 11.787247309610\n    test 2183 line 243 lon2: 49.506459509702\n    test 2184 line 243 azi2: 120.836778496206\n    test 2185 line 243 lat2: 11.787247309610\n    test 2186 line 243 lon2: 49.506459509702\n    test 2187 line 243 azi2: 120.836778496206\n    test 2188 line 244 lat: -19.956674\n    test 2189 line 244 lon: 14.599479\n    test 2190 line 244 fb: 177.883855\n    test 2191 line 244 lat2: -19.956673621927\n    test 2192 line 244 lon2: 14.599479227718\n    test 2193 line 244 azi2: 177.883855088778\n    test 2194 line 244 lat2: -19.956673621927\n    test 2195 line 244 lon2: 14.599479227718\n    test 2196 line 244 azi2: 177.883855088778\n    test 2197 line 245 lat: 0.738566\n    test 2198 line 245 lon: 12.600972\n    test 2199 line 245 fb: 176.085445\n    test 2200 line 245 lat2: 0.738565517815\n    test 2201 line 245 lon2: 12.600972006927\n    test 2202 line 245 azi2: 176.085445031797\n    test 2203 line 245 lat2: 0.738565517815\n    test 2204 line 245 lon2: 12.600972006927\n    test 2205 line 245 azi2: 176.085445031797\n    test 2206 line 246 lat: 25.799128\n    test 2207 line 246 lon: 9.800259\n    test 2208 line 246 fb: 166.282764\n    test 2209 line 246 lat2: 25.799128425384\n    test 2210 line 246 lon2: 9.800259258495\n    test 2211 line 246 azi2: 166.282764024264\n    test 2212 line 246 lat2: 25.799128425384\n    test 2213 line 246 lon2: 9.800259258495\n    test 2214 line 246 azi2: 166.282764024264\n    test 2215 line 247 lat: -3.897277\n    test 2216 line 247 lon: 16.693319\n    test 2217 line 247 fb: 168.780736\n    test 2218 line 247 lat2: -3.897277132184\n    test 2219 line 247 lon2: 16.693318601970\n    test 2220 line 247 azi2: 168.780736094343\n    test 2221 line 247 lat2: -3.897277132184\n    test 2222 line 247 lon2: 16.693318601970\n    test 2223 line 247 azi2: 168.780736094343\n    test 2224 line 248 lat: 2.479585\n    test 2225 line 248 lon: 72.317321\n    test 2226 line 248 fb: 126.935932\n    test 2227 line 248 lat2: 2.479585385319\n    test 2228 line 248 lon2: 72.317321261259\n    test 2229 line 248 azi2: 126.935932221711\n    test 2230 line 248 lat2: 2.479585385319\n    test 2231 line 248 lon2: 72.317321261259\n    test 2232 line 248 azi2: 126.935932221711\n    test 2233 line 249 lat: -0.836621\n    test 2234 line 249 lon: 2.490193\n    test 2235 line 249 fb: 150.640498\n    test 2236 line 249 lat2: -0.836621274662\n    test 2237 line 249 lon2: 2.490192836679\n    test 2238 line 249 azi2: 150.640498065221\n    test 2239 line 249 lat2: -0.836621274662\n    test 2240 line 249 lon2: 2.490192836679\n    test 2241 line 249 azi2: 150.640498065221\n    test 2242 line 250 lat: -69.098227\n    test 2243 line 250 lon: 43.929874\n    test 2244 line 250 fb: 143.378404\n    test 2245 line 250 lat2: -69.098226894675\n    test 2246 line 250 lon2: 43.929873562507\n    test 2247 line 250 azi2: 143.378403982035\n    test 2248 line 250 lat2: -69.098226894675\n    test 2249 line 250 lon2: 43.929873562507\n    test 2250 line 250 azi2: 143.378403982035\n    test 2251 line 251 lat: 19.156121\n    test 2252 line 251 lon: 130.658473\n    test 2253 line 251 fb: 136.204475\n    test 2254 line 251 lat2: 19.156121137418\n    test 2255 line 251 lon2: 130.658473280949\n    test 2256 line 251 azi2: 136.204475163250\n    test 2257 line 251 lat2: 19.156121137418\n    test 2258 line 251 lon2: 130.658473280949\n    test 2259 line 251 azi2: 136.204475163250\n    test 2260 line 252 lat: 68.881949\n    test 2261 line 252 lon: 79.375865\n    test 2262 line 252 fb: 99.052732\n    test 2263 line 252 lat2: 68.881948915820\n    test 2264 line 252 lon2: 79.375865154434  FAILED, KNOWN, expected 79.375865154433\n    test 2265 line 252 azi2: 99.052731550675\n    test 2266 line 252 lat2: 68.881948915820\n    test 2267 line 252 lon2: 79.375865154434  FAILED, KNOWN, expected 79.375865154433\n    test 2268 line 252 azi2: 99.052731550675\n    test 2269 line 253 lat: -23.509016\n    test 2270 line 253 lon: 122.232226\n    test 2271 line 253 fb: 90.354604\n    test 2272 line 253 lat2: -23.509015988874\n    test 2273 line 253 lon2: 122.232226283491\n    test 2274 line 253 azi2: 90.354603607380\n    test 2275 line 253 lat2: -23.509015988874\n    test 2276 line 253 lon2: 122.232226283491\n    test 2277 line 253 azi2: 90.354603607380\n    test 2278 line 254 lat: -64.950636\n    test 2279 line 254 lon: 70.184354\n    test 2280 line 254 fb: 122.478937\n    test 2281 line 254 lat2: -64.950635804577\n    test 2282 line 254 lon2: 70.184354384370\n    test 2283 line 254 azi2: 122.478937039089\n    test 2284 line 254 lat2: -64.950635804577\n    test 2285 line 254 lon2: 70.184354384370\n    test 2286 line 254 azi2: 122.478937039089\n    test 2287 line 255 lat: 4.931109\n    test 2288 line 255 lon: 176.100221\n    test 2289 line 255 fb: 175.754221\n    test 2290 line 255 lat2: 4.931108669549\n    test 2291 line 255 lon2: 176.100220910178\n    test 2292 line 255 azi2: 175.754221027085\n    test 2293 line 255 lat2: 4.931108669549\n    test 2294 line 255 lon2: 176.100220910178\n    test 2295 line 255 azi2: 175.754221027085\n    test 2296 line 256 lat: -35.503236\n    test 2297 line 256 lon: 122.767107\n    test 2298 line 256 fb: 94.201020\n    test 2299 line 256 lat2: -35.503236005727\n    test 2300 line 256 lon2: 122.767107174014\n    test 2301 line 256 azi2: 94.201020059324\n    test 2302 line 256 lat2: -35.503236005727\n    test 2303 line 256 lon2: 122.767107174014\n    test 2304 line 256 azi2: 94.201020059324\n    test 2305 line 257 lat: 58.728016\n    test 2306 line 257 lon: 76.607531\n    test 2307 line 257 fb: 114.353509\n    test 2308 line 257 lat2: 58.728016150448\n    test 2309 line 257 lon2: 76.607530844045\n    test 2310 line 257 azi2: 114.353508957613\n    test 2311 line 257 lat2: 58.728016150448\n    test 2312 line 257 lon2: 76.607530844045\n    test 2313 line 257 azi2: 114.353508957613\n    test 2314 line 258 lat: 13.725793\n    test 2315 line 258 lon: 60.384503\n    test 2316 line 258 fb: 102.783242\n    test 2317 line 258 lat2: 13.725792757601\n    test 2318 line 258 lon2: 60.384502867486\n    test 2319 line 258 azi2: 102.783241874789\n    test 2320 line 258 lat2: 13.725792757601\n    test 2321 line 258 lon2: 60.384502867486\n    test 2322 line 258 azi2: 102.783241874789\n    test 2323 line 259 lat: 40.298524\n    test 2324 line 259 lon: 59.957993\n    test 2325 line 259 fb: 90.056366\n    test 2326 line 259 lat2: 40.298523592677\n    test 2327 line 259 lon2: 59.957993458231\n    test 2328 line 259 azi2: 90.056365696933\n    test 2329 line 259 lat2: 40.298523592677\n    test 2330 line 259 lon2: 59.957993458231\n    test 2331 line 259 azi2: 90.056365696933\n    test 2332 line 260 lat: 21.526222\n    test 2333 line 260 lon: 19.836420\n    test 2334 line 260 fb: 89.081274\n    test 2335 line 260 lat2: 21.526221960544\n    test 2336 line 260 lon2: 19.836419824899\n    test 2337 line 260 azi2: 89.081274273400\n    test 2338 line 260 lat2: 21.526221960544\n    test 2339 line 260 lon2: 19.836419824899\n    test 2340 line 260 azi2: 89.081274273400\n    test 2341 line 261 lat: -65.269872\n    test 2342 line 261 lon: 134.049515\n    test 2343 line 261 fb: 54.613515\n    test 2344 line 261 lat2: -65.269872123888\n    test 2345 line 261 lon2: 134.049514626723\n    test 2346 line 261 azi2: 54.613514542799\n    test 2347 line 261 lat2: -65.269872123888\n    test 2348 line 261 lon2: 134.049514626723\n    test 2349 line 261 azi2: 54.613514542799\n    test 2350 line 262 lat: -47.687068\n    test 2351 line 262 lon: 86.855941\n    test 2352 line 262 fb: 115.133532\n    test 2353 line 262 lat2: -47.687068378110\n    test 2354 line 262 lon2: 86.855941174728\n    test 2355 line 262 azi2: 115.133531572693\n    test 2356 line 262 lat2: -47.687068378110\n    test 2357 line 262 lon2: 86.855941174728\n    test 2358 line 262 azi2: 115.133531572693\n    test 2359 line 263 lat: -56.637273\n    test 2360 line 263 lon: 158.001121\n    test 2361 line 263 fb: 35.013276\n    test 2362 line 263 lat2: -56.637272907294\n    test 2363 line 263 lon2: 158.001120751267\n    test 2364 line 263 azi2: 35.013276119319\n    test 2365 line 263 lat2: -56.637272907294\n    test 2366 line 263 lon2: 158.001120751267\n    test 2367 line 263 azi2: 35.013276119319\n    test 2368 line 264 lat: 6.880772\n    test 2369 line 264 lon: 36.289125\n    test 2370 line 264 fb: 144.499557\n    test 2371 line 264 lat2: 6.880771895178\n    test 2372 line 264 lon2: 36.289124705135\n    test 2373 line 264 azi2: 144.499557452454\n    test 2374 line 264 lat2: 6.880771895178\n    test 2375 line 264 lon2: 36.289124705135\n    test 2376 line 264 azi2: 144.499557452454\n    test 2377 line 265 lat: 59.205527\n    test 2378 line 265 lon: 115.787268\n    test 2379 line 265 fb: 116.793619\n    test 2380 line 265 lat2: 59.205526512430\n    test 2381 line 265 lon2: 115.787267608171\n    test 2382 line 265 azi2: 116.793618855456\n    test 2383 line 265 lat2: 59.205526512430\n    test 2384 line 265 lon2: 115.787267608171\n    test 2385 line 265 azi2: 116.793618855456\n    test 2386 line 266 lat: 29.463206\n    test 2387 line 266 lon: 68.742710\n    test 2388 line 266 fb: 113.906069\n    test 2389 line 266 lat2: 29.463206450868\n    test 2390 line 266 lon2: 68.742710218988\n    test 2391 line 266 azi2: 113.906069374400\n    test 2392 line 266 lat2: 29.463206450868\n    test 2393 line 266 lon2: 68.742710218988\n    test 2394 line 266 azi2: 113.906069374400\n    test 2395 line 267 lat: 5.507960\n    test 2396 line 267 lon: 2.913367\n    test 2397 line 267 fb: 175.225892\n    test 2398 line 267 lat2: 5.507959555355\n    test 2399 line 267 lon2: 2.913367209347\n    test 2400 line 267 azi2: 175.225891805562\n    test 2401 line 267 lat2: 5.507959555355\n    test 2402 line 267 lon2: 2.913367209347\n    test 2403 line 267 azi2: 175.225891805562\n    test 2404 line 268 lat: 32.568215\n    test 2405 line 268 lon: 107.814340\n    test 2406 line 268 fb: 126.321687\n    test 2407 line 268 lat2: 32.568215067951\n    test 2408 line 268 lon2: 107.814340389788\n    test 2409 line 268 azi2: 126.321687264203\n    test 2410 line 268 lat2: 32.568215067951\n    test 2411 line 268 lon2: 107.814340389788\n    test 2412 line 268 azi2: 126.321687264203\n    test 2413 line 269 lat: 48.941036\n    test 2414 line 269 lon: 170.309380\n    test 2415 line 269 fb: 170.816057\n    test 2416 line 269 lat2: 48.941036400994\n    test 2417 line 269 lon2: 170.309379989564\n    test 2418 line 269 azi2: 170.816056872564\n    test 2419 line 269 lat2: 48.941036400994\n    test 2420 line 269 lon2: 170.309379989564\n    test 2421 line 269 azi2: 170.816056872564\n    test 2422 line 270 lat: 32.657811\n    test 2423 line 270 lon: 174.401372\n    test 2424 line 270 fb: 173.967029\n    test 2425 line 270 lat2: 32.657810935795\n    test 2426 line 270 lon2: 174.401372292954\n    test 2427 line 270 azi2: 173.967029189838\n    test 2428 line 270 lat2: 32.657810935795\n    test 2429 line 270 lon2: 174.401372292954\n    test 2430 line 270 azi2: 173.967029189838\n    test 2431 line 271 lat: -30.959342\n    test 2432 line 271 lon: 144.596945\n    test 2433 line 271 fb: 157.635539\n    test 2434 line 271 lat2: -30.959341511189\n    test 2435 line 271 lon2: 144.596944855700\n    test 2436 line 271 azi2: 157.635538872114\n    test 2437 line 271 lat2: -30.959341511189\n    test 2438 line 271 lon2: 144.596944855700\n    test 2439 line 271 azi2: 157.635538872114\n    test 2440 line 272 lat: 52.180060\n    test 2441 line 272 lon: 68.363538\n    test 2442 line 272 fb: 82.619820\n    test 2443 line 272 lat2: 52.180060488771\n    test 2444 line 272 lon2: 68.363538073511\n    test 2445 line 272 azi2: 82.619819936898\n    test 2446 line 272 lat2: 52.180060488771\n    test 2447 line 272 lon2: 68.363538073511\n    test 2448 line 272 azi2: 82.619819936898\n    test 2449 line 273 lat: -49.230655\n    test 2450 line 273 lon: 119.085123\n    test 2451 line 273 fb: 81.553785\n    test 2452 line 273 lat2: -49.230654785601\n    test 2453 line 273 lon2: 119.085122995371\n    test 2454 line 273 azi2: 81.553785297210\n    test 2455 line 273 lat2: -49.230654785601\n    test 2456 line 273 lon2: 119.085122995371\n    test 2457 line 273 azi2: 81.553785297210\n    test 2458 line 274 lat: 12.315309\n    test 2459 line 274 lon: 21.800337\n    test 2460 line 274 fb: 86.572317\n    test 2461 line 274 lat2: 12.315308710130\n    test 2462 line 274 lon2: 21.800336803956\n    test 2463 line 274 azi2: 86.572316548512\n    test 2464 line 274 lat2: 12.315308710130\n    test 2465 line 274 lon2: 21.800336803956\n    test 2466 line 274 azi2: 86.572316548512\n    test 2467 line 275 lat: 0.074875\n    test 2468 line 275 lon: 122.092567\n    test 2469 line 275 fb: 93.940324\n    test 2470 line 275 lat2: 0.074874782626\n    test 2471 line 275 lon2: 122.092567299352\n    test 2472 line 275 azi2: 93.940323652996\n    test 2473 line 275 lat2: 0.074874782626\n    test 2474 line 275 lon2: 122.092567299352\n    test 2475 line 275 azi2: 93.940323652996\n    test 2476 line 276 lat: -32.420609\n    test 2477 line 276 lon: 80.147417\n    test 2478 line 276 fb: 123.183256\n    test 2479 line 276 lat2: -32.420609134175\n    test 2480 line 276 lon2: 80.147416945184\n    test 2481 line 276 azi2: 123.183256201588\n    test 2482 line 276 lat2: -32.420609134175\n    test 2483 line 276 lon2: 80.147416945184\n    test 2484 line 276 azi2: 123.183256201588\n    test 2485 line 277 lat: 82.600418\n    test 2486 line 277 lon: 34.418367\n    test 2487 line 277 fb: 35.057122\n    test 2488 line 277 lat2: 82.600418456713\n    test 2489 line 277 lon2: 34.418367124569\n    test 2490 line 277 azi2: 35.057122384192\n    test 2491 line 277 lat2: 82.600418456713\n    test 2492 line 277 lon2: 34.418367124569\n    test 2493 line 277 azi2: 35.057122384192\n    test 2494 line 278 lat: 26.274633\n    test 2495 line 278 lon: 93.043032\n    test 2496 line 278 fb: 114.480069\n    test 2497 line 278 lat2: 26.274632977288\n    test 2498 line 278 lon2: 93.043031668414\n    test 2499 line 278 azi2: 114.480069066657\n    test 2500 line 278 lat2: 26.274632977288\n    test 2501 line 278 lon2: 93.043031668414\n    test 2502 line 278 azi2: 114.480069066657\n    test 2503 line 279 lat: 28.433986\n    test 2504 line 279 lon: 132.962042\n    test 2505 line 279 fb: 118.817242\n    test 2506 line 279 lat2: 28.433985598740\n    test 2507 line 279 lon2: 132.962041543078\n    test 2508 line 279 azi2: 118.817241997246\n    test 2509 line 279 lat2: 28.433985598740\n    test 2510 line 279 lon2: 132.962041543078\n    test 2511 line 279 azi2: 118.817241997246\n    test 2512 line 280 lat: 32.426459\n    test 2513 line 280 lon: 65.171889\n    test 2514 line 280 fb: 113.230923\n    test 2515 line 280 lat2: 32.426458512822\n    test 2516 line 280 lon2: 65.171889395963\n    test 2517 line 280 azi2: 113.230923394172\n    test 2518 line 280 lat2: 32.426458512822\n    test 2519 line 280 lon2: 65.171889395963\n    test 2520 line 280 azi2: 113.230923394172\n    test 2521 line 281 lat: 8.427284\n    test 2522 line 281 lon: 20.342496\n    test 2523 line 281 fb: 140.993359\n    test 2524 line 281 lat2: 8.427284359102\n    test 2525 line 281 lon2: 20.342496251702\n    test 2526 line 281 azi2: 140.993359066103\n    test 2527 line 281 lat2: 8.427284359102\n    test 2528 line 281 lon2: 20.342496251702\n    test 2529 line 281 azi2: 140.993359066103\n    test 2530 line 282 lat: -16.412702\n    test 2531 line 282 lon: 47.392542\n    test 2532 line 282 fb: 167.389705\n    test 2533 line 282 lat2: -16.412702228950\n    test 2534 line 282 lon2: 47.392541669265\n    test 2535 line 282 azi2: 167.389704666322\n    test 2536 line 282 lat2: -16.412702228950\n    test 2537 line 282 lon2: 47.392541669265\n    test 2538 line 282 azi2: 167.389704666322\n    test 2539 line 283 lat: -54.082376\n    test 2540 line 283 lon: 159.985466\n    test 2541 line 283 fb: 56.023710\n    test 2542 line 283 lat2: -54.082375801659\n    test 2543 line 283 lon2: 159.985465829683\n    test 2544 line 283 azi2: 56.023710499162\n    test 2545 line 283 lat2: -54.082375801659\n    test 2546 line 283 lon2: 159.985465829683\n    test 2547 line 283 azi2: 56.023710499162\n    test 2548 line 284 lat: 38.704319\n    test 2549 line 284 lon: 78.307551\n    test 2550 line 284 fb: 106.582126\n    test 2551 line 284 lat2: 38.704318557557\n    test 2552 line 284 lon2: 78.307550831333\n    test 2553 line 284 azi2: 106.582125725743\n    test 2554 line 284 lat2: 38.704318557557\n    test 2555 line 284 lon2: 78.307550831333\n    test 2556 line 284 azi2: 106.582125725743\n    test 2557 line 285 lat: 15.206275\n    test 2558 line 285 lon: 59.878378\n    test 2559 line 285 fb: 114.460428\n    test 2560 line 285 lat2: 15.206274688849\n    test 2561 line 285 lon2: 59.878378252292\n    test 2562 line 285 azi2: 114.460428216582\n    test 2563 line 285 lat2: 15.206274688849\n    test 2564 line 285 lon2: 59.878378252292\n    test 2565 line 285 azi2: 114.460428216582\n    test 2566 line 286 lat: -62.789550\n    test 2567 line 286 lon: 66.649185\n    test 2568 line 286 fb: 119.232672\n    test 2569 line 286 lat2: -62.789549909136\n    test 2570 line 286 lon2: 66.649184622337\n    test 2571 line 286 azi2: 119.232671643971\n    test 2572 line 286 lat2: -62.789549909136\n    test 2573 line 286 lon2: 66.649184622337\n    test 2574 line 286 azi2: 119.232671643971\n    test 2575 line 287 lat: 31.235252\n    test 2576 line 287 lon: 19.933468\n    test 2577 line 287 fb: 145.488470\n    test 2578 line 287 lat2: 31.235252170087\n    test 2579 line 287 lon2: 19.933467970517\n    test 2580 line 287 azi2: 145.488469796544\n    test 2581 line 287 lat2: 31.235252170087\n    test 2582 line 287 lon2: 19.933467970517\n    test 2583 line 287 azi2: 145.488469796544\n    test 2584 line 288 lat: 11.983236\n    test 2585 line 288 lon: 145.307369\n    test 2586 line 288 fb: 151.192641\n    test 2587 line 288 lat2: 11.983236088753\n    test 2588 line 288 lon2: 145.307368849730\n    test 2589 line 288 azi2: 151.192640854621\n    test 2590 line 288 lat2: 11.983236088753\n    test 2591 line 288 lon2: 145.307368849730\n    test 2592 line 288 azi2: 151.192640854621\n    test 2593 line 289 lat: 27.629694\n    test 2594 line 289 lon: 16.148459\n    test 2595 line 289 fb: 63.008012\n    test 2596 line 289 lat2: 27.629693628283\n    test 2597 line 289 lon2: 16.148459400244\n    test 2598 line 289 azi2: 63.008012267521\n    test 2599 line 289 lat2: 27.629693628283\n    test 2600 line 289 lon2: 16.148459400244\n    test 2601 line 289 azi2: 63.008012267521\n    test 2602 line 290 lat: 34.077784\n    test 2603 line 290 lon: 115.693210\n    test 2604 line 290 fb: 112.252264\n    test 2605 line 290 lat2: 34.077783768135\n    test 2606 line 290 lon2: 115.693209573427\n    test 2607 line 290 azi2: 112.252263721679\n    test 2608 line 290 lat2: 34.077783768135\n    test 2609 line 290 lon2: 115.693209573427\n    test 2610 line 290 azi2: 112.252263721679\n    test 2611 line 291 lat: 17.100340\n    test 2612 line 291 lon: 26.538643\n    test 2613 line 291 fb: 131.391925\n    test 2614 line 291 lat2: 17.100339523444\n    test 2615 line 291 lon2: 26.538642768875\n    test 2616 line 291 azi2: 131.391925094902\n    test 2617 line 291 lat2: 17.100339523444\n    test 2618 line 291 lon2: 26.538642768875\n    test 2619 line 291 azi2: 131.391925094902\n    test 2620 line 292 lat: -8.128040\n    test 2621 line 292 lon: 28.609615\n    test 2622 line 292 fb: 144.189095\n    test 2623 line 292 lat2: -8.128039572354\n    test 2624 line 292 lon2: 28.609615412806\n    test 2625 line 292 azi2: 144.189095481788\n    test 2626 line 292 lat2: -8.128039572354\n    test 2627 line 292 lon2: 28.609615412806\n    test 2628 line 292 azi2: 144.189095481788\n    test 2629 line 293 lat: 17.307082\n    test 2630 line 293 lon: 150.748550\n    test 2631 line 293 fb: 172.334611\n    test 2632 line 293 lat2: 17.307081581668\n    test 2633 line 293 lon2: 150.748549863580\n    test 2634 line 293 azi2: 172.334611079260\n    test 2635 line 293 lat2: 17.307081581668\n    test 2636 line 293 lon2: 150.748549863580\n    test 2637 line 293 azi2: 172.334611079260\n    test 2638 line 294 lat: 4.135230\n    test 2639 line 294 lon: 142.094814\n    test 2640 line 294 fb: 170.513214\n    test 2641 line 294 lat2: 4.135229575811\n    test 2642 line 294 lon2: 142.094814225629\n    test 2643 line 294 azi2: 170.513213518678\n    test 2644 line 294 lat2: 4.135229575811\n    test 2645 line 294 lon2: 142.094814225629\n    test 2646 line 294 azi2: 170.513213518678\n    test 2647 line 295 lat: -61.544041\n    test 2648 line 295 lon: 167.154866\n    test 2649 line 295 fb: 51.415676\n    test 2650 line 295 lat2: -61.544040804472\n    test 2651 line 295 lon2: 167.154866481811\n    test 2652 line 295 azi2: 51.415675504866\n    test 2653 line 295 lat2: -61.544040804472\n    test 2654 line 295 lon2: 167.154866481811\n    test 2655 line 295 azi2: 51.415675504866\n    test 2656 line 296 lat: 27.782466\n    test 2657 line 296 lon: 53.844550\n    test 2658 line 296 fb: 78.357665\n    test 2659 line 296 lat2: 27.782465760718\n    test 2660 line 296 lon2: 53.844549799795\n    test 2661 line 296 azi2: 78.357665271795\n    test 2662 line 296 lat2: 27.782465760718\n    test 2663 line 296 lon2: 53.844549799795\n    test 2664 line 296 azi2: 78.357665271795\n    test 2665 line 297 lat: -30.157337\n    test 2666 line 297 lon: 14.759636\n    test 2667 line 297 fb: 157.487063\n    test 2668 line 297 lat2: -30.157336788088\n    test 2669 line 297 lon2: 14.759635614931\n    test 2670 line 297 azi2: 157.487063280783\n    test 2671 line 297 lat2: -30.157336788088\n    test 2672 line 297 lon2: 14.759635614931\n    test 2673 line 297 azi2: 157.487063280783\n    test 2674 line 298 lat: -16.819268\n    test 2675 line 298 lon: 22.734618\n    test 2676 line 298 fb: 167.761663\n    test 2677 line 298 lat2: -16.819268371139\n    test 2678 line 298 lon2: 22.734618221531\n    test 2679 line 298 azi2: 167.761663436059\n    test 2680 line 298 lat2: -16.819268371139\n    test 2681 line 298 lon2: 22.734618221531\n    test 2682 line 298 azi2: 167.761663436059\n    test 2683 line 299 lat: 58.190743\n    test 2684 line 299 lon: 15.576363\n    test 2685 line 299 fb: 71.213972\n    test 2686 line 299 lat2: 58.190742593673\n    test 2687 line 299 lon2: 15.576363250416\n    test 2688 line 299 azi2: 71.213972172079\n    test 2689 line 299 lat2: 58.190742593673\n    test 2690 line 299 lon2: 15.576363250416\n    test 2691 line 299 azi2: 71.213972172079\n    test 2692 line 300 lat: 57.214981\n    test 2693 line 300 lon: 163.530752\n    test 2694 line 300 fb: 162.056064\n    test 2695 line 300 lat2: 57.214981133823\n    test 2696 line 300 lon2: 163.530751680014\n    test 2697 line 300 azi2: 162.056064225923\n    test 2698 line 300 lat2: 57.214981133823\n    test 2699 line 300 lon2: 163.530751680014\n    test 2700 line 300 azi2: 162.056064225923\n    test 2701 line 301 lat: 31.811818\n    test 2702 line 301 lon: 81.663494\n    test 2703 line 301 fb: 112.546404\n    test 2704 line 301 lat2: 31.811817748936\n    test 2705 line 301 lon2: 81.663494432962\n    test 2706 line 301 azi2: 112.546403824977\n    test 2707 line 301 lat2: 31.811817748936\n    test 2708 line 301 lon2: 81.663494432962\n    test 2709 line 301 azi2: 112.546403824977\n    test 2710 line 302 lat: -11.315727\n    test 2711 line 302 lon: 48.409490\n    test 2712 line 302 fb: 121.434574\n    test 2713 line 302 lat2: -11.315726799012\n    test 2714 line 302 lon2: 48.409489590525\n    test 2715 line 302 azi2: 121.434573764585\n    test 2716 line 302 lat2: -11.315726799012\n    test 2717 line 302 lon2: 48.409489590525\n    test 2718 line 302 azi2: 121.434573764585\n    test 2719 line 303 lat: 6.119956\n    test 2720 line 303 lon: 5.687908\n    test 2721 line 303 fb: 94.977171\n    test 2722 line 303 lat2: 6.119956010623\n    test 2723 line 303 lon2: 5.687908365969\n    test 2724 line 303 azi2: 94.977170961146\n    test 2725 line 303 lat2: 6.119956010623\n    test 2726 line 303 lon2: 5.687908365969\n    test 2727 line 303 azi2: 94.977170961146\n    test 2728 line 304 lat: -13.455263\n    test 2729 line 304 lon: 92.797729\n    test 2730 line 304 fb: 125.067595\n    test 2731 line 304 lat2: -13.455262906771\n    test 2732 line 304 lon2: 92.797729354548\n    test 2733 line 304 azi2: 125.067595131171\n    test 2734 line 304 lat2: -13.455262906771\n    test 2735 line 304 lon2: 92.797729354548\n    test 2736 line 304 azi2: 125.067595131171\n    test 2737 line 305 lat: -61.258454\n    test 2738 line 305 lon: 32.464613\n    test 2739 line 305 fb: 153.578300\n    test 2740 line 305 lat2: -61.258454070259\n    test 2741 line 305 lon2: 32.464613321886\n    test 2742 line 305 azi2: 153.578299580216\n    test 2743 line 305 lat2: -61.258454070259\n    test 2744 line 305 lon2: 32.464613321886\n    test 2745 line 305 azi2: 153.578299580216\n    test 2746 line 306 lat: 76.656194\n    test 2747 line 306 lon: 147.658262\n    test 2748 line 306 fb: 154.870277\n    test 2749 line 306 lat2: 76.656194303754\n    test 2750 line 306 lon2: 147.658261698859\n    test 2751 line 306 azi2: 154.870276891567\n    test 2752 line 306 lat2: 76.656194303754\n    test 2753 line 306 lon2: 147.658261698859\n    test 2754 line 306 azi2: 154.870276891567\n    test 2755 line 307 lat: 38.020470\n    test 2756 line 307 lon: 22.502210\n    test 2757 line 307 fb: 164.603876\n    test 2758 line 307 lat2: 38.020470355438\n    test 2759 line 307 lon2: 22.502210018002\n    test 2760 line 307 azi2: 164.603876406614\n    test 2761 line 307 lat2: 38.020470355438\n    test 2762 line 307 lon2: 22.502210018002\n    test 2763 line 307 azi2: 164.603876406614\n    test 2764 line 308 lat: -28.475186\n    test 2765 line 308 lon: 125.031589\n    test 2766 line 308 fb: 71.946314\n    test 2767 line 308 lat2: -28.475185707347\n    test 2768 line 308 lon2: 125.031589334958\n    test 2769 line 308 azi2: 71.946313988393\n    test 2770 line 308 lat2: -28.475185707347\n    test 2771 line 308 lon2: 125.031589334958\n    test 2772 line 308 azi2: 71.946313988393\n    test 2773 line 309 lat: 33.123700\n    test 2774 line 309 lon: 47.796870\n    test 2775 line 309 fb: 66.233041\n    test 2776 line 309 lat2: 33.123699771125\n    test 2777 line 309 lon2: 47.796870281285\n    test 2778 line 309 azi2: 66.233040505915\n    test 2779 line 309 lat2: 33.123699771125\n    test 2780 line 309 lon2: 47.796870281285\n    test 2781 line 309 azi2: 66.233040505915\n    test 2782 line 310 lat: 36.967606\n    test 2783 line 310 lon: 91.462107\n    test 2784 line 310 fb: 113.555931\n    test 2785 line 310 lat2: 36.967605507925\n    test 2786 line 310 lon2: 91.462107367844\n    test 2787 line 310 azi2: 113.555931272414\n    test 2788 line 310 lat2: 36.967605507925\n    test 2789 line 310 lon2: 91.462107367844\n    test 2790 line 310 azi2: 113.555931272414\n    test 2791 line 311 lat: -3.784112\n    test 2792 line 311 lon: 75.465096\n    test 2793 line 311 fb: 146.940895\n    test 2794 line 311 lat2: -3.784112064078\n    test 2795 line 311 lon2: 75.465096433718\n    test 2796 line 311 azi2: 146.940895363525\n    test 2797 line 311 lat2: -3.784112064078\n    test 2798 line 311 lon2: 75.465096433718\n    test 2799 line 311 azi2: 146.940895363525\n    test 2800 line 312 lat: 10.772454\n    test 2801 line 312 lon: 162.137695\n    test 2802 line 312 fb: 176.774643\n    test 2803 line 312 lat2: 10.772454234710\n    test 2804 line 312 lon2: 162.137694811372\n    test 2805 line 312 azi2: 176.774642770857\n    test 2806 line 312 lat2: 10.772454234711  FAILED, KNOWN, expected 10.772454234710\n    test 2807 line 312 lon2: 162.137694811372\n    test 2808 line 312 azi2: 176.774642770857\n    test 2809 line 313 lat: 23.928740\n    test 2810 line 313 lon: 28.953169\n    test 2811 line 313 fb: 143.614710\n    test 2812 line 313 lat2: 23.928739648982\n    test 2813 line 313 lon2: 28.953169497861\n    test 2814 line 313 azi2: 143.614709768381\n    test 2815 line 313 lat2: 23.928739648982\n    test 2816 line 313 lon2: 28.953169497861\n    test 2817 line 313 azi2: 143.614709768381\n    test 2818 line 314 lat: 5.199377\n    test 2819 line 314 lon: 162.802668\n    test 2820 line 314 fb: 146.857520\n    test 2821 line 314 lat2: 5.199376594428\n    test 2822 line 314 lon2: 162.802668362269\n    test 2823 line 314 azi2: 146.857519761344\n    test 2824 line 314 lat2: 5.199376594428\n    test 2825 line 314 lon2: 162.802668362269\n    test 2826 line 314 azi2: 146.857519761344\n    test 2827 line 315 lat: 6.285334\n    test 2828 line 315 lon: 164.204548\n    test 2829 line 315 fb: 159.451359\n    test 2830 line 315 lat2: 6.285334322282\n    test 2831 line 315 lon2: 164.204548022855\n    test 2832 line 315 azi2: 159.451359223111\n    test 2833 line 315 lat2: 6.285334322282\n    test 2834 line 315 lon2: 164.204548022855\n    test 2835 line 315 azi2: 159.451359223111\n    test 2836 line 316 lat: -8.151874\n    test 2837 line 316 lon: 43.923539\n    test 2838 line 316 fb: 121.501273\n    test 2839 line 316 lat2: -8.151873580306\n    test 2840 line 316 lon2: 43.923539410568\n    test 2841 line 316 azi2: 121.501272690158\n    test 2842 line 316 lat2: -8.151873580306\n    test 2843 line 316 lon2: 43.923539410568\n    test 2844 line 316 azi2: 121.501272690158\n    test 2845 line 317 lat: 20.145480\n    test 2846 line 317 lon: 92.310645\n    test 2847 line 317 fb: 97.369333\n    test 2848 line 317 lat2: 20.145480383316\n    test 2849 line 317 lon2: 92.310644735772\n    test 2850 line 317 azi2: 97.369333245027\n    test 2851 line 317 lat2: 20.145480383316\n    test 2852 line 317 lon2: 92.310644735772\n    test 2853 line 317 azi2: 97.369333245027\n    test 2854 line 318 lat: 38.715579\n    test 2855 line 318 lon: 89.141427\n    test 2856 line 318 fb: 100.831087\n    test 2857 line 318 lat2: 38.715578802658\n    test 2858 line 318 lon2: 89.141426830360\n    test 2859 line 318 azi2: 100.831086703170\n    test 2860 line 318 lat2: 38.715578802658\n    test 2861 line 318 lon2: 89.141426830360\n    test 2862 line 318 azi2: 100.831086703170\n    test 2863 line 319 lat: -25.760685\n    test 2864 line 319 lon: 145.864001\n    test 2865 line 319 fb: 142.714674\n    test 2866 line 319 lat2: -25.760685020607\n    test 2867 line 319 lon2: 145.864001048187\n    test 2868 line 319 azi2: 142.714673928912\n    test 2869 line 319 lat2: -25.760685020607\n    test 2870 line 319 lon2: 145.864001048187\n    test 2871 line 319 azi2: 142.714673928912\n    test 2872 line 320 lat: 49.387283\n    test 2873 line 320 lon: 28.917044\n    test 2874 line 320 fb: 61.545235\n    test 2875 line 320 lat2: 49.387283074155\n    test 2876 line 320 lon2: 28.917043656754\n    test 2877 line 320 azi2: 61.545235148403\n    test 2878 line 320 lat2: 49.387283074155\n    test 2879 line 320 lon2: 28.917043656754\n    test 2880 line 320 azi2: 61.545235148403\n    test 2881 line 321 lat: 10.120685\n    test 2882 line 321 lon: 2.869738\n    test 2883 line 321 fb: 176.526916\n    test 2884 line 321 lat2: 10.120685293027\n    test 2885 line 321 lon2: 2.869737593886\n    test 2886 line 321 azi2: 176.526915822865\n    test 2887 line 321 lat2: 10.120685293027\n    test 2888 line 321 lon2: 2.869737593886\n    test 2889 line 321 azi2: 176.526915822865\n    test 2890 line 322 lat: 2.463216\n    test 2891 line 322 lon: 102.917600\n    test 2892 line 322 fb: 170.609004\n    test 2893 line 322 lat2: 2.463216066166\n    test 2894 line 322 lon2: 102.917599852201\n    test 2895 line 322 azi2: 170.609003610639\n    test 2896 line 322 lat2: 2.463216066166\n    test 2897 line 322 lon2: 102.917599852201\n    test 2898 line 322 azi2: 170.609003610639\n    test 2899 line 323 lat: 58.201294\n    test 2900 line 323 lon: 155.022079\n    test 2901 line 323 fb: 153.181269\n    test 2902 line 323 lat2: 58.201293688923\n    test 2903 line 323 lon2: 155.022079105501\n    test 2904 line 323 azi2: 153.181268692773\n    test 2905 line 323 lat2: 58.201293688923\n    test 2906 line 323 lon2: 155.022079105501\n    test 2907 line 323 azi2: 153.181268692773\n    test 2908 line 324 lat: 3.089608\n    test 2909 line 324 lon: 20.686800\n    test 2910 line 324 fb: 144.857820\n    test 2911 line 324 lat2: 3.089607756265\n    test 2912 line 324 lon2: 20.686800266169\n    test 2913 line 324 azi2: 144.857820265585\n    test 2914 line 324 lat2: 3.089607756265\n    test 2915 line 324 lon2: 20.686800266169\n    test 2916 line 324 azi2: 144.857820265585\n    test 2917 line 325 lat: 48.232274\n    test 2918 line 325 lon: 18.567244\n    test 2919 line 325 fb: 24.556438\n    test 2920 line 325 lat2: 48.232274219515\n    test 2921 line 325 lon2: 18.567244222293\n    test 2922 line 325 azi2: 24.556437713520\n    test 2923 line 325 lat2: 48.232274219515\n    test 2924 line 325 lon2: 18.567244222293\n    test 2925 line 325 azi2: 24.556437713520\n    test 2926 line 326 lat: 30.265261\n    test 2927 line 326 lon: 7.440738\n    test 2928 line 326 fb: 142.022972\n    test 2929 line 326 lat2: 30.265261486767\n    test 2930 line 326 lon2: 7.440737656545\n    test 2931 line 326 azi2: 142.022971576270\n    test 2932 line 326 lat2: 30.265261486767\n    test 2933 line 326 lon2: 7.440737656545\n    test 2934 line 326 azi2: 142.022971576270\n    test 2935 line 327 lat: -11.166197\n    test 2936 line 327 lon: 176.728934\n    test 2937 line 327 fb: 24.287273\n    test 2938 line 327 lat2: -11.166197413148\n    test 2939 line 327 lon2: 176.728933575636\n    test 2940 line 327 azi2: 24.287272842989\n    test 2941 line 327 lat2: -11.166197413148\n    test 2942 line 327 lon2: 176.728933575636\n    test 2943 line 327 azi2: 24.287272842989\n    test 2944 line 328 lat: 84.645539\n    test 2945 line 328 lon: 90.023922\n    test 2946 line 328 fb: 92.786262\n    test 2947 line 328 lat2: 84.645539196082\n    test 2948 line 328 lon2: 90.023922499395\n    test 2949 line 328 azi2: 92.786261566827\n    test 2950 line 328 lat2: 84.645539196082\n    test 2951 line 328 lon2: 90.023922499396  FAILED, KNOWN, expected 90.023922499395\n    test 2952 line 328 azi2: 92.786261566828  FAILED, KNOWN, expected 92.786261566827\n    test 2953 line 329 lat: 61.618717\n    test 2954 line 329 lon: 162.510959\n    test 2955 line 329 fb: 160.923940\n    test 2956 line 329 lat2: 61.618716728051\n    test 2957 line 329 lon2: 162.510958917359\n    test 2958 line 329 azi2: 160.923939760553\n    test 2959 line 329 lat2: 61.618716728051\n    test 2960 line 329 lon2: 162.510958917359\n    test 2961 line 329 azi2: 160.923939760553\n    test 2962 line 330 lat: 27.643242\n    test 2963 line 330 lon: 45.376215\n    test 2964 line 330 fb: 147.964522\n    test 2965 line 330 lat2: 27.643242341173\n    test 2966 line 330 lon2: 45.376215094118\n    test 2967 line 330 azi2: 147.964522484664\n    test 2968 line 330 lat2: 27.643242341173\n    test 2969 line 330 lon2: 45.376215094118\n    test 2970 line 330 azi2: 147.964522484664\n    test 2971 line 331 lat: 2.218750\n    test 2972 line 331 lon: 170.358342\n    test 2973 line 331 fb: 141.658474\n    test 2974 line 331 lat2: 2.218749985364\n    test 2975 line 331 lon2: 170.358342078292\n    test 2976 line 331 azi2: 141.658474129787\n    test 2977 line 331 lat2: 2.218749985364\n    test 2978 line 331 lon2: 170.358342078292\n    test 2979 line 331 azi2: 141.658474129787\n    test 2980 line 332 lat: 26.019142\n    test 2981 line 332 lon: 32.534760\n    test 2982 line 332 fb: 128.159784\n    test 2983 line 332 lat2: 26.019142329663\n    test 2984 line 332 lon2: 32.534760195963\n    test 2985 line 332 azi2: 128.159784291645\n    test 2986 line 332 lat2: 26.019142329663\n    test 2987 line 332 lon2: 32.534760195963\n    test 2988 line 332 azi2: 128.159784291645\n    test 2989 line 333 lat: 10.049636\n    test 2990 line 333 lon: 72.205347\n    test 2991 line 333 fb: 143.602160\n    test 2992 line 333 lat2: 10.049636247749\n    test 2993 line 333 lon2: 72.205346955818\n    test 2994 line 333 azi2: 143.602159725306\n    test 2995 line 333 lat2: 10.049636247749\n    test 2996 line 333 lon2: 72.205346955818\n    test 2997 line 333 azi2: 143.602159725306\n    test 2998 line 334 lat: -31.030497\n    test 2999 line 334 lon: 91.539195\n    test 3000 line 334 fb: 109.891398\n    test 3001 line 334 lat2: -31.030496743715\n    test 3002 line 334 lon2: 91.539195292896\n    test 3003 line 334 azi2: 109.891398221790\n    test 3004 line 334 lat2: -31.030496743715\n    test 3005 line 334 lon2: 91.539195292896\n    test 3006 line 334 azi2: 109.891398221790\n    test 3007 line 335 lat: 30.113796\n    test 3008 line 335 lon: 109.096982\n    test 3009 line 335 fb: 146.779343\n    test 3010 line 335 lat2: 30.113795853671\n    test 3011 line 335 lon2: 109.096981631502\n    test 3012 line 335 azi2: 146.779343066541\n    test 3013 line 335 lat2: 30.113795853670  FAILED, KNOWN, expected 30.113795853671\n    test 3014 line 335 lon2: 109.096981631502\n    test 3015 line 335 azi2: 146.779343066541\n    test 3016 line 336 lat: -73.967996\n    test 3017 line 336 lon: 65.944243\n    test 3018 line 336 fb: 120.592999\n    test 3019 line 336 lat2: -73.967996185770\n    test 3020 line 336 lon2: 65.944242524678\n    test 3021 line 336 azi2: 120.592998665529\n    test 3022 line 336 lat2: -73.967996185770\n    test 3023 line 336 lon2: 65.944242524678\n    test 3024 line 336 azi2: 120.592998665529\n    test 3025 line 337 lat: 52.211150\n    test 3026 line 337 lon: 168.054185\n    test 3027 line 337 fb: 172.425992\n    test 3028 line 337 lat2: 52.211149755494\n    test 3029 line 337 lon2: 168.054184827868\n    test 3030 line 337 azi2: 172.425991612467\n    test 3031 line 337 lat2: 52.211149755494\n    test 3032 line 337 lon2: 168.054184827868\n    test 3033 line 337 azi2: 172.425991612467\n    test 3034 line 338 lat: -64.497146\n    test 3035 line 338 lon: 72.073419\n    test 3036 line 338 fb: 114.249129\n    test 3037 line 338 lat2: -64.497146189688\n    test 3038 line 338 lon2: 72.073418936581\n    test 3039 line 338 azi2: 114.249128850219\n    test 3040 line 338 lat2: -64.497146189688\n    test 3041 line 338 lon2: 72.073418936581\n    test 3042 line 338 azi2: 114.249128850219\n    test 3043 line 339 lat: -25.711399\n    test 3044 line 339 lon: 6.036423\n    test 3045 line 339 fb: 169.464098\n    test 3046 line 339 lat2: -25.711398997503\n    test 3047 line 339 lon2: 6.036423474639\n    test 3048 line 339 azi2: 169.464098294263\n    test 3049 line 339 lat2: -25.711398997503\n    test 3050 line 339 lon2: 6.036423474639\n    test 3051 line 339 azi2: 169.464098294263\n    test 3052 line 340 lat: 33.904613\n    test 3053 line 340 lon: 30.989094\n    test 3054 line 340 fb: 124.896016\n    test 3055 line 340 lat2: 33.904613360449\n    test 3056 line 340 lon2: 30.989094387217\n    test 3057 line 340 azi2: 124.896016003640\n    test 3058 line 340 lat2: 33.904613360449\n    test 3059 line 340 lon2: 30.989094387217\n    test 3060 line 340 azi2: 124.896016003640\n    test 3061 line 341 lat: -25.053080\n    test 3062 line 341 lon: 137.078639\n    test 3063 line 341 fb: 115.960750\n    test 3064 line 341 lat2: -25.053079543516\n    test 3065 line 341 lon2: 137.078638665495\n    test 3066 line 341 azi2: 115.960750169086\n    test 3067 line 341 lat2: -25.053079543516\n    test 3068 line 341 lon2: 137.078638665495\n    test 3069 line 341 azi2: 115.960750169086\n    test 3070 line 342 lat: 10.298031\n    test 3071 line 342 lon: 27.737374\n    test 3072 line 342 fb: 142.265457\n    test 3073 line 342 lat2: 10.298031202629\n    test 3074 line 342 lon2: 27.737373649973\n    test 3075 line 342 azi2: 142.265457288483\n    test 3076 line 342 lat2: 10.298031202629\n    test 3077 line 342 lon2: 27.737373649973\n    test 3078 line 342 azi2: 142.265457288483\n    test 3079 line 343 lat: -0.738692\n    test 3080 line 343 lon: 150.933627\n    test 3081 line 343 fb: 174.004688\n    test 3082 line 343 lat2: -0.738692377457\n    test 3083 line 343 lon2: 150.933627031610\n    test 3084 line 343 azi2: 174.004687728765\n    test 3085 line 343 lat2: -0.738692377457\n    test 3086 line 343 lon2: 150.933627031610\n    test 3087 line 343 azi2: 174.004687728765\n    test 3088 line 344 lat: 50.619289\n    test 3089 line 344 lon: 67.178203\n    test 3090 line 344 fb: 105.177353\n    test 3091 line 344 lat2: 50.619289349009\n    test 3092 line 344 lon2: 67.178203328135\n    test 3093 line 344 azi2: 105.177353051107\n    test 3094 line 344 lat2: 50.619289349009\n    test 3095 line 344 lon2: 67.178203328134  FAILED, KNOWN, expected 67.178203328135\n    test 3096 line 344 azi2: 105.177353051107\n    test 3097 line 345 lat: -2.127739\n    test 3098 line 345 lon: 38.604245\n    test 3099 line 345 fb: 118.657849\n    test 3100 line 345 lat2: -2.127739360728\n    test 3101 line 345 lon2: 38.604245449983\n    test 3102 line 345 azi2: 118.657849063154\n    test 3103 line 345 lat2: -2.127739360728\n    test 3104 line 345 lon2: 38.604245449983\n    test 3105 line 345 azi2: 118.657849063154\n    test 3106 line 346 lat: 37.188367\n    test 3107 line 346 lon: 90.865255\n    test 3108 line 346 fb: 104.826548\n    test 3109 line 346 lat2: 37.188366752551\n    test 3110 line 346 lon2: 90.865255121714\n    test 3111 line 346 azi2: 104.826548310924\n    test 3112 line 346 lat2: 37.188366752551\n    test 3113 line 346 lon2: 90.865255121714\n    test 3114 line 346 azi2: 104.826548310924\n    test 3115 line 347 lat: 46.019257\n    test 3116 line 347 lon: 20.402591\n    test 3117 line 347 fb: 31.068588\n    test 3118 line 347 lat2: 46.019256998097\n    test 3119 line 347 lon2: 20.402590686048\n    test 3120 line 347 azi2: 31.068587858373\n    test 3121 line 347 lat2: 46.019256998097\n    test 3122 line 347 lon2: 20.402590686048\n    test 3123 line 347 azi2: 31.068587858373\n    test 3124 line 348 lat: 9.023356\n    test 3125 line 348 lon: 106.678645\n    test 3126 line 348 fb: 141.375490\n    test 3127 line 348 lat2: 9.023355647006\n    test 3128 line 348 lon2: 106.678645473545\n    test 3129 line 348 azi2: 141.375490245645\n    test 3130 line 348 lat2: 9.023355647006\n    test 3131 line 348 lon2: 106.678645473545\n    test 3132 line 348 azi2: 141.375490245645\n    test 3133 line 349 lat: -1.321473\n    test 3134 line 349 lon: 67.418879\n    test 3135 line 349 fb: 105.590913\n    test 3136 line 349 lat2: -1.321473235187\n    test 3137 line 349 lon2: 67.418878731595\n    test 3138 line 349 azi2: 105.590912857546\n    test 3139 line 349 lat2: -1.321473235187\n    test 3140 line 349 lon2: 67.418878731595\n    test 3141 line 349 azi2: 105.590912857546\n    test 3142 line 350 lat: 7.459339\n    test 3143 line 350 lon: 30.150648\n    test 3144 line 350 fb: 109.667752\n    test 3145 line 350 lat2: 7.459338626177\n    test 3146 line 350 lon2: 30.150648477470\n    test 3147 line 350 azi2: 109.667751753912\n    test 3148 line 350 lat2: 7.459338626177\n    test 3149 line 350 lon2: 30.150648477470\n    test 3150 line 350 azi2: 109.667751753912\n    test 3151 line 351 lat: 16.344755\n    test 3152 line 351 lon: 146.829160\n    test 3153 line 351 fb: 128.666192\n    test 3154 line 351 lat2: 16.344755038185\n    test 3155 line 351 lon2: 146.829159972334\n    test 3156 line 351 azi2: 128.666191953616\n    test 3157 line 351 lat2: 16.344755038185\n    test 3158 line 351 lon2: 146.829159972334\n    test 3159 line 351 azi2: 128.666191953616\n    test 3160 line 352 lat: -55.785670\n    test 3161 line 352 lon: 158.086173\n    test 3162 line 352 fb: 33.903277\n    test 3163 line 352 lat2: -55.785670347270\n    test 3164 line 352 lon2: 158.086173376809\n    test 3165 line 352 azi2: 33.903276835071\n    test 3166 line 352 lat2: -55.785670347270\n    test 3167 line 352 lon2: 158.086173376809\n    test 3168 line 352 azi2: 33.903276835071\n    test 3169 line 353 lat: -74.409604\n    test 3170 line 353 lon: 111.280935\n    test 3171 line 353 fb: 78.510830\n    test 3172 line 353 lat2: -74.409603561050\n    test 3173 line 353 lon2: 111.280934985965\n    test 3174 line 353 azi2: 78.510830028461\n    test 3175 line 353 lat2: -74.409603561050\n    test 3176 line 353 lon2: 111.280934985965\n    test 3177 line 353 azi2: 78.510830028461\n    test 3178 line 354 lat: 9.922204\n    test 3179 line 354 lon: 138.538334\n    test 3180 line 354 fb: 125.268473\n    test 3181 line 354 lat2: 9.922203731557\n    test 3182 line 354 lon2: 138.538333703571\n    test 3183 line 354 azi2: 125.268473410634\n    test 3184 line 354 lat2: 9.922203731557\n    test 3185 line 354 lon2: 138.538333703571\n    test 3186 line 354 azi2: 125.268473410634\n    test 3187 line 355 lat: -27.082389\n    test 3188 line 355 lon: 91.425844\n    test 3189 line 355 fb: 153.267616\n    test 3190 line 355 lat2: -27.082389068807\n    test 3191 line 355 lon2: 91.425843733185\n    test 3192 line 355 azi2: 153.267616113653\n    test 3193 line 355 lat2: -27.082389068808  FAILED, KNOWN, expected -27.082389068807\n    test 3194 line 355 lon2: 91.425843733185\n    test 3195 line 355 azi2: 153.267616113653\n    test 3196 line 356 lat: 14.627508\n    test 3197 line 356 lon: 74.629605\n    test 3198 line 356 fb: 159.825211\n    test 3199 line 356 lat2: 14.627507744773\n    test 3200 line 356 lon2: 74.629604673488\n    test 3201 line 356 azi2: 159.825210987464\n    test 3202 line 356 lat2: 14.627507744773\n    test 3203 line 356 lon2: 74.629604673488\n    test 3204 line 356 azi2: 159.825210987464\n    test 3205 line 357 lat: 46.941087\n    test 3206 line 357 lon: 18.833436\n    test 3207 line 357 fb: 63.924917\n    test 3208 line 357 lat2: 46.941086934169\n    test 3209 line 357 lon2: 18.833435620675\n    test 3210 line 357 azi2: 63.924916745148\n    test 3211 line 357 lat2: 46.941086934169\n    test 3212 line 357 lon2: 18.833435620675\n    test 3213 line 357 azi2: 63.924916745148\n    test 3214 line 358 lat: 42.371666\n    test 3215 line 358 lon: 126.270074\n    test 3216 line 358 fb: 117.352107\n    test 3217 line 358 lat2: 42.371665615782\n    test 3218 line 358 lon2: 126.270074354353\n    test 3219 line 358 azi2: 117.352106840236\n    test 3220 line 358 lat2: 42.371665615782\n    test 3221 line 358 lon2: 126.270074354353\n    test 3222 line 358 azi2: 117.352106840236\n    test 3223 line 359 lat: 60.888684\n    test 3224 line 359 lon: 106.363657\n    test 3225 line 359 fb: 108.973271\n    test 3226 line 359 lat2: 60.888683732870\n    test 3227 line 359 lon2: 106.363656697522\n    test 3228 line 359 azi2: 108.973271101790\n    test 3229 line 359 lat2: 60.888683732870\n    test 3230 line 359 lon2: 106.363656697522\n    test 3231 line 359 azi2: 108.973271101790\n    test 3232 line 360 lat: 53.972090\n    test 3233 line 360 lon: 136.000658\n    test 3234 line 360 fb: 138.361589\n    test 3235 line 360 lat2: 53.972089572795\n    test 3236 line 360 lon2: 136.000657911062\n    test 3237 line 360 azi2: 138.361588598638\n    test 3238 line 360 lat2: 53.972089572795\n    test 3239 line 360 lon2: 136.000657911062\n    test 3240 line 360 azi2: 138.361588598638\n    test 3241 line 361 lat: 47.850867\n    test 3242 line 361 lon: 25.277934\n    test 3243 line 361 fb: 71.284668\n    test 3244 line 361 lat2: 47.850866585267\n    test 3245 line 361 lon2: 25.277933660114\n    test 3246 line 361 azi2: 71.284667717290\n    test 3247 line 361 lat2: 47.850866585267\n    test 3248 line 361 lon2: 25.277933660114\n    test 3249 line 361 azi2: 71.284667717290\n    test 3250 line 362 lat: 64.280614\n    test 3251 line 362 lon: 16.447697\n    test 3252 line 362 fb: 35.692750\n    test 3253 line 362 lat2: 64.280614171157\n    test 3254 line 362 lon2: 16.447696559380\n    test 3255 line 362 azi2: 35.692750218622\n    test 3256 line 362 lat2: 64.280614171157\n    test 3257 line 362 lon2: 16.447696559380\n    test 3258 line 362 azi2: 35.692750218622\n    test 3259 line 363 lat: -3.339044\n    test 3260 line 363 lon: 91.646260\n    test 3261 line 363 fb: 95.928001\n    test 3262 line 363 lat2: -3.339044133285\n    test 3263 line 363 lon2: 91.646260438368\n    test 3264 line 363 azi2: 95.928000721064\n    test 3265 line 363 lat2: -3.339044133285\n    test 3266 line 363 lon2: 91.646260438368\n    test 3267 line 363 azi2: 95.928000721064\n    test 3268 line 364 lat: -46.029875\n    test 3269 line 364 lon: 30.599197\n    test 3270 line 364 fb: 146.810525\n    test 3271 line 364 lat2: -46.029874698950\n    test 3272 line 364 lon2: 30.599196661458\n    test 3273 line 364 azi2: 146.810525207719\n    test 3274 line 364 lat2: -46.029874698950\n    test 3275 line 364 lon2: 30.599196661458\n    test 3276 line 364 azi2: 146.810525207719\n    test 3277 line 365 lat: 25.605076\n    test 3278 line 365 lon: 14.382003\n    test 3279 line 365 fb: 116.566847\n    test 3280 line 365 lat2: 25.605076391429\n    test 3281 line 365 lon2: 14.382002787798\n    test 3282 line 365 azi2: 116.566847403824\n    test 3283 line 365 lat2: 25.605076391429\n    test 3284 line 365 lon2: 14.382002787798\n    test 3285 line 365 azi2: 116.566847403824\n    test 3286 line 366 lat: -15.052413\n    test 3287 line 366 lon: 150.673460\n    test 3288 line 366 fb: 64.906721\n    test 3289 line 366 lat2: -15.052412502534\n    test 3290 line 366 lon2: 150.673460237577\n    test 3291 line 366 azi2: 64.906720897603\n    test 3292 line 366 lat2: -15.052412502534\n    test 3293 line 366 lon2: 150.673460237577\n    test 3294 line 366 azi2: 64.906720897603\n    test 3295 line 367 lat: -24.631882\n    test 3296 line 367 lon: 170.403348\n    test 3297 line 367 fb: 38.497784\n    test 3298 line 367 lat2: -24.631881773331\n    test 3299 line 367 lon2: 170.403348095216\n    test 3300 line 367 azi2: 38.497783925432\n    test 3301 line 367 lat2: -24.631881773331\n    test 3302 line 367 lon2: 170.403348095216\n    test 3303 line 367 azi2: 38.497783925432\n    test 3304 line 368 lat: 84.347730\n    test 3305 line 368 lon: 37.352130\n    test 3306 line 368 fb: 38.599794\n    test 3307 line 368 lat2: 84.347730272741\n    test 3308 line 368 lon2: 37.352130023033\n    test 3309 line 368 azi2: 38.599794179850\n    test 3310 line 368 lat2: 84.347730272741\n    test 3311 line 368 lon2: 37.352130023033\n    test 3312 line 368 azi2: 38.599794179850\n    test 3313 line 369 lat: 11.680773\n    test 3314 line 369 lon: 170.552617\n    test 3315 line 369 fb: 174.460436\n    test 3316 line 369 lat2: 11.680772997529\n    test 3317 line 369 lon2: 170.552617119135\n    test 3318 line 369 azi2: 174.460435573783\n    test 3319 line 369 lat2: 11.680772997529\n    test 3320 line 369 lon2: 170.552617119135\n    test 3321 line 369 azi2: 174.460435573783\n    test 3322 line 370 lat: -4.129058\n    test 3323 line 370 lon: 136.743627\n    test 3324 line 370 fb: 142.147604\n    test 3325 line 370 lat2: -4.129057873299\n    test 3326 line 370 lon2: 136.743626644380\n    test 3327 line 370 azi2: 142.147603954035\n    test 3328 line 370 lat2: -4.129057873299\n    test 3329 line 370 lon2: 136.743626644380\n    test 3330 line 370 azi2: 142.147603954035\n    test 3331 line 371 lat: 22.191782\n    test 3332 line 371 lon: 164.962392\n    test 3333 line 371 fb: 163.266967\n    test 3334 line 371 lat2: 22.191782097783\n    test 3335 line 371 lon2: 164.962391587580\n    test 3336 line 371 azi2: 163.266967353376\n    test 3337 line 371 lat2: 22.191782097783\n    test 3338 line 371 lon2: 164.962391587580\n    test 3339 line 371 azi2: 163.266967353376\n    test 3340 line 372 lat: -20.517212\n    test 3341 line 372 lon: 128.116444\n    test 3342 line 372 fb: 110.769757\n    test 3343 line 372 lat2: -20.517212185628\n    test 3344 line 372 lon2: 128.116443546305\n    test 3345 line 372 azi2: 110.769757212730\n    test 3346 line 372 lat2: -20.517212185628\n    test 3347 line 372 lon2: 128.116443546305\n    test 3348 line 372 azi2: 110.769757212730\n    test 3349 line 373 lat: -71.269219\n    test 3350 line 373 lon: 117.744329\n    test 3351 line 373 fb: 81.341006\n    test 3352 line 373 lat2: -71.269218648518\n    test 3353 line 373 lon2: 117.744328537214\n    test 3354 line 373 azi2: 81.341005509003\n    test 3355 line 373 lat2: -71.269218648518\n    test 3356 line 373 lon2: 117.744328537214\n    test 3357 line 373 azi2: 81.341005509003\n    test 3358 line 374 lat: -28.381893\n    test 3359 line 374 lon: 4.526029\n    test 3360 line 374 fb: 176.348678\n    test 3361 line 374 lat2: -28.381892766057\n    test 3362 line 374 lon2: 4.526028955177\n    test 3363 line 374 azi2: 176.348678015377\n    test 3364 line 374 lat2: -28.381892766057\n    test 3365 line 374 lon2: 4.526028955177\n    test 3366 line 374 azi2: 176.348678015377\n    test 3367 line 375 lat: -28.786090\n    test 3368 line 375 lon: 25.937634\n    test 3369 line 375 fb: 147.973102\n    test 3370 line 375 lat2: -28.786089606638\n    test 3371 line 375 lon2: 25.937634058027\n    test 3372 line 375 azi2: 147.973102126478\n    test 3373 line 375 lat2: -28.786089606638\n    test 3374 line 375 lon2: 25.937634058027\n    test 3375 line 375 azi2: 147.973102126478\n    test 3376 line 376 lat: -37.872672\n    test 3377 line 376 lon: 116.904193\n    test 3378 line 376 fb: 88.568636\n    test 3379 line 376 lat2: -37.872671755645\n    test 3380 line 376 lon2: 116.904192578457\n    test 3381 line 376 azi2: 88.568636418662\n    test 3382 line 376 lat2: -37.872671755645\n    test 3383 line 376 lon2: 116.904192578457\n    test 3384 line 376 azi2: 88.568636418662\n    test 3385 line 377 lat: -26.321447\n    test 3386 line 377 lon: 85.206987\n    test 3387 line 377 fb: 112.408109\n    test 3388 line 377 lat2: -26.321446841940\n    test 3389 line 377 lon2: 85.206986852001\n    test 3390 line 377 azi2: 112.408108683681\n    test 3391 line 377 lat2: -26.321446841940\n    test 3392 line 377 lon2: 85.206986852001\n    test 3393 line 377 azi2: 112.408108683681\n    test 3394 line 378 lat: -54.824260\n    test 3395 line 378 lon: 156.561574\n    test 3396 line 378 fb: 45.534810\n    test 3397 line 378 lat2: -54.824260467184\n    test 3398 line 378 lon2: 156.561573965853\n    test 3399 line 378 azi2: 45.534810497878\n    test 3400 line 378 lat2: -54.824260467184\n    test 3401 line 378 lon2: 156.561573965853\n    test 3402 line 378 azi2: 45.534810497878\n    test 3403 line 379 lat: -16.423550\n    test 3404 line 379 lon: 36.685134\n    test 3405 line 379 fb: 149.426790\n    test 3406 line 379 lat2: -16.423550298805\n    test 3407 line 379 lon2: 36.685133578511\n    test 3408 line 379 azi2: 149.426789575292\n    test 3409 line 379 lat2: -16.423550298805\n    test 3410 line 379 lon2: 36.685133578511\n    test 3411 line 379 azi2: 149.426789575292\n    test 3412 line 380 lat: -16.806591\n    test 3413 line 380 lon: 149.738610\n    test 3414 line 380 fb: 108.898472\n    test 3415 line 380 lat2: -16.806590952462\n    test 3416 line 380 lon2: 149.738610286185\n    test 3417 line 380 azi2: 108.898472198507\n    test 3418 line 380 lat2: -16.806590952462\n    test 3419 line 380 lon2: 149.738610286185\n    test 3420 line 380 azi2: 108.898472198507\n    test 3421 line 381 lat: 61.200095\n    test 3422 line 381 lon: 179.666196\n    test 3423 line 381 fb: 179.746894\n    test 3424 line 381 lat2: 61.200095175201\n    test 3425 line 381 lon2: 179.666196014679\n    test 3426 line 381 azi2: 179.746893753530\n    test 3427 line 381 lat2: 61.200095175201\n    test 3428 line 381 lon2: 179.666196014679\n    test 3429 line 381 azi2: 179.746893753530\n    test 3430 line 382 lat: 66.474418\n    test 3431 line 382 lon: 1.552183\n    test 3432 line 382 fb: 2.088868\n    test 3433 line 382 lat2: 66.474418401288\n    test 3434 line 382 lon2: 1.552183188407\n    test 3435 line 382 azi2: 2.088868324926\n    test 3436 line 382 lat2: 66.474418401288\n    test 3437 line 382 lon2: 1.552183188407\n    test 3438 line 382 azi2: 2.088868324926\n    test 3439 line 383 lat: -75.177220\n    test 3440 line 383 lon: 158.741597\n    test 3441 line 383 fb: 24.127094\n    test 3442 line 383 lat2: -75.177219719926\n    test 3443 line 383 lon2: 158.741596988185\n    test 3444 line 383 azi2: 24.127093846134\n    test 3445 line 383 lat2: -75.177219719926\n    test 3446 line 383 lon2: 158.741596988185\n    test 3447 line 383 azi2: 24.127093846134\n    test 3448 line 384 lat: 43.592977\n    test 3449 line 384 lon: 90.684526\n    test 3450 line 384 fb: 91.539242\n    test 3451 line 384 lat2: 43.592976578444\n    test 3452 line 384 lon2: 90.684525887486\n    test 3453 line 384 azi2: 91.539242394540\n    test 3454 line 384 lat2: 43.592976578444\n    test 3455 line 384 lon2: 90.684525887486\n    test 3456 line 384 azi2: 91.539242394541  FAILED, KNOWN, expected 91.539242394540\n    test 3457 line 385 lat: -5.075415\n    test 3458 line 385 lon: 101.127103\n    test 3459 line 385 fb: 107.948022\n    test 3460 line 385 lat2: -5.075415464229\n    test 3461 line 385 lon2: 101.127103351067\n    test 3462 line 385 azi2: 107.948021613622\n    test 3463 line 385 lat2: -5.075415464229\n    test 3464 line 385 lon2: 101.127103351067\n    test 3465 line 385 azi2: 107.948021613622\n    test 3466 line 386 lat: 50.406166\n    test 3467 line 386 lon: 135.501939\n    test 3468 line 386 fb: 162.003144\n    test 3469 line 386 lat2: 50.406165949083\n    test 3470 line 386 lon2: 135.501938931444\n    test 3471 line 386 azi2: 162.003144394969\n    test 3472 line 386 lat2: 50.406165949083\n    test 3473 line 386 lon2: 135.501938931444\n    test 3474 line 386 azi2: 162.003144394969\n    test 3475 line 387 lat: -17.207733\n    test 3476 line 387 lon: 43.634692\n    test 3477 line 387 fb: 136.506793\n    test 3478 line 387 lat2: -17.207732564306\n    test 3479 line 387 lon2: 43.634692466982\n    test 3480 line 387 azi2: 136.506792603897\n    test 3481 line 387 lat2: -17.207732564306\n    test 3482 line 387 lon2: 43.634692466982\n    test 3483 line 387 azi2: 136.506792603897\n    test 3484 line 388 lat: -28.917723\n    test 3485 line 388 lon: 163.486470\n    test 3486 line 388 fb: 38.990274\n    test 3487 line 388 lat2: -28.917723347931\n    test 3488 line 388 lon2: 163.486470248682\n    test 3489 line 388 azi2: 38.990273918754\n    test 3490 line 388 lat2: -28.917723347931\n    test 3491 line 388 lon2: 163.486470248682\n    test 3492 line 388 azi2: 38.990273918754\n    test 3493 line 389 lat: -32.592414\n    test 3494 line 389 lon: 76.048812\n    test 3495 line 389 fb: 98.024249\n    test 3496 line 389 lat2: -32.592414472935\n    test 3497 line 389 lon2: 76.048812057267\n    test 3498 line 389 azi2: 98.024248734062\n    test 3499 line 389 lat2: -32.592414472935\n    test 3500 line 389 lon2: 76.048812057267\n    test 3501 line 389 azi2: 98.024248734062\n    test 3502 line 390 lat: 50.602735\n    test 3503 line 390 lon: 49.792893\n    test 3504 line 390 fb: 110.500761\n    test 3505 line 390 lat2: 50.602735331532\n    test 3506 line 390 lon2: 49.792893095354\n    test 3507 line 390 azi2: 110.500760610103\n    test 3508 line 390 lat2: 50.602735331532\n    test 3509 line 390 lon2: 49.792893095354\n    test 3510 line 390 azi2: 110.500760610103\n    test 3511 line 391 lat: -4.912232\n    test 3512 line 391 lon: 142.681744\n    test 3513 line 391 fb: 119.428358\n    test 3514 line 391 lat2: -4.912231564840\n    test 3515 line 391 lon2: 142.681743549937\n    test 3516 line 391 azi2: 119.428358444443\n    test 3517 line 391 lat2: -4.912231564840\n    test 3518 line 391 lon2: 142.681743549937\n    test 3519 line 391 azi2: 119.428358444443\n    test 3520 line 392 lat: -45.213515\n    test 3521 line 392 lon: 131.987859\n    test 3522 line 392 fb: 96.014100\n    test 3523 line 392 lat2: -45.213514932524\n    test 3524 line 392 lon2: 131.987859404857\n    test 3525 line 392 azi2: 96.014100177112\n    test 3526 line 392 lat2: -45.213514932524\n    test 3527 line 392 lon2: 131.987859404857\n    test 3528 line 392 azi2: 96.014100177112\n    test 3529 line 393 lat: -27.151096\n    test 3530 line 393 lon: 127.729463\n    test 3531 line 393 fb: 85.960623\n    test 3532 line 393 lat2: -27.151095883523\n    test 3533 line 393 lon2: 127.729463064736\n    test 3534 line 393 azi2: 85.960623495334\n    test 3535 line 393 lat2: -27.151095883523\n    test 3536 line 393 lon2: 127.729463064736\n    test 3537 line 393 azi2: 85.960623495334\n    test 3538 line 394 lat: 8.000358\n    test 3539 line 394 lon: 144.233747\n    test 3540 line 394 fb: 142.364017\n    test 3541 line 394 lat2: 8.000357843774\n    test 3542 line 394 lon2: 144.233746766535\n    test 3543 line 394 azi2: 142.364016793767\n    test 3544 line 394 lat2: 8.000357843774\n    test 3545 line 394 lon2: 144.233746766535\n    test 3546 line 394 azi2: 142.364016793767\n    test 3547 line 395 lat: -6.431774\n    test 3548 line 395 lon: 170.549196\n    test 3549 line 395 fb: 122.180851\n    test 3550 line 395 lat2: -6.431773707290\n    test 3551 line 395 lon2: 170.549196384306\n    test 3552 line 395 azi2: 122.180850600243\n    test 3553 line 395 lat2: -6.431773707290\n    test 3554 line 395 lon2: 170.549196384306\n    test 3555 line 395 azi2: 122.180850600243\n    test 3556 line 396 lat: 62.834146\n    test 3557 line 396 lon: 171.218298\n    test 3558 line 396 fb: 175.117433\n    test 3559 line 396 lat2: 62.834146216572\n    test 3560 line 396 lon2: 171.218297548713\n    test 3561 line 396 azi2: 175.117432600362\n    test 3562 line 396 lat2: 62.834146216572\n    test 3563 line 396 lon2: 171.218297548713\n    test 3564 line 396 azi2: 175.117432600362\n    test 3565 line 397 lat: 22.902814\n    test 3566 line 397 lon: 70.233438\n    test 3567 line 397 fb: 120.935912\n    test 3568 line 397 lat2: 22.902813652262\n    test 3569 line 397 lon2: 70.233438162142\n    test 3570 line 397 azi2: 120.935911762169\n    test 3571 line 397 lat2: 22.902813652262\n    test 3572 line 397 lon2: 70.233438162142\n    test 3573 line 397 azi2: 120.935911762169\n    test 3574 line 398 lat: 22.584853\n    test 3575 line 398 lon: 31.616865\n    test 3576 line 398 fb: 107.124038\n    test 3577 line 398 lat2: 22.584853282541\n    test 3578 line 398 lon2: 31.616864803984\n    test 3579 line 398 azi2: 107.124038156545\n    test 3580 line 398 lat2: 22.584853282541\n    test 3581 line 398 lon2: 31.616864803984\n    test 3582 line 398 azi2: 107.124038156545\n    test 3583 line 399 lat: 31.269173\n    test 3584 line 399 lon: 65.399306\n    test 3585 line 399 fb: 151.892600\n    test 3586 line 399 lat2: 31.269173344204\n    test 3587 line 399 lon2: 65.399305777763\n    test 3588 line 399 azi2: 151.892599739667\n    test 3589 line 399 lat2: 31.269173344204\n    test 3590 line 399 lon2: 65.399305777763\n    test 3591 line 399 azi2: 151.892599739668  FAILED, KNOWN, expected 151.892599739667\n    test 3592 line 400 lat: 35.519614\n    test 3593 line 400 lon: 143.165122\n    test 3594 line 400 fb: 161.479891\n    test 3595 line 400 lat2: 35.519613515115\n    test 3596 line 400 lon2: 143.165121509798\n    test 3597 line 400 azi2: 161.479891246031\n    test 3598 line 400 lat2: 35.519613515115\n    test 3599 line 400 lon2: 143.165121509798\n    test 3600 line 400 azi2: 161.479891246031\n    test 3601 line 401 lat: -53.741922\n    test 3602 line 401 lon: 67.121402\n    test 3603 line 401 fb: 130.871188\n    test 3604 line 401 lat2: -53.741921506580\n    test 3605 line 401 lon2: 67.121402135047\n    test 3606 line 401 azi2: 130.871188003209\n    test 3607 line 401 lat2: -53.741921506580\n    test 3608 line 401 lon2: 67.121402135047\n    test 3609 line 401 azi2: 130.871188003209\n    test 3610 line 402 lat: 9.046227\n    test 3611 line 402 lon: 35.933737\n    test 3612 line 402 fb: 175.770789\n    test 3613 line 402 lat2: 9.046227267580\n    test 3614 line 402 lon2: 35.933736921417\n    test 3615 line 402 azi2: 175.770788535406\n    test 3616 line 402 lat2: 9.046227267580\n    test 3617 line 402 lon2: 35.933736921417\n    test 3618 line 402 azi2: 175.770788535406\n    test 3619 line 403 lat: 75.917034\n    test 3620 line 403 lon: 125.150808\n    test 3621 line 403 fb: 135.354467\n    test 3622 line 403 lat2: 75.917034235438\n    test 3623 line 403 lon2: 125.150808062636\n    test 3624 line 403 azi2: 135.354466840051\n    test 3625 line 403 lat2: 75.917034235438\n    test 3626 line 403 lon2: 125.150808062636\n    test 3627 line 403 azi2: 135.354466840051\n    test 3628 line 404 lat: -39.724826\n    test 3629 line 404 lon: 77.372087\n    test 3630 line 404 fb: 111.852577\n    test 3631 line 404 lat2: -39.724825618504  FAILED, KNOWN, expected -39.724825618503\n    test 3632 line 404 lon2: 77.372086855267\n    test 3633 line 404 azi2: 111.852577362108\n    test 3634 line 404 lat2: -39.724825618504  FAILED, KNOWN, expected -39.724825618503\n    test 3635 line 404 lon2: 77.372086855267\n    test 3636 line 404 azi2: 111.852577362108\n    test 3637 line 405 lat: 3.917212\n    test 3638 line 405 lon: 142.621752\n    test 3639 line 405 fb: 124.176952\n    test 3640 line 405 lat2: 3.917212154431\n    test 3641 line 405 lon2: 142.621751764236\n    test 3642 line 405 azi2: 124.176952499321\n    test 3643 line 405 lat2: 3.917212154431\n    test 3644 line 405 lon2: 142.621751764236\n    test 3645 line 405 azi2: 124.176952499321\n    test 3646 line 406 lat: 60.230364\n    test 3647 line 406 lon: 26.245689\n    test 3648 line 406 fb: 48.509486\n    test 3649 line 406 lat2: 60.230364486607\n    test 3650 line 406 lon2: 26.245688508507\n    test 3651 line 406 azi2: 48.509486474608\n    test 3652 line 406 lat2: 60.230364486607\n    test 3653 line 406 lon2: 26.245688508507\n    test 3654 line 406 azi2: 48.509486474608\n    test 3655 line 407 lat: 29.597322\n    test 3656 line 407 lon: 29.129808\n    test 3657 line 407 fb: 79.288539\n    test 3658 line 407 lat2: 29.597322070518\n    test 3659 line 407 lon2: 29.129807944898\n    test 3660 line 407 azi2: 79.288538667829\n    test 3661 line 407 lat2: 29.597322070518\n    test 3662 line 407 lon2: 29.129807944898\n    test 3663 line 407 azi2: 79.288538667829\n    test 3664 line 408 lat: -62.913760\n    test 3665 line 408 lon: 14.845859\n    test 3666 line 408 fb: 165.794536\n    test 3667 line 408 lat2: -62.913759669564\n    test 3668 line 408 lon2: 14.845859018930\n    test 3669 line 408 azi2: 165.794535940950\n    test 3670 line 408 lat2: -62.913759669564\n    test 3671 line 408 lon2: 14.845859018930\n    test 3672 line 408 azi2: 165.794535940950\n    test 3673 line 409 lat: 15.360446\n    test 3674 line 409 lon: 161.450680\n    test 3675 line 409 fb: 164.457024\n    test 3676 line 409 lat2: 15.360445685187\n    test 3677 line 409 lon2: 161.450680426049\n    test 3678 line 409 azi2: 164.457024354600\n    test 3679 line 409 lat2: 15.360445685187\n    test 3680 line 409 lon2: 161.450680426049\n    test 3681 line 409 azi2: 164.457024354600\n    test 3682 line 410 lat: -58.330109\n    test 3683 line 410 lon: 17.628134\n    test 3684 line 410 fb: 161.349788\n    test 3685 line 410 lat2: -58.330108507597\n    test 3686 line 410 lon2: 17.628133627705\n    test 3687 line 410 azi2: 161.349788081184\n    test 3688 line 410 lat2: -58.330108507597\n    test 3689 line 410 lon2: 17.628133627705\n    test 3690 line 410 azi2: 161.349788081184\n    test 3691 line 411 lat: -68.514277\n    test 3692 line 411 lon: 19.958792\n    test 3693 line 411 fb: 162.262811\n    test 3694 line 411 lat2: -68.514276940652\n    test 3695 line 411 lon2: 19.958792438281\n    test 3696 line 411 azi2: 162.262811488702\n    test 3697 line 411 lat2: -68.514276940652\n    test 3698 line 411 lon2: 19.958792438281\n    test 3699 line 411 azi2: 162.262811488702\n    test 3700 line 412 lat: -23.686766\n    test 3701 line 412 lon: 77.544158\n    test 3702 line 412 fb: 97.517041\n    test 3703 line 412 lat2: -23.686765736999\n    test 3704 line 412 lon2: 77.544158137101\n    test 3705 line 412 azi2: 97.517041033585\n    test 3706 line 412 lat2: -23.686765736999\n    test 3707 line 412 lon2: 77.544158137101\n    test 3708 line 412 azi2: 97.517041033585\n    test 3709 line 413 lat: -50.843575\n    test 3710 line 413 lon: 118.404202\n    test 3711 line 413 fb: 75.928950\n    test 3712 line 413 lat2: -50.843574559525\n    test 3713 line 413 lon2: 118.404202153051\n    test 3714 line 413 azi2: 75.928950296488\n    test 3715 line 413 lat2: -50.843574559525\n    test 3716 line 413 lon2: 118.404202153051\n    test 3717 line 413 azi2: 75.928950296488\n    test 3718 line 414 lat: 44.438742\n    test 3719 line 414 lon: 152.028260\n    test 3720 line 414 fb: 156.092336\n    test 3721 line 414 lat2: 44.438741945021\n    test 3722 line 414 lon2: 152.028260148130\n    test 3723 line 414 azi2: 156.092336139519\n    test 3724 line 414 lat2: 44.438741945021\n    test 3725 line 414 lon2: 152.028260148130\n    test 3726 line 414 azi2: 156.092336139519\n    test 3727 line 415 lat: 33.820395\n    test 3728 line 415 lon: 178.008342\n    test 3729 line 415 fb: 177.679586\n    test 3730 line 415 lat2: 33.820395378014\n    test 3731 line 415 lon2: 178.008341908011\n    test 3732 line 415 azi2: 177.679585823345\n    test 3733 line 415 lat2: 33.820395378014\n    test 3734 line 415 lon2: 178.008341908011\n    test 3735 line 415 azi2: 177.679585823345\n    test 3736 line 416 lat: 27.506735\n    test 3737 line 416 lon: 153.242452\n    test 3738 line 416 fb: 150.262824\n    test 3739 line 416 lat2: 27.506735286152\n    test 3740 line 416 lon2: 153.242452449881\n    test 3741 line 416 azi2: 150.262824421351\n    test 3742 line 416 lat2: 27.506735286152\n    test 3743 line 416 lon2: 153.242452449881\n    test 3744 line 416 azi2: 150.262824421351\n    test 3745 line 417 lat: -31.250437\n    test 3746 line 417 lon: 179.014499\n    test 3747 line 417 fb: 178.103046\n    test 3748 line 417 lat2: -31.250436707468\n    test 3749 line 417 lon2: 179.014498940190\n    test 3750 line 417 azi2: 178.103045898455\n    test 3751 line 417 lat2: -31.250436707468\n    test 3752 line 417 lon2: 179.014498940190\n    test 3753 line 417 azi2: 178.103045898455\n    test 3754 line 418 lat: 40.341542\n    test 3755 line 418 lon: 109.605984\n    test 3756 line 418 fb: 105.401958\n    test 3757 line 418 lat2: 40.341542234586\n    test 3758 line 418 lon2: 109.605984313079\n    test 3759 line 418 azi2: 105.401958406556\n    test 3760 line 418 lat2: 40.341542234586\n    test 3761 line 418 lon2: 109.605984313079\n    test 3762 line 418 azi2: 105.401958406556\n    test 3763 line 419 lat: 48.318632\n    test 3764 line 419 lon: 92.282799\n    test 3765 line 419 fb: 111.987482\n    test 3766 line 419 lat2: 48.318632112439\n    test 3767 line 419 lon2: 92.282799489208\n    test 3768 line 419 azi2: 111.987482299261\n    test 3769 line 419 lat2: 48.318632112439\n    test 3770 line 419 lon2: 92.282799489208\n    test 3771 line 419 azi2: 111.987482299261\n    test 3772 line 420 lat: 0.675299\n    test 3773 line 420 lon: 6.789301\n    test 3774 line 420 fb: 164.921926\n    test 3775 line 420 lat2: 0.675299289459\n    test 3776 line 420 lon2: 6.789300798072\n    test 3777 line 420 azi2: 164.921926385405\n    test 3778 line 420 lat2: 0.675299289459\n    test 3779 line 420 lon2: 6.789300798072\n    test 3780 line 420 azi2: 164.921926385405\n    test 3781 line 421 lat: 33.232812\n    test 3782 line 421 lon: 170.163205\n    test 3783 line 421 fb: 175.445424\n    test 3784 line 421 lat2: 33.232811536179\n    test 3785 line 421 lon2: 170.163205247231\n    test 3786 line 421 azi2: 175.445424087910\n    test 3787 line 421 lat2: 33.232811536179\n    test 3788 line 421 lon2: 170.163205247231\n    test 3789 line 421 azi2: 175.445424087910\n    test 3790 line 422 lat: 51.425532\n    test 3791 line 422 lon: 167.128188\n    test 3792 line 422 fb: 169.431307\n    test 3793 line 422 lat2: 51.425532151818\n    test 3794 line 422 lon2: 167.128188073883\n    test 3795 line 422 azi2: 169.431306547043\n    test 3796 line 422 lat2: 51.425532151818\n    test 3797 line 422 lon2: 167.128188073883\n    test 3798 line 422 azi2: 169.431306547043\n    test 3799 line 423 lat: 72.043795\n    test 3800 line 423 lon: 23.320161\n    test 3801 line 423 fb: 85.002463\n    test 3802 line 423 lat2: 72.043794732818\n    test 3803 line 423 lon2: 23.320160820556\n    test 3804 line 423 azi2: 85.002463342037\n    test 3805 line 423 lat2: 72.043794732818\n    test 3806 line 423 lon2: 23.320160820556\n    test 3807 line 423 azi2: 85.002463342037\n    test 3808 line 424 lat: 55.279253\n    test 3809 line 424 lon: 148.483684\n    test 3810 line 424 fb: 155.614243\n    test 3811 line 424 lat2: 55.279252586695\n    test 3812 line 424 lon2: 148.483684405588\n    test 3813 line 424 azi2: 155.614243012977\n    test 3814 line 424 lat2: 55.279252586695\n    test 3815 line 424 lon2: 148.483684405588\n    test 3816 line 424 azi2: 155.614243012977\n    test 3817 line 425 lat: 50.054601\n    test 3818 line 425 lon: 43.609545\n    test 3819 line 425 fb: 100.758451\n    test 3820 line 425 lat2: 50.054601019930\n    test 3821 line 425 lon2: 43.609545475731\n    test 3822 line 425 azi2: 100.758450815354\n    test 3823 line 425 lat2: 50.054601019930\n    test 3824 line 425 lon2: 43.609545475731\n    test 3825 line 425 azi2: 100.758450815354\n    test 3826 line 426 lat: 31.194436\n    test 3827 line 426 lon: 31.458476\n    test 3828 line 426 fb: 92.204244\n    test 3829 line 426 lat2: 31.194436445411\n    test 3830 line 426 lon2: 31.458476146984\n    test 3831 line 426 azi2: 92.204244235305\n    test 3832 line 426 lat2: 31.194436445411\n    test 3833 line 426 lon2: 31.458476146984\n    test 3834 line 426 azi2: 92.204244235305\n    test 3835 line 427 lat: 57.758262\n    test 3836 line 427 lon: 164.499274\n    test 3837 line 427 fb: 162.877999\n    test 3838 line 427 lat2: 57.758262113137\n    test 3839 line 427 lon2: 164.499274258053\n    test 3840 line 427 azi2: 162.877999232894\n    test 3841 line 427 lat2: 57.758262113137\n    test 3842 line 427 lon2: 164.499274258053\n    test 3843 line 427 azi2: 162.877999232894\n    test 3844 line 428 lat: 27.006898\n    test 3845 line 428 lon: 173.173812\n    test 3846 line 428 fb: 177.878074\n    test 3847 line 428 lat2: 27.006897756516\n    test 3848 line 428 lon2: 173.173811781657\n    test 3849 line 428 azi2: 177.878073603766\n    test 3850 line 428 lat2: 27.006897756516\n    test 3851 line 428 lon2: 173.173811781657\n    test 3852 line 428 azi2: 177.878073603766\n    test 3853 line 429 lat: -62.917581\n    test 3854 line 429 lon: 18.990464\n    test 3855 line 429 fb: 169.629168\n    test 3856 line 429 lat2: -62.917580953804\n    test 3857 line 429 lon2: 18.990464058493\n    test 3858 line 429 azi2: 169.629168390979\n    test 3859 line 429 lat2: -62.917580953804\n    test 3860 line 429 lon2: 18.990464058493\n    test 3861 line 429 azi2: 169.629168390979\n    test 3862 line 430 lat: -43.128167\n    test 3863 line 430 lon: 61.680974\n    test 3864 line 430 fb: 135.269008\n    test 3865 line 430 lat2: -43.128166633902\n    test 3866 line 430 lon2: 61.680974170546\n    test 3867 line 430 azi2: 135.269008366092\n    test 3868 line 430 lat2: -43.128166633902\n    test 3869 line 430 lon2: 61.680974170546\n    test 3870 line 430 azi2: 135.269008366092\n    test 3871 line 431 lat: -49.314417\n    test 3872 line 431 lon: 55.826072\n    test 3873 line 431 fb: 131.974574\n    test 3874 line 431 lat2: -49.314417365795\n    test 3875 line 431 lon2: 55.826071541563\n    test 3876 line 431 azi2: 131.974573587520\n    test 3877 line 431 lat2: -49.314417365795\n    test 3878 line 431 lon2: 55.826071541563\n    test 3879 line 431 azi2: 131.974573587520\n    test 3880 line 432 lat: -24.322411\n    test 3881 line 432 lon: 103.867391\n    test 3882 line 432 fb: 139.458674\n    test 3883 line 432 lat2: -24.322411486444\n    test 3884 line 432 lon2: 103.867391100271\n    test 3885 line 432 azi2: 139.458674175181\n    test 3886 line 432 lat2: -24.322411486444\n    test 3887 line 432 lon2: 103.867391100271\n    test 3888 line 432 azi2: 139.458674175181\n    test 3889 line 433 lat: -19.557319\n    test 3890 line 433 lon: 81.358495\n    test 3891 line 433 fb: 134.029610\n    test 3892 line 433 lat2: -19.557318635270\n    test 3893 line 433 lon2: 81.358494523202\n    test 3894 line 433 azi2: 134.029609915778\n    test 3895 line 433 lat2: -19.557318635270\n    test 3896 line 433 lon2: 81.358494523202\n    test 3897 line 433 azi2: 134.029609915778\n    test 3898 line 434 lat: 7.830115\n    test 3899 line 434 lon: 5.114172\n    test 3900 line 434 fb: 175.025641\n    test 3901 line 434 lat2: 7.830115253087\n    test 3902 line 434 lon2: 5.114172330857\n    test 3903 line 434 azi2: 175.025640902819\n    test 3904 line 434 lat2: 7.830115253087\n    test 3905 line 434 lon2: 5.114172330857\n    test 3906 line 434 azi2: 175.025640902819\n    test 3907 line 435 lat: -65.834623\n    test 3908 line 435 lon: 41.772796\n    test 3909 line 435 fb: 143.178050\n    test 3910 line 435 lat2: -65.834622858584\n    test 3911 line 435 lon2: 41.772796000787\n    test 3912 line 435 azi2: 143.178050120951\n    test 3913 line 435 lat2: -65.834622858584\n    test 3914 line 435 lon2: 41.772796000787\n    test 3915 line 435 azi2: 143.178050120951\n    test 3916 line 436 lat: -7.997604\n    test 3917 line 436 lon: 31.723397\n    test 3918 line 436 fb: 153.896388\n    test 3919 line 436 lat2: -7.997604143032\n    test 3920 line 436 lon2: 31.723396618974\n    test 3921 line 436 azi2: 153.896387549518\n    test 3922 line 436 lat2: -7.997604143032\n    test 3923 line 436 lon2: 31.723396618974\n    test 3924 line 436 azi2: 153.896387549518\n    test 3925 line 437 lat: -22.173130\n    test 3926 line 437 lon: 164.896770\n    test 3927 line 437 fb: 152.675597\n    test 3928 line 437 lat2: -22.173129586699\n    test 3929 line 437 lon2: 164.896770399383\n    test 3930 line 437 azi2: 152.675596916021\n    test 3931 line 437 lat2: -22.173129586699\n    test 3932 line 437 lon2: 164.896770399383\n    test 3933 line 437 azi2: 152.675596916021\n    test 3934 line 438 lat: 35.085786\n    test 3935 line 438 lon: 173.892271\n    test 3936 line 438 fb: 171.931231\n    test 3937 line 438 lat2: 35.085785799083\n    test 3938 line 438 lon2: 173.892270533009\n    test 3939 line 438 azi2: 171.931230872910\n    test 3940 line 438 lat2: 35.085785799083\n    test 3941 line 438 lon2: 173.892270533009\n    test 3942 line 438 azi2: 171.931230872910\n    test 3943 line 439 lat: -25.378865\n    test 3944 line 439 lon: 2.197740\n    test 3945 line 439 fb: 178.756775\n    test 3946 line 439 lat2: -25.378865450268\n    test 3947 line 439 lon2: 2.197739985587\n    test 3948 line 439 azi2: 178.756775063163\n    test 3949 line 439 lat2: -25.378865450269  FAILED, KNOWN, expected -25.378865450268\n    test 3950 line 439 lon2: 2.197739985587\n    test 3951 line 439 azi2: 178.756775063163\n    test 3952 line 440 lat: -13.782608\n    test 3953 line 440 lon: 143.084799\n    test 3954 line 440 fb: 141.818572\n    test 3955 line 440 lat2: -13.782608118540\n    test 3956 line 440 lon2: 143.084798779239\n    test 3957 line 440 azi2: 141.818572490275\n    test 3958 line 440 lat2: -13.782608118540\n    test 3959 line 440 lon2: 143.084798779239\n    test 3960 line 440 azi2: 141.818572490275\n    test 3961 line 441 lat: -16.657589\n    test 3962 line 441 lon: 100.829440\n    test 3963 line 441 fb: 94.804409\n    test 3964 line 441 lat2: -16.657588778768\n    test 3965 line 441 lon2: 100.829440071396\n    test 3966 line 441 azi2: 94.804408628371\n    test 3967 line 441 lat2: -16.657588778768\n    test 3968 line 441 lon2: 100.829440071396\n    test 3969 line 441 azi2: 94.804408628371\n    test 3970 line 442 lat: 23.629666\n    test 3971 line 442 lon: 148.675531\n    test 3972 line 442 fb: 169.091767\n    test 3973 line 442 lat2: 23.629665922502\n    test 3974 line 442 lon2: 148.675530832608\n    test 3975 line 442 azi2: 169.091766635020\n    test 3976 line 442 lat2: 23.629665922502\n    test 3977 line 442 lon2: 148.675530832608\n    test 3978 line 442 azi2: 169.091766635020\n    test 3979 line 443 lat: 4.022724\n    test 3980 line 443 lon: 161.803702\n    test 3981 line 443 fb: 141.272785\n    test 3982 line 443 lat2: 4.022724409294\n    test 3983 line 443 lon2: 161.803702045621\n    test 3984 line 443 azi2: 141.272784545678\n    test 3985 line 443 lat2: 4.022724409294\n    test 3986 line 443 lon2: 161.803702045621\n    test 3987 line 443 azi2: 141.272784545678\n    test 3988 line 444 lat: 13.280168\n    test 3989 line 444 lon: 20.120413\n    test 3990 line 444 fb: 158.170551\n    test 3991 line 444 lat2: 13.280167579164\n    test 3992 line 444 lon2: 20.120413486875\n    test 3993 line 444 azi2: 158.170551379189\n    test 3994 line 444 lat2: 13.280167579164\n    test 3995 line 444 lon2: 20.120413486875\n    test 3996 line 444 azi2: 158.170551379189\n    test 3997 line 445 lat: -47.521450\n    test 3998 line 445 lon: 150.549196\n    test 3999 line 445 fb: 44.718791\n    test 4000 line 445 lat2: -47.521449956879\n    test 4001 line 445 lon2: 150.549196046351\n    test 4002 line 445 azi2: 44.718791294775\n    test 4003 line 445 lat2: -47.521449956879\n    test 4004 line 445 lon2: 150.549196046351\n    test 4005 line 445 azi2: 44.718791294775\n    test 4006 line 446 lat: 17.790615\n    test 4007 line 446 lon: 141.461006\n    test 4008 line 446 fb: 115.746784\n    test 4009 line 446 lat2: 17.790615163216\n    test 4010 line 446 lon2: 141.461005551791\n    test 4011 line 446 azi2: 115.746784352318\n    test 4012 line 446 lat2: 17.790615163216\n    test 4013 line 446 lon2: 141.461005551791\n    test 4014 line 446 azi2: 115.746784352318\n    test 4015 line 447 lat: -26.519374\n    test 4016 line 447 lon: 98.067906\n    test 4017 line 447 fb: 113.253929\n    test 4018 line 447 lat2: -26.519374288386\n    test 4019 line 447 lon2: 98.067906321718\n    test 4020 line 447 azi2: 113.253928642653\n    test 4021 line 447 lat2: -26.519374288386\n    test 4022 line 447 lon2: 98.067906321718\n    test 4023 line 447 azi2: 113.253928642653\n    test 4024 line 448 lat: -12.401139\n    test 4025 line 448 lon: 73.327970\n    test 4026 line 448 fb: 124.879499\n    test 4027 line 448 lat2: -12.401138571717\n    test 4028 line 448 lon2: 73.327969848986\n    test 4029 line 448 azi2: 124.879499241464\n    test 4030 line 448 lat2: -12.401138571717\n    test 4031 line 448 lon2: 73.327969848986\n    test 4032 line 448 azi2: 124.879499241464\n    test 4033 line 449 lat: 61.619396\n    test 4034 line 449 lon: 99.785406\n    test 4035 line 449 fb: 107.998380\n    test 4036 line 449 lat2: 61.619396375102\n    test 4037 line 449 lon2: 99.785406498835\n    test 4038 line 449 azi2: 107.998379654880\n    test 4039 line 449 lat2: 61.619396375102\n    test 4040 line 449 lon2: 99.785406498835\n    test 4041 line 449 azi2: 107.998379654880\n    test 4042 line 450 lat: 36.997252\n    test 4043 line 450 lon: 56.015643\n    test 4044 line 450 fb: 103.921663\n    test 4045 line 450 lat2: 36.997252125041\n    test 4046 line 450 lon2: 56.015642631106\n    test 4047 line 450 azi2: 103.921662760483\n    test 4048 line 450 lat2: 36.997252125041\n    test 4049 line 450 lon2: 56.015642631106\n    test 4050 line 450 azi2: 103.921662760483\n    test 4051 line 451 lat: 37.824447\n    test 4052 line 451 lon: 83.438440\n    test 4053 line 451 fb: 89.229164\n    test 4054 line 451 lat2: 37.824446788544\n    test 4055 line 451 lon2: 83.438439603294\n    test 4056 line 451 azi2: 89.229164462127\n    test 4057 line 451 lat2: 37.824446788544\n    test 4058 line 451 lon2: 83.438439603294\n    test 4059 line 451 azi2: 89.229164462127\n    test 4060 line 452 lat: 78.387864\n    test 4061 line 452 lon: 118.814812\n    test 4062 line 452 fb: 133.706108\n    test 4063 line 452 lat2: 78.387863550790\n    test 4064 line 452 lon2: 118.814812128945\n    test 4065 line 452 azi2: 133.706108131229\n    test 4066 line 452 lat2: 78.387863550790\n    test 4067 line 452 lon2: 118.814812128944  FAILED, KNOWN, expected 118.814812128945\n    test 4068 line 452 azi2: 133.706108131229\n    test 4069 line 453 lat: -21.219381\n    test 4070 line 453 lon: 53.544400\n    test 4071 line 453 fb: 108.462517\n    test 4072 line 453 lat2: -21.219381398156\n    test 4073 line 453 lon2: 53.544399883561\n    test 4074 line 453 azi2: 108.462517491505\n    test 4075 line 453 lat2: -21.219381398156\n    test 4076 line 453 lon2: 53.544399883561\n    test 4077 line 453 azi2: 108.462517491505\n    test 4078 line 454 lat: 63.304502\n    test 4079 line 454 lon: 132.034926\n    test 4080 line 454 fb: 139.912627\n    test 4081 line 454 lat2: 63.304502042590\n    test 4082 line 454 lon2: 132.034925840674\n    test 4083 line 454 azi2: 139.912627269623\n    test 4084 line 454 lat2: 63.304502042590\n    test 4085 line 454 lon2: 132.034925840674\n    test 4086 line 454 azi2: 139.912627269623\n    test 4087 line 455 lat: 13.515663\n    test 4088 line 455 lon: 8.989766\n    test 4089 line 455 fb: 35.949535\n    test 4090 line 455 lat2: 13.515662875313\n    test 4091 line 455 lon2: 8.989765670730\n    test 4092 line 455 azi2: 35.949534634702\n    test 4093 line 455 lat2: 13.515662875313\n    test 4094 line 455 lon2: 8.989765670730\n    test 4095 line 455 azi2: 35.949534634702\n    test 4096 line 456 lat: -6.742624\n    test 4097 line 456 lon: 4.531931\n    test 4098 line 456 fb: 171.306863\n    test 4099 line 456 lat2: -6.742624347861\n    test 4100 line 456 lon2: 4.531931315168\n    test 4101 line 456 azi2: 171.306863155411\n    test 4102 line 456 lat2: -6.742624347861\n    test 4103 line 456 lon2: 4.531931315168\n    test 4104 line 456 azi2: 171.306863155411\n    test 4105 line 457 lat: -24.910509\n    test 4106 line 457 lon: 128.137682\n    test 4107 line 457 fb: 121.711631\n    test 4108 line 457 lat2: -24.910509138681\n    test 4109 line 457 lon2: 128.137681811633\n    test 4110 line 457 azi2: 121.711631340407\n    test 4111 line 457 lat2: -24.910509138681\n    test 4112 line 457 lon2: 128.137681811633\n    test 4113 line 457 azi2: 121.711631340407\n    test 4114 line 458 lat: -40.687591\n    test 4115 line 458 lon: 76.389897\n    test 4116 line 458 fb: 116.394433\n    test 4117 line 458 lat2: -40.687590598372\n    test 4118 line 458 lon2: 76.389897347637\n    test 4119 line 458 azi2: 116.394432846311\n    test 4120 line 458 lat2: -40.687590598372\n    test 4121 line 458 lon2: 76.389897347637\n    test 4122 line 458 azi2: 116.394432846311\n    test 4123 line 459 lat: 50.593808\n    test 4124 line 459 lon: 155.175630\n    test 4125 line 459 fb: 149.533910\n    test 4126 line 459 lat2: 50.593807692461\n    test 4127 line 459 lon2: 155.175629862288\n    test 4128 line 459 azi2: 149.533910451363\n    test 4129 line 459 lat2: 50.593807692461\n    test 4130 line 459 lon2: 155.175629862288\n    test 4131 line 459 azi2: 149.533910451363\n    test 4132 line 460 lat: 12.198222\n    test 4133 line 460 lon: 165.839456\n    test 4134 line 460 fb: 172.783459\n    test 4135 line 460 lat2: 12.198221826512\n    test 4136 line 460 lon2: 165.839456381799\n    test 4137 line 460 azi2: 172.783459292833\n    test 4138 line 460 lat2: 12.198221826512\n    test 4139 line 460 lon2: 165.839456381799\n    test 4140 line 460 azi2: 172.783459292833\n    test 4141 line 461 lat: 34.436568\n    test 4142 line 461 lon: 7.117338\n    test 4143 line 461 fb: 169.786492\n    test 4144 line 461 lat2: 34.436568298724\n    test 4145 line 461 lon2: 7.117337693395\n    test 4146 line 461 azi2: 169.786491850891\n    test 4147 line 461 lat2: 34.436568298724\n    test 4148 line 461 lon2: 7.117337693395\n    test 4149 line 461 azi2: 169.786491850891\n    test 4150 line 462 lat: -3.145255\n    test 4151 line 462 lon: 30.502293\n    test 4152 line 462 fb: 103.563749\n    test 4153 line 462 lat2: -3.145254788627\n    test 4154 line 462 lon2: 30.502293345016\n    test 4155 line 462 azi2: 103.563748974525\n    test 4156 line 462 lat2: -3.145254788627\n    test 4157 line 462 lon2: 30.502293345016\n    test 4158 line 462 azi2: 103.563748974525\n    test 4159 line 463 lat: 16.264722\n    test 4160 line 463 lon: 85.497207\n    test 4161 line 463 fb: 116.933863\n    test 4162 line 463 lat2: 16.264722156696\n    test 4163 line 463 lon2: 85.497207496626\n    test 4164 line 463 azi2: 116.933862512764  FAILED, KNOWN, expected 116.933862512763\n    test 4165 line 463 lat2: 16.264722156696\n    test 4166 line 463 lon2: 85.497207496627  FAILED, KNOWN, expected 85.497207496626\n    test 4167 line 463 azi2: 116.933862512764  FAILED, KNOWN, expected 116.933862512763\n    test 4168 line 464 lat: 1.433605\n    test 4169 line 464 lon: 4.165940\n    test 4170 line 464 fb: 170.272462\n    test 4171 line 464 lat2: 1.433605151882\n    test 4172 line 464 lon2: 4.165940219923\n    test 4173 line 464 azi2: 170.272462365963\n    test 4174 line 464 lat2: 1.433605151882\n    test 4175 line 464 lon2: 4.165940219923\n    test 4176 line 464 azi2: 170.272462365963\n    test 4177 line 465 lat: -43.326676\n    test 4178 line 465 lon: 153.148367\n    test 4179 line 465 fb: 42.921394\n    test 4180 line 465 lat2: -43.326676023438\n    test 4181 line 465 lon2: 153.148366512832\n    test 4182 line 465 azi2: 42.921393854868\n    test 4183 line 465 lat2: -43.326676023438\n    test 4184 line 465 lon2: 153.148366512832\n    test 4185 line 465 azi2: 42.921393854868\n    test 4186 line 466 lat: 20.405242\n    test 4187 line 466 lon: 178.247549\n    test 4188 line 466 fb: 178.801033\n    test 4189 line 466 lat2: 20.405242225208\n    test 4190 line 466 lon2: 178.247549230810\n    test 4191 line 466 azi2: 178.801032702563\n    test 4192 line 466 lat2: 20.405242225208\n    test 4193 line 466 lon2: 178.247549230810\n    test 4194 line 466 azi2: 178.801032702563\n    test 4195 line 467 lat: -22.482832\n    test 4196 line 467 lon: 140.761211\n    test 4197 line 467 fb: 82.371737\n    test 4198 line 467 lat2: -22.482831544520\n    test 4199 line 467 lon2: 140.761210729739\n    test 4200 line 467 azi2: 82.371736722715\n    test 4201 line 467 lat2: -22.482831544520\n    test 4202 line 467 lon2: 140.761210729739\n    test 4203 line 467 azi2: 82.371736722715\n    test 4204 line 468 lat: -41.151672\n    test 4205 line 468 lon: 38.419124\n    test 4206 line 468 fb: 148.221356\n    test 4207 line 468 lat2: -41.151672070525\n    test 4208 line 468 lon2: 38.419124284860\n    test 4209 line 468 azi2: 148.221356053664\n    test 4210 line 468 lat2: -41.151672070525\n    test 4211 line 468 lon2: 38.419124284860\n    test 4212 line 468 azi2: 148.221356053664\n    test 4213 line 469 lat: -63.212817\n    test 4214 line 469 lon: 15.714998\n    test 4215 line 469 fb: 166.777356\n    test 4216 line 469 lat2: -63.212816746477\n    test 4217 line 469 lon2: 15.714998156904\n    test 4218 line 469 azi2: 166.777356149473\n    test 4219 line 469 lat2: -63.212816746477\n    test 4220 line 469 lon2: 15.714998156904\n    test 4221 line 469 azi2: 166.777356149473\n    test 4222 line 470 lat: -33.892681\n    test 4223 line 470 lon: 120.971496\n    test 4224 line 470 fb: 170.404814\n    test 4225 line 470 lat2: -33.892680517408\n    test 4226 line 470 lon2: 120.971495805190\n    test 4227 line 470 azi2: 170.404813772447\n    test 4228 line 470 lat2: -33.892680517408\n    test 4229 line 470 lon2: 120.971495805190\n    test 4230 line 470 azi2: 170.404813772447\n    test 4231 line 471 lat: -17.570093\n    test 4232 line 471 lon: 137.259693\n    test 4233 line 471 fb: 175.973637\n    test 4234 line 471 lat2: -17.570092516031\n    test 4235 line 471 lon2: 137.259693182063\n    test 4236 line 471 azi2: 175.973637230107\n    test 4237 line 471 lat2: -17.570092516031\n    test 4238 line 471 lon2: 137.259693182063\n    test 4239 line 471 azi2: 175.973637230107\n    test 4240 line 472 lat: -24.221028\n    test 4241 line 472 lon: 33.960052\n    test 4242 line 472 fb: 130.753279\n    test 4243 line 472 lat2: -24.221027716301  FAILED, KNOWN, expected -24.221027716300\n    test 4244 line 472 lon2: 33.960051796001\n    test 4245 line 472 azi2: 130.753279335550\n    test 4246 line 472 lat2: -24.221027716301  FAILED, KNOWN, expected -24.221027716300\n    test 4247 line 472 lon2: 33.960051796001\n    test 4248 line 472 azi2: 130.753279335550\n    test 4249 line 473 lat: -48.849133\n    test 4250 line 473 lon: 176.601435\n    test 4251 line 473 fb: 5.037779\n    test 4252 line 473 lat2: -48.849132604777\n    test 4253 line 473 lon2: 176.601435366477\n    test 4254 line 473 azi2: 5.037779120578\n    test 4255 line 473 lat2: -48.849132604777\n    test 4256 line 473 lon2: 176.601435366477\n    test 4257 line 473 azi2: 5.037779120578\n    test 4258 line 474 lat: -50.620233\n    test 4259 line 474 lon: 22.061011\n    test 4260 line 474 fb: 159.730881\n    test 4261 line 474 lat2: -50.620232529081\n    test 4262 line 474 lon2: 22.061010504617\n    test 4263 line 474 azi2: 159.730880799186\n    test 4264 line 474 lat2: -50.620232529081\n    test 4265 line 474 lon2: 22.061010504617\n    test 4266 line 474 azi2: 159.730880799186\n    test 4267 line 475 lat: -11.354875\n    test 4268 line 475 lon: 76.258812\n    test 4269 line 475 fb: 104.014357\n    test 4270 line 475 lat2: -11.354875472483\n    test 4271 line 475 lon2: 76.258812283705\n    test 4272 line 475 azi2: 104.014356938495\n    test 4273 line 475 lat2: -11.354875472483\n    test 4274 line 475 lon2: 76.258812283705\n    test 4275 line 475 azi2: 104.014356938495\n    test 4276 line 476 lat: -19.640051\n    test 4277 line 476 lon: 105.698979\n    test 4278 line 476 fb: 156.650619\n    test 4279 line 476 lat2: -19.640050782646\n    test 4280 line 476 lon2: 105.698978700604\n    test 4281 line 476 azi2: 156.650619021389\n    test 4282 line 476 lat2: -19.640050782646\n    test 4283 line 476 lon2: 105.698978700604\n    test 4284 line 476 azi2: 156.650619021389\n    test 4285 line 477 lat: 83.855267\n    test 4286 line 477 lon: 112.674858\n    test 4287 line 477 fb: 122.383784\n    test 4288 line 477 lat2: 83.855266840098\n    test 4289 line 477 lon2: 112.674858066810\n    test 4290 line 477 azi2: 122.383784147681\n    test 4291 line 477 lat2: 83.855266840098\n    test 4292 line 477 lon2: 112.674858066811  FAILED, KNOWN, expected 112.674858066810\n    test 4293 line 477 azi2: 122.383784147681\n    test 4294 line 478 lat: 48.296558\n    test 4295 line 478 lon: 34.072463\n    test 4296 line 478 fb: 61.415867\n    test 4297 line 478 lat2: 48.296557545891\n    test 4298 line 478 lon2: 34.072462542900\n    test 4299 line 478 azi2: 61.415867309157\n    test 4300 line 478 lat2: 48.296557545891\n    test 4301 line 478 lon2: 34.072462542900\n    test 4302 line 478 azi2: 61.415867309157\n    test 4303 line 479 lat: 20.173772\n    test 4304 line 479 lon: 12.682422\n    test 4305 line 479 fb: 165.220898\n    test 4306 line 479 lat2: 20.173772376863\n    test 4307 line 479 lon2: 12.682422408956\n    test 4308 line 479 azi2: 165.220897942891\n    test 4309 line 479 lat2: 20.173772376863\n    test 4310 line 479 lon2: 12.682422408956\n    test 4311 line 479 azi2: 165.220897942891\n    test 4312 line 480 lat: 47.501521\n    test 4313 line 480 lon: 54.338775\n    test 4314 line 480 fb: 80.572388\n    test 4315 line 480 lat2: 47.501521345953\n    test 4316 line 480 lon2: 54.338775236773\n    test 4317 line 480 azi2: 80.572387690286\n    test 4318 line 480 lat2: 47.501521345953\n    test 4319 line 480 lon2: 54.338775236773\n    test 4320 line 480 azi2: 80.572387690286\n    test 4321 line 481 lat: -34.023172\n    test 4322 line 481 lon: 174.310259\n    test 4323 line 481 fb: 123.138509\n    test 4324 line 481 lat2: -34.023171607796\n    test 4325 line 481 lon2: 174.310258612178\n    test 4326 line 481 azi2: 123.138509441522\n    test 4327 line 481 lat2: -34.023171607796\n    test 4328 line 481 lon2: 174.310258612178\n    test 4329 line 481 azi2: 123.138509441522\n    test 4330 line 482 lat: -31.540913\n    test 4331 line 482 lon: 52.441924\n    test 4332 line 482 fb: 155.194513\n    test 4333 line 482 lat2: -31.540912691186\n    test 4334 line 482 lon2: 52.441923606881  FAILED, KNOWN, expected 52.441923606882\n    test 4335 line 482 azi2: 155.194512958367\n    test 4336 line 482 lat2: -31.540912691186\n    test 4337 line 482 lon2: 52.441923606881  FAILED, KNOWN, expected 52.441923606882\n    test 4338 line 482 azi2: 155.194512958367\n    test 4339 line 483 lat: 64.121649\n    test 4340 line 483 lon: 21.295234\n    test 4341 line 483 fb: 51.966943\n    test 4342 line 483 lat2: 64.121648788158\n    test 4343 line 483 lon2: 21.295234110583\n    test 4344 line 483 azi2: 51.966943039534\n    test 4345 line 483 lat2: 64.121648788158\n    test 4346 line 483 lon2: 21.295234110583\n    test 4347 line 483 azi2: 51.966943039534\n    test 4348 line 484 lat: -4.599613\n    test 4349 line 484 lon: 107.727091\n    test 4350 line 484 fb: 109.270070\n    test 4351 line 484 lat2: -4.599612537190\n    test 4352 line 484 lon2: 107.727090701893\n    test 4353 line 484 azi2: 109.270070124629\n    test 4354 line 484 lat2: -4.599612537190\n    test 4355 line 484 lon2: 107.727090701893\n    test 4356 line 484 azi2: 109.270070124629\n    test 4357 line 485 lat: -16.799515\n    test 4358 line 485 lon: 43.675397\n    test 4359 line 485 fb: 144.940350\n    test 4360 line 485 lat2: -16.799514501718\n    test 4361 line 485 lon2: 43.675397103786  FAILED, KNOWN, expected 43.675397103785\n    test 4362 line 485 azi2: 144.940350340820\n    test 4363 line 485 lat2: -16.799514501718\n    test 4364 line 485 lon2: 43.675397103786  FAILED, KNOWN, expected 43.675397103785\n    test 4365 line 485 azi2: 144.940350340820\n    test 4366 line 486 lat: -16.337411\n    test 4367 line 486 lon: 13.110283\n    test 4368 line 486 fb: 167.467077\n    test 4369 line 486 lat2: -16.337410785184\n    test 4370 line 486 lon2: 13.110282576579\n    test 4371 line 486 azi2: 167.467077049713\n    test 4372 line 486 lat2: -16.337410785184\n    test 4373 line 486 lon2: 13.110282576579\n    test 4374 line 486 azi2: 167.467077049713\n    test 4375 line 487 lat: -26.145379\n    test 4376 line 487 lon: 9.977868\n    test 4377 line 487 fb: 171.929335\n    test 4378 line 487 lat2: -26.145378737931\n    test 4379 line 487 lon2: 9.977868070750\n    test 4380 line 487 azi2: 171.929335050809\n    test 4381 line 487 lat2: -26.145378737931\n    test 4382 line 487 lon2: 9.977868070750\n    test 4383 line 487 azi2: 171.929335050809\n    test 4384 line 488 lat: -3.245748\n    test 4385 line 488 lon: 71.931981\n    test 4386 line 488 fb: 124.120047\n    test 4387 line 488 lat2: -3.245748416402\n    test 4388 line 488 lon2: 71.931980979620\n    test 4389 line 488 azi2: 124.120046609527\n    test 4390 line 488 lat2: -3.245748416402\n    test 4391 line 488 lon2: 71.931980979620\n    test 4392 line 488 azi2: 124.120046609527\n    test 4393 line 489 lat: 72.975644\n    test 4394 line 489 lon: 36.459313\n    test 4395 line 489 fb: 49.411324\n    test 4396 line 489 lat2: 72.975644407376\n    test 4397 line 489 lon2: 36.459312843012\n    test 4398 line 489 azi2: 49.411324496539\n    test 4399 line 489 lat2: 72.975644407376\n    test 4400 line 489 lon2: 36.459312843012\n    test 4401 line 489 azi2: 49.411324496539\n    test 4402 line 490 lat: 50.342418\n    test 4403 line 490 lon: 35.445910\n    test 4404 line 490 fb: 43.087650\n    test 4405 line 490 lat2: 50.342417843481\n    test 4406 line 490 lon2: 35.445910446930\n    test 4407 line 490 azi2: 43.087650398316\n    test 4408 line 490 lat2: 50.342417843481\n    test 4409 line 490 lon2: 35.445910446930\n    test 4410 line 490 azi2: 43.087650398316\n    test 4411 line 491 lat: -22.878804\n    test 4412 line 491 lon: 69.376306\n    test 4413 line 491 fb: 102.211558\n    test 4414 line 491 lat2: -22.878804028267\n    test 4415 line 491 lon2: 69.376306288000\n    test 4416 line 491 azi2: 102.211557813582\n    test 4417 line 491 lat2: -22.878804028267\n    test 4418 line 491 lon2: 69.376306288000\n    test 4419 line 491 azi2: 102.211557813582\n    test 4420 line 492 lat: 21.254912\n    test 4421 line 492 lon: 21.899215\n    test 4422 line 492 fb: 92.966926\n    test 4423 line 492 lat2: 21.254912121078\n    test 4424 line 492 lon2: 21.899214754868\n    test 4425 line 492 azi2: 92.966926161390\n    test 4426 line 492 lat2: 21.254912121078\n    test 4427 line 492 lon2: 21.899214754868\n    test 4428 line 492 azi2: 92.966926161390\n    test 4429 line 493 lat: 26.486641\n    test 4430 line 493 lon: 19.097603\n    test 4431 line 493 fb: 158.053447\n    test 4432 line 493 lat2: 26.486640906235\n    test 4433 line 493 lon2: 19.097602913800\n    test 4434 line 493 azi2: 158.053446850267\n    test 4435 line 493 lat2: 26.486640906235\n    test 4436 line 493 lon2: 19.097602913800\n    test 4437 line 493 azi2: 158.053446850267\n    test 4438 line 494 lat: 43.041538\n    test 4439 line 494 lon: 114.186950\n    test 4440 line 494 fb: 155.795323\n    test 4441 line 494 lat2: 43.041538374784\n    test 4442 line 494 lon2: 114.186949886941\n    test 4443 line 494 azi2: 155.795322500736\n    test 4444 line 494 lat2: 43.041538374784\n    test 4445 line 494 lon2: 114.186949886941\n    test 4446 line 494 azi2: 155.795322500736\n    test 4447 line 495 lat: -10.570764\n    test 4448 line 495 lon: 107.625834\n    test 4449 line 495 fb: 98.142401\n    test 4450 line 495 lat2: -10.570763915882\n    test 4451 line 495 lon2: 107.625834147204\n    test 4452 line 495 azi2: 98.142400502747\n    test 4453 line 495 lat2: -10.570763915882\n    test 4454 line 495 lon2: 107.625834147204\n    test 4455 line 495 azi2: 98.142400502747\n    test 4456 line 496 lat: 12.624313\n    test 4457 line 496 lon: 139.841077\n    test 4458 line 496 fb: 148.385662\n    test 4459 line 496 lat2: 12.624313141297\n    test 4460 line 496 lon2: 139.841076840613\n    test 4461 line 496 azi2: 148.385661923898\n    test 4462 line 496 lat2: 12.624313141297\n    test 4463 line 496 lon2: 139.841076840613\n    test 4464 line 496 azi2: 148.385661923898\n    test 4465 line 497 lat: -25.169999\n    test 4466 line 497 lon: 33.175749\n    test 4467 line 497 fb: 169.905377\n    test 4468 line 497 lat2: -25.169998746665\n    test 4469 line 497 lon2: 33.175749310362\n    test 4470 line 497 azi2: 169.905376778384\n    test 4471 line 497 lat2: -25.169998746665\n    test 4472 line 497 lon2: 33.175749310362\n    test 4473 line 497 azi2: 169.905376778384\n    test 4474 line 498 lat: -41.360282\n    test 4475 line 498 lon: 147.341948\n    test 4476 line 498 fb: 136.551910\n    test 4477 line 498 lat2: -41.360281944908\n    test 4478 line 498 lon2: 147.341948469937\n    test 4479 line 498 azi2: 136.551910060918\n    test 4480 line 498 lat2: -41.360281944908\n    test 4481 line 498 lon2: 147.341948469937\n    test 4482 line 498 azi2: 136.551910060918\n    test 4483 line 499 lat: 39.182099\n    test 4484 line 499 lon: 150.590705\n    test 4485 line 499 fb: 165.522951\n    test 4486 line 499 lat2: 39.182099298590\n    test 4487 line 499 lon2: 150.590705311219\n    test 4488 line 499 azi2: 165.522950851635\n    test 4489 line 499 lat2: 39.182099298590\n    test 4490 line 499 lon2: 150.590705311219\n    test 4491 line 499 azi2: 165.522950851635\n    test 4492 line 500 lat: -57.494441\n    test 4493 line 500 lon: 113.054057\n    test 4494 line 500 fb: 130.988277\n    test 4495 line 500 lat2: -57.494440629886\n    test 4496 line 500 lon2: 113.054056725195\n    test 4497 line 500 azi2: 130.988276746436\n    test 4498 line 500 lat2: -57.494440629886\n    test 4499 line 500 lon2: 113.054056725195\n    test 4500 line 500 azi2: 130.988276746436\n    test 4501 WGS84.KsOrder: 8\n\n    542 of 4501 testEllipsoidalGeodTest.py tests (12.0%) FAILED, incl. 42 KNOWN plus 500 DeprecationWarnings (pygeodesy 26.3.26 PyPy 7.3.17 Python 3.10.14 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 2.453 sec\nrunning /opt/local/bin/p....y3.10 -W default ~/PyGeodesy/test/testEllipsoids.py\n# lazily imported pygeodesy.basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.DeprecationWarnings from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isint from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isLazy from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.issubclassof from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.iterNumpy2over from .iters by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.LazyImportError from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.karney by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.NN from .interns by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.normDMS from .dms by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.pairs from .streprs by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.printf from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.property_RO from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.typename from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.EcefKarney from .ecef by testEllipsoids.py line 11\n# lazily imported pygeodesy.Ellipsoid from .ellipsoids by testEllipsoids.py line 11\n# lazily imported pygeodesy.Ellipsoid2 from .ellipsoids by testEllipsoids.py line 11\n# lazily imported pygeodesy.Ellipsoids from .ellipsoids by testEllipsoids.py line 11\n# lazily imported pygeodesy.Vector3d from .vector3d by testEllipsoids.py line 11\n# lazily imported pygeodesy.a_b2f_ from .ellipsoids by testEllipsoids.py line 11\n# lazily imported pygeodesy.a_b2f2 from .ellipsoids by testEllipsoids.py line 11\n# lazily imported pygeodesy.a_b2n from .ellipsoids by testEllipsoids.py line 11\n# lazily imported pygeodesy.a_f2Tuple from .ellipsoids by testEllipsoids.py line 11\n# lazily imported pygeodesy.b_f2a from .ellipsoids by testEllipsoids.py line 11\n# lazily imported pygeodesy.b_f_2a from .ellipsoids by testEllipsoids.py line 11\n# lazily imported pygeodesy.circle4 from .utily by testEllipsoids.py line 11\n# lazily imported pygeodesy.e2f from .ellipsoids by testEllipsoids.py line 11\n# lazily imported pygeodesy.f_2f from .ellipsoids by testEllipsoids.py line 11\n# lazily imported pygeodesy.fstr from .streprs by testEllipsoids.py line 11\n# lazily imported pygeodesy.hypot_ from .fmath by testEllipsoids.py line 11\n# lazily imported pygeodesy.n2e2 from .ellipsoids by testEllipsoids.py line 11\n# lazily imported pygeodesy.n2f from .ellipsoids by testEllipsoids.py line 11\n# lazily imported pygeodesy.PI_2 from .constants by testEllipsoids.py line 11\n# lazily imported pygeodesy.R_M from .constants by testEllipsoids.py line 11\n# lazily imported pygeodesy.sincos2d from .utily by testEllipsoids.py line 11\n# lazily imported pygeodesy.unstr from .streprs by testEllipsoids.py line 11\n\n    testing testEllipsoids.py 25.08.28 (module pygeodesy.ellipsoids 26.03.25) isLazy=3\n    test 1 ellipsoid: True\n    test 2 TestEllipsoid: name='TestEllipsoid', a=1000, f=0, f_=0, b=1000\n\n    testWGS84(pygeodesy.ellipsoids, 26.03.25)\n    test 3 R1: 6371008.7714\n    test 4 R2: 6371007.2\n    test 5 R3: 6371000.8\n    test 6 A: 6367449.1\n# lazily imported pygeodesy.elliptic by ellipsoids.py line 856\n    test 7 L: 10001965.7\n    test 8 Rrectifying: 6367449.1\n    test 9 Rgeometric: 6367435.7\n    test 10 Rgeocentric: 6378137.000\n    test 11 Rgeocentric: 6367489.544\n    test 12 Rgeocentric: 6356752.314\n# lazily imported pygeodesy.angles by units.py line 633\n    test 13 Rlat: 6378137.000\n    test 14 Rlat: 6367444.657\n    test 15 Rlat: 6356752.314\n    test 16 circle4.radius: 6378137.000\n    test 17 circle4.radius: 4517590.879\n    test 18 circle4.radius: 0.000\n    test 19 distance2: 156903.472, 45.192\n    test 20 distance2: 1569034.719, 45.192\n    test 21 distance2: 1400742.676, 37.563\n    test 22 distance2: 1179164.848, 18.896\n    test 23 roc2: 6335439.327, 6378137.0\n    test 24 roc2: 6367381.816, 6388838.29\n    test 25 roc2: 6399593.626, 6399593.626\n    test 26 rocBearing: 6335439.327\n    test 27 rocBearing: 6378092.008\n    test 28 rocBearing: 6399593.626\n    test 29 rocGauss: 6356752.314\n    test 30 rocGauss: 6378101.030\n    test 31 rocGauss: 6399593.626\n    test 32 rocMean: 6356716.465\n    test 33 rocMean: 6378092.008\n    test 34 rocMean: 6399593.626\n    test 35 rocMeridional: 6335439.327\n    test 36 rocMeridional: 6367381.816\n    test 37 rocMeridional: 6399593.626\n    test 38 rocPrimeVertical: 6378137.0\n    test 39 rocPrimeVertical: 6388838.29\n    test 40 rocPrimeVertical: 6399593.626\n\n    testGRS80(pygeodesy.ellipsoids, 26.03.25)\n    test 41 R1: 6371008.7714\n    test 42 R2: 6371007.2\n    test 43 R3: 6371000.8\n    test 44 A: 6367449.1\n    test 45 L: 10001965.7\n    test 46 Rrectifying: 6367449.1\n    test 47 Rgeometric: 6367435.7\n    test 48 Rgeocentric: 6378137.000\n    test 49 Rgeocentric: 6367489.544\n    test 50 Rgeocentric: 6356752.314\n    test 51 Rlat: 6378137.000\n    test 52 Rlat: 6367444.657\n    test 53 Rlat: 6356752.314\n    test 54 circle4.radius: 6378137.000\n    test 55 circle4.radius: 4517590.879\n    test 56 circle4.radius: 0.000\n    test 57 distance2: 156903.472, 45.192\n    test 58 distance2: 1569034.719, 45.192\n    test 59 distance2: 1400742.676, 37.563\n    test 60 distance2: 1179164.848, 18.896\n    test 61 roc2: 6335439.327, 6378137.0\n    test 62 roc2: 6367381.816, 6388838.29\n    test 63 roc2: 6399593.626, 6399593.626\n    test 64 rocBearing: 6335439.327\n    test 65 rocBearing: 6378092.008\n    test 66 rocBearing: 6399593.626\n    test 67 rocGauss: 6356752.314\n    test 68 rocGauss: 6378101.030\n    test 69 rocGauss: 6399593.626\n    test 70 rocMean: 6356716.465\n    test 71 rocMean: 6378092.008\n    test 72 rocMean: 6399593.626\n    test 73 rocMeridional: 6335439.327\n    test 74 rocMeridional: 6367381.816\n    test 75 rocMeridional: 6399593.626\n    test 76 rocPrimeVertical: 6378137.0\n    test 77 rocPrimeVertical: 6388838.29\n    test 78 rocPrimeVertical: 6399593.626\n\n    test<function Ellipsoid.__init__ at 0x00000008dc211ec0>(pygeodesy.ellipsoids, 26.03.25)\n    test 79 a, b, None: 2.0\n    test 80 a, None, f_: 500.0\n\n    testWGS84(pygeodesy.ellipsoids, 26.03.25)\n    test 81 WGS84.copy: True\n    test 82 WGS84.copy: True\n    test 83 WGS84.find: None\n    test 84 WGS84.a2_b: 6399593.625758\n    test 85 WGS84.b2_a: 6335439.327293\n    test 86 WGS84.R2: 6371007.180918\n    test 87 WGS84.c2: 40589732499315\n    test 88 WGS84.es: 0.081819\n    test 89 WGS84.e22: 0.006739\n    test 90 WGS84.f2: 0.003364\n    test 91 WGS84.m2degrees: 90\n    test 92 WGS84.degrees2m: 10018754\n    test 93 WGS84.area: 5.101e+14\n    test 94 WGS84.volume: 1.083e+21\n    test 95 WGS84.ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 96 WGS84.ecef: WGS84\n    test 97 WGS84: name='WGS84', a=6378137, f=0.0033528107, f_=298.257223563, b=6356752.3142451793, f2=0.0033640898, n=0.0016792204, e=0.0818191908, e2=0.00669438, e21=0.99330562, e22=0.0067394967, e32=0.0033584313, A=6367449.1458234144, L=10001965.7293127235, R1=6371008.7714150595, R2=6371007.1809184738, R3=6371000.7900091587, Rbiaxial=6367453.6345163295, Rtriaxial=6372797.5559594007\n    test 98 WGS84.: A=6367449.1458234144, e=0.0818191908, f_=298.2572235630, n=0.0016792204 (1.5612511284e-17)\n\n    testKruegers(pygeodesy.ellipsoids, 26.03.25)\n    test 99 WGS84.AlphaKs: 8.377318206245e-04, 7.608527773572e-07, 1.197645503242e-09, 2.429170680397e-12, 5.711818370428e-15, 1.47999793138e-17, 4.107624109371e-20, 1.210785038923e-22\n    test 100 WGS84.BetaKs : 8.377321640579e-04, 5.90587015222e-08, 1.673482665344e-10, 2.164798110491e-13, 3.787930968626e-16, 7.236769021816e-19, 1.493479824778e-21, 3.259522545838e-24\n    test 101 WGS84.AlphaKs: 8.377318206245e-04, 7.608527773572e-07, 1.197645503329e-09, 2.429170607201e-12, 5.711757677866e-15, 1.491117731258e-17\n    test 102 WGS84.BetaKs : 8.377321640579e-04, 5.90587015222e-08, 1.673482665284e-10, 2.164798040063e-13, 3.787978046169e-16, 7.248748890694e-19\n    test 103 WGS84.AlphaKs: 8.377318206304e-04, 7.608527714249e-07, 1.197638001561e-09, 2.443376194522e-12\n    test 104 WGS84.BetaKs : 8.377321640601e-04, 5.905869567934e-08, 1.673488880355e-10, 2.167737763022e-13\n\n    testProlate(pygeodesy.ellipsoids, 26.03.25)\n    test 105 a [Radius_]: 6356752.314\n    test 106 b [Radius_]: 6378137.000\n    test 107 n [Float]: -0.002\n    test 108 R1 [Radius]: 6363880.543\n    test 109 R2 [Radius]: 6363878.941\n    test 110 R3 [Radius]: 6363872.564\n    test 111 Rbiaxial [Radius]: 6367453.635\n    test 112 Rgeometric [Radius]: 6367435.680\n    test 113 c2 [Meter2]: 40498955180263.188\n    test 114 area [Meter2]: 508924880289508.500\n    test 115 volume [Meter3]: 1079575530747445379072.000\n\n    testauxLats WGS84(pygeodesy.ellipsoids, 26.03.25)\n    test 116 isEllipsoidal: True\n    test 117 isOblate: True\n    test 118 isProlate: False\n    test 119 isSpherical: False\n# lazily imported pygeodesy.albers by ellipsoids.py line 383\n    test 120 auxAuthalic(-90): -90.0\n    test 121 name: auxAuthalic\n    test 122 inverse: lat (-90.0)\n    test 123 auxConformal(-90): -90.0\n    test 124 name: auxConformal\n    test 125 inverse: lat (-90.0)\n    test 126 auxRectifying(-90): -90.0\n    test 127 name: auxRectifying\n    test 128 inverse: lat (-90.0)\n    test 129 auxIsometric(-90): -2178.287790219\n    test 130 name: auxIsometric\n    test 131 inverse: lat (-90.0)\n    test 132 auxParametric(-90): -90.0\n    test 133 name: auxParametric\n    test 134 inverse: lat (-90.0)\n    test 135 auxGeocentric(-90): -90.0\n    test 136 name: auxGeocentric\n    test 137 inverse: lat (-90.0)\n    test 138 auxGeocentric(-90, height=1.0e+06): -90.0\n    test 139 name: auxGeocentric\n    test 140 inverse: lat (-90.0)\n    test 141 auxAuthalic(-61): -60.891087993\n    test 142 name: auxAuthalic\n    test 143 inverse: lat (-61.0)\n    test 144 auxConformal(-61): -60.836664626\n    test 145 name: auxConformal\n    test 146 inverse: lat (-61.0)\n    test 147 auxRectifying(-61): -60.877475063\n    test 148 name: auxRectifying\n    test 149 inverse: lat (-61.0)\n    test 150 auxIsometric(-61): -77.151044895\n    test 151 name: auxIsometric\n    test 152 inverse: lat (-61.0)\n    test 153 auxParametric(-61): -60.918334778\n    test 154 name: auxParametric\n    test 155 inverse: lat (-61.0)\n    test 156 auxGeocentric(-61): -60.836524751\n    test 157 name: auxGeocentric\n    test 158 inverse: lat (-61.0)\n    test 159 auxGeocentric(-61, height=1.0e+06): -60.858730579\n    test 160 name: auxGeocentric\n    test 161 inverse: lat (-61.0)\n    test 162 auxAuthalic(-32): -31.884783413\n    test 163 name: auxAuthalic\n    test 164 inverse: lat (-32.0)\n    test 165 auxConformal(-32): -31.827359208\n    test 166 name: auxConformal\n    test 167 inverse: lat (-32.0)\n    test 168 auxRectifying(-32): -31.870407049\n    test 169 name: auxRectifying\n    test 170 inverse: lat (-32.0)\n    test 171 auxIsometric(-32): -33.603011359\n    test 172 name: auxIsometric\n    test 173 inverse: lat (-32.0)\n    test 174 auxParametric(-32): -31.913588685\n    test 175 name: auxParametric\n    test 176 inverse: lat (-32.0)\n    test 177 auxGeocentric(-32): -31.827305281\n    test 178 name: auxGeocentric\n    test 179 inverse: lat (-32.0)\n    test 180 auxGeocentric(-32, height=1.0e+06): -31.850730486\n    test 181 name: auxGeocentric\n    test 182 inverse: lat (-32.0)\n    test 183 auxAuthalic(-3): -2.986614622\n    test 184 name: auxAuthalic\n    test 185 inverse: lat (-3.0)\n    test 186 auxConformal(-3): -2.97995324\n    test 187 name: auxConformal\n    test 188 inverse: lat (-3.0)\n    test 189 auxRectifying(-3): -2.984946069\n    test 190 name: auxRectifying\n    test 191 inverse: lat (-3.0)\n    test 192 auxIsometric(-3): -2.981297631\n    test 193 name: auxIsometric\n    test 194 inverse: lat (-3.0)\n    test 195 auxParametric(-3): -2.98995985\n    test 196 name: auxParametric\n    test 197 inverse: lat (-3.0)\n    test 198 auxGeocentric(-3): -2.979953179\n    test 199 name: auxGeocentric\n    test 200 inverse: lat (-3.0)\n    test 201 auxGeocentric(-3, height=1.0e+06): -2.982670258\n    test 202 name: auxGeocentric\n    test 203 inverse: lat (-3.0)\n    test 204 auxAuthalic(26): 25.899018772\n    test 205 name: auxAuthalic\n    test 206 inverse: lat (26.0)\n    test 207 auxConformal(26): 25.848713396\n    test 208 name: auxConformal\n    test 209 inverse: lat (26.0)\n    test 210 auxRectifying(26): 25.886422583\n    test 211 name: auxRectifying\n    test 212 inverse: lat (26.0)\n    test 213 auxIsometric(26): 26.772988826\n    test 214 name: auxIsometric\n    test 215 inverse: lat (26.0)\n    test 216 auxParametric(26): 25.924262064\n    test 217 name: auxParametric\n    test 218 inverse: lat (26.0)\n    test 219 auxGeocentric(26): 25.848681095\n    test 220 name: auxGeocentric\n    test 221 inverse: lat (26.0)\n    test 222 auxGeocentric(26, height=1.0e+06): 25.869201526\n    test 223 name: auxGeocentric\n    test 224 inverse: lat (26.0)\n    test 225 auxAuthalic(55): 54.879361595\n    test 226 name: auxAuthalic\n    test 227 inverse: lat (55.0)\n    test 228 auxConformal(55): 54.819109025\n    test 229 name: auxConformal\n    test 230 inverse: lat (55.0)\n    test 231 auxRectifying(55): 54.864287984\n    test 232 name: auxRectifying\n    test 233 inverse: lat (55.0)\n    test 234 auxIsometric(55): 65.818103037\n    test 235 name: auxIsometric\n    test 236 inverse: lat (55.0)\n    test 237 auxParametric(55): 54.909538188\n    test 238 name: auxParametric\n    test 239 inverse: lat (55.0)\n    test 240 auxGeocentric(55): 54.818973309\n    test 241 name: auxGeocentric\n    test 242 inverse: lat (55.0)\n    test 243 auxGeocentric(55, height=1.0e+06): 54.843556517\n    test 244 name: auxGeocentric\n    test 245 inverse: lat (55.0)\n    test 246 auxAuthalic(84): 83.973275752\n    test 247 name: auxAuthalic\n    test 248 inverse: lat (84.0)\n    test 249 auxConformal(84): 83.959905489\n    test 250 name: auxConformal\n    test 251 inverse: lat (84.0)\n    test 252 auxRectifying(84): 83.969932835\n    test 253 name: auxRectifying\n    test 254 inverse: lat (84.0)\n    test 255 auxIsometric(84): 168.565774939\n    test 256 name: auxIsometric\n    test 257 inverse: lat (84.0)\n    test 258 auxParametric(84): 83.979963441\n    test 259 name: auxParametric\n    test 260 inverse: lat (84.0)\n    test 261 auxGeocentric(84): 83.959860962\n    test 262 name: auxGeocentric\n    test 263 inverse: lat (84.0)\n    test 264 auxGeocentric(84, height=1.0e+06): 83.965316868\n    test 265 name: auxGeocentric\n    test 266 inverse: lat (84.0)\n\n    testauxLats Prolate(pygeodesy.ellipsoids, 26.03.25)\n    test 267 isEllipsoidal: True\n    test 268 isOblate: False\n    test 269 isProlate: True\n    test 270 isSpherical: False\n    test 271 auxAuthalic(-90): -90.0\n    test 272 name: auxAuthalic\n    test 273 inverse: lat (-90.0)\n    test 274 auxConformal(-90): -90.0\n    test 275 name: auxConformal\n    test 276 inverse: lat (-90.0)\n    test 277 auxRectifying(-90): -90.0\n    test 278 name: auxRectifying\n    test 279 inverse: lat (-90.0)\n    test 280 auxIsometric(-90): -2179.057490028\n    test 281 name: auxIsometric\n    test 282 inverse: lat (-90.0)\n    test 283 auxParametric(-90): -90.0\n    test 284 name: auxParametric\n    test 285 inverse: lat (-90.0)\n    test 286 auxGeocentric(-90): -90.0\n    test 287 name: auxGeocentric\n    test 288 inverse: lat (-90.0)\n    test 289 auxGeocentric(-90, height=1.0e+06): -90.0\n    test 290 name: auxGeocentric\n    test 291 inverse: lat (-90.0)\n    test 292 auxAuthalic(-61): -61.10866822\n    test 293 name: auxAuthalic\n    test 294 inverse: lat (-61.0)\n    test 295 auxConformal(-61): -61.163034022\n    test 296 name: auxConformal\n    test 297 inverse: lat (-61.0)\n    test 298 auxRectifying(-61): -61.041077146\n    test 299 name: auxRectifying\n    test 300 inverse: lat (-61.0)\n    test 301 auxIsometric(-61): -77.824239376\n    test 302 name: auxIsometric\n    test 303 inverse: lat (-61.0)\n    test 304 auxParametric(-61): -61.081520012\n    test 305 name: auxParametric\n    test 306 inverse: lat (-61.0)\n    test 307 auxGeocentric(-61): -61.162894413\n    test 308 name: auxGeocentric\n    test 309 inverse: lat (-61.0)\n    test 310 auxGeocentric(-61, height=1.0e+06): -61.140801491\n    test 311 name: auxGeocentric\n    test 312 inverse: lat (-61.0)\n    test 313 auxAuthalic(-32): -32.115383155\n    test 314 name: auxAuthalic\n    test 315 inverse: lat (-32.0)\n    test 316 auxConformal(-32): -32.173258776\n    test 317 name: auxConformal\n    test 318 inverse: lat (-32.0)\n    test 319 auxRectifying(-32): -32.043518766\n    test 320 name: auxRectifying\n    test 321 inverse: lat (-32.0)\n    test 322 auxIsometric(-32): -34.010891137\n    test 323 name: auxIsometric\n    test 324 inverse: lat (-32.0)\n    test 325 auxParametric(-32): -32.086538627\n    test 326 name: auxParametric\n    test 327 inverse: lat (-32.0)\n    test 328 auxGeocentric(-32): -32.173203962\n    test 329 name: auxGeocentric\n    test 330 inverse: lat (-32.0)\n    test 331 auxGeocentric(-32, height=1.0e+06): -32.149679767\n    test 332 name: auxGeocentric\n    test 333 inverse: lat (-32.0)\n    test 334 auxAuthalic(-3): -3.013433135\n    test 335 name: auxAuthalic\n    test 336 inverse: lat (-3.0)\n    test 337 auxConformal(-3): -3.020181246\n    test 338 name: auxConformal\n    test 339 inverse: lat (-3.0)\n    test 340 auxRectifying(-3): -3.005060047\n    test 341 name: auxRectifying\n    test 342 inverse: lat (-3.0)\n    test 343 auxIsometric(-3): -3.021580847\n    test 344 name: auxIsometric\n    test 345 inverse: lat (-3.0)\n    test 346 auxParametric(-3): -3.010073741\n    test 347 name: auxParametric\n    test 348 inverse: lat (-3.0)\n    test 349 auxGeocentric(-3): -3.020181184\n    test 350 name: auxGeocentric\n    test 351 inverse: lat (-3.0)\n    test 352 auxGeocentric(-3, height=1.0e+06): -3.017437987\n    test 353 name: auxGeocentric\n    test 354 inverse: lat (-3.0)\n    test 355 auxAuthalic(26): 26.10119548\n    test 356 name: auxAuthalic\n    test 357 inverse: lat (26.0)\n    test 358 auxConformal(26): 26.151978892\n    test 359 name: auxConformal\n    test 360 inverse: lat (26.0)\n    test 361 auxRectifying(26): 26.038152061\n    test 362 name: auxRectifying\n    test 363 inverse: lat (26.0)\n    test 364 auxIsometric(26): 27.110404181\n    test 365 name: auxIsometric\n    test 366 inverse: lat (26.0)\n    test 367 auxParametric(26): 26.075894699\n    test 368 name: auxParametric\n    test 369 inverse: lat (26.0)\n    test 370 auxGeocentric(26): 26.15194595\n    test 371 name: auxGeocentric\n    test 372 inverse: lat (26.0)\n    test 373 auxGeocentric(26, height=1.0e+06): 26.131303631\n    test 374 name: auxGeocentric\n    test 375 inverse: lat (26.0)\n    test 376 auxAuthalic(55): 55.120454487\n    test 377 name: auxAuthalic\n    test 378 inverse: lat (55.0)\n    test 379 auxConformal(55): 55.180747234\n    test 380 name: auxConformal\n    test 381 inverse: lat (55.0)\n    test 382 auxRectifying(55): 55.045512882\n    test 383 name: auxRectifying\n    test 384 inverse: lat (55.0)\n    test 385 auxIsometric(55): 66.448604201\n    test 386 name: auxIsometric\n    test 387 inverse: lat (55.0)\n    test 388 auxParametric(55): 55.090357963\n    test 389 name: auxParametric\n    test 390 inverse: lat (55.0)\n    test 391 auxGeocentric(55): 55.180611298\n    test 392 name: auxGeocentric\n    test 393 inverse: lat (55.0)\n    test 394 auxGeocentric(55, height=1.0e+06): 55.156108835\n    test 395 name: auxGeocentric\n    test 396 inverse: lat (55.0)\n    test 397 auxAuthalic(84): 84.026618976\n    test 398 name: auxAuthalic\n    test 399 inverse: lat (84.0)\n    test 400 auxConformal(84): 84.039920255\n    test 401 name: auxConformal\n    test 402 inverse: lat (84.0)\n    test 403 auxRectifying(84): 84.010072387\n    test 404 name: auxRectifying\n    test 405 inverse: lat (84.0)\n    test 406 auxIsometric(84): 169.331258228\n    test 407 name: auxIsometric\n    test 408 inverse: lat (84.0)\n    test 409 auxParametric(84): 84.019970846\n    test 410 name: auxParametric\n    test 411 inverse: lat (84.0)\n    test 412 auxGeocentric(84): 84.039876185\n    test 413 name: auxGeocentric\n    test 414 inverse: lat (84.0)\n    test 415 auxGeocentric(84, height=1.0e+06): 84.034471374\n    test 416 name: auxGeocentric\n    test 417 inverse: lat (84.0)\n\n    testauxLats Sphere(pygeodesy.ellipsoids, 26.03.25)\n    test 418 isEllipsoidal: False\n    test 419 isOblate: False\n    test 420 isProlate: False\n    test 421 isSpherical: True\n    test 422 auxAuthalic(-90): -90.0\n    test 423 name: auxAuthalic\n    test 424 inverse: lat (-90.0)\n    test 425 auxConformal(-90): -90.0\n    test 426 name: auxConformal\n    test 427 inverse: lat (-90.0)\n    test 428 auxRectifying(-90): -90.0\n    test 429 name: auxRectifying\n    test 430 inverse: lat (-90.0)\n    test 431 auxIsometric(-90): -90.0\n    test 432 name: auxIsometric\n    test 433 inverse: lat (-90.0)\n    test 434 auxParametric(-90): -90.0\n    test 435 name: auxParametric\n    test 436 inverse: lat (-90.0)\n    test 437 auxGeocentric(-90): -90.0\n    test 438 name: auxGeocentric\n    test 439 inverse: lat (-90.0)\n    test 440 auxGeocentric(-90, height=1.0e+06): -90.0\n    test 441 name: auxGeocentric\n    test 442 inverse: lat (-90.0)\n    test 443 auxAuthalic(-61): -61.0\n    test 444 name: auxAuthalic\n    test 445 inverse: lat (-61.0)\n    test 446 auxConformal(-61): -61.0\n    test 447 name: auxConformal\n    test 448 inverse: lat (-61.0)\n    test 449 auxRectifying(-61): -61.0\n    test 450 name: auxRectifying\n    test 451 inverse: lat (-61.0)\n    test 452 auxIsometric(-61): -61.0\n    test 453 name: auxIsometric\n    test 454 inverse: lat (-61.0)\n    test 455 auxParametric(-61): -61.0\n    test 456 name: auxParametric\n    test 457 inverse: lat (-61.0)\n    test 458 auxGeocentric(-61): -61.0\n    test 459 name: auxGeocentric\n    test 460 inverse: lat (-61.0)\n    test 461 auxGeocentric(-61, height=1.0e+06): -61.0\n    test 462 name: auxGeocentric\n    test 463 inverse: lat (-61.0)\n    test 464 auxAuthalic(-32): -32.0\n    test 465 name: auxAuthalic\n    test 466 inverse: lat (-32.0)\n    test 467 auxConformal(-32): -32.0\n    test 468 name: auxConformal\n    test 469 inverse: lat (-32.0)\n    test 470 auxRectifying(-32): -32.0\n    test 471 name: auxRectifying\n    test 472 inverse: lat (-32.0)\n    test 473 auxIsometric(-32): -32.0\n    test 474 name: auxIsometric\n    test 475 inverse: lat (-32.0)\n    test 476 auxParametric(-32): -32.0\n    test 477 name: auxParametric\n    test 478 inverse: lat (-32.0)\n    test 479 auxGeocentric(-32): -32.0\n    test 480 name: auxGeocentric\n    test 481 inverse: lat (-32.0)\n    test 482 auxGeocentric(-32, height=1.0e+06): -32.0\n    test 483 name: auxGeocentric\n    test 484 inverse: lat (-32.0)\n    test 485 auxAuthalic(-3): -3.0\n    test 486 name: auxAuthalic\n    test 487 inverse: lat (-3.0)\n    test 488 auxConformal(-3): -3.0\n    test 489 name: auxConformal\n    test 490 inverse: lat (-3.0)\n    test 491 auxRectifying(-3): -3.0\n    test 492 name: auxRectifying\n    test 493 inverse: lat (-3.0)\n    test 494 auxIsometric(-3): -3.0\n    test 495 name: auxIsometric\n    test 496 inverse: lat (-3.0)\n    test 497 auxParametric(-3): -3.0\n    test 498 name: auxParametric\n    test 499 inverse: lat (-3.0)\n    test 500 auxGeocentric(-3): -3.0\n    test 501 name: auxGeocentric\n    test 502 inverse: lat (-3.0)\n    test 503 auxGeocentric(-3, height=1.0e+06): -3.0\n    test 504 name: auxGeocentric\n    test 505 inverse: lat (-3.0)\n    test 506 auxAuthalic(26): 26.0\n    test 507 name: auxAuthalic\n    test 508 inverse: lat (26.0)\n    test 509 auxConformal(26): 26.0\n    test 510 name: auxConformal\n    test 511 inverse: lat (26.0)\n    test 512 auxRectifying(26): 26.0\n    test 513 name: auxRectifying\n    test 514 inverse: lat (26.0)\n    test 515 auxIsometric(26): 26.0\n    test 516 name: auxIsometric\n    test 517 inverse: lat (26.0)\n    test 518 auxParametric(26): 26.0\n    test 519 name: auxParametric\n    test 520 inverse: lat (26.0)\n    test 521 auxGeocentric(26): 26.0\n    test 522 name: auxGeocentric\n    test 523 inverse: lat (26.0)\n    test 524 auxGeocentric(26, height=1.0e+06): 26.0\n    test 525 name: auxGeocentric\n    test 526 inverse: lat (26.0)\n    test 527 auxAuthalic(55): 55.0\n    test 528 name: auxAuthalic\n    test 529 inverse: lat (55.0)\n    test 530 auxConformal(55): 55.0\n    test 531 name: auxConformal\n    test 532 inverse: lat (55.0)\n    test 533 auxRectifying(55): 55.0\n    test 534 name: auxRectifying\n    test 535 inverse: lat (55.0)\n    test 536 auxIsometric(55): 55.0\n    test 537 name: auxIsometric\n    test 538 inverse: lat (55.0)\n    test 539 auxParametric(55): 55.0\n    test 540 name: auxParametric\n    test 541 inverse: lat (55.0)\n    test 542 auxGeocentric(55): 55.0\n    test 543 name: auxGeocentric\n    test 544 inverse: lat (55.0)\n    test 545 auxGeocentric(55, height=1.0e+06): 55.0\n    test 546 name: auxGeocentric\n    test 547 inverse: lat (55.0)\n    test 548 auxAuthalic(84): 84.0\n    test 549 name: auxAuthalic\n    test 550 inverse: lat (84.0)\n    test 551 auxConformal(84): 84.0\n    test 552 name: auxConformal\n    test 553 inverse: lat (84.0)\n    test 554 auxRectifying(84): 84.0\n    test 555 name: auxRectifying\n    test 556 inverse: lat (84.0)\n    test 557 auxIsometric(84): 84.0\n    test 558 name: auxIsometric\n    test 559 inverse: lat (84.0)\n    test 560 auxParametric(84): 84.0\n    test 561 name: auxParametric\n    test 562 inverse: lat (84.0)\n    test 563 auxGeocentric(84): 84.0\n    test 564 name: auxGeocentric\n    test 565 inverse: lat (84.0)\n    test 566 auxGeocentric(84, height=1.0e+06): 84.0\n    test 567 name: auxGeocentric\n    test 568 inverse: lat (84.0)\n\n    testFlattenings(pygeodesy.ellipsoids, 26.03.25)\n    test 569 all: all\n    test 570 _TOL: 1.4901161193847657e-09\n\n    test 571 Airy1830.f_ - 1 / .f: 0.0\n    test 572 Airy1830.f - 1 / .f_: 0.0\n\n    test 573 AiryModified.f_ - 1 / .f: 0.0\n    test 574 AiryModified.f - 1 / .f_: 0.0\n\n    test 575 ATS1977.f_ - 1 / .f: 0.0\n    test 576 ATS1977.f - 1 / .f_: 0.0\n\n    test 577 Australia1966.f_ - 1 / .f: 0.0\n    test 578 Australia1966.f - 1 / .f_: 0.0\n\n    test 579 Bessel1841.f_ - 1 / .f: -3.6334313335828483e-10\n    test 580 Bessel1841.f - 1 / .f_: -4.060120295523717e-15\n\n    test 581 BesselModified.f_ - 1 / .f: 0.0\n    test 582 BesselModified.f - 1 / .f_: 0.0\n\n    test 583 CGCS2000.f_ - 1 / .f: 0.0\n    test 584 CGCS2000.f - 1 / .f_: 0.0\n\n    test 585 Clarke1866.f_ - 1 / .f: 1.0180656317970715e-10\n    test 586 Clarke1866.f - 1 / .f_: 1.1700709845463564e-15\n\n    test 587 Clarke1880.f_ - 1 / .f: -6.275513442233205e-11\n    test 588 Clarke1880.f - 1 / .f_: -7.28583859910259e-16\n\n    test 589 Clarke1880IGN.f_ - 1 / .f: 3.73063357983483e-10\n    test 590 Clarke1880IGN.f - 1 / .f_: 4.3320382003830815e-15\n\n    test 591 Clarke1880Mod.f_ - 1 / .f: 6.866684998385608e-11\n    test 592 Clarke1880Mod.f - 1 / .f_: 7.971054372113429e-16\n\n    test 593 CPM1799.f_ - 1 / .f: -4.774847184307873e-11\n    test 594 CPM1799.f - 1 / .f_: -4.2674197509029455e-16\n\n    test 595 Delambre1810.f_ - 1 / .f: 6.008349373587407e-11\n    test 596 Delambre1810.f - 1 / .f_: 6.192962809237201e-16\n\n    test 597 Engelis1985.f_ - 1 / .f: 3.171862772433087e-11\n    test 598 Engelis1985.f - 1 / .f_: 3.5691935518222806e-16\n\n    test 599 Everest1969.f_ - 1 / .f: -1.0334133548894897e-10\n    test 600 Everest1969.f - 1 / .f_: -1.1418817280617333e-15\n\n    test 601 Everest1975.f_ - 1 / .f: 2.1088908397359774e-11\n    test 602 Everest1975.f - 1 / .f_: 2.3288662664988635e-16\n\n    test 603 Fisher1968.f_ - 1 / .f: 6.394884621840902e-11\n    test 604 Fisher1968.f - 1 / .f_: 7.186091999233923e-16\n\n    test 605 GEM10C.f_ - 1 / .f: 3.501554601825774e-11\n    test 606 GEM10C.f - 1 / .f_: 3.937822290467352e-16\n\n    test 607 GRS67.f_ - 1 / .f: 0.0\n    test 608 GRS67.f - 1 / .f_: 0.0\n\n    test 609 GRS80.f_ - 1 / .f: 5.7980287238024175e-12\n    test 610 GRS80.f - 1 / .f_: 6.505213034913027e-17\n\n    test 611 Helmert1906.f_ - 1 / .f: 1.944044925039634e-11\n    test 612 Helmert1906.f - 1 / .f_: 2.185751579730777e-16\n\n    test 613 IAU76.f_ - 1 / .f: 0.0\n    test 614 IAU76.f - 1 / .f_: 0.0\n\n    test 615 IERS1989.f_ - 1 / .f: 0.0\n    test 616 IERS1989.f - 1 / .f_: 0.0\n\n    test 617 IERS1992TOPEX.f_ - 1 / .f: -4.746425474877469e-11\n    test 618 IERS1992TOPEX.f - 1 / .f_: -5.334274688628682e-16\n\n    test 619 IERS2003.f_ - 1 / .f: -3.6777692002942786e-11\n    test 620 IERS2003.f - 1 / .f_: -4.137315490204685e-16\n\n    test 621 Intl1924.f_ - 1 / .f: 0.0\n    test 622 Intl1924.f - 1 / .f_: 0.0\n\n    test 623 Intl1967.f_ - 1 / .f: -1.3528733688872308e-11\n    test 624 Intl1967.f - 1 / .f_: -1.5222198501696482e-16\n\n    test 625 Krassovski1940.f_ - 1 / .f: -3.8767211663071066e-11\n    test 626 Krassovski1940.f - 1 / .f_: -4.358492733391728e-16\n\n    test 627 Krassowsky1940.f_ - 1 / .f: -3.8767211663071066e-11\n    test 628 Krassowsky1940.f - 1 / .f_: -4.358492733391728e-16\n\n    test 629 Maupertuis1738.f_ - 1 / .f: 1.5347723092418164e-11\n    test 630 Maupertuis1738.f - 1 / .f_: 4.206704429243757e-16\n\n    test 631 Mercury1960.f_ - 1 / .f: -4.803268893738277e-11\n    test 632 Mercury1960.f - 1 / .f_: -5.39499001028787e-16\n\n    test 633 Mercury1968Mod.f_ - 1 / .f: 6.394884621840902e-11\n    test 634 Mercury1968Mod.f - 1 / .f_: 7.186091999233923e-16\n\n    test 635 NWL1965.f_ - 1 / .f: 5.32054400537163e-11\n    test 636 NWL1965.f - 1 / .f_: 5.980459183430042e-16\n\n    test 637 OSU86F.f_ - 1 / .f: 1.460875864722766e-11\n    test 638 OSU86F.f - 1 / .f_: 1.6436504934880247e-16\n\n    test 639 OSU91A.f_ - 1 / .f: -2.2737367544323206e-12\n    test 640 OSU91A.f - 1 / .f_: -2.5587171270657905e-17\n\n    test 641 Plessis1817.f_ - 1 / .f: 4.2234660213580355e-11\n    test 642 Plessis1817.f - 1 / .f_: 4.432218481120742e-16\n\n    test 643 Prolate.f_ - 1 / .f: 0.0\n    test 644 Prolate.f - 1 / .f_: 0.0\n\n    test 645 PZ90.f_ - 1 / .f: 0.0\n    test 646 PZ90.f - 1 / .f_: 0.0\n\n    test 647 SGS85.f_ - 1 / .f: 1.659827830735594e-11\n    test 648 SGS85.f - 1 / .f_: 1.8691645453650096e-16\n\n    test 649 SoAmerican1969.f_ - 1 / .f: -5.6843418860808015e-11\n    test 650 SoAmerican1969.f - 1 / .f_: -6.388119200284592e-16\n\n    test 651 Struve1860.f_ - 1 / .f: 1.9042545318370685e-11\n    test 652 Struve1860.f - 1 / .f_: 2.194425197110661e-16\n\n    test 653 WGS60.f_ - 1 / .f: -5.076117304270156e-11\n    test 654 WGS60.f - 1 / .f_: -5.702903427273753e-16\n\n    test 655 WGS66.f_ - 1 / .f: 5.32054400537163e-11\n    test 656 WGS66.f - 1 / .f_: 5.980459183430042e-16\n\n    test 657 WGS72.f_ - 1 / .f: 0.0\n    test 658 WGS72.f - 1 / .f_: 0.0\n\n    test 659 WGS84.f_ - 1 / .f: 0.0\n    test 660 WGS84.f - 1 / .f_: 0.0\n\n    test 661 WGS84_NGS.f_ - 1 / .f: 0.0\n    test 662 WGS84_NGS.f - 1 / .f_: 0.0\n\n    testEllipsoid2(pygeodesy.ellipsoids, 26.03.25)\n    test 663 _2_Airy1830: a=6377563.396, f=0.0033409, f_=299.3249646, b=6356256.9092373\n    test 664 _2_AiryModified: a=6377340.189, f=0.0033409, f_=299.3249646, b=6356034.4479385\n    test 665 _2_ATS1977: a=6378135, f=0.0033528, f_=298.257, b=6356750.3049216\n    test 666 _2_Australia1966: a=6378160, f=0.0033529, f_=298.25, b=6356774.7191953\n    test 667 _2_Bessel1841: a=6377397.155, f=0.0033428, f_=299.1528128, b=6356078.962818\n    test 668 _2_BesselModified: a=6377492.018, f=0.0033428, f_=299.1528128, b=6356173.5087127\n    test 669 _2_CGCS2000: a=6378137, f=0.0033528, f_=298.2572221, b=6356752.3141404\n    test 670 _2_Clarke1866: a=6378206.4, f=0.0033901, f_=294.9786982, b=6356583.8\n    test 671 _2_Clarke1880: a=6378249.145, f=0.0034076, f_=293.465, b=6356514.8695498\n    test 672 _2_Clarke1880IGN: a=6378249.2, f=0.0034075, f_=293.4660213, b=6356515\n    test 673 _2_Clarke1880Mod: a=6378249.145, f=0.0034075, f_=293.4663077, b=6356514.9663955\n    test 674 _2_CPM1799: a=6375738.7, f=0.0029905, f_=334.39, b=6356671.9255749\n    test 675 _2_Delambre1810: a=6376428, f=0.0032103, f_=311.5, b=6355957.9261637\n    test 676 _2_Engelis1985: a=6378136.05, f=0.0033528, f_=298.2566, b=6356751.3227215\n    test 677 _2_Everest1969: a=6377295.664, f=0.0033244, f_=300.8017, b=6356094.667915\n    test 678 _2_Everest1975: a=6377299.151, f=0.0033244, f_=300.8017255, b=6356098.1451201\n    test 679 _2_Fisher1968: a=6378150, f=0.0033523, f_=298.3, b=6356768.3372444\n    test 680 _2_GEM10C: a=6378137, f=0.0033528, f_=298.2572236, b=6356752.3142478\n    test 681 _2_GPES: a=6378135, f=0, f_=0, b=6378135\n    test 682 _2_GRS67: a=6378160, f=0.0033529, f_=298.2471674, b=6356774.5160907\n    test 683 _2_GRS80: a=6378137, f=0.0033528, f_=298.2572221, b=6356752.3141403\n    test 684 _2_Helmert1906: a=6378200, f=0.0033523, f_=298.3, b=6356818.1696279\n    test 685 _2_IAU76: a=6378140, f=0.0033528, f_=298.257, b=6356755.2881575\n    test 686 _2_IERS1989: a=6378136, f=0.0033528, f_=298.257, b=6356751.3015688\n    test 687 _2_IERS1992TOPEX: a=6378136.3, f=0.0033528, f_=298.2572236, b=6356751.6165922\n    test 688 _2_IERS2003: a=6378136.6, f=0.0033528, f_=298.25642, b=6356751.8579716\n    test 689 _2_Intl1924: a=6378388, f=0.003367, f_=297, b=6356911.9461279\n    test 690 _2_Intl1967: a=6378157.5, f=0.0033529, f_=298.2496154, b=6356772.2\n    test 691 _2_Krassovski1940: a=6378245, f=0.0033523, f_=298.3, b=6356863.0187731\n    test 692 _2_Krassowsky1940: a=6378245, f=0.0033523, f_=298.3, b=6356863.0187731\n    test 693 _2_Maupertuis1738: a=6397300, f=0.0052356, f_=191, b=6363806.2827225\n    test 694 _2_Mercury1960: a=6378166, f=0.0033523, f_=298.3, b=6356784.2836071\n    test 695 _2_Mercury1968Mod: a=6378150, f=0.0033523, f_=298.3, b=6356768.3372444\n    test 696 _2_NWL1965: a=6378145, f=0.0033529, f_=298.25, b=6356759.7694887\n    test 697 _2_OSU86F: a=6378136.2, f=0.0033528, f_=298.2572236, b=6356751.5169301\n    test 698 _2_OSU91A: a=6378136.3, f=0.0033528, f_=298.2572236, b=6356751.6165948\n    test 699 _2_Plessis1817: a=6376523, f=0.00324, f_=308.64, b=6355862.9332556\n    test 700 _2_Prolate: a=6356752.3142452, f=-0.0033641, f_=-297.2572236, b=6378137\n    test 701 _2_PZ90: a=6378136, f=0.0033528, f_=298.2578393, b=6356751.3617457\n    test 702 _2_SGS85: a=6378136, f=0.0033528, f_=298.257, b=6356751.3015688\n    test 703 _2_SoAmerican1969: a=6378160, f=0.0033529, f_=298.25, b=6356774.7191953\n    test 704 _2_Sphere: a=6371008.771415, f=0, f_=0, b=6371008.771415\n    test 705 _2_SphereAuthalic: a=6371000, f=0, f_=0, b=6371000\n    test 706 _2_SpherePopular: a=6378137, f=0, f_=0, b=6378137\n    test 707 _2_Struve1860: a=6378298.3, f=0.0033929, f_=294.73, b=6356657.1426696\n    test 708 _2_WGS60: a=6378165, f=0.0033523, f_=298.3, b=6356783.2869594\n    test 709 _2_WGS66: a=6378145, f=0.0033529, f_=298.25, b=6356759.7694887\n    test 710 _2_WGS72: a=6378135, f=0.0033528, f_=298.26, b=6356750.5200161\n    test 711 _2_WGS84: a=6378137, f=0.0033528, f_=298.2572236, b=6356752.3142452\n    test 712 _2_WGS84_NGS: a=6378137, f=0.0033528, f_=298.2572221, b=6356752.3141403\n\n    testa_f2Tuple(pygeodesy.ellipsoids, 26.03.25)\n    test 713 a_b_Airy1830: a=6377563.396, f=0.0033409, f_=299.3249646, b=6356256.9092373\n    test 714 a_b_AiryModified: a=6377340.189, f=0.0033409, f_=299.3249646, b=6356034.4479385\n    test 715 a_b_ATS1977: a=6378135, f=0.0033528, f_=298.257, b=6356750.3049216\n    test 716 a_b_Australia1966: a=6378160, f=0.0033529, f_=298.25, b=6356774.7191953\n    test 717 a_b_Bessel1841: a=6377397.155, f=0.0033428, f_=299.1528128, b=6356078.962818\n    test 718 a_b_BesselModified: a=6377492.018, f=0.0033428, f_=299.1528128, b=6356173.5087127\n    test 719 a_b_CGCS2000: a=6378137, f=0.0033528, f_=298.2572221, b=6356752.3141404\n    test 720 a_b_Clarke1866: a=6378206.4, f=0.0033901, f_=294.9786982, b=6356583.8\n    test 721 a_b_Clarke1880: a=6378249.145, f=0.0034076, f_=293.465, b=6356514.8695498\n    test 722 a_b_Clarke1880IGN: a=6378249.2, f=0.0034075, f_=293.4660213, b=6356515\n    test 723 a_b_Clarke1880Mod: a=6378249.145, f=0.0034075, f_=293.4663077, b=6356514.9663955\n    test 724 a_b_CPM1799: a=6375738.7, f=0.0029905, f_=334.39, b=6356671.9255749\n    test 725 a_b_Delambre1810: a=6376428, f=0.0032103, f_=311.5, b=6355957.9261637\n    test 726 a_b_Engelis1985: a=6378136.05, f=0.0033528, f_=298.2566, b=6356751.3227215\n    test 727 a_b_Everest1969: a=6377295.664, f=0.0033244, f_=300.8017, b=6356094.667915\n    test 728 a_b_Everest1975: a=6377299.151, f=0.0033244, f_=300.8017255, b=6356098.1451201\n    test 729 a_b_Fisher1968: a=6378150, f=0.0033523, f_=298.3, b=6356768.3372444\n    test 730 a_b_GEM10C: a=6378137, f=0.0033528, f_=298.2572236, b=6356752.3142478\n    test 731 a_b_GPES: a=6378135, f=0, f_=0, b=6378135\n    test 732 a_b_GRS67: a=6378160, f=0.0033529, f_=298.2471674, b=6356774.5160907\n    test 733 a_b_GRS80: a=6378137, f=0.0033528, f_=298.2572221, b=6356752.3141403\n    test 734 a_b_Helmert1906: a=6378200, f=0.0033523, f_=298.3, b=6356818.1696279\n    test 735 a_b_IAU76: a=6378140, f=0.0033528, f_=298.257, b=6356755.2881575\n    test 736 a_b_IERS1989: a=6378136, f=0.0033528, f_=298.257, b=6356751.3015688\n    test 737 a_b_IERS1992TOPEX: a=6378136.3, f=0.0033528, f_=298.2572236, b=6356751.6165922\n    test 738 a_b_IERS2003: a=6378136.6, f=0.0033528, f_=298.25642, b=6356751.8579716\n    test 739 a_b_Intl1924: a=6378388, f=0.003367, f_=297, b=6356911.9461279\n    test 740 a_b_Intl1967: a=6378157.5, f=0.0033529, f_=298.2496154, b=6356772.2\n    test 741 a_b_Krassovski1940: a=6378245, f=0.0033523, f_=298.3, b=6356863.0187731\n    test 742 a_b_Krassowsky1940: a=6378245, f=0.0033523, f_=298.3, b=6356863.0187731\n    test 743 a_b_Maupertuis1738: a=6397300, f=0.0052356, f_=191, b=6363806.2827225\n    test 744 a_b_Mercury1960: a=6378166, f=0.0033523, f_=298.3, b=6356784.2836071\n    test 745 a_b_Mercury1968Mod: a=6378150, f=0.0033523, f_=298.3, b=6356768.3372444\n    test 746 a_b_NWL1965: a=6378145, f=0.0033529, f_=298.25, b=6356759.7694887\n    test 747 a_b_OSU86F: a=6378136.2, f=0.0033528, f_=298.2572236, b=6356751.5169301\n    test 748 a_b_OSU91A: a=6378136.3, f=0.0033528, f_=298.2572236, b=6356751.6165948\n    test 749 a_b_Plessis1817: a=6376523, f=0.00324, f_=308.64, b=6355862.9332556\n    test 750 a_b_Prolate: a=6356752.3142452, f=-0.0033641, f_=-297.2572236, b=6378137\n    test 751 a_b_PZ90: a=6378136, f=0.0033528, f_=298.2578393, b=6356751.3617457\n    test 752 a_b_SGS85: a=6378136, f=0.0033528, f_=298.257, b=6356751.3015688\n    test 753 a_b_SoAmerican1969: a=6378160, f=0.0033529, f_=298.25, b=6356774.7191953\n    test 754 a_b_Sphere: a=6371008.771415, f=0, f_=0, b=6371008.771415\n    test 755 a_b_SphereAuthalic: a=6371000, f=0, f_=0, b=6371000\n    test 756 a_b_SpherePopular: a=6378137, f=0, f_=0, b=6378137\n    test 757 a_b_Struve1860: a=6378298.3, f=0.0033929, f_=294.73, b=6356657.1426696\n    test 758 a_b_WGS60: a=6378165, f=0.0033523, f_=298.3, b=6356783.2869594\n    test 759 a_b_WGS66: a=6378145, f=0.0033529, f_=298.25, b=6356759.7694887\n    test 760 a_b_WGS72: a=6378135, f=0.0033528, f_=298.26, b=6356750.5200161\n    test 761 a_b_WGS84: a=6378137, f=0.0033528, f_=298.2572236, b=6356752.3142452\n    test 762 a_b_WGS84_NGS: a=6378137, f=0.0033528, f_=298.2572221, b=6356752.3141403\n    test 763 _a_f_ellipsoid: a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518\n    test 764 _toEllipsoid2: a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518\n\n    testFunctions(pygeodesy.ellipsoids, 26.03.25)\n\n    test 765 a_b2f_(Airy1830): 299.32496460\n    test 766 a_b2f2(Airy1830): 0.00335205\n    test 767 a_b2n(Airy1830): 0.00167322\n    test 768 b_f2a(Airy1830): 6377563.396\n    test 769 b_f_2a(Airy1830): 6377563.396\n    test 770 f_2f(Airy1830): 0.00334085\n    test 771 e2f(Airy1830): 0.00334085\n    test 772 n2e2(Airy1830): 0.00667054\n    test 773 n2f(Airy1830): 0.00334085\n\n    test 774 a_b2f_(AiryModified): 299.32496460\n    test 775 a_b2f2(AiryModified): 0.00335205\n    test 776 a_b2n(AiryModified): 0.00167322\n    test 777 b_f2a(AiryModified): 6377340.189\n    test 778 b_f_2a(AiryModified): 6377340.189\n    test 779 f_2f(AiryModified): 0.00334085\n    test 780 e2f(AiryModified): 0.00334085\n    test 781 n2e2(AiryModified): 0.00667054\n    test 782 n2f(AiryModified): 0.00334085\n\n    test 783 a_b2f_(ATS1977): 298.25700000\n    test 784 a_b2f2(ATS1977): 0.00336409\n    test 785 a_b2n(ATS1977): 0.00167922\n    test 786 b_f2a(ATS1977): 6378135.000\n    test 787 b_f_2a(ATS1977): 6378135.000\n    test 788 f_2f(ATS1977): 0.00335281\n    test 789 e2f(ATS1977): 0.00335281\n    test 790 n2e2(ATS1977): 0.00669438\n    test 791 n2f(ATS1977): 0.00335281\n\n    test 792 a_b2f_(Australia1966): 298.25000000\n    test 793 a_b2f2(Australia1966): 0.00336417\n    test 794 a_b2n(Australia1966): 0.00167926\n    test 795 b_f2a(Australia1966): 6378160.000\n    test 796 b_f_2a(Australia1966): 6378160.000\n    test 797 f_2f(Australia1966): 0.00335289\n    test 798 e2f(Australia1966): 0.00335289\n    test 799 n2e2(Australia1966): 0.00669454\n    test 800 n2f(Australia1966): 0.00335289\n\n    test 801 a_b2f_(Bessel1841): 299.15281280\n    test 802 a_b2f2(Bessel1841): 0.00335398\n    test 803 a_b2n(Bessel1841): 0.00167418\n    test 804 b_f2a(Bessel1841): 6377397.155\n    test 805 b_f_2a(Bessel1841): 6377397.155\n    test 806 f_2f(Bessel1841): 0.00334277\n    test 807 e2f(Bessel1841): 0.00334277\n    test 808 n2e2(Bessel1841): 0.00667437\n    test 809 n2f(Bessel1841): 0.00334277\n\n    test 810 a_b2f_(BesselModified): 299.15281280\n    test 811 a_b2f2(BesselModified): 0.00335398\n    test 812 a_b2n(BesselModified): 0.00167418\n    test 813 b_f2a(BesselModified): 6377492.018\n    test 814 b_f_2a(BesselModified): 6377492.018\n    test 815 f_2f(BesselModified): 0.00334277\n    test 816 e2f(BesselModified): 0.00334277\n    test 817 n2e2(BesselModified): 0.00667437\n    test 818 n2f(BesselModified): 0.00334277\n\n    test 819 a_b2f_(CGCS2000): 298.25722210\n    test 820 a_b2f2(CGCS2000): 0.00336409\n    test 821 a_b2n(CGCS2000): 0.00167922\n    test 822 b_f2a(CGCS2000): 6378137.000\n    test 823 b_f_2a(CGCS2000): 6378137.000\n    test 824 f_2f(CGCS2000): 0.00335281\n    test 825 e2f(CGCS2000): 0.00335281\n    test 826 n2e2(CGCS2000): 0.00669438\n    test 827 n2f(CGCS2000): 0.00335281\n\n    test 828 a_b2f_(Clarke1866): 294.97869821\n    test 829 a_b2f2(Clarke1866): 0.00340161\n    test 830 a_b2n(Clarke1866): 0.00169792\n    test 831 b_f2a(Clarke1866): 6378206.400\n    test 832 b_f_2a(Clarke1866): 6378206.400\n    test 833 f_2f(Clarke1866): 0.00339008\n    test 834 e2f(Clarke1866): 0.00339008\n    test 835 n2e2(Clarke1866): 0.00676866\n    test 836 n2f(Clarke1866): 0.00339008\n\n    test 837 a_b2f_(Clarke1880): 293.46500000\n    test 838 a_b2f2(Clarke1880): 0.00341921\n    test 839 a_b2n(Clarke1880): 0.00170669\n    test 840 b_f2a(Clarke1880): 6378249.145\n    test 841 b_f_2a(Clarke1880): 6378249.145\n    test 842 f_2f(Clarke1880): 0.00340756\n    test 843 e2f(Clarke1880): 0.00340756\n    test 844 n2e2(Clarke1880): 0.00680351\n    test 845 n2f(Clarke1880): 0.00340756\n\n    test 846 a_b2f_(Clarke1880IGN): 293.46602129\n    test 847 a_b2f2(Clarke1880IGN): 0.00341920\n    test 848 a_b2n(Clarke1880IGN): 0.00170668\n    test 849 b_f2a(Clarke1880IGN): 6378249.200\n    test 850 b_f_2a(Clarke1880IGN): 6378249.200\n    test 851 f_2f(Clarke1880IGN): 0.00340755\n    test 852 e2f(Clarke1880IGN): 0.00340755\n    test 853 n2e2(Clarke1880IGN): 0.00680349\n    test 854 n2f(Clarke1880IGN): 0.00340755\n\n    test 855 a_b2f_(Clarke1880Mod): 293.46630766\n    test 856 a_b2f2(Clarke1880Mod): 0.00341920\n    test 857 a_b2n(Clarke1880Mod): 0.00170668\n    test 858 b_f2a(Clarke1880Mod): 6378249.145\n    test 859 b_f_2a(Clarke1880Mod): 6378249.145\n    test 860 f_2f(Clarke1880Mod): 0.00340755\n    test 861 e2f(Clarke1880Mod): 0.00340755\n    test 862 n2e2(Clarke1880Mod): 0.00680348\n    test 863 n2f(Clarke1880Mod): 0.00340755\n\n    test 864 a_b2f_(CPM1799): 334.39000000\n    test 865 a_b2f2(CPM1799): 0.00299949\n    test 866 a_b2n(CPM1799): 0.00149750\n    test 867 b_f2a(CPM1799): 6375738.700\n    test 868 b_f_2a(CPM1799): 6375738.700\n    test 869 f_2f(CPM1799): 0.00299052\n    test 870 e2f(CPM1799): 0.00299052\n    test 871 n2e2(CPM1799): 0.00597210\n    test 872 n2f(CPM1799): 0.00299052\n\n    test 873 a_b2f_(Delambre1810): 311.50000000\n    test 874 a_b2f2(Delambre1810): 0.00322061\n    test 875 a_b2n(Delambre1810): 0.00160772\n    test 876 b_f2a(Delambre1810): 6376428.000\n    test 877 b_f_2a(Delambre1810): 6376428.000\n    test 878 f_2f(Delambre1810): 0.00321027\n    test 879 e2f(Delambre1810): 0.00321027\n    test 880 n2e2(Delambre1810): 0.00641024\n    test 881 n2f(Delambre1810): 0.00321027\n\n    test 882 a_b2f_(Engelis1985): 298.25660000\n    test 883 a_b2f2(Engelis1985): 0.00336410\n    test 884 a_b2n(Engelis1985): 0.00167922\n    test 885 b_f2a(Engelis1985): 6378136.050\n    test 886 b_f_2a(Engelis1985): 6378136.050\n    test 887 f_2f(Engelis1985): 0.00335282\n    test 888 e2f(Engelis1985): 0.00335282\n    test 889 n2e2(Engelis1985): 0.00669439\n    test 890 n2f(Engelis1985): 0.00335282\n\n    test 891 a_b2f_(Everest1969): 300.80170000\n    test 892 a_b2f2(Everest1969): 0.00333554\n    test 893 a_b2n(Everest1969): 0.00166499\n    test 894 b_f2a(Everest1969): 6377295.664\n    test 895 b_f_2a(Everest1969): 6377295.664\n    test 896 f_2f(Everest1969): 0.00332445\n    test 897 e2f(Everest1969): 0.00332445\n    test 898 n2e2(Everest1969): 0.00663785\n    test 899 n2f(Everest1969): 0.00332445\n\n    test 900 a_b2f_(Everest1975): 300.80172550\n    test 901 a_b2f2(Everest1975): 0.00333554\n    test 902 a_b2n(Everest1975): 0.00166499\n    test 903 b_f2a(Everest1975): 6377299.151\n    test 904 b_f_2a(Everest1975): 6377299.151\n    test 905 f_2f(Everest1975): 0.00332445\n    test 906 e2f(Everest1975): 0.00332445\n    test 907 n2e2(Everest1975): 0.00663785\n    test 908 n2f(Everest1975): 0.00332445\n\n    test 909 a_b2f_(Fisher1968): 298.30000000\n    test 910 a_b2f2(Fisher1968): 0.00336361\n    test 911 a_b2n(Fisher1968): 0.00167898\n    test 912 b_f2a(Fisher1968): 6378150.000\n    test 913 b_f_2a(Fisher1968): 6378150.000\n    test 914 f_2f(Fisher1968): 0.00335233\n    test 915 e2f(Fisher1968): 0.00335233\n    test 916 n2e2(Fisher1968): 0.00669342\n    test 917 n2f(Fisher1968): 0.00335233\n\n    test 918 a_b2f_(GEM10C): 298.25722360\n    test 919 a_b2f2(GEM10C): 0.00336409\n    test 920 a_b2n(GEM10C): 0.00167922\n    test 921 b_f2a(GEM10C): 6378137.000\n    test 922 b_f_2a(GEM10C): 6378137.000\n    test 923 f_2f(GEM10C): 0.00335281\n    test 924 e2f(GEM10C): 0.00335281\n    test 925 n2e2(GEM10C): 0.00669438\n    test 926 n2f(GEM10C): 0.00335281\n\n    test 927 a_b2f_(GPES): 0.00000000\n    test 928 a_b2f2(GPES): 0.00000000\n    test 929 a_b2n(GPES): 0.00000000\n    test 930 b_f2a(GPES): 6378135.000\n    test 931 b_f_2a(GPES): 6378135.000\n    test 932 f_2f(GPES): 0.00000000\n    test 933 e2f(GPES): 0.00000000\n    test 934 n2e2(GPES): 0.00000000\n    test 935 n2f(GPES): 0.00000000\n\n    test 936 a_b2f_(GRS67): 298.24716743\n    test 937 a_b2f2(GRS67): 0.00336420\n    test 938 a_b2n(GRS67): 0.00167928\n    test 939 b_f2a(GRS67): 6378160.000\n    test 940 b_f_2a(GRS67): 6378160.000\n    test 941 f_2f(GRS67): 0.00335292\n    test 942 e2f(GRS67): 0.00335292\n    test 943 n2e2(GRS67): 0.00669461\n    test 944 n2f(GRS67): 0.00335292\n\n    test 945 a_b2f_(GRS80): 298.25722210\n    test 946 a_b2f2(GRS80): 0.00336409\n    test 947 a_b2n(GRS80): 0.00167922\n    test 948 b_f2a(GRS80): 6378137.000\n    test 949 b_f_2a(GRS80): 6378137.000\n    test 950 f_2f(GRS80): 0.00335281\n    test 951 e2f(GRS80): 0.00335281\n    test 952 n2e2(GRS80): 0.00669438\n    test 953 n2f(GRS80): 0.00335281\n\n    test 954 a_b2f_(Helmert1906): 298.30000000\n    test 955 a_b2f2(Helmert1906): 0.00336361\n    test 956 a_b2n(Helmert1906): 0.00167898\n    test 957 b_f2a(Helmert1906): 6378200.000\n    test 958 b_f_2a(Helmert1906): 6378200.000\n    test 959 f_2f(Helmert1906): 0.00335233\n    test 960 e2f(Helmert1906): 0.00335233\n    test 961 n2e2(Helmert1906): 0.00669342\n    test 962 n2f(Helmert1906): 0.00335233\n\n    test 963 a_b2f_(IAU76): 298.25700000\n    test 964 a_b2f2(IAU76): 0.00336409\n    test 965 a_b2n(IAU76): 0.00167922\n    test 966 b_f2a(IAU76): 6378140.000\n    test 967 b_f_2a(IAU76): 6378140.000\n    test 968 f_2f(IAU76): 0.00335281\n    test 969 e2f(IAU76): 0.00335281\n    test 970 n2e2(IAU76): 0.00669438\n    test 971 n2f(IAU76): 0.00335281\n\n    test 972 a_b2f_(IERS1989): 298.25700000\n    test 973 a_b2f2(IERS1989): 0.00336409\n    test 974 a_b2n(IERS1989): 0.00167922\n    test 975 b_f2a(IERS1989): 6378136.000\n    test 976 b_f_2a(IERS1989): 6378136.000\n    test 977 f_2f(IERS1989): 0.00335281\n    test 978 e2f(IERS1989): 0.00335281\n    test 979 n2e2(IERS1989): 0.00669438\n    test 980 n2f(IERS1989): 0.00335281\n\n    test 981 a_b2f_(IERS1992TOPEX): 298.25722356\n    test 982 a_b2f2(IERS1992TOPEX): 0.00336409\n    test 983 a_b2n(IERS1992TOPEX): 0.00167922\n    test 984 b_f2a(IERS1992TOPEX): 6378136.300\n    test 985 b_f_2a(IERS1992TOPEX): 6378136.300\n    test 986 f_2f(IERS1992TOPEX): 0.00335281\n    test 987 e2f(IERS1992TOPEX): 0.00335281\n    test 988 n2e2(IERS1992TOPEX): 0.00669438\n    test 989 n2f(IERS1992TOPEX): 0.00335281\n\n    test 990 a_b2f_(IERS2003): 298.25642000\n    test 991 a_b2f2(IERS2003): 0.00336410\n    test 992 a_b2n(IERS2003): 0.00167922\n    test 993 b_f2a(IERS2003): 6378136.600\n    test 994 b_f_2a(IERS2003): 6378136.600\n    test 995 f_2f(IERS2003): 0.00335282\n    test 996 e2f(IERS2003): 0.00335282\n    test 997 n2e2(IERS2003): 0.00669440\n    test 998 n2f(IERS2003): 0.00335282\n\n    test 999 a_b2f_(Intl1924): 297.00000000\n    test 1000 a_b2f2(Intl1924): 0.00337838\n    test 1001 a_b2n(Intl1924): 0.00168634\n    test 1002 b_f2a(Intl1924): 6378388.000\n    test 1003 b_f_2a(Intl1924): 6378388.000\n    test 1004 f_2f(Intl1924): 0.00336700\n    test 1005 e2f(Intl1924): 0.00336700\n    test 1006 n2e2(Intl1924): 0.00672267\n    test 1007 n2f(Intl1924): 0.00336700\n\n    test 1008 a_b2f_(Intl1967): 298.24961539\n    test 1009 a_b2f2(Intl1967): 0.00336418\n    test 1010 a_b2n(Intl1967): 0.00167926\n    test 1011 b_f2a(Intl1967): 6378157.500\n    test 1012 b_f_2a(Intl1967): 6378157.500\n    test 1013 f_2f(Intl1967): 0.00335290\n    test 1014 e2f(Intl1967): 0.00335290\n    test 1015 n2e2(Intl1967): 0.00669455\n    test 1016 n2f(Intl1967): 0.00335290\n\n    test 1017 a_b2f_(Krassovski1940): 298.30000000\n    test 1018 a_b2f2(Krassovski1940): 0.00336361\n    test 1019 a_b2n(Krassovski1940): 0.00167898\n    test 1020 b_f2a(Krassovski1940): 6378245.000\n    test 1021 b_f_2a(Krassovski1940): 6378245.000\n    test 1022 f_2f(Krassovski1940): 0.00335233\n    test 1023 e2f(Krassovski1940): 0.00335233\n    test 1024 n2e2(Krassovski1940): 0.00669342\n    test 1025 n2f(Krassovski1940): 0.00335233\n\n    test 1026 a_b2f_(Krassowsky1940): 298.30000000\n    test 1027 a_b2f2(Krassowsky1940): 0.00336361\n    test 1028 a_b2n(Krassowsky1940): 0.00167898\n    test 1029 b_f2a(Krassowsky1940): 6378245.000\n    test 1030 b_f_2a(Krassowsky1940): 6378245.000\n    test 1031 f_2f(Krassowsky1940): 0.00335233\n    test 1032 e2f(Krassowsky1940): 0.00335233\n    test 1033 n2e2(Krassowsky1940): 0.00669342\n    test 1034 n2f(Krassowsky1940): 0.00335233\n\n    test 1035 a_b2f_(Maupertuis1738): 191.00000000\n    test 1036 a_b2f2(Maupertuis1738): 0.00526316\n    test 1037 a_b2n(Maupertuis1738): 0.00262467\n    test 1038 b_f2a(Maupertuis1738): 6397300.000\n    test 1039 b_f_2a(Maupertuis1738): 6397300.000\n    test 1040 f_2f(Maupertuis1738): 0.00523560\n    test 1041 e2f(Maupertuis1738): 0.00523560\n    test 1042 n2e2(Maupertuis1738): 0.01044379\n    test 1043 n2f(Maupertuis1738): 0.00523560\n\n    test 1044 a_b2f_(Mercury1960): 298.30000000\n    test 1045 a_b2f2(Mercury1960): 0.00336361\n    test 1046 a_b2n(Mercury1960): 0.00167898\n    test 1047 b_f2a(Mercury1960): 6378166.000\n    test 1048 b_f_2a(Mercury1960): 6378166.000\n    test 1049 f_2f(Mercury1960): 0.00335233\n    test 1050 e2f(Mercury1960): 0.00335233\n    test 1051 n2e2(Mercury1960): 0.00669342\n    test 1052 n2f(Mercury1960): 0.00335233\n\n    test 1053 a_b2f_(Mercury1968Mod): 298.30000000\n    test 1054 a_b2f2(Mercury1968Mod): 0.00336361\n    test 1055 a_b2n(Mercury1968Mod): 0.00167898\n    test 1056 b_f2a(Mercury1968Mod): 6378150.000\n    test 1057 b_f_2a(Mercury1968Mod): 6378150.000\n    test 1058 f_2f(Mercury1968Mod): 0.00335233\n    test 1059 e2f(Mercury1968Mod): 0.00335233\n    test 1060 n2e2(Mercury1968Mod): 0.00669342\n    test 1061 n2f(Mercury1968Mod): 0.00335233\n\n    test 1062 a_b2f_(NWL1965): 298.25000000\n    test 1063 a_b2f2(NWL1965): 0.00336417\n    test 1064 a_b2n(NWL1965): 0.00167926\n    test 1065 b_f2a(NWL1965): 6378145.000\n    test 1066 b_f_2a(NWL1965): 6378145.000\n    test 1067 f_2f(NWL1965): 0.00335289\n    test 1068 e2f(NWL1965): 0.00335289\n    test 1069 n2e2(NWL1965): 0.00669454\n    test 1070 n2f(NWL1965): 0.00335289\n\n    test 1071 a_b2f_(OSU86F): 298.25722360\n    test 1072 a_b2f2(OSU86F): 0.00336409\n    test 1073 a_b2n(OSU86F): 0.00167922\n    test 1074 b_f2a(OSU86F): 6378136.200\n    test 1075 b_f_2a(OSU86F): 6378136.200\n    test 1076 f_2f(OSU86F): 0.00335281\n    test 1077 e2f(OSU86F): 0.00335281\n    test 1078 n2e2(OSU86F): 0.00669438\n    test 1079 n2f(OSU86F): 0.00335281\n\n    test 1080 a_b2f_(OSU91A): 298.25722360\n    test 1081 a_b2f2(OSU91A): 0.00336409\n    test 1082 a_b2n(OSU91A): 0.00167922\n    test 1083 b_f2a(OSU91A): 6378136.300\n    test 1084 b_f_2a(OSU91A): 6378136.300\n    test 1085 f_2f(OSU91A): 0.00335281\n    test 1086 e2f(OSU91A): 0.00335281\n    test 1087 n2e2(OSU91A): 0.00669438\n    test 1088 n2f(OSU91A): 0.00335281\n\n    test 1089 a_b2f_(Plessis1817): 308.64000000\n    test 1090 a_b2f2(Plessis1817): 0.00325055\n    test 1091 a_b2n(Plessis1817): 0.00162264\n    test 1092 b_f2a(Plessis1817): 6376523.000\n    test 1093 b_f_2a(Plessis1817): 6376523.000\n    test 1094 f_2f(Plessis1817): 0.00324002\n    test 1095 e2f(Plessis1817): 0.00324002\n    test 1096 n2e2(Plessis1817): 0.00646954\n    test 1097 n2f(Plessis1817): 0.00324002\n\n    test 1098 a_b2f_(Prolate): -297.25722356\n    test 1099 a_b2f2(Prolate): -0.00335281\n    test 1100 a_b2n(Prolate): -0.00167922\n    test 1101 b_f2a(Prolate): 6356752.314\n    test 1102 b_f_2a(Prolate): 6356752.314\n    test 1103 f_2f(Prolate): -0.00336409\n    test 1104 e2f(Prolate): 0.00337545  FAILED, KNOWN, expected -0.00336409\n    test 1105 n2e2(Prolate): -0.00673950\n    test 1106 n2f(Prolate): -0.00336409\n\n    test 1107 a_b2f_(PZ90): 298.25783930\n    test 1108 a_b2f2(PZ90): 0.00336408\n    test 1109 a_b2n(PZ90): 0.00167922\n    test 1110 b_f2a(PZ90): 6378136.000\n    test 1111 b_f_2a(PZ90): 6378136.000\n    test 1112 f_2f(PZ90): 0.00335280\n    test 1113 e2f(PZ90): 0.00335280\n    test 1114 n2e2(PZ90): 0.00669437\n    test 1115 n2f(PZ90): 0.00335280\n\n    test 1116 a_b2f_(SGS85): 298.25700000\n    test 1117 a_b2f2(SGS85): 0.00336409\n    test 1118 a_b2n(SGS85): 0.00167922\n    test 1119 b_f2a(SGS85): 6378136.000\n    test 1120 b_f_2a(SGS85): 6378136.000\n    test 1121 f_2f(SGS85): 0.00335281\n    test 1122 e2f(SGS85): 0.00335281\n    test 1123 n2e2(SGS85): 0.00669438\n    test 1124 n2f(SGS85): 0.00335281\n\n    test 1125 a_b2f_(SoAmerican1969): 298.25000000\n    test 1126 a_b2f2(SoAmerican1969): 0.00336417\n    test 1127 a_b2n(SoAmerican1969): 0.00167926\n    test 1128 b_f2a(SoAmerican1969): 6378160.000\n    test 1129 b_f_2a(SoAmerican1969): 6378160.000\n    test 1130 f_2f(SoAmerican1969): 0.00335289\n    test 1131 e2f(SoAmerican1969): 0.00335289\n    test 1132 n2e2(SoAmerican1969): 0.00669454\n    test 1133 n2f(SoAmerican1969): 0.00335289\n\n    test 1134 a_b2f_(Sphere): 0.00000000\n    test 1135 a_b2f2(Sphere): 0.00000000\n    test 1136 a_b2n(Sphere): 0.00000000\n    test 1137 b_f2a(Sphere): 6371008.771\n    test 1138 b_f_2a(Sphere): 6371008.771\n    test 1139 f_2f(Sphere): 0.00000000\n    test 1140 e2f(Sphere): 0.00000000\n    test 1141 n2e2(Sphere): 0.00000000\n    test 1142 n2f(Sphere): 0.00000000\n\n    test 1143 a_b2f_(SphereAuthalic): 0.00000000\n    test 1144 a_b2f2(SphereAuthalic): 0.00000000\n    test 1145 a_b2n(SphereAuthalic): 0.00000000\n    test 1146 b_f2a(SphereAuthalic): 6371000.000\n    test 1147 b_f_2a(SphereAuthalic): 6371000.000\n    test 1148 f_2f(SphereAuthalic): 0.00000000\n    test 1149 e2f(SphereAuthalic): 0.00000000\n    test 1150 n2e2(SphereAuthalic): 0.00000000\n    test 1151 n2f(SphereAuthalic): 0.00000000\n\n    test 1152 a_b2f_(SpherePopular): 0.00000000\n    test 1153 a_b2f2(SpherePopular): 0.00000000\n    test 1154 a_b2n(SpherePopular): 0.00000000\n    test 1155 b_f2a(SpherePopular): 6378137.000\n    test 1156 b_f_2a(SpherePopular): 6378137.000\n    test 1157 f_2f(SpherePopular): 0.00000000\n    test 1158 e2f(SpherePopular): 0.00000000\n    test 1159 n2e2(SpherePopular): 0.00000000\n    test 1160 n2f(SpherePopular): 0.00000000\n\n    test 1161 a_b2f_(Struve1860): 294.73000000\n    test 1162 a_b2f2(Struve1860): 0.00340449\n    test 1163 a_b2n(Struve1860): 0.00169935\n    test 1164 b_f2a(Struve1860): 6378298.300\n    test 1165 b_f_2a(Struve1860): 6378298.300\n    test 1166 f_2f(Struve1860): 0.00339294\n    test 1167 e2f(Struve1860): 0.00339294\n    test 1168 n2e2(Struve1860): 0.00677436\n    test 1169 n2f(Struve1860): 0.00339294\n\n    test 1170 a_b2f_(WGS60): 298.30000000\n    test 1171 a_b2f2(WGS60): 0.00336361\n    test 1172 a_b2n(WGS60): 0.00167898\n    test 1173 b_f2a(WGS60): 6378165.000\n    test 1174 b_f_2a(WGS60): 6378165.000\n    test 1175 f_2f(WGS60): 0.00335233\n    test 1176 e2f(WGS60): 0.00335233\n    test 1177 n2e2(WGS60): 0.00669342\n    test 1178 n2f(WGS60): 0.00335233\n\n    test 1179 a_b2f_(WGS66): 298.25000000\n    test 1180 a_b2f2(WGS66): 0.00336417\n    test 1181 a_b2n(WGS66): 0.00167926\n    test 1182 b_f2a(WGS66): 6378145.000\n    test 1183 b_f_2a(WGS66): 6378145.000\n    test 1184 f_2f(WGS66): 0.00335289\n    test 1185 e2f(WGS66): 0.00335289\n    test 1186 n2e2(WGS66): 0.00669454\n    test 1187 n2f(WGS66): 0.00335289\n\n    test 1188 a_b2f_(WGS72): 298.26000000\n    test 1189 a_b2f2(WGS72): 0.00336406\n    test 1190 a_b2n(WGS72): 0.00167920\n    test 1191 b_f2a(WGS72): 6378135.000\n    test 1192 b_f_2a(WGS72): 6378135.000\n    test 1193 f_2f(WGS72): 0.00335278\n    test 1194 e2f(WGS72): 0.00335278\n    test 1195 n2e2(WGS72): 0.00669432\n    test 1196 n2f(WGS72): 0.00335278\n\n    test 1197 a_b2f_(WGS84): 298.25722356\n    test 1198 a_b2f2(WGS84): 0.00336409\n    test 1199 a_b2n(WGS84): 0.00167922\n    test 1200 b_f2a(WGS84): 6378137.000\n    test 1201 b_f_2a(WGS84): 6378137.000\n    test 1202 f_2f(WGS84): 0.00335281\n    test 1203 e2f(WGS84): 0.00335281\n    test 1204 n2e2(WGS84): 0.00669438\n    test 1205 n2f(WGS84): 0.00335281\n\n    test 1206 a_b2f_(WGS84_NGS): 298.25722210\n    test 1207 a_b2f2(WGS84_NGS): 0.00336409\n    test 1208 a_b2n(WGS84_NGS): 0.00167922\n    test 1209 b_f2a(WGS84_NGS): 6378137.000\n    test 1210 b_f_2a(WGS84_NGS): 6378137.000\n    test 1211 f_2f(WGS84_NGS): 0.00335281\n    test 1212 e2f(WGS84_NGS): 0.00335281\n    test 1213 n2e2(WGS84_NGS): 0.00669438\n    test 1214 n2f(WGS84_NGS): 0.00335281\n\n    test 1215 total: 50\n\n    testWGS84(pygeodesy.ellipsoids, 26.03.25)\n    test 1216 roc1_ 0: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1217 roc1_ 0: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1218 roc1_ 5: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1219 roc1_ 5: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1220 roc1_ 10: 9.313225746154785e-10  FAILED, KNOWN, expected 1.863e-09\n    test 1221 roc1_ 10: 9.313225746154785e-10  FAILED, KNOWN, expected 1.863e-09\n    test 1222 roc1_ 15: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1223 roc1_ 15: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1224 roc1_ 20: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1225 roc1_ 20: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1226 roc1_ 25: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1227 roc1_ 25: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1228 roc1_ 30: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1229 roc1_ 30: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1230 roc1_ 35: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1231 roc1_ 35: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1232 roc1_ 40: 9.313225746154785e-10  FAILED, KNOWN, expected 1.863e-09\n    test 1233 roc1_ 40: 9.313225746154785e-10  FAILED, KNOWN, expected 1.863e-09\n    test 1234 roc1_ 45: 9.313225746154785e-10  FAILED, KNOWN, expected 1.863e-09\n    test 1235 roc1_ 45: 9.313225746154785e-10  FAILED, KNOWN, expected 1.863e-09\n    test 1236 roc1_ 50: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1237 roc1_ 50: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1238 roc1_ 55: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1239 roc1_ 55: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1240 roc1_ 60: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1241 roc1_ 60: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1242 roc1_ 65: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1243 roc1_ 65: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1244 roc1_ 70: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1245 roc1_ 70: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1246 roc1_ 75: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1247 roc1_ 75: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1248 roc1_ 80: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1249 roc1_ 80: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1250 roc1_ 85: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1251 roc1_ 85: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1252 roc1_ 90: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1253 roc1_ 90: 0.0  FAILED, KNOWN, expected 1.863e-09\n\n    testProlate(pygeodesy.ellipsoids, 26.03.25)\n    test 1254 roc1_ 0: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1255 roc1_ 0: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1256 roc1_ 5: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1257 roc1_ 5: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1258 roc1_ 10: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1259 roc1_ 10: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1260 roc1_ 15: 9.313225746154785e-10  FAILED, KNOWN, expected 1.863e-09\n    test 1261 roc1_ 15: 9.313225746154785e-10  FAILED, KNOWN, expected 1.863e-09\n    test 1262 roc1_ 20: 9.313225746154785e-10  FAILED, KNOWN, expected 1.863e-09\n    test 1263 roc1_ 20: 9.313225746154785e-10  FAILED, KNOWN, expected 1.863e-09\n    test 1264 roc1_ 25: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1265 roc1_ 25: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1266 roc1_ 30: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1267 roc1_ 30: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1268 roc1_ 35: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1269 roc1_ 35: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1270 roc1_ 40: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1271 roc1_ 40: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1272 roc1_ 45: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1273 roc1_ 45: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1274 roc1_ 50: 9.313225746154785e-10  FAILED, KNOWN, expected 1.863e-09\n    test 1275 roc1_ 50: 9.313225746154785e-10  FAILED, KNOWN, expected 1.863e-09\n    test 1276 roc1_ 55: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1277 roc1_ 55: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1278 roc1_ 60: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1279 roc1_ 60: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1280 roc1_ 65: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1281 roc1_ 65: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1282 roc1_ 70: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1283 roc1_ 70: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1284 roc1_ 75: 9.313225746154785e-10  FAILED, KNOWN, expected 1.863e-09\n    test 1285 roc1_ 75: 9.313225746154785e-10  FAILED, KNOWN, expected 1.863e-09\n    test 1286 roc1_ 80: 9.313225746154785e-10  FAILED, KNOWN, expected 1.863e-09\n    test 1287 roc1_ 80: 9.313225746154785e-10  FAILED, KNOWN, expected 1.863e-09\n    test 1288 roc1_ 85: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1289 roc1_ 85: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1290 roc1_ 90: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1291 roc1_ 90: 0.0  FAILED, KNOWN, expected 1.863e-09\n\n    testSphereAuthalic(pygeodesy.ellipsoids, 26.03.25)\n    test 1292 roc1_ 0: 0.0\n    test 1293 roc1_ 0: 0.0\n    test 1294 roc1_ 5: 0.0\n    test 1295 roc1_ 5: 0.0\n    test 1296 roc1_ 10: 0.0\n    test 1297 roc1_ 10: 0.0\n    test 1298 roc1_ 15: 0.0\n    test 1299 roc1_ 15: 0.0\n    test 1300 roc1_ 20: 0.0\n    test 1301 roc1_ 20: 0.0\n    test 1302 roc1_ 25: 0.0\n    test 1303 roc1_ 25: 0.0\n    test 1304 roc1_ 30: 0.0\n    test 1305 roc1_ 30: 0.0\n    test 1306 roc1_ 35: 0.0\n    test 1307 roc1_ 35: 0.0\n    test 1308 roc1_ 40: 0.0\n    test 1309 roc1_ 40: 0.0\n    test 1310 roc1_ 45: 0.0\n    test 1311 roc1_ 45: 0.0\n    test 1312 roc1_ 50: 0.0\n    test 1313 roc1_ 50: 0.0\n    test 1314 roc1_ 55: 0.0\n    test 1315 roc1_ 55: 0.0\n    test 1316 roc1_ 60: 0.0\n    test 1317 roc1_ 60: 0.0\n    test 1318 roc1_ 65: 0.0\n    test 1319 roc1_ 65: 0.0\n    test 1320 roc1_ 70: 0.0\n    test 1321 roc1_ 70: 0.0\n    test 1322 roc1_ 75: 0.0\n    test 1323 roc1_ 75: 0.0\n    test 1324 roc1_ 80: 0.0\n    test 1325 roc1_ 80: 0.0\n    test 1326 roc1_ 85: 0.0\n    test 1327 roc1_ 85: 0.0\n    test 1328 roc1_ 90: 0.0\n    test 1329 roc1_ 90: 0.0\n\n    testcircle4(pygeodesy.ellipsoids, 26.03.25)\n\n    testWGS84(pygeodesy.ellipsoids, 26.03.25)\n    test 1330 circle4 0: 6378137.000000\n    test 1331 circle4 0: 6378137.000000\n    test 1332 circle4 10: 6377497.402124\n    test 1333 circle4 10: 6377497.402124\n    test 1334 circle4 20: 6375653.951276\n    test 1335 circle4 20: 6375653.951276\n    test 1336 circle4 30: 6372824.420294\n    test 1337 circle4 30: 6372824.420294\n    test 1338 circle4 40: 6369344.863240\n    test 1339 circle4 40: 6369344.863240\n    test 1340 circle4 50: 6365631.517537\n    test 1341 circle4 50: 6365631.517537\n    test 1342 circle4 60: 6362132.224397\n    test 1343 circle4 60: 6362132.224397\n    test 1344 circle4 70: 6359272.455642\n    test 1345 circle4 70: 6359272.455642\n    test 1346 circle4 80: 6357402.413808\n    test 1347 circle4 80: 6357402.413808\n    test 1348 circle4 90: 6356752.314245\n    test 1349 circle4 90: 6356752.314245\n\n    testSphere(pygeodesy.ellipsoids, 26.03.25)\n    test 1350 circle4 0: 6371008.771415\n    test 1351 circle4 0: 6371008.771415\n    test 1352 circle4 10: 6371008.771415\n    test 1353 circle4 10: 6371008.771415\n    test 1354 circle4 20: 6371008.771415\n    test 1355 circle4 20: 6371008.771415\n    test 1356 circle4 30: 6371008.771415\n    test 1357 circle4 30: 6371008.771415\n    test 1358 circle4 40: 6371008.771415\n    test 1359 circle4 40: 6371008.771415\n    test 1360 circle4 50: 6371008.771415\n    test 1361 circle4 50: 6371008.771415\n    test 1362 circle4 60: 6371008.771415\n    test 1363 circle4 60: 6371008.771415\n    test 1364 circle4 70: 6371008.771415\n    test 1365 circle4 70: 6371008.771415\n    test 1366 circle4 80: 6371008.771415\n    test 1367 circle4 80: 6371008.771415\n    test 1368 circle4 90: 6371008.771415\n    test 1369 circle4 90: 6371008.771415\n# lazily imported pygeodesy.triaxials by lazily.py line 529\n# lazily imported pygeodesy.Triaxial from .triaxials.triaxial5 by ellipsoids.py line 1905\n# lazily imported pygeodesy.latlonBase by basics.py line 473\n\n    test 1370 hartzell4: (3642031.283571, 3678090.99925, 3714150.714929, 11296639.666827)\n\n    77 of 1370 testEllipsoids.py tests (5.6%) FAILED, ALL KNOWN (pygeodesy 26.3.26 PyPy 7.3.17 Python 3.10.14 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 178.704 ms\nrunning /opt/local/bin/p....y3.10 -W default ~/PyGeodesy/test/testElliptic.py\n# lazily imported pygeodesy.basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.DeprecationWarnings from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isint from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isLazy from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.issubclassof from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.iterNumpy2over from .iters by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.LazyImportError from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.karney by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.NN from .interns by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.normDMS from .dms by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.pairs from .streprs by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.printf from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.property_RO from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.typename from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.elliptic by testElliptic.py line 11\n# lazily imported pygeodesy.Elliptic from .elliptic by testElliptic.py line 11\n# lazily imported pygeodesy.EllipticError from .elliptic by testElliptic.py line 11\n# lazily imported pygeodesy.Elliptic3Tuple from .elliptic by testElliptic.py line 11\n# lazily imported pygeodesy.EPS from .constants by testElliptic.py line 11\n# lazily imported pygeodesy.fstr from .streprs by testElliptic.py line 11\n# lazily imported pygeodesy.PI_2 from .constants by testElliptic.py line 11\n# lazily imported pygeodesy.PI_4 from .constants by testElliptic.py line 11\n# lazily imported pygeodesy.radians from .utily by testElliptic.py line 11\n# lazily imported pygeodesy.Scalar from .units by testElliptic.py line 11\n# lazily imported pygeodesy.sincos2 from .utily by testElliptic.py line 11\n\n    testing testElliptic.py 26.02.12 isLazy=3\n    test 1 eps4: 8.881784197e-16\n    test 2 RC, RF(0.020, ...): 3.914361830671\n    test 3 RC, RF(0.030, ...): 6.584789484624\n    test 4 RC, RF(0.040, ...): 5.493061443341\n    test 5 RC, RF(0.050, ...): 4.812118250596\n    test 6 RC, RF(0.060, ...): 4.335073632453\n    test 7 RC, RF(0.070, ...): 3.976827306120\n    test 8 RC, RF(0.080, ...): 3.694989719259\n    test 9 RC, RF(0.090, ...): 3.465735902800\n    test 10 RC, RF(0.100, ...): 3.274501502373\n    test 11 RC, RF(0.110, ...): 3.111812518574\n    test 12 RC, RF(0.120, ...): 2.971203516685\n    test 13 RC, RF(0.130, ...): 2.848090500183\n    test 14 RC, RF(0.140, ...): 2.739120555165\n    test 15 RC, RF(0.150, ...): 2.641776814832\n    test 16 RC, RF(0.160, ...): 2.554128118830\n    test 17 RC, RF(0.170, ...): 2.474664615473\n    test 18 RC, RF(0.180, ...): 2.402186472893\n    test 19 RC, RF(0.190, ...): 2.335726540516\n    test 20 RC, RF(0.200, ...): 2.274495360058\n    test 21 RC, RF(0.210, ...): 2.217841271926\n    test 22 RC, RF(0.220, ...): 2.165220951174\n    test 23 RC, RF(0.230, ...): 2.116177296054\n    test 24 RC, RF(0.240, ...): 2.070322594382\n    test 25 RC, RF(0.250, ...): 2.027325540541\n    test 26 RC, RF(0.260, ...): 1.986901103492\n    test 27 RC, RF(0.270, ...): 1.948802534199\n    test 28 RC, RF(0.280, ...): 1.912814998209\n    test 29 RC, RF(0.290, ...): 1.878750456745\n    test 30 RC, RF(0.300, ...): 1.846443516895\n    test 31 RC, RF(0.310, ...): 1.815748041271\n    test 32 RC, RF(0.320, ...): 1.786534358134\n    test 33 RC, RF(0.330, ...): 1.758686950216\n    test 34 RC, RF(0.340, ...): 1.732102528083\n    test 35 RC, RF(0.350, ...): 1.706688414643\n    test 36 RC, RF(0.360, ...): 1.682361183106\n    test 37 RC, RF(0.370, ...): 1.659045502693\n    test 38 RC, RF(0.380, ...): 1.636673155658\n    test 39 RC, RF(0.390, ...): 1.615182196359\n    test 40 RC, RF(0.400, ...): 1.594516228743\n    test 41 RC, RF(0.410, ...): 1.574623783019\n    test 42 RC, RF(0.420, ...): 1.555457775830\n    test 43 RC, RF(0.430, ...): 1.536975041007\n    test 44 RC, RF(0.440, ...): 1.519135920258\n    test 45 RC, RF(0.450, ...): 1.501903904951\n    test 46 RC, RF(0.460, ...): 1.485245321610\n    test 47 RC, RF(0.470, ...): 1.469129054970\n    test 48 RC, RF(0.480, ...): 1.453526303390\n    test 49 RC, RF(0.490, ...): 1.438410362259\n    test 50 RC, RF(0.500, ...): 1.423756431678\n    test 51 RC, RF(0.510, ...): 1.409541445271\n    test 52 RC, RF(0.520, ...): 1.395743917431\n    test 53 RC, RF(0.530, ...): 1.382343806706\n    test 54 RC, RF(0.540, ...): 1.369322393343\n    test 55 RC, RF(0.550, ...): 1.356662169284\n    test 56 RC, RF(0.560, ...): 1.344346739158\n    test 57 RC, RF(0.570, ...): 1.332360730978\n    test 58 RC, RF(0.580, ...): 1.320689715446\n    test 59 RC, RF(0.590, ...): 1.309320132904\n    test 60 RC, RF(0.600, ...): 1.298239227085\n    test 61 RC, RF(0.610, ...): 1.287434984930\n    test 62 RC, RF(0.620, ...): 1.276896081822\n    test 63 RC, RF(0.630, ...): 1.266611831682\n    test 64 RC, RF(0.640, ...): 1.256572141405\n    test 65 RC, RF(0.650, ...): 1.246767469214\n    test 66 RC, RF(0.660, ...): 1.237188786540\n    test 67 RC, RF(0.670, ...): 1.227827543058\n    test 68 RC, RF(0.680, ...): 1.218675634611\n    test 69 RC, RF(0.690, ...): 1.209725373708\n    test 70 RC, RF(0.700, ...): 1.200969462383\n    test 71 RC, RF(0.710, ...): 1.192400967179\n    test 72 RC, RF(0.720, ...): 1.184013296070\n    test 73 RC, RF(0.730, ...): 1.175800177139\n    test 74 RC, RF(0.740, ...): 1.167755638871\n    test 75 RC, RF(0.750, ...): 1.159873991901\n    test 76 RC, RF(0.760, ...): 1.152149812097\n    test 77 RC, RF(0.770, ...): 1.144577924881\n    test 78 RC, RF(0.780, ...): 1.137153390647\n    test 79 RC, RF(0.790, ...): 1.129871491226\n    test 80 RC, RF(0.800, ...): 1.122727717281\n    test 81 RC, RF(0.810, ...): 1.115717756571\n    test 82 RC, RF(0.820, ...): 1.108837483013\n    test 83 RC, RF(0.830, ...): 1.102082946473\n    test 84 RC, RF(0.840, ...): 1.095450363236\n    test 85 RC, RF(0.850, ...): 1.088936107101\n    test 86 RC, RF(0.860, ...): 1.082536701044\n    test 87 RC, RF(0.870, ...): 1.076248809425\n    test 88 RC, RF(0.880, ...): 1.070069230678\n    test 89 RC, RF(0.890, ...): 1.063994890459\n    test 90 RC, RF(0.900, ...): 1.058022835225\n    test 91 RC, RF(0.910, ...): 1.052150226192\n    test 92 RC, RF(0.920, ...): 1.046374333669\n    test 93 RC, RF(0.930, ...): 1.040692531726\n    test 94 RC, RF(0.940, ...): 1.035102293176\n    test 95 RC, RF(0.950, ...): 1.029601184852\n    test 96 RC, RF(0.960, ...): 1.024186863158\n    test 97 RC, RF(0.970, ...): 1.018857069872\n    test 98 RC, RF(0.980, ...): 1.013609628192\n    test 99 RC, RF(0.990, ...): 1.008442438994\n    test 100 RD, RJ(0.010, ...): 8.120132781711\n    test 101 RD, RJ(0.020, ...): 7.119021204087\n    test 102 RD, RJ(0.030, ...): 6.544107485563\n    test 103 RD, RJ(0.040, ...): 6.142532079666\n    test 104 RD, RJ(0.050, ...): 5.835358486352\n    test 105 RD, RJ(0.060, ...): 5.587552234737\n    test 106 RD, RJ(0.070, ...): 5.380489023690\n    test 107 RD, RJ(0.080, ...): 5.203088814832\n    test 108 RD, RJ(0.090, ...): 5.048227960523\n    test 109 RD, RJ(0.100, ...): 4.911057935480\n    test 110 RD, RJ(0.110, ...): 4.788131254930\n    test 111 RD, RJ(0.120, ...): 4.676910208210\n    test 112 RD, RJ(0.130, ...): 4.575473423301\n    test 113 RD, RJ(0.140, ...): 4.482331804788\n    test 114 RD, RJ(0.150, ...): 4.396308333326\n    test 115 RD, RJ(0.160, ...): 4.316456874863\n    test 116 RD, RJ(0.170, ...): 4.242005741804\n    test 117 RD, RJ(0.180, ...): 4.172317477477\n    test 118 RD, RJ(0.190, ...): 4.106859576449\n    test 119 RD, RJ(0.200, ...): 4.045182759349\n    test 120 RD, RJ(0.210, ...): 3.986904580308\n    test 121 RD, RJ(0.220, ...): 3.931696871490\n    test 122 RD, RJ(0.230, ...): 3.879275996390\n    test 123 RD, RJ(0.240, ...): 3.829395191121\n    test 124 RD, RJ(0.250, ...): 3.781838479725\n    test 125 RD, RJ(0.260, ...): 3.736415791191\n    test 126 RD, RJ(0.270, ...): 3.692959004641\n    test 127 RD, RJ(0.280, ...): 3.651318719062\n    test 128 RD, RJ(0.290, ...): 3.611361594199\n    test 129 RD, RJ(0.300, ...): 3.572968145771\n    test 130 RD, RJ(0.310, ...): 3.536030905108\n    test 131 RD, RJ(0.320, ...): 3.500452873386\n    test 132 RD, RJ(0.330, ...): 3.466146215741\n    test 133 RD, RJ(0.340, ...): 3.433031152013\n    test 134 RD, RJ(0.350, ...): 3.401035009727\n    test 135 RD, RJ(0.360, ...): 3.370091411694\n    test 136 RD, RJ(0.370, ...): 3.340139575961\n    test 137 RD, RJ(0.380, ...): 3.311123710009\n    test 138 RD, RJ(0.390, ...): 3.282992484411\n    test 139 RD, RJ(0.400, ...): 3.255698573796\n    test 140 RD, RJ(0.410, ...): 3.229198255060\n    test 141 RD, RJ(0.420, ...): 3.203451054514\n    test 142 RD, RJ(0.430, ...): 3.178419436977\n    test 143 RD, RJ(0.440, ...): 3.154068531006\n    test 144 RD, RJ(0.450, ...): 3.130365885345\n    test 145 RD, RJ(0.460, ...): 3.107281252437\n    test 146 RD, RJ(0.470, ...): 3.084786395490\n    test 147 RD, RJ(0.480, ...): 3.062854916088\n    test 148 RD, RJ(0.490, ...): 3.041462099793\n    test 149 RD, RJ(0.500, ...): 3.020584777522\n    test 150 RD, RJ(0.510, ...): 3.000201200833\n    test 151 RD, RJ(0.520, ...): 2.980290929460\n    test 152 RD, RJ(0.530, ...): 2.960834729701\n    test 153 RD, RJ(0.540, ...): 2.941814482427\n    test 154 RD, RJ(0.550, ...): 2.923213099639\n    test 155 RD, RJ(0.560, ...): 2.905014448642\n    test 156 RD, RJ(0.570, ...): 2.887203283023\n    test 157 RD, RJ(0.580, ...): 2.869765179714\n    test 158 RD, RJ(0.590, ...): 2.852686481504\n    test 159 RD, RJ(0.600, ...): 2.835954244454\n    test 160 RD, RJ(0.610, ...): 2.819556189720\n    test 161 RD, RJ(0.620, ...): 2.803480659351\n    test 162 RD, RJ(0.630, ...): 2.787716575666\n    test 163 RD, RJ(0.640, ...): 2.772253403892\n    test 164 RD, RJ(0.650, ...): 2.757081117726\n    test 165 RD, RJ(0.660, ...): 2.742190167580\n    test 166 RD, RJ(0.670, ...): 2.727571451237\n    test 167 RD, RJ(0.680, ...): 2.713216286727\n    test 168 RD, RJ(0.690, ...): 2.699116387203\n    test 169 RD, RJ(0.700, ...): 2.685263837661\n    test 170 RD, RJ(0.710, ...): 2.671651073335\n    test 171 RD, RJ(0.720, ...): 2.658270859623\n    test 172 RD, RJ(0.730, ...): 2.645116273430\n    test 173 RD, RJ(0.740, ...): 2.632180685789\n    test 174 RD, RJ(0.750, ...): 2.619457745678\n    test 175 RD, RJ(0.760, ...): 2.606941364924\n    test 176 RD, RJ(0.770, ...): 2.594625704104\n    test 177 RD, RJ(0.780, ...): 2.582505159384\n    test 178 RD, RJ(0.790, ...): 2.570574350197\n    test 179 RD, RJ(0.800, ...): 2.558828107720\n    test 180 RD, RJ(0.810, ...): 2.547261464073\n    test 181 RD, RJ(0.820, ...): 2.535869642198\n    test 182 RD, RJ(0.830, ...): 2.524648046356\n    test 183 RD, RJ(0.840, ...): 2.513592253209\n    test 184 RD, RJ(0.850, ...): 2.502698003435\n    test 185 RD, RJ(0.860, ...): 2.491961193848\n    test 186 RD, RJ(0.870, ...): 2.481377869975\n    test 187 RD, RJ(0.880, ...): 2.470944219069\n    test 188 RD, RJ(0.890, ...): 2.460656563526\n    test 189 RD, RJ(0.900, ...): 2.450511354674\n    test 190 RD, RJ(0.910, ...): 2.440505166909\n    test 191 RD, RJ(0.920, ...): 2.430634692166\n    test 192 RD, RJ(0.930, ...): 2.420896734686\n    test 193 RD, RJ(0.940, ...): 2.411288206073\n    test 194 RD, RJ(0.950, ...): 2.401806120619\n    test 195 RD, RJ(0.960, ...): 2.392447590873\n    test 196 RD, RJ(0.970, ...): 2.383209823448\n    test 197 RD, RJ(0.980, ...): 2.374090115050\n    test 198 RD, RJ(0.990, ...): 2.365085848706\n\n    test 199 eps4: 8.881784197e-16\n    test 200 k2: 0.1000000\n    test 201 kp2: 0.9000000\n    test 202 eps: 0.0263340\n    test 203 cD: 0.816837118\n    test 204 cE: 1.530757637\n    test 205 cG: 1.530757637\n    test 206 cH: 0.795604230\n    test 207 cK: 1.612441349\n    test 208 cKE: 0.081683712\n    test 209 cPi: 1.612441349\n    test 210 fE(phi): 0.348372822\n    test 211 fDelta(sn, cn): 0.994133906\n    test 212 fD(sn, cn, dn): 0.013885234\n    test 213 fE(sn, cn, dn): 0.348372822\n    test 214 fEd(PI_2): 0.027415224\n    test 215 fEinv(PI_2): 1.612999420\n    test 216 fF(sn, cn, dn): 0.349761345\n    test 217 fG(sn, cn, dn): 0.348372822\n    test 218 fH(sn, cn, dn): 0.335876111\n    test 219 fPi(sn, cn, dn): 0.349761345\n    test 220 fPi(sn, None, dn): invokation Elliptic.fPi(0, None, 1): invalid\n    test 221 fPi(sn, dn, None): invokation Elliptic.fH(0, 1, None): invalid\n\n    test 222 deltaD(sn, cn, dn): -0.3223642\n    test 223 deltaE(sn, cn, dn): 0.0084191\n    test 224 deltaEinv(sn, cn): -0.0082518\n    test 225 deltaF(sn, cn, dn): -0.0083379\n    test 226 deltaG(sn, cn, dn): 0.0084191\n    test 227 deltaH(sn, cn, dn): 0.3140691\n    test 228 deltaPi(sn, cn, dn): -0.0083379\n    test 229 deltaPi(sn, None, dn): invokation Elliptic.deltaPi(0, None, 1): invalid\n    test 230 deltaPi(sn, dn, None): invokation Elliptic.deltaPi(0, 1, None): invalid\n\n    test 231 RF(1,   2, 0): 1.3110287771461\n    test 232 RF(0.5, 1, 0): 1.8540746773014\n    test 233 RF(2,   3, 4): 0.58408284167715\n\n    test 234 RC(0,  1/4): 3.1415926535898\n    test 235 RC(9/4,  2): 0.69314718055995\n    test 236 RC(1/4, -2): 0.23104906018665\n\n    test 237 RJ(0, 1, 2, 3): 0.77688623778582\n    test 238 RJ(2, 3, 4, 5): 0.14297579667157\n\n    test 239 RD(0, 2, 1): 1.7972103521034\n    test 240 RD(2, 3, 4): 0.16510527294261\n\n    test 241 RG(0, 16, 16): 3.1415926535898\n    test 242 RG(2,  3,  4): 1.7255030280692\n    test 243 RG(0,  0.0796, 4): 1.0284758090288\n\n    test 244 reset: 5\n\n    test 245 sncndn(x, jam=True): 0.0, 1.0, 1.0\n    test 246 sncndn(x, jam=True): 0.998602459, 0.052850065, 0.948830497\n    test 247 sncndn(x, jam=True): 0.0, 1.0, 1.0\n    test 248 sncndn(x, jam=True): 0.917152336, 0.398536815, 0.398536815\n    test 249 sncndn(x, jam=True): <class 'pygeodesy.elliptic.Elliptic3Tuple'>\n\n    test 250 sncndn(x, jam=False): 0.0, 1.0, 1.0\n    test 251 sncndn(x, jam=False): 0.999219618, 0.0394988, 0.948765522\n    test 252 sncndn(x, jam=False): 0.0, 1.0, 1.0\n    test 253 sncndn(x, jam=False): 0.917152336, 0.398536815, 0.398536815\n    test 254 sncndn(x, jam=False): <class 'pygeodesy.elliptic.Elliptic3Tuple'>\n\n    test 255 copy(<class 'type'>): (<class 'pygeodesy.elliptic.Elliptic'>, True)\n    test 256 Elliptic.copy(): (<class 'pygeodesy.elliptic.Elliptic'>, True)\n    test 257 k2 alpha2 kp2 alphap2: (0.0, 0.0, 0.0, 0.0)\n    test 258 k2 alpha2 kp2 alphap2: (0.25, 0.25, 0.25, 0.25)\n    test 259 k2 alpha2 kp2 alphap2: (0.5, 0.5, 0.5, 0.5)\n    test 260 k2 alpha2 kp2 alphap2: (0.75, 0.75, 0.75, 0.75)\n# imported pygeodesy.streprs into errors.py line 99\n# imported pygeodesy.basics into errors.py line 443\n\n    test 261 ConvergenceError: maxit (9): no convergence (1), tolerance (2)\n\n    test 262 _ellipticError: invokation Elliptic.testElliptic(None): test\n    test 263 _ellipticError: invokation Elliptic._ellipticError(None): invokation Elliptic.testElliptic(None): test\n\n    all 263 testElliptic.py tests passed (pygeodesy 26.3.26 PyPy 7.3.17 Python 3.10.14 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 401.653 ms\nrunning /opt/local/bin/p....y3.10 -W default ~/PyGeodesy/test/testEpsg.py\n# lazily imported pygeodesy.basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.DeprecationWarnings from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isint from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isLazy from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.issubclassof from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.iterNumpy2over from .iters by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.LazyImportError from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.karney by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.NN from .interns by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.normDMS from .dms by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.pairs from .streprs by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.printf from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.property_RO from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.typename from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.Epsg from .epsg by testEpsg.py line 11\n# lazily imported pygeodesy.toUtmUps8 from .utmups by testEpsg.py line 11\n# lazily imported pygeodesy.Ellipsoids from .ellipsoids by testTMcoords.py line 14\n# lazily imported pygeodesy.EPS from .constants by testTMcoords.py line 14\n# lazily imported pygeodesy.RangeError from .errors by testTMcoords.py line 14\n\n    testing testEpsg.py 23.03.27 isLazy=3\n    test 1 Epsg: 32661\n    test 2 0 N: (0, 'N')\n    test 3 1 N: (1, 'N')\n    test 4 2 N: (2, 'N')\n    test 5 3 N: (3, 'N')\n    test 6 4 N: (4, 'N')\n    test 7 5 N: (5, 'N')\n    test 8 6 N: (6, 'N')\n    test 9 7 N: (7, 'N')\n    test 10 8 N: (8, 'N')\n    test 11 9 N: (9, 'N')\n    test 12 10 N: (10, 'N')\n    test 13 11 N: (11, 'N')\n    test 14 12 N: (12, 'N')\n    test 15 13 N: (13, 'N')\n    test 16 14 N: (14, 'N')\n    test 17 15 N: (15, 'N')\n    test 18 16 N: (16, 'N')\n    test 19 17 N: (17, 'N')\n    test 20 18 N: (18, 'N')\n    test 21 19 N: (19, 'N')\n    test 22 20 N: (20, 'N')\n    test 23 21 N: (21, 'N')\n    test 24 22 N: (22, 'N')\n    test 25 23 N: (23, 'N')\n    test 26 24 N: (24, 'N')\n    test 27 25 N: (25, 'N')\n    test 28 26 N: (26, 'N')\n    test 29 27 N: (27, 'N')\n    test 30 28 N: (28, 'N')\n    test 31 29 N: (29, 'N')\n    test 32 30 N: (30, 'N')\n    test 33 31 N: (31, 'N')\n    test 34 32 N: (32, 'N')\n    test 35 33 N: (33, 'N')\n    test 36 34 N: (34, 'N')\n    test 37 35 N: (35, 'N')\n    test 38 36 N: (36, 'N')\n    test 39 37 N: (37, 'N')\n    test 40 38 N: (38, 'N')\n    test 41 39 N: (39, 'N')\n    test 42 40 N: (40, 'N')\n    test 43 41 N: (41, 'N')\n    test 44 42 N: (42, 'N')\n    test 45 43 N: (43, 'N')\n    test 46 44 N: (44, 'N')\n    test 47 45 N: (45, 'N')\n    test 48 46 N: (46, 'N')\n    test 49 47 N: (47, 'N')\n    test 50 48 N: (48, 'N')\n    test 51 49 N: (49, 'N')\n    test 52 50 N: (50, 'N')\n    test 53 51 N: (51, 'N')\n    test 54 52 N: (52, 'N')\n    test 55 53 N: (53, 'N')\n    test 56 54 N: (54, 'N')\n    test 57 55 N: (55, 'N')\n    test 58 56 N: (56, 'N')\n    test 59 57 N: (57, 'N')\n    test 60 58 N: (58, 'N')\n    test 61 59 N: (59, 'N')\n    test 62 60 N: (60, 'N')\n    test 63 Epsg: 32761\n    test 64 0 S: (0, 'S')\n    test 65 1 S: (1, 'S')\n    test 66 2 S: (2, 'S')\n    test 67 3 S: (3, 'S')\n    test 68 4 S: (4, 'S')\n    test 69 5 S: (5, 'S')\n    test 70 6 S: (6, 'S')\n    test 71 7 S: (7, 'S')\n    test 72 8 S: (8, 'S')\n    test 73 9 S: (9, 'S')\n    test 74 10 S: (10, 'S')\n    test 75 11 S: (11, 'S')\n    test 76 12 S: (12, 'S')\n    test 77 13 S: (13, 'S')\n    test 78 14 S: (14, 'S')\n    test 79 15 S: (15, 'S')\n    test 80 16 S: (16, 'S')\n    test 81 17 S: (17, 'S')\n    test 82 18 S: (18, 'S')\n    test 83 19 S: (19, 'S')\n    test 84 20 S: (20, 'S')\n    test 85 21 S: (21, 'S')\n    test 86 22 S: (22, 'S')\n    test 87 23 S: (23, 'S')\n    test 88 24 S: (24, 'S')\n    test 89 25 S: (25, 'S')\n    test 90 26 S: (26, 'S')\n    test 91 27 S: (27, 'S')\n    test 92 28 S: (28, 'S')\n    test 93 29 S: (29, 'S')\n    test 94 30 S: (30, 'S')\n    test 95 31 S: (31, 'S')\n    test 96 32 S: (32, 'S')\n    test 97 33 S: (33, 'S')\n    test 98 34 S: (34, 'S')\n    test 99 35 S: (35, 'S')\n    test 100 36 S: (36, 'S')\n    test 101 37 S: (37, 'S')\n    test 102 38 S: (38, 'S')\n    test 103 39 S: (39, 'S')\n    test 104 40 S: (40, 'S')\n    test 105 41 S: (41, 'S')\n    test 106 42 S: (42, 'S')\n    test 107 43 S: (43, 'S')\n    test 108 44 S: (44, 'S')\n    test 109 45 S: (45, 'S')\n    test 110 46 S: (46, 'S')\n    test 111 47 S: (47, 'S')\n    test 112 48 S: (48, 'S')\n    test 113 49 S: (49, 'S')\n    test 114 50 S: (50, 'S')\n    test 115 51 S: (51, 'S')\n    test 116 52 S: (52, 'S')\n    test 117 53 S: (53, 'S')\n    test 118 54 S: (54, 'S')\n    test 119 55 S: (55, 'S')\n    test 120 56 S: (56, 'S')\n    test 121 57 S: (57, 'S')\n    test 122 58 S: (58, 'S')\n    test 123 59 S: (59, 'S')\n    test 124 60 S: (60, 'S')\n    test 125 Ups: 32761\n    test 126 Ups: 00A S\n    test 127 copy(<class 'type'>): (<class 'pygeodesy.epsg.Epsg'>, True)\n    test 128 Epsg.copy(): (<class 'pygeodesy.epsg.Epsg'>, True)\n    test 129 Ups: 32761\n    test 130 Ups: 00B S\n    test 131 copy(<class 'type'>): (<class 'pygeodesy.epsg.Epsg'>, True)\n    test 132 Epsg.copy(): (<class 'pygeodesy.epsg.Epsg'>, True)\n    test 133 Ups: 32661\n    test 134 Ups: 00Y N\n    test 135 copy(<class 'type'>): (<class 'pygeodesy.epsg.Epsg'>, True)\n    test 136 Epsg.copy(): (<class 'pygeodesy.epsg.Epsg'>, True)\n    test 137 Ups: 32661\n    test 138 Ups: 00Z N\n    test 139 copy(<class 'type'>): (<class 'pygeodesy.epsg.Epsg'>, True)\n    test 140 Epsg.copy(): (<class 'pygeodesy.epsg.Epsg'>, True)\n    test 141 TMcoord 1: 38W N\n    test 142 TMcoord 2: 34P N\n    test 143 TMcoord 3: 43Q N\n    test 144 TMcoord 4: 35Q N\n    test 145 TMcoord 5: 37N N\n    test 146 TMcoord 6: 34W N\n    test 147 TMcoord 7: 40V N\n    test 148 TMcoord 8: 34P N\n    test 149 TMcoord 9: 41S N\n    test 150 TMcoord 10: 41X N\n    test 151 TMcoord 11: 43X N\n    test 152 TMcoord 12: 44Q N\n    test 153 TMcoord 13: 44R N\n    test 154 TMcoord 14: 39U N\n    test 155 TMcoord 15: 44P N\n    test 156 TMcoord 16: 39R N\n    test 157 TMcoord 17: 41W N\n    test 158 TMcoord 18: 45U N\n    test 159 TMcoord 19: 32R N\n    test 160 TMcoord 20: 44X N\n    test 161 TMcoord 21: 35T N\n    test 162 TMcoord 22: 32T N\n    test 163 TMcoord 23: 31T N\n    test 164 TMcoord 24: 35N N\n    test 165 TMcoord 25: 45P N\n    test 166 TMcoord 26: 33V N\n    test 167 TMcoord 27: 41Q N\n    test 168 TMcoord 28: 40X N\n    test 169 TMcoord 29: 33P N\n    test 170 TMcoord 30: 40S N\n    test 171 TMcoord 31: 37T N\n    test 172 TMcoord 32: 33X N\n    test 173 TMcoord 33: 41U N\n    test 174 TMcoord 34: 43Q N\n    test 175 TMcoord 35: 42S N\n    test 176 TMcoord 36: 33S N\n    test 177 TMcoord 37: 35X N\n    test 178 TMcoord 38: 38N N\n    test 179 TMcoord 39: 44P N\n    test 180 TMcoord 40: 33U N\n    test 181 TMcoord 41: 37W N\n    test 182 TMcoord 42: 36T N\n    test 183 TMcoord 43: 36Q N\n    test 184 TMcoord 44: 34S N\n    test 185 TMcoord 45: 37S N\n    test 186 TMcoord 46: 34N N\n    test 187 TMcoord 47: 34T N\n    test 188 TMcoord 48: 43Q N\n    test 189 TMcoord 49: 32N N\n    test 190 TMcoord 50: 31Q N\n    test 191 TMcoord 51: 45R N\n    test 192 TMcoord 52: 45R N\n    test 193 TMcoord 53: 34W N\n    test 194 TMcoord 54: 44V N\n    test 195 TMcoord 55: 44S N\n    test 196 TMcoord 56: 39R N\n# imported pygeodesy.basics into errors.py line 443\n    test 197 TMcoord 57: 00Z N\n    test 198 TMcoord 58: 36R N\n    test 199 TMcoord 59: 41V N\n    test 200 TMcoord 60: 42N N\n    test 201 TMcoord 61: 43S N\n    test 202 TMcoord 62: 34N N\n    test 203 TMcoord 63: 34U N\n    test 204 TMcoord 64: 38V N\n    test 205 TMcoord 65: 34Q N\n    test 206 TMcoord 66: 38P N\n    test 207 TMcoord 67: 42S N\n    test 208 TMcoord 68: 44S N\n    test 209 TMcoord 69: 31Q N\n    test 210 TMcoord 70: 40W N\n    test 211 TMcoord 71: 35X N\n    test 212 TMcoord 72: 32T N\n    test 213 TMcoord 73: 45U N\n    test 214 TMcoord 74: 40Q N\n    test 215 TMcoord 75: 31T N\n    test 216 TMcoord 76: 44R N\n    test 217 TMcoord 77: 34U N\n    test 218 TMcoord 78: 38P N\n    test 219 TMcoord 79: 38Q N\n    test 220 TMcoord 80: 45N N\n    test 221 TMcoord 81: 31S N\n    test 222 TMcoord 82: 41U N\n    test 223 TMcoord 83: 40V N\n    test 224 TMcoord 84: 43X N\n    test 225 TMcoord 85: 35N N\n    test 226 TMcoord 86: 44P N\n    test 227 TMcoord 87: 41N N\n    test 228 TMcoord 88: 38Q N\n    test 229 TMcoord 89: 43X N\n    test 230 TMcoord 90: 36V N\n    test 231 TMcoord 91: 34Q N\n    test 232 TMcoord 92: 35W N\n    test 233 TMcoord 93: 45U N\n    test 234 TMcoord 94: 40R N\n    test 235 TMcoord 95: 36R N\n    test 236 TMcoord 96: 35S N\n    test 237 TMcoord 97: 41R N\n    test 238 TMcoord 98: 39Q N\n    test 239 TMcoord 99: 37T N\n    test 240 TMcoord 100: 42P N\n    test 241 TMcoord 101: 35T N\n    test 242 TMcoord 102: 34Q N\n    test 243 TMcoord 103: 41T N\n    test 244 TMcoord 104: 43R N\n    test 245 TMcoord 105: 34Q N\n    test 246 TMcoord 106: 45P N\n    test 247 TMcoord 107: 31P N\n    test 248 TMcoord 108: 44V N\n    test 249 TMcoord 109: 42X N\n    test 250 TMcoord 110: 33R N\n    test 251 TMcoord 111: 37W N\n    test 252 TMcoord 112: 31S N\n    test 253 TMcoord 113: 42N N\n    test 254 TMcoord 114: 39N N\n    test 255 TMcoord 115: 39T N\n    test 256 TMcoord 116: 39P N\n    test 257 TMcoord 117: 34U N\n    test 258 TMcoord 118: 41P N\n    test 259 TMcoord 119: 37R N\n    test 260 TMcoord 120: 44Q N\n    test 261 TMcoord 121: 32V N\n    test 262 TMcoord 122: 41R N\n    test 263 TMcoord 123: 36T N\n    test 264 TMcoord 124: 42U N\n    test 265 TMcoord 125: 42U N\n    test 266 TMcoord 126: 39T N\n    test 267 TMcoord 127: 32T N\n    test 268 TMcoord 128: 32Q N\n    test 269 TMcoord 129: 38P N\n    test 270 TMcoord 130: 34Q N\n    test 271 TMcoord 131: 36V N\n    test 272 TMcoord 132: 36T N\n    test 273 TMcoord 133: 43T N\n    test 274 TMcoord 134: 41W N\n    test 275 TMcoord 135: 32V N\n    test 276 TMcoord 136: 39X N\n    test 277 TMcoord 137: 32U N\n    test 278 TMcoord 138: 37X N\n    test 279 TMcoord 139: 35N N\n    test 280 TMcoord 140: 36P N\n    test 281 TMcoord 141: 31S N\n    test 282 TMcoord 142: 36N N\n    test 283 TMcoord 143: 42S N\n    test 284 TMcoord 144: 44N N\n    test 285 TMcoord 145: 44P N\n    test 286 TMcoord 146: 39U N\n    test 287 TMcoord 147: 45Q N\n    test 288 TMcoord 148: 41W N\n    test 289 TMcoord 149: 41N N\n    test 290 TMcoord 150: 32S N\n    test 291 TMcoord 151: 32N N\n    test 292 TMcoord 152: 32T N\n    test 293 TMcoord 153: 38R N\n    test 294 TMcoord 154: 32V N\n    test 295 TMcoord 155: 37Q N\n    test 296 TMcoord 156: 44N N\n    test 297 TMcoord 157: 34W N\n    test 298 TMcoord 158: 45N N\n    test 299 TMcoord 159: 42S N\n    test 300 TMcoord 160: 40T N\n    test 301 TMcoord 161: 31U N\n    test 302 TMcoord 162: 45Q N\n    test 303 TMcoord 163: 40U N\n    test 304 TMcoord 164: 45T N\n    test 305 TMcoord 165: 40R N\n    test 306 TMcoord 166: 31V N\n    test 307 TMcoord 167: 45P N\n    test 308 TMcoord 168: 43W N\n    test 309 TMcoord 169: 43U N\n    test 310 TMcoord 170: 44V N\n    test 311 TMcoord 171: 40P N\n    test 312 TMcoord 172: 36Q N\n    test 313 TMcoord 173: 42Q N\n    test 314 TMcoord 174: 41Q N\n    test 315 TMcoord 175: 32S N\n    test 316 TMcoord 176: 39P N\n    test 317 TMcoord 177: 39Q N\n    test 318 TMcoord 178: 39T N\n    test 319 TMcoord 179: 34U N\n    test 320 TMcoord 180: 32W N\n    test 321 TMcoord 181: 41U N\n    test 322 TMcoord 182: 31Q N\n    test 323 TMcoord 183: 40N N\n    test 324 TMcoord 184: 40T N\n    test 325 TMcoord 185: 38P N\n    test 326 TMcoord 186: 44P N\n    test 327 TMcoord 187: 40N N\n    test 328 TMcoord 188: 44V N\n    test 329 TMcoord 189: 41V N\n    test 330 TMcoord 190: 43Q N\n    test 331 TMcoord 191: 43X N\n    test 332 TMcoord 192: 39N N\n    test 333 TMcoord 193: 38T N\n    test 334 TMcoord 194: 32R N\n    test 335 TMcoord 195: 37S N\n    test 336 TMcoord 196: 44W N\n    test 337 TMcoord 197: 43V N\n    test 338 TMcoord 198: 35T N\n    test 339 TMcoord 199: 44W N\n    test 340 TMcoord 200: 44X N\n    test 341 TMcoord 201: 33Q N\n    test 342 TMcoord 202: 40W N\n    test 343 TMcoord 203: 43S N\n    test 344 TMcoord 204: 32U N\n    test 345 TMcoord 205: 33V N\n    test 346 TMcoord 206: 34R N\n    test 347 TMcoord 207: 39S N\n    test 348 TMcoord 208: 43W N\n    test 349 TMcoord 209: 39T N\n    test 350 TMcoord 210: 31W N\n    test 351 TMcoord 211: 45R N\n    test 352 TMcoord 212: 34W N\n    test 353 TMcoord 213: 32T N\n    test 354 TMcoord 214: 31P N\n    test 355 TMcoord 215: 44V N\n    test 356 TMcoord 216: 45U N\n    test 357 TMcoord 217: 43R N\n    test 358 TMcoord 218: 31N N\n    test 359 TMcoord 219: 43T N\n    test 360 TMcoord 220: 45R N\n    test 361 TMcoord 221: 39N N\n    test 362 TMcoord 222: 37S N\n    test 363 TMcoord 223: 31R N\n    test 364 TMcoord 224: 38Q N\n    test 365 TMcoord 225: 40V N\n    test 366 TMcoord 226: 45N N\n    test 367 TMcoord 227: 44R N\n    test 368 TMcoord 228: 43P N\n    test 369 TMcoord 229: 42P N\n    test 370 TMcoord 230: 45S N\n    test 371 TMcoord 231: 42N N\n    test 372 TMcoord 232: 38S N\n    test 373 TMcoord 233: 32T N\n    test 374 TMcoord 234: 41T N\n    test 375 TMcoord 235: 34S N\n    test 376 TMcoord 236: 40R N\n    test 377 TMcoord 237: 35V N\n    test 378 TMcoord 238: 38N N\n    test 379 TMcoord 239: 40V N\n    test 380 TMcoord 240: 36R N\n    test 381 TMcoord 241: 37W N\n    test 382 TMcoord 242: 45R N\n    test 383 TMcoord 243: 37V N\n    test 384 TMcoord 244: 33P N\n    test 385 TMcoord 245: 32U N\n    test 386 TMcoord 246: 38T N\n    test 387 TMcoord 247: 37N N\n    test 388 TMcoord 248: 36R N\n    test 389 TMcoord 249: 44R N\n    test 390 TMcoord 250: 44Q N\n    test 391 TMcoord 251: 45R N\n    test 392 TMcoord 252: 34N N\n    test 393 TMcoord 253: 43S N\n    test 394 TMcoord 254: 40Q N\n    test 395 TMcoord 255: 33T N\n    test 396 TMcoord 256: 44P N\n    test 397 TMcoord 257: 39N N\n    test 398 TMcoord 258: 40Q N\n\n    all 398 testEpsg.py tests passed (pygeodesy 26.3.26 PyPy 7.3.17 Python 3.10.14 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 215.417 ms\nrunning /opt/local/bin/p....y3.10 -W default ~/PyGeodesy/test/testErrors.py\n# lazily imported pygeodesy.basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.DeprecationWarnings from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isint from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isLazy from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.issubclassof from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.iterNumpy2over from .iters by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.LazyImportError from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.karney by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.NN from .interns by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.normDMS from .dms by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.pairs from .streprs by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.printf from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.property_RO from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.typename from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.crosserrors from .errors by testErrors.py line 11\n# lazily imported pygeodesy.exception_chaining from .errors by testErrors.py line 11\n# lazily imported pygeodesy.LenError from .errors by testErrors.py line 11\n# lazily imported pygeodesy.LimitError from .errors by testErrors.py line 11\n# lazily imported pygeodesy.limiterrors from .errors by testErrors.py line 11\n# lazily imported pygeodesy.RangeError from .errors by testErrors.py line 11\n# lazily imported pygeodesy.rangerrors from .errors by testErrors.py line 11\n# lazily imported pygeodesy.ClipError from .errors by testErrors.py line 93\n# lazily imported pygeodesy.CrossError from .errors by testErrors.py line 93\n# lazily imported pygeodesy.CSSError from .css by testErrors.py line 93\n# lazily imported pygeodesy.EcefError from .ecef by testErrors.py line 93\n# lazily imported pygeodesy.EllipticError from .elliptic by testErrors.py line 93\n# lazily imported pygeodesy.EPSGError from .epsg by testErrors.py line 93\n# lazily imported pygeodesy.ETMError from .etm by testErrors.py line 93\n# lazily imported pygeodesy.FrechetError from .frechet by testErrors.py line 93\n# lazily imported pygeodesy.GARSError from .gars by testErrors.py line 93\n# lazily imported pygeodesy.GeohashError from .geohash by testErrors.py line 93\n# lazily imported pygeodesy.GeoidError from .geoids by testErrors.py line 93\n# lazily imported pygeodesy.HausdorffError from .hausdorff by testErrors.py line 93\n# lazily imported pygeodesy.HeightError from .heights by testErrors.py line 93\n# lazily imported pygeodesy.LCCError from .lcc by testErrors.py line 93\n# lazily imported pygeodesy.MGRSError from .errors by testErrors.py line 93\n# lazily imported pygeodesy.OSGRError from .osgr by testErrors.py line 93\n# lazily imported pygeodesy.PGMError from .geoids by testErrors.py line 93\n# lazily imported pygeodesy.PointsError from .errors by testErrors.py line 93\n# lazily imported pygeodesy.SciPyError from .errors by testErrors.py line 93\n# lazily imported pygeodesy.SciPyWarning from .errors by testErrors.py line 93\n# lazily imported pygeodesy.TRFError from .errors by testErrors.py line 93\n# lazily imported pygeodesy.UnitError from .errors by testErrors.py line 93\n# lazily imported pygeodesy.UPSError from .ups by testErrors.py line 93\n# lazily imported pygeodesy.UTMError from .utm by testErrors.py line 93\n# lazily imported pygeodesy.UTMUPSError from .utmups by testErrors.py line 93\n# lazily imported pygeodesy.VectorError from .errors by testErrors.py line 93\n# lazily imported pygeodesy.VincentyError from .ellipsoidalVincenty by testErrors.py line 93\n# lazily imported pygeodesy.WebMercatorError from .webmercator by testErrors.py line 93\n# lazily imported pygeodesy.WGRSError from .wgrs by testErrors.py line 93\n\n    testing testErrors.py 23.03.27 (module pygeodesy.errors 26.02.12) isLazy=3\n    test 1 AssertionError: name ('value'): test1 txt\n    test 2 AssertionError: 'name=value' MISSING: test2 txt\n    test 3 AttributeError: name ('value'): test1 txt\n    test 4 AttributeError: 'name=value' MISSING: test2 txt\n    test 5 IndexError: name ('value'): test1 txt\n    test 6 IndexError: 'name=value' MISSING: test2 txt\n    test 7 LimitError: name ('value'): test1 txt\n    test 8 LimitError: 'name=value' MISSING: test2 txt\n    test 9 NameError: name ('value'): test1 txt\n    test 10 NameError: 'name=value' MISSING: test2 txt\n    test 11 ParseError: name ('value'): test1 txt\n    test 12 ParseError: 'name=value' MISSING: test2 txt\n    test 13 TypeError: type(name) ('value'): test1 txt\n    test 14 TypeError: 'name=value' MISSING: test2 txt\n    test 15 ClipError: name ('value'): test1 txt\n    test 16 ClipError: 'name=value' MISSING: test2 txt\n    test 17 CrossError: name ('value'): test1 txt\n    test 18 CrossError: 'name=value' MISSING: test2 txt\n    test 19 CSSError: name ('value'): test1 txt\n    test 20 CSSError: 'name=value' MISSING: test2 txt\n    test 21 EcefError: name ('value'): test1 txt\n    test 22 EcefError: 'name=value' MISSING: test2 txt\n    test 23 EllipticError: name ('value'): test1 txt\n    test 24 EllipticError: 'name=value' MISSING: test2 txt\n    test 25 EPSGError: name ('value'): test1 txt\n    test 26 EPSGError: 'name=value' MISSING: test2 txt\n    test 27 ETMError: name ('value'): test1 txt\n    test 28 ETMError: 'name=value' MISSING: test2 txt\n    test 29 FrechetError: name ('value'): test1 txt\n    test 30 FrechetError: 'name=value' MISSING: test2 txt\n    test 31 GARSError: name ('value'): test1 txt\n    test 32 GARSError: 'name=value' MISSING: test2 txt\n    test 33 GeohashError: name ('value'): test1 txt\n    test 34 GeohashError: 'name=value' MISSING: test2 txt\n    test 35 GeoidError: name ('value'): test1 txt\n    test 36 GeoidError: 'name=value' MISSING: test2 txt\n    test 37 HausdorffError: name ('value'): test1 txt\n    test 38 HausdorffError: 'name=value' MISSING: test2 txt\n    test 39 HeightError: name ('value'): test1 txt\n    test 40 HeightError: 'name=value' MISSING: test2 txt\n    test 41 LazyImportError: name ('value'): test1 txt\n    test 42 LazyImportError: 'name=value' MISSING: test2 txt\n    test 43 LCCError: name ('value'): test1 txt\n    test 44 LCCError: 'name=value' MISSING: test2 txt\n    test 45 MGRSError: name ('value'): test1 txt\n    test 46 MGRSError: 'name=value' MISSING: test2 txt\n    test 47 OSGRError: name ('value'): test1 txt\n    test 48 OSGRError: 'name=value' MISSING: test2 txt\n    test 49 PGMError: name ('value'): test1 txt\n    test 50 PGMError: 'name=value' MISSING: test2 txt\n    test 51 PointsError: name ('value'): test1 txt\n    test 52 PointsError: 'name=value' MISSING: test2 txt\n    test 53 SciPyError: name ('value'): test1 txt\n    test 54 SciPyError: 'name=value' MISSING: test2 txt\n    test 55 SciPyWarning: name ('value'): test1 txt\n    test 56 SciPyWarning: 'name=value' MISSING: test2 txt\n    test 57 TRFError: name ('value'): test1 txt\n    test 58 TRFError: 'name=value' MISSING: test2 txt\n    test 59 UnitError: name ('value'): test1 txt\n    test 60 UnitError: 'name=value' MISSING: test2 txt\n    test 61 UPSError: name ('value'): test1 txt\n    test 62 UPSError: 'name=value' MISSING: test2 txt\n    test 63 UTMError: name ('value'): test1 txt\n    test 64 UTMError: 'name=value' MISSING: test2 txt\n    test 65 UTMUPSError: name ('value'): test1 txt\n    test 66 UTMUPSError: 'name=value' MISSING: test2 txt\n    test 67 VectorError: name ('value'): test1 txt\n    test 68 VectorError: 'name=value' MISSING: test2 txt\n    test 69 VincentyError: name ('value'): test1 txt\n    test 70 VincentyError: 'name=value' MISSING: test2 txt\n    test 71 WebMercatorError: name ('value'): test1 txt\n    test 72 WebMercatorError: 'name=value' MISSING: test2 txt\n    test 73 WGRSError: name ('value'): test1 txt\n    test 74 WGRSError: 'name=value' MISSING: test2 txt\n# imported pygeodesy.basics into errors.py line 443\n    test 75 _InvalidError: zero (1): invalid\n    test 76 _InvalidError: ValueError('zero (1): invalid')\n    test 77 _InvalidError: one (2) or zero (1): outside\n    test 78 _InvalidError: ValueError('one (2) or zero (1): outside')\n    test 79 _InvalidError: one (2) or zero (1): outside\n    test 80 _InvalidError: RangeError('one (2) or zero (1): outside')\n# imported pygeodesy.streprs into errors.py line 553\n    test 81 _IsnotError: _None (None): not an int or float\n    test 82 _IsnotError: TypeError('_None (None): not an int or float')\n    test 83 _IsnotError: _None (None): not a scalar\n    test 84 _IsnotError: TypeError('_None (None): not a scalar')\n    test 85 _IsnotError: _None (None): not a scalar\n    test 86 _IsnotError: LimitError('_None (None): not a scalar')\n    test 87 LenError: LenError(a, b, c, d) len 1 vs 2 vs 3 vs 4: invalid\n    test 88 crosserrors: True\n    test 89 crosserrors: False\n    test 90 limiterrors: True\n    test 91 limiterrors: False\n    test 92 rangerrors: True\n    test 93 rangerrors: False\n    test 94 exception_chaining: False\n    test 95 exception_chaining: None\n    test 96 exception_chaining: None\n    test 97 _xkwds_get: test1\n    test 98 _xkwds_get: test2\n    test 99 _xkwds_get: _xkwds_get({})\n    test 100 _xkwds_get: _xkwds_get({}, n1='d1', n2='d2')\n    test 101 _xkwds_pop: test1\n    test 102 _xkwds_pop: test2\n    test 103 _xkwds_pop: _xkwds_pop2({})\n    test 104 _xkwds_pop: _xkwds_pop2({}, n1='d1', n2='d2')\n\n    all 104 testErrors.py tests passed (pygeodesy 26.3.26 PyPy 7.3.17 Python 3.10.14 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 4.749 ms\nrunning /opt/local/bin/p....y3.10 -W default ~/PyGeodesy/test/testEtm.py\n# lazily imported pygeodesy.basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.DeprecationWarnings from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isint from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isLazy from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.issubclassof from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.iterNumpy2over from .iters by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.LazyImportError from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.karney by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.NN from .interns by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.normDMS from .dms by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.pairs from .streprs by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.printf from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.property_RO from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.typename from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.etm by testEtm.py line 11\n# lazily imported pygeodesy.ExactTransverseMercator from .etm by testEtm.py line 11\n# lazily imported pygeodesy.ellipsoidalNvector by testEtm.py line 115\n# lazily imported pygeodesy.ellipsoidalVincenty by testEtm.py line 115\n\n    testing testEtm.py 23.08.30 (module pygeodesy.etm 25.09.15) isLazy=3\n\n    testExactTransverseMercator(pygeodesy.etm, 25.09.15)\n    test 1 name: test\n    test 2 toStr: datum='WGS84', extendp=True, k0=0.9996, lon0=0.0, name='test'\n# lazily imported pygeodesy.elliptic by etm.py line 354\n\n    test 3 easting: -59401.921148\n    test 4 northing: 4472390.031129\n    test 5 gamma: -0.453697\n    test 6 scale: 0.999643\n    test 7 lat: 40.400000\n    test 8 lon: -3.700000\n    test 9 gamma: -0.453697\n    test 10 scale: 0.999643\n    test 11 easting: -59401.921148\n    test 12 northing: 4472390.031129\n    test 13 gamma: -0.453697\n    test 14 scale: 0.999643\n\n    test 15 easting: 25495.511523\n    test 16 northing: 4461098.320889\n    test 17 gamma: 0.194038\n    test 18 scale: 0.999608\n    test 19 lat: 40.300000\n    test 20 lon: -74.700000\n    test 21 gamma: 0.194038\n    test 22 scale: 0.999608\n    test 23 easting: 25495.511523\n    test 24 northing: 4461098.320889\n    test 25 gamma: 0.194038\n    test 26 scale: 0.999608\n\n    test 27 lat: -2.00000000\n    test 28 lon: 88.00000000\n    test 29 gamma: 67.63332900\n    test 30 scale: 26.33699547\n    test 31 easting: 29735142.378357\n    test 32 northing: 4235043.607933\n    test 33 gamma: 67.633329\n    test 34 scale: 26.336995\n\n    test 35 copy(<class 'type'>): (<class 'pygeodesy.etm.ExactTransverseMercator'>, True)\n    test 36 ExactTransverseMercator.copy(): (<class 'pygeodesy.etm.ExactTransverseMercator'>, True)\n\n    testExactTransverseMercator(pygeodesy.etm, 25.09.15)\n    test 37 name: test\n    test 38 toStr: datum='WGS84', extendp=False, k0=0.9996, lon0=0.0, name='test'\n\n    test 39 easting: -59401.921148\n    test 40 northing: 4472390.031129\n    test 41 gamma: -0.453697\n    test 42 scale: 0.999643\n    test 43 lat: 40.400000\n    test 44 lon: -3.700000\n    test 45 gamma: -0.453697\n    test 46 scale: 0.999643\n    test 47 easting: -59401.921148\n    test 48 northing: 4472390.031129\n    test 49 gamma: -0.453697\n    test 50 scale: 0.999643\n\n    test 51 easting: 25495.511523\n    test 52 northing: 4461098.320889\n    test 53 gamma: 0.194038\n    test 54 scale: 0.999608\n    test 55 lat: 40.300000\n    test 56 lon: -74.700000\n    test 57 gamma: 0.194038\n    test 58 scale: 0.999608\n    test 59 easting: 25495.511523\n    test 60 northing: 4461098.320889\n    test 61 gamma: 0.194038\n    test 62 scale: 0.999608\n\n    test 63 lat: -2.00000000\n    test 64 lon: 88.00000000\n    test 65 gamma: 67.63332900\n    test 66 scale: 26.33699547\n\n    test 67 easting: 0.000\n    test 68 northing: -9997964.943\n    test 69 gamma: 120.000\n    test 70 scale: 1.000\n    test 71 lat: -90.000\n    test 72 lon: 180.000  FAILED, KNOWN, expected 0.000\n    test 73 gamma: -180.000\n    test 74 scale: 1.000\n\n    test 75 copy(<class 'type'>): (<class 'pygeodesy.etm.ExactTransverseMercator'>, True)\n    test 76 ExactTransverseMercator.copy(): (<class 'pygeodesy.etm.ExactTransverseMercator'>, True)\n\n    testLatLon(pygeodesy.etm, 25.09.15)\n    test 77 toEtm8: 45 S -20297797 5336899\n    test 78 name: test\n    test 79 toUtm: 45 S -20297797 5336899\n    test 80 name: test\n    test 81 toETM5: 45 S -20297797 5336899\n    test 82 copy(<class 'type'>): (<class 'pygeodesy.etm.Etm'>, True)\n    test 83 .name: test\n    test 84 Etm.copy(): (<class 'pygeodesy.etm.Etm'>, True)\n    test 85 .name: test\n    test 86 parse: 31 N 448251 5411932\n    test 87 name: parse\n    test 88 parse: 31 N 448251 5411932\n    test 89 name: parse\n\n    testLatLon(pygeodesy.etm, 25.09.15)\n    test 90 toEtm8: 45 S -20297797 5336899\n    test 91 name: test\n    test 92 toUtm: 45 S -20297797 5336899\n    test 93 name: test\n    test 94 toETM5: 45 S -20297797 5336899\n    test 95 copy(<class 'type'>): (<class 'pygeodesy.etm.Etm'>, True)\n    test 96 .name: test\n    test 97 Etm.copy(): (<class 'pygeodesy.etm.Etm'>, True)\n    test 98 .name: test\n    test 99 parse: 31 N 448251 5411932\n    test 100 name: parse\n    test 101 parse: 31 N 448251 5411932\n    test 102 name: parse\n\n    1 of 102 testEtm.py tests (1.0%) FAILED, ALL KNOWN (pygeodesy 26.3.26 PyPy 7.3.17 Python 3.10.14 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 240.937 ms\nrunning /opt/local/bin/p....y3.10 -W default ~/PyGeodesy/test/testEtmTMcoords.py\n# lazily imported pygeodesy.basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.DeprecationWarnings from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isint from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isLazy from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.issubclassof from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.iterNumpy2over from .iters by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.LazyImportError from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.karney by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.NN from .interns by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.normDMS from .dms by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.pairs from .streprs by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.printf from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.property_RO from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.typename from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.Ellipsoids from .ellipsoids by testTMcoords.py line 14\n# lazily imported pygeodesy.EPS from .constants by testTMcoords.py line 14\n# lazily imported pygeodesy.RangeError from .errors by testTMcoords.py line 14\n# lazily imported pygeodesy.etm by testEtmTMcoords.py line 17\n# lazily imported pygeodesy.Etm from .etm by testEtmTMcoords.py line 17\n# lazily imported pygeodesy.toEtm8 from .etm by testEtmTMcoords.py line 17\n\n    testing testEtmTMcoords.py 24.03.22 (module pygeodesy.etm 25.09.15) isLazy=3\n# lazily imported pygeodesy.elliptic by etm.py line 354\n    test 1 line 1 toEtm8.easting: 1548706.791619\n    test 2 line 1 toEtm8.northing: 8451449.198772\n    test 3 line 1 toEtm8.gamma: 43.922790\n    test 4 line 1 toEtm8.scale: 1.029060\n    test 5 line 1 toEtm8.lat: 70.579277\n    test 6 line 1 toEtm8.lon: 45.599420\n    test 7 line 2 toEtm8.easting: 2624150.740929\n    test 8 line 2 toEtm8.northing: 1204434.041605\n    test 9 line 2 toEtm8.gamma: 4.292619\n    test 10 line 2 toEtm8.scale: 1.086051\n    test 11 line 2 toEtm8.lat: 10.018894\n    test 12 line 2 toEtm8.lon: 23.313324\n    test 13 line 3 toEtm8.easting: 9855841.232935\n    test 14 line 3 toEtm8.northing: 6145496.115155\n    test 15 line 3 toEtm8.gamma: 53.348315\n    test 16 line 3 toEtm8.scale: 2.445098\n    test 17 line 3 toEtm8.lat: 19.479896\n    test 18 line 3 toEtm8.lon: 75.662049\n    test 19 line 4 toEtm8.easting: 3206390.691996\n    test 20 line 4 toEtm8.northing: 2650745.400406\n    test 21 line 4 toEtm8.gamma: 11.666950\n    test 22 line 4 toEtm8.scale: 1.129359\n    test 23 line 4 toEtm8.lat: 21.072465\n    test 24 line 4 toEtm8.lon: 29.828684\n    test 25 line 5 toEtm8.easting: 4328154.083501\n    test 26 line 5 toEtm8.northing: 749647.623690\n    test 27 line 5 toEtm8.gamma: 4.024317\n    test 28 line 5 toEtm8.scale: 1.240829\n    test 29 line 5 toEtm8.lat: 5.458957\n    test 30 line 5 toEtm8.lon: 36.385237\n    test 31 line 6 toEtm8.easting: 847598.266514\n    test 32 line 6 toEtm8.northing: 7947180.962440\n    test 33 line 6 toEtm8.gamma: 21.639091\n    test 34 line 6 toEtm8.scale: 1.008399\n    test 35 line 6 toEtm8.lat: 70.175454\n    test 36 line 6 toEtm8.lon: 22.865350\n    test 37 line 7 toEtm8.easting: 2727657.337974\n    test 38 line 7 toEtm8.northing: 8283916.696410\n    test 39 line 7 toEtm8.gamma: 55.690909\n    test 40 line 7 toEtm8.scale: 1.091942\n    test 41 line 7 toEtm8.lat: 61.965605\n    test 42 line 7 toEtm8.lon: 58.931371\n    test 43 line 8 toEtm8.easting: 2331001.751890\n    test 44 line 8 toEtm8.northing: 1313608.224751\n    test 45 line 8 toEtm8.gamma: 4.214690\n    test 46 line 8 toEtm8.scale: 1.067599\n    test 47 line 8 toEtm8.lat: 11.116050\n    test 48 line 8 toEtm8.lon: 20.901069\n    test 49 line 9 toEtm8.easting: 6035557.239480\n    test 50 line 9 toEtm8.northing: 5791770.791879\n    test 51 line 9 toEtm8.gamma: 43.698170\n    test 52 line 9 toEtm8.scale: 1.481260\n    test 53 line 9 toEtm8.lat: 32.210543\n    test 54 line 9 toEtm8.lon: 60.705849\n    test 55 line 10 toEtm8.easting: 1064553.125852\n    test 56 line 10 toEtm8.northing: 9417273.737208\n    test 57 line 10 toEtm8.gamma: 61.100380\n    test 58 line 10 toEtm8.scale: 1.013475\n    test 59 line 10 toEtm8.lat: 79.187451\n    test 60 line 10 toEtm8.lon: 61.532382\n    test 61 line 11 toEtm8.easting: 1400137.116164\n    test 62 line 11 toEtm8.northing: 9616907.017686\n    test 63 line 11 toEtm8.gamma: 74.527087\n    test 64 line 11 toEtm8.scale: 1.023640\n    test 65 line 11 toEtm8.lat: 77.103759\n    test 66 line 11 toEtm8.lon: 74.899105\n    test 67 line 12 toEtm8.easting: 9860691.016626\n    test 68 line 12 toEtm8.northing: 7433039.143328\n    test 69 line 12 toEtm8.gamma: 65.357693\n    test 70 line 12 toEtm8.scale: 2.438973\n    test 71 line 12 toEtm8.lat: 21.889514\n    test 72 line 12 toEtm8.lon: 80.019886\n    test 73 line 13 toEtm8.easting: 8076501.833695\n    test 74 line 13 toEtm8.northing: 8561614.174782\n    test 75 line 13 toEtm8.gamma: 75.073393\n    test 76 line 13 toEtm8.scale: 1.906202\n    test 77 line 13 toEtm8.lat: 30.536296\n    test 78 line 13 toEtm8.lon: 82.186178\n    test 79 line 14 toEtm8.easting: 3335099.866623\n    test 80 line 14 toEtm8.northing: 6740519.084015\n    test 81 line 14 toEtm8.gamma: 40.611821\n    test 82 line 14 toEtm8.scale: 1.139021\n    test 83 line 14 toEtm8.lat: 49.990485\n    test 84 line 14 toEtm8.lon: 48.203179\n    test 85 line 15 toEtm8.easting: 12051574.928500\n    test 86 line 15 toEtm8.northing: 6587213.051951\n    test 87 line 15 toEtm8.gamma: 59.033237\n    test 88 line 15 toEtm8.scale: 3.357469\n    test 89 line 15 toEtm8.lat: 14.486312\n    test 90 line 15 toEtm8.lon: 80.905137\n    test 91 line 16 toEtm8.easting: 5387578.735298\n    test 92 line 16 toEtm8.northing: 4111216.907168\n    test 93 line 16 toEtm8.gamma: 27.574337\n    test 94 line 16 toEtm8.scale: 1.379357\n    test 95 line 16 toEtm8.lat: 25.936824\n    test 96 line 16 toEtm8.lon: 49.913598\n    test 97 line 17 toEtm8.easting: 2622214.380233\n    test 98 line 17 toEtm8.northing: 8678923.984567\n    test 99 line 17 toEtm8.gamma: 61.697275\n    test 100 line 17 toEtm8.scale: 1.084810\n    test 101 line 17 toEtm8.lat: 64.402196\n    test 102 line 17 toEtm8.lon: 64.091395\n    test 103 line 18 toEtm8.easting: 5068474.169633\n    test 104 line 18 toEtm8.northing: 9492066.993709\n    test 105 line 18 toEtm8.gamma: 83.156740\n    test 106 line 18 toEtm8.scale: 1.329990\n    test 107 line 18 toEtm8.lat: 48.451354\n    test 108 line 18 toEtm8.lon: 84.856198\n    test 109 line 19 toEtm8.easting: 738062.047779\n    test 110 line 19 toEtm8.northing: 3031007.074116\n    test 111 line 19 toEtm8.gamma: 3.416802\n    test 112 line 19 toEtm8.scale: 1.006332\n    test 113 line 19 toEtm8.lat: 27.203895\n    test 114 line 19 toEtm8.lon: 7.440229\n    test 115 line 20 toEtm8.easting: 1944413.834565\n    test 116 line 20 toEtm8.northing: 9613299.224493\n    test 117 line 20 toEtm8.gamma: 78.462831\n    test 118 line 20 toEtm8.scale: 1.046134\n    test 119 line 20 toEtm8.lat: 72.509000\n    test 120 line 20 toEtm8.lon: 78.982283\n    test 121 line 21 toEtm8.easting: 2114521.418406\n    test 122 line 21 toEtm8.northing: 4954077.440098\n    test 123 line 21 toEtm8.gamma: 17.571878\n    test 124 line 21 toEtm8.scale: 1.055093\n    test 125 line 21 toEtm8.lat: 41.824954\n    test 126 line 21 toEtm8.lon: 25.392744\n    test 127 line 22 toEtm8.easting: 620365.905090\n    test 128 line 22 toEtm8.northing: 4755542.026562\n    test 129 line 22 toEtm8.gamma: 5.152022\n    test 130 line 22 toEtm8.scale: 1.004338\n    test 131 line 22 toEtm8.lat: 42.701376\n    test 132 line 22 toEtm8.lon: 7.572738\n    test 133 line 23 toEtm8.easting: 263004.770989\n    test 134 line 23 toEtm8.northing: 4493669.762451\n    test 135 line 23 toEtm8.gamma: 2.020523\n    test 136 line 23 toEtm8.scale: 1.000452\n    test 137 line 23 toEtm8.lat: 40.552052\n    test 138 line 23 toEtm8.lon: 3.106056\n    test 139 line 24 toEtm8.easting: 3217221.739462\n    test 140 line 24 toEtm8.northing: 437776.119161\n    test 141 line 24 toEtm8.gamma: 1.848169\n    test 142 line 24 toEtm8.scale: 1.130558\n    test 143 line 24 toEtm8.lat: 3.501242\n    test 144 line 24 toEtm8.lon: 27.806507\n    test 145 line 25 toEtm8.easting: 14661142.444961\n    test 146 line 25 toEtm8.northing: 7476100.824185\n    test 147 line 25 toEtm8.gamma: 68.376669\n    test 148 line 25 toEtm8.scale: 4.896650\n    test 149 line 25 toEtm8.lat: 10.148715\n    test 150 line 25 toEtm8.lon: 85.373768\n    test 151 line 26 toEtm8.easting: 967777.158554\n    test 152 line 26 toEtm8.northing: 6615684.266592\n    test 153 line 26 toEtm8.gamma: 14.410044\n    test 154 line 26 toEtm8.scale: 1.011100\n    test 155 line 26 toEtm8.lat: 58.582623\n    test 156 line 26 toEtm8.lon: 16.755558\n    test 157 line 27 toEtm8.easting: 7558840.728461\n    test 158 line 27 toEtm8.northing: 4144728.130764\n    test 159 line 27 toEtm8.gamma: 32.557264\n    test 160 line 27 toEtm8.scale: 1.791490\n    test 161 line 27 toEtm8.lat: 19.793004\n    test 162 line 27 toEtm8.lon: 61.746763\n    test 163 line 28 toEtm8.easting: 1056008.314161\n    test 164 line 28 toEtm8.northing: 9290799.692669\n    test 165 line 28 toEtm8.gamma: 55.843278\n    test 166 line 28 toEtm8.scale: 1.013253\n    test 167 line 28 toEtm8.lat: 78.666776\n    test 168 line 28 toEtm8.lon: 56.365355\n    test 169 line 29 toEtm8.easting: 1943965.134687\n    test 170 line 29 toEtm8.northing: 1389972.228690\n    test 171 line 29 toEtm8.gamma: 3.774869\n    test 172 line 29 toEtm8.scale: 1.046724\n    test 173 line 29 toEtm8.lat: 11.998788\n    test 174 line 29 toEtm8.lon: 17.597873\n    test 175 line 30 toEtm8.easting: 5803077.072902\n    test 176 line 30 toEtm8.northing: 5649957.943659\n    test 177 line 30 toEtm8.gamma: 41.717943\n    test 178 line 30 toEtm8.scale: 1.442572\n    test 179 line 30 toEtm8.lat: 32.540378\n    test 180 line 30 toEtm8.lon: 58.764613\n    test 181 line 31 toEtm8.easting: 2928716.986009\n    test 182 line 31 toEtm8.northing: 5731835.058317\n    test 183 line 31 toEtm8.gamma: 28.538550\n    test 184 line 31 toEtm8.scale: 1.106780\n    test 185 line 31 toEtm8.lat: 45.160356\n    test 186 line 31 toEtm8.lon: 37.465285\n    test 187 line 32 toEtm8.easting: 326141.975756\n    test 188 line 32 toEtm8.northing: 8881325.164543\n    test 189 line 32 toEtm8.gamma: 16.111415\n    test 190 line 32 toEtm8.scale: 1.000900\n    test 191 line 32 toEtm8.lat: 79.584190\n    test 192 line 32 toEtm8.lon: 16.367006\n    test 193 line 33 toEtm8.easting: 3933015.267450\n    test 194 line 33 toEtm8.northing: 7932373.909512\n    test 195 line 33 toEtm8.gamma: 58.577424\n    test 196 line 33 toEtm8.scale: 1.194811\n    test 197 line 33 toEtm8.lat: 52.470664\n    test 198 line 33 toEtm8.lon: 64.125580\n    test 199 line 34 toEtm8.easting: 8598926.983213\n    test 200 line 34 toEtm8.northing: 6214135.167503\n    test 201 line 34 toEtm8.gamma: 52.612878\n    test 202 line 34 toEtm8.scale: 2.051367\n    test 203 line 34 toEtm8.lat: 23.702673\n    test 204 line 34 toEtm8.lon: 72.630363\n    test 205 line 35 toEtm8.easting: 6620553.333772\n    test 206 line 35 toEtm8.northing: 6540527.122948\n    test 207 line 35 toEtm8.gamma: 52.350140\n    test 208 line 35 toEtm8.scale: 1.586614\n    test 209 line 35 toEtm8.lat: 32.603520\n    test 210 line 35 toEtm8.lon: 67.280123\n    test 211 line 36 toEtm8.easting: 1515136.758292\n    test 212 line 36 toEtm8.northing: 3858996.087537\n    test 213 line 36 toEtm8.gamma: 9.225127\n    test 214 line 36 toEtm8.scale: 1.028029\n    test 215 line 36 toEtm8.lat: 33.776224\n    test 216 line 36 toEtm8.lon: 16.280993\n    test 217 line 37 toEtm8.easting: 479854.373445\n    test 218 line 37 toEtm8.northing: 8980501.389896\n    test 219 line 37 toEtm8.gamma: 25.021222\n    test 220 line 37 toEtm8.scale: 1.002415\n    test 221 line 37 toEtm8.lat: 79.932747\n    test 222 line 37 toEtm8.lon: 25.363622\n    test 223 line 38 toEtm8.easting: 5243446.564940\n    test 224 line 38 toEtm8.northing: 140657.213960\n    test 225 line 38 toEtm8.gamma: 0.862817\n    test 226 line 38 toEtm8.scale: 1.360358\n    test 227 line 38 toEtm8.lat: 0.935056\n    test 228 line 38 toEtm8.lon: 42.538824\n    test 229 line 39 toEtm8.easting: 12806457.923218\n    test 230 line 39 toEtm8.northing: 7170118.684675\n    test 231 line 39 toEtm8.gamma: 64.708921\n    test 232 line 39 toEtm8.scale: 3.740588\n    test 233 line 39 toEtm8.lat: 13.490862\n    test 234 line 39 toEtm8.lon: 83.178380\n    test 235 line 40 toEtm8.easting: 1202993.459158\n    test 236 line 40 toEtm8.northing: 5557316.053599\n    test 237 line 40 toEtm8.gamma: 12.579061\n    test 238 line 40 toEtm8.scale: 1.017426\n    test 239 line 40 toEtm8.lat: 48.979057\n    test 240 line 40 toEtm8.lon: 16.474542\n    test 241 line 41 toEtm8.easting: 1729088.710196\n    test 242 line 41 toEtm8.northing: 7770874.289954\n    test 243 line 41 toEtm8.gamma: 36.021783\n    test 244 line 41 toEtm8.scale: 1.036397\n    test 245 line 41 toEtm8.lat: 65.036016\n    test 246 line 41 toEtm8.lon: 38.729091\n    test 247 line 42 toEtm8.easting: 2437301.517425\n    test 248 line 42 toEtm8.northing: 5539327.748318\n    test 249 line 42 toEtm8.gamma: 23.461879\n    test 250 line 42 toEtm8.scale: 1.073459\n    test 251 line 42 toEtm8.lat: 45.510091\n    test 252 line 42 toEtm8.lon: 31.303729\n    test 253 line 43 toEtm8.easting: 3647186.135066\n    test 254 line 43 toEtm8.northing: 2086412.330983\n    test 255 line 43 toEtm8.gamma: 10.023991\n    test 256 line 43 toEtm8.scale: 1.168707\n    test 257 line 43 toEtm8.lat: 16.058010\n    test 258 line 43 toEtm8.lon: 32.520026\n    test 259 line 44 toEtm8.easting: 1818497.243556\n    test 260 line 44 toEtm8.northing: 4275471.745057\n    test 261 line 44 toEtm8.gamma: 12.499656\n    test 262 line 44 toEtm8.scale: 1.040604\n    test 263 line 44 toEtm8.lat: 36.845200\n    test 264 line 44 toEtm8.lon: 20.282283\n    test 265 line 45 toEtm8.easting: 3751304.113783\n    test 266 line 45 toEtm8.northing: 5130454.001592\n    test 267 line 45 toEtm8.gamma: 28.959707\n    test 268 line 45 toEtm8.scale: 1.177681\n    test 269 line 45 toEtm8.lat: 37.865481\n    test 270 line 45 toEtm8.lon: 41.990402\n    test 271 line 46 toEtm8.easting: 2616733.138544\n    test 272 line 46 toEtm8.northing: 394644.463815\n    test 273 line 46 toEtm8.gamma: 1.390425\n    test 274 line 46 toEtm8.scale: 1.085595\n    test 275 line 46 toEtm8.lat: 3.287272\n    test 276 line 46 toEtm8.lon: 22.917604\n    test 277 line 47 toEtm8.easting: 1756506.573942\n    test 278 line 47 toEtm8.northing: 5570393.986394\n    test 279 line 47 toEtm8.gamma: 17.897894\n    test 280 line 47 toEtm8.scale: 1.037732\n    test 281 line 47 toEtm8.lat: 47.813686\n    test 282 line 47 toEtm8.lon: 23.545092\n    test 283 line 48 toEtm8.easting: 8752461.894711\n    test 284 line 48 toEtm8.northing: 6087728.152284\n    test 285 line 48 toEtm8.gamma: 51.628465\n    test 286 line 48 toEtm8.scale: 2.095465\n    test 287 line 48 toEtm8.lat: 22.836853\n    test 288 line 48 toEtm8.lon: 72.604385\n    test 289 line 49 toEtm8.easting: 1309272.216432\n    test 290 line 49 toEtm8.northing: 59520.028899\n    test 291 line 49 toEtm8.gamma: 0.109069\n    test 292 line 49 toEtm8.scale: 1.020897\n    test 293 line 49 toEtm8.lat: 0.527262\n    test 294 line 49 toEtm8.lon: 11.684209\n    test 295 line 50 toEtm8.easting: 328652.277129\n    test 296 line 50 toEtm8.northing: 2233043.958874\n    test 297 line 50 toEtm8.gamma: 1.084863\n    test 298 line 50 toEtm8.scale: 1.000935\n    test 299 line 50 toEtm8.lat: 20.166742\n    test 300 line 50 toEtm8.lon: 3.143948\n    test 301 line 51 toEtm8.easting: 8637959.716447\n    test 302 line 51 toEtm8.northing: 9190635.156031\n    test 303 line 51 toEtm8.gamma: 81.802563\n    test 304 line 51 toEtm8.scale: 2.054329\n    test 305 line 51 toEtm8.lat: 28.604629\n    test 306 line 51 toEtm8.lon: 85.988721\n    test 307 line 52 toEtm8.easting: 8548521.455147\n    test 308 line 52 toEtm8.northing: 9172410.943282\n    test 309 line 52 toEtm8.gamma: 81.583928\n    test 310 line 52 toEtm8.scale: 2.029641\n    test 311 line 52 toEtm8.lat: 28.984048\n    test 312 line 52 toEtm8.lon: 85.833448\n    test 313 line 53 toEtm8.easting: 796987.281104\n    test 314 line 53 toEtm8.northing: 7677446.357675\n    test 315 line 53 toEtm8.gamma: 18.084472\n    test 316 line 53 toEtm8.scale: 1.007381\n    test 317 line 53 toEtm8.lat: 68.071020\n    test 318 line 53 toEtm8.lon: 19.392823\n    test 319 line 54 toEtm8.easting: 3291036.496762\n    test 320 line 54 toEtm8.northing: 9513199.600666\n    test 321 line 54 toEtm8.gamma: 80.890254\n    test 322 line 54 toEtm8.scale: 1.134826\n    test 323 line 54 toEtm8.lat: 61.416576\n    test 324 line 54 toEtm8.lon: 81.981611\n    test 325 line 55 toEtm8.easting: 7087225.330906\n    test 326 line 55 toEtm8.northing: 8382823.855822\n    test 327 line 55 toEtm8.gamma: 72.253756\n    test 328 line 55 toEtm8.scale: 1.678070\n    test 329 line 55 toEtm8.lat: 35.074753\n    test 330 line 55 toEtm8.lon: 79.496003\n    test 331 line 56 toEtm8.easting: 5090358.125724\n    test 332 line 56 toEtm8.northing: 4318294.133489\n    test 333 line 56 toEtm8.gamma: 28.266280\n    test 334 line 56 toEtm8.scale: 1.336264\n    test 335 line 56 toEtm8.lat: 28.078790\n    test 336 line 56 toEtm8.lon: 48.684350\n\n    test skipped (1): line 57 toEtm8.'84.986930137199 2.067177857261 20163.0752214330146 9438635.9888499043815 2.059277291707588222 .99960496589466017622'\n    test 337 line 58 toEtm8.easting: 3447670.550785\n    test 338 line 58 toEtm8.northing: 3680238.888223\n    test 339 line 58 toEtm8.gamma: 17.934948\n    test 340 line 58 toEtm8.scale: 1.149831\n    test 341 line 58 toEtm8.lat: 28.473948\n    test 342 line 58 toEtm8.lon: 34.127306\n    test 343 line 59 toEtm8.easting: 3396522.906798\n    test 344 line 59 toEtm8.northing: 8093659.687593\n    test 345 line 59 toEtm8.gamma: 57.747117\n    test 346 line 59 toEtm8.scale: 1.144006\n    test 347 line 59 toEtm8.lat: 56.629354\n    test 348 line 59 toEtm8.lon: 62.196474\n    test 349 line 60 toEtm8.easting: 11249894.100784\n    test 350 line 60 toEtm8.northing: 1619226.506299\n    test 351 line 60 toEtm8.gamma: 14.210358\n    test 352 line 60 toEtm8.scale: 3.048347\n    test 353 line 60 toEtm8.lat: 4.747762\n    test 354 line 60 toEtm8.lon: 70.932555\n    test 355 line 61 toEtm8.easting: 6808805.230950\n    test 356 line 61 toEtm8.northing: 8044779.777369\n    test 357 line 61 toEtm8.gamma: 68.242008\n    test 358 line 61 toEtm8.scale: 1.621464\n    test 359 line 61 toEtm8.lat: 35.882113\n    test 360 line 61 toEtm8.lon: 76.741849\n    test 361 line 62 toEtm8.easting: 2306021.556506\n    test 362 line 62 toEtm8.northing: 757191.592866\n    test 363 line 62 toEtm8.gamma: 2.385686\n    test 364 line 62 toEtm8.scale: 1.066159\n    test 365 line 62 toEtm8.lat: 6.420705\n    test 366 line 62 toEtm8.lon: 20.416028\n    test 367 line 63 toEtm8.easting: 1547406.313862\n    test 368 line 63 toEtm8.northing: 6048712.751824\n    test 369 line 63 toEtm8.gamma: 18.474372\n    test 370 line 63 toEtm8.scale: 1.029123\n    test 371 line 63 toEtm8.lat: 52.335248\n    test 372 line 63 toEtm8.lon: 22.879294\n    test 373 line 64 toEtm8.easting: 2430467.650383\n    test 374 line 64 toEtm8.northing: 7557167.613972\n    test 375 line 64 toEtm8.gamma: 42.110021\n    test 376 line 64 toEtm8.scale: 1.072759\n    test 377 line 64 toEtm8.lat: 59.846391\n    test 378 line 64 toEtm8.lon: 46.262536\n    test 379 line 65 toEtm8.easting: 2334053.905830\n    test 380 line 65 toEtm8.northing: 1948076.966582\n    test 381 line 65 toEtm8.gamma: 6.353185\n    test 382 line 65 toEtm8.scale: 1.067733\n    test 383 line 65 toEtm8.lat: 16.461790\n    test 384 line 65 toEtm8.lon: 21.433269\n    test 385 line 66 toEtm8.easting: 5564175.186737\n    test 386 line 66 toEtm8.northing: 1836851.660412\n    test 387 line 66 toEtm8.gamma: 11.870682\n    test 388 line 66 toEtm8.scale: 1.408265\n    test 389 line 66 toEtm8.lat: 11.707905\n    test 390 line 66 toEtm8.lon: 45.827075\n    test 391 line 67 toEtm8.easting: 6118505.590359\n    test 392 line 67 toEtm8.northing: 7631684.552421\n    test 393 line 67 toEtm8.gamma: 62.477323\n    test 394 line 67 toEtm8.scale: 1.493420\n    test 395 line 67 toEtm8.lat: 38.519075\n    test 396 line 67 toEtm8.lon: 71.935918\n    test 397 line 68 toEtm8.easting: 7365359.294665\n    test 398 line 68 toEtm8.northing: 8818194.451531\n    test 399 line 68 toEtm8.gamma: 77.207042\n    test 400 line 68 toEtm8.scale: 1.737639\n    test 401 line 68 toEtm8.lat: 34.264007\n    test 402 line 68 toEtm8.lon: 82.647878\n    test 403 line 69 toEtm8.easting: 36187.342415\n    test 404 line 69 toEtm8.northing: 2142565.324802\n    test 405 line 69 toEtm8.gamma: 0.114334\n    test 406 line 69 toEtm8.scale: 0.999616\n    test 407 line 69 toEtm8.lat: 19.376880\n    test 408 line 69 toEtm8.lon: 0.344605\n    test 409 line 70 toEtm8.easting: 2380328.546851\n    test 410 line 70 toEtm8.northing: 8440109.872384\n    test 411 line 70 toEtm8.gamma: 55.076067\n    test 412 line 70 toEtm8.scale: 1.069658\n    test 413 line 70 toEtm8.lat: 65.075805\n    test 414 line 70 toEtm8.lon: 57.653438\n    test 415 line 71 toEtm8.easting: 582511.608826\n    test 416 line 71 toEtm8.northing: 8876047.217071\n    test 417 line 71 toEtm8.gamma: 27.133300\n    test 418 line 71 toEtm8.scale: 1.003749\n    test 419 line 71 toEtm8.lat: 78.691870\n    test 420 line 71 toEtm8.lon: 27.591736\n    test 421 line 72 toEtm8.easting: 899441.350477\n    test 422 line 72 toEtm8.northing: 4582046.430516\n    test 423 line 72 toEtm8.gamma: 7.031211\n    test 424 line 72 toEtm8.scale: 1.009573\n    test 425 line 72 toEtm8.lat: 40.893022\n    test 426 line 72 toEtm8.lon: 10.668804\n    test 427 line 73 toEtm8.easting: 5022485.124337\n    test 428 line 73 toEtm8.northing: 9741774.933721\n    test 429 line 73 toEtm8.gamma: 86.505947\n    test 430 line 73 toEtm8.scale: 1.323700\n    test 431 line 73 toEtm8.lat: 48.914279\n    test 432 line 73 toEtm8.lon: 87.359268\n    test 433 line 74 toEtm8.easting: 6701004.587204\n    test 434 line 74 toEtm8.northing: 2954368.258231\n    test 435 line 74 toEtm8.gamma: 21.560153\n    test 436 line 74 toEtm8.scale: 1.608554\n    test 437 line 74 toEtm8.lat: 16.208377\n    test 438 line 74 toEtm8.lon: 54.494282\n    test 439 line 75 toEtm8.easting: 454986.218897\n    test 440 line 75 toEtm8.northing: 4885087.887884\n    test 441 line 75 toEtm8.gamma: 3.945648\n    test 442 line 75 toEtm8.scale: 1.002147\n    test 443 line 75 toEtm8.lat: 43.977936\n    test 444 line 75 toEtm8.lon: 5.672541\n    test 445 line 76 toEtm8.easting: 8903956.140311\n    test 446 line 76 toEtm8.northing: 8470608.577482\n    test 447 line 76 toEtm8.gamma: 74.723116\n    test 448 line 76 toEtm8.scale: 2.131311\n    test 449 line 76 toEtm8.lat: 26.850861\n    test 450 line 76 toEtm8.lon: 82.834480\n    test 451 line 77 toEtm8.easting: 1547627.594741\n    test 452 line 77 toEtm8.northing: 6036584.538347\n    test 453 line 77 toEtm8.gamma: 18.407629\n    test 454 line 77 toEtm8.scale: 1.029132\n    test 455 line 77 toEtm8.lat: 52.234165\n    test 456 line 77 toEtm8.lon: 22.827655\n    test 457 line 78 toEtm8.easting: 5221488.778597\n    test 458 line 78 toEtm8.northing: 1762592.044392\n    test 459 line 78 toEtm8.gamma: 10.927880\n    test 460 line 78 toEtm8.scale: 1.356721\n    test 461 line 78 toEtm8.lat: 11.674646\n    test 462 line 78 toEtm8.lon: 43.500147\n    test 463 line 79 toEtm8.easting: 4880570.297161\n    test 464 line 79 toEtm8.northing: 3325433.988867\n    test 465 line 79 toEtm8.gamma: 20.469862\n    test 466 line 79 toEtm8.scale: 1.308476\n    test 467 line 79 toEtm8.lat: 22.492753\n    test 468 line 79 toEtm8.lon: 44.179153\n    test 469 line 80 toEtm8.easting: 23930680.082694\n    test 470 line 80 toEtm8.northing: 7491462.099038\n    test 471 line 80 toEtm8.gamma: 75.937628\n    test 472 line 80 toEtm8.scale: 15.556365\n    test 473 line 80 toEtm8.lat: 0.910999\n    test 474 line 80 toEtm8.lon: 88.548823\n    test 475 line 81 toEtm8.easting: 71519.450458\n    test 476 line 81 toEtm8.northing: 3654740.444852\n    test 477 line 81 toEtm8.gamma: 0.417448\n    test 478 line 81 toEtm8.scale: 0.999663\n    test 479 line 81 toEtm8.lat: 33.028802\n    test 480 line 81 toEtm8.lon: 0.765843\n    test 481 line 82 toEtm8.easting: 4152797.795220\n    test 482 line 82 toEtm8.northing: 7823098.502751\n    test 483 line 82 toEtm8.gamma: 58.238901\n    test 484 line 82 toEtm8.scale: 1.218052\n    test 485 line 82 toEtm8.lat: 50.649195\n    test 486 line 82 toEtm8.lon: 64.389076\n    test 487 line 83 toEtm8.easting: 2926725.707639\n    test 488 line 83 toEtm8.northing: 7904918.072844\n    test 489 line 83 toEtm8.gamma: 51.592748\n    test 490 line 83 toEtm8.scale: 1.106206\n    test 491 line 83 toEtm8.lat: 58.820640\n    test 492 line 83 toEtm8.lon: 55.841048\n    test 493 line 84 toEtm8.easting: 1325509.113869\n    test 494 line 84 toEtm8.northing: 9675214.948213\n    test 495 line 84 toEtm8.gamma: 76.116213\n    test 496 line 84 toEtm8.scale: 1.021136\n    test 497 line 84 toEtm8.lat: 77.865762\n    test 498 line 84 toEtm8.lon: 76.414618\n    test 499 line 85 toEtm8.easting: 3045296.448926\n    test 500 line 85 toEtm8.northing: 542153.443280\n    test 501 line 85 toEtm8.gamma: 2.185095\n    test 502 line 85 toEtm8.scale: 1.116664\n    test 503 line 85 toEtm8.lat: 4.389639\n    test 504 line 85 toEtm8.lon: 26.458976\n    test 505 line 86 toEtm8.easting: 11843870.887518\n    test 506 line 86 toEtm8.northing: 5912803.073343\n    test 507 line 86 toEtm8.gamma: 52.814259\n    test 508 line 86 toEtm8.scale: 3.267256\n    test 509 line 86 toEtm8.lat: 13.924448\n    test 510 line 86 toEtm8.lon: 79.017873\n    test 511 line 87 toEtm8.easting: 8891099.704936\n    test 512 line 87 toEtm8.northing: 162160.142227\n    test 513 line 87 toEtm8.gamma: 1.312094\n    test 514 line 87 toEtm8.scale: 2.157363\n    test 515 line 87 toEtm8.lat: 0.679713\n    test 516 line 87 toEtm8.lon: 62.036792\n    test 517 line 88 toEtm8.easting: 4784814.214449\n    test 518 line 88 toEtm8.northing: 2984497.432580\n    test 519 line 88 toEtm8.gamma: 17.946545\n    test 520 line 88 toEtm8.scale: 1.296116\n    test 521 line 88 toEtm8.lat: 20.478281\n    test 522 line 88 toEtm8.lon: 42.678234\n    test 523 line 89 toEtm8.easting: 1772074.682154\n    test 524 line 89 toEtm8.northing: 9491552.560143\n    test 525 line 89 toEtm8.gamma: 73.634830\n    test 526 line 89 toEtm8.scale: 1.038202\n    test 527 line 89 toEtm8.lat: 73.695703\n    test 528 line 89 toEtm8.lon: 74.259097\n    test 529 line 90 toEtm8.easting: 1907649.782106\n    test 530 line 90 toEtm8.northing: 6994232.429379\n    test 531 line 90 toEtm8.gamma: 29.718929\n    test 532 line 90 toEtm8.scale: 1.044503\n    test 533 line 90 toEtm8.lat: 58.569370\n    test 534 line 90 toEtm8.lon: 33.777549\n    test 535 line 91 toEtm8.easting: 2084423.818962\n    test 536 line 91 toEtm8.northing: 2211816.035619\n    test 537 line 91 toEtm8.gamma: 6.556448\n    test 538 line 91 toEtm8.scale: 1.053793\n    test 539 line 91 toEtm8.lat: 18.933881\n    test 540 line 91 toEtm8.lon: 19.492695\n    test 541 line 92 toEtm8.easting: 1064373.671729\n    test 542 line 92 toEtm8.northing: 7812482.547461\n    test 543 line 92 toEtm8.gamma: 24.874124\n    test 544 line 92 toEtm8.scale: 1.013490\n    test 545 line 92 toEtm8.lat: 68.317934\n    test 546 line 92 toEtm8.lon: 26.515687\n    test 547 line 93 toEtm8.easting: 4770385.479297\n    test 548 line 93 toEtm8.northing: 9734318.902980\n    test 549 line 93 toEtm8.gamma: 86.273119\n    test 550 line 93 toEtm8.scale: 1.290553\n    test 551 line 93 toEtm8.lat: 50.641941\n    test 552 line 93 toEtm8.lon: 87.111557\n    test 553 line 94 toEtm8.easting: 6398096.677297\n    test 554 line 94 toEtm8.northing: 4410894.752104\n    test 555 line 94 toEtm8.gamma: 32.558023\n    test 556 line 94 toEtm8.scale: 1.548004\n    test 557 line 94 toEtm8.lat: 24.411298\n    test 558 line 94 toEtm8.lon: 56.881823\n    test 559 line 95 toEtm8.easting: 3138623.300415\n    test 560 line 95 toEtm8.northing: 3082960.600798\n    test 561 line 95 toEtm8.gamma: 13.557672\n    test 562 line 95 toEtm8.scale: 1.123724\n    test 563 line 95 toEtm8.lat: 24.571871\n    test 564 line 95 toEtm8.lon: 30.073097\n    test 565 line 96 toEtm8.easting: 2748325.794651\n    test 566 line 96 toEtm8.northing: 4202811.912668\n    test 567 line 96 toEtm8.gamma: 17.578706\n    test 568 line 96 toEtm8.scale: 1.094102\n    test 569 line 96 toEtm8.lat: 34.202576\n    test 570 line 96 toEtm8.lon: 29.383166\n    test 571 line 97 toEtm8.easting: 6677830.630367\n    test 572 line 97 toEtm8.northing: 5350071.837395\n    test 573 line 97 toEtm8.gamma: 41.306641\n    test 574 line 97 toEtm8.scale: 1.599774\n    test 575 line 97 toEtm8.lat: 27.756285\n    test 576 line 97 toEtm8.lon: 61.881905\n    test 577 line 98 toEtm8.easting: 5941536.667431\n    test 578 line 98 toEtm8.northing: 3293112.175140\n    test 579 line 98 toEtm8.gamma: 22.752845\n    test 580 line 98 toEtm8.scale: 1.468473\n    test 581 line 98 toEtm8.lat: 19.742270\n    test 582 line 98 toEtm8.lon: 50.957821\n    test 583 line 99 toEtm8.easting: 3152481.792567\n    test 584 line 99 toEtm8.northing: 5903048.837978\n    test 585 line 99 toEtm8.gamma: 31.494606\n    test 586 line 99 toEtm8.scale: 1.124085\n    test 587 line 99 toEtm8.lat: 45.453582\n    test 588 line 99 toEtm8.lon: 40.659833\n    test 589 line 100 toEtm8.easting: 10460475.897730\n    test 590 line 100 toEtm8.northing: 2553463.624391\n    test 591 line 100 toEtm8.gamma: 21.965869\n    test 592 line 100 toEtm8.scale: 2.700296\n    test 593 line 100 toEtm8.lat: 8.322144\n    test 594 line 100 toEtm8.lon: 69.488157\n    test 595 line 101 toEtm8.easting: 1964010.778021\n    test 596 line 101 toEtm8.northing: 5634042.923056\n    test 597 line 101 toEtm8.gamma: 20.117800\n    test 598 line 101 toEtm8.scale: 1.047344\n    test 599 line 101 toEtm8.lat: 47.749831\n    test 600 line 101 toEtm8.lon: 26.322002\n    test 601 line 102 toEtm8.easting: 2065306.424934\n    test 602 line 102 toEtm8.northing: 2135008.468651\n    test 603 line 102 toEtm8.gamma: 6.258981\n    test 604 line 102 toEtm8.scale: 1.052800\n    test 605 line 102 toEtm8.lat: 18.297493\n    test 606 line 102 toEtm8.lon: 19.244669\n    test 607 line 103 toEtm8.easting: 5127738.132976\n    test 608 line 103 toEtm8.northing: 6793804.304411\n    test 609 line 103 toEtm8.gamma: 50.557915\n    test 610 line 103 toEtm8.scale: 1.339412\n    test 611 line 103 toEtm8.lat: 40.834541\n    test 612 line 103 toEtm8.lon: 61.650750\n    test 613 line 104 toEtm8.easting: 8385525.148166\n    test 614 line 104 toEtm8.northing: 6924932.344306\n    test 615 line 104 toEtm8.gamma: 59.087561\n    test 616 line 104 toEtm8.scale: 1.990364\n    test 617 line 104 toEtm8.lat: 26.273247\n    test 618 line 104 toEtm8.lon: 74.926694\n    test 619 line 105 toEtm8.easting: 2297510.791909\n    test 620 line 105 toEtm8.northing: 2805666.962834\n    test 621 line 105 toEtm8.gamma: 9.301553\n    test 622 line 105 toEtm8.scale: 1.065508\n    test 623 line 105 toEtm8.lat: 23.698347\n    test 624 line 105 toEtm8.lon: 22.155657\n    test 625 line 106 toEtm8.easting: 13749544.917635\n    test 626 line 106 toEtm8.northing: 8288728.384650\n    test 627 line 106 toEtm8.gamma: 75.033970\n    test 628 line 106 toEtm8.scale: 4.270588\n    test 629 line 106 toEtm8.lat: 12.364113\n    test 630 line 106 toEtm8.lon: 86.348578\n    test 631 line 107 toEtm8.easting: 317518.455546\n    test 632 line 107 toEtm8.northing: 1097517.583745\n    test 633 line 107 toEtm8.gamma: 0.499004\n    test 634 line 107 toEtm8.scale: 1.000848\n    test 635 line 107 toEtm8.lat: 9.916091\n    test 636 line 107 toEtm8.lon: 2.895277\n    test 637 line 108 toEtm8.easting: 3856035.184888\n    test 638 line 108 toEtm8.northing: 9141364.450290\n    test 639 line 108 toEtm8.gamma: 75.972763\n    test 640 line 108 toEtm8.scale: 1.186786\n    test 641 line 108 toEtm8.lat: 56.553876\n    test 642 line 108 toEtm8.lon: 78.215077\n    test 643 line 109 toEtm8.easting: 1457484.942823\n    test 644 line 109 toEtm8.northing: 9385297.101973\n    test 645 line 109 toEtm8.gamma: 66.784662\n    test 646 line 109 toEtm8.scale: 1.025660\n    test 647 line 109 toEtm8.lat: 75.957631\n    test 648 line 109 toEtm8.lon: 67.407383\n    test 649 line 110 toEtm8.easting: 1304934.901841\n    test 650 line 110 toEtm8.northing: 3604655.155715\n    test 651 line 110 toEtm8.gamma: 7.343989\n    test 652 line 110 toEtm8.scale: 1.020672\n    test 653 line 110 toEtm8.lat: 31.826531\n    test 654 line 110 toEtm8.lon: 13.731050\n    test 655 line 111 toEtm8.easting: 1399093.491792\n    test 656 line 111 toEtm8.northing: 8314607.120342\n    test 657 line 111 toEtm8.gamma: 38.630161\n    test 658 line 111 toEtm8.scale: 1.023625\n    test 659 line 111 toEtm8.lat: 70.542985\n    test 660 line 111 toEtm8.lon: 40.282055\n    test 661 line 112 toEtm8.easting: 356983.618540\n    test 662 line 112 toEtm8.northing: 4282309.048994\n    test 663 line 112 toEtm8.gamma: 2.561485\n    test 664 line 112 toEtm8.scale: 1.001170\n    test 665 line 112 toEtm8.lat: 38.617487\n    test 666 line 112 toEtm8.lon: 4.099838\n    test 667 line 113 toEtm8.easting: 9952911.325091\n    test 668 line 113 toEtm8.northing: 1510288.212229\n    test 669 line 113 toEtm8.gamma: 12.752154\n    test 670 line 113 toEtm8.scale: 2.511357\n    test 671 line 113 toEtm8.lat: 5.389447\n    test 672 line 113 toEtm8.lon: 66.729612\n    test 673 line 114 toEtm8.easting: 6367592.504007\n    test 674 line 114 toEtm8.northing: 1200437.077672\n    test 675 line 114 toEtm8.gamma: 8.338041\n    test 676 line 114 toEtm8.scale: 1.546210\n    test 677 line 114 toEtm8.lat: 6.995168\n    test 678 line 114 toEtm8.lon: 50.014763\n    test 679 line 115 toEtm8.easting: 4391263.676460\n    test 680 line 115 toEtm8.northing: 6325455.989408\n    test 681 line 115 toEtm8.gamma: 42.653541\n    test 682 line 115 toEtm8.scale: 1.245560\n    test 683 line 115 toEtm8.lat: 42.321894\n    test 684 line 115 toEtm8.lon: 53.784040\n    test 685 line 116 toEtm8.easting: 6209880.527527\n    test 686 line 116 toEtm8.northing: 2154754.449747\n    test 687 line 116 toEtm8.gamma: 14.919512\n    test 688 line 116 toEtm8.scale: 1.516560\n    test 689 line 116 toEtm8.lat: 12.698515\n    test 690 line 116 toEtm8.lon: 50.242047\n    test 691 line 117 toEtm8.easting: 1507053.688772\n    test 692 line 117 toEtm8.northing: 6261383.513280\n    test 693 line 117 toEtm8.gamma: 19.280373\n    test 694 line 117 toEtm8.scale: 1.027584\n    test 695 line 117 toEtm8.lat: 54.207636\n    test 696 line 117 toEtm8.lon: 23.325731\n    test 697 line 118 toEtm8.easting: 8332725.003777\n    test 698 line 118 toEtm8.northing: 3002712.329753\n    test 699 line 118 toEtm8.gamma: 24.059212\n    test 700 line 118 toEtm8.scale: 1.990450\n    test 701 line 118 toEtm8.lat: 13.224787\n    test 702 line 118 toEtm8.lon: 62.426698\n    test 703 line 119 toEtm8.easting: 3958910.085235\n    test 704 line 119 toEtm8.northing: 3462284.926102\n    test 705 line 119 toEtm8.gamma: 18.546398\n    test 706 line 119 toEtm8.scale: 1.199351\n    test 707 line 119 toEtm8.lat: 25.650282\n    test 708 line 119 toEtm8.lon: 37.710391\n    test 709 line 120 toEtm8.easting: 10452892.282083\n    test 710 line 120 toEtm8.northing: 8000059.605114\n    test 711 line 120 toEtm8.gamma: 71.075240\n    test 712 line 120 toEtm8.scale: 2.650111\n    test 713 line 120 toEtm8.lat: 20.684773\n    test 714 line 120 toEtm8.lon: 82.849734\n    test 715 line 121 toEtm8.easting: 496148.253731\n    test 716 line 121 toEtm8.northing: 6388503.365043\n    test 717 line 121 toEtm8.gamma: 6.970955\n    test 718 line 121 toEtm8.scale: 1.002620\n    test 719 line 121 toEtm8.lat: 57.367533\n    test 720 line 121 toEtm8.lon: 8.260866\n    test 721 line 122 toEtm8.easting: 7375792.085850\n    test 722 line 122 toEtm8.northing: 5544624.072155\n    test 723 line 122 toEtm8.gamma: 44.510851\n    test 724 line 122 toEtm8.scale: 1.745898\n    test 725 line 122 toEtm8.lat: 25.958757\n    test 726 line 122 toEtm8.lon: 65.760477\n    test 727 line 123 toEtm8.easting: 2826258.041979\n    test 728 line 123 toEtm8.northing: 5167759.816959\n    test 729 line 123 toEtm8.gamma: 23.783897\n    test 730 line 123 toEtm8.scale: 1.099415\n    test 731 line 123 toEtm8.lat: 41.395848\n    test 732 line 123 toEtm8.lon: 33.661790\n    test 733 line 124 toEtm8.easting: 3958563.378851\n    test 734 line 124 toEtm8.northing: 8499923.231243\n    test 735 line 124 toEtm8.gamma: 66.570945\n    test 736 line 124 toEtm8.scale: 1.197296\n    test 737 line 124 toEtm8.lat: 54.266617\n    test 738 line 124 toEtm8.lon: 70.602199\n    test 739 line 125 toEtm8.easting: 4408189.533462\n    test 740 line 125 toEtm8.northing: 8046312.003642\n    test 741 line 125 toEtm8.gamma: 62.216959\n    test 742 line 125 toEtm8.scale: 1.246750\n    test 743 line 125 toEtm8.lat: 49.840393\n    test 744 line 125 toEtm8.lon: 68.036728\n    test 745 line 126 toEtm8.easting: 3629225.627512\n    test 746 line 126 toEtm8.northing: 6371258.454645\n    test 747 line 126 toEtm8.gamma: 38.881675\n    test 748 line 126 toEtm8.scale: 1.165511\n    test 749 line 126 toEtm8.lat: 46.306035\n    test 750 line 126 toEtm8.lon: 48.085828\n    test 751 line 127 toEtm8.easting: 602838.450710\n    test 752 line 127 toEtm8.northing: 4851370.637205\n    test 753 line 127 toEtm8.gamma: 5.160395\n    test 754 line 127 toEtm8.scale: 1.004073\n    test 755 line 127 toEtm8.lat: 43.570988\n    test 756 line 127 toEtm8.lon: 7.464494\n    test 757 line 128 toEtm8.easting: 764616.665051\n    test 758 line 128 toEtm8.northing: 2164299.337945\n    test 759 line 128 toEtm8.gamma: 2.429300\n    test 760 line 128 toEtm8.scale: 1.006835\n    test 761 line 128 toEtm8.lat: 19.427290\n    test 762 line 128 toEtm8.lon: 7.268247\n    test 763 line 129 toEtm8.easting: 5048953.021931\n    test 764 line 129 toEtm8.northing: 1885974.057398\n    test 765 line 129 toEtm8.gamma: 11.459804\n    test 766 line 129 toEtm8.scale: 1.332207\n    test 767 line 129 toEtm8.lat: 12.713794\n    test 768 line 129 toEtm8.lon: 42.507018\n    test 769 line 130 toEtm8.easting: 2293996.601155\n    test 770 line 130 toEtm8.northing: 2392408.644221\n    test 771 line 130 toEtm8.gamma: 7.791838\n    test 772 line 130 toEtm8.scale: 1.065348\n    test 773 line 130 toEtm8.lat: 20.238782\n    test 774 line 130 toEtm8.lon: 21.566068\n    test 775 line 131 toEtm8.easting: 1530603.839418\n    test 776 line 131 toEtm8.northing: 7287841.459898\n    test 777 line 131 toEtm8.gamma: 27.502921\n    test 778 line 131 toEtm8.scale: 1.028416\n    test 779 line 131 toEtm8.lat: 62.367847\n    test 780 line 131 toEtm8.lon: 30.438849\n    test 781 line 132 toEtm8.easting: 2660000.093152\n    test 782 line 132 toEtm8.northing: 5161982.213248\n    test 783 line 132 toEtm8.gamma: 22.629836\n    test 784 line 132 toEtm8.scale: 1.087851\n    test 785 line 132 toEtm8.lat: 41.891569\n    test 786 line 132 toEtm8.lon: 31.959547\n    test 787 line 133 toEtm8.easting: 5037478.329414\n    test 788 line 133 toEtm8.northing: 8768172.379908\n    test 789 line 133 toEtm8.gamma: 73.511182\n    test 790 line 133 toEtm8.scale: 1.325919\n    test 791 line 133 toEtm8.lat: 47.664248\n    test 792 line 133 toEtm8.lon: 77.630062\n    test 793 line 134 toEtm8.easting: 2289650.957799\n    test 794 line 134 toEtm8.northing: 8784328.593607\n    test 795 line 134 toEtm8.gamma: 60.786067\n    test 796 line 134 toEtm8.scale: 1.064346\n    test 797 line 134 toEtm8.lat: 67.259559\n    test 798 line 134 toEtm8.lon: 62.715293\n    test 799 line 135 toEtm8.easting: 647913.889744\n    test 800 line 135 toEtm8.northing: 6742382.228217\n    test 801 line 135 toEtm8.gamma: 10.252667\n    test 802 line 135 toEtm8.scale: 1.004748\n    test 803 line 135 toEtm8.lat: 60.295381\n    test 804 line 135 toEtm8.lon: 11.763097\n    test 805 line 136 toEtm8.easting: 1118372.698566\n    test 806 line 136 toEtm8.northing: 9040627.942263\n    test 807 line 136 toEtm8.gamma: 48.936803\n    test 808 line 136 toEtm8.scale: 1.014920\n    test 809 line 136 toEtm8.lat: 76.878914\n    test 810 line 136 toEtm8.lon: 49.685773\n    test 811 line 137 toEtm8.easting: 440696.510070\n    test 812 line 137 toEtm8.northing: 5500355.826297\n    test 813 line 137 toEtm8.gamma: 4.636104\n    test 814 line 137 toEtm8.scale: 1.001986\n    test 815 line 137 toEtm8.lat: 49.495349\n    test 816 line 137 toEtm8.lon: 6.087551\n    test 817 line 138 toEtm8.easting: 601728.149727\n    test 818 line 138 toEtm8.northing: 9095352.048149\n    test 819 line 138 toEtm8.gamma: 33.435771\n    test 820 line 138 toEtm8.scale: 1.004027\n    test 821 line 138 toEtm8.lat: 80.297265\n    test 822 line 138 toEtm8.lon: 33.816372\n    test 823 line 139 toEtm8.easting: 3481444.777827\n    test 824 line 139 toEtm8.northing: 291665.708749\n    test 825 line 139 toEtm8.gamma: 1.314726\n    test 826 line 139 toEtm8.scale: 1.153534\n    test 827 line 139 toEtm8.lat: 2.286437\n    test 828 line 139 toEtm8.lon: 29.855149\n    test 829 line 140 toEtm8.easting: 3515304.901524\n    test 830 line 140 toEtm8.northing: 1443981.882918\n    test 831 line 140 toEtm8.gamma: 6.641638\n    test 832 line 140 toEtm8.scale: 1.156509\n    test 833 line 140 toEtm8.lat: 11.264457\n    test 834 line 140 toEtm8.lon: 30.743907\n    test 835 line 141 toEtm8.easting: 160012.186959\n    test 836 line 141 toEtm8.northing: 3922609.253231\n    test 837 line 141 toEtm8.gamma: 1.022225\n    test 838 line 141 toEtm8.scale: 0.999916\n    test 839 line 141 toEtm8.lat: 35.434073\n    test 840 line 141 toEtm8.lon: 1.762795\n    test 841 line 142 toEtm8.easting: 4163744.245622\n    test 842 line 142 toEtm8.northing: 936884.674804\n    test 843 line 142 toEtm8.gamma: 4.892559\n    test 844 line 142 toEtm8.scale: 1.222164\n    test 845 line 142 toEtm8.lat: 6.923695\n    test 846 line 142 toEtm8.lon: 35.289456\n    test 847 line 143 toEtm8.easting: 6155200.017926\n    test 848 line 143 toEtm8.northing: 6926306.628390\n    test 849 line 143 toEtm8.gamma: 55.103258\n    test 850 line 143 toEtm8.scale: 1.500556\n    test 851 line 143 toEtm8.lat: 36.129672\n    test 852 line 143 toEtm8.lon: 67.533176\n    test 853 line 144 toEtm8.easting: 16263383.285440\n    test 854 line 144 toEtm8.northing: 3591296.731341\n    test 855 line 144 toEtm8.gamma: 36.040254\n    test 856 line 144 toEtm8.scale: 6.589288\n    test 857 line 144 toEtm8.lat: 4.406529\n    test 858 line 144 toEtm8.lon: 81.965734\n    test 859 line 145 toEtm8.easting: 14220995.515398\n    test 860 line 145 toEtm8.northing: 5100587.457503\n    test 861 line 145 toEtm8.gamma: 47.314258\n    test 862 line 145 toEtm8.scale: 4.693202\n    test 863 line 145 toEtm8.lat: 8.474589\n    test 864 line 145 toEtm8.lon: 81.129945\n    test 865 line 146 toEtm8.easting: 3173034.802372\n    test 866 line 146 toEtm8.northing: 7263421.942957\n    test 867 line 146 toEtm8.gamma: 45.215808\n    test 868 line 146 toEtm8.scale: 1.125410\n    test 869 line 146 toEtm8.lat: 53.907276\n    test 870 line 146 toEtm8.lon: 51.252904\n    test 871 line 147 toEtm8.easting: 10253274.092204\n    test 872 line 147 toEtm8.northing: 8867574.299792\n    test 873 line 147 toEtm8.gamma: 79.198250\n    test 874 line 147 toEtm8.scale: 2.572372\n    test 875 line 147 toEtm8.lat: 22.120545\n    test 876 line 147 toEtm8.lon: 85.756782\n    test 877 line 148 toEtm8.easting: 2415561.483230\n    test 878 line 148 toEtm8.northing: 8813225.217097\n    test 879 line 148 toEtm8.gamma: 62.548978\n    test 880 line 148 toEtm8.scale: 1.071748\n    test 881 line 148 toEtm8.lat: 66.444100\n    test 882 line 148 toEtm8.lon: 64.532960\n    test 883 line 149 toEtm8.easting: 9589179.293295\n    test 884 line 149 toEtm8.northing: 1777680.784143\n    test 885 line 149 toEtm8.gamma: 14.838483\n    test 886 line 149 toEtm8.scale: 2.380716\n    test 887 line 149 toEtm8.lat: 6.670965\n    test 888 line 149 toEtm8.lon: 65.660408\n    test 889 line 150 toEtm8.easting: 727939.438391\n    test 890 line 150 toEtm8.northing: 3684363.236810\n    test 891 line 150 toEtm8.gamma: 4.266227\n    test 892 line 150 toEtm8.scale: 1.006140\n    test 893 line 150 toEtm8.lat: 33.054057\n    test 894 line 150 toEtm8.lon: 7.787458\n    test 895 line 151 toEtm8.easting: 1250765.991085\n    test 896 line 151 toEtm8.northing: 792869.242719\n    test 897 line 151 toEtm8.gamma: 1.396497\n    test 898 line 151 toEtm8.scale: 1.019026\n    test 899 line 151 toEtm8.lat: 7.035525\n    test 900 line 151 toEtm8.lon: 11.253707\n    test 901 line 152 toEtm8.easting: 710421.705887\n    test 902 line 152 toEtm8.northing: 5019406.075928\n    test 903 line 152 toEtm8.gamma: 6.393949\n    test 904 line 152 toEtm8.scale: 1.005812\n    test 905 line 152 toEtm8.lat: 44.971340\n    test 906 line 152 toEtm8.lon: 9.009304\n    test 907 line 153 toEtm8.easting: 4600995.074643\n    test 908 line 153 toEtm8.northing: 4505712.084593\n    test 909 line 153 toEtm8.gamma: 27.997458\n    test 910 line 153 toEtm8.scale: 1.271841\n    test 911 line 153 toEtm8.lat: 30.821397\n    test 912 line 153 toEtm8.lon: 45.970577\n    test 913 line 154 toEtm8.easting: 557642.627782\n    test 914 line 154 toEtm8.northing: 7006911.251644\n    test 915 line 154 toEtm8.gamma: 9.769903\n    test 916 line 154 toEtm8.scale: 1.003411\n    test 917 line 154 toEtm8.lat: 62.763886\n    test 918 line 154 toEtm8.lon: 10.960144\n    test 919 line 155 toEtm8.easting: 4635062.294291\n    test 920 line 155 toEtm8.northing: 2702556.153311\n    test 921 line 155 toEtm8.gamma: 15.779547\n    test 922 line 155 toEtm8.scale: 1.277178\n    test 923 line 155 toEtm8.lat: 18.888611\n    test 924 line 155 toEtm8.lon: 41.009871\n    test 925 line 156 toEtm8.easting: 14554962.255919\n    test 926 line 156 toEtm8.northing: 4716639.908572\n    test 927 line 156 toEtm8.gamma: 44.192751\n    test 928 line 156 toEtm8.scale: 4.960020\n    test 929 line 156 toEtm8.lat: 7.524119\n    test 930 line 156 toEtm8.lon: 81.050715\n    test 931 line 157 toEtm8.easting: 882126.661736\n    test 932 line 157 toEtm8.northing: 7947612.369506\n    test 933 line 157 toEtm8.gamma: 22.429487\n    test 934 line 157 toEtm8.scale: 1.009132\n    test 935 line 157 toEtm8.lat: 70.063902\n    test 936 line 157 toEtm8.lon: 23.705255\n    test 937 line 158 toEtm8.easting: 20262021.645983\n    test 938 line 158 toEtm8.northing: 8113827.820796\n    test 939 line 158 toEtm8.gamma: 76.936057\n    test 940 line 158 toEtm8.scale: 10.349092\n    test 941 line 158 toEtm8.lat: 3.556526\n    test 942 line 158 toEtm8.lon: 88.363529\n    test 943 line 159 toEtm8.easting: 6500508.399850\n    test 944 line 159 toEtm8.northing: 6956476.342368\n    test 945 line 159 toEtm8.gamma: 56.237116\n    test 946 line 159 toEtm8.scale: 1.563162\n    test 947 line 159 toEtm8.lat: 34.551257\n    test 948 line 159 toEtm8.lon: 69.111091\n    test 949 line 160 toEtm8.easting: 3884036.641314\n    test 950 line 160 toEtm8.northing: 6890167.411733\n    test 951 line 160 toEtm8.gamma: 45.760130\n    test 952 line 160 toEtm8.scale: 1.190167\n    test 953 line 160 toEtm8.lat: 47.929051\n    test 954 line 160 toEtm8.lon: 54.103418\n    test 955 line 161 toEtm8.easting: 217855.546078\n    test 956 line 161 toEtm8.northing: 6184108.122568\n    test 957 line 161 toEtm8.gamma: 2.870993\n    test 958 line 161 toEtm8.scale: 1.000182\n    test 959 line 161 toEtm8.lat: 55.753536\n    test 960 line 161 toEtm8.lon: 3.471798\n    test 961 line 162 toEtm8.easting: 11384139.290402\n    test 962 line 162 toEtm8.northing: 8893889.949556\n    test 963 line 162 toEtm8.gamma: 79.774854\n    test 964 line 162 toEtm8.scale: 3.024672\n    test 965 line 162 toEtm8.lat: 18.530847\n    test 966 line 162 toEtm8.lon: 86.555312\n    test 967 line 163 toEtm8.easting: 3469855.989805\n    test 968 line 163 toEtm8.northing: 7723193.799228\n    test 969 line 163 toEtm8.gamma: 53.114700\n    test 970 line 163 toEtm8.scale: 1.150540\n    test 971 line 163 toEtm8.lat: 54.510125\n    test 972 line 163 toEtm8.lon: 58.556056\n    test 973 line 164 toEtm8.easting: 5926165.994939\n    test 974 line 164 toEtm8.northing: 9385463.732747\n    test 975 line 164 toEtm8.gamma: 82.506981\n    test 976 line 164 toEtm8.scale: 1.459758\n    test 977 line 164 toEtm8.lat: 42.864162\n    test 978 line 164 toEtm8.lon: 84.866326\n    test 979 line 165 toEtm8.easting: 5798639.662224\n    test 980 line 165 toEtm8.northing: 5305387.640916\n    test 981 line 165 toEtm8.gamma: 38.617257\n    test 982 line 165 toEtm8.scale: 1.442263\n    test 983 line 165 toEtm8.lat: 30.911943\n    test 984 line 165 toEtm8.lon: 57.114102\n    test 985 line 166 toEtm8.easting: 9464.934388\n    test 986 line 166 toEtm8.northing: 6489121.624944\n    test 987 line 166 toEtm8.gamma: 0.138696\n    test 988 line 166 toEtm8.scale: 0.999601\n    test 989 line 166 toEtm8.lat: 58.542493\n    test 990 line 166 toEtm8.lon: 0.162593\n    test 991 line 167 toEtm8.easting: 12575834.275614\n    test 992 line 167 toEtm8.northing: 8356610.895486\n    test 993 line 167 toEtm8.gamma: 75.235223\n    test 994 line 167 toEtm8.scale: 3.599442\n    test 995 line 167 toEtm8.lat: 15.022689\n    test 996 line 167 toEtm8.lon: 85.792615\n    test 997 line 168 toEtm8.easting: 2719653.543469\n    test 998 line 168 toEtm8.northing: 9362389.163495\n    test 999 line 168 toEtm8.gamma: 76.049670\n    test 1000 line 168 toEtm8.scale: 1.091315\n    test 1001 line 168 toEtm8.lat: 65.692275\n    test 1002 line 168 toEtm8.lon: 77.241377\n    test 1003 line 169 toEtm8.easting: 4845341.924698\n    test 1004 line 169 toEtm8.northing: 8710522.326901\n    test 1005 line 169 toEtm8.gamma: 72.320942\n    test 1006 line 169 toEtm8.scale: 1.300382\n    test 1007 line 169 toEtm8.lat: 48.806211\n    test 1008 line 169 toEtm8.lon: 76.486365\n    test 1009 line 170 toEtm8.easting: 3935261.522763\n    test 1010 line 170 toEtm8.northing: 9454271.649062\n    test 1011 line 170 toEtm8.gamma: 81.162334\n    test 1012 line 170 toEtm8.scale: 1.194767\n    test 1013 line 170 toEtm8.lat: 56.436025\n    test 1014 line 170 toEtm8.lon: 82.611568\n    test 1015 line 171 toEtm8.easting: 7074299.823000\n    test 1016 line 171 toEtm8.northing: 1648736.065055\n    test 1017 line 171 toEtm8.gamma: 12.145925\n    test 1018 line 171 toEtm8.scale: 1.687551\n    test 1019 line 171 toEtm8.lat: 8.766053\n    test 1020 line 171 toEtm8.lon: 54.367539\n    test 1021 line 172 toEtm8.easting: 3689072.579308\n    test 1022 line 172 toEtm8.northing: 2230802.665211\n    test 1023 line 172 toEtm8.gamma: 10.856248\n    test 1024 line 172 toEtm8.scale: 1.172689\n    test 1025 line 172 toEtm8.lat: 17.095495\n    test 1026 line 172 toEtm8.lon: 33.059128\n    test 1027 line 173 toEtm8.easting: 8102565.885587\n    test 1028 line 173 toEtm8.northing: 5167396.617580\n    test 1029 line 173 toEtm8.gamma: 42.324886\n    test 1030 line 173 toEtm8.scale: 1.921927\n    test 1031 line 173 toEtm8.lat: 22.142861\n    test 1032 line 173 toEtm8.lon: 67.200684\n    test 1033 line 174 toEtm8.easting: 8181271.353564\n    test 1034 line 174 toEtm8.northing: 4425436.547185\n    test 1035 line 174 toEtm8.gamma: 35.900845\n    test 1036 line 174 toEtm8.scale: 1.945017\n    test 1037 line 174 toEtm8.lat: 19.222623\n    test 1038 line 174 toEtm8.lon: 65.180785\n    test 1039 line 175 toEtm8.easting: 767067.394003\n    test 1040 line 175 toEtm8.northing: 3701745.857296\n    test 1041 line 175 toEtm8.gamma: 4.519201\n    test 1042 line 175 toEtm8.scale: 1.006863\n    test 1043 line 175 toEtm8.lat: 33.182474\n    test 1044 line 175 toEtm8.lon: 8.216952\n    test 1045 line 176 toEtm8.easting: 6688114.168572\n    test 1046 line 176 toEtm8.northing: 2052857.299639\n    test 1047 line 176 toEtm8.gamma: 14.766191\n    test 1048 line 176 toEtm8.scale: 1.607200\n    test 1049 line 176 toEtm8.lat: 11.417963\n    test 1050 line 176 toEtm8.lon: 52.808691\n    test 1051 line 177 toEtm8.easting: 5608408.773761\n    test 1052 line 177 toEtm8.northing: 3859055.659110\n    test 1053 line 177 toEtm8.gamma: 26.244151\n    test 1054 line 177 toEtm8.scale: 1.413463\n    test 1055 line 177 toEtm8.lat: 23.836688\n    test 1056 line 177 toEtm8.lon: 50.500180\n    test 1057 line 178 toEtm8.easting: 3836942.765275\n    test 1058 line 178 toEtm8.northing: 6415467.634326\n    test 1059 line 178 toEtm8.gamma: 40.575885\n    test 1060 line 178 toEtm8.scale: 1.185615\n    test 1061 line 178 toEtm8.lat: 45.550020\n    test 1062 line 178 toEtm8.lon: 50.148036\n    test 1063 line 179 toEtm8.easting: 1298730.366025\n    test 1064 line 179 toEtm8.northing: 6021453.000792\n    test 1065 line 179 toEtm8.gamma: 15.613320\n    test 1066 line 179 toEtm8.scale: 1.020367\n    test 1067 line 179 toEtm8.lat: 52.746079\n    test 1068 line 179 toEtm8.lon: 19.343926\n    test 1069 line 180 toEtm8.easting: 416934.289208\n    test 1070 line 180 toEtm8.northing: 7295683.451705\n    test 1071 line 180 toEtm8.gamma: 8.238232\n    test 1072 line 180 toEtm8.scale: 1.001729\n    test 1073 line 180 toEtm8.lat: 65.513348\n    test 1074 line 180 toEtm8.lon: 9.039529\n    test 1075 line 181 toEtm8.easting: 4336076.850889\n    test 1076 line 181 toEtm8.northing: 7617975.722779\n    test 1077 line 181 toEtm8.gamma: 56.537088\n    test 1078 line 181 toEtm8.scale: 1.238582\n    test 1079 line 181 toEtm8.lat: 48.709795\n    test 1080 line 181 toEtm8.lon: 63.554005\n    test 1081 line 182 toEtm8.easting: 168047.336980\n    test 1082 line 182 toEtm8.northing: 2185000.046530\n    test 1083 line 182 toEtm8.gamma: 0.542187\n    test 1084 line 182 toEtm8.scale: 0.999949\n    test 1085 line 182 toEtm8.lat: 19.753509\n    test 1086 line 182 toEtm8.lon: 1.603846\n    test 1087 line 183 toEtm8.easting: 8276281.328790\n    test 1088 line 183 toEtm8.northing: 263444.350545\n    test 1089 line 183 toEtm8.gamma: 2.071435\n    test 1090 line 183 toEtm8.scale: 1.980314\n    test 1091 line 183 toEtm8.lat: 1.202816\n    test 1092 line 183 toEtm8.lon: 59.377276\n    test 1093 line 184 toEtm8.easting: 4772573.810710\n    test 1094 line 184 toEtm8.northing: 6765710.336002\n    test 1095 line 184 toEtm8.gamma: 48.857561\n    test 1096 line 184 toEtm8.scale: 1.291911\n    test 1097 line 184 toEtm8.lat: 42.564975\n    test 1098 line 184 toEtm8.lon: 59.356947\n    test 1099 line 185 toEtm8.easting: 5427755.074639\n    test 1100 line 185 toEtm8.northing: 1556055.820924\n    test 1101 line 185 toEtm8.gamma: 9.862178\n    test 1102 line 185 toEtm8.scale: 1.387394\n    test 1103 line 185 toEtm8.lat: 10.090572\n    test 1104 line 185 toEtm8.lon: 44.604132\n    test 1105 line 186 toEtm8.easting: 11588458.616041\n    test 1106 line 186 toEtm8.northing: 5707993.922613\n    test 1107 line 186 toEtm8.gamma: 50.784827\n    test 1108 line 186 toEtm8.scale: 3.149567\n    test 1109 line 186 toEtm8.lat: 14.133028\n    test 1110 line 186 toEtm8.lon: 78.097533\n    test 1111 line 187 toEtm8.easting: 7152433.802688\n    test 1112 line 187 toEtm8.northing: 761390.695844\n    test 1113 line 187 toEtm8.gamma: 5.607350\n    test 1114 line 187 toEtm8.scale: 1.705261\n    test 1115 line 187 toEtm8.lat: 4.031123\n    test 1116 line 187 toEtm8.lon: 54.048782\n    test 1117 line 188 toEtm8.easting: 3105651.390901\n    test 1118 line 188 toEtm8.northing: 9426026.169064\n    test 1119 line 188 toEtm8.gamma: 78.750206\n    test 1120 line 188 toEtm8.scale: 1.119737\n    test 1121 line 188 toEtm8.lat: 62.746603\n    test 1122 line 188 toEtm8.lon: 79.968641\n    test 1123 line 189 toEtm8.easting: 2959009.639022\n    test 1124 line 189 toEtm8.northing: 8339242.269282\n    test 1125 line 189 toEtm8.gamma: 58.460865\n    test 1126 line 189 toEtm8.scale: 1.108554\n    test 1127 line 189 toEtm8.lat: 60.626429\n    test 1128 line 189 toEtm8.lon: 61.851551\n    test 1129 line 190 toEtm8.easting: 8640472.267145\n    test 1130 line 190 toEtm8.northing: 6230320.417931\n    test 1131 line 190 toEtm8.gamma: 52.816810\n    test 1132 line 190 toEtm8.scale: 2.062973\n    test 1133 line 190 toEtm8.lat: 23.600626\n    test 1134 line 190 toEtm8.lon: 72.811634\n    test 1135 line 191 toEtm8.easting: 811352.108932\n    test 1136 line 191 toEtm8.northing: 9816129.813481\n    test 1137 line 191 toEtm8.gamma: 77.299184\n    test 1138 line 191 toEtm8.scale: 1.007651\n    test 1139 line 191 toEtm8.lat: 82.572236\n    test 1140 line 191 toEtm8.lon: 77.402323\n    test 1141 line 192 toEtm8.easting: 6521874.973458\n    test 1142 line 192 toEtm8.northing: 1053612.479744\n    test 1143 line 192 toEtm8.gamma: 7.407328\n    test 1144 line 192 toEtm8.scale: 1.575529\n    test 1145 line 192 toEtm8.lat: 6.030051\n    test 1146 line 192 toEtm8.lon: 50.783505\n    test 1147 line 193 toEtm8.easting: 3477983.997875\n    test 1148 line 193 toEtm8.northing: 5651613.325947\n    test 1149 line 193 toEtm8.gamma: 31.530673\n    test 1150 line 193 toEtm8.scale: 1.151875\n    test 1151 line 193 toEtm8.lat: 42.411523\n    test 1152 line 193 toEtm8.lon: 42.258009\n    test 1153 line 194 toEtm8.easting: 629892.822243\n    test 1154 line 194 toEtm8.northing: 3283914.910451\n    test 1155 line 194 toEtm8.gamma: 3.210482\n    test 1156 line 194 toEtm8.scale: 1.004499\n    test 1157 line 194 toEtm8.lat: 29.526120\n    test 1158 line 194 toEtm8.lon: 6.493069\n    test 1159 line 195 toEtm8.easting: 3381879.687227\n    test 1160 line 195 toEtm8.northing: 5103629.325665\n    test 1161 line 195 toEtm8.gamma: 26.748108\n    test 1162 line 195 toEtm8.scale: 1.143559\n    test 1163 line 195 toEtm8.lat: 39.021853\n    test 1164 line 195 toEtm8.lon: 38.641779\n    test 1165 line 196 toEtm8.easting: 2815986.534177\n    test 1166 line 196 toEtm8.northing: 9387029.120718\n    test 1167 line 196 toEtm8.gamma: 76.967262\n    test 1168 line 196 toEtm8.scale: 1.098032\n    test 1169 line 196 toEtm8.lat: 64.971850\n    test 1170 line 196 toEtm8.lon: 78.151893\n    test 1171 line 197 toEtm8.easting: 3398195.889603\n    test 1172 line 197 toEtm8.northing: 9138936.031490\n    test 1173 line 197 toEtm8.gamma: 74.477499\n    test 1174 line 197 toEtm8.scale: 1.144009\n    test 1175 line 197 toEtm8.lat: 59.961819\n    test 1176 line 197 toEtm8.lon: 76.473422\n    test 1177 line 198 toEtm8.easting: 2421734.754637\n    test 1178 line 198 toEtm8.northing: 5002372.094991\n    test 1179 line 198 toEtm8.gamma: 20.017082\n    test 1180 line 198 toEtm8.scale: 1.072592\n    test 1181 line 198 toEtm8.lat: 41.374040\n    test 1182 line 198 toEtm8.lon: 28.848343\n    test 1183 line 199 toEtm8.easting: 2360869.895525\n    test 1184 line 199 toEtm8.northing: 9553298.449536\n    test 1185 line 199 toEtm8.gamma: 78.848205\n    test 1186 line 199 toEtm8.scale: 1.068453\n    test 1187 line 199 toEtm8.lat: 68.946087\n    test 1188 line 199 toEtm8.lon: 79.574523\n    test 1189 line 200 toEtm8.easting: 1196539.972194\n    test 1190 line 200 toEtm8.northing: 9861920.836230\n    test 1191 line 200 toEtm8.gamma: 83.437668\n    test 1192 line 200 toEtm8.scale: 1.017137\n    test 1193 line 200 toEtm8.lat: 79.275096\n    test 1194 line 200 toEtm8.lon: 83.551272\n    test 1195 line 201 toEtm8.easting: 1327758.704795\n    test 1196 line 201 toEtm8.northing: 2375509.241683\n    test 1197 line 201 toEtm8.gamma: 4.617572\n    test 1198 line 201 toEtm8.scale: 1.021465\n    test 1199 line 201 toEtm8.lat: 21.000252\n    test 1200 line 201 toEtm8.lon: 12.697444\n    test 1201 line 202 toEtm8.easting: 2070860.327644\n    test 1202 line 202 toEtm8.northing: 8604500.719581\n    test 1203 line 202 toEtm8.gamma: 54.722761\n    test 1204 line 202 toEtm8.scale: 1.052469\n    test 1205 line 202 toEtm8.lat: 68.015227\n    test 1206 line 202 toEtm8.lon: 56.732419\n    test 1207 line 203 toEtm8.easting: 6564776.654864\n    test 1208 line 203 toEtm8.northing: 8171207.177379\n    test 1209 line 203 toEtm8.gamma: 69.237523\n    test 1210 line 203 toEtm8.scale: 1.573894\n    test 1211 line 203 toEtm8.lat: 37.423675\n    test 1212 line 203 toEtm8.lon: 76.947359\n    test 1213 line 204 toEtm8.easting: 592653.553821\n    test 1214 line 204 toEtm8.northing: 6125529.810052\n    test 1215 line 204 toEtm8.gamma: 7.600785\n    test 1216 line 204 toEtm8.scale: 1.003912\n    test 1217 line 204 toEtm8.lat: 54.922707\n    test 1218 line 204 toEtm8.lon: 9.260818\n    test 1219 line 205 toEtm8.easting: 693459.671821\n    test 1220 line 205 toEtm8.northing: 6943779.991032\n    test 1221 line 205 toEtm8.gamma: 11.787587\n    test 1222 line 205 toEtm8.scale: 1.005496\n    test 1223 line 205 toEtm8.lat: 61.982810\n    test 1224 line 205 toEtm8.lon: 13.299659\n    test 1225 line 206 toEtm8.easting: 1838956.187625\n    test 1226 line 206 toEtm8.northing: 3511959.612381\n    test 1227 line 206 toEtm8.gamma: 9.844313\n    test 1228 line 206 toEtm8.scale: 1.041603\n    test 1229 line 206 toEtm8.lat: 30.324214\n    test 1230 line 206 toEtm8.lon: 18.959769\n    test 1231 line 207 toEtm8.easting: 4460690.884597\n    test 1232 line 207 toEtm8.northing: 5541873.235403\n    test 1233 line 207 toEtm8.gamma: 35.768613\n    test 1234 line 207 toEtm8.scale: 1.254179\n    test 1235 line 207 toEtm8.lat: 37.629667\n    test 1236 line 207 toEtm8.lon: 49.649131\n    test 1237 line 208 toEtm8.easting: 2311168.998941\n    test 1238 line 208 toEtm8.northing: 9480561.869119\n    test 1239 line 208 toEtm8.gamma: 76.828257\n    test 1240 line 208 toEtm8.scale: 1.065556\n    test 1241 line 208 toEtm8.lat: 69.225574\n    test 1242 line 208 toEtm8.lon: 77.656135\n    test 1243 line 209 toEtm8.easting: 4111775.114451\n    test 1244 line 209 toEtm8.northing: 6509014.348792\n    test 1245 line 209 toEtm8.gamma: 43.052130\n    test 1246 line 209 toEtm8.scale: 1.214125\n    test 1247 line 209 toEtm8.lat: 44.698478\n    test 1248 line 209 toEtm8.lon: 52.979304\n    test 1249 line 210 toEtm8.easting: 75358.261962\n    test 1250 line 210 toEtm8.northing: 7711258.662251\n    test 1251 line 210 toEtm8.gamma: 1.806297\n    test 1252 line 210 toEtm8.scale: 0.999669\n    test 1253 line 210 toEtm8.lat: 69.499594\n    test 1254 line 210 toEtm8.lon: 1.928336\n    test 1255 line 211 toEtm8.easting: 8781885.229116\n    test 1256 line 211 toEtm8.northing: 9184776.452211\n    test 1257 line 211 toEtm8.gamma: 81.795539\n    test 1258 line 211 toEtm8.scale: 2.094908\n    test 1259 line 211 toEtm8.lat: 27.981364\n    test 1260 line 211 toEtm8.lon: 86.061113\n    test 1261 line 212 toEtm8.easting: 954378.415174\n    test 1262 line 212 toEtm8.northing: 7449110.669807\n    test 1263 line 212 toEtm8.gamma: 19.380657\n    test 1264 line 212 toEtm8.scale: 1.010768\n    test 1265 line 212 toEtm8.lat: 65.699839\n    test 1266 line 212 toEtm8.lon: 21.104725\n    test 1267 line 213 toEtm8.easting: 720971.793706\n    test 1268 line 213 toEtm8.northing: 5265195.121555\n    test 1269 line 213 toEtm8.gamma: 7.002995\n    test 1270 line 213 toEtm8.scale: 1.005995\n    test 1271 line 213 toEtm8.lat: 47.143648\n    test 1272 line 213 toEtm8.lon: 9.512189\n    test 1273 line 214 toEtm8.easting: 561561.493937\n    test 1274 line 214 toEtm8.northing: 989910.236221\n    test 1275 line 214 toEtm8.gamma: 0.793118\n    test 1276 line 214 toEtm8.scale: 1.003505\n    test 1277 line 214 toEtm8.lat: 8.920167\n    test 1278 line 214 toEtm8.lon: 5.101513\n    test 1279 line 215 toEtm8.easting: 3446829.634468\n    test 1280 line 215 toEtm8.northing: 9232868.155664\n    test 1281 line 215 toEtm8.gamma: 76.279075\n    test 1282 line 215 toEtm8.scale: 1.148263\n    test 1283 line 215 toEtm8.lat: 59.778971\n    test 1284 line 215 toEtm8.lon: 78.080322\n    test 1285 line 216 toEtm8.easting: 4048307.545909\n    test 1286 line 216 toEtm8.northing: 9800416.422998\n    test 1287 line 216 toEtm8.gamma: 86.843918\n    test 1288 line 216 toEtm8.scale: 1.206495\n    test 1289 line 216 toEtm8.lat: 55.865310\n    test 1290 line 216 toEtm8.lon: 87.384288\n    test 1291 line 217 toEtm8.easting: 8973188.480293\n    test 1292 line 217 toEtm8.northing: 7042230.087021\n    test 1293 line 217 toEtm8.gamma: 60.872456\n    test 1294 line 217 toEtm8.scale: 2.156098\n    test 1295 line 217 toEtm8.lat: 24.310973\n    test 1296 line 217 toEtm8.lon: 76.823777\n    test 1297 line 218 toEtm8.easting: 126314.191618\n    test 1298 line 218 toEtm8.northing: 396006.687921\n    test 1299 line 218 toEtm8.gamma: 0.071065\n    test 1300 line 218 toEtm8.scale: 0.999798\n    test 1301 line 218 toEtm8.lat: 3.582041\n    test 1302 line 218 toEtm8.lon: 1.137286\n    test 1303 line 219 toEtm8.easting: 5247652.345647\n    test 1304 line 219 toEtm8.northing: 8670513.359752\n    test 1305 line 219 toEtm8.gamma: 72.700498\n    test 1306 line 219 toEtm8.scale: 1.355272\n    test 1307 line 219 toEtm8.lat: 46.124233\n    test 1308 line 219 toEtm8.lon: 77.313118\n    test 1309 line 220 toEtm8.easting: 8103656.838119\n    test 1310 line 220 toEtm8.northing: 9469794.014737\n    test 1311 line 220 toEtm8.gamma: 84.490673\n    test 1312 line 220 toEtm8.scale: 1.912164\n    test 1313 line 220 toEtm8.lat: 31.171391\n    test 1314 line 220 toEtm8.lon: 87.104504\n    test 1315 line 221 toEtm8.easting: 6300112.758236\n    test 1316 line 221 toEtm8.northing: 93835.917364\n    test 1317 line 221 toEtm8.gamma: 0.644805\n    test 1318 line 221 toEtm8.scale: 1.534073\n    test 1319 line 221 toEtm8.lat: 0.553171\n    test 1320 line 221 toEtm8.lon: 49.117104\n    test 1321 line 222 toEtm8.easting: 3894813.593782\n    test 1322 line 222 toEtm8.northing: 4833832.341027\n    test 1323 line 222 toEtm8.gamma: 27.453298\n    test 1324 line 222 toEtm8.scale: 1.192135\n    test 1325 line 222 toEtm8.lat: 35.361587\n    test 1326 line 222 toEtm8.lon: 41.860599\n    test 1327 line 223 toEtm8.easting: 402511.346712\n    test 1328 line 223 toEtm8.northing: 3520621.561911\n    test 1329 line 223 toEtm8.gamma: 2.238474\n    test 1330 line 223 toEtm8.scale: 1.001599\n    test 1331 line 223 toEtm8.lat: 31.750314\n    test 1332 line 223 toEtm8.lon: 4.248167\n    test 1333 line 224 toEtm8.easting: 5357378.503148\n    test 1334 line 224 toEtm8.northing: 2772997.602234\n    test 1335 line 224 toEtm8.gamma: 17.823560\n    test 1336 line 224 toEtm8.scale: 1.376031\n    test 1337 line 224 toEtm8.lat: 17.924336\n    test 1338 line 224 toEtm8.lon: 46.096402\n    test 1339 line 225 toEtm8.easting: 2807553.985866\n    test 1340 line 225 toEtm8.northing: 8177847.980275\n    test 1341 line 225 toEtm8.gamma: 54.680045\n    test 1342 line 225 toEtm8.scale: 1.097531\n    test 1343 line 225 toEtm8.lat: 60.931488\n    test 1344 line 225 toEtm8.lon: 58.221214\n    test 1345 line 226 toEtm8.easting: 18289045.166501\n    test 1346 line 226 toEtm8.northing: 7792942.339604\n    test 1347 line 226 toEtm8.gamma: 73.216494\n    test 1348 line 226 toEtm8.scale: 8.098009\n    test 1349 line 226 toEtm8.lat: 5.358151\n    test 1350 line 226 toEtm8.lon: 87.556213\n    test 1351 line 227 toEtm8.easting: 8376822.459538\n    test 1352 line 227 toEtm8.northing: 8128174.623878\n    test 1353 line 227 toEtm8.gamma: 70.920117\n    test 1354 line 227 toEtm8.scale: 1.984873\n    test 1355 line 227 toEtm8.lat: 28.616673\n    test 1356 line 227 toEtm8.lon: 80.452426\n    test 1357 line 228 toEtm8.easting: 11898068.353272\n    test 1358 line 228 toEtm8.northing: 4772439.493697\n    test 1359 line 228 toEtm8.gamma: 42.613968\n    test 1360 line 228 toEtm8.scale: 3.314412\n    test 1361 line 228 toEtm8.lat: 11.709763\n    test 1362 line 228 toEtm8.lon: 76.760295\n    test 1363 line 229 toEtm8.easting: 10550946.939050\n    test 1364 line 229 toEtm8.northing: 3851968.815295\n    test 1365 line 229 toEtm8.gamma: 33.383025\n    test 1366 line 229 toEtm8.scale: 2.724754\n    test 1367 line 229 toEtm8.lat: 12.009498\n    test 1368 line 229 toEtm8.lon: 71.782351\n    test 1369 line 230 toEtm8.easting: 6828299.123607\n    test 1370 line 230 toEtm8.northing: 9394803.227463\n    test 1371 line 230 toEtm8.gamma: 83.181386\n    test 1372 line 230 toEtm8.scale: 1.624359\n    test 1373 line 230 toEtm8.lat: 37.629784\n    test 1374 line 230 toEtm8.lon: 85.795687\n    test 1375 line 231 toEtm8.easting: 11162550.334022\n    test 1376 line 231 toEtm8.northing: 2640267.279593\n    test 1377 line 231 toEtm8.gamma: 23.145404\n    test 1378 line 231 toEtm8.scale: 2.998408\n    test 1379 line 231 toEtm8.lat: 7.721128\n    test 1380 line 231 toEtm8.lon: 71.662731\n    test 1381 line 232 toEtm8.easting: 4411584.447941\n    test 1382 line 232 toEtm8.northing: 4956173.694407\n    test 1383 line 232 toEtm8.gamma: 30.713919\n    test 1384 line 232 toEtm8.scale: 1.248736\n    test 1385 line 232 toEtm8.lat: 34.295026\n    test 1386 line 232 toEtm8.lon: 46.442191\n    test 1387 line 233 toEtm8.easting: 672108.897905\n    test 1388 line 233 toEtm8.northing: 4751554.657054\n    test 1389 line 233 toEtm8.gamma: 5.569178\n    test 1390 line 233 toEtm8.scale: 1.005162\n    test 1391 line 233 toEtm8.lat: 42.622496\n    test 1392 line 233 toEtm8.lon: 8.193605\n    test 1393 line 234 toEtm8.easting: 5022964.290579\n    test 1394 line 234 toEtm8.northing: 6860418.199502\n    test 1395 line 234 toEtm8.gamma: 50.862230\n    test 1396 line 234 toEtm8.scale: 1.324925\n    test 1397 line 234 toEtm8.lat: 41.667780\n    test 1398 line 234 toEtm8.lon: 61.518288\n    test 1399 line 235 toEtm8.easting: 1669655.595207\n    test 1400 line 235 toEtm8.northing: 4152086.537021\n    test 1401 line 235 toEtm8.gamma: 11.110237\n    test 1402 line 235 toEtm8.scale: 1.034138\n    test 1403 line 235 toEtm8.lat: 36.060369\n    test 1404 line 235 toEtm8.lon: 18.444112\n    test 1405 line 236 toEtm8.easting: 6055876.729655\n    test 1406 line 236 toEtm8.northing: 4896837.552619\n    test 1407 line 236 toEtm8.gamma: 35.799747\n    test 1408 line 236 toEtm8.scale: 1.485967\n    test 1409 line 236 toEtm8.lat: 27.948091\n    test 1410 line 236 toEtm8.lon: 56.816429\n    test 1411 line 237 toEtm8.easting: 1209214.164379\n    test 1412 line 237 toEtm8.northing: 7266409.859178\n    test 1413 line 237 toEtm8.gamma: 22.319633\n    test 1414 line 237 toEtm8.scale: 1.017554\n    test 1415 line 237 toEtm8.lat: 63.386030\n    test 1416 line 237 toEtm8.lon: 24.662716\n    test 1417 line 238 toEtm8.easting: 5154564.559584\n    test 1418 line 238 toEtm8.northing: 698118.349975\n    test 1419 line 238 toEtm8.gamma: 4.242360\n    test 1420 line 238 toEtm8.scale: 1.347481\n    test 1421 line 238 toEtm8.lat: 4.680922\n    test 1422 line 238 toEtm8.lon: 42.114426\n    test 1423 line 239 toEtm8.easting: 2695149.806543\n    test 1424 line 239 toEtm8.northing: 8208197.765605\n    test 1425 line 239 toEtm8.gamma: 54.178615\n    test 1426 line 239 toEtm8.scale: 1.089730\n    test 1427 line 239 toEtm8.lat: 61.826625\n    test 1428 line 239 toEtm8.lon: 57.525096\n    test 1429 line 240 toEtm8.easting: 3394792.327820\n    test 1430 line 240 toEtm8.northing: 3217583.415552\n    test 1431 line 240 toEtm8.gamma: 15.165863\n    test 1432 line 240 toEtm8.scale: 1.145285\n    test 1433 line 240 toEtm8.lat: 25.104353\n    test 1434 line 240 toEtm8.lon: 32.528660\n    test 1435 line 241 toEtm8.easting: 1429160.966985\n    test 1436 line 241 toEtm8.northing: 8212685.362032\n    test 1437 line 241 toEtm8.gamma: 37.484904\n    test 1438 line 241 toEtm8.scale: 1.024676\n    test 1439 line 241 toEtm8.lat: 69.678351\n    test 1440 line 241 toEtm8.lon: 39.275513\n    test 1441 line 242 toEtm8.easting: 8343387.998065\n    test 1442 line 242 toEtm8.northing: 8885196.954578\n    test 1443 line 242 toEtm8.gamma: 78.561937\n    test 1444 line 242 toEtm8.scale: 1.974733\n    test 1445 line 242 toEtm8.lat: 29.671384\n    test 1446 line 242 toEtm8.lon: 84.196595\n    test 1447 line 243 toEtm8.easting: 1990722.928606\n    test 1448 line 243 toEtm8.northing: 7569202.065162\n    test 1449 line 243 toEtm8.gamma: 37.075276\n    test 1450 line 243 toEtm8.scale: 1.048486\n    test 1451 line 243 toEtm8.lat: 62.300208\n    test 1452 line 243 toEtm8.lon: 40.474051\n    test 1453 line 244 toEtm8.easting: 1554980.099559\n    test 1454 line 244 toEtm8.northing: 1449423.919586\n    test 1455 line 244 toEtm8.gamma: 3.188328\n    test 1456 line 244 toEtm8.scale: 1.029664\n    test 1457 line 244 toEtm8.lat: 12.721776\n    test 1458 line 244 toEtm8.lon: 14.190003\n    test 1459 line 245 toEtm8.easting: 785205.450196\n    test 1460 line 245 toEtm8.northing: 5575158.423096\n    test 1461 line 245 toEtm8.gamma: 8.388417\n    test 1462 line 245 toEtm8.scale: 1.007181\n    test 1463 line 245 toEtm8.lat: 49.811296\n    test 1464 line 245 toEtm8.lon: 10.925011\n    test 1465 line 246 toEtm8.easting: 3310405.988313\n    test 1466 line 246 toEtm8.northing: 5955022.233881\n    test 1467 line 246 toEtm8.gamma: 33.007587\n    test 1468 line 246 toEtm8.scale: 1.137141\n    test 1469 line 246 toEtm8.lat: 45.132680\n    test 1470 line 246 toEtm8.lon: 42.478624\n    test 1471 line 247 toEtm8.easting: 4733460.960666\n    test 1472 line 247 toEtm8.northing: 129034.889816\n    test 1473 line 247 toEtm8.gamma: 0.737551\n    test 1474 line 247 toEtm8.scale: 1.290439\n    test 1475 line 247 toEtm8.lat: 0.904279\n    test 1476 line 247 toEtm8.lon: 39.078412\n    test 1477 line 248 toEtm8.easting: 3322708.343909\n    test 1478 line 248 toEtm8.northing: 3864738.078742\n    test 1479 line 248 toEtm8.gamma: 18.472566\n    test 1480 line 248 toEtm8.scale: 1.138838\n    test 1481 line 248 toEtm8.lat: 30.163605\n    test 1482 line 248 toEtm8.lon: 33.577996\n    test 1483 line 249 toEtm8.easting: 8672864.417204\n    test 1484 line 249 toEtm8.northing: 8333465.983444\n    test 1485 line 249 toEtm8.gamma: 73.206273\n    test 1486 line 249 toEtm8.scale: 2.065441\n    test 1487 line 249 toEtm8.lat: 27.643244\n    test 1488 line 249 toEtm8.lon: 81.892859\n    test 1489 line 250 toEtm8.easting: 11126818.231196\n    test 1490 line 250 toEtm8.northing: 7618712.174991\n    test 1491 line 250 toEtm8.gamma: 67.887173\n    test 1492 line 250 toEtm8.scale: 2.922417\n    test 1493 line 250 toEtm8.lat: 18.201208\n    test 1494 line 250 toEtm8.lon: 82.434618\n    test 1495 line 251 toEtm8.easting: 8650100.981797\n    test 1496 line 251 toEtm8.northing: 9975084.168997\n    test 1497 line 251 toEtm8.gamma: 89.767446\n    test 1498 line 251 toEtm8.scale: 2.057289\n    test 1499 line 251 toEtm8.lat: 28.804576\n    test 1500 line 251 toEtm8.lon: 89.886072\n    test 1501 line 252 toEtm8.easting: 2212701.180192\n    test 1502 line 252 toEtm8.northing: 650348.100229\n    test 1503 line 252 toEtm8.gamma: 1.970441\n    test 1504 line 252 toEtm8.scale: 1.060830\n    test 1505 line 252 toEtm8.lat: 5.542998\n    test 1506 line 252 toEtm8.lon: 19.589578\n    test 1507 line 253 toEtm8.easting: 6890222.326618\n    test 1508 line 253 toEtm8.northing: 7506813.499547\n    test 1509 line 253 toEtm8.gamma: 62.684825\n    test 1510 line 253 toEtm8.scale: 1.638488\n    test 1511 line 253 toEtm8.lat: 34.237147\n    test 1512 line 253 toEtm8.lon: 73.678164\n    test 1513 line 254 toEtm8.easting: 6692260.067325\n    test 1514 line 254 toEtm8.northing: 4244174.008110\n    test 1515 line 254 toEtm8.gamma: 31.812920\n    test 1516 line 254 toEtm8.scale: 1.604640\n    test 1517 line 254 toEtm8.lat: 22.704949\n    test 1518 line 254 toEtm8.lon: 57.877010\n    test 1519 line 255 toEtm8.easting: 1225564.137190\n    test 1520 line 255 toEtm8.northing: 4778923.924144\n    test 1521 line 255 toEtm8.gamma: 10.083419\n    test 1522 line 255 toEtm8.scale: 1.018134\n    test 1523 line 255 toEtm8.lat: 42.192424\n    test 1524 line 255 toEtm8.lon: 14.828196\n    test 1525 line 256 toEtm8.easting: 12341116.154950\n    test 1526 line 256 toEtm8.northing: 5081855.521966\n    test 1527 line 256 toEtm8.gamma: 45.712546\n    test 1528 line 256 toEtm8.scale: 3.535170\n    test 1529 line 256 toEtm8.lat: 11.481151\n    test 1530 line 256 toEtm8.lon: 78.189236\n    test 1531 line 257 toEtm8.easting: 6673845.021771\n    test 1532 line 257 toEtm8.northing: 1177587.190565\n    test 1533 line 257 toEtm8.gamma: 8.389141\n    test 1534 line 257 toEtm8.scale: 1.605171\n    test 1535 line 257 toEtm8.lat: 6.609626\n    test 1536 line 257 toEtm8.lon: 51.735783\n    test 1537 line 258 toEtm8.easting: 6966354.690417\n    test 1538 line 258 toEtm8.northing: 3641802.005093\n    test 1539 line 258 toEtm8.gamma: 27.409636\n    test 1540 line 258 toEtm8.scale: 1.661469\n    test 1541 line 258 toEtm8.lat: 19.059369\n    test 1542 line 258 toEtm8.lon: 57.526439\n    test 1543 max forward error: 3.166497e-08\n    test 1544 max reverse error: 1.278977e-13\n    test 1545 Etm.scale0: 0.9996\n    test 1546 Etm.datum: WGS84\n    test 1547 Etm.datum.ellipsoid.KsOrder: 8\n    test 1548 WGS84.KsOrder: 8\n\n    all 1548 testEtmTMcoords.py tests passed, 1 skipped (pygeodesy 26.3.26 PyPy 7.3.17 Python 3.10.14 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 1.203 sec\nrunning /opt/local/bin/p....y3.10 -W default ~/PyGeodesy/test/testExactTMcoords.py\n# lazily imported pygeodesy.basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.DeprecationWarnings from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isint from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isLazy from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.issubclassof from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.iterNumpy2over from .iters by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.LazyImportError from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.karney by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.NN from .interns by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.normDMS from .dms by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.pairs from .streprs by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.printf from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.property_RO from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.typename from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.Ellipsoids from .ellipsoids by testTMcoords.py line 14\n# lazily imported pygeodesy.EPS from .constants by testTMcoords.py line 14\n# lazily imported pygeodesy.RangeError from .errors by testTMcoords.py line 14\n# lazily imported pygeodesy.etm by testExactTMcoords.py line 14\n# lazily imported pygeodesy.ExactTransverseMercator from .etm by testExactTMcoords.py line 14\n# lazily imported pygeodesy.LatLon_ from .points by testExactTMcoords.py line 14\n\n    testing testExactTMcoords.py 24.03.22 (module pygeodesy.etm 25.09.15) isLazy=3\n# lazily imported pygeodesy.elliptic by etm.py line 354\n    test 1 line 1 _ExactTM.easting: 1548706.791619\n    test 2 line 1 _ExactTM.northing: 8451449.198772\n    test 3 line 1 _ExactTM.gamma: 43.922790\n    test 4 line 1 _ExactTM.scale: 1.029060\n    test 5 line 1 _ExactTM.lat: 70.579277\n    test 6 line 1 _ExactTM.lon: 45.599420\n    test 7 line 2 _ExactTM.easting: 2624150.740929\n    test 8 line 2 _ExactTM.northing: 1204434.041605\n    test 9 line 2 _ExactTM.gamma: 4.292619\n    test 10 line 2 _ExactTM.scale: 1.086051\n    test 11 line 2 _ExactTM.lat: 10.018894\n    test 12 line 2 _ExactTM.lon: 23.313324\n    test 13 line 3 _ExactTM.easting: 9855841.232935\n    test 14 line 3 _ExactTM.northing: 6145496.115155\n    test 15 line 3 _ExactTM.gamma: 53.348315\n    test 16 line 3 _ExactTM.scale: 2.445098\n    test 17 line 3 _ExactTM.lat: 19.479896\n    test 18 line 3 _ExactTM.lon: 75.662049\n    test 19 line 4 _ExactTM.easting: 3206390.691996\n    test 20 line 4 _ExactTM.northing: 2650745.400406\n    test 21 line 4 _ExactTM.gamma: 11.666950\n    test 22 line 4 _ExactTM.scale: 1.129359\n    test 23 line 4 _ExactTM.lat: 21.072465\n    test 24 line 4 _ExactTM.lon: 29.828684\n    test 25 line 5 _ExactTM.easting: 4328154.083501\n    test 26 line 5 _ExactTM.northing: 749647.623690\n    test 27 line 5 _ExactTM.gamma: 4.024317\n    test 28 line 5 _ExactTM.scale: 1.240829\n    test 29 line 5 _ExactTM.lat: 5.458957\n    test 30 line 5 _ExactTM.lon: 36.385237\n    test 31 line 6 _ExactTM.easting: 847598.266514\n    test 32 line 6 _ExactTM.northing: 7947180.962440\n    test 33 line 6 _ExactTM.gamma: 21.639091\n    test 34 line 6 _ExactTM.scale: 1.008399\n    test 35 line 6 _ExactTM.lat: 70.175454\n    test 36 line 6 _ExactTM.lon: 22.865350\n    test 37 line 7 _ExactTM.easting: 2727657.337974\n    test 38 line 7 _ExactTM.northing: 8283916.696410\n    test 39 line 7 _ExactTM.gamma: 55.690909\n    test 40 line 7 _ExactTM.scale: 1.091942\n    test 41 line 7 _ExactTM.lat: 61.965605\n    test 42 line 7 _ExactTM.lon: 58.931371\n    test 43 line 8 _ExactTM.easting: 2331001.751890\n    test 44 line 8 _ExactTM.northing: 1313608.224751\n    test 45 line 8 _ExactTM.gamma: 4.214690\n    test 46 line 8 _ExactTM.scale: 1.067599\n    test 47 line 8 _ExactTM.lat: 11.116050\n    test 48 line 8 _ExactTM.lon: 20.901069\n    test 49 line 9 _ExactTM.easting: 6035557.239480\n    test 50 line 9 _ExactTM.northing: 5791770.791879\n    test 51 line 9 _ExactTM.gamma: 43.698170\n    test 52 line 9 _ExactTM.scale: 1.481260\n    test 53 line 9 _ExactTM.lat: 32.210543\n    test 54 line 9 _ExactTM.lon: 60.705849\n    test 55 line 10 _ExactTM.easting: 1064553.125852\n    test 56 line 10 _ExactTM.northing: 9417273.737208\n    test 57 line 10 _ExactTM.gamma: 61.100380\n    test 58 line 10 _ExactTM.scale: 1.013475\n    test 59 line 10 _ExactTM.lat: 79.187451\n    test 60 line 10 _ExactTM.lon: 61.532382\n    test 61 line 11 _ExactTM.easting: 1400137.116164\n    test 62 line 11 _ExactTM.northing: 9616907.017686\n    test 63 line 11 _ExactTM.gamma: 74.527087\n    test 64 line 11 _ExactTM.scale: 1.023640\n    test 65 line 11 _ExactTM.lat: 77.103759\n    test 66 line 11 _ExactTM.lon: 74.899105\n    test 67 line 12 _ExactTM.easting: 9860691.016626\n    test 68 line 12 _ExactTM.northing: 7433039.143328\n    test 69 line 12 _ExactTM.gamma: 65.357693\n    test 70 line 12 _ExactTM.scale: 2.438973\n    test 71 line 12 _ExactTM.lat: 21.889514\n    test 72 line 12 _ExactTM.lon: 80.019886\n    test 73 line 13 _ExactTM.easting: 8076501.833695\n    test 74 line 13 _ExactTM.northing: 8561614.174782\n    test 75 line 13 _ExactTM.gamma: 75.073393\n    test 76 line 13 _ExactTM.scale: 1.906202\n    test 77 line 13 _ExactTM.lat: 30.536296\n    test 78 line 13 _ExactTM.lon: 82.186178\n    test 79 line 14 _ExactTM.easting: 3335099.866623\n    test 80 line 14 _ExactTM.northing: 6740519.084015\n    test 81 line 14 _ExactTM.gamma: 40.611821\n    test 82 line 14 _ExactTM.scale: 1.139021\n    test 83 line 14 _ExactTM.lat: 49.990485\n    test 84 line 14 _ExactTM.lon: 48.203179\n    test 85 line 15 _ExactTM.easting: 12051574.928500\n    test 86 line 15 _ExactTM.northing: 6587213.051951\n    test 87 line 15 _ExactTM.gamma: 59.033237\n    test 88 line 15 _ExactTM.scale: 3.357469\n    test 89 line 15 _ExactTM.lat: 14.486312\n    test 90 line 15 _ExactTM.lon: 80.905137\n    test 91 line 16 _ExactTM.easting: 5387578.735298\n    test 92 line 16 _ExactTM.northing: 4111216.907168\n    test 93 line 16 _ExactTM.gamma: 27.574337\n    test 94 line 16 _ExactTM.scale: 1.379357\n    test 95 line 16 _ExactTM.lat: 25.936824\n    test 96 line 16 _ExactTM.lon: 49.913598\n    test 97 line 17 _ExactTM.easting: 2622214.380233\n    test 98 line 17 _ExactTM.northing: 8678923.984567\n    test 99 line 17 _ExactTM.gamma: 61.697275\n    test 100 line 17 _ExactTM.scale: 1.084810\n    test 101 line 17 _ExactTM.lat: 64.402196\n    test 102 line 17 _ExactTM.lon: 64.091395\n    test 103 line 18 _ExactTM.easting: 5068474.169633\n    test 104 line 18 _ExactTM.northing: 9492066.993709\n    test 105 line 18 _ExactTM.gamma: 83.156740\n    test 106 line 18 _ExactTM.scale: 1.329990\n    test 107 line 18 _ExactTM.lat: 48.451354\n    test 108 line 18 _ExactTM.lon: 84.856198\n    test 109 line 19 _ExactTM.easting: 738062.047779\n    test 110 line 19 _ExactTM.northing: 3031007.074116\n    test 111 line 19 _ExactTM.gamma: 3.416802\n    test 112 line 19 _ExactTM.scale: 1.006332\n    test 113 line 19 _ExactTM.lat: 27.203895\n    test 114 line 19 _ExactTM.lon: 7.440229\n    test 115 line 20 _ExactTM.easting: 1944413.834565\n    test 116 line 20 _ExactTM.northing: 9613299.224493\n    test 117 line 20 _ExactTM.gamma: 78.462831\n    test 118 line 20 _ExactTM.scale: 1.046134\n    test 119 line 20 _ExactTM.lat: 72.509000\n    test 120 line 20 _ExactTM.lon: 78.982283\n    test 121 line 21 _ExactTM.easting: 2114521.418406\n    test 122 line 21 _ExactTM.northing: 4954077.440098\n    test 123 line 21 _ExactTM.gamma: 17.571878\n    test 124 line 21 _ExactTM.scale: 1.055093\n    test 125 line 21 _ExactTM.lat: 41.824954\n    test 126 line 21 _ExactTM.lon: 25.392744\n    test 127 line 22 _ExactTM.easting: 620365.905090\n    test 128 line 22 _ExactTM.northing: 4755542.026562\n    test 129 line 22 _ExactTM.gamma: 5.152022\n    test 130 line 22 _ExactTM.scale: 1.004338\n    test 131 line 22 _ExactTM.lat: 42.701376\n    test 132 line 22 _ExactTM.lon: 7.572738\n    test 133 line 23 _ExactTM.easting: 263004.770989\n    test 134 line 23 _ExactTM.northing: 4493669.762451\n    test 135 line 23 _ExactTM.gamma: 2.020523\n    test 136 line 23 _ExactTM.scale: 1.000452\n    test 137 line 23 _ExactTM.lat: 40.552052\n    test 138 line 23 _ExactTM.lon: 3.106056\n    test 139 line 24 _ExactTM.easting: 3217221.739462\n    test 140 line 24 _ExactTM.northing: 437776.119161\n    test 141 line 24 _ExactTM.gamma: 1.848169\n    test 142 line 24 _ExactTM.scale: 1.130558\n    test 143 line 24 _ExactTM.lat: 3.501242\n    test 144 line 24 _ExactTM.lon: 27.806507\n    test 145 line 25 _ExactTM.easting: 14661142.444961\n    test 146 line 25 _ExactTM.northing: 7476100.824185\n    test 147 line 25 _ExactTM.gamma: 68.376669\n    test 148 line 25 _ExactTM.scale: 4.896650\n    test 149 line 25 _ExactTM.lat: 10.148715\n    test 150 line 25 _ExactTM.lon: 85.373768\n    test 151 line 26 _ExactTM.easting: 967777.158554\n    test 152 line 26 _ExactTM.northing: 6615684.266592\n    test 153 line 26 _ExactTM.gamma: 14.410044\n    test 154 line 26 _ExactTM.scale: 1.011100\n    test 155 line 26 _ExactTM.lat: 58.582623\n    test 156 line 26 _ExactTM.lon: 16.755558\n    test 157 line 27 _ExactTM.easting: 7558840.728461\n    test 158 line 27 _ExactTM.northing: 4144728.130764\n    test 159 line 27 _ExactTM.gamma: 32.557264\n    test 160 line 27 _ExactTM.scale: 1.791490\n    test 161 line 27 _ExactTM.lat: 19.793004\n    test 162 line 27 _ExactTM.lon: 61.746763\n    test 163 line 28 _ExactTM.easting: 1056008.314161\n    test 164 line 28 _ExactTM.northing: 9290799.692669\n    test 165 line 28 _ExactTM.gamma: 55.843278\n    test 166 line 28 _ExactTM.scale: 1.013253\n    test 167 line 28 _ExactTM.lat: 78.666776\n    test 168 line 28 _ExactTM.lon: 56.365355\n    test 169 line 29 _ExactTM.easting: 1943965.134687\n    test 170 line 29 _ExactTM.northing: 1389972.228690\n    test 171 line 29 _ExactTM.gamma: 3.774869\n    test 172 line 29 _ExactTM.scale: 1.046724\n    test 173 line 29 _ExactTM.lat: 11.998788\n    test 174 line 29 _ExactTM.lon: 17.597873\n    test 175 line 30 _ExactTM.easting: 5803077.072902\n    test 176 line 30 _ExactTM.northing: 5649957.943659\n    test 177 line 30 _ExactTM.gamma: 41.717943\n    test 178 line 30 _ExactTM.scale: 1.442572\n    test 179 line 30 _ExactTM.lat: 32.540378\n    test 180 line 30 _ExactTM.lon: 58.764613\n    test 181 line 31 _ExactTM.easting: 2928716.986009\n    test 182 line 31 _ExactTM.northing: 5731835.058317\n    test 183 line 31 _ExactTM.gamma: 28.538550\n    test 184 line 31 _ExactTM.scale: 1.106780\n    test 185 line 31 _ExactTM.lat: 45.160356\n    test 186 line 31 _ExactTM.lon: 37.465285\n    test 187 line 32 _ExactTM.easting: 326141.975756\n    test 188 line 32 _ExactTM.northing: 8881325.164543\n    test 189 line 32 _ExactTM.gamma: 16.111415\n    test 190 line 32 _ExactTM.scale: 1.000900\n    test 191 line 32 _ExactTM.lat: 79.584190\n    test 192 line 32 _ExactTM.lon: 16.367006\n    test 193 line 33 _ExactTM.easting: 3933015.267450\n    test 194 line 33 _ExactTM.northing: 7932373.909512\n    test 195 line 33 _ExactTM.gamma: 58.577424\n    test 196 line 33 _ExactTM.scale: 1.194811\n    test 197 line 33 _ExactTM.lat: 52.470664\n    test 198 line 33 _ExactTM.lon: 64.125580\n    test 199 line 34 _ExactTM.easting: 8598926.983213\n    test 200 line 34 _ExactTM.northing: 6214135.167503\n    test 201 line 34 _ExactTM.gamma: 52.612878\n    test 202 line 34 _ExactTM.scale: 2.051367\n    test 203 line 34 _ExactTM.lat: 23.702673\n    test 204 line 34 _ExactTM.lon: 72.630363\n    test 205 line 35 _ExactTM.easting: 6620553.333772\n    test 206 line 35 _ExactTM.northing: 6540527.122948\n    test 207 line 35 _ExactTM.gamma: 52.350140\n    test 208 line 35 _ExactTM.scale: 1.586614\n    test 209 line 35 _ExactTM.lat: 32.603520\n    test 210 line 35 _ExactTM.lon: 67.280123\n    test 211 line 36 _ExactTM.easting: 1515136.758292\n    test 212 line 36 _ExactTM.northing: 3858996.087537\n    test 213 line 36 _ExactTM.gamma: 9.225127\n    test 214 line 36 _ExactTM.scale: 1.028029\n    test 215 line 36 _ExactTM.lat: 33.776224\n    test 216 line 36 _ExactTM.lon: 16.280993\n    test 217 line 37 _ExactTM.easting: 479854.373445\n    test 218 line 37 _ExactTM.northing: 8980501.389896\n    test 219 line 37 _ExactTM.gamma: 25.021222\n    test 220 line 37 _ExactTM.scale: 1.002415\n    test 221 line 37 _ExactTM.lat: 79.932747\n    test 222 line 37 _ExactTM.lon: 25.363622\n    test 223 line 38 _ExactTM.easting: 5243446.564940\n    test 224 line 38 _ExactTM.northing: 140657.213960\n    test 225 line 38 _ExactTM.gamma: 0.862817\n    test 226 line 38 _ExactTM.scale: 1.360358\n    test 227 line 38 _ExactTM.lat: 0.935056\n    test 228 line 38 _ExactTM.lon: 42.538824\n    test 229 line 39 _ExactTM.easting: 12806457.923218\n    test 230 line 39 _ExactTM.northing: 7170118.684675\n    test 231 line 39 _ExactTM.gamma: 64.708921\n    test 232 line 39 _ExactTM.scale: 3.740588\n    test 233 line 39 _ExactTM.lat: 13.490862\n    test 234 line 39 _ExactTM.lon: 83.178380\n    test 235 line 40 _ExactTM.easting: 1202993.459158\n    test 236 line 40 _ExactTM.northing: 5557316.053599\n    test 237 line 40 _ExactTM.gamma: 12.579061\n    test 238 line 40 _ExactTM.scale: 1.017426\n    test 239 line 40 _ExactTM.lat: 48.979057\n    test 240 line 40 _ExactTM.lon: 16.474542\n    test 241 line 41 _ExactTM.easting: 1729088.710196\n    test 242 line 41 _ExactTM.northing: 7770874.289954\n    test 243 line 41 _ExactTM.gamma: 36.021783\n    test 244 line 41 _ExactTM.scale: 1.036397\n    test 245 line 41 _ExactTM.lat: 65.036016\n    test 246 line 41 _ExactTM.lon: 38.729091\n    test 247 line 42 _ExactTM.easting: 2437301.517425\n    test 248 line 42 _ExactTM.northing: 5539327.748318\n    test 249 line 42 _ExactTM.gamma: 23.461879\n    test 250 line 42 _ExactTM.scale: 1.073459\n    test 251 line 42 _ExactTM.lat: 45.510091\n    test 252 line 42 _ExactTM.lon: 31.303729\n    test 253 line 43 _ExactTM.easting: 3647186.135066\n    test 254 line 43 _ExactTM.northing: 2086412.330983\n    test 255 line 43 _ExactTM.gamma: 10.023991\n    test 256 line 43 _ExactTM.scale: 1.168707\n    test 257 line 43 _ExactTM.lat: 16.058010\n    test 258 line 43 _ExactTM.lon: 32.520026\n    test 259 line 44 _ExactTM.easting: 1818497.243556\n    test 260 line 44 _ExactTM.northing: 4275471.745057\n    test 261 line 44 _ExactTM.gamma: 12.499656\n    test 262 line 44 _ExactTM.scale: 1.040604\n    test 263 line 44 _ExactTM.lat: 36.845200\n    test 264 line 44 _ExactTM.lon: 20.282283\n    test 265 line 45 _ExactTM.easting: 3751304.113783\n    test 266 line 45 _ExactTM.northing: 5130454.001592\n    test 267 line 45 _ExactTM.gamma: 28.959707\n    test 268 line 45 _ExactTM.scale: 1.177681\n    test 269 line 45 _ExactTM.lat: 37.865481\n    test 270 line 45 _ExactTM.lon: 41.990402\n    test 271 line 46 _ExactTM.easting: 2616733.138544\n    test 272 line 46 _ExactTM.northing: 394644.463815\n    test 273 line 46 _ExactTM.gamma: 1.390425\n    test 274 line 46 _ExactTM.scale: 1.085595\n    test 275 line 46 _ExactTM.lat: 3.287272\n    test 276 line 46 _ExactTM.lon: 22.917604\n    test 277 line 47 _ExactTM.easting: 1756506.573942\n    test 278 line 47 _ExactTM.northing: 5570393.986394\n    test 279 line 47 _ExactTM.gamma: 17.897894\n    test 280 line 47 _ExactTM.scale: 1.037732\n    test 281 line 47 _ExactTM.lat: 47.813686\n    test 282 line 47 _ExactTM.lon: 23.545092\n    test 283 line 48 _ExactTM.easting: 8752461.894711\n    test 284 line 48 _ExactTM.northing: 6087728.152284\n    test 285 line 48 _ExactTM.gamma: 51.628465\n    test 286 line 48 _ExactTM.scale: 2.095465\n    test 287 line 48 _ExactTM.lat: 22.836853\n    test 288 line 48 _ExactTM.lon: 72.604385\n    test 289 line 49 _ExactTM.easting: 1309272.216432\n    test 290 line 49 _ExactTM.northing: 59520.028899\n    test 291 line 49 _ExactTM.gamma: 0.109069\n    test 292 line 49 _ExactTM.scale: 1.020897\n    test 293 line 49 _ExactTM.lat: 0.527262\n    test 294 line 49 _ExactTM.lon: 11.684209\n    test 295 line 50 _ExactTM.easting: 328652.277129\n    test 296 line 50 _ExactTM.northing: 2233043.958874\n    test 297 line 50 _ExactTM.gamma: 1.084863\n    test 298 line 50 _ExactTM.scale: 1.000935\n    test 299 line 50 _ExactTM.lat: 20.166742\n    test 300 line 50 _ExactTM.lon: 3.143948\n    test 301 line 51 _ExactTM.easting: 8637959.716447\n    test 302 line 51 _ExactTM.northing: 9190635.156031\n    test 303 line 51 _ExactTM.gamma: 81.802563\n    test 304 line 51 _ExactTM.scale: 2.054329\n    test 305 line 51 _ExactTM.lat: 28.604629\n    test 306 line 51 _ExactTM.lon: 85.988721\n    test 307 line 52 _ExactTM.easting: 8548521.455147\n    test 308 line 52 _ExactTM.northing: 9172410.943282\n    test 309 line 52 _ExactTM.gamma: 81.583928\n    test 310 line 52 _ExactTM.scale: 2.029641\n    test 311 line 52 _ExactTM.lat: 28.984048\n    test 312 line 52 _ExactTM.lon: 85.833448\n    test 313 line 53 _ExactTM.easting: 796987.281104\n    test 314 line 53 _ExactTM.northing: 7677446.357675\n    test 315 line 53 _ExactTM.gamma: 18.084472\n    test 316 line 53 _ExactTM.scale: 1.007381\n    test 317 line 53 _ExactTM.lat: 68.071020\n    test 318 line 53 _ExactTM.lon: 19.392823\n    test 319 line 54 _ExactTM.easting: 3291036.496762\n    test 320 line 54 _ExactTM.northing: 9513199.600666\n    test 321 line 54 _ExactTM.gamma: 80.890254\n    test 322 line 54 _ExactTM.scale: 1.134826\n    test 323 line 54 _ExactTM.lat: 61.416576\n    test 324 line 54 _ExactTM.lon: 81.981611\n    test 325 line 55 _ExactTM.easting: 7087225.330906\n    test 326 line 55 _ExactTM.northing: 8382823.855822\n    test 327 line 55 _ExactTM.gamma: 72.253756\n    test 328 line 55 _ExactTM.scale: 1.678070\n    test 329 line 55 _ExactTM.lat: 35.074753\n    test 330 line 55 _ExactTM.lon: 79.496003\n    test 331 line 56 _ExactTM.easting: 5090358.125724\n    test 332 line 56 _ExactTM.northing: 4318294.133489\n    test 333 line 56 _ExactTM.gamma: 28.266280\n    test 334 line 56 _ExactTM.scale: 1.336264\n    test 335 line 56 _ExactTM.lat: 28.078790\n    test 336 line 56 _ExactTM.lon: 48.684350\n\n    test skipped (1): line 57 _ExactTM.'84.986930137199 2.067177857261 20163.0752214330146 9438635.9888499043815 2.059277291707588222 .99960496589466017622'\n    test 337 line 58 _ExactTM.easting: 3447670.550785\n    test 338 line 58 _ExactTM.northing: 3680238.888223\n    test 339 line 58 _ExactTM.gamma: 17.934948\n    test 340 line 58 _ExactTM.scale: 1.149831\n    test 341 line 58 _ExactTM.lat: 28.473948\n    test 342 line 58 _ExactTM.lon: 34.127306\n    test 343 line 59 _ExactTM.easting: 3396522.906798\n    test 344 line 59 _ExactTM.northing: 8093659.687593\n    test 345 line 59 _ExactTM.gamma: 57.747117\n    test 346 line 59 _ExactTM.scale: 1.144006\n    test 347 line 59 _ExactTM.lat: 56.629354\n    test 348 line 59 _ExactTM.lon: 62.196474\n    test 349 line 60 _ExactTM.easting: 11249894.100784\n    test 350 line 60 _ExactTM.northing: 1619226.506299\n    test 351 line 60 _ExactTM.gamma: 14.210358\n    test 352 line 60 _ExactTM.scale: 3.048347\n    test 353 line 60 _ExactTM.lat: 4.747762\n    test 354 line 60 _ExactTM.lon: 70.932555\n    test 355 line 61 _ExactTM.easting: 6808805.230950\n    test 356 line 61 _ExactTM.northing: 8044779.777369\n    test 357 line 61 _ExactTM.gamma: 68.242008\n    test 358 line 61 _ExactTM.scale: 1.621464\n    test 359 line 61 _ExactTM.lat: 35.882113\n    test 360 line 61 _ExactTM.lon: 76.741849\n    test 361 line 62 _ExactTM.easting: 2306021.556506\n    test 362 line 62 _ExactTM.northing: 757191.592866\n    test 363 line 62 _ExactTM.gamma: 2.385686\n    test 364 line 62 _ExactTM.scale: 1.066159\n    test 365 line 62 _ExactTM.lat: 6.420705\n    test 366 line 62 _ExactTM.lon: 20.416028\n    test 367 line 63 _ExactTM.easting: 1547406.313862\n    test 368 line 63 _ExactTM.northing: 6048712.751824\n    test 369 line 63 _ExactTM.gamma: 18.474372\n    test 370 line 63 _ExactTM.scale: 1.029123\n    test 371 line 63 _ExactTM.lat: 52.335248\n    test 372 line 63 _ExactTM.lon: 22.879294\n    test 373 line 64 _ExactTM.easting: 2430467.650383\n    test 374 line 64 _ExactTM.northing: 7557167.613972\n    test 375 line 64 _ExactTM.gamma: 42.110021\n    test 376 line 64 _ExactTM.scale: 1.072759\n    test 377 line 64 _ExactTM.lat: 59.846391\n    test 378 line 64 _ExactTM.lon: 46.262536\n    test 379 line 65 _ExactTM.easting: 2334053.905830\n    test 380 line 65 _ExactTM.northing: 1948076.966582\n    test 381 line 65 _ExactTM.gamma: 6.353185\n    test 382 line 65 _ExactTM.scale: 1.067733\n    test 383 line 65 _ExactTM.lat: 16.461790\n    test 384 line 65 _ExactTM.lon: 21.433269\n    test 385 line 66 _ExactTM.easting: 5564175.186737\n    test 386 line 66 _ExactTM.northing: 1836851.660412\n    test 387 line 66 _ExactTM.gamma: 11.870682\n    test 388 line 66 _ExactTM.scale: 1.408265\n    test 389 line 66 _ExactTM.lat: 11.707905\n    test 390 line 66 _ExactTM.lon: 45.827075\n    test 391 line 67 _ExactTM.easting: 6118505.590359\n    test 392 line 67 _ExactTM.northing: 7631684.552421\n    test 393 line 67 _ExactTM.gamma: 62.477323\n    test 394 line 67 _ExactTM.scale: 1.493420\n    test 395 line 67 _ExactTM.lat: 38.519075\n    test 396 line 67 _ExactTM.lon: 71.935918\n    test 397 line 68 _ExactTM.easting: 7365359.294665\n    test 398 line 68 _ExactTM.northing: 8818194.451531\n    test 399 line 68 _ExactTM.gamma: 77.207042\n    test 400 line 68 _ExactTM.scale: 1.737639\n    test 401 line 68 _ExactTM.lat: 34.264007\n    test 402 line 68 _ExactTM.lon: 82.647878\n    test 403 line 69 _ExactTM.easting: 36187.342415\n    test 404 line 69 _ExactTM.northing: 2142565.324802\n    test 405 line 69 _ExactTM.gamma: 0.114334\n    test 406 line 69 _ExactTM.scale: 0.999616\n    test 407 line 69 _ExactTM.lat: 19.376880\n    test 408 line 69 _ExactTM.lon: 0.344605\n    test 409 line 70 _ExactTM.easting: 2380328.546851\n    test 410 line 70 _ExactTM.northing: 8440109.872384\n    test 411 line 70 _ExactTM.gamma: 55.076067\n    test 412 line 70 _ExactTM.scale: 1.069658\n    test 413 line 70 _ExactTM.lat: 65.075805\n    test 414 line 70 _ExactTM.lon: 57.653438\n    test 415 line 71 _ExactTM.easting: 582511.608826\n    test 416 line 71 _ExactTM.northing: 8876047.217071\n    test 417 line 71 _ExactTM.gamma: 27.133300\n    test 418 line 71 _ExactTM.scale: 1.003749\n    test 419 line 71 _ExactTM.lat: 78.691870\n    test 420 line 71 _ExactTM.lon: 27.591736\n    test 421 line 72 _ExactTM.easting: 899441.350477\n    test 422 line 72 _ExactTM.northing: 4582046.430516\n    test 423 line 72 _ExactTM.gamma: 7.031211\n    test 424 line 72 _ExactTM.scale: 1.009573\n    test 425 line 72 _ExactTM.lat: 40.893022\n    test 426 line 72 _ExactTM.lon: 10.668804\n    test 427 line 73 _ExactTM.easting: 5022485.124337\n    test 428 line 73 _ExactTM.northing: 9741774.933721\n    test 429 line 73 _ExactTM.gamma: 86.505947\n    test 430 line 73 _ExactTM.scale: 1.323700\n    test 431 line 73 _ExactTM.lat: 48.914279\n    test 432 line 73 _ExactTM.lon: 87.359268\n    test 433 line 74 _ExactTM.easting: 6701004.587204\n    test 434 line 74 _ExactTM.northing: 2954368.258231\n    test 435 line 74 _ExactTM.gamma: 21.560153\n    test 436 line 74 _ExactTM.scale: 1.608554\n    test 437 line 74 _ExactTM.lat: 16.208377\n    test 438 line 74 _ExactTM.lon: 54.494282\n    test 439 line 75 _ExactTM.easting: 454986.218897\n    test 440 line 75 _ExactTM.northing: 4885087.887884\n    test 441 line 75 _ExactTM.gamma: 3.945648\n    test 442 line 75 _ExactTM.scale: 1.002147\n    test 443 line 75 _ExactTM.lat: 43.977936\n    test 444 line 75 _ExactTM.lon: 5.672541\n    test 445 line 76 _ExactTM.easting: 8903956.140311\n    test 446 line 76 _ExactTM.northing: 8470608.577482\n    test 447 line 76 _ExactTM.gamma: 74.723116\n    test 448 line 76 _ExactTM.scale: 2.131311\n    test 449 line 76 _ExactTM.lat: 26.850861\n    test 450 line 76 _ExactTM.lon: 82.834480\n    test 451 line 77 _ExactTM.easting: 1547627.594741\n    test 452 line 77 _ExactTM.northing: 6036584.538347\n    test 453 line 77 _ExactTM.gamma: 18.407629\n    test 454 line 77 _ExactTM.scale: 1.029132\n    test 455 line 77 _ExactTM.lat: 52.234165\n    test 456 line 77 _ExactTM.lon: 22.827655\n    test 457 line 78 _ExactTM.easting: 5221488.778597\n    test 458 line 78 _ExactTM.northing: 1762592.044392\n    test 459 line 78 _ExactTM.gamma: 10.927880\n    test 460 line 78 _ExactTM.scale: 1.356721\n    test 461 line 78 _ExactTM.lat: 11.674646\n    test 462 line 78 _ExactTM.lon: 43.500147\n    test 463 line 79 _ExactTM.easting: 4880570.297161\n    test 464 line 79 _ExactTM.northing: 3325433.988867\n    test 465 line 79 _ExactTM.gamma: 20.469862\n    test 466 line 79 _ExactTM.scale: 1.308476\n    test 467 line 79 _ExactTM.lat: 22.492753\n    test 468 line 79 _ExactTM.lon: 44.179153\n    test 469 line 80 _ExactTM.easting: 23930680.082694\n    test 470 line 80 _ExactTM.northing: 7491462.099038\n    test 471 line 80 _ExactTM.gamma: 75.937628\n    test 472 line 80 _ExactTM.scale: 15.556365\n    test 473 line 80 _ExactTM.lat: 0.910999\n    test 474 line 80 _ExactTM.lon: 88.548823\n    test 475 line 81 _ExactTM.easting: 71519.450458\n    test 476 line 81 _ExactTM.northing: 3654740.444852\n    test 477 line 81 _ExactTM.gamma: 0.417448\n    test 478 line 81 _ExactTM.scale: 0.999663\n    test 479 line 81 _ExactTM.lat: 33.028802\n    test 480 line 81 _ExactTM.lon: 0.765843\n    test 481 line 82 _ExactTM.easting: 4152797.795220\n    test 482 line 82 _ExactTM.northing: 7823098.502751\n    test 483 line 82 _ExactTM.gamma: 58.238901\n    test 484 line 82 _ExactTM.scale: 1.218052\n    test 485 line 82 _ExactTM.lat: 50.649195\n    test 486 line 82 _ExactTM.lon: 64.389076\n    test 487 line 83 _ExactTM.easting: 2926725.707639\n    test 488 line 83 _ExactTM.northing: 7904918.072844\n    test 489 line 83 _ExactTM.gamma: 51.592748\n    test 490 line 83 _ExactTM.scale: 1.106206\n    test 491 line 83 _ExactTM.lat: 58.820640\n    test 492 line 83 _ExactTM.lon: 55.841048\n    test 493 line 84 _ExactTM.easting: 1325509.113869\n    test 494 line 84 _ExactTM.northing: 9675214.948213\n    test 495 line 84 _ExactTM.gamma: 76.116213\n    test 496 line 84 _ExactTM.scale: 1.021136\n    test 497 line 84 _ExactTM.lat: 77.865762\n    test 498 line 84 _ExactTM.lon: 76.414618\n    test 499 line 85 _ExactTM.easting: 3045296.448926\n    test 500 line 85 _ExactTM.northing: 542153.443280\n    test 501 line 85 _ExactTM.gamma: 2.185095\n    test 502 line 85 _ExactTM.scale: 1.116664\n    test 503 line 85 _ExactTM.lat: 4.389639\n    test 504 line 85 _ExactTM.lon: 26.458976\n    test 505 line 86 _ExactTM.easting: 11843870.887518\n    test 506 line 86 _ExactTM.northing: 5912803.073343\n    test 507 line 86 _ExactTM.gamma: 52.814259\n    test 508 line 86 _ExactTM.scale: 3.267256\n    test 509 line 86 _ExactTM.lat: 13.924448\n    test 510 line 86 _ExactTM.lon: 79.017873\n    test 511 line 87 _ExactTM.easting: 8891099.704936\n    test 512 line 87 _ExactTM.northing: 162160.142227\n    test 513 line 87 _ExactTM.gamma: 1.312094\n    test 514 line 87 _ExactTM.scale: 2.157363\n    test 515 line 87 _ExactTM.lat: 0.679713\n    test 516 line 87 _ExactTM.lon: 62.036792\n    test 517 line 88 _ExactTM.easting: 4784814.214449\n    test 518 line 88 _ExactTM.northing: 2984497.432580\n    test 519 line 88 _ExactTM.gamma: 17.946545\n    test 520 line 88 _ExactTM.scale: 1.296116\n    test 521 line 88 _ExactTM.lat: 20.478281\n    test 522 line 88 _ExactTM.lon: 42.678234\n    test 523 line 89 _ExactTM.easting: 1772074.682154\n    test 524 line 89 _ExactTM.northing: 9491552.560143\n    test 525 line 89 _ExactTM.gamma: 73.634830\n    test 526 line 89 _ExactTM.scale: 1.038202\n    test 527 line 89 _ExactTM.lat: 73.695703\n    test 528 line 89 _ExactTM.lon: 74.259097\n    test 529 line 90 _ExactTM.easting: 1907649.782106\n    test 530 line 90 _ExactTM.northing: 6994232.429379\n    test 531 line 90 _ExactTM.gamma: 29.718929\n    test 532 line 90 _ExactTM.scale: 1.044503\n    test 533 line 90 _ExactTM.lat: 58.569370\n    test 534 line 90 _ExactTM.lon: 33.777549\n    test 535 line 91 _ExactTM.easting: 2084423.818962\n    test 536 line 91 _ExactTM.northing: 2211816.035619\n    test 537 line 91 _ExactTM.gamma: 6.556448\n    test 538 line 91 _ExactTM.scale: 1.053793\n    test 539 line 91 _ExactTM.lat: 18.933881\n    test 540 line 91 _ExactTM.lon: 19.492695\n    test 541 line 92 _ExactTM.easting: 1064373.671729\n    test 542 line 92 _ExactTM.northing: 7812482.547461\n    test 543 line 92 _ExactTM.gamma: 24.874124\n    test 544 line 92 _ExactTM.scale: 1.013490\n    test 545 line 92 _ExactTM.lat: 68.317934\n    test 546 line 92 _ExactTM.lon: 26.515687\n    test 547 line 93 _ExactTM.easting: 4770385.479297\n    test 548 line 93 _ExactTM.northing: 9734318.902980\n    test 549 line 93 _ExactTM.gamma: 86.273119\n    test 550 line 93 _ExactTM.scale: 1.290553\n    test 551 line 93 _ExactTM.lat: 50.641941\n    test 552 line 93 _ExactTM.lon: 87.111557\n    test 553 line 94 _ExactTM.easting: 6398096.677297\n    test 554 line 94 _ExactTM.northing: 4410894.752104\n    test 555 line 94 _ExactTM.gamma: 32.558023\n    test 556 line 94 _ExactTM.scale: 1.548004\n    test 557 line 94 _ExactTM.lat: 24.411298\n    test 558 line 94 _ExactTM.lon: 56.881823\n    test 559 line 95 _ExactTM.easting: 3138623.300415\n    test 560 line 95 _ExactTM.northing: 3082960.600798\n    test 561 line 95 _ExactTM.gamma: 13.557672\n    test 562 line 95 _ExactTM.scale: 1.123724\n    test 563 line 95 _ExactTM.lat: 24.571871\n    test 564 line 95 _ExactTM.lon: 30.073097\n    test 565 line 96 _ExactTM.easting: 2748325.794651\n    test 566 line 96 _ExactTM.northing: 4202811.912668\n    test 567 line 96 _ExactTM.gamma: 17.578706\n    test 568 line 96 _ExactTM.scale: 1.094102\n    test 569 line 96 _ExactTM.lat: 34.202576\n    test 570 line 96 _ExactTM.lon: 29.383166\n    test 571 line 97 _ExactTM.easting: 6677830.630367\n    test 572 line 97 _ExactTM.northing: 5350071.837395\n    test 573 line 97 _ExactTM.gamma: 41.306641\n    test 574 line 97 _ExactTM.scale: 1.599774\n    test 575 line 97 _ExactTM.lat: 27.756285\n    test 576 line 97 _ExactTM.lon: 61.881905\n    test 577 line 98 _ExactTM.easting: 5941536.667431\n    test 578 line 98 _ExactTM.northing: 3293112.175140\n    test 579 line 98 _ExactTM.gamma: 22.752845\n    test 580 line 98 _ExactTM.scale: 1.468473\n    test 581 line 98 _ExactTM.lat: 19.742270\n    test 582 line 98 _ExactTM.lon: 50.957821\n    test 583 line 99 _ExactTM.easting: 3152481.792567\n    test 584 line 99 _ExactTM.northing: 5903048.837978\n    test 585 line 99 _ExactTM.gamma: 31.494606\n    test 586 line 99 _ExactTM.scale: 1.124085\n    test 587 line 99 _ExactTM.lat: 45.453582\n    test 588 line 99 _ExactTM.lon: 40.659833\n    test 589 line 100 _ExactTM.easting: 10460475.897730\n    test 590 line 100 _ExactTM.northing: 2553463.624391\n    test 591 line 100 _ExactTM.gamma: 21.965869\n    test 592 line 100 _ExactTM.scale: 2.700296\n    test 593 line 100 _ExactTM.lat: 8.322144\n    test 594 line 100 _ExactTM.lon: 69.488157\n    test 595 line 101 _ExactTM.easting: 1964010.778021\n    test 596 line 101 _ExactTM.northing: 5634042.923056\n    test 597 line 101 _ExactTM.gamma: 20.117800\n    test 598 line 101 _ExactTM.scale: 1.047344\n    test 599 line 101 _ExactTM.lat: 47.749831\n    test 600 line 101 _ExactTM.lon: 26.322002\n    test 601 line 102 _ExactTM.easting: 2065306.424934\n    test 602 line 102 _ExactTM.northing: 2135008.468651\n    test 603 line 102 _ExactTM.gamma: 6.258981\n    test 604 line 102 _ExactTM.scale: 1.052800\n    test 605 line 102 _ExactTM.lat: 18.297493\n    test 606 line 102 _ExactTM.lon: 19.244669\n    test 607 line 103 _ExactTM.easting: 5127738.132976\n    test 608 line 103 _ExactTM.northing: 6793804.304411\n    test 609 line 103 _ExactTM.gamma: 50.557915\n    test 610 line 103 _ExactTM.scale: 1.339412\n    test 611 line 103 _ExactTM.lat: 40.834541\n    test 612 line 103 _ExactTM.lon: 61.650750\n    test 613 line 104 _ExactTM.easting: 8385525.148166\n    test 614 line 104 _ExactTM.northing: 6924932.344306\n    test 615 line 104 _ExactTM.gamma: 59.087561\n    test 616 line 104 _ExactTM.scale: 1.990364\n    test 617 line 104 _ExactTM.lat: 26.273247\n    test 618 line 104 _ExactTM.lon: 74.926694\n    test 619 line 105 _ExactTM.easting: 2297510.791909\n    test 620 line 105 _ExactTM.northing: 2805666.962834\n    test 621 line 105 _ExactTM.gamma: 9.301553\n    test 622 line 105 _ExactTM.scale: 1.065508\n    test 623 line 105 _ExactTM.lat: 23.698347\n    test 624 line 105 _ExactTM.lon: 22.155657\n    test 625 line 106 _ExactTM.easting: 13749544.917635\n    test 626 line 106 _ExactTM.northing: 8288728.384650\n    test 627 line 106 _ExactTM.gamma: 75.033970\n    test 628 line 106 _ExactTM.scale: 4.270588\n    test 629 line 106 _ExactTM.lat: 12.364113\n    test 630 line 106 _ExactTM.lon: 86.348578\n    test 631 line 107 _ExactTM.easting: 317518.455546\n    test 632 line 107 _ExactTM.northing: 1097517.583745\n    test 633 line 107 _ExactTM.gamma: 0.499004\n    test 634 line 107 _ExactTM.scale: 1.000848\n    test 635 line 107 _ExactTM.lat: 9.916091\n    test 636 line 107 _ExactTM.lon: 2.895277\n    test 637 line 108 _ExactTM.easting: 3856035.184888\n    test 638 line 108 _ExactTM.northing: 9141364.450290\n    test 639 line 108 _ExactTM.gamma: 75.972763\n    test 640 line 108 _ExactTM.scale: 1.186786\n    test 641 line 108 _ExactTM.lat: 56.553876\n    test 642 line 108 _ExactTM.lon: 78.215077\n    test 643 line 109 _ExactTM.easting: 1457484.942823\n    test 644 line 109 _ExactTM.northing: 9385297.101973\n    test 645 line 109 _ExactTM.gamma: 66.784662\n    test 646 line 109 _ExactTM.scale: 1.025660\n    test 647 line 109 _ExactTM.lat: 75.957631\n    test 648 line 109 _ExactTM.lon: 67.407383\n    test 649 line 110 _ExactTM.easting: 1304934.901841\n    test 650 line 110 _ExactTM.northing: 3604655.155715\n    test 651 line 110 _ExactTM.gamma: 7.343989\n    test 652 line 110 _ExactTM.scale: 1.020672\n    test 653 line 110 _ExactTM.lat: 31.826531\n    test 654 line 110 _ExactTM.lon: 13.731050\n    test 655 line 111 _ExactTM.easting: 1399093.491792\n    test 656 line 111 _ExactTM.northing: 8314607.120342\n    test 657 line 111 _ExactTM.gamma: 38.630161\n    test 658 line 111 _ExactTM.scale: 1.023625\n    test 659 line 111 _ExactTM.lat: 70.542985\n    test 660 line 111 _ExactTM.lon: 40.282055\n    test 661 line 112 _ExactTM.easting: 356983.618540\n    test 662 line 112 _ExactTM.northing: 4282309.048994\n    test 663 line 112 _ExactTM.gamma: 2.561485\n    test 664 line 112 _ExactTM.scale: 1.001170\n    test 665 line 112 _ExactTM.lat: 38.617487\n    test 666 line 112 _ExactTM.lon: 4.099838\n    test 667 line 113 _ExactTM.easting: 9952911.325091\n    test 668 line 113 _ExactTM.northing: 1510288.212229\n    test 669 line 113 _ExactTM.gamma: 12.752154\n    test 670 line 113 _ExactTM.scale: 2.511357\n    test 671 line 113 _ExactTM.lat: 5.389447\n    test 672 line 113 _ExactTM.lon: 66.729612\n    test 673 line 114 _ExactTM.easting: 6367592.504007\n    test 674 line 114 _ExactTM.northing: 1200437.077672\n    test 675 line 114 _ExactTM.gamma: 8.338041\n    test 676 line 114 _ExactTM.scale: 1.546210\n    test 677 line 114 _ExactTM.lat: 6.995168\n    test 678 line 114 _ExactTM.lon: 50.014763\n    test 679 line 115 _ExactTM.easting: 4391263.676460\n    test 680 line 115 _ExactTM.northing: 6325455.989408\n    test 681 line 115 _ExactTM.gamma: 42.653541\n    test 682 line 115 _ExactTM.scale: 1.245560\n    test 683 line 115 _ExactTM.lat: 42.321894\n    test 684 line 115 _ExactTM.lon: 53.784040\n    test 685 line 116 _ExactTM.easting: 6209880.527527\n    test 686 line 116 _ExactTM.northing: 2154754.449747\n    test 687 line 116 _ExactTM.gamma: 14.919512\n    test 688 line 116 _ExactTM.scale: 1.516560\n    test 689 line 116 _ExactTM.lat: 12.698515\n    test 690 line 116 _ExactTM.lon: 50.242047\n    test 691 line 117 _ExactTM.easting: 1507053.688772\n    test 692 line 117 _ExactTM.northing: 6261383.513280\n    test 693 line 117 _ExactTM.gamma: 19.280373\n    test 694 line 117 _ExactTM.scale: 1.027584\n    test 695 line 117 _ExactTM.lat: 54.207636\n    test 696 line 117 _ExactTM.lon: 23.325731\n    test 697 line 118 _ExactTM.easting: 8332725.003777\n    test 698 line 118 _ExactTM.northing: 3002712.329753\n    test 699 line 118 _ExactTM.gamma: 24.059212\n    test 700 line 118 _ExactTM.scale: 1.990450\n    test 701 line 118 _ExactTM.lat: 13.224787\n    test 702 line 118 _ExactTM.lon: 62.426698\n    test 703 line 119 _ExactTM.easting: 3958910.085235\n    test 704 line 119 _ExactTM.northing: 3462284.926102\n    test 705 line 119 _ExactTM.gamma: 18.546398\n    test 706 line 119 _ExactTM.scale: 1.199351\n    test 707 line 119 _ExactTM.lat: 25.650282\n    test 708 line 119 _ExactTM.lon: 37.710391\n    test 709 line 120 _ExactTM.easting: 10452892.282083\n    test 710 line 120 _ExactTM.northing: 8000059.605114\n    test 711 line 120 _ExactTM.gamma: 71.075240\n    test 712 line 120 _ExactTM.scale: 2.650111\n    test 713 line 120 _ExactTM.lat: 20.684773\n    test 714 line 120 _ExactTM.lon: 82.849734\n    test 715 line 121 _ExactTM.easting: 496148.253731\n    test 716 line 121 _ExactTM.northing: 6388503.365043\n    test 717 line 121 _ExactTM.gamma: 6.970955\n    test 718 line 121 _ExactTM.scale: 1.002620\n    test 719 line 121 _ExactTM.lat: 57.367533\n    test 720 line 121 _ExactTM.lon: 8.260866\n    test 721 line 122 _ExactTM.easting: 7375792.085850\n    test 722 line 122 _ExactTM.northing: 5544624.072155\n    test 723 line 122 _ExactTM.gamma: 44.510851\n    test 724 line 122 _ExactTM.scale: 1.745898\n    test 725 line 122 _ExactTM.lat: 25.958757\n    test 726 line 122 _ExactTM.lon: 65.760477\n    test 727 line 123 _ExactTM.easting: 2826258.041979\n    test 728 line 123 _ExactTM.northing: 5167759.816959\n    test 729 line 123 _ExactTM.gamma: 23.783897\n    test 730 line 123 _ExactTM.scale: 1.099415\n    test 731 line 123 _ExactTM.lat: 41.395848\n    test 732 line 123 _ExactTM.lon: 33.661790\n    test 733 line 124 _ExactTM.easting: 3958563.378851\n    test 734 line 124 _ExactTM.northing: 8499923.231243\n    test 735 line 124 _ExactTM.gamma: 66.570945\n    test 736 line 124 _ExactTM.scale: 1.197296\n    test 737 line 124 _ExactTM.lat: 54.266617\n    test 738 line 124 _ExactTM.lon: 70.602199\n    test 739 line 125 _ExactTM.easting: 4408189.533462\n    test 740 line 125 _ExactTM.northing: 8046312.003642\n    test 741 line 125 _ExactTM.gamma: 62.216959\n    test 742 line 125 _ExactTM.scale: 1.246750\n    test 743 line 125 _ExactTM.lat: 49.840393\n    test 744 line 125 _ExactTM.lon: 68.036728\n    test 745 line 126 _ExactTM.easting: 3629225.627512\n    test 746 line 126 _ExactTM.northing: 6371258.454645\n    test 747 line 126 _ExactTM.gamma: 38.881675\n    test 748 line 126 _ExactTM.scale: 1.165511\n    test 749 line 126 _ExactTM.lat: 46.306035\n    test 750 line 126 _ExactTM.lon: 48.085828\n    test 751 line 127 _ExactTM.easting: 602838.450710\n    test 752 line 127 _ExactTM.northing: 4851370.637205\n    test 753 line 127 _ExactTM.gamma: 5.160395\n    test 754 line 127 _ExactTM.scale: 1.004073\n    test 755 line 127 _ExactTM.lat: 43.570988\n    test 756 line 127 _ExactTM.lon: 7.464494\n    test 757 line 128 _ExactTM.easting: 764616.665051\n    test 758 line 128 _ExactTM.northing: 2164299.337945\n    test 759 line 128 _ExactTM.gamma: 2.429300\n    test 760 line 128 _ExactTM.scale: 1.006835\n    test 761 line 128 _ExactTM.lat: 19.427290\n    test 762 line 128 _ExactTM.lon: 7.268247\n    test 763 line 129 _ExactTM.easting: 5048953.021931\n    test 764 line 129 _ExactTM.northing: 1885974.057398\n    test 765 line 129 _ExactTM.gamma: 11.459804\n    test 766 line 129 _ExactTM.scale: 1.332207\n    test 767 line 129 _ExactTM.lat: 12.713794\n    test 768 line 129 _ExactTM.lon: 42.507018\n    test 769 line 130 _ExactTM.easting: 2293996.601155\n    test 770 line 130 _ExactTM.northing: 2392408.644221\n    test 771 line 130 _ExactTM.gamma: 7.791838\n    test 772 line 130 _ExactTM.scale: 1.065348\n    test 773 line 130 _ExactTM.lat: 20.238782\n    test 774 line 130 _ExactTM.lon: 21.566068\n    test 775 line 131 _ExactTM.easting: 1530603.839418\n    test 776 line 131 _ExactTM.northing: 7287841.459898\n    test 777 line 131 _ExactTM.gamma: 27.502921\n    test 778 line 131 _ExactTM.scale: 1.028416\n    test 779 line 131 _ExactTM.lat: 62.367847\n    test 780 line 131 _ExactTM.lon: 30.438849\n    test 781 line 132 _ExactTM.easting: 2660000.093152\n    test 782 line 132 _ExactTM.northing: 5161982.213248\n    test 783 line 132 _ExactTM.gamma: 22.629836\n    test 784 line 132 _ExactTM.scale: 1.087851\n    test 785 line 132 _ExactTM.lat: 41.891569\n    test 786 line 132 _ExactTM.lon: 31.959547\n    test 787 line 133 _ExactTM.easting: 5037478.329414\n    test 788 line 133 _ExactTM.northing: 8768172.379908\n    test 789 line 133 _ExactTM.gamma: 73.511182\n    test 790 line 133 _ExactTM.scale: 1.325919\n    test 791 line 133 _ExactTM.lat: 47.664248\n    test 792 line 133 _ExactTM.lon: 77.630062\n    test 793 line 134 _ExactTM.easting: 2289650.957799\n    test 794 line 134 _ExactTM.northing: 8784328.593607\n    test 795 line 134 _ExactTM.gamma: 60.786067\n    test 796 line 134 _ExactTM.scale: 1.064346\n    test 797 line 134 _ExactTM.lat: 67.259559\n    test 798 line 134 _ExactTM.lon: 62.715293\n    test 799 line 135 _ExactTM.easting: 647913.889744\n    test 800 line 135 _ExactTM.northing: 6742382.228217\n    test 801 line 135 _ExactTM.gamma: 10.252667\n    test 802 line 135 _ExactTM.scale: 1.004748\n    test 803 line 135 _ExactTM.lat: 60.295381\n    test 804 line 135 _ExactTM.lon: 11.763097\n    test 805 line 136 _ExactTM.easting: 1118372.698566\n    test 806 line 136 _ExactTM.northing: 9040627.942263\n    test 807 line 136 _ExactTM.gamma: 48.936803\n    test 808 line 136 _ExactTM.scale: 1.014920\n    test 809 line 136 _ExactTM.lat: 76.878914\n    test 810 line 136 _ExactTM.lon: 49.685773\n    test 811 line 137 _ExactTM.easting: 440696.510070\n    test 812 line 137 _ExactTM.northing: 5500355.826297\n    test 813 line 137 _ExactTM.gamma: 4.636104\n    test 814 line 137 _ExactTM.scale: 1.001986\n    test 815 line 137 _ExactTM.lat: 49.495349\n    test 816 line 137 _ExactTM.lon: 6.087551\n    test 817 line 138 _ExactTM.easting: 601728.149727\n    test 818 line 138 _ExactTM.northing: 9095352.048149\n    test 819 line 138 _ExactTM.gamma: 33.435771\n    test 820 line 138 _ExactTM.scale: 1.004027\n    test 821 line 138 _ExactTM.lat: 80.297265\n    test 822 line 138 _ExactTM.lon: 33.816372\n    test 823 line 139 _ExactTM.easting: 3481444.777827\n    test 824 line 139 _ExactTM.northing: 291665.708749\n    test 825 line 139 _ExactTM.gamma: 1.314726\n    test 826 line 139 _ExactTM.scale: 1.153534\n    test 827 line 139 _ExactTM.lat: 2.286437\n    test 828 line 139 _ExactTM.lon: 29.855149\n    test 829 line 140 _ExactTM.easting: 3515304.901524\n    test 830 line 140 _ExactTM.northing: 1443981.882918\n    test 831 line 140 _ExactTM.gamma: 6.641638\n    test 832 line 140 _ExactTM.scale: 1.156509\n    test 833 line 140 _ExactTM.lat: 11.264457\n    test 834 line 140 _ExactTM.lon: 30.743907\n    test 835 line 141 _ExactTM.easting: 160012.186959\n    test 836 line 141 _ExactTM.northing: 3922609.253231\n    test 837 line 141 _ExactTM.gamma: 1.022225\n    test 838 line 141 _ExactTM.scale: 0.999916\n    test 839 line 141 _ExactTM.lat: 35.434073\n    test 840 line 141 _ExactTM.lon: 1.762795\n    test 841 line 142 _ExactTM.easting: 4163744.245622\n    test 842 line 142 _ExactTM.northing: 936884.674804\n    test 843 line 142 _ExactTM.gamma: 4.892559\n    test 844 line 142 _ExactTM.scale: 1.222164\n    test 845 line 142 _ExactTM.lat: 6.923695\n    test 846 line 142 _ExactTM.lon: 35.289456\n    test 847 line 143 _ExactTM.easting: 6155200.017926\n    test 848 line 143 _ExactTM.northing: 6926306.628390\n    test 849 line 143 _ExactTM.gamma: 55.103258\n    test 850 line 143 _ExactTM.scale: 1.500556\n    test 851 line 143 _ExactTM.lat: 36.129672\n    test 852 line 143 _ExactTM.lon: 67.533176\n    test 853 line 144 _ExactTM.easting: 16263383.285440\n    test 854 line 144 _ExactTM.northing: 3591296.731341\n    test 855 line 144 _ExactTM.gamma: 36.040254\n    test 856 line 144 _ExactTM.scale: 6.589288\n    test 857 line 144 _ExactTM.lat: 4.406529\n    test 858 line 144 _ExactTM.lon: 81.965734\n    test 859 line 145 _ExactTM.easting: 14220995.515398\n    test 860 line 145 _ExactTM.northing: 5100587.457503\n    test 861 line 145 _ExactTM.gamma: 47.314258\n    test 862 line 145 _ExactTM.scale: 4.693202\n    test 863 line 145 _ExactTM.lat: 8.474589\n    test 864 line 145 _ExactTM.lon: 81.129945\n    test 865 line 146 _ExactTM.easting: 3173034.802372\n    test 866 line 146 _ExactTM.northing: 7263421.942957\n    test 867 line 146 _ExactTM.gamma: 45.215808\n    test 868 line 146 _ExactTM.scale: 1.125410\n    test 869 line 146 _ExactTM.lat: 53.907276\n    test 870 line 146 _ExactTM.lon: 51.252904\n    test 871 line 147 _ExactTM.easting: 10253274.092204\n    test 872 line 147 _ExactTM.northing: 8867574.299792\n    test 873 line 147 _ExactTM.gamma: 79.198250\n    test 874 line 147 _ExactTM.scale: 2.572372\n    test 875 line 147 _ExactTM.lat: 22.120545\n    test 876 line 147 _ExactTM.lon: 85.756782\n    test 877 line 148 _ExactTM.easting: 2415561.483230\n    test 878 line 148 _ExactTM.northing: 8813225.217097\n    test 879 line 148 _ExactTM.gamma: 62.548978\n    test 880 line 148 _ExactTM.scale: 1.071748\n    test 881 line 148 _ExactTM.lat: 66.444100\n    test 882 line 148 _ExactTM.lon: 64.532960\n    test 883 line 149 _ExactTM.easting: 9589179.293295\n    test 884 line 149 _ExactTM.northing: 1777680.784143\n    test 885 line 149 _ExactTM.gamma: 14.838483\n    test 886 line 149 _ExactTM.scale: 2.380716\n    test 887 line 149 _ExactTM.lat: 6.670965\n    test 888 line 149 _ExactTM.lon: 65.660408\n    test 889 line 150 _ExactTM.easting: 727939.438391\n    test 890 line 150 _ExactTM.northing: 3684363.236810\n    test 891 line 150 _ExactTM.gamma: 4.266227\n    test 892 line 150 _ExactTM.scale: 1.006140\n    test 893 line 150 _ExactTM.lat: 33.054057\n    test 894 line 150 _ExactTM.lon: 7.787458\n    test 895 line 151 _ExactTM.easting: 1250765.991085\n    test 896 line 151 _ExactTM.northing: 792869.242719\n    test 897 line 151 _ExactTM.gamma: 1.396497\n    test 898 line 151 _ExactTM.scale: 1.019026\n    test 899 line 151 _ExactTM.lat: 7.035525\n    test 900 line 151 _ExactTM.lon: 11.253707\n    test 901 line 152 _ExactTM.easting: 710421.705887\n    test 902 line 152 _ExactTM.northing: 5019406.075928\n    test 903 line 152 _ExactTM.gamma: 6.393949\n    test 904 line 152 _ExactTM.scale: 1.005812\n    test 905 line 152 _ExactTM.lat: 44.971340\n    test 906 line 152 _ExactTM.lon: 9.009304\n    test 907 line 153 _ExactTM.easting: 4600995.074643\n    test 908 line 153 _ExactTM.northing: 4505712.084593\n    test 909 line 153 _ExactTM.gamma: 27.997458\n    test 910 line 153 _ExactTM.scale: 1.271841\n    test 911 line 153 _ExactTM.lat: 30.821397\n    test 912 line 153 _ExactTM.lon: 45.970577\n    test 913 line 154 _ExactTM.easting: 557642.627782\n    test 914 line 154 _ExactTM.northing: 7006911.251644\n    test 915 line 154 _ExactTM.gamma: 9.769903\n    test 916 line 154 _ExactTM.scale: 1.003411\n    test 917 line 154 _ExactTM.lat: 62.763886\n    test 918 line 154 _ExactTM.lon: 10.960144\n    test 919 line 155 _ExactTM.easting: 4635062.294291\n    test 920 line 155 _ExactTM.northing: 2702556.153311\n    test 921 line 155 _ExactTM.gamma: 15.779547\n    test 922 line 155 _ExactTM.scale: 1.277178\n    test 923 line 155 _ExactTM.lat: 18.888611\n    test 924 line 155 _ExactTM.lon: 41.009871\n    test 925 line 156 _ExactTM.easting: 14554962.255919\n    test 926 line 156 _ExactTM.northing: 4716639.908572\n    test 927 line 156 _ExactTM.gamma: 44.192751\n    test 928 line 156 _ExactTM.scale: 4.960020\n    test 929 line 156 _ExactTM.lat: 7.524119\n    test 930 line 156 _ExactTM.lon: 81.050715\n    test 931 line 157 _ExactTM.easting: 882126.661736\n    test 932 line 157 _ExactTM.northing: 7947612.369506\n    test 933 line 157 _ExactTM.gamma: 22.429487\n    test 934 line 157 _ExactTM.scale: 1.009132\n    test 935 line 157 _ExactTM.lat: 70.063902\n    test 936 line 157 _ExactTM.lon: 23.705255\n    test 937 line 158 _ExactTM.easting: 20262021.645983\n    test 938 line 158 _ExactTM.northing: 8113827.820796\n    test 939 line 158 _ExactTM.gamma: 76.936057\n    test 940 line 158 _ExactTM.scale: 10.349092\n    test 941 line 158 _ExactTM.lat: 3.556526\n    test 942 line 158 _ExactTM.lon: 88.363529\n    test 943 line 159 _ExactTM.easting: 6500508.399850\n    test 944 line 159 _ExactTM.northing: 6956476.342368\n    test 945 line 159 _ExactTM.gamma: 56.237116\n    test 946 line 159 _ExactTM.scale: 1.563162\n    test 947 line 159 _ExactTM.lat: 34.551257\n    test 948 line 159 _ExactTM.lon: 69.111091\n    test 949 line 160 _ExactTM.easting: 3884036.641314\n    test 950 line 160 _ExactTM.northing: 6890167.411733\n    test 951 line 160 _ExactTM.gamma: 45.760130\n    test 952 line 160 _ExactTM.scale: 1.190167\n    test 953 line 160 _ExactTM.lat: 47.929051\n    test 954 line 160 _ExactTM.lon: 54.103418\n    test 955 line 161 _ExactTM.easting: 217855.546078\n    test 956 line 161 _ExactTM.northing: 6184108.122568\n    test 957 line 161 _ExactTM.gamma: 2.870993\n    test 958 line 161 _ExactTM.scale: 1.000182\n    test 959 line 161 _ExactTM.lat: 55.753536\n    test 960 line 161 _ExactTM.lon: 3.471798\n    test 961 line 162 _ExactTM.easting: 11384139.290402\n    test 962 line 162 _ExactTM.northing: 8893889.949556\n    test 963 line 162 _ExactTM.gamma: 79.774854\n    test 964 line 162 _ExactTM.scale: 3.024672\n    test 965 line 162 _ExactTM.lat: 18.530847\n    test 966 line 162 _ExactTM.lon: 86.555312\n    test 967 line 163 _ExactTM.easting: 3469855.989805\n    test 968 line 163 _ExactTM.northing: 7723193.799228\n    test 969 line 163 _ExactTM.gamma: 53.114700\n    test 970 line 163 _ExactTM.scale: 1.150540\n    test 971 line 163 _ExactTM.lat: 54.510125\n    test 972 line 163 _ExactTM.lon: 58.556056\n    test 973 line 164 _ExactTM.easting: 5926165.994939\n    test 974 line 164 _ExactTM.northing: 9385463.732747\n    test 975 line 164 _ExactTM.gamma: 82.506981\n    test 976 line 164 _ExactTM.scale: 1.459758\n    test 977 line 164 _ExactTM.lat: 42.864162\n    test 978 line 164 _ExactTM.lon: 84.866326\n    test 979 line 165 _ExactTM.easting: 5798639.662224\n    test 980 line 165 _ExactTM.northing: 5305387.640916\n    test 981 line 165 _ExactTM.gamma: 38.617257\n    test 982 line 165 _ExactTM.scale: 1.442263\n    test 983 line 165 _ExactTM.lat: 30.911943\n    test 984 line 165 _ExactTM.lon: 57.114102\n    test 985 line 166 _ExactTM.easting: 9464.934388\n    test 986 line 166 _ExactTM.northing: 6489121.624944\n    test 987 line 166 _ExactTM.gamma: 0.138696\n    test 988 line 166 _ExactTM.scale: 0.999601\n    test 989 line 166 _ExactTM.lat: 58.542493\n    test 990 line 166 _ExactTM.lon: 0.162593\n    test 991 line 167 _ExactTM.easting: 12575834.275614\n    test 992 line 167 _ExactTM.northing: 8356610.895486\n    test 993 line 167 _ExactTM.gamma: 75.235223\n    test 994 line 167 _ExactTM.scale: 3.599442\n    test 995 line 167 _ExactTM.lat: 15.022689\n    test 996 line 167 _ExactTM.lon: 85.792615\n    test 997 line 168 _ExactTM.easting: 2719653.543469\n    test 998 line 168 _ExactTM.northing: 9362389.163495\n    test 999 line 168 _ExactTM.gamma: 76.049670\n    test 1000 line 168 _ExactTM.scale: 1.091315\n    test 1001 line 168 _ExactTM.lat: 65.692275\n    test 1002 line 168 _ExactTM.lon: 77.241377\n    test 1003 line 169 _ExactTM.easting: 4845341.924698\n    test 1004 line 169 _ExactTM.northing: 8710522.326901\n    test 1005 line 169 _ExactTM.gamma: 72.320942\n    test 1006 line 169 _ExactTM.scale: 1.300382\n    test 1007 line 169 _ExactTM.lat: 48.806211\n    test 1008 line 169 _ExactTM.lon: 76.486365\n    test 1009 line 170 _ExactTM.easting: 3935261.522763\n    test 1010 line 170 _ExactTM.northing: 9454271.649062\n    test 1011 line 170 _ExactTM.gamma: 81.162334\n    test 1012 line 170 _ExactTM.scale: 1.194767\n    test 1013 line 170 _ExactTM.lat: 56.436025\n    test 1014 line 170 _ExactTM.lon: 82.611568\n    test 1015 line 171 _ExactTM.easting: 7074299.823000\n    test 1016 line 171 _ExactTM.northing: 1648736.065055\n    test 1017 line 171 _ExactTM.gamma: 12.145925\n    test 1018 line 171 _ExactTM.scale: 1.687551\n    test 1019 line 171 _ExactTM.lat: 8.766053\n    test 1020 line 171 _ExactTM.lon: 54.367539\n    test 1021 line 172 _ExactTM.easting: 3689072.579308\n    test 1022 line 172 _ExactTM.northing: 2230802.665211\n    test 1023 line 172 _ExactTM.gamma: 10.856248\n    test 1024 line 172 _ExactTM.scale: 1.172689\n    test 1025 line 172 _ExactTM.lat: 17.095495\n    test 1026 line 172 _ExactTM.lon: 33.059128\n    test 1027 line 173 _ExactTM.easting: 8102565.885587\n    test 1028 line 173 _ExactTM.northing: 5167396.617580\n    test 1029 line 173 _ExactTM.gamma: 42.324886\n    test 1030 line 173 _ExactTM.scale: 1.921927\n    test 1031 line 173 _ExactTM.lat: 22.142861\n    test 1032 line 173 _ExactTM.lon: 67.200684\n    test 1033 line 174 _ExactTM.easting: 8181271.353564\n    test 1034 line 174 _ExactTM.northing: 4425436.547185\n    test 1035 line 174 _ExactTM.gamma: 35.900845\n    test 1036 line 174 _ExactTM.scale: 1.945017\n    test 1037 line 174 _ExactTM.lat: 19.222623\n    test 1038 line 174 _ExactTM.lon: 65.180785\n    test 1039 line 175 _ExactTM.easting: 767067.394003\n    test 1040 line 175 _ExactTM.northing: 3701745.857296\n    test 1041 line 175 _ExactTM.gamma: 4.519201\n    test 1042 line 175 _ExactTM.scale: 1.006863\n    test 1043 line 175 _ExactTM.lat: 33.182474\n    test 1044 line 175 _ExactTM.lon: 8.216952\n    test 1045 line 176 _ExactTM.easting: 6688114.168572\n    test 1046 line 176 _ExactTM.northing: 2052857.299639\n    test 1047 line 176 _ExactTM.gamma: 14.766191\n    test 1048 line 176 _ExactTM.scale: 1.607200\n    test 1049 line 176 _ExactTM.lat: 11.417963\n    test 1050 line 176 _ExactTM.lon: 52.808691\n    test 1051 line 177 _ExactTM.easting: 5608408.773761\n    test 1052 line 177 _ExactTM.northing: 3859055.659110\n    test 1053 line 177 _ExactTM.gamma: 26.244151\n    test 1054 line 177 _ExactTM.scale: 1.413463\n    test 1055 line 177 _ExactTM.lat: 23.836688\n    test 1056 line 177 _ExactTM.lon: 50.500180\n    test 1057 line 178 _ExactTM.easting: 3836942.765275\n    test 1058 line 178 _ExactTM.northing: 6415467.634326\n    test 1059 line 178 _ExactTM.gamma: 40.575885\n    test 1060 line 178 _ExactTM.scale: 1.185615\n    test 1061 line 178 _ExactTM.lat: 45.550020\n    test 1062 line 178 _ExactTM.lon: 50.148036\n    test 1063 line 179 _ExactTM.easting: 1298730.366025\n    test 1064 line 179 _ExactTM.northing: 6021453.000792\n    test 1065 line 179 _ExactTM.gamma: 15.613320\n    test 1066 line 179 _ExactTM.scale: 1.020367\n    test 1067 line 179 _ExactTM.lat: 52.746079\n    test 1068 line 179 _ExactTM.lon: 19.343926\n    test 1069 line 180 _ExactTM.easting: 416934.289208\n    test 1070 line 180 _ExactTM.northing: 7295683.451705\n    test 1071 line 180 _ExactTM.gamma: 8.238232\n    test 1072 line 180 _ExactTM.scale: 1.001729\n    test 1073 line 180 _ExactTM.lat: 65.513348\n    test 1074 line 180 _ExactTM.lon: 9.039529\n    test 1075 line 181 _ExactTM.easting: 4336076.850889\n    test 1076 line 181 _ExactTM.northing: 7617975.722779\n    test 1077 line 181 _ExactTM.gamma: 56.537088\n    test 1078 line 181 _ExactTM.scale: 1.238582\n    test 1079 line 181 _ExactTM.lat: 48.709795\n    test 1080 line 181 _ExactTM.lon: 63.554005\n    test 1081 line 182 _ExactTM.easting: 168047.336980\n    test 1082 line 182 _ExactTM.northing: 2185000.046530\n    test 1083 line 182 _ExactTM.gamma: 0.542187\n    test 1084 line 182 _ExactTM.scale: 0.999949\n    test 1085 line 182 _ExactTM.lat: 19.753509\n    test 1086 line 182 _ExactTM.lon: 1.603846\n    test 1087 line 183 _ExactTM.easting: 8276281.328790\n    test 1088 line 183 _ExactTM.northing: 263444.350545\n    test 1089 line 183 _ExactTM.gamma: 2.071435\n    test 1090 line 183 _ExactTM.scale: 1.980314\n    test 1091 line 183 _ExactTM.lat: 1.202816\n    test 1092 line 183 _ExactTM.lon: 59.377276\n    test 1093 line 184 _ExactTM.easting: 4772573.810710\n    test 1094 line 184 _ExactTM.northing: 6765710.336002\n    test 1095 line 184 _ExactTM.gamma: 48.857561\n    test 1096 line 184 _ExactTM.scale: 1.291911\n    test 1097 line 184 _ExactTM.lat: 42.564975\n    test 1098 line 184 _ExactTM.lon: 59.356947\n    test 1099 line 185 _ExactTM.easting: 5427755.074639\n    test 1100 line 185 _ExactTM.northing: 1556055.820924\n    test 1101 line 185 _ExactTM.gamma: 9.862178\n    test 1102 line 185 _ExactTM.scale: 1.387394\n    test 1103 line 185 _ExactTM.lat: 10.090572\n    test 1104 line 185 _ExactTM.lon: 44.604132\n    test 1105 line 186 _ExactTM.easting: 11588458.616041\n    test 1106 line 186 _ExactTM.northing: 5707993.922613\n    test 1107 line 186 _ExactTM.gamma: 50.784827\n    test 1108 line 186 _ExactTM.scale: 3.149567\n    test 1109 line 186 _ExactTM.lat: 14.133028\n    test 1110 line 186 _ExactTM.lon: 78.097533\n    test 1111 line 187 _ExactTM.easting: 7152433.802688\n    test 1112 line 187 _ExactTM.northing: 761390.695844\n    test 1113 line 187 _ExactTM.gamma: 5.607350\n    test 1114 line 187 _ExactTM.scale: 1.705261\n    test 1115 line 187 _ExactTM.lat: 4.031123\n    test 1116 line 187 _ExactTM.lon: 54.048782\n    test 1117 line 188 _ExactTM.easting: 3105651.390901\n    test 1118 line 188 _ExactTM.northing: 9426026.169064\n    test 1119 line 188 _ExactTM.gamma: 78.750206\n    test 1120 line 188 _ExactTM.scale: 1.119737\n    test 1121 line 188 _ExactTM.lat: 62.746603\n    test 1122 line 188 _ExactTM.lon: 79.968641\n    test 1123 line 189 _ExactTM.easting: 2959009.639022\n    test 1124 line 189 _ExactTM.northing: 8339242.269282\n    test 1125 line 189 _ExactTM.gamma: 58.460865\n    test 1126 line 189 _ExactTM.scale: 1.108554\n    test 1127 line 189 _ExactTM.lat: 60.626429\n    test 1128 line 189 _ExactTM.lon: 61.851551\n    test 1129 line 190 _ExactTM.easting: 8640472.267145\n    test 1130 line 190 _ExactTM.northing: 6230320.417931\n    test 1131 line 190 _ExactTM.gamma: 52.816810\n    test 1132 line 190 _ExactTM.scale: 2.062973\n    test 1133 line 190 _ExactTM.lat: 23.600626\n    test 1134 line 190 _ExactTM.lon: 72.811634\n    test 1135 line 191 _ExactTM.easting: 811352.108932\n    test 1136 line 191 _ExactTM.northing: 9816129.813481\n    test 1137 line 191 _ExactTM.gamma: 77.299184\n    test 1138 line 191 _ExactTM.scale: 1.007651\n    test 1139 line 191 _ExactTM.lat: 82.572236\n    test 1140 line 191 _ExactTM.lon: 77.402323\n    test 1141 line 192 _ExactTM.easting: 6521874.973458\n    test 1142 line 192 _ExactTM.northing: 1053612.479744\n    test 1143 line 192 _ExactTM.gamma: 7.407328\n    test 1144 line 192 _ExactTM.scale: 1.575529\n    test 1145 line 192 _ExactTM.lat: 6.030051\n    test 1146 line 192 _ExactTM.lon: 50.783505\n    test 1147 line 193 _ExactTM.easting: 3477983.997875\n    test 1148 line 193 _ExactTM.northing: 5651613.325947\n    test 1149 line 193 _ExactTM.gamma: 31.530673\n    test 1150 line 193 _ExactTM.scale: 1.151875\n    test 1151 line 193 _ExactTM.lat: 42.411523\n    test 1152 line 193 _ExactTM.lon: 42.258009\n    test 1153 line 194 _ExactTM.easting: 629892.822243\n    test 1154 line 194 _ExactTM.northing: 3283914.910451\n    test 1155 line 194 _ExactTM.gamma: 3.210482\n    test 1156 line 194 _ExactTM.scale: 1.004499\n    test 1157 line 194 _ExactTM.lat: 29.526120\n    test 1158 line 194 _ExactTM.lon: 6.493069\n    test 1159 line 195 _ExactTM.easting: 3381879.687227\n    test 1160 line 195 _ExactTM.northing: 5103629.325665\n    test 1161 line 195 _ExactTM.gamma: 26.748108\n    test 1162 line 195 _ExactTM.scale: 1.143559\n    test 1163 line 195 _ExactTM.lat: 39.021853\n    test 1164 line 195 _ExactTM.lon: 38.641779\n    test 1165 line 196 _ExactTM.easting: 2815986.534177\n    test 1166 line 196 _ExactTM.northing: 9387029.120718\n    test 1167 line 196 _ExactTM.gamma: 76.967262\n    test 1168 line 196 _ExactTM.scale: 1.098032\n    test 1169 line 196 _ExactTM.lat: 64.971850\n    test 1170 line 196 _ExactTM.lon: 78.151893\n    test 1171 line 197 _ExactTM.easting: 3398195.889603\n    test 1172 line 197 _ExactTM.northing: 9138936.031490\n    test 1173 line 197 _ExactTM.gamma: 74.477499\n    test 1174 line 197 _ExactTM.scale: 1.144009\n    test 1175 line 197 _ExactTM.lat: 59.961819\n    test 1176 line 197 _ExactTM.lon: 76.473422\n    test 1177 line 198 _ExactTM.easting: 2421734.754637\n    test 1178 line 198 _ExactTM.northing: 5002372.094991\n    test 1179 line 198 _ExactTM.gamma: 20.017082\n    test 1180 line 198 _ExactTM.scale: 1.072592\n    test 1181 line 198 _ExactTM.lat: 41.374040\n    test 1182 line 198 _ExactTM.lon: 28.848343\n    test 1183 line 199 _ExactTM.easting: 2360869.895525\n    test 1184 line 199 _ExactTM.northing: 9553298.449536\n    test 1185 line 199 _ExactTM.gamma: 78.848205\n    test 1186 line 199 _ExactTM.scale: 1.068453\n    test 1187 line 199 _ExactTM.lat: 68.946087\n    test 1188 line 199 _ExactTM.lon: 79.574523\n    test 1189 line 200 _ExactTM.easting: 1196539.972194\n    test 1190 line 200 _ExactTM.northing: 9861920.836230\n    test 1191 line 200 _ExactTM.gamma: 83.437668\n    test 1192 line 200 _ExactTM.scale: 1.017137\n    test 1193 line 200 _ExactTM.lat: 79.275096\n    test 1194 line 200 _ExactTM.lon: 83.551272\n    test 1195 line 201 _ExactTM.easting: 1327758.704795\n    test 1196 line 201 _ExactTM.northing: 2375509.241683\n    test 1197 line 201 _ExactTM.gamma: 4.617572\n    test 1198 line 201 _ExactTM.scale: 1.021465\n    test 1199 line 201 _ExactTM.lat: 21.000252\n    test 1200 line 201 _ExactTM.lon: 12.697444\n    test 1201 line 202 _ExactTM.easting: 2070860.327644\n    test 1202 line 202 _ExactTM.northing: 8604500.719581\n    test 1203 line 202 _ExactTM.gamma: 54.722761\n    test 1204 line 202 _ExactTM.scale: 1.052469\n    test 1205 line 202 _ExactTM.lat: 68.015227\n    test 1206 line 202 _ExactTM.lon: 56.732419\n    test 1207 line 203 _ExactTM.easting: 6564776.654864\n    test 1208 line 203 _ExactTM.northing: 8171207.177379\n    test 1209 line 203 _ExactTM.gamma: 69.237523\n    test 1210 line 203 _ExactTM.scale: 1.573894\n    test 1211 line 203 _ExactTM.lat: 37.423675\n    test 1212 line 203 _ExactTM.lon: 76.947359\n    test 1213 line 204 _ExactTM.easting: 592653.553821\n    test 1214 line 204 _ExactTM.northing: 6125529.810052\n    test 1215 line 204 _ExactTM.gamma: 7.600785\n    test 1216 line 204 _ExactTM.scale: 1.003912\n    test 1217 line 204 _ExactTM.lat: 54.922707\n    test 1218 line 204 _ExactTM.lon: 9.260818\n    test 1219 line 205 _ExactTM.easting: 693459.671821\n    test 1220 line 205 _ExactTM.northing: 6943779.991032\n    test 1221 line 205 _ExactTM.gamma: 11.787587\n    test 1222 line 205 _ExactTM.scale: 1.005496\n    test 1223 line 205 _ExactTM.lat: 61.982810\n    test 1224 line 205 _ExactTM.lon: 13.299659\n    test 1225 line 206 _ExactTM.easting: 1838956.187625\n    test 1226 line 206 _ExactTM.northing: 3511959.612381\n    test 1227 line 206 _ExactTM.gamma: 9.844313\n    test 1228 line 206 _ExactTM.scale: 1.041603\n    test 1229 line 206 _ExactTM.lat: 30.324214\n    test 1230 line 206 _ExactTM.lon: 18.959769\n    test 1231 line 207 _ExactTM.easting: 4460690.884597\n    test 1232 line 207 _ExactTM.northing: 5541873.235403\n    test 1233 line 207 _ExactTM.gamma: 35.768613\n    test 1234 line 207 _ExactTM.scale: 1.254179\n    test 1235 line 207 _ExactTM.lat: 37.629667\n    test 1236 line 207 _ExactTM.lon: 49.649131\n    test 1237 line 208 _ExactTM.easting: 2311168.998941\n    test 1238 line 208 _ExactTM.northing: 9480561.869119\n    test 1239 line 208 _ExactTM.gamma: 76.828257\n    test 1240 line 208 _ExactTM.scale: 1.065556\n    test 1241 line 208 _ExactTM.lat: 69.225574\n    test 1242 line 208 _ExactTM.lon: 77.656135\n    test 1243 line 209 _ExactTM.easting: 4111775.114451\n    test 1244 line 209 _ExactTM.northing: 6509014.348792\n    test 1245 line 209 _ExactTM.gamma: 43.052130\n    test 1246 line 209 _ExactTM.scale: 1.214125\n    test 1247 line 209 _ExactTM.lat: 44.698478\n    test 1248 line 209 _ExactTM.lon: 52.979304\n    test 1249 line 210 _ExactTM.easting: 75358.261962\n    test 1250 line 210 _ExactTM.northing: 7711258.662251\n    test 1251 line 210 _ExactTM.gamma: 1.806297\n    test 1252 line 210 _ExactTM.scale: 0.999669\n    test 1253 line 210 _ExactTM.lat: 69.499594\n    test 1254 line 210 _ExactTM.lon: 1.928336\n    test 1255 line 211 _ExactTM.easting: 8781885.229116\n    test 1256 line 211 _ExactTM.northing: 9184776.452211\n    test 1257 line 211 _ExactTM.gamma: 81.795539\n    test 1258 line 211 _ExactTM.scale: 2.094908\n    test 1259 line 211 _ExactTM.lat: 27.981364\n    test 1260 line 211 _ExactTM.lon: 86.061113\n    test 1261 line 212 _ExactTM.easting: 954378.415174\n    test 1262 line 212 _ExactTM.northing: 7449110.669807\n    test 1263 line 212 _ExactTM.gamma: 19.380657\n    test 1264 line 212 _ExactTM.scale: 1.010768\n    test 1265 line 212 _ExactTM.lat: 65.699839\n    test 1266 line 212 _ExactTM.lon: 21.104725\n    test 1267 line 213 _ExactTM.easting: 720971.793706\n    test 1268 line 213 _ExactTM.northing: 5265195.121555\n    test 1269 line 213 _ExactTM.gamma: 7.002995\n    test 1270 line 213 _ExactTM.scale: 1.005995\n    test 1271 line 213 _ExactTM.lat: 47.143648\n    test 1272 line 213 _ExactTM.lon: 9.512189\n    test 1273 line 214 _ExactTM.easting: 561561.493937\n    test 1274 line 214 _ExactTM.northing: 989910.236221\n    test 1275 line 214 _ExactTM.gamma: 0.793118\n    test 1276 line 214 _ExactTM.scale: 1.003505\n    test 1277 line 214 _ExactTM.lat: 8.920167\n    test 1278 line 214 _ExactTM.lon: 5.101513\n    test 1279 line 215 _ExactTM.easting: 3446829.634468\n    test 1280 line 215 _ExactTM.northing: 9232868.155664\n    test 1281 line 215 _ExactTM.gamma: 76.279075\n    test 1282 line 215 _ExactTM.scale: 1.148263\n    test 1283 line 215 _ExactTM.lat: 59.778971\n    test 1284 line 215 _ExactTM.lon: 78.080322\n    test 1285 line 216 _ExactTM.easting: 4048307.545909\n    test 1286 line 216 _ExactTM.northing: 9800416.422998\n    test 1287 line 216 _ExactTM.gamma: 86.843918\n    test 1288 line 216 _ExactTM.scale: 1.206495\n    test 1289 line 216 _ExactTM.lat: 55.865310\n    test 1290 line 216 _ExactTM.lon: 87.384288\n    test 1291 line 217 _ExactTM.easting: 8973188.480293\n    test 1292 line 217 _ExactTM.northing: 7042230.087021\n    test 1293 line 217 _ExactTM.gamma: 60.872456\n    test 1294 line 217 _ExactTM.scale: 2.156098\n    test 1295 line 217 _ExactTM.lat: 24.310973\n    test 1296 line 217 _ExactTM.lon: 76.823777\n    test 1297 line 218 _ExactTM.easting: 126314.191618\n    test 1298 line 218 _ExactTM.northing: 396006.687921\n    test 1299 line 218 _ExactTM.gamma: 0.071065\n    test 1300 line 218 _ExactTM.scale: 0.999798\n    test 1301 line 218 _ExactTM.lat: 3.582041\n    test 1302 line 218 _ExactTM.lon: 1.137286\n    test 1303 line 219 _ExactTM.easting: 5247652.345647\n    test 1304 line 219 _ExactTM.northing: 8670513.359752\n    test 1305 line 219 _ExactTM.gamma: 72.700498\n    test 1306 line 219 _ExactTM.scale: 1.355272\n    test 1307 line 219 _ExactTM.lat: 46.124233\n    test 1308 line 219 _ExactTM.lon: 77.313118\n    test 1309 line 220 _ExactTM.easting: 8103656.838119\n    test 1310 line 220 _ExactTM.northing: 9469794.014737\n    test 1311 line 220 _ExactTM.gamma: 84.490673\n    test 1312 line 220 _ExactTM.scale: 1.912164\n    test 1313 line 220 _ExactTM.lat: 31.171391\n    test 1314 line 220 _ExactTM.lon: 87.104504\n    test 1315 line 221 _ExactTM.easting: 6300112.758236\n    test 1316 line 221 _ExactTM.northing: 93835.917364\n    test 1317 line 221 _ExactTM.gamma: 0.644805\n    test 1318 line 221 _ExactTM.scale: 1.534073\n    test 1319 line 221 _ExactTM.lat: 0.553171\n    test 1320 line 221 _ExactTM.lon: 49.117104\n    test 1321 line 222 _ExactTM.easting: 3894813.593782\n    test 1322 line 222 _ExactTM.northing: 4833832.341027\n    test 1323 line 222 _ExactTM.gamma: 27.453298\n    test 1324 line 222 _ExactTM.scale: 1.192135\n    test 1325 line 222 _ExactTM.lat: 35.361587\n    test 1326 line 222 _ExactTM.lon: 41.860599\n    test 1327 line 223 _ExactTM.easting: 402511.346712\n    test 1328 line 223 _ExactTM.northing: 3520621.561911\n    test 1329 line 223 _ExactTM.gamma: 2.238474\n    test 1330 line 223 _ExactTM.scale: 1.001599\n    test 1331 line 223 _ExactTM.lat: 31.750314\n    test 1332 line 223 _ExactTM.lon: 4.248167\n    test 1333 line 224 _ExactTM.easting: 5357378.503148\n    test 1334 line 224 _ExactTM.northing: 2772997.602234\n    test 1335 line 224 _ExactTM.gamma: 17.823560\n    test 1336 line 224 _ExactTM.scale: 1.376031\n    test 1337 line 224 _ExactTM.lat: 17.924336\n    test 1338 line 224 _ExactTM.lon: 46.096402\n    test 1339 line 225 _ExactTM.easting: 2807553.985866\n    test 1340 line 225 _ExactTM.northing: 8177847.980275\n    test 1341 line 225 _ExactTM.gamma: 54.680045\n    test 1342 line 225 _ExactTM.scale: 1.097531\n    test 1343 line 225 _ExactTM.lat: 60.931488\n    test 1344 line 225 _ExactTM.lon: 58.221214\n    test 1345 line 226 _ExactTM.easting: 18289045.166501\n    test 1346 line 226 _ExactTM.northing: 7792942.339604\n    test 1347 line 226 _ExactTM.gamma: 73.216494\n    test 1348 line 226 _ExactTM.scale: 8.098009\n    test 1349 line 226 _ExactTM.lat: 5.358151\n    test 1350 line 226 _ExactTM.lon: 87.556213\n    test 1351 line 227 _ExactTM.easting: 8376822.459538\n    test 1352 line 227 _ExactTM.northing: 8128174.623878\n    test 1353 line 227 _ExactTM.gamma: 70.920117\n    test 1354 line 227 _ExactTM.scale: 1.984873\n    test 1355 line 227 _ExactTM.lat: 28.616673\n    test 1356 line 227 _ExactTM.lon: 80.452426\n    test 1357 line 228 _ExactTM.easting: 11898068.353272\n    test 1358 line 228 _ExactTM.northing: 4772439.493697\n    test 1359 line 228 _ExactTM.gamma: 42.613968\n    test 1360 line 228 _ExactTM.scale: 3.314412\n    test 1361 line 228 _ExactTM.lat: 11.709763\n    test 1362 line 228 _ExactTM.lon: 76.760295\n    test 1363 line 229 _ExactTM.easting: 10550946.939050\n    test 1364 line 229 _ExactTM.northing: 3851968.815295\n    test 1365 line 229 _ExactTM.gamma: 33.383025\n    test 1366 line 229 _ExactTM.scale: 2.724754\n    test 1367 line 229 _ExactTM.lat: 12.009498\n    test 1368 line 229 _ExactTM.lon: 71.782351\n    test 1369 line 230 _ExactTM.easting: 6828299.123607\n    test 1370 line 230 _ExactTM.northing: 9394803.227463\n    test 1371 line 230 _ExactTM.gamma: 83.181386\n    test 1372 line 230 _ExactTM.scale: 1.624359\n    test 1373 line 230 _ExactTM.lat: 37.629784\n    test 1374 line 230 _ExactTM.lon: 85.795687\n    test 1375 line 231 _ExactTM.easting: 11162550.334022\n    test 1376 line 231 _ExactTM.northing: 2640267.279593\n    test 1377 line 231 _ExactTM.gamma: 23.145404\n    test 1378 line 231 _ExactTM.scale: 2.998408\n    test 1379 line 231 _ExactTM.lat: 7.721128\n    test 1380 line 231 _ExactTM.lon: 71.662731\n    test 1381 line 232 _ExactTM.easting: 4411584.447941\n    test 1382 line 232 _ExactTM.northing: 4956173.694407\n    test 1383 line 232 _ExactTM.gamma: 30.713919\n    test 1384 line 232 _ExactTM.scale: 1.248736\n    test 1385 line 232 _ExactTM.lat: 34.295026\n    test 1386 line 232 _ExactTM.lon: 46.442191\n    test 1387 line 233 _ExactTM.easting: 672108.897905\n    test 1388 line 233 _ExactTM.northing: 4751554.657054\n    test 1389 line 233 _ExactTM.gamma: 5.569178\n    test 1390 line 233 _ExactTM.scale: 1.005162\n    test 1391 line 233 _ExactTM.lat: 42.622496\n    test 1392 line 233 _ExactTM.lon: 8.193605\n    test 1393 line 234 _ExactTM.easting: 5022964.290579\n    test 1394 line 234 _ExactTM.northing: 6860418.199502\n    test 1395 line 234 _ExactTM.gamma: 50.862230\n    test 1396 line 234 _ExactTM.scale: 1.324925\n    test 1397 line 234 _ExactTM.lat: 41.667780\n    test 1398 line 234 _ExactTM.lon: 61.518288\n    test 1399 line 235 _ExactTM.easting: 1669655.595207\n    test 1400 line 235 _ExactTM.northing: 4152086.537021\n    test 1401 line 235 _ExactTM.gamma: 11.110237\n    test 1402 line 235 _ExactTM.scale: 1.034138\n    test 1403 line 235 _ExactTM.lat: 36.060369\n    test 1404 line 235 _ExactTM.lon: 18.444112\n    test 1405 line 236 _ExactTM.easting: 6055876.729655\n    test 1406 line 236 _ExactTM.northing: 4896837.552619\n    test 1407 line 236 _ExactTM.gamma: 35.799747\n    test 1408 line 236 _ExactTM.scale: 1.485967\n    test 1409 line 236 _ExactTM.lat: 27.948091\n    test 1410 line 236 _ExactTM.lon: 56.816429\n    test 1411 line 237 _ExactTM.easting: 1209214.164379\n    test 1412 line 237 _ExactTM.northing: 7266409.859178\n    test 1413 line 237 _ExactTM.gamma: 22.319633\n    test 1414 line 237 _ExactTM.scale: 1.017554\n    test 1415 line 237 _ExactTM.lat: 63.386030\n    test 1416 line 237 _ExactTM.lon: 24.662716\n    test 1417 line 238 _ExactTM.easting: 5154564.559584\n    test 1418 line 238 _ExactTM.northing: 698118.349975\n    test 1419 line 238 _ExactTM.gamma: 4.242360\n    test 1420 line 238 _ExactTM.scale: 1.347481\n    test 1421 line 238 _ExactTM.lat: 4.680922\n    test 1422 line 238 _ExactTM.lon: 42.114426\n    test 1423 line 239 _ExactTM.easting: 2695149.806543\n    test 1424 line 239 _ExactTM.northing: 8208197.765605\n    test 1425 line 239 _ExactTM.gamma: 54.178615\n    test 1426 line 239 _ExactTM.scale: 1.089730\n    test 1427 line 239 _ExactTM.lat: 61.826625\n    test 1428 line 239 _ExactTM.lon: 57.525096\n    test 1429 line 240 _ExactTM.easting: 3394792.327820\n    test 1430 line 240 _ExactTM.northing: 3217583.415552\n    test 1431 line 240 _ExactTM.gamma: 15.165863\n    test 1432 line 240 _ExactTM.scale: 1.145285\n    test 1433 line 240 _ExactTM.lat: 25.104353\n    test 1434 line 240 _ExactTM.lon: 32.528660\n    test 1435 line 241 _ExactTM.easting: 1429160.966985\n    test 1436 line 241 _ExactTM.northing: 8212685.362032\n    test 1437 line 241 _ExactTM.gamma: 37.484904\n    test 1438 line 241 _ExactTM.scale: 1.024676\n    test 1439 line 241 _ExactTM.lat: 69.678351\n    test 1440 line 241 _ExactTM.lon: 39.275513\n    test 1441 line 242 _ExactTM.easting: 8343387.998065\n    test 1442 line 242 _ExactTM.northing: 8885196.954578\n    test 1443 line 242 _ExactTM.gamma: 78.561937\n    test 1444 line 242 _ExactTM.scale: 1.974733\n    test 1445 line 242 _ExactTM.lat: 29.671384\n    test 1446 line 242 _ExactTM.lon: 84.196595\n    test 1447 line 243 _ExactTM.easting: 1990722.928606\n    test 1448 line 243 _ExactTM.northing: 7569202.065162\n    test 1449 line 243 _ExactTM.gamma: 37.075276\n    test 1450 line 243 _ExactTM.scale: 1.048486\n    test 1451 line 243 _ExactTM.lat: 62.300208\n    test 1452 line 243 _ExactTM.lon: 40.474051\n    test 1453 line 244 _ExactTM.easting: 1554980.099559\n    test 1454 line 244 _ExactTM.northing: 1449423.919586\n    test 1455 line 244 _ExactTM.gamma: 3.188328\n    test 1456 line 244 _ExactTM.scale: 1.029664\n    test 1457 line 244 _ExactTM.lat: 12.721776\n    test 1458 line 244 _ExactTM.lon: 14.190003\n    test 1459 line 245 _ExactTM.easting: 785205.450196\n    test 1460 line 245 _ExactTM.northing: 5575158.423096\n    test 1461 line 245 _ExactTM.gamma: 8.388417\n    test 1462 line 245 _ExactTM.scale: 1.007181\n    test 1463 line 245 _ExactTM.lat: 49.811296\n    test 1464 line 245 _ExactTM.lon: 10.925011\n    test 1465 line 246 _ExactTM.easting: 3310405.988313\n    test 1466 line 246 _ExactTM.northing: 5955022.233881\n    test 1467 line 246 _ExactTM.gamma: 33.007587\n    test 1468 line 246 _ExactTM.scale: 1.137141\n    test 1469 line 246 _ExactTM.lat: 45.132680\n    test 1470 line 246 _ExactTM.lon: 42.478624\n    test 1471 line 247 _ExactTM.easting: 4733460.960666\n    test 1472 line 247 _ExactTM.northing: 129034.889816\n    test 1473 line 247 _ExactTM.gamma: 0.737551\n    test 1474 line 247 _ExactTM.scale: 1.290439\n    test 1475 line 247 _ExactTM.lat: 0.904279\n    test 1476 line 247 _ExactTM.lon: 39.078412\n    test 1477 line 248 _ExactTM.easting: 3322708.343909\n    test 1478 line 248 _ExactTM.northing: 3864738.078742\n    test 1479 line 248 _ExactTM.gamma: 18.472566\n    test 1480 line 248 _ExactTM.scale: 1.138838\n    test 1481 line 248 _ExactTM.lat: 30.163605\n    test 1482 line 248 _ExactTM.lon: 33.577996\n    test 1483 line 249 _ExactTM.easting: 8672864.417204\n    test 1484 line 249 _ExactTM.northing: 8333465.983444\n    test 1485 line 249 _ExactTM.gamma: 73.206273\n    test 1486 line 249 _ExactTM.scale: 2.065441\n    test 1487 line 249 _ExactTM.lat: 27.643244\n    test 1488 line 249 _ExactTM.lon: 81.892859\n    test 1489 line 250 _ExactTM.easting: 11126818.231196\n    test 1490 line 250 _ExactTM.northing: 7618712.174991\n    test 1491 line 250 _ExactTM.gamma: 67.887173\n    test 1492 line 250 _ExactTM.scale: 2.922417\n    test 1493 line 250 _ExactTM.lat: 18.201208\n    test 1494 line 250 _ExactTM.lon: 82.434618\n    test 1495 line 251 _ExactTM.easting: 8650100.981797\n    test 1496 line 251 _ExactTM.northing: 9975084.168997\n    test 1497 line 251 _ExactTM.gamma: 89.767446\n    test 1498 line 251 _ExactTM.scale: 2.057289\n    test 1499 line 251 _ExactTM.lat: 28.804576\n    test 1500 line 251 _ExactTM.lon: 89.886072\n    test 1501 line 252 _ExactTM.easting: 2212701.180192\n    test 1502 line 252 _ExactTM.northing: 650348.100229\n    test 1503 line 252 _ExactTM.gamma: 1.970441\n    test 1504 line 252 _ExactTM.scale: 1.060830\n    test 1505 line 252 _ExactTM.lat: 5.542998\n    test 1506 line 252 _ExactTM.lon: 19.589578\n    test 1507 line 253 _ExactTM.easting: 6890222.326618\n    test 1508 line 253 _ExactTM.northing: 7506813.499547\n    test 1509 line 253 _ExactTM.gamma: 62.684825\n    test 1510 line 253 _ExactTM.scale: 1.638488\n    test 1511 line 253 _ExactTM.lat: 34.237147\n    test 1512 line 253 _ExactTM.lon: 73.678164\n    test 1513 line 254 _ExactTM.easting: 6692260.067325\n    test 1514 line 254 _ExactTM.northing: 4244174.008110\n    test 1515 line 254 _ExactTM.gamma: 31.812920\n    test 1516 line 254 _ExactTM.scale: 1.604640\n    test 1517 line 254 _ExactTM.lat: 22.704949\n    test 1518 line 254 _ExactTM.lon: 57.877010\n    test 1519 line 255 _ExactTM.easting: 1225564.137190\n    test 1520 line 255 _ExactTM.northing: 4778923.924144\n    test 1521 line 255 _ExactTM.gamma: 10.083419\n    test 1522 line 255 _ExactTM.scale: 1.018134\n    test 1523 line 255 _ExactTM.lat: 42.192424\n    test 1524 line 255 _ExactTM.lon: 14.828196\n    test 1525 line 256 _ExactTM.easting: 12341116.154950\n    test 1526 line 256 _ExactTM.northing: 5081855.521966\n    test 1527 line 256 _ExactTM.gamma: 45.712546\n    test 1528 line 256 _ExactTM.scale: 3.535170\n    test 1529 line 256 _ExactTM.lat: 11.481151\n    test 1530 line 256 _ExactTM.lon: 78.189236\n    test 1531 line 257 _ExactTM.easting: 6673845.021771\n    test 1532 line 257 _ExactTM.northing: 1177587.190565\n    test 1533 line 257 _ExactTM.gamma: 8.389141\n    test 1534 line 257 _ExactTM.scale: 1.605171\n    test 1535 line 257 _ExactTM.lat: 6.609626\n    test 1536 line 257 _ExactTM.lon: 51.735783\n    test 1537 line 258 _ExactTM.easting: 6966354.690417\n    test 1538 line 258 _ExactTM.northing: 3641802.005093\n    test 1539 line 258 _ExactTM.gamma: 27.409636\n    test 1540 line 258 _ExactTM.scale: 1.661469\n    test 1541 line 258 _ExactTM.lat: 19.059369\n    test 1542 line 258 _ExactTM.lon: 57.526439\n    test 1543 max forward error: 2.048910e-08\n    test 1544 max reverse error: 1.278977e-13\n    test 1545 _ExactTM.scale0: 0.9996\n    test 1546 _ExactTM.datum: WGS84\n    test 1547 _ExactTM.datum.ellipsoid.KsOrder: 8\n    test 1548 WGS84.KsOrder: 8\n\n    all 1548 testExactTMcoords.py tests passed, 1 skipped (pygeodesy 26.3.26 PyPy 7.3.17 Python 3.10.14 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 1.162 sec\nrunning /opt/local/bin/p....y3.10 -W default ~/PyGeodesy/test/testFmath.py\n# lazily imported pygeodesy.basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.DeprecationWarnings from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isint from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isLazy from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.issubclassof from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.iterNumpy2over from .iters by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.LazyImportError from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.karney by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.NN from .interns by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.normDMS from .dms by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.pairs from .streprs by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.printf from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.property_RO from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.typename from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.EPS from .constants by testFmath.py line 11\n# lazily imported pygeodesy.Fcbrt from .fmath by testFmath.py line 11\n# lazily imported pygeodesy.Fhypot from .fmath by testFmath.py line 11\n# lazily imported pygeodesy.INF from .constants by testFmath.py line 11\n# lazily imported pygeodesy.Fpowers from .fmath by testFmath.py line 11\n# lazily imported pygeodesy.Froot from .fmath by testFmath.py line 11\n# lazily imported pygeodesy.Fsqrt from .fmath by testFmath.py line 11\n# lazily imported pygeodesy.Fsum from .fsums by testFmath.py line 11\n# lazily imported pygeodesy.bqrt from .fmath by testFmath.py line 11\n# lazily imported pygeodesy.cbrt from .fmath by testFmath.py line 11\n# lazily imported pygeodesy.cbrt2 from .fmath by testFmath.py line 11\n# lazily imported pygeodesy.euclid_ from .fmath by testFmath.py line 11\n# lazily imported pygeodesy.Ellipsoids from .ellipsoids by testFmath.py line 11\n# lazily imported pygeodesy.facos1 from .fmath by testFmath.py line 11\n# lazily imported pygeodesy.fasin1 from .fmath by testFmath.py line 11\n# lazily imported pygeodesy.fatan from .fmath by testFmath.py line 11\n# lazily imported pygeodesy.fatan1 from .fmath by testFmath.py line 11\n# lazily imported pygeodesy.fatan2 from .fmath by testFmath.py line 11\n# lazily imported pygeodesy.fhorner from .fmath by testFmath.py line 11\n# lazily imported pygeodesy.fma from .fmath by testFmath.py line 11\n# lazily imported pygeodesy.f2mul_ from .fmath by testFmath.py line 11\n# lazily imported pygeodesy.fpolynomial from .fmath by testFmath.py line 11\n# lazily imported pygeodesy.fpowers from .fmath by testFmath.py line 11\n# lazily imported pygeodesy.frandoms from .fmath by testFmath.py line 11\n# lazily imported pygeodesy.fsum_ from .fsums by testFmath.py line 11\n# lazily imported pygeodesy.hypot from .fmath by testFmath.py line 11\n# lazily imported pygeodesy.hypot_ from .fmath by testFmath.py line 11\n# lazily imported pygeodesy.hypot2_ from .fmath by testFmath.py line 11\n# lazily imported pygeodesy.isinf from .constants by testFmath.py line 11\n# lazily imported pygeodesy.norm_ from .fmath by testFmath.py line 11\n# lazily imported pygeodesy.signOf from .basics by testFmath.py line 11\n# lazily imported pygeodesy.sqrt3 from .fmath by testFmath.py line 11\n# lazily imported pygeodesy.sqrt_a from .fmath by testFmath.py line 11\n# lazily imported pygeodesy.zcrt from .fmath by testFmath.py line 11\n# lazily imported pygeodesy.zqrt from .fmath by testFmath.py line 11\n\n    testing testFmath.py 25.09.09 (module pygeodesy.fmath 26.03.25) isLazy=3\n    test 1 fpolynomialA: 1.21197509765625\n    test 2 fhornerA: 1.21197509765625\n    test 3 fpolynomialB: 0.1513671875\n    test 4 fhornerB: 0.1513671875\n\n    test 5 fpolynomialA: 1.21197509765625\n    test 6 fhornerA: 1.21197509765625\n    test 7 fpolynomialB: 0.1513671875\n    test 8 fhornerB: 0.1513671875\n\n    test 9 fpolynomialA: 1.21197509765625\n    test 10 fhornerA: 1.21197509765625\n    test 11 fpolynomialB: 0.1513671875\n    test 12 fhornerB: 0.1513671875\n\n    test 13 fpolynomialA: 1.21197509765625\n    test 14 fhornerA: 1.21197509765625\n    test 15 fpolynomialB: 0.1513671875\n    test 16 fhornerB: 0.1513671875\n\n    test 17 fpolynomialA: 1.21197509765625\n    test 18 fhornerA: 1.21197509765625\n    test 19 fpolynomialB: 0.1513671875\n    test 20 fhornerB: 0.1513671875\n\n    test 21 fpolynomialA: 1.21197509765625\n    test 22 fhornerA: 1.21197509765625\n    test 23 fpolynomialB: 0.1513671875\n    test 24 fhornerB: 0.1513671875\n\n    test 25 fpolynomialA: 1.21197509765625\n    test 26 fhornerA: 1.21197509765625\n    test 27 fpolynomialB: 0.1513671875\n    test 28 fhornerB: 0.1513671875\n\n    test 29 fpolynomialA: 1.21197509765625\n    test 30 fhornerA: 1.21197509765625\n    test 31 fpolynomialB: 0.1513671875\n    test 32 fhornerB: 0.1513671875\n\n    test 33 fpolynomialA: 1.21197509765625\n    test 34 fhornerA: 1.21197509765625\n    test 35 fpolynomialB: 0.1513671875\n    test 36 fhornerB: 0.1513671875\n\n    test 37 fpolynomialA: 1.21197509765625\n    test 38 fhornerA: 1.21197509765625\n    test 39 fpolynomialB: 0.1513671875\n    test 40 fhornerB: 0.1513671875\n\n    test 41 fpolynomialA: 1.21197509765625\n    test 42 fhornerA: 1.21197509765625\n    test 43 fpolynomialB: 0.1513671875\n    test 44 fhornerB: 0.1513671875\n\n    test 45 fpolynomialA: 1.21197509765625\n    test 46 fhornerA: 1.21197509765625\n    test 47 fpolynomialB: 0.1513671875\n    test 48 fhornerB: 0.1513671875\n\n    test 49 fpolynomialA: 1.21197509765625\n    test 50 fhornerA: 1.21197509765625\n    test 51 fpolynomialB: 0.1513671875\n    test 52 fhornerB: 0.1513671875\n\n    test 53 fpolynomialA: 1.21197509765625\n    test 54 fhornerA: 1.21197509765625\n    test 55 fpolynomialB: 0.1513671875\n    test 56 fhornerB: 0.1513671875\n\n    test 57 fpolynomialA: 1.21197509765625\n    test 58 fhornerA: 1.21197509765625\n    test 59 fpolynomialB: 0.1513671875\n    test 60 fhornerB: 0.1513671875\n\n    test 61 fpolynomialA: 1.21197509765625\n    test 62 fhornerA: 1.21197509765625\n    test 63 fpolynomialB: 0.1513671875\n    test 64 fhornerB: 0.1513671875\n\n    test 65 fpolynomialA: 1.21197509765625\n    test 66 fhornerA: 1.21197509765625\n    test 67 fpolynomialB: 0.1513671875\n    test 68 fhornerB: 0.1513671875\n\n    test 69 fpolynomialA: 1.21197509765625\n    test 70 fhornerA: 1.21197509765625\n    test 71 fpolynomialB: 0.1513671875\n    test 72 fhornerB: 0.1513671875\n\n    test 73 fpolynomialA: 1.21197509765625\n    test 74 fhornerA: 1.21197509765625\n    test 75 fpolynomialB: 0.1513671875\n    test 76 fhornerB: 0.1513671875\n\n    test 77 fpolynomialA: 1.21197509765625\n    test 78 fhornerA: 1.21197509765625\n    test 79 fpolynomialB: 0.1513671875\n    test 80 fhornerB: 0.1513671875\n\n    test 81 fpolynomialA: 1.21197509765625\n    test 82 fhornerA: 1.21197509765625\n    test 83 fpolynomialB: 0.1513671875\n    test 84 fhornerB: 0.1513671875\n\n    test 85 fpolynomialA: 1.21197509765625\n    test 86 fhornerA: 1.21197509765625\n    test 87 fpolynomialB: 0.1513671875\n    test 88 fhornerB: 0.1513671875\n\n    test 89 fpolynomialA: 1.21197509765625\n    test 90 fhornerA: 1.21197509765625\n    test 91 fpolynomialB: 0.1513671875\n    test 92 fhornerB: 0.1513671875\n\n    test 93 fpolynomialA: 1.21197509765625\n    test 94 fhornerA: 1.21197509765625\n    test 95 fpolynomialB: 0.1513671875\n    test 96 fhornerB: 0.1513671875\n\n    test 97 fpolynomialA: 1.21197509765625\n    test 98 fhornerA: 1.21197509765625\n    test 99 fpolynomialB: 0.1513671875\n    test 100 fhornerB: 0.1513671875\n\n    test 101 fpolynomialA: 1.21197509765625\n    test 102 fhornerA: 1.21197509765625\n    test 103 fpolynomialB: 0.1513671875\n    test 104 fhornerB: 0.1513671875\n\n    test 105 fpolynomialA: 1.21197509765625\n    test 106 fhornerA: 1.21197509765625\n    test 107 fpolynomialB: 0.1513671875\n    test 108 fhornerB: 0.1513671875\n\n    test 109 fpolynomialA: 1.21197509765625\n    test 110 fhornerA: 1.21197509765625\n    test 111 fpolynomialB: 0.1513671875\n    test 112 fhornerB: 0.1513671875\n\n    test 113 fpolynomialA: 1.21197509765625\n    test 114 fhornerA: 1.21197509765625\n    test 115 fpolynomialB: 0.1513671875\n    test 116 fhornerB: 0.1513671875\n\n    test 117 fpolynomialA: 1.21197509765625\n    test 118 fhornerA: 1.21197509765625\n    test 119 fpolynomialB: 0.1513671875\n    test 120 fhornerB: 0.1513671875\n\n    test 121 fpolynomialA: 1.21197509765625\n    test 122 fhornerA: 1.21197509765625\n    test 123 fpolynomialB: 0.1513671875\n    test 124 fhornerB: 0.1513671875\n\n    test 125 fpolynomialA: 1.21197509765625\n    test 126 fhornerA: 1.21197509765625\n    test 127 fpolynomialB: 0.1513671875\n    test 128 fhornerB: 0.1513671875\n\n    test 129 fpolynomialA: 1.21197509765625\n    test 130 fhornerA: 1.21197509765625\n    test 131 fpolynomialB: 0.1513671875\n    test 132 fhornerB: 0.1513671875\n\n    test 133 fpowers: 10\n    test 134 fpowers: 2\n    test 135 fpowers: 1024\n    test 136 fpowers: 4\n    test 137 fpowers: 16\n    test 138 fpowers: 1024\n    test 139 fpowers: 4\n    test 140 fpowers: 8\n    test 141 fpowers: 512\n\n    test 142 Airy1830: 6366914.608925221\n    test 143 Airy1830: 6366914.608925221\n    test 144 Airy1830: 6366914.608925221\n    test 145 Airy1830: 6366914.608925221\n\n    test 146 AiryModified: 6366691.774619882  FAILED, KNOWN, expected 6366691.774619881\n    test 147 AiryModified: 6366691.774619882  FAILED, KNOWN, expected 6366691.774619881\n    test 148 AiryModified: 6366691.774619882  FAILED, KNOWN, expected 6366691.774619881\n    test 149 AiryModified: 6366691.774619882  FAILED, KNOWN, expected 6366691.774619881\n\n    test 150 ATS1977: 6367447.141166951  FAILED, KNOWN, expected 6367447.141166950\n    test 151 ATS1977: 6367447.141166951  FAILED, KNOWN, expected 6367447.141166950\n    test 152 ATS1977: 6367447.141166951  FAILED, KNOWN, expected 6367447.141166950\n    test 153 ATS1977: 6367447.141166951  FAILED, KNOWN, expected 6367447.141166950\n\n    test 154 Australia1966: 6367471.848532283  FAILED, KNOWN, expected 6367471.848532284\n    test 155 Australia1966: 6367471.848532283  FAILED, KNOWN, expected 6367471.848532284\n    test 156 Australia1966: 6367471.848532283  FAILED, KNOWN, expected 6367471.848532284\n    test 157 Australia1966: 6367471.848532283  FAILED, KNOWN, expected 6367471.848532284\n\n    test 158 Bessel1841: 6366742.520233950\n    test 159 Bessel1841: 6366742.520233950\n    test 160 Bessel1841: 6366742.520233950\n    test 161 Bessel1841: 6366742.520233950\n\n    test 162 BesselModified: 6366837.224747659\n    test 163 BesselModified: 6366837.224747659\n    test 164 BesselModified: 6366837.224747659\n    test 165 BesselModified: 6366837.224747659\n\n    test 166 CGCS2000: 6367449.145771047  FAILED, KNOWN, expected 6367449.145771048\n    test 167 CGCS2000: 6367449.145771047  FAILED, KNOWN, expected 6367449.145771048\n    test 168 CGCS2000: 6367449.145771047  FAILED, KNOWN, expected 6367449.145771048\n    test 169 CGCS2000: 6367449.145771047  FAILED, KNOWN, expected 6367449.145771048\n\n    test 170 Clarke1866: 6367399.689169783\n    test 171 Clarke1866: 6367399.689169783\n    test 172 Clarke1866: 6367399.689169783\n    test 173 Clarke1866: 6367399.689169783\n\n    test 174 Clarke1880: 6367386.643980513  FAILED, KNOWN, expected 6367386.643980514\n    test 175 Clarke1880: 6367386.643980513  FAILED, KNOWN, expected 6367386.643980514\n    test 176 Clarke1880: 6367386.643980513  FAILED, KNOWN, expected 6367386.643980514\n    test 177 Clarke1880: 6367386.643980513  FAILED, KNOWN, expected 6367386.643980514\n\n    test 178 Clarke1880IGN: 6367386.736673363\n    test 179 Clarke1880IGN: 6367386.736673363\n    test 180 Clarke1880IGN: 6367386.736673363\n    test 181 Clarke1880IGN: 6367386.736673363\n\n    test 182 Clarke1880Mod: 6367386.692362010  FAILED, KNOWN, expected 6367386.692362011\n    test 183 Clarke1880Mod: 6367386.692362010  FAILED, KNOWN, expected 6367386.692362011\n    test 184 Clarke1880Mod: 6367386.692362010  FAILED, KNOWN, expected 6367386.692362011\n    test 185 Clarke1880Mod: 6367386.692362010  FAILED, KNOWN, expected 6367386.692362011\n\n    test 186 CPM1799: 6366208.881847842  FAILED, KNOWN, expected 6366208.881847841\n    test 187 CPM1799: 6366208.881847842  FAILED, KNOWN, expected 6366208.881847841\n    test 188 CPM1799: 6366208.881847842  FAILED, KNOWN, expected 6366208.881847841\n    test 189 CPM1799: 6366208.881847842  FAILED, KNOWN, expected 6366208.881847841\n\n    test 190 Delambre1810: 6366197.076843344\n    test 191 Delambre1810: 6366197.076843344\n    test 192 Delambre1810: 6366197.076843344\n    test 193 Delambre1810: 6366197.076843344\n\n    test 194 Engelis1985: 6367448.175079710  FAILED, KNOWN, expected 6367448.175079712\n    test 195 Engelis1985: 6367448.175079710  FAILED, KNOWN, expected 6367448.175079712\n    test 196 Engelis1985: 6367448.175079710  FAILED, KNOWN, expected 6367448.175079712\n    test 197 Engelis1985: 6367448.175079710  FAILED, KNOWN, expected 6367448.175079712\n\n    test 198 Everest1969: 6366699.578395008  FAILED, KNOWN, expected 6366699.578395009\n    test 199 Everest1969: 6366699.578395008  FAILED, KNOWN, expected 6366699.578395009\n    test 200 Everest1969: 6366699.578395008  FAILED, KNOWN, expected 6366699.578395009\n    test 201 Everest1969: 6366699.578395008  FAILED, KNOWN, expected 6366699.578395009\n\n    test 202 Everest1975: 6366703.060499237\n    test 203 Everest1975: 6366703.060499237\n    test 204 Everest1975: 6366703.060499237\n    test 205 Everest1975: 6366703.060499237\n\n    test 206 Fisher1968: 6367463.656043807\n    test 207 Fisher1968: 6367463.656043807\n    test 208 Fisher1968: 6367463.656043807\n    test 209 Fisher1968: 6367463.656043807\n\n    test 210 GEM10C: 6367449.145824739  FAILED, KNOWN, expected 6367449.145824740\n    test 211 GEM10C: 6367449.145824739  FAILED, KNOWN, expected 6367449.145824740\n    test 212 GEM10C: 6367449.145824739  FAILED, KNOWN, expected 6367449.145824740\n    test 213 GEM10C: 6367449.145824739  FAILED, KNOWN, expected 6367449.145824740\n\n    test 214 GPES: 6378135.000000000\n    test 215 GPES: 6378135.000000000\n    test 216 GPES: 6378135.000000000\n    test 217 GPES: 6378135.000000000\n\n    test 218 GRS67: 6367471.747065325\n    test 219 GRS67: 6367471.747065325\n    test 220 GRS67: 6367471.747065325\n    test 221 GRS67: 6367471.747065325\n\n    test 222 GRS80: 6367449.145771043\n    test 223 GRS80: 6367449.145771043\n    test 224 GRS80: 6367449.145771043\n    test 225 GRS80: 6367449.145771043\n\n    test 226 Helmert1906: 6367513.572270742\n    test 227 Helmert1906: 6367513.572270742\n    test 228 Helmert1906: 6367513.572270742\n    test 229 Helmert1906: 6367513.572270742\n\n    test 230 IAU76: 6367452.132788436\n    test 231 IAU76: 6367452.132788436\n    test 232 IAU76: 6367452.132788436\n    test 233 IAU76: 6367452.132788436\n\n    test 234 IERS1989: 6367448.139491247  FAILED, KNOWN, expected 6367448.139491246\n    test 235 IERS1989: 6367448.139491247  FAILED, KNOWN, expected 6367448.139491246\n    test 236 IERS1989: 6367448.139491247  FAILED, KNOWN, expected 6367448.139491246\n    test 237 IERS1989: 6367448.139491247  FAILED, KNOWN, expected 6367448.139491246\n\n    test 238 IERS1992TOPEX: 6367448.446996409\n    test 239 IERS1992TOPEX: 6367448.446996409\n    test 240 IERS1992TOPEX: 6367448.446996409\n    test 241 IERS1992TOPEX: 6367448.446996409\n\n    test 242 IERS2003: 6367448.717710576  FAILED, KNOWN, expected 6367448.717710577\n    test 243 IERS2003: 6367448.717710576  FAILED, KNOWN, expected 6367448.717710577\n    test 244 IERS2003: 6367448.717710576  FAILED, KNOWN, expected 6367448.717710577\n    test 245 IERS2003: 6367448.717710576  FAILED, KNOWN, expected 6367448.717710577\n\n    test 246 Intl1924: 6367654.500057585  FAILED, KNOWN, expected 6367654.500057584\n    test 247 Intl1924: 6367654.500057585  FAILED, KNOWN, expected 6367654.500057584\n    test 248 Intl1924: 6367654.500057585  FAILED, KNOWN, expected 6367654.500057584\n    test 249 Intl1924: 6367654.500057585  FAILED, KNOWN, expected 6367654.500057584\n\n    test 250 Intl1967: 6367469.338944457\n    test 251 Intl1967: 6367469.338944457\n    test 252 Intl1967: 6367469.338944457\n    test 253 Intl1967: 6367469.338944457\n\n    test 254 Krassovski1940: 6367558.496874981\n    test 255 Krassovski1940: 6367558.496874981\n    test 256 Krassovski1940: 6367558.496874981\n    test 257 Krassovski1940: 6367558.496874981\n\n    test 258 Krassowsky1940: 6367558.496874981\n    test 259 Krassowsky1940: 6367558.496874981\n    test 260 Krassowsky1940: 6367558.496874981\n    test 261 Krassowsky1940: 6367558.496874981\n\n    test 262 Maupertuis1738: 6380564.130118373\n    test 263 Maupertuis1738: 6380564.130118373\n    test 264 Maupertuis1738: 6380564.130118373\n    test 265 Maupertuis1738: 6380564.130118373\n\n    test 266 Mercury1960: 6367479.629236430\n    test 267 Mercury1960: 6367479.629236430\n    test 268 Mercury1960: 6367479.629236430\n    test 269 Mercury1960: 6367479.629236430\n\n    test 270 Mercury1968Mod: 6367463.656043807\n    test 271 Mercury1968Mod: 6367463.656043807\n    test 272 Mercury1968Mod: 6367463.656043807\n    test 273 Mercury1968Mod: 6367463.656043807\n\n    test 274 NWL1965: 6367456.873668412\n    test 275 NWL1965: 6367456.873668412\n    test 276 NWL1965: 6367456.873668412\n    test 277 NWL1965: 6367456.873668412\n\n    test 278 OSU86F: 6367448.347165301  FAILED, KNOWN, expected 6367448.347165302\n    test 279 OSU86F: 6367448.347165301  FAILED, KNOWN, expected 6367448.347165302\n    test 280 OSU86F: 6367448.347165301  FAILED, KNOWN, expected 6367448.347165302\n    test 281 OSU86F: 6367448.347165301  FAILED, KNOWN, expected 6367448.347165302\n\n    test 282 OSU91A: 6367448.446997731  FAILED, KNOWN, expected 6367448.446997732\n    test 283 OSU91A: 6367448.446997731  FAILED, KNOWN, expected 6367448.446997732\n    test 284 OSU91A: 6367448.446997731  FAILED, KNOWN, expected 6367448.446997732\n    test 285 OSU91A: 6367448.446997731  FAILED, KNOWN, expected 6367448.446997732\n\n    test 286 Plessis1817: 6366197.157107386\n    test 287 Plessis1817: 6366197.157107386\n    test 288 Plessis1817: 6366197.157107386\n    test 289 Plessis1817: 6366197.157107386\n\n    test 290 PZ90: 6367448.169554430\n    test 291 PZ90: 6367448.169554430\n    test 292 PZ90: 6367448.169554430\n    test 293 PZ90: 6367448.169554430\n\n    test 294 SGS85: 6367448.139491247  FAILED, KNOWN, expected 6367448.139491246\n    test 295 SGS85: 6367448.139491247  FAILED, KNOWN, expected 6367448.139491246\n    test 296 SGS85: 6367448.139491247  FAILED, KNOWN, expected 6367448.139491246\n    test 297 SGS85: 6367448.139491247  FAILED, KNOWN, expected 6367448.139491246\n\n    test 298 SoAmerican1969: 6367471.848532285\n    test 299 SoAmerican1969: 6367471.848532285\n    test 300 SoAmerican1969: 6367471.848532285\n    test 301 SoAmerican1969: 6367471.848532285\n\n    test 302 Sphere: 6371008.771415000\n    test 303 Sphere: 6371008.771415000\n    test 304 Sphere: 6371008.771415000\n    test 305 Sphere: 6371008.771415000\n\n    test 306 SphereAuthalic: 6371000.000000000\n    test 307 SphereAuthalic: 6371000.000000000\n    test 308 SphereAuthalic: 6371000.000000000\n    test 309 SphereAuthalic: 6371000.000000000\n\n    test 310 SpherePopular: 6378137.000000000\n    test 311 SpherePopular: 6378137.000000000\n    test 312 SpherePopular: 6378137.000000000\n    test 313 SpherePopular: 6378137.000000000\n\n    test 314 Struve1860: 6367482.318325493\n    test 315 Struve1860: 6367482.318325493\n    test 316 Struve1860: 6367482.318325493\n    test 317 Struve1860: 6367482.318325493\n\n    test 318 WGS60: 6367478.630911891\n    test 319 WGS60: 6367478.630911891\n    test 320 WGS60: 6367478.630911891\n    test 321 WGS60: 6367478.630911891\n\n    test 322 WGS66: 6367456.873668412\n    test 323 WGS66: 6367456.873668412\n    test 324 WGS66: 6367456.873668412\n    test 325 WGS66: 6367456.873668412\n\n    test 326 WGS72: 6367447.248623827  FAILED, KNOWN, expected 6367447.248623826\n    test 327 WGS72: 6367447.248623827  FAILED, KNOWN, expected 6367447.248623826\n    test 328 WGS72: 6367447.248623827  FAILED, KNOWN, expected 6367447.248623826\n    test 329 WGS72: 6367447.248623827  FAILED, KNOWN, expected 6367447.248623826\n\n    test 330 WGS84: 6367449.145823414\n    test 331 WGS84: 6367449.145823414\n    test 332 WGS84: 6367449.145823414\n    test 333 WGS84: 6367449.145823414\n\n    test 334 WGS84_NGS: 6367449.145771043\n    test 335 WGS84_NGS: 6367449.145771043\n    test 336 WGS84_NGS: 6367449.145771043\n    test 337 WGS84_NGS: 6367449.145771043\n\n    test 338 hypot: 1\n    test 339 sqrt_a: 0.6102683302836\n    test 340 sqrt_a: 0.6102683302836\n    test 341 hypot_ : 1.00001250\n    test 342 euclid_: 1.00207107  FAILED, KNOWN, expected 1.00001250\n    test 343 hypot2_: 1.00002500\n    test 344 norm_  : 1.00000000\n    test 345 hypot_ : 3606.937759\n    test 346 euclid_: 3845.584412  FAILED, KNOWN, expected 3859.423403\n    test 347 hypot2_: 13010000.0\n    test 348 norm_  : 1.0\n    test 349 hypot_ : 40112.842\n    test 350 hypot2_: 1609040100.0\n    test 351 euclid_: 41277.666  FAILED, KNOWN, expected 41316.227\n    test 352 bqrt: 2.00\n    test 353 cbrt: 3.00\n    test 354 cbrt: -3.00\n    test 355 cbrt2: 9.00\n    test 356 cbrt2: 9.00\n    test 357 sqrt3: 27.00\n    test 358 zcrt: 2.00\n    test 359 zqrt: 2.00\n    test 360 facos1: 0.005%\n    test 361 fasin1: 0.439%\n    test 362 fatan : 0.134%\n    test 363 fatan1: 2.834%\n    test 364 fatan2: 0.321%\n\n    test 365 Fhypot: Fhypot[1] (5.0, 0)\n    test 366 Fhypot: Fhypot[1] (9.43398, 0)\n    test 367 Fhypot: Fhypot[1] (5.0, 0)\n    test 368 Fhypot: Fhypot[1] (-2.18182, 0)\n    test 369 Fhypot: Fhypot[1] (-12, 0)\n    test 370 Fhypot: Fhypot[1] (1.41421, 0)\n    test 371 Fhypot: Fhypot[1] (-0.5, 0)\n    test 372 Fhypot: Fhypot[1] (-0.333333, 0)\n# imported pygeodesy.basics into errors.py line 531\n    test 373 Fhypot: fmath.Fhypot(<Fsum[1] (-1, 0) at 0x8a9dd5da8>, -1, root=0): 1.0 / 0: float division by zero\n\n    test 374 Fsqrt: Fsqrt[1] (3.0, 0)\n    test 375 Fsqrt: Fcbrt[1] (3.0, 0)\n    test 376 Fsqrt: Fsqrt[1] (1.41421, 0)\n    test 377 Fsqrt: Fsqrt[1] (1.41421, 0)\n    test 378 Froot: Froot[1] (0.5, 0)\n    test 379 Froot: Froot[1] (0.5, 0)\n    test 380 Fsqrt: fmath.Fsqrt(<Fsum[1] (-1, 0) at 0x8a9dd5e18>, -1, root=2): -2.0 root Fsum[1] (0.5, 0): complex (8.65956056235e-17+1.41421356237j) from 2-arg pow(-2, 0.5)\n    test 381 Fsqrt: fmath.Froot(<Fsum[1] (-1, 0) at 0x8a9dd5e18>, -1, root=0): 1.0 / 0: float division by zero\n    test 382 Froot: Froot[1] (-0.25, 0)\n\n    test 383 Fhypot2: 3.74165739e+100\n    test 384 Fpowers2: -1467.89542\n    test 385 Fsqrt2: 0.0541578006\n    test 386 Fcbrt2: 0.143144285\n\n    test 387 Fhypot3: 3.74165739e+100\n    test 388 Fpowers3: -16881.7154\n    test 389 Fsqrt3: 5.36080943e-05\n    test 390 Fcbrt3: 0.00142174021\n\n    test 391 Fhypot4: 3.74165739e+100\n    test 392 Fpowers4: -1723.70141\n    test 393 Fsqrt4: 0.00484039916\n    test 394 Fcbrt4: 0.028614585\n\n    test 395 Fhypot5: 3.74165739e+100\n    test 396 Fpowers5: 365.124737\n    test 397 Fsqrt5: 0.448148418\n    test 398 Fcbrt5: 0.585618218\n\n    test 399 Fhypot6: 3.74165739e+100\n    test 400 Fpowers6: 523.671403\n    test 401 Fsqrt6: 0.0430933845\n    test 402 Fcbrt6: 0.122915618\n\n    test 403 Fhypot8: 3.74165739e+100\n    test 404 Fpowers8: -23525.9173\n    test 405 Fsqrt8: 0.121977256\n    test 406 Fcbrt8: 0.245953254\n\n    test 407 fma: 2.4412441982659e-05\n    test 408 fma: 6.365860485903399\n    test 409 abc: 6.3658604845404625  FAILED, KNOWN, expected 6.365860485903399\n\n    test 410 f2mul_: 24.0\n    test 411 f2mul_: inf\n    test 412 f2mul_: inf\n\n    72 of 412 testFmath.py tests (17.5%) FAILED, ALL KNOWN (pygeodesy 26.3.26 PyPy 7.3.17 Python 3.10.14 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 88.151 ms\nrunning /opt/local/bin/p....y3.10 -W default ~/PyGeodesy/test/testFormy.py\n./test/testFormy.py:28: DeprecationWarning: function L{cosineAndoyerLambert<pygeodesy.deprecated.functions.cosineAndoyerLambert>} has been DEPRECATED on 2024.12.31, use function L{pygeodesy.cosineLaw} with C{B{corr}=1}.\n  d = f(lat1, lon1, lat2, lon2, wrap=True, **kwds)\n./test/testFormy.py:28: DeprecationWarning: function L{cosineForsytheAndoyerLambert<pygeodesy.deprecated.functions.cosineForsytheAndoyerLambert>} has been DEPRECATED on 2024.12.31, use function L{pygeodesy.cosineLaw} with C{B{corr}=2}.\n  d = f(lat1, lon1, lat2, lon2, wrap=True, **kwds)\n./pygeodesy/formy.py:1097: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  if d.ellipsoid.geodesic:\n./pygeodesy/azimuthal.py:636: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return self.datum.ellipsoid.geodesic\n./pygeodesy/ellipsoidalKarney.py:94: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return self.datum.ellipsoid.geodesic\n# lazily imported pygeodesy.basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.DeprecationWarnings from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isint from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isLazy from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.issubclassof from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.iterNumpy2over from .iters by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.LazyImportError from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.karney by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.NN from .interns by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.normDMS from .dms by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.pairs from .streprs by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.printf from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.property_RO from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.typename from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.PI from .constants by testFormy.py line 11\n# lazily imported pygeodesy.PI_2 from .constants by testFormy.py line 11\n# lazily imported pygeodesy.R_M from .constants by testFormy.py line 11\n# lazily imported pygeodesy.angle2chord from .formy by testFormy.py line 11\n# lazily imported pygeodesy.antipode from .formy by testFormy.py line 11\n# lazily imported pygeodesy.bearing from .formy by testFormy.py line 11\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by <frozen importlib._bootstrap> line 1075\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by <frozen importlib._bootstrap> line 1075\n# lazily imported pygeodesy.Conformal2Tuple from .triaxials.triaxial5 by <frozen importlib._bootstrap> line 1075\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by classes.py line 21\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by classes.py line 21\n# lazily imported pygeodesy.Conformal2Tuple from .triaxials.triaxial5 by classes.py line 21\n# lazily imported pygeodesy.cosineAndoyerLambert from .deprecated.functions by testFormy.py line 11\n# lazily imported pygeodesy.chord2angle from .formy by testFormy.py line 11\n# lazily imported pygeodesy.cosineForsytheAndoyerLambert from .deprecated.functions by testFormy.py line 11\n# lazily imported pygeodesy.cosineLaw from .formy by testFormy.py line 11\n# lazily imported pygeodesy.Datums from .datums by testFormy.py line 11\n# lazily imported pygeodesy.equirectangular from .formy by testFormy.py line 11\n# lazily imported pygeodesy.euclidean from .formy by testFormy.py line 11\n# lazily imported pygeodesy.excessAbc_ from .formy by testFormy.py line 11\n# lazily imported pygeodesy.excessCagnoli_ from .formy by testFormy.py line 11\n# lazily imported pygeodesy.excessGirard_ from .formy by testFormy.py line 11\n# lazily imported pygeodesy.excessLHuilier_ from .formy by testFormy.py line 11\n# lazily imported pygeodesy.excessKarney from .formy by testFormy.py line 11\n# lazily imported pygeodesy.excessQuad from .formy by testFormy.py line 11\n# lazily imported pygeodesy.Degrees from .units by testFormy.py line 11\n# lazily imported pygeodesy.flatLocal from .formy by testFormy.py line 11\n# lazily imported pygeodesy.flatPolar from .formy by testFormy.py line 11\n# lazily imported pygeodesy.hartzell from .formy by testFormy.py line 11\n# lazily imported pygeodesy.haversine from .formy by testFormy.py line 11\n# lazily imported pygeodesy.heightOf from .formy by testFormy.py line 11\n# lazily imported pygeodesy.heightOrthometric from .formy by testFormy.py line 11\n# lazily imported pygeodesy.horizon from .formy by testFormy.py line 11\n# lazily imported pygeodesy.hubeny from .formy by testFormy.py line 11\n# lazily imported pygeodesy.IntersectionError from .errors by testFormy.py line 11\n# lazily imported pygeodesy.intersection2 from .formy by testFormy.py line 11\n# lazily imported pygeodesy.intersections2 from .formy by testFormy.py line 11\n# lazily imported pygeodesy.isantipode from .formy by testFormy.py line 11\n# lazily imported pygeodesy.isantipode_ from .formy by testFormy.py line 11\n# lazily imported pygeodesy.isnormal from .formy by testFormy.py line 11\n# lazily imported pygeodesy.isnormal_ from .formy by testFormy.py line 11\n# lazily imported pygeodesy.LatLon_ from .points by testFormy.py line 11\n# lazily imported pygeodesy.latlonDMS from .dms by testFormy.py line 11\n# lazily imported pygeodesy.LimitError from .errors by testFormy.py line 11\n# lazily imported pygeodesy.limiterrors from .errors by testFormy.py line 11\n# lazily imported pygeodesy.map1 from .basics by testFormy.py line 11\n# lazily imported pygeodesy.normal from .formy by testFormy.py line 11\n# lazily imported pygeodesy.parseDMS from .dms by testFormy.py line 11\n# lazily imported pygeodesy.radical2 from .formy by testFormy.py line 11\n# lazily imported pygeodesy.thomas from .formy by testFormy.py line 11\n# lazily imported pygeodesy.Vector3d from .vector3d by testFormy.py line 11\n# lazily imported pygeodesy.vincentys from .formy by testFormy.py line 11\n\n    testing testFormy.py 26.01.05 isLazy=3\n    test 1 angle2chord: 9009967.011\n    test 2 chord2angle: 1.570796\n    test 3 antipode1: (-89.0, -1.0)\n    test 4 antipode2: (89.0, 1.0)\n    test 5 bearing1: 251.364\n    test 6 bearing2: 251.364\n    test 7 bearing3: 249.614\n    test 8 excessAbc_: 11.9698\n    test 9 excessAbc_: 11.9698\n    test 10 excessCagnoli_: 11.9698\n    test 11 excessGirard_: 11.9698\n    test 12 excessLHuilier_: 11.9698\n    test 13 excessKarney: 56.9625\n    test 14 excessQuad: 56.9625\n    test 15 excessKarney: 44.0235\n    test 16 excessQuad: 44.0235\n    test 17 excessKarney: -44.0235\n    test 18 excessQuad: -44.0235\n\n    test 19 isantipode1: True\n    test 20 isantipode2: True\n    test 21 isantipode3: False\n    test 22 isantipode4: True\n    test 23 isantipode5: True\n    test 24 isantipode6: True\n    test 25 isantipode7: False\n    test 26 isantipode8: True\n\n    test 27 isnormal1: True\n    test 28 isnormal2: False\n    test 29 isnormal3: True\n    test 30 isnormal4: True\n    test 31 isnormal5: True\n    test 32 isnormal6: False\n    test 33 isnormal7: True\n    test 34 isnormal8: True\n# lazily imported pygeodesy.Triaxial from .triaxials.triaxial5 by ellipsoids.py line 1905\n# lazily imported pygeodesy.cartesianBase by formy.py line 933\n\n    test 35 hartzell: (884080.396945, 5592040.198472, 2927517.711001)\n# lazily imported pygeodesy.Triaxial from .triaxials.triaxial5 by ellipsoids.py line 1905\n# lazily imported pygeodesy.ecef by ecefLocals.py line 34\n    test 36 hartzell: 27.500482°N, 081.016111°E, +12669647.30  FAILED, KNOWN, expected 27.500482°N, 081.016111°E, +12669647.30, 'hartzell'\n# lazily imported pygeodesy.Triaxial from .triaxials.triaxial5 by ellipsoids.py line 1905\n    test 37 hartzell: (3642031.283571, 3678090.99925, 3714150.714929)\n# lazily imported pygeodesy.Triaxial from .triaxials.triaxial5 by ellipsoids.py line 1905\n    test 38 hartzell: 35.843738°N, 045.282243°E, +11296639.67  FAILED, KNOWN, expected 35.843738°N, 045.282243°E, +11296639.67, 'hartzell'\n# lazily imported pygeodesy.Triaxial from .triaxials.triaxial5 by ellipsoids.py line 1905\n    test 39 hartzell: (3647362.058328, 3683474.553955, 3703640.299338)\n# lazily imported pygeodesy.Triaxial from .triaxials.triaxial5 by ellipsoids.py line 1905\n    test 40 hartzell: 35.726966°N, 045.282243°E, +11296619.03  FAILED, KNOWN, expected 35.726966°N, 045.282243°E, +11296619.03, 'hartzell'\n    test 41 heightOf0: 2638958.23912\n    test 42 heightOf45: 5401080.43931\n    test 43 heightOf90: 6371008.77141\n    test 44 heightOf135: 5401080.43931\n    test 45 horizon0: 0.0\n    test 46 horizon10Km: 357099.672\n    test 47 horizon30Kft: 392310.704\n    test 48 horizon10Kft: 214877.422\n    test 49 normal1: (-89.0, 179.0)\n    test 50 normal2: (81.0, 180.0)\n    test 51 normal3: (81.0, -19.0)\n    test 52 normal4: (-81.0, 0.0)\n\n    test 53 haversine1 (0.00%): 298009.404\n    test 54 vincentys1 (0.00%): 298009.404\n    test 55 vincentys1 (0.00%): 298009.404\n    test 56 cosineAndoyerLambert1 (0.13%): 298395.796  FAILED, KNOWN, expected 298009.404\n    test 57 cosineForsytheAndoyerLambert1 (0.13%): 298396.056  FAILED, KNOWN, expected 298009.404\n    test 58 cosineLaw1 (0.00%): 298009.404\n    test 59 equirectangular1 (0.01%): 298039.206  FAILED, KNOWN, expected 298009.404\n    test 60 euclidean1 (5.26%): 313698.901  FAILED, KNOWN, expected 298009.404\n    test 61 flatLocal1 (0.14%): 298425.999  FAILED, KNOWN, expected 298009.404\n    test 62 flatPolar1 (8.67%): 323841.582  FAILED, KNOWN, expected 298009.404\n    test 63 thomas1 (0.13%): 298396.261  FAILED, KNOWN, expected 298009.404\n    test 64 hubeny1: <function flatLocal at 0x000000095781a980>\n\n    test 65 haversine2 (0.00%): 98164.988\n    test 66 vincentys2 (0.00%): 98164.988\n    test 67 vincentys2 (0.00%): 98164.988\n    test 68 cosineAndoyerLambert2 (0.10%): 98071.421  FAILED, KNOWN, expected 98164.988\n    test 69 cosineForsytheAndoyerLambert2 (0.10%): 98071.560  FAILED, KNOWN, expected 98164.988\n    test 70 cosineLaw2 (0.00%): 98164.988\n    test 71 equirectangular2 (0.00%): 98165.123  FAILED, KNOWN, expected 98164.988\n    test 72 euclidean2 (6.37%): 104419.458  FAILED, KNOWN, expected 98164.988\n    test 73 flatLocal2 (0.10%): 98071.693  FAILED, KNOWN, expected 98164.988\n    test 74 flatPolar2 (0.57%): 98725.040  FAILED, KNOWN, expected 98164.988\n    test 75 thomas2 (0.10%): 98071.535  FAILED, KNOWN, expected 98164.988\n    test 76 hubeny2: <function flatLocal at 0x000000095781a980>\n\n    test 77 haversine3 (0.00%): 651816.987\n    test 78 vincentys3 (0.00%): 651816.987\n    test 79 vincentys3 (0.00%): 651816.987\n    test 80 cosineAndoyerLambert3 (0.25%): 653456.144  FAILED, KNOWN, expected 651816.987\n    test 81 cosineForsytheAndoyerLambert3 (0.25%): 653456.175  FAILED, KNOWN, expected 651816.987\n    test 82 cosineLaw3 (0.00%): 651816.987\n    test 83 equirectangular3 (0.03%): 652041.760  FAILED, KNOWN, expected 651816.987\n    test 84 euclidean3 (4.37%): 680281.470  FAILED, KNOWN, expected 651816.987\n    test 85 flatLocal3 (0.29%): 653681.559  FAILED, KNOWN, expected 651816.987\n    test 86 flatPolar3 (13.00%): 736534.840  FAILED, KNOWN, expected 651816.987\n    test 87 thomas3 (0.25%): 653456.933  FAILED, KNOWN, expected 651816.987\n    test 88 hubeny3: <function flatLocal at 0x000000095781a980>\n\n    test 89 haversine4 (0.00%): 4084985.780\n    test 90 vincentys4 (0.00%): 4084985.780\n    test 91 vincentys4 (0.00%): 4084985.780\n    test 92 cosineAndoyerLambert4 (0.24%): 4094954.008  FAILED, KNOWN, expected 4084985.780\n    test 93 cosineForsytheAndoyerLambert4 (0.24%): 4094953.639  FAILED, KNOWN, expected 4084985.780\n    test 94 cosineLaw4 (0.00%): 4084985.780\n    test 95 equirectangular4 (1.26%): 4136407.022  FAILED, KNOWN, expected 4084985.780\n    test 96 euclidean4 (4.22%): 4257296.511  FAILED, KNOWN, expected 4084985.780\n    test 97 flatLocal4 (1.51%): 4146513.247  FAILED, KNOWN, expected 4084985.780\n    test 98 flatPolar4 (12.31%): 4587896.452  FAILED, KNOWN, expected 4084985.780\n    test 99 thomas4 (0.24%): 4094958.301  FAILED, KNOWN, expected 4084985.780\n    test 100 hubeny4: <function flatLocal at 0x000000095781a980>\n\n    test 101 haversine5 (0.00%): 9670051.606\n    test 102 vincentys5 (0.00%): 9670051.606\n    test 103 vincentys5 (0.00%): 9670051.606\n    test 104 cosineAndoyerLambert5 (0.21%): 9690752.610  FAILED, KNOWN, expected 9670051.606\n    test 105 cosineForsytheAndoyerLambert5 (0.21%): 9690746.120  FAILED, KNOWN, expected 9670051.606\n    test 106 cosineLaw5 (0.00%): 9670051.606\n    test 107 equirectangular5 (7.79%): 10423307.214  FAILED, KNOWN, expected 9670051.606\n    test 108 euclidean5 (9.34%): 10573030.726  FAILED, KNOWN, expected 9670051.606\n    test 109 flatLocal5 (8.03%): 10446503.342  FAILED, KNOWN, expected 9670051.606\n    test 110 flatPolar5 (55.59%): 15045906.074  FAILED, KNOWN, expected 9670051.606\n    test 111 thomas5 (0.21%): 9690767.767  FAILED, KNOWN, expected 9670051.606\n    test 112 hubeny5: <function flatLocal at 0x000000095781a980>\n\n    test 113 haversine6 (0.00%): 10496496.577\n    test 114 vincentys6 (0.00%): 10496496.577\n    test 115 vincentys6 (0.00%): 10496496.577\n    test 116 cosineAndoyerLambert6 (0.18%): 10477328.664  FAILED, KNOWN, expected 10496496.577\n    test 117 cosineForsytheAndoyerLambert6 (0.18%): 10477342.084  FAILED, KNOWN, expected 10496496.577\n    test 118 cosineLaw6 (0.00%): 10496496.577\n    test 119 equirectangular6 (3.32%): 10844969.236  FAILED, KNOWN, expected 10496496.577\n    test 120 euclidean6 (4.50%): 10968488.107  FAILED, KNOWN, expected 10496496.577\n    test 121 flatLocal6 (3.07%): 10818798.605  FAILED, KNOWN, expected 10496496.577\n    test 122 flatPolar6 (23.87%): 13002288.857  FAILED, KNOWN, expected 10496496.577\n    test 123 thomas6 (0.18%): 10477316.498  FAILED, KNOWN, expected 10496496.577\n    test 124 hubeny6: <function flatLocal at 0x000000095781a980>\n\n    test 125 haversine7 (0.00%): 8998396.669\n    test 126 vincentys7 (0.00%): 8998396.669\n    test 127 vincentys7 (0.00%): 8998396.669\n    test 128 cosineAndoyerLambert7 (0.27%): 8974227.489  FAILED, KNOWN, expected 8998396.669\n    test 129 cosineForsytheAndoyerLambert7 (0.27%): 8974238.592  FAILED, KNOWN, expected 8998396.669\n    test 130 cosineLaw7 (0.00%): 8998396.669\n    test 131 equirectangular7 (2.05%): 9182626.289  FAILED, KNOWN, expected 8998396.669\n    test 132 euclidean7 (7.76%): 9696965.812  FAILED, KNOWN, expected 8998396.669\n    test 133 flatLocal7 (1.71%): 9151831.117  FAILED, KNOWN, expected 8998396.669\n    test 134 flatPolar7 (17.56%): 10578638.162  FAILED, KNOWN, expected 8998396.669\n    test 135 thomas7 (0.27%): 8974216.867  FAILED, KNOWN, expected 8998396.669\n    test 136 hubeny7: <function flatLocal at 0x000000095781a980>\n\n    test 137 haversine8 (0.00%): 6906867.946\n    test 138 vincentys8 (0.00%): 6906867.946\n    test 139 vincentys8 (0.00%): 6906867.946\n    test 140 cosineAndoyerLambert8 (0.13%): 6916085.969  FAILED, KNOWN, expected 6906867.946\n    test 141 cosineForsytheAndoyerLambert8 (0.13%): 6916085.333  FAILED, KNOWN, expected 6906867.946\n    test 142 cosineLaw8 (0.00%): 6906867.946\n    test 143 equirectangular8 (0.91%): 6969581.760  FAILED, KNOWN, expected 6906867.946\n    test 144 euclidean8 (6.54%): 7358706.022  FAILED, KNOWN, expected 6906867.946\n    test 145 flatLocal8 (1.04%): 6978905.097  FAILED, KNOWN, expected 6906867.946\n    test 146 flatPolar8 (23.23%): 8511564.321  FAILED, KNOWN, expected 6906867.946\n    test 147 thomas8 (0.13%): 6916087.828  FAILED, KNOWN, expected 6906867.946\n    test 148 hubeny8: <function flatLocal at 0x000000095781a980>\n\n    test 149 haversine9 (0.01%): 8045325.213  FAILED, KNOWN, expected 8044806.076\n    test 150 vincentys9 (0.01%): 8045325.213  FAILED, KNOWN, expected 8044806.076\n    test 151 cosineAndoyerLambert9 (0.07%): 8050357.566  FAILED, KNOWN, expected 8044806.076\n    test 152 cosineForsytheAndoyerLambert9 (0.07%): 8050363.635  FAILED, KNOWN, expected 8044806.076\n    test 153 cosineLaw9 (0.01%): 8045325.213  FAILED, KNOWN, expected 8044806.076\n    test 154 flatLocal9 (15.21%): 9268128.573  FAILED, KNOWN, expected 8044806.076\n    test 155 thomas9 (0.07%): 8050370.796  FAILED, KNOWN, expected 8044806.076\n    test 156 hubeny9: <function flatLocal at 0x000000095781a980>\n\n    test 157 intersection2: pygeodesy.formy\n    test 158 intersection2(None): (25.980762, 15.0)  FAILED, KNOWN, expected (24.284126, 15.0)\n# lazily imported pygeodesy.sphericalTrigonometry by formy.py line 1093\n    test 159 intersection2(6371008.771415): (24.146108, 15.0)  FAILED, KNOWN, expected (24.284126, 15.0)\n# lazily imported pygeodesy.sphericalNvector by formy.py line 1088\n    test 160 intersection2(-6371008.771415): (24.146108, 15.0)  FAILED, KNOWN, expected (24.284126, 15.0)\n# lazily imported pygeodesy.geodesicw by ellipsoids.py line 1074\n# lazily imported pygeodesy.ellipsoidalKarney by formy.py line 1099\n# lazily imported pygeodesy.azimuthal by ellipsoidalKarney.py line 85\n    test 161 intersection2(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84): (24.284126, 15.0)\n\n    test 162 intersections2: pygeodesy.formy\n    test 163 intersections2(None) 1: (1.0003, 1.0003), (-1.0003, -1.0003)\n    test 164 intersections2(None) 2: (2.0024, 2.0024), (-2.0024, -2.0024)\n    test 165 intersections2(None) 5: (5.0381, 5.0381), (-5.0381, -5.0381)\n    test 166 intersections2(None) 10: (10.3062, 10.3062), (-10.3062, -10.3062)\n    test 167 intersections2(None) 20: (-22.494, -22.494), (22.494, 22.494)\n    test 168 intersections2(None) 30: (38.7298, 38.7298), (-38.7298, -38.7298)\n    test 169 intersections2(None) 40: (62.0732, 62.0732), (-62.0732, -62.0732)\n    test 170 intersections2(R_M) 1: (-1.0, -1.0003), (1.0, 1.0003)\n    test 171 intersections2(R_M) 2: (-2.0, -2.0024), (2.0, 2.0024)\n    test 172 intersections2(R_M) 5: (-4.9999, -5.0383), (4.9999, 5.0383)\n    test 173 intersections2(R_M) 10: (-9.9976, -10.3117), (9.9976, 10.3117)\n    test 174 intersections2(R_M) 20: (-19.914, -22.6761), (19.914, 22.6761)\n    test 175 intersections2(R_M) 30: (-29.2059, -40.203), (29.2059, 40.203)\n    test 176 intersections2(R_M) 40: (-35.5129, -68.6826), (35.5129, 68.6826)\n    test 177 intersections2(WGS84) 1: (-1.0112, -0.998), (1.0112, 0.998)\n    test 178 intersections2(WGS84) 2: (-2.0224, -1.9979), (2.0224, 1.9979)\n    test 179 intersections2(WGS84) 5: (-5.0558, -5.0271), (5.0558, 5.0271)\n    test 180 intersections2(WGS84) 10: (-10.1081, -10.2901), (10.1081, 10.2901)\n    test 181 intersections2(WGS84) 20: (-20.1241, -22.6411), (20.1241, 22.6411)\n    test 182 intersections2(WGS84) 30: (-29.4898, -40.1785), (29.4898, 40.1785)\n    test 183 intersections2(WGS84) 40: (-35.8146, -68.7149), (35.8146, 68.7149)\n\n    test 184 radical2: (0.26, 2.6)\n    test 185 radical2: (0.74, 7.4)\n    test 186 radical2: (0.5, 5.0)\n    test 187 radical2: (0.5, 0.0)\n# imported pygeodesy.basics into errors.py line 443\n    test 188 IntersectionError: distance (10.0), radius1 (5.0) or radius2 (4.0): too distant  FAILED, KNOWN, expected distance (10.0), ...\n\n    test 189 LimitError: equirectangular4(0.0, 0.0, 60.0, 120.0, limit=45, wrap=False): delta (120) exceeds limit (45)  FAILED, KNOWN, expected delta exceeds ...\n\n    test 190 heightOrthometric: -1.0\n    test 191 heightOrthometric: 1.0\n\n    161 of 191 testFormy.py tests (84.3%) FAILED, incl. 71 KNOWN plus 90 DeprecationWarnings (pygeodesy 26.3.26 PyPy 7.3.17 Python 3.10.14 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 119.286 ms\nrunning /opt/local/bin/p....y3.10 -W default ~/PyGeodesy/test/testFrechet.py\n./pygeodesy/frechet.py:644: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  self._func = self.datum.ellipsoid.geodesic.Inverse1\n./pygeodesy/ellipsoidalKarney.py:94: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return self.datum.ellipsoid.geodesic\n# lazily imported pygeodesy.basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.DeprecationWarnings from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isint from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isLazy from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.issubclassof from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.iterNumpy2over from .iters by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.LazyImportError from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.karney by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.NN from .interns by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.normDMS from .dms by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.pairs from .streprs by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.printf from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.property_RO from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.typename from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.FrechetError from .frechet by testFrechet.py line 12\n# lazily imported pygeodesy.fstr from .streprs by testFrechet.py line 12\n# lazily imported pygeodesy.LatLon_ from .points by testFrechet.py line 12\n# lazily imported pygeodesy.randomrangenerator from .hausdorff by testFrechet.py line 12\n# lazily imported pygeodesy.fractional from .points by testFrechet.py line 59\n# lazily imported pygeodesy.frechet_ from .frechet by testFrechet.py line 59\n# lazily imported pygeodesy.FrechetCosineLaw from .frechet by testFrechet.py line 59\n# lazily imported pygeodesy.FrechetDegrees from .frechet by testFrechet.py line 59\n# lazily imported pygeodesy.FrechetDistanceTo from .frechet by testFrechet.py line 59\n# lazily imported pygeodesy.FrechetEquirectangular from .frechet by testFrechet.py line 59\n# lazily imported pygeodesy.FrechetEuclidean from .frechet by testFrechet.py line 59\n# lazily imported pygeodesy.FrechetExact from .frechet by testFrechet.py line 59\n# lazily imported pygeodesy.FrechetFlatLocal from .frechet by testFrechet.py line 59\n# lazily imported pygeodesy.FrechetFlatPolar from .frechet by testFrechet.py line 59\n# lazily imported pygeodesy.FrechetKarney from .frechet by testFrechet.py line 59\n# lazily imported pygeodesy.FrechetHaversine from .frechet by testFrechet.py line 59\n# lazily imported pygeodesy.FrechetHubeny from .frechet by testFrechet.py line 59\n# lazily imported pygeodesy.FrechetRadians from .frechet by testFrechet.py line 59\n# lazily imported pygeodesy.FrechetThomas from .frechet by testFrechet.py line 59\n# lazily imported pygeodesy.FrechetVincentys from .frechet by testFrechet.py line 59\n\n    testing testFrechet.py 25.04.21 isLazy=3\n# lazily imported pygeodesy.booleans by iters.py line 503\n\n    test 1 FrechetDegrees_ (degrees): (178.5, 74, 56, 0, 5400)\n    test 2 FrechetDegrees_ (degrees): (175.5, 74, 52.5, 29, 10710)\n    test 3 copy(<class 'type'>): (<class '__main__.FrechetDegrees_'>, True)\n    test 4 FrechetDegrees_.copy(): (<class '__main__.FrechetDegrees_'>, True)\n\n    test 5 FrechetRadians_ (radians): (3.11541, 74, 56, 0, 5400)\n    test 6 FrechetRadians_ (radians): (3.06305, 74, 52.5, 29, 10710)\n    test 7 copy(<class 'type'>): (<class '__main__.FrechetRadians_'>, True)\n    test 8 FrechetRadians_.copy(): (<class '__main__.FrechetRadians_'>, True)\n# imported pygeodesy.formy into frechet.py line 424\n\n    test 9 FrechetCosineLaw (radians): (2.63867, 0, 13, 0, 5400)\n    test 10 FrechetCosineLaw (radians): (2.63867, 0, 0, 208, 10710)\n    test 11 copy(<class 'type'>): (<class 'pygeodesy.frechet.FrechetCosineLaw'>, True)\n    test 12 FrechetCosineLaw.copy(): (<class 'pygeodesy.frechet.FrechetCosineLaw'>, True)\n\n    test 13 FrechetCosineLaw (radians): (2.6319, 0, 13, 0, 5400)\n    test 14 FrechetCosineLaw (radians): (2.6319, 0, 0, 208, 10710)\n    test 15 copy(<class 'type'>): (<class 'pygeodesy.frechet.FrechetCosineLaw'>, True)\n    test 16 FrechetCosineLaw.copy(): (<class 'pygeodesy.frechet.FrechetCosineLaw'>, True)\n\n    test 17 FrechetCosineLaw (radians): (2.6319, 0, 13, 0, 5400)\n    test 18 FrechetCosineLaw (radians): (2.6319, 0, 0, 208, 10710)\n    test 19 copy(<class 'type'>): (<class 'pygeodesy.frechet.FrechetCosineLaw'>, True)\n    test 20 FrechetCosineLaw.copy(): (<class 'pygeodesy.frechet.FrechetCosineLaw'>, True)\n\n    test 21 FrechetEquirectangular (radians2): (7.1331, 8, 3, 0, 5400)\n    test 22 FrechetEquirectangular (radians2): (7.01295, 0, 0, 208, 10710)\n    test 23 copy(<class 'type'>): (<class 'pygeodesy.frechet.FrechetEquirectangular'>, True)\n    test 24 FrechetEquirectangular.copy(): (<class 'pygeodesy.frechet.FrechetEquirectangular'>, True)\n\n    test 25 FrechetEuclidean (radians): (2.81124, 8, 3, 0, 5400)\n    test 26 FrechetEuclidean (radians): (2.74296, 0, 0, 208, 10710)\n    test 27 copy(<class 'type'>): (<class 'pygeodesy.frechet.FrechetEuclidean'>, True)\n    test 28 FrechetEuclidean.copy(): (<class 'pygeodesy.frechet.FrechetEuclidean'>, True)\n\n    test 29 FrechetFlatLocal (radians2): (7.13778, 8, 3, 0, 5400)\n    test 30 FrechetFlatLocal (radians2): (6.92262, 0, 0, 208, 10710)\n    test 31 copy(<class 'type'>): (<class 'pygeodesy.frechet.FrechetFlatLocal'>, True)\n    test 32 FrechetFlatLocal.copy(): (<class 'pygeodesy.frechet.FrechetFlatLocal'>, True)\n\n    test 33 FrechetFlatPolar (radians): (2.65039, 0, 4, 0, 5400)\n    test 34 FrechetFlatPolar (radians): (2.65039, 0, 0, 208, 10710)\n    test 35 copy(<class 'type'>): (<class 'pygeodesy.frechet.FrechetFlatPolar'>, True)\n    test 36 FrechetFlatPolar.copy(): (<class 'pygeodesy.frechet.FrechetFlatPolar'>, True)\n\n    test 37 FrechetHaversine (radians): (2.63867, 0, 13, 0, 5400)\n    test 38 FrechetHaversine (radians): (2.63867, 0, 0, 208, 10710)\n    test 39 copy(<class 'type'>): (<class 'pygeodesy.frechet.FrechetHaversine'>, True)\n    test 40 FrechetHaversine.copy(): (<class 'pygeodesy.frechet.FrechetHaversine'>, True)\n\n    test 41 FrechetHubeny (radians2): (7.13778, 8, 3, 0, 5400)\n    test 42 FrechetHubeny (radians2): (6.92262, 0, 0, 208, 10710)\n    test 43 copy(<class 'type'>): (<class 'pygeodesy.frechet.FrechetHubeny'>, True)\n    test 44 FrechetHubeny.copy(): (<class 'pygeodesy.frechet.FrechetHubeny'>, True)\n\n    test 45 FrechetThomas (radians): (2.63187, 0, 13, 0, 5400)\n    test 46 FrechetThomas (radians): (2.63187, 0, 0, 208, 10710)\n    test 47 copy(<class 'type'>): (<class 'pygeodesy.frechet.FrechetThomas'>, True)\n    test 48 FrechetThomas.copy(): (<class 'pygeodesy.frechet.FrechetThomas'>, True)\n\n    test 49 FrechetVincentys (radians): (2.63867, 0, 13, 0, 5400)\n    test 50 FrechetVincentys (radians): (2.63867, 0, 0, 208, 10710)\n    test 51 copy(<class 'type'>): (<class 'pygeodesy.frechet.FrechetVincentys'>, True)\n    test 52 FrechetVincentys.copy(): (<class 'pygeodesy.frechet.FrechetVincentys'>, True)\n# lazily imported pygeodesy.geodesicw by ellipsoids.py line 1074\n\n    test 53 FrechetKarney (degrees): (151.09508, 0, 13, 0, 5400)\n    test 54 FrechetKarney (degrees): (151.09508, 0, 0, 208, 10710)\n    test 55 copy(<class 'type'>): (<class 'pygeodesy.frechet.FrechetKarney'>, True)\n    test 56 FrechetKarney.copy(): (<class 'pygeodesy.frechet.FrechetKarney'>, True)\n# lazily imported pygeodesy.ellipsoidalNvector by testFrechet.py line 218\n# lazily imported pygeodesy.ellipsoidalVincenty by testFrechet.py line 218\n# lazily imported pygeodesy.sphericalNvector by testFrechet.py line 218\n# lazily imported pygeodesy.sphericalTrigonometry by testFrechet.py line 218\n# lazily imported pygeodesy.ellipsoidalKarney by testFrechet.py line 223\n\n    test 57 FrechetDistanceTo (meter): (16786640.7064, 0, 13, 0, 5400)\n    test 58 FrechetDistanceTo (meter): (16786640.7064, 0, 0, 208, 10710)\n    test 59 copy(<class 'type'>): (<class 'pygeodesy.frechet.FrechetDistanceTo'>, True)\n    test 60 FrechetDistanceTo.copy(): (<class 'pygeodesy.frechet.FrechetDistanceTo'>, True)\n\n    test 61 FrechetDistanceTo (meter): (16786640.7064, 0, 13, 0, 5400)\n    test 62 FrechetDistanceTo (meter): (16786640.7064, 0, 0, 208, 10710)\n    test 63 copy(<class 'type'>): (<class 'pygeodesy.frechet.FrechetDistanceTo'>, True)\n    test 64 FrechetDistanceTo.copy(): (<class 'pygeodesy.frechet.FrechetDistanceTo'>, True)\n\n    test 65 FrechetDistanceTo (meter): (16810959.0015, 0, 13, 0, 5400)\n    test 66 FrechetDistanceTo (meter): (16810959.0015, 0, 0, 208, 10710)\n    test 67 copy(<class 'type'>): (<class 'pygeodesy.frechet.FrechetDistanceTo'>, True)\n    test 68 FrechetDistanceTo.copy(): (<class 'pygeodesy.frechet.FrechetDistanceTo'>, True)\n\n    test 69 FrechetDistanceTo (meter): (16810959.0015, 0, 13, 0, 5400)\n    test 70 FrechetDistanceTo (meter): (16810959.0015, 0, 0, 208, 10710)\n    test 71 copy(<class 'type'>): (<class 'pygeodesy.frechet.FrechetDistanceTo'>, True)\n    test 72 FrechetDistanceTo.copy(): (<class 'pygeodesy.frechet.FrechetDistanceTo'>, True)\n\n    test 73 FrechetDistanceTo (meter): (16810959.0015, 0, 13, 0, 5400)\n    test 74 FrechetDistanceTo (meter): (16810959.0015, 0, 0, 208, 10710)\n    test 75 copy(<class 'type'>): (<class 'pygeodesy.frechet.FrechetDistanceTo'>, True)\n    test 76 FrechetDistanceTo.copy(): (<class 'pygeodesy.frechet.FrechetDistanceTo'>, True)\n\n    test 77 frechet_: (178.5, 74, 56, 19, 5400, 'recursive')\n    test 78 [fi1]: 64.0°S, 096.0°E\n    test 79 [fi2]: 41.0°S, 071.0°W\n    test 80 [fi1]: LatLon_(64.0°S, 096.0°E)\n    test 81 [fi2]: LatLon_(41.0°S, 071.0°W)\n\n    test 82 frechet_: (178.5, 74, 56, 0, 5400, 'non-recursive')\n    test 83 frechet_: (178.5, 15, 3, 0, 5400, 'non-recursive-reversed')\n\n    91 of 83 testFrechet.py tests (109.6%) FAILED, incl. 91 DeprecationWarnings (pygeodesy 26.3.26 PyPy 7.3.17 Python 3.10.14 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 6.095 sec\nrunning /opt/local/bin/p....y3.10 -W default ~/PyGeodesy/test/testFrozen.py\n# lazily imported pygeodesy.basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.DeprecationWarnings from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isint from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isLazy from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.issubclassof from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.iterNumpy2over from .iters by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.LazyImportError from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.karney by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.NN from .interns by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.normDMS from .dms by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.pairs from .streprs by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.printf from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.property_RO from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.typename from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n\n    testing testFrozen.py 24.03.03 isLazy=3\n    test 1 cmd: /opt/local/bin/pypy3.10 -c 'import sys; sys.frozen = True; import pygeodesy; sys.exit(0 if pygeodesy._isfrozen else 1)'\n    test 2 PYGEODESY_LAZY_IMPORT=0: 0\n    test 3 PYGEODESY_LAZY_IMPORT=1: 0\n    test 4 PYGEODESY_LAZY_IMPORT=2: 0\n\n    all 4 testFrozen.py tests passed (pygeodesy 26.3.26 PyPy 7.3.17 Python 3.10.14 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 396.882 ms\nrunning /opt/local/bin/p....y3.10 -W default ~/PyGeodesy/test/testFstats.py\n# lazily imported pygeodesy.basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.DeprecationWarnings from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isint from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isLazy from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.issubclassof from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.iterNumpy2over from .iters by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.LazyImportError from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.karney by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.NN from .interns by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.normDMS from .dms by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.pairs from .streprs by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.printf from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.property_RO from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.typename from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.EPS0 from .constants by testFstats.py line 11\n# lazily imported pygeodesy.Fcook from .fstats by testFstats.py line 11\n# lazily imported pygeodesy.Flinear from .fstats by testFstats.py line 11\n# lazily imported pygeodesy.Fsum from .fsums by testFstats.py line 11\n# lazily imported pygeodesy.Fsum2Tuple from .fsums by testFstats.py line 11\n# lazily imported pygeodesy.Fwelford from .fstats by testFstats.py line 11\n\n    testing testFstats.py 23.05.08 (module pygeodesy.fstats 25.05.12) isLazy=3\n    test 1 Fcook: 8\n    test 2 Fcook: -0.218750\n    test 3 Fcook: 4.562500\n    test 4 Fcook: 5.0\n    test 5 Fcook: 0.656250\n    test 6 Fcook: 2.0\n    test 7 Fcook: 4.0\n    test 8 Fcook: 1.039635\n\n    test 9 copy: Fcook copy[8]\n    test 10 copy: 5.0\n    test 11 copy: 2.0\n    test 12 Fcook: 8\n\n    test 13 Doubled: 16\n    test 14 Doubled: -0.218750\n    test 15 Doubled: 4.5625\n    test 16 Doubled: 5.0\n    test 17 Doubled: 0.656250\n    test 18 Doubled: 2.0\n    test 19 Doubled: 4.0\n    test 20 Doubled: 1.340453  FAILED, KNOWN, expected 1.039635\n\n    test 21 Empty: Fcook Empty[16]\n    test 22 Empty: 18\n    test 23 Empty: TypeError('Fcook Empty[18] += None: None: not iterable')\n\n    test 24 Excel: 8\n    test 25 Excel: -1.114187\n    test 26 Excel: -0.939792\n    test 27 Excel: 2.735294\n    test 28 Excel: 2.50\n    test 29 Excel: -0.342403\n    test 30 Excel: -0.427052\n    test 31 Excel: 2.061553\n    test 32 Excel: 4.2\n    test 33 Excel: 0.470372\n\n    test 34 Fwelford: 8\n    test 35 Fwelford: 5.0\n    test 36 Fwelford: 2.0\n    test 37 Fwelford: 4.0\n\n    test 38 copy: Fwelford copy[8]\n    test 39 copy: 5.0\n    test 40 copy: 2.0\n    test 41 copy: 4.0\n    test 42 copy: 8\n    test 43 __add__: 18\n    test 44 __add__: TypeError('Fwelford __add__[18] += None: None: not iterable')\n\n    test 45 Flinear: 9\n    test 46 Flinear: 0.988288\n    test 47 Flinear: 167.682949\n    test 48 Flinear: 23.422786\n    test 49 __add__: 10\n    test 50 __add__: 21\n    test 51 __add__: TypeError('Flinear __add__[21] += None: None: not iterable')\n    test 52 __add__: ValueError('Flinear __add__[21] += (1, 2, 3): odd len (3): invalid')\n\n    1 of 52 testFstats.py tests (1.9%) FAILED, ALL KNOWN (pygeodesy 26.3.26 PyPy 7.3.17 Python 3.10.14 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 50.221 ms\nrunning /opt/local/bin/p....y3.10 -W default ~/PyGeodesy/test/testFsums.py\n# lazily imported pygeodesy.basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.DeprecationWarnings from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isint from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isLazy from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.issubclassof from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.iterNumpy2over from .iters by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.LazyImportError from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.karney by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.NN from .interns by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.normDMS from .dms by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.pairs from .streprs by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.printf from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.property_RO from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.typename from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.EPS from .constants by testFsums.py line 11\n# lazily imported pygeodesy.INF from .constants by testFsums.py line 11\n# lazily imported pygeodesy.NAN from .constants by testFsums.py line 11\n# lazily imported pygeodesy.Fsum from .fsums by testFsums.py line 11\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by <frozen importlib._bootstrap> line 1075\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by <frozen importlib._bootstrap> line 1075\n# lazily imported pygeodesy.Conformal2Tuple from .triaxials.triaxial5 by <frozen importlib._bootstrap> line 1075\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by classes.py line 21\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by classes.py line 21\n# lazily imported pygeodesy.Conformal2Tuple from .triaxials.triaxial5 by classes.py line 21\n# lazily imported pygeodesy.Fsum2product from .deprecated.functions by testFsums.py line 11\n# lazily imported pygeodesy.Fsum2Tuple from .fsums by testFsums.py line 11\n# lazily imported pygeodesy.ResidualError from .fsums by testFsums.py line 11\n# lazily imported pygeodesy.f2product from .fsums by testFsums.py line 11\n# lazily imported pygeodesy.frandoms from .fmath by testFsums.py line 11\n# lazily imported pygeodesy.fsum from .fsums by testFsums.py line 11\n# lazily imported pygeodesy.fsum_ from .fsums by testFsums.py line 11\n# lazily imported pygeodesy.isfinite from .constants by testFsums.py line 11\n# lazily imported pygeodesy.nonfiniterrors from .fsums by testFsums.py line 11\n\n    testing testFsums.py 25.06.02 (module pygeodesy.fsums 26.02.02) isLazy=3\n    test 1 sum1: 0.0  FAILED, KNOWN, expected 2.0\n    test 2 fsum: 2.0\n    test 3 Fsum: 2.0\n    test 4 sum2: 0.0  FAILED, KNOWN, expected 4.0\n    test 5 fsum: 4.0\n    test 6 Fsum: 4.0\n    test 7 sum3: 0.0  FAILED, KNOWN, expected 8.0\n    test 8 fsum: 8.0\n    test 9 Fsum: 8.0\n    test 10 sum4: 0.0  FAILED, KNOWN, expected 16.0\n    test 11 fsum: 16.0\n    test 12 Fsum: 16.0\n    test 13 sum5: 0.0  FAILED, KNOWN, expected 32.0\n    test 14 fsum: 32.0\n    test 15 Fsum: 32.0\n    test 16 sum6: 0.0  FAILED, KNOWN, expected 64.0\n    test 17 fsum: 64.0\n    test 18 Fsum: 64.0\n    test 19 sum7: 0.0  FAILED, KNOWN, expected 128.0\n    test 20 fsum: 128.0\n    test 21 Fsum: 128.0\n    test 22 sum8: 0.0  FAILED, KNOWN, expected 256.0\n    test 23 fsum: 256.0\n    test 24 Fsum: 256.0\n    test 25 sum9: 0.0  FAILED, KNOWN, expected 512.0\n    test 26 fsum: 512.0\n    test 27 Fsum: 512.0\n    test 28 sum10: 0.0  FAILED, KNOWN, expected 1024.0\n    test 29 fsum: 1024.0\n    test 30 Fsum: 1024.0\n    test 31 sum: 1.005000000001\n    test 32 fsum: 1.005000000001\n    test 33 Fsum: 1.005000000001\n    test 34 fsum: 1.0000000000000002e+16\n    test 35 Fsum: 1.0000000000000002e+16\n    test 36 Fsum: 1.0000000000000002e+16\n\n\n    test 37 fsum: 1.4203229439040998e-06\n    test 38 sum1: -10.901592563866116  FAILED, KNOWN, expected 1.4203229439040998e-06\n    test 39 pow(4): Fsum[29] pow(4.06957e-24, -1.6314e-40)  FAILED, KNOWN (1.87595e-40), expected Fsum[29] pow(4.06957e-24, 2.44555e-41)\n    test 40 pow(1): Fsum[842] pow(1.42032e-06, 4.98687e-23)\n    test 41 pow(0): Fsum[1] pow(1.0, 0)\n    test 42 ceil: True\n    test 43 floor: True\n    test 44 divmod: Fsum[847] (0.0, 0)\n    test 45 residual: 0\n    test 46 is_exact: True\n    test 47 Fsum: 1.4203229439040998e-06\n    test 48 Fsum: 1.4203229439040998e-06\n\n    test 49 fsum: 0.017239254941143905\n    test 50 sum2: -3.885337784451458e+84  FAILED, KNOWN, expected 0.017239254941143905\n    test 51 pow(4): Fsum[42] pow(8.8323e-08, 6.29254e-25)  FAILED, KNOWN (1.36733e-24), expected Fsum[42] pow(8.8323e-08, 1.99658e-24)\n    test 52 pow(1): Fsum[842] pow(0.0172393, -6.15105e-19)\n    test 53 pow(0): Fsum[1] pow(1.0, 0)\n    test 54 ceil: True\n    test 55 floor: True\n    test 56 divmod: Fsum[849] (0.0, 0)\n    test 57 residual: 0\n    test 58 is_exact: True\n    test 59 Fsum: 0.017239254941143905\n    test 60 Fsum: 0.017239254941143905\n\n    test 61 fsum: -4.399912565500297\n    test 62 sum3: 18.901967080175687  FAILED, KNOWN, expected -4.399912565500297\n    test 63 pow(4): Fsum[64] pow(374.78, -2.60721e-14)\n    test 64 pow(1): Fsum[842] pow(-4.39991, -9.03137e-17)\n    test 65 pow(0): Fsum[1] pow(1.0, 0)\n    test 66 ceil: True\n    test 67 floor: True\n    test 68 divmod: Fsum[852] (0.0, 0)\n    test 69 residual: 0\n    test 70 is_exact: True\n    test 71 Fsum: -4.399912565500297\n    test 72 Fsum: -4.399912565500297\n\n    test 73 fsum: 4.2324766388316953e-11\n    test 74 sum4: -3.885337784451458e+84  FAILED, KNOWN, expected 4.2324766388316953e-11\n    test 75 pow(4): Fsum[14] pow(3.20906e-42, 8.91042e-59)\n    test 76 pow(1): Fsum[842] pow(4.23248e-11, 2.93802e-28)\n    test 77 pow(0): Fsum[1] pow(1.0, 0)\n    test 78 ceil: True\n    test 79 floor: True\n    test 80 divmod: Fsum[845] (0.0, 0)\n    test 81 residual: 0\n    test 82 is_exact: True\n    test 83 Fsum: 4.2324766388316953e-11\n    test 84 Fsum: 4.2324766388316953e-11\n\n    test 85 fsum: -0.008914133182563242\n    test 86 sum5: 102.99652506714692  FAILED, KNOWN, expected -0.008914133182563242\n    test 87 pow(4): Fsum[93] pow(6.31417e-09, 2.92224e-25)  FAILED, KNOWN (2.49727e-25), expected Fsum[93] pow(6.31417e-09, -2.8523e-25)\n    test 88 pow(1): Fsum[842] pow(-0.00891413, -5.71362e-19)\n    test 89 pow(0): Fsum[1] pow(1.0, 0)\n    test 90 ceil: True\n    test 91 floor: True\n    test 92 divmod: Fsum[854] (0.0, 0)\n    test 93 residual: 0\n    test 94 is_exact: True\n    test 95 Fsum: -0.008914133182563242\n    test 96 Fsum: -0.008914133182563242\n\n    test 97 fsum: 0.2668150469030887\n    test 98 sum6: 103.51756425455667  FAILED, KNOWN, expected 0.2668150469030887\n    test 99 pow(4): Fsum[56] pow(0.00506805, -6.59665e-20)  FAILED, KNOWN (1.20602e-19), expected Fsum[56] pow(0.00506805, 5.46352e-20)\n    test 100 pow(1): Fsum[842] pow(0.266815, 2.51382e-17)\n    test 101 pow(0): Fsum[1] pow(1.0, 0)\n    test 102 ceil: True\n    test 103 floor: True\n    test 104 divmod: Fsum[849] (0.0, 0)\n    test 105 residual: 0\n    test 106 is_exact: True\n    test 107 Fsum: 0.2668150469030887\n    test 108 Fsum: 0.2668150469030887\n\n    test 109 fsum: -1.8483996395074306e-08\n    test 110 sum7: -3.885337784451458e+84  FAILED, KNOWN, expected -1.8483996395074306e-08\n    test 111 pow(4): Fsum[20] pow(1.1673e-31, 2.03536e-48)  FAILED, KNOWN (3.26515e-48), expected Fsum[20] pow(1.1673e-31, 5.30051e-48)\n    test 112 pow(1): Fsum[842] pow(-1.8484e-08, -1.41426e-24)\n    test 113 pow(0): Fsum[1] pow(1.0, 0)\n    test 114 ceil: True\n    test 115 floor: True\n    test 116 divmod: Fsum[847] (0.0, 0)\n    test 117 residual: 0\n    test 118 is_exact: True\n    test 119 Fsum: -1.8483996395074306e-08\n    test 120 Fsum: -1.8483996395074306e-08\n\n    test 121 fsum: -0.0005853306979721807\n    test 122 sum8: -3.885337784451458e+84  FAILED, KNOWN, expected -0.0005853306979721807\n    test 123 pow(4): Fsum[31] pow(1.17383e-13, 3.43209e-30)\n    test 124 pow(1): Fsum[842] pow(-0.000585331, -4.27854e-21)\n    test 125 pow(0): Fsum[1] pow(1.0, 0)\n    test 126 ceil: True\n    test 127 floor: True\n    test 128 divmod: Fsum[848] (0.0, 0)\n    test 129 residual: 0\n    test 130 is_exact: True\n    test 131 Fsum: -0.0005853306979721807\n    test 132 Fsum: -0.0005853306979721807\n\n    test 133 fsum: 0.28395513510726667\n    test 134 sum9: -3.885337784451458e+84  FAILED, KNOWN, expected 0.28395513510726667\n    test 135 pow(4): Fsum[39] pow(0.00650128, 2.3737e-19)\n    test 136 pow(1): Fsum[842] pow(0.283955, 2.59189e-18)\n    test 137 pow(0): Fsum[1] pow(1.0, 0)\n    test 138 ceil: True\n    test 139 floor: True\n    test 140 divmod: Fsum[848] (0.0, 0)\n    test 141 residual: 0\n    test 142 is_exact: True\n    test 143 Fsum: 0.28395513510726667\n    test 144 Fsum: 0.28395513510726667\n\n    test 145 fsum: 0.00019154119665364008\n    test 146 sum10: -3.885337784451458e+84  FAILED, KNOWN, expected 0.00019154119665364008\n    test 147 pow(4): Fsum[33] pow(1.34601e-15, -3.7143e-32)  FAILED, KNOWN (4.55658e-32), expected Fsum[33] pow(1.34601e-15, -8.27088e-32)\n    test 148 pow(1): Fsum[842] pow(0.000191541, -1.15795e-20)\n    test 149 pow(0): Fsum[1] pow(1.0, 0)\n    test 150 ceil: True\n    test 151 floor: True\n    test 152 divmod: Fsum[848] (0.0, 0)\n    test 153 residual: 0\n    test 154 is_exact: True\n    test 155 Fsum: 0.00019154119665364008\n    test 156 Fsum: 0.00019154119665364008\n\n    test 157 fsum: 5.358490922383404e-08\n    test 158 sum11: -3.885337784451458e+84  FAILED, KNOWN, expected 5.358490922383404e-08\n    test 159 pow(4): Fsum[21] pow(8.24461e-30, -6.18094e-46)  FAILED, KNOWN (2.68754e-46), expected Fsum[21] pow(8.24461e-30, 5.14451e-46)\n    test 160 pow(1): Fsum[842] pow(5.35849e-08, 2.67612e-24)\n    test 161 pow(0): Fsum[1] pow(1.0, 0)\n    test 162 ceil: True\n    test 163 floor: True\n    test 164 divmod: Fsum[846] (0.0, 0)\n    test 165 residual: 0\n    test 166 is_exact: True\n    test 167 Fsum: 5.358490922383404e-08\n    test 168 Fsum: 5.358490922383404e-08\n\n    test 169 fsum: -1.9453763248695655\n    test 170 sum12: 141.30380557734009  FAILED, KNOWN, expected -1.9453763248695655\n    test 171 pow(4): Fsum[24] pow(14.3224, 8.07792e-16)  FAILED, KNOWN (9.57061e-17), expected Fsum[24] pow(14.3224, -8.72858e-16)\n    test 172 pow(1): Fsum[842] pow(-1.94538, 8.67095e-17)\n    test 173 pow(0): Fsum[1] pow(1.0, 0)\n    test 174 ceil: True\n    test 175 floor: True\n    test 176 divmod: Fsum[847] (0.0, 0)\n    test 177 residual: 0\n    test 178 is_exact: True\n    test 179 Fsum: -1.9453763248695655\n    test 180 Fsum: -1.9453763248695655\n\n    test 181 fsum: 4.161773385984235e-09\n    test 182 sum13: 3.885337784451458e+84  FAILED, KNOWN, expected 4.161773385984235e-09\n    test 183 pow(4): Fsum[21] pow(2.99995e-34, -1.50934e-50)\n    test 184 pow(1): Fsum[842] pow(4.16177e-09, -5.2347e-26)\n    test 185 pow(0): Fsum[1] pow(1.0, 0)\n    test 186 ceil: True\n    test 187 floor: True\n    test 188 divmod: Fsum[846] (0.0, 0)\n    test 189 residual: 0\n    test 190 is_exact: True\n    test 191 Fsum: 4.161773385984235e-09\n    test 192 Fsum: 4.161773385984235e-09\n\n    test 193 fsum: -5.330669493335932e-08\n    test 194 sum14: 3.885337784451458e+84  FAILED, KNOWN, expected -5.330669493335932e-08\n    test 195 pow(4): Fsum[42] pow(8.07471e-30, 5.69318e-46)\n    test 196 pow(1): Fsum[842] pow(-5.33067e-08, 1.37312e-24)\n    test 197 pow(0): Fsum[1] pow(1.0, 0)\n    test 198 ceil: True\n    test 199 floor: True\n    test 200 divmod: Fsum[851] (0.0, 0)\n    test 201 residual: 0\n    test 202 is_exact: True\n    test 203 Fsum: -5.330669493335932e-08\n    test 204 Fsum: -5.330669493335932e-08\n\n    test 205 fsum: -6.4410389150402375e-09\n    test 206 sum15: -3.885337784451458e+84  FAILED, KNOWN, expected -6.4410389150402375e-09\n    test 207 pow(4): Fsum[12] pow(1.72117e-33, 1.11271e-49)  FAILED, KNOWN (8.64306e-50), expected Fsum[12] pow(1.72117e-33, 2.48406e-50)\n    test 208 pow(1): Fsum[842] pow(-6.44104e-09, -2.62447e-25)\n    test 209 pow(0): Fsum[1] pow(1.0, 0)\n    test 210 ceil: True\n    test 211 floor: True\n    test 212 divmod: Fsum[846] (0.0, 0)\n    test 213 residual: 0\n    test 214 is_exact: True\n    test 215 Fsum: -6.4410389150402375e-09\n    test 216 Fsum: -6.4410389150402375e-09\n\n    test 217 fsum: -100.70449671778515\n    test 218 sum16: -0.4241287148140251  FAILED, KNOWN, expected -100.70449671778515\n    test 219 pow(4): Fsum[56] pow(1.02848e+08, -6.01033e-09)  FAILED, KNOWN (3.54593e-09), expected Fsum[56] pow(1.02848e+08, 5.3449e-09)\n    test 220 pow(1): Fsum[842] pow(-100.704, 6.85494e-15)\n    test 221 pow(0): Fsum[1] pow(1.0, 0)\n    test 222 ceil: True\n    test 223 floor: True\n    test 224 divmod: Fsum[851] (0.0, 0)\n    test 225 residual: 0\n    test 226 is_exact: True\n    test 227 Fsum: -100.70449671778515\n    test 228 Fsum: -100.70449671778515\n\n    test 229 fsum: 0.031430096586523674\n    test 230 sum17: 6.436479712404695  FAILED, KNOWN, expected 0.031430096586523674\n    test 231 pow(4): Fsum[59] pow(9.7585e-07, -4.60045e-23)  FAILED, KNOWN (2.4478e-24), expected Fsum[59] pow(9.7585e-07, -4.35567e-23)\n    test 232 pow(1): Fsum[842] pow(0.0314301, 3.07914e-18)\n    test 233 pow(0): Fsum[1] pow(1.0, 0)\n    test 234 ceil: True\n    test 235 floor: True\n    test 236 divmod: Fsum[853] (0.0, 0)\n    test 237 residual: 0\n    test 238 is_exact: True\n    test 239 Fsum: 0.031430096586523674\n    test 240 Fsum: 0.031430096586523674\n\n    test 241 fsum: 4.749236242624645e-07\n    test 242 sum18: -8.454446517269734  FAILED, KNOWN, expected 4.749236242624645e-07\n    test 243 pow(4): Fsum[34] pow(5.08739e-26, -7.82447e-43)\n    test 244 pow(1): Fsum[842] pow(4.74924e-07, -1.8261e-24)\n    test 245 pow(0): Fsum[1] pow(1.0, 0)\n    test 246 ceil: True\n    test 247 floor: True\n    test 248 divmod: Fsum[848] (0.0, 0)\n    test 249 residual: 0\n    test 250 is_exact: True\n    test 251 Fsum: 4.749236242624645e-07\n    test 252 Fsum: 4.749236242624645e-07\n\n    test 253 fsum: 4.020975754301224e-09\n    test 254 sum19: -3.885337784451458e+84  FAILED, KNOWN, expected 4.020975754301224e-09\n    test 255 pow(4): Fsum[20] pow(2.61412e-34, -1.7606e-50)  FAILED, KNOWN (7.05802e-51), expected Fsum[20] pow(2.61412e-34, -1.0548e-50)\n    test 256 pow(1): Fsum[842] pow(4.02098e-09, 3.15474e-25)\n    test 257 pow(0): Fsum[1] pow(1.0, 0)\n    test 258 ceil: True\n    test 259 floor: True\n    test 260 divmod: Fsum[846] (0.0, 0)\n    test 261 residual: 0\n    test 262 is_exact: True\n    test 263 Fsum: 4.020975754301224e-09\n    test 264 Fsum: 4.020975754301224e-09\n\n    test 265 fsum: 0.048270757278626016\n    test 266 sum20: 49.72569172644126  FAILED, KNOWN, expected 0.048270757278626016\n    test 267 pow(4): Fsum[49] pow(5.42921e-06, -1.26713e-22)  FAILED, KNOWN (1.63472e-22), expected Fsum[49] pow(5.42921e-06, -2.90185e-22)\n    test 268 pow(1): Fsum[842] pow(0.0482708, -2.89109e-18)\n    test 269 pow(0): Fsum[1] pow(1.0, 0)\n    test 270 ceil: True\n    test 271 floor: True\n    test 272 divmod: Fsum[849] (0.0, 0)\n    test 273 residual: 0\n    test 274 is_exact: True\n    test 275 Fsum: 0.048270757278626016\n    test 276 Fsum: 0.048270757278626016\n\n    test 277 fsum: 1.2425017682661341e-09\n    test 278 sum21: 18.85307148542335  FAILED, KNOWN, expected 1.2425017682661341e-09\n    test 279 pow(4): Fsum[23] pow(2.38335e-36, -1.56652e-53)  FAILED, KNOWN (3.67685e-53), expected Fsum[23] pow(2.38335e-36, 2.11032e-53)\n    test 280 pow(1): Fsum[842] pow(1.2425e-09, -7.95438e-26)\n    test 281 pow(0): Fsum[1] pow(1.0, 0)\n    test 282 ceil: True\n    test 283 floor: True\n    test 284 divmod: Fsum[847] (0.0, 0)\n    test 285 residual: 0\n    test 286 is_exact: True\n    test 287 Fsum: 1.2425017682661341e-09\n    test 288 Fsum: 1.2425017682661341e-09\n\n    test 289 fsum: -1.8530858503343324e-06\n    test 290 sum22: -3.7170290449581245  FAILED, KNOWN, expected -1.8530858503343324e-06\n    test 291 pow(4): Fsum[25] pow(1.17919e-23, 2.54808e-40)\n    test 292 pow(1): Fsum[842] pow(-1.85309e-06, -1.00107e-23)\n    test 293 pow(0): Fsum[1] pow(1.0, 0)\n    test 294 ceil: True\n    test 295 floor: True\n    test 296 divmod: Fsum[847] (0.0, 0)\n    test 297 residual: 0\n    test 298 is_exact: True\n    test 299 Fsum: -1.8530858503343324e-06\n    test 300 Fsum: -1.8530858503343324e-06\n\n    test 301 fsum: -4.916695735069353e-09\n    test 302 sum23: 3.885337784451458e+84  FAILED, KNOWN, expected -4.916695735069353e-09\n    test 303 pow(4): Fsum[28] pow(5.84377e-34, -1.50157e-50)  FAILED, KNOWN (1.10369e-50), expected Fsum[28] pow(5.84377e-34, -2.60526e-50)\n    test 304 pow(1): Fsum[842] pow(-4.9167e-09, -2.81786e-25)\n    test 305 pow(0): Fsum[1] pow(1.0, 0)\n    test 306 ceil: True\n    test 307 floor: True\n    test 308 divmod: Fsum[849] (0.0, 0)\n    test 309 residual: 0\n    test 310 is_exact: True\n    test 311 Fsum: -4.916695735069353e-09\n    test 312 Fsum: -4.916695735069353e-09\n\n    test 313 fsum: 0.006121711945771237\n    test 314 sum24: -1.3092057101621226  FAILED, KNOWN, expected 0.006121711945771237\n    test 315 pow(4): Fsum[38] pow(1.4044e-09, -8.69499e-26)  FAILED, KNOWN (1.59647e-25), expected Fsum[38] pow(1.4044e-09, -3.98021e-26)\n    test 316 pow(1): Fsum[842] pow(0.00612171, -4.08653e-19)\n    test 317 pow(0): Fsum[1] pow(1.0, 0)\n    test 318 ceil: True\n    test 319 floor: True\n    test 320 divmod: Fsum[849] (0.0, 0)\n    test 321 residual: 0\n    test 322 is_exact: True\n    test 323 Fsum: 0.006121711945771237\n    test 324 Fsum: 0.006121711945771237\n\n    test 325 fsum: 4.220812132230373e-06\n    test 326 sum25: 3.885337784451458e+84  FAILED, KNOWN, expected 4.220812132230373e-06\n    test 327 pow(4): Fsum[42] pow(3.17383e-22, -9.94406e-39)  FAILED, KNOWN (1.05444e-38), expected Fsum[42] pow(3.17383e-22, 6.00364e-40)\n    test 328 pow(1): Fsum[842] pow(4.22081e-06, 1.93379e-22)\n    test 329 pow(0): Fsum[1] pow(1.0, 0)\n    test 330 ceil: True\n    test 331 floor: True\n    test 332 divmod: Fsum[850] (0.0, 0)\n    test 333 residual: 0\n    test 334 is_exact: True\n    test 335 Fsum: 4.220812132230373e-06\n    test 336 Fsum: 4.220812132230373e-06\n\n    test 337 fsum: 8.867746101512408e-13\n    test 338 sum26: -3.885337784451458e+84  FAILED, KNOWN, expected 8.867746101512408e-13\n    test 339 pow(4): Fsum[11] pow(6.18377e-49, 1.24622e-65)  FAILED, KNOWN (3.74794e-66), expected Fsum[11] pow(6.18377e-49, 1.62101e-65)\n    test 340 pow(1): Fsum[842] pow(8.86775e-13, -4.73128e-29)\n    test 341 pow(0): Fsum[1] pow(1.0, 0)\n    test 342 ceil: True\n    test 343 floor: True\n    test 344 divmod: Fsum[845] (0.0, 0)\n    test 345 residual: 0\n    test 346 is_exact: True\n    test 347 Fsum: 8.867746101512408e-13\n    test 348 Fsum: 8.867746101512408e-13\n\n    test 349 fsum: -6.398629890964825e-08\n    test 350 sum27: -3.885337784451458e+84  FAILED, KNOWN, expected -6.398629890964825e-08\n    test 351 pow(4): Fsum[22] pow(1.67629e-29, -5.76405e-46)  FAILED, KNOWN (2.58143e-45), expected Fsum[22] pow(1.67629e-29, -7.97575e-46)\n    test 352 pow(1): Fsum[842] pow(-6.39863e-08, -6.52054e-24)\n    test 353 pow(0): Fsum[1] pow(1.0, 0)\n    test 354 ceil: True\n    test 355 floor: True\n    test 356 divmod: Fsum[847] (0.0, 0)\n    test 357 residual: 0\n    test 358 is_exact: True\n    test 359 Fsum: -6.398629890964825e-08\n    test 360 Fsum: -6.398629890964825e-08\n\n    test 361 fsum: -0.17897224932807945\n    test 362 sum28: -3.885337784451458e+84  FAILED, KNOWN, expected -0.17897224932807945\n    test 363 pow(4): Fsum[39] pow(0.00102599, -1.26983e-21)  FAILED, KNOWN (5.41973e-21), expected Fsum[39] pow(0.00102599, -6.68956e-21)\n    test 364 pow(1): Fsum[842] pow(-0.178972, 9.98442e-18)\n    test 365 pow(0): Fsum[1] pow(1.0, 0)\n    test 366 ceil: True\n    test 367 floor: True\n    test 368 divmod: Fsum[849] (0.0, 0)\n    test 369 residual: 0\n    test 370 is_exact: True\n    test 371 Fsum: -0.17897224932807945\n    test 372 Fsum: -0.17897224932807945\n\n    test 373 fsum: 5.7855200966644714e-05\n    test 374 sum29: 3.885337784451458e+84  FAILED, KNOWN, expected 5.7855200966644714e-05\n    test 375 pow(4): Fsum[31] pow(1.12039e-17, 5.45609e-34)  FAILED, KNOWN (8.02734e-35), expected Fsum[31] pow(1.12039e-17, 4.65336e-34)\n    test 376 pow(1): Fsum[842] pow(5.78552e-05, -1.28468e-21)\n    test 377 pow(0): Fsum[1] pow(1.0, 0)\n    test 378 ceil: True\n    test 379 floor: True\n    test 380 divmod: Fsum[848] (0.0, 0)\n    test 381 residual: 0\n    test 382 is_exact: True\n    test 383 Fsum: 5.7855200966644714e-05\n    test 384 Fsum: 5.7855200966644714e-05\n\n    test 385 fsum: -0.1696709590636187\n    test 386 sum30: -3.885337784451458e+84  FAILED, KNOWN, expected -0.1696709590636187\n    test 387 pow(4): Fsum[50] pow(0.000828762, 3.5245e-20)  FAILED, KNOWN (8.54097e-21), expected Fsum[50] pow(0.000828762, 4.37859e-20)\n    test 388 pow(1): Fsum[842] pow(-0.169671, 8.42014e-18)\n    test 389 pow(0): Fsum[1] pow(1.0, 0)\n    test 390 ceil: True\n    test 391 floor: True\n    test 392 divmod: Fsum[851] (0.0, 0)\n    test 393 residual: 0\n    test 394 is_exact: True\n    test 395 Fsum: -0.1696709590636187\n    test 396 Fsum: -0.1696709590636187\n\n    test 397 fsum: -0.012598183978412492\n    test 398 sum31: 3.885337784451458e+84  FAILED, KNOWN, expected -0.012598183978412492\n    test 399 pow(4): Fsum[39] pow(2.51902e-08, 1.26473e-26)  FAILED, KNOWN (2.31549e-24), expected Fsum[39] pow(2.51902e-08, 1.00588e-24)\n    test 400 pow(1): Fsum[842] pow(-0.0125982, -6.63642e-19)\n    test 401 pow(0): Fsum[1] pow(1.0, 0)\n    test 402 ceil: True\n    test 403 floor: True\n    test 404 divmod: Fsum[849] (0.0, 0)\n    test 405 residual: 0\n    test 406 is_exact: True\n    test 407 Fsum: -0.012598183978412492\n    test 408 Fsum: -0.012598183978412492\n\n    test 409 fsum: 3.093510407095073e-12\n    test 410 sum32: 3.885337784451458e+84  FAILED, KNOWN, expected 3.093510407095073e-12\n    test 411 pow(4): Fsum[28] pow(9.15812e-47, -8.60328e-63)  FAILED, KNOWN (5.38536e-63), expected Fsum[28] pow(9.15812e-47, -3.21792e-63)\n    test 412 pow(1): Fsum[842] pow(3.09351e-12, -1.4592e-28)\n    test 413 pow(0): Fsum[1] pow(1.0, 0)\n    test 414 ceil: True\n    test 415 floor: True\n    test 416 divmod: Fsum[847] (0.0, 0)\n    test 417 residual: 0\n    test 418 is_exact: True\n    test 419 Fsum: 3.093510407095073e-12\n    test 420 Fsum: 3.093510407095073e-12\n\n    test 421 fsum: 0.0017197856474203425\n    test 422 sum33: -8.706789672694601  FAILED, KNOWN, expected 0.0017197856474203425\n    test 423 pow(4): Fsum[33] pow(8.74777e-12, -5.28028e-28)  FAILED, KNOWN (1.93014e-28), expected Fsum[33] pow(8.74777e-12, -3.35014e-28)\n    test 424 pow(1): Fsum[842] pow(0.00171979, 5.34528e-20)\n    test 425 pow(0): Fsum[1] pow(1.0, 0)\n    test 426 ceil: True\n    test 427 floor: True\n    test 428 divmod: Fsum[848] (0.0, 0)\n    test 429 residual: 0\n    test 430 is_exact: True\n    test 431 Fsum: 0.0017197856474203425\n    test 432 Fsum: 0.0017197856474203425\n\n    test 433 fsum: -0.2959541337937912\n    test 434 sum34: -3.885337784451458e+84  FAILED, KNOWN, expected -0.2959541337937912\n    test 435 pow(4): Fsum[45] pow(0.00767181, 1.98861e-19)\n    test 436 pow(1): Fsum[842] pow(-0.295954, 6.44717e-18)\n    test 437 pow(0): Fsum[1] pow(1.0, 0)\n    test 438 ceil: True\n    test 439 floor: True\n    test 440 divmod: Fsum[851] (0.0, 0)\n    test 441 residual: 0\n    test 442 is_exact: True\n    test 443 Fsum: -0.2959541337937912\n    test 444 Fsum: -0.2959541337937912\n\n    test 445 fsum: 1.1234860549063546e-09\n    test 446 sum35: -3.885337784451458e+84  FAILED, KNOWN, expected 1.1234860549063546e-09\n    test 447 pow(4): Fsum[14] pow(1.5932e-36, 1.24001e-52)\n    test 448 pow(1): Fsum[842] pow(1.12349e-09, 2.18605e-26)\n    test 449 pow(0): Fsum[1] pow(1.0, 0)\n    test 450 ceil: True\n    test 451 floor: True\n    test 452 divmod: Fsum[845] (0.0, 0)\n    test 453 residual: 0\n    test 454 is_exact: True\n    test 455 Fsum: 1.1234860549063546e-09\n    test 456 Fsum: 1.1234860549063546e-09\n\n    test 457 fsum: 3.0216063258744465e-09\n    test 458 sum36: -208.27160004293484  FAILED, KNOWN, expected 3.0216063258744465e-09\n    test 459 pow(4): Fsum[26] pow(8.33588e-35, 1.91616e-51)  FAILED, KNOWN (7.31496e-51), expected Fsum[26] pow(8.33588e-35, -1.45993e-51)\n    test 460 pow(1): Fsum[842] pow(3.02161e-09, 1.76e-25)\n    test 461 pow(0): Fsum[1] pow(1.0, 0)\n    test 462 ceil: True\n    test 463 floor: True\n    test 464 divmod: Fsum[848] (0.0, 0)\n    test 465 residual: 0\n    test 466 is_exact: True\n    test 467 Fsum: 3.0216063258744465e-09\n    test 468 Fsum: 3.0216063258744465e-09\n\n    test 469 fsum: -40.38391063402946\n    test 470 sum37: 1368.190802034354  FAILED, KNOWN, expected -40.38391063402946\n    test 471 pow(4): Fsum[34] pow(2.65971e+06, -2.01207e-10)\n    test 472 pow(1): Fsum[842] pow(-40.3839, -1.00384e-15)\n    test 473 pow(0): Fsum[1] pow(1.0, 0)\n    test 474 ceil: True\n    test 475 floor: True\n    test 476 divmod: Fsum[848] (0.0, 0)\n    test 477 residual: 0\n    test 478 is_exact: True\n    test 479 Fsum: -40.38391063402946\n    test 480 Fsum: -40.38391063402946\n\n    test 481 fsum: -8.315323065039467e-09\n    test 482 sum38: 67.87182036385508  FAILED, KNOWN, expected -8.315323065039467e-09\n    test 483 pow(4): Fsum[26] pow(4.78098e-33, 1.07191e-49)  FAILED, KNOWN (8.86311e-50), expected Fsum[26] pow(4.78098e-33, 1.95822e-49)\n    test 484 pow(1): Fsum[842] pow(-8.31532e-09, -7.87767e-25)\n    test 485 pow(0): Fsum[1] pow(1.0, 0)\n    test 486 ceil: True\n    test 487 floor: True\n    test 488 divmod: Fsum[848] (0.0, 0)\n    test 489 residual: 0\n    test 490 is_exact: True\n    test 491 Fsum: -8.315323065039467e-09\n    test 492 Fsum: -8.315323065039467e-09\n\n    test 493 fsum: 0.00025425233271824874\n    test 494 sum39: 86.2696164228908  FAILED, KNOWN, expected 0.00025425233271824874\n    test 495 pow(4): Fsum[40] pow(4.17888e-15, 4.77807e-32)  FAILED, KNOWN (6.66986e-32), expected Fsum[40] pow(4.17888e-15, -1.89179e-32)\n    test 496 pow(1): Fsum[842] pow(0.000254252, -1.33013e-20)\n    test 497 pow(0): Fsum[1] pow(1.0, 0)\n    test 498 ceil: True\n    test 499 floor: True\n    test 500 divmod: Fsum[848] (0.0, 0)\n    test 501 residual: 0\n    test 502 is_exact: True\n    test 503 Fsum: 0.00025425233271824874\n    test 504 Fsum: 0.00025425233271824874\n\n    test 505 fsum: 0.010596031823027785\n    test 506 sum40: 3.885337784451458e+84  FAILED, KNOWN, expected 0.010596031823027785\n    test 507 pow(4): Fsum[38] pow(1.26059e-08, 7.74002e-25)  FAILED, KNOWN (7.22175e-25), expected Fsum[38] pow(1.26059e-08, 5.18272e-26)\n    test 508 pow(1): Fsum[842] pow(0.010596, 8.02159e-19)\n    test 509 pow(0): Fsum[1] pow(1.0, 0)\n    test 510 ceil: True\n    test 511 floor: True\n    test 512 divmod: Fsum[847] (0.0, 0)\n    test 513 residual: 0\n    test 514 is_exact: True\n    test 515 Fsum: 0.010596031823027785\n    test 516 Fsum: 0.010596031823027785\n\n    test 517 fsum: 7.833592181697467e-09\n    test 518 sum41: -912.1407786864044  FAILED, KNOWN, expected 7.833592181697467e-09\n    test 519 pow(4): Fsum[21] pow(3.76568e-33, -1.42983e-49)\n    test 520 pow(1): Fsum[842] pow(7.83359e-09, -7.43605e-26)\n    test 521 pow(0): Fsum[1] pow(1.0, 0)\n    test 522 ceil: True\n    test 523 floor: True\n    test 524 divmod: Fsum[846] (0.0, 0)\n    test 525 residual: 0\n    test 526 is_exact: True\n    test 527 Fsum: 7.833592181697467e-09\n    test 528 Fsum: 7.833592181697467e-09\n\n    test 529 fsum: 6.610846222782073e-13\n    test 530 sum42: -118.45001432096298  FAILED, KNOWN, expected 6.610846222782073e-13\n    test 531 pow(4): Fsum[6] pow(1.90998e-49, 5.5861e-66)  FAILED, KNOWN (2.15286e-66), expected Fsum[6] pow(1.90998e-49, 7.73896e-66)\n    test 532 pow(1): Fsum[842] pow(6.61085e-13, 4.14257e-29)\n    test 533 pow(0): Fsum[1] pow(1.0, 0)\n    test 534 ceil: True\n    test 535 floor: True\n    test 536 divmod: Fsum[844] (0.0, 0)\n    test 537 residual: 0\n    test 538 is_exact: True\n    test 539 Fsum: 6.610846222782073e-13\n    test 540 Fsum: 6.610846222782073e-13\n\n    test 541 fsum: -0.0061295368005402735\n    test 542 sum43: 3.885337784451458e+84  FAILED, KNOWN, expected -0.0061295368005402735\n    test 543 pow(4): Fsum[15] pow(1.4116e-09, 3.41835e-26)  FAILED, KNOWN (1.58998e-25), expected Fsum[15] pow(1.4116e-09, 8.19808e-26)\n    test 544 pow(1): Fsum[842] pow(-0.00612954, -3.65373e-19)\n    test 545 pow(0): Fsum[1] pow(1.0, 0)\n    test 546 ceil: True\n    test 547 floor: True\n    test 548 divmod: Fsum[846] (0.0, 0)\n    test 549 residual: 0\n    test 550 is_exact: True\n    test 551 Fsum: -0.0061295368005402735\n    test 552 Fsum: -0.0061295368005402735\n\n    test 553 fsum: 7.515207385115806e-05\n    test 554 sum44: 3.885337784451458e+84  FAILED, KNOWN, expected 7.515207385115806e-05\n    test 555 pow(4): Fsum[32] pow(3.1898e-17, 2.99335e-33)  FAILED, KNOWN (2.36877e-33), expected Fsum[32] pow(3.1898e-17, 6.24583e-34)\n    test 556 pow(1): Fsum[842] pow(7.51521e-05, -1.86692e-21)\n    test 557 pow(0): Fsum[1] pow(1.0, 0)\n    test 558 ceil: True\n    test 559 floor: True\n    test 560 divmod: Fsum[849] (0.0, 0)\n    test 561 residual: 0\n    test 562 is_exact: True\n    test 563 Fsum: 7.515207385115806e-05\n    test 564 Fsum: 7.515207385115806e-05\n\n    test 565 fsum: -0.003654295215608957\n    test 566 sum45: -121.19353641969398  FAILED, KNOWN, expected -0.003654295215608957\n    test 567 pow(4): Fsum[39] pow(1.78326e-10, 5.77285e-27)  FAILED, KNOWN (3.22705e-27), expected Fsum[39] pow(1.78326e-10, 2.5458e-27)\n    test 568 pow(1): Fsum[842] pow(-0.0036543, -1.28938e-19)\n    test 569 pow(0): Fsum[1] pow(1.0, 0)\n    test 570 ceil: True\n    test 571 floor: True\n    test 572 divmod: Fsum[850] (0.0, 0)\n    test 573 residual: 0\n    test 574 is_exact: True\n    test 575 Fsum: -0.003654295215608957\n    test 576 Fsum: -0.003654295215608957\n\n    test 577 fsum: -1.5402369794874465e-07\n    test 578 sum46: -302.8270063425635  FAILED, KNOWN, expected -1.5402369794874465e-07\n    test 579 pow(4): Fsum[23] pow(5.62795e-28, 2.62894e-44)  FAILED, KNOWN (7.48575e-44), expected Fsum[23] pow(5.62795e-28, 4.1115e-44)\n    test 580 pow(1): Fsum[842] pow(-1.54024e-07, 8.44467e-24)\n    test 581 pow(0): Fsum[1] pow(1.0, 0)\n    test 582 ceil: True\n    test 583 floor: True\n    test 584 divmod: Fsum[847] (0.0, 0)\n    test 585 residual: 0\n    test 586 is_exact: True\n    test 587 Fsum: -1.5402369794874465e-07\n    test 588 Fsum: -1.5402369794874465e-07\n\n    test 589 fsum: 0.0031351073041314135\n    test 590 sum47: 309.7002775902754  FAILED, KNOWN, expected 0.0031351073041314135\n    test 591 pow(4): Fsum[33] pow(9.66072e-11, 1.49546e-27)  FAILED, KNOWN (1.80277e-26), expected Fsum[33] pow(9.66072e-11, -6.32624e-27)\n    test 592 pow(1): Fsum[842] pow(0.00313511, 1.16991e-19)\n    test 593 pow(0): Fsum[1] pow(1.0, 0)\n    test 594 ceil: True\n    test 595 floor: True\n    test 596 divmod: Fsum[849] (0.0, 0)\n    test 597 residual: 0\n    test 598 is_exact: True\n    test 599 Fsum: 0.0031351073041314135\n    test 600 Fsum: 0.0031351073041314135\n\n    test 601 fsum: -1.0195462358526644e-12\n    test 602 sum48: 3.885337784451458e+84  FAILED, KNOWN, expected -1.0195462358526644e-12\n    test 603 pow(4): Fsum[14] pow(1.08051e-48, -7.16696e-66)  FAILED, KNOWN (1.83839e-65), expected Fsum[14] pow(1.08051e-48, -2.55508e-65)\n    test 604 pow(1): Fsum[842] pow(-1.01955e-12, -3.41487e-29)\n    test 605 pow(0): Fsum[1] pow(1.0, 0)\n    test 606 ceil: True\n    test 607 floor: True\n    test 608 divmod: Fsum[847] (0.0, 0)\n    test 609 residual: 0\n    test 610 is_exact: True\n    test 611 Fsum: -1.0195462358526644e-12\n    test 612 Fsum: -1.0195462358526644e-12\n\n    test 613 fsum: -2.762699041302757\n    test 614 sum49: -3.885337784451458e+84  FAILED, KNOWN, expected -2.762699041302757\n    test 615 pow(4): Fsum[45] pow(58.2551, 2.3755e-15)\n    test 616 pow(1): Fsum[842] pow(-2.7627, -2.8164e-17)\n    test 617 pow(0): Fsum[1] pow(1.0, 0)\n    test 618 ceil: True\n    test 619 floor: True\n    test 620 divmod: Fsum[851] (0.0, 0)\n    test 621 residual: 0\n    test 622 is_exact: True\n    test 623 Fsum: -2.762699041302757\n    test 624 Fsum: -2.762699041302757\n\n    test 625 fsum: -0.004373577971488287\n    test 626 sum50: -3.885337784451458e+84  FAILED, KNOWN, expected -0.004373577971488287\n    test 627 pow(4): Fsum[46] pow(3.65887e-10, 2.28218e-26)\n    test 628 pow(1): Fsum[842] pow(-0.00437358, -6.81992e-20)\n    test 629 pow(0): Fsum[1] pow(1.0, 0)\n    test 630 ceil: True\n    test 631 floor: True\n    test 632 divmod: Fsum[850] (0.0, 0)\n    test 633 residual: 0\n    test 634 is_exact: True\n    test 635 Fsum: -0.004373577971488287\n    test 636 Fsum: -0.004373577971488287\n\n    test 637 fsum: -1.5970499450308288e-05\n    test 638 sum51: -3.885337784451458e+84  FAILED, KNOWN, expected -1.5970499450308288e-05\n    test 639 pow(4): Fsum[39] pow(6.5054e-20, -4.96291e-36)\n    test 640 pow(1): Fsum[842] pow(-1.59705e-05, -4.34169e-22)\n    test 641 pow(0): Fsum[1] pow(1.0, 0)\n    test 642 ceil: True\n    test 643 floor: True\n    test 644 divmod: Fsum[850] (0.0, 0)\n    test 645 residual: 0\n    test 646 is_exact: True\n    test 647 Fsum: -1.5970499450308288e-05\n    test 648 Fsum: -1.5970499450308288e-05\n\n    test 649 fsum: 0.032100297320307135\n    test 650 sum52: -3.885337784451458e+84  FAILED, KNOWN, expected 0.032100297320307135\n    test 651 pow(4): Fsum[43] pow(1.06178e-06, -4.79052e-23)  FAILED, KNOWN (5.76184e-24), expected Fsum[43] pow(1.06178e-06, -5.3667e-23)\n    test 652 pow(1): Fsum[842] pow(0.0321003, 1.23842e-18)\n    test 653 pow(0): Fsum[1] pow(1.0, 0)\n    test 654 ceil: True\n    test 655 floor: True\n    test 656 divmod: Fsum[849] (0.0, 0)\n    test 657 residual: 0\n    test 658 is_exact: True\n    test 659 Fsum: 0.032100297320307135\n    test 660 Fsum: 0.032100297320307135\n\n    test 661 fsum: -0.0014902560786330264\n    test 662 sum53: -3.885337784451458e+84  FAILED, KNOWN, expected -0.0014902560786330264\n    test 663 pow(4): Fsum[38] pow(4.93223e-12, -2.85207e-28)  FAILED, KNOWN (1.32779e-28), expected Fsum[38] pow(4.93223e-12, 3.89808e-28)\n    test 664 pow(1): Fsum[842] pow(-0.00149026, 1.02621e-19)\n    test 665 pow(0): Fsum[1] pow(1.0, 0)\n    test 666 ceil: True\n    test 667 floor: True\n    test 668 divmod: Fsum[848] (0.0, 0)\n    test 669 residual: 0\n    test 670 is_exact: True\n    test 671 Fsum: -0.0014902560786330264\n    test 672 Fsum: -0.0014902560786330264\n\n    test 673 fsum: -6.93260830709721e-07\n    test 674 sum54: 3.885337784451458e+84  FAILED, KNOWN, expected -6.93260830709721e-07\n    test 675 pow(4): Fsum[22] pow(2.30987e-25, -1.43629e-41)\n    test 676 pow(1): Fsum[842] pow(-6.93261e-07, 1.07769e-23)\n    test 677 pow(0): Fsum[1] pow(1.0, 0)\n    test 678 ceil: True\n    test 679 floor: True\n    test 680 divmod: Fsum[847] (0.0, 0)\n    test 681 residual: 0\n    test 682 is_exact: True\n    test 683 Fsum: -6.93260830709721e-07\n    test 684 Fsum: -6.93260830709721e-07\n\n    test 685 fsum: 2.9080913265077775e-14\n    test 686 sum55: 3.885337784451458e+84  FAILED, KNOWN, expected 2.9080913265077775e-14\n    test 687 pow(4): Fsum[21] pow(7.15208e-55, 7.07194e-71)  FAILED, KNOWN (6.79905e-72), expected Fsum[21] pow(7.15208e-55, 6.39203e-71)\n    test 688 pow(1): Fsum[842] pow(2.90809e-14, -2.36504e-30)\n    test 689 pow(0): Fsum[1] pow(1.0, 0)\n    test 690 ceil: True\n    test 691 floor: True\n    test 692 divmod: Fsum[848] (0.0, 0)\n    test 693 residual: 0\n    test 694 is_exact: True\n    test 695 Fsum: 2.9080913265077775e-14\n    test 696 Fsum: 2.9080913265077775e-14\n\n    test 697 fsum: -5.3637224787681174e-08\n    test 698 sum56: 163.74555705580372  FAILED, KNOWN, expected -5.3637224787681174e-08\n    test 699 pow(4): Fsum[27] pow(8.27685e-30, 4.18428e-46)\n    test 700 pow(1): Fsum[842] pow(-5.36372e-08, -6.77893e-25)\n    test 701 pow(0): Fsum[1] pow(1.0, 0)\n    test 702 ceil: True\n    test 703 floor: True\n    test 704 divmod: Fsum[849] (0.0, 0)\n    test 705 residual: 0\n    test 706 is_exact: True\n    test 707 Fsum: -5.3637224787681174e-08\n    test 708 Fsum: -5.3637224787681174e-08\n\n    test 709 fsum: -0.4665950454344666\n    test 710 sum57: 0.10269347943627775  FAILED, KNOWN, expected -0.4665950454344666\n    test 711 pow(4): Fsum[38] pow(0.0473981, 2.80383e-18)  FAILED, KNOWN (8.96202e-19), expected Fsum[38] pow(0.0473981, -3.23886e-18)\n    test 712 pow(1): Fsum[842] pow(-0.466595, 2.28423e-17)\n    test 713 pow(0): Fsum[1] pow(1.0, 0)\n    test 714 ceil: True\n    test 715 floor: True\n    test 716 divmod: Fsum[849] (0.0, 0)\n    test 717 residual: 0\n    test 718 is_exact: True\n    test 719 Fsum: -0.4665950454344666\n    test 720 Fsum: -0.4665950454344666\n\n    test 721 fsum: -1.097912213493587\n    test 722 sum58: -123.11991024878036  FAILED, KNOWN, expected -1.097912213493587\n    test 723 pow(4): Fsum[58] pow(1.45302, -3.15692e-17)\n    test 724 pow(1): Fsum[842] pow(-1.09791, 5.96349e-18)\n    test 725 pow(0): Fsum[1] pow(1.0, 0)\n    test 726 ceil: True\n    test 727 floor: True\n    test 728 divmod: Fsum[851] (0.0, 0)\n    test 729 residual: 0\n    test 730 is_exact: True\n    test 731 Fsum: -1.097912213493587\n    test 732 Fsum: -1.097912213493587\n\n    test 733 fsum: 0.0008318527265511295\n    test 734 sum59: -24.847187959310634  FAILED, KNOWN, expected 0.0008318527265511295\n    test 735 pow(4): Fsum[32] pow(4.78835e-13, -3.8648e-29)  FAILED, KNOWN (1.49626e-29), expected Fsum[32] pow(4.78835e-13, -2.36854e-29)\n    test 736 pow(1): Fsum[842] pow(0.000831853, 2.70689e-20)\n    test 737 pow(0): Fsum[1] pow(1.0, 0)\n    test 738 ceil: True\n    test 739 floor: True\n    test 740 divmod: Fsum[848] (0.0, 0)\n    test 741 residual: 0\n    test 742 is_exact: True\n    test 743 Fsum: 0.0008318527265511295\n    test 744 Fsum: 0.0008318527265511295\n\n    test 745 fsum: 2.0048130696662265\n    test 746 sum60: -30.512248715904317  FAILED, KNOWN, expected 2.0048130696662265\n    test 747 pow(4): Fsum[49] pow(16.1546, -5.72016e-16)\n    test 748 pow(1): Fsum[842] pow(2.00481, -1.77471e-17)\n    test 749 pow(0): Fsum[1] pow(1.0, 0)\n    test 750 ceil: True\n    test 751 floor: True\n    test 752 divmod: Fsum[849] (0.0, 0)\n    test 753 residual: 0\n    test 754 is_exact: True\n    test 755 Fsum: 2.0048130696662265\n    test 756 Fsum: 2.0048130696662265\n\n    test 757 fsum: -8.91303377980622e-08\n    test 758 sum61: 5.627587847686488  FAILED, KNOWN, expected -8.91303377980622e-08\n    test 759 pow(4): Fsum[19] pow(6.31106e-29, -1.10881e-45)  FAILED, KNOWN (8.38178e-45), expected Fsum[19] pow(6.31106e-29, -3.93742e-45)\n    test 760 pow(1): Fsum[842] pow(-8.91303e-08, 4.34956e-24)\n    test 761 pow(0): Fsum[1] pow(1.0, 0)\n    test 762 ceil: True\n    test 763 floor: True\n    test 764 divmod: Fsum[846] (0.0, 0)\n    test 765 residual: 0\n    test 766 is_exact: True\n    test 767 Fsum: -8.91303377980622e-08\n    test 768 Fsum: -8.91303377980622e-08\n\n    test 769 fsum: -1.0430211818701006e-08\n    test 770 sum62: 13.998635724817735  FAILED, KNOWN, expected -1.0430211818701006e-08\n    test 771 pow(4): Fsum[28] pow(1.18351e-32, -1.42451e-50)  FAILED, KNOWN (2.75237e-50), expected Fsum[28] pow(1.18351e-32, 1.32786e-50)\n    test 772 pow(1): Fsum[842] pow(-1.04302e-08, 5.94016e-25)\n    test 773 pow(0): Fsum[1] pow(1.0, 0)\n    test 774 ceil: True\n    test 775 floor: True\n    test 776 divmod: Fsum[848] (0.0, 0)\n    test 777 residual: 0\n    test 778 is_exact: True\n    test 779 Fsum: -1.0430211818701006e-08\n    test 780 Fsum: -1.0430211818701006e-08\n\n    test 781 fsum: 1.2492275836146128e-14\n    test 782 sum63: 61.045913868887546  FAILED, KNOWN, expected 1.2492275836146128e-14\n    test 783 pow(4): Fsum[29] pow(2.43538e-56, 1.09251e-72)  FAILED, KNOWN (3.98027e-72), expected Fsum[29] pow(2.43538e-56, 5.44936e-73)\n    test 784 pow(1): Fsum[842] pow(1.24923e-14, -4.40539e-31)\n    test 785 pow(0): Fsum[1] pow(1.0, 0)\n    test 786 ceil: True\n    test 787 floor: True\n    test 788 divmod: Fsum[850] (0.0, 0)\n    test 789 residual: 0\n    test 790 is_exact: True\n    test 791 Fsum: 1.2492275836146128e-14\n    test 792 Fsum: 1.2492275836146128e-14\n\n    test 793 fsum: 1.2779036473104664e-08\n    test 794 sum64: 0.03920468148277458  FAILED, KNOWN, expected 1.2779036473104664e-08\n    test 795 pow(4): Fsum[26] pow(2.66681e-32, -2.39266e-48)\n    test 796 pow(1): Fsum[842] pow(1.2779e-08, 3.69114e-25)\n    test 797 pow(0): Fsum[1] pow(1.0, 0)\n    test 798 ceil: True\n    test 799 floor: True\n    test 800 divmod: Fsum[848] (0.0, 0)\n    test 801 residual: 0\n    test 802 is_exact: True\n    test 803 Fsum: 1.2779036473104664e-08\n    test 804 Fsum: 1.2779036473104664e-08\n\n    test 805 fsum: 0.04191632620812525\n    test 806 sum65: 3.885337784451458e+84  FAILED, KNOWN, expected 0.04191632620812525\n    test 807 pow(4): Fsum[35] pow(3.08697e-06, -6.16709e-23)\n    test 808 pow(1): Fsum[842] pow(0.0419163, -2.09349e-19)\n    test 809 pow(0): Fsum[1] pow(1.0, 0)\n    test 810 ceil: True\n    test 811 floor: True\n    test 812 divmod: Fsum[848] (0.0, 0)\n    test 813 residual: 0\n    test 814 is_exact: True\n    test 815 Fsum: 0.04191632620812525\n    test 816 Fsum: 0.04191632620812525\n\n    test 817 fsum: 3.5267358478583304e-07\n    test 818 sum66: -3.885337784451458e+84  FAILED, KNOWN, expected 3.5267358478583304e-07\n    test 819 pow(4): Fsum[16] pow(1.54701e-26, -1.01123e-42)  FAILED, KNOWN (7.47282e-43), expected Fsum[16] pow(1.54701e-26, -2.63945e-43)\n    test 820 pow(1): Fsum[842] pow(3.52674e-07, 1.05929e-23)\n    test 821 pow(0): Fsum[1] pow(1.0, 0)\n    test 822 ceil: True\n    test 823 floor: True\n    test 824 divmod: Fsum[845] (0.0, 0)\n    test 825 residual: 0\n    test 826 is_exact: True\n    test 827 Fsum: 3.5267358478583304e-07\n    test 828 Fsum: 3.5267358478583304e-07\n\n    test 829 fsum: -3.252533092497974e-05\n    test 830 sum67: 3.0564877658989804  FAILED, KNOWN, expected -3.252533092497974e-05\n    test 831 pow(4): Fsum[40] pow(1.11915e-18, 7.54085e-35)  FAILED, KNOWN (1.66418e-34), expected Fsum[40] pow(1.11915e-18, -9.10095e-35)\n    test 832 pow(1): Fsum[842] pow(-3.25253e-05, -2.32756e-21)\n    test 833 pow(0): Fsum[1] pow(1.0, 0)\n    test 834 ceil: True\n    test 835 floor: True\n    test 836 divmod: Fsum[850] (0.0, 0)\n    test 837 residual: 0\n    test 838 is_exact: True\n    test 839 Fsum: -3.252533092497974e-05\n    test 840 Fsum: -3.252533092497974e-05\n\n    test 841 fsum: 165.34478448565338\n    test 842 sum68: 3.885337784451458e+84  FAILED, KNOWN, expected 165.34478448565338\n    test 843 pow(4): Fsum[70] pow(7.47415e+08, -3.62883e-08)  FAILED, KNOWN (1.9751e-08), expected Fsum[70] pow(7.47415e+08, -1.65374e-08)\n    test 844 pow(1): Fsum[842] pow(165.345, -6.4152e-15)\n    test 845 pow(0): Fsum[1] pow(1.0, 0)\n    test 846 ceil: True\n    test 847 floor: True\n    test 848 divmod: Fsum[853] (0.0, 0)\n    test 849 residual: 0\n    test 850 is_exact: True\n    test 851 Fsum: 165.34478448565338\n    test 852 Fsum: 165.34478448565338\n\n    test 853 fsum: -0.0001757526565796681\n    test 854 sum69: -3.885337784451458e+84  FAILED, KNOWN, expected -0.0001757526565796681\n    test 855 pow(4): Fsum[38] pow(9.5413e-16, 8.01476e-32)  FAILED, KNOWN (1.41972e-31), expected Fsum[38] pow(9.5413e-16, 2.49042e-32)\n    test 856 pow(1): Fsum[842] pow(-0.000175753, 5.39102e-21)\n    test 857 pow(0): Fsum[1] pow(1.0, 0)\n    test 858 ceil: True\n    test 859 floor: True\n    test 860 divmod: Fsum[850] (0.0, 0)\n    test 861 residual: 0\n    test 862 is_exact: True\n    test 863 Fsum: -0.0001757526565796681\n    test 864 Fsum: -0.0001757526565796681\n\n    test 865 fsum: -0.05553150797701166\n    test 866 sum70: -3.885337784451458e+84  FAILED, KNOWN, expected -0.05553150797701166\n    test 867 pow(4): Fsum[62] pow(9.5095e-06, 4.55715e-22)  FAILED, KNOWN (1.50518e-21), expected Fsum[62] pow(9.5095e-06, 2.66833e-22)\n    test 868 pow(1): Fsum[842] pow(-0.0555315, 1.80786e-18)\n    test 869 pow(0): Fsum[1] pow(1.0, 0)\n    test 870 ceil: True\n    test 871 floor: True\n    test 872 divmod: Fsum[852] (0.0, 0)\n    test 873 residual: 0\n    test 874 is_exact: True\n    test 875 Fsum: -0.05553150797701166\n    test 876 Fsum: -0.05553150797701166\n\n    test 877 fsum: 5.886312795661918e-05\n    test 878 sum71: -36.36754050768254  FAILED, KNOWN, expected 5.886312795661918e-05\n    test 879 pow(4): Fsum[37] pow(1.20053e-17, -3.74505e-34)\n    test 880 pow(1): Fsum[842] pow(5.88631e-05, -4.59058e-22)\n    test 881 pow(0): Fsum[1] pow(1.0, 0)\n    test 882 ceil: True\n    test 883 floor: True\n    test 884 divmod: Fsum[849] (0.0, 0)\n    test 885 residual: 0\n    test 886 is_exact: True\n    test 887 Fsum: 5.886312795661918e-05\n    test 888 Fsum: 5.886312795661918e-05\n\n    test 889 fsum: -0.00016888123419475597\n    test 890 sum72: -24.559228727940422  FAILED, KNOWN, expected -0.00016888123419475597\n    test 891 pow(4): Fsum[29] pow(8.1344e-16, -7.4716e-33)  FAILED, KNOWN (5.23141e-32), expected Fsum[29] pow(8.1344e-16, 4.48425e-32)\n    test 892 pow(1): Fsum[842] pow(-0.000168881, 7.90085e-21)\n    test 893 pow(0): Fsum[1] pow(1.0, 0)\n    test 894 ceil: True\n    test 895 floor: True\n    test 896 divmod: Fsum[848] (0.0, 0)\n    test 897 residual: 0\n    test 898 is_exact: True\n    test 899 Fsum: -0.00016888123419475597\n    test 900 Fsum: -0.00016888123419475597\n\n    test 901 fsum: -1.4062586274292843e-08\n    test 902 sum73: -452.36352560165193  FAILED, KNOWN, expected -1.4062586274292843e-08\n    test 903 pow(4): Fsum[27] pow(3.91076e-32, -1.23421e-48)  FAILED, KNOWN (4.87507e-48), expected Fsum[27] pow(3.91076e-32, -6.35462e-49)\n    test 904 pow(1): Fsum[842] pow(-1.40626e-08, 4.95379e-25)\n    test 905 pow(0): Fsum[1] pow(1.0, 0)\n    test 906 ceil: True\n    test 907 floor: True\n    test 908 divmod: Fsum[848] (0.0, 0)\n    test 909 residual: 0\n    test 910 is_exact: True\n    test 911 Fsum: -1.4062586274292843e-08\n    test 912 Fsum: -1.4062586274292843e-08\n\n    test 913 fsum: -0.01196513456467219\n    test 914 sum74: 446.4663500655666  FAILED, KNOWN, expected -0.01196513456467219\n    test 915 pow(4): Fsum[39] pow(2.04961e-08, 3.37989e-25)\n    test 916 pow(1): Fsum[842] pow(-0.0119651, -4.93275e-20)\n    test 917 pow(0): Fsum[1] pow(1.0, 0)\n    test 918 ceil: True\n    test 919 floor: True\n    test 920 divmod: Fsum[852] (0.0, 0)\n    test 921 residual: 0\n    test 922 is_exact: True\n    test 923 Fsum: -0.01196513456467219\n    test 924 Fsum: -0.01196513456467219\n\n    test 925 fsum: -6.925513760895447e-07\n    test 926 sum75: 3.885337784451458e+84  FAILED, KNOWN, expected -6.925513760895447e-07\n    test 927 pow(4): Fsum[36] pow(2.30042e-25, -1.88191e-41)\n    test 928 pow(1): Fsum[842] pow(-6.92551e-07, 1.41639e-23)\n    test 929 pow(0): Fsum[1] pow(1.0, 0)\n    test 930 ceil: True\n    test 931 floor: True\n    test 932 divmod: Fsum[849] (0.0, 0)\n    test 933 residual: 0\n    test 934 is_exact: True\n    test 935 Fsum: -6.925513760895447e-07\n    test 936 Fsum: -6.925513760895447e-07\n\n    test 937 fsum: 9.957524498585636e-06\n    test 938 sum76: 3.885337784451458e+84  FAILED, KNOWN, expected 9.957524498585636e-06\n    test 939 pow(4): Fsum[37] pow(9.83118e-21, 6.47229e-37)  FAILED, KNOWN (2.23119e-37), expected Fsum[37] pow(9.83118e-21, -6.34284e-37)\n    test 940 pow(1): Fsum[842] pow(9.95752e-06, -4.85105e-22)\n    test 941 pow(0): Fsum[1] pow(1.0, 0)\n    test 942 ceil: True\n    test 943 floor: True\n    test 944 divmod: Fsum[848] (0.0, 0)\n    test 945 residual: 0\n    test 946 is_exact: True\n    test 947 Fsum: 9.957524498585636e-06\n    test 948 Fsum: 9.957524498585636e-06\n\n    test 949 fsum: 0.0014631781981059653\n    test 950 sum77: 106.27597644108033  FAILED, KNOWN, expected 0.0014631781981059653\n    test 951 pow(4): Fsum[34] pow(4.58341e-12, -2.02933e-28)  FAILED, KNOWN (9.89088e-29), expected Fsum[34] pow(4.58341e-12, -3.01842e-28)\n    test 952 pow(1): Fsum[842] pow(0.00146318, -9.64519e-20)\n    test 953 pow(0): Fsum[1] pow(1.0, 0)\n    test 954 ceil: True\n    test 955 floor: True\n    test 956 divmod: Fsum[847] (0.0, 0)\n    test 957 residual: 0\n    test 958 is_exact: True\n    test 959 Fsum: 0.0014631781981059653\n    test 960 Fsum: 0.0014631781981059653\n\n    test 961 fsum: -5.992658029434769e-10\n    test 962 sum78: 3.885337784451458e+84  FAILED, KNOWN, expected -5.992658029434769e-10\n    test 963 pow(4): Fsum[25] pow(1.28967e-37, -8.71247e-54)\n    test 964 pow(1): Fsum[842] pow(-5.99266e-10, 1.0121e-26)\n    test 965 pow(0): Fsum[1] pow(1.0, 0)\n    test 966 ceil: True\n    test 967 floor: True\n    test 968 divmod: Fsum[849] (0.0, 0)\n    test 969 residual: 0\n    test 970 is_exact: True\n    test 971 Fsum: -5.992658029434769e-10\n    test 972 Fsum: -5.992658029434769e-10\n\n    test 973 fsum: 0.016908889311496828\n    test 974 sum79: 3.885337784451458e+84  FAILED, KNOWN, expected 0.016908889311496828\n    test 975 pow(4): Fsum[43] pow(8.17448e-08, -3.77843e-24)\n    test 976 pow(1): Fsum[842] pow(0.0169089, 4.89016e-19)\n    test 977 pow(0): Fsum[1] pow(1.0, 0)\n    test 978 ceil: True\n    test 979 floor: True\n    test 980 divmod: Fsum[851] (0.0, 0)\n    test 981 residual: 0\n    test 982 is_exact: True\n    test 983 Fsum: 0.016908889311496828\n    test 984 Fsum: 0.016908889311496828\n\n    test 985 fsum: -1.708398806013404\n    test 986 sum80: 3.2280116515526434  FAILED, KNOWN, expected -1.708398806013404\n    test 987 pow(4): Fsum[41] pow(8.51838, 3.41418e-16)\n    test 988 pow(1): Fsum[842] pow(-1.7084, -1.71182e-17)\n    test 989 pow(0): Fsum[1] pow(1.0, 0)\n    test 990 ceil: True\n    test 991 floor: True\n    test 992 divmod: Fsum[850] (0.0, 0)\n    test 993 residual: 0\n    test 994 is_exact: True\n    test 995 Fsum: -1.708398806013404\n    test 996 Fsum: -1.708398806013404\n\n    test 997 fsum: 7.930658007200038e-09\n    test 998 sum81: 3.885337784451458e+84  FAILED, KNOWN, expected 7.930658007200038e-09\n    test 999 pow(4): Fsum[25] pow(3.95582e-33, 3.17481e-49)  FAILED, KNOWN (9.10171e-50), expected Fsum[25] pow(3.95582e-33, 2.26464e-49)\n    test 1000 pow(1): Fsum[842] pow(7.93066e-09, -6.17986e-25)\n    test 1001 pow(0): Fsum[1] pow(1.0, 0)\n    test 1002 ceil: True\n    test 1003 floor: True\n    test 1004 divmod: Fsum[847] (0.0, 0)\n    test 1005 residual: 0\n    test 1006 is_exact: True\n    test 1007 Fsum: 7.930658007200038e-09\n    test 1008 Fsum: 7.930658007200038e-09\n\n    test 1009 fsum: 1.849496426352178e-05\n    test 1010 sum82: -671.1348764671183  FAILED, KNOWN, expected 1.849496426352178e-05\n    test 1011 pow(4): Fsum[38] pow(1.17008e-19, -7.93699e-36)\n    test 1012 pow(1): Fsum[842] pow(1.8495e-05, -3.13643e-22)\n    test 1013 pow(0): Fsum[1] pow(1.0, 0)\n    test 1014 ceil: True\n    test 1015 floor: True\n    test 1016 divmod: Fsum[848] (0.0, 0)\n    test 1017 residual: 0\n    test 1018 is_exact: True\n    test 1019 Fsum: 1.849496426352178e-05\n    test 1020 Fsum: 1.849496426352178e-05\n\n    test 1021 fsum: -1.144351548810233e-09\n    test 1022 sum83: -3.885337784451458e+84  FAILED, KNOWN, expected -1.144351548810233e-09\n    test 1023 pow(4): Fsum[19] pow(1.7149e-36, 5.03698e-53)  FAILED, KNOWN (2.52208e-52), expected Fsum[19] pow(1.7149e-36, 1.32257e-52)\n    test 1024 pow(1): Fsum[842] pow(-1.14435e-09, 7.57464e-26)\n    test 1025 pow(0): Fsum[1] pow(1.0, 0)\n    test 1026 ceil: True\n    test 1027 floor: True\n    test 1028 divmod: Fsum[847] (0.0, 0)\n    test 1029 residual: 0\n    test 1030 is_exact: True\n    test 1031 Fsum: -1.144351548810233e-09\n    test 1032 Fsum: -1.144351548810233e-09\n\n    test 1033 fsum: 0.0018078863936274512\n    test 1034 sum84: -3.885337784451458e+84  FAILED, KNOWN, expected 0.0018078863936274512\n    test 1035 pow(4): Fsum[47] pow(1.06828e-11, 4.8131e-28)\n    test 1036 pow(1): Fsum[842] pow(0.00180789, 2.03635e-20)\n    test 1037 pow(0): Fsum[1] pow(1.0, 0)\n    test 1038 ceil: True\n    test 1039 floor: True\n    test 1040 divmod: Fsum[851] (0.0, 0)\n    test 1041 residual: 0\n    test 1042 is_exact: True\n    test 1043 Fsum: 0.0018078863936274512\n    test 1044 Fsum: 0.0018078863936274512\n\n    test 1045 fsum: -0.004949726479280443\n    test 1046 sum85: -3.885337784451458e+84  FAILED, KNOWN, expected -0.004949726479280443\n    test 1047 pow(4): Fsum[39] pow(6.0024e-10, 4.31986e-26)  FAILED, KNOWN (2.03891e-26), expected Fsum[39] pow(6.0024e-10, -3.98099e-26)\n    test 1048 pow(1): Fsum[842] pow(-0.00494973, 2.53198e-19)\n    test 1049 pow(0): Fsum[1] pow(1.0, 0)\n    test 1050 ceil: True\n    test 1051 floor: True\n    test 1052 divmod: Fsum[850] (0.0, 0)\n    test 1053 residual: 0\n    test 1054 is_exact: True\n    test 1055 Fsum: -0.004949726479280443\n    test 1056 Fsum: -0.004949726479280443\n\n    test 1057 fsum: 9.862280823221828e-08\n    test 1058 sum86: -40.13714791943266  FAILED, KNOWN, expected 9.862280823221828e-08\n    test 1059 pow(4): Fsum[32] pow(9.4604e-29, -1.31929e-45)  FAILED, KNOWN (7.07513e-45), expected Fsum[32] pow(9.4604e-29, -5.45455e-45)\n    test 1060 pow(1): Fsum[842] pow(9.86228e-08, -5.42095e-24)\n    test 1061 pow(0): Fsum[1] pow(1.0, 0)\n    test 1062 ceil: True\n    test 1063 floor: True\n    test 1064 divmod: Fsum[848] (0.0, 0)\n    test 1065 residual: 0\n    test 1066 is_exact: True\n    test 1067 Fsum: 9.862280823221828e-08\n    test 1068 Fsum: 9.862280823221828e-08\n\n    test 1069 fsum: 1.746884968367393e-06\n    test 1070 sum87: -79.72637187120154  FAILED, KNOWN, expected 1.746884968367393e-06\n    test 1071 pow(4): Fsum[35] pow(9.31231e-24, 4.7526e-40)  FAILED, KNOWN (1.23253e-39), expected Fsum[35] pow(9.31231e-24, 2.38426e-40)\n    test 1072 pow(1): Fsum[842] pow(1.74688e-06, 6.89839e-23)\n    test 1073 pow(0): Fsum[1] pow(1.0, 0)\n    test 1074 ceil: True\n    test 1075 floor: True\n    test 1076 divmod: Fsum[848] (0.0, 0)\n    test 1077 residual: 0\n    test 1078 is_exact: True\n    test 1079 Fsum: 1.746884968367393e-06\n    test 1080 Fsum: 1.746884968367393e-06\n\n    test 1081 fsum: 1.716932512935431e-05\n    test 1082 sum88: 3.885337784451458e+84  FAILED, KNOWN, expected 1.716932512935431e-05\n    test 1083 pow(4): Fsum[29] pow(8.68986e-20, 2.79871e-36)  FAILED, KNOWN (3.203e-36), expected Fsum[29] pow(8.68986e-20, 6.00171e-36)\n    test 1084 pow(1): Fsum[842] pow(1.71693e-05, 1.04923e-21)\n    test 1085 pow(0): Fsum[1] pow(1.0, 0)\n    test 1086 ceil: True\n    test 1087 floor: True\n    test 1088 divmod: Fsum[847] (0.0, 0)\n    test 1089 residual: 0\n    test 1090 is_exact: True\n    test 1091 Fsum: 1.716932512935431e-05\n    test 1092 Fsum: 1.716932512935431e-05\n\n    test 1093 fsum: 1.3746860967291014e-14\n    test 1094 sum89: -3.885337784451458e+84  FAILED, KNOWN, expected 1.3746860967291014e-14\n    test 1095 pow(4): Fsum[15] pow(3.5712e-56, -1.58306e-72)  FAILED, KNOWN (2.90847e-73), expected Fsum[15] pow(3.5712e-56, -1.29221e-72)\n    test 1096 pow(1): Fsum[842] pow(1.37469e-14, -5.32098e-31)\n    test 1097 pow(0): Fsum[1] pow(1.0, 0)\n    test 1098 ceil: True\n    test 1099 floor: True\n    test 1100 divmod: Fsum[846] (0.0, 0)\n    test 1101 residual: 0\n    test 1102 is_exact: True\n    test 1103 Fsum: 1.3746860967291014e-14\n    test 1104 Fsum: 1.3746860967291014e-14\n\n    test 1105 fsum: 9.398950587440378e-07\n    test 1106 sum90: -3.885337784451458e+84  FAILED, KNOWN, expected 9.398950587440378e-07\n    test 1107 pow(4): Fsum[20] pow(7.804e-25, -4.40641e-41)  FAILED, KNOWN (2.63462e-42), expected Fsum[20] pow(7.804e-25, 4.51368e-41)\n    test 1108 pow(1): Fsum[842] pow(9.39895e-07, 4.04483e-23)\n    test 1109 pow(0): Fsum[1] pow(1.0, 0)\n    test 1110 ceil: True\n    test 1111 floor: True\n    test 1112 divmod: Fsum[846] (0.0, 0)\n    test 1113 residual: 0\n    test 1114 is_exact: True\n    test 1115 Fsum: 9.398950587440378e-07\n    test 1116 Fsum: 9.398950587440378e-07\n\n    test 1117 fsum: -3.845334870378444e-12\n    test 1118 sum91: 2.033622144050961  FAILED, KNOWN, expected -3.845334870378444e-12\n    test 1119 pow(4): Fsum[16] pow(2.18644e-46, 3.90924e-63)\n    test 1120 pow(1): Fsum[842] pow(-3.84533e-12, -1.71882e-29)\n    test 1121 pow(0): Fsum[1] pow(1.0, 0)\n    test 1122 ceil: True\n    test 1123 floor: True\n    test 1124 divmod: Fsum[847] (0.0, 0)\n    test 1125 residual: 0\n    test 1126 is_exact: True\n    test 1127 Fsum: -3.845334870378444e-12\n    test 1128 Fsum: -3.845334870378444e-12\n\n    test 1129 fsum: -0.014953425762466112\n    test 1130 sum92: 3.885337784451458e+84  FAILED, KNOWN, expected -0.014953425762466112\n    test 1131 pow(4): Fsum[45] pow(4.99992e-08, 2.79485e-24)\n    test 1132 pow(1): Fsum[842] pow(-0.0149534, 2.85809e-19)\n    test 1133 pow(0): Fsum[1] pow(1.0, 0)\n    test 1134 ceil: True\n    test 1135 floor: True\n    test 1136 divmod: Fsum[850] (0.0, 0)\n    test 1137 residual: 0\n    test 1138 is_exact: True\n    test 1139 Fsum: -0.014953425762466112\n    test 1140 Fsum: -0.014953425762466112\n\n    test 1141 fsum: -2.181482332993425e-05\n    test 1142 sum93: 3.885337784451458e+84  FAILED, KNOWN, expected -2.181482332993425e-05\n    test 1143 pow(4): Fsum[23] pow(2.26468e-19, 2.05067e-35)\n    test 1144 pow(1): Fsum[842] pow(-2.18148e-05, -4.93833e-22)\n    test 1145 pow(0): Fsum[1] pow(1.0, 0)\n    test 1146 ceil: True\n    test 1147 floor: True\n    test 1148 divmod: Fsum[847] (0.0, 0)\n    test 1149 residual: 0\n    test 1150 is_exact: True\n    test 1151 Fsum: -2.181482332993425e-05\n    test 1152 Fsum: -2.181482332993425e-05\n\n    test 1153 fsum: 0.1796640595568802\n    test 1154 sum94: -3.885337784451458e+84  FAILED, KNOWN, expected 0.1796640595568802\n    test 1155 pow(4): Fsum[41] pow(0.00104195, -1.68599e-21)  FAILED, KNOWN (7.14133e-21), expected Fsum[41] pow(0.00104195, 5.45535e-21)\n    test 1156 pow(1): Fsum[842] pow(0.179664, 9.89054e-18)\n    test 1157 pow(0): Fsum[1] pow(1.0, 0)\n    test 1158 ceil: True\n    test 1159 floor: True\n    test 1160 divmod: Fsum[849] (0.0, 0)\n    test 1161 residual: 0\n    test 1162 is_exact: True\n    test 1163 Fsum: 0.1796640595568802\n    test 1164 Fsum: 0.1796640595568802\n\n    test 1165 fsum: -0.26056206166280493\n    test 1166 sum95: 3.885337784451458e+84  FAILED, KNOWN, expected -0.26056206166280493\n    test 1167 pow(4): Fsum[55] pow(0.0046094, -3.86587e-19)  FAILED, KNOWN (7.48372e-20), expected Fsum[55] pow(0.0046094, -3.1175e-19)\n    test 1168 pow(1): Fsum[842] pow(-0.260562, -2.11672e-17)\n    test 1169 pow(0): Fsum[1] pow(1.0, 0)\n    test 1170 ceil: True\n    test 1171 floor: True\n    test 1172 divmod: Fsum[850] (0.0, 0)\n    test 1173 residual: 0\n    test 1174 is_exact: True\n    test 1175 Fsum: -0.26056206166280493\n    test 1176 Fsum: -0.26056206166280493\n\n    test 1177 fsum: -1.3288325397540682e-10\n    test 1178 sum96: 236.58053951823723  FAILED, KNOWN, expected -1.3288325397540682e-10\n    test 1179 pow(4): Fsum[18] pow(3.11804e-40, -1.2527e-56)\n    test 1180 pow(1): Fsum[842] pow(-1.32883e-10, 1.33468e-27)\n    test 1181 pow(0): Fsum[1] pow(1.0, 0)\n    test 1182 ceil: True\n    test 1183 floor: True\n    test 1184 divmod: Fsum[847] (0.0, 0)\n    test 1185 residual: 0\n    test 1186 is_exact: True\n    test 1187 Fsum: -1.3288325397540682e-10\n    test 1188 Fsum: -1.3288325397540682e-10\n\n    test 1189 fsum: -2.1153789389272494e-05\n    test 1190 sum97: 3.885337784451458e+84  FAILED, KNOWN, expected -2.1153789389272494e-05\n    test 1191 pow(4): Fsum[26] pow(2.00241e-19, -3.77639e-36)  FAILED, KNOWN (9.39805e-37), expected Fsum[26] pow(2.00241e-19, -2.83659e-36)\n    test 1192 pow(1): Fsum[842] pow(-2.11538e-05, 6.85903e-22)\n    test 1193 pow(0): Fsum[1] pow(1.0, 0)\n    test 1194 ceil: True\n    test 1195 floor: True\n    test 1196 divmod: Fsum[847] (0.0, 0)\n    test 1197 residual: 0\n    test 1198 is_exact: True\n    test 1199 Fsum: -2.1153789389272494e-05\n    test 1200 Fsum: -2.1153789389272494e-05\n\n    test 1201 fsum: -7.135903088885889e-05\n    test 1202 sum98: -8.36048418631017  FAILED, KNOWN, expected -7.135903088885889e-05\n    test 1203 pow(4): Fsum[33] pow(2.59296e-17, -8.00357e-34)  FAILED, KNOWN (1.13061e-33), expected Fsum[33] pow(2.59296e-17, 3.30251e-34)\n    test 1204 pow(1): Fsum[842] pow(-7.1359e-05, -5.24526e-21)\n    test 1205 pow(0): Fsum[1] pow(1.0, 0)\n    test 1206 ceil: True\n    test 1207 floor: True\n    test 1208 divmod: Fsum[850] (0.0, 0)\n    test 1209 residual: 0\n    test 1210 is_exact: True\n    test 1211 Fsum: -7.135903088885889e-05\n    test 1212 Fsum: -7.135903088885889e-05\n\n    test 1213 fsum: -0.00039188050506964707\n    test 1214 sum99: -3.885337784451458e+84  FAILED, KNOWN, expected -0.00039188050506964707\n    test 1215 pow(4): Fsum[47] pow(2.35838e-14, -7.32475e-31)  FAILED, KNOWN (9.09529e-31), expected Fsum[47] pow(2.35838e-14, 1.77054e-31)\n    test 1216 pow(1): Fsum[842] pow(-0.000391881, -1.76219e-20)\n    test 1217 pow(0): Fsum[1] pow(1.0, 0)\n    test 1218 ceil: True\n    test 1219 floor: True\n    test 1220 divmod: Fsum[850] (0.0, 0)\n    test 1221 residual: 0\n    test 1222 is_exact: True\n    test 1223 Fsum: -0.00039188050506964707\n    test 1224 Fsum: -0.00039188050506964707\n\n    test 1225 fsum: -2.659736477135389e-11\n    test 1226 sum100: -3.885337784451458e+84  FAILED, KNOWN, expected -2.659736477135389e-11\n    test 1227 pow(4): Fsum[11] pow(5.00443e-43, 3.66427e-59)\n    test 1228 pow(1): Fsum[842] pow(-2.65974e-11, -4.86868e-28)\n    test 1229 pow(0): Fsum[1] pow(1.0, 0)\n    test 1230 ceil: True\n    test 1231 floor: True\n    test 1232 divmod: Fsum[846] (0.0, 0)\n    test 1233 residual: 0\n    test 1234 is_exact: True\n    test 1235 Fsum: -2.659736477135389e-11\n    test 1236 Fsum: -2.659736477135389e-11\n    test 1237 fmul: 0.00000000\n\n    test 1238 len1: 4\n    test 1239 FSum+: 4.0\n    test 1240 FSum-: 2.0\n    test 1241 FSum-: 0.0\n    test 1242 FSum*: 4.0\n    test 1243 copy(<class 'type'>): (<class 'pygeodesy.fsums.Fsum'>, True)\n    test 1244 ._fint2: (4, 0)\n    test 1245 ._fprs: 4.0\n    test 1246 ._fprs2: (4.0, 0)\n    test 1247 ._n: 5\n    test 1248 ._ps: [4.0]\n    test 1249 Fsum.copy(): (<class 'pygeodesy.fsums.Fsum'>, True)\n    test 1250 ._fint2: (4, 0)\n    test 1251 ._fprs: 4.0\n    test 1252 ._fprs2: (4.0, 0)\n    test 1253 ._n: 5\n    test 1254 ._ps: [4.0]\n    test 1255 len2: 8\n    test 1256 FSum+: 8.0\n    test 1257 FSum-: 4.0\n    test 1258 FSum-: 0.0\n    test 1259 FSum*: 8.0\n    test 1260 copy(<class 'type'>): (<class 'pygeodesy.fsums.Fsum'>, True)\n    test 1261 ._fint2: (8, 0)\n    test 1262 ._fprs: 8.0\n    test 1263 ._fprs2: (8.0, 0)\n    test 1264 ._n: 9\n    test 1265 ._ps: [8.0]\n    test 1266 Fsum.copy(): (<class 'pygeodesy.fsums.Fsum'>, True)\n    test 1267 ._fint2: (8, 0)\n    test 1268 ._fprs: 8.0\n    test 1269 ._fprs2: (8.0, 0)\n    test 1270 ._n: 9\n    test 1271 ._ps: [8.0]\n    test 1272 len3: 16\n    test 1273 FSum+: 16.0\n    test 1274 FSum-: 8.0\n    test 1275 FSum-: 0.0\n    test 1276 FSum*: 16.0\n    test 1277 copy(<class 'type'>): (<class 'pygeodesy.fsums.Fsum'>, True)\n    test 1278 ._fint2: (16, 0)\n    test 1279 ._fprs: 16.0\n    test 1280 ._fprs2: (16.0, 0)\n    test 1281 ._n: 17\n    test 1282 ._ps: [16.0]\n    test 1283 Fsum.copy(): (<class 'pygeodesy.fsums.Fsum'>, True)\n    test 1284 ._fint2: (16, 0)\n    test 1285 ._fprs: 16.0\n    test 1286 ._fprs2: (16.0, 0)\n    test 1287 ._n: 17\n    test 1288 ._ps: [16.0]\n    test 1289 len4: 32\n    test 1290 FSum+: 32.0\n    test 1291 FSum-: 16.0\n    test 1292 FSum-: 0.0\n    test 1293 FSum*: 32.0\n    test 1294 copy(<class 'type'>): (<class 'pygeodesy.fsums.Fsum'>, True)\n    test 1295 ._fint2: (32, 0)\n    test 1296 ._fprs: 32.0\n    test 1297 ._fprs2: (32.0, 0)\n    test 1298 ._n: 33\n    test 1299 ._ps: [32.0]\n    test 1300 Fsum.copy(): (<class 'pygeodesy.fsums.Fsum'>, True)\n    test 1301 ._fint2: (32, 0)\n    test 1302 ._fprs: 32.0\n    test 1303 ._fprs2: (32.0, 0)\n    test 1304 ._n: 33\n    test 1305 ._ps: [32.0]\n    test 1306 len5: 64\n    test 1307 FSum+: 64.0\n    test 1308 FSum-: 32.0\n    test 1309 FSum-: 0.0\n    test 1310 FSum*: 64.0\n    test 1311 copy(<class 'type'>): (<class 'pygeodesy.fsums.Fsum'>, True)\n    test 1312 ._fint2: (64, 0)\n    test 1313 ._fprs: 64.0\n    test 1314 ._fprs2: (64.0, 0)\n    test 1315 ._n: 65\n    test 1316 ._ps: [64.0]\n    test 1317 Fsum.copy(): (<class 'pygeodesy.fsums.Fsum'>, True)\n    test 1318 ._fint2: (64, 0)\n    test 1319 ._fprs: 64.0\n    test 1320 ._fprs2: (64.0, 0)\n    test 1321 ._n: 65\n    test 1322 ._ps: [64.0]\n    test 1323 len6: 128\n    test 1324 FSum+: 128.0\n    test 1325 FSum-: 64.0\n    test 1326 FSum-: 0.0\n    test 1327 FSum*: 128.0\n    test 1328 copy(<class 'type'>): (<class 'pygeodesy.fsums.Fsum'>, True)\n    test 1329 ._fint2: (128, 0)\n    test 1330 ._fprs: 128.0\n    test 1331 ._fprs2: (128.0, 0)\n    test 1332 ._n: 129\n    test 1333 ._ps: [128.0]\n    test 1334 Fsum.copy(): (<class 'pygeodesy.fsums.Fsum'>, True)\n    test 1335 ._fint2: (128, 0)\n    test 1336 ._fprs: 128.0\n    test 1337 ._fprs2: (128.0, 0)\n    test 1338 ._n: 129\n    test 1339 ._ps: [128.0]\n    test 1340 len7: 256\n    test 1341 FSum+: 256.0\n    test 1342 FSum-: 128.0\n    test 1343 FSum-: 0.0\n    test 1344 FSum*: 256.0\n    test 1345 copy(<class 'type'>): (<class 'pygeodesy.fsums.Fsum'>, True)\n    test 1346 ._fint2: (256, 0)\n    test 1347 ._fprs: 256.0\n    test 1348 ._fprs2: (256.0, 0)\n    test 1349 ._n: 257\n    test 1350 ._ps: [256.0]\n    test 1351 Fsum.copy(): (<class 'pygeodesy.fsums.Fsum'>, True)\n    test 1352 ._fint2: (256, 0)\n    test 1353 ._fprs: 256.0\n    test 1354 ._fprs2: (256.0, 0)\n    test 1355 ._n: 257\n    test 1356 ._ps: [256.0]\n    test 1357 len8: 512\n    test 1358 FSum+: 512.0\n    test 1359 FSum-: 256.0\n    test 1360 FSum-: 0.0\n    test 1361 FSum*: 512.0\n    test 1362 copy(<class 'type'>): (<class 'pygeodesy.fsums.Fsum'>, True)\n    test 1363 ._fint2: (512, 0)\n    test 1364 ._fprs: 512.0\n    test 1365 ._fprs2: (512.0, 0)\n    test 1366 ._n: 513\n    test 1367 ._ps: [512.0]\n    test 1368 Fsum.copy(): (<class 'pygeodesy.fsums.Fsum'>, True)\n    test 1369 ._fint2: (512, 0)\n    test 1370 ._fprs: 512.0\n    test 1371 ._fprs2: (512.0, 0)\n    test 1372 ._n: 513\n    test 1373 ._ps: [512.0]\n    test 1374 len: 513\n    test 1375 partials: (512.0,)\n\n    test 1376 FSum0: 0.0\n    test 1377 FSum0: 0.0\n    test 1378 FSum0: 0.0\n    test 1379 FSum0: 0.0\n    test 1380 FSum0: 0.0\n    test 1381 sizeof: None  FAILED, KNOWN, expected 413\n    test 1382 FSum0: 0.0\n    test 1383 Fsum#: 514\n    test 1384 Fsum#: 1\n    test 1385 FSum.: Fsum[514] (0.0, 0)\n    test 1386 FsumI: 0.0\n    test 1387 FsumR: 0.0\n    test 1388 radd: 514.0\n    test 1389 rdiv: 3.91e-03\n    test 1390 rmul: 1024.0\n    test 1391 rpow: 1.0\n    test 1392 rsub: -510.0\n    test 1393 _2sum: OverflowError('_2sum(1.0e+308, inf): not finite (inf)')\n    test 1394 F(\"nan\"): TypeError('0.0 + nan: invalid')\n    test 1395 F(None): TypeError('0.0 + None: invalid')\n\n    test 1396 ints: 1\n    test 1397 ints: 1\n    test 1398 fsum : -3.58905099e+19  FAILED, KNOWN, expected 1.0\n    test 1399 fsum_: -3.58905099e+19  FAILED, KNOWN, expected 1.0\n    test 1400 Fsum : -3.58905099e+19  FAILED, KNOWN, expected 1.0\n    test 1401 sum  : -3.68934881e+19  FAILED, KNOWN, expected 1.0\n    test 1402 F * 2: 4.0000\n    test 1403 F / 2: 2.0000\n    test 1404 F / F: True\n    test 1405 F / F: 1.0\n    test 1406 F / F: 2.0\n    test 1407 abs  : Fsum[4] __abs__(2.0, 0)  FAILED, KNOWN, expected Fsum[4] (2.0, 0)\n    test 1408 int  : 2\n    test 1409 eq F: True\n    test 1410 ge F: True\n    test 1411 gt F: False\n    test 1412 le F: True\n    test 1413 lt F: False\n    test 1414 ne F: False\n    test 1415 if F: True\n    test 1416 gt 0: True\n    test 1417 lt 0: False\n    test 1418 eq 0: False\n    test 1419 lt 0: True\n    test 1420 gt 0: True\n    test 1421 gt 0: False\n    test 1422 signOf: 1\n    test 1423 signOf: -1\n    test 1424 ceil : 3\n    test 1425 floor: 2\n\n    test 1426 divmod : (2, <Fsum[2] __divmod__(0.0, 0) at 0xb3f50c560>)\n    test 1427 divmod : (2, <Fsum[2] __divmod__(0.0, 0) at 0xb3f50c598>)\n    test 1428 rdivmod : (0, <Fsum[1] __rdivmod__(2, 0) at 0xb3f50c5d0>)\n    test 1429 divmod : (-2, <Fsum[2] __divmod__(1.0, 0) at 0xb3f50c608>)\n    test 1430 imod: Fsum[2] __imod__(0.0, 0)\n    test 1431 mod : Fsum[2] __mod__(0.0, 0)\n    test 1432 rmod: Fsum[1] __rmod__(2, 0)\n    test 1433 neg : Fsum[1] __neg__(-2, 0)\n    test 1434 pos : Fsum[4] (2.0, 0)\n    test 1435 is_int: True\n    test 1436 float: 9e-102\n    test 1437 is_int: False\n    test 1438 round1: 0.0\n    test 1439 fset_: Fsum[4] (9.0e-102, 5.9483e-118)\n\n    test 1440 F //: Fsum[1] __floordiv__(-1, 0)\n    test 1441 // F: Fsum[1] __rfloordiv__(-2, 0)\n    test 1442 F //=: Fsum[1] m(-2, 0)\n# imported pygeodesy.basics into errors.py line 531\n    test 1443 F / 0: ZeroDivisionError('Fsum[2] __truediv__(9.0e-102, 5.9483e-118) / 0: float division by zero')\n    test 1444 pow(F, +): Fsum[1] __pow__(6.36662e-213, 0)\n    test 1445 pow(F, -): Fsum[1] __pow__(1.11111e+101, 0)\n    test 1446 pow(-F, F): ValueError('-2 ** 9e-102: complex (1+2.82743338823e-101j) from 2-arg pow(-2, 9.0e-102)')\n    test 1447 pow(F, F): Fsum[1] __pow__(1.0, 0)\n    test 1448 pow(F, f, i): TypeError(\"Fsum[2] __pow__(9.0e-102, 5.9483e-118) ** 2.1: mod (2), unsupported operand type(s) for pow(): 'int', 'float', 'int'\")\n    test 1449 pow(F, F, i): TypeError(\"-2 ** Fsum[1] (2.1, 0): mod (2), unsupported operand type(s) for pow(): 'int', 'float', 'int'\")\n    test 1450 pow(F, i, None): Fsum[1] __pow__(4, 0)\n    test 1451 Z**-2: ZeroDivisionError('0.0 ** -2: 0.0 cannot be raised to a negative power')\n    test 1452 pow(0): 1.000\n    test 1453 pow(1): -3.000\n    test 1454 pow(2): 9.000\n    test 1455 pow(21): -10460353203.000\n    test 1456 pow(-5): -0.004\n    test 1457 **= 2: 9.000\n    test 1458 F0**0: Fsum[1] __pow__(1, 0)\n    test 1459 F0**0.: Fsum[1] __pow__(1.0, 0)\n    test 1460 0**F0: Fsum[1] __rpow__(1.0, 0)\n    test 1461 0.**F0: Fsum[1] __rpow__(1.0, 0)\n    test 1462 F0**0: Fsum[1] pow(1, 0)\n    test 1463 F0**2: Fsum[1] pow(0.0, 0)\n    test 1464 F0**0.: Fsum[1] pow(1.0, 0)\n    test 1465 F0**3.: Fsum[1] pow(0.0, 0)\n    test 1466 F0**0.: Fsum[1] pow(1, 0)\n    test 1467 2**F0: Fsum[1] __rpow__(1.0, 0)\n    test 1468 2.**F0: Fsum[1] __rpow__(1.0, 0)\n    test 1469 F2**0: Fsum[1] __pow__(1, 0)\n    test 1470 F2.**0: Fsum[1] __pow__(1, 0)\n    test 1471 F2**F2: Fsum[1] __pow__(4, 0)\n    test 1472 F2**F2: Fsum[1] __rpow__(4, 0)\n    test 1473 F**2: 3125.000\n    test 1474 F**-1: 0.200\n    test 1475 F**-2: 0.040\n    test 1476 F**-2.5: 0.018\n    test 1477 F** 2.5: 55.902\n    test 1478 pow(2): 25.000\n    test 1479 pow(2.5): 55.902\n    test 1480 pow(F): 3125.000\n    test 1481 3pow(2, None): Fsum[1] pow(25, 0)\n    test 1482 3pow(2.5, None): Fsum[1] pow(55.902, 0)\n    test 1483 3pow(2, 20): Fsum[1] pow(5, 0)\n\n    test 1484 fsum(): 5.0\n    test 1485 fsum(): True\n    test 1486 fsum2(): (5.0, 0)\n    test 1487 fsum2(): True\n    test 1488 fsum2(): Fsum2Tuple(fsum=5.0, residual=0)\n    test 1489 Fsum2Tuple: ('fsum', 5.0, <class 'pygeodesy.unitsBase.Float'>)\n    test 1490 Fsum2Tuple: ('residual', 0, <class 'pygeodesy.unitsBase.Int'>)\n    test 1491 fmul(x): 25.0\n    test 1492 fmul(F): 62.5\n    test 1493 fadd(F): 65.0\n    test 1494 fsub(F): 62.5\n    test 1495 Fsum(F): 125.0\n\n    test 1496 ratio: (-27021597764141911, 9007199254740992)\n    test 1497 ratio: Fsum[1] (-3, 0)  FAILED, KNOWN, expected Fsum[4] (-3, 8.80732e-17)\n    test 1498 int_float: -3.000\n    test 1499 fint: Fsum[1] fint(-2, 0)\n    test 1500 fint2: (-2, -1)\n    test 1501 f2mul_: Fsum[15] f2mul_(12.0, -3.52293e-16)  FAILED, KNOWN, expected (12.0, ...\n    test 1502 f2mul_: Fsum[1] f2mul_(-inf, 0)  FAILED, KNOWN, expected NINF\n    test 1503 f2mul_: Fsum[1] f2mul_(nan, 0)  FAILED, KNOWN, expected NAN\n    test 1504 += NAN: Fsum[5] (nan, 0.0)  FAILED, KNOWN, expected nan\n    test 1505 -= NAN: Fsum[5] (nan, 0.0)  FAILED, KNOWN, expected nan\n    test 1506 pow3: Fsum[1] __pow__(3, 0)\n\n    test 1507 is_math_fsum: True\n\n    test 1508 RESIDUAL: 0.0\n    test 1509 RESIDUAL: 0.0\n    test 1510 RESIDUAL: 1e-32\n    test 1511 RESIDUAL: 9.0\n    test 1512 RESIDUAL: sorted\n\n    test 1513 ResidualError: 1 / Fsum[2] sorted(1.0e+17, 1.0): non-zero residual (1.0), ratio (1.0e-17) exceeds RESIDUAL (-1e-18) threshold\n\n    test 1514 recursive: 8.0\n    test 1515 recursive: 16.0\n\n    test 1516 +=F2T: 17.0\n    test 1517 -=F2T: 16.0\n    test 1518 *=F2T: 16.000000000000004\n    test 1519 /=F2T: 16.0\n    test 1520 **F2T: 16.0\n    test 1521 %=F2T: 16.0\n\n    test 1522 abs(T): Fsum[2] __abs__(1.0, 0)\n    test 1523 bool(T): True\n    test 1524 float(T): 1.0000000000000002\n    test 1525 T.Fsum_: Fsum[2] (2.0, 0)\n    test 1526 int(T): 1\n    test 1527 -T: Fsum[1] __neg__(-1, 0)\n    test 1528 +T: Fsum[2] (1.0, 0)\n    test 1529 as_i_: (4503599627370497, 4503599627370496)\n    test 1530 is_x?: True\n    test 1531 is_i?: False\n\n    test 1532 F==T: False\n    test 1533 F>=T: True\n    test 1534 F> T: True\n    test 1535 F<=T: False\n    test 1536 F< T: False\n    test 1537 F!=T: True\n\n    test 1538 T._fint2: (1, 2.220446049250313e-16)\n    test 1539 T._fprs2: (1.0, 0)\n    test 1540 T._n: 2\n    test 1541 T._ps: [1.0000000000000002]\n    test 1542 T._ps_neg: [-1.0000000000000002]\n    test 1543 T.signOf: 1\n\n    test 1544 f2product: (False, None)\n    test 1545 nonfinite*: (True, None)\n    test 1546 Nones: (None, None)\n\n    test 1547 fma_: Fsum[1] (69.0, 0)\n\n    188 of 1547 testFsums.py tests (12.2%) FAILED, ALL KNOWN (pygeodesy 26.3.26 PyPy 7.3.17 Python 3.10.14 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 213.937 ms\nrunning /opt/local/bin/p....y3.10 -W default ~/PyGeodesy/test/testGars.py\n# lazily imported pygeodesy.basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.DeprecationWarnings from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isint from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isLazy from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.issubclassof from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.iterNumpy2over from .iters by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.LazyImportError from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.karney by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.NN from .interns by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.normDMS from .dms by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.pairs from .streprs by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.printf from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.property_RO from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.typename from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.degDMS from .dms by testGars.py line 11\n# lazily imported pygeodesy.fstr from .streprs by testGars.py line 11\n# lazily imported pygeodesy.gars by testGars.py line 11\n# lazily imported pygeodesy.Garef from .gars by testGars.py line 11\n# lazily imported pygeodesy.S_MIN from .dms by testGars.py line 11\n# lazily imported pygeodesy.ellipsoidalVincenty by testGars.py line 56\n\n    testing testGars.py 23.03.27 (module pygeodesy.gars 25.05.07) isLazy=3\n    test 1 Garef: 381NH45\n    test 2 Garef: 381NH45\n    test 3 Garef: Garef('381NH45')\n    test 4 Garef: '381NH45'\n    test 5 Garef: '381NH45'  FAILED, KNOWN, expected Garef('381NH45')\n    test 6 Garef.precision: 2\n    test 7 copy(<class 'type'>): (<class 'pygeodesy.gars.Garef'>, True)\n    test 8 Garef.copy(): (<class 'pygeodesy.gars.Garef'>, True)\n    test 9 Garef.latlon: 57.64911, 10.40744\n    test 10 Garef.toLatLon: LatLon(57°38′56.8″N, 010°24′26.78″E)\n    test 11 codec3: 381NH45\n    test 12 decode3: 57.625, 10.375, 2.0\n    test 13 encode: 381NH45\n    test 14 Garef(LatLon): 381NH45\n    test 15 copy(<class 'type'>): (<class 'pygeodesy.gars.Garef'>, True)\n    test 16 Garef.copy(): (<class 'pygeodesy.gars.Garef'>, True)\n    test 17 precision: -1  FAILED, KNOWN, expected 0\n    test 18 resolution: 30′\n    test 19 precision: 0\n    test 20 resolution: 30′\n    test 21 precision: 1\n    test 22 resolution: 15′\n    test 23 precision: 2\n    test 24 resolution: 5′\n    test 25 precision: 3  FAILED, KNOWN, expected 2\n    test 26 resolution: 5′\n\n    3 of 26 testGars.py tests (11.5%) FAILED, ALL KNOWN (pygeodesy 26.3.26 PyPy 7.3.17 Python 3.10.14 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 1.275 ms\nrunning /opt/local/bin/p....y3.10 -W default ~/PyGeodesy/test/testGeodesici.py\n# lazily imported pygeodesy.basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.DeprecationWarnings from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isint from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isLazy from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.issubclassof from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.iterNumpy2over from .iters by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.LazyImportError from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.karney by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.NN from .interns by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.normDMS from .dms by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.pairs from .streprs by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.printf from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.property_RO from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.typename from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.euclid from .fmath by testGeodesici.py line 11\n# lazily imported pygeodesy.geodesici by testGeodesici.py line 11\n# lazily imported pygeodesy.Intersectool from .geodesici by testGeodesici.py line 11\n# lazily imported pygeodesy.Intersector from .geodesici by testGeodesici.py line 11\n# lazily imported pygeodesy.LatLon_ from .points by testGeodesici.py line 11\n# lazily imported pygeodesy.GeodesicExact from .geodesicx by testGeodesici.py line 135\n\n    testing testGeodesici.py 25.05.09 (module pygeodesy.geodesici 26.02.04) isLazy=3\n\n    testGeodesicExact(pygeodesy.geodesici, 26.02.04)\n# lazily imported pygeodesy.geodsolve by ellipsoids.py line 1057\n# lazily imported pygeodesy.geodesicw by ellipsoids.py line 1059\n# lazily imported pygeodesy.elliptic by gxline.py line 289\n# imported pygeodesy.basics into errors.py line 443\n    test 1 Intersector: name='', geodesic=GeodesicExact(name='', caps=0, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), C4order=30)\n\n    test 2 Closest.1.sA: 4.2253e+06\n    test 3 Closest.1.sB: 2.70933e+06\n    test 4 Closest.1.c: 0\n    test 5 Closest.1.sX0: 6.93463e+06\n\n    test 6 Closest5.1.A: {a1X: 38.075573, azi1: 45.0, aziX: 51.790249, lat1: 0.0, latX: 25.92918, lon1: 0.0, lonX: 28.89426, m12: 3921213.171755, M12: 0.787198, M21: 0.787384, s1X: 4225301.108897}\n    test 7 Closest5.1.B: {a1X: 24.392077, azi1: 135.0, aziX: 146.182975, lat1: 45.0, latX: 25.92918, lon1: 10.0, lonX: 28.89426, m12: 2628412.372503, M12: 0.911005, M21: 0.910881, s1X: 2709328.885611}\n    test 8 Closest5.1.sAB: 1.58914e-09\n    test 9 Closest5.1.aAB: 1.43144e-14\n    test 10 Closest5.1.c: 0\n\n    test 11 Closest.2.sA: 6.05805e+06\n    test 12 Closest.2.sB: -3.31125e+06\n    test 13 Closest.2.c: 0\n    test 14 Closest.2.sX0: 9.3693e+06\n\n    test 15 Closest5.2.A: {a1X: 54.562637, azi1: -147.7, aziX: -159.869978, lat1: 50.0, latX: 0.0, lon1: -4.0, lonX: -29.745492, m12: 5184118.430287, M12: 0.58097, M21: 0.579813, s1X: 6058048.653081}\n    test 16 Closest5.2.B: {a1X: -29.845558, azi1: 90.0, aziX: 90.0, lat1: 0.0, latX: -0.0, lon1: 0.0, lonX: -29.745492, m12: -3163525.514556, M12: 0.86737, M21: 0.86737, s1X: -3311252.995823}\n    test 17 Closest5.2.sAB: 3.95486e-10\n    test 18 Closest5.2.aAB: 3.56467e-15\n    test 19 Closest5.2.c: 0\n\n    test 20 All[0].sA: -494582\n    test 21 All[0].sB: 1.40522e+07\n    test 22 All[0].c: 0\n    test 23 All[0].sX0: 1.45468e+07\n    test 24 All[0].iteration: 4\n\n    test 25 All[1].sA: 1.95291e+07\n    test 26 All[1].sB: -5.93234e+06\n    test 27 All[1].c: 0\n    test 28 All[1].sX0: 2.54615e+07\n    test 29 All[1].iteration: 4\n\n    test 30 All[2].sA: -494582\n    test 31 All[2].sB: -2.59556e+07\n    test 32 All[2].c: 0\n    test 33 All[2].sX0: 2.64502e+07\n    test 34 All[2].iteration: 4\n\n    test 35 All[3].sA: -2.05181e+07\n    test 36 All[3].sB: -5.97086e+06\n    test 37 All[3].c: 0\n    test 38 All[3].sX0: 2.64889e+07\n    test 39 All[3].iteration: 4\n\n    test 40 All5[0].A: {a1X: -4.448619, azi1: -147.7, aziX: -144.55245, lat1: 50.0, latX: 53.692598, lon1: -4.0, lonX: 0.0, m12: -494087.771694, M12: 0.996999, M21: 0.997, s1X: -494582.492241}\n    test 41 All5[0].B: {a1X: 126.399265, azi1: 0.0, aziX: 180.0, lat1: 0.0, latX: 53.692598, lon1: 180.0, lonX: 0.0, m12: 5161737.753947, M12: -0.593409, M21: -0.586165, s1X: 14052229.965229}\n    test 42 All5[0].sAB: 1.07542e-09\n    test 43 All5[0].aAB: 9.67209e-15\n    test 44 All5[0].c: 0\n    test 45 All5[0].iteration: 4\n\n    test 46 All5[1].A: {a1X: 175.764866, azi1: -147.7, aziX: -35.280487, lat1: 50.0, latX: -53.518675, lon1: -4.0, lonX: 180.0, m12: 488198.978244, M12: -1.001203, M21: -0.992673, s1X: 19529110.042937}\n    test 47 All5[1].B: {a1X: -53.426639, azi1: 0.0, aziX: 0.0, lat1: 0.0, latX: -53.518675, lon1: 180.0, lonX: 180.0, m12: -5110370.613686, M12: 0.595852, M21: 0.597076, s1X: -5932344.259165}\n    test 48 All5[1].sAB: 2.83833e-09\n    test 49 All5[1].aAB: 2.55275e-14\n    test 50 All5[1].c: 0\n    test 51 All5[1].iteration: 4\n\n    test 52 All5[2].A: {a1X: -4.448619, azi1: -147.7, aziX: -144.55245, lat1: 50.0, latX: 53.692598, lon1: -4.0, lonX: -0.0, m12: -494087.771694, M12: 0.996999, M21: 0.997, s1X: -494582.492241}\n    test 53 All5[2].B: {a1X: -233.600735, azi1: 0.0, aziX: 180.0, lat1: 0.0, latX: 53.692598, lon1: 180.0, lonX: 0.0, m12: 5082071.927222, M12: -0.593409, M21: -0.603127, s1X: -25955632.952022}\n    test 54 All5[2].sAB: 1.78008e-09\n    test 55 All5[2].aAB: 1.60097e-14\n    test 56 All5[2].c: 0\n    test 57 All5[2].iteration: 4\n\n    test 58 All5[3].A: {a1X: -184.660358, azi1: -147.7, aziX: -35.614985, lat1: 50.0, latX: -53.864737, lon1: -4.0, lonX: -180.0, m12: 499994.868419, M12: -0.992833, M21: -1.001337, s1X: -20518081.166643}\n    test 59 All5[3].B: {a1X: -53.773048, azi1: 0.0, aziX: 0.0, lat1: 0.0, latX: -53.864737, lon1: 180.0, lonX: 180.0, m12: -5133274.754826, M12: 0.590985, M21: 0.592236, s1X: -5970860.779079}\n    test 60 All5[3].sAB: 1.86981e-09\n    test 61 All5[3].aAB: 1.68165e-14\n    test 62 All5[3].c: 0\n    test 63 All5[3].iteration: 4\n\n    test 64 Middle.sA: 782555\n    test 65 Middle.sB: 5.53684e+06\n    test 66 Middle.c: 0\n    test 67 Middle.sX0: 0\n\n    test 68 Middle5.A: {a12: 14.106434, a1M: 7.053396, azi1: 44.75191, azi2: 45.629037, aziM: 44.969535, lat1: 0.0, lat2: 10.0, latM: 5.019509, lon1: 0.0, lon2: 10.0, lonM: 4.961883, m12: 780579.492953, M12: 0.992432, M21: 0.992432, s12: 1565109.099218, s1M: 782554.549609}\n    test 69 Middle5.B: {a12: 99.810444, a1M: 49.869061, azi1: 180.0, azi2: 180.0, aziM: 180.0, lat1: 50.0, lat2: -50.0, latM: 0.036282, lon1: -4.0, lon2: -4.0, lonM: -4.0, m12: 4864571.105922, M12: 0.645508, M21: 0.644537, s12: 11073670.322999, s1M: 5536835.161499}\n    test 70 Middle5.sMM: 1.13857e+06\n    test 71 Middle5.aMM: 10.2623\n    test 72 Middle5.c: 0\n\n    test 73 Segment.sA: -631414\n    test 74 Segment.sB: 5.98889e+06\n    test 75 Segment.c: 0\n    test 76 Segment.sX0: 1.86602e+06\n    test 77 Segment.kA: -1\n    test 78 Segment.kB: 0\n    test 79 Segment.k: -3\n\n    test 80 Segment5.A: {a1X: -5.691141, azi1: 44.75191, azi2: 45.629037, aziX: 44.893464, k2: -1, lat1: 0.0, lat2: 10.0, latX: -4.051871, lon1: 0.0, lon2: 10.0, lonX: -4.0, m12: -630376.505305, M12: 0.995071, M21: 0.995071, s1X: -631414.26877}\n    test 81 Segment5.B: {a1X: 53.943553, azi1: 180.0, azi2: 180.0, aziX: 180.0, k2: 0, lat1: 50.0, lat2: -50.0, latX: -4.051871, lon1: -4.0, lon2: -4.0, lonX: -4.0, m12: 5143394.782542, M12: 0.589657, M21: 0.588535, s1X: 5988887.278435}\n    test 82 Segment5.sAB: 1.08696e-09\n    test 83 Segment5.aAB: 9.79705e-15\n    test 84 Segment5.c: 0\n\n    test 85 intersect7s[0].A: 04.051871°S, 004.0°W\n    test 86 intersect7s[0].B: 04.051871°S, 004.0°W\n    test 87 intersect7s[0].sAB: 1.4124e-09\n    test 88 intersect7s[0].aAB: 1.27222e-14\n    test 89 intersect7s[0].c: 0\n    test 90 intersect7s[0].kA: 0\n    test 91 intersect7s[0].kB: 0\n    test 92 intersect7s[0].iteration: None\n\n    test 93 intersect7s[1].A: 03.623464°N, 176.0°E\n    test 94 intersect7s[1].B: 03.623464°N, 176.0°E\n    test 95 intersect7s[1].sAB: 3.17791e-09\n    test 96 intersect7s[1].aAB: 2.8625e-14\n    test 97 intersect7s[1].c: 0\n    test 98 intersect7s[1].kA: 0\n    test 99 intersect7s[1].kB: 0\n    test 100 intersect7s[1].iteration: None\n\n    test 101 intersect7s[2].A: 04.051871°S, 004.0°W\n    test 102 intersect7s[2].B: 04.051871°S, 004.0°W\n    test 103 intersect7s[2].sAB: 7.85649e-10\n    test 104 intersect7s[2].aAB: 7.08123e-15\n    test 105 intersect7s[2].c: 0\n    test 106 intersect7s[2].kA: 0\n    test 107 intersect7s[2].kB: 0\n    test 108 intersect7s[2].iteration: None\n\n    test 109 intersect7s[3].A: 04.4796°N, 176.0°E\n    test 110 intersect7s[3].B: 04.4796°N, 176.0°E\n    test 111 intersect7s[3].sAB: 2.47171e-09\n    test 112 intersect7s[3].aAB: 2.22639e-14\n    test 113 intersect7s[3].c: 0\n    test 114 intersect7s[3].kA: 0\n    test 115 intersect7s[3].kB: 0\n    test 116 intersect7s[3].iteration: None\n\n    test 117 Sphere.Closest.sA: 6.07719e+06\n    test 118 Sphere.Closest.sB: -3.31802e+06\n    test 119 Sphere.Closest.c: 0\n    test 120 Sphere.Closest.sX0: 9.39521e+06\n\n    test 121 Sphere.Closest5.A: {a1X: 54.653489, azi1: -147.7, aziX: -159.911264, lat1: 50.0, latX: -0.0, lon1: -4.0, lonX: -29.839663, m12: 5196622.322619, M12: 0.57852, M21: 0.57852, s1X: 6077190.710199}\n    test 122 Sphere.Closest5.B: {a1X: -29.839663, azi1: 90.0, aziX: 90.0, lat1: 0.0, latX: -0.0, lon1: 0.0, lonX: -29.839663, m12: -3170047.454389, M12: 0.867421, M21: 0.867421, s1X: -3318019.115902}\n    test 123 Sphere.Closest5.sAB: 2.06452e-09\n    test 124 Sphere.Closest5.aAB: 1.85667e-14\n    test 125 Sphere.Closest5.c: 0\n\n    test 126 _Xdict2: 124\n\n    testGeodesic(pygeodesy.geodesici, 26.02.04)\n    test 127 Intersector: name='', geodesic=<pygeodesy.geodesicw._gWrapped.Geodesic.<locals>.Geodesic object at 0x000000092f4abf30>\n\n    test 128 Closest.1.sA: 4.2253e+06\n    test 129 Closest.1.sB: 2.70933e+06\n    test 130 Closest.1.c: 0\n    test 131 Closest.1.sX0: 6.93463e+06\n\n    test 132 Closest5.1.A: {a1X: 38.075573, azi1: 45.0, aziX: 51.790249, lat1: 0.0, latX: 25.92918, lon1: 0.0, lonX: 28.89426, s1X: 4225301.108897}  FAILED, KNOWN, expected {a1X: 38.075573, azi1: 45.0, aziX: 51.790249, lat1: 0.0, latX: 25.92918, lon1: 0.0, lonX: 28.89426, m12: 3921213.171755, M12: 0.787198, M21: 0.787384, s1X: 4225301.108897}\n    test 133 Closest5.1.B: {a1X: 24.392077, azi1: 135.0, aziX: 146.182975, lat1: 45.0, latX: 25.92918, lon1: 10.0, lonX: 28.89426, s1X: 2709328.885611}  FAILED, KNOWN, expected {a1X: 24.392077, azi1: 135.0, aziX: 146.182975, lat1: 45.0, latX: 25.92918, lon1: 10.0, lonX: 28.89426, m12: 2628412.372503, M12: 0.911005, M21: 0.910881, s1X: 2709328.885611}\n    test 134 Closest5.1.sAB: 7.11805e-10  FAILED, KNOWN (8.77338e-10), expected 1.58914e-09\n    test 135 Closest5.1.aAB: 6.41166e-15  FAILED, KNOWN (7.90271e-15), expected 1.43144e-14\n    test 136 Closest5.1.c: 0\n\n    test 137 Closest.2.sA: 6.05805e+06\n    test 138 Closest.2.sB: -3.31125e+06\n    test 139 Closest.2.c: 0\n    test 140 Closest.2.sX0: 9.3693e+06\n\n    test 141 Closest5.2.A: {a1X: 54.562637, azi1: -147.7, aziX: -159.869978, lat1: 50.0, latX: -0.0, lon1: -4.0, lonX: -29.745492, s1X: 6058048.653081}  FAILED, KNOWN, expected {a1X: 54.562637, azi1: -147.7, aziX: -159.869978, lat1: 50.0, latX: 0.0, lon1: -4.0, lonX: -29.745492, m12: 5184118.430287, M12: 0.58097, M21: 0.579813, s1X: 6058048.653081}\n    test 142 Closest5.2.B: {a1X: -29.845558, azi1: 90.0, aziX: 90.0, lat1: 0.0, latX: -0.0, lon1: 0.0, lonX: -29.745492, s1X: -3311252.995823}  FAILED, KNOWN, expected {a1X: -29.845558, azi1: 90.0, aziX: 90.0, lat1: 0.0, latX: -0.0, lon1: 0.0, lonX: -29.745492, m12: -3163525.514556, M12: 0.86737, M21: 0.86737, s1X: -3311252.995823}\n    test 143 Closest5.2.sAB: 1.27e-09  FAILED, KNOWN (8.7451e-10), expected 3.95486e-10\n    test 144 Closest5.2.aAB: 1.14469e-14  FAILED, KNOWN (7.88228e-15), expected 3.56467e-15\n    test 145 Closest5.2.c: 0\n\n    test 146 All[0].sA: -494582\n    test 147 All[0].sB: 1.40522e+07\n    test 148 All[0].c: 0\n    test 149 All[0].sX0: 1.45468e+07\n    test 150 All[0].iteration: 4\n\n    test 151 All[1].sA: 1.95291e+07\n    test 152 All[1].sB: -5.93234e+06\n    test 153 All[1].c: 0\n    test 154 All[1].sX0: 2.54615e+07\n    test 155 All[1].iteration: 4\n\n    test 156 All[2].sA: -494582\n    test 157 All[2].sB: -2.59556e+07\n    test 158 All[2].c: 0\n    test 159 All[2].sX0: 2.64502e+07\n    test 160 All[2].iteration: 4\n\n    test 161 All[3].sA: -2.05181e+07\n    test 162 All[3].sB: -5.97086e+06\n    test 163 All[3].c: 0\n    test 164 All[3].sX0: 2.64889e+07\n    test 165 All[3].iteration: 4\n\n    test 166 All5[0].A: {a1X: -4.448619, azi1: -147.7, aziX: -144.55245, lat1: 50.0, latX: 53.692598, lon1: -4.0, lonX: 0.0, s1X: -494582.492241}  FAILED, KNOWN, expected {a1X: -4.448619, azi1: -147.7, aziX: -144.55245, lat1: 50.0, latX: 53.692598, lon1: -4.0, lonX: 0.0, m12: -494087.771694, M12: 0.996999, M21: 0.997, s1X: -494582.492241}\n    test 167 All5[0].B: {a1X: 126.399265, azi1: 0.0, aziX: 180.0, lat1: 0.0, latX: 53.692598, lon1: 180.0, lonX: 0.0, s1X: 14052229.965229}  FAILED, KNOWN, expected {a1X: 126.399265, azi1: 0.0, aziX: 180.0, lat1: 0.0, latX: 53.692598, lon1: 180.0, lonX: 0.0, m12: 5161737.753947, M12: -0.593409, M21: -0.586165, s1X: 14052229.965229}\n    test 168 All5[0].sAB: 1.44466e-09  FAILED, KNOWN (3.69237e-10), expected 1.07542e-09\n    test 169 All5[0].aAB: 1.29929e-14  FAILED, KNOWN (3.32083e-15), expected 9.67209e-15\n    test 170 All5[0].c: 0\n    test 171 All5[0].iteration: 4\n\n    test 172 All5[1].A: {a1X: 175.764866, azi1: -147.7, aziX: -35.280487, lat1: 50.0, latX: -53.518675, lon1: -4.0, lonX: 180.0, s1X: 19529110.042937}  FAILED, KNOWN, expected {a1X: 175.764866, azi1: -147.7, aziX: -35.280487, lat1: 50.0, latX: -53.518675, lon1: -4.0, lonX: 180.0, m12: 488198.978244, M12: -1.001203, M21: -0.992673, s1X: 19529110.042937}\n    test 173 All5[1].B: {a1X: -53.426639, azi1: 0.0, aziX: 0.0, lat1: 0.0, latX: -53.518675, lon1: 180.0, lonX: 180.0, s1X: -5932344.259165}  FAILED, KNOWN, expected {a1X: -53.426639, azi1: 0.0, aziX: 0.0, lat1: 0.0, latX: -53.518675, lon1: 180.0, lonX: 180.0, m12: -5110370.613686, M12: 0.595852, M21: 0.597076, s1X: -5932344.259165}\n    test 174 All5[1].sAB: 3.39967e-09  FAILED, KNOWN (5.61341e-10), expected 2.83833e-09\n    test 175 All5[1].aAB: 3.05761e-14  FAILED, KNOWN (5.04862e-15), expected 2.55275e-14\n    test 176 All5[1].c: 0\n    test 177 All5[1].iteration: 4\n\n    test 178 All5[2].A: {a1X: -4.448619, azi1: -147.7, aziX: -144.55245, lat1: 50.0, latX: 53.692598, lon1: -4.0, lonX: 0.0, s1X: -494582.492241}  FAILED, KNOWN, expected {a1X: -4.448619, azi1: -147.7, aziX: -144.55245, lat1: 50.0, latX: 53.692598, lon1: -4.0, lonX: -0.0, m12: -494087.771694, M12: 0.996999, M21: 0.997, s1X: -494582.492241}\n    test 179 All5[2].B: {a1X: -233.600735, azi1: 0.0, aziX: 180.0, lat1: 0.0, latX: 53.692598, lon1: 180.0, lonX: 0.0, s1X: -25955632.952022}  FAILED, KNOWN, expected {a1X: -233.600735, azi1: 0.0, aziX: 180.0, lat1: 0.0, latX: 53.692598, lon1: 180.0, lonX: 0.0, m12: 5082071.927222, M12: -0.593409, M21: -0.603127, s1X: -25955632.952022}\n    test 180 All5[2].sAB: 1.79237e-09  FAILED, KNOWN (1.22855e-11), expected 1.78008e-09\n    test 181 All5[2].aAB: 1.61201e-14  FAILED, KNOWN (1.10493e-16), expected 1.60097e-14\n    test 182 All5[2].c: 0\n    test 183 All5[2].iteration: 4\n\n    test 184 All5[3].A: {a1X: -184.660358, azi1: -147.7, aziX: -35.614985, lat1: 50.0, latX: -53.864737, lon1: -4.0, lonX: 180.0, s1X: -20518081.166643}  FAILED, KNOWN, expected {a1X: -184.660358, azi1: -147.7, aziX: -35.614985, lat1: 50.0, latX: -53.864737, lon1: -4.0, lonX: -180.0, m12: 499994.868419, M12: -0.992833, M21: -1.001337, s1X: -20518081.166643}\n    test 185 All5[3].A.lonX: 179.99999999999997  FAILED, KNOWN (2), expected -179.99999999999997\n    test 186 All5[3].B: {a1X: -53.773048, azi1: 0.0, aziX: 0.0, lat1: 0.0, latX: -53.864737, lon1: 180.0, lonX: 180.0, s1X: -5970860.779079}  FAILED, KNOWN, expected {a1X: -53.773048, azi1: 0.0, aziX: 0.0, lat1: 0.0, latX: -53.864737, lon1: 180.0, lonX: 180.0, m12: -5133274.754826, M12: 0.590985, M21: 0.592236, s1X: -5970860.779079}\n    test 187 All5[3].sAB: 2.34461e-09  FAILED, KNOWN (4.74802e-10), expected 1.86981e-09\n    test 188 All5[3].aAB: 2.10867e-14  FAILED, KNOWN (4.27022e-15), expected 1.68165e-14\n    test 189 All5[3].c: 0\n    test 190 All5[3].iteration: 4\n\n    test 191 Middle.sA: 782555\n    test 192 Middle.sB: 5.54085e+06  FAILED, KNOWN (0.000724055), expected 5.53684e+06\n    test 193 Middle.c: 0\n    test 194 Middle.sX0: 0\n\n    test 195 Middle5.A: {a12: 14.106434, a1M: 7.053396, azi1: 44.75191, azi2: 45.629037, aziM: 44.969535, lat1: 0.0, lat2: 10.0, latM: 5.019509, lon1: 0.0, lon2: 10.0, lonM: 4.961883, s12: 1565109.099218, s1M: 782554.549609}  FAILED, KNOWN, expected {a12: 14.106434, a1M: 7.053396, azi1: 44.75191, azi2: 45.629037, aziM: 44.969535, lat1: 0.0, lat2: 10.0, latM: 5.019509, lon1: 0.0, lon2: 10.0, lonM: 4.961883, m12: 780579.492953, M12: 0.992432, M21: 0.992432, s12: 1565109.099218, s1M: 782554.549609}\n    test 196 Middle5.B: {a12: 99.810444, a1M: 49.905222, azi1: 180.0, azi2: 180.0, aziM: 180.0, lat1: 50.0, lat2: -50.0, latM: 0.0, lon1: -4.0, lon2: -4.0, lonM: -4.0, s12: 11081694.083368, s1M: 5540847.041684}  FAILED, KNOWN, expected {a12: 99.810444, a1M: 49.869061, azi1: 180.0, azi2: 180.0, aziM: 180.0, lat1: 50.0, lat2: -50.0, latM: 0.036282, lon1: -4.0, lon2: -4.0, lonM: -4.0, m12: 4864571.105922, M12: 0.645508, M21: 0.644537, s12: 11073670.322999, s1M: 5536835.161499}\n    test 197 Middle5.B.latM: 0.0  FAILED, KNOWN (0.0362822), expected 0.03628221979727372\n    test 198 Middle5.B.s1M: 5540847.04168415  FAILED, KNOWN (0.000724055), expected 5536835.161499482\n    test 199 Middle5.B.a1M: 49.905221888853184  FAILED, KNOWN (0.000724585), expected 49.869061316437026\n    test 200 Middle5.B.s12: 11081694.0833683  FAILED, KNOWN (0.000724055), expected 11073670.322998963\n    test 201 Middle5.sMM: 1.14053e+06  FAILED, KNOWN (0.0017142), expected 1.13857e+06\n    test 202 Middle5.aMM: 10.2799  FAILED, KNOWN (0.00171426), expected 10.2623\n    test 203 Middle5.c: 0\n\n    test 204 Segment.sA: -631414\n    test 205 Segment.sB: 5.98889e+06\n    test 206 Segment.c: 0\n    test 207 Segment.sX0: 1.86201e+06  FAILED, KNOWN (0.00214997), expected 1.86602e+06\n    test 208 Segment.kA: -1\n    test 209 Segment.kB: 0\n    test 210 Segment.k: -3\n\n    test 211 Segment5.A: {a1X: -5.691141, azi1: 44.75191, aziX: 44.893464, k2: -1, lat1: 0.0, latX: -4.051871, lon1: 0.0, lonX: -4.0, s1X: -631414.26877}  FAILED, KNOWN, expected {a1X: -5.691141, azi1: 44.75191, azi2: 45.629037, aziX: 44.893464, k2: -1, lat1: 0.0, lat2: 10.0, latX: -4.051871, lon1: 0.0, lon2: 10.0, lonX: -4.0, m12: -630376.505305, M12: 0.995071, M21: 0.995071, s1X: -631414.26877}\n    test 212 Segment5.B: {a1X: 53.943553, azi1: 180.0, aziX: 180.0, k2: 0, lat1: 50.0, latX: -4.051871, lon1: -4.0, lonX: -4.0, s1X: 5988887.278435}  FAILED, KNOWN, expected {a1X: 53.943553, azi1: 180.0, azi2: 180.0, aziX: 180.0, k2: 0, lat1: 50.0, lat2: -50.0, latX: -4.051871, lon1: -4.0, lon2: -4.0, lonX: -4.0, m12: 5143394.782542, M12: 0.589657, M21: 0.588535, s1X: 5988887.278435}\n    test 213 Segment5.sAB: 3.664e-10  FAILED, KNOWN (7.20564e-10), expected 1.08696e-09\n    test 214 Segment5.aAB: 3.30244e-15  FAILED, KNOWN (6.4946e-15), expected 9.79705e-15\n    test 215 Segment5.c: 0\n\n    test 216 intersect7s[0].A: 04.051871°S, 004.0°W\n    test 217 intersect7s[0].B: 04.051871°S, 004.0°W\n    test 218 intersect7s[0].sAB: 2.64649e-10  FAILED, KNOWN (1.14775e-09), expected 1.4124e-09\n    test 219 intersect7s[0].aAB: 2.38534e-15  FAILED, KNOWN (1.03369e-14), expected 1.27222e-14\n    test 220 intersect7s[0].c: 0\n    test 221 intersect7s[0].kA: 0\n    test 222 intersect7s[0].kB: 0\n    test 223 intersect7s[0].iteration: None\n\n    test 224 intersect7s[1].A: 03.623464°N, 176.0°E\n    test 225 intersect7s[1].B: 03.623464°N, 176.0°E\n    test 226 intersect7s[1].sAB: 3.39056e-09  FAILED, KNOWN (2.12649e-10), expected 3.17791e-09\n    test 227 intersect7s[1].aAB: 3.05599e-14  FAILED, KNOWN (1.93494e-15), expected 2.8625e-14\n    test 228 intersect7s[1].c: 0\n    test 229 intersect7s[1].kA: 0\n    test 230 intersect7s[1].kB: 0\n    test 231 intersect7s[1].iteration: None\n\n    test 232 intersect7s[2].A: 04.051871°S, 004.0°W\n    test 233 intersect7s[2].B: 04.051871°S, 004.0°W\n    test 234 intersect7s[2].sAB: 2.64667e-10  FAILED, KNOWN (5.20982e-10), expected 7.85649e-10\n    test 235 intersect7s[2].aAB: 2.38542e-15  FAILED, KNOWN (4.69581e-15), expected 7.08123e-15\n    test 236 intersect7s[2].c: 0\n    test 237 intersect7s[2].kA: 0\n    test 238 intersect7s[2].kB: 0\n    test 239 intersect7s[2].iteration: None\n\n    test 240 intersect7s[3].A: 04.4796°N, 176.0°E\n    test 241 intersect7s[3].B: 04.4796°N, 176.0°E\n    test 242 intersect7s[3].sAB: 3.49267e-09  FAILED, KNOWN (1.02096e-09), expected 2.47171e-09\n    test 243 intersect7s[3].aAB: 3.14801e-14  FAILED, KNOWN (9.2162e-15), expected 2.22639e-14\n    test 244 intersect7s[3].c: 0\n    test 245 intersect7s[3].kA: 0\n    test 246 intersect7s[3].kB: 0\n    test 247 intersect7s[3].iteration: None\n\n    test 248 Sphere.Closest.sA: 6.07719e+06\n    test 249 Sphere.Closest.sB: -3.31802e+06\n    test 250 Sphere.Closest.c: 0\n    test 251 Sphere.Closest.sX0: 9.39521e+06\n\n    test 252 Sphere.Closest5.A: {a1X: 54.653489, azi1: -147.7, aziX: -159.911264, lat1: 50.0, latX: -0.0, lon1: -4.0, lonX: -29.839663, s1X: 6077190.710199}  FAILED, KNOWN, expected {a1X: 54.653489, azi1: -147.7, aziX: -159.911264, lat1: 50.0, latX: -0.0, lon1: -4.0, lonX: -29.839663, m12: 5196622.322619, M12: 0.57852, M21: 0.57852, s1X: 6077190.710199}\n    test 253 Sphere.Closest5.B: {a1X: -29.839663, azi1: 90.0, aziX: 90.0, lat1: 0.0, latX: -0.0, lon1: 0.0, lonX: -29.839663, s1X: -3318019.115902}  FAILED, KNOWN, expected {a1X: -29.839663, azi1: 90.0, aziX: 90.0, lat1: 0.0, latX: -0.0, lon1: 0.0, lonX: -29.839663, m12: -3170047.454389, M12: 0.867421, M21: 0.867421, s1X: -3318019.115902}\n    test 254 Sphere.Closest5.sAB: 8.56921e-10  FAILED, KNOWN (1.2076e-09), expected 2.06452e-09\n    test 255 Sphere.Closest5.aAB: 7.70647e-15  FAILED, KNOWN (1.08602e-14), expected 1.85667e-14\n    test 256 Sphere.Closest5.c: 0\n\n    test 257 _Xdict2: 124\n\n    testGeodesicExact(pygeodesy.geodesici, 26.02.04)\n    test 258 Intersector: name='', geodesic=GeodesicExact(name='', caps=0, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), C4order=30)\n\n    test 259 Closest.1.sA: 4.2253e+06\n    test 260 Closest.1.sB: 2.70933e+06\n    test 261 Closest.1.c: 0\n    test 262 Closest.1.sX0: 6.93463e+06\n\n    test 263 Closest5.1.A: {a1X: 38.075573, azi1: 45.0, aziX: 51.790249, lat1: 0.0, latX: 25.92918, lon1: 0.0, lonX: 28.89426, m12: 3921213.171755, M12: 0.787198, M21: 0.787384, s1X: 4225301.108897}\n    test 264 Closest5.1.B: {a1X: 24.392077, azi1: 135.0, aziX: 146.182975, lat1: 45.0, latX: 25.92918, lon1: 10.0, lonX: 28.89426, m12: 2628412.372503, M12: 0.911005, M21: 0.910881, s1X: 2709328.885611}\n    test 265 Closest5.1.sAB: 1.58914e-09\n    test 266 Closest5.1.aAB: 1.43144e-14\n    test 267 Closest5.1.c: 0\n\n    test 268 Closest.2.sA: 6.05805e+06\n    test 269 Closest.2.sB: -3.31125e+06\n    test 270 Closest.2.c: 0\n    test 271 Closest.2.sX0: 9.3693e+06\n\n    test 272 Closest5.2.A: {a1X: 54.562637, azi1: -147.7, aziX: -159.869978, lat1: 50.0, latX: 0.0, lon1: -4.0, lonX: -29.745492, m12: 5184118.430287, M12: 0.58097, M21: 0.579813, s1X: 6058048.653081}\n    test 273 Closest5.2.B: {a1X: -29.845558, azi1: 90.0, aziX: 90.0, lat1: 0.0, latX: -0.0, lon1: 0.0, lonX: -29.745492, m12: -3163525.514556, M12: 0.86737, M21: 0.86737, s1X: -3311252.995823}\n    test 274 Closest5.2.sAB: 3.95486e-10\n    test 275 Closest5.2.aAB: 3.56467e-15\n    test 276 Closest5.2.c: 0\n\n    test 277 All[0].sA: -494582\n    test 278 All[0].sB: 1.40522e+07\n    test 279 All[0].c: 0\n    test 280 All[0].sX0: 1.45468e+07\n    test 281 All[0].iteration: 4\n\n    test 282 All[1].sA: 1.95291e+07\n    test 283 All[1].sB: -5.93234e+06\n    test 284 All[1].c: 0\n    test 285 All[1].sX0: 2.54615e+07\n    test 286 All[1].iteration: 4\n\n    test 287 All[2].sA: -494582\n    test 288 All[2].sB: -2.59556e+07\n    test 289 All[2].c: 0\n    test 290 All[2].sX0: 2.64502e+07\n    test 291 All[2].iteration: 4\n\n    test 292 All[3].sA: -2.05181e+07\n    test 293 All[3].sB: -5.97086e+06\n    test 294 All[3].c: 0\n    test 295 All[3].sX0: 2.64889e+07\n    test 296 All[3].iteration: 4\n\n    test 297 All5[0].A: {a1X: -4.448619, azi1: -147.7, aziX: -144.55245, lat1: 50.0, latX: 53.692598, lon1: -4.0, lonX: 0.0, m12: -494087.771694, M12: 0.996999, M21: 0.997, s1X: -494582.492241}\n    test 298 All5[0].B: {a1X: 126.399265, azi1: 0.0, aziX: 180.0, lat1: 0.0, latX: 53.692598, lon1: 180.0, lonX: 0.0, m12: 5161737.753947, M12: -0.593409, M21: -0.586165, s1X: 14052229.965229}\n    test 299 All5[0].sAB: 1.07542e-09\n    test 300 All5[0].aAB: 9.67209e-15\n    test 301 All5[0].c: 0\n    test 302 All5[0].iteration: 4\n\n    test 303 All5[1].A: {a1X: 175.764866, azi1: -147.7, aziX: -35.280487, lat1: 50.0, latX: -53.518675, lon1: -4.0, lonX: 180.0, m12: 488198.978244, M12: -1.001203, M21: -0.992673, s1X: 19529110.042937}\n    test 304 All5[1].B: {a1X: -53.426639, azi1: 0.0, aziX: 0.0, lat1: 0.0, latX: -53.518675, lon1: 180.0, lonX: 180.0, m12: -5110370.613686, M12: 0.595852, M21: 0.597076, s1X: -5932344.259165}\n    test 305 All5[1].sAB: 2.83833e-09\n    test 306 All5[1].aAB: 2.55275e-14\n    test 307 All5[1].c: 0\n    test 308 All5[1].iteration: 4\n\n    test 309 All5[2].A: {a1X: -4.448619, azi1: -147.7, aziX: -144.55245, lat1: 50.0, latX: 53.692598, lon1: -4.0, lonX: -0.0, m12: -494087.771694, M12: 0.996999, M21: 0.997, s1X: -494582.492241}\n    test 310 All5[2].B: {a1X: -233.600735, azi1: 0.0, aziX: 180.0, lat1: 0.0, latX: 53.692598, lon1: 180.0, lonX: 0.0, m12: 5082071.927222, M12: -0.593409, M21: -0.603127, s1X: -25955632.952022}\n    test 311 All5[2].sAB: 1.78008e-09\n    test 312 All5[2].aAB: 1.60097e-14\n    test 313 All5[2].c: 0\n    test 314 All5[2].iteration: 4\n\n    test 315 All5[3].A: {a1X: -184.660358, azi1: -147.7, aziX: -35.614985, lat1: 50.0, latX: -53.864737, lon1: -4.0, lonX: -180.0, m12: 499994.868419, M12: -0.992833, M21: -1.001337, s1X: -20518081.166643}\n    test 316 All5[3].B: {a1X: -53.773048, azi1: 0.0, aziX: 0.0, lat1: 0.0, latX: -53.864737, lon1: 180.0, lonX: 180.0, m12: -5133274.754826, M12: 0.590985, M21: 0.592236, s1X: -5970860.779079}\n    test 317 All5[3].sAB: 1.86981e-09\n    test 318 All5[3].aAB: 1.68165e-14\n    test 319 All5[3].c: 0\n    test 320 All5[3].iteration: 4\n\n    test 321 Middle.sA: 782555\n    test 322 Middle.sB: 5.53684e+06\n    test 323 Middle.c: 0\n    test 324 Middle.sX0: 0\n\n    test 325 Middle5.A: {a12: 14.106434, a1M: 7.053396, azi1: 44.75191, azi2: 45.629037, aziM: 44.969535, lat1: 0.0, lat2: 10.0, latM: 5.019509, lon1: 0.0, lon2: 10.0, lonM: 4.961883, m12: 780579.492953, M12: 0.992432, M21: 0.992432, s12: 1565109.099218, s1M: 782554.549609}\n    test 326 Middle5.B: {a12: 99.810444, a1M: 49.869061, azi1: 180.0, azi2: 180.0, aziM: 180.0, lat1: 50.0, lat2: -50.0, latM: 0.036282, lon1: -4.0, lon2: -4.0, lonM: -4.0, m12: 4864571.105922, M12: 0.645508, M21: 0.644537, s12: 11073670.322999, s1M: 5536835.161499}\n    test 327 Middle5.sMM: 1.13857e+06\n    test 328 Middle5.aMM: 10.2623\n    test 329 Middle5.c: 0\n\n    test 330 Segment.sA: -631414\n    test 331 Segment.sB: 5.98889e+06\n    test 332 Segment.c: 0\n    test 333 Segment.sX0: 1.86602e+06\n    test 334 Segment.kA: -1\n    test 335 Segment.kB: 0\n    test 336 Segment.k: -3\n\n    test 337 Segment5.A: {a1X: -5.691141, azi1: 44.75191, azi2: 45.629037, aziX: 44.893464, k2: -1, lat1: 0.0, lat2: 10.0, latX: -4.051871, lon1: 0.0, lon2: 10.0, lonX: -4.0, m12: -630376.505305, M12: 0.995071, M21: 0.995071, s1X: -631414.26877}\n    test 338 Segment5.B: {a1X: 53.943553, azi1: 180.0, azi2: 180.0, aziX: 180.0, k2: 0, lat1: 50.0, lat2: -50.0, latX: -4.051871, lon1: -4.0, lon2: -4.0, lonX: -4.0, m12: 5143394.782542, M12: 0.589657, M21: 0.588535, s1X: 5988887.278435}\n    test 339 Segment5.sAB: 1.08696e-09\n    test 340 Segment5.aAB: 9.79705e-15\n    test 341 Segment5.c: 0\n\n    test 342 intersect7s[0].A: 04.051871°S, 004.0°W\n    test 343 intersect7s[0].B: 04.051871°S, 004.0°W\n    test 344 intersect7s[0].sAB: 1.4124e-09\n    test 345 intersect7s[0].aAB: 1.27222e-14\n    test 346 intersect7s[0].c: 0\n    test 347 intersect7s[0].kA: 0\n    test 348 intersect7s[0].kB: 0\n    test 349 intersect7s[0].iteration: None\n\n    test 350 intersect7s[1].A: 03.623464°N, 176.0°E\n    test 351 intersect7s[1].B: 03.623464°N, 176.0°E\n    test 352 intersect7s[1].sAB: 3.17791e-09\n    test 353 intersect7s[1].aAB: 2.8625e-14\n    test 354 intersect7s[1].c: 0\n    test 355 intersect7s[1].kA: 0\n    test 356 intersect7s[1].kB: 0\n    test 357 intersect7s[1].iteration: None\n\n    test 358 intersect7s[2].A: 04.051871°S, 004.0°W\n    test 359 intersect7s[2].B: 04.051871°S, 004.0°W\n    test 360 intersect7s[2].sAB: 7.85649e-10\n    test 361 intersect7s[2].aAB: 7.08123e-15\n    test 362 intersect7s[2].c: 0\n    test 363 intersect7s[2].kA: 0\n    test 364 intersect7s[2].kB: 0\n    test 365 intersect7s[2].iteration: None\n\n    test 366 intersect7s[3].A: 04.4796°N, 176.0°E\n    test 367 intersect7s[3].B: 04.4796°N, 176.0°E\n    test 368 intersect7s[3].sAB: 2.47171e-09\n    test 369 intersect7s[3].aAB: 2.22639e-14\n    test 370 intersect7s[3].c: 0\n    test 371 intersect7s[3].kA: 0\n    test 372 intersect7s[3].kB: 0\n    test 373 intersect7s[3].iteration: None\n\n    test 374 Sphere.Closest.sA: 6.07719e+06\n    test 375 Sphere.Closest.sB: -3.31802e+06\n    test 376 Sphere.Closest.c: 0\n    test 377 Sphere.Closest.sX0: 9.39521e+06\n\n    test 378 Sphere.Closest5.A: {a1X: 54.653489, azi1: -147.7, aziX: -159.911264, lat1: 50.0, latX: -0.0, lon1: -4.0, lonX: -29.839663, m12: 5196622.322619, M12: 0.57852, M21: 0.57852, s1X: 6077190.710199}\n    test 379 Sphere.Closest5.B: {a1X: -29.839663, azi1: 90.0, aziX: 90.0, lat1: 0.0, latX: -0.0, lon1: 0.0, lonX: -29.839663, m12: -3170047.454389, M12: 0.867421, M21: 0.867421, s1X: -3318019.115902}\n    test 380 Sphere.Closest5.sAB: 2.06452e-09\n    test 381 Sphere.Closest5.aAB: 1.85667e-14\n    test 382 Sphere.Closest5.c: 0\n\n    test 383 _Xdict2: 124\n\n    testGeodesic(pygeodesy.geodesici, 26.02.04)\n    test 384 Intersector: name='', geodesic=<pygeodesy.geodesicw._gWrapped.Geodesic.<locals>.Geodesic object at 0x000000092f3a6b48>\n\n    test 385 Closest.1.sA: 4.2253e+06\n    test 386 Closest.1.sB: 2.70933e+06\n    test 387 Closest.1.c: 0\n    test 388 Closest.1.sX0: 6.93463e+06\n    test 389 Closest.1.latA: 25.9292\n    test 390 Closest.1.lonA: 28.8943\n    test 391 Closest.1.latB: 25.9292\n    test 392 Closest.1.lonB: 28.8943\n    test 393 Closest.1.sAB: 7.11805e-10\n    test 394 Closest.1.aAB: 6.41166e-15\n\n    test 395 Closest5.1.A: {a1X: 38.075573, azi1: 45.0, aziX: 51.790249, lat1: 0.0, latX: 25.92918, lon1: 0.0, lonX: 28.89426, s1X: 4225301.108897}  FAILED, KNOWN, expected {a1X: 38.075573, azi1: 45.0, aziX: 51.790249, lat1: 0.0, latX: 25.92918, lon1: 0.0, lonX: 28.89426, m12: 3921213.171755, M12: 0.787198, M21: 0.787384, s1X: 4225301.108897}\n    test 396 Closest5.1.B: {a1X: 24.392077, azi1: 135.0, aziX: 146.182975, lat1: 45.0, latX: 25.92918, lon1: 10.0, lonX: 28.89426, s1X: 2709328.885611}  FAILED, KNOWN, expected {a1X: 24.392077, azi1: 135.0, aziX: 146.182975, lat1: 45.0, latX: 25.92918, lon1: 10.0, lonX: 28.89426, m12: 2628412.372503, M12: 0.911005, M21: 0.910881, s1X: 2709328.885611}\n    test 397 Closest5.1.sAB: 7.11805e-10  FAILED, KNOWN (8.77338e-10), expected 1.58914e-09\n    test 398 Closest5.1.aAB: 6.41166e-15  FAILED, KNOWN (7.90271e-15), expected 1.43144e-14\n    test 399 Closest5.1.c: 0\n\n    test 400 Closest.2.sA: 6.05805e+06\n    test 401 Closest.2.sB: -3.31125e+06\n    test 402 Closest.2.c: 0\n    test 403 Closest.2.sX0: 9.3693e+06\n    test 404 Closest.2.latA: -8.98894e-15\n    test 405 Closest.2.lonA: -29.7455\n    test 406 Closest.2.latB: -0\n    test 407 Closest.2.lonB: -29.7455\n    test 408 Closest.2.sAB: 1.27e-09\n    test 409 Closest.2.aAB: 1.14469e-14\n\n    test 410 Closest5.2.A: {a1X: 54.562637, azi1: -147.7, aziX: -159.869978, lat1: 50.0, latX: -0.0, lon1: -4.0, lonX: -29.745492, s1X: 6058048.653081}  FAILED, KNOWN, expected {a1X: 54.562637, azi1: -147.7, aziX: -159.869978, lat1: 50.0, latX: 0.0, lon1: -4.0, lonX: -29.745492, m12: 5184118.430287, M12: 0.58097, M21: 0.579813, s1X: 6058048.653081}\n    test 411 Closest5.2.B: {a1X: -29.845558, azi1: 90.0, aziX: 90.0, lat1: 0.0, latX: -0.0, lon1: 0.0, lonX: -29.745492, s1X: -3311252.995823}  FAILED, KNOWN, expected {a1X: -29.845558, azi1: 90.0, aziX: 90.0, lat1: 0.0, latX: -0.0, lon1: 0.0, lonX: -29.745492, m12: -3163525.514556, M12: 0.86737, M21: 0.86737, s1X: -3311252.995823}\n    test 412 Closest5.2.sAB: 1.27e-09  FAILED, KNOWN (8.7451e-10), expected 3.95486e-10\n    test 413 Closest5.2.aAB: 1.14469e-14  FAILED, KNOWN (7.88228e-15), expected 3.56467e-15\n    test 414 Closest5.2.c: 0\n\n    test 415 All[0].sA: -494582\n    test 416 All[0].sB: 1.40522e+07\n    test 417 All[0].c: 0\n    test 418 All[0].sX0: 1.45468e+07\n    test 419 All[0].latA: 53.6926\n    test 420 All[0].lonA: 4.44089e-15\n    test 421 All[0].latB: 53.6926\n    test 422 All[0].lonB: 0\n    test 423 All[0].sAB: 1.44466e-09\n    test 424 All[0].aAB: 1.29929e-14\n    test 425 All[0].iteration: 4\n\n    test 426 All[1].sA: 1.95291e+07\n    test 427 All[1].sB: -5.93234e+06\n    test 428 All[1].c: 0\n    test 429 All[1].sX0: 2.54615e+07\n    test 430 All[1].latA: -53.5187\n    test 431 All[1].lonA: 180\n    test 432 All[1].latB: -53.5187\n    test 433 All[1].lonB: 180\n    test 434 All[1].sAB: 3.39967e-09\n    test 435 All[1].aAB: 3.05761e-14\n    test 436 All[1].iteration: 4\n\n    test 437 All[2].sA: -494582\n    test 438 All[2].sB: -2.59556e+07\n    test 439 All[2].c: 0\n    test 440 All[2].sX0: 2.64502e+07\n    test 441 All[2].latA: 53.6926\n    test 442 All[2].lonA: 4.44089e-15\n    test 443 All[2].latB: 53.6926\n    test 444 All[2].lonB: 0\n    test 445 All[2].sAB: 1.79237e-09\n    test 446 All[2].aAB: 1.61201e-14\n    test 447 All[2].iteration: 4\n\n    test 448 All[3].sA: -2.05181e+07\n    test 449 All[3].sB: -5.97086e+06\n    test 450 All[3].c: 0\n    test 451 All[3].sX0: 2.64889e+07\n    test 452 All[3].latA: -53.8647\n    test 453 All[3].lonA: 180\n    test 454 All[3].latB: -53.8647\n    test 455 All[3].lonB: 180\n    test 456 All[3].sAB: 2.34461e-09\n    test 457 All[3].aAB: 2.10867e-14\n    test 458 All[3].iteration: 4\n\n    test 459 All5[0].A: {a1X: -4.448619, azi1: -147.7, aziX: -144.55245, lat1: 50.0, latX: 53.692598, lon1: -4.0, lonX: 0.0, s1X: -494582.492241}  FAILED, KNOWN, expected {a1X: -4.448619, azi1: -147.7, aziX: -144.55245, lat1: 50.0, latX: 53.692598, lon1: -4.0, lonX: 0.0, m12: -494087.771694, M12: 0.996999, M21: 0.997, s1X: -494582.492241}\n    test 460 All5[0].B: {a1X: 126.399265, azi1: 0.0, aziX: 180.0, lat1: 0.0, latX: 53.692598, lon1: 180.0, lonX: 0.0, s1X: 14052229.965229}  FAILED, KNOWN, expected {a1X: 126.399265, azi1: 0.0, aziX: 180.0, lat1: 0.0, latX: 53.692598, lon1: 180.0, lonX: 0.0, m12: 5161737.753947, M12: -0.593409, M21: -0.586165, s1X: 14052229.965229}\n    test 461 All5[0].sAB: 1.44466e-09  FAILED, KNOWN (3.69237e-10), expected 1.07542e-09\n    test 462 All5[0].aAB: 1.29929e-14  FAILED, KNOWN (3.32083e-15), expected 9.67209e-15\n    test 463 All5[0].c: 0\n    test 464 All5[0].iteration: 4\n\n    test 465 All5[1].A: {a1X: 175.764866, azi1: -147.7, aziX: -35.280487, lat1: 50.0, latX: -53.518675, lon1: -4.0, lonX: 180.0, s1X: 19529110.042937}  FAILED, KNOWN, expected {a1X: 175.764866, azi1: -147.7, aziX: -35.280487, lat1: 50.0, latX: -53.518675, lon1: -4.0, lonX: 180.0, m12: 488198.978244, M12: -1.001203, M21: -0.992673, s1X: 19529110.042937}\n    test 466 All5[1].B: {a1X: -53.426639, azi1: 0.0, aziX: 0.0, lat1: 0.0, latX: -53.518675, lon1: 180.0, lonX: 180.0, s1X: -5932344.259165}  FAILED, KNOWN, expected {a1X: -53.426639, azi1: 0.0, aziX: 0.0, lat1: 0.0, latX: -53.518675, lon1: 180.0, lonX: 180.0, m12: -5110370.613686, M12: 0.595852, M21: 0.597076, s1X: -5932344.259165}\n    test 467 All5[1].sAB: 3.39967e-09  FAILED, KNOWN (5.61341e-10), expected 2.83833e-09\n    test 468 All5[1].aAB: 3.05761e-14  FAILED, KNOWN (5.04862e-15), expected 2.55275e-14\n    test 469 All5[1].c: 0\n    test 470 All5[1].iteration: 4\n\n    test 471 All5[2].A: {a1X: -4.448619, azi1: -147.7, aziX: -144.55245, lat1: 50.0, latX: 53.692598, lon1: -4.0, lonX: 0.0, s1X: -494582.492241}  FAILED, KNOWN, expected {a1X: -4.448619, azi1: -147.7, aziX: -144.55245, lat1: 50.0, latX: 53.692598, lon1: -4.0, lonX: -0.0, m12: -494087.771694, M12: 0.996999, M21: 0.997, s1X: -494582.492241}\n    test 472 All5[2].B: {a1X: -233.600735, azi1: 0.0, aziX: 180.0, lat1: 0.0, latX: 53.692598, lon1: 180.0, lonX: 0.0, s1X: -25955632.952022}  FAILED, KNOWN, expected {a1X: -233.600735, azi1: 0.0, aziX: 180.0, lat1: 0.0, latX: 53.692598, lon1: 180.0, lonX: 0.0, m12: 5082071.927222, M12: -0.593409, M21: -0.603127, s1X: -25955632.952022}\n    test 473 All5[2].sAB: 1.79237e-09  FAILED, KNOWN (1.22855e-11), expected 1.78008e-09\n    test 474 All5[2].aAB: 1.61201e-14  FAILED, KNOWN (1.10493e-16), expected 1.60097e-14\n    test 475 All5[2].c: 0\n    test 476 All5[2].iteration: 4\n\n    test 477 All5[3].A: {a1X: -184.660358, azi1: -147.7, aziX: -35.614985, lat1: 50.0, latX: -53.864737, lon1: -4.0, lonX: 180.0, s1X: -20518081.166643}  FAILED, KNOWN, expected {a1X: -184.660358, azi1: -147.7, aziX: -35.614985, lat1: 50.0, latX: -53.864737, lon1: -4.0, lonX: -180.0, m12: 499994.868419, M12: -0.992833, M21: -1.001337, s1X: -20518081.166643}\n    test 478 All5[3].A.lonX: 179.99999999999997  FAILED, KNOWN (2), expected -179.99999999999997\n    test 479 All5[3].B: {a1X: -53.773048, azi1: 0.0, aziX: 0.0, lat1: 0.0, latX: -53.864737, lon1: 180.0, lonX: 180.0, s1X: -5970860.779079}  FAILED, KNOWN, expected {a1X: -53.773048, azi1: 0.0, aziX: 0.0, lat1: 0.0, latX: -53.864737, lon1: 180.0, lonX: 180.0, m12: -5133274.754826, M12: 0.590985, M21: 0.592236, s1X: -5970860.779079}\n    test 480 All5[3].sAB: 2.34461e-09  FAILED, KNOWN (4.74802e-10), expected 1.86981e-09\n    test 481 All5[3].aAB: 2.10867e-14  FAILED, KNOWN (4.27022e-15), expected 1.68165e-14\n    test 482 All5[3].c: 0\n    test 483 All5[3].iteration: 4\n\n    test 484 Middle.sA: 782555\n    test 485 Middle.sB: 5.54085e+06  FAILED, KNOWN (0.000724055), expected 5.53684e+06\n    test 486 Middle.c: 0\n    test 487 Middle.sX0: 0\n    test 488 Middle.latA: 5.01951\n    test 489 Middle.lonA: 4.96188\n    test 490 Middle.latB: 0\n    test 491 Middle.lonB: -4\n    test 492 Middle.sAB: 1.14053e+06\n    test 493 Middle.aAB: 10.2799\n\n    test 494 Middle5.A: {a12: 14.106434, a1M: 7.053396, azi1: 44.75191, azi2: 45.629037, aziM: 44.969535, lat1: 0.0, lat2: 10.0, latM: 5.019509, lon1: 0.0, lon2: 10.0, lonM: 4.961883, s12: 1565109.099218, s1M: 782554.549609}  FAILED, KNOWN, expected {a12: 14.106434, a1M: 7.053396, azi1: 44.75191, azi2: 45.629037, aziM: 44.969535, lat1: 0.0, lat2: 10.0, latM: 5.019509, lon1: 0.0, lon2: 10.0, lonM: 4.961883, m12: 780579.492953, M12: 0.992432, M21: 0.992432, s12: 1565109.099218, s1M: 782554.549609}\n    test 495 Middle5.B: {a12: 99.810444, a1M: 49.905222, azi1: 180.0, azi2: 180.0, aziM: 180.0, lat1: 50.0, lat2: -50.0, latM: 0.0, lon1: -4.0, lon2: -4.0, lonM: -4.0, s12: 11081694.083368, s1M: 5540847.041684}  FAILED, KNOWN, expected {a12: 99.810444, a1M: 49.869061, azi1: 180.0, azi2: 180.0, aziM: 180.0, lat1: 50.0, lat2: -50.0, latM: 0.036282, lon1: -4.0, lon2: -4.0, lonM: -4.0, m12: 4864571.105922, M12: 0.645508, M21: 0.644537, s12: 11073670.322999, s1M: 5536835.161499}\n    test 496 Middle5.B.latM: 0.0  FAILED, KNOWN (0.0362822), expected 0.03628221979727372\n    test 497 Middle5.B.s1M: 5540847.04168415  FAILED, KNOWN (0.000724055), expected 5536835.161499482\n    test 498 Middle5.B.a1M: 49.905221888853184  FAILED, KNOWN (0.000724585), expected 49.869061316437026\n    test 499 Middle5.B.s12: 11081694.0833683  FAILED, KNOWN (0.000724055), expected 11073670.322998963\n    test 500 Middle5.sMM: 1.14053e+06  FAILED, KNOWN (0.0017142), expected 1.13857e+06\n    test 501 Middle5.aMM: 10.2799  FAILED, KNOWN (0.00171426), expected 10.2623\n    test 502 Middle5.c: 0\n\n    test 503 Segment.sA: -631414\n    test 504 Segment.sB: 5.98889e+06\n    test 505 Segment.c: 0\n    test 506 Segment.sX0: 1.86201e+06  FAILED, KNOWN (0.00214997), expected 1.86602e+06\n    test 507 Segment.kA: -1\n    test 508 Segment.kB: 0\n    test 509 Segment.k: -3\n    test 510 Segment.latA: -4.05187\n    test 511 Segment.lonA: -4\n    test 512 Segment.latB: -4.05187\n    test 513 Segment.lonB: -4\n    test 514 Segment.sAB: 3.664e-10\n    test 515 Segment.aAB: 3.30244e-15\n\n    test 516 Segment5.A: {a1X: -5.691141, azi1: 44.75191, aziX: 44.893464, k2: -1, lat1: 0.0, latX: -4.051871, lon1: 0.0, lonX: -4.0, s1X: -631414.26877}  FAILED, KNOWN, expected {a1X: -5.691141, azi1: 44.75191, azi2: 45.629037, aziX: 44.893464, k2: -1, lat1: 0.0, lat2: 10.0, latX: -4.051871, lon1: 0.0, lon2: 10.0, lonX: -4.0, m12: -630376.505305, M12: 0.995071, M21: 0.995071, s1X: -631414.26877}\n    test 517 Segment5.B: {a1X: 53.943553, azi1: 180.0, aziX: 180.0, k2: 0, lat1: 50.0, latX: -4.051871, lon1: -4.0, lonX: -4.0, s1X: 5988887.278435}  FAILED, KNOWN, expected {a1X: 53.943553, azi1: 180.0, azi2: 180.0, aziX: 180.0, k2: 0, lat1: 50.0, lat2: -50.0, latX: -4.051871, lon1: -4.0, lon2: -4.0, lonX: -4.0, m12: 5143394.782542, M12: 0.589657, M21: 0.588535, s1X: 5988887.278435}\n    test 518 Segment5.sAB: 3.664e-10  FAILED, KNOWN (7.20564e-10), expected 1.08696e-09\n    test 519 Segment5.aAB: 3.30244e-15  FAILED, KNOWN (6.4946e-15), expected 9.79705e-15\n    test 520 Segment5.c: 0\n\n    test 521 intersect7s[0].A: 04.051871°S, 004.0°W\n    test 522 intersect7s[0].B: 04.051871°S, 004.0°W\n    test 523 intersect7s[0].sAB: 2.64649e-10  FAILED, KNOWN (1.14775e-09), expected 1.4124e-09\n    test 524 intersect7s[0].aAB: 2.38534e-15  FAILED, KNOWN (1.03369e-14), expected 1.27222e-14\n    test 525 intersect7s[0].c: 0\n    test 526 intersect7s[0].kA: 0\n    test 527 intersect7s[0].kB: 0\n    test 528 intersect7s[0].iteration: None\n\n    test 529 intersect7s[1].A: 03.623464°N, 176.0°E\n    test 530 intersect7s[1].B: 03.623464°N, 176.0°E\n    test 531 intersect7s[1].sAB: 3.39056e-09  FAILED, KNOWN (2.12649e-10), expected 3.17791e-09\n    test 532 intersect7s[1].aAB: 3.05599e-14  FAILED, KNOWN (1.93494e-15), expected 2.8625e-14\n    test 533 intersect7s[1].c: 0\n    test 534 intersect7s[1].kA: 0\n    test 535 intersect7s[1].kB: 0\n    test 536 intersect7s[1].iteration: None\n\n    test 537 intersect7s[2].A: 04.051871°S, 004.0°W\n    test 538 intersect7s[2].B: 04.051871°S, 004.0°W\n    test 539 intersect7s[2].sAB: 2.64667e-10  FAILED, KNOWN (5.20982e-10), expected 7.85649e-10\n    test 540 intersect7s[2].aAB: 2.38542e-15  FAILED, KNOWN (4.69581e-15), expected 7.08123e-15\n    test 541 intersect7s[2].c: 0\n    test 542 intersect7s[2].kA: 0\n    test 543 intersect7s[2].kB: 0\n    test 544 intersect7s[2].iteration: None\n\n    test 545 intersect7s[3].A: 04.4796°N, 176.0°E\n    test 546 intersect7s[3].B: 04.4796°N, 176.0°E\n    test 547 intersect7s[3].sAB: 3.49267e-09  FAILED, KNOWN (1.02096e-09), expected 2.47171e-09\n    test 548 intersect7s[3].aAB: 3.14801e-14  FAILED, KNOWN (9.2162e-15), expected 2.22639e-14\n    test 549 intersect7s[3].c: 0\n    test 550 intersect7s[3].kA: 0\n    test 551 intersect7s[3].kB: 0\n    test 552 intersect7s[3].iteration: None\n\n    test 553 Sphere.Closest.sA: 6.07719e+06\n    test 554 Sphere.Closest.sB: -3.31802e+06\n    test 555 Sphere.Closest.c: 0\n    test 556 Sphere.Closest.sX0: 9.39521e+06\n    test 557 Sphere.Closest.latA: -2.98706e-15\n    test 558 Sphere.Closest.lonA: -29.8397\n    test 559 Sphere.Closest.latB: -0\n    test 560 Sphere.Closest.lonB: -29.8397\n    test 561 Sphere.Closest.sAB: 8.56921e-10\n    test 562 Sphere.Closest.aAB: 7.70647e-15\n\n    test 563 Sphere.Closest5.A: {a1X: 54.653489, azi1: -147.7, aziX: -159.911264, lat1: 50.0, latX: -0.0, lon1: -4.0, lonX: -29.839663, s1X: 6077190.710199}  FAILED, KNOWN, expected {a1X: 54.653489, azi1: -147.7, aziX: -159.911264, lat1: 50.0, latX: -0.0, lon1: -4.0, lonX: -29.839663, m12: 5196622.322619, M12: 0.57852, M21: 0.57852, s1X: 6077190.710199}\n    test 564 Sphere.Closest5.B: {a1X: -29.839663, azi1: 90.0, aziX: 90.0, lat1: 0.0, latX: -0.0, lon1: 0.0, lonX: -29.839663, s1X: -3318019.115902}  FAILED, KNOWN, expected {a1X: -29.839663, azi1: 90.0, aziX: 90.0, lat1: 0.0, latX: -0.0, lon1: 0.0, lonX: -29.839663, m12: -3170047.454389, M12: 0.867421, M21: 0.867421, s1X: -3318019.115902}\n    test 565 Sphere.Closest5.sAB: 8.56921e-10  FAILED, KNOWN (1.2076e-09), expected 2.06452e-09\n    test 566 Sphere.Closest5.aAB: 7.70647e-15  FAILED, KNOWN (1.08602e-14), expected 1.85667e-14\n    test 567 Sphere.Closest5.c: 0\n\n    test 568 _Xdict2: 178\n\n    102 of 568 testGeodesici.py tests (18.0%) FAILED, ALL KNOWN (pygeodesy 26.3.26 PyPy 7.3.17 Python 3.10.14 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 2.399 sec\nrunning /opt/local/bin/p....y3.10 -W default ~/PyGeodesy/test/testGeodesicx.py\n./test/testGeodesicx.py:49: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  gP = E.geodesic\n./test/testGeodesicx.py:143: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  gP = E.geodesic\n./test/testGeodesicx.py:284: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  t.testPolygon(geodesicw, E.geodesic, K=True)  # XXX geographiclib 1.49 issue?\n# lazily imported pygeodesy.basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.DeprecationWarnings from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isint from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isLazy from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.issubclassof from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.iterNumpy2over from .iters by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.LazyImportError from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.karney by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.NN from .interns by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.normDMS from .dms by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.pairs from .streprs by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.printf from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.property_RO from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.typename from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.classname from .named by testGeodesicx.py line 12\n# lazily imported pygeodesy.DIG from .constants by testGeodesicx.py line 12\n# lazily imported pygeodesy.Ellipsoid from .ellipsoids by testGeodesicx.py line 12\n# lazily imported pygeodesy.GDict from .karney by testGeodesicx.py line 12\n# lazily imported pygeodesy.GeodesicLineExact from .geodesicx by testGeodesicx.py line 12\n# lazily imported pygeodesy.itemsorted from .basics by testGeodesicx.py line 12\n# lazily imported pygeodesy.Ellipsoids from .ellipsoids by testGeodesicx.py line 263\n# lazily imported pygeodesy.geodesicw by testGeodesicx.py line 263\n# lazily imported pygeodesy.geodsolve by testGeodesicx.py line 263\n\n    testing testGeodesicx.py 25.09.03 (module pygeodesy.geodesicx 25.12.23) isLazy=3\n\n    testDirectX vs ...(pygeodesy.geodesicx, 25.12.23)\n# lazily imported pygeodesy.elliptic by gxline.py line 289\n    test 1 C++X.a12: 49.4755274632515\n    test 2 C++X.azi1: 51\n    test 3 C++X.azi2: 107.189397162606\n    test 4 C++X.lat1: 40.6\n    test 5 C++X.lat2: 51.8845645056068\n    test 6 C++X.lon1: -73.8\n    test 7 C++X.lon2: -1.14117286120084  FAILED, KNOWN, expected -1.14117286120083\n    test 8 C++X.m12: 4844148.70310149\n    test 9 C++X.M12: 0.650910566998086\n    test 10 C++X.M21: 0.651228658921966\n    test 11 C++X.s12: 5500000\n    test 12 C++X.S12: 39735075134877.1\n    test 13 iteration: None\n\n    test 14 Python.a12: 49.4755274632515\n    test 15 Python.azi1: 51\n    test 16 Python.azi2: 107.189397162606\n    test 17 Python.lat1: 40.6\n    test 18 Python.lat2: 51.8845645056068\n    test 19 Python.lon1: -73.8\n    test 20 Python.lon2: -1.14117286120084\n    test 21 Python.m12: 4844148.70310149\n    test 22 Python.M12: 0.650910566998086\n    test 23 Python.M21: 0.651228658921966\n    test 24 Python.s12: 5500000\n    test 25 Python.S12: 39735075134877.1\n    test 26 iteration: None\n\n    test 27 GeodesicLineExact: name='', lat1=40.6, lon1=-73.8, azi1=51, a13=49.475527, s13=5500000, caps=36747, geodesic=GeodesicExact(name='WGS84', caps=0, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), C4order=30)\n    test 28 GeodesicExact: GeodesicExact(name='WGS84', caps=0, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), C4order=30)\n    test 29 GeodesicLineExact: Direct9Tuple(a12=49.475527, lat2=51.884565, lon2=-1.141173, azi2=107.189397, s12=5500000.0, m12=4844148.703101, M12=0.650911, M21=0.651229, S12=NAN)\n\n    test 30 GeodesicExact: {a12: 49.475527, azi1: 51.0, azi2: 107.189397, lat1: 40.6, lat2: 51.884565, lon1: -73.8, lon2: -1.141173, m12: 4844148.703101, M12: 0.650911, M21: 0.651229, s12: 5500000.0}\n    test 31 GeodesicExact: (49.475527, 51.884565, -1.141173, 107.189397, 5500000.0, 4844148.703101, 0.650911, 0.651229, NAN)\n    test 32 GeodesicExact: {a12: 49.475527, azi2: 107.189397, lat2: 51.884565, lon2: -1.141173, m12: 4844148.703101, M12: 0.650911, M21: 0.651229, s12: 5500000.0, S12: NAN}  FAILED, KNOWN, expected {a12: 49.475527, azi1: 51.0, azi2: 107.189397, lat1: 40.6, lat2: 51.884565, lon1: -73.8, lon2: -1.141173, m12: 4844148.703101, M12: 0.650911, M21: 0.651229, s12: 5500000.0}\n\n    test 33 Geodesic: {a12: 49.475527, azi2: 107.189397, lat2: 51.884565, lon2: -1.141173, m12: NAN, M12: NAN, M21: NAN, s12: 5500000.0, S12: NAN}\n    test 34 Geodesic: (49.475527, 51.884565, -1.141173, 107.189397, 5500000.0, NAN, NAN, NAN, NAN)\n    test 35 Geodesic: {a12: 49.475527, azi2: 107.189397, lat2: 51.884565, lon2: -1.141173, m12: NAN, M12: NAN, M21: NAN, s12: 5500000.0, S12: NAN}\n\n    test 36 ArcDirect.a12: 49.8\n    test 37 ArcDirect.azi1: 51\n    test 38 ArcDirect.azi2: 107.582082475406  FAILED, KNOWN, expected 107.5820825\n    test 39 ArcDirect.lat1: 40.6\n    test 40 ArcDirect.lat2: 51.7876866587893  FAILED, KNOWN, expected 51.7876867\n    test 41 ArcDirect.lon1: -73.8\n    test 42 ArcDirect.lon2: -0.641731343091337  FAILED, KNOWN, expected -0.641731\n    test 43 ArcDirect.s12: 5536073.73439267  FAILED, KNOWN, expected 5536073.734393\n    test 44 iteration: None\n\n    test 45 ArcDirectLine: name='', lat1=40.6, lon1=-73.8, azi1=51, a13=49.8, s13=5536073.734393, caps=36747, geodesic=GeodesicExact(name='WGS84', caps=0, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), C4order=30)\n    test 46 iteration: None\n\n    test 47 GeodesicLineExact: name='', lat1=40.6, lon1=-73.8, azi1=51, a13=NAN, s13=NAN, caps=65439, geodesic=GeodesicExact(name='WGS84', caps=0, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), C4order=30)\n    test 48 iteration: None\n\n    testInverseX vs ...(pygeodesy.geodesicx, 25.12.23)\n    test 49 C++X.a12: 49.941310217899\n    test 50 C++X.azi1: 51.1988828455798\n    test 51 C++X.azi2: 107.821776735514\n    test 52 C++X.lat1: 40.6\n    test 53 C++X.lat2: 51.6\n    test 54 C++X.lon1: -73.8\n    test 55 C++X.lon2: -0.5\n    test 56 C++X.m12: 4877684.6027062\n    test 57 C++X.M12: 0.644729692059482\n    test 58 C++X.M21: 0.645045678521344\n    test 59 C++X.s12: 5551759.40031868\n    test 60 C++X.S12: 40041368848742.5\n    test 61 iteration: 3\n\n    test 62 Python.a12: 49.941310217899\n    test 63 Python.azi1: 51.1988828455798\n    test 64 Python.azi2: 107.821776735514\n    test 65 Python.lat1: 40.6\n    test 66 Python.lat2: 51.6\n    test 67 Python.lon1: -73.8\n    test 68 Python.lon2: -0.5\n    test 69 Python.m12: 4877684.6027062\n    test 70 Python.M12: 0.644729692059482\n    test 71 Python.M21: 0.645045678521344\n    test 72 Python.s12: 5551759.40031868\n    test 73 Python.S12: 40041368848742.5\n    test 74 iteration: None\n\n    test 75 GeodesicLineExact: GeodesicLineExact(name='', lat1=40.6, lon1=-73.8, azi1=51.198883, a13=49.94131, s13=5551759.400319, caps=36747, geodesic=GeodesicExact(name='WGS84', caps=0, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), C4order=30))\n    test 76 GeodesicExact: name='WGS84', caps=0, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), C4order=30\n    test 77 GeodesicLineExact: Direct9Tuple(a12=49.94131, lat2=51.6, lon2=-0.5, azi2=107.821777, s12=5551759.400319, m12=4877684.602706, M12=0.64473, M21=0.645046, S12=NAN)\n\n    test 78 GeodesicExact: GDict(a12=49.94131, azi1=51.198883, azi2=107.821777, lat1=40.6, lat2=51.6, lon1=-73.8, lon2=-0.5, m12=4877684.602706, M12=0.64473, M21=0.645046, s12=5551759.400319)\n    test 79 GeodesicExact: Inverse10Tuple(a12=49.94131, s12=5551759.400319, salp1=NAN, calp1=NAN, salp2=NAN, calp2=NAN, m12=4877684.602706, M12=0.64473, M21=0.645046, S12=NAN)\n    test 80 GeodesicExact: {a12: 49.94131, azi1: NAN, azi2: NAN, calp1: NAN, calp2: NAN, m12: 4877684.602706, M12: 0.64473, M21: 0.645046, s12: 5551759.400319, S12: NAN, salp1: NAN, salp2: NAN}  FAILED, KNOWN, expected {a12: 49.94131, azi1: 51.198883, azi2: 107.821777, lat1: 40.6, lat2: 51.6, lon1: -73.8, lon2: -0.5, m12: 4877684.602706, M12: 0.64473, M21: 0.645046, s12: 5551759.400319}\n\n    test 81 Geodesic: GDict(a12=49.94131, azi1=51.198883, azi2=107.821777, calp1=0.626619, calp2=-0.306057, lon1=-73.8, lon2=-0.5, m12=NAN, M12=NAN, M21=NAN, s12=5551759.400319, S12=NAN, salp1=0.779326, salp2=0.952013)\n    test 82 Geodesic: Inverse10Tuple(a12=49.94131, s12=5551759.400319, salp1=0.779326, calp1=0.626619, salp2=0.952013, calp2=-0.306057, m12=NAN, M12=NAN, M21=NAN, S12=NAN)\n    test 83 Geodesic: {a12: 49.94131, azi1: 51.198883, azi2: 107.821777, calp1: 0.626619, calp2: -0.306057, m12: NAN, M12: NAN, M21: NAN, s12: 5551759.400319, S12: NAN, salp1: 0.779326, salp2: 0.952013}  FAILED, KNOWN, expected {a12: 49.94131, azi1: 51.198883, azi2: 107.821777, calp1: 0.626619, calp2: -0.306057, lon1: -73.8, lon2: -0.5, m12: NAN, M12: NAN, M21: NAN, s12: 5551759.400319, S12: NAN, salp1: 0.779326, salp2: 0.952013}\n\n    test 84 Inverse: {a12: 49.647855, azi1: 51.139649, azi2: 107.74164, lat1: 40.6, lat2: 51.6, lon1: -73.8, lon2: -0.5, m12: 4848370.615026, M12: 0.646331, M21: 0.646017, s12: 5515844.227497}\n    test 85 Inverse1: 49.647854761166144\n\n    testPolygon24(pygeodesy.geodesicx, 25.12.23)\n    test 86 Compute: (1, 0, 0)\n    test 87 AddEdges: (4, 4000, 1000000)\n    test 88 TestEdge: (5, 4000, 1000000)\n    test 89 Clear: 0\n    test 90 TestPoint: (1, 0, 0)\n    test 91 AddPoints: (4, 29506941, 65690027591346)\n    test 92 TestPoint: (5, 29506941, 65690027591346)\n    test 93 toStr: area=65690027591345.671875, geodesic=GeodesicExact(name='WGS84', caps=0, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), C4order=24), num=4, perimeter=29506941.155178, polyline=False\n\n    testPolygon27(pygeodesy.geodesicx, 25.12.23)\n    test 94 Compute: (1, 0, 0)\n    test 95 AddEdges: (4, 4000, 1000000)\n    test 96 TestEdge: (5, 4000, 1000000)\n    test 97 Clear: 0\n    test 98 TestPoint: (1, 0, 0)\n    test 99 AddPoints: (4, 29506941, 65690027591346)\n    test 100 TestPoint: (5, 29506941, 65690027591346)\n    test 101 toStr: area=65690027591345.671875, geodesic=GeodesicExact(name='WGS84', caps=0, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), C4order=27), num=4, perimeter=29506941.155178, polyline=False\n\n    testPolygon30(pygeodesy.geodesicx, 25.12.23)\n    test 102 Compute: (1, 0, 0)\n    test 103 AddEdges: (4, 4000, 1000000)\n    test 104 TestEdge: (5, 4000, 1000000)\n    test 105 Clear: 0\n    test 106 TestPoint: (1, 0, 0)\n    test 107 AddPoints: (4, 29506941, 65690027591346)\n    test 108 TestPoint: (5, 29506941, 65690027591346)\n    test 109 toStr: area=65690027591345.671875, geodesic=GeodesicExact(name='WGS84', caps=0, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), C4order=30), num=4, perimeter=29506941.155178, polyline=False\n\n    testPolygon(pygeodesy.geodesicw, 25.05.28)\n    test 110 Compute: (1, 0, 0)\n    test 111 AddEdges: (4, 4000, 1000000)\n    test 112 TestEdge: (5, 4000, 1000000)\n    test 113 Clear: None  FAILED, KNOWN, expected 0\n    test 114 TestPoint: (1, 0, 0)\n    test 115 AddPoints: (4, 29506941, 65690027591346)\n    test 116 TestPoint: (5, 29506941, 65690027591346)\n\n    testPlumbTo ...(pygeodesy.geodesicx, 25.12.23)\n# lazily imported pygeodesy.rhumb by geodesicw.py line 606\n# imported pygeodesy.basics into errors.py line 443\n    test 117 lat2: 51.846089\n    test 118 lon2: 5.260428\n    test 119 s12: 24784.288415\n    test 120 at: -270.000000\n    test 121 iteration: 6\n\n    test 122 lat2: 54.928531\n    test 123 lon2: -21.937291\n    test 124 s12: 3928788.572003\n    test 125 at: 270.000000\n    test 126 iteration: 27\n\n    test 127 lat2: 37.976202  FAILED, KNOWN, expected 37.976217\n    test 128 lon2: 18.344788  FAILED, KNOWN, expected 18.344820\n    test 129 s12: 1012793.816232  FAILED, KNOWN, expected 1012790.599291\n    test 130 at: 270.005478  FAILED, KNOWN, expected 270.005437\n    test 131 iteration: 128\n\n    16 of 131 testGeodesicx.py tests (12.2%) FAILED, incl. 13 KNOWN plus 3 DeprecationWarnings (pygeodesy 26.3.26 PyPy 7.3.17 Python 3.10.14 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 3.594 sec\nrunning /opt/local/bin/p....y3.10 -W default ~/PyGeodesy/test/testGeohash.py\n./test/testGeohash.py:38: DeprecationWarning: function L{decode_error<pygeodesy.geohash.decode_error>} has been DEPRECATED on 2024.07.28, use L{geohash.decode_error2}.\n  self.test('decode_error',  fstr(geohash.decode_error( g), fmt='%.*e'), '2.145767e-05, 2.145767e-05')  # DEPRECATED\n./test/testGeohash.py:45: DeprecationWarning: property_RO L{sizes<pygeodesy.geohash.Geohash.sizes>} has been DEPRECATED on 2024.07.28, use property C{Geohash.sizes3}.\n  self.test('sizes', fstr(g.sizes, prec=1), '4.8, 4.8')\n./test/testGeohash.py:87: DeprecationWarning: function L{decode_error<pygeodesy.geohash.decode_error>} has been DEPRECATED on 2024.07.28, use L{geohash.decode_error2}.\n  self.test('decode_error',  fstr(geohash.decode_error( 'u120fxw'), fmt='%.*e'), '6.866455e-04, 6.866455e-04')  # DEPRECATED\n./test/testGeohash.py:94: DeprecationWarning: function L{sizes<pygeodesy.geohash.sizes>} has been DEPRECATED on 2024.07.28, use function L{pygeodesy.geohash.sizes3}.\n  self.test('sizes',  fstr(geohash.sizes( 'u120fxw'), prec=1), '153.0, 153.0')  # DEPRECATED\n./test/testGeohash.py:102: DeprecationWarning: function L{sizes<pygeodesy.geohash.sizes>} has been DEPRECATED on 2024.07.28, use function L{pygeodesy.geohash.sizes3}.\n  self.test('sizes',  fstr(geohash.sizes( g), prec=1), '610.0, 1220.0')  # DEPRECATED\n# lazily imported pygeodesy.basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.DeprecationWarnings from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isint from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isLazy from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.issubclassof from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.iterNumpy2over from .iters by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.LazyImportError from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.karney by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.NN from .interns by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.normDMS from .dms by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.pairs from .streprs by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.printf from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.property_RO from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.typename from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.classname from .named by testGeohash.py line 11\n# lazily imported pygeodesy.fstr from .streprs by testGeohash.py line 11\n# lazily imported pygeodesy.geohash by testGeohash.py line 11\n# lazily imported pygeodesy.Geohash from .geohash by testGeohash.py line 11\n# lazily imported pygeodesy.Geohashed from .geohash by testGeohash.py line 11\n# lazily imported pygeodesy.ellipsoidalVincenty by testGeohash.py line 161\n\n    testing testGeohash.py 24.08.01 (module pygeodesy.geohash 25.09.16) isLazy=3\n    test 1 Geohash: geek\n    test 2 Geohash: geek\n    test 3 Geohash: 'geek'\n    test 4 Geohash: Geohash('geek')\n    test 5 Geohash: geek\n    test 6 bounds: (LatLon(65°23′26.25″N, 017°55′46.88″W), LatLon(65°33′59.06″N, 017°34′41.25″W))\n    test 7 toLatLon: 65.478516°N, 017.753906°W\n    test 8 latlon: 65.4785156, -17.7539062\n    test 9 philam: 1.1428157, -0.3098641\n    test 10 copy(<class 'type'>): (<class 'pygeodesy.geohash.Geohash'>, True)\n    test 11 Geohash.copy(): (<class 'pygeodesy.geohash.Geohash'>, True)\n    test 12 Geohash: geehpbpbp\n    test 13 toLatLon: 65.390625°N, 017.929689°W\n    test 14 latlon: 65.390625, -17.929689\n    test 15 ab: 1.1412817, -0.3129321\n    test 16 decode: ('65.390646', '-17.929709')\n    test 17 decode2: (65.390646, -17.929709)\n    test 18 decode_error: 2.145767e-05, 2.145767e-05\n    test 19 decode_error2: 2.145767e-05, 2.145767e-05\n    test 20 distance1To: 2758.887\n# imported pygeodesy.formy into geohash.py line 444\n    test 21 distance2To: 682.760\n    test 22 distance3To: 410.732\n    test 23 distance4To: 397.404\n    test 24 distance5To: 397.404\n    test 25 sizes: 4.8, 4.8\n    test 26 copy(<class 'type'>): (<class 'pygeodesy.geohash.Geohash'>, True)\n    test 27 Geohash.copy(): (<class 'pygeodesy.geohash.Geohash'>, True)\n    test 28 N: geehpbpbr\n    test 29 NE: geek00002\n    test 30 E: geek00000\n    test 31 SE: gee7bpbpb\n    test 32 S: gee5zzzzz\n    test 33 SW: gee5zzzzy\n    test 34 W: geehpbpbn\n    test 35 NW: geehpbpbq\n    test 36 N: geehpbpbr\n    test 37 NE: geek00002\n    test 38 E: geek00000\n    test 39 SE: gee7bpbpb\n    test 40 S: gee5zzzzz\n    test 41 SW: gee5zzzzy\n    test 42 W: geehpbpbn\n    test 43 NW: geehpbpbq\n    test 44 N: geehpbpbr\n    test 45 NE: geek00002\n    test 46 E: geek00000\n    test 47 SE: gee7bpbpb\n    test 48 S: gee5zzzzz\n    test 49 SW: gee5zzzzy\n    test 50 W: geehpbpbn\n    test 51 NW: geehpbpbq\n    test 52 N: geehpbpbr\n    test 53 NE: geek00002\n    test 54 E: geek00000\n    test 55 SE: gee7bpbpb\n    test 56 S: gee5zzzzz\n    test 57 SW: gee5zzzzy\n    test 58 W: geehpbpbn\n    test 59 NW: geehpbpbq\n\n    test 60 bounds: 52.20428467, 0.11810303, 52.20565796, 0.11947632\n    test 61 decode: 52.205, 0.1188\n    test 62 encode-decode: u120fxw\n    test 63 encode-decode: geek\n    test 64 encode-decode: fur\n    test 65 encode-decode: geehpbpbp\n    test 66 encode-decode: u4pruydqqvj8\n    test 67 encode-decode: bgr96qxvpd46\n    test 68 encode-decode: 0123456789\n    test 69 encode-decode: zzzzzz\n    test 70 Geohash: u4pruydq\n    test 71 N.E.S.W: True\n    test 72 E.S.W.N: True\n    test 73 S.W.N.E: True\n    test 74 W.N.E.S: True\n    test 75 N.E.S.S.W.W.N.N.E.S: True\n    test 76 Geohash: u4pruydqq\n    test 77 N.E.S.W: True\n    test 78 E.S.W.N: True\n    test 79 S.W.N.E: True\n    test 80 W.N.E.S: True\n    test 81 N.E.S.S.W.W.N.N.E.S: True\n    test 82 Geohash: u4pruydqqv\n    test 83 N.E.S.W: True\n    test 84 E.S.W.N: True\n    test 85 S.W.N.E: True\n    test 86 W.N.E.S: True\n    test 87 N.E.S.S.W.W.N.N.E.S: True\n    test 88 Geohash: u4pruydqqvj\n    test 89 N.E.S.W: True\n    test 90 E.S.W.N: True\n    test 91 S.W.N.E: True\n    test 92 W.N.E.S: True\n    test 93 N.E.S.S.W.W.N.N.E.S: True\n    test 94 Geohash: u4pruydqqvj8\n    test 95 N.E.S.W: True\n    test 96 E.S.W.N: True\n    test 97 S.W.N.E: True\n    test 98 W.N.E.S: True\n    test 99 N.E.S.S.W.W.N.N.E.S: True\n\n    test 100 encode: u120fxw\n    test 101 decode: ('52.205', '0.1188')\n    test 102 decode2: (52.205, 0.1188)\n    test 103 decode_error: 6.866455e-04, 6.866455e-04\n    test 104 decode_error2: 6.866455e-04, 6.866455e-04\n    test 105 distance_: 486.710\n    test 106 distance2: 3.374\n    test 107 distance3: 2.992\n    test 108 distance4: 2.798\n    test 109 distance5: 2.798\n    test 110 sizes: 153.0, 153.0\n    test 111 sizes3: 153.0, 153.0, 86.3\n\n    test 112 Geohash: u336xv\n    test 113 encode: u336xv\n    test 114 equal: True\n    test 115 sizes: 610.0, 1220.0\n    test 116 sizes3: 610.0, 1220.0, 486.7\n    test 117 encode: fur\n    test 118 decode: ('69.6', '-45.7')\n    test 119 decode: ('70.3', '-51')\n    test 120 decode: ('68', '-68')\n    test 121 decode_error2: (0.703125, 0.703125)\n    test 122 decode_error2: (2.8125, 5.625)\n    test 123 decode_error2: (22.5, 22.5)\n    test 124 encode: ezs42e44yx96\n    test 125 decode: ('42.60000003', '-5.59999997')\n    test 126 encode: ezs42\n    test 127 decode: ('42.605', '-5.603')\n    test 128 distance1: 503442.4\n    test 129 distance2: 303317.6\n    test 130 distance3: 185425.4\n    test 131 distance4: 179940.1\n    test 132 distance5: 179940.1\n\n    test 133 precision: 0  FAILED, KNOWN, expected 1\n    test 134 resolution: 360.0, 180.0\n    test 135 inferred: w\n    test 136 precision: 1\n    test 137 resolution: 45.0, 45.0\n    test 138 inferred: wp\n    test 139 precision: 2\n    test 140 resolution: 11.25, 5.625\n    test 141 inferred: wpy\n    test 142 precision: 3\n    test 143 resolution: 1.4062, 1.4062\n    test 144 inferred: wpy6\n    test 145 precision: 4\n    test 146 resolution: 0.35156, 0.17578\n    test 147 inferred: wpy6kc\n    test 148 precision: 5\n    test 149 resolution: 0.043945, 0.043945\n    test 150 inferred: wpy6kcc\n    test 151 precision: 6\n    test 152 resolution: 0.0109863, 0.0054932\n    test 153 inferred: wpy6kccw\n    test 154 precision: 7\n    test 155 resolution: 0.00137329, 0.00137329\n    test 156 inferred: wpy6kccwe4\n    test 157 precision: 8\n    test 158 resolution: 0.000343323, 0.000171661\n    test 159 inferred: wpy6kccwe4q\n    test 160 precision: 9\n    test 161 resolution: 0.0000429153, 0.0000429153\n    test 162 inferred: wpy6kccwe4qr\n    test 163 precision: 10\n    test 164 resolution: 0.00001072884, 0.00000536442\n    test 165 inferred: wpy6kccwe4qr\n    test 166 precision: 11\n    test 167 resolution: 0.000001341105, 0.000001341105\n    test 168 inferred: wpy6kccwe4qr\n    test 169 precision: 12\n    test 170 resolution: 0.0000003352761, 0.0000001676381\n    test 171 inferred: wpy6kccwe4qr\n    test 172 precision: 13  FAILED, KNOWN, expected 12\n    test 173 resolution: 0.00000033527613, 0.00000016763806\n    test 174 inferred: wpy6kccwe4qr\n\n    test 175 precision: 12\n    test 176 ndigits: None\n    test 177 encoded: tuvz4p141zc1\n    test 178 encoded: tuvz4p141zc1\n    test 179 encoded: True\n    test 180 encoded: tuvz4p141zc1\n    test 181 encoded: True\n    test 182 decoded: (27.988056, 86.925278)\n    test 183 decoded: (27.988056, 86.925278)\n    test 184 decoded: True\n    test 185 len: 1\n    test 186 len2: (1, 1)\n\n    test 187 precision: 12\n    test 188 ndigits: 12\n    test 189 encoded: tuvz4p141zc1\n    test 190 encoded: tuvz4p141zc1\n    test 191 encoded: True\n    test 192 encoded: tuvz4p141zc1\n    test 193 encoded: True\n    test 194 decoded: (27.988056, 86.925278)\n    test 195 decoded: (27.988056, 86.925278)\n    test 196 decoded: True\n    test 197 len: 1\n    test 198 len2: (1, 1)\n\n    7 of 198 testGeohash.py tests (3.5%) FAILED, incl. 2 KNOWN plus 5 DeprecationWarnings (pygeodesy 26.3.26 PyPy 7.3.17 Python 3.10.14 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 14.351 ms\nrunning /opt/local/bin/p....y3.10 -W default ~/PyGeodesy/test/testGeoids.py\n# lazily imported pygeodesy.basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.DeprecationWarnings from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isint from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isLazy from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.issubclassof from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.iterNumpy2over from .iters by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.LazyImportError from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.karney by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.NN from .interns by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.normDMS from .dms by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.pairs from .streprs by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.printf from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.property_RO from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.typename from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.fstr from .streprs by testGeoids.py line 17\n# lazily imported pygeodesy.len2 from .basics by testGeoids.py line 17\n# lazily imported pygeodesy.egmGeoidHeights from .geoids by testGeoids.py line 17\n# lazily imported pygeodesy.Fwelford from .fstats by testGeoids.py line 17\n# lazily imported pygeodesy.GeoidEGM96 from .geoids by testGeoids.py line 17\n# lazily imported pygeodesy.GeoidError from .geoids by testGeoids.py line 17\n# lazily imported pygeodesy.GeoidG2012B from .geoids by testGeoids.py line 17\n# lazily imported pygeodesy.GeoidKarney from .geoids by testGeoids.py line 17\n# lazily imported pygeodesy.GeoidPGM from .geoids by testGeoids.py line 17\n# lazily imported pygeodesy.LatLon_ from .points by testGeoids.py line 17\n# lazily imported pygeodesy.RangeError from .errors by testGeoids.py line 17\n# lazily imported pygeodesy.reprs from .streprs by testGeoids.py line 17\n\n    testing testGeoids.py 26.01.21 isLazy=3\n    test 1 GeoidKarney('egm96-5.pgm').height(-76.981, 34.17) kind 2: 11.422  FAILED, KNOWN, expected 11.423\n    test 2 GeoidKarney('egm96-5.pgm').height(79.695, 88.806) kind 2: 0.887  FAILED, KNOWN, expected 0.892\n    test 3 GeoidKarney('egm96-5.pgm').height(-15.245, 168.748) kind 2: 65.226\n    test 4 GeoidKarney('egm96-5.pgm').height(-19.379, 15.855) kind 2: 24.460  FAILED, KNOWN, expected 24.463\n    test 5 GeoidKarney('egm96-5.pgm').height(43.378, -130.552) kind 2: -29.682\n    test 6 GeoidKarney('egm96-5.pgm').height(-16.075, 21.795) kind 2: 10.503\n    test 7 GeoidKarney('egm96-5.pgm').height(-11.256, -73.75) kind 2: 29.325  FAILED, KNOWN, expected 29.326\n    test 8 GeoidKarney('egm96-5.pgm').height(69.017, -15.921) kind 2: 60.423  FAILED, KNOWN, expected 60.424\n    test 9 GeoidKarney('egm96-5.pgm').height(2.221, 139.739) kind 2: 68.997  FAILED, KNOWN, expected 68.996\n    test 10 GeoidKarney('egm96-5.pgm').height(-9.097, 119.142) kind 2: 36.295  FAILED, KNOWN, expected 36.287\n    test 11 GeoidKarney('egm96-5.pgm').height(-28.524, -22.192) kind 2: 6.627  FAILED, KNOWN, expected 6.626\n    test 12 GeoidKarney('egm96-5.pgm').height(12.272, -136.424) kind 2: -20.860\n    test 13 GeoidKarney('egm96-5.pgm').height(-15.203, -85.604) kind 2: -3.266  FAILED, KNOWN, expected -3.267\n    test 14 GeoidKarney('egm96-5.pgm').height(-63.736, -77.17) kind 2: -1.296  FAILED, KNOWN, expected -1.294\n    test 15 GeoidKarney('egm96-5.pgm').height(-48.771, -90.102) kind 2: -2.322\n    test 16 GeoidKarney('egm96-5.pgm').height(-0.179, -126.368) kind 2: -17.556  FAILED, KNOWN, expected -17.557\n    test 17 GeoidKarney('egm96-5.pgm').height(1.586, -128.887) kind 2: -16.594\n    test 18 GeoidKarney('egm96-5.pgm').height(-48.781, -2.684) kind 2: 24.455  FAILED, KNOWN, expected 24.453\n    test 19 GeoidKarney('egm96-5.pgm').height(-49.092, 136.862) kind 2: -18.591  FAILED, KNOWN, expected -18.592\n    test 20 GeoidKarney('egm96-5.pgm').height(47.732, 17.552) kind 2: 44.051  FAILED, KNOWN, expected 44.049\n    test 21 GeoidKarney('egm96-5.pgm').height(-49.11, 85.706) kind 2: 18.582  FAILED, KNOWN, expected 18.581\n    test 22 GeoidKarney('egm96-5.pgm').height(-49.162, 40.321) kind 2: 44.290  FAILED, KNOWN, expected 44.289\n    test 23 GeoidKarney('egm96-5.pgm').height(3.498, 158.118) kind 2: 49.821  FAILED, KNOWN, expected 49.816\n    test 24 GeoidKarney('egm96-5.pgm').height(-35.616, 122.648) kind 2: -36.108  FAILED, KNOWN, expected -36.114\n    test 25 GeoidKarney('egm96-5.pgm').height(56.598, -96.114) kind 2: -41.046  FAILED, KNOWN, expected -41.048\n    test 26 GeoidKarney('egm96-5.pgm').height(-31.85, 149.121) kind 2: 26.457  FAILED, KNOWN, expected 26.456\n    test 27 GeoidKarney('egm96-5.pgm').height(-26.569, -177.792) kind 2: 49.309  FAILED, KNOWN, expected 49.317\n    test 28 GeoidKarney('egm96-5.pgm').height(76.735, -65.753) kind 2: 20.706  FAILED, KNOWN, expected 20.714\n    test 29 GeoidKarney('egm96-5.pgm').height(-21.404, -122.268) kind 2: -7.363  FAILED, KNOWN, expected -7.362\n    test 30 GeoidKarney('egm96-5.pgm').height(-77.133, -65.474) kind 2: -16.499  FAILED, KNOWN, expected -16.492\n    test 31 GeoidKarney('egm96-5.pgm').height(-58.812, 2.276) kind 2: 18.108  FAILED, KNOWN, expected 18.110\n    test 32 GeoidKarney('egm96-5.pgm').height(4.415, 155.683) kind 2: 51.859  FAILED, KNOWN, expected 51.858\n    test 33 GeoidKarney('egm96-5.pgm').height(-28.146, 107.081) kind 2: -38.979  FAILED, KNOWN, expected -38.981\n    test 34 GeoidKarney('egm96-5.pgm').height(-10.551, -126.69) kind 2: -9.912  FAILED, KNOWN, expected -9.913\n    test 35 GeoidKarney('egm96-5.pgm').height(-25.444, -103.337) kind 2: -2.827  FAILED, KNOWN, expected -2.828\n    test 36 GeoidKarney('egm96-5.pgm').height(24.436, 46.159) kind 2: -5.719\n    test 37 GeoidKarney('egm96-5.pgm').height(-72.889, 37.107) kind 2: 22.420  FAILED, KNOWN, expected 22.426\n    test 38 GeoidKarney('egm96-5.pgm').height(-19.629, 13.245) kind 2: 24.546  FAILED, KNOWN, expected 24.545\n    test 39 GeoidKarney('egm96-5.pgm').height(-7.602, 171.265) kind 2: 40.651  FAILED, KNOWN, expected 40.652\n    test 40 GeoidKarney('egm96-5.pgm').height(-45.364, -1.876) kind 2: 22.380  FAILED, KNOWN, expected 22.383\n    test 41 GeoidKarney('egm96-5.pgm').height(-7.292, -69.18) kind 2: 22.185  FAILED, KNOWN, expected 22.182\n    test 42 GeoidKarney('egm96-5.pgm').height(-31.566, -166.689) kind 2: 14.927  FAILED, KNOWN, expected 14.930\n    test 43 GeoidKarney('egm96-5.pgm').height(-82.751, -162.085) kind 2: -47.093  FAILED, KNOWN, expected -47.094\n    test 44 GeoidKarney('egm96-5.pgm').height(-40.7, 99.466) kind 2: -18.421\n    test 45 GeoidKarney('egm96-5.pgm').height(48.676, 39.69) kind 2: 10.060  FAILED, KNOWN, expected 10.055\n    test 46 GeoidKarney('egm96-5.pgm').height(74.817, -78.404) kind 2: 5.784  FAILED, KNOWN, expected 5.786\n    test 47 GeoidKarney('egm96-5.pgm').height(-81.032, -63.865) kind 2: -22.840  FAILED, KNOWN, expected -22.838\n    test 48 GeoidKarney('egm96-5.pgm').height(74.022, 9.432) kind 2: 42.988  FAILED, KNOWN, expected 42.989\n    test 49 GeoidKarney('egm96-5.pgm').height(-75.071, 17.579) kind 2: 15.351  FAILED, KNOWN, expected 15.353\n    test 50 GeoidKarney('egm96-5.pgm').height(-12.546, -54.851) kind 2: -6.341  FAILED, KNOWN, expected -6.337\n    test 51 GeoidKarney('egm96-5.pgm').height(-13.621, 42.408) kind 2: -25.551  FAILED, KNOWN, expected -25.555\n    test 52 GeoidKarney('egm96-5.pgm').height(-2.266, -91.951) kind 2: -9.921  FAILED, KNOWN, expected -9.923\n    test 53 GeoidKarney('egm96-5.pgm').height(-18.672, 42.547) kind 2: -10.861  FAILED, KNOWN, expected -10.852\n    test 54 GeoidKarney('egm96-5.pgm').height(-41.44, 157.413) kind 2: -0.136  FAILED, KNOWN, expected -0.135\n    test 55 GeoidKarney('egm96-5.pgm').height(53.686, -79.375) kind 2: -43.808  FAILED, KNOWN, expected -43.809\n    test 56 GeoidKarney('egm96-5.pgm').height(39.26, -30.351) kind 2: 57.151  FAILED, KNOWN, expected 57.150\n    test 57 GeoidKarney('egm96-5.pgm').height(-51.699, -141.493) kind 2: -17.660  FAILED, KNOWN, expected -17.657\n    test 58 GeoidKarney('egm96-5.pgm').height(36.585, 4.515) kind 2: 46.356  FAILED, KNOWN, expected 46.358\n    test 59 GeoidKarney('egm96-5.pgm').height(39.642, -54.659) kind 2: -14.404\n    test 60 GeoidKarney('egm96-5.pgm').height(59.761, 166.567) kind 2: 11.239  FAILED, KNOWN, expected 11.242\n    test 61 GeoidKarney('egm96-5.pgm').height(51.83, 13.357) kind 2: 42.236  FAILED, KNOWN, expected 42.237\n    test 62 GeoidKarney('egm96-5.pgm').height(-36.531, -175.431) kind 2: 22.148  FAILED, KNOWN, expected 22.147\n    test 63 GeoidKarney('egm96-5.pgm').height(-37.08, 125.264) kind 2: -33.395  FAILED, KNOWN, expected -33.396\n    test 64 GeoidKarney('egm96-5.pgm').height(-68.651, 92.732) kind 2: 7.965  FAILED, KNOWN, expected 7.961\n    test 65 GeoidKarney('egm96-5.pgm').height(35.087, 45.336) kind 2: 7.228  FAILED, KNOWN, expected 7.229\n    test 66 GeoidKarney('egm96-5.pgm').height(-61.356, -169.379) kind 2: -44.289  FAILED, KNOWN, expected -44.292\n    test 67 GeoidKarney('egm96-5.pgm').height(-36.955, 179.12) kind 2: 21.872  FAILED, KNOWN, expected 21.875\n    test 68 GeoidKarney('egm96-5.pgm').height(10.248, -6.714) kind 2: 28.935  FAILED, KNOWN, expected 28.933\n    test 69 GeoidKarney('egm96-5.pgm').height(36.868, 84.602) kind 2: -41.255  FAILED, KNOWN, expected -41.238\n    test 70 GeoidKarney('egm96-5.pgm').height(28.637, 88.933) kind 2: -31.334  FAILED, KNOWN, expected -31.331\n    test 71 GeoidKarney('egm96-5.pgm').height(54.811, -99.968) kind 2: -32.702\n    test 72 GeoidKarney('egm96-5.pgm').height(7.611, 145.911) kind 2: 60.118  FAILED, KNOWN, expected 60.117\n    test 73 GeoidKarney('egm96-5.pgm').height(59.412, 170.102) kind 2: 6.456  FAILED, KNOWN, expected 6.457\n    test 74 GeoidKarney('egm96-5.pgm').height(-61.469, 126.144) kind 2: -31.959  FAILED, KNOWN, expected -31.961\n    test 75 GeoidKarney('egm96-5.pgm').height(18.514, -137.083) kind 2: -26.572  FAILED, KNOWN, expected -26.571\n    test 76 GeoidKarney('egm96-5.pgm').height(7.854, -126.799) kind 2: -29.761  FAILED, KNOWN, expected -29.760\n    test 77 GeoidKarney('egm96-5.pgm').height(47.489, 134.183) kind 2: 21.980\n    test 78 GeoidKarney('egm96-5.pgm').height(-34.144, -11.922) kind 2: 16.849\n    test 79 GeoidKarney('egm96-5.pgm').height(-58.389, 117.458) kind 2: -20.922  FAILED, KNOWN, expected -20.923\n    test 80 GeoidKarney('egm96-5.pgm').height(9.773, 95.846) kind 2: -42.745  FAILED, KNOWN, expected -42.749\n    test 81 GeoidKarney('egm96-5.pgm').height(-53.12, 136.994) kind 2: -21.839  FAILED, KNOWN, expected -21.841\n    test 82 GeoidKarney('egm96-5.pgm').height(-50.35, 0.075) kind 2: 25.482\n    test 83 GeoidKarney('egm96-5.pgm').height(31.438, -170.879) kind 2: -8.845  FAILED, KNOWN, expected -8.847\n    test 84 GeoidKarney('egm96-5.pgm').height(37.541, -153.024) kind 2: -19.600  FAILED, KNOWN, expected -19.604\n    test 85 GeoidKarney('egm96-5.pgm').height(27.586, 2.444) kind 2: 25.672  FAILED, KNOWN, expected 25.668\n    test 86 GeoidKarney('egm96-5.pgm').height(-26.139, -106.201) kind 2: -3.772\n    test 87 GeoidKarney('egm96-5.pgm').height(-33.426, -14.84) kind 2: 17.747  FAILED, KNOWN, expected 17.748\n    test 88 GeoidKarney('egm96-5.pgm').height(39.586, -153.019) kind 2: -17.838  FAILED, KNOWN, expected -17.839\n    test 89 GeoidKarney('egm96-5.pgm').height(-60.79, -2.578) kind 2: 14.293  FAILED, KNOWN, expected 14.292\n    test 90 GeoidKarney('egm96-5.pgm').height(-20.131, 21.975) kind 2: 16.529\n    test 91 GeoidKarney('egm96-5.pgm').height(75.649, 99.921) kind 2: -8.230  FAILED, KNOWN, expected -8.229\n    test 92 GeoidKarney('egm96-5.pgm').height(-0.385, -23.788) kind 2: 9.828  FAILED, KNOWN, expected 9.830\n    test 93 GeoidKarney('egm96-5.pgm').height(-51.56, -50.327) kind 2: 6.213  FAILED, KNOWN, expected 6.215\n    test 94 GeoidKarney('egm96-5.pgm').height(-43.129, -167.271) kind 2: -2.957  FAILED, KNOWN, expected -2.960\n    test 95 GeoidKarney('egm96-5.pgm').height(46.374, 71.948) kind 2: -42.326  FAILED, KNOWN, expected -42.323\n    test 96 GeoidKarney('egm96-5.pgm').height(-22.783, 140.657) kind 2: 38.352  FAILED, KNOWN, expected 38.356\n    test 97 GeoidKarney('egm96-5.pgm').height(-12.056, 122.804) kind 2: 34.242  FAILED, KNOWN, expected 34.259\n    test 98 GeoidKarney('egm96-5.pgm').height(30.127, 94.738) kind 2: -37.390  FAILED, KNOWN, expected -37.397\n    test 99 GeoidKarney('egm96-5.pgm').height(46.296, -174.479) kind 2: -2.015  FAILED, KNOWN, expected -2.016\n    test 100 GeoidKarney('egm96-5.pgm').height(34.99, 15.052) kind 2: 33.915  FAILED, KNOWN, expected 33.912\n    test 101 GeoidKarney('egm96-5.pgm').height(-51.287, 90.565) kind 2: 12.676\n    test 102 GeoidKarney('egm96-5.pgm').height(34.217, 141.302) kind 2: 15.729  FAILED, KNOWN, expected 15.692\n    test 103 GeoidKarney('egm96-5.pgm').height(-40.423, -142.787) kind 2: -11.117\n    test 104 GeoidKarney('egm96-5.pgm').height(-17.854, -170.216) kind 2: 27.443  FAILED, KNOWN, expected 27.437\n    test 105 GeoidKarney('egm96-5.pgm').height(47.803, 112.701) kind 2: -23.893  FAILED, KNOWN, expected -23.894\n    test 106 GeoidKarney('egm96-5.pgm').height(-23.276, 133.454) kind 2: 18.749  FAILED, KNOWN, expected 18.766\n    test 107 GeoidKarney('egm96-5.pgm').height(-26.884, -36.571) kind 2: -7.452\n    test 108 GeoidKarney('egm96-5.pgm').height(-37.106, 31.128) kind 2: 30.141  FAILED, KNOWN, expected 30.143\n    test 109 GeoidKarney('egm96-5.pgm').height(-75.363, -173.674) kind 2: -61.176  FAILED, KNOWN, expected -61.172\n    test 110 GeoidKarney('egm96-5.pgm').height(-18.305, 69.016) kind 2: -24.892  FAILED, KNOWN, expected -24.890\n    test 111 GeoidKarney('egm96-5.pgm').height(39.527, 23.58) kind 2: 39.523  FAILED, KNOWN, expected 39.519\n    test 112 GeoidKarney('egm96-5.pgm').height(68.903, 30.97) kind 2: 19.417  FAILED, KNOWN, expected 19.419\n    test 113 GeoidKarney('egm96-5.pgm').height(53.937, 168.318) kind 2: 2.069\n    test 114 GeoidKarney('egm96-5.pgm').height(-38.6, 64.812) kind 2: 25.048\n    test 115 GeoidKarney('egm96-5.pgm').height(-41.396, -69.739) kind 2: 22.547\n    test 116 GeoidKarney('egm96-5.pgm').height(50.158, 72.319) kind 2: -34.359\n    test 117 GeoidKarney('egm96-5.pgm').height(27.692, 176.153) kind 2: -5.454  FAILED, KNOWN, expected -5.453\n    test 118 GeoidKarney('egm96-5.pgm').height(-48.419, 170.454) kind 2: -6.802  FAILED, KNOWN, expected -6.804\n    test 119 GeoidKarney('egm96-5.pgm').height(-65.346, -124.976) kind 2: -35.053  FAILED, KNOWN, expected -35.054\n    test 120 GeoidKarney('egm96-5.pgm').height(-51.873, 167.266) kind 2: -15.417  FAILED, KNOWN, expected -15.418\n    test 121 GeoidKarney('egm96-5.pgm').height(-7.263, 84.308) kind 2: -79.556  FAILED, KNOWN, expected -79.557\n    test 122 GeoidKarney('egm96-5.pgm').height(-1.461, -105.458) kind 2: -16.894\n    test 123 GeoidKarney('egm96-5.pgm').height(7.684, 161.873) kind 2: 36.213  FAILED, KNOWN, expected 36.215\n    test 124 GeoidKarney('egm96-5.pgm').height(-31.475, -158.52) kind 2: 3.524  FAILED, KNOWN, expected 3.523\n    test 125 GeoidKarney('egm96-5.pgm').height(-36.187, 62.917) kind 2: 23.796  FAILED, KNOWN, expected 23.797\n    test 126 GeoidKarney('egm96-5.pgm').height(16.003, 141.687) kind 2: 51.587  FAILED, KNOWN, expected 51.586\n    test 127 GeoidKarney('egm96-5.pgm').height(30.182, 86.261) kind 2: -30.131\n    test 128 GeoidKarney('egm96-5.pgm').height(-77.304, 159.498) kind 2: -51.853  FAILED, KNOWN, expected -51.848\n    test 129 GeoidKarney('egm96-5.pgm').height(39.536, 139.795) kind 2: 37.200  FAILED, KNOWN, expected 37.192\n    test 130 GeoidKarney('egm96-5.pgm').height(8.569, 134.618) kind 2: 63.583  FAILED, KNOWN, expected 63.597\n    test 131 GeoidKarney('egm96-5.pgm').height(14.473, 90.596) kind 2: -62.636\n    test 132 GeoidKarney('egm96-5.pgm').height(-13.138, -99.589) kind 2: -8.717\n    test 133 GeoidKarney('egm96-5.pgm').height(34.212, -26.307) kind 2: 40.649  FAILED, KNOWN, expected 40.645\n    test 134 GeoidKarney('egm96-5.pgm').height(21.89, 76.371) kind 2: -60.730  FAILED, KNOWN, expected -60.729\n    test 135 GeoidKarney('egm96-5.pgm').height(29.793, 120.487) kind 2: 8.784  FAILED, KNOWN, expected 8.783\n    test 136 GeoidKarney('egm96-5.pgm').height(15.724, 122.714) kind 2: 31.569  FAILED, KNOWN, expected 31.523\n    test 137 GeoidKarney('egm96-5.pgm').height(-66.208, -78.499) kind 2: -6.249  FAILED, KNOWN, expected -6.250\n    test 138 GeoidKarney('egm96-5.pgm').height(-39.507, 55.809) kind 2: 32.599\n    test 139 GeoidKarney('egm96-5.pgm').height(28.159, 51.476) kind 2: -24.531  FAILED, KNOWN, expected -24.536\n    test 140 GeoidKarney('egm96-5.pgm').height(-36.207, 120.205) kind 2: -38.863  FAILED, KNOWN, expected -38.869\n    test 141 GeoidKarney('egm96-5.pgm').height(30.575, -99.998) kind 2: -23.214  FAILED, KNOWN, expected -23.213\n    test 142 GeoidKarney('egm96-5.pgm').height(-16.993, 37.136) kind 2: -11.824\n    test 143 GeoidKarney('egm96-5.pgm').height(-11.477, 12.039) kind 2: 16.712  FAILED, KNOWN, expected 16.709\n    test 144 GeoidKarney('egm96-5.pgm').height(30.428, -144.765) kind 2: -22.380  FAILED, KNOWN, expected -22.379\n    test 145 GeoidKarney('egm96-5.pgm').height(-17.44, -92.424) kind 2: -4.941\n    test 146 GeoidKarney('egm96-5.pgm').height(40.203, 143.43) kind 2: 19.382  FAILED, KNOWN, expected 19.394\n    test 147 GeoidKarney('egm96-5.pgm').height(-37.098, -106.574) kind 2: -9.381\n    test 148 GeoidKarney('egm96-5.pgm').height(54.62, -68.413) kind 2: -23.319\n    test 149 GeoidKarney('egm96-5.pgm').height(-31.633, 148.182) kind 2: 24.470  FAILED, KNOWN, expected 24.468\n    test 150 GeoidKarney('egm96-5.pgm').height(-56.07, -141.407) kind 2: -21.762  FAILED, KNOWN, expected -21.761\n    test 151 GeoidKarney('egm96-5.pgm').height(-8.195, -52.691) kind 2: -18.798\n    test 152 GeoidKarney('egm96-5.pgm').height(17.851, 24.749) kind 2: 12.611  FAILED, KNOWN, expected 12.612\n    test 153 GeoidKarney('egm96-5.pgm').height(0.349, -108.333) kind 2: -19.708  FAILED, KNOWN, expected -19.706\n    test 154 GeoidKarney('egm96-5.pgm').height(15.038, 126.191) kind 2: 45.794  FAILED, KNOWN, expected 45.792\n    test 155 GeoidKarney('egm96-5.pgm').height(-21.111, -123.696) kind 2: -8.408  FAILED, KNOWN, expected -8.406\n    test 156 GeoidKarney('egm96-5.pgm').height(30.947, 173.002) kind 2: -8.366  FAILED, KNOWN, expected -8.367\n    test 157 GeoidKarney('egm96-5.pgm').height(-10.698, -144.091) kind 2: -2.026  FAILED, KNOWN, expected -2.025\n    test 158 GeoidKarney('egm96-5.pgm').height(-29.412, 124.753) kind 2: -16.569\n    test 159 GeoidKarney('egm96-5.pgm').height(38.224, -137.189) kind 2: -35.434  FAILED, KNOWN, expected -35.435\n    test 160 GeoidKarney('egm96-5.pgm').height(36.064, -132.409) kind 2: -39.009\n    test 161 GeoidKarney('egm96-5.pgm').height(29.975, 178.076) kind 2: -6.921\n    test 162 GeoidKarney('egm96-5.pgm').height(-21.346, 169.26) kind 2: 50.811  FAILED, KNOWN, expected 50.795\n    test 163 GeoidKarney('egm96-5.pgm').height(49.282, -152.934) kind 2: 1.069  FAILED, KNOWN, expected 1.070\n    test 164 GeoidKarney('egm96-5.pgm').height(16.349, -99.962) kind 2: -14.198  FAILED, KNOWN, expected -14.214\n    test 165 GeoidKarney('egm96-5.pgm').height(-14.293, -167.34) kind 2: 17.603  FAILED, KNOWN, expected 17.600\n    test 166 GeoidKarney('egm96-5.pgm').height(47.166, -38.523) kind 2: 44.803  FAILED, KNOWN, expected 44.804\n    test 167 GeoidKarney('egm96-5.pgm').height(-58.911, 114.347) kind 2: -17.924  FAILED, KNOWN, expected -17.922\n    test 168 GeoidKarney('egm96-5.pgm').height(-9.055, 111.294) kind 2: 10.681  FAILED, KNOWN, expected 10.662\n    test 169 GeoidKarney('egm96-5.pgm').height(18.391, 29.692) kind 2: 7.672  FAILED, KNOWN, expected 7.670\n    test 170 GeoidKarney('egm96-5.pgm').height(-15.074, 22.153) kind 2: 8.622  FAILED, KNOWN, expected 8.623\n    test 171 GeoidKarney('egm96-5.pgm').height(-4.235, 62.001) kind 2: -60.723\n    test 172 GeoidKarney('egm96-5.pgm').height(15.171, -86.583) kind 2: 3.818\n    test 173 GeoidKarney('egm96-5.pgm').height(79.254, 112.116) kind 2: -1.870  FAILED, KNOWN, expected -1.871\n    test 174 GeoidKarney('egm96-5.pgm').height(15.947, 156.093) kind 2: 30.642  FAILED, KNOWN, expected 30.633\n    test 175 GeoidKarney('egm96-5.pgm').height(68.371, -177.382) kind 2: 2.801\n    test 176 GeoidKarney('egm96-5.pgm').height(-41.931, -72.093) kind 2: 19.858  FAILED, KNOWN, expected 19.859\n    test 177 GeoidKarney('egm96-5.pgm').height(-1.193, -143.133) kind 2: 5.347  FAILED, KNOWN, expected 5.348\n    test 178 GeoidKarney('egm96-5.pgm').height(-37.006, 154.513) kind 2: 9.940  FAILED, KNOWN, expected 9.941\n    test 179 GeoidKarney('egm96-5.pgm').height(-22.148, 9.938) kind 2: 22.322  FAILED, KNOWN, expected 22.321\n    test 180 GeoidKarney('egm96-5.pgm').height(24.329, 109.044) kind 2: -24.136  FAILED, KNOWN, expected -24.135\n    test 181 GeoidKarney('egm96-5.pgm').height(-54.878, 114.691) kind 2: -17.680  FAILED, KNOWN, expected -17.679\n    test 182 GeoidKarney('egm96-5.pgm').height(45.601, -80.458) kind 2: -37.149  FAILED, KNOWN, expected -37.150\n    test 183 GeoidKarney('egm96-5.pgm').height(2.372, 58.974) kind 2: -61.158\n    test 184 GeoidKarney('egm96-5.pgm').height(15.937, 165.854) kind 2: 20.600  FAILED, KNOWN, expected 20.602\n    test 185 GeoidKarney('egm96-5.pgm').height(4.889, -24.213) kind 2: 13.054  FAILED, KNOWN, expected 13.055\n    test 186 GeoidKarney('egm96-5.pgm').height(-11.392, 179.558) kind 2: 40.138  FAILED, KNOWN, expected 40.132\n    test 187 GeoidKarney('egm96-5.pgm').height(58.246, 4.862) kind 2: 43.263\n    test 188 GeoidKarney('egm96-5.pgm').height(34.302, -109.109) kind 2: -23.129  FAILED, KNOWN, expected -23.126\n    test 189 GeoidKarney('egm96-5.pgm').height(-58.196, 117.306) kind 2: -20.677  FAILED, KNOWN, expected -20.678\n    test 190 GeoidKarney('egm96-5.pgm').height(44.5, 173.769) kind 2: -8.531  FAILED, KNOWN, expected -8.529\n    test 191 GeoidKarney('egm96-5.pgm').height(-28.863, -139.775) kind 2: -8.669  FAILED, KNOWN, expected -8.666\n    test 192 GeoidKarney('egm96-5.pgm').height(19.507, -96.099) kind 2: -12.798  FAILED, KNOWN, expected -12.796\n    test 193 GeoidKarney('egm96-5.pgm').height(-42.488, -73.907) kind 2: 15.770  FAILED, KNOWN, expected 15.773\n    test 194 GeoidKarney('egm96-5.pgm').height(46.138, -141.429) kind 2: -19.955  FAILED, KNOWN, expected -19.954\n    test 195 GeoidKarney('egm96-5.pgm').height(60.507, 93.743) kind 2: -31.479  FAILED, KNOWN, expected -31.480\n    test 196 GeoidKarney('egm96-5.pgm').height(26.219, -145.434) kind 2: -17.428  FAILED, KNOWN, expected -17.429\n    test 197 GeoidKarney('egm96-5.pgm').height(-28.687, 3.37) kind 2: 24.037\n    test 198 GeoidKarney('egm96-5.pgm').height(-15.008, 117.45) kind 2: 4.522  FAILED, KNOWN, expected 4.520\n    test 199 GeoidKarney('egm96-5.pgm').height(40.71, 144.095) kind 2: 11.403  FAILED, KNOWN, expected 11.394\n    test 200 GeoidKarney('egm96-5.pgm').height(20.823, -173.611) kind 2: 5.676  FAILED, KNOWN, expected 5.679\n    test 201 GeoidKarney('egm96-5.pgm').height(16.776, -3.009) kind 2: 28.705  FAILED, KNOWN, expected 28.707\n    test 202 GeoidKarney('egm96-5.pgm').height(41.0, -95.0) kind 2: -30.261  FAILED, KNOWN, expected -30.262\n    test 203 GeoidKarney('egm96-5.pgm').height(49.0, -120.5) kind 2: -15.984\n    test 204 GeoidKarney('egm96-5.pgm').height(49.0, -103.5) kind 2: -18.636  FAILED, KNOWN, expected -18.635\n    test 205 GeoidKarney('egm96-5.pgm').height(49.0, -86.5) kind 2: -37.749\n    test 206 GeoidKarney('egm96-5.pgm').height(49.0, -69.5) kind 2: -26.691\n    test 207 GeoidKarney('egm96-5.pgm').height(33.0, -120.5) kind 2: -39.561\n    test 208 GeoidKarney('egm96-5.pgm').height(33.0, -103.5) kind 2: -22.563  FAILED, KNOWN, expected -22.562\n    test 209 GeoidKarney('egm96-5.pgm').height(33.0, -86.5) kind 2: -30.012\n    test 210 GeoidKarney('egm96-5.pgm').height(33.0, -69.5) kind 2: -48.039\n\n    test 211 GeoidKarney('egm96-5.pgm').height() kind 2, hits 0, eps max (in 0 FAILED): 0.046496\n    test 212 GeoidKarney('egm96-5.pgm').height() kind 2, hits 0, eps mean (of 210 total): 0.002766\n    test 213 GeoidKarney('egm96-5.pgm').height() kind 2, hits 0, eps stdev (of 210 total): 0.005116\n    test 214 GeoidKarney('egm96-5.pgm').toStr: GeoidKarney('egm96-5.pgm'): lowerleft(-90.0, -180.0, -29.535), upperright(90.0, 180.0, 13.605), center(0.0, 0.0, 17.163), highest(-8.167, 147.25, 85.422), lowest(4.667, 78.833, -107.043)\n\n    test 215 closed: True\n    test 216 copy(<class 'type'>): (<class 'pygeodesy.geoids.GeoidKarney'>, True)\n    test 217 GeoidKarney.copy(): (<class 'pygeodesy.geoids.GeoidKarney'>, True)\n    test 218 GeoidKarney('egm96-5.pgm').height(-76.981, 34.17) kind 3: 11.424  FAILED, KNOWN, expected 11.423\n    test 219 GeoidKarney('egm96-5.pgm').height(79.695, 88.806) kind 3: 0.892\n    test 220 GeoidKarney('egm96-5.pgm').height(-15.245, 168.748) kind 3: 65.225  FAILED, KNOWN, expected 65.226\n    test 221 GeoidKarney('egm96-5.pgm').height(-19.379, 15.855) kind 3: 24.464  FAILED, KNOWN, expected 24.463\n    test 222 GeoidKarney('egm96-5.pgm').height(43.378, -130.552) kind 3: -29.682\n    test 223 GeoidKarney('egm96-5.pgm').height(-16.075, 21.795) kind 3: 10.503\n    test 224 GeoidKarney('egm96-5.pgm').height(-11.256, -73.75) kind 3: 29.325  FAILED, KNOWN, expected 29.326\n    test 225 GeoidKarney('egm96-5.pgm').height(69.017, -15.921) kind 3: 60.423  FAILED, KNOWN, expected 60.424\n    test 226 GeoidKarney('egm96-5.pgm').height(2.221, 139.739) kind 3: 68.996\n    test 227 GeoidKarney('egm96-5.pgm').height(-9.097, 119.142) kind 3: 36.287\n    test 228 GeoidKarney('egm96-5.pgm').height(-28.524, -22.192) kind 3: 6.626\n    test 229 GeoidKarney('egm96-5.pgm').height(12.272, -136.424) kind 3: -20.861  FAILED, KNOWN, expected -20.860\n    test 230 GeoidKarney('egm96-5.pgm').height(-15.203, -85.604) kind 3: -3.267\n    test 231 GeoidKarney('egm96-5.pgm').height(-63.736, -77.17) kind 3: -1.295  FAILED, KNOWN, expected -1.294\n    test 232 GeoidKarney('egm96-5.pgm').height(-48.771, -90.102) kind 3: -2.323  FAILED, KNOWN, expected -2.322\n    test 233 GeoidKarney('egm96-5.pgm').height(-0.179, -126.368) kind 3: -17.555  FAILED, KNOWN, expected -17.557\n    test 234 GeoidKarney('egm96-5.pgm').height(1.586, -128.887) kind 3: -16.594\n    test 235 GeoidKarney('egm96-5.pgm').height(-48.781, -2.684) kind 3: 24.454  FAILED, KNOWN, expected 24.453\n    test 236 GeoidKarney('egm96-5.pgm').height(-49.092, 136.862) kind 3: -18.592\n    test 237 GeoidKarney('egm96-5.pgm').height(47.732, 17.552) kind 3: 44.048  FAILED, KNOWN, expected 44.049\n    test 238 GeoidKarney('egm96-5.pgm').height(-49.11, 85.706) kind 3: 18.582  FAILED, KNOWN, expected 18.581\n    test 239 GeoidKarney('egm96-5.pgm').height(-49.162, 40.321) kind 3: 44.290  FAILED, KNOWN, expected 44.289\n    test 240 GeoidKarney('egm96-5.pgm').height(3.498, 158.118) kind 3: 49.817  FAILED, KNOWN, expected 49.816\n    test 241 GeoidKarney('egm96-5.pgm').height(-35.616, 122.648) kind 3: -36.114\n    test 242 GeoidKarney('egm96-5.pgm').height(56.598, -96.114) kind 3: -41.047  FAILED, KNOWN, expected -41.048\n    test 243 GeoidKarney('egm96-5.pgm').height(-31.85, 149.121) kind 3: 26.456\n    test 244 GeoidKarney('egm96-5.pgm').height(-26.569, -177.792) kind 3: 49.317\n    test 245 GeoidKarney('egm96-5.pgm').height(76.735, -65.753) kind 3: 20.714\n    test 246 GeoidKarney('egm96-5.pgm').height(-21.404, -122.268) kind 3: -7.362\n    test 247 GeoidKarney('egm96-5.pgm').height(-77.133, -65.474) kind 3: -16.491  FAILED, KNOWN, expected -16.492\n    test 248 GeoidKarney('egm96-5.pgm').height(-58.812, 2.276) kind 3: 18.110\n    test 249 GeoidKarney('egm96-5.pgm').height(4.415, 155.683) kind 3: 51.858\n    test 250 GeoidKarney('egm96-5.pgm').height(-28.146, 107.081) kind 3: -38.979  FAILED, KNOWN, expected -38.981\n    test 251 GeoidKarney('egm96-5.pgm').height(-10.551, -126.69) kind 3: -9.913\n    test 252 GeoidKarney('egm96-5.pgm').height(-25.444, -103.337) kind 3: -2.828\n    test 253 GeoidKarney('egm96-5.pgm').height(24.436, 46.159) kind 3: -5.718  FAILED, KNOWN, expected -5.719\n    test 254 GeoidKarney('egm96-5.pgm').height(-72.889, 37.107) kind 3: 22.427  FAILED, KNOWN, expected 22.426\n    test 255 GeoidKarney('egm96-5.pgm').height(-19.629, 13.245) kind 3: 24.545\n    test 256 GeoidKarney('egm96-5.pgm').height(-7.602, 171.265) kind 3: 40.651  FAILED, KNOWN, expected 40.652\n    test 257 GeoidKarney('egm96-5.pgm').height(-45.364, -1.876) kind 3: 22.383\n    test 258 GeoidKarney('egm96-5.pgm').height(-7.292, -69.18) kind 3: 22.183  FAILED, KNOWN, expected 22.182\n    test 259 GeoidKarney('egm96-5.pgm').height(-31.566, -166.689) kind 3: 14.929  FAILED, KNOWN, expected 14.930\n    test 260 GeoidKarney('egm96-5.pgm').height(-82.751, -162.085) kind 3: -47.094\n    test 261 GeoidKarney('egm96-5.pgm').height(-40.7, 99.466) kind 3: -18.421\n    test 262 GeoidKarney('egm96-5.pgm').height(48.676, 39.69) kind 3: 10.055\n    test 263 GeoidKarney('egm96-5.pgm').height(74.817, -78.404) kind 3: 5.786\n    test 264 GeoidKarney('egm96-5.pgm').height(-81.032, -63.865) kind 3: -22.838\n    test 265 GeoidKarney('egm96-5.pgm').height(74.022, 9.432) kind 3: 42.989\n    test 266 GeoidKarney('egm96-5.pgm').height(-75.071, 17.579) kind 3: 15.352  FAILED, KNOWN, expected 15.353\n    test 267 GeoidKarney('egm96-5.pgm').height(-12.546, -54.851) kind 3: -6.338  FAILED, KNOWN, expected -6.337\n    test 268 GeoidKarney('egm96-5.pgm').height(-13.621, 42.408) kind 3: -25.554  FAILED, KNOWN, expected -25.555\n    test 269 GeoidKarney('egm96-5.pgm').height(-2.266, -91.951) kind 3: -9.922  FAILED, KNOWN, expected -9.923\n    test 270 GeoidKarney('egm96-5.pgm').height(-18.672, 42.547) kind 3: -10.853  FAILED, KNOWN, expected -10.852\n    test 271 GeoidKarney('egm96-5.pgm').height(-41.44, 157.413) kind 3: -0.135\n    test 272 GeoidKarney('egm96-5.pgm').height(53.686, -79.375) kind 3: -43.809\n    test 273 GeoidKarney('egm96-5.pgm').height(39.26, -30.351) kind 3: 57.150\n    test 274 GeoidKarney('egm96-5.pgm').height(-51.699, -141.493) kind 3: -17.656  FAILED, KNOWN, expected -17.657\n    test 275 GeoidKarney('egm96-5.pgm').height(36.585, 4.515) kind 3: 46.359  FAILED, KNOWN, expected 46.358\n    test 276 GeoidKarney('egm96-5.pgm').height(39.642, -54.659) kind 3: -14.404\n    test 277 GeoidKarney('egm96-5.pgm').height(59.761, 166.567) kind 3: 11.242\n    test 278 GeoidKarney('egm96-5.pgm').height(51.83, 13.357) kind 3: 42.237\n    test 279 GeoidKarney('egm96-5.pgm').height(-36.531, -175.431) kind 3: 22.147\n    test 280 GeoidKarney('egm96-5.pgm').height(-37.08, 125.264) kind 3: -33.396\n    test 281 GeoidKarney('egm96-5.pgm').height(-68.651, 92.732) kind 3: 7.961\n    test 282 GeoidKarney('egm96-5.pgm').height(35.087, 45.336) kind 3: 7.228  FAILED, KNOWN, expected 7.229\n    test 283 GeoidKarney('egm96-5.pgm').height(-61.356, -169.379) kind 3: -44.290  FAILED, KNOWN, expected -44.292\n    test 284 GeoidKarney('egm96-5.pgm').height(-36.955, 179.12) kind 3: 21.874  FAILED, KNOWN, expected 21.875\n    test 285 GeoidKarney('egm96-5.pgm').height(10.248, -6.714) kind 3: 28.933\n    test 286 GeoidKarney('egm96-5.pgm').height(36.868, 84.602) kind 3: -41.238\n    test 287 GeoidKarney('egm96-5.pgm').height(28.637, 88.933) kind 3: -31.331\n    test 288 GeoidKarney('egm96-5.pgm').height(54.811, -99.968) kind 3: -32.702\n    test 289 GeoidKarney('egm96-5.pgm').height(7.611, 145.911) kind 3: 60.117\n    test 290 GeoidKarney('egm96-5.pgm').height(59.412, 170.102) kind 3: 6.457\n    test 291 GeoidKarney('egm96-5.pgm').height(-61.469, 126.144) kind 3: -31.961\n    test 292 GeoidKarney('egm96-5.pgm').height(18.514, -137.083) kind 3: -26.572  FAILED, KNOWN, expected -26.571\n    test 293 GeoidKarney('egm96-5.pgm').height(7.854, -126.799) kind 3: -29.761  FAILED, KNOWN, expected -29.760\n    test 294 GeoidKarney('egm96-5.pgm').height(47.489, 134.183) kind 3: 21.981  FAILED, KNOWN, expected 21.980\n    test 295 GeoidKarney('egm96-5.pgm').height(-34.144, -11.922) kind 3: 16.849\n    test 296 GeoidKarney('egm96-5.pgm').height(-58.389, 117.458) kind 3: -20.923\n    test 297 GeoidKarney('egm96-5.pgm').height(9.773, 95.846) kind 3: -42.749\n    test 298 GeoidKarney('egm96-5.pgm').height(-53.12, 136.994) kind 3: -21.840  FAILED, KNOWN, expected -21.841\n    test 299 GeoidKarney('egm96-5.pgm').height(-50.35, 0.075) kind 3: 25.481  FAILED, KNOWN, expected 25.482\n    test 300 GeoidKarney('egm96-5.pgm').height(31.438, -170.879) kind 3: -8.846  FAILED, KNOWN, expected -8.847\n    test 301 GeoidKarney('egm96-5.pgm').height(37.541, -153.024) kind 3: -19.603  FAILED, KNOWN, expected -19.604\n    test 302 GeoidKarney('egm96-5.pgm').height(27.586, 2.444) kind 3: 25.668\n    test 303 GeoidKarney('egm96-5.pgm').height(-26.139, -106.201) kind 3: -3.772\n    test 304 GeoidKarney('egm96-5.pgm').height(-33.426, -14.84) kind 3: 17.747  FAILED, KNOWN, expected 17.748\n    test 305 GeoidKarney('egm96-5.pgm').height(39.586, -153.019) kind 3: -17.838  FAILED, KNOWN, expected -17.839\n    test 306 GeoidKarney('egm96-5.pgm').height(-60.79, -2.578) kind 3: 14.292\n    test 307 GeoidKarney('egm96-5.pgm').height(-20.131, 21.975) kind 3: 16.529\n    test 308 GeoidKarney('egm96-5.pgm').height(75.649, 99.921) kind 3: -8.230  FAILED, KNOWN, expected -8.229\n    test 309 GeoidKarney('egm96-5.pgm').height(-0.385, -23.788) kind 3: 9.831  FAILED, KNOWN, expected 9.830\n    test 310 GeoidKarney('egm96-5.pgm').height(-51.56, -50.327) kind 3: 6.215\n    test 311 GeoidKarney('egm96-5.pgm').height(-43.129, -167.271) kind 3: -2.960\n    test 312 GeoidKarney('egm96-5.pgm').height(46.374, 71.948) kind 3: -42.323\n    test 313 GeoidKarney('egm96-5.pgm').height(-22.783, 140.657) kind 3: 38.356\n    test 314 GeoidKarney('egm96-5.pgm').height(-12.056, 122.804) kind 3: 34.259\n    test 315 GeoidKarney('egm96-5.pgm').height(30.127, 94.738) kind 3: -37.397\n    test 316 GeoidKarney('egm96-5.pgm').height(46.296, -174.479) kind 3: -2.017  FAILED, KNOWN, expected -2.016\n    test 317 GeoidKarney('egm96-5.pgm').height(34.99, 15.052) kind 3: 33.912\n    test 318 GeoidKarney('egm96-5.pgm').height(-51.287, 90.565) kind 3: 12.676\n    test 319 GeoidKarney('egm96-5.pgm').height(34.217, 141.302) kind 3: 15.692\n    test 320 GeoidKarney('egm96-5.pgm').height(-40.423, -142.787) kind 3: -11.117\n    test 321 GeoidKarney('egm96-5.pgm').height(-17.854, -170.216) kind 3: 27.437\n    test 322 GeoidKarney('egm96-5.pgm').height(47.803, 112.701) kind 3: -23.894\n    test 323 GeoidKarney('egm96-5.pgm').height(-23.276, 133.454) kind 3: 18.765  FAILED, KNOWN, expected 18.766\n    test 324 GeoidKarney('egm96-5.pgm').height(-26.884, -36.571) kind 3: -7.452\n    test 325 GeoidKarney('egm96-5.pgm').height(-37.106, 31.128) kind 3: 30.143\n    test 326 GeoidKarney('egm96-5.pgm').height(-75.363, -173.674) kind 3: -61.172\n    test 327 GeoidKarney('egm96-5.pgm').height(-18.305, 69.016) kind 3: -24.890\n    test 328 GeoidKarney('egm96-5.pgm').height(39.527, 23.58) kind 3: 39.519\n    test 329 GeoidKarney('egm96-5.pgm').height(68.903, 30.97) kind 3: 19.420  FAILED, KNOWN, expected 19.419\n    test 330 GeoidKarney('egm96-5.pgm').height(53.937, 168.318) kind 3: 2.067  FAILED, KNOWN, expected 2.069\n    test 331 GeoidKarney('egm96-5.pgm').height(-38.6, 64.812) kind 3: 25.049  FAILED, KNOWN, expected 25.048\n    test 332 GeoidKarney('egm96-5.pgm').height(-41.396, -69.739) kind 3: 22.546  FAILED, KNOWN, expected 22.547\n    test 333 GeoidKarney('egm96-5.pgm').height(50.158, 72.319) kind 3: -34.358  FAILED, KNOWN, expected -34.359\n    test 334 GeoidKarney('egm96-5.pgm').height(27.692, 176.153) kind 3: -5.454  FAILED, KNOWN, expected -5.453\n    test 335 GeoidKarney('egm96-5.pgm').height(-48.419, 170.454) kind 3: -6.804\n    test 336 GeoidKarney('egm96-5.pgm').height(-65.346, -124.976) kind 3: -35.053  FAILED, KNOWN, expected -35.054\n    test 337 GeoidKarney('egm96-5.pgm').height(-51.873, 167.266) kind 3: -15.417  FAILED, KNOWN, expected -15.418\n    test 338 GeoidKarney('egm96-5.pgm').height(-7.263, 84.308) kind 3: -79.557\n    test 339 GeoidKarney('egm96-5.pgm').height(-1.461, -105.458) kind 3: -16.894\n    test 340 GeoidKarney('egm96-5.pgm').height(7.684, 161.873) kind 3: 36.215\n    test 341 GeoidKarney('egm96-5.pgm').height(-31.475, -158.52) kind 3: 3.523\n    test 342 GeoidKarney('egm96-5.pgm').height(-36.187, 62.917) kind 3: 23.797\n    test 343 GeoidKarney('egm96-5.pgm').height(16.003, 141.687) kind 3: 51.587  FAILED, KNOWN, expected 51.586\n    test 344 GeoidKarney('egm96-5.pgm').height(30.182, 86.261) kind 3: -30.131\n    test 345 GeoidKarney('egm96-5.pgm').height(-77.304, 159.498) kind 3: -51.849  FAILED, KNOWN, expected -51.848\n    test 346 GeoidKarney('egm96-5.pgm').height(39.536, 139.795) kind 3: 37.191  FAILED, KNOWN, expected 37.192\n    test 347 GeoidKarney('egm96-5.pgm').height(8.569, 134.618) kind 3: 63.596  FAILED, KNOWN, expected 63.597\n    test 348 GeoidKarney('egm96-5.pgm').height(14.473, 90.596) kind 3: -62.636\n    test 349 GeoidKarney('egm96-5.pgm').height(-13.138, -99.589) kind 3: -8.718  FAILED, KNOWN, expected -8.717\n    test 350 GeoidKarney('egm96-5.pgm').height(34.212, -26.307) kind 3: 40.645\n    test 351 GeoidKarney('egm96-5.pgm').height(21.89, 76.371) kind 3: -60.729\n    test 352 GeoidKarney('egm96-5.pgm').height(29.793, 120.487) kind 3: 8.784  FAILED, KNOWN, expected 8.783\n    test 353 GeoidKarney('egm96-5.pgm').height(15.724, 122.714) kind 3: 31.523\n    test 354 GeoidKarney('egm96-5.pgm').height(-66.208, -78.499) kind 3: -6.251  FAILED, KNOWN, expected -6.250\n    test 355 GeoidKarney('egm96-5.pgm').height(-39.507, 55.809) kind 3: 32.598  FAILED, KNOWN, expected 32.599\n    test 356 GeoidKarney('egm96-5.pgm').height(28.159, 51.476) kind 3: -24.536\n    test 357 GeoidKarney('egm96-5.pgm').height(-36.207, 120.205) kind 3: -38.869\n    test 358 GeoidKarney('egm96-5.pgm').height(30.575, -99.998) kind 3: -23.212  FAILED, KNOWN, expected -23.213\n    test 359 GeoidKarney('egm96-5.pgm').height(-16.993, 37.136) kind 3: -11.824\n    test 360 GeoidKarney('egm96-5.pgm').height(-11.477, 12.039) kind 3: 16.710  FAILED, KNOWN, expected 16.709\n    test 361 GeoidKarney('egm96-5.pgm').height(30.428, -144.765) kind 3: -22.378  FAILED, KNOWN, expected -22.379\n    test 362 GeoidKarney('egm96-5.pgm').height(-17.44, -92.424) kind 3: -4.941\n    test 363 GeoidKarney('egm96-5.pgm').height(40.203, 143.43) kind 3: 19.394\n    test 364 GeoidKarney('egm96-5.pgm').height(-37.098, -106.574) kind 3: -9.381\n    test 365 GeoidKarney('egm96-5.pgm').height(54.62, -68.413) kind 3: -23.318  FAILED, KNOWN, expected -23.319\n    test 366 GeoidKarney('egm96-5.pgm').height(-31.633, 148.182) kind 3: 24.467  FAILED, KNOWN, expected 24.468\n    test 367 GeoidKarney('egm96-5.pgm').height(-56.07, -141.407) kind 3: -21.761\n    test 368 GeoidKarney('egm96-5.pgm').height(-8.195, -52.691) kind 3: -18.798\n    test 369 GeoidKarney('egm96-5.pgm').height(17.851, 24.749) kind 3: 12.612\n    test 370 GeoidKarney('egm96-5.pgm').height(0.349, -108.333) kind 3: -19.708  FAILED, KNOWN, expected -19.706\n    test 371 GeoidKarney('egm96-5.pgm').height(15.038, 126.191) kind 3: 45.792\n    test 372 GeoidKarney('egm96-5.pgm').height(-21.111, -123.696) kind 3: -8.406\n    test 373 GeoidKarney('egm96-5.pgm').height(30.947, 173.002) kind 3: -8.367\n    test 374 GeoidKarney('egm96-5.pgm').height(-10.698, -144.091) kind 3: -2.026  FAILED, KNOWN, expected -2.025\n    test 375 GeoidKarney('egm96-5.pgm').height(-29.412, 124.753) kind 3: -16.567  FAILED, KNOWN, expected -16.569\n    test 376 GeoidKarney('egm96-5.pgm').height(38.224, -137.189) kind 3: -35.435\n    test 377 GeoidKarney('egm96-5.pgm').height(36.064, -132.409) kind 3: -39.008  FAILED, KNOWN, expected -39.009\n    test 378 GeoidKarney('egm96-5.pgm').height(29.975, 178.076) kind 3: -6.921\n    test 379 GeoidKarney('egm96-5.pgm').height(-21.346, 169.26) kind 3: 50.795\n    test 380 GeoidKarney('egm96-5.pgm').height(49.282, -152.934) kind 3: 1.071  FAILED, KNOWN, expected 1.070\n    test 381 GeoidKarney('egm96-5.pgm').height(16.349, -99.962) kind 3: -14.214\n    test 382 GeoidKarney('egm96-5.pgm').height(-14.293, -167.34) kind 3: 17.600\n    test 383 GeoidKarney('egm96-5.pgm').height(47.166, -38.523) kind 3: 44.803  FAILED, KNOWN, expected 44.804\n    test 384 GeoidKarney('egm96-5.pgm').height(-58.911, 114.347) kind 3: -17.923  FAILED, KNOWN, expected -17.922\n    test 385 GeoidKarney('egm96-5.pgm').height(-9.055, 111.294) kind 3: 10.662\n    test 386 GeoidKarney('egm96-5.pgm').height(18.391, 29.692) kind 3: 7.670\n    test 387 GeoidKarney('egm96-5.pgm').height(-15.074, 22.153) kind 3: 8.624  FAILED, KNOWN, expected 8.623\n    test 388 GeoidKarney('egm96-5.pgm').height(-4.235, 62.001) kind 3: -60.722  FAILED, KNOWN, expected -60.723\n    test 389 GeoidKarney('egm96-5.pgm').height(15.171, -86.583) kind 3: 3.820  FAILED, KNOWN, expected 3.818\n    test 390 GeoidKarney('egm96-5.pgm').height(79.254, 112.116) kind 3: -1.871\n    test 391 GeoidKarney('egm96-5.pgm').height(15.947, 156.093) kind 3: 30.634  FAILED, KNOWN, expected 30.633\n    test 392 GeoidKarney('egm96-5.pgm').height(68.371, -177.382) kind 3: 2.800  FAILED, KNOWN, expected 2.801\n    test 393 GeoidKarney('egm96-5.pgm').height(-41.931, -72.093) kind 3: 19.858  FAILED, KNOWN, expected 19.859\n    test 394 GeoidKarney('egm96-5.pgm').height(-1.193, -143.133) kind 3: 5.347  FAILED, KNOWN, expected 5.348\n    test 395 GeoidKarney('egm96-5.pgm').height(-37.006, 154.513) kind 3: 9.941\n    test 396 GeoidKarney('egm96-5.pgm').height(-22.148, 9.938) kind 3: 22.322  FAILED, KNOWN, expected 22.321\n    test 397 GeoidKarney('egm96-5.pgm').height(24.329, 109.044) kind 3: -24.135\n    test 398 GeoidKarney('egm96-5.pgm').height(-54.878, 114.691) kind 3: -17.680  FAILED, KNOWN, expected -17.679\n    test 399 GeoidKarney('egm96-5.pgm').height(45.601, -80.458) kind 3: -37.151  FAILED, KNOWN, expected -37.150\n    test 400 GeoidKarney('egm96-5.pgm').height(2.372, 58.974) kind 3: -61.158\n    test 401 GeoidKarney('egm96-5.pgm').height(15.937, 165.854) kind 3: 20.603  FAILED, KNOWN, expected 20.602\n    test 402 GeoidKarney('egm96-5.pgm').height(4.889, -24.213) kind 3: 13.056  FAILED, KNOWN, expected 13.055\n    test 403 GeoidKarney('egm96-5.pgm').height(-11.392, 179.558) kind 3: 40.133  FAILED, KNOWN, expected 40.132\n    test 404 GeoidKarney('egm96-5.pgm').height(58.246, 4.862) kind 3: 43.263\n    test 405 GeoidKarney('egm96-5.pgm').height(34.302, -109.109) kind 3: -23.126\n    test 406 GeoidKarney('egm96-5.pgm').height(-58.196, 117.306) kind 3: -20.678\n    test 407 GeoidKarney('egm96-5.pgm').height(44.5, 173.769) kind 3: -8.530  FAILED, KNOWN, expected -8.529\n    test 408 GeoidKarney('egm96-5.pgm').height(-28.863, -139.775) kind 3: -8.666\n    test 409 GeoidKarney('egm96-5.pgm').height(19.507, -96.099) kind 3: -12.795  FAILED, KNOWN, expected -12.796\n    test 410 GeoidKarney('egm96-5.pgm').height(-42.488, -73.907) kind 3: 15.774  FAILED, KNOWN, expected 15.773\n    test 411 GeoidKarney('egm96-5.pgm').height(46.138, -141.429) kind 3: -19.955  FAILED, KNOWN, expected -19.954\n    test 412 GeoidKarney('egm96-5.pgm').height(60.507, 93.743) kind 3: -31.480\n    test 413 GeoidKarney('egm96-5.pgm').height(26.219, -145.434) kind 3: -17.428  FAILED, KNOWN, expected -17.429\n    test 414 GeoidKarney('egm96-5.pgm').height(-28.687, 3.37) kind 3: 24.037\n    test 415 GeoidKarney('egm96-5.pgm').height(-15.008, 117.45) kind 3: 4.519  FAILED, KNOWN, expected 4.520\n    test 416 GeoidKarney('egm96-5.pgm').height(40.71, 144.095) kind 3: 11.393  FAILED, KNOWN, expected 11.394\n    test 417 GeoidKarney('egm96-5.pgm').height(20.823, -173.611) kind 3: 5.678  FAILED, KNOWN, expected 5.679\n    test 418 GeoidKarney('egm96-5.pgm').height(16.776, -3.009) kind 3: 28.707\n    test 419 GeoidKarney('egm96-5.pgm').height(41.0, -95.0) kind 3: -30.261  FAILED, KNOWN, expected -30.262\n    test 420 GeoidKarney('egm96-5.pgm').height(49.0, -120.5) kind 3: -15.984\n    test 421 GeoidKarney('egm96-5.pgm').height(49.0, -103.5) kind 3: -18.635\n    test 422 GeoidKarney('egm96-5.pgm').height(49.0, -86.5) kind 3: -37.749\n    test 423 GeoidKarney('egm96-5.pgm').height(49.0, -69.5) kind 3: -26.691\n    test 424 GeoidKarney('egm96-5.pgm').height(33.0, -120.5) kind 3: -39.561\n    test 425 GeoidKarney('egm96-5.pgm').height(33.0, -103.5) kind 3: -22.562\n    test 426 GeoidKarney('egm96-5.pgm').height(33.0, -86.5) kind 3: -30.012\n    test 427 GeoidKarney('egm96-5.pgm').height(33.0, -69.5) kind 3: -48.039\n\n    test 428 GeoidKarney('egm96-5.pgm').height() kind 3, hits 0, eps max (in 0 FAILED): 0.001756\n    test 429 GeoidKarney('egm96-5.pgm').height() kind 3, hits 0, eps mean (of 210 total): 0.000524\n    test 430 GeoidKarney('egm96-5.pgm').height() kind 3, hits 0, eps stdev (of 210 total): 0.000371\n    test 431 GeoidKarney('egm96-5.pgm').toStr: GeoidKarney('egm96-5.pgm'): lowerleft(-90.0, -180.0, -29.535), upperright(90.0, 180.0, 13.605), center(0.0, 0.0, 17.163), highest(-8.167, 147.25, 85.422), lowest(4.667, 78.833, -107.043)\n\n    test 432 closed: True\n    test 433 copy(<class 'type'>): (<class 'pygeodesy.geoids.GeoidKarney'>, True)\n    test 434 GeoidKarney.copy(): (<class 'pygeodesy.geoids.GeoidKarney'>, True)\n\n    213 tests skipped (213): no scipy\n    test 435 GeoidKarney('egm2008-1.pgm').height(-76.981, 34.17) kind 2: 12.637  FAILED, KNOWN, expected 12.636\n    test 436 GeoidKarney('egm2008-1.pgm').height(79.695, 88.806) kind 2: 0.749\n    test 437 GeoidKarney('egm2008-1.pgm').height(-15.245, 168.748) kind 2: 65.110  FAILED, KNOWN, expected 65.109\n    test 438 GeoidKarney('egm2008-1.pgm').height(-19.379, 15.855) kind 2: 24.889\n    test 439 GeoidKarney('egm2008-1.pgm').height(43.378, -130.552) kind 2: -29.557\n    test 440 GeoidKarney('egm2008-1.pgm').height(-16.075, 21.795) kind 2: 9.741  FAILED, KNOWN, expected 9.742\n    test 441 GeoidKarney('egm2008-1.pgm').height(-11.256, -73.75) kind 2: 30.061  FAILED, KNOWN, expected 30.059\n    test 442 GeoidKarney('egm2008-1.pgm').height(69.017, -15.921) kind 2: 60.691  FAILED, KNOWN, expected 60.690\n    test 443 GeoidKarney('egm2008-1.pgm').height(2.221, 139.739) kind 2: 69.134  FAILED, KNOWN, expected 69.133\n    test 444 GeoidKarney('egm2008-1.pgm').height(-9.097, 119.142) kind 2: 36.522  FAILED, KNOWN, expected 36.520\n    test 445 GeoidKarney('egm2008-1.pgm').height(-28.524, -22.192) kind 2: 6.801\n    test 446 GeoidKarney('egm2008-1.pgm').height(12.272, -136.424) kind 2: -20.652  FAILED, KNOWN, expected -20.651\n    test 447 GeoidKarney('egm2008-1.pgm').height(-15.203, -85.604) kind 2: -3.040\n    test 448 GeoidKarney('egm2008-1.pgm').height(-63.736, -77.17) kind 2: -1.329  FAILED, KNOWN, expected -1.328\n    test 449 GeoidKarney('egm2008-1.pgm').height(-48.771, -90.102) kind 2: -2.171  FAILED, KNOWN, expected -2.172\n    test 450 GeoidKarney('egm2008-1.pgm').height(-0.179, -126.368) kind 2: -17.411\n    test 451 GeoidKarney('egm2008-1.pgm').height(1.586, -128.887) kind 2: -16.426  FAILED, KNOWN, expected -16.425\n    test 452 GeoidKarney('egm2008-1.pgm').height(-48.781, -2.684) kind 2: 24.699  FAILED, KNOWN, expected 24.698\n    test 453 GeoidKarney('egm2008-1.pgm').height(-49.092, 136.862) kind 2: -18.328  FAILED, KNOWN, expected -18.329\n    test 454 GeoidKarney('egm2008-1.pgm').height(47.732, 17.552) kind 2: 43.802\n    test 455 GeoidKarney('egm2008-1.pgm').height(-49.11, 85.706) kind 2: 18.716\n    test 456 GeoidKarney('egm2008-1.pgm').height(-49.162, 40.321) kind 2: 44.468  FAILED, KNOWN, expected 44.469\n    test 457 GeoidKarney('egm2008-1.pgm').height(3.498, 158.118) kind 2: 49.943  FAILED, KNOWN, expected 49.944\n    test 458 GeoidKarney('egm2008-1.pgm').height(-35.616, 122.648) kind 2: -35.878\n    test 459 GeoidKarney('egm2008-1.pgm').height(56.598, -96.114) kind 2: -40.777\n    test 460 GeoidKarney('egm2008-1.pgm').height(-31.85, 149.121) kind 2: 26.560  FAILED, KNOWN, expected 26.559\n    test 461 GeoidKarney('egm2008-1.pgm').height(-26.569, -177.792) kind 2: 49.361\n    test 462 GeoidKarney('egm2008-1.pgm').height(76.735, -65.753) kind 2: 21.106  FAILED, KNOWN, expected 21.107\n    test 463 GeoidKarney('egm2008-1.pgm').height(-21.404, -122.268) kind 2: -7.202\n    test 464 GeoidKarney('egm2008-1.pgm').height(-77.133, -65.474) kind 2: -17.168\n    test 465 GeoidKarney('egm2008-1.pgm').height(-58.812, 2.276) kind 2: 18.359\n    test 466 GeoidKarney('egm2008-1.pgm').height(4.415, 155.683) kind 2: 52.118\n    test 467 GeoidKarney('egm2008-1.pgm').height(-28.146, 107.081) kind 2: -38.949  FAILED, KNOWN, expected -38.950\n    test 468 GeoidKarney('egm2008-1.pgm').height(-10.551, -126.69) kind 2: -9.935  FAILED, KNOWN, expected -9.934\n    test 469 GeoidKarney('egm2008-1.pgm').height(-25.444, -103.337) kind 2: -2.879\n    test 470 GeoidKarney('egm2008-1.pgm').height(24.436, 46.159) kind 2: -5.025\n    test 471 GeoidKarney('egm2008-1.pgm').height(-72.889, 37.107) kind 2: 24.296\n    test 472 GeoidKarney('egm2008-1.pgm').height(-19.629, 13.245) kind 2: 25.131\n    test 473 GeoidKarney('egm2008-1.pgm').height(-7.602, 171.265) kind 2: 40.720  FAILED, KNOWN, expected 40.721\n    test 474 GeoidKarney('egm2008-1.pgm').height(-45.364, -1.876) kind 2: 22.388\n    test 475 GeoidKarney('egm2008-1.pgm').height(-7.292, -69.18) kind 2: 22.485  FAILED, KNOWN, expected 22.486\n    test 476 GeoidKarney('egm2008-1.pgm').height(-31.566, -166.689) kind 2: 14.942  FAILED, KNOWN, expected 14.943\n    test 477 GeoidKarney('egm2008-1.pgm').height(-82.751, -162.085) kind 2: -47.387\n    test 478 GeoidKarney('egm2008-1.pgm').height(-40.7, 99.466) kind 2: -18.404  FAILED, KNOWN, expected -18.403\n    test 479 GeoidKarney('egm2008-1.pgm').height(48.676, 39.69) kind 2: 10.186  FAILED, KNOWN, expected 10.185\n    test 480 GeoidKarney('egm2008-1.pgm').height(74.817, -78.404) kind 2: 5.671\n    test 481 GeoidKarney('egm2008-1.pgm').height(-81.032, -63.865) kind 2: -24.577\n    test 482 GeoidKarney('egm2008-1.pgm').height(74.022, 9.432) kind 2: 43.288\n    test 483 GeoidKarney('egm2008-1.pgm').height(-75.071, 17.579) kind 2: 13.747  FAILED, KNOWN, expected 13.748\n    test 484 GeoidKarney('egm2008-1.pgm').height(-12.546, -54.851) kind 2: -5.342\n    test 485 GeoidKarney('egm2008-1.pgm').height(-13.621, 42.408) kind 2: -25.579\n    test 486 GeoidKarney('egm2008-1.pgm').height(-2.266, -91.951) kind 2: -9.849\n    test 487 GeoidKarney('egm2008-1.pgm').height(-18.672, 42.547) kind 2: -10.491\n    test 488 GeoidKarney('egm2008-1.pgm').height(-41.44, 157.413) kind 2: 0.243  FAILED, KNOWN, expected 0.244\n    test 489 GeoidKarney('egm2008-1.pgm').height(53.686, -79.375) kind 2: -43.820  FAILED, KNOWN, expected -43.821\n    test 490 GeoidKarney('egm2008-1.pgm').height(39.26, -30.351) kind 2: 57.400  FAILED, KNOWN, expected 57.401\n    test 491 GeoidKarney('egm2008-1.pgm').height(-51.699, -141.493) kind 2: -17.889  FAILED, KNOWN, expected -17.890\n    test 492 GeoidKarney('egm2008-1.pgm').height(36.585, 4.515) kind 2: 46.422  FAILED, KNOWN, expected 46.421\n    test 493 GeoidKarney('egm2008-1.pgm').height(39.642, -54.659) kind 2: -14.475\n    test 494 GeoidKarney('egm2008-1.pgm').height(59.761, 166.567) kind 2: 11.119  FAILED, KNOWN, expected 11.118\n    test 495 GeoidKarney('egm2008-1.pgm').height(51.83, 13.357) kind 2: 42.291\n    test 496 GeoidKarney('egm2008-1.pgm').height(-36.531, -175.431) kind 2: 22.327  FAILED, KNOWN, expected 22.326\n    test 497 GeoidKarney('egm2008-1.pgm').height(-37.08, 125.264) kind 2: -33.098\n    test 498 GeoidKarney('egm2008-1.pgm').height(-68.651, 92.732) kind 2: 9.431  FAILED, KNOWN, expected 9.430\n    test 499 GeoidKarney('egm2008-1.pgm').height(35.087, 45.336) kind 2: 6.032\n    test 500 GeoidKarney('egm2008-1.pgm').height(-61.356, -169.379) kind 2: -44.330\n    test 501 GeoidKarney('egm2008-1.pgm').height(-36.955, 179.12) kind 2: 21.775\n    test 502 GeoidKarney('egm2008-1.pgm').height(10.248, -6.714) kind 2: 29.243\n    test 503 GeoidKarney('egm2008-1.pgm').height(36.868, 84.602) kind 2: -40.677  FAILED, KNOWN, expected -40.676\n    test 504 GeoidKarney('egm2008-1.pgm').height(28.637, 88.933) kind 2: -31.353\n    test 505 GeoidKarney('egm2008-1.pgm').height(54.811, -99.968) kind 2: -32.700  FAILED, KNOWN, expected -32.701\n    test 506 GeoidKarney('egm2008-1.pgm').height(7.611, 145.911) kind 2: 60.628  FAILED, KNOWN, expected 60.629\n    test 507 GeoidKarney('egm2008-1.pgm').height(59.412, 170.102) kind 2: 6.617\n    test 508 GeoidKarney('egm2008-1.pgm').height(-61.469, 126.144) kind 2: -31.888  FAILED, KNOWN, expected -31.887\n    test 509 GeoidKarney('egm2008-1.pgm').height(18.514, -137.083) kind 2: -26.536  FAILED, KNOWN, expected -26.535\n    test 510 GeoidKarney('egm2008-1.pgm').height(7.854, -126.799) kind 2: -29.631  FAILED, KNOWN, expected -29.630\n    test 511 GeoidKarney('egm2008-1.pgm').height(47.489, 134.183) kind 2: 22.274  FAILED, KNOWN, expected 22.275\n    test 512 GeoidKarney('egm2008-1.pgm').height(-34.144, -11.922) kind 2: 17.095  FAILED, KNOWN, expected 17.094\n    test 513 GeoidKarney('egm2008-1.pgm').height(-58.389, 117.458) kind 2: -20.940  FAILED, KNOWN, expected -20.941\n    test 514 GeoidKarney('egm2008-1.pgm').height(9.773, 95.846) kind 2: -42.740\n    test 515 GeoidKarney('egm2008-1.pgm').height(-53.12, 136.994) kind 2: -21.651\n    test 516 GeoidKarney('egm2008-1.pgm').height(-50.35, 0.075) kind 2: 25.240\n    test 517 GeoidKarney('egm2008-1.pgm').height(31.438, -170.879) kind 2: -8.758\n    test 518 GeoidKarney('egm2008-1.pgm').height(37.541, -153.024) kind 2: -19.606  FAILED, KNOWN, expected -19.607\n    test 519 GeoidKarney('egm2008-1.pgm').height(27.586, 2.444) kind 2: 26.258\n    test 520 GeoidKarney('egm2008-1.pgm').height(-26.139, -106.201) kind 2: -3.824\n    test 521 GeoidKarney('egm2008-1.pgm').height(-33.426, -14.84) kind 2: 18.194  FAILED, KNOWN, expected 18.195\n    test 522 GeoidKarney('egm2008-1.pgm').height(39.586, -153.019) kind 2: -17.724  FAILED, KNOWN, expected -17.725\n    test 523 GeoidKarney('egm2008-1.pgm').height(-60.79, -2.578) kind 2: 14.511  FAILED, KNOWN, expected 14.513\n    test 524 GeoidKarney('egm2008-1.pgm').height(-20.131, 21.975) kind 2: 16.808  FAILED, KNOWN, expected 16.809\n    test 525 GeoidKarney('egm2008-1.pgm').height(75.649, 99.921) kind 2: -8.025  FAILED, KNOWN, expected -8.026\n    test 526 GeoidKarney('egm2008-1.pgm').height(-0.385, -23.788) kind 2: 9.688\n    test 527 GeoidKarney('egm2008-1.pgm').height(-51.56, -50.327) kind 2: 6.218\n    test 528 GeoidKarney('egm2008-1.pgm').height(-43.129, -167.271) kind 2: -2.725  FAILED, KNOWN, expected -2.724\n    test 529 GeoidKarney('egm2008-1.pgm').height(46.374, 71.948) kind 2: -42.566  FAILED, KNOWN, expected -42.565\n    test 530 GeoidKarney('egm2008-1.pgm').height(-22.783, 140.657) kind 2: 38.341\n    test 531 GeoidKarney('egm2008-1.pgm').height(-12.056, 122.804) kind 2: 33.888  FAILED, KNOWN, expected 33.889\n    test 532 GeoidKarney('egm2008-1.pgm').height(30.127, 94.738) kind 2: -37.382  FAILED, KNOWN, expected -37.380\n    test 533 GeoidKarney('egm2008-1.pgm').height(46.296, -174.479) kind 2: -1.857  FAILED, KNOWN, expected -1.858\n    test 534 GeoidKarney('egm2008-1.pgm').height(34.99, 15.052) kind 2: 34.196  FAILED, KNOWN, expected 34.195\n    test 535 GeoidKarney('egm2008-1.pgm').height(-51.287, 90.565) kind 2: 12.767\n    test 536 GeoidKarney('egm2008-1.pgm').height(34.217, 141.302) kind 2: 15.612\n    test 537 GeoidKarney('egm2008-1.pgm').height(-40.423, -142.787) kind 2: -11.063\n    test 538 GeoidKarney('egm2008-1.pgm').height(-17.854, -170.216) kind 2: 27.387\n    test 539 GeoidKarney('egm2008-1.pgm').height(47.803, 112.701) kind 2: -23.817\n    test 540 GeoidKarney('egm2008-1.pgm').height(-23.276, 133.454) kind 2: 18.713  FAILED, KNOWN, expected 18.712\n    test 541 GeoidKarney('egm2008-1.pgm').height(-26.884, -36.571) kind 2: -7.343  FAILED, KNOWN, expected -7.344\n    test 542 GeoidKarney('egm2008-1.pgm').height(-37.106, 31.128) kind 2: 29.997  FAILED, KNOWN, expected 29.998\n    test 543 GeoidKarney('egm2008-1.pgm').height(-75.363, -173.674) kind 2: -61.869\n    test 544 GeoidKarney('egm2008-1.pgm').height(-18.305, 69.016) kind 2: -24.937\n    test 545 GeoidKarney('egm2008-1.pgm').height(39.527, 23.58) kind 2: 38.558  FAILED, KNOWN, expected 38.556\n    test 546 GeoidKarney('egm2008-1.pgm').height(68.903, 30.97) kind 2: 19.672  FAILED, KNOWN, expected 19.671\n    test 547 GeoidKarney('egm2008-1.pgm').height(53.937, 168.318) kind 2: 2.273  FAILED, KNOWN, expected 2.272\n    test 548 GeoidKarney('egm2008-1.pgm').height(-38.6, 64.812) kind 2: 24.863\n    test 549 GeoidKarney('egm2008-1.pgm').height(-41.396, -69.739) kind 2: 21.637  FAILED, KNOWN, expected 21.636\n    test 550 GeoidKarney('egm2008-1.pgm').height(50.158, 72.319) kind 2: -33.851\n    test 551 GeoidKarney('egm2008-1.pgm').height(27.692, 176.153) kind 2: -5.299\n    test 552 GeoidKarney('egm2008-1.pgm').height(-48.419, 170.454) kind 2: -6.789\n    test 553 GeoidKarney('egm2008-1.pgm').height(-65.346, -124.976) kind 2: -35.030\n    test 554 GeoidKarney('egm2008-1.pgm').height(-51.873, 167.266) kind 2: -15.338\n    test 555 GeoidKarney('egm2008-1.pgm').height(-7.263, 84.308) kind 2: -79.356\n    test 556 GeoidKarney('egm2008-1.pgm').height(-1.461, -105.458) kind 2: -16.650\n    test 557 GeoidKarney('egm2008-1.pgm').height(7.684, 161.873) kind 2: 36.358  FAILED, KNOWN, expected 36.359\n    test 558 GeoidKarney('egm2008-1.pgm').height(-31.475, -158.52) kind 2: 3.614  FAILED, KNOWN, expected 3.615\n    test 559 GeoidKarney('egm2008-1.pgm').height(-36.187, 62.917) kind 2: 23.946  FAILED, KNOWN, expected 23.947\n    test 560 GeoidKarney('egm2008-1.pgm').height(16.003, 141.687) kind 2: 51.495\n    test 561 GeoidKarney('egm2008-1.pgm').height(30.182, 86.261) kind 2: -30.909  FAILED, KNOWN, expected -30.910\n    test 562 GeoidKarney('egm2008-1.pgm').height(-77.304, 159.498) kind 2: -52.131\n    test 563 GeoidKarney('egm2008-1.pgm').height(39.536, 139.795) kind 2: 37.046  FAILED, KNOWN, expected 37.045\n    test 564 GeoidKarney('egm2008-1.pgm').height(8.569, 134.618) kind 2: 64.181  FAILED, KNOWN, expected 64.180\n    test 565 GeoidKarney('egm2008-1.pgm').height(14.473, 90.596) kind 2: -62.475\n    test 566 GeoidKarney('egm2008-1.pgm').height(-13.138, -99.589) kind 2: -8.454\n    test 567 GeoidKarney('egm2008-1.pgm').height(34.212, -26.307) kind 2: 40.834\n    test 568 GeoidKarney('egm2008-1.pgm').height(21.89, 76.371) kind 2: -60.456  FAILED, KNOWN, expected -60.455\n    test 569 GeoidKarney('egm2008-1.pgm').height(29.793, 120.487) kind 2: 9.727\n    test 570 GeoidKarney('egm2008-1.pgm').height(15.724, 122.714) kind 2: 32.143  FAILED, KNOWN, expected 32.142\n    test 571 GeoidKarney('egm2008-1.pgm').height(-66.208, -78.499) kind 2: -6.221  FAILED, KNOWN, expected -6.220\n    test 572 GeoidKarney('egm2008-1.pgm').height(-39.507, 55.809) kind 2: 32.489\n    test 573 GeoidKarney('egm2008-1.pgm').height(28.159, 51.476) kind 2: -24.692\n    test 574 GeoidKarney('egm2008-1.pgm').height(-36.207, 120.205) kind 2: -38.748  FAILED, KNOWN, expected -38.749\n    test 575 GeoidKarney('egm2008-1.pgm').height(30.575, -99.998) kind 2: -23.254  FAILED, KNOWN, expected -23.255\n    test 576 GeoidKarney('egm2008-1.pgm').height(-16.993, 37.136) kind 2: -13.454  FAILED, KNOWN, expected -13.455\n    test 577 GeoidKarney('egm2008-1.pgm').height(-11.477, 12.039) kind 2: 16.627\n    test 578 GeoidKarney('egm2008-1.pgm').height(30.428, -144.765) kind 2: -22.221\n    test 579 GeoidKarney('egm2008-1.pgm').height(-17.44, -92.424) kind 2: -4.836\n    test 580 GeoidKarney('egm2008-1.pgm').height(40.203, 143.43) kind 2: 19.571\n    test 581 GeoidKarney('egm2008-1.pgm').height(-37.098, -106.574) kind 2: -9.227\n    test 582 GeoidKarney('egm2008-1.pgm').height(54.62, -68.413) kind 2: -23.248\n    test 583 GeoidKarney('egm2008-1.pgm').height(-31.633, 148.182) kind 2: 24.829\n    test 584 GeoidKarney('egm2008-1.pgm').height(-56.07, -141.407) kind 2: -21.706  FAILED, KNOWN, expected -21.705\n    test 585 GeoidKarney('egm2008-1.pgm').height(-8.195, -52.691) kind 2: -17.054  FAILED, KNOWN, expected -17.053\n    test 586 GeoidKarney('egm2008-1.pgm').height(17.851, 24.749) kind 2: 11.716\n    test 587 GeoidKarney('egm2008-1.pgm').height(0.349, -108.333) kind 2: -19.529  FAILED, KNOWN, expected -19.530\n    test 588 GeoidKarney('egm2008-1.pgm').height(15.038, 126.191) kind 2: 45.929\n    test 589 GeoidKarney('egm2008-1.pgm').height(-21.111, -123.696) kind 2: -8.283\n    test 590 GeoidKarney('egm2008-1.pgm').height(30.947, 173.002) kind 2: -8.467\n    test 591 GeoidKarney('egm2008-1.pgm').height(-10.698, -144.091) kind 2: -1.829\n    test 592 GeoidKarney('egm2008-1.pgm').height(-29.412, 124.753) kind 2: -16.505  FAILED, KNOWN, expected -16.506\n    test 593 GeoidKarney('egm2008-1.pgm').height(38.224, -137.189) kind 2: -35.384\n    test 594 GeoidKarney('egm2008-1.pgm').height(36.064, -132.409) kind 2: -38.962  FAILED, KNOWN, expected -38.963\n    test 595 GeoidKarney('egm2008-1.pgm').height(29.975, 178.076) kind 2: -6.956\n    test 596 GeoidKarney('egm2008-1.pgm').height(-21.346, 169.26) kind 2: 51.006  FAILED, KNOWN, expected 51.005\n    test 597 GeoidKarney('egm2008-1.pgm').height(49.282, -152.934) kind 2: 1.193  FAILED, KNOWN, expected 1.192\n    test 598 GeoidKarney('egm2008-1.pgm').height(16.349, -99.962) kind 2: -15.038\n    test 599 GeoidKarney('egm2008-1.pgm').height(-14.293, -167.34) kind 2: 17.792  FAILED, KNOWN, expected 17.791\n    test 600 GeoidKarney('egm2008-1.pgm').height(47.166, -38.523) kind 2: 44.653  FAILED, KNOWN, expected 44.652\n    test 601 GeoidKarney('egm2008-1.pgm').height(-58.911, 114.347) kind 2: -17.972  FAILED, KNOWN, expected -17.971\n    test 602 GeoidKarney('egm2008-1.pgm').height(-9.055, 111.294) kind 2: 11.631\n    test 603 GeoidKarney('egm2008-1.pgm').height(18.391, 29.692) kind 2: 7.394\n    test 604 GeoidKarney('egm2008-1.pgm').height(-15.074, 22.153) kind 2: 7.932\n    test 605 GeoidKarney('egm2008-1.pgm').height(-4.235, 62.001) kind 2: -60.594  FAILED, KNOWN, expected -60.593\n    test 606 GeoidKarney('egm2008-1.pgm').height(15.171, -86.583) kind 2: 4.382  FAILED, KNOWN, expected 4.384\n    test 607 GeoidKarney('egm2008-1.pgm').height(79.254, 112.116) kind 2: 1.296  FAILED, KNOWN, expected 1.297\n    test 608 GeoidKarney('egm2008-1.pgm').height(15.947, 156.093) kind 2: 30.852\n    test 609 GeoidKarney('egm2008-1.pgm').height(68.371, -177.382) kind 2: 2.705  FAILED, KNOWN, expected 2.704\n    test 610 GeoidKarney('egm2008-1.pgm').height(-41.931, -72.093) kind 2: 21.263  FAILED, KNOWN, expected 21.264\n    test 611 GeoidKarney('egm2008-1.pgm').height(-1.193, -143.133) kind 2: 5.443\n    test 612 GeoidKarney('egm2008-1.pgm').height(-37.006, 154.513) kind 2: 9.998\n    test 613 GeoidKarney('egm2008-1.pgm').height(-22.148, 9.938) kind 2: 22.428\n    test 614 GeoidKarney('egm2008-1.pgm').height(24.329, 109.044) kind 2: -23.156  FAILED, KNOWN, expected -23.154\n    test 615 GeoidKarney('egm2008-1.pgm').height(-54.878, 114.691) kind 2: -17.662\n    test 616 GeoidKarney('egm2008-1.pgm').height(45.601, -80.458) kind 2: -36.840  FAILED, KNOWN, expected -36.839\n    test 617 GeoidKarney('egm2008-1.pgm').height(2.372, 58.974) kind 2: -61.220  FAILED, KNOWN, expected -61.221\n    test 618 GeoidKarney('egm2008-1.pgm').height(15.937, 165.854) kind 2: 20.355\n    test 619 GeoidKarney('egm2008-1.pgm').height(4.889, -24.213) kind 2: 13.147\n    test 620 GeoidKarney('egm2008-1.pgm').height(-11.392, 179.558) kind 2: 41.072\n    test 621 GeoidKarney('egm2008-1.pgm').height(58.246, 4.862) kind 2: 42.982\n    test 622 GeoidKarney('egm2008-1.pgm').height(34.302, -109.109) kind 2: -22.997  FAILED, KNOWN, expected -22.998\n    test 623 GeoidKarney('egm2008-1.pgm').height(-58.196, 117.306) kind 2: -20.662\n    test 624 GeoidKarney('egm2008-1.pgm').height(44.5, 173.769) kind 2: -8.438\n    test 625 GeoidKarney('egm2008-1.pgm').height(-28.863, -139.775) kind 2: -8.711  FAILED, KNOWN, expected -8.712\n    test 626 GeoidKarney('egm2008-1.pgm').height(19.507, -96.099) kind 2: -12.654  FAILED, KNOWN, expected -12.653\n    test 627 GeoidKarney('egm2008-1.pgm').height(-42.488, -73.907) kind 2: 17.163  FAILED, KNOWN, expected 17.166\n    test 628 GeoidKarney('egm2008-1.pgm').height(46.138, -141.429) kind 2: -19.873  FAILED, KNOWN, expected -19.874\n    test 629 GeoidKarney('egm2008-1.pgm').height(60.507, 93.743) kind 2: -31.124\n    test 630 GeoidKarney('egm2008-1.pgm').height(26.219, -145.434) kind 2: -17.307\n    test 631 GeoidKarney('egm2008-1.pgm').height(-28.687, 3.37) kind 2: 23.437  FAILED, KNOWN, expected 23.434\n    test 632 GeoidKarney('egm2008-1.pgm').height(-15.008, 117.45) kind 2: 4.508\n    test 633 GeoidKarney('egm2008-1.pgm').height(40.71, 144.095) kind 2: 11.550  FAILED, KNOWN, expected 11.549\n    test 634 GeoidKarney('egm2008-1.pgm').height(20.823, -173.611) kind 2: 5.749  FAILED, KNOWN, expected 5.748\n    test 635 GeoidKarney('egm2008-1.pgm').height(16.776, -3.009) kind 2: 28.788\n    test 636 GeoidKarney('egm2008-1.pgm').height(41.0, -95.0) kind 2: -30.588  FAILED, KNOWN, expected -30.589\n    test 637 GeoidKarney('egm2008-1.pgm').height(49.0, -120.5) kind 2: -15.273\n    test 638 GeoidKarney('egm2008-1.pgm').height(49.0, -103.5) kind 2: -18.624\n    test 639 GeoidKarney('egm2008-1.pgm').height(49.0, -86.5) kind 2: -37.872  FAILED, KNOWN, expected -37.873\n    test 640 GeoidKarney('egm2008-1.pgm').height(49.0, -69.5) kind 2: -26.511\n    test 641 GeoidKarney('egm2008-1.pgm').height(33.0, -120.5) kind 2: -39.600\n    test 642 GeoidKarney('egm2008-1.pgm').height(33.0, -103.5) kind 2: -22.689\n    test 643 GeoidKarney('egm2008-1.pgm').height(33.0, -86.5) kind 2: -30.066  FAILED, KNOWN, expected -30.067\n    test 644 GeoidKarney('egm2008-1.pgm').height(33.0, -69.5) kind 2: -48.093\n\n    test 645 GeoidKarney('egm2008-1.pgm').height() kind 2, hits 0, eps max (in 0 FAILED): 0.002537\n    test 646 GeoidKarney('egm2008-1.pgm').height() kind 2, hits 0, eps mean (of 210 total): 0.000543\n    test 647 GeoidKarney('egm2008-1.pgm').height() kind 2, hits 0, eps stdev (of 210 total): 0.000458\n    test 648 GeoidKarney('egm2008-1.pgm').toStr: GeoidKarney('egm2008-1.pgm'): lowerleft(-90.0, -180.0, -30.15), upperright(90.0, 180.0, 14.898), center(0.0, 0.0, 17.226), highest(-8.4, 147.367, 85.839), lowest(4.7, 78.767, -106.911)\n\n    test 649 closed: True\n    test 650 copy(<class 'type'>): (<class 'pygeodesy.geoids.GeoidKarney'>, True)\n    test 651 GeoidKarney.copy(): (<class 'pygeodesy.geoids.GeoidKarney'>, True)\n    test 652 GeoidKarney('egm2008-1.pgm').height(-76.981, 34.17) kind 3: 12.637  FAILED, KNOWN, expected 12.636\n    test 653 GeoidKarney('egm2008-1.pgm').height(79.695, 88.806) kind 3: 0.749\n    test 654 GeoidKarney('egm2008-1.pgm').height(-15.245, 168.748) kind 3: 65.110  FAILED, KNOWN, expected 65.109\n    test 655 GeoidKarney('egm2008-1.pgm').height(-19.379, 15.855) kind 3: 24.889\n    test 656 GeoidKarney('egm2008-1.pgm').height(43.378, -130.552) kind 3: -29.556  FAILED, KNOWN, expected -29.557\n    test 657 GeoidKarney('egm2008-1.pgm').height(-16.075, 21.795) kind 3: 9.741  FAILED, KNOWN, expected 9.742\n    test 658 GeoidKarney('egm2008-1.pgm').height(-11.256, -73.75) kind 3: 30.060  FAILED, KNOWN, expected 30.059\n    test 659 GeoidKarney('egm2008-1.pgm').height(69.017, -15.921) kind 3: 60.690\n    test 660 GeoidKarney('egm2008-1.pgm').height(2.221, 139.739) kind 3: 69.134  FAILED, KNOWN, expected 69.133\n    test 661 GeoidKarney('egm2008-1.pgm').height(-9.097, 119.142) kind 3: 36.521  FAILED, KNOWN, expected 36.520\n    test 662 GeoidKarney('egm2008-1.pgm').height(-28.524, -22.192) kind 3: 6.801\n    test 663 GeoidKarney('egm2008-1.pgm').height(12.272, -136.424) kind 3: -20.652  FAILED, KNOWN, expected -20.651\n    test 664 GeoidKarney('egm2008-1.pgm').height(-15.203, -85.604) kind 3: -3.040\n    test 665 GeoidKarney('egm2008-1.pgm').height(-63.736, -77.17) kind 3: -1.329  FAILED, KNOWN, expected -1.328\n    test 666 GeoidKarney('egm2008-1.pgm').height(-48.771, -90.102) kind 3: -2.171  FAILED, KNOWN, expected -2.172\n    test 667 GeoidKarney('egm2008-1.pgm').height(-0.179, -126.368) kind 3: -17.411\n    test 668 GeoidKarney('egm2008-1.pgm').height(1.586, -128.887) kind 3: -16.426  FAILED, KNOWN, expected -16.425\n    test 669 GeoidKarney('egm2008-1.pgm').height(-48.781, -2.684) kind 3: 24.699  FAILED, KNOWN, expected 24.698\n    test 670 GeoidKarney('egm2008-1.pgm').height(-49.092, 136.862) kind 3: -18.328  FAILED, KNOWN, expected -18.329\n    test 671 GeoidKarney('egm2008-1.pgm').height(47.732, 17.552) kind 3: 43.802\n    test 672 GeoidKarney('egm2008-1.pgm').height(-49.11, 85.706) kind 3: 18.716\n    test 673 GeoidKarney('egm2008-1.pgm').height(-49.162, 40.321) kind 3: 44.468  FAILED, KNOWN, expected 44.469\n    test 674 GeoidKarney('egm2008-1.pgm').height(3.498, 158.118) kind 3: 49.943  FAILED, KNOWN, expected 49.944\n    test 675 GeoidKarney('egm2008-1.pgm').height(-35.616, 122.648) kind 3: -35.878\n    test 676 GeoidKarney('egm2008-1.pgm').height(56.598, -96.114) kind 3: -40.777\n    test 677 GeoidKarney('egm2008-1.pgm').height(-31.85, 149.121) kind 3: 26.559\n    test 678 GeoidKarney('egm2008-1.pgm').height(-26.569, -177.792) kind 3: 49.362  FAILED, KNOWN, expected 49.361\n    test 679 GeoidKarney('egm2008-1.pgm').height(76.735, -65.753) kind 3: 21.106  FAILED, KNOWN, expected 21.107\n    test 680 GeoidKarney('egm2008-1.pgm').height(-21.404, -122.268) kind 3: -7.203  FAILED, KNOWN, expected -7.202\n    test 681 GeoidKarney('egm2008-1.pgm').height(-77.133, -65.474) kind 3: -17.167  FAILED, KNOWN, expected -17.168\n    test 682 GeoidKarney('egm2008-1.pgm').height(-58.812, 2.276) kind 3: 18.359\n    test 683 GeoidKarney('egm2008-1.pgm').height(4.415, 155.683) kind 3: 52.117  FAILED, KNOWN, expected 52.118\n    test 684 GeoidKarney('egm2008-1.pgm').height(-28.146, 107.081) kind 3: -38.950\n    test 685 GeoidKarney('egm2008-1.pgm').height(-10.551, -126.69) kind 3: -9.935  FAILED, KNOWN, expected -9.934\n    test 686 GeoidKarney('egm2008-1.pgm').height(-25.444, -103.337) kind 3: -2.879\n    test 687 GeoidKarney('egm2008-1.pgm').height(24.436, 46.159) kind 3: -5.025\n    test 688 GeoidKarney('egm2008-1.pgm').height(-72.889, 37.107) kind 3: 24.296\n    test 689 GeoidKarney('egm2008-1.pgm').height(-19.629, 13.245) kind 3: 25.131\n    test 690 GeoidKarney('egm2008-1.pgm').height(-7.602, 171.265) kind 3: 40.720  FAILED, KNOWN, expected 40.721\n    test 691 GeoidKarney('egm2008-1.pgm').height(-45.364, -1.876) kind 3: 22.387  FAILED, KNOWN, expected 22.388\n    test 692 GeoidKarney('egm2008-1.pgm').height(-7.292, -69.18) kind 3: 22.485  FAILED, KNOWN, expected 22.486\n    test 693 GeoidKarney('egm2008-1.pgm').height(-31.566, -166.689) kind 3: 14.942  FAILED, KNOWN, expected 14.943\n    test 694 GeoidKarney('egm2008-1.pgm').height(-82.751, -162.085) kind 3: -47.387\n    test 695 GeoidKarney('egm2008-1.pgm').height(-40.7, 99.466) kind 3: -18.404  FAILED, KNOWN, expected -18.403\n    test 696 GeoidKarney('egm2008-1.pgm').height(48.676, 39.69) kind 3: 10.185\n    test 697 GeoidKarney('egm2008-1.pgm').height(74.817, -78.404) kind 3: 5.670  FAILED, KNOWN, expected 5.671\n    test 698 GeoidKarney('egm2008-1.pgm').height(-81.032, -63.865) kind 3: -24.577\n    test 699 GeoidKarney('egm2008-1.pgm').height(74.022, 9.432) kind 3: 43.288\n    test 700 GeoidKarney('egm2008-1.pgm').height(-75.071, 17.579) kind 3: 13.747  FAILED, KNOWN, expected 13.748\n    test 701 GeoidKarney('egm2008-1.pgm').height(-12.546, -54.851) kind 3: -5.342\n    test 702 GeoidKarney('egm2008-1.pgm').height(-13.621, 42.408) kind 3: -25.579\n    test 703 GeoidKarney('egm2008-1.pgm').height(-2.266, -91.951) kind 3: -9.849\n    test 704 GeoidKarney('egm2008-1.pgm').height(-18.672, 42.547) kind 3: -10.490  FAILED, KNOWN, expected -10.491\n    test 705 GeoidKarney('egm2008-1.pgm').height(-41.44, 157.413) kind 3: 0.243  FAILED, KNOWN, expected 0.244\n    test 706 GeoidKarney('egm2008-1.pgm').height(53.686, -79.375) kind 3: -43.820  FAILED, KNOWN, expected -43.821\n    test 707 GeoidKarney('egm2008-1.pgm').height(39.26, -30.351) kind 3: 57.401\n    test 708 GeoidKarney('egm2008-1.pgm').height(-51.699, -141.493) kind 3: -17.889  FAILED, KNOWN, expected -17.890\n    test 709 GeoidKarney('egm2008-1.pgm').height(36.585, 4.515) kind 3: 46.423  FAILED, KNOWN, expected 46.421\n    test 710 GeoidKarney('egm2008-1.pgm').height(39.642, -54.659) kind 3: -14.475\n    test 711 GeoidKarney('egm2008-1.pgm').height(59.761, 166.567) kind 3: 11.118\n    test 712 GeoidKarney('egm2008-1.pgm').height(51.83, 13.357) kind 3: 42.291\n    test 713 GeoidKarney('egm2008-1.pgm').height(-36.531, -175.431) kind 3: 22.327  FAILED, KNOWN, expected 22.326\n    test 714 GeoidKarney('egm2008-1.pgm').height(-37.08, 125.264) kind 3: -33.098\n    test 715 GeoidKarney('egm2008-1.pgm').height(-68.651, 92.732) kind 3: 9.431  FAILED, KNOWN, expected 9.430\n    test 716 GeoidKarney('egm2008-1.pgm').height(35.087, 45.336) kind 3: 6.032\n    test 717 GeoidKarney('egm2008-1.pgm').height(-61.356, -169.379) kind 3: -44.330\n    test 718 GeoidKarney('egm2008-1.pgm').height(-36.955, 179.12) kind 3: 21.775\n    test 719 GeoidKarney('egm2008-1.pgm').height(10.248, -6.714) kind 3: 29.243\n    test 720 GeoidKarney('egm2008-1.pgm').height(36.868, 84.602) kind 3: -40.677  FAILED, KNOWN, expected -40.676\n    test 721 GeoidKarney('egm2008-1.pgm').height(28.637, 88.933) kind 3: -31.352  FAILED, KNOWN, expected -31.353\n    test 722 GeoidKarney('egm2008-1.pgm').height(54.811, -99.968) kind 3: -32.700  FAILED, KNOWN, expected -32.701\n    test 723 GeoidKarney('egm2008-1.pgm').height(7.611, 145.911) kind 3: 60.628  FAILED, KNOWN, expected 60.629\n    test 724 GeoidKarney('egm2008-1.pgm').height(59.412, 170.102) kind 3: 6.617\n    test 725 GeoidKarney('egm2008-1.pgm').height(-61.469, 126.144) kind 3: -31.887\n    test 726 GeoidKarney('egm2008-1.pgm').height(18.514, -137.083) kind 3: -26.536  FAILED, KNOWN, expected -26.535\n    test 727 GeoidKarney('egm2008-1.pgm').height(7.854, -126.799) kind 3: -29.631  FAILED, KNOWN, expected -29.630\n    test 728 GeoidKarney('egm2008-1.pgm').height(47.489, 134.183) kind 3: 22.274  FAILED, KNOWN, expected 22.275\n    test 729 GeoidKarney('egm2008-1.pgm').height(-34.144, -11.922) kind 3: 17.095  FAILED, KNOWN, expected 17.094\n    test 730 GeoidKarney('egm2008-1.pgm').height(-58.389, 117.458) kind 3: -20.940  FAILED, KNOWN, expected -20.941\n    test 731 GeoidKarney('egm2008-1.pgm').height(9.773, 95.846) kind 3: -42.740\n    test 732 GeoidKarney('egm2008-1.pgm').height(-53.12, 136.994) kind 3: -21.651\n    test 733 GeoidKarney('egm2008-1.pgm').height(-50.35, 0.075) kind 3: 25.240\n    test 734 GeoidKarney('egm2008-1.pgm').height(31.438, -170.879) kind 3: -8.758\n    test 735 GeoidKarney('egm2008-1.pgm').height(37.541, -153.024) kind 3: -19.606  FAILED, KNOWN, expected -19.607\n    test 736 GeoidKarney('egm2008-1.pgm').height(27.586, 2.444) kind 3: 26.258\n    test 737 GeoidKarney('egm2008-1.pgm').height(-26.139, -106.201) kind 3: -3.823  FAILED, KNOWN, expected -3.824\n    test 738 GeoidKarney('egm2008-1.pgm').height(-33.426, -14.84) kind 3: 18.195\n    test 739 GeoidKarney('egm2008-1.pgm').height(39.586, -153.019) kind 3: -17.724  FAILED, KNOWN, expected -17.725\n    test 740 GeoidKarney('egm2008-1.pgm').height(-60.79, -2.578) kind 3: 14.512  FAILED, KNOWN, expected 14.513\n    test 741 GeoidKarney('egm2008-1.pgm').height(-20.131, 21.975) kind 3: 16.808  FAILED, KNOWN, expected 16.809\n    test 742 GeoidKarney('egm2008-1.pgm').height(75.649, 99.921) kind 3: -8.025  FAILED, KNOWN, expected -8.026\n    test 743 GeoidKarney('egm2008-1.pgm').height(-0.385, -23.788) kind 3: 9.689  FAILED, KNOWN, expected 9.688\n    test 744 GeoidKarney('egm2008-1.pgm').height(-51.56, -50.327) kind 3: 6.218\n    test 745 GeoidKarney('egm2008-1.pgm').height(-43.129, -167.271) kind 3: -2.725  FAILED, KNOWN, expected -2.724\n    test 746 GeoidKarney('egm2008-1.pgm').height(46.374, 71.948) kind 3: -42.566  FAILED, KNOWN, expected -42.565\n    test 747 GeoidKarney('egm2008-1.pgm').height(-22.783, 140.657) kind 3: 38.342  FAILED, KNOWN, expected 38.341\n    test 748 GeoidKarney('egm2008-1.pgm').height(-12.056, 122.804) kind 3: 33.888  FAILED, KNOWN, expected 33.889\n    test 749 GeoidKarney('egm2008-1.pgm').height(30.127, 94.738) kind 3: -37.381  FAILED, KNOWN, expected -37.380\n    test 750 GeoidKarney('egm2008-1.pgm').height(46.296, -174.479) kind 3: -1.857  FAILED, KNOWN, expected -1.858\n    test 751 GeoidKarney('egm2008-1.pgm').height(34.99, 15.052) kind 3: 34.196  FAILED, KNOWN, expected 34.195\n    test 752 GeoidKarney('egm2008-1.pgm').height(-51.287, 90.565) kind 3: 12.767\n    test 753 GeoidKarney('egm2008-1.pgm').height(34.217, 141.302) kind 3: 15.612\n    test 754 GeoidKarney('egm2008-1.pgm').height(-40.423, -142.787) kind 3: -11.063\n    test 755 GeoidKarney('egm2008-1.pgm').height(-17.854, -170.216) kind 3: 27.386  FAILED, KNOWN, expected 27.387\n    test 756 GeoidKarney('egm2008-1.pgm').height(47.803, 112.701) kind 3: -23.817\n    test 757 GeoidKarney('egm2008-1.pgm').height(-23.276, 133.454) kind 3: 18.713  FAILED, KNOWN, expected 18.712\n    test 758 GeoidKarney('egm2008-1.pgm').height(-26.884, -36.571) kind 3: -7.343  FAILED, KNOWN, expected -7.344\n    test 759 GeoidKarney('egm2008-1.pgm').height(-37.106, 31.128) kind 3: 29.997  FAILED, KNOWN, expected 29.998\n    test 760 GeoidKarney('egm2008-1.pgm').height(-75.363, -173.674) kind 3: -61.869\n    test 761 GeoidKarney('egm2008-1.pgm').height(-18.305, 69.016) kind 3: -24.938  FAILED, KNOWN, expected -24.937\n    test 762 GeoidKarney('egm2008-1.pgm').height(39.527, 23.58) kind 3: 38.557  FAILED, KNOWN, expected 38.556\n    test 763 GeoidKarney('egm2008-1.pgm').height(68.903, 30.97) kind 3: 19.671\n    test 764 GeoidKarney('egm2008-1.pgm').height(53.937, 168.318) kind 3: 2.273  FAILED, KNOWN, expected 2.272\n    test 765 GeoidKarney('egm2008-1.pgm').height(-38.6, 64.812) kind 3: 24.863\n    test 766 GeoidKarney('egm2008-1.pgm').height(-41.396, -69.739) kind 3: 21.636\n    test 767 GeoidKarney('egm2008-1.pgm').height(50.158, 72.319) kind 3: -33.850  FAILED, KNOWN, expected -33.851\n    test 768 GeoidKarney('egm2008-1.pgm').height(27.692, 176.153) kind 3: -5.299\n    test 769 GeoidKarney('egm2008-1.pgm').height(-48.419, 170.454) kind 3: -6.789\n    test 770 GeoidKarney('egm2008-1.pgm').height(-65.346, -124.976) kind 3: -35.030\n    test 771 GeoidKarney('egm2008-1.pgm').height(-51.873, 167.266) kind 3: -15.338\n    test 772 GeoidKarney('egm2008-1.pgm').height(-7.263, 84.308) kind 3: -79.356\n    test 773 GeoidKarney('egm2008-1.pgm').height(-1.461, -105.458) kind 3: -16.649  FAILED, KNOWN, expected -16.650\n    test 774 GeoidKarney('egm2008-1.pgm').height(7.684, 161.873) kind 3: 36.359\n    test 775 GeoidKarney('egm2008-1.pgm').height(-31.475, -158.52) kind 3: 3.614  FAILED, KNOWN, expected 3.615\n    test 776 GeoidKarney('egm2008-1.pgm').height(-36.187, 62.917) kind 3: 23.946  FAILED, KNOWN, expected 23.947\n    test 777 GeoidKarney('egm2008-1.pgm').height(16.003, 141.687) kind 3: 51.494  FAILED, KNOWN, expected 51.495\n    test 778 GeoidKarney('egm2008-1.pgm').height(30.182, 86.261) kind 3: -30.909  FAILED, KNOWN, expected -30.910\n    test 779 GeoidKarney('egm2008-1.pgm').height(-77.304, 159.498) kind 3: -52.131\n    test 780 GeoidKarney('egm2008-1.pgm').height(39.536, 139.795) kind 3: 37.046  FAILED, KNOWN, expected 37.045\n    test 781 GeoidKarney('egm2008-1.pgm').height(8.569, 134.618) kind 3: 64.181  FAILED, KNOWN, expected 64.180\n    test 782 GeoidKarney('egm2008-1.pgm').height(14.473, 90.596) kind 3: -62.475\n    test 783 GeoidKarney('egm2008-1.pgm').height(-13.138, -99.589) kind 3: -8.454\n    test 784 GeoidKarney('egm2008-1.pgm').height(34.212, -26.307) kind 3: 40.834\n    test 785 GeoidKarney('egm2008-1.pgm').height(21.89, 76.371) kind 3: -60.455\n    test 786 GeoidKarney('egm2008-1.pgm').height(29.793, 120.487) kind 3: 9.728  FAILED, KNOWN, expected 9.727\n    test 787 GeoidKarney('egm2008-1.pgm').height(15.724, 122.714) kind 3: 32.141  FAILED, KNOWN, expected 32.142\n    test 788 GeoidKarney('egm2008-1.pgm').height(-66.208, -78.499) kind 3: -6.221  FAILED, KNOWN, expected -6.220\n    test 789 GeoidKarney('egm2008-1.pgm').height(-39.507, 55.809) kind 3: 32.488  FAILED, KNOWN, expected 32.489\n    test 790 GeoidKarney('egm2008-1.pgm').height(28.159, 51.476) kind 3: -24.692\n    test 791 GeoidKarney('egm2008-1.pgm').height(-36.207, 120.205) kind 3: -38.749\n    test 792 GeoidKarney('egm2008-1.pgm').height(30.575, -99.998) kind 3: -23.254  FAILED, KNOWN, expected -23.255\n    test 793 GeoidKarney('egm2008-1.pgm').height(-16.993, 37.136) kind 3: -13.454  FAILED, KNOWN, expected -13.455\n    test 794 GeoidKarney('egm2008-1.pgm').height(-11.477, 12.039) kind 3: 16.627\n    test 795 GeoidKarney('egm2008-1.pgm').height(30.428, -144.765) kind 3: -22.221\n    test 796 GeoidKarney('egm2008-1.pgm').height(-17.44, -92.424) kind 3: -4.836\n    test 797 GeoidKarney('egm2008-1.pgm').height(40.203, 143.43) kind 3: 19.571\n    test 798 GeoidKarney('egm2008-1.pgm').height(-37.098, -106.574) kind 3: -9.227\n    test 799 GeoidKarney('egm2008-1.pgm').height(54.62, -68.413) kind 3: -23.248\n    test 800 GeoidKarney('egm2008-1.pgm').height(-31.633, 148.182) kind 3: 24.829\n    test 801 GeoidKarney('egm2008-1.pgm').height(-56.07, -141.407) kind 3: -21.706  FAILED, KNOWN, expected -21.705\n    test 802 GeoidKarney('egm2008-1.pgm').height(-8.195, -52.691) kind 3: -17.054  FAILED, KNOWN, expected -17.053\n    test 803 GeoidKarney('egm2008-1.pgm').height(17.851, 24.749) kind 3: 11.715  FAILED, KNOWN, expected 11.716\n    test 804 GeoidKarney('egm2008-1.pgm').height(0.349, -108.333) kind 3: -19.529  FAILED, KNOWN, expected -19.530\n    test 805 GeoidKarney('egm2008-1.pgm').height(15.038, 126.191) kind 3: 45.929\n    test 806 GeoidKarney('egm2008-1.pgm').height(-21.111, -123.696) kind 3: -8.283\n    test 807 GeoidKarney('egm2008-1.pgm').height(30.947, 173.002) kind 3: -8.467\n    test 808 GeoidKarney('egm2008-1.pgm').height(-10.698, -144.091) kind 3: -1.829\n    test 809 GeoidKarney('egm2008-1.pgm').height(-29.412, 124.753) kind 3: -16.505  FAILED, KNOWN, expected -16.506\n    test 810 GeoidKarney('egm2008-1.pgm').height(38.224, -137.189) kind 3: -35.384\n    test 811 GeoidKarney('egm2008-1.pgm').height(36.064, -132.409) kind 3: -38.962  FAILED, KNOWN, expected -38.963\n    test 812 GeoidKarney('egm2008-1.pgm').height(29.975, 178.076) kind 3: -6.956\n    test 813 GeoidKarney('egm2008-1.pgm').height(-21.346, 169.26) kind 3: 51.006  FAILED, KNOWN, expected 51.005\n    test 814 GeoidKarney('egm2008-1.pgm').height(49.282, -152.934) kind 3: 1.193  FAILED, KNOWN, expected 1.192\n    test 815 GeoidKarney('egm2008-1.pgm').height(16.349, -99.962) kind 3: -15.038\n    test 816 GeoidKarney('egm2008-1.pgm').height(-14.293, -167.34) kind 3: 17.791\n    test 817 GeoidKarney('egm2008-1.pgm').height(47.166, -38.523) kind 3: 44.653  FAILED, KNOWN, expected 44.652\n    test 818 GeoidKarney('egm2008-1.pgm').height(-58.911, 114.347) kind 3: -17.972  FAILED, KNOWN, expected -17.971\n    test 819 GeoidKarney('egm2008-1.pgm').height(-9.055, 111.294) kind 3: 11.630  FAILED, KNOWN, expected 11.631\n    test 820 GeoidKarney('egm2008-1.pgm').height(18.391, 29.692) kind 3: 7.394\n    test 821 GeoidKarney('egm2008-1.pgm').height(-15.074, 22.153) kind 3: 7.932\n    test 822 GeoidKarney('egm2008-1.pgm').height(-4.235, 62.001) kind 3: -60.594  FAILED, KNOWN, expected -60.593\n    test 823 GeoidKarney('egm2008-1.pgm').height(15.171, -86.583) kind 3: 4.384\n    test 824 GeoidKarney('egm2008-1.pgm').height(79.254, 112.116) kind 3: 1.296  FAILED, KNOWN, expected 1.297\n    test 825 GeoidKarney('egm2008-1.pgm').height(15.947, 156.093) kind 3: 30.852\n    test 826 GeoidKarney('egm2008-1.pgm').height(68.371, -177.382) kind 3: 2.705  FAILED, KNOWN, expected 2.704\n    test 827 GeoidKarney('egm2008-1.pgm').height(-41.931, -72.093) kind 3: 21.264\n    test 828 GeoidKarney('egm2008-1.pgm').height(-1.193, -143.133) kind 3: 5.443\n    test 829 GeoidKarney('egm2008-1.pgm').height(-37.006, 154.513) kind 3: 9.998\n    test 830 GeoidKarney('egm2008-1.pgm').height(-22.148, 9.938) kind 3: 22.428\n    test 831 GeoidKarney('egm2008-1.pgm').height(24.329, 109.044) kind 3: -23.155  FAILED, KNOWN, expected -23.154\n    test 832 GeoidKarney('egm2008-1.pgm').height(-54.878, 114.691) kind 3: -17.662\n    test 833 GeoidKarney('egm2008-1.pgm').height(45.601, -80.458) kind 3: -36.840  FAILED, KNOWN, expected -36.839\n    test 834 GeoidKarney('egm2008-1.pgm').height(2.372, 58.974) kind 3: -61.220  FAILED, KNOWN, expected -61.221\n    test 835 GeoidKarney('egm2008-1.pgm').height(15.937, 165.854) kind 3: 20.355\n    test 836 GeoidKarney('egm2008-1.pgm').height(4.889, -24.213) kind 3: 13.147\n    test 837 GeoidKarney('egm2008-1.pgm').height(-11.392, 179.558) kind 3: 41.073  FAILED, KNOWN, expected 41.072\n    test 838 GeoidKarney('egm2008-1.pgm').height(58.246, 4.862) kind 3: 42.982\n    test 839 GeoidKarney('egm2008-1.pgm').height(34.302, -109.109) kind 3: -22.997  FAILED, KNOWN, expected -22.998\n    test 840 GeoidKarney('egm2008-1.pgm').height(-58.196, 117.306) kind 3: -20.662\n    test 841 GeoidKarney('egm2008-1.pgm').height(44.5, 173.769) kind 3: -8.438\n    test 842 GeoidKarney('egm2008-1.pgm').height(-28.863, -139.775) kind 3: -8.711  FAILED, KNOWN, expected -8.712\n    test 843 GeoidKarney('egm2008-1.pgm').height(19.507, -96.099) kind 3: -12.653\n    test 844 GeoidKarney('egm2008-1.pgm').height(-42.488, -73.907) kind 3: 17.166\n    test 845 GeoidKarney('egm2008-1.pgm').height(46.138, -141.429) kind 3: -19.873  FAILED, KNOWN, expected -19.874\n    test 846 GeoidKarney('egm2008-1.pgm').height(60.507, 93.743) kind 3: -31.124\n    test 847 GeoidKarney('egm2008-1.pgm').height(26.219, -145.434) kind 3: -17.306  FAILED, KNOWN, expected -17.307\n    test 848 GeoidKarney('egm2008-1.pgm').height(-28.687, 3.37) kind 3: 23.435  FAILED, KNOWN, expected 23.434\n    test 849 GeoidKarney('egm2008-1.pgm').height(-15.008, 117.45) kind 3: 4.508\n    test 850 GeoidKarney('egm2008-1.pgm').height(40.71, 144.095) kind 3: 11.550  FAILED, KNOWN, expected 11.549\n    test 851 GeoidKarney('egm2008-1.pgm').height(20.823, -173.611) kind 3: 5.749  FAILED, KNOWN, expected 5.748\n    test 852 GeoidKarney('egm2008-1.pgm').height(16.776, -3.009) kind 3: 28.788\n    test 853 GeoidKarney('egm2008-1.pgm').height(41.0, -95.0) kind 3: -30.589\n    test 854 GeoidKarney('egm2008-1.pgm').height(49.0, -120.5) kind 3: -15.273\n    test 855 GeoidKarney('egm2008-1.pgm').height(49.0, -103.5) kind 3: -18.624\n    test 856 GeoidKarney('egm2008-1.pgm').height(49.0, -86.5) kind 3: -37.872  FAILED, KNOWN, expected -37.873\n    test 857 GeoidKarney('egm2008-1.pgm').height(49.0, -69.5) kind 3: -26.511\n    test 858 GeoidKarney('egm2008-1.pgm').height(33.0, -120.5) kind 3: -39.600\n    test 859 GeoidKarney('egm2008-1.pgm').height(33.0, -103.5) kind 3: -22.689\n    test 860 GeoidKarney('egm2008-1.pgm').height(33.0, -86.5) kind 3: -30.067\n    test 861 GeoidKarney('egm2008-1.pgm').height(33.0, -69.5) kind 3: -48.093\n\n    test 862 GeoidKarney('egm2008-1.pgm').height() kind 3, hits 0, eps max (in 0 FAILED): 0.001323\n    test 863 GeoidKarney('egm2008-1.pgm').height() kind 3, hits 0, eps mean (of 210 total): 0.000468\n    test 864 GeoidKarney('egm2008-1.pgm').height() kind 3, hits 0, eps stdev (of 210 total): 0.000333\n    test 865 GeoidKarney('egm2008-1.pgm').toStr: GeoidKarney('egm2008-1.pgm'): lowerleft(-90.0, -180.0, -30.15), upperright(90.0, 180.0, 14.898), center(0.0, 0.0, 17.226), highest(-8.4, 147.367, 85.839), lowest(4.7, 78.767, -106.911)\n\n    test 866 closed: True\n    test 867 copy(<class 'type'>): (<class 'pygeodesy.geoids.GeoidKarney'>, True)\n    test 868 GeoidKarney.copy(): (<class 'pygeodesy.geoids.GeoidKarney'>, True)\n\n    213 tests skipped (426): no scipy\n    test 869 GeoidKarney('egm84-15.pgm').height(-76.981, 34.17) kind 2: 11.727  FAILED, KNOWN, expected 11.729\n    test 870 GeoidKarney('egm84-15.pgm').height(79.695, 88.806) kind 2: 0.280  FAILED, KNOWN, expected 0.270\n    test 871 GeoidKarney('egm84-15.pgm').height(-15.245, 168.748) kind 2: 67.071  FAILED, KNOWN, expected 67.074\n    test 872 GeoidKarney('egm84-15.pgm').height(-19.379, 15.855) kind 2: 25.366  FAILED, KNOWN, expected 25.344\n    test 873 GeoidKarney('egm84-15.pgm').height(43.378, -130.552) kind 2: -28.913  FAILED, KNOWN, expected -28.919\n    test 874 GeoidKarney('egm84-15.pgm').height(-16.075, 21.795) kind 2: 14.383  FAILED, KNOWN, expected 14.386\n    test 875 GeoidKarney('egm84-15.pgm').height(-11.256, -73.75) kind 2: 30.701  FAILED, KNOWN, expected 30.700\n    test 876 GeoidKarney('egm84-15.pgm').height(69.017, -15.921) kind 2: 62.222  FAILED, KNOWN, expected 62.225\n    test 877 GeoidKarney('egm84-15.pgm').height(2.221, 139.739) kind 2: 70.221  FAILED, KNOWN, expected 70.222\n    test 878 GeoidKarney('egm84-15.pgm').height(-9.097, 119.142) kind 2: 34.290  FAILED, KNOWN, expected 34.336\n    test 879 GeoidKarney('egm84-15.pgm').height(-28.524, -22.192) kind 2: 8.205  FAILED, KNOWN, expected 8.206\n    test 880 GeoidKarney('egm84-15.pgm').height(12.272, -136.424) kind 2: -20.068  FAILED, KNOWN, expected -20.074\n    test 881 GeoidKarney('egm84-15.pgm').height(-15.203, -85.604) kind 2: -3.129\n    test 882 GeoidKarney('egm84-15.pgm').height(-63.736, -77.17) kind 2: -3.214  FAILED, KNOWN, expected -3.217\n    test 883 GeoidKarney('egm84-15.pgm').height(-48.771, -90.102) kind 2: -1.536  FAILED, KNOWN, expected -1.531\n    test 884 GeoidKarney('egm84-15.pgm').height(-0.179, -126.368) kind 2: -16.742\n    test 885 GeoidKarney('egm84-15.pgm').height(1.586, -128.887) kind 2: -15.418  FAILED, KNOWN, expected -15.412\n    test 886 GeoidKarney('egm84-15.pgm').height(-48.781, -2.684) kind 2: 25.077  FAILED, KNOWN, expected 25.078\n    test 887 GeoidKarney('egm84-15.pgm').height(-49.092, 136.862) kind 2: -18.114  FAILED, KNOWN, expected -18.120\n    test 888 GeoidKarney('egm84-15.pgm').height(47.732, 17.552) kind 2: 46.230  FAILED, KNOWN, expected 46.224\n    test 889 GeoidKarney('egm84-15.pgm').height(-49.11, 85.706) kind 2: 18.648  FAILED, KNOWN, expected 18.649\n    test 890 GeoidKarney('egm84-15.pgm').height(-49.162, 40.321) kind 2: 44.759  FAILED, KNOWN, expected 44.764\n    test 891 GeoidKarney('egm84-15.pgm').height(3.498, 158.118) kind 2: 51.095  FAILED, KNOWN, expected 51.089\n    test 892 GeoidKarney('egm84-15.pgm').height(-35.616, 122.648) kind 2: -34.436  FAILED, KNOWN, expected -34.471\n    test 893 GeoidKarney('egm84-15.pgm').height(56.598, -96.114) kind 2: -39.124\n    test 894 GeoidKarney('egm84-15.pgm').height(-31.85, 149.121) kind 2: 28.131  FAILED, KNOWN, expected 28.142\n    test 895 GeoidKarney('egm84-15.pgm').height(-26.569, -177.792) kind 2: 49.606  FAILED, KNOWN, expected 49.619\n    test 896 GeoidKarney('egm84-15.pgm').height(76.735, -65.753) kind 2: 22.568  FAILED, KNOWN, expected 22.575\n    test 897 GeoidKarney('egm84-15.pgm').height(-21.404, -122.268) kind 2: -6.894  FAILED, KNOWN, expected -6.893\n    test 898 GeoidKarney('egm84-15.pgm').height(-77.133, -65.474) kind 2: -15.017  FAILED, KNOWN, expected -15.012\n    test 899 GeoidKarney('egm84-15.pgm').height(-58.812, 2.276) kind 2: 18.777  FAILED, KNOWN, expected 18.776\n    test 900 GeoidKarney('egm84-15.pgm').height(4.415, 155.683) kind 2: 53.644  FAILED, KNOWN, expected 53.645\n    test 901 GeoidKarney('egm84-15.pgm').height(-28.146, 107.081) kind 2: -39.058  FAILED, KNOWN, expected -39.074\n    test 902 GeoidKarney('egm84-15.pgm').height(-10.551, -126.69) kind 2: -9.643  FAILED, KNOWN, expected -9.645\n    test 903 GeoidKarney('egm84-15.pgm').height(-25.444, -103.337) kind 2: -2.520  FAILED, KNOWN, expected -2.528\n    test 904 GeoidKarney('egm84-15.pgm').height(24.436, 46.159) kind 2: -6.918  FAILED, KNOWN, expected -6.907\n    test 905 GeoidKarney('egm84-15.pgm').height(-72.889, 37.107) kind 2: 21.758  FAILED, KNOWN, expected 21.711\n    test 906 GeoidKarney('egm84-15.pgm').height(-19.629, 13.245) kind 2: 25.617  FAILED, KNOWN, expected 25.611\n    test 907 GeoidKarney('egm84-15.pgm').height(-7.602, 171.265) kind 2: 41.585  FAILED, KNOWN, expected 41.569\n    test 908 GeoidKarney('egm84-15.pgm').height(-45.364, -1.876) kind 2: 23.283  FAILED, KNOWN, expected 23.280\n    test 909 GeoidKarney('egm84-15.pgm').height(-7.292, -69.18) kind 2: 24.497  FAILED, KNOWN, expected 24.502\n    test 910 GeoidKarney('egm84-15.pgm').height(-31.566, -166.689) kind 2: 14.825  FAILED, KNOWN, expected 14.826\n    test 911 GeoidKarney('egm84-15.pgm').height(-82.751, -162.085) kind 2: -45.104\n    test 912 GeoidKarney('egm84-15.pgm').height(-40.7, 99.466) kind 2: -17.254  FAILED, KNOWN, expected -17.252\n    test 913 GeoidKarney('egm84-15.pgm').height(48.676, 39.69) kind 2: 12.984  FAILED, KNOWN, expected 12.972\n    test 914 GeoidKarney('egm84-15.pgm').height(74.817, -78.404) kind 2: 4.773  FAILED, KNOWN, expected 4.776\n    test 915 GeoidKarney('egm84-15.pgm').height(-81.032, -63.865) kind 2: -23.577\n    test 916 GeoidKarney('egm84-15.pgm').height(74.022, 9.432) kind 2: 43.884  FAILED, KNOWN, expected 43.885\n    test 917 GeoidKarney('egm84-15.pgm').height(-75.071, 17.579) kind 2: 17.064  FAILED, KNOWN, expected 17.072\n    test 918 GeoidKarney('egm84-15.pgm').height(-12.546, -54.851) kind 2: -6.637  FAILED, KNOWN, expected -6.643\n    test 919 GeoidKarney('egm84-15.pgm').height(-13.621, 42.408) kind 2: -23.332  FAILED, KNOWN, expected -23.325\n    test 920 GeoidKarney('egm84-15.pgm').height(-2.266, -91.951) kind 2: -10.689  FAILED, KNOWN, expected -10.698\n    test 921 GeoidKarney('egm84-15.pgm').height(-18.672, 42.547) kind 2: -10.305  FAILED, KNOWN, expected -10.265\n    test 922 GeoidKarney('egm84-15.pgm').height(-41.44, 157.413) kind 2: 0.692  FAILED, KNOWN, expected 0.689\n    test 923 GeoidKarney('egm84-15.pgm').height(53.686, -79.375) kind 2: -43.763  FAILED, KNOWN, expected -43.758\n    test 924 GeoidKarney('egm84-15.pgm').height(39.26, -30.351) kind 2: 57.551  FAILED, KNOWN, expected 57.554\n    test 925 GeoidKarney('egm84-15.pgm').height(-51.699, -141.493) kind 2: -16.939  FAILED, KNOWN, expected -16.936\n    test 926 GeoidKarney('egm84-15.pgm').height(36.585, 4.515) kind 2: 45.227  FAILED, KNOWN, expected 45.295\n    test 927 GeoidKarney('egm84-15.pgm').height(39.642, -54.659) kind 2: -13.585  FAILED, KNOWN, expected -13.586\n    test 928 GeoidKarney('egm84-15.pgm').height(59.761, 166.567) kind 2: 11.469  FAILED, KNOWN, expected 11.468\n    test 929 GeoidKarney('egm84-15.pgm').height(51.83, 13.357) kind 2: 42.090  FAILED, KNOWN, expected 42.092\n    test 930 GeoidKarney('egm84-15.pgm').height(-36.531, -175.431) kind 2: 22.828  FAILED, KNOWN, expected 22.830\n    test 931 GeoidKarney('egm84-15.pgm').height(-37.08, 125.264) kind 2: -32.300  FAILED, KNOWN, expected -32.302\n    test 932 GeoidKarney('egm84-15.pgm').height(-68.651, 92.732) kind 2: 9.212  FAILED, KNOWN, expected 9.228\n    test 933 GeoidKarney('egm84-15.pgm').height(35.087, 45.336) kind 2: 6.000  FAILED, KNOWN, expected 5.965\n    test 934 GeoidKarney('egm84-15.pgm').height(-61.356, -169.379) kind 2: -45.000  FAILED, KNOWN, expected -45.013\n    test 935 GeoidKarney('egm84-15.pgm').height(-36.955, 179.12) kind 2: 21.148  FAILED, KNOWN, expected 21.118\n    test 936 GeoidKarney('egm84-15.pgm').height(10.248, -6.714) kind 2: 30.500  FAILED, KNOWN, expected 30.497\n    test 937 GeoidKarney('egm84-15.pgm').height(36.868, 84.602) kind 2: -40.416  FAILED, KNOWN, expected -40.396\n    test 938 GeoidKarney('egm84-15.pgm').height(28.637, 88.933) kind 2: -31.726  FAILED, KNOWN, expected -31.704\n    test 939 GeoidKarney('egm84-15.pgm').height(54.811, -99.968) kind 2: -32.271  FAILED, KNOWN, expected -32.277\n    test 940 GeoidKarney('egm84-15.pgm').height(7.611, 145.911) kind 2: 61.016  FAILED, KNOWN, expected 61.024\n    test 941 GeoidKarney('egm84-15.pgm').height(59.412, 170.102) kind 2: 5.017  FAILED, KNOWN, expected 4.994\n    test 942 GeoidKarney('egm84-15.pgm').height(-61.469, 126.144) kind 2: -30.240  FAILED, KNOWN, expected -30.237\n    test 943 GeoidKarney('egm84-15.pgm').height(18.514, -137.083) kind 2: -26.007  FAILED, KNOWN, expected -26.006\n    test 944 GeoidKarney('egm84-15.pgm').height(7.854, -126.799) kind 2: -29.280  FAILED, KNOWN, expected -29.283\n    test 945 GeoidKarney('egm84-15.pgm').height(47.489, 134.183) kind 2: 22.400  FAILED, KNOWN, expected 22.394\n    test 946 GeoidKarney('egm84-15.pgm').height(-34.144, -11.922) kind 2: 17.549  FAILED, KNOWN, expected 17.550\n    test 947 GeoidKarney('egm84-15.pgm').height(-58.389, 117.458) kind 2: -20.621  FAILED, KNOWN, expected -20.622\n    test 948 GeoidKarney('egm84-15.pgm').height(9.773, 95.846) kind 2: -41.463  FAILED, KNOWN, expected -41.484\n    test 949 GeoidKarney('egm84-15.pgm').height(-53.12, 136.994) kind 2: -20.969  FAILED, KNOWN, expected -20.968\n    test 950 GeoidKarney('egm84-15.pgm').height(-50.35, 0.075) kind 2: 25.561  FAILED, KNOWN, expected 25.568\n    test 951 GeoidKarney('egm84-15.pgm').height(31.438, -170.879) kind 2: -8.574  FAILED, KNOWN, expected -8.581\n    test 952 GeoidKarney('egm84-15.pgm').height(37.541, -153.024) kind 2: -18.329\n    test 953 GeoidKarney('egm84-15.pgm').height(27.586, 2.444) kind 2: 25.003  FAILED, KNOWN, expected 25.001\n    test 954 GeoidKarney('egm84-15.pgm').height(-26.139, -106.201) kind 2: -2.945  FAILED, KNOWN, expected -2.940\n    test 955 GeoidKarney('egm84-15.pgm').height(-33.426, -14.84) kind 2: 18.220  FAILED, KNOWN, expected 18.228\n    test 956 GeoidKarney('egm84-15.pgm').height(39.586, -153.019) kind 2: -16.511  FAILED, KNOWN, expected -16.507\n    test 957 GeoidKarney('egm84-15.pgm').height(-60.79, -2.578) kind 2: 14.277  FAILED, KNOWN, expected 14.275\n    test 958 GeoidKarney('egm84-15.pgm').height(-20.131, 21.975) kind 2: 16.866  FAILED, KNOWN, expected 16.852\n    test 959 GeoidKarney('egm84-15.pgm').height(75.649, 99.921) kind 2: -6.870  FAILED, KNOWN, expected -6.872\n    test 960 GeoidKarney('egm84-15.pgm').height(-0.385, -23.788) kind 2: 8.987  FAILED, KNOWN, expected 9.006\n    test 961 GeoidKarney('egm84-15.pgm').height(-51.56, -50.327) kind 2: 6.277  FAILED, KNOWN, expected 6.296\n    test 962 GeoidKarney('egm84-15.pgm').height(-43.129, -167.271) kind 2: -1.483  FAILED, KNOWN, expected -1.481\n    test 963 GeoidKarney('egm84-15.pgm').height(46.374, 71.948) kind 2: -40.929  FAILED, KNOWN, expected -40.915\n    test 964 GeoidKarney('egm84-15.pgm').height(-22.783, 140.657) kind 2: 37.481  FAILED, KNOWN, expected 37.495\n    test 965 GeoidKarney('egm84-15.pgm').height(-12.056, 122.804) kind 2: 32.222  FAILED, KNOWN, expected 32.258\n    test 966 GeoidKarney('egm84-15.pgm').height(30.127, 94.738) kind 2: -41.529\n    test 967 GeoidKarney('egm84-15.pgm').height(46.296, -174.479) kind 2: -1.377\n    test 968 GeoidKarney('egm84-15.pgm').height(34.99, 15.052) kind 2: 35.263  FAILED, KNOWN, expected 35.280\n    test 969 GeoidKarney('egm84-15.pgm').height(-51.287, 90.565) kind 2: 12.958\n    test 970 GeoidKarney('egm84-15.pgm').height(34.217, 141.302) kind 2: 18.423  FAILED, KNOWN, expected 18.307\n    test 971 GeoidKarney('egm84-15.pgm').height(-40.423, -142.787) kind 2: -10.400\n    test 972 GeoidKarney('egm84-15.pgm').height(-17.854, -170.216) kind 2: 28.649  FAILED, KNOWN, expected 28.638\n    test 973 GeoidKarney('egm84-15.pgm').height(47.803, 112.701) kind 2: -24.060  FAILED, KNOWN, expected -24.059\n    test 974 GeoidKarney('egm84-15.pgm').height(-23.276, 133.454) kind 2: 18.800  FAILED, KNOWN, expected 18.806\n    test 975 GeoidKarney('egm84-15.pgm').height(-26.884, -36.571) kind 2: -6.808  FAILED, KNOWN, expected -6.820\n    test 976 GeoidKarney('egm84-15.pgm').height(-37.106, 31.128) kind 2: 31.485  FAILED, KNOWN, expected 31.486\n    test 977 GeoidKarney('egm84-15.pgm').height(-75.363, -173.674) kind 2: -62.021  FAILED, KNOWN, expected -62.024\n    test 978 GeoidKarney('egm84-15.pgm').height(-18.305, 69.016) kind 2: -24.246  FAILED, KNOWN, expected -24.248\n    test 979 GeoidKarney('egm84-15.pgm').height(39.527, 23.58) kind 2: 43.246  FAILED, KNOWN, expected 43.255\n    test 980 GeoidKarney('egm84-15.pgm').height(68.903, 30.97) kind 2: 18.496  FAILED, KNOWN, expected 18.498\n    test 981 GeoidKarney('egm84-15.pgm').height(53.937, 168.318) kind 2: 4.100  FAILED, KNOWN, expected 4.067\n    test 982 GeoidKarney('egm84-15.pgm').height(-38.6, 64.812) kind 2: 25.456  FAILED, KNOWN, expected 25.454\n    test 983 GeoidKarney('egm84-15.pgm').height(-41.396, -69.739) kind 2: 26.619  FAILED, KNOWN, expected 26.657\n    test 984 GeoidKarney('egm84-15.pgm').height(50.158, 72.319) kind 2: -32.003  FAILED, KNOWN, expected -31.966\n    test 985 GeoidKarney('egm84-15.pgm').height(27.692, 176.153) kind 2: -4.422  FAILED, KNOWN, expected -4.415\n    test 986 GeoidKarney('egm84-15.pgm').height(-48.419, 170.454) kind 2: -6.717  FAILED, KNOWN, expected -6.741\n    test 987 GeoidKarney('egm84-15.pgm').height(-65.346, -124.976) kind 2: -34.915  FAILED, KNOWN, expected -34.900\n    test 988 GeoidKarney('egm84-15.pgm').height(-51.873, 167.266) kind 2: -14.214  FAILED, KNOWN, expected -14.223\n    test 989 GeoidKarney('egm84-15.pgm').height(-7.263, 84.308) kind 2: -79.313  FAILED, KNOWN, expected -79.317\n    test 990 GeoidKarney('egm84-15.pgm').height(-1.461, -105.458) kind 2: -16.163\n    test 991 GeoidKarney('egm84-15.pgm').height(7.684, 161.873) kind 2: 36.296  FAILED, KNOWN, expected 36.287\n    test 992 GeoidKarney('egm84-15.pgm').height(-31.475, -158.52) kind 2: 4.066  FAILED, KNOWN, expected 4.068\n    test 993 GeoidKarney('egm84-15.pgm').height(-36.187, 62.917) kind 2: 24.401  FAILED, KNOWN, expected 24.407\n    test 994 GeoidKarney('egm84-15.pgm').height(16.003, 141.687) kind 2: 53.051  FAILED, KNOWN, expected 53.054\n    test 995 GeoidKarney('egm84-15.pgm').height(30.182, 86.261) kind 2: -30.616  FAILED, KNOWN, expected -30.622\n    test 996 GeoidKarney('egm84-15.pgm').height(-77.304, 159.498) kind 2: -53.544  FAILED, KNOWN, expected -53.540\n    test 997 GeoidKarney('egm84-15.pgm').height(39.536, 139.795) kind 2: 36.274  FAILED, KNOWN, expected 36.262\n    test 998 GeoidKarney('egm84-15.pgm').height(8.569, 134.618) kind 2: 64.339  FAILED, KNOWN, expected 64.369\n    test 999 GeoidKarney('egm84-15.pgm').height(14.473, 90.596) kind 2: -61.320  FAILED, KNOWN, expected -61.300\n    test 1000 GeoidKarney('egm84-15.pgm').height(-13.138, -99.589) kind 2: -7.996  FAILED, KNOWN, expected -7.999\n    test 1001 GeoidKarney('egm84-15.pgm').height(34.212, -26.307) kind 2: 41.489  FAILED, KNOWN, expected 41.477\n    test 1002 GeoidKarney('egm84-15.pgm').height(21.89, 76.371) kind 2: -59.881  FAILED, KNOWN, expected -59.876\n    test 1003 GeoidKarney('egm84-15.pgm').height(29.793, 120.487) kind 2: 8.422  FAILED, KNOWN, expected 8.404\n    test 1004 GeoidKarney('egm84-15.pgm').height(15.724, 122.714) kind 2: 39.200  FAILED, KNOWN, expected 39.152\n    test 1005 GeoidKarney('egm84-15.pgm').height(-66.208, -78.499) kind 2: -7.068  FAILED, KNOWN, expected -7.076\n    test 1006 GeoidKarney('egm84-15.pgm').height(-39.507, 55.809) kind 2: 33.179  FAILED, KNOWN, expected 33.178\n    test 1007 GeoidKarney('egm84-15.pgm').height(28.159, 51.476) kind 2: -23.801  FAILED, KNOWN, expected -23.832\n    test 1008 GeoidKarney('egm84-15.pgm').height(-36.207, 120.205) kind 2: -38.175  FAILED, KNOWN, expected -38.206\n    test 1009 GeoidKarney('egm84-15.pgm').height(30.575, -99.998) kind 2: -22.171  FAILED, KNOWN, expected -22.142\n    test 1010 GeoidKarney('egm84-15.pgm').height(-16.993, 37.136) kind 2: -13.746  FAILED, KNOWN, expected -13.765\n    test 1011 GeoidKarney('egm84-15.pgm').height(-11.477, 12.039) kind 2: 16.909  FAILED, KNOWN, expected 16.898\n    test 1012 GeoidKarney('egm84-15.pgm').height(30.428, -144.765) kind 2: -22.479  FAILED, KNOWN, expected -22.474\n    test 1013 GeoidKarney('egm84-15.pgm').height(-17.44, -92.424) kind 2: -4.710  FAILED, KNOWN, expected -4.718\n    test 1014 GeoidKarney('egm84-15.pgm').height(40.203, 143.43) kind 2: 16.680  FAILED, KNOWN, expected 16.635\n    test 1015 GeoidKarney('egm84-15.pgm').height(-37.098, -106.574) kind 2: -9.012\n    test 1016 GeoidKarney('egm84-15.pgm').height(54.62, -68.413) kind 2: -23.556  FAILED, KNOWN, expected -23.543\n    test 1017 GeoidKarney('egm84-15.pgm').height(-31.633, 148.182) kind 2: 26.240  FAILED, KNOWN, expected 26.236\n    test 1018 GeoidKarney('egm84-15.pgm').height(-56.07, -141.407) kind 2: -21.963  FAILED, KNOWN, expected -21.953\n    test 1019 GeoidKarney('egm84-15.pgm').height(-8.195, -52.691) kind 2: -17.959\n    test 1020 GeoidKarney('egm84-15.pgm').height(17.851, 24.749) kind 2: 9.072  FAILED, KNOWN, expected 9.078\n    test 1021 GeoidKarney('egm84-15.pgm').height(0.349, -108.333) kind 2: -19.160  FAILED, KNOWN, expected -19.158\n    test 1022 GeoidKarney('egm84-15.pgm').height(15.038, 126.191) kind 2: 46.776\n    test 1023 GeoidKarney('egm84-15.pgm').height(-21.111, -123.696) kind 2: -8.053  FAILED, KNOWN, expected -8.055\n    test 1024 GeoidKarney('egm84-15.pgm').height(30.947, 173.002) kind 2: -7.681  FAILED, KNOWN, expected -7.696\n    test 1025 GeoidKarney('egm84-15.pgm').height(-10.698, -144.091) kind 2: -1.052  FAILED, KNOWN, expected -1.049\n    test 1026 GeoidKarney('egm84-15.pgm').height(-29.412, 124.753) kind 2: -16.081\n    test 1027 GeoidKarney('egm84-15.pgm').height(38.224, -137.189) kind 2: -35.429  FAILED, KNOWN, expected -35.427\n    test 1028 GeoidKarney('egm84-15.pgm').height(36.064, -132.409) kind 2: -38.648\n    test 1029 GeoidKarney('egm84-15.pgm').height(29.975, 178.076) kind 2: -5.524  FAILED, KNOWN, expected -5.519\n    test 1030 GeoidKarney('egm84-15.pgm').height(-21.346, 169.26) kind 2: 53.448  FAILED, KNOWN, expected 53.431\n    test 1031 GeoidKarney('egm84-15.pgm').height(49.282, -152.934) kind 2: 1.977  FAILED, KNOWN, expected 1.979\n    test 1032 GeoidKarney('egm84-15.pgm').height(16.349, -99.962) kind 2: -13.131  FAILED, KNOWN, expected -13.197\n    test 1033 GeoidKarney('egm84-15.pgm').height(-14.293, -167.34) kind 2: 18.953  FAILED, KNOWN, expected 18.945\n    test 1034 GeoidKarney('egm84-15.pgm').height(47.166, -38.523) kind 2: 45.180  FAILED, KNOWN, expected 45.187\n    test 1035 GeoidKarney('egm84-15.pgm').height(-58.911, 114.347) kind 2: -17.155  FAILED, KNOWN, expected -17.145\n    test 1036 GeoidKarney('egm84-15.pgm').height(-9.055, 111.294) kind 2: 13.136  FAILED, KNOWN, expected 13.146\n    test 1037 GeoidKarney('egm84-15.pgm').height(18.391, 29.692) kind 2: 4.933\n    test 1038 GeoidKarney('egm84-15.pgm').height(-15.074, 22.153) kind 2: 12.313  FAILED, KNOWN, expected 12.326\n    test 1039 GeoidKarney('egm84-15.pgm').height(-4.235, 62.001) kind 2: -60.029  FAILED, KNOWN, expected -60.030\n    test 1040 GeoidKarney('egm84-15.pgm').height(15.171, -86.583) kind 2: 3.034  FAILED, KNOWN, expected 3.110\n    test 1041 GeoidKarney('egm84-15.pgm').height(79.254, 112.116) kind 2: -2.741\n    test 1042 GeoidKarney('egm84-15.pgm').height(15.947, 156.093) kind 2: 32.108  FAILED, KNOWN, expected 32.085\n    test 1043 GeoidKarney('egm84-15.pgm').height(68.371, -177.382) kind 2: 2.069  FAILED, KNOWN, expected 2.060\n    test 1044 GeoidKarney('egm84-15.pgm').height(-41.931, -72.093) kind 2: 22.901  FAILED, KNOWN, expected 22.916\n    test 1045 GeoidKarney('egm84-15.pgm').height(-1.193, -143.133) kind 2: 5.526  FAILED, KNOWN, expected 5.519\n    test 1046 GeoidKarney('egm84-15.pgm').height(-37.006, 154.513) kind 2: 11.019  FAILED, KNOWN, expected 11.020\n    test 1047 GeoidKarney('egm84-15.pgm').height(-22.148, 9.938) kind 2: 22.181  FAILED, KNOWN, expected 22.171\n    test 1048 GeoidKarney('egm84-15.pgm').height(24.329, 109.044) kind 2: -22.957  FAILED, KNOWN, expected -22.944\n    test 1049 GeoidKarney('egm84-15.pgm').height(-54.878, 114.691) kind 2: -17.583  FAILED, KNOWN, expected -17.580\n    test 1050 GeoidKarney('egm84-15.pgm').height(45.601, -80.458) kind 2: -35.728  FAILED, KNOWN, expected -35.738\n    test 1051 GeoidKarney('egm84-15.pgm').height(2.372, 58.974) kind 2: -61.036  FAILED, KNOWN, expected -61.040\n    test 1052 GeoidKarney('egm84-15.pgm').height(15.937, 165.854) kind 2: 20.897  FAILED, KNOWN, expected 20.907\n    test 1053 GeoidKarney('egm84-15.pgm').height(4.889, -24.213) kind 2: 13.865  FAILED, KNOWN, expected 13.874\n    test 1054 GeoidKarney('egm84-15.pgm').height(-11.392, 179.558) kind 2: 40.920  FAILED, KNOWN, expected 40.929\n    test 1055 GeoidKarney('egm84-15.pgm').height(58.246, 4.862) kind 2: 43.196  FAILED, KNOWN, expected 43.191\n    test 1056 GeoidKarney('egm84-15.pgm').height(34.302, -109.109) kind 2: -22.016  FAILED, KNOWN, expected -22.006\n    test 1057 GeoidKarney('egm84-15.pgm').height(-58.196, 117.306) kind 2: -20.378  FAILED, KNOWN, expected -20.375\n    test 1058 GeoidKarney('egm84-15.pgm').height(44.5, 173.769) kind 2: -7.856  FAILED, KNOWN, expected -7.852\n    test 1059 GeoidKarney('egm84-15.pgm').height(-28.863, -139.775) kind 2: -8.680  FAILED, KNOWN, expected -8.674\n    test 1060 GeoidKarney('egm84-15.pgm').height(19.507, -96.099) kind 2: -14.089  FAILED, KNOWN, expected -14.117\n    test 1061 GeoidKarney('egm84-15.pgm').height(-42.488, -73.907) kind 2: 17.249  FAILED, KNOWN, expected 17.251\n    test 1062 GeoidKarney('egm84-15.pgm').height(46.138, -141.429) kind 2: -19.434  FAILED, KNOWN, expected -19.436\n    test 1063 GeoidKarney('egm84-15.pgm').height(60.507, 93.743) kind 2: -31.333  FAILED, KNOWN, expected -31.330\n    test 1064 GeoidKarney('egm84-15.pgm').height(26.219, -145.434) kind 2: -17.088  FAILED, KNOWN, expected -17.090\n    test 1065 GeoidKarney('egm84-15.pgm').height(-28.687, 3.37) kind 2: 24.177  FAILED, KNOWN, expected 24.184\n    test 1066 GeoidKarney('egm84-15.pgm').height(-15.008, 117.45) kind 2: 6.146  FAILED, KNOWN, expected 6.142\n    test 1067 GeoidKarney('egm84-15.pgm').height(40.71, 144.095) kind 2: 11.771  FAILED, KNOWN, expected 11.693\n    test 1068 GeoidKarney('egm84-15.pgm').height(20.823, -173.611) kind 2: 6.830  FAILED, KNOWN, expected 6.840\n    test 1069 GeoidKarney('egm84-15.pgm').height(16.776, -3.009) kind 2: 31.293  FAILED, KNOWN, expected 31.298\n    test 1070 GeoidKarney('egm84-15.pgm').height(41.0, -95.0) kind 2: -31.953  FAILED, KNOWN, expected -31.952\n    test 1071 GeoidKarney('egm84-15.pgm').height(49.0, -120.5) kind 2: -14.946\n    test 1072 GeoidKarney('egm84-15.pgm').height(49.0, -103.5) kind 2: -17.031  FAILED, KNOWN, expected -17.032\n    test 1073 GeoidKarney('egm84-15.pgm').height(49.0, -86.5) kind 2: -37.962\n    test 1074 GeoidKarney('egm84-15.pgm').height(49.0, -69.5) kind 2: -26.493  FAILED, KNOWN, expected -26.492\n    test 1075 GeoidKarney('egm84-15.pgm').height(33.0, -120.5) kind 2: -39.543\n    test 1076 GeoidKarney('egm84-15.pgm').height(33.0, -103.5) kind 2: -22.557  FAILED, KNOWN, expected -22.556\n    test 1077 GeoidKarney('egm84-15.pgm').height(33.0, -86.5) kind 2: -28.710\n    test 1078 GeoidKarney('egm84-15.pgm').height(33.0, -69.5) kind 2: -46.590\n\n    test 1079 GeoidKarney('egm84-15.pgm').height() kind 2, hits 0, eps max (in 0 FAILED): 0.115669\n    test 1080 GeoidKarney('egm84-15.pgm').height() kind 2, hits 0, eps mean (of 210 total): 0.010307\n    test 1081 GeoidKarney('egm84-15.pgm').height() kind 2, hits 0, eps stdev (of 210 total): 0.015203\n    test 1082 GeoidKarney('egm84-15.pgm').toStr: GeoidKarney('egm84-15.pgm'): lowerleft(-90.0, -180.0, -29.712), upperright(90.0, 180.0, 13.098), center(0.0, 0.0, 18.33), highest(-4.5, 148.75, 81.33), lowest(4.75, 79.25, -107.34)\n\n    test 1083 closed: True\n    test 1084 copy(<class 'type'>): (<class 'pygeodesy.geoids.GeoidKarney'>, True)\n    test 1085 GeoidKarney.copy(): (<class 'pygeodesy.geoids.GeoidKarney'>, True)\n    test 1086 GeoidKarney('egm84-15.pgm').height(-76.981, 34.17) kind 3: 11.729\n    test 1087 GeoidKarney('egm84-15.pgm').height(79.695, 88.806) kind 3: 0.271  FAILED, KNOWN, expected 0.270\n    test 1088 GeoidKarney('egm84-15.pgm').height(-15.245, 168.748) kind 3: 67.074\n    test 1089 GeoidKarney('egm84-15.pgm').height(-19.379, 15.855) kind 3: 25.345  FAILED, KNOWN, expected 25.344\n    test 1090 GeoidKarney('egm84-15.pgm').height(43.378, -130.552) kind 3: -28.919\n    test 1091 GeoidKarney('egm84-15.pgm').height(-16.075, 21.795) kind 3: 14.386\n    test 1092 GeoidKarney('egm84-15.pgm').height(-11.256, -73.75) kind 3: 30.699  FAILED, KNOWN, expected 30.700\n    test 1093 GeoidKarney('egm84-15.pgm').height(69.017, -15.921) kind 3: 62.226  FAILED, KNOWN, expected 62.225\n    test 1094 GeoidKarney('egm84-15.pgm').height(2.221, 139.739) kind 3: 70.222\n    test 1095 GeoidKarney('egm84-15.pgm').height(-9.097, 119.142) kind 3: 34.334  FAILED, KNOWN, expected 34.336\n    test 1096 GeoidKarney('egm84-15.pgm').height(-28.524, -22.192) kind 3: 8.206\n    test 1097 GeoidKarney('egm84-15.pgm').height(12.272, -136.424) kind 3: -20.073  FAILED, KNOWN, expected -20.074\n    test 1098 GeoidKarney('egm84-15.pgm').height(-15.203, -85.604) kind 3: -3.129\n    test 1099 GeoidKarney('egm84-15.pgm').height(-63.736, -77.17) kind 3: -3.216  FAILED, KNOWN, expected -3.217\n    test 1100 GeoidKarney('egm84-15.pgm').height(-48.771, -90.102) kind 3: -1.532  FAILED, KNOWN, expected -1.531\n    test 1101 GeoidKarney('egm84-15.pgm').height(-0.179, -126.368) kind 3: -16.741  FAILED, KNOWN, expected -16.742\n    test 1102 GeoidKarney('egm84-15.pgm').height(1.586, -128.887) kind 3: -15.413  FAILED, KNOWN, expected -15.412\n    test 1103 GeoidKarney('egm84-15.pgm').height(-48.781, -2.684) kind 3: 25.079  FAILED, KNOWN, expected 25.078\n    test 1104 GeoidKarney('egm84-15.pgm').height(-49.092, 136.862) kind 3: -18.120\n    test 1105 GeoidKarney('egm84-15.pgm').height(47.732, 17.552) kind 3: 46.225  FAILED, KNOWN, expected 46.224\n    test 1106 GeoidKarney('egm84-15.pgm').height(-49.11, 85.706) kind 3: 18.649\n    test 1107 GeoidKarney('egm84-15.pgm').height(-49.162, 40.321) kind 3: 44.763  FAILED, KNOWN, expected 44.764\n    test 1108 GeoidKarney('egm84-15.pgm').height(3.498, 158.118) kind 3: 51.090  FAILED, KNOWN, expected 51.089\n    test 1109 GeoidKarney('egm84-15.pgm').height(-35.616, 122.648) kind 3: -34.470  FAILED, KNOWN, expected -34.471\n    test 1110 GeoidKarney('egm84-15.pgm').height(56.598, -96.114) kind 3: -39.125  FAILED, KNOWN, expected -39.124\n    test 1111 GeoidKarney('egm84-15.pgm').height(-31.85, 149.121) kind 3: 28.142\n    test 1112 GeoidKarney('egm84-15.pgm').height(-26.569, -177.792) kind 3: 49.620  FAILED, KNOWN, expected 49.619\n    test 1113 GeoidKarney('egm84-15.pgm').height(76.735, -65.753) kind 3: 22.576  FAILED, KNOWN, expected 22.575\n    test 1114 GeoidKarney('egm84-15.pgm').height(-21.404, -122.268) kind 3: -6.893\n    test 1115 GeoidKarney('egm84-15.pgm').height(-77.133, -65.474) kind 3: -15.013  FAILED, KNOWN, expected -15.012\n    test 1116 GeoidKarney('egm84-15.pgm').height(-58.812, 2.276) kind 3: 18.777  FAILED, KNOWN, expected 18.776\n    test 1117 GeoidKarney('egm84-15.pgm').height(4.415, 155.683) kind 3: 53.645\n    test 1118 GeoidKarney('egm84-15.pgm').height(-28.146, 107.081) kind 3: -39.073  FAILED, KNOWN, expected -39.074\n    test 1119 GeoidKarney('egm84-15.pgm').height(-10.551, -126.69) kind 3: -9.645\n    test 1120 GeoidKarney('egm84-15.pgm').height(-25.444, -103.337) kind 3: -2.527  FAILED, KNOWN, expected -2.528\n    test 1121 GeoidKarney('egm84-15.pgm').height(24.436, 46.159) kind 3: -6.907\n    test 1122 GeoidKarney('egm84-15.pgm').height(-72.889, 37.107) kind 3: 21.715  FAILED, KNOWN, expected 21.711\n    test 1123 GeoidKarney('egm84-15.pgm').height(-19.629, 13.245) kind 3: 25.612  FAILED, KNOWN, expected 25.611\n    test 1124 GeoidKarney('egm84-15.pgm').height(-7.602, 171.265) kind 3: 41.570  FAILED, KNOWN, expected 41.569\n    test 1125 GeoidKarney('egm84-15.pgm').height(-45.364, -1.876) kind 3: 23.280\n    test 1126 GeoidKarney('egm84-15.pgm').height(-7.292, -69.18) kind 3: 24.502\n    test 1127 GeoidKarney('egm84-15.pgm').height(-31.566, -166.689) kind 3: 14.825  FAILED, KNOWN, expected 14.826\n    test 1128 GeoidKarney('egm84-15.pgm').height(-82.751, -162.085) kind 3: -45.104\n    test 1129 GeoidKarney('egm84-15.pgm').height(-40.7, 99.466) kind 3: -17.252\n    test 1130 GeoidKarney('egm84-15.pgm').height(48.676, 39.69) kind 3: 12.972\n    test 1131 GeoidKarney('egm84-15.pgm').height(74.817, -78.404) kind 3: 4.777  FAILED, KNOWN, expected 4.776\n    test 1132 GeoidKarney('egm84-15.pgm').height(-81.032, -63.865) kind 3: -23.578  FAILED, KNOWN, expected -23.577\n    test 1133 GeoidKarney('egm84-15.pgm').height(74.022, 9.432) kind 3: 43.886  FAILED, KNOWN, expected 43.885\n    test 1134 GeoidKarney('egm84-15.pgm').height(-75.071, 17.579) kind 3: 17.071  FAILED, KNOWN, expected 17.072\n    test 1135 GeoidKarney('egm84-15.pgm').height(-12.546, -54.851) kind 3: -6.643\n    test 1136 GeoidKarney('egm84-15.pgm').height(-13.621, 42.408) kind 3: -23.326  FAILED, KNOWN, expected -23.325\n    test 1137 GeoidKarney('egm84-15.pgm').height(-2.266, -91.951) kind 3: -10.699  FAILED, KNOWN, expected -10.698\n    test 1138 GeoidKarney('egm84-15.pgm').height(-18.672, 42.547) kind 3: -10.268  FAILED, KNOWN, expected -10.265\n    test 1139 GeoidKarney('egm84-15.pgm').height(-41.44, 157.413) kind 3: 0.690  FAILED, KNOWN, expected 0.689\n    test 1140 GeoidKarney('egm84-15.pgm').height(53.686, -79.375) kind 3: -43.759  FAILED, KNOWN, expected -43.758\n    test 1141 GeoidKarney('egm84-15.pgm').height(39.26, -30.351) kind 3: 57.553  FAILED, KNOWN, expected 57.554\n    test 1142 GeoidKarney('egm84-15.pgm').height(-51.699, -141.493) kind 3: -16.937  FAILED, KNOWN, expected -16.936\n    test 1143 GeoidKarney('egm84-15.pgm').height(36.585, 4.515) kind 3: 45.291  FAILED, KNOWN, expected 45.295\n    test 1144 GeoidKarney('egm84-15.pgm').height(39.642, -54.659) kind 3: -13.585  FAILED, KNOWN, expected -13.586\n    test 1145 GeoidKarney('egm84-15.pgm').height(59.761, 166.567) kind 3: 11.467  FAILED, KNOWN, expected 11.468\n    test 1146 GeoidKarney('egm84-15.pgm').height(51.83, 13.357) kind 3: 42.092\n    test 1147 GeoidKarney('egm84-15.pgm').height(-36.531, -175.431) kind 3: 22.830\n    test 1148 GeoidKarney('egm84-15.pgm').height(-37.08, 125.264) kind 3: -32.302\n    test 1149 GeoidKarney('egm84-15.pgm').height(-68.651, 92.732) kind 3: 9.228\n    test 1150 GeoidKarney('egm84-15.pgm').height(35.087, 45.336) kind 3: 5.966  FAILED, KNOWN, expected 5.965\n    test 1151 GeoidKarney('egm84-15.pgm').height(-61.356, -169.379) kind 3: -45.012  FAILED, KNOWN, expected -45.013\n    test 1152 GeoidKarney('egm84-15.pgm').height(-36.955, 179.12) kind 3: 21.118\n    test 1153 GeoidKarney('egm84-15.pgm').height(10.248, -6.714) kind 3: 30.497\n    test 1154 GeoidKarney('egm84-15.pgm').height(36.868, 84.602) kind 3: -40.397  FAILED, KNOWN, expected -40.396\n    test 1155 GeoidKarney('egm84-15.pgm').height(28.637, 88.933) kind 3: -31.701  FAILED, KNOWN, expected -31.704\n    test 1156 GeoidKarney('egm84-15.pgm').height(54.811, -99.968) kind 3: -32.276  FAILED, KNOWN, expected -32.277\n    test 1157 GeoidKarney('egm84-15.pgm').height(7.611, 145.911) kind 3: 61.024\n    test 1158 GeoidKarney('egm84-15.pgm').height(59.412, 170.102) kind 3: 4.996  FAILED, KNOWN, expected 4.994\n    test 1159 GeoidKarney('egm84-15.pgm').height(-61.469, 126.144) kind 3: -30.238  FAILED, KNOWN, expected -30.237\n    test 1160 GeoidKarney('egm84-15.pgm').height(18.514, -137.083) kind 3: -26.006\n    test 1161 GeoidKarney('egm84-15.pgm').height(7.854, -126.799) kind 3: -29.283\n    test 1162 GeoidKarney('egm84-15.pgm').height(47.489, 134.183) kind 3: 22.393  FAILED, KNOWN, expected 22.394\n    test 1163 GeoidKarney('egm84-15.pgm').height(-34.144, -11.922) kind 3: 17.550\n    test 1164 GeoidKarney('egm84-15.pgm').height(-58.389, 117.458) kind 3: -20.623  FAILED, KNOWN, expected -20.622\n    test 1165 GeoidKarney('egm84-15.pgm').height(9.773, 95.846) kind 3: -41.482  FAILED, KNOWN, expected -41.484\n    test 1166 GeoidKarney('egm84-15.pgm').height(-53.12, 136.994) kind 3: -20.968\n    test 1167 GeoidKarney('egm84-15.pgm').height(-50.35, 0.075) kind 3: 25.567  FAILED, KNOWN, expected 25.568\n    test 1168 GeoidKarney('egm84-15.pgm').height(31.438, -170.879) kind 3: -8.581\n    test 1169 GeoidKarney('egm84-15.pgm').height(37.541, -153.024) kind 3: -18.330  FAILED, KNOWN, expected -18.329\n    test 1170 GeoidKarney('egm84-15.pgm').height(27.586, 2.444) kind 3: 25.000  FAILED, KNOWN, expected 25.001\n    test 1171 GeoidKarney('egm84-15.pgm').height(-26.139, -106.201) kind 3: -2.941  FAILED, KNOWN, expected -2.940\n    test 1172 GeoidKarney('egm84-15.pgm').height(-33.426, -14.84) kind 3: 18.229  FAILED, KNOWN, expected 18.228\n    test 1173 GeoidKarney('egm84-15.pgm').height(39.586, -153.019) kind 3: -16.507\n    test 1174 GeoidKarney('egm84-15.pgm').height(-60.79, -2.578) kind 3: 14.275\n    test 1175 GeoidKarney('egm84-15.pgm').height(-20.131, 21.975) kind 3: 16.853  FAILED, KNOWN, expected 16.852\n    test 1176 GeoidKarney('egm84-15.pgm').height(75.649, 99.921) kind 3: -6.872\n    test 1177 GeoidKarney('egm84-15.pgm').height(-0.385, -23.788) kind 3: 9.005  FAILED, KNOWN, expected 9.006\n    test 1178 GeoidKarney('egm84-15.pgm').height(-51.56, -50.327) kind 3: 6.294  FAILED, KNOWN, expected 6.296\n    test 1179 GeoidKarney('egm84-15.pgm').height(-43.129, -167.271) kind 3: -1.482  FAILED, KNOWN, expected -1.481\n    test 1180 GeoidKarney('egm84-15.pgm').height(46.374, 71.948) kind 3: -40.916  FAILED, KNOWN, expected -40.915\n    test 1181 GeoidKarney('egm84-15.pgm').height(-22.783, 140.657) kind 3: 37.495\n    test 1182 GeoidKarney('egm84-15.pgm').height(-12.056, 122.804) kind 3: 32.255  FAILED, KNOWN, expected 32.258\n    test 1183 GeoidKarney('egm84-15.pgm').height(30.127, 94.738) kind 3: -41.528  FAILED, KNOWN, expected -41.529\n    test 1184 GeoidKarney('egm84-15.pgm').height(46.296, -174.479) kind 3: -1.376  FAILED, KNOWN, expected -1.377\n    test 1185 GeoidKarney('egm84-15.pgm').height(34.99, 15.052) kind 3: 35.279  FAILED, KNOWN, expected 35.280\n    test 1186 GeoidKarney('egm84-15.pgm').height(-51.287, 90.565) kind 3: 12.958\n    test 1187 GeoidKarney('egm84-15.pgm').height(34.217, 141.302) kind 3: 18.313  FAILED, KNOWN, expected 18.307\n    test 1188 GeoidKarney('egm84-15.pgm').height(-40.423, -142.787) kind 3: -10.400\n    test 1189 GeoidKarney('egm84-15.pgm').height(-17.854, -170.216) kind 3: 28.640  FAILED, KNOWN, expected 28.638\n    test 1190 GeoidKarney('egm84-15.pgm').height(47.803, 112.701) kind 3: -24.059\n    test 1191 GeoidKarney('egm84-15.pgm').height(-23.276, 133.454) kind 3: 18.806\n    test 1192 GeoidKarney('egm84-15.pgm').height(-26.884, -36.571) kind 3: -6.819  FAILED, KNOWN, expected -6.820\n    test 1193 GeoidKarney('egm84-15.pgm').height(-37.106, 31.128) kind 3: 31.486\n    test 1194 GeoidKarney('egm84-15.pgm').height(-75.363, -173.674) kind 3: -62.024\n    test 1195 GeoidKarney('egm84-15.pgm').height(-18.305, 69.016) kind 3: -24.247  FAILED, KNOWN, expected -24.248\n    test 1196 GeoidKarney('egm84-15.pgm').height(39.527, 23.58) kind 3: 43.255\n    test 1197 GeoidKarney('egm84-15.pgm').height(68.903, 30.97) kind 3: 18.499  FAILED, KNOWN, expected 18.498\n    test 1198 GeoidKarney('egm84-15.pgm').height(53.937, 168.318) kind 3: 4.069  FAILED, KNOWN, expected 4.067\n    test 1199 GeoidKarney('egm84-15.pgm').height(-38.6, 64.812) kind 3: 25.455  FAILED, KNOWN, expected 25.454\n    test 1200 GeoidKarney('egm84-15.pgm').height(-41.396, -69.739) kind 3: 26.655  FAILED, KNOWN, expected 26.657\n    test 1201 GeoidKarney('egm84-15.pgm').height(50.158, 72.319) kind 3: -31.967  FAILED, KNOWN, expected -31.966\n    test 1202 GeoidKarney('egm84-15.pgm').height(27.692, 176.153) kind 3: -4.416  FAILED, KNOWN, expected -4.415\n    test 1203 GeoidKarney('egm84-15.pgm').height(-48.419, 170.454) kind 3: -6.741\n    test 1204 GeoidKarney('egm84-15.pgm').height(-65.346, -124.976) kind 3: -34.902  FAILED, KNOWN, expected -34.900\n    test 1205 GeoidKarney('egm84-15.pgm').height(-51.873, 167.266) kind 3: -14.223\n    test 1206 GeoidKarney('egm84-15.pgm').height(-7.263, 84.308) kind 3: -79.317\n    test 1207 GeoidKarney('egm84-15.pgm').height(-1.461, -105.458) kind 3: -16.162  FAILED, KNOWN, expected -16.163\n    test 1208 GeoidKarney('egm84-15.pgm').height(7.684, 161.873) kind 3: 36.288  FAILED, KNOWN, expected 36.287\n    test 1209 GeoidKarney('egm84-15.pgm').height(-31.475, -158.52) kind 3: 4.067  FAILED, KNOWN, expected 4.068\n    test 1210 GeoidKarney('egm84-15.pgm').height(-36.187, 62.917) kind 3: 24.406  FAILED, KNOWN, expected 24.407\n    test 1211 GeoidKarney('egm84-15.pgm').height(16.003, 141.687) kind 3: 53.053  FAILED, KNOWN, expected 53.054\n    test 1212 GeoidKarney('egm84-15.pgm').height(30.182, 86.261) kind 3: -30.621  FAILED, KNOWN, expected -30.622\n    test 1213 GeoidKarney('egm84-15.pgm').height(-77.304, 159.498) kind 3: -53.540\n    test 1214 GeoidKarney('egm84-15.pgm').height(39.536, 139.795) kind 3: 36.262\n    test 1215 GeoidKarney('egm84-15.pgm').height(8.569, 134.618) kind 3: 64.367  FAILED, KNOWN, expected 64.369\n    test 1216 GeoidKarney('egm84-15.pgm').height(14.473, 90.596) kind 3: -61.301  FAILED, KNOWN, expected -61.300\n    test 1217 GeoidKarney('egm84-15.pgm').height(-13.138, -99.589) kind 3: -8.000  FAILED, KNOWN, expected -7.999\n    test 1218 GeoidKarney('egm84-15.pgm').height(34.212, -26.307) kind 3: 41.479  FAILED, KNOWN, expected 41.477\n    test 1219 GeoidKarney('egm84-15.pgm').height(21.89, 76.371) kind 3: -59.875  FAILED, KNOWN, expected -59.876\n    test 1220 GeoidKarney('egm84-15.pgm').height(29.793, 120.487) kind 3: 8.404\n    test 1221 GeoidKarney('egm84-15.pgm').height(15.724, 122.714) kind 3: 39.154  FAILED, KNOWN, expected 39.152\n    test 1222 GeoidKarney('egm84-15.pgm').height(-66.208, -78.499) kind 3: -7.076\n    test 1223 GeoidKarney('egm84-15.pgm').height(-39.507, 55.809) kind 3: 33.179  FAILED, KNOWN, expected 33.178\n    test 1224 GeoidKarney('egm84-15.pgm').height(28.159, 51.476) kind 3: -23.832\n    test 1225 GeoidKarney('egm84-15.pgm').height(-36.207, 120.205) kind 3: -38.206\n    test 1226 GeoidKarney('egm84-15.pgm').height(30.575, -99.998) kind 3: -22.144  FAILED, KNOWN, expected -22.142\n    test 1227 GeoidKarney('egm84-15.pgm').height(-16.993, 37.136) kind 3: -13.763  FAILED, KNOWN, expected -13.765\n    test 1228 GeoidKarney('egm84-15.pgm').height(-11.477, 12.039) kind 3: 16.899  FAILED, KNOWN, expected 16.898\n    test 1229 GeoidKarney('egm84-15.pgm').height(30.428, -144.765) kind 3: -22.475  FAILED, KNOWN, expected -22.474\n    test 1230 GeoidKarney('egm84-15.pgm').height(-17.44, -92.424) kind 3: -4.717  FAILED, KNOWN, expected -4.718\n    test 1231 GeoidKarney('egm84-15.pgm').height(40.203, 143.43) kind 3: 16.635\n    test 1232 GeoidKarney('egm84-15.pgm').height(-37.098, -106.574) kind 3: -9.011  FAILED, KNOWN, expected -9.012\n    test 1233 GeoidKarney('egm84-15.pgm').height(54.62, -68.413) kind 3: -23.544  FAILED, KNOWN, expected -23.543\n    test 1234 GeoidKarney('egm84-15.pgm').height(-31.633, 148.182) kind 3: 26.236\n    test 1235 GeoidKarney('egm84-15.pgm').height(-56.07, -141.407) kind 3: -21.955  FAILED, KNOWN, expected -21.953\n    test 1236 GeoidKarney('egm84-15.pgm').height(-8.195, -52.691) kind 3: -17.959\n    test 1237 GeoidKarney('egm84-15.pgm').height(17.851, 24.749) kind 3: 9.078\n    test 1238 GeoidKarney('egm84-15.pgm').height(0.349, -108.333) kind 3: -19.157  FAILED, KNOWN, expected -19.158\n    test 1239 GeoidKarney('egm84-15.pgm').height(15.038, 126.191) kind 3: 46.776\n    test 1240 GeoidKarney('egm84-15.pgm').height(-21.111, -123.696) kind 3: -8.055\n    test 1241 GeoidKarney('egm84-15.pgm').height(30.947, 173.002) kind 3: -7.695  FAILED, KNOWN, expected -7.696\n    test 1242 GeoidKarney('egm84-15.pgm').height(-10.698, -144.091) kind 3: -1.048  FAILED, KNOWN, expected -1.049\n    test 1243 GeoidKarney('egm84-15.pgm').height(-29.412, 124.753) kind 3: -16.082  FAILED, KNOWN, expected -16.081\n    test 1244 GeoidKarney('egm84-15.pgm').height(38.224, -137.189) kind 3: -35.426  FAILED, KNOWN, expected -35.427\n    test 1245 GeoidKarney('egm84-15.pgm').height(36.064, -132.409) kind 3: -38.648\n    test 1246 GeoidKarney('egm84-15.pgm').height(29.975, 178.076) kind 3: -5.519\n    test 1247 GeoidKarney('egm84-15.pgm').height(-21.346, 169.26) kind 3: 53.430  FAILED, KNOWN, expected 53.431\n    test 1248 GeoidKarney('egm84-15.pgm').height(49.282, -152.934) kind 3: 1.978  FAILED, KNOWN, expected 1.979\n    test 1249 GeoidKarney('egm84-15.pgm').height(16.349, -99.962) kind 3: -13.194  FAILED, KNOWN, expected -13.197\n    test 1250 GeoidKarney('egm84-15.pgm').height(-14.293, -167.34) kind 3: 18.945\n    test 1251 GeoidKarney('egm84-15.pgm').height(47.166, -38.523) kind 3: 45.185  FAILED, KNOWN, expected 45.187\n    test 1252 GeoidKarney('egm84-15.pgm').height(-58.911, 114.347) kind 3: -17.146  FAILED, KNOWN, expected -17.145\n    test 1253 GeoidKarney('egm84-15.pgm').height(-9.055, 111.294) kind 3: 13.145  FAILED, KNOWN, expected 13.146\n    test 1254 GeoidKarney('egm84-15.pgm').height(18.391, 29.692) kind 3: 4.932  FAILED, KNOWN, expected 4.933\n    test 1255 GeoidKarney('egm84-15.pgm').height(-15.074, 22.153) kind 3: 12.327  FAILED, KNOWN, expected 12.326\n    test 1256 GeoidKarney('egm84-15.pgm').height(-4.235, 62.001) kind 3: -60.029  FAILED, KNOWN, expected -60.030\n    test 1257 GeoidKarney('egm84-15.pgm').height(15.171, -86.583) kind 3: 3.107  FAILED, KNOWN, expected 3.110\n    test 1258 GeoidKarney('egm84-15.pgm').height(79.254, 112.116) kind 3: -2.741\n    test 1259 GeoidKarney('egm84-15.pgm').height(15.947, 156.093) kind 3: 32.086  FAILED, KNOWN, expected 32.085\n    test 1260 GeoidKarney('egm84-15.pgm').height(68.371, -177.382) kind 3: 2.060\n    test 1261 GeoidKarney('egm84-15.pgm').height(-41.931, -72.093) kind 3: 22.916\n    test 1262 GeoidKarney('egm84-15.pgm').height(-1.193, -143.133) kind 3: 5.519\n    test 1263 GeoidKarney('egm84-15.pgm').height(-37.006, 154.513) kind 3: 11.021  FAILED, KNOWN, expected 11.020\n    test 1264 GeoidKarney('egm84-15.pgm').height(-22.148, 9.938) kind 3: 22.171\n    test 1265 GeoidKarney('egm84-15.pgm').height(24.329, 109.044) kind 3: -22.945  FAILED, KNOWN, expected -22.944\n    test 1266 GeoidKarney('egm84-15.pgm').height(-54.878, 114.691) kind 3: -17.579  FAILED, KNOWN, expected -17.580\n    test 1267 GeoidKarney('egm84-15.pgm').height(45.601, -80.458) kind 3: -35.737  FAILED, KNOWN, expected -35.738\n    test 1268 GeoidKarney('egm84-15.pgm').height(2.372, 58.974) kind 3: -61.040\n    test 1269 GeoidKarney('egm84-15.pgm').height(15.937, 165.854) kind 3: 20.906  FAILED, KNOWN, expected 20.907\n    test 1270 GeoidKarney('egm84-15.pgm').height(4.889, -24.213) kind 3: 13.874\n    test 1271 GeoidKarney('egm84-15.pgm').height(-11.392, 179.558) kind 3: 40.928  FAILED, KNOWN, expected 40.929\n    test 1272 GeoidKarney('egm84-15.pgm').height(58.246, 4.862) kind 3: 43.191\n    test 1273 GeoidKarney('egm84-15.pgm').height(34.302, -109.109) kind 3: -22.006\n    test 1274 GeoidKarney('egm84-15.pgm').height(-58.196, 117.306) kind 3: -20.375\n    test 1275 GeoidKarney('egm84-15.pgm').height(44.5, 173.769) kind 3: -7.851  FAILED, KNOWN, expected -7.852\n    test 1276 GeoidKarney('egm84-15.pgm').height(-28.863, -139.775) kind 3: -8.675  FAILED, KNOWN, expected -8.674\n    test 1277 GeoidKarney('egm84-15.pgm').height(19.507, -96.099) kind 3: -14.116  FAILED, KNOWN, expected -14.117\n    test 1278 GeoidKarney('egm84-15.pgm').height(-42.488, -73.907) kind 3: 17.252  FAILED, KNOWN, expected 17.251\n    test 1279 GeoidKarney('egm84-15.pgm').height(46.138, -141.429) kind 3: -19.435  FAILED, KNOWN, expected -19.436\n    test 1280 GeoidKarney('egm84-15.pgm').height(60.507, 93.743) kind 3: -31.331  FAILED, KNOWN, expected -31.330\n    test 1281 GeoidKarney('egm84-15.pgm').height(26.219, -145.434) kind 3: -17.091  FAILED, KNOWN, expected -17.090\n    test 1282 GeoidKarney('egm84-15.pgm').height(-28.687, 3.37) kind 3: 24.184\n    test 1283 GeoidKarney('egm84-15.pgm').height(-15.008, 117.45) kind 3: 6.142\n    test 1284 GeoidKarney('egm84-15.pgm').height(40.71, 144.095) kind 3: 11.693\n    test 1285 GeoidKarney('egm84-15.pgm').height(20.823, -173.611) kind 3: 6.839  FAILED, KNOWN, expected 6.840\n    test 1286 GeoidKarney('egm84-15.pgm').height(16.776, -3.009) kind 3: 31.298\n    test 1287 GeoidKarney('egm84-15.pgm').height(41.0, -95.0) kind 3: -31.952\n    test 1288 GeoidKarney('egm84-15.pgm').height(49.0, -120.5) kind 3: -14.946\n    test 1289 GeoidKarney('egm84-15.pgm').height(49.0, -103.5) kind 3: -17.032\n    test 1290 GeoidKarney('egm84-15.pgm').height(49.0, -86.5) kind 3: -37.962\n    test 1291 GeoidKarney('egm84-15.pgm').height(49.0, -69.5) kind 3: -26.492\n    test 1292 GeoidKarney('egm84-15.pgm').height(33.0, -120.5) kind 3: -39.543\n    test 1293 GeoidKarney('egm84-15.pgm').height(33.0, -103.5) kind 3: -22.556\n    test 1294 GeoidKarney('egm84-15.pgm').height(33.0, -86.5) kind 3: -28.710\n    test 1295 GeoidKarney('egm84-15.pgm').height(33.0, -69.5) kind 3: -46.590\n\n    test 1296 GeoidKarney('egm84-15.pgm').height() kind 3, hits 0, eps max (in 0 FAILED): 0.005459\n    test 1297 GeoidKarney('egm84-15.pgm').height() kind 3, hits 0, eps mean (of 210 total): 0.000736\n    test 1298 GeoidKarney('egm84-15.pgm').height() kind 3, hits 0, eps stdev (of 210 total): 0.000728\n    test 1299 GeoidKarney('egm84-15.pgm').toStr: GeoidKarney('egm84-15.pgm'): lowerleft(-90.0, -180.0, -29.712), upperright(90.0, 180.0, 13.098), center(0.0, 0.0, 18.33), highest(-4.5, 148.75, 81.33), lowest(4.75, 79.25, -107.34)\n\n    test 1300 closed: True\n    test 1301 copy(<class 'type'>): (<class 'pygeodesy.geoids.GeoidKarney'>, True)\n    test 1302 GeoidKarney.copy(): (<class 'pygeodesy.geoids.GeoidKarney'>, True)\n\n    213 tests skipped (639): no scipy\n\n    12 tests skipped (651): no scipy\n\n    12 tests skipped (663): no scipy\n\n    778 of 1302 testGeoids.py tests (59.8%) FAILED, ALL KNOWN, 663 skipped (pygeodesy 26.3.26 PyPy 7.3.17 Python 3.10.14 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 2.560 sec\nrunning /opt/local/bin/p....y3.10 -W default ~/PyGeodesy/test/testGreatCircle.py\n# lazily imported pygeodesy.basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.DeprecationWarnings from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isint from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isLazy from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.issubclassof from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.iterNumpy2over from .iters by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.LazyImportError from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.karney by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.NN from .interns by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.normDMS from .dms by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.pairs from .streprs by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.printf from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.property_RO from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.typename from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.F_D from .dms by testGreatCircle.py line 40\n# lazily imported pygeodesy.F_DMS from .dms by testGreatCircle.py line 40\n# lazily imported pygeodesy.classname from .named by testGreatCircle.py line 40\n# lazily imported pygeodesy.bearingDMS from .dms by testGreatCircle.py line 40\n# lazily imported pygeodesy.CrossError from .errors by testGreatCircle.py line 40\n# lazily imported pygeodesy.crosserrors from .errors by testGreatCircle.py line 40\n# lazily imported pygeodesy.sphericalNvector by testGreatCircle.py line 190\n# lazily imported pygeodesy.sphericalTrigonometry by testGreatCircle.py line 190\n\n    testing testGreatCircle.py 23.05.05 isLazy=3\n\n    testGreatCircle(pygeodesy.sphericalNvector, 25.05.27)\n    test 1 InitialBearingSameLocations: 0.0\n    test 2 InitialBearingEqualLocations: 0.0\n    test 3 FinalBearingSameLocations: 180.0\n    test 4 FinalBearingEqualLocations: 180.0\n# imported pygeodesy.basics into errors.py line 443\n    test 5 FinalBearingCrossError: point (LatLon(43°55′51.28″N, 072°03′13.72″W)) or other (LatLon(43°55′51.28″N, 072°03′13.72″W)): coincident\n    test 6 DistanceSameLocations: 0.0\n    test 7 DistanceEqualLocations: 0.0\n    test 8 DistanceEiffelToVersailles: 14084.300096  FAILED, KNOWN, expected 14084.280705\n    test 9 DistanceVersaillesToEiffel: 14084.300096  FAILED, KNOWN, expected 14084.280705\n    test 10 InitialBearingEiffelToVersailles: 245.13460297\n    test 11 InitialBearingEiffelToVersailles(DMS): 245°08′04.5707″\n    test 12 InitialBearingVersaillesToEiffel: 65.003253951\n    test 13 InitialBearingVersaillesToEiffel(DMS): 65°00′11.7142″\n    test 14 FinalBearingEiffelToVersailles: 245.00325395\n    test 15 FinalBearingEiffelToVersailles(DMS): 245°00′11.7142″\n    test 16 FinalBearingVersaillesToEiffel: 65.134602969\n    test 17 FinalBearingVersaillesToEiffel(DMS): 65°08′04.5707″\n    test 18 GenerateLocationVersailles: 48.804766°N, 002.120339°E\n    test 19 GenerateLocationEiffel: 48.858158°N, 002.294825°E\n    test 20 MidpointEiffelToVersailles: 48.831495°N, 002.207536°E\n    test 21 MidpointEiffelToVersailles(DMS): 48°49′53.3817″N, 002°12′27.1279″E\n    test 22 MidpointEiffelToVersailles(m): 7042.15004788  FAILED, KNOWN, expected 7042.15974330\n    test 23 MidpointVersaillesToEiffel: 48.831495°N, 002.207536°E  FAILED, KNOWN, expected 48.831495°N, 002.207535°E\n    test 24 MidpointVersaillesToEiffel(DMS): 48°49′53.3817″N, 002°12′27.1279″E\n    test 25 MidpointVersaillesToEiffel(m): 7042.15004788  FAILED, KNOWN, expected 7042.15974330\n    test 26 Intersection: 48.83569095°N, 002.221252031°E\n    test 27 Intersection: 48.8356909498836°N, 002.2212520313074°E\n    test 28 CrossTrackDistance200m+90°: 200.0\n    test 29 CrossTrackDistance200m+270°: -200.0\n    test 30 CrossTrackDistanceCloseToZero: 0.0000000\n\n    testGreatCircle(pygeodesy.sphericalTrigonometry, 25.08.31)\n    test 31 InitialBearingSameLocations: 0.0\n    test 32 InitialBearingEqualLocations: 0.0\n    test 33 FinalBearingSameLocations: 180.0\n    test 34 FinalBearingEqualLocations: 180.0\n    test 35 FinalBearingCrossError: point (LatLon(43°55′51.28″N, 072°03′13.72″W)), other (LatLon(43°55′51.28″N, 072°03′13.72″W)) or wrap (False): coincident\n    test 36 DistanceSameLocations: 0.0\n    test 37 DistanceEqualLocations: 0.0\n    test 38 DistanceEiffelToVersailles: 14084.300096  FAILED, KNOWN, expected 14084.280705\n    test 39 DistanceVersaillesToEiffel: 14084.300096  FAILED, KNOWN, expected 14084.280705\n    test 40 InitialBearingEiffelToVersailles: 245.13460297\n    test 41 InitialBearingEiffelToVersailles(DMS): 245°08′04.5707″\n    test 42 InitialBearingVersaillesToEiffel: 65.003253951\n    test 43 InitialBearingVersaillesToEiffel(DMS): 65°00′11.7142″\n    test 44 FinalBearingEiffelToVersailles: 245.00325395\n    test 45 FinalBearingEiffelToVersailles(DMS): 245°00′11.7142″\n    test 46 FinalBearingVersaillesToEiffel: 65.134602969\n    test 47 FinalBearingVersaillesToEiffel(DMS): 65°08′04.5707″\n    test 48 GenerateLocationVersailles: 48.804766°N, 002.120339°E\n    test 49 GenerateLocationEiffel: 48.858158°N, 002.294825°E\n    test 50 MidpointEiffelToVersailles: 48.831495°N, 002.207536°E\n    test 51 MidpointEiffelToVersailles(DMS): 48°49′53.3817″N, 002°12′27.1279″E\n    test 52 MidpointEiffelToVersailles(m): 7042.15004788  FAILED, KNOWN, expected 7042.15974330\n    test 53 MidpointVersaillesToEiffel: 48.831495°N, 002.207536°E  FAILED, KNOWN, expected 48.831495°N, 002.207535°E\n    test 54 MidpointVersaillesToEiffel(DMS): 48°49′53.3817″N, 002°12′27.1279″E\n    test 55 MidpointVersaillesToEiffel(m): 7042.15004788  FAILED, KNOWN, expected 7042.15974331\n    test 56 Intersection: 48.83569095°N, 002.221252031°E\n    test 57 Intersection: 48.8356909498836°N, 002.2212520313074°E\n    test 58 CrossTrackDistance200m+90°: 200.0\n    test 59 CrossTrackDistance200m+270°: -200.0\n    test 60 CrossTrackDistanceCloseToZero: 0.0000000\n\n    10 of 60 testGreatCircle.py tests (16.7%) FAILED, ALL KNOWN (pygeodesy 26.3.26 PyPy 7.3.17 Python 3.10.14 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 30.329 ms\nrunning /opt/local/bin/p....y3.10 -W default ~/PyGeodesy/test/testHausdorff.py\n./pygeodesy/hausdorff.py:605: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  self._func = self.datum.ellipsoid.geodesic.Inverse1\n./pygeodesy/ellipsoidalKarney.py:94: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return self.datum.ellipsoid.geodesic\n# lazily imported pygeodesy.basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.DeprecationWarnings from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isint from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isLazy from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.issubclassof from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.iterNumpy2over from .iters by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.LazyImportError from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.karney by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.NN from .interns by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.normDMS from .dms by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.pairs from .streprs by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.printf from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.property_RO from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.typename from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.Datums from .datums by testHausdorff.py line 12\n# lazily imported pygeodesy.fstr from .streprs by testHausdorff.py line 12\n# lazily imported pygeodesy.hausdorff_ from .hausdorff by testHausdorff.py line 12\n# lazily imported pygeodesy.HausdorffCosineLaw from .hausdorff by testHausdorff.py line 12\n# lazily imported pygeodesy.HausdorffDegrees from .hausdorff by testHausdorff.py line 12\n# lazily imported pygeodesy.HausdorffDistanceTo from .hausdorff by testHausdorff.py line 12\n# lazily imported pygeodesy.HausdorffEquirectangular from .hausdorff by testHausdorff.py line 12\n# lazily imported pygeodesy.HausdorffEuclidean from .hausdorff by testHausdorff.py line 12\n# lazily imported pygeodesy.HausdorffExact from .hausdorff by testHausdorff.py line 12\n# lazily imported pygeodesy.HausdorffFlatLocal from .hausdorff by testHausdorff.py line 12\n# lazily imported pygeodesy.HausdorffFlatPolar from .hausdorff by testHausdorff.py line 12\n# lazily imported pygeodesy.HausdorffHaversine from .hausdorff by testHausdorff.py line 12\n# lazily imported pygeodesy.HausdorffHubeny from .hausdorff by testHausdorff.py line 12\n# lazily imported pygeodesy.HausdorffKarney from .hausdorff by testHausdorff.py line 12\n# lazily imported pygeodesy.HausdorffRadians from .hausdorff by testHausdorff.py line 12\n# lazily imported pygeodesy.HausdorffThomas from .hausdorff by testHausdorff.py line 12\n# lazily imported pygeodesy.HausdorffVincentys from .hausdorff by testHausdorff.py line 12\n# lazily imported pygeodesy.LatLon_ from .points by testHausdorff.py line 12\n# lazily imported pygeodesy.randomrangenerator from .hausdorff by testHausdorff.py line 12\n\n    testing testHausdorff.py 24.12.31 isLazy=3\n    test 1 randomrange[0]: ()\n    test 2 randomrange[1]: (0,)\n    test 3 randomrange[2]: (0, 1)\n    test 4 randomrange[8]: (1, 4, 2, 6, 0, 3, 5, 7)\n    test 5 randomrange[32]: (11, 6, 30, 28, 21, 9, 13, 26, 4, 29, 8, 27, 31, 15, 1, 24, 0, 25, 22, 2, 20, 17, 3, 23, 12, 19, 18, 14, 7, 10, 16, 5)\n    test 6 randomrange[128]: (122, 62, 14, 24, 65, 57, 75, 84, 42, 32, 82, 43, 13, 34, 53, 104, 71, 22, 76, 15, 108, 113, 52, 79, 112, 54, 90, 106, 10, 87, 115, 123, 119, 120, 48, 61, 39, 19, 31, 94, 124, 98, 96, 3, 101, 25, 118, 30, 99, 105, 92, 66, 126, 114, 23, 117, 72, 67, 73, 64, 68, 50, 5, 74, 51, 9, 17, 21, 80, 95, 41, 37, 2, 11, 55, 127, 38, 85, 81, 109, 36, 121, 6, 102, 12, 1, 93, 91, 83, 16, 116, 103, 70, 56, 89, 35, 88, 86, 27, 20, 44, 110, 63, 28, 8, 4, 18, 45, 78, 100, 60, 125, 58, 33, 0, 7, 40, 59, 46, 69, 26, 77, 107, 47, 49, 97, 111, 29)\n# lazily imported pygeodesy.booleans by iters.py line 503\n    test 7 HausdorffDegrees_ (degrees): (40.0, 22, 6, 90, 18.16111)\n    test 8 HausdorffDegrees_ (degrees): (48.0, 38, 36, 150, 17.30667)\n    test 9 HausdorffDegrees_ (degrees): (40.0, 22, 6, 90, 18.16111)\n    test 10 HausdorffDegrees_ (degrees): (48.0, 38, 36, 150, 17.30667)\n    test 11 HausdorffDegrees_ (degrees): (40.0, 22, 6, 90, None)\n    test 12 HausdorffDegrees_ (degrees): (48.0, 38, 36, 150, None)\n    test 13 HausdorffDegrees_ (degrees): (40.0, 22, 6, 90, None)\n    test 14 HausdorffDegrees_ (degrees): (48.0, 38, 36, 150, None)\n    test 15 copy(<class 'type'>): (<class '__main__.HausdorffDegrees_'>, True)\n    test 16 HausdorffDegrees_.copy(): (<class '__main__.HausdorffDegrees_'>, True)\n    test 17 HausdorffRadians_ (radians): (0.69813, 22, 6, 90, 0.31697)\n    test 18 HausdorffRadians_ (radians): (0.83776, 38, 36, 150, 0.30206)\n    test 19 HausdorffRadians_ (radians): (0.69813, 22, 6, 90, 0.31697)\n    test 20 HausdorffRadians_ (radians): (0.83776, 38, 36, 150, 0.30206)\n    test 21 HausdorffRadians_ (radians): (0.69813, 22, 6, 90, None)\n    test 22 HausdorffRadians_ (radians): (0.83776, 38, 36, 150, None)\n    test 23 HausdorffRadians_ (radians): (0.69813, 22, 6, 90, None)\n    test 24 HausdorffRadians_ (radians): (0.83776, 38, 36, 150, None)\n    test 25 copy(<class 'type'>): (<class '__main__.HausdorffRadians_'>, True)\n    test 26 HausdorffRadians_.copy(): (<class '__main__.HausdorffRadians_'>, True)\n# imported pygeodesy.formy into hausdorff.py line 371\n    test 27 HausdorffCosineLaw (meter): (0.50097, 35, 3, 90, 0.212)\n    test 28 HausdorffCosineLaw (meter): (0.50097, 35, 3, 150, 0.20099)\n    test 29 HausdorffCosineLaw (meter): (0.50097, 35, 3, 90, 0.212)\n    test 30 HausdorffCosineLaw (meter): (0.50097, 35, 3, 150, 0.20099)\n    test 31 HausdorffCosineLaw (meter): (0.50097, 35, 3, 90, None)\n    test 32 HausdorffCosineLaw (meter): (0.50097, 35, 3, 150, None)\n    test 33 HausdorffCosineLaw (meter): (0.50097, 35, 3, 90, None)\n    test 34 HausdorffCosineLaw (meter): (0.50097, 35, 3, 150, None)\n    test 35 copy(<class 'type'>): (<class 'pygeodesy.hausdorff.HausdorffCosineLaw'>, True)\n    test 36 HausdorffCosineLaw.copy(): (<class 'pygeodesy.hausdorff.HausdorffCosineLaw'>, True)\n    test 37 HausdorffCosineLaw (meter): (0.501, 35, 3, 90, 0.21184)\n    test 38 HausdorffCosineLaw (meter): (0.501, 35, 3, 150, 0.20084)\n    test 39 HausdorffCosineLaw (meter): (0.501, 35, 3, 90, 0.21184)\n    test 40 HausdorffCosineLaw (meter): (0.501, 35, 3, 150, 0.20084)\n    test 41 HausdorffCosineLaw (meter): (0.501, 35, 3, 90, None)\n    test 42 HausdorffCosineLaw (meter): (0.501, 35, 3, 150, None)\n    test 43 HausdorffCosineLaw (meter): (0.501, 35, 3, 90, None)\n    test 44 HausdorffCosineLaw (meter): (0.501, 35, 3, 150, None)\n    test 45 copy(<class 'type'>): (<class 'pygeodesy.hausdorff.HausdorffCosineLaw'>, True)\n    test 46 HausdorffCosineLaw.copy(): (<class 'pygeodesy.hausdorff.HausdorffCosineLaw'>, True)\n    test 47 HausdorffCosineLaw (meter): (0.501, 35, 3, 90, 0.21184)\n    test 48 HausdorffCosineLaw (meter): (0.501, 35, 3, 150, 0.20084)\n    test 49 HausdorffCosineLaw (meter): (0.501, 35, 3, 90, 0.21184)\n    test 50 HausdorffCosineLaw (meter): (0.501, 35, 3, 150, 0.20084)\n    test 51 HausdorffCosineLaw (meter): (0.501, 35, 3, 90, None)\n    test 52 HausdorffCosineLaw (meter): (0.501, 35, 3, 150, None)\n    test 53 HausdorffCosineLaw (meter): (0.501, 35, 3, 90, None)\n    test 54 HausdorffCosineLaw (meter): (0.501, 35, 3, 150, None)\n    test 55 copy(<class 'type'>): (<class 'pygeodesy.hausdorff.HausdorffCosineLaw'>, True)\n    test 56 HausdorffCosineLaw.copy(): (<class 'pygeodesy.hausdorff.HausdorffCosineLaw'>, True)\n    test 57 HausdorffEquirectangular (degrees2): (0.25113, 35, 3, 90, 0.05965)\n    test 58 HausdorffEquirectangular (degrees2): (0.25113, 35, 3, 150, 0.05532)\n    test 59 HausdorffEquirectangular (degrees2): (0.25113, 35, 3, 90, 0.05965)\n    test 60 HausdorffEquirectangular (degrees2): (0.25113, 35, 3, 150, 0.05532)\n    test 61 HausdorffEquirectangular (degrees2): (0.25113, 35, 3, 90, None)\n    test 62 HausdorffEquirectangular (degrees2): (0.25113, 35, 3, 150, None)\n    test 63 HausdorffEquirectangular (degrees2): (0.25113, 35, 3, 90, None)\n    test 64 HausdorffEquirectangular (degrees2): (0.25113, 35, 3, 150, None)\n    test 65 copy(<class 'type'>): (<class 'pygeodesy.hausdorff.HausdorffEquirectangular'>, True)\n    test 66 HausdorffEquirectangular.copy(): (<class 'pygeodesy.hausdorff.HausdorffEquirectangular'>, True)\n    test 67 HausdorffEuclidean (meter): (0.52803, 56, 51, 90, 0.22571)\n    test 68 HausdorffEuclidean (meter): (0.52803, 56, 51, 150, 0.21579)\n    test 69 HausdorffEuclidean (meter): (0.52803, 56, 51, 90, 0.22571)\n    test 70 HausdorffEuclidean (meter): (0.52803, 56, 51, 150, 0.21579)\n    test 71 HausdorffEuclidean (meter): (0.52803, 56, 51, 90, None)\n    test 72 HausdorffEuclidean (meter): (0.52803, 56, 51, 150, None)\n    test 73 HausdorffEuclidean (meter): (0.52803, 56, 51, 90, None)\n    test 74 HausdorffEuclidean (meter): (0.52803, 56, 51, 150, None)\n    test 75 copy(<class 'type'>): (<class 'pygeodesy.hausdorff.HausdorffEuclidean'>, True)\n    test 76 HausdorffEuclidean.copy(): (<class 'pygeodesy.hausdorff.HausdorffEuclidean'>, True)\n    test 77 HausdorffFlatLocal (radians2): (0.25116, 35, 3, 90, 0.05951)\n    test 78 HausdorffFlatLocal (radians2): (0.25116, 35, 3, 150, 0.0552)\n    test 79 HausdorffFlatLocal (radians2): (0.25116, 35, 3, 90, 0.05951)\n    test 80 HausdorffFlatLocal (radians2): (0.25116, 35, 3, 150, 0.0552)\n    test 81 HausdorffFlatLocal (radians2): (0.25116, 35, 3, 90, None)\n    test 82 HausdorffFlatLocal (radians2): (0.25116, 35, 3, 150, None)\n    test 83 HausdorffFlatLocal (radians2): (0.25116, 35, 3, 90, None)\n    test 84 HausdorffFlatLocal (radians2): (0.25116, 35, 3, 150, None)\n    test 85 copy(<class 'type'>): (<class 'pygeodesy.hausdorff.HausdorffFlatLocal'>, True)\n    test 86 HausdorffFlatLocal.copy(): (<class 'pygeodesy.hausdorff.HausdorffFlatLocal'>, True)\n    test 87 HausdorffFlatPolar (meter): (0.69043, 4, 31, 90, 0.22286)\n    test 88 HausdorffFlatPolar (meter): (0.69043, 4, 31, 150, 0.21318)\n    test 89 HausdorffFlatPolar (meter): (0.69043, 4, 31, 90, 0.22286)\n    test 90 HausdorffFlatPolar (meter): (0.69043, 4, 31, 150, 0.21318)\n    test 91 HausdorffFlatPolar (meter): (0.69043, 4, 31, 90, None)\n    test 92 HausdorffFlatPolar (meter): (0.69043, 4, 31, 150, None)\n    test 93 HausdorffFlatPolar (meter): (0.69043, 4, 31, 90, None)\n    test 94 HausdorffFlatPolar (meter): (0.69043, 4, 31, 150, None)\n    test 95 copy(<class 'type'>): (<class 'pygeodesy.hausdorff.HausdorffFlatPolar'>, True)\n    test 96 HausdorffFlatPolar.copy(): (<class 'pygeodesy.hausdorff.HausdorffFlatPolar'>, True)\n    test 97 HausdorffHaversine (meter): (0.50097, 35, 3, 90, 0.212)\n    test 98 HausdorffHaversine (meter): (0.50097, 35, 3, 150, 0.20099)\n    test 99 HausdorffHaversine (meter): (0.50097, 35, 3, 90, 0.212)\n    test 100 HausdorffHaversine (meter): (0.50097, 35, 3, 150, 0.20099)\n    test 101 HausdorffHaversine (meter): (0.50097, 35, 3, 90, None)\n    test 102 HausdorffHaversine (meter): (0.50097, 35, 3, 150, None)\n    test 103 HausdorffHaversine (meter): (0.50097, 35, 3, 90, None)\n    test 104 HausdorffHaversine (meter): (0.50097, 35, 3, 150, None)\n    test 105 copy(<class 'type'>): (<class 'pygeodesy.hausdorff.HausdorffHaversine'>, True)\n    test 106 HausdorffHaversine.copy(): (<class 'pygeodesy.hausdorff.HausdorffHaversine'>, True)\n    test 107 HausdorffHubeny (radians2): (0.25116, 35, 3, 90, 0.05951)\n    test 108 HausdorffHubeny (radians2): (0.25116, 35, 3, 150, 0.0552)\n    test 109 HausdorffHubeny (radians2): (0.25116, 35, 3, 90, 0.05951)\n    test 110 HausdorffHubeny (radians2): (0.25116, 35, 3, 150, 0.0552)\n    test 111 HausdorffHubeny (radians2): (0.25116, 35, 3, 90, None)\n    test 112 HausdorffHubeny (radians2): (0.25116, 35, 3, 150, None)\n    test 113 HausdorffHubeny (radians2): (0.25116, 35, 3, 90, None)\n    test 114 HausdorffHubeny (radians2): (0.25116, 35, 3, 150, None)\n    test 115 copy(<class 'type'>): (<class 'pygeodesy.hausdorff.HausdorffHubeny'>, True)\n    test 116 HausdorffHubeny.copy(): (<class 'pygeodesy.hausdorff.HausdorffHubeny'>, True)\n    test 117 HausdorffThomas (meter): (0.501, 35, 3, 90, 0.21184)\n    test 118 HausdorffThomas (meter): (0.501, 35, 3, 150, 0.20084)\n    test 119 HausdorffThomas (meter): (0.501, 35, 3, 90, 0.21184)\n    test 120 HausdorffThomas (meter): (0.501, 35, 3, 150, 0.20084)\n    test 121 HausdorffThomas (meter): (0.501, 35, 3, 90, None)\n    test 122 HausdorffThomas (meter): (0.501, 35, 3, 150, None)\n    test 123 HausdorffThomas (meter): (0.501, 35, 3, 90, None)\n    test 124 HausdorffThomas (meter): (0.501, 35, 3, 150, None)\n    test 125 copy(<class 'type'>): (<class 'pygeodesy.hausdorff.HausdorffThomas'>, True)\n    test 126 HausdorffThomas.copy(): (<class 'pygeodesy.hausdorff.HausdorffThomas'>, True)\n    test 127 HausdorffVincentys (meter): (0.50097, 35, 3, 90, 0.212)\n    test 128 HausdorffVincentys (meter): (0.50097, 35, 3, 150, 0.20099)\n    test 129 HausdorffVincentys (meter): (0.50097, 35, 3, 90, 0.212)\n    test 130 HausdorffVincentys (meter): (0.50097, 35, 3, 150, 0.20099)\n    test 131 HausdorffVincentys (meter): (0.50097, 35, 3, 90, None)\n    test 132 HausdorffVincentys (meter): (0.50097, 35, 3, 150, None)\n    test 133 HausdorffVincentys (meter): (0.50097, 35, 3, 90, None)\n    test 134 HausdorffVincentys (meter): (0.50097, 35, 3, 150, None)\n    test 135 copy(<class 'type'>): (<class 'pygeodesy.hausdorff.HausdorffVincentys'>, True)\n    test 136 HausdorffVincentys.copy(): (<class 'pygeodesy.hausdorff.HausdorffVincentys'>, True)\n# lazily imported pygeodesy.geodesicw by ellipsoids.py line 1074\n    test 137 HausdorffKarney (degrees): (28.79903, 35, 3, 90, 12.16138)\n    test 138 HausdorffKarney (degrees): (28.79903, 35, 3, 150, 11.53021)\n    test 139 HausdorffKarney (degrees): (28.79903, 35, 3, 90, 12.16138)\n    test 140 HausdorffKarney (degrees): (28.79903, 35, 3, 150, 11.53021)\n    test 141 HausdorffKarney (degrees): (28.79903, 35, 3, 90, None)\n    test 142 HausdorffKarney (degrees): (28.79903, 35, 3, 150, None)\n    test 143 HausdorffKarney (degrees): (28.79903, 35, 3, 90, None)\n    test 144 HausdorffKarney (degrees): (28.79903, 35, 3, 150, None)\n    test 145 copy(<class 'type'>): (<class 'pygeodesy.hausdorff.HausdorffKarney'>, True)\n    test 146 HausdorffKarney.copy(): (<class 'pygeodesy.hausdorff.HausdorffKarney'>, True)\n    test 147 hausdorff_: (40.0, 22, 6, 90, 18.16111)\n    test 148 hausdorff_: (48.0, 38, 36, 150, 17.30667)\n    test 149 hausdorff_: (40.0, 22, 6, 90, 18.16111)\n    test 150 hausdorff_: (48.0, 38, 36, 150, 17.30667)\n    test 151 hausdorff_: (40.0, 22, 6, 90, None)\n    test 152 hausdorff_: (48.0, 38, 36, 150, None)\n    test 153 hausdorff_: (40.0, 22, 6, 90, None)\n    test 154 hausdorff_: (48.0, 38, 36, 150, None)\n# lazily imported pygeodesy.ellipsoidalNvector by testHausdorff.py line 257\n# lazily imported pygeodesy.ellipsoidalVincenty by testHausdorff.py line 257\n# lazily imported pygeodesy.sphericalNvector by testHausdorff.py line 257\n# lazily imported pygeodesy.sphericalTrigonometry by testHausdorff.py line 257\n# lazily imported pygeodesy.ellipsoidalKarney by testHausdorff.py line 262\n    test 155 HausdorffDistanceTo (meter): (3195418.34044, 35, 3, 90, 1351164.35982)  FAILED, KNOWN, expected (3195418.34044, 35, 3, 90, 1351164.35981)\n    test 156 HausdorffDistanceTo (meter): (3195418.34044, 35, 3, 150, 1280992.80341)\n    test 157 HausdorffDistanceTo (meter): (3195418.34044, 35, 3, 90, 1351164.35982)  FAILED, KNOWN, expected (3195418.34044, 35, 3, 90, 1351164.35981)\n    test 158 HausdorffDistanceTo (meter): (3195418.34044, 35, 3, 150, 1280992.80341)\n    test 159 HausdorffDistanceTo (meter): (3195418.34044, 35, 3, 90, None)\n    test 160 HausdorffDistanceTo (meter): (3195418.34044, 35, 3, 150, None)\n    test 161 HausdorffDistanceTo (meter): (3195418.34044, 35, 3, 90, None)\n    test 162 HausdorffDistanceTo (meter): (3195418.34044, 35, 3, 150, None)\n    test 163 copy(<class 'type'>): (<class 'pygeodesy.hausdorff.HausdorffDistanceTo'>, True)\n    test 164 HausdorffDistanceTo.copy(): (<class 'pygeodesy.hausdorff.HausdorffDistanceTo'>, True)\n    test 165 HausdorffDistanceTo (meter): (3195418.34044, 35, 3, 90, 1351164.35981)\n    test 166 HausdorffDistanceTo (meter): (3195418.34044, 35, 3, 150, 1280992.80341)\n    test 167 HausdorffDistanceTo (meter): (3195418.34044, 35, 3, 90, 1351164.35981)\n    test 168 HausdorffDistanceTo (meter): (3195418.34044, 35, 3, 150, 1280992.80341)\n    test 169 HausdorffDistanceTo (meter): (3195418.34044, 35, 3, 90, None)\n    test 170 HausdorffDistanceTo (meter): (3195418.34044, 35, 3, 150, None)\n    test 171 HausdorffDistanceTo (meter): (3195418.34044, 35, 3, 90, None)\n    test 172 HausdorffDistanceTo (meter): (3195418.34044, 35, 3, 150, None)\n    test 173 copy(<class 'type'>): (<class 'pygeodesy.hausdorff.HausdorffDistanceTo'>, True)\n    test 174 HausdorffDistanceTo.copy(): (<class 'pygeodesy.hausdorff.HausdorffDistanceTo'>, True)\n    test 175 HausdorffDistanceTo (meter): (3191685.70841, 35, 3, 90, 1350684.04012)\n    test 176 HausdorffDistanceTo (meter): (3191685.70841, 35, 3, 150, 1280478.58707)\n    test 177 HausdorffDistanceTo (meter): (3191685.70841, 35, 3, 90, 1350684.04012)\n    test 178 HausdorffDistanceTo (meter): (3191685.70841, 35, 3, 150, 1280478.58707)\n    test 179 HausdorffDistanceTo (meter): (3191685.70841, 35, 3, 90, None)\n    test 180 HausdorffDistanceTo (meter): (3191685.70841, 35, 3, 150, None)\n    test 181 HausdorffDistanceTo (meter): (3191685.70841, 35, 3, 90, None)\n    test 182 HausdorffDistanceTo (meter): (3191685.70841, 35, 3, 150, None)\n    test 183 copy(<class 'type'>): (<class 'pygeodesy.hausdorff.HausdorffDistanceTo'>, True)\n    test 184 HausdorffDistanceTo.copy(): (<class 'pygeodesy.hausdorff.HausdorffDistanceTo'>, True)\n    test 185 HausdorffDistanceTo (meter): (3191685.70841, 35, 3, 90, 1350684.04012)\n    test 186 HausdorffDistanceTo (meter): (3191685.70841, 35, 3, 150, 1280478.58707)\n    test 187 HausdorffDistanceTo (meter): (3191685.70841, 35, 3, 90, 1350684.04012)\n    test 188 HausdorffDistanceTo (meter): (3191685.70841, 35, 3, 150, 1280478.58707)\n    test 189 HausdorffDistanceTo (meter): (3191685.70841, 35, 3, 90, None)\n    test 190 HausdorffDistanceTo (meter): (3191685.70841, 35, 3, 150, None)\n    test 191 HausdorffDistanceTo (meter): (3191685.70841, 35, 3, 90, None)\n    test 192 HausdorffDistanceTo (meter): (3191685.70841, 35, 3, 150, None)\n    test 193 copy(<class 'type'>): (<class 'pygeodesy.hausdorff.HausdorffDistanceTo'>, True)\n    test 194 HausdorffDistanceTo.copy(): (<class 'pygeodesy.hausdorff.HausdorffDistanceTo'>, True)\n    test 195 HausdorffDistanceTo (meter): (3191685.70841, 35, 3, 90, 1350684.04012)\n    test 196 HausdorffDistanceTo (meter): (3191685.70841, 35, 3, 150, 1280478.58707)\n    test 197 HausdorffDistanceTo (meter): (3191685.70841, 35, 3, 90, 1350684.04012)\n    test 198 HausdorffDistanceTo (meter): (3191685.70841, 35, 3, 150, 1280478.58707)\n    test 199 HausdorffDistanceTo (meter): (3191685.70841, 35, 3, 90, None)\n    test 200 HausdorffDistanceTo (meter): (3191685.70841, 35, 3, 150, None)\n    test 201 HausdorffDistanceTo (meter): (3191685.70841, 35, 3, 90, None)\n    test 202 HausdorffDistanceTo (meter): (3191685.70841, 35, 3, 150, None)\n    test 203 copy(<class 'type'>): (<class 'pygeodesy.hausdorff.HausdorffDistanceTo'>, True)\n    test 204 HausdorffDistanceTo.copy(): (<class 'pygeodesy.hausdorff.HausdorffDistanceTo'>, True)\n\n    156 of 204 testHausdorff.py tests (76.5%) FAILED, incl. 2 KNOWN plus 154 DeprecationWarnings (pygeodesy 26.3.26 PyPy 7.3.17 Python 3.10.14 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 6.561 sec\nrunning /opt/local/bin/p....y3.10 -W default ~/PyGeodesy/test/testHeights.py\n# lazily imported pygeodesy.basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.DeprecationWarnings from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isint from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isLazy from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.issubclassof from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.iterNumpy2over from .iters by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.LazyImportError from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.karney by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.NN from .interns by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.normDMS from .dms by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.pairs from .streprs by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.printf from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.property_RO from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.typename from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.Datums from .datums by testHeights.py line 17\n# lazily imported pygeodesy.fstr from .streprs by testHeights.py line 17\n# lazily imported pygeodesy.SciPyError from .errors by testHeights.py line 17\n# lazily imported pygeodesy.HeightError from .heights by testHeights.py line 17\n# lazily imported pygeodesy.HeightIDWcosineLaw from .heights by testHeights.py line 17\n# lazily imported pygeodesy.HeightCubic from .heights by testHeights.py line 17\n# lazily imported pygeodesy.HeightIDWdistanceTo from .heights by testHeights.py line 17\n# lazily imported pygeodesy.HeightIDWequirectangular from .heights by testHeights.py line 17\n# lazily imported pygeodesy.HeightIDWeuclidean from .heights by testHeights.py line 17\n# lazily imported pygeodesy.HeightIDWexact from .heights by testHeights.py line 17\n# lazily imported pygeodesy.HeightIDWflatLocal from .heights by testHeights.py line 17\n# lazily imported pygeodesy.HeightIDWflatPolar from .heights by testHeights.py line 17\n# lazily imported pygeodesy.HeightIDWhaversine from .heights by testHeights.py line 17\n# lazily imported pygeodesy.HeightIDWhubeny from .heights by testHeights.py line 17\n# lazily imported pygeodesy.HeightIDWkarney from .heights by testHeights.py line 17\n# lazily imported pygeodesy.HeightIDWthomas from .heights by testHeights.py line 17\n# lazily imported pygeodesy.HeightIDWvincentys from .heights by testHeights.py line 17\n# lazily imported pygeodesy.HeightLinear from .heights by testHeights.py line 17\n# lazily imported pygeodesy.HeightLSQBiSpline from .heights by testHeights.py line 17\n# lazily imported pygeodesy.HeightSmoothBiSpline from .heights by testHeights.py line 17\n\n    testing testHeights.py 24.12.31 isLazy=3\n# imported pygeodesy.formy into heights.py line 789\n\n    test 1 HeightIDWcosineLaw(wrap=True): 6.108538037\n    test 2 HeightIDWcosineLaw(float): <class 'float'>\n    test 3 HeightIDWcosineLaw(latlon): True\n    test 4 HeightIDWcosineLaw_(tuple): True\n    test 5 HeightIDWcosineLaw(wrap=True): 5.0\n    test 6 HeightIDWcosineLaw(float): <class 'float'>\n    test 7 HeightIDWcosineLaw(latlon): True\n    test 8 HeightIDWcosineLaw(wrap=True): (6.108538037, 5.0,)\n    test 9 HeightIDWcosineLaw(tuple): <class 'tuple'>\n    test 10 HeightIDWcosineLaw(tuple-float): <class 'float'>\n    test 11 HeightIDWcosineLaw(tuple-float): <class 'float'>\n    test 12 HeightIDWcosineLaw(wrap=True): [6.108538037, 5.0]\n    test 13 HeightIDWcosineLaw(list: <class 'list'>\n    test 14 HeightIDWcosineLaw(list-float): <class 'float'>\n    test 15 HeightIDWcosineLaw(list-float): <class 'float'>\n    test 16 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWcosineLaw'>, True)\n    test 17 HeightIDWcosineLaw.copy(): (<class 'pygeodesy.heights.HeightIDWcosineLaw'>, True)\n    test 18 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n\n    test 19 HeightIDWcosineLaw(wrap=False): 6.108538037\n    test 20 HeightIDWcosineLaw(float): <class 'float'>\n    test 21 HeightIDWcosineLaw(latlon): True\n    test 22 HeightIDWcosineLaw_(tuple): True\n    test 23 HeightIDWcosineLaw(wrap=False): 5.0\n    test 24 HeightIDWcosineLaw(float): <class 'float'>\n    test 25 HeightIDWcosineLaw(latlon): True\n    test 26 HeightIDWcosineLaw(wrap=False): (6.108538037, 5.0,)\n    test 27 HeightIDWcosineLaw(tuple): <class 'tuple'>\n    test 28 HeightIDWcosineLaw(tuple-float): <class 'float'>\n    test 29 HeightIDWcosineLaw(tuple-float): <class 'float'>\n    test 30 HeightIDWcosineLaw(wrap=False): [6.108538037, 5.0]\n    test 31 HeightIDWcosineLaw(list: <class 'list'>\n    test 32 HeightIDWcosineLaw(list-float): <class 'float'>\n    test 33 HeightIDWcosineLaw(list-float): <class 'float'>\n    test 34 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWcosineLaw'>, True)\n    test 35 HeightIDWcosineLaw.copy(): (<class 'pygeodesy.heights.HeightIDWcosineLaw'>, True)\n    test 36 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n\n    test 37 HeightIDWcosineLaw(corr=1, wrap=False): 6.111157919\n    test 38 HeightIDWcosineLaw(float): <class 'float'>\n    test 39 HeightIDWcosineLaw(latlon): True\n    test 40 HeightIDWcosineLaw_(tuple): True\n    test 41 HeightIDWcosineLaw(corr=1, wrap=False): 5.0\n    test 42 HeightIDWcosineLaw(float): <class 'float'>\n    test 43 HeightIDWcosineLaw(latlon): True\n    test 44 HeightIDWcosineLaw(corr=1, wrap=False): (6.111157919, 5.0,)\n    test 45 HeightIDWcosineLaw(tuple): <class 'tuple'>\n    test 46 HeightIDWcosineLaw(tuple-float): <class 'float'>\n    test 47 HeightIDWcosineLaw(tuple-float): <class 'float'>\n    test 48 HeightIDWcosineLaw(corr=1, wrap=False): [6.111157919, 5.0]\n    test 49 HeightIDWcosineLaw(list: <class 'list'>\n    test 50 HeightIDWcosineLaw(list-float): <class 'float'>\n    test 51 HeightIDWcosineLaw(list-float): <class 'float'>\n    test 52 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWcosineLaw'>, True)\n    test 53 HeightIDWcosineLaw.copy(): (<class 'pygeodesy.heights.HeightIDWcosineLaw'>, True)\n    test 54 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n\n    test 55 HeightIDWcosineLaw(corr=2, wrap=False): 6.111158354\n    test 56 HeightIDWcosineLaw(float): <class 'float'>\n    test 57 HeightIDWcosineLaw(latlon): True\n    test 58 HeightIDWcosineLaw_(tuple): True\n    test 59 HeightIDWcosineLaw(corr=2, wrap=False): 5.0\n    test 60 HeightIDWcosineLaw(float): <class 'float'>\n    test 61 HeightIDWcosineLaw(latlon): True\n    test 62 HeightIDWcosineLaw(corr=2, wrap=False): (6.111158354, 5.0,)\n    test 63 HeightIDWcosineLaw(tuple): <class 'tuple'>\n    test 64 HeightIDWcosineLaw(tuple-float): <class 'float'>\n    test 65 HeightIDWcosineLaw(tuple-float): <class 'float'>\n    test 66 HeightIDWcosineLaw(corr=2, wrap=False): [6.111158354, 5.0]\n    test 67 HeightIDWcosineLaw(list: <class 'list'>\n    test 68 HeightIDWcosineLaw(list-float): <class 'float'>\n    test 69 HeightIDWcosineLaw(list-float): <class 'float'>\n    test 70 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWcosineLaw'>, True)\n    test 71 HeightIDWcosineLaw.copy(): (<class 'pygeodesy.heights.HeightIDWcosineLaw'>, True)\n    test 72 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n\n    test 73 HeightIDWdistanceTo(): 6.108538037\n    test 74 HeightIDWdistanceTo(float): <class 'float'>\n    test 75 HeightIDWdistanceTo(latlon): True\n    test 76 HeightIDWdistanceTo_(tuple): True\n    test 77 HeightIDWdistanceTo(): 5.0\n    test 78 HeightIDWdistanceTo(float): <class 'float'>\n    test 79 HeightIDWdistanceTo(latlon): True\n    test 80 HeightIDWdistanceTo(): (6.108538037, 5.0,)\n    test 81 HeightIDWdistanceTo(tuple): <class 'tuple'>\n    test 82 HeightIDWdistanceTo(tuple-float): <class 'float'>\n    test 83 HeightIDWdistanceTo(tuple-float): <class 'float'>\n    test 84 HeightIDWdistanceTo(): [6.108538037, 5.0]\n    test 85 HeightIDWdistanceTo(list: <class 'list'>\n    test 86 HeightIDWdistanceTo(list-float): <class 'float'>\n    test 87 HeightIDWdistanceTo(list-float): <class 'float'>\n    test 88 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWdistanceTo'>, True)\n    test 89 HeightIDWdistanceTo.copy(): (<class 'pygeodesy.heights.HeightIDWdistanceTo'>, True)\n    test 90 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n\n    test 91 HeightIDWequirectangular(adjust=True, wrap=True): 6.860459007\n    test 92 HeightIDWequirectangular(float): <class 'float'>\n    test 93 HeightIDWequirectangular(latlon): True\n    test 94 HeightIDWequirectangular_(tuple): True\n    test 95 HeightIDWequirectangular(adjust=True, wrap=True): 5.0\n    test 96 HeightIDWequirectangular(float): <class 'float'>\n    test 97 HeightIDWequirectangular(latlon): True\n    test 98 HeightIDWequirectangular(adjust=True, wrap=True): (6.860459007, 5.0,)\n    test 99 HeightIDWequirectangular(tuple): <class 'tuple'>\n    test 100 HeightIDWequirectangular(tuple-float): <class 'float'>\n    test 101 HeightIDWequirectangular(tuple-float): <class 'float'>\n    test 102 HeightIDWequirectangular(adjust=True, wrap=True): [6.860459007, 5.0]\n    test 103 HeightIDWequirectangular(list: <class 'list'>\n    test 104 HeightIDWequirectangular(list-float): <class 'float'>\n    test 105 HeightIDWequirectangular(list-float): <class 'float'>\n    test 106 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWequirectangular'>, True)\n    test 107 HeightIDWequirectangular.copy(): (<class 'pygeodesy.heights.HeightIDWequirectangular'>, True)\n    test 108 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n\n    test 109 HeightIDWequirectangular(adjust=False, wrap=True): 6.860498092\n    test 110 HeightIDWequirectangular(float): <class 'float'>\n    test 111 HeightIDWequirectangular(latlon): True\n    test 112 HeightIDWequirectangular_(tuple): True\n    test 113 HeightIDWequirectangular(adjust=False, wrap=True): 5.0\n    test 114 HeightIDWequirectangular(float): <class 'float'>\n    test 115 HeightIDWequirectangular(latlon): True\n    test 116 HeightIDWequirectangular(adjust=False, wrap=True): (6.860498092, 5.0,)\n    test 117 HeightIDWequirectangular(tuple): <class 'tuple'>\n    test 118 HeightIDWequirectangular(tuple-float): <class 'float'>\n    test 119 HeightIDWequirectangular(tuple-float): <class 'float'>\n    test 120 HeightIDWequirectangular(adjust=False, wrap=True): [6.860498092, 5.0]\n    test 121 HeightIDWequirectangular(list: <class 'list'>\n    test 122 HeightIDWequirectangular(list-float): <class 'float'>\n    test 123 HeightIDWequirectangular(list-float): <class 'float'>\n    test 124 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWequirectangular'>, True)\n    test 125 HeightIDWequirectangular.copy(): (<class 'pygeodesy.heights.HeightIDWequirectangular'>, True)\n    test 126 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n\n    test 127 HeightIDWeuclidean(): 6.142945781\n    test 128 HeightIDWeuclidean(float): <class 'float'>\n    test 129 HeightIDWeuclidean(latlon): True\n    test 130 HeightIDWeuclidean_(tuple): True\n    test 131 HeightIDWeuclidean(): 5.0\n    test 132 HeightIDWeuclidean(float): <class 'float'>\n    test 133 HeightIDWeuclidean(latlon): True\n    test 134 HeightIDWeuclidean(): (6.142945781, 5.0,)\n    test 135 HeightIDWeuclidean(tuple): <class 'tuple'>\n    test 136 HeightIDWeuclidean(tuple-float): <class 'float'>\n    test 137 HeightIDWeuclidean(tuple-float): <class 'float'>\n    test 138 HeightIDWeuclidean(): [6.142945781, 5.0]\n    test 139 HeightIDWeuclidean(list: <class 'list'>\n    test 140 HeightIDWeuclidean(list-float): <class 'float'>\n    test 141 HeightIDWeuclidean(list-float): <class 'float'>\n    test 142 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWeuclidean'>, True)\n    test 143 HeightIDWeuclidean.copy(): (<class 'pygeodesy.heights.HeightIDWeuclidean'>, True)\n    test 144 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n# lazily imported pygeodesy.geodesicx by ellipsoids.py line 1082\n# lazily imported pygeodesy.elliptic by gx.py line 421\n\n    test 145 HeightIDWexact(): 6.108538037\n    test 146 HeightIDWexact(float): <class 'float'>\n    test 147 HeightIDWexact(latlon): True\n    test 148 HeightIDWexact_(tuple): True\n    test 149 HeightIDWexact(): 5.0\n    test 150 HeightIDWexact(float): <class 'float'>\n    test 151 HeightIDWexact(latlon): True\n    test 152 HeightIDWexact(): (6.108538037, 5.0,)\n    test 153 HeightIDWexact(tuple): <class 'tuple'>\n    test 154 HeightIDWexact(tuple-float): <class 'float'>\n    test 155 HeightIDWexact(tuple-float): <class 'float'>\n    test 156 HeightIDWexact(): [6.108538037, 5.0]\n    test 157 HeightIDWexact(list: <class 'list'>\n    test 158 HeightIDWexact(list-float): <class 'float'>\n    test 159 HeightIDWexact(list-float): <class 'float'>\n    test 160 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWexact'>, True)\n    test 161 HeightIDWexact.copy(): (<class 'pygeodesy.heights.HeightIDWexact'>, True)\n    test 162 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n\n    test 163 HeightIDWflatLocal(): 6.111158784\n    test 164 HeightIDWflatLocal(float): <class 'float'>\n    test 165 HeightIDWflatLocal(latlon): True\n    test 166 HeightIDWflatLocal_(tuple): True\n    test 167 HeightIDWflatLocal(): 5.0\n    test 168 HeightIDWflatLocal(float): <class 'float'>\n    test 169 HeightIDWflatLocal(latlon): True\n    test 170 HeightIDWflatLocal(): (6.111158784, 5.0,)\n    test 171 HeightIDWflatLocal(tuple): <class 'tuple'>\n    test 172 HeightIDWflatLocal(tuple-float): <class 'float'>\n    test 173 HeightIDWflatLocal(tuple-float): <class 'float'>\n    test 174 HeightIDWflatLocal(): [6.111158784, 5.0]\n    test 175 HeightIDWflatLocal(list: <class 'list'>\n    test 176 HeightIDWflatLocal(list-float): <class 'float'>\n    test 177 HeightIDWflatLocal(list-float): <class 'float'>\n    test 178 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWflatLocal'>, True)\n    test 179 HeightIDWflatLocal.copy(): (<class 'pygeodesy.heights.HeightIDWflatLocal'>, True)\n    test 180 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n\n    test 181 HeightIDWflatPolar(): 6.261469975\n    test 182 HeightIDWflatPolar(float): <class 'float'>\n    test 183 HeightIDWflatPolar(latlon): True\n    test 184 HeightIDWflatPolar_(tuple): True\n    test 185 HeightIDWflatPolar(): 5.0\n    test 186 HeightIDWflatPolar(float): <class 'float'>\n    test 187 HeightIDWflatPolar(latlon): True\n    test 188 HeightIDWflatPolar(): (6.261469975, 5.0,)\n    test 189 HeightIDWflatPolar(tuple): <class 'tuple'>\n    test 190 HeightIDWflatPolar(tuple-float): <class 'float'>\n    test 191 HeightIDWflatPolar(tuple-float): <class 'float'>\n    test 192 HeightIDWflatPolar(): [6.261469975, 5.0]\n    test 193 HeightIDWflatPolar(list: <class 'list'>\n    test 194 HeightIDWflatPolar(list-float): <class 'float'>\n    test 195 HeightIDWflatPolar(list-float): <class 'float'>\n    test 196 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWflatPolar'>, True)\n    test 197 HeightIDWflatPolar.copy(): (<class 'pygeodesy.heights.HeightIDWflatPolar'>, True)\n    test 198 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n\n    test 199 HeightIDWhaversine(): 6.108538037\n    test 200 HeightIDWhaversine(float): <class 'float'>\n    test 201 HeightIDWhaversine(latlon): True\n    test 202 HeightIDWhaversine_(tuple): True\n    test 203 HeightIDWhaversine(): 5.0\n    test 204 HeightIDWhaversine(float): <class 'float'>\n    test 205 HeightIDWhaversine(latlon): True\n    test 206 HeightIDWhaversine(): (6.108538037, 5.0,)\n    test 207 HeightIDWhaversine(tuple): <class 'tuple'>\n    test 208 HeightIDWhaversine(tuple-float): <class 'float'>\n    test 209 HeightIDWhaversine(tuple-float): <class 'float'>\n    test 210 HeightIDWhaversine(): [6.108538037, 5.0]\n    test 211 HeightIDWhaversine(list: <class 'list'>\n    test 212 HeightIDWhaversine(list-float): <class 'float'>\n    test 213 HeightIDWhaversine(list-float): <class 'float'>\n    test 214 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWhaversine'>, True)\n    test 215 HeightIDWhaversine.copy(): (<class 'pygeodesy.heights.HeightIDWhaversine'>, True)\n    test 216 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n\n    test 217 HeightIDWhubeny(): 6.111158784\n    test 218 HeightIDWhubeny(float): <class 'float'>\n    test 219 HeightIDWhubeny(latlon): True\n    test 220 HeightIDWhubeny_(tuple): True\n    test 221 HeightIDWhubeny(): 5.0\n    test 222 HeightIDWhubeny(float): <class 'float'>\n    test 223 HeightIDWhubeny(latlon): True\n    test 224 HeightIDWhubeny(): (6.111158784, 5.0,)\n    test 225 HeightIDWhubeny(tuple): <class 'tuple'>\n    test 226 HeightIDWhubeny(tuple-float): <class 'float'>\n    test 227 HeightIDWhubeny(tuple-float): <class 'float'>\n    test 228 HeightIDWhubeny(): [6.111158784, 5.0]\n    test 229 HeightIDWhubeny(list: <class 'list'>\n    test 230 HeightIDWhubeny(list-float): <class 'float'>\n    test 231 HeightIDWhubeny(list-float): <class 'float'>\n    test 232 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWhubeny'>, True)\n    test 233 HeightIDWhubeny.copy(): (<class 'pygeodesy.heights.HeightIDWhubeny'>, True)\n    test 234 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n# lazily imported pygeodesy.geodesicw by ellipsoids.py line 1074\n\n    test 235 HeightIDWkarney(datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), wrap=True): 6.111158743\n    test 236 HeightIDWkarney(float): <class 'float'>\n    test 237 HeightIDWkarney(latlon): True\n    test 238 HeightIDWkarney_(tuple): True\n    test 239 HeightIDWkarney(datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), wrap=True): 5.0\n    test 240 HeightIDWkarney(float): <class 'float'>\n    test 241 HeightIDWkarney(latlon): True\n    test 242 HeightIDWkarney(datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), wrap=True): (6.111158743, 5.0,)\n    test 243 HeightIDWkarney(tuple): <class 'tuple'>\n    test 244 HeightIDWkarney(tuple-float): <class 'float'>\n    test 245 HeightIDWkarney(tuple-float): <class 'float'>\n    test 246 HeightIDWkarney(datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), wrap=True): [6.111158743, 5.0]\n    test 247 HeightIDWkarney(list: <class 'list'>\n    test 248 HeightIDWkarney(list-float): <class 'float'>\n    test 249 HeightIDWkarney(list-float): <class 'float'>\n    test 250 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWkarney'>, True)\n    test 251 HeightIDWkarney.copy(): (<class 'pygeodesy.heights.HeightIDWkarney'>, True)\n    test 252 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n\n    test 253 HeightIDWkarney(datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), wrap=False): 6.111158743\n    test 254 HeightIDWkarney(float): <class 'float'>\n    test 255 HeightIDWkarney(latlon): True\n    test 256 HeightIDWkarney_(tuple): True\n    test 257 HeightIDWkarney(datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), wrap=False): 5.0\n    test 258 HeightIDWkarney(float): <class 'float'>\n    test 259 HeightIDWkarney(latlon): True\n    test 260 HeightIDWkarney(datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), wrap=False): (6.111158743, 5.0,)\n    test 261 HeightIDWkarney(tuple): <class 'tuple'>\n    test 262 HeightIDWkarney(tuple-float): <class 'float'>\n    test 263 HeightIDWkarney(tuple-float): <class 'float'>\n    test 264 HeightIDWkarney(datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), wrap=False): [6.111158743, 5.0]\n    test 265 HeightIDWkarney(list: <class 'list'>\n    test 266 HeightIDWkarney(list-float): <class 'float'>\n    test 267 HeightIDWkarney(list-float): <class 'float'>\n    test 268 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWkarney'>, True)\n    test 269 HeightIDWkarney.copy(): (<class 'pygeodesy.heights.HeightIDWkarney'>, True)\n    test 270 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n\n    test 271 HeightIDWkarney(datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84), wrap=True): 6.108538037\n    test 272 HeightIDWkarney(float): <class 'float'>\n    test 273 HeightIDWkarney(latlon): True\n    test 274 HeightIDWkarney_(tuple): True\n    test 275 HeightIDWkarney(datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84), wrap=True): 5.0\n    test 276 HeightIDWkarney(float): <class 'float'>\n    test 277 HeightIDWkarney(latlon): True\n    test 278 HeightIDWkarney(datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84), wrap=True): (6.108538037, 5.0,)\n    test 279 HeightIDWkarney(tuple): <class 'tuple'>\n    test 280 HeightIDWkarney(tuple-float): <class 'float'>\n    test 281 HeightIDWkarney(tuple-float): <class 'float'>\n    test 282 HeightIDWkarney(datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84), wrap=True): [6.108538037, 5.0]\n    test 283 HeightIDWkarney(list: <class 'list'>\n    test 284 HeightIDWkarney(list-float): <class 'float'>\n    test 285 HeightIDWkarney(list-float): <class 'float'>\n    test 286 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWkarney'>, True)\n    test 287 HeightIDWkarney.copy(): (<class 'pygeodesy.heights.HeightIDWkarney'>, True)\n    test 288 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n\n    test 289 HeightIDWkarney(datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84), wrap=False): 6.108538037\n    test 290 HeightIDWkarney(float): <class 'float'>\n    test 291 HeightIDWkarney(latlon): True\n    test 292 HeightIDWkarney_(tuple): True\n    test 293 HeightIDWkarney(datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84), wrap=False): 5.0\n    test 294 HeightIDWkarney(float): <class 'float'>\n    test 295 HeightIDWkarney(latlon): True\n    test 296 HeightIDWkarney(datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84), wrap=False): (6.108538037, 5.0,)\n    test 297 HeightIDWkarney(tuple): <class 'tuple'>\n    test 298 HeightIDWkarney(tuple-float): <class 'float'>\n    test 299 HeightIDWkarney(tuple-float): <class 'float'>\n    test 300 HeightIDWkarney(datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84), wrap=False): [6.108538037, 5.0]\n    test 301 HeightIDWkarney(list: <class 'list'>\n    test 302 HeightIDWkarney(list-float): <class 'float'>\n    test 303 HeightIDWkarney(list-float): <class 'float'>\n    test 304 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWkarney'>, True)\n    test 305 HeightIDWkarney.copy(): (<class 'pygeodesy.heights.HeightIDWkarney'>, True)\n    test 306 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n\n    test 307 HeightIDWthomas(wrap=True): 6.111159454\n    test 308 HeightIDWthomas(float): <class 'float'>\n    test 309 HeightIDWthomas(latlon): True\n    test 310 HeightIDWthomas_(tuple): True\n    test 311 HeightIDWthomas(wrap=True): 5.0\n    test 312 HeightIDWthomas(float): <class 'float'>\n    test 313 HeightIDWthomas(latlon): True\n    test 314 HeightIDWthomas(wrap=True): (6.111159454, 5.0,)\n    test 315 HeightIDWthomas(tuple): <class 'tuple'>\n    test 316 HeightIDWthomas(tuple-float): <class 'float'>\n    test 317 HeightIDWthomas(tuple-float): <class 'float'>\n    test 318 HeightIDWthomas(wrap=True): [6.111159454, 5.0]\n    test 319 HeightIDWthomas(list: <class 'list'>\n    test 320 HeightIDWthomas(list-float): <class 'float'>\n    test 321 HeightIDWthomas(list-float): <class 'float'>\n    test 322 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWthomas'>, True)\n    test 323 HeightIDWthomas.copy(): (<class 'pygeodesy.heights.HeightIDWthomas'>, True)\n    test 324 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n\n    test 325 HeightIDWthomas(wrap=False): 6.111159454\n    test 326 HeightIDWthomas(float): <class 'float'>\n    test 327 HeightIDWthomas(latlon): True\n    test 328 HeightIDWthomas_(tuple): True\n    test 329 HeightIDWthomas(wrap=False): 5.0\n    test 330 HeightIDWthomas(float): <class 'float'>\n    test 331 HeightIDWthomas(latlon): True\n    test 332 HeightIDWthomas(wrap=False): (6.111159454, 5.0,)\n    test 333 HeightIDWthomas(tuple): <class 'tuple'>\n    test 334 HeightIDWthomas(tuple-float): <class 'float'>\n    test 335 HeightIDWthomas(tuple-float): <class 'float'>\n    test 336 HeightIDWthomas(wrap=False): [6.111159454, 5.0]\n    test 337 HeightIDWthomas(list: <class 'list'>\n    test 338 HeightIDWthomas(list-float): <class 'float'>\n    test 339 HeightIDWthomas(list-float): <class 'float'>\n    test 340 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWthomas'>, True)\n    test 341 HeightIDWthomas.copy(): (<class 'pygeodesy.heights.HeightIDWthomas'>, True)\n    test 342 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n\n    test 343 HeightIDWvincentys(wrap=True): 6.108538037\n    test 344 HeightIDWvincentys(float): <class 'float'>\n    test 345 HeightIDWvincentys(latlon): True\n    test 346 HeightIDWvincentys_(tuple): True\n    test 347 HeightIDWvincentys(wrap=True): 5.0\n    test 348 HeightIDWvincentys(float): <class 'float'>\n    test 349 HeightIDWvincentys(latlon): True\n    test 350 HeightIDWvincentys(wrap=True): (6.108538037, 5.0,)\n    test 351 HeightIDWvincentys(tuple): <class 'tuple'>\n    test 352 HeightIDWvincentys(tuple-float): <class 'float'>\n    test 353 HeightIDWvincentys(tuple-float): <class 'float'>\n    test 354 HeightIDWvincentys(wrap=True): [6.108538037, 5.0]\n    test 355 HeightIDWvincentys(list: <class 'list'>\n    test 356 HeightIDWvincentys(list-float): <class 'float'>\n    test 357 HeightIDWvincentys(list-float): <class 'float'>\n    test 358 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWvincentys'>, True)\n    test 359 HeightIDWvincentys.copy(): (<class 'pygeodesy.heights.HeightIDWvincentys'>, True)\n    test 360 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n\n    test 361 HeightIDWvincentys(wrap=False): 6.108538037\n    test 362 HeightIDWvincentys(float): <class 'float'>\n    test 363 HeightIDWvincentys(latlon): True\n    test 364 HeightIDWvincentys_(tuple): True\n    test 365 HeightIDWvincentys(wrap=False): 5.0\n    test 366 HeightIDWvincentys(float): <class 'float'>\n    test 367 HeightIDWvincentys(latlon): True\n    test 368 HeightIDWvincentys(wrap=False): (6.108538037, 5.0,)\n    test 369 HeightIDWvincentys(tuple): <class 'tuple'>\n    test 370 HeightIDWvincentys(tuple-float): <class 'float'>\n    test 371 HeightIDWvincentys(tuple-float): <class 'float'>\n    test 372 HeightIDWvincentys(wrap=False): [6.108538037, 5.0]\n    test 373 HeightIDWvincentys(list: <class 'list'>\n    test 374 HeightIDWvincentys(list-float): <class 'float'>\n    test 375 HeightIDWvincentys(list-float): <class 'float'>\n    test 376 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWvincentys'>, True)\n    test 377 HeightIDWvincentys.copy(): (<class 'pygeodesy.heights.HeightIDWvincentys'>, True)\n    test 378 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 379 intersection: 02.64932°N, 002.550079°E, +2.50m\n\n\n    test 380 HeightIDWcosineLaw(wrap=True): 2.592742938\n    test 381 HeightIDWcosineLaw(float): <class 'float'>\n    test 382 HeightIDWcosineLaw(latlon): True\n    test 383 HeightIDWcosineLaw_(tuple): True\n    test 384 HeightIDWcosineLaw(wrap=True): 3.0\n    test 385 HeightIDWcosineLaw(float): <class 'float'>\n    test 386 HeightIDWcosineLaw(latlon): True\n    test 387 HeightIDWcosineLaw(wrap=True): (2.592742938, 3.0,)\n    test 388 HeightIDWcosineLaw(tuple): <class 'tuple'>\n    test 389 HeightIDWcosineLaw(tuple-float): <class 'float'>\n    test 390 HeightIDWcosineLaw(tuple-float): <class 'float'>\n    test 391 HeightIDWcosineLaw(wrap=True): [2.592742938, 3.0]\n    test 392 HeightIDWcosineLaw(list: <class 'list'>\n    test 393 HeightIDWcosineLaw(list-float): <class 'float'>\n    test 394 HeightIDWcosineLaw(list-float): <class 'float'>\n    test 395 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWcosineLaw'>, True)\n    test 396 HeightIDWcosineLaw.copy(): (<class 'pygeodesy.heights.HeightIDWcosineLaw'>, True)\n    test 397 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n\n    test 398 HeightIDWcosineLaw(wrap=False): 2.592742938\n    test 399 HeightIDWcosineLaw(float): <class 'float'>\n    test 400 HeightIDWcosineLaw(latlon): True\n    test 401 HeightIDWcosineLaw_(tuple): True\n    test 402 HeightIDWcosineLaw(wrap=False): 3.0\n    test 403 HeightIDWcosineLaw(float): <class 'float'>\n    test 404 HeightIDWcosineLaw(latlon): True\n    test 405 HeightIDWcosineLaw(wrap=False): (2.592742938, 3.0,)\n    test 406 HeightIDWcosineLaw(tuple): <class 'tuple'>\n    test 407 HeightIDWcosineLaw(tuple-float): <class 'float'>\n    test 408 HeightIDWcosineLaw(tuple-float): <class 'float'>\n    test 409 HeightIDWcosineLaw(wrap=False): [2.592742938, 3.0]\n    test 410 HeightIDWcosineLaw(list: <class 'list'>\n    test 411 HeightIDWcosineLaw(list-float): <class 'float'>\n    test 412 HeightIDWcosineLaw(list-float): <class 'float'>\n    test 413 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWcosineLaw'>, True)\n    test 414 HeightIDWcosineLaw.copy(): (<class 'pygeodesy.heights.HeightIDWcosineLaw'>, True)\n    test 415 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n\n    test 416 HeightIDWcosineLaw(corr=1, wrap=False): 2.592742781\n    test 417 HeightIDWcosineLaw(float): <class 'float'>\n    test 418 HeightIDWcosineLaw(latlon): True\n    test 419 HeightIDWcosineLaw_(tuple): True\n    test 420 HeightIDWcosineLaw(corr=1, wrap=False): 3.0\n    test 421 HeightIDWcosineLaw(float): <class 'float'>\n    test 422 HeightIDWcosineLaw(latlon): True\n    test 423 HeightIDWcosineLaw(corr=1, wrap=False): (2.592742781, 3.0,)\n    test 424 HeightIDWcosineLaw(tuple): <class 'tuple'>\n    test 425 HeightIDWcosineLaw(tuple-float): <class 'float'>\n    test 426 HeightIDWcosineLaw(tuple-float): <class 'float'>\n    test 427 HeightIDWcosineLaw(corr=1, wrap=False): [2.592742781, 3.0]\n    test 428 HeightIDWcosineLaw(list: <class 'list'>\n    test 429 HeightIDWcosineLaw(list-float): <class 'float'>\n    test 430 HeightIDWcosineLaw(list-float): <class 'float'>\n    test 431 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWcosineLaw'>, True)\n    test 432 HeightIDWcosineLaw.copy(): (<class 'pygeodesy.heights.HeightIDWcosineLaw'>, True)\n    test 433 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n\n    test 434 HeightIDWcosineLaw(corr=2, wrap=False): 2.592742781\n    test 435 HeightIDWcosineLaw(float): <class 'float'>\n    test 436 HeightIDWcosineLaw(latlon): True\n    test 437 HeightIDWcosineLaw_(tuple): True\n    test 438 HeightIDWcosineLaw(corr=2, wrap=False): 3.0\n    test 439 HeightIDWcosineLaw(float): <class 'float'>\n    test 440 HeightIDWcosineLaw(latlon): True\n    test 441 HeightIDWcosineLaw(corr=2, wrap=False): (2.592742781, 3.0,)\n    test 442 HeightIDWcosineLaw(tuple): <class 'tuple'>\n    test 443 HeightIDWcosineLaw(tuple-float): <class 'float'>\n    test 444 HeightIDWcosineLaw(tuple-float): <class 'float'>\n    test 445 HeightIDWcosineLaw(corr=2, wrap=False): [2.592742781, 3.0]\n    test 446 HeightIDWcosineLaw(list: <class 'list'>\n    test 447 HeightIDWcosineLaw(list-float): <class 'float'>\n    test 448 HeightIDWcosineLaw(list-float): <class 'float'>\n    test 449 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWcosineLaw'>, True)\n    test 450 HeightIDWcosineLaw.copy(): (<class 'pygeodesy.heights.HeightIDWcosineLaw'>, True)\n    test 451 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n\n    test 452 HeightIDWequirectangular(adjust=True, wrap=True): 2.689429914\n    test 453 HeightIDWequirectangular(float): <class 'float'>\n    test 454 HeightIDWequirectangular(latlon): True\n    test 455 HeightIDWequirectangular_(tuple): True\n    test 456 HeightIDWequirectangular(adjust=True, wrap=True): 3.0\n    test 457 HeightIDWequirectangular(float): <class 'float'>\n    test 458 HeightIDWequirectangular(latlon): True\n    test 459 HeightIDWequirectangular(adjust=True, wrap=True): (2.689429914, 3.0,)\n    test 460 HeightIDWequirectangular(tuple): <class 'tuple'>\n    test 461 HeightIDWequirectangular(tuple-float): <class 'float'>\n    test 462 HeightIDWequirectangular(tuple-float): <class 'float'>\n    test 463 HeightIDWequirectangular(adjust=True, wrap=True): [2.689429914, 3.0]\n    test 464 HeightIDWequirectangular(list: <class 'list'>\n    test 465 HeightIDWequirectangular(list-float): <class 'float'>\n    test 466 HeightIDWequirectangular(list-float): <class 'float'>\n    test 467 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWequirectangular'>, True)\n    test 468 HeightIDWequirectangular.copy(): (<class 'pygeodesy.heights.HeightIDWequirectangular'>, True)\n    test 469 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n\n    test 470 HeightIDWequirectangular(adjust=False, wrap=True): 2.689413401\n    test 471 HeightIDWequirectangular(float): <class 'float'>\n    test 472 HeightIDWequirectangular(latlon): True\n    test 473 HeightIDWequirectangular_(tuple): True\n    test 474 HeightIDWequirectangular(adjust=False, wrap=True): 3.0\n    test 475 HeightIDWequirectangular(float): <class 'float'>\n    test 476 HeightIDWequirectangular(latlon): True\n    test 477 HeightIDWequirectangular(adjust=False, wrap=True): (2.689413401, 3.0,)\n    test 478 HeightIDWequirectangular(tuple): <class 'tuple'>\n    test 479 HeightIDWequirectangular(tuple-float): <class 'float'>\n    test 480 HeightIDWequirectangular(tuple-float): <class 'float'>\n    test 481 HeightIDWequirectangular(adjust=False, wrap=True): [2.689413401, 3.0]\n    test 482 HeightIDWequirectangular(list: <class 'list'>\n    test 483 HeightIDWequirectangular(list-float): <class 'float'>\n    test 484 HeightIDWequirectangular(list-float): <class 'float'>\n    test 485 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWequirectangular'>, True)\n    test 486 HeightIDWequirectangular.copy(): (<class 'pygeodesy.heights.HeightIDWequirectangular'>, True)\n    test 487 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n\n    test 488 HeightIDWeuclidean(adjust=False): 2.592735541\n    test 489 HeightIDWeuclidean(float): <class 'float'>\n    test 490 HeightIDWeuclidean(latlon): True\n    test 491 HeightIDWeuclidean_(tuple): True\n    test 492 HeightIDWeuclidean(adjust=False): 3.0\n    test 493 HeightIDWeuclidean(float): <class 'float'>\n    test 494 HeightIDWeuclidean(latlon): True\n    test 495 HeightIDWeuclidean(adjust=False): (2.592735541, 3.0,)\n    test 496 HeightIDWeuclidean(tuple): <class 'tuple'>\n    test 497 HeightIDWeuclidean(tuple-float): <class 'float'>\n    test 498 HeightIDWeuclidean(tuple-float): <class 'float'>\n    test 499 HeightIDWeuclidean(adjust=False): [2.592735541, 3.0]\n    test 500 HeightIDWeuclidean(list: <class 'list'>\n    test 501 HeightIDWeuclidean(list-float): <class 'float'>\n    test 502 HeightIDWeuclidean(list-float): <class 'float'>\n    test 503 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWeuclidean'>, True)\n    test 504 HeightIDWeuclidean.copy(): (<class 'pygeodesy.heights.HeightIDWeuclidean'>, True)\n    test 505 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n\n    test 506 HeightIDWexact(): 2.592742938\n    test 507 HeightIDWexact(float): <class 'float'>\n    test 508 HeightIDWexact(latlon): True\n    test 509 HeightIDWexact_(tuple): True\n    test 510 HeightIDWexact(): 3.0\n    test 511 HeightIDWexact(float): <class 'float'>\n    test 512 HeightIDWexact(latlon): True\n    test 513 HeightIDWexact(): (2.592742938, 3.0,)\n    test 514 HeightIDWexact(tuple): <class 'tuple'>\n    test 515 HeightIDWexact(tuple-float): <class 'float'>\n    test 516 HeightIDWexact(tuple-float): <class 'float'>\n    test 517 HeightIDWexact(): [2.592742938, 3.0]\n    test 518 HeightIDWexact(list: <class 'list'>\n    test 519 HeightIDWexact(list-float): <class 'float'>\n    test 520 HeightIDWexact(list-float): <class 'float'>\n    test 521 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWexact'>, True)\n    test 522 HeightIDWexact.copy(): (<class 'pygeodesy.heights.HeightIDWexact'>, True)\n    test 523 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n\n    test 524 HeightIDWflatLocal(): 2.592743288\n    test 525 HeightIDWflatLocal(float): <class 'float'>\n    test 526 HeightIDWflatLocal(latlon): True\n    test 527 HeightIDWflatLocal_(tuple): True\n    test 528 HeightIDWflatLocal(): 3.0\n    test 529 HeightIDWflatLocal(float): <class 'float'>\n    test 530 HeightIDWflatLocal(latlon): True\n    test 531 HeightIDWflatLocal(): (2.592743288, 3.0,)\n    test 532 HeightIDWflatLocal(tuple): <class 'tuple'>\n    test 533 HeightIDWflatLocal(tuple-float): <class 'float'>\n    test 534 HeightIDWflatLocal(tuple-float): <class 'float'>\n    test 535 HeightIDWflatLocal(): [2.592743288, 3.0]\n    test 536 HeightIDWflatLocal(list: <class 'list'>\n    test 537 HeightIDWflatLocal(list-float): <class 'float'>\n    test 538 HeightIDWflatLocal(list-float): <class 'float'>\n    test 539 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWflatLocal'>, True)\n    test 540 HeightIDWflatLocal.copy(): (<class 'pygeodesy.heights.HeightIDWflatLocal'>, True)\n    test 541 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n\n    test 542 HeightIDWflatPolar(): 2.592973059\n    test 543 HeightIDWflatPolar(float): <class 'float'>\n    test 544 HeightIDWflatPolar(latlon): True\n    test 545 HeightIDWflatPolar_(tuple): True\n    test 546 HeightIDWflatPolar(): 3.0\n    test 547 HeightIDWflatPolar(float): <class 'float'>\n    test 548 HeightIDWflatPolar(latlon): True\n    test 549 HeightIDWflatPolar(): (2.592973059, 3.0,)\n    test 550 HeightIDWflatPolar(tuple): <class 'tuple'>\n    test 551 HeightIDWflatPolar(tuple-float): <class 'float'>\n    test 552 HeightIDWflatPolar(tuple-float): <class 'float'>\n    test 553 HeightIDWflatPolar(): [2.592973059, 3.0]\n    test 554 HeightIDWflatPolar(list: <class 'list'>\n    test 555 HeightIDWflatPolar(list-float): <class 'float'>\n    test 556 HeightIDWflatPolar(list-float): <class 'float'>\n    test 557 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWflatPolar'>, True)\n    test 558 HeightIDWflatPolar.copy(): (<class 'pygeodesy.heights.HeightIDWflatPolar'>, True)\n    test 559 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n\n    test 560 HeightIDWhaversine(): 2.592742938\n    test 561 HeightIDWhaversine(float): <class 'float'>\n    test 562 HeightIDWhaversine(latlon): True\n    test 563 HeightIDWhaversine_(tuple): True\n    test 564 HeightIDWhaversine(): 3.0\n    test 565 HeightIDWhaversine(float): <class 'float'>\n    test 566 HeightIDWhaversine(latlon): True\n    test 567 HeightIDWhaversine(): (2.592742938, 3.0,)\n    test 568 HeightIDWhaversine(tuple): <class 'tuple'>\n    test 569 HeightIDWhaversine(tuple-float): <class 'float'>\n    test 570 HeightIDWhaversine(tuple-float): <class 'float'>\n    test 571 HeightIDWhaversine(): [2.592742938, 3.0]\n    test 572 HeightIDWhaversine(list: <class 'list'>\n    test 573 HeightIDWhaversine(list-float): <class 'float'>\n    test 574 HeightIDWhaversine(list-float): <class 'float'>\n    test 575 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWhaversine'>, True)\n    test 576 HeightIDWhaversine.copy(): (<class 'pygeodesy.heights.HeightIDWhaversine'>, True)\n    test 577 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n\n    test 578 HeightIDWhubeny(): 2.592743288\n    test 579 HeightIDWhubeny(float): <class 'float'>\n    test 580 HeightIDWhubeny(latlon): True\n    test 581 HeightIDWhubeny_(tuple): True\n    test 582 HeightIDWhubeny(): 3.0\n    test 583 HeightIDWhubeny(float): <class 'float'>\n    test 584 HeightIDWhubeny(latlon): True\n    test 585 HeightIDWhubeny(): (2.592743288, 3.0,)\n    test 586 HeightIDWhubeny(tuple): <class 'tuple'>\n    test 587 HeightIDWhubeny(tuple-float): <class 'float'>\n    test 588 HeightIDWhubeny(tuple-float): <class 'float'>\n    test 589 HeightIDWhubeny(): [2.592743288, 3.0]\n    test 590 HeightIDWhubeny(list: <class 'list'>\n    test 591 HeightIDWhubeny(list-float): <class 'float'>\n    test 592 HeightIDWhubeny(list-float): <class 'float'>\n    test 593 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWhubeny'>, True)\n    test 594 HeightIDWhubeny.copy(): (<class 'pygeodesy.heights.HeightIDWhubeny'>, True)\n    test 595 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n\n    test 596 HeightIDWkarney(datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), wrap=True): 2.592742915\n    test 597 HeightIDWkarney(float): <class 'float'>\n    test 598 HeightIDWkarney(latlon): True\n    test 599 HeightIDWkarney_(tuple): True\n    test 600 HeightIDWkarney(datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), wrap=True): 3.0\n    test 601 HeightIDWkarney(float): <class 'float'>\n    test 602 HeightIDWkarney(latlon): True\n    test 603 HeightIDWkarney(datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), wrap=True): (2.592742915, 3.0,)\n    test 604 HeightIDWkarney(tuple): <class 'tuple'>\n    test 605 HeightIDWkarney(tuple-float): <class 'float'>\n    test 606 HeightIDWkarney(tuple-float): <class 'float'>\n    test 607 HeightIDWkarney(datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), wrap=True): [2.592742915, 3.0]\n    test 608 HeightIDWkarney(list: <class 'list'>\n    test 609 HeightIDWkarney(list-float): <class 'float'>\n    test 610 HeightIDWkarney(list-float): <class 'float'>\n    test 611 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWkarney'>, True)\n    test 612 HeightIDWkarney.copy(): (<class 'pygeodesy.heights.HeightIDWkarney'>, True)\n    test 613 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n\n    test 614 HeightIDWkarney(datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), wrap=False): 2.592742915\n    test 615 HeightIDWkarney(float): <class 'float'>\n    test 616 HeightIDWkarney(latlon): True\n    test 617 HeightIDWkarney_(tuple): True\n    test 618 HeightIDWkarney(datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), wrap=False): 3.0\n    test 619 HeightIDWkarney(float): <class 'float'>\n    test 620 HeightIDWkarney(latlon): True\n    test 621 HeightIDWkarney(datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), wrap=False): (2.592742915, 3.0,)\n    test 622 HeightIDWkarney(tuple): <class 'tuple'>\n    test 623 HeightIDWkarney(tuple-float): <class 'float'>\n    test 624 HeightIDWkarney(tuple-float): <class 'float'>\n    test 625 HeightIDWkarney(datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), wrap=False): [2.592742915, 3.0]\n    test 626 HeightIDWkarney(list: <class 'list'>\n    test 627 HeightIDWkarney(list-float): <class 'float'>\n    test 628 HeightIDWkarney(list-float): <class 'float'>\n    test 629 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWkarney'>, True)\n    test 630 HeightIDWkarney.copy(): (<class 'pygeodesy.heights.HeightIDWkarney'>, True)\n    test 631 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n\n    test 632 HeightIDWkarney(datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84), wrap=True): 2.592742938\n    test 633 HeightIDWkarney(float): <class 'float'>\n    test 634 HeightIDWkarney(latlon): True\n    test 635 HeightIDWkarney_(tuple): True\n    test 636 HeightIDWkarney(datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84), wrap=True): 3.0\n    test 637 HeightIDWkarney(float): <class 'float'>\n    test 638 HeightIDWkarney(latlon): True\n    test 639 HeightIDWkarney(datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84), wrap=True): (2.592742938, 3.0,)\n    test 640 HeightIDWkarney(tuple): <class 'tuple'>\n    test 641 HeightIDWkarney(tuple-float): <class 'float'>\n    test 642 HeightIDWkarney(tuple-float): <class 'float'>\n    test 643 HeightIDWkarney(datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84), wrap=True): [2.592742938, 3.0]\n    test 644 HeightIDWkarney(list: <class 'list'>\n    test 645 HeightIDWkarney(list-float): <class 'float'>\n    test 646 HeightIDWkarney(list-float): <class 'float'>\n    test 647 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWkarney'>, True)\n    test 648 HeightIDWkarney.copy(): (<class 'pygeodesy.heights.HeightIDWkarney'>, True)\n    test 649 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n\n    test 650 HeightIDWkarney(datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84), wrap=False): 2.592742938\n    test 651 HeightIDWkarney(float): <class 'float'>\n    test 652 HeightIDWkarney(latlon): True\n    test 653 HeightIDWkarney_(tuple): True\n    test 654 HeightIDWkarney(datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84), wrap=False): 3.0\n    test 655 HeightIDWkarney(float): <class 'float'>\n    test 656 HeightIDWkarney(latlon): True\n    test 657 HeightIDWkarney(datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84), wrap=False): (2.592742938, 3.0,)\n    test 658 HeightIDWkarney(tuple): <class 'tuple'>\n    test 659 HeightIDWkarney(tuple-float): <class 'float'>\n    test 660 HeightIDWkarney(tuple-float): <class 'float'>\n    test 661 HeightIDWkarney(datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84), wrap=False): [2.592742938, 3.0]\n    test 662 HeightIDWkarney(list: <class 'list'>\n    test 663 HeightIDWkarney(list-float): <class 'float'>\n    test 664 HeightIDWkarney(list-float): <class 'float'>\n    test 665 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWkarney'>, True)\n    test 666 HeightIDWkarney.copy(): (<class 'pygeodesy.heights.HeightIDWkarney'>, True)\n    test 667 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n\n    test 668 HeightIDWthomas(wrap=True): 2.592742781\n    test 669 HeightIDWthomas(float): <class 'float'>\n    test 670 HeightIDWthomas(latlon): True\n    test 671 HeightIDWthomas_(tuple): True\n    test 672 HeightIDWthomas(wrap=True): 3.0\n    test 673 HeightIDWthomas(float): <class 'float'>\n    test 674 HeightIDWthomas(latlon): True\n    test 675 HeightIDWthomas(wrap=True): (2.592742781, 3.0,)\n    test 676 HeightIDWthomas(tuple): <class 'tuple'>\n    test 677 HeightIDWthomas(tuple-float): <class 'float'>\n    test 678 HeightIDWthomas(tuple-float): <class 'float'>\n    test 679 HeightIDWthomas(wrap=True): [2.592742781, 3.0]\n    test 680 HeightIDWthomas(list: <class 'list'>\n    test 681 HeightIDWthomas(list-float): <class 'float'>\n    test 682 HeightIDWthomas(list-float): <class 'float'>\n    test 683 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWthomas'>, True)\n    test 684 HeightIDWthomas.copy(): (<class 'pygeodesy.heights.HeightIDWthomas'>, True)\n    test 685 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n\n    test 686 HeightIDWthomas(wrap=False): 2.592742781\n    test 687 HeightIDWthomas(float): <class 'float'>\n    test 688 HeightIDWthomas(latlon): True\n    test 689 HeightIDWthomas_(tuple): True\n    test 690 HeightIDWthomas(wrap=False): 3.0\n    test 691 HeightIDWthomas(float): <class 'float'>\n    test 692 HeightIDWthomas(latlon): True\n    test 693 HeightIDWthomas(wrap=False): (2.592742781, 3.0,)\n    test 694 HeightIDWthomas(tuple): <class 'tuple'>\n    test 695 HeightIDWthomas(tuple-float): <class 'float'>\n    test 696 HeightIDWthomas(tuple-float): <class 'float'>\n    test 697 HeightIDWthomas(wrap=False): [2.592742781, 3.0]\n    test 698 HeightIDWthomas(list: <class 'list'>\n    test 699 HeightIDWthomas(list-float): <class 'float'>\n    test 700 HeightIDWthomas(list-float): <class 'float'>\n    test 701 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWthomas'>, True)\n    test 702 HeightIDWthomas.copy(): (<class 'pygeodesy.heights.HeightIDWthomas'>, True)\n    test 703 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n\n    test 704 HeightIDWvincentys(wrap=True): 2.592742938\n    test 705 HeightIDWvincentys(float): <class 'float'>\n    test 706 HeightIDWvincentys(latlon): True\n    test 707 HeightIDWvincentys_(tuple): True\n    test 708 HeightIDWvincentys(wrap=True): 3.0\n    test 709 HeightIDWvincentys(float): <class 'float'>\n    test 710 HeightIDWvincentys(latlon): True\n    test 711 HeightIDWvincentys(wrap=True): (2.592742938, 3.0,)\n    test 712 HeightIDWvincentys(tuple): <class 'tuple'>\n    test 713 HeightIDWvincentys(tuple-float): <class 'float'>\n    test 714 HeightIDWvincentys(tuple-float): <class 'float'>\n    test 715 HeightIDWvincentys(wrap=True): [2.592742938, 3.0]\n    test 716 HeightIDWvincentys(list: <class 'list'>\n    test 717 HeightIDWvincentys(list-float): <class 'float'>\n    test 718 HeightIDWvincentys(list-float): <class 'float'>\n    test 719 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWvincentys'>, True)\n    test 720 HeightIDWvincentys.copy(): (<class 'pygeodesy.heights.HeightIDWvincentys'>, True)\n    test 721 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n\n    test 722 HeightIDWvincentys(wrap=False): 2.592742938\n    test 723 HeightIDWvincentys(float): <class 'float'>\n    test 724 HeightIDWvincentys(latlon): True\n    test 725 HeightIDWvincentys_(tuple): True\n    test 726 HeightIDWvincentys(wrap=False): 3.0\n    test 727 HeightIDWvincentys(float): <class 'float'>\n    test 728 HeightIDWvincentys(latlon): True\n    test 729 HeightIDWvincentys(wrap=False): (2.592742938, 3.0,)\n    test 730 HeightIDWvincentys(tuple): <class 'tuple'>\n    test 731 HeightIDWvincentys(tuple-float): <class 'float'>\n    test 732 HeightIDWvincentys(tuple-float): <class 'float'>\n    test 733 HeightIDWvincentys(wrap=False): [2.592742938, 3.0]\n    test 734 HeightIDWvincentys(list: <class 'list'>\n    test 735 HeightIDWvincentys(list-float): <class 'float'>\n    test 736 HeightIDWvincentys(list-float): <class 'float'>\n    test 737 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWvincentys'>, True)\n    test 738 HeightIDWvincentys.copy(): (<class 'pygeodesy.heights.HeightIDWvincentys'>, True)\n    test 739 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n\n    80 tests skipped (80): numpy in PYGEODESY_XPACKAGES=numpy,scipy: required by heights.HeightLinear\n\n    8 of 739 testHeights.py tests (1.1%) FAILED, incl. 8 DeprecationWarnings, 80 skipped (pygeodesy 26.3.26 PyPy 7.3.17 Python 3.10.14 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 633.591 ms\nrunning /opt/local/bin/p....y3.10 -W default ~/PyGeodesy/test/testInterns.py\n# lazily imported pygeodesy.basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.DeprecationWarnings from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isint from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isLazy from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.issubclassof from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.iterNumpy2over from .iters by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.LazyImportError from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.karney by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.NN from .interns by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.normDMS from .dms by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.pairs from .streprs by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.printf from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.property_RO from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.typename from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.machine from .internals by testInterns.py line 11\n\n    testing testInterns.py 25.04.12 (module pygeodesy.interns 25.11.07) isLazy=3\n    test 1 _0_ = '0': True\n    test 2 _0_ = '0': 0\n    test 3 _0to9_ = '0123456789': True\n    test 4 _0to9_ = '0123456789': 0123456789  FAILED, KNOWN, expected 0to9\n    test 5 _1_ = '1': True\n    test 6 _1_ = '1': 1\n    test 7 _2_ = '2': True\n    test 8 _2_ = '2': 2\n    test 9 _3_ = '3': True\n    test 10 _3_ = '3': 3\n    test 11 _4_ = '4': True\n    test 12 _4_ = '4': 4\n    test 13 __all__ = ('NN', 'Str_'): False  FAILED, KNOWN, expected True\n    test 14 __builtins__ = <module 'builtins'>: False  FAILED, KNOWN, expected True\n    test 15 __cached__ = './pygeodesy/__pycache__/interns.pypy310.pyc': True\n    test 16 __doc__ = \"Single C{str}ing constan.... L{pygeodesy.machine}.\\n\": True\n    test 17 __file__ = './pygeodesy/interns.py': True\n    test 18 __loader__ = <_frozen_importlib_extern....ct at 0x00000009105a7980>: False  FAILED, KNOWN, expected True\n    test 19 __name__ = 'pygeodesy.interns': True\n    test 20 __package__ = 'pygeodesy': True\n    test 21 __spec__ = ModuleSpec(name='pygeodes....'./pygeodesy/interns.py'): False  FAILED, KNOWN, expected True\n    test 22 __version__ = '25.11.07': True\n    test 23 _a12_ = 'a12': True\n    test 24 _a12_ = 'a12': a12\n    test 25 _A_ = 'A': True\n    test 26 _A_ = 'A': a\n    test 27 _a_ = 'a': True\n    test 28 _a_ = 'a': a\n    test 29 _Airy1830_ = 'Airy1830': True\n    test 30 _Airy1830_ = 'Airy1830': airy1830\n    test 31 _AiryModified_ = 'AiryModified': True\n    test 32 _AiryModified_ = 'AiryModified': airymodified\n    test 33 _ambiguous_ = 'ambiguous': True\n    test 34 _ambiguous_ = 'ambiguous': ambiguous\n    test 35 _AMPERSAND_ = '&': True\n    test 36 _AMPERSAND_ = '&': &  FAILED, KNOWN, expected ampersand\n    test 37 _an_ = 'an': True\n    test 38 _an_ = 'an': an\n    test 39 _and_ = 'and': True\n    test 40 _and_ = 'and': and\n    test 41 _angle_ = 'angle': True\n    test 42 _angle_ = 'angle': angle\n    test 43 _antipodal_ = 'antipodal': True\n    test 44 _antipodal_ = 'antipodal': antipodal\n    test 45 _area_ = 'area': True\n    test 46 _area_ = 'area': area\n    test 47 _arg_ = 'arg': True\n    test 48 _arg_ = 'arg': arg\n    test 49 _AT_ = '@': True\n    test 50 _AT_ = '@': @  FAILED, KNOWN, expected at\n    test 51 _AtoZnoIO_ = 'ABCDEFGHJKLMNPQRSTUVWXYZ': True\n    test 52 _AtoZnoIO_ = 'ABCDEFGHJKLMNPQRSTUVWXYZ': abcdefghjklmnpqrstuvwxyz  FAILED, KNOWN, expected atoznoio\n    test 53 _attribute_ = 'attribute': True\n    test 54 _attribute_ = 'attribute': attribute\n    test 55 _azi12_ = 'azi12': True\n    test 56 _azi12_ = 'azi12': azi12\n    test 57 _azi1_ = 'azi1': True\n    test 58 _azi1_ = 'azi1': azi1\n    test 59 _azi2_ = 'azi2': True\n    test 60 _azi2_ = 'azi2': azi2\n    test 61 _azimuth_ = 'azimuth': True\n    test 62 _azimuth_ = 'azimuth': azimuth\n    test 63 _B_ = 'B': True\n    test 64 _B_ = 'B': b\n    test 65 _b_ = 'b': True\n    test 66 _b_ = 'b': b\n    test 67 _BACKSLASH_ = '\\\\': True\n    test 68 _BACKSLASH_ = '\\\\': \\  FAILED, KNOWN, expected backslash\n    test 69 _band_ = 'band': True\n    test 70 _band_ = 'band': band\n    test 71 _BANG_ = '!': True\n    test 72 _BANG_ = '!': !  FAILED, KNOWN, expected bang\n    test 73 _BAR_ = '|': True\n    test 74 _BAR_ = '|': |  FAILED, KNOWN, expected bar\n    test 75 _bearing_ = 'bearing': True\n    test 76 _bearing_ = 'bearing': bearing\n    test 77 _Bessel1841_ = 'Bessel1841': True\n    test 78 _Bessel1841_ = 'Bessel1841': bessel1841\n    test 79 _beta_ = 'beta': True\n    test 80 _beta_ = 'beta': beta\n    test 81 _by_ = 'by': True\n    test 82 _by_ = 'by': by\n    test 83 _C_ = 'C': True\n    test 84 _C_ = 'C': c\n    test 85 _c_ = 'c': True\n    test 86 _c_ = 'c': c\n    test 87 _cartesian_ = 'cartesian': True\n    test 88 _cartesian_ = 'cartesian': cartesian\n    test 89 _center_ = 'center': True\n    test 90 _center_ = 'center': center\n    test 91 _Clarke1866_ = 'Clarke1866': True\n    test 92 _Clarke1866_ = 'Clarke1866': clarke1866\n    test 93 _Clarke1880IGN_ = 'Clarke1880IGN': True\n    test 94 _Clarke1880IGN_ = 'Clarke1880IGN': clarke1880ign\n    test 95 _clip_ = 'clip': True\n    test 96 _clip_ = 'clip': clip\n    test 97 _clipid_ = 'clipid': True\n    test 98 _clipid_ = 'clipid': clipid\n    test 99 _coincident_ = 'coincident': True\n    test 100 _coincident_ = 'coincident': coincident\n    test 101 _colinear_ = 'colinear': True\n    test 102 _colinear_ = 'colinear': colinear\n    test 103 _COLON_ = ':': True\n    test 104 _COLON_ = ':': :  FAILED, KNOWN, expected colon\n    test 105 _COLONSPACE_ = ': ': True\n    test 106 _COLONSPACE_ = ': ': :   FAILED, KNOWN, expected colonspace\n    test 107 _COMMA_ = ',': True\n    test 108 _COMMA_ = ',': ,  FAILED, KNOWN, expected comma\n    test 109 _COMMASPACE_ = ', ': True\n    test 110 _COMMASPACE_ = ', ': ,   FAILED, KNOWN, expected commaspace\n    test 111 _composite_ = 'composite': True\n    test 112 _composite_ = 'composite': composite\n    test 113 _concentric_ = 'concentric': True\n    test 114 _concentric_ = 'concentric': concentric\n    test 115 _convergence_ = 'convergence': True\n    test 116 _convergence_ = 'convergence': convergence\n    test 117 _conversion_ = 'conversion': True\n    test 118 _conversion_ = 'conversion': conversion\n    test 119 _convex_ = 'convex': True\n    test 120 _convex_ = 'convex': convex\n    test 121 _D_ = 'D': True\n    test 122 _D_ = 'D': d\n    test 123 _d_ = 'd': True\n    test 124 _d_ = 'd': d\n    test 125 _DALL_ = '__all__': True\n    test 126 _DALL_ = '__all__': __all__  FAILED, KNOWN, expected dall\n    test 127 _DASH_ = '-': True\n    test 128 _DASH_ = '-': -  FAILED, KNOWN, expected dash\n    test 129 _datum_ = 'datum': True\n    test 130 _datum_ = 'datum': datum\n    test 131 _DDOT_ = '..': True\n    test 132 _DDOT_ = '..': ..  FAILED, KNOWN, expected ddot\n    test 133 _decode3_ = 'decode3': True\n    test 134 _decode3_ = 'decode3': decode3\n    test 135 _deg_ = 'deg': True\n    test 136 _deg_ = 'deg': deg\n    test 137 _degrees2_ = 'degrees2': True\n    test 138 _degrees2_ = 'degrees2': degrees2\n    test 139 _degrees_ = 'degrees': True\n    test 140 _degrees_ = 'degrees': degrees\n    test 141 _delta_ = 'delta': True\n    test 142 _delta_ = 'delta': delta\n    test 143 _DEPRECATED_ = 'DEPRECATED': True\n    test 144 _DEPRECATED_ = 'DEPRECATED': deprecated\n    test 145 _DEQUALSPACED_ = ' == ': True\n    test 146 _DEQUALSPACED_ = ' == ':  ==   FAILED, KNOWN, expected dequalspaced\n    test 147 _distance_ = 'distance': True\n    test 148 _distance_ = 'distance': distance\n    test 149 _distant_ = 'distant': True\n    test 150 _distant_ = 'distant': distant\n    test 151 _DMAIN_ = '__main__': True\n    test 152 _DMAIN_ = '__main__': __main__  FAILED, KNOWN, expected dmain\n    test 153 _DNAME_ = '__name__': True\n    test 154 _DNAME_ = '__name__': __name__  FAILED, KNOWN, expected dname\n    test 155 _doesn_t_exist_ = \"doesn't exist\": True\n    test 156 _doesn_t_exist_ = \"doesn't exist\": doesn't exist  FAILED, KNOWN, expected doesn_t_exist\n    test 157 _DOT_ = '.': True\n    test 158 _DOT_ = '.': .  FAILED, KNOWN, expected dot\n    test 159 _DSLASH_ = '//': True\n    test 160 _DSLASH_ = '//': //  FAILED, KNOWN, expected dslash\n    test 161 _DSTAR_ = '**': True\n    test 162 _DSTAR_ = '**': **  FAILED, KNOWN, expected dstar\n    test 163 _DUNDER_ = '__': True\n    test 164 _DUNDER_ = '__': __  FAILED, KNOWN, expected dunder\n    test 165 _duplicate_ = 'duplicate': True\n    test 166 _duplicate_ = 'duplicate': duplicate\n    test 167 _E_ = 'E': True\n    test 168 _E_ = 'E': e\n    test 169 _e_ = 'e': True\n    test 170 _e_ = 'e': e\n    test 171 _earth_ = 'earth': True\n    test 172 _earth_ = 'earth': earth\n    test 173 _easting_ = 'easting': True\n    test 174 _easting_ = 'easting': easting\n    test 175 _ecef_ = 'ecef': True\n    test 176 _ecef_ = 'ecef': ecef\n    test 177 _edge_ = 'edge': True\n    test 178 _edge_ = 'edge': edge\n    test 179 _elevation_ = 'elevation': True\n    test 180 _elevation_ = 'elevation': elevation\n    test 181 _ELLIPSIS4_ = '....': True\n    test 182 _ELLIPSIS4_ = '....': ....  FAILED, KNOWN, expected ellipsis4\n    test 183 _ELLIPSIS_ = '...': True\n    test 184 _ELLIPSIS_ = '...': ...  FAILED, KNOWN, expected ellipsis\n    test 185 _ellipsoid_ = 'ellipsoid': True\n    test 186 _ellipsoid_ = 'ellipsoid': ellipsoid\n    test 187 _ellipsoidal_ = 'ellipsoidal': True\n    test 188 _ellipsoidal_ = 'ellipsoidal': ellipsoidal\n    test 189 _encode_ = 'encode': True\n    test 190 _encode_ = 'encode': encode\n    test 191 _end_ = 'end': True\n    test 192 _end_ = 'end': end\n    test 193 _epoch_ = 'epoch': True\n    test 194 _epoch_ = 'epoch': epoch\n    test 195 _EQUAL_ = '=': True\n    test 196 _EQUAL_ = '=': =  FAILED, KNOWN, expected equal\n    test 197 _EQUALSPACED_ = ' = ': True\n    test 198 _EQUALSPACED_ = ' = ':  =   FAILED, KNOWN, expected equalspaced\n    test 199 _Error_ = 'Error': True\n    test 200 _Error_ = 'Error': error\n    test 201 _EW_ = 'EW': True\n    test 202 _EW_ = 'EW': ew\n    test 203 _exceed_PI_radians_ = 'exceed PI radians': True\n    test 204 _exceed_PI_radians_ = 'exceed PI radians': exceed pi radians  FAILED, KNOWN, expected exceed_pi_radians\n    test 205 _exceeds_ = 'exceeds': True\n    test 206 _exceeds_ = 'exceeds': exceeds\n    test 207 _exists_ = 'exists': True\n    test 208 _exists_ = 'exists': exists\n    test 209 _F_ = 'F': True\n    test 210 _F_ = 'F': f\n    test 211 _f_ = 'f': True\n    test 212 _f_ = 'f': f\n    test 213 _feet_ = 'feet': True\n    test 214 _feet_ = 'feet': feet\n    test 215 _few_ = 'few': True\n    test 216 _few_ = 'few': few\n    test 217 _fi_ = 'fi': True\n    test 218 _fi_ = 'fi': fi\n    test 219 _finite_ = 'finite': True\n    test 220 _finite_ = 'finite': finite\n    test 221 _from_ = 'from': True\n    test 222 _from_ = 'from': from\n    test 223 _g_ = 'g': True\n    test 224 _g_ = 'g': g\n    test 225 _gamma_ = 'gamma': True\n    test 226 _gamma_ = 'gamma': gamma\n    test 227 _GRS80_ = 'GRS80': True\n    test 228 _GRS80_ = 'GRS80': grs80\n    test 229 _H_ = 'H': True\n    test 230 _H_ = 'H': h\n    test 231 _h_ = 'h': True\n    test 232 _h_ = 'h': h\n    test 233 _HASH_ = '#': True\n    test 234 _HASH_ = '#': #  FAILED, KNOWN, expected hash\n    test 235 _height_ = 'height': True\n    test 236 _height_ = 'height': height\n    test 237 _hemipole_ = 'hemipole': True\n    test 238 _hemipole_ = 'hemipole': hemipole\n    test 239 _i_ = 'i': True\n    test 240 _i_ = 'i': i\n    test 241 _immutable_ = 'immutable': True\n    test 242 _immutable_ = 'immutable': immutable\n    test 243 _in_ = 'in': True\n    test 244 _in_ = 'in': in\n    test 245 _incompatible_ = 'incompatible': True\n    test 246 _incompatible_ = 'incompatible': incompatible\n    test 247 _INF_ = 'INF': True\n    test 248 _INF_ = 'INF': inf\n    test 249 _infinite_ = 'infinite': True\n    test 250 _infinite_ = 'infinite': infinite\n    test 251 _initial_ = 'initial': True\n    test 252 _initial_ = 'initial': initial\n    test 253 _inside_ = 'inside': True\n    test 254 _inside_ = 'inside': inside\n    test 255 _insufficient_ = 'insufficient': True\n    test 256 _insufficient_ = 'insufficient': insufficient\n    test 257 _intersection_ = 'intersection': True\n    test 258 _intersection_ = 'intersection': intersection\n    test 259 _Intl1924_ = 'Intl1924': True\n    test 260 _Intl1924_ = 'Intl1924': intl1924\n    test 261 _INV_ = 'INV': True\n    test 262 _INV_ = 'INV': inv\n    test 263 _invalid_ = 'invalid': True\n    test 264 _invalid_ = 'invalid': invalid\n    test 265 _invokation_ = 'invokation': True\n    test 266 _invokation_ = 'invokation': invokation\n    test 267 _j_ = 'j': True\n    test 268 _j_ = 'j': j\n    test 269 _k0_ = 'k0': True\n    test 270 _k0_ = 'k0': k0\n    test 271 _keyword_ = 'keyword': True\n    test 272 _keyword_ = 'keyword': keyword\n    test 273 _kind_ = 'kind': True\n    test 274 _kind_ = 'kind': kind\n    test 275 _Krassovski1940_ = 'Krassovski1940': True\n    test 276 _Krassovski1940_ = 'Krassovski1940': krassovski1940\n    test 277 _Krassowsky1940_ = 'Krassowsky1940': True\n    test 278 _Krassowsky1940_ = 'Krassowsky1940': krassowsky1940\n    test 279 _lam_ = 'lam': True\n    test 280 _lam_ = 'lam': lam\n    test 281 _LANGLE_ = '<': True\n    test 282 _LANGLE_ = '<': <  FAILED, KNOWN, expected langle\n    test 283 _lat0_ = 'lat0': True\n    test 284 _lat0_ = 'lat0': lat0\n    test 285 _lat1_ = 'lat1': True\n    test 286 _lat1_ = 'lat1': lat1\n    test 287 _lat2_ = 'lat2': True\n    test 288 _lat2_ = 'lat2': lat2\n    test 289 _lat_ = 'lat': True\n    test 290 _lat_ = 'lat': lat\n    test 291 _LatLon_ = 'LatLon': True\n    test 292 _LatLon_ = 'LatLon': latlon\n    test 293 _latlon_ = 'latlon': True\n    test 294 _latlon_ = 'latlon': latlon\n    test 295 _LCURLY_ = '{': True\n    test 296 _LCURLY_ = '{': {  FAILED, KNOWN, expected lcurly\n    test 297 _len_ = 'len': True\n    test 298 _len_ = 'len': len\n    test 299 _limit_ = 'limit': True\n    test 300 _limit_ = 'limit': limit\n    test 301 _line_ = 'line': True\n    test 302 _line_ = 'line': line\n    test 303 _lon0_ = 'lon0': True\n    test 304 _lon0_ = 'lon0': lon0\n    test 305 _lon1_ = 'lon1': True\n    test 306 _lon1_ = 'lon1': lon1\n    test 307 _lon2_ = 'lon2': True\n    test 308 _lon2_ = 'lon2': lon2\n    test 309 _lon_ = 'lon': True\n    test 310 _lon_ = 'lon': lon\n    test 311 _low_ = 'low': True\n    test 312 _low_ = 'low': low\n    test 313 _LPAREN_ = '(': True\n    test 314 _LPAREN_ = '(': (  FAILED, KNOWN, expected lparen\n    test 315 _LSQUARE_ = '[': True\n    test 316 _LSQUARE_ = '[': [  FAILED, KNOWN, expected lsquare\n    test 317 _ltp_ = 'ltp': True\n    test 318 _ltp_ = 'ltp': ltp\n    test 319 _M12_ = 'M12': True\n    test 320 _M12_ = 'M12': m12\n    test 321 _m12_ = 'm12': True\n    test 322 _m12_ = 'm12': m12\n    test 323 _M21_ = 'M21': True\n    test 324 _M21_ = 'M21': m21\n    test 325 _M_ = 'M': True\n    test 326 _M_ = 'M': m\n    test 327 _m_ = 'm': True\n    test 328 _m_ = 'm': m\n    test 329 _MANT_DIG_ = 'MANT_DIG': True\n    test 330 _MANT_DIG_ = 'MANT_DIG': mant_dig\n    test 331 _MAX_ = 'MAX': True\n    test 332 _MAX_ = 'MAX': max\n    test 333 _mean_ = 'mean': True\n    test 334 _mean_ = 'mean': mean\n    test 335 _meanOf_ = 'meanOf': True\n    test 336 _meanOf_ = 'meanOf': meanof\n    test 337 _meridional_ = 'meridional': True\n    test 338 _meridional_ = 'meridional': meridional\n    test 339 _meter2_ = 'meter2': True\n    test 340 _meter2_ = 'meter2': meter2\n    test 341 _meter_ = 'meter': True\n    test 342 _meter_ = 'meter': meter\n    test 343 _MGRS_ = 'MGRS': True\n    test 344 _MGRS_ = 'MGRS': mgrs\n    test 345 _MIN_ = 'MIN': True\n    test 346 _MIN_ = 'MIN': min\n    test 347 _MINUS_ = '-': True\n    test 348 _MINUS_ = '-': -  FAILED, KNOWN, expected minus\n    test 349 _module_ = 'module': True\n    test 350 _module_ = 'module': module\n    test 351 _N_ = 'N': True\n    test 352 _N_ = 'N': n\n    test 353 _n_ = 'n': True\n    test 354 _n_ = 'n': n\n    test 355 _N_A_ = 'N/A': True\n    test 356 _N_A_ = 'N/A': n/a  FAILED, KNOWN, expected n_a\n    test 357 _n_a_ = 'n/a': True\n    test 358 _n_a_ = 'n/a': n/a  FAILED, KNOWN, expected n_a\n    test 359 _NAD27_ = 'NAD27': True\n    test 360 _NAD27_ = 'NAD27': nad27\n    test 361 _NAD83_ = 'NAD83': True\n    test 362 _NAD83_ = 'NAD83': nad83\n    test 363 _name_ = 'name': True\n    test 364 _name_ = 'name': name\n    test 365 _NAN_ = 'NAN': True\n    test 366 _NAN_ = 'NAN': nan\n    test 367 _NE_ = 'NE': True\n    test 368 _NE_ = 'NE': ne\n    test 369 _near_ = 'near': True\n    test 370 _near_ = 'near': near\n    test 371 _nearestOn2_ = 'nearestOn2': True\n    test 372 _nearestOn2_ = 'nearestOn2': neareston2\n    test 373 _negative_ = 'negative': True\n    test 374 _negative_ = 'negative': negative\n    test 375 _NL_ = '\\n': True\n    test 376 _NL_ = '\\n': \n  FAILED, KNOWN, expected nl\n    test 377 _NLATvar_ = '\\n@var ': True\n    test 378 _NLATvar_ = '\\n@var ': \n@var   FAILED, KNOWN, expected nlatvar\n    test 379 _NLHASH_ = '\\n# ': True\n    test 380 _NLHASH_ = '\\n# ': \n#   FAILED, KNOWN, expected nlhash\n    test 381 _NN_ = 'NN': True\n    test 382 _NN_ = 'NN': nn\n    test 383 _no_ = 'no': True\n    test 384 _no_ = 'no': no\n    test 385 _northing_ = 'northing': True\n    test 386 _northing_ = 'northing': northing\n    test 387 _not_ = 'not': True\n    test 388 _not_ = 'not': not\n    test 389 _not_finite_ = 'not finite': True\n    test 390 _not_finite_ = 'not finite': not finite  FAILED, KNOWN, expected not_finite\n    test 391 _not_scalar_ = 'not scalar': True\n    test 392 _not_scalar_ = 'not scalar': not scalar  FAILED, KNOWN, expected not_scalar\n    test 393 _NOTEQUAL_ = '!=': True\n    test 394 _NOTEQUAL_ = '!=': !=  FAILED, KNOWN, expected notequal\n    test 395 _NS_ = 'NS': True\n    test 396 _NS_ = 'NS': ns\n    test 397 _NSEW_ = 'NSEW': True\n    test 398 _NSEW_ = 'NSEW': nsew\n    test 399 _NTF_ = 'NTF': True\n    test 400 _NTF_ = 'NTF': ntf\n    test 401 _null_ = 'null': True\n    test 402 _null_ = 'null': null\n    test 403 _number_ = 'number': True\n    test 404 _number_ = 'number': number\n    test 405 _numpy_ = 'numpy': True\n    test 406 _numpy_ = 'numpy': numpy\n    test 407 _Nv00_ = 'Nv00': True\n    test 408 _Nv00_ = 'Nv00': nv00\n    test 409 _NW_ = 'NW': True\n    test 410 _NW_ = 'NW': nw\n    test 411 _odd_ = 'odd': True\n    test 412 _odd_ = 'odd': odd\n    test 413 _of_ = 'of': True\n    test 414 _of_ = 'of': of\n    test 415 _on_ = 'on': True\n    test 416 _on_ = 'on': on\n    test 417 _opposite_ = 'opposite': True\n    test 418 _opposite_ = 'opposite': opposite\n    test 419 _or_ = 'or': True\n    test 420 _or_ = 'or': or\n    test 421 _other_ = 'other': True\n    test 422 _other_ = 'other': other\n    test 423 _outside_ = 'outside': True\n    test 424 _outside_ = 'outside': outside\n    test 425 _overlap_ = 'overlap': True\n    test 426 _overlap_ = 'overlap': overlap\n    test 427 _parallel_ = 'parallel': True\n    test 428 _parallel_ = 'parallel': parallel\n    test 429 _PERCENT_ = '%': True\n    test 430 _PERCENT_ = '%': %  FAILED, KNOWN, expected percent\n    test 431 _PERCENTDOTSTAR_ = '%.*': True\n    test 432 _PERCENTDOTSTAR_ = '%.*': %.*  FAILED, KNOWN, expected percentdotstar\n    test 433 _phi_ = 'phi': True\n    test 434 _phi_ = 'phi': phi\n    test 435 _PLUS_ = '+': True\n    test 436 _PLUS_ = '+': +  FAILED, KNOWN, expected plus\n    test 437 _PLUSMINUS_ = '+-': True\n    test 438 _PLUSMINUS_ = '+-': +-  FAILED, KNOWN, expected plusminus\n    test 439 _point_ = 'point': True\n    test 440 _point_ = 'point': point\n    test 441 _points_ = 'points': True\n    test 442 _points_ = 'points': points\n    test 443 _pole_ = 'pole': True\n    test 444 _pole_ = 'pole': pole\n    test 445 _precision_ = 'precision': True\n    test 446 _precision_ = 'precision': precision\n    test 447 _prime_vertical_ = 'prime_vertical': True\n    test 448 _prime_vertical_ = 'prime_vertical': prime_vertical\n    test 449 _pygeodesy_ = 'pygeodesy': True\n    test 450 _pygeodesy_ = 'pygeodesy': pygeodesy\n    test 451 _pygeodesy_abspath_ = 'pygeodesy_abspath': True\n    test 452 _pygeodesy_abspath_ = 'pygeodesy_abspath': pygeodesy_abspath\n    test 453 _PyPy__ = 'PyPy ': True\n    test 454 _PyPy__ = 'PyPy ': pypy   FAILED, KNOWN, expected pypy\n    test 455 _Python_ = 'Python': True\n    test 456 _Python_ = 'Python': python\n    test 457 _python_ = 'python': True\n    test 458 _python_ = 'python': python\n    test 459 _QUOTE1_ = \"'\": True\n    test 460 _QUOTE1_ = \"'\": '  FAILED, KNOWN, expected quote1\n    test 461 _QUOTE2_ = '\"': True\n    test 462 _QUOTE2_ = '\"': \"  FAILED, KNOWN, expected quote2\n    test 463 _QUOTE3_ = \"'''\": True\n    test 464 _QUOTE3_ = \"'''\": '''  FAILED, KNOWN, expected quote3\n    test 465 _R_ = 'R': True\n    test 466 _R_ = 'R': r\n    test 467 _radians2_ = 'radians2': True\n    test 468 _radians2_ = 'radians2': radians2\n    test 469 _radians_ = 'radians': True\n    test 470 _radians_ = 'radians': radians\n    test 471 _radius1_ = 'radius1': True\n    test 472 _radius1_ = 'radius1': radius1\n    test 473 _radius2_ = 'radius2': True\n    test 474 _radius2_ = 'radius2': radius2\n    test 475 _radius_ = 'radius': True\n    test 476 _radius_ = 'radius': radius\n    test 477 _range_ = 'range': True\n    test 478 _range_ = 'range': range\n    test 479 _RANGLE_ = '>': True\n    test 480 _RANGLE_ = '>': >  FAILED, KNOWN, expected rangle\n    test 481 _RCURLY_ = '}': True\n    test 482 _RCURLY_ = '}': }  FAILED, KNOWN, expected rcurly\n    test 483 _reciprocal_ = 'reciprocal': True\n    test 484 _reciprocal_ = 'reciprocal': reciprocal\n    test 485 _reframe_ = 'reframe': True\n    test 486 _reframe_ = 'reframe': reframe\n    test 487 _resolution_ = 'resolution': True\n    test 488 _resolution_ = 'resolution': resolution\n    test 489 _rIn_ = 'rIn': True\n    test 490 _rIn_ = 'rIn': rin\n    test 491 _RPAREN_ = ')': True\n    test 492 _RPAREN_ = ')': )  FAILED, KNOWN, expected rparen\n    test 493 _RSQUARE_ = ']': True\n    test 494 _RSQUARE_ = ']': ]  FAILED, KNOWN, expected rsquare\n    test 495 _S12_ = 'S12': True\n    test 496 _S12_ = 'S12': s12\n    test 497 _s12_ = 's12': True\n    test 498 _s12_ = 's12': s12\n    test 499 _S_ = 'S': True\n    test 500 _S_ = 'S': s\n    test 501 _s_ = 's': True\n    test 502 _s_ = 's': s\n    test 503 _scalar_ = 'scalar': True\n    test 504 _scalar_ = 'scalar': scalar\n    test 505 _scale0_ = 'scale0': True\n    test 506 _scale0_ = 'scale0': scale0\n    test 507 _scale_ = 'scale': True\n    test 508 _scale_ = 'scale': scale\n    test 509 _scipy_ = 'scipy': True\n    test 510 _scipy_ = 'scipy': scipy\n    test 511 _SE_ = 'SE': True\n    test 512 _SE_ = 'SE': se\n    test 513 _semi_circular_ = 'semi-circular': True\n    test 514 _semi_circular_ = 'semi-circular': semi-circular  FAILED, KNOWN, expected semi_circular\n    test 515 _sep_ = 'sep': True\n    test 516 _sep_ = 'sep': sep\n    test 517 _singular_ = 'singular': True\n    test 518 _singular_ = 'singular': singular\n    test 519 _SLASH_ = '/': True\n    test 520 _SLASH_ = '/': /  FAILED, KNOWN, expected slash\n    test 521 _small_ = 'small': True\n    test 522 _small_ = 'small': small\n    test 523 _SPACE_ = ' ': True\n    test 524 _SPACE_ = ' ':    FAILED, KNOWN, expected space\n    test 525 _specified_ = 'specified': True\n    test 526 _specified_ = 'specified': specified\n    test 527 _Sphere_ = 'Sphere': True\n    test 528 _Sphere_ = 'Sphere': sphere\n    test 529 _spherical_ = 'spherical': True\n    test 530 _spherical_ = 'spherical': spherical\n    test 531 _STAR_ = '*': True\n    test 532 _STAR_ = '*': *  FAILED, KNOWN, expected star\n    test 533 _start_ = 'start': True\n    test 534 _start_ = 'start': start\n    test 535 _std_ = 'std': True\n    test 536 _std_ = 'std': std\n    test 537 _stdev_ = 'stdev': True\n    test 538 _stdev_ = 'stdev': stdev\n    test 539 _SW_ = 'SW': True\n    test 540 _SW_ = 'SW': sw\n    test 541 _tbd_ = 'tbd': True\n    test 542 _tbd_ = 'tbd': tbd\n    test 543 _TILDE_ = '~': True\n    test 544 _TILDE_ = '~': ~  FAILED, KNOWN, expected tilde\n    test 545 _to_ = 'to': True\n    test 546 _to_ = 'to': to\n    test 547 _tolerance_ = 'tolerance': True\n    test 548 _tolerance_ = 'tolerance': tolerance\n    test 549 _too_ = 'too': True\n    test 550 _too_ = 'too': too\n    test 551 _transform_ = 'transform': True\n    test 552 _transform_ = 'transform': transform\n    test 553 _UNDER_ = '_': True\n    test 554 _UNDER_ = '_': _  FAILED, KNOWN, expected under\n    test 555 _units_ = 'units': True\n    test 556 _units_ = 'units': units\n    test 557 _UNUSED_ = 'UNUSED': True\n    test 558 _UNUSED_ = 'UNUSED': unused\n    test 559 _up_ = 'up': True\n    test 560 _up_ = 'up': up\n    test 561 _UPS_ = 'UPS': True\n    test 562 _UPS_ = 'UPS': ups\n    test 563 _utf_8_ = 'utf-8': True\n    test 564 _utf_8_ = 'utf-8': utf-8  FAILED, KNOWN, expected utf_8\n    test 565 _UTM_ = 'UTM': True\n    test 566 _UTM_ = 'UTM': utm\n    test 567 _V_ = 'V': True\n    test 568 _V_ = 'V': v\n    test 569 _valid_ = 'valid': True\n    test 570 _valid_ = 'valid': valid\n    test 571 _value_ = 'value': True\n    test 572 _value_ = 'value': value\n    test 573 _version_ = 'version': True\n    test 574 _version_ = 'version': version\n    test 575 _vs_ = 'vs': True\n    test 576 _vs_ = 'vs': vs\n    test 577 _W_ = 'W': True\n    test 578 _W_ = 'W': w\n    test 579 _WGS72_ = 'WGS72': True\n    test 580 _WGS72_ = 'WGS72': wgs72\n    test 581 _WGS84_ = 'WGS84': True\n    test 582 _WGS84_ = 'WGS84': wgs84\n    test 583 _width_ = 'width': True\n    test 584 _width_ = 'width': width\n    test 585 _with_ = 'with': True\n    test 586 _with_ = 'with': with\n    test 587 _X_ = 'X': True\n    test 588 _X_ = 'X': x\n    test 589 _x_ = 'x': True\n    test 590 _x_ = 'x': x\n    test 591 _xyz_ = 'xyz': True\n    test 592 _xyz_ = 'xyz': xyz\n    test 593 _Y_ = 'Y': True\n    test 594 _Y_ = 'Y': y\n    test 595 _y_ = 'y': True\n    test 596 _y_ = 'y': y\n    test 597 _Z_ = 'Z': True\n    test 598 _Z_ = 'Z': z\n    test 599 _z_ = 'z': True\n    test 600 _z_ = 'z': z\n    test 601 _zone_ = 'zone': True\n    test 602 _zone_ = 'zone': zone\n    test 603 .tillC: ABC\n    test 604 .fromX: XYZ\n    test 605 .fromH.tillJ: HJ\n    test 606 .fromN.tillP: NP\n\n    test 607 machine: arm64\n    test 608 sysctl: 0\n    test 609 usage: python3 -m pygeodesy.interns\n    test 610 version: (3, 10)\n\n    64 of 610 testInterns.py tests (10.5%) FAILED, ALL KNOWN (pygeodesy 26.3.26 PyPy 7.3.17 Python 3.10.14 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 12.147 ms\nrunning /opt/local/bin/p....y3.10 -W default ~/PyGeodesy/test/testIters.py\n# lazily imported pygeodesy.basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.DeprecationWarnings from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isint from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isLazy from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.issubclassof from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.iterNumpy2over from .iters by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.LazyImportError from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.karney by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.NN from .interns by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.normDMS from .dms by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.pairs from .streprs by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.printf from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.property_RO from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.typename from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.PointsError from .errors by testIters.py line 11\n# lazily imported pygeodesy.PointsIter from .iters by testIters.py line 11\n\n    testing testIters.py 23.03.27 (module pygeodesy.iters 25.05.19) isLazy=3\n# lazily imported pygeodesy.booleans by iters.py line 76\n    test 1 i : 7\n    test 2 dedup: False\n    test 3 i : 0\n    test 4 p0: True\n    test 5 dedup: True\n    test 6 copies: [0, 1, 2, 3, 4, 5, 6, 7]\n    test 7 i : 0\n    test 8 copies: 9\n    test 9 p0: True\n    test 10 copies: True\n    test 11 copies: (0, 1, 2, 3, 4, 5, 6, 7)\n    test 12 iter: 1\n    test 13 iter: 2\n    test 14 iter: 3\n    test 15 re-iter: PointsError('points (0): too few')\n\n    all 15 testIters.py tests passed (pygeodesy 26.3.26 PyPy 7.3.17 Python 3.10.14 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 4.433 ms\nrunning /opt/local/bin/p....y3.10 -W default ~/PyGeodesy/test/testKarney.py\n./pygeodesy/ellipsoidalKarney.py:139: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return fabs(_polygon(datum.ellipsoid.geodesic, points, True, False, wrap, polar))\n./pygeodesy/ellipsoidalKarney.py:347: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return _polygon(datum.ellipsoid.geodesic, points, closed, True, wrap, False)\n# lazily imported pygeodesy.basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.DeprecationWarnings from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isint from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isLazy from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.issubclassof from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.iterNumpy2over from .iters by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.LazyImportError from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.karney by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.NN from .interns by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.normDMS from .dms by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.pairs from .streprs by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.printf from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.property_RO from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.typename from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.fsum_ from .fsums by testKarney.py line 11\n# lazily imported pygeodesy.LatLon_ from .points by testKarney.py line 11\n# lazily imported pygeodesy.sincos2d from .utily by testKarney.py line 11\n# lazily imported pygeodesy.unroll180 from .utily by testKarney.py line 11\n# lazily imported pygeodesy.wrap180 from .utily by testKarney.py line 11\n# lazily imported pygeodesy.ellipsoidalExact by testKarney.py line 220\n# lazily imported pygeodesy.geodesicw by testKarney.py line 220\n# lazily imported pygeodesy.geodesicx by testKarney.py line 220\n\n    testing testKarney.py 25.12.20 (module pygeodesy.karney 25.12.23) isLazy=3\n# lazily imported pygeodesy.ellipsoidalKarney by testKarney.py line 225\n    test 1 Geodesic: True\n    test 2 Geodesic: True\n\n    testDirect(pygeodesy.geodesicw, 25.05.28)\n    test 3 Direct.lat2: -11.174910000000\n    test 4 Direct.lon2: -69.959210000000\n    test 5 Direct.azi2: 129.289270889709\n    test 6 Direct.a12: 80.507297142820\n    test 7 Direct.m12: 6273170.205530384555  FAILED, KNOWN (1.48461e-14), expected 6273170.205530383624\n    test 8 Direct.M12: 0.166063184474\n    test 9 Direct.M21: 0.164791169456\n    test 10 Direct.S12: 12841384694976.431640625000\n    test 11 Direct.lat2: 77.031960000000\n    test 12 Direct.lon2: 197.182340000000\n    test 13 Direct.azi2: 109.112041110672\n    test 14 Direct.a12: 36.892740690446\n    test 15 Direct.m12: 3828869.334438760299  FAILED, KNOWN (1.21618e-14), expected 3828869.334438760765\n    test 16 Direct.M12: 0.800763496081\n    test 17 Direct.M21: 0.801010069842\n    test 18 Direct.S12: 61674961290615.609375000000  FAILED, KNOWN (1.26672e-14), expected 61674961290615.617187500000\n    test 19 Direct.lat2: 41.841380000000\n    test 20 Direct.lon2: 98.566350000000\n    test 21 Direct.azi2: -41.843599514405\n    test 22 Direct.a12: 75.629304910115\n    test 23 Direct.m12: 6161154.577311060391  FAILED, KNOWN (1.5116e-14), expected 6161154.577311061323\n    test 24 Direct.M12: 0.248163392340\n    test 25 Direct.M21: 0.249302512036\n    test 26 Direct.S12: -6637997720646.715820312500  FAILED, KNOWN (1.47117e-14), expected -6637997720646.716796875000\n    test 27 Direct.lat2: -12.706310000000\n    test 28 Direct.lon2: 285.903440000000\n    test 29 Direct.azi2: 2.512956620914\n    test 30 Direct.a12: 100.278634181156\n    test 31 Direct.m12: 6289939.567044666968  FAILED, KNOWN (2.96131e-14), expected 6289939.567044668831\n    test 32 Direct.M12: -0.171994902747\n    test 33 Direct.M21: -0.177225695263\n    test 34 Direct.S12: -121287239862139.734375000000  FAILED, KNOWN (1.28826e-14), expected -121287239862139.750000000000\n    test 35 Direct.lat2: -15.847840000000\n    test 36 Direct.lon2: 5.935570000000\n    test 37 Direct.azi2: -20.787484651537\n    test 38 Direct.a12: 144.640108810286\n    test 39 Direct.m12: 3732902.158387716860  FAILED, KNOWN (4.9898e-14), expected 3732902.158387718722\n    test 40 Direct.M12: -0.812736387001\n    test 41 Direct.M21: -0.812998005192\n    test 42 Direct.S12: 97825992354058.703125000000\n\n    testInverse(pygeodesy.geodesicw, 25.05.28)\n    test 43 Inverse.lat2: -11.174910000000\n    test 44 Inverse.lon2: -69.959210000000\n    test 45 Inverse.azi1: 111.098748429560\n    test 46 Inverse.azi2: 129.289270889709\n    test 47 Inverse.s12: 8935244.560481829569\n    test 48 Inverse.a12: 80.507297142820\n    test 49 Inverse.m12: 6273170.205530383624\n    test 50 Inverse.M12: 0.166063184474\n    test 51 Inverse.M21: 0.164791169456\n    test 52 Inverse.S12: 12841384694976.433593750000  FAILED, KNOWN (1.52096e-14), expected 12841384694976.431640625000\n    test 53 Inverse.lat2: 77.031960000000\n    test 54 Inverse.lon2: 197.182340000000\n    test 55 Inverse.azi1: 22.020059880983\n    test 56 Inverse.azi2: 109.112041110672\n    test 57 Inverse.s12: 4105086.171392441727  FAILED, KNOWN (2.2687e-14), expected 4105086.171392440796\n    test 58 Inverse.a12: 36.892740690446\n    test 59 Inverse.m12: 3828869.334438761696  FAILED, KNOWN (2.43237e-14), expected 3828869.334438760765\n    test 60 Inverse.M12: 0.800763496081\n    test 61 Inverse.M21: 0.801010069842\n    test 62 Inverse.S12: 61674961290615.617187500000\n    test 63 Inverse.lat2: 41.841380000000\n    test 64 Inverse.lon2: 98.566350000000\n    test 65 Inverse.azi1: -32.444568764332\n    test 66 Inverse.azi2: -41.843599514405\n    test 67 Inverse.s12: 8394328.894657669589  FAILED, KNOWN (2.21893e-14), expected 8394328.894657671452\n    test 68 Inverse.a12: 75.629304910115\n    test 69 Inverse.m12: 6161154.577311060391  FAILED, KNOWN (1.5116e-14), expected 6161154.577311061323\n    test 70 Inverse.M12: 0.248163392340\n    test 71 Inverse.M21: 0.249302512036\n    test 72 Inverse.S12: -6637997720646.717773437500  FAILED, KNOWN (1.47117e-14), expected -6637997720646.716796875000\n    test 73 Inverse.lat2: -12.706310000000\n    test 74 Inverse.lon2: 285.903440000000\n    test 75 Inverse.azi1: 173.734912408784\n    test 76 Inverse.azi2: 2.512956620914\n    test 77 Inverse.s12: 11150344.231208024547\n    test 78 Inverse.a12: 100.278634181156\n    test 79 Inverse.m12: 6289939.567044666968  FAILED, KNOWN (2.96131e-14), expected 6289939.567044668831\n    test 80 Inverse.M12: -0.171994902747\n    test 81 Inverse.M21: -0.177225695263\n    test 82 Inverse.S12: -121287239862139.718750000000  FAILED, KNOWN (2.57653e-14), expected -121287239862139.750000000000\n    test 83 Inverse.lat2: -15.847840000000\n    test 84 Inverse.lon2: 5.935570000000\n    test 85 Inverse.azi1: -159.033557661193\n    test 86 Inverse.azi2: -20.787484651537\n    test 87 Inverse.s12: 16076603.163118068129\n    test 88 Inverse.a12: 144.640108810286\n    test 89 Inverse.m12: 3732902.158387719188  FAILED, KNOWN (1.24745e-14), expected 3732902.158387718722\n    test 90 Inverse.M12: -0.812736387001\n    test 91 Inverse.M21: -0.812998005192\n    test 92 Inverse.S12: 97825992354058.703125000000\n    test 93 Inverse.lat2: 90.000000000000\n    test 94 Inverse.lon2: 0.000000000000\n    test 95 Inverse.azi1: 0.000000000000\n    test 96 Inverse.azi2: 0.000000000000\n    test 97 Inverse.s12: 558455.588646476739  FAILED, KNOWN (8.53641e-11), expected 558455.588646000018\n    test 98 Inverse.a12: 5.016734754264  FAILED, KNOWN (4.89833e-06), expected 5.016735000000\n    test 99 Inverse.m12: 557747.059253584128  FAILED, KNOWN (7.45563e-11), expected 557747.059253999963\n    test 100 Inverse.M12: 0.996194698092  FAILED, KNOWN (3.03061e-05), expected 0.996195000000\n    test 101 Inverse.M21: 0.996194828008  FAILED, KNOWN (1.72648e-05), expected 0.996195000000\n    test 102 Inverse.S12: 0.000000000000\n    test 103 Inverse.lat2: 90.000000000000\n    test 104 Inverse.lon2: 10.000000000000\n    test 105 Inverse.azi1: 0.000000000000\n    test 106 Inverse.azi2: 10.000000000000\n    test 107 Inverse.s12: 558455.588646476739  FAILED, KNOWN (8.53641e-11), expected 558455.588646000018\n    test 108 Inverse.a12: 5.016734754264  FAILED, KNOWN (4.89833e-06), expected 5.016735000000\n    test 109 Inverse.m12: 557747.059253584128  FAILED, KNOWN (7.45563e-11), expected 557747.059253999963\n    test 110 Inverse.M12: 0.996194698092  FAILED, KNOWN (3.03061e-05), expected 0.996195000000\n    test 111 Inverse.M21: 0.996194828008  FAILED, KNOWN (1.72648e-05), expected 0.996195000000\n    test 112 Inverse.S12: 7084244746167.895507812500\n\n    testInverseLine(pygeodesy.geodesicw, 25.05.28)\n    test 113 InverseLine[0].lat: 40.640\n    test 114 InverseLine[0].lon: -73.779\n    test 115 InverseLine[1].lat: 49.825  FAILED, KNOWN (0.00641087), expected 49.829\n    test 116 InverseLine[1].lon: -72.962\n    test 117 InverseLine[2].lat: 58.992  FAILED, KNOWN (0.0026387), expected 58.994\n    test 118 InverseLine[2].lon: -71.759\n    test 119 InverseLine[3].lat: 68.132  FAILED, KNOWN (0.00640093), expected 68.127\n    test 120 InverseLine[3].lon: -69.677  FAILED, KNOWN (0.0019843), expected -69.678\n    test 121 InverseLine[4].lat: 77.203  FAILED, KNOWN (0.0174018), expected 77.190\n    test 122 InverseLine[4].lon: -64.830  FAILED, KNOWN (0.0188051), expected -64.842\n    test 123 InverseLine[5].lat: 85.794  FAILED, KNOWN (0.023512), expected 85.774\n    test 124 InverseLine[5].lon: -39.425  FAILED, KNOWN (0.511977), expected -39.628\n    test 125 InverseLine[6].lat: 83.690  FAILED, KNOWN (0.0405821), expected 83.724\n    test 126 InverseLine[6].lon: 80.754  FAILED, KNOWN (0.167168), expected 80.619\n    test 127 InverseLine[7].lat: 74.828  FAILED, KNOWN (0.0632801), expected 74.875\n    test 128 InverseLine[7].lon: 94.774  FAILED, KNOWN (0.0324631), expected 94.743\n    test 129 InverseLine[8].lat: 65.730  FAILED, KNOWN (0.0856355), expected 65.786\n    test 130 InverseLine[8].lon: 98.489  FAILED, KNOWN (0.0149102), expected 98.474\n    test 131 InverseLine[9].lat: 56.582  FAILED, KNOWN (0.108466), expected 56.643\n    test 132 InverseLine[9].lon: 100.254  FAILED, KNOWN (0.0088657), expected 100.246\n    test 133 InverseLine[10].lat: 47.409  FAILED, KNOWN (0.13059), expected 47.471\n    test 134 InverseLine[10].lon: 101.327  FAILED, KNOWN (0.00584966), expected 101.321\n    test 135 InverseLine[11].lat: 38.220  FAILED, KNOWN (0.150547), expected 38.277\n    test 136 InverseLine[11].lon: 102.079  FAILED, KNOWN (0.00399913), expected 102.075\n    test 137 InverseLine[12].lat: 29.017  FAILED, KNOWN (0.166648), expected 29.066\n    test 138 InverseLine[12].lon: 102.662  FAILED, KNOWN (0.0026948), expected 102.659\n    test 139 InverseLine[13].lat: 19.804  FAILED, KNOWN (0.176529), expected 19.839\n    test 140 InverseLine[13].lon: 103.148  FAILED, KNOWN (0.00167385), expected 103.147\n    test 141 InverseLine[14].lat: 10.584  FAILED, KNOWN (0.173707), expected 10.602\n    test 142 InverseLine[14].lon: 103.581\n    test 143 InverseLine[15].lat: 1.359\n    test 144 InverseLine[15].lon: 103.989\n\n    testGeodCalc(pygeodesy.ellipsoidalKarney, 25.05.27)\n# lazily imported pygeodesy.booleans by karney.py line 875\n    test 145 area: 13662703680020\n    test 146 perimeter: 16831067.892791\n\n    testMask(pygeodesy.geodesicw, 25.05.28)\n    test 147 Geodesic.EMPTY: 0b0\n    test 148 Geodesic.LATITUDE: 0b10000000\n    test 149 Geodesic.LONGITUDE: 0b100001000\n    test 150 Geodesic.AZIMUTH: 0b1000000000\n    test 151 Geodesic.AREA: 0b100000000010000\n    test 152 Geodesic.DISTANCE: 0b10000000001\n    test 153 Geodesic.DISTANCE_IN: 0b100000000011\n    test 154 Geodesic.REDUCEDLENGTH: 0b1000000000101\n    test 155 Geodesic.GEODESICSCALE: 0b10000000000101\n    test 156 Geodesic.STANDARD: 0b11110001001\n    test 157 Geodesic.STANDARD_LINE: 0b111110001011\n    test 158 Geodesic.ALL: 0b111111110011111\n    test 159 Caps: ALL|AREA|AZIMUTH|AZIMUTH_DISTANCE|AZIMUTH_DISTANCE_AREA|DISTANCE|DISTANCE_IN|GEODESICSCALE|LATITUDE|LATITUDE_LONGITUDE|LATITUDE_LONGITUDE_AREA|LINE_CAPS|LONGITUDE|REDUCEDLENGTH|STANDARD|STANDARD_LINE\n    test 160 Caps: ALL|AREA|AZIMUTH|AZIMUTH_DISTANCE|AZIMUTH_DISTANCE_AREA|DISTANCE|DISTANCE_IN|GEODESICSCALE|LATITUDE|LATITUDE_LONGITUDE|LATITUDE_LONGITUDE_AREA|LINE_CAPS|LONGITUDE|REDUCEDLENGTH|STANDARD|STANDARD_LINE\n\n    testDirect(pygeodesy.geodesicx, 25.12.23)\n# lazily imported pygeodesy.elliptic by gxline.py line 289\n    test 161 Direct.lat2: -11.174910000000\n    test 162 Direct.lon2: -69.959210000000\n    test 163 Direct.azi2: 129.289270889709\n    test 164 Direct.a12: 80.507297142820\n    test 165 Direct.m12: 6273170.205530384555  FAILED, KNOWN (1.48461e-14), expected 6273170.205530383624\n    test 166 Direct.M12: 0.166063184474\n    test 167 Direct.M21: 0.164791169456\n    test 168 Direct.S12: 12841384694976.431640625000\n    test 169 Direct.lat2: 77.031960000000\n    test 170 Direct.lon2: 197.182340000000\n    test 171 Direct.azi2: 109.112041110672\n    test 172 Direct.a12: 36.892740690446\n    test 173 Direct.m12: 3828869.334438760299  FAILED, KNOWN (1.21618e-14), expected 3828869.334438760765\n    test 174 Direct.M12: 0.800763496081\n    test 175 Direct.M21: 0.801010069842\n    test 176 Direct.S12: 61674961290615.609375000000  FAILED, KNOWN (1.26672e-14), expected 61674961290615.617187500000\n    test 177 Direct.lat2: 41.841380000000\n    test 178 Direct.lon2: 98.566350000000\n    test 179 Direct.azi2: -41.843599514405\n    test 180 Direct.a12: 75.629304910115\n    test 181 Direct.m12: 6161154.577311059460  FAILED, KNOWN (3.02321e-14), expected 6161154.577311061323\n    test 182 Direct.M12: 0.248163392340\n    test 183 Direct.M21: 0.249302512036\n    test 184 Direct.S12: -6637997720646.717773437500  FAILED, KNOWN (1.47117e-14), expected -6637997720646.716796875000\n    test 185 Direct.lat2: -12.706310000000\n    test 186 Direct.lon2: 285.903440000000\n    test 187 Direct.azi2: 2.512956620914\n    test 188 Direct.a12: 100.278634181156\n    test 189 Direct.m12: 6289939.567044666968  FAILED, KNOWN (2.96131e-14), expected 6289939.567044668831\n    test 190 Direct.M12: -0.171994902747\n    test 191 Direct.M21: -0.177225695263\n    test 192 Direct.S12: -121287239862139.734375000000  FAILED, KNOWN (1.28826e-14), expected -121287239862139.750000000000\n    test 193 Direct.lat2: -15.847840000000\n    test 194 Direct.lon2: 5.935570000000\n    test 195 Direct.azi2: -20.787484651537\n    test 196 Direct.a12: 144.640108810286\n    test 197 Direct.m12: 3732902.158387716860  FAILED, KNOWN (4.9898e-14), expected 3732902.158387718722\n    test 198 Direct.M12: -0.812736387001\n    test 199 Direct.M21: -0.812998005192\n    test 200 Direct.S12: 97825992354058.703125000000\n\n    testInverse(pygeodesy.geodesicx, 25.12.23)\n    test 201 Inverse.lat2: -11.174910000000\n    test 202 Inverse.lon2: -69.959210000000\n    test 203 Inverse.azi1: 111.098748429560\n    test 204 Inverse.azi2: 129.289270889709\n    test 205 Inverse.s12: 8935244.560481829569\n    test 206 Inverse.a12: 80.507297142820\n    test 207 Inverse.m12: 6273170.205530383624\n    test 208 Inverse.M12: 0.166063184474\n    test 209 Inverse.M21: 0.164791169456\n    test 210 Inverse.S12: 12841384694976.433593750000  FAILED, KNOWN (1.52096e-14), expected 12841384694976.431640625000\n    test 211 Inverse.lat2: 77.031960000000\n    test 212 Inverse.lon2: 197.182340000000\n    test 213 Inverse.azi1: 22.020059880983\n    test 214 Inverse.azi2: 109.112041110672\n    test 215 Inverse.s12: 4105086.171392441727  FAILED, KNOWN (2.2687e-14), expected 4105086.171392440796\n    test 216 Inverse.a12: 36.892740690446\n    test 217 Inverse.m12: 3828869.334438761696  FAILED, KNOWN (2.43237e-14), expected 3828869.334438760765\n    test 218 Inverse.M12: 0.800763496081\n    test 219 Inverse.M21: 0.801010069842\n    test 220 Inverse.S12: 61674961290615.617187500000\n    test 221 Inverse.lat2: 41.841380000000\n    test 222 Inverse.lon2: 98.566350000000\n    test 223 Inverse.azi1: -32.444568764332\n    test 224 Inverse.azi2: -41.843599514405\n    test 225 Inverse.s12: 8394328.894657669589  FAILED, KNOWN (2.21893e-14), expected 8394328.894657671452\n    test 226 Inverse.a12: 75.629304910115\n    test 227 Inverse.m12: 6161154.577311059460  FAILED, KNOWN (3.02321e-14), expected 6161154.577311061323\n    test 228 Inverse.M12: 0.248163392340\n    test 229 Inverse.M21: 0.249302512036\n    test 230 Inverse.S12: -6637997720646.715820312500  FAILED, KNOWN (1.47117e-14), expected -6637997720646.716796875000\n    test 231 Inverse.lat2: -12.706310000000\n    test 232 Inverse.lon2: 285.903440000000\n    test 233 Inverse.azi1: 173.734912408784\n    test 234 Inverse.azi2: 2.512956620914\n    test 235 Inverse.s12: 11150344.231208024547\n    test 236 Inverse.a12: 100.278634181156\n    test 237 Inverse.m12: 6289939.567044666968  FAILED, KNOWN (2.96131e-14), expected 6289939.567044668831\n    test 238 Inverse.M12: -0.171994902747\n    test 239 Inverse.M21: -0.177225695263\n    test 240 Inverse.S12: -121287239862139.718750000000  FAILED, KNOWN (2.57653e-14), expected -121287239862139.750000000000\n    test 241 Inverse.lat2: -15.847840000000\n    test 242 Inverse.lon2: 5.935570000000\n    test 243 Inverse.azi1: -159.033557661193\n    test 244 Inverse.azi2: -20.787484651537\n    test 245 Inverse.s12: 16076603.163118068129\n    test 246 Inverse.a12: 144.640108810286\n    test 247 Inverse.m12: 3732902.158387719188  FAILED, KNOWN (1.24745e-14), expected 3732902.158387718722\n    test 248 Inverse.M12: -0.812736387001\n    test 249 Inverse.M21: -0.812998005192\n    test 250 Inverse.S12: 97825992354058.703125000000\n    test 251 Inverse.lat2: 90.000000000000\n    test 252 Inverse.lon2: 0.000000000000\n    test 253 Inverse.azi1: 0.000000000000\n    test 254 Inverse.azi2: 0.000000000000\n    test 255 Inverse.s12: 558020.704208072624  FAILED, KNOWN (0.0778727), expected 558455.588646000018\n    test 256 Inverse.a12: 5.016734754264  FAILED, KNOWN (4.89833e-06), expected 5.016735000000\n    test 257 Inverse.m12: 557747.059253584128  FAILED, KNOWN (7.45563e-11), expected 557747.059253999963\n    test 258 Inverse.M12: 0.996194698092  FAILED, KNOWN (3.03061e-05), expected 0.996195000000\n    test 259 Inverse.M21: 0.996188865576  FAILED, KNOWN (0.000615785), expected 0.996195000000\n    test 260 Inverse.S12: 0.000000000000\n    test 261 Inverse.lat2: 90.000000000000\n    test 262 Inverse.lon2: 10.000000000000\n    test 263 Inverse.azi1: 0.000000000000\n    test 264 Inverse.azi2: 10.000000000000\n    test 265 Inverse.s12: 558020.704208072624  FAILED, KNOWN (0.0778727), expected 558455.588646000018\n    test 266 Inverse.a12: 5.016734754264  FAILED, KNOWN (4.89833e-06), expected 5.016735000000\n    test 267 Inverse.m12: 557747.059253584128  FAILED, KNOWN (7.45563e-11), expected 557747.059253999963\n    test 268 Inverse.M12: 0.996194698092  FAILED, KNOWN (3.03061e-05), expected 0.996195000000\n    test 269 Inverse.M21: 0.996188865576  FAILED, KNOWN (0.000615785), expected 0.996195000000\n    test 270 Inverse.S12: 7084244746167.895507812500\n\n    testInverseLine(pygeodesy.geodesicx, 25.12.23)\n    test 271 InverseLine[0].lat: 40.640\n    test 272 InverseLine[0].lon: -73.779\n    test 273 InverseLine[1].lat: 49.825  FAILED, KNOWN (0.00641087), expected 49.829\n    test 274 InverseLine[1].lon: -72.962\n    test 275 InverseLine[2].lat: 58.992  FAILED, KNOWN (0.0026387), expected 58.994\n    test 276 InverseLine[2].lon: -71.759\n    test 277 InverseLine[3].lat: 68.132  FAILED, KNOWN (0.00640093), expected 68.127\n    test 278 InverseLine[3].lon: -69.677  FAILED, KNOWN (0.0019843), expected -69.678\n    test 279 InverseLine[4].lat: 77.203  FAILED, KNOWN (0.0174018), expected 77.190\n    test 280 InverseLine[4].lon: -64.830  FAILED, KNOWN (0.0188051), expected -64.842\n    test 281 InverseLine[5].lat: 85.794  FAILED, KNOWN (0.023512), expected 85.774\n    test 282 InverseLine[5].lon: -39.425  FAILED, KNOWN (0.511977), expected -39.628\n    test 283 InverseLine[6].lat: 83.690  FAILED, KNOWN (0.0405821), expected 83.724\n    test 284 InverseLine[6].lon: 80.754  FAILED, KNOWN (0.167168), expected 80.619\n    test 285 InverseLine[7].lat: 74.828  FAILED, KNOWN (0.0632801), expected 74.875\n    test 286 InverseLine[7].lon: 94.774  FAILED, KNOWN (0.0324631), expected 94.743\n    test 287 InverseLine[8].lat: 65.730  FAILED, KNOWN (0.0856355), expected 65.786\n    test 288 InverseLine[8].lon: 98.489  FAILED, KNOWN (0.0149102), expected 98.474\n    test 289 InverseLine[9].lat: 56.582  FAILED, KNOWN (0.108466), expected 56.643\n    test 290 InverseLine[9].lon: 100.254  FAILED, KNOWN (0.0088657), expected 100.246\n    test 291 InverseLine[10].lat: 47.409  FAILED, KNOWN (0.13059), expected 47.471\n    test 292 InverseLine[10].lon: 101.327  FAILED, KNOWN (0.00584966), expected 101.321\n    test 293 InverseLine[11].lat: 38.220  FAILED, KNOWN (0.150547), expected 38.277\n    test 294 InverseLine[11].lon: 102.079  FAILED, KNOWN (0.00399913), expected 102.075\n    test 295 InverseLine[12].lat: 29.017  FAILED, KNOWN (0.166648), expected 29.066\n    test 296 InverseLine[12].lon: 102.662  FAILED, KNOWN (0.0026948), expected 102.659\n    test 297 InverseLine[13].lat: 19.804  FAILED, KNOWN (0.176529), expected 19.839\n    test 298 InverseLine[13].lon: 103.148  FAILED, KNOWN (0.00167385), expected 103.147\n    test 299 InverseLine[14].lat: 10.584  FAILED, KNOWN (0.173707), expected 10.602\n    test 300 InverseLine[14].lon: 103.581\n    test 301 InverseLine[15].lat: 1.359\n    test 302 InverseLine[15].lon: 103.989\n\n    testGeodCalc(pygeodesy.ellipsoidalExact, 25.08.28)\n    test 303 area: 13662703680020\n    test 304 perimeter: 16830891.356049\n\n    testMask(pygeodesy.geodesicx, 25.12.23)\n    test 305 Geodesic.EMPTY: 0b0\n    test 306 Geodesic.LATITUDE: 0b10000000\n    test 307 Geodesic.LONGITUDE: 0b100001000\n    test 308 Geodesic.AZIMUTH: 0b1000000000\n    test 309 Geodesic.AREA: 0b100000000010000\n    test 310 Geodesic.DISTANCE: 0b10000000001\n    test 311 Geodesic.DISTANCE_IN: 0b100000000011\n    test 312 Geodesic.REDUCEDLENGTH: 0b1000000000101\n    test 313 Geodesic.GEODESICSCALE: 0b10000000000101\n    test 314 Geodesic.STANDARD: 0b11110001001\n    test 315 Geodesic.STANDARD_LINE: 0b111110001011\n    test 316 Geodesic.ALL: 0b111111110011111\n    test 317 Caps: ALL|AREA|AZIMUTH|AZIMUTH_DISTANCE|AZIMUTH_DISTANCE_AREA|DISTANCE|DISTANCE_IN|GEODESICSCALE|LATITUDE|LATITUDE_LONGITUDE|LATITUDE_LONGITUDE_AREA|LINE_CAPS|LONGITUDE|REDUCEDLENGTH|STANDARD|STANDARD_LINE\n    test 318 Caps: ALL|AREA|AZIMUTH|AZIMUTH_DISTANCE|AZIMUTH_DISTANCE_AREA|DISTANCE|DISTANCE_IN|GEODESICSCALE|LATITUDE|LATITUDE_LONGITUDE|LATITUDE_LONGITUDE_AREA|LINE_CAPS|LONGITUDE|REDUCEDLENGTH|STANDARD|STANDARD_LINE\n\n    102 tests skipped (102): no GeodSolve\n\n    testMath(pygeodesy.karney, 25.12.23)\n    test 319 sin(-360): -0.0\n    test 320 cos(-360): 1.0\n    test 321 sin(-345): 0.25881904510252074\n    test 322 cos(-345): 0.9659258262890683\n    test 323 sin(-330): 0.5  FAILED, KNOWN, expected 0.49999999999999994\n    test 324 cos(-330): 0.8660254037844386\n    test 325 sin(-315): 0.7071067811865476  FAILED, KNOWN, expected 0.7071067811865475\n    test 326 cos(-315): 0.7071067811865476\n    test 327 sin(-300): 0.8660254037844386  FAILED, KNOWN, expected 0.8660254037844387\n    test 328 cos(-300): 0.5000000000000001\n    test 329 sin(-285): 0.9659258262890683\n    test 330 cos(-285): 0.25881904510252074\n    test 331 sin(-270): 1.0\n    test 332 cos(-270): 0.0\n    test 333 sin(-255): 0.9659258262890683\n    test 334 cos(-255): -0.25881904510252074\n    test 335 sin(-240): 0.8660254037844386  FAILED, KNOWN, expected 0.8660254037844387\n    test 336 cos(-240): -0.5\n    test 337 sin(-225): 0.7071067811865476  FAILED, KNOWN, expected 0.7071067811865475\n    test 338 cos(-225): -0.7071067811865476\n    test 339 sin(-210): 0.5000000000000001  FAILED, KNOWN, expected 0.49999999999999994\n    test 340 cos(-210): -0.8660254037844386\n    test 341 sin(-195): 0.25881904510252074\n    test 342 cos(-195): -0.9659258262890683\n    test 343 sin(-180): -0.0\n    test 344 cos(-180): -1.0\n    test 345 sin(-165): -0.25881904510252074\n    test 346 cos(-165): -0.9659258262890683\n    test 347 sin(-150): -0.5  FAILED, KNOWN, expected -0.49999999999999994\n    test 348 cos(-150): -0.8660254037844386\n    test 349 sin(-135): -0.7071067811865476  FAILED, KNOWN, expected -0.7071067811865475\n    test 350 cos(-135): -0.7071067811865476\n    test 351 sin(-120): -0.8660254037844386  FAILED, KNOWN, expected -0.8660254037844387\n    test 352 cos(-120): -0.5000000000000001\n    test 353 sin(-105): -0.9659258262890683\n    test 354 cos(-105): -0.25881904510252074\n    test 355 sin(-90): -1.0\n    test 356 cos(-90): 0.0\n    test 357 sin(-75): -0.9659258262890683\n    test 358 cos(-75): 0.25881904510252074\n    test 359 sin(-60): -0.8660254037844386  FAILED, KNOWN, expected -0.8660254037844387\n    test 360 cos(-60): 0.5\n    test 361 sin(-45): -0.7071067811865476  FAILED, KNOWN, expected -0.7071067811865475\n    test 362 cos(-45): 0.7071067811865476\n    test 363 sin(-30): -0.5000000000000001  FAILED, KNOWN, expected -0.49999999999999994\n    test 364 cos(-30): 0.8660254037844386\n    test 365 sin(-15): -0.25881904510252074\n    test 366 cos(-15): 0.9659258262890683\n    test 367 sin(0): 0.0\n    test 368 cos(0): 1.0\n    test 369 sin(15): 0.25881904510252074\n    test 370 cos(15): 0.9659258262890683\n    test 371 sin(30): 0.5  FAILED, KNOWN, expected 0.49999999999999994\n    test 372 cos(30): 0.8660254037844386\n    test 373 sin(45): 0.7071067811865476  FAILED, KNOWN, expected 0.7071067811865475\n    test 374 cos(45): 0.7071067811865476\n    test 375 sin(60): 0.8660254037844386  FAILED, KNOWN, expected 0.8660254037844387\n    test 376 cos(60): 0.5000000000000001\n    test 377 sin(75): 0.9659258262890683\n    test 378 cos(75): 0.25881904510252074\n    test 379 sin(90): 1.0\n    test 380 cos(90): 0.0\n    test 381 sin(105): 0.9659258262890683\n    test 382 cos(105): -0.25881904510252074\n    test 383 sin(120): 0.8660254037844386  FAILED, KNOWN, expected 0.8660254037844387\n    test 384 cos(120): -0.5\n    test 385 sin(135): 0.7071067811865476  FAILED, KNOWN, expected 0.7071067811865475\n    test 386 cos(135): -0.7071067811865476\n    test 387 sin(150): 0.5000000000000001  FAILED, KNOWN, expected 0.49999999999999994\n    test 388 cos(150): -0.8660254037844386\n    test 389 sin(165): 0.25881904510252074\n    test 390 cos(165): -0.9659258262890683\n    test 391 sin(180): 0.0\n    test 392 cos(180): -1.0\n    test 393 sin(195): -0.25881904510252074\n    test 394 cos(195): -0.9659258262890683\n    test 395 sin(210): -0.5  FAILED, KNOWN, expected -0.49999999999999994\n    test 396 cos(210): -0.8660254037844386\n    test 397 sin(225): -0.7071067811865476  FAILED, KNOWN, expected -0.7071067811865475\n    test 398 cos(225): -0.7071067811865476\n    test 399 sin(240): -0.8660254037844386  FAILED, KNOWN, expected -0.8660254037844387\n    test 400 cos(240): -0.5000000000000001\n    test 401 sin(255): -0.9659258262890683\n    test 402 cos(255): -0.25881904510252074\n    test 403 sin(270): -1.0\n    test 404 cos(270): 0.0\n    test 405 sin(285): -0.9659258262890683\n    test 406 cos(285): 0.25881904510252074\n    test 407 sin(300): -0.8660254037844386  FAILED, KNOWN, expected -0.8660254037844387\n    test 408 cos(300): 0.5\n    test 409 sin(315): -0.7071067811865476  FAILED, KNOWN, expected -0.7071067811865475\n    test 410 cos(315): 0.7071067811865476\n    test 411 sin(330): -0.5000000000000001  FAILED, KNOWN, expected -0.49999999999999994\n    test 412 cos(330): 0.8660254037844386\n    test 413 sin(345): -0.25881904510252074\n    test 414 cos(345): 0.9659258262890683\n    test 415 sin(360): 0.0\n    test 416 cos(360): 1.0\n    test 417 sin(375): 0.25881904510252074\n    test 418 cos(375): 0.9659258262890683\n    test 419 sin(390): 0.5  FAILED, KNOWN, expected 0.49999999999999994\n    test 420 cos(390): 0.8660254037844386\n    test 421 _diff182(-180, -180): 0.0  FAILED, KNOWN, expected -0.0\n    test 422 _diff182(-180, -90): 90.0\n    test 423 _diff182(-180, 0): 180.0\n    test 424 _diff182(-180, 90): -90.0\n    test 425 _diff182(-180, 180): 0.0\n    test 426 _diff182(-90, -180): -90.0\n    test 427 _diff182(-90, -90): 0.0  FAILED, KNOWN, expected -0.0\n    test 428 _diff182(-90, 0): 90.0\n    test 429 _diff182(-90, 90): 180.0\n    test 430 _diff182(-90, 180): -90.0\n    test 431 _diff182(0, -180): -180.0\n    test 432 _diff182(0, -90): -90.0\n    test 433 _diff182(0, 0): 0.0  FAILED, KNOWN, expected -0.0\n    test 434 _diff182(0, 90): 90.0\n    test 435 _diff182(0, 180): 180.0\n    test 436 _diff182(90, -180): 90.0\n    test 437 _diff182(90, -90): -180.0\n    test 438 _diff182(90, 0): -90.0\n    test 439 _diff182(90, 90): 0.0  FAILED, KNOWN, expected -0.0\n    test 440 _diff182(90, 180): 90.0\n    test 441 _diff182(180, -180): -0.0\n    test 442 _diff182(180, -90): 90.0\n    test 443 _diff182(180, 0): -180.0\n    test 444 _diff182(180, 90): -90.0\n    test 445 _diff182(180, 180): 0.0  FAILED, KNOWN, expected -0.0\n    test 446 _norm180(-361): -1.0\n    test 447  wrap180(-361): -1.0\n    test 448 _norm180(-360): -0.0\n    test 449  wrap180(-360): 0.0  FAILED, KNOWN, expected -0.0\n    test 450 _norm180(-180): -180.0  FAILED, KNOWN, expected 180.0\n    test 451  wrap180(-180): -180.0  FAILED, KNOWN, expected 180.0\n    test 452 _norm180(-90): -90.0\n    test 453  wrap180(-90): -90.0\n    test 454 _norm180(0): 0.0\n    test 455  wrap180(0): 0.0\n    test 456 _norm180(0): 0.0\n    test 457  wrap180(0): 0.0\n    test 458 _norm180(90): 90.0\n    test 459  wrap180(90): 90.0\n    test 460 _norm180(180): 180.0\n    test 461  wrap180(180): 180.0\n    test 462 _norm180(360): 0.0\n    test 463  wrap180(360): 0.0\n    test 464 _norm180(361): 1.0\n    test 465  wrap180(361): 1.0\n    test 466 unroll(-30, 0): (30.0, 0.0)\n    test 467 unroll(-30, 30): (60.0, 30.0)\n    test 468 unroll(-30, 60): (90.0, 60.0)\n    test 469 unroll(-30, 90): (120.0, 90.0)\n    test 470 unroll(-30, 120): (150.0, 120.0)\n    test 471 unroll(-30, 150): (180.0, 150.0)\n    test 472 unroll(-30, 180): (-150.0, -180.0)\n    test 473 unroll(-30, 210): (-120.0, -150.0)\n    test 474 unroll(-30, 240): (-90.0, -120.0)\n    test 475 unroll(-30, 270): (-60.0, -90.0)\n    test 476 unroll(-30, 300): (-30.0, -60.0)\n    test 477 unroll(-30, 330): (0.0, -30.0)\n    test 478 unroll(-30, 360): (30.0, 0.0)\n\n    test 479 _sum3.s: 1.000e-20\n    test 480 _sum3.t: 0.000e+00\n    test 481 fsum_: 1.000e-20\n\n    test 482 _sum3.s: 1.000e-20\n    test 483 _sum3.t: 0.000e+00\n    test 484 fsum_: 1.000e-20\n\n    test 485 _sum3.s: 1.000e-20\n    test 486 _sum3.t: 0.000e+00\n    test 487 fsum_: 1.000e-20\n\n    test 488 _sum3.s: -3.589e+19  FAILED, KNOWN, expected 1.0\n    test 489 _sum3.t: -2.048e+03  FAILED, KNOWN, expected 0.000e+00\n    test 490 fsum_: -3.589e+19  FAILED, KNOWN, expected 1.0\n\n    142 of 490 testKarney.py tests (29.0%) FAILED, incl. 140 KNOWN plus 2 DeprecationWarnings, 102 skipped (pygeodesy 26.3.26 PyPy 7.3.17 Python 3.10.14 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 1.152 sec\nrunning /opt/local/bin/p....y3.10 -W default ~/PyGeodesy/test/testKarneySigns.py\n# lazily imported pygeodesy.basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.DeprecationWarnings from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isint from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isLazy from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.issubclassof from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.iterNumpy2over from .iters by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.LazyImportError from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.karney by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.NN from .interns by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.normDMS from .dms by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.pairs from .streprs by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.printf from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.property_RO from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.typename from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.EPS from .constants by testKarneySigns.py line 12\n# lazily imported pygeodesy.INF from .constants by testKarneySigns.py line 12\n# lazily imported pygeodesy.NAN from .constants by testKarneySigns.py line 12\n# lazily imported pygeodesy.signBit from .basics by testKarneySigns.py line 12\n\n    testing testKarneySigns.py 25.12.23 isLazy=3\n\n    test 1 test_AngDiff: ...\n    test 2 test_1: 0.0\n    test 3 test_2: -0.0\n    test 4 test_3: 0.0\n    test 5 test_4: 0.0\n    test 6 test_5: 0.0\n    test 7 test_6: -0.0\n    test 8 test_7: 180.0\n    test 9 test_8: -180.0\n    test 10 test_9: 180.0\n    test 11 test_10: -180.0\n    test 12 test_11: 180.0\n    test 13 test_12: -180.0\n    test 14 test_13: 57.99999999999997\n\n    test 15 test_AngNormalize: ...\n    test 16 test_1: -180.0\n    test 17 test_2: -0.0\n    test 18 test_3: -180.0\n    test 19 test_4: -0.0\n    test 20 test_5: -180.0\n    test 21 test_6: -0.0\n    test 22 test_7: 0.0\n    test 23 test_8: 180.0\n    test 24 test_9: 0.0\n    test 25 test_10: 180.0\n    test 26 test_11: 0.0\n    test 27 test_12: 180.0\n\n    test 28 test_AngRound: ...\n    test 29 test_1: 6.938893903907228e-18\n    test 30 test_2: -6.938893903907228e-18\n    test 31 test_3: -0.0\n    test 32 test_4: -0.0\n    test 33 test_5: 0.0\n    test 34 test_6: 0.0\n    test 35 test_7: 0.015624999999999993\n    test 36 test_8: 0.015625\n    test 37 test_9: 0.015625\n    test 38 test_10: 0.015625\n    test 39 test_11: 0.015625\n    test 40 test_12: 0.015625\n    test 41 test_13: 0.015625\n    test 42 test_14: 0.015625000000000007\n    test 43 test_15: 0.031249999999999993\n    test 44 test_16: 0.03125\n    test 45 test_17: 0.03125\n    test 46 test_18: 0.03125\n    test 47 test_19: 0.03125\n    test 48 test_20: 0.03125000000000001\n    test 49 test_21: 0.062499999999999986\n    test 50 test_22: 0.06249999999999999\n    test 51 test_23: 0.0625\n    test 52 test_24: 0.0625\n    test 53 test_25: 0.0625\n    test 54 test_26: 0.0625\n    test 55 test_27: 0.06250000000000001\n    test 56 test_28: 0.12499999999999997\n    test 57 test_29: 0.12499999999999999\n    test 58 test_30: 0.125\n    test 59 test_31: 0.125\n    test 60 test_32: 0.12500000000000003\n    test 61 test_33: 0.9999999999999998\n    test 62 test_34: 0.9999999999999999\n    test 63 test_35: 1.0\n    test 64 test_36: 1.0\n    test 65 test_37: 1.0\n    test 66 test_38: 1.0\n    test 67 test_39: 1.0000000000000002\n    test 68 test_40: 89.99999999999999\n    test 69 test_41: 90.0\n    test 70 test_42: 90.0\n\n    test 71 test_antipodal: ...\n# lazily imported pygeodesy.elliptic by gx.py line 421\n    test 72 test_1: 0.0\n    test 73 test_1: 180.0\n    test 74 test_2: 180.0\n    test 75 test_2: 0.0\n    test 76 test_3: -0.0\n    test 77 test_3: -180.0\n    test 78 test_4: -180.0\n    test 79 test_4: -0.0\n\n    test 80 test_antipodal_prolate: ...\n    test 81 test_1: 90.0\n    test 82 test_1: 90.0\n    test 83 test_2: -90.0\n    test 84 test_2: -90.0\n\n    test 85 test_azimuth_0_180: ...\n    test 86 test_1: 180.0\n    test 87 test_1: 180.0\n    test 88 test_2: -180.0\n    test 89 test_2: -180.0\n    test 90 test_3: 180.0\n    test 91 test_3: 0.0\n    test 92 test_4: -180.0\n    test 93 test_4: -0.0\n\n    test 94 test_equatorial_coincident: ...\n    test 95 test_1: 180.0\n    test 96 test_1: 180.0\n    test 97 test_2: 0.0\n    test 98 test_2: 0.0\n\n    test 99 test_equatorial_NS: ...\n    test 100 test_1: 55.97  FAILED, KNOWN, expected 56.00\n    test 101 test_1: 124.03  FAILED, KNOWN, expected 124.00\n    test 102 test_2: 124.03  FAILED, KNOWN, expected 124.00\n    test 103 test_2: 55.97  FAILED, KNOWN, expected 56.00\n\n    test 104 test_atan2d: ...\n    test 105 test_1: 179.99999999999997\n    test 106 test_2: 180.0\n    test 107 test_3: -180.0\n    test 108 test_4: 0.0\n    test 109 test_5: -0.0\n    test 110 test_6: 180.0\n    test 111 test_7: -180.0\n    test 112 test_8: 0.0\n    test 113 test_9: -0.0\n    test 114 test_10: -90.0\n    test 115 test_11: -90.0\n    test 116 test_12: 90.0\n    test 117 test_13: 90.0\n    test 118 test_14: 180.0\n    test 119 test_15: -180.0\n    test 120 test_16: 0.0\n    test 121 test_17: -0.0\n    test 122 test_18: 90.0\n    test 123 test_19: 90.0\n    test 124 test_20: -90.0\n    test 125 test_21: -90.0\n    test 126 test_22: 135.0\n    test 127 test_23: -135.0\n    test 128 test_24: 45.0\n    test 129 test_25: -45.0\n    test 130 test_26: nan\n    test 131 test_27: nan\n\n    test 132 test_sincosd: ...\n    test 133 test_1: -1.0000000000000000\n    test 134 test_1: 0.0\n    test 135 test_2: -0.0000000000000000\n    test 136 test_2: 1.0\n    test 137 test_3: 1.0000000000000000\n    test 138 test_3: 0.0\n    test 139 test_4: -0.0000000000000000\n    test 140 test_4: -1.0\n    test 141 test_5: -1.0000000000000000\n    test 142 test_5: 0.0\n    test 143 test_6: -0.0000000000000000\n    test 144 test_6: 1.0\n    test 145 test_7: 1.0000000000000000\n    test 146 test_7: 0.0\n    test 147 test_8: -0.0000000000000000\n    test 148 test_8: -1.0\n    test 149 test_9: -1.0000000000000000\n    test 150 test_9: 0.0\n    test 151 test_10: -0.0000000000000000\n    test 152 test_10: 1.0\n    test 153 test_11: 0.0000000000000000\n    test 154 test_11: 1.0\n    test 155 test_12: 1.0000000000000000\n    test 156 test_12: 0.0\n    test 157 test_13: 0.0000000000000000\n    test 158 test_13: -1.0\n    test 159 test_14: -1.0000000000000000\n    test 160 test_14: 0.0\n    test 161 test_15: 0.0000000000000000\n    test 162 test_15: 1.0\n    test 163 test_16: 1.0000000000000000\n    test 164 test_16: 0.0\n    test 165 test_17: 0.0000000000000000\n    test 166 test_17: -1.0\n    test 167 test_18: -1.0000000000000000\n    test 168 test_18: 0.0\n    test 169 test_19: 0.0000000000000000\n    test 170 test_19: 1.0\n    test 171 test_20: 1.0000000000000000\n    test 172 test_20: 0.0\n    test 173 test_21: nan\n    test 174 test_21: nan\n    test 175 test_22: nan\n    test 176 test_22: nan\n    test 177 test_23: nan\n    test 178 test_23: nan\n    test 179 test_23: 0.1564344650402309\n    test 180 test_23: 0.9876883405951378\n    test 181 test_23: 0.1564344650402309\n    test 182 test_23: 0.9876883405951378\n\n    test 183 test_sum2: ...\n    test 184 test_1: 0.0\n    test 185 test_2: 0.0\n    test 186 test_3: 0.0\n    test 187 test_4: 0.0\n    test 188 test_5: -0.0\n    test 189 test_6: 0.0\n\n    test 190 Accu: 5103.0\n\n    4 of 190 testKarneySigns.py tests (2.1%) FAILED, ALL KNOWN (pygeodesy 26.3.26 PyPy 7.3.17 Python 3.10.14 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 117.992 ms\nrunning /opt/local/bin/p....y3.10 -W default ~/PyGeodesy/test/testKtm.py\n# lazily imported pygeodesy.basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.DeprecationWarnings from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isint from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isLazy from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.issubclassof from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.iterNumpy2over from .iters by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.LazyImportError from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.karney by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.NN from .interns by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.normDMS from .dms by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.pairs from .streprs by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.printf from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.property_RO from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.typename from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.fstr from .streprs by testKtm.py line 10\n# lazily imported pygeodesy.hypot from .fmath by testKtm.py line 10\n# lazily imported pygeodesy.sincos2d from .utily by testKtm.py line 10\n# lazily imported pygeodesy.Ellipsoids from .ellipsoids by testKtm.py line 56\n# lazily imported pygeodesy.ExactTransverseMercator from .etm by testKtm.py line 56\n# lazily imported pygeodesy.ktm by testKtm.py line 56\n# lazily imported pygeodesy.KTransverseMercator from .ktm by testKtm.py line 56\n\n    testing testKtm.py 23.03.27 (module pygeodesy.ktm 25.08.31) isLazy=3\n# imported pygeodesy.basics into errors.py line 915\n\n    test 1 _TM: KTransverseMercator(ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), k0=0.9996, TMorder=7)\n    test 2 forward 0N (80.000, 0.000) -/-: 0.0, 8881585.815988, 0.0, 0.9996\n    test 3 reverse 0N (80.000, 0.000) -/-: 0.0\n    test 4 forward 3N (79.890, 8.374) -/-: 163544.38007, 8881136.361771, 8.245542, 0.999927\n    test 5 reverse 3N (79.890, 8.374) -/-: 1.7763568394002505e-15\n    test 6 forward 6N (79.562, 16.725) -/-: 333788.634116, 8880946.730424, 16.462884, 1.000962\n    test 7 reverse 6N (79.562, 16.725) -/-: 7.105427357601002e-15\n    test 8 forward 9N (79.015, 25.030) -/-: 516782.400098, 8884389.933155, 24.625783, 1.002865\n    test 9 reverse 9N (79.015, 25.030) -/-: 2.5618982671915014e-14\n    test 10 forward 12N (78.252, 33.266) -/-: 717349.637417, 8896761.249834, 32.712011, 1.005894\n    test 11 reverse 12N (78.252, 33.266) -/-: 5.1728291973635394e-14\n    test 12 forward 15N (77.274, 41.411) -/-: 938645.229361, 8924845.3123, 40.705476, 1.010384\n    test 13 reverse 15N (77.274, 41.411) -/-: 0.0\n    test 14 forward 18N (76.085, 49.443) -/-: 1181870.215451, 8976407.252949, 48.598167, 1.016714\n    test 15 reverse 18N (76.085, 49.443) -/-: 3.8263897345803626e-14\n    test 16 forward 21N (74.686, 57.339) -/-: 1446137.252018, 9059670.735504, 56.391495, 1.025259\n    test 17 reverse 21N (74.686, 57.339) -/-: 5.684341886080802e-14\n    test 18 forward 24N (73.084, 65.078) -/-: 1728450.251911, 9182823.938232, 64.096558, 1.036319\n    test 19 reverse 24N (73.084, 65.078) -/-: 1.4210854715202004e-14\n    test 20 forward 27N (71.281, 72.638) -/-: 2023752.790526, 9353559.771346, 71.732868, 1.050046\n    test 21 reverse 27N (71.281, 72.638) -/-: 1.4210854715202004e-14\n    test 22 forward 30N (69.282, 80.000) -/-: 2325015.074835, 9578621.128889, 79.325231, 1.066355\n    test 23 reverse 30N (69.282, 80.000) -/-: 1.4210854715202004e-14\n    test 24 forward 33N (67.094, 87.142) -/-: 2623368.28288, 9863301.12097, 86.898617, 1.084836\n    test 25 reverse 33N (67.094, 87.142) -/-: 0.0\n    test 26 forward 36N (64.721, 94.046) -/-: 2908348.733697, 10210857.598605, 94.471204, 1.104695\n    test 27 reverse 36N (64.721, 94.046) -/-: 0.0\n    test 28 forward 39N (62.172, 100.691) -/-: 3168362.707459, 10621853.317461, 102.04623, 1.124739\n    test 29 reverse 39N (62.172, 100.691) -/-: 7.105427357601002e-15\n    test 30 forward 42N (59.452, 107.061) -/-: 3391492.622467, 11093528.387239, 109.604086, 1.14345\n    test 31 reverse 42N (59.452, 107.061) -/-: 1.5888218580782548e-14\n    test 32 forward 45N (56.569, 113.137) -/-: 3566696.824822, 11619422.467571, 117.096854, 1.159166\n    test 33 reverse 45N (56.569, 113.137) -/-: 0.0\n    test 34 forward 48N (53.530, 118.903) -/-: 3685290.742854, 12189522.028618, 124.447841, 1.170375\n    test 35 reverse 48N (53.530, 118.903) -/-: 1.5888218580782548e-14\n    test 36 forward 51N (50.346, 124.343) -/-: 3742386.824274, 12791126.616764, 131.557863, 1.176031\n    test 37 reverse 51N (50.346, 124.343) -/-: 7.105427357601002e-15\n    test 38 forward 54N (47.023, 129.443) -/-: 3737846.053669, 13410380.03778, 138.317827, 1.175799\n    test 39 reverse 54N (47.023, 129.443) -/-: 2.929642751054232e-14\n    test 40 forward 57N (43.571, 134.187) -/-: 3676387.634221, 14034104.572541, 144.624552, 1.170121\n    test 41 reverse 57N (43.571, 134.187) -/-: 0.0\n    test 42 forward 60N (40.000, 138.564) -/-: 3566810.754496, 14651410.305646, 150.395289, 1.16007\n    test 43 reverse 60N (40.000, 138.564) -/-: 0.0\n    test 44 forward 63N (36.319, 142.561) -/-: 3420621.906486, 15254653.660248, 155.577129, 1.147079\n    test 45 reverse 63N (36.319, 142.561) -/-: 7.105427357601002e-15\n    test 46 forward 66N (32.539, 146.167) -/-: 3250522.133697, 15839614.666766, 160.149958, 1.132638\n    test 47 reverse 66N (32.539, 146.167) -/-: 7.105427357601002e-15\n    test 48 forward 69N (28.669, 149.373) -/-: 3069132.144368, 16405050.640186, 164.124094, 1.118063\n    test 49 reverse 69N (28.669, 149.373) -/-: 3.552713678800501e-15\n    test 50 forward 72N (24.721, 152.169) -/-: 2888128.173431, 16951919.948156, 167.534978, 1.104377\n    test 51 reverse 72N (24.721, 152.169) -/-: 1.0658141036401503e-14\n    test 52 forward 75N (20.706, 154.548) -/-: 2717773.256417, 17482549.021439, 170.437193, 1.09228\n    test 53 reverse 75N (20.706, 154.548) -/-: 1.7763568394002505e-14\n    test 54 forward 78N (16.633, 156.504) -/-: 2566730.586316, 17999918.486885, 172.899178, 1.082187\n    test 55 reverse 78N (16.633, 156.504) -/-: 1.7763568394002505e-14\n    test 56 forward 81N (12.515, 158.030) -/-: 2442031.891673, 18507145.758, 174.99917, 1.074303\n    test 57 reverse 81N (12.515, 158.030) -/-: 1.2434497875801753e-14\n    test 58 forward 84N (8.362, 159.124) -/-: 2349105.316925, 19007174.828239, 176.822266, 1.068689\n    test 59 reverse 84N (8.362, 159.124) -/-: 1.7763568394002505e-14\n    test 60 forward 87N (4.187, 159.781) -/-: 2291809.478825, 19502649.329559, 178.458273, 1.06534\n    test 61 reverse 87N (4.187, 159.781) -/-: 8.881784197001252e-15\n    test 62 forward 90N (0.000, 160.000) -/-: 2272454.379192, -19995929.886042, -180.0, 1.064227\n    test 63 reverse 90N (0.000, 160.000) -/-: 2.4016501336544057e-14\n    test 64 forward 93N (-4.187, 159.781) -/-: 2291809.478825, -19502649.329559, -178.458273, 1.06534\n    test 65 reverse 93N (-4.187, 159.781) -/-: 6.217248937900877e-15\n    test 66 forward 96N (-8.362, 159.124) -/-: 2349105.316925, -19007174.828239, -176.822266, 1.068689\n    test 67 reverse 96N (-8.362, 159.124) -/-: 1.5987211554602254e-14\n    test 68 forward 99N (-12.515, 158.030) -/-: 2442031.891673, -18507145.758, -174.99917, 1.074303\n    test 69 reverse 99N (-12.515, 158.030) -/-: 7.105427357601002e-15\n    test 70 forward 102N (-16.633, 156.504) -/-: 2566730.586316, -17999918.486885, -172.899178, 1.082187\n    test 71 reverse 102N (-16.633, 156.504) -/-: 2.842170943040401e-14\n    test 72 forward 105N (-20.706, 154.548) -/-: 2717773.256417, -17482549.021439, -170.437193, 1.09228\n    test 73 reverse 105N (-20.706, 154.548) -/-: 1.7763568394002505e-14\n    test 74 forward 108N (-24.721, 152.169) -/-: 2888128.173431, -16951919.948156, -167.534978, 1.104377\n    test 75 reverse 108N (-24.721, 152.169) -/-: 7.105427357601002e-15\n    test 76 forward 111N (-28.669, 149.373) -/-: 3069132.144368, -16405050.640186, -164.124094, 1.118063\n    test 77 reverse 111N (-28.669, 149.373) -/-: 7.105427357601002e-15\n    test 78 forward 114N (-32.539, 146.167) -/-: 3250522.133697, -15839614.666766, -160.149958, 1.132638\n    test 79 reverse 114N (-32.539, 146.167) -/-: 7.105427357601002e-15\n    test 80 forward 117N (-36.319, 142.561) -/-: 3420621.906486, -15254653.660248, -155.577129, 1.147079\n    test 81 reverse 117N (-36.319, 142.561) -/-: 7.105427357601002e-15\n    test 82 forward 120N (-40.000, 138.564) -/-: 3566810.754496, -14651410.305646, -150.395289, 1.16007\n    test 83 reverse 120N (-40.000, 138.564) -/-: 0.0\n    test 84 forward 123N (-43.571, 134.187) -/-: 3676387.634221, -14034104.572541, -144.624552, 1.170121\n    test 85 reverse 123N (-43.571, 134.187) -/-: 0.0\n    test 86 forward 126N (-47.023, 129.443) -/-: 3737846.053669, -13410380.03778, -138.317827, 1.175799\n    test 87 reverse 126N (-47.023, 129.443) -/-: 2.929642751054232e-14\n    test 88 forward 129N (-50.346, 124.343) -/-: 3742386.824274, -12791126.616764, -131.557863, 1.176031\n    test 89 reverse 129N (-50.346, 124.343) -/-: 7.105427357601002e-15\n    test 90 forward 132N (-53.530, 118.903) -/-: 3685290.742854, -12189522.028618, -124.447841, 1.170375\n    test 91 reverse 132N (-53.530, 118.903) -/-: 1.5888218580782548e-14\n    test 92 forward 135N (-56.569, 113.137) -/-: 3566696.824822, -11619422.467571, -117.096854, 1.159166\n    test 93 reverse 135N (-56.569, 113.137) -/-: 0.0\n    test 94 forward 138N (-59.452, 107.061) -/-: 3391492.622467, -11093528.387239, -109.604086, 1.14345\n    test 95 reverse 138N (-59.452, 107.061) -/-: 1.5888218580782548e-14\n    test 96 forward 141N (-62.172, 100.691) -/-: 3168362.707459, -10621853.317461, -102.04623, 1.124739\n    test 97 reverse 141N (-62.172, 100.691) -/-: 7.105427357601002e-15\n    test 98 forward 144N (-64.721, 94.046) -/-: 2908348.733697, -10210857.598605, -94.471204, 1.104695\n    test 99 reverse 144N (-64.721, 94.046) -/-: 0.0\n    test 100 forward 147N (-67.094, 87.142) -/-: 2623368.28288, -9863301.12097, -86.898617, 1.084836\n    test 101 reverse 147N (-67.094, 87.142) -/-: 0.0\n    test 102 forward 150N (-69.282, 80.000) -/-: 2325015.074835, -9578621.128889, -79.325231, 1.066355\n    test 103 reverse 150N (-69.282, 80.000) -/-: 2.842170943040401e-14\n    test 104 forward 153N (-71.281, 72.638) -/-: 2023752.790526, -9353559.771346, -71.732868, 1.050046\n    test 105 reverse 153N (-71.281, 72.638) -/-: 1.4210854715202004e-14\n    test 106 forward 156N (-73.084, 65.078) -/-: 1728450.251911, -9182823.938232, -64.096558, 1.036319\n    test 107 reverse 156N (-73.084, 65.078) -/-: 1.4210854715202004e-14\n    test 108 forward 159N (-74.686, 57.339) -/-: 1446137.252018, -9059670.735504, -56.391495, 1.025259\n    test 109 reverse 159N (-74.686, 57.339) -/-: 1.4210854715202004e-14\n    test 110 forward 162N (-76.085, 49.443) -/-: 1181870.215451, -8976407.252949, -48.598167, 1.016714\n    test 111 reverse 162N (-76.085, 49.443) -/-: 3.552713678800501e-14\n    test 112 forward 165N (-77.274, 41.411) -/-: 938645.229361, -8924845.3123, -40.705476, 1.010384\n    test 113 reverse 165N (-77.274, 41.411) -/-: 0.0\n    test 114 forward 168N (-78.252, 33.266) -/-: 717349.637417, -8896761.249834, -32.712011, 1.005894\n    test 115 reverse 168N (-78.252, 33.266) -/-: 2.5618982671915014e-14\n    test 116 forward 171N (-79.015, 25.030) -/-: 516782.400098, -8884389.933155, -24.625783, 1.002865\n    test 117 reverse 171N (-79.015, 25.030) -/-: 3.1776437161565096e-14\n    test 118 forward 174N (-79.562, 16.725) -/-: 333788.634116, -8880946.730424, -16.462884, 1.000962\n    test 119 reverse 174N (-79.562, 16.725) -/-: 1.0658141036401503e-14\n    test 120 forward 177N (-79.890, 8.374) -/-: 163544.38007, -8881136.361771, -8.245542, 0.999927\n    test 121 reverse 177N (-79.890, 8.374) -/-: 1.7763568394002505e-15\n    test 122 forward 180N (-80.000, 0.000) -/-: 0.0, -8881585.815988, 0.0, 0.9996\n    test 123 reverse 180N (-80.000, 0.000) -/-: 0.0\n    test 124 forward 183N (-79.890, -8.374) -/-: -163544.38007, -8881136.361771, 8.245542, 0.999927\n    test 125 reverse 183N (-79.890, -8.374) -/-: 1.7763568394002505e-15\n    test 126 forward 186N (-79.562, -16.725) -/-: -333788.634116, -8880946.730424, 16.462884, 1.000962\n    test 127 reverse 186N (-79.562, -16.725) -/-: 7.105427357601002e-15\n    test 128 forward 189N (-79.015, -25.030) -/-: -516782.400098, -8884389.933155, 24.625783, 1.002865\n    test 129 reverse 189N (-79.015, -25.030) -/-: 2.5618982671915014e-14\n    test 130 forward 192N (-78.252, -33.266) -/-: -717349.637417, -8896761.249834, 32.712011, 1.005894\n    test 131 reverse 192N (-78.252, -33.266) -/-: 5.1728291973635394e-14\n    test 132 forward 195N (-77.274, -41.411) -/-: -938645.229361, -8924845.3123, 40.705476, 1.010384\n    test 133 reverse 195N (-77.274, -41.411) -/-: 0.0\n    test 134 forward 198N (-76.085, -49.443) -/-: -1181870.215451, -8976407.252949, 48.598167, 1.016714\n    test 135 reverse 198N (-76.085, -49.443) -/-: 3.8263897345803626e-14\n    test 136 forward 201N (-74.686, -57.339) -/-: -1446137.252018, -9059670.735504, 56.391495, 1.025259\n    test 137 reverse 201N (-74.686, -57.339) -/-: 5.684341886080802e-14\n    test 138 forward 204N (-73.084, -65.078) -/-: -1728450.251911, -9182823.938232, 64.096558, 1.036319\n    test 139 reverse 204N (-73.084, -65.078) -/-: 1.4210854715202004e-14\n    test 140 forward 207N (-71.281, -72.638) -/-: -2023752.790526, -9353559.771346, 71.732868, 1.050046\n    test 141 reverse 207N (-71.281, -72.638) -/-: 1.4210854715202004e-14\n    test 142 forward 210N (-69.282, -80.000) -/-: -2325015.074835, -9578621.128889, 79.325231, 1.066355\n    test 143 reverse 210N (-69.282, -80.000) -/-: 1.4210854715202004e-14\n    test 144 forward 213N (-67.094, -87.142) -/-: -2623368.28288, -9863301.12097, 86.898617, 1.084836\n    test 145 reverse 213N (-67.094, -87.142) -/-: 0.0\n    test 146 forward 216N (-64.721, -94.046) -/-: -2908348.733697, -10210857.598605, 94.471204, 1.104695\n    test 147 reverse 216N (-64.721, -94.046) -/-: 0.0\n    test 148 forward 219N (-62.172, -100.691) -/-: -3168362.707459, -10621853.317461, 102.04623, 1.124739\n    test 149 reverse 219N (-62.172, -100.691) -/-: 7.105427357601002e-15\n    test 150 forward 222N (-59.452, -107.061) -/-: -3391492.622467, -11093528.387239, 109.604086, 1.14345\n    test 151 reverse 222N (-59.452, -107.061) -/-: 1.5888218580782548e-14\n    test 152 forward 225N (-56.569, -113.137) -/-: -3566696.824822, -11619422.467571, 117.096854, 1.159166\n    test 153 reverse 225N (-56.569, -113.137) -/-: 0.0\n    test 154 forward 228N (-53.530, -118.903) -/-: -3685290.742854, -12189522.028618, 124.447841, 1.170375\n    test 155 reverse 228N (-53.530, -118.903) -/-: 1.5888218580782548e-14\n    test 156 forward 231N (-50.346, -124.343) -/-: -3742386.824274, -12791126.616764, 131.557863, 1.176031\n    test 157 reverse 231N (-50.346, -124.343) -/-: 7.105427357601002e-15\n    test 158 forward 234N (-47.023, -129.443) -/-: -3737846.053669, -13410380.03778, 138.317827, 1.175799\n    test 159 reverse 234N (-47.023, -129.443) -/-: 2.929642751054232e-14\n    test 160 forward 237N (-43.571, -134.187) -/-: -3676387.634221, -14034104.572541, 144.624552, 1.170121\n    test 161 reverse 237N (-43.571, -134.187) -/-: 0.0\n    test 162 forward 240N (-40.000, -138.564) -/-: -3566810.754496, -14651410.305646, 150.395289, 1.16007\n    test 163 reverse 240N (-40.000, -138.564) -/-: 0.0\n    test 164 forward 243N (-36.319, -142.561) -/-: -3420621.906486, -15254653.660248, 155.577129, 1.147079\n    test 165 reverse 243N (-36.319, -142.561) -/-: 7.105427357601002e-15\n    test 166 forward 246N (-32.539, -146.167) -/-: -3250522.133697, -15839614.666766, 160.149958, 1.132638\n    test 167 reverse 246N (-32.539, -146.167) -/-: 7.105427357601002e-15\n    test 168 forward 249N (-28.669, -149.373) -/-: -3069132.144368, -16405050.640186, 164.124094, 1.118063\n    test 169 reverse 249N (-28.669, -149.373) -/-: 3.552713678800501e-15\n    test 170 forward 252N (-24.721, -152.169) -/-: -2888128.173431, -16951919.948156, 167.534978, 1.104377\n    test 171 reverse 252N (-24.721, -152.169) -/-: 1.0658141036401503e-14\n    test 172 forward 255N (-20.706, -154.548) -/-: -2717773.256417, -17482549.021439, 170.437193, 1.09228\n    test 173 reverse 255N (-20.706, -154.548) -/-: 1.7763568394002505e-14\n    test 174 forward 258N (-16.633, -156.504) -/-: -2566730.586316, -17999918.486885, 172.899178, 1.082187\n    test 175 reverse 258N (-16.633, -156.504) -/-: 1.7763568394002505e-14\n    test 176 forward 261N (-12.515, -158.030) -/-: -2442031.891673, -18507145.758, 174.99917, 1.074303\n    test 177 reverse 261N (-12.515, -158.030) -/-: 1.2434497875801753e-14\n    test 178 forward 264N (-8.362, -159.124) -/-: -2349105.316925, -19007174.828239, 176.822266, 1.068689\n    test 179 reverse 264N (-8.362, -159.124) -/-: 1.7763568394002505e-14\n    test 180 forward 267N (-4.187, -159.781) -/-: -2291809.478825, -19502649.329559, 178.458273, 1.06534\n    test 181 reverse 267N (-4.187, -159.781) -/-: 8.881784197001252e-15\n    test 182 forward 270N (0.000, -160.000) -/-: -2272454.379192, -19995929.886042, 180.0, 1.064227\n    test 183 reverse 270N (0.000, -160.000) -/-: 2.4016501336544057e-14\n    test 184 forward 273N (4.187, -159.781) -/-: -2291809.478825, 19502649.329559, -178.458273, 1.06534\n    test 185 reverse 273N (4.187, -159.781) -/-: 6.217248937900877e-15\n    test 186 forward 276N (8.362, -159.124) -/-: -2349105.316925, 19007174.828239, -176.822266, 1.068689\n    test 187 reverse 276N (8.362, -159.124) -/-: 1.5987211554602254e-14\n    test 188 forward 279N (12.515, -158.030) -/-: -2442031.891673, 18507145.758, -174.99917, 1.074303\n    test 189 reverse 279N (12.515, -158.030) -/-: 7.105427357601002e-15\n    test 190 forward 282N (16.633, -156.504) -/-: -2566730.586316, 17999918.486885, -172.899178, 1.082187\n    test 191 reverse 282N (16.633, -156.504) -/-: 2.842170943040401e-14\n    test 192 forward 285N (20.706, -154.548) -/-: -2717773.256417, 17482549.021439, -170.437193, 1.09228\n    test 193 reverse 285N (20.706, -154.548) -/-: 1.7763568394002505e-14\n    test 194 forward 288N (24.721, -152.169) -/-: -2888128.173431, 16951919.948156, -167.534978, 1.104377\n    test 195 reverse 288N (24.721, -152.169) -/-: 7.105427357601002e-15\n    test 196 forward 291N (28.669, -149.373) -/-: -3069132.144368, 16405050.640186, -164.124094, 1.118063\n    test 197 reverse 291N (28.669, -149.373) -/-: 7.105427357601002e-15\n    test 198 forward 294N (32.539, -146.167) -/-: -3250522.133697, 15839614.666766, -160.149958, 1.132638\n    test 199 reverse 294N (32.539, -146.167) -/-: 7.105427357601002e-15\n    test 200 forward 297N (36.319, -142.561) -/-: -3420621.906486, 15254653.660248, -155.577129, 1.147079\n    test 201 reverse 297N (36.319, -142.561) -/-: 7.105427357601002e-15\n    test 202 forward 300N (40.000, -138.564) -/-: -3566810.754496, 14651410.305646, -150.395289, 1.16007\n    test 203 reverse 300N (40.000, -138.564) -/-: 0.0\n    test 204 forward 303N (43.571, -134.187) -/-: -3676387.634221, 14034104.572541, -144.624552, 1.170121\n    test 205 reverse 303N (43.571, -134.187) -/-: 0.0\n    test 206 forward 306N (47.023, -129.443) -/-: -3737846.053669, 13410380.03778, -138.317827, 1.175799\n    test 207 reverse 306N (47.023, -129.443) -/-: 2.929642751054232e-14\n    test 208 forward 309N (50.346, -124.343) -/-: -3742386.824274, 12791126.616764, -131.557863, 1.176031\n    test 209 reverse 309N (50.346, -124.343) -/-: 7.105427357601002e-15\n    test 210 forward 312N (53.530, -118.903) -/-: -3685290.742854, 12189522.028618, -124.447841, 1.170375\n    test 211 reverse 312N (53.530, -118.903) -/-: 1.5888218580782548e-14\n    test 212 forward 315N (56.569, -113.137) -/-: -3566696.824822, 11619422.467571, -117.096854, 1.159166\n    test 213 reverse 315N (56.569, -113.137) -/-: 0.0\n    test 214 forward 318N (59.452, -107.061) -/-: -3391492.622467, 11093528.387239, -109.604086, 1.14345\n    test 215 reverse 318N (59.452, -107.061) -/-: 1.5888218580782548e-14\n    test 216 forward 321N (62.172, -100.691) -/-: -3168362.707459, 10621853.317461, -102.04623, 1.124739\n    test 217 reverse 321N (62.172, -100.691) -/-: 7.105427357601002e-15\n    test 218 forward 324N (64.721, -94.046) -/-: -2908348.733697, 10210857.598605, -94.471204, 1.104695\n    test 219 reverse 324N (64.721, -94.046) -/-: 0.0\n    test 220 forward 327N (67.094, -87.142) -/-: -2623368.28288, 9863301.12097, -86.898617, 1.084836\n    test 221 reverse 327N (67.094, -87.142) -/-: 0.0\n    test 222 forward 330N (69.282, -80.000) -/-: -2325015.074835, 9578621.128889, -79.325231, 1.066355\n    test 223 reverse 330N (69.282, -80.000) -/-: 2.842170943040401e-14\n    test 224 forward 333N (71.281, -72.638) -/-: -2023752.790526, 9353559.771346, -71.732868, 1.050046\n    test 225 reverse 333N (71.281, -72.638) -/-: 1.4210854715202004e-14\n    test 226 forward 336N (73.084, -65.078) -/-: -1728450.251911, 9182823.938232, -64.096558, 1.036319\n    test 227 reverse 336N (73.084, -65.078) -/-: 1.4210854715202004e-14\n    test 228 forward 339N (74.686, -57.339) -/-: -1446137.252018, 9059670.735504, -56.391495, 1.025259\n    test 229 reverse 339N (74.686, -57.339) -/-: 1.4210854715202004e-14\n    test 230 forward 342N (76.085, -49.443) -/-: -1181870.215451, 8976407.252949, -48.598167, 1.016714\n    test 231 reverse 342N (76.085, -49.443) -/-: 3.552713678800501e-14\n    test 232 forward 345N (77.274, -41.411) -/-: -938645.229361, 8924845.3123, -40.705476, 1.010384\n    test 233 reverse 345N (77.274, -41.411) -/-: 0.0\n    test 234 forward 348N (78.252, -33.266) -/-: -717349.637417, 8896761.249834, -32.712011, 1.005894\n    test 235 reverse 348N (78.252, -33.266) -/-: 2.5618982671915014e-14\n    test 236 forward 351N (79.015, -25.030) -/-: -516782.400098, 8884389.933155, -24.625783, 1.002865\n    test 237 reverse 351N (79.015, -25.030) -/-: 3.1776437161565096e-14\n    test 238 forward 354N (79.562, -16.725) -/-: -333788.634116, 8880946.730424, -16.462884, 1.000962\n    test 239 reverse 354N (79.562, -16.725) -/-: 1.0658141036401503e-14\n    test 240 forward 357N (79.890, -8.374) -/-: -163544.38007, 8881136.361771, -8.245542, 0.999927\n    test 241 reverse 357N (79.890, -8.374) -/-: 1.7763568394002505e-15\n    test 242 forward 360N (80.000, 0.000) -/-: 0.0, 8881585.815988, 0.0, 0.9996\n    test 243 reverse 360N (80.000, 0.000) -/-: 0.0\n    test 244 max: 5.684341886080802e-14  FAILED, KNOWN, expected 6e-14\n\n    test 245 forward: 6208422.5374, 5452954.287187, 41.077484, 1.511911\n    test 246 reverse: 30.244228, 60.169664, 41.479185, 1.510346\n\n    test 247 _TM: KTransverseMercator(ellipsoid=Ellipsoid(name='Sphere', a=6371008.771415, f=0, f_=0, b=6371008.771415), k0=0.9996, TMorder=4)\n    test 248 forward 0N (80.000, 0.000) -/-: 0.0, 8892048.136219, 0.0, 0.9996\n    test 249 reverse 0N (80.000, 0.000) -/-: 0.0\n    test 250 forward 3N (79.890, 8.374) -/-: 162830.781916, 8891598.152508, 8.245541, 0.999927\n    test 251 reverse 3N (79.890, 8.374) -/-: 3.552713678800501e-15\n    test 252 forward 6N (79.562, 16.725) -/-: 332334.438121, 8891401.702739, 16.462875, 1.000961\n    test 253 reverse 6N (79.562, 16.725) -/-: 3.552713678800501e-15\n    test 254 forward 9N (79.015, 25.030) -/-: 514536.969405, 8894816.626946, 24.625748, 1.002864\n    test 255 reverse 9N (79.015, 25.030) -/-: 3.552713678800501e-15\n    test 256 forward 12N (78.252, 33.266) -/-: 714245.109628, 8907114.580812, 32.711919, 1.005893\n    test 257 reverse 12N (78.252, 33.266) -/-: 1.4210854715202004e-14\n    test 258 forward 15N (77.274, 41.411) -/-: 934605.427053, 8935050.398758, 40.705275, 1.010384\n    test 259 reverse 15N (77.274, 41.411) -/-: 1.4210854715202004e-14\n    test 260 forward 18N (76.085, 49.443) -/-: 1176821.393989, 8986356.098856, 48.597784, 1.016715\n    test 261 reverse 18N (76.085, 49.443) -/-: 7.105427357601002e-15\n    test 262 forward 21N (74.686, 57.339) -/-: 1440020.023752, 9069222.197918, 56.390849, 1.025263\n    test 263 reverse 21N (74.686, 57.339) -/-: 2.0097183471152322e-14\n    test 264 forward 24N (73.084, 65.078) -/-: 1721232.03303, 9191807.409386, 64.095597, 1.036332\n    test 265 reverse 24N (73.084, 65.078) -/-: 4.4938668397781776e-14\n    test 266 forward 27N (71.281, 72.638) -/-: 2015439.94304, 9361783.139474, 71.731644, 1.050076\n    test 267 reverse 27N (71.281, 72.638) -/-: 0.0\n    test 268 forward 30N (69.282, 80.000) -/-: 2315663.380439, 9585883.63353, 79.324018, 1.066413\n    test 269 reverse 30N (69.282, 80.000) -/-: 1.4210854715202004e-14\n    test 270 forward 33N (67.094, 87.142) -/-: 2613089.50746, 9869411.258858, 86.898056, 1.084934\n    test 271 reverse 33N (67.094, 87.142) -/-: 1.4210854715202004e-14\n    test 272 forward 36N (64.721, 94.046) -/-: 2897310.302591, 10215654.794479, 94.472414, 1.104843\n    test 273 reverse 36N (64.721, 94.046) -/-: 4.263256414560601e-14\n    test 274 forward 39N (62.172, 100.691) -/-: 3156777.9732, 10625229.653451, 102.050793, 1.12494\n    test 275 reverse 39N (62.172, 100.691) -/-: 7.105427357601002e-15\n    test 276 forward 42N (59.452, 107.061) -/-: 3379601.994821, 11095444.501021, 109.613799, 1.143688\n    test 277 reverse 42N (59.452, 107.061) -/-: 1.5888218580782548e-14\n    test 278 forward 45N (56.569, 113.137) -/-: 3554744.82183, 11619912.294696, 117.113212, 1.159405\n    test 279 reverse 45N (56.569, 113.137) -/-: 0.0\n    test 280 forward 48N (53.530, 118.903) -/-: 3673507.549162, 12188686.186502, 124.471401, 1.170561\n    test 281 reverse 48N (53.530, 118.903) -/-: 1.4210854715202004e-14\n    test 282 forward 51N (50.346, 124.343) -/-: 3730980.59573, 12789121.454112, 131.587794, 1.176106\n    test 283 reverse 51N (50.346, 124.343) -/-: 1.4210854715202004e-14\n    test 284 forward 54N (47.023, 129.443) -/-: 3727003.760242, 13407411.821957, 138.351947, 1.175719\n    test 285 reverse 54N (47.023, 129.443) -/-: 7.105427357601002e-15\n    test 286 forward 57N (43.571, 134.187) -/-: 3666275.084648, 14030431.844036, 144.659906, 1.16987\n    test 287 reverse 57N (43.571, 134.187) -/-: 0.0\n    test 288 forward 60N (40.000, 138.564) -/-: 3557564.445775, 14647347.719581, 150.428973, 1.159665\n    test 289 reverse 60N (40.000, 138.564) -/-: 7.105427357601002e-15\n    test 290 forward 63N (36.319, 142.561) -/-: 3412334.48396, 15250567.642625, 155.606964, 1.146559\n    test 291 reverse 63N (36.319, 142.561) -/-: 7.105427357601002e-15\n    test 292 forward 66N (32.539, 146.167) -/-: 3243229.892204, 15835907.12812, 160.174784, 1.132049\n    test 293 reverse 66N (32.539, 146.167) -/-: 3.1776437161565096e-14\n    test 294 forward 69N (28.669, 149.373) -/-: 3062811.744735, 16402134.803105, 164.143685, 1.117448\n    test 295 reverse 69N (28.669, 149.373) -/-: 3.552713678800501e-15\n    test 296 forward 72N (24.721, 152.169) -/-: 2882703.816659, 16950195.447611, 167.549757, 1.103767\n    test 297 reverse 72N (24.721, 152.169) -/-: 0.0\n    test 298 forward 75N (20.706, 154.548) -/-: 2713130.658999, 17482381.525728, 170.447906, 1.091693\n    test 299 reverse 75N (20.706, 154.548) -/-: 1.0658141036401503e-14\n    test 300 forward 78N (16.633, 156.504) -/-: 2562732.651149, 18001625.534999, 172.906642, 1.081633\n    test 301 reverse 78N (16.633, 156.504) -/-: 7.105427357601002e-15\n    test 302 forward 81N (12.515, 158.030) -/-: 2438532.075646, 18510987.984533, 175.004113, 1.07378\n    test 303 reverse 81N (12.515, 158.030) -/-: 3.552713678800501e-15\n    test 304 forward 84N (8.362, 159.124) -/-: 2345956.628332, 19013350.872509, 176.82525, 1.068192\n    test 305 reverse 84N (8.362, 159.124) -/-: 8.881784197001252e-15\n    test 306 forward 87N (4.187, 159.781) -/-: 2288868.720832, 19511292.939628, 178.459673, 1.064859\n    test 307 reverse 87N (4.187, 159.781) -/-: 1.9539925233402755e-14\n    test 308 forward 90N (0.000, 160.000) -/-: 2269582.383311, -20007108.306493, -180.0, 1.063752\n    test 309 reverse 90N (0.000, 160.000) -/-: 0.0\n    test 310 forward 93N (-4.187, 159.781) -/-: 2288868.720832, -19511292.939628, -178.459673, 1.064859\n    test 311 reverse 93N (-4.187, 159.781) -/-: 3.019806626980426e-14\n    test 312 forward 96N (-8.362, 159.124) -/-: 2345956.628332, -19013350.872509, -176.82525, 1.068192\n    test 313 reverse 96N (-8.362, 159.124) -/-: 1.0658141036401503e-14\n    test 314 forward 99N (-12.515, 158.030) -/-: 2438532.075646, -18510987.984533, -175.004113, 1.07378\n    test 315 reverse 99N (-12.515, 158.030) -/-: 8.881784197001252e-15\n    test 316 forward 102N (-16.633, 156.504) -/-: 2562732.651149, -18001625.534999, -172.906642, 1.081633\n    test 317 reverse 102N (-16.633, 156.504) -/-: 0.0\n    test 318 forward 105N (-20.706, 154.548) -/-: 2713130.658999, -17482381.525728, -170.447906, 1.091693\n    test 319 reverse 105N (-20.706, 154.548) -/-: 1.0658141036401503e-14\n    test 320 forward 108N (-24.721, 152.169) -/-: 2882703.816659, -16950195.447611, -167.549757, 1.103767\n    test 321 reverse 108N (-24.721, 152.169) -/-: 3.552713678800501e-15\n    test 322 forward 111N (-28.669, 149.373) -/-: 3062811.744735, -16402134.803105, -164.143685, 1.117448\n    test 323 reverse 111N (-28.669, 149.373) -/-: 1.4210854715202004e-14\n    test 324 forward 114N (-32.539, 146.167) -/-: 3243229.892204, -15835907.12812, -160.174784, 1.132049\n    test 325 reverse 114N (-32.539, 146.167) -/-: 3.1776437161565096e-14\n    test 326 forward 117N (-36.319, 142.561) -/-: 3412334.48396, -15250567.642625, -155.606964, 1.146559\n    test 327 reverse 117N (-36.319, 142.561) -/-: 7.105427357601002e-15\n    test 328 forward 120N (-40.000, 138.564) -/-: 3557564.445775, -14647347.719581, -150.428973, 1.159665\n    test 329 reverse 120N (-40.000, 138.564) -/-: 0.0\n    test 330 forward 123N (-43.571, 134.187) -/-: 3666275.084648, -14030431.844036, -144.659906, 1.16987\n    test 331 reverse 123N (-43.571, 134.187) -/-: 0.0\n    test 332 forward 126N (-47.023, 129.443) -/-: 3727003.760242, -13407411.821957, -138.351947, 1.175719\n    test 333 reverse 126N (-47.023, 129.443) -/-: 7.105427357601002e-15\n    test 334 forward 129N (-50.346, 124.343) -/-: 3730980.59573, -12789121.454112, -131.587794, 1.176106\n    test 335 reverse 129N (-50.346, 124.343) -/-: 1.4210854715202004e-14\n    test 336 forward 132N (-53.530, 118.903) -/-: 3673507.549162, -12188686.186502, -124.471401, 1.170561\n    test 337 reverse 132N (-53.530, 118.903) -/-: 1.4210854715202004e-14\n    test 338 forward 135N (-56.569, 113.137) -/-: 3554744.82183, -11619912.294696, -117.113212, 1.159405\n    test 339 reverse 135N (-56.569, 113.137) -/-: 0.0\n    test 340 forward 138N (-59.452, 107.061) -/-: 3379601.994821, -11095444.501021, -109.613799, 1.143688\n    test 341 reverse 138N (-59.452, 107.061) -/-: 1.5888218580782548e-14\n    test 342 forward 141N (-62.172, 100.691) -/-: 3156777.9732, -10625229.653451, -102.050793, 1.12494\n    test 343 reverse 141N (-62.172, 100.691) -/-: 7.105427357601002e-15\n    test 344 forward 144N (-64.721, 94.046) -/-: 2897310.302591, -10215654.794479, -94.472414, 1.104843\n    test 345 reverse 144N (-64.721, 94.046) -/-: 4.263256414560601e-14\n    test 346 forward 147N (-67.094, 87.142) -/-: 2613089.50746, -9869411.258858, -86.898056, 1.084934\n    test 347 reverse 147N (-67.094, 87.142) -/-: 1.4210854715202004e-14\n    test 348 forward 150N (-69.282, 80.000) -/-: 2315663.380439, -9585883.63353, -79.324018, 1.066413\n    test 349 reverse 150N (-69.282, 80.000) -/-: 2.842170943040401e-14\n    test 350 forward 153N (-71.281, 72.638) -/-: 2015439.94304, -9361783.139474, -71.731644, 1.050076\n    test 351 reverse 153N (-71.281, 72.638) -/-: 0.0\n    test 352 forward 156N (-73.084, 65.078) -/-: 1721232.03303, -9191807.409386, -64.095597, 1.036332\n    test 353 reverse 156N (-73.084, 65.078) -/-: 4.4938668397781776e-14\n    test 354 forward 159N (-74.686, 57.339) -/-: 1440020.023752, -9069222.197918, -56.390849, 1.025263\n    test 355 reverse 159N (-74.686, 57.339) -/-: 7.105427357601002e-15\n    test 356 forward 162N (-76.085, 49.443) -/-: 1176821.393989, -8986356.098856, -48.597784, 1.016715\n    test 357 reverse 162N (-76.085, 49.443) -/-: 7.105427357601002e-15\n    test 358 forward 165N (-77.274, 41.411) -/-: 934605.427053, -8935050.398758, -40.705275, 1.010384\n    test 359 reverse 165N (-77.274, 41.411) -/-: 1.4210854715202004e-14\n    test 360 forward 168N (-78.252, 33.266) -/-: 714245.109628, -8907114.580812, -32.711919, 1.005893\n    test 361 reverse 168N (-78.252, 33.266) -/-: 1.4210854715202004e-14\n    test 362 forward 171N (-79.015, 25.030) -/-: 514536.969405, -8894816.626946, -24.625748, 1.002864\n    test 363 reverse 171N (-79.015, 25.030) -/-: 3.552713678800501e-15\n    test 364 forward 174N (-79.562, 16.725) -/-: 332334.438121, -8891401.702739, -16.462875, 1.000961\n    test 365 reverse 174N (-79.562, 16.725) -/-: 3.552713678800501e-15\n    test 366 forward 177N (-79.890, 8.374) -/-: 162830.781916, -8891598.152508, -8.245541, 0.999927\n    test 367 reverse 177N (-79.890, 8.374) -/-: 1.7763568394002505e-15\n    test 368 forward 180N (-80.000, 0.000) -/-: 0.0, -8892048.136219, 0.0, 0.9996\n    test 369 reverse 180N (-80.000, 0.000) -/-: 0.0\n    test 370 forward 183N (-79.890, -8.374) -/-: -162830.781916, -8891598.152508, 8.245541, 0.999927\n    test 371 reverse 183N (-79.890, -8.374) -/-: 3.552713678800501e-15\n    test 372 forward 186N (-79.562, -16.725) -/-: -332334.438121, -8891401.702739, 16.462875, 1.000961\n    test 373 reverse 186N (-79.562, -16.725) -/-: 3.552713678800501e-15\n    test 374 forward 189N (-79.015, -25.030) -/-: -514536.969405, -8894816.626946, 24.625748, 1.002864\n    test 375 reverse 189N (-79.015, -25.030) -/-: 3.552713678800501e-15\n    test 376 forward 192N (-78.252, -33.266) -/-: -714245.109628, -8907114.580812, 32.711919, 1.005893\n    test 377 reverse 192N (-78.252, -33.266) -/-: 1.4210854715202004e-14\n    test 378 forward 195N (-77.274, -41.411) -/-: -934605.427053, -8935050.398758, 40.705275, 1.010384\n    test 379 reverse 195N (-77.274, -41.411) -/-: 1.4210854715202004e-14\n    test 380 forward 198N (-76.085, -49.443) -/-: -1176821.393989, -8986356.098856, 48.597784, 1.016715\n    test 381 reverse 198N (-76.085, -49.443) -/-: 7.105427357601002e-15\n    test 382 forward 201N (-74.686, -57.339) -/-: -1440020.023752, -9069222.197918, 56.390849, 1.025263\n    test 383 reverse 201N (-74.686, -57.339) -/-: 2.0097183471152322e-14\n    test 384 forward 204N (-73.084, -65.078) -/-: -1721232.03303, -9191807.409386, 64.095597, 1.036332\n    test 385 reverse 204N (-73.084, -65.078) -/-: 4.4938668397781776e-14\n    test 386 forward 207N (-71.281, -72.638) -/-: -2015439.94304, -9361783.139474, 71.731644, 1.050076\n    test 387 reverse 207N (-71.281, -72.638) -/-: 0.0\n    test 388 forward 210N (-69.282, -80.000) -/-: -2315663.380439, -9585883.63353, 79.324018, 1.066413\n    test 389 reverse 210N (-69.282, -80.000) -/-: 1.4210854715202004e-14\n    test 390 forward 213N (-67.094, -87.142) -/-: -2613089.50746, -9869411.258858, 86.898056, 1.084934\n    test 391 reverse 213N (-67.094, -87.142) -/-: 1.4210854715202004e-14\n    test 392 forward 216N (-64.721, -94.046) -/-: -2897310.302591, -10215654.794479, 94.472414, 1.104843\n    test 393 reverse 216N (-64.721, -94.046) -/-: 4.263256414560601e-14\n    test 394 forward 219N (-62.172, -100.691) -/-: -3156777.9732, -10625229.653451, 102.050793, 1.12494\n    test 395 reverse 219N (-62.172, -100.691) -/-: 7.105427357601002e-15\n    test 396 forward 222N (-59.452, -107.061) -/-: -3379601.994821, -11095444.501021, 109.613799, 1.143688\n    test 397 reverse 222N (-59.452, -107.061) -/-: 1.5888218580782548e-14\n    test 398 forward 225N (-56.569, -113.137) -/-: -3554744.82183, -11619912.294696, 117.113212, 1.159405\n    test 399 reverse 225N (-56.569, -113.137) -/-: 0.0\n    test 400 forward 228N (-53.530, -118.903) -/-: -3673507.549162, -12188686.186502, 124.471401, 1.170561\n    test 401 reverse 228N (-53.530, -118.903) -/-: 1.4210854715202004e-14\n    test 402 forward 231N (-50.346, -124.343) -/-: -3730980.59573, -12789121.454112, 131.587794, 1.176106\n    test 403 reverse 231N (-50.346, -124.343) -/-: 1.4210854715202004e-14\n    test 404 forward 234N (-47.023, -129.443) -/-: -3727003.760242, -13407411.821957, 138.351947, 1.175719\n    test 405 reverse 234N (-47.023, -129.443) -/-: 7.105427357601002e-15\n    test 406 forward 237N (-43.571, -134.187) -/-: -3666275.084648, -14030431.844036, 144.659906, 1.16987\n    test 407 reverse 237N (-43.571, -134.187) -/-: 0.0\n    test 408 forward 240N (-40.000, -138.564) -/-: -3557564.445775, -14647347.719581, 150.428973, 1.159665\n    test 409 reverse 240N (-40.000, -138.564) -/-: 7.105427357601002e-15\n    test 410 forward 243N (-36.319, -142.561) -/-: -3412334.48396, -15250567.642625, 155.606964, 1.146559\n    test 411 reverse 243N (-36.319, -142.561) -/-: 7.105427357601002e-15\n    test 412 forward 246N (-32.539, -146.167) -/-: -3243229.892204, -15835907.12812, 160.174784, 1.132049\n    test 413 reverse 246N (-32.539, -146.167) -/-: 3.1776437161565096e-14\n    test 414 forward 249N (-28.669, -149.373) -/-: -3062811.744735, -16402134.803105, 164.143685, 1.117448\n    test 415 reverse 249N (-28.669, -149.373) -/-: 3.552713678800501e-15\n    test 416 forward 252N (-24.721, -152.169) -/-: -2882703.816659, -16950195.447611, 167.549757, 1.103767\n    test 417 reverse 252N (-24.721, -152.169) -/-: 0.0\n    test 418 forward 255N (-20.706, -154.548) -/-: -2713130.658999, -17482381.525728, 170.447906, 1.091693\n    test 419 reverse 255N (-20.706, -154.548) -/-: 1.0658141036401503e-14\n    test 420 forward 258N (-16.633, -156.504) -/-: -2562732.651149, -18001625.534999, 172.906642, 1.081633\n    test 421 reverse 258N (-16.633, -156.504) -/-: 7.105427357601002e-15\n    test 422 forward 261N (-12.515, -158.030) -/-: -2438532.075646, -18510987.984533, 175.004113, 1.07378\n    test 423 reverse 261N (-12.515, -158.030) -/-: 3.552713678800501e-15\n    test 424 forward 264N (-8.362, -159.124) -/-: -2345956.628332, -19013350.872509, 176.82525, 1.068192\n    test 425 reverse 264N (-8.362, -159.124) -/-: 8.881784197001252e-15\n    test 426 forward 267N (-4.187, -159.781) -/-: -2288868.720832, -19511292.939628, 178.459673, 1.064859\n    test 427 reverse 267N (-4.187, -159.781) -/-: 1.9539925233402755e-14\n    test 428 forward 270N (0.000, -160.000) -/-: -2269582.383311, -20007108.306493, 180.0, 1.063752\n    test 429 reverse 270N (0.000, -160.000) -/-: 0.0\n    test 430 forward 273N (4.187, -159.781) -/-: -2288868.720832, 19511292.939628, -178.459673, 1.064859\n    test 431 reverse 273N (4.187, -159.781) -/-: 3.019806626980426e-14\n    test 432 forward 276N (8.362, -159.124) -/-: -2345956.628332, 19013350.872509, -176.82525, 1.068192\n    test 433 reverse 276N (8.362, -159.124) -/-: 1.0658141036401503e-14\n    test 434 forward 279N (12.515, -158.030) -/-: -2438532.075646, 18510987.984533, -175.004113, 1.07378\n    test 435 reverse 279N (12.515, -158.030) -/-: 8.881784197001252e-15\n    test 436 forward 282N (16.633, -156.504) -/-: -2562732.651149, 18001625.534999, -172.906642, 1.081633\n    test 437 reverse 282N (16.633, -156.504) -/-: 0.0\n    test 438 forward 285N (20.706, -154.548) -/-: -2713130.658999, 17482381.525728, -170.447906, 1.091693\n    test 439 reverse 285N (20.706, -154.548) -/-: 1.0658141036401503e-14\n    test 440 forward 288N (24.721, -152.169) -/-: -2882703.816659, 16950195.447611, -167.549757, 1.103767\n    test 441 reverse 288N (24.721, -152.169) -/-: 3.552713678800501e-15\n    test 442 forward 291N (28.669, -149.373) -/-: -3062811.744735, 16402134.803105, -164.143685, 1.117448\n    test 443 reverse 291N (28.669, -149.373) -/-: 1.4210854715202004e-14\n    test 444 forward 294N (32.539, -146.167) -/-: -3243229.892204, 15835907.12812, -160.174784, 1.132049\n    test 445 reverse 294N (32.539, -146.167) -/-: 3.1776437161565096e-14\n    test 446 forward 297N (36.319, -142.561) -/-: -3412334.48396, 15250567.642625, -155.606964, 1.146559\n    test 447 reverse 297N (36.319, -142.561) -/-: 7.105427357601002e-15\n    test 448 forward 300N (40.000, -138.564) -/-: -3557564.445775, 14647347.719581, -150.428973, 1.159665\n    test 449 reverse 300N (40.000, -138.564) -/-: 0.0\n    test 450 forward 303N (43.571, -134.187) -/-: -3666275.084648, 14030431.844036, -144.659906, 1.16987\n    test 451 reverse 303N (43.571, -134.187) -/-: 0.0\n    test 452 forward 306N (47.023, -129.443) -/-: -3727003.760242, 13407411.821957, -138.351947, 1.175719\n    test 453 reverse 306N (47.023, -129.443) -/-: 7.105427357601002e-15\n    test 454 forward 309N (50.346, -124.343) -/-: -3730980.59573, 12789121.454112, -131.587794, 1.176106\n    test 455 reverse 309N (50.346, -124.343) -/-: 1.4210854715202004e-14\n    test 456 forward 312N (53.530, -118.903) -/-: -3673507.549162, 12188686.186502, -124.471401, 1.170561\n    test 457 reverse 312N (53.530, -118.903) -/-: 1.4210854715202004e-14\n    test 458 forward 315N (56.569, -113.137) -/-: -3554744.82183, 11619912.294696, -117.113212, 1.159405\n    test 459 reverse 315N (56.569, -113.137) -/-: 0.0\n    test 460 forward 318N (59.452, -107.061) -/-: -3379601.994821, 11095444.501021, -109.613799, 1.143688\n    test 461 reverse 318N (59.452, -107.061) -/-: 1.5888218580782548e-14\n    test 462 forward 321N (62.172, -100.691) -/-: -3156777.9732, 10625229.653451, -102.050793, 1.12494\n    test 463 reverse 321N (62.172, -100.691) -/-: 7.105427357601002e-15\n    test 464 forward 324N (64.721, -94.046) -/-: -2897310.302591, 10215654.794479, -94.472414, 1.104843\n    test 465 reverse 324N (64.721, -94.046) -/-: 4.263256414560601e-14\n    test 466 forward 327N (67.094, -87.142) -/-: -2613089.50746, 9869411.258858, -86.898056, 1.084934\n    test 467 reverse 327N (67.094, -87.142) -/-: 1.4210854715202004e-14\n    test 468 forward 330N (69.282, -80.000) -/-: -2315663.380439, 9585883.63353, -79.324018, 1.066413\n    test 469 reverse 330N (69.282, -80.000) -/-: 2.842170943040401e-14\n    test 470 forward 333N (71.281, -72.638) -/-: -2015439.94304, 9361783.139474, -71.731644, 1.050076\n    test 471 reverse 333N (71.281, -72.638) -/-: 0.0\n    test 472 forward 336N (73.084, -65.078) -/-: -1721232.03303, 9191807.409386, -64.095597, 1.036332\n    test 473 reverse 336N (73.084, -65.078) -/-: 4.4938668397781776e-14\n    test 474 forward 339N (74.686, -57.339) -/-: -1440020.023752, 9069222.197918, -56.390849, 1.025263\n    test 475 reverse 339N (74.686, -57.339) -/-: 7.105427357601002e-15\n    test 476 forward 342N (76.085, -49.443) -/-: -1176821.393989, 8986356.098856, -48.597784, 1.016715\n    test 477 reverse 342N (76.085, -49.443) -/-: 7.105427357601002e-15\n    test 478 forward 345N (77.274, -41.411) -/-: -934605.427053, 8935050.398758, -40.705275, 1.010384\n    test 479 reverse 345N (77.274, -41.411) -/-: 1.4210854715202004e-14\n    test 480 forward 348N (78.252, -33.266) -/-: -714245.109628, 8907114.580812, -32.711919, 1.005893\n    test 481 reverse 348N (78.252, -33.266) -/-: 1.4210854715202004e-14\n    test 482 forward 351N (79.015, -25.030) -/-: -514536.969405, 8894816.626946, -24.625748, 1.002864\n    test 483 reverse 351N (79.015, -25.030) -/-: 3.552713678800501e-15\n    test 484 forward 354N (79.562, -16.725) -/-: -332334.438121, 8891401.702739, -16.462875, 1.000961\n    test 485 reverse 354N (79.562, -16.725) -/-: 3.552713678800501e-15\n    test 486 forward 357N (79.890, -8.374) -/-: -162830.781916, 8891598.152508, -8.245541, 0.999927\n    test 487 reverse 357N (79.890, -8.374) -/-: 1.7763568394002505e-15\n    test 488 forward 360N (80.000, 0.000) -/-: 0.0, 8892048.136219, 0.0, 0.9996\n    test 489 reverse 360N (80.000, 0.000) -/-: 0.0\n    test 490 max: 4.4938668397781776e-14  FAILED, KNOWN, expected 5e-14\n\n    test 491 forward: 6196225.831883, 5458228.732328, 40.893395, 1.511253\n    test 492 reverse: 30.172556, 60.208316, 41.279729, 1.511925\n\n    test 493 _TM: ExactTransverseMercator(datum='WGS84', extendp=False, k0=0.9996, lon0=0.0)\n# lazily imported pygeodesy.elliptic by etm.py line 354\n    test 494 forward 0N (80.000, 0.000) 3/3: 0.0, 8881585.815988, 0.0, 0.9996\n    test 495 reverse 0N (80.000, 0.000) 3/3: 0.0\n    test 496 forward 3N (79.890, 8.374) 3/4: 163544.38007, 8881136.361771, 8.245542, 0.999927\n    test 497 reverse 3N (79.890, 8.374) 3/3: 5.123796534383003e-14\n    test 498 forward 6N (79.562, 16.725) 3/4: 333788.634116, 8880946.730424, 16.462884, 1.000962\n    test 499 reverse 6N (79.562, 16.725) 3/3: 3.1776437161565096e-14\n    test 500 forward 9N (79.015, 25.030) 3/4: 516782.400098, 8884389.933155, 24.625783, 1.002865\n    test 501 reverse 9N (79.015, 25.030) 3/3: 3.1776437161565096e-14\n    test 502 forward 12N (78.252, 33.266) 3/4: 717349.637417, 8896761.249834, 32.712011, 1.005894\n    test 503 reverse 12N (78.252, 33.266) 3/3: 2.5618982671915014e-14\n    test 504 forward 15N (77.274, 41.411) 3/4: 938645.229361, 8924845.3123, 40.705476, 1.010384\n    test 505 reverse 15N (77.274, 41.411) 3/3: 3.1776437161565096e-14\n    test 506 forward 18N (76.085, 49.443) 3/4: 1181870.215451, 8976407.252949, 48.598167, 1.016714\n    test 507 reverse 18N (76.085, 49.443) 3/3: 7.105427357601002e-15\n    test 508 forward 21N (74.686, 57.339) 3/4: 1446137.252018, 9059670.735504, 56.391495, 1.025259\n    test 509 reverse 21N (74.686, 57.339) 3/3: 1.0048591735576161e-13  FAILED, KNOWN, expected 9e-14\n    test 510 forward 24N (73.084, 65.078) 3/4: 1728450.251911, 9182823.938232, 64.096558, 1.036319\n    test 511 reverse 24N (73.084, 65.078) 3/3: 2.0097183471152322e-14\n    test 512 forward 27N (71.281, 72.638) 3/4: 2023752.790526, 9353559.771346, 71.732868, 1.050046\n    test 513 reverse 27N (71.281, 72.638) 3/3: 0.0\n    test 514 forward 30N (69.282, 80.000) 3/4: 2325015.074835, 9578621.128889, 79.325231, 1.066355\n    test 515 reverse 30N (69.282, 80.000) 3/4: 1.4210854715202004e-14\n    test 516 forward 33N (67.094, 87.142) 3/4: 2623368.28288, 9863301.12097, 86.898617, 1.084836\n    test 517 reverse 33N (67.094, 87.142) 3/4: 0.0\n    test 518 forward 36N (64.721, 94.046) 3/4: 2908348.733697, 10210857.598605, 94.471204, 1.104695\n    test 519 reverse 36N (64.721, 94.046) 3/4: 0.0\n    test 520 forward 39N (62.172, 100.691) 3/4: 3168362.707459, 10621853.317461, 102.04623, 1.124739\n    test 521 reverse 39N (62.172, 100.691) 3/4: 2.929642751054232e-14\n    test 522 forward 42N (59.452, 107.061) 3/4: 3391492.622467, 11093528.387239, 109.604086, 1.14345\n    test 523 reverse 42N (59.452, 107.061) 3/4: 1.5888218580782548e-14\n    test 524 forward 45N (56.569, 113.137) 3/4: 3566696.824822, 11619422.467571, 117.096854, 1.159166\n    test 525 reverse 45N (56.569, 113.137) 3/4: 0.0\n    test 526 forward 48N (53.530, 118.903) 3/4: 3685290.742854, 12189522.028618, 124.447841, 1.170375\n    test 527 reverse 48N (53.530, 118.903) 3/4: 2.842170943040401e-14\n    test 528 forward 51N (50.346, 124.343) 3/4: 3742386.824274, 12791126.616764, 131.557863, 1.176031\n    test 529 reverse 51N (50.346, 124.343) 3/4: 2.929642751054232e-14\n    test 530 forward 54N (47.023, 129.443) 3/4: 3737846.053669, 13410380.03778, 138.317827, 1.175799\n    test 531 reverse 54N (47.023, 129.443) 3/4: 4.0194366942304644e-14\n    test 532 forward 57N (43.571, 134.187) 3/4: 3676387.634221, 14034104.572541, 144.624552, 1.170121\n    test 533 reverse 57N (43.571, 134.187) 3/4: 3.1776437161565096e-14\n    test 534 forward 60N (40.000, 138.564) 3/4: 3566810.754496, 14651410.305646, 150.395289, 1.16007\n    test 535 reverse 60N (40.000, 138.564) 3/4: 1.4210854715202004e-14\n    test 536 forward 63N (36.319, 142.561) 3/4: 3420621.906486, 15254653.660248, 155.577129, 1.147079\n    test 537 reverse 63N (36.319, 142.561) 3/4: 0.0\n    test 538 forward 66N (32.539, 146.167) 3/4: 3250522.133697, 15839614.666766, 160.149958, 1.132638\n    test 539 reverse 66N (32.539, 146.167) 3/4: 7.105427357601002e-15\n    test 540 forward 69N (28.669, 149.373) 3/4: 3069132.144368, 16405050.640186, 164.124094, 1.118063\n    test 541 reverse 69N (28.669, 149.373) 3/4: 3.552713678800501e-15\n    test 542 forward 72N (24.721, 152.169) 3/4: 2888128.173431, 16951919.948156, 167.534978, 1.104377\n    test 543 reverse 72N (24.721, 152.169) 3/4: 3.552713678800501e-15\n    test 544 forward 75N (20.706, 154.548) 3/4: 2717773.256417, 17482549.021439, 170.437193, 1.09228\n    test 545 reverse 75N (20.706, 154.548) 3/4: 3.552713678800501e-15\n    test 546 forward 78N (16.633, 156.504) 3/4: 2566730.586316, 17999918.486885, 172.899178, 1.082187\n    test 547 reverse 78N (16.633, 156.504) 3/4: 7.105427357601002e-15\n    test 548 forward 81N (12.515, 158.030) 3/4: 2442031.891673, 18507145.758, 174.99917, 1.074303\n    test 549 reverse 81N (12.515, 158.030) 3/4: 7.105427357601002e-15\n    test 550 forward 84N (8.362, 159.124) 3/4: 2349105.316925, 19007174.828239, 176.822266, 1.068689\n    test 551 reverse 84N (8.362, 159.124) 3/4: 8.881784197001252e-15\n    test 552 forward 87N (4.187, 159.781) 3/4: 2291809.478825, 19502649.329559, 178.458273, 1.06534\n    test 553 reverse 87N (4.187, 159.781) 3/4: 8.881784197001252e-15\n    test 554 forward 90N (0.000, 160.000) 3/4: 2272454.379192, -19995929.886042, -180.0, 1.064227\n    test 555 reverse 90N (0.000, 160.000) 3/3: 0.0\n    test 556 forward 93N (-4.187, 159.781) 3/4: 2291809.478825, -19502649.329559, -178.458273, 1.06534\n    test 557 reverse 93N (-4.187, 159.781) 3/4: 2.842170943040401e-14\n    test 558 forward 96N (-8.362, 159.124) 3/4: 2349105.316925, -19007174.828239, -176.822266, 1.068689\n    test 559 reverse 96N (-8.362, 159.124) 3/4: 1.0658141036401503e-14\n    test 560 forward 99N (-12.515, 158.030) 3/4: 2442031.891673, -18507145.758, -174.99917, 1.074303\n    test 561 reverse 99N (-12.515, 158.030) 3/4: 3.375077994860476e-14\n    test 562 forward 102N (-16.633, 156.504) 3/4: 2566730.586316, -17999918.486885, -172.899178, 1.082187\n    test 563 reverse 102N (-16.633, 156.504) 3/4: 1.4210854715202004e-14\n    test 564 forward 105N (-20.706, 154.548) 3/4: 2717773.256417, -17482549.021439, -170.437193, 1.09228\n    test 565 reverse 105N (-20.706, 154.548) 3/4: 3.552713678800501e-15\n    test 566 forward 108N (-24.721, 152.169) 3/4: 2888128.173431, -16951919.948156, -167.534978, 1.104377\n    test 567 reverse 108N (-24.721, 152.169) 3/4: 2.4868995751603507e-14\n    test 568 forward 111N (-28.669, 149.373) 3/4: 3069132.144368, -16405050.640186, -164.124094, 1.118063\n    test 569 reverse 111N (-28.669, 149.373) 3/4: 7.105427357601002e-15\n    test 570 forward 114N (-32.539, 146.167) 3/4: 3250522.133697, -15839614.666766, -160.149958, 1.132638\n    test 571 reverse 114N (-32.539, 146.167) 3/4: 7.105427357601002e-15\n    test 572 forward 117N (-36.319, 142.561) 3/4: 3420621.906486, -15254653.660248, -155.577129, 1.147079\n    test 573 reverse 117N (-36.319, 142.561) 3/4: 0.0\n    test 574 forward 120N (-40.000, 138.564) 3/4: 3566810.754496, -14651410.305646, -150.395289, 1.16007\n    test 575 reverse 120N (-40.000, 138.564) 3/4: 7.105427357601002e-15\n    test 576 forward 123N (-43.571, 134.187) 3/4: 3676387.634221, -14034104.572541, -144.624552, 1.170121\n    test 577 reverse 123N (-43.571, 134.187) 3/4: 3.1776437161565096e-14\n    test 578 forward 126N (-47.023, 129.443) 3/4: 3737846.053669, -13410380.03778, -138.317827, 1.175799\n    test 579 reverse 126N (-47.023, 129.443) 3/4: 4.0194366942304644e-14\n    test 580 forward 129N (-50.346, 124.343) 3/4: 3742386.824274, -12791126.616764, -131.557863, 1.176031\n    test 581 reverse 129N (-50.346, 124.343) 3/4: 2.929642751054232e-14\n    test 582 forward 132N (-53.530, 118.903) 3/4: 3685290.742854, -12189522.028618, -124.447841, 1.170375\n    test 583 reverse 132N (-53.530, 118.903) 3/4: 2.842170943040401e-14\n    test 584 forward 135N (-56.569, 113.137) 3/4: 3566696.824822, -11619422.467571, -117.096854, 1.159166\n    test 585 reverse 135N (-56.569, 113.137) 3/4: 0.0\n    test 586 forward 138N (-59.452, 107.061) 3/4: 3391492.622467, -11093528.387239, -109.604086, 1.14345\n    test 587 reverse 138N (-59.452, 107.061) 3/4: 1.5888218580782548e-14\n    test 588 forward 141N (-62.172, 100.691) 3/4: 3168362.707459, -10621853.317461, -102.04623, 1.124739\n    test 589 reverse 141N (-62.172, 100.691) 3/4: 2.929642751054232e-14\n    test 590 forward 144N (-64.721, 94.046) 3/4: 2908348.733697, -10210857.598605, -94.471204, 1.104695\n    test 591 reverse 144N (-64.721, 94.046) 3/4: 0.0\n    test 592 forward 147N (-67.094, 87.142) 3/4: 2623368.28288, -9863301.12097, -86.898617, 1.084836\n    test 593 reverse 147N (-67.094, 87.142) 3/4: 0.0\n    test 594 forward 150N (-69.282, 80.000) 3/4: 2325015.074835, -9578621.128889, -79.325231, 1.066355\n    test 595 reverse 150N (-69.282, 80.000) 3/4: 2.842170943040401e-14\n    test 596 forward 153N (-71.281, 72.638) 3/4: 2023752.790526, -9353559.771346, -71.732868, 1.050046\n    test 597 reverse 153N (-71.281, 72.638) 3/3: 0.0\n    test 598 forward 156N (-73.084, 65.078) 3/4: 1728450.251911, -9182823.938232, -64.096558, 1.036319\n    test 599 reverse 156N (-73.084, 65.078) 3/3: 2.0097183471152322e-14\n    test 600 forward 159N (-74.686, 57.339) 3/4: 1446137.252018, -9059670.735504, -56.391495, 1.025259\n    test 601 reverse 159N (-74.686, 57.339) 3/3: 5.859285502108464e-14\n    test 602 forward 162N (-76.085, 49.443) 3/4: 1181870.215451, -8976407.252949, -48.598167, 1.016714\n    test 603 reverse 162N (-76.085, 49.443) 3/3: 0.0\n    test 604 forward 165N (-77.274, 41.411) 3/4: 938645.229361, -8924845.3123, -40.705476, 1.010384\n    test 605 reverse 165N (-77.274, 41.411) 3/3: 3.1776437161565096e-14\n    test 606 forward 168N (-78.252, 33.266) 3/4: 717349.637417, -8896761.249834, -32.712011, 1.005894\n    test 607 reverse 168N (-78.252, 33.266) 3/3: 0.0\n    test 608 forward 171N (-79.015, 25.030) 3/4: 516782.400098, -8884389.933155, -24.625783, 1.002865\n    test 609 reverse 171N (-79.015, 25.030) 3/3: 4.1583447479068616e-14\n    test 610 forward 174N (-79.562, 16.725) 3/4: 333788.634116, -8880946.730424, -16.462884, 1.000962\n    test 611 reverse 174N (-79.562, 16.725) 3/3: 3.1776437161565096e-14\n    test 612 forward 177N (-79.890, 8.374) 3/4: 163544.38007, -8881136.361771, -8.245542, 0.999927\n    test 613 reverse 177N (-79.890, 8.374) 3/3: 5.224422199693188e-14\n    test 614 forward 180N (-80.000, 0.000) 3/3: 0.0, -8881585.815988, 0.0, 0.9996\n    test 615 reverse 180N (-80.000, 0.000) 3/3: 0.0\n    test 616 forward 183N (-79.890, -8.374) 3/4: -163544.38007, -8881136.361771, 8.245542, 0.999927\n    test 617 reverse 183N (-79.890, -8.374) 3/3: 5.123796534383003e-14\n    test 618 forward 186N (-79.562, -16.725) 3/4: -333788.634116, -8880946.730424, 16.462884, 1.000962\n    test 619 reverse 186N (-79.562, -16.725) 3/3: 3.1776437161565096e-14\n    test 620 forward 189N (-79.015, -25.030) 3/4: -516782.400098, -8884389.933155, 24.625783, 1.002865\n    test 621 reverse 189N (-79.015, -25.030) 3/3: 3.1776437161565096e-14\n    test 622 forward 192N (-78.252, -33.266) 3/4: -717349.637417, -8896761.249834, 32.712011, 1.005894\n    test 623 reverse 192N (-78.252, -33.266) 3/3: 2.5618982671915014e-14\n    test 624 forward 195N (-77.274, -41.411) 3/4: -938645.229361, -8924845.3123, 40.705476, 1.010384\n    test 625 reverse 195N (-77.274, -41.411) 3/3: 3.1776437161565096e-14\n    test 626 forward 198N (-76.085, -49.443) 3/4: -1181870.215451, -8976407.252949, 48.598167, 1.016714\n    test 627 reverse 198N (-76.085, -49.443) 3/3: 7.105427357601002e-15\n    test 628 forward 201N (-74.686, -57.339) 3/4: -1446137.252018, -9059670.735504, 56.391495, 1.025259\n    test 629 reverse 201N (-74.686, -57.339) 3/3: 1.0048591735576161e-13  FAILED, KNOWN, expected 9e-14\n    test 630 forward 204N (-73.084, -65.078) 3/4: -1728450.251911, -9182823.938232, 64.096558, 1.036319\n    test 631 reverse 204N (-73.084, -65.078) 3/3: 2.0097183471152322e-14\n    test 632 forward 207N (-71.281, -72.638) 3/4: -2023752.790526, -9353559.771346, 71.732868, 1.050046\n    test 633 reverse 207N (-71.281, -72.638) 3/3: 0.0\n    test 634 forward 210N (-69.282, -80.000) 3/4: -2325015.074835, -9578621.128889, 79.325231, 1.066355\n    test 635 reverse 210N (-69.282, -80.000) 3/4: 1.4210854715202004e-14\n    test 636 forward 213N (-67.094, -87.142) 3/4: -2623368.28288, -9863301.12097, 86.898617, 1.084836\n    test 637 reverse 213N (-67.094, -87.142) 3/4: 0.0\n    test 638 forward 216N (-64.721, -94.046) 3/4: -2908348.733697, -10210857.598605, 94.471204, 1.104695\n    test 639 reverse 216N (-64.721, -94.046) 3/4: 0.0\n    test 640 forward 219N (-62.172, -100.691) 3/4: -3168362.707459, -10621853.317461, 102.04623, 1.124739\n    test 641 reverse 219N (-62.172, -100.691) 3/4: 2.929642751054232e-14\n    test 642 forward 222N (-59.452, -107.061) 3/4: -3391492.622467, -11093528.387239, 109.604086, 1.14345\n    test 643 reverse 222N (-59.452, -107.061) 3/4: 1.5888218580782548e-14\n    test 644 forward 225N (-56.569, -113.137) 3/4: -3566696.824822, -11619422.467571, 117.096854, 1.159166\n    test 645 reverse 225N (-56.569, -113.137) 3/4: 0.0\n    test 646 forward 228N (-53.530, -118.903) 3/4: -3685290.742854, -12189522.028618, 124.447841, 1.170375\n    test 647 reverse 228N (-53.530, -118.903) 3/4: 2.842170943040401e-14\n    test 648 forward 231N (-50.346, -124.343) 3/4: -3742386.824274, -12791126.616764, 131.557863, 1.176031\n    test 649 reverse 231N (-50.346, -124.343) 3/4: 2.929642751054232e-14\n    test 650 forward 234N (-47.023, -129.443) 3/4: -3737846.053669, -13410380.03778, 138.317827, 1.175799\n    test 651 reverse 234N (-47.023, -129.443) 3/4: 4.0194366942304644e-14\n    test 652 forward 237N (-43.571, -134.187) 3/4: -3676387.634221, -14034104.572541, 144.624552, 1.170121\n    test 653 reverse 237N (-43.571, -134.187) 3/4: 3.1776437161565096e-14\n    test 654 forward 240N (-40.000, -138.564) 3/4: -3566810.754496, -14651410.305646, 150.395289, 1.16007\n    test 655 reverse 240N (-40.000, -138.564) 3/4: 1.4210854715202004e-14\n    test 656 forward 243N (-36.319, -142.561) 3/4: -3420621.906486, -15254653.660248, 155.577129, 1.147079\n    test 657 reverse 243N (-36.319, -142.561) 3/4: 0.0\n    test 658 forward 246N (-32.539, -146.167) 3/4: -3250522.133697, -15839614.666766, 160.149958, 1.132638\n    test 659 reverse 246N (-32.539, -146.167) 3/4: 7.105427357601002e-15\n    test 660 forward 249N (-28.669, -149.373) 3/4: -3069132.144368, -16405050.640186, 164.124094, 1.118063\n    test 661 reverse 249N (-28.669, -149.373) 3/4: 3.552713678800501e-15\n    test 662 forward 252N (-24.721, -152.169) 3/4: -2888128.173431, -16951919.948156, 167.534978, 1.104377\n    test 663 reverse 252N (-24.721, -152.169) 3/4: 3.552713678800501e-15\n    test 664 forward 255N (-20.706, -154.548) 3/4: -2717773.256417, -17482549.021439, 170.437193, 1.09228\n    test 665 reverse 255N (-20.706, -154.548) 3/4: 3.552713678800501e-15\n    test 666 forward 258N (-16.633, -156.504) 3/4: -2566730.586316, -17999918.486885, 172.899178, 1.082187\n    test 667 reverse 258N (-16.633, -156.504) 3/4: 7.105427357601002e-15\n    test 668 forward 261N (-12.515, -158.030) 3/4: -2442031.891673, -18507145.758, 174.99917, 1.074303\n    test 669 reverse 261N (-12.515, -158.030) 3/4: 7.105427357601002e-15\n    test 670 forward 264N (-8.362, -159.124) 3/4: -2349105.316925, -19007174.828239, 176.822266, 1.068689\n    test 671 reverse 264N (-8.362, -159.124) 3/4: 8.881784197001252e-15\n    test 672 forward 267N (-4.187, -159.781) 3/4: -2291809.478825, -19502649.329559, 178.458273, 1.06534\n    test 673 reverse 267N (-4.187, -159.781) 3/4: 8.881784197001252e-15\n    test 674 forward 270N (0.000, -160.000) 3/4: -2272454.379192, -19995929.886042, 180.0, 1.064227\n    test 675 reverse 270N (0.000, -160.000) 3/3: 0.0\n    test 676 forward 273N (4.187, -159.781) 3/4: -2291809.478825, 19502649.329559, -178.458273, 1.06534\n    test 677 reverse 273N (4.187, -159.781) 3/4: 2.842170943040401e-14\n    test 678 forward 276N (8.362, -159.124) 3/4: -2349105.316925, 19007174.828239, -176.822266, 1.068689\n    test 679 reverse 276N (8.362, -159.124) 3/4: 1.0658141036401503e-14\n    test 680 forward 279N (12.515, -158.030) 3/4: -2442031.891673, 18507145.758, -174.99917, 1.074303\n    test 681 reverse 279N (12.515, -158.030) 3/4: 3.375077994860476e-14\n    test 682 forward 282N (16.633, -156.504) 3/4: -2566730.586316, 17999918.486885, -172.899178, 1.082187\n    test 683 reverse 282N (16.633, -156.504) 3/4: 1.4210854715202004e-14\n    test 684 forward 285N (20.706, -154.548) 3/4: -2717773.256417, 17482549.021439, -170.437193, 1.09228\n    test 685 reverse 285N (20.706, -154.548) 3/4: 3.552713678800501e-15\n    test 686 forward 288N (24.721, -152.169) 3/4: -2888128.173431, 16951919.948156, -167.534978, 1.104377\n    test 687 reverse 288N (24.721, -152.169) 3/4: 2.4868995751603507e-14\n    test 688 forward 291N (28.669, -149.373) 3/4: -3069132.144368, 16405050.640186, -164.124094, 1.118063\n    test 689 reverse 291N (28.669, -149.373) 3/4: 7.105427357601002e-15\n    test 690 forward 294N (32.539, -146.167) 3/4: -3250522.133697, 15839614.666766, -160.149958, 1.132638\n    test 691 reverse 294N (32.539, -146.167) 3/4: 7.105427357601002e-15\n    test 692 forward 297N (36.319, -142.561) 3/4: -3420621.906486, 15254653.660248, -155.577129, 1.147079\n    test 693 reverse 297N (36.319, -142.561) 3/4: 0.0\n    test 694 forward 300N (40.000, -138.564) 3/4: -3566810.754496, 14651410.305646, -150.395289, 1.16007\n    test 695 reverse 300N (40.000, -138.564) 3/4: 7.105427357601002e-15\n    test 696 forward 303N (43.571, -134.187) 3/4: -3676387.634221, 14034104.572541, -144.624552, 1.170121\n    test 697 reverse 303N (43.571, -134.187) 3/4: 3.1776437161565096e-14\n    test 698 forward 306N (47.023, -129.443) 3/4: -3737846.053669, 13410380.03778, -138.317827, 1.175799\n    test 699 reverse 306N (47.023, -129.443) 3/4: 4.0194366942304644e-14\n    test 700 forward 309N (50.346, -124.343) 3/4: -3742386.824274, 12791126.616764, -131.557863, 1.176031\n    test 701 reverse 309N (50.346, -124.343) 3/4: 2.929642751054232e-14\n    test 702 forward 312N (53.530, -118.903) 3/4: -3685290.742854, 12189522.028618, -124.447841, 1.170375\n    test 703 reverse 312N (53.530, -118.903) 3/4: 2.842170943040401e-14\n    test 704 forward 315N (56.569, -113.137) 3/4: -3566696.824822, 11619422.467571, -117.096854, 1.159166\n    test 705 reverse 315N (56.569, -113.137) 3/4: 0.0\n    test 706 forward 318N (59.452, -107.061) 3/4: -3391492.622467, 11093528.387239, -109.604086, 1.14345\n    test 707 reverse 318N (59.452, -107.061) 3/4: 1.5888218580782548e-14\n    test 708 forward 321N (62.172, -100.691) 3/4: -3168362.707459, 10621853.317461, -102.04623, 1.124739\n    test 709 reverse 321N (62.172, -100.691) 3/4: 2.929642751054232e-14\n    test 710 forward 324N (64.721, -94.046) 3/4: -2908348.733697, 10210857.598605, -94.471204, 1.104695\n    test 711 reverse 324N (64.721, -94.046) 3/4: 0.0\n    test 712 forward 327N (67.094, -87.142) 3/4: -2623368.28288, 9863301.12097, -86.898617, 1.084836\n    test 713 reverse 327N (67.094, -87.142) 3/4: 0.0\n    test 714 forward 330N (69.282, -80.000) 3/4: -2325015.074835, 9578621.128889, -79.325231, 1.066355\n    test 715 reverse 330N (69.282, -80.000) 3/4: 2.842170943040401e-14\n    test 716 forward 333N (71.281, -72.638) 3/4: -2023752.790526, 9353559.771346, -71.732868, 1.050046\n    test 717 reverse 333N (71.281, -72.638) 3/3: 0.0\n    test 718 forward 336N (73.084, -65.078) 3/4: -1728450.251911, 9182823.938232, -64.096558, 1.036319\n    test 719 reverse 336N (73.084, -65.078) 3/3: 2.0097183471152322e-14\n    test 720 forward 339N (74.686, -57.339) 3/4: -1446137.252018, 9059670.735504, -56.391495, 1.025259\n    test 721 reverse 339N (74.686, -57.339) 3/3: 5.859285502108464e-14\n    test 722 forward 342N (76.085, -49.443) 3/4: -1181870.215451, 8976407.252949, -48.598167, 1.016714\n    test 723 reverse 342N (76.085, -49.443) 3/3: 0.0\n    test 724 forward 345N (77.274, -41.411) 3/4: -938645.229361, 8924845.3123, -40.705476, 1.010384\n    test 725 reverse 345N (77.274, -41.411) 3/3: 3.1776437161565096e-14\n    test 726 forward 348N (78.252, -33.266) 3/4: -717349.637417, 8896761.249834, -32.712011, 1.005894\n    test 727 reverse 348N (78.252, -33.266) 3/3: 0.0\n    test 728 forward 351N (79.015, -25.030) 3/4: -516782.400098, 8884389.933155, -24.625783, 1.002865\n    test 729 reverse 351N (79.015, -25.030) 3/3: 4.1583447479068616e-14\n    test 730 forward 354N (79.562, -16.725) 3/4: -333788.634116, 8880946.730424, -16.462884, 1.000962\n    test 731 reverse 354N (79.562, -16.725) 3/3: 3.1776437161565096e-14\n    test 732 forward 357N (79.890, -8.374) 3/4: -163544.38007, 8881136.361771, -8.245542, 0.999927\n    test 733 reverse 357N (79.890, -8.374) 3/3: 5.224422199693188e-14\n    test 734 forward 360N (80.000, 0.000) 3/3: 0.0, 8881585.815988, 0.0, 0.9996\n    test 735 reverse 360N (80.000, 0.000) 3/3: 0.0\n    test 736 max: 1.0048591735576161e-13  FAILED, KNOWN, expected 9e-14\n\n    test 737 forward: 6208422.5374, 5452954.287187, 41.077484, 1.511911\n    test 738 reverse: 30.244228, 60.169664, 41.479185, 1.510346\n\n    5 of 738 testKtm.py tests (0.7%) FAILED, ALL KNOWN (pygeodesy 26.3.26 PyPy 7.3.17 Python 3.10.14 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 1.083 sec\nrunning /opt/local/bin/p....y3.10 -W default ~/PyGeodesy/test/testLatLon.py\n./test/testLatLon.py:276: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.sphericalNvector.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', p.cosineAndoyerLambertTo(q), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:277: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.sphericalNvector.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', q.cosineAndoyerLambertTo(p), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:279: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.sphericalNvector.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', p.cosineForsytheAndoyerLambertTo(q), '124801.098' if Sph else '125205.965', fmt='%.3f')\n./test/testLatLon.py:280: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.sphericalNvector.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', q.cosineForsytheAndoyerLambertTo(p), '124801.098' if Sph else '125205.965', fmt='%.3f')\n./test/testLatLon.py:276: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.sphericalTrigonometry.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', p.cosineAndoyerLambertTo(q), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:277: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.sphericalTrigonometry.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', q.cosineAndoyerLambertTo(p), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:279: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.sphericalTrigonometry.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', p.cosineForsytheAndoyerLambertTo(q), '124801.098' if Sph else '125205.965', fmt='%.3f')\n./test/testLatLon.py:280: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.sphericalTrigonometry.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', q.cosineForsytheAndoyerLambertTo(p), '124801.098' if Sph else '125205.965', fmt='%.3f')\n# lazily imported pygeodesy.basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.DeprecationWarnings from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isint from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isLazy from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.issubclassof from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.iterNumpy2over from .iters by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.LazyImportError from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.karney by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.NN from .interns by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.normDMS from .dms by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.pairs from .streprs by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.printf from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.property_RO from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.typename from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.Aer from .ltpTuples by testLatLon.py line 12\n# lazily imported pygeodesy.Enu from .ltpTuples by testLatLon.py line 12\n# lazily imported pygeodesy.F_D from .dms by testLatLon.py line 12\n# lazily imported pygeodesy.F_DM from .dms by testLatLon.py line 12\n# lazily imported pygeodesy.F_DMS from .dms by testLatLon.py line 12\n# lazily imported pygeodesy.F_RAD from .dms by testLatLon.py line 12\n# lazily imported pygeodesy.R_M from .constants by testLatLon.py line 12\n# lazily imported pygeodesy.R_NM from .constants by testLatLon.py line 12\n# lazily imported pygeodesy.degrees from .utily by testLatLon.py line 12\n# lazily imported pygeodesy.fstr from .streprs by testLatLon.py line 12\n# lazily imported pygeodesy.isclockwise from .points by testLatLon.py line 12\n# lazily imported pygeodesy.isconvex from .points by testLatLon.py line 12\n# lazily imported pygeodesy.isenclosedBy from .points by testLatLon.py line 12\n# lazily imported pygeodesy.isnear0 from .constants by testLatLon.py line 12\n# lazily imported pygeodesy.ispolar from .points by testLatLon.py line 12\n# lazily imported pygeodesy.Local9Tuple from .ltpTuples by testLatLon.py line 12\n# lazily imported pygeodesy.Ltp from .ltp by testLatLon.py line 12\n# lazily imported pygeodesy.m2km from .utily by testLatLon.py line 12\n# lazily imported pygeodesy.m2NM from .utily by testLatLon.py line 12\n# lazily imported pygeodesy.Ned from .ltpTuples by testLatLon.py line 12\n# lazily imported pygeodesy.XyzLocal from .ltpTuples by testLatLon.py line 12\n# lazily imported pygeodesy.IntersectionError from .errors by testLatLon.py line 12\n# lazily imported pygeodesy.VincentyError from .ellipsoidalVincenty by testLatLon.py line 12\n# lazily imported pygeodesy.ellipsoidalExact by testLatLon.py line 639\n# lazily imported pygeodesy.ellipsoidalNvector by testLatLon.py line 639\n# lazily imported pygeodesy.sphericalNvector by testLatLon.py line 639\n# lazily imported pygeodesy.sphericalTrigonometry by testLatLon.py line 639\n\n    testing testLatLon.py 25.05.09 isLazy=3\n\n    testLatLon(pygeodesy.sphericalNvector, 25.05.27)\n    test 1 isEllipsoidal: False\n    test 2 isSpherical: True\n    test 3 lat/lonDMS: 52.20472°N, 000.14056°E\n    test 4 lat/lonDMS F_DM: 52°12.283′N, 000°08.434′E\n    test 5 lat/lonDMS F_DM: 52°12.2832′N, 000°08.4336′E\n    test 6 lat/lonDMS F_DMS: 52°12′17″N, 000°08′26″E\n    test 7 lat/lonDMS F_DMS: 52°12′17.0″N, 000°08′26.0″E\n    test 8 lat/lonDMS F_RAD: 0.911144N, 0.002453E\n# imported pygeodesy.formy into latlonBase.py line 756\n    test 9 isequalTo: True\n    test 10 isequalTo: True\n    test 11 latlon2: 52.20472, 0.14056\n    test 12 latlon2: 52.2047, 0.1406\n    test 13 latlon2: 52.205, 0.141\n    test 14 latlon2: 52.2, 0.14\n    test 15 latlon2: 52.2, 0.1\n    test 16 latlon2: 52.0, 0.0\n    test 17 chordTo: 12036677.26\n    test 18 chordTo: 12036463.78\n    test 19 initialBearingTo: 156.1666\n    test 20 initialBearingTo: 65.8921\n    test 21 initialBearingTo: 0.0\n    test 22 initialBearingTo: 180.0\n    test 23 finalBearingTo: 157.8904\n    test 24 finalBearingTo: 93.8581\n    test 25 bearingTo2: 156.1666, 157.8904\n    test 26 ispolar: True\n    test 27 copy: True\n    test 28 __eq__: True\n    test 29 __ne__: False\n# lazily imported pygeodesy.angles by units.py line 633\n    test 30 equirectangularTo: 404329.56\n    test 31 distanceTo: 404279.720589\n    test 32 distanceTo: 404279.720589\n    test 33 distanceTo: 2145\n    test 34 distanceTo: 18013602.92\n    test 35 distanceTo: 20015114.35\n    test 36 intermediateTo: 51.372084°N, 000.707337°E\n    test 37 intermediateTo: True\n    test 38 intermediateTo: 404279.721\n    test 39 intermediateTo+5: 35.160975°N, 008.989542°E\n    test 40 intermediateTo+5: 5.000\n    test 41 intermediateTo-4: 64.911647°N, 013.726301°W\n    test 42 intermediateTo-4: 4.000\n    test 43 intermediateTo-h: 125.000\n    test 44 intermediateChordTo: 51.372294°N, 000.707192°E\n    test 45 intermediateChordTo: True\n    test 46 intermediateChordTo-h: 125.000\n    test 47 midpointTo: 50.536327°N, 001.274614°E\n    test 48 destination: 51.513546°N, 000.098345°W\n    test 49 destination: 51°30′49″N, 000°05′54″W\n    test 50 destination: 34°37′N, 116°33′W\n    test 51 destination: 34.613647°N, 116.55116°W\n    test 52 destination: 0.604122N, 2.034201W\n    test 53 destination: 31.96383509°N, 064.37329146°E\n    test 54 alongTrackDistanceTo: 62331.59\n    test 55 alongTrackDistanceTo: 62331.58\n    test 56 alongTrackDistanceTo: 99.588\n    test 57 alongTrackDistanceTo: -7702.7\n    test 58 alongTrackDistanceTo: 7587.6\n    test 59 crossTrackDistanceTo: -305.6652816061398  FAILED, KNOWN, expected TypeError\n    test 60 crossTrackDistanceTo: -307.55\n    test 61 crossTrackDistanceTo: 7.4524\n    test 62 greatCircle: (-0.79408, 0.12856, 0.59406)\n# lazily imported pygeodesy.booleans by iters.py line 76\n    test 63 neareston6: (LatLon(45°00′00.0″N, 001°00′00.0″E), 4773243.784965, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E))  FAILED, KNOWN, expected (LatLon(45°00′00.0″N, 001°00′00.0″E), 4755443.4294, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E))\n    test 64 neareston6: (LatLon(45°30′03.93″N, 002°00′00.0″E), 38968.531578, 1.501091, 2, LatLon(45°00′00.0″N, 002°00′00.0″E), LatLon(46°00′00.0″N, 002°00′00.0″E))  FAILED, KNOWN, expected (LatLon(45°30′03.94″N, 002°00′00.0″E), 39078.729285, 1.501072, 2, LatLon(45°00′00.0″N, 002°00′00.0″E), LatLon(46°00′00.0″N, 002°00′00.0″E))\n    test 65 chordTo: 124799.103\n    test 66 cosineAndoyerLambertTo: 124801.098\n    test 67 cosineAndoyerLambertTo: 124801.098\n    test 68 cosineForsyheAndoyerLambertTo: 124801.098\n    test 69 cosineForsyheAndoyerLambertTo: 124801.098\n    test 70 cosineLawTo: 124801.098\n    test 71 cosineLawTo: 124801.098\n    test 72 equirectangularTo: 124804.754\n    test 73 equirectangularTo: 124804.754\n    test 74 euclideanTo: 130015.089\n    test 75 euclideanTo: 130015.089\n    test 76 flatLocalTo: 124804.754\n    test 77 flatLocalTo: 124804.754\n    test 78 flatPolarTo: 133663.257\n    test 79 flatPolarTo: 133663.257\n    test 80 hartzell: 53.3206°N, 001.7297°W\n# lazily imported pygeodesy.triaxials by lazily.py line 529\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by ellipsoids.py line 1905\n    test 81 hartzell: 53.3206°N, 001.7297°W\n    test 82 height4: 0.0\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by cartesianBase.py line 364\n    test 83 height4: (3803904.2, -114870.8, 5109488.3, 0.0)\n    test 84 height4: 53°19′14.2″N, 001°43′46.9″W\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by cartesianBase.py line 364\n    test 85 height4: 53°19′14.2″N, 001°43′46.9″W\n    test 86 haversineTo: 124801.098\n    test 87 haversineTo: 124801.098\n    test 88 hubenyTo: <bound method LatLonBase.flatLocalTo of LatLon(53°19′14.16″N, 001°43′46.92″W)>\n    test 89 hubenyTo: <bound method LatLonBase.flatLocalTo of LatLon(53°11′19.32″N, 000°08′00.24″E)>\n    test 90 thomasTo: 124801.098\n    test 91 thomasTo: 124801.098\n    test 92 vincentysTo: 124801.098\n    test 93 vincentysTo: 124801.098\n    test 94 greatCircleTo: (-0.79408, 0.12859, 0.59406)\n    test 95 isclockwise: False\n    test 96 isclockwise*: False\n    test 97 isclockwise: True\n    test 98 isclockwise*: True\n    test 99 isclockwise: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 100 isclockwise*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 101 isclockwise: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 102 isclockwise*: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 103 isconvex: False\n    test 104 isconvex*: False\n    test 105 isconvex: True\n    test 106 isconvex*: True\n    test 107 isconvex: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 108 isconvex*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 109 isenclosedBy1: True\n    test 110 isenclosedBy1*: True\n    test 111 isenclosedBy2: False\n    test 112 isenclosedBy2*: False\n    test 113 isenclosedBy3: False\n    test 114 isenclosedBy3*: False\n    test 115 isenclosedBy4: False\n    test 116 isenclosedBy4*: False\n    test 117 isenclosedBy5: False\n    test 118 isenclosedBy5*: False\n    test 119 isenclosedBy6: True\n    test 120 isenclosedBy6*: True\n    test 121 isenclosedBy7: True\n    test 122 isenclosedBy7*: True\n    test 123 isenclosedBy-CCW: True\n    test 124 isenclosedBy-CW : True\n    test 125 isenclosedBy-CCW: True\n    test 126 initialBearingTo: 102.432182\n    test 127 compassAngleTo: 100.017\n    test 128 compassAngleTo: 105.599\n    test 129 initialBearingTo: 288.715918\n    test 130 compassAngleTo: 280.017\n    test 131 compassAngleTo: 285.599\n    test 132 equirectangularTo: 592.185\n    test 133 distanceTo: 591.831\n    test 134 compassAngleTo: 0.0\n    test 135 compassAngleTo: 45.0\n    test 136 compassAngleTo: 90.0\n    test 137 compassAngleTo: 180.0\n    test 138 compassAngleTo: 225.0\n    test 139 compassAngleTo: 315.0\n    test 140 compassAngleTo: 270.0\n    test 141 compassAngleTo: 359.4\n    test 142 latlon2: (53.0, 1.0)\n    test 143 philam2: (0.93, 0.02)\n    test 144 compassAngleTo: 31\n    test 145 compassAngleTo: 45\n\n    test 146 boundsOf: <class 'pygeodesy.namedTuples.Bounds2Tuple'>\n    test 147 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 148 latlon2: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 149 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 150 isequalTo: <class 'bool'>\n    test 151 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 152 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 153 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 154 xyz3: <class 'tuple'>\n    test 155 xyzh: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 156 compassAngleTo: <class 'float'>\n    test 157 cosineLawTo: <class 'float'>\n    test 158 euclideanTo: <class 'float'>\n    test 159 flatLocalTo: <class 'float'>\n    test 160 flatPolarTo: <class 'float'>\n    test 161 haversineTo: <class 'float'>\n    test 162 hubenyTo: <class 'float'>\n    test 163 vincentysTo: <class 'float'>\n# imported pygeodesy.ltpTuples into ecefLocals.py line 80\n# imported pygeodesy.ltp into ecefLocals.py line 63\n# imported pygeodesy.ltp into ltpTuples.py line 1585\n    test 164 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 165 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 166 toLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 167 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 168 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 169 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 170 toVector: (3922384.659522, 0.0, 5020423.423198)\n    test 171 toVector3d: (0.61566, 0.0, 0.78801)\n    test 172 trilaterate5 (pygeodesy.sphericalNvector) .min: 223.305\n    test 173 trilaterate5 (pygeodesy.sphericalNvector) .point: 42.67456065°N, 002.49539502°E\n    test 174 trilaterate5 (pygeodesy.sphericalNvector) .min- is .maxPoint: True\n    test 175 trilaterate5 (pygeodesy.sphericalNvector) .n: 1\n    test 176 trilaterate5 (pygeodesy.sphericalNvector) .error: sphericalNvector.LatLon.trilaterate5(area=True), MRO(nvectorBase.LatLonNvectorBase, sphericalBase.LatLonSphericalBase, latlonBase.LatLonBase, named._NamedBase, ecefLocals._EcefLocal, named._Named): not implemented\n# lazily imported pygeodesy.vector2d by latlonBase.py line 1074\n\n    test 177 radii11: Radii11Tuple(rA=7701.409157, rB=1361.530045, rC=499.257353, cR=4886.694635, rIn=739.915482, riS=179.523525, roS=6087.250896, a=1860.787398, b=8200.666509, c=9062.939201, s=9562.196554)\n\n    22 tests skipped (22): numpy in PYGEODESY_XPACKAGES=numpy,scipy: required by vector2d._numpy\n\n    test 178 area cw/ccw: 1.0\n\n    testLatLon(pygeodesy.sphericalTrigonometry, 25.08.31)\n    test 179 isEllipsoidal: False\n    test 180 isSpherical: True\n    test 181 lat/lonDMS: 52.20472°N, 000.14056°E\n    test 182 lat/lonDMS F_DM: 52°12.283′N, 000°08.434′E\n    test 183 lat/lonDMS F_DM: 52°12.2832′N, 000°08.4336′E\n    test 184 lat/lonDMS F_DMS: 52°12′17″N, 000°08′26″E\n    test 185 lat/lonDMS F_DMS: 52°12′17.0″N, 000°08′26.0″E\n    test 186 lat/lonDMS F_RAD: 0.911144N, 0.002453E\n    test 187 isequalTo: True\n    test 188 isequalTo: True\n    test 189 latlon2: 52.20472, 0.14056\n    test 190 latlon2: 52.2047, 0.1406\n    test 191 latlon2: 52.205, 0.141\n    test 192 latlon2: 52.2, 0.14\n    test 193 latlon2: 52.2, 0.1\n    test 194 latlon2: 52.0, 0.0\n    test 195 chordTo: 12036677.26\n    test 196 chordTo: 12036463.78\n    test 197 initialBearingTo: 156.1666\n    test 198 initialBearingTo: 65.8921\n    test 199 initialBearingTo: 0.0\n    test 200 initialBearingTo: 180.0\n    test 201 finalBearingTo: 157.8904\n    test 202 finalBearingTo: 93.8581\n    test 203 bearingTo2: 156.1666, 157.8904\n    test 204 ispolar: True\n    test 205 copy: True\n    test 206 __eq__: True\n    test 207 __ne__: False\n    test 208 equirectangularTo: 404329.56\n    test 209 distanceTo: 404279.720589\n    test 210 distanceTo: 404279.720589\n    test 211 distanceTo: 2145\n    test 212 antipodal: False\n    test 213 distanceTo dateline: 19967403.498  FAILED, KNOWN, expected 19119590.551\n    test 214 distanceTo unrolled: 19967403.498  FAILED, KNOWN, expected 19119590.551\n    test 215 antipodal: False\n    test 216 distanceTo dateline: 9491735\n    test 217 distanceTo unrolled: 9491735\n    test 218 distanceTo: 18013602.92\n    test 219 distanceTo: 20015114.35\n    test 220 intermediateTo: 51.372084°N, 000.707337°E\n    test 221 intermediateTo: True\n    test 222 intermediateTo: 404279.721\n    test 223 intermediateTo+5: 35.160975°N, 008.989542°E\n    test 224 intermediateTo+5: 5.000\n    test 225 intermediateTo-4: 64.911647°N, 013.726301°W\n    test 226 intermediateTo-4: 4.000\n    test 227 intermediateTo-h: 125.000\n    test 228 midpointTo: 50.536327°N, 001.274614°E\n    test 229 destination: 51.513546°N, 000.098345°W\n    test 230 destination: 51°30′49″N, 000°05′54″W\n    test 231 destination: 34°37′N, 116°33′W\n    test 232 destination: 34.613647°N, 116.55116°W\n    test 233 destination: 0.604122N, 2.034201W\n    test 234 destination: 31.96383509°N, 064.37329146°E\n./test/testLatLon.py:276: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.ellipsoidalNvector.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', p.cosineAndoyerLambertTo(q), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:277: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.ellipsoidalNvector.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', q.cosineAndoyerLambertTo(p), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:279: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.ellipsoidalNvector.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', p.cosineForsytheAndoyerLambertTo(q), '124801.098' if Sph else '125205.965', fmt='%.3f')\n./test/testLatLon.py:280: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.ellipsoidalNvector.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', q.cosineForsytheAndoyerLambertTo(p), '124801.098' if Sph else '125205.965', fmt='%.3f')\n./test/testLatLon.py:276: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.ellipsoidalVincenty.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', p.cosineAndoyerLambertTo(q), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:277: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.ellipsoidalVincenty.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', q.cosineAndoyerLambertTo(p), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:279: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.ellipsoidalVincenty.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', p.cosineForsytheAndoyerLambertTo(q), '124801.098' if Sph else '125205.965', fmt='%.3f')\n./test/testLatLon.py:280: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.ellipsoidalVincenty.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', q.cosineForsytheAndoyerLambertTo(p), '124801.098' if Sph else '125205.965', fmt='%.3f')\n    test 235 alongTrackDistanceTo: type(end) (96): incompatible with sphericalTrigonometry.LatLon.alongTrackDistanceTo(end)  FAILED, KNOWN, expected incompatible ...\n    test 236 alongTrackDistanceTo: 62331.58\n    test 237 alongTrackDistanceTo: 99.588\n    test 238 alongTrackDistanceTo: -7702.7\n    test 239 alongTrackDistanceTo: 7587.6\n    test 240 crossTrackDistanceTo: type(end) (96): incompatible with sphericalTrigonometry.LatLon.crossTrackDistanceTo(end)  FAILED, KNOWN, expected incompatible ...\n    test 241 crossTrackDistanceTo: -307.55\n    test 242 crossTrackDistanceTo: 7.4524\n    test 243 greatCircle: (-0.79408, 0.12856, 0.59406)\n    test 244 neareston6: (LatLon(45°00′00.0″N, 001°00′00.0″E), 4773243.784965, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E))  FAILED, KNOWN, expected (LatLon(45°00′00.0″N, 001°00′00.0″E), 4755443.4294, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E))\n    test 245 neareston6: (LatLon(45°30′03.93″N, 002°00′00.0″E), 38968.531578, 1.501091, 2, LatLon(45°00′00.0″N, 002°00′00.0″E), LatLon(46°00′00.0″N, 002°00′00.0″E))  FAILED, KNOWN, expected (LatLon(45°30′03.94″N, 002°00′00.0″E), 39078.729285, 1.501072, 2, LatLon(45°00′00.0″N, 002°00′00.0″E), LatLon(46°00′00.0″N, 002°00′00.0″E))\n    test 246 chordTo: 124799.103\n    test 247 cosineAndoyerLambertTo: 124801.098\n    test 248 cosineAndoyerLambertTo: 124801.098\n    test 249 cosineForsyheAndoyerLambertTo: 124801.098\n    test 250 cosineForsyheAndoyerLambertTo: 124801.098\n    test 251 cosineLawTo: 124801.098\n    test 252 cosineLawTo: 124801.098\n    test 253 equirectangularTo: 124804.754\n    test 254 equirectangularTo: 124804.754\n    test 255 euclideanTo: 130015.089\n    test 256 euclideanTo: 130015.089\n    test 257 flatLocalTo: 124804.754\n    test 258 flatLocalTo: 124804.754\n    test 259 flatPolarTo: 133663.257\n    test 260 flatPolarTo: 133663.257\n    test 261 hartzell: 53.3206°N, 001.7297°W\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by ellipsoids.py line 1905\n    test 262 hartzell: 53.3206°N, 001.7297°W\n    test 263 height4: 0.0\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by cartesianBase.py line 364\n    test 264 height4: (3803904.2, -114870.8, 5109488.3, 0.0)\n    test 265 height4: 53°19′14.2″N, 001°43′46.9″W\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by cartesianBase.py line 364\n    test 266 height4: 53°19′14.2″N, 001°43′46.9″W\n    test 267 haversineTo: 124801.098\n    test 268 haversineTo: 124801.098\n    test 269 hubenyTo: <bound method LatLonBase.flatLocalTo of LatLon(53°19′14.16″N, 001°43′46.92″W)>\n    test 270 hubenyTo: <bound method LatLonBase.flatLocalTo of LatLon(53°11′19.32″N, 000°08′00.24″E)>\n    test 271 thomasTo: 124801.098\n    test 272 thomasTo: 124801.098\n    test 273 vincentysTo: 124801.098\n    test 274 vincentysTo: 124801.098\n    test 275 isclockwise: False\n    test 276 isclockwise*: False\n    test 277 isclockwise: True\n    test 278 isclockwise*: True\n    test 279 isclockwise: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 280 isclockwise*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 281 isclockwise: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 282 isclockwise*: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 283 isconvex: False\n    test 284 isconvex*: False\n    test 285 isconvex: True\n    test 286 isconvex*: True\n    test 287 isconvex: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 288 isconvex*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 289 isenclosedBy1: True\n    test 290 isenclosedBy1*: True\n    test 291 isenclosedBy2: False\n    test 292 isenclosedBy2*: False\n    test 293 isenclosedBy3: False\n    test 294 isenclosedBy3*: False\n    test 295 isenclosedBy4: False\n    test 296 isenclosedBy4*: False\n    test 297 isenclosedBy5: False\n    test 298 isenclosedBy5*: False\n    test 299 isenclosedBy6: True\n    test 300 isenclosedBy6*: True\n    test 301 isenclosedBy7: True\n    test 302 isenclosedBy7*: True\n    test 303 isenclosedBy-CCW: True\n    test 304 isenclosedBy-CW : True\n    test 305 isenclosedBy-CCW: True\n    test 306 initialBearingTo: 102.432182\n    test 307 compassAngleTo: 100.017\n    test 308 compassAngleTo: 105.599\n    test 309 initialBearingTo: 288.715918\n    test 310 compassAngleTo: 280.017\n    test 311 compassAngleTo: 285.599\n    test 312 equirectangularTo: 592.185\n    test 313 distanceTo: 591.831\n    test 314 bearingTo: 0.0\n    test 315 compassAngleTo: 0.0\n    test 316 bearingTo: 45.0\n    test 317 compassAngleTo: 45.0\n    test 318 bearingTo: 90.0\n    test 319 compassAngleTo: 90.0\n    test 320 bearingTo: 180.0\n    test 321 compassAngleTo: 180.0\n    test 322 bearingTo: 225.0\n    test 323 compassAngleTo: 225.0\n    test 324 bearingTo: 315.0\n    test 325 compassAngleTo: 315.0\n    test 326 bearingTo: 270.0\n    test 327 compassAngleTo: 270.0\n    test 328 bearingTo: 0.0  FAILED, KNOWN, expected 359.4\n    test 329 compassAngleTo: 359.4\n    test 330 latlon2: (53.0, 1.0)\n    test 331 philam2: (0.93, 0.02)\n    test 332 bearingTo: 31\n    test 333 compassAngleTo: 31\n    test 334 compassAngleTo: 45\n\n    test 335 boundsOf: <class 'pygeodesy.namedTuples.Bounds2Tuple'>\n    test 336 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 337 latlon2: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 338 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 339 isequalTo: <class 'bool'>\n    test 340 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 341 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 342 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 343 xyz3: <class 'tuple'>\n    test 344 xyzh: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 345 compassAngleTo: <class 'float'>\n    test 346 cosineLawTo: <class 'float'>\n    test 347 euclideanTo: <class 'float'>\n    test 348 flatLocalTo: <class 'float'>\n    test 349 flatPolarTo: <class 'float'>\n    test 350 haversineTo: <class 'float'>\n    test 351 hubenyTo: <class 'float'>\n    test 352 vincentysTo: <class 'float'>\n    test 353 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 354 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 355 toLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 356 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 357 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 358 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 359 toNvector: (0.61566, 0.0, 0.78801)\n    test 360 toVector: (3922384.659522, 0.0, 5020423.423198)\n    test 361 toVector3d: (0.61566, 0.0, 0.78801)\n\n    test 362 trilaterate5 (pygeodesy.sphericalTrigonometry) .min: 313.671\n    test 363 trilaterate5 (pygeodesy.sphericalTrigonometry) .point: 42.66937229°N, 002.48639477°E\n    test 364 trilaterate5 (pygeodesy.sphericalTrigonometry) .max: 1591.044\n    test 365 trilaterate5 (pygeodesy.sphericalTrigonometry) .point: 42.65153054°N, 002.46822157°E\n    test 366 trilaterate5 (pygeodesy.sphericalTrigonometry) .n: 3\n    test 367 trilaterate5 (pygeodesy.sphericalTrigonometry) .min: 133.815\n    test 368 trilaterate5 (pygeodesy.sphericalTrigonometry) .max: 160.242\n    test 369 trilaterate5 (pygeodesy.sphericalTrigonometry) .point: 42.67817811°N, 002.49966641°E\n    test 370 trilaterate5 (pygeodesy.sphericalTrigonometry) .n: 2\n    test 371 trilaterate5 (pygeodesy.sphericalTrigonometry) .min: 2403.293\n    test 372 trilaterate5 (pygeodesy.sphericalTrigonometry) .max: 2403.293\n    test 373 trilaterate5 (pygeodesy.sphericalTrigonometry) .point: 42.66135649°N, 002.47981645°E\n    test 374 trilaterate5 (pygeodesy.sphericalTrigonometry) .min- is .maxPoint: True\n    test 375 trilaterate5 (pygeodesy.sphericalTrigonometry) .n: 1\n    test 376 trilaterate5 (pygeodesy.sphericalTrigonometry) .min: 1340.608\n    test 377 trilaterate5 (pygeodesy.sphericalTrigonometry) .point: 42.69128229°N, 002.50129001°E\n    test 378 trilaterate5 (pygeodesy.sphericalTrigonometry) .max: 1499.220\n    test 379 trilaterate5 (pygeodesy.sphericalTrigonometry) .point: 42.64295864°N, 002.44242391°E\n    test 380 trilaterate5 (pygeodesy.sphericalTrigonometry) .n: 3\n    test 381 radii11: Radii11Tuple(rA=7237.243793, rB=1825.695409, rC=2.255158, cR=57690.493993, rIn=57.33247, riS=2.087691, roS=2.443616, a=1827.950567, b=7239.49895, c=9062.939201, s=9065.194359)\n\n    27 tests skipped (49): numpy in PYGEODESY_XPACKAGES=numpy,scipy: required by vector2d._numpy\n\n    test 382 radii11: Radii11Tuple(rA=7237.243793, rB=1825.695409, rC=2.255158, cR=57690.493993, rIn=57.33247, riS=2.087691, roS=2.443616, a=1827.950567, b=7239.49895, c=9062.939201, s=9065.194359)\n\n    22 tests skipped (71): numpy in PYGEODESY_XPACKAGES=numpy,scipy: required by vector2d._numpy\n\n    test 383 area cw/ccw: 1.0\n\n    testLatLon(pygeodesy.ellipsoidalNvector, 25.05.12)\n    test 384 isEllipsoidal: True\n    test 385 isSpherical: False\n    test 386 lat/lonDMS: 52.20472°N, 000.14056°E\n    test 387 lat/lonDMS F_DM: 52°12.283′N, 000°08.434′E\n    test 388 lat/lonDMS F_DM: 52°12.2832′N, 000°08.4336′E\n    test 389 lat/lonDMS F_DMS: 52°12′17″N, 000°08′26″E\n    test 390 lat/lonDMS F_DMS: 52°12′17.0″N, 000°08′26.0″E\n    test 391 lat/lonDMS F_RAD: 0.911144N, 0.002453E\n    test 392 isequalTo: True\n    test 393 isequalTo: True\n    test 394 latlon2: 52.20472, 0.14056\n    test 395 latlon2: 52.2047, 0.1406\n    test 396 latlon2: 52.205, 0.141\n    test 397 latlon2: 52.2, 0.14\n    test 398 latlon2: 52.2, 0.1\n    test 399 latlon2: 52.0, 0.0\n    test 400 chordTo: 12029263.15\n    test 401 chordTo: 12029049.69\n    test 402 copy: True\n    test 403 __eq__: True\n    test 404 __ne__: False\n    test 405 equirectangularTo: 404329.56\n    test 406 distanceTo: 404279.720589\n    test 407 distanceTo: 404279.720589\n    test 408 distanceTo: 3972863\n    test 409 distanceTo: 18013602.92\n    test 410 distanceTo: 20015114.35  FAILED, KNOWN, expected 20003931.46\n    test 411 intermediateTo: 51.372294°N, 000.707192°E\n    test 412 intermediateTo: True\n    test 413 intermediateTo: 404279.721\n    test 414 intermediateTo+5: 35.560239°N, 008.833512°E\n    test 415 intermediateTo+5: 4.885\n    test 416 intermediateTo-4: 64.570387°N, 013.156352°W\n    test 417 intermediateTo-4: 3.885\n    test 418 intermediateTo-h: 125.000\n    test 419 midpointTo: 50.536327°N, 001.274614°E\n    test 420 neareston6: (LatLon(45°00′00.0″N, 001°00′00.0″E), 4755443.4294, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E))\n    test 421 neareston6: (LatLon(45°30′03.94″N, 002°00′00.0″E), 39078.729285, 1.501072, 2, LatLon(45°00′00.0″N, 002°00′00.0″E), LatLon(46°00′00.0″N, 002°00′00.0″E))\n    test 422 chordTo: 125203.963\n    test 423 cosineAndoyerLambertTo: 125205.962\n    test 424 cosineAndoyerLambertTo: 125205.962\n    test 425 cosineForsyheAndoyerLambertTo: 125205.965\n    test 426 cosineForsyheAndoyerLambertTo: 125205.965\n    test 427 cosineLawTo: 124801.098\n    test 428 cosineLawTo: 124801.098\n    test 429 equirectangularTo: 124804.754\n    test 430 equirectangularTo: 124804.754\n    test 431 euclideanTo: 130015.089\n    test 432 euclideanTo: 130015.089\n    test 433 flatLocalTo: 125209.633\n    test 434 flatLocalTo: 125209.633\n    test 435 flatPolarTo: 133663.257\n    test 436 flatPolarTo: 133663.257\n    test 437 hartzell: 53.3206°N, 001.7297°W\n# lazily imported pygeodesy.Triaxial from .triaxials.triaxial5 by ellipsoids.py line 1905\n    test 438 hartzell: 53.349541°N, 001.7297°W\n    test 439 height4: 0.0\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by cartesianBase.py line 364\n    test 440 height4: (3820333.9, -115367.0, 5097204.4, -6584.9)\n    test 441 height4: 53°19′14.2″N, 001°43′46.9″W\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by cartesianBase.py line 364\n    test 442 height4: 53°19′14.2″N, 001°43′46.9″W\n    test 443 haversineTo: 124801.098\n    test 444 haversineTo: 124801.098\n    test 445 hubenyTo: <bound method LatLonBase.flatLocalTo of LatLon(53°19′14.16″N, 001°43′46.92″W)>\n    test 446 hubenyTo: <bound method LatLonBase.flatLocalTo of LatLon(53°11′19.32″N, 000°08′00.24″E)>\n    test 447 thomasTo: 125206.188\n    test 448 thomasTo: 125206.188\n    test 449 vincentysTo: 124801.098\n    test 450 vincentysTo: 124801.098\n    test 451 isclockwise: False\n    test 452 isclockwise*: False\n    test 453 isclockwise: True\n    test 454 isclockwise*: True\n    test 455 isclockwise: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 456 isclockwise*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 457 isclockwise: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 458 isclockwise*: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 459 isconvex: False\n    test 460 isconvex*: False\n    test 461 isconvex: True\n    test 462 isconvex*: True\n    test 463 isconvex: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 464 isconvex*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 465 isenclosedBy1: True\n    test 466 isenclosedBy1*: True\n    test 467 isenclosedBy2: False\n    test 468 isenclosedBy2*: False\n    test 469 isenclosedBy3: False\n    test 470 isenclosedBy3*: False\n    test 471 isenclosedBy4: False\n    test 472 isenclosedBy4*: False\n    test 473 isenclosedBy5: False\n    test 474 isenclosedBy5*: False\n    test 475 isenclosedBy6: True\n    test 476 isenclosedBy6*: True\n    test 477 isenclosedBy7: True\n    test 478 isenclosedBy7*: True\n    test 479 isenclosedBy-CCW: True\n    test 480 isenclosedBy-CW : True\n    test 481 isenclosedBy-CCW: True\n    test 482 compassAngleTo: 100.017\n    test 483 compassAngleTo: 105.599\n    test 484 compassAngleTo: 280.017\n    test 485 compassAngleTo: 285.599\n    test 486 equirectangularTo: 592.185\n    test 487 distanceTo: 591.831\n    test 488 compassAngleTo: 0.0\n    test 489 compassAngleTo: 45.0\n    test 490 compassAngleTo: 90.0\n    test 491 compassAngleTo: 180.0\n    test 492 compassAngleTo: 225.0\n    test 493 compassAngleTo: 315.0\n    test 494 compassAngleTo: 270.0\n    test 495 compassAngleTo: 359.4\n    test 496 latlon2: (53.0, 1.0)\n    test 497 philam2: (0.93, 0.02)\n    test 498 compassAngleTo: 31\n    test 499 compassAngleTo: 45\n\n    test 500 boundsOf: <class 'pygeodesy.namedTuples.Bounds2Tuple'>\n    test 501 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 502 latlon2: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 503 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 504 isequalTo: <class 'bool'>\n    test 505 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 506 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 507 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 508 xyz3: <class 'tuple'>\n    test 509 xyzh: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 510 compassAngleTo: <class 'float'>\n    test 511 cosineLawTo: <class 'float'>\n    test 512 euclideanTo: <class 'float'>\n    test 513 flatLocalTo: <class 'float'>\n    test 514 flatPolarTo: <class 'float'>\n    test 515 haversineTo: <class 'float'>\n    test 516 hubenyTo: <class 'float'>\n    test 517 vincentysTo: <class 'float'>\n    test 518 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 519 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n./pygeodesy/ellipsoidalBase.py:443: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  _ = self.datum.ellipsoid.geodesic\n./pygeodesy/azimuthal.py:636: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return self.datum.ellipsoid.geodesic\n./test/testLatLon.py:627: DeprecationWarning: function L{areaOf<pygeodesy.ellipsoidalVincenty.areaOf>} has been DEPRECATED, use function L{ellipsoidalExact.areaOf} or L{ellipsoidalKarney.areaOf}.\n  r = a(reversed(b))\n./pygeodesy/ellipsoidalKarney.py:139: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return fabs(_polygon(datum.ellipsoid.geodesic, points, True, False, wrap, polar))\n./test/testLatLon.py:628: DeprecationWarning: function L{areaOf<pygeodesy.ellipsoidalVincenty.areaOf>} has been DEPRECATED, use function L{ellipsoidalExact.areaOf} or L{ellipsoidalKarney.areaOf}.\n  f = a(b)  # ccw\n./pygeodesy/ellipsoidalKarney.py:94: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return self.datum.ellipsoid.geodesic\n./test/testLatLon.py:276: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.ellipsoidalKarney.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', p.cosineAndoyerLambertTo(q), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:277: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.ellipsoidalKarney.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', q.cosineAndoyerLambertTo(p), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:279: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.ellipsoidalKarney.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', p.cosineForsytheAndoyerLambertTo(q), '124801.098' if Sph else '125205.965', fmt='%.3f')\n./test/testLatLon.py:280: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.ellipsoidalKarney.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', q.cosineForsytheAndoyerLambertTo(p), '124801.098' if Sph else '125205.965', fmt='%.3f')\n    test 520 toLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 521 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 522 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 523 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 524 toVector: (3934960.466675, 0.0, 5002803.345483)\n    test 525 toVector3d: (0.61823, 0.0, 0.786)\n    test 526 trilaterate5 (pygeodesy.ellipsoidalNvector) .min: 223.305\n    test 527 trilaterate5 (pygeodesy.ellipsoidalNvector) .point: 42.67456065°N, 002.49539502°E\n    test 528 trilaterate5 (pygeodesy.ellipsoidalNvector) .min- is .maxPoint: True\n    test 529 trilaterate5 (pygeodesy.ellipsoidalNvector) .n: 1\n    test 530 trilaterate5 (pygeodesy.ellipsoidalNvector) .error: ellipsoidalNvector.LatLon.trilaterate5(area=True), MRO(nvectorBase.LatLonNvectorBase, ellipsoidalBase.LatLonEllipsoidalBase, latlonBase.LatLonBase, named._NamedBase, ecefLocals._EcefLocal, named._Named): not implemented\n\n    test 531 radii11: Radii11Tuple(rA=7705.84217, rB=1367.057272, rC=498.160185, cR=4897.488519, rIn=740.470746, riS=179.544791, roS=5964.029657, a=1865.217457, b=8204.002354, c=9072.899442, s=9571.059626)\n\n    22 tests skipped (93): numpy in PYGEODESY_XPACKAGES=numpy,scipy: required by vector2d._numpy\n\n    testLatLon(pygeodesy.ellipsoidalVincenty, 25.05.26)\n    test 532 isEllipsoidal: True\n    test 533 isSpherical: False\n    test 534 lat/lonDMS: 52.20472°N, 000.14056°E\n    test 535 lat/lonDMS F_DM: 52°12.283′N, 000°08.434′E\n    test 536 lat/lonDMS F_DM: 52°12.2832′N, 000°08.4336′E\n    test 537 lat/lonDMS F_DMS: 52°12′17″N, 000°08′26″E\n    test 538 lat/lonDMS F_DMS: 52°12′17.0″N, 000°08′26.0″E\n    test 539 lat/lonDMS F_RAD: 0.911144N, 0.002453E\n    test 540 isequalTo: True\n    test 541 isequalTo: True\n    test 542 latlon2: 52.20472, 0.14056\n    test 543 latlon2: 52.2047, 0.1406\n    test 544 latlon2: 52.205, 0.141\n    test 545 latlon2: 52.2, 0.14\n    test 546 latlon2: 52.2, 0.1\n    test 547 latlon2: 52.0, 0.0\n    test 548 chordTo: 12029263.15\n    test 549 chordTo: 12029049.69\n    test 550 initialBearingTo: 156.1106\n    test 551 initialBearingTo: 65.9335\n    test 552 initialBearingTo: 0.0\n    test 553 initialBearingTo: 180.0\n    test 554 finalBearingTo: 157.8345\n    test 555 finalBearingTo: 93.9034\n    test 556 bearingTo2: 156.1106, 157.8345\n    test 557 ispolar: True\n    test 558 copy: True\n    test 559 __eq__: True\n    test 560 __ne__: False\n    test 561 equirectangularTo: 404329.56\n    test 562 distanceTo: 404607.805988\n    test 563 distanceTo: 404607.805988\n    test 564 distanceTo: 3981601\n    test 565 antipodal: False\n    test 566 distanceTo dateline: 19959679.267\n    test 567 distanceTo unrolled: 19959679.267\n    test 568 antipodal: False\n    test 569 distanceTo dateline: 9513998\n    test 570 distanceTo unrolled: 9513998\n    test 571 distanceTo: 18012714.66\n    test 572 distanceTo: ambiguous: LatLon(00°00′00.0″N, 000°00′00.0″E) antipodal to LatLon(00°00′00.0″N, 180°00′00.0″E)  FAILED, KNOWN, expected ambiguous, antipodal ...\n    test 573 distanceTo3 dateline: 19959679.2674, 161.0677, 18.8252\n    test 574 distanceTo3 dateline: 9513997.9901, 42.9164, 138.8903\n    test 575 distanceTo3 dateline: 19959679.2674, 161.0677, 18.8252\n    test 576 distanceTo3 dateline: 9513997.9901, 42.9164, 138.8903\n    test 577 intermediateTo: 51.372275°N, 000.707253°E\n    test 578 intermediateTo: True\n    test 579 intermediateTo: 404607.806\n    test 580 intermediateTo+5: 35.139582°N, 008.994368°E\n    test 581 intermediateTo+5: 5.000\n    test 582 intermediateTo-4: 64.894124°N, 013.705689°W\n    test 583 intermediateTo-4: 4.000\n    test 584 intermediateTo-h: 125.000\n    test 585 midpointTo: 50.536583°N, 001.274507°E\n    test 586 destination: 51.513526°N, 000.098038°W\n    test 587 destination: 51°30′49″N, 000°05′53″W\n    test 588 destination: 33°57′N, 118°24′W\n    test 589 destination: 33.950367°N, 118.399012°W\n    test 590 destination: 0.592546N, 2.066453W\n    test 591 destination: 32.11195529°N, 064.56074722°E  FAILED, KNOWN, expected 32.11195529°N, 063.95925278°E\n    test 592 neareston6: (LatLon(45°00′00.0″N, 001°00′00.0″E), 4755443.4294, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E))\n    test 593 neareston6: (LatLon(45°30′03.94″N, 002°00′00.0″E), 39078.729285, 1.501072, 2, LatLon(45°00′00.0″N, 002°00′00.0″E), LatLon(46°00′00.0″N, 002°00′00.0″E))\n    test 594 chordTo: 125203.963\n    test 595 cosineAndoyerLambertTo: 125205.962\n    test 596 cosineAndoyerLambertTo: 125205.962\n    test 597 cosineForsyheAndoyerLambertTo: 125205.965\n    test 598 cosineForsyheAndoyerLambertTo: 125205.965\n    test 599 cosineLawTo: 124801.098\n    test 600 cosineLawTo: 124801.098\n    test 601 equirectangularTo: 124804.754\n    test 602 equirectangularTo: 124804.754\n    test 603 euclideanTo: 130015.089\n    test 604 euclideanTo: 130015.089\n    test 605 flatLocalTo: 125209.633\n    test 606 flatLocalTo: 125209.633\n    test 607 flatPolarTo: 133663.257\n    test 608 flatPolarTo: 133663.257\n    test 609 hartzell: 53.3206°N, 001.7297°W\n# lazily imported pygeodesy.Triaxial from .triaxials.triaxial5 by ellipsoids.py line 1905\n    test 610 hartzell: 53.349541°N, 001.7297°W\n    test 611 height4: 0.0\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by cartesianBase.py line 364\n    test 612 height4: (3820333.9, -115367.0, 5097204.4, -6584.9)\n    test 613 height4: 53°19′14.2″N, 001°43′46.9″W\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by cartesianBase.py line 364\n    test 614 height4: 53°19′14.2″N, 001°43′46.9″W\n    test 615 haversineTo: 124801.098\n    test 616 haversineTo: 124801.098\n    test 617 hubenyTo: <bound method LatLonBase.flatLocalTo of LatLon(53°19′14.16″N, 001°43′46.92″W)>\n    test 618 hubenyTo: <bound method LatLonBase.flatLocalTo of LatLon(53°11′19.32″N, 000°08′00.24″E)>\n    test 619 thomasTo: 125206.188\n    test 620 thomasTo: 125206.188\n    test 621 vincentysTo: 124801.098\n    test 622 vincentysTo: 124801.098\n    test 623 isclockwise: False\n    test 624 isclockwise*: False\n    test 625 isclockwise: True\n    test 626 isclockwise*: True\n    test 627 isclockwise: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 628 isclockwise*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 629 isclockwise: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 630 isclockwise*: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 631 isconvex: False\n    test 632 isconvex*: False\n    test 633 isconvex: True\n    test 634 isconvex*: True\n    test 635 isconvex: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 636 isconvex*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 637 isenclosedBy1: True\n    test 638 isenclosedBy1*: True\n    test 639 isenclosedBy2: False\n    test 640 isenclosedBy2*: False\n    test 641 isenclosedBy3: False\n    test 642 isenclosedBy3*: False\n    test 643 isenclosedBy4: False\n    test 644 isenclosedBy4*: False\n    test 645 isenclosedBy5: False\n    test 646 isenclosedBy5*: False\n    test 647 isenclosedBy6: True\n    test 648 isenclosedBy6*: True\n    test 649 isenclosedBy7: True\n    test 650 isenclosedBy7*: True\n    test 651 isenclosedBy-CCW: True\n    test 652 isenclosedBy-CW : True\n    test 653 isenclosedBy-CCW: True\n    test 654 initialBearingTo: 102.392291\n    test 655 compassAngleTo: 100.017\n    test 656 compassAngleTo: 105.599\n    test 657 initialBearingTo: 288.676039\n    test 658 compassAngleTo: 280.017\n    test 659 compassAngleTo: 285.599\n    test 660 equirectangularTo: 592.185\n    test 661 distanceTo: 593.571\n    test 662 bearingTo: 0.0\n    test 663 compassAngleTo: 0.0\n    test 664 bearingTo: 45.2  FAILED, KNOWN, expected 45.0\n    test 665 compassAngleTo: 45.0\n    test 666 bearingTo: 90.0\n    test 667 compassAngleTo: 90.0\n    test 668 bearingTo: 180.0\n    test 669 compassAngleTo: 180.0\n    test 670 bearingTo: 225.2  FAILED, KNOWN, expected 225.0\n    test 671 compassAngleTo: 225.0\n    test 672 bearingTo: 314.8  FAILED, KNOWN, expected 315.0\n    test 673 compassAngleTo: 315.0\n    test 674 bearingTo: 270.0\n    test 675 compassAngleTo: 270.0\n    test 676 bearingTo: 360.0  FAILED, KNOWN, expected 359.4\n    test 677 compassAngleTo: 359.4\n    test 678 latlon2: (53.0, 1.0)\n    test 679 philam2: (0.93, 0.02)\n    test 680 bearingTo: 31\n    test 681 compassAngleTo: 31\n    test 682 compassAngleTo: 45\n\n    test 683 boundsOf: <class 'pygeodesy.namedTuples.Bounds2Tuple'>\n    test 684 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 685 latlon2: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 686 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 687 isequalTo: <class 'bool'>\n    test 688 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 689 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 690 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 691 xyz3: <class 'tuple'>\n    test 692 xyzh: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 693 compassAngleTo: <class 'float'>\n    test 694 cosineLawTo: <class 'float'>\n    test 695 euclideanTo: <class 'float'>\n    test 696 flatLocalTo: <class 'float'>\n    test 697 flatPolarTo: <class 'float'>\n    test 698 haversineTo: <class 'float'>\n    test 699 hubenyTo: <class 'float'>\n    test 700 vincentysTo: <class 'float'>\n    test 701 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 702 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 703 toLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 704 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 705 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 706 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 707 toNvector: (0.615661, 0.0, 0.788011, 0)\n    test 708 toVector: (3934960.466675, 0.0, 5002803.345483)\n    test 709 toVector3d: (0.61823, 0.0, 0.786)\n# lazily imported pygeodesy.geodesicw by ellipsoids.py line 1074\n# lazily imported pygeodesy.azimuthal by ellipsoidalBase.py line 444\n\n    test 710 trilaterate5 (pygeodesy.ellipsoidalVincenty) .min: 305.091\n    test 711 trilaterate5 (pygeodesy.ellipsoidalVincenty) .point: 42.66933643°N, 002.48620262°E\n    test 712 trilaterate5 (pygeodesy.ellipsoidalVincenty) .max: 1592.545\n    test 713 trilaterate5 (pygeodesy.ellipsoidalVincenty) .point: 42.65141232°N, 002.46816989°E\n    test 714 trilaterate5 (pygeodesy.ellipsoidalVincenty) .n: 3\n    test 715 trilaterate5 (pygeodesy.ellipsoidalVincenty) .min: 127.229\n    test 716 trilaterate5 (pygeodesy.ellipsoidalVincenty) .max: 152.612\n    test 717 trilaterate5 (pygeodesy.ellipsoidalVincenty) .point: 42.67815375°N, 002.49950041°E\n    test 718 trilaterate5 (pygeodesy.ellipsoidalVincenty) .n: 2\n    test 719 trilaterate5 (pygeodesy.ellipsoidalVincenty) .min: 2400.293\n    test 720 trilaterate5 (pygeodesy.ellipsoidalVincenty) .max: 2400.293\n    test 721 trilaterate5 (pygeodesy.ellipsoidalVincenty) .point: 42.66128984°N, 002.47973818°E\n    test 722 trilaterate5 (pygeodesy.ellipsoidalVincenty) .min- is .maxPoint: True\n    test 723 trilaterate5 (pygeodesy.ellipsoidalVincenty) .n: 1\n    test 724 trilaterate5 (pygeodesy.ellipsoidalVincenty) .min: 1343.743\n    test 725 trilaterate5 (pygeodesy.ellipsoidalVincenty) .point: 42.69131964°N, 002.50112167°E\n    test 726 trilaterate5 (pygeodesy.ellipsoidalVincenty) .max: 1445.554\n    test 727 trilaterate5 (pygeodesy.ellipsoidalVincenty) .point: 42.67815375°N, 002.49950041°E\n    test 728 trilaterate5 (pygeodesy.ellipsoidalVincenty) .n: 2\n    test 729 radii11: Radii11Tuple(rA=7244.792747, rB=1828.106695, rC=2.25502, cR=57792.067128, rIn=57.366968, riS=2.087668, roS=2.443334, a=1830.361715, b=7247.047766, c=9072.899442, s=9075.154461)\n\n    27 tests skipped (120): numpy in PYGEODESY_XPACKAGES=numpy,scipy: required by vector2d._numpy\n\n    test 730 radii11: Radii11Tuple(rA=7244.792747, rB=1828.106695, rC=2.25502, cR=57792.067128, rIn=57.366968, riS=2.087668, roS=2.443334, a=1830.361715, b=7247.047766, c=9072.899442, s=9075.154461)\n\n    22 tests skipped (142): numpy in PYGEODESY_XPACKAGES=numpy,scipy: required by vector2d._numpy\n# lazily imported pygeodesy.ellipsoidalKarney by ellipsoidalVincenty.py line 383\n\n    test 731 area cw/ccw: 1.0\n\n    testLatLon(pygeodesy.ellipsoidalKarney, 25.05.27)\n    test 732 isEllipsoidal: True\n    test 733 isSpherical: False\n    test 734 lat/lonDMS: 52.20472°N, 000.14056°E\n    test 735 lat/lonDMS F_DM: 52°12.283′N, 000°08.434′E\n    test 736 lat/lonDMS F_DM: 52°12.2832′N, 000°08.4336′E\n    test 737 lat/lonDMS F_DMS: 52°12′17″N, 000°08′26″E\n    test 738 lat/lonDMS F_DMS: 52°12′17.0″N, 000°08′26.0″E\n    test 739 lat/lonDMS F_RAD: 0.911144N, 0.002453E\n    test 740 isequalTo: True\n    test 741 isequalTo: True\n    test 742 latlon2: 52.20472, 0.14056\n    test 743 latlon2: 52.2047, 0.1406\n    test 744 latlon2: 52.205, 0.141\n    test 745 latlon2: 52.2, 0.14\n    test 746 latlon2: 52.2, 0.1\n    test 747 latlon2: 52.0, 0.0\n    test 748 chordTo: 12029263.15\n    test 749 chordTo: 12029049.69\n    test 750 initialBearingTo: 156.1106\n    test 751 initialBearingTo: 65.9335\n    test 752 initialBearingTo: 0.0\n    test 753 initialBearingTo: 180.0\n    test 754 finalBearingTo: 157.8345\n    test 755 finalBearingTo: 93.9034\n    test 756 bearingTo2: 156.1106, 157.8345\n    test 757 ispolar: True\n    test 758 copy: True\n    test 759 __eq__: True\n    test 760 __ne__: False\n    test 761 equirectangularTo: 404329.56\n    test 762 distanceTo: 404607.805988\n    test 763 distanceTo: 404607.805988\n    test 764 distanceTo: 3981601\n    test 765 antipodal: False\n    test 766 distanceTo dateline: 19959679.267\n    test 767 distanceTo unrolled: 19959679.267\n    test 768 antipodal: False\n    test 769 distanceTo dateline: 9513998\n    test 770 distanceTo unrolled: 9513998\n    test 771 distanceTo: 18012714.66\n    test 772 distanceTo: 20003931.46\n    test 773 distanceTo3 dateline: 19959679.2674, 161.0677, 18.8252\n    test 774 distanceTo3 dateline: 9513997.9901, 42.9164, 138.8903\n    test 775 distanceTo3 dateline: 19959679.2674, 161.0677, 18.8252\n    test 776 distanceTo3 dateline: 9513997.9901, 42.9164, 138.8903\n    test 777 intermediateTo: 51.372275°N, 000.707253°E\n    test 778 intermediateTo: True\n    test 779 intermediateTo: 404607.806\n    test 780 intermediateTo+5: 35.139582°N, 008.994368°E\n    test 781 intermediateTo+5: 5.000\n    test 782 intermediateTo-4: 64.894124°N, 013.705689°W\n    test 783 intermediateTo-4: 4.000\n    test 784 intermediateTo-h: 125.000\n    test 785 midpointTo: 50.536583°N, 001.274507°E\n    test 786 destination: 51.513526°N, 000.098038°W\n    test 787 destination: 51°30′49″N, 000°05′53″W\n    test 788 destination: 33°57′N, 118°24′W\n    test 789 destination: 33.950367°N, 118.399012°W\n    test 790 destination: 0.592546N, 2.066453W\n    test 791 destination: 32.11195529°N, 064.56074722°E  FAILED, KNOWN, expected 32.11195529°N, 063.95925278°E\n    test 792 neareston6: (LatLon(45°00′00.0″N, 001°00′00.0″E), 4755443.4294, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E))\n    test 793 neareston6: (LatLon(45°30′03.94″N, 002°00′00.0″E), 39078.729285, 1.501072, 2, LatLon(45°00′00.0″N, 002°00′00.0″E), LatLon(46°00′00.0″N, 002°00′00.0″E))\n    test 794 chordTo: 125203.963\n    test 795 cosineAndoyerLambertTo: 125205.962\n    test 796 cosineAndoyerLambertTo: 125205.962\n    test 797 cosineForsyheAndoyerLambertTo: 125205.965\n    test 798 cosineForsyheAndoyerLambertTo: 125205.965\n    test 799 cosineLawTo: 124801.098\n    test 800 cosineLawTo: 124801.098\n    test 801 equirectangularTo: 124804.754\n    test 802 equirectangularTo: 124804.754\n    test 803 euclideanTo: 130015.089\n    test 804 euclideanTo: 130015.089\n    test 805 flatLocalTo: 125209.633\n    test 806 flatLocalTo: 125209.633\n./test/testLatLon.py:276: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.ellipsoidalExact.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', p.cosineAndoyerLambertTo(q), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:277: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.ellipsoidalExact.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', q.cosineAndoyerLambertTo(p), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:279: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.ellipsoidalExact.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', p.cosineForsytheAndoyerLambertTo(q), '124801.098' if Sph else '125205.965', fmt='%.3f')\n./test/testLatLon.py:280: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.ellipsoidalExact.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', q.cosineForsytheAndoyerLambertTo(p), '124801.098' if Sph else '125205.965', fmt='%.3f')\n    test 807 flatPolarTo: 133663.257\n    test 808 flatPolarTo: 133663.257\n    test 809 hartzell: 53.3206°N, 001.7297°W\n# lazily imported pygeodesy.Triaxial from .triaxials.triaxial5 by ellipsoids.py line 1905\n    test 810 hartzell: 53.349541°N, 001.7297°W\n    test 811 height4: 0.0\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by cartesianBase.py line 364\n    test 812 height4: (3820333.9, -115367.0, 5097204.4, -6584.9)\n    test 813 height4: 53°19′14.2″N, 001°43′46.9″W\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by cartesianBase.py line 364\n    test 814 height4: 53°19′14.2″N, 001°43′46.9″W\n    test 815 haversineTo: 124801.098\n    test 816 haversineTo: 124801.098\n    test 817 hubenyTo: <bound method LatLonBase.flatLocalTo of LatLon(53°19′14.16″N, 001°43′46.92″W)>\n    test 818 hubenyTo: <bound method LatLonBase.flatLocalTo of LatLon(53°11′19.32″N, 000°08′00.24″E)>\n    test 819 thomasTo: 125206.188\n    test 820 thomasTo: 125206.188\n    test 821 vincentysTo: 124801.098\n    test 822 vincentysTo: 124801.098\n    test 823 isclockwise: False\n    test 824 isclockwise*: False\n    test 825 isclockwise: True\n    test 826 isclockwise*: True\n    test 827 isclockwise: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 828 isclockwise*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 829 isclockwise: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 830 isclockwise*: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 831 isconvex: False\n    test 832 isconvex*: False\n    test 833 isconvex: True\n    test 834 isconvex*: True\n    test 835 isconvex: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 836 isconvex*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 837 isenclosedBy1: True\n    test 838 isenclosedBy1*: True\n    test 839 isenclosedBy2: False\n    test 840 isenclosedBy2*: False\n    test 841 isenclosedBy3: False\n    test 842 isenclosedBy3*: False\n    test 843 isenclosedBy4: False\n    test 844 isenclosedBy4*: False\n    test 845 isenclosedBy5: False\n    test 846 isenclosedBy5*: False\n    test 847 isenclosedBy6: True\n    test 848 isenclosedBy6*: True\n    test 849 isenclosedBy7: True\n    test 850 isenclosedBy7*: True\n    test 851 isenclosedBy-CCW: True\n    test 852 isenclosedBy-CW : True\n    test 853 isenclosedBy-CCW: True\n    test 854 initialBearingTo: 102.392291\n    test 855 compassAngleTo: 100.017\n    test 856 compassAngleTo: 105.599\n    test 857 initialBearingTo: 288.676039\n    test 858 compassAngleTo: 280.017\n    test 859 compassAngleTo: 285.599\n    test 860 equirectangularTo: 592.185\n    test 861 distanceTo: 593.571\n    test 862 bearingTo: 0.0\n    test 863 compassAngleTo: 0.0\n    test 864 bearingTo: 45.2  FAILED, KNOWN, expected 45.0\n    test 865 compassAngleTo: 45.0\n    test 866 bearingTo: 90.0\n    test 867 compassAngleTo: 90.0\n    test 868 bearingTo: 180.0\n    test 869 compassAngleTo: 180.0\n    test 870 bearingTo: 225.2  FAILED, KNOWN, expected 225.0\n    test 871 compassAngleTo: 225.0\n    test 872 bearingTo: 314.8  FAILED, KNOWN, expected 315.0\n    test 873 compassAngleTo: 315.0\n    test 874 bearingTo: 270.0\n    test 875 compassAngleTo: 270.0\n    test 876 bearingTo: 0.0  FAILED, KNOWN, expected 359.4\n    test 877 compassAngleTo: 359.4\n    test 878 latlon2: (53.0, 1.0)\n    test 879 philam2: (0.93, 0.02)\n    test 880 bearingTo: 31\n    test 881 compassAngleTo: 31\n    test 882 compassAngleTo: 45\n\n    test 883 boundsOf: <class 'pygeodesy.namedTuples.Bounds2Tuple'>\n    test 884 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 885 latlon2: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 886 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 887 isequalTo: <class 'bool'>\n    test 888 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 889 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 890 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 891 xyz3: <class 'tuple'>\n    test 892 xyzh: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 893 compassAngleTo: <class 'float'>\n    test 894 cosineLawTo: <class 'float'>\n    test 895 euclideanTo: <class 'float'>\n    test 896 flatLocalTo: <class 'float'>\n    test 897 flatPolarTo: <class 'float'>\n    test 898 haversineTo: <class 'float'>\n    test 899 hubenyTo: <class 'float'>\n    test 900 vincentysTo: <class 'float'>\n    test 901 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 902 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 903 toLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 904 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 905 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 906 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 907 toNvector: (0.615661, 0.0, 0.788011, 0)\n    test 908 toVector: (3934960.466675, 0.0, 5002803.345483)\n    test 909 toVector3d: (0.61823, 0.0, 0.786)\n\n    test 910 trilaterate5 (pygeodesy.ellipsoidalKarney) .min: 305.091\n    test 911 trilaterate5 (pygeodesy.ellipsoidalKarney) .point: 42.66933643°N, 002.48620262°E\n    test 912 trilaterate5 (pygeodesy.ellipsoidalKarney) .max: 1592.545\n    test 913 trilaterate5 (pygeodesy.ellipsoidalKarney) .point: 42.65141232°N, 002.46816989°E\n    test 914 trilaterate5 (pygeodesy.ellipsoidalKarney) .n: 3\n    test 915 trilaterate5 (pygeodesy.ellipsoidalKarney) .min: 127.229\n    test 916 trilaterate5 (pygeodesy.ellipsoidalKarney) .max: 152.612\n    test 917 trilaterate5 (pygeodesy.ellipsoidalKarney) .point: 42.67815375°N, 002.49950041°E\n    test 918 trilaterate5 (pygeodesy.ellipsoidalKarney) .n: 2\n    test 919 trilaterate5 (pygeodesy.ellipsoidalKarney) .min: 2400.293\n    test 920 trilaterate5 (pygeodesy.ellipsoidalKarney) .max: 2400.293\n    test 921 trilaterate5 (pygeodesy.ellipsoidalKarney) .point: 42.66128984°N, 002.47973818°E\n    test 922 trilaterate5 (pygeodesy.ellipsoidalKarney) .min- is .maxPoint: True\n    test 923 trilaterate5 (pygeodesy.ellipsoidalKarney) .n: 1\n    test 924 trilaterate5 (pygeodesy.ellipsoidalKarney) .min: 1343.743\n    test 925 trilaterate5 (pygeodesy.ellipsoidalKarney) .point: 42.69131964°N, 002.50112167°E\n    test 926 trilaterate5 (pygeodesy.ellipsoidalKarney) .max: 1445.554\n    test 927 trilaterate5 (pygeodesy.ellipsoidalKarney) .point: 42.67815375°N, 002.49950041°E\n    test 928 trilaterate5 (pygeodesy.ellipsoidalKarney) .n: 2\n    test 929 radii11: Radii11Tuple(rA=7244.792747, rB=1828.106695, rC=2.25502, cR=57792.067128, rIn=57.366968, riS=2.087668, roS=2.443334, a=1830.361715, b=7247.047766, c=9072.899442, s=9075.154461)\n\n    27 tests skipped (169): numpy in PYGEODESY_XPACKAGES=numpy,scipy: required by vector2d._numpy\n\n    test 930 radii11: Radii11Tuple(rA=7244.792747, rB=1828.106695, rC=2.25502, cR=57792.067128, rIn=57.366968, riS=2.087668, roS=2.443334, a=1830.361715, b=7247.047766, c=9072.899442, s=9075.154461)\n\n    22 tests skipped (191): numpy in PYGEODESY_XPACKAGES=numpy,scipy: required by vector2d._numpy\n\n    test 931 area cw/ccw: 1.0\n\n    testLatLon(pygeodesy.ellipsoidalExact, 25.08.28)\n    test 932 isEllipsoidal: True\n    test 933 isSpherical: False\n    test 934 lat/lonDMS: 52.20472°N, 000.14056°E\n    test 935 lat/lonDMS F_DM: 52°12.283′N, 000°08.434′E\n    test 936 lat/lonDMS F_DM: 52°12.2832′N, 000°08.4336′E\n    test 937 lat/lonDMS F_DMS: 52°12′17″N, 000°08′26″E\n    test 938 lat/lonDMS F_DMS: 52°12′17.0″N, 000°08′26.0″E\n    test 939 lat/lonDMS F_RAD: 0.911144N, 0.002453E\n    test 940 isequalTo: True\n    test 941 isequalTo: True\n    test 942 latlon2: 52.20472, 0.14056\n    test 943 latlon2: 52.2047, 0.1406\n    test 944 latlon2: 52.205, 0.141\n    test 945 latlon2: 52.2, 0.14\n    test 946 latlon2: 52.2, 0.1\n    test 947 latlon2: 52.0, 0.0\n    test 948 chordTo: 12029263.15\n    test 949 chordTo: 12029049.69\n# lazily imported pygeodesy.geodesicx by ellipsoids.py line 1082\n# lazily imported pygeodesy.elliptic by gx.py line 421\n    test 950 initialBearingTo: 156.1106\n    test 951 initialBearingTo: 65.9335\n    test 952 initialBearingTo: 0.0\n    test 953 initialBearingTo: 180.0\n    test 954 finalBearingTo: 157.8345\n    test 955 finalBearingTo: 93.9034\n    test 956 bearingTo2: 156.1106, 157.8345\n    test 957 ispolar: True\n    test 958 copy: True\n    test 959 __eq__: True\n    test 960 __ne__: False\n    test 961 equirectangularTo: 404329.56\n    test 962 distanceTo: 404607.805988\n    test 963 distanceTo: 404607.805988\n    test 964 distanceTo: 3981601\n    test 965 antipodal: False\n    test 966 distanceTo dateline: 19959679.267\n    test 967 distanceTo unrolled: 19959679.267\n    test 968 antipodal: False\n    test 969 distanceTo dateline: 9513998\n    test 970 distanceTo unrolled: 9513998\n    test 971 distanceTo: 18012714.66\n    test 972 distanceTo: 20003931.46\n    test 973 distanceTo3 dateline: 19959679.2674, 161.0677, 18.8252\n    test 974 distanceTo3 dateline: 9513997.9901, 42.9164, 138.8903\n    test 975 distanceTo3 dateline: 19959679.2674, 161.0677, 18.8252\n    test 976 distanceTo3 dateline: 9513997.9901, 42.9164, 138.8903\n    test 977 intermediateTo: 51.372275°N, 000.707253°E\n    test 978 intermediateTo: True\n    test 979 intermediateTo: 404607.806\n    test 980 intermediateTo+5: 35.139582°N, 008.994368°E\n    test 981 intermediateTo+5: 5.000\n    test 982 intermediateTo-4: 64.894124°N, 013.705689°W\n    test 983 intermediateTo-4: 4.000\n    test 984 intermediateTo-h: 125.000\n    test 985 midpointTo: 50.536583°N, 001.274507°E\n    test 986 destination: 51.513526°N, 000.098038°W\n    test 987 destination: 51°30′49″N, 000°05′53″W\n    test 988 destination: 33°57′N, 118°24′W\n    test 989 destination: 33.950367°N, 118.399012°W\n    test 990 destination: 0.592546N, 2.066453W\n    test 991 destination: 32.11195529°N, 064.56074722°E  FAILED, KNOWN, expected 32.11195529°N, 063.95925278°E\n    test 992 neareston6: (LatLon(45°00′00.0″N, 001°00′00.0″E), 4755443.4294, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E))\n    test 993 neareston6: (LatLon(45°30′03.94″N, 002°00′00.0″E), 39078.729285, 1.501072, 2, LatLon(45°00′00.0″N, 002°00′00.0″E), LatLon(46°00′00.0″N, 002°00′00.0″E))\n    test 994 chordTo: 125203.963\n    test 995 cosineAndoyerLambertTo: 125205.962\n    test 996 cosineAndoyerLambertTo: 125205.962\n    test 997 cosineForsyheAndoyerLambertTo: 125205.965\n    test 998 cosineForsyheAndoyerLambertTo: 125205.965\n    test 999 cosineLawTo: 124801.098\n    test 1000 cosineLawTo: 124801.098\n    test 1001 equirectangularTo: 124804.754\n    test 1002 equirectangularTo: 124804.754\n    test 1003 euclideanTo: 130015.089\n    test 1004 euclideanTo: 130015.089\n    test 1005 flatLocalTo: 125209.633\n    test 1006 flatLocalTo: 125209.633\n    test 1007 flatPolarTo: 133663.257\n    test 1008 flatPolarTo: 133663.257\n    test 1009 hartzell: 53.3206°N, 001.7297°W\n# lazily imported pygeodesy.Triaxial from .triaxials.triaxial5 by ellipsoids.py line 1905\n    test 1010 hartzell: 53.349541°N, 001.7297°W\n    test 1011 height4: 0.0\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by cartesianBase.py line 364\n    test 1012 height4: (3820333.9, -115367.0, 5097204.4, -6584.9)\n    test 1013 height4: 53°19′14.2″N, 001°43′46.9″W\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by cartesianBase.py line 364\n    test 1014 height4: 53°19′14.2″N, 001°43′46.9″W\n    test 1015 haversineTo: 124801.098\n    test 1016 haversineTo: 124801.098\n    test 1017 hubenyTo: <bound method LatLonBase.flatLocalTo of LatLon(53°19′14.16″N, 001°43′46.92″W)>\n    test 1018 hubenyTo: <bound method LatLonBase.flatLocalTo of LatLon(53°11′19.32″N, 000°08′00.24″E)>\n    test 1019 thomasTo: 125206.188\n    test 1020 thomasTo: 125206.188\n    test 1021 vincentysTo: 124801.098\n    test 1022 vincentysTo: 124801.098\n    test 1023 isclockwise: False\n    test 1024 isclockwise*: False\n    test 1025 isclockwise: True\n    test 1026 isclockwise*: True\n    test 1027 isclockwise: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 1028 isclockwise*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 1029 isclockwise: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 1030 isclockwise*: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 1031 isconvex: False\n    test 1032 isconvex*: False\n    test 1033 isconvex: True\n    test 1034 isconvex*: True\n    test 1035 isconvex: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 1036 isconvex*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 1037 isenclosedBy1: True\n    test 1038 isenclosedBy1*: True\n    test 1039 isenclosedBy2: False\n    test 1040 isenclosedBy2*: False\n    test 1041 isenclosedBy3: False\n    test 1042 isenclosedBy3*: False\n    test 1043 isenclosedBy4: False\n    test 1044 isenclosedBy4*: False\n    test 1045 isenclosedBy5: False\n    test 1046 isenclosedBy5*: False\n    test 1047 isenclosedBy6: True\n    test 1048 isenclosedBy6*: True\n    test 1049 isenclosedBy7: True\n    test 1050 isenclosedBy7*: True\n    test 1051 isenclosedBy-CCW: True\n    test 1052 isenclosedBy-CW : True\n    test 1053 isenclosedBy-CCW: True\n    test 1054 initialBearingTo: 102.392291\n    test 1055 compassAngleTo: 100.017\n    test 1056 compassAngleTo: 105.599\n    test 1057 initialBearingTo: 288.676039\n    test 1058 compassAngleTo: 280.017\n    test 1059 compassAngleTo: 285.599\n    test 1060 equirectangularTo: 592.185\n    test 1061 distanceTo: 593.571\n    test 1062 bearingTo: 0.0\n    test 1063 compassAngleTo: 0.0\n    test 1064 bearingTo: 45.2  FAILED, KNOWN, expected 45.0\n    test 1065 compassAngleTo: 45.0\n    test 1066 bearingTo: 90.0\n    test 1067 compassAngleTo: 90.0\n    test 1068 bearingTo: 180.0\n    test 1069 compassAngleTo: 180.0\n    test 1070 bearingTo: 225.2  FAILED, KNOWN, expected 225.0\n    test 1071 compassAngleTo: 225.0\n    test 1072 bearingTo: 314.8  FAILED, KNOWN, expected 315.0\n    test 1073 compassAngleTo: 315.0\n    test 1074 bearingTo: 270.0\n    test 1075 compassAngleTo: 270.0\n    test 1076 bearingTo: 0.0  FAILED, KNOWN, expected 359.4\n    test 1077 compassAngleTo: 359.4\n    test 1078 latlon2: (53.0, 1.0)\n    test 1079 philam2: (0.93, 0.02)\n    test 1080 bearingTo: 31\n    test 1081 compassAngleTo: 31\n    test 1082 compassAngleTo: 45\n\n    test 1083 boundsOf: <class 'pygeodesy.namedTuples.Bounds2Tuple'>\n    test 1084 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 1085 latlon2: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 1086 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 1087 isequalTo: <class 'bool'>\n    test 1088 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 1089 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 1090 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 1091 xyz3: <class 'tuple'>\n    test 1092 xyzh: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 1093 compassAngleTo: <class 'float'>\n    test 1094 cosineLawTo: <class 'float'>\n    test 1095 euclideanTo: <class 'float'>\n    test 1096 flatLocalTo: <class 'float'>\n    test 1097 flatPolarTo: <class 'float'>\n    test 1098 haversineTo: <class 'float'>\n    test 1099 hubenyTo: <class 'float'>\n    test 1100 vincentysTo: <class 'float'>\n    test 1101 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 1102 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 1103 toLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 1104 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 1105 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 1106 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 1107 toNvector: (0.615661, 0.0, 0.788011, 0)\n    test 1108 toVector: (3934960.466675, 0.0, 5002803.345483)\n    test 1109 toVector3d: (0.61823, 0.0, 0.786)\n\n    test 1110 trilaterate5 (pygeodesy.ellipsoidalExact) .min: 305.091\n    test 1111 trilaterate5 (pygeodesy.ellipsoidalExact) .point: 42.66933643°N, 002.48620262°E\n    test 1112 trilaterate5 (pygeodesy.ellipsoidalExact) .max: 1592.545\n    test 1113 trilaterate5 (pygeodesy.ellipsoidalExact) .point: 42.65141232°N, 002.46816989°E\n    test 1114 trilaterate5 (pygeodesy.ellipsoidalExact) .n: 3\n    test 1115 trilaterate5 (pygeodesy.ellipsoidalExact) .min: 127.229\n    test 1116 trilaterate5 (pygeodesy.ellipsoidalExact) .max: 152.612\n    test 1117 trilaterate5 (pygeodesy.ellipsoidalExact) .point: 42.67815375°N, 002.49950041°E\n    test 1118 trilaterate5 (pygeodesy.ellipsoidalExact) .n: 2\n    test 1119 trilaterate5 (pygeodesy.ellipsoidalExact) .min: 2400.293\n    test 1120 trilaterate5 (pygeodesy.ellipsoidalExact) .max: 2400.293\n    test 1121 trilaterate5 (pygeodesy.ellipsoidalExact) .point: 42.66128984°N, 002.47973818°E\n    test 1122 trilaterate5 (pygeodesy.ellipsoidalExact) .min- is .maxPoint: True\n    test 1123 trilaterate5 (pygeodesy.ellipsoidalExact) .n: 1\n    test 1124 trilaterate5 (pygeodesy.ellipsoidalExact) .min: 1343.743\n    test 1125 trilaterate5 (pygeodesy.ellipsoidalExact) .point: 42.69131964°N, 002.50112167°E\n    test 1126 trilaterate5 (pygeodesy.ellipsoidalExact) .max: 1445.554\n    test 1127 trilaterate5 (pygeodesy.ellipsoidalExact) .point: 42.67815375°N, 002.49950041°E\n    test 1128 trilaterate5 (pygeodesy.ellipsoidalExact) .n: 2\n    test 1129 radii11: Radii11Tuple(rA=7244.792747, rB=1828.106695, rC=2.25502, cR=57792.067128, rIn=57.366968, riS=2.087668, roS=2.443334, a=1830.361715, b=7247.047766, c=9072.899442, s=9075.154461)\n\n    27 tests skipped (218): numpy in PYGEODESY_XPACKAGES=numpy,scipy: required by vector2d._numpy\n\n    test 1130 radii11: Radii11Tuple(rA=7244.792747, rB=1828.106695, rC=2.25502, cR=57792.067128, rIn=57.366968, riS=2.087668, roS=2.443334, a=1830.361715, b=7247.047766, c=9072.899442, s=9075.154461)\n\n    22 tests skipped (240): numpy in PYGEODESY_XPACKAGES=numpy,scipy: required by vector2d._numpy\n\n    test 1131 area cw/ccw: 1.0\n\n    274 of 1131 testLatLon.py tests (24.2%) FAILED, incl. 63 KNOWN plus 211 DeprecationWarnings, 240 skipped (pygeodesy 26.3.26 PyPy 7.3.17 Python 3.10.14 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 2.873 sec\nrunning /opt/local/bin/p....y3.10 -W default ~/PyGeodesy/test/testLatLonBase.py\n# lazily imported pygeodesy.basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.DeprecationWarnings from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isint from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isLazy from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.issubclassof from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.iterNumpy2over from .iters by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.LazyImportError from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.karney by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.NN from .interns by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.normDMS from .dms by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.pairs from .streprs by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.printf from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.property_RO from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.typename from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.F_D from .dms by testLatLonBase.py line 11\n# lazily imported pygeodesy.F_DMS from .dms by testLatLonBase.py line 11\n# lazily imported pygeodesy.isCartesian from .basics by testLatLonBase.py line 11\n# lazily imported pygeodesy.isLatLon from .basics by testLatLonBase.py line 11\n# lazily imported pygeodesy.isNvector from .basics by testLatLonBase.py line 11\n# lazily imported pygeodesy.precision from .dms by testLatLonBase.py line 11\n# lazily imported pygeodesy.ellipsoidalExact by testLatLonBase.py line 140\n# lazily imported pygeodesy.ellipsoidalKarney by testLatLonBase.py line 140\n# lazily imported pygeodesy.ellipsoidalNvector by testLatLonBase.py line 140\n# lazily imported pygeodesy.ellipsoidalVincenty by testLatLonBase.py line 140\n# lazily imported pygeodesy.sphericalNvector by testLatLonBase.py line 140\n# lazily imported pygeodesy.sphericalTrigonometry by testLatLonBase.py line 140\n\n    testing testLatLonBase.py 23.10.15 isLazy=3\n\n    testLatLon(pygeodesy.sphericalNvector, 25.05.27)\n    test 1 lat, lon: 50.06632°N, 005.71475°W\n    test 2 lat, lon: 50.066389°N, 005.714722°W\n# imported pygeodesy.formy into latlonBase.py line 756\n    test 3 isequalTo: True\n    test 4 isequalTo3: True\n    test 5 latlon: (52.205, 0.119)\n    test 6 latlonheight: (52.205, 0.119, 0)\n    test 7 phimlam: (0.911149, 0.002077)\n    test 8 phimlamheight: (0.911149, 0.002077, 0)\n    test 9 isequalTo: False\n    test 10 antipode1: 52.205°S, 179.881°W\n    test 11 antipode2: True\n    test 12 antipode3: 52.205°N, 000.119°E\n    test 13 antipode4: True\n    test 14 antipode5: 52.205°N, 000.119°E\n    test 15 isnormal1: True\n    test 16 isnormal2: False\n    test 17 normal1: False\n    test 18 normal2: True\n    test 19 toStr: 51°28′40″N, 000°00′06″W\n    test 20 toStr: 51.4778°N, 000.0016°W\n    test 21 precision: 0\n    test 22 toStr: 51°28′40″N, 000°00′06″W, +42.00m\n    test 23 isequalTo: True\n    test 24 isequalTo3: False\n    test 25 latlon: (51.4778, -0.0016)\n    test 26 phimlam: (0.898457, -0.000028)\n    test 27 isequalTo: True\n    test 28 isequalTo3: True\n    test 29 latlon: (51.4778, -0.0016)\n    test 30 latlonheight: (51.4778, -0.0016, 42.0)\n    test 31 phimlam: (0.898457, -0.000028)\n    test 32 phimlamheight: (0.898457, -0.000028, 42.0)\n    test 33 latlon: LatLon2Tuple(lat=51.4778, lon=-0.0016)\n    test 34 latlonheight: LatLon3Tuple(lat=51.4778, lon=-0.0016, height=42.0)\n    test 35 phimlam: PhiLam2Tuple(phi=0.898457, lam=-0.000028)\n    test 36 phimlamheight: PhiLam3Tuple(phi=0.898457, lam=-0.000028, height=42.0)\n    test 37 ellipsoidalLatLon: True\n    test 38 sphericalLatLon: True\n# lazily imported pygeodesy.rhumb by ellipsoids.py line 1518\n\n    test 39 rhumbLine: TMorder=6, azi12=30.0, exact=False, lat1=51.4778, lon1=-0.0016, rhumb=Rhumb....ere', a=6371008.771415, f=0, f_=0, b=6371008.771415), k0=0.9996, TMorder=6)\n    test 40 rhumbLine: TMorder=6, azi12=105.484906, exact=False, lat1=51.4778, lon1=-0.0016, rhumb....ere', a=6371008.771415, f=0, f_=0, b=6371008.771415), k0=0.9996, TMorder=6)\n    test 41 rhumbAzimuthTo: 107.563\n    test 42 rhumbDestination: 50.964155°N, 001.853°E\n    test 43 rhumbDestination: True\n    test 44 rhumbDistanceTo: 42186.1\n# lazily imported pygeodesy.elliptic by ellipsoids.py line 850\n    test 45 rhumbIntersecant2: (LatLon(58°40′08.68″N, 042°42′40.63″E), LatLon(18°47′05.09″N, 011°00′15.53″W))\n    test 46 rhumbMidpointo-0.5: 51.069759°N, 001.625988°E\n    test 47 rhumbMidpointo: True\n    test 48 rhumbMidpointo-0.0: 51.127°N, 001.338°E\n    test 49 rhumbMidpointo-0.25: 51.09838°N, 001.482038°E\n    test 50 rhumbMidpointo-0.75: 51.041139°N, 001.769848°E\n    test 51 rhumbMidpointo-1.0: 51.012519°N, 001.913619°E\n    test 52 rhumbMidpointo-2.0: 50.898038°N, 002.48782°E\n\n    testLatLon(pygeodesy.sphericalTrigonometry, 25.08.31)\n    test 53 lat, lon: 50.06632°N, 005.71475°W\n    test 54 lat, lon: 50.066389°N, 005.714722°W\n    test 55 isequalTo: True\n    test 56 isequalTo3: True\n    test 57 latlon: (52.205, 0.119)\n    test 58 latlonheight: (52.205, 0.119, 0)\n    test 59 phimlam: (0.911149, 0.002077)\n    test 60 phimlamheight: (0.911149, 0.002077, 0)\n    test 61 isequalTo: False\n    test 62 antipode1: 52.205°S, 179.881°W\n    test 63 antipode2: True\n    test 64 antipode3: 52.205°N, 000.119°E\n    test 65 antipode4: True\n    test 66 antipode5: 52.205°N, 000.119°E\n    test 67 isnormal1: True\n    test 68 isnormal2: False\n    test 69 normal1: False\n    test 70 normal2: True\n    test 71 toStr: 51°28′40″N, 000°00′06″W\n    test 72 toStr: 51.4778°N, 000.0016°W\n    test 73 precision: 0\n    test 74 toStr: 51°28′40″N, 000°00′06″W, +42.00m\n    test 75 isequalTo: True\n    test 76 isequalTo3: False\n    test 77 latlon: (51.4778, -0.0016)\n    test 78 phimlam: (0.898457, -0.000028)\n    test 79 isequalTo: True\n    test 80 isequalTo3: True\n    test 81 latlon: (51.4778, -0.0016)\n    test 82 latlonheight: (51.4778, -0.0016, 42.0)\n    test 83 phimlam: (0.898457, -0.000028)\n    test 84 phimlamheight: (0.898457, -0.000028, 42.0)\n    test 85 latlon: LatLon2Tuple(lat=51.4778, lon=-0.0016)\n    test 86 latlonheight: LatLon3Tuple(lat=51.4778, lon=-0.0016, height=42.0)\n    test 87 phimlam: PhiLam2Tuple(phi=0.898457, lam=-0.000028)\n    test 88 phimlamheight: PhiLam3Tuple(phi=0.898457, lam=-0.000028, height=42.0)\n    test 89 ellipsoidalLatLon: True\n    test 90 sphericalLatLon: True\n\n    test 91 rhumbLine: TMorder=6, azi12=30.0, exact=False, lat1=51.4778, lon1=-0.0016, rhumb=Rhumb....ere', a=6371008.771415, f=0, f_=0, b=6371008.771415), k0=0.9996, TMorder=6)\n    test 92 rhumbLine: TMorder=6, azi12=105.484906, exact=False, lat1=51.4778, lon1=-0.0016, rhumb....ere', a=6371008.771415, f=0, f_=0, b=6371008.771415), k0=0.9996, TMorder=6)\n    test 93 rhumbAzimuthTo: 107.563\n    test 94 rhumbDestination: 50.964155°N, 001.853°E\n    test 95 rhumbDestination: True\n    test 96 rhumbDistanceTo: 42186.1\n    test 97 rhumbIntersecant2: (LatLon(58°40′08.68″N, 042°42′40.63″E), LatLon(18°47′05.09″N, 011°00′15.53″W))\n    test 98 rhumbMidpointo-0.5: 51.069759°N, 001.625988°E\n    test 99 rhumbMidpointo: True\n    test 100 rhumbMidpointo-0.0: 51.127°N, 001.338°E\n    test 101 rhumbMidpointo-0.25: 51.09838°N, 001.482038°E\n    test 102 rhumbMidpointo-0.75: 51.041139°N, 001.769848°E\n    test 103 rhumbMidpointo-1.0: 51.012519°N, 001.913619°E\n    test 104 rhumbMidpointo-2.0: 50.898038°N, 002.48782°E\n\n    testLatLon(pygeodesy.ellipsoidalNvector, 25.05.12)\n    test 105 lat, lon: 50.06632°N, 005.71475°W\n    test 106 lat, lon: 50.066389°N, 005.714722°W\n    test 107 isequalTo: True\n    test 108 isequalTo3: True\n    test 109 latlon: (52.205, 0.119)\n    test 110 latlonheight: (52.205, 0.119, 0)\n    test 111 phimlam: (0.911149, 0.002077)\n    test 112 phimlamheight: (0.911149, 0.002077, 0)\n    test 113 isequalTo: False\n    test 114 antipode1: 52.205°S, 179.881°W\n    test 115 antipode2: True\n    test 116 antipode3: 52.205°N, 000.119°E\n    test 117 antipode4: True\n    test 118 antipode5: 52.205°N, 000.119°E\n    test 119 isnormal1: True\n    test 120 isnormal2: False\n    test 121 normal1: False\n    test 122 normal2: True\n    test 123 toStr: 51°28′40″N, 000°00′06″W\n    test 124 toStr: 51.4778°N, 000.0016°W\n    test 125 precision: 0\n    test 126 toStr: 51°28′40″N, 000°00′06″W, +42.00m\n    test 127 isequalTo: True\n    test 128 isequalTo3: False\n    test 129 latlon: (51.4778, -0.0016)\n    test 130 phimlam: (0.898457, -0.000028)\n    test 131 isequalTo: True\n    test 132 isequalTo3: True\n    test 133 latlon: (51.4778, -0.0016)\n    test 134 latlonheight: (51.4778, -0.0016, 42.0)\n    test 135 phimlam: (0.898457, -0.000028)\n    test 136 phimlamheight: (0.898457, -0.000028, 42.0)\n    test 137 latlon: LatLon2Tuple(lat=51.4778, lon=-0.0016)\n    test 138 latlonheight: LatLon3Tuple(lat=51.4778, lon=-0.0016, height=42.0)\n    test 139 phimlam: PhiLam2Tuple(phi=0.898457, lam=-0.000028)\n    test 140 phimlamheight: PhiLam3Tuple(phi=0.898457, lam=-0.000028, height=42.0)\n    test 141 ellipsoidalLatLon: True\n    test 142 sphericalLatLon: True\n\n    test 143 rhumbLine: TMorder=6, azi12=30.0, exact=False, lat1=51.4778, lon1=-0.0016, rhumb=Rhumb...., f=0.00335281, f_=298.25722356, b=6356752.31424518), k0=0.9996, TMorder=6)\n    test 144 rhumbLine: TMorder=6, azi12=113.805696, exact=False, lat1=51.4778, lon1=-0.0016, rhumb...., f=0.00335281, f_=298.25722356, b=6356752.31424518), k0=0.9996, TMorder=6)\n    test 145 rhumbAzimuthTo: 116.661\n    test 146 rhumbDestination: 50.964234°N, 001.851383°E\n    test 147 rhumbDestination: True\n    test 148 rhumbDistanceTo: 40413.1\n    test 149 rhumbIntersecant2: (LatLon(58°59′33.52″N, 043°11′56.62″E), LatLon(20°25′12.01″N, 009°12′37.27″W))\n    test 150 rhumbMidpointo-0.5: 51.045501°N, 001.595726°E\n    test 151 rhumbMidpointo: True\n    test 152 rhumbMidpointo-0.0: 51.127°N, 001.338°E\n    test 153 rhumbMidpointo-0.25: 51.08625°N, 001.46692°E\n    test 154 rhumbMidpointo-0.75: 51.00475°N, 001.724419°E\n    test 155 rhumbMidpointo-1.0: 50.964°N, 001.853°E\n    test 156 rhumbMidpointo-2.0: 50.800995°N, 002.366201°E\n\n    testLatLon(pygeodesy.ellipsoidalVincenty, 25.05.26)\n    test 157 lat, lon: 50.06632°N, 005.71475°W\n    test 158 lat, lon: 50.066389°N, 005.714722°W\n    test 159 isequalTo: True\n    test 160 isequalTo3: True\n    test 161 latlon: (52.205, 0.119)\n    test 162 latlonheight: (52.205, 0.119, 0)\n    test 163 phimlam: (0.911149, 0.002077)\n    test 164 phimlamheight: (0.911149, 0.002077, 0)\n    test 165 isequalTo: False\n    test 166 antipode1: 52.205°S, 179.881°W\n    test 167 antipode2: True\n    test 168 antipode3: 52.205°N, 000.119°E\n    test 169 antipode4: True\n    test 170 antipode5: 52.205°N, 000.119°E\n    test 171 isnormal1: True\n    test 172 isnormal2: False\n    test 173 normal1: False\n    test 174 normal2: True\n    test 175 toStr: 51°28′40″N, 000°00′06″W\n    test 176 toStr: 51.4778°N, 000.0016°W\n    test 177 precision: 0\n    test 178 toStr: 51°28′40″N, 000°00′06″W, +42.00m\n    test 179 isequalTo: True\n    test 180 isequalTo3: False\n    test 181 latlon: (51.4778, -0.0016)\n    test 182 phimlam: (0.898457, -0.000028)\n    test 183 isequalTo: True\n    test 184 isequalTo3: True\n    test 185 latlon: (51.4778, -0.0016)\n    test 186 latlonheight: (51.4778, -0.0016, 42.0)\n    test 187 phimlam: (0.898457, -0.000028)\n    test 188 phimlamheight: (0.898457, -0.000028, 42.0)\n    test 189 latlon: LatLon2Tuple(lat=51.4778, lon=-0.0016)\n    test 190 latlonheight: LatLon3Tuple(lat=51.4778, lon=-0.0016, height=42.0)\n    test 191 phimlam: PhiLam2Tuple(phi=0.898457, lam=-0.000028)\n    test 192 phimlamheight: PhiLam3Tuple(phi=0.898457, lam=-0.000028, height=42.0)\n    test 193 ellipsoidalLatLon: True\n    test 194 sphericalLatLon: True\n\n    test 195 rhumbLine: TMorder=6, azi12=30.0, exact=False, lat1=51.4778, lon1=-0.0016, rhumb=Rhumb...., f=0.00335281, f_=298.25722356, b=6356752.31424518), k0=0.9996, TMorder=6)\n    test 196 rhumbLine: TMorder=6, azi12=113.805696, exact=False, lat1=51.4778, lon1=-0.0016, rhumb...., f=0.00335281, f_=298.25722356, b=6356752.31424518), k0=0.9996, TMorder=6)\n    test 197 rhumbAzimuthTo: 116.661\n    test 198 rhumbDestination: 50.964234°N, 001.851383°E\n    test 199 rhumbDestination: True\n    test 200 rhumbDistanceTo: 40413.1\n    test 201 rhumbIntersecant2: (LatLon(58°59′33.52″N, 043°11′56.62″E), LatLon(20°25′12.01″N, 009°12′37.27″W))\n    test 202 rhumbMidpointo-0.5: 51.045501°N, 001.595726°E\n    test 203 rhumbMidpointo: True\n    test 204 rhumbMidpointo-0.0: 51.127°N, 001.338°E\n    test 205 rhumbMidpointo-0.25: 51.08625°N, 001.46692°E\n    test 206 rhumbMidpointo-0.75: 51.00475°N, 001.724419°E\n    test 207 rhumbMidpointo-1.0: 50.964°N, 001.853°E\n    test 208 rhumbMidpointo-2.0: 50.800995°N, 002.366201°E\n\n    testLatLon(pygeodesy.ellipsoidalKarney, 25.05.27)\n    test 209 lat, lon: 50.06632°N, 005.71475°W\n    test 210 lat, lon: 50.066389°N, 005.714722°W\n    test 211 isequalTo: True\n    test 212 isequalTo3: True\n    test 213 latlon: (52.205, 0.119)\n    test 214 latlonheight: (52.205, 0.119, 0)\n    test 215 phimlam: (0.911149, 0.002077)\n    test 216 phimlamheight: (0.911149, 0.002077, 0)\n    test 217 isequalTo: False\n    test 218 antipode1: 52.205°S, 179.881°W\n    test 219 antipode2: True\n    test 220 antipode3: 52.205°N, 000.119°E\n    test 221 antipode4: True\n    test 222 antipode5: 52.205°N, 000.119°E\n    test 223 isnormal1: True\n    test 224 isnormal2: False\n    test 225 normal1: False\n    test 226 normal2: True\n    test 227 toStr: 51°28′40″N, 000°00′06″W\n    test 228 toStr: 51.4778°N, 000.0016°W\n    test 229 precision: 0\n    test 230 toStr: 51°28′40″N, 000°00′06″W, +42.00m\n    test 231 isequalTo: True\n    test 232 isequalTo3: False\n    test 233 latlon: (51.4778, -0.0016)\n    test 234 phimlam: (0.898457, -0.000028)\n    test 235 isequalTo: True\n    test 236 isequalTo3: True\n    test 237 latlon: (51.4778, -0.0016)\n    test 238 latlonheight: (51.4778, -0.0016, 42.0)\n    test 239 phimlam: (0.898457, -0.000028)\n    test 240 phimlamheight: (0.898457, -0.000028, 42.0)\n    test 241 latlon: LatLon2Tuple(lat=51.4778, lon=-0.0016)\n    test 242 latlonheight: LatLon3Tuple(lat=51.4778, lon=-0.0016, height=42.0)\n    test 243 phimlam: PhiLam2Tuple(phi=0.898457, lam=-0.000028)\n    test 244 phimlamheight: PhiLam3Tuple(phi=0.898457, lam=-0.000028, height=42.0)\n    test 245 ellipsoidalLatLon: True\n    test 246 sphericalLatLon: True\n\n    test 247 rhumbLine: TMorder=6, azi12=30.0, exact=False, lat1=51.4778, lon1=-0.0016, rhumb=Rhumb...., f=0.00335281, f_=298.25722356, b=6356752.31424518), k0=0.9996, TMorder=6)\n    test 248 rhumbLine: TMorder=6, azi12=113.805696, exact=False, lat1=51.4778, lon1=-0.0016, rhumb...., f=0.00335281, f_=298.25722356, b=6356752.31424518), k0=0.9996, TMorder=6)\n    test 249 rhumbAzimuthTo: 116.661\n    test 250 rhumbDestination: 50.964234°N, 001.851383°E\n    test 251 rhumbDestination: True\n    test 252 rhumbDistanceTo: 40413.1\n    test 253 rhumbIntersecant2: (LatLon(58°59′33.52″N, 043°11′56.62″E), LatLon(20°25′12.01″N, 009°12′37.27″W))\n    test 254 rhumbMidpointo-0.5: 51.045501°N, 001.595726°E\n    test 255 rhumbMidpointo: True\n    test 256 rhumbMidpointo-0.0: 51.127°N, 001.338°E\n    test 257 rhumbMidpointo-0.25: 51.08625°N, 001.46692°E\n    test 258 rhumbMidpointo-0.75: 51.00475°N, 001.724419°E\n    test 259 rhumbMidpointo-1.0: 50.964°N, 001.853°E\n    test 260 rhumbMidpointo-2.0: 50.800995°N, 002.366201°E\n\n    testLatLon(pygeodesy.ellipsoidalExact, 25.08.28)\n    test 261 lat, lon: 50.06632°N, 005.71475°W\n    test 262 lat, lon: 50.066389°N, 005.714722°W\n    test 263 isequalTo: True\n    test 264 isequalTo3: True\n    test 265 latlon: (52.205, 0.119)\n    test 266 latlonheight: (52.205, 0.119, 0)\n    test 267 phimlam: (0.911149, 0.002077)\n    test 268 phimlamheight: (0.911149, 0.002077, 0)\n    test 269 isequalTo: False\n    test 270 antipode1: 52.205°S, 179.881°W\n    test 271 antipode2: True\n    test 272 antipode3: 52.205°N, 000.119°E\n    test 273 antipode4: True\n    test 274 antipode5: 52.205°N, 000.119°E\n    test 275 isnormal1: True\n    test 276 isnormal2: False\n    test 277 normal1: False\n    test 278 normal2: True\n    test 279 toStr: 51°28′40″N, 000°00′06″W\n    test 280 toStr: 51.4778°N, 000.0016°W\n    test 281 precision: 0\n    test 282 toStr: 51°28′40″N, 000°00′06″W, +42.00m\n    test 283 isequalTo: True\n    test 284 isequalTo3: False\n    test 285 latlon: (51.4778, -0.0016)\n    test 286 phimlam: (0.898457, -0.000028)\n    test 287 isequalTo: True\n    test 288 isequalTo3: True\n    test 289 latlon: (51.4778, -0.0016)\n    test 290 latlonheight: (51.4778, -0.0016, 42.0)\n    test 291 phimlam: (0.898457, -0.000028)\n    test 292 phimlamheight: (0.898457, -0.000028, 42.0)\n    test 293 latlon: LatLon2Tuple(lat=51.4778, lon=-0.0016)\n    test 294 latlonheight: LatLon3Tuple(lat=51.4778, lon=-0.0016, height=42.0)\n    test 295 phimlam: PhiLam2Tuple(phi=0.898457, lam=-0.000028)\n    test 296 phimlamheight: PhiLam3Tuple(phi=0.898457, lam=-0.000028, height=42.0)\n    test 297 ellipsoidalLatLon: True\n    test 298 sphericalLatLon: True\n\n    test 299 rhumbLine: TMorder=6, azi12=30.0, exact=False, lat1=51.4778, lon1=-0.0016, rhumb=Rhumb...., f=0.00335281, f_=298.25722356, b=6356752.31424518), k0=0.9996, TMorder=6)\n    test 300 rhumbLine: TMorder=6, azi12=113.805696, exact=False, lat1=51.4778, lon1=-0.0016, rhumb...., f=0.00335281, f_=298.25722356, b=6356752.31424518), k0=0.9996, TMorder=6)\n    test 301 rhumbAzimuthTo: 116.661\n    test 302 rhumbDestination: 50.964234°N, 001.851383°E\n    test 303 rhumbDestination: True\n    test 304 rhumbDistanceTo: 40413.1\n    test 305 rhumbIntersecant2: (LatLon(58°59′33.52″N, 043°11′56.62″E), LatLon(20°25′12.01″N, 009°12′37.27″W))\n    test 306 rhumbMidpointo-0.5: 51.045501°N, 001.595726°E\n    test 307 rhumbMidpointo: True\n    test 308 rhumbMidpointo-0.0: 51.127°N, 001.338°E\n    test 309 rhumbMidpointo-0.25: 51.08625°N, 001.46692°E\n    test 310 rhumbMidpointo-0.75: 51.00475°N, 001.724419°E\n    test 311 rhumbMidpointo-1.0: 50.964°N, 001.853°E\n    test 312 rhumbMidpointo-2.0: 50.800995°N, 002.366201°E\n\n    testLatLonEllipsoidalBase(pygeodesy.ellipsoidalBase, 25.07.21)\n    test 313 lat, lon: 50.06632°N, 005.71475°W\n    test 314 lat, lon: 50.066389°N, 005.714722°W\n    test 315 isequalTo: True\n    test 316 isequalTo3: True\n    test 317 latlon: (52.205, 0.119)\n    test 318 latlonheight: (52.205, 0.119, 0)\n    test 319 phimlam: (0.911149, 0.002077)\n    test 320 phimlamheight: (0.911149, 0.002077, 0)\n    test 321 isequalTo: False\n    test 322 antipode1: 52.205°S, 179.881°W\n    test 323 antipode2: True\n    test 324 antipode3: 52.205°N, 000.119°E\n    test 325 antipode4: True\n    test 326 antipode5: 52.205°N, 000.119°E\n    test 327 isnormal1: True\n    test 328 isnormal2: False\n    test 329 normal1: False\n    test 330 normal2: True\n    test 331 toStr: 51°28′40″N, 000°00′06″W\n    test 332 toStr: 51.4778°N, 000.0016°W\n    test 333 precision: 0\n    test 334 toStr: 51°28′40″N, 000°00′06″W, +42.00m\n    test 335 isequalTo: True\n    test 336 isequalTo3: False\n    test 337 latlon: (51.4778, -0.0016)\n    test 338 phimlam: (0.898457, -0.000028)\n    test 339 isequalTo: True\n    test 340 isequalTo3: True\n    test 341 latlon: (51.4778, -0.0016)\n    test 342 latlonheight: (51.4778, -0.0016, 42.0)\n    test 343 phimlam: (0.898457, -0.000028)\n    test 344 phimlamheight: (0.898457, -0.000028, 42.0)\n    test 345 latlon: LatLon2Tuple(lat=51.4778, lon=-0.0016)\n    test 346 latlonheight: LatLon3Tuple(lat=51.4778, lon=-0.0016, height=42.0)\n    test 347 phimlam: PhiLam2Tuple(phi=0.898457, lam=-0.000028)\n    test 348 phimlamheight: PhiLam3Tuple(phi=0.898457, lam=-0.000028, height=42.0)\n    test 349 ellipsoidalLatLon: True\n    test 350 sphericalLatLon: True\n\n    test 351 rhumbLine: TMorder=6, azi12=30.0, exact=False, lat1=51.4778, lon1=-0.0016, rhumb=Rhumb...., f=0.00335281, f_=298.25722356, b=6356752.31424518), k0=0.9996, TMorder=6)\n    test 352 rhumbLine: TMorder=6, azi12=113.805696, exact=False, lat1=51.4778, lon1=-0.0016, rhumb...., f=0.00335281, f_=298.25722356, b=6356752.31424518), k0=0.9996, TMorder=6)\n    test 353 rhumbAzimuthTo: 116.661\n    test 354 rhumbDestination: 50.964234°N, 001.851383°E\n    test 355 rhumbDestination: True\n    test 356 rhumbDistanceTo: 40413.1\n    test 357 rhumbIntersecant2: (LatLonEllipsoidalBase(58°59′33.52″N, 043°11′56.62″E), LatLonEllipsoidalBase(20°25′12.01″N, 009°12′37.27″W))\n    test 358 rhumbMidpointo-0.5: 51.045501°N, 001.595726°E\n    test 359 rhumbMidpointo: True\n    test 360 rhumbMidpointo-0.0: 51.127°N, 001.338°E\n    test 361 rhumbMidpointo-0.25: 51.08625°N, 001.46692°E\n    test 362 rhumbMidpointo-0.75: 51.00475°N, 001.724419°E\n    test 363 rhumbMidpointo-1.0: 50.964°N, 001.853°E\n    test 364 rhumbMidpointo-2.0: 50.800995°N, 002.366201°E\n\n    testLatLonEllipsoidalBaseDI(pygeodesy.ellipsoidalBaseDI, 25.05.23)\n    test 365 lat, lon: 50.06632°N, 005.71475°W\n    test 366 lat, lon: 50.066389°N, 005.714722°W\n    test 367 isequalTo: True\n    test 368 isequalTo3: True\n    test 369 latlon: (52.205, 0.119)\n    test 370 latlonheight: (52.205, 0.119, 0)\n    test 371 phimlam: (0.911149, 0.002077)\n    test 372 phimlamheight: (0.911149, 0.002077, 0)\n    test 373 isequalTo: False\n    test 374 antipode1: 52.205°S, 179.881°W\n    test 375 antipode2: True\n    test 376 antipode3: 52.205°N, 000.119°E\n    test 377 antipode4: True\n    test 378 antipode5: 52.205°N, 000.119°E\n    test 379 isnormal1: True\n    test 380 isnormal2: False\n    test 381 normal1: False\n    test 382 normal2: True\n    test 383 toStr: 51°28′40″N, 000°00′06″W\n    test 384 toStr: 51.4778°N, 000.0016°W\n    test 385 precision: 0\n    test 386 toStr: 51°28′40″N, 000°00′06″W, +42.00m\n    test 387 isequalTo: True\n    test 388 isequalTo3: False\n    test 389 latlon: (51.4778, -0.0016)\n    test 390 phimlam: (0.898457, -0.000028)\n    test 391 isequalTo: True\n    test 392 isequalTo3: True\n    test 393 latlon: (51.4778, -0.0016)\n    test 394 latlonheight: (51.4778, -0.0016, 42.0)\n    test 395 phimlam: (0.898457, -0.000028)\n    test 396 phimlamheight: (0.898457, -0.000028, 42.0)\n    test 397 latlon: LatLon2Tuple(lat=51.4778, lon=-0.0016)\n    test 398 latlonheight: LatLon3Tuple(lat=51.4778, lon=-0.0016, height=42.0)\n    test 399 phimlam: PhiLam2Tuple(phi=0.898457, lam=-0.000028)\n    test 400 phimlamheight: PhiLam3Tuple(phi=0.898457, lam=-0.000028, height=42.0)\n    test 401 ellipsoidalLatLon: True\n    test 402 sphericalLatLon: True\n\n    test 403 rhumbLine: TMorder=6, azi12=30.0, exact=False, lat1=51.4778, lon1=-0.0016, rhumb=Rhumb...., f=0.00335281, f_=298.25722356, b=6356752.31424518), k0=0.9996, TMorder=6)\n    test 404 rhumbLine: TMorder=6, azi12=113.805696, exact=False, lat1=51.4778, lon1=-0.0016, rhumb...., f=0.00335281, f_=298.25722356, b=6356752.31424518), k0=0.9996, TMorder=6)\n    test 405 rhumbAzimuthTo: 116.661\n    test 406 rhumbDestination: 50.964234°N, 001.851383°E\n    test 407 rhumbDestination: True\n    test 408 rhumbDistanceTo: 40413.1\n    test 409 rhumbIntersecant2: (LatLonEllipsoidalBaseDI(58°59′33.52″N, 043°11′56.62″E), LatLonEllipsoidalBaseDI(20°25′12.01″N, 009°12′37.27″W))\n    test 410 rhumbMidpointo-0.5: 51.045501°N, 001.595726°E\n    test 411 rhumbMidpointo: True\n    test 412 rhumbMidpointo-0.0: 51.127°N, 001.338°E\n    test 413 rhumbMidpointo-0.25: 51.08625°N, 001.46692°E\n    test 414 rhumbMidpointo-0.75: 51.00475°N, 001.724419°E\n    test 415 rhumbMidpointo-1.0: 50.964°N, 001.853°E\n    test 416 rhumbMidpointo-2.0: 50.800995°N, 002.366201°E\n\n    testLatLonBase(pygeodesy.latlonBase, 25.08.18)\n    test 417 lat, lon: 50.06632°N, 005.71475°W\n    test 418 lat, lon: 50.066389°N, 005.714722°W\n    test 419 isequalTo: True\n    test 420 isequalTo3: True\n    test 421 latlon: (52.205, 0.119)\n    test 422 latlonheight: (52.205, 0.119, 0)\n    test 423 phimlam: (0.911149, 0.002077)\n    test 424 phimlamheight: (0.911149, 0.002077, 0)\n    test 425 isequalTo: False\n    test 426 antipode1: 52.205°S, 179.881°W\n    test 427 antipode2: True\n    test 428 antipode3: 52.205°N, 000.119°E\n    test 429 antipode4: True\n    test 430 antipode5: 52.205°N, 000.119°E\n    test 431 isnormal1: True\n    test 432 isnormal2: False\n    test 433 normal1: False\n    test 434 normal2: True\n    test 435 toStr: 51°28′40″N, 000°00′06″W\n    test 436 toStr: 51.4778°N, 000.0016°W\n    test 437 precision: 0\n    test 438 toStr: 51°28′40″N, 000°00′06″W, +42.00m\n    test 439 isequalTo: True\n    test 440 isequalTo3: False\n    test 441 latlon: (51.4778, -0.0016)\n    test 442 phimlam: (0.898457, -0.000028)\n    test 443 isequalTo: True\n    test 444 isequalTo3: True\n    test 445 latlon: (51.4778, -0.0016)\n    test 446 latlonheight: (51.4778, -0.0016, 42.0)\n    test 447 phimlam: (0.898457, -0.000028)\n    test 448 phimlamheight: (0.898457, -0.000028, 42.0)\n    test 449 latlon: LatLon2Tuple(lat=51.4778, lon=-0.0016)\n    test 450 latlonheight: LatLon3Tuple(lat=51.4778, lon=-0.0016, height=42.0)\n    test 451 phimlam: PhiLam2Tuple(phi=0.898457, lam=-0.000028)\n    test 452 phimlamheight: PhiLam3Tuple(phi=0.898457, lam=-0.000028, height=42.0)\n    test 453 ellipsoidalLatLon: True\n    test 454 sphericalLatLon: True\n    test 455 isCartesian(LatLonBase, None): None\n    test 456 isCartesian(LatLonBase, True): None\n    test 457 isCartesian(LatLonBase, False): None\n    test 458 isLatLon(LatLonBase, None): <class 'pygeodesy.latlonBase.LatLonBase'>\n    test 459 isLatLon(LatLonBase, True): False\n    test 460 isLatLon(LatLonBase, False): False\n    test 461 isNvector(LatLonBase, None): None\n    test 462 isNvector(LatLonBase, True): None\n    test 463 isNvector(LatLonBase, False): None\n\n    testLatLonNvectorBase(pygeodesy.nvectorBase, 25.08.18)\n    test 464 lat, lon: 50.06632°N, 005.71475°W\n    test 465 lat, lon: 50.066389°N, 005.714722°W\n    test 466 isequalTo: True\n    test 467 isequalTo3: True\n    test 468 latlon: (52.205, 0.119)\n    test 469 latlonheight: (52.205, 0.119, 0)\n    test 470 phimlam: (0.911149, 0.002077)\n    test 471 phimlamheight: (0.911149, 0.002077, 0)\n    test 472 isequalTo: False\n    test 473 antipode1: 52.205°S, 179.881°W\n    test 474 antipode2: True\n    test 475 antipode3: 52.205°N, 000.119°E\n    test 476 antipode4: True\n    test 477 antipode5: 52.205°N, 000.119°E\n    test 478 isnormal1: True\n    test 479 isnormal2: False\n    test 480 normal1: False\n    test 481 normal2: True\n    test 482 toStr: 51°28′40″N, 000°00′06″W\n    test 483 toStr: 51.4778°N, 000.0016°W\n    test 484 precision: 0\n    test 485 toStr: 51°28′40″N, 000°00′06″W, +42.00m\n    test 486 isequalTo: True\n    test 487 isequalTo3: False\n    test 488 latlon: (51.4778, -0.0016)\n    test 489 phimlam: (0.898457, -0.000028)\n    test 490 isequalTo: True\n    test 491 isequalTo3: True\n    test 492 latlon: (51.4778, -0.0016)\n    test 493 latlonheight: (51.4778, -0.0016, 42.0)\n    test 494 phimlam: (0.898457, -0.000028)\n    test 495 phimlamheight: (0.898457, -0.000028, 42.0)\n    test 496 latlon: LatLon2Tuple(lat=51.4778, lon=-0.0016)\n    test 497 latlonheight: LatLon3Tuple(lat=51.4778, lon=-0.0016, height=42.0)\n    test 498 phimlam: PhiLam2Tuple(phi=0.898457, lam=-0.000028)\n    test 499 phimlamheight: PhiLam3Tuple(phi=0.898457, lam=-0.000028, height=42.0)\n    test 500 ellipsoidalLatLon: True\n    test 501 sphericalLatLon: True\n    test 502 isCartesian(LatLonNvectorBase, None): None\n    test 503 isCartesian(LatLonNvectorBase, True): None\n    test 504 isCartesian(LatLonNvectorBase, False): None\n    test 505 isLatLon(LatLonNvectorBase, None): <class 'pygeodesy.nvectorBase.LatLonNvectorBase'>\n    test 506 isLatLon(LatLonNvectorBase, True): False\n    test 507 isLatLon(LatLonNvectorBase, False): False\n    test 508 isNvector(LatLonNvectorBase, None): None\n    test 509 isNvector(LatLonNvectorBase, True): None\n    test 510 isNvector(LatLonNvectorBase, False): None\n\n    testLatLonSphericalBase(pygeodesy.sphericalBase, 25.05.26)\n    test 511 lat, lon: 50.06632°N, 005.71475°W\n    test 512 lat, lon: 50.066389°N, 005.714722°W\n    test 513 isequalTo: True\n    test 514 isequalTo3: True\n    test 515 latlon: (52.205, 0.119)\n    test 516 latlonheight: (52.205, 0.119, 0)\n    test 517 phimlam: (0.911149, 0.002077)\n    test 518 phimlamheight: (0.911149, 0.002077, 0)\n    test 519 isequalTo: False\n    test 520 antipode1: 52.205°S, 179.881°W\n    test 521 antipode2: True\n    test 522 antipode3: 52.205°N, 000.119°E\n    test 523 antipode4: True\n    test 524 antipode5: 52.205°N, 000.119°E\n    test 525 isnormal1: True\n    test 526 isnormal2: False\n    test 527 normal1: False\n    test 528 normal2: True\n    test 529 toStr: 51°28′40″N, 000°00′06″W\n    test 530 toStr: 51.4778°N, 000.0016°W\n    test 531 precision: 0\n    test 532 toStr: 51°28′40″N, 000°00′06″W, +42.00m\n    test 533 isequalTo: True\n    test 534 isequalTo3: False\n    test 535 latlon: (51.4778, -0.0016)\n    test 536 phimlam: (0.898457, -0.000028)\n    test 537 isequalTo: True\n    test 538 isequalTo3: True\n    test 539 latlon: (51.4778, -0.0016)\n    test 540 latlonheight: (51.4778, -0.0016, 42.0)\n    test 541 phimlam: (0.898457, -0.000028)\n    test 542 phimlamheight: (0.898457, -0.000028, 42.0)\n    test 543 latlon: LatLon2Tuple(lat=51.4778, lon=-0.0016)\n    test 544 latlonheight: LatLon3Tuple(lat=51.4778, lon=-0.0016, height=42.0)\n    test 545 phimlam: PhiLam2Tuple(phi=0.898457, lam=-0.000028)\n    test 546 phimlamheight: PhiLam3Tuple(phi=0.898457, lam=-0.000028, height=42.0)\n    test 547 ellipsoidalLatLon: True\n    test 548 sphericalLatLon: True\n\n    test 549 rhumbLine: TMorder=6, azi12=30.0, exact=False, lat1=51.4778, lon1=-0.0016, rhumb=Rhumb....ere', a=6371008.771415, f=0, f_=0, b=6371008.771415), k0=0.9996, TMorder=6)\n    test 550 rhumbLine: TMorder=6, azi12=105.484906, exact=False, lat1=51.4778, lon1=-0.0016, rhumb....ere', a=6371008.771415, f=0, f_=0, b=6371008.771415), k0=0.9996, TMorder=6)\n    test 551 rhumbAzimuthTo: 107.563\n    test 552 rhumbDestination: 50.964155°N, 001.853°E\n    test 553 rhumbDestination: True\n    test 554 rhumbDistanceTo: 42186.1\n    test 555 rhumbIntersecant2: (LatLonSphericalBase(58°40′08.68″N, 042°42′40.63″E), LatLonSphericalBase(18°47′05.09″N, 011°00′15.53″W))\n    test 556 rhumbMidpointo-0.5: 51.069759°N, 001.625988°E\n    test 557 rhumbMidpointo: True\n    test 558 rhumbMidpointo-0.0: 51.127°N, 001.338°E\n    test 559 rhumbMidpointo-0.25: 51.09838°N, 001.482038°E\n    test 560 rhumbMidpointo-0.75: 51.041139°N, 001.769848°E\n    test 561 rhumbMidpointo-1.0: 51.012519°N, 001.913619°E\n    test 562 rhumbMidpointo-2.0: 50.898038°N, 002.48782°E\n\n    all 562 testLatLonBase.py tests passed (pygeodesy 26.3.26 PyPy 7.3.17 Python 3.10.14 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 661.423 ms\nrunning /opt/local/bin/p....y3.10 -W default ~/PyGeodesy/test/testLazily.py\n# lazily imported pygeodesy.basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.DeprecationWarnings from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isint from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isLazy from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.issubclassof from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.iterNumpy2over from .iters by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.LazyImportError from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.karney by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.NN from .interns by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.normDMS from .dms by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.pairs from .streprs by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.printf from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.property_RO from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.typename from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n\n    testing testLazily.py 25.12.06 isLazy=3\n\n    test 1 isLazy: 3\n\n    test 2 cmd: /opt/local/bin/pypy3.10 -c 'import sys; import pygeodesy; sys.exit(0 if pygeodesy.isLazy == %s else 1)'\n    test 3 PYGEODESY_LAZY_IMPORT=0: 0\n    test 4 PYGEODESY_LAZY_IMPORT=1: 0\n    test 5 PYGEODESY_LAZY_IMPORT=2: 0\n    test 6 PYGEODESY_LAZY_IMPORT=3: 0\n    test 7 PYGEODESY_LAZY_IMPORT=4: 0\n\n    test 8 items: _ALL_MODS\n    test 9 pygeodesy: <module 'pygeodesy' from './pygeodesy/__init__.py'>\n    test 10 pygeodesy.basics: <module 'pygeodesy.basics' from './pygeodesy/basics.py'>\n    test 11 pygeodesy.constants: <module 'pygeodesy.constants' from './pygeodesy/constants.py'>\n    test 12 pygeodesy.dms: <module 'pygeodesy.dms' from './pygeodesy/dms.py'>\n    test 13 pygeodesy.errors: <module 'pygeodesy.errors' from './pygeodesy/errors.py'>\n    test 14 pygeodesy.fmath: <module 'pygeodesy.fmath' from './pygeodesy/fmath.py'>\n    test 15 pygeodesy.fsums: <module 'pygeodesy.fsums' from './pygeodesy/fsums.py'>\n    test 16 pygeodesy.internals: <module 'pygeodesy.internals' from './pygeodesy/internals.py'>\n    test 17 pygeodesy.interns: <module 'pygeodesy.interns' from './pygeodesy/interns.py'>\n    test 18 pygeodesy.iters: <module 'pygeodesy.iters' from './pygeodesy/iters.py'>\n    test 19 pygeodesy.karney: <module 'pygeodesy.karney' from './pygeodesy/karney.py'>\n    test 20 pygeodesy.lazily: <module 'pygeodesy.lazily' from './pygeodesy/lazily.py'>\n    test 21 pygeodesy.named: <module 'pygeodesy.named' from './pygeodesy/named.py'>\n    test 22 pygeodesy.namedTuples: <module 'pygeodesy.namedTuples' from './pygeodesy/namedTuples.py'>\n    test 23 pygeodesy.props: <module 'pygeodesy.props' from './pygeodesy/props.py'>\n    test 24 pygeodesy.streprs: <module 'pygeodesy.streprs' from './pygeodesy/streprs.py'>\n    test 25 pygeodesy.units: <module 'pygeodesy.units' from './pygeodesy/units.py'>\n    test 26 pygeodesy.unitsBase: <module 'pygeodesy.unitsBase' from './pygeodesy/unitsBase.py'>\n    test 27 pygeodesy.utily: <module 'pygeodesy.utily' from './pygeodesy/utily.py'>\n\n    all 27 testLazily.py tests passed (pygeodesy 26.3.26 PyPy 7.3.17 Python 3.10.14 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 207.144 ms\nrunning /opt/local/bin/p....y3.10 -W default ~/PyGeodesy/test/testLcc.py\n# lazily imported pygeodesy.basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.DeprecationWarnings from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isint from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isLazy from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.issubclassof from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.iterNumpy2over from .iters by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.LazyImportError from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.karney by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.NN from .interns by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.normDMS from .dms by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.pairs from .streprs by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.printf from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.property_RO from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.typename from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.F_D from .dms by testLcc.py line 11\n# lazily imported pygeodesy.F_DMS from .dms by testLcc.py line 11\n# lazily imported pygeodesy.Conic from .lcc by testLcc.py line 11\n# lazily imported pygeodesy.Conics from .lcc by testLcc.py line 11\n# lazily imported pygeodesy.Datums from .datums by testLcc.py line 11\n# lazily imported pygeodesy.Lcc from .lcc by testLcc.py line 11\n# lazily imported pygeodesy.toLcc from .lcc by testLcc.py line 11\n# lazily imported pygeodesy.ellipsoidalNvector by testLcc.py line 92\n# lazily imported pygeodesy.ellipsoidalVincenty by testLcc.py line 92\n\n    testing testLcc.py 23.03.27 (module pygeodesy.lcc 25.08.31) isLazy=3\n\n    testLcc(pygeodesy.ellipsoidalNvector, 25.05.12)\n    test 1 lb1: 448251.0 5411932.0001\n    test 2 lb1: 448251, 5411932\n    test 3 lb1: [E:448251, N:5411932]\n    test 4 lb1: WRF_Lb.WGS84\n    test 5 lb1: lb1\n    test 6 lb1: (81.929348, -79.558697)\n    test 7 lb1: (1.429937, -1.388561)\n    test 8 LatLon: 46.5°N, 003.0°E\n    test 9 LatLon: 46°30′00.0″N, 003°00′00.0″E\n    test 10 toLcc1: 700000 6600000\n    test 11 toLcc1: 46.5°N, 003.0°E\n    test 12 lb2: 1894411 1564650\n    test 13 lb2: Clarke1866\n    test 14 lb2: lb2\n    test 15 toLatLon2: 35.0°N, 075.0°W\n    test 16 toLatLon2: 35°00′00.0007″N, 074°59′59.9997″W\n    test 17 toLatLon2: NAD27\n    test 18 toLcc2: 1894410.9 1564649.5\n    test 19 toLcc2: [E:1894411, N:1564649]\n    test 20 toLcc2: Snyder.NAD27\n\n    test 21 Be08Lb: 49.833334°N, 003.025883°E\n    test 22 Be08Lb: GRS80\n\n    test 23 Be08Lb: 49.833334°N, 004.359216°E\n    test 24 Be08Lb: GRS80\n\n    test 25 Be08Lb: 49.833334°N, 005.692549°E\n    test 26 Be08Lb: GRS80\n\n    test 27 Be08Lb: 51.166667°N, 003.025883°E\n    test 28 Be08Lb: GRS80\n\n    test 29 Be08Lb: 51.166667°N, 004.359216°E\n    test 30 Be08Lb: GRS80\n\n    test 31 Be08Lb: 51.166667°N, 005.692549°E\n    test 32 Be08Lb: GRS80\n\n    test 33 Be72Lb: 49.833334°N, 003.034153°E\n    test 34 Be72Lb: NAD83\n\n    test 35 Be72Lb: 49.833334°N, 004.367487°E\n    test 36 Be72Lb: NAD83\n\n    test 37 Be72Lb: 49.833334°N, 005.70082°E\n    test 38 Be72Lb: NAD83\n\n    test 39 Be72Lb: 51.166667°N, 003.034153°E\n    test 40 Be72Lb: NAD83\n\n    test 41 Be72Lb: 51.166667°N, 004.367487°E\n    test 42 Be72Lb: NAD83\n\n    test 43 Be72Lb: 51.166667°N, 005.70082°E\n    test 44 Be72Lb: NAD83\n\n    test 45 Fr93Lb: 49.0°N, 002.0°W\n    test 46 Fr93Lb: WGS84\n\n    test 47 Fr93Lb: 49.0°N, 003.0°E\n    test 48 Fr93Lb: WGS84\n\n    test 49 Fr93Lb: 49.0°N, 008.0°E\n    test 50 Fr93Lb: WGS84\n\n    test 51 Fr93Lb: 44.0°N, 002.0°W\n    test 52 Fr93Lb: WGS84\n\n    test 53 Fr93Lb: 44.0°N, 003.0°E\n    test 54 Fr93Lb: WGS84\n\n    test 55 Fr93Lb: 44.0°N, 008.0°E\n    test 56 Fr93Lb: WGS84\n\n    test 57 MaNLb: 31.73°N, 008.54°W\n    test 58 MaNLb: NTF\n\n    test 59 MaNLb: 31.73°N, 005.4°W\n    test 60 MaNLb: NTF\n\n    test 61 MaNLb: 31.73°N, 002.26°W\n    test 62 MaNLb: NTF\n\n    test 63 MaNLb: 34.87°N, 008.54°W\n    test 64 MaNLb: NTF\n\n    test 65 MaNLb: 34.87°N, 005.4°W\n    test 66 MaNLb: NTF\n\n    test 67 MaNLb: 34.87°N, 002.26°W\n    test 68 MaNLb: NTF\n\n    test 69 MxLb: 17.5°N, 114.0°W\n    test 70 MxLb: WGS84\n\n    test 71 MxLb: 17.5°N, 102.0°W\n    test 72 MxLb: WGS84\n\n    test 73 MxLb: 17.5°N, 090.0°W\n    test 74 MxLb: WGS84\n\n    test 75 MxLb: 29.5°N, 114.0°W\n    test 76 MxLb: WGS84\n\n    test 77 MxLb: 29.5°N, 102.0°W\n    test 78 MxLb: WGS84\n\n    test 79 MxLb: 29.5°N, 090.0°W\n    test 80 MxLb: WGS84\n\n    test 81 PyT_Lb: 45.898939°N, 000.540154°E\n    test 82 PyT_Lb: NTF\n\n    test 83 PyT_Lb: 45.898939°N, 002.337229°E\n    test 84 PyT_Lb: NTF\n\n    test 85 PyT_Lb: 45.898939°N, 004.134305°E\n    test 86 PyT_Lb: NTF\n\n    test 87 PyT_Lb: 47.696014°N, 000.540154°E\n    test 88 PyT_Lb: NTF\n\n    test 89 PyT_Lb: 47.696014°N, 002.337229°E\n    test 90 PyT_Lb: NTF\n\n    test 91 PyT_Lb: 47.696014°N, 004.134305°E\n    test 92 PyT_Lb: NTF\n\n    test 93 Snyder: 33.0°N, 108.0°W\n    test 94 Snyder: NAD27\n\n    test 95 Snyder: 33.0°N, 096.0°W\n    test 96 Snyder: NAD27\n\n    test 97 Snyder: 33.0°N, 084.0°W\n    test 98 Snyder: NAD27\n\n    test 99 Snyder: 45.0°N, 108.0°W\n    test 100 Snyder: NAD27\n\n    test 101 Snyder: 45.0°N, 096.0°W\n    test 102 Snyder: NAD27\n\n    test 103 Snyder: 45.0°N, 084.0°W\n    test 104 Snyder: NAD27\n\n    test 105 USA_Lb: 33.0°N, 108.0°W\n    test 106 USA_Lb: WGS84\n\n    test 107 USA_Lb: 33.0°N, 096.0°W\n    test 108 USA_Lb: WGS84\n\n    test 109 USA_Lb: 33.0°N, 084.0°W\n    test 110 USA_Lb: WGS84\n\n    test 111 USA_Lb: 45.0°N, 108.0°W\n    test 112 USA_Lb: WGS84\n\n    test 113 USA_Lb: 45.0°N, 096.0°W\n    test 114 USA_Lb: WGS84\n\n    test 115 USA_Lb: 45.0°N, 084.0°W\n    test 116 USA_Lb: WGS84\n\n    test 117 WRF_Lb: 33.0°N, 109.0°W\n    test 118 WRF_Lb: WGS84\n\n    test 119 WRF_Lb: 33.0°N, 097.0°W\n    test 120 WRF_Lb: WGS84\n\n    test 121 WRF_Lb: 33.0°N, 085.0°W\n    test 122 WRF_Lb: WGS84\n\n    test 123 WRF_Lb: 45.0°N, 109.0°W\n    test 124 WRF_Lb: WGS84\n\n    test 125 WRF_Lb: 45.0°N, 097.0°W\n    test 126 WRF_Lb: WGS84\n\n    test 127 WRF_Lb: 45.0°N, 085.0°W\n    test 128 WRF_Lb: WGS84\n\n\n    testLcc(pygeodesy.ellipsoidalVincenty, 25.05.26)\n    test 129 lb1: 448251.0 5411932.0001\n    test 130 lb1: 448251, 5411932\n    test 131 lb1: [E:448251, N:5411932]\n    test 132 lb1: WRF_Lb.WGS84\n    test 133 lb1: lb1\n    test 134 lb1: (81.929348, -79.558697)\n    test 135 lb1: (1.429937, -1.388561)\n    test 136 LatLon: 46.5°N, 003.0°E\n    test 137 LatLon: 46°30′00.0″N, 003°00′00.0″E\n    test 138 toLcc1: 700000 6600000\n    test 139 toLcc1: 46.5°N, 003.0°E\n    test 140 lb2: 1894411 1564650\n    test 141 lb2: Clarke1866\n    test 142 lb2: lb2\n    test 143 toLatLon2: 35.0°N, 075.0°W\n    test 144 toLatLon2: 35°00′00.0007″N, 074°59′59.9997″W\n    test 145 toLatLon2: NAD27\n    test 146 toLcc2: 1894410.9 1564649.5\n    test 147 toLcc2: [E:1894411, N:1564649]\n    test 148 toLcc2: Snyder.NAD27\n\n    test 149 Be08Lb: 49.833334°N, 003.025883°E\n    test 150 Be08Lb: GRS80\n\n    test 151 Be08Lb: 49.833334°N, 004.359216°E\n    test 152 Be08Lb: GRS80\n\n    test 153 Be08Lb: 49.833334°N, 005.692549°E\n    test 154 Be08Lb: GRS80\n\n    test 155 Be08Lb: 51.166667°N, 003.025883°E\n    test 156 Be08Lb: GRS80\n\n    test 157 Be08Lb: 51.166667°N, 004.359216°E\n    test 158 Be08Lb: GRS80\n\n    test 159 Be08Lb: 51.166667°N, 005.692549°E\n    test 160 Be08Lb: GRS80\n\n    test 161 Be72Lb: 49.833334°N, 003.034153°E\n    test 162 Be72Lb: NAD83\n\n    test 163 Be72Lb: 49.833334°N, 004.367487°E\n    test 164 Be72Lb: NAD83\n\n    test 165 Be72Lb: 49.833334°N, 005.70082°E\n    test 166 Be72Lb: NAD83\n\n    test 167 Be72Lb: 51.166667°N, 003.034153°E\n    test 168 Be72Lb: NAD83\n\n    test 169 Be72Lb: 51.166667°N, 004.367487°E\n    test 170 Be72Lb: NAD83\n\n    test 171 Be72Lb: 51.166667°N, 005.70082°E\n    test 172 Be72Lb: NAD83\n\n    test 173 Fr93Lb: 49.0°N, 002.0°W\n    test 174 Fr93Lb: WGS84\n\n    test 175 Fr93Lb: 49.0°N, 003.0°E\n    test 176 Fr93Lb: WGS84\n\n    test 177 Fr93Lb: 49.0°N, 008.0°E\n    test 178 Fr93Lb: WGS84\n\n    test 179 Fr93Lb: 44.0°N, 002.0°W\n    test 180 Fr93Lb: WGS84\n\n    test 181 Fr93Lb: 44.0°N, 003.0°E\n    test 182 Fr93Lb: WGS84\n\n    test 183 Fr93Lb: 44.0°N, 008.0°E\n    test 184 Fr93Lb: WGS84\n\n    test 185 MaNLb: 31.73°N, 008.54°W\n    test 186 MaNLb: NTF\n\n    test 187 MaNLb: 31.73°N, 005.4°W\n    test 188 MaNLb: NTF\n\n    test 189 MaNLb: 31.73°N, 002.26°W\n    test 190 MaNLb: NTF\n\n    test 191 MaNLb: 34.87°N, 008.54°W\n    test 192 MaNLb: NTF\n\n    test 193 MaNLb: 34.87°N, 005.4°W\n    test 194 MaNLb: NTF\n\n    test 195 MaNLb: 34.87°N, 002.26°W\n    test 196 MaNLb: NTF\n\n    test 197 MxLb: 17.5°N, 114.0°W\n    test 198 MxLb: WGS84\n\n    test 199 MxLb: 17.5°N, 102.0°W\n    test 200 MxLb: WGS84\n\n    test 201 MxLb: 17.5°N, 090.0°W\n    test 202 MxLb: WGS84\n\n    test 203 MxLb: 29.5°N, 114.0°W\n    test 204 MxLb: WGS84\n\n    test 205 MxLb: 29.5°N, 102.0°W\n    test 206 MxLb: WGS84\n\n    test 207 MxLb: 29.5°N, 090.0°W\n    test 208 MxLb: WGS84\n\n    test 209 PyT_Lb: 45.898939°N, 000.540154°E\n    test 210 PyT_Lb: NTF\n\n    test 211 PyT_Lb: 45.898939°N, 002.337229°E\n    test 212 PyT_Lb: NTF\n\n    test 213 PyT_Lb: 45.898939°N, 004.134305°E\n    test 214 PyT_Lb: NTF\n\n    test 215 PyT_Lb: 47.696014°N, 000.540154°E\n    test 216 PyT_Lb: NTF\n\n    test 217 PyT_Lb: 47.696014°N, 002.337229°E\n    test 218 PyT_Lb: NTF\n\n    test 219 PyT_Lb: 47.696014°N, 004.134305°E\n    test 220 PyT_Lb: NTF\n\n    test 221 Snyder: 33.0°N, 108.0°W\n    test 222 Snyder: NAD27\n\n    test 223 Snyder: 33.0°N, 096.0°W\n    test 224 Snyder: NAD27\n\n    test 225 Snyder: 33.0°N, 084.0°W\n    test 226 Snyder: NAD27\n\n    test 227 Snyder: 45.0°N, 108.0°W\n    test 228 Snyder: NAD27\n\n    test 229 Snyder: 45.0°N, 096.0°W\n    test 230 Snyder: NAD27\n\n    test 231 Snyder: 45.0°N, 084.0°W\n    test 232 Snyder: NAD27\n\n    test 233 USA_Lb: 33.0°N, 108.0°W\n    test 234 USA_Lb: WGS84\n\n    test 235 USA_Lb: 33.0°N, 096.0°W\n    test 236 USA_Lb: WGS84\n\n    test 237 USA_Lb: 33.0°N, 084.0°W\n    test 238 USA_Lb: WGS84\n\n    test 239 USA_Lb: 45.0°N, 108.0°W\n    test 240 USA_Lb: WGS84\n\n    test 241 USA_Lb: 45.0°N, 096.0°W\n    test 242 USA_Lb: WGS84\n\n    test 243 USA_Lb: 45.0°N, 084.0°W\n    test 244 USA_Lb: WGS84\n\n    test 245 WRF_Lb: 33.0°N, 109.0°W\n    test 246 WRF_Lb: WGS84\n\n    test 247 WRF_Lb: 33.0°N, 097.0°W\n    test 248 WRF_Lb: WGS84\n\n    test 249 WRF_Lb: 33.0°N, 085.0°W\n    test 250 WRF_Lb: WGS84\n\n    test 251 WRF_Lb: 45.0°N, 109.0°W\n    test 252 WRF_Lb: WGS84\n\n    test 253 WRF_Lb: 45.0°N, 097.0°W\n    test 254 WRF_Lb: WGS84\n\n    test 255 WRF_Lb: 45.0°N, 085.0°W\n    test 256 WRF_Lb: WGS84\n\n\n    testConic(pygeodesy.ellipsoidalNvector, 25.05.12)\n    test 257 SnyderN: name='SnyderN', lat0=23, lon0=-96, par1=33, par2=45, E0=0, N0=0, k0=1, SP=2, datum=Datum(name='NAD27', ellipsoid=Ellipsoids.Clarke1866, transform=Transforms.NAD27)\n    test 258 _SnyderN: name='_SnyderN', lat0=23, lon0=-96, par1=33, E0=0, N0=0, k0=1, SP=1, datum=Datum(name='NAD27', ellipsoid=Ellipsoids.Clarke1866, transform=Transforms.NAD27)\n    test 259 _SnyderN: name='_SnyderN', lat0=23, lon0=-96, par1=33, E0=0, N0=0, k0=1, SP=1, datum=Datum(name='NAD83', ellipsoid=Ellipsoids.GRS80, transform=Transforms.NAD83)\n    test 260 _SnyderN .auth: ''\n    test 261 _SnyderN .opt3: 0.0\n    test 262 _SnyderN .latlon0: (23.0, -96.0)\n    test 263 _SnyderN .philam0: (0.401426, -1.675516)\n\n    testConic(pygeodesy.ellipsoidalVincenty, 25.05.26)\n    test 264 SnyderV: name='SnyderV', lat0=23, lon0=-96, par1=33, par2=45, E0=0, N0=0, k0=1, SP=2, datum=Datum(name='NAD27', ellipsoid=Ellipsoids.Clarke1866, transform=Transforms.NAD27)\n    test 265 _SnyderV: name='_SnyderV', lat0=23, lon0=-96, par1=33, E0=0, N0=0, k0=1, SP=1, datum=Datum(name='NAD27', ellipsoid=Ellipsoids.Clarke1866, transform=Transforms.NAD27)\n    test 266 _SnyderV: name='_SnyderV', lat0=23, lon0=-96, par1=33, E0=0, N0=0, k0=1, SP=1, datum=Datum(name='NAD83', ellipsoid=Ellipsoids.GRS80, transform=Transforms.NAD83)\n    test 267 _SnyderV .auth: ''\n    test 268 _SnyderV .opt3: 0.0\n    test 269 _SnyderV .latlon0: (23.0, -96.0)\n    test 270 _SnyderV .philam0: (0.401426, -1.675516)\n\n    all 270 testLcc.py tests passed (pygeodesy 26.3.26 PyPy 7.3.17 Python 3.10.14 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 41.762 ms\nrunning /opt/local/bin/p....y3.10 -W default ~/PyGeodesy/test/testLtp.py\n./pygeodesy/deprecated/classes.py:75: DeprecationWarning: class L{EcefCartesian_<pygeodesy.deprecated.classes.EcefCartesian_>} has been DEPRECATED, use class L{LocalCartesian} or L{Ltp}.\n  deprecated_class(self.__class__)\n./test/testLtp.py:41: DeprecationWarning: method L{forward<pygeodesy.deprecated.classes.EcefCartesian_.forward>} has been DEPRECATED, use method L{LocalCartesian.forward} or L{Ltp.forward}.\n  t = c.forward(33.3, 44.4, 6000)\n./test/testLtp.py:45: DeprecationWarning: method L{reverse<pygeodesy.deprecated.classes.EcefCartesian_.reverse>} has been DEPRECATED, use method L{LocalCartesian.reverse} or L{Ltp.reverse}.\n  t = c.reverse(37288.97, 33374.29, 5783.65)\n./test/testLtp.py:54: DeprecationWarning: method L{forward<pygeodesy.deprecated.classes.EcefCartesian_.forward>} has been DEPRECATED, use method L{LocalCartesian.forward} or L{Ltp.forward}.\n  t = c.forward(LatLon_(50.9, 1.8, name='Calais'))  # Local9Tuple\n./test/testLtp.py:58: DeprecationWarning: method L{reverse<pygeodesy.deprecated.classes.EcefCartesian_.reverse>} has been DEPRECATED, use method L{LocalCartesian.reverse} or L{Ltp.reverse}.\n  t = c.reverse(-37518.64, 229949.65, -4260.43)  # Local9Tuple\n./test/testLtp.py:62: DeprecationWarning: method L{reverse<pygeodesy.deprecated.classes.EcefCartesian_.reverse>} has been DEPRECATED, use method L{LocalCartesian.reverse} or L{Ltp.reverse}.\n  t = c.reverse(-38e3, 230e3, -4e3)\n./test/testLtp.py:66: DeprecationWarning: method L{forward<pygeodesy.deprecated.classes.EcefCartesian_.forward>} has been DEPRECATED, use method L{LocalCartesian.forward} or L{Ltp.forward}.\n  t = c.forward(50.9, 1.79, 264.92)  # Local9Tuple\n./test/testLtp.py:74: DeprecationWarning: method L{reverse<pygeodesy.deprecated.classes.EcefCartesian_.reverse>} has been DEPRECATED, use method L{LocalCartesian.reverse} or L{Ltp.reverse}.\n  t = Z.reverse(M).toLatLon(datum=None)  # Matterhorn Xyz to LatLon\n./test/testLtp.py:76: DeprecationWarning: method L{forward<pygeodesy.deprecated.classes.EcefCartesian_.forward>} has been DEPRECATED, use method L{LocalCartesian.forward} or L{Ltp.forward}.\n  self.test('xyz', Z.forward(t).xyz.toStr(prec=1), '(-7134.8, -4556.3, 2852.4)', known=Sudano)\n# lazily imported pygeodesy.basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.DeprecationWarnings from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isint from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isLazy from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.issubclassof from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.iterNumpy2over from .iters by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.LazyImportError from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.karney by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.NN from .interns by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.normDMS from .dms by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.pairs from .streprs by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.printf from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.property_RO from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.typename from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.Aer from .ltpTuples by testLtp.py line 11\n# lazily imported pygeodesy.Attitude from .ltp by testLtp.py line 11\n# lazily imported pygeodesy.ChLV from .ltp by testLtp.py line 11\n# lazily imported pygeodesy.ChLVa from .ltp by testLtp.py line 11\n# lazily imported pygeodesy.ChLVe from .ltp by testLtp.py line 11\n# lazily imported pygeodesy.EcefFarrell21 from .ecef by testLtp.py line 11\n# lazily imported pygeodesy.EcefFarrell22 from .ecef by testLtp.py line 11\n# lazily imported pygeodesy.EcefKarney from .ecef by testLtp.py line 11\n# lazily imported pygeodesy.EcefVeness from .ecef by testLtp.py line 11\n# lazily imported pygeodesy.EcefSudano from .ecef by testLtp.py line 11\n# lazily imported pygeodesy.Ecef9Tuple from .ecef by testLtp.py line 11\n# lazily imported pygeodesy.EcefYou from .ecef by testLtp.py line 11\n# lazily imported pygeodesy.Enu from .ltpTuples by testLtp.py line 11\n# lazily imported pygeodesy.Frustum from .ltp by testLtp.py line 11\n# lazily imported pygeodesy.fstr from .streprs by testLtp.py line 11\n# lazily imported pygeodesy.LatLon_ from .points by testLtp.py line 11\n# lazily imported pygeodesy.LocalCartesian from .ltp by testLtp.py line 11\n# lazily imported pygeodesy.Local9Tuple from .ltpTuples by testLtp.py line 11\n# lazily imported pygeodesy.Ltp from .ltp by testLtp.py line 11\n# lazily imported pygeodesy.Ned from .ltpTuples by testLtp.py line 11\n# lazily imported pygeodesy.tyr3d from .ltp by testLtp.py line 11\n# lazily imported pygeodesy.XyzLocal from .ltpTuples by testLtp.py line 11\n# lazily imported pygeodesy.latDMS from .dms by testLtp.py line 11\n# lazily imported pygeodesy.lonDMS from .dms by testLtp.py line 11\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by <frozen importlib._bootstrap> line 1075\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by <frozen importlib._bootstrap> line 1075\n# lazily imported pygeodesy.Conformal2Tuple from .triaxials.triaxial5 by <frozen importlib._bootstrap> line 1075\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by classes.py line 21\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by classes.py line 21\n# lazily imported pygeodesy.Conformal2Tuple from .triaxials.triaxial5 by classes.py line 21\n# lazily imported pygeodesy.Ellipsoids from .ellipsoids by testLtp.py line 286\n\n    testing testLtp.py 23.11.21 isLazy=3\n\n    test 1 EcefCartesian: {}\n    test 2 name: Test\n    test 3 toStr: EcefCartesian_(lat0=33.0, lon0=44.0, height0=20.0, M=EcefMatrix(_0_0_=-0.694658, _0_1_=-0.391781, _0_2_=0.603289, _1_0_=0.71934, _1_1_=-0.378338, _1_2_=0.58259, _2_0_=0.0, _2_1_=0.838671, _2_2_=0.544639), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Test')  FAILED, KNOWN, expected EcefCartesian_\n    test 4 copy(<class 'type'>): (<class 'pygeodesy.deprecated.classes.EcefCartesian.<locals>.EcefCartesian_'>, True)\n    test 5 EcefCartesian_.copy(): (<class 'pygeodesy.deprecated.classes.EcefCartesian.<locals>.EcefCartesian_'>, True)\n    test 6 New: lat0=33.0, lon0=44.0, height0=20.0, M=EcefMatrix(_0_0_=-0.694658, _0_1_=-0.391781, _0_2_=0.603289, _1_0_=0.71934, _1_1_=-0.378338, _1_2_=0.58259, _2_0_=0.0, _2_1_=0.838671, _2_2_=0.544639), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Test'\n    test 7 forward: 37288.97, 33374.29, 5783.65\n    test 8 name: Test\n    test 9 reverse: 33.3, 44.4, 6000.0\n    test 10 name: Test\n    test 11 name: Paris\n    test 12 Paris: 48.833, 2.333, 0.0\n    test 13 forward: -37518.64, 229949.65, -4260.43\n    test 14 name: Calais\n    test 15 reverse: 50.9, 1.8, -0.0\n    test 16 name: Paris\n    test 17 reverse: -38000.0, 230000.0, -4000.0\n    test 18 reverse: 50.9, 1.79, 264.92\n    test 19 forward: -38223.7, 229964.2, -4000.0\n\n    test 20 Zermatt: lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'  FAILED, KNOWN, expected EcefCartesian_\n    test 21 Matterhorn: (45.976, 7.658, 4531.01)\n    test 22 xyz: (-7134.8, -4556.3, 2852.4)\n    test 23 _local2ecef: 4403757.602, 592124.536, 4566652.082\n    test 24 _local2ecef: (4403757.602, 592124.536, 4566652.082, 45.976, 7.658, 4531.01, 1, None, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))  FAILED, KNOWN, expected Ecef9Tuple\n    test 25 _local2ecef: Ecef9Tuple\n    test 26 _ecef2local: (-7134.8, -4556.3, 2852.4, 45.976, 7.658, 4531.01, EcefCartesian_(lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'), Ecef9Tuple(x=4403757.601549, y=592124.535536, z=4566652.082005, lat=45.976, lon=7.657999, height=4531.009608, C=1, M=None, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84)), None)  FAILED, KNOWN, expected Local9Tuple\n    test 27 _ecef2local: Local9Tuple\n    test 28 Xyz: (-7134.8, -4556.3, 2852.4, None)\n    test 29 Aer: (-7134.912, -4444.548, 2852.474, None)\n    test 30 Enu: (-7134.8, -4556.3, 2852.4, None)\n    test 31 Ned: [-4556.3, -7134.8, -2852.4]\n    test 32 Enu: [-7134.8, -4556.3, 2852.4]\n    test 33 Ned: [-4556.3, -7134.8, -2852.4]\n\n    test 34 lon00: (90.0, 57.3, 0.0, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 35 lon00: (90.0, 3.75, 0.0, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n\n    test 36 Frustum: 90.0, 90.0\n    test 37 hfov: 90.0\n    test 38 vfov: 90.0\n    test 39 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None))\n    test 40 footprint.xyzLocal5: ([X:0.0, Y:0.0, Z:0.0], [X:1000.0, Y:1000.0, Z:0.0], [X:1000.0, Y:1000.0, Z:0.0], [X:-1000.0, Y:-1000.0, Z:0.0], [X:-1000.0, Y:-1000.0, Z:0.0])\n# imported pygeodesy.ltp into ltpTuples.py line 1534\n    test 41 footprint.toLatLon5: (LatLon_(00.0°N, 000.0°E), LatLon_(00.009044°N, 000.008983°E, +0.16), LatLon_(00.009044°N, 000.008983°E, +0.16), LatLon_(00.009044°S, 000.008983°W, +0.16), LatLon_(00.009044°S, 000.008983°W, +0.16))\n\n    test 42 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None))\n    test 43 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=414.213562, y=414.213562, z=0.0, ltp=None), Xyz4Tuple(x=414.213562, y=414.213562, z=0.0, ltp=None), Xyz4Tuple(x=-414.213562, y=-414.213562, z=0.0, ltp=None), Xyz4Tuple(x=-414.213562, y=-414.213562, z=0.0, ltp=None))\n    test 44 footprint: (Xyz4Tuple(x=-57289.961631, y=-57289.961631, z=0.0, ltp=None), Xyz4Tuple(x=2538.647896, y=2538.647896, z=0.0, ltp=None), Xyz4Tuple(x=2538.647896, y=2538.647896, z=0.0, ltp=None), Xyz4Tuple(x=-2299.842547, y=-2299.842547, z=0.0, ltp=None), Xyz4Tuple(x=-2299.842547, y=-2299.842547, z=0.0, ltp=None))\n\n    test 45 Attitude: (0.0, -10.0, 330.0, -20.0)\n    test 46 alt: 0.0\n    test 47 tilt: -10.0\n    test 48 roll: -20.0\n    test 49 yaw: 330.0\n    test 50 matrix: ((0.8137976813493736, -0.44096961052988237, -0.37852230636979256), (0.46984631039295416, 0.8825641192593855, -0.01802831123629728), (0.3420201433256688, -0.16317591116653488, 0.9254165783983233))  FAILED, KNOWN, expected ((0.8137976813493737, -0.4409696105298823, -0.3785223063697926), (0.4698463103929541, 0.8825641192593856, -0.01802831123629725), (0.3420201433256688, -0.16317591116653488, 0.9254165783983233))\n    test 51 rotate: (-0.005694, 1.334382, 1.104261)\n    test 52 tyr3d: (0.0, 0.0, 0.0)\n    test 53 tyr3d: (0.0, -2.0, 0.0)\n    test 54 tyr3d: (0.0, -2.0, 0.0)\n    test 55 tyr3d: (0.0, 0.0, -2.0)\n\n    test 56 LocalCartesian: {}\n    test 57 name: Test\n    test 58 toStr: LocalCartesian(lat0=33.0, lon0=44.0, height0=20.0, M=EcefMatrix(_0_0_=-0.694658, _0_1_=-0.391781, _0_2_=0.603289, _1_0_=0.71934, _1_1_=-0.378338, _1_2_=0.58259, _2_0_=0.0, _2_1_=0.838671, _2_2_=0.544639), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Test')  FAILED, KNOWN, expected LocalCartesian\n    test 59 copy(<class 'type'>): (<class 'pygeodesy.ltp.LocalCartesian'>, True)\n    test 60 LocalCartesian.copy(): (<class 'pygeodesy.ltp.LocalCartesian'>, True)\n    test 61 New: lat0=33.0, lon0=44.0, height0=20.0, M=EcefMatrix(_0_0_=-0.694658, _0_1_=-0.391781, _0_2_=0.603289, _1_0_=0.71934, _1_1_=-0.378338, _1_2_=0.58259, _2_0_=0.0, _2_1_=0.838671, _2_2_=0.544639), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Test'\n    test 62 forward: 37288.97, 33374.29, 5783.65\n    test 63 name: Test\n    test 64 reverse: 33.3, 44.4, 6000.0\n    test 65 name: Test\n    test 66 name: Paris\n    test 67 Paris: 48.833, 2.333, 0.0\n    test 68 forward: -37518.64, 229949.65, -4260.43\n    test 69 name: Calais\n    test 70 reverse: 50.9, 1.8, -0.0\n    test 71 name: Paris\n    test 72 reverse: -38000.0, 230000.0, -4000.0\n    test 73 reverse: 50.9, 1.79, 264.92\n    test 74 forward: -38223.7, 229964.2, -4000.0\n\n    test 75 Zermatt: lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'  FAILED, KNOWN, expected LocalCartesian\n    test 76 Matterhorn: (45.976, 7.658, 4531.01)\n    test 77 xyz: (-7134.8, -4556.3, 2852.4)\n    test 78 _local2ecef: 4403757.602, 592124.536, 4566652.082\n    test 79 _local2ecef: (4403757.602, 592124.536, 4566652.082, 45.976, 7.658, 4531.01, 1, None, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))  FAILED, KNOWN, expected Ecef9Tuple\n    test 80 _local2ecef: Ecef9Tuple\n    test 81 _ecef2local: (-7134.8, -4556.3, 2852.4, 45.976, 7.658, 4531.01, LocalCartesian(lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'), Ecef9Tuple(x=4403757.601549, y=592124.535536, z=4566652.082005, lat=45.976, lon=7.657999, height=4531.009608, C=1, M=None, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84)), None)  FAILED, KNOWN, expected Local9Tuple\n    test 82 _ecef2local: Local9Tuple\n    test 83 Xyz: (-7134.8, -4556.3, 2852.4, None)\n    test 84 Aer: (-7134.912, -4444.548, 2852.474, None)\n    test 85 Enu: (-7134.8, -4556.3, 2852.4, None)\n    test 86 Ned: [-4556.3, -7134.8, -2852.4]\n    test 87 Enu: [-7134.8, -4556.3, 2852.4]\n    test 88 Ned: [-4556.3, -7134.8, -2852.4]\n\n    test 89 lon00: (90.0, 57.3, 0.0, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 90 lon00: (90.0, 3.75, 0.0, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n\n    test 91 Frustum: 90.0, 90.0\n    test 92 hfov: 90.0\n    test 93 vfov: 90.0\n    test 94 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None))\n    test 95 footprint.xyzLocal5: ([X:0.0, Y:0.0, Z:0.0], [X:1000.0, Y:1000.0, Z:0.0], [X:1000.0, Y:1000.0, Z:0.0], [X:-1000.0, Y:-1000.0, Z:0.0], [X:-1000.0, Y:-1000.0, Z:0.0])\n    test 96 footprint.toLatLon5: (LatLon_(00.0°N, 000.0°E), LatLon_(00.009044°N, 000.008983°E, +0.16), LatLon_(00.009044°N, 000.008983°E, +0.16), LatLon_(00.009044°S, 000.008983°W, +0.16), LatLon_(00.009044°S, 000.008983°W, +0.16))\n\n    test 97 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None))\n    test 98 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=414.213562, y=414.213562, z=0.0, ltp=None), Xyz4Tuple(x=414.213562, y=414.213562, z=0.0, ltp=None), Xyz4Tuple(x=-414.213562, y=-414.213562, z=0.0, ltp=None), Xyz4Tuple(x=-414.213562, y=-414.213562, z=0.0, ltp=None))\n    test 99 footprint: (Xyz4Tuple(x=-57289.961631, y=-57289.961631, z=0.0, ltp=None), Xyz4Tuple(x=2538.647896, y=2538.647896, z=0.0, ltp=None), Xyz4Tuple(x=2538.647896, y=2538.647896, z=0.0, ltp=None), Xyz4Tuple(x=-2299.842547, y=-2299.842547, z=0.0, ltp=None), Xyz4Tuple(x=-2299.842547, y=-2299.842547, z=0.0, ltp=None))\n\n    test 100 Attitude: (0.0, -10.0, 330.0, -20.0)\n    test 101 alt: 0.0\n    test 102 tilt: -10.0\n    test 103 roll: -20.0\n    test 104 yaw: 330.0\n    test 105 matrix: ((0.8137976813493736, -0.44096961052988237, -0.37852230636979256), (0.46984631039295416, 0.8825641192593855, -0.01802831123629728), (0.3420201433256688, -0.16317591116653488, 0.9254165783983233))  FAILED, KNOWN, expected ((0.8137976813493737, -0.4409696105298823, -0.3785223063697926), (0.4698463103929541, 0.8825641192593856, -0.01802831123629725), (0.3420201433256688, -0.16317591116653488, 0.9254165783983233))\n    test 106 rotate: (-0.005694, 1.334382, 1.104261)\n    test 107 tyr3d: (0.0, 0.0, 0.0)\n    test 108 tyr3d: (0.0, -2.0, 0.0)\n    test 109 tyr3d: (0.0, -2.0, 0.0)\n    test 110 tyr3d: (0.0, 0.0, -2.0)\n\n    test 111 Ltp: {}\n    test 112 name: Test\n    test 113 toStr: Ltp(lat0=33.0, lon0=44.0, height0=20.0, M=EcefMatrix(_0_0_=-0.694658, _0_1_=-0.391781, _0_2_=0.603289, _1_0_=0.71934, _1_1_=-0.378338, _1_2_=0.58259, _2_0_=0.0, _2_1_=0.838671, _2_2_=0.544639), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Test')  FAILED, KNOWN, expected Ltp\n    test 114 copy(<class 'type'>): (<class 'pygeodesy.ltp.Ltp'>, True)\n    test 115 Ltp.copy(): (<class 'pygeodesy.ltp.Ltp'>, True)\n    test 116 New: lat0=33.0, lon0=44.0, height0=20.0, M=EcefMatrix(_0_0_=-0.694658, _0_1_=-0.391781, _0_2_=0.603289, _1_0_=0.71934, _1_1_=-0.378338, _1_2_=0.58259, _2_0_=0.0, _2_1_=0.838671, _2_2_=0.544639), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Test'\n    test 117 forward: 37288.97, 33374.29, 5783.65\n    test 118 name: Test\n    test 119 reverse: 33.3, 44.4, 6000.0\n    test 120 name: Test\n    test 121 name: Paris\n    test 122 Paris: 48.833, 2.333, 0.0\n    test 123 forward: -37518.64, 229949.65, -4260.43\n    test 124 name: Calais\n    test 125 reverse: 50.9, 1.8, -0.0\n    test 126 name: Paris\n    test 127 reverse: -38000.0, 230000.0, -4000.0\n    test 128 reverse: 50.9, 1.79, 264.92\n    test 129 forward: -38223.7, 229964.2, -4000.0\n\n    test 130 Zermatt: lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'  FAILED, KNOWN, expected Ltp\n    test 131 Matterhorn: (45.976, 7.658, 4531.01)\n    test 132 xyz: (-7134.8, -4556.3, 2852.4)\n    test 133 _local2ecef: 4403757.602, 592124.536, 4566652.082\n    test 134 _local2ecef: (4403757.602, 592124.536, 4566652.082, 45.976, 7.658, 4531.01, 1, None, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))  FAILED, KNOWN, expected Ecef9Tuple\n    test 135 _local2ecef: Ecef9Tuple\n    test 136 _ecef2local: (-7134.8, -4556.3, 2852.4, 45.976, 7.658, 4531.01, Ltp(lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'), Ecef9Tuple(x=4403757.601549, y=592124.535536, z=4566652.082005, lat=45.976, lon=7.657999, height=4531.009608, C=1, M=None, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84)), None)  FAILED, KNOWN, expected Local9Tuple\n    test 137 _ecef2local: Local9Tuple\n    test 138 Xyz: (-7134.8, -4556.3, 2852.4, None)\n    test 139 Aer: (-7134.912, -4444.548, 2852.474, None)\n    test 140 Enu: (-7134.8, -4556.3, 2852.4, None)\n    test 141 Ned: [-4556.3, -7134.8, -2852.4]\n    test 142 Enu: [-7134.8, -4556.3, 2852.4]\n    test 143 Ned: [-4556.3, -7134.8, -2852.4]\n\n    test 144 lon00: (90.0, 57.3, 0.0, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 145 lon00: (90.0, 3.75, 0.0, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n\n    test 146 Frustum: 90.0, 90.0\n    test 147 hfov: 90.0\n    test 148 vfov: 90.0\n    test 149 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None))\n    test 150 footprint.xyzLocal5: ([X:0.0, Y:0.0, Z:0.0], [X:1000.0, Y:1000.0, Z:0.0], [X:1000.0, Y:1000.0, Z:0.0], [X:-1000.0, Y:-1000.0, Z:0.0], [X:-1000.0, Y:-1000.0, Z:0.0])\n    test 151 footprint.toLatLon5: (LatLon_(00.0°N, 000.0°E), LatLon_(00.009044°N, 000.008983°E, +0.16), LatLon_(00.009044°N, 000.008983°E, +0.16), LatLon_(00.009044°S, 000.008983°W, +0.16), LatLon_(00.009044°S, 000.008983°W, +0.16))\n\n    test 152 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None))\n    test 153 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=414.213562, y=414.213562, z=0.0, ltp=None), Xyz4Tuple(x=414.213562, y=414.213562, z=0.0, ltp=None), Xyz4Tuple(x=-414.213562, y=-414.213562, z=0.0, ltp=None), Xyz4Tuple(x=-414.213562, y=-414.213562, z=0.0, ltp=None))\n    test 154 footprint: (Xyz4Tuple(x=-57289.961631, y=-57289.961631, z=0.0, ltp=None), Xyz4Tuple(x=2538.647896, y=2538.647896, z=0.0, ltp=None), Xyz4Tuple(x=2538.647896, y=2538.647896, z=0.0, ltp=None), Xyz4Tuple(x=-2299.842547, y=-2299.842547, z=0.0, ltp=None), Xyz4Tuple(x=-2299.842547, y=-2299.842547, z=0.0, ltp=None))\n\n    test 155 Attitude: (0.0, -10.0, 330.0, -20.0)\n    test 156 alt: 0.0\n    test 157 tilt: -10.0\n    test 158 roll: -20.0\n    test 159 yaw: 330.0\n    test 160 matrix: ((0.8137976813493736, -0.44096961052988237, -0.37852230636979256), (0.46984631039295416, 0.8825641192593855, -0.01802831123629728), (0.3420201433256688, -0.16317591116653488, 0.9254165783983233))  FAILED, KNOWN, expected ((0.8137976813493737, -0.4409696105298823, -0.3785223063697926), (0.4698463103929541, 0.8825641192593856, -0.01802831123629725), (0.3420201433256688, -0.16317591116653488, 0.9254165783983233))\n    test 161 rotate: (-0.005694, 1.334382, 1.104261)\n    test 162 tyr3d: (0.0, 0.0, 0.0)\n    test 163 tyr3d: (0.0, -2.0, 0.0)\n    test 164 tyr3d: (0.0, -2.0, 0.0)\n    test 165 tyr3d: (0.0, 0.0, -2.0)\n\n    test 166 Ltp: {'ecef': EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name='')}\n    test 167 name: Test\n    test 168 toStr: Ltp(lat0=33.0, lon0=44.0, height0=20.0, M=EcefMatrix(_0_0_=-0.694658, _0_1_=-0.391781, _0_2_=0.603289, _1_0_=0.71934, _1_1_=-0.378338, _1_2_=0.58259, _2_0_=0.0, _2_1_=0.838671, _2_2_=0.544639), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Test')  FAILED, KNOWN, expected Ltp\n    test 169 copy(<class 'type'>): (<class 'pygeodesy.ltp.Ltp'>, True)\n    test 170 Ltp.copy(): (<class 'pygeodesy.ltp.Ltp'>, True)\n    test 171 New: lat0=33.0, lon0=44.0, height0=20.0, M=EcefMatrix(_0_0_=-0.694658, _0_1_=-0.391781, _0_2_=0.603289, _1_0_=0.71934, _1_1_=-0.378338, _1_2_=0.58259, _2_0_=0.0, _2_1_=0.838671, _2_2_=0.544639), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Test'\n    test 172 forward: 37288.97, 33374.29, 5783.65\n    test 173 name: Test\n    test 174 reverse: 33.3, 44.4, 6000.0\n    test 175 name: Test\n    test 176 name: Paris\n    test 177 Paris: 48.833, 2.333, 0.0\n    test 178 forward: -37518.64, 229949.65, -4260.43\n    test 179 name: Calais\n    test 180 reverse: 50.9, 1.8, -0.0\n    test 181 name: Paris\n    test 182 reverse: -38000.0, 230000.0, -4000.0\n    test 183 reverse: 50.9, 1.79, 264.92\n    test 184 forward: -38223.7, 229964.2, -4000.0\n\n    test 185 Zermatt: lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'  FAILED, KNOWN, expected Ltp\n    test 186 Matterhorn: (45.976, 7.658, 4531.01)\n    test 187 xyz: (-7134.8, -4556.3, 2852.4)\n    test 188 _local2ecef: 4403757.602, 592124.536, 4566652.082\n    test 189 _local2ecef: (4403757.602, 592124.536, 4566652.082, 45.976, 7.658, 4531.01, 1, None, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))  FAILED, KNOWN, expected Ecef9Tuple\n    test 190 _local2ecef: Ecef9Tuple\n    test 191 _ecef2local: (-7134.8, -4556.3, 2852.4, 45.976, 7.658, 4531.01, Ltp(lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'), Ecef9Tuple(x=4403757.601549, y=592124.535536, z=4566652.082005, lat=45.976, lon=7.657999, height=4531.009608, C=1, M=None, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84)), None)  FAILED, KNOWN, expected Local9Tuple\n    test 192 _ecef2local: Local9Tuple\n    test 193 Xyz: (-7134.8, -4556.3, 2852.4, None)\n    test 194 Aer: (-7134.912, -4444.548, 2852.474, None)\n    test 195 Enu: (-7134.8, -4556.3, 2852.4, None)\n    test 196 Ned: [-4556.3, -7134.8, -2852.4]\n    test 197 Enu: [-7134.8, -4556.3, 2852.4]\n    test 198 Ned: [-4556.3, -7134.8, -2852.4]\n\n    test 199 lon00: (90.0, 57.3, 0.0, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 200 lon00: (90.0, 3.75, 0.0, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n\n    test 201 Frustum: 90.0, 90.0\n    test 202 hfov: 90.0\n    test 203 vfov: 90.0\n    test 204 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None))\n    test 205 footprint.xyzLocal5: ([X:0.0, Y:0.0, Z:0.0], [X:1000.0, Y:1000.0, Z:0.0], [X:1000.0, Y:1000.0, Z:0.0], [X:-1000.0, Y:-1000.0, Z:0.0], [X:-1000.0, Y:-1000.0, Z:0.0])\n    test 206 footprint.toLatLon5: (LatLon_(00.0°N, 000.0°E), LatLon_(00.009044°N, 000.008983°E, +0.16), LatLon_(00.009044°N, 000.008983°E, +0.16), LatLon_(00.009044°S, 000.008983°W, +0.16), LatLon_(00.009044°S, 000.008983°W, +0.16))\n\n    test 207 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None))\n    test 208 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=414.213562, y=414.213562, z=0.0, ltp=None), Xyz4Tuple(x=414.213562, y=414.213562, z=0.0, ltp=None), Xyz4Tuple(x=-414.213562, y=-414.213562, z=0.0, ltp=None), Xyz4Tuple(x=-414.213562, y=-414.213562, z=0.0, ltp=None))\n    test 209 footprint: (Xyz4Tuple(x=-57289.961631, y=-57289.961631, z=0.0, ltp=None), Xyz4Tuple(x=2538.647896, y=2538.647896, z=0.0, ltp=None), Xyz4Tuple(x=2538.647896, y=2538.647896, z=0.0, ltp=None), Xyz4Tuple(x=-2299.842547, y=-2299.842547, z=0.0, ltp=None), Xyz4Tuple(x=-2299.842547, y=-2299.842547, z=0.0, ltp=None))\n\n    test 210 Attitude: (0.0, -10.0, 330.0, -20.0)\n    test 211 alt: 0.0\n    test 212 tilt: -10.0\n    test 213 roll: -20.0\n    test 214 yaw: 330.0\n    test 215 matrix: ((0.8137976813493736, -0.44096961052988237, -0.37852230636979256), (0.46984631039295416, 0.8825641192593855, -0.01802831123629728), (0.3420201433256688, -0.16317591116653488, 0.9254165783983233))  FAILED, KNOWN, expected ((0.8137976813493737, -0.4409696105298823, -0.3785223063697926), (0.4698463103929541, 0.8825641192593856, -0.01802831123629725), (0.3420201433256688, -0.16317591116653488, 0.9254165783983233))\n    test 216 rotate: (-0.005694, 1.334382, 1.104261)\n    test 217 tyr3d: (0.0, 0.0, 0.0)\n    test 218 tyr3d: (0.0, -2.0, 0.0)\n    test 219 tyr3d: (0.0, -2.0, 0.0)\n    test 220 tyr3d: (0.0, 0.0, -2.0)\n\n    test 221 Ltp: {'ecef': EcefFarrell21(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name='')}\n    test 222 name: Test\n    test 223 toStr: Ltp(lat0=33.0, lon0=44.0, height0=20.0, M=EcefMatrix(_0_0_=-0.694658, _0_1_=-0.391781, _0_2_=0.603289, _1_0_=0.71934, _1_1_=-0.378338, _1_2_=0.58259, _2_0_=0.0, _2_1_=0.838671, _2_2_=0.544639), ecef=EcefFarrell21(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Test')  FAILED, KNOWN, expected Ltp\n    test 224 copy(<class 'type'>): (<class 'pygeodesy.ltp.Ltp'>, True)\n    test 225 Ltp.copy(): (<class 'pygeodesy.ltp.Ltp'>, True)\n    test 226 New: lat0=33.0, lon0=44.0, height0=20.0, M=EcefMatrix(_0_0_=-0.694658, _0_1_=-0.391781, _0_2_=0.603289, _1_0_=0.71934, _1_1_=-0.378338, _1_2_=0.58259, _2_0_=0.0, _2_1_=0.838671, _2_2_=0.544639), ecef=EcefFarrell21(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Test'\n    test 227 forward: 37288.97, 33374.29, 5783.65\n    test 228 name: Test\n    test 229 reverse: 33.3, 44.4, 6000.0\n    test 230 name: Test\n    test 231 name: Paris\n    test 232 Paris: 48.833, 2.333, 0.0\n    test 233 forward: -37518.64, 229949.65, -4260.43\n    test 234 name: Calais\n    test 235 reverse: 50.9, 1.8, -0.0\n    test 236 name: Paris\n    test 237 reverse: -38000.0, 230000.0, -4000.0\n    test 238 reverse: 50.9, 1.79, 264.92\n    test 239 forward: -38223.7, 229964.2, -4000.0\n\n    test 240 Zermatt: lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefFarrell21(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'  FAILED, KNOWN, expected Ltp\n    test 241 Matterhorn: (45.976, 7.658, 4531.01)\n    test 242 xyz: (-7134.8, -4556.3, 2852.4)\n    test 243 _local2ecef: 4403757.602, 592124.536, 4566652.082\n    test 244 _local2ecef: (4403757.602, 592124.536, 4566652.082, 45.976, 7.658, 4531.01, 1, None, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))  FAILED, KNOWN, expected Ecef9Tuple\n    test 245 _local2ecef: Ecef9Tuple\n    test 246 _ecef2local: (-7134.8, -4556.3, 2852.4, 45.976, 7.658, 4531.01, Ltp(lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefFarrell21(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'), Ecef9Tuple(x=4403757.601549, y=592124.535536, z=4566652.082005, lat=45.976, lon=7.657999, height=4531.009608, C=1, M=None, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84)), None)  FAILED, KNOWN, expected Local9Tuple\n    test 247 _ecef2local: Local9Tuple\n    test 248 Xyz: (-7134.8, -4556.3, 2852.4, None)\n    test 249 Aer: (-7134.912, -4444.548, 2852.474, None)\n    test 250 Enu: (-7134.8, -4556.3, 2852.4, None)\n    test 251 Ned: [-4556.3, -7134.8, -2852.4]\n    test 252 Enu: [-7134.8, -4556.3, 2852.4]\n    test 253 Ned: [-4556.3, -7134.8, -2852.4]\n\n    test 254 lon00: (90.0, 57.3, 0.0, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 255 lon00: (90.0, 3.75, 0.0, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n\n    test 256 Frustum: 90.0, 90.0\n    test 257 hfov: 90.0\n    test 258 vfov: 90.0\n    test 259 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None))\n    test 260 footprint.xyzLocal5: ([X:0.0, Y:0.0, Z:0.0], [X:1000.0, Y:1000.0, Z:0.0], [X:1000.0, Y:1000.0, Z:0.0], [X:-1000.0, Y:-1000.0, Z:0.0], [X:-1000.0, Y:-1000.0, Z:0.0])\n    test 261 footprint.toLatLon5: (LatLon_(00.0°N, 000.0°E), LatLon_(00.009044°N, 000.008983°E, +0.16), LatLon_(00.009044°N, 000.008983°E, +0.16), LatLon_(00.009044°S, 000.008983°W, +0.16), LatLon_(00.009044°S, 000.008983°W, +0.16))\n\n    test 262 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None))\n    test 263 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=414.213562, y=414.213562, z=0.0, ltp=None), Xyz4Tuple(x=414.213562, y=414.213562, z=0.0, ltp=None), Xyz4Tuple(x=-414.213562, y=-414.213562, z=0.0, ltp=None), Xyz4Tuple(x=-414.213562, y=-414.213562, z=0.0, ltp=None))\n    test 264 footprint: (Xyz4Tuple(x=-57289.961631, y=-57289.961631, z=0.0, ltp=None), Xyz4Tuple(x=2538.647896, y=2538.647896, z=0.0, ltp=None), Xyz4Tuple(x=2538.647896, y=2538.647896, z=0.0, ltp=None), Xyz4Tuple(x=-2299.842547, y=-2299.842547, z=0.0, ltp=None), Xyz4Tuple(x=-2299.842547, y=-2299.842547, z=0.0, ltp=None))\n\n    test 265 Attitude: (0.0, -10.0, 330.0, -20.0)\n    test 266 alt: 0.0\n    test 267 tilt: -10.0\n    test 268 roll: -20.0\n    test 269 yaw: 330.0\n    test 270 matrix: ((0.8137976813493736, -0.44096961052988237, -0.37852230636979256), (0.46984631039295416, 0.8825641192593855, -0.01802831123629728), (0.3420201433256688, -0.16317591116653488, 0.9254165783983233))  FAILED, KNOWN, expected ((0.8137976813493737, -0.4409696105298823, -0.3785223063697926), (0.4698463103929541, 0.8825641192593856, -0.01802831123629725), (0.3420201433256688, -0.16317591116653488, 0.9254165783983233))\n    test 271 rotate: (-0.005694, 1.334382, 1.104261)\n    test 272 tyr3d: (0.0, 0.0, 0.0)\n    test 273 tyr3d: (0.0, -2.0, 0.0)\n    test 274 tyr3d: (0.0, -2.0, 0.0)\n    test 275 tyr3d: (0.0, 0.0, -2.0)\n\n    test 276 Ltp: {'ecef': EcefFarrell22(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name='')}\n    test 277 name: Test\n    test 278 toStr: Ltp(lat0=33.0, lon0=44.0, height0=20.0, M=EcefMatrix(_0_0_=-0.694658, _0_1_=-0.391781, _0_2_=0.603289, _1_0_=0.71934, _1_1_=-0.378338, _1_2_=0.58259, _2_0_=0.0, _2_1_=0.838671, _2_2_=0.544639), ecef=EcefFarrell22(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Test')  FAILED, KNOWN, expected Ltp\n    test 279 copy(<class 'type'>): (<class 'pygeodesy.ltp.Ltp'>, True)\n    test 280 Ltp.copy(): (<class 'pygeodesy.ltp.Ltp'>, True)\n    test 281 New: lat0=33.0, lon0=44.0, height0=20.0, M=EcefMatrix(_0_0_=-0.694658, _0_1_=-0.391781, _0_2_=0.603289, _1_0_=0.71934, _1_1_=-0.378338, _1_2_=0.58259, _2_0_=0.0, _2_1_=0.838671, _2_2_=0.544639), ecef=EcefFarrell22(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Test'\n    test 282 forward: 37288.97, 33374.29, 5783.65\n    test 283 name: Test\n    test 284 reverse: 33.3, 44.4, 6000.0\n    test 285 name: Test\n    test 286 name: Paris\n    test 287 Paris: 48.833, 2.333, 0.0\n    test 288 forward: -37518.64, 229949.65, -4260.43\n    test 289 name: Calais\n    test 290 reverse: 50.9, 1.8, -0.0\n    test 291 name: Paris\n    test 292 reverse: -38000.0, 230000.0, -4000.0\n    test 293 reverse: 50.9, 1.79, 264.92\n    test 294 forward: -38223.7, 229964.2, -4000.0\n\n    test 295 Zermatt: lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefFarrell22(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'  FAILED, KNOWN, expected Ltp\n    test 296 Matterhorn: (45.976, 7.658, 4531.01)\n    test 297 xyz: (-7134.8, -4556.3, 2852.4)\n    test 298 _local2ecef: 4403757.602, 592124.536, 4566652.082\n    test 299 _local2ecef: (4403757.602, 592124.536, 4566652.082, 45.976, 7.658, 4531.01, 1, None, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))  FAILED, KNOWN, expected Ecef9Tuple\n    test 300 _local2ecef: Ecef9Tuple\n    test 301 _ecef2local: (-7134.8, -4556.3, 2852.4, 45.976, 7.658, 4531.01, Ltp(lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefFarrell22(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'), Ecef9Tuple(x=4403757.601549, y=592124.535536, z=4566652.082005, lat=45.976, lon=7.657999, height=4531.009609, C=1, M=None, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84)), None)  FAILED, KNOWN, expected Local9Tuple\n    test 302 _ecef2local: Local9Tuple\n    test 303 Xyz: (-7134.8, -4556.3, 2852.4, None)\n    test 304 Aer: (-7134.912, -4444.548, 2852.474, None)\n    test 305 Enu: (-7134.8, -4556.3, 2852.4, None)\n    test 306 Ned: [-4556.3, -7134.8, -2852.4]\n    test 307 Enu: [-7134.8, -4556.3, 2852.4]\n    test 308 Ned: [-4556.3, -7134.8, -2852.4]\n\n    test 309 lon00: (90.0, 57.3, 0.0, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 310 lon00: (90.0, 3.75, 0.0, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n\n    test 311 Frustum: 90.0, 90.0\n    test 312 hfov: 90.0\n    test 313 vfov: 90.0\n    test 314 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None))\n    test 315 footprint.xyzLocal5: ([X:0.0, Y:0.0, Z:0.0], [X:1000.0, Y:1000.0, Z:0.0], [X:1000.0, Y:1000.0, Z:0.0], [X:-1000.0, Y:-1000.0, Z:0.0], [X:-1000.0, Y:-1000.0, Z:0.0])\n    test 316 footprint.toLatLon5: (LatLon_(00.0°N, 000.0°E), LatLon_(00.009044°N, 000.008983°E, +0.16), LatLon_(00.009044°N, 000.008983°E, +0.16), LatLon_(00.009044°S, 000.008983°W, +0.16), LatLon_(00.009044°S, 000.008983°W, +0.16))\n\n    test 317 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None))\n    test 318 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=414.213562, y=414.213562, z=0.0, ltp=None), Xyz4Tuple(x=414.213562, y=414.213562, z=0.0, ltp=None), Xyz4Tuple(x=-414.213562, y=-414.213562, z=0.0, ltp=None), Xyz4Tuple(x=-414.213562, y=-414.213562, z=0.0, ltp=None))\n    test 319 footprint: (Xyz4Tuple(x=-57289.961631, y=-57289.961631, z=0.0, ltp=None), Xyz4Tuple(x=2538.647896, y=2538.647896, z=0.0, ltp=None), Xyz4Tuple(x=2538.647896, y=2538.647896, z=0.0, ltp=None), Xyz4Tuple(x=-2299.842547, y=-2299.842547, z=0.0, ltp=None), Xyz4Tuple(x=-2299.842547, y=-2299.842547, z=0.0, ltp=None))\n\n    test 320 Attitude: (0.0, -10.0, 330.0, -20.0)\n    test 321 alt: 0.0\n    test 322 tilt: -10.0\n    test 323 roll: -20.0\n    test 324 yaw: 330.0\n    test 325 matrix: ((0.8137976813493736, -0.44096961052988237, -0.37852230636979256), (0.46984631039295416, 0.8825641192593855, -0.01802831123629728), (0.3420201433256688, -0.16317591116653488, 0.9254165783983233))  FAILED, KNOWN, expected ((0.8137976813493737, -0.4409696105298823, -0.3785223063697926), (0.4698463103929541, 0.8825641192593856, -0.01802831123629725), (0.3420201433256688, -0.16317591116653488, 0.9254165783983233))\n    test 326 rotate: (-0.005694, 1.334382, 1.104261)\n    test 327 tyr3d: (0.0, 0.0, 0.0)\n    test 328 tyr3d: (0.0, -2.0, 0.0)\n    test 329 tyr3d: (0.0, -2.0, 0.0)\n    test 330 tyr3d: (0.0, 0.0, -2.0)\n\n    test 331 Ltp: {'ecef': EcefVeness(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name='')}\n    test 332 name: Test\n    test 333 toStr: Ltp(lat0=33.0, lon0=44.0, height0=20.0, M=EcefMatrix(_0_0_=-0.694658, _0_1_=-0.391781, _0_2_=0.603289, _1_0_=0.71934, _1_1_=-0.378338, _1_2_=0.58259, _2_0_=0.0, _2_1_=0.838671, _2_2_=0.544639), ecef=EcefVeness(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Test')  FAILED, KNOWN, expected Ltp\n    test 334 copy(<class 'type'>): (<class 'pygeodesy.ltp.Ltp'>, True)\n    test 335 Ltp.copy(): (<class 'pygeodesy.ltp.Ltp'>, True)\n    test 336 New: lat0=33.0, lon0=44.0, height0=20.0, M=EcefMatrix(_0_0_=-0.694658, _0_1_=-0.391781, _0_2_=0.603289, _1_0_=0.71934, _1_1_=-0.378338, _1_2_=0.58259, _2_0_=0.0, _2_1_=0.838671, _2_2_=0.544639), ecef=EcefVeness(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Test'\n    test 337 forward: 37288.97, 33374.29, 5783.65\n    test 338 name: Test\n    test 339 reverse: 33.3, 44.4, 6000.0\n    test 340 name: Test\n    test 341 name: Paris\n    test 342 Paris: 48.833, 2.333, 0.0\n    test 343 forward: -37518.64, 229949.65, -4260.43\n    test 344 name: Calais\n    test 345 reverse: 50.9, 1.8, -0.0\n    test 346 name: Paris\n    test 347 reverse: -38000.0, 230000.0, -4000.0\n    test 348 reverse: 50.9, 1.79, 264.92\n    test 349 forward: -38223.7, 229964.2, -4000.0\n\n    test 350 Zermatt: lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefVeness(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'  FAILED, KNOWN, expected Ltp\n    test 351 Matterhorn: (45.976, 7.658, 4531.01)\n    test 352 xyz: (-7134.8, -4556.3, 2852.4)\n    test 353 _local2ecef: 4403757.602, 592124.536, 4566652.082\n    test 354 _local2ecef: (4403757.602, 592124.536, 4566652.082, 45.976, 7.658, 4531.01, 1, None, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))  FAILED, KNOWN, expected Ecef9Tuple\n    test 355 _local2ecef: Ecef9Tuple\n    test 356 _ecef2local: (-7134.8, -4556.3, 2852.4, 45.976, 7.658, 4531.01, Ltp(lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefVeness(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'), Ecef9Tuple(x=4403757.601549, y=592124.535536, z=4566652.082005, lat=45.976, lon=7.657999, height=4531.009608, C=1, M=None, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84)), None)  FAILED, KNOWN, expected Local9Tuple\n    test 357 _ecef2local: Local9Tuple\n    test 358 Xyz: (-7134.8, -4556.3, 2852.4, None)\n    test 359 Aer: (-7134.912, -4444.548, 2852.474, None)\n    test 360 Enu: (-7134.8, -4556.3, 2852.4, None)\n    test 361 Ned: [-4556.3, -7134.8, -2852.4]\n    test 362 Enu: [-7134.8, -4556.3, 2852.4]\n    test 363 Ned: [-4556.3, -7134.8, -2852.4]\n\n    test 364 lon00: (90.0, 57.3, 0.0, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 365 lon00: (90.0, 3.75, 0.0, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n\n    test 366 Frustum: 90.0, 90.0\n    test 367 hfov: 90.0\n    test 368 vfov: 90.0\n    test 369 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None))\n    test 370 footprint.xyzLocal5: ([X:0.0, Y:0.0, Z:0.0], [X:1000.0, Y:1000.0, Z:0.0], [X:1000.0, Y:1000.0, Z:0.0], [X:-1000.0, Y:-1000.0, Z:0.0], [X:-1000.0, Y:-1000.0, Z:0.0])\n    test 371 footprint.toLatLon5: (LatLon_(00.0°N, 000.0°E), LatLon_(00.009044°N, 000.008983°E, +0.16), LatLon_(00.009044°N, 000.008983°E, +0.16), LatLon_(00.009044°S, 000.008983°W, +0.16), LatLon_(00.009044°S, 000.008983°W, +0.16))\n\n    test 372 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None))\n    test 373 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=414.213562, y=414.213562, z=0.0, ltp=None), Xyz4Tuple(x=414.213562, y=414.213562, z=0.0, ltp=None), Xyz4Tuple(x=-414.213562, y=-414.213562, z=0.0, ltp=None), Xyz4Tuple(x=-414.213562, y=-414.213562, z=0.0, ltp=None))\n    test 374 footprint: (Xyz4Tuple(x=-57289.961631, y=-57289.961631, z=0.0, ltp=None), Xyz4Tuple(x=2538.647896, y=2538.647896, z=0.0, ltp=None), Xyz4Tuple(x=2538.647896, y=2538.647896, z=0.0, ltp=None), Xyz4Tuple(x=-2299.842547, y=-2299.842547, z=0.0, ltp=None), Xyz4Tuple(x=-2299.842547, y=-2299.842547, z=0.0, ltp=None))\n\n    test 375 Attitude: (0.0, -10.0, 330.0, -20.0)\n    test 376 alt: 0.0\n    test 377 tilt: -10.0\n    test 378 roll: -20.0\n    test 379 yaw: 330.0\n    test 380 matrix: ((0.8137976813493736, -0.44096961052988237, -0.37852230636979256), (0.46984631039295416, 0.8825641192593855, -0.01802831123629728), (0.3420201433256688, -0.16317591116653488, 0.9254165783983233))  FAILED, KNOWN, expected ((0.8137976813493737, -0.4409696105298823, -0.3785223063697926), (0.4698463103929541, 0.8825641192593856, -0.01802831123629725), (0.3420201433256688, -0.16317591116653488, 0.9254165783983233))\n    test 381 rotate: (-0.005694, 1.334382, 1.104261)\n    test 382 tyr3d: (0.0, 0.0, 0.0)\n    test 383 tyr3d: (0.0, -2.0, 0.0)\n    test 384 tyr3d: (0.0, -2.0, 0.0)\n    test 385 tyr3d: (0.0, 0.0, -2.0)\n\n    test 386 Ltp: {'ecef': EcefSudano(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name='')}\n    test 387 name: Test\n    test 388 toStr: Ltp(lat0=33.0, lon0=44.0, height0=20.0, M=EcefMatrix(_0_0_=-0.694658, _0_1_=-0.391781, _0_2_=0.603289, _1_0_=0.71934, _1_1_=-0.378338, _1_2_=0.58259, _2_0_=0.0, _2_1_=0.838671, _2_2_=0.544639), ecef=EcefSudano(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Test')  FAILED, KNOWN, expected Ltp\n    test 389 copy(<class 'type'>): (<class 'pygeodesy.ltp.Ltp'>, True)\n    test 390 Ltp.copy(): (<class 'pygeodesy.ltp.Ltp'>, True)\n    test 391 New: lat0=33.0, lon0=44.0, height0=20.0, M=EcefMatrix(_0_0_=-0.694658, _0_1_=-0.391781, _0_2_=0.603289, _1_0_=0.71934, _1_1_=-0.378338, _1_2_=0.58259, _2_0_=0.0, _2_1_=0.838671, _2_2_=0.544639), ecef=EcefSudano(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Test'\n    test 392 forward: 37288.97, 33374.29, 5783.65\n    test 393 name: Test\n    test 394 reverse: 33.33, 44.4, 5998.84  FAILED, KNOWN, expected 33.3, 44.4, 6000.0\n    test 395 name: Test\n    test 396 name: Paris\n    test 397 Paris: 48.833, 2.333, 0.0\n    test 398 forward: -37518.64, 229949.65, -4260.43\n    test 399 name: Calais\n    test 400 reverse: 51.01, 1.8, -11.8  FAILED, KNOWN, expected 50.9, 1.8, -0.0\n    test 401 name: Paris\n    test 402 reverse: -38000.0, 230000.0, -4000.0\n    test 403 reverse: 51.01, 1.79, 253.12  FAILED, KNOWN, expected 50.9, 1.79, 264.92\n    test 404 forward: -38223.7, 229964.2, -4000.0\n\n    test 405 Zermatt: lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefSudano(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'  FAILED, KNOWN, expected Ltp\n    test 406 Matterhorn: (46.06, 7.658, 4524.116)  FAILED, KNOWN, expected (45.976, 7.658, 4531.01)\n    test 407 xyz: (-7124.0, 4817.7, 2845.3)  FAILED, KNOWN, expected (-7134.8, -4556.3, 2852.4)\n    test 408 _local2ecef: 4403757.602, 592124.536, 4566652.082\n    test 409 _local2ecef: (4403757.602, 592124.536, 4566652.082, 46.06, 7.658, 4524.116, 1, None, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))  FAILED, KNOWN, expected Ecef9Tuple\n    test 410 _local2ecef: Ecef9Tuple\n    test 411 _ecef2local: (-7134.8, -4556.3, 2852.4, 46.06, 7.658, 4524.116, Ltp(lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefSudano(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'), Ecef9Tuple(x=4403757.601549, y=592124.535536, z=4566652.082005, lat=46.060275, lon=7.657999, height=4524.115631, C=1, M=None, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84)), None)  FAILED, KNOWN, expected Local9Tuple\n    test 412 _ecef2local: Local9Tuple\n    test 413 Xyz: (-7134.8, -4556.3, 2852.4, None)\n    test 414 Aer: (-7134.912, -4444.548, 2852.474, None)\n    test 415 Enu: (-7134.8, -4556.3, 2852.4, None)\n    test 416 Ned: [-4556.3, -7134.8, -2852.4]\n    test 417 Enu: [-7134.8, -4556.3, 2852.4]\n    test 418 Ned: [-4556.3, -7134.8, -2852.4]\n\n    test 419 lon00: (90.0, 57.3, 0.0, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 420 lon00: (90.0, 3.75, 0.0, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n\n    test 421 Frustum: 90.0, 90.0\n    test 422 hfov: 90.0\n    test 423 vfov: 90.0\n    test 424 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None))\n    test 425 footprint.xyzLocal5: ([X:0.0, Y:0.0, Z:0.0], [X:1000.0, Y:1000.0, Z:0.0], [X:1000.0, Y:1000.0, Z:0.0], [X:-1000.0, Y:-1000.0, Z:0.0], [X:-1000.0, Y:-1000.0, Z:0.0])\n    test 426 footprint.toLatLon5: (LatLon_(00.0°N, 000.0°E), LatLon_(00.009044°N, 000.008983°E, +0.16), LatLon_(00.009044°N, 000.008983°E, +0.16), LatLon_(00.009044°S, 000.008983°W, +0.16), LatLon_(00.009044°S, 000.008983°W, +0.16))\n\n    test 427 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None))\n    test 428 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=414.213562, y=414.213562, z=0.0, ltp=None), Xyz4Tuple(x=414.213562, y=414.213562, z=0.0, ltp=None), Xyz4Tuple(x=-414.213562, y=-414.213562, z=0.0, ltp=None), Xyz4Tuple(x=-414.213562, y=-414.213562, z=0.0, ltp=None))\n    test 429 footprint: (Xyz4Tuple(x=-57289.961631, y=-57289.961631, z=0.0, ltp=None), Xyz4Tuple(x=2538.647896, y=2538.647896, z=0.0, ltp=None), Xyz4Tuple(x=2538.647896, y=2538.647896, z=0.0, ltp=None), Xyz4Tuple(x=-2299.842547, y=-2299.842547, z=0.0, ltp=None), Xyz4Tuple(x=-2299.842547, y=-2299.842547, z=0.0, ltp=None))\n\n    test 430 Attitude: (0.0, -10.0, 330.0, -20.0)\n    test 431 alt: 0.0\n    test 432 tilt: -10.0\n    test 433 roll: -20.0\n    test 434 yaw: 330.0\n    test 435 matrix: ((0.8137976813493736, -0.44096961052988237, -0.37852230636979256), (0.46984631039295416, 0.8825641192593855, -0.01802831123629728), (0.3420201433256688, -0.16317591116653488, 0.9254165783983233))  FAILED, KNOWN, expected ((0.8137976813493737, -0.4409696105298823, -0.3785223063697926), (0.4698463103929541, 0.8825641192593856, -0.01802831123629725), (0.3420201433256688, -0.16317591116653488, 0.9254165783983233))\n    test 436 rotate: (-0.005694, 1.334382, 1.104261)\n    test 437 tyr3d: (0.0, 0.0, 0.0)\n    test 438 tyr3d: (0.0, -2.0, 0.0)\n    test 439 tyr3d: (0.0, -2.0, 0.0)\n    test 440 tyr3d: (0.0, 0.0, -2.0)\n\n    test 441 Ltp: {'ecef': EcefYou(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name='')}\n    test 442 name: Test\n    test 443 toStr: Ltp(lat0=33.0, lon0=44.0, height0=20.0, M=EcefMatrix(_0_0_=-0.694658, _0_1_=-0.391781, _0_2_=0.603289, _1_0_=0.71934, _1_1_=-0.378338, _1_2_=0.58259, _2_0_=0.0, _2_1_=0.838671, _2_2_=0.544639), ecef=EcefYou(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Test')  FAILED, KNOWN, expected Ltp\n    test 444 copy(<class 'type'>): (<class 'pygeodesy.ltp.Ltp'>, True)\n    test 445 Ltp.copy(): (<class 'pygeodesy.ltp.Ltp'>, True)\n    test 446 New: lat0=33.0, lon0=44.0, height0=20.0, M=EcefMatrix(_0_0_=-0.694658, _0_1_=-0.391781, _0_2_=0.603289, _1_0_=0.71934, _1_1_=-0.378338, _1_2_=0.58259, _2_0_=0.0, _2_1_=0.838671, _2_2_=0.544639), ecef=EcefYou(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Test'\n    test 447 forward: 37288.97, 33374.29, 5783.65\n    test 448 name: Test\n    test 449 reverse: 33.3, 44.4, 6000.0\n    test 450 name: Test\n    test 451 name: Paris\n    test 452 Paris: 48.833, 2.333, 0.0\n    test 453 forward: -37518.64, 229949.65, -4260.43\n    test 454 name: Calais\n    test 455 reverse: 50.9, 1.8, -0.0\n    test 456 name: Paris\n    test 457 reverse: -38000.0, 230000.0, -4000.0\n    test 458 reverse: 50.9, 1.79, 264.92\n    test 459 forward: -38223.7, 229964.2, -4000.0\n\n    test 460 Zermatt: lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefYou(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'  FAILED, KNOWN, expected Ltp\n    test 461 Matterhorn: (45.976, 7.658, 4531.01)\n    test 462 xyz: (-7134.8, -4556.3, 2852.4)\n    test 463 _local2ecef: 4403757.602, 592124.536, 4566652.082\n    test 464 _local2ecef: (4403757.602, 592124.536, 4566652.082, 45.976, 7.658, 4531.01, 1, None, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))  FAILED, KNOWN, expected Ecef9Tuple\n    test 465 _local2ecef: Ecef9Tuple\n    test 466 _ecef2local: (-7134.8, -4556.3, 2852.4, 45.976, 7.658, 4531.01, Ltp(lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefYou(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'), Ecef9Tuple(x=4403757.601549, y=592124.535536, z=4566652.082005, lat=45.976, lon=7.657999, height=4531.009608, C=1, M=None, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84)), None)  FAILED, KNOWN, expected Local9Tuple\n    test 467 _ecef2local: Local9Tuple\n    test 468 Xyz: (-7134.8, -4556.3, 2852.4, None)\n    test 469 Aer: (-7134.912, -4444.548, 2852.474, None)\n    test 470 Enu: (-7134.8, -4556.3, 2852.4, None)\n    test 471 Ned: [-4556.3, -7134.8, -2852.4]\n    test 472 Enu: [-7134.8, -4556.3, 2852.4]\n    test 473 Ned: [-4556.3, -7134.8, -2852.4]\n\n    test 474 lon00: (90.0, 57.3, 0.0, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 475 lon00: (90.0, 3.75, 0.0, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n\n    test 476 Frustum: 90.0, 90.0\n    test 477 hfov: 90.0\n    test 478 vfov: 90.0\n    test 479 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None))\n    test 480 footprint.xyzLocal5: ([X:0.0, Y:0.0, Z:0.0], [X:1000.0, Y:1000.0, Z:0.0], [X:1000.0, Y:1000.0, Z:0.0], [X:-1000.0, Y:-1000.0, Z:0.0], [X:-1000.0, Y:-1000.0, Z:0.0])\n    test 481 footprint.toLatLon5: (LatLon_(00.0°N, 000.0°E), LatLon_(00.009044°N, 000.008983°E, +0.16), LatLon_(00.009044°N, 000.008983°E, +0.16), LatLon_(00.009044°S, 000.008983°W, +0.16), LatLon_(00.009044°S, 000.008983°W, +0.16))\n\n    test 482 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None))\n    test 483 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=414.213562, y=414.213562, z=0.0, ltp=None), Xyz4Tuple(x=414.213562, y=414.213562, z=0.0, ltp=None), Xyz4Tuple(x=-414.213562, y=-414.213562, z=0.0, ltp=None), Xyz4Tuple(x=-414.213562, y=-414.213562, z=0.0, ltp=None))\n    test 484 footprint: (Xyz4Tuple(x=-57289.961631, y=-57289.961631, z=0.0, ltp=None), Xyz4Tuple(x=2538.647896, y=2538.647896, z=0.0, ltp=None), Xyz4Tuple(x=2538.647896, y=2538.647896, z=0.0, ltp=None), Xyz4Tuple(x=-2299.842547, y=-2299.842547, z=0.0, ltp=None), Xyz4Tuple(x=-2299.842547, y=-2299.842547, z=0.0, ltp=None))\n\n    test 485 Attitude: (0.0, -10.0, 330.0, -20.0)\n    test 486 alt: 0.0\n    test 487 tilt: -10.0\n    test 488 roll: -20.0\n    test 489 yaw: 330.0\n    test 490 matrix: ((0.8137976813493736, -0.44096961052988237, -0.37852230636979256), (0.46984631039295416, 0.8825641192593855, -0.01802831123629728), (0.3420201433256688, -0.16317591116653488, 0.9254165783983233))  FAILED, KNOWN, expected ((0.8137976813493737, -0.4409696105298823, -0.3785223063697926), (0.4698463103929541, 0.8825641192593856, -0.01802831123629725), (0.3420201433256688, -0.16317591116653488, 0.9254165783983233))\n    test 491 rotate: (-0.005694, 1.334382, 1.104261)\n    test 492 tyr3d: (0.0, 0.0, 0.0)\n    test 493 tyr3d: (0.0, -2.0, 0.0)\n    test 494 tyr3d: (0.0, -2.0, 0.0)\n    test 495 tyr3d: (0.0, 0.0, -2.0)\n\n    test 496 ChLV: ...\n    test 497 name: Test\n    test 498 ChLV_: ChLV\n\n    test 499 forward1: (-72.039994, -147.361444, -49.552111, 46.95108, 7.438637, 0.0, ChLV(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n    test 500 Y, X, h_: (-72.03999403763596, -147.36144397473055, -49.552110733726806)\n    test 501 EN2_LV95: (2599927.960006, 1199852.638556)\n    test 502 yx2_LV03: (599927.960006, 199852.638556)\n    test 503 reverse1: (-72.039994, -147.361444, -49.552111, 46.95108, 7.438637, 0.0, ChLV(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n\n    test 504 reverse2: (100000.0, 0.0, 600.0, 46.944873, 8.752874, 1431.948128, ChLV(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n    test 505 forward2: (100000.0, 0.0, 600.0, 46.944873, 8.752874, 1431.948128, ChLV(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n    test 506 Y, X, h_: (100000.00000000006, -6.593268153665122e-10, 600.0000000007235)\n    test 507 EN2_LV95: (2700000.0, 1200000.0)\n    test 508 yx2_LV03: (700000.0, 200000.0)\n\n    test 509 forward3: (99920.639806, -100148.24791, -967.661696, 46.044131, 8.730497, 650.6, ChLV(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n    test 510 Y, X, h_: (99920.63980649531, -100148.24791021261, -967.6616955399913)\n    test 511 EN2_LV95: (2699920.639806, 1099851.75209)\n    test 512 yx2_LV03: (699920.639806, 99851.75209)\n    test 513 reverse3: (99920.639806, -100148.24791, -967.661696, 46.044131, 8.730497, 650.6, ChLV(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n\n    test 514 forward4: (79527.502386, 12274.804229, -556.312155, 47.058043, 8.48642, 0.0, ChLV(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n    test 515 Y, X, h_: (79527.50238583283, 12274.804228939269, -556.3121548987456)\n    test 516 EN2_LV95: (2679527.502386, 1212274.804229)\n    test 517 yx2_LV03: (679527.502386, 212274.804229)\n    test 518 reverse4: (79527.502386, 12274.804229, -556.312155, 47.058043, 8.48642, -0.0, ChLV(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n\n    test 519 REFRAME1: (8.616351530455896, 46.654750670631664, 3083.4064441197074)  FAILED, KNOWN, expected (8.61588452888461, 46.6532932166132, 2367.70367439557)\n    test 520 REFRAME1:  0.00146 m\n    test 521 REFRAME2: (10.204043023734304, 46.777835938708535, 5053.168786317753)  FAILED, KNOWN, expected (10.2046874099038, 46.7763864160066, 1546.62256775331)\n    test 522 REFRAME2:  0.00145 m\n    test 523 REFRAME3: (7.231565437123991, 47.395386713752515, 1150.358929550846)  FAILED, KNOWN, expected (7.23058814336896, 47.3941353658685, 940.206020880491)\n    test 524 REFRAME3:  0.00125 m\n    test 525 REFRAME4: (9.843252123471997, 46.814319314291666, 4291.256736215736)  FAILED, KNOWN, expected (9.84351348200287, 46.8129146868336, 1645.59174753912)\n    test 526 REFRAME4:  0.0014 m\n    test 527 REFRAME5: (6.568908171267955, 46.52284580890318, 985.7597106108213)  FAILED, KNOWN, expected (6.56789363190021, 46.5214647527993, 460.491580192)\n    test 528 REFRAME5:  0.00138 m\n    test 529 REFRAME6: (8.731242095241983, 46.04567715552448, 2216.7888714367236)  FAILED, KNOWN, expected (8.73049738375132, 46.0441209510033, 650.012275829911)\n    test 530 REFRAME6:  0.00156 m\n\n    test 531 Bollinger.lat: 46°11′13.03444″N  FAILED, KNOWN, expected 46°11′12.03969″N\n    test 532 Bollinger.lon: 009°07′55.69155″E  FAILED, KNOWN, expected 009°07′57.29664″E\n    test 533 Zermatt: (46.01693292843191, 7.7455811694023975, 2629.5454517406183)  FAILED, KNOWN, expected (46.015314107, 7.74720273, 1742.449)\n    test 534 Zermatt:  0.00162 m\n    test 535 Zimmerwald: (46.878427446046224, 7.466218796566256, 953.0972897404835)  FAILED, KNOWN, expected (46.878427446, 7.466218797, 953.0973)\n    test 536 Zimmerwald:  4.34e-10 m\n    test 537 Chrischona: (47.56830864684501, 7.66954858440231, 897.4060435656095)  FAILED, KNOWN, expected (47.568308647, 7.6695485844, 897.406)\n    test 538 Chrischona:  1.55e-10 m\n    test 539 Pfaender: (47.516320169780975, 9.784378737247412, 3868.8598426346603)  FAILED, KNOWN, expected (47.5163201698, 9.7843787372, 3868.8599)\n    test 540 Pfaender:  4.74e-11 m\n    test 541 La Givrine: (46.45557406857667, 6.103316269663712, 2313.9449708991415)  FAILED, KNOWN, expected (46.4555740686, 6.1033162697, 2313.94497)\n    test 542 La Givrine:  3.63e-11 m\n    test 543 Monte Generoso: (45.93111844449693, 9.021602047098654, 3855.4332412055323)  FAILED, KNOWN, expected (45.9311184445, 9.0216020471, 3855.4332)\n    test 544 Monte Generoso:  3.07e-12 m\n\n    test 545 ChLVa: ...\n    test 546 name: Test\n    test 547 ChLV_: ChLVa\n\n    test 548 forward1: (0.329415, -0.292702, -49.554242, 46.95108, 7.438637, 0.0, ChLVa(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n    test 549 Y, X, h_: (0.32941546850192266, -0.2927016084473125, -49.554241824400016)\n    test 550 EN2_LV95: (2600000.329415, 1199999.707298)\n    test 551 yx2_LV03: (600000.329415, 199999.707298)\n    test 552 reverse1: (0.329415, -0.292702, -49.554242, 46.951078, 7.438642, -0.004239, ChLVa(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n\n    test 553 reverse2: (100000.0, -100000.0, 600.0, 46.044127, 8.730499, 650.554, ChLVa(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n    test 554 forward2: (99999.933937, -100000.44412, 600.003469, 46.044127, 8.730499, 650.554, ChLVa(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n    test 555 Y, X, h_: (99999.933937317, -100000.44412018938, 600.0034685464)\n    test 556 EN2_LV95: (2699999.933937, 1099999.55588)\n    test 557 yx2_LV03: (699999.933937, 99999.55588)\n\n    test 558 forward3: (99999.763621, -100000.026905, 600.049476, 46.044131, 8.730497, 650.6, ChLVa(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n    test 559 Y, X, h_: (99999.76362116335, -100000.0269049639, 600.0494759100001)\n    test 560 EN2_LV95: (2699999.763621, 1099999.973095)\n    test 561 yx2_LV03: (699999.763621, 99999.973095)\n    test 562 reverse3: (99999.763621, -100000.026905, 600.049476, 46.044127, 8.730496, 650.603479, ChLVa(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n\n    test 563 forward4: (79602.736359, 12421.914221, -48.257243, 47.058043, 8.48642, 0.0, ChLVa(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n    test 564 Y, X, h_: (79602.73635877526, 12421.914220824741, -48.25724328779257)\n    test 565 EN2_LV95: (2679602.736359, 1212421.914221)\n    test 566 yx2_LV03: (679602.736359, 212421.914221)\n    test 567 reverse4: (79602.736359, 12421.914221, -48.257243, 47.058038, 8.486421, 0.00853, ChLVa(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n\n    test 568 REFRAME1: (8.615878879495897, 46.65329026883798, 2365.31877736998)  FAILED, KNOWN, expected (8.61588452888461, 46.6532932166132, 2367.70367439557)\n    test 569 REFRAME1:  5.65e-06 m\n    test 570 REFRAME2: (10.204675703252203, 46.77638487390875, 1542.5231657804)  FAILED, KNOWN, expected (10.2046874099038, 46.7763864160066, 1546.62256775331)\n    test 571 REFRAME2:  1.17e-05 m\n    test 572 REFRAME3: (7.230597895755378, 47.394131639593425, 939.5622657947999)  FAILED, KNOWN, expected (7.23058814336896, 47.3941353658685, 940.206020880491)\n    test 573 REFRAME3:  9.75e-06 m\n    test 574 REFRAME4: (9.843502988079765, 46.812913925274714, 1642.70478811448)  FAILED, KNOWN, expected (9.84351348200287, 46.8129146868336, 1645.59174753912)\n    test 575 REFRAME4:  1.05e-05 m\n    test 576 REFRAME5: (6.5678939352793595, 46.52146855855015, 462.1027394584)  FAILED, KNOWN, expected (6.56789363190021, 46.5214647527993, 460.491580192)\n    test 577 REFRAME5:  3.81e-06 m\n    test 578 REFRAME6: (8.730499333333333, 46.04412677777778, 650.554)  FAILED, KNOWN, expected (8.73049738375132, 46.0441209510033, 650.012275829911)\n    test 579 REFRAME6:  5.83e-06 m\n\n    test 580 Bollinger.lat: 46°11′07.65425″N  FAILED, KNOWN, expected 46°11′12.03969″N\n    test 581 Bollinger.lon: 009°07′52.99874″E  FAILED, KNOWN, expected 009°07′57.29664″E\n    test 582 Zermatt: (46.01531297876282, 7.744712831892469, 1739.1724096628)  FAILED, KNOWN, expected (46.015314107, 7.74720273, 1742.449)\n    test 583 Zermatt:  0.00249 m\n    test 584 Zimmerwald: (46.877092307814216, 7.465275686541408, 947.6256267527999)  FAILED, KNOWN, expected (46.878427446, 7.466218797, 953.0973)\n    test 585 Zimmerwald:  0.00134 m\n    test 586 Chrischona: (47.56704452300608, 7.668609312668058, 503.84493534800004)  FAILED, KNOWN, expected (47.568308647, 7.6695485844, 897.406)\n    test 587 Chrischona:  0.00126 m\n    test 588 Pfaender: (47.51533372240414, 9.784358161933795, 1088.46794437916)  FAILED, KNOWN, expected (47.5163201698, 9.7843787372, 3868.8599)\n    test 589 Pfaender:  0.000986 m\n    test 590 La Givrine: (46.45409066669543, 6.1020351431347315, 1259.50889260448)  FAILED, KNOWN, expected (46.4555740686, 6.1033162697, 2313.94497)\n    test 591 La Givrine:  0.00148 m\n    test 592 Monte Generoso: (45.92930092608269, 9.02121992500755, 1687.1468504651998)  FAILED, KNOWN, expected (45.9311184445, 9.0216020471, 3855.4332)\n    test 593 Monte Generoso:  0.00182 m\n\n    test 594 ChLVe: ...\n    test 595 name: Test\n    test 596 ChLV_: ChLVe\n\n    test 597 forward1: (-72.031251, -147.344948, -49.554242, 46.95108, 7.438637, 0.0, ChLVe(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n    test 598 Y, X, h_: (-72.031251437589, -147.3449483831346, -49.554241824400016)\n    test 599 EN2_LV95: (2599927.968749, 1199852.655052)\n    test 600 yx2_LV03: (599927.968749, 199852.655052)\n    test 601 reverse1: (-72.031251, -147.344948, -49.554242, 46.95108, 7.438637, 0.000002, ChLVe(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n\n    test 602 reverse2: (100000.0, 0.0, 600.0, 46.944869, 8.753274, 648.29, ChLVe(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n    test 603 forward2: (100000.000001, 0.0, 600.012265, 46.944869, 8.753274, 648.29, ChLVe(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n    test 604 Y, X, h_: (100000.00000057962, 1.8112534442566837e-07, 600.0122653531955)\n    test 605 EN2_LV95: (2700000.000001, 1200000.0)\n    test 606 yx2_LV03: (700000.000001, 200000.0)\n\n    test 607 forward3: (99914.740455, -100135.079382, 600.049476, 46.044131, 8.730497, 650.6, ChLVe(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n    test 608 Y, X, h_: (99914.74045471674, -100135.07938181334, 600.0494759100001)\n    test 609 EN2_LV95: (2699914.740455, 1099864.920618)\n    test 610 yx2_LV03: (699914.740455, 99864.920618)\n    test 611 reverse3: (99914.740455, -100135.079382, 600.049476, 46.044131, 8.730497, 650.607608, ChLVe(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n\n    test 612 forward4: (79520.050001, 12273.439993, -48.257243, 47.058043, 8.48642, 0.0, ChLVe(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n    test 613 Y, X, h_: (79520.05000103211, 12273.439993103837, -48.25724328779257)\n    test 614 EN2_LV95: (2679520.050001, 1212273.439993)\n    test 615 yx2_LV03: (679520.050001, 212273.439993)\n    test 616 reverse4: (79520.050001, 12273.439993, -48.257243, 47.058043, 8.48642, 0.012933, ChLVe(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n\n    test 617 REFRAME1: (8.617004216786864, 46.65457267826783, 2365.31877736998)  FAILED, KNOWN, expected (8.61588452888461, 46.6532932166132, 2367.70367439557)\n    test 618 REFRAME1:  0.00128 m\n    test 619 REFRAME2: (10.206045201491072, 46.777660119243905, 1542.5231657804)  FAILED, KNOWN, expected (10.2046874099038, 46.7763864160066, 1546.62256775331)\n    test 620 REFRAME2:  0.00136 m\n    test 621 REFRAME3: (7.231508661195409, 47.3955074884183, 939.5622657947999)  FAILED, KNOWN, expected (7.23058814336896, 47.3941353658685, 940.206020880491)\n    test 622 REFRAME3:  0.00137 m\n    test 623 REFRAME4: (9.844818386934287, 46.814198001739975, 1642.70478811448)  FAILED, KNOWN, expected (9.84351348200287, 46.8129146868336, 1645.59174753912)\n    test 624 REFRAME4:  0.0013 m\n    test 625 REFRAME5: (6.568709824649145, 46.5227385206423, 462.1027394584)  FAILED, KNOWN, expected (6.56789363190021, 46.5214647527993, 460.491580192)\n    test 626 REFRAME5:  0.00127 m\n    test 627 REFRAME6: (8.731627351611777, 46.04533300622348, 650.554)  FAILED, KNOWN, expected (8.73049738375132, 46.0441209510033, 650.012275829911)\n    test 628 REFRAME6:  0.00121 m\n\n    test 629 Bollinger.lat: 46°11′12.03969″N\n    test 630 Bollinger.lon: 009°07′57.29664″E\n    test 631 Bollinger.gamma: 1.3747154949761575\n\n    test 632 Zermatt: (46.016524980589146, 7.745700583699864, 1739.1724096628)  FAILED, KNOWN, expected (46.015314107, 7.74720273, 1742.449)\n    test 633 Zermatt:  0.0015 m\n    test 634 Zimmerwald: (46.878408134660475, 7.46622597045386, 947.6256267527999)  FAILED, KNOWN, expected (46.878427446, 7.466218797, 953.0973)\n    test 635 Zimmerwald:  1.93e-05 m\n    test 636 Chrischona: (47.56844071309313, 7.669595854297879, 503.84493534800004)  FAILED, KNOWN, expected (47.568308647, 7.6695485844, 897.406)\n    test 637 Chrischona:  0.000132 m\n    test 638 Pfaender: (47.51669640784962, 9.785678729594727, 1088.46794437916)  FAILED, KNOWN, expected (47.5163201698, 9.7843787372, 3868.8599)\n    test 639 Pfaender:  0.0013 m\n    test 640 La Givrine: (46.45534732351903, 6.102781792813614, 1259.50889260448)  FAILED, KNOWN, expected (46.4555740686, 6.1033162697, 2313.94497)\n    test 641 La Givrine:  0.000534 m\n    test 642 Monte Generoso: (45.93048753878003, 9.022387820586593, 1687.1468504651998)  FAILED, KNOWN, expected (45.9311184445, 9.0216020471, 3855.4332)\n    test 643 Monte Generoso:  0.000786 m\n\n    102 of 643 testLtp.py tests (15.9%) FAILED, incl. 90 KNOWN plus 12 DeprecationWarnings (pygeodesy 26.3.26 PyPy 7.3.17 Python 3.10.14 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 229.210 ms\nrunning /opt/local/bin/p....y3.10 -W default ~/PyGeodesy/test/testLtpTuples.py\n# lazily imported pygeodesy.basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.DeprecationWarnings from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isint from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isLazy from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.issubclassof from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.iterNumpy2over from .iters by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.LazyImportError from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.karney by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.NN from .interns by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.normDMS from .dms by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.pairs from .streprs by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.printf from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.property_RO from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.typename from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.Aer from .ltpTuples by testLtpTuples.py line 11\n# lazily imported pygeodesy.Enu from .ltpTuples by testLtpTuples.py line 11\n# lazily imported pygeodesy.fstr from .streprs by testLtpTuples.py line 11\n# lazily imported pygeodesy.Local9Tuple from .ltpTuples by testLtpTuples.py line 11\n# lazily imported pygeodesy.Los from .ltpTuples by testLtpTuples.py line 11\n# lazily imported pygeodesy.Ltp from .ltp by testLtpTuples.py line 11\n# lazily imported pygeodesy.Ned from .ltpTuples by testLtpTuples.py line 11\n# lazily imported pygeodesy.XyzLocal from .ltpTuples by testLtpTuples.py line 11\n\n    testing testLtpTuples.py 23.11.21 isLazy=3\n# imported pygeodesy.ltp into ltpTuples.py line 1585\n\n    test 1 Aer.toRepr: [A:60.0°, E:40.0°, R:1000.0]\n    test 2 Aer.toStr: [60.0, 40.0, 1000.0]\n    test 3 Aer.xyzLocal.toAer: [60.0, 40.0, 1000.0]\n    test 4 Aer.xyzLocal.toAer: [60.0, 40.0, 1000.0]\n    test 5 Aer.xyzLocal.toEnu: [663.41, 383.02, 642.79]\n    test 6 Enu.xyzLocal.toAer: [60.0, 40.0, 1000.0]\n    test 7 Aer.xyzLocal.toNed: [383.02, 663.41, -642.79]\n    test 8 Ned.xyzLocal.toAer: [60.0, 40.0, 1000.0]\n    test 9 Aer.xyzLocal.toXyz: [663.41, 383.02, 642.79]\n    test 10 Xyz.xyzLocal.toAer: [60.0, 40.0, 1000.0]\n    test 11 Aer.toCartesian: [4397663.96, 599165.33, 4568492.25]\n# imported pygeodesy.ltp into ecefLocals.py line 63\n    test 12 Cartesian.toLocal Aer: [60.0, 40.0, 1000.0]\n    test 13 Aer.toLatLon: 46°01′13.6″N, 007°45′30.83″E, +2315.83m\n    test 14 LatLon.toLocal Aer: [60.0, 40.0, 1000.0]\n    test 15 Aer.azimuth: 60.0\n    test 16 Aer.elevation: 40.0\n    test 17 Aer.slantrange: 1000.0\n    test 18 Aer.groundrange: 766.044\n    test 19 Aer.east: 663.414\n    test 20 Aer.north: 383.022\n    test 21 Aer.up: 642.788\n    test 22 Aer.down: -642.788\n    test 23 Aer.x: 663.414\n    test 24 Aer.y: 383.022\n    test 25 Aer.z: 642.788\n    test 26 Aer.xyz: 663.414, 383.022, 642.788\n\n    test 27 Los: [A:45.0°, E:-45.0°, R:1.0]\n    test 28 Los: [E:0.5, N:0.5, U:-0.707]\n    test 29 Los: [U:-0.707, V:0.5, W:0.5]\n    test 30 Los: [E:0.5, N:0.5, U:-0.707]\n\n    test 31 Enu.toRepr: [E:100.0, N:200.0, U:1000.0]\n    test 32 Enu.toStr: [100.0, 200.0, 1000.0]\n    test 33 Enu.xyzLocal.toAer: [26.57, 77.4, 1024.7]\n    test 34 Aer.xyzLocal.toEnu: [100.0, 200.0, 1000.0]\n    test 35 Enu.xyzLocal.toEnu: [100.0, 200.0, 1000.0]\n    test 36 Enu.xyzLocal.toEnu: [100.0, 200.0, 1000.0]\n    test 37 Enu.xyzLocal.toNed: [200.0, 100.0, -1000.0]\n    test 38 Ned.xyzLocal.toEnu: [100.0, 200.0, 1000.0]\n    test 39 Enu.xyzLocal.toXyz: [100.0, 200.0, 1000.0]\n    test 40 Xyz.xyzLocal.toEnu: [100.0, 200.0, 1000.0]\n    test 41 Enu.toCartesian: [4398116.23, 598658.27, 4568622.18]\n    test 42 Cartesian.toLocal Enu: [100.0, 200.0, 1000.0]\n    test 43 Enu.toLatLon: 46°01′07.67″N, 007°45′04.65″E, +2673.00m\n    test 44 LatLon.toLocal Enu: [100.0, 200.0, 1000.0]\n    test 45 Enu.azimuth: 26.565\n    test 46 Enu.elevation: 77.396\n    test 47 Enu.slantrange: 1024.695\n    test 48 Enu.groundrange: 223.607\n    test 49 Enu.east: 100.0\n    test 50 Enu.north: 200.0\n    test 51 Enu.up: 1000.0\n    test 52 Enu.down: -1000.0\n    test 53 Enu.x: 100.0\n    test 54 Enu.y: 200.0\n    test 55 Enu.z: 1000.0\n    test 56 Enu.xyz: 100.0, 200.0, 1000.0\n\n    test 57 Los: [A:45.0°, E:-45.0°, R:1.0]\n    test 58 Los: [E:0.5, N:0.5, U:-0.707]\n    test 59 Los: [U:-0.707, V:0.5, W:0.5]\n    test 60 Los: [E:0.5, N:0.5, U:-0.707]\n\n    test 61 Ned.toRepr: [N:200.0, E:100.0, D:1000.0]\n    test 62 Ned.toStr: [200.0, 100.0, 1000.0]\n    test 63 Ned.xyzLocal.toAer: [26.57, -77.4, 1024.7]\n    test 64 Aer.xyzLocal.toNed: [200.0, 100.0, 1000.0]\n    test 65 Ned.xyzLocal.toEnu: [100.0, 200.0, -1000.0]\n    test 66 Enu.xyzLocal.toNed: [200.0, 100.0, 1000.0]\n    test 67 Ned.xyzLocal.toNed: [200.0, 100.0, 1000.0]\n    test 68 Ned.xyzLocal.toNed: [200.0, 100.0, 1000.0]\n    test 69 Ned.xyzLocal.toXyz: [100.0, 200.0, -1000.0]\n    test 70 Xyz.xyzLocal.toNed: [200.0, 100.0, 1000.0]\n    test 71 Ned.toCartesian: [4396740.02, 598470.98, 4567183.09]\n    test 72 Cartesian.toLocal Ned: [200.0, 100.0, 1000.0]\n    test 73 Ned.toLatLon: 46°01′07.68″N, 007°45′04.65″E, +673.00m\n    test 74 LatLon.toLocal Ned: [200.0, 100.0, 1000.0]\n    test 75 Ned.azimuth: 26.565\n    test 76 Ned.elevation: -77.396\n    test 77 Ned.slantrange: 1024.695\n    test 78 Ned.groundrange: 223.607\n    test 79 Ned.east: 100.0\n    test 80 Ned.north: 200.0\n    test 81 Ned.up: -1000.0\n    test 82 Ned.down: 1000.0\n    test 83 Ned.x: 100.0\n    test 84 Ned.y: 200.0\n    test 85 Ned.z: -1000.0\n    test 86 Ned.xyz: 100.0, 200.0, -1000.0\n\n    test 87 Los: [A:45.0°, E:-45.0°, R:1.0]\n    test 88 Los: [E:0.5, N:0.5, U:-0.707]\n    test 89 Los: [U:-0.707, V:0.5, W:0.5]\n    test 90 Los: [E:0.5, N:0.5, U:-0.707]\n\n    test 91 Xyz.toRepr: [X:10.0, Y:20.0, Z:100.0]\n    test 92 Xyz.toStr: [10.0, 20.0, 100.0]\n    test 93 Xyz.xyzLocal.toAer: [26.57, 77.4, 102.47]\n    test 94 Aer.xyzLocal.toXyz: [10.0, 20.0, 100.0]\n    test 95 Xyz.xyzLocal.toEnu: [10.0, 20.0, 100.0]\n    test 96 Enu.xyzLocal.toXyz: [10.0, 20.0, 100.0]\n    test 97 Xyz.xyzLocal.toNed: [20.0, 10.0, -100.0]\n    test 98 Ned.xyzLocal.toXyz: [10.0, 20.0, 100.0]\n    test 99 Xyz.xyzLocal.toXyz: [10.0, 20.0, 100.0]\n    test 100 Xyz.xyzLocal.toXyz: [10.0, 20.0, 100.0]\n    test 101 Xyz.toCartesian: [4397637.41, 598502.28, 4567849.59]\n    test 102 Cartesian.toLocal Xyz: [10.0, 20.0, 100.0]\n    test 103 Xyz.toLatLon: 46°01′01.85″N, 007°45′00.46″E, +1773.00m\n    test 104 LatLon.toLocal Xyz: [10.0, 20.0, 100.0]\n    test 105 Xyz.azimuth: 26.565\n    test 106 Xyz.elevation: 77.396\n    test 107 Xyz.slantrange: 102.47\n    test 108 Xyz.groundrange: 22.361\n    test 109 Xyz.east: 10.0\n    test 110 Xyz.north: 20.0\n    test 111 Xyz.up: 100.0\n    test 112 Xyz.down: -100.0\n    test 113 Xyz.x: 10.0\n    test 114 Xyz.y: 20.0\n    test 115 Xyz.z: 100.0\n    test 116 Xyz.xyz: 10.0, 20.0, 100.0\n\n    test 117 Los: [A:45.0°, E:-45.0°, R:1.0]\n    test 118 Los: [E:0.5, N:0.5, U:-0.707]\n    test 119 Los: [U:-0.707, V:0.5, W:0.5]\n    test 120 Los: [E:0.5, N:0.5, U:-0.707]\n\n    test 121 Local9Tuple.toRepr: Local9Tuple(x=10.0, y=20.0, z=100.0, lat=46.02, lon=7.75, height=1773.0, ltp=Ltp(lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transfo\n    test 122 Local9Tuple.toStr: (10.0, 20.0, 100.0, 46.02, 7.75, 1773.0, Ltp(lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'\n    test 123 Local9Tuple.xyzLocal.toAer: [26.57, 77.4, 102.47]\n    test 124 Aer.xyzLocal.toLocal9Tuple: (10.0, 20.0, 100.0, 46.02, 7.75, 1773.0, Ltp(lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'\n    test 125 Local9Tuple.xyzLocal.toEnu: [10.0, 20.0, 100.0]\n    test 126 Enu.xyzLocal.toLocal9Tuple: (10.0, 20.0, 100.0, 46.02, 7.75, 1773.0, Ltp(lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'\n    test 127 Local9Tuple.xyzLocal.toNed: [20.0, 10.0, -100.0]\n    test 128 Ned.xyzLocal.toLocal9Tuple: (10.0, 20.0, 100.0, 46.02, 7.75, 1773.0, Ltp(lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'\n    test 129 Local9Tuple.xyzLocal.toXyz: [10.0, 20.0, 100.0]\n    test 130 Xyz.xyzLocal.toLocal9Tuple: (10.0, 20.0, 100.0, 46.02, 7.75, 1773.0, Ltp(lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'\n    test 131 Local9Tuple.toCartesian: [4397637.41, 598502.28, 4567849.59]\n    test 132 Local9Tuple.toLatLon: 46°01′01.85″N, 007°45′00.46″E, +1773.00m\n    test 133 Local9Tuple.azimuth: 26.565\n    test 134 Local9Tuple.elevation: 77.396\n    test 135 Local9Tuple.slantrange: 102.47\n    test 136 Local9Tuple.groundrange: 22.361\n    test 137 Local9Tuple.east: 10.0\n    test 138 Local9Tuple.north: 20.0\n    test 139 Local9Tuple.up: 100.0\n    test 140 Local9Tuple.down: -100.0\n    test 141 Local9Tuple.x: 10.0\n    test 142 Local9Tuple.y: 20.0\n    test 143 Local9Tuple.z: 100.0\n    test 144 Local9Tuple.xyz: 10.0, 20.0, 100.0\n    test 145 Local9Tuple.lat: 46.02\n    test 146 Local9Tuple.lon: 7.75\n    test 147 Local9Tuple.latlon: 46.02, 7.75\n    test 148 Local9Tuple.latlonheight: 46.02, 7.75, 1773.0\n    test 149 Local9Tuple.phi: 0.803\n    test 150 Local9Tuple.lam: 0.135\n    test 151 Local9Tuple.philam: 0.803, 0.135\n    test 152 Local9Tuple.philamheight: 0.803, 0.135, 1773.0\n\n    test 153 Los: [A:45.0°, E:-45.0°, R:1.0]\n    test 154 Los: [E:0.5, N:0.5, U:-0.707]\n    test 155 Los: [U:-0.707, V:0.5, W:0.5]\n    test 156 Los: [E:0.5, N:0.5, U:-0.707]\n\n    all 156 testLtpTuples.py tests passed (pygeodesy 26.3.26 PyPy 7.3.17 Python 3.10.14 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 31.643 ms\nrunning /opt/local/bin/p....y3.10 -W default ~/PyGeodesy/test/testMgrs.py\n./test/testMgrs.py:88: DeprecationWarning: property_RO L{en100k<pygeodesy.mgrs.Mgrs.en100k>} has been DEPRECATED, use property C{EN}.\n  self.test(a, getattr(p, a), x)\n./test/testMgrs.py:88: DeprecationWarning: property_RO L{digraph<pygeodesy.mgrs.Mgrs.digraph>} has been DEPRECATED, use property C{EN}.\n  self.test(a, getattr(p, a), x)\n./test/testMgrs.py:94: DeprecationWarning: property_RO L{digraph<pygeodesy.mgrs.Mgrs6Tuple.digraph>} has been DEPRECATED, use attribute C{EN}.\n  self.test('digraph', m.digraph, m.EN, nt=1)  # DEPRECATED\n./test/testMgrs.py:117: DeprecationWarning: property_RO L{digraph<pygeodesy.mgrs.Mgrs4Tuple.digraph>} has been DEPRECATED, use attribute C{EN}.\n  self.test('digraph', t.digraph, t.EN)  # DEPRECATED\n# lazily imported pygeodesy.basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.DeprecationWarnings from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isint from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isLazy from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.issubclassof from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.iterNumpy2over from .iters by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.LazyImportError from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.karney by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.NN from .interns by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.normDMS from .dms by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.pairs from .streprs by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.printf from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.property_RO from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.typename from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.mgrs by testMgrs.py line 11\n# lazily imported pygeodesy.Mgrs from .mgrs by testMgrs.py line 11\n# lazily imported pygeodesy.parseMGRS from .mgrs by testMgrs.py line 11\n# lazily imported pygeodesy.ellipsoidalVincenty by testMgrs.py line 204\n\n    testing testMgrs.py 24.10.13 (module pygeodesy.mgrs 25.05.12) isLazy=3\n    test 1 Mgrs1: 42S XD 09705 38646\n    test 2 Mgrs1: [Z:42S, G:XD, E:09705, N:38646]\n    test 3 Mgrs2: 42S XD 19705 08646\n    test 4 Mgrs2: [Z:42S, G:XD, E:19705, N:08646]\n    test 5 Mgrs3: 42S XD 19000 38000\n    test 6 Mgrs3: [Z:42S, G:XD, E:19000, N:38000]\n    test 7 Mgrs4: 31U DQ 48251 11932\n    test 8 Mgrs4: [Z:31U, G:DQ, E:48251, N:11932]\n    test 9 Mgrs5: 31U DQ 48251 11932\n    test 10 Mgrs5: [Z:31U, G:DQ, E:48251, N:11932]\n    test 11 Mgrs6: 31U DQ 48251 11932\n    test 12 Mgrs6: [Z:31U, G:DQ, E:48251, N:11932]\n    test 13 Mgrs7: 31U DQ 48251 11932\n    test 14 Mgrs7: [Z:31U, G:DQ, E:48251, N:11932]\n    test 15 Mgrs8: 31 N 431000 4582000\n    test 16 Mgrs8: (41.38657, 2.174726, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), -0.54564, 0.999659)\n    test 17 Mgrs8: 31 N 431500 4582500\n    test 18 Mgrs8: 31T DF 31000 82000\n    test 19 Mgrs8: 41.391116°N, 002.180649°E\n    test 20 Mgrs8: 31T DF 31000 82000\n    test 21 Mgrs9: 31U DQ 48251 11932\n    test 22 Mgrs9: [Z:31U, G:DQ, E:48251, N:11932]\n    test 23 toUtm1: 31 N 448251 5411932\n    test 24 toUtm1: [Z:31U, H:N, E:448251, N:5411932]\n    test 25 toMgrs1: 31U DQ 48251 11932\n    test 26 toMgrs1: [Z:31U, G:DQ, E:48251, N:11932]\n\n    test 27 toUtm(None): (31, 'N', 448251.0, 5411932.0, 'U')\n    test 28 easting: 48251.0\n    test 29 northing: 11932.0\n    test 30 EN: DQ\n    test 31 en100k: DQ\n    test 32 digraph: DQ\n    test 33 zone: 31\n    test 34 band: U\n    test 35 bandLatitude: 48\n    test 36 eastingnorthing: (48251.0, 11932.0)\n    test 37 resolution: 1.0\n# lazily imported pygeodesy.utmups by mgrs.py line 278\n    test 38 tilesize: 100000.0\n\n    test 39 toMgrs: 31U DQ 48251 11932\n    test 40 toMgrs(None): Mgrs6Tuple\n    test 41 digraph: DQ\n\n    test 42 (60.0°N, 001.0°E).toUtmUps.toMgrs: 31V CG 88455 53097\n    test 43 (60.0°N, 003.0°E).toUtmUps.toMgrs: 32V JM 65640 66593\n    test 44 (60.0°N, 009.0°E).toUtmUps.toMgrs: 32V NM 00000 51411\n    test 45 (76.0°N, 001.0°E).toUtmUps.toMgrs: 31X DE 45999 36099\n    test 46 (76.0°N, 013.0°E).toUtmUps.toMgrs: 33X VE 45999 36099\n    test 47 (76.0°N, 025.0°E).toUtmUps.toMgrs: 35X ME 45999 36099\n    test 48 (76.0°N, 037.0°E).toUtmUps.toMgrs: 37X DE 45999 36099\n# imported pygeodesy.basics into errors.py line 443\n    test 49 (84.0°N, 042.0°E).toUtmUps.toMgrs: Z GC 46127 04524\n    test 50 (90.0°S, 000.0°E).toUtmUps.toMgrs: B AN 00000 00000\n\n    test 51 Mgrs: BAN00\n    test 52 Mgrs4Tuple: ('B', 'AN', 0.0, 0.0)\n    test 53 Mgrs4Tuple: SouthPole(zone='B', EN='AN', easting=0.0, northing=0.0)\n    test 54 digraph: AN\n    test 55 toMgrs.toLatLon: SouthPole(lat=-90.0, lon=0.0, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), gamma=-0.0, scale=0.994)\n\n    test 56 Ups: 00 S 2000000 2000000\n    test 57 Ups: 00 S 2000500 2000500\n    test 58 Mgrs: 0.1\n\n    test 59 Mgrs: Y UB 17770 03800\n    test 60 Mgrs: [Z:Y, G:UB, E:17770, N:03800]\n    test 61 toUtmUps: 00 N 1617775 1403805\n    test 62 toUtmUps: [Z:00Y, H:N, E:1617775, N:1403805]\n    test 63 toLatLon: (83.627518, -32.664231, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), -0.570098, 0.99708)\n    test 64 toLatLon: LatLonDatum5Tuple(lat=83.627518, lon=-32.664231, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), gamma=-0.570098, scale=0.99708)\n    test 65 toMgrs!: 25X EN 04160 86523\n\n    test 66 Mgrs: B FS 77514 99182\n    test 67 Mgrs: [Z:B, G:FS, E:77514, N:99182]\n    test 68 toUtmUps: 00 S 2377514 2499182\n    test 69 toUtmUps: [Z:00B, H:S, E:2377514, N:2499182]\n    test 70 toLatLon: (-84.367192, 37.098959, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), -0.647499, 0.996406)\n    test 71 toLatLon: LatLonDatum5Tuple(lat=-84.367192, lon=37.098959, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), gamma=-0.647499, scale=0.996406)\n    test 72 toMgrs: B FS 77514 99182\n\n    test 73 Mgrs: 45S XT 47000 91000\n    test 74 Mgrs: [Z:45S, G:XT, E:47000, N:91000]\n    test 75 toUtmUps: 45 N 647500 3791500\n    test 76 toUtmUps: [Z:45S, H:N, E:647500, N:3791500]\n    test 77 toLatLon: (34.254177, 88.601932, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), 0.901835, 0.999868)\n    test 78 toLatLon: LatLonDatum5Tuple(lat=34.254177, lon=88.601932, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), gamma=0.901835, scale=0.999868)\n    test 79 toMgrs: 45S XT 47499 91499\n\n    test 80 Mgrs: Y XK 35000 43000\n    test 81 Mgrs: [Z:Y, G:XK, E:35000, N:43000]\n    test 82 toUtmUps: 00 N 1735500 2243500\n    test 83 toUtmUps: [Z:00Y, H:N, E:1735500, N:2243500]\n    test 84 toLatLon: (86.762629, -132.632821, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), -2.314879, 0.994794)\n    test 85 toLatLon: LatLonDatum5Tuple(lat=86.762629, lon=-132.632821, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), gamma=-2.314879, scale=0.994794)\n    test 86 toMgrs: Y XK 35499 43500\n\n    4 of 86 testMgrs.py tests (4.7%) FAILED, incl. 4 DeprecationWarnings (pygeodesy 26.3.26 PyPy 7.3.17 Python 3.10.14 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 39.168 ms\nrunning /opt/local/bin/p....y3.10 -W default ~/PyGeodesy/test/testModules.py\n# lazily imported pygeodesy.basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.DeprecationWarnings from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isint from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isLazy from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.issubclassof from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.iterNumpy2over from .iters by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.LazyImportError from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.karney by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.NN from .interns by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.normDMS from .dms by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.pairs from .streprs by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.printf from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.property_RO from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.typename from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n\n    testing testModules.py 24.06.05 isLazy=3\n\n    2805 tests skipped (2805): pygeodesy\n\n    all testModules.py tests passed, 2805 skipped (pygeodesy 26.3.26 PyPy 7.3.17 Python 3.10.14 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 14.782 us\nrunning /opt/local/bin/p....y3.10 -W default ~/PyGeodesy/test/testNamed.py\n# lazily imported pygeodesy.basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.DeprecationWarnings from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isint from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isLazy from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.issubclassof from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.iterNumpy2over from .iters by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.LazyImportError from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.karney by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.NN from .interns by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.normDMS from .dms by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.pairs from .streprs by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.printf from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.property_RO from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.typename from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.angles by testNamed.py line 10\n# lazily imported pygeodesy.geohash by testNamed.py line 10\n# lazily imported pygeodesy.Datum from .datums by testNamed.py line 10\n# lazily imported pygeodesy.Datums from .datums by testNamed.py line 10\n# lazily imported pygeodesy.ltpTuples by testNamed.py line 10\n# lazily imported pygeodesy.nameof from .named by testNamed.py line 10\n# lazily imported pygeodesy.ub2str from .basics by testNamed.py line 10\n\n    testing testNamed.py 25.12.06 isLazy=3\n\n    testing _Named() (pygeodesy.named, 26.01.14)\n    test 1 _Named: _Named\n    test 2 _Named: True\n    test 3 _Named: ''\n    test 4 Test: Test\n    test 5 _Named 'Test': _Named 'Test'\n    test 6 named._Named 'Test': named._Named 'Test'\n    test 7 pygeodesy.named._Named 'Test': pygeodesy.named._Named 'Test'\n    test 8 Test: _Named.name = 'X' (was 'Test'): use _Named.rename('X')\n    test 9 Test: _Named 'Test'\n    test 10 _Named 'Test': Test\n    test 11 _Named 'Test': Test\n    test 12 _Named 'Test': _Named 'Test'\n    test 13 _Named 'Test': <_Named 'Test' at 0x7a8310448>  FAILED, KNOWN, expected _Named 'Test'\n    test 14 _Named 'Test': ''\n\n    testing _NamedBase() (pygeodesy.named, 26.01.14)\n    test 15 _NamedBase: _NamedBase\n    test 16 _NamedBase: True\n    test 17 _NamedBase: ''\n    test 18 Test: Test\n    test 19 _NamedBase 'Test': _NamedBase 'Test'\n    test 20 named._NamedBase 'Test': named._NamedBase 'Test'\n    test 21 pygeodesy.named._NamedBase 'Test': pygeodesy.named._NamedBase 'Test'\n    test 22 Test: _NamedBase.name = 'X' (was 'Test'): use _NamedBase.rename('X')\n    test 23 Test: named._NamedBase.toStr(), MRO(named._Named): not overloaded\n    test 24 _NamedBase 'Test': Test\n    test 25 _NamedBase 'Test': Test\n    test 26 _NamedBase 'Test': named._NamedBase.toStr(), MRO(named._Named): not overloaded\n    test 27 _NamedBase 'Test': named._NamedBase.toStr(), MRO(named._Named): not overloaded\n    test 28 _NamedBase 'Test': ''\n\n    testing _NamedDict() (pygeodesy.named, 26.01.14)\n    test 29 _NamedDict: _NamedDict\n    test 30 _NamedDict: True\n    test 31 _NamedDict: ''\n    test 32 Test: Test\n    test 33 _NamedDict 'Test': _NamedDict 'Test'\n    test 34 named._NamedDict 'Test': named._NamedDict 'Test'\n    test 35 pygeodesy.named._NamedDict 'Test': pygeodesy.named._NamedDict 'Test'\n    test 36 Test: _NamedDict.name = 'X' (was 'Test'): use _NamedDict.rename('X')\n    test 37 Test: {}\n    test 38 _NamedDict 'Test': Test\n    test 39 _NamedDict 'Test': Test\n    test 40 _NamedDict 'Test': {}\n    test 41 _NamedDict 'Test': Test()  FAILED, KNOWN, expected {}\n    test 42 _NamedDict: ''\n\n    testing _NamedEnum(<class 'pygeodesy.datums.Datum'>,) (pygeodesy.named, 26.01.14)\n    test 43 Datums: _NamedEnum\n    test 44 Datums: True\n    test 45 Datums: 'Datums'  FAILED, KNOWN, expected ''\n    test 46 Test: Test\n    test 47 _NamedEnum 'Test': _NamedEnum 'Test'\n    test 48 named._NamedEnum 'Test': named._NamedEnum 'Test'\n    test 49 pygeodesy.named._NamedEnum 'Test': pygeodesy.named._NamedEnum 'Test'\n    test 50 Test: _NamedEnum.name = 'X' (was 'Test'): use _NamedEnum.rename('X')\n    test 51 Test: Test.\n    test 52 _NamedEnum 'Test': Test\n    test 53 _NamedEnum 'Test': Test\n    test 54 _NamedEnum 'Test': Test.\n    test 55 _NamedEnum 'Test':   FAILED, KNOWN, expected Test.\n    test 56 _NamedEnum: ''\n\n    testing _NamedEnumItem() (pygeodesy.named, 26.01.14)\n    test 57 _NamedEnumItem: _NamedEnumItem\n    test 58 _NamedEnumItem: True\n    test 59 _NamedEnumItem: ''\n    test 60 Test: Test\n    test 61 _NamedEnumItem 'Test': _NamedEnumItem 'Test'\n    test 62 named._NamedEnumItem 'Test': named._NamedEnumItem 'Test'\n    test 63 pygeodesy.named._NamedEnumItem 'Test': pygeodesy.named._NamedEnumItem 'Test'\n    test 64 _NamedEnumItem 'Test': Test\n    test 65 _NamedEnumItem 'Test': Test\n    test 66 _NamedEnumItem 'Test': named._NamedEnumItem.toStr(), MRO(named._NamedBase, named._Named): not overloaded\n    test 67 _NamedEnumItem 'Test': named._NamedEnumItem.toStr(), MRO(named._NamedBase, named._Named): not overloaded\n    test 68 _NamedEnumItem 'Test': ''\n\n    testing LatLon2Tuple(0, 0) (pygeodesy.named, 26.01.14)\n    test 69 LatLon2Tuple: LatLon2Tuple\n    test 70 LatLon2Tuple: True\n    test 71 LatLon2Tuple: ''\n    test 72 Test: Test\n    test 73 LatLon2Tuple 'Test': LatLon2Tuple 'Test'\n    test 74 namedTuples.LatLon2Tuple 'Test': namedTuples.LatLon2Tuple 'Test'\n    test 75 pygeodesy.namedTuples.LatLon2Tuple 'Test': pygeodesy.namedTuples.LatLon2Tuple 'Test'\n    test 76 Test: LatLon2Tuple.name = 'X' (was 'Test'): use LatLon2Tuple.rename('X')\n    test 77 Test: (0, 0)\n    test 78 LatLon2Tuple 'Test': Test\n    test 79 LatLon2Tuple 'Test': Test\n    test 80 LatLon2Tuple 'Test': (0, 0)\n    test 81 LatLon2Tuple 'Test': Test(lat=0, lon=0)  FAILED, KNOWN, expected (0, 0)\n    test 82 LatLon2Tuple 'Test': ''\n\n    testing NamedDicts (pygeodesy.named, 26.01.14)\n# lazily imported pygeodesy.albers by bases.py line 199\n# lazily imported pygeodesy.azimuthal by bases.py line 199\n# lazily imported pygeodesy.booleans by bases.py line 199\n# lazily imported pygeodesy.clipy by bases.py line 199\n# lazily imported pygeodesy.css by bases.py line 199\n# lazily imported pygeodesy.ecef by bases.py line 199\n# lazily imported pygeodesy.elevations by bases.py line 199\n# lazily imported pygeodesy.ellipses by bases.py line 199\n# lazily imported pygeodesy.ellipsoidalBaseDI by bases.py line 199\n# lazily imported pygeodesy.ellipsoidalExact by bases.py line 199\n# lazily imported pygeodesy.ellipsoidalGeodSolve by bases.py line 199\n# lazily imported pygeodesy.ellipsoidalKarney by bases.py line 199\n# lazily imported pygeodesy.ellipsoidalNvector by bases.py line 199\n# lazily imported pygeodesy.ellipsoidalVincenty by bases.py line 199\n# lazily imported pygeodesy.elliptic by bases.py line 199\n# lazily imported pygeodesy.epsg by bases.py line 199\n# lazily imported pygeodesy.etm by bases.py line 199\n# lazily imported pygeodesy.frechet by bases.py line 199\n# lazily imported pygeodesy.fstats by bases.py line 199\n# lazily imported pygeodesy.gars by bases.py line 199\n# lazily imported pygeodesy.geod3solve by bases.py line 199\n# lazily imported pygeodesy.geodesici by bases.py line 199\n# lazily imported pygeodesy.geodesicw by bases.py line 199\n# lazily imported pygeodesy.geodsolve by bases.py line 199\n    test 83 Neighbors8Dict: Neighbors8Dict\n    test 84 Neighbors8Dict: 8-Dict C{(N, NE, E, SE, S, SW, W, NW)}\n    test 85 Neighbors8Dict: 8\n# lazily imported pygeodesy.geoids by bases.py line 199\n# lazily imported pygeodesy.hausdorff by bases.py line 199\n# lazily imported pygeodesy.ktm by bases.py line 199\n# lazily imported pygeodesy.lcc by bases.py line 199\n# lazily imported pygeodesy.ltp by bases.py line 199\n# lazily imported pygeodesy.mgrs by bases.py line 199\n# lazily imported pygeodesy.osgr by bases.py line 199\n# lazily imported pygeodesy.resections by bases.py line 199\n# lazily imported pygeodesy.simplify by bases.py line 199\n# lazily imported pygeodesy.sphericalBase by bases.py line 199\n# lazily imported pygeodesy.sphericalNvector by bases.py line 199\n# lazily imported pygeodesy.sphericalTrigonometry by bases.py line 199\n# lazily imported pygeodesy.trf by bases.py line 199\n# lazily imported pygeodesy.utmups by bases.py line 199\n# lazily imported pygeodesy.vector2d by bases.py line 199\n# lazily imported pygeodesy.webmercator by bases.py line 199\n# lazily imported pygeodesy.wgrs by bases.py line 199\n# lazily imported pygeodesy.auxilats by bases.py line 199\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by <frozen importlib._bootstrap> line 1075\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by <frozen importlib._bootstrap> line 1075\n# lazily imported pygeodesy.Conformal2Tuple from .triaxials.triaxial5 by <frozen importlib._bootstrap> line 1075\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by classes.py line 21\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by classes.py line 21\n# lazily imported pygeodesy.Conformal2Tuple from .triaxials.triaxial5 by classes.py line 21\n# lazily imported pygeodesy.deprecated by bases.py line 199\n# lazily imported pygeodesy.geodesicx by bases.py line 199\n\n    testing NamedTuples (pygeodesy.namedTuples, 26.03.12)\n    test 86 Albers7Tuple: Albers7Tuple\n    test 87 Albers7Tuple: 7-Tuple C{(x, y, lat, lon, gamma, scale, datum)}\n    test 88 Albers7Tuple: 7\n    test 89 Azimuthal7Tuple: Azimuthal7Tuple\n    test 90 Azimuthal7Tuple: 7-Tuple C{(x, y, lat, lon, azimuth, scale, datum)}\n    test 91 Azimuthal7Tuple: 7\n    test 92 RadiusThetaPhi3Tuple: RadiusThetaPhi3Tuple\n    test 93 RadiusThetaPhi3Tuple: 3-Tuple C{(r, theta, phi)}\n    test 94 RadiusThetaPhi3Tuple: 3\n    test 95 ClipCS4Tuple: ClipCS4Tuple\n    test 96 ClipCS4Tuple: 4-Tuple C{(start, end, i, j)}\n    test 97 ClipCS4Tuple: 4\n    test 98 ClipFHP4Tuple: ClipFHP4Tuple\n    test 99 ClipFHP4Tuple: 4-Tuple C{(lat, lon, height, clipid)}\n    test 100 ClipFHP4Tuple: 4\n    test 101 ClipGH4Tuple: ClipGH4Tuple\n    test 102 ClipGH4Tuple: 4-Tuple C{(lat, lon, height, clipid)}\n    test 103 ClipGH4Tuple: 4\n    test 104 ClipLB6Tuple: ClipLB6Tuple\n    test 105 ClipLB6Tuple: 6-Tuple C{(start, end, i, fi, fj, j)}\n    test 106 ClipLB6Tuple: 6\n    test 107 ClipSH3Tuple: ClipSH3Tuple\n    test 108 ClipSH3Tuple: 3-Tuple C{(start, end, original)}\n    test 109 ClipSH3Tuple: 3\n    test 110 EasNorAziRk4Tuple: EasNorAziRk4Tuple\n    test 111 EasNorAziRk4Tuple: 4-Tuple C{(easting, northing, azimuth, reciprocal)}\n    test 112 EasNorAziRk4Tuple: 4\n    test 113 EasNorAziRkEqu6Tuple: EasNorAziRkEqu6Tuple\n    test 114 EasNorAziRkEqu6Tuple: 6-Tuple C{(easting, northing, azimuth, reciprocal, equatorarc, equatorazimuth)}\n    test 115 EasNorAziRkEqu6Tuple: 6\n    test 116 LatLonAziRk4Tuple: LatLonAziRk4Tuple\n    test 117 LatLonAziRk4Tuple: 4-Tuple C{(lat, lon, azimuth, reciprocal)}\n    test 118 LatLonAziRk4Tuple: 4\n    test 119 Ecef9Tuple: Ecef9Tuple\n    test 120 Ecef9Tuple: 9-Tuple C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 121 Ecef9Tuple: 9\n    test 122 Elevation2Tuple: Elevation2Tuple\n    test 123 Elevation2Tuple: 2-Tuple C{(elevation, data_source)}\n    test 124 Elevation2Tuple: 2\n    test 125 GeoidHeight2Tuple: GeoidHeight2Tuple\n    test 126 GeoidHeight2Tuple: 2-Tuple C{(height, model_name)}\n    test 127 GeoidHeight2Tuple: 2\n    test 128 Curvature2Tuple: Curvature2Tuple\n    test 129 Curvature2Tuple: 2-Tuple C{(meridional, prime_vertical)}\n    test 130 Curvature2Tuple: 2\n    test 131 a_f2Tuple: a_f2Tuple\n    test 132 a_f2Tuple: 2-Tuple C{(a, f)}\n    test 133 a_f2Tuple: 2\n    test 134 Elliptic3Tuple: Elliptic3Tuple\n    test 135 Elliptic3Tuple: 3-Tuple C{(sn, cn, dn)}\n    test 136 Elliptic3Tuple: 3\n    test 137 Radical2Tuple: Radical2Tuple\n    test 138 Radical2Tuple: 2-Tuple C{(ratio, xline)}\n    test 139 Radical2Tuple: 2\n    test 140 Frechet6Tuple: Frechet6Tuple\n    test 141 Frechet6Tuple: 6-Tuple C{(fd, fi1, fi2, r, n, units)}\n    test 142 Frechet6Tuple: 6\n    test 143 DivMod2Tuple: DivMod2Tuple\n    test 144 DivMod2Tuple: 2-Tuple C{(div, mod)}\n    test 145 DivMod2Tuple: 2\n    test 146 Fsum2Tuple: Fsum2Tuple\n    test 147 Fsum2Tuple: 2-Tuple C{(fsum, residual)}\n    test 148 Fsum2Tuple: 2\n    test 149 Geod3Solve8Tuple: Geod3Solve8Tuple\n    test 150 Geod3Solve8Tuple: 8-Tuple C{(bet1, omg1, alp1, bet2, omg2, alp2, s12, a12)}\n    test 151 Geod3Solve8Tuple: 8\n    test 152 Intersect7Tuple: Intersect7Tuple\n    test 153 Intersect7Tuple: 7-Tuple C{(A, B, sAB, aAB, c, kA, kB)}\n    test 154 Intersect7Tuple: 7\n    test 155 Intersectool5Tuple: Intersectool5Tuple\n    test 156 Intersectool5Tuple: 5-Tuple C{(A, B, sAB, aAB, c)}\n    test 157 Intersectool5Tuple: 5\n    test 158 Intersector5Tuple: Intersector5Tuple\n    test 159 Intersector5Tuple: 5-Tuple C{(A, B, sAB, aAB, c)}\n    test 160 Intersector5Tuple: 5\n    test 161 Middle5Tuple: Middle5Tuple\n    test 162 Middle5Tuple: 5-Tuple C{(A, B, sMM, aMM, c)}\n    test 163 Middle5Tuple: 5\n    test 164 GeodSolve12Tuple: GeodSolve12Tuple\n    test 165 GeodSolve12Tuple: 12-Tuple C{(lat1, lon1, azi1, lat2, lon2, azi2, s12, a12, m12, M12, M21, S12)}\n    test 166 GeodSolve12Tuple: 12\n    test 167 Resolutions2Tuple: Resolutions2Tuple\n    test 168 Resolutions2Tuple: 2-Tuple C{(res1, res2)}\n    test 169 Resolutions2Tuple: 2\n    test 170 Sizes3Tuple: Sizes3Tuple\n    test 171 Sizes3Tuple: 3-Tuple C{(height, width, radius)}\n    test 172 Sizes3Tuple: 3\n    test 173 GeoidHeight5Tuple: GeoidHeight5Tuple\n    test 174 GeoidHeight5Tuple: 5-Tuple C{(lat, lon, egm84, egm96, egm2008)}\n    test 175 GeoidHeight5Tuple: 5\n    test 176 Hausdorff6Tuple: Hausdorff6Tuple\n    test 177 Hausdorff6Tuple: 6-Tuple C{(hd, i, j, mn, md, units)}\n    test 178 Hausdorff6Tuple: 6\n    test 179 Area3Tuple: Area3Tuple\n    test 180 Area3Tuple: 3-Tuple C{(number, perimeter, area)}\n    test 181 Area3Tuple: 3\n    test 182 Direct9Tuple: Direct9Tuple\n    test 183 Direct9Tuple: 9-Tuple C{(a12, lat2, lon2, azi2, s12, m12, M12, M21, S12)}\n    test 184 Direct9Tuple: 9\n    test 185 Inverse10Tuple: Inverse10Tuple\n    test 186 Inverse10Tuple: 10-Tuple C{(a12, s12, salp1, calp1, salp2, calp2, m12, M12, M21, S12)}\n    test 187 Inverse10Tuple: 10\n    test 188 Rhumb8Tuple: Rhumb8Tuple\n    test 189 Rhumb8Tuple: 8-Tuple C{(lat1, lon1, lat2, lon2, azi12, s12, S12, a12)}\n    test 190 Rhumb8Tuple: 8\n    test 191 Aer4Tuple: Aer4Tuple\n    test 192 Aer4Tuple: 4-Tuple C{(azimuth, elevation, slantrange, ltp)}\n    test 193 Aer4Tuple: 4\n    test 194 Attitude4Tuple: Attitude4Tuple\n    test 195 Attitude4Tuple: 4-Tuple C{(alt, tilt, yaw, roll)}\n    test 196 Attitude4Tuple: 4\n    test 197 ChLV9Tuple: ChLV9Tuple\n    test 198 ChLV9Tuple: 9-Tuple C{(Y, X, h_, lat, lon, height, ltp, ecef, M)}\n    test 199 ChLV9Tuple: 9\n    test 200 ChLVEN2Tuple: ChLVEN2Tuple\n    test 201 ChLVEN2Tuple: 2-Tuple C{(E_LV95, N_LV95)}\n    test 202 ChLVEN2Tuple: 2\n    test 203 ChLVYX2Tuple: ChLVYX2Tuple\n    test 204 ChLVYX2Tuple: 2-Tuple C{(Y, X)}\n    test 205 ChLVYX2Tuple: 2\n    test 206 ChLVyx2Tuple: ChLVyx2Tuple\n    test 207 ChLVyx2Tuple: 2-Tuple C{(y_LV03, x_LV03)}\n    test 208 ChLVyx2Tuple: 2\n    test 209 Enu4Tuple: Enu4Tuple\n    test 210 Enu4Tuple: 4-Tuple C{(east, north, up, ltp)}\n    test 211 Enu4Tuple: 4\n    test 212 Footprint5Tuple: Footprint5Tuple\n    test 213 Footprint5Tuple: 5-Tuple C{(center, upperleft, upperight, loweright, lowerleft)}\n    test 214 Footprint5Tuple: 5\n    test 215 Local9Tuple: Local9Tuple\n    test 216 Local9Tuple: 9-Tuple C{(x, y, z, lat, lon, height, ltp, ecef, M)}\n    test 217 Local9Tuple: 9\n    test 218 Ned4Tuple: Ned4Tuple\n    test 219 Ned4Tuple: 4-Tuple C{(north, east, down, ltp)}\n    test 220 Ned4Tuple: 4\n    test 221 Uvw3Tuple: Uvw3Tuple\n    test 222 Uvw3Tuple: 3-Tuple C{(u, v, w)}\n    test 223 Uvw3Tuple: 3\n    test 224 Xyz4Tuple: Xyz4Tuple\n    test 225 Xyz4Tuple: 4-Tuple C{(x, y, z, ltp)}\n    test 226 Xyz4Tuple: 4\n    test 227 Mgrs4Tuple: Mgrs4Tuple\n    test 228 Mgrs4Tuple: 4-Tuple C{(zone, EN, easting, northing)}\n    test 229 Mgrs4Tuple: 4\n    test 230 Mgrs6Tuple: Mgrs6Tuple\n    test 231 Mgrs6Tuple: 6-Tuple C{(zone, EN, easting, northing, band, datum)}\n    test 232 Mgrs6Tuple: 6\n    test 233 Bearing2Tuple: Bearing2Tuple\n    test 234 Bearing2Tuple: 2-Tuple C{(initial, final)}\n    test 235 Bearing2Tuple: 2\n    test 236 Bounds2Tuple: Bounds2Tuple\n    test 237 Bounds2Tuple: 2-Tuple C{(latlonSW, latlonNE)}\n    test 238 Bounds2Tuple: 2\n    test 239 Bounds4Tuple: Bounds4Tuple\n    test 240 Bounds4Tuple: 4-Tuple C{(latS, lonW, latN, lonE)}\n    test 241 Bounds4Tuple: 4\n    test 242 Circle4Tuple: Circle4Tuple\n    test 243 Circle4Tuple: 4-Tuple C{(radius, height, lat, beta)}\n    test 244 Circle4Tuple: 4\n    test 245 Destination2Tuple: Destination2Tuple\n    test 246 Destination2Tuple: 2-Tuple C{(destination, final)}\n    test 247 Destination2Tuple: 2\n    test 248 Destination3Tuple: Destination3Tuple\n    test 249 Destination3Tuple: 3-Tuple C{(lat, lon, final)}\n    test 250 Destination3Tuple: 3\n    test 251 Distance2Tuple: Distance2Tuple\n    test 252 Distance2Tuple: 2-Tuple C{(distance, initial)}\n    test 253 Distance2Tuple: 2\n    test 254 Distance3Tuple: Distance3Tuple\n    test 255 Distance3Tuple: 3-Tuple C{(distance, initial, final)}\n    test 256 Distance3Tuple: 3\n    test 257 Distance4Tuple: Distance4Tuple\n    test 258 Distance4Tuple: 4-Tuple C{(distance2, delta_lat, delta_lon, unroll_lon2)}\n    test 259 Distance4Tuple: 4\n    test 260 EasNor2Tuple: EasNor2Tuple\n    test 261 EasNor2Tuple: 2-Tuple C{(easting, northing)}\n    test 262 EasNor2Tuple: 2\n    test 263 EasNor3Tuple: EasNor3Tuple\n    test 264 EasNor3Tuple: 3-Tuple C{(easting, northing, height)}\n    test 265 EasNor3Tuple: 3\n    test 266 Ellipse5Tuple: Ellipse5Tuple\n    test 267 Ellipse5Tuple: 5-Tuple C{(a, b, height, lat, beta)}\n    test 268 Ellipse5Tuple: 5\n    test 269 Forward4Tuple: Forward4Tuple\n    test 270 Forward4Tuple: 4-Tuple C{(easting, northing, gamma, scale)}\n    test 271 Forward4Tuple: 4\n    test 272 Intersection3Tuple: Intersection3Tuple\n    test 273 Intersection3Tuple: 3-Tuple C{(point, outside1, outside2)}\n    test 274 Intersection3Tuple: 3\n    test 275 LatLon2Tuple: LatLon2Tuple\n    test 276 LatLon2Tuple: 2-Tuple C{(lat, lon)}\n    test 277 LatLon2Tuple: 2\n    test 278 LatLon3Tuple: LatLon3Tuple\n    test 279 LatLon3Tuple: 3-Tuple C{(lat, lon, height)}\n    test 280 LatLon3Tuple: 3\n    test 281 LatLon4Tuple: LatLon4Tuple\n    test 282 LatLon4Tuple: 4-Tuple C{(lat, lon, height, datum)}\n    test 283 LatLon4Tuple: 4\n    test 284 LatLonDatum3Tuple: LatLonDatum3Tuple\n    test 285 LatLonDatum3Tuple: 3-Tuple C{(lat, lon, datum)}\n    test 286 LatLonDatum3Tuple: 3\n    test 287 LatLonDatum5Tuple: LatLonDatum5Tuple\n    test 288 LatLonDatum5Tuple: 5-Tuple C{(lat, lon, datum, gamma, scale)}\n    test 289 LatLonDatum5Tuple: 5\n    test 290 LatLonPrec3Tuple: LatLonPrec3Tuple\n    test 291 LatLonPrec3Tuple: 3-Tuple C{(lat, lon, precision)}\n    test 292 LatLonPrec3Tuple: 3\n    test 293 LatLonPrec5Tuple: LatLonPrec5Tuple\n    test 294 LatLonPrec5Tuple: 5-Tuple C{(lat, lon, precision, height, radius)}\n    test 295 LatLonPrec5Tuple: 5\n    test 296 NearestOn2Tuple: NearestOn2Tuple\n    test 297 NearestOn2Tuple: 2-Tuple C{(closest, fraction)}\n    test 298 NearestOn2Tuple: 2\n    test 299 NearestOn3Tuple: NearestOn3Tuple\n    test 300 NearestOn3Tuple: 3-Tuple C{(closest, distance, angle)}\n    test 301 NearestOn3Tuple: 3\n    test 302 NearestOn5Tuple: NearestOn5Tuple\n    test 303 NearestOn5Tuple: 5-Tuple C{(lat, lon, distance, angle, height)}\n    test 304 NearestOn5Tuple: 5\n    test 305 NearestOn6Tuple: NearestOn6Tuple\n    test 306 NearestOn6Tuple: 6-Tuple C{(closest, distance, fi, j, start, end)}\n    test 307 NearestOn6Tuple: 6\n    test 308 NearestOn8Tuple: NearestOn8Tuple\n    test 309 NearestOn8Tuple: 8-Tuple C{(closest, distance, fi, j, start, end, initial, final)}\n    test 310 NearestOn8Tuple: 8\n    test 311 PhiLam2Tuple: PhiLam2Tuple\n    test 312 PhiLam2Tuple: 2-Tuple C{(phi, lam)}\n    test 313 PhiLam2Tuple: 2\n    test 314 PhiLam3Tuple: PhiLam3Tuple\n    test 315 PhiLam3Tuple: 3-Tuple C{(phi, lam, height)}\n    test 316 PhiLam3Tuple: 3\n    test 317 PhiLam4Tuple: PhiLam4Tuple\n    test 318 PhiLam4Tuple: 4-Tuple C{(phi, lam, height, datum)}\n    test 319 PhiLam4Tuple: 4\n    test 320 Point3Tuple: Point3Tuple\n    test 321 Point3Tuple: 3-Tuple C{(x, y, ll)}\n    test 322 Point3Tuple: 3\n    test 323 Points2Tuple: Points2Tuple\n    test 324 Points2Tuple: 2-Tuple C{(number, points)}\n    test 325 Points2Tuple: 2\n    test 326 Reverse4Tuple: Reverse4Tuple\n    test 327 Reverse4Tuple: 4-Tuple C{(lat, lon, gamma, scale)}\n    test 328 Reverse4Tuple: 4\n    test 329 Triangle7Tuple: Triangle7Tuple\n    test 330 Triangle7Tuple: 7-Tuple C{(A, a, B, b, C, c, area)}\n    test 331 Triangle7Tuple: 7\n    test 332 Triangle8Tuple: Triangle8Tuple\n    test 333 Triangle8Tuple: 8-Tuple C{(A, a, B, b, C, c, D, E)}\n    test 334 Triangle8Tuple: 8\n    test 335 Trilaterate5Tuple: Trilaterate5Tuple\n    test 336 Trilaterate5Tuple: 5-Tuple C{(min, minPoint, max, maxPoint, n)}\n    test 337 Trilaterate5Tuple: 5\n    test 338 UtmUps2Tuple: UtmUps2Tuple\n    test 339 UtmUps2Tuple: 2-Tuple C{(zone, hemipole)}\n    test 340 UtmUps2Tuple: 2\n    test 341 UtmUps5Tuple: UtmUps5Tuple\n    test 342 UtmUps5Tuple: 5-Tuple C{(zone, hemipole, easting, northing, band)}\n    test 343 UtmUps5Tuple: 5\n    test 344 UtmUps8Tuple: UtmUps8Tuple\n    test 345 UtmUps8Tuple: 8-Tuple C{(zone, hemipole, easting, northing, band, datum, gamma, scale)}\n    test 346 UtmUps8Tuple: 8\n    test 347 UtmUpsLatLon5Tuple: UtmUpsLatLon5Tuple\n    test 348 UtmUpsLatLon5Tuple: 5-Tuple C{(zone, band, hemipole, lat, lon)}\n    test 349 UtmUpsLatLon5Tuple: 5\n    test 350 Vector2Tuple: Vector2Tuple\n    test 351 Vector2Tuple: 2-Tuple C{(x, y)}\n    test 352 Vector2Tuple: 2\n    test 353 Vector3Tuple: Vector3Tuple\n    test 354 Vector3Tuple: 3-Tuple C{(x, y, z)}\n    test 355 Vector3Tuple: 3\n    test 356 Vector4Tuple: Vector4Tuple\n    test 357 Vector4Tuple: 4-Tuple C{(x, y, z, h)}\n    test 358 Vector4Tuple: 4\n    test 359 Shape2Tuple: Shape2Tuple\n    test 360 Shape2Tuple: 2-Tuple C{(nrows, ncols)}\n    test 361 Shape2Tuple: 2\n    test 362 Collins5Tuple: Collins5Tuple\n    test 363 Collins5Tuple: 5-Tuple C{(pointP, pointH, a, b, c)}\n    test 364 Collins5Tuple: 5\n    test 365 Survey3Tuple: Survey3Tuple\n    test 366 Survey3Tuple: 3-Tuple C{(PA, PB, PC)}\n    test 367 Survey3Tuple: 3\n    test 368 Tienstra7Tuple: Tienstra7Tuple\n    test 369 Tienstra7Tuple: 7-Tuple C{(pointP, A, B, C, a, b, c)}\n    test 370 Tienstra7Tuple: 7\n    test 371 TriAngle5Tuple: TriAngle5Tuple\n    test 372 TriAngle5Tuple: 5-Tuple C{(radA, radB, radC, rIn, area)}\n    test 373 TriAngle5Tuple: 5\n    test 374 TriSide2Tuple: TriSide2Tuple\n    test 375 TriSide2Tuple: 2-Tuple C{(a, radA)}\n    test 376 TriSide2Tuple: 2\n    test 377 TriSide4Tuple: TriSide4Tuple\n    test 378 TriSide4Tuple: 4-Tuple C{(a, b, radC, d)}\n    test 379 TriSide4Tuple: 4\n    test 380 TRFXform7Tuple: TRFXform7Tuple\n    test 381 TRFXform7Tuple: 7-Tuple C{(tx, ty, tz, s, sx, sy, sz)}\n    test 382 TRFXform7Tuple: 7\n    test 383 Circin6Tuple: Circin6Tuple\n    test 384 Circin6Tuple: 6-Tuple C{(radius, center, deltas, cA, cB, cC)}\n    test 385 Circin6Tuple: 6\n    test 386 Circum3Tuple: Circum3Tuple\n    test 387 Circum3Tuple: 3-Tuple C{(radius, center, deltas)}\n    test 388 Circum3Tuple: 3\n    test 389 Circum4Tuple: Circum4Tuple\n    test 390 Circum4Tuple: 4-Tuple C{(radius, center, rank, residuals)}\n    test 391 Circum4Tuple: 4\n    test 392 Meeus2Tuple: Meeus2Tuple\n    test 393 Meeus2Tuple: 2-Tuple C{(radius, Type)}\n    test 394 Meeus2Tuple: 2\n    test 395 Radii11Tuple: Radii11Tuple\n    test 396 Radii11Tuple: 11-Tuple C{(rA, rB, rC, cR, rIn, riS, roS, a, b, c, s)}\n    test 397 Radii11Tuple: 11\n    test 398 Soddy4Tuple: Soddy4Tuple\n    test 399 Soddy4Tuple: 4-Tuple C{(radius, center, deltas, outer)}\n    test 400 Soddy4Tuple: 4\n    test 401 Triaxum5Tuple: Triaxum5Tuple\n    test 402 Triaxum5Tuple: 5-Tuple C{(a, b, c, rank, residuals)}\n    test 403 Triaxum5Tuple: 5\n    test 404 EasNorRadius3Tuple: EasNorRadius3Tuple\n    test 405 EasNorRadius3Tuple: 3-Tuple C{(easting, northing, radius)}\n    test 406 EasNorRadius3Tuple: 3\n    test 407 ClipCS3Tuple: DEPRECATED, see I{DEPRECATED} function L{pygeodesy.deprecated.clipCS3}.\n    test 408 EasNorExact4Tuple: DEPRECATED, use class L{Forward4Tuple}, item C{gamma} for C{convergence}.\n    test 409 Transform7Tuple: DEPRECATED on 2024.02.02, use class L{TRFXform7Tuple}, I{without} keyword arguments.\n    test 410 Jacobi2Tuple: DEPRECATED on 25.11.11, use class L{Conformal2Tuple}.\n    test 411 LatLonExact4Tuple: DEPRECATED, use class L{Reverse4Tuple}, item C{gamma} for C{convergence}.\n    test 412 NearestOn4Tuple: DEPRECATED on 2023.10.10, see methods L{RhumbLine.nearestOn4} and L{RhumbLineAux.nearestOn4}.\n    test 413 Ned3Tuple: DEPRECATED, use class L{Ned4Tuple}, ignoring item C{ltp}.\n    test 414 Rhumb7Tuple: DEPRECATED, use class L{Rhumb8Tuple}, ignoring item C{a12}.\n    test 415 RhumbOrder2Tuple: DEPRECATED, see deprecated method L{Rhumb.orders}.\n    test 416 Transform7Tuple: DEPRECATED on 2024.02.02, use class L{TRFXform7Tuple}, I{without} keyword arguments.\n    test 417 TriAngle4Tuple: DEPRECATED on 2023.09.14, use class L{TriAngle5Tuple}, ignoring item C{area}.\n    test 418 UtmUps4Tuple: DEPRECATED and OBSOLETE, expect a L{UtmUps5Tuple} from method C{pygeodesy.Mgrs.toUtm(utm=None)}. 4-Tuple C{(zone, hemipole, easting, northing)} with as C{zone} B{C{str}} and no C{band}.\n    test 419 RhumbSolve7Tuple: RhumbSolve7Tuple\n    test 420 RhumbSolve7Tuple: 7-Tuple C{(lat1, lon1, lat2, lon2, azi12, s12, S12)}\n    test 421 RhumbSolve7Tuple: 7\n    test 422 Conformal5Tuple: Conformal5Tuple\n    test 423 Conformal5Tuple: 5-Tuple C{(x, y, z, scale, llk)}\n    test 424 Conformal5Tuple: 5\n    test 425 BetOmgGam5Tuple: BetOmgGam5Tuple\n    test 426 BetOmgGam5Tuple: 5-Tuple C{(bet, omg, gam, scale, llk)}\n    test 427 BetOmgGam5Tuple: 5\n    test 428 BetOmgAlp5Tuple: BetOmgAlp5Tuple\n    test 429 BetOmgAlp5Tuple: 5-Tuple C{(bet, omg, alp, h, llk)}\n    test 430 BetOmgAlp5Tuple: 5\n    test 431 Cartesian5Tuple: Cartesian5Tuple\n    test 432 Cartesian5Tuple: 5-Tuple C{(x, y, z, h, llk)}\n    test 433 Cartesian5Tuple: 5\n    test 434 PhiLamZet5Tuple: PhiLamZet5Tuple\n    test 435 PhiLamZet5Tuple: 5-Tuple C{(phi, lam, zet, h, llk)}\n    test 436 PhiLamZet5Tuple: 5\n    test 437 BetaOmega2Tuple: BetaOmega2Tuple\n    test 438 BetaOmega2Tuple: 2-Tuple C{(beta, omega)}\n    test 439 BetaOmega2Tuple: 2\n    test 440 BetaOmega3Tuple: BetaOmega3Tuple\n    test 441 BetaOmega3Tuple: 3-Tuple C{(beta, omega, height)}\n    test 442 BetaOmega3Tuple: 3\n    test 443 Conformal2Tuple: Conformal2Tuple\n    test 444 Conformal2Tuple: 2-Tuple C{(x, y)}\n    test 445 Conformal2Tuple: 2\n\n    testing __init__.py (pygeodesy.named, 26.01.14)\n\n    testing __main__.py (pygeodesy.named, 26.01.14)\n\n    testing albers.py (pygeodesy.named, 26.01.14)\n    test 446 albers.py:235: L{Albers7Tuple}C{(x, y, lat, lon, gamma, scale, datum)}\n    test 447 albers.py:356: L{Albers7Tuple}C{(x, y, lat, lon, gamma, scale, datum)}\n\n    testing angles.py (pygeodesy.named, 26.01.14)\n\n    testing azimuthal.py (pygeodesy.named, 26.01.14)\n    test 448 azimuthal.py:185: L{LatLon2Tuple}C{(lat, lon)}\n    test 449 azimuthal.py:361: L{Azimuthal7Tuple}C{(x, y, lat, lon, azimuth, scale, datum)}\n    test 450 azimuthal.py:394: L{Azimuthal7Tuple}C{(x, y, lat, lon, azimuth, scale, datum)}\n    test 451 azimuthal.py:487: L{Azimuthal7Tuple}C{(x, y, lat, lon, azimuth, scale, datum)}\n    test 452 azimuthal.py:513: L{Azimuthal7Tuple}C{(x, y, lat, lon, azimuth, scale, datum)}\n    test 453 azimuthal.py:658: L{Azimuthal7Tuple}C{(x, y, lat, lon, azimuth, scale, datum)}\n    test 454 azimuthal.py:683: L{Azimuthal7Tuple}C{(x, y, lat, lon, azimuth, scale, datum)}\n    test 455 azimuthal.py:753: L{Azimuthal7Tuple}C{(x, y, lat, lon, azimuth, scale, datum)}\n    test 456 azimuthal.py:791: L{Azimuthal7Tuple}C{(x, y, lat, lon, azimuth, scale, datum)}\n    test 457 azimuthal.py:956: L{Azimuthal7Tuple}C{(x, y, lat, lon, azimuth, scale, datum)}\n    test 458 azimuthal.py:982: L{Azimuthal7Tuple}C{(x, y, lat, lon, azimuth, scale, datum)}\n    test 459 azimuthal.py:1011: L{Azimuthal7Tuple}C{(x, y, lat, lon, azimuth, scale, datum)}\n    test 460 azimuthal.py:1034: L{Azimuthal7Tuple}C{(x, y, lat, lon, azimuth, scale, datum)}\n    test 461 azimuthal.py:1065: L{Azimuthal7Tuple}C{(x, y, lat, lon, azimuth, scale, datum)}\n    test 462 azimuthal.py:1105: L{Azimuthal7Tuple}C{(x, y, lat, lon, azimuth, scale, datum)}\n\n    testing basics.py (pygeodesy.named, 26.01.14)\n\n    testing booleans.py (pygeodesy.named, 26.01.14)\n\n    testing cartesianBase.py (pygeodesy.named, 26.01.14)\n    test 463 cartesianBase.py:141: L{Collins5Tuple}C{(pointP, pointH, a, b, c)}\n    test 464 cartesianBase.py:196: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 465 cartesianBase.py:296: L{Vector3Tuple}C{(x, y, z)}\n    test 466 cartesianBase.py:348: L{Vector4Tuple}C{(x, y, z, h)}\n    test 467 cartesianBase.py:393: L{LatLon2Tuple}C{(lat, lon)}\n    test 468 cartesianBase.py:399: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 469 cartesianBase.py:405: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n    test 470 cartesianBase.py:466: L{PhiLam2Tuple}C{(phi, lam)}\n    test 471 cartesianBase.py:472: L{PhiLam3Tuple}C{(phi, lam, height)}\n    test 472 cartesianBase.py:478: L{PhiLam4Tuple}C{(phi, lam, height, datum)}\n    test 473 cartesianBase.py:598: L{Tienstra7Tuple}C{(pointP, A, B, C, a, b, c)}\n    test 474 cartesianBase.py:618: L{PhiLam2Tuple}C{(phi, lam)}\n    test 475 cartesianBase.py:626: L{LatLon2Tuple}C{(lat, lon)}\n    test 476 cartesianBase.py:634: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n    test 477 cartesianBase.py:691: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 478 cartesianBase.py:709: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 479 cartesianBase.py:739: L{Vector4Tuple}C{(x, y, z, h)}\n    test 480 cartesianBase.py:765: L{RadiusThetaPhi3Tuple}C{(r, theta, phi)}\n    test 481 cartesianBase.py:815: L{Vector3Tuple}C{(x, y, z)}\n    test 482 cartesianBase.py:841: L{Vector3Tuple}C{(x, y, z)}\n    test 483 cartesianBase.py:855: L{RadiusThetaPhi3Tuple}C{(r, theta, phi)}\n    test 484 cartesianBase.py:865: L{RadiusThetaPhi3Tuple}C{(r, theta, phi)}\n    test 485 cartesianBase.py:912: L{Vector3Tuple}C{(x, y, z)}\n    test 486 cartesianBase.py:965: L{RadiusThetaPhi3Tuple}C{(r, theta, phi)}\n    test 487 cartesianBase.py:983: L{RadiusThetaPhi3Tuple}C{(r, theta, phi)}\n\n    testing clipy.py (pygeodesy.named, 26.01.14)\n    test 488 clipy.py:197: L{ClipCS4Tuple}C{(start, end, i, j)}\n    test 489 clipy.py:276: L{ClipFHP4Tuple}C{(lat, lon, height, clipid)}\n    test 490 clipy.py:318: L{ClipGH4Tuple}C{(lat, lon, height, clipid)}\n    test 491 clipy.py:382: L{ClipLB6Tuple}C{(start, end, i, fi, fj, j)}\n    test 492 clipy.py:660: L{ClipSH3Tuple}C{(start, end, original)}\n\n    testing constants.py (pygeodesy.named, 26.01.14)\n\n    testing css.py (pygeodesy.named, 26.01.14)\n    test 493 css.py:138: L{EasNor2Tuple}C{(easting, northing)}\n    test 494 css.py:157: L{EasNorAziRk4Tuple}C{(easting, northing, azimuth, reciprocal)}\n    test 495 css.py:178: L{EasNorAziRkEqu6Tuple}C{(easting, northing, azimuth, reciprocal, equatorarc, equatorazimuth)}\n    test 496 css.py:265: L{LatLon2Tuple}C{(lat, lon)}\n    test 497 css.py:330: L{LatLon2Tuple}C{(lat, lon)}\n    test 498 css.py:359: L{LatLonAziRk4Tuple}C{(lat, lon, azimuth, reciprocal)}\n    test 499 css.py:525: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n    test 500 css.py:619: L{EasNor3Tuple}C{(easting, northing, height)}\n\n    testing datums.py (pygeodesy.named, 26.01.14)\n    test 501 datums.py:275: L{Vector3Tuple}C{(x, y, z)}\n\n    testing dms.py (pygeodesy.named, 26.01.14)\n    test 502 dms.py:760: L{LatLon2Tuple}C{(lat, lon)}\n    test 503 dms.py:813: L{LatLon3Tuple}C{(lat, lon, height)}\n\n    testing ecef.py (pygeodesy.named, 26.01.14)\n    test 504 ecef.py:233: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 505 ecef.py:259: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 506 ecef.py:369: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 507 ecef.py:441: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 508 ecef.py:491: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 509 ecef.py:621: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 510 ecef.py:703: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 511 ecef.py:769: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 512 ecef.py:838: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 513 ecef.py:1099: L{LatLon2Tuple}C{(lat, lon)}\n    test 514 ecef.py:1105: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 515 ecef.py:1111: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n    test 516 ecef.py:1117: L{LatLon2Tuple}C{(lat, lon)}\n    test 517 ecef.py:1147: L{PhiLam2Tuple}C{(phi, lam)}\n    test 518 ecef.py:1153: L{PhiLam3Tuple}C{(phi, lam, height)}\n    test 519 ecef.py:1159: L{PhiLam4Tuple}C{(phi, lam, height, datum)}\n    test 520 ecef.py:1165: L{PhiLam2Tuple}C{(phi, lam)}\n    test 521 ecef.py:1184: L{Vector4Tuple}C{(x, y, z, h)}\n    test 522 ecef.py:1225: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n    test 523 ecef.py:1226: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 524 ecef.py:1254: L{Vector3Tuple}C{(x, y, z)}\n    test 525 ecef.py:1271: L{Vector3Tuple}C{(x, y, z)}\n    test 526 ecef.py:1277: L{Vector4Tuple}C{(x, y, z, h)}\n\n    testing ecefLocals.py (pygeodesy.named, 26.01.14)\n    test 527 ecefLocals.py:108: L{Local9Tuple}C{(x, y, z, lat, lon, height, ltp, ecef, M)}\n\n    testing elevations.py (pygeodesy.named, 26.01.14)\n    test 528 elevations.py:151: L{Elevation2Tuple}C{(elevation, data_source)}\n    test 529 elevations.py:207: L{GeoidHeight2Tuple}C{(height, model_name)}\n\n    testing ellipses.py (pygeodesy.named, 26.01.14)\n    test 530 ellipses.py:240: L{Vector4Tuple}C{(x, y, z, h)}\n    test 531 ellipses.py:267: L{Vector4Tuple}C{(x, y, z, h)}\n    test 532 ellipses.py:361: L{Vector4Tuple}C{(x, y, z, h)}\n\n    testing ellipsoidalBase.py (pygeodesy.named, 26.01.14)\n    test 533 ellipsoidalBase.py:332: L{Distance2Tuple}C{(distance, initial)}\n    test 534 ellipsoidalBase.py:367: L{Elevation2Tuple}C{(elevation, data_source)}\n    test 535 ellipsoidalBase.py:479: L{GeoidHeight2Tuple}C{(height, model_name)}\n    test 536 ellipsoidalBase.py:521: L{Intersection3Tuple}C{(point, outside1, outside2)}\n    test 537 ellipsoidalBase.py:998: L{Vector3Tuple}C{(x, y, z)}\n    test 538 ellipsoidalBase.py:1042: L{Trilaterate5Tuple}C{(min, minPoint, max, maxPoint, n)}\n\n    testing ellipsoidalBaseDI.py (pygeodesy.named, 26.01.14)\n    test 539 ellipsoidalBaseDI.py:60: L{Bearing2Tuple}C{(initial, final)}\n    test 540 ellipsoidalBaseDI.py:102: L{Destination2Tuple}C{(destination, final)}\n    test 541 ellipsoidalBaseDI.py:109: L{Destination2Tuple}C{(destination, final)}\n    test 542 ellipsoidalBaseDI.py:110: L{Destination3Tuple}C{(lat, lon, final)}\n    test 543 ellipsoidalBaseDI.py:162: L{Distance3Tuple}C{(distance, initial, final)}\n    test 544 ellipsoidalBaseDI.py:316: L{Distance3Tuple}C{(distance, initial, final)}\n    test 545 ellipsoidalBaseDI.py:341: L{NearestOn8Tuple}C{(closest, distance, fi, j, start, end, initial, final)}\n\n    testing ellipsoidalExact.py (pygeodesy.named, 26.01.14)\n    test 546 ellipsoidalExact.py:43: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 547 ellipsoidalExact.py:81: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 548 ellipsoidalExact.py:143: L{Intersection3Tuple}C{(point, outside1, outside2)}\n    test 549 ellipsoidalExact.py:144: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n    test 550 ellipsoidalExact.py:193: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n    test 551 ellipsoidalExact.py:270: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n\n    testing ellipsoidalGeodSolve.py (pygeodesy.named, 26.01.14)\n    test 552 ellipsoidalGeodSolve.py:43: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 553 ellipsoidalGeodSolve.py:81: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 554 ellipsoidalGeodSolve.py:141: L{Intersection3Tuple}C{(point, outside1, outside2)}\n    test 555 ellipsoidalGeodSolve.py:142: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n    test 556 ellipsoidalGeodSolve.py:193: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n    test 557 ellipsoidalGeodSolve.py:270: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n\n    testing ellipsoidalKarney.py (pygeodesy.named, 26.01.14)\n    test 558 ellipsoidalKarney.py:60: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 559 ellipsoidalKarney.py:104: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 560 ellipsoidalKarney.py:168: L{Intersection3Tuple}C{(point, outside1, outside2)}\n    test 561 ellipsoidalKarney.py:169: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n    test 562 ellipsoidalKarney.py:220: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n    test 563 ellipsoidalKarney.py:301: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n\n    testing ellipsoidalNvector.py (pygeodesy.named, 26.01.14)\n    test 564 ellipsoidalNvector.py:102: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 565 ellipsoidalNvector.py:119: L{Vector4Tuple}C{(x, y, z, h)}\n    test 566 ellipsoidalNvector.py:398: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 567 ellipsoidalNvector.py:415: L{Vector4Tuple}C{(x, y, z, h)}\n    test 568 ellipsoidalNvector.py:483: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 569 ellipsoidalNvector.py:501: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 570 ellipsoidalNvector.py:542: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 571 ellipsoidalNvector.py:580: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n    test 572 ellipsoidalNvector.py:636: L{Ned3Tuple}C{(north, east, down)}  FAILED, KNOWN, expected DEPRECATED\n\n    testing ellipsoidalVincenty.py (pygeodesy.named, 26.01.14)\n    test 573 ellipsoidalVincenty.py:110: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 574 ellipsoidalVincenty.py:190: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 575 ellipsoidalVincenty.py:439: L{Intersection3Tuple}C{(point, outside1, outside2)}\n    test 576 ellipsoidalVincenty.py:440: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n    test 577 ellipsoidalVincenty.py:491: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n    test 578 ellipsoidalVincenty.py:541: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n\n    testing ellipsoids.py (pygeodesy.named, 26.01.14)\n    test 579 ellipsoids.py:146: L{a_f2Tuple}C{(a, f)}\n    test 580 ellipsoids.py:678: L{Circle4Tuple}C{(radius, height, lat, beta)}\n    test 581 ellipsoids.py:739: L{Distance2Tuple}C{(distance, initial)}\n    test 582 ellipsoids.py:1113: L{Vector4Tuple}C{(x, y, z, h)}\n    test 583 ellipsoids.py:1149: L{Vector4Tuple}C{(x, y, z, h)}\n    test 584 ellipsoids.py:1635: L{Curvature2Tuple}C{(meridional, prime_vertical)}\n    test 585 ellipsoids.py:1654: L{Curvature2Tuple}C{(meridional, prime_vertical)}\n    test 586 ellipsoids.py:1723: L{Curvature2Tuple}C{(meridional, prime_vertical)}\n\n    testing elliptic.py (pygeodesy.named, 26.01.14)\n    test 587 elliptic.py:830: L{Elliptic3Tuple}C{(sn, cn, dn)}\n\n    testing epsg.py (pygeodesy.named, 26.01.14)\n    test 588 epsg.py:148: L{UtmUps2Tuple}C{(zone, hemipole)}\n\n    testing errors.py (pygeodesy.named, 26.01.14)\n\n    testing etm.py (pygeodesy.named, 26.01.14)\n    test 589 etm.py:185: L{LatLonDatum5Tuple}C{(lat, lon, datum, gamma, scale)}\n    test 590 etm.py:446: L{Forward4Tuple}C{(easting, northing, gamma, scale)}\n    test 591 etm.py:685: L{Reverse4Tuple}C{(lat, lon, gamma, scale)}\n    test 592 etm.py:1048: L{UtmUps5Tuple}C{(zone, hemipole, easting, northing, band)}\n    test 593 etm.py:1079: L{UtmUps8Tuple}C{(zone, hemipole, easting, northing, band, datum, gamma, scale)}\n\n    testing fmath.py (pygeodesy.named, 26.01.14)\n\n    testing formy.py (pygeodesy.named, 26.01.14)\n    test 594 formy.py:90: L{LatLon2Tuple}C{(lat, lon)}\n    test 595 formy.py:106: L{PhiLam2Tuple}C{(phi, lam)}\n    test 596 formy.py:433: L{Distance4Tuple}C{(distance2, delta_lat, delta_lon, unroll_lon2)}\n    test 597 formy.py:1149: L{LatLon2Tuple}C{(lat, lon)}\n    test 598 formy.py:1212: L{LatLon2Tuple}C{(lat, lon)}\n    test 599 formy.py:1361: L{LatLon2Tuple}C{(lat, lon)}\n    test 600 formy.py:1377: L{PhiLam2Tuple}C{(phi, lam)}\n    test 601 formy.py:1460: L{Radical2Tuple}C{(ratio, xline)}\n\n    testing frechet.py (pygeodesy.named, 26.01.14)\n    test 602 frechet.py:199: L{Frechet6Tuple}C{(fd, fi1, fi2, r, n, units)}\n    test 603 frechet.py:371: L{PhiLam2Tuple}C{(phi, lam)}\n    test 604 frechet.py:745: L{Frechet6Tuple}C{(fd, fi1, fi2, r, n, units)}\n\n    testing fstats.py (pygeodesy.named, 26.01.14)\n\n    testing fsums.py (pygeodesy.named, 26.01.14)\n    test 605 fsums.py:1395: L{Fsum2Tuple}C{(fsum, residual)}\n    test 606 fsums.py:1848: L{Fsum2Tuple}C{(fsum, residual)}\n\n    testing gars.py (pygeodesy.named, 26.01.14)\n    test 607 gars.py:206: L{LatLonPrec3Tuple}C{(lat, lon, precision)}\n\n    testing geod3solve.py (pygeodesy.named, 26.01.14)\n\n    testing geodesici.py (pygeodesy.named, 26.01.14)\n    test 608 geodesici.py:347: L{Intersect7Tuple}C{(A, B, sAB, aAB, c, kA, kB)}\n    test 609 geodesici.py:349: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n    test 610 geodesici.py:904: L{Intersector5Tuple}C{(A, B, sAB, aAB, c)}\n    test 611 geodesici.py:975: L{Intersector5Tuple}C{(A, B, sAB, aAB, c)}\n    test 612 geodesici.py:1132: L{Middle5Tuple}C{(A, B, sMM, aMM, c)}\n    test 613 geodesici.py:1204: L{Intersector5Tuple}C{(A, B, sAB, aAB, c)}\n    test 614 geodesici.py:1331: L{Intersector5Tuple}C{(A, B, sAB, aAB, c)}\n    test 615 geodesici.py:1424: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n\n    testing geodesicw.py (pygeodesy.named, 26.01.14)\n\n    testing geodsolve.py (pygeodesy.named, 26.01.14)\n    test 616 geodsolve.py:129: L{Destination3Tuple}C{(lat, lon, final)}\n    test 617 geodsolve.py:175: L{Distance3Tuple}C{(distance, initial, final)}\n\n    testing geohash.py (pygeodesy.named, 26.01.14)\n    test 618 geohash.py:489: L{Neighbors8Dict}C{(N, NE, E, SE, S, SW, W, NW)}\n    test 619 geohash.py:972: L{Neighbors8Dict}C{(N, NE, E, SE, S, SW, W, NW)}\n    test 620 geohash.py:365: L{Bounds2Tuple}C{(latlonSW, latlonNE)}\n    test 621 geohash.py:366: L{Bounds4Tuple}C{(latS, lonW, latN, lonE)}\n    test 622 geohash.py:482: L{LatLon2Tuple}C{(lat, lon)}\n    test 623 geohash.py:499: L{PhiLam2Tuple}C{(phi, lam)}\n    test 624 geohash.py:512: L{Resolutions2Tuple}C{(res1, res2)}\n    test 625 geohash.py:525: L{Sizes3Tuple}C{(height, width, radius)}\n    test 626 geohash.py:540: L{LatLon2Tuple}C{(lat, lon)}\n    test 627 geohash.py:781: L{Bounds2Tuple}C{(latlonSW, latlonNE)}\n    test 628 geohash.py:782: L{Bounds4Tuple}C{(latS, lonW, latN, lonE)}\n    test 629 geohash.py:824: L{LatLon2Tuple}C{(lat, lon)}\n    test 630 geohash.py:849: L{LatLon2Tuple}C{(lat, lon)}\n    test 631 geohash.py:1015: L{Resolutions2Tuple}C{(res1, res2)}\n    test 632 geohash.py:1042: L{Sizes3Tuple}C{(height, width, radius)}\n\n    testing geoids.py (pygeodesy.named, 26.01.14)\n    test 633 geoids.py:352: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 634 geoids.py:478: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 635 geoids.py:543: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 636 geoids.py:561: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 637 geoids.py:581: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 638 geoids.py:726: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 639 geoids.py:744: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 640 geoids.py:1210: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 641 geoids.py:1265: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 642 geoids.py:1724: L{GeoidHeight5Tuple}C{(lat, lon, egm84, egm96, egm2008)}\n\n    testing hausdorff.py (pygeodesy.named, 26.01.14)\n    test 643 hausdorff.py:166: L{Hausdorff6Tuple}C{(hd, i, j, mn, md, units)}\n    test 644 hausdorff.py:244: L{Hausdorff6Tuple}C{(hd, i, j, mn, md, units)}\n    test 645 hausdorff.py:309: L{PhiLam2Tuple}C{(phi, lam)}\n    test 646 hausdorff.py:733: L{Hausdorff6Tuple}C{(hd, i, j, mn, md, units)}\n\n    testing heights.py (pygeodesy.named, 26.01.14)\n\n    testing internals.py (pygeodesy.named, 26.01.14)\n\n    testing interns.py (pygeodesy.named, 26.01.14)\n\n    testing iters.py (pygeodesy.named, 26.01.14)\n    test 647 iters.py:375: L{Point3Tuple}C{(x, y, ll)}\n    test 648 iters.py:495: L{Points2Tuple}C{(number, points)}\n\n    testing karney.py (pygeodesy.named, 26.01.14)\n    test 649 karney.py:453: L{Direct9Tuple}C{(a12, lat2, lon2, azi2, s12, m12, M12, M21, S12)}\n    test 650 karney.py:465: L{GeodSolve12Tuple}C{(lat1, lon1, azi1, lat2, lon2, azi2, s12, a12, m12, M12, M21, S12)}\n    test 651 karney.py:477: L{Geod3Solve8Tuple}C{(bet1, omg1, alp1, bet2, omg2, alp2, s12, a12)}\n    test 652 karney.py:487: L{Inverse10Tuple}C{(a12, s12, salp1, calp1, salp2, calp2, m12, M12, M21, S12)}\n    test 653 karney.py:517: L{Rhumb8Tuple}C{(lat1, lon1, lat2, lon2, azi12, s12, S12, a12)}\n    test 654 karney.py:527: L{RhumbSolve7Tuple}C{(lat1, lon1, lat2, lon2, azi12, s12, S12)}\n    test 655 karney.py:595: L{Direct9Tuple}C{(a12, lat2, lon2, azi2, s12, m12, M12, M21, S12)}\n    test 656 karney.py:612: L{Inverse10Tuple}C{(a12, s12, salp1, calp1, salp2, calp2, m12, M12, M21, S12)}\n\n    testing ktm.py (pygeodesy.named, 26.01.14)\n    test 657 ktm.py:230: L{Forward4Tuple}C{(easting, northing, gamma, scale)}\n    test 658 ktm.py:361: L{Reverse4Tuple}C{(lat, lon, gamma, scale)}\n\n    testing latlonBase.py (pygeodesy.named, 26.01.14)\n    test 659 latlonBase.py:148: L{Bounds2Tuple}C{(latlonSW, latlonNE)}\n    test 660 latlonBase.py:202: L{Circin6Tuple}C{(radius, center, deltas, cA, cB, cC)}\n    test 661 latlonBase.py:219: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 662 latlonBase.py:250: L{Circum3Tuple}C{(radius, center, deltas)}\n    test 663 latlonBase.py:253: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 664 latlonBase.py:270: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 665 latlonBase.py:292: L{Circum4Tuple}C{(radius, center, rank, residuals)}\n    test 666 latlonBase.py:409: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n    test 667 latlonBase.py:409: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 668 latlonBase.py:654: L{Vector4Tuple}C{(x, y, z, h)}\n    test 669 latlonBase.py:816: L{LatLon2Tuple}C{(lat, lon)}\n    test 670 latlonBase.py:855: L{LatLon2Tuple}C{(lat, lon)}\n    test 671 latlonBase.py:873: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 672 latlonBase.py:920: L{NearestOn6Tuple}C{(closest, distance, fi, j, start, end)}\n    test 673 latlonBase.py:993: L{PhiLam2Tuple}C{(phi, lam)}\n    test 674 latlonBase.py:1002: L{PhiLam2Tuple}C{(phi, lam)}\n    test 675 latlonBase.py:1012: L{PhiLam3Tuple}C{(phi, lam, height)}\n    test 676 latlonBase.py:1028: L{Points2Tuple}C{(number, points)}\n    test 677 latlonBase.py:1062: L{Radii11Tuple}C{(rA, rB, rC, cR, rIn, riS, roS, a, b, c, s)}\n    test 678 latlonBase.py:1299: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 679 latlonBase.py:1340: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 680 latlonBase.py:1381: L{Vector4Tuple}C{(x, y, z, h)}\n    test 681 latlonBase.py:1435: L{Vector3Tuple}C{(x, y, z)}\n    test 682 latlonBase.py:1512: L{Vector3Tuple}C{(x, y, z)}\n    test 683 latlonBase.py:1524: L{Vector4Tuple}C{(x, y, z, h)}\n    test 684 latlonBase.py:1567: L{Vector3Tuple}C{(x, y, z)}\n    test 685 latlonBase.py:1593: L{Vector3Tuple}C{(x, y, z)}\n\n    testing lazily.py (pygeodesy.named, 26.01.14)\n\n    testing lcc.py (pygeodesy.named, 26.01.14)\n    test 686 lcc.py:168: L{LatLon2Tuple}C{(lat, lon)}\n    test 687 lcc.py:222: L{PhiLam2Tuple}C{(phi, lam)}\n    test 688 lcc.py:483: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 689 lcc.py:489: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n    test 690 lcc.py:508: L{PhiLam3Tuple}C{(phi, lam, height)}\n    test 691 lcc.py:514: L{PhiLam4Tuple}C{(phi, lam, height, datum)}\n    test 692 lcc.py:525: L{LatLonDatum3Tuple}C{(lat, lon, datum)}\n    test 693 lcc.py:552: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n    test 694 lcc.py:630: L{EasNor3Tuple}C{(easting, northing, height)}\n\n    testing ltp.py (pygeodesy.named, 26.01.14)\n    test 695 ltp.py:163: L{Vector3Tuple}C{(x, y, z)}\n    test 696 ltp.py:292: L{Footprint5Tuple}C{(center, upperleft, upperight, loweright, lowerleft)}\n    test 697 ltp.py:484: L{Local9Tuple}C{(x, y, z, lat, lon, height, ltp, ecef, M)}\n    test 698 ltp.py:524: L{Local9Tuple}C{(x, y, z, lat, lon, height, ltp, ecef, M)}\n    test 699 ltp.py:556: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 700 ltp.py:568: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 701 ltp.py:646: L{Local9Tuple}C{(x, y, z, lat, lon, height, ltp, ecef, M)}\n    test 702 ltp.py:756: L{ChLV9Tuple}C{(Y, X, h_, lat, lon, height, ltp, ecef, M)}\n    test 703 ltp.py:778: L{ChLV9Tuple}C{(Y, X, h_, lat, lon, height, ltp, ecef, M)}\n    test 704 ltp.py:892: L{ChLVEN2Tuple}C{(E_LV95, N_LV95)}\n    test 705 ltp.py:893: L{ChLVyx2Tuple}C{(y_LV03, x_LV03)}\n    test 706 ltp.py:894: L{ChLVYX2Tuple}C{(Y, X)}\n    test 707 ltp.py:944: L{ChLVYX2Tuple}C{(Y, X)}\n    test 708 ltp.py:1100: L{Vector3Tuple}C{(x, y, z)}\n\n    testing ltpTuples.py (pygeodesy.named, 26.01.14)\n    test 709 ltpTuples.py:79: L{Aer4Tuple}C{(azimuth, elevation, slantrange, ltp)}\n    test 710 ltpTuples.py:94: L{Enu4Tuple}C{(east, north, up, ltp)}\n    test 711 ltpTuples.py:109: L{Ned4Tuple}C{(north, east, down, ltp)}\n    test 712 ltpTuples.py:125: L{Xyz4Tuple}C{(x, y, z, ltp)}\n    test 713 ltpTuples.py:134: L{Vector3Tuple}C{(x, y, z)}\n    test 714 ltpTuples.py:767: L{Aer4Tuple}C{(azimuth, elevation, slantrange, ltp)}\n    test 715 ltpTuples.py:786: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 716 ltpTuples.py:809: L{Enu4Tuple}C{(east, north, up, ltp)}\n    test 717 ltpTuples.py:827: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 718 ltpTuples.py:847: L{Local9Tuple}C{(x, y, z, lat, lon, height, ltp, ecef, M)}\n    test 719 ltpTuples.py:865: L{Ned4Tuple}C{(north, east, down, ltp)}\n    test 720 ltpTuples.py:881: L{Xyz4Tuple}C{(x, y, z, ltp)}\n    test 721 ltpTuples.py:902: L{Vector3Tuple}C{(x, y, z)}\n    test 722 ltpTuples.py:995: L{Uvw3Tuple}C{(u, v, w)}\n    test 723 ltpTuples.py:1090: L{LatLon2Tuple}C{(lat, lon)}\n    test 724 ltpTuples.py:1096: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 725 ltpTuples.py:1114: L{PhiLam2Tuple}C{(phi, lam)}\n    test 726 ltpTuples.py:1120: L{PhiLam3Tuple}C{(phi, lam, height)}\n    test 727 ltpTuples.py:1138: L{Aer4Tuple}C{(azimuth, elevation, slantrange, ltp)}\n    test 728 ltpTuples.py:1155: L{Vector4Tuple}C{(x, y, z, h)}\n    test 729 ltpTuples.py:1170: L{Enu4Tuple}C{(east, north, up, ltp)}\n    test 730 ltpTuples.py:1186: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n    test 731 ltpTuples.py:1187: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 732 ltpTuples.py:1202: L{Ned4Tuple}C{(north, east, down, ltp)}\n    test 733 ltpTuples.py:1217: L{Xyz4Tuple}C{(x, y, z, ltp)}\n    test 734 ltpTuples.py:1232: L{Vector3Tuple}C{(x, y, z)}\n    test 735 ltpTuples.py:1279: L{Enu4Tuple}C{(east, north, up, ltp)}\n    test 736 ltpTuples.py:1305: L{Uvw3Tuple}C{(u, v, w)}\n    test 737 ltpTuples.py:1526: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 738 ltpTuples.py:1527: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n\n    testing mgrs.py (pygeodesy.named, 26.01.14)\n    test 739 mgrs.py:207: L{EasNor2Tuple}C{(easting, northing)}\n    test 740 mgrs.py:292: L{LatLonDatum5Tuple}C{(lat, lon, datum, gamma, scale)}\n    test 741 mgrs.py:353: L{UtmUps5Tuple}C{(zone, hemipole, easting, northing, band)}\n    test 742 mgrs.py:371: L{UtmUps5Tuple}C{(zone, hemipole, easting, northing, band)}\n    test 743 mgrs.py:391: L{UtmUps5Tuple}C{(zone, hemipole, easting, northing, band)}\n    test 744 mgrs.py:465: L{Mgrs6Tuple}C{(zone, EN, easting, northing, band, datum)}\n    test 745 mgrs.py:549: L{Mgrs4Tuple}C{(zone, EN, easting, northing)}\n    test 746 mgrs.py:605: L{Mgrs6Tuple}C{(zone, EN, easting, northing, band, datum)}\n\n    testing named.py (pygeodesy.named, 26.01.14)\n\n    testing namedTuples.py (pygeodesy.named, 26.01.14)\n    test 747 namedTuples.py:279: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 748 namedTuples.py:293: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n    test 749 namedTuples.py:316: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n    test 750 namedTuples.py:383: L{LatLonPrec5Tuple}C{(lat, lon, precision, height, radius)}\n    test 751 namedTuples.py:442: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 752 namedTuples.py:510: L{PhiLam3Tuple}C{(phi, lam, height)}\n    test 753 namedTuples.py:522: L{PhiLam4Tuple}C{(phi, lam, height, datum)}\n    test 754 namedTuples.py:550: L{PhiLam4Tuple}C{(phi, lam, height, datum)}\n    test 755 namedTuples.py:727: L{Vector3Tuple}C{(x, y, z)}\n    test 756 namedTuples.py:771: L{Vector4Tuple}C{(x, y, z, h)}\n    test 757 namedTuples.py:811: L{Vector3Tuple}C{(x, y, z)}\n\n    testing nvectorBase.py (pygeodesy.named, 26.01.14)\n    test 758 nvectorBase.py:160: L{LatLon2Tuple}C{(lat, lon)}\n    test 759 nvectorBase.py:166: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 760 nvectorBase.py:172: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n    test 761 nvectorBase.py:190: L{PhiLam2Tuple}C{(phi, lam)}\n    test 762 nvectorBase.py:196: L{PhiLam3Tuple}C{(phi, lam, height)}\n    test 763 nvectorBase.py:202: L{PhiLam4Tuple}C{(phi, lam, height, datum)}\n    test 764 nvectorBase.py:233: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 765 nvectorBase.py:291: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 766 nvectorBase.py:353: L{Vector4Tuple}C{(x, y, z, h)}\n    test 767 nvectorBase.py:427: L{Vector4Tuple}C{(x, y, z, h)}\n    test 768 nvectorBase.py:496: L{Trilaterate5Tuple}C{(min, minPoint, max, maxPoint, n)}\n    test 769 nvectorBase.py:531: L{LatLon2Tuple}C{(lat, lon)}\n    test 770 nvectorBase.py:549: L{PhiLam2Tuple}C{(phi, lam)}\n    test 771 nvectorBase.py:589: L{Vector4Tuple}C{(x, y, z, h)}\n\n    testing osgr.py (pygeodesy.named, 26.01.14)\n    test 772 osgr.py:301: L{LatLonDatum3Tuple}C{(lat, lon, datum)}\n    test 773 osgr.py:522: L{EasNor2Tuple}C{(easting, northing)}\n    test 774 osgr.py:600: L{EasNor2Tuple}C{(easting, northing)}\n\n    testing points.py (pygeodesy.named, 26.01.14)\n    test 775 points.py:559: L{Shape2Tuple}C{(nrows, ncols)}\n    test 776 points.py:761: L{Point3Tuple}C{(x, y, ll)}\n    test 777 points.py:995: L{Bounds2Tuple}C{(latlonSW, latlonNE)}\n    test 778 points.py:997: L{Bounds4Tuple}C{(latS, lonW, latN, lonE)}\n    test 779 points.py:1037: L{LatLon2Tuple}C{(lat, lon)}\n    test 780 points.py:1117: L{LatLon2Tuple}C{(lat, lon)}\n    test 781 points.py:1485: L{NearestOn3Tuple}C{(closest, distance, angle)}\n    test 782 points.py:1487: L{NearestOn5Tuple}C{(lat, lon, distance, angle, height)}\n\n    testing props.py (pygeodesy.named, 26.01.14)\n\n    testing resections.py (pygeodesy.named, 26.01.14)\n    test 783 resections.py:229: L{Collins5Tuple}C{(pointP, pointH, a, b, c)}\n    test 784 resections.py:549: L{Survey3Tuple}C{(PA, PB, PC)}\n    test 785 resections.py:613: L{Tienstra7Tuple}C{(pointP, A, B, C, a, b, c)}\n    test 786 resections.py:733: L{TriAngle5Tuple}C{(radA, radB, radC, rIn, area)}\n    test 787 resections.py:864: L{TriSide2Tuple}C{(a, radA)}\n    test 788 resections.py:910: L{TriSide4Tuple}C{(a, b, radC, d)}\n    test 789 resections.py:956: L{Survey3Tuple}C{(PA, PB, PC)}\n\n    testing simplify.py (pygeodesy.named, 26.01.14)\n\n    testing solveBase.py (pygeodesy.named, 26.01.14)\n\n    testing sphericalBase.py (pygeodesy.named, 26.01.14)\n    test 790 sphericalBase.py:151: L{Bearing2Tuple}C{(initial, final)}\n    test 791 sphericalBase.py:579: L{Vector4Tuple}C{(x, y, z, h)}\n\n    testing sphericalNvector.py (pygeodesy.named, 26.01.14)\n    test 792 sphericalNvector.py:83: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 793 sphericalNvector.py:99: L{Vector4Tuple}C{(x, y, z, h)}\n    test 794 sphericalNvector.py:641: L{NearestOn3Tuple}C{(closest, distance, angle)}\n    test 795 sphericalNvector.py:677: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 796 sphericalNvector.py:692: L{Vector4Tuple}C{(x, y, z, h)}\n    test 797 sphericalNvector.py:731: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 798 sphericalNvector.py:748: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 799 sphericalNvector.py:882: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 800 sphericalNvector.py:913: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 801 sphericalNvector.py:1045: L{NearestOn3Tuple}C{(closest, distance, angle)}\n\n    testing sphericalTrigonometry.py (pygeodesy.named, 26.01.14)\n    test 802 sphericalTrigonometry.py:80: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 803 sphericalTrigonometry.py:622: L{NearestOn3Tuple}C{(closest, distance, angle)}\n    test 804 sphericalTrigonometry.py:653: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 805 sphericalTrigonometry.py:671: L{Triangle7Tuple}C{(A, a, B, b, C, c, area)}\n    test 806 sphericalTrigonometry.py:672: L{Triangle8Tuple}C{(A, a, B, b, C, c, D, E)}\n    test 807 sphericalTrigonometry.py:722: L{Trilaterate5Tuple}C{(min, minPoint, max, maxPoint, n)}\n    test 808 sphericalTrigonometry.py:1010: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 809 sphericalTrigonometry.py:1054: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 810 sphericalTrigonometry.py:1172: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 811 sphericalTrigonometry.py:1197: L{LatLon2Tuple}C{(lat, lon)}\n    test 812 sphericalTrigonometry.py:1228: L{NearestOn3Tuple}C{(closest, distance, angle)}\n    test 813 sphericalTrigonometry.py:1229: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 814 sphericalTrigonometry.py:1325: L{Triangle7Tuple}C{(A, a, B, b, C, c, area)}\n    test 815 sphericalTrigonometry.py:1330: L{Triangle8Tuple}C{(A, a, B, b, C, c, D, E)}\n    test 816 sphericalTrigonometry.py:1357: L{Triangle8Tuple}C{(A, a, B, b, C, c, D, E)}\n\n    testing streprs.py (pygeodesy.named, 26.01.14)\n\n    testing trf.py (pygeodesy.named, 26.01.14)\n    test 817 trf.py:472: L{Vector3Tuple}C{(x, y, z)}\n    test 818 trf.py:514: L{Vector3Tuple}C{(x, y, z)}\n\n    testing units.py (pygeodesy.named, 26.01.14)\n\n    testing unitsBase.py (pygeodesy.named, 26.01.14)\n\n    testing ups.py (pygeodesy.named, 26.01.14)\n    test 819 ups.py:147: L{EasNor2Tuple}C{(easting, northing)}\n    test 820 ups.py:209: L{LatLonDatum5Tuple}C{(lat, lon, datum, gamma, scale)}\n    test 821 ups.py:355: L{UtmUps5Tuple}C{(zone, hemipole, easting, northing, band)}\n    test 822 ups.py:402: L{UtmUps8Tuple}C{(zone, hemipole, easting, northing, band, datum, gamma, scale)}\n    test 823 ups.py:477: L{UtmUpsLatLon5Tuple}C{(zone, band, hemipole, lat, lon)}\n\n    testing utily.py (pygeodesy.named, 26.01.14)\n    test 824 utily.py:203: L{Circle4Tuple}C{(radius, height, lat, beta)}\n\n    testing utm.py (pygeodesy.named, 26.01.14)\n    test 825 utm.py:252: L{EasNor2Tuple}C{(easting, northing)}\n    test 826 utm.py:306: L{LatLonDatum5Tuple}C{(lat, lon, datum, gamma, scale)}\n    test 827 utm.py:512: L{UtmUps5Tuple}C{(zone, hemipole, easting, northing, band)}\n    test 828 utm.py:542: L{UtmUps8Tuple}C{(zone, hemipole, easting, northing, band, datum, gamma, scale)}\n    test 829 utm.py:721: L{UtmUpsLatLon5Tuple}C{(zone, band, hemipole, lat, lon)}\n\n    testing utmups.py (pygeodesy.named, 26.01.14)\n    test 830 utmups.py:89: L{UtmUps5Tuple}C{(zone, hemipole, easting, northing, band)}\n    test 831 utmups.py:129: L{UtmUps8Tuple}C{(zone, hemipole, easting, northing, band, datum, gamma, scale)}\n    test 832 utmups.py:278: L{UtmUpsLatLon5Tuple}C{(zone, band, hemipole, lat, lon)}\n\n    testing utmupsBase.py (pygeodesy.named, 26.01.14)\n    test 833 utmupsBase.py:158: L{EasNor2Tuple}C{(easting, northing)}\n    test 834 utmupsBase.py:168: L{EasNor2Tuple}C{(easting, northing)}\n    test 835 utmupsBase.py:366: L{EasNor2Tuple}C{(easting, northing)}\n\n    testing vector2d.py (pygeodesy.named, 26.01.14)\n    test 836 vector2d.py:148: L{Circin6Tuple}C{(radius, center, deltas, cA, cB, cC)}\n    test 837 vector2d.py:212: L{Circum3Tuple}C{(radius, center, deltas)}\n    test 838 vector2d.py:262: L{Circum4Tuple}C{(radius, center, rank, residuals)}\n    test 839 vector2d.py:338: L{Meeus2Tuple}C{(radius, Type)}\n    test 840 vector2d.py:513: L{Radii11Tuple}C{(rA, rB, rC, cR, rIn, riS, roS, a, b, c, s)}\n    test 841 vector2d.py:590: L{Soddy4Tuple}C{(radius, center, deltas, outer)}\n    test 842 vector2d.py:623: L{Triaxum5Tuple}C{(a, b, c, rank, residuals)}\n    test 843 vector2d.py:705: L{Vector2Tuple}C{(x, y)}\n\n    testing vector3d.py (pygeodesy.named, 26.01.14)\n    test 844 vector3d.py:75: L{Circin6Tuple}C{(radius, center, deltas, cA, cB, cC)}\n    test 845 vector3d.py:109: L{Circum3Tuple}C{(radius, center, deltas)}\n    test 846 vector3d.py:135: L{Circum4Tuple}C{(radius, center, rank, residuals)}\n    test 847 vector3d.py:182: L{Meeus2Tuple}C{(radius, Type)}\n    test 848 vector3d.py:228: L{NearestOn6Tuple}C{(closest, distance, fi, j, start, end)}\n    test 849 vector3d.py:264: L{Radii11Tuple}C{(rA, rB, rC, cR, rIn, riS, roS, a, b, c, s)}\n    test 850 vector3d.py:291: L{Soddy4Tuple}C{(radius, center, deltas, outer)}\n    test 851 vector3d.py:516: L{Intersection3Tuple}C{(point, outside1, outside2)}\n    test 852 vector3d.py:742: L{NearestOn6Tuple}C{(closest, distance, fi, j, start, end)}\n    test 853 vector3d.py:813: L{Vector3Tuple}C{(x, y, z)}\n    test 854 vector3d.py:837: L{Vector3Tuple}C{(x, y, z)}\n\n    testing vector3dBase.py (pygeodesy.named, 26.01.14)\n    test 855 vector3dBase.py:1039: L{PhiLam2Tuple}C{(phi, lam)}\n    test 856 vector3dBase.py:1047: L{LatLon2Tuple}C{(lat, lon)}\n    test 857 vector3dBase.py:1113: L{Vector3Tuple}C{(x, y, z)}\n\n    testing webmercator.py (pygeodesy.named, 26.01.14)\n    test 858 webmercator.py:121: L{LatLon2Tuple}C{(lat, lon)}\n    test 859 webmercator.py:179: L{LatLon2Tuple}C{(lat, lon)}\n    test 860 webmercator.py:288: L{EasNorRadius3Tuple}C{(easting, northing, radius)}\n    test 861 webmercator.py:324: L{EasNorRadius3Tuple}C{(easting, northing, radius)}\n\n    testing wgrs.py (pygeodesy.named, 26.01.14)\n    test 862 wgrs.py:221: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 863 wgrs.py:239: L{LatLonPrec3Tuple}C{(lat, lon, precision)}\n    test 864 wgrs.py:292: L{LatLonPrec5Tuple}C{(lat, lon, precision, height, radius)}\n\n    testing auxilats._CX_4.py (pygeodesy.named, 26.01.14)\n\n    testing auxilats._CX_6.py (pygeodesy.named, 26.01.14)\n\n    testing auxilats._CX_8.py (pygeodesy.named, 26.01.14)\n\n    testing auxilats._CX_Rs.py (pygeodesy.named, 26.01.14)\n\n    testing auxilats.__init__.py (pygeodesy.named, 26.01.14)\n\n    testing auxilats.__main__.py (pygeodesy.named, 26.01.14)\n\n    testing auxilats.auxAngle.py (pygeodesy.named, 26.01.14)\n\n    testing auxilats.auxDLat.py (pygeodesy.named, 26.01.14)\n\n    testing auxilats.auxDST.py (pygeodesy.named, 26.01.14)\n\n    testing auxilats.auxLat.py (pygeodesy.named, 26.01.14)\n\n    testing auxilats.auxily.py (pygeodesy.named, 26.01.14)\n\n    testing deprecated.__init__.py (pygeodesy.named, 26.01.14)\n\n    testing deprecated.bases.py (pygeodesy.named, 26.01.14)\n\n    testing deprecated.classes.py (pygeodesy.named, 26.01.14)\n    test 865 deprecated.classes.py:82: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 866 deprecated.classes.py:96: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n\n    testing deprecated.consterns.py (pygeodesy.named, 26.01.14)\n\n    testing deprecated.datum.py (pygeodesy.named, 26.01.14)\n\n    testing deprecated.functions.py (pygeodesy.named, 26.01.14)\n    test 867 deprecated.functions.py:56: L{ClipCS3Tuple}C{(start, end, index)}  FAILED, KNOWN, expected DEPRECATED\n    test 868 deprecated.functions.py:390: L{TriAngle4Tuple}C{(radA, radB, radC, rIn)}  FAILED, KNOWN, expected DEPRECATED\n\n    testing deprecated.nvector.py (pygeodesy.named, 26.01.14)\n\n    testing deprecated.rhumbBase.py (pygeodesy.named, 26.01.14)\n\n    testing deprecated.rhumbaux.py (pygeodesy.named, 26.01.14)\n\n    testing deprecated.rhumbsolve.py (pygeodesy.named, 26.01.14)\n\n    testing deprecated.rhumbx.py (pygeodesy.named, 26.01.14)\n\n    testing geodesicx._C4_24.py (pygeodesy.named, 26.01.14)\n\n    testing geodesicx._C4_27.py (pygeodesy.named, 26.01.14)\n\n    testing geodesicx._C4_30.py (pygeodesy.named, 26.01.14)\n\n    testing geodesicx.__init__.py (pygeodesy.named, 26.01.14)\n\n    testing geodesicx.__main__.py (pygeodesy.named, 26.01.14)\n\n    testing geodesicx.gx.py (pygeodesy.named, 26.01.14)\n    test 869 geodesicx.gx.py:357: L{Destination3Tuple}C{(lat, lon, final)}\n    test 870 geodesicx.gx.py:710: L{Direct9Tuple}C{(a12, lat2, lon2, azi2, s12, m12, M12, M21, S12)}\n    test 871 geodesicx.gx.py:719: L{Inverse10Tuple}C{(a12, s12, salp1, calp1, salp2, calp2, m12, M12, M21, S12)}\n    test 872 geodesicx.gx.py:774: L{Distance3Tuple}C{(distance, initial, final)}\n\n    testing geodesicx.gxarea.py (pygeodesy.named, 26.01.14)\n    test 873 geodesicx.gxarea.py:161: L{Area3Tuple}C{(number, perimeter, area)}\n    test 874 geodesicx.gxarea.py:323: L{Area3Tuple}C{(number, perimeter, area)}\n    test 875 geodesicx.gxarea.py:350: L{Area3Tuple}C{(number, perimeter, area)}\n\n    testing geodesicx.gxbases.py (pygeodesy.named, 26.01.14)\n\n    testing geodesicx.gxline.py (pygeodesy.named, 26.01.14)\n    test 876 geodesicx.gxline.py:464: L{Direct9Tuple}C{(a12, lat2, lon2, azi2, s12, m12, M12, M21, S12)}\n\n    testing rhumb.__init__.py (pygeodesy.named, 26.01.14)\n\n    testing rhumb.aux_.py (pygeodesy.named, 26.01.14)\n\n    testing rhumb.bases.py (pygeodesy.named, 26.01.14)\n    test 877 rhumb.bases.py:589: L{Distance2Tuple}C{(distance, initial)}\n    test 878 rhumb.bases.py:782: L{LatLon2Tuple}C{(lat, lon)}\n\n    testing rhumb.ekx.py (pygeodesy.named, 26.01.14)\n    test 879 rhumb.ekx.py:201: L{RhumbOrder2Tuple}C{(RAorder, TMorder)}  FAILED, KNOWN, expected DEPRECATED\n\n    testing rhumb.solve.py (pygeodesy.named, 26.01.14)\n    test 880 rhumb.solve.py:120: L{Destination3Tuple}C{(lat, lon, final)}\n    test 881 rhumb.solve.py:184: L{Distance3Tuple}C{(distance, initial, final)}\n\n    testing triaxials.__init__.py (pygeodesy.named, 26.01.14)\n\n    testing triaxials.bases.py (pygeodesy.named, 26.01.14)\n    test 882 triaxials.bases.py:379: L{Ellipse5Tuple}C{(a, b, height, lat, beta)}\n    test 883 triaxials.bases.py:508: L{Vector4Tuple}C{(x, y, z, h)}\n\n    testing triaxials.conformal3.py (pygeodesy.named, 26.01.14)\n    test 884 triaxials.conformal3.py:174: L{Conformal5Tuple}C{(x, y, z, scale, llk)}\n    test 885 triaxials.conformal3.py:190: L{BetOmgGam5Tuple}C{(bet, omg, gam, scale, llk)}\n    test 886 triaxials.conformal3.py:216: L{Cartesian5Tuple}C{(x, y, z, h, llk)}\n    test 887 triaxials.conformal3.py:248: L{BetOmgGam5Tuple}C{(bet, omg, gam, scale, llk)}\n    test 888 triaxials.conformal3.py:269: L{BetOmgGam5Tuple}C{(bet, omg, gam, scale, llk)}\n    test 889 triaxials.conformal3.py:290: L{BetOmgGam5Tuple}C{(bet, omg, gam, scale, llk)}\n\n    testing triaxials.triaxial3.py (pygeodesy.named, 26.01.14)\n    test 890 triaxials.triaxial3.py:175: L{Cartesian5Tuple}C{(x, y, z, h, llk)}\n    test 891 triaxials.triaxial3.py:203: L{Cartesian5Tuple}C{(x, y, z, h, llk)}\n    test 892 triaxials.triaxial3.py:277: L{Cartesian5Tuple}C{(x, y, z, h, llk)}\n    test 893 triaxials.triaxial3.py:303: L{Cartesian5Tuple}C{(x, y, z, h, llk)}\n    test 894 triaxials.triaxial3.py:323: L{Cartesian5Tuple}C{(x, y, z, h, llk)}\n    test 895 triaxials.triaxial3.py:347: L{Cartesian5Tuple}C{(x, y, z, h, llk)}\n    test 896 triaxials.triaxial3.py:421: L{Cartesian5Tuple}C{(x, y, z, h, llk)}\n    test 897 triaxials.triaxial3.py:458: L{BetOmgAlp5Tuple}C{(bet, omg, alp, h, llk)}\n    test 898 triaxials.triaxial3.py:497: L{BetOmgAlp5Tuple}C{(bet, omg, alp, h, llk)}\n    test 899 triaxials.triaxial3.py:580: L{Cartesian5Tuple}C{(x, y, z, h, llk)}\n    test 900 triaxials.triaxial3.py:607: L{BetOmgAlp5Tuple}C{(bet, omg, alp, h, llk)}\n    test 901 triaxials.triaxial3.py:608: L{PhiLamZet5Tuple}C{(phi, lam, zet, h, llk)}\n    test 902 triaxials.triaxial3.py:630: L{PhiLamZet5Tuple}C{(phi, lam, zet, h, llk)}\n    test 903 triaxials.triaxial3.py:649: L{PhiLamZet5Tuple}C{(phi, lam, zet, h, llk)}\n    test 904 triaxials.triaxial3.py:683: L{Cartesian5Tuple}C{(x, y, z, h, llk)}\n    test 905 triaxials.triaxial3.py:738: L{BetOmgAlp5Tuple}C{(bet, omg, alp, h, llk)}\n    test 906 triaxials.triaxial3.py:739: L{PhiLamZet5Tuple}C{(phi, lam, zet, h, llk)}\n    test 907 triaxials.triaxial3.py:767: L{Cartesian5Tuple}C{(x, y, z, h, llk)}\n\n    testing triaxials.triaxial5.py (pygeodesy.named, 26.01.14)\n    test 908 triaxials.triaxial5.py:107: L{BetaOmega2Tuple}C{(beta, omega)}\n    test 909 triaxials.triaxial5.py:119: L{BetaOmega2Tuple}C{(beta, omega)}\n    test 910 triaxials.triaxial5.py:140: L{BetaOmega3Tuple}C{(beta, omega, height)}\n    test 911 triaxials.triaxial5.py:152: L{BetaOmega3Tuple}C{(beta, omega, height)}\n    test 912 triaxials.triaxial5.py:177: L{Conformal2Tuple}C{(x, y)}\n    test 913 triaxials.triaxial5.py:188: L{Conformal2Tuple}C{(x, y)}\n    test 914 triaxials.triaxial5.py:250: L{Vector3Tuple}C{(x, y, z)}\n    test 915 triaxials.triaxial5.py:286: L{Vector3Tuple}C{(x, y, z)}\n    test 916 triaxials.triaxial5.py:311: L{Vector4Tuple}C{(x, y, z, h)}\n    test 917 triaxials.triaxial5.py:328: L{Vector3Tuple}C{(x, y, z)}\n    test 918 triaxials.triaxial5.py:348: L{Vector3Tuple}C{(x, y, z)}\n    test 919 triaxials.triaxial5.py:388: L{BetaOmega3Tuple}C{(beta, omega, height)}\n    test 920 triaxials.triaxial5.py:416: L{Vector3Tuple}C{(x, y, z)}\n    test 921 triaxials.triaxial5.py:444: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 922 triaxials.triaxial5.py:572: L{Vector2Tuple}C{(x, y)}\n    test 923 triaxials.triaxial5.py:583: L{Vector2Tuple}C{(x, y)}\n    test 924 triaxials.triaxial5.py:592: L{Conformal2Tuple}C{(x, y)}\n    test 925 triaxials.triaxial5.py:606: L{Conformal2Tuple}C{(x, y)}\n    test 926 triaxials.triaxial5.py:621: L{Conformal2Tuple}C{(x, y)}\n    test 927 triaxials.triaxial5.py:829: L{Vector4Tuple}C{(x, y, z, h)}\n    test 928 triaxials.triaxial5.py:872: L{Vector4Tuple}C{(x, y, z, h)}\n\n    testing xtend (pygeodesy.namedTuples, 26.03.12)\n    test 929 LatLon2Tuple(lat=0, lon=1): (0, 1, 2)\n    test 930 LatLon2Tuple(lat=0, lon=1): <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 931 LatLon2Tuple(lat=0, lon=1): (0, 1, 2, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 932 LatLon2Tuple(lat=0, lon=1): <class 'pygeodesy.namedTuples.LatLon4Tuple'>\n    test 933 LatLon3Tuple(lat=0, lon=1, height=2): (0, 1, 2, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 934 LatLon3Tuple(lat=0, lon=1, height=2): <class 'pygeodesy.namedTuples.LatLon4Tuple'>\n    test 935 PhiLam2Tuple(phi=0, lam=1): (0, 1, 2)\n    test 936 PhiLam2Tuple(phi=0, lam=1): <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 937 Vector3Tuple(x=0, y=1, z=2): (0, 1, 2, 4)\n    test 938 Vector3Tuple(x=0, y=1, z=2): <class 'pygeodesy.namedTuples.Vector4Tuple'>\n\n    testing bases (pygeodesy.named, 26.01.14)\n    test 939 nd.dict: test(1=1, 2=2)\n    test 940 nd.name: test\n    test 941 nd.dict: test(1=1, 2=2)\n    test 942 nd.name: test\n    test 943 nd.kwds: test(one=1, two=2)\n    test 944 nd.name: test\n    test 945 nd.dict: test(1=1, 2=2)\n    test 946 nd.name: test\n    test 947 nd.list: test(1=1, 2=2)\n    test 948 nd.name: test\n    test 949 nd.updated: test(1=1, 2=2, name='kwds')\n    test 950 nd.name: test\n\n    testing coverage (pygeodesy.named, 26.01.14)\n{E: 'E', N: 'N', NE: 'NE', NW: 'NW', S: 'S', SE: 'SE', SW: 'SW', W: 'W'}\n    test 951 nd.name: name\n    test 952 nd.named: name\n    test 953 nd.named: Neighbors8Dict\n    test 954 nd.name: test\n    test 955 nd.test: test\n# imported pygeodesy.basics into errors.py line 443\n    test 956 nd.test: None\n    test 957 nd.classnaming: False\n    test 958 nd.classname: Neighbors8Dict\n    test 959 nd.named2: Neighbors8Dict 'test'\n    test 960 nd.classnaming: True\n    test 961 nd.classname: geohash.Neighbors8Dict\n    test 962 nd.named2: geohash.Neighbors8Dict 'test'\n    test 963 delattr: None\n    test 964 classnaming: False\n    test 965 classnaming: True\n\n    testing unregister (pygeodesy.named, 26.01.14)\n# lazily imported pygeodesy.Conics from .lcc by testNamed.py line 198\n# lazily imported pygeodesy.Ellipsoid from .ellipsoids by testNamed.py line 198\n# lazily imported pygeodesy.Ellipsoids from .ellipsoids by testNamed.py line 198\n# lazily imported pygeodesy.RefFrames from .trf by testNamed.py line 198\n# lazily imported pygeodesy.Transforms from .datums by testNamed.py line 198\n    test 966 Conics: 1\n    test 967 Conics: 8\n    test 968 Conics.Be08Lb.unregister: None\n    test 969 Conics.Be72Lb.unregister: None\n    test 970 Conics.Fr93Lb.unregister: None\n    test 971 Conics.MaNLb.unregister: None\n    test 972 Conics.MxLb.unregister: None\n    test 973 Conics.PyT_Lb.unregister: None\n    test 974 Conics.USA_Lb.unregister: None\n    test 975 Conics.WRF_Lb.unregister: None\n    test 976 Conics: 0\n\n    test 977 Datums: 6\n    test 978 Datums: 18\n    test 979 Datums.unregister(BD72): None\n    test 980 Datums.unregister(DHDN): None\n    test 981 Datums.unregister(ED50): None\n    test 982 Datums.unregister(GDA2020): None\n    test 983 Datums.unregister(GRS80): None\n    test 984 Datums.unregister(Irl1975): None\n    test 985 Datums.unregister(Krassovski1940): None\n    test 986 Datums.unregister(Krassowsky1940): None\n    test 987 Datums.unregister(MGI): None\n    test 988 Datums.unregister(NAD27): None\n    test 989 Datums.unregister(NAD83): None\n    test 990 Datums.unregister(NTF): None\n    test 991 Datums.unregister(OSGB36): None\n    test 992 Datums.unregister(Potsdam): None\n    test 993 Datums.unregister(Sphere): None\n    test 994 Datums.unregister(TokyoJapan): None\n    test 995 Datums.unregister(WGS72): None\n    test 996 Datums.unregister(WGS84): None\n    test 997 Datums: 0\n\n    test 998 RefFrames: 32  FAILED, KNOWN, expected 0\n    test 999 RefFrames: 36\n    test 1000 RefFrames.ETRF2000.unregister: None\n    test 1001 RefFrames.ETRF2005.unregister: None\n    test 1002 RefFrames.ETRF2008.unregister: None\n    test 1003 RefFrames.ETRF2014.unregister: None\n    test 1004 RefFrames.ETRF2020.unregister: None\n    test 1005 RefFrames.ETRF88.unregister: None\n    test 1006 RefFrames.ETRF89.unregister: None\n    test 1007 RefFrames.ETRF90.unregister: None\n    test 1008 RefFrames.ETRF91.unregister: None\n    test 1009 RefFrames.ETRF92.unregister: None\n    test 1010 RefFrames.ETRF93.unregister: None\n    test 1011 RefFrames.ETRF94.unregister: None\n    test 1012 RefFrames.ETRF96.unregister: None\n    test 1013 RefFrames.ETRF97.unregister: None\n    test 1014 RefFrames.GDA2020.unregister: None\n    test 1015 RefFrames.GDA94.unregister: None\n    test 1016 RefFrames.ITRF2000.unregister: None\n    test 1017 RefFrames.ITRF2005.unregister: None\n    test 1018 RefFrames.ITRF2008.unregister: None\n    test 1019 RefFrames.ITRF2014.unregister: None\n    test 1020 RefFrames.ITRF2020.unregister: None\n    test 1021 RefFrames.ITRF88.unregister: None\n    test 1022 RefFrames.ITRF89.unregister: None\n    test 1023 RefFrames.ITRF90.unregister: None\n    test 1024 RefFrames.ITRF91.unregister: None\n    test 1025 RefFrames.ITRF92.unregister: None\n    test 1026 RefFrames.ITRF93.unregister: None\n    test 1027 RefFrames.ITRF94.unregister: None\n    test 1028 RefFrames.ITRF96.unregister: None\n    test 1029 RefFrames.ITRF97.unregister: None\n    test 1030 RefFrames.NAD83.unregister: None\n    test 1031 RefFrames.NAD83cors96.unregister: None\n    test 1032 RefFrames.WGS84.unregister: None\n    test 1033 RefFrames.WGS84g1150.unregister: None\n    test 1034 RefFrames.WGS84g1674.unregister: None\n    test 1035 RefFrames.WGS84g1762.unregister: None\n    test 1036 RefFrames: 0\n\n    test 1037 Ellipsoids: 12\n    test 1038 Ellipsoids: 49\n    test 1039 Ellipsoids.Airy1830.unregister: None\n    test 1040 Ellipsoids.AiryModified.unregister: None\n    test 1041 Ellipsoids.ATS1977.unregister: None\n    test 1042 Ellipsoids.Australia1966.unregister: None\n    test 1043 Ellipsoids.Bessel1841.unregister: None\n    test 1044 Ellipsoids.BesselModified.unregister: None\n    test 1045 Ellipsoids.CGCS2000.unregister: None\n    test 1046 Ellipsoids.Clarke1866.unregister: None\n    test 1047 Ellipsoids.Clarke1880.unregister: None\n    test 1048 Ellipsoids.Clarke1880IGN.unregister: None\n    test 1049 Ellipsoids.Clarke1880Mod.unregister: None\n    test 1050 Ellipsoids.CPM1799.unregister: None\n    test 1051 Ellipsoids.Delambre1810.unregister: None\n    test 1052 Ellipsoids.Engelis1985.unregister: None\n    test 1053 Ellipsoids.Everest1969.unregister: None\n    test 1054 Ellipsoids.Everest1975.unregister: None\n    test 1055 Ellipsoids.Fisher1968.unregister: None\n    test 1056 Ellipsoids.GEM10C.unregister: None\n    test 1057 Ellipsoids.GPES.unregister: None\n    test 1058 Ellipsoids.GRS67.unregister: None\n    test 1059 Ellipsoids.GRS80.unregister: None\n    test 1060 Ellipsoids.Helmert1906.unregister: None\n    test 1061 Ellipsoids.IAU76.unregister: None\n    test 1062 Ellipsoids.IERS1989.unregister: None\n    test 1063 Ellipsoids.IERS1992TOPEX.unregister: None\n    test 1064 Ellipsoids.IERS2003.unregister: None\n    test 1065 Ellipsoids.Intl1924.unregister: None\n    test 1066 Ellipsoids.Intl1967.unregister: None\n    test 1067 Ellipsoids.Krassovski1940.unregister: None\n    test 1068 Ellipsoids.Krassowsky1940.unregister: None\n    test 1069 Ellipsoids.Maupertuis1738.unregister: None\n    test 1070 Ellipsoids.Mercury1960.unregister: None\n    test 1071 Ellipsoids.Mercury1968Mod.unregister: None\n    test 1072 Ellipsoids.NWL1965.unregister: None\n    test 1073 Ellipsoids.OSU86F.unregister: None\n    test 1074 Ellipsoids.OSU91A.unregister: None\n    test 1075 Ellipsoids.Plessis1817.unregister: None\n    test 1076 Ellipsoids.PZ90.unregister: None\n    test 1077 Ellipsoids.SGS85.unregister: None\n    test 1078 Ellipsoids.SoAmerican1969.unregister: None\n    test 1079 Ellipsoids.Sphere.unregister: None\n    test 1080 Ellipsoids.SphereAuthalic.unregister: None\n    test 1081 Ellipsoids.SpherePopular.unregister: None\n    test 1082 Ellipsoids.Struve1860.unregister: None\n    test 1083 Ellipsoids.WGS60.unregister: None\n    test 1084 Ellipsoids.WGS66.unregister: None\n    test 1085 Ellipsoids.WGS72.unregister: None\n    test 1086 Ellipsoids.WGS84.unregister: None\n    test 1087 Ellipsoids.WGS84_NGS.unregister: None\n    test 1088 Ellipsoids: 0\n\n    test 1089 Transforms: 16\n    test 1090 Transforms: 20\n    test 1091 Transforms.BD72.unregister: None\n    test 1092 Transforms.Bessel1841.unregister: None\n    test 1093 Transforms.Clarke1866.unregister: None\n    test 1094 Transforms.DHDN.unregister: None\n    test 1095 Transforms.DHDNE.unregister: None\n    test 1096 Transforms.DHDNW.unregister: None\n    test 1097 Transforms.ED50.unregister: None\n    test 1098 Transforms.Identity.unregister: None\n    test 1099 Transforms.Irl1965.unregister: None\n    test 1100 Transforms.Irl1975.unregister: None\n    test 1101 Transforms.Krassovski1940.unregister: None\n    test 1102 Transforms.Krassowsky1940.unregister: None\n    test 1103 Transforms.MGI.unregister: None\n    test 1104 Transforms.NAD27.unregister: None\n    test 1105 Transforms.NAD83.unregister: None\n    test 1106 Transforms.NTF.unregister: None\n    test 1107 Transforms.OSGB36.unregister: None\n    test 1108 Transforms.TokyoJapan.unregister: None\n    test 1109 Transforms.WGS72.unregister: None\n    test 1110 Transforms.WGS84.unregister: None\n    test 1111 Transforms: 0\n\n    test 1112 nameof: KsOrder\n\n    10 of 1112 testNamed.py tests (0.9%) FAILED, ALL KNOWN (pygeodesy 26.3.26 PyPy 7.3.17 Python 3.10.14 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 166.372 ms\nrunning /opt/local/bin/p....y3.10 -W default ~/PyGeodesy/test/testNamedTuples.py\n# lazily imported pygeodesy.basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.DeprecationWarnings from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isint from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isLazy from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.issubclassof from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.iterNumpy2over from .iters by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.LazyImportError from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.karney by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.NN from .interns by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.normDMS from .dms by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.pairs from .streprs by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.printf from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.property_RO from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.typename from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.FIx from .units by testNamedTuples.py line 10\n\n    testing testNamedTuples.py 25.12.06 isLazy=3\n    test 1 pygeodesy.albers: Albers7Tuple(x=0.5, y=0.5, lat=0.5, lon=0.5, gamma=0.5, scale=0.5, datum=0.5)\n    test 2 pygeodesy.albers: Albers7Tuple(x=Meter, y=Meter, lat=Lat, lon=Lon, gamma=Bearing, scale=_Pass, datum=_Pass)\n    test 3 pygeodesy.albers.Albers7Tuple.x: 0.5\n    test 4 pygeodesy.albers.Albers7Tuple.y: 0.5\n    test 5 pygeodesy.albers.Albers7Tuple.lat: 0.5\n    test 6 pygeodesy.albers.Albers7Tuple.lon: 0.5\n    test 7 pygeodesy.albers.Albers7Tuple.gamma: 0.5\n    test 8 pygeodesy.albers.Albers7Tuple.scale: 0.5\n    test 9 pygeodesy.albers.Albers7Tuple.datum: 0.5\n    test 10 pygeodesy.albers.Albers7Tuple._validated: True\n    test 11 pygeodesy.albers.Albers7Tuple._validated: True\n    test 12 pygeodesy.angles: _Ang3Tuple(Ang=Ang, Ang=Ang, Ang=_Pass)\n    test 13 pygeodesy.angles._Ang3Tuple.Ang: 0.5\n    test 14 pygeodesy.angles._Ang3Tuple.Ang: 0.5\n    test 15 pygeodesy.angles._Ang3Tuple.Ang: 0.5\n    test 16 pygeodesy.angles._Ang3Tuple._validated: True\n    test 17 pygeodesy.angles._Ang3Tuple._validated: True\n# lazily imported pygeodesy.azimuthal by bases.py line 199\n    test 18 pygeodesy.azimuthal: Azimuthal7Tuple(x=0.5, y=0.5, lat=0.5, lon=0.5, azimuth=0.5, scale=0.5, datum=0.5)\n    test 19 pygeodesy.azimuthal: Azimuthal7Tuple(x=Easting, y=Northing, lat=Lat_, lon=Lon_, azimuth=Azimuth, scale=Scalar, datum=_Pass)\n    test 20 pygeodesy.azimuthal.Azimuthal7Tuple.x: 0.5\n    test 21 pygeodesy.azimuthal.Azimuthal7Tuple.y: 0.5\n    test 22 pygeodesy.azimuthal.Azimuthal7Tuple.lat: 0.5\n    test 23 pygeodesy.azimuthal.Azimuthal7Tuple.lon: 0.5\n    test 24 pygeodesy.azimuthal.Azimuthal7Tuple.azimuth: 0.5\n    test 25 pygeodesy.azimuthal.Azimuthal7Tuple.scale: 0.5\n    test 26 pygeodesy.azimuthal.Azimuthal7Tuple.datum: 0.5\n    test 27 pygeodesy.azimuthal.Azimuthal7Tuple._validated: True\n    test 28 pygeodesy.azimuthal.Azimuthal7Tuple._validated: True\n# lazily imported pygeodesy.booleans by bases.py line 199\n    test 29 pygeodesy.cartesianBase: RadiusThetaPhi3Tuple(r=0.5, theta=0.5, phi=0.5)\n    test 30 pygeodesy.cartesianBase: RadiusThetaPhi3Tuple(r=Meter, theta=_Pass, phi=_Pass)\n    test 31 pygeodesy.cartesianBase.RadiusThetaPhi3Tuple.r: 0.5\n    test 32 pygeodesy.cartesianBase.RadiusThetaPhi3Tuple.theta: 0.5\n    test 33 pygeodesy.cartesianBase.RadiusThetaPhi3Tuple.phi: 0.5\n    test 34 pygeodesy.cartesianBase.RadiusThetaPhi3Tuple._validated: True\n    test 35 pygeodesy.cartesianBase.RadiusThetaPhi3Tuple._validated: True\n# lazily imported pygeodesy.clipy by bases.py line 199\n    test 36 pygeodesy.clipy: ClipCS4Tuple(start=0.5, end=0.5, i=0, j=0)\n    test 37 pygeodesy.clipy: ClipCS4Tuple(start=_Pass, end=_Pass, i=Number_, j=Number_)\n    test 38 pygeodesy.clipy.ClipCS4Tuple.start: 0.5\n    test 39 pygeodesy.clipy.ClipCS4Tuple.end: 0.5\n    test 40 pygeodesy.clipy.ClipCS4Tuple.i: 0.5\n    test 41 pygeodesy.clipy.ClipCS4Tuple.j: 0.5\n    test 42 pygeodesy.clipy.ClipCS4Tuple._validated: True\n    test 43 pygeodesy.clipy.ClipCS4Tuple._validated: True\n    test 44 pygeodesy.clipy: ClipFHP4Tuple(lat=0.5, lon=0.5, height=0.5, clipid=0)\n    test 45 pygeodesy.clipy: ClipFHP4Tuple(lat=Lat, lon=Lon, height=_Pass, clipid=Number_)\n    test 46 pygeodesy.clipy.ClipFHP4Tuple.lat: 0.5\n    test 47 pygeodesy.clipy.ClipFHP4Tuple.lon: 0.5\n    test 48 pygeodesy.clipy.ClipFHP4Tuple.height: 0.5\n    test 49 pygeodesy.clipy.ClipFHP4Tuple.clipid: 0.5\n    test 50 pygeodesy.clipy.ClipFHP4Tuple._validated: True\n    test 51 pygeodesy.clipy.ClipFHP4Tuple._validated: True\n    test 52 pygeodesy.clipy: ClipGH4Tuple(lat=0.5, lon=0.5, height=0.5, clipid=0)\n    test 53 pygeodesy.clipy: ClipGH4Tuple(lat=Lat, lon=Lon, height=_Pass, clipid=Number_)\n    test 54 pygeodesy.clipy.ClipGH4Tuple.lat: 0.5\n    test 55 pygeodesy.clipy.ClipGH4Tuple.lon: 0.5\n    test 56 pygeodesy.clipy.ClipGH4Tuple.height: 0.5\n    test 57 pygeodesy.clipy.ClipGH4Tuple.clipid: 0.5\n    test 58 pygeodesy.clipy.ClipGH4Tuple._validated: True\n    test 59 pygeodesy.clipy.ClipGH4Tuple._validated: True\n    test 60 pygeodesy.clipy: ClipLB6Tuple(start=0.5, end=0.5, i=0, fi=0.5, fj=0.5, j=0)\n    test 61 pygeodesy.clipy: ClipLB6Tuple(start=_Pass, end=_Pass, i=Number_, fi=_Pass, fj=_Pass, j=Number_)\n    test 62 pygeodesy.clipy.ClipLB6Tuple.start: 0.5\n    test 63 pygeodesy.clipy.ClipLB6Tuple.end: 0.5\n    test 64 pygeodesy.clipy.ClipLB6Tuple.i: 0.5\n    test 65 pygeodesy.clipy.ClipLB6Tuple.fi: 0.5\n    test 66 pygeodesy.clipy.ClipLB6Tuple.fj: 0.5\n    test 67 pygeodesy.clipy.ClipLB6Tuple.j: 0.5\n    test 68 pygeodesy.clipy.ClipLB6Tuple._validated: True\n    test 69 pygeodesy.clipy.ClipLB6Tuple._validated: True\n    test 70 pygeodesy.clipy: ClipSH3Tuple(start=0.5, end=0.5, original=True)\n    test 71 pygeodesy.clipy: ClipSH3Tuple(start=_Pass, end=_Pass, original=Bool)\n    test 72 pygeodesy.clipy.ClipSH3Tuple.start: 0.5\n    test 73 pygeodesy.clipy.ClipSH3Tuple.end: 0.5\n    test 74 pygeodesy.clipy.ClipSH3Tuple.original: 0.5\n    test 75 pygeodesy.clipy.ClipSH3Tuple._validated: True\n    test 76 pygeodesy.clipy.ClipSH3Tuple._validated: True\n# lazily imported pygeodesy.css by bases.py line 199\n    test 77 pygeodesy.css: EasNorAziRk4Tuple(easting=0.5, northing=0.5, azimuth=0.5, reciprocal=0.5)\n    test 78 pygeodesy.css: EasNorAziRk4Tuple(easting=Easting, northing=Northing, azimuth=Azimuth, reciprocal=Scalar)\n    test 79 pygeodesy.css.EasNorAziRk4Tuple.easting: 0.5\n    test 80 pygeodesy.css.EasNorAziRk4Tuple.northing: 0.5\n    test 81 pygeodesy.css.EasNorAziRk4Tuple.azimuth: 0.5\n    test 82 pygeodesy.css.EasNorAziRk4Tuple.reciprocal: 0.5\n    test 83 pygeodesy.css.EasNorAziRk4Tuple._validated: True\n    test 84 pygeodesy.css.EasNorAziRk4Tuple._validated: True\n    test 85 pygeodesy.css: EasNorAziRkEqu6Tuple(easting=0.5, northing=0.5, azimuth=0.5, reciprocal=0.5, equatorarc=0.5, equatorazimuth=0.5)\n    test 86 pygeodesy.css: EasNorAziRkEqu6Tuple(easting=Easting, northing=Northing, azimuth=Azimuth, reciprocal=Scalar, equatorarc=Degrees, equatorazimuth=Azimuth)\n    test 87 pygeodesy.css.EasNorAziRkEqu6Tuple.easting: 0.5\n    test 88 pygeodesy.css.EasNorAziRkEqu6Tuple.northing: 0.5\n    test 89 pygeodesy.css.EasNorAziRkEqu6Tuple.azimuth: 0.5\n    test 90 pygeodesy.css.EasNorAziRkEqu6Tuple.reciprocal: 0.5\n    test 91 pygeodesy.css.EasNorAziRkEqu6Tuple.equatorarc: 0.5\n    test 92 pygeodesy.css.EasNorAziRkEqu6Tuple.equatorazimuth: 0.5\n    test 93 pygeodesy.css.EasNorAziRkEqu6Tuple._validated: True\n    test 94 pygeodesy.css.EasNorAziRkEqu6Tuple._validated: True\n    test 95 pygeodesy.css: LatLonAziRk4Tuple(lat=0.5, lon=0.5, azimuth=0.5, reciprocal=0.5)\n    test 96 pygeodesy.css: LatLonAziRk4Tuple(lat=Lat_, lon=Lon_, azimuth=Azimuth, reciprocal=Scalar)\n    test 97 pygeodesy.css.LatLonAziRk4Tuple.lat: 0.5\n    test 98 pygeodesy.css.LatLonAziRk4Tuple.lon: 0.5\n    test 99 pygeodesy.css.LatLonAziRk4Tuple.azimuth: 0.5\n    test 100 pygeodesy.css.LatLonAziRk4Tuple.reciprocal: 0.5\n    test 101 pygeodesy.css.LatLonAziRk4Tuple._validated: True\n    test 102 pygeodesy.css.LatLonAziRk4Tuple._validated: True\n# lazily imported pygeodesy.ecef by bases.py line 199\n    test 103 pygeodesy.ecef: Ecef9Tuple(x=0.5, y=0.5, z=0.5, lat=0.5, lon=0.5, height=0.5, C=0, M=0.5, datum=0.5)\n    test 104 pygeodesy.ecef: Ecef9Tuple(x=Meter, y=Meter, z=Meter, lat=Lat, lon=Lon, height=Height, C=Int, M=_Pass, datum=_Pass)\n    test 105 pygeodesy.ecef.Ecef9Tuple.x: 0.5\n    test 106 pygeodesy.ecef.Ecef9Tuple.y: 0.5\n    test 107 pygeodesy.ecef.Ecef9Tuple.z: 0.5\n    test 108 pygeodesy.ecef.Ecef9Tuple.lat: 0.5\n    test 109 pygeodesy.ecef.Ecef9Tuple.lon: 0.5\n    test 110 pygeodesy.ecef.Ecef9Tuple.height: 0.5\n    test 111 pygeodesy.ecef.Ecef9Tuple.C: 0.5\n    test 112 pygeodesy.ecef.Ecef9Tuple.M: 0.5\n    test 113 pygeodesy.ecef.Ecef9Tuple.datum: 0.5\n    test 114 pygeodesy.ecef.Ecef9Tuple._validated: True\n    test 115 pygeodesy.ecef.Ecef9Tuple._validated: True\n    test 116 pygeodesy.ecef: EcefMatrix(_0_0_=0.5, _0_1_=0.5, _0_2_=0.5, _1_0_=0.5, _1_1_=0.5, _1_2_=0.5, _2_0_=0.5, _2_1_=0.5, _2_2_=0.5)\n    test 117 pygeodesy.ecef: EcefMatrix(_0_0_=Scalar, _0_1_=Scalar, _0_2_=Scalar, _1_0_=Scalar, _1_1_=Scalar, _1_2_=Scalar, _2_0_=Scalar, _2_1_=Scalar, _2_2_=Scalar)\n    test 118 pygeodesy.ecef.EcefMatrix._0_0_: 0.5\n    test 119 pygeodesy.ecef.EcefMatrix._0_1_: 0.5\n    test 120 pygeodesy.ecef.EcefMatrix._0_2_: 0.5\n    test 121 pygeodesy.ecef.EcefMatrix._1_0_: 0.5\n    test 122 pygeodesy.ecef.EcefMatrix._1_1_: 0.5\n    test 123 pygeodesy.ecef.EcefMatrix._1_2_: 0.5\n    test 124 pygeodesy.ecef.EcefMatrix._2_0_: 0.5\n    test 125 pygeodesy.ecef.EcefMatrix._2_1_: 0.5\n    test 126 pygeodesy.ecef.EcefMatrix._2_2_: 0.5\n    test 127 pygeodesy.ecef.EcefMatrix._validated: True\n    test 128 pygeodesy.ecef.EcefMatrix._validated: True\n# lazily imported pygeodesy.elevations by bases.py line 199\n    test 129 pygeodesy.elevations: Elevation2Tuple(elevation=0.5, data_source='0.5')\n    test 130 pygeodesy.elevations: Elevation2Tuple(elevation=Meter, data_source=Str)\n    test 131 pygeodesy.elevations.Elevation2Tuple.elevation: 0.5\n    test 132 pygeodesy.elevations.Elevation2Tuple.data_source: 0.5\n    test 133 pygeodesy.elevations.Elevation2Tuple._validated: True\n    test 134 pygeodesy.elevations.Elevation2Tuple._validated: True\n    test 135 pygeodesy.elevations: GeoidHeight2Tuple(height=0.5, model_name='0.5')\n    test 136 pygeodesy.elevations: GeoidHeight2Tuple(height=Meter, model_name=Str)\n    test 137 pygeodesy.elevations.GeoidHeight2Tuple.height: 0.5\n    test 138 pygeodesy.elevations.GeoidHeight2Tuple.model_name: 0.5\n    test 139 pygeodesy.elevations.GeoidHeight2Tuple._validated: True\n    test 140 pygeodesy.elevations.GeoidHeight2Tuple._validated: True\n# lazily imported pygeodesy.ellipses by bases.py line 199\n# lazily imported pygeodesy.ellipsoidalBaseDI by bases.py line 199\n# lazily imported pygeodesy.ellipsoidalExact by bases.py line 199\n# lazily imported pygeodesy.ellipsoidalGeodSolve by bases.py line 199\n# lazily imported pygeodesy.ellipsoidalKarney by bases.py line 199\n# lazily imported pygeodesy.ellipsoidalNvector by bases.py line 199\n# lazily imported pygeodesy.ellipsoidalVincenty by bases.py line 199\n    test 141 pygeodesy.ellipsoids: Curvature2Tuple(meridional=0.5, prime_vertical=0.5)\n    test 142 pygeodesy.ellipsoids: Curvature2Tuple(meridional=Meter, prime_vertical=Meter)\n    test 143 pygeodesy.ellipsoids.Curvature2Tuple.meridional: 0.5\n    test 144 pygeodesy.ellipsoids.Curvature2Tuple.prime_vertical: 0.5\n    test 145 pygeodesy.ellipsoids.Curvature2Tuple._validated: True\n    test 146 pygeodesy.ellipsoids.Curvature2Tuple._validated: True\n    test 147 pygeodesy.ellipsoids: a_f2Tuple(a=0.5, f=0.5)\n    test 148 pygeodesy.ellipsoids: a_f2Tuple(a=_Pass, f=_Pass)\n    test 149 pygeodesy.ellipsoids.a_f2Tuple.a: 0.5\n    test 150 pygeodesy.ellipsoids.a_f2Tuple.f: 0.5\n    test 151 pygeodesy.ellipsoids.a_f2Tuple._validated: True\n    test 152 pygeodesy.ellipsoids.a_f2Tuple._validated: True\n# lazily imported pygeodesy.elliptic by bases.py line 199\n    test 153 pygeodesy.elliptic: Elliptic3Tuple(sn=0.5, cn=0.5, dn=0.5)\n    test 154 pygeodesy.elliptic: Elliptic3Tuple(sn=Scalar, cn=Scalar, dn=Scalar)\n    test 155 pygeodesy.elliptic.Elliptic3Tuple.sn: 0.5\n    test 156 pygeodesy.elliptic.Elliptic3Tuple.cn: 0.5\n    test 157 pygeodesy.elliptic.Elliptic3Tuple.dn: 0.5\n    test 158 pygeodesy.elliptic.Elliptic3Tuple._validated: True\n    test 159 pygeodesy.elliptic.Elliptic3Tuple._validated: True\n# lazily imported pygeodesy.epsg by bases.py line 199\n# lazily imported pygeodesy.etm by bases.py line 199\n    test 160 pygeodesy.formy: Radical2Tuple(ratio=0.5, xline=0.5)\n    test 161 pygeodesy.formy: Radical2Tuple(ratio=Scalar, xline=Scalar)\n    test 162 pygeodesy.formy.Radical2Tuple.ratio: 0.5\n    test 163 pygeodesy.formy.Radical2Tuple.xline: 0.5\n    test 164 pygeodesy.formy.Radical2Tuple._validated: True\n    test 165 pygeodesy.formy.Radical2Tuple._validated: True\n    test 166 pygeodesy.frechet: Frechet6Tuple(fd=0.5, fi1=0.5, fi2=0.5, r=0, n=0, units='test')\n    test 167 pygeodesy.frechet: Frechet6Tuple(fd=_Pass, fi1=FIx, fi2=FIx, r=Number_, n=Number_, units=_Pass)\n    test 168 pygeodesy.frechet.Frechet6Tuple.fd: 0.5\n    test 169 pygeodesy.frechet.Frechet6Tuple.fi1: 0.5\n    test 170 pygeodesy.frechet.Frechet6Tuple.fi2: 0.5\n    test 171 pygeodesy.frechet.Frechet6Tuple.r: 0.5\n    test 172 pygeodesy.frechet.Frechet6Tuple.n: 0.5\n    test 173 pygeodesy.frechet.Frechet6Tuple.units: <bound method _NamedTuple.units of Frechet6Tuple(fd=0.5, fi1=0.5, fi2=0.5, r=0.5, n=0.5, units='test')>\n    test 174 pygeodesy.frechet.Frechet6Tuple._validated: True\n    test 175 pygeodesy.frechet.Frechet6Tuple._validated: True\n# lazily imported pygeodesy.fstats by bases.py line 199\n    test 176 pygeodesy.fsums: Fsum2Tuple(fsum=0.5, residual=0.5)\n    test 177 pygeodesy.fsums: Fsum2Tuple(fsum=_Float_Int, residual=_Float_Int)\n    test 178 pygeodesy.fsums.Fsum2Tuple.fsum: 0.5\n    test 179 pygeodesy.fsums.Fsum2Tuple.residual: 0.5\n    test 180 pygeodesy.fsums.Fsum2Tuple._validated: True\n    test 181 pygeodesy.fsums.Fsum2Tuple._validated: True\n# lazily imported pygeodesy.gars by bases.py line 199\n# lazily imported pygeodesy.geod3solve by bases.py line 199\n    test 182 pygeodesy.geod3solve: Geod3Solve8Tuple(bet1=Deg, omg1=Deg, alp1=Deg, bet2=Deg, omg2=Deg, alp2=Deg, s12=Meter, a12=Deg)\n    test 183 pygeodesy.geod3solve.Geod3Solve8Tuple.bet1: 0.5\n    test 184 pygeodesy.geod3solve.Geod3Solve8Tuple.omg1: 0.5\n    test 185 pygeodesy.geod3solve.Geod3Solve8Tuple.alp1: 0.5\n    test 186 pygeodesy.geod3solve.Geod3Solve8Tuple.bet2: 0.5\n    test 187 pygeodesy.geod3solve.Geod3Solve8Tuple.omg2: 0.5\n    test 188 pygeodesy.geod3solve.Geod3Solve8Tuple.alp2: 0.5\n    test 189 pygeodesy.geod3solve.Geod3Solve8Tuple.s12: 0.5\n    test 190 pygeodesy.geod3solve.Geod3Solve8Tuple.a12: 0.5\n    test 191 pygeodesy.geod3solve.Geod3Solve8Tuple._validated: True\n    test 192 pygeodesy.geod3solve.Geod3Solve8Tuple._validated: True\n# lazily imported pygeodesy.geodesici by bases.py line 199\n    test 193 pygeodesy.geodesici: Intersect7Tuple(A=0.5, B=0.5, sAB=0.5, aAB=0.5, c=0, kA=0, kB=0)\n    test 194 pygeodesy.geodesici: Intersect7Tuple(A=_Pass, B=_Pass, sAB=Meter, aAB=Degrees, c=Int, kA=Int, kB=Int)\n    test 195 pygeodesy.geodesici.Intersect7Tuple.A: 0.5\n    test 196 pygeodesy.geodesici.Intersect7Tuple.B: 0.5\n    test 197 pygeodesy.geodesici.Intersect7Tuple.sAB: 0.5\n    test 198 pygeodesy.geodesici.Intersect7Tuple.aAB: 0.5\n    test 199 pygeodesy.geodesici.Intersect7Tuple.c: 0.5\n    test 200 pygeodesy.geodesici.Intersect7Tuple.kA: 0.5\n    test 201 pygeodesy.geodesici.Intersect7Tuple.kB: 0.5\n    test 202 pygeodesy.geodesici.Intersect7Tuple._validated: True\n    test 203 pygeodesy.geodesici.Intersect7Tuple._validated: True\n    test 204 pygeodesy.geodesici: Intersectool5Tuple(A=0.5, B=0.5, sAB=0.5, aAB=0.5, c=0)\n    test 205 pygeodesy.geodesici: Intersectool5Tuple(A=_Pass, B=_Pass, sAB=Meter, aAB=Degrees, c=Int)\n    test 206 pygeodesy.geodesici.Intersectool5Tuple.A: 0.5\n    test 207 pygeodesy.geodesici.Intersectool5Tuple.B: 0.5\n    test 208 pygeodesy.geodesici.Intersectool5Tuple.sAB: 0.5\n    test 209 pygeodesy.geodesici.Intersectool5Tuple.aAB: 0.5\n    test 210 pygeodesy.geodesici.Intersectool5Tuple.c: 0.5\n    test 211 pygeodesy.geodesici.Intersectool5Tuple._validated: True\n    test 212 pygeodesy.geodesici.Intersectool5Tuple._validated: True\n    test 213 pygeodesy.geodesici: Intersector5Tuple(A=0.5, B=0.5, sAB=0.5, aAB=0.5, c=0)\n    test 214 pygeodesy.geodesici: Intersector5Tuple(A=_Pass, B=_Pass, sAB=Meter, aAB=Degrees, c=Int)\n    test 215 pygeodesy.geodesici.Intersector5Tuple.A: 0.5\n    test 216 pygeodesy.geodesici.Intersector5Tuple.B: 0.5\n    test 217 pygeodesy.geodesici.Intersector5Tuple.sAB: 0.5\n    test 218 pygeodesy.geodesici.Intersector5Tuple.aAB: 0.5\n    test 219 pygeodesy.geodesici.Intersector5Tuple.c: 0.5\n    test 220 pygeodesy.geodesici.Intersector5Tuple._validated: True\n    test 221 pygeodesy.geodesici.Intersector5Tuple._validated: True\n    test 222 pygeodesy.geodesici: Middle5Tuple(A=0.5, B=0.5, sMM=0.5, aMM=0.5, c=0)\n    test 223 pygeodesy.geodesici: Middle5Tuple(A=_Pass, B=_Pass, sMM=Meter, aMM=Degrees, c=Int)\n    test 224 pygeodesy.geodesici.Middle5Tuple.A: 0.5\n    test 225 pygeodesy.geodesici.Middle5Tuple.B: 0.5\n    test 226 pygeodesy.geodesici.Middle5Tuple.sMM: 0.5\n    test 227 pygeodesy.geodesici.Middle5Tuple.aMM: 0.5\n    test 228 pygeodesy.geodesici.Middle5Tuple.c: 0.5\n    test 229 pygeodesy.geodesici.Middle5Tuple._validated: True\n    test 230 pygeodesy.geodesici.Middle5Tuple._validated: True\n# lazily imported pygeodesy.geodesicw by bases.py line 199\n# lazily imported pygeodesy.geodsolve by bases.py line 199\n    test 231 pygeodesy.geodsolve: GeodSolve12Tuple(lat1=0.5, lon1=0.5, azi1=0.5, lat2=0.5, lon2=0.5, azi2=0.5, s12=0.5, a12=0.5, m12=0.5, M12=0.5, M21=0.5, S12=0.5)\n    test 232 pygeodesy.geodsolve: GeodSolve12Tuple(lat1=_Lat, lon1=_Lon, azi1=Azimuth, lat2=_Lat, lon2=_Lon, azi2=Azimuth, s12=Meter, a12=Degrees, m12=_Pass, M12=_Pass, M21=_Pass, S12=Meter2)\n    test 233 pygeodesy.geodsolve.GeodSolve12Tuple.lat1: 0.5\n    test 234 pygeodesy.geodsolve.GeodSolve12Tuple.lon1: 0.5\n    test 235 pygeodesy.geodsolve.GeodSolve12Tuple.azi1: 0.5\n    test 236 pygeodesy.geodsolve.GeodSolve12Tuple.lat2: 0.5\n    test 237 pygeodesy.geodsolve.GeodSolve12Tuple.lon2: 0.5\n    test 238 pygeodesy.geodsolve.GeodSolve12Tuple.azi2: 0.5\n    test 239 pygeodesy.geodsolve.GeodSolve12Tuple.s12: 0.5\n    test 240 pygeodesy.geodsolve.GeodSolve12Tuple.a12: 0.5\n    test 241 pygeodesy.geodsolve.GeodSolve12Tuple.m12: 0.5\n    test 242 pygeodesy.geodsolve.GeodSolve12Tuple.M12: 0.5\n    test 243 pygeodesy.geodsolve.GeodSolve12Tuple.M21: 0.5\n    test 244 pygeodesy.geodsolve.GeodSolve12Tuple.S12: 0.5\n    test 245 pygeodesy.geodsolve.GeodSolve12Tuple._validated: True\n    test 246 pygeodesy.geodsolve.GeodSolve12Tuple._validated: True\n# lazily imported pygeodesy.geohash by bases.py line 199\n    test 247 pygeodesy.geohash: Resolutions2Tuple(res1=0.5, res2=0.5)\n    test 248 pygeodesy.geohash: Resolutions2Tuple(res1=Degrees_, res2=Degrees_)\n    test 249 pygeodesy.geohash.Resolutions2Tuple.res1: 0.5\n    test 250 pygeodesy.geohash.Resolutions2Tuple.res2: 0.5\n    test 251 pygeodesy.geohash.Resolutions2Tuple._validated: True\n    test 252 pygeodesy.geohash.Resolutions2Tuple._validated: True\n    test 253 pygeodesy.geohash: Sizes3Tuple(height=0.5, width=0.5, radius=0.5)\n    test 254 pygeodesy.geohash: Sizes3Tuple(height=Meter, width=Meter, radius=Meter)\n    test 255 pygeodesy.geohash.Sizes3Tuple.height: 0.5\n    test 256 pygeodesy.geohash.Sizes3Tuple.width: 0.5\n    test 257 pygeodesy.geohash.Sizes3Tuple.radius: 0.5\n    test 258 pygeodesy.geohash.Sizes3Tuple._validated: True\n    test 259 pygeodesy.geohash.Sizes3Tuple._validated: True\n# lazily imported pygeodesy.geoids by bases.py line 199\n    test 260 pygeodesy.geoids: GeoidHeight5Tuple(lat=0.5, lon=0.5, egm84=0.5, egm96=0.5, egm2008=0.5)\n    test 261 pygeodesy.geoids: GeoidHeight5Tuple(lat=Lat, lon=Lon, egm84=Height, egm96=Height, egm2008=Height)\n    test 262 pygeodesy.geoids.GeoidHeight5Tuple.lat: 0.5\n    test 263 pygeodesy.geoids.GeoidHeight5Tuple.lon: 0.5\n    test 264 pygeodesy.geoids.GeoidHeight5Tuple.egm84: 0.5\n    test 265 pygeodesy.geoids.GeoidHeight5Tuple.egm96: 0.5\n    test 266 pygeodesy.geoids.GeoidHeight5Tuple.egm2008: 0.5\n    test 267 pygeodesy.geoids.GeoidHeight5Tuple._validated: True\n    test 268 pygeodesy.geoids.GeoidHeight5Tuple._validated: True\n    test 269 pygeodesy.hausdorff: Hausdorff6Tuple(hd=0.5, i=0, j=0, mn=0, md=0.5, units='test')\n    test 270 pygeodesy.hausdorff: Hausdorff6Tuple(hd=_Pass, i=Number_, j=Number_, mn=Number_, md=_Pass, units=_Pass)\n    test 271 pygeodesy.hausdorff.Hausdorff6Tuple.hd: 0.5\n    test 272 pygeodesy.hausdorff.Hausdorff6Tuple.i: 0.5\n    test 273 pygeodesy.hausdorff.Hausdorff6Tuple.j: 0.5\n    test 274 pygeodesy.hausdorff.Hausdorff6Tuple.mn: 0.5\n    test 275 pygeodesy.hausdorff.Hausdorff6Tuple.md: 0.5\n    test 276 pygeodesy.hausdorff.Hausdorff6Tuple.units: <bound method _NamedTuple.units of Hausdorff6Tuple(hd=0.5, i=0.5, j=0.5, mn=0.5, md=0.5, units='test')>\n    test 277 pygeodesy.hausdorff.Hausdorff6Tuple._validated: True\n    test 278 pygeodesy.hausdorff.Hausdorff6Tuple._validated: True\n    test 279 pygeodesy.karney: Area3Tuple(number=0, perimeter=0.5, area=0.5)\n    test 280 pygeodesy.karney: Area3Tuple(number=Number_, perimeter=Meter, area=Meter2)\n    test 281 pygeodesy.karney.Area3Tuple.number: 0.5\n    test 282 pygeodesy.karney.Area3Tuple.perimeter: 0.5\n    test 283 pygeodesy.karney.Area3Tuple.area: 0.5\n    test 284 pygeodesy.karney.Area3Tuple._validated: True\n    test 285 pygeodesy.karney.Area3Tuple._validated: True\n    test 286 pygeodesy.karney: Direct9Tuple(a12=0.5, lat2=0.5, lon2=0.5, azi2=0.5, s12=0.5, m12=0.5, M12=0.5, M21=0.5, S12=0.5)\n    test 287 pygeodesy.karney: Direct9Tuple(a12=Azimuth, lat2=_Lat, lon2=_Lon, azi2=Azimuth, s12=Meter, m12=_Pass, M12=_Pass, M21=_Pass, S12=Meter2)\n    test 288 pygeodesy.karney.Direct9Tuple.a12: 0.5\n    test 289 pygeodesy.karney.Direct9Tuple.lat2: 0.5\n    test 290 pygeodesy.karney.Direct9Tuple.lon2: 0.5\n    test 291 pygeodesy.karney.Direct9Tuple.azi2: 0.5\n    test 292 pygeodesy.karney.Direct9Tuple.s12: 0.5\n    test 293 pygeodesy.karney.Direct9Tuple.m12: 0.5\n    test 294 pygeodesy.karney.Direct9Tuple.M12: 0.5\n    test 295 pygeodesy.karney.Direct9Tuple.M21: 0.5\n    test 296 pygeodesy.karney.Direct9Tuple.S12: 0.5\n    test 297 pygeodesy.karney.Direct9Tuple._validated: True\n    test 298 pygeodesy.karney.Direct9Tuple._validated: True\n    test 299 pygeodesy.karney: Inverse10Tuple(a12=0.5, s12=0.5, salp1=0.5, calp1=0.5, salp2=0.5, calp2=0.5, m12=0.5, M12=0.5, M21=0.5, S12=0.5)\n    test 300 pygeodesy.karney: Inverse10Tuple(a12=Azimuth, s12=Meter, salp1=_Pass, calp1=_Pass, salp2=_Pass, calp2=_Pass, m12=_Pass, M12=_Pass, M21=_Pass, S12=Meter2)\n    test 301 pygeodesy.karney.Inverse10Tuple.a12: 0.5\n    test 302 pygeodesy.karney.Inverse10Tuple.s12: 0.5\n    test 303 pygeodesy.karney.Inverse10Tuple.salp1: 0.5\n    test 304 pygeodesy.karney.Inverse10Tuple.calp1: 0.5\n    test 305 pygeodesy.karney.Inverse10Tuple.salp2: 0.5\n    test 306 pygeodesy.karney.Inverse10Tuple.calp2: 0.5\n    test 307 pygeodesy.karney.Inverse10Tuple.m12: 0.5\n    test 308 pygeodesy.karney.Inverse10Tuple.M12: 0.5\n    test 309 pygeodesy.karney.Inverse10Tuple.M21: 0.5\n    test 310 pygeodesy.karney.Inverse10Tuple.S12: 0.5\n    test 311 pygeodesy.karney.Inverse10Tuple._validated: True\n    test 312 pygeodesy.karney.Inverse10Tuple._validated: True\n    test 313 pygeodesy.karney: Rhumb8Tuple(lat1=0.5, lon1=0.5, lat2=0.5, lon2=0.5, azi12=0.5, s12=0.5, S12=0.5, a12=0.5)\n    test 314 pygeodesy.karney: Rhumb8Tuple(lat1=Lat, lon1=Lon, lat2=Lat, lon2=Lon, azi12=Azimuth, s12=Meter, S12=Meter2, a12=Degrees)\n    test 315 pygeodesy.karney.Rhumb8Tuple.lat1: 0.5\n    test 316 pygeodesy.karney.Rhumb8Tuple.lon1: 0.5\n    test 317 pygeodesy.karney.Rhumb8Tuple.lat2: 0.5\n    test 318 pygeodesy.karney.Rhumb8Tuple.lon2: 0.5\n    test 319 pygeodesy.karney.Rhumb8Tuple.azi12: 0.5\n    test 320 pygeodesy.karney.Rhumb8Tuple.s12: 0.5\n    test 321 pygeodesy.karney.Rhumb8Tuple.S12: 0.5\n    test 322 pygeodesy.karney.Rhumb8Tuple.a12: 0.5\n    test 323 pygeodesy.karney.Rhumb8Tuple._validated: True\n    test 324 pygeodesy.karney.Rhumb8Tuple._validated: True\n# lazily imported pygeodesy.ktm by bases.py line 199\n# lazily imported pygeodesy.lcc by bases.py line 199\n# lazily imported pygeodesy.ltp by bases.py line 199\n    test 325 pygeodesy.ltpTuples: Aer4Tuple(azimuth=0.5, elevation=0.5, slantrange=0.5, ltp=0.5)\n    test 326 pygeodesy.ltpTuples: Aer4Tuple(azimuth=Meter, elevation=Meter, slantrange=Meter, ltp=_Pass)\n    test 327 pygeodesy.ltpTuples.Aer4Tuple.azimuth: 0.5\n    test 328 pygeodesy.ltpTuples.Aer4Tuple.elevation: 0.5\n    test 329 pygeodesy.ltpTuples.Aer4Tuple.slantrange: 0.5\n    test 330 pygeodesy.ltpTuples.Aer4Tuple.ltp: 0.5\n    test 331 pygeodesy.ltpTuples.Aer4Tuple._validated: True\n    test 332 pygeodesy.ltpTuples.Aer4Tuple._validated: True\n    test 333 pygeodesy.ltpTuples: Attitude4Tuple(alt=0.5, tilt=0.5, yaw=0.5, roll=0.5)\n    test 334 pygeodesy.ltpTuples: Attitude4Tuple(alt=Meter, tilt=Degrees, yaw=Bearing, roll=Degrees)\n    test 335 pygeodesy.ltpTuples.Attitude4Tuple.alt: 0.5\n    test 336 pygeodesy.ltpTuples.Attitude4Tuple.tilt: 0.5\n    test 337 pygeodesy.ltpTuples.Attitude4Tuple.yaw: 0.5\n    test 338 pygeodesy.ltpTuples.Attitude4Tuple.roll: 0.5\n    test 339 pygeodesy.ltpTuples.Attitude4Tuple._validated: True\n    test 340 pygeodesy.ltpTuples.Attitude4Tuple._validated: True\n    test 341 pygeodesy.ltpTuples: ChLV9Tuple(Y=0.5, X=0.5, h_=0.5, lat=0.5, lon=0.5, height=0.5, ltp=0.5, ecef=0.5, M=0.5)\n    test 342 pygeodesy.ltpTuples: ChLV9Tuple(Y=Meter, X=Meter, h_=Meter, lat=Lat, lon=Lon, height=Height, ltp=_Pass, ecef=_Pass, M=_Pass)\n    test 343 pygeodesy.ltpTuples.ChLV9Tuple.Y: 0.5\n    test 344 pygeodesy.ltpTuples.ChLV9Tuple.X: 0.5\n    test 345 pygeodesy.ltpTuples.ChLV9Tuple.h_: 0.5\n    test 346 pygeodesy.ltpTuples.ChLV9Tuple.lat: 0.5\n    test 347 pygeodesy.ltpTuples.ChLV9Tuple.lon: 0.5\n    test 348 pygeodesy.ltpTuples.ChLV9Tuple.height: 0.5\n    test 349 pygeodesy.ltpTuples.ChLV9Tuple.ltp: 0.5\n    test 350 pygeodesy.ltpTuples.ChLV9Tuple.ecef: 0.5\n    test 351 pygeodesy.ltpTuples.ChLV9Tuple.M: 0.5\n    test 352 pygeodesy.ltpTuples.ChLV9Tuple._validated: True\n    test 353 pygeodesy.ltpTuples.ChLV9Tuple._validated: True\n    test 354 pygeodesy.ltpTuples: ChLVEN2Tuple(E_LV95=0.5, N_LV95=0.5)\n    test 355 pygeodesy.ltpTuples: ChLVEN2Tuple(E_LV95=Meter, N_LV95=Meter)\n    test 356 pygeodesy.ltpTuples.ChLVEN2Tuple.E_LV95: 0.5\n    test 357 pygeodesy.ltpTuples.ChLVEN2Tuple.N_LV95: 0.5\n    test 358 pygeodesy.ltpTuples.ChLVEN2Tuple._validated: True\n    test 359 pygeodesy.ltpTuples.ChLVEN2Tuple._validated: True\n    test 360 pygeodesy.ltpTuples: ChLVYX2Tuple(Y=0.5, X=0.5)\n    test 361 pygeodesy.ltpTuples: ChLVYX2Tuple(Y=Meter, X=Meter)\n    test 362 pygeodesy.ltpTuples.ChLVYX2Tuple.Y: 0.5\n    test 363 pygeodesy.ltpTuples.ChLVYX2Tuple.X: 0.5\n    test 364 pygeodesy.ltpTuples.ChLVYX2Tuple._validated: True\n    test 365 pygeodesy.ltpTuples.ChLVYX2Tuple._validated: True\n    test 366 pygeodesy.ltpTuples: ChLVyx2Tuple(y_LV03=0.5, x_LV03=0.5)\n    test 367 pygeodesy.ltpTuples: ChLVyx2Tuple(y_LV03=Meter, x_LV03=Meter)\n    test 368 pygeodesy.ltpTuples.ChLVyx2Tuple.y_LV03: 0.5\n    test 369 pygeodesy.ltpTuples.ChLVyx2Tuple.x_LV03: 0.5\n    test 370 pygeodesy.ltpTuples.ChLVyx2Tuple._validated: True\n    test 371 pygeodesy.ltpTuples.ChLVyx2Tuple._validated: True\n    test 372 pygeodesy.ltpTuples: Enu4Tuple(east=0.5, north=0.5, up=0.5, ltp=0.5)\n    test 373 pygeodesy.ltpTuples: Enu4Tuple(east=Meter, north=Meter, up=Meter, ltp=_Pass)\n    test 374 pygeodesy.ltpTuples.Enu4Tuple.east: 0.5\n    test 375 pygeodesy.ltpTuples.Enu4Tuple.north: 0.5\n    test 376 pygeodesy.ltpTuples.Enu4Tuple.up: 0.5\n    test 377 pygeodesy.ltpTuples.Enu4Tuple.ltp: 0.5\n    test 378 pygeodesy.ltpTuples.Enu4Tuple._validated: True\n    test 379 pygeodesy.ltpTuples.Enu4Tuple._validated: True\n    test 380 pygeodesy.ltpTuples: Footprint5Tuple(center=0.5, upperleft=0.5, upperight=0.5, loweright=0.5, lowerleft=0.5)\n    test 381 pygeodesy.ltpTuples: Footprint5Tuple(center=_Pass, upperleft=_Pass, upperight=_Pass, loweright=_Pass, lowerleft=_Pass)\n    test 382 pygeodesy.ltpTuples.Footprint5Tuple.center: 0.5\n    test 383 pygeodesy.ltpTuples.Footprint5Tuple.upperleft: 0.5\n    test 384 pygeodesy.ltpTuples.Footprint5Tuple.upperight: 0.5\n    test 385 pygeodesy.ltpTuples.Footprint5Tuple.loweright: 0.5\n    test 386 pygeodesy.ltpTuples.Footprint5Tuple.lowerleft: 0.5\n    test 387 pygeodesy.ltpTuples.Footprint5Tuple._validated: True\n    test 388 pygeodesy.ltpTuples.Footprint5Tuple._validated: True\n    test 389 pygeodesy.ltpTuples: Local9Tuple(x=0.5, y=0.5, z=0.5, lat=0.5, lon=0.5, height=0.5, ltp=0.5, ecef=0.5, M=0.5)\n    test 390 pygeodesy.ltpTuples: Local9Tuple(x=Meter, y=Meter, z=Meter, lat=Lat, lon=Lon, height=Height, ltp=_Pass, ecef=_Pass, M=_Pass)\n    test 391 pygeodesy.ltpTuples.Local9Tuple.x: 0.5\n    test 392 pygeodesy.ltpTuples.Local9Tuple.y: 0.5\n    test 393 pygeodesy.ltpTuples.Local9Tuple.z: 0.5\n    test 394 pygeodesy.ltpTuples.Local9Tuple.lat: 0.5\n    test 395 pygeodesy.ltpTuples.Local9Tuple.lon: 0.5\n    test 396 pygeodesy.ltpTuples.Local9Tuple.height: 0.5\n    test 397 pygeodesy.ltpTuples.Local9Tuple.ltp: 0.5\n    test 398 pygeodesy.ltpTuples.Local9Tuple.ecef: 0.5\n    test 399 pygeodesy.ltpTuples.Local9Tuple.M: 0.5\n    test 400 pygeodesy.ltpTuples.Local9Tuple._validated: True\n    test 401 pygeodesy.ltpTuples.Local9Tuple._validated: True\n    test 402 pygeodesy.ltpTuples: Ned4Tuple(north=0.5, east=0.5, down=0.5, ltp=0.5)\n    test 403 pygeodesy.ltpTuples: Ned4Tuple(north=Meter, east=Meter, down=Meter, ltp=_Pass)\n    test 404 pygeodesy.ltpTuples.Ned4Tuple.north: 0.5\n    test 405 pygeodesy.ltpTuples.Ned4Tuple.east: 0.5\n    test 406 pygeodesy.ltpTuples.Ned4Tuple.down: 0.5\n    test 407 pygeodesy.ltpTuples.Ned4Tuple.ltp: 0.5\n    test 408 pygeodesy.ltpTuples.Ned4Tuple._validated: True\n    test 409 pygeodesy.ltpTuples.Ned4Tuple._validated: True\n    test 410 pygeodesy.ltpTuples: Uvw3Tuple(u=0.5, v=0.5, w=0.5)\n    test 411 pygeodesy.ltpTuples: Uvw3Tuple(u=Meter, v=Meter, w=Meter)\n    test 412 pygeodesy.ltpTuples.Uvw3Tuple.u: 0.5\n    test 413 pygeodesy.ltpTuples.Uvw3Tuple.v: 0.5\n    test 414 pygeodesy.ltpTuples.Uvw3Tuple.w: 0.5\n    test 415 pygeodesy.ltpTuples.Uvw3Tuple._validated: True\n    test 416 pygeodesy.ltpTuples.Uvw3Tuple._validated: True\n    test 417 pygeodesy.ltpTuples: Xyz4Tuple(x=0.5, y=0.5, z=0.5, ltp=0.5)\n    test 418 pygeodesy.ltpTuples: Xyz4Tuple(x=Meter, y=Meter, z=Meter, ltp=_Pass)\n    test 419 pygeodesy.ltpTuples.Xyz4Tuple.x: 0.5\n    test 420 pygeodesy.ltpTuples.Xyz4Tuple.y: 0.5\n    test 421 pygeodesy.ltpTuples.Xyz4Tuple.z: 0.5\n    test 422 pygeodesy.ltpTuples.Xyz4Tuple.ltp: 0.5\n    test 423 pygeodesy.ltpTuples.Xyz4Tuple._validated: True\n    test 424 pygeodesy.ltpTuples.Xyz4Tuple._validated: True\n# lazily imported pygeodesy.mgrs by bases.py line 199\n    test 425 pygeodesy.mgrs: Mgrs4Tuple(zone='0.5', EN='0.5', easting=0.5, northing=0.5)\n    test 426 pygeodesy.mgrs: Mgrs4Tuple(zone=Str, EN=Str, easting=Easting, northing=Northing)\n    test 427 pygeodesy.mgrs.Mgrs4Tuple.zone: 0.5\n    test 428 pygeodesy.mgrs.Mgrs4Tuple.EN: 0.5\n    test 429 pygeodesy.mgrs.Mgrs4Tuple.easting: 0.5\n    test 430 pygeodesy.mgrs.Mgrs4Tuple.northing: 0.5\n    test 431 pygeodesy.mgrs.Mgrs4Tuple._validated: True\n    test 432 pygeodesy.mgrs.Mgrs4Tuple._validated: True\n    test 433 pygeodesy.mgrs: Mgrs6Tuple(zone='0.5', EN='0.5', easting=0.5, northing=0.5, band='0.5', datum=0.5)\n    test 434 pygeodesy.mgrs: Mgrs6Tuple(zone=Str, EN=Str, easting=Easting, northing=Northing, band=Str, datum=_Pass)\n    test 435 pygeodesy.mgrs.Mgrs6Tuple.zone: 0.5\n    test 436 pygeodesy.mgrs.Mgrs6Tuple.EN: 0.5\n    test 437 pygeodesy.mgrs.Mgrs6Tuple.easting: 0.5\n    test 438 pygeodesy.mgrs.Mgrs6Tuple.northing: 0.5\n    test 439 pygeodesy.mgrs.Mgrs6Tuple.band: 0.5\n    test 440 pygeodesy.mgrs.Mgrs6Tuple.datum: 0.5\n    test 441 pygeodesy.mgrs.Mgrs6Tuple._validated: True\n    test 442 pygeodesy.mgrs.Mgrs6Tuple._validated: True\n    test 443 pygeodesy.namedTuples: Bearing2Tuple(initial=0.5, final=0.5)\n    test 444 pygeodesy.namedTuples: Bearing2Tuple(initial=Bearing, final=Bearing)\n    test 445 pygeodesy.namedTuples.Bearing2Tuple.initial: 0.5\n    test 446 pygeodesy.namedTuples.Bearing2Tuple.final: 0.5\n    test 447 pygeodesy.namedTuples.Bearing2Tuple._validated: True\n    test 448 pygeodesy.namedTuples.Bearing2Tuple._validated: True\n    test 449 pygeodesy.namedTuples: Bounds2Tuple(latlonSW=0.5, latlonNE=0.5)\n    test 450 pygeodesy.namedTuples: Bounds2Tuple(latlonSW=_Pass, latlonNE=_Pass)\n    test 451 pygeodesy.namedTuples.Bounds2Tuple.latlonSW: 0.5\n    test 452 pygeodesy.namedTuples.Bounds2Tuple.latlonNE: 0.5\n    test 453 pygeodesy.namedTuples.Bounds2Tuple._validated: True\n    test 454 pygeodesy.namedTuples.Bounds2Tuple._validated: True\n    test 455 pygeodesy.namedTuples: Bounds4Tuple(latS=0.5, lonW=0.5, latN=0.5, lonE=0.5)\n    test 456 pygeodesy.namedTuples: Bounds4Tuple(latS=Lat, lonW=Lon, latN=Lat, lonE=Lon)\n    test 457 pygeodesy.namedTuples.Bounds4Tuple.latS: 0.5\n    test 458 pygeodesy.namedTuples.Bounds4Tuple.lonW: 0.5\n    test 459 pygeodesy.namedTuples.Bounds4Tuple.latN: 0.5\n    test 460 pygeodesy.namedTuples.Bounds4Tuple.lonE: 0.5\n    test 461 pygeodesy.namedTuples.Bounds4Tuple._validated: True\n    test 462 pygeodesy.namedTuples.Bounds4Tuple._validated: True\n    test 463 pygeodesy.namedTuples: Circle4Tuple(radius=0.5, height=0.5, lat=0.5, beta=0.5)\n    test 464 pygeodesy.namedTuples: Circle4Tuple(radius=Radius, height=Height, lat=Lat, beta=Lat)\n    test 465 pygeodesy.namedTuples.Circle4Tuple.radius: 0.5\n    test 466 pygeodesy.namedTuples.Circle4Tuple.height: 0.5\n    test 467 pygeodesy.namedTuples.Circle4Tuple.lat: 0.5\n    test 468 pygeodesy.namedTuples.Circle4Tuple.beta: 0.5\n    test 469 pygeodesy.namedTuples.Circle4Tuple._validated: True\n    test 470 pygeodesy.namedTuples.Circle4Tuple._validated: True\n    test 471 pygeodesy.namedTuples: Destination2Tuple(destination=0.5, final=0.5)\n    test 472 pygeodesy.namedTuples: Destination2Tuple(destination=_Pass, final=Bearing)\n    test 473 pygeodesy.namedTuples.Destination2Tuple.destination: 0.5\n    test 474 pygeodesy.namedTuples.Destination2Tuple.final: 0.5\n    test 475 pygeodesy.namedTuples.Destination2Tuple._validated: True\n    test 476 pygeodesy.namedTuples.Destination2Tuple._validated: True\n    test 477 pygeodesy.namedTuples: Destination3Tuple(lat=0.5, lon=0.5, final=0.5)\n    test 478 pygeodesy.namedTuples: Destination3Tuple(lat=Lat, lon=Lon, final=Bearing)\n    test 479 pygeodesy.namedTuples.Destination3Tuple.lat: 0.5\n    test 480 pygeodesy.namedTuples.Destination3Tuple.lon: 0.5\n    test 481 pygeodesy.namedTuples.Destination3Tuple.final: 0.5\n    test 482 pygeodesy.namedTuples.Destination3Tuple._validated: True\n    test 483 pygeodesy.namedTuples.Destination3Tuple._validated: True\n    test 484 pygeodesy.namedTuples: Distance2Tuple(distance=0.5, initial=0.5)\n    test 485 pygeodesy.namedTuples: Distance2Tuple(distance=Meter, initial=Bearing)\n    test 486 pygeodesy.namedTuples.Distance2Tuple.distance: 0.5\n    test 487 pygeodesy.namedTuples.Distance2Tuple.initial: 0.5\n    test 488 pygeodesy.namedTuples.Distance2Tuple._validated: True\n    test 489 pygeodesy.namedTuples.Distance2Tuple._validated: True\n    test 490 pygeodesy.namedTuples: Distance3Tuple(distance=0.5, initial=0.5, final=0.5)\n    test 491 pygeodesy.namedTuples: Distance3Tuple(distance=Meter, initial=Bearing, final=Bearing)\n    test 492 pygeodesy.namedTuples.Distance3Tuple.distance: 0.5\n    test 493 pygeodesy.namedTuples.Distance3Tuple.initial: 0.5\n    test 494 pygeodesy.namedTuples.Distance3Tuple.final: 0.5\n    test 495 pygeodesy.namedTuples.Distance3Tuple._validated: True\n    test 496 pygeodesy.namedTuples.Distance3Tuple._validated: True\n    test 497 pygeodesy.namedTuples: Distance4Tuple(distance2=0.5, delta_lat=0.5, delta_lon=0.5, unroll_lon2=0.5)\n    test 498 pygeodesy.namedTuples: Distance4Tuple(distance2=Degrees2, delta_lat=Degrees, delta_lon=Degrees, unroll_lon2=Degrees)\n    test 499 pygeodesy.namedTuples.Distance4Tuple.distance2: 0.5\n    test 500 pygeodesy.namedTuples.Distance4Tuple.delta_lat: 0.5\n    test 501 pygeodesy.namedTuples.Distance4Tuple.delta_lon: 0.5\n    test 502 pygeodesy.namedTuples.Distance4Tuple.unroll_lon2: 0.5\n    test 503 pygeodesy.namedTuples.Distance4Tuple._validated: True\n    test 504 pygeodesy.namedTuples.Distance4Tuple._validated: True\n    test 505 pygeodesy.namedTuples: EasNor2Tuple(easting=0.5, northing=0.5)\n    test 506 pygeodesy.namedTuples: EasNor2Tuple(easting=Easting, northing=Northing)\n    test 507 pygeodesy.namedTuples.EasNor2Tuple.easting: 0.5\n    test 508 pygeodesy.namedTuples.EasNor2Tuple.northing: 0.5\n    test 509 pygeodesy.namedTuples.EasNor2Tuple._validated: True\n    test 510 pygeodesy.namedTuples.EasNor2Tuple._validated: True\n    test 511 pygeodesy.namedTuples: EasNor3Tuple(easting=0.5, northing=0.5, height=0.5)\n    test 512 pygeodesy.namedTuples: EasNor3Tuple(easting=Easting, northing=Northing, height=Height)\n    test 513 pygeodesy.namedTuples.EasNor3Tuple.easting: 0.5\n    test 514 pygeodesy.namedTuples.EasNor3Tuple.northing: 0.5\n    test 515 pygeodesy.namedTuples.EasNor3Tuple.height: 0.5\n    test 516 pygeodesy.namedTuples.EasNor3Tuple._validated: True\n    test 517 pygeodesy.namedTuples.EasNor3Tuple._validated: True\n    test 518 pygeodesy.namedTuples: Ellipse5Tuple(a=0.5, b=0.5, height=0.5, lat=0.5, beta=0.5)\n    test 519 pygeodesy.namedTuples: Ellipse5Tuple(a=Radius, b=Radius, height=Height, lat=Lat, beta=Lat)\n    test 520 pygeodesy.namedTuples.Ellipse5Tuple.a: 0.5\n    test 521 pygeodesy.namedTuples.Ellipse5Tuple.b: 0.5\n    test 522 pygeodesy.namedTuples.Ellipse5Tuple.height: 0.5\n    test 523 pygeodesy.namedTuples.Ellipse5Tuple.lat: 0.5\n    test 524 pygeodesy.namedTuples.Ellipse5Tuple.beta: 0.5\n    test 525 pygeodesy.namedTuples.Ellipse5Tuple._validated: True\n    test 526 pygeodesy.namedTuples.Ellipse5Tuple._validated: True\n    test 527 pygeodesy.namedTuples: Forward4Tuple(easting=0.5, northing=0.5, gamma=0.5, scale=0.5)\n    test 528 pygeodesy.namedTuples: Forward4Tuple(easting=Easting, northing=Northing, gamma=Degrees, scale=Scalar)\n    test 529 pygeodesy.namedTuples.Forward4Tuple.easting: 0.5\n    test 530 pygeodesy.namedTuples.Forward4Tuple.northing: 0.5\n    test 531 pygeodesy.namedTuples.Forward4Tuple.gamma: 0.5\n    test 532 pygeodesy.namedTuples.Forward4Tuple.scale: 0.5\n    test 533 pygeodesy.namedTuples.Forward4Tuple._validated: True\n    test 534 pygeodesy.namedTuples.Forward4Tuple._validated: True\n    test 535 pygeodesy.namedTuples: Intersection3Tuple(point=0.5, outside1=0, outside2=0)\n    test 536 pygeodesy.namedTuples: Intersection3Tuple(point=_Pass, outside1=Int, outside2=Int)\n    test 537 pygeodesy.namedTuples.Intersection3Tuple.point: 0.5\n    test 538 pygeodesy.namedTuples.Intersection3Tuple.outside1: 0.5\n    test 539 pygeodesy.namedTuples.Intersection3Tuple.outside2: 0.5\n    test 540 pygeodesy.namedTuples.Intersection3Tuple._validated: True\n    test 541 pygeodesy.namedTuples.Intersection3Tuple._validated: True\n    test 542 pygeodesy.namedTuples: LatLon2Tuple(lat=0.5, lon=0.5)\n    test 543 pygeodesy.namedTuples: LatLon2Tuple(lat=Lat, lon=Lon)\n    test 544 pygeodesy.namedTuples.LatLon2Tuple.lat: 0.5\n    test 545 pygeodesy.namedTuples.LatLon2Tuple.lon: 0.5\n    test 546 pygeodesy.namedTuples.LatLon2Tuple._validated: True\n    test 547 pygeodesy.namedTuples.LatLon2Tuple._validated: True\n    test 548 pygeodesy.namedTuples: LatLon3Tuple(lat=0.5, lon=0.5, height=0.5)\n    test 549 pygeodesy.namedTuples: LatLon3Tuple(lat=Lat, lon=Lon, height=Height)\n    test 550 pygeodesy.namedTuples.LatLon3Tuple.lat: 0.5\n    test 551 pygeodesy.namedTuples.LatLon3Tuple.lon: 0.5\n    test 552 pygeodesy.namedTuples.LatLon3Tuple.height: 0.5\n    test 553 pygeodesy.namedTuples.LatLon3Tuple._validated: True\n    test 554 pygeodesy.namedTuples.LatLon3Tuple._validated: True\n    test 555 pygeodesy.namedTuples: LatLon4Tuple(lat=0.5, lon=0.5, height=0.5, datum=0.5)\n    test 556 pygeodesy.namedTuples: LatLon4Tuple(lat=Lat, lon=Lon, height=Height, datum=_Pass)\n    test 557 pygeodesy.namedTuples.LatLon4Tuple.lat: 0.5\n    test 558 pygeodesy.namedTuples.LatLon4Tuple.lon: 0.5\n    test 559 pygeodesy.namedTuples.LatLon4Tuple.height: 0.5\n    test 560 pygeodesy.namedTuples.LatLon4Tuple.datum: 0.5\n    test 561 pygeodesy.namedTuples.LatLon4Tuple._validated: True\n    test 562 pygeodesy.namedTuples.LatLon4Tuple._validated: True\n    test 563 pygeodesy.namedTuples: LatLonDatum3Tuple(lat=0.5, lon=0.5, datum=0.5)\n    test 564 pygeodesy.namedTuples: LatLonDatum3Tuple(lat=Lat, lon=Lon, datum=_Pass)\n    test 565 pygeodesy.namedTuples.LatLonDatum3Tuple.lat: 0.5\n    test 566 pygeodesy.namedTuples.LatLonDatum3Tuple.lon: 0.5\n    test 567 pygeodesy.namedTuples.LatLonDatum3Tuple.datum: 0.5\n    test 568 pygeodesy.namedTuples.LatLonDatum3Tuple._validated: True\n    test 569 pygeodesy.namedTuples.LatLonDatum3Tuple._validated: True\n    test 570 pygeodesy.namedTuples: LatLonDatum5Tuple(lat=0.5, lon=0.5, datum=0.5, gamma=0.5, scale=0.5)\n    test 571 pygeodesy.namedTuples: LatLonDatum5Tuple(lat=Lat, lon=Lon, datum=_Pass, gamma=Degrees, scale=Scalar)\n    test 572 pygeodesy.namedTuples.LatLonDatum5Tuple.lat: 0.5\n    test 573 pygeodesy.namedTuples.LatLonDatum5Tuple.lon: 0.5\n    test 574 pygeodesy.namedTuples.LatLonDatum5Tuple.datum: 0.5\n    test 575 pygeodesy.namedTuples.LatLonDatum5Tuple.gamma: 0.5\n    test 576 pygeodesy.namedTuples.LatLonDatum5Tuple.scale: 0.5\n    test 577 pygeodesy.namedTuples.LatLonDatum5Tuple._validated: True\n    test 578 pygeodesy.namedTuples.LatLonDatum5Tuple._validated: True\n    test 579 pygeodesy.namedTuples: LatLonPrec3Tuple(lat=0.5, lon=0.5, precision=0)\n    test 580 pygeodesy.namedTuples: LatLonPrec3Tuple(lat=Lat, lon=Lon, precision=Precision_)\n    test 581 pygeodesy.namedTuples.LatLonPrec3Tuple.lat: 0.5\n    test 582 pygeodesy.namedTuples.LatLonPrec3Tuple.lon: 0.5\n    test 583 pygeodesy.namedTuples.LatLonPrec3Tuple.precision: 0.5\n    test 584 pygeodesy.namedTuples.LatLonPrec3Tuple._validated: True\n    test 585 pygeodesy.namedTuples.LatLonPrec3Tuple._validated: True\n    test 586 pygeodesy.namedTuples: LatLonPrec5Tuple(lat=0.5, lon=0.5, precision=0, height=0.5, radius=0.5)\n    test 587 pygeodesy.namedTuples: LatLonPrec5Tuple(lat=Lat, lon=Lon, precision=Precision_, height=Height, radius=Radius)\n    test 588 pygeodesy.namedTuples.LatLonPrec5Tuple.lat: 0.5\n    test 589 pygeodesy.namedTuples.LatLonPrec5Tuple.lon: 0.5\n    test 590 pygeodesy.namedTuples.LatLonPrec5Tuple.precision: 0.5\n    test 591 pygeodesy.namedTuples.LatLonPrec5Tuple.height: 0.5\n    test 592 pygeodesy.namedTuples.LatLonPrec5Tuple.radius: 0.5\n    test 593 pygeodesy.namedTuples.LatLonPrec5Tuple._validated: True\n    test 594 pygeodesy.namedTuples.LatLonPrec5Tuple._validated: True\n    test 595 pygeodesy.namedTuples: NearestOn2Tuple(closest=0.5, fraction=0.5)\n    test 596 pygeodesy.namedTuples: NearestOn2Tuple(closest=_Pass, fraction=_Pass)\n    test 597 pygeodesy.namedTuples.NearestOn2Tuple.closest: 0.5\n    test 598 pygeodesy.namedTuples.NearestOn2Tuple.fraction: 0.5\n    test 599 pygeodesy.namedTuples.NearestOn2Tuple._validated: True\n    test 600 pygeodesy.namedTuples.NearestOn2Tuple._validated: True\n    test 601 pygeodesy.namedTuples: NearestOn3Tuple(closest=0.5, distance=0.5, angle=0.5)\n    test 602 pygeodesy.namedTuples: NearestOn3Tuple(closest=_Pass, distance=Meter, angle=Degrees)\n    test 603 pygeodesy.namedTuples.NearestOn3Tuple.closest: 0.5\n    test 604 pygeodesy.namedTuples.NearestOn3Tuple.distance: 0.5\n    test 605 pygeodesy.namedTuples.NearestOn3Tuple.angle: 0.5\n    test 606 pygeodesy.namedTuples.NearestOn3Tuple._validated: True\n    test 607 pygeodesy.namedTuples.NearestOn3Tuple._validated: True\n    test 608 pygeodesy.namedTuples: NearestOn5Tuple(lat=0.5, lon=0.5, distance=0.5, angle=0.5, height=0.5)\n    test 609 pygeodesy.namedTuples: NearestOn5Tuple(lat=Lat, lon=Lon, distance=Degrees, angle=Degrees, height=Meter)\n    test 610 pygeodesy.namedTuples.NearestOn5Tuple.lat: 0.5\n    test 611 pygeodesy.namedTuples.NearestOn5Tuple.lon: 0.5\n    test 612 pygeodesy.namedTuples.NearestOn5Tuple.distance: 0.5\n    test 613 pygeodesy.namedTuples.NearestOn5Tuple.angle: 0.5\n    test 614 pygeodesy.namedTuples.NearestOn5Tuple.height: 0.5\n    test 615 pygeodesy.namedTuples.NearestOn5Tuple._validated: True\n    test 616 pygeodesy.namedTuples.NearestOn5Tuple._validated: True\n    test 617 pygeodesy.namedTuples: NearestOn6Tuple(closest=0.5, distance=0.5, fi=0.5, j=0, start=0.5, end=0.5)\n    test 618 pygeodesy.namedTuples: NearestOn6Tuple(closest=_Pass, distance=Meter, fi=FIx, j=Number_, start=_Pass, end=_Pass)\n    test 619 pygeodesy.namedTuples.NearestOn6Tuple.closest: 0.5\n    test 620 pygeodesy.namedTuples.NearestOn6Tuple.distance: 0.5\n    test 621 pygeodesy.namedTuples.NearestOn6Tuple.fi: 0.5\n    test 622 pygeodesy.namedTuples.NearestOn6Tuple.j: 0.5\n    test 623 pygeodesy.namedTuples.NearestOn6Tuple.start: 0.5\n    test 624 pygeodesy.namedTuples.NearestOn6Tuple.end: 0.5\n    test 625 pygeodesy.namedTuples.NearestOn6Tuple._validated: True\n    test 626 pygeodesy.namedTuples.NearestOn6Tuple._validated: True\n    test 627 pygeodesy.namedTuples: NearestOn8Tuple(closest=0.5, distance=0.5, fi=0.5, j=0, start=0.5, end=0.5, initial=0.5, final=0.5)\n    test 628 pygeodesy.namedTuples: NearestOn8Tuple(closest=_Pass, distance=Meter, fi=FIx, j=Number_, start=_Pass, end=_Pass, initial=Bearing, final=Bearing)\n    test 629 pygeodesy.namedTuples.NearestOn8Tuple.closest: 0.5\n    test 630 pygeodesy.namedTuples.NearestOn8Tuple.distance: 0.5\n    test 631 pygeodesy.namedTuples.NearestOn8Tuple.fi: 0.5\n    test 632 pygeodesy.namedTuples.NearestOn8Tuple.j: 0.5\n    test 633 pygeodesy.namedTuples.NearestOn8Tuple.start: 0.5\n    test 634 pygeodesy.namedTuples.NearestOn8Tuple.end: 0.5\n    test 635 pygeodesy.namedTuples.NearestOn8Tuple.initial: 0.5\n    test 636 pygeodesy.namedTuples.NearestOn8Tuple.final: 0.5\n    test 637 pygeodesy.namedTuples.NearestOn8Tuple._validated: True\n    test 638 pygeodesy.namedTuples.NearestOn8Tuple._validated: True\n    test 639 pygeodesy.namedTuples: PhiLam2Tuple(phi=0.5, lam=0.5)\n    test 640 pygeodesy.namedTuples: PhiLam2Tuple(phi=Phi, lam=Lam)\n    test 641 pygeodesy.namedTuples.PhiLam2Tuple.phi: 0.5\n    test 642 pygeodesy.namedTuples.PhiLam2Tuple.lam: 0.5\n    test 643 pygeodesy.namedTuples.PhiLam2Tuple._validated: True\n    test 644 pygeodesy.namedTuples.PhiLam2Tuple._validated: True\n    test 645 pygeodesy.namedTuples: PhiLam3Tuple(phi=0.5, lam=0.5, height=0.5)\n    test 646 pygeodesy.namedTuples: PhiLam3Tuple(phi=Phi, lam=Lam, height=Height)\n    test 647 pygeodesy.namedTuples.PhiLam3Tuple.phi: 0.5\n    test 648 pygeodesy.namedTuples.PhiLam3Tuple.lam: 0.5\n    test 649 pygeodesy.namedTuples.PhiLam3Tuple.height: 0.5\n    test 650 pygeodesy.namedTuples.PhiLam3Tuple._validated: True\n    test 651 pygeodesy.namedTuples.PhiLam3Tuple._validated: True\n    test 652 pygeodesy.namedTuples: PhiLam4Tuple(phi=0.5, lam=0.5, height=0.5, datum=0.5)\n    test 653 pygeodesy.namedTuples: PhiLam4Tuple(phi=Phi, lam=Lam, height=Height, datum=_Pass)\n    test 654 pygeodesy.namedTuples.PhiLam4Tuple.phi: 0.5\n    test 655 pygeodesy.namedTuples.PhiLam4Tuple.lam: 0.5\n    test 656 pygeodesy.namedTuples.PhiLam4Tuple.height: 0.5\n    test 657 pygeodesy.namedTuples.PhiLam4Tuple.datum: 0.5\n    test 658 pygeodesy.namedTuples.PhiLam4Tuple._validated: True\n    test 659 pygeodesy.namedTuples.PhiLam4Tuple._validated: True\n    test 660 pygeodesy.namedTuples: Point3Tuple(x=0.5, y=0.5, ll=0.5)\n    test 661 pygeodesy.namedTuples: Point3Tuple(x=Meter, y=Meter, ll=_Pass)\n    test 662 pygeodesy.namedTuples.Point3Tuple.x: 0.5\n    test 663 pygeodesy.namedTuples.Point3Tuple.y: 0.5\n    test 664 pygeodesy.namedTuples.Point3Tuple.ll: 0.5\n    test 665 pygeodesy.namedTuples.Point3Tuple._validated: True\n    test 666 pygeodesy.namedTuples.Point3Tuple._validated: True\n    test 667 pygeodesy.namedTuples: Points2Tuple(number=0, points=0.5)\n    test 668 pygeodesy.namedTuples: Points2Tuple(number=Number_, points=_Pass)\n    test 669 pygeodesy.namedTuples.Points2Tuple.number: 0.5\n    test 670 pygeodesy.namedTuples.Points2Tuple.points: 0.5\n    test 671 pygeodesy.namedTuples.Points2Tuple._validated: True\n    test 672 pygeodesy.namedTuples.Points2Tuple._validated: True\n    test 673 pygeodesy.namedTuples: Reverse4Tuple(lat=0.5, lon=0.5, gamma=0.5, scale=0.5)\n    test 674 pygeodesy.namedTuples: Reverse4Tuple(lat=Lat, lon=Lon, gamma=Degrees, scale=Scalar)\n    test 675 pygeodesy.namedTuples.Reverse4Tuple.lat: 0.5\n    test 676 pygeodesy.namedTuples.Reverse4Tuple.lon: 0.5\n    test 677 pygeodesy.namedTuples.Reverse4Tuple.gamma: 0.5\n    test 678 pygeodesy.namedTuples.Reverse4Tuple.scale: 0.5\n    test 679 pygeodesy.namedTuples.Reverse4Tuple._validated: True\n    test 680 pygeodesy.namedTuples.Reverse4Tuple._validated: True\n    test 681 pygeodesy.namedTuples: Triangle7Tuple(A=0.5, a=0.5, B=0.5, b=0.5, C=0.5, c=0.5, area=0.5)\n    test 682 pygeodesy.namedTuples: Triangle7Tuple(A=Degrees, a=Meter, B=Degrees, b=Meter, C=Degrees, c=Meter, area=Meter2)\n    test 683 pygeodesy.namedTuples.Triangle7Tuple.A: 0.5\n    test 684 pygeodesy.namedTuples.Triangle7Tuple.a: 0.5\n    test 685 pygeodesy.namedTuples.Triangle7Tuple.B: 0.5\n    test 686 pygeodesy.namedTuples.Triangle7Tuple.b: 0.5\n    test 687 pygeodesy.namedTuples.Triangle7Tuple.C: 0.5\n    test 688 pygeodesy.namedTuples.Triangle7Tuple.c: 0.5\n    test 689 pygeodesy.namedTuples.Triangle7Tuple.area: 0.5\n    test 690 pygeodesy.namedTuples.Triangle7Tuple._validated: True\n    test 691 pygeodesy.namedTuples.Triangle7Tuple._validated: True\n    test 692 pygeodesy.namedTuples: Triangle8Tuple(A=0.5, a=0.5, B=0.5, b=0.5, C=0.5, c=0.5, D=0.5, E=0.5)\n    test 693 pygeodesy.namedTuples: Triangle8Tuple(A=Radians, a=Radians, B=Radians, b=Radians, C=Radians, c=Radians, D=Radians, E=Radians)\n    test 694 pygeodesy.namedTuples.Triangle8Tuple.A: 0.5\n    test 695 pygeodesy.namedTuples.Triangle8Tuple.a: 0.5\n    test 696 pygeodesy.namedTuples.Triangle8Tuple.B: 0.5\n    test 697 pygeodesy.namedTuples.Triangle8Tuple.b: 0.5\n    test 698 pygeodesy.namedTuples.Triangle8Tuple.C: 0.5\n    test 699 pygeodesy.namedTuples.Triangle8Tuple.c: 0.5\n    test 700 pygeodesy.namedTuples.Triangle8Tuple.D: 0.5\n    test 701 pygeodesy.namedTuples.Triangle8Tuple.E: 0.5\n    test 702 pygeodesy.namedTuples.Triangle8Tuple._validated: True\n    test 703 pygeodesy.namedTuples.Triangle8Tuple._validated: True\n    test 704 pygeodesy.namedTuples: Trilaterate5Tuple(min=0.5, minPoint=0.5, max=0.5, maxPoint=0.5, n=0)\n    test 705 pygeodesy.namedTuples: Trilaterate5Tuple(min=Meter, minPoint=_Pass, max=Meter, maxPoint=_Pass, n=Number_)\n    test 706 pygeodesy.namedTuples.Trilaterate5Tuple.min: 0.5\n    test 707 pygeodesy.namedTuples.Trilaterate5Tuple.minPoint: 0.5\n    test 708 pygeodesy.namedTuples.Trilaterate5Tuple.max: 0.5\n    test 709 pygeodesy.namedTuples.Trilaterate5Tuple.maxPoint: 0.5\n    test 710 pygeodesy.namedTuples.Trilaterate5Tuple.n: 0.5\n    test 711 pygeodesy.namedTuples.Trilaterate5Tuple._validated: True\n    test 712 pygeodesy.namedTuples.Trilaterate5Tuple._validated: True\n    test 713 pygeodesy.namedTuples: UtmUps2Tuple(zone=0, hemipole='0.5')\n    test 714 pygeodesy.namedTuples: UtmUps2Tuple(zone=Number_, hemipole=Str)\n    test 715 pygeodesy.namedTuples.UtmUps2Tuple.zone: 0.5\n    test 716 pygeodesy.namedTuples.UtmUps2Tuple.hemipole: 0.5\n    test 717 pygeodesy.namedTuples.UtmUps2Tuple._validated: True\n    test 718 pygeodesy.namedTuples.UtmUps2Tuple._validated: True\n    test 719 pygeodesy.namedTuples: UtmUps5Tuple(zone=0, hemipole='0.5', easting=0.5, northing=0.5, band='0.5')\n    test 720 pygeodesy.namedTuples: UtmUps5Tuple(zone=Number_, hemipole=Str, easting=Easting, northing=Northing, band=Band)\n    test 721 pygeodesy.namedTuples.UtmUps5Tuple.zone: 0.5\n    test 722 pygeodesy.namedTuples.UtmUps5Tuple.hemipole: 0.5\n    test 723 pygeodesy.namedTuples.UtmUps5Tuple.easting: 0.5\n    test 724 pygeodesy.namedTuples.UtmUps5Tuple.northing: 0.5\n    test 725 pygeodesy.namedTuples.UtmUps5Tuple.band: 0.5\n    test 726 pygeodesy.namedTuples.UtmUps5Tuple._validated: True\n    test 727 pygeodesy.namedTuples.UtmUps5Tuple._validated: True\n    test 728 pygeodesy.namedTuples: UtmUps8Tuple(zone=0, hemipole='0.5', easting=0.5, northing=0.5, band='0.5', datum=0.5, gamma=0.5, scale=0.5)\n    test 729 pygeodesy.namedTuples: UtmUps8Tuple(zone=Number_, hemipole=Str, easting=Easting, northing=Northing, band=Band, datum=_Pass, gamma=Degrees, scale=Scalar)\n    test 730 pygeodesy.namedTuples.UtmUps8Tuple.zone: 0.5\n    test 731 pygeodesy.namedTuples.UtmUps8Tuple.hemipole: 0.5\n    test 732 pygeodesy.namedTuples.UtmUps8Tuple.easting: 0.5\n    test 733 pygeodesy.namedTuples.UtmUps8Tuple.northing: 0.5\n    test 734 pygeodesy.namedTuples.UtmUps8Tuple.band: 0.5\n    test 735 pygeodesy.namedTuples.UtmUps8Tuple.datum: 0.5\n    test 736 pygeodesy.namedTuples.UtmUps8Tuple.gamma: 0.5\n    test 737 pygeodesy.namedTuples.UtmUps8Tuple.scale: 0.5\n    test 738 pygeodesy.namedTuples.UtmUps8Tuple._validated: True\n    test 739 pygeodesy.namedTuples.UtmUps8Tuple._validated: True\n    test 740 pygeodesy.namedTuples: UtmUpsLatLon5Tuple(zone=0, band='0.5', hemipole='0.5', lat=0.5, lon=0.5)\n    test 741 pygeodesy.namedTuples: UtmUpsLatLon5Tuple(zone=Number_, band=Band, hemipole=Str, lat=Lat, lon=Lon)\n    test 742 pygeodesy.namedTuples.UtmUpsLatLon5Tuple.zone: 0.5\n    test 743 pygeodesy.namedTuples.UtmUpsLatLon5Tuple.band: 0.5\n    test 744 pygeodesy.namedTuples.UtmUpsLatLon5Tuple.hemipole: 0.5\n    test 745 pygeodesy.namedTuples.UtmUpsLatLon5Tuple.lat: 0.5\n    test 746 pygeodesy.namedTuples.UtmUpsLatLon5Tuple.lon: 0.5\n    test 747 pygeodesy.namedTuples.UtmUpsLatLon5Tuple._validated: True\n    test 748 pygeodesy.namedTuples.UtmUpsLatLon5Tuple._validated: True\n    test 749 pygeodesy.namedTuples: Vector2Tuple(x=0.5, y=0.5)\n    test 750 pygeodesy.namedTuples: Vector2Tuple(x=Scalar, y=Scalar)\n    test 751 pygeodesy.namedTuples.Vector2Tuple.x: 0.5\n    test 752 pygeodesy.namedTuples.Vector2Tuple.y: 0.5\n    test 753 pygeodesy.namedTuples.Vector2Tuple._validated: True\n    test 754 pygeodesy.namedTuples.Vector2Tuple._validated: True\n    test 755 pygeodesy.namedTuples: Vector3Tuple(x=0.5, y=0.5, z=0.5)\n    test 756 pygeodesy.namedTuples: Vector3Tuple(x=Scalar, y=Scalar, z=Scalar)\n    test 757 pygeodesy.namedTuples.Vector3Tuple.x: 0.5\n    test 758 pygeodesy.namedTuples.Vector3Tuple.y: 0.5\n    test 759 pygeodesy.namedTuples.Vector3Tuple.z: 0.5\n    test 760 pygeodesy.namedTuples.Vector3Tuple._validated: True\n    test 761 pygeodesy.namedTuples.Vector3Tuple._validated: True\n    test 762 pygeodesy.namedTuples: Vector4Tuple(x=0.5, y=0.5, z=0.5, h=0.5)\n    test 763 pygeodesy.namedTuples: Vector4Tuple(x=Scalar, y=Scalar, z=Scalar, h=Height)\n    test 764 pygeodesy.namedTuples.Vector4Tuple.x: 0.5\n    test 765 pygeodesy.namedTuples.Vector4Tuple.y: 0.5\n    test 766 pygeodesy.namedTuples.Vector4Tuple.z: 0.5\n    test 767 pygeodesy.namedTuples.Vector4Tuple.h: 0.5\n    test 768 pygeodesy.namedTuples.Vector4Tuple._validated: True\n    test 769 pygeodesy.namedTuples.Vector4Tuple._validated: True\n# lazily imported pygeodesy.osgr by bases.py line 199\n    test 770 pygeodesy.points: Shape2Tuple(nrows=0, ncols=0)\n    test 771 pygeodesy.points: Shape2Tuple(nrows=Number_, ncols=Number_)\n    test 772 pygeodesy.points.Shape2Tuple.nrows: 0.5\n    test 773 pygeodesy.points.Shape2Tuple.ncols: 0.5\n    test 774 pygeodesy.points.Shape2Tuple._validated: True\n    test 775 pygeodesy.points.Shape2Tuple._validated: True\n# lazily imported pygeodesy.resections by bases.py line 199\n    test 776 pygeodesy.resections: Collins5Tuple(pointP=0.5, pointH=0.5, a=0.5, b=0.5, c=0.5)\n    test 777 pygeodesy.resections: Collins5Tuple(pointP=_Pass, pointH=_Pass, a=Distance, b=Distance, c=Distance)\n    test 778 pygeodesy.resections.Collins5Tuple.pointP: 0.5\n    test 779 pygeodesy.resections.Collins5Tuple.pointH: 0.5\n    test 780 pygeodesy.resections.Collins5Tuple.a: 0.5\n    test 781 pygeodesy.resections.Collins5Tuple.b: 0.5\n    test 782 pygeodesy.resections.Collins5Tuple.c: 0.5\n    test 783 pygeodesy.resections.Collins5Tuple._validated: True\n    test 784 pygeodesy.resections.Collins5Tuple._validated: True\n    test 785 pygeodesy.resections: Survey3Tuple(PA=0.5, PB=0.5, PC=0.5)\n    test 786 pygeodesy.resections: Survey3Tuple(PA=Distance, PB=Distance, PC=Distance)\n    test 787 pygeodesy.resections.Survey3Tuple.PA: 0.5\n    test 788 pygeodesy.resections.Survey3Tuple.PB: 0.5\n    test 789 pygeodesy.resections.Survey3Tuple.PC: 0.5\n    test 790 pygeodesy.resections.Survey3Tuple._validated: True\n    test 791 pygeodesy.resections.Survey3Tuple._validated: True\n    test 792 pygeodesy.resections: Tienstra7Tuple(pointP=0.5, A=0.5, B=0.5, C=0.5, a=0.5, b=0.5, c=0.5)\n    test 793 pygeodesy.resections: Tienstra7Tuple(pointP=_Pass, A=Degrees, B=Degrees, C=Degrees, a=Distance, b=Distance, c=Distance)\n    test 794 pygeodesy.resections.Tienstra7Tuple.pointP: 0.5\n    test 795 pygeodesy.resections.Tienstra7Tuple.A: 0.5\n    test 796 pygeodesy.resections.Tienstra7Tuple.B: 0.5\n    test 797 pygeodesy.resections.Tienstra7Tuple.C: 0.5\n    test 798 pygeodesy.resections.Tienstra7Tuple.a: 0.5\n    test 799 pygeodesy.resections.Tienstra7Tuple.b: 0.5\n    test 800 pygeodesy.resections.Tienstra7Tuple.c: 0.5\n    test 801 pygeodesy.resections.Tienstra7Tuple._validated: True\n    test 802 pygeodesy.resections.Tienstra7Tuple._validated: True\n    test 803 pygeodesy.resections: TriAngle5Tuple(radA=0.5, radB=0.5, radC=0.5, rIn=0.5, area=0.5)\n    test 804 pygeodesy.resections: TriAngle5Tuple(radA=Radians, radB=Radians, radC=Radians, rIn=Distance, area=_Pass)\n    test 805 pygeodesy.resections.TriAngle5Tuple.radA: 0.5\n    test 806 pygeodesy.resections.TriAngle5Tuple.radB: 0.5\n    test 807 pygeodesy.resections.TriAngle5Tuple.radC: 0.5\n    test 808 pygeodesy.resections.TriAngle5Tuple.rIn: 0.5\n    test 809 pygeodesy.resections.TriAngle5Tuple.area: 0.5\n    test 810 pygeodesy.resections.TriAngle5Tuple._validated: True\n    test 811 pygeodesy.resections.TriAngle5Tuple._validated: True\n    test 812 pygeodesy.resections: TriSide2Tuple(a=0.5, radA=0.5)\n    test 813 pygeodesy.resections: TriSide2Tuple(a=Distance, radA=Radians)\n    test 814 pygeodesy.resections.TriSide2Tuple.a: 0.5\n    test 815 pygeodesy.resections.TriSide2Tuple.radA: 0.5\n    test 816 pygeodesy.resections.TriSide2Tuple._validated: True\n    test 817 pygeodesy.resections.TriSide2Tuple._validated: True\n    test 818 pygeodesy.resections: TriSide4Tuple(a=0.5, b=0.5, radC=0.5, d=0.5)\n    test 819 pygeodesy.resections: TriSide4Tuple(a=Distance, b=Distance, radC=Radians, d=Distance)\n    test 820 pygeodesy.resections.TriSide4Tuple.a: 0.5\n    test 821 pygeodesy.resections.TriSide4Tuple.b: 0.5\n    test 822 pygeodesy.resections.TriSide4Tuple.radC: 0.5\n    test 823 pygeodesy.resections.TriSide4Tuple.d: 0.5\n    test 824 pygeodesy.resections.TriSide4Tuple._validated: True\n    test 825 pygeodesy.resections.TriSide4Tuple._validated: True\n# lazily imported pygeodesy.simplify by bases.py line 199\n# lazily imported pygeodesy.sphericalBase by bases.py line 199\n# lazily imported pygeodesy.sphericalNvector by bases.py line 199\n# lazily imported pygeodesy.sphericalTrigonometry by bases.py line 199\n# lazily imported pygeodesy.trf by bases.py line 199\n    test 826 pygeodesy.trf: TRFXform7Tuple(tx=0.5, ty=0.5, tz=0.5, s=0.5, sx=0.5, sy=0.5, sz=0.5)\n    test 827 pygeodesy.trf: TRFXform7Tuple(tx=Float, ty=Float, tz=Float, s=Float, sx=Float, sy=Float, sz=Float)\n    test 828 pygeodesy.trf.TRFXform7Tuple.tx: 0.5\n    test 829 pygeodesy.trf.TRFXform7Tuple.ty: 0.5\n    test 830 pygeodesy.trf.TRFXform7Tuple.tz: 0.5\n    test 831 pygeodesy.trf.TRFXform7Tuple.s: 0.5\n    test 832 pygeodesy.trf.TRFXform7Tuple.sx: 0.5\n    test 833 pygeodesy.trf.TRFXform7Tuple.sy: 0.5\n    test 834 pygeodesy.trf.TRFXform7Tuple.sz: 0.5\n    test 835 pygeodesy.trf.TRFXform7Tuple._validated: True\n    test 836 pygeodesy.trf.TRFXform7Tuple._validated: True\n# lazily imported pygeodesy.utmups by bases.py line 199\n# lazily imported pygeodesy.vector2d by bases.py line 199\n    test 837 pygeodesy.vector2d: Circin6Tuple(radius=0.5, center=0.5, deltas=0.5, cA=0.5, cB=0.5, cC=0.5)\n    test 838 pygeodesy.vector2d: Circin6Tuple(radius=Radius, center=_Pass, deltas=_Pass, cA=_Pass, cB=_Pass, cC=_Pass)\n    test 839 pygeodesy.vector2d.Circin6Tuple.radius: 0.5\n    test 840 pygeodesy.vector2d.Circin6Tuple.center: 0.5\n    test 841 pygeodesy.vector2d.Circin6Tuple.deltas: 0.5\n    test 842 pygeodesy.vector2d.Circin6Tuple.cA: 0.5\n    test 843 pygeodesy.vector2d.Circin6Tuple.cB: 0.5\n    test 844 pygeodesy.vector2d.Circin6Tuple.cC: 0.5\n    test 845 pygeodesy.vector2d.Circin6Tuple._validated: True\n    test 846 pygeodesy.vector2d.Circin6Tuple._validated: True\n    test 847 pygeodesy.vector2d: Circum3Tuple(radius=0.5, center=0.5, deltas=0.5)\n    test 848 pygeodesy.vector2d: Circum3Tuple(radius=Radius, center=_Pass, deltas=_Pass)\n    test 849 pygeodesy.vector2d.Circum3Tuple.radius: 0.5\n    test 850 pygeodesy.vector2d.Circum3Tuple.center: 0.5\n    test 851 pygeodesy.vector2d.Circum3Tuple.deltas: 0.5\n    test 852 pygeodesy.vector2d.Circum3Tuple._validated: True\n    test 853 pygeodesy.vector2d.Circum3Tuple._validated: True\n    test 854 pygeodesy.vector2d: Circum4Tuple(radius=0.5, center=0.5, rank=0, residuals=0.5)\n    test 855 pygeodesy.vector2d: Circum4Tuple(radius=Radius, center=_Pass, rank=Int, residuals=_Pass)\n    test 856 pygeodesy.vector2d.Circum4Tuple.radius: 0.5\n    test 857 pygeodesy.vector2d.Circum4Tuple.center: 0.5\n    test 858 pygeodesy.vector2d.Circum4Tuple.rank: 0.5\n    test 859 pygeodesy.vector2d.Circum4Tuple.residuals: 0.5\n    test 860 pygeodesy.vector2d.Circum4Tuple._validated: True\n    test 861 pygeodesy.vector2d.Circum4Tuple._validated: True\n    test 862 pygeodesy.vector2d: Meeus2Tuple(radius=0.5, Type=0.5)\n    test 863 pygeodesy.vector2d: Meeus2Tuple(radius=Radius, Type=_Pass)\n    test 864 pygeodesy.vector2d.Meeus2Tuple.radius: 0.5\n    test 865 pygeodesy.vector2d.Meeus2Tuple.Type: 0.5\n    test 866 pygeodesy.vector2d.Meeus2Tuple._validated: True\n    test 867 pygeodesy.vector2d.Meeus2Tuple._validated: True\n    test 868 pygeodesy.vector2d: Radii11Tuple(rA=0.5, rB=0.5, rC=0.5, cR=0.5, rIn=0.5, riS=0.5, roS=0.5, a=0.5, b=0.5, c=0.5, s=0.5)\n    test 869 pygeodesy.vector2d: Radii11Tuple(rA=Meter, rB=Meter, rC=Meter, cR=Meter, rIn=Meter, riS=Meter, roS=Meter, a=Meter, b=Meter, c=Meter, s=Meter)\n    test 870 pygeodesy.vector2d.Radii11Tuple.rA: 0.5\n    test 871 pygeodesy.vector2d.Radii11Tuple.rB: 0.5\n    test 872 pygeodesy.vector2d.Radii11Tuple.rC: 0.5\n    test 873 pygeodesy.vector2d.Radii11Tuple.cR: 0.5\n    test 874 pygeodesy.vector2d.Radii11Tuple.rIn: 0.5\n    test 875 pygeodesy.vector2d.Radii11Tuple.riS: 0.5\n    test 876 pygeodesy.vector2d.Radii11Tuple.roS: 0.5\n    test 877 pygeodesy.vector2d.Radii11Tuple.a: 0.5\n    test 878 pygeodesy.vector2d.Radii11Tuple.b: 0.5\n    test 879 pygeodesy.vector2d.Radii11Tuple.c: 0.5\n    test 880 pygeodesy.vector2d.Radii11Tuple.s: 0.5\n    test 881 pygeodesy.vector2d.Radii11Tuple._validated: True\n    test 882 pygeodesy.vector2d.Radii11Tuple._validated: True\n    test 883 pygeodesy.vector2d: Soddy4Tuple(radius=0.5, center=0.5, deltas=0.5, outer=0.5)\n    test 884 pygeodesy.vector2d: Soddy4Tuple(radius=Radius, center=_Pass, deltas=_Pass, outer=Radius)\n    test 885 pygeodesy.vector2d.Soddy4Tuple.radius: 0.5\n    test 886 pygeodesy.vector2d.Soddy4Tuple.center: 0.5\n    test 887 pygeodesy.vector2d.Soddy4Tuple.deltas: 0.5\n    test 888 pygeodesy.vector2d.Soddy4Tuple.outer: 0.5\n    test 889 pygeodesy.vector2d.Soddy4Tuple._validated: True\n    test 890 pygeodesy.vector2d.Soddy4Tuple._validated: True\n    test 891 pygeodesy.vector2d: Triaxum5Tuple(a=0.5, b=0.5, c=0.5, rank=0, residuals=0.5)\n    test 892 pygeodesy.vector2d: Triaxum5Tuple(a=Radius, b=Radius, c=Radius, rank=Int, residuals=_Pass)\n    test 893 pygeodesy.vector2d.Triaxum5Tuple.a: 0.5\n    test 894 pygeodesy.vector2d.Triaxum5Tuple.b: 0.5\n    test 895 pygeodesy.vector2d.Triaxum5Tuple.c: 0.5\n    test 896 pygeodesy.vector2d.Triaxum5Tuple.rank: 0.5\n    test 897 pygeodesy.vector2d.Triaxum5Tuple.residuals: 0.5\n    test 898 pygeodesy.vector2d.Triaxum5Tuple._validated: True\n    test 899 pygeodesy.vector2d.Triaxum5Tuple._validated: True\n# lazily imported pygeodesy.webmercator by bases.py line 199\n    test 900 pygeodesy.webmercator: EasNorRadius3Tuple(easting=0.5, northing=0.5, radius=0.5)\n    test 901 pygeodesy.webmercator: EasNorRadius3Tuple(easting=Easting, northing=Northing, radius=Radius)\n    test 902 pygeodesy.webmercator.EasNorRadius3Tuple.easting: 0.5\n    test 903 pygeodesy.webmercator.EasNorRadius3Tuple.northing: 0.5\n    test 904 pygeodesy.webmercator.EasNorRadius3Tuple.radius: 0.5\n    test 905 pygeodesy.webmercator.EasNorRadius3Tuple._validated: True\n    test 906 pygeodesy.webmercator.EasNorRadius3Tuple._validated: True\n# lazily imported pygeodesy.wgrs by bases.py line 199\n# lazily imported pygeodesy.auxilats by bases.py line 199\n# lazily imported pygeodesy.geodesicx by bases.py line 199\n# lazily imported pygeodesy.rhumb by bases.py line 199\n    test 907 pygeodesy.rhumb.solve: RhumbSolve7Tuple(lat1=0.5, lon1=0.5, lat2=0.5, lon2=0.5, azi12=0.5, s12=0.5, S12=0.5)\n    test 908 pygeodesy.rhumb.solve: RhumbSolve7Tuple(lat1=Lat, lon1=Lon, lat2=Lat, lon2=Lon, azi12=Azimuth, s12=Meter, S12=Meter2)\n    test 909 pygeodesy.rhumb.solve.RhumbSolve7Tuple.lat1: 0.5\n    test 910 pygeodesy.rhumb.solve.RhumbSolve7Tuple.lon1: 0.5\n    test 911 pygeodesy.rhumb.solve.RhumbSolve7Tuple.lat2: 0.5\n    test 912 pygeodesy.rhumb.solve.RhumbSolve7Tuple.lon2: 0.5\n    test 913 pygeodesy.rhumb.solve.RhumbSolve7Tuple.azi12: 0.5\n    test 914 pygeodesy.rhumb.solve.RhumbSolve7Tuple.s12: 0.5\n    test 915 pygeodesy.rhumb.solve.RhumbSolve7Tuple.S12: 0.5\n    test 916 pygeodesy.rhumb.solve.RhumbSolve7Tuple._validated: True\n    test 917 pygeodesy.rhumb.solve.RhumbSolve7Tuple._validated: True\n    test 918 pygeodesy.triaxials.bases: Conformal5Tuple(x=0.5, y=0.5, z=0.5, scale=0.5, llk=0.5)\n    test 919 pygeodesy.triaxials.bases: Conformal5Tuple(x=Easting, y=Northing, z=_Pass, scale=Scalar, llk=_Pass)\n    test 920 pygeodesy.triaxials.bases.Conformal5Tuple.x: 0.5\n    test 921 pygeodesy.triaxials.bases.Conformal5Tuple.y: 0.5\n    test 922 pygeodesy.triaxials.bases.Conformal5Tuple.z: 0.5\n    test 923 pygeodesy.triaxials.bases.Conformal5Tuple.scale: 0.5\n    test 924 pygeodesy.triaxials.bases.Conformal5Tuple.llk: 0.5\n    test 925 pygeodesy.triaxials.bases.Conformal5Tuple._validated: True\n    test 926 pygeodesy.triaxials.bases.Conformal5Tuple._validated: True\n    test 927 pygeodesy.triaxials.conformal3: BetOmgGam5Tuple(bet=Ang, omg=Ang, gam=_Pass, scale=Scalar, llk=_Pass)\n    test 928 pygeodesy.triaxials.conformal3.BetOmgGam5Tuple.bet: 0.5\n    test 929 pygeodesy.triaxials.conformal3.BetOmgGam5Tuple.omg: 0.5\n    test 930 pygeodesy.triaxials.conformal3.BetOmgGam5Tuple.gam: 0.5\n    test 931 pygeodesy.triaxials.conformal3.BetOmgGam5Tuple.scale: 0.5\n    test 932 pygeodesy.triaxials.conformal3.BetOmgGam5Tuple.llk: 0.5\n    test 933 pygeodesy.triaxials.conformal3.BetOmgGam5Tuple._validated: True\n    test 934 pygeodesy.triaxials.conformal3.BetOmgGam5Tuple._validated: True\n    test 935 pygeodesy.triaxials.triaxial3: BetOmgAlp5Tuple(bet=Ang, omg=Ang, alp=_Pass, h=_HeightINT0, llk=_Pass)\n    test 936 pygeodesy.triaxials.triaxial3.BetOmgAlp5Tuple.bet: 0.5\n    test 937 pygeodesy.triaxials.triaxial3.BetOmgAlp5Tuple.omg: 0.5\n    test 938 pygeodesy.triaxials.triaxial3.BetOmgAlp5Tuple.alp: 0.5\n    test 939 pygeodesy.triaxials.triaxial3.BetOmgAlp5Tuple.h: 0.5\n    test 940 pygeodesy.triaxials.triaxial3.BetOmgAlp5Tuple.llk: 0.5\n    test 941 pygeodesy.triaxials.triaxial3.BetOmgAlp5Tuple._validated: True\n    test 942 pygeodesy.triaxials.triaxial3.BetOmgAlp5Tuple._validated: True\n    test 943 pygeodesy.triaxials.triaxial3: Cartesian5Tuple(x=0.5, y=0.5, z=0.5, h=0.5, llk=0.5)\n    test 944 pygeodesy.triaxials.triaxial3: Cartesian5Tuple(x=Scalar, y=Scalar, z=Scalar, h=Height, llk=_Pass)\n    test 945 pygeodesy.triaxials.triaxial3.Cartesian5Tuple.x: 0.5\n    test 946 pygeodesy.triaxials.triaxial3.Cartesian5Tuple.y: 0.5\n    test 947 pygeodesy.triaxials.triaxial3.Cartesian5Tuple.z: 0.5\n    test 948 pygeodesy.triaxials.triaxial3.Cartesian5Tuple.h: 0.5\n    test 949 pygeodesy.triaxials.triaxial3.Cartesian5Tuple.llk: 0.5\n    test 950 pygeodesy.triaxials.triaxial3.Cartesian5Tuple._validated: True\n    test 951 pygeodesy.triaxials.triaxial3.Cartesian5Tuple._validated: True\n    test 952 pygeodesy.triaxials.triaxial3: PhiLamZet5Tuple(phi=Ang, lam=Ang, zet=_Pass, h=_HeightINT0, llk=_Pass)\n    test 953 pygeodesy.triaxials.triaxial3.PhiLamZet5Tuple.phi: 0.5\n    test 954 pygeodesy.triaxials.triaxial3.PhiLamZet5Tuple.lam: 0.5\n    test 955 pygeodesy.triaxials.triaxial3.PhiLamZet5Tuple.zet: 0.5\n    test 956 pygeodesy.triaxials.triaxial3.PhiLamZet5Tuple.h: 0.5\n    test 957 pygeodesy.triaxials.triaxial3.PhiLamZet5Tuple.llk: 0.5\n    test 958 pygeodesy.triaxials.triaxial3.PhiLamZet5Tuple._validated: True\n    test 959 pygeodesy.triaxials.triaxial3.PhiLamZet5Tuple._validated: True\n    test 960 pygeodesy.triaxials.triaxial5: BetaOmega2Tuple(beta=0.5, omega=0.5)\n    test 961 pygeodesy.triaxials.triaxial5: BetaOmega2Tuple(beta=_Pass, omega=_Pass)\n    test 962 pygeodesy.triaxials.triaxial5.BetaOmega2Tuple.beta: 0.5\n    test 963 pygeodesy.triaxials.triaxial5.BetaOmega2Tuple.omega: 0.5\n    test 964 pygeodesy.triaxials.triaxial5.BetaOmega2Tuple._validated: True\n    test 965 pygeodesy.triaxials.triaxial5.BetaOmega2Tuple._validated: True\n    test 966 pygeodesy.triaxials.triaxial5: BetaOmega3Tuple(beta=0.5, omega=0.5, height=0.5)\n    test 967 pygeodesy.triaxials.triaxial5: BetaOmega3Tuple(beta=_Pass, omega=_Pass, height=Meter)\n    test 968 pygeodesy.triaxials.triaxial5.BetaOmega3Tuple.beta: 0.5\n    test 969 pygeodesy.triaxials.triaxial5.BetaOmega3Tuple.omega: 0.5\n    test 970 pygeodesy.triaxials.triaxial5.BetaOmega3Tuple.height: 0.5\n    test 971 pygeodesy.triaxials.triaxial5.BetaOmega3Tuple._validated: True\n    test 972 pygeodesy.triaxials.triaxial5.BetaOmega3Tuple._validated: True\n    test 973 pygeodesy.triaxials.triaxial5: Conformal2Tuple(x=0.5, y=0.5)\n    test 974 pygeodesy.triaxials.triaxial5: Conformal2Tuple(x=_Pass, y=_Pass)\n    test 975 pygeodesy.triaxials.triaxial5.Conformal2Tuple.x: 0.5\n    test 976 pygeodesy.triaxials.triaxial5.Conformal2Tuple.y: 0.5\n    test 977 pygeodesy.triaxials.triaxial5.Conformal2Tuple._validated: True\n    test 978 pygeodesy.triaxials.triaxial5.Conformal2Tuple._validated: True\n    test 979 pygeodesy.named._NamedTuple._validated: False\n\n    all 979 testNamedTuples.py tests passed (pygeodesy 26.3.26 PyPy 7.3.17 Python 3.10.14 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 107.427 ms\nrunning /opt/local/bin/p....y3.10 -W default ~/PyGeodesy/test/testNavlabExamples.py\n./pygeodesy/ellipsoidalNvector.py:61: DeprecationWarning: class L{Ned<pygeodesy.ellipsoidalNvector.Ned>} has been DEPRECATED on 2024.02.04, use class L{pygeodesy.Ned}.\n  deprecated_class(self.__class__)\n./test/testNavlabExamples.py:41: DeprecationWarning: method L{toRepr<pygeodesy.ellipsoidalNvector.Ned.toRepr>} has been DEPRECATED, use class L{pygeodesy.Ned}.\n  t.test(1, 'delta', delta.toRepr(prec=3), '[L:470357.384, B:45.109°, E:-2.12°]')  # DEPRECATED\n./test/testNavlabExamples.py:43: DeprecationWarning: Property_RO L{bearing<pygeodesy.ellipsoidalNvector.Ned.bearing>} has been DEPRECATED, use C{azimuth}.\n  t.test(1, 'bearing', delta.bearing, 45.109, fmt='%.3f')  # 45.109°\n./test/testNavlabExamples.py:44: DeprecationWarning: Property_RO L{length<pygeodesy.ellipsoidalNvector.Ned.length>} has been DEPRECATED, use C{slantrange}.\n  t.test(1, 'length', delta.length, 470357.384, fmt='%.3f')  # 470357.384 m\n./test/testNavlabExamples.py:63: DeprecationWarning: method L{toRepr<pygeodesy.ellipsoidalNvector.Ned.toRepr>} has been DEPRECATED, use class L{pygeodesy.Ned}.\n  t.test(2, 'delta', delta.toRepr(prec=3), '[L:3606.938, B:33.69°, E:-1.589°]')  # DEPRECATED\n./pygeodesy/ellipsoidalNvector.py:247: DeprecationWarning: Property_RO L{ned<pygeodesy.ellipsoidalNvector.Ned.ned>} has been DEPRECATED, use property C{ned4}.\n  dn = delta.ned[:3]  # XXX Ned4Tuple.to3Tuple\n./pygeodesy/deprecated/classes.py:33: DeprecationWarning: class L{Ned3Tuple<pygeodesy.deprecated.classes.Ned3Tuple>} has been DEPRECATED, use class L{Ned4Tuple}, ignoring item C{ltp}.\n  deprecated_class(cls)\n./test/testNavlabExamples.py:71: DeprecationWarning: method L{toRepr<pygeodesy.ellipsoidalNvector.Ned.toRepr>} has been DEPRECATED, use class L{pygeodesy.Ned}.\n  t.test(2, 'delta', delta.toRepr(prec=3), '[L:116807.681, B:222.493°, E:-0.524°]')  # DEPRECATED\n./pygeodesy/ellipsoidalKarney.py:94: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return self.datum.ellipsoid.geodesic\n./test/testNavlabExamples.py:143: DeprecationWarning: function L{toNed<pygeodesy.ellipsoidalNvector.toNed>} has been DEPRECATED, use L{pygeodesy.Aer}C{(bearing, elevation, distance).xyzLocal.toNed(B{Ned}, name=B{name})} or L{XyzLocal}C{(pygeodesy.Aer(bearing, elevation, distance)).toNed(B{Ned}, name=B{name})}.\n  d = ellipsoidalNvector.toNed(116809.178, 222.493, -0.5416)\n./test/testNavlabExamples.py:145: DeprecationWarning: Property_RO L{bearing<pygeodesy.ellipsoidalNvector.Ned.bearing>} has been DEPRECATED, use C{azimuth}.\n  TestsBase.test(t, 'bearing',   d.bearing, '227.507',  fmt='%.3f')  # '222.493'\n./test/testNavlabExamples.py:147: DeprecationWarning: Property_RO L{length<pygeodesy.ellipsoidalNvector.Ned.length>} has been DEPRECATED, use C{slantrange}.\n  TestsBase.test(t, 'length',    d.length, '116809.178',  fmt='%.3f')\n./test/testNavlabExamples.py:148: DeprecationWarning: method L{toVector3d<pygeodesy.ellipsoidalNvector.Ned.toVector3d>} has been DEPRECATED, use property L{xyz}.\n  v = d.toVector3d()\n# lazily imported pygeodesy.basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.DeprecationWarnings from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isint from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isLazy from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.issubclassof from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.iterNumpy2over from .iters by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.LazyImportError from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.karney by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.NN from .interns by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.normDMS from .dms by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.pairs from .streprs by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.printf from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.property_RO from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.typename from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.Datums from .datums by testNavlabExamples.py line 18\n# lazily imported pygeodesy.F_D from .dms by testNavlabExamples.py line 18\n# lazily imported pygeodesy.ellipsoidalExact by testNavlabExamples.py line 18\n# lazily imported pygeodesy.ellipsoidalNvector by testNavlabExamples.py line 18\n# lazily imported pygeodesy.ellipsoidalVincenty by testNavlabExamples.py line 18\n# lazily imported pygeodesy.sphericalNvector by testNavlabExamples.py line 18\n# lazily imported pygeodesy.sphericalTrigonometry by testNavlabExamples.py line 18\n# lazily imported pygeodesy.EcefVeness from .ecef by testNavlabExamples.py line 18\n# lazily imported pygeodesy.Ned from .ltpTuples by testNavlabExamples.py line 18\n# lazily imported pygeodesy.Ned4Tuple from .ltpTuples by testNavlabExamples.py line 18\n\n    testing testNavlabExamples.py 23.03.27 isLazy=3\n    test 1 Example 1 delta: [331730.863, 332998.501, 17398.304]\n    test 2 Example 1 delta: [L:470357.384, B:45.109°, E:-2.12°]\n    test 3 Example 1 elevation: -2.1198\n    test 4 Example 1 bearing: 45.109\n    test 5 Example 1 length: 470357.384\n\n    test 6 Example 1 delta: [331730.863, 332998.501, 17398.304]\n    test 7 Example 1 delta: <class 'pygeodesy.ltpTuples.Ned'>\n# lazily imported pygeodesy.ltp by ellipsoidalNvector.py line 201\n    test 8 Example 1 delta: (331730.863099, 332998.501491, 17398.304211, Ltp(lat0=1.0, lon0=2.0, height0=3.0, M=EcefMatrix(_0_0_=-0.034899, _0_1_=-0.017442, _0_2_=0.999239, _1_0_=0.999391, _1_1_=-0.000609, _1_2_=0.034894, _2_0_=0.0, _2_1_=0.999848, _2_2_=0.017452), ecef=EcefVeness(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name=''))\n    test 9 Example 1 delta: <class 'pygeodesy.ltpTuples.Ned4Tuple'>\n    test 10 Example 1 delta: <class 'pygeodesy.ecef.EcefVeness'>\n\n    test 11 Example 2 LatLon: 53.301°N, 063.435°E, +400.00m\n    test 12 Example 2 toNvector: (0.267, 0.535, 0.802, +400.00)\n    test 13 Example 2 delta: [3000.0, 2000.0, 100.0]\n    test 14 Example 2 delta: [L:3606.938, B:33.69°, E:-1.589°]\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by <frozen importlib._bootstrap> line 1075\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by <frozen importlib._bootstrap> line 1075\n# lazily imported pygeodesy.Conformal2Tuple from .triaxials.triaxial5 by <frozen importlib._bootstrap> line 1075\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by classes.py line 21\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by classes.py line 21\n# lazily imported pygeodesy.Conformal2Tuple from .triaxials.triaxial5 by classes.py line 21\n# lazily imported pygeodesy.deprecated by ltpTuples.py line 483\n    test 15 Example 2 destinationNed: 53.327702°N, 063.465119°E, +296.01m  FAILED, KNOWN, expected 53.327726°N, 063.464965°E, +299.138m\n    test 16 Example 2 delta: [-86126, -78900, 1069]\n    test 17 Example 2 delta: [L:116807.681, B:222.493°, E:-0.524°]\n    test 18 Example 2 destinationNed: 48.88667°N, 002.37472°E\n\n    test 19 Example 3 toLatLon: 39.379°N, 048.013°W, +4702059.83m\n\n    test 20 Example 4 toCartesian: [6373290.277, 222560.201, 110568.827]\n\n    test 21 Example 5 distanceTo: 332457\n\n    test 22 Example 6 intermediateChordTo: 89.799981°N, 180.0°E\n    test 23 Example 6 intermediateTo: 89.8°N, 180.0°E\n    test 24 Example 6 intermediateChordTo: 51.372294°N, 000.707192°E\n    test 25 Example 6 intermediateTo: 51.372084°N, 000.707337°E\n\n    test 26 Example 7 meanOf: 67.2362°N, 006.9175°W\n\n    test 27 Example 8 destination(pygeodesy.sphericalNvector): 79.991549°N, 090.017698°W\n    test 28 Example 8 destination(pygeodesy.sphericalTrigonometry): 79.991549°N, 090.017698°W\n    test 29 Example 8 destination(pygeodesy.ellipsoidalVincenty): 79.991584°N, 090.017621°W\n# lazily imported pygeodesy.ellipsoidalKarney by testNavlabExamples.py line 120\n# lazily imported pygeodesy.geodesicw by ellipsoids.py line 1074\n    test 30 Example 8 destination(pygeodesy.ellipsoidalKarney): 79.991584°N, 090.017621°W\n# lazily imported pygeodesy.geodesicx by ellipsoids.py line 1082\n# lazily imported pygeodesy.elliptic by gxline.py line 289\n    test 31 Example 8 destination(pygeodesy.ellipsoidalExact): 79.991584°N, 090.017621°W\n\n    test 32 Example 9 intersection: 40.318643°N, 055.901868°E\n\n    test 33 Example 10 crossTrackDistance: 11118\n\n    test 34 toNed: [-78901.1, -86126.6, 1104.1]\n    test 35 bearing: 227.507\n    test 36 elevation: -0.5416\n    test 37 length: 116809.178\n    test 38 toVector3d: (-86126.6, -78901.1, -1104.1)\n\n    19 of 38 testNavlabExamples.py tests (50.0%) FAILED, incl. 1 KNOWN plus 18 DeprecationWarnings (pygeodesy 26.3.26 PyPy 7.3.17 Python 3.10.14 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 75.682 ms\nrunning /opt/local/bin/p....y3.10 -W default ~/PyGeodesy/test/testOsgr.py\n./test/testOsgr.py:25: DeprecationWarning: method L{convertDatum<pygeodesy.ellipsoidalNvector.LatLon.convertDatum>} has been DEPRECATED, use method L{toDatum}.\n  r = p.convertDatum(Datums.OSGB36)\n./test/testOsgr.py:27: DeprecationWarning: method L{convertDatum<pygeodesy.ellipsoidalNvector.LatLon.convertDatum>} has been DEPRECATED, use method L{toDatum}.\n  r = r.convertDatum(Datums.WGS84)\n./test/testOsgr.py:25: DeprecationWarning: method L{convertDatum<pygeodesy.ellipsoidalVincenty.LatLon.convertDatum>} has been DEPRECATED, use method L{toDatum}.\n  r = p.convertDatum(Datums.OSGB36)\n./test/testOsgr.py:27: DeprecationWarning: method L{convertDatum<pygeodesy.ellipsoidalVincenty.LatLon.convertDatum>} has been DEPRECATED, use method L{toDatum}.\n  r = r.convertDatum(Datums.WGS84)\n./test/testOsgr.py:25: DeprecationWarning: method L{convertDatum<pygeodesy.ellipsoidalKarney.LatLon.convertDatum>} has been DEPRECATED, use method L{toDatum}.\n  r = p.convertDatum(Datums.OSGB36)\n./test/testOsgr.py:27: DeprecationWarning: method L{convertDatum<pygeodesy.ellipsoidalKarney.LatLon.convertDatum>} has been DEPRECATED, use method L{toDatum}.\n  r = r.convertDatum(Datums.WGS84)\n./pygeodesy/ellipsoidalKarney.py:94: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return self.datum.ellipsoid.geodesic\n./test/testOsgr.py:25: DeprecationWarning: method L{convertDatum<pygeodesy.ellipsoidalExact.LatLon.convertDatum>} has been DEPRECATED, use method L{toDatum}.\n  r = p.convertDatum(Datums.OSGB36)\n./test/testOsgr.py:27: DeprecationWarning: method L{convertDatum<pygeodesy.ellipsoidalExact.LatLon.convertDatum>} has been DEPRECATED, use method L{toDatum}.\n  r = r.convertDatum(Datums.WGS84)\n# lazily imported pygeodesy.basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.DeprecationWarnings from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isint from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isLazy from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.issubclassof from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.iterNumpy2over from .iters by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.LazyImportError from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.karney by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.NN from .interns by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.normDMS from .dms by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.pairs from .streprs by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.printf from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.property_RO from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.typename from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.F_D from .dms by testOsgr.py line 11\n# lazily imported pygeodesy.F_DEG from .dms by testOsgr.py line 11\n# lazily imported pygeodesy.F_DMS from .dms by testOsgr.py line 11\n# lazily imported pygeodesy.fstr from .streprs by testOsgr.py line 11\n# lazily imported pygeodesy.Datums from .datums by testOsgr.py line 11\n# lazily imported pygeodesy.Osgr from .osgr by testOsgr.py line 11\n# lazily imported pygeodesy.parseOSGR from .osgr by testOsgr.py line 11\n# lazily imported pygeodesy.toOsgr from .osgr by testOsgr.py line 11\n# lazily imported pygeodesy.ellipsoidalExact by testOsgr.py line 221\n# lazily imported pygeodesy.ellipsoidalKarney by testOsgr.py line 221\n# lazily imported pygeodesy.ellipsoidalNvector by testOsgr.py line 221\n# lazily imported pygeodesy.ellipsoidalVincenty by testOsgr.py line 221\n\n    testing testOsgr.py 23.03.27 (module pygeodesy.osgr 25.05.12) isLazy=3\n\n    testOSgr(pygeodesy.ellipsoidalNvector, 25.05.12)\n    test 1 WGS84: 51.4778°N, 000.0016°W\n# lazily imported pygeodesy.ecef by ellipsoidalNvector.py line 524\n    test 2 OSGB36: 51.477284°N, 000.00002°E\n    test 3 WGS84: 51.4778°N, 000.0016°W\n    test 4 OSgr1: TG 51409 13177\n    test 5 OSgr1: [G:TG, E:51409, N:13177]\n    test 6 iteration: None\n    test 7 toLatLon1: 52°39′28.72″N, 001°42′57.79″E\n    test 8 toLatLon1: 52.657979°N, 001.716052°E\n    test 9 iteration: 4\n    test 10 toOsgr1: 651409.903,313177.270\n    test 11 toOsgr1: 651409.903,313177.270\n    test 12 toOsgr1: TG5140990313177270\n    test 13 toLatLon2: 52°39′27.25″N, 001°43′04.52″E\n    test 14 toLatLon2: 52.65757°N, 001.717922°E  FAILED, KNOWN, expected 52.657570°N, 001.717922°E\n    test 15 iteration: 4\n    test 16 toOsgr2: 651409,313177\n    test 17 toOsgr2: 651409,313177\n    test 18 toOsgr3: TG 51409 13177\n    test 19 toLatLon3: (52.65798, 1.71605, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n# lazily imported pygeodesy.ktm by osgr.py line 108\n    test 20 toOsgr4: TG 51409 13177\n    test 21 toLatLon4: (52.657570000, 1.717910000, Datum(name='OSGB36', ellipsoid=Ellipsoids.Airy1830, transform=Transforms.OSGB36))\n    test 22 toLatLon4: (52.657569999, 1.717910045, Datum(name='OSGB36', ellipsoid=Ellipsoids.Airy1830, transform=Transforms.OSGB36))\n    test 23 toLatLon4: (52.657978296, 1.716040366, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 24 toLatLon4: (52.657978295, 1.716040411, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 25 toOsgr5: 0.001\n    test 26 toOsgr5: TG5140900013177000\n    test 27 toOsgr5: 651409.000,313177.000\n    test 28 toLatLon5: (52.657976595, 1.716038422, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n\n    test 29 OSGR1: TG 48251 11932\n    test 30 OSGR1: [G:TG, E:48251, N:11932]\n    test 31 OSGR2: TG 51409 13177\n    test 32 OSGR2: [G:TG, E:51409, N:13177]\n    test 33 OSGR3: TG 51409 13177\n    test 34 OSGR3: [G:TG, E:51409, N:13177]\n    test 35 OSGR4: TG 51409 13177\n    test 36 OSGR4: [G:TG, E:51409, N:13177]\n    test 37 OSGR5: 651409,313177\n    test 38 OSGR5: TG51409001317700\n    test 39 OSGR5: 651409,313177\n    test 40 OSGR5: 651409.000000,313177.000000\n    test 41 OSGR5: 651409.00,313177.00\n    test 42 OSGR5: [OSGR:651409.000,313177.000]\n    test 43 OSGR5: [OSGR:651409,313177]\n    test 44 OSGR5: [OSGR:651409.000,313177.000]\n    test 45 OSGR5: [OSGR:651,313]\n    test 46 OSGR6: 651409.000,313177.000\n    test 47 OSGR6: 651409,313177\n    test 48 OSGR6: (651409, 313177)\n    test 49 OSGR6: 651409,313177\n    test 50 OSGR6: 651409,313177\n    test 51 OSGR6: (651409, 313177)\n    test 52 OSGR6: 651409 313177\n\n    test 53 issue: 38\n    test 54 toOsgr: [G:TL, E:29158, N:35174]\n    test 55 toOsgr: 529158.072, 235174.785\n    test 56 toOsgr: OSGB36\n    test 57 toLatLonOSGB36: 51°59′58.37″N, 000°07′06.14″W\n    test 58 toLatLonOSGB36: OSGB36\n    test 59 toLatLonWGS84 : 52°00′00.0″N, 000°07′12.0″W\n    test 60 toLatLonWGS84 : WGS84\n\n    test 61 Osgr: [G:TQ, E:32014, N:23971]\n    test 62 Osgr: 532014.0, 123971.0\n    test 63 Osgr: OSGB36\n    test 64 toLatLonOSGB36: 50.999425N, 000.118417W\n    test 65 toLatLonOSGB36: OSGB36\n    test 66 toLatLonWGS84 : 50.999995N, 000.120004W\n    test 67 toLatLonWGS84 : WGS84\n    test 68 parseOSGR: [G:TQ, E:32014, N:23971]\n    test 69 parseOSGR: 532014.0, 123971.0\n    test 70 parseOSGR: OSGB36\n    test 71 toLatLonOSGB36: 50.999425N, 000.118417W\n    test 72 toLatLonOSGB36: OSGB36\n    test 73 toLatLonWGS84: 50.999995N, 000.120004W\n    test 74 toLatLonWGS84: WGS84\n    test 75 toOsgr: [G:TQ, E:32013, N:23971]\n    test 76 toOsgr: 532013.969, 123971.046\n    test 77 toOsgr: OSGB36\n    test 78 toLatLonOSGB36: 50.999426N, 000.118417W\n    test 79 toLatLonOSGB36: OSGB36\n    test 80 toLatLonWGS84 : 50.999995N, 000.120004W\n    test 81 toLatLonWGS84 : WGS84\n    test 82 toOsgr: [G:TQ, E:48853, N:24427]\n    test 83 toOsgr: 548853.602, 124427.985\n    test 84 toOsgr: OSGB36\n    test 85 toLatLonOSGB36: 50.999422N, 000.121618E\n    test 86 toLatLonOSGB36: OSGB36\n    test 87 toLatLonWGS84 : 50.999995N, 000.120004E\n    test 88 toLatLonWGS84 : WGS84\n\n    test 89 LatLon: 49.926244°N, 006.297934°W\n    test 90 datum: WGS84\n    test 91 datum: OSGB36\n    test 92 toOsgr: [G:SV, E:91645, N:11753]\n    test 93 datum: OSGB36\n    test 94 LatLon: 49.926244°N, 006.297934°W\n    test 95 datum: WGS84\n    test 96 distanceTo: 0.0103  FAILED, KNOWN, expected 0.0104\n\n    test 97 prec=-2: [G:SV, E:91600, N:11700]\n\n    test 98 toLatLon: 52.0N, 000.12W\n    test 99 toLatLon: 52.0N, 000.12W\n    test 100 toLatLon: 52.0N, 000.12W\n    test 101 toLatLon: 52.0N, 000.12W\n    test 102 toLatLon: 52.0N, 000.12W\n    test 103 toLatLon: 52.0N, 000.12W\n    test 104 toLatLon: 52.0N, 000.12W\n    test 105 toLatLon: 52.0N, 000.12W\n\n    testOSgr(pygeodesy.ellipsoidalVincenty, 25.05.26)\n    test 106 WGS84: 51.4778°N, 000.0016°W\n    test 107 OSGB36: 51.477284°N, 000.00002°E\n    test 108 WGS84: 51.4778°N, 000.0016°W\n    test 109 OSgr1: TG 51409 13177\n    test 110 OSgr1: [G:TG, E:51409, N:13177]\n    test 111 iteration: None\n    test 112 toLatLon1: 52°39′28.72″N, 001°42′57.79″E\n    test 113 toLatLon1: 52.657979°N, 001.716052°E\n    test 114 iteration: 4\n    test 115 toOsgr1: 651409.903,313177.270\n    test 116 toOsgr1: 651409.903,313177.270\n    test 117 toOsgr1: TG5140990313177270\n    test 118 toLatLon2: 52°39′27.25″N, 001°43′04.52″E\n    test 119 toLatLon2: 52.65757°N, 001.717922°E  FAILED, KNOWN, expected 52.657570°N, 001.717922°E\n    test 120 iteration: 4\n    test 121 toOsgr2: 651409,313177\n    test 122 toOsgr2: 651409,313177\n    test 123 toOsgr3: TG 51409 13177\n    test 124 toLatLon3: (52.65798, 1.71605, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 125 toOsgr4: TG 51409 13177\n    test 126 toLatLon4: (52.657570000, 1.717910000, Datum(name='OSGB36', ellipsoid=Ellipsoids.Airy1830, transform=Transforms.OSGB36))\n    test 127 toLatLon4: (52.657569999, 1.717910045, Datum(name='OSGB36', ellipsoid=Ellipsoids.Airy1830, transform=Transforms.OSGB36))\n    test 128 toLatLon4: (52.657978296, 1.716040366, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 129 toLatLon4: (52.657978295, 1.716040411, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 130 toOsgr5: 0.001\n    test 131 toOsgr5: TG5140900013177000\n    test 132 toOsgr5: 651409.000,313177.000\n    test 133 toLatLon5: (52.657976595, 1.716038422, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n\n    test 134 OSGR1: TG 48251 11932\n    test 135 OSGR1: [G:TG, E:48251, N:11932]\n    test 136 OSGR2: TG 51409 13177\n    test 137 OSGR2: [G:TG, E:51409, N:13177]\n    test 138 OSGR3: TG 51409 13177\n    test 139 OSGR3: [G:TG, E:51409, N:13177]\n    test 140 OSGR4: TG 51409 13177\n    test 141 OSGR4: [G:TG, E:51409, N:13177]\n    test 142 OSGR5: 651409,313177\n    test 143 OSGR5: TG51409001317700\n    test 144 OSGR5: 651409,313177\n    test 145 OSGR5: 651409.000000,313177.000000\n    test 146 OSGR5: 651409.00,313177.00\n    test 147 OSGR5: [OSGR:651409.000,313177.000]\n    test 148 OSGR5: [OSGR:651409,313177]\n    test 149 OSGR5: [OSGR:651409.000,313177.000]\n    test 150 OSGR5: [OSGR:651,313]\n    test 151 OSGR6: 651409.000,313177.000\n    test 152 OSGR6: 651409,313177\n    test 153 OSGR6: (651409, 313177)\n    test 154 OSGR6: 651409,313177\n    test 155 OSGR6: 651409,313177\n    test 156 OSGR6: (651409, 313177)\n    test 157 OSGR6: 651409 313177\n\n    test 158 issue: 38\n    test 159 toOsgr: [G:TL, E:29158, N:35174]\n    test 160 toOsgr: 529158.072, 235174.785\n    test 161 toOsgr: OSGB36\n    test 162 toLatLonOSGB36: 51°59′58.37″N, 000°07′06.14″W\n    test 163 toLatLonOSGB36: OSGB36\n    test 164 toLatLonWGS84 : 52°00′00.0″N, 000°07′12.0″W\n    test 165 toLatLonWGS84 : WGS84\n\n    test 166 Osgr: [G:TQ, E:32014, N:23971]\n    test 167 Osgr: 532014.0, 123971.0\n    test 168 Osgr: OSGB36\n    test 169 toLatLonOSGB36: 50.999425N, 000.118417W\n    test 170 toLatLonOSGB36: OSGB36\n    test 171 toLatLonWGS84 : 50.999995N, 000.120004W\n    test 172 toLatLonWGS84 : WGS84\n    test 173 parseOSGR: [G:TQ, E:32014, N:23971]\n    test 174 parseOSGR: 532014.0, 123971.0\n    test 175 parseOSGR: OSGB36\n    test 176 toLatLonOSGB36: 50.999425N, 000.118417W\n    test 177 toLatLonOSGB36: OSGB36\n    test 178 toLatLonWGS84: 50.999995N, 000.120004W\n    test 179 toLatLonWGS84: WGS84\n    test 180 toOsgr: [G:TQ, E:32013, N:23971]\n    test 181 toOsgr: 532013.969, 123971.046\n    test 182 toOsgr: OSGB36\n    test 183 toLatLonOSGB36: 50.999426N, 000.118417W\n    test 184 toLatLonOSGB36: OSGB36\n    test 185 toLatLonWGS84 : 50.999995N, 000.120004W\n    test 186 toLatLonWGS84 : WGS84\n    test 187 toOsgr: [G:TQ, E:48853, N:24427]\n    test 188 toOsgr: 548853.602, 124427.985\n    test 189 toOsgr: OSGB36\n    test 190 toLatLonOSGB36: 50.999422N, 000.121618E\n    test 191 toLatLonOSGB36: OSGB36\n    test 192 toLatLonWGS84 : 50.999995N, 000.120004E\n    test 193 toLatLonWGS84 : WGS84\n\n    test 194 LatLon: 49.926244°N, 006.297934°W\n    test 195 datum: WGS84\n    test 196 datum: OSGB36\n    test 197 toOsgr: [G:SV, E:91645, N:11753]\n    test 198 datum: OSGB36\n    test 199 LatLon: 49.926244°N, 006.297934°W\n    test 200 datum: WGS84\n    test 201 distanceTo: 0.0104\n\n    test 202 prec=-2: [G:SV, E:91600, N:11700]\n\n    test 203 toLatLon: 52.0N, 000.12W\n    test 204 toLatLon: 52.0N, 000.12W\n    test 205 toLatLon: 52.0N, 000.12W\n    test 206 toLatLon: 52.0N, 000.12W\n    test 207 toLatLon: 52.0N, 000.12W\n    test 208 toLatLon: 52.0N, 000.12W\n    test 209 toLatLon: 52.0N, 000.12W\n    test 210 toLatLon: 52.0N, 000.12W\n\n    testOSgr(pygeodesy.ellipsoidalKarney, 25.05.27)\n    test 211 WGS84: 51.4778°N, 000.0016°W\n    test 212 OSGB36: 51.477284°N, 000.00002°E\n    test 213 WGS84: 51.4778°N, 000.0016°W\n    test 214 OSgr1: TG 51409 13177\n    test 215 OSgr1: [G:TG, E:51409, N:13177]\n    test 216 iteration: None\n    test 217 toLatLon1: 52°39′28.72″N, 001°42′57.79″E\n    test 218 toLatLon1: 52.657979°N, 001.716052°E\n    test 219 iteration: 4\n    test 220 toOsgr1: 651409.903,313177.270\n    test 221 toOsgr1: 651409.903,313177.270\n    test 222 toOsgr1: TG5140990313177270\n    test 223 toLatLon2: 52°39′27.25″N, 001°43′04.52″E\n    test 224 toLatLon2: 52.65757°N, 001.717922°E  FAILED, KNOWN, expected 52.657570°N, 001.717922°E\n    test 225 iteration: 4\n    test 226 toOsgr2: 651409,313177\n    test 227 toOsgr2: 651409,313177\n    test 228 toOsgr3: TG 51409 13177\n    test 229 toLatLon3: (52.65798, 1.71605, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 230 toOsgr4: TG 51409 13177\n    test 231 toLatLon4: (52.657570000, 1.717910000, Datum(name='OSGB36', ellipsoid=Ellipsoids.Airy1830, transform=Transforms.OSGB36))\n    test 232 toLatLon4: (52.657569999, 1.717910045, Datum(name='OSGB36', ellipsoid=Ellipsoids.Airy1830, transform=Transforms.OSGB36))\n    test 233 toLatLon4: (52.657978296, 1.716040366, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 234 toLatLon4: (52.657978295, 1.716040411, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 235 toOsgr5: 0.001\n    test 236 toOsgr5: TG5140900013177000\n    test 237 toOsgr5: 651409.000,313177.000\n    test 238 toLatLon5: (52.657976595, 1.716038422, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n\n    test 239 OSGR1: TG 48251 11932\n    test 240 OSGR1: [G:TG, E:48251, N:11932]\n    test 241 OSGR2: TG 51409 13177\n    test 242 OSGR2: [G:TG, E:51409, N:13177]\n    test 243 OSGR3: TG 51409 13177\n    test 244 OSGR3: [G:TG, E:51409, N:13177]\n    test 245 OSGR4: TG 51409 13177\n    test 246 OSGR4: [G:TG, E:51409, N:13177]\n    test 247 OSGR5: 651409,313177\n    test 248 OSGR5: TG51409001317700\n    test 249 OSGR5: 651409,313177\n    test 250 OSGR5: 651409.000000,313177.000000\n    test 251 OSGR5: 651409.00,313177.00\n    test 252 OSGR5: [OSGR:651409.000,313177.000]\n    test 253 OSGR5: [OSGR:651409,313177]\n    test 254 OSGR5: [OSGR:651409.000,313177.000]\n    test 255 OSGR5: [OSGR:651,313]\n    test 256 OSGR6: 651409.000,313177.000\n    test 257 OSGR6: 651409,313177\n    test 258 OSGR6: (651409, 313177)\n    test 259 OSGR6: 651409,313177\n    test 260 OSGR6: 651409,313177\n    test 261 OSGR6: (651409, 313177)\n    test 262 OSGR6: 651409 313177\n\n    test 263 issue: 38\n    test 264 toOsgr: [G:TL, E:29158, N:35174]\n    test 265 toOsgr: 529158.072, 235174.785\n    test 266 toOsgr: OSGB36\n    test 267 toLatLonOSGB36: 51°59′58.37″N, 000°07′06.14″W\n    test 268 toLatLonOSGB36: OSGB36\n    test 269 toLatLonWGS84 : 52°00′00.0″N, 000°07′12.0″W\n    test 270 toLatLonWGS84 : WGS84\n\n    test 271 Osgr: [G:TQ, E:32014, N:23971]\n    test 272 Osgr: 532014.0, 123971.0\n    test 273 Osgr: OSGB36\n    test 274 toLatLonOSGB36: 50.999425N, 000.118417W\n    test 275 toLatLonOSGB36: OSGB36\n    test 276 toLatLonWGS84 : 50.999995N, 000.120004W\n    test 277 toLatLonWGS84 : WGS84\n    test 278 parseOSGR: [G:TQ, E:32014, N:23971]\n    test 279 parseOSGR: 532014.0, 123971.0\n    test 280 parseOSGR: OSGB36\n    test 281 toLatLonOSGB36: 50.999425N, 000.118417W\n    test 282 toLatLonOSGB36: OSGB36\n    test 283 toLatLonWGS84: 50.999995N, 000.120004W\n    test 284 toLatLonWGS84: WGS84\n    test 285 toOsgr: [G:TQ, E:32013, N:23971]\n    test 286 toOsgr: 532013.969, 123971.046\n    test 287 toOsgr: OSGB36\n    test 288 toLatLonOSGB36: 50.999426N, 000.118417W\n    test 289 toLatLonOSGB36: OSGB36\n    test 290 toLatLonWGS84 : 50.999995N, 000.120004W\n    test 291 toLatLonWGS84 : WGS84\n    test 292 toOsgr: [G:TQ, E:48853, N:24427]\n    test 293 toOsgr: 548853.602, 124427.985\n    test 294 toOsgr: OSGB36\n    test 295 toLatLonOSGB36: 50.999422N, 000.121618E\n    test 296 toLatLonOSGB36: OSGB36\n    test 297 toLatLonWGS84 : 50.999995N, 000.120004E\n    test 298 toLatLonWGS84 : WGS84\n\n    test 299 LatLon: 49.926244°N, 006.297934°W\n    test 300 datum: WGS84\n    test 301 datum: OSGB36\n    test 302 toOsgr: [G:SV, E:91645, N:11753]\n    test 303 datum: OSGB36\n# lazily imported pygeodesy.geodesicw by ellipsoids.py line 1074\n    test 304 LatLon: 49.926244°N, 006.297934°W\n    test 305 datum: WGS84\n    test 306 distanceTo: 0.0104\n\n    test 307 prec=-2: [G:SV, E:91600, N:11700]\n\n    test 308 toLatLon: 52.0N, 000.12W\n    test 309 toLatLon: 52.0N, 000.12W\n    test 310 toLatLon: 52.0N, 000.12W\n    test 311 toLatLon: 52.0N, 000.12W\n    test 312 toLatLon: 52.0N, 000.12W\n    test 313 toLatLon: 52.0N, 000.12W\n    test 314 toLatLon: 52.0N, 000.12W\n    test 315 toLatLon: 52.0N, 000.12W\n\n    testOSgr(pygeodesy.ellipsoidalExact, 25.08.28)\n    test 316 WGS84: 51.4778°N, 000.0016°W\n    test 317 OSGB36: 51.477284°N, 000.00002°E\n    test 318 WGS84: 51.4778°N, 000.0016°W\n    test 319 OSgr1: TG 51409 13177\n    test 320 OSgr1: [G:TG, E:51409, N:13177]\n    test 321 iteration: None\n    test 322 toLatLon1: 52°39′28.72″N, 001°42′57.79″E\n    test 323 toLatLon1: 52.657979°N, 001.716052°E\n    test 324 iteration: 4\n    test 325 toOsgr1: 651409.903,313177.270\n    test 326 toOsgr1: 651409.903,313177.270\n    test 327 toOsgr1: TG5140990313177270\n    test 328 toLatLon2: 52°39′27.25″N, 001°43′04.52″E\n    test 329 toLatLon2: 52.65757°N, 001.717922°E  FAILED, KNOWN, expected 52.657570°N, 001.717922°E\n    test 330 iteration: 4\n    test 331 toOsgr2: 651409,313177\n    test 332 toOsgr2: 651409,313177\n    test 333 toOsgr3: TG 51409 13177\n    test 334 toLatLon3: (52.65798, 1.71605, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 335 toOsgr4: TG 51409 13177\n    test 336 toLatLon4: (52.657570000, 1.717910000, Datum(name='OSGB36', ellipsoid=Ellipsoids.Airy1830, transform=Transforms.OSGB36))\n    test 337 toLatLon4: (52.657569999, 1.717910045, Datum(name='OSGB36', ellipsoid=Ellipsoids.Airy1830, transform=Transforms.OSGB36))\n    test 338 toLatLon4: (52.657978296, 1.716040366, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 339 toLatLon4: (52.657978295, 1.716040411, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 340 toOsgr5: 0.001\n    test 341 toOsgr5: TG5140900013177000\n    test 342 toOsgr5: 651409.000,313177.000\n    test 343 toLatLon5: (52.657976595, 1.716038422, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n\n    test 344 OSGR1: TG 48251 11932\n    test 345 OSGR1: [G:TG, E:48251, N:11932]\n    test 346 OSGR2: TG 51409 13177\n    test 347 OSGR2: [G:TG, E:51409, N:13177]\n    test 348 OSGR3: TG 51409 13177\n    test 349 OSGR3: [G:TG, E:51409, N:13177]\n    test 350 OSGR4: TG 51409 13177\n    test 351 OSGR4: [G:TG, E:51409, N:13177]\n    test 352 OSGR5: 651409,313177\n    test 353 OSGR5: TG51409001317700\n    test 354 OSGR5: 651409,313177\n    test 355 OSGR5: 651409.000000,313177.000000\n    test 356 OSGR5: 651409.00,313177.00\n    test 357 OSGR5: [OSGR:651409.000,313177.000]\n    test 358 OSGR5: [OSGR:651409,313177]\n    test 359 OSGR5: [OSGR:651409.000,313177.000]\n    test 360 OSGR5: [OSGR:651,313]\n    test 361 OSGR6: 651409.000,313177.000\n    test 362 OSGR6: 651409,313177\n    test 363 OSGR6: (651409, 313177)\n    test 364 OSGR6: 651409,313177\n    test 365 OSGR6: 651409,313177\n    test 366 OSGR6: (651409, 313177)\n    test 367 OSGR6: 651409 313177\n\n    test 368 issue: 38\n    test 369 toOsgr: [G:TL, E:29158, N:35174]\n    test 370 toOsgr: 529158.072, 235174.785\n    test 371 toOsgr: OSGB36\n    test 372 toLatLonOSGB36: 51°59′58.37″N, 000°07′06.14″W\n    test 373 toLatLonOSGB36: OSGB36\n    test 374 toLatLonWGS84 : 52°00′00.0″N, 000°07′12.0″W\n    test 375 toLatLonWGS84 : WGS84\n\n    test 376 Osgr: [G:TQ, E:32014, N:23971]\n    test 377 Osgr: 532014.0, 123971.0\n    test 378 Osgr: OSGB36\n    test 379 toLatLonOSGB36: 50.999425N, 000.118417W\n    test 380 toLatLonOSGB36: OSGB36\n    test 381 toLatLonWGS84 : 50.999995N, 000.120004W\n    test 382 toLatLonWGS84 : WGS84\n    test 383 parseOSGR: [G:TQ, E:32014, N:23971]\n    test 384 parseOSGR: 532014.0, 123971.0\n    test 385 parseOSGR: OSGB36\n    test 386 toLatLonOSGB36: 50.999425N, 000.118417W\n    test 387 toLatLonOSGB36: OSGB36\n    test 388 toLatLonWGS84: 50.999995N, 000.120004W\n    test 389 toLatLonWGS84: WGS84\n    test 390 toOsgr: [G:TQ, E:32013, N:23971]\n    test 391 toOsgr: 532013.969, 123971.046\n    test 392 toOsgr: OSGB36\n    test 393 toLatLonOSGB36: 50.999426N, 000.118417W\n    test 394 toLatLonOSGB36: OSGB36\n    test 395 toLatLonWGS84 : 50.999995N, 000.120004W\n    test 396 toLatLonWGS84 : WGS84\n    test 397 toOsgr: [G:TQ, E:48853, N:24427]\n    test 398 toOsgr: 548853.602, 124427.985\n    test 399 toOsgr: OSGB36\n    test 400 toLatLonOSGB36: 50.999422N, 000.121618E\n    test 401 toLatLonOSGB36: OSGB36\n    test 402 toLatLonWGS84 : 50.999995N, 000.120004E\n    test 403 toLatLonWGS84 : WGS84\n\n    test 404 LatLon: 49.926244°N, 006.297934°W\n    test 405 datum: WGS84\n    test 406 datum: OSGB36\n    test 407 toOsgr: [G:SV, E:91645, N:11753]\n    test 408 datum: OSGB36\n# lazily imported pygeodesy.geodesicx by ellipsoids.py line 1082\n    test 409 LatLon: 49.926244°N, 006.297934°W\n    test 410 datum: WGS84\n    test 411 distanceTo: 0.0104\n\n    test 412 prec=-2: [G:SV, E:91600, N:11700]\n\n    test 413 toLatLon: 52.0N, 000.12W\n    test 414 toLatLon: 52.0N, 000.12W\n    test 415 toLatLon: 52.0N, 000.12W\n    test 416 toLatLon: 52.0N, 000.12W\n    test 417 toLatLon: 52.0N, 000.12W\n    test 418 toLatLon: 52.0N, 000.12W\n    test 419 toLatLon: 52.0N, 000.12W\n    test 420 toLatLon: 52.0N, 000.12W\n\n    14 of 420 testOsgr.py tests (3.3%) FAILED, incl. 5 KNOWN plus 9 DeprecationWarnings (pygeodesy 26.3.26 PyPy 7.3.17 Python 3.10.14 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 233.116 ms\nrunning /opt/local/bin/p....y3.10 -W default ~/PyGeodesy/test/testPoints.py\n# lazily imported pygeodesy.basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.DeprecationWarnings from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isint from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isLazy from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.issubclassof from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.iterNumpy2over from .iters by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.LazyImportError from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.karney by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.NN from .interns by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.normDMS from .dms by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.pairs from .streprs by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.printf from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.property_RO from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.typename from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.EPS from .constants by testPoints.py line 12\n# lazily imported pygeodesy.R_M from .constants by testPoints.py line 12\n# lazily imported pygeodesy.R_MA from .constants by testPoints.py line 12\n# lazily imported pygeodesy.LatLon_ from .points by testPoints.py line 12\n# lazily imported pygeodesy.LatLon2psxy from .points by testPoints.py line 12\n# lazily imported pygeodesy.Numpy2LatLon from .points by testPoints.py line 12\n# lazily imported pygeodesy.Tuple2LatLon from .points by testPoints.py line 12\n# lazily imported pygeodesy.areaOf from .points by testPoints.py line 12\n# lazily imported pygeodesy.boundsOf from .points by testPoints.py line 12\n# lazily imported pygeodesy.centroidOf from .points by testPoints.py line 12\n# lazily imported pygeodesy.classname from .named by testPoints.py line 12\n# lazily imported pygeodesy.fstr from .streprs by testPoints.py line 12\n# lazily imported pygeodesy.isclockwise from .points by testPoints.py line 12\n# lazily imported pygeodesy.isconvex from .points by testPoints.py line 12\n# lazily imported pygeodesy.ispolar from .points by testPoints.py line 12\n# lazily imported pygeodesy.luneOf from .points by testPoints.py line 12\n# lazily imported pygeodesy.nearestOn5 from .points by testPoints.py line 12\n# lazily imported pygeodesy.perimeterOf from .points by testPoints.py line 12\n# lazily imported pygeodesy.quadOf from .points by testPoints.py line 12\n# lazily imported pygeodesy.R_KM from .constants by testRoutes.py line 13\n# lazily imported pygeodesy.ellipsoidalVincenty by testRoutes.py line 13\n# lazily imported pygeodesy.sphericalTrigonometry by testRoutes.py line 13\n# lazily imported pygeodesy.unstr from .streprs by testRoutes.py line 13\n\n    testing testPoints.py 23.12.03 (module pygeodesy.points 25.05.12) isLazy=3\n# lazily imported pygeodesy.booleans by iters.py line 503\n    test 1 LatLon2psxy.ABC: True\n    test 2 LatLon2psxy.epsilon: 2.220446049250313e-16\n    test 3 LatLon2psxy.epsilon: 0.0\n    test 4 LatLon2psxy.len: 69\n    test 5 LatLon2psxy.iter: 69\n    test 6 LatLon2psxy.slice1: 11\n    test 7 LatLon2psxy.slice2: <class 'pygeodesy.points.LatLon2psxy'>\n    test 8 LatLon2psxy.slice3: (-0.701418, 52.220485, LatLon_(52.220485°N, 000.701418°W))\n    test 9 LatLon2psxy.str/repr: LatLon2psxy('[LatLon_(52.220489°N, 000.701206°W) ... ][69]', closed=False, radius=None, wrap=False)\n    test 10 LatLon2psxy.find LL: 10\n    test 11 LatLon2psxy.find LL: -1\n    test 12 LatLon2psxy.count: 1\n    test 13 LatLon2psxy.index: 10\n    test 14 LatLon2psxy.rfind: 10\n    test 15 LatLon2psxy.in: True\n    test 16 LatLon2psxy.count: 0\n    test 17 LatLon2psxy.find: -1\n    test 18 LatLon2psxy.rfind: -1\n    test 19 LatLon2psxy.not in: True\n    test 20 LatLon2psxy.find LL: 20\n    test 21 LatLon2psxy.find LL: -1\n    test 22 LatLon2psxy.count: 1\n    test 23 LatLon2psxy.index: 20\n    test 24 LatLon2psxy.rfind: 20\n    test 25 LatLon2psxy.in: True\n    test 26 LatLon2psxy.count: 0\n    test 27 LatLon2psxy.find: -1\n    test 28 LatLon2psxy.rfind: -1\n    test 29 LatLon2psxy.not in: True\n    test 30 LatLon2psxy.find LL: 30\n    test 31 LatLon2psxy.find LL: -1\n    test 32 LatLon2psxy.count: 1\n    test 33 LatLon2psxy.index: 30\n    test 34 LatLon2psxy.rfind: 30\n    test 35 LatLon2psxy.in: True\n    test 36 LatLon2psxy.count: 0\n    test 37 LatLon2psxy.find: -1\n    test 38 LatLon2psxy.rfind: -1\n    test 39 LatLon2psxy.not in: True\n    test 40 LatLon2psxy.find LL: 40\n    test 41 LatLon2psxy.find LL: -1\n    test 42 LatLon2psxy.count: 1\n    test 43 LatLon2psxy.index: 40\n    test 44 LatLon2psxy.rfind: 40\n    test 45 LatLon2psxy.in: True\n    test 46 LatLon2psxy.count: 0\n    test 47 LatLon2psxy.find: -1\n    test 48 LatLon2psxy.rfind: -1\n    test 49 LatLon2psxy.not in: True\n    test 50 LatLon2psxy.find LL: 50\n    test 51 LatLon2psxy.find LL: -1\n    test 52 LatLon2psxy.count: 1\n    test 53 LatLon2psxy.index: 50\n    test 54 LatLon2psxy.rfind: 50\n    test 55 LatLon2psxy.in: True\n    test 56 LatLon2psxy.count: 0\n    test 57 LatLon2psxy.find: -1\n    test 58 LatLon2psxy.rfind: -1\n    test 59 LatLon2psxy.not in: True\n    test 60 LatLon2psxy.find LL: 60\n    test 61 LatLon2psxy.find LL: -1\n    test 62 LatLon2psxy.count: 1\n    test 63 LatLon2psxy.index: 60\n    test 64 LatLon2psxy.rfind: 60\n    test 65 LatLon2psxy.in: True\n    test 66 LatLon2psxy.count: 0\n    test 67 LatLon2psxy.find: -1\n    test 68 LatLon2psxy.rfind: -1\n    test 69 LatLon2psxy.not in: True\n    test 70 LatLon2psxy.enumerate[0]: (-0.701206, 52.220489, LatLon_(52.220489°N, 000.701206°W))\n    test 71 LatLon2psxy.enumerate[1]: (-0.705456, 52.221916, LatLon_(52.221916°N, 000.705456°W))\n    test 72 LatLon2psxy.enumerate[2]: (-0.71, 52.225944, LatLon_(52.225944°N, 000.71°W))\n    test 73 LatLon2psxy.enumerate[3]: (-0.71446, 52.232448, LatLon_(52.232448°N, 000.71446°W))\n    test 74 LatLon2psxy.enumerate[4]: (-0.71486, 52.233013, LatLon_(52.233013°N, 000.71486°W))\n    test 75 LatLon2psxy.enumerate[5]: (-0.714348, 52.234375, LatLon_(52.234375°N, 000.714348°W))\n    test 76 LatLon2psxy.enumerate[6]: (-0.713572, 52.235607, LatLon_(52.235607°N, 000.713572°W))\n    test 77 LatLon2psxy.enumerate[7]: (-0.71233, 52.237495, LatLon_(52.237495°N, 000.71233°W))\n    test 78 LatLon2psxy.enumerate[8]: (-0.710784, 52.239315, LatLon_(52.239315°N, 000.710784°W))\n    test 79 LatLon2psxy.enumerate[9]: (-0.708684, 52.240627, LatLon_(52.240627°N, 000.708684°W))\n    test 80 LatLon2psxy.enumerate[10]: (-0.707042, 52.240745, LatLon_(52.240745°N, 000.707042°W))\n    test 81 LatLon2psxy.enumerate[11]: (-0.704945, 52.240863, LatLon_(52.240863°N, 000.704945°W))\n    test 82 LatLon2psxy.enumerate[*]: 11\n    test 83 LatLon2psxy.reversed[11]: (-0.704945, 52.240863, LatLon_(52.240863°N, 000.704945°W))\n    test 84 LatLon2psxy.reversed[10]: (-0.707042, 52.240745, LatLon_(52.240745°N, 000.707042°W))\n    test 85 LatLon2psxy.reversed[9]: (-0.708684, 52.240627, LatLon_(52.240627°N, 000.708684°W))\n    test 86 LatLon2psxy.reversed[8]: (-0.710784, 52.239315, LatLon_(52.239315°N, 000.710784°W))\n    test 87 LatLon2psxy.reversed[7]: (-0.71233, 52.237495, LatLon_(52.237495°N, 000.71233°W))\n    test 88 LatLon2psxy.reversed[6]: (-0.713572, 52.235607, LatLon_(52.235607°N, 000.713572°W))\n    test 89 LatLon2psxy.reversed[5]: (-0.714348, 52.234375, LatLon_(52.234375°N, 000.714348°W))\n    test 90 LatLon2psxy.reversed[4]: (-0.71486, 52.233013, LatLon_(52.233013°N, 000.71486°W))\n    test 91 LatLon2psxy.reversed[3]: (-0.71446, 52.232448, LatLon_(52.232448°N, 000.71446°W))\n    test 92 LatLon2psxy.reversed[2]: (-0.71, 52.225944, LatLon_(52.225944°N, 000.71°W))\n    test 93 LatLon2psxy.reversed[1]: (-0.705456, 52.221916, LatLon_(52.221916°N, 000.705456°W))\n    test 94 LatLon2psxy.reversed[0]: (-0.701206, 52.220489, LatLon_(52.220489°N, 000.701206°W))\n    test 95 LatLon2psxy.findall[0]: (0,)\n    test 96 LatLon2psxy.findall[1]: (1,)\n    test 97 LatLon2psxy.findall[2]: (2,)\n    test 98 LatLon2psxy.findall[3]: (3,)\n    test 99 LatLon2psxy.findall[4]: (4,)\n    test 100 LatLon2psxy.findall[5]: (5,)\n    test 101 LatLon2psxy.findall[6]: (6,)\n    test 102 LatLon2psxy.findall[7]: (7,)\n    test 103 LatLon2psxy.findall[8]: (8,)\n    test 104 LatLon2psxy.findall[9]: (9,)\n    test 105 LatLon2psxy.findall[10]: (10,)\n    test 106 LatLon2psxy.findall[11]: (11,)\n    test 107 LatLon2psxy.findall[*]: 11\n    test 108 LatLon2psxy.isNumpy2: False\n    test 109 LatLon2psxy.isPoints2: True\n    test 110 LatLon2psxy.isTuple2: False\n    test 111 no: numpy\n    test 112 Tuple2LatLon.ABC: True\n    test 113 Tuple2LatLon.epsilon: 2.220446049250313e-16\n    test 114 Tuple2LatLon.epsilon: 0.0\n    test 115 Tuple2LatLon.len: 69\n    test 116 Tuple2LatLon.iter: 69\n    test 117 Tuple2LatLon.slice1: 11\n    test 118 Tuple2LatLon.slice2: <class 'pygeodesy.points.Tuple2LatLon'>\n    test 119 Tuple2LatLon.slice3: 52.220485°N, 000.701418°W\n    test 120 Tuple2LatLon.str/repr: Tuple2LatLon('[(0, -0.701206, 0, 52.220489) ... ][69]', ilat=3, ilon=1)\n    test 121 Tuple2LatLon.subset: <class 'list'>\n    test 122 Tuple2LatLon.count: 1\n    test 123 Tuple2LatLon.index: 10\n    test 124 Tuple2LatLon.rfind: 10\n    test 125 Tuple2LatLon.in: True\n    test 126 Tuple2LatLon.count: 0\n    test 127 Tuple2LatLon.find: -1\n    test 128 Tuple2LatLon.rfind: -1\n    test 129 Tuple2LatLon.not in: True\n    test 130 Tuple2LatLon.count: 1\n    test 131 Tuple2LatLon.index: 20\n    test 132 Tuple2LatLon.rfind: 20\n    test 133 Tuple2LatLon.in: True\n    test 134 Tuple2LatLon.count: 0\n    test 135 Tuple2LatLon.find: -1\n    test 136 Tuple2LatLon.rfind: -1\n    test 137 Tuple2LatLon.not in: True\n    test 138 Tuple2LatLon.count: 1\n    test 139 Tuple2LatLon.index: 30\n    test 140 Tuple2LatLon.rfind: 30\n    test 141 Tuple2LatLon.in: True\n    test 142 Tuple2LatLon.count: 0\n    test 143 Tuple2LatLon.find: -1\n    test 144 Tuple2LatLon.rfind: -1\n    test 145 Tuple2LatLon.not in: True\n    test 146 Tuple2LatLon.count: 1\n    test 147 Tuple2LatLon.index: 40\n    test 148 Tuple2LatLon.rfind: 40\n    test 149 Tuple2LatLon.in: True\n    test 150 Tuple2LatLon.count: 0\n    test 151 Tuple2LatLon.find: -1\n    test 152 Tuple2LatLon.rfind: -1\n    test 153 Tuple2LatLon.not in: True\n    test 154 Tuple2LatLon.count: 1\n    test 155 Tuple2LatLon.index: 50\n    test 156 Tuple2LatLon.rfind: 50\n    test 157 Tuple2LatLon.in: True\n    test 158 Tuple2LatLon.count: 0\n    test 159 Tuple2LatLon.find: -1\n    test 160 Tuple2LatLon.rfind: -1\n    test 161 Tuple2LatLon.not in: True\n    test 162 Tuple2LatLon.count: 1\n    test 163 Tuple2LatLon.index: 60\n    test 164 Tuple2LatLon.rfind: 60\n    test 165 Tuple2LatLon.in: True\n    test 166 Tuple2LatLon.count: 0\n    test 167 Tuple2LatLon.find: -1\n    test 168 Tuple2LatLon.rfind: -1\n    test 169 Tuple2LatLon.not in: True\n    test 170 Tuple2LatLon.enumerate[0]: 52.220489°N, 000.701206°W\n    test 171 Tuple2LatLon.enumerate[1]: 52.221916°N, 000.705456°W\n    test 172 Tuple2LatLon.enumerate[2]: 52.225944°N, 000.71°W\n    test 173 Tuple2LatLon.enumerate[3]: 52.232448°N, 000.71446°W\n    test 174 Tuple2LatLon.enumerate[4]: 52.233013°N, 000.71486°W\n    test 175 Tuple2LatLon.enumerate[5]: 52.234375°N, 000.714348°W\n    test 176 Tuple2LatLon.enumerate[6]: 52.235607°N, 000.713572°W\n    test 177 Tuple2LatLon.enumerate[7]: 52.237495°N, 000.71233°W\n    test 178 Tuple2LatLon.enumerate[8]: 52.239315°N, 000.710784°W\n    test 179 Tuple2LatLon.enumerate[9]: 52.240627°N, 000.708684°W\n    test 180 Tuple2LatLon.enumerate[10]: 52.240745°N, 000.707042°W\n    test 181 Tuple2LatLon.enumerate[11]: 52.240863°N, 000.704945°W\n    test 182 Tuple2LatLon.enumerate[*]: 11\n    test 183 Tuple2LatLon.reversed[11]: 52.240863°N, 000.704945°W\n    test 184 Tuple2LatLon.reversed[10]: 52.240745°N, 000.707042°W\n    test 185 Tuple2LatLon.reversed[9]: 52.240627°N, 000.708684°W\n    test 186 Tuple2LatLon.reversed[8]: 52.239315°N, 000.710784°W\n    test 187 Tuple2LatLon.reversed[7]: 52.237495°N, 000.71233°W\n    test 188 Tuple2LatLon.reversed[6]: 52.235607°N, 000.713572°W\n    test 189 Tuple2LatLon.reversed[5]: 52.234375°N, 000.714348°W\n    test 190 Tuple2LatLon.reversed[4]: 52.233013°N, 000.71486°W\n    test 191 Tuple2LatLon.reversed[3]: 52.232448°N, 000.71446°W\n    test 192 Tuple2LatLon.reversed[2]: 52.225944°N, 000.71°W\n    test 193 Tuple2LatLon.reversed[1]: 52.221916°N, 000.705456°W\n    test 194 Tuple2LatLon.reversed[0]: 52.220489°N, 000.701206°W\n    test 195 Tuple2LatLon.findall[0]: (0,)\n    test 196 Tuple2LatLon.findall[1]: (1,)\n    test 197 Tuple2LatLon.findall[2]: (2,)\n    test 198 Tuple2LatLon.findall[3]: (3,)\n    test 199 Tuple2LatLon.findall[4]: (4,)\n    test 200 Tuple2LatLon.findall[5]: (5,)\n    test 201 Tuple2LatLon.findall[6]: (6,)\n    test 202 Tuple2LatLon.findall[7]: (7,)\n    test 203 Tuple2LatLon.findall[8]: (8,)\n    test 204 Tuple2LatLon.findall[9]: (9,)\n    test 205 Tuple2LatLon.findall[10]: (10,)\n    test 206 Tuple2LatLon.findall[11]: (11,)\n    test 207 Tuple2LatLon.findall[*]: 11\n    test 208 Tuple2LatLon.isNumpy2: False\n    test 209 Tuple2LatLon.isPoints2: False\n    test 210 Tuple2LatLon.isTuple2: True\n# lazily imported pygeodesy.ellipsoidalExact by testPoints.py line 276\n# lazily imported pygeodesy.ellipsoidalKarney by testPoints.py line 276\n# lazily imported pygeodesy.ellipsoidalNvector by testPoints.py line 276\n# lazily imported pygeodesy.Ellipsoids from .ellipsoids by testPoints.py line 276\n# lazily imported pygeodesy.sphericalNvector by testPoints.py line 276\n\n    testing(pygeodesy.points, 25.05.12, LatLon=<class 'pygeodesy.points.LatLon_'>)\n# lazily imported pygeodesy.angles by units.py line 633\n    test 211 areaOf: 8.811228e+09\n    test 212 centroidOf: 45.5, 1.5\n    test 213 perimeterOf: 2.673633e+05\n    test 214 isclockwise: False\n    test 215 isconvex: True\n# imported pygeodesy.formy into latlonBase.py line 756\n    test 216 ispolar: False\n    test 217 areaOf: 7.086883e+09\n    test 218 perimeterOf: 2.687460e+05\n    test 219 centroidOf: 0.333333, 0.333333\n    test 220 isclockwise: True\n    test 221 isconvex: True\n    test 222 ispolar: False\n    test 223 areaOf: 2.827856e+10\n    test 224 perimeterOf: 4.717039e+05\n    test 225 centroidOf: 1.0, 1.0\n    test 226 isclockwise: False\n    test 227 isconvex: True\n    test 228 ispolar: False\n    test 229 areaOf: 2.747297e+13\n    test 230 perimeterOf: 2.332643e+07\n    test 231 centroidOf: 52.113, 102.123\n    test 232 isclockwise: False\n    test 233 isconvex: False\n    test 234 ispolar: True\n    test 235 areaOf: 8.482014e+10\n    test 236 perimeterOf: 1.334104e+06\n    test 237 centroidOf: 1.167, 1.667\n    test 238 isclockwise: False\n    test 239 isconvex: False\n    test 240 ispolar: False\n    test 241 areaOf: 5.151974e+13\n    test 242 perimeterOf: 2.638608e+07\n    test 243 centroidOf: -19.444, -133.333\n    test 244 isclockwise: True\n    test 245 isconvex: True\n    test 246 ispolar: False\n    test 247 areaOf: 1.751694e+12  FAILED, KNOWN, expected 4.469277e+12\n    test 248 perimeterOf: 1.562029e+07\n    test 249 centroidOf: -72.926, 46.47\n    test 250 isclockwise: True\n    test 251 isconvex: False\n    test 252 ispolar: True\n    test 253 points2: 18\n    test 254 nearestOn5: (-77.455114, -16.67063, 4.134666, 307.988253, 0)\n    test 255 areaCO: 2.83192062868e+11  FAILED, KNOWN, expected 2.69601367661e+11\n    test 256 isclockwise: True\n    test 257 perimeterCO: 2098630.956053  FAILED, KNOWN, expected 2099854.381923\n    test 258 boundsOf: (-77.9, -163.0, -63.1, 172.0)\n    test 259 quadOf: 77.9°S, 163.0°W, 63.1°S, 163.0°W, 63.1°S, 172.0°E, 77.9°S, 172.0°E\n    test 260 intermediateTo: 51.368°N, 000.677°E, 'intermediateTo'\n    test 261 intermediateTo: True\n    test 262 intermediateTo: 51.368°N, 000.677°E\n    test 263 intermediateTo: 52.205°N, 000.119°E\n    test 264 intermediateTo: 48.857°N, 002.351°E\n./pygeodesy/ellipsoidalKarney.py:94: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return self.datum.ellipsoid.geodesic\n./pygeodesy/ellipsoidalKarney.py:139: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return fabs(_polygon(datum.ellipsoid.geodesic, points, True, False, wrap, polar))\n    test 265 _isLatLon_: _Array2LatLon('[ ... ][1]', ilat=0, ilon=1)\n    test 266 latlon: (-66.6, -88.0)\n    test 267 philam: (-1.162389, -1.53589)\n    test 268 toStr: 66.6°S, 088.0°W\n    test 269 __ne__: False\n    test 270 isequalTo: True\n    test 271 isequalTo: True\n    test 272 latlonheight: (-66.6, -88.0, 0)\n    test 273 philamheight: (-1.162389, -1.53589, 0)\n    test 274 _N_vector: (0.01386, -0.39691, -0.91775)\n    test 275 toNvector: (0.01386, -0.39691, -0.91775, 0)\n    test 276 toNvector: (0.01386, -0.396906, -0.917755, 0)\n    test 277 classof: 66.6°S, 088.0°W\n    test 278 others: 66.6°S, 088.0°W\n    test 279 copy(<class 'type'>): (<class 'pygeodesy.points.LatLon_'>, True)\n    test 280 LatLon_.copy(): (<class 'pygeodesy.points.LatLon_'>, True)\n\n    testing(pygeodesy.points, 25.05.12, LatLon=<class 'pygeodesy.sphericalNvector.LatLon'>)\n    test 281 areaOf: 8.811228e+09\n    test 282 centroidOf: 45.5, 1.5\n    test 283 perimeterOf: 2.673633e+05\n    test 284 isclockwise: False\n    test 285 isconvex: True\n    test 286 ispolar: False\n    test 287 areaOf: 7.086883e+09\n    test 288 perimeterOf: 2.687460e+05\n    test 289 centroidOf: 0.333333, 0.333333\n    test 290 isclockwise: True\n    test 291 isconvex: True\n    test 292 ispolar: False\n    test 293 areaOf: 2.827856e+10\n    test 294 perimeterOf: 4.717039e+05\n    test 295 centroidOf: 1.0, 1.0\n    test 296 isclockwise: False\n    test 297 isconvex: True\n    test 298 ispolar: False\n    test 299 areaOf: 2.747297e+13\n    test 300 perimeterOf: 2.332643e+07\n    test 301 centroidOf: 52.113, 102.123\n    test 302 isclockwise: False\n    test 303 isconvex: False\n    test 304 ispolar: True\n    test 305 areaOf: 8.482014e+10\n    test 306 perimeterOf: 1.334104e+06\n    test 307 centroidOf: 1.167, 1.667\n    test 308 isclockwise: False\n    test 309 isconvex: False\n    test 310 ispolar: False\n    test 311 areaOf: 5.151974e+13\n    test 312 perimeterOf: 2.638608e+07\n    test 313 centroidOf: -19.444, -133.333\n    test 314 isclockwise: True\n    test 315 isconvex: True\n    test 316 ispolar: False\n    test 317 areaOf: 1.751694e+12  FAILED, KNOWN, expected 4.469277e+12\n    test 318 perimeterOf: 1.562029e+07\n    test 319 centroidOf: -72.926, 46.47\n    test 320 isclockwise: True\n    test 321 isconvex: False\n    test 322 ispolar: True\n    test 323 points2: 18\n    test 324 nearestOn5: (-77.455114, -16.67063, 4.134666, 307.988253, 0)\n    test 325 areaCO: 2.83192062868e+11  FAILED, KNOWN, expected 2.69601367661e+11\n    test 326 isclockwise: True\n    test 327 perimeterCO: 2098630.956053  FAILED, KNOWN, expected 2099854.381923\n    test 328 latlon: (-66.6, -88.0)\n    test 329 philam: (-1.162389, -1.53589)\n    test 330 latlonheight: (-66.6, -88.0, 0)\n    test 331 philamheight: (-1.162389, -1.53589, 0)\n    test 332 _N_vector: (0.01386, -0.39691, -0.91775)\n    test 333 toNvector: (0.01386, -0.39691, -0.91775)\n    test 334 toNvector: (0.01386, -0.396906, -0.917755, 0)\n    test 335 classof: 66.6°S, 088.0°W\n    test 336 others: 66.6°S, 088.0°W\n    test 337 copy(<class 'type'>): (<class 'pygeodesy.sphericalNvector.LatLon'>, True)\n    test 338 LatLon.copy(): (<class 'pygeodesy.sphericalNvector.LatLon'>, True)\n\n    testing(pygeodesy.points, 25.05.12, LatLon=<class 'pygeodesy.sphericalTrigonometry.LatLon'>)\n    test 339 areaOf: 8.811228e+09\n    test 340 centroidOf: 45.5, 1.5\n    test 341 perimeterOf: 2.673633e+05\n    test 342 isclockwise: False\n    test 343 isconvex: True\n    test 344 ispolar: False\n    test 345 areaOf: 7.086883e+09\n    test 346 perimeterOf: 2.687460e+05\n    test 347 centroidOf: 0.333333, 0.333333\n    test 348 isclockwise: True\n    test 349 isconvex: True\n    test 350 ispolar: False\n    test 351 areaOf: 2.827856e+10\n    test 352 perimeterOf: 4.717039e+05\n    test 353 centroidOf: 1.0, 1.0\n    test 354 isclockwise: False\n    test 355 isconvex: True\n    test 356 ispolar: False\n    test 357 areaOf: 2.747297e+13\n    test 358 perimeterOf: 2.332643e+07\n    test 359 centroidOf: 52.113, 102.123\n    test 360 isclockwise: False\n    test 361 isconvex: False\n    test 362 ispolar: True\n    test 363 areaOf: 8.482014e+10\n    test 364 perimeterOf: 1.334104e+06\n    test 365 centroidOf: 1.167, 1.667\n    test 366 isclockwise: False\n    test 367 isconvex: False\n    test 368 ispolar: False\n    test 369 areaOf: 5.151974e+13\n    test 370 perimeterOf: 2.638608e+07\n    test 371 centroidOf: -19.444, -133.333\n    test 372 isclockwise: True\n    test 373 isconvex: True\n    test 374 ispolar: False\n    test 375 areaOf: 1.751694e+12  FAILED, KNOWN, expected 4.469277e+12\n    test 376 perimeterOf: 1.562029e+07\n    test 377 centroidOf: -72.926, 46.47\n    test 378 isclockwise: True\n    test 379 isconvex: False\n    test 380 ispolar: True\n    test 381 points2: 18\n    test 382 nearestOn5: (-77.455114, -16.67063, 4.134666, 307.988253, 0)\n    test 383 areaCO: 2.83192062868e+11  FAILED, KNOWN, expected 2.69601367661e+11\n    test 384 isclockwise: True\n    test 385 perimeterCO: 2098630.956053  FAILED, KNOWN, expected 2099854.381923\n    test 386 latlon: (-66.6, -88.0)\n    test 387 philam: (-1.162389, -1.53589)\n    test 388 latlonheight: (-66.6, -88.0, 0)\n    test 389 philamheight: (-1.162389, -1.53589, 0)\n    test 390 _N_vector: (0.01386, -0.39691, -0.91775)\n    test 391 toNvector: (0.01386, -0.39691, -0.91775)\n    test 392 toNvector: (0.01386, -0.396906, -0.917755, 0)\n    test 393 classof: 66.6°S, 088.0°W\n    test 394 others: 66.6°S, 088.0°W\n    test 395 copy(<class 'type'>): (<class 'pygeodesy.sphericalTrigonometry.LatLon'>, True)\n    test 396 LatLon.copy(): (<class 'pygeodesy.sphericalTrigonometry.LatLon'>, True)\n\n    testing(pygeodesy.points, 25.05.12, LatLon=<class 'pygeodesy.ellipsoidalNvector.LatLon'>)\n    test 397 areaOf: 8.811228e+09\n    test 398 centroidOf: 45.5, 1.5\n    test 399 perimeterOf: 2.673633e+05\n    test 400 isclockwise: False\n    test 401 isconvex: True\n    test 402 ispolar: False\n    test 403 areaOf: 7.086883e+09\n    test 404 perimeterOf: 2.687460e+05\n    test 405 centroidOf: 0.333333, 0.333333\n    test 406 isclockwise: True\n    test 407 isconvex: True\n    test 408 ispolar: False\n    test 409 areaOf: 2.827856e+10\n    test 410 perimeterOf: 4.717039e+05\n    test 411 centroidOf: 1.0, 1.0\n    test 412 isclockwise: False\n    test 413 isconvex: True\n    test 414 ispolar: False\n    test 415 areaOf: 2.747297e+13\n    test 416 perimeterOf: 2.332643e+07\n    test 417 centroidOf: 52.113, 102.123\n    test 418 isclockwise: False\n    test 419 isconvex: False\n    test 420 ispolar: True\n    test 421 areaOf: 8.482014e+10\n    test 422 perimeterOf: 1.334104e+06\n    test 423 centroidOf: 1.167, 1.667\n    test 424 isclockwise: False\n    test 425 isconvex: False\n    test 426 ispolar: False\n    test 427 areaOf: 5.151974e+13\n    test 428 perimeterOf: 2.638608e+07\n    test 429 centroidOf: -19.444, -133.333\n    test 430 isclockwise: True\n    test 431 isconvex: True\n    test 432 ispolar: False\n    test 433 areaOf: 1.751694e+12  FAILED, KNOWN, expected 4.469277e+12\n    test 434 perimeterOf: 1.562029e+07\n    test 435 centroidOf: -72.926, 46.47\n    test 436 isclockwise: True\n    test 437 isconvex: False\n    test 438 ispolar: True\n    test 439 points2: 18\n    test 440 nearestOn5: (-77.455114, -16.67063, 4.134666, 307.988253, 0)\n    test 441 areaCO: 2.83192062868e+11  FAILED, KNOWN, expected 2.69601367661e+11\n    test 442 isclockwise: True\n    test 443 perimeterCO: 2098630.956053  FAILED, KNOWN, expected 2099854.381923\n    test 444 latlon: (-66.6, -88.0)\n    test 445 philam: (-1.162389, -1.53589)\n    test 446 latlonheight: (-66.6, -88.0, 0)\n    test 447 philamheight: (-1.162389, -1.53589, 0)\n    test 448 _N_vector: (0.01386, -0.39691, -0.91775)\n    test 449 toNvector: (0.01386, -0.39691, -0.91775)\n    test 450 toNvector: (0.01386, -0.396906, -0.917755, 0)\n    test 451 classof: 66.6°S, 088.0°W\n    test 452 others: 66.6°S, 088.0°W\n    test 453 copy(<class 'type'>): (<class 'pygeodesy.ellipsoidalNvector.LatLon'>, True)\n    test 454 LatLon.copy(): (<class 'pygeodesy.ellipsoidalNvector.LatLon'>, True)\n\n    testing(pygeodesy.points, 25.05.12, LatLon=<class 'pygeodesy.ellipsoidalVincenty.LatLon'>)\n    test 455 areaOf: 8.811228e+09\n    test 456 centroidOf: 45.5, 1.5\n    test 457 perimeterOf: 2.673633e+05\n    test 458 isclockwise: False\n    test 459 isconvex: True\n    test 460 ispolar: False\n    test 461 areaOf: 7.086883e+09\n    test 462 perimeterOf: 2.687460e+05\n    test 463 centroidOf: 0.333333, 0.333333\n    test 464 isclockwise: True\n    test 465 isconvex: True\n    test 466 ispolar: False\n    test 467 areaOf: 2.827856e+10\n    test 468 perimeterOf: 4.717039e+05\n    test 469 centroidOf: 1.0, 1.0\n    test 470 isclockwise: False\n    test 471 isconvex: True\n    test 472 ispolar: False\n    test 473 areaOf: 2.747297e+13\n    test 474 perimeterOf: 2.332643e+07\n    test 475 centroidOf: 52.113, 102.123\n    test 476 isclockwise: False\n    test 477 isconvex: False\n    test 478 ispolar: True\n    test 479 areaOf: 8.482014e+10\n    test 480 perimeterOf: 1.334104e+06\n    test 481 centroidOf: 1.167, 1.667\n    test 482 isclockwise: False\n    test 483 isconvex: False\n    test 484 ispolar: False\n    test 485 areaOf: 5.151974e+13\n    test 486 perimeterOf: 2.638608e+07\n    test 487 centroidOf: -19.444, -133.333\n    test 488 isclockwise: True\n    test 489 isconvex: True\n    test 490 ispolar: False\n    test 491 areaOf: 1.751694e+12  FAILED, KNOWN, expected 4.469277e+12\n    test 492 perimeterOf: 1.562029e+07\n    test 493 centroidOf: -72.926, 46.47\n    test 494 isclockwise: True\n    test 495 isconvex: False\n    test 496 ispolar: True\n    test 497 points2: 18\n    test 498 nearestOn5: (-77.455114, -16.67063, 4.134666, 307.988253, 0)\n    test 499 areaCO: 2.83192062868e+11  FAILED, KNOWN, expected 2.69601367661e+11\n    test 500 isclockwise: True\n    test 501 perimeterCO: 2098630.956053  FAILED, KNOWN, expected 2099854.381923\n    test 502 latlon: (-66.6, -88.0)\n    test 503 philam: (-1.162389, -1.53589)\n    test 504 latlonheight: (-66.6, -88.0, 0)\n    test 505 philamheight: (-1.162389, -1.53589, 0)\n    test 506 _N_vector: (0.01386, -0.39691, -0.91775)\n    test 507 toNvector: (0.01386, -0.39691, -0.91775, 0)\n    test 508 toNvector: (0.01386, -0.396906, -0.917755, 0)\n    test 509 classof: 66.6°S, 088.0°W\n    test 510 others: 66.6°S, 088.0°W\n    test 511 copy(<class 'type'>): (<class 'pygeodesy.ellipsoidalVincenty.LatLon'>, True)\n    test 512 LatLon.copy(): (<class 'pygeodesy.ellipsoidalVincenty.LatLon'>, True)\n\n    testing(pygeodesy.points, 25.05.12, LatLon=<class 'pygeodesy.ellipsoidalKarney.LatLon'>)\n    test 513 areaOf: 8.811228e+09\n    test 514 centroidOf: 45.5, 1.5\n    test 515 perimeterOf: 2.673633e+05\n    test 516 isclockwise: False\n    test 517 isconvex: True\n# lazily imported pygeodesy.geodesicw by ellipsoids.py line 1074\n    test 518 ispolar: False\n    test 519 areaOf: 7.086883e+09\n    test 520 perimeterOf: 2.687460e+05\n    test 521 centroidOf: 0.333333, 0.333333\n    test 522 isclockwise: True\n    test 523 isconvex: True\n    test 524 ispolar: False\n    test 525 areaOf: 2.827856e+10\n    test 526 perimeterOf: 4.717039e+05\n    test 527 centroidOf: 1.0, 1.0\n    test 528 isclockwise: False\n    test 529 isconvex: True\n    test 530 ispolar: False\n    test 531 areaOf: 2.747297e+13\n    test 532 perimeterOf: 2.332643e+07\n    test 533 centroidOf: 52.113, 102.123\n    test 534 isclockwise: False\n    test 535 isconvex: False\n    test 536 ispolar: True\n    test 537 areaOf: 8.482014e+10\n    test 538 perimeterOf: 1.334104e+06\n    test 539 centroidOf: 1.167, 1.667\n    test 540 isclockwise: False\n    test 541 isconvex: False\n    test 542 ispolar: False\n    test 543 areaOf: 5.151974e+13\n    test 544 perimeterOf: 2.638608e+07\n    test 545 centroidOf: -19.444, -133.333\n    test 546 isclockwise: True\n    test 547 isconvex: True\n    test 548 ispolar: False\n    test 549 areaOf: 1.751694e+12  FAILED, KNOWN, expected 4.469277e+12\n    test 550 perimeterOf: 1.562029e+07\n    test 551 centroidOf: -72.926, 46.47\n    test 552 isclockwise: True\n    test 553 isconvex: False\n    test 554 ispolar: True\n    test 555 points2: 18\n    test 556 nearestOn5: (-77.455114, -16.67063, 4.134666, 307.988253, 0)\n    test 557 areaCO: 2.83192062868e+11  FAILED, KNOWN, expected 2.69601367661e+11\n    test 558 isclockwise: True\n    test 559 perimeterCO: 2098630.956053  FAILED, KNOWN, expected 2099854.381923\n    test 560 latlon: (-66.6, -88.0)\n    test 561 philam: (-1.162389, -1.53589)\n    test 562 latlonheight: (-66.6, -88.0, 0)\n    test 563 philamheight: (-1.162389, -1.53589, 0)\n    test 564 _N_vector: (0.01386, -0.39691, -0.91775)\n    test 565 toNvector: (0.01386, -0.39691, -0.91775, 0)\n    test 566 toNvector: (0.01386, -0.396906, -0.917755, 0)\n    test 567 classof: 66.6°S, 088.0°W\n    test 568 others: 66.6°S, 088.0°W\n    test 569 copy(<class 'type'>): (<class 'pygeodesy.ellipsoidalKarney.LatLon'>, True)\n    test 570 LatLon.copy(): (<class 'pygeodesy.ellipsoidalKarney.LatLon'>, True)\n\n    testing(pygeodesy.points, 25.05.12, LatLon=<class 'pygeodesy.ellipsoidalExact.LatLon'>)\n    test 571 areaOf: 8.811228e+09\n    test 572 centroidOf: 45.5, 1.5\n    test 573 perimeterOf: 2.673633e+05\n    test 574 isclockwise: False\n    test 575 isconvex: True\n# lazily imported pygeodesy.geodesicx by ellipsoids.py line 1082\n# lazily imported pygeodesy.elliptic by gx.py line 421\n    test 576 ispolar: False\n    test 577 areaOf: 7.086883e+09\n    test 578 perimeterOf: 2.687460e+05\n    test 579 centroidOf: 0.333333, 0.333333\n    test 580 isclockwise: True\n    test 581 isconvex: True\n    test 582 ispolar: False\n    test 583 areaOf: 2.827856e+10\n    test 584 perimeterOf: 4.717039e+05\n    test 585 centroidOf: 1.0, 1.0\n    test 586 isclockwise: False\n    test 587 isconvex: True\n    test 588 ispolar: False\n    test 589 areaOf: 2.747297e+13\n    test 590 perimeterOf: 2.332643e+07\n    test 591 centroidOf: 52.113, 102.123\n    test 592 isclockwise: False\n    test 593 isconvex: False\n    test 594 ispolar: True\n    test 595 areaOf: 8.482014e+10\n    test 596 perimeterOf: 1.334104e+06\n    test 597 centroidOf: 1.167, 1.667\n    test 598 isclockwise: False\n    test 599 isconvex: False\n    test 600 ispolar: False\n    test 601 areaOf: 5.151974e+13\n    test 602 perimeterOf: 2.638608e+07\n    test 603 centroidOf: -19.444, -133.333\n    test 604 isclockwise: True\n    test 605 isconvex: True\n    test 606 ispolar: False\n    test 607 areaOf: 1.751694e+12  FAILED, KNOWN, expected 4.469277e+12\n    test 608 perimeterOf: 1.562029e+07\n    test 609 centroidOf: -72.926, 46.47\n    test 610 isclockwise: True\n    test 611 isconvex: False\n    test 612 ispolar: True\n    test 613 points2: 18\n    test 614 nearestOn5: (-77.455114, -16.67063, 4.134666, 307.988253, 0)\n    test 615 areaCO: 2.83192062868e+11  FAILED, KNOWN, expected 2.69601367661e+11\n    test 616 isclockwise: True\n    test 617 perimeterCO: 2098630.956053  FAILED, KNOWN, expected 2098430.887891\n    test 618 latlon: (-66.6, -88.0)\n    test 619 philam: (-1.162389, -1.53589)\n    test 620 latlonheight: (-66.6, -88.0, 0)\n    test 621 philamheight: (-1.162389, -1.53589, 0)\n    test 622 _N_vector: (0.01386, -0.39691, -0.91775)\n    test 623 toNvector: (0.01386, -0.39691, -0.91775, 0)\n    test 624 toNvector: (0.01386, -0.396906, -0.917755, 0)\n    test 625 classof: 66.6°S, 088.0°W\n    test 626 others: 66.6°S, 088.0°W\n    test 627 copy(<class 'type'>): (<class 'pygeodesy.ellipsoidalExact.LatLon'>, True)\n    test 628 LatLon.copy(): (<class 'pygeodesy.ellipsoidalExact.LatLon'>, True)\n\n    testArea(pygeodesy.ellipsoidalKarney, 25.05.27)\n    test 629 luneOf: 1.27516405431022e+14\n\n    testArea(pygeodesy.ellipsoidalExact, 25.08.28)\n    test 630 luneOf: 1.27516405431022e+14\n\n    67 of 630 testPoints.py tests (10.6%) FAILED, incl. 21 KNOWN plus 46 DeprecationWarnings (pygeodesy 26.3.26 PyPy 7.3.17 Python 3.10.14 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 1.163 sec\nrunning /opt/local/bin/p....y3.10 -W default ~/PyGeodesy/test/testProps.py\n# lazily imported pygeodesy.basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.DeprecationWarnings from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isint from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isLazy from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.issubclassof from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.iterNumpy2over from .iters by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.LazyImportError from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.karney by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.NN from .interns by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.normDMS from .dms by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.pairs from .streprs by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.printf from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.property_RO from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.typename from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.Property from .props by testProps.py line 11\n# lazily imported pygeodesy.Property_RO from .props by testProps.py line 11\n# lazily imported pygeodesy.Ellipsoid from .ellipsoids by testProps.py line 149\n# lazily imported pygeodesy.R_M from .constants by testProps.py line 149\n\n    testing testProps.py 23.03.27 isLazy=3\n\n    test<class 'pygeodesy.named._NamedBase'>(pygeodesy.props, 25.12.31)\n    test 1 P1: 1\n    test 2 p1: 2\n    test 3 P2: 1\n    test 4 p2: 3\n    test 5 q1: 1\n    test 6 q2: 2\n    test 7 q3: True\n    test 8 u1: None\n    test 9 u2: U\n    test 10 P3: 4\n    test 11 p3: 5\n    test 12 q4: False\n    test 13 q5: 2\n    test 14 u3: None\n    test 15 u4: U\n    test 16 X1: immutable Property_RO: X.setter X\n    test 17 X2: invalid Property_RO: X.deleter X\n    test 18 y1: immutable property_RO: y.setter y\n    test 19 y2: invalid property_RO: y.deleter y\n    test 20 Z1: invalid Property: Z.deleter Z\n    test 21 Z2: invalid Property: Z.getter Z\n\n    test<class 'pygeodesy.ellipsoids.Ellipsoid'>(pygeodesy.props, 25.12.31)\n    test 22 P1: 1\n    test 23 p1: 2\n    test 24 P2: 1\n    test 25 p2: 3\n    test 26 q1: 1\n    test 27 q2: 2\n    test 28 q3: True\n    test 29 u1: None\n    test 30 u2: U\n    test 31 P3: 4\n    test 32 p3: 5\n    test 33 q4: False\n    test 34 q5: 2\n    test 35 u3: None\n    test 36 u4: U\n    test 37 X1: immutable Property_RO: X.setter X\n    test 38 X2: invalid Property_RO: X.deleter X\n    test 39 y1: immutable property_RO: y.setter y\n    test 40 y2: invalid property_RO: y.deleter y\n    test 41 Z1: invalid Property: Z.deleter Z\n    test 42 Z2: invalid Property: Z.getter Z\n\n    all 42 testProps.py tests passed (pygeodesy 26.3.26 PyPy 7.3.17 Python 3.10.14 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 522.137 us\nrunning /opt/local/bin/p....y3.10 -W default ~/PyGeodesy/test/testResections.py\n./test/testResections.py:40: DeprecationWarning: method L{collins<__main__.Cartesian_.collins>} has been DEPRECATED, use method L{collins5}.\n  self.test(collins.__name__, C_(A).collins(C, B, 109.5125, 115.0889), t, nl=1)  # DEPRECATED\n./test/testResections.py:63: DeprecationWarning: method L{tienstra<__main__.Cartesian_.tienstra>} has been DEPRECATED, use method L{tienstra7}.\n  self.test(tienstra.__name__, C_(A).tienstra(B, C, 115.0889, None, 109.5125), t, nl=1)  # DEPRECATED\n./test/testResections.py:72: DeprecationWarning: function L{collins<pygeodesy.deprecated.functions.collins>} has been DEPRECATED, use function L{pygeodesy.collins5}.\n  self.test(collins.__name__, collins(A, C, B, 109.3, 115.1), t, nl=1)  # DEPRECATED\n./test/testResections.py:94: DeprecationWarning: function L{tienstra<pygeodesy.deprecated.functions.tienstra>} has been DEPRECATED, use function L{pygeodesy.tienstra7}.\n  self.test(tienstra.__name__, tienstra(A, B, C, 115.1, beta=135.6, gamma=109.3), t, nl=1)  # DEPRECATED\n./test/testResections.py:100: DeprecationWarning: function L{triAngle4<pygeodesy.deprecated.functions.triAngle4>} has been DEPRECATED on 2023.09.14, use function L{pygeodesy.triAngle5}.\n  rA, rB, rC, _ = triAngle4(10, 30, c)\n./pygeodesy/deprecated/classes.py:33: DeprecationWarning: class L{TriAngle4Tuple<pygeodesy.deprecated.classes.TriAngle4Tuple>} has been DEPRECATED on 2023.09.14, use class L{TriAngle5Tuple}, ignoring item C{area}.\n  deprecated_class(cls)\n./test/testResections.py:107: DeprecationWarning: function L{triAngle4<pygeodesy.deprecated.functions.triAngle4>} has been DEPRECATED on 2023.09.14, use function L{pygeodesy.triAngle5}.\n  rA, rB, rC, _ = triAngle4(320, 435, 598)\n./test/testResections.py:111: DeprecationWarning: function L{triAngle4<pygeodesy.deprecated.functions.triAngle4>} has been DEPRECATED on 2023.09.14, use function L{pygeodesy.triAngle5}.\n  rA, rB, rC, _ = triAngle4(100, 100, 100)\n./test/testResections.py:115: DeprecationWarning: function L{triAngle4<pygeodesy.deprecated.functions.triAngle4>} has been DEPRECATED on 2023.09.14, use function L{pygeodesy.triAngle5}.\n  rA, rB, rC, _ = triAngle4(435, 320, 600)\n./test/testResections.py:119: DeprecationWarning: function L{triAngle4<pygeodesy.deprecated.functions.triAngle4>} has been DEPRECATED on 2023.09.14, use function L{pygeodesy.triAngle5}.\n  rA, rB, rC, _ = triAngle4(1716, 924, 1056)\n./test/testResections.py:126: DeprecationWarning: function L{triAngle4<pygeodesy.deprecated.functions.triAngle4>} has been DEPRECATED on 2023.09.14, use function L{pygeodesy.triAngle5}.\n  t = triAngle4(1, 2, EPS0 / 2)  # DEPRECATED\n# lazily imported pygeodesy.basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.DeprecationWarnings from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isint from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isLazy from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.issubclassof from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.iterNumpy2over from .iters by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.LazyImportError from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.karney by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.NN from .interns by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.normDMS from .dms by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.pairs from .streprs by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.printf from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.property_RO from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.typename from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.EPS0 from .constants by testResections.py line 11\n# lazily imported pygeodesy.PI from .constants by testResections.py line 11\n# lazily imported pygeodesy.PI_4 from .constants by testResections.py line 11\n# lazily imported pygeodesy.cassini from .resections by testResections.py line 11\n# lazily imported pygeodesy.collins5 from .resections by testResections.py line 11\n# lazily imported pygeodesy.fstr from .streprs by testResections.py line 11\n# lazily imported pygeodesy.pierlot from .resections by testResections.py line 11\n# lazily imported pygeodesy.pierlotx from .resections by testResections.py line 11\n# lazily imported pygeodesy.ResectionError from .resections by testResections.py line 11\n# lazily imported pygeodesy.snellius3 from .resections by testResections.py line 11\n# lazily imported pygeodesy.tienstra7 from .resections by testResections.py line 11\n# lazily imported pygeodesy.triAngle from .resections by testResections.py line 11\n# lazily imported pygeodesy.triAngle5 from .resections by testResections.py line 11\n# lazily imported pygeodesy.triArea from .resections by testResections.py line 11\n# lazily imported pygeodesy.triSide from .resections by testResections.py line 11\n# lazily imported pygeodesy.triSide2 from .resections by testResections.py line 11\n# lazily imported pygeodesy.triSide4 from .resections by testResections.py line 11\n# lazily imported pygeodesy.Vector3d from .vector3d by testResections.py line 11\n# lazily imported pygeodesy.wildberger3 from .resections by testResections.py line 11\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by <frozen importlib._bootstrap> line 1075\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by <frozen importlib._bootstrap> line 1075\n# lazily imported pygeodesy.Conformal2Tuple from .triaxials.triaxial5 by <frozen importlib._bootstrap> line 1075\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by classes.py line 21\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by classes.py line 21\n# lazily imported pygeodesy.Conformal2Tuple from .triaxials.triaxial5 by classes.py line 21\n\n    testing testResections.py 25.05.04 isLazy=3\n    test 1 cassini: (2128.3903, 5578.1443, 0)\n# imported pygeodesy.resections into cartesianBase.py line 116\n    test 2 cassini: Cartesian_(2128.3903, 5578.1443, 0)\n\n    test 3 collins5: (2128.3903, 5578.1443, 0)\n    test 4 collins5: (1830.5948, 2576.2429, 0)\n    test 5 collins5: 1581.1388, 1562.0499, 2121.3203\n    test 6 collins5: Cartesian_(2128.3903, 5578.1443, 0)\n    test 7 collins5: Cartesian_(1830.5948, 2576.2429, 0)\n    test 8 collins5: 1581.1388, 1562.0499, 2121.3203\n    test 9 collins5: 1581.1388, 1562.0499, 2121.3203\n\n    test 10 collins: (Cartesian_(2128.39, 5578.144, 0), Cartesian_(1830.595, 2576.243, 0), 1581.13883, 1562.049935, 2121.320344)\n\n    test 11 pierlot: (2128.3903, 5578.1443, 0)\n    test 12 pierlot: Cartesian_(2128.3903, 5578.1443, 0)\n    test 13 pierlot: Cartesian_(2128.3903, 5578.1443, 0.0)\n\n    test 14 pierlotx: (2128.3903, 5578.1443, 0)\n    test 15 pierlotx: Cartesian_(2128.3903, 5578.1443, 0)\n    test 16 pierlotx: Cartesian_(2128.3903, 5578.1443, 0.0)\n\n    test 17 tienstra7: (2128.3903, 5578.1443, 0)\n    test 18 tienstra7: 47.9357, 84.8896, 47.1747, 1581.1388, 2121.3203, 1562.0499\n    test 19 tienstra7: Cartesian_(2128.3903, 5578.1443, 0)\n    test 20 tienstra7: 47.9357, 84.8896, 47.1747, 1581.1388, 2121.3203, 1562.0499\n\n    test 21 tienstra: (Cartesian_(2128.39, 5578.144, 0), 47.935673, 84.889582, 47.174744, 1581.13883, 2121.320344, 1562.049935)\n\n    test 22 cassini: (2129.3018, 5575.8016, 0)\n\n    test 23 collins5: (2129.3018, 5575.8016, 0)\n    test 24 collins5: (1835.1911, 2563.0708, 0)\n    test 25 collins5: 1581.1388, 1562.0499, 2121.3203\n\n    test 26 collins: (Vector3d(2129.30185, 5575.80164, 0), Vector3d(1835.19112, 2563.07083, 0), 1581.13883, 1562.049935, 2121.320344)\n\n    test 27 pierlot: (2129.3018, 5575.8016, 0)\n# imported pygeodesy.basics into errors.py line 443\n    test 28 pierlot: alpha12 (115.1), alpha23 (109.3), eps (0), point1 (Vector3d(3100.0, 5000.0, 0)), point2 (Vector3d(2200.0, 6300.0, 0)) or point3 (Vector3d(1000.0, 5300.0, 0)): eps (0) invalid\n\n    test 29 pierlotx: (2129.3018, 5575.8016, 0)\n    test 30 pierlotx: (2128.2026, 4708.1218, 0)\n    test 31 pierlotx: (1969.0673, 6633.5695, 0)\n    test 32 pierlotx: (2438.0239, 5094.568, 0)\n\n    test 33 tienstra7: (2129.3018, 5575.8016, 0)\n    test 34 tienstra7: 47.9357, 84.8896, 47.1747, 1581.1388, 2121.3203, 1562.0499\n\n    test 35 tienstra: (Vector3d(2129.30185, 5575.80164, 0), 47.935673, 84.889582, 47.174744, 1581.13883, 2121.320344, 1562.049935)\n\n    test 36 triSide4: (10.0, 30.0, 0.785398, 8.840862)\n\n    test 37 snellius3: (17.54582, 38.564239, 46.317675)\n    test 38 snellius3: (844.880591, 571.107418, 835.462796)\n    test 39 snellius3: (128.557522, 100.0, 187.938524)\n    test 40 snellius3: (567.480866, 847.344375, 832.446688)\n    test 41 snellius3: (4064.197388, 3652.539386, 4988.197388)\n\n    test 42 wildberger3: (17.54582, 38.56424, 46.317675)\n    test 43 wildberger3: (844.880591, 571.107418, 835.462796)\n    test 44 wildberger3: (128.557522, 100.0, 187.938524)\n    test 45 wildberger3: (567.480866, 847.344375, 832.446688)\n    test 46 wildberger3: (4064.197346, 3652.539342, 4988.197355)  FAILED, KNOWN, expected (4064.197343, 3652.539342, 4988.197355)\n\n    test 47 triAngle: 3.141592654\n    test 48 triAngle4: (1.570796, 1.570796, 0.0, 0.0)\n    test 49 triAngle5: (1.570796, 1.570796, 0.0, 0.0, 0.0)\n    test 50 triAngle5: (0.24871, 0.927295, 1.965587, 1.5, 24.0)\n    test 51 triArea: 24.0\n    test 52 triSide2: (2.0, 0.0)\n    test 53 triSide2: (2.0, 3.141593)\n\n    17 of 53 testResections.py tests (32.1%) FAILED, incl. 1 KNOWN plus 16 DeprecationWarnings (pygeodesy 26.3.26 PyPy 7.3.17 Python 3.10.14 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 25.998 ms\nrunning /opt/local/bin/p....y3.10 -W default ~/PyGeodesy/test/testRhumb_aux_.py\n./test/testRhumb_aux_.py:267: DeprecationWarning: method L{distance2<pygeodesy.rhumb.aux_.RhumbLineAux.distance2>} has been DEPRECATED on 23.09.23, use method L{RhumbLineAux.Inverse} or L{RhumbLine.Inverse}.\n  t = r.distance2(p.lat2, p.lon2)\n# lazily imported pygeodesy.basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.DeprecationWarnings from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isint from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isLazy from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.issubclassof from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.iterNumpy2over from .iters by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.LazyImportError from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.karney by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.NN from .interns by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.normDMS from .dms by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.pairs from .streprs by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.printf from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.property_RO from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.typename from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.Caps from .karney by testRhumb_aux_.py line 11\n# lazily imported pygeodesy.classname from .named by testRhumb_aux_.py line 11\n# lazily imported pygeodesy.DIG from .constants by testRhumb_aux_.py line 11\n# lazily imported pygeodesy.Ellipsoid from .ellipsoids by testRhumb_aux_.py line 11\n# lazily imported pygeodesy.Ellipsoids from .ellipsoids by testRhumb_aux_.py line 11\n# lazily imported pygeodesy.GDict from .karney by testRhumb_aux_.py line 11\n# lazily imported pygeodesy.isfinite from .constants by testRhumb_aux_.py line 11\n# lazily imported pygeodesy.itemsorted from .basics by testRhumb_aux_.py line 11\n# lazily imported pygeodesy.latDMS from .dms by testRhumb_aux_.py line 11\n# lazily imported pygeodesy.lonDMS from .dms by testRhumb_aux_.py line 11\n# lazily imported pygeodesy.parseDMS from .dms by testRhumb_aux_.py line 11\n# lazily imported pygeodesy.parseDMS2 from .dms by testRhumb_aux_.py line 11\n# lazily imported pygeodesy.RhumbAux from .rhumb.aux_ by testRhumb_aux_.py line 11\n# lazily imported pygeodesy.RhumbLineAux from .rhumb.aux_ by testRhumb_aux_.py line 11\n# lazily imported pygeodesy.RhumbLineSolve from .rhumb.solve by testRhumb_aux_.py line 11\n# lazily imported pygeodesy.R_M from .constants by testRhumb_aux_.py line 11\n# lazily imported pygeodesy.Fwelford from .fstats by testRhumb_aux_.py line 11\n# lazily imported pygeodesy.fremainder from .fmath by testRhumb_aux_.py line 11\n\n    testing testRhumb_aux_.py 24.08.30 (module pygeodesy.rhumb.aux_ 25.08.31) isLazy=3\n\n    testDirectX vs ...(pygeodesy.rhumb.aux_, 25.08.31)\n    test 1 Direct.azi12: -92.38889\n    test 2 Direct.lat1: 40.6\n    test 3 Direct.lat2: 21.3781208262067  FAILED, KNOWN (0.402846), expected 35.79999595\n    test 4 Direct.lon1: -73.8\n    test 5 Direct.lon2: -102.999609498889  FAILED, KNOWN (1.73414), expected 140.3000041\n    test 6 Direct.s12: 12782581.068\n\n    20 tests skipped (20): numpy in PYGEODESY_XPACKAGES=numpy,scipy: required by auxDST.AuxDST\n\n    testInverseX vs ...(pygeodesy.rhumb.aux_, 25.08.31)\n    test 7 Inverse.azi12: -92.3888879816996  FAILED, KNOWN (2.18457e-08), expected -92.38889\n    test 8 Inverse.lat1: 40.6\n    test 9 Inverse.lat2: 35.8\n    test 10 Inverse.lon1: -73.8\n    test 11 Inverse.lon2: 140.3\n    test 12 Inverse.s12: 1282.19384243156  FAILED, KNOWN (1.8964e-09), expected 1282.19384\n    test 13 Inverse.S12: 21234695071407.8  FAILED, KNOWN (0.00128112), expected 21207525604650.8\n\n    60 tests skipped (80): numpy in PYGEODESY_XPACKAGES=numpy,scipy: required by auxDST.AuxDST\n\n    test 14 R.exact: True\n    test 15 R.exact: False\n    test 16 R: RhumbAux(RAorder=None, TMorder=6, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), exact=False)\n\n    test 17 R.exact: True\n    test 18 R.Line.exact: True\n# lazily imported pygeodesy.etm by bases.py line 1013\n    test 19 R.Line: RhumbLineAux(TMorder=6, azi12=3.0, exact=True, lat1=1.0, lon1=2.0, rhumb=RhumbAux(RAorder=None, TMorder=6, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), exact=True), xTM=ExactTransverseMercator(datum='WGS84', extendp=False, k0=0.9996, lon0=0.0))\n# lazily imported pygeodesy.ktm by bases.py line 448\n# imported pygeodesy.basics into errors.py line 915\n# lazily imported pygeodesy.geodesicx by ellipsoids.py line 1043\n\n    test 20 PlumbTo(exact=False, est=1000000.0): PlumbTo(a02=17.967658, a12=27.74256, at=90.0, azi0=113.73626, azi12=45.0, lat0=60, lat1=30.0, lat2=49.634582, lon0=0, lon1=0.0, lon2=25.767876, name='PlumbTo', s02=1997960.116871, s12=3083112.636236)\n    test 21 a02: 17.967658\n    test 22 s02: 1997960.116871\n    test 23 s12: 3083112.636236\n    test 24 azi0: 113.736\n    test 25 azi2: 135.000\n    test 26 iteration: 7\n\n    test 27 PlumbTo(exact=False, est=None): PlumbTo(a02=17.967658, a12=27.74256, at=90.0, azi0=113.73626, azi12=45.0, lat0=60, lat1=30.0, lat2=49.634582, lon0=0, lon1=0.0, lon2=25.767876, name='PlumbTo', s02=1997960.116871, s12=3083112.636236)\n    test 28 a02: 17.967658\n    test 29 s02: 1997960.116871\n    test 30 s12: 3083112.636236\n    test 31 azi0: 113.736\n    test 32 azi2: 135.000\n    test 33 iteration: 5\n# lazily imported pygeodesy.formy by bases.py line 705\n\n    test 34 Intersecant2: (Intersecant2(a03=17.798332, a12=44.076956, azi03=135.0, azi12=45.0, lat0=30.0, lat1=30.0, lat2=61.164348, lat3=45.0, lon0=0.0, lon1=0.0, lon2=46.209348, lon3=15.830286, name='Intersecant2', s03=1977981.142985, s12=4898402.305119), Intersecant2(a03=17.798332, a12=-5.034244, azi03=135.0, azi12=45.0, lat0=30.0, lat1=30.0, lat2=26.4303, lat3=45.0, lon0=0.0, lon1=0.0, lon2=-4.030999, lon3=15.830286, name='Intersecant2', s03=1977981.142985, s12=-559470.390057))\n    test 35 azi0*=-90.000: exact=False, iteration=5, max=0.0, mean=0.0, min=-0.0, stdev=0.0\n\n    test 36 PlumbTo(exact=True, est=1000000.0): PlumbTo(a02=17.967658, a12=27.74256, at=90.0, azi0=113.73626, azi12=45.0, lat0=60, lat1=30.0, lat2=49.634582, lon0=0, lon1=0.0, lon2=25.767876, name='PlumbTo', s02=1997960.116871, s12=3083112.636236)\n    test 37 a02: 17.967658\n    test 38 s02: 1997960.116871\n    test 39 s12: 3083112.636236\n    test 40 azi0: 113.736\n    test 41 azi2: 135.000\n    test 42 iteration: 7\n\n    test 43 PlumbTo(exact=True, est=None): PlumbTo(a02=17.967658, a12=27.74256, at=90.0, azi0=113.73626, azi12=45.0, lat0=60, lat1=30.0, lat2=49.634582, lon0=0, lon1=0.0, lon2=25.767876, name='PlumbTo', s02=1997960.116871, s12=3083112.636236)\n    test 44 a02: 17.967658\n    test 45 s02: 1997960.116871\n    test 46 s12: 3083112.636236\n    test 47 azi0: 113.736\n    test 48 azi2: 135.000\n    test 49 iteration: 5\n\n    test 50 Intersecant2: (Intersecant2(a03=17.798332, a12=44.076956, azi03=135.0, azi12=45.0, lat0=30.0, lat1=30.0, lat2=61.164348, lat3=45.0, lon0=0.0, lon1=0.0, lon2=46.209348, lon3=15.830286, name='Intersecant2', s03=1977981.142985, s12=4898402.305119), Intersecant2(a03=17.798332, a12=-5.034244, azi03=135.0, azi12=45.0, lat0=30.0, lat1=30.0, lat2=26.4303, lat3=45.0, lon0=0.0, lon1=0.0, lon2=-4.030999, lon3=15.830286, name='Intersecant2', s03=1977981.142985, s12=-559470.390057))\n    test 51 azi0*=-90.000: exact=True, iteration=5, max=0.0, mean=0.0, min=-0.0, stdev=0.0\n\n    test 52 PlumbTo(exact=None, est=None): Intersection(a02=17.798332, a12=19.521356, at=90.0, azi02=135.0, azi12=45.0, lat0=60.0, lat1=30.0, lat2=45.0, lon0=0.0, lon1=0.0, lon2=15.830286, name='Intersection', s02=1977981.142985, s12=2169465.957531)\n    test 53 a02: 17.798332\n    test 54 s02: 1977981.142985\n    test 55 s12: 2169465.957531\n    test 56 azi02: 135.000\n    test 57 iteration: 9\n\n    test 58 Intersecant2: (Intersecant2(a03=17.798332, a12=44.076956, azi03=135.0, azi12=45.0, lat0=30.0, lat1=30.0, lat2=61.164348, lat3=45.0, lon0=0.0, lon1=0.0, lon2=46.209348, lon3=15.830286, name='Intersecant2', s03=1977981.142985, s12=4898402.305119), Intersecant2(a03=17.798332, a12=-5.034244, azi03=135.0, azi12=45.0, lat0=30.0, lat1=30.0, lat2=26.4303, lat3=45.0, lon0=0.0, lon1=0.0, lon2=-4.030999, lon3=15.830286, name='Intersecant2', s03=1977981.142985, s12=-559470.390057))\n    test 59 azi0*=90.000: exact=None, iteration=20, max=0.507468, mean=-2.015217, min=-6.079451, stdev=2.057451\n\n    test 60 xTM: ExactTransverseMercator(datum='WGS84', extendp=False, k0=0.9996, lon0=0.0)\n\n    test 61 Intersection: Intersection(a02=42.220588, a12=16.98358, at=-85.0, azi02=-50.0, azi12=35.0, lat0=0.0, lat1=10.0, lat2=23.944114, lon0=-10.0, lon1=-56.0, lon2=-45.833131, name='Intersection', s02=4694721.624938, s12=1888490.587742)  FAILED, KNOWN, expected (26.9774, -43.4088)\n    test 62 PlumbTo: Intersection(a02=0.0, a12=16.98358, at=90.0, azi02=125.0, azi12=35.0, lat0=23.944114, lat1=10.0, lat2=23.944114, lon0=-45.833131, lon1=-56.0, lon2=-45.833131, name='Intersection', s02=0.000044, s12=1888490.587743)\n    test 63 PlumbTo: Intersection(a02=0.0, a12=42.220588, at=90.0, azi02=40.0, azi12=-50.0, lat0=23.944114, lat1=0.0, lat2=23.944114, lon0=-45.833131, lon1=-10.0, lon2=-45.833131, name='Intersection', s02=0.00026, s12=4694721.624901)\n    test 64 xTM: KTransverseMercator(ellipsoid=Ellipsoid(name='Sphere', a=6371008.771415, f=0, f_=0, b=6371008.771415), k0=0.9996, TMorder=6)\n\n    test 65 Intersection: Intersection(a02=31.539478, a12=26.853309, at=-135.0, azi02=-45.0, azi12=90.0, lat0=15.0, lat1=37.0, lat2=37.0, lon0=-17.0, lon1=-76.0, lon2=-42.376015, name='Intersection', s02=3507034.715572, s12=2985955.796006)  FAILED, KNOWN, expected (37.0, -41.7028)\n    test 66 PlumbTo: Intersection(a02=0.0, a12=26.853309, at=90.0, azi02=180.0, azi12=90.0, lat0=37.0, lat1=37.0, lat2=37.0, lon0=-42.376015, lon1=-76.0, lon2=-42.376015, name='Intersection', s02=0.000162, s12=2985955.795978)\n    test 67 PlumbTo: Intersection(a02=0.0, a12=31.539478, at=90.0, azi02=45.0, azi12=-45.0, lat0=37.0, lat1=15.0, lat2=37.0, lon0=-42.376015, lon1=-17.0, lon2=-42.376015, name='Intersection', s02=0.000092, s12=3507034.71557)\n    test 68 xTM: KTransverseMercator(ellipsoid=Ellipsoid(name='Sphere', a=6371008.771415, f=0, f_=0, b=6371008.771415), k0=0.9996, TMorder=6)\n\n    190 of 68 testRhumb_aux_.py tests (279.4%) FAILED, incl. 7 KNOWN plus 183 DeprecationWarnings, 80 skipped (pygeodesy 26.3.26 PyPy 7.3.17 Python 3.10.14 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 7.968 sec\nrunning /opt/local/bin/p....y3.10 -W default ~/PyGeodesy/test/testRhumb_ekx.py\n./test/testRhumb_ekx.py:37: DeprecationWarning: property_RO L{rhumbx<pygeodesy.ellipsoids.Ellipsoid.rhumbx>} has been DEPRECATED on 2023.11.28, use property C{rhumbekx}.\n  R = E.rhumbx\n./test/testRhumb_ekx.py:129: DeprecationWarning: property_RO L{rhumbx<pygeodesy.ellipsoids.Ellipsoid.rhumbx>} has been DEPRECATED on 2023.11.28, use property C{rhumbekx}.\n  R = E.rhumbx\n./test/testRhumb_ekx.py:184: DeprecationWarning: property_RO L{rhumbx<pygeodesy.ellipsoids.Ellipsoid.rhumbx>} has been DEPRECATED on 2023.11.28, use property C{rhumbekx}.\n  P = Ellipsoid(E.b, E.a, name='_Prolate').rhumbx  # '_...' for iOS\n./test/testRhumb_ekx.py:218: DeprecationWarning: property_RO L{rhumbx<pygeodesy.ellipsoids.Ellipsoid.rhumbx>} has been DEPRECATED on 2023.11.28, use property C{rhumbekx}.\n  R = E.rhumbx\n./test/testRhumb_ekx.py:228: DeprecationWarning: method L{orders<pygeodesy.rhumb.ekx.Rhumb.orders>} has been DEPRECATED, use properties C{RAorder} and/or C{TMorder}.\n  t = R.orders(4, 8)\n./pygeodesy/deprecated/classes.py:33: DeprecationWarning: class L{RhumbOrder2Tuple<pygeodesy.deprecated.classes.RhumbOrder2Tuple>} has been DEPRECATED, see deprecated method L{Rhumb.orders}.\n  deprecated_class(cls)\n./test/testRhumb_ekx.py:230: DeprecationWarning: method L{orders<pygeodesy.rhumb.ekx.Rhumb.orders>} has been DEPRECATED, use properties C{RAorder} and/or C{TMorder}.\n  t = R.orders(6, 6)\n./test/testRhumb_ekx.py:269: DeprecationWarning: method L{distance2<pygeodesy.rhumb.ekx.RhumbLine.distance2>} has been DEPRECATED on 23.09.23, use method L{RhumbLineAux.Inverse} or L{RhumbLine.Inverse}.\n  t = r.distance2(p.lat2, p.lon2)\n# lazily imported pygeodesy.basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.DeprecationWarnings from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isint from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isLazy from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.issubclassof from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.iterNumpy2over from .iters by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.LazyImportError from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.karney by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.NN from .interns by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.normDMS from .dms by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.pairs from .streprs by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.printf from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.property_RO from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.typename from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.Caps from .karney by testRhumb_ekx.py line 11\n# lazily imported pygeodesy.classname from .named by testRhumb_ekx.py line 11\n# lazily imported pygeodesy.DIG from .constants by testRhumb_ekx.py line 11\n# lazily imported pygeodesy.Ellipsoid from .ellipsoids by testRhumb_ekx.py line 11\n# lazily imported pygeodesy.GDict from .karney by testRhumb_ekx.py line 11\n# lazily imported pygeodesy.isfinite from .constants by testRhumb_ekx.py line 11\n# lazily imported pygeodesy.itemsorted from .basics by testRhumb_ekx.py line 11\n# lazily imported pygeodesy.latDMS from .dms by testRhumb_ekx.py line 11\n# lazily imported pygeodesy.lonDMS from .dms by testRhumb_ekx.py line 11\n# lazily imported pygeodesy.parseDMS from .dms by testRhumb_ekx.py line 11\n# lazily imported pygeodesy.parseDMS2 from .dms by testRhumb_ekx.py line 11\n# lazily imported pygeodesy.Rhumb from .rhumb.ekx by testRhumb_ekx.py line 11\n# lazily imported pygeodesy.RhumbLine from .rhumb.ekx by testRhumb_ekx.py line 11\n# lazily imported pygeodesy.RhumbLineSolve from .rhumb.solve by testRhumb_ekx.py line 11\n# lazily imported pygeodesy.R_M from .constants by testRhumb_ekx.py line 11\n# lazily imported pygeodesy.Fwelford from .fstats by testRhumb_ekx.py line 11\n# lazily imported pygeodesy.fremainder from .fmath by testRhumb_ekx.py line 11\n# lazily imported pygeodesy.Ellipsoids from .ellipsoids by testRhumb_ekx.py line 346\n\n    testing testRhumb_ekx.py 23.11.30 (module pygeodesy.rhumb.ekx 25.08.31) isLazy=3\n\n    testDirectX vs ...(pygeodesy.rhumb.ekx, 25.08.31)\n# lazily imported pygeodesy.elliptic by ellipsoids.py line 856\n    test 1 Direct.azi12: -92.38889\n    test 2 Direct.lat1: 40.6\n    test 3 Direct.lat2: 35.799995945206  FAILED, KNOWN, expected 35.79999\n    test 4 Direct.lon1: -73.8\n    test 5 Direct.lon2: 140.300004102052  FAILED, KNOWN, expected 140.23651\n    test 6 Direct.s12: 12782581.068\n\n    test 7 GDict.azi12: 51\n    test 8 GDict.lat1: 40.6\n    test 9 GDict.lat2: 71.688899882813\n    test 10 GDict.lon1: -73.8\n    test 11 GDict.lon2: 0.255519824423402  FAILED, KNOWN, expected 0.255519824423359\n    test 12 GDict.s12: 5500000\n    test 13 GDict.S12: 44095641862956.1\n# lazily imported pygeodesy.etm by bases.py line 1013\n\n    test 14 RhumbLine: TMorder=6, azi12=51.0, exact=True, lat1=40.6, lon1=-73.8, rhumb=Rhumb(RAorder=6, TMorder=6, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), exact=True), xTM=ExactTransverseMercator(datum='WGS84', extendp=False, k0=0.9996, lon0=0.0)\n    test 15 Rhumb: Rhumb(RAorder=6, TMorder=6, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), exact=True)\n    test 16 isLoxodrome: True\n\n    test 17 ArcPosition.a12: 51\n    test 18 ArcPosition.azi12: 51\n    test 19 ArcPosition.lat1: 40.6\n    test 20 ArcPosition.lat2: 72.6351275818438  FAILED, KNOWN, expected 72.635128\n    test 21 ArcPosition.lon1: -73.8\n    test 22 ArcPosition.lon2: 4.06852757947455  FAILED, KNOWN, expected 4.068528\n    test 23 ArcPosition.s12: 5667780.57994388  FAILED, KNOWN, expected 5667780.579944\n    test 24 ArcPosition.S12: 46665957571716.4\n\n    test 25 Position.a12: 51\n    test 26 Position.azi12: 51\n    test 27 Position.lat1: 40.6\n    test 28 Position.lat2: 72.6351275818438  FAILED, KNOWN, expected 72.635128\n    test 29 Position.lon1: -73.8\n    test 30 Position.lon2: 4.06852757947455  FAILED, KNOWN, expected 4.068528\n    test 31 Position.s12: 5667780.57994388\n    test 32 Position.S12: 46665957571716.4\n\n    test 33 Direct.a12: 115.020619671634  FAILED, KNOWN, expected 115.02062\n    test 34 Direct.azi12: -92.38889\n    test 35 Direct.lat1: 40.6\n    test 36 Direct.lat2: 35.799995945206  FAILED, KNOWN, expected 35.8\n    test 37 Direct.lon1: -73.8\n    test 38 Direct.lon2: 140.300004102052  FAILED, KNOWN, expected 140.3\n    test 39 Direct.s12: 12782581.068\n\n    test 40 ArcDirect.a12: 115.020619671634\n    test 41 ArcDirect.azi12: -92.38889\n    test 42 ArcDirect.lat1: 40.6\n    test 43 ArcDirect.lat2: 35.799995945206  FAILED, KNOWN, expected 35.8\n    test 44 ArcDirect.lon1: -73.8\n    test 45 ArcDirect.lon2: 140.300004102052  FAILED, KNOWN, expected 140.3\n    test 46 ArcDirect.s12: 12782581.068\n\n    test 47 Direct8: (40.6, -73.8, 35.799996, 140.300004, -92.38889, 12782581.068, -63760638302268.796875, 115.02062)\n    test 48 toDirect9Tuple: (115.02062, 35.799996, 140.300004, -92.38889, 12782581.068, 12782581.068, 1.0, 1.0, -63760638302268.796875)\n    test 49 DirectLine: (40.6, -73.8, 35.799996, 140.300004, -92.38889, 12782581.068, -63760638302268.796875, 115.02062)\n\n    test 50 RhumbLine: TMorder=6, azi12=51.0, exact=True, lat1=40.6, lon1=-73.8, rhumb=Rhumb(RAorder=6, TMorder=6, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), exact=True), xTM=ExactTransverseMercator(datum='WGS84', extendp=False, k0=0.9996, lon0=0.0)\n    test 51 DirectLine: TMorder=6, azi12=-51.0, exact=True, lat1=35.8, lon1=140.3, rhumb=Rhumb(RAorder=6, TMorder=6, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), exact=True), xTM=ExactTransverseMercator(datum='WGS84', extendp=False, k0=0.9996, lon0=0.0)\n\n    testInverseX vs ...(pygeodesy.rhumb.ekx, 25.08.31)\n    test 52 Inverse.azi12: -92.3888879816997  FAILED, KNOWN, expected -92.38889\n    test 53 Inverse.lat1: 40.6\n    test 54 Inverse.lat2: 35.8\n    test 55 Inverse.lon1: -73.8\n    test 56 Inverse.lon2: 140.3\n    test 57 Inverse.s12: 12782581.0676842\n    test 58 Inverse.S12: -63760642939072.5  FAILED, KNOWN, expected -63760642939073\n\n    test 59 GDict.azi12: 77.7683897102557\n    test 60 GDict.lat1: 40.6\n    test 61 GDict.lat2: 51.6\n    test 62 GDict.lon1: -73.8\n    test 63 GDict.lon2: -0.5\n    test 64 GDict.s12: 5771083.38332803\n    test 65 GDict.S12: 37395209100030.4\n\n    test 66 Inverse.azi12: 103.582833003411  FAILED, KNOWN, expected 103.582833333333\n    test 67 Inverse.lat1: 40.6397222222222  FAILED, KNOWN, expected 40.639722\n    test 68 Inverse.lat2: 1.35916666666667  FAILED, KNOWN, expected 1.359167\n    test 69 Inverse.lon2: 103.989444444444  FAILED, KNOWN, expected 103.989444\n    test 70 Inverse.s12: 18523563.0423774  FAILED, KNOWN, expected 18523563\n\n    test 71 0,000 Km lat2: 40:38:23.0N\n    test 72 0,000 Km lon2: 073:46:44.0W\n    test 73 0,000 Km S12 : 0\n    test 74 1,000 Km lat2: 36:24:30.3N\n    test 75 1,000 Km lon2: 051:28:26.4W\n    test 76 1,000 Km S12 : 9817078307820  FAILED, KNOWN, expected 9817078307821\n    test 77 2,000 Km lat2: 32:10:26.8N\n    test 78 2,000 Km lon2: 030:20:57.3W\n    test 79 2,000 Km S12 : 18224745682004  FAILED, KNOWN, expected 18224745682005\n    test 80 3,000 Km lat2: 27:56:13.2N\n    test 81 3,000 Km lon2: 010:10:54.2W\n    test 82 3,000 Km S12 : 25358020327741\n    test 83 4,000 Km lat2: 23:41:50.1N\n    test 84 4,000 Km lon2: 009:12:45.5E\n    test 85 4,000 Km S12 : 31321269267101  FAILED, KNOWN, expected 31321269267102\n    test 86 5,000 Km lat2: 19:27:18.7N\n    test 87 5,000 Km lon2: 027:59:22.1E\n    test 88 5,000 Km S12 : 36195163180159\n    test 89 6,000 Km lat2: 15:12:40.2N\n    test 90 6,000 Km lon2: 046:17:01.1E\n    test 91 6,000 Km S12 : 40041499143669\n    test 92 7,000 Km lat2: 10:57:55.9N\n    test 93 7,000 Km lon2: 064:12:52.8E\n    test 94 7,000 Km S12 : 42906570007050\n    test 95 8,000 Km lat2: 06:43:07.3N\n    test 96 8,000 Km lon2: 081:53:28.8E\n    test 97 8,000 Km S12 : 44823504180199  FAILED, KNOWN, expected 44823504180200\n    test 98 9,000 Km lat2: 02:28:16.2N\n    test 99 9,000 Km lon2: 099:24:54.5E\n    test 100 9,000 Km S12 : 45813843358737\n    test 101 10,000 Km lat2: 01:46:36.0S\n    test 102 10,000 Km lon2: 116:52:59.7E\n    test 103 10,000 Km S12 : 45888525219677\n\n    test 104 Inverse: {a12: 51.420061, azi12: 77.692032, azi21: -102.307968, lat1: 40.6, lat2: 51.6, lon1: -73.8, lon2: -0.5, name: '_Prolate', s12: 5733622.743165}\n    test 105 Inverse8: (40.6, -73.8, 51.6, -0.5, 77.692032, 5733622.743165, 37469093881942.273438, 51.420061)\n    test 106 toInverse10Tuple: (51.420061, 5733622.743165, 0.977016, 0.213166, 0.977016, 0.213166, 5733622.743165, 1.0, 1.0, 37469093881942.273438)\n    test 107 InverseLine: -102.23161028974431\n\n    test 108 R.exact: True\n    test 109 R.exact: False\n    test 110 R: Rhumb(RAorder=6, TMorder=6, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), exact=False)\n\n    test 111 R.exact: True\n    test 112 R.Line.exact: True\n    test 113 R.Line: RhumbLine(TMorder=6, azi12=3.0, exact=True, lat1=1.0, lon1=2.0, rhumb=Rhumb(RAorder=6, TMorder=6, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), exact=True), xTM=ExactTransverseMercator(datum='WGS84', extendp=False, k0=0.9996, lon0=0.0))\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by <frozen importlib._bootstrap> line 1075\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by <frozen importlib._bootstrap> line 1075\n# lazily imported pygeodesy.Conformal2Tuple from .triaxials.triaxial5 by <frozen importlib._bootstrap> line 1075\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by classes.py line 21\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by classes.py line 21\n# lazily imported pygeodesy.Conformal2Tuple from .triaxials.triaxial5 by classes.py line 21\n# lazily imported pygeodesy.deprecated by ekx.py line 204\n# imported pygeodesy.basics into errors.py line 915\n    test 114 orders: (6, 6)\n    test 115 orders: (4, 8)\n\n# lazily imported pygeodesy.geodesicx by ellipsoids.py line 1043\n\n    test 116 PlumbTo(exact=False, est=1000000.0): PlumbTo(a02=17.967658, a12=27.74256, at=90.0, azi0=113.73626, azi12=45.0, lat0=60, lat1=30.0, lat2=49.634582, lon0=0, lon1=0.0, lon2=25.767876, name='PlumbTo', s02=1997960.116871, s12=3083112.636236)\n    test 117 a02: 17.967658\n    test 118 s02: 1997960.116871\n    test 119 s12: 3083112.636236\n    test 120 azi0: 113.736\n    test 121 azi2: 135.000\n    test 122 iteration: 7\n\n    test 123 PlumbTo(exact=False, est=None): PlumbTo(a02=17.967658, a12=27.74256, at=90.0, azi0=113.73626, azi12=45.0, lat0=60, lat1=30.0, lat2=49.634582, lon0=0, lon1=0.0, lon2=25.767876, name='PlumbTo', s02=1997960.116871, s12=3083112.636236)\n    test 124 a02: 17.967658\n    test 125 s02: 1997960.116871\n    test 126 s12: 3083112.636236\n    test 127 azi0: 113.736\n    test 128 azi2: 135.000\n    test 129 iteration: 5\n\n    test 130 Intersecant2: (Intersecant2(a03=17.798332, a12=44.076956, azi03=135.0, azi12=45.0, lat0=30.0, lat1=30.0, lat2=61.164348, lat3=45.0, lon0=0.0, lon1=0.0, lon2=46.209348, lon3=15.830286, name='Intersecant2', s03=1977981.142985, s12=4898402.305119), Intersecant2(a03=17.798332, a12=-5.034244, azi03=135.0, azi12=45.0, lat0=30.0, lat1=30.0, lat2=26.4303, lat3=45.0, lon0=0.0, lon1=0.0, lon2=-4.030999, lon3=15.830286, name='Intersecant2', s03=1977981.142985, s12=-559470.390057))\n    test 131 azi0*=-90.000: exact=False, iteration=128, max=0.0, mean=0.0, min=-0.0, stdev=0.0\n\n    test 132 PlumbTo(exact=True, est=1000000.0): PlumbTo(a02=17.967658, a12=27.74256, at=90.0, azi0=113.73626, azi12=45.0, lat0=60, lat1=30.0, lat2=49.634582, lon0=0, lon1=0.0, lon2=25.767876, name='PlumbTo', s02=1997960.116871, s12=3083112.636236)\n    test 133 a02: 17.967658\n    test 134 s02: 1997960.116871\n    test 135 s12: 3083112.636236\n    test 136 azi0: 113.736\n    test 137 azi2: 135.000\n    test 138 iteration: 7\n\n    test 139 PlumbTo(exact=True, est=None): PlumbTo(a02=17.967658, a12=27.74256, at=90.0, azi0=113.73626, azi12=45.0, lat0=60, lat1=30.0, lat2=49.634582, lon0=0, lon1=0.0, lon2=25.767876, name='PlumbTo', s02=1997960.116871, s12=3083112.636236)\n    test 140 a02: 17.967658\n    test 141 s02: 1997960.116871\n    test 142 s12: 3083112.636236\n    test 143 azi0: 113.736\n    test 144 azi2: 135.000\n    test 145 iteration: 5\n\n    test 146 Intersecant2: (Intersecant2(a03=17.798332, a12=44.076956, azi03=135.0, azi12=45.0, lat0=30.0, lat1=30.0, lat2=61.164348, lat3=45.0, lon0=0.0, lon1=0.0, lon2=46.209348, lon3=15.830286, name='Intersecant2', s03=1977981.142985, s12=4898402.305119), Intersecant2(a03=17.798332, a12=-5.034244, azi03=135.0, azi12=45.0, lat0=30.0, lat1=30.0, lat2=26.4303, lat3=45.0, lon0=0.0, lon1=0.0, lon2=-4.030999, lon3=15.830286, name='Intersecant2', s03=1977981.142985, s12=-559470.390057))\n    test 147 azi0*=-90.000: exact=True, iteration=128, max=0.0, mean=0.0, min=-0.0, stdev=0.0\n\n    test 148 PlumbTo(exact=None, est=None): Intersection(a02=17.798332, a12=19.521356, at=90.0, azi02=135.0, azi12=45.0, lat0=60.0, lat1=30.0, lat2=45.0, lon0=0.0, lon1=0.0, lon2=15.830286, name='Intersection', s02=1977981.142985, s12=2169465.957531)\n    test 149 a02: 17.798332\n    test 150 s02: 1977981.142985\n    test 151 s12: 2169465.957531\n    test 152 azi02: 135.000\n    test 153 iteration: 9\n\n    test 154 Intersecant2: (Intersecant2(a03=17.798332, a12=44.076956, azi03=135.0, azi12=45.0, lat0=30.0, lat1=30.0, lat2=61.164348, lat3=45.0, lon0=0.0, lon1=0.0, lon2=46.209348, lon3=15.830286, name='Intersecant2', s03=1977981.142985, s12=4898402.305119), Intersecant2(a03=17.798332, a12=-5.034244, azi03=135.0, azi12=45.0, lat0=30.0, lat1=30.0, lat2=26.4303, lat3=45.0, lon0=0.0, lon1=0.0, lon2=-4.030999, lon3=15.830286, name='Intersecant2', s03=1977981.142985, s12=-559470.390057))\n    test 155 azi0*=90.000: exact=None, iteration=20, max=0.507468, mean=-2.015217, min=-6.079451, stdev=2.057451\n\n    test 156 xTM: KTransverseMercator(ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), k0=0.9996, TMorder=7)\n\n    test 157 Intersection: Intersection(a02=41.823427, a12=16.45698, at=-85.0, azi02=-50.0, azi12=35.0, lat0=0.0, lat1=10.0, lat2=23.944114, lon0=-10.0, lon1=-56.0, lon2=-45.833131, name='Intersection', s02=4650559.291378, s12=1829935.168035)  FAILED, KNOWN, expected (26.9774, -43.4088)\n    test 158 PlumbTo: Intersection(a02=0.0, a12=16.45698, at=90.0, azi02=125.0, azi12=35.0, lat0=23.944114, lat1=10.0, lat2=23.944114, lon0=-45.833131, lon1=-56.0, lon2=-45.833131, name='Intersection', s02=0.000043, s12=1829935.168032)\n    test 159 PlumbTo: Intersection(a02=0.0, a12=41.823427, at=90.0, azi02=40.0, azi12=-50.0, lat0=23.944114, lat1=0.0, lat2=23.944114, lon0=-45.833131, lon1=-10.0, lon2=-45.833131, name='Intersection', s02=0.000246, s12=4650559.291327)\n    test 160 xTM: KTransverseMercator(ellipsoid=Ellipsoid(name='Sphere', a=6371008.771415, f=0, f_=0, b=6371008.771415), k0=0.9996, TMorder=6)\n\n    test 161 Intersection: Intersection(a02=29.910202, a12=26.853309, at=-135.0, azi02=-45.0, azi12=90.0, lat0=15.0, lat1=37.0, lat2=37.0, lon0=-17.0, lon1=-76.0, lon2=-42.376015, name='Intersection', s02=3325867.316604, s12=2985955.796006)  FAILED, KNOWN, expected (37.0, -41.7028)\n    test 162 PlumbTo: Intersection(a02=0.0, a12=26.853309, at=90.0, azi02=180.0, azi12=90.0, lat0=37.0, lat1=37.0, lat2=37.0, lon0=-42.376015, lon1=-76.0, lon2=-42.376015, name='Intersection', s02=0.000129, s12=2985955.795978)\n    test 163 PlumbTo: Intersection(a02=0.0, a12=29.910202, at=90.0, azi02=45.0, azi12=-45.0, lat0=37.0, lat1=15.0, lat2=37.0, lon0=-42.376015, lon1=-17.0, lon2=-42.376015, name='Intersection', s02=0.000081, s12=3325867.316586)\n    test 164 xTM: KTransverseMercator(ellipsoid=Ellipsoid(name='Sphere', a=6371008.771415, f=0, f_=0, b=6371008.771415), k0=0.9996, TMorder=6)\n\n    217 of 164 testRhumb_ekx.py tests (132.3%) FAILED, incl. 26 KNOWN plus 191 DeprecationWarnings (pygeodesy 26.3.26 PyPy 7.3.17 Python 3.10.14 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 8.826 sec\nrunning /opt/local/bin/p....y3.10 -W default ~/PyGeodesy/test/testRoutes.py\n./test/testRoutes.py:17103: DeprecationWarning: function L{areaOf<pygeodesy.ellipsoidalVincenty.areaOf>} has been DEPRECATED, use function L{ellipsoidalExact.areaOf} or L{ellipsoidalKarney.areaOf}.\n  r = f(pts, wrap=True, **kwds)\n./pygeodesy/ellipsoidalKarney.py:139: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return fabs(_polygon(datum.ellipsoid.geodesic, points, True, False, wrap, polar))\n./test/testRoutes.py:17103: DeprecationWarning: function L{perimeterOf<pygeodesy.ellipsoidalVincenty.perimeterOf>} has been DEPRECATED, use function L{ellipsoidalExact.perimeterOf} or L{ellipsoidalKarney.perimeterOf}.\n  r = f(pts, wrap=True, **kwds)\n./pygeodesy/ellipsoidalKarney.py:347: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return _polygon(datum.ellipsoid.geodesic, points, closed, True, wrap, False)\n# lazily imported pygeodesy.basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.DeprecationWarnings from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isint from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isLazy from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.issubclassof from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.iterNumpy2over from .iters by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.LazyImportError from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.karney by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.NN from .interns by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.normDMS from .dms by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.pairs from .streprs by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.printf from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.property_RO from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.typename from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.LatLon_ from .points by testRoutes.py line 13\n# lazily imported pygeodesy.R_KM from .constants by testRoutes.py line 13\n# lazily imported pygeodesy.R_M from .constants by testRoutes.py line 13\n# lazily imported pygeodesy.ellipsoidalVincenty by testRoutes.py line 13\n# lazily imported pygeodesy.sphericalTrigonometry by testRoutes.py line 13\n# lazily imported pygeodesy.areaOf from .points by testRoutes.py line 13\n# lazily imported pygeodesy.isclockwise from .points by testRoutes.py line 13\n# lazily imported pygeodesy.perimeterOf from .points by testRoutes.py line 13\n# lazily imported pygeodesy.unstr from .streprs by testRoutes.py line 13\n\n    testing testRoutes.py 23.08.23 isLazy=3\n# lazily imported pygeodesy.booleans by points.py line 978\n# lazily imported pygeodesy.angles by units.py line 633\n    test 1 points.areaOf('Antarctica', adjust=True, radius=6371.01, wrap=True): 1751693.701  FAILED, KNOWN, expected 13552524.800\n    test 2 points.areaOf('PtsFFI', adjust=True, radius=6371.01, wrap=True): 1.288\n    test 3 points.areaOf('RdpFFI', adjust=True, radius=6371.01, wrap=True): 1.241\n    test 4 points.areaOf('Pts', adjust=True, radius=6371.01, wrap=True): 131184.240\n    test 5 points.areaOf('VwPts', adjust=True, radius=6371.01, wrap=True): 140310.144\n    test 6 points.areaOf('_JFK_LHR1', adjust=True, radius=6371.01, wrap=True): 41383852.921  FAILED, KNOWN, expected 40041368.849\n    test 7 points.areaOf('_JFK_LHR2', adjust=True, radius=6371.01, wrap=True): 82767705.842  FAILED, KNOWN, expected 80082737.697\n    test 8 points.areaOf('Antarctica', adjust=False, radius=6371.01, wrap=True): 10446635.730  FAILED, KNOWN, expected 13552524.800\n    test 9 points.areaOf('PtsFFI', adjust=False, radius=6371.01, wrap=True): 2.185  FAILED, KNOWN, expected 1.288\n    test 10 points.areaOf('RdpFFI', adjust=False, radius=6371.01, wrap=True): 2.105  FAILED, KNOWN, expected 1.241\n    test 11 points.areaOf('Pts', adjust=False, radius=6371.01, wrap=True): 233595.011  FAILED, KNOWN, expected 131184.240\n    test 12 points.areaOf('VwPts', adjust=False, radius=6371.01, wrap=True): 258465.911  FAILED, KNOWN, expected 140310.144\n    test 13 points.areaOf('_JFK_LHR1', adjust=False, radius=6371.01, wrap=True): 41780731.678  FAILED, KNOWN, expected 40041368.849\n    test 14 points.areaOf('_JFK_LHR2', adjust=False, radius=6371.01, wrap=True): 83561463.357  FAILED, KNOWN, expected 80082737.697\n# imported pygeodesy.formy into latlonBase.py line 756\n    test 15 sphericalTrigonometry.areaOf('Antarctica', radius=6371.01, wrap=True): 241480413.388\n    test 16 sphericalTrigonometry.areaOf('PtsFFI', radius=6371.01, wrap=True): 1.338\n    test 17 sphericalTrigonometry.areaOf('RdpFFI', radius=6371.01, wrap=True): 1.289\n    test 18 sphericalTrigonometry.areaOf('Pts', radius=6371.01, wrap=True): 125942.444\n    test 19 sphericalTrigonometry.areaOf('VwPts', radius=6371.01, wrap=True): 118897.757\n    test 20 sphericalTrigonometry.areaOf('_JFK_LHR1', radius=6371.01, wrap=True): 40105639.197\n    test 21 sphericalTrigonometry.areaOf('_JFK_LHR2', radius=6371.01, wrap=True): 80211278.393\n# lazily imported pygeodesy.ellipsoidalKarney by ellipsoidalVincenty.py line 383\n# lazily imported pygeodesy.geodesicw by ellipsoids.py line 1074\n    test 22 ellipsoidalVincenty.areaOf('Antarctica', wrap=True): 1.366270e+13\n    test 23 ellipsoidalVincenty.areaOf('PtsFFI', wrap=True): 1.343272e+06\n    test 24 ellipsoidalVincenty.areaOf('RdpFFI', wrap=True): 1.294375e+06\n    test 25 ellipsoidalVincenty.areaOf('Pts', wrap=True): 1.271286e+11\n    test 26 ellipsoidalVincenty.areaOf('VwPts', wrap=True): 1.200540e+11\n    test 27 ellipsoidalVincenty.areaOf('_JFK_LHR1', wrap=True): 4.004137e+13\n    test 28 ellipsoidalVincenty.areaOf('_JFK_LHR2', wrap=True): 8.008274e+13\n    test 29 ellipsoidalVincenty.areaOf('Antarctica', wrap=True): 1.366270e+13\n    test 30 ellipsoidalVincenty.areaOf('PtsFFI', wrap=True): 1.343272e+06\n    test 31 ellipsoidalVincenty.areaOf('RdpFFI', wrap=True): 1.294375e+06\n    test 32 ellipsoidalVincenty.areaOf('Pts', wrap=True): 1.271286e+11\n    test 33 ellipsoidalVincenty.areaOf('VwPts', wrap=True): 1.200540e+11\n    test 34 ellipsoidalVincenty.areaOf('_JFK_LHR1', wrap=True): 4.004137e+13\n    test 35 ellipsoidalVincenty.areaOf('_JFK_LHR2', wrap=True): 8.008274e+13\n    test 36 points.perimeterOf('Antarctica', closed=False, radius=6.37101e+06, wrap=True): 15620294.792  FAILED, KNOWN, expected 16765661.499\n    test 37 points.perimeterOf('PtsFFI', closed=False, radius=6.37101e+06, wrap=True): 3224.123\n    test 38 points.perimeterOf('RdpFFI', closed=False, radius=6.37101e+06, wrap=True): 3185.467\n    test 39 points.perimeterOf('Pts', closed=False, radius=6.37101e+06, wrap=True): 2762313.129\n    test 40 points.perimeterOf('VwPts', closed=False, radius=6.37101e+06, wrap=True): 2672557.850\n    test 41 points.perimeterOf('_JFK_LHR1', closed=False, radius=6.37101e+06, wrap=True): 16034670.768  FAILED, KNOWN, expected 15766750.804\n    test 42 points.perimeterOf('_JFK_LHR2', closed=False, radius=6.37101e+06, wrap=True): 26286857.120  FAILED, KNOWN, expected 25981742.208\n    test 43 sphericalTrigonometry.perimeterOf('Antarctica', closed=False, radius=6.37101e+06, wrap=True): 15470624.834\n    test 44 sphericalTrigonometry.perimeterOf('PtsFFI', closed=False, radius=6.37101e+06, wrap=True): 3224.123\n    test 45 sphericalTrigonometry.perimeterOf('RdpFFI', closed=False, radius=6.37101e+06, wrap=True): 3185.467\n    test 46 sphericalTrigonometry.perimeterOf('Pts', closed=False, radius=6.37101e+06, wrap=True): 2762313.116\n    test 47 sphericalTrigonometry.perimeterOf('VwPts', closed=False, radius=6.37101e+06, wrap=True): 2672556.441\n    test 48 sphericalTrigonometry.perimeterOf('_JFK_LHR1', closed=False, radius=6.37101e+06, wrap=True): 15789078.314\n    test 49 sphericalTrigonometry.perimeterOf('_JFK_LHR2', closed=False, radius=6.37101e+06, wrap=True): 26041264.665\n    test 50 ellipsoidalVincenty.perimeterOf('Antarctica', closed=False, wrap=True): 15531947.149  FAILED, KNOWN, expected 15531770.613\n    test 51 ellipsoidalVincenty.perimeterOf('PtsFFI', closed=False, wrap=True): 3229.337\n    test 52 ellipsoidalVincenty.perimeterOf('RdpFFI', closed=False, wrap=True): 3190.602\n    test 53 ellipsoidalVincenty.perimeterOf('Pts', closed=False, wrap=True): 2769709.679  FAILED, KNOWN, expected 2769709.412\n    test 54 ellipsoidalVincenty.perimeterOf('VwPts', closed=False, wrap=True): 2679915.858\n    test 55 ellipsoidalVincenty.perimeterOf('_JFK_LHR1', closed=False, wrap=True): 15766750.804  FAILED, KNOWN, expected 15763434.962\n    test 56 ellipsoidalVincenty.perimeterOf('_JFK_LHR2', closed=False, wrap=True): 25981742.208  FAILED, KNOWN, expected 25972353.155\n    test 57 ellipsoidalVincenty.perimeterOf('Antarctica', closed=True, wrap=True): 16831067.893  FAILED, KNOWN, expected 16830891.356\n    test 58 ellipsoidalVincenty.perimeterOf('PtsFFI', closed=True, wrap=True): 5491.045\n    test 59 ellipsoidalVincenty.perimeterOf('RdpFFI', closed=True, wrap=True): 5452.310\n    test 60 ellipsoidalVincenty.perimeterOf('Pts', closed=True, wrap=True): 5259077.510  FAILED, KNOWN, expected 5259077.242\n    test 61 ellipsoidalVincenty.perimeterOf('VwPts', closed=True, wrap=True): 5171947.931\n    test 62 ellipsoidalVincenty.perimeterOf('_JFK_LHR1', closed=True, wrap=True): 23926469.479  FAILED, KNOWN, expected 23921931.540\n    test 63 ellipsoidalVincenty.perimeterOf('_JFK_LHR2', closed=True, wrap=True): 31533501.608  FAILED, KNOWN, expected 31524112.555\n    test 64 geographiclib.WNZ-SAL(WGS84): 19959679.267\n    test 65 geographiclib.WNZ-SAL(WGS84): 354.50\n    test 66 geographiclib.WNZ-SAL(Sphere): 19967403.498\n    test 67 geographiclib.WNZ-SAL(Sphere): 354.50\n    test 68 geographiclib.BJS-SFO(WGS84): 9513998.0\n    test 69 geographiclib.BJS-SFO(WGS84): 237.6\n    test 70 geographiclib.BJS-SFO(Sphere): 9491734.6\n    test 71 geographiclib.BJS-SFO(Sphere): 237.6\n    test 72 geographiclib.SW-Perth(WGS84): 32.11195529\n    test 73 geographiclib.SW-Perth(WGS84): -63.95925278\n    test 74 geographiclib.SW-Perth(Sphere): 31.96383509\n    test 75 geographiclib.SW-Perth(Sphere): -64.14670854\n    test 76 geographiclib.JFK-LHR(WGS84): 40041368848742.5\n    test 77 geographiclib.JFK-LHR(WGS84): 5551759.4\n    test 78 geographiclib.JFK-LHR(Sphere): 40105639196534.8\n    test 79 geographiclib.JFK-LHR(Sphere): 5536892.0\n    test 80 geographiclib.Antarctica Peri(WGS84): 16831067.893\n    test 81 geographiclib.Antarctica Area(WGS84): 13662703680020.1\n    test 82 geographiclib.Antarctica Peri(Sphere): 16765661.499\n    test 83 geographiclib.Antarctica Area(Sphere): 13552524809674.8\n    test 84 isclockwise('Antarctica', adjust=False, wrap=True): 1.000\n    test 85 isclockwise('PtsFFI', adjust=False, wrap=True): 1.000\n    test 86 isclockwise('RdpFFI', adjust=False, wrap=True): 1.000\n    test 87 isclockwise('Pts', adjust=False, wrap=True): 1.000\n    test 88 isclockwise('VwPts', adjust=False, wrap=True): 1.000\n    test 89 isclockwise('_JFK_LHR1', adjust=False, wrap=True): 0.000\n    test 90 isclockwise('_JFK_LHR2', adjust=False, wrap=True): 0.000\n\n    77 of 90 testRoutes.py tests (85.6%) FAILED, incl. 21 KNOWN plus 56 DeprecationWarnings (pygeodesy 26.3.26 PyPy 7.3.17 Python 3.10.14 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 1.241 sec\nrunning /opt/local/bin/p....y3.10 -W default ~/PyGeodesy/test/testSimplify.py\n./test/testSimplify.py:37: DeprecationWarning: function L{simplifyVWm<pygeodesy.deprecated.functions.simplifyVWm>} has been DEPRECATED on 2024.11.28, use function L{pygeodesy.simplifyVW}C{(points, modified=True, ...)}.\n  r = function(points, m, **kwds)\n./test/testSimplify.py:37: DeprecationWarning: function L{simplifyRDPm<pygeodesy.deprecated.functions.simplifyRDPm>} has been DEPRECATED on 2024.11.28, use function L{pygeodesy.simplifyRDP}C{(points, modified=True, ...)}.\n  r = function(points, m, **kwds)\n# lazily imported pygeodesy.basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.DeprecationWarnings from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isint from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isLazy from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.issubclassof from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.iterNumpy2over from .iters by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.LazyImportError from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.karney by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.NN from .interns by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.normDMS from .dms by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.pairs from .streprs by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.printf from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.property_RO from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.typename from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.EPS from .constants by testSimplify.py line 11\n# lazily imported pygeodesy.R_M from .constants by testSimplify.py line 11\n# lazily imported pygeodesy.LatLon_ from .points by testSimplify.py line 11\n# lazily imported pygeodesy.Numpy2LatLon from .points by testSimplify.py line 11\n# lazily imported pygeodesy.simplify1 from .simplify by testSimplify.py line 11\n# lazily imported pygeodesy.simplifyRW from .simplify by testSimplify.py line 11\n# lazily imported pygeodesy.simplifyRDP from .simplify by testSimplify.py line 11\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by <frozen importlib._bootstrap> line 1075\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by <frozen importlib._bootstrap> line 1075\n# lazily imported pygeodesy.Conformal2Tuple from .triaxials.triaxial5 by <frozen importlib._bootstrap> line 1075\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by classes.py line 21\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by classes.py line 21\n# lazily imported pygeodesy.Conformal2Tuple from .triaxials.triaxial5 by classes.py line 21\n# lazily imported pygeodesy.simplifyRDPm from .deprecated.functions by testSimplify.py line 11\n# lazily imported pygeodesy.simplifyVW from .simplify by testSimplify.py line 11\n# lazily imported pygeodesy.simplifyVWm from .deprecated.functions by testSimplify.py line 11\n# lazily imported pygeodesy.R_KM from .constants by testRoutes.py line 13\n# lazily imported pygeodesy.ellipsoidalVincenty by testRoutes.py line 13\n# lazily imported pygeodesy.sphericalTrigonometry by testRoutes.py line 13\n# lazily imported pygeodesy.areaOf from .points by testRoutes.py line 13\n# lazily imported pygeodesy.isclockwise from .points by testRoutes.py line 13\n# lazily imported pygeodesy.perimeterOf from .points by testRoutes.py line 13\n# lazily imported pygeodesy.unstr from .streprs by testRoutes.py line 13\n\n    testing testSimplify.py 23.03.27 (module pygeodesy.simplify 25.05.12) isLazy=3\n    test 1 simplify1(16614, adjust=True) 1m (29.784 ms): 16597\n    test 2 simplifyRW(16614, adjust=True, shortest=False, indices=True) 1m (214.163 ms): 7095\n    test 3 simplifyRW(16614, adjust=True, shortest=False) 1m (82.991 ms): 7095\n    test 4 simplifyRW(16614, adjust=True, shortest=True) 1m (64.041 ms): 8302\n    test 5 simplifyVWm(16614, adjust=True, indices=True) 1m (111.881 ms): 16328\n    test 6 simplifyVWm(16614, adjust=True) 1m (90.085 ms): 16328\n    test 7 simplifyVWm(16614, adjust=False) 1m (62.407 ms): 16373\n    test 8 simplifyRDPm(16614, adjust=True, shortest=False) 1m (84.997 ms): 15864\n    test 9 simplifyRDPm(16614, adjust=True, shortest=True) 1m (185.959 ms): 15867\n    test 10 simplifyRDPgr(16614, adjust=True, shortest=True, modified=True) 1m (15.567 ms): 15867\n    test 11 simplifyRDPm(16614, adjust=False, shortest=False) 1m (57.939 ms): 15869\n    test 12 simplifyRDPfw(16614, adjust=False, shortest=False, modified=True) 1m (10.668 ms): 15869\n    test 13 simplifyRDP(16614, adjust=True, shortest=True, indices=True) 1m (1.531 sec): 10960\n    test 14 simplifyRDP(16614, adjust=True, shortest=True) 1m (1.467 sec): 10960\n    test 15 simplifyRDPgr(16614, adjust=True, shortest=True, modified=False) 1m (13.781 ms): 10960\n    test 16 simplifyRDP(16614, adjust=False, shortest=False, indices=True) 1m (755.227 ms): 11248\n    test 17 simplifyRDP(16614, adjust=False, shortest=False) 1m (738.254 ms): 11248\n    test 18 simplifyRDPfw(16614, adjust=False, shortest=False, modified=False) 1m (15.582 ms): 11248\n    test 19 simplifyVW(1661, adjust=True) 1m (6.169 ms): 1641\n    test 20 simplifyVW(1661, adjust=False) 1m (5.540 ms): 1646\n    test 21 simplifyRDP(1661, adjust=True, shortest=False) 1m (54.815 ms): 1231\n    test 22 simplifyRDP(1661, adjust=True, shortest=True) 1m (116.937 ms): 1231\n    test 23 simplifyRDPgr(1661, adjust=True, shortest=True) 1m (15.869 ms): 1231\n    test 24 simplifyRDP(1661, adjust=False, shortest=False) 1m (54.558 ms): 1267\n    test 25 simplifyRDPfw(1661, adjust=False, shortest=False) 1m (9.077 ms): 1267\n    test 26 simplifyRDPgr(1661, adjust=False, shortest=True) 1m (9.868 ms): 1267\n    test 27 simplifyVW(69, adjust=False) 1m (633.955 us): 69\n    test 28 simplifyRDP(69, adjust=False, shortest=False) 1m (1.259 ms): 50\n    test 29 simplifyRDPfw(69, adjust=False, shortest=False) 1m (64.135 us): 50\n    test 30 simplifyRDPgr(69, adjust=False, shortest=True) 1m (85.115 us): 50\n    test 31 simplifyRDPgr(69, adjust=True, shortest=True) 1m (125.885 us): 45\n    test 32 simplifyRDP(5, adjust=False, shortest=True) 1m (80.109 us): 5\n    test 33 simplifyVW(5, adjust=False, attr='name') 30m (184.059 us): 5\n    test 34 no module: numpy\n\n    6 of 34 testSimplify.py tests (17.6%) FAILED, incl. 6 DeprecationWarnings (pygeodesy 26.3.26 PyPy 7.3.17 Python 3.10.14 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 5.809 sec\nrunning /opt/local/bin/p....y3.10 -W default ~/PyGeodesy/test/testSpherical.py\n./test/testLatLon.py:276: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.sphericalNvector.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', p.cosineAndoyerLambertTo(q), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:277: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.sphericalNvector.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', q.cosineAndoyerLambertTo(p), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:279: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.sphericalNvector.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', p.cosineForsytheAndoyerLambertTo(q), '124801.098' if Sph else '125205.965', fmt='%.3f')\n./test/testLatLon.py:280: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.sphericalNvector.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', q.cosineForsytheAndoyerLambertTo(p), '124801.098' if Sph else '125205.965', fmt='%.3f')\n./test/testVectorial.py:128: DeprecationWarning: function L{nearestOn<pygeodesy.vector2d.nearestOn>} has been DEPRECATED on 2025.05.06, use L{pygeodesy.nearestOn<pygeodesy.vector3d.nearestOn>}.\n  t = vector2d.nearestOn(Nvector(0, 0, 0), p1, p2)\n# lazily imported pygeodesy.basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.DeprecationWarnings from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isint from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isLazy from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.issubclassof from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.iterNumpy2over from .iters by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.LazyImportError from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.karney by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.NN from .interns by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.normDMS from .dms by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.pairs from .streprs by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.printf from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.property_RO from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.typename from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.Aer from .ltpTuples by testLatLon.py line 12\n# lazily imported pygeodesy.Enu from .ltpTuples by testLatLon.py line 12\n# lazily imported pygeodesy.F_D from .dms by testLatLon.py line 12\n# lazily imported pygeodesy.F_DM from .dms by testLatLon.py line 12\n# lazily imported pygeodesy.F_DMS from .dms by testLatLon.py line 12\n# lazily imported pygeodesy.F_RAD from .dms by testLatLon.py line 12\n# lazily imported pygeodesy.R_M from .constants by testLatLon.py line 12\n# lazily imported pygeodesy.R_NM from .constants by testLatLon.py line 12\n# lazily imported pygeodesy.degrees from .utily by testLatLon.py line 12\n# lazily imported pygeodesy.fstr from .streprs by testLatLon.py line 12\n# lazily imported pygeodesy.isclockwise from .points by testLatLon.py line 12\n# lazily imported pygeodesy.isconvex from .points by testLatLon.py line 12\n# lazily imported pygeodesy.isenclosedBy from .points by testLatLon.py line 12\n# lazily imported pygeodesy.isnear0 from .constants by testLatLon.py line 12\n# lazily imported pygeodesy.ispolar from .points by testLatLon.py line 12\n# lazily imported pygeodesy.Local9Tuple from .ltpTuples by testLatLon.py line 12\n# lazily imported pygeodesy.Ltp from .ltp by testLatLon.py line 12\n# lazily imported pygeodesy.m2km from .utily by testLatLon.py line 12\n# lazily imported pygeodesy.m2NM from .utily by testLatLon.py line 12\n# lazily imported pygeodesy.Ned from .ltpTuples by testLatLon.py line 12\n# lazily imported pygeodesy.XyzLocal from .ltpTuples by testLatLon.py line 12\n# lazily imported pygeodesy.IntersectionError from .errors by testLatLon.py line 12\n# lazily imported pygeodesy.VincentyError from .ellipsoidalVincenty by testLatLon.py line 12\n# lazily imported pygeodesy.EPS from .constants by testVectorial.py line 11\n# lazily imported pygeodesy.EPS4 from .constants by testVectorial.py line 11\n# lazily imported pygeodesy.NEG0 from .constants by testVectorial.py line 11\n# lazily imported pygeodesy.circin6 from .vector2d by testVectorial.py line 11\n# lazily imported pygeodesy.circum3 from .vector2d by testVectorial.py line 11\n# lazily imported pygeodesy.circum4_ from .vector2d by testVectorial.py line 11\n# lazily imported pygeodesy.intersection3d3 from .vector3d by testVectorial.py line 11\n# lazily imported pygeodesy.meeus2 from .vector2d by testVectorial.py line 11\n# lazily imported pygeodesy.radii11 from .vector2d by testVectorial.py line 11\n# lazily imported pygeodesy.sincos2d from .utily by testVectorial.py line 11\n# lazily imported pygeodesy.sphericalNvector by testVectorial.py line 11\n# lazily imported pygeodesy.soddy4 from .vector2d by testVectorial.py line 11\n# lazily imported pygeodesy.trilaterate2d2 from .vector2d by testVectorial.py line 11\n# lazily imported pygeodesy.trilaterate3d2 from .vector3d by testVectorial.py line 11\n# lazily imported pygeodesy.Vector3d from .vector3d by testVectorial.py line 11\n# lazily imported pygeodesy.VectorError from .errors by testVectorial.py line 11\n# lazily imported pygeodesy.F_DEG_ from .dms by testSpherical.py line 13\n# lazily imported pygeodesy.PI_4 from .constants by testSpherical.py line 13\n# lazily imported pygeodesy.classname from .named by testSpherical.py line 13\n# lazily imported pygeodesy.degrees2m from .utily by testSpherical.py line 13\n# lazily imported pygeodesy.Ellipsoids from .ellipsoids by testSpherical.py line 13\n# lazily imported pygeodesy.latlonDMS from .dms by testSpherical.py line 13\n# lazily imported pygeodesy.lonDMS from .dms by testSpherical.py line 13\n# lazily imported pygeodesy.sphericalTrigonometry by testSpherical.py line 446\n\n    testing testSpherical.py 23.10.23 isLazy=3\n\n    testLatLon(pygeodesy.sphericalNvector, 25.05.27)\n    test 1 isEllipsoidal: False\n    test 2 isSpherical: True\n    test 3 lat/lonDMS: 52.20472°N, 000.14056°E\n    test 4 lat/lonDMS F_DM: 52°12.283′N, 000°08.434′E\n    test 5 lat/lonDMS F_DM: 52°12.2832′N, 000°08.4336′E\n    test 6 lat/lonDMS F_DMS: 52°12′17″N, 000°08′26″E\n    test 7 lat/lonDMS F_DMS: 52°12′17.0″N, 000°08′26.0″E\n    test 8 lat/lonDMS F_RAD: 0.911144N, 0.002453E\n# imported pygeodesy.formy into latlonBase.py line 756\n    test 9 isequalTo: True\n    test 10 isequalTo: True\n    test 11 latlon2: 52.20472, 0.14056\n    test 12 latlon2: 52.2047, 0.1406\n    test 13 latlon2: 52.205, 0.141\n    test 14 latlon2: 52.2, 0.14\n    test 15 latlon2: 52.2, 0.1\n    test 16 latlon2: 52.0, 0.0\n    test 17 chordTo: 12036677.26\n    test 18 chordTo: 12036463.78\n    test 19 initialBearingTo: 156.1666\n    test 20 initialBearingTo: 65.8921\n    test 21 initialBearingTo: 0.0\n    test 22 initialBearingTo: 180.0\n    test 23 finalBearingTo: 157.8904\n    test 24 finalBearingTo: 93.8581\n    test 25 bearingTo2: 156.1666, 157.8904\n    test 26 ispolar: True\n    test 27 copy: True\n    test 28 __eq__: True\n    test 29 __ne__: False\n# lazily imported pygeodesy.angles by units.py line 633\n    test 30 equirectangularTo: 404329.56\n    test 31 distanceTo: 404279.720589\n    test 32 distanceTo: 404279.720589\n    test 33 distanceTo: 2145\n    test 34 distanceTo: 18013602.92\n    test 35 distanceTo: 20015114.35\n    test 36 intermediateTo: 51.372084°N, 000.707337°E\n    test 37 intermediateTo: True\n    test 38 intermediateTo: 404279.721\n    test 39 intermediateTo+5: 35.160975°N, 008.989542°E\n    test 40 intermediateTo+5: 5.000\n    test 41 intermediateTo-4: 64.911647°N, 013.726301°W\n    test 42 intermediateTo-4: 4.000\n    test 43 intermediateTo-h: 125.000\n    test 44 intermediateChordTo: 51.372294°N, 000.707192°E\n    test 45 intermediateChordTo: True\n    test 46 intermediateChordTo-h: 125.000\n    test 47 midpointTo: 50.536327°N, 001.274614°E\n    test 48 destination: 51.513546°N, 000.098345°W\n    test 49 destination: 51°30′49″N, 000°05′54″W\n    test 50 destination: 34°37′N, 116°33′W\n    test 51 destination: 34.613647°N, 116.55116°W\n    test 52 destination: 0.604122N, 2.034201W\n    test 53 destination: 31.96383509°N, 064.37329146°E\n    test 54 alongTrackDistanceTo: 62331.59\n    test 55 alongTrackDistanceTo: 62331.58\n    test 56 alongTrackDistanceTo: 99.588\n    test 57 alongTrackDistanceTo: -7702.7\n    test 58 alongTrackDistanceTo: 7587.6\n    test 59 crossTrackDistanceTo: -305.6652816061398  FAILED, KNOWN, expected TypeError\n    test 60 crossTrackDistanceTo: -307.55\n    test 61 crossTrackDistanceTo: 7.4524\n    test 62 greatCircle: (-0.79408, 0.12856, 0.59406)\n# lazily imported pygeodesy.booleans by iters.py line 76\n    test 63 neareston6: (LatLon(45°00′00.0″N, 001°00′00.0″E), 4773243.784965, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E))  FAILED, KNOWN, expected (LatLon(45°00′00.0″N, 001°00′00.0″E), 4755443.4294, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E))\n    test 64 neareston6: (LatLon(45°30′03.93″N, 002°00′00.0″E), 38968.531578, 1.501091, 2, LatLon(45°00′00.0″N, 002°00′00.0″E), LatLon(46°00′00.0″N, 002°00′00.0″E))  FAILED, KNOWN, expected (LatLon(45°30′03.94″N, 002°00′00.0″E), 39078.729285, 1.501072, 2, LatLon(45°00′00.0″N, 002°00′00.0″E), LatLon(46°00′00.0″N, 002°00′00.0″E))\n    test 65 chordTo: 124799.103\n    test 66 cosineAndoyerLambertTo: 124801.098\n    test 67 cosineAndoyerLambertTo: 124801.098\n    test 68 cosineForsyheAndoyerLambertTo: 124801.098\n    test 69 cosineForsyheAndoyerLambertTo: 124801.098\n    test 70 cosineLawTo: 124801.098\n    test 71 cosineLawTo: 124801.098\n    test 72 equirectangularTo: 124804.754\n    test 73 equirectangularTo: 124804.754\n    test 74 euclideanTo: 130015.089\n    test 75 euclideanTo: 130015.089\n    test 76 flatLocalTo: 124804.754\n    test 77 flatLocalTo: 124804.754\n    test 78 flatPolarTo: 133663.257\n    test 79 flatPolarTo: 133663.257\n    test 80 hartzell: 53.3206°N, 001.7297°W\n# lazily imported pygeodesy.triaxials by lazily.py line 529\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by ellipsoids.py line 1905\n    test 81 hartzell: 53.3206°N, 001.7297°W\n    test 82 height4: 0.0\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by cartesianBase.py line 364\n    test 83 height4: (3803904.2, -114870.8, 5109488.3, 0.0)\n    test 84 height4: 53°19′14.2″N, 001°43′46.9″W\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by cartesianBase.py line 364\n    test 85 height4: 53°19′14.2″N, 001°43′46.9″W\n    test 86 haversineTo: 124801.098\n    test 87 haversineTo: 124801.098\n    test 88 hubenyTo: <bound method LatLonBase.flatLocalTo of LatLon(53°19′14.16″N, 001°43′46.92″W)>\n    test 89 hubenyTo: <bound method LatLonBase.flatLocalTo of LatLon(53°11′19.32″N, 000°08′00.24″E)>\n    test 90 thomasTo: 124801.098\n    test 91 thomasTo: 124801.098\n    test 92 vincentysTo: 124801.098\n    test 93 vincentysTo: 124801.098\n    test 94 greatCircleTo: (-0.79408, 0.12859, 0.59406)\n    test 95 isclockwise: False\n    test 96 isclockwise*: False\n    test 97 isclockwise: True\n    test 98 isclockwise*: True\n    test 99 isclockwise: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 100 isclockwise*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 101 isclockwise: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 102 isclockwise*: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 103 isconvex: False\n    test 104 isconvex*: False\n    test 105 isconvex: True\n    test 106 isconvex*: True\n    test 107 isconvex: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 108 isconvex*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 109 isenclosedBy1: True\n    test 110 isenclosedBy1*: True\n    test 111 isenclosedBy2: False\n    test 112 isenclosedBy2*: False\n    test 113 isenclosedBy3: False\n    test 114 isenclosedBy3*: False\n    test 115 isenclosedBy4: False\n    test 116 isenclosedBy4*: False\n    test 117 isenclosedBy5: False\n    test 118 isenclosedBy5*: False\n    test 119 isenclosedBy6: True\n    test 120 isenclosedBy6*: True\n    test 121 isenclosedBy7: True\n    test 122 isenclosedBy7*: True\n    test 123 isenclosedBy-CCW: True\n    test 124 isenclosedBy-CW : True\n    test 125 isenclosedBy-CCW: True\n    test 126 initialBearingTo: 102.432182\n    test 127 compassAngleTo: 100.017\n    test 128 compassAngleTo: 105.599\n    test 129 initialBearingTo: 288.715918\n    test 130 compassAngleTo: 280.017\n    test 131 compassAngleTo: 285.599\n    test 132 equirectangularTo: 592.185\n    test 133 distanceTo: 591.831\n    test 134 compassAngleTo: 0.0\n    test 135 compassAngleTo: 45.0\n    test 136 compassAngleTo: 90.0\n    test 137 compassAngleTo: 180.0\n    test 138 compassAngleTo: 225.0\n    test 139 compassAngleTo: 315.0\n    test 140 compassAngleTo: 270.0\n    test 141 compassAngleTo: 359.4\n    test 142 latlon2: (53.0, 1.0)\n    test 143 philam2: (0.93, 0.02)\n    test 144 compassAngleTo: 31\n    test 145 compassAngleTo: 45\n\n    test 146 boundsOf: <class 'pygeodesy.namedTuples.Bounds2Tuple'>\n    test 147 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 148 latlon2: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 149 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 150 isequalTo: <class 'bool'>\n    test 151 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 152 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 153 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 154 xyz3: <class 'tuple'>\n    test 155 xyzh: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 156 compassAngleTo: <class 'float'>\n    test 157 cosineLawTo: <class 'float'>\n    test 158 euclideanTo: <class 'float'>\n    test 159 flatLocalTo: <class 'float'>\n    test 160 flatPolarTo: <class 'float'>\n    test 161 haversineTo: <class 'float'>\n    test 162 hubenyTo: <class 'float'>\n    test 163 vincentysTo: <class 'float'>\n# imported pygeodesy.ltpTuples into ecefLocals.py line 80\n# imported pygeodesy.ltp into ecefLocals.py line 63\n# imported pygeodesy.ltp into ltpTuples.py line 1585\n    test 164 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 165 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 166 toLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 167 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 168 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 169 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 170 toVector: (3922384.659522, 0.0, 5020423.423198)\n    test 171 toVector3d: (0.61566, 0.0, 0.78801)\n    test 172 trilaterate5 (pygeodesy.sphericalNvector) .min: 223.305\n    test 173 trilaterate5 (pygeodesy.sphericalNvector) .point: 42.67456065°N, 002.49539502°E\n    test 174 trilaterate5 (pygeodesy.sphericalNvector) .min- is .maxPoint: True\n    test 175 trilaterate5 (pygeodesy.sphericalNvector) .n: 1\n    test 176 trilaterate5 (pygeodesy.sphericalNvector) .error: sphericalNvector.LatLon.trilaterate5(area=True), MRO(nvectorBase.LatLonNvectorBase, sphericalBase.LatLonSphericalBase, latlonBase.LatLonBase, named._NamedBase, ecefLocals._EcefLocal, named._Named): not implemented\n\n    test 177 radii11: Radii11Tuple(rA=7701.409157, rB=1361.530045, rC=499.257353, cR=4886.694635, rIn=739.915482, riS=179.523525, roS=6087.250896, a=1860.787398, b=8200.666509, c=9062.939201, s=9562.196554)\n\n    22 tests skipped (22): numpy in PYGEODESY_XPACKAGES=numpy,scipy: required by vector2d._numpy\n\n    test 178 area cw/ccw: 1.0\n\n    testVectorial(pygeodesy.sphericalNvector, 25.05.27)\n    test 179 crossTrackDistanceTo: -305.67\n    test 180 crossTrackDistanceTo: -307.55\n\n    test 181 toLatLon: 44.995674°N, 045.0°E\n    test 182 toNvector: (0.50004, 0.50004, 0.70705)\n    test 183 isequalTo: False\n    test 184 isequalTo: True\n    test 185 length: 0.99992449715\n    test 186 euclid: 0.99995577\n    test 187 length: 1.00\n    test 188 euclid: 1.0000\n    test 189 meanOf: 44.995674°N, 045.0°E\n    test 190 meanOf: LatLon\n    test 191 apply: (0.5, 0.5, 0.707)\n    test 192 init: (0.5, 0.5, 0.707)\n    test 193 i***: (0.5, 0.5, 0.707)\n    test 194 abs: 0.99992449715\n    test 195 sumOf: (52.70504, 0.61904, 0.70705)\n    test 196 sumOf: Nv\n    test 197 sumOf: sumOf\n    test 198 length: 52.7134151513\n    test 199 sizeof: None  FAILED, KNOWN, expected 128\n./test/testSpherical.py:318: DeprecationWarning: method L{rhumbBearingTo<pygeodesy.sphericalNvector.LatLon.rhumbBearingTo>} has been DEPRECATED, use method C{.rhumbAzimuthTo}.\n  b = p.rhumbBearingTo(q)  # rhumbAzimuthTo\n./test/testLatLon.py:276: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.sphericalTrigonometry.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', p.cosineAndoyerLambertTo(q), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:277: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.sphericalTrigonometry.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', q.cosineAndoyerLambertTo(p), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:279: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.sphericalTrigonometry.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', p.cosineForsytheAndoyerLambertTo(q), '124801.098' if Sph else '125205.965', fmt='%.3f')\n./test/testLatLon.py:280: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.sphericalTrigonometry.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', q.cosineForsytheAndoyerLambertTo(p), '124801.098' if Sph else '125205.965', fmt='%.3f')\n    test 200 length: 52.2051356286\n    test 201 sizeof: None  FAILED, KNOWN, expected 247\n    test 202 copy: True\n    test 203 length: 52.2051356286\n    test 204 sizeof: None\n\n    test 205 toCartesian: [3185744.919, 3185744.919, 4504643.315]\n    test 206 toLatLon: 44.995674°N, 045.0°E\n    test 207 toNvector: (0.50004, 0.50004, 0.70705)  FAILED, KNOWN, expected (0.50004, 0.50004, 0.70705, -0.00)\n\n    test 208 intersection: 02.499372°N, 002.5°E\n\n    test 209 intersection1: 02.499372°N, 002.5°E\n    test 210 intersection2: 02.499372°S, 177.5°W\n\n    test 211 isenclosedBy: True\n    test 212 isenclosedBy*: True\n    test 213 isenclosedBy: True\n    test 214 isenclosedBy*: True\n\n    test 215 iswithin: False\n    test 216 iswithin: True\n\n    test 217 nearestOn: 51.0°N, 001.0°E\n    test 218 nearestOn: 50.987°N, 000.298°W\n    test 219 nearestOn: 51.0°N, 002.0°E\n    test 220 nearestOn: 50.995°N, 002.655°E\n    test 221 nearestOn: 51.0°N, 001.9°E\n    test 222 nearestOn: True\n    test 223 distanceTo: 42.712\n    test 224 nearestOn: 51.0°N, 002.0°E\n    test 225 nearestOn: True\n    test 226 nearestOn: 00.0°N, 000.0°E\n    test 227 nearestOn: True\n    test 228 nearestOn: 00.0°N, 020.0°E\n    test 229 nearestOn: True\n    test 230 nearestOn: 02.0°N, 002.0°E\n    test 231 nearestOn: 02.0°N, 002.0°E\n\n    test 232 neareston6: (LatLon(45°00′00.0″N, 001°00′00.0″E), 4773243.784965, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E))\n    test 233 neareston6: (LatLon(45°30′03.93″N, 002°00′00.0″E), 38968.531578, 1.501091, 2, LatLon(45°00′00.0″N, 002°00′00.0″E), LatLon(46°00′00.0″N, 002°00′00.0″E))\n\n    test 234 BasseC: 47.3038°N, 002.5721°W\n    test 235 BasseH: 47.311067°N, 002.528617°W\n    test 236 triangulate: 47.323667°N, 002.568501°W\n    test 237 triangulate: True\n\n    test 238 trilaterate: 37.419078°N, 121.960579°W\n    test 239 trilaterate: True\n    test 240 trilaterate: 08.068912°S, 034.888699°W\n    test 241 trilaterate: True\n    test 242 trilaterate: 08.068912°S, 034.888695°W  FAILED, KNOWN, expected 08.068912°S, 034.888699°W\n    test 243 trilaterate: True\n    test 244 trilaterate: 42.67456065°N, 002.49539502°E\n# imported pygeodesy.basics into errors.py line 443\n    test 245 trilaterate: distance1 (5110), distance2 (5110), distance3 (5110), point1 (LatLon(42°41′19.82″N, 002°26′19.89″E)), point2 (LatLon(42°38′07.52″N, 002°31′21.25″E)) or point3 (LatLon(42°38′43.44″N, 002°30′17.32″E)): no intersection (useZ=False, wrap=False, z=-8.13526e-05)\n\n    testNvector(pygeodesy.sphericalNvector, 25.05.27)\n    test 246 sumOf: Nvector\n    test 247 ecef.x, .y, .z: 3185744.91853, 3185744.91853, 4504643.3148\n    test 248 ecef.lat, .lon: 44.995674, 45.0\n    test 249 ecef.height: -0.0\n    test 250 ecef.M: -0.707106781, -0.499962243, 0.500037754, 0.707106781, -0.499962243, 0.500037754, 0.0, 0.707160174, 0.707053385\n    test 251 nearestOn: (0.0, 0.0, 0.0)\n    test 252 nearestOn: True\n    test 253 nearestOn: (100.0, 100.0, 100.0)\n    test 254 nearestOn: True\n# imported pygeodesy.vector2d into vector3d.py line 659\n    test 255 iscolinearWith: False\n    test 256 iscolinearWith: True\n    test 257 nearestOn: (0.0, 0.0, 0.0)\n    test 258 nearestOn: True\n    test 259 nearestOn: (100.0, 100.0, 100.0)\n    test 260 nearestOn: True\n    test 261 iscolinearWith: False\n    test 262 iscolinearWith: True\n\n    testSpherical(pygeodesy.sphericalNvector, 25.05.27)\n    test 263 isSpherical: True\n    test 264 isEllipsoidal: False\n    test 265 datum: name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84\n    test 266 ellipsoid: name='SphereAuthalic', a=6371000, f=0, f_=0, b=6371000\n    test 267 datum: name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84\n    test 268 isSpherical: True\n    test 269 isEllipsoidal: False\n    test 270 intersection1: 50.907608°N, 004.508575°E\n    test 271 intersection1: 50°54′27.39″N, 004°30′30.87″E\n    test 272 intersection1: True\n    test 273 intersection2: True\n    test 274 intersection2: 43.5719°N, 116.188757°W\n    test 275 intersection2: 43°34′18.84″N, 116°11′19.53″W\n    test 276 intersection3: 51.882166°N, 000.267801°E\n    test 277 intersection4: 00.0°S, 026.565051°E  FAILED, KNOWN, expected 00.0°N, 026.565051°E\n    test 278 intersection5: 26.565051°N, 000.0°E  FAILED, KNOWN, expected 26.565051°N, 000.0°W\n    test 279 intersection6: 50.907809°N, 004.50841°E\n    test 280 intersection7: 01°52′46.41″S, 005°39′06.87″E\n    test 281 intersection8: 28°15′40.35″S, 032°14′33.2″E\n    test 282 toward 1,1 N,E nearest: 00.999848°N, 001.0°E\n    test 283 toward 1,1 E,N nearest: 00.999848°N, 001.0°E\n    test 284 toward 1,1 N,E antipodal: 00.999848°S, 179.0°W\n    test 285 toward/away 1,1 N,W antipodal: 00.999848°N, 001.0°E\n    test 286 toward/away 1,1 W,N antipodal: 00.999848°S, 179.0°W\n    test 287 toward/away 1,1 S,E antipodal: 00.999848°S, 179.0°W\n    test 288 toward/away 1,1 E,S antipodal: 00.999848°N, 001.0°E\n    test 289 away 1,1 S,W antipodal: 00.999848°S, 179.0°W\n    test 290 away 1,1 W,S antipodal: 00.999848°S, 179.0°W\n    test 291 1E/90E N,E antipodal: 00.017454°N, 001.0°E\n    test 292 1E/90E N,E nearest: 00.017454°N, 179.0°W\n    test 293 brng+end 1a: 01.000305°N, 002.0°E\n    test 294 brng+end 1b: 01.000305°N, 002.0°E\n    test 295 brng+end 2a: 01.000305°S, 178.0°W\n    test 296 brng+end 2b: 01.000305°S, 178.0°W\n    test 297 intersection7: 02.499372°N, 002.5°E\n    test 298 maxLat0: 90.0\n    test 299 maxLat1: 89.0\n    test 300 maxLat90: 0.0\n    test 301 minLat0: -90.0\n    test 302 minLat1: -89.0\n    test 303 minLat90: -0.0\n    test 304 parse: 00.0°N, 000.0°E\n\n    test 305 intersecant2: 04.260346°N, 006.272173°E and 01.250608°S, 000.749094°E\n    test 306 intersecant2: 700000\n    test 307 intersecant2: 699999  FAILED, KNOWN, expected 700000\n    test 308 intersecant2: 45.014  FAILED, KNOWN, expected 45.000\n\n    test 309 intersecant2: 04.261539°N, 006.265474°E and 00.0°N, 002.0°E\n    test 310 intersecant2: 699248  FAILED, KNOWN, expected 700000\n    test 311 intersecant2: 598698  FAILED, KNOWN, expected 700000\n    test 312 intersecant2: 45.000\n# lazily imported pygeodesy.rhumb by ellipsoids.py line 1518\n\n    test 313 intersecant2: 04.262363°N, 006.2663°E and 01.258709°S, 000.74119°E\n    test 314 intersecant2: 699302  FAILED, KNOWN, expected 700000\n    test 315 intersecant2: 700080  FAILED, KNOWN, expected 700000\n    test 316 intersecant2: 45.021  FAILED, KNOWN, expected 45.000\n\n    test 317 intersecant4: 02.375133°N, 024.894142°E and 25.0°S, 000.0°E  FAILED, KNOWN, expected 00.0°N, 025.0°E and 25.0°S, 000.0°E\n    test 318 intersecant4: 00.0°S, 025.0°E and 25.0°S, 000.0°E  FAILED, KNOWN, expected 00.0°N, 025.0°E and 25.0°S, 000.0°E\n    test 319 intersecant4: 02.375133°N, 024.894142°E and 25.0°S, 000.0°E  FAILED, KNOWN, expected 00.0°N, 025.0°E and 25.0°S, 000.0°E\n    test 320 intersecant4: 00.0°S, 025.0°E and 25.0°S, 000.0°E  FAILED, KNOWN, expected 00.0°N, 025.0°E and 25.0°S, 000.0°E\n\n    test 321 intersecant4: 00.725365°N, 026.558638°E and 25.747°S, 000.826763°W  FAILED, KNOWN, expected 00.0°N, 025.0°E and 25.0°S, 000.0°E\n    test 322 intersecant4: 00.725365°N, 026.558638°E and 25.747°S, 000.826763°W  FAILED, KNOWN, expected 00.0°N, 025.0°E and 25.0°S, 000.0°E\n    test 323 intersecant4: 00.021635°S, 025.811619°E and 25.0°S, 000.0°E  FAILED, KNOWN, expected 00.0°N, 025.0°E and 25.0°S, 000.0°E\n    test 324 intersecant4: 00.021635°S, 025.811619°E and 25.0°S, 000.0°E  FAILED, KNOWN, expected 00.0°N, 025.0°E and 25.0°S, 000.0°E\n\n    test 325 intersecant4: 00.807845°N, 026.641126°E and 25.0°S, 000.0°E  FAILED, KNOWN, expected 00.0°N, 025.0°E and 25.0°S, 000.0°E\n    test 326 intersecant4: 01.624807°N, 026.572609°E and 25.0°S, 000.0°E  FAILED, KNOWN, expected 00.0°N, 025.0°E and 25.0°S, 000.0°E\n    test 327 intersecant4: 00.807845°N, 026.641126°E and 25.0°S, 000.0°E  FAILED, KNOWN, expected 00.0°N, 025.0°E and 25.0°S, 000.0°E\n    test 328 intersecant4: 01.624807°N, 026.572609°E and 25.0°S, 000.0°E  FAILED, KNOWN, expected 00.0°N, 025.0°E and 25.0°S, 000.0°E\n\n    test 329 intersecant2.1: LatLon(04°04′02.63″S, 029°43′21.16″W) Napier: 3333000.000\n    test 330 intersecant2.1: LatLon(29°58′27.6″N, 000°01′46.65″W) Napier: 3333000.000\n    test 331 intersecant2.1: LatLon(29°58′27.6″N, 000°01′46.65″W) : 3332999.886  FAILED, KNOWN, expected 3333000.000\n    test 332 intersecant2.1: LatLon(02°29′47.81″S, 028°30′01.84″W) : 3180236.460  FAILED, KNOWN, expected 3333000.000\n\n    test 333 intersecant2.2: LatLon(04°04′02.63″S, 029°43′21.16″E) Napier: 3333000.000\n    test 334 intersecant2.2: LatLon(29°58′27.6″N, 000°01′46.65″E) Napier: 3333000.000\n    test 335 intersecant2.2: LatLon(02°29′47.81″S, 028°30′01.84″E) : 3180236.460  FAILED, KNOWN, expected 3333000.000\n    test 336 intersecant2.2: LatLon(29°58′27.6″N, 000°01′46.65″E) : 3332999.886  FAILED, KNOWN, expected 3333000.000\n\n    test 337 intersecant2.3: LatLon(04°04′02.63″N, 029°43′21.16″W) Napier: 3333000.000\n    test 338 intersecant2.3: LatLon(29°58′27.6″S, 000°01′46.65″W) Napier: 3333000.000\n    test 339 intersecant2.3: LatLon(29°58′27.6″S, 000°01′46.65″W) : 3332999.886  FAILED, KNOWN, expected 3333000.000\n    test 340 intersecant2.3: LatLon(02°29′47.81″N, 028°30′01.84″W) : 3180236.460  FAILED, KNOWN, expected 3333000.000\n\n    test 341 intersecant2.4: LatLon(29°50′37.22″S, 002°56′03.42″W) Napier: 3333000.000\n    test 342 intersecant2.4: LatLon(00°29′30.34″N, 029°58′14.48″E) Napier: 3333000.000\n    test 343 intersecant2.4: LatLon(00°08′01.47″N, 029°38′09.18″E) : 3295394.784  FAILED, KNOWN, expected 3333000.000\n    test 344 intersecant2.4: LatLon(29°31′09.01″S, 002°27′32.93″W) : 3292733.874  FAILED, KNOWN, expected 3333000.000\n\n    test 345 intersecant2.5: LatLon(00°01′46.69″S, 029°58′27.6″E) Napier: 3333000.000\n    test 346 intersecant2.5: LatLon(29°58′27.59″S, 000°02′03.16″E) Napier: 3333000.000\n    test 347 intersecant2.5: LatLon(01°38′23.65″S, 028°34′45.37″E) : 3182660.966  FAILED, KNOWN, expected 3333000.000\n    test 348 intersecant2.5: LatLon(29°58′27.58″S, 000°02′03.17″E) : 3332999.848  FAILED, KNOWN, expected 3333000.000\n\n    test 349 intersecant2.6: LatLon(05°08′54.91″S, 029°34′09.94″E) Napier: 3333000.000\n    test 350 intersecant2.6: LatLon(28°36′28.71″S, 009°21′04.99″E) Napier: 3333000.000\n    test 351 intersecant2.6: LatLon(11°51′13.84″S, 024°23′59.0″E) : 2998636.503  FAILED, KNOWN, expected 3333000.000\n    test 352 intersecant2.6: LatLon(26°53′11.53″S, 011°08′26.36″E) : 3218384.739  FAILED, KNOWN, expected 3333000.000\n    test 353 isenclosedBy: True\n    test 354 isenclosedBy*: True\n    test 355 isenclosedBy: True\n    test 356 isenclosedBy*: True\n    test 357 rhumbBearingTo: 116.722\n    test 358 rhumbDestination: 50.964155°N, 001.853°E\n    test 359 rhumbDestination: True\n    test 360 rhumbDistanceTo: 40307.8\n    test 361 rhumbMidpointo-0.5: 51.0455°N, 001.595727°E\n    test 362 rhumbMidpointo: True\n    test 363 rhumbMidpointo-0.0: 51.127°N, 001.338°E\n    test 364 rhumbMidpointo-0.25: 51.08625°N, 001.46692°E\n    test 365 rhumbMidpointo-0.75: 51.00475°N, 001.72442°E\n    test 366 rhumbMidpointo-1.0: 50.964°N, 001.853°E\n    test 367 rhumbMidpointo-2.0: 50.801°N, 002.366196°E\n    test 368 areaOf: 8.66605875e+09\n    test 369 perimeterOf: 3.78258541e+05\n    test 370 perimeterOf: 2.67063461e+05\n    test 371 areaOf: 6.18e+09\n    test 372 perimeterOf: 3.79639757e+05\n    test 373 perimeterOf: 2.68444678e+05\n    test 374 nearestOn3: 46.000996°N, 001.353049°E\n    test 375 nearestOn3: 569987.49\n    test 376 distanceTo: 569987.49\n    test 377 nearestOn3: 46.0°N, 002.0°E\n    test 378 nearestOn3: 134989.80\n    test 379 distanceTo: 134989.80\n    test 380 nearestOn3: 45.330691°N, 001.318551°E\n    test 381 distance: 64856.28\n    test 382 distanceTo: 64856.28\n    test 383 compassAngleTo: 304.54\n    test 384 difference: 1000.53\n    test 385 ispolar: True\n    test 386 ispolar*: True\n    test 387 ispolar: False  FAILED, KNOWN, expected True\n    test 388 ispolar*: False  FAILED, KNOWN, expected True\n    test 389 ispolar: True\n    test 390 ispolar*: True\n    test 391 nearestOn: 01.5°N, 001.5°E, +149.99m\n    test 392 nearestOn3: 01.5°N, 001.5°E, +149.99m\n    test 393 midpointTo: 50.5363°N, 001.2746°E, +150.00m\n    test 394 intermediateTo: 50.5363°N, 001.2746°E, +150.00m\n\n    testLatLon(pygeodesy.sphericalTrigonometry, 25.08.31)\n    test 395 isEllipsoidal: False\n    test 396 isSpherical: True\n    test 397 lat/lonDMS: 52.20472°N, 000.14056°E\n    test 398 lat/lonDMS F_DM: 52°12.283′N, 000°08.434′E\n    test 399 lat/lonDMS F_DM: 52°12.2832′N, 000°08.4336′E\n    test 400 lat/lonDMS F_DMS: 52°12′17″N, 000°08′26″E\n    test 401 lat/lonDMS F_DMS: 52°12′17.0″N, 000°08′26.0″E\n    test 402 lat/lonDMS F_RAD: 0.911144N, 0.002453E\n    test 403 isequalTo: True\n    test 404 isequalTo: True\n    test 405 latlon2: 52.20472, 0.14056\n    test 406 latlon2: 52.2047, 0.1406\n    test 407 latlon2: 52.205, 0.141\n    test 408 latlon2: 52.2, 0.14\n    test 409 latlon2: 52.2, 0.1\n    test 410 latlon2: 52.0, 0.0\n    test 411 chordTo: 12036677.26\n    test 412 chordTo: 12036463.78\n    test 413 initialBearingTo: 156.1666\n    test 414 initialBearingTo: 65.8921\n    test 415 initialBearingTo: 0.0\n    test 416 initialBearingTo: 180.0\n    test 417 finalBearingTo: 157.8904\n    test 418 finalBearingTo: 93.8581\n    test 419 bearingTo2: 156.1666, 157.8904\n    test 420 ispolar: True\n    test 421 copy: True\n    test 422 __eq__: True\n    test 423 __ne__: False\n    test 424 equirectangularTo: 404329.56\n    test 425 distanceTo: 404279.720589\n    test 426 distanceTo: 404279.720589\n    test 427 distanceTo: 2145\n    test 428 antipodal: False\n    test 429 distanceTo dateline: 19967403.498  FAILED, KNOWN, expected 19119590.551\n    test 430 distanceTo unrolled: 19967403.498  FAILED, KNOWN, expected 19119590.551\n    test 431 antipodal: False\n    test 432 distanceTo dateline: 9491735\n    test 433 distanceTo unrolled: 9491735\n    test 434 distanceTo: 18013602.92\n    test 435 distanceTo: 20015114.35\n    test 436 intermediateTo: 51.372084°N, 000.707337°E\n    test 437 intermediateTo: True\n    test 438 intermediateTo: 404279.721\n    test 439 intermediateTo+5: 35.160975°N, 008.989542°E\n    test 440 intermediateTo+5: 5.000\n    test 441 intermediateTo-4: 64.911647°N, 013.726301°W\n    test 442 intermediateTo-4: 4.000\n    test 443 intermediateTo-h: 125.000\n    test 444 midpointTo: 50.536327°N, 001.274614°E\n    test 445 destination: 51.513546°N, 000.098345°W\n    test 446 destination: 51°30′49″N, 000°05′54″W\n    test 447 destination: 34°37′N, 116°33′W\n    test 448 destination: 34.613647°N, 116.55116°W\n    test 449 destination: 0.604122N, 2.034201W\n    test 450 destination: 31.96383509°N, 064.37329146°E\n    test 451 alongTrackDistanceTo: type(end) (96): incompatible with sphericalTrigonometry.LatLon.alongTrackDistanceTo(end)  FAILED, KNOWN, expected incompatible ...\n    test 452 alongTrackDistanceTo: 62331.58\n    test 453 alongTrackDistanceTo: 99.588\n    test 454 alongTrackDistanceTo: -7702.7\n    test 455 alongTrackDistanceTo: 7587.6\n    test 456 crossTrackDistanceTo: type(end) (96): incompatible with sphericalTrigonometry.LatLon.crossTrackDistanceTo(end)  FAILED, KNOWN, expected incompatible ...\n    test 457 crossTrackDistanceTo: -307.55\n    test 458 crossTrackDistanceTo: 7.4524\n    test 459 greatCircle: (-0.79408, 0.12856, 0.59406)\n./test/testSpherical.py:318: DeprecationWarning: method L{rhumbBearingTo<pygeodesy.sphericalTrigonometry.LatLon.rhumbBearingTo>} has been DEPRECATED, use method C{.rhumbAzimuthTo}.\n  b = p.rhumbBearingTo(q)  # rhumbAzimuthTo\n    test 460 neareston6: (LatLon(45°00′00.0″N, 001°00′00.0″E), 4773243.784965, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E))  FAILED, KNOWN, expected (LatLon(45°00′00.0″N, 001°00′00.0″E), 4755443.4294, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E))\n    test 461 neareston6: (LatLon(45°30′03.93″N, 002°00′00.0″E), 38968.531578, 1.501091, 2, LatLon(45°00′00.0″N, 002°00′00.0″E), LatLon(46°00′00.0″N, 002°00′00.0″E))  FAILED, KNOWN, expected (LatLon(45°30′03.94″N, 002°00′00.0″E), 39078.729285, 1.501072, 2, LatLon(45°00′00.0″N, 002°00′00.0″E), LatLon(46°00′00.0″N, 002°00′00.0″E))\n    test 462 chordTo: 124799.103\n    test 463 cosineAndoyerLambertTo: 124801.098\n    test 464 cosineAndoyerLambertTo: 124801.098\n    test 465 cosineForsyheAndoyerLambertTo: 124801.098\n    test 466 cosineForsyheAndoyerLambertTo: 124801.098\n    test 467 cosineLawTo: 124801.098\n    test 468 cosineLawTo: 124801.098\n    test 469 equirectangularTo: 124804.754\n    test 470 equirectangularTo: 124804.754\n    test 471 euclideanTo: 130015.089\n    test 472 euclideanTo: 130015.089\n    test 473 flatLocalTo: 124804.754\n    test 474 flatLocalTo: 124804.754\n    test 475 flatPolarTo: 133663.257\n    test 476 flatPolarTo: 133663.257\n    test 477 hartzell: 53.3206°N, 001.7297°W\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by ellipsoids.py line 1905\n    test 478 hartzell: 53.3206°N, 001.7297°W\n    test 479 height4: 0.0\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by cartesianBase.py line 364\n    test 480 height4: (3803904.2, -114870.8, 5109488.3, 0.0)\n    test 481 height4: 53°19′14.2″N, 001°43′46.9″W\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by cartesianBase.py line 364\n    test 482 height4: 53°19′14.2″N, 001°43′46.9″W\n    test 483 haversineTo: 124801.098\n    test 484 haversineTo: 124801.098\n    test 485 hubenyTo: <bound method LatLonBase.flatLocalTo of LatLon(53°19′14.16″N, 001°43′46.92″W)>\n    test 486 hubenyTo: <bound method LatLonBase.flatLocalTo of LatLon(53°11′19.32″N, 000°08′00.24″E)>\n    test 487 thomasTo: 124801.098\n    test 488 thomasTo: 124801.098\n    test 489 vincentysTo: 124801.098\n    test 490 vincentysTo: 124801.098\n    test 491 isclockwise: False\n    test 492 isclockwise*: False\n    test 493 isclockwise: True\n    test 494 isclockwise*: True\n    test 495 isclockwise: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 496 isclockwise*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 497 isclockwise: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 498 isclockwise*: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 499 isconvex: False\n    test 500 isconvex*: False\n    test 501 isconvex: True\n    test 502 isconvex*: True\n    test 503 isconvex: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 504 isconvex*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 505 isenclosedBy1: True\n    test 506 isenclosedBy1*: True\n    test 507 isenclosedBy2: False\n    test 508 isenclosedBy2*: False\n    test 509 isenclosedBy3: False\n    test 510 isenclosedBy3*: False\n    test 511 isenclosedBy4: False\n    test 512 isenclosedBy4*: False\n    test 513 isenclosedBy5: False\n    test 514 isenclosedBy5*: False\n    test 515 isenclosedBy6: True\n    test 516 isenclosedBy6*: True\n    test 517 isenclosedBy7: True\n    test 518 isenclosedBy7*: True\n    test 519 isenclosedBy-CCW: True\n    test 520 isenclosedBy-CW : True\n    test 521 isenclosedBy-CCW: True\n    test 522 initialBearingTo: 102.432182\n    test 523 compassAngleTo: 100.017\n    test 524 compassAngleTo: 105.599\n    test 525 initialBearingTo: 288.715918\n    test 526 compassAngleTo: 280.017\n    test 527 compassAngleTo: 285.599\n    test 528 equirectangularTo: 592.185\n    test 529 distanceTo: 591.831\n    test 530 bearingTo: 0.0\n    test 531 compassAngleTo: 0.0\n    test 532 bearingTo: 45.0\n    test 533 compassAngleTo: 45.0\n    test 534 bearingTo: 90.0\n    test 535 compassAngleTo: 90.0\n    test 536 bearingTo: 180.0\n    test 537 compassAngleTo: 180.0\n    test 538 bearingTo: 225.0\n    test 539 compassAngleTo: 225.0\n    test 540 bearingTo: 315.0\n    test 541 compassAngleTo: 315.0\n    test 542 bearingTo: 270.0\n    test 543 compassAngleTo: 270.0\n    test 544 bearingTo: 0.0  FAILED, KNOWN, expected 359.4\n    test 545 compassAngleTo: 359.4\n    test 546 latlon2: (53.0, 1.0)\n    test 547 philam2: (0.93, 0.02)\n    test 548 bearingTo: 31\n    test 549 compassAngleTo: 31\n    test 550 compassAngleTo: 45\n\n    test 551 boundsOf: <class 'pygeodesy.namedTuples.Bounds2Tuple'>\n    test 552 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 553 latlon2: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 554 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 555 isequalTo: <class 'bool'>\n    test 556 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 557 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 558 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 559 xyz3: <class 'tuple'>\n    test 560 xyzh: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 561 compassAngleTo: <class 'float'>\n    test 562 cosineLawTo: <class 'float'>\n    test 563 euclideanTo: <class 'float'>\n    test 564 flatLocalTo: <class 'float'>\n    test 565 flatPolarTo: <class 'float'>\n    test 566 haversineTo: <class 'float'>\n    test 567 hubenyTo: <class 'float'>\n    test 568 vincentysTo: <class 'float'>\n    test 569 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 570 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 571 toLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 572 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 573 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 574 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 575 toNvector: (0.61566, 0.0, 0.78801)\n    test 576 toVector: (3922384.659522, 0.0, 5020423.423198)\n    test 577 toVector3d: (0.61566, 0.0, 0.78801)\n\n    test 578 trilaterate5 (pygeodesy.sphericalTrigonometry) .min: 313.671\n    test 579 trilaterate5 (pygeodesy.sphericalTrigonometry) .point: 42.66937229°N, 002.48639477°E\n    test 580 trilaterate5 (pygeodesy.sphericalTrigonometry) .max: 1591.044\n    test 581 trilaterate5 (pygeodesy.sphericalTrigonometry) .point: 42.65153054°N, 002.46822157°E\n    test 582 trilaterate5 (pygeodesy.sphericalTrigonometry) .n: 3\n    test 583 trilaterate5 (pygeodesy.sphericalTrigonometry) .min: 133.815\n    test 584 trilaterate5 (pygeodesy.sphericalTrigonometry) .max: 160.242\n    test 585 trilaterate5 (pygeodesy.sphericalTrigonometry) .point: 42.67817811°N, 002.49966641°E\n    test 586 trilaterate5 (pygeodesy.sphericalTrigonometry) .n: 2\n    test 587 trilaterate5 (pygeodesy.sphericalTrigonometry) .min: 2403.293\n    test 588 trilaterate5 (pygeodesy.sphericalTrigonometry) .max: 2403.293\n    test 589 trilaterate5 (pygeodesy.sphericalTrigonometry) .point: 42.66135649°N, 002.47981645°E\n    test 590 trilaterate5 (pygeodesy.sphericalTrigonometry) .min- is .maxPoint: True\n    test 591 trilaterate5 (pygeodesy.sphericalTrigonometry) .n: 1\n    test 592 trilaterate5 (pygeodesy.sphericalTrigonometry) .min: 1340.608\n    test 593 trilaterate5 (pygeodesy.sphericalTrigonometry) .point: 42.69128229°N, 002.50129001°E\n    test 594 trilaterate5 (pygeodesy.sphericalTrigonometry) .max: 1499.220\n    test 595 trilaterate5 (pygeodesy.sphericalTrigonometry) .point: 42.64295864°N, 002.44242391°E\n    test 596 trilaterate5 (pygeodesy.sphericalTrigonometry) .n: 3\n    test 597 radii11: Radii11Tuple(rA=7237.243793, rB=1825.695409, rC=2.255158, cR=57690.493993, rIn=57.33247, riS=2.087691, roS=2.443616, a=1827.950567, b=7239.49895, c=9062.939201, s=9065.194359)\n\n    27 tests skipped (49): numpy in PYGEODESY_XPACKAGES=numpy,scipy: required by vector2d._numpy\n\n    test 598 radii11: Radii11Tuple(rA=7237.243793, rB=1825.695409, rC=2.255158, cR=57690.493993, rIn=57.33247, riS=2.087691, roS=2.443616, a=1827.950567, b=7239.49895, c=9062.939201, s=9065.194359)\n\n    22 tests skipped (71): numpy in PYGEODESY_XPACKAGES=numpy,scipy: required by vector2d._numpy\n\n    test 599 area cw/ccw: 1.0\n\n    testSpherical(pygeodesy.sphericalTrigonometry, 25.08.31)\n    test 600 isSpherical: True\n    test 601 isEllipsoidal: False\n    test 602 datum: name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84\n    test 603 ellipsoid: name='SphereAuthalic', a=6371000, f=0, f_=0, b=6371000\n    test 604 datum: name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84\n    test 605 isSpherical: True\n    test 606 isEllipsoidal: False\n    test 607 intersection1: 50.907608°N, 004.508575°E\n    test 608 intersection1: 50°54′27.39″N, 004°30′30.87″E\n    test 609 intersection1: True\n    test 610 intersection2: True\n    test 611 intersection2: 43.5719°N, 116.188757°W\n    test 612 intersection2: 43°34′18.84″N, 116°11′19.53″W\n    test 613 intersection3: 51.882166°N, 000.267801°E\n    test 614 intersection4: 00.0°N, 026.565051°E\n    test 615 intersection5: 26.565051°N, 000.0°E  FAILED, KNOWN, expected 26.565051°N, 000.0°W\n    test 616 intersection6: 50.907809°N, 004.50841°E\n    test 617 intersection7: 01°52′46.41″S, 005°39′06.87″E\n    test 618 intersection8: 28°15′40.35″S, 032°14′33.2″E\n    test 619 toward 1,1 N,E nearest: 00.999848°N, 001.0°E\n    test 620 toward 1,1 E,N nearest: 00.999848°N, 001.0°E\n    test 621 toward 1,1 N,E antipodal: 00.999848°S, 179.0°W\n    test 622 toward/away 1,1 N,W antipodal: 00.999848°N, 001.0°E\n    test 623 toward/away 1,1 W,N antipodal: 00.999848°S, 179.0°W\n    test 624 toward/away 1,1 S,E antipodal: 00.999848°S, 179.0°W\n    test 625 toward/away 1,1 E,S antipodal: 00.999848°N, 001.0°E\n    test 626 away 1,1 S,W antipodal: 00.999848°S, 179.0°W\n    test 627 away 1,1 W,S antipodal: 00.999848°S, 179.0°W\n    test 628 1E/90E N,E antipodal: 00.017454°N, 001.0°E\n    test 629 1E/90E N,E nearest: 00.017454°N, 179.0°W\n    test 630 brng+end 1a: 01.000305°N, 002.0°E\n    test 631 brng+end 1b: 01.000305°N, 002.0°E\n    test 632 brng+end 2a: 01.000305°S, 178.0°W\n    test 633 brng+end 2b: 01.000305°S, 178.0°W\n    test 634 intersection7: 02.499372°N, 002.5°E\n    test 635 maxLat0: 90.0\n    test 636 maxLat1: 89.0\n    test 637 maxLat90: 0.0\n    test 638 minLat0: -90.0\n    test 639 minLat1: -89.0\n    test 640 minLat90: -0.0\n    test 641 parse: 00.0°N, 000.0°E\n    test 642 crossingParallels: 009°35′38.65″E, 170°24′21.35″E\n\n    test 643 intersecant2: 04.260346°N, 006.272173°E and 01.250608°S, 000.749094°E\n    test 644 intersecant2: 700000\n    test 645 intersecant2: 699999  FAILED, KNOWN, expected 700000\n    test 646 intersecant2: 45.014  FAILED, KNOWN, expected 45.000\n\n    test 647 intersecant2: 04.261539°N, 006.265474°E and 00.0°N, 002.0°E\n    test 648 intersecant2: 699248  FAILED, KNOWN, expected 700000\n    test 649 intersecant2: 598698  FAILED, KNOWN, expected 700000\n    test 650 intersecant2: 45.000\n\n    test 651 intersecant2: 04.262363°N, 006.2663°E and 01.258709°S, 000.74119°E\n    test 652 intersecant2: 699302  FAILED, KNOWN, expected 700000\n    test 653 intersecant2: 700080  FAILED, KNOWN, expected 700000\n    test 654 intersecant2: 45.021  FAILED, KNOWN, expected 45.000\n\n    test 655 intersecant4: 02.375133°N, 024.894142°E and 25.0°S, 000.0°E  FAILED, KNOWN, expected 00.0°N, 025.0°E and 25.0°S, 000.0°E\n    test 656 intersecant4: 00.0°N, 025.0°E and 25.0°S, 000.0°E\n    test 657 intersecant4: 02.375133°N, 024.894142°E and 25.0°S, 000.0°E  FAILED, KNOWN, expected 00.0°N, 025.0°E and 25.0°S, 000.0°E\n    test 658 intersecant4: 00.0°N, 025.0°E and 25.0°S, 000.0°E\n\n    test 659 intersecant4: 00.725365°N, 026.558638°E and 25.747°S, 000.826763°W  FAILED, KNOWN, expected 00.0°N, 025.0°E and 25.0°S, 000.0°E\n    test 660 intersecant4: 00.725365°N, 026.558638°E and 25.747°S, 000.826763°W  FAILED, KNOWN, expected 00.0°N, 025.0°E and 25.0°S, 000.0°E\n    test 661 intersecant4: 00.021635°S, 025.811619°E and 25.0°S, 000.0°E  FAILED, KNOWN, expected 00.0°N, 025.0°E and 25.0°S, 000.0°E\n    test 662 intersecant4: 00.021635°S, 025.811619°E and 25.0°S, 000.0°E  FAILED, KNOWN, expected 00.0°N, 025.0°E and 25.0°S, 000.0°E\n\n    test 663 intersecant4: 00.807845°N, 026.641126°E and 25.0°S, 000.0°E  FAILED, KNOWN, expected 00.0°N, 025.0°E and 25.0°S, 000.0°E\n    test 664 intersecant4: 01.624807°N, 026.572609°E and 25.0°S, 000.0°E  FAILED, KNOWN, expected 00.0°N, 025.0°E and 25.0°S, 000.0°E\n    test 665 intersecant4: 00.807845°N, 026.641126°E and 25.0°S, 000.0°E  FAILED, KNOWN, expected 00.0°N, 025.0°E and 25.0°S, 000.0°E\n    test 666 intersecant4: 01.624807°N, 026.572609°E and 25.0°S, 000.0°E  FAILED, KNOWN, expected 00.0°N, 025.0°E and 25.0°S, 000.0°E\n\n    test 667 intersecant2.1: LatLon(04°04′02.63″S, 029°43′21.16″W) Napier: 3333000.000\n    test 668 intersecant2.1: LatLon(29°58′27.6″N, 000°01′46.65″W) Napier: 3333000.000\n    test 669 intersecant2.1: LatLon(29°58′27.6″N, 000°01′46.65″W) : 3332999.886  FAILED, KNOWN, expected 3333000.000\n    test 670 intersecant2.1: LatLon(02°29′47.81″S, 028°30′01.84″W) : 3180236.460  FAILED, KNOWN, expected 3333000.000\n\n    test 671 intersecant2.2: LatLon(04°04′02.63″S, 029°43′21.16″E) Napier: 3333000.000\n    test 672 intersecant2.2: LatLon(29°58′27.6″N, 000°01′46.65″E) Napier: 3333000.000\n    test 673 intersecant2.2: LatLon(02°29′47.81″S, 028°30′01.84″E) : 3180236.460  FAILED, KNOWN, expected 3333000.000\n    test 674 intersecant2.2: LatLon(29°58′27.6″N, 000°01′46.65″E) : 3332999.886  FAILED, KNOWN, expected 3333000.000\n\n    test 675 intersecant2.3: LatLon(04°04′02.63″N, 029°43′21.16″W) Napier: 3333000.000\n    test 676 intersecant2.3: LatLon(29°58′27.6″S, 000°01′46.65″W) Napier: 3333000.000\n    test 677 intersecant2.3: LatLon(29°58′27.6″S, 000°01′46.65″W) : 3332999.886  FAILED, KNOWN, expected 3333000.000\n    test 678 intersecant2.3: LatLon(02°29′47.81″N, 028°30′01.84″W) : 3180236.460  FAILED, KNOWN, expected 3333000.000\n\n    test 679 intersecant2.4: LatLon(29°50′37.22″S, 002°56′03.42″W) Napier: 3333000.000\n    test 680 intersecant2.4: LatLon(00°29′30.34″N, 029°58′14.48″E) Napier: 3333000.000\n    test 681 intersecant2.4: LatLon(00°08′01.47″N, 029°38′09.18″E) : 3295394.784  FAILED, KNOWN, expected 3333000.000\n    test 682 intersecant2.4: LatLon(29°31′09.01″S, 002°27′32.93″W) : 3292733.874  FAILED, KNOWN, expected 3333000.000\n\n    test 683 intersecant2.5: LatLon(00°01′46.69″S, 029°58′27.6″E) Napier: 3333000.000\n    test 684 intersecant2.5: LatLon(29°58′27.59″S, 000°02′03.16″E) Napier: 3333000.000\n    test 685 intersecant2.5: LatLon(01°38′23.65″S, 028°34′45.37″E) : 3182660.966  FAILED, KNOWN, expected 3333000.000\n    test 686 intersecant2.5: LatLon(29°58′27.58″S, 000°02′03.17″E) : 3332999.848  FAILED, KNOWN, expected 3333000.000\n\n    test 687 intersecant2.6: LatLon(05°08′54.91″S, 029°34′09.94″E) Napier: 3333000.000\n    test 688 intersecant2.6: LatLon(28°36′28.71″S, 009°21′04.99″E) Napier: 3333000.000\n    test 689 intersecant2.6: LatLon(11°51′13.84″S, 024°23′59.0″E) : 2998636.503  FAILED, KNOWN, expected 3333000.000\n    test 690 intersecant2.6: LatLon(26°53′11.53″S, 011°08′26.36″E) : 3218384.739  FAILED, KNOWN, expected 3333000.000\n\n    test 691 intersections2 (pygeodesy.sphericalTrigonometry): 36.98931°N, 088.151425°W, 38.23838°N, 092.390487°W\n    test 692 intersections2 (pygeodesy.sphericalTrigonometry): 36.989310429, -088.151425243, 38.238379679, -092.390486808\n    test 693 intersections2 (pygeodesy.sphericalTrigonometry): 00.0°N, 035.26439°W, 00.0°N, 035.26439°E\n    test 694 intersections2 (pygeodesy.sphericalTrigonometry): 22.622036°N, 000.0°E, 22.622036°S, 000.0°E\n    test 695 intersections2 (pygeodesy.sphericalTrigonometry): 14.612841°N, 026.110934°W, 14.612841°S, 026.110934°E\n    test 696 intersections2 (pygeodesy.sphericalTrigonometry): 00.000001°S, 045.0°E, 00.000001°N, 045.0°E\n    test 697 intersections2 (pygeodesy.sphericalTrigonometry) 5: 04.999927°S, 005.038296°W, 04.999927°N, 005.038296°E\n    test 698 intersections2 (pygeodesy.sphericalTrigonometry) 5: 1.67511e-15 (% of radius)\n    test 699 intersections2 (pygeodesy.sphericalTrigonometry) 10: 09.997596°S, 010.311703°W, 09.997596°N, 010.311703°E\n    test 700 intersections2 (pygeodesy.sphericalTrigonometry) 10: 6.28168e-16 (% of radius)\n    test 701 intersections2 (pygeodesy.sphericalTrigonometry) 15: 14.98089°S, 016.083107°W, 14.98089°N, 016.083107°E\n    test 702 intersections2 (pygeodesy.sphericalTrigonometry) 15: 6.97964e-16 (% of radius)\n    test 703 intersections2 (pygeodesy.sphericalTrigonometry) 20: 19.914036°S, 022.676142°W, 19.914036°N, 022.676142°E\n    test 704 intersections2 (pygeodesy.sphericalTrigonometry) 20: 1.46573e-15 (% of radius)\n    test 705 intersections2 (pygeodesy.sphericalTrigonometry) 25: 24.713956°S, 030.518915°W, 24.713956°N, 030.518915°E\n    test 706 intersections2 (pygeodesy.sphericalTrigonometry) 25: 6.70046e-16 (% of radius)\n    test 707 intersections2 (pygeodesy.sphericalTrigonometry) 30: 29.205932°S, 040.202966°W, 29.205932°N, 040.202966°E\n    test 708 intersections2 (pygeodesy.sphericalTrigonometry) 30: 8.37557e-16 (% of radius)\n    test 709 intersections2 (pygeodesy.sphericalTrigonometry) 35: 33.037697°S, 052.55362°W, 33.037697°N, 052.55362°E\n    test 710 intersections2 (pygeodesy.sphericalTrigonometry) 35: 8.37557e-16 (% of radius)\n    test 711 intersections2 (pygeodesy.sphericalTrigonometry) 40: 35.512876°S, 068.682565°W, 35.512876°N, 068.682565°E\n    test 712 intersections2 (pygeodesy.sphericalTrigonometry) 40: 4.18779e-16 (% of radius)\n    test 713 intersections2 (pygeodesy.sphericalTrigonometry) 45: 35.26439°S, 090.0°W, 35.26439°N, 090.0°E\n    test 714 intersections2 (pygeodesy.sphericalTrigonometry) 45: 3.72248e-16 (% of radius)\n    test 715 intersections2 (pygeodesy.sphericalTrigonometry) 50: 29.382901°S, 118.837195°W, 29.382901°N, 118.837195°E\n    test 716 intersections2 (pygeodesy.sphericalTrigonometry) 50: 1.67511e-16 (% of radius)\n    test 717 intersections2 (pygeodesy.sphericalTrigonometry) 55: 00.687458°S, 179.605668°E abutting\n    test 718 intersections2 (pygeodesy.sphericalTrigonometry) 55: 0.0144095 (% of radius)\n    test 719 intersections2 (pygeodesy.sphericalTrigonometry) 60: 13.848979°S, 172.919423°E abutting\n    test 720 intersections2 (pygeodesy.sphericalTrigonometry) 60: 0.258708 (% of radius)\n    test 721 intersections2 (pygeodesy.sphericalTrigonometry) 65: 27.163786°S, 167.475402°E abutting\n    test 722 intersections2 (pygeodesy.sphericalTrigonometry) 65: 0.457099 (% of radius)\n    test 723 intersections2 (pygeodesy.sphericalTrigonometry): 41.212541°N, 073.702999°E Random +/- 89\n    test 724 intersections2 (pygeodesy.sphericalTrigonometry): 41.212541°N, 073.702999°E, 42.652043°N, 130.245275°E  d 1.70272e-08 meter\n    test 725 intersections2 (pygeodesy.sphericalTrigonometry): 41.212541°N, 073.702999°E, 49.563295°N, 057.220788°E  d 5.86871e-09 meter\n    test 726 intersections2 (pygeodesy.sphericalTrigonometry): 41.212541°N, 073.702999°E, 29.348825°S, 027.178886°W  d 3.18296e-09 meter\n    test 727 intersections2 (pygeodesy.sphericalTrigonometry): 41.212541°N, 073.702999°E, 00.919397°S, 022.582538°E  d 0 meter\n    test 728 intersections2 (pygeodesy.sphericalTrigonometry): 41.212541°N, 073.702999°E, 37.789721°N, 113.551077°E  d 0 meter\n    test 729 intersections2 (pygeodesy.sphericalTrigonometry): 41.212541°N, 073.702999°E, 45.8391°N, 062.488233°W  d 2.64407e-09 meter\n    test 730 intersections2 (pygeodesy.sphericalTrigonometry): 41.212541°N, 073.702999°E, 42.836396°N, 147.679061°W  d 7.94221e-09 meter\n    test 731 intersections2 (pygeodesy.sphericalTrigonometry): 41.212541°N, 073.702999°E, 76.602903°N, 073.829073°W  d 5.42574e-09 meter\n    test 732 intersections2 (pygeodesy.sphericalTrigonometry): 41.212541°N, 073.702999°E, 46.089655°N, 103.356557°E  d 3.82901e-09 meter\n    test 733 intersections2 (pygeodesy.sphericalTrigonometry): 41.212541°N, 073.702999°E, 04.154973°N, 044.386256°E  d 2.47563e-09 meter\n    test 734 intersections2 (pygeodesy.sphericalTrigonometry): 41.212541°N, 073.702999°E, 02.95074°N, 159.308477°W  d 2.99873e-09 meter\n    test 735 intersections2 (pygeodesy.sphericalTrigonometry): 41.212541°N, 073.702999°E, 33.791406°N, 143.40539°W  d 7.12163e-09 meter\n    test 736 trilaterate5 (pygeodesy.sphericalTrigonometry) .min: 313.671\n    test 737 trilaterate5 (pygeodesy.sphericalTrigonometry) .point: 42.66937229°N, 002.48639477°E\n    test 738 trilaterate5 (pygeodesy.sphericalTrigonometry) .max: 1591.044\n    test 739 trilaterate5 (pygeodesy.sphericalTrigonometry) .point: 42.65153054°N, 002.46822157°E\n    test 740 trilaterate5 (pygeodesy.sphericalTrigonometry) .n: 3\n    test 741 trilaterate5 (pygeodesy.sphericalTrigonometry) .min: 133.815\n    test 742 trilaterate5 (pygeodesy.sphericalTrigonometry) .inter: 42.6767291°N, 002.49916157°E\n    test 743 trilaterate5 (pygeodesy.sphericalTrigonometry) .n: 2\n    test 744 trilaterate5 (pygeodesy.sphericalTrigonometry) .min: 2403.293\n    test 745 trilaterate5 (pygeodesy.sphericalTrigonometry) .max: 2403.293\n    test 746 trilaterate5 (pygeodesy.sphericalTrigonometry) .point: 42.66135649°N, 002.47981645°E\n    test 747 trilaterate5 (pygeodesy.sphericalTrigonometry) .min- is .maxPoint: True\n    test 748 trilaterate5 (pygeodesy.sphericalTrigonometry) .n: 1\n    test 749 trilaterate5 (pygeodesy.sphericalTrigonometry) .inter: area (False), eps (1000) or wrap (False): no intersection, min 1.34e+03\n    test 750 isenclosedBy: True\n    test 751 isenclosedBy*: True\n    test 752 isenclosedBy: points[3] (LatLon(47°00′00.0″N, 003°00′00.0″E)) or wrap (False): not convex\n    test 753 isenclosedBy*: points[3] (LatLon(47°00′00.0″N, 003°00′00.0″E)) or wrap (False): not convex\n    test 754 rhumbBearingTo: 116.722\n    test 755 rhumbDestination: 50.964155°N, 001.853°E\n    test 756 rhumbDestination: True\n    test 757 rhumbDistanceTo: 40307.8\n    test 758 rhumbMidpointo-0.5: 51.0455°N, 001.595727°E\n    test 759 rhumbMidpointo: True\n    test 760 rhumbMidpointo-0.0: 51.127°N, 001.338°E\n    test 761 rhumbMidpointo-0.25: 51.08625°N, 001.46692°E\n    test 762 rhumbMidpointo-0.75: 51.00475°N, 001.72442°E\n    test 763 rhumbMidpointo-1.0: 50.964°N, 001.853°E\n    test 764 rhumbMidpointo-2.0: 50.801°N, 002.366196°E\n    test 765 areaOf: 8.66605875e+09\n    test 766 perimeterOf: 3.78258541e+05\n    test 767 perimeterOf: 2.67063461e+05\n    test 768 areaOf: 6.18e+09\n    test 769 perimeterOf: 3.79639757e+05\n    test 770 perimeterOf: 2.68444678e+05\n    test 771 nearestOn3: 46.0°N, 001.369324°E\n    test 772 nearestOn3: 570101.83\n    test 773 distanceTo: 570101.82\n    test 774 nearestOn3: 46.0°N, 002.0°E\n    test 775 nearestOn3: 134992.48\n    test 776 distanceTo: 134989.80\n    test 777 nearestOn3: 45.5°N, 001.5°E\n    test 778 distance: 78626.79\n    test 779 angle: 315.00\n    test 780 compassAngleTo: 315.00\n    test 781 nearestOn3: 45.331319°N, 001.331319°E\n    test 782 distance: 64074.48\n    test 783 angle: 305.10\n    test 784 distanceTo: 64074.12\n    test 785 compassAngleTo: 305.10\n    test 786 difference: 1000.53\n    test 787 nearestOn3: 00.5°N, 001.5°E\n    test 788 distance: 235880.385\n    test 789 angle: 135.00\n    test 790 nearestOn3: 01.5°N, 002.5°E\n    test 791 distance: 235880.385\n    test 792 angle: 135.00\n    test 793 nearestOn3: 02.5°N, 003.5°E\n    test 794 distance: 235880.385\n    test 795 angle: 135.00\n    test 796 nearestOn3: 03.5°N, 004.5°E\n    test 797 distance: 235880.385\n    test 798 angle: 135.00\n    test 799 nearestOn3: 04.5°N, 005.5°E\n    test 800 distance: 235880.385\n    test 801 angle: 135.00\n    test 802 nearestOn3: 05.5°N, 006.5°E\n    test 803 distance: 235880.385\n    test 804 angle: 135.00\n    test 805 nearestOn3: 06.5°N, 007.5°E\n    test 806 distance: 235880.385\n    test 807 angle: 135.00\n    test 808 nearestOn3: 07.5°N, 008.5°E\n    test 809 distance: 235880.385\n    test 810 angle: 135.00\n    test 811 meanOf: 04.004858°N, 004.990226°E\n    test 812 nearestOn3: 07.5°N, 008.5°E\n    test 813 toCartesian: [6245667.211, 766871.506, 996645.349]\n    test 814 ispolar: True\n    test 815 ispolar*: True\n    test 816 ispolar: False  FAILED, KNOWN, expected True\n    test 817 ispolar*: False  FAILED, KNOWN, expected True\n    test 818 ispolar: True\n    test 819 ispolar*: True\n    test 820 triangle7: (22.142114, 2189776.256122, 84.91384, 6998970.168483, 84.91384, 6998970.168483, 8479698853790.72168)\n    test 821 triangle7: Triangle8Tuple(A=0.38645, a=0.34371, B=1.48203, b=1.09857, C=1.48203, c=1.09857, D=3.74234, E=0.20891)\n    test 822 nearestOn: 01.5°N, 001.5°E, +149.99m\n    test 823 nearestOn3: 01.5°N, 001.5°E, +149.99m\n    test 824 midpointTo: 50.5363°N, 001.2746°E, +150.00m\n    test 825 intermediateTo: 50.5363°N, 001.2746°E, +150.00m\n\n    104 of 825 testSpherical.py tests (12.6%) FAILED, incl. 93 KNOWN plus 11 DeprecationWarnings, 71 skipped (pygeodesy 26.3.26 PyPy 7.3.17 Python 3.10.14 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 471.881 ms\nrunning /opt/local/bin/p....y3.10 -W default ~/PyGeodesy/test/testStreprs.py\n# lazily imported pygeodesy.basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.DeprecationWarnings from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isint from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isLazy from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.issubclassof from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.iterNumpy2over from .iters by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.LazyImportError from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.karney by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.NN from .interns by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.normDMS from .dms by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.pairs from .streprs by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.printf from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.property_RO from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.typename from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.INF from .constants by testStreprs.py line 11\n# lazily imported pygeodesy.NEG0 from .constants by testStreprs.py line 11\n# lazily imported pygeodesy.NAN from .constants by testStreprs.py line 11\n# lazily imported pygeodesy.fstr from .streprs by testStreprs.py line 11\n# lazily imported pygeodesy.fstrzs from .streprs by testStreprs.py line 11\n# lazily imported pygeodesy.instr from .streprs by testStreprs.py line 11\n# lazily imported pygeodesy.LatLon_ from .points by testStreprs.py line 11\n# lazily imported pygeodesy.unstr from .streprs by testStreprs.py line 11\n\n    testing testStreprs.py 23.03.27 (module pygeodesy.streprs 25.11.24) isLazy=3\n    test 1 anstr: a-b__\n    test 2 fstr: 0.123000\n    test 3 fstr: 0.123\n    test 4 fstr: 0.123, 456.789\n    test 5 fstr: 1.23000e-01\n    test 6 fstr: 1.23e-01\n# imported pygeodesy.basics into errors.py line 443\n    test 7 fstr: fmt ('X'): not '[%[<flags>][<width>].*]F|f|E|e|G|g'\n    test 8 fstr(1.000000): 1.0\n    test 9 fstr(1.000000): 1.0\n    test 10 fstr(-1.000000): -1.0\n    test 11 fstr(INF): INF\n    test 12 fstr(INF): INF\n    test 13 fstr(NAN): NAN\n    test 14 fstr(-0.000000): -0.0\n    test 15 fstr(0.000000): 0.0\n    test 16 fstrzs(0.0): 0.0\n    test 17 fstrzs(0.00): 0.0\n    test 18 fstrzs(0.000): 0.0\n    test 19 fstrzs(00.0): 00.0\n    test 20 fstrzs(000.00): 000.0\n    test 21 fstrzs(0.000): 0.0\n    test 22 fstrzs(0.010): 0.01\n    test 23 fstrzs(0.0200): 0.02\n    test 24 fstrzs(0.0e+01): 0.0e+01\n    test 25 fstrzs(0.00e+02): 0.0e+02\n    test 26 fstrzs(0.000e+03): 0.0e+03\n    test 27 fstrzs(00.0e+00): 00.0e+00\n    test 28 fstrzs(000.00e+01): 000.0e+01\n    test 29 fstrzs(0.000e+02): 0.0e+02\n    test 30 fstrzs(0.010e+03): 0.01e+03\n    test 31 fstrzs(0.0200e+00): 0.02e+00\n    test 32 fstrzs(0, ap1z=True): 0.0\n    test 33 fstrzs(0.0, ap1z=True): 0.0\n    test 34 fstrzs(0., ap1z=True): 0.\n    test 35 fstrzs(1e10, ap1z=True): 1.0e10\n    test 36 fstrzs(2E+2, ap1z=True): 2.0E+2\n    test 37 fstrzs(3.E3, ap1z=True): 3.E3\n    test 38 instr: LatLon_(45.0°N, 090.0°E, +1.20)\n    test 39 instr: LatLon_(45, 90, h=1.2)\n    test 40 unstr: f(1.1, 2.2)\n    test 41 unstr: f(x=1.1, y=2.2)\n    test 42 F: 0.001\n    test 43 F: 0.001\n    test 44 F: 0.001\n    test 45 F: 0.001\n    test 46 f: 0.001\n    test 47 f: 0.001\n    test 48 f: 0.001\n    test 49 f: 0.001\n    test 50 E: 1.0E-03\n    test 51 E: 1.0E-03\n    test 52 E: 1.0E-03\n    test 53 E: 1.0E-03\n    test 54 e: 1.0e-03\n    test 55 e: 1.0e-03\n    test 56 e: 1.0e-03\n    test 57 e: 1.0e-03\n    test 58 G: 0.001\n    test 59 G: 0.001\n    test 60 G: 0.001\n    test 61 G: 0.001\n    test 62 g: 0.001\n    test 63 g: 0.001\n    test 64 g: 0.001\n    test 65 g: 0.001\n\n    all 65 testStreprs.py tests passed (pygeodesy 26.3.26 PyPy 7.3.17 Python 3.10.14 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 1.482 ms\nrunning /opt/local/bin/p....y3.10 -W default ~/PyGeodesy/test/testTMcoords.py\n# lazily imported pygeodesy.basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.DeprecationWarnings from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isint from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isLazy from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.issubclassof from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.iterNumpy2over from .iters by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.LazyImportError from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.karney by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.NN from .interns by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.normDMS from .dms by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.pairs from .streprs by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.printf from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.property_RO from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.typename from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.Ellipsoids from .ellipsoids by testTMcoords.py line 14\n# lazily imported pygeodesy.EPS from .constants by testTMcoords.py line 14\n# lazily imported pygeodesy.RangeError from .errors by testTMcoords.py line 14\n\n    testing testTMcoords.py 24.03.22 isLazy=3\n    test 1 TMcoords: 258\n\n    all 1 testTMcoords.py tests passed (pygeodesy 26.3.26 PyPy 7.3.17 Python 3.10.14 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 51.022 us\nrunning /opt/local/bin/p....y3.10 -W default ~/PyGeodesy/test/testTrf.py\n./test/testTrf.py:29: DeprecationWarning: method L{convertRefFrame<pygeodesy.ellipsoidalNvector.LatLon.convertRefFrame>} has been DEPRECATED, use method L{toRefFrame}.\n  x = p.convertRefFrame(RefFrames.ETRF2000)\n./test/testTrf.py:136: DeprecationWarning: method L{convertRefFrame<pygeodesy.ellipsoidalNvector.LatLon.convertRefFrame>} has been DEPRECATED, use method L{toRefFrame}.\n  t = LatLon(0, 0, reframe=RefFrames.ITRF2000).convertRefFrame('ITRF2000')\n# lazily imported pygeodesy.basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.DeprecationWarnings from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isint from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isLazy from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.issubclassof from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.iterNumpy2over from .iters by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.LazyImportError from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.karney by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.NN from .interns by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.normDMS from .dms by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.pairs from .streprs by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.printf from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.property_RO from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.typename from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.date2epoch from .trf by testTrf.py line 15\n# lazily imported pygeodesy.Epoch from .units by testTrf.py line 15\n# lazily imported pygeodesy.epoch2date from .trf by testTrf.py line 15\n# lazily imported pygeodesy.F_D from .dms by testTrf.py line 15\n# lazily imported pygeodesy.F_DMS from .dms by testTrf.py line 15\n# lazily imported pygeodesy.fstr from .streprs by testTrf.py line 15\n# lazily imported pygeodesy.RefFrames from .trf by testTrf.py line 15\n# lazily imported pygeodesy.TRFError from .errors by testTrf.py line 15\n# lazily imported pygeodesy.trfTransform0 from .trf by testTrf.py line 15\n# lazily imported pygeodesy.trfTransforms from .trf by testTrf.py line 15\n# lazily imported pygeodesy.trfXform from .trf by testTrf.py line 15\n# lazily imported pygeodesy.Vector3d from .vector3d by testTrf.py line 15\n# lazily imported pygeodesy.ellipsoidalExact by testTrf.py line 392\n# lazily imported pygeodesy.ellipsoidalKarney by testTrf.py line 392\n# lazily imported pygeodesy.ellipsoidalNvector by testTrf.py line 392\n# lazily imported pygeodesy.ellipsoidalVincenty by testTrf.py line 392\n\n    testing testTrf.py 24.10.14 (module pygeodesy.trf 25.09.11) isLazy=3\n\n    testTrf(pygeodesy.ellipsoidalNvector, 25.05.12)\n# lazily imported pygeodesy.ecef by ellipsoidalNvector.py line 524\n    test 1 convertRefFrame: 51.47787826°N, 000.00147125°W, -0.00m  FAILED, KNOWN, expected 51.47787826°N, 000.00147125°W\n    test 2 copy(<class 'type'>): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 3 RefFrame.copy(): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 4 toLatLon: 50.7978°N, 004.3592°E, +148.96m\n# imported pygeodesy.basics into errors.py line 715\n    test 5 convertRefFrame: [3980574.395, -102.214, 4966829.941]\n    test 6 Nil: True\n    test 7 copy(<class 'type'>): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 8 RefFrame.copy(): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 9 Nil: True\n    test 10 reframe: True\n    test 11 Roundtrip: True\n    test 12 reframe: True\n    test 13 copy(<class 'type'>): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 14 RefFrame.copy(): (<class 'pygeodesy.trf.RefFrame'>, True)\n\n    test 15 Geodetic: 23°40′12.44582″S, 133°53′07.84795″E, +603.34m\n    test 16 Cartesian: [-4052051.7614, 4212836.1945, -2545106.0147]\n    test 17 Geodetic: 23°40′12.44582″S, 133°53′07.84795″E, +603.34m\n    test 18 Cartesian: [-4052051.7614, 4212836.1945, -2545106.0147]\n    test 19 Roundtrip: 23°40′12.41482″S, 133°53′07.86712″E, +603.26m\n    test 20 GNSStrans: [3370658.18892, 711877.42369, 5349787.1243]\n    test 21 Cartesian: [-734972.563, 4893188.492, 4011982.811]\n\n    test 22 EUREF EX1: [4027894.0444, 307045.6209, 4919474.8613]\n    test 23 transform0: ITRF2005@2015xETRF2020-ITRF91@2015xETRF2020@2007 max 1.1642e-10, epoched 8.0\n    test 24 transform1: ITRF2005@2015xETRF2014-ITRF91@2015xETRF2014@2007 max 0.048666, epoched 8.0\n    test 25 transform2: ITRF2005@2015xETRF2000-ITRF91@2015xETRF2000@2007 max 0.097331, epoched 8.0\n    test 26 transform3: ITRF2005@2000xITRF2000+ITRF2000@1988xITRF91@2000@2007 max 0.146, epoched 19.0\n    test 27 transform4: -ITRF2020@2015xITRF2005+ITRF2020@2015xITRF91@2007 max 0.19466, epoched 8.0\n    test 28 transform5: -ITRF2014@2010xITRF2005+ITRF2014@2010xITRF91@2007 max 0.24333, epoched 3.0\n    test 29 transform6: -ITRF2008@2005xITRF2005+ITRF2008@2000xITRF91@2005@2007 max 0.29199, epoched 7.0\n    test 30 transform7: ITRF2000@1988xITRF91+ITRF2005@2000xITRF2000@1988@2007 max 0.34066, epoched 31.0\n    test 31 transform8: ITRF2014@2010xITRF91-ITRF2014@2020xGDA2020@2010+ITRF2005@2020xGDA2020@2010@2007 max 0.98111, epoched 23.0\n    test 32 transform9: ITRF2008@2000xITRF91-ITRF2008@1994xGDA94@2000+ITRF2005@1994xGDA94@2000@2007 max 0.35972, epoched 19.0\n    test 33 transform10: ITRF2008@2000xITRF91-ITRF2008@1997xNAD83@2000+ITRF2005@1997xNAD83@2000@2007 max 0.40805, epoched 13.0\n    test 34 EUREF EX2: [4027894.0060, 307045.6000, 4919474.9100]\n    test 35 transform0: ITRF91@2015xETRF2020-ITRF2005@2015xETRF2020@2007 max 0.048666, epoched 8.0\n    test 36 transform1: ITRF91@2015xETRF2014-ITRF2005@2015xETRF2014@2007 max 2.3283e-10, epoched 8.0\n    test 37 transform2: ITRF91@2015xETRF2000-ITRF2005@2015xETRF2000@2007 max 0.048666, epoched 8.0\n    test 38 transform3: -ITRF2005@2000xITRF2000-ITRF2000@1988xITRF91@2000@2007 max 0.097331, epoched 19.0\n    test 39 EUREF EX4: [4027894.3559, 307045.2508, 4919474.6447]\n    test 40 transform0: -ITRF2000@2015xETRF2000@2012 max 4.5169e-08, epoched 3.0\n    test 41 transform1: -ITRF2000@1997xITRF97@2015-ITRF97@2015xETRF2000@2012 max 0.35826, epoched 21.0\n    test 42 transform2: -ITRF2000@1997xITRF96@2015-ITRF96@2015xETRF2000@2012 max 0.7048, epoched 21.0\n    test 43 transform3: -ITRF2000@1988xITRF93@2015-ITRF93@2015xETRF2000@2012 max 1.054, epoched 30.0\n    test 44 transform4: -ITRF2000@1988xITRF92@2015-ITRF92@2015xETRF2000@2012 max 1.4023, epoched 30.0\n    test 45 transform5: -ITRF2000@1988xITRF91@2015-ITRF91@2015xETRF2000@2012 max 1.7514, epoched 30.0\n    test 46 transform6: -ITRF2000@1988xITRF90@2015-ITRF90@2015xETRF2000@2012 max 2.1088, epoched 30.0\n    test 47 transform7: -ITRF2000@1988xITRF89@2015-ITRF89@2015xETRF2000@2012 max 2.4877, epoched 30.0\n    test 48 transform8: -ITRF2000@1988xITRF88@2015-ITRF88@2015xETRF2000@2012 max 2.8343, epoched 30.0\n    test 49 EUREF EX5: [4027893.6458, 307045.9470, 4919475.1937]  FAILED, KNOWN, expected [4027894.3662, 307045.2530, 4919474.6263]\n    test 50 transform0: ITRF2014@2015xETRF2000@2012 max 4.5635e-08, epoched 3.0\n    test 51 transform1: ITRF2014@2010xITRF2008@2015+ITRF2008@2015xETRF2000@2012 max 0.36023, epoched 8.0\n    test 52 transform2: ITRF2014@2010xITRF97@2015+ITRF97@2015xETRF2000@2012 max 0.72047, epoched 8.0\n    test 53 transform3: ITRF2014@2010xITRF93@2015+ITRF93@2015xETRF2000@2012 max 1.0807, epoched 8.0\n    test 54 transform4: ITRF2014@2010xITRF92@2015+ITRF92@2015xETRF2000@2012 max 1.4409, epoched 8.0\n    test 55 transform5: ITRF2014@2010xITRF91@2015+ITRF91@2015xETRF2000@2012 max 1.8012, epoched 8.0\n    test 56 transform6: ITRF2014@2010xITRF90@2015+ITRF90@2015xETRF2000@2012 max 2.1614, epoched 8.0\n    test 57 transform7: ITRF2014@2010xITRF89@2015+ITRF89@2015xETRF2000@2012 max 2.5216, epoched 8.0\n    test 58 transform8: ITRF2014@2010xITRF88@2015+ITRF88@2015xETRF2000@2012 max 2.8819, epoched 8.0\n\n    test 59 Case 1A: [4027893.9619, 307045.5481, 4919474.9553]\n    test 60 Case 1B: [4027894.0054, 307045.5938, 4919474.9083]\n    test 61 Case 2A: [4027893.9639, 307045.545, 4919474.9573]\n    test 62 Case 2B: [4027894.0033, 307045.5889, 4919474.9041]\n\n    test 63 TypeError: type(reframe) ('ITRF2000'): not a RefFrame\n    test 64 TRFError: epoch (1899): below 1900.0 limit\n    test 65 TypeError: type(reframe2) ('ITRF2000'): not a RefFrame\n    test 66 TRFError: no conversion: LatLon(00°00′00.0″N, 000°00′00.0″E).reframe MISSING\n    test 67 TypeError: type(reframe2) ('ITRF2000'): not a RefFrame\n    test 68 TypeError: type(reframe) ('ITRF2000'): not a RefFrame\n\n    test 69 ETRF89@1989: [4160476.944000, 653192.600000, 4774604.455000]\n    test 70 ITRF2014@2018.8: [4160476.415, 653193.057, 4774604.903]  FAILED, KNOWN, expected [4160476.485, 653193.021, 4774604.78]\n    test 71 TransformXform: -ITRF2014@2010xITRF89-ITRF89@1989xETRF89@2010@2018.8\n    test 72 Delta (m): [-0.06956, 0.035714, 0.122931]  FAILED, KNOWN, expected [0.01, 0.01, 0.01]\n    test 73 Error (m): 0.145692  FAILED, KNOWN, expected 0.01\n    test 74 Epoch range: 29.800  FAILED, KNOWN, expected 14.0\n    test 75 ETRF89@1989: [4160476.467836, 653193.103190, 4774604.868503]  FAILED, KNOWN, expected [4160476.944000, 653192.600000, 4774604.455000]\n    test 76 TransformXform: ITRF2014@2010xITRF89+ITRF89@1989xETRF89@2010@1989\n\n    test 77 inverse: -ITRF2014@2010xITRF89-ITRF89@1989xETRF89@2010@1989\n    test 78 inverse: ITRF2014@2010xITRF89+ITRF89@1989xETRF89@2010@1989\n    test 79 inverse: name='ITRF2014@2010xITRF89+ITRF89@1989xETRF89@2010@1989', tx=0.0283, ty=0.046, tz=-0.0615, s1=1.0, rx=0.0, ry=0.0, rz=-7.757e-10, s=0.00567, sx=0.0, sy=0.0, sz=-0.00016\n\n    test 80 ETRF2000@2000: [4160476.952000, 653192.582000, 4774604.441000]\n    test 81 ITRF2014@2018.8: [4160476.471, 653193.059, 4774604.804]  FAILED, KNOWN, expected [4160476.485, 653193.021, 4774604.78]\n    test 82 TransformXform: -ITRF2014@2015xETRF2000@2018.8\n    test 83 Delta (m): [-0.014174, 0.037835, 0.023963]  FAILED, KNOWN, expected [0.01, 0.01, 0.01]\n    test 84 Error (m): 0.046975  FAILED, KNOWN, expected 0.01\n    test 85 Epoch range: 18.800  FAILED, KNOWN, expected 14.0\n    test 86 ETRF2000@2000: [4160476.681125, 653192.914350, 4774604.647835]  FAILED, KNOWN, expected [4160476.952000, 653192.582000, 4774604.441000]\n    test 87 TransformXform: ITRF2014@2015xETRF2000@2000\n\n    test 88 inverse: -ITRF2014@2015xETRF2000@2000\n    test 89 inverse: ITRF2014@2015xETRF2000@2000\n    test 90 inverse: name='ITRF2014@2015xETRF2000@2000', tx=0.0537, ty=0.0512, tz=-0.0551, s1=1.0, rx=4.3197e-09, ry=2.6131e-08, rz=-4.2237e-08, s=0.00102, sx=0.000891, sy=0.00539, sz=-0.008712\n\n    test 91 ITRF2008@2005: [4160476.674000, 653192.806000, 4774604.648000]\n    test 92 ITRF2014@2018.8: [4160476.671, 653192.804, 4774604.645]  FAILED, KNOWN, expected [4160476.485, 653193.021, 4774604.78]\n    test 93 TransformXform: -ITRF2014@2010xITRF2008@2018.8\n    test 94 Delta (m): [0.186385, -0.217059, -0.134685]  FAILED, KNOWN, expected [0.01, 0.01, 0.01]\n    test 95 Error (m): 0.316218  FAILED, KNOWN, expected 0.01\n    test 96 Epoch range: 13.800  FAILED, KNOWN, expected 14.0\n    test 97 ITRF2008@2005: [4160476.672278, 653192.805730, 4774604.647403]  FAILED, KNOWN, expected [4160476.674000, 653192.806000, 4774604.648000]\n    test 98 TransformXform: ITRF2014@2010xITRF2008@2005\n\n    test 99 inverse: -ITRF2014@2010xITRF2008@2005\n    test 100 inverse: ITRF2014@2010xITRF2008@2005\n    test 101 inverse: name='ITRF2014@2010xITRF2008@2005', tx=0.0016, ty=0.0019, tz=0.0029, s1=1.0, rx=0.0, ry=0.0, rz=0.0, s=-0.00017, sx=0.0, sy=0.0, sz=0.0\n\n    test 102 toRefFrame1: ITRF2020@2015 2024.31 [0.0031474, 0.00210534, -0.00125667]\n    test 103 toRefFrame2: ITRF2014@2010 2024.32 [0.0031474, 0.00210634, -0.00125867]\n    test 104 transform0: -ITRF2020@2015xITRF2014@2010\n    test 105 transform0X: TRFXform(epoch=2010.0, name='-ITRF2020@2015xITRF2014@2010')\n    test 106 toRefFrame3: ITRF2020@2015 2010 [0.0031474, 0.00067434, 0.00160533]\n    test 107 transform2x: (4160476.488147, 653193.021674, 4774604.781605)\n    test 108 transform2v: (0.000, 0.000, 0.000)  FAILED, KNOWN, expected (0.004, 0.003, 0.004)\n\n    test 109 transform0: name='ITRF2020@2015xETRF2020@2010', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=8.75573508e-09, ry=5.28398431e-08, rz=-7.66635874e-08, s=0.0, sx=0.001806, sy=0.010899, sz=-0.015813\n    test 110 transform2c: (4027893.9585, 307045.5550, 4919474.9620)  FAILED, KNOWN, expected (4027893.9585, 307045.5550, 4919474.9619)\n    test 111     Error2c: (-0.000016463, 0.0000336, 0.000055143) max 5.514e-05, epoched 5.0\n    test 112 transform2v: (-0.00011, 0.00010, 0.00023)  FAILED, KNOWN, expected (0.00011, 0.00011, 0.00024)\n    test 113     Error2v: (-0.000220786, -0.000005544, -0.000006899) max 0.0002208\n    test 114 transform0v: (0.00009, 0.00052, -0.00075)  FAILED, KNOWN, expected (0.00011, 0.00011, 0.00024)\n    test 115     Error0v: (-0.000024, 0.000409, -0.000993) max 0.000993\n\n    test 116 transform0: name='-ITRF2014@2015xETRF2020@2010', tx=-0.0014, ty=-0.0004, tz=0.0004, s1=1.0, rx=-8.75573508e-09, ry=-5.28398431e-08, rz=7.66635874e-08, s=-0.00042, sx=-0.001806, sy=-0.010899, sz=0.015813\n    test 117 transform2c: (4027893.6719, 307045.9063, 4919475.1704)  FAILED, KNOWN, expected (4027893.6719, 307045.9064, 4919475.1704)\n    test 118     Error2c: (0.000024786, -0.000062539, -0.000021305) max 6.254e-05, epoched 5.0\n    test 119 transform2v: (-0.01339, 0.01677, 0.01045)  FAILED, KNOWN, expected (-0.01361, 0.01676, 0.01044)\n    test 120     Error2v: (0.000220784, 0.000005543, 0.000006898) max 0.0002208\n    test 121 transform0v: (-0.00009, -0.00052, 0.00075)  FAILED, KNOWN, expected (-0.01361, 0.01676, 0.01044)\n    test 122     Error0v: (0.013524, -0.017279, -0.009687) max 0.01728\n\n    test 123 transform0: name='ITRF2014@2015xETRF2014@2010', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=8.65392421e-09, ry=5.40615736e-08, rz=-7.83943722e-08, s=0.0, sx=0.001785, sy=0.011151, sz=-0.01617\n    test 124 transform2c: (4027893.9619, 307045.5481, 4919474.9553)  FAILED, KNOWN, expected (4027893.9620, 307045.5480, 4919474.9553)\n    test 125     Error2c: (-0.00007476, 0.000063039, 0.000002882) max 7.476e-05, epoched 5.0\n    test 126 transform2v: (0.00020, -0.00030, 0.00020)\n    test 127     Error2v: (0.000000724, -0.000003666, -0.000002721) max 3.666e-06\n    test 128 transform0v: (0.00009, 0.00053, -0.00077)  FAILED, KNOWN, expected (0.00020, -0.00030, 0.00020)\n    test 129     Error0v: (-0.000115, 0.000831, -0.00097) max 0.00097\n\n    test 130 transform0: name='-ITRF2000@2015xETRF2014@2010', tx=0.0007, ty=0.0012, tz=-0.0261, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 131 transform2c: (4027893.6812, 307045.9082, 4919475.1547)\n    test 132     Error2c: (0.000013934, -0.000012081, 0.000026423) max 2.642e-05, epoched 5.0\n    test 133 transform2v: (-0.01351, 0.01686, 0.00854)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 134     Error2v: (-0.000440726, -0.000036335, -0.00053728) max 0.0005373\n    test 135 transform0v: (-0.00008, -0.00053, 0.00077)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 136     Error0v: (0.012985, -0.017431, -0.00831) max 0.01743\n\n    test 137 transform0: name='ITRF2000@2015xETRF2000@2010', tx=0.054, ty=0.051, tz=-0.048, s1=1.0, rx=8.24668072e-09, ry=4.98873278e-08, rz=-8.06342114e-08, s=0.0, sx=0.001701, sy=0.01029, sz=-0.016632\n    test 138 transform2c: (4027894.0054, 307045.5938, 4919474.9083)  FAILED, KNOWN, expected (4027894.0053, 307045.5939, 4919474.9083)\n    test 139     Error2c: (0.000077874, -0.000055372, -0.000008743) max 7.787e-05, epoched 5.0\n    test 140 transform2v: (-0.00020, -0.00050, -0.00037)  FAILED, KNOWN, expected (-0.00020, -0.00050, -0.00036)\n    test 141     Error2v: (-0.000004389, 0.000002124, -0.000008036) max 8.036e-06\n    test 142 transform0v: (0.00008, 0.00049, -0.00079)  FAILED, KNOWN, expected (-0.00020, -0.00050, -0.00036)\n    test 143     Error0v: (0.000281, 0.00099, -0.000432) max 0.00099\n\n    test 144 transform0/: name='-ITRF2000@2015xETRF2014@2010', tx=0.0007, ty=0.0012, tz=-0.0261, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 145 transform2c: (4027893.6812, 307045.9082, 4919475.1547)\n./test/testTrf.py:29: DeprecationWarning: method L{convertRefFrame<pygeodesy.ellipsoidalVincenty.LatLon.convertRefFrame>} has been DEPRECATED, use method L{toRefFrame}.\n  x = p.convertRefFrame(RefFrames.ETRF2000)\n./test/testTrf.py:136: DeprecationWarning: method L{convertRefFrame<pygeodesy.ellipsoidalVincenty.LatLon.convertRefFrame>} has been DEPRECATED, use method L{toRefFrame}.\n  t = LatLon(0, 0, reframe=RefFrames.ITRF2000).convertRefFrame('ITRF2000')\n    test 146     Error2c: (0.000013934, -0.000012081, 0.000026423) max 2.642e-05, epoched 5.0\n    test 147 transform2v: (-0.01351, 0.01686, 0.00854)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 148     Error2v: (-0.000440726, -0.000036335, -0.00053728) max 0.0005373\n\n    test 149 transform1/: name='-ITRF2000@1997xITRF97@2015-ITRF97@2015xETRF2014@2010', tx=0.00673, ty=-0.00033, tz=-0.05913, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=8.09154034e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01669\n    test 150 transform2c: (4027893.6865, 307045.9168, 4919475.1217)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 151     Error2c: (0.005269863, 0.008612365, -0.033003577) max 0.033, epoched 23.0\n    test 152 transform2v: (-0.01357, 0.01710, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 153     Error2v: (-0.00050027, 0.000204776, -0.00179728) max 0.001797\n\n    test 154 transform2/: name='-ITRF2000@1997xITRF96@2015-ITRF96@2015xETRF2014@2010', tx=0.00673, ty=-0.00033, tz=-0.05913, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 155 transform2c: (4027893.6872, 307045.9067, 4919475.1217)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 156     Error2c: (0.006043935, -0.001542081, -0.033003577) max 0.033, epoched 23.0\n    test 157 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 158     Error2v: (-0.000440726, -0.000576335, -0.00179728) max 0.001797\n\n    test 159 transform3/: name='-ITRF2000@1988xITRF93@2015-ITRF93@2015xETRF2014@2010', tx=0.0007, ty=0.0012, tz=-0.0261, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 160 transform2c: (4027893.6812, 307045.9082, 4919475.1547)\n    test 161     Error2c: (0.000013934, -0.000012081, 0.000026423) max 2.642e-05, epoched 32.0\n    test 162 transform2v: (-0.01351, 0.01686, 0.00854)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 163     Error2v: (-0.000440726, -0.000036335, -0.00053728) max 0.0005373\n\n    test 164 transform4/: name='-ITRF2000@1988xITRF92@2015-ITRF92@2015xETRF2014@2010', tx=0.01393, ty=0.00147, tz=-0.06633, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 165 transform2c: (4027893.6944, 307045.9085, 4919475.1145)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 166     Error2c: (0.013243935, 0.000257919, -0.040203577) max 0.0402, epoched 32.0\n    test 167 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 168     Error2v: (-0.000440726, -0.000576335, -0.00179728) max 0.001797\n\n    test 169 transform5/: name='-ITRF2000@1988xITRF91@2015-ITRF91@2015xETRF2014@2010', tx=0.0007, ty=0.0012, tz=-0.0261, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 170 transform2c: (4027893.6812, 307045.9082, 4919475.1547)\n    test 171     Error2c: (0.000013934, -0.000012081, 0.000026423) max 2.642e-05, epoched 32.0\n    test 172 transform2v: (-0.01351, 0.01686, 0.00854)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 173     Error2v: (-0.000440726, -0.000036335, -0.00053728) max 0.0005373\n\n    test 174 transform6/: name='-ITRF2000@1988xITRF90@2015-ITRF90@2015xETRF2014@2010', tx=0.02293, ty=0.01047, tz=-0.08613, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 175 transform2c: (4027893.7034, 307045.9175, 4919475.0947)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 176     Error2c: (0.022243935, 0.009257919, -0.060003577) max 0.06, epoched 32.0\n    test 177 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 178     Error2v: (-0.000440726, -0.000576335, -0.00179728) max 0.001797\n\n    test 179 transform7/: name='-ITRF2000@1988xITRF89@2015-ITRF89@2015xETRF2014@2010', tx=0.02743, ty=0.03207, tz=-0.12033, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 180 transform2c: (4027893.7079, 307045.9391, 4919475.0605)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 181     Error2c: (0.026743934, 0.030857919, -0.094203577) max 0.0942, epoched 32.0\n    test 182 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 183     Error2v: (-0.000440726, -0.000576335, -0.00179728) max 0.001797\n\n    test 184 transform8/: name='-ITRF2000@1988xITRF88@2015-ITRF88@2015xETRF2014@2010', tx=0.02293, ty=-0.00033, tz=-0.14193, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 185 transform2c: (4027893.7034, 307045.9067, 4919475.0389)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 186     Error2c: (0.022243935, -0.001542081, -0.115803577) max 0.1158, epoched 32.0\n    test 187 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 188     Error2v: (-0.000440725, -0.000576335, -0.00179728) max 0.001797\n\n    test 189 transform0: name='ITRF2020@2015xETRF2020@2020', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=1.29251327e-08, ry=7.80016732e-08, rz=-1.13170058e-07, s=0.0, sx=0.002666, sy=0.016089, sz=-0.023343\n    test 190 transform2c: (4027893.9574, 307045.5561, 4919474.9643)\n    test 191     Error2c: (-0.000024276, -0.000021815, -0.000013824) max 2.428e-05, epoched 5.0\n    test 192 transform2v: (0.01350, -0.01676, -0.01001)\n\n    test 193 transform0: name='-ITRF2014@2015xETRF2020@2020', tx=-0.0014, ty=-0.0014, tz=0.0024, s1=1.0, rx=-1.29251327e-08, ry=-7.80016732e-08, rz=1.13170058e-07, s=-0.00042, sx=-0.002666, sy=-0.016089, sz=0.023343\n    test 194 transform2c: (4027893.5358, 307046.0740, 4919475.2748)\n    test 195     Error2c: (0.000032643, -0.000007101, 0.000047684) max 4.768e-05, epoched 5.0\n    test 196 transform2v: (-0.01350, 0.01666, 0.01021)\n\n    test 197 transform0: name='ITRF2014@2015xETRF2014@2020', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=1.27748405e-08, ry=7.980518e-08, rz=-1.15725026e-07, s=0.0, sx=0.002635, sy=0.016461, sz=-0.02387\n    test 198 transform2c: (4027893.9639, 307045.5450, 4919474.9573)\n    test 199     Error2c: (0.000032525, 0.000026405, -0.000024305) max 3.253e-05, epoched 5.0\n    test 200 transform2v: (0.01381, -0.01706, -0.01024)\n\n    test 201 transform0: name='-ITRF2000@2015xETRF2014@2020', tx=0.0017, ty=0.0022, tz=-0.0451, s1=1.0, rx=-1.27748405e-08, ry=-7.980518e-08, rz=1.15725026e-07, s=0.00322, sx=-0.002635, sy=-0.016461, sz=0.02387\n    test 202 transform2c: (4027893.5504, 307046.0772, 4919475.2456)  FAILED, KNOWN, expected (4027893.5505, 307046.0772, 4919475.2456)\n    test 203     Error2c: (-0.000062619, -0.000037673, -0.000034946) max 6.262e-05, epoched 5.0\n    test 204 transform2v: (-0.01371, 0.01716, 0.00834)\n\n    test 205 transform0: name='ITRF2000@2015xETRF2000@2020', tx=0.054, ty=0.051, tz=-0.048, s1=1.0, rx=1.21736715e-08, ry=7.36431982e-08, rz=-1.19031455e-07, s=0.0, sx=0.002511, sy=0.01519, sz=-0.024552\n    test 206 transform2c: (4027894.0033, 307045.5889, 4919474.9047)\n    test 207     Error2c: (0.000034031, -0.000034106, 0.000010915) max 3.411e-05, epoched 5.0\n    test 208 transform2v: (0.01287, -0.01740, -0.00945)\n\n    test 209 transform0*: name='-ITRF2014@2010xITRF89-ITRF89@1989xETRF89@2010@2018.8', tx=-0.03128, ty=-0.0311, tz=0.15984, s1=0.999999991, rx=-1.58921925e-08, ry=-8.23504519e-08, rz=1.00463091e-07, s=-0.009246, sx=-0.003278, sy=-0.016986, sz=0.020722\n    test 210 transform2c: (4160476.4154, 653193.0567, 4774604.9029)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 211     Error2c: (-0.069560351, 0.035713888, 0.122930501) max 0.1229, epoched 29.8\n    test 212 transform2v: (-0.01148, 0.01996, 0.01845)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 213     Error2v: (-0.015479395, 0.016963959, 0.014448874) max 0.01696\n\n    test 214 transform0*: name='-ITRF2014@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 215 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 216     Error2c: (-0.014174475, 0.037834952, 0.023962618) max 0.03783, epoched 3.8\n    test 217 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 218     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 219 transform1*: name='-ITRF2014@2010xITRF2008@2015-ITRF2008@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 220 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 221     Error2c: (-0.014174475, 0.037834952, 0.023962618) max 0.03783, epoched 8.8\n    test 222 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 223     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 224 transform2*: name='-ITRF2014@2010xITRF97@2015-ITRF97@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 225 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 226     Error2c: (-0.014174475, 0.037834952, 0.023962618) max 0.03783, epoched 8.8\n    test 227 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 228     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 229 transform3*: name='-ITRF2014@2010xITRF93@2015-ITRF93@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 230 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 231     Error2c: (-0.014174475, 0.037834952, 0.023962618) max 0.03783, epoched 8.8\n    test 232 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 233     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 234 transform4*: name='-ITRF2014@2010xITRF92@2015-ITRF92@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 235 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 236     Error2c: (-0.014174475, 0.037834952, 0.023962618) max 0.03783, epoched 8.8\n    test 237 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 238     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 239 transform5*: name='-ITRF2014@2010xITRF91@2015-ITRF91@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 240 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 241     Error2c: (-0.014174475, 0.037834952, 0.023962618) max 0.03783, epoched 8.8\n    test 242 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 243     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 244 transform6*: name='-ITRF2014@2010xITRF90@2015-ITRF90@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 245 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 246     Error2c: (-0.014174475, 0.037834952, 0.023962618) max 0.03783, epoched 8.8\n    test 247 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 248     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 249 transform7*: name='-ITRF2014@2010xITRF89@2015-ITRF89@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 250 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 251     Error2c: (-0.014174475, 0.037834952, 0.023962618) max 0.03783, epoched 8.8\n    test 252 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 253     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 254 transform8*: name='-ITRF2014@2010xITRF88@2015-ITRF88@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 255 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 256     Error2c: (-0.014174475, 0.037834952, 0.023962618) max 0.03783, epoched 8.8\n    test 257 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 258     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 259 toTransform: name='-ITRF2014@2010xITRF88@2015-ITRF88@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=1.0, rx=-1.1702e-08, ry=-7.0792e-08, rz=1.1442e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.023602\n    test 260 toTransform: name='-ITRF2014@2010xITRF88@2015-ITRF88@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=1.0, rx=-1.1702e-08, ry=-7.0792e-08, rz=1.1442e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.023602\n\n    test 261 Issue80: 48.77691577°N, 008.92257142°E, +476.05m\n    test 262 Issue80: 48.77692147°N, 008.92257868°E, +476.09m\n# imported pygeodesy.formy into latlonBase.py line 1503\n    test 263 Issue80: 48°46′36.915134″N, 008°55′21.285094″E, +476.10m  FAILED, KNOWN, expected 48°46′36.915134″N, 008°55′21.285094″E, +476.10\n    test 264 Issue80: 0.804  FAILED, KNOWN, expected 0.01\n    test 265 Issue80: [4160476.944064, 653192.600457, 4774604.455385]\n    test 266 Issue80: [4160476.415504, 653193.057171, 4774604.903316]\n    test 267 Issue80: [4160476.467901, 653193.103647, 4774604.868888]\n    test 268 Issue80: 48°46′36.915133″N, 008°55′21.285094″E, +476.10m\n\n    test 269 Issue80: 48.77692032°N, 008.92257804°E, +476.05m\n    test 270 Issue80: 48.77691971°N, 008.92257856°E, +476.06m\n    test 271 Issue80: 48°46′36.9315″N, 008°55′21.3089″E, +476.10m  FAILED, KNOWN, expected 48°46′36.9131″N, 008°55′21.28095″E, +476.05m\n    test 272 Issue80: 0.804  FAILED, KNOWN, expected 0.01\n    test 273 Issue80: [4160476.492633, 653193.021888, 4774604.78885]\n    test 274 Issue80: [4160476.54503, 653193.068365, 4774604.754422]\n    test 275 Issue80: [4160476.016469, 653193.525079, 4774605.202353]\n    test 276 Issue80: 48°46′36.9315″N, 008°55′21.3089″E, +476.10m\n\n    test 277 ITRF96@1997xNAD83: TRFXform(epoch=1997.0, name='ITRF96@1997xNAD83')\n    test 278 ITRF96@1997xNAD83: name='ITRF96@1997xNAD83', tx=0.991, ty=-0.19072, tz=-0.5129, s1=1.0, rx=1.2503e-07, ry=4.6785e-08, rz=5.6529e-08, s=0.0, sx=0.02579, sy=0.00965, sz=0.01166\n    test 279 ITRF96@1997xNAD83: name='ITRF96@1997xNAD83@2007', tx=0.991, ty=-0.19072, tz=-0.5129, s1=1.0, rx=1.2761e-07, ry=1.0797e-08, rz=5.4997e-08, s=0.0, sx=0.026322, sy=0.002227, sz=0.011344\n    test 280 ITRF96@1997xNAD83: rx=-2.5792e-10, ry=3.5988e-09, rz=1.532e-10\n\n    testTrf(pygeodesy.ellipsoidalVincenty, 25.05.26)\n    test 281 convertRefFrame: 51.47787826°N, 000.00147125°W, -0.00m  FAILED, KNOWN, expected 51.47787826°N, 000.00147125°W\n    test 282 copy(<class 'type'>): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 283 RefFrame.copy(): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 284 toLatLon: 50.7978°N, 004.3592°E, +148.96m\n    test 285 convertRefFrame: [3980574.395, -102.214, 4966829.941]\n    test 286 Nil: True\n    test 287 copy(<class 'type'>): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 288 RefFrame.copy(): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 289 Nil: True\n    test 290 reframe: True\n    test 291 Roundtrip: True\n    test 292 reframe: True\n    test 293 copy(<class 'type'>): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 294 RefFrame.copy(): (<class 'pygeodesy.trf.RefFrame'>, True)\n\n    test 295 Geodetic: 23°40′12.44582″S, 133°53′07.84795″E, +603.34m\n    test 296 Cartesian: [-4052051.7614, 4212836.1945, -2545106.0147]\n    test 297 Geodetic: 23°40′12.44582″S, 133°53′07.84795″E, +603.34m\n    test 298 Cartesian: [-4052051.7614, 4212836.1945, -2545106.0147]\n    test 299 Roundtrip: 23°40′12.41482″S, 133°53′07.86712″E, +603.26m\n    test 300 GNSStrans: [3370658.18892, 711877.42369, 5349787.1243]\n    test 301 Cartesian: [-734972.563, 4893188.492, 4011982.811]\n\n    test 302 EUREF EX1: [4027894.0444, 307045.6209, 4919474.8613]\n    test 303 transform0: ITRF2005@2015xETRF2020-ITRF91@2015xETRF2020@2007 max 1.1642e-10, epoched 8.0\n    test 304 transform1: ITRF2005@2015xETRF2014-ITRF91@2015xETRF2014@2007 max 0.048666, epoched 8.0\n    test 305 transform2: ITRF2005@2015xETRF2000-ITRF91@2015xETRF2000@2007 max 0.097331, epoched 8.0\n    test 306 transform3: ITRF2005@2000xITRF2000+ITRF2000@1988xITRF91@2000@2007 max 0.146, epoched 19.0\n    test 307 transform4: -ITRF2020@2015xITRF2005+ITRF2020@2015xITRF91@2007 max 0.19466, epoched 8.0\n    test 308 transform5: -ITRF2014@2010xITRF2005+ITRF2014@2010xITRF91@2007 max 0.24333, epoched 3.0\n    test 309 transform6: -ITRF2008@2005xITRF2005+ITRF2008@2000xITRF91@2005@2007 max 0.29199, epoched 7.0\n    test 310 transform7: ITRF2000@1988xITRF91+ITRF2005@2000xITRF2000@1988@2007 max 0.34066, epoched 31.0\n    test 311 transform8: ITRF2014@2010xITRF91-ITRF2014@2020xGDA2020@2010+ITRF2005@2020xGDA2020@2010@2007 max 0.98111, epoched 23.0\n    test 312 transform9: ITRF2008@2000xITRF91-ITRF2008@1994xGDA94@2000+ITRF2005@1994xGDA94@2000@2007 max 0.35972, epoched 19.0\n    test 313 transform10: ITRF2008@2000xITRF91-ITRF2008@1997xNAD83@2000+ITRF2005@1997xNAD83@2000@2007 max 0.40805, epoched 13.0\n    test 314 EUREF EX2: [4027894.0060, 307045.6000, 4919474.9100]\n    test 315 transform0: ITRF91@2015xETRF2020-ITRF2005@2015xETRF2020@2007 max 0.048666, epoched 8.0\n    test 316 transform1: ITRF91@2015xETRF2014-ITRF2005@2015xETRF2014@2007 max 2.3283e-10, epoched 8.0\n    test 317 transform2: ITRF91@2015xETRF2000-ITRF2005@2015xETRF2000@2007 max 0.048666, epoched 8.0\n    test 318 transform3: -ITRF2005@2000xITRF2000-ITRF2000@1988xITRF91@2000@2007 max 0.097331, epoched 19.0\n    test 319 EUREF EX4: [4027894.3559, 307045.2508, 4919474.6447]\n    test 320 transform0: -ITRF2000@2015xETRF2000@2012 max 4.5169e-08, epoched 3.0\n    test 321 transform1: -ITRF2000@1997xITRF97@2015-ITRF97@2015xETRF2000@2012 max 0.35826, epoched 21.0\n    test 322 transform2: -ITRF2000@1997xITRF96@2015-ITRF96@2015xETRF2000@2012 max 0.7048, epoched 21.0\n    test 323 transform3: -ITRF2000@1988xITRF93@2015-ITRF93@2015xETRF2000@2012 max 1.054, epoched 30.0\n    test 324 transform4: -ITRF2000@1988xITRF92@2015-ITRF92@2015xETRF2000@2012 max 1.4023, epoched 30.0\n    test 325 transform5: -ITRF2000@1988xITRF91@2015-ITRF91@2015xETRF2000@2012 max 1.7514, epoched 30.0\n    test 326 transform6: -ITRF2000@1988xITRF90@2015-ITRF90@2015xETRF2000@2012 max 2.1088, epoched 30.0\n    test 327 transform7: -ITRF2000@1988xITRF89@2015-ITRF89@2015xETRF2000@2012 max 2.4877, epoched 30.0\n    test 328 transform8: -ITRF2000@1988xITRF88@2015-ITRF88@2015xETRF2000@2012 max 2.8343, epoched 30.0\n    test 329 EUREF EX5: [4027893.6458, 307045.9470, 4919475.1937]  FAILED, KNOWN, expected [4027894.3662, 307045.2530, 4919474.6263]\n    test 330 transform0: ITRF2014@2015xETRF2000@2012 max 4.5635e-08, epoched 3.0\n    test 331 transform1: ITRF2014@2010xITRF2008@2015+ITRF2008@2015xETRF2000@2012 max 0.36023, epoched 8.0\n    test 332 transform2: ITRF2014@2010xITRF97@2015+ITRF97@2015xETRF2000@2012 max 0.72047, epoched 8.0\n    test 333 transform3: ITRF2014@2010xITRF93@2015+ITRF93@2015xETRF2000@2012 max 1.0807, epoched 8.0\n    test 334 transform4: ITRF2014@2010xITRF92@2015+ITRF92@2015xETRF2000@2012 max 1.4409, epoched 8.0\n    test 335 transform5: ITRF2014@2010xITRF91@2015+ITRF91@2015xETRF2000@2012 max 1.8012, epoched 8.0\n    test 336 transform6: ITRF2014@2010xITRF90@2015+ITRF90@2015xETRF2000@2012 max 2.1614, epoched 8.0\n    test 337 transform7: ITRF2014@2010xITRF89@2015+ITRF89@2015xETRF2000@2012 max 2.5216, epoched 8.0\n    test 338 transform8: ITRF2014@2010xITRF88@2015+ITRF88@2015xETRF2000@2012 max 2.8819, epoched 8.0\n\n    test 339 Case 1A: [4027893.9619, 307045.5481, 4919474.9553]\n    test 340 Case 1B: [4027894.0054, 307045.5938, 4919474.9083]\n    test 341 Case 2A: [4027893.9639, 307045.545, 4919474.9573]\n    test 342 Case 2B: [4027894.0033, 307045.5889, 4919474.9041]\n\n    test 343 TypeError: type(reframe) ('ITRF2000'): not a RefFrame\n    test 344 TRFError: epoch (1899): below 1900.0 limit\n    test 345 TypeError: type(reframe2) ('ITRF2000'): not a RefFrame\n    test 346 TRFError: no conversion: LatLon(00°00′00.0″N, 000°00′00.0″E).reframe MISSING\n    test 347 TypeError: type(reframe2) ('ITRF2000'): not a RefFrame\n    test 348 TypeError: type(reframe) ('ITRF2000'): not a RefFrame\n\n    test 349 ETRF89@1989: [4160476.944000, 653192.600000, 4774604.455000]\n    test 350 ITRF2014@2018.8: [4160476.415, 653193.057, 4774604.903]  FAILED, KNOWN, expected [4160476.485, 653193.021, 4774604.78]\n    test 351 TransformXform: -ITRF2014@2010xITRF89-ITRF89@1989xETRF89@2010@2018.8\n    test 352 Delta (m): [-0.06956, 0.035714, 0.122931]  FAILED, KNOWN, expected [0.01, 0.01, 0.01]\n    test 353 Error (m): 0.145692  FAILED, KNOWN, expected 0.01\n    test 354 Epoch range: 29.800  FAILED, KNOWN, expected 14.0\n    test 355 ETRF89@1989: [4160476.467836, 653193.103190, 4774604.868503]  FAILED, KNOWN, expected [4160476.944000, 653192.600000, 4774604.455000]\n    test 356 TransformXform: ITRF2014@2010xITRF89+ITRF89@1989xETRF89@2010@1989\n\n    test 357 inverse: -ITRF2014@2010xITRF89-ITRF89@1989xETRF89@2010@1989\n    test 358 inverse: ITRF2014@2010xITRF89+ITRF89@1989xETRF89@2010@1989\n    test 359 inverse: name='ITRF2014@2010xITRF89+ITRF89@1989xETRF89@2010@1989', tx=0.0283, ty=0.046, tz=-0.0615, s1=1.0, rx=0.0, ry=0.0, rz=-7.757e-10, s=0.00567, sx=0.0, sy=0.0, sz=-0.00016\n\n    test 360 ETRF2000@2000: [4160476.952000, 653192.582000, 4774604.441000]\n    test 361 ITRF2014@2018.8: [4160476.471, 653193.059, 4774604.804]  FAILED, KNOWN, expected [4160476.485, 653193.021, 4774604.78]\n    test 362 TransformXform: -ITRF2014@2015xETRF2000@2018.8\n    test 363 Delta (m): [-0.014174, 0.037835, 0.023963]  FAILED, KNOWN, expected [0.01, 0.01, 0.01]\n    test 364 Error (m): 0.046975  FAILED, KNOWN, expected 0.01\n    test 365 Epoch range: 18.800  FAILED, KNOWN, expected 14.0\n    test 366 ETRF2000@2000: [4160476.681125, 653192.914350, 4774604.647835]  FAILED, KNOWN, expected [4160476.952000, 653192.582000, 4774604.441000]\n    test 367 TransformXform: ITRF2014@2015xETRF2000@2000\n\n    test 368 inverse: -ITRF2014@2015xETRF2000@2000\n    test 369 inverse: ITRF2014@2015xETRF2000@2000\n    test 370 inverse: name='ITRF2014@2015xETRF2000@2000', tx=0.0537, ty=0.0512, tz=-0.0551, s1=1.0, rx=4.3197e-09, ry=2.6131e-08, rz=-4.2237e-08, s=0.00102, sx=0.000891, sy=0.00539, sz=-0.008712\n\n    test 371 ITRF2008@2005: [4160476.674000, 653192.806000, 4774604.648000]\n    test 372 ITRF2014@2018.8: [4160476.671, 653192.804, 4774604.645]  FAILED, KNOWN, expected [4160476.485, 653193.021, 4774604.78]\n    test 373 TransformXform: -ITRF2014@2010xITRF2008@2018.8\n    test 374 Delta (m): [0.186385, -0.217059, -0.134685]  FAILED, KNOWN, expected [0.01, 0.01, 0.01]\n    test 375 Error (m): 0.316218  FAILED, KNOWN, expected 0.01\n    test 376 Epoch range: 13.800  FAILED, KNOWN, expected 14.0\n    test 377 ITRF2008@2005: [4160476.672278, 653192.805730, 4774604.647403]  FAILED, KNOWN, expected [4160476.674000, 653192.806000, 4774604.648000]\n    test 378 TransformXform: ITRF2014@2010xITRF2008@2005\n\n    test 379 inverse: -ITRF2014@2010xITRF2008@2005\n    test 380 inverse: ITRF2014@2010xITRF2008@2005\n    test 381 inverse: name='ITRF2014@2010xITRF2008@2005', tx=0.0016, ty=0.0019, tz=0.0029, s1=1.0, rx=0.0, ry=0.0, rz=0.0, s=-0.00017, sx=0.0, sy=0.0, sz=0.0\n\n    test 382 toRefFrame1: ITRF2020@2015 2024.31 [0.0031474, 0.00210534, -0.00125667]\n    test 383 toRefFrame2: ITRF2014@2010 2024.32 [0.0031474, 0.00210634, -0.00125867]\n    test 384 transform0: -ITRF2020@2015xITRF2014@2010\n    test 385 transform0X: TRFXform(epoch=2010.0, name='-ITRF2020@2015xITRF2014@2010')\n    test 386 toRefFrame3: ITRF2020@2015 2010 [0.0031474, 0.00067434, 0.00160533]\n    test 387 transform2x: (4160476.488147, 653193.021674, 4774604.781605)\n    test 388 transform2v: (0.000, 0.000, 0.000)  FAILED, KNOWN, expected (0.004, 0.003, 0.004)\n\n    test 389 transform0: name='ITRF2020@2015xETRF2020@2010', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=8.75573508e-09, ry=5.28398431e-08, rz=-7.66635874e-08, s=0.0, sx=0.001806, sy=0.010899, sz=-0.015813\n    test 390 transform2c: (4027893.9585, 307045.5550, 4919474.9620)  FAILED, KNOWN, expected (4027893.9585, 307045.5550, 4919474.9619)\n    test 391     Error2c: (-0.000016463, 0.0000336, 0.000055143) max 5.514e-05, epoched 5.0\n    test 392 transform2v: (-0.00011, 0.00010, 0.00023)  FAILED, KNOWN, expected (0.00011, 0.00011, 0.00024)\n    test 393     Error2v: (-0.000220786, -0.000005544, -0.000006899) max 0.0002208\n    test 394 transform0v: (0.00009, 0.00052, -0.00075)  FAILED, KNOWN, expected (0.00011, 0.00011, 0.00024)\n    test 395     Error0v: (-0.000024, 0.000409, -0.000993) max 0.000993\n\n    test 396 transform0: name='-ITRF2014@2015xETRF2020@2010', tx=-0.0014, ty=-0.0004, tz=0.0004, s1=1.0, rx=-8.75573508e-09, ry=-5.28398431e-08, rz=7.66635874e-08, s=-0.00042, sx=-0.001806, sy=-0.010899, sz=0.015813\n    test 397 transform2c: (4027893.6719, 307045.9063, 4919475.1704)  FAILED, KNOWN, expected (4027893.6719, 307045.9064, 4919475.1704)\n    test 398     Error2c: (0.000024786, -0.000062539, -0.000021305) max 6.254e-05, epoched 5.0\n    test 399 transform2v: (-0.01339, 0.01677, 0.01045)  FAILED, KNOWN, expected (-0.01361, 0.01676, 0.01044)\n    test 400     Error2v: (0.000220784, 0.000005543, 0.000006898) max 0.0002208\n    test 401 transform0v: (-0.00009, -0.00052, 0.00075)  FAILED, KNOWN, expected (-0.01361, 0.01676, 0.01044)\n    test 402     Error0v: (0.013524, -0.017279, -0.009687) max 0.01728\n\n    test 403 transform0: name='ITRF2014@2015xETRF2014@2010', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=8.65392421e-09, ry=5.40615736e-08, rz=-7.83943722e-08, s=0.0, sx=0.001785, sy=0.011151, sz=-0.01617\n    test 404 transform2c: (4027893.9619, 307045.5481, 4919474.9553)  FAILED, KNOWN, expected (4027893.9620, 307045.5480, 4919474.9553)\n    test 405     Error2c: (-0.00007476, 0.000063039, 0.000002882) max 7.476e-05, epoched 5.0\n    test 406 transform2v: (0.00020, -0.00030, 0.00020)\n    test 407     Error2v: (0.000000724, -0.000003666, -0.000002721) max 3.666e-06\n    test 408 transform0v: (0.00009, 0.00053, -0.00077)  FAILED, KNOWN, expected (0.00020, -0.00030, 0.00020)\n    test 409     Error0v: (-0.000115, 0.000831, -0.00097) max 0.00097\n\n    test 410 transform0: name='-ITRF2000@2015xETRF2014@2010', tx=0.0007, ty=0.0012, tz=-0.0261, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 411 transform2c: (4027893.6812, 307045.9082, 4919475.1547)\n    test 412     Error2c: (0.000013934, -0.000012081, 0.000026423) max 2.642e-05, epoched 5.0\n    test 413 transform2v: (-0.01351, 0.01686, 0.00854)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 414     Error2v: (-0.000440726, -0.000036335, -0.00053728) max 0.0005373\n    test 415 transform0v: (-0.00008, -0.00053, 0.00077)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 416     Error0v: (0.012985, -0.017431, -0.00831) max 0.01743\n\n    test 417 transform0: name='ITRF2000@2015xETRF2000@2010', tx=0.054, ty=0.051, tz=-0.048, s1=1.0, rx=8.24668072e-09, ry=4.98873278e-08, rz=-8.06342114e-08, s=0.0, sx=0.001701, sy=0.01029, sz=-0.016632\n    test 418 transform2c: (4027894.0054, 307045.5938, 4919474.9083)  FAILED, KNOWN, expected (4027894.0053, 307045.5939, 4919474.9083)\n    test 419     Error2c: (0.000077874, -0.000055372, -0.000008743) max 7.787e-05, epoched 5.0\n    test 420 transform2v: (-0.00020, -0.00050, -0.00037)  FAILED, KNOWN, expected (-0.00020, -0.00050, -0.00036)\n    test 421     Error2v: (-0.000004389, 0.000002124, -0.000008036) max 8.036e-06\n    test 422 transform0v: (0.00008, 0.00049, -0.00079)  FAILED, KNOWN, expected (-0.00020, -0.00050, -0.00036)\n    test 423     Error0v: (0.000281, 0.00099, -0.000432) max 0.00099\n\n    test 424 transform0/: name='-ITRF2000@2015xETRF2014@2010', tx=0.0007, ty=0.0012, tz=-0.0261, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 425 transform2c: (4027893.6812, 307045.9082, 4919475.1547)\n    test 426     Error2c: (0.000013934, -0.000012081, 0.000026423) max 2.642e-05, epoched 5.0\n    test 427 transform2v: (-0.01351, 0.01686, 0.00854)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 428     Error2v: (-0.000440726, -0.000036335, -0.00053728) max 0.0005373\n\n    test 429 transform1/: name='-ITRF2000@1997xITRF97@2015-ITRF97@2015xETRF2014@2010', tx=0.00673, ty=-0.00033, tz=-0.05913, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=8.09154034e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01669\n    test 430 transform2c: (4027893.6865, 307045.9168, 4919475.1217)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 431     Error2c: (0.005269863, 0.008612365, -0.033003577) max 0.033, epoched 23.0\n    test 432 transform2v: (-0.01357, 0.01710, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 433     Error2v: (-0.00050027, 0.000204776, -0.00179728) max 0.001797\n\n    test 434 transform2/: name='-ITRF2000@1997xITRF96@2015-ITRF96@2015xETRF2014@2010', tx=0.00673, ty=-0.00033, tz=-0.05913, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 435 transform2c: (4027893.6872, 307045.9067, 4919475.1217)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 436     Error2c: (0.006043935, -0.001542081, -0.033003577) max 0.033, epoched 23.0\n    test 437 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 438     Error2v: (-0.000440726, -0.000576335, -0.00179728) max 0.001797\n\n    test 439 transform3/: name='-ITRF2000@1988xITRF93@2015-ITRF93@2015xETRF2014@2010', tx=0.0007, ty=0.0012, tz=-0.0261, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 440 transform2c: (4027893.6812, 307045.9082, 4919475.1547)\n    test 441     Error2c: (0.000013934, -0.000012081, 0.000026423) max 2.642e-05, epoched 32.0\n    test 442 transform2v: (-0.01351, 0.01686, 0.00854)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 443     Error2v: (-0.000440726, -0.000036335, -0.00053728) max 0.0005373\n./test/testTrf.py:29: DeprecationWarning: method L{convertRefFrame<pygeodesy.ellipsoidalKarney.LatLon.convertRefFrame>} has been DEPRECATED, use method L{toRefFrame}.\n  x = p.convertRefFrame(RefFrames.ETRF2000)\n./test/testTrf.py:136: DeprecationWarning: method L{convertRefFrame<pygeodesy.ellipsoidalKarney.LatLon.convertRefFrame>} has been DEPRECATED, use method L{toRefFrame}.\n  t = LatLon(0, 0, reframe=RefFrames.ITRF2000).convertRefFrame('ITRF2000')\n\n    test 444 transform4/: name='-ITRF2000@1988xITRF92@2015-ITRF92@2015xETRF2014@2010', tx=0.01393, ty=0.00147, tz=-0.06633, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 445 transform2c: (4027893.6944, 307045.9085, 4919475.1145)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 446     Error2c: (0.013243935, 0.000257919, -0.040203577) max 0.0402, epoched 32.0\n    test 447 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 448     Error2v: (-0.000440726, -0.000576335, -0.00179728) max 0.001797\n\n    test 449 transform5/: name='-ITRF2000@1988xITRF91@2015-ITRF91@2015xETRF2014@2010', tx=0.0007, ty=0.0012, tz=-0.0261, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 450 transform2c: (4027893.6812, 307045.9082, 4919475.1547)\n    test 451     Error2c: (0.000013934, -0.000012081, 0.000026423) max 2.642e-05, epoched 32.0\n    test 452 transform2v: (-0.01351, 0.01686, 0.00854)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 453     Error2v: (-0.000440726, -0.000036335, -0.00053728) max 0.0005373\n\n    test 454 transform6/: name='-ITRF2000@1988xITRF90@2015-ITRF90@2015xETRF2014@2010', tx=0.02293, ty=0.01047, tz=-0.08613, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 455 transform2c: (4027893.7034, 307045.9175, 4919475.0947)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 456     Error2c: (0.022243935, 0.009257919, -0.060003577) max 0.06, epoched 32.0\n    test 457 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 458     Error2v: (-0.000440726, -0.000576335, -0.00179728) max 0.001797\n\n    test 459 transform7/: name='-ITRF2000@1988xITRF89@2015-ITRF89@2015xETRF2014@2010', tx=0.02743, ty=0.03207, tz=-0.12033, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 460 transform2c: (4027893.7079, 307045.9391, 4919475.0605)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 461     Error2c: (0.026743934, 0.030857919, -0.094203577) max 0.0942, epoched 32.0\n    test 462 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 463     Error2v: (-0.000440726, -0.000576335, -0.00179728) max 0.001797\n\n    test 464 transform8/: name='-ITRF2000@1988xITRF88@2015-ITRF88@2015xETRF2014@2010', tx=0.02293, ty=-0.00033, tz=-0.14193, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 465 transform2c: (4027893.7034, 307045.9067, 4919475.0389)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 466     Error2c: (0.022243935, -0.001542081, -0.115803577) max 0.1158, epoched 32.0\n    test 467 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 468     Error2v: (-0.000440725, -0.000576335, -0.00179728) max 0.001797\n\n    test 469 transform0: name='ITRF2020@2015xETRF2020@2020', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=1.29251327e-08, ry=7.80016732e-08, rz=-1.13170058e-07, s=0.0, sx=0.002666, sy=0.016089, sz=-0.023343\n    test 470 transform2c: (4027893.9574, 307045.5561, 4919474.9643)\n    test 471     Error2c: (-0.000024276, -0.000021815, -0.000013824) max 2.428e-05, epoched 5.0\n    test 472 transform2v: (0.01350, -0.01676, -0.01001)\n\n    test 473 transform0: name='-ITRF2014@2015xETRF2020@2020', tx=-0.0014, ty=-0.0014, tz=0.0024, s1=1.0, rx=-1.29251327e-08, ry=-7.80016732e-08, rz=1.13170058e-07, s=-0.00042, sx=-0.002666, sy=-0.016089, sz=0.023343\n    test 474 transform2c: (4027893.5358, 307046.0740, 4919475.2748)\n    test 475     Error2c: (0.000032643, -0.000007101, 0.000047684) max 4.768e-05, epoched 5.0\n    test 476 transform2v: (-0.01350, 0.01666, 0.01021)\n\n    test 477 transform0: name='ITRF2014@2015xETRF2014@2020', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=1.27748405e-08, ry=7.980518e-08, rz=-1.15725026e-07, s=0.0, sx=0.002635, sy=0.016461, sz=-0.02387\n    test 478 transform2c: (4027893.9639, 307045.5450, 4919474.9573)\n    test 479     Error2c: (0.000032525, 0.000026405, -0.000024305) max 3.253e-05, epoched 5.0\n    test 480 transform2v: (0.01381, -0.01706, -0.01024)\n\n    test 481 transform0: name='-ITRF2000@2015xETRF2014@2020', tx=0.0017, ty=0.0022, tz=-0.0451, s1=1.0, rx=-1.27748405e-08, ry=-7.980518e-08, rz=1.15725026e-07, s=0.00322, sx=-0.002635, sy=-0.016461, sz=0.02387\n    test 482 transform2c: (4027893.5504, 307046.0772, 4919475.2456)  FAILED, KNOWN, expected (4027893.5505, 307046.0772, 4919475.2456)\n    test 483     Error2c: (-0.000062619, -0.000037673, -0.000034946) max 6.262e-05, epoched 5.0\n    test 484 transform2v: (-0.01371, 0.01716, 0.00834)\n\n    test 485 transform0: name='ITRF2000@2015xETRF2000@2020', tx=0.054, ty=0.051, tz=-0.048, s1=1.0, rx=1.21736715e-08, ry=7.36431982e-08, rz=-1.19031455e-07, s=0.0, sx=0.002511, sy=0.01519, sz=-0.024552\n    test 486 transform2c: (4027894.0033, 307045.5889, 4919474.9047)\n    test 487     Error2c: (0.000034031, -0.000034106, 0.000010915) max 3.411e-05, epoched 5.0\n    test 488 transform2v: (0.01287, -0.01740, -0.00945)\n\n    test 489 transform0*: name='-ITRF2014@2010xITRF89-ITRF89@1989xETRF89@2010@2018.8', tx=-0.03128, ty=-0.0311, tz=0.15984, s1=0.999999991, rx=-1.58921925e-08, ry=-8.23504519e-08, rz=1.00463091e-07, s=-0.009246, sx=-0.003278, sy=-0.016986, sz=0.020722\n    test 490 transform2c: (4160476.4154, 653193.0567, 4774604.9029)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 491     Error2c: (-0.069560351, 0.035713888, 0.122930501) max 0.1229, epoched 29.8\n    test 492 transform2v: (-0.01148, 0.01996, 0.01845)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 493     Error2v: (-0.015479395, 0.016963959, 0.014448874) max 0.01696\n\n    test 494 transform0*: name='-ITRF2014@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 495 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 496     Error2c: (-0.014174475, 0.037834952, 0.023962618) max 0.03783, epoched 3.8\n    test 497 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 498     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 499 transform1*: name='-ITRF2014@2010xITRF2008@2015-ITRF2008@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 500 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 501     Error2c: (-0.014174475, 0.037834952, 0.023962618) max 0.03783, epoched 8.8\n    test 502 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 503     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 504 transform2*: name='-ITRF2014@2010xITRF97@2015-ITRF97@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 505 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 506     Error2c: (-0.014174475, 0.037834952, 0.023962618) max 0.03783, epoched 8.8\n    test 507 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 508     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 509 transform3*: name='-ITRF2014@2010xITRF93@2015-ITRF93@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 510 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 511     Error2c: (-0.014174475, 0.037834952, 0.023962618) max 0.03783, epoched 8.8\n    test 512 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 513     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 514 transform4*: name='-ITRF2014@2010xITRF92@2015-ITRF92@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 515 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 516     Error2c: (-0.014174475, 0.037834952, 0.023962618) max 0.03783, epoched 8.8\n    test 517 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 518     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 519 transform5*: name='-ITRF2014@2010xITRF91@2015-ITRF91@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 520 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 521     Error2c: (-0.014174475, 0.037834952, 0.023962618) max 0.03783, epoched 8.8\n    test 522 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 523     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 524 transform6*: name='-ITRF2014@2010xITRF90@2015-ITRF90@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 525 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 526     Error2c: (-0.014174475, 0.037834952, 0.023962618) max 0.03783, epoched 8.8\n    test 527 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 528     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 529 transform7*: name='-ITRF2014@2010xITRF89@2015-ITRF89@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 530 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 531     Error2c: (-0.014174475, 0.037834952, 0.023962618) max 0.03783, epoched 8.8\n    test 532 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 533     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 534 transform8*: name='-ITRF2014@2010xITRF88@2015-ITRF88@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 535 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 536     Error2c: (-0.014174475, 0.037834952, 0.023962618) max 0.03783, epoched 8.8\n    test 537 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 538     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 539 toTransform: name='-ITRF2014@2010xITRF88@2015-ITRF88@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=1.0, rx=-1.1702e-08, ry=-7.0792e-08, rz=1.1442e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.023602\n    test 540 toTransform: name='-ITRF2014@2010xITRF88@2015-ITRF88@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=1.0, rx=-1.1702e-08, ry=-7.0792e-08, rz=1.1442e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.023602\n\n    test 541 Issue80: 48.77691577°N, 008.92257142°E, +476.05m\n    test 542 Issue80: 48.77692147°N, 008.92257868°E, +476.09m\n    test 543 Issue80: 48°46′36.915134″N, 008°55′21.285094″E, +476.10m  FAILED, KNOWN, expected 48°46′36.915134″N, 008°55′21.285094″E, +476.10\n    test 544 Issue80: 0.804  FAILED, KNOWN, expected 0.01\n    test 545 Issue80: [4160476.944064, 653192.600457, 4774604.455385]\n    test 546 Issue80: [4160476.415504, 653193.057171, 4774604.903316]\n    test 547 Issue80: [4160476.467901, 653193.103647, 4774604.868888]\n    test 548 Issue80: 48°46′36.915133″N, 008°55′21.285094″E, +476.10m\n\n    test 549 Issue80: 48.77692032°N, 008.92257804°E, +476.05m\n    test 550 Issue80: 48.77691971°N, 008.92257856°E, +476.06m\n    test 551 Issue80: 48°46′36.9315″N, 008°55′21.3089″E, +476.10m  FAILED, KNOWN, expected 48°46′36.9131″N, 008°55′21.28095″E, +476.05m\n    test 552 Issue80: 0.804  FAILED, KNOWN, expected 0.01\n    test 553 Issue80: [4160476.492633, 653193.021888, 4774604.78885]\n    test 554 Issue80: [4160476.54503, 653193.068365, 4774604.754422]\n    test 555 Issue80: [4160476.016469, 653193.525079, 4774605.202353]\n    test 556 Issue80: 48°46′36.9315″N, 008°55′21.3089″E, +476.10m\n\n    test 557 ITRF96@1997xNAD83: TRFXform(epoch=1997.0, name='ITRF96@1997xNAD83')\n    test 558 ITRF96@1997xNAD83: name='ITRF96@1997xNAD83', tx=0.991, ty=-0.19072, tz=-0.5129, s1=1.0, rx=1.2503e-07, ry=4.6785e-08, rz=5.6529e-08, s=0.0, sx=0.02579, sy=0.00965, sz=0.01166\n    test 559 ITRF96@1997xNAD83: name='ITRF96@1997xNAD83@2007', tx=0.991, ty=-0.19072, tz=-0.5129, s1=1.0, rx=1.2761e-07, ry=1.0797e-08, rz=5.4997e-08, s=0.0, sx=0.026322, sy=0.002227, sz=0.011344\n    test 560 ITRF96@1997xNAD83: rx=-2.5792e-10, ry=3.5988e-09, rz=1.532e-10\n\n    testTrf(pygeodesy.ellipsoidalKarney, 25.05.27)\n    test 561 convertRefFrame: 51.47787826°N, 000.00147125°W, -0.00m  FAILED, KNOWN, expected 51.47787826°N, 000.00147125°W\n    test 562 copy(<class 'type'>): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 563 RefFrame.copy(): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 564 toLatLon: 50.7978°N, 004.3592°E, +148.96m\n    test 565 convertRefFrame: [3980574.395, -102.214, 4966829.941]\n    test 566 Nil: True\n    test 567 copy(<class 'type'>): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 568 RefFrame.copy(): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 569 Nil: True\n    test 570 reframe: True\n    test 571 Roundtrip: True\n    test 572 reframe: True\n    test 573 copy(<class 'type'>): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 574 RefFrame.copy(): (<class 'pygeodesy.trf.RefFrame'>, True)\n\n    test 575 Geodetic: 23°40′12.44582″S, 133°53′07.84795″E, +603.34m\n    test 576 Cartesian: [-4052051.7614, 4212836.1945, -2545106.0147]\n    test 577 Geodetic: 23°40′12.44582″S, 133°53′07.84795″E, +603.34m\n    test 578 Cartesian: [-4052051.7614, 4212836.1945, -2545106.0147]\n    test 579 Roundtrip: 23°40′12.41482″S, 133°53′07.86712″E, +603.26m\n    test 580 GNSStrans: [3370658.18892, 711877.42369, 5349787.1243]\n    test 581 Cartesian: [-734972.563, 4893188.492, 4011982.811]\n\n    test 582 EUREF EX1: [4027894.0444, 307045.6209, 4919474.8613]\n    test 583 transform0: ITRF2005@2015xETRF2020-ITRF91@2015xETRF2020@2007 max 1.1642e-10, epoched 8.0\n    test 584 transform1: ITRF2005@2015xETRF2014-ITRF91@2015xETRF2014@2007 max 0.048666, epoched 8.0\n    test 585 transform2: ITRF2005@2015xETRF2000-ITRF91@2015xETRF2000@2007 max 0.097331, epoched 8.0\n    test 586 transform3: ITRF2005@2000xITRF2000+ITRF2000@1988xITRF91@2000@2007 max 0.146, epoched 19.0\n    test 587 transform4: -ITRF2020@2015xITRF2005+ITRF2020@2015xITRF91@2007 max 0.19466, epoched 8.0\n    test 588 transform5: -ITRF2014@2010xITRF2005+ITRF2014@2010xITRF91@2007 max 0.24333, epoched 3.0\n    test 589 transform6: -ITRF2008@2005xITRF2005+ITRF2008@2000xITRF91@2005@2007 max 0.29199, epoched 7.0\n    test 590 transform7: ITRF2000@1988xITRF91+ITRF2005@2000xITRF2000@1988@2007 max 0.34066, epoched 31.0\n    test 591 transform8: ITRF2014@2010xITRF91-ITRF2014@2020xGDA2020@2010+ITRF2005@2020xGDA2020@2010@2007 max 0.98111, epoched 23.0\n    test 592 transform9: ITRF2008@2000xITRF91-ITRF2008@1994xGDA94@2000+ITRF2005@1994xGDA94@2000@2007 max 0.35972, epoched 19.0\n    test 593 transform10: ITRF2008@2000xITRF91-ITRF2008@1997xNAD83@2000+ITRF2005@1997xNAD83@2000@2007 max 0.40805, epoched 13.0\n    test 594 EUREF EX2: [4027894.0060, 307045.6000, 4919474.9100]\n    test 595 transform0: ITRF91@2015xETRF2020-ITRF2005@2015xETRF2020@2007 max 0.048666, epoched 8.0\n    test 596 transform1: ITRF91@2015xETRF2014-ITRF2005@2015xETRF2014@2007 max 2.3283e-10, epoched 8.0\n    test 597 transform2: ITRF91@2015xETRF2000-ITRF2005@2015xETRF2000@2007 max 0.048666, epoched 8.0\n    test 598 transform3: -ITRF2005@2000xITRF2000-ITRF2000@1988xITRF91@2000@2007 max 0.097331, epoched 19.0\n    test 599 EUREF EX4: [4027894.3559, 307045.2508, 4919474.6447]\n    test 600 transform0: -ITRF2000@2015xETRF2000@2012 max 4.5169e-08, epoched 3.0\n    test 601 transform1: -ITRF2000@1997xITRF97@2015-ITRF97@2015xETRF2000@2012 max 0.35826, epoched 21.0\n    test 602 transform2: -ITRF2000@1997xITRF96@2015-ITRF96@2015xETRF2000@2012 max 0.7048, epoched 21.0\n    test 603 transform3: -ITRF2000@1988xITRF93@2015-ITRF93@2015xETRF2000@2012 max 1.054, epoched 30.0\n    test 604 transform4: -ITRF2000@1988xITRF92@2015-ITRF92@2015xETRF2000@2012 max 1.4023, epoched 30.0\n    test 605 transform5: -ITRF2000@1988xITRF91@2015-ITRF91@2015xETRF2000@2012 max 1.7514, epoched 30.0\n    test 606 transform6: -ITRF2000@1988xITRF90@2015-ITRF90@2015xETRF2000@2012 max 2.1088, epoched 30.0\n    test 607 transform7: -ITRF2000@1988xITRF89@2015-ITRF89@2015xETRF2000@2012 max 2.4877, epoched 30.0\n    test 608 transform8: -ITRF2000@1988xITRF88@2015-ITRF88@2015xETRF2000@2012 max 2.8343, epoched 30.0\n    test 609 EUREF EX5: [4027893.6458, 307045.9470, 4919475.1937]  FAILED, KNOWN, expected [4027894.3662, 307045.2530, 4919474.6263]\n    test 610 transform0: ITRF2014@2015xETRF2000@2012 max 4.5635e-08, epoched 3.0\n    test 611 transform1: ITRF2014@2010xITRF2008@2015+ITRF2008@2015xETRF2000@2012 max 0.36023, epoched 8.0\n    test 612 transform2: ITRF2014@2010xITRF97@2015+ITRF97@2015xETRF2000@2012 max 0.72047, epoched 8.0\n    test 613 transform3: ITRF2014@2010xITRF93@2015+ITRF93@2015xETRF2000@2012 max 1.0807, epoched 8.0\n    test 614 transform4: ITRF2014@2010xITRF92@2015+ITRF92@2015xETRF2000@2012 max 1.4409, epoched 8.0\n    test 615 transform5: ITRF2014@2010xITRF91@2015+ITRF91@2015xETRF2000@2012 max 1.8012, epoched 8.0\n    test 616 transform6: ITRF2014@2010xITRF90@2015+ITRF90@2015xETRF2000@2012 max 2.1614, epoched 8.0\n    test 617 transform7: ITRF2014@2010xITRF89@2015+ITRF89@2015xETRF2000@2012 max 2.5216, epoched 8.0\n    test 618 transform8: ITRF2014@2010xITRF88@2015+ITRF88@2015xETRF2000@2012 max 2.8819, epoched 8.0\n\n    test 619 Case 1A: [4027893.9619, 307045.5481, 4919474.9553]\n    test 620 Case 1B: [4027894.0054, 307045.5938, 4919474.9083]\n    test 621 Case 2A: [4027893.9639, 307045.545, 4919474.9573]\n    test 622 Case 2B: [4027894.0033, 307045.5889, 4919474.9041]\n\n    test 623 TypeError: type(reframe) ('ITRF2000'): not a RefFrame\n    test 624 TRFError: epoch (1899): below 1900.0 limit\n    test 625 TypeError: type(reframe2) ('ITRF2000'): not a RefFrame\n    test 626 TRFError: no conversion: LatLon(00°00′00.0″N, 000°00′00.0″E).reframe MISSING\n    test 627 TypeError: type(reframe2) ('ITRF2000'): not a RefFrame\n    test 628 TypeError: type(reframe) ('ITRF2000'): not a RefFrame\n\n    test 629 ETRF89@1989: [4160476.944000, 653192.600000, 4774604.455000]\n    test 630 ITRF2014@2018.8: [4160476.415, 653193.057, 4774604.903]  FAILED, KNOWN, expected [4160476.485, 653193.021, 4774604.78]\n    test 631 TransformXform: -ITRF2014@2010xITRF89-ITRF89@1989xETRF89@2010@2018.8\n    test 632 Delta (m): [-0.06956, 0.035714, 0.122931]  FAILED, KNOWN, expected [0.01, 0.01, 0.01]\n    test 633 Error (m): 0.145692  FAILED, KNOWN, expected 0.01\n    test 634 Epoch range: 29.800  FAILED, KNOWN, expected 14.0\n    test 635 ETRF89@1989: [4160476.467836, 653193.103190, 4774604.868503]  FAILED, KNOWN, expected [4160476.944000, 653192.600000, 4774604.455000]\n    test 636 TransformXform: ITRF2014@2010xITRF89+ITRF89@1989xETRF89@2010@1989\n\n    test 637 inverse: -ITRF2014@2010xITRF89-ITRF89@1989xETRF89@2010@1989\n    test 638 inverse: ITRF2014@2010xITRF89+ITRF89@1989xETRF89@2010@1989\n    test 639 inverse: name='ITRF2014@2010xITRF89+ITRF89@1989xETRF89@2010@1989', tx=0.0283, ty=0.046, tz=-0.0615, s1=1.0, rx=0.0, ry=0.0, rz=-7.757e-10, s=0.00567, sx=0.0, sy=0.0, sz=-0.00016\n\n    test 640 ETRF2000@2000: [4160476.952000, 653192.582000, 4774604.441000]\n    test 641 ITRF2014@2018.8: [4160476.471, 653193.059, 4774604.804]  FAILED, KNOWN, expected [4160476.485, 653193.021, 4774604.78]\n    test 642 TransformXform: -ITRF2014@2015xETRF2000@2018.8\n    test 643 Delta (m): [-0.014174, 0.037835, 0.023963]  FAILED, KNOWN, expected [0.01, 0.01, 0.01]\n    test 644 Error (m): 0.046975  FAILED, KNOWN, expected 0.01\n    test 645 Epoch range: 18.800  FAILED, KNOWN, expected 14.0\n    test 646 ETRF2000@2000: [4160476.681125, 653192.914350, 4774604.647835]  FAILED, KNOWN, expected [4160476.952000, 653192.582000, 4774604.441000]\n    test 647 TransformXform: ITRF2014@2015xETRF2000@2000\n\n    test 648 inverse: -ITRF2014@2015xETRF2000@2000\n    test 649 inverse: ITRF2014@2015xETRF2000@2000\n    test 650 inverse: name='ITRF2014@2015xETRF2000@2000', tx=0.0537, ty=0.0512, tz=-0.0551, s1=1.0, rx=4.3197e-09, ry=2.6131e-08, rz=-4.2237e-08, s=0.00102, sx=0.000891, sy=0.00539, sz=-0.008712\n\n    test 651 ITRF2008@2005: [4160476.674000, 653192.806000, 4774604.648000]\n    test 652 ITRF2014@2018.8: [4160476.671, 653192.804, 4774604.645]  FAILED, KNOWN, expected [4160476.485, 653193.021, 4774604.78]\n    test 653 TransformXform: -ITRF2014@2010xITRF2008@2018.8\n    test 654 Delta (m): [0.186385, -0.217059, -0.134685]  FAILED, KNOWN, expected [0.01, 0.01, 0.01]\n    test 655 Error (m): 0.316218  FAILED, KNOWN, expected 0.01\n    test 656 Epoch range: 13.800  FAILED, KNOWN, expected 14.0\n    test 657 ITRF2008@2005: [4160476.672278, 653192.805730, 4774604.647403]  FAILED, KNOWN, expected [4160476.674000, 653192.806000, 4774604.648000]\n    test 658 TransformXform: ITRF2014@2010xITRF2008@2005\n\n    test 659 inverse: -ITRF2014@2010xITRF2008@2005\n    test 660 inverse: ITRF2014@2010xITRF2008@2005\n    test 661 inverse: name='ITRF2014@2010xITRF2008@2005', tx=0.0016, ty=0.0019, tz=0.0029, s1=1.0, rx=0.0, ry=0.0, rz=0.0, s=-0.00017, sx=0.0, sy=0.0, sz=0.0\n\n    test 662 toRefFrame1: ITRF2020@2015 2024.31 [0.0031474, 0.00210534, -0.00125667]\n    test 663 toRefFrame2: ITRF2014@2010 2024.32 [0.0031474, 0.00210634, -0.00125867]\n    test 664 transform0: -ITRF2020@2015xITRF2014@2010\n    test 665 transform0X: TRFXform(epoch=2010.0, name='-ITRF2020@2015xITRF2014@2010')\n    test 666 toRefFrame3: ITRF2020@2015 2010 [0.0031474, 0.00067434, 0.00160533]\n    test 667 transform2x: (4160476.488147, 653193.021674, 4774604.781605)\n    test 668 transform2v: (0.000, 0.000, 0.000)  FAILED, KNOWN, expected (0.004, 0.003, 0.004)\n\n    test 669 transform0: name='ITRF2020@2015xETRF2020@2010', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=8.75573508e-09, ry=5.28398431e-08, rz=-7.66635874e-08, s=0.0, sx=0.001806, sy=0.010899, sz=-0.015813\n    test 670 transform2c: (4027893.9585, 307045.5550, 4919474.9620)  FAILED, KNOWN, expected (4027893.9585, 307045.5550, 4919474.9619)\n    test 671     Error2c: (-0.000016463, 0.0000336, 0.000055143) max 5.514e-05, epoched 5.0\n    test 672 transform2v: (-0.00011, 0.00010, 0.00023)  FAILED, KNOWN, expected (0.00011, 0.00011, 0.00024)\n    test 673     Error2v: (-0.000220786, -0.000005544, -0.000006899) max 0.0002208\n    test 674 transform0v: (0.00009, 0.00052, -0.00075)  FAILED, KNOWN, expected (0.00011, 0.00011, 0.00024)\n    test 675     Error0v: (-0.000024, 0.000409, -0.000993) max 0.000993\n\n    test 676 transform0: name='-ITRF2014@2015xETRF2020@2010', tx=-0.0014, ty=-0.0004, tz=0.0004, s1=1.0, rx=-8.75573508e-09, ry=-5.28398431e-08, rz=7.66635874e-08, s=-0.00042, sx=-0.001806, sy=-0.010899, sz=0.015813\n    test 677 transform2c: (4027893.6719, 307045.9063, 4919475.1704)  FAILED, KNOWN, expected (4027893.6719, 307045.9064, 4919475.1704)\n    test 678     Error2c: (0.000024786, -0.000062539, -0.000021305) max 6.254e-05, epoched 5.0\n    test 679 transform2v: (-0.01339, 0.01677, 0.01045)  FAILED, KNOWN, expected (-0.01361, 0.01676, 0.01044)\n    test 680     Error2v: (0.000220784, 0.000005543, 0.000006898) max 0.0002208\n    test 681 transform0v: (-0.00009, -0.00052, 0.00075)  FAILED, KNOWN, expected (-0.01361, 0.01676, 0.01044)\n    test 682     Error0v: (0.013524, -0.017279, -0.009687) max 0.01728\n\n    test 683 transform0: name='ITRF2014@2015xETRF2014@2010', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=8.65392421e-09, ry=5.40615736e-08, rz=-7.83943722e-08, s=0.0, sx=0.001785, sy=0.011151, sz=-0.01617\n    test 684 transform2c: (4027893.9619, 307045.5481, 4919474.9553)  FAILED, KNOWN, expected (4027893.9620, 307045.5480, 4919474.9553)\n    test 685     Error2c: (-0.00007476, 0.000063039, 0.000002882) max 7.476e-05, epoched 5.0\n    test 686 transform2v: (0.00020, -0.00030, 0.00020)\n    test 687     Error2v: (0.000000724, -0.000003666, -0.000002721) max 3.666e-06\n    test 688 transform0v: (0.00009, 0.00053, -0.00077)  FAILED, KNOWN, expected (0.00020, -0.00030, 0.00020)\n    test 689     Error0v: (-0.000115, 0.000831, -0.00097) max 0.00097\n\n    test 690 transform0: name='-ITRF2000@2015xETRF2014@2010', tx=0.0007, ty=0.0012, tz=-0.0261, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 691 transform2c: (4027893.6812, 307045.9082, 4919475.1547)\n    test 692     Error2c: (0.000013934, -0.000012081, 0.000026423) max 2.642e-05, epoched 5.0\n    test 693 transform2v: (-0.01351, 0.01686, 0.00854)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 694     Error2v: (-0.000440726, -0.000036335, -0.00053728) max 0.0005373\n    test 695 transform0v: (-0.00008, -0.00053, 0.00077)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 696     Error0v: (0.012985, -0.017431, -0.00831) max 0.01743\n\n    test 697 transform0: name='ITRF2000@2015xETRF2000@2010', tx=0.054, ty=0.051, tz=-0.048, s1=1.0, rx=8.24668072e-09, ry=4.98873278e-08, rz=-8.06342114e-08, s=0.0, sx=0.001701, sy=0.01029, sz=-0.016632\n    test 698 transform2c: (4027894.0054, 307045.5938, 4919474.9083)  FAILED, KNOWN, expected (4027894.0053, 307045.5939, 4919474.9083)\n    test 699     Error2c: (0.000077874, -0.000055372, -0.000008743) max 7.787e-05, epoched 5.0\n    test 700 transform2v: (-0.00020, -0.00050, -0.00037)  FAILED, KNOWN, expected (-0.00020, -0.00050, -0.00036)\n    test 701     Error2v: (-0.000004389, 0.000002124, -0.000008036) max 8.036e-06\n    test 702 transform0v: (0.00008, 0.00049, -0.00079)  FAILED, KNOWN, expected (-0.00020, -0.00050, -0.00036)\n    test 703     Error0v: (0.000281, 0.00099, -0.000432) max 0.00099\n\n    test 704 transform0/: name='-ITRF2000@2015xETRF2014@2010', tx=0.0007, ty=0.0012, tz=-0.0261, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 705 transform2c: (4027893.6812, 307045.9082, 4919475.1547)\n    test 706     Error2c: (0.000013934, -0.000012081, 0.000026423) max 2.642e-05, epoched 5.0\n    test 707 transform2v: (-0.01351, 0.01686, 0.00854)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 708     Error2v: (-0.000440726, -0.000036335, -0.00053728) max 0.0005373\n\n    test 709 transform1/: name='-ITRF2000@1997xITRF97@2015-ITRF97@2015xETRF2014@2010', tx=0.00673, ty=-0.00033, tz=-0.05913, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=8.09154034e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01669\n    test 710 transform2c: (4027893.6865, 307045.9168, 4919475.1217)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 711     Error2c: (0.005269863, 0.008612365, -0.033003577) max 0.033, epoched 23.0\n    test 712 transform2v: (-0.01357, 0.01710, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 713     Error2v: (-0.00050027, 0.000204776, -0.00179728) max 0.001797\n\n    test 714 transform2/: name='-ITRF2000@1997xITRF96@2015-ITRF96@2015xETRF2014@2010', tx=0.00673, ty=-0.00033, tz=-0.05913, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 715 transform2c: (4027893.6872, 307045.9067, 4919475.1217)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 716     Error2c: (0.006043935, -0.001542081, -0.033003577) max 0.033, epoched 23.0\n    test 717 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 718     Error2v: (-0.000440726, -0.000576335, -0.00179728) max 0.001797\n\n    test 719 transform3/: name='-ITRF2000@1988xITRF93@2015-ITRF93@2015xETRF2014@2010', tx=0.0007, ty=0.0012, tz=-0.0261, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 720 transform2c: (4027893.6812, 307045.9082, 4919475.1547)\n    test 721     Error2c: (0.000013934, -0.000012081, 0.000026423) max 2.642e-05, epoched 32.0\n    test 722 transform2v: (-0.01351, 0.01686, 0.00854)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 723     Error2v: (-0.000440726, -0.000036335, -0.00053728) max 0.0005373\n\n    test 724 transform4/: name='-ITRF2000@1988xITRF92@2015-ITRF92@2015xETRF2014@2010', tx=0.01393, ty=0.00147, tz=-0.06633, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 725 transform2c: (4027893.6944, 307045.9085, 4919475.1145)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 726     Error2c: (0.013243935, 0.000257919, -0.040203577) max 0.0402, epoched 32.0\n    test 727 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 728     Error2v: (-0.000440726, -0.000576335, -0.00179728) max 0.001797\n\n    test 729 transform5/: name='-ITRF2000@1988xITRF91@2015-ITRF91@2015xETRF2014@2010', tx=0.0007, ty=0.0012, tz=-0.0261, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 730 transform2c: (4027893.6812, 307045.9082, 4919475.1547)\n    test 731     Error2c: (0.000013934, -0.000012081, 0.000026423) max 2.642e-05, epoched 32.0\n    test 732 transform2v: (-0.01351, 0.01686, 0.00854)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 733     Error2v: (-0.000440726, -0.000036335, -0.00053728) max 0.0005373\n\n    test 734 transform6/: name='-ITRF2000@1988xITRF90@2015-ITRF90@2015xETRF2014@2010', tx=0.02293, ty=0.01047, tz=-0.08613, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 735 transform2c: (4027893.7034, 307045.9175, 4919475.0947)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 736     Error2c: (0.022243935, 0.009257919, -0.060003577) max 0.06, epoched 32.0\n    test 737 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 738     Error2v: (-0.000440726, -0.000576335, -0.00179728) max 0.001797\n\n    test 739 transform7/: name='-ITRF2000@1988xITRF89@2015-ITRF89@2015xETRF2014@2010', tx=0.02743, ty=0.03207, tz=-0.12033, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 740 transform2c: (4027893.7079, 307045.9391, 4919475.0605)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 741     Error2c: (0.026743934, 0.030857919, -0.094203577) max 0.0942, epoched 32.0\n./test/testTrf.py:29: DeprecationWarning: method L{convertRefFrame<pygeodesy.ellipsoidalExact.LatLon.convertRefFrame>} has been DEPRECATED, use method L{toRefFrame}.\n  x = p.convertRefFrame(RefFrames.ETRF2000)\n./test/testTrf.py:136: DeprecationWarning: method L{convertRefFrame<pygeodesy.ellipsoidalExact.LatLon.convertRefFrame>} has been DEPRECATED, use method L{toRefFrame}.\n  t = LatLon(0, 0, reframe=RefFrames.ITRF2000).convertRefFrame('ITRF2000')\n    test 742 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 743     Error2v: (-0.000440726, -0.000576335, -0.00179728) max 0.001797\n\n    test 744 transform8/: name='-ITRF2000@1988xITRF88@2015-ITRF88@2015xETRF2014@2010', tx=0.02293, ty=-0.00033, tz=-0.14193, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 745 transform2c: (4027893.7034, 307045.9067, 4919475.0389)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 746     Error2c: (0.022243935, -0.001542081, -0.115803577) max 0.1158, epoched 32.0\n    test 747 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 748     Error2v: (-0.000440725, -0.000576335, -0.00179728) max 0.001797\n\n    test 749 transform0: name='ITRF2020@2015xETRF2020@2020', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=1.29251327e-08, ry=7.80016732e-08, rz=-1.13170058e-07, s=0.0, sx=0.002666, sy=0.016089, sz=-0.023343\n    test 750 transform2c: (4027893.9574, 307045.5561, 4919474.9643)\n    test 751     Error2c: (-0.000024276, -0.000021815, -0.000013824) max 2.428e-05, epoched 5.0\n    test 752 transform2v: (0.01350, -0.01676, -0.01001)\n\n    test 753 transform0: name='-ITRF2014@2015xETRF2020@2020', tx=-0.0014, ty=-0.0014, tz=0.0024, s1=1.0, rx=-1.29251327e-08, ry=-7.80016732e-08, rz=1.13170058e-07, s=-0.00042, sx=-0.002666, sy=-0.016089, sz=0.023343\n    test 754 transform2c: (4027893.5358, 307046.0740, 4919475.2748)\n    test 755     Error2c: (0.000032643, -0.000007101, 0.000047684) max 4.768e-05, epoched 5.0\n    test 756 transform2v: (-0.01350, 0.01666, 0.01021)\n\n    test 757 transform0: name='ITRF2014@2015xETRF2014@2020', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=1.27748405e-08, ry=7.980518e-08, rz=-1.15725026e-07, s=0.0, sx=0.002635, sy=0.016461, sz=-0.02387\n    test 758 transform2c: (4027893.9639, 307045.5450, 4919474.9573)\n    test 759     Error2c: (0.000032525, 0.000026405, -0.000024305) max 3.253e-05, epoched 5.0\n    test 760 transform2v: (0.01381, -0.01706, -0.01024)\n\n    test 761 transform0: name='-ITRF2000@2015xETRF2014@2020', tx=0.0017, ty=0.0022, tz=-0.0451, s1=1.0, rx=-1.27748405e-08, ry=-7.980518e-08, rz=1.15725026e-07, s=0.00322, sx=-0.002635, sy=-0.016461, sz=0.02387\n    test 762 transform2c: (4027893.5504, 307046.0772, 4919475.2456)  FAILED, KNOWN, expected (4027893.5505, 307046.0772, 4919475.2456)\n    test 763     Error2c: (-0.000062619, -0.000037673, -0.000034946) max 6.262e-05, epoched 5.0\n    test 764 transform2v: (-0.01371, 0.01716, 0.00834)\n\n    test 765 transform0: name='ITRF2000@2015xETRF2000@2020', tx=0.054, ty=0.051, tz=-0.048, s1=1.0, rx=1.21736715e-08, ry=7.36431982e-08, rz=-1.19031455e-07, s=0.0, sx=0.002511, sy=0.01519, sz=-0.024552\n    test 766 transform2c: (4027894.0033, 307045.5889, 4919474.9047)\n    test 767     Error2c: (0.000034031, -0.000034106, 0.000010915) max 3.411e-05, epoched 5.0\n    test 768 transform2v: (0.01287, -0.01740, -0.00945)\n\n    test 769 transform0*: name='-ITRF2014@2010xITRF89-ITRF89@1989xETRF89@2010@2018.8', tx=-0.03128, ty=-0.0311, tz=0.15984, s1=0.999999991, rx=-1.58921925e-08, ry=-8.23504519e-08, rz=1.00463091e-07, s=-0.009246, sx=-0.003278, sy=-0.016986, sz=0.020722\n    test 770 transform2c: (4160476.4154, 653193.0567, 4774604.9029)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 771     Error2c: (-0.069560351, 0.035713888, 0.122930501) max 0.1229, epoched 29.8\n    test 772 transform2v: (-0.01148, 0.01996, 0.01845)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 773     Error2v: (-0.015479395, 0.016963959, 0.014448874) max 0.01696\n\n    test 774 transform0*: name='-ITRF2014@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 775 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 776     Error2c: (-0.014174475, 0.037834952, 0.023962618) max 0.03783, epoched 3.8\n    test 777 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 778     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 779 transform1*: name='-ITRF2014@2010xITRF2008@2015-ITRF2008@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 780 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 781     Error2c: (-0.014174475, 0.037834952, 0.023962618) max 0.03783, epoched 8.8\n    test 782 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 783     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 784 transform2*: name='-ITRF2014@2010xITRF97@2015-ITRF97@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 785 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 786     Error2c: (-0.014174475, 0.037834952, 0.023962618) max 0.03783, epoched 8.8\n    test 787 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 788     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 789 transform3*: name='-ITRF2014@2010xITRF93@2015-ITRF93@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 790 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 791     Error2c: (-0.014174475, 0.037834952, 0.023962618) max 0.03783, epoched 8.8\n    test 792 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 793     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 794 transform4*: name='-ITRF2014@2010xITRF92@2015-ITRF92@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 795 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 796     Error2c: (-0.014174475, 0.037834952, 0.023962618) max 0.03783, epoched 8.8\n    test 797 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 798     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 799 transform5*: name='-ITRF2014@2010xITRF91@2015-ITRF91@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 800 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 801     Error2c: (-0.014174475, 0.037834952, 0.023962618) max 0.03783, epoched 8.8\n    test 802 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 803     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 804 transform6*: name='-ITRF2014@2010xITRF90@2015-ITRF90@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 805 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 806     Error2c: (-0.014174475, 0.037834952, 0.023962618) max 0.03783, epoched 8.8\n    test 807 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 808     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 809 transform7*: name='-ITRF2014@2010xITRF89@2015-ITRF89@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 810 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 811     Error2c: (-0.014174475, 0.037834952, 0.023962618) max 0.03783, epoched 8.8\n    test 812 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 813     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 814 transform8*: name='-ITRF2014@2010xITRF88@2015-ITRF88@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 815 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 816     Error2c: (-0.014174475, 0.037834952, 0.023962618) max 0.03783, epoched 8.8\n    test 817 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 818     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 819 toTransform: name='-ITRF2014@2010xITRF88@2015-ITRF88@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=1.0, rx=-1.1702e-08, ry=-7.0792e-08, rz=1.1442e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.023602\n    test 820 toTransform: name='-ITRF2014@2010xITRF88@2015-ITRF88@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=1.0, rx=-1.1702e-08, ry=-7.0792e-08, rz=1.1442e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.023602\n\n    test 821 Issue80: 48.77691577°N, 008.92257142°E, +476.05m\n    test 822 Issue80: 48.77692147°N, 008.92257868°E, +476.09m\n    test 823 Issue80: 48°46′36.915133″N, 008°55′21.285094″E, +476.10m  FAILED, KNOWN, expected 48°46′36.915134″N, 008°55′21.285094″E, +476.10\n    test 824 Issue80: 0.804  FAILED, KNOWN, expected 0.01\n    test 825 Issue80: [4160476.944064, 653192.600457, 4774604.455385]\n    test 826 Issue80: [4160476.415504, 653193.057171, 4774604.903316]\n    test 827 Issue80: [4160476.467901, 653193.103647, 4774604.868888]\n    test 828 Issue80: 48°46′36.915133″N, 008°55′21.285094″E, +476.10m\n\n    test 829 Issue80: 48.77692032°N, 008.92257804°E, +476.05m\n    test 830 Issue80: 48.77691971°N, 008.92257856°E, +476.06m\n    test 831 Issue80: 48°46′36.9315″N, 008°55′21.3089″E, +476.10m  FAILED, KNOWN, expected 48°46′36.9131″N, 008°55′21.28095″E, +476.05m\n    test 832 Issue80: 0.804  FAILED, KNOWN, expected 0.01\n    test 833 Issue80: [4160476.492633, 653193.021888, 4774604.78885]\n    test 834 Issue80: [4160476.54503, 653193.068365, 4774604.754422]\n    test 835 Issue80: [4160476.016469, 653193.525079, 4774605.202353]\n    test 836 Issue80: 48°46′36.9315″N, 008°55′21.3089″E, +476.10m\n\n    test 837 ITRF96@1997xNAD83: TRFXform(epoch=1997.0, name='ITRF96@1997xNAD83')\n    test 838 ITRF96@1997xNAD83: name='ITRF96@1997xNAD83', tx=0.991, ty=-0.19072, tz=-0.5129, s1=1.0, rx=1.2503e-07, ry=4.6785e-08, rz=5.6529e-08, s=0.0, sx=0.02579, sy=0.00965, sz=0.01166\n    test 839 ITRF96@1997xNAD83: name='ITRF96@1997xNAD83@2007', tx=0.991, ty=-0.19072, tz=-0.5129, s1=1.0, rx=1.2761e-07, ry=1.0797e-08, rz=5.4997e-08, s=0.0, sx=0.026322, sy=0.002227, sz=0.011344\n    test 840 ITRF96@1997xNAD83: rx=-2.5792e-10, ry=3.5988e-09, rz=1.532e-10\n\n    testTrf(pygeodesy.ellipsoidalExact, 25.08.28)\n    test 841 convertRefFrame: 51.47787826°N, 000.00147125°W, -0.00m  FAILED, KNOWN, expected 51.47787826°N, 000.00147125°W\n    test 842 copy(<class 'type'>): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 843 RefFrame.copy(): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 844 toLatLon: 50.7978°N, 004.3592°E, +148.96m\n    test 845 convertRefFrame: [3980574.395, -102.214, 4966829.941]\n    test 846 Nil: True\n    test 847 copy(<class 'type'>): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 848 RefFrame.copy(): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 849 Nil: True\n    test 850 reframe: True\n    test 851 Roundtrip: True\n    test 852 reframe: True\n    test 853 copy(<class 'type'>): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 854 RefFrame.copy(): (<class 'pygeodesy.trf.RefFrame'>, True)\n\n    test 855 Geodetic: 23°40′12.44582″S, 133°53′07.84795″E, +603.34m\n    test 856 Cartesian: [-4052051.7614, 4212836.1945, -2545106.0147]\n    test 857 Geodetic: 23°40′12.44582″S, 133°53′07.84795″E, +603.34m\n    test 858 Cartesian: [-4052051.7614, 4212836.1945, -2545106.0147]\n    test 859 Roundtrip: 23°40′12.41482″S, 133°53′07.86712″E, +603.26m\n    test 860 GNSStrans: [3370658.18892, 711877.42369, 5349787.1243]\n    test 861 Cartesian: [-734972.563, 4893188.492, 4011982.811]\n\n    test 862 EUREF EX1: [4027894.0444, 307045.6209, 4919474.8613]\n    test 863 transform0: ITRF2005@2015xETRF2020-ITRF91@2015xETRF2020@2007 max 1.1642e-10, epoched 8.0\n    test 864 transform1: ITRF2005@2015xETRF2014-ITRF91@2015xETRF2014@2007 max 0.048666, epoched 8.0\n    test 865 transform2: ITRF2005@2015xETRF2000-ITRF91@2015xETRF2000@2007 max 0.097331, epoched 8.0\n    test 866 transform3: ITRF2005@2000xITRF2000+ITRF2000@1988xITRF91@2000@2007 max 0.146, epoched 19.0\n    test 867 transform4: -ITRF2020@2015xITRF2005+ITRF2020@2015xITRF91@2007 max 0.19466, epoched 8.0\n    test 868 transform5: -ITRF2014@2010xITRF2005+ITRF2014@2010xITRF91@2007 max 0.24333, epoched 3.0\n    test 869 transform6: -ITRF2008@2005xITRF2005+ITRF2008@2000xITRF91@2005@2007 max 0.29199, epoched 7.0\n    test 870 transform7: ITRF2000@1988xITRF91+ITRF2005@2000xITRF2000@1988@2007 max 0.34066, epoched 31.0\n    test 871 transform8: ITRF2014@2010xITRF91-ITRF2014@2020xGDA2020@2010+ITRF2005@2020xGDA2020@2010@2007 max 0.98111, epoched 23.0\n    test 872 transform9: ITRF2008@2000xITRF91-ITRF2008@1994xGDA94@2000+ITRF2005@1994xGDA94@2000@2007 max 0.35972, epoched 19.0\n    test 873 transform10: ITRF2008@2000xITRF91-ITRF2008@1997xNAD83@2000+ITRF2005@1997xNAD83@2000@2007 max 0.40805, epoched 13.0\n    test 874 EUREF EX2: [4027894.0060, 307045.6000, 4919474.9100]\n    test 875 transform0: ITRF91@2015xETRF2020-ITRF2005@2015xETRF2020@2007 max 0.048666, epoched 8.0\n    test 876 transform1: ITRF91@2015xETRF2014-ITRF2005@2015xETRF2014@2007 max 2.3283e-10, epoched 8.0\n    test 877 transform2: ITRF91@2015xETRF2000-ITRF2005@2015xETRF2000@2007 max 0.048666, epoched 8.0\n    test 878 transform3: -ITRF2005@2000xITRF2000-ITRF2000@1988xITRF91@2000@2007 max 0.097331, epoched 19.0\n    test 879 EUREF EX4: [4027894.3559, 307045.2508, 4919474.6447]\n    test 880 transform0: -ITRF2000@2015xETRF2000@2012 max 4.5169e-08, epoched 3.0\n    test 881 transform1: -ITRF2000@1997xITRF97@2015-ITRF97@2015xETRF2000@2012 max 0.35826, epoched 21.0\n    test 882 transform2: -ITRF2000@1997xITRF96@2015-ITRF96@2015xETRF2000@2012 max 0.7048, epoched 21.0\n    test 883 transform3: -ITRF2000@1988xITRF93@2015-ITRF93@2015xETRF2000@2012 max 1.054, epoched 30.0\n    test 884 transform4: -ITRF2000@1988xITRF92@2015-ITRF92@2015xETRF2000@2012 max 1.4023, epoched 30.0\n    test 885 transform5: -ITRF2000@1988xITRF91@2015-ITRF91@2015xETRF2000@2012 max 1.7514, epoched 30.0\n    test 886 transform6: -ITRF2000@1988xITRF90@2015-ITRF90@2015xETRF2000@2012 max 2.1088, epoched 30.0\n    test 887 transform7: -ITRF2000@1988xITRF89@2015-ITRF89@2015xETRF2000@2012 max 2.4877, epoched 30.0\n    test 888 transform8: -ITRF2000@1988xITRF88@2015-ITRF88@2015xETRF2000@2012 max 2.8343, epoched 30.0\n    test 889 EUREF EX5: [4027893.6458, 307045.9470, 4919475.1937]  FAILED, KNOWN, expected [4027894.3662, 307045.2530, 4919474.6263]\n    test 890 transform0: ITRF2014@2015xETRF2000@2012 max 4.5635e-08, epoched 3.0\n    test 891 transform1: ITRF2014@2010xITRF2008@2015+ITRF2008@2015xETRF2000@2012 max 0.36023, epoched 8.0\n    test 892 transform2: ITRF2014@2010xITRF97@2015+ITRF97@2015xETRF2000@2012 max 0.72047, epoched 8.0\n    test 893 transform3: ITRF2014@2010xITRF93@2015+ITRF93@2015xETRF2000@2012 max 1.0807, epoched 8.0\n    test 894 transform4: ITRF2014@2010xITRF92@2015+ITRF92@2015xETRF2000@2012 max 1.4409, epoched 8.0\n    test 895 transform5: ITRF2014@2010xITRF91@2015+ITRF91@2015xETRF2000@2012 max 1.8012, epoched 8.0\n    test 896 transform6: ITRF2014@2010xITRF90@2015+ITRF90@2015xETRF2000@2012 max 2.1614, epoched 8.0\n    test 897 transform7: ITRF2014@2010xITRF89@2015+ITRF89@2015xETRF2000@2012 max 2.5216, epoched 8.0\n    test 898 transform8: ITRF2014@2010xITRF88@2015+ITRF88@2015xETRF2000@2012 max 2.8819, epoched 8.0\n\n    test 899 Case 1A: [4027893.9619, 307045.5481, 4919474.9553]\n    test 900 Case 1B: [4027894.0054, 307045.5938, 4919474.9083]\n    test 901 Case 2A: [4027893.9639, 307045.545, 4919474.9573]\n    test 902 Case 2B: [4027894.0033, 307045.5889, 4919474.9041]\n\n    test 903 TypeError: type(reframe) ('ITRF2000'): not a RefFrame\n    test 904 TRFError: epoch (1899): below 1900.0 limit\n    test 905 TypeError: type(reframe2) ('ITRF2000'): not a RefFrame\n    test 906 TRFError: no conversion: LatLon(00°00′00.0″N, 000°00′00.0″E).reframe MISSING\n    test 907 TypeError: type(reframe2) ('ITRF2000'): not a RefFrame\n    test 908 TypeError: type(reframe) ('ITRF2000'): not a RefFrame\n\n    test 909 ETRF89@1989: [4160476.944000, 653192.600000, 4774604.455000]\n    test 910 ITRF2014@2018.8: [4160476.415, 653193.057, 4774604.903]  FAILED, KNOWN, expected [4160476.485, 653193.021, 4774604.78]\n    test 911 TransformXform: -ITRF2014@2010xITRF89-ITRF89@1989xETRF89@2010@2018.8\n    test 912 Delta (m): [-0.06956, 0.035714, 0.122931]  FAILED, KNOWN, expected [0.01, 0.01, 0.01]\n    test 913 Error (m): 0.145692  FAILED, KNOWN, expected 0.01\n    test 914 Epoch range: 29.800  FAILED, KNOWN, expected 14.0\n    test 915 ETRF89@1989: [4160476.467836, 653193.103190, 4774604.868503]  FAILED, KNOWN, expected [4160476.944000, 653192.600000, 4774604.455000]\n    test 916 TransformXform: ITRF2014@2010xITRF89+ITRF89@1989xETRF89@2010@1989\n\n    test 917 inverse: -ITRF2014@2010xITRF89-ITRF89@1989xETRF89@2010@1989\n    test 918 inverse: ITRF2014@2010xITRF89+ITRF89@1989xETRF89@2010@1989\n    test 919 inverse: name='ITRF2014@2010xITRF89+ITRF89@1989xETRF89@2010@1989', tx=0.0283, ty=0.046, tz=-0.0615, s1=1.0, rx=0.0, ry=0.0, rz=-7.757e-10, s=0.00567, sx=0.0, sy=0.0, sz=-0.00016\n\n    test 920 ETRF2000@2000: [4160476.952000, 653192.582000, 4774604.441000]\n    test 921 ITRF2014@2018.8: [4160476.471, 653193.059, 4774604.804]  FAILED, KNOWN, expected [4160476.485, 653193.021, 4774604.78]\n    test 922 TransformXform: -ITRF2014@2015xETRF2000@2018.8\n    test 923 Delta (m): [-0.014174, 0.037835, 0.023963]  FAILED, KNOWN, expected [0.01, 0.01, 0.01]\n    test 924 Error (m): 0.046975  FAILED, KNOWN, expected 0.01\n    test 925 Epoch range: 18.800  FAILED, KNOWN, expected 14.0\n    test 926 ETRF2000@2000: [4160476.681125, 653192.914350, 4774604.647835]  FAILED, KNOWN, expected [4160476.952000, 653192.582000, 4774604.441000]\n    test 927 TransformXform: ITRF2014@2015xETRF2000@2000\n\n    test 928 inverse: -ITRF2014@2015xETRF2000@2000\n    test 929 inverse: ITRF2014@2015xETRF2000@2000\n    test 930 inverse: name='ITRF2014@2015xETRF2000@2000', tx=0.0537, ty=0.0512, tz=-0.0551, s1=1.0, rx=4.3197e-09, ry=2.6131e-08, rz=-4.2237e-08, s=0.00102, sx=0.000891, sy=0.00539, sz=-0.008712\n\n    test 931 ITRF2008@2005: [4160476.674000, 653192.806000, 4774604.648000]\n    test 932 ITRF2014@2018.8: [4160476.671, 653192.804, 4774604.645]  FAILED, KNOWN, expected [4160476.485, 653193.021, 4774604.78]\n    test 933 TransformXform: -ITRF2014@2010xITRF2008@2018.8\n    test 934 Delta (m): [0.186385, -0.217059, -0.134685]  FAILED, KNOWN, expected [0.01, 0.01, 0.01]\n    test 935 Error (m): 0.316218  FAILED, KNOWN, expected 0.01\n    test 936 Epoch range: 13.800  FAILED, KNOWN, expected 14.0\n    test 937 ITRF2008@2005: [4160476.672278, 653192.805730, 4774604.647403]  FAILED, KNOWN, expected [4160476.674000, 653192.806000, 4774604.648000]\n    test 938 TransformXform: ITRF2014@2010xITRF2008@2005\n\n    test 939 inverse: -ITRF2014@2010xITRF2008@2005\n    test 940 inverse: ITRF2014@2010xITRF2008@2005\n    test 941 inverse: name='ITRF2014@2010xITRF2008@2005', tx=0.0016, ty=0.0019, tz=0.0029, s1=1.0, rx=0.0, ry=0.0, rz=0.0, s=-0.00017, sx=0.0, sy=0.0, sz=0.0\n\n    test 942 toRefFrame1: ITRF2020@2015 2024.31 [0.0031474, 0.00210534, -0.00125667]\n    test 943 toRefFrame2: ITRF2014@2010 2024.32 [0.0031474, 0.00210634, -0.00125867]\n    test 944 transform0: -ITRF2020@2015xITRF2014@2010\n    test 945 transform0X: TRFXform(epoch=2010.0, name='-ITRF2020@2015xITRF2014@2010')\n    test 946 toRefFrame3: ITRF2020@2015 2010 [0.0031474, 0.00067434, 0.00160533]\n    test 947 transform2x: (4160476.488147, 653193.021674, 4774604.781605)\n    test 948 transform2v: (0.000, 0.000, 0.000)  FAILED, KNOWN, expected (0.004, 0.003, 0.004)\n\n    test 949 transform0: name='ITRF2020@2015xETRF2020@2010', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=8.75573508e-09, ry=5.28398431e-08, rz=-7.66635874e-08, s=0.0, sx=0.001806, sy=0.010899, sz=-0.015813\n    test 950 transform2c: (4027893.9585, 307045.5550, 4919474.9620)  FAILED, KNOWN, expected (4027893.9585, 307045.5550, 4919474.9619)\n    test 951     Error2c: (-0.000016463, 0.0000336, 0.000055143) max 5.514e-05, epoched 5.0\n    test 952 transform2v: (-0.00011, 0.00010, 0.00023)  FAILED, KNOWN, expected (0.00011, 0.00011, 0.00024)\n    test 953     Error2v: (-0.000220786, -0.000005544, -0.000006899) max 0.0002208\n    test 954 transform0v: (0.00009, 0.00052, -0.00075)  FAILED, KNOWN, expected (0.00011, 0.00011, 0.00024)\n    test 955     Error0v: (-0.000024, 0.000409, -0.000993) max 0.000993\n\n    test 956 transform0: name='-ITRF2014@2015xETRF2020@2010', tx=-0.0014, ty=-0.0004, tz=0.0004, s1=1.0, rx=-8.75573508e-09, ry=-5.28398431e-08, rz=7.66635874e-08, s=-0.00042, sx=-0.001806, sy=-0.010899, sz=0.015813\n    test 957 transform2c: (4027893.6719, 307045.9063, 4919475.1704)  FAILED, KNOWN, expected (4027893.6719, 307045.9064, 4919475.1704)\n    test 958     Error2c: (0.000024786, -0.000062539, -0.000021305) max 6.254e-05, epoched 5.0\n    test 959 transform2v: (-0.01339, 0.01677, 0.01045)  FAILED, KNOWN, expected (-0.01361, 0.01676, 0.01044)\n    test 960     Error2v: (0.000220784, 0.000005543, 0.000006898) max 0.0002208\n    test 961 transform0v: (-0.00009, -0.00052, 0.00075)  FAILED, KNOWN, expected (-0.01361, 0.01676, 0.01044)\n    test 962     Error0v: (0.013524, -0.017279, -0.009687) max 0.01728\n\n    test 963 transform0: name='ITRF2014@2015xETRF2014@2010', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=8.65392421e-09, ry=5.40615736e-08, rz=-7.83943722e-08, s=0.0, sx=0.001785, sy=0.011151, sz=-0.01617\n    test 964 transform2c: (4027893.9619, 307045.5481, 4919474.9553)  FAILED, KNOWN, expected (4027893.9620, 307045.5480, 4919474.9553)\n    test 965     Error2c: (-0.00007476, 0.000063039, 0.000002882) max 7.476e-05, epoched 5.0\n    test 966 transform2v: (0.00020, -0.00030, 0.00020)\n    test 967     Error2v: (0.000000724, -0.000003666, -0.000002721) max 3.666e-06\n    test 968 transform0v: (0.00009, 0.00053, -0.00077)  FAILED, KNOWN, expected (0.00020, -0.00030, 0.00020)\n    test 969     Error0v: (-0.000115, 0.000831, -0.00097) max 0.00097\n\n    test 970 transform0: name='-ITRF2000@2015xETRF2014@2010', tx=0.0007, ty=0.0012, tz=-0.0261, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 971 transform2c: (4027893.6812, 307045.9082, 4919475.1547)\n    test 972     Error2c: (0.000013934, -0.000012081, 0.000026423) max 2.642e-05, epoched 5.0\n    test 973 transform2v: (-0.01351, 0.01686, 0.00854)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 974     Error2v: (-0.000440726, -0.000036335, -0.00053728) max 0.0005373\n    test 975 transform0v: (-0.00008, -0.00053, 0.00077)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 976     Error0v: (0.012985, -0.017431, -0.00831) max 0.01743\n\n    test 977 transform0: name='ITRF2000@2015xETRF2000@2010', tx=0.054, ty=0.051, tz=-0.048, s1=1.0, rx=8.24668072e-09, ry=4.98873278e-08, rz=-8.06342114e-08, s=0.0, sx=0.001701, sy=0.01029, sz=-0.016632\n    test 978 transform2c: (4027894.0054, 307045.5938, 4919474.9083)  FAILED, KNOWN, expected (4027894.0053, 307045.5939, 4919474.9083)\n    test 979     Error2c: (0.000077874, -0.000055372, -0.000008743) max 7.787e-05, epoched 5.0\n    test 980 transform2v: (-0.00020, -0.00050, -0.00037)  FAILED, KNOWN, expected (-0.00020, -0.00050, -0.00036)\n    test 981     Error2v: (-0.000004389, 0.000002124, -0.000008036) max 8.036e-06\n    test 982 transform0v: (0.00008, 0.00049, -0.00079)  FAILED, KNOWN, expected (-0.00020, -0.00050, -0.00036)\n    test 983     Error0v: (0.000281, 0.00099, -0.000432) max 0.00099\n\n    test 984 transform0/: name='-ITRF2000@2015xETRF2014@2010', tx=0.0007, ty=0.0012, tz=-0.0261, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 985 transform2c: (4027893.6812, 307045.9082, 4919475.1547)\n    test 986     Error2c: (0.000013934, -0.000012081, 0.000026423) max 2.642e-05, epoched 5.0\n    test 987 transform2v: (-0.01351, 0.01686, 0.00854)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 988     Error2v: (-0.000440726, -0.000036335, -0.00053728) max 0.0005373\n\n    test 989 transform1/: name='-ITRF2000@1997xITRF97@2015-ITRF97@2015xETRF2014@2010', tx=0.00673, ty=-0.00033, tz=-0.05913, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=8.09154034e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01669\n    test 990 transform2c: (4027893.6865, 307045.9168, 4919475.1217)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 991     Error2c: (0.005269863, 0.008612365, -0.033003577) max 0.033, epoched 23.0\n    test 992 transform2v: (-0.01357, 0.01710, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 993     Error2v: (-0.00050027, 0.000204776, -0.00179728) max 0.001797\n\n    test 994 transform2/: name='-ITRF2000@1997xITRF96@2015-ITRF96@2015xETRF2014@2010', tx=0.00673, ty=-0.00033, tz=-0.05913, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 995 transform2c: (4027893.6872, 307045.9067, 4919475.1217)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 996     Error2c: (0.006043935, -0.001542081, -0.033003577) max 0.033, epoched 23.0\n    test 997 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 998     Error2v: (-0.000440726, -0.000576335, -0.00179728) max 0.001797\n\n    test 999 transform3/: name='-ITRF2000@1988xITRF93@2015-ITRF93@2015xETRF2014@2010', tx=0.0007, ty=0.0012, tz=-0.0261, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 1000 transform2c: (4027893.6812, 307045.9082, 4919475.1547)\n    test 1001     Error2c: (0.000013934, -0.000012081, 0.000026423) max 2.642e-05, epoched 32.0\n    test 1002 transform2v: (-0.01351, 0.01686, 0.00854)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 1003     Error2v: (-0.000440726, -0.000036335, -0.00053728) max 0.0005373\n\n    test 1004 transform4/: name='-ITRF2000@1988xITRF92@2015-ITRF92@2015xETRF2014@2010', tx=0.01393, ty=0.00147, tz=-0.06633, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 1005 transform2c: (4027893.6944, 307045.9085, 4919475.1145)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 1006     Error2c: (0.013243935, 0.000257919, -0.040203577) max 0.0402, epoched 32.0\n    test 1007 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 1008     Error2v: (-0.000440726, -0.000576335, -0.00179728) max 0.001797\n\n    test 1009 transform5/: name='-ITRF2000@1988xITRF91@2015-ITRF91@2015xETRF2014@2010', tx=0.0007, ty=0.0012, tz=-0.0261, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 1010 transform2c: (4027893.6812, 307045.9082, 4919475.1547)\n    test 1011     Error2c: (0.000013934, -0.000012081, 0.000026423) max 2.642e-05, epoched 32.0\n    test 1012 transform2v: (-0.01351, 0.01686, 0.00854)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 1013     Error2v: (-0.000440726, -0.000036335, -0.00053728) max 0.0005373\n\n    test 1014 transform6/: name='-ITRF2000@1988xITRF90@2015-ITRF90@2015xETRF2014@2010', tx=0.02293, ty=0.01047, tz=-0.08613, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 1015 transform2c: (4027893.7034, 307045.9175, 4919475.0947)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 1016     Error2c: (0.022243935, 0.009257919, -0.060003577) max 0.06, epoched 32.0\n    test 1017 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 1018     Error2v: (-0.000440726, -0.000576335, -0.00179728) max 0.001797\n\n    test 1019 transform7/: name='-ITRF2000@1988xITRF89@2015-ITRF89@2015xETRF2014@2010', tx=0.02743, ty=0.03207, tz=-0.12033, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 1020 transform2c: (4027893.7079, 307045.9391, 4919475.0605)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 1021     Error2c: (0.026743934, 0.030857919, -0.094203577) max 0.0942, epoched 32.0\n    test 1022 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 1023     Error2v: (-0.000440726, -0.000576335, -0.00179728) max 0.001797\n\n    test 1024 transform8/: name='-ITRF2000@1988xITRF88@2015-ITRF88@2015xETRF2014@2010', tx=0.02293, ty=-0.00033, tz=-0.14193, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 1025 transform2c: (4027893.7034, 307045.9067, 4919475.0389)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 1026     Error2c: (0.022243935, -0.001542081, -0.115803577) max 0.1158, epoched 32.0\n    test 1027 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 1028     Error2v: (-0.000440725, -0.000576335, -0.00179728) max 0.001797\n\n    test 1029 transform0: name='ITRF2020@2015xETRF2020@2020', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=1.29251327e-08, ry=7.80016732e-08, rz=-1.13170058e-07, s=0.0, sx=0.002666, sy=0.016089, sz=-0.023343\n    test 1030 transform2c: (4027893.9574, 307045.5561, 4919474.9643)\n    test 1031     Error2c: (-0.000024276, -0.000021815, -0.000013824) max 2.428e-05, epoched 5.0\n    test 1032 transform2v: (0.01350, -0.01676, -0.01001)\n\n    test 1033 transform0: name='-ITRF2014@2015xETRF2020@2020', tx=-0.0014, ty=-0.0014, tz=0.0024, s1=1.0, rx=-1.29251327e-08, ry=-7.80016732e-08, rz=1.13170058e-07, s=-0.00042, sx=-0.002666, sy=-0.016089, sz=0.023343\n    test 1034 transform2c: (4027893.5358, 307046.0740, 4919475.2748)\n    test 1035     Error2c: (0.000032643, -0.000007101, 0.000047684) max 4.768e-05, epoched 5.0\n    test 1036 transform2v: (-0.01350, 0.01666, 0.01021)\n\n    test 1037 transform0: name='ITRF2014@2015xETRF2014@2020', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=1.27748405e-08, ry=7.980518e-08, rz=-1.15725026e-07, s=0.0, sx=0.002635, sy=0.016461, sz=-0.02387\n    test 1038 transform2c: (4027893.9639, 307045.5450, 4919474.9573)\n    test 1039     Error2c: (0.000032525, 0.000026405, -0.000024305) max 3.253e-05, epoched 5.0\n    test 1040 transform2v: (0.01381, -0.01706, -0.01024)\n\n    test 1041 transform0: name='-ITRF2000@2015xETRF2014@2020', tx=0.0017, ty=0.0022, tz=-0.0451, s1=1.0, rx=-1.27748405e-08, ry=-7.980518e-08, rz=1.15725026e-07, s=0.00322, sx=-0.002635, sy=-0.016461, sz=0.02387\n    test 1042 transform2c: (4027893.5504, 307046.0772, 4919475.2456)  FAILED, KNOWN, expected (4027893.5505, 307046.0772, 4919475.2456)\n    test 1043     Error2c: (-0.000062619, -0.000037673, -0.000034946) max 6.262e-05, epoched 5.0\n    test 1044 transform2v: (-0.01371, 0.01716, 0.00834)\n\n    test 1045 transform0: name='ITRF2000@2015xETRF2000@2020', tx=0.054, ty=0.051, tz=-0.048, s1=1.0, rx=1.21736715e-08, ry=7.36431982e-08, rz=-1.19031455e-07, s=0.0, sx=0.002511, sy=0.01519, sz=-0.024552\n    test 1046 transform2c: (4027894.0033, 307045.5889, 4919474.9047)\n    test 1047     Error2c: (0.000034031, -0.000034106, 0.000010915) max 3.411e-05, epoched 5.0\n    test 1048 transform2v: (0.01287, -0.01740, -0.00945)\n\n    test 1049 transform0*: name='-ITRF2014@2010xITRF89-ITRF89@1989xETRF89@2010@2018.8', tx=-0.03128, ty=-0.0311, tz=0.15984, s1=0.999999991, rx=-1.58921925e-08, ry=-8.23504519e-08, rz=1.00463091e-07, s=-0.009246, sx=-0.003278, sy=-0.016986, sz=0.020722\n    test 1050 transform2c: (4160476.4154, 653193.0567, 4774604.9029)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 1051     Error2c: (-0.069560351, 0.035713888, 0.122930501) max 0.1229, epoched 29.8\n    test 1052 transform2v: (-0.01148, 0.01996, 0.01845)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 1053     Error2v: (-0.015479395, 0.016963959, 0.014448874) max 0.01696\n\n    test 1054 transform0*: name='-ITRF2014@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 1055 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 1056     Error2c: (-0.014174475, 0.037834952, 0.023962618) max 0.03783, epoched 3.8\n    test 1057 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 1058     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 1059 transform1*: name='-ITRF2014@2010xITRF2008@2015-ITRF2008@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 1060 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 1061     Error2c: (-0.014174475, 0.037834952, 0.023962618) max 0.03783, epoched 8.8\n    test 1062 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 1063     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 1064 transform2*: name='-ITRF2014@2010xITRF97@2015-ITRF97@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 1065 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 1066     Error2c: (-0.014174475, 0.037834952, 0.023962618) max 0.03783, epoched 8.8\n    test 1067 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 1068     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 1069 transform3*: name='-ITRF2014@2010xITRF93@2015-ITRF93@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 1070 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 1071     Error2c: (-0.014174475, 0.037834952, 0.023962618) max 0.03783, epoched 8.8\n    test 1072 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 1073     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 1074 transform4*: name='-ITRF2014@2010xITRF92@2015-ITRF92@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 1075 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 1076     Error2c: (-0.014174475, 0.037834952, 0.023962618) max 0.03783, epoched 8.8\n    test 1077 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 1078     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 1079 transform5*: name='-ITRF2014@2010xITRF91@2015-ITRF91@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 1080 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 1081     Error2c: (-0.014174475, 0.037834952, 0.023962618) max 0.03783, epoched 8.8\n    test 1082 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 1083     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 1084 transform6*: name='-ITRF2014@2010xITRF90@2015-ITRF90@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 1085 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 1086     Error2c: (-0.014174475, 0.037834952, 0.023962618) max 0.03783, epoched 8.8\n    test 1087 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 1088     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 1089 transform7*: name='-ITRF2014@2010xITRF89@2015-ITRF89@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 1090 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 1091     Error2c: (-0.014174475, 0.037834952, 0.023962618) max 0.03783, epoched 8.8\n    test 1092 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 1093     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 1094 transform8*: name='-ITRF2014@2010xITRF88@2015-ITRF88@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 1095 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 1096     Error2c: (-0.014174475, 0.037834952, 0.023962618) max 0.03783, epoched 8.8\n    test 1097 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 1098     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 1099 toTransform: name='-ITRF2014@2010xITRF88@2015-ITRF88@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=1.0, rx=-1.1702e-08, ry=-7.0792e-08, rz=1.1442e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.023602\n    test 1100 toTransform: name='-ITRF2014@2010xITRF88@2015-ITRF88@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=1.0, rx=-1.1702e-08, ry=-7.0792e-08, rz=1.1442e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.023602\n\n    test 1101 Issue80: 48.77691577°N, 008.92257142°E, +476.05m\n    test 1102 Issue80: 48.77692147°N, 008.92257868°E, +476.09m\n    test 1103 Issue80: 48°46′36.915133″N, 008°55′21.285094″E, +476.10m  FAILED, KNOWN, expected 48°46′36.915134″N, 008°55′21.285094″E, +476.10\n    test 1104 Issue80: 0.804  FAILED, KNOWN, expected 0.01\n    test 1105 Issue80: [4160476.944064, 653192.600457, 4774604.455385]\n    test 1106 Issue80: [4160476.415504, 653193.057171, 4774604.903316]\n    test 1107 Issue80: [4160476.467901, 653193.103647, 4774604.868888]\n    test 1108 Issue80: 48°46′36.915133″N, 008°55′21.285094″E, +476.10m\n\n    test 1109 Issue80: 48.77692032°N, 008.92257804°E, +476.05m\n    test 1110 Issue80: 48.77691971°N, 008.92257856°E, +476.06m\n    test 1111 Issue80: 48°46′36.9315″N, 008°55′21.3089″E, +476.10m  FAILED, KNOWN, expected 48°46′36.9131″N, 008°55′21.28095″E, +476.05m\n    test 1112 Issue80: 0.804  FAILED, KNOWN, expected 0.01\n    test 1113 Issue80: [4160476.492633, 653193.021888, 4774604.78885]\n    test 1114 Issue80: [4160476.54503, 653193.068365, 4774604.754422]\n    test 1115 Issue80: [4160476.016469, 653193.525079, 4774605.202353]\n    test 1116 Issue80: 48°46′36.9315″N, 008°55′21.3089″E, +476.10m\n\n    test 1117 ITRF96@1997xNAD83: TRFXform(epoch=1997.0, name='ITRF96@1997xNAD83')\n    test 1118 ITRF96@1997xNAD83: name='ITRF96@1997xNAD83', tx=0.991, ty=-0.19072, tz=-0.5129, s1=1.0, rx=1.2503e-07, ry=4.6785e-08, rz=5.6529e-08, s=0.0, sx=0.02579, sy=0.00965, sz=0.01166\n    test 1119 ITRF96@1997xNAD83: name='ITRF96@1997xNAD83@2007', tx=0.991, ty=-0.19072, tz=-0.5129, s1=1.0, rx=1.2761e-07, ry=1.0797e-08, rz=5.4997e-08, s=0.0, sx=0.026322, sy=0.002227, sz=0.011344\n    test 1120 ITRF96@1997xNAD83: rx=-2.5792e-10, ry=3.5988e-09, rz=1.532e-10\n\n    test 1121 TRFError: day (2), month (1) or year (None): int() argument must be a string, a bytes-like object or a number, not 'NoneType'\n    test 1122 toStr: name='GDA94', epoch=1994, datum=Datums.GRS80\n    test 1123 str: name='GDA94', epoch=1994, datum=Datums.GRS80\n    test 1124 toStr2: RefFrame(name='GDA94', epoch=1994, datum=Datums.GRS80)\n    test 1125 repr: RefFrame(name='GDA94', epoch=1994, datum=Datums.GRS80)\n\n    test 1126 epoch: 2020.003\n    test 1127 y-m-d: (2020, 1, 1)\n    test 1128 epoch: 2020.251\n    test 1129 y-m-d: (2020, 4, 1)\n    test 1130 epoch: 2020.500\n    test 1131 y-m-d: (2020, 7, 1)\n    test 1132 epoch: 2020.751\n    test 1133 y-m-d: (2020, 10, 1)\n    test 1134 epoch: 2021.000\n    test 1135 y-m-d: (2021, 1, 1)  FAILED, KNOWN, expected (2020, 12, 31)\n\n    test 1136 Epoch (2020).std_repr: False\n    test 1137 Epoch (2020.001): (2020, 1, 1)\n    test 1138 Epoch (2020.086): (2020, 2, 1)\n    test 1139 Epoch (2020.165): (2020, 3, 1)\n    test 1140 Epoch (2020.25): (2020, 4, 1)\n    test 1141 Epoch (2020.332): (2020, 5, 1)\n    test 1142 Epoch (2020.416): (2020, 6, 1)\n    test 1143 Epoch (2020.498): (2020, 7, 1)\n    test 1144 Epoch (2020.583): (2020, 8, 1)\n    test 1145 Epoch (2020.668): (2020, 9, 1)\n    test 1146 Epoch (2020.75): (2020, 10, 1)\n    test 1147 Epoch (2020.834): (2020, 11, 1)\n    test 1148 Epoch (2020.916): (2020, 12, 1)\n    test 1149 Epoch (2021.001): (2021, 1, 1)  FAILED, KNOWN, expected (2020, 13, 1)\n\n    294 of 1149 testTrf.py tests (25.6%) FAILED, incl. 286 KNOWN plus 8 DeprecationWarnings (pygeodesy 26.3.26 PyPy 7.3.17 Python 3.10.14 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 482.845 ms\nrunning /opt/local/bin/p....y3.10 -W default ~/PyGeodesy/test/testTriaxials.py\n./test/testTriaxials.py:134: DeprecationWarning: method L{area_p<pygeodesy.triaxials.triaxial5.Conformal.area_p>} has been DEPRECATED on 2026-02-15, use method L{areaKT<Triaxial_.areaKT>}.\n  p = J.area_p()\n./test/testTriaxials.py:192: DeprecationWarning: method L{area_p<pygeodesy.triaxials.triaxial5.ConformalSphere.area_p>} has been DEPRECATED on 2026-02-15, use method L{areaKT<Triaxial_.areaKT>}.\n  p = J.area_p()\n# lazily imported pygeodesy.basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.DeprecationWarnings from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isint from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isLazy from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.issubclassof from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.iterNumpy2over from .iters by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.LazyImportError from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.karney by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.NN from .interns by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.normDMS from .dms by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.pairs from .streprs by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.printf from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.property_RO from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.typename from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.EPS4 from .constants by testTriaxials.py line 13\n# lazily imported pygeodesy.F_DEG_ from .dms by testTriaxials.py line 13\n# lazily imported pygeodesy.F_DMS from .dms by testTriaxials.py line 13\n# lazily imported pygeodesy.PI_2 from .constants by testTriaxials.py line 13\n# lazily imported pygeodesy.PI_4 from .constants by testTriaxials.py line 13\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by testTriaxials.py line 13\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by testTriaxials.py line 13\n# lazily imported pygeodesy.Degrees from .units by testTriaxials.py line 13\n# lazily imported pygeodesy.Ellipsoids from .ellipsoids by testTriaxials.py line 13\n# lazily imported pygeodesy.fstr from .streprs by testTriaxials.py line 13\n# lazily imported pygeodesy.LLK from .triaxials.bases by testTriaxials.py line 13\n# lazily imported pygeodesy.Los from .ltpTuples by testTriaxials.py line 13\n# lazily imported pygeodesy.map1 from .basics by testTriaxials.py line 13\n# lazily imported pygeodesy.signBit from .basics by testTriaxials.py line 13\n# lazily imported pygeodesy.sincos2d_ from .utily by testTriaxials.py line 13\n# lazily imported pygeodesy.Triaxial from .triaxials.triaxial5 by testTriaxials.py line 13\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by testTriaxials.py line 13\n# lazily imported pygeodesy.Triaxials from .triaxials.triaxial5 by testTriaxials.py line 13\n# lazily imported pygeodesy.Triaxial3s from .triaxials.triaxial3 by testTriaxials.py line 13\n# lazily imported pygeodesy.triaxum5 from .vector2d by testTriaxials.py line 13\n# lazily imported pygeodesy.Vector3d from .vector3d by testTriaxials.py line 13\n\n    testing testTriaxials.py 26.03.12 isLazy=3\n\n    testHartzell(pygeodesy.triaxials.triaxial5, 26.03.09)\n# lazily imported pygeodesy.hartzell4 from .triaxials.triaxial5 by bases.py line 411\n    test 1 hartzell4: (884268.349816, 5592134.174908, 2927668.068131, 12669388.912805)\n    test 2 hartzell4: 0\n# lazily imported pygeodesy.hartzell4 from .triaxials.triaxial5 by bases.py line 411\n    test 3 hartzell4: (3642143.609933, 3678204.437754, 3714265.265575, 11296443.179278)\n    test 4 hartzell4: 0\n# lazily imported pygeodesy.hartzell4 from .triaxials.triaxial5 by bases.py line 411\n\n    test 5 hartzell4: (888679.181482, 5594339.590741, 2931196.612187, 12663325.092381)\n    test 6 hartzell4: 0\n# lazily imported pygeodesy.hartzell4 from .triaxials.triaxial5 by bases.py line 411\n    test 7 hartzell4: (3642304.092727, 3678366.509487, 3714428.926247, 11296162.453809)\n    test 8 hartzell4: 0\n# lazily imported pygeodesy.Triaxial from .triaxials.triaxial5 by ellipsoids.py line 1905\n# lazily imported pygeodesy.hartzell4 from .triaxials.triaxial5 by bases.py line 411\n\n    test 9 hartzell4: (884080.396945, 5592040.198472, 2927517.711001, 12669647.302276)\n    test 10 hartzell4: 0\n# lazily imported pygeodesy.hartzell4 from .triaxials.triaxial5 by bases.py line 411\n    test 11 hartzell4: (3642031.283571, 3678090.99925, 3714150.714929, 11296639.666827)\n    test 12 hartzell4: 0\n# imported pygeodesy.formy into latlonBase.py line 577\n# lazily imported pygeodesy.Triaxial from .triaxials.triaxial5 by ellipsoids.py line 1905\n# lazily imported pygeodesy.ecef by ellipsoidalVincenty.py line 377\n\n    test 13 hartzell: 30°38′27.119″N, 060°44′36.777″E, +142549.69m\n    test 14 hartzell: 30.640866, 060.743549, +142549.69m\n    test 15 hartzell: [2807429.59, 4862610.688, 3220373.735]\n# lazily imported pygeodesy.Triaxial from .triaxials.triaxial5 by ellipsoids.py line 1905\n    test 16 hartzell: [2684238.298, 4791786.806, 3231700.636]\n    test 17 hartzell: 142549.69438493284  FAILED, KNOWN, expected 142549.6943849337\n# lazily imported pygeodesy.Triaxial from .triaxials.triaxial5 by ellipsoids.py line 1905\n\n    test 18 hartzell: 30°00′00.0″N, 060°00′00.0″E, +100000.00m\n    test 19 hartzell: 30.0, 060.0, +100000.00m\n    test 20 hartzell: [2807429.59, 4862610.688, 3220373.735]\n# lazily imported pygeodesy.Triaxial from .triaxials.triaxial5 by ellipsoids.py line 1905\n    test 21 hartzell: [2764128.32, 4787610.688, 3170373.735]\n    test 22 hartzell: 100000.00000000023  FAILED, KNOWN, expected 100000.0\n\n    testConformal(pygeodesy.triaxials.triaxial5, 26.03.09)\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n# lazily imported pygeodesy.elliptic by triaxial5.py line 542\n# lazily imported pygeodesy.ellipses by bases.py line 424\n    test 23 Conformal: Conformal(name='Test', a=6378172, b=6378102, c=6356752, e2ab=0.00002195, e2bc=0.006683577, e2ac=0.00670538, xyQ2=xyQ2(x=10026968.259439, y=27085126.866409), volume=1083207266220584468480, area=510065604942135.875, R2=6371007.076110449)\n    test 24 xR: 1.5720928043230937  FAILED, KNOWN, expected 1.572092804\n    test 25 yR: 4.246581015231323  FAILED, KNOWN, expected 4.246581015\n    test 26 xyR2.toDegrees: (90.074283, 243.31117)\n    test 27 xyR2.toDegrees: (90.074283, 243.311169)  FAILED, KNOWN, expected ('90°04′27.42″N', '243°18′40.21″E')\n    test 28 areaRG: 510065604942135\n    test 29 area_p: 510065609807745\n    test 30 error: 9.54e-09\n    test 31 volume: 1.083207e+21\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n\n    test 32 Conformal: Conformal(name='Itokawa25134', a=267.5, b=147, c=104.5, e2ab=0.6980138, e2bc=0.494643436, e2ac=0.847389292, xyQ2=xyQ2(x=460.426025, y=209.544083), volume=17212581.945495993, area=359464.659686278, R2=169.130980982)\n    test 33 xyR2: (0.0, 0.61539)\n    test 34 toDegrees: (0.0, 35.259243)\n    test 35 toDegrees: (0.0, 35.259242)  FAILED, KNOWN, expected ('00°00′00.0″N', '035°15′33.27″E')\n    test 36 xyQR2: (3.13215, 1.42547)\n    test 37 toDegrees: (179.458966, 81.673412)  FAILED, KNOWN, expected (179.4589659, 81.673412)\n    test 38 toDegrees: (179.458967, 81.673411)  FAILED, KNOWN, expected ('179°27′32.28″N', '081°40′24.28″E')\n\n    testConformalSphere(pygeodesy.triaxials.triaxial5, 26.03.09)\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 39 ConformalSphere: ConformalSphere(name='Test', a=6378172, ab=1, bc=2, e2ab=0, e2bc=0, e2ac=0, xyQ2=xyQ2(x=11059220.127879, y=12941050.138298), volume=1086869218894412120064, area=511213503913540.8125, R2=6378172)\n    test 40 xR: 1.7339168852579347  FAILED, KNOWN, expected 1.73391688526\n    test 41 yR: 2.028959102748815  FAILED, KNOWN, expected 2.02895910275\n    test 42 xyR2.toDegrees: (99.34612, 116.250793)\n    test 43 xyR2.toDegrees: (99.346119, 116.250794)  FAILED, KNOWN, expected ('99°20′46.03″N', '116°15′02.86″E')\n    test 44 areax: 511213503913540\n    test 45 area_p: 511213503913539  FAILED, KNOWN, expected 511213503913540\n    test 46 volume: 1.086869e+21\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n\n    test 47 ConformalSphere: ConformalSphere(name='Itokawa25134', a=267.5, ab=147, bc=104.5, e2ab=0, e2bc=0, e2ac=0, xyQ2=xyQ2(x=517.119524, y=478.404858), volume=80178876.856908351, area=899202.357273738, R2=267.5)\n    test 48 xyR2: (0.0, 0.818354)\n    test 49 toDegrees: (0.0, 46.888217)\n    test 50 toDegrees: (0.0, 46.888217)  FAILED, KNOWN, expected ('00°00′00.0″N', '046°53′17.58″E')\n    test 51 xyQR2: (1.933157, 1.788429)\n    test 52 toDegrees: (110.761743, 102.469455)  FAILED, KNOWN, expected (179.4589659, 81.673412)\n    test 53 toDegrees: (110.761742, 102.469456)  FAILED, KNOWN, expected ('110°45′42.27″N', '102°28′10.04″E')\n\n    testTriaxial(pygeodesy.triaxials.triaxial5, 26.03.09)\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 54 Triaxial: Triaxial(name='Test', a=6378388, b=6378318, c=6356911.9461, e2ab=0.000021949, e2bc=0.006700868, e2ac=0.00672267, volume=1083307891664673177600, area=510097198412933.0625, R2=6371204.383189477)\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 55 Triaxial: Triaxial_(name='Un', a=6356911.9461, b=6378388, c=6378318, e2ab=-0.00676817, e2bc=0.000021949, e2ac=-0.006746073, volume=1083307891664673308672, area=510097198412933.125, R2=6371204.383189478)\n\n    test 56 forwardBetaOmega: (4234607.381429, 3551286.590486, 3176009.080037)\n    test 57 forwardBetaOmega: (4233813.533025, 3550620.827453, 3175409.655093)\n    test 58 length: 1196.973671\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n\n    test 59 forwardCartesian: (4233813.533151, 3550620.827558, 3175409.654809, 1196.973671)\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 60 forwardCartesian: (4239665.951888, 3553574.566129, 3164352.410834, 12911.309173)\n\n    test 61 reverseCartesian: (4234607.381429, 3551286.590486, 3176009.080037)\n    test 62 reverseCartesian: (4248255.186992, 3560773.833183, 3170763.143924)  FAILED, KNOWN, expected (4234607.381429, 3551286.590486, 3176009.080037)\n\n    test 63 forwardBetaOmega_: (4233813.533025, 3550620.827453, 3175409.655093)\n\n    test 64 reverseLatLon: (30.051881, 39.984967, 0.0)\n    test 65 forwardLatLon: (4233813.533025, 3550620.827453, 3175409.655093)\n\n    test 66 reverseBetaOmega: (0.520687, 0.698121, 12892.55755)\n    test 67 reverseBetaOmega: (0.521162, 0.698437, 12918.032538)\n    test 68 toDegrees: (29.860398, 40.017494, 12918.032538)\n    test 69 toDegrees: (29.860397, 40.017494, 12918.032538)  FAILED, KNOWN, expected ('29°51′37.43″', '40°01′02.98″', 12918.032538)\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n\n    test 70 height4: (3909251.554667, 3909165.750567, 3170432.501602, 999.999996)\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n\n    test 71 height4: (1.206423, 1.61288, 0.433517, 3.593736)\n    test 72 height4: 52\n    test 73 height4: 0\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 74 height4: (-1.206423, -1.61288, -0.433517, 3.593736)\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 75 height4: (0.0, 1.746769, 0.487031, 3.375213)\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 76 height4: (1.563196, 0.0, 0.853517, 2.190477)\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 77 height4: (1.297504, 1.803267, 0.0, 2.306326)\n\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 78 height4(-2, -4, -3): (-1.206423, -1.61288, -0.433517, 3.593736) 52\n    test 79 signBit(-2, -4, -3): (True, True, True)\n\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 80 height4(-2, -4, 0): (-1.297504, -1.803267, 0.0, 2.306326) 52\n    test 81 signBit(-2, -4, 0): (True, True, False)\n\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 82 height4(-2, -4, 3): (-1.206423, -1.61288, 0.433517, 3.593736) 52\n    test 83 signBit(-2, -4, 3): (True, True, False)\n\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 84 height4(-2, 0, -3): (-1.563196, 0.0, -0.853517, 2.190477) 53\n    test 85 signBit(-2, 0, -3): (True, False, True)\n\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 86 height4(-2, 0, 0): (-3.0, 0.0, 0.0, -1.0) None\n    test 87 signBit(-2, 0, 0): (True, False, False)\n\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 88 height4(-2, 0, 3): (-1.563196, 0.0, 0.853517, 2.190477) 53\n    test 89 signBit(-2, 0, 3): (True, False, False)\n\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 90 height4(-2, 4, -3): (-1.206423, 1.61288, -0.433517, 3.593736) 52\n    test 91 signBit(-2, 4, -3): (True, False, True)\n\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 92 height4(-2, 4, 0): (-1.297504, 1.803267, 0.0, 2.306326) 52\n    test 93 signBit(-2, 4, 0): (True, False, False)\n\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 94 height4(-2, 4, 3): (-1.206423, 1.61288, 0.433517, 3.593736) 52\n    test 95 signBit(-2, 4, 3): (True, False, False)\n\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 96 height4(0, -4, -3): (0.0, -1.746769, -0.487031, 3.375213) 54\n    test 97 signBit(0, -4, -3): (False, True, True)\n\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 98 height4(0, -4, 0): (0.0, -2.0, 0.0, 2.0) None\n    test 99 signBit(0, -4, 0): (False, True, False)\n\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 100 height4(0, -4, 3): (0.0, -1.746769, 0.487031, 3.375213) 54\n    test 101 signBit(0, -4, 3): (False, True, False)\n\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 102 height4(0, 0, -3): (0.0, 0.0, -1.0, 2.0) None\n    test 103 signBit(0, 0, -3): (False, False, True)\n\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 104 height4(0, 0, 0): (0.0, 0.0, 0.0, -1.0) None\n    test 105 signBit(0, 0, 0): (False, False, False)\n\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 106 height4(0, 0, 3): (0.0, 0.0, 1.0, 2.0) None\n    test 107 signBit(0, 0, 3): (False, False, False)\n\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 108 height4(0, 4, -3): (0.0, 1.746769, -0.487031, 3.375213) 54\n    test 109 signBit(0, 4, -3): (False, False, True)\n\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 110 height4(0, 4, 0): (0.0, 2.0, 0.0, 2.0) None\n    test 111 signBit(0, 4, 0): (False, False, False)\n\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 112 height4(0, 4, 3): (0.0, 1.746769, 0.487031, 3.375213) 54\n    test 113 signBit(0, 4, 3): (False, False, False)\n\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 114 height4(2, -4, -3): (1.206423, -1.61288, -0.433517, 3.593736) 52\n    test 115 signBit(2, -4, -3): (False, True, True)\n\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 116 height4(2, -4, 0): (1.297504, -1.803267, 0.0, 2.306326) 52\n    test 117 signBit(2, -4, 0): (False, True, False)\n\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 118 height4(2, -4, 3): (1.206423, -1.61288, 0.433517, 3.593736) 52\n    test 119 signBit(2, -4, 3): (False, True, False)\n\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 120 height4(2, 0, -3): (1.563196, 0.0, -0.853517, 2.190477) 53\n    test 121 signBit(2, 0, -3): (False, False, True)\n\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 122 height4(2, 0, 0): (3.0, 0.0, 0.0, -1.0) None\n    test 123 signBit(2, 0, 0): (False, False, False)\n\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 124 height4(2, 0, 3): (1.563196, 0.0, 0.853517, 2.190477) 53\n    test 125 signBit(2, 0, 3): (False, False, False)\n\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 126 height4(2, 4, -3): (1.206423, 1.61288, -0.433517, 3.593736) 52\n    test 127 signBit(2, 4, -3): (False, False, True)\n\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 128 height4(2, 4, 0): (1.297504, 1.803267, 0.0, 2.306326) 52\n    test 129 signBit(2, 4, 0): (False, False, False)\n\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 130 height4(2, 4, 3): (1.206423, 1.61288, 0.433517, 3.593736) 52\n    test 131 signBit(2, 4, 3): (False, False, False)\n\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 132 _plumbTo5: 2.356, 1.116, 0.268, 6.503, 54\n    test 133 _plumbTo5: 2.356, 0.268, 1.116, 6.503, 54\n    test 134 _plumbTo5: 1.116, 2.356, 0.268, 6.503, 54\n    test 135 _plumbTo5: 1.116, 0.268, 2.356, 6.503, 54\n    test 136 _plumbTo5: 0.268, 2.356, 1.116, 6.503, 54\n    test 137 _plumbTo5: 0.268, 1.116, 2.356, 6.503, 54\n\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 138 _plumbTo5(-9300557.963570276, -11660481.511793813, 0.0): (-3962700.829072, -4987439.729515, 0.0, 8545303.120214) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 139 _plumbTo5(0.0, -12673220.90213298, 4063222.7994714356): (0.0, -6073846.031207, 1947342.96726, 6930273.887183) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 140 _plumbTo5(2499951.171555953, 6362115.170256343, -7034566.006072541): (1621709.788784, 4136852.378785, -4574066.473867, 3431786.759912) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 141 _plumbTo5(-9399021.583039021, -7763804.562755707, -6951119.751015274): (-4256878.854533, -3529258.643752, -3159791.771735, 7664670.823131) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 142 _plumbTo5(-9612922.39422538, 3333663.5145574105, 5962187.189486663): (-5182331.629107, 1802765.616547, 3224175.948651, 5428672.808065) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 143 _plumbTo5(-11328035.20390406, -9256612.246624056, -7692781.497645869): (-4355036.26798, -3573470.200045, -2969720.914727, 10160123.963414) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 144 _plumbTo5(1598946.114177574, -11973388.958217159, 0.0): (841594.384072, -6322243.162372, 0.0, 5701669.093257) 55\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 145 _plumbTo5(-10308543.102586422, 1905777.409769761, 6374385.685515664): (-5341300.900271, 990674.649223, 3313543.184377, 5905900.86063) 52\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 146 _plumbTo5(-8735659.812590662, -6834366.166941474, 0.0): (-5007671.762691, -3929037.172672, 0.0, 4726397.30293) 49\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 147 _plumbTo5(2573537.1013443363, 5389514.603678346, 3732045.3303140495): (2328470.382191, 4879418.28281, 3378814.925965, 667103.943892) 56\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 148 _plumbTo5(1431210.08717349, 1543852.068510235, -9327538.892237142): (952507.562384, 1029789.273711, -6221664.3004, 3184316.825389) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 149 _plumbTo5(-6918305.550287351, 5935533.8579224525, 0.0): (-4827349.027207, 4150037.850017, 0.0, 2749562.724445) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 150 _plumbTo5(-9690082.180926248, -12628809.340338562, -9286452.325150812): (-3340011.67621, -4372204.152622, -3215004.809673, 12056425.654973) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 151 _plumbTo5(6115158.880607812, -9076497.651064131, -8024493.905200128): (2863993.849608, -4266165.0229, -3771654.917276, 7196944.734371) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 152 _plumbTo5(1724581.719029579, -6998172.662048493, -7855478.093763296): (1028985.282031, -4186867.746033, -4699735.122818, 4283223.48619) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 153 _plumbTo5(2415660.719960912, 3370437.398145044, 4064858.8972798586): (2653346.350446, 3699619.79338, 4461873.310774, -567869.661801) 57\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 154 _plumbTo5(4680172.356713349, 3934108.248885277, -12216049.126176806): (2177456.956147, 1836953.284537, -5703973.450785, 7284831.701745) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 155 _plumbTo5(-11233201.5712916, 6234031.774633325, 2200909.912500357): (-5478411.907088, 3050833.099543, 1077077.210703, 6671833.168324) 51\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 156 _plumbTo5(-11715241.42141346, -10821620.410300551, 0.0): (-4668119.327083, -4329550.547309, 0.0, 9581696.139952) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 157 _plumbTo5(-10345293.423252314, 0.0, -10870372.84072365): (-4381253.482469, 0.0, -4621478.658329, 8638197.203006) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 158 _plumbTo5(-7557919.112373196, -11824465.154778786, -8112109.980877586): (-2962336.280569, -4653637.304907, -3192560.055644, 9835757.473797) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 159 _plumbTo5(1838805.8848315026, -6725371.874146875, -11338156.124049723): (878072.411204, -3222840.9156, -5433254.316061, 6932430.835206) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 160 _plumbTo5(4963022.036653666, -7903436.513628428, 4517677.539411903): (3044634.97533, -4861105.025942, 2778629.195588, 3995031.782124) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 161 _plumbTo5(-8457240.198937353, 4465676.5419738265, 3454646.1876322697): (-5288403.367483, 2799487.292288, 2165664.890427, 3805152.59414) 52\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 162 _plumbTo5(0.0, -11746093.313145366, -7753017.004196427): (0.0, -5323340.222224, -3513632.219973, 7695722.228332) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 163 _plumbTo5(-11330258.40928789, -8840032.800537905, 3934021.6803214545): (-4833061.479002, -3785417.937653, 1684578.516197, 8533621.383191) 52\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 164 _plumbTo5(896051.3721805144, -12424974.283212215, -11664464.01489593): (333488.669933, -4643875.404912, -4359572.240515, 10687535.748865) 55\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 165 _plumbTo5(-11487978.414727544, 4802532.579191126, -7527288.768773187): (-5018370.895409, 2105895.452992, -3300651.805118, 8184872.220563) 52\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 166 _plumbTo5(-9546307.350822354, 4184538.924485122, 3361649.2321092547): (-5541804.863402, 2436070.68603, 1956999.371538, 4589795.483837) 52\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 167 _plumbTo5(3304719.1006247634, 6368069.492745702, 5147486.989470732): (2382176.324136, 4598995.150383, 3717472.520953, 2454720.062131) 49\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 168 _plumbTo5(-11018841.687343763, -10458281.327678155, 1715534.1896014542): (-4580406.544453, -4364532.4739, 715931.106356, 8921122.603472) 52\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 169 _plumbTo5(3689058.5582935237, 5794731.588921194, -12171672.035017816): (1677443.495773, 2644603.971725, -5554850.5793, 7599488.492078) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 170 _plumbTo5(-10633023.927465683, 5600503.720165909, -10521933.62404787): (-4230098.528732, 2237084.904542, -4202862.773683, 9604202.007609) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 171 _plumbTo5(1581203.1457984832, 972784.2195132434, -11582061.407866646): (857161.119854, 528969.075136, -6297893.034445, 5351975.722701) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 172 _plumbTo5(2258768.8877436225, -10545885.529490544, -11638568.100146323): (904335.151273, -4239307.382901, -4678490.005432, 9489473.417954) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 173 _plumbTo5(5449452.583609067, 4374805.24215859, 0.0): (4962521.845408, 3986293.169835, 0.0, 622931.115089) 55\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 174 _plumbTo5(0.0, -12044606.76119266, -11107727.393653879): (0.0, -4688878.45938, -4324100.12185, 10006214.959356) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 175 _plumbTo5(1391615.2762485908, 4643471.617773707, -8524542.497803029): (902989.115857, 3020177.55943, -5544436.689757, 3428537.552897) 55\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 176 _plumbTo5(4553332.79516834, 0.0, -11948204.910893947): (2263714.441299, 0.0, -5960198.641149, 6410816.741483) 46\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 177 _plumbTo5(-6991240.9522123765, 3573758.163707412, -11499098.86986609): (-3191114.176552, 1637205.196693, -5267888.77311, 7551104.566556) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 178 _plumbTo5(4346071.768838822, -12676369.788059339, -8625714.865661299): (1732485.105983, -5073723.993416, -3452401.680407, 9560032.826084) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 179 _plumbTo5(-11796704.490959167, 4693605.909583221, -7755512.678621262): (-5039630.336279, 2012890.588977, -3325972.201965, 8512644.395034) 52\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 180 _plumbTo5(-9857935.929440495, -7083469.29429921, -7597293.530919445): (-4375144.938277, -3155581.107273, -3384441.033989, 7952196.477921) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 181 _plumbTo5(-7849265.43363731, -12296239.547632324, -11695203.666485839): (-2666327.692743, -4195550.606205, -3990415.860312, 12322652.315549) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 182 _plumbTo5(5782789.149559475, 4230398.681706039, -10100876.341130221): (2968611.562144, 2178815.561377, -5202278.543157, 6010395.093456) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 183 _plumbTo5(-6721627.728424339, 3921334.050215278, 4341917.669793846): (-4797940.587727, 2804468.92205, 3105243.492973, 2545058.535557) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 184 _plumbTo5(3103613.487675563, 3353974.9701309437, 6140525.238593257): (2582394.320743, 2793864.508925, 5115044.92371, 1279454.190248) 56\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 185 _plumbTo5(4871989.8030514065, 1511221.8994557532, -11374991.639695557): (2484500.466358, 773203.931791, -5819856.095636, 6091330.459456) 55\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 186 _plumbTo5(3983476.357183724, -11896358.651329251, -8874776.080755137): (1646939.314496, -4937934.337559, -3683690.128022, 8990353.032611) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 187 _plumbTo5(-12232241.75844025, -8896123.163864251, -12061095.74698321): (-4016778.735414, -2934526.024306, -3978483.447105, 12975480.52009) 51\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 188 _plumbTo5(6051890.922149057, -9138866.342165468, -7899662.153607158): (2846953.972979, -4314501.247901, -3729423.981743, 7137016.591055) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 189 _plumbTo5(0.0, -12018001.797308534, -9669847.362812674): (0.0, -4969484.39998, -3998463.12413, 9046888.784727) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 190 _plumbTo5(1104159.7450067785, -8933322.846628752, -8232288.85554826): (575505.363003, -4671223.175101, -4304608.312774, 5819935.009237) 55\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 191 _plumbTo5(-12285698.649100646, -6468839.019335532, 1111825.1234923722): (-5606534.170441, -2962859.976193, 509232.485363, 7567446.403608) 51\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 192 _plumbTo5(6164586.315447328, -6570993.547312566, -7009338.728096933): (3433836.285126, -3671148.330678, -3916009.463584, 5043290.983795) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 193 _plumbTo5(5810856.18558647, 0.0, 5443736.935053998): (4643539.338101, 0.0, 4356032.71558, 1595534.108531) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 194 _plumbTo5(3045291.2748601795, -12047166.523940891, 4145312.0264436): (1477707.357284, -5866107.404541, 2018447.381737, 6722080.361991) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 195 _plumbTo5(-12310686.861604113, 4490997.749010969, 4706333.140706941): (-5620100.827678, 2057758.070922, 2156398.283032, 7562193.106949) 51\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 196 _plumbTo5(0.0, -10417005.95004532, 1096043.9416744518): (0.0, -6343372.094827, 667423.529425, 4096121.121766) 55\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 197 _plumbTo5(-9328658.157408016, -8727445.91510853, -7164361.624406569): (-4047787.679128, -3801383.053863, -3120517.243101, 8276857.235783) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 198 _plumbTo5(4004540.7175387996, -11570302.120248156, -9648174.197345335): (1632110.000481, -4734504.672948, -3947929.189058, 9211370.549612) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 199 _plumbTo5(4951059.590957711, -10579905.153037313, 0.0): (2695071.612036, -5776786.518702, 0.0, 5306545.993067) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 200 _plumbTo5(-9817215.707186649, 1404424.6605718988, -7635711.877316512): (-4986241.366763, 715685.986293, -3891068.931154, 6151018.194862) 52\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 201 _plumbTo5(-9226958.012842577, -11904773.189821461, 1232606.3717949751): (-3879997.259142, -5025614.86624, 520339.719152, 8741860.918991) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 202 _plumbTo5(-9294215.903196817, -9475838.607438505, -7258008.370200141): (-3904243.12217, -3996117.310094, -3060782.896861, 8757616.899067) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 203 _plumbTo5(1813071.5166954175, -11870699.784259336, 0.0): (959984.408777, -6305237.986816, 0.0, 5630463.802609) 55\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 204 _plumbTo5(-8070414.213571079, 2121751.216468508, -11940859.681137668): (-3520659.244601, 929119.789927, -5228865.699716, 8195944.314347) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 205 _plumbTo5(1983182.8093028092, -7201637.66773865, 3707586.824689597): (1514301.762836, -5507719.018525, 2835499.643779, 1962076.929429) 55\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 206 _plumbTo5(5748153.737118241, -6882237.916418789, 2587629.85032861): (3918240.471327, -4701352.809943, 1767633.784285, 2962640.031508) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 207 _plumbTo5(3599567.4561901274, 3568156.378792255, 5087296.333534707): (3192628.239273, 3167175.349451, 4515586.787491, 808230.856373) 55\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 208 _plumbTo5(6332182.791791897, 650768.1906614412, 5229220.500981262): (4889934.279374, 503316.759349, 4044360.595285, 1872355.65326) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 209 _plumbTo5(-7686777.522571826, 5938745.815625527, 3226655.8410251727): (-4775676.603719, 3699069.150747, 2009771.869735, 3869297.96249) 52\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 210 _plumbTo5(-11334586.650609732, 3226213.631890666, -9803475.289560119): (-4699110.593827, 1342813.41715, -4080346.4914, 8962753.042975) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 211 _plumbTo5(1209250.1021613986, -7927451.295950009, -9884218.82879363): (603947.984131, -3972655.39577, -4953189.093461, 6349949.253097) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 212 _plumbTo5(-9468560.73748405, -7719648.903467059, 5285089.176401713): (-4521609.402029, -3699428.974742, 2532704.373933, 6943350.624269) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 213 _plumbTo5(-11609395.379492946, -12479358.161318503, -8004658.667638679): (-3916521.929023, -4228849.152327, -2712479.469611, 12460271.325154) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 214 _plumbTo5(-7482168.509654696, -10663969.206387935, -6775795.621459396): (-3238104.211183, -4632777.701726, -2943591.132153, 8311025.447159) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 215 _plumbTo5(-12051586.67131921, -7937133.918586954, 6171101.6767646205): (-4880071.659805, -3226907.639097, 2508879.900608, 9328918.881743) 50\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 216 _plumbTo5(2693704.1644080514, 5886511.878573126, -7713610.831206213): (1701853.791801, 3728264.716598, -4885431.688261, 3693290.570535) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 217 _plumbTo5(4191881.2603775556, 5756491.153644105, 3844435.861708639): (3297512.922422, 4534806.33283, 3028527.346869, 1719917.216012) 55\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 218 _plumbTo5(-7620050.690786623, 6233697.178296718, -11376300.748524757): (-3218491.145035, 2643199.220824, -4823694.2317, 8671911.795086) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 219 _plumbTo5(-10402923.998065077, -9278259.065432366, -10991960.007401204): (-3722932.992823, -3334840.833801, -3950732.720985, 11380921.834595) 52\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 220 _plumbTo5(1664289.6338429423, -10314363.339718409, -11403226.716545999): (683673.150532, -4253884.829219, -4702896.915317, 9087652.497142) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 221 _plumbTo5(-7218119.32792659, 1021119.5917858669, 2969411.4999289806): (-5831133.043799, 825974.955578, 2401921.639022, 1511243.568599) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 222 _plumbTo5(2362590.260898539, -11179920.812016979, 4029496.2855799953): (1239737.875911, -5885318.850543, 2121179.956116, 5738926.608889) 55\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 223 _plumbTo5(-6425902.437780579, 0.0, -7204483.762955237): (-4233887.154159, 0.0, -4757752.759748, 3285030.229037) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 224 _plumbTo5(-7027549.803612396, 1892547.8059282005, 2643227.812884008): (-5771696.602951, 1556211.005249, 2173474.378512, 1382374.0428) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 225 _plumbTo5(2231918.1899190005, 1142355.6533181877, -8953604.648739627): (1527716.907525, 783588.596899, -6141602.328426, 2920953.662136) 55\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 226 _plumbTo5(-6712867.954197352, -10099305.754589057, -6972710.889221444): (-3049882.60141, -4605349.612886, -3179563.898031, 7615049.56507) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 227 _plumbTo5(-11544512.912700232, 5172690.252464141, -6575481.046907441): (-5146737.608908, 2314695.737583, -2942386.38478, 7892973.983796) 52\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 228 _plumbTo5(-7231418.854726524, -6931901.764431111, 5928608.696365689): (-3949987.12744, -3797969.170954, 3248235.531947, 5270078.555566) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 229 _plumbTo5(2641171.1753598885, -8793189.37091239, -6725045.423073929): (1475827.679651, -4928056.107131, -3768948.901374, 5003577.445727) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 230 _plumbTo5(0.0, -9577834.41768268, 888799.0753286064): (0.0, -6351100.567623, 589361.88746, 3240597.779516) 55\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 231 _plumbTo5(4002145.9929036815, 2688128.1429674844, 4846498.54240657): (3728737.130986, 2505637.898739, 4517475.240442, 465092.924316) 56\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 232 _plumbTo5(3585868.545969172, 1409502.4515369476, 2541452.690286451): (4950202.413631, 1940818.862431, 3499490.281395, -1749725.70905) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 233 _plumbTo5(-8384452.668034479, 1341358.3925355002, 5593378.076872706): (-5243384.864758, 840963.227664, 3506733.764323, 3804048.731667) 52\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 234 _plumbTo5(-11127395.128320502, -7531662.078340402, -11376309.34465787): (-4015505.65089, -2729654.017282, -4122988.207916, 11236054.506381) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 235 _plumbTo5(3643497.5895474995, -7089488.769009512, -10173411.609088594): (1792017.513542, -3498846.225523, -5020786.16202, 6547537.044166) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 236 _plumbTo5(5284647.583569344, 3370368.361303387, 2734738.991192815): (4918192.413272, 3138118.630801, 2546286.185455, 473015.633089) 50\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 237 _plumbTo5(2165182.6086123274, -11519500.837459859, -9758941.874604877): (901938.174806, -4817510.368655, -4081184.069338, 8874085.667761) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 238 _plumbTo5(-12600826.927904561, -9290879.419657387, -12241523.357668605): (-4027695.375886, -2983357.849127, -3930768.977006, 13503779.150543) 50\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 239 _plumbTo5(5612095.245443665, -10677594.811703626, -11820492.387762226): (2110828.183871, -4032984.994641, -4464602.574506, 10512793.425261) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 240 _plumbTo5(4915145.849724457, -10885520.301474974, -6803086.4809331875): (2272648.496157, -5051467.360276, -3156961.182649, 7369748.684664) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 241 _plumbTo5(-6728975.719938926, 3345234.81829062, -12683648.048361583): (-2900434.964377, 1447455.164183, -5488040.230257, 8368755.212366) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 242 _plumbTo5(4910584.480358762, -12653948.216023926, 3085021.47222811): (2242049.885102, -5798659.883821, 1413691.381391, 7543831.869565) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 243 _plumbTo5(-8976906.995057743, -9619108.708378227, 5341574.496066876): (-4017806.465846, -4321285.931711, 2399618.549335, 7830370.93785) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 244 _plumbTo5(-8463830.60810678, -7621108.048355309, -12579467.635422356): (-3168636.328414, -2865193.748246, -4729249.094881, 10596401.956511) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 245 _plumbTo5(1096467.0995059202, -11549861.822415227, 0.0): (600978.394585, -6349819.993803, 0.0, 5223594.937973) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 246 _plumbTo5(-10948589.651644278, 4096868.3982894733, -9856144.814623823): (-4550546.687626, 1709491.36288, -4112599.499603, 8923162.873349) 52\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 247 _plumbTo5(4619417.249218382, 5237425.25954452, 3282666.6246967996): (3810828.926746, 4325750.377186, 2711244.825867, 1345915.687753) 55\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 248 _plumbTo5(-10352564.08620045, 2632384.685482822, -12615030.119492823): (-3979375.679008, 1016055.563474, -4869120.711095, 10160175.336446) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 249 _plumbTo5(-6374498.1621567765, 5714309.31746465, -12658681.207655726): (-2650451.17611, 2385319.632571, -5284035.74732, 8907081.112355) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 250 _plumbTo5(-9547671.32285483, 5249547.247491227, -10732297.281332353): (-3967173.537695, 2189855.357686, -4476934.281938, 8923745.63986) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 251 _plumbTo5(-11972987.62530657, -12507480.894571241, 1919466.9395276478): (-4366969.326822, -4581483.837835, 703089.976087, 11052262.963641) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 252 _plumbTo5(1652783.0323908583, 2840836.833053788, 0.0): (3220011.208786, 5499562.319795, 0.0, -3086263.982672) 52\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 253 _plumbTo5(6115935.680307476, 5225325.066884209, 4422997.138710556): (4238219.612231, 3628533.76556, 3071366.203986, 2811132.561087) 49\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 254 _plumbTo5(4786881.182332999, 5664841.95346354, -8266982.897206812): (2740994.147522, 3253066.066256, -4747315.184507, 4731847.15488) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 255 _plumbTo5(-6496617.750344593, 5554441.1092062695, 1471685.403438614): (-4764933.099421, 4081208.542633, 1081336.529752, 2306841.60025) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 256 _plumbTo5(-12176778.11646319, -9682834.344611239, 4347916.439438347): (-4790470.31358, -3824924.736874, 1717496.315524, 9787326.394866) 52\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 257 _plumbTo5(-9365644.216718012, 4733451.038753265, -11073116.001735907): (-3901241.006007, 1979474.085869, -4630588.989784, 8885395.084405) 52\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 258 _plumbTo5(4450309.889617256, 645982.6533403223, 3807808.3053228823): (4809066.396238, 697679.685853, 4112548.773739, -473545.7394) 56\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 259 _plumbTo5(-10897654.174125204, 3427500.0593593866, 4452955.484309489): (-5650155.448166, 1782842.575288, 2316217.322187, 5899728.052404) 52\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 260 _plumbTo5(-10300722.762891443, 4646709.354523863, 0.0): (-5795024.708596, 2621875.532137, 0.0, 4939763.857186) 52\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 261 _plumbTo5(-6407802.803643308, -11779837.799284488, 6016502.484862392): (-2770429.304206, -5112551.894435, 2611181.883109, 8323424.518318) 49\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 262 _plumbTo5(-9312220.916544143, 0.0, 2930677.098050242): (-6064270.366404, 0.0, 1912975.713433, 3403659.631104) 50\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 263 _plumbTo5(4223812.965309883, 4281649.191668366, 2485617.640313916): (4133584.137102, 4190786.705375, 2432868.281192, 138490.89408) 58\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 264 _plumbTo5(2997827.5860604886, 2363371.7748296508, 3693859.292852399): (3599054.380706, 2833535.475957, 4428726.434305, -1059508.036801) 55\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 265 _plumbTo5(-12671667.096779136, -8014332.614031527, -12514806.489256885): (-4121763.16835, -2618732.065372, -4089228.926937, 13160688.421384) 52\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 266 _plumbTo5(843842.4429774315, 5991376.498376857, 5431653.017581945): (660983.193097, 4699901.98138, 4260809.849692, 1752774.274433) 55\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 267 _plumbTo5(6048815.4644721355, -6531440.6165109, 2680947.655849851): (4138881.420978, -4478622.839951, 1838318.875985, 2927786.21742) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 268 _plumbTo5(4879174.123259943, 6178552.909205879, -9312714.500258692): (2543785.883293, 3231623.200863, -4870860.478112, 5819664.946658) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 269 _plumbTo5(5004240.984960998, 5008152.657427486, -7621306.588594056): (3059892.632886, 3070304.181009, -4672287.837379, 4028952.571922) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 270 _plumbTo5(1028902.8176837482, 1463749.009664159, -11899885.427998018): (543636.004436, 775853.372204, -6307414.004629, 5655477.071767) 55\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 271 _plumbTo5(-7824340.925363246, 0.0, 6317410.509504235): (-4947745.089333, 0.0, 4004698.984614, 3690994.202275) 50\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 272 _plumbTo5(2676863.5805767775, -11327824.769266207, 4593035.990907264): (1359964.170989, -5774128.632267, 2341181.627765, 6135846.552017) 55\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 273 _plumbTo5(2249619.3764058473, 0.0, 2000528.005466659): (4772982.699562, 0.0, 4212824.696466, -3355833.593856) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 274 _plumbTo5(4956193.912239468, -6662625.684179544, -12509472.725925844): (2097393.079693, -2830507.469295, -5314377.642959, 8638707.395552) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 275 _plumbTo5(-7710884.382492995, -8115183.079708684, -10228275.549669709): (-3231300.879861, -3414058.684292, -4302982.275302, 8790696.179798) 51\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 276 _plumbTo5(-11910621.648411252, 1849226.3777106311, -11164643.952148305): (-4606783.054862, 718203.441796, -4336071.648631, 10062537.989322) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 277 _plumbTo5(-8963429.03901859, -12098854.85488883, -12528055.925180355): (-2906246.229705, -3940759.795174, -4080495.9656, 13213827.903356) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 278 _plumbTo5(927303.6460785953, -8533293.54233783, 4443040.206372032): (610541.887073, -5631299.878717, 2932033.79078, 3287102.922578) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 279 _plumbTo5(-6431337.940867692, -7913672.569001737, 5828173.463683117): (-3481478.58698, -4297161.58015, 3164693.971997, 5373541.192067) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 280 _plumbTo5(-8448735.745283416, 5129243.357844096, -10571551.163388707): (-3710087.82749, 2260926.228049, -4659791.368339, 8101291.941429) 51\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 281 _plumbTo5(5393086.038674854, -8494853.68575136, 5585824.584238706): (2979754.3005, -4707685.779418, 3095527.08197, 5135016.307574) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 282 _plumbTo5(-11205486.606434723, -7011822.282899194, -10835770.19866757): (-4165498.890505, -2617612.609663, -4045090.906694, 10723051.381917) 52\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 283 _plumbTo5(6275896.587395679, -10723555.081638275, 3233841.235540427): (3107296.274643, -5327485.16049, 1606561.516206, 6465727.942069) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 284 _plumbTo5(3125485.316489174, -10929776.597293055, -12044882.966157196): (1198721.510979, -4209356.554006, -4638751.976627, 10184657.115216) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 285 _plumbTo5(1128407.9171078762, -11414403.065658463, 1389920.7991218064): (621055.484164, -6301329.382455, 767299.227734, 5175769.179769) 55\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 286 _plumbTo5(3289455.1444503507, -10532590.717592202, 768720.1252257226): (1891368.133389, -6073373.389023, 443260.456245, 4684569.400707) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 287 _plumbTo5(-8273239.3690780625, 4551919.260081756, 2824563.0226685693): (-5337507.566666, 2943707.935669, 1826619.417213, 3492958.104434) 52\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 288 _plumbTo5(-12133632.704022642, 2746254.8093428193, 2446007.3482782515): (-6083621.960558, 1381562.116047, 1230502.798798, 6320005.336468) 51\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 289 _plumbTo5(4775429.171595646, -9671093.87977823, -12524798.659580927): (1835296.133104, -3732249.080536, -4833479.934748, 10152371.32696) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 290 _plumbTo5(-10435782.82633078, -7925112.822431733, -8403700.54123353): (-4260067.658051, -3248090.663106, -3444194.209003, 9198407.317465) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 291 _plumbTo5(3603584.0845118295, 0.0, -10120993.933385288): (2133439.195914, 0.0, -6008383.520808, 4367481.013023) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 292 _plumbTo5(-9664916.035389349, -7917807.310617949, -12320730.836396314): (-3499114.577165, -2878933.301722, -4479784.042203, 11175321.271853) 52\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 293 _plumbTo5(-11223451.251595035, -11348169.077705335, -12213872.07898085): (-3546933.966741, -3602915.002067, -3877707.797474, 13726234.489077) 52\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 294 _plumbTo5(-6811282.166974648, -12177324.354896916, -8996003.148229187): (-2606422.576339, -4679225.458155, -3456732.925814, 10226722.1454) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 295 _plumbTo5(-11154863.461440096, -8947080.852138057, -11618316.715300346): (-3846146.833057, -3098561.610353, -4023608.842631, 12054132.22703) 51\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 296 _plumbTo5(4191966.3726614984, 3123849.0923887882, 2947354.2394098826): (4448807.200943, 3313881.641178, 3126654.283481, -366371.514279) 46\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 297 _plumbTo5(5665049.081532614, 2566892.2880729376, -9480432.800548682): (3177104.472307, 1443841.706181, -5332562.213074, 4965474.941886) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 298 _plumbTo5(5556124.743367095, 1168361.8576344524, 1187537.9875167399): (6091100.197387, 1280029.85706, 1301041.50474, -558168.009583) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 299 _plumbTo5(2276563.482327411, -8689794.726123603, -7465168.684773928): (1239389.701005, -4745367.133163, -4076576.523879, 5302527.257983) 55\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 300 _plumbTo5(-8734090.01152988, 0.0, 4418867.843251729): (-5673436.483401, 0.0, 2877136.978074, 3427029.921067) 52\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 301 _plumbTo5(1444387.4150171918, 0.0, 4211625.268281281): (2073822.401778, 0.0, 6029360.501319, -1923629.324996) 55\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 302 _plumbTo5(-11133071.204268023, -11781972.996607397, -11485371.789095623): (-3559439.343785, -3784211.083498, -3688891.806325, 13494784.003409) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 303 _plumbTo5(-9128602.027238317, -8530971.77034427, 3486461.3258541655): (-4473434.198708, -4194949.275765, 1714384.438693, 6603933.303668) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 304 _plumbTo5(-9720915.901739083, 3730342.60333391, 4413725.624805318): (-5464855.737041, 2103296.034562, 2488587.166636, 4946462.04328) 52\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 305 _plumbTo5(-10972481.63377289, -7697329.818069239, 6184679.253598231): (-4724306.631505, -3326894.662448, 2673072.410756, 8394746.984105) 52\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 306 _plumbTo5(-12027956.281505307, 1110329.7659182232, -9924933.257068772): (-4889552.230375, 453174.480113, -4050749.766503, 9267939.207164) 52\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 307 _plumbTo5(-8103963.2829771275, -10799194.916861724, -11397381.355404545): (-2913442.831149, -3899190.416976, -4115115.734203, 11295262.601508) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 308 _plumbTo5(937760.1549680583, 4827669.481438421, -8889403.069840351): (587287.716319, 3031022.799018, -5581111.835477, 3780947.119846) 55\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 309 _plumbTo5(-11922254.151162934, -11747879.35310438, -7441515.373637279): (-4135065.269048, -4092556.279272, -2592330.408245, 11948174.625401) 48\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 310 _plumbTo5(-7450856.414664825, -9366628.03196191, -11030656.150018612): (-2908303.9347, -3671136.457607, -4323274.43127, 9902644.941014) 50\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 311 _plumbTo5(1098222.4362153925, -8032723.312762036, 0.0): (862730.359678, -6319374.354403, 0.0, 1729456.900655) 55\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 312 _plumbTo5(1299127.4897925493, 2885681.3581270934, -12324231.3438349): (649043.363274, 1446551.021563, -6177894.257751, 6345956.592424) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 313 _plumbTo5(4456791.842035057, -9415133.72987674, -12287162.106862785): (1757647.802402, -3728273.817222, -4865496.206044, 9731745.93566) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 314 _plumbTo5(2071973.9900840144, -7049913.407619529, -7891732.311576463): (1222207.569923, -4170071.603383, -4667971.341485, 4405476.88435) 55\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 315 _plumbTo5(2046982.703788181, 6049444.90896574, 926986.7966164164): (2022381.277479, 5977223.284321, 915919.674686, 77095.229623) 59\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 316 _plumbTo5(5396414.831406125, -12570693.831675846, 764714.9246019324): (2503220.741109, -5852227.502514, 356005.267035, 7326350.076566) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 317 _plumbTo5(-9197102.75829913, 4846690.558383889, 2564943.113154864): (-5460989.53354, 2885713.750285, 1527150.493499, 4345225.608819) 52\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 318 _plumbTo5(0.0, 2318329.077963764, 3188269.6439349214): (0.0, 3751090.547009, 5158737.156961, -2436297.938897) 51\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 319 _plumbTo5(-12684552.315130716, 5543633.716783456, -11039834.326458577): (-4551950.193988, 1997987.751458, -3978824.221966, 11338813.265417) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 320 _plumbTo5(-6981850.679551049, -10229708.153014995, -12072336.553961737): (-2564251.063275, -3773153.649096, -4452732.082674, 10920652.669628) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 321 _plumbTo5(4717153.364383534, -11550204.852326058, -9687614.149053277): (1897251.699922, -4664268.017528, -3912055.079591, 9419397.754364) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 322 _plumbTo5(0.0, -9149649.80780371, -12025931.976038957): (0.0, -3862119.471301, -5076150.223256, 8732550.799781) 52\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 323 _plumbTo5(-10400971.886727747, -6619927.338470895, -9929357.98233453): (-4175137.323295, -2668094.583735, -4001874.608708, 9461134.03759) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 324 _plumbTo5(-11028176.160065496, -9020134.774358388, -12389868.361876594): (-3710317.814977, -3048330.981378, -4187062.798472, 12509976.435296) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 325 _plumbTo5(2160858.3727727593, -12142093.540891415, 1538265.3958220098): (1105327.992916, -6231419.001309, 789441.603717, 6050698.71728) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 326 _plumbTo5(-11778932.210256143, 2715666.6502514402, 3389402.4416597723): (-5964418.038968, 1379692.296524, 1721964.639273, 6194655.062775) 51\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 327 _plumbTo5(6242300.4629256865, -11609606.987093499, -11621007.296069987): (2256327.514534, -4214473.248211, -4218552.76137, 11196978.007461) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 328 _plumbTo5(5053610.033101153, 5726798.200078992, 1099811.8257685653): (4168403.736804, 4729243.125054, 908231.344581, 1347371.290878) 55\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 329 _plumbTo5(5294780.00028327, 6375398.744487379, 3043351.136814746): (3816120.677121, 4603600.762269, 2197554.80587, 2457859.417706) 51\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 330 _plumbTo5(2365954.408033079, 2905572.0641120616, 4151171.3655798878): (2699030.899007, 3311481.322775, 4731105.714541, -782320.98541) 57\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 331 _plumbTo5(-8069919.063106484, -11908872.159137841, -9885496.27648023): (-2936911.077608, -4352645.583092, -3613059.39678, 11080965.456924) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 332 _plumbTo5(5850495.9458770165, 5722036.744563128, 5843952.116368118): (3700618.844724, 3628327.771535, 3705604.212589, 3684850.142326) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 333 _plumbTo5(-10331153.415166039, -6434233.675718262, 0.0): (-5396216.804492, -3371586.314296, 0.0, 5808046.850001) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 334 _plumbTo5(3164853.877214977, 4939341.954363132, 1068091.655227124): (3383371.408421, 5277929.282849, 1141310.068827, -409575.666448) 56\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 335 _plumbTo5(5498517.17816853, -8925354.25639353, 2445953.3664836087): (3248545.573968, -5287680.224561, 1449052.124429, 4391908.089656) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 336 _plumbTo5(-8710547.801684523, -10332953.497187626, -8930947.738230154): (-3416510.721256, -4069489.151947, -3517282.003837, 9826779.273841) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 337 _plumbTo5(0.0, -11550920.057393795, -7768721.120777687): (0.0, -5292693.766022, -3559627.516598, 7542006.714579) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 338 _plumbTo5(0.0, -9803080.937976882, 4458103.176905968): (0.0, -5806187.167737, 2640430.082921, 4390796.657461) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 339 _plumbTo5(-7276509.183351506, -8917367.667206984, 6249199.0544481715): (-3531706.297866, -4343135.080566, 3043589.887632, 6724810.966727) 50\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 340 _plumbTo5(2823245.411586701, 4582795.479539332, 5350381.393488043): (2369418.395217, 3850287.623379, 4495167.868088, 1214049.790639) 56\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 341 _plumbTo5(-12528344.906528033, -12365699.29317108, -12617957.75277874): (-3673786.830107, -3643403.961568, -3717671.312057, 15287142.745043) 51\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 342 _plumbTo5(0.0, -7535383.558510379, 1584260.232439418): (0.0, -6241924.809388, 1312314.882847, 1321737.420536) 56\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 343 _plumbTo5(5681134.892072343, 0.0, 6021997.242841809): (4366420.627852, 0.0, 4635589.853592, 1910654.088398) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 344 _plumbTo5(-9036049.386057062, -6596315.918400789, 3304156.40609904): (-4924735.110083, -3606086.672545, 1806304.605855, 5299805.282658) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 345 _plumbTo5(-7336909.023578265, 6090889.994283991, 4150459.4186733067): (-4486421.146722, 3734250.570018, 2544574.576346, 4032108.2127) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 346 _plumbTo5(4362760.760163215, 5289584.135459404, -11656574.830657663): (2050393.728071, 2494868.309682, -5497838.988507, 7147552.379056) 52\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 347 _plumbTo5(-12461395.797481904, -7119758.596486539, -6921685.5837864615): (-4970253.759135, -2851253.421807, -2771894.543209, 9568600.270959) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 348 _plumbTo5(-7566143.677164096, 4543104.188867149, -9082596.857817126): (-3797966.248649, 2288156.447948, -4574444.100018, 6293440.373492) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 349 _plumbTo5(4842339.5176830925, -8813228.308928099, -6767263.109535832): (2539964.542317, -4637648.671583, -3560995.05181, 5746003.018881) 52\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 350 _plumbTo5(-9972761.31748726, 4662530.453764608, 4256112.435655717): (-5371604.589518, 2519181.262485, 2299569.004666, 5439912.792356) 52\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 351 _plumbTo5(3016605.4966718997, 1304241.0110947676, -11385253.216890456): (1618619.36137, 702003.401772, -6128012.702643, 5473173.960073) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 352 _plumbTo5(-11724918.431583608, -9261068.189347908, -7807596.816657645): (-4419360.915762, -3505368.646064, -2955180.890694, 10490242.521891) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 353 _plumbTo5(-12134588.631240936, 4242014.558076039, 2342159.198180888): (-5903546.269141, 2070913.070057, 1143408.0531, 6706457.701156) 50\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 354 _plumbTo5(0.0, 0.0, 3985743.815150218): (0.0, 0.0, 6378318.0, -2392574.18485) None\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 355 _plumbTo5(-7921057.044654415, -10864037.640105005, 2687706.006705687): (-3671872.603697, -5054343.586541, 1250403.451862, 7339887.740521) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 356 _plumbTo5(-10775405.47248439, -9368474.21826664, 5537083.69858114): (-4471463.249369, -3902980.164961, 2306763.151984, 8946858.869618) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 357 _plumbTo5(-8604739.504291004, -10561886.97668027, -7556399.07722975): (-3509688.285391, -4325183.658557, -3094370.379341, 9206829.818254) 52\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 358 _plumbTo5(3925721.009644486, 1893536.4839279293, 1316232.4249157286): (5489642.130955, 2640807.359749, 1835690.209158, -1809447.270617) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 359 _plumbTo5(-10543317.047290618, 4176583.939927537, -10467484.347941227): (-4341506.282918, 1726653.407504, -4327336.664623, 9064547.97239) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 360 _plumbTo5(5504910.383288863, 0.0, 3941980.7186291814): (5173606.529546, 0.0, 3706233.833182, 406618.786461) 55\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 361 _plumbTo5(-11576418.057469497, 5150121.48029749, -7199784.914373723): (-5048956.293486, 2254728.540757, -3152034.42804, 8208248.373083) 52\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 362 _plumbTo5(5747634.1165411, 3019800.754534434, -12588014.348788455): (2578891.377618, 1359987.253552, -5669027.170724, 7788985.490662) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 363 _plumbTo5(-10699975.163764765, -12469268.54123148, 5851074.412260858): (-3897604.102395, -4561587.603006, 2140447.685329, 11071242.955692) 51\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 364 _plumbTo5(-10008114.974938048, -11305255.24208844, -10856545.703370556): (-3418502.004548, -3878738.917149, -3724736.705294, 12224518.125847) 52\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 365 _plumbTo5(-11339708.501863228, 3353573.953624922, -11220486.396653067): (-4420373.384937, 1312653.581403, -4391856.30456, 9933415.493209) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 366 _plumbTo5(-11806013.5893758, 1206482.9786856282, -9638751.028646413): (-4907741.129485, 503510.885612, -4022563.173067, 8923110.372717) 52\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 367 _plumbTo5(-11812031.773843225, -6532810.614432961, 1153162.7559880565): (-5542356.608309, -3076255.443169, 543010.078875, 7185324.392308) 51\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 368 _plumbTo5(5552167.813835973, -8437735.788774159, -12516869.811745383): (2193043.778965, -3346421.513004, -4964147.812881, 9708182.369962) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 369 _plumbTo5(4323988.540673599, -10272313.882541187, 2984426.303452739): (2383050.041963, -5678445.211525, 1649748.547077, 5162580.395082) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 370 _plumbTo5(-12000563.945659896, -11375329.638874426, 0.0): (-4611901.004216, -4389788.847301, 0.0, 10168093.243721) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 371 _plumbTo5(-7084905.644767572, -9716801.529767435, -6734404.088522686): (-3267099.540117, -4497050.494859, -3116724.990249, 7410063.857837) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 372 _plumbTo5(-9299492.807924783, 0.0, -10038494.747635415): (-4319543.019846, 0.0, -4679595.851858, 7315579.0794) 52\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 373 _plumbTo5(5100849.267087828, -11657175.221031226, 4787967.534215877): (2384620.222134, -5469247.26915, 2246365.243671, 7219978.861854) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 374 _plumbTo5(4665159.392919396, 5463633.976949447, 1299180.9722421006): (4068010.18408, 4768381.775495, 1133855.890443, 931286.842985) 55\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 375 _plumbTo5(-8064858.445005396, -9388146.191553729, 1896093.2198699364): (-4094680.727043, -4782365.842125, 965868.406734, 6151491.034079) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 376 _plumbTo5(-10676921.034412017, 4434243.542993603, 0.0): (-5871035.613149, 2445706.819791, 0.0, 5201039.605871) 51\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 377 _plumbTo5(-9023055.192998646, 3544143.0538191493, -8462620.315925544): (-4457300.455779, 1756747.779582, -4194674.045764, 6500481.793821) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 378 _plumbTo5(3476291.033153091, -7950656.589750505, 6016638.684900147): (2094107.737736, -4802288.995187, 3634088.113927, 4183204.082504) 55\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 379 _plumbTo5(0.0, 3559646.7792214956, 0.0): (0.0, 6378388.0, 0.0, -2818741.220779) None\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 380 _plumbTo5(3095613.853824863, 3997508.4430838083, 2736568.083855892): (3432883.607156, 4429795.814097, 3032505.56924, -623058.78768) 56\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 381 _plumbTo5(2835926.5021857405, -9045140.68774168, 2002398.4306926245): (1862547.444274, -5954303.424435, 1318144.053108, 3311939.889531) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 382 _plumbTo5(2312432.2162906793, -9929107.155342186, -9788039.941453634): (1039780.026627, -4481180.685756, -4417461.370345, 7755169.927366) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 383 _plumbTo5(2677701.474612112, 3278501.0486438787, -12067198.879795307): (1331054.876184, 1635234.070052, -6018749.836018, 6410734.6895) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 384 _plumbTo5(-9173069.786116466, 2033137.2534150574, 1300061.1115269251): (-6148182.751552, 1365722.936214, 873286.091431, 3126902.678444) 51\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 385 _plumbTo5(-11242456.19353453, 1362723.5105300057, 4101669.110195199): (-5933679.471218, 721525.172334, 2171700.219653, 5684982.455098) 51\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 386 _plumbTo5(-12251486.837373294, 1314865.8046799877, -10257127.474041311): (-4856380.179641, 523324.665104, -4082345.783758, 9666543.786563) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 387 _plumbTo5(-6729347.354649825, -12449399.222153336, -6859252.117053115): (-2718698.294944, -5049868.071154, -2782292.201528, 9352003.490564) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 388 _plumbTo5(-11135625.716704542, -8627513.879856825, -8846859.068641137): (-4253677.71168, -3309357.919956, -3393448.844403, 10265655.080486) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 389 _plumbTo5(-7911438.471988227, 3565866.392270913, 697649.5073143232): (-5778364.042342, 2609170.203206, 510472.179023, 2345273.858808) 52\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 390 _plumbTo5(1149029.6659410016, -7426070.196785206, 1807972.6442612736): (947089.604808, -6128191.102689, 1491981.502415, 1350970.145084) 56\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 391 _plumbTo5(3455972.2292246306, 4869644.106263283, 0.0): (3688469.895537, 5194895.921711, 0.0, -399804.837755) 56\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 392 _plumbTo5(-12623751.72037495, -8608825.23727696, 3430978.0105257914): (-5123195.52213, -3507798.019804, 1397986.486447, 9295798.862573) 52\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 393 _plumbTo5(0.0, 4168993.1829979364, 3993212.66081889): (0.0, 4606235.374963, 4412029.224784, -605465.150678) 52\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n\n    test 394 _plumbTo5: (0.545455, 1.090909, 0.818182, 3.916483)\n    test 395 _plumbTo5: None\n    test 396 _plumbTo5: 0\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n\n    test 397 _plumbTo5: (1.090909, 0.545455, 0.818182, 3.916483)\n    test 398 _plumbTo5: None\n    test 399 _plumbTo5: 0\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n\n    test 400 _plumbTo5: (0.742781, 1.114172, 1.485563, 3.385165)\n    test 401 _plumbTo5: None\n    test 402 _plumbTo5: 0\n# lazily imported pygeodesy.Triaxial from .triaxials.triaxial5 by ellipsoids.py line 1905\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n\n    test 403 toTriaxial: name='WGS84', a=6378137, b=6378137, c=6356752.314245179, e2ab=0, e2bc=0.00669438, e2ac=0.00669438\n    test 404 toEllipsoid: name='_', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518\n    test 405 toEllipsoid: name='', a=2, f=-0.5, f_=-2, b=3\n\n    test 406 Triaxials: 14\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 407 Amalthea: name='Amalthea', a=125000, b=73000, c=64000, e2ab=0.658944, e2bc=0.231375493, e2ac=0.737856\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 408 Ariel: name='Ariel', a=581100, b=577900, c=577700, e2ab=0.01098327, e2bc=0.000692042, e2ac=0.011667711\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 409 Earth: name='Earth', a=6378173.435, b=6378103.9, c=6356754.399999999, e2ab=0.000021804, e2bc=0.006683418, e2ac=0.006705077\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 410 Enceladus: name='Enceladus', a=256600, b=251400, c=248300, e2ab=0.040119337, e2bc=0.024509841, e2ac=0.06364586\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 411 Europa: name='Europa', a=1564130, b=1561230, c=1560930, e2ab=0.003704694, e2bc=0.000384275, e2ac=0.004087546\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 412 Io: name='Io', a=1829400, b=1819300, c=1815700, e2ab=0.011011391, e2bc=0.003953651, e2ac=0.014921506\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 413 Mars: name='Mars', a=3394600, b=3393300, c=3376300, e2ab=0.000765776, e2bc=0.009994646, e2ac=0.010752768\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 414 Mimas: name='Mimas', a=207400, b=196800, c=190600, e2ab=0.09960581, e2bc=0.062015624, e2ac=0.155444317\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 415 Miranda: name='Miranda', a=240400, b=234200, c=232900, e2ab=0.050915557, e2bc=0.011070811, e2ac=0.061422691\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 416 Moon: name='Moon', a=1735550, b=1735324, c=1734898, e2ab=0.000260419, e2bc=0.000490914, e2ac=0.000751206\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 417 Tethys: name='Tethys', a=535600, b=528200, c=525800, e2ab=0.027441672, e2bc=0.009066821, e2ac=0.036259685\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 418 WGS84_3: name='WGS84_3', a=6378171.36, b=6378101.609999999, c=6356751.84, e2ab=0.000021871, e2bc=0.006683505, e2ac=0.00670523\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 419 WGS84_35: name='WGS84_35', a=6378172, b=6378102, c=6356752.314245179, e2ab=0.00002195, e2bc=0.006683478, e2ac=0.006705281\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 420 WGS84_3r: name='WGS84_3r', a=6378172, b=6378102, c=6356752, e2ab=0.00002195, e2bc=0.006683577, e2ac=0.00670538\n\n    testTriaxial3(pygeodesy.triaxials.triaxial3, 26.02.20)\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 421 Triaxial3: Triaxial3(name='', a=3, b=2, c=1, k2=0.375, kp2=0.625, volume=25.132741229, area=48.882146303, R2=1.972287405)\n    test 422 reverseLatLon: (Degrees(58.69140449), Degrees(75.11263103), None, 2.586065, 'ELLIPSOIDAL')\n    test 423 forwardLatLon: (1.0, 2.0, 3.0, 2.586065, 'ELLIPSOIDAL')\n\n    test 424 ELLIPSOIDAL: (58.691404, 75.112631, None, 2.586065, 'ELLIPSOIDAL')\n    test 425 ELLIPSOIDAL: (1.0, 2.0, 3.0, 2.586065, 'ELLIPSOIDAL')\n\n    test 426 GEOCENTRIC: (29.12663, 56.916602, None, 2.391078, 'GEOCENTRIC')\n    test 427 GEOCENTRIC: (1.0, 2.0, 3.0, 2.391078, 'GEOCENTRIC')\n\n    test 428 GEOCENTRIC_X: (28.478775, 123.624552, None, 2.391078, 'GEOCENTRIC_X')\n    test 429 GEOCENTRIC_X: (1.0, 2.0, 3.0, 2.391078, 'GEOCENTRIC_X')\n\n    test 430 GEODETIC: (68.626017, 73.851827, None, 2.391078, 'GEODETIC')\n    test 431 GEODETIC: (1.0, 2.0, 3.0, 2.391078, 'GEODETIC')\n\n    test 432 GEODETIC_X: (5.817652, 159.397221, None, 2.391078, 'GEODETIC_X')\n    test 433 GEODETIC_X: (1.0, 2.0, 3.0, 2.391078, 'GEODETIC_X')\n\n    test 434 PARAMETRIC: (50.658091, 66.523762, None, 2.391078, 'PARAMETRIC')\n    test 435 PARAMETRIC: (1.0, 2.0, 3.0, 2.391078, 'PARAMETRIC')\n\n    test 436 PARAMETRIC_X: (14.628136, 143.06191, None, 2.391078, 'PARAMETRIC_X')\n    test 437 PARAMETRIC_X: (1.0, 2.0, 3.0, 2.391078, 'PARAMETRIC_X')\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n\n    test 438 Triaxial3: Triaxial3(name='Bektas', a=6378388, b=6378318, c=6356911.9461, k2=0.996735077, kp2=0.003264923, volume=1083307891664673177600, area=510097198412933.0625, R2=6371204.383189477)\n    test 439 forwardBetOmg: (4234607.381429, 3551286.590486, 3176009.080037, 1200.0, 'ELLIPSOIDAL')\n    test 440 forwardBetOmg: (4233813.533025, 3550620.827453, 3175409.655093, 0, 'ELLIPSOIDAL')\n    test 441 length: 1196.973671\n    test 442 reverseBetOmg: (Degrees(30.0), Degrees(40.0), None, 1200.0, 'ELLIPSOIDAL')\n    test 443 reverseBetOmg: (Degrees(30.0), Degrees(40.0), None, 0.0, 'ELLIPSOIDAL')\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n\n    test 444 forwardCartesian: (4233813.533151, 3550620.827558, 3175409.654809, 1196.973671, 'ELLIPSOIDAL')\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 445 forwardCartesian: (4239665.951888, 3553574.566129, 3164352.410834, 12911.309173, 'ELLIPSOIDAL')\n\n    test 446 reverseCartesian: (4234607.381429, 3551286.590486, 3176009.080037, 1196.973671, 'ELLIPSOIDAL')\n    test 447 reverseCartesian: (4248255.186992, 3560773.833183, 3170763.143924, 12911.309173, 'ELLIPSOIDAL')  FAILED, KNOWN, expected (4234607.381429, 3551286.590486, 3176009.080037, 1200.0, 'ELLIPSOIDAL')\n\n    test 448 forwardBetaOmega_: (4233813.533025, 3550620.827453, 3175409.655093, 0, 'ELLIPSOIDAL')\n    test 449 reverseLatLon: (Degrees(30.0), Degrees(40.0), None, -0.0, 'ELLIPSOIDAL')\n    test 450 forwardLatLon: (4233813.533025, 3550620.827453, 3175409.655093, 0, 'ELLIPSOIDAL')\n\n    test 451 reverseBetOmg: (Degrees(29.94812666), Degrees(40.01497072), None, 1203.037176, 'ELLIPSOIDAL')\n    test 452 reverseBetOmg: (29°56′53.26″, 40°00′53.89″, None, 1203.037176, 'ELLIPSOIDAL')\n    test 453 reverseBetOmg: (Degrees(29.97539672), Degrees(40.03311872), None, 1387.637345, 'ELLIPSOIDAL')\n    test 454 reverseBetOmg: (29°58′31.43″, 40°01′59.23″, None, 1387.637345, 'ELLIPSOIDAL')\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n\n    test 455 height4: (3909251.554667, 3909165.750567, 3170432.501602, 999.999996)\n    test 456 height4: (3909251.554667, 3909165.750567, 3170432.501602, 0, None)\n    test 457 height4: (3909251.554667, 3909165.750567, 3170432.501602, 0, None)\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n\n    test 458 JFK-SIN: Triaxial3(name='WGS84_35', a=6378172, b=6378102, c=6356752.314245179, k2=0.996726499, kp2=0.003273501, volume=1083207319768789942272, area=510065621722018.25, R2=6371007.180905545)\n    test 459 JFK-SIN: -54.34889\n    test 460 JFK-SIN: (2824949.36608, -3938333.736799, 4132149.896611, 0, 'GEODETIC')\n    test 461 JFK-SIN: (40°38′23.0″, 54°20′56.0″, None, 0.0, 'GEODETIC')\n    test 462 JFK-SIN: (Degrees(40.57193395), Degrees(-54.38110954), None, 0, 'ELLIPSOIDAL')\n\n    test 463 JFK-SIN: 123.42\n    test 464 JFK-SIN: (-3511912.82574, 5322047.492059, 150275.382099, 0, 'GEODETIC')\n    test 465 JFK-SIN: (1°21′33.0″, 123°25′10.0″, None, -0.0, 'GEODETIC')\n    test 466 JFK-SIN: (1.355287, 123.419709, None, 0, 'ELLIPSOIDAL')\n    test 467 JFK-SIN: (2507237.249613, -4147833.171672, 4132151.785141, 0, 'GEODETIC_LON0')\n    test 468 JFK-SIN: (Degrees(40.56616585), Degrees(-58.87899203), None, 0, 'ELLIPSOIDAL')\n    test 469 JFK-SIN: (-3083516.921703, 5581181.10656, 150275.496647, 0, 'GEODETIC_LON0')\n    test 470 JFK-SIN: (Degrees(1.35513418), Degrees(118.9196884), None, 0.0, 'ELLIPSOIDAL')\n\n    test 471 ELLIPSOIDAL: (3339312.988437, 4478220.864583, 3067838.142785, 0, 'ELLIPSOIDAL')\n    test 472 ELLIPSOIDAL: (0.44727, 0.46133, -0.76624)\n    test 473 ELLIPSOIDAL: (Radians(6.78714104), Radians(7.21349568), Radians(3.22695739), 0, 'ELLIPSOIDAL')\n    test 474 ELLIPSOIDAL: (3339312.988437, 4478220.864583, 3067838.142785, 0, 'ELLIPSOIDAL')\n    test 475 ELLIPSOIDAL: (0.35577, 0.33613, -0.87203)  FAILED, KNOWN, expected (0.44727, 0.46133, -0.76624)\n\n    test 476 GEOCENTRIC: (3775053.602526, 4836453.809766, 1737203.829149, 0, 'GEOCENTRIC')\n    test 477 GEOCENTRIC: (0.06074, 0.18165, -0.98149)\n    test 478 GEOCENTRIC: (Radians(6.55911022), Radians(7.19121867), Radians(9.36055352), -0.0, 'GEOCENTRIC')\n    test 479 GEOCENTRIC: (3775053.602526, 4836453.809766, 1737203.829149, 0, 'GEOCENTRIC')\n    test 480 GEOCENTRIC: (0.11773, 0.25514, -0.95971)  FAILED, KNOWN, expected (0.06074, 0.18165, -0.98149)\n\n    test 481 GEOCENTRIC_X: (5353065.611375, 2253062.100284, 2627312.107704, 0, 'GEOCENTRIC_X')\n    test 482 GEOCENTRIC_X: (0.37533, 0.39753, -0.83732)\n    test 483 GEOCENTRIC_X: (Radians(7.28002857), Radians(8.7159147), Radians(4.84070319), 0.0, 'GEOCENTRIC_X')\n    test 484 GEOCENTRIC_X: (5353065.611375, 2253062.100284, 2627312.107704, 0, 'GEOCENTRIC_X')\n    test 485 GEOCENTRIC_X: (0.07117, 0.68362, -0.72636)  FAILED, KNOWN, expected (0.37533, 0.39753, -0.83732)\n\n    test 486 GEODETIC: (4614879.82592, 981039.629187, 4277613.939628, 0, 'GEODETIC')\n    test 487 GEODETIC: (0.24631, 0.35287, -0.90267)\n    test 488 GEODETIC: (Radians(7.02301499), Radians(6.49265346), Radians(9.10148726), -0.0, 'GEODETIC')\n    test 489 GEODETIC: (4614879.82592, 981039.629187, 4277613.939628, 0, 'GEODETIC')\n    test 490 GEODETIC: (0.55921, 0.44366, -0.70032)  FAILED, KNOWN, expected (0.24631, 0.35287, -0.90267)\n\n    test 491 GEODETIC_LON0: (1527233.792948, 1162869.651044, 6062035.023615, 0, 'GEODETIC_LON0')\n    test 492 GEODETIC_LON0: (0.24352, 0.24941, -0.93728)\n    test 493 GEODETIC_LON0: (Radians(7.54924666), Radians(6.67338953), Radians(9.34132632), -0.0, 'GEODETIC_LON0')\n    test 494 GEODETIC_LON0: (1527233.792948, 1162869.651044, 6062035.023615, 0, 'GEODETIC_LON0')\n    test 495 GEODETIC_LON0: (0.70582, 0.6422, -0.299)  FAILED, KNOWN, expected (0.24352, 0.24941, -0.93728)\n\n    test 496 GEODETIC_X: (5508220.332714, 315937.896032, 3189373.081358, 0, 'GEODETIC_X')\n    test 497 GEODETIC_X: (0.40682, 0.33156, -0.85121)\n    test 498 GEODETIC_X: (Radians(7.32411007), Radians(9.32669619), Radians(4.54631059), 0, 'GEODETIC_X')\n    test 499 GEODETIC_X: (5508220.332714, 315937.896032, 3189373.081358, 0, 'GEODETIC_X')\n    test 500 GEODETIC_X: (-0.08327, 0.99551, 0.0449)  FAILED, KNOWN, expected (0.40682, 0.33156, -0.85121)\n\n    test 501 GEOGRAPHIC: (3465116.507243, 5223158.607824, 1175894.05015, 0, 'GEODETIC')\n    test 502 GEOGRAPHIC: (0.11315, 0.09188, -0.98932)\n    test 503 GEOGRAPHIC: (Radians(6.46985144), Radians(7.26824437), Radians(3.18515516), -0.0, 'GEODETIC')\n    test 504 GEOGRAPHIC: (3465116.507243, 5223158.607824, 1175894.05015, 0, 'GEODETIC')\n    test 505 GEOGRAPHIC: (0.13879, 0.13043, -0.9817)  FAILED, KNOWN, expected (0.11315, 0.09188, -0.98932)\n\n    test 506 PARAMETRIC: (1264892.90797, 2527765.29909, 5698436.749422, 0, 'PARAMETRIC')\n    test 507 PARAMETRIC: (0.13554, 0.82486, -0.54885)\n    test 508 PARAMETRIC: (Radians(7.39485161), Radians(7.39001874), Radians(9.17168302), -0.0, 'PARAMETRIC')\n    test 509 PARAMETRIC: (1264892.90797, 2527765.29909, 5698436.749422, 0, 'PARAMETRIC')\n    test 510 PARAMETRIC: (0.1647, 0.8887, -0.42789)  FAILED, KNOWN, expected (0.13554, 0.82486, -0.54885)\n\n    test 511 PARAMETRIC_X: (3357601.186402, 4513866.391703, 2995261.616924, 0, 'PARAMETRIC_X')\n    test 512 PARAMETRIC_X: (0.22351, 0.72002, -0.65697)\n    test 513 PARAMETRIC_X: (Radians(6.83757042), Radians(8.44138234), Radians(5.00139262), 0, 'PARAMETRIC_X')\n    test 514 PARAMETRIC_X: (3357601.186402, 4513866.391703, 2995261.616924, 0, 'PARAMETRIC_X')\n    test 515 PARAMETRIC_X: (0.24371, 0.40685, -0.88039)  FAILED, KNOWN, expected (0.22351, 0.72002, -0.65697)\n\n    test 516 PLANETOCENTRIC: (948465.932689, 3598948.847101, 5162255.209493, 0, 'GEOCENTRIC')\n    test 517 PLANETOCENTRIC: (0.1521, 0.65147, -0.74328)\n    test 518 PLANETOCENTRIC: (Radians(7.22932016), Radians(7.59630087), Radians(9.40537788), -0.0, 'GEOCENTRIC')\n    test 519 PLANETOCENTRIC: (948465.932689, 3598948.847101, 5162255.209493, 0, 'GEOCENTRIC')\n    test 520 PLANETOCENTRIC: (0.18839, 0.79097, -0.58213)  FAILED, KNOWN, expected (0.1521, 0.65147, -0.74328)\n\n    test 521 PLANETODETIC: (6109868.111296, 1803588.145775, 311341.87994, 0, 'GEODETIC')\n    test 522 PLANETODETIC: (0.23071, 0.27671, -0.93285)\n    test 523 PLANETODETIC: (Radians(6.33234784), Radians(6.57023183), Radians(9.21647244), 0.0, 'GEODETIC')\n    test 524 PLANETODETIC: (6109868.111296, 1803588.145775, 311341.87994, 0, 'GEODETIC')\n    test 525 PLANETODETIC: (-0.01244, 0.21195, -0.9772)  FAILED, KNOWN, expected (0.23071, 0.27671, -0.93285)\n\n    test 526 Lon0: -14.93\n    test 527 forwardLatLon: (6162853.284268, -1643246.23441, 0.0, 0, 'ELLIPSOIDAL')\n    test 528 reverseLatLon: (Degrees(0.0), Degrees(-14.93), None, 0, 'ELLIPSOIDAL')\n    test 529 reverseLatLon: 1.590277340731758e-15  FAILED, KNOWN, expected 0\n\n    testConformal3(pygeodesy.triaxials.conformal3, 26.02.15)\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 530 Conformal3: name='WGS84_3', a=6378171.36, b=6378101.609999999, c=6356751.84, k2=0.996738165, kp2=0.003261835, xyQ2=xyQ2(x=10026938.243505, y=27096412.501236)\n    test 531 forwardBetOmg: (-5077726.43188, 3922574.86203, 0, 1.19703, 'CONFORMAL')\n    test 532 reverseBetOmg: (Degrees(33.3), Degrees(44.4), None, 1.197032, 'CONFORMAL')\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n\n    test 533 Conformal3: name='WGS84_3r', a=6378172, b=6378102, c=6356752, k2=0.996726547, kp2=0.003273453, xyQ2=xyQ2(x=10026968.259439, y=27085126.866409)\n    test 534 forwardBetOmg: (-5077732.396, 3922571.859, 0, 1.197, 'CONFORMAL')\n    test 535 reverseBetOmg: (Degrees(33.3), Degrees(44.4), None, 1.197034, 'CONFORMAL')\n    test 536 forwardOther: (33.299887, 44.399927, 0.000263, 1.000046, 'CONFORMAL')\n    test 537 reverseOther: (Degrees(33.3), Degrees(44.4), Degrees(0.00026262), 0.999954, 'CONFORMAL')\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n\n    test 538 Conformal3: name='WGS84+/-35', a=6378172, b=6378102, c=6356752.314245179, k2=0.996726499, kp2=0.003273501, xyQ2=xyQ2(x=10026968.379966, y=27085080.683786)\n    test 539 forwardBetOmg: (-5077732.419, 3922572.019, 0, 1.197, 'CONFORMAL')\n    test 540 reverseBetOmg: (Degrees(33.3), Degrees(44.4), None, 1.197034, 'CONFORMAL')\n\n    2 tests skipped (2): triaxum5\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n\n    test 541 Amalthea: name='Amalthea', a=125000, b=73000, c=64000, e2ab=0.658944, e2bc=0.231375493, e2ac=0.737856\n    test 542 Amalthea.area    : 93239507787.49036\n    test 543 Amalthea.areaKT  : 93212299402.67043\n    test 544 Amalthea.areaRG  : 93239507787.49036\n    test 545 Amalthea.area21k : 93239507787.49039  FAILED, KNOWN, expected 93239507787.49036\n    test 546 Amalthea.ellipse5: Ellipse5Tuple(a=111264.228133, b=64978.30923, height=29167.24982, lat=45.0, beta=27.112446)\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by namedTuples.py line 236\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 547 Amalthea.toTriaxial_: name='NN', a=111264.22813306, b=64978.309229707, c=29167.249819713, e2ab=0.658944, e2bc=0.798509697, e2ac=0.931280523\n# lazily imported pygeodesy.Triaxial from .triaxials.triaxial5 by namedTuples.py line 227\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 548 Amalthea.toTriaxial : name='NN', a=111264.22813306, b=64978.309229707, c=29167.249819713, e2ab=0.658944, e2bc=0.798509697, e2ac=0.931280523\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n\n    test 549 Ariel: name='Ariel', a=581100, b=577900, c=577700, e2ab=0.01098327, e2bc=0.000692042, e2ac=0.011667711\n    test 550 Ariel.area    : 4211301462766.58\n    test 551 Ariel.areaKT  : 4211301574065.83\n    test 552 Ariel.areaRG  : 4211301462766.58\n    test 553 Ariel.area21k : 4211301462766.58\n    test 554 Ariel.ellipse5: Ellipse5Tuple(a=412103.585219, b=409834.214245, height=407295.279804, lat=45.0, beta=44.831891)\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by namedTuples.py line 236\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 555 Ariel.toTriaxial_: name='NN', a=412103.585218864, b=409834.214245365, c=407295.279803537, e2ab=0.01098327, e2bc=0.012351678, e2ac=0.023199286\n# lazily imported pygeodesy.Triaxial from .triaxials.triaxial5 by namedTuples.py line 227\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 556 Ariel.toTriaxial : name='NN', a=412103.585218864, b=409834.214245365, c=407295.279803537, e2ab=0.01098327, e2bc=0.012351678, e2ac=0.023199286\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n\n    test 557 Earth: name='Earth', a=6378173.435, b=6378103.9, c=6356754.399999999, e2ab=0.000021804, e2bc=0.006683418, e2ac=0.006705077\n    test 558 Earth.area    : 510065911057440.94\n    test 559 Earth.areaKT  : 510065915922713.7\n    test 560 Earth.areaRG  : 510065911057440.94\n    test 561 Earth.area21k : 510065911057441.06  FAILED, KNOWN, expected 510065911057440.94\n    test 562 Earth.ellipse5: Ellipse5Tuple(a=4517628.806864, b=4517579.555566, height=4487337.759918, lat=45.0, beta=44.903634)\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by namedTuples.py line 236\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 563 Earth.toTriaxial_: name='NN', a=4517628.806863862, b=4517579.555566091, c=4487337.759917996, e2ab=0.000021804, e2bc=0.013343682, e2ac=0.013365195\n# lazily imported pygeodesy.Triaxial from .triaxials.triaxial5 by namedTuples.py line 227\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 564 Earth.toTriaxial : name='NN', a=4517628.806863862, b=4517579.555566091, c=4487337.759917996, e2ab=0.000021804, e2bc=0.013343682, e2ac=0.013365195\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n\n    test 565 Enceladus: name='Enceladus', a=256600, b=251400, c=248300, e2ab=0.040119337, e2bc=0.024509841, e2ac=0.06364586\n    test 566 Enceladus.area    : 798618496278.5967\n    test 567 Enceladus.areaKT  : 798619018175.11\n    test 568 Enceladus.areaRG  : 798618496278.5967\n    test 569 Enceladus.area21k : 798618496278.5966  FAILED, KNOWN, expected 798618496278.5967\n    test 570 Enceladus.ellipse5: Ellipse5Tuple(a=184401.418634, b=180664.523167, height=172665.031764, lat=45.0, beta=44.058205)\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by namedTuples.py line 236\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 571 Enceladus.toTriaxial_: name='NN', a=184401.418633881, b=180664.523166631, c=172665.031764361, e2ab=0.040119337, e2bc=0.086595751, e2ac=0.123240924\n# lazily imported pygeodesy.Triaxial from .triaxials.triaxial5 by namedTuples.py line 227\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 572 Enceladus.toTriaxial : name='NN', a=184401.418633881, b=180664.523166631, c=172665.031764361, e2ab=0.040119337, e2bc=0.086595751, e2ac=0.123240924\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n\n    test 573 Europa: name='Europa', a=1564130, b=1561230, c=1560930, e2ab=0.003704694, e2bc=0.000384275, e2ac=0.004087546\n    test 574 Europa.area    : 30663773697323.52\n    test 575 Europa.areaKT  : 30663773794562.457\n    test 576 Europa.areaRG  : 30663773697323.52\n    test 577 Europa.area21k : 30663773697323.52\n    test 578 Europa.ellipse5: Ellipse5Tuple(a=1107138.878572, b=1105086.170198, height=1102613.397545, lat=45.0, beta=44.94133)\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by namedTuples.py line 236\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 579 Europa.toTriaxial_: name='NN', a=1107138.878571533, b=1105086.170198279, c=1102613.397544503, e2ab=0.003704694, e2bc=0.004470251, e2ac=0.008158384\n# lazily imported pygeodesy.Triaxial from .triaxials.triaxial5 by namedTuples.py line 227\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 580 Europa.toTriaxial : name='NN', a=1107138.878571533, b=1105086.170198279, c=1102613.397544503, e2ab=0.003704694, e2bc=0.004470251, e2ac=0.008158384\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n\n    test 581 Io: name='Io', a=1829400, b=1819300, c=1815700, e2ab=0.011011391, e2bc=0.003953651, e2ac=0.014921506\n    test 582 Io.area    : 41691875849096.734\n    test 583 Io.areaKT  : 41691877397441.2\n    test 584 Io.areaRG  : 41691875849096.734\n    test 585 Io.area21k : 41691875849096.734\n    test 586 Io.ellipse5: Ellipse5Tuple(a=1298433.860916, b=1291265.290896, height=1279059.271955, lat=45.0, beta=44.784657)\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by namedTuples.py line 236\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 587 Io.toTriaxial_: name='NN', a=1298433.860916433, b=1291265.290896068, c=1279059.271955117, e2ab=0.011011391, e2bc=0.018816162, e2ac=0.029620361\n# lazily imported pygeodesy.Triaxial from .triaxials.triaxial5 by namedTuples.py line 227\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 588 Io.toTriaxial : name='NN', a=1298433.860916433, b=1291265.290896068, c=1279059.271955117, e2ab=0.011011391, e2bc=0.018816162, e2ac=0.029620361\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n\n    test 589 Mars: name='Mars', a=3394600, b=3393300, c=3376300, e2ab=0.000765776, e2bc=0.009994646, e2ac=0.010752768\n    test 590 Mars.area    : 144249140795107.44\n    test 591 Mars.areaKT  : 144249144150662.16\n    test 592 Mars.areaRG  : 144249140795107.44\n    test 593 Mars.area21k : 144249140795107.44\n    test 594 Mars.ellipse5: Ellipse5Tuple(a=2406823.402595, b=2405901.68268, height=2380943.388927, lat=45.0, beta=44.845145)\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by namedTuples.py line 236\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 595 Mars.toTriaxial_: name='NN', a=2406823.402594559, b=2405901.682679585, c=2380943.38892735, e2ab=0.000765776, e2bc=0.020639944, e2ac=0.021389914\n# lazily imported pygeodesy.Triaxial from .triaxials.triaxial5 by namedTuples.py line 227\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 596 Mars.toTriaxial : name='NN', a=2406823.402594559, b=2405901.682679585, c=2380943.38892735, e2ab=0.000765776, e2bc=0.020639944, e2ac=0.021389914\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n\n    test 597 Mimas: name='Mimas', a=207400, b=196800, c=190600, e2ab=0.09960581, e2bc=0.062015624, e2ac=0.155444317\n    test 598 Mimas.area    : 493855762247.69183\n    test 599 Mimas.areaKT  : 493857714107.9375\n    test 600 Mimas.areaRG  : 493855762247.69183\n    test 601 Mimas.area21k : 493855762247.69183\n    test 602 Mimas.ellipse5: Ellipse5Tuple(a=152708.378956, b=144903.611276, height=128970.72925, lat=45.0, beta=42.58292)\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by namedTuples.py line 236\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 603 Mimas.toTriaxial_: name='NN', a=152708.378956057, b=144903.611275565, c=128970.729250426, e2ab=0.09960581, e2bc=0.207819965, e2ac=0.286725699\n# lazily imported pygeodesy.Triaxial from .triaxials.triaxial5 by namedTuples.py line 227\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 604 Mimas.toTriaxial : name='NN', a=152708.378956057, b=144903.611275565, c=128970.729250426, e2ab=0.09960581, e2bc=0.207819965, e2ac=0.286725699\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n\n    test 605 Miranda: name='Miranda', a=240400, b=234200, c=232900, e2ab=0.050915557, e2bc=0.011070811, e2ac=0.061422691\n    test 606 Miranda.area    : 698880863325.7571\n    test 607 Miranda.areaKT  : 698881306767.9503\n    test 608 Miranda.areaRG  : 698880863325.7571\n    test 609 Miranda.area21k : 698880863325.7571\n    test 610 Miranda.ellipse5: Ellipse5Tuple(a=172660.462873, b=168207.489205, height=162055.192572, lat=45.0, beta=44.092156)\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by namedTuples.py line 236\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 611 Miranda.toTriaxial_: name='NN', a=172660.462873061, b=168207.489204954, c=162055.192571975, e2ab=0.050915557, e2bc=0.071813503, e2ac=0.119072635\n# lazily imported pygeodesy.Triaxial from .triaxials.triaxial5 by namedTuples.py line 227\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 612 Miranda.toTriaxial : name='NN', a=172660.462873061, b=168207.489204954, c=162055.192571975, e2ab=0.050915557, e2bc=0.071813503, e2ac=0.119072635\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n\n    test 613 Moon: name='Moon', a=1735550, b=1735324, c=1734898, e2ab=0.000260419, e2bc=0.000490914, e2ac=0.000751206\n    test 614 Moon.area    : 37838824729886.09\n    test 615 Moon.areaKT  : 37838824733332.22\n    test 616 Moon.areaRG  : 37838824729886.09\n    test 617 Moon.area21k : 37838824729886.086  FAILED, KNOWN, expected 37838824729886.09\n    test 618 Moon.ellipse5: Ellipse5Tuple(a=1227449.712545, b=1227289.876392, height=1226527.645318, lat=45.0, beta=44.989236)\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by namedTuples.py line 236\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 619 Moon.toTriaxial_: name='NN', a=1227449.71254467, b=1227289.876391845, c=1226527.645318275, e2ab=0.000260419, e2bc=0.001241751, e2ac=0.001501847\n# lazily imported pygeodesy.Triaxial from .triaxials.triaxial5 by namedTuples.py line 227\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 620 Moon.toTriaxial : name='NN', a=1227449.71254467, b=1227289.876391845, c=1226527.645318275, e2ab=0.000260419, e2bc=0.001241751, e2ac=0.001501847\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n\n    test 621 Tethys: name='Tethys', a=535600, b=528200, c=525800, e2ab=0.027441672, e2bc=0.009066821, e2ac=0.036259685\n    test 622 Tethys.area    : 3528073490771.3936\n    test 623 Tethys.areaKT  : 3528074261832.739\n    test 624 Tethys.areaRG  : 3528073490771.3936\n    test 625 Tethys.area21k : 3528073490771.394  FAILED, KNOWN, expected 3528073490771.3936\n    test 626 Tethys.ellipse5: Ellipse5Tuple(a=382206.915043, b=376926.236979, height=368348.212846, lat=45.0, beta=44.470998)\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by namedTuples.py line 236\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 627 Tethys.toTriaxial_: name='NN', a=382206.915042949, b=376926.236978502, c=368348.212845736, e2ab=0.027441672, e2bc=0.044997746, e2ac=0.071204605\n# lazily imported pygeodesy.Triaxial from .triaxials.triaxial5 by namedTuples.py line 227\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 628 Tethys.toTriaxial : name='NN', a=382206.915042949, b=376926.236978502, c=368348.212845736, e2ab=0.027441672, e2bc=0.044997746, e2ac=0.071204605\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n\n    test 629 WGS84_3: name='WGS84_3', a=6378171.36, b=6378101.609999999, c=6356751.84, e2ab=0.000021871, e2bc=0.006683505, e2ac=0.00670523\n    test 630 WGS84_3.area    : 510065541435967.5\n    test 631 WGS84_3.areaKT  : 510065546301413.56\n    test 632 WGS84_3.areaRG  : 510065541435967.5\n    test 633 WGS84_3.area21k : 510065541435967.4  FAILED, KNOWN, expected 510065541435967.5\n    test 634 WGS84_3.ellipse5: Ellipse5Tuple(a=4517627.51138, b=4517578.107797, height=4487335.778543, lat=45.0, beta=44.903631)\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by namedTuples.py line 236\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 635 WGS84_3.toTriaxial_: name='NN', a=4517627.51137994, b=4517578.107796822, c=4487335.778543438, e2ab=0.000021871, e2bc=0.013343921, e2ac=0.0133655\n# lazily imported pygeodesy.Triaxial from .triaxials.triaxial5 by namedTuples.py line 227\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 636 WGS84_3.toTriaxial : name='NN', a=4517627.51137994, b=4517578.107796822, c=4487335.778543438, e2ab=0.000021871, e2bc=0.013343921, e2ac=0.0133655\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n\n    test 637 WGS84_35: name='WGS84_35', a=6378172, b=6378102, c=6356752.314245179, e2ab=0.00002195, e2bc=0.006683478, e2ac=0.006705281\n    test 638 WGS84_35.area    : 510065621722018.25\n    test 639 WGS84_35.areaKT  : 510065626587483.3\n    test 640 WGS84_35.areaRG  : 510065621722018.25\n    test 641 WGS84_35.area21k : 510065621722018.25\n    test 642 WGS84_35.ellipse5: Ellipse5Tuple(a=4517628.022629, b=4517578.441971, height=4487336.055381, lat=45.0, beta=44.903631)\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by namedTuples.py line 236\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 643 WGS84_35.toTriaxial_: name='NN', a=4517628.022628974, b=4517578.441971447, c=4487336.055380745, e2ab=0.00002195, e2bc=0.013343945, e2ac=0.013365602\n# lazily imported pygeodesy.Triaxial from .triaxials.triaxial5 by namedTuples.py line 227\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 644 WGS84_35.toTriaxial : name='NN', a=4517628.022628974, b=4517578.441971447, c=4487336.055380745, e2ab=0.00002195, e2bc=0.013343945, e2ac=0.013365602\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n\n    test 645 WGS84_3r: name='WGS84_3r', a=6378172, b=6378102, c=6356752, e2ab=0.00002195, e2bc=0.006683577, e2ac=0.00670538\n    test 646 WGS84_3r.area    : 510065604942135.9\n    test 647 WGS84_3r.areaKT  : 510065609807745.0\n    test 648 WGS84_3r.areaRG  : 510065604942135.9\n    test 649 WGS84_3r.area21k : 510065604942135.94  FAILED, KNOWN, expected 510065604942135.9\n    test 650 WGS84_3r.ellipse5: Ellipse5Tuple(a=4517628.133918, b=4517578.553259, height=4487335.722261, lat=45.0, beta=44.903629)\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by namedTuples.py line 236\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 651 WGS84_3r.toTriaxial_: name='NN', a=4517628.133917508, b=4517578.553258759, c=4487335.722261372, e2ab=0.00002195, e2bc=0.01334414, e2ac=0.013365797\n# lazily imported pygeodesy.Triaxial from .triaxials.triaxial5 by namedTuples.py line 227\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 652 WGS84_3r.toTriaxial : name='NN', a=4517628.133917508, b=4517578.553258759, c=4487335.722261372, e2ab=0.00002195, e2bc=0.01334414, e2ac=0.013365797\n\n    39 of 652 testTriaxials.py tests (6.0%) FAILED, incl. 37 KNOWN plus 2 DeprecationWarnings, 2 skipped (pygeodesy 26.3.26 PyPy 7.3.17 Python 3.10.14 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 638.778 ms\nrunning /opt/local/bin/p....y3.10 -W default ~/PyGeodesy/test/testUnits.py\n# lazily imported pygeodesy.basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.DeprecationWarnings from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isint from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isLazy from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.issubclassof from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.iterNumpy2over from .iters by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.LazyImportError from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.karney by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.NN from .interns by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.normDMS from .dms by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.pairs from .streprs by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.printf from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.property_RO from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.typename from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.Azimuth from .units by testUnits.py line 11\n# lazily imported pygeodesy.Band from .units by testUnits.py line 11\n# lazily imported pygeodesy.Bearing from .units by testUnits.py line 11\n# lazily imported pygeodesy.Bearing_ from .units by testUnits.py line 11\n# lazily imported pygeodesy.Bool from .units by testUnits.py line 11\n# lazily imported pygeodesy.Epoch from .units by testUnits.py line 11\n# lazily imported pygeodesy.Epsg from .epsg by testUnits.py line 11\n# lazily imported pygeodesy.FIx from .units by testUnits.py line 11\n# lazily imported pygeodesy.Garef from .gars by testUnits.py line 11\n# lazily imported pygeodesy.Geohash from .geohash by testUnits.py line 11\n# lazily imported pygeodesy.Georef from .wgrs by testUnits.py line 11\n# lazily imported pygeodesy.Int from .unitsBase by testUnits.py line 11\n# lazily imported pygeodesy.Int_ from .units by testUnits.py line 11\n# lazily imported pygeodesy.Number_ from .units by testUnits.py line 11\n# lazily imported pygeodesy.Precision_ from .units by testUnits.py line 11\n# lazily imported pygeodesy.Lamd from .units by testUnits.py line 11\n# lazily imported pygeodesy.Phid from .units by testUnits.py line 11\n# lazily imported pygeodesy.Str from .unitsBase by testUnits.py line 11\n# lazily imported pygeodesy.Zone from .units by testUnits.py line 11\n# lazily imported pygeodesy.Float from .unitsBase by testUnits.py line 11\n\n    testing testUnits.py 24.07.25 isLazy=3\n# lazily imported pygeodesy.albers by bases.py line 199\n# lazily imported pygeodesy.angles by bases.py line 199\n\n    testing Lambertian(1.0,) (pygeodesy.units, 26.03.12)\n    test 1 .classname: Lambertian\n    test 2 isinstance: True\n    test 3 .name: lambertian\n    test 4 .named: lambertian\n    test 5 .named2: Lambertian 'lambertian'\n    test 6 .str: 1.0\n    test 7 .toStr: 1.0\n    test 8 .std_repr: True\n    test 9 .repr: 1.0\n    test 10 .toRepr: lambertian (1.0)\n    test 11 .units: lambertian\n# imported pygeodesy.basics into errors.py line 531\n    test 12 lambertian: psi ('X'): strRad ('X') or suffix ('NSEW'): could not convert string to float: 'X'\n    test 13 lambertian: U ('X'): strRad ('X') or suffix ('NSEW'): could not convert string to float: 'X'\n    test 14 lambertian: TypeError\n    test 15 lambertian: psi ('X'): strRad ('X') or suffix ('NSEW'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 16 .named: Test\n    test 17 .named2: Lambertian 'Test'\n    test 18 .str: 1.0\n    test 19 .toStr: 1.0\n    test 20 .repr: 1.0\n    test 21 .toRepr: Test (1.0)\n    test 22 .units: lambertian\n    test 23 .name: Test\n    test 24 ._name: Test\n    test 25 .str: 1.0\n    test 26 .repr: 1.0\n    test 27 delattr: ''\n# lazily imported pygeodesy.azimuthal by bases.py line 199\n# lazily imported pygeodesy.booleans by bases.py line 199\n# lazily imported pygeodesy.clipy by bases.py line 199\n# lazily imported pygeodesy.css by bases.py line 199\n# lazily imported pygeodesy.ecef by bases.py line 199\n# lazily imported pygeodesy.elevations by bases.py line 199\n# lazily imported pygeodesy.ellipses by bases.py line 199\n# lazily imported pygeodesy.ellipsoidalBaseDI by bases.py line 199\n# lazily imported pygeodesy.ellipsoidalExact by bases.py line 199\n# lazily imported pygeodesy.ellipsoidalGeodSolve by bases.py line 199\n# lazily imported pygeodesy.ellipsoidalKarney by bases.py line 199\n# lazily imported pygeodesy.ellipsoidalNvector by bases.py line 199\n# lazily imported pygeodesy.ellipsoidalVincenty by bases.py line 199\n# lazily imported pygeodesy.elliptic by bases.py line 199\n# lazily imported pygeodesy.etm by bases.py line 199\n# lazily imported pygeodesy.frechet by bases.py line 199\n# lazily imported pygeodesy.fstats by bases.py line 199\n# lazily imported pygeodesy.geod3solve by bases.py line 199\n# lazily imported pygeodesy.geodesici by bases.py line 199\n# lazily imported pygeodesy.geodesicw by bases.py line 199\n# lazily imported pygeodesy.geodsolve by bases.py line 199\n# lazily imported pygeodesy.geoids by bases.py line 199\n# lazily imported pygeodesy.hausdorff by bases.py line 199\n\n    testing _Lat(1.0,) (pygeodesy.units, 26.03.12)\n    test 28 .classname: _Lat\n    test 29 isinstance: True\n    test 30 .name: _lat\n    test 31 .named: _lat\n    test 32 .named2: _Lat '_lat'\n    test 33 .str: 1.0\n    test 34 .toStr: 1.0\n    test 35 .std_repr: True\n    test 36 .repr: 1.0\n    test 37 .toRepr: _lat (1.0)\n    test 38 .units: _lat\n    test 39 _lat: lat ('X'): strDMS ('X') or suffix ('NS'): could not convert string to float: 'X'\n    test 40 _lat: U ('X'): strDMS ('X') or suffix ('NS'): could not convert string to float: 'X'\n    test 41 _lat: TypeError\n    test 42 _lat: lat ('X'): strDMS ('X') or suffix ('NS'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 43 .named: Test\n    test 44 .named2: _Lat 'Test'\n    test 45 .str: 1.0\n    test 46 .toStr: 1.0\n    test 47 .repr: 1.0\n    test 48 .toRepr: Test (1.0)\n    test 49 .units: _lat\n    test 50 .name: Test\n    test 51 ._name: Test\n    test 52 .str: 1.0\n    test 53 .repr: 1.0\n    test 54 delattr: ''\n\n    testing _Lon(1.0,) (pygeodesy.units, 26.03.12)\n    test 55 .classname: _Lon\n    test 56 isinstance: True\n    test 57 .name: _lon\n    test 58 .named: _lon\n    test 59 .named2: _Lon '_lon'\n    test 60 .str: 1.0\n    test 61 .toStr: 1.0\n    test 62 .std_repr: True\n    test 63 .repr: 1.0\n    test 64 .toRepr: _lon (1.0)\n    test 65 .units: _lon\n    test 66 _lon: lon ('X'): strDMS ('X') or suffix ('EW'): could not convert string to float: 'X'\n    test 67 _lon: U ('X'): strDMS ('X') or suffix ('EW'): could not convert string to float: 'X'\n    test 68 _lon: TypeError\n    test 69 _lon: lon ('X'): strDMS ('X') or suffix ('EW'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 70 .named: Test\n    test 71 .named2: _Lon 'Test'\n    test 72 .str: 1.0\n    test 73 .toStr: 1.0\n    test 74 .repr: 1.0\n    test 75 .toRepr: Test (1.0)\n    test 76 .units: _lon\n    test 77 .name: Test\n    test 78 ._name: Test\n    test 79 .str: 1.0\n    test 80 .repr: 1.0\n    test 81 delattr: ''\n# lazily imported pygeodesy.ktm by bases.py line 199\n# lazily imported pygeodesy.lcc by bases.py line 199\n# lazily imported pygeodesy.ltp by bases.py line 199\n# lazily imported pygeodesy.mgrs by bases.py line 199\n# lazily imported pygeodesy.osgr by bases.py line 199\n# lazily imported pygeodesy.resections by bases.py line 199\n# lazily imported pygeodesy.simplify by bases.py line 199\n# lazily imported pygeodesy.sphericalBase by bases.py line 199\n# lazily imported pygeodesy.sphericalNvector by bases.py line 199\n# lazily imported pygeodesy.sphericalTrigonometry by bases.py line 199\n# lazily imported pygeodesy.trf by bases.py line 199\n\n    testing Bearing(1.0,) (pygeodesy.units, 26.03.12)\n    test 82 .classname: Bearing\n    test 83 isinstance: True\n    test 84 .name: bearing\n    test 85 .named: bearing\n    test 86 .named2: Bearing 'bearing'\n    test 87 .str: 1.0\n    test 88 .toStr: 1.0\n    test 89 .std_repr: True\n    test 90 .repr: 1.0\n    test 91 .toRepr: bearing (1.0)\n    test 92 .units: bearing\n    test 93 bearing: bearing ('X'): strDMS ('X') or suffix ('N'): could not convert string to float: 'X'\n    test 94 bearing: U ('X'): strDMS ('X') or suffix ('N'): could not convert string to float: 'X'\n    test 95 bearing: TypeError\n    test 96 bearing: bearing ('X'): strDMS ('X') or suffix ('N'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 97 .named: Test\n    test 98 .named2: Bearing 'Test'\n    test 99 .str: 1.0\n    test 100 .toStr: 1.0\n    test 101 .repr: 1.0\n    test 102 .toRepr: Test (1.0)\n    test 103 .units: bearing\n    test 104 .name: Test\n    test 105 ._name: Test\n    test 106 .str: 1.0\n    test 107 .repr: 1.0\n    test 108 delattr: ''\n\n    testing Degrees(1.0,) (pygeodesy.units, 26.03.12)\n    test 109 .classname: Degrees\n    test 110 isinstance: True\n    test 111 .name: degrees\n    test 112 .named: degrees\n    test 113 .named2: Degrees 'degrees'\n    test 114 .str: 1.0\n    test 115 .toStr: 1.0\n    test 116 .std_repr: True\n    test 117 .repr: 1.0\n    test 118 .toRepr: degrees (1.0)\n    test 119 .units: degrees\n    test 120 degrees: degrees ('X'): strDMS ('X') or suffix ('NSEW'): could not convert string to float: 'X'\n    test 121 degrees: U ('X'): strDMS ('X') or suffix ('NSEW'): could not convert string to float: 'X'\n    test 122 degrees: TypeError\n    test 123 degrees: degrees ('X'): strDMS ('X') or suffix ('NSEW'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 124 .named: Test\n    test 125 .named2: Degrees 'Test'\n    test 126 .str: 1.0\n    test 127 .toStr: 1.0\n    test 128 .repr: 1.0\n    test 129 .toRepr: Test (1.0)\n    test 130 .units: degrees\n    test 131 .name: Test\n    test 132 ._name: Test\n    test 133 .str: 1.0\n    test 134 .repr: 1.0\n    test 135 delattr: ''\n\n    testing Degrees2(1.0,) (pygeodesy.units, 26.03.12)\n    test 136 .classname: Degrees2\n    test 137 isinstance: True\n    test 138 .name: degrees2\n    test 139 .named: degrees2\n    test 140 .named2: Degrees2 'degrees2'\n    test 141 .str: 1.0\n    test 142 .toStr: 1.0\n    test 143 .std_repr: True\n    test 144 .repr: 1.0\n    test 145 .toRepr: degrees2 (1.0)\n    test 146 .units: degrees2\n    test 147 degrees2: degrees2 ('X'): could not convert string to float: 'X'\n    test 148 degrees2: U ('X'): could not convert string to float: 'X'\n    test 149 degrees2: TypeError\n    test 150 degrees2: degrees2 ('X'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 151 .named: Test\n    test 152 .named2: Degrees2 'Test'\n    test 153 .str: 1.0\n    test 154 .toStr: 1.0\n    test 155 .repr: 1.0\n    test 156 .toRepr: Test (1.0)\n    test 157 .units: degrees2\n    test 158 .name: Test\n    test 159 ._name: Test\n    test 160 .str: 1.0\n    test 161 .repr: 1.0\n    test 162 delattr: ''\n\n    testing Degrees_(1.0,) (pygeodesy.units, 26.03.12)\n    test 163 .classname: Degrees_\n    test 164 isinstance: True\n    test 165 .name: degrees_\n    test 166 .named: degrees_\n    test 167 .named2: Degrees_ 'degrees_'\n    test 168 .str: 1.0\n    test 169 .toStr: 1.0\n    test 170 .std_repr: True\n    test 171 .repr: 1.0\n    test 172 .toRepr: degrees_ (1.0)\n    test 173 .units: degrees_\n    test 174 degrees_: degrees ('X'): strDMS ('X') or suffix ('NSEW'): could not convert string to float: 'X'\n    test 175 degrees_: U ('X'): strDMS ('X') or suffix ('NSEW'): could not convert string to float: 'X'\n    test 176 degrees_: TypeError\n    test 177 degrees_: degrees ('X'): strDMS ('X') or suffix ('NSEW'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 178 .named: Test\n    test 179 .named2: Degrees_ 'Test'\n    test 180 .str: 1.0\n    test 181 .toStr: 1.0\n    test 182 .repr: 1.0\n    test 183 .toRepr: Test (1.0)\n    test 184 .units: degrees_\n    test 185 .name: Test\n    test 186 ._name: Test\n    test 187 .str: 1.0\n    test 188 .repr: 1.0\n    test 189 delattr: ''\n\n    testing Distance(1.0,) (pygeodesy.units, 26.03.12)\n    test 190 .classname: Distance\n    test 191 isinstance: True\n    test 192 .name: distance\n    test 193 .named: distance\n    test 194 .named2: Distance 'distance'\n    test 195 .str: 1.0\n    test 196 .toStr: 1.0\n    test 197 .std_repr: True\n    test 198 .repr: 1.0\n    test 199 .toRepr: distance (1.0)\n    test 200 .units: distance\n    test 201 distance: distance ('X'): could not convert string to float: 'X'\n    test 202 distance: U ('X'): could not convert string to float: 'X'\n    test 203 distance: TypeError\n    test 204 distance: distance ('X'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 205 .named: Test\n    test 206 .named2: Distance 'Test'\n    test 207 .str: 1.0\n    test 208 .toStr: 1.0\n    test 209 .repr: 1.0\n    test 210 .toRepr: Test (1.0)\n    test 211 .units: distance\n    test 212 .name: Test\n    test 213 ._name: Test\n    test 214 .str: 1.0\n    test 215 .repr: 1.0\n    test 216 delattr: ''\n\n    testing Distance_(1.0,) (pygeodesy.units, 26.03.12)\n    test 217 .classname: Distance_\n    test 218 isinstance: True\n    test 219 .name: distance_\n    test 220 .named: distance_\n    test 221 .named2: Distance_ 'distance_'\n    test 222 .str: 1.0\n    test 223 .toStr: 1.0\n    test 224 .std_repr: True\n    test 225 .repr: 1.0\n    test 226 .toRepr: distance_ (1.0)\n    test 227 .units: distance_\n    test 228 distance_: distance ('X'): could not convert string to float: 'X'\n    test 229 distance_: U ('X'): could not convert string to float: 'X'\n    test 230 distance_: TypeError\n    test 231 distance_: distance ('X'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 232 .named: Test\n    test 233 .named2: Distance_ 'Test'\n    test 234 .str: 1.0\n    test 235 .toStr: 1.0\n    test 236 .repr: 1.0\n    test 237 .toRepr: Test (1.0)\n    test 238 .units: distance_\n    test 239 .name: Test\n    test 240 ._name: Test\n    test 241 .str: 1.0\n    test 242 .repr: 1.0\n    test 243 delattr: ''\n\n    testing Easting(1.0,) (pygeodesy.units, 26.03.12)\n    test 244 .classname: Easting\n    test 245 isinstance: True\n    test 246 .name: easting\n    test 247 .named: easting\n    test 248 .named2: Easting 'easting'\n    test 249 .str: 1.0\n    test 250 .toStr: 1.0\n    test 251 .std_repr: True\n    test 252 .repr: 1.0\n    test 253 .toRepr: easting (1.0)\n    test 254 .units: easting\n    test 255 easting: easting ('X'): could not convert string to float: 'X'\n    test 256 easting: U ('X'): could not convert string to float: 'X'\n    test 257 easting: TypeError\n    test 258 easting: easting ('X'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 259 .named: Test\n    test 260 .named2: Easting 'Test'\n    test 261 .str: 1.0\n    test 262 .toStr: 1.0\n    test 263 .repr: 1.0\n    test 264 .toRepr: Test (1.0)\n    test 265 .units: easting\n    test 266 .name: Test\n    test 267 ._name: Test\n    test 268 .str: 1.0\n    test 269 .repr: 1.0\n    test 270 delattr: ''\n\n    testing Feet(1.0,) (pygeodesy.units, 26.03.12)\n    test 271 .classname: Feet\n    test 272 isinstance: True\n    test 273 .name: feet\n    test 274 .named: feet\n    test 275 .named2: Feet 'feet'\n    test 276 .str: 1.0\n    test 277 .toStr: 1.0\n    test 278 .std_repr: True\n    test 279 .repr: 1.0\n    test 280 .toRepr: feet (1.0)\n    test 281 .units: feet\n    test 282 feet: feet ('X'): could not convert string to float: 'X'\n    test 283 feet: U ('X'): could not convert string to float: 'X'\n    test 284 feet: TypeError\n    test 285 feet: feet ('X'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 286 .named: Test\n    test 287 .named2: Feet 'Test'\n    test 288 .str: 1.0\n    test 289 .toStr: 1.0\n    test 290 .repr: 1.0\n    test 291 .toRepr: Test (1.0)\n    test 292 .units: feet\n    test 293 .name: Test\n    test 294 ._name: Test\n    test 295 .str: 1.0\n    test 296 .repr: 1.0\n    test 297 delattr: ''\n\n    testing Float_(1.0,) (pygeodesy.units, 26.03.12)\n    test 298 .classname: Float_\n    test 299 isinstance: True\n    test 300 .name: float_\n    test 301 .named: float_\n    test 302 .named2: Float_ 'float_'\n    test 303 .str: 1.0\n    test 304 .toStr: 1.0\n    test 305 .std_repr: True\n    test 306 .repr: 1.0\n    test 307 .toRepr: float_ (1.0)\n    test 308 .units: float_\n    test 309 float_: Float_ ('X'): could not convert string to float: 'X'\n    test 310 float_: U ('X'): could not convert string to float: 'X'\n    test 311 float_: TypeError\n    test 312 float_: Float_ ('X'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 313 .named: Test\n    test 314 .named2: Float_ 'Test'\n    test 315 .str: 1.0\n    test 316 .toStr: 1.0\n    test 317 .repr: 1.0\n    test 318 .toRepr: Test (1.0)\n    test 319 .units: float_\n    test 320 .name: Test\n    test 321 ._name: Test\n    test 322 .str: 1.0\n    test 323 .repr: 1.0\n    test 324 delattr: ''\n\n    testing Height(1.0,) (pygeodesy.units, 26.03.12)\n    test 325 .classname: Height\n    test 326 isinstance: True\n    test 327 .name: height\n    test 328 .named: height\n    test 329 .named2: Height 'height'\n    test 330 .str: 1.0\n    test 331 .toStr: 1.0\n    test 332 .std_repr: True\n    test 333 .repr: 1.0\n    test 334 .toRepr: height (1.0)\n    test 335 .units: height\n    test 336 height: height ('X'): could not convert string to float: 'X'\n    test 337 height: U ('X'): could not convert string to float: 'X'\n    test 338 height: TypeError\n    test 339 height: height ('X'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 340 .named: Test\n    test 341 .named2: Height 'Test'\n    test 342 .str: 1.0\n    test 343 .toStr: 1.0\n    test 344 .repr: 1.0\n    test 345 .toRepr: Test (1.0)\n    test 346 .units: height\n    test 347 .name: Test\n    test 348 ._name: Test\n    test 349 .str: 1.0\n    test 350 .repr: 1.0\n    test 351 delattr: ''\n\n    testing HeightX(1.0,) (pygeodesy.units, 26.03.12)\n    test 352 .classname: HeightX\n    test 353 isinstance: True\n    test 354 .name: heightx\n    test 355 .named: heightx\n    test 356 .named2: HeightX 'heightx'\n    test 357 .str: 1.0\n    test 358 .toStr: 1.0\n    test 359 .std_repr: True\n    test 360 .repr: 1.0\n    test 361 .toRepr: heightx (1.0)\n    test 362 .units: heightx\n    test 363 heightx: height ('X'): could not convert string to float: 'X'\n    test 364 heightx: U ('X'): could not convert string to float: 'X'\n    test 365 heightx: TypeError\n    test 366 heightx: height ('X'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 367 .named: Test\n    test 368 .named2: HeightX 'Test'\n    test 369 .str: 1.0\n    test 370 .toStr: 1.0\n    test 371 .repr: 1.0\n    test 372 .toRepr: Test (1.0)\n    test 373 .units: heightx\n    test 374 .name: Test\n    test 375 ._name: Test\n    test 376 .str: 1.0\n    test 377 .repr: 1.0\n    test 378 delattr: ''\n\n    testing Height_(1.0,) (pygeodesy.units, 26.03.12)\n    test 379 .classname: Height_\n    test 380 isinstance: True\n    test 381 .name: height_\n    test 382 .named: height_\n    test 383 .named2: Height_ 'height_'\n    test 384 .str: 1.0\n    test 385 .toStr: 1.0\n    test 386 .std_repr: True\n    test 387 .repr: 1.0\n    test 388 .toRepr: height_ (1.0)\n    test 389 .units: height_\n    test 390 height_: height ('X'): could not convert string to float: 'X'\n    test 391 height_: U ('X'): could not convert string to float: 'X'\n    test 392 height_: TypeError\n    test 393 height_: height ('X'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 394 .named: Test\n    test 395 .named2: Height_ 'Test'\n    test 396 .str: 1.0\n    test 397 .toStr: 1.0\n    test 398 .repr: 1.0\n    test 399 .toRepr: Test (1.0)\n    test 400 .units: height_\n    test 401 .name: Test\n    test 402 ._name: Test\n    test 403 .str: 1.0\n    test 404 .repr: 1.0\n    test 405 delattr: ''\n\n    testing Lam(1.0,) (pygeodesy.units, 26.03.12)\n    test 406 .classname: Lam\n    test 407 isinstance: True\n    test 408 .name: lam\n    test 409 .named: lam\n    test 410 .named2: Lam 'lam'\n    test 411 .str: 1.0\n    test 412 .toStr: 1.0\n    test 413 .std_repr: True\n    test 414 .repr: 1.0\n    test 415 .toRepr: lam (1.0)\n    test 416 .units: lam\n    test 417 lam: lam ('X'): strRad ('X') or suffix ('EW'): could not convert string to float: 'X'\n    test 418 lam: U ('X'): strRad ('X') or suffix ('EW'): could not convert string to float: 'X'\n    test 419 lam: TypeError\n    test 420 lam: lam ('X'): strRad ('X') or suffix ('EW'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 421 .named: Test\n    test 422 .named2: Lam 'Test'\n    test 423 .str: 1.0\n    test 424 .toStr: 1.0\n    test 425 .repr: 1.0\n    test 426 .toRepr: Test (1.0)\n    test 427 .units: lam\n    test 428 .name: Test\n    test 429 ._name: Test\n    test 430 .str: 1.0\n    test 431 .repr: 1.0\n    test 432 delattr: ''\n\n    testing Lat(1.0,) (pygeodesy.units, 26.03.12)\n    test 433 .classname: Lat\n    test 434 isinstance: True\n    test 435 .name: lat\n    test 436 .named: lat\n    test 437 .named2: Lat 'lat'\n    test 438 .str: 1.0\n    test 439 .toStr: 1.0\n    test 440 .std_repr: True\n    test 441 .repr: 1.0\n    test 442 .toRepr: lat (1.0)\n    test 443 .units: lat\n    test 444 lat: lat ('X'): strDMS ('X') or suffix ('NS'): could not convert string to float: 'X'\n    test 445 lat: U ('X'): strDMS ('X') or suffix ('NS'): could not convert string to float: 'X'\n    test 446 lat: TypeError\n    test 447 lat: lat ('X'): strDMS ('X') or suffix ('NS'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 448 .named: Test\n    test 449 .named2: Lat 'Test'\n    test 450 .str: 1.0\n    test 451 .toStr: 1.0\n    test 452 .repr: 1.0\n    test 453 .toRepr: Test (1.0)\n    test 454 .units: lat\n    test 455 .name: Test\n    test 456 ._name: Test\n    test 457 .str: 1.0\n    test 458 .repr: 1.0\n    test 459 delattr: ''\n\n    testing Lat_(1.0,) (pygeodesy.units, 26.03.12)\n    test 460 .classname: Lat_\n    test 461 isinstance: True\n    test 462 .name: lat_\n    test 463 .named: lat_\n    test 464 .named2: Lat_ 'lat_'\n    test 465 .str: 1.0\n    test 466 .toStr: 1.0\n    test 467 .std_repr: True\n    test 468 .repr: 1.0\n    test 469 .toRepr: lat_ (1.0)\n    test 470 .units: lat_\n    test 471 lat_: lat ('X'): strDMS ('X') or suffix ('NS'): could not convert string to float: 'X'\n    test 472 lat_: U ('X'): strDMS ('X') or suffix ('NS'): could not convert string to float: 'X'\n    test 473 lat_: TypeError\n    test 474 lat_: lat ('X'): strDMS ('X') or suffix ('NS'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 475 .named: Test\n    test 476 .named2: Lat_ 'Test'\n    test 477 .str: 1.0\n    test 478 .toStr: 1.0\n    test 479 .repr: 1.0\n    test 480 .toRepr: Test (1.0)\n    test 481 .units: lat_\n    test 482 .name: Test\n    test 483 ._name: Test\n    test 484 .str: 1.0\n    test 485 .repr: 1.0\n    test 486 delattr: ''\n\n    testing Lon(1.0,) (pygeodesy.units, 26.03.12)\n    test 487 .classname: Lon\n    test 488 isinstance: True\n    test 489 .name: lon\n    test 490 .named: lon\n    test 491 .named2: Lon 'lon'\n    test 492 .str: 1.0\n    test 493 .toStr: 1.0\n    test 494 .std_repr: True\n    test 495 .repr: 1.0\n    test 496 .toRepr: lon (1.0)\n    test 497 .units: lon\n    test 498 lon: lon ('X'): strDMS ('X') or suffix ('EW'): could not convert string to float: 'X'\n    test 499 lon: U ('X'): strDMS ('X') or suffix ('EW'): could not convert string to float: 'X'\n    test 500 lon: TypeError\n    test 501 lon: lon ('X'): strDMS ('X') or suffix ('EW'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 502 .named: Test\n    test 503 .named2: Lon 'Test'\n    test 504 .str: 1.0\n    test 505 .toStr: 1.0\n    test 506 .repr: 1.0\n    test 507 .toRepr: Test (1.0)\n    test 508 .units: lon\n    test 509 .name: Test\n    test 510 ._name: Test\n    test 511 .str: 1.0\n    test 512 .repr: 1.0\n    test 513 delattr: ''\n\n    testing Lon_(1.0,) (pygeodesy.units, 26.03.12)\n    test 514 .classname: Lon_\n    test 515 isinstance: True\n    test 516 .name: lon_\n    test 517 .named: lon_\n    test 518 .named2: Lon_ 'lon_'\n    test 519 .str: 1.0\n    test 520 .toStr: 1.0\n    test 521 .std_repr: True\n    test 522 .repr: 1.0\n    test 523 .toRepr: lon_ (1.0)\n    test 524 .units: lon_\n    test 525 lon_: lon ('X'): strDMS ('X') or suffix ('EW'): could not convert string to float: 'X'\n    test 526 lon_: U ('X'): strDMS ('X') or suffix ('EW'): could not convert string to float: 'X'\n    test 527 lon_: TypeError\n    test 528 lon_: lon ('X'): strDMS ('X') or suffix ('EW'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 529 .named: Test\n    test 530 .named2: Lon_ 'Test'\n    test 531 .str: 1.0\n    test 532 .toStr: 1.0\n    test 533 .repr: 1.0\n    test 534 .toRepr: Test (1.0)\n    test 535 .units: lon_\n    test 536 .name: Test\n    test 537 ._name: Test\n    test 538 .str: 1.0\n    test 539 .repr: 1.0\n    test 540 delattr: ''\n\n    testing Meter(1.0,) (pygeodesy.units, 26.03.12)\n    test 541 .classname: Meter\n    test 542 isinstance: True\n    test 543 .name: meter\n    test 544 .named: meter\n    test 545 .named2: Meter 'meter'\n    test 546 .str: 1.0\n    test 547 .toStr: 1.0\n    test 548 .std_repr: True\n    test 549 .repr: 1.0\n    test 550 .toRepr: meter (1.0)\n    test 551 .units: meter\n    test 552 meter: meter ('X'): could not convert string to float: 'X'\n    test 553 meter: U ('X'): could not convert string to float: 'X'\n    test 554 meter: TypeError\n    test 555 meter: meter ('X'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 556 .named: Test\n    test 557 .named2: Meter 'Test'\n    test 558 .str: 1.0\n    test 559 .toStr: 1.0\n    test 560 .repr: 1.0\n    test 561 .toRepr: Test (1.0)\n    test 562 .units: meter\n    test 563 .name: Test\n    test 564 ._name: Test\n    test 565 .str: 1.0\n    test 566 .repr: 1.0\n    test 567 delattr: ''\n\n    testing Meter2(1.0,) (pygeodesy.units, 26.03.12)\n    test 568 .classname: Meter2\n    test 569 isinstance: True\n    test 570 .name: meter2\n    test 571 .named: meter2\n    test 572 .named2: Meter2 'meter2'\n    test 573 .str: 1.0\n    test 574 .toStr: 1.0\n    test 575 .std_repr: True\n    test 576 .repr: 1.0\n    test 577 .toRepr: meter2 (1.0)\n    test 578 .units: meter2\n    test 579 meter2: meter2 ('X'): could not convert string to float: 'X'\n    test 580 meter2: U ('X'): could not convert string to float: 'X'\n    test 581 meter2: TypeError\n    test 582 meter2: meter2 ('X'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 583 .named: Test\n    test 584 .named2: Meter2 'Test'\n    test 585 .str: 1.0\n    test 586 .toStr: 1.0\n    test 587 .repr: 1.0\n    test 588 .toRepr: Test (1.0)\n    test 589 .units: meter2\n    test 590 .name: Test\n    test 591 ._name: Test\n    test 592 .str: 1.0\n    test 593 .repr: 1.0\n    test 594 delattr: ''\n\n    testing Meter3(1.0,) (pygeodesy.units, 26.03.12)\n    test 595 .classname: Meter3\n    test 596 isinstance: True\n    test 597 .name: meter3\n    test 598 .named: meter3\n    test 599 .named2: Meter3 'meter3'\n    test 600 .str: 1.0\n    test 601 .toStr: 1.0\n    test 602 .std_repr: True\n    test 603 .repr: 1.0\n    test 604 .toRepr: meter3 (1.0)\n    test 605 .units: meter3\n    test 606 meter3: meter3 ('X'): could not convert string to float: 'X'\n    test 607 meter3: U ('X'): could not convert string to float: 'X'\n    test 608 meter3: TypeError\n    test 609 meter3: meter3 ('X'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 610 .named: Test\n    test 611 .named2: Meter3 'Test'\n    test 612 .str: 1.0\n    test 613 .toStr: 1.0\n    test 614 .repr: 1.0\n    test 615 .toRepr: Test (1.0)\n    test 616 .units: meter3\n    test 617 .name: Test\n    test 618 ._name: Test\n    test 619 .str: 1.0\n    test 620 .repr: 1.0\n    test 621 delattr: ''\n\n    testing Meter_(1.0,) (pygeodesy.units, 26.03.12)\n    test 622 .classname: Meter_\n    test 623 isinstance: True\n    test 624 .name: meter_\n    test 625 .named: meter_\n    test 626 .named2: Meter_ 'meter_'\n    test 627 .str: 1.0\n    test 628 .toStr: 1.0\n    test 629 .std_repr: True\n    test 630 .repr: 1.0\n    test 631 .toRepr: meter_ (1.0)\n    test 632 .units: meter_\n    test 633 meter_: meter ('X'): could not convert string to float: 'X'\n    test 634 meter_: U ('X'): could not convert string to float: 'X'\n    test 635 meter_: TypeError\n    test 636 meter_: meter ('X'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 637 .named: Test\n    test 638 .named2: Meter_ 'Test'\n    test 639 .str: 1.0\n    test 640 .toStr: 1.0\n    test 641 .repr: 1.0\n    test 642 .toRepr: Test (1.0)\n    test 643 .units: meter_\n    test 644 .name: Test\n    test 645 ._name: Test\n    test 646 .str: 1.0\n    test 647 .repr: 1.0\n    test 648 delattr: ''\n\n    testing Northing(1.0,) (pygeodesy.units, 26.03.12)\n    test 649 .classname: Northing\n    test 650 isinstance: True\n    test 651 .name: northing\n    test 652 .named: northing\n    test 653 .named2: Northing 'northing'\n    test 654 .str: 1.0\n    test 655 .toStr: 1.0\n    test 656 .std_repr: True\n    test 657 .repr: 1.0\n    test 658 .toRepr: northing (1.0)\n    test 659 .units: northing\n    test 660 northing: northing ('X'): could not convert string to float: 'X'\n    test 661 northing: U ('X'): could not convert string to float: 'X'\n    test 662 northing: TypeError\n    test 663 northing: northing ('X'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 664 .named: Test\n    test 665 .named2: Northing 'Test'\n    test 666 .str: 1.0\n    test 667 .toStr: 1.0\n    test 668 .repr: 1.0\n    test 669 .toRepr: Test (1.0)\n    test 670 .units: northing\n    test 671 .name: Test\n    test 672 ._name: Test\n    test 673 .str: 1.0\n    test 674 .repr: 1.0\n    test 675 delattr: ''\n\n    testing Phi(1.0,) (pygeodesy.units, 26.03.12)\n    test 676 .classname: Phi\n    test 677 isinstance: True\n    test 678 .name: phi\n    test 679 .named: phi\n    test 680 .named2: Phi 'phi'\n    test 681 .str: 1.0\n    test 682 .toStr: 1.0\n    test 683 .std_repr: True\n    test 684 .repr: 1.0\n    test 685 .toRepr: phi (1.0)\n    test 686 .units: phi\n    test 687 phi: phi ('X'): strRad ('X') or suffix ('NS'): could not convert string to float: 'X'\n    test 688 phi: U ('X'): strRad ('X') or suffix ('NS'): could not convert string to float: 'X'\n    test 689 phi: TypeError\n    test 690 phi: phi ('X'): strRad ('X') or suffix ('NS'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 691 .named: Test\n    test 692 .named2: Phi 'Test'\n    test 693 .str: 1.0\n    test 694 .toStr: 1.0\n    test 695 .repr: 1.0\n    test 696 .toRepr: Test (1.0)\n    test 697 .units: phi\n    test 698 .name: Test\n    test 699 ._name: Test\n    test 700 .str: 1.0\n    test 701 .repr: 1.0\n    test 702 delattr: ''\n\n    testing Radians(1.0,) (pygeodesy.units, 26.03.12)\n    test 703 .classname: Radians\n    test 704 isinstance: True\n    test 705 .name: radians\n    test 706 .named: radians\n    test 707 .named2: Radians 'radians'\n    test 708 .str: 1.0\n    test 709 .toStr: 1.0\n    test 710 .std_repr: True\n    test 711 .repr: 1.0\n    test 712 .toRepr: radians (1.0)\n    test 713 .units: radians\n    test 714 radians: radians ('X'): strRad ('X') or suffix ('NSEW'): could not convert string to float: 'X'\n    test 715 radians: U ('X'): strRad ('X') or suffix ('NSEW'): could not convert string to float: 'X'\n    test 716 radians: TypeError\n    test 717 radians: radians ('X'): strRad ('X') or suffix ('NSEW'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 718 .named: Test\n    test 719 .named2: Radians 'Test'\n    test 720 .str: 1.0\n    test 721 .toStr: 1.0\n    test 722 .repr: 1.0\n    test 723 .toRepr: Test (1.0)\n    test 724 .units: radians\n    test 725 .name: Test\n    test 726 ._name: Test\n    test 727 .str: 1.0\n    test 728 .repr: 1.0\n    test 729 delattr: ''\n\n    testing Radians2(1.0,) (pygeodesy.units, 26.03.12)\n    test 730 .classname: Radians2\n    test 731 isinstance: True\n    test 732 .name: radians2\n    test 733 .named: radians2\n    test 734 .named2: Radians2 'radians2'\n    test 735 .str: 1.0\n    test 736 .toStr: 1.0\n    test 737 .std_repr: True\n    test 738 .repr: 1.0\n    test 739 .toRepr: radians2 (1.0)\n    test 740 .units: radians2\n    test 741 radians2: radians2 ('X'): could not convert string to float: 'X'\n    test 742 radians2: U ('X'): could not convert string to float: 'X'\n    test 743 radians2: TypeError\n    test 744 radians2: radians2 ('X'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 745 .named: Test\n    test 746 .named2: Radians2 'Test'\n    test 747 .str: 1.0\n    test 748 .toStr: 1.0\n    test 749 .repr: 1.0\n    test 750 .toRepr: Test (1.0)\n    test 751 .units: radians2\n    test 752 .name: Test\n    test 753 ._name: Test\n    test 754 .str: 1.0\n    test 755 .repr: 1.0\n    test 756 delattr: ''\n\n    testing Radians_(1.0,) (pygeodesy.units, 26.03.12)\n    test 757 .classname: Radians_\n    test 758 isinstance: True\n    test 759 .name: radians_\n    test 760 .named: radians_\n    test 761 .named2: Radians_ 'radians_'\n    test 762 .str: 1.0\n    test 763 .toStr: 1.0\n    test 764 .std_repr: True\n    test 765 .repr: 1.0\n    test 766 .toRepr: radians_ (1.0)\n    test 767 .units: radians_\n    test 768 radians_: radians ('X'): strRad ('X') or suffix ('NSEW'): could not convert string to float: 'X'\n    test 769 radians_: U ('X'): strRad ('X') or suffix ('NSEW'): could not convert string to float: 'X'\n    test 770 radians_: TypeError\n    test 771 radians_: radians ('X'): strRad ('X') or suffix ('NSEW'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 772 .named: Test\n    test 773 .named2: Radians_ 'Test'\n    test 774 .str: 1.0\n    test 775 .toStr: 1.0\n    test 776 .repr: 1.0\n    test 777 .toRepr: Test (1.0)\n    test 778 .units: radians_\n    test 779 .name: Test\n    test 780 ._name: Test\n    test 781 .str: 1.0\n    test 782 .repr: 1.0\n    test 783 delattr: ''\n\n    testing Radius_(1.0,) (pygeodesy.units, 26.03.12)\n    test 784 .classname: Radius_\n    test 785 isinstance: True\n    test 786 .name: radius_\n    test 787 .named: radius_\n    test 788 .named2: Radius_ 'radius_'\n    test 789 .str: 1.0\n    test 790 .toStr: 1.0\n    test 791 .std_repr: True\n    test 792 .repr: 1.0\n    test 793 .toRepr: radius_ (1.0)\n    test 794 .units: radius_\n    test 795 radius_: radius ('X'): could not convert string to float: 'X'\n    test 796 radius_: U ('X'): could not convert string to float: 'X'\n    test 797 radius_: TypeError\n    test 798 radius_: radius ('X'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 799 .named: Test\n    test 800 .named2: Radius_ 'Test'\n    test 801 .str: 1.0\n    test 802 .toStr: 1.0\n    test 803 .repr: 1.0\n    test 804 .toRepr: Test (1.0)\n    test 805 .units: radius_\n    test 806 .name: Test\n    test 807 ._name: Test\n    test 808 .str: 1.0\n    test 809 .repr: 1.0\n    test 810 delattr: ''\n\n    testing Scalar(1.0,) (pygeodesy.units, 26.03.12)\n    test 811 .classname: Scalar\n    test 812 isinstance: True\n    test 813 .name: scalar\n    test 814 .named: scalar\n    test 815 .named2: Scalar 'scalar'\n    test 816 .str: 1.0\n    test 817 .toStr: 1.0\n    test 818 .std_repr: True\n    test 819 .repr: 1.0\n    test 820 .toRepr: scalar (1.0)\n    test 821 .units: scalar\n    test 822 scalar: scalar ('X'): could not convert string to float: 'X'\n    test 823 scalar: U ('X'): could not convert string to float: 'X'\n    test 824 scalar: TypeError\n    test 825 scalar: scalar ('X'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 826 .named: Test\n    test 827 .named2: Scalar 'Test'\n    test 828 .str: 1.0\n    test 829 .toStr: 1.0\n    test 830 .repr: 1.0\n    test 831 .toRepr: Test (1.0)\n    test 832 .units: scalar\n    test 833 .name: Test\n    test 834 ._name: Test\n    test 835 .str: 1.0\n    test 836 .repr: 1.0\n    test 837 delattr: ''\n\n    testing Scalar_(1.0,) (pygeodesy.units, 26.03.12)\n    test 838 .classname: Scalar_\n    test 839 isinstance: True\n    test 840 .name: scalar_\n    test 841 .named: scalar_\n    test 842 .named2: Scalar_ 'scalar_'\n    test 843 .str: 1.0\n    test 844 .toStr: 1.0\n    test 845 .std_repr: True\n    test 846 .repr: 1.0\n    test 847 .toRepr: scalar_ (1.0)\n    test 848 .units: scalar_\n    test 849 scalar_: scalar ('X'): could not convert string to float: 'X'\n    test 850 scalar_: U ('X'): could not convert string to float: 'X'\n    test 851 scalar_: TypeError\n    test 852 scalar_: scalar ('X'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 853 .named: Test\n    test 854 .named2: Scalar_ 'Test'\n    test 855 .str: 1.0\n    test 856 .toStr: 1.0\n    test 857 .repr: 1.0\n    test 858 .toRepr: Test (1.0)\n    test 859 .units: scalar_\n    test 860 .name: Test\n    test 861 ._name: Test\n    test 862 .str: 1.0\n    test 863 .repr: 1.0\n    test 864 delattr: ''\n\n    testing Float(1.0,) (pygeodesy.units, 26.03.12)\n    test 865 .classname: Float\n    test 866 isinstance: True\n    test 867 .name: float\n    test 868 .named: float\n    test 869 .named2: Float 'float'\n    test 870 .str: 1.0\n    test 871 .toStr: 1.0\n    test 872 .std_repr: True\n    test 873 .repr: 1.0\n    test 874 .toRepr: float (1.0)\n    test 875 .units: float\n    test 876 float: Float ('X'): could not convert string to float: 'X'\n    test 877 float: U ('X'): could not convert string to float: 'X'\n    test 878 float: TypeError\n    test 879 float: Float ('X'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 880 .named: Test\n    test 881 .named2: Float 'Test'\n    test 882 .str: 1.0\n    test 883 .toStr: 1.0\n    test 884 .repr: 1.0\n    test 885 .toRepr: Test (1.0)\n    test 886 .units: float\n    test 887 .name: Test\n    test 888 ._name: Test\n    test 889 .str: 1.0\n    test 890 .repr: 1.0\n    test 891 delattr: ''\n\n    testing Radius(1.0,) (pygeodesy.units, 26.03.12)\n    test 892 .classname: Radius\n    test 893 isinstance: True\n    test 894 .name: radius\n    test 895 .named: radius\n    test 896 .named2: Radius 'radius'\n    test 897 .str: 1.0\n    test 898 .toStr: 1.0\n    test 899 .std_repr: True\n    test 900 .repr: 1.0\n    test 901 .toRepr: radius (1.0)\n    test 902 .units: radius\n    test 903 radius: radius ('X'): could not convert string to float: 'X'\n    test 904 radius: U ('X'): could not convert string to float: 'X'\n    test 905 radius: TypeError\n    test 906 radius: radius ('X'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 907 .named: Test\n    test 908 .named2: Radius 'Test'\n    test 909 .str: 1.0\n    test 910 .toStr: 1.0\n    test 911 .repr: 1.0\n    test 912 .toRepr: Test (1.0)\n    test 913 .units: radius\n    test 914 .name: Test\n    test 915 ._name: Test\n    test 916 .str: 1.0\n    test 917 .repr: 1.0\n    test 918 delattr: ''\n# lazily imported pygeodesy.utmups by bases.py line 199\n# lazily imported pygeodesy.vector2d by bases.py line 199\n# lazily imported pygeodesy.webmercator by bases.py line 199\n# lazily imported pygeodesy.auxilats by bases.py line 199\n# lazily imported pygeodesy.geodesicx by bases.py line 199\n# lazily imported pygeodesy.rhumb by bases.py line 199\n\n    testing _Lat(1.0,) (pygeodesy.units, 26.03.12)\n    test 919 .classname: _Lat\n    test 920 isinstance: True\n    test 921 .name: _lat\n    test 922 .named: _lat\n    test 923 .named2: _Lat '_lat'\n    test 924 .str: 1.0\n    test 925 .toStr: 1.0\n    test 926 .std_repr: True\n    test 927 .repr: 1.0\n    test 928 .toRepr: _lat (1.0)\n    test 929 .units: _lat\n    test 930 _lat: lat ('X'): strDMS ('X') or suffix ('NS'): could not convert string to float: 'X'\n    test 931 _lat: U ('X'): strDMS ('X') or suffix ('NS'): could not convert string to float: 'X'\n    test 932 _lat: TypeError\n    test 933 _lat: lat ('X'): strDMS ('X') or suffix ('NS'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 934 .named: Test\n    test 935 .named2: _Lat 'Test'\n    test 936 .str: 1.0\n    test 937 .toStr: 1.0\n    test 938 .repr: 1.0\n    test 939 .toRepr: Test (1.0)\n    test 940 .units: _lat\n    test 941 .name: Test\n    test 942 ._name: Test\n    test 943 .str: 1.0\n    test 944 .repr: 1.0\n    test 945 delattr: ''\n\n    testing _Lon(1.0,) (pygeodesy.units, 26.03.12)\n    test 946 .classname: _Lon\n    test 947 isinstance: True\n    test 948 .name: _lon\n    test 949 .named: _lon\n    test 950 .named2: _Lon '_lon'\n    test 951 .str: 1.0\n    test 952 .toStr: 1.0\n    test 953 .std_repr: True\n    test 954 .repr: 1.0\n    test 955 .toRepr: _lon (1.0)\n    test 956 .units: _lon\n    test 957 _lon: lon ('X'): strDMS ('X') or suffix ('EW'): could not convert string to float: 'X'\n    test 958 _lon: U ('X'): strDMS ('X') or suffix ('EW'): could not convert string to float: 'X'\n    test 959 _lon: TypeError\n    test 960 _lon: lon ('X'): strDMS ('X') or suffix ('EW'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 961 .named: Test\n    test 962 .named2: _Lon 'Test'\n    test 963 .str: 1.0\n    test 964 .toStr: 1.0\n    test 965 .repr: 1.0\n    test 966 .toRepr: Test (1.0)\n    test 967 .units: _lon\n    test 968 .name: Test\n    test 969 ._name: Test\n    test 970 .str: 1.0\n    test 971 .repr: 1.0\n    test 972 delattr: ''\n\n    testing Band('U',) (pygeodesy.units, 26.03.12)\n    test 973 .classname: Band\n    test 974 isinstance: True\n    test 975 .name: band\n    test 976 .named: band\n    test 977 .named2: Band 'band'\n    test 978 .str: U\n    test 979 .toStr: U\n    test 980 .std_repr: True\n    test 981 .repr: 'U'\n    test 982 .toRepr: band ('U')\n    test 983 .units: band\n    test 984 error: X  FAILED, KNOWN, expected <class 'ValueError'>\n    test 985 error: X  FAILED, KNOWN, expected <class 'ValueError'>\n    test 986 Error: X  FAILED, KNOWN, expected <class 'TypeError'>\n    test 987 .named: Test\n    test 988 .named2: Band 'Test'\n    test 989 .str: U\n    test 990 .toStr: U\n    test 991 .repr: 'U'\n    test 992 .toRepr: Test ('U')\n    test 993 .units: band\n    test 994 .name: Test\n    test 995 ._name: Test\n    test 996 .str: U\n    test 997 .repr: 'U'\n    test 998 delattr: ''\n\n    testing Str('U',) (pygeodesy.units, 26.03.12)\n    test 999 .classname: Str\n    test 1000 isinstance: True\n    test 1001 .name: str\n    test 1002 .named: str\n    test 1003 .named2: Str 'str'\n    test 1004 .str: U\n    test 1005 .toStr: U\n    test 1006 .std_repr: True\n    test 1007 .repr: 'U'\n    test 1008 .toRepr: str ('U')\n    test 1009 .units: str\n    test 1010 error: X  FAILED, KNOWN, expected <class 'ValueError'>\n    test 1011 error: X  FAILED, KNOWN, expected <class 'ValueError'>\n    test 1012 Error: X  FAILED, KNOWN, expected <class 'TypeError'>\n    test 1013 .named: Test\n    test 1014 .named2: Str 'Test'\n    test 1015 .str: U\n    test 1016 .toStr: U\n    test 1017 .repr: 'U'\n    test 1018 .toRepr: Test ('U')\n    test 1019 .units: str\n    test 1020 .name: Test\n    test 1021 ._name: Test\n    test 1022 .str: U\n    test 1023 .repr: 'U'\n    test 1024 delattr: ''\n\n    testing Bool(True,) (pygeodesy.units, 26.03.12)\n    test 1025 .classname: Bool\n    test 1026 isinstance: True\n    test 1027 .name: bool\n    test 1028 .named: bool\n    test 1029 .named2: Bool 'bool'\n    test 1030 .str: True\n    test 1031 .toStr: True\n    test 1032 .std_repr: True\n    test 1033 .repr: True\n    test 1034 .toRepr: bool (True)\n    test 1035 .units: bool\n    test 1036 error: True  FAILED, KNOWN, expected <class 'ValueError'>\n    test 1037 error: True  FAILED, KNOWN, expected <class 'ValueError'>\n    test 1038 Error: True  FAILED, KNOWN, expected <class 'TypeError'>\n    test 1039 .named: Test\n    test 1040 .named2: Bool 'Test'\n    test 1041 .str: True\n    test 1042 .toStr: True\n    test 1043 .repr: True\n    test 1044 .toRepr: Test (True)\n    test 1045 .units: bool\n    test 1046 .name: Test\n    test 1047 ._name: Test\n    test 1048 .str: True\n    test 1049 .repr: True\n    test 1050 delattr: ''\n\n    testing Int(2,) (pygeodesy.units, 26.03.12)\n    test 1051 .classname: Int\n    test 1052 isinstance: True\n    test 1053 .name: int\n    test 1054 .named: int\n    test 1055 .named2: Int 'int'\n    test 1056 .str: 2\n    test 1057 .toStr: 2\n    test 1058 .std_repr: True\n    test 1059 .repr: 2\n    test 1060 .toRepr: int (2)\n    test 1061 .units: int\n    test 1062 int: Int ('X'): invalid literal for int() with base 10: 'X'\n    test 1063 int: U ('X'): invalid literal for int() with base 10: 'X'\n    test 1064 int: TypeError\n    test 1065 int: Int ('X'): invalid literal for int() with base 10: 'X'  FAILED, KNOWN, expected 'X'\n    test 1066 .named: Test\n    test 1067 .named2: Int 'Test'\n    test 1068 .str: 2\n    test 1069 .toStr: 2\n    test 1070 .repr: 2\n    test 1071 .toRepr: Test (2)\n    test 1072 .units: int\n    test 1073 .name: Test\n    test 1074 ._name: Test\n    test 1075 .str: 2\n    test 1076 .repr: 2\n    test 1077 delattr: ''\n\n    testing Int_(2,) (pygeodesy.units, 26.03.12)\n    test 1078 .classname: Int_\n    test 1079 isinstance: True\n    test 1080 .name: int_\n    test 1081 .named: int_\n    test 1082 .named2: Int_ 'int_'\n    test 1083 .str: 2\n    test 1084 .toStr: 2\n    test 1085 .std_repr: True\n    test 1086 .repr: 2\n    test 1087 .toRepr: int_ (2)\n    test 1088 .units: int_\n    test 1089 int_: Int_ ('X'): invalid literal for int() with base 10: 'X'\n    test 1090 int_: U ('X'): invalid literal for int() with base 10: 'X'\n    test 1091 int_: TypeError\n    test 1092 int_: Int_ ('X'): invalid literal for int() with base 10: 'X'  FAILED, KNOWN, expected 'X'\n    test 1093 .named: Test\n    test 1094 .named2: Int_ 'Test'\n    test 1095 .str: 2\n    test 1096 .toStr: 2\n    test 1097 .repr: 2\n    test 1098 .toRepr: Test (2)\n    test 1099 .units: int_\n    test 1100 .name: Test\n    test 1101 ._name: Test\n    test 1102 .str: 2\n    test 1103 .repr: 2\n    test 1104 delattr: ''\n\n    testing Number_(2,) (pygeodesy.units, 26.03.12)\n    test 1105 .classname: Number_\n    test 1106 isinstance: True\n    test 1107 .name: number_\n    test 1108 .named: number_\n    test 1109 .named2: Number_ 'number_'\n    test 1110 .str: 2\n    test 1111 .toStr: 2\n    test 1112 .std_repr: True\n    test 1113 .repr: 2\n    test 1114 .toRepr: number_ (2)\n    test 1115 .units: number_\n    test 1116 number_: number ('X'): invalid literal for int() with base 10: 'X'\n    test 1117 number_: U ('X'): invalid literal for int() with base 10: 'X'\n    test 1118 number_: TypeError\n    test 1119 number_: number ('X'): invalid literal for int() with base 10: 'X'  FAILED, KNOWN, expected 'X'\n    test 1120 .named: Test\n    test 1121 .named2: Number_ 'Test'\n    test 1122 .str: 2\n    test 1123 .toStr: 2\n    test 1124 .repr: 2\n    test 1125 .toRepr: Test (2)\n    test 1126 .units: number_\n    test 1127 .name: Test\n    test 1128 ._name: Test\n    test 1129 .str: 2\n    test 1130 .repr: 2\n    test 1131 delattr: ''\n\n    testing Precision_(2,) (pygeodesy.units, 26.03.12)\n    test 1132 .classname: Precision_\n    test 1133 isinstance: True\n    test 1134 .name: precision_\n    test 1135 .named: precision_\n    test 1136 .named2: Precision_ 'precision_'\n    test 1137 .str: 2\n    test 1138 .toStr: 2\n    test 1139 .std_repr: True\n    test 1140 .repr: 2\n    test 1141 .toRepr: precision_ (2)\n    test 1142 .units: precision_\n    test 1143 precision_: precision ('X'): invalid literal for int() with base 10: 'X'\n    test 1144 precision_: U ('X'): invalid literal for int() with base 10: 'X'\n    test 1145 precision_: TypeError\n    test 1146 precision_: precision ('X'): invalid literal for int() with base 10: 'X'  FAILED, KNOWN, expected 'X'\n    test 1147 .named: Test\n    test 1148 .named2: Precision_ 'Test'\n    test 1149 .str: 2\n    test 1150 .toStr: 2\n    test 1151 .repr: 2\n    test 1152 .toRepr: Test (2)\n    test 1153 .units: precision_\n    test 1154 .name: Test\n    test 1155 ._name: Test\n    test 1156 .str: 2\n    test 1157 .repr: 2\n    test 1158 delattr: ''\n\n    testing Zone(2,) (pygeodesy.units, 26.03.12)\n    test 1159 .classname: Zone\n    test 1160 isinstance: True\n    test 1161 .name: zone\n    test 1162 .named: zone\n    test 1163 .named2: Zone 'zone'\n    test 1164 .str: 2\n    test 1165 .toStr: 2\n    test 1166 .std_repr: True\n    test 1167 .repr: 2\n    test 1168 .toRepr: zone (2)\n    test 1169 .units: zone\n    test 1170 zone: zone ('X'): invalid literal for int() with base 10: 'X'\n    test 1171 zone: U ('X'): invalid literal for int() with base 10: 'X'\n    test 1172 zone: TypeError\n    test 1173 zone: zone ('X'): invalid literal for int() with base 10: 'X'  FAILED, KNOWN, expected 'X'\n    test 1174 .named: Test\n    test 1175 .named2: Zone 'Test'\n    test 1176 .str: 2\n    test 1177 .toStr: 2\n    test 1178 .repr: 2\n    test 1179 .toRepr: Test (2)\n    test 1180 .units: zone\n    test 1181 .name: Test\n    test 1182 ._name: Test\n    test 1183 .str: 2\n    test 1184 .repr: 2\n    test 1185 delattr: ''\n\n    testing Epoch(1901,) (pygeodesy.units, 26.03.12)\n    test 1186 .classname: Epoch\n    test 1187 isinstance: True\n    test 1188 .name: epoch\n    test 1189 .named: epoch\n    test 1190 .named2: Epoch 'epoch'\n    test 1191 .str: 1901\n    test 1192 .toStr: 1901\n    test 1193 .std_repr: False\n    test 1194 .repr: epoch (1901)\n    test 1195 .toRepr: epoch (1901)\n    test 1196 .units: epoch\n    test 1197 epoch: epoch ('X'): could not convert string to float: 'X'\n    test 1198 epoch: U ('X'): could not convert string to float: 'X'\n    test 1199 epoch: TypeError\n    test 1200 epoch: epoch ('X'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 1201 .named: Test\n    test 1202 .named2: Epoch 'Test'\n    test 1203 .str: 1901\n    test 1204 .toStr: 1901\n    test 1205 .repr: Test (1901)\n    test 1206 .toRepr: Test (1901)\n    test 1207 .units: epoch\n    test 1208 .name: Test\n    test 1209 ._name: Test\n    test 1210 .str: 1901\n    test 1211 .repr: Test (1901)\n    test 1212 delattr: ''\n\n    testing(pygeodesy.units, 26.03.12)\n\n    test 1213 Azimuth: 1.0\n\n    test 1214 Bearing: 1.0\n    test 1215 Bearing_: 0.01745\n\n    test 1216 Lamd: 6.30\n    test 1217 Phid: 6.30\n\n    test 1218 FIx: 1.0  FAILED, KNOWN, expected 1\n    test 1219 FIx: 1.5\n\n    test 1220 Dash: -\n    test 1221 Dash: -\n\n    test 1222 Dash: '-'\n    test 1223 Dash: Dash ('-')\n\n    test 1224 Join_d: c-a-l-l\n    test 1225 Join_d: c-a-l-l\n\n    test 1226 Join_d: 'c-a-l-l'\n    test 1227 Join_d: Join_d ('c-a-l-l')\n\n    52 of 1227 testUnits.py tests (4.2%) FAILED, ALL KNOWN (pygeodesy 26.3.26 PyPy 7.3.17 Python 3.10.14 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 104.458 ms\nrunning /opt/local/bin/p....y3.10 -W default ~/PyGeodesy/test/testUps.py\n# lazily imported pygeodesy.basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.DeprecationWarnings from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isint from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isLazy from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.issubclassof from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.iterNumpy2over from .iters by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.LazyImportError from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.karney by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.NN from .interns by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.normDMS from .dms by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.pairs from .streprs by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.printf from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.property_RO from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.typename from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.degDMS from .dms by testUps.py line 11\n# lazily imported pygeodesy.F_DMS from .dms by testUps.py line 11\n# lazily imported pygeodesy.parseUTMUPS5 from .utmups by testUps.py line 11\n# lazily imported pygeodesy.RangeError from .errors by testUps.py line 11\n# lazily imported pygeodesy.strs from .streprs by testUps.py line 11\n# lazily imported pygeodesy.toUps8 from .ups by testUps.py line 11\n# lazily imported pygeodesy.toUtmUps8 from .utmups by testUps.py line 11\n# lazily imported pygeodesy.Ups from .ups by testUps.py line 11\n# lazily imported pygeodesy.UtmUps from .utmups by testUps.py line 11\n# lazily imported pygeodesy.ellipsoidalVincenty by testUps.py line 195\n\n    testing testUps.py 23.03.27 (module pygeodesy.ups 25.04.14) isLazy=3\n    test 1 Ups: 00 N 448251.0 5411932.0001\n    test 2 Ups: 00 N 448252 5411933\n    test 3 Ups: 00 N 448251.795 5411932.678\n    test 4 Ups: 00Z N 448251.8 5411932.7 n/a n/a\n    test 5 Ups2: [Z:00, H:N, E:448252, N:5411933]\n    test 6 UtmUps.toLatLon: 43.610051°N, 004.46308°E\n    test 7 UtmUps.toLatLon: 43°36′36.18″N, 004°27′47.09″E\n# lazily imported pygeodesy.mgrs by utmupsBase.py line 523\n    test 8 UtmUps.toMgrs: 60T UP 60176 38249\n# imported pygeodesy.basics into errors.py line 443\n    test 9 toUps: lat ('43.684097°'): inside UTM range [-79.5, 83.5]\n    test 10 UtmUps.toUtm: 60 N 360177 4838249\n    test 11 toUpsID1: 00 N 1530125.78 2426773.6 -132.24798917° 0.99647445\n    test 12 toUtmUps8ID2: 38 N 467367.68 8100752.13 -57.37878422′ 0.99961302  FAILED, KNOWN, expected 38 N 3320416.75 632668.43 +44.0° 1.01619505\n    test 13 toUtmUps8ID2: 00 N 3320416.75 632668.43 +44.0° 1.01619505\n    test 14 toUpsID3: 00 S 2222979.47 1797474.9 -132.24786194° 0.99455723\n    test 15 Ups.toLatLonID4: 84°17′14.04″N, 132°14′52.76″W\n    test 16 Ups.toLatLonID4: 84.287234°N, 132.247989°W\n    test 17 Ups.toLatLonID5: 73°00′00.0″N, 044°00′00.0″E\n    test 18 Ups.toLatLonID5: 73.0°N, 044.0°E\n    test 19 Ups.toLatLonID6: 87°17′14.4″S, 132°14′52.3″E\n    test 20 Ups.toLatLonID6: 87.287333°S, 132.247861°E\n    test 21 latlon: 84.0°N, 084.0°E\n    test 22 toUps: 00 N 2663075 1930308\n    test 23 toUps: 00 N 2663075.299562 1930307.977716 +84.0° 0.99673\n    test 24 toUps(None): (0, 'N', 2663075.299562, 1930307.977716, 'Z', ...)\n    test 25 .scale0: 0.994000\n    test 26 rescale0: 0.997261\n    test 27 NGA-10.2-1: 00 N 2000000.0 2000000.0 +0.0″ 0.994\n    test 28 NGA-10.2-2: 00 N 1998062.320046 2111009.610243 -179.0° 0.994076\n    test 29 NGA-10.2-3: 00 N 1777930.731071 2000000.0 -90.0° 0.994303\n    test 30 NGA-10.2-4: 00 N 1994185.827038 1666906.254073 -1.0° 0.994682\n    test 31 NGA-10.2-5: 00 N 2000000.0 1555731.570643 +0.0″ 0.995212\n    test 32 NGA-10.2-6: 00 N 2009694.068153 1444627.207468 +1.0° 0.995895\n    test 33 NGA-10.2-7: 00 N 2666626.157825 1988363.997132 +89.0° 0.996730\n    test 34 NGA-10.2-8: 46 N 459200.256323 9217519.441609 -2.97767886° 0.997718\n    test 35 NGA-10.2-9: 46 N 468930.934996 9105366.008486 -1.98055172° 0.998860\n    test 36 NGA-10.2-10: 60 N 534921.971582 8993806.415149 +1.97539632° 1.000156\n    test 37 NGA-10.2-11: 01 N 441867.784867 8883084.955948 -2.95450468° 1.001608\n    test 38 NGA-10.2-12: 31 N 243900.35203 4432069.056899 -1.92940969° 1.0004075\n    test 39 NGA-10.2-13: 01 N 277707.830749 331796.291679 -6.28291137′ 1.00021172\n    test 40 NGA-10.2-14: 16 N 166223.907623 221366.16603 -6.28776606′ 1.00097936\n    test 41 NGA-10.2-15: 30 N 722561.736479 110597.972524 +2.09515682′ 1.00021322\n    test 42 NGA-10.2-16: 31 N 166021.443081 0.0 +0.0″ 1.00098106\n    test 43 NGA-10.2-17: 31 S 277438.263521 9889402.027476 +2.09515682′ 1.00021322\n    test 44 NGA-10.2-18: 46 S 166223.907623 9778633.83397 +6.28776606′ 1.00097936\n    test 45 NGA-10.2-19: 60 S 722292.169251 9668203.708321 -6.28291137′ 1.00021172\n    test 46 NGA-10.2-20: 01 S 166831.065275 9557263.747314 +12.56782777′ 1.00097428\n    test 47 NGA-10.3-1: -64.9164123332 -135.0\n    test 48 NGA-10.3-2: -70.0552944014 -153.4349488229\n    test 49 NGA-10.3-3: -72.1263610163 180.0  FAILED, KNOWN, expected -72.1263610163 -180.0\n    test 50 NGA-10.3-4: -70.0552944014 153.4349488229\n    test 51 NGA-10.3-5: -64.9164123332 135.0\n    test 52 NGA-10.3-6: -70.0552944014 -116.5650511771\n    test 53 NGA-10.3-7: -77.3120791908 -135.0\n    test 54 NGA-10.3-8: -81.0106632645 180.0\n    test 55 NGA-10.3-9: -77.3120791908 135.0\n    test 56 NGA-10.3-10: -70.0552944014 116.5650511771\n    test 57 NGA-10.3-11: -72.1263610163 -90.0\n    test 58 NGA-10.3-12: -81.0106632645 -90.0\n    test 59 NGA-10.3-13: -90.0 0.0\n    test 60 NGA-10.3-14: -81.0106632645 90.0\n    test 61 NGA-10.3-15: -72.1263610163 90.0\n    test 62 NGA-10.3-16: -70.0552944014 -63.4349488229\n    test 63 NGA-10.3-17: -77.3120791908 -45.0\n    test 64 NGA-10.3-18: -81.0106632645 0.0\n    test 65 NGA-10.3-19: -77.3120791908 45.0\n    test 66 NGA-10.3-20: -70.0552944014 63.4349488229\n    test 67 NGA-10.3-21: -64.9164123332 -45.0\n    test 68 NGA-10.3-22: -70.0552944014 -26.5650511771\n    test 69 NGA-10.3-23: -72.1263610163 0.0\n    test 70 NGA-10.3-24: -70.0552944014 26.5650511771\n    test 71 NGA-10.3-25: -64.9164123332 45.0\n    test 72 toUps: 00 N 2000000 1288738\n    test 73 toUtm: 02 N 611555 10703765\n    test 74 toUtm: [Z:00Z, H:N, E:2000000, N:2000000]\n\n    2 of 74 testUps.py tests (2.7%) FAILED, ALL KNOWN (pygeodesy 26.3.26 PyPy 7.3.17 Python 3.10.14 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 45.155 ms\nrunning /opt/local/bin/p....y3.10 -W default ~/PyGeodesy/test/testUtily.py\n# lazily imported pygeodesy.basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.DeprecationWarnings from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isint from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isLazy from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.issubclassof from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.iterNumpy2over from .iters by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.LazyImportError from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.karney by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.NN from .interns by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.normDMS from .dms by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.pairs from .streprs by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.printf from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.property_RO from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.typename from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.EPS from .constants by testUtily.py line 11\n# lazily imported pygeodesy.INF from .constants by testUtily.py line 11\n# lazily imported pygeodesy.NEG0 from .constants by testUtily.py line 11\n# lazily imported pygeodesy.NINF from .constants by testUtily.py line 11\n# lazily imported pygeodesy.PI from .constants by testUtily.py line 11\n# lazily imported pygeodesy.PI2 from .constants by testUtily.py line 11\n# lazily imported pygeodesy.PI_2 from .constants by testUtily.py line 11\n# lazily imported pygeodesy.PI3_2 from .constants by testUtily.py line 11\n# lazily imported pygeodesy.acre2ha from .utily by testUtily.py line 11\n# lazily imported pygeodesy.acre2m2 from .utily by testUtily.py line 11\n# lazily imported pygeodesy.atan1 from .utily by testUtily.py line 11\n# lazily imported pygeodesy.atan2d from .utily by testUtily.py line 11\n# lazily imported pygeodesy.chain2m from .utily by testUtily.py line 11\n# lazily imported pygeodesy.cot from .utily by testUtily.py line 11\n# lazily imported pygeodesy.cot_ from .utily by testUtily.py line 11\n# lazily imported pygeodesy.cotd from .utily by testUtily.py line 11\n# lazily imported pygeodesy.cotd_ from .utily by testUtily.py line 11\n# lazily imported pygeodesy.degrees90 from .utily by testUtily.py line 11\n# lazily imported pygeodesy.degrees180 from .utily by testUtily.py line 11\n# lazily imported pygeodesy.degrees360 from .utily by testUtily.py line 11\n# lazily imported pygeodesy.degrees2m from .utily by testUtily.py line 11\n# lazily imported pygeodesy.fathom2m from .utily by testUtily.py line 11\n# lazily imported pygeodesy.fstr from .streprs by testUtily.py line 11\n# lazily imported pygeodesy.ft2m from .utily by testUtily.py line 11\n# lazily imported pygeodesy.furlong2m from .utily by testUtily.py line 11\n# lazily imported pygeodesy.grades400 from .utily by testUtily.py line 11\n# lazily imported pygeodesy.degrees2grades from .utily by testUtily.py line 11\n# lazily imported pygeodesy.grades2degrees from .utily by testUtily.py line 11\n# lazily imported pygeodesy.grades2radians from .utily by testUtily.py line 11\n# lazily imported pygeodesy.ha2acre from .utily by testUtily.py line 11\n# lazily imported pygeodesy.isPoints2 from .iters by testUtily.py line 11\n# lazily imported pygeodesy.map1 from .basics by testUtily.py line 11\n# lazily imported pygeodesy.m2chain from .utily by testUtily.py line 11\n# lazily imported pygeodesy.m2degrees from .utily by testUtily.py line 11\n# lazily imported pygeodesy.m2fathom from .utily by testUtily.py line 11\n# lazily imported pygeodesy.m2ft from .utily by testUtily.py line 11\n# lazily imported pygeodesy.m2furlong from .utily by testUtily.py line 11\n# lazily imported pygeodesy.m2ha from .utily by testUtily.py line 11\n# lazily imported pygeodesy.m2toise from .utily by testUtily.py line 11\n# lazily imported pygeodesy.m2yard from .utily by testUtily.py line 11\n# lazily imported pygeodesy.radiansPI from .utily by testUtily.py line 11\n# lazily imported pygeodesy.radiansPI2 from .utily by testUtily.py line 11\n# lazily imported pygeodesy.radiansPI_2 from .utily by testUtily.py line 11\n# lazily imported pygeodesy.sincos2 from .utily by testUtily.py line 11\n# lazily imported pygeodesy.sincos2d from .utily by testUtily.py line 11\n# lazily imported pygeodesy.sincostan3 from .utily by testUtily.py line 11\n# lazily imported pygeodesy.tan from .utily by testUtily.py line 11\n# lazily imported pygeodesy.tan_ from .utily by testUtily.py line 11\n# lazily imported pygeodesy.tan_2 from .utily by testUtily.py line 11\n# lazily imported pygeodesy.tand from .utily by testUtily.py line 11\n# lazily imported pygeodesy.tand_ from .utily by testUtily.py line 11\n# lazily imported pygeodesy.toise2m from .utily by testUtily.py line 11\n# lazily imported pygeodesy.unroll180 from .utily by testUtily.py line 11\n# lazily imported pygeodesy.wrap90 from .utily by testUtily.py line 11\n# lazily imported pygeodesy.wrap180 from .utily by testUtily.py line 11\n# lazily imported pygeodesy.wrap360 from .utily by testUtily.py line 11\n# lazily imported pygeodesy.wrapPI from .utily by testUtily.py line 11\n# lazily imported pygeodesy.wrapPI2 from .utily by testUtily.py line 11\n# lazily imported pygeodesy.wrapPI_2 from .utily by testUtily.py line 11\n# lazily imported pygeodesy.yard2m from .utily by testUtily.py line 11\n\n    testing testUtily.py 24.12.24 (module pygeodesy.utily 26.03.20) isLazy=3\n\n    test 1 degrees90(PI_2): 90.0\n    test 2 degrees90(PI): 0.0\n    test 3 degrees90(PI2): 0.0\n    test 4 degrees90(-PI_2): -90.0\n    test 5 degrees90(-PI): 0.0\n    test 6 degrees90(-PI2): 0.0\n\n    test 7 degrees180(PI_2): 90.0\n    test 8 degrees180(PI): 180.0\n    test 9 degrees180(PI2): 0.0\n    test 10 degrees180(-PI_2): -90.0\n    test 11 degrees180(-PI): -180.0\n    test 12 degrees180(-PI2): 0.0\n\n    test 13 degrees360(PI_2): 90.0\n    test 14 degrees360(PI): 180.0\n    test 15 degrees360(PI2): 0.0\n    test 16 degrees360(-PI_2): 270.0\n    test 17 degrees360(-PI): 180.0\n    test 18 degrees360(-PI2): 0.0\n\n    test 19 degrees2grades(90): 100.0\n    test 20 degrees2grades(180): 200.0\n    test 21 degrees2grades(360): 400.0\n    test 22 degrees2grades(-90): -100.0\n    test 23 degrees2grades(-180): -200.0\n    test 24 degrees2grades(-360): -400.0\n\n    test 25 grades400(PI_2): 100.0\n    test 26 grades400(PI): 200.0\n    test 27 grades400(PI2): 0.0\n    test 28 grades400(-PI_2): 300.0\n    test 29 grades400(-PI): 200.0\n    test 30 grades400(-PI2): 0.0\n\n    test 31 grades2degrees(100): 90.0\n    test 32 grades2degrees(200): 180.0\n    test 33 grades2degrees(400): 360.0\n    test 34 grades2degrees(-100): -90.0\n    test 35 grades2degrees(-200): -180.0\n    test 36 grades2degrees(-400): -360.0\n\n    test 37 grades2radians(100): 1.5707963267948966\n    test 38 grades2radians(200): 3.141592653589793\n    test 39 grades2radians(400): 6.283185307179586\n    test 40 grades2radians(-100): -1.5707963267948966\n    test 41 grades2radians(-200): -3.141592653589793\n    test 42 grades2radians(-400): -6.283185307179586\n\n    test 43 radiansPI_2(90): 1.5707963267948966\n    test 44 radiansPI_2(180): 0.0\n    test 45 radiansPI_2(360): 0.0\n    test 46 radiansPI_2(-90): -1.5707963267948966\n    test 47 radiansPI_2(-180): 0.0\n    test 48 radiansPI_2(-360): 0.0\n\n    test 49 radiansPI(90): 1.5707963267948966\n    test 50 radiansPI(180): 3.141592653589793\n    test 51 radiansPI(360): 0.0\n    test 52 radiansPI(-90): -1.5707963267948966\n    test 53 radiansPI(-180): -3.141592653589793\n    test 54 radiansPI(-360): 0.0\n\n    test 55 radiansPI2(90): 1.5707963267948966\n    test 56 radiansPI2(180): 3.141592653589793\n    test 57 radiansPI2(360): 0.0\n    test 58 radiansPI2(-90): 4.71238898038469\n    test 59 radiansPI2(-180): 3.141592653589793\n    test 60 radiansPI2(-360): 0.0\n\n    test 61 wrap90(90): 90.0\n    test 62 wrap90(180): 0.0\n    test 63 wrap90(360): 0.0\n    test 64 wrap90(-90): -90.0\n    test 65 wrap90(-180): 0.0\n    test 66 wrap90(-360): 0.0\n\n    test 67 wrap180(90): 90.0\n    test 68 wrap180(180): 180.0\n    test 69 wrap180(360): 0.0\n    test 70 wrap180(-90): -90.0\n    test 71 wrap180(-180): -180.0\n    test 72 wrap180(-360): 0.0\n\n    test 73 wrap360(90): 90.0\n    test 74 wrap360(180): 180.0\n    test 75 wrap360(360): 0.0\n    test 76 wrap360(-90): 270.0\n    test 77 wrap360(-180): 180.0\n    test 78 wrap360(-360): 0.0\n\n    test 79 wrapPI_2(PI_2): 1.5707963267948966\n    test 80 wrapPI_2(PI): 0.0\n    test 81 wrapPI_2(PI2): 0.0\n    test 82 wrapPI_2(-PI_2): -1.5707963267948966\n    test 83 wrapPI_2(-PI): 0.0\n    test 84 wrapPI_2(-PI2): 0.0\n\n    test 85 wrapPI(PI_2): 1.5707963267948966\n    test 86 wrapPI(PI): 3.141592653589793\n    test 87 wrapPI(PI2): 0.0\n    test 88 wrapPI(-PI_2): -1.5707963267948966\n    test 89 wrapPI(-PI): -3.141592653589793\n    test 90 wrapPI(-PI2): 0.0\n\n    test 91 wrapPI2(PI_2): 1.5707963267948966\n    test 92 wrapPI2(PI): 3.141592653589793\n    test 93 wrapPI2(PI2): 0.0\n    test 94 wrapPI2(-PI_2): 4.71238898038469\n    test 95 wrapPI2(-PI): 3.141592653589793\n    test 96 wrapPI2(-PI2): 0.0\n\n    test 97 unroll180: -160.0, -250.0\n    test 98 unroll180: 200.0, 110.0\n\n    test 99 unroll180: -160.0, -250.0\n    test 100 unroll180: 920.0, 830.0\n\n    test 101 unroll180: -160.0, -270.0\n    test 102 unroll180: 200.0, 90.0\n\n    test 103 unroll180: -160.0, -990.0\n    test 104 unroll180: 920.0, 90.0\n\n    test 105 atan1: 0.0\n    test 106 atan1: 0.0\n\n    test 107 cot  : -0.354707939906\n    test 108 cot_ : -0.354707939906\n\n    test 109 cotd : -0.354707939906\n    test 110 cotd_: -0.354707939906\n\n    test 111 sincos2: 3.885780586188048e-16  FAILED, KNOWN, expected 1.7763568394002505e-15\n    test 112 sincos2d: 9.992007221626409e-16  FAILED, KNOWN, expected 1.7763568394002505e-15\n\n    test 113 Matan2d : 2.842170943040401e-14  FAILED, KNOWN, expected 1.7763568394002505e-15\n    test 114 Msincosd: 8.881784197001252e-16  FAILED, KNOWN, expected 1.7763568394002505e-15\n    test 115 sincos*d: 2.7755575615628914e-16  FAILED, KNOWN, expected 1.7763568394002505e-15\n\n    test 116 tan  : -2.819220794060\n    test 117 tan_ : -2.819220794060\n\n    test 118 tand : -2.819220794060\n    test 119 tand_: -2.819220794060\n\n    test 120 iFt2m: 187441\n    test 121 iFt2m: 757050\n    test 122 sFt2m: 187441\n    test 123 sFt2m: 757050\n\n    test 124 m2iFt: 614963.91\n    test 125 m2iFt: 2483759.84\n    test 126 m2sFt: 614962.68\n    test 127 m2sFt: 2483754.88\n\n    test 128 acre2ha: 0.404686\n    test 129 acre2m2: 4046.856422\n    test 130 chain2m: 20.116800\n    test 131 fathom2m: 1.828800\n    test 132 furlong2m: 201.168000\n    test 133 ha2acre: 2.471054\n    test 134 toise2m: 1.949044\n    test 135 yard2m: 0.914400\n    test 136 m2chain: 0.049710\n    test 137 m2fathom: 0.546807\n    test 138 m2furlong: 0.004971\n    test 139 m2ha: 0.000100\n    test 140 m2toise: 0.513072\n    test 141 m2yard: 1.093613\n\n    test 142 degrees2m: 10007557.1761\n# lazily imported pygeodesy.datums by utily.py line 212\n# lazily imported pygeodesy.angles by units.py line 633\n    test 143 degrees2m: 8666798.7443\n    test 144 m2degrees: 90.0\n\n    test 145 degrees2m: 20015114.3522\n    test 146 degrees2m: 19987684.3336\n    test 147 m2degrees: 180.0\n\n    test 148 m2degrees2m(45, lat=0): 45.00\n    test 149 m2degrees2m(45, lat=7): 45.00\n    test 150 m2degrees2m(45, lat=14): 45.00\n    test 151 m2degrees2m(45, lat=21): 45.00\n    test 152 m2degrees2m(45, lat=28): 45.00\n    test 153 m2degrees2m(45, lat=35): 45.00\n    test 154 m2degrees2m(45, lat=42): 45.00\n    test 155 m2degrees2m(45, lat=49): 45.00\n    test 156 m2degrees2m(45, lat=56): 45.00\n    test 157 m2degrees2m(45, lat=63): 45.00\n    test 158 m2degrees2m(45, lat=70): 45.00\n    test 159 m2degrees2m(45, lat=77): 45.00\n    test 160 m2degrees2m(45, lat=84): 45.00\n\n    test 161 isPoints2: False\n\n    test 162 tan_2_semi: PI[1] edge (3.141592): semi-circular\n    test 163 sincostan3(+0.0000): (0.0, 1.0, 0.0)\n    test 164 sincostan3(-0.0000): (-0.0, 1.0, -0.0)  FAILED, KNOWN, expected (0.0, 1.0, 0.0)\n    test 165 sincostan3(+1.5708): (1.0, 0.0, inf)\n    test 166 sincostan3(-1.5708): (-1.0, 0.0, -inf)\n    test 167 sincostan3(+3.1416): (0.0, -1.0, -0.0)\n    test 168 sincostan3(-3.1416): (-0.0, -1.0, 0.0)\n    test 169 sincostan3(+4.7124): (-1.0, 0.0, -inf)  FAILED, KNOWN, expected (-1.0, -0.0, inf)\n    test 170 sincostan3(-1.5708): (-1.0, 0.0, -inf)\n    test 171 sincostan3(+6.2832): (0.0, 1.0, 0.0)  FAILED, KNOWN, expected (-0.0, 1.0, -0.0)\n    test 172 sincostan3(-6.2832): (-0.0, 1.0, -0.0)  FAILED, KNOWN, expected (0.0, 1.0, 0.0)\n\n    9 of 172 testUtily.py tests (5.2%) FAILED, ALL KNOWN (pygeodesy 26.3.26 PyPy 7.3.17 Python 3.10.14 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 20.281 ms\nrunning /opt/local/bin/p....y3.10 -W default ~/PyGeodesy/test/testUtm.py\n# lazily imported pygeodesy.basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.DeprecationWarnings from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isint from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isLazy from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.issubclassof from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.iterNumpy2over from .iters by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.LazyImportError from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.karney by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.NN from .interns by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.normDMS from .dms by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.pairs from .streprs by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.printf from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.property_RO from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.typename from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.Ellipsoids from .ellipsoids by testUtm.py line 11\n# lazily imported pygeodesy.EPS from .constants by testUtm.py line 11\n# lazily imported pygeodesy.F_DEG from .dms by testUtm.py line 11\n# lazily imported pygeodesy.F_DMS from .dms by testUtm.py line 11\n# lazily imported pygeodesy.fstr from .streprs by testUtm.py line 11\n# lazily imported pygeodesy.parseUTM5 from .utm by testUtm.py line 11\n# lazily imported pygeodesy.toUtm8 from .utm by testUtm.py line 11\n# lazily imported pygeodesy.Utm from .utm by testUtm.py line 11\n# lazily imported pygeodesy.ellipsoidalVincenty by testUtm.py line 187\n\n    testing testUtm.py 25.04.25 (module pygeodesy.utm 24.11.26) isLazy=3\n    test 1 Utm1: 03 N 448251.0 5411932.0001\n    test 2 Utm2: 31 N 448252 5411933\n    test 3 Utm2: 31 N 448251.795 5411932.678\n    test 4 Utm2: 31 N 448251.8 5411932.7 n/a n/a\n    test 5 Utm.toLatLon1: 48.8582°N, 002.2945°E\n    test 6 Utm.toLatLon1: 48°51′29.52″N, 002°17′40.2″E\n    test 7 toUtm1: 31 N 448252 5411933\n    test 8 toUtm1: 31 N 448251.795 5411932.678\n    test 9 toUtm2: [Z:31U, H:N, E:448252, N:5411933, C:-31.87873265′, S:0.9996329]\n    test 10 toUtm4: 48 N 377302 1483035\n    test 11 toUtm5: 48P N 377302.354183 1483034.777084 -15.77480856′ 0.99978623\n    test 12 toUtm6: 13 S 622698 8516965\n    test 13 toUtm7: 13L S 622697.645817 8516965.222916 -15.77480856′ 0.99978623\n# lazily imported pygeodesy.etm by utm.py line 248\n    test 14 toEtm: 13 S 622698 8516965\n# lazily imported pygeodesy.mgrs by utmupsBase.py line 523\n    test 15 toMgrs1: 13L FF 22697 16965\n    test 16 toMgrs2: 31U DQ 48251 11932\n    test 17 toUtm14: 14 S -27436 8512042\n    test 18 Utm8: 18 N 516620 4574500\n    test 19 Utm8.toLatLon: 41.321801°N, 074.801413°W\n    test 20 Utm8.toLatLon: 41.321801N, 074.801413W\n    test 21 toUtm(61.44°N, 025.4°E): 35V N 414668 6812845\n    test 22 toUtm(47.04°S, 073.48°W): 18G S 615472 4789270\n    test 23 toUtm(40.4°N, 074.7°W): 18T N 525458 4472198\n    test 24 toUtm(44.5°N, 088.5°W): 16T N 380753 4928503\n    test 25 toUtm(50.8694°N, 115.6508°W): 11U N 594937 5636169\n    test 26 toUtm(00.0°N, 000.0°E): 31N N 166021 0\n    test 27 toUtm(00.13°N, 000.2324°W): 30N N 808084 14386\n    test 28 toUtm(45.6456°S, 023.3545°E): 34G S 683474 4942631\n    test 29 toUtm(12.765°S, 033.8765°W): 25L S 404859 8588691\n# imported pygeodesy.basics into errors.py line 443\n    test 30 toUtm(80.5434°S, 170.654°W): lat ('-80.5434°'): outside UTM range [-80, 84)\n    test 31 toUtm(90.0°N, 177.0°E): lat ('90.0°'): outside UTM range [-80, 84)\n    test 32 toUtm(90.0°S, 177.0°W): lat ('-90.0°'): outside UTM range [-80, 84)\n    test 33 toUtm(90.0°N, 003.0°E): lat ('90.0°'): outside UTM range [-80, 84)\n    test 34 toUtm(23.4578°N, 135.4545°W): 08Q N 453580 2594273\n    test 35 toUtm(77.345°N, 156.9876°E): 57X N 450794 8586116\n    test 36 toUtm(89.3454°S, 048.9306°W): lat ('-89.3454°'): outside UTM range [-80, 84)\n    test 37 toUtm(60.0°N, 001.0°E): 31V N 388456 6653097\n    test 38 toUtm(60.0°N, 003.0°E): 32V N 165640 6666594\n    test 39 toUtm(60.0°N, 006.0°E): 32V N 332705 6655205\n    test 40 toUtm(60.0°N, 009.0°E): 32V N 500000 6651411\n    test 41 toUtm(60.0°N, 012.0°E): 33V N 332705 6655205\n    test 42 toUtm(76.0°N, 001.0°E): 31X N 446000 8436100\n    test 43 toUtm(76.0°N, 007.0°E): 31X N 607943 8438843\n    test 44 toUtm(76.0°N, 013.0°E): 33X N 446000 8436100\n    test 45 toUtm(76.0°N, 019.0°E): 33X N 607943 8438843\n    test 46 toUtm(76.0°N, 025.0°E): 35X N 446000 8436100\n    test 47 toUtm(76.0°N, 031.0°E): 35X N 607943 8438843\n    test 48 toUtm(76.0°N, 037.0°E): 37X N 446000 8436100\n    test 49 toUtm(50.77535°N, 006.08389°E): 32U N 294409 5628898\n    test 50 toUtm(40.71435°N, 074.00597°W): 18T N 583960 4507523\n    test 51 toUtm(41.28646°S, 174.77624°E): 60G S 313784 5427057\n    test 52 toUtm(33.92487°S, 018.42406°E): 34H S 261878 6243186\n    test 53 toUtm(32.89018°S, 068.84405°W): 19H S 514586 6360877\n    test 54 toUtm(64.83778°N, 147.71639°W): 06W N 466013 7190568\n    test 55 toUtm(56.7968°N, 005.00601°W): 30V N 377486 6296562\n    test 56 toUtm(84.0°N, 005.00601°W): lat ('84.0°'): outside UTM range [-80, 84)\n    test 57 toUtm('Mt Assiniboine'): [Z:11U, H:N, E:594934, N:5636174]\n    test 58 Utm9: 55 S 321441 5810117\n    test 59 Utm9.toLatLon(eps=2.2204e-12): -37.83891644, 144.97077387\n    test 60 Utm9.toLatLon(eps=2.2204e-13): -37.83891644, 144.97077387\n    test 61 Utm9.toLatLon(eps=2.2204e-14): -37.83891644, 144.97077387\n    test 62 Utm9.toLatLon(eps=2.2204e-15): -37.83891644, 144.97077387\n    test 63 Utm9.toLatLon(eps=2.2204e-16): -37.83891644, 144.97077387\n    test 64 Utm9.toLatLon(eps=2.2204e-17): -37.83891644, 144.97077387\n    test 65 Utm9.toLatLon(eps=2.2204e-18): -37.83891644, 144.97077387\n    test 66 Utm9.toLatLon(eps=2.2204e-19): -37.83891644, 144.97077387\n    test 67 Utm9.toLatLon(eps=2.2204e-20): -37.83891644, 144.97077387\n    test 68 Utm10: 31 N 400000 5000000\n    test 69 Utm10.toLatLon(eps=2.2204e-12): 45.14639288, 1.72796704\n    test 70 Utm10.toLatLon(eps=2.2204e-13): 45.14639288, 1.72796704\n    test 71 Utm10.toLatLon(eps=2.2204e-14): 45.14639288, 1.72796704\n    test 72 Utm10.toLatLon(eps=2.2204e-15): 45.14639288, 1.72796704\n    test 73 Utm10.toLatLon(eps=2.2204e-16): 45.14639288, 1.72796704\n    test 74 Utm10.toLatLon(eps=2.2204e-17): 45.14639288, 1.72796704\n    test 75 Utm10.toLatLon(eps=2.2204e-18): 45.14639288, 1.72796704\n    test 76 Utm10.toLatLon(eps=2.2204e-19): 45.14639288, 1.72796704\n    test 77 Utm10.toLatLon(eps=2.2204e-20): 45.14639288, 1.72796704\n    test 78 Utm111: 37 N 1399093 8314607\n    test 79 Utm111.toLatLon(eps=2.2204e-12): 70.54298527, 40.28205459\n    test 80 Utm111.toLatLon(eps=2.2204e-13): 70.54298527, 40.28205459\n    test 81 Utm111.toLatLon(eps=2.2204e-14): 70.54298527, 40.28205459\n    test 82 Utm111.toLatLon(eps=2.2204e-15): 70.54298527, 40.28205459\n    test 83 Utm111.toLatLon(eps=2.2204e-16): 70.54298527, 40.28205459\n    test 84 Utm111.toLatLon(eps=2.2204e-17): 70.54298527, 40.28205459\n    test 85 Utm111.toLatLon(eps=2.2204e-18): 70.54298527, 40.28205459\n    test 86 Utm111.toLatLon(eps=2.2204e-19): 70.54298527, 40.28205459\n    test 87 Utm111.toLatLon(eps=2.2204e-20): 70.54298527, 40.28205459\n    test 88 CV#86: [Z:01, H:N, E:100000, N:0, C:n/a, S:n/a]\n    test 89 CV#86: 00.0°N, 179.407673°E\n    test 90 CV#86: [Z:60, H:N, E:767993, N:0, C:+0.0″, S:1.000489]  FAILED, KNOWN, expected [Z:01, H:N, E:100000, N:0, ...]\n    test 91 #63: 32 N 280000 5653000\n    test 92 toMgrs: 32U KB 80000 53000\n    test 93 toLatLon: (50.986484, 5.865326, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), -2.436605, 1.000194)\n    test 94 band: U\n    test 95 band: band ('?'): not 'C', 'D', 'E', 'F', 'G', 'H', 'J', 'K', 'L', 'M', 'N', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W' or 'X'\n    test 96 datum: Datum(name='_Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.Identity)  FAILED, KNOWN, expected same\n    test 97 repr: [Z:32U, H:N, E:280000, N:5653000]\n    test 98 E.N.: (280000.0, 5653000.0)\n# lazily imported pygeodesy.elliptic by ellipsoids.py line 856\n\n    test 99 latFootPoint: 59.97989371\n    test 100 latFootPoint: -59.97989371\n    test 101 latFootPoint: 59.97988614\n    test 102 latFootPoint: -59.97988614\n    test 103 phiFootPoint: 1.04407841\n    test 104 phiFootPoint: -1.04407841\n\n    2 of 104 testUtm.py tests (1.9%) FAILED, ALL KNOWN (pygeodesy 26.3.26 PyPy 7.3.17 Python 3.10.14 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 93.363 ms\nrunning /opt/local/bin/p....y3.10 -W default ~/PyGeodesy/test/testUtmTMcoords.py\n# lazily imported pygeodesy.basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.DeprecationWarnings from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isint from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isLazy from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.issubclassof from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.iterNumpy2over from .iters by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.LazyImportError from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.karney by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.NN from .interns by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.normDMS from .dms by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.pairs from .streprs by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.printf from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.property_RO from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.typename from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.Ellipsoids from .ellipsoids by testTMcoords.py line 14\n# lazily imported pygeodesy.EPS from .constants by testTMcoords.py line 14\n# lazily imported pygeodesy.RangeError from .errors by testTMcoords.py line 14\n# lazily imported pygeodesy.toUtm8 from .utm by testUtmTMcoords.py line 17\n# lazily imported pygeodesy.Utm from .utm by testUtmTMcoords.py line 17\n\n    testing testUtmTMcoords.py 24.03.22 (module pygeodesy.utm 24.11.26) isLazy=3\n    test 1 line 1 toUtm8.easting: 1548706.791619\n    test 2 line 1 toUtm8.northing: 8451449.198772\n    test 3 line 1 toUtm8.gamma: 43.922790\n    test 4 line 1 toUtm8.scale: 1.029060\n    test 5 line 1 toUtm8.lat: 70.579277\n    test 6 line 1 toUtm8.lon: 45.599420\n    test 7 line 2 toUtm8.easting: 2624150.740929\n    test 8 line 2 toUtm8.northing: 1204434.041605\n    test 9 line 2 toUtm8.gamma: 4.292619\n    test 10 line 2 toUtm8.scale: 1.086051\n    test 11 line 2 toUtm8.lat: 10.018894\n    test 12 line 2 toUtm8.lon: 23.313324\n    test 13 line 3 toUtm8.easting: 9855841.232935\n    test 14 line 3 toUtm8.northing: 6145496.115157  FAILED, KNOWN, expected 6145496.115155\n    test 15 line 3 toUtm8.gamma: 53.348315\n    test 16 line 3 toUtm8.scale: 2.445098\n    test 17 line 3 toUtm8.lat: 19.479896\n    test 18 line 3 toUtm8.lon: 75.662049\n    test 19 line 4 toUtm8.easting: 3206390.691996\n    test 20 line 4 toUtm8.northing: 2650745.400406\n    test 21 line 4 toUtm8.gamma: 11.666950\n    test 22 line 4 toUtm8.scale: 1.129359\n    test 23 line 4 toUtm8.lat: 21.072465\n    test 24 line 4 toUtm8.lon: 29.828684\n    test 25 line 5 toUtm8.easting: 4328154.083501\n    test 26 line 5 toUtm8.northing: 749647.623690\n    test 27 line 5 toUtm8.gamma: 4.024317\n    test 28 line 5 toUtm8.scale: 1.240829\n    test 29 line 5 toUtm8.lat: 5.458957\n    test 30 line 5 toUtm8.lon: 36.385237\n    test 31 line 6 toUtm8.easting: 847598.266514\n    test 32 line 6 toUtm8.northing: 7947180.962440\n    test 33 line 6 toUtm8.gamma: 21.639091\n    test 34 line 6 toUtm8.scale: 1.008399\n    test 35 line 6 toUtm8.lat: 70.175454\n    test 36 line 6 toUtm8.lon: 22.865350\n    test 37 line 7 toUtm8.easting: 2727657.337974\n    test 38 line 7 toUtm8.northing: 8283916.696410\n    test 39 line 7 toUtm8.gamma: 55.690909\n    test 40 line 7 toUtm8.scale: 1.091942\n    test 41 line 7 toUtm8.lat: 61.965605\n    test 42 line 7 toUtm8.lon: 58.931371\n    test 43 line 8 toUtm8.easting: 2331001.751890\n    test 44 line 8 toUtm8.northing: 1313608.224751\n    test 45 line 8 toUtm8.gamma: 4.214690\n    test 46 line 8 toUtm8.scale: 1.067599\n    test 47 line 8 toUtm8.lat: 11.116050\n    test 48 line 8 toUtm8.lon: 20.901069\n    test 49 line 9 toUtm8.easting: 6035557.239480\n    test 50 line 9 toUtm8.northing: 5791770.791879\n    test 51 line 9 toUtm8.gamma: 43.698170\n    test 52 line 9 toUtm8.scale: 1.481260\n    test 53 line 9 toUtm8.lat: 32.210543\n    test 54 line 9 toUtm8.lon: 60.705849\n    test 55 line 10 toUtm8.easting: 1064553.125852\n    test 56 line 10 toUtm8.northing: 9417273.737208\n    test 57 line 10 toUtm8.gamma: 61.100380\n    test 58 line 10 toUtm8.scale: 1.013475\n    test 59 line 10 toUtm8.lat: 79.187451\n    test 60 line 10 toUtm8.lon: 61.532382\n    test 61 line 11 toUtm8.easting: 1400137.116164\n    test 62 line 11 toUtm8.northing: 9616907.017686\n    test 63 line 11 toUtm8.gamma: 74.527087\n    test 64 line 11 toUtm8.scale: 1.023640\n    test 65 line 11 toUtm8.lat: 77.103759\n    test 66 line 11 toUtm8.lon: 74.899105\n\n    test skipped (1): line 12 toUtm8.'21.889514024862 80.019885892785 9860691.0166261508479 7433039.1433282732643 65.357693372142649007 2.43897318400097845293'\n\n    test skipped (2): line 13 toUtm8.'30.53629567699 82.186177919416 8076501.8336948099169 8561614.1747819103782 75.073393190238557702 1.90620203595203984732'\n    test 67 line 14 toUtm8.easting: 3335099.866623\n    test 68 line 14 toUtm8.northing: 6740519.084015\n    test 69 line 14 toUtm8.gamma: 40.611821\n    test 70 line 14 toUtm8.scale: 1.139021\n    test 71 line 14 toUtm8.lat: 49.990485\n    test 72 line 14 toUtm8.lon: 48.203179\n\n    test skipped (3): line 15 toUtm8.'14.486311853451 80.905136710227 12051574.9284996192629 6587213.0519512810474 59.033236797073779959 3.3574686117030164354'\n    test 73 line 16 toUtm8.easting: 5387578.735298\n    test 74 line 16 toUtm8.northing: 4111216.907168\n    test 75 line 16 toUtm8.gamma: 27.574337\n    test 76 line 16 toUtm8.scale: 1.379357\n    test 77 line 16 toUtm8.lat: 25.936824\n    test 78 line 16 toUtm8.lon: 49.913598\n    test 79 line 17 toUtm8.easting: 2622214.380233\n    test 80 line 17 toUtm8.northing: 8678923.984567\n    test 81 line 17 toUtm8.gamma: 61.697275\n    test 82 line 17 toUtm8.scale: 1.084810\n    test 83 line 17 toUtm8.lat: 64.402196\n    test 84 line 17 toUtm8.lon: 64.091395\n\n    test skipped (4): line 18 toUtm8.'48.451353594584 84.856197560189 5068474.169632778036 9492066.9937094951003 83.156739839119105102 1.3299901985118008373'\n    test 85 line 19 toUtm8.easting: 738062.047779\n    test 86 line 19 toUtm8.northing: 3031007.074116\n    test 87 line 19 toUtm8.gamma: 3.416802\n    test 88 line 19 toUtm8.scale: 1.006332\n    test 89 line 19 toUtm8.lat: 27.203895\n    test 90 line 19 toUtm8.lon: 7.440229\n    test 91 line 20 toUtm8.easting: 1944413.834565\n    test 92 line 20 toUtm8.northing: 9613299.224493\n    test 93 line 20 toUtm8.gamma: 78.462831\n    test 94 line 20 toUtm8.scale: 1.046134\n    test 95 line 20 toUtm8.lat: 72.509000\n    test 96 line 20 toUtm8.lon: 78.982283\n    test 97 line 21 toUtm8.easting: 2114521.418406\n    test 98 line 21 toUtm8.northing: 4954077.440098\n    test 99 line 21 toUtm8.gamma: 17.571878\n    test 100 line 21 toUtm8.scale: 1.055093\n    test 101 line 21 toUtm8.lat: 41.824954\n    test 102 line 21 toUtm8.lon: 25.392744\n    test 103 line 22 toUtm8.easting: 620365.905090\n    test 104 line 22 toUtm8.northing: 4755542.026562\n    test 105 line 22 toUtm8.gamma: 5.152022\n    test 106 line 22 toUtm8.scale: 1.004338\n    test 107 line 22 toUtm8.lat: 42.701376\n    test 108 line 22 toUtm8.lon: 7.572738\n    test 109 line 23 toUtm8.easting: 263004.770989\n    test 110 line 23 toUtm8.northing: 4493669.762451\n    test 111 line 23 toUtm8.gamma: 2.020523\n    test 112 line 23 toUtm8.scale: 1.000452\n    test 113 line 23 toUtm8.lat: 40.552052\n    test 114 line 23 toUtm8.lon: 3.106056\n    test 115 line 24 toUtm8.easting: 3217221.739462\n    test 116 line 24 toUtm8.northing: 437776.119161\n    test 117 line 24 toUtm8.gamma: 1.848169\n    test 118 line 24 toUtm8.scale: 1.130558\n    test 119 line 24 toUtm8.lat: 3.501242\n    test 120 line 24 toUtm8.lon: 27.806507\n\n    test skipped (5): line 25 toUtm8.'10.148714782203 85.373767569431 14661142.4449607145297 7476100.8241849819567 68.376669038799719822 4.89664968310721668858'\n    test 121 line 26 toUtm8.easting: 967777.158554\n    test 122 line 26 toUtm8.northing: 6615684.266592\n    test 123 line 26 toUtm8.gamma: 14.410044\n    test 124 line 26 toUtm8.scale: 1.011100\n    test 125 line 26 toUtm8.lat: 58.582623\n    test 126 line 26 toUtm8.lon: 16.755558\n    test 127 line 27 toUtm8.easting: 7558840.728461\n    test 128 line 27 toUtm8.northing: 4144728.130764\n    test 129 line 27 toUtm8.gamma: 32.557264\n    test 130 line 27 toUtm8.scale: 1.791490\n    test 131 line 27 toUtm8.lat: 19.793004\n    test 132 line 27 toUtm8.lon: 61.746763\n    test 133 line 28 toUtm8.easting: 1056008.314161\n    test 134 line 28 toUtm8.northing: 9290799.692669\n    test 135 line 28 toUtm8.gamma: 55.843278\n    test 136 line 28 toUtm8.scale: 1.013253\n    test 137 line 28 toUtm8.lat: 78.666776\n    test 138 line 28 toUtm8.lon: 56.365355\n    test 139 line 29 toUtm8.easting: 1943965.134687\n    test 140 line 29 toUtm8.northing: 1389972.228690\n    test 141 line 29 toUtm8.gamma: 3.774869\n    test 142 line 29 toUtm8.scale: 1.046724\n    test 143 line 29 toUtm8.lat: 11.998788\n    test 144 line 29 toUtm8.lon: 17.597873\n    test 145 line 30 toUtm8.easting: 5803077.072902\n    test 146 line 30 toUtm8.northing: 5649957.943659\n    test 147 line 30 toUtm8.gamma: 41.717943\n    test 148 line 30 toUtm8.scale: 1.442572\n    test 149 line 30 toUtm8.lat: 32.540378\n    test 150 line 30 toUtm8.lon: 58.764613\n    test 151 line 31 toUtm8.easting: 2928716.986009\n    test 152 line 31 toUtm8.northing: 5731835.058317\n    test 153 line 31 toUtm8.gamma: 28.538550\n    test 154 line 31 toUtm8.scale: 1.106780\n    test 155 line 31 toUtm8.lat: 45.160356\n    test 156 line 31 toUtm8.lon: 37.465285\n    test 157 line 32 toUtm8.easting: 326141.975756\n    test 158 line 32 toUtm8.northing: 8881325.164543\n    test 159 line 32 toUtm8.gamma: 16.111415\n    test 160 line 32 toUtm8.scale: 1.000900\n    test 161 line 32 toUtm8.lat: 79.584190\n    test 162 line 32 toUtm8.lon: 16.367006\n    test 163 line 33 toUtm8.easting: 3933015.267450\n    test 164 line 33 toUtm8.northing: 7932373.909512\n    test 165 line 33 toUtm8.gamma: 58.577424\n    test 166 line 33 toUtm8.scale: 1.194811\n    test 167 line 33 toUtm8.lat: 52.470664\n    test 168 line 33 toUtm8.lon: 64.125580\n    test 169 line 34 toUtm8.easting: 8598926.983213\n    test 170 line 34 toUtm8.northing: 6214135.167503\n    test 171 line 34 toUtm8.gamma: 52.612878\n    test 172 line 34 toUtm8.scale: 2.051367\n    test 173 line 34 toUtm8.lat: 23.702673\n    test 174 line 34 toUtm8.lon: 72.630363\n    test 175 line 35 toUtm8.easting: 6620553.333772\n    test 176 line 35 toUtm8.northing: 6540527.122948\n    test 177 line 35 toUtm8.gamma: 52.350140\n    test 178 line 35 toUtm8.scale: 1.586614\n    test 179 line 35 toUtm8.lat: 32.603520\n    test 180 line 35 toUtm8.lon: 67.280123\n    test 181 line 36 toUtm8.easting: 1515136.758292\n    test 182 line 36 toUtm8.northing: 3858996.087537\n    test 183 line 36 toUtm8.gamma: 9.225127\n    test 184 line 36 toUtm8.scale: 1.028029\n    test 185 line 36 toUtm8.lat: 33.776224\n    test 186 line 36 toUtm8.lon: 16.280993\n    test 187 line 37 toUtm8.easting: 479854.373445\n    test 188 line 37 toUtm8.northing: 8980501.389896\n    test 189 line 37 toUtm8.gamma: 25.021222\n    test 190 line 37 toUtm8.scale: 1.002415\n    test 191 line 37 toUtm8.lat: 79.932747\n    test 192 line 37 toUtm8.lon: 25.363622\n    test 193 line 38 toUtm8.easting: 5243446.564940\n    test 194 line 38 toUtm8.northing: 140657.213960\n    test 195 line 38 toUtm8.gamma: 0.862817\n    test 196 line 38 toUtm8.scale: 1.360358\n    test 197 line 38 toUtm8.lat: 0.935056\n    test 198 line 38 toUtm8.lon: 42.538824\n\n    test skipped (6): line 39 toUtm8.'13.490862440668 83.178380075606 12806457.9232176809509 7170118.6846750266674 64.708921319446620085 3.7405880916836789809'\n    test 199 line 40 toUtm8.easting: 1202993.459158\n    test 200 line 40 toUtm8.northing: 5557316.053599\n    test 201 line 40 toUtm8.gamma: 12.579061\n    test 202 line 40 toUtm8.scale: 1.017426\n    test 203 line 40 toUtm8.lat: 48.979057\n    test 204 line 40 toUtm8.lon: 16.474542\n    test 205 line 41 toUtm8.easting: 1729088.710196\n    test 206 line 41 toUtm8.northing: 7770874.289954\n    test 207 line 41 toUtm8.gamma: 36.021783\n    test 208 line 41 toUtm8.scale: 1.036397\n    test 209 line 41 toUtm8.lat: 65.036016\n    test 210 line 41 toUtm8.lon: 38.729091\n    test 211 line 42 toUtm8.easting: 2437301.517425\n    test 212 line 42 toUtm8.northing: 5539327.748318\n    test 213 line 42 toUtm8.gamma: 23.461879\n    test 214 line 42 toUtm8.scale: 1.073459\n    test 215 line 42 toUtm8.lat: 45.510091\n    test 216 line 42 toUtm8.lon: 31.303729\n    test 217 line 43 toUtm8.easting: 3647186.135066\n    test 218 line 43 toUtm8.northing: 2086412.330983\n    test 219 line 43 toUtm8.gamma: 10.023991\n    test 220 line 43 toUtm8.scale: 1.168707\n    test 221 line 43 toUtm8.lat: 16.058010\n    test 222 line 43 toUtm8.lon: 32.520026\n    test 223 line 44 toUtm8.easting: 1818497.243556\n    test 224 line 44 toUtm8.northing: 4275471.745057\n    test 225 line 44 toUtm8.gamma: 12.499656\n    test 226 line 44 toUtm8.scale: 1.040604\n    test 227 line 44 toUtm8.lat: 36.845200\n    test 228 line 44 toUtm8.lon: 20.282283\n    test 229 line 45 toUtm8.easting: 3751304.113783\n    test 230 line 45 toUtm8.northing: 5130454.001592\n    test 231 line 45 toUtm8.gamma: 28.959707\n    test 232 line 45 toUtm8.scale: 1.177681\n    test 233 line 45 toUtm8.lat: 37.865481\n    test 234 line 45 toUtm8.lon: 41.990402\n    test 235 line 46 toUtm8.easting: 2616733.138544\n    test 236 line 46 toUtm8.northing: 394644.463815\n    test 237 line 46 toUtm8.gamma: 1.390425\n    test 238 line 46 toUtm8.scale: 1.085595\n    test 239 line 46 toUtm8.lat: 3.287272\n    test 240 line 46 toUtm8.lon: 22.917604\n    test 241 line 47 toUtm8.easting: 1756506.573942\n    test 242 line 47 toUtm8.northing: 5570393.986394\n    test 243 line 47 toUtm8.gamma: 17.897894\n    test 244 line 47 toUtm8.scale: 1.037732\n    test 245 line 47 toUtm8.lat: 47.813686\n    test 246 line 47 toUtm8.lon: 23.545092\n    test 247 line 48 toUtm8.easting: 8752461.894711\n    test 248 line 48 toUtm8.northing: 6087728.152284\n    test 249 line 48 toUtm8.gamma: 51.628465\n    test 250 line 48 toUtm8.scale: 2.095465\n    test 251 line 48 toUtm8.lat: 22.836853\n    test 252 line 48 toUtm8.lon: 72.604385\n    test 253 line 49 toUtm8.easting: 1309272.216432\n    test 254 line 49 toUtm8.northing: 59520.028899\n    test 255 line 49 toUtm8.gamma: 0.109069\n    test 256 line 49 toUtm8.scale: 1.020897\n    test 257 line 49 toUtm8.lat: 0.527262\n    test 258 line 49 toUtm8.lon: 11.684209\n    test 259 line 50 toUtm8.easting: 328652.277129\n    test 260 line 50 toUtm8.northing: 2233043.958874\n    test 261 line 50 toUtm8.gamma: 1.084863\n    test 262 line 50 toUtm8.scale: 1.000935\n    test 263 line 50 toUtm8.lat: 20.166742\n    test 264 line 50 toUtm8.lon: 3.143948\n\n    test skipped (7): line 51 toUtm8.'28.604629015528 85.988721094779 8637959.7164470998207 9190635.1560309800028 81.802562643198123218 2.05432863342852874819'\n\n    test skipped (8): line 52 toUtm8.'28.984047991106 85.833447775172 8548521.4551470334531 9172410.9432821880799 81.583928102890161419 2.02964145862183583179'\n    test 265 line 53 toUtm8.easting: 796987.281104\n    test 266 line 53 toUtm8.northing: 7677446.357675\n    test 267 line 53 toUtm8.gamma: 18.084472\n    test 268 line 53 toUtm8.scale: 1.007381\n    test 269 line 53 toUtm8.lat: 68.071020\n    test 270 line 53 toUtm8.lon: 19.392823\n\n    test skipped (9): line 54 toUtm8.'61.416576191872 81.981611413918 3291036.4967623295988 9513199.6006662170596 80.890253980644739593 1.13482563910814382209'\n    test 271 line 55 toUtm8.easting: 7087225.330906\n    test 272 line 55 toUtm8.northing: 8382823.855822\n    test 273 line 55 toUtm8.gamma: 72.253756\n    test 274 line 55 toUtm8.scale: 1.678070\n    test 275 line 55 toUtm8.lat: 35.074753\n    test 276 line 55 toUtm8.lon: 79.496003\n    test 277 line 56 toUtm8.easting: 5090358.125724\n    test 278 line 56 toUtm8.northing: 4318294.133489\n    test 279 line 56 toUtm8.gamma: 28.266280\n    test 280 line 56 toUtm8.scale: 1.336264\n    test 281 line 56 toUtm8.lat: 28.078790\n    test 282 line 56 toUtm8.lon: 48.684350\n\n    test skipped (10): line 57 toUtm8.'84.986930137199 2.067177857261 20163.0752214330146 9438635.9888499043815 2.059277291707588222 .99960496589466017622'\n    test 283 line 58 toUtm8.easting: 3447670.550785\n    test 284 line 58 toUtm8.northing: 3680238.888223\n    test 285 line 58 toUtm8.gamma: 17.934948\n    test 286 line 58 toUtm8.scale: 1.149831\n    test 287 line 58 toUtm8.lat: 28.473948\n    test 288 line 58 toUtm8.lon: 34.127306\n    test 289 line 59 toUtm8.easting: 3396522.906798\n    test 290 line 59 toUtm8.northing: 8093659.687593\n    test 291 line 59 toUtm8.gamma: 57.747117\n    test 292 line 59 toUtm8.scale: 1.144006\n    test 293 line 59 toUtm8.lat: 56.629354\n    test 294 line 59 toUtm8.lon: 62.196474\n    test 295 line 60 toUtm8.easting: 11249894.100794  FAILED, KNOWN, expected 11249894.100784\n    test 296 line 60 toUtm8.northing: 1619226.506360  FAILED, KNOWN, expected 1619226.506299\n    test 297 line 60 toUtm8.gamma: 14.210358\n    test 298 line 60 toUtm8.scale: 3.048347\n    test 299 line 60 toUtm8.lat: 4.747762\n    test 300 line 60 toUtm8.lon: 70.932555\n    test 301 line 61 toUtm8.easting: 6808805.230950\n    test 302 line 61 toUtm8.northing: 8044779.777369\n    test 303 line 61 toUtm8.gamma: 68.242008\n    test 304 line 61 toUtm8.scale: 1.621464\n    test 305 line 61 toUtm8.lat: 35.882113\n    test 306 line 61 toUtm8.lon: 76.741849\n    test 307 line 62 toUtm8.easting: 2306021.556506\n    test 308 line 62 toUtm8.northing: 757191.592866\n    test 309 line 62 toUtm8.gamma: 2.385686\n    test 310 line 62 toUtm8.scale: 1.066159\n    test 311 line 62 toUtm8.lat: 6.420705\n    test 312 line 62 toUtm8.lon: 20.416028\n    test 313 line 63 toUtm8.easting: 1547406.313862\n    test 314 line 63 toUtm8.northing: 6048712.751824\n    test 315 line 63 toUtm8.gamma: 18.474372\n    test 316 line 63 toUtm8.scale: 1.029123\n    test 317 line 63 toUtm8.lat: 52.335248\n    test 318 line 63 toUtm8.lon: 22.879294\n    test 319 line 64 toUtm8.easting: 2430467.650383\n    test 320 line 64 toUtm8.northing: 7557167.613972\n    test 321 line 64 toUtm8.gamma: 42.110021\n    test 322 line 64 toUtm8.scale: 1.072759\n    test 323 line 64 toUtm8.lat: 59.846391\n    test 324 line 64 toUtm8.lon: 46.262536\n    test 325 line 65 toUtm8.easting: 2334053.905830\n    test 326 line 65 toUtm8.northing: 1948076.966582\n    test 327 line 65 toUtm8.gamma: 6.353185\n    test 328 line 65 toUtm8.scale: 1.067733\n    test 329 line 65 toUtm8.lat: 16.461790\n    test 330 line 65 toUtm8.lon: 21.433269\n    test 331 line 66 toUtm8.easting: 5564175.186737\n    test 332 line 66 toUtm8.northing: 1836851.660412\n    test 333 line 66 toUtm8.gamma: 11.870682\n    test 334 line 66 toUtm8.scale: 1.408265\n    test 335 line 66 toUtm8.lat: 11.707905\n    test 336 line 66 toUtm8.lon: 45.827075\n    test 337 line 67 toUtm8.easting: 6118505.590359\n    test 338 line 67 toUtm8.northing: 7631684.552421\n    test 339 line 67 toUtm8.gamma: 62.477323\n    test 340 line 67 toUtm8.scale: 1.493420\n    test 341 line 67 toUtm8.lat: 38.519075\n    test 342 line 67 toUtm8.lon: 71.935918\n\n    test skipped (11): line 68 toUtm8.'34.264007222954 82.647878110272 7365359.2946646287171 8818194.4515306837741 77.207042218974141605 1.73763853091849729372'\n    test 343 line 69 toUtm8.easting: 36187.342415\n    test 344 line 69 toUtm8.northing: 2142565.324802\n    test 345 line 69 toUtm8.gamma: 0.114334\n    test 346 line 69 toUtm8.scale: 0.999616\n    test 347 line 69 toUtm8.lat: 19.376880\n    test 348 line 69 toUtm8.lon: 0.344605\n    test 349 line 70 toUtm8.easting: 2380328.546851\n    test 350 line 70 toUtm8.northing: 8440109.872384\n    test 351 line 70 toUtm8.gamma: 55.076067\n    test 352 line 70 toUtm8.scale: 1.069658\n    test 353 line 70 toUtm8.lat: 65.075805\n    test 354 line 70 toUtm8.lon: 57.653438\n    test 355 line 71 toUtm8.easting: 582511.608826\n    test 356 line 71 toUtm8.northing: 8876047.217071\n    test 357 line 71 toUtm8.gamma: 27.133300\n    test 358 line 71 toUtm8.scale: 1.003749\n    test 359 line 71 toUtm8.lat: 78.691870\n    test 360 line 71 toUtm8.lon: 27.591736\n    test 361 line 72 toUtm8.easting: 899441.350477\n    test 362 line 72 toUtm8.northing: 4582046.430516\n    test 363 line 72 toUtm8.gamma: 7.031211\n    test 364 line 72 toUtm8.scale: 1.009573\n    test 365 line 72 toUtm8.lat: 40.893022\n    test 366 line 72 toUtm8.lon: 10.668804\n\n    test skipped (12): line 73 toUtm8.'48.914278679322 87.35926802682 5022485.1243369246483 9741774.9337207800497 86.505947369926030588 1.32369954850478170836'\n    test 367 line 74 toUtm8.easting: 6701004.587204\n    test 368 line 74 toUtm8.northing: 2954368.258231\n    test 369 line 74 toUtm8.gamma: 21.560153\n    test 370 line 74 toUtm8.scale: 1.608554\n    test 371 line 74 toUtm8.lat: 16.208377\n    test 372 line 74 toUtm8.lon: 54.494282\n    test 373 line 75 toUtm8.easting: 454986.218897\n    test 374 line 75 toUtm8.northing: 4885087.887884\n    test 375 line 75 toUtm8.gamma: 3.945648\n    test 376 line 75 toUtm8.scale: 1.002147\n    test 377 line 75 toUtm8.lat: 43.977936\n    test 378 line 75 toUtm8.lon: 5.672541\n\n    test skipped (13): line 76 toUtm8.'26.850860749352 82.834479937822 8903956.1403106503714 8470608.5774824981183 74.723116471645531699 2.13131124920824155268'\n    test 379 line 77 toUtm8.easting: 1547627.594741\n    test 380 line 77 toUtm8.northing: 6036584.538347\n    test 381 line 77 toUtm8.gamma: 18.407629\n    test 382 line 77 toUtm8.scale: 1.029132\n    test 383 line 77 toUtm8.lat: 52.234165\n    test 384 line 77 toUtm8.lon: 22.827655\n    test 385 line 78 toUtm8.easting: 5221488.778597\n    test 386 line 78 toUtm8.northing: 1762592.044392\n    test 387 line 78 toUtm8.gamma: 10.927880\n    test 388 line 78 toUtm8.scale: 1.356721\n    test 389 line 78 toUtm8.lat: 11.674646\n    test 390 line 78 toUtm8.lon: 43.500147\n    test 391 line 79 toUtm8.easting: 4880570.297161\n    test 392 line 79 toUtm8.northing: 3325433.988867\n    test 393 line 79 toUtm8.gamma: 20.469862\n    test 394 line 79 toUtm8.scale: 1.308476\n    test 395 line 79 toUtm8.lat: 22.492753\n    test 396 line 79 toUtm8.lon: 44.179153\n\n    test skipped (14): line 80 toUtm8.'.910999463005 88.548822916123 23930680.0826936110445 7491462.0990379651261 75.937628056628715446 15.55636485152285563369'\n    test 397 line 81 toUtm8.easting: 71519.450458\n    test 398 line 81 toUtm8.northing: 3654740.444852\n    test 399 line 81 toUtm8.gamma: 0.417448\n    test 400 line 81 toUtm8.scale: 0.999663\n    test 401 line 81 toUtm8.lat: 33.028802\n    test 402 line 81 toUtm8.lon: 0.765843\n    test 403 line 82 toUtm8.easting: 4152797.795220\n    test 404 line 82 toUtm8.northing: 7823098.502751\n    test 405 line 82 toUtm8.gamma: 58.238901\n    test 406 line 82 toUtm8.scale: 1.218052\n    test 407 line 82 toUtm8.lat: 50.649195\n    test 408 line 82 toUtm8.lon: 64.389076\n    test 409 line 83 toUtm8.easting: 2926725.707639\n    test 410 line 83 toUtm8.northing: 7904918.072844\n    test 411 line 83 toUtm8.gamma: 51.592748\n    test 412 line 83 toUtm8.scale: 1.106206\n    test 413 line 83 toUtm8.lat: 58.820640\n    test 414 line 83 toUtm8.lon: 55.841048\n    test 415 line 84 toUtm8.easting: 1325509.113869\n    test 416 line 84 toUtm8.northing: 9675214.948213\n    test 417 line 84 toUtm8.gamma: 76.116213\n    test 418 line 84 toUtm8.scale: 1.021136\n    test 419 line 84 toUtm8.lat: 77.865762\n    test 420 line 84 toUtm8.lon: 76.414618\n    test 421 line 85 toUtm8.easting: 3045296.448926\n    test 422 line 85 toUtm8.northing: 542153.443280\n    test 423 line 85 toUtm8.gamma: 2.185095\n    test 424 line 85 toUtm8.scale: 1.116664\n    test 425 line 85 toUtm8.lat: 4.389639\n    test 426 line 85 toUtm8.lon: 26.458976\n    test 427 line 86 toUtm8.easting: 11843870.887791  FAILED, KNOWN, expected 11843870.887518\n    test 428 line 86 toUtm8.northing: 5912803.073690  FAILED, KNOWN, expected 5912803.073343\n    test 429 line 86 toUtm8.gamma: 52.814260  FAILED, KNOWN, expected 52.814259\n    test 430 line 86 toUtm8.scale: 3.267256\n    test 431 line 86 toUtm8.lat: 13.924448\n    test 432 line 86 toUtm8.lon: 79.017873\n    test 433 line 87 toUtm8.easting: 8891099.704936\n    test 434 line 87 toUtm8.northing: 162160.142227\n    test 435 line 87 toUtm8.gamma: 1.312094\n    test 436 line 87 toUtm8.scale: 2.157363\n    test 437 line 87 toUtm8.lat: 0.679713\n    test 438 line 87 toUtm8.lon: 62.036792\n    test 439 line 88 toUtm8.easting: 4784814.214449\n    test 440 line 88 toUtm8.northing: 2984497.432580\n    test 441 line 88 toUtm8.gamma: 17.946545\n    test 442 line 88 toUtm8.scale: 1.296116\n    test 443 line 88 toUtm8.lat: 20.478281\n    test 444 line 88 toUtm8.lon: 42.678234\n    test 445 line 89 toUtm8.easting: 1772074.682154\n    test 446 line 89 toUtm8.northing: 9491552.560143\n    test 447 line 89 toUtm8.gamma: 73.634830\n    test 448 line 89 toUtm8.scale: 1.038202\n    test 449 line 89 toUtm8.lat: 73.695703\n    test 450 line 89 toUtm8.lon: 74.259097\n    test 451 line 90 toUtm8.easting: 1907649.782106\n    test 452 line 90 toUtm8.northing: 6994232.429379\n    test 453 line 90 toUtm8.gamma: 29.718929\n    test 454 line 90 toUtm8.scale: 1.044503\n    test 455 line 90 toUtm8.lat: 58.569370\n    test 456 line 90 toUtm8.lon: 33.777549\n    test 457 line 91 toUtm8.easting: 2084423.818962\n    test 458 line 91 toUtm8.northing: 2211816.035619\n    test 459 line 91 toUtm8.gamma: 6.556448\n    test 460 line 91 toUtm8.scale: 1.053793\n    test 461 line 91 toUtm8.lat: 18.933881\n    test 462 line 91 toUtm8.lon: 19.492695\n    test 463 line 92 toUtm8.easting: 1064373.671729\n    test 464 line 92 toUtm8.northing: 7812482.547461\n    test 465 line 92 toUtm8.gamma: 24.874124\n    test 466 line 92 toUtm8.scale: 1.013490\n    test 467 line 92 toUtm8.lat: 68.317934\n    test 468 line 92 toUtm8.lon: 26.515687\n\n    test skipped (15): line 93 toUtm8.'50.641941364984 87.111556505544 4770385.4792965339274 9734318.9029801439364 86.27311877223132818 1.29055338238288419467'\n    test 469 line 94 toUtm8.easting: 6398096.677297\n    test 470 line 94 toUtm8.northing: 4410894.752104\n    test 471 line 94 toUtm8.gamma: 32.558023\n    test 472 line 94 toUtm8.scale: 1.548004\n    test 473 line 94 toUtm8.lat: 24.411298\n    test 474 line 94 toUtm8.lon: 56.881823\n    test 475 line 95 toUtm8.easting: 3138623.300415\n    test 476 line 95 toUtm8.northing: 3082960.600798\n    test 477 line 95 toUtm8.gamma: 13.557672\n    test 478 line 95 toUtm8.scale: 1.123724\n    test 479 line 95 toUtm8.lat: 24.571871\n    test 480 line 95 toUtm8.lon: 30.073097\n    test 481 line 96 toUtm8.easting: 2748325.794651\n    test 482 line 96 toUtm8.northing: 4202811.912668\n    test 483 line 96 toUtm8.gamma: 17.578706\n    test 484 line 96 toUtm8.scale: 1.094102\n    test 485 line 96 toUtm8.lat: 34.202576\n    test 486 line 96 toUtm8.lon: 29.383166\n    test 487 line 97 toUtm8.easting: 6677830.630367\n    test 488 line 97 toUtm8.northing: 5350071.837395\n    test 489 line 97 toUtm8.gamma: 41.306641\n    test 490 line 97 toUtm8.scale: 1.599774\n    test 491 line 97 toUtm8.lat: 27.756285\n    test 492 line 97 toUtm8.lon: 61.881905\n    test 493 line 98 toUtm8.easting: 5941536.667431\n    test 494 line 98 toUtm8.northing: 3293112.175140\n    test 495 line 98 toUtm8.gamma: 22.752845\n    test 496 line 98 toUtm8.scale: 1.468473\n    test 497 line 98 toUtm8.lat: 19.742270\n    test 498 line 98 toUtm8.lon: 50.957821\n    test 499 line 99 toUtm8.easting: 3152481.792567\n    test 500 line 99 toUtm8.northing: 5903048.837978\n    test 501 line 99 toUtm8.gamma: 31.494606\n    test 502 line 99 toUtm8.scale: 1.124085\n    test 503 line 99 toUtm8.lat: 45.453582\n    test 504 line 99 toUtm8.lon: 40.659833\n    test 505 line 100 toUtm8.easting: 10460475.897726  FAILED, KNOWN, expected 10460475.897730\n    test 506 line 100 toUtm8.northing: 2553463.624385  FAILED, KNOWN, expected 2553463.624391\n    test 507 line 100 toUtm8.gamma: 21.965869\n    test 508 line 100 toUtm8.scale: 2.700296\n    test 509 line 100 toUtm8.lat: 8.322144\n    test 510 line 100 toUtm8.lon: 69.488157\n    test 511 line 101 toUtm8.easting: 1964010.778021\n    test 512 line 101 toUtm8.northing: 5634042.923056\n    test 513 line 101 toUtm8.gamma: 20.117800\n    test 514 line 101 toUtm8.scale: 1.047344\n    test 515 line 101 toUtm8.lat: 47.749831\n    test 516 line 101 toUtm8.lon: 26.322002\n    test 517 line 102 toUtm8.easting: 2065306.424934\n    test 518 line 102 toUtm8.northing: 2135008.468651\n    test 519 line 102 toUtm8.gamma: 6.258981\n    test 520 line 102 toUtm8.scale: 1.052800\n    test 521 line 102 toUtm8.lat: 18.297493\n    test 522 line 102 toUtm8.lon: 19.244669\n    test 523 line 103 toUtm8.easting: 5127738.132976\n    test 524 line 103 toUtm8.northing: 6793804.304411\n    test 525 line 103 toUtm8.gamma: 50.557915\n    test 526 line 103 toUtm8.scale: 1.339412\n    test 527 line 103 toUtm8.lat: 40.834541\n    test 528 line 103 toUtm8.lon: 61.650750\n    test 529 line 104 toUtm8.easting: 8385525.148166\n    test 530 line 104 toUtm8.northing: 6924932.344306\n    test 531 line 104 toUtm8.gamma: 59.087561\n    test 532 line 104 toUtm8.scale: 1.990364\n    test 533 line 104 toUtm8.lat: 26.273247\n    test 534 line 104 toUtm8.lon: 74.926694\n    test 535 line 105 toUtm8.easting: 2297510.791909\n    test 536 line 105 toUtm8.northing: 2805666.962834\n    test 537 line 105 toUtm8.gamma: 9.301553\n    test 538 line 105 toUtm8.scale: 1.065508\n    test 539 line 105 toUtm8.lat: 23.698347\n    test 540 line 105 toUtm8.lon: 22.155657\n\n    test skipped (16): line 106 toUtm8.'12.364112546807 86.348578425071 13749544.9176345767153 8288728.3846500523233 75.033969786420407131 4.27058754359004466627'\n    test 541 line 107 toUtm8.easting: 317518.455546\n    test 542 line 107 toUtm8.northing: 1097517.583745\n    test 543 line 107 toUtm8.gamma: 0.499004\n    test 544 line 107 toUtm8.scale: 1.000848\n    test 545 line 107 toUtm8.lat: 9.916091\n    test 546 line 107 toUtm8.lon: 2.895277\n    test 547 line 108 toUtm8.easting: 3856035.184888\n    test 548 line 108 toUtm8.northing: 9141364.450290\n    test 549 line 108 toUtm8.gamma: 75.972763\n    test 550 line 108 toUtm8.scale: 1.186786\n    test 551 line 108 toUtm8.lat: 56.553876\n    test 552 line 108 toUtm8.lon: 78.215077\n    test 553 line 109 toUtm8.easting: 1457484.942823\n    test 554 line 109 toUtm8.northing: 9385297.101973\n    test 555 line 109 toUtm8.gamma: 66.784662\n    test 556 line 109 toUtm8.scale: 1.025660\n    test 557 line 109 toUtm8.lat: 75.957631\n    test 558 line 109 toUtm8.lon: 67.407383\n    test 559 line 110 toUtm8.easting: 1304934.901841\n    test 560 line 110 toUtm8.northing: 3604655.155715\n    test 561 line 110 toUtm8.gamma: 7.343989\n    test 562 line 110 toUtm8.scale: 1.020672\n    test 563 line 110 toUtm8.lat: 31.826531\n    test 564 line 110 toUtm8.lon: 13.731050\n    test 565 line 111 toUtm8.easting: 1399093.491792\n    test 566 line 111 toUtm8.northing: 8314607.120342\n    test 567 line 111 toUtm8.gamma: 38.630161\n    test 568 line 111 toUtm8.scale: 1.023625\n    test 569 line 111 toUtm8.lat: 70.542985\n    test 570 line 111 toUtm8.lon: 40.282055\n    test 571 line 112 toUtm8.easting: 356983.618540\n    test 572 line 112 toUtm8.northing: 4282309.048994\n    test 573 line 112 toUtm8.gamma: 2.561485\n    test 574 line 112 toUtm8.scale: 1.001170\n    test 575 line 112 toUtm8.lat: 38.617487\n    test 576 line 112 toUtm8.lon: 4.099838\n    test 577 line 113 toUtm8.easting: 9952911.325092  FAILED, KNOWN, expected 9952911.325091\n    test 578 line 113 toUtm8.northing: 1510288.212230  FAILED, KNOWN, expected 1510288.212229\n    test 579 line 113 toUtm8.gamma: 12.752154\n    test 580 line 113 toUtm8.scale: 2.511357\n    test 581 line 113 toUtm8.lat: 5.389447\n    test 582 line 113 toUtm8.lon: 66.729612\n    test 583 line 114 toUtm8.easting: 6367592.504007\n    test 584 line 114 toUtm8.northing: 1200437.077672\n    test 585 line 114 toUtm8.gamma: 8.338041\n    test 586 line 114 toUtm8.scale: 1.546210\n    test 587 line 114 toUtm8.lat: 6.995168\n    test 588 line 114 toUtm8.lon: 50.014763\n    test 589 line 115 toUtm8.easting: 4391263.676460\n    test 590 line 115 toUtm8.northing: 6325455.989408\n    test 591 line 115 toUtm8.gamma: 42.653541\n    test 592 line 115 toUtm8.scale: 1.245560\n    test 593 line 115 toUtm8.lat: 42.321894\n    test 594 line 115 toUtm8.lon: 53.784040\n    test 595 line 116 toUtm8.easting: 6209880.527527\n    test 596 line 116 toUtm8.northing: 2154754.449747\n    test 597 line 116 toUtm8.gamma: 14.919512\n    test 598 line 116 toUtm8.scale: 1.516560\n    test 599 line 116 toUtm8.lat: 12.698515\n    test 600 line 116 toUtm8.lon: 50.242047\n    test 601 line 117 toUtm8.easting: 1507053.688772\n    test 602 line 117 toUtm8.northing: 6261383.513280\n    test 603 line 117 toUtm8.gamma: 19.280373\n    test 604 line 117 toUtm8.scale: 1.027584\n    test 605 line 117 toUtm8.lat: 54.207636\n    test 606 line 117 toUtm8.lon: 23.325731\n    test 607 line 118 toUtm8.easting: 8332725.003777\n    test 608 line 118 toUtm8.northing: 3002712.329753\n    test 609 line 118 toUtm8.gamma: 24.059212\n    test 610 line 118 toUtm8.scale: 1.990450\n    test 611 line 118 toUtm8.lat: 13.224787\n    test 612 line 118 toUtm8.lon: 62.426698\n    test 613 line 119 toUtm8.easting: 3958910.085235\n    test 614 line 119 toUtm8.northing: 3462284.926102\n    test 615 line 119 toUtm8.gamma: 18.546398\n    test 616 line 119 toUtm8.scale: 1.199351\n    test 617 line 119 toUtm8.lat: 25.650282\n    test 618 line 119 toUtm8.lon: 37.710391\n\n    test skipped (17): line 120 toUtm8.'20.684773383075 82.849734261238 10452892.2820830090734 8000059.6051139389546 71.07524025411428855 2.6501109339363854772'\n    test 619 line 121 toUtm8.easting: 496148.253731\n    test 620 line 121 toUtm8.northing: 6388503.365043\n    test 621 line 121 toUtm8.gamma: 6.970955\n    test 622 line 121 toUtm8.scale: 1.002620\n    test 623 line 121 toUtm8.lat: 57.367533\n    test 624 line 121 toUtm8.lon: 8.260866\n    test 625 line 122 toUtm8.easting: 7375792.085850\n    test 626 line 122 toUtm8.northing: 5544624.072155\n    test 627 line 122 toUtm8.gamma: 44.510851\n    test 628 line 122 toUtm8.scale: 1.745898\n    test 629 line 122 toUtm8.lat: 25.958757\n    test 630 line 122 toUtm8.lon: 65.760477\n    test 631 line 123 toUtm8.easting: 2826258.041979\n    test 632 line 123 toUtm8.northing: 5167759.816959\n    test 633 line 123 toUtm8.gamma: 23.783897\n    test 634 line 123 toUtm8.scale: 1.099415\n    test 635 line 123 toUtm8.lat: 41.395848\n    test 636 line 123 toUtm8.lon: 33.661790\n    test 637 line 124 toUtm8.easting: 3958563.378851\n    test 638 line 124 toUtm8.northing: 8499923.231243\n    test 639 line 124 toUtm8.gamma: 66.570945\n    test 640 line 124 toUtm8.scale: 1.197296\n    test 641 line 124 toUtm8.lat: 54.266617\n    test 642 line 124 toUtm8.lon: 70.602199\n    test 643 line 125 toUtm8.easting: 4408189.533462\n    test 644 line 125 toUtm8.northing: 8046312.003642\n    test 645 line 125 toUtm8.gamma: 62.216959\n    test 646 line 125 toUtm8.scale: 1.246750\n    test 647 line 125 toUtm8.lat: 49.840393\n    test 648 line 125 toUtm8.lon: 68.036728\n    test 649 line 126 toUtm8.easting: 3629225.627512\n    test 650 line 126 toUtm8.northing: 6371258.454645\n    test 651 line 126 toUtm8.gamma: 38.881675\n    test 652 line 126 toUtm8.scale: 1.165511\n    test 653 line 126 toUtm8.lat: 46.306035\n    test 654 line 126 toUtm8.lon: 48.085828\n    test 655 line 127 toUtm8.easting: 602838.450710\n    test 656 line 127 toUtm8.northing: 4851370.637205\n    test 657 line 127 toUtm8.gamma: 5.160395\n    test 658 line 127 toUtm8.scale: 1.004073\n    test 659 line 127 toUtm8.lat: 43.570988\n    test 660 line 127 toUtm8.lon: 7.464494\n    test 661 line 128 toUtm8.easting: 764616.665051\n    test 662 line 128 toUtm8.northing: 2164299.337945\n    test 663 line 128 toUtm8.gamma: 2.429300\n    test 664 line 128 toUtm8.scale: 1.006835\n    test 665 line 128 toUtm8.lat: 19.427290\n    test 666 line 128 toUtm8.lon: 7.268247\n    test 667 line 129 toUtm8.easting: 5048953.021931\n    test 668 line 129 toUtm8.northing: 1885974.057398\n    test 669 line 129 toUtm8.gamma: 11.459804\n    test 670 line 129 toUtm8.scale: 1.332207\n    test 671 line 129 toUtm8.lat: 12.713794\n    test 672 line 129 toUtm8.lon: 42.507018\n    test 673 line 130 toUtm8.easting: 2293996.601155\n    test 674 line 130 toUtm8.northing: 2392408.644221\n    test 675 line 130 toUtm8.gamma: 7.791838\n    test 676 line 130 toUtm8.scale: 1.065348\n    test 677 line 130 toUtm8.lat: 20.238782\n    test 678 line 130 toUtm8.lon: 21.566068\n    test 679 line 131 toUtm8.easting: 1530603.839418\n    test 680 line 131 toUtm8.northing: 7287841.459898\n    test 681 line 131 toUtm8.gamma: 27.502921\n    test 682 line 131 toUtm8.scale: 1.028416\n    test 683 line 131 toUtm8.lat: 62.367847\n    test 684 line 131 toUtm8.lon: 30.438849\n    test 685 line 132 toUtm8.easting: 2660000.093152\n    test 686 line 132 toUtm8.northing: 5161982.213248\n    test 687 line 132 toUtm8.gamma: 22.629836\n    test 688 line 132 toUtm8.scale: 1.087851\n    test 689 line 132 toUtm8.lat: 41.891569\n    test 690 line 132 toUtm8.lon: 31.959547\n    test 691 line 133 toUtm8.easting: 5037478.329414\n    test 692 line 133 toUtm8.northing: 8768172.379908\n    test 693 line 133 toUtm8.gamma: 73.511182\n    test 694 line 133 toUtm8.scale: 1.325919\n    test 695 line 133 toUtm8.lat: 47.664248\n    test 696 line 133 toUtm8.lon: 77.630062\n    test 697 line 134 toUtm8.easting: 2289650.957799\n    test 698 line 134 toUtm8.northing: 8784328.593607\n    test 699 line 134 toUtm8.gamma: 60.786067\n    test 700 line 134 toUtm8.scale: 1.064346\n    test 701 line 134 toUtm8.lat: 67.259559\n    test 702 line 134 toUtm8.lon: 62.715293\n    test 703 line 135 toUtm8.easting: 647913.889744\n    test 704 line 135 toUtm8.northing: 6742382.228217\n    test 705 line 135 toUtm8.gamma: 10.252667\n    test 706 line 135 toUtm8.scale: 1.004748\n    test 707 line 135 toUtm8.lat: 60.295381\n    test 708 line 135 toUtm8.lon: 11.763097\n    test 709 line 136 toUtm8.easting: 1118372.698566\n    test 710 line 136 toUtm8.northing: 9040627.942263\n    test 711 line 136 toUtm8.gamma: 48.936803\n    test 712 line 136 toUtm8.scale: 1.014920\n    test 713 line 136 toUtm8.lat: 76.878914\n    test 714 line 136 toUtm8.lon: 49.685773\n    test 715 line 137 toUtm8.easting: 440696.510070\n    test 716 line 137 toUtm8.northing: 5500355.826297\n    test 717 line 137 toUtm8.gamma: 4.636104\n    test 718 line 137 toUtm8.scale: 1.001986\n    test 719 line 137 toUtm8.lat: 49.495349\n    test 720 line 137 toUtm8.lon: 6.087551\n    test 721 line 138 toUtm8.easting: 601728.149727\n    test 722 line 138 toUtm8.northing: 9095352.048149\n    test 723 line 138 toUtm8.gamma: 33.435771\n    test 724 line 138 toUtm8.scale: 1.004027\n    test 725 line 138 toUtm8.lat: 80.297265\n    test 726 line 138 toUtm8.lon: 33.816372\n    test 727 line 139 toUtm8.easting: 3481444.777827\n    test 728 line 139 toUtm8.northing: 291665.708749\n    test 729 line 139 toUtm8.gamma: 1.314726\n    test 730 line 139 toUtm8.scale: 1.153534\n    test 731 line 139 toUtm8.lat: 2.286437\n    test 732 line 139 toUtm8.lon: 29.855149\n    test 733 line 140 toUtm8.easting: 3515304.901524\n    test 734 line 140 toUtm8.northing: 1443981.882918\n    test 735 line 140 toUtm8.gamma: 6.641638\n    test 736 line 140 toUtm8.scale: 1.156509\n    test 737 line 140 toUtm8.lat: 11.264457\n    test 738 line 140 toUtm8.lon: 30.743907\n    test 739 line 141 toUtm8.easting: 160012.186959\n    test 740 line 141 toUtm8.northing: 3922609.253231\n    test 741 line 141 toUtm8.gamma: 1.022225\n    test 742 line 141 toUtm8.scale: 0.999916\n    test 743 line 141 toUtm8.lat: 35.434073\n    test 744 line 141 toUtm8.lon: 1.762795\n    test 745 line 142 toUtm8.easting: 4163744.245622\n    test 746 line 142 toUtm8.northing: 936884.674804\n    test 747 line 142 toUtm8.gamma: 4.892559\n    test 748 line 142 toUtm8.scale: 1.222164\n    test 749 line 142 toUtm8.lat: 6.923695\n    test 750 line 142 toUtm8.lon: 35.289456\n    test 751 line 143 toUtm8.easting: 6155200.017926\n    test 752 line 143 toUtm8.northing: 6926306.628390\n    test 753 line 143 toUtm8.gamma: 55.103258\n    test 754 line 143 toUtm8.scale: 1.500556\n    test 755 line 143 toUtm8.lat: 36.129672\n    test 756 line 143 toUtm8.lon: 67.533176\n\n    test skipped (18): line 144 toUtm8.'4.406528980638 81.965734206053 16263383.2854400911299 3591296.7313406507021 36.040254103487111035 6.58928781751888396522'\n\n    test skipped (19): line 145 toUtm8.'8.474589009114 81.129945130597 14220995.5153984992101 5100587.4575033509156 47.314258427760984573 4.69320221531225352172'\n    test 757 line 146 toUtm8.easting: 3173034.802372\n    test 758 line 146 toUtm8.northing: 7263421.942957\n    test 759 line 146 toUtm8.gamma: 45.215808\n    test 760 line 146 toUtm8.scale: 1.125410\n    test 761 line 146 toUtm8.lat: 53.907276\n    test 762 line 146 toUtm8.lon: 51.252904\n\n    test skipped (20): line 147 toUtm8.'22.120544817855 85.756781608119 10253274.0922039670098 8867574.2997916978265 79.198250285604314115 2.57237240666878171579'\n    test 763 line 148 toUtm8.easting: 2415561.483230\n    test 764 line 148 toUtm8.northing: 8813225.217097\n    test 765 line 148 toUtm8.gamma: 62.548978\n    test 766 line 148 toUtm8.scale: 1.071748\n    test 767 line 148 toUtm8.lat: 66.444100\n    test 768 line 148 toUtm8.lon: 64.532960\n    test 769 line 149 toUtm8.easting: 9589179.293294  FAILED, KNOWN, expected 9589179.293295\n    test 770 line 149 toUtm8.northing: 1777680.784144  FAILED, KNOWN, expected 1777680.784143\n    test 771 line 149 toUtm8.gamma: 14.838483\n    test 772 line 149 toUtm8.scale: 2.380716\n    test 773 line 149 toUtm8.lat: 6.670965\n    test 774 line 149 toUtm8.lon: 65.660408\n    test 775 line 150 toUtm8.easting: 727939.438391\n    test 776 line 150 toUtm8.northing: 3684363.236810\n    test 777 line 150 toUtm8.gamma: 4.266227\n    test 778 line 150 toUtm8.scale: 1.006140\n    test 779 line 150 toUtm8.lat: 33.054057\n    test 780 line 150 toUtm8.lon: 7.787458\n    test 781 line 151 toUtm8.easting: 1250765.991085\n    test 782 line 151 toUtm8.northing: 792869.242719\n    test 783 line 151 toUtm8.gamma: 1.396497\n    test 784 line 151 toUtm8.scale: 1.019026\n    test 785 line 151 toUtm8.lat: 7.035525\n    test 786 line 151 toUtm8.lon: 11.253707\n    test 787 line 152 toUtm8.easting: 710421.705887\n    test 788 line 152 toUtm8.northing: 5019406.075928\n    test 789 line 152 toUtm8.gamma: 6.393949\n    test 790 line 152 toUtm8.scale: 1.005812\n    test 791 line 152 toUtm8.lat: 44.971340\n    test 792 line 152 toUtm8.lon: 9.009304\n    test 793 line 153 toUtm8.easting: 4600995.074643\n    test 794 line 153 toUtm8.northing: 4505712.084593\n    test 795 line 153 toUtm8.gamma: 27.997458\n    test 796 line 153 toUtm8.scale: 1.271841\n    test 797 line 153 toUtm8.lat: 30.821397\n    test 798 line 153 toUtm8.lon: 45.970577\n    test 799 line 154 toUtm8.easting: 557642.627782\n    test 800 line 154 toUtm8.northing: 7006911.251644\n    test 801 line 154 toUtm8.gamma: 9.769903\n    test 802 line 154 toUtm8.scale: 1.003411\n    test 803 line 154 toUtm8.lat: 62.763886\n    test 804 line 154 toUtm8.lon: 10.960144\n    test 805 line 155 toUtm8.easting: 4635062.294291\n    test 806 line 155 toUtm8.northing: 2702556.153311\n    test 807 line 155 toUtm8.gamma: 15.779547\n    test 808 line 155 toUtm8.scale: 1.277178\n    test 809 line 155 toUtm8.lat: 18.888611\n    test 810 line 155 toUtm8.lon: 41.009871\n\n    test skipped (21): line 156 toUtm8.'7.524119461376 81.050715469439 14554962.2559189870471 4716639.9085720199214 44.192751352918149954 4.96001986321419027847'\n    test 811 line 157 toUtm8.easting: 882126.661736\n    test 812 line 157 toUtm8.northing: 7947612.369506\n    test 813 line 157 toUtm8.gamma: 22.429487\n    test 814 line 157 toUtm8.scale: 1.009132\n    test 815 line 157 toUtm8.lat: 70.063902\n    test 816 line 157 toUtm8.lon: 23.705255\n\n    test skipped (22): line 158 toUtm8.'3.556525834215 88.363529198819 20262021.6459832969292 8113827.8207957955275 76.936057264555500879 10.34909168211805703369'\n    test 817 line 159 toUtm8.easting: 6500508.399850\n    test 818 line 159 toUtm8.northing: 6956476.342368\n    test 819 line 159 toUtm8.gamma: 56.237116\n    test 820 line 159 toUtm8.scale: 1.563162\n    test 821 line 159 toUtm8.lat: 34.551257\n    test 822 line 159 toUtm8.lon: 69.111091\n    test 823 line 160 toUtm8.easting: 3884036.641314\n    test 824 line 160 toUtm8.northing: 6890167.411733\n    test 825 line 160 toUtm8.gamma: 45.760130\n    test 826 line 160 toUtm8.scale: 1.190167\n    test 827 line 160 toUtm8.lat: 47.929051\n    test 828 line 160 toUtm8.lon: 54.103418\n    test 829 line 161 toUtm8.easting: 217855.546078\n    test 830 line 161 toUtm8.northing: 6184108.122568\n    test 831 line 161 toUtm8.gamma: 2.870993\n    test 832 line 161 toUtm8.scale: 1.000182\n    test 833 line 161 toUtm8.lat: 55.753536\n    test 834 line 161 toUtm8.lon: 3.471798\n\n    test skipped (23): line 162 toUtm8.'18.530847071862 86.555312055898 11384139.290401676268 8893889.9495562311576 79.77485364572019046 3.02467156922968230025'\n    test 835 line 163 toUtm8.easting: 3469855.989805\n    test 836 line 163 toUtm8.northing: 7723193.799228\n    test 837 line 163 toUtm8.gamma: 53.114700\n    test 838 line 163 toUtm8.scale: 1.150540\n    test 839 line 163 toUtm8.lat: 54.510125\n    test 840 line 163 toUtm8.lon: 58.556056\n\n    test skipped (24): line 164 toUtm8.'42.864161881687 84.866325602975 5926165.994939154109 9385463.7327467371322 82.506981261616342016 1.45975761947329382411'\n    test 841 line 165 toUtm8.easting: 5798639.662224\n    test 842 line 165 toUtm8.northing: 5305387.640916\n    test 843 line 165 toUtm8.gamma: 38.617257\n    test 844 line 165 toUtm8.scale: 1.442263\n    test 845 line 165 toUtm8.lat: 30.911943\n    test 846 line 165 toUtm8.lon: 57.114102\n    test 847 line 166 toUtm8.easting: 9464.934388\n    test 848 line 166 toUtm8.northing: 6489121.624944\n    test 849 line 166 toUtm8.gamma: 0.138696\n    test 850 line 166 toUtm8.scale: 0.999601\n    test 851 line 166 toUtm8.lat: 58.542493\n    test 852 line 166 toUtm8.lon: 0.162593\n\n    test skipped (25): line 167 toUtm8.'15.022689088683 85.792615487152 12575834.2756139069875 8356610.8954857643175 75.235223160840771295 3.59944161831319404851'\n    test 853 line 168 toUtm8.easting: 2719653.543469\n    test 854 line 168 toUtm8.northing: 9362389.163495\n    test 855 line 168 toUtm8.gamma: 76.049670\n    test 856 line 168 toUtm8.scale: 1.091315\n    test 857 line 168 toUtm8.lat: 65.692275\n    test 858 line 168 toUtm8.lon: 77.241377\n    test 859 line 169 toUtm8.easting: 4845341.924698\n    test 860 line 169 toUtm8.northing: 8710522.326901\n    test 861 line 169 toUtm8.gamma: 72.320942\n    test 862 line 169 toUtm8.scale: 1.300382\n    test 863 line 169 toUtm8.lat: 48.806211\n    test 864 line 169 toUtm8.lon: 76.486365\n\n    test skipped (26): line 170 toUtm8.'56.436024794624 82.61156798689 3935261.5227628794258 9454271.6490618694486 81.162334302626197333 1.19476734082123451158'\n    test 865 line 171 toUtm8.easting: 7074299.823000\n    test 866 line 171 toUtm8.northing: 1648736.065055\n    test 867 line 171 toUtm8.gamma: 12.145925\n    test 868 line 171 toUtm8.scale: 1.687551\n    test 869 line 171 toUtm8.lat: 8.766053\n    test 870 line 171 toUtm8.lon: 54.367539\n    test 871 line 172 toUtm8.easting: 3689072.579308\n    test 872 line 172 toUtm8.northing: 2230802.665211\n    test 873 line 172 toUtm8.gamma: 10.856248\n    test 874 line 172 toUtm8.scale: 1.172689\n    test 875 line 172 toUtm8.lat: 17.095495\n    test 876 line 172 toUtm8.lon: 33.059128\n    test 877 line 173 toUtm8.easting: 8102565.885587\n    test 878 line 173 toUtm8.northing: 5167396.617580\n    test 879 line 173 toUtm8.gamma: 42.324886\n    test 880 line 173 toUtm8.scale: 1.921927\n    test 881 line 173 toUtm8.lat: 22.142861\n    test 882 line 173 toUtm8.lon: 67.200684\n    test 883 line 174 toUtm8.easting: 8181271.353564\n    test 884 line 174 toUtm8.northing: 4425436.547185\n    test 885 line 174 toUtm8.gamma: 35.900845\n    test 886 line 174 toUtm8.scale: 1.945017\n    test 887 line 174 toUtm8.lat: 19.222623\n    test 888 line 174 toUtm8.lon: 65.180785\n    test 889 line 175 toUtm8.easting: 767067.394003\n    test 890 line 175 toUtm8.northing: 3701745.857296\n    test 891 line 175 toUtm8.gamma: 4.519201\n    test 892 line 175 toUtm8.scale: 1.006863\n    test 893 line 175 toUtm8.lat: 33.182474\n    test 894 line 175 toUtm8.lon: 8.216952\n    test 895 line 176 toUtm8.easting: 6688114.168572\n    test 896 line 176 toUtm8.northing: 2052857.299639\n    test 897 line 176 toUtm8.gamma: 14.766191\n    test 898 line 176 toUtm8.scale: 1.607200\n    test 899 line 176 toUtm8.lat: 11.417963\n    test 900 line 176 toUtm8.lon: 52.808691\n    test 901 line 177 toUtm8.easting: 5608408.773761\n    test 902 line 177 toUtm8.northing: 3859055.659110\n    test 903 line 177 toUtm8.gamma: 26.244151\n    test 904 line 177 toUtm8.scale: 1.413463\n    test 905 line 177 toUtm8.lat: 23.836688\n    test 906 line 177 toUtm8.lon: 50.500180\n    test 907 line 178 toUtm8.easting: 3836942.765275\n    test 908 line 178 toUtm8.northing: 6415467.634326\n    test 909 line 178 toUtm8.gamma: 40.575885\n    test 910 line 178 toUtm8.scale: 1.185615\n    test 911 line 178 toUtm8.lat: 45.550020\n    test 912 line 178 toUtm8.lon: 50.148036\n    test 913 line 179 toUtm8.easting: 1298730.366025\n    test 914 line 179 toUtm8.northing: 6021453.000792\n    test 915 line 179 toUtm8.gamma: 15.613320\n    test 916 line 179 toUtm8.scale: 1.020367\n    test 917 line 179 toUtm8.lat: 52.746079\n    test 918 line 179 toUtm8.lon: 19.343926\n    test 919 line 180 toUtm8.easting: 416934.289208\n    test 920 line 180 toUtm8.northing: 7295683.451705\n    test 921 line 180 toUtm8.gamma: 8.238232\n    test 922 line 180 toUtm8.scale: 1.001729\n    test 923 line 180 toUtm8.lat: 65.513348\n    test 924 line 180 toUtm8.lon: 9.039529\n    test 925 line 181 toUtm8.easting: 4336076.850889\n    test 926 line 181 toUtm8.northing: 7617975.722779\n    test 927 line 181 toUtm8.gamma: 56.537088\n    test 928 line 181 toUtm8.scale: 1.238582\n    test 929 line 181 toUtm8.lat: 48.709795\n    test 930 line 181 toUtm8.lon: 63.554005\n    test 931 line 182 toUtm8.easting: 168047.336980\n    test 932 line 182 toUtm8.northing: 2185000.046530\n    test 933 line 182 toUtm8.gamma: 0.542187\n    test 934 line 182 toUtm8.scale: 0.999949\n    test 935 line 182 toUtm8.lat: 19.753509\n    test 936 line 182 toUtm8.lon: 1.603846\n    test 937 line 183 toUtm8.easting: 8276281.328790\n    test 938 line 183 toUtm8.northing: 263444.350545\n    test 939 line 183 toUtm8.gamma: 2.071435\n    test 940 line 183 toUtm8.scale: 1.980314\n    test 941 line 183 toUtm8.lat: 1.202816\n    test 942 line 183 toUtm8.lon: 59.377276\n    test 943 line 184 toUtm8.easting: 4772573.810710\n    test 944 line 184 toUtm8.northing: 6765710.336002\n    test 945 line 184 toUtm8.gamma: 48.857561\n    test 946 line 184 toUtm8.scale: 1.291911\n    test 947 line 184 toUtm8.lat: 42.564975\n    test 948 line 184 toUtm8.lon: 59.356947\n    test 949 line 185 toUtm8.easting: 5427755.074639\n    test 950 line 185 toUtm8.northing: 1556055.820924\n    test 951 line 185 toUtm8.gamma: 9.862178\n    test 952 line 185 toUtm8.scale: 1.387394\n    test 953 line 185 toUtm8.lat: 10.090572\n    test 954 line 185 toUtm8.lon: 44.604132\n    test 955 line 186 toUtm8.easting: 11588458.616240  FAILED, KNOWN, expected 11588458.616041\n    test 956 line 186 toUtm8.northing: 5707993.922683  FAILED, KNOWN, expected 5707993.922613\n    test 957 line 186 toUtm8.gamma: 50.784827\n    test 958 line 186 toUtm8.scale: 3.149567\n    test 959 line 186 toUtm8.lat: 14.133028\n    test 960 line 186 toUtm8.lon: 78.097533\n    test 961 line 187 toUtm8.easting: 7152433.802688\n    test 962 line 187 toUtm8.northing: 761390.695844\n    test 963 line 187 toUtm8.gamma: 5.607350\n    test 964 line 187 toUtm8.scale: 1.705261\n    test 965 line 187 toUtm8.lat: 4.031123\n    test 966 line 187 toUtm8.lon: 54.048782\n    test 967 line 188 toUtm8.easting: 3105651.390901\n    test 968 line 188 toUtm8.northing: 9426026.169064\n    test 969 line 188 toUtm8.gamma: 78.750206\n    test 970 line 188 toUtm8.scale: 1.119737\n    test 971 line 188 toUtm8.lat: 62.746603\n    test 972 line 188 toUtm8.lon: 79.968641\n    test 973 line 189 toUtm8.easting: 2959009.639022\n    test 974 line 189 toUtm8.northing: 8339242.269282\n    test 975 line 189 toUtm8.gamma: 58.460865\n    test 976 line 189 toUtm8.scale: 1.108554\n    test 977 line 189 toUtm8.lat: 60.626429\n    test 978 line 189 toUtm8.lon: 61.851551\n    test 979 line 190 toUtm8.easting: 8640472.267145\n    test 980 line 190 toUtm8.northing: 6230320.417931\n    test 981 line 190 toUtm8.gamma: 52.816810\n    test 982 line 190 toUtm8.scale: 2.062973\n    test 983 line 190 toUtm8.lat: 23.600626\n    test 984 line 190 toUtm8.lon: 72.811634\n    test 985 line 191 toUtm8.easting: 811352.108932\n    test 986 line 191 toUtm8.northing: 9816129.813481\n    test 987 line 191 toUtm8.gamma: 77.299184\n    test 988 line 191 toUtm8.scale: 1.007651\n    test 989 line 191 toUtm8.lat: 82.572236\n    test 990 line 191 toUtm8.lon: 77.402323\n    test 991 line 192 toUtm8.easting: 6521874.973458\n    test 992 line 192 toUtm8.northing: 1053612.479744\n    test 993 line 192 toUtm8.gamma: 7.407328\n    test 994 line 192 toUtm8.scale: 1.575529\n    test 995 line 192 toUtm8.lat: 6.030051\n    test 996 line 192 toUtm8.lon: 50.783505\n    test 997 line 193 toUtm8.easting: 3477983.997875\n    test 998 line 193 toUtm8.northing: 5651613.325947\n    test 999 line 193 toUtm8.gamma: 31.530673\n    test 1000 line 193 toUtm8.scale: 1.151875\n    test 1001 line 193 toUtm8.lat: 42.411523\n    test 1002 line 193 toUtm8.lon: 42.258009\n    test 1003 line 194 toUtm8.easting: 629892.822243\n    test 1004 line 194 toUtm8.northing: 3283914.910451\n    test 1005 line 194 toUtm8.gamma: 3.210482\n    test 1006 line 194 toUtm8.scale: 1.004499\n    test 1007 line 194 toUtm8.lat: 29.526120\n    test 1008 line 194 toUtm8.lon: 6.493069\n    test 1009 line 195 toUtm8.easting: 3381879.687227\n    test 1010 line 195 toUtm8.northing: 5103629.325665\n    test 1011 line 195 toUtm8.gamma: 26.748108\n    test 1012 line 195 toUtm8.scale: 1.143559\n    test 1013 line 195 toUtm8.lat: 39.021853\n    test 1014 line 195 toUtm8.lon: 38.641779\n    test 1015 line 196 toUtm8.easting: 2815986.534177\n    test 1016 line 196 toUtm8.northing: 9387029.120718\n    test 1017 line 196 toUtm8.gamma: 76.967262\n    test 1018 line 196 toUtm8.scale: 1.098032\n    test 1019 line 196 toUtm8.lat: 64.971850\n    test 1020 line 196 toUtm8.lon: 78.151893\n    test 1021 line 197 toUtm8.easting: 3398195.889603\n    test 1022 line 197 toUtm8.northing: 9138936.031490\n    test 1023 line 197 toUtm8.gamma: 74.477499\n    test 1024 line 197 toUtm8.scale: 1.144009\n    test 1025 line 197 toUtm8.lat: 59.961819\n    test 1026 line 197 toUtm8.lon: 76.473422\n    test 1027 line 198 toUtm8.easting: 2421734.754637\n    test 1028 line 198 toUtm8.northing: 5002372.094991\n    test 1029 line 198 toUtm8.gamma: 20.017082\n    test 1030 line 198 toUtm8.scale: 1.072592\n    test 1031 line 198 toUtm8.lat: 41.374040\n    test 1032 line 198 toUtm8.lon: 28.848343\n    test 1033 line 199 toUtm8.easting: 2360869.895525\n    test 1034 line 199 toUtm8.northing: 9553298.449536\n    test 1035 line 199 toUtm8.gamma: 78.848205\n    test 1036 line 199 toUtm8.scale: 1.068453\n    test 1037 line 199 toUtm8.lat: 68.946087\n    test 1038 line 199 toUtm8.lon: 79.574523\n\n    test skipped (27): line 200 toUtm8.'79.275096210569 83.551272329394 1196539.9721941076965 9861920.8362302532842 83.437668440198132309 1.01713723718699411107'\n    test 1039 line 201 toUtm8.easting: 1327758.704795\n    test 1040 line 201 toUtm8.northing: 2375509.241683\n    test 1041 line 201 toUtm8.gamma: 4.617572\n    test 1042 line 201 toUtm8.scale: 1.021465\n    test 1043 line 201 toUtm8.lat: 21.000252\n    test 1044 line 201 toUtm8.lon: 12.697444\n    test 1045 line 202 toUtm8.easting: 2070860.327644\n    test 1046 line 202 toUtm8.northing: 8604500.719581\n    test 1047 line 202 toUtm8.gamma: 54.722761\n    test 1048 line 202 toUtm8.scale: 1.052469\n    test 1049 line 202 toUtm8.lat: 68.015227\n    test 1050 line 202 toUtm8.lon: 56.732419\n    test 1051 line 203 toUtm8.easting: 6564776.654864\n    test 1052 line 203 toUtm8.northing: 8171207.177379\n    test 1053 line 203 toUtm8.gamma: 69.237523\n    test 1054 line 203 toUtm8.scale: 1.573894\n    test 1055 line 203 toUtm8.lat: 37.423675\n    test 1056 line 203 toUtm8.lon: 76.947359\n    test 1057 line 204 toUtm8.easting: 592653.553821\n    test 1058 line 204 toUtm8.northing: 6125529.810052\n    test 1059 line 204 toUtm8.gamma: 7.600785\n    test 1060 line 204 toUtm8.scale: 1.003912\n    test 1061 line 204 toUtm8.lat: 54.922707\n    test 1062 line 204 toUtm8.lon: 9.260818\n    test 1063 line 205 toUtm8.easting: 693459.671821\n    test 1064 line 205 toUtm8.northing: 6943779.991032\n    test 1065 line 205 toUtm8.gamma: 11.787587\n    test 1066 line 205 toUtm8.scale: 1.005496\n    test 1067 line 205 toUtm8.lat: 61.982810\n    test 1068 line 205 toUtm8.lon: 13.299659\n    test 1069 line 206 toUtm8.easting: 1838956.187625\n    test 1070 line 206 toUtm8.northing: 3511959.612381\n    test 1071 line 206 toUtm8.gamma: 9.844313\n    test 1072 line 206 toUtm8.scale: 1.041603\n    test 1073 line 206 toUtm8.lat: 30.324214\n    test 1074 line 206 toUtm8.lon: 18.959769\n    test 1075 line 207 toUtm8.easting: 4460690.884597\n    test 1076 line 207 toUtm8.northing: 5541873.235403\n    test 1077 line 207 toUtm8.gamma: 35.768613\n    test 1078 line 207 toUtm8.scale: 1.254179\n    test 1079 line 207 toUtm8.lat: 37.629667\n    test 1080 line 207 toUtm8.lon: 49.649131\n    test 1081 line 208 toUtm8.easting: 2311168.998941\n    test 1082 line 208 toUtm8.northing: 9480561.869119\n    test 1083 line 208 toUtm8.gamma: 76.828257\n    test 1084 line 208 toUtm8.scale: 1.065556\n    test 1085 line 208 toUtm8.lat: 69.225574\n    test 1086 line 208 toUtm8.lon: 77.656135\n    test 1087 line 209 toUtm8.easting: 4111775.114451\n    test 1088 line 209 toUtm8.northing: 6509014.348792\n    test 1089 line 209 toUtm8.gamma: 43.052130\n    test 1090 line 209 toUtm8.scale: 1.214125\n    test 1091 line 209 toUtm8.lat: 44.698478\n    test 1092 line 209 toUtm8.lon: 52.979304\n    test 1093 line 210 toUtm8.easting: 75358.261962\n    test 1094 line 210 toUtm8.northing: 7711258.662251\n    test 1095 line 210 toUtm8.gamma: 1.806297\n    test 1096 line 210 toUtm8.scale: 0.999669\n    test 1097 line 210 toUtm8.lat: 69.499594\n    test 1098 line 210 toUtm8.lon: 1.928336\n\n    test skipped (28): line 211 toUtm8.'27.981363604998 86.061112755721 8781885.2291162503299 9184776.4522114918448 81.795538514711932534 2.09490761781464961377'\n    test 1099 line 212 toUtm8.easting: 954378.415174\n    test 1100 line 212 toUtm8.northing: 7449110.669807\n    test 1101 line 212 toUtm8.gamma: 19.380657\n    test 1102 line 212 toUtm8.scale: 1.010768\n    test 1103 line 212 toUtm8.lat: 65.699839\n    test 1104 line 212 toUtm8.lon: 21.104725\n    test 1105 line 213 toUtm8.easting: 720971.793706\n    test 1106 line 213 toUtm8.northing: 5265195.121555\n    test 1107 line 213 toUtm8.gamma: 7.002995\n    test 1108 line 213 toUtm8.scale: 1.005995\n    test 1109 line 213 toUtm8.lat: 47.143648\n    test 1110 line 213 toUtm8.lon: 9.512189\n    test 1111 line 214 toUtm8.easting: 561561.493937\n    test 1112 line 214 toUtm8.northing: 989910.236221\n    test 1113 line 214 toUtm8.gamma: 0.793118\n    test 1114 line 214 toUtm8.scale: 1.003505\n    test 1115 line 214 toUtm8.lat: 8.920167\n    test 1116 line 214 toUtm8.lon: 5.101513\n    test 1117 line 215 toUtm8.easting: 3446829.634468\n    test 1118 line 215 toUtm8.northing: 9232868.155664\n    test 1119 line 215 toUtm8.gamma: 76.279075\n    test 1120 line 215 toUtm8.scale: 1.148263\n    test 1121 line 215 toUtm8.lat: 59.778971\n    test 1122 line 215 toUtm8.lon: 78.080322\n\n    test skipped (29): line 216 toUtm8.'55.865310107291 87.384288430943 4048307.5459092527942 9800416.4229977935137 86.843918034217523739 1.20649504624906774925'\n    test 1123 line 217 toUtm8.easting: 8973188.480293\n    test 1124 line 217 toUtm8.northing: 7042230.087021\n    test 1125 line 217 toUtm8.gamma: 60.872456\n    test 1126 line 217 toUtm8.scale: 2.156098\n    test 1127 line 217 toUtm8.lat: 24.310973\n    test 1128 line 217 toUtm8.lon: 76.823777\n    test 1129 line 218 toUtm8.easting: 126314.191618\n    test 1130 line 218 toUtm8.northing: 396006.687921\n    test 1131 line 218 toUtm8.gamma: 0.071065\n    test 1132 line 218 toUtm8.scale: 0.999798\n    test 1133 line 218 toUtm8.lat: 3.582041\n    test 1134 line 218 toUtm8.lon: 1.137286\n    test 1135 line 219 toUtm8.easting: 5247652.345647\n    test 1136 line 219 toUtm8.northing: 8670513.359752\n    test 1137 line 219 toUtm8.gamma: 72.700498\n    test 1138 line 219 toUtm8.scale: 1.355272\n    test 1139 line 219 toUtm8.lat: 46.124233\n    test 1140 line 219 toUtm8.lon: 77.313118\n\n    test skipped (30): line 220 toUtm8.'31.17139056295 87.104503768139 8103656.8381187232079 9469794.014736839373 84.490673011906282841 1.91216400164486142107'\n    test 1141 line 221 toUtm8.easting: 6300112.758236\n    test 1142 line 221 toUtm8.northing: 93835.917364\n    test 1143 line 221 toUtm8.gamma: 0.644805\n    test 1144 line 221 toUtm8.scale: 1.534073\n    test 1145 line 221 toUtm8.lat: 0.553171\n    test 1146 line 221 toUtm8.lon: 49.117104\n    test 1147 line 222 toUtm8.easting: 3894813.593782\n    test 1148 line 222 toUtm8.northing: 4833832.341027\n    test 1149 line 222 toUtm8.gamma: 27.453298\n    test 1150 line 222 toUtm8.scale: 1.192135\n    test 1151 line 222 toUtm8.lat: 35.361587\n    test 1152 line 222 toUtm8.lon: 41.860599\n    test 1153 line 223 toUtm8.easting: 402511.346712\n    test 1154 line 223 toUtm8.northing: 3520621.561911\n    test 1155 line 223 toUtm8.gamma: 2.238474\n    test 1156 line 223 toUtm8.scale: 1.001599\n    test 1157 line 223 toUtm8.lat: 31.750314\n    test 1158 line 223 toUtm8.lon: 4.248167\n    test 1159 line 224 toUtm8.easting: 5357378.503148\n    test 1160 line 224 toUtm8.northing: 2772997.602234\n    test 1161 line 224 toUtm8.gamma: 17.823560\n    test 1162 line 224 toUtm8.scale: 1.376031\n    test 1163 line 224 toUtm8.lat: 17.924336\n    test 1164 line 224 toUtm8.lon: 46.096402\n    test 1165 line 225 toUtm8.easting: 2807553.985866\n    test 1166 line 225 toUtm8.northing: 8177847.980275\n    test 1167 line 225 toUtm8.gamma: 54.680045\n    test 1168 line 225 toUtm8.scale: 1.097531\n    test 1169 line 225 toUtm8.lat: 60.931488\n    test 1170 line 225 toUtm8.lon: 58.221214\n\n    test skipped (31): line 226 toUtm8.'5.358150979521 87.556213284144 18289045.16650076146 7792942.3396035398889 73.216494415207315628 8.09800850850277481729'\n\n    test skipped (32): line 227 toUtm8.'28.616673489124 80.452426461437 8376822.4595378634541 8128174.6238782329989 70.920116640676321501 1.98487312027093768388'\n    test 1171 line 228 toUtm8.easting: 11898068.352950  FAILED, KNOWN, expected 11898068.353272\n    test 1172 line 228 toUtm8.northing: 4772439.493355  FAILED, KNOWN, expected 4772439.493697\n    test 1173 line 228 toUtm8.gamma: 42.613968\n    test 1174 line 228 toUtm8.scale: 3.314412\n    test 1175 line 228 toUtm8.lat: 11.709763\n    test 1176 line 228 toUtm8.lon: 76.760295\n    test 1177 line 229 toUtm8.easting: 10550946.939052  FAILED, KNOWN, expected 10550946.939050\n    test 1178 line 229 toUtm8.northing: 3851968.815305  FAILED, KNOWN, expected 3851968.815295\n    test 1179 line 229 toUtm8.gamma: 33.383025\n    test 1180 line 229 toUtm8.scale: 2.724754\n    test 1181 line 229 toUtm8.lat: 12.009498\n    test 1182 line 229 toUtm8.lon: 71.782351\n\n    test skipped (33): line 230 toUtm8.'37.62978386356 85.795687334213 6828299.1236065501034 9394803.2274626281036 83.181386462369626591 1.62435875189611017521'\n    test 1183 line 231 toUtm8.easting: 11162550.334001  FAILED, KNOWN, expected 11162550.334022\n    test 1184 line 231 toUtm8.northing: 2640267.279546  FAILED, KNOWN, expected 2640267.279593\n    test 1185 line 231 toUtm8.gamma: 23.145404\n    test 1186 line 231 toUtm8.scale: 2.998408\n    test 1187 line 231 toUtm8.lat: 7.721128\n    test 1188 line 231 toUtm8.lon: 71.662731\n    test 1189 line 232 toUtm8.easting: 4411584.447941\n    test 1190 line 232 toUtm8.northing: 4956173.694407\n    test 1191 line 232 toUtm8.gamma: 30.713919\n    test 1192 line 232 toUtm8.scale: 1.248736\n    test 1193 line 232 toUtm8.lat: 34.295026\n    test 1194 line 232 toUtm8.lon: 46.442191\n    test 1195 line 233 toUtm8.easting: 672108.897905\n    test 1196 line 233 toUtm8.northing: 4751554.657054\n    test 1197 line 233 toUtm8.gamma: 5.569178\n    test 1198 line 233 toUtm8.scale: 1.005162\n    test 1199 line 233 toUtm8.lat: 42.622496\n    test 1200 line 233 toUtm8.lon: 8.193605\n    test 1201 line 234 toUtm8.easting: 5022964.290579\n    test 1202 line 234 toUtm8.northing: 6860418.199502\n    test 1203 line 234 toUtm8.gamma: 50.862230\n    test 1204 line 234 toUtm8.scale: 1.324925\n    test 1205 line 234 toUtm8.lat: 41.667780\n    test 1206 line 234 toUtm8.lon: 61.518288\n    test 1207 line 235 toUtm8.easting: 1669655.595207\n    test 1208 line 235 toUtm8.northing: 4152086.537021\n    test 1209 line 235 toUtm8.gamma: 11.110237\n    test 1210 line 235 toUtm8.scale: 1.034138\n    test 1211 line 235 toUtm8.lat: 36.060369\n    test 1212 line 235 toUtm8.lon: 18.444112\n    test 1213 line 236 toUtm8.easting: 6055876.729655\n    test 1214 line 236 toUtm8.northing: 4896837.552619\n    test 1215 line 236 toUtm8.gamma: 35.799747\n    test 1216 line 236 toUtm8.scale: 1.485967\n    test 1217 line 236 toUtm8.lat: 27.948091\n    test 1218 line 236 toUtm8.lon: 56.816429\n    test 1219 line 237 toUtm8.easting: 1209214.164379\n    test 1220 line 237 toUtm8.northing: 7266409.859178\n    test 1221 line 237 toUtm8.gamma: 22.319633\n    test 1222 line 237 toUtm8.scale: 1.017554\n    test 1223 line 237 toUtm8.lat: 63.386030\n    test 1224 line 237 toUtm8.lon: 24.662716\n    test 1225 line 238 toUtm8.easting: 5154564.559584\n    test 1226 line 238 toUtm8.northing: 698118.349975\n    test 1227 line 238 toUtm8.gamma: 4.242360\n    test 1228 line 238 toUtm8.scale: 1.347481\n    test 1229 line 238 toUtm8.lat: 4.680922\n    test 1230 line 238 toUtm8.lon: 42.114426\n    test 1231 line 239 toUtm8.easting: 2695149.806543\n    test 1232 line 239 toUtm8.northing: 8208197.765605\n    test 1233 line 239 toUtm8.gamma: 54.178615\n    test 1234 line 239 toUtm8.scale: 1.089730\n    test 1235 line 239 toUtm8.lat: 61.826625\n    test 1236 line 239 toUtm8.lon: 57.525096\n    test 1237 line 240 toUtm8.easting: 3394792.327820\n    test 1238 line 240 toUtm8.northing: 3217583.415552\n    test 1239 line 240 toUtm8.gamma: 15.165863\n    test 1240 line 240 toUtm8.scale: 1.145285\n    test 1241 line 240 toUtm8.lat: 25.104353\n    test 1242 line 240 toUtm8.lon: 32.528660\n    test 1243 line 241 toUtm8.easting: 1429160.966985\n    test 1244 line 241 toUtm8.northing: 8212685.362032\n    test 1245 line 241 toUtm8.gamma: 37.484904\n    test 1246 line 241 toUtm8.scale: 1.024676\n    test 1247 line 241 toUtm8.lat: 69.678351\n    test 1248 line 241 toUtm8.lon: 39.275513\n\n    test skipped (34): line 242 toUtm8.'29.671383681805 84.19659549085 8343387.9980651104898 8885196.9545780118644 78.561937382568633298 1.97473261886829061763'\n    test 1249 line 243 toUtm8.easting: 1990722.928606\n    test 1250 line 243 toUtm8.northing: 7569202.065162\n    test 1251 line 243 toUtm8.gamma: 37.075276\n    test 1252 line 243 toUtm8.scale: 1.048486\n    test 1253 line 243 toUtm8.lat: 62.300208\n    test 1254 line 243 toUtm8.lon: 40.474051\n    test 1255 line 244 toUtm8.easting: 1554980.099559\n    test 1256 line 244 toUtm8.northing: 1449423.919586\n    test 1257 line 244 toUtm8.gamma: 3.188328\n    test 1258 line 244 toUtm8.scale: 1.029664\n    test 1259 line 244 toUtm8.lat: 12.721776\n    test 1260 line 244 toUtm8.lon: 14.190003\n    test 1261 line 245 toUtm8.easting: 785205.450196\n    test 1262 line 245 toUtm8.northing: 5575158.423096\n    test 1263 line 245 toUtm8.gamma: 8.388417\n    test 1264 line 245 toUtm8.scale: 1.007181\n    test 1265 line 245 toUtm8.lat: 49.811296\n    test 1266 line 245 toUtm8.lon: 10.925011\n    test 1267 line 246 toUtm8.easting: 3310405.988313\n    test 1268 line 246 toUtm8.northing: 5955022.233881\n    test 1269 line 246 toUtm8.gamma: 33.007587\n    test 1270 line 246 toUtm8.scale: 1.137141\n    test 1271 line 246 toUtm8.lat: 45.132680\n    test 1272 line 246 toUtm8.lon: 42.478624\n    test 1273 line 247 toUtm8.easting: 4733460.960666\n    test 1274 line 247 toUtm8.northing: 129034.889816\n    test 1275 line 247 toUtm8.gamma: 0.737551\n    test 1276 line 247 toUtm8.scale: 1.290439\n    test 1277 line 247 toUtm8.lat: 0.904279\n    test 1278 line 247 toUtm8.lon: 39.078412\n    test 1279 line 248 toUtm8.easting: 3322708.343909\n    test 1280 line 248 toUtm8.northing: 3864738.078742\n    test 1281 line 248 toUtm8.gamma: 18.472566\n    test 1282 line 248 toUtm8.scale: 1.138838\n    test 1283 line 248 toUtm8.lat: 30.163605\n    test 1284 line 248 toUtm8.lon: 33.577996\n\n    test skipped (35): line 249 toUtm8.'27.643243707755 81.892859091432 8672864.4172042475623 8333465.9834441061554 73.206272638168122883 2.06544053870286774312'\n\n    test skipped (36): line 250 toUtm8.'18.201207657521 82.434617649311 11126818.23119627031 7618712.1749910723126 67.88717347393512063 2.92241673495261070414'\n\n    test skipped (37): line 251 toUtm8.'28.804576432117 89.886072420251 8650100.9817967479337 9975084.1689971279206 89.767446308690086924 2.05728879562910108817'\n    test 1285 line 252 toUtm8.easting: 2212701.180192\n    test 1286 line 252 toUtm8.northing: 650348.100229\n    test 1287 line 252 toUtm8.gamma: 1.970441\n    test 1288 line 252 toUtm8.scale: 1.060830\n    test 1289 line 252 toUtm8.lat: 5.542998\n    test 1290 line 252 toUtm8.lon: 19.589578\n    test 1291 line 253 toUtm8.easting: 6890222.326618\n    test 1292 line 253 toUtm8.northing: 7506813.499547\n    test 1293 line 253 toUtm8.gamma: 62.684825\n    test 1294 line 253 toUtm8.scale: 1.638488\n    test 1295 line 253 toUtm8.lat: 34.237147\n    test 1296 line 253 toUtm8.lon: 73.678164\n    test 1297 line 254 toUtm8.easting: 6692260.067325\n    test 1298 line 254 toUtm8.northing: 4244174.008110\n    test 1299 line 254 toUtm8.gamma: 31.812920\n    test 1300 line 254 toUtm8.scale: 1.604640\n    test 1301 line 254 toUtm8.lat: 22.704949\n    test 1302 line 254 toUtm8.lon: 57.877010\n    test 1303 line 255 toUtm8.easting: 1225564.137190\n    test 1304 line 255 toUtm8.northing: 4778923.924144\n    test 1305 line 255 toUtm8.gamma: 10.083419\n    test 1306 line 255 toUtm8.scale: 1.018134\n    test 1307 line 255 toUtm8.lat: 42.192424\n    test 1308 line 255 toUtm8.lon: 14.828196\n    test 1309 line 256 toUtm8.easting: 12341116.155088  FAILED, KNOWN, expected 12341116.154950\n    test 1310 line 256 toUtm8.northing: 5081855.520287  FAILED, KNOWN, expected 5081855.521966\n    test 1311 line 256 toUtm8.gamma: 45.712545  FAILED, KNOWN, expected 45.712546\n    test 1312 line 256 toUtm8.scale: 3.535170\n    test 1313 line 256 toUtm8.lat: 11.481151\n    test 1314 line 256 toUtm8.lon: 78.189236\n    test 1315 line 257 toUtm8.easting: 6673845.021771\n    test 1316 line 257 toUtm8.northing: 1177587.190565\n    test 1317 line 257 toUtm8.gamma: 8.389141\n    test 1318 line 257 toUtm8.scale: 1.605171\n    test 1319 line 257 toUtm8.lat: 6.609626\n    test 1320 line 257 toUtm8.lon: 51.735783\n    test 1321 line 258 toUtm8.easting: 6966354.690417\n    test 1322 line 258 toUtm8.northing: 3641802.005093\n    test 1323 line 258 toUtm8.gamma: 27.409636\n    test 1324 line 258 toUtm8.scale: 1.661469\n    test 1325 line 258 toUtm8.lat: 19.059369\n    test 1326 line 258 toUtm8.lon: 57.526439\n    test 1327 max forward error: 1.678809e-03\n    test 1328 max reverse error: 3.170463e-09\n    test 1329 Utm.scale0: 0.9996\n    test 1330 Utm.datum: WGS84\n    test 1331 Utm.datum.ellipsoid.KsOrder: 8\n    test 1332 WGS84.KsOrder: 8\n\n    23 of 1332 testUtmTMcoords.py tests (1.7%) FAILED, ALL KNOWN, 37 skipped (pygeodesy 26.3.26 PyPy 7.3.17 Python 3.10.14 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 251.570 ms\nrunning /opt/local/bin/p....y3.10 -W default ~/PyGeodesy/test/testUtmUps.py\n# lazily imported pygeodesy.basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.DeprecationWarnings from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isint from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isLazy from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.issubclassof from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.iterNumpy2over from .iters by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.LazyImportError from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.karney by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.NN from .interns by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.normDMS from .dms by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.pairs from .streprs by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.printf from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.property_RO from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.typename from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.F_DMS from .dms by testUtmUps.py line 11\n# lazily imported pygeodesy.parseUTMUPS5 from .utmups by testUtmUps.py line 11\n# lazily imported pygeodesy.toUps8 from .ups by testUtmUps.py line 11\n# lazily imported pygeodesy.toUtmUps8 from .utmups by testUtmUps.py line 11\n# lazily imported pygeodesy.UtmUps from .utmups by testUtmUps.py line 11\n# lazily imported pygeodesy.utmupsValidateOK from .utmups by testUtmUps.py line 11\n# lazily imported pygeodesy.ellipsoidalVincenty by testUtmUps.py line 200\n\n    testing testUtmUps.py 23.03.27 (module pygeodesy.utmups 25.04.14) isLazy=3\n    test 1 UtmUps: 00 N 448251.0 5411932.0001\n    test 2 UtmUps.ValidateOK: True\n    test 3 UtmUps: 00 N 448252 5411933\n    test 4 UtmUps: 00 N 448251.795 5411932.678\n    test 5 UtmUps: 00Z N 448251.8 5411932.7 n/a n/a\n    test 6 UtmUps.ValidateOK: True\n    test 7 UtmUps.toLatLon: 43.684097°N, 175.265195°E\n    test 8 UtmUps.toLatLon: 43°41′02.75″N, 175°15′54.7″E\n    test 9 LL.toUtmUps: 60 N 360177 4838249\n    test 10 LL.toUtmUps: 60 N 360176.686 4838249.416\n    test 11 LL.toUtmUps: [Z:60T, H:N, E:360177, N:4838249, C:-1.19839167°, S:0.99984048]\n    test 12 LL.toUtmUps.ValidateOK: True\n# imported pygeodesy.basics into errors.py line 443\n    test 13 toUtmUps8ID1: 00Y N 1530125.78 2426773.6 -132.24798917° 0.99647445\n    test 14 toUtmUps8ID1.ValidateOK: True\n    test 15 toUtmUps8ID1.ValidateOK: True\n    test 16 toUtmUps8ID2: 38 N 467367.68 8100752.13 -57.37878422′ 0.99961302  FAILED, KNOWN, expected 38 N 3320416.75 632668.43 +44.0° 1.01619505\n    test 17 toUtmUps8ID2.ValidateOK: True\n    test 18 toUtmUps8ID2.ValidateOK: True\n    test 19 toUtmUps8ID2: 00 N 3320416.75 632668.43 +44.0° 1.01619505\n    test 20 toUtmUps8ID2.ValidateOK: easting (3320416.7473598532): outside UPS range [1300000, 2700000]  FAILED, KNOWN, expected True\n    test 21 toUtmUps8ID3: 00B S 2222979.47 1797474.9 -132.24786194° 0.99455723\n    test 22 toUtmUps8ID3.ValidateOK: True\n    test 23 toUtmUps8ID3.ValidateOK: True\n    test 24 UtmUps.toLatLonID4.ValidateOK: True\n    test 25 UtmUps.toLatLonID4: 84°17′14.04″N, 132°14′52.76″W\n    test 26 UtmUps.toLatLonID4: 84.287234°N, 132.247989°W\n    test 27 UtmUps.ValidateOK: easting (3320416.75): outside UPS range [1300000, 2700000]  FAILED, KNOWN, expected True\n    test 28 UtmUps.toLatLonID5: 73°00′00.0″N, 044°00′00.0″E\n    test 29 UtmUps.toLatLonID5: 73.0°N, 044.0°E\n    test 30 UtmUps.ValidateOK: True\n    test 31 UtmUps.toLatLonID6: 87°17′14.4″S, 132°14′52.3″E\n    test 32 UtmUps.toLatLonID6: 87.287333°S, 132.247861°E\n    test 33 latlon1: 61.2°N, 149.9°W\n    test 34 toUtmUps8: 06 N 344174 6788521\n    test 35 toUtmUps8: 06V N 344173.864114 6788521.418164 -2.54179531° 0.99989751\n    test 36 toUtmUps8.ValidateOK: True\n# lazily imported pygeodesy.mgrs by utmupsBase.py line 523\n    test 37 toMgrs: 06V UN 44173 88521\n    test 38 latlon2: LatLon(83°37′37.2″N, 032°39′50.4″W)\n    test 39 toUtmUps8: 25 N 504164 9286466\n    test 40 toUtmUps8: [Z:25X, H:N, E:504164, N:9286466]\n    test 41 toUtmUps8: 25X N 504163.899383 9286465.664902 +20.03542083′ 0.99960021\n    test 42 toUtmUps8.ValidateOK: True\n    test 43 toMgrs: 25X EN 04163 86465\n    test 44 latlon3: 33.33°N, 044.44°E\n    test 45 toUtmUps8: 38 N 447882 3688012\n    test 46 toUtmUps8: 38S N 447882.413169 3688011.692733 -18.46228466′ 0.99963349\n    test 47 toUtmUps8.ValidateOK: True\n    test 48 toMgrs: 38S MB 47882 88011\n    test 49 latlon4: 79.0°S, 079.0°W\n    test 50 toUtmUps8: 17 S 542594 1229296\n    test 51 toUtmUps8: 17C S 542594.134555 1229296.157301 -1.96328341° 0.99962217\n    test 52 toUtmUps8.ValidateOK: True\n    test 53 toMgrs: 17C NN 42594 29296\n    test 54 latlon5: 84.0°N, 084.0°E\n    test 55 toUtmUps8: 00 N 2663075 1930308\n    test 56 toUtmUps8: 00Z N 2663075.299562 1930307.977716 +84.0° 0.99673\n    test 57 toUtmUps8.ValidateOK: True\n    test 58 latlon6: 13.4125°N, 103.8667°E\n    test 59 toUtmUps8: 48 N 377302 1483035\n    test 60 toUtmUps8: 48P N 377302.354183 1483034.777084 -15.77480856′ 0.99978623\n    test 61 toUtmUps8.ValidateOK: True\n    test 62 toMgrs: 48P UV 77302 83034\n    test 63 latlon7: 13.4125°S, 103.8667°W\n    test 64 LL.toUtmUps: 13 S 622698 8516965\n    test 65 LL.toUtmUps: 13L S 622697.645817 8516965.222916 -15.77480856′ 0.99978623\n    test 66 LL.toUtmUps.ValidateOK: True\n    test 67 toMgrs: 13L FF 22697 16965\n    test 68 latlon8: 43.684097°N, 175.265195°E\n    test 69 LL.toUtmUps: 60 N 360177 4838249\n    test 70 LL.toUtmUps: 60 N 360176.691 4838249.422\n    test 71 LL.toUtmUps: [Z:60T, H:N, E:360177, N:4838249, C:-1.19839163°, S:0.99984048]\n    test 72 LL.toUtmUps.ValidateOK: True\n    test 73 toMgrs: 60T UP 60176 38249\n    test 74 UtmUps.toLatLon: 43.684097°N, 175.265195°E\n    test 75 UtmUps.toLatLon: 43°41′02.75″N, 175°15′54.7″E\n    test 76 latlon9: 41.321801°N, 074.801413°W\n    test 77 LL.toUtmUps: 18 N 516620 4574500\n    test 78 LL.toUtmUps: [Z:18T, H:N, E:516620, N:4574500, C:+7.86748851′, S:0.9996034]\n    test 79 LL.toUtmUps.ValidateOK: True\n    test 80 toMgrs: 18T WL 16619 74500\n    test 81 UtmUps.toLatLon: 41.321801°N, 074.801413°W\n    test 82 UtmUps.toLatLon: 41°19′18.48″N, 074°48′05.09″W\n    test 83 parseUTMUPS5: 18 N 516620 4574500\n    test 84 parseUTMUPS5.ValidateOK: True\n    test 85 UtmUps.toLatLon: 41.321801°N, 074.801413°W\n    test 86 UtmUps: 00A S 321441 5810117\n    test 87 UtmUps.ValidateOK: easting (321441.0425108216): outside UPS range [800000, 3200000]  FAILED, KNOWN, expected True\n    test 88 UtmUps.toLatLon: 53.713776°S, 023.77604°W\n    test 89 UtmUps.toLatLon: 53°42′49.59″S, 023°46′33.74″W\n    test 90 LL.toUtmUps: 27 S 316807 4044745\n    test 91 LL.toUtmUps.ValidateOK: True\n    test 92 LL.toUtmUps: 27 S 316807.326 4044744.532\n    test 93 LL.toUtmUps: [Z:27F, H:S, E:316807, N:4044745, C:+2.23830171°, S:1.00001184]\n    test 94 UtmUps: 00Z N 400000 5000000\n    test 95 UtmUps.ValidateOK: True\n    test 96 parseUTMUPS5: (31, 'N', 446000.0, 8436100.0, 'X')\n    test 97 parseUTMUPS5: (0, 'S', 506346.0, 1057743.0, 'A')\n\n    4 of 97 testUtmUps.py tests (4.1%) FAILED, ALL KNOWN (pygeodesy 26.3.26 PyPy 7.3.17 Python 3.10.14 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 32.097 ms\nrunning /opt/local/bin/p....y3.10 -W default ~/PyGeodesy/test/testUtmUpsTMcoords.py\n# lazily imported pygeodesy.basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.DeprecationWarnings from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isint from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isLazy from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.issubclassof from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.iterNumpy2over from .iters by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.LazyImportError from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.karney by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.NN from .interns by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.normDMS from .dms by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.pairs from .streprs by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.printf from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.property_RO from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.typename from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.Ellipsoids from .ellipsoids by testTMcoords.py line 14\n# lazily imported pygeodesy.EPS from .constants by testTMcoords.py line 14\n# lazily imported pygeodesy.RangeError from .errors by testTMcoords.py line 14\n# lazily imported pygeodesy.toUtmUps8 from .utmups by testUtmUpsTMcoords.py line 17\n# lazily imported pygeodesy.Ups from .ups by testUtmUpsTMcoords.py line 17\n# lazily imported pygeodesy.Utm from .utm by testUtmUpsTMcoords.py line 17\n\n    testing testUtmUpsTMcoords.py 24.03.22 (module pygeodesy.utmups 25.04.14) isLazy=3\n    test 1 line 1 toUtmUps8.easting: 1548706.791619\n    test 2 line 1 toUtmUps8.northing: 8451449.198772\n    test 3 line 1 toUtmUps8.gamma: 43.922790\n    test 4 line 1 toUtmUps8.scale: 1.029060\n    test 5 line 1 toUtmUps8.lat: 70.579277\n    test 6 line 1 toUtmUps8.lon: 45.599420\n    test 7 line 2 toUtmUps8.easting: 2624150.740929\n    test 8 line 2 toUtmUps8.northing: 1204434.041605\n    test 9 line 2 toUtmUps8.gamma: 4.292619\n    test 10 line 2 toUtmUps8.scale: 1.086051\n    test 11 line 2 toUtmUps8.lat: 10.018894\n    test 12 line 2 toUtmUps8.lon: 23.313324\n    test 13 line 3 toUtmUps8.easting: 9855841.232935\n    test 14 line 3 toUtmUps8.northing: 6145496.115157  FAILED, KNOWN, expected 6145496.115155\n    test 15 line 3 toUtmUps8.gamma: 53.348315\n    test 16 line 3 toUtmUps8.scale: 2.445098\n    test 17 line 3 toUtmUps8.lat: 19.479896\n    test 18 line 3 toUtmUps8.lon: 75.662049\n    test 19 line 4 toUtmUps8.easting: 3206390.691996\n    test 20 line 4 toUtmUps8.northing: 2650745.400406\n    test 21 line 4 toUtmUps8.gamma: 11.666950\n    test 22 line 4 toUtmUps8.scale: 1.129359\n    test 23 line 4 toUtmUps8.lat: 21.072465\n    test 24 line 4 toUtmUps8.lon: 29.828684\n    test 25 line 5 toUtmUps8.easting: 4328154.083501\n    test 26 line 5 toUtmUps8.northing: 749647.623690\n    test 27 line 5 toUtmUps8.gamma: 4.024317\n    test 28 line 5 toUtmUps8.scale: 1.240829\n    test 29 line 5 toUtmUps8.lat: 5.458957\n    test 30 line 5 toUtmUps8.lon: 36.385237\n    test 31 line 6 toUtmUps8.easting: 847598.266514\n    test 32 line 6 toUtmUps8.northing: 7947180.962440\n    test 33 line 6 toUtmUps8.gamma: 21.639091\n    test 34 line 6 toUtmUps8.scale: 1.008399\n    test 35 line 6 toUtmUps8.lat: 70.175454\n    test 36 line 6 toUtmUps8.lon: 22.865350\n    test 37 line 7 toUtmUps8.easting: 2727657.337974\n    test 38 line 7 toUtmUps8.northing: 8283916.696410\n    test 39 line 7 toUtmUps8.gamma: 55.690909\n    test 40 line 7 toUtmUps8.scale: 1.091942\n    test 41 line 7 toUtmUps8.lat: 61.965605\n    test 42 line 7 toUtmUps8.lon: 58.931371\n    test 43 line 8 toUtmUps8.easting: 2331001.751890\n    test 44 line 8 toUtmUps8.northing: 1313608.224751\n    test 45 line 8 toUtmUps8.gamma: 4.214690\n    test 46 line 8 toUtmUps8.scale: 1.067599\n    test 47 line 8 toUtmUps8.lat: 11.116050\n    test 48 line 8 toUtmUps8.lon: 20.901069\n    test 49 line 9 toUtmUps8.easting: 6035557.239480\n    test 50 line 9 toUtmUps8.northing: 5791770.791879\n    test 51 line 9 toUtmUps8.gamma: 43.698170\n    test 52 line 9 toUtmUps8.scale: 1.481260\n    test 53 line 9 toUtmUps8.lat: 32.210543\n    test 54 line 9 toUtmUps8.lon: 60.705849\n    test 55 line 10 toUtmUps8.easting: 1064553.125852\n    test 56 line 10 toUtmUps8.northing: 9417273.737208\n    test 57 line 10 toUtmUps8.gamma: 61.100380\n    test 58 line 10 toUtmUps8.scale: 1.013475\n    test 59 line 10 toUtmUps8.lat: 79.187451\n    test 60 line 10 toUtmUps8.lon: 61.532382\n    test 61 line 11 toUtmUps8.easting: 1400137.116164\n    test 62 line 11 toUtmUps8.northing: 9616907.017686\n    test 63 line 11 toUtmUps8.gamma: 74.527087\n    test 64 line 11 toUtmUps8.scale: 1.023640\n    test 65 line 11 toUtmUps8.lat: 77.103759\n    test 66 line 11 toUtmUps8.lon: 74.899105\n\n    test skipped (1): line 12 toUtmUps8.'21.889514024862 80.019885892785 9860691.0166261508479 7433039.1433282732643 65.357693372142649007 2.43897318400097845293'\n\n    test skipped (2): line 13 toUtmUps8.'30.53629567699 82.186177919416 8076501.8336948099169 8561614.1747819103782 75.073393190238557702 1.90620203595203984732'\n    test 67 line 14 toUtmUps8.easting: 3335099.866623\n    test 68 line 14 toUtmUps8.northing: 6740519.084015\n    test 69 line 14 toUtmUps8.gamma: 40.611821\n    test 70 line 14 toUtmUps8.scale: 1.139021\n    test 71 line 14 toUtmUps8.lat: 49.990485\n    test 72 line 14 toUtmUps8.lon: 48.203179\n\n    test skipped (3): line 15 toUtmUps8.'14.486311853451 80.905136710227 12051574.9284996192629 6587213.0519512810474 59.033236797073779959 3.3574686117030164354'\n    test 73 line 16 toUtmUps8.easting: 5387578.735298\n    test 74 line 16 toUtmUps8.northing: 4111216.907168\n    test 75 line 16 toUtmUps8.gamma: 27.574337\n    test 76 line 16 toUtmUps8.scale: 1.379357\n    test 77 line 16 toUtmUps8.lat: 25.936824\n    test 78 line 16 toUtmUps8.lon: 49.913598\n    test 79 line 17 toUtmUps8.easting: 2622214.380233\n    test 80 line 17 toUtmUps8.northing: 8678923.984567\n    test 81 line 17 toUtmUps8.gamma: 61.697275\n    test 82 line 17 toUtmUps8.scale: 1.084810\n    test 83 line 17 toUtmUps8.lat: 64.402196\n    test 84 line 17 toUtmUps8.lon: 64.091395\n\n    test skipped (4): line 18 toUtmUps8.'48.451353594584 84.856197560189 5068474.169632778036 9492066.9937094951003 83.156739839119105102 1.3299901985118008373'\n    test 85 line 19 toUtmUps8.easting: 738062.047779\n    test 86 line 19 toUtmUps8.northing: 3031007.074116\n    test 87 line 19 toUtmUps8.gamma: 3.416802\n    test 88 line 19 toUtmUps8.scale: 1.006332\n    test 89 line 19 toUtmUps8.lat: 27.203895\n    test 90 line 19 toUtmUps8.lon: 7.440229\n    test 91 line 20 toUtmUps8.easting: 1944413.834565\n    test 92 line 20 toUtmUps8.northing: 9613299.224493\n    test 93 line 20 toUtmUps8.gamma: 78.462831\n    test 94 line 20 toUtmUps8.scale: 1.046134\n    test 95 line 20 toUtmUps8.lat: 72.509000\n    test 96 line 20 toUtmUps8.lon: 78.982283\n    test 97 line 21 toUtmUps8.easting: 2114521.418406\n    test 98 line 21 toUtmUps8.northing: 4954077.440098\n    test 99 line 21 toUtmUps8.gamma: 17.571878\n    test 100 line 21 toUtmUps8.scale: 1.055093\n    test 101 line 21 toUtmUps8.lat: 41.824954\n    test 102 line 21 toUtmUps8.lon: 25.392744\n    test 103 line 22 toUtmUps8.easting: 620365.905090\n    test 104 line 22 toUtmUps8.northing: 4755542.026562\n    test 105 line 22 toUtmUps8.gamma: 5.152022\n    test 106 line 22 toUtmUps8.scale: 1.004338\n    test 107 line 22 toUtmUps8.lat: 42.701376\n    test 108 line 22 toUtmUps8.lon: 7.572738\n    test 109 line 23 toUtmUps8.easting: 263004.770989\n    test 110 line 23 toUtmUps8.northing: 4493669.762451\n    test 111 line 23 toUtmUps8.gamma: 2.020523\n    test 112 line 23 toUtmUps8.scale: 1.000452\n    test 113 line 23 toUtmUps8.lat: 40.552052\n    test 114 line 23 toUtmUps8.lon: 3.106056\n    test 115 line 24 toUtmUps8.easting: 3217221.739462\n    test 116 line 24 toUtmUps8.northing: 437776.119161\n    test 117 line 24 toUtmUps8.gamma: 1.848169\n    test 118 line 24 toUtmUps8.scale: 1.130558\n    test 119 line 24 toUtmUps8.lat: 3.501242\n    test 120 line 24 toUtmUps8.lon: 27.806507\n\n    test skipped (5): line 25 toUtmUps8.'10.148714782203 85.373767569431 14661142.4449607145297 7476100.8241849819567 68.376669038799719822 4.89664968310721668858'\n    test 121 line 26 toUtmUps8.easting: 967777.158554\n    test 122 line 26 toUtmUps8.northing: 6615684.266592\n    test 123 line 26 toUtmUps8.gamma: 14.410044\n    test 124 line 26 toUtmUps8.scale: 1.011100\n    test 125 line 26 toUtmUps8.lat: 58.582623\n    test 126 line 26 toUtmUps8.lon: 16.755558\n    test 127 line 27 toUtmUps8.easting: 7558840.728461\n    test 128 line 27 toUtmUps8.northing: 4144728.130764\n    test 129 line 27 toUtmUps8.gamma: 32.557264\n    test 130 line 27 toUtmUps8.scale: 1.791490\n    test 131 line 27 toUtmUps8.lat: 19.793004\n    test 132 line 27 toUtmUps8.lon: 61.746763\n    test 133 line 28 toUtmUps8.easting: 1056008.314161\n    test 134 line 28 toUtmUps8.northing: 9290799.692669\n    test 135 line 28 toUtmUps8.gamma: 55.843278\n    test 136 line 28 toUtmUps8.scale: 1.013253\n    test 137 line 28 toUtmUps8.lat: 78.666776\n    test 138 line 28 toUtmUps8.lon: 56.365355\n    test 139 line 29 toUtmUps8.easting: 1943965.134687\n    test 140 line 29 toUtmUps8.northing: 1389972.228690\n    test 141 line 29 toUtmUps8.gamma: 3.774869\n    test 142 line 29 toUtmUps8.scale: 1.046724\n    test 143 line 29 toUtmUps8.lat: 11.998788\n    test 144 line 29 toUtmUps8.lon: 17.597873\n    test 145 line 30 toUtmUps8.easting: 5803077.072902\n    test 146 line 30 toUtmUps8.northing: 5649957.943659\n    test 147 line 30 toUtmUps8.gamma: 41.717943\n    test 148 line 30 toUtmUps8.scale: 1.442572\n    test 149 line 30 toUtmUps8.lat: 32.540378\n    test 150 line 30 toUtmUps8.lon: 58.764613\n    test 151 line 31 toUtmUps8.easting: 2928716.986009\n    test 152 line 31 toUtmUps8.northing: 5731835.058317\n    test 153 line 31 toUtmUps8.gamma: 28.538550\n    test 154 line 31 toUtmUps8.scale: 1.106780\n    test 155 line 31 toUtmUps8.lat: 45.160356\n    test 156 line 31 toUtmUps8.lon: 37.465285\n    test 157 line 32 toUtmUps8.easting: 326141.975756\n    test 158 line 32 toUtmUps8.northing: 8881325.164543\n    test 159 line 32 toUtmUps8.gamma: 16.111415\n    test 160 line 32 toUtmUps8.scale: 1.000900\n    test 161 line 32 toUtmUps8.lat: 79.584190\n    test 162 line 32 toUtmUps8.lon: 16.367006\n    test 163 line 33 toUtmUps8.easting: 3933015.267450\n    test 164 line 33 toUtmUps8.northing: 7932373.909512\n    test 165 line 33 toUtmUps8.gamma: 58.577424\n    test 166 line 33 toUtmUps8.scale: 1.194811\n    test 167 line 33 toUtmUps8.lat: 52.470664\n    test 168 line 33 toUtmUps8.lon: 64.125580\n    test 169 line 34 toUtmUps8.easting: 8598926.983213\n    test 170 line 34 toUtmUps8.northing: 6214135.167503\n    test 171 line 34 toUtmUps8.gamma: 52.612878\n    test 172 line 34 toUtmUps8.scale: 2.051367\n    test 173 line 34 toUtmUps8.lat: 23.702673\n    test 174 line 34 toUtmUps8.lon: 72.630363\n    test 175 line 35 toUtmUps8.easting: 6620553.333772\n    test 176 line 35 toUtmUps8.northing: 6540527.122948\n    test 177 line 35 toUtmUps8.gamma: 52.350140\n    test 178 line 35 toUtmUps8.scale: 1.586614\n    test 179 line 35 toUtmUps8.lat: 32.603520\n    test 180 line 35 toUtmUps8.lon: 67.280123\n    test 181 line 36 toUtmUps8.easting: 1515136.758292\n    test 182 line 36 toUtmUps8.northing: 3858996.087537\n    test 183 line 36 toUtmUps8.gamma: 9.225127\n    test 184 line 36 toUtmUps8.scale: 1.028029\n    test 185 line 36 toUtmUps8.lat: 33.776224\n    test 186 line 36 toUtmUps8.lon: 16.280993\n    test 187 line 37 toUtmUps8.easting: 479854.373445\n    test 188 line 37 toUtmUps8.northing: 8980501.389896\n    test 189 line 37 toUtmUps8.gamma: 25.021222\n    test 190 line 37 toUtmUps8.scale: 1.002415\n    test 191 line 37 toUtmUps8.lat: 79.932747\n    test 192 line 37 toUtmUps8.lon: 25.363622\n    test 193 line 38 toUtmUps8.easting: 5243446.564940\n    test 194 line 38 toUtmUps8.northing: 140657.213960\n    test 195 line 38 toUtmUps8.gamma: 0.862817\n    test 196 line 38 toUtmUps8.scale: 1.360358\n    test 197 line 38 toUtmUps8.lat: 0.935056\n    test 198 line 38 toUtmUps8.lon: 42.538824\n\n    test skipped (6): line 39 toUtmUps8.'13.490862440668 83.178380075606 12806457.9232176809509 7170118.6846750266674 64.708921319446620085 3.7405880916836789809'\n    test 199 line 40 toUtmUps8.easting: 1202993.459158\n    test 200 line 40 toUtmUps8.northing: 5557316.053599\n    test 201 line 40 toUtmUps8.gamma: 12.579061\n    test 202 line 40 toUtmUps8.scale: 1.017426\n    test 203 line 40 toUtmUps8.lat: 48.979057\n    test 204 line 40 toUtmUps8.lon: 16.474542\n    test 205 line 41 toUtmUps8.easting: 1729088.710196\n    test 206 line 41 toUtmUps8.northing: 7770874.289954\n    test 207 line 41 toUtmUps8.gamma: 36.021783\n    test 208 line 41 toUtmUps8.scale: 1.036397\n    test 209 line 41 toUtmUps8.lat: 65.036016\n    test 210 line 41 toUtmUps8.lon: 38.729091\n    test 211 line 42 toUtmUps8.easting: 2437301.517425\n    test 212 line 42 toUtmUps8.northing: 5539327.748318\n    test 213 line 42 toUtmUps8.gamma: 23.461879\n    test 214 line 42 toUtmUps8.scale: 1.073459\n    test 215 line 42 toUtmUps8.lat: 45.510091\n    test 216 line 42 toUtmUps8.lon: 31.303729\n    test 217 line 43 toUtmUps8.easting: 3647186.135066\n    test 218 line 43 toUtmUps8.northing: 2086412.330983\n    test 219 line 43 toUtmUps8.gamma: 10.023991\n    test 220 line 43 toUtmUps8.scale: 1.168707\n    test 221 line 43 toUtmUps8.lat: 16.058010\n    test 222 line 43 toUtmUps8.lon: 32.520026\n    test 223 line 44 toUtmUps8.easting: 1818497.243556\n    test 224 line 44 toUtmUps8.northing: 4275471.745057\n    test 225 line 44 toUtmUps8.gamma: 12.499656\n    test 226 line 44 toUtmUps8.scale: 1.040604\n    test 227 line 44 toUtmUps8.lat: 36.845200\n    test 228 line 44 toUtmUps8.lon: 20.282283\n    test 229 line 45 toUtmUps8.easting: 3751304.113783\n    test 230 line 45 toUtmUps8.northing: 5130454.001592\n    test 231 line 45 toUtmUps8.gamma: 28.959707\n    test 232 line 45 toUtmUps8.scale: 1.177681\n    test 233 line 45 toUtmUps8.lat: 37.865481\n    test 234 line 45 toUtmUps8.lon: 41.990402\n    test 235 line 46 toUtmUps8.easting: 2616733.138544\n    test 236 line 46 toUtmUps8.northing: 394644.463815\n    test 237 line 46 toUtmUps8.gamma: 1.390425\n    test 238 line 46 toUtmUps8.scale: 1.085595\n    test 239 line 46 toUtmUps8.lat: 3.287272\n    test 240 line 46 toUtmUps8.lon: 22.917604\n    test 241 line 47 toUtmUps8.easting: 1756506.573942\n    test 242 line 47 toUtmUps8.northing: 5570393.986394\n    test 243 line 47 toUtmUps8.gamma: 17.897894\n    test 244 line 47 toUtmUps8.scale: 1.037732\n    test 245 line 47 toUtmUps8.lat: 47.813686\n    test 246 line 47 toUtmUps8.lon: 23.545092\n    test 247 line 48 toUtmUps8.easting: 8752461.894711\n    test 248 line 48 toUtmUps8.northing: 6087728.152284\n    test 249 line 48 toUtmUps8.gamma: 51.628465\n    test 250 line 48 toUtmUps8.scale: 2.095465\n    test 251 line 48 toUtmUps8.lat: 22.836853\n    test 252 line 48 toUtmUps8.lon: 72.604385\n    test 253 line 49 toUtmUps8.easting: 1309272.216432\n    test 254 line 49 toUtmUps8.northing: 59520.028899\n    test 255 line 49 toUtmUps8.gamma: 0.109069\n    test 256 line 49 toUtmUps8.scale: 1.020897\n    test 257 line 49 toUtmUps8.lat: 0.527262\n    test 258 line 49 toUtmUps8.lon: 11.684209\n    test 259 line 50 toUtmUps8.easting: 328652.277129\n    test 260 line 50 toUtmUps8.northing: 2233043.958874\n    test 261 line 50 toUtmUps8.gamma: 1.084863\n    test 262 line 50 toUtmUps8.scale: 1.000935\n    test 263 line 50 toUtmUps8.lat: 20.166742\n    test 264 line 50 toUtmUps8.lon: 3.143948\n\n    test skipped (7): line 51 toUtmUps8.'28.604629015528 85.988721094779 8637959.7164470998207 9190635.1560309800028 81.802562643198123218 2.05432863342852874819'\n\n    test skipped (8): line 52 toUtmUps8.'28.984047991106 85.833447775172 8548521.4551470334531 9172410.9432821880799 81.583928102890161419 2.02964145862183583179'\n    test 265 line 53 toUtmUps8.easting: 796987.281104\n    test 266 line 53 toUtmUps8.northing: 7677446.357675\n    test 267 line 53 toUtmUps8.gamma: 18.084472\n    test 268 line 53 toUtmUps8.scale: 1.007381\n    test 269 line 53 toUtmUps8.lat: 68.071020\n    test 270 line 53 toUtmUps8.lon: 19.392823\n\n    test skipped (9): line 54 toUtmUps8.'61.416576191872 81.981611413918 3291036.4967623295988 9513199.6006662170596 80.890253980644739593 1.13482563910814382209'\n    test 271 line 55 toUtmUps8.easting: 7087225.330906\n    test 272 line 55 toUtmUps8.northing: 8382823.855822\n    test 273 line 55 toUtmUps8.gamma: 72.253756\n    test 274 line 55 toUtmUps8.scale: 1.678070\n    test 275 line 55 toUtmUps8.lat: 35.074753\n    test 276 line 55 toUtmUps8.lon: 79.496003\n    test 277 line 56 toUtmUps8.easting: 5090358.125724\n    test 278 line 56 toUtmUps8.northing: 4318294.133489\n    test 279 line 56 toUtmUps8.gamma: 28.266280\n    test 280 line 56 toUtmUps8.scale: 1.336264\n    test 281 line 56 toUtmUps8.lat: 28.078790\n    test 282 line 56 toUtmUps8.lon: 48.684350\n\n    test skipped (10): line 57 toUtmUps8.'84.986930137199 2.067177857261 20163.0752214330146 9438635.9888499043815 2.059277291707588222 .99960496589466017622'\n    test 283 line 58 toUtmUps8.easting: 3447670.550785\n    test 284 line 58 toUtmUps8.northing: 3680238.888223\n    test 285 line 58 toUtmUps8.gamma: 17.934948\n    test 286 line 58 toUtmUps8.scale: 1.149831\n    test 287 line 58 toUtmUps8.lat: 28.473948\n    test 288 line 58 toUtmUps8.lon: 34.127306\n    test 289 line 59 toUtmUps8.easting: 3396522.906798\n    test 290 line 59 toUtmUps8.northing: 8093659.687593\n    test 291 line 59 toUtmUps8.gamma: 57.747117\n    test 292 line 59 toUtmUps8.scale: 1.144006\n    test 293 line 59 toUtmUps8.lat: 56.629354\n    test 294 line 59 toUtmUps8.lon: 62.196474\n    test 295 line 60 toUtmUps8.easting: 11249894.100794  FAILED, KNOWN, expected 11249894.100784\n    test 296 line 60 toUtmUps8.northing: 1619226.506360  FAILED, KNOWN, expected 1619226.506299\n    test 297 line 60 toUtmUps8.gamma: 14.210358\n    test 298 line 60 toUtmUps8.scale: 3.048347\n    test 299 line 60 toUtmUps8.lat: 4.747762\n    test 300 line 60 toUtmUps8.lon: 70.932555\n    test 301 line 61 toUtmUps8.easting: 6808805.230950\n    test 302 line 61 toUtmUps8.northing: 8044779.777369\n    test 303 line 61 toUtmUps8.gamma: 68.242008\n    test 304 line 61 toUtmUps8.scale: 1.621464\n    test 305 line 61 toUtmUps8.lat: 35.882113\n    test 306 line 61 toUtmUps8.lon: 76.741849\n    test 307 line 62 toUtmUps8.easting: 2306021.556506\n    test 308 line 62 toUtmUps8.northing: 757191.592866\n    test 309 line 62 toUtmUps8.gamma: 2.385686\n    test 310 line 62 toUtmUps8.scale: 1.066159\n    test 311 line 62 toUtmUps8.lat: 6.420705\n    test 312 line 62 toUtmUps8.lon: 20.416028\n    test 313 line 63 toUtmUps8.easting: 1547406.313862\n    test 314 line 63 toUtmUps8.northing: 6048712.751824\n    test 315 line 63 toUtmUps8.gamma: 18.474372\n    test 316 line 63 toUtmUps8.scale: 1.029123\n    test 317 line 63 toUtmUps8.lat: 52.335248\n    test 318 line 63 toUtmUps8.lon: 22.879294\n    test 319 line 64 toUtmUps8.easting: 2430467.650383\n    test 320 line 64 toUtmUps8.northing: 7557167.613972\n    test 321 line 64 toUtmUps8.gamma: 42.110021\n    test 322 line 64 toUtmUps8.scale: 1.072759\n    test 323 line 64 toUtmUps8.lat: 59.846391\n    test 324 line 64 toUtmUps8.lon: 46.262536\n    test 325 line 65 toUtmUps8.easting: 2334053.905830\n    test 326 line 65 toUtmUps8.northing: 1948076.966582\n    test 327 line 65 toUtmUps8.gamma: 6.353185\n    test 328 line 65 toUtmUps8.scale: 1.067733\n    test 329 line 65 toUtmUps8.lat: 16.461790\n    test 330 line 65 toUtmUps8.lon: 21.433269\n    test 331 line 66 toUtmUps8.easting: 5564175.186737\n    test 332 line 66 toUtmUps8.northing: 1836851.660412\n    test 333 line 66 toUtmUps8.gamma: 11.870682\n    test 334 line 66 toUtmUps8.scale: 1.408265\n    test 335 line 66 toUtmUps8.lat: 11.707905\n    test 336 line 66 toUtmUps8.lon: 45.827075\n    test 337 line 67 toUtmUps8.easting: 6118505.590359\n    test 338 line 67 toUtmUps8.northing: 7631684.552421\n    test 339 line 67 toUtmUps8.gamma: 62.477323\n    test 340 line 67 toUtmUps8.scale: 1.493420\n    test 341 line 67 toUtmUps8.lat: 38.519075\n    test 342 line 67 toUtmUps8.lon: 71.935918\n\n    test skipped (11): line 68 toUtmUps8.'34.264007222954 82.647878110272 7365359.2946646287171 8818194.4515306837741 77.207042218974141605 1.73763853091849729372'\n    test 343 line 69 toUtmUps8.easting: 36187.342415\n    test 344 line 69 toUtmUps8.northing: 2142565.324802\n    test 345 line 69 toUtmUps8.gamma: 0.114334\n    test 346 line 69 toUtmUps8.scale: 0.999616\n    test 347 line 69 toUtmUps8.lat: 19.376880\n    test 348 line 69 toUtmUps8.lon: 0.344605\n    test 349 line 70 toUtmUps8.easting: 2380328.546851\n    test 350 line 70 toUtmUps8.northing: 8440109.872384\n    test 351 line 70 toUtmUps8.gamma: 55.076067\n    test 352 line 70 toUtmUps8.scale: 1.069658\n    test 353 line 70 toUtmUps8.lat: 65.075805\n    test 354 line 70 toUtmUps8.lon: 57.653438\n    test 355 line 71 toUtmUps8.easting: 582511.608826\n    test 356 line 71 toUtmUps8.northing: 8876047.217071\n    test 357 line 71 toUtmUps8.gamma: 27.133300\n    test 358 line 71 toUtmUps8.scale: 1.003749\n    test 359 line 71 toUtmUps8.lat: 78.691870\n    test 360 line 71 toUtmUps8.lon: 27.591736\n    test 361 line 72 toUtmUps8.easting: 899441.350477\n    test 362 line 72 toUtmUps8.northing: 4582046.430516\n    test 363 line 72 toUtmUps8.gamma: 7.031211\n    test 364 line 72 toUtmUps8.scale: 1.009573\n    test 365 line 72 toUtmUps8.lat: 40.893022\n    test 366 line 72 toUtmUps8.lon: 10.668804\n\n    test skipped (12): line 73 toUtmUps8.'48.914278679322 87.35926802682 5022485.1243369246483 9741774.9337207800497 86.505947369926030588 1.32369954850478170836'\n    test 367 line 74 toUtmUps8.easting: 6701004.587204\n    test 368 line 74 toUtmUps8.northing: 2954368.258231\n    test 369 line 74 toUtmUps8.gamma: 21.560153\n    test 370 line 74 toUtmUps8.scale: 1.608554\n    test 371 line 74 toUtmUps8.lat: 16.208377\n    test 372 line 74 toUtmUps8.lon: 54.494282\n    test 373 line 75 toUtmUps8.easting: 454986.218897\n    test 374 line 75 toUtmUps8.northing: 4885087.887884\n    test 375 line 75 toUtmUps8.gamma: 3.945648\n    test 376 line 75 toUtmUps8.scale: 1.002147\n    test 377 line 75 toUtmUps8.lat: 43.977936\n    test 378 line 75 toUtmUps8.lon: 5.672541\n\n    test skipped (13): line 76 toUtmUps8.'26.850860749352 82.834479937822 8903956.1403106503714 8470608.5774824981183 74.723116471645531699 2.13131124920824155268'\n    test 379 line 77 toUtmUps8.easting: 1547627.594741\n    test 380 line 77 toUtmUps8.northing: 6036584.538347\n    test 381 line 77 toUtmUps8.gamma: 18.407629\n    test 382 line 77 toUtmUps8.scale: 1.029132\n    test 383 line 77 toUtmUps8.lat: 52.234165\n    test 384 line 77 toUtmUps8.lon: 22.827655\n    test 385 line 78 toUtmUps8.easting: 5221488.778597\n    test 386 line 78 toUtmUps8.northing: 1762592.044392\n    test 387 line 78 toUtmUps8.gamma: 10.927880\n    test 388 line 78 toUtmUps8.scale: 1.356721\n    test 389 line 78 toUtmUps8.lat: 11.674646\n    test 390 line 78 toUtmUps8.lon: 43.500147\n    test 391 line 79 toUtmUps8.easting: 4880570.297161\n    test 392 line 79 toUtmUps8.northing: 3325433.988867\n    test 393 line 79 toUtmUps8.gamma: 20.469862\n    test 394 line 79 toUtmUps8.scale: 1.308476\n    test 395 line 79 toUtmUps8.lat: 22.492753\n    test 396 line 79 toUtmUps8.lon: 44.179153\n\n    test skipped (14): line 80 toUtmUps8.'.910999463005 88.548822916123 23930680.0826936110445 7491462.0990379651261 75.937628056628715446 15.55636485152285563369'\n    test 397 line 81 toUtmUps8.easting: 71519.450458\n    test 398 line 81 toUtmUps8.northing: 3654740.444852\n    test 399 line 81 toUtmUps8.gamma: 0.417448\n    test 400 line 81 toUtmUps8.scale: 0.999663\n    test 401 line 81 toUtmUps8.lat: 33.028802\n    test 402 line 81 toUtmUps8.lon: 0.765843\n    test 403 line 82 toUtmUps8.easting: 4152797.795220\n    test 404 line 82 toUtmUps8.northing: 7823098.502751\n    test 405 line 82 toUtmUps8.gamma: 58.238901\n    test 406 line 82 toUtmUps8.scale: 1.218052\n    test 407 line 82 toUtmUps8.lat: 50.649195\n    test 408 line 82 toUtmUps8.lon: 64.389076\n    test 409 line 83 toUtmUps8.easting: 2926725.707639\n    test 410 line 83 toUtmUps8.northing: 7904918.072844\n    test 411 line 83 toUtmUps8.gamma: 51.592748\n    test 412 line 83 toUtmUps8.scale: 1.106206\n    test 413 line 83 toUtmUps8.lat: 58.820640\n    test 414 line 83 toUtmUps8.lon: 55.841048\n    test 415 line 84 toUtmUps8.easting: 1325509.113869\n    test 416 line 84 toUtmUps8.northing: 9675214.948213\n    test 417 line 84 toUtmUps8.gamma: 76.116213\n    test 418 line 84 toUtmUps8.scale: 1.021136\n    test 419 line 84 toUtmUps8.lat: 77.865762\n    test 420 line 84 toUtmUps8.lon: 76.414618\n    test 421 line 85 toUtmUps8.easting: 3045296.448926\n    test 422 line 85 toUtmUps8.northing: 542153.443280\n    test 423 line 85 toUtmUps8.gamma: 2.185095\n    test 424 line 85 toUtmUps8.scale: 1.116664\n    test 425 line 85 toUtmUps8.lat: 4.389639\n    test 426 line 85 toUtmUps8.lon: 26.458976\n    test 427 line 86 toUtmUps8.easting: 11843870.887791  FAILED, KNOWN, expected 11843870.887518\n    test 428 line 86 toUtmUps8.northing: 5912803.073690  FAILED, KNOWN, expected 5912803.073343\n    test 429 line 86 toUtmUps8.gamma: 52.814260  FAILED, KNOWN, expected 52.814259\n    test 430 line 86 toUtmUps8.scale: 3.267256\n    test 431 line 86 toUtmUps8.lat: 13.924448\n    test 432 line 86 toUtmUps8.lon: 79.017873\n    test 433 line 87 toUtmUps8.easting: 8891099.704936\n    test 434 line 87 toUtmUps8.northing: 162160.142227\n    test 435 line 87 toUtmUps8.gamma: 1.312094\n    test 436 line 87 toUtmUps8.scale: 2.157363\n    test 437 line 87 toUtmUps8.lat: 0.679713\n    test 438 line 87 toUtmUps8.lon: 62.036792\n    test 439 line 88 toUtmUps8.easting: 4784814.214449\n    test 440 line 88 toUtmUps8.northing: 2984497.432580\n    test 441 line 88 toUtmUps8.gamma: 17.946545\n    test 442 line 88 toUtmUps8.scale: 1.296116\n    test 443 line 88 toUtmUps8.lat: 20.478281\n    test 444 line 88 toUtmUps8.lon: 42.678234\n    test 445 line 89 toUtmUps8.easting: 1772074.682154\n    test 446 line 89 toUtmUps8.northing: 9491552.560143\n    test 447 line 89 toUtmUps8.gamma: 73.634830\n    test 448 line 89 toUtmUps8.scale: 1.038202\n    test 449 line 89 toUtmUps8.lat: 73.695703\n    test 450 line 89 toUtmUps8.lon: 74.259097\n    test 451 line 90 toUtmUps8.easting: 1907649.782106\n    test 452 line 90 toUtmUps8.northing: 6994232.429379\n    test 453 line 90 toUtmUps8.gamma: 29.718929\n    test 454 line 90 toUtmUps8.scale: 1.044503\n    test 455 line 90 toUtmUps8.lat: 58.569370\n    test 456 line 90 toUtmUps8.lon: 33.777549\n    test 457 line 91 toUtmUps8.easting: 2084423.818962\n    test 458 line 91 toUtmUps8.northing: 2211816.035619\n    test 459 line 91 toUtmUps8.gamma: 6.556448\n    test 460 line 91 toUtmUps8.scale: 1.053793\n    test 461 line 91 toUtmUps8.lat: 18.933881\n    test 462 line 91 toUtmUps8.lon: 19.492695\n    test 463 line 92 toUtmUps8.easting: 1064373.671729\n    test 464 line 92 toUtmUps8.northing: 7812482.547461\n    test 465 line 92 toUtmUps8.gamma: 24.874124\n    test 466 line 92 toUtmUps8.scale: 1.013490\n    test 467 line 92 toUtmUps8.lat: 68.317934\n    test 468 line 92 toUtmUps8.lon: 26.515687\n\n    test skipped (15): line 93 toUtmUps8.'50.641941364984 87.111556505544 4770385.4792965339274 9734318.9029801439364 86.27311877223132818 1.29055338238288419467'\n    test 469 line 94 toUtmUps8.easting: 6398096.677297\n    test 470 line 94 toUtmUps8.northing: 4410894.752104\n    test 471 line 94 toUtmUps8.gamma: 32.558023\n    test 472 line 94 toUtmUps8.scale: 1.548004\n    test 473 line 94 toUtmUps8.lat: 24.411298\n    test 474 line 94 toUtmUps8.lon: 56.881823\n    test 475 line 95 toUtmUps8.easting: 3138623.300415\n    test 476 line 95 toUtmUps8.northing: 3082960.600798\n    test 477 line 95 toUtmUps8.gamma: 13.557672\n    test 478 line 95 toUtmUps8.scale: 1.123724\n    test 479 line 95 toUtmUps8.lat: 24.571871\n    test 480 line 95 toUtmUps8.lon: 30.073097\n    test 481 line 96 toUtmUps8.easting: 2748325.794651\n    test 482 line 96 toUtmUps8.northing: 4202811.912668\n    test 483 line 96 toUtmUps8.gamma: 17.578706\n    test 484 line 96 toUtmUps8.scale: 1.094102\n    test 485 line 96 toUtmUps8.lat: 34.202576\n    test 486 line 96 toUtmUps8.lon: 29.383166\n    test 487 line 97 toUtmUps8.easting: 6677830.630367\n    test 488 line 97 toUtmUps8.northing: 5350071.837395\n    test 489 line 97 toUtmUps8.gamma: 41.306641\n    test 490 line 97 toUtmUps8.scale: 1.599774\n    test 491 line 97 toUtmUps8.lat: 27.756285\n    test 492 line 97 toUtmUps8.lon: 61.881905\n    test 493 line 98 toUtmUps8.easting: 5941536.667431\n    test 494 line 98 toUtmUps8.northing: 3293112.175140\n    test 495 line 98 toUtmUps8.gamma: 22.752845\n    test 496 line 98 toUtmUps8.scale: 1.468473\n    test 497 line 98 toUtmUps8.lat: 19.742270\n    test 498 line 98 toUtmUps8.lon: 50.957821\n    test 499 line 99 toUtmUps8.easting: 3152481.792567\n    test 500 line 99 toUtmUps8.northing: 5903048.837978\n    test 501 line 99 toUtmUps8.gamma: 31.494606\n    test 502 line 99 toUtmUps8.scale: 1.124085\n    test 503 line 99 toUtmUps8.lat: 45.453582\n    test 504 line 99 toUtmUps8.lon: 40.659833\n    test 505 line 100 toUtmUps8.easting: 10460475.897726  FAILED, KNOWN, expected 10460475.897730\n    test 506 line 100 toUtmUps8.northing: 2553463.624385  FAILED, KNOWN, expected 2553463.624391\n    test 507 line 100 toUtmUps8.gamma: 21.965869\n    test 508 line 100 toUtmUps8.scale: 2.700296\n    test 509 line 100 toUtmUps8.lat: 8.322144\n    test 510 line 100 toUtmUps8.lon: 69.488157\n    test 511 line 101 toUtmUps8.easting: 1964010.778021\n    test 512 line 101 toUtmUps8.northing: 5634042.923056\n    test 513 line 101 toUtmUps8.gamma: 20.117800\n    test 514 line 101 toUtmUps8.scale: 1.047344\n    test 515 line 101 toUtmUps8.lat: 47.749831\n    test 516 line 101 toUtmUps8.lon: 26.322002\n    test 517 line 102 toUtmUps8.easting: 2065306.424934\n    test 518 line 102 toUtmUps8.northing: 2135008.468651\n    test 519 line 102 toUtmUps8.gamma: 6.258981\n    test 520 line 102 toUtmUps8.scale: 1.052800\n    test 521 line 102 toUtmUps8.lat: 18.297493\n    test 522 line 102 toUtmUps8.lon: 19.244669\n    test 523 line 103 toUtmUps8.easting: 5127738.132976\n    test 524 line 103 toUtmUps8.northing: 6793804.304411\n    test 525 line 103 toUtmUps8.gamma: 50.557915\n    test 526 line 103 toUtmUps8.scale: 1.339412\n    test 527 line 103 toUtmUps8.lat: 40.834541\n    test 528 line 103 toUtmUps8.lon: 61.650750\n    test 529 line 104 toUtmUps8.easting: 8385525.148166\n    test 530 line 104 toUtmUps8.northing: 6924932.344306\n    test 531 line 104 toUtmUps8.gamma: 59.087561\n    test 532 line 104 toUtmUps8.scale: 1.990364\n    test 533 line 104 toUtmUps8.lat: 26.273247\n    test 534 line 104 toUtmUps8.lon: 74.926694\n    test 535 line 105 toUtmUps8.easting: 2297510.791909\n    test 536 line 105 toUtmUps8.northing: 2805666.962834\n    test 537 line 105 toUtmUps8.gamma: 9.301553\n    test 538 line 105 toUtmUps8.scale: 1.065508\n    test 539 line 105 toUtmUps8.lat: 23.698347\n    test 540 line 105 toUtmUps8.lon: 22.155657\n\n    test skipped (16): line 106 toUtmUps8.'12.364112546807 86.348578425071 13749544.9176345767153 8288728.3846500523233 75.033969786420407131 4.27058754359004466627'\n    test 541 line 107 toUtmUps8.easting: 317518.455546\n    test 542 line 107 toUtmUps8.northing: 1097517.583745\n    test 543 line 107 toUtmUps8.gamma: 0.499004\n    test 544 line 107 toUtmUps8.scale: 1.000848\n    test 545 line 107 toUtmUps8.lat: 9.916091\n    test 546 line 107 toUtmUps8.lon: 2.895277\n    test 547 line 108 toUtmUps8.easting: 3856035.184888\n    test 548 line 108 toUtmUps8.northing: 9141364.450290\n    test 549 line 108 toUtmUps8.gamma: 75.972763\n    test 550 line 108 toUtmUps8.scale: 1.186786\n    test 551 line 108 toUtmUps8.lat: 56.553876\n    test 552 line 108 toUtmUps8.lon: 78.215077\n    test 553 line 109 toUtmUps8.easting: 1457484.942823\n    test 554 line 109 toUtmUps8.northing: 9385297.101973\n    test 555 line 109 toUtmUps8.gamma: 66.784662\n    test 556 line 109 toUtmUps8.scale: 1.025660\n    test 557 line 109 toUtmUps8.lat: 75.957631\n    test 558 line 109 toUtmUps8.lon: 67.407383\n    test 559 line 110 toUtmUps8.easting: 1304934.901841\n    test 560 line 110 toUtmUps8.northing: 3604655.155715\n    test 561 line 110 toUtmUps8.gamma: 7.343989\n    test 562 line 110 toUtmUps8.scale: 1.020672\n    test 563 line 110 toUtmUps8.lat: 31.826531\n    test 564 line 110 toUtmUps8.lon: 13.731050\n    test 565 line 111 toUtmUps8.easting: 1399093.491792\n    test 566 line 111 toUtmUps8.northing: 8314607.120342\n    test 567 line 111 toUtmUps8.gamma: 38.630161\n    test 568 line 111 toUtmUps8.scale: 1.023625\n    test 569 line 111 toUtmUps8.lat: 70.542985\n    test 570 line 111 toUtmUps8.lon: 40.282055\n    test 571 line 112 toUtmUps8.easting: 356983.618540\n    test 572 line 112 toUtmUps8.northing: 4282309.048994\n    test 573 line 112 toUtmUps8.gamma: 2.561485\n    test 574 line 112 toUtmUps8.scale: 1.001170\n    test 575 line 112 toUtmUps8.lat: 38.617487\n    test 576 line 112 toUtmUps8.lon: 4.099838\n    test 577 line 113 toUtmUps8.easting: 9952911.325092  FAILED, KNOWN, expected 9952911.325091\n    test 578 line 113 toUtmUps8.northing: 1510288.212230  FAILED, KNOWN, expected 1510288.212229\n    test 579 line 113 toUtmUps8.gamma: 12.752154\n    test 580 line 113 toUtmUps8.scale: 2.511357\n    test 581 line 113 toUtmUps8.lat: 5.389447\n    test 582 line 113 toUtmUps8.lon: 66.729612\n    test 583 line 114 toUtmUps8.easting: 6367592.504007\n    test 584 line 114 toUtmUps8.northing: 1200437.077672\n    test 585 line 114 toUtmUps8.gamma: 8.338041\n    test 586 line 114 toUtmUps8.scale: 1.546210\n    test 587 line 114 toUtmUps8.lat: 6.995168\n    test 588 line 114 toUtmUps8.lon: 50.014763\n    test 589 line 115 toUtmUps8.easting: 4391263.676460\n    test 590 line 115 toUtmUps8.northing: 6325455.989408\n    test 591 line 115 toUtmUps8.gamma: 42.653541\n    test 592 line 115 toUtmUps8.scale: 1.245560\n    test 593 line 115 toUtmUps8.lat: 42.321894\n    test 594 line 115 toUtmUps8.lon: 53.784040\n    test 595 line 116 toUtmUps8.easting: 6209880.527527\n    test 596 line 116 toUtmUps8.northing: 2154754.449747\n    test 597 line 116 toUtmUps8.gamma: 14.919512\n    test 598 line 116 toUtmUps8.scale: 1.516560\n    test 599 line 116 toUtmUps8.lat: 12.698515\n    test 600 line 116 toUtmUps8.lon: 50.242047\n    test 601 line 117 toUtmUps8.easting: 1507053.688772\n    test 602 line 117 toUtmUps8.northing: 6261383.513280\n    test 603 line 117 toUtmUps8.gamma: 19.280373\n    test 604 line 117 toUtmUps8.scale: 1.027584\n    test 605 line 117 toUtmUps8.lat: 54.207636\n    test 606 line 117 toUtmUps8.lon: 23.325731\n    test 607 line 118 toUtmUps8.easting: 8332725.003777\n    test 608 line 118 toUtmUps8.northing: 3002712.329753\n    test 609 line 118 toUtmUps8.gamma: 24.059212\n    test 610 line 118 toUtmUps8.scale: 1.990450\n    test 611 line 118 toUtmUps8.lat: 13.224787\n    test 612 line 118 toUtmUps8.lon: 62.426698\n    test 613 line 119 toUtmUps8.easting: 3958910.085235\n    test 614 line 119 toUtmUps8.northing: 3462284.926102\n    test 615 line 119 toUtmUps8.gamma: 18.546398\n    test 616 line 119 toUtmUps8.scale: 1.199351\n    test 617 line 119 toUtmUps8.lat: 25.650282\n    test 618 line 119 toUtmUps8.lon: 37.710391\n\n    test skipped (17): line 120 toUtmUps8.'20.684773383075 82.849734261238 10452892.2820830090734 8000059.6051139389546 71.07524025411428855 2.6501109339363854772'\n    test 619 line 121 toUtmUps8.easting: 496148.253731\n    test 620 line 121 toUtmUps8.northing: 6388503.365043\n    test 621 line 121 toUtmUps8.gamma: 6.970955\n    test 622 line 121 toUtmUps8.scale: 1.002620\n    test 623 line 121 toUtmUps8.lat: 57.367533\n    test 624 line 121 toUtmUps8.lon: 8.260866\n    test 625 line 122 toUtmUps8.easting: 7375792.085850\n    test 626 line 122 toUtmUps8.northing: 5544624.072155\n    test 627 line 122 toUtmUps8.gamma: 44.510851\n    test 628 line 122 toUtmUps8.scale: 1.745898\n    test 629 line 122 toUtmUps8.lat: 25.958757\n    test 630 line 122 toUtmUps8.lon: 65.760477\n    test 631 line 123 toUtmUps8.easting: 2826258.041979\n    test 632 line 123 toUtmUps8.northing: 5167759.816959\n    test 633 line 123 toUtmUps8.gamma: 23.783897\n    test 634 line 123 toUtmUps8.scale: 1.099415\n    test 635 line 123 toUtmUps8.lat: 41.395848\n    test 636 line 123 toUtmUps8.lon: 33.661790\n    test 637 line 124 toUtmUps8.easting: 3958563.378851\n    test 638 line 124 toUtmUps8.northing: 8499923.231243\n    test 639 line 124 toUtmUps8.gamma: 66.570945\n    test 640 line 124 toUtmUps8.scale: 1.197296\n    test 641 line 124 toUtmUps8.lat: 54.266617\n    test 642 line 124 toUtmUps8.lon: 70.602199\n    test 643 line 125 toUtmUps8.easting: 4408189.533462\n    test 644 line 125 toUtmUps8.northing: 8046312.003642\n    test 645 line 125 toUtmUps8.gamma: 62.216959\n    test 646 line 125 toUtmUps8.scale: 1.246750\n    test 647 line 125 toUtmUps8.lat: 49.840393\n    test 648 line 125 toUtmUps8.lon: 68.036728\n    test 649 line 126 toUtmUps8.easting: 3629225.627512\n    test 650 line 126 toUtmUps8.northing: 6371258.454645\n    test 651 line 126 toUtmUps8.gamma: 38.881675\n    test 652 line 126 toUtmUps8.scale: 1.165511\n    test 653 line 126 toUtmUps8.lat: 46.306035\n    test 654 line 126 toUtmUps8.lon: 48.085828\n    test 655 line 127 toUtmUps8.easting: 602838.450710\n    test 656 line 127 toUtmUps8.northing: 4851370.637205\n    test 657 line 127 toUtmUps8.gamma: 5.160395\n    test 658 line 127 toUtmUps8.scale: 1.004073\n    test 659 line 127 toUtmUps8.lat: 43.570988\n    test 660 line 127 toUtmUps8.lon: 7.464494\n    test 661 line 128 toUtmUps8.easting: 764616.665051\n    test 662 line 128 toUtmUps8.northing: 2164299.337945\n    test 663 line 128 toUtmUps8.gamma: 2.429300\n    test 664 line 128 toUtmUps8.scale: 1.006835\n    test 665 line 128 toUtmUps8.lat: 19.427290\n    test 666 line 128 toUtmUps8.lon: 7.268247\n    test 667 line 129 toUtmUps8.easting: 5048953.021931\n    test 668 line 129 toUtmUps8.northing: 1885974.057398\n    test 669 line 129 toUtmUps8.gamma: 11.459804\n    test 670 line 129 toUtmUps8.scale: 1.332207\n    test 671 line 129 toUtmUps8.lat: 12.713794\n    test 672 line 129 toUtmUps8.lon: 42.507018\n    test 673 line 130 toUtmUps8.easting: 2293996.601155\n    test 674 line 130 toUtmUps8.northing: 2392408.644221\n    test 675 line 130 toUtmUps8.gamma: 7.791838\n    test 676 line 130 toUtmUps8.scale: 1.065348\n    test 677 line 130 toUtmUps8.lat: 20.238782\n    test 678 line 130 toUtmUps8.lon: 21.566068\n    test 679 line 131 toUtmUps8.easting: 1530603.839418\n    test 680 line 131 toUtmUps8.northing: 7287841.459898\n    test 681 line 131 toUtmUps8.gamma: 27.502921\n    test 682 line 131 toUtmUps8.scale: 1.028416\n    test 683 line 131 toUtmUps8.lat: 62.367847\n    test 684 line 131 toUtmUps8.lon: 30.438849\n    test 685 line 132 toUtmUps8.easting: 2660000.093152\n    test 686 line 132 toUtmUps8.northing: 5161982.213248\n    test 687 line 132 toUtmUps8.gamma: 22.629836\n    test 688 line 132 toUtmUps8.scale: 1.087851\n    test 689 line 132 toUtmUps8.lat: 41.891569\n    test 690 line 132 toUtmUps8.lon: 31.959547\n    test 691 line 133 toUtmUps8.easting: 5037478.329414\n    test 692 line 133 toUtmUps8.northing: 8768172.379908\n    test 693 line 133 toUtmUps8.gamma: 73.511182\n    test 694 line 133 toUtmUps8.scale: 1.325919\n    test 695 line 133 toUtmUps8.lat: 47.664248\n    test 696 line 133 toUtmUps8.lon: 77.630062\n    test 697 line 134 toUtmUps8.easting: 2289650.957799\n    test 698 line 134 toUtmUps8.northing: 8784328.593607\n    test 699 line 134 toUtmUps8.gamma: 60.786067\n    test 700 line 134 toUtmUps8.scale: 1.064346\n    test 701 line 134 toUtmUps8.lat: 67.259559\n    test 702 line 134 toUtmUps8.lon: 62.715293\n    test 703 line 135 toUtmUps8.easting: 647913.889744\n    test 704 line 135 toUtmUps8.northing: 6742382.228217\n    test 705 line 135 toUtmUps8.gamma: 10.252667\n    test 706 line 135 toUtmUps8.scale: 1.004748\n    test 707 line 135 toUtmUps8.lat: 60.295381\n    test 708 line 135 toUtmUps8.lon: 11.763097\n    test 709 line 136 toUtmUps8.easting: 1118372.698566\n    test 710 line 136 toUtmUps8.northing: 9040627.942263\n    test 711 line 136 toUtmUps8.gamma: 48.936803\n    test 712 line 136 toUtmUps8.scale: 1.014920\n    test 713 line 136 toUtmUps8.lat: 76.878914\n    test 714 line 136 toUtmUps8.lon: 49.685773\n    test 715 line 137 toUtmUps8.easting: 440696.510070\n    test 716 line 137 toUtmUps8.northing: 5500355.826297\n    test 717 line 137 toUtmUps8.gamma: 4.636104\n    test 718 line 137 toUtmUps8.scale: 1.001986\n    test 719 line 137 toUtmUps8.lat: 49.495349\n    test 720 line 137 toUtmUps8.lon: 6.087551\n    test 721 line 138 toUtmUps8.easting: 601728.149727\n    test 722 line 138 toUtmUps8.northing: 9095352.048149\n    test 723 line 138 toUtmUps8.gamma: 33.435771\n    test 724 line 138 toUtmUps8.scale: 1.004027\n    test 725 line 138 toUtmUps8.lat: 80.297265\n    test 726 line 138 toUtmUps8.lon: 33.816372\n    test 727 line 139 toUtmUps8.easting: 3481444.777827\n    test 728 line 139 toUtmUps8.northing: 291665.708749\n    test 729 line 139 toUtmUps8.gamma: 1.314726\n    test 730 line 139 toUtmUps8.scale: 1.153534\n    test 731 line 139 toUtmUps8.lat: 2.286437\n    test 732 line 139 toUtmUps8.lon: 29.855149\n    test 733 line 140 toUtmUps8.easting: 3515304.901524\n    test 734 line 140 toUtmUps8.northing: 1443981.882918\n    test 735 line 140 toUtmUps8.gamma: 6.641638\n    test 736 line 140 toUtmUps8.scale: 1.156509\n    test 737 line 140 toUtmUps8.lat: 11.264457\n    test 738 line 140 toUtmUps8.lon: 30.743907\n    test 739 line 141 toUtmUps8.easting: 160012.186959\n    test 740 line 141 toUtmUps8.northing: 3922609.253231\n    test 741 line 141 toUtmUps8.gamma: 1.022225\n    test 742 line 141 toUtmUps8.scale: 0.999916\n    test 743 line 141 toUtmUps8.lat: 35.434073\n    test 744 line 141 toUtmUps8.lon: 1.762795\n    test 745 line 142 toUtmUps8.easting: 4163744.245622\n    test 746 line 142 toUtmUps8.northing: 936884.674804\n    test 747 line 142 toUtmUps8.gamma: 4.892559\n    test 748 line 142 toUtmUps8.scale: 1.222164\n    test 749 line 142 toUtmUps8.lat: 6.923695\n    test 750 line 142 toUtmUps8.lon: 35.289456\n    test 751 line 143 toUtmUps8.easting: 6155200.017926\n    test 752 line 143 toUtmUps8.northing: 6926306.628390\n    test 753 line 143 toUtmUps8.gamma: 55.103258\n    test 754 line 143 toUtmUps8.scale: 1.500556\n    test 755 line 143 toUtmUps8.lat: 36.129672\n    test 756 line 143 toUtmUps8.lon: 67.533176\n\n    test skipped (18): line 144 toUtmUps8.'4.406528980638 81.965734206053 16263383.2854400911299 3591296.7313406507021 36.040254103487111035 6.58928781751888396522'\n\n    test skipped (19): line 145 toUtmUps8.'8.474589009114 81.129945130597 14220995.5153984992101 5100587.4575033509156 47.314258427760984573 4.69320221531225352172'\n    test 757 line 146 toUtmUps8.easting: 3173034.802372\n    test 758 line 146 toUtmUps8.northing: 7263421.942957\n    test 759 line 146 toUtmUps8.gamma: 45.215808\n    test 760 line 146 toUtmUps8.scale: 1.125410\n    test 761 line 146 toUtmUps8.lat: 53.907276\n    test 762 line 146 toUtmUps8.lon: 51.252904\n\n    test skipped (20): line 147 toUtmUps8.'22.120544817855 85.756781608119 10253274.0922039670098 8867574.2997916978265 79.198250285604314115 2.57237240666878171579'\n    test 763 line 148 toUtmUps8.easting: 2415561.483230\n    test 764 line 148 toUtmUps8.northing: 8813225.217097\n    test 765 line 148 toUtmUps8.gamma: 62.548978\n    test 766 line 148 toUtmUps8.scale: 1.071748\n    test 767 line 148 toUtmUps8.lat: 66.444100\n    test 768 line 148 toUtmUps8.lon: 64.532960\n    test 769 line 149 toUtmUps8.easting: 9589179.293294  FAILED, KNOWN, expected 9589179.293295\n    test 770 line 149 toUtmUps8.northing: 1777680.784144  FAILED, KNOWN, expected 1777680.784143\n    test 771 line 149 toUtmUps8.gamma: 14.838483\n    test 772 line 149 toUtmUps8.scale: 2.380716\n    test 773 line 149 toUtmUps8.lat: 6.670965\n    test 774 line 149 toUtmUps8.lon: 65.660408\n    test 775 line 150 toUtmUps8.easting: 727939.438391\n    test 776 line 150 toUtmUps8.northing: 3684363.236810\n    test 777 line 150 toUtmUps8.gamma: 4.266227\n    test 778 line 150 toUtmUps8.scale: 1.006140\n    test 779 line 150 toUtmUps8.lat: 33.054057\n    test 780 line 150 toUtmUps8.lon: 7.787458\n    test 781 line 151 toUtmUps8.easting: 1250765.991085\n    test 782 line 151 toUtmUps8.northing: 792869.242719\n    test 783 line 151 toUtmUps8.gamma: 1.396497\n    test 784 line 151 toUtmUps8.scale: 1.019026\n    test 785 line 151 toUtmUps8.lat: 7.035525\n    test 786 line 151 toUtmUps8.lon: 11.253707\n    test 787 line 152 toUtmUps8.easting: 710421.705887\n    test 788 line 152 toUtmUps8.northing: 5019406.075928\n    test 789 line 152 toUtmUps8.gamma: 6.393949\n    test 790 line 152 toUtmUps8.scale: 1.005812\n    test 791 line 152 toUtmUps8.lat: 44.971340\n    test 792 line 152 toUtmUps8.lon: 9.009304\n    test 793 line 153 toUtmUps8.easting: 4600995.074643\n    test 794 line 153 toUtmUps8.northing: 4505712.084593\n    test 795 line 153 toUtmUps8.gamma: 27.997458\n    test 796 line 153 toUtmUps8.scale: 1.271841\n    test 797 line 153 toUtmUps8.lat: 30.821397\n    test 798 line 153 toUtmUps8.lon: 45.970577\n    test 799 line 154 toUtmUps8.easting: 557642.627782\n    test 800 line 154 toUtmUps8.northing: 7006911.251644\n    test 801 line 154 toUtmUps8.gamma: 9.769903\n    test 802 line 154 toUtmUps8.scale: 1.003411\n    test 803 line 154 toUtmUps8.lat: 62.763886\n    test 804 line 154 toUtmUps8.lon: 10.960144\n    test 805 line 155 toUtmUps8.easting: 4635062.294291\n    test 806 line 155 toUtmUps8.northing: 2702556.153311\n    test 807 line 155 toUtmUps8.gamma: 15.779547\n    test 808 line 155 toUtmUps8.scale: 1.277178\n    test 809 line 155 toUtmUps8.lat: 18.888611\n    test 810 line 155 toUtmUps8.lon: 41.009871\n\n    test skipped (21): line 156 toUtmUps8.'7.524119461376 81.050715469439 14554962.2559189870471 4716639.9085720199214 44.192751352918149954 4.96001986321419027847'\n    test 811 line 157 toUtmUps8.easting: 882126.661736\n    test 812 line 157 toUtmUps8.northing: 7947612.369506\n    test 813 line 157 toUtmUps8.gamma: 22.429487\n    test 814 line 157 toUtmUps8.scale: 1.009132\n    test 815 line 157 toUtmUps8.lat: 70.063902\n    test 816 line 157 toUtmUps8.lon: 23.705255\n\n    test skipped (22): line 158 toUtmUps8.'3.556525834215 88.363529198819 20262021.6459832969292 8113827.8207957955275 76.936057264555500879 10.34909168211805703369'\n    test 817 line 159 toUtmUps8.easting: 6500508.399850\n    test 818 line 159 toUtmUps8.northing: 6956476.342368\n    test 819 line 159 toUtmUps8.gamma: 56.237116\n    test 820 line 159 toUtmUps8.scale: 1.563162\n    test 821 line 159 toUtmUps8.lat: 34.551257\n    test 822 line 159 toUtmUps8.lon: 69.111091\n    test 823 line 160 toUtmUps8.easting: 3884036.641314\n    test 824 line 160 toUtmUps8.northing: 6890167.411733\n    test 825 line 160 toUtmUps8.gamma: 45.760130\n    test 826 line 160 toUtmUps8.scale: 1.190167\n    test 827 line 160 toUtmUps8.lat: 47.929051\n    test 828 line 160 toUtmUps8.lon: 54.103418\n    test 829 line 161 toUtmUps8.easting: 217855.546078\n    test 830 line 161 toUtmUps8.northing: 6184108.122568\n    test 831 line 161 toUtmUps8.gamma: 2.870993\n    test 832 line 161 toUtmUps8.scale: 1.000182\n    test 833 line 161 toUtmUps8.lat: 55.753536\n    test 834 line 161 toUtmUps8.lon: 3.471798\n\n    test skipped (23): line 162 toUtmUps8.'18.530847071862 86.555312055898 11384139.290401676268 8893889.9495562311576 79.77485364572019046 3.02467156922968230025'\n    test 835 line 163 toUtmUps8.easting: 3469855.989805\n    test 836 line 163 toUtmUps8.northing: 7723193.799228\n    test 837 line 163 toUtmUps8.gamma: 53.114700\n    test 838 line 163 toUtmUps8.scale: 1.150540\n    test 839 line 163 toUtmUps8.lat: 54.510125\n    test 840 line 163 toUtmUps8.lon: 58.556056\n\n    test skipped (24): line 164 toUtmUps8.'42.864161881687 84.866325602975 5926165.994939154109 9385463.7327467371322 82.506981261616342016 1.45975761947329382411'\n    test 841 line 165 toUtmUps8.easting: 5798639.662224\n    test 842 line 165 toUtmUps8.northing: 5305387.640916\n    test 843 line 165 toUtmUps8.gamma: 38.617257\n    test 844 line 165 toUtmUps8.scale: 1.442263\n    test 845 line 165 toUtmUps8.lat: 30.911943\n    test 846 line 165 toUtmUps8.lon: 57.114102\n    test 847 line 166 toUtmUps8.easting: 9464.934388\n    test 848 line 166 toUtmUps8.northing: 6489121.624944\n    test 849 line 166 toUtmUps8.gamma: 0.138696\n    test 850 line 166 toUtmUps8.scale: 0.999601\n    test 851 line 166 toUtmUps8.lat: 58.542493\n    test 852 line 166 toUtmUps8.lon: 0.162593\n\n    test skipped (25): line 167 toUtmUps8.'15.022689088683 85.792615487152 12575834.2756139069875 8356610.8954857643175 75.235223160840771295 3.59944161831319404851'\n    test 853 line 168 toUtmUps8.easting: 2719653.543469\n    test 854 line 168 toUtmUps8.northing: 9362389.163495\n    test 855 line 168 toUtmUps8.gamma: 76.049670\n    test 856 line 168 toUtmUps8.scale: 1.091315\n    test 857 line 168 toUtmUps8.lat: 65.692275\n    test 858 line 168 toUtmUps8.lon: 77.241377\n    test 859 line 169 toUtmUps8.easting: 4845341.924698\n    test 860 line 169 toUtmUps8.northing: 8710522.326901\n    test 861 line 169 toUtmUps8.gamma: 72.320942\n    test 862 line 169 toUtmUps8.scale: 1.300382\n    test 863 line 169 toUtmUps8.lat: 48.806211\n    test 864 line 169 toUtmUps8.lon: 76.486365\n\n    test skipped (26): line 170 toUtmUps8.'56.436024794624 82.61156798689 3935261.5227628794258 9454271.6490618694486 81.162334302626197333 1.19476734082123451158'\n    test 865 line 171 toUtmUps8.easting: 7074299.823000\n    test 866 line 171 toUtmUps8.northing: 1648736.065055\n    test 867 line 171 toUtmUps8.gamma: 12.145925\n    test 868 line 171 toUtmUps8.scale: 1.687551\n    test 869 line 171 toUtmUps8.lat: 8.766053\n    test 870 line 171 toUtmUps8.lon: 54.367539\n    test 871 line 172 toUtmUps8.easting: 3689072.579308\n    test 872 line 172 toUtmUps8.northing: 2230802.665211\n    test 873 line 172 toUtmUps8.gamma: 10.856248\n    test 874 line 172 toUtmUps8.scale: 1.172689\n    test 875 line 172 toUtmUps8.lat: 17.095495\n    test 876 line 172 toUtmUps8.lon: 33.059128\n    test 877 line 173 toUtmUps8.easting: 8102565.885587\n    test 878 line 173 toUtmUps8.northing: 5167396.617580\n    test 879 line 173 toUtmUps8.gamma: 42.324886\n    test 880 line 173 toUtmUps8.scale: 1.921927\n    test 881 line 173 toUtmUps8.lat: 22.142861\n    test 882 line 173 toUtmUps8.lon: 67.200684\n    test 883 line 174 toUtmUps8.easting: 8181271.353564\n    test 884 line 174 toUtmUps8.northing: 4425436.547185\n    test 885 line 174 toUtmUps8.gamma: 35.900845\n    test 886 line 174 toUtmUps8.scale: 1.945017\n    test 887 line 174 toUtmUps8.lat: 19.222623\n    test 888 line 174 toUtmUps8.lon: 65.180785\n    test 889 line 175 toUtmUps8.easting: 767067.394003\n    test 890 line 175 toUtmUps8.northing: 3701745.857296\n    test 891 line 175 toUtmUps8.gamma: 4.519201\n    test 892 line 175 toUtmUps8.scale: 1.006863\n    test 893 line 175 toUtmUps8.lat: 33.182474\n    test 894 line 175 toUtmUps8.lon: 8.216952\n    test 895 line 176 toUtmUps8.easting: 6688114.168572\n    test 896 line 176 toUtmUps8.northing: 2052857.299639\n    test 897 line 176 toUtmUps8.gamma: 14.766191\n    test 898 line 176 toUtmUps8.scale: 1.607200\n    test 899 line 176 toUtmUps8.lat: 11.417963\n    test 900 line 176 toUtmUps8.lon: 52.808691\n    test 901 line 177 toUtmUps8.easting: 5608408.773761\n    test 902 line 177 toUtmUps8.northing: 3859055.659110\n    test 903 line 177 toUtmUps8.gamma: 26.244151\n    test 904 line 177 toUtmUps8.scale: 1.413463\n    test 905 line 177 toUtmUps8.lat: 23.836688\n    test 906 line 177 toUtmUps8.lon: 50.500180\n    test 907 line 178 toUtmUps8.easting: 3836942.765275\n    test 908 line 178 toUtmUps8.northing: 6415467.634326\n    test 909 line 178 toUtmUps8.gamma: 40.575885\n    test 910 line 178 toUtmUps8.scale: 1.185615\n    test 911 line 178 toUtmUps8.lat: 45.550020\n    test 912 line 178 toUtmUps8.lon: 50.148036\n    test 913 line 179 toUtmUps8.easting: 1298730.366025\n    test 914 line 179 toUtmUps8.northing: 6021453.000792\n    test 915 line 179 toUtmUps8.gamma: 15.613320\n    test 916 line 179 toUtmUps8.scale: 1.020367\n    test 917 line 179 toUtmUps8.lat: 52.746079\n    test 918 line 179 toUtmUps8.lon: 19.343926\n    test 919 line 180 toUtmUps8.easting: 416934.289208\n    test 920 line 180 toUtmUps8.northing: 7295683.451705\n    test 921 line 180 toUtmUps8.gamma: 8.238232\n    test 922 line 180 toUtmUps8.scale: 1.001729\n    test 923 line 180 toUtmUps8.lat: 65.513348\n    test 924 line 180 toUtmUps8.lon: 9.039529\n    test 925 line 181 toUtmUps8.easting: 4336076.850889\n    test 926 line 181 toUtmUps8.northing: 7617975.722779\n    test 927 line 181 toUtmUps8.gamma: 56.537088\n    test 928 line 181 toUtmUps8.scale: 1.238582\n    test 929 line 181 toUtmUps8.lat: 48.709795\n    test 930 line 181 toUtmUps8.lon: 63.554005\n    test 931 line 182 toUtmUps8.easting: 168047.336980\n    test 932 line 182 toUtmUps8.northing: 2185000.046530\n    test 933 line 182 toUtmUps8.gamma: 0.542187\n    test 934 line 182 toUtmUps8.scale: 0.999949\n    test 935 line 182 toUtmUps8.lat: 19.753509\n    test 936 line 182 toUtmUps8.lon: 1.603846\n    test 937 line 183 toUtmUps8.easting: 8276281.328790\n    test 938 line 183 toUtmUps8.northing: 263444.350545\n    test 939 line 183 toUtmUps8.gamma: 2.071435\n    test 940 line 183 toUtmUps8.scale: 1.980314\n    test 941 line 183 toUtmUps8.lat: 1.202816\n    test 942 line 183 toUtmUps8.lon: 59.377276\n    test 943 line 184 toUtmUps8.easting: 4772573.810710\n    test 944 line 184 toUtmUps8.northing: 6765710.336002\n    test 945 line 184 toUtmUps8.gamma: 48.857561\n    test 946 line 184 toUtmUps8.scale: 1.291911\n    test 947 line 184 toUtmUps8.lat: 42.564975\n    test 948 line 184 toUtmUps8.lon: 59.356947\n    test 949 line 185 toUtmUps8.easting: 5427755.074639\n    test 950 line 185 toUtmUps8.northing: 1556055.820924\n    test 951 line 185 toUtmUps8.gamma: 9.862178\n    test 952 line 185 toUtmUps8.scale: 1.387394\n    test 953 line 185 toUtmUps8.lat: 10.090572\n    test 954 line 185 toUtmUps8.lon: 44.604132\n    test 955 line 186 toUtmUps8.easting: 11588458.616240  FAILED, KNOWN, expected 11588458.616041\n    test 956 line 186 toUtmUps8.northing: 5707993.922683  FAILED, KNOWN, expected 5707993.922613\n    test 957 line 186 toUtmUps8.gamma: 50.784827\n    test 958 line 186 toUtmUps8.scale: 3.149567\n    test 959 line 186 toUtmUps8.lat: 14.133028\n    test 960 line 186 toUtmUps8.lon: 78.097533\n    test 961 line 187 toUtmUps8.easting: 7152433.802688\n    test 962 line 187 toUtmUps8.northing: 761390.695844\n    test 963 line 187 toUtmUps8.gamma: 5.607350\n    test 964 line 187 toUtmUps8.scale: 1.705261\n    test 965 line 187 toUtmUps8.lat: 4.031123\n    test 966 line 187 toUtmUps8.lon: 54.048782\n    test 967 line 188 toUtmUps8.easting: 3105651.390901\n    test 968 line 188 toUtmUps8.northing: 9426026.169064\n    test 969 line 188 toUtmUps8.gamma: 78.750206\n    test 970 line 188 toUtmUps8.scale: 1.119737\n    test 971 line 188 toUtmUps8.lat: 62.746603\n    test 972 line 188 toUtmUps8.lon: 79.968641\n    test 973 line 189 toUtmUps8.easting: 2959009.639022\n    test 974 line 189 toUtmUps8.northing: 8339242.269282\n    test 975 line 189 toUtmUps8.gamma: 58.460865\n    test 976 line 189 toUtmUps8.scale: 1.108554\n    test 977 line 189 toUtmUps8.lat: 60.626429\n    test 978 line 189 toUtmUps8.lon: 61.851551\n    test 979 line 190 toUtmUps8.easting: 8640472.267145\n    test 980 line 190 toUtmUps8.northing: 6230320.417931\n    test 981 line 190 toUtmUps8.gamma: 52.816810\n    test 982 line 190 toUtmUps8.scale: 2.062973\n    test 983 line 190 toUtmUps8.lat: 23.600626\n    test 984 line 190 toUtmUps8.lon: 72.811634\n    test 985 line 191 toUtmUps8.easting: 811352.108932\n    test 986 line 191 toUtmUps8.northing: 9816129.813481\n    test 987 line 191 toUtmUps8.gamma: 77.299184\n    test 988 line 191 toUtmUps8.scale: 1.007651\n    test 989 line 191 toUtmUps8.lat: 82.572236\n    test 990 line 191 toUtmUps8.lon: 77.402323\n    test 991 line 192 toUtmUps8.easting: 6521874.973458\n    test 992 line 192 toUtmUps8.northing: 1053612.479744\n    test 993 line 192 toUtmUps8.gamma: 7.407328\n    test 994 line 192 toUtmUps8.scale: 1.575529\n    test 995 line 192 toUtmUps8.lat: 6.030051\n    test 996 line 192 toUtmUps8.lon: 50.783505\n    test 997 line 193 toUtmUps8.easting: 3477983.997875\n    test 998 line 193 toUtmUps8.northing: 5651613.325947\n    test 999 line 193 toUtmUps8.gamma: 31.530673\n    test 1000 line 193 toUtmUps8.scale: 1.151875\n    test 1001 line 193 toUtmUps8.lat: 42.411523\n    test 1002 line 193 toUtmUps8.lon: 42.258009\n    test 1003 line 194 toUtmUps8.easting: 629892.822243\n    test 1004 line 194 toUtmUps8.northing: 3283914.910451\n    test 1005 line 194 toUtmUps8.gamma: 3.210482\n    test 1006 line 194 toUtmUps8.scale: 1.004499\n    test 1007 line 194 toUtmUps8.lat: 29.526120\n    test 1008 line 194 toUtmUps8.lon: 6.493069\n    test 1009 line 195 toUtmUps8.easting: 3381879.687227\n    test 1010 line 195 toUtmUps8.northing: 5103629.325665\n    test 1011 line 195 toUtmUps8.gamma: 26.748108\n    test 1012 line 195 toUtmUps8.scale: 1.143559\n    test 1013 line 195 toUtmUps8.lat: 39.021853\n    test 1014 line 195 toUtmUps8.lon: 38.641779\n    test 1015 line 196 toUtmUps8.easting: 2815986.534177\n    test 1016 line 196 toUtmUps8.northing: 9387029.120718\n    test 1017 line 196 toUtmUps8.gamma: 76.967262\n    test 1018 line 196 toUtmUps8.scale: 1.098032\n    test 1019 line 196 toUtmUps8.lat: 64.971850\n    test 1020 line 196 toUtmUps8.lon: 78.151893\n    test 1021 line 197 toUtmUps8.easting: 3398195.889603\n    test 1022 line 197 toUtmUps8.northing: 9138936.031490\n    test 1023 line 197 toUtmUps8.gamma: 74.477499\n    test 1024 line 197 toUtmUps8.scale: 1.144009\n    test 1025 line 197 toUtmUps8.lat: 59.961819\n    test 1026 line 197 toUtmUps8.lon: 76.473422\n    test 1027 line 198 toUtmUps8.easting: 2421734.754637\n    test 1028 line 198 toUtmUps8.northing: 5002372.094991\n    test 1029 line 198 toUtmUps8.gamma: 20.017082\n    test 1030 line 198 toUtmUps8.scale: 1.072592\n    test 1031 line 198 toUtmUps8.lat: 41.374040\n    test 1032 line 198 toUtmUps8.lon: 28.848343\n    test 1033 line 199 toUtmUps8.easting: 2360869.895525\n    test 1034 line 199 toUtmUps8.northing: 9553298.449536\n    test 1035 line 199 toUtmUps8.gamma: 78.848205\n    test 1036 line 199 toUtmUps8.scale: 1.068453\n    test 1037 line 199 toUtmUps8.lat: 68.946087\n    test 1038 line 199 toUtmUps8.lon: 79.574523\n\n    test skipped (27): line 200 toUtmUps8.'79.275096210569 83.551272329394 1196539.9721941076965 9861920.8362302532842 83.437668440198132309 1.01713723718699411107'\n    test 1039 line 201 toUtmUps8.easting: 1327758.704795\n    test 1040 line 201 toUtmUps8.northing: 2375509.241683\n    test 1041 line 201 toUtmUps8.gamma: 4.617572\n    test 1042 line 201 toUtmUps8.scale: 1.021465\n    test 1043 line 201 toUtmUps8.lat: 21.000252\n    test 1044 line 201 toUtmUps8.lon: 12.697444\n    test 1045 line 202 toUtmUps8.easting: 2070860.327644\n    test 1046 line 202 toUtmUps8.northing: 8604500.719581\n    test 1047 line 202 toUtmUps8.gamma: 54.722761\n    test 1048 line 202 toUtmUps8.scale: 1.052469\n    test 1049 line 202 toUtmUps8.lat: 68.015227\n    test 1050 line 202 toUtmUps8.lon: 56.732419\n    test 1051 line 203 toUtmUps8.easting: 6564776.654864\n    test 1052 line 203 toUtmUps8.northing: 8171207.177379\n    test 1053 line 203 toUtmUps8.gamma: 69.237523\n    test 1054 line 203 toUtmUps8.scale: 1.573894\n    test 1055 line 203 toUtmUps8.lat: 37.423675\n    test 1056 line 203 toUtmUps8.lon: 76.947359\n    test 1057 line 204 toUtmUps8.easting: 592653.553821\n    test 1058 line 204 toUtmUps8.northing: 6125529.810052\n    test 1059 line 204 toUtmUps8.gamma: 7.600785\n    test 1060 line 204 toUtmUps8.scale: 1.003912\n    test 1061 line 204 toUtmUps8.lat: 54.922707\n    test 1062 line 204 toUtmUps8.lon: 9.260818\n    test 1063 line 205 toUtmUps8.easting: 693459.671821\n    test 1064 line 205 toUtmUps8.northing: 6943779.991032\n    test 1065 line 205 toUtmUps8.gamma: 11.787587\n    test 1066 line 205 toUtmUps8.scale: 1.005496\n    test 1067 line 205 toUtmUps8.lat: 61.982810\n    test 1068 line 205 toUtmUps8.lon: 13.299659\n    test 1069 line 206 toUtmUps8.easting: 1838956.187625\n    test 1070 line 206 toUtmUps8.northing: 3511959.612381\n    test 1071 line 206 toUtmUps8.gamma: 9.844313\n    test 1072 line 206 toUtmUps8.scale: 1.041603\n    test 1073 line 206 toUtmUps8.lat: 30.324214\n    test 1074 line 206 toUtmUps8.lon: 18.959769\n    test 1075 line 207 toUtmUps8.easting: 4460690.884597\n    test 1076 line 207 toUtmUps8.northing: 5541873.235403\n    test 1077 line 207 toUtmUps8.gamma: 35.768613\n    test 1078 line 207 toUtmUps8.scale: 1.254179\n    test 1079 line 207 toUtmUps8.lat: 37.629667\n    test 1080 line 207 toUtmUps8.lon: 49.649131\n    test 1081 line 208 toUtmUps8.easting: 2311168.998941\n    test 1082 line 208 toUtmUps8.northing: 9480561.869119\n    test 1083 line 208 toUtmUps8.gamma: 76.828257\n    test 1084 line 208 toUtmUps8.scale: 1.065556\n    test 1085 line 208 toUtmUps8.lat: 69.225574\n    test 1086 line 208 toUtmUps8.lon: 77.656135\n    test 1087 line 209 toUtmUps8.easting: 4111775.114451\n    test 1088 line 209 toUtmUps8.northing: 6509014.348792\n    test 1089 line 209 toUtmUps8.gamma: 43.052130\n    test 1090 line 209 toUtmUps8.scale: 1.214125\n    test 1091 line 209 toUtmUps8.lat: 44.698478\n    test 1092 line 209 toUtmUps8.lon: 52.979304\n    test 1093 line 210 toUtmUps8.easting: 75358.261962\n    test 1094 line 210 toUtmUps8.northing: 7711258.662251\n    test 1095 line 210 toUtmUps8.gamma: 1.806297\n    test 1096 line 210 toUtmUps8.scale: 0.999669\n    test 1097 line 210 toUtmUps8.lat: 69.499594\n    test 1098 line 210 toUtmUps8.lon: 1.928336\n\n    test skipped (28): line 211 toUtmUps8.'27.981363604998 86.061112755721 8781885.2291162503299 9184776.4522114918448 81.795538514711932534 2.09490761781464961377'\n    test 1099 line 212 toUtmUps8.easting: 954378.415174\n    test 1100 line 212 toUtmUps8.northing: 7449110.669807\n    test 1101 line 212 toUtmUps8.gamma: 19.380657\n    test 1102 line 212 toUtmUps8.scale: 1.010768\n    test 1103 line 212 toUtmUps8.lat: 65.699839\n    test 1104 line 212 toUtmUps8.lon: 21.104725\n    test 1105 line 213 toUtmUps8.easting: 720971.793706\n    test 1106 line 213 toUtmUps8.northing: 5265195.121555\n    test 1107 line 213 toUtmUps8.gamma: 7.002995\n    test 1108 line 213 toUtmUps8.scale: 1.005995\n    test 1109 line 213 toUtmUps8.lat: 47.143648\n    test 1110 line 213 toUtmUps8.lon: 9.512189\n    test 1111 line 214 toUtmUps8.easting: 561561.493937\n    test 1112 line 214 toUtmUps8.northing: 989910.236221\n    test 1113 line 214 toUtmUps8.gamma: 0.793118\n    test 1114 line 214 toUtmUps8.scale: 1.003505\n    test 1115 line 214 toUtmUps8.lat: 8.920167\n    test 1116 line 214 toUtmUps8.lon: 5.101513\n    test 1117 line 215 toUtmUps8.easting: 3446829.634468\n    test 1118 line 215 toUtmUps8.northing: 9232868.155664\n    test 1119 line 215 toUtmUps8.gamma: 76.279075\n    test 1120 line 215 toUtmUps8.scale: 1.148263\n    test 1121 line 215 toUtmUps8.lat: 59.778971\n    test 1122 line 215 toUtmUps8.lon: 78.080322\n\n    test skipped (29): line 216 toUtmUps8.'55.865310107291 87.384288430943 4048307.5459092527942 9800416.4229977935137 86.843918034217523739 1.20649504624906774925'\n    test 1123 line 217 toUtmUps8.easting: 8973188.480293\n    test 1124 line 217 toUtmUps8.northing: 7042230.087021\n    test 1125 line 217 toUtmUps8.gamma: 60.872456\n    test 1126 line 217 toUtmUps8.scale: 2.156098\n    test 1127 line 217 toUtmUps8.lat: 24.310973\n    test 1128 line 217 toUtmUps8.lon: 76.823777\n    test 1129 line 218 toUtmUps8.easting: 126314.191618\n    test 1130 line 218 toUtmUps8.northing: 396006.687921\n    test 1131 line 218 toUtmUps8.gamma: 0.071065\n    test 1132 line 218 toUtmUps8.scale: 0.999798\n    test 1133 line 218 toUtmUps8.lat: 3.582041\n    test 1134 line 218 toUtmUps8.lon: 1.137286\n    test 1135 line 219 toUtmUps8.easting: 5247652.345647\n    test 1136 line 219 toUtmUps8.northing: 8670513.359752\n    test 1137 line 219 toUtmUps8.gamma: 72.700498\n    test 1138 line 219 toUtmUps8.scale: 1.355272\n    test 1139 line 219 toUtmUps8.lat: 46.124233\n    test 1140 line 219 toUtmUps8.lon: 77.313118\n\n    test skipped (30): line 220 toUtmUps8.'31.17139056295 87.104503768139 8103656.8381187232079 9469794.014736839373 84.490673011906282841 1.91216400164486142107'\n    test 1141 line 221 toUtmUps8.easting: 6300112.758236\n    test 1142 line 221 toUtmUps8.northing: 93835.917364\n    test 1143 line 221 toUtmUps8.gamma: 0.644805\n    test 1144 line 221 toUtmUps8.scale: 1.534073\n    test 1145 line 221 toUtmUps8.lat: 0.553171\n    test 1146 line 221 toUtmUps8.lon: 49.117104\n    test 1147 line 222 toUtmUps8.easting: 3894813.593782\n    test 1148 line 222 toUtmUps8.northing: 4833832.341027\n    test 1149 line 222 toUtmUps8.gamma: 27.453298\n    test 1150 line 222 toUtmUps8.scale: 1.192135\n    test 1151 line 222 toUtmUps8.lat: 35.361587\n    test 1152 line 222 toUtmUps8.lon: 41.860599\n    test 1153 line 223 toUtmUps8.easting: 402511.346712\n    test 1154 line 223 toUtmUps8.northing: 3520621.561911\n    test 1155 line 223 toUtmUps8.gamma: 2.238474\n    test 1156 line 223 toUtmUps8.scale: 1.001599\n    test 1157 line 223 toUtmUps8.lat: 31.750314\n    test 1158 line 223 toUtmUps8.lon: 4.248167\n    test 1159 line 224 toUtmUps8.easting: 5357378.503148\n    test 1160 line 224 toUtmUps8.northing: 2772997.602234\n    test 1161 line 224 toUtmUps8.gamma: 17.823560\n    test 1162 line 224 toUtmUps8.scale: 1.376031\n    test 1163 line 224 toUtmUps8.lat: 17.924336\n    test 1164 line 224 toUtmUps8.lon: 46.096402\n    test 1165 line 225 toUtmUps8.easting: 2807553.985866\n    test 1166 line 225 toUtmUps8.northing: 8177847.980275\n    test 1167 line 225 toUtmUps8.gamma: 54.680045\n    test 1168 line 225 toUtmUps8.scale: 1.097531\n    test 1169 line 225 toUtmUps8.lat: 60.931488\n    test 1170 line 225 toUtmUps8.lon: 58.221214\n\n    test skipped (31): line 226 toUtmUps8.'5.358150979521 87.556213284144 18289045.16650076146 7792942.3396035398889 73.216494415207315628 8.09800850850277481729'\n\n    test skipped (32): line 227 toUtmUps8.'28.616673489124 80.452426461437 8376822.4595378634541 8128174.6238782329989 70.920116640676321501 1.98487312027093768388'\n    test 1171 line 228 toUtmUps8.easting: 11898068.352950  FAILED, KNOWN, expected 11898068.353272\n    test 1172 line 228 toUtmUps8.northing: 4772439.493355  FAILED, KNOWN, expected 4772439.493697\n    test 1173 line 228 toUtmUps8.gamma: 42.613968\n    test 1174 line 228 toUtmUps8.scale: 3.314412\n    test 1175 line 228 toUtmUps8.lat: 11.709763\n    test 1176 line 228 toUtmUps8.lon: 76.760295\n    test 1177 line 229 toUtmUps8.easting: 10550946.939052  FAILED, KNOWN, expected 10550946.939050\n    test 1178 line 229 toUtmUps8.northing: 3851968.815305  FAILED, KNOWN, expected 3851968.815295\n    test 1179 line 229 toUtmUps8.gamma: 33.383025\n    test 1180 line 229 toUtmUps8.scale: 2.724754\n    test 1181 line 229 toUtmUps8.lat: 12.009498\n    test 1182 line 229 toUtmUps8.lon: 71.782351\n\n    test skipped (33): line 230 toUtmUps8.'37.62978386356 85.795687334213 6828299.1236065501034 9394803.2274626281036 83.181386462369626591 1.62435875189611017521'\n    test 1183 line 231 toUtmUps8.easting: 11162550.334001  FAILED, KNOWN, expected 11162550.334022\n    test 1184 line 231 toUtmUps8.northing: 2640267.279546  FAILED, KNOWN, expected 2640267.279593\n    test 1185 line 231 toUtmUps8.gamma: 23.145404\n    test 1186 line 231 toUtmUps8.scale: 2.998408\n    test 1187 line 231 toUtmUps8.lat: 7.721128\n    test 1188 line 231 toUtmUps8.lon: 71.662731\n    test 1189 line 232 toUtmUps8.easting: 4411584.447941\n    test 1190 line 232 toUtmUps8.northing: 4956173.694407\n    test 1191 line 232 toUtmUps8.gamma: 30.713919\n    test 1192 line 232 toUtmUps8.scale: 1.248736\n    test 1193 line 232 toUtmUps8.lat: 34.295026\n    test 1194 line 232 toUtmUps8.lon: 46.442191\n    test 1195 line 233 toUtmUps8.easting: 672108.897905\n    test 1196 line 233 toUtmUps8.northing: 4751554.657054\n    test 1197 line 233 toUtmUps8.gamma: 5.569178\n    test 1198 line 233 toUtmUps8.scale: 1.005162\n    test 1199 line 233 toUtmUps8.lat: 42.622496\n    test 1200 line 233 toUtmUps8.lon: 8.193605\n    test 1201 line 234 toUtmUps8.easting: 5022964.290579\n    test 1202 line 234 toUtmUps8.northing: 6860418.199502\n    test 1203 line 234 toUtmUps8.gamma: 50.862230\n    test 1204 line 234 toUtmUps8.scale: 1.324925\n    test 1205 line 234 toUtmUps8.lat: 41.667780\n    test 1206 line 234 toUtmUps8.lon: 61.518288\n    test 1207 line 235 toUtmUps8.easting: 1669655.595207\n    test 1208 line 235 toUtmUps8.northing: 4152086.537021\n    test 1209 line 235 toUtmUps8.gamma: 11.110237\n    test 1210 line 235 toUtmUps8.scale: 1.034138\n    test 1211 line 235 toUtmUps8.lat: 36.060369\n    test 1212 line 235 toUtmUps8.lon: 18.444112\n    test 1213 line 236 toUtmUps8.easting: 6055876.729655\n    test 1214 line 236 toUtmUps8.northing: 4896837.552619\n    test 1215 line 236 toUtmUps8.gamma: 35.799747\n    test 1216 line 236 toUtmUps8.scale: 1.485967\n    test 1217 line 236 toUtmUps8.lat: 27.948091\n    test 1218 line 236 toUtmUps8.lon: 56.816429\n    test 1219 line 237 toUtmUps8.easting: 1209214.164379\n    test 1220 line 237 toUtmUps8.northing: 7266409.859178\n    test 1221 line 237 toUtmUps8.gamma: 22.319633\n    test 1222 line 237 toUtmUps8.scale: 1.017554\n    test 1223 line 237 toUtmUps8.lat: 63.386030\n    test 1224 line 237 toUtmUps8.lon: 24.662716\n    test 1225 line 238 toUtmUps8.easting: 5154564.559584\n    test 1226 line 238 toUtmUps8.northing: 698118.349975\n    test 1227 line 238 toUtmUps8.gamma: 4.242360\n    test 1228 line 238 toUtmUps8.scale: 1.347481\n    test 1229 line 238 toUtmUps8.lat: 4.680922\n    test 1230 line 238 toUtmUps8.lon: 42.114426\n    test 1231 line 239 toUtmUps8.easting: 2695149.806543\n    test 1232 line 239 toUtmUps8.northing: 8208197.765605\n    test 1233 line 239 toUtmUps8.gamma: 54.178615\n    test 1234 line 239 toUtmUps8.scale: 1.089730\n    test 1235 line 239 toUtmUps8.lat: 61.826625\n    test 1236 line 239 toUtmUps8.lon: 57.525096\n    test 1237 line 240 toUtmUps8.easting: 3394792.327820\n    test 1238 line 240 toUtmUps8.northing: 3217583.415552\n    test 1239 line 240 toUtmUps8.gamma: 15.165863\n    test 1240 line 240 toUtmUps8.scale: 1.145285\n    test 1241 line 240 toUtmUps8.lat: 25.104353\n    test 1242 line 240 toUtmUps8.lon: 32.528660\n    test 1243 line 241 toUtmUps8.easting: 1429160.966985\n    test 1244 line 241 toUtmUps8.northing: 8212685.362032\n    test 1245 line 241 toUtmUps8.gamma: 37.484904\n    test 1246 line 241 toUtmUps8.scale: 1.024676\n    test 1247 line 241 toUtmUps8.lat: 69.678351\n    test 1248 line 241 toUtmUps8.lon: 39.275513\n\n    test skipped (34): line 242 toUtmUps8.'29.671383681805 84.19659549085 8343387.9980651104898 8885196.9545780118644 78.561937382568633298 1.97473261886829061763'\n    test 1249 line 243 toUtmUps8.easting: 1990722.928606\n    test 1250 line 243 toUtmUps8.northing: 7569202.065162\n    test 1251 line 243 toUtmUps8.gamma: 37.075276\n    test 1252 line 243 toUtmUps8.scale: 1.048486\n    test 1253 line 243 toUtmUps8.lat: 62.300208\n    test 1254 line 243 toUtmUps8.lon: 40.474051\n    test 1255 line 244 toUtmUps8.easting: 1554980.099559\n    test 1256 line 244 toUtmUps8.northing: 1449423.919586\n    test 1257 line 244 toUtmUps8.gamma: 3.188328\n    test 1258 line 244 toUtmUps8.scale: 1.029664\n    test 1259 line 244 toUtmUps8.lat: 12.721776\n    test 1260 line 244 toUtmUps8.lon: 14.190003\n    test 1261 line 245 toUtmUps8.easting: 785205.450196\n    test 1262 line 245 toUtmUps8.northing: 5575158.423096\n    test 1263 line 245 toUtmUps8.gamma: 8.388417\n    test 1264 line 245 toUtmUps8.scale: 1.007181\n    test 1265 line 245 toUtmUps8.lat: 49.811296\n    test 1266 line 245 toUtmUps8.lon: 10.925011\n    test 1267 line 246 toUtmUps8.easting: 3310405.988313\n    test 1268 line 246 toUtmUps8.northing: 5955022.233881\n    test 1269 line 246 toUtmUps8.gamma: 33.007587\n    test 1270 line 246 toUtmUps8.scale: 1.137141\n    test 1271 line 246 toUtmUps8.lat: 45.132680\n    test 1272 line 246 toUtmUps8.lon: 42.478624\n    test 1273 line 247 toUtmUps8.easting: 4733460.960666\n    test 1274 line 247 toUtmUps8.northing: 129034.889816\n    test 1275 line 247 toUtmUps8.gamma: 0.737551\n    test 1276 line 247 toUtmUps8.scale: 1.290439\n    test 1277 line 247 toUtmUps8.lat: 0.904279\n    test 1278 line 247 toUtmUps8.lon: 39.078412\n    test 1279 line 248 toUtmUps8.easting: 3322708.343909\n    test 1280 line 248 toUtmUps8.northing: 3864738.078742\n    test 1281 line 248 toUtmUps8.gamma: 18.472566\n    test 1282 line 248 toUtmUps8.scale: 1.138838\n    test 1283 line 248 toUtmUps8.lat: 30.163605\n    test 1284 line 248 toUtmUps8.lon: 33.577996\n\n    test skipped (35): line 249 toUtmUps8.'27.643243707755 81.892859091432 8672864.4172042475623 8333465.9834441061554 73.206272638168122883 2.06544053870286774312'\n\n    test skipped (36): line 250 toUtmUps8.'18.201207657521 82.434617649311 11126818.23119627031 7618712.1749910723126 67.88717347393512063 2.92241673495261070414'\n\n    test skipped (37): line 251 toUtmUps8.'28.804576432117 89.886072420251 8650100.9817967479337 9975084.1689971279206 89.767446308690086924 2.05728879562910108817'\n    test 1285 line 252 toUtmUps8.easting: 2212701.180192\n    test 1286 line 252 toUtmUps8.northing: 650348.100229\n    test 1287 line 252 toUtmUps8.gamma: 1.970441\n    test 1288 line 252 toUtmUps8.scale: 1.060830\n    test 1289 line 252 toUtmUps8.lat: 5.542998\n    test 1290 line 252 toUtmUps8.lon: 19.589578\n    test 1291 line 253 toUtmUps8.easting: 6890222.326618\n    test 1292 line 253 toUtmUps8.northing: 7506813.499547\n    test 1293 line 253 toUtmUps8.gamma: 62.684825\n    test 1294 line 253 toUtmUps8.scale: 1.638488\n    test 1295 line 253 toUtmUps8.lat: 34.237147\n    test 1296 line 253 toUtmUps8.lon: 73.678164\n    test 1297 line 254 toUtmUps8.easting: 6692260.067325\n    test 1298 line 254 toUtmUps8.northing: 4244174.008110\n    test 1299 line 254 toUtmUps8.gamma: 31.812920\n    test 1300 line 254 toUtmUps8.scale: 1.604640\n    test 1301 line 254 toUtmUps8.lat: 22.704949\n    test 1302 line 254 toUtmUps8.lon: 57.877010\n    test 1303 line 255 toUtmUps8.easting: 1225564.137190\n    test 1304 line 255 toUtmUps8.northing: 4778923.924144\n    test 1305 line 255 toUtmUps8.gamma: 10.083419\n    test 1306 line 255 toUtmUps8.scale: 1.018134\n    test 1307 line 255 toUtmUps8.lat: 42.192424\n    test 1308 line 255 toUtmUps8.lon: 14.828196\n    test 1309 line 256 toUtmUps8.easting: 12341116.155088  FAILED, KNOWN, expected 12341116.154950\n    test 1310 line 256 toUtmUps8.northing: 5081855.520287  FAILED, KNOWN, expected 5081855.521966\n    test 1311 line 256 toUtmUps8.gamma: 45.712545  FAILED, KNOWN, expected 45.712546\n    test 1312 line 256 toUtmUps8.scale: 3.535170\n    test 1313 line 256 toUtmUps8.lat: 11.481151\n    test 1314 line 256 toUtmUps8.lon: 78.189236\n    test 1315 line 257 toUtmUps8.easting: 6673845.021771\n    test 1316 line 257 toUtmUps8.northing: 1177587.190565\n    test 1317 line 257 toUtmUps8.gamma: 8.389141\n    test 1318 line 257 toUtmUps8.scale: 1.605171\n    test 1319 line 257 toUtmUps8.lat: 6.609626\n    test 1320 line 257 toUtmUps8.lon: 51.735783\n    test 1321 line 258 toUtmUps8.easting: 6966354.690417\n    test 1322 line 258 toUtmUps8.northing: 3641802.005093\n    test 1323 line 258 toUtmUps8.gamma: 27.409636\n    test 1324 line 258 toUtmUps8.scale: 1.661469\n    test 1325 line 258 toUtmUps8.lat: 19.059369\n    test 1326 line 258 toUtmUps8.lon: 57.526439\n    test 1327 max forward error: 1.678809e-03\n    test 1328 max reverse error: 3.170463e-09\n    test 1329 Utm.scale0: 0.9996\n    test 1330 Utm.datum: WGS84\n    test 1331 Utm.datum.ellipsoid.KsOrder: 8\n    test 1332 Ups.scale0: 0.994  FAILED, KNOWN, expected 0.9996\n    test 1333 Ups.datum: WGS84\n    test 1334 Ups.datum.ellipsoid.KsOrder: 8\n    test 1335 WGS84.KsOrder: 8\n\n    24 of 1335 testUtmUpsTMcoords.py tests (1.8%) FAILED, ALL KNOWN, 37 skipped (pygeodesy 26.3.26 PyPy 7.3.17 Python 3.10.14 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 268.469 ms\nrunning /opt/local/bin/p....y3.10 -W default ~/PyGeodesy/test/testVectorial.py\n./pygeodesy/ellipsoidalBase.py:443: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  _ = self.datum.ellipsoid.geodesic\n./pygeodesy/azimuthal.py:636: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return self.datum.ellipsoid.geodesic\n./pygeodesy/ellipsoidalNvector.py:247: DeprecationWarning: Property_RO L{ned<pygeodesy.ltpTuples.Ned.ned>} has been DEPRECATED, use property C{ned4}.\n  dn = delta.ned[:3]  # XXX Ned4Tuple.to3Tuple\n./pygeodesy/deprecated/classes.py:33: DeprecationWarning: class L{Ned3Tuple<pygeodesy.deprecated.classes.Ned3Tuple>} has been DEPRECATED, use class L{Ned4Tuple}, ignoring item C{ltp}.\n  deprecated_class(cls)\n./test/testVectorial.py:128: DeprecationWarning: function L{nearestOn<pygeodesy.vector2d.nearestOn>} has been DEPRECATED on 2025.05.06, use L{pygeodesy.nearestOn<pygeodesy.vector3d.nearestOn>}.\n  t = vector2d.nearestOn(Nvector(0, 0, 0), p1, p2)\n# lazily imported pygeodesy.basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.DeprecationWarnings from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isint from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isLazy from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.issubclassof from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.iterNumpy2over from .iters by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.LazyImportError from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.karney by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.NN from .interns by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.normDMS from .dms by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.pairs from .streprs by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.printf from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.property_RO from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.typename from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.EPS from .constants by testVectorial.py line 11\n# lazily imported pygeodesy.EPS4 from .constants by testVectorial.py line 11\n# lazily imported pygeodesy.F_D from .dms by testVectorial.py line 11\n# lazily imported pygeodesy.NEG0 from .constants by testVectorial.py line 11\n# lazily imported pygeodesy.circin6 from .vector2d by testVectorial.py line 11\n# lazily imported pygeodesy.circum3 from .vector2d by testVectorial.py line 11\n# lazily imported pygeodesy.circum4_ from .vector2d by testVectorial.py line 11\n# lazily imported pygeodesy.fstr from .streprs by testVectorial.py line 11\n# lazily imported pygeodesy.intersection3d3 from .vector3d by testVectorial.py line 11\n# lazily imported pygeodesy.IntersectionError from .errors by testVectorial.py line 11\n# lazily imported pygeodesy.isnear0 from .constants by testVectorial.py line 11\n# lazily imported pygeodesy.meeus2 from .vector2d by testVectorial.py line 11\n# lazily imported pygeodesy.radii11 from .vector2d by testVectorial.py line 11\n# lazily imported pygeodesy.sincos2d from .utily by testVectorial.py line 11\n# lazily imported pygeodesy.sphericalNvector by testVectorial.py line 11\n# lazily imported pygeodesy.soddy4 from .vector2d by testVectorial.py line 11\n# lazily imported pygeodesy.trilaterate2d2 from .vector2d by testVectorial.py line 11\n# lazily imported pygeodesy.trilaterate3d2 from .vector3d by testVectorial.py line 11\n# lazily imported pygeodesy.Vector3d from .vector3d by testVectorial.py line 11\n# lazily imported pygeodesy.VectorError from .errors by testVectorial.py line 11\n# lazily imported pygeodesy.Datums from .datums by testVectorial.py line 533\n# lazily imported pygeodesy.ellipsoidalExact by testVectorial.py line 533\n# lazily imported pygeodesy.ellipsoidalKarney by testVectorial.py line 533\n# lazily imported pygeodesy.ellipsoidalNvector by testVectorial.py line 533\n# lazily imported pygeodesy.ellipsoidalVincenty by testVectorial.py line 533\n# lazily imported pygeodesy.sphericalTrigonometry by testVectorial.py line 533\n\n    testing testVectorial.py 25.10.07 isLazy=3\n\n    testVectorial(pygeodesy.ellipsoidalNvector, 25.05.12)\n\n    test 1 toLatLon: 44.995674°N, 045.0°E\n    test 2 toNvector: (0.50004, 0.50004, 0.70705)\n    test 3 isequalTo: False\n    test 4 isequalTo: True\n    test 5 length: 0.99992449715\n    test 6 euclid: 0.99995577\n    test 7 length: 1.00\n    test 8 euclid: 1.0000\n    test 9 meanOf: 44.995674°N, 045.0°E\n    test 10 meanOf: LatLon\n    test 11 apply: (0.5, 0.5, 0.707)\n    test 12 init: (0.5, 0.5, 0.707)\n    test 13 i***: (0.5, 0.5, 0.707)\n    test 14 abs: 0.99992449715\n    test 15 sumOf: (52.70504, 0.61904, 0.70705)\n    test 16 sumOf: Nv\n    test 17 sumOf: sumOf\n    test 18 length: 52.7134151513\n    test 19 sizeof: None  FAILED, KNOWN, expected 128\n    test 20 length: 52.2051356286\n    test 21 sizeof: None  FAILED, KNOWN, expected 247\n    test 22 copy: True\n    test 23 length: 52.2051356286\n    test 24 sizeof: None\n# lazily imported pygeodesy.booleans by points.py line 1369\n    test 25 isenclosedBy: True\n    test 26 isenclosedBy*: True\n    test 27 isenclosedBy: True\n    test 28 isenclosedBy*: True\n# lazily imported pygeodesy.geodesicw by ellipsoids.py line 1074\n# lazily imported pygeodesy.azimuthal by ellipsoidalBase.py line 444\n\n    test 29 nearestOn: 51.0°N, 001.0°E\n    test 30 nearestOn: 50.987°N, 000.298°W\n    test 31 nearestOn: 51.0°N, 002.0°E\n    test 32 nearestOn: 50.995°N, 002.655°E\n# imported pygeodesy.formy into latlonBase.py line 756\n    test 33 nearestOn: 51.0°N, 001.9°E\n    test 34 nearestOn: True\n    test 35 distanceTo: 42.826\n    test 36 nearestOn: 51.0°N, 002.0°E\n    test 37 nearestOn: True\n    test 38 nearestOn: 00.0°N, 000.0°E\n    test 39 nearestOn: True\n    test 40 nearestOn: 00.0°N, 020.0°E\n    test 41 nearestOn: True\n    test 42 nearestOn: 02.0°N, 002.0°E\n    test 43 nearestOn: 02.0°N, 002.0°E\n# lazily imported pygeodesy.ecef by ellipsoidalNvector.py line 524\n\n    test 44 neareston6: (LatLon(45°00′00.0″N, 001°00′00.0″E), 4755443.4294, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E))\n    test 45 neareston6: (LatLon(45°30′03.94″N, 002°00′00.0″E), 39078.729285, 1.501072, 2, LatLon(45°00′00.0″N, 002°00′00.0″E), LatLon(46°00′00.0″N, 002°00′00.0″E))\n\n    test 46 BasseC: 47.3038°N, 002.5721°W\n    test 47 BasseH: 47.311067°N, 002.528617°W\n    test 48 triangulate: 47.323667°N, 002.568501°W\n    test 49 triangulate: True\n\n    test 50 trilaterate: 37.419078°N, 121.960579°W\n    test 51 trilaterate: True\n    test 52 trilaterate: 08.068912°S, 034.888699°W\n    test 53 trilaterate: True\n    test 54 trilaterate: 08.068912°S, 034.888695°W  FAILED, KNOWN, expected 08.068912°S, 034.888699°W\n    test 55 trilaterate: True\n    test 56 trilaterate: 42.67456065°N, 002.49539502°E\n# imported pygeodesy.basics into errors.py line 443\n    test 57 trilaterate: distance1 (5110), distance2 (5110), distance3 (5110), point1 (LatLon(42°41′19.82″N, 002°26′19.89″E)), point2 (LatLon(42°38′07.52″N, 002°31′21.25″E)) or point3 (LatLon(42°38′43.44″N, 002°30′17.32″E)): no intersection (useZ=False, wrap=False, z=-8.13526e-05)\n# lazily imported pygeodesy.Ned from .ltpTuples by testVectorial.py line 367\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by <frozen importlib._bootstrap> line 1075\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by <frozen importlib._bootstrap> line 1075\n# lazily imported pygeodesy.Conformal2Tuple from .triaxials.triaxial5 by <frozen importlib._bootstrap> line 1075\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by classes.py line 21\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by classes.py line 21\n# lazily imported pygeodesy.Conformal2Tuple from .triaxials.triaxial5 by classes.py line 21\n# lazily imported pygeodesy.deprecated by ltpTuples.py line 483\n\n    test 58 destinationNed: 48°53′12.01″N, 002°22′29.0″E, +0.20m\n\n    testNvector(pygeodesy.ellipsoidalNvector, 25.05.12)\n    test 59 sumOf: Nvector\n    test 60 ecef.x, .y, .z: 3194659.54086, 3194659.54086, 4487008.4122\n    test 61 ecef.lat, .lon: 44.995674, 45.0\n    test 62 ecef.height: -0.0\n    test 63 ecef.M: -0.707106781, -0.499962243, 0.500037754, 0.707106781, -0.499962243, 0.500037754, 0.0, 0.707160174, 0.707053385\n    test 64 nearestOn: (0.0, 0.0, 0.0)\n    test 65 nearestOn: True\n    test 66 nearestOn: (100.0, 100.0, 100.0)\n    test 67 nearestOn: True\n# imported pygeodesy.vector2d into vector3d.py line 659\n    test 68 iscolinearWith: False\n    test 69 iscolinearWith: True\n    test 70 nearestOn: (0.0, 0.0, 0.0)\n    test 71 nearestOn: True\n    test 72 nearestOn: (100.0, 100.0, 100.0)\n    test 73 nearestOn: True\n    test 74 iscolinearWith: False\n    test 75 iscolinearWith: True\n\n    testVectorial(pygeodesy.sphericalNvector, 25.05.27)\n    test 76 crossTrackDistanceTo: -305.67\n    test 77 crossTrackDistanceTo: -307.55\n\n    test 78 toLatLon: 44.995674°N, 045.0°E\n    test 79 toNvector: (0.50004, 0.50004, 0.70705)\n    test 80 isequalTo: False\n    test 81 isequalTo: True\n    test 82 length: 0.99992449715\n    test 83 euclid: 0.99995577\n    test 84 length: 1.00\n    test 85 euclid: 1.0000\n    test 86 meanOf: 44.995674°N, 045.0°E\n    test 87 meanOf: LatLon\n    test 88 apply: (0.5, 0.5, 0.707)\n    test 89 init: (0.5, 0.5, 0.707)\n    test 90 i***: (0.5, 0.5, 0.707)\n    test 91 abs: 0.99992449715\n    test 92 sumOf: (52.70504, 0.61904, 0.70705)\n    test 93 sumOf: Nv\n    test 94 sumOf: sumOf\n    test 95 length: 52.7134151513\n    test 96 sizeof: None  FAILED, KNOWN, expected 128\n    test 97 length: 52.2051356286\n    test 98 sizeof: None  FAILED, KNOWN, expected 247\n    test 99 copy: True\n    test 100 length: 52.2051356286\n    test 101 sizeof: None\n\n    test 102 toCartesian: [3185744.919, 3185744.919, 4504643.315]\n    test 103 toLatLon: 44.995674°N, 045.0°E\n    test 104 toNvector: (0.50004, 0.50004, 0.70705)  FAILED, KNOWN, expected (0.50004, 0.50004, 0.70705, -0.00)\n\n    test 105 intersection: 02.499372°N, 002.5°E\n\n    test 106 intersection1: 02.499372°N, 002.5°E\n    test 107 intersection2: 02.499372°S, 177.5°W\n\n    test 108 isenclosedBy: True\n    test 109 isenclosedBy*: True\n    test 110 isenclosedBy: True\n    test 111 isenclosedBy*: True\n\n    test 112 iswithin: False\n    test 113 iswithin: True\n\n    test 114 nearestOn: 51.0°N, 001.0°E\n    test 115 nearestOn: 50.987°N, 000.298°W\n    test 116 nearestOn: 51.0°N, 002.0°E\n    test 117 nearestOn: 50.995°N, 002.655°E\n    test 118 nearestOn: 51.0°N, 001.9°E\n    test 119 nearestOn: True\n    test 120 distanceTo: 42.712\n    test 121 nearestOn: 51.0°N, 002.0°E\n    test 122 nearestOn: True\n    test 123 nearestOn: 00.0°N, 000.0°E\n    test 124 nearestOn: True\n    test 125 nearestOn: 00.0°N, 020.0°E\n    test 126 nearestOn: True\n    test 127 nearestOn: 02.0°N, 002.0°E\n    test 128 nearestOn: 02.0°N, 002.0°E\n\n    test 129 neareston6: (LatLon(45°00′00.0″N, 001°00′00.0″E), 4773243.784965, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E))\n    test 130 neareston6: (LatLon(45°30′03.93″N, 002°00′00.0″E), 38968.531578, 1.501091, 2, LatLon(45°00′00.0″N, 002°00′00.0″E), LatLon(46°00′00.0″N, 002°00′00.0″E))\n\n    test 131 BasseC: 47.3038°N, 002.5721°W\n    test 132 BasseH: 47.311067°N, 002.528617°W\n    test 133 triangulate: 47.323667°N, 002.568501°W\n    test 134 triangulate: True\n\n    test 135 trilaterate: 37.419078°N, 121.960579°W\n    test 136 trilaterate: True\n    test 137 trilaterate: 08.068912°S, 034.888699°W\n    test 138 trilaterate: True\n    test 139 trilaterate: 08.068912°S, 034.888695°W  FAILED, KNOWN, expected 08.068912°S, 034.888699°W\n    test 140 trilaterate: True\n    test 141 trilaterate: 42.67456065°N, 002.49539502°E\n    test 142 trilaterate: distance1 (5110), distance2 (5110), distance3 (5110), point1 (LatLon(42°41′19.82″N, 002°26′19.89″E)), point2 (LatLon(42°38′07.52″N, 002°31′21.25″E)) or point3 (LatLon(42°38′43.44″N, 002°30′17.32″E)): no intersection (useZ=False, wrap=False, z=-8.13526e-05)\n\n    testNvector(pygeodesy.sphericalNvector, 25.05.27)\n    test 143 sumOf: Nvector\n    test 144 ecef.x, .y, .z: 3185744.91853, 3185744.91853, 4504643.3148\n    test 145 ecef.lat, .lon: 44.995674, 45.0\n    test 146 ecef.height: -0.0\n    test 147 ecef.M: -0.707106781, -0.499962243, 0.500037754, 0.707106781, -0.499962243, 0.500037754, 0.0, 0.707160174, 0.707053385\n    test 148 nearestOn: (0.0, 0.0, 0.0)\n    test 149 nearestOn: True\n    test 150 nearestOn: (100.0, 100.0, 100.0)\n    test 151 nearestOn: True\n    test 152 iscolinearWith: False\n    test 153 iscolinearWith: True\n    test 154 nearestOn: (0.0, 0.0, 0.0)\n    test 155 nearestOn: True\n    test 156 nearestOn: (100.0, 100.0, 100.0)\n    test 157 nearestOn: True\n    test 158 iscolinearWith: False\n    test 159 iscolinearWith: True\n\n    testNvectorBase(pygeodesy.nvectorBase, 25.08.18)\n    test 160 sumOf: Vector4Tuple\n    test 161 ecef.x, .y, .z: 3185744.91853, 3185744.91853, 4504643.3148\n    test 162 ecef.lat, .lon: 44.995674, 45.0\n    test 163 ecef.height: -0.0\n    test 164 ecef.M: -0.707106781, -0.499962243, 0.500037754, 0.707106781, -0.499962243, 0.500037754, 0.0, 0.707160174, 0.707053385\n    test 165 nearestOn: (0.0, 0.0, 0.0)\n    test 166 nearestOn: True\n    test 167 nearestOn: (100.0, 100.0, 100.0)\n    test 168 nearestOn: True\n    test 169 iscolinearWith: False\n    test 170 iscolinearWith: True\n    test 171 nearestOn: (0.0, 0.0, 0.0)\n    test 172 nearestOn: True\n    test 173 nearestOn: (100.0, 100.0, 100.0)\n    test 174 nearestOn: True\n    test 175 iscolinearWith: False\n    test 176 iscolinearWith: True\n\n    testNvectorBase(pygeodesy.nvectorBase, 25.08.18)\n    test 177 sumOf: Vector4Tuple\n    test 178 ecef.x, .y, .z: 3194659.54086, 3194659.54086, 4487008.4122\n    test 179 ecef.lat, .lon: 44.995674, 45.0\n    test 180 ecef.height: -0.0\n    test 181 ecef.M: -0.707106781, -0.499962243, 0.500037754, 0.707106781, -0.499962243, 0.500037754, 0.0, 0.707160174, 0.707053385\n    test 182 nearestOn: (0.0, 0.0, 0.0)\n    test 183 nearestOn: True\n    test 184 nearestOn: (100.0, 100.0, 100.0)\n    test 185 nearestOn: True\n    test 186 iscolinearWith: False\n    test 187 iscolinearWith: True\n    test 188 nearestOn: (0.0, 0.0, 0.0)\n    test 189 nearestOn: True\n    test 190 nearestOn: (100.0, 100.0, 100.0)\n    test 191 nearestOn: True\n    test 192 iscolinearWith: False\n    test 193 iscolinearWith: True\n\n    testCartesian(pygeodesy.sphericalNvector, 25.05.27)\n\n    14 tests skipped (14): numpy in PYGEODESY_XPACKAGES=numpy,scipy: required by vector2d._numpy\n\n    testCartesian(pygeodesy.sphericalTrigonometry, 25.08.31)\n\n    14 tests skipped (28): numpy in PYGEODESY_XPACKAGES=numpy,scipy: required by vector2d._numpy\n\n    testCartesian(pygeodesy.ellipsoidalNvector, 25.05.12)\n\n    14 tests skipped (42): numpy in PYGEODESY_XPACKAGES=numpy,scipy: required by vector2d._numpy\n\n    testCartesian(pygeodesy.ellipsoidalVincenty, 25.05.26)\n\n    14 tests skipped (56): numpy in PYGEODESY_XPACKAGES=numpy,scipy: required by vector2d._numpy\n\n    testCartesian(pygeodesy.ellipsoidalKarney, 25.05.27)\n\n    14 tests skipped (70): numpy in PYGEODESY_XPACKAGES=numpy,scipy: required by vector2d._numpy\n\n    testCartesian(pygeodesy.ellipsoidalExact, 25.08.28)\n\n    14 tests skipped (84): numpy in PYGEODESY_XPACKAGES=numpy,scipy: required by vector2d._numpy\n\n    testCartesianBase(pygeodesy.cartesianBase, 26.01.06)\n\n    14 tests skipped (98): numpy in PYGEODESY_XPACKAGES=numpy,scipy: required by vector2d._numpy\n\n    testNvectorBase(pygeodesy.nvectorBase, 25.08.18)\n\n    14 tests skipped (112): numpy in PYGEODESY_XPACKAGES=numpy,scipy: required by vector2d._numpy\n\n    testVector3d(pygeodesy.vector2d, 26.02.27)\n\n    14 tests skipped (126): numpy in PYGEODESY_XPACKAGES=numpy,scipy: required by vector2d._numpy\n\n    testTrilaterate2d2(pygeodesy.vector2d, 26.02.27)\n    test 194 trilaterate2d2: (2.0, 3.0)\n    test 195 trilaterate2d2: 'delta (6.39335377017e-06), radius1 (1.0), distance (1.00000639335) and trilaterate2d2(x=1.999994, y=3.000006)': exceeds eps (2.22045e-16)\n    test 196 trilaterate2d2: (-500.0, 250.0)\n    test 197 meeus2: 2.236, 3.0, 2.0, 0.0\n    test 198 meeus2: (3.0, 2.0, 0)\n    test 199 circum3: 2.2361\n    test 200 circum3: (3.0, 2.0, 0)\n    test 201 circum3: None\n\n    7 tests skipped (133): numpy in PYGEODESY_XPACKAGES=numpy,scipy: required by vector2d._numpy\n\n    testTrilaterate3d2(pygeodesy.vector2d, 26.02.27)\n\n    18 tests skipped (151): numpy in PYGEODESY_XPACKAGES=numpy,scipy: required by vector2d._numpy\n\n    testIntersection3d3(pygeodesy.vector3d, 25.05.07)\n    test 202 (30, 17): (Vector3d(30.30584, 16.75258, 0.0), 0, 0)\n    test 203 (-1,  3): (Vector3d(-1.0429, 2.92225, 0.0), -1, -2)\n    test 204 (65, 32): (Vector3d(64.86667, 32.0, 0.0), 1, -2)\n    test 205 (-2, 17): <class 'pygeodesy.errors.IntersectionError'>\n    test 206 (49, 25): (Vector3d(49.0, 25.0, 0.0), 0, 0)\n\n    test 207 at 0: (0.0, 50.0, 0.0)\n    test 208 at 3: (2.6168, 49.93148, 0.0)\n    test 209 at 6: (5.22642, 49.72609, 0.0)\n    test 210 at 9: (7.82172, 49.38442, 0.0)\n    test 211 at 12: (10.39558, 48.90738, 0.0)\n    test 212 at 15: (12.94095, 48.29629, 0.0)\n    test 213 at 18: (15.45085, 47.55283, 0.0)\n    test 214 at 21: (17.9184, 46.67902, 0.0)\n    test 215 at 24: (20.33683, 45.67727, 0.0)\n    test 216 at 27: (22.69952, 44.55033, 0.0)\n    test 217 at 30: (25.0, 43.30127, 0.0)\n    test 218 at 33: (27.23195, 41.93353, 0.0)\n    test 219 at 36: (29.38926, 40.45085, 0.0)\n    test 220 at 39: (31.46602, 38.8573, 0.0)\n    test 221 at 42: (33.45653, 37.15724, 0.0)\n    test 222 at 45: (35.35534, 35.35534, 0.0)\n    test 223 at 48: (37.15724, 33.45653, 0.0)\n    test 224 at 51: (38.8573, 31.46602, 0.0)\n    test 225 at 54: (40.45085, 29.38926, 0.0)\n    test 226 at 57: (41.93353, 27.23195, 0.0)\n    test 227 at 60: (43.30127, 25.0, 0.0)\n    test 228 at 63: (44.55033, 22.69952, 0.0)\n    test 229 at 66: (45.67727, 20.33683, 0.0)\n    test 230 at 69: (46.67902, 17.9184, 0.0)\n    test 231 at 72: (47.55283, 15.45085, 0.0)\n    test 232 at 75: (48.29629, 12.94095, 0.0)\n    test 233 at 78: (48.90738, 10.39558, 0.0)\n    test 234 at 81: (49.38442, 7.82172, 0.0)\n    test 235 at 84: (49.72609, 5.22642, 0.0)\n    test 236 at 87: (49.93148, 2.6168, 0.0)\n    test 237 at 90: (50.0, 0.0, 0.0)\n    test 238 at 93: (49.93148, -2.6168, 0.0)\n    test 239 at 96: (49.72609, -5.22642, 0.0)\n    test 240 at 99: (49.38442, -7.82172, 0.0)\n    test 241 at 102: (48.90738, -10.39558, 0.0)\n    test 242 at 105: (48.29629, -12.94095, 0.0)\n    test 243 at 108: (47.55283, -15.45085, 0.0)\n    test 244 at 111: (46.67902, -17.9184, 0.0)\n    test 245 at 114: (45.67727, -20.33683, 0.0)\n    test 246 at 117: (44.55033, -22.69952, 0.0)\n    test 247 at 120: (43.30127, -25.0, 0.0)\n    test 248 at 123: (41.93353, -27.23195, 0.0)\n    test 249 at 126: (40.45085, -29.38926, 0.0)\n    test 250 at 129: (38.8573, -31.46602, 0.0)\n    test 251 at 132: (37.15724, -33.45653, 0.0)\n    test 252 at 135: (35.35534, -35.35534, 0.0)\n    test 253 at 138: (33.45653, -37.15724, 0.0)\n    test 254 at 141: (31.46602, -38.8573, 0.0)\n    test 255 at 144: (29.38926, -40.45085, 0.0)\n    test 256 at 147: (27.23195, -41.93353, 0.0)\n    test 257 at 150: (25.0, -43.30127, 0.0)\n    test 258 at 153: (22.69952, -44.55033, 0.0)\n    test 259 at 156: (20.33683, -45.67727, 0.0)\n    test 260 at 159: (17.9184, -46.67902, 0.0)\n    test 261 at 162: (15.45085, -47.55283, 0.0)\n    test 262 at 165: (12.94095, -48.29629, 0.0)\n    test 263 at 168: (10.39558, -48.90738, 0.0)\n    test 264 at 171: (7.82172, -49.38442, 0.0)\n    test 265 at 174: (5.22642, -49.72609, 0.0)\n    test 266 at 177: (2.6168, -49.93148, 0.0)\n    test 267 at 180: (0.0, -50.0, 0.0)\n    test 268 at 183: (-2.6168, -49.93148, 0.0)\n    test 269 at 186: (-5.22642, -49.72609, 0.0)\n    test 270 at 189: (-7.82172, -49.38442, 0.0)\n    test 271 at 192: (-10.39558, -48.90738, 0.0)\n    test 272 at 195: (-12.94095, -48.29629, 0.0)\n    test 273 at 198: (-15.45085, -47.55283, 0.0)\n    test 274 at 201: (-17.9184, -46.67902, 0.0)\n    test 275 at 204: (-20.33683, -45.67727, 0.0)\n    test 276 at 207: (-22.69952, -44.55033, 0.0)\n    test 277 at 210: (-25.0, -43.30127, 0.0)\n    test 278 at 213: (-27.23195, -41.93353, 0.0)\n    test 279 at 216: (-29.38926, -40.45085, 0.0)\n    test 280 at 219: (-31.46602, -38.8573, 0.0)\n    test 281 at 222: (-33.45653, -37.15724, 0.0)\n    test 282 at 225: (-35.35534, -35.35534, 0.0)\n    test 283 at 228: (-37.15724, -33.45653, 0.0)\n    test 284 at 231: (-38.8573, -31.46602, 0.0)\n    test 285 at 234: (-40.45085, -29.38926, 0.0)\n    test 286 at 237: (-41.93353, -27.23195, 0.0)\n    test 287 at 240: (-43.30127, -25.0, 0.0)\n    test 288 at 243: (-44.55033, -22.69952, 0.0)\n    test 289 at 246: (-45.67727, -20.33683, 0.0)\n    test 290 at 249: (-46.67902, -17.9184, 0.0)\n    test 291 at 252: (-47.55283, -15.45085, 0.0)\n    test 292 at 255: (-48.29629, -12.94095, 0.0)\n    test 293 at 258: (-48.90738, -10.39558, 0.0)\n    test 294 at 261: (-49.38442, -7.82172, 0.0)\n    test 295 at 264: (-49.72609, -5.22642, 0.0)\n    test 296 at 267: (-49.93148, -2.6168, 0.0)\n    test 297 at 270: (-50.0, 0.0, 0.0)\n    test 298 at 273: (-49.93148, 2.6168, 0.0)\n    test 299 at 276: (-49.72609, 5.22642, 0.0)\n    test 300 at 279: (-49.38442, 7.82172, 0.0)\n    test 301 at 282: (-48.90738, 10.39558, 0.0)\n    test 302 at 285: (-48.29629, 12.94095, 0.0)\n    test 303 at 288: (-47.55283, 15.45085, 0.0)\n    test 304 at 291: (-46.67902, 17.9184, 0.0)\n    test 305 at 294: (-45.67727, 20.33683, 0.0)\n    test 306 at 297: (-44.55033, 22.69952, 0.0)\n    test 307 at 300: (-43.30127, 25.0, 0.0)\n    test 308 at 303: (-41.93353, 27.23195, 0.0)\n    test 309 at 306: (-40.45085, 29.38926, 0.0)\n    test 310 at 309: (-38.8573, 31.46602, 0.0)\n    test 311 at 312: (-37.15724, 33.45653, 0.0)\n    test 312 at 315: (-35.35534, 35.35534, 0.0)\n    test 313 at 318: (-33.45653, 37.15724, 0.0)\n    test 314 at 321: (-31.46602, 38.8573, 0.0)\n    test 315 at 324: (-29.38926, 40.45085, 0.0)\n    test 316 at 327: (-27.23195, 41.93353, 0.0)\n    test 317 at 330: (-25.0, 43.30127, 0.0)\n    test 318 at 333: (-22.69952, 44.55033, 0.0)\n    test 319 at 336: (-20.33683, 45.67727, 0.0)\n    test 320 at 339: (-17.9184, 46.67902, 0.0)\n    test 321 at 342: (-15.45085, 47.55283, 0.0)\n    test 322 at 345: (-12.94095, 48.29629, 0.0)\n    test 323 at 348: (-10.39558, 48.90738, 0.0)\n    test 324 at 351: (-7.82172, 49.38442, 0.0)\n    test 325 at 354: (-5.22642, 49.72609, 0.0)\n    test 326 at 357: (-2.6168, 49.93148, 0.0)\n    test 327 at 360: (0.0, 50.0, 0.0)\n    test 328 max error: 2.3317285650e-13\n\n    44 of 328 testVectorial.py tests (13.4%) FAILED, incl. 7 KNOWN plus 37 DeprecationWarnings, 151 skipped (pygeodesy 26.3.26 PyPy 7.3.17 Python 3.10.14 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 294.331 ms\nrunning /opt/local/bin/p....y3.10 -W default ~/PyGeodesy/test/testWebMercator.py\n# lazily imported pygeodesy.basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.DeprecationWarnings from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isint from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isLazy from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.issubclassof from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.iterNumpy2over from .iters by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.LazyImportError from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.karney by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.NN from .interns by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.normDMS from .dms by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.pairs from .streprs by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.printf from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.property_RO from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.typename from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.F_D from .dms by testWebMercator.py line 12\n# lazily imported pygeodesy.F_DMS from .dms by testWebMercator.py line 12\n# lazily imported pygeodesy.R_M from .constants by testWebMercator.py line 12\n# lazily imported pygeodesy.R_MA from .constants by testWebMercator.py line 12\n# lazily imported pygeodesy.Datums from .datums by testWebMercator.py line 12\n# lazily imported pygeodesy.fstr from .streprs by testWebMercator.py line 12\n# lazily imported pygeodesy.toWm from .webmercator by testWebMercator.py line 12\n# lazily imported pygeodesy.Wm from .webmercator by testWebMercator.py line 12\n# lazily imported pygeodesy.ellipsoidalVincenty by testWebMercator.py line 153\n# lazily imported pygeodesy.sphericalTrigonometry by testWebMercator.py line 153\n\n    testing testWebMercator.py 23.06.12 (module pygeodesy.webmercator 25.05.12) isLazy=3\n    test 1 toWm1: -626172.13571216 6887893.4928338\n    test 2 Wm1.y: 6887893.49283380\n    test 3 copy(<class 'type'>): (<class 'pygeodesy.webmercator.Wm'>, True)\n    test 4 Wm.copy(): (<class 'pygeodesy.webmercator.Wm'>, True)\n    test 5 Wm2: 448251.795 5411932.678\n    test 6 Wm2: 448252 5411933\n    test 7 Wm2: 448251.8 5411932.7\n    test 8 copy(<class 'type'>): (<class 'pygeodesy.webmercator.Wm'>, True)\n    test 9 Wm.copy(): (<class 'pygeodesy.webmercator.Wm'>, True)\n    test 10 Wm2.to2ll: 43.65321741, 4.02671439\n    test 11 Wm2.toLatLon: (43.653217, 4.026714, Datum(name='_Wm', ellipsoid=Ellipsoids._Wm, transform=Transforms.Identity))\n    test 12 Wm2.toLatLon: 43.653217°N, 004.026714°E\n    test 13 Wm2.toLatLon: 43°39′11.58″N, 004°01′36.17″E\n    test 14 toWm1: 448251.795 5411932.678\n    test 15 toWm2: 448252 5411933\n    test 16 toWm3: [x:448252, y:5411933, radius:6378137]\n    test 17 copy: 448251.795 5411932.678\n    test 18 parse: 448251.795 5411932.678\n    test 19 parse: 448251.795 5411932.678\n    test 20 parse: [x:448251.795, y:5411932.678, radius:6378137.0]\n    test 21 toWm4: 11549466 1505215\n    test 22 toWm4: 11549465.988273 1505214.929251\n    test 23 toWm4E: 11562388 1496994\n    test 24 toWm4E: 11562388.154378 1496993.698095\n    test 25 toWm: -11169056 2800000\n    test 26 toWm: -11169055.576258 2800000.003136\n    test 27 toWm5E: -11169056 2782367\n    test 28 toWm5E: -11169055.576258 2782367.05923\n    test 29 toWm5: -11156573 2796871\n    test 30 toWm5: -11156573.000041 2796870.713179\n    test 31 Wm6.toLatLon: 24.46358°N, 100.333333°W\n    test 32 Wm6.toLatLon: 24°27′48.89″N, 100°20′00.0″W\n    test 33 Wm6.toLatLonE: 24.299812°N, 100.333333°W\n    test 34 Wm6.toLatLonE: 24°17′59.32″N, 100°20′00.0″W\n    test 35 Wm7.toLatLon: 24.381787°N, 100.333333°W\n    test 36 Wm7.toLatLon: 24°22′54.43″N, 100°20′00.0″W\n    test 37 Wm7.toLatLonE: 24.218566°N, 100.333333°W\n    test 38 Wm7.toLatLonE: 24°13′06.84″N, 100°20′00.0″W\n    test 39 Wm8.toWm: -33878.893, 6693890.382, 6378137.0\n    test 40 Wm8.toWm: [x:-33878.893, y:6693890.382]\n    test 41 Wm8.toWm: -33878.893 6693890.382 6371008.771\n    test 42 Wm8.toWm.x: -33878.893\n    test 43 Wm8.toWm.y: 6693890.382\n    test 44 Wm8.toWm.latlon: 51.408596, -0.304339\n    test 45 Wm8.toWm.philam: 0.897249, -0.005312\n    test 46 Wm8.toLatLon: 51.408596053784°N, 000.304339270785°W\n    test 47 Wm8.toLatLon: 51°24′30.945794″N, 000°18′15.621375″W\n# imported pygeodesy.streprs into errors.py line 553\n    test 48 Wm9.toLatLon: TypeError\n\n    test 49 toWm(10.0000, 0, earth=R_MA).y: 1118889.97\n    test 50 toWm(20.0000, 0, earth=R_MA).y: 2273030.93\n    test 51 toWm(30.0000, 0, earth=R_MA).y: 3503549.84\n    test 52 toWm(40.0000, 0, earth=R_MA).y: 4865942.28\n    test 53 toWm(50.0000, 0, earth=R_MA).y: 6446275.84\n    test 54 toWm(60.0000, 0, earth=R_MA).y: 8399737.89\n\n    test 55 toWm(10.0003, 0, earth=R_MA).y: 1118921.37\n    test 56 toWm(20.0003, 0, earth=R_MA).y: 2273063.83\n    test 57 toWm(30.0003, 0, earth=R_MA).y: 3503585.55\n    test 58 toWm(40.0003, 0, earth=R_MA).y: 4865982.65\n    test 59 toWm(50.0003, 0, earth=R_MA).y: 6446323.95\n    test 60 toWm(60.0003, 0, earth=R_MA).y: 8399799.73\n\n    test 61 toWm(10.0000, 0, earth=WGS84).y: 1111475.10\n    test 62 toWm(20.0000, 0, earth=WGS84).y: 2258423.65\n    test 63 toWm(30.0000, 0, earth=WGS84).y: 3482189.09\n    test 64 toWm(40.0000, 0, earth=WGS84).y: 4838471.40\n    test 65 toWm(50.0000, 0, earth=WGS84).y: 6413524.59\n    test 66 toWm(60.0000, 0, earth=WGS84).y: 8362698.55\n\n    test 67 toWm(10.0003, 0, earth=WGS84).y: 1111506.30\n    test 68 toWm(20.0003, 0, earth=WGS84).y: 2258456.36\n    test 69 toWm(30.0003, 0, earth=WGS84).y: 3482224.61\n    test 70 toWm(40.0003, 0, earth=WGS84).y: 4838511.61\n    test 71 toWm(50.0003, 0, earth=WGS84).y: 6413572.57\n    test 72 toWm(60.0003, 0, earth=WGS84).y: 8362760.29\n\n    all 72 testWebMercator.py tests passed (pygeodesy 26.3.26 PyPy 7.3.17 Python 3.10.14 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 4.843 ms\nrunning /opt/local/bin/p....y3.10 -W default ~/PyGeodesy/test/testWgrs.py\n# lazily imported pygeodesy.basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.DeprecationWarnings from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isint from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.isLazy from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.issubclassof from .basics by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.iterNumpy2over from .iters by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.LazyImportError from .lazily by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.karney by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.NN from .interns by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.normDMS from .dms by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.pairs from .streprs by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.printf from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.property_RO from .props by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.typename from .internals by <frozen importlib._bootstrap> line 1149\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.degDMS from .dms by testWgrs.py line 11\n# lazily imported pygeodesy.fstr from .streprs by testWgrs.py line 11\n# lazily imported pygeodesy.Georef from .wgrs by testWgrs.py line 11\n# lazily imported pygeodesy.S_DEG from .dms by testWgrs.py line 11\n# lazily imported pygeodesy.S_MIN from .dms by testWgrs.py line 11\n# lazily imported pygeodesy.ellipsoidalVincenty by testWgrs.py line 96\n\n    testing testWgrs.py 23.03.27 (module pygeodesy.wgrs 25.04.14) isLazy=3\n    test 1 Georef: 'NKLN2444638946'\n    test 2 Georef: Georef('NKLN2444638946')\n    test 3 Georef: NKLN2444638946\n    test 4 Georef.latlon: 57.64911, 10.40744\n    test 5 Georef.toLatLon: LatLon(57°38′56.8″N, 010°24′26.78″E)\n    test 6 codec3: NKLN2444638946\n    test 7 decode3: 57.64911, 10.40744, 6.0\n    test 8 encode: NKLN2444638946\n    test 9 Georef: 'NKLN2444638946H0'\n    test 10 Georef: Georef('NKLN2444638946H0')\n    test 11 Georef: NKLN2444638946H0\n    test 12 Georef.latlon: 57.64911, 10.40744\n    test 13 Georef.precision: 6\n    test 14 Georef.radius: None\n    test 15 Georef: 'GJPJ3424917166'\n    test 16 Georef: Georef('GJPJ3424917166')\n    test 17 Georef: GJPJ3424917166\n    test 18 Georef.latlon: 38.286108, -76.42917\n    test 19 Georef.toLatLon: LatLon(38°17′09.99″N, 076°25′45.01″W)\n    test 20 codec3: GJPJ3424917166\n    test 21 decode3: 38.286108, -76.429175, 6.0\n    test 22 encode: GJPJ3424917166\n    test 23 Georef: 'GJPJ3424917166H0'\n    test 24 Georef: Georef('GJPJ3424917166H0')\n    test 25 Georef: GJPJ3424917166H0\n    test 26 Georef.latlon: 38.286108, -76.42917\n    test 27 Georef.precision: 6\n    test 28 Georef.radius: None\n    test 29 Georef.3Tuple: 38.286108, -76.42917, 0.0\n    test 30 codec3: MKPG1204\n    test 31 decode3: 51.075, -1.7917, 3.0\n    test 32 encode: MKPG1204\n    test 33 codec3: WJKG1503\n    test 34 decode3: 36.0583, 129.2583, 3.0\n    test 35 encode: WJKG1503\n    test 36 codec5: GJPJ4103R5\n    test 37 decode5: 38.0583, -76.3083, 3.0, None, 9260.0\n    test 38 encode: GJPJ4103R5\n    test 39 codec5: GJPJ4103H17\n    test 40 decode5: 38.0583, -76.3083, 3.0, 5181.6, None\n    test 41 encode: GJPJ4103H17\n    test 42 codec5: GJPJ4103R5H17\n    test 43 decode5: 38.0583, -76.3083, 3.0, 5181.6, 9260.0\n    test 44 encode: GJPJ4103R5H17\n    test 45 precision: -1  FAILED, KNOWN, expected 0\n    test 46 resolution: 15°\n    test 47 precision: 0\n    test 48 resolution: 15°\n    test 49 precision: 1\n    test 50 resolution: 1°\n    test 51 precision: 2\n    test 52 resolution: 0.1′\n    test 53 precision: 3\n    test 54 resolution: 0.01′\n    test 55 precision: 4\n    test 56 resolution: 0.001′\n    test 57 precision: 5\n    test 58 resolution: 0.0001′\n    test 59 precision: 6\n    test 60 resolution: 0.00001′\n    test 61 precision: 7\n    test 62 resolution: 0.000001′\n    test 63 precision: 8\n    test 64 resolution: 0.0000001′\n    test 65 precision: 9\n    test 66 resolution: 0.00000001′\n    test 67 precision: 10\n    test 68 resolution: 0.000000001′\n    test 69 precision: 11\n    test 70 resolution: 0.0000000001′\n    test 71 precision: 12  FAILED, KNOWN, expected 11\n    test 72 resolution: 0.0000000001′\n\n    2 of 72 testWgrs.py tests (2.8%) FAILED, ALL KNOWN (pygeodesy 26.3.26 PyPy 7.3.17 Python 3.10.14 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 3.283 ms\n\ntest/run.py /opt/local/bin/p....y3.10 -W default: all 44357 tests OK (pygeodesy 26.3.26 PyPy 7.3.17 Python 3.10.14 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W default) 2:03.752 (358.433 tps)\n"
  },
  {
    "path": "testresults/testresults-pygeodesy-26.3.26-Python-2.7.18-64bit-arm64_x86_64-geographiclib-1.50-numpy-1.....-GeodSolve-2.7-Geod3Solve-2.7-IntersectTool-2.7-RhumbSolve-2.7-macOS-26.3.1--W-default.txt",
    "content": "test/run.py typical test results (pygeodesy 26.3.26 Python 2.7.18 64bit arm64_x86_64 geographiclib 1.50 numpy 1.16.6 scipy 1.2.2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 -W default)\nrunning /Library/Framewo....ython -W default ~/PyGeodesy/test/testAlbers.py\n\n    testing testAlbers.py 24.12.31 (module pygeodesy.albers 26.02.27)\n    test 1 name: Karney_example\n    test 2 datum: WGS84\n    test 3 ellipsoid: WGS84\n    test 4 lat0: 40.451991337063\n    test 5 scale0: 0.999959500363\n    test 6 equatoradius: 6378137.000000000000\n    test 7 flattening: 0.003352810665\n    test 8 _sign: 1.000000000000\n    test 9 _m02: 0.580681094922\n    test 10 _n0: 0.648810669236\n    test 11 _txi0: 0.848822476849\n    test 12 iteration: 3\n    test 13 ispolar: False\n    test 14 forward: -5675721.76113534, 2516917.91242155, 39.95, -75.17, 311.23285234, 0.99999745\n    test 15 reverse: -5675721.76113534, 2516917.91242155, 39.95, -75.17, 311.23285234, 0.99999745\n    test 16 forward: 199089.12574012, -53115.52801838, 39.95, 2.33, 1.51160641, 0.99999745\n    test 17 reverse: 199089.12574012, -53115.52801838, 39.95, -75.17, 1.51160641, 0.99999745  FAILED, KNOWN, expected 199089.12574012, -53115.52801838, 39.95, 2.33, 1.51160641, 0.99999745\n    test 18 reverse: 220000.0, -53000.0, 39.94581132, 2.57463362, 1.67031446, 0.99999808\n    test 19 forward: 220000.0, -53000.0, 39.94581132, 2.57463362, 1.67031446, 0.99999808\n    test 20 reverse: 220000.0, -53000.0, 39.94581132, -74.92536638, 1.67031446, 0.99999808\n    test 21 forward: 220000.0, -53000.0, 39.94581132, 2.57463362, 1.67031446, 0.99999808  FAILED, KNOWN, expected 220000.0, -53000.0, 39.94581132, -74.92536638, 1.67031446, 0.99999808\n\n    testPage292(pygeodesy.albers, 26.02.27)\n    test 22 name: Snyder_p292\n    test 23 datum: NAD27\n    test 24 ellipsoid: Clarke1866\n    test 25 lat0: 37.934543880726\n    test 26 scale0: 0.990309187872\n    test 27 equatoradius: 6378206.400000000373\n    test 28 flattening: 0.003390075304\n    test 29 _sign: 1.000000000000\n    test 30 _m02: 0.623664507732\n    test 31 _n0: 0.614760830736\n    test 32 _txi0: 0.775925617021\n    test 33 iteration: 4\n    test 34 ispolar: False\n    test 35 forward: -6105839.22928149, 2214046.74930274, 35.0, -75.0, 314.78223745, 0.99155461  FAILED, KNOWN, expected -6105839.22928148, 2214046.74930274, 35.0, -75.0, 314.78223745, 0.99155461\n    test 36 reverse: -6105839.22928149, 2214046.74930274, 35.0, -75.0, 314.78223745, 0.99155461  FAILED, KNOWN, expected -6105839.22928148, 2214046.74930274, 35.0, -75.0, 314.78223745, 0.99155461\n    test 37 forward: 1885472.72581347, -119505.66687765, 35.0, 21.0, 12.66097351, 0.99155461  FAILED, KNOWN, expected 1885472.72581347, -119505.66687766, 35.0, 21.0, 12.66097351, 0.99155461\n    test 38 reverse: 1885472.72581347, -119505.66687765, 35.0, -75.0, 12.66097351, 0.99155461  FAILED, KNOWN, expected 1885472.72581347, -119505.66687766, 35.0, 21.0, 12.66097351, 0.99155461\n    test 39 reverse: 1885427.7, 1535925.0, 49.40436665, 25.93001383, 15.63329611, 1.01436109\n    test 40 forward: 1885427.7, 1535925.0, 49.40436665, 25.93001383, 15.63329611, 1.01436109\n    test 41 reverse: 1885427.7, 1535925.0, 49.40436665, -70.06998617, 15.63329611, 1.01436109\n    test 42 forward: 1885427.7, 1535925.0, 49.40436665, 25.93001383, 15.63329611, 1.01436109  FAILED, KNOWN, expected 1885427.7, 1535925.0, 49.40436665, -70.06998617, 15.63329611, 1.01436109\n\n    testTable15(pygeodesy.albers, 26.02.27)\n    test 43 52 k: 1.02863\n    test 44 50 k: 1.01727\n    test 45 45.5 k: 1.00000\n    test 46 45 k: 0.99869\n    test 47 40 k: 0.99097\n    test 48 35 k: 0.99155\n    test 49 30 k: 0.99893\n    test 50 29.5 k: 1.00000\n    test 51 25 k: 1.01222\n    test 52 22 k: 1.02283\n\n    testLats(pygeodesy.albers, 26.02.27)\n    test 53 AlbersEqualArea.toRepr: AlbersEqualArea(45.0, k0=1.0)\n    test 54 AlbersEqualArea.lat0: 45.0\n    test 55 AlbersEqualArea.lat1: 45.0\n    test 56 AlbersEqualArea.lat2: 45.0\n\n    test 57 AlbersEqualArea2.toRepr: AlbersEqualArea2(40.0, 40.0, k1=1.0)\n    test 58 AlbersEqualArea2.lat0: 40.0\n    test 59 AlbersEqualArea2.lat1: 40.0\n    test 60 AlbersEqualArea2.lat2: 40.0\n\n    test 61 AlbersEqualArea4.toRepr: AlbersEqualArea4(30.0, 30.0, k1=1.0)\n    test 62 AlbersEqualArea4.lat0: 30.0\n    test 63 AlbersEqualArea4.lat1: 30.0\n    test 64 AlbersEqualArea4.lat2: 30.0\n\n    test 65 AlbersEqualArea4.toRepr: AlbersEqualArea4(-30.0, -30.0, k1=1.0)\n    test 66 AlbersEqualArea4.lat0: -30.0\n    test 67 AlbersEqualArea4.lat1: -30.0\n    test 68 AlbersEqualArea4.lat2: -30.0\n\n    test 69 AlbersEqualAreaCylindrical.toRepr: AlbersEqualAreaCylindrical(0.0)\n    test 70 AlbersEqualAreaCylindrical.lat0: 0.0\n    test 71 AlbersEqualAreaCylindrical.lat1: 0.0\n    test 72 AlbersEqualAreaCylindrical.lat2: 0.0\n\n    test 73 AlbersEqualAreaNorth.toRepr: AlbersEqualAreaNorth(90.0)\n    test 74 AlbersEqualAreaNorth.lat0: 90.0\n    test 75 AlbersEqualAreaNorth.lat1: 90.0\n    test 76 AlbersEqualAreaNorth.lat2: 90.0\n\n    test 77 AlbersEqualAreaSouth.toRepr: AlbersEqualAreaSouth(-90.0)\n    test 78 AlbersEqualAreaSouth.lat0: -90.0\n    test 79 AlbersEqualAreaSouth.lat1: -90.0\n    test 80 AlbersEqualAreaSouth.lat2: -90.0\n\n    test 81 error: clat1 (-0.8660254037844387) or clat2 (1.0): negative  FAILED, KNOWN, expected clat1 (-0.8660254037844386) or clat2 (1.0): negative\n    test 82 error: slat1 (-0.5000000000000001) or slat2 (0.5000000000000001): negative  FAILED, KNOWN, expected slat1 (-0.5) or slat2 (0.5): negative\n\n    9 of 82 testAlbers.py tests (11.0%) FAILED, ALL KNOWN (pygeodesy 26.3.26 Python 2.7.18 64bit arm64_x86_64 geographiclib 1.50 numpy 1.16.6 scipy 1.2.2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 -W  default) 64.483 ms\nrunning /Library/Framewo....ython -W default ~/PyGeodesy/test/testAngles.py\n\n    testing testAngles.py 25.12.01 (module pygeodesy.angles 25.12.02)\n    test 1 D: -716.000000\n    test 2 r: -12.496557\n    test 3 n: -2.0\n    test 4 R: -7.160000\n    test 5 d: -410.237781\n    test 6 n: -1.0\n    test 7 D: -713.000000\n    test 8 r: -12.444198\n    test 9 n: -2.0\n    test 10 R: -7.130000\n    test 11 d: -408.518908\n    test 12 n: -1.0\n    test 13 D: -710.000000\n    test 14 r: -12.391838\n    test 15 n: -2.0\n    test 16 R: -7.100000\n    test 17 d: -406.800035\n    test 18 n: -1.0\n    test 19 D: -707.000000\n    test 20 r: -12.339478\n    test 21 n: -2.0\n    test 22 R: -7.070000\n    test 23 d: -405.081161\n    test 24 n: -1.0\n    test 25 D: -704.000000\n    test 26 r: -12.287118\n    test 27 n: -2.0\n    test 28 R: -7.040000\n    test 29 d: -403.362288\n    test 30 n: -1.0\n    test 31 D: -701.000000\n    test 32 r: -12.234758\n    test 33 n: -2.0\n    test 34 R: -7.010000\n    test 35 d: -401.643414\n    test 36 n: -1.0\n    test 37 D: -698.000000\n    test 38 r: -12.182398\n    test 39 n: -2.0\n    test 40 R: -6.980000\n    test 41 d: -399.924541\n    test 42 n: -1.0\n    test 43 D: -695.000000\n    test 44 r: -12.130038\n    test 45 n: -2.0\n    test 46 R: -6.950000\n    test 47 d: -398.205668\n    test 48 n: -1.0\n    test 49 D: -692.000000\n    test 50 r: -12.077678\n    test 51 n: -2.0\n    test 52 R: -6.920000\n    test 53 d: -396.486794\n    test 54 n: -1.0\n    test 55 D: -689.000000\n    test 56 r: -12.025319\n    test 57 n: -2.0\n    test 58 R: -6.890000\n    test 59 d: -394.767921\n    test 60 n: -1.0\n    test 61 D: -686.000000\n    test 62 r: -11.972959\n    test 63 n: -2.0\n    test 64 R: -6.860000\n    test 65 d: -393.049047\n    test 66 n: -1.0\n    test 67 D: -683.000000\n    test 68 r: -11.920599\n    test 69 n: -2.0\n    test 70 R: -6.830000\n    test 71 d: -391.330174\n    test 72 n: -1.0\n    test 73 D: -680.000000\n    test 74 r: -11.868239\n    test 75 n: -2.0\n    test 76 R: -6.800000\n    test 77 d: -389.611301\n    test 78 n: -1.0\n    test 79 D: -677.000000\n    test 80 r: -11.815879\n    test 81 n: -2.0\n    test 82 R: -6.770000\n    test 83 d: -387.892427\n    test 84 n: -1.0\n    test 85 D: -674.000000\n    test 86 r: -11.763519\n    test 87 n: -2.0\n    test 88 R: -6.740000\n    test 89 d: -386.173554\n    test 90 n: -1.0\n    test 91 D: -671.000000\n    test 92 r: -11.711159\n    test 93 n: -2.0\n    test 94 R: -6.710000\n    test 95 d: -384.454681\n    test 96 n: -1.0\n    test 97 D: -668.000000\n    test 98 r: -11.658799\n    test 99 n: -2.0\n    test 100 R: -6.680000\n    test 101 d: -382.735807\n    test 102 n: -1.0\n    test 103 D: -665.000000\n    test 104 r: -11.606440\n    test 105 n: -2.0\n    test 106 R: -6.650000\n    test 107 d: -381.016934\n    test 108 n: -1.0\n    test 109 D: -662.000000\n    test 110 r: -11.554080\n    test 111 n: -2.0\n    test 112 R: -6.620000\n    test 113 d: -379.298060\n    test 114 n: -1.0\n    test 115 D: -659.000000\n    test 116 r: -11.501720\n    test 117 n: -2.0\n    test 118 R: -6.590000\n    test 119 d: -377.579187\n    test 120 n: -1.0\n    test 121 D: -656.000000\n    test 122 r: -11.449360\n    test 123 n: -2.0\n    test 124 R: -6.560000\n    test 125 d: -375.860314\n    test 126 n: -1.0\n    test 127 D: -653.000000\n    test 128 r: -11.397000\n    test 129 n: -2.0\n    test 130 R: -6.530000\n    test 131 d: -374.141440\n    test 132 n: -1.0\n    test 133 D: -650.000000\n    test 134 r: -11.344640\n    test 135 n: -2.0\n    test 136 R: -6.500000\n    test 137 d: -372.422567\n    test 138 n: -1.0\n    test 139 D: -647.000000\n    test 140 r: -11.292280\n    test 141 n: -2.0\n    test 142 R: -6.470000\n    test 143 d: -370.703693\n    test 144 n: -1.0\n    test 145 D: -644.000000\n    test 146 r: -11.239920\n    test 147 n: -2.0\n    test 148 R: -6.440000\n    test 149 d: -368.984820\n    test 150 n: -1.0\n    test 151 D: -641.000000\n    test 152 r: -11.187561\n    test 153 n: -2.0\n    test 154 R: -6.410000\n    test 155 d: -367.265947\n    test 156 n: -1.0\n    test 157 D: -638.000000\n    test 158 r: -11.135201\n    test 159 n: -2.0\n    test 160 R: -6.380000\n    test 161 d: -365.547073\n    test 162 n: -1.0\n    test 163 D: -635.000000\n    test 164 r: -11.082841\n    test 165 n: -2.0\n    test 166 R: -6.350000\n    test 167 d: -363.828200\n    test 168 n: -1.0\n    test 169 D: -632.000000\n    test 170 r: -11.030481\n    test 171 n: -2.0\n    test 172 R: -6.320000\n    test 173 d: -362.109327\n    test 174 n: -1.0\n    test 175 D: -629.000000\n    test 176 r: -10.978121\n    test 177 n: -2.0\n    test 178 R: -6.290000\n    test 179 d: -360.390453\n    test 180 n: -1.0\n    test 181 D: -626.000000\n    test 182 r: -10.925761\n    test 183 n: -2.0\n    test 184 R: -6.260000\n    test 185 d: -358.671580\n    test 186 n: -1.0\n    test 187 D: -623.000000\n    test 188 r: -10.873401\n    test 189 n: -2.0\n    test 190 R: -6.230000\n    test 191 d: -356.952706\n    test 192 n: -1.0\n    test 193 D: -620.000000\n    test 194 r: -10.821041\n    test 195 n: -2.0\n    test 196 R: -6.200000\n    test 197 d: -355.233833\n    test 198 n: -1.0\n    test 199 D: -617.000000\n    test 200 r: -10.768681\n    test 201 n: -2.0\n    test 202 R: -6.170000\n    test 203 d: -353.514960\n    test 204 n: -1.0\n    test 205 D: -614.000000\n    test 206 r: -10.716322\n    test 207 n: -2.0\n    test 208 R: -6.140000\n    test 209 d: -351.796086\n    test 210 n: -1.0\n    test 211 D: -611.000000\n    test 212 r: -10.663962\n    test 213 n: -2.0\n    test 214 R: -6.110000\n    test 215 d: -350.077213\n    test 216 n: -1.0\n    test 217 D: -608.000000\n    test 218 r: -10.611602\n    test 219 n: -2.0\n    test 220 R: -6.080000\n    test 221 d: -348.358339\n    test 222 n: -1.0\n    test 223 D: -605.000000\n    test 224 r: -10.559242\n    test 225 n: -2.0\n    test 226 R: -6.050000\n    test 227 d: -346.639466\n    test 228 n: -1.0\n    test 229 D: -602.000000\n    test 230 r: -10.506882\n    test 231 n: -2.0\n    test 232 R: -6.020000\n    test 233 d: -344.920593\n    test 234 n: -1.0\n    test 235 D: -599.000000\n    test 236 r: -10.454522\n    test 237 n: -2.0\n    test 238 R: -5.990000\n    test 239 d: -343.201719\n    test 240 n: -1.0\n    test 241 D: -596.000000\n    test 242 r: -10.402162\n    test 243 n: -2.0\n    test 244 R: -5.960000\n    test 245 d: -341.482846\n    test 246 n: -1.0\n    test 247 D: -593.000000\n    test 248 r: -10.349802\n    test 249 n: -2.0\n    test 250 R: -5.930000\n    test 251 d: -339.763973\n    test 252 n: -1.0\n    test 253 D: -590.000000\n    test 254 r: -10.297443\n    test 255 n: -2.0\n    test 256 R: -5.900000\n    test 257 d: -338.045099\n    test 258 n: -1.0\n    test 259 D: -587.000000\n    test 260 r: -10.245083\n    test 261 n: -2.0\n    test 262 R: -5.870000\n    test 263 d: -336.326226\n    test 264 n: -1.0\n    test 265 D: -584.000000\n    test 266 r: -10.192723\n    test 267 n: -2.0\n    test 268 R: -5.840000\n    test 269 d: -334.607352\n    test 270 n: -1.0\n    test 271 D: -581.000000\n    test 272 r: -10.140363\n    test 273 n: -2.0\n    test 274 R: -5.810000\n    test 275 d: -332.888479\n    test 276 n: -1.0\n    test 277 D: -578.000000\n    test 278 r: -10.088003\n    test 279 n: -2.0\n    test 280 R: -5.780000\n    test 281 d: -331.169606\n    test 282 n: -1.0\n    test 283 D: -575.000000\n    test 284 r: -10.035643\n    test 285 n: -2.0\n    test 286 R: -5.750000\n    test 287 d: -329.450732\n    test 288 n: -1.0\n    test 289 D: -572.000000\n    test 290 r: -9.983283\n    test 291 n: -2.0\n    test 292 R: -5.720000\n    test 293 d: -327.731859\n    test 294 n: -1.0\n    test 295 D: -569.000000\n    test 296 r: -9.930923\n    test 297 n: -2.0\n    test 298 R: -5.690000\n    test 299 d: -326.012985\n    test 300 n: -1.0\n    test 301 D: -566.000000\n    test 302 r: -9.878564\n    test 303 n: -2.0\n    test 304 R: -5.660000\n    test 305 d: -324.294112\n    test 306 n: -1.0\n    test 307 D: -563.000000\n    test 308 r: -9.826204\n    test 309 n: -2.0\n    test 310 R: -5.630000\n    test 311 d: -322.575239\n    test 312 n: -1.0\n    test 313 D: -560.000000\n    test 314 r: -9.773844\n    test 315 n: -2.0\n    test 316 R: -5.600000\n    test 317 d: -320.856365\n    test 318 n: -1.0\n    test 319 D: -557.000000\n    test 320 r: -9.721484\n    test 321 n: -2.0\n    test 322 R: -5.570000\n    test 323 d: -319.137492\n    test 324 n: -1.0\n    test 325 D: -554.000000\n    test 326 r: -9.669124\n    test 327 n: -2.0\n    test 328 R: -5.540000\n    test 329 d: -317.418619\n    test 330 n: -1.0\n    test 331 D: -551.000000\n    test 332 r: -9.616764\n    test 333 n: -2.0\n    test 334 R: -5.510000\n    test 335 d: -315.699745\n    test 336 n: -1.0\n    test 337 D: -548.000000\n    test 338 r: -9.564404\n    test 339 n: -2.0\n    test 340 R: -5.480000\n    test 341 d: -313.980872\n    test 342 n: -1.0\n    test 343 D: -545.000000\n    test 344 r: -9.512044\n    test 345 n: -2.0\n    test 346 R: -5.450000\n    test 347 d: -312.261998\n    test 348 n: -1.0\n    test 349 D: -542.000000\n    test 350 r: -9.459685\n    test 351 n: -2.0\n    test 352 R: -5.420000\n    test 353 d: -310.543125\n    test 354 n: -1.0\n    test 355 D: -539.000000\n    test 356 r: -9.407325\n    test 357 n: -1.0\n    test 358 R: -5.390000\n    test 359 d: -308.824252\n    test 360 n: -1.0\n    test 361 D: -536.000000\n    test 362 r: -9.354965\n    test 363 n: -1.0\n    test 364 R: -5.360000\n    test 365 d: -307.105378\n    test 366 n: -1.0\n    test 367 D: -533.000000\n    test 368 r: -9.302605\n    test 369 n: -1.0\n    test 370 R: -5.330000\n    test 371 d: -305.386505\n    test 372 n: -1.0\n    test 373 D: -530.000000\n    test 374 r: -9.250245\n    test 375 n: -1.0\n    test 376 R: -5.300000\n    test 377 d: -303.667631\n    test 378 n: -1.0\n    test 379 D: -527.000000\n    test 380 r: -9.197885\n    test 381 n: -1.0\n    test 382 R: -5.270000\n    test 383 d: -301.948758\n    test 384 n: -1.0\n    test 385 D: -524.000000\n    test 386 r: -9.145525\n    test 387 n: -1.0\n    test 388 R: -5.240000\n    test 389 d: -300.229885\n    test 390 n: -1.0\n    test 391 D: -521.000000\n    test 392 r: -9.093165\n    test 393 n: -1.0\n    test 394 R: -5.210000\n    test 395 d: -298.511011\n    test 396 n: -1.0\n    test 397 D: -518.000000\n    test 398 r: -9.040806\n    test 399 n: -1.0\n    test 400 R: -5.180000\n    test 401 d: -296.792138\n    test 402 n: -1.0\n    test 403 D: -515.000000\n    test 404 r: -8.988446\n    test 405 n: -1.0\n    test 406 R: -5.150000\n    test 407 d: -295.073264\n    test 408 n: -1.0\n    test 409 D: -512.000000\n    test 410 r: -8.936086\n    test 411 n: -1.0\n    test 412 R: -5.120000\n    test 413 d: -293.354391\n    test 414 n: -1.0\n    test 415 D: -509.000000\n    test 416 r: -8.883726\n    test 417 n: -1.0\n    test 418 R: -5.090000\n    test 419 d: -291.635518\n    test 420 n: -1.0\n    test 421 D: -506.000000\n    test 422 r: -8.831366\n    test 423 n: -1.0\n    test 424 R: -5.060000\n    test 425 d: -289.916644\n    test 426 n: -1.0\n    test 427 D: -503.000000\n    test 428 r: -8.779006\n    test 429 n: -1.0\n    test 430 R: -5.030000\n    test 431 d: -288.197771\n    test 432 n: -1.0\n    test 433 D: -500.000000\n    test 434 r: -8.726646\n    test 435 n: -1.0\n    test 436 R: -5.000000\n    test 437 d: -286.478898\n    test 438 n: -1.0\n    test 439 D: -497.000000\n    test 440 r: -8.674286\n    test 441 n: -1.0\n    test 442 R: -4.970000\n    test 443 d: -284.760024\n    test 444 n: -1.0\n    test 445 D: -494.000000\n    test 446 r: -8.621927\n    test 447 n: -1.0\n    test 448 R: -4.940000\n    test 449 d: -283.041151\n    test 450 n: -1.0\n    test 451 D: -491.000000\n    test 452 r: -8.569567\n    test 453 n: -1.0\n    test 454 R: -4.910000\n    test 455 d: -281.322277\n    test 456 n: -1.0\n    test 457 D: -488.000000\n    test 458 r: -8.517207\n    test 459 n: -1.0\n    test 460 R: -4.880000\n    test 461 d: -279.603404\n    test 462 n: -1.0\n    test 463 D: -485.000000\n    test 464 r: -8.464847\n    test 465 n: -1.0\n    test 466 R: -4.850000\n    test 467 d: -277.884531\n    test 468 n: -1.0\n    test 469 D: -482.000000\n    test 470 r: -8.412487\n    test 471 n: -1.0\n    test 472 R: -4.820000\n    test 473 d: -276.165657\n    test 474 n: -1.0\n    test 475 D: -479.000000\n    test 476 r: -8.360127\n    test 477 n: -1.0\n    test 478 R: -4.790000\n    test 479 d: -274.446784\n    test 480 n: -1.0\n    test 481 D: -476.000000\n    test 482 r: -8.307767\n    test 483 n: -1.0\n    test 484 R: -4.760000\n    test 485 d: -272.727910\n    test 486 n: -1.0\n    test 487 D: -473.000000\n    test 488 r: -8.255407\n    test 489 n: -1.0\n    test 490 R: -4.730000\n    test 491 d: -271.009037\n    test 492 n: -1.0\n    test 493 D: -470.000000\n    test 494 r: -8.203047\n    test 495 n: -1.0\n    test 496 R: -4.700000\n    test 497 d: -269.290164\n    test 498 n: -1.0\n    test 499 D: -467.000000\n    test 500 r: -8.150688\n    test 501 n: -1.0\n    test 502 R: -4.670000\n    test 503 d: -267.571290\n    test 504 n: -1.0\n    test 505 D: -464.000000\n    test 506 r: -8.098328\n    test 507 n: -1.0\n    test 508 R: -4.640000\n    test 509 d: -265.852417\n    test 510 n: -1.0\n    test 511 D: -461.000000\n    test 512 r: -8.045968\n    test 513 n: -1.0\n    test 514 R: -4.610000\n    test 515 d: -264.133544\n    test 516 n: -1.0\n    test 517 D: -458.000000\n    test 518 r: -7.993608\n    test 519 n: -1.0\n    test 520 R: -4.580000\n    test 521 d: -262.414670\n    test 522 n: -1.0\n    test 523 D: -455.000000\n    test 524 r: -7.941248\n    test 525 n: -1.0\n    test 526 R: -4.550000\n    test 527 d: -260.695797\n    test 528 n: -1.0\n    test 529 D: -452.000000\n    test 530 r: -7.888888\n    test 531 n: -1.0\n    test 532 R: -4.520000\n    test 533 d: -258.976923\n    test 534 n: -1.0\n    test 535 D: -449.000000\n    test 536 r: -7.836528\n    test 537 n: -1.0\n    test 538 R: -4.490000\n    test 539 d: -257.258050\n    test 540 n: -1.0\n    test 541 D: -446.000000\n    test 542 r: -7.784168\n    test 543 n: -1.0\n    test 544 R: -4.460000\n    test 545 d: -255.539177\n    test 546 n: -1.0\n    test 547 D: -443.000000\n    test 548 r: -7.731809\n    test 549 n: -1.0\n    test 550 R: -4.430000\n    test 551 d: -253.820303\n    test 552 n: -1.0\n    test 553 D: -440.000000\n    test 554 r: -7.679449\n    test 555 n: -1.0\n    test 556 R: -4.400000\n    test 557 d: -252.101430\n    test 558 n: -1.0\n    test 559 D: -437.000000\n    test 560 r: -7.627089\n    test 561 n: -1.0\n    test 562 R: -4.370000\n    test 563 d: -250.382556\n    test 564 n: -1.0\n    test 565 D: -434.000000\n    test 566 r: -7.574729\n    test 567 n: -1.0\n    test 568 R: -4.340000\n    test 569 d: -248.663683\n    test 570 n: -1.0\n    test 571 D: -431.000000\n    test 572 r: -7.522369\n    test 573 n: -1.0\n    test 574 R: -4.310000\n    test 575 d: -246.944810\n    test 576 n: -1.0\n    test 577 D: -428.000000\n    test 578 r: -7.470009\n    test 579 n: -1.0\n    test 580 R: -4.280000\n    test 581 d: -245.225936\n    test 582 n: -1.0\n    test 583 D: -425.000000\n    test 584 r: -7.417649\n    test 585 n: -1.0\n    test 586 R: -4.250000\n    test 587 d: -243.507063\n    test 588 n: -1.0\n    test 589 D: -422.000000\n    test 590 r: -7.365289\n    test 591 n: -1.0\n    test 592 R: -4.220000\n    test 593 d: -241.788190\n    test 594 n: -1.0\n    test 595 D: -419.000000\n    test 596 r: -7.312930\n    test 597 n: -1.0\n    test 598 R: -4.190000\n    test 599 d: -240.069316\n    test 600 n: -1.0\n    test 601 D: -416.000000\n    test 602 r: -7.260570\n    test 603 n: -1.0\n    test 604 R: -4.160000\n    test 605 d: -238.350443\n    test 606 n: -1.0\n    test 607 D: -413.000000\n    test 608 r: -7.208210\n    test 609 n: -1.0\n    test 610 R: -4.130000\n    test 611 d: -236.631569\n    test 612 n: -1.0\n    test 613 D: -410.000000\n    test 614 r: -7.155850\n    test 615 n: -1.0\n    test 616 R: -4.100000\n    test 617 d: -234.912696\n    test 618 n: -1.0\n    test 619 D: -407.000000\n    test 620 r: -7.103490\n    test 621 n: -1.0\n    test 622 R: -4.070000\n    test 623 d: -233.193823\n    test 624 n: -1.0\n    test 625 D: -404.000000\n    test 626 r: -7.051130\n    test 627 n: -1.0\n    test 628 R: -4.040000\n    test 629 d: -231.474949\n    test 630 n: -1.0\n    test 631 D: -401.000000\n    test 632 r: -6.998770\n    test 633 n: -1.0\n    test 634 R: -4.010000\n    test 635 d: -229.756076\n    test 636 n: -1.0\n    test 637 D: -398.000000\n    test 638 r: -6.946410\n    test 639 n: -1.0\n    test 640 R: -3.980000\n    test 641 d: -228.037202\n    test 642 n: -1.0\n    test 643 D: -395.000000\n    test 644 r: -6.894051\n    test 645 n: -1.0\n    test 646 R: -3.950000\n    test 647 d: -226.318329\n    test 648 n: -1.0\n    test 649 D: -392.000000\n    test 650 r: -6.841691\n    test 651 n: -1.0\n    test 652 R: -3.920000\n    test 653 d: -224.599456\n    test 654 n: -1.0\n    test 655 D: -389.000000\n    test 656 r: -6.789331\n    test 657 n: -1.0\n    test 658 R: -3.890000\n    test 659 d: -222.880582\n    test 660 n: -1.0\n    test 661 D: -386.000000\n    test 662 r: -6.736971\n    test 663 n: -1.0\n    test 664 R: -3.860000\n    test 665 d: -221.161709\n    test 666 n: -1.0\n    test 667 D: -383.000000\n    test 668 r: -6.684611\n    test 669 n: -1.0\n    test 670 R: -3.830000\n    test 671 d: -219.442836\n    test 672 n: -1.0\n    test 673 D: -380.000000\n    test 674 r: -6.632251\n    test 675 n: -1.0\n    test 676 R: -3.800000\n    test 677 d: -217.723962\n    test 678 n: -1.0\n    test 679 D: -377.000000\n    test 680 r: -6.579891\n    test 681 n: -1.0\n    test 682 R: -3.770000\n    test 683 d: -216.005089\n    test 684 n: -1.0\n    test 685 D: -374.000000\n    test 686 r: -6.527531\n    test 687 n: -1.0\n    test 688 R: -3.740000\n    test 689 d: -214.286215\n    test 690 n: -1.0\n    test 691 D: -371.000000\n    test 692 r: -6.475172\n    test 693 n: -1.0\n    test 694 R: -3.710000\n    test 695 d: -212.567342\n    test 696 n: -1.0\n    test 697 D: -368.000000\n    test 698 r: -6.422812\n    test 699 n: -1.0\n    test 700 R: -3.680000\n    test 701 d: -210.848469\n    test 702 n: -1.0\n    test 703 D: -365.000000\n    test 704 r: -6.370452\n    test 705 n: -1.0\n    test 706 R: -3.650000\n    test 707 d: -209.129595\n    test 708 n: -1.0\n    test 709 D: -362.000000\n    test 710 r: -6.318092\n    test 711 n: -1.0\n    test 712 R: -3.620000\n    test 713 d: -207.410722\n    test 714 n: -1.0\n    test 715 D: -359.000000\n    test 716 r: -6.265732\n    test 717 n: -1.0\n    test 718 R: -3.590000\n    test 719 d: -205.691848\n    test 720 n: -1.0\n    test 721 D: -356.000000\n    test 722 r: -6.213372\n    test 723 n: -1.0\n    test 724 R: -3.560000\n    test 725 d: -203.972975\n    test 726 n: -1.0\n    test 727 D: -353.000000\n    test 728 r: -6.161012\n    test 729 n: -1.0\n    test 730 R: -3.530000\n    test 731 d: -202.254102\n    test 732 n: -1.0\n    test 733 D: -350.000000\n    test 734 r: -6.108652\n    test 735 n: -1.0\n    test 736 R: -3.500000\n    test 737 d: -200.535228\n    test 738 n: -1.0\n    test 739 D: -347.000000\n    test 740 r: -6.056293\n    test 741 n: -1.0\n    test 742 R: -3.470000\n    test 743 d: -198.816355\n    test 744 n: -1.0\n    test 745 D: -344.000000\n    test 746 r: -6.003933\n    test 747 n: -1.0\n    test 748 R: -3.440000\n    test 749 d: -197.097482\n    test 750 n: -1.0\n    test 751 D: -341.000000\n    test 752 r: -5.951573\n    test 753 n: -1.0\n    test 754 R: -3.410000\n    test 755 d: -195.378608\n    test 756 n: -1.0\n    test 757 D: -338.000000\n    test 758 r: -5.899213\n    test 759 n: -1.0\n    test 760 R: -3.380000\n    test 761 d: -193.659735\n    test 762 n: -1.0\n    test 763 D: -335.000000\n    test 764 r: -5.846853\n    test 765 n: -1.0\n    test 766 R: -3.350000\n    test 767 d: -191.940861\n    test 768 n: -1.0\n    test 769 D: -332.000000\n    test 770 r: -5.794493\n    test 771 n: -1.0\n    test 772 R: -3.320000\n    test 773 d: -190.221988\n    test 774 n: -1.0\n    test 775 D: -329.000000\n    test 776 r: -5.742133\n    test 777 n: -1.0\n    test 778 R: -3.290000\n    test 779 d: -188.503115\n    test 780 n: -1.0\n    test 781 D: -326.000000\n    test 782 r: -5.689773\n    test 783 n: -1.0\n    test 784 R: -3.260000\n    test 785 d: -186.784241\n    test 786 n: -1.0\n    test 787 D: -323.000000\n    test 788 r: -5.637413\n    test 789 n: -1.0\n    test 790 R: -3.230000\n    test 791 d: -185.065368\n    test 792 n: -1.0\n    test 793 D: -320.000000\n    test 794 r: -5.585054\n    test 795 n: -1.0\n    test 796 R: -3.200000\n    test 797 d: -183.346494\n    test 798 n: -1.0\n    test 799 D: -317.000000\n    test 800 r: -5.532694\n    test 801 n: -1.0\n    test 802 R: -3.170000\n    test 803 d: -181.627621\n    test 804 n: -1.0\n    test 805 D: -314.000000\n    test 806 r: -5.480334\n    test 807 n: -1.0\n    test 808 R: -3.140000\n    test 809 d: -179.908748\n    test 810 n: 0.0\n    test 811 D: -311.000000\n    test 812 r: -5.427974\n    test 813 n: -1.0\n    test 814 R: -3.110000\n    test 815 d: -178.189874\n    test 816 n: 0.0\n    test 817 D: -308.000000\n    test 818 r: -5.375614\n    test 819 n: -1.0\n    test 820 R: -3.080000\n    test 821 d: -176.471001\n    test 822 n: 0.0\n    test 823 D: -305.000000\n    test 824 r: -5.323254\n    test 825 n: -1.0\n    test 826 R: -3.050000\n    test 827 d: -174.752128\n    test 828 n: 0.0\n    test 829 D: -302.000000\n    test 830 r: -5.270894\n    test 831 n: -1.0\n    test 832 R: -3.020000\n    test 833 d: -173.033254\n    test 834 n: 0.0\n    test 835 D: -299.000000\n    test 836 r: -5.218534\n    test 837 n: -1.0\n    test 838 R: -2.990000\n    test 839 d: -171.314381\n    test 840 n: 0.0\n    test 841 D: -296.000000\n    test 842 r: -5.166175\n    test 843 n: -1.0\n    test 844 R: -2.960000\n    test 845 d: -169.595507\n    test 846 n: 0.0\n    test 847 D: -293.000000\n    test 848 r: -5.113815\n    test 849 n: -1.0\n    test 850 R: -2.930000\n    test 851 d: -167.876634\n    test 852 n: 0.0\n    test 853 D: -290.000000\n    test 854 r: -5.061455\n    test 855 n: -1.0\n    test 856 R: -2.900000\n    test 857 d: -166.157761\n    test 858 n: 0.0\n    test 859 D: -287.000000\n    test 860 r: -5.009095\n    test 861 n: -1.0\n    test 862 R: -2.870000\n    test 863 d: -164.438887\n    test 864 n: 0.0\n    test 865 D: -284.000000\n    test 866 r: -4.956735\n    test 867 n: -1.0\n    test 868 R: -2.840000\n    test 869 d: -162.720014\n    test 870 n: 0.0\n    test 871 D: -281.000000\n    test 872 r: -4.904375\n    test 873 n: -1.0\n    test 874 R: -2.810000\n    test 875 d: -161.001140\n    test 876 n: 0.0\n    test 877 D: -278.000000\n    test 878 r: -4.852015\n    test 879 n: -1.0\n    test 880 R: -2.780000\n    test 881 d: -159.282267\n    test 882 n: 0.0\n    test 883 D: -275.000000\n    test 884 r: -4.799655\n    test 885 n: -1.0\n    test 886 R: -2.750000\n    test 887 d: -157.563394\n    test 888 n: 0.0\n    test 889 D: -272.000000\n    test 890 r: -4.747296\n    test 891 n: -1.0\n    test 892 R: -2.720000\n    test 893 d: -155.844520\n    test 894 n: 0.0\n    test 895 D: -269.000000\n    test 896 r: -4.694936\n    test 897 n: -1.0\n    test 898 R: -2.690000\n    test 899 d: -154.125647\n    test 900 n: 0.0\n    test 901 D: -266.000000\n    test 902 r: -4.642576\n    test 903 n: -1.0\n    test 904 R: -2.660000\n    test 905 d: -152.406774\n    test 906 n: 0.0\n    test 907 D: -263.000000\n    test 908 r: -4.590216\n    test 909 n: -1.0\n    test 910 R: -2.630000\n    test 911 d: -150.687900\n    test 912 n: 0.0\n    test 913 D: -260.000000\n    test 914 r: -4.537856\n    test 915 n: -1.0\n    test 916 R: -2.600000\n    test 917 d: -148.969027\n    test 918 n: 0.0\n    test 919 D: -257.000000\n    test 920 r: -4.485496\n    test 921 n: -1.0\n    test 922 R: -2.570000\n    test 923 d: -147.250153\n    test 924 n: 0.0\n    test 925 D: -254.000000\n    test 926 r: -4.433136\n    test 927 n: -1.0\n    test 928 R: -2.540000\n    test 929 d: -145.531280\n    test 930 n: 0.0\n    test 931 D: -251.000000\n    test 932 r: -4.380776\n    test 933 n: -1.0\n    test 934 R: -2.510000\n    test 935 d: -143.812407\n    test 936 n: 0.0\n    test 937 D: -248.000000\n    test 938 r: -4.328417\n    test 939 n: -1.0\n    test 940 R: -2.480000\n    test 941 d: -142.093533\n    test 942 n: 0.0\n    test 943 D: -245.000000\n    test 944 r: -4.276057\n    test 945 n: -1.0\n    test 946 R: -2.450000\n    test 947 d: -140.374660\n    test 948 n: 0.0\n    test 949 D: -242.000000\n    test 950 r: -4.223697\n    test 951 n: -1.0\n    test 952 R: -2.420000\n    test 953 d: -138.655786\n    test 954 n: 0.0\n    test 955 D: -239.000000\n    test 956 r: -4.171337\n    test 957 n: -1.0\n    test 958 R: -2.390000\n    test 959 d: -136.936913\n    test 960 n: 0.0\n    test 961 D: -236.000000\n    test 962 r: -4.118977\n    test 963 n: -1.0\n    test 964 R: -2.360000\n    test 965 d: -135.218040\n    test 966 n: 0.0\n    test 967 D: -233.000000\n    test 968 r: -4.066617\n    test 969 n: -1.0\n    test 970 R: -2.330000\n    test 971 d: -133.499166\n    test 972 n: 0.0\n    test 973 D: -230.000000\n    test 974 r: -4.014257\n    test 975 n: -1.0\n    test 976 R: -2.300000\n    test 977 d: -131.780293\n    test 978 n: 0.0\n    test 979 D: -227.000000\n    test 980 r: -3.961897\n    test 981 n: -1.0\n    test 982 R: -2.270000\n    test 983 d: -130.061419\n    test 984 n: 0.0\n    test 985 D: -224.000000\n    test 986 r: -3.909538\n    test 987 n: -1.0\n    test 988 R: -2.240000\n    test 989 d: -128.342546\n    test 990 n: 0.0\n    test 991 D: -221.000000\n    test 992 r: -3.857178\n    test 993 n: -1.0\n    test 994 R: -2.210000\n    test 995 d: -126.623673\n    test 996 n: 0.0\n    test 997 D: -218.000000\n    test 998 r: -3.804818\n    test 999 n: -1.0\n    test 1000 R: -2.180000\n    test 1001 d: -124.904799\n    test 1002 n: 0.0\n    test 1003 D: -215.000000\n    test 1004 r: -3.752458\n    test 1005 n: -1.0\n    test 1006 R: -2.150000\n    test 1007 d: -123.185926\n    test 1008 n: 0.0\n    test 1009 D: -212.000000\n    test 1010 r: -3.700098\n    test 1011 n: -1.0\n    test 1012 R: -2.120000\n    test 1013 d: -121.467053\n    test 1014 n: 0.0\n    test 1015 D: -209.000000\n    test 1016 r: -3.647738\n    test 1017 n: -1.0\n    test 1018 R: -2.090000\n    test 1019 d: -119.748179\n    test 1020 n: 0.0\n    test 1021 D: -206.000000\n    test 1022 r: -3.595378\n    test 1023 n: -1.0\n    test 1024 R: -2.060000\n    test 1025 d: -118.029306\n    test 1026 n: 0.0\n    test 1027 D: -203.000000\n    test 1028 r: -3.543018\n    test 1029 n: -1.0\n    test 1030 R: -2.030000\n    test 1031 d: -116.310432\n    test 1032 n: 0.0\n    test 1033 D: -200.000000\n    test 1034 r: -3.490659\n    test 1035 n: -1.0\n    test 1036 R: -2.000000\n    test 1037 d: -114.591559\n    test 1038 n: 0.0\n    test 1039 D: -197.000000\n    test 1040 r: -3.438299\n    test 1041 n: -1.0\n    test 1042 R: -1.970000\n    test 1043 d: -112.872686\n    test 1044 n: 0.0\n    test 1045 D: -194.000000\n    test 1046 r: -3.385939\n    test 1047 n: -1.0\n    test 1048 R: -1.940000\n    test 1049 d: -111.153812\n    test 1050 n: 0.0\n    test 1051 D: -191.000000\n    test 1052 r: -3.333579\n    test 1053 n: -1.0\n    test 1054 R: -1.910000\n    test 1055 d: -109.434939\n    test 1056 n: 0.0\n    test 1057 D: -188.000000\n    test 1058 r: -3.281219\n    test 1059 n: -1.0\n    test 1060 R: -1.880000\n    test 1061 d: -107.716065\n    test 1062 n: 0.0\n    test 1063 D: -185.000000\n    test 1064 r: -3.228859\n    test 1065 n: -1.0\n    test 1066 R: -1.850000\n    test 1067 d: -105.997192\n    test 1068 n: 0.0\n    test 1069 D: -182.000000\n    test 1070 r: -3.176499\n    test 1071 n: -1.0\n    test 1072 R: -1.820000\n    test 1073 d: -104.278319\n    test 1074 n: 0.0\n    test 1075 D: -179.000000\n    test 1076 r: -3.124139\n    test 1077 n: 0.0\n    test 1078 R: -1.790000\n    test 1079 d: -102.559445\n    test 1080 n: 0.0\n    test 1081 D: -176.000000\n    test 1082 r: -3.071779\n    test 1083 n: 0.0\n    test 1084 R: -1.760000\n    test 1085 d: -100.840572\n    test 1086 n: 0.0\n    test 1087 D: -173.000000\n    test 1088 r: -3.019420\n    test 1089 n: 0.0\n    test 1090 R: -1.730000\n    test 1091 d: -99.121699\n    test 1092 n: 0.0\n    test 1093 D: -170.000000\n    test 1094 r: -2.967060\n    test 1095 n: 0.0\n    test 1096 R: -1.700000\n    test 1097 d: -97.402825\n    test 1098 n: 0.0\n    test 1099 D: -167.000000\n    test 1100 r: -2.914700\n    test 1101 n: 0.0\n    test 1102 R: -1.670000\n    test 1103 d: -95.683952\n    test 1104 n: 0.0\n    test 1105 D: -164.000000\n    test 1106 r: -2.862340\n    test 1107 n: 0.0\n    test 1108 R: -1.640000\n    test 1109 d: -93.965078\n    test 1110 n: 0.0\n    test 1111 D: -161.000000\n    test 1112 r: -2.809980\n    test 1113 n: 0.0\n    test 1114 R: -1.610000\n    test 1115 d: -92.246205\n    test 1116 n: 0.0\n    test 1117 D: -158.000000\n    test 1118 r: -2.757620\n    test 1119 n: 0.0\n    test 1120 R: -1.580000\n    test 1121 d: -90.527332\n    test 1122 n: 0.0\n    test 1123 D: -155.000000\n    test 1124 r: -2.705260\n    test 1125 n: 0.0\n    test 1126 R: -1.550000\n    test 1127 d: -88.808458\n    test 1128 n: 0.0\n    test 1129 D: -152.000000\n    test 1130 r: -2.652900\n    test 1131 n: 0.0\n    test 1132 R: -1.520000\n    test 1133 d: -87.089585\n    test 1134 n: 0.0\n    test 1135 D: -149.000000\n    test 1136 r: -2.600541\n    test 1137 n: 0.0\n    test 1138 R: -1.490000\n    test 1139 d: -85.370711\n    test 1140 n: 0.0\n    test 1141 D: -146.000000\n    test 1142 r: -2.548181\n    test 1143 n: 0.0\n    test 1144 R: -1.460000\n    test 1145 d: -83.651838\n    test 1146 n: 0.0\n    test 1147 D: -143.000000\n    test 1148 r: -2.495821\n    test 1149 n: 0.0\n    test 1150 R: -1.430000\n    test 1151 d: -81.932965\n    test 1152 n: 0.0\n    test 1153 D: -140.000000\n    test 1154 r: -2.443461\n    test 1155 n: 0.0\n    test 1156 R: -1.400000\n    test 1157 d: -80.214091\n    test 1158 n: 0.0\n    test 1159 D: -137.000000\n    test 1160 r: -2.391101\n    test 1161 n: 0.0\n    test 1162 R: -1.370000\n    test 1163 d: -78.495218\n    test 1164 n: 0.0\n    test 1165 D: -134.000000\n    test 1166 r: -2.338741\n    test 1167 n: 0.0\n    test 1168 R: -1.340000\n    test 1169 d: -76.776345\n    test 1170 n: 0.0\n    test 1171 D: -131.000000\n    test 1172 r: -2.286381\n    test 1173 n: 0.0\n    test 1174 R: -1.310000\n    test 1175 d: -75.057471\n    test 1176 n: 0.0\n    test 1177 D: -128.000000\n    test 1178 r: -2.234021\n    test 1179 n: 0.0\n    test 1180 R: -1.280000\n    test 1181 d: -73.338598\n    test 1182 n: 0.0\n    test 1183 D: -125.000000\n    test 1184 r: -2.181662\n    test 1185 n: 0.0\n    test 1186 R: -1.250000\n    test 1187 d: -71.619724\n    test 1188 n: 0.0\n    test 1189 D: -122.000000\n    test 1190 r: -2.129302\n    test 1191 n: 0.0\n    test 1192 R: -1.220000\n    test 1193 d: -69.900851\n    test 1194 n: 0.0\n    test 1195 D: -119.000000\n    test 1196 r: -2.076942\n    test 1197 n: 0.0\n    test 1198 R: -1.190000\n    test 1199 d: -68.181978\n    test 1200 n: 0.0\n    test 1201 D: -116.000000\n    test 1202 r: -2.024582\n    test 1203 n: 0.0\n    test 1204 R: -1.160000\n    test 1205 d: -66.463104\n    test 1206 n: 0.0\n    test 1207 D: -113.000000\n    test 1208 r: -1.972222\n    test 1209 n: 0.0\n    test 1210 R: -1.130000\n    test 1211 d: -64.744231\n    test 1212 n: 0.0\n    test 1213 D: -110.000000\n    test 1214 r: -1.919862\n    test 1215 n: 0.0\n    test 1216 R: -1.100000\n    test 1217 d: -63.025357\n    test 1218 n: 0.0\n    test 1219 D: -107.000000\n    test 1220 r: -1.867502\n    test 1221 n: 0.0\n    test 1222 R: -1.070000\n    test 1223 d: -61.306484\n    test 1224 n: 0.0\n    test 1225 D: -104.000000\n    test 1226 r: -1.815142\n    test 1227 n: 0.0\n    test 1228 R: -1.040000\n    test 1229 d: -59.587611\n    test 1230 n: 0.0\n    test 1231 D: -101.000000\n    test 1232 r: -1.762783\n    test 1233 n: 0.0\n    test 1234 R: -1.010000\n    test 1235 d: -57.868737\n    test 1236 n: 0.0\n    test 1237 D: -98.000000\n    test 1238 r: -1.710423\n    test 1239 n: 0.0\n    test 1240 R: -0.980000\n    test 1241 d: -56.149864\n    test 1242 n: 0.0\n    test 1243 D: -95.000000\n    test 1244 r: -1.658063\n    test 1245 n: 0.0\n    test 1246 R: -0.950000\n    test 1247 d: -54.430991\n    test 1248 n: 0.0\n    test 1249 D: -92.000000\n    test 1250 r: -1.605703\n    test 1251 n: 0.0\n    test 1252 R: -0.920000\n    test 1253 d: -52.712117\n    test 1254 n: 0.0\n    test 1255 D: -89.000000\n    test 1256 r: -1.553343\n    test 1257 n: 0.0\n    test 1258 R: -0.890000\n    test 1259 d: -50.993244\n    test 1260 n: 0.0\n    test 1261 D: -86.000000\n    test 1262 r: -1.500983\n    test 1263 n: 0.0\n    test 1264 R: -0.860000\n    test 1265 d: -49.274370\n    test 1266 n: 0.0\n    test 1267 D: -83.000000\n    test 1268 r: -1.448623\n    test 1269 n: 0.0\n    test 1270 R: -0.830000\n    test 1271 d: -47.555497\n    test 1272 n: 0.0\n    test 1273 D: -80.000000\n    test 1274 r: -1.396263\n    test 1275 n: 0.0\n    test 1276 R: -0.800000\n    test 1277 d: -45.836624\n    test 1278 n: 0.0\n    test 1279 D: -77.000000\n    test 1280 r: -1.343904\n    test 1281 n: 0.0\n    test 1282 R: -0.770000\n    test 1283 d: -44.117750\n    test 1284 n: 0.0\n    test 1285 D: -74.000000\n    test 1286 r: -1.291544\n    test 1287 n: 0.0\n    test 1288 R: -0.740000\n    test 1289 d: -42.398877\n    test 1290 n: 0.0\n    test 1291 D: -71.000000\n    test 1292 r: -1.239184\n    test 1293 n: 0.0\n    test 1294 R: -0.710000\n    test 1295 d: -40.680003\n    test 1296 n: 0.0\n    test 1297 D: -68.000000\n    test 1298 r: -1.186824\n    test 1299 n: 0.0\n    test 1300 R: -0.680000\n    test 1301 d: -38.961130\n    test 1302 n: 0.0\n    test 1303 D: -65.000000\n    test 1304 r: -1.134464\n    test 1305 n: 0.0\n    test 1306 R: -0.650000\n    test 1307 d: -37.242257\n    test 1308 n: 0.0\n    test 1309 D: -62.000000\n    test 1310 r: -1.082104\n    test 1311 n: 0.0\n    test 1312 R: -0.620000\n    test 1313 d: -35.523383\n    test 1314 n: 0.0\n    test 1315 D: -59.000000\n    test 1316 r: -1.029744\n    test 1317 n: 0.0\n    test 1318 R: -0.590000\n    test 1319 d: -33.804510\n    test 1320 n: 0.0\n    test 1321 D: -56.000000\n    test 1322 r: -0.977384\n    test 1323 n: 0.0\n    test 1324 R: -0.560000\n    test 1325 d: -32.085637\n    test 1326 n: 0.0\n    test 1327 D: -53.000000\n    test 1328 r: -0.925025\n    test 1329 n: 0.0\n    test 1330 R: -0.530000\n    test 1331 d: -30.366763\n    test 1332 n: 0.0\n    test 1333 D: -50.000000\n    test 1334 r: -0.872665\n    test 1335 n: 0.0\n    test 1336 R: -0.500000\n    test 1337 d: -28.647890\n    test 1338 n: 0.0\n    test 1339 D: -47.000000\n    test 1340 r: -0.820305\n    test 1341 n: 0.0\n    test 1342 R: -0.470000\n    test 1343 d: -26.929016\n    test 1344 n: 0.0\n    test 1345 D: -44.000000\n    test 1346 r: -0.767945\n    test 1347 n: 0.0\n    test 1348 R: -0.440000\n    test 1349 d: -25.210143\n    test 1350 n: 0.0\n    test 1351 D: -41.000000\n    test 1352 r: -0.715585\n    test 1353 n: 0.0\n    test 1354 R: -0.410000\n    test 1355 d: -23.491270\n    test 1356 n: 0.0\n    test 1357 D: -38.000000\n    test 1358 r: -0.663225\n    test 1359 n: 0.0\n    test 1360 R: -0.380000\n    test 1361 d: -21.772396\n    test 1362 n: 0.0\n    test 1363 D: -35.000000\n    test 1364 r: -0.610865\n    test 1365 n: 0.0\n    test 1366 R: -0.350000\n    test 1367 d: -20.053523\n    test 1368 n: 0.0\n    test 1369 D: -32.000000\n    test 1370 r: -0.558505\n    test 1371 n: 0.0\n    test 1372 R: -0.320000\n    test 1373 d: -18.334649\n    test 1374 n: 0.0\n    test 1375 D: -29.000000\n    test 1376 r: -0.506145\n    test 1377 n: 0.0\n    test 1378 R: -0.290000\n    test 1379 d: -16.615776\n    test 1380 n: 0.0\n    test 1381 D: -26.000000\n    test 1382 r: -0.453786\n    test 1383 n: 0.0\n    test 1384 R: -0.260000\n    test 1385 d: -14.896903\n    test 1386 n: 0.0\n    test 1387 D: -23.000000\n    test 1388 r: -0.401426\n    test 1389 n: 0.0\n    test 1390 R: -0.230000\n    test 1391 d: -13.178029\n    test 1392 n: 0.0\n    test 1393 D: -20.000000\n    test 1394 r: -0.349066\n    test 1395 n: 0.0\n    test 1396 R: -0.200000\n    test 1397 d: -11.459156\n    test 1398 n: 0.0\n    test 1399 D: -17.000000\n    test 1400 r: -0.296706\n    test 1401 n: 0.0\n    test 1402 R: -0.170000\n    test 1403 d: -9.740283\n    test 1404 n: 0.0\n    test 1405 D: -14.000000\n    test 1406 r: -0.244346\n    test 1407 n: 0.0\n    test 1408 R: -0.140000\n    test 1409 d: -8.021409\n    test 1410 n: 0.0\n    test 1411 D: -11.000000\n    test 1412 r: -0.191986\n    test 1413 n: 0.0\n    test 1414 R: -0.110000\n    test 1415 d: -6.302536\n    test 1416 n: 0.0\n    test 1417 D: -8.000000\n    test 1418 r: -0.139626\n    test 1419 n: 0.0\n    test 1420 R: -0.080000\n    test 1421 d: -4.583662\n    test 1422 n: 0.0\n    test 1423 D: -5.000000\n    test 1424 r: -0.087266\n    test 1425 n: 0.0\n    test 1426 R: -0.050000\n    test 1427 d: -2.864789\n    test 1428 n: 0.0\n    test 1429 D: -2.000000\n    test 1430 r: -0.034907\n    test 1431 n: 0.0\n    test 1432 R: -0.020000\n    test 1433 d: -1.145916\n    test 1434 n: 0.0\n    test 1435 D: 1.000000\n    test 1436 r: 0.017453\n    test 1437 n: 0.0\n    test 1438 R: 0.010000\n    test 1439 d: 0.572958\n    test 1440 n: 0.0\n    test 1441 D: 4.000000\n    test 1442 r: 0.069813\n    test 1443 n: 0.0\n    test 1444 R: 0.040000\n    test 1445 d: 2.291831\n    test 1446 n: 0.0\n    test 1447 D: 7.000000\n    test 1448 r: 0.122173\n    test 1449 n: 0.0\n    test 1450 R: 0.070000\n    test 1451 d: 4.010705\n    test 1452 n: 0.0\n    test 1453 D: 10.000000\n    test 1454 r: 0.174533\n    test 1455 n: 0.0\n    test 1456 R: 0.100000\n    test 1457 d: 5.729578\n    test 1458 n: 0.0\n    test 1459 D: 13.000000\n    test 1460 r: 0.226893\n    test 1461 n: 0.0\n    test 1462 R: 0.130000\n    test 1463 d: 7.448451\n    test 1464 n: 0.0\n    test 1465 D: 16.000000\n    test 1466 r: 0.279253\n    test 1467 n: 0.0\n    test 1468 R: 0.160000\n    test 1469 d: 9.167325\n    test 1470 n: 0.0\n    test 1471 D: 19.000000\n    test 1472 r: 0.331613\n    test 1473 n: 0.0\n    test 1474 R: 0.190000\n    test 1475 d: 10.886198\n    test 1476 n: 0.0\n    test 1477 D: 22.000000\n    test 1478 r: 0.383972\n    test 1479 n: 0.0\n    test 1480 R: 0.220000\n    test 1481 d: 12.605071\n    test 1482 n: 0.0\n    test 1483 D: 25.000000\n    test 1484 r: 0.436332\n    test 1485 n: 0.0\n    test 1486 R: 0.250000\n    test 1487 d: 14.323945\n    test 1488 n: 0.0\n    test 1489 D: 28.000000\n    test 1490 r: 0.488692\n    test 1491 n: 0.0\n    test 1492 R: 0.280000\n    test 1493 d: 16.042818\n    test 1494 n: 0.0\n    test 1495 D: 31.000000\n    test 1496 r: 0.541052\n    test 1497 n: 0.0\n    test 1498 R: 0.310000\n    test 1499 d: 17.761692\n    test 1500 n: 0.0\n    test 1501 D: 34.000000\n    test 1502 r: 0.593412\n    test 1503 n: 0.0\n    test 1504 R: 0.340000\n    test 1505 d: 19.480565\n    test 1506 n: 0.0\n    test 1507 D: 37.000000\n    test 1508 r: 0.645772\n    test 1509 n: 0.0\n    test 1510 R: 0.370000\n    test 1511 d: 21.199438\n    test 1512 n: 0.0\n    test 1513 D: 40.000000\n    test 1514 r: 0.698132\n    test 1515 n: 0.0\n    test 1516 R: 0.400000\n    test 1517 d: 22.918312\n    test 1518 n: 0.0\n    test 1519 D: 43.000000\n    test 1520 r: 0.750492\n    test 1521 n: 0.0\n    test 1522 R: 0.430000\n    test 1523 d: 24.637185\n    test 1524 n: 0.0\n    test 1525 D: 46.000000\n    test 1526 r: 0.802851\n    test 1527 n: 0.0\n    test 1528 R: 0.460000\n    test 1529 d: 26.356059\n    test 1530 n: 0.0\n    test 1531 D: 49.000000\n    test 1532 r: 0.855211\n    test 1533 n: 0.0\n    test 1534 R: 0.490000\n    test 1535 d: 28.074932\n    test 1536 n: 0.0\n    test 1537 D: 52.000000\n    test 1538 r: 0.907571\n    test 1539 n: 0.0\n    test 1540 R: 0.520000\n    test 1541 d: 29.793805\n    test 1542 n: 0.0\n    test 1543 D: 55.000000\n    test 1544 r: 0.959931\n    test 1545 n: 0.0\n    test 1546 R: 0.550000\n    test 1547 d: 31.512679\n    test 1548 n: 0.0\n    test 1549 D: 58.000000\n    test 1550 r: 1.012291\n    test 1551 n: 0.0\n    test 1552 R: 0.580000\n    test 1553 d: 33.231552\n    test 1554 n: 0.0\n    test 1555 D: 61.000000\n    test 1556 r: 1.064651\n    test 1557 n: 0.0\n    test 1558 R: 0.610000\n    test 1559 d: 34.950426\n    test 1560 n: 0.0\n    test 1561 D: 64.000000\n    test 1562 r: 1.117011\n    test 1563 n: 0.0\n    test 1564 R: 0.640000\n    test 1565 d: 36.669299\n    test 1566 n: 0.0\n    test 1567 D: 67.000000\n    test 1568 r: 1.169371\n    test 1569 n: 0.0\n    test 1570 R: 0.670000\n    test 1571 d: 38.388172\n    test 1572 n: 0.0\n    test 1573 D: 70.000000\n    test 1574 r: 1.221730\n    test 1575 n: 0.0\n    test 1576 R: 0.700000\n    test 1577 d: 40.107046\n    test 1578 n: 0.0\n    test 1579 D: 73.000000\n    test 1580 r: 1.274090\n    test 1581 n: 0.0\n    test 1582 R: 0.730000\n    test 1583 d: 41.825919\n    test 1584 n: 0.0\n    test 1585 D: 76.000000\n    test 1586 r: 1.326450\n    test 1587 n: 0.0\n    test 1588 R: 0.760000\n    test 1589 d: 43.544792\n    test 1590 n: 0.0\n    test 1591 D: 79.000000\n    test 1592 r: 1.378810\n    test 1593 n: 0.0\n    test 1594 R: 0.790000\n    test 1595 d: 45.263666\n    test 1596 n: 0.0\n    test 1597 D: 82.000000\n    test 1598 r: 1.431170\n    test 1599 n: 0.0\n    test 1600 R: 0.820000\n    test 1601 d: 46.982539\n    test 1602 n: 0.0\n    test 1603 D: 85.000000\n    test 1604 r: 1.483530\n    test 1605 n: 0.0\n    test 1606 R: 0.850000\n    test 1607 d: 48.701413\n    test 1608 n: 0.0\n    test 1609 D: 88.000000\n    test 1610 r: 1.535890\n    test 1611 n: 0.0\n    test 1612 R: 0.880000\n    test 1613 d: 50.420286\n    test 1614 n: 0.0\n    test 1615 D: 91.000000\n    test 1616 r: 1.588250\n    test 1617 n: 0.0\n    test 1618 R: 0.910000\n    test 1619 d: 52.139159\n    test 1620 n: 0.0\n    test 1621 D: 94.000000\n    test 1622 r: 1.640609\n    test 1623 n: 0.0\n    test 1624 R: 0.940000\n    test 1625 d: 53.858033\n    test 1626 n: 0.0\n    test 1627 D: 97.000000\n    test 1628 r: 1.692969\n    test 1629 n: 0.0\n    test 1630 R: 0.970000\n    test 1631 d: 55.576906\n    test 1632 n: 0.0\n    test 1633 D: 100.000000\n    test 1634 r: 1.745329\n    test 1635 n: 0.0\n    test 1636 R: 1.000000\n    test 1637 d: 57.295780\n    test 1638 n: 0.0\n    test 1639 D: 103.000000\n    test 1640 r: 1.797689\n    test 1641 n: 0.0\n    test 1642 R: 1.030000\n    test 1643 d: 59.014653\n    test 1644 n: 0.0\n    test 1645 D: 106.000000\n    test 1646 r: 1.850049\n    test 1647 n: 0.0\n    test 1648 R: 1.060000\n    test 1649 d: 60.733526\n    test 1650 n: 0.0\n    test 1651 D: 109.000000\n    test 1652 r: 1.902409\n    test 1653 n: 0.0\n    test 1654 R: 1.090000\n    test 1655 d: 62.452400\n    test 1656 n: 0.0\n    test 1657 D: 112.000000\n    test 1658 r: 1.954769\n    test 1659 n: 0.0\n    test 1660 R: 1.120000\n    test 1661 d: 64.171273\n    test 1662 n: 0.0\n    test 1663 D: 115.000000\n    test 1664 r: 2.007129\n    test 1665 n: 0.0\n    test 1666 R: 1.150000\n    test 1667 d: 65.890146\n    test 1668 n: 0.0\n    test 1669 D: 118.000000\n    test 1670 r: 2.059489\n    test 1671 n: 0.0\n    test 1672 R: 1.180000\n    test 1673 d: 67.609020\n    test 1674 n: 0.0\n    test 1675 D: 121.000000\n    test 1676 r: 2.111848\n    test 1677 n: 0.0\n    test 1678 R: 1.210000\n    test 1679 d: 69.327893\n    test 1680 n: 0.0\n    test 1681 D: 124.000000\n    test 1682 r: 2.164208\n    test 1683 n: 0.0\n    test 1684 R: 1.240000\n    test 1685 d: 71.046767\n    test 1686 n: 0.0\n    test 1687 D: 127.000000\n    test 1688 r: 2.216568\n    test 1689 n: 0.0\n    test 1690 R: 1.270000\n    test 1691 d: 72.765640\n    test 1692 n: 0.0\n    test 1693 D: 130.000000\n    test 1694 r: 2.268928\n    test 1695 n: 0.0\n    test 1696 R: 1.300000\n    test 1697 d: 74.484513\n    test 1698 n: 0.0\n    test 1699 D: 133.000000\n    test 1700 r: 2.321288\n    test 1701 n: 0.0\n    test 1702 R: 1.330000\n    test 1703 d: 76.203387\n    test 1704 n: 0.0\n    test 1705 D: 136.000000\n    test 1706 r: 2.373648\n    test 1707 n: 0.0\n    test 1708 R: 1.360000\n    test 1709 d: 77.922260\n    test 1710 n: 0.0\n    test 1711 D: 139.000000\n    test 1712 r: 2.426008\n    test 1713 n: 0.0\n    test 1714 R: 1.390000\n    test 1715 d: 79.641134\n    test 1716 n: 0.0\n    test 1717 D: 142.000000\n    test 1718 r: 2.478368\n    test 1719 n: 0.0\n    test 1720 R: 1.420000\n    test 1721 d: 81.360007\n    test 1722 n: 0.0\n    test 1723 D: 145.000000\n    test 1724 r: 2.530727\n    test 1725 n: 0.0\n    test 1726 R: 1.450000\n    test 1727 d: 83.078880\n    test 1728 n: 0.0\n    test 1729 D: 148.000000\n    test 1730 r: 2.583087\n    test 1731 n: 0.0\n    test 1732 R: 1.480000\n    test 1733 d: 84.797754\n    test 1734 n: 0.0\n    test 1735 D: 151.000000\n    test 1736 r: 2.635447\n    test 1737 n: 0.0\n    test 1738 R: 1.510000\n    test 1739 d: 86.516627\n    test 1740 n: 0.0\n    test 1741 D: 154.000000\n    test 1742 r: 2.687807\n    test 1743 n: 0.0\n    test 1744 R: 1.540000\n    test 1745 d: 88.235500\n    test 1746 n: 0.0\n    test 1747 D: 157.000000\n    test 1748 r: 2.740167\n    test 1749 n: 0.0\n    test 1750 R: 1.570000\n    test 1751 d: 89.954374\n    test 1752 n: 0.0\n    test 1753 D: 160.000000\n    test 1754 r: 2.792527\n    test 1755 n: 0.0\n    test 1756 R: 1.600000\n    test 1757 d: 91.673247\n    test 1758 n: 0.0\n    test 1759 D: 163.000000\n    test 1760 r: 2.844887\n    test 1761 n: 0.0\n    test 1762 R: 1.630000\n    test 1763 d: 93.392121\n    test 1764 n: 0.0\n    test 1765 D: 166.000000\n    test 1766 r: 2.897247\n    test 1767 n: 0.0\n    test 1768 R: 1.660000\n    test 1769 d: 95.110994\n    test 1770 n: 0.0\n    test 1771 D: 169.000000\n    test 1772 r: 2.949606\n    test 1773 n: 0.0\n    test 1774 R: 1.690000\n    test 1775 d: 96.829867\n    test 1776 n: 0.0\n    test 1777 D: 172.000000\n    test 1778 r: 3.001966\n    test 1779 n: 0.0\n    test 1780 R: 1.720000\n    test 1781 d: 98.548741\n    test 1782 n: 0.0\n    test 1783 D: 175.000000\n    test 1784 r: 3.054326\n    test 1785 n: 0.0\n    test 1786 R: 1.750000\n    test 1787 d: 100.267614\n    test 1788 n: 0.0\n    test 1789 D: 178.000000\n    test 1790 r: 3.106686\n    test 1791 n: 0.0\n    test 1792 R: 1.780000\n    test 1793 d: 101.986488\n    test 1794 n: 0.0\n    test 1795 D: 181.000000\n    test 1796 r: 3.159046\n    test 1797 n: 1.0\n    test 1798 R: 1.810000\n    test 1799 d: 103.705361\n    test 1800 n: 0.0\n    test 1801 D: 184.000000\n    test 1802 r: 3.211406\n    test 1803 n: 1.0\n    test 1804 R: 1.840000\n    test 1805 d: 105.424234\n    test 1806 n: 0.0\n    test 1807 D: 187.000000\n    test 1808 r: 3.263766\n    test 1809 n: 1.0\n    test 1810 R: 1.870000\n    test 1811 d: 107.143108\n    test 1812 n: 0.0\n    test 1813 D: 190.000000\n    test 1814 r: 3.316126\n    test 1815 n: 1.0\n    test 1816 R: 1.900000\n    test 1817 d: 108.861981\n    test 1818 n: 0.0\n    test 1819 D: 193.000000\n    test 1820 r: 3.368485\n    test 1821 n: 1.0\n    test 1822 R: 1.930000\n    test 1823 d: 110.580854\n    test 1824 n: 0.0\n    test 1825 D: 196.000000\n    test 1826 r: 3.420845\n    test 1827 n: 1.0\n    test 1828 R: 1.960000\n    test 1829 d: 112.299728\n    test 1830 n: 0.0\n    test 1831 D: 199.000000\n    test 1832 r: 3.473205\n    test 1833 n: 1.0\n    test 1834 R: 1.990000\n    test 1835 d: 114.018601\n    test 1836 n: 0.0\n    test 1837 D: 202.000000\n    test 1838 r: 3.525565\n    test 1839 n: 1.0\n    test 1840 R: 2.020000\n    test 1841 d: 115.737475\n    test 1842 n: 0.0\n    test 1843 D: 205.000000\n    test 1844 r: 3.577925\n    test 1845 n: 1.0\n    test 1846 R: 2.050000\n    test 1847 d: 117.456348\n    test 1848 n: 0.0\n    test 1849 D: 208.000000\n    test 1850 r: 3.630285\n    test 1851 n: 1.0\n    test 1852 R: 2.080000\n    test 1853 d: 119.175221\n    test 1854 n: 0.0\n    test 1855 D: 211.000000\n    test 1856 r: 3.682645\n    test 1857 n: 1.0\n    test 1858 R: 2.110000\n    test 1859 d: 120.894095\n    test 1860 n: 0.0\n    test 1861 D: 214.000000\n    test 1862 r: 3.735005\n    test 1863 n: 1.0\n    test 1864 R: 2.140000\n    test 1865 d: 122.612968\n    test 1866 n: 0.0\n    test 1867 D: 217.000000\n    test 1868 r: 3.787364\n    test 1869 n: 1.0\n    test 1870 R: 2.170000\n    test 1871 d: 124.331842\n    test 1872 n: 0.0\n    test 1873 D: 220.000000\n    test 1874 r: 3.839724\n    test 1875 n: 1.0\n    test 1876 R: 2.200000\n    test 1877 d: 126.050715\n    test 1878 n: 0.0\n    test 1879 D: 223.000000\n    test 1880 r: 3.892084\n    test 1881 n: 1.0\n    test 1882 R: 2.230000\n    test 1883 d: 127.769588\n    test 1884 n: 0.0\n    test 1885 D: 226.000000\n    test 1886 r: 3.944444\n    test 1887 n: 1.0\n    test 1888 R: 2.260000\n    test 1889 d: 129.488462\n    test 1890 n: 0.0\n    test 1891 D: 229.000000\n    test 1892 r: 3.996804\n    test 1893 n: 1.0\n    test 1894 R: 2.290000\n    test 1895 d: 131.207335\n    test 1896 n: 0.0\n    test 1897 D: 232.000000\n    test 1898 r: 4.049164\n    test 1899 n: 1.0\n    test 1900 R: 2.320000\n    test 1901 d: 132.926208\n    test 1902 n: 0.0\n    test 1903 D: 235.000000\n    test 1904 r: 4.101524\n    test 1905 n: 1.0\n    test 1906 R: 2.350000\n    test 1907 d: 134.645082\n    test 1908 n: 0.0\n    test 1909 D: 238.000000\n    test 1910 r: 4.153884\n    test 1911 n: 1.0\n    test 1912 R: 2.380000\n    test 1913 d: 136.363955\n    test 1914 n: 0.0\n    test 1915 D: 241.000000\n    test 1916 r: 4.206243\n    test 1917 n: 1.0\n    test 1918 R: 2.410000\n    test 1919 d: 138.082829\n    test 1920 n: 0.0\n    test 1921 D: 244.000000\n    test 1922 r: 4.258603\n    test 1923 n: 1.0\n    test 1924 R: 2.440000\n    test 1925 d: 139.801702\n    test 1926 n: 0.0\n    test 1927 D: 247.000000\n    test 1928 r: 4.310963\n    test 1929 n: 1.0\n    test 1930 R: 2.470000\n    test 1931 d: 141.520575\n    test 1932 n: 0.0\n    test 1933 D: 250.000000\n    test 1934 r: 4.363323\n    test 1935 n: 1.0\n    test 1936 R: 2.500000\n    test 1937 d: 143.239449\n    test 1938 n: 0.0\n    test 1939 D: 253.000000\n    test 1940 r: 4.415683\n    test 1941 n: 1.0\n    test 1942 R: 2.530000\n    test 1943 d: 144.958322\n    test 1944 n: 0.0\n    test 1945 D: 256.000000\n    test 1946 r: 4.468043\n    test 1947 n: 1.0\n    test 1948 R: 2.560000\n    test 1949 d: 146.677196\n    test 1950 n: 0.0\n    test 1951 D: 259.000000\n    test 1952 r: 4.520403\n    test 1953 n: 1.0\n    test 1954 R: 2.590000\n    test 1955 d: 148.396069\n    test 1956 n: 0.0\n    test 1957 D: 262.000000\n    test 1958 r: 4.572763\n    test 1959 n: 1.0\n    test 1960 R: 2.620000\n    test 1961 d: 150.114942\n    test 1962 n: 0.0\n    test 1963 D: 265.000000\n    test 1964 r: 4.625123\n    test 1965 n: 1.0\n    test 1966 R: 2.650000\n    test 1967 d: 151.833816\n    test 1968 n: 0.0\n    test 1969 D: 268.000000\n    test 1970 r: 4.677482\n    test 1971 n: 1.0\n    test 1972 R: 2.680000\n    test 1973 d: 153.552689\n    test 1974 n: 0.0\n    test 1975 D: 271.000000\n    test 1976 r: 4.729842\n    test 1977 n: 1.0\n    test 1978 R: 2.710000\n    test 1979 d: 155.271562\n    test 1980 n: 0.0\n    test 1981 D: 274.000000\n    test 1982 r: 4.782202\n    test 1983 n: 1.0\n    test 1984 R: 2.740000\n    test 1985 d: 156.990436\n    test 1986 n: 0.0\n    test 1987 D: 277.000000\n    test 1988 r: 4.834562\n    test 1989 n: 1.0\n    test 1990 R: 2.770000\n    test 1991 d: 158.709309\n    test 1992 n: 0.0\n    test 1993 D: 280.000000\n    test 1994 r: 4.886922\n    test 1995 n: 1.0\n    test 1996 R: 2.800000\n    test 1997 d: 160.428183\n    test 1998 n: 0.0\n    test 1999 D: 283.000000\n    test 2000 r: 4.939282\n    test 2001 n: 1.0\n    test 2002 R: 2.830000\n    test 2003 d: 162.147056\n    test 2004 n: 0.0\n    test 2005 D: 286.000000\n    test 2006 r: 4.991642\n    test 2007 n: 1.0\n    test 2008 R: 2.860000\n    test 2009 d: 163.865929\n    test 2010 n: 0.0\n    test 2011 D: 289.000000\n    test 2012 r: 5.044002\n    test 2013 n: 1.0\n    test 2014 R: 2.890000\n    test 2015 d: 165.584803\n    test 2016 n: 0.0\n    test 2017 D: 292.000000\n    test 2018 r: 5.096361\n    test 2019 n: 1.0\n    test 2020 R: 2.920000\n    test 2021 d: 167.303676\n    test 2022 n: 0.0\n    test 2023 D: 295.000000\n    test 2024 r: 5.148721\n    test 2025 n: 1.0\n    test 2026 R: 2.950000\n    test 2027 d: 169.022550\n    test 2028 n: 0.0\n    test 2029 D: 298.000000\n    test 2030 r: 5.201081\n    test 2031 n: 1.0\n    test 2032 R: 2.980000\n    test 2033 d: 170.741423\n    test 2034 n: 0.0\n    test 2035 D: 301.000000\n    test 2036 r: 5.253441\n    test 2037 n: 1.0\n    test 2038 R: 3.010000\n    test 2039 d: 172.460296\n    test 2040 n: 0.0\n    test 2041 D: 304.000000\n    test 2042 r: 5.305801\n    test 2043 n: 1.0\n    test 2044 R: 3.040000\n    test 2045 d: 174.179170\n    test 2046 n: 0.0\n    test 2047 D: 307.000000\n    test 2048 r: 5.358161\n    test 2049 n: 1.0\n    test 2050 R: 3.070000\n    test 2051 d: 175.898043\n    test 2052 n: 0.0\n    test 2053 D: 310.000000\n    test 2054 r: 5.410521\n    test 2055 n: 1.0\n    test 2056 R: 3.100000\n    test 2057 d: 177.616916\n    test 2058 n: 0.0\n    test 2059 D: 313.000000\n    test 2060 r: 5.462881\n    test 2061 n: 1.0\n    test 2062 R: 3.130000\n    test 2063 d: 179.335790\n    test 2064 n: 0.0\n    test 2065 D: 316.000000\n    test 2066 r: 5.515240\n    test 2067 n: 1.0\n    test 2068 R: 3.160000\n    test 2069 d: 181.054663\n    test 2070 n: 1.0\n    test 2071 D: 319.000000\n    test 2072 r: 5.567600\n    test 2073 n: 1.0\n    test 2074 R: 3.190000\n    test 2075 d: 182.773537\n    test 2076 n: 1.0\n    test 2077 D: 322.000000\n    test 2078 r: 5.619960\n    test 2079 n: 1.0\n    test 2080 R: 3.220000\n    test 2081 d: 184.492410\n    test 2082 n: 1.0\n    test 2083 D: 325.000000\n    test 2084 r: 5.672320\n    test 2085 n: 1.0\n    test 2086 R: 3.250000\n    test 2087 d: 186.211283\n    test 2088 n: 1.0\n    test 2089 D: 328.000000\n    test 2090 r: 5.724680\n    test 2091 n: 1.0\n    test 2092 R: 3.280000\n    test 2093 d: 187.930157\n    test 2094 n: 1.0\n    test 2095 D: 331.000000\n    test 2096 r: 5.777040\n    test 2097 n: 1.0\n    test 2098 R: 3.310000\n    test 2099 d: 189.649030\n    test 2100 n: 1.0\n    test 2101 D: 334.000000\n    test 2102 r: 5.829400\n    test 2103 n: 1.0\n    test 2104 R: 3.340000\n    test 2105 d: 191.367904\n    test 2106 n: 1.0\n    test 2107 D: 337.000000\n    test 2108 r: 5.881760\n    test 2109 n: 1.0\n    test 2110 R: 3.370000\n    test 2111 d: 193.086777\n    test 2112 n: 1.0\n    test 2113 D: 340.000000\n    test 2114 r: 5.934119\n    test 2115 n: 1.0\n    test 2116 R: 3.400000\n    test 2117 d: 194.805650\n    test 2118 n: 1.0\n    test 2119 D: 343.000000\n    test 2120 r: 5.986479\n    test 2121 n: 1.0\n    test 2122 R: 3.430000\n    test 2123 d: 196.524524\n    test 2124 n: 1.0\n    test 2125 D: 346.000000\n    test 2126 r: 6.038839\n    test 2127 n: 1.0\n    test 2128 R: 3.460000\n    test 2129 d: 198.243397\n    test 2130 n: 1.0\n    test 2131 D: 349.000000\n    test 2132 r: 6.091199\n    test 2133 n: 1.0\n    test 2134 R: 3.490000\n    test 2135 d: 199.962271\n    test 2136 n: 1.0\n    test 2137 D: 352.000000\n    test 2138 r: 6.143559\n    test 2139 n: 1.0\n    test 2140 R: 3.520000\n    test 2141 d: 201.681144\n    test 2142 n: 1.0\n    test 2143 D: 355.000000\n    test 2144 r: 6.195919\n    test 2145 n: 1.0\n    test 2146 R: 3.550000\n    test 2147 d: 203.400017\n    test 2148 n: 1.0\n    test 2149 D: 358.000000\n    test 2150 r: 6.248279\n    test 2151 n: 1.0\n    test 2152 R: 3.580000\n    test 2153 d: 205.118891\n    test 2154 n: 1.0\n    test 2155 D: 361.000000\n    test 2156 r: 6.300639\n    test 2157 n: 1.0\n    test 2158 R: 3.610000\n    test 2159 d: 206.837764\n    test 2160 n: 1.0\n    test 2161 D: 364.000000\n    test 2162 r: 6.352998\n    test 2163 n: 1.0\n    test 2164 R: 3.640000\n    test 2165 d: 208.556637\n    test 2166 n: 1.0\n    test 2167 D: 367.000000\n    test 2168 r: 6.405358\n    test 2169 n: 1.0\n    test 2170 R: 3.670000\n    test 2171 d: 210.275511\n    test 2172 n: 1.0\n    test 2173 D: 370.000000\n    test 2174 r: 6.457718\n    test 2175 n: 1.0\n    test 2176 R: 3.700000\n    test 2177 d: 211.994384\n    test 2178 n: 1.0\n    test 2179 D: 373.000000\n    test 2180 r: 6.510078\n    test 2181 n: 1.0\n    test 2182 R: 3.730000\n    test 2183 d: 213.713258\n    test 2184 n: 1.0\n    test 2185 D: 376.000000\n    test 2186 r: 6.562438\n    test 2187 n: 1.0\n    test 2188 R: 3.760000\n    test 2189 d: 215.432131\n    test 2190 n: 1.0\n    test 2191 D: 379.000000\n    test 2192 r: 6.614798\n    test 2193 n: 1.0\n    test 2194 R: 3.790000\n    test 2195 d: 217.151004\n    test 2196 n: 1.0\n    test 2197 D: 382.000000\n    test 2198 r: 6.667158\n    test 2199 n: 1.0\n    test 2200 R: 3.820000\n    test 2201 d: 218.869878\n    test 2202 n: 1.0\n    test 2203 D: 385.000000\n    test 2204 r: 6.719518\n    test 2205 n: 1.0\n    test 2206 R: 3.850000\n    test 2207 d: 220.588751\n    test 2208 n: 1.0\n    test 2209 D: 388.000000\n    test 2210 r: 6.771877\n    test 2211 n: 1.0\n    test 2212 R: 3.880000\n    test 2213 d: 222.307625\n    test 2214 n: 1.0\n    test 2215 D: 391.000000\n    test 2216 r: 6.824237\n    test 2217 n: 1.0\n    test 2218 R: 3.910000\n    test 2219 d: 224.026498\n    test 2220 n: 1.0\n    test 2221 D: 394.000000\n    test 2222 r: 6.876597\n    test 2223 n: 1.0\n    test 2224 R: 3.940000\n    test 2225 d: 225.745371\n    test 2226 n: 1.0\n    test 2227 D: 397.000000\n    test 2228 r: 6.928957\n    test 2229 n: 1.0\n    test 2230 R: 3.970000\n    test 2231 d: 227.464245\n    test 2232 n: 1.0\n    test 2233 D: 400.000000\n    test 2234 r: 6.981317\n    test 2235 n: 1.0\n    test 2236 R: 4.000000\n    test 2237 d: 229.183118\n    test 2238 n: 1.0\n    test 2239 D: 403.000000\n    test 2240 r: 7.033677\n    test 2241 n: 1.0\n    test 2242 R: 4.030000\n    test 2243 d: 230.901991\n    test 2244 n: 1.0\n    test 2245 D: 406.000000\n    test 2246 r: 7.086037\n    test 2247 n: 1.0\n    test 2248 R: 4.060000\n    test 2249 d: 232.620865\n    test 2250 n: 1.0\n    test 2251 D: 409.000000\n    test 2252 r: 7.138397\n    test 2253 n: 1.0\n    test 2254 R: 4.090000\n    test 2255 d: 234.339738\n    test 2256 n: 1.0\n    test 2257 D: 412.000000\n    test 2258 r: 7.190757\n    test 2259 n: 1.0\n    test 2260 R: 4.120000\n    test 2261 d: 236.058612\n    test 2262 n: 1.0\n    test 2263 D: 415.000000\n    test 2264 r: 7.243116\n    test 2265 n: 1.0\n    test 2266 R: 4.150000\n    test 2267 d: 237.777485\n    test 2268 n: 1.0\n    test 2269 D: 418.000000\n    test 2270 r: 7.295476\n    test 2271 n: 1.0\n    test 2272 R: 4.180000\n    test 2273 d: 239.496358\n    test 2274 n: 1.0\n    test 2275 D: 421.000000\n    test 2276 r: 7.347836\n    test 2277 n: 1.0\n    test 2278 R: 4.210000\n    test 2279 d: 241.215232\n    test 2280 n: 1.0\n    test 2281 D: 424.000000\n    test 2282 r: 7.400196\n    test 2283 n: 1.0\n    test 2284 R: 4.240000\n    test 2285 d: 242.934105\n    test 2286 n: 1.0\n    test 2287 D: 427.000000\n    test 2288 r: 7.452556\n    test 2289 n: 1.0\n    test 2290 R: 4.270000\n    test 2291 d: 244.652979\n    test 2292 n: 1.0\n    test 2293 D: 430.000000\n    test 2294 r: 7.504916\n    test 2295 n: 1.0\n    test 2296 R: 4.300000\n    test 2297 d: 246.371852\n    test 2298 n: 1.0\n    test 2299 D: 433.000000\n    test 2300 r: 7.557276\n    test 2301 n: 1.0\n    test 2302 R: 4.330000\n    test 2303 d: 248.090725\n    test 2304 n: 1.0\n    test 2305 D: 436.000000\n    test 2306 r: 7.609636\n    test 2307 n: 1.0\n    test 2308 R: 4.360000\n    test 2309 d: 249.809599\n    test 2310 n: 1.0\n    test 2311 D: 439.000000\n    test 2312 r: 7.661995\n    test 2313 n: 1.0\n    test 2314 R: 4.390000\n    test 2315 d: 251.528472\n    test 2316 n: 1.0\n    test 2317 D: 442.000000\n    test 2318 r: 7.714355\n    test 2319 n: 1.0\n    test 2320 R: 4.420000\n    test 2321 d: 253.247345\n    test 2322 n: 1.0\n    test 2323 D: 445.000000\n    test 2324 r: 7.766715\n    test 2325 n: 1.0\n    test 2326 R: 4.450000\n    test 2327 d: 254.966219\n    test 2328 n: 1.0\n    test 2329 D: 448.000000\n    test 2330 r: 7.819075\n    test 2331 n: 1.0\n    test 2332 R: 4.480000\n    test 2333 d: 256.685092\n    test 2334 n: 1.0\n    test 2335 D: 451.000000\n    test 2336 r: 7.871435\n    test 2337 n: 1.0\n    test 2338 R: 4.510000\n    test 2339 d: 258.403966\n    test 2340 n: 1.0\n    test 2341 D: 454.000000\n    test 2342 r: 7.923795\n    test 2343 n: 1.0\n    test 2344 R: 4.540000\n    test 2345 d: 260.122839\n    test 2346 n: 1.0\n    test 2347 D: 457.000000\n    test 2348 r: 7.976155\n    test 2349 n: 1.0\n    test 2350 R: 4.570000\n    test 2351 d: 261.841712\n    test 2352 n: 1.0\n    test 2353 D: 460.000000\n    test 2354 r: 8.028515\n    test 2355 n: 1.0\n    test 2356 R: 4.600000\n    test 2357 d: 263.560586\n    test 2358 n: 1.0\n    test 2359 D: 463.000000\n    test 2360 r: 8.080874\n    test 2361 n: 1.0\n    test 2362 R: 4.630000\n    test 2363 d: 265.279459\n    test 2364 n: 1.0\n    test 2365 D: 466.000000\n    test 2366 r: 8.133234\n    test 2367 n: 1.0\n    test 2368 R: 4.660000\n    test 2369 d: 266.998333\n    test 2370 n: 1.0\n    test 2371 D: 469.000000\n    test 2372 r: 8.185594\n    test 2373 n: 1.0\n    test 2374 R: 4.690000\n    test 2375 d: 268.717206\n    test 2376 n: 1.0\n    test 2377 D: 472.000000\n    test 2378 r: 8.237954\n    test 2379 n: 1.0\n    test 2380 R: 4.720000\n    test 2381 d: 270.436079\n    test 2382 n: 1.0\n    test 2383 D: 475.000000\n    test 2384 r: 8.290314\n    test 2385 n: 1.0\n    test 2386 R: 4.750000\n    test 2387 d: 272.154953\n    test 2388 n: 1.0\n    test 2389 D: 478.000000\n    test 2390 r: 8.342674\n    test 2391 n: 1.0\n    test 2392 R: 4.780000\n    test 2393 d: 273.873826\n    test 2394 n: 1.0\n    test 2395 D: 481.000000\n    test 2396 r: 8.395034\n    test 2397 n: 1.0\n    test 2398 R: 4.810000\n    test 2399 d: 275.592699\n    test 2400 n: 1.0\n    test 2401 D: 484.000000\n    test 2402 r: 8.447394\n    test 2403 n: 1.0\n    test 2404 R: 4.840000\n    test 2405 d: 277.311573\n    test 2406 n: 1.0\n    test 2407 D: 487.000000\n    test 2408 r: 8.499753\n    test 2409 n: 1.0\n    test 2410 R: 4.870000\n    test 2411 d: 279.030446\n    test 2412 n: 1.0\n    test 2413 D: 490.000000\n    test 2414 r: 8.552113\n    test 2415 n: 1.0\n    test 2416 R: 4.900000\n    test 2417 d: 280.749320\n    test 2418 n: 1.0\n    test 2419 D: 493.000000\n    test 2420 r: 8.604473\n    test 2421 n: 1.0\n    test 2422 R: 4.930000\n    test 2423 d: 282.468193\n    test 2424 n: 1.0\n    test 2425 D: 496.000000\n    test 2426 r: 8.656833\n    test 2427 n: 1.0\n    test 2428 R: 4.960000\n    test 2429 d: 284.187066\n    test 2430 n: 1.0\n    test 2431 D: 499.000000\n    test 2432 r: 8.709193\n    test 2433 n: 1.0\n    test 2434 R: 4.990000\n    test 2435 d: 285.905940\n    test 2436 n: 1.0\n    test 2437 D: 502.000000\n    test 2438 r: 8.761553\n    test 2439 n: 1.0\n    test 2440 R: 5.020000\n    test 2441 d: 287.624813\n    test 2442 n: 1.0\n    test 2443 D: 505.000000\n    test 2444 r: 8.813913\n    test 2445 n: 1.0\n    test 2446 R: 5.050000\n    test 2447 d: 289.343687\n    test 2448 n: 1.0\n    test 2449 D: 508.000000\n    test 2450 r: 8.866273\n    test 2451 n: 1.0\n    test 2452 R: 5.080000\n    test 2453 d: 291.062560\n    test 2454 n: 1.0\n    test 2455 D: 511.000000\n    test 2456 r: 8.918632\n    test 2457 n: 1.0\n    test 2458 R: 5.110000\n    test 2459 d: 292.781433\n    test 2460 n: 1.0\n    test 2461 D: 514.000000\n    test 2462 r: 8.970992\n    test 2463 n: 1.0\n    test 2464 R: 5.140000\n    test 2465 d: 294.500307\n    test 2466 n: 1.0\n    test 2467 D: 517.000000\n    test 2468 r: 9.023352\n    test 2469 n: 1.0\n    test 2470 R: 5.170000\n    test 2471 d: 296.219180\n    test 2472 n: 1.0\n    test 2473 D: 520.000000\n    test 2474 r: 9.075712\n    test 2475 n: 1.0\n    test 2476 R: 5.200000\n    test 2477 d: 297.938053\n    test 2478 n: 1.0\n    test 2479 D: 523.000000\n    test 2480 r: 9.128072\n    test 2481 n: 1.0\n    test 2482 R: 5.230000\n    test 2483 d: 299.656927\n    test 2484 n: 1.0\n    test 2485 D: 526.000000\n    test 2486 r: 9.180432\n    test 2487 n: 1.0\n    test 2488 R: 5.260000\n    test 2489 d: 301.375800\n    test 2490 n: 1.0\n    test 2491 D: 529.000000\n    test 2492 r: 9.232792\n    test 2493 n: 1.0\n    test 2494 R: 5.290000\n    test 2495 d: 303.094674\n    test 2496 n: 1.0\n    test 2497 D: 532.000000\n    test 2498 r: 9.285152\n    test 2499 n: 1.0\n    test 2500 R: 5.320000\n    test 2501 d: 304.813547\n    test 2502 n: 1.0\n    test 2503 D: 535.000000\n    test 2504 r: 9.337511\n    test 2505 n: 1.0\n    test 2506 R: 5.350000\n    test 2507 d: 306.532420\n    test 2508 n: 1.0\n    test 2509 D: 538.000000\n    test 2510 r: 9.389871\n    test 2511 n: 1.0\n    test 2512 R: 5.380000\n    test 2513 d: 308.251294\n    test 2514 n: 1.0\n    test 2515 D: 541.000000\n    test 2516 r: 9.442231\n    test 2517 n: 2.0\n    test 2518 R: 5.410000\n    test 2519 d: 309.970167\n    test 2520 n: 1.0\n    test 2521 D: 544.000000\n    test 2522 r: 9.494591\n    test 2523 n: 2.0\n    test 2524 R: 5.440000\n    test 2525 d: 311.689041\n    test 2526 n: 1.0\n    test 2527 D: 547.000000\n    test 2528 r: 9.546951\n    test 2529 n: 2.0\n    test 2530 R: 5.470000\n    test 2531 d: 313.407914\n    test 2532 n: 1.0\n    test 2533 D: 550.000000\n    test 2534 r: 9.599311\n    test 2535 n: 2.0\n    test 2536 R: 5.500000\n    test 2537 d: 315.126787\n    test 2538 n: 1.0\n    test 2539 D: 553.000000\n    test 2540 r: 9.651671\n    test 2541 n: 2.0\n    test 2542 R: 5.530000\n    test 2543 d: 316.845661\n    test 2544 n: 1.0\n    test 2545 D: 556.000000\n    test 2546 r: 9.704031\n    test 2547 n: 2.0\n    test 2548 R: 5.560000\n    test 2549 d: 318.564534\n    test 2550 n: 1.0\n    test 2551 D: 559.000000\n    test 2552 r: 9.756391\n    test 2553 n: 2.0\n    test 2554 R: 5.590000\n    test 2555 d: 320.283407\n    test 2556 n: 1.0\n    test 2557 D: 562.000000\n    test 2558 r: 9.808750\n    test 2559 n: 2.0\n    test 2560 R: 5.620000\n    test 2561 d: 322.002281\n    test 2562 n: 1.0\n    test 2563 D: 565.000000\n    test 2564 r: 9.861110\n    test 2565 n: 2.0\n    test 2566 R: 5.650000\n    test 2567 d: 323.721154\n    test 2568 n: 1.0\n    test 2569 D: 568.000000\n    test 2570 r: 9.913470\n    test 2571 n: 2.0\n    test 2572 R: 5.680000\n    test 2573 d: 325.440028\n    test 2574 n: 1.0\n    test 2575 D: 571.000000\n    test 2576 r: 9.965830\n    test 2577 n: 2.0\n    test 2578 R: 5.710000\n    test 2579 d: 327.158901\n    test 2580 n: 1.0\n    test 2581 D: 574.000000\n    test 2582 r: 10.018190\n    test 2583 n: 2.0\n    test 2584 R: 5.740000\n    test 2585 d: 328.877774\n    test 2586 n: 1.0\n    test 2587 D: 577.000000\n    test 2588 r: 10.070550\n    test 2589 n: 2.0\n    test 2590 R: 5.770000\n    test 2591 d: 330.596648\n    test 2592 n: 1.0\n    test 2593 D: 580.000000\n    test 2594 r: 10.122910\n    test 2595 n: 2.0\n    test 2596 R: 5.800000\n    test 2597 d: 332.315521\n    test 2598 n: 1.0\n    test 2599 D: 583.000000\n    test 2600 r: 10.175270\n    test 2601 n: 2.0\n    test 2602 R: 5.830000\n    test 2603 d: 334.034395\n    test 2604 n: 1.0\n    test 2605 D: 586.000000\n    test 2606 r: 10.227629\n    test 2607 n: 2.0\n    test 2608 R: 5.860000\n    test 2609 d: 335.753268\n    test 2610 n: 1.0\n    test 2611 D: 589.000000\n    test 2612 r: 10.279989\n    test 2613 n: 2.0\n    test 2614 R: 5.890000\n    test 2615 d: 337.472141\n    test 2616 n: 1.0\n    test 2617 D: 592.000000\n    test 2618 r: 10.332349\n    test 2619 n: 2.0\n    test 2620 R: 5.920000\n    test 2621 d: 339.191015\n    test 2622 n: 1.0\n    test 2623 D: 595.000000\n    test 2624 r: 10.384709\n    test 2625 n: 2.0\n    test 2626 R: 5.950000\n    test 2627 d: 340.909888\n    test 2628 n: 1.0\n    test 2629 D: 598.000000\n    test 2630 r: 10.437069\n    test 2631 n: 2.0\n    test 2632 R: 5.980000\n    test 2633 d: 342.628761\n    test 2634 n: 1.0\n    test 2635 D: 601.000000\n    test 2636 r: 10.489429\n    test 2637 n: 2.0\n    test 2638 R: 6.010000\n    test 2639 d: 344.347635\n    test 2640 n: 1.0\n    test 2641 D: 604.000000\n    test 2642 r: 10.541789\n    test 2643 n: 2.0\n    test 2644 R: 6.040000\n    test 2645 d: 346.066508\n    test 2646 n: 1.0\n    test 2647 D: 607.000000\n    test 2648 r: 10.594149\n    test 2649 n: 2.0\n    test 2650 R: 6.070000\n    test 2651 d: 347.785382\n    test 2652 n: 1.0\n    test 2653 D: 610.000000\n    test 2654 r: 10.646508\n    test 2655 n: 2.0\n    test 2656 R: 6.100000\n    test 2657 d: 349.504255\n    test 2658 n: 1.0\n    test 2659 D: 613.000000\n    test 2660 r: 10.698868\n    test 2661 n: 2.0\n    test 2662 R: 6.130000\n    test 2663 d: 351.223128\n    test 2664 n: 1.0\n    test 2665 D: 616.000000\n    test 2666 r: 10.751228\n    test 2667 n: 2.0\n    test 2668 R: 6.160000\n    test 2669 d: 352.942002\n    test 2670 n: 1.0\n    test 2671 D: 619.000000\n    test 2672 r: 10.803588\n    test 2673 n: 2.0\n    test 2674 R: 6.190000\n    test 2675 d: 354.660875\n    test 2676 n: 1.0\n    test 2677 D: 622.000000\n    test 2678 r: 10.855948\n    test 2679 n: 2.0\n    test 2680 R: 6.220000\n    test 2681 d: 356.379749\n    test 2682 n: 1.0\n    test 2683 D: 625.000000\n    test 2684 r: 10.908308\n    test 2685 n: 2.0\n    test 2686 R: 6.250000\n    test 2687 d: 358.098622\n    test 2688 n: 1.0\n    test 2689 D: 628.000000\n    test 2690 r: 10.960668\n    test 2691 n: 2.0\n    test 2692 R: 6.280000\n    test 2693 d: 359.817495\n    test 2694 n: 1.0\n    test 2695 D: 631.000000\n    test 2696 r: 11.013028\n    test 2697 n: 2.0\n    test 2698 R: 6.310000\n    test 2699 d: 361.536369\n    test 2700 n: 1.0\n    test 2701 D: 634.000000\n    test 2702 r: 11.065387\n    test 2703 n: 2.0\n    test 2704 R: 6.340000\n    test 2705 d: 363.255242\n    test 2706 n: 1.0\n    test 2707 D: 637.000000\n    test 2708 r: 11.117747\n    test 2709 n: 2.0\n    test 2710 R: 6.370000\n    test 2711 d: 364.974115\n    test 2712 n: 1.0\n    test 2713 D: 640.000000\n    test 2714 r: 11.170107\n    test 2715 n: 2.0\n    test 2716 R: 6.400000\n    test 2717 d: 366.692989\n    test 2718 n: 1.0\n    test 2719 D: 643.000000\n    test 2720 r: 11.222467\n    test 2721 n: 2.0\n    test 2722 R: 6.430000\n    test 2723 d: 368.411862\n    test 2724 n: 1.0\n    test 2725 D: 646.000000\n    test 2726 r: 11.274827\n    test 2727 n: 2.0\n    test 2728 R: 6.460000\n    test 2729 d: 370.130736\n    test 2730 n: 1.0\n    test 2731 D: 649.000000\n    test 2732 r: 11.327187\n    test 2733 n: 2.0\n    test 2734 R: 6.490000\n    test 2735 d: 371.849609\n    test 2736 n: 1.0\n    test 2737 D: 652.000000\n    test 2738 r: 11.379547\n    test 2739 n: 2.0\n    test 2740 R: 6.520000\n    test 2741 d: 373.568482\n    test 2742 n: 1.0\n    test 2743 D: 655.000000\n    test 2744 r: 11.431907\n    test 2745 n: 2.0\n    test 2746 R: 6.550000\n    test 2747 d: 375.287356\n    test 2748 n: 1.0\n    test 2749 D: 658.000000\n    test 2750 r: 11.484266\n    test 2751 n: 2.0\n    test 2752 R: 6.580000\n    test 2753 d: 377.006229\n    test 2754 n: 1.0\n    test 2755 D: 661.000000\n    test 2756 r: 11.536626\n    test 2757 n: 2.0\n    test 2758 R: 6.610000\n    test 2759 d: 378.725103\n    test 2760 n: 1.0\n    test 2761 D: 664.000000\n    test 2762 r: 11.588986\n    test 2763 n: 2.0\n    test 2764 R: 6.640000\n    test 2765 d: 380.443976\n    test 2766 n: 1.0\n    test 2767 D: 667.000000\n    test 2768 r: 11.641346\n    test 2769 n: 2.0\n    test 2770 R: 6.670000\n    test 2771 d: 382.162849\n    test 2772 n: 1.0\n    test 2773 D: 670.000000\n    test 2774 r: 11.693706\n    test 2775 n: 2.0\n    test 2776 R: 6.700000\n    test 2777 d: 383.881723\n    test 2778 n: 1.0\n    test 2779 D: 673.000000\n    test 2780 r: 11.746066\n    test 2781 n: 2.0\n    test 2782 R: 6.730000\n    test 2783 d: 385.600596\n    test 2784 n: 1.0\n    test 2785 D: 676.000000\n    test 2786 r: 11.798426\n    test 2787 n: 2.0\n    test 2788 R: 6.760000\n    test 2789 d: 387.319470\n    test 2790 n: 1.0\n    test 2791 D: 679.000000\n    test 2792 r: 11.850786\n    test 2793 n: 2.0\n    test 2794 R: 6.790000\n    test 2795 d: 389.038343\n    test 2796 n: 1.0\n    test 2797 D: 682.000000\n    test 2798 r: 11.903145\n    test 2799 n: 2.0\n    test 2800 R: 6.820000\n    test 2801 d: 390.757216\n    test 2802 n: 1.0\n    test 2803 D: 685.000000\n    test 2804 r: 11.955505\n    test 2805 n: 2.0\n    test 2806 R: 6.850000\n    test 2807 d: 392.476090\n    test 2808 n: 1.0\n    test 2809 D: 688.000000\n    test 2810 r: 12.007865\n    test 2811 n: 2.0\n    test 2812 R: 6.880000\n    test 2813 d: 394.194963\n    test 2814 n: 1.0\n    test 2815 D: 691.000000\n    test 2816 r: 12.060225\n    test 2817 n: 2.0\n    test 2818 R: 6.910000\n    test 2819 d: 395.913836\n    test 2820 n: 1.0\n    test 2821 D: 694.000000\n    test 2822 r: 12.112585\n    test 2823 n: 2.0\n    test 2824 R: 6.940000\n    test 2825 d: 397.632710\n    test 2826 n: 1.0\n    test 2827 D: 697.000000\n    test 2828 r: 12.164945\n    test 2829 n: 2.0\n    test 2830 R: 6.970000\n    test 2831 d: 399.351583\n    test 2832 n: 1.0\n    test 2833 D: 700.000000\n    test 2834 r: 12.217305\n    test 2835 n: 2.0\n    test 2836 R: 7.000000\n    test 2837 d: 401.070457\n    test 2838 n: 1.0\n    test 2839 D: 703.000000\n    test 2840 r: 12.269665\n    test 2841 n: 2.0\n    test 2842 R: 7.030000\n    test 2843 d: 402.789330\n    test 2844 n: 1.0\n    test 2845 D: 706.000000\n    test 2846 r: 12.322025\n    test 2847 n: 2.0\n    test 2848 R: 7.060000\n    test 2849 d: 404.508203\n    test 2850 n: 1.0\n    test 2851 D: 709.000000\n    test 2852 r: 12.374384\n    test 2853 n: 2.0\n    test 2854 R: 7.090000\n    test 2855 d: 406.227077\n    test 2856 n: 1.0\n    test 2857 D: 712.000000\n    test 2858 r: 12.426744\n    test 2859 n: 2.0\n    test 2860 R: 7.120000\n    test 2861 d: 407.945950\n    test 2862 n: 1.0\n    test 2863 D: 715.000000\n    test 2864 r: 12.479104\n    test 2865 n: 2.0\n    test 2866 R: 7.150000\n    test 2867 d: 409.664824\n    test 2868 n: 1.0\n\n    test 2869 radd: 32.0\n    test 2870 rdiv: 6.67e-02\n    test 2871 rmul: 60.0\n    test 2872 rpow: 1073741824.0\n    test 2873 rsub: -28.0\n\n    test 2874 R * 2: 4.0000\n    test 2875 R / 2: 2.0000\n    test 2876 R / R: True\n    test 2877 R / R: 1.0\n    test 2878 R / R: 2.0\n    test 2879 abs  : 2.0\n    test 2880 int  : 2\n    test 2881 eq R: True\n    test 2882 ge R: True\n    test 2883 gt R: False\n    test 2884 le R: True\n    test 2885 lt R: False\n    test 2886 ne R: False\n    test 2887 if R: True\n    test 2888 gt 0: True\n    test 2889 lt 0: False\n    test 2890 eq 0: False\n    test 2891 lt 0: True\n    test 2892 gt 0: True\n    test 2893 gt 0: False\n    test 2894 signOf: 1\n    test 2895 signOf: -1\n    test 2896 ceil : 3.0\n    test 2897 floor: 2.0\n\n    test 2898 divmod : (2.0, Radians(0.0))\n    test 2899 divmod : (2.0, Radians(0.0))\n    test 2900 rdivmod : (0.0, Radians(2.0))\n    test 2901 divmod : (-2.0, Radians(1.0))\n    test 2902 imod: 0.0\n    test 2903 mod : 0.0\n    test 2904 rmod: 2.0\n    test 2905 neg : -2.0\n    test 2906 pos : 2.0\n    test 2907 is_int: False\n    test 2908 float: 9e-102\n    test 2909 is_int: False\n    test 2910 round1: 0.0\n    test 2911 R //: -2.0\n    test 2912 // R: -2.0\n    test 2913 R //=: -2.0\n    test 2914 R / 0: ZeroDivisionError('float division by zero',)\n\n    test 2915 pow(R, +): 0.0\n    test 2916 pow(R, -): 0.4767037\n    test 2917 pow(-R, R): ValueError('negative number cannot be raised to a fractional power',)  FAILED, KNOWN, expected TypeError\n    test 2918 pow(R, R): 1.0\n    test 2919 pow(R, f, i): TypeError('pow() 3rd argument not allowed unless all arguments are integers',)\n    test 2920 pow(R, R, i): TypeError('fromDegrees(<Fsum[1] (2.1, 0) at 0x7fac905395d0>)',)\n    test 2921 pow(R, i, None): 4.0\n    test 2922 Z**-2: ZeroDivisionError('0.0 ** -2: 0.0 cannot be raised to a negative power',)\n    test 2923 pow(0): 1.000\n    test 2924 pow(1): -3.000\n    test 2925 pow(2): 9.000\n    test 2926 pow(21): -10460353203.000\n    test 2927 pow(-5): -0.004\n    test 2928 **= 2: 9.000\n\n    test 2929 F0**0: 1.0\n    test 2930 F0**0.: 1.0\n    test 2931 0**F0: 1.0\n    test 2932 0.**F0: 1.0\n    test 2933 F0**0: 1.0\n    test 2934 F0**2: 0.0\n    test 2935 F0**0.: 1.0\n    test 2936 F0**3.: 0.0\n    test 2937 F0**0.: 1.0\n\n    test 2938 R**2: 3125.000\n    test 2939 R**-1: 0.200\n    test 2940 R**-2: 0.040\n    test 2941 R**-2.5: 0.018\n    test 2942 R** 2.5: 55.902\n    test 2943 pow(2): 25.000\n    test 2944 pow(2.5): 55.902\n    test 2945 pow(R): 3125.000\n    test 2946 3pow(2, None): 25.0\n    test 2947 3pow(2.5, None): 55.9017\n    test 2948 3pow(2, 20): 5\n    test 2949 x * x: 25.0\n    test 2950 x * R: 12.5\n    test 2951 x + R: 7.5\n    test 2952 x - R: 2.5\n\n    test 2953 abs(T): 0.0\n    test 2954 bool(T): True\n    test 2955 float(T): 2.22044604925e-16\n    test 2956 int(T): 0\n    test 2957 -T: -0.0\n    test 2958 +T: 0.0\n\n    test 2959 R==T: False\n    test 2960 R>=T: True\n    test 2961 R> T: True\n    test 2962 R<=T: False\n    test 2963 R< T: False\n    test 2964 R!=T: True\n\n    test 2965 base: 61.0\n    test 2966 flipsign: -61.0\n    test 2967 lambertian: 1.35240481667\n    test 2968 fromScalar: 1.35240482\n    test 2969 n0: 61.0\n    test 2970 nearest: 90.0\n    test 2971 normalize: 61.0\n    test 2972 quadrant: 0\n    test 2973 reflect: 61.0\n    test 2974 round: 61.0\n    test 2975 shift: nan\n    test 2976 t: 1.80404775527\n    test 2977 toLambertian: 1.35240481667\n    test 2978 toTuple: 0.87462, 0.48481, 0.0\n\n    1 of 2978 testAngles.py tests (0.0%) FAILED, ALL KNOWN (pygeodesy 26.3.26 Python 2.7.18 64bit arm64_x86_64 geographiclib 1.50 numpy 1.16.6 scipy 1.2.2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 -W  default) 34.803 ms\nrunning /Library/Framewo....ython -W default ~/PyGeodesy/test/testAuxilats.py\n\n    testing testAuxilats.py 25.09.09 (module pygeodesy.auxilats 25.12.02)\n\n    test 1 Aux: 6\n\n    test 2 aout: 0\n    test 3 before: None\n    test 4 before: _Rtuple\n    test 5 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 6 before: _Rtuple\n    test 7 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 8 before: _Rtuple\n    test 9 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 10 before: _Rtuple\n    test 11 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 12 before: _Rtuple\n    test 13 after: tuple  FAILED, KNOWN, expected _Rtuple\n\n    test 14 aout: 1\n    test 15 before: _Rtuple\n    test 16 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 17 before: None\n    test 18 before: _Rtuple\n    test 19 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 20 before: _Rtuple\n    test 21 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 22 before: _Rtuple\n    test 23 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 24 before: _Rtuple\n    test 25 after: tuple  FAILED, KNOWN, expected _Rtuple\n\n    test 26 aout: 2\n    test 27 before: _Rtuple\n    test 28 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 29 before: _Rtuple\n    test 30 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 31 before: None\n    test 32 before: _Rtuple\n    test 33 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 34 before: _Rtuple\n    test 35 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 36 before: _Rtuple\n    test 37 after: tuple  FAILED, KNOWN, expected _Rtuple\n\n    test 38 aout: 3\n    test 39 before: _Rtuple\n    test 40 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 41 before: _Rtuple\n    test 42 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 43 before: _Rtuple\n    test 44 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 45 before: None\n    test 46 before: _Rtuple\n    test 47 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 48 before: _Rtuple\n    test 49 after: tuple  FAILED, KNOWN, expected _Rtuple\n\n    test 50 aout: 4\n    test 51 before: _Rtuple\n    test 52 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 53 before: _Rtuple\n    test 54 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 55 before: _Rtuple\n    test 56 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 57 before: _Rtuple\n    test 58 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 59 before: None\n    test 60 before: _Rtuple\n    test 61 after: tuple  FAILED, KNOWN, expected _Rtuple\n\n    test 62 aout: 5\n    test 63 before: _Rtuple\n    test 64 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 65 before: _Rtuple\n    test 66 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 67 before: _Rtuple\n    test 68 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 69 before: _Rtuple\n    test 70 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 71 before: _Rtuple\n    test 72 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 73 before: None\n\n    test 74 Aux: 4\n\n    test 75 aout: 0\n    test 76 Aux: 4\n    test 77 Aux: 4\n    test 78 Aux: 4\n    test 79 Aux: 4\n    test 80 Aux: 4\n    test 81 Aux: 4\n\n    test 82 aout: 1\n    test 83 Aux: 4\n    test 84 Aux: 4\n    test 85 Aux: 4\n    test 86 Aux: 4\n    test 87 Aux: 4\n    test 88 Aux: 4\n\n    test 89 aout: 2\n    test 90 Aux: 4\n    test 91 Aux: 4\n    test 92 Aux: 4\n    test 93 Aux: 4\n    test 94 Aux: 4\n    test 95 Aux: 4\n\n    test 96 aout: 3\n    test 97 Aux: 4\n    test 98 Aux: 4\n    test 99 Aux: 4\n    test 100 Aux: 4\n    test 101 Aux: 4\n    test 102 Aux: 4\n\n    test 103 aout: 4\n    test 104 Aux: 4\n    test 105 Aux: 4\n    test 106 Aux: 4\n    test 107 Aux: 4\n    test 108 Aux: 4\n    test 109 Aux: 4\n\n    test 110 aout: 5\n    test 111 Aux: 4\n    test 112 Aux: 4\n    test 113 Aux: 4\n    test 114 Aux: 4\n    test 115 Aux: 4\n    test 116 Aux: 4\n\n    test 117 Aux: 6\n\n    test 118 aout: 0\n    test 119 Aux: 6\n    test 120 Aux: 6\n    test 121 Aux: 6\n    test 122 Aux: 6\n    test 123 Aux: 6\n    test 124 Aux: 6\n\n    test 125 aout: 1\n    test 126 Aux: 6\n    test 127 Aux: 6\n    test 128 Aux: 6\n    test 129 Aux: 6\n    test 130 Aux: 6\n    test 131 Aux: 6\n\n    test 132 aout: 2\n    test 133 Aux: 6\n    test 134 Aux: 6\n    test 135 Aux: 6\n    test 136 Aux: 6\n    test 137 Aux: 6\n    test 138 Aux: 6\n\n    test 139 aout: 3\n    test 140 Aux: 6\n    test 141 Aux: 6\n    test 142 Aux: 6\n    test 143 Aux: 6\n    test 144 Aux: 6\n    test 145 Aux: 6\n\n    test 146 aout: 4\n    test 147 Aux: 6\n    test 148 Aux: 6\n    test 149 Aux: 6\n    test 150 Aux: 6\n    test 151 Aux: 6\n    test 152 Aux: 6\n\n    test 153 aout: 5\n    test 154 Aux: 6\n    test 155 Aux: 6\n    test 156 Aux: 6\n    test 157 Aux: 6\n    test 158 Aux: 6\n    test 159 Aux: 6\n\n    test 160 Aux: 8\n\n    test 161 aout: 0\n    test 162 Aux: 8\n    test 163 Aux: 8\n    test 164 Aux: 8\n    test 165 Aux: 8\n    test 166 Aux: 8\n    test 167 Aux: 8\n\n    test 168 aout: 1\n    test 169 Aux: 8\n    test 170 Aux: 8\n    test 171 Aux: 8\n    test 172 Aux: 8\n    test 173 Aux: 8\n    test 174 Aux: 8\n\n    test 175 aout: 2\n    test 176 Aux: 8\n    test 177 Aux: 8\n    test 178 Aux: 8\n    test 179 Aux: 8\n    test 180 Aux: 8\n    test 181 Aux: 8\n\n    test 182 aout: 3\n    test 183 Aux: 8\n    test 184 Aux: 8\n    test 185 Aux: 8\n    test 186 Aux: 8\n    test 187 Aux: 8\n    test 188 Aux: 8\n\n    test 189 aout: 4\n    test 190 Aux: 8\n    test 191 Aux: 8\n    test 192 Aux: 8\n    test 193 Aux: 8\n    test 194 Aux: 8\n    test 195 Aux: 8\n\n    test 196 aout: 5\n    test 197 Aux: 8\n    test 198 Aux: 8\n    test 199 Aux: 8\n    test 200 Aux: 8\n    test 201 Aux: 8\n    test 202 Aux: 8\n\n    test 203  0 0.000000000000 Phi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 204  0 0.000000000000 Beta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 205  0 0.000000000000 Theta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 206  0 0.000000000000 Mu(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 207  0 0.000000000000 Chi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 208  0 0.000000000000 Xi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n\n    test 209  0 0.000000000000 Phi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 210  0 0.000000000000 Beta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 211  0 0.000000000000 Theta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 212  0 0.000000000000 Mu(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 213  0 0.000000000000 Chi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 214  0 0.000000000000 Xi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n\n    test 215  7 7.023313832609 Phi(tan=0.123198, x=0.992546, y=0.122279): 0.122784560903\n    test 216  7 7.000000000000 Beta(tan=0.122785, x=0.992546, y=0.121869): 0.122784560903\n    test 217  7 6.976762016136 Theta(tan=0.122373, x=0.992546, y=0.121461): 0.122784560903\n    test 218  7 6.988357344130 Mu(tan=0.122578, x=0.992571, y=0.121668), iteration=3: 0.122784560903\n    test 219  7 6.976762787606 Chi(tan=0.122373, x=1.0, y=0.122373), iteration=3: 0.122784560903\n    test 220  7 6.992232010256 Xi(tan=0.122647, x=1.99404, y=0.244563), iteration=3: 0.122784560903\n\n    test 221  7 7.023313832609 Phi(tan=0.123198, x=0.992496, y=0.122273): 0.122784560903\n    test 222  7 7.000000000000 Beta(tan=0.122785, x=0.992546, y=0.121869): 0.122784560903\n    test 223  7 6.976762016136 Theta(tan=0.122373, x=0.992595, y=0.121467): 0.122784560903\n    test 224  7 6.988357344130 Mu(tan=0.122578, x=0.992571, y=0.121668): 0.122784560903\n    test 225  7 6.976762787606 Chi(tan=0.122373, x=0.992595, y=0.121467): 0.122784560903\n    test 226  7 6.992232010256 Xi(tan=0.122647, x=0.992563, y=0.121735): 0.122784560903\n\n    test 227 14 14.045235971490 Phi(tan=0.250167, x=0.970296, y=0.242736): 0.249328002843\n    test 228 14 14.000000000000 Beta(tan=0.249328, x=0.970296, y=0.241922): 0.249328002843\n    test 229 14 13.954897969322 Theta(tan=0.248492, x=0.970296, y=0.241111): 0.249328002843\n    test 230 14 13.977407191407 Mu(tan=0.248909, x=0.970391, y=0.241539), iteration=3: 0.249328002843\n    test 231 14 13.954903870195 Chi(tan=0.248492, x=1.0, y=0.248492), iteration=3: 0.249328002843\n    test 232 14 13.984926538790 Xi(tan=0.249049, x=1.94943, y=0.485503), iteration=3: 0.249328002843\n\n    test 233 14 14.045235971490 Phi(tan=0.250167, x=0.970104, y=0.242688): 0.249328002843\n    test 234 14 14.000000000000 Beta(tan=0.249328, x=0.970296, y=0.241922): 0.249328002843\n    test 235 14 13.954897969322 Theta(tan=0.248492, x=0.970486, y=0.241158): 0.249328002843\n    test 236 14 13.977407191407 Mu(tan=0.248909, x=0.970391, y=0.241539): 0.249328002843\n    test 237 14 13.954903870195 Chi(tan=0.248492, x=0.970486, y=0.241158): 0.249328002843\n    test 238 14 13.984926538790 Xi(tan=0.249049, x=0.970359, y=0.241667): 0.249328002843\n\n    test 239 21 21.064458966605 Phi(tan=0.385155, x=0.93358, y=0.359574): 0.383864035035\n    test 240 21 21.000000000000 Beta(tan=0.383864, x=0.93358, y=0.358368): 0.383864035035\n    test 241 21 20.935701709947 Theta(tan=0.382577, x=0.93358, y=0.357166): 0.383864035035\n    test 242 21 20.967800709613 Mu(tan=0.383219, x=0.933782, y=0.357843), iteration=3: 0.383864035035\n    test 243 21 20.935720172355 Chi(tan=0.382577, x=1.0, y=0.382577), iteration=2: 0.383864035035\n    test 244 21 20.978518383767 Xi(tan=0.383434, x=1.87581, y=0.719251), iteration=3: 0.383864035035\n\n    test 245 21 21.064458966605 Phi(tan=0.385155, x=0.933177, y=0.359418): 0.383864035035\n    test 246 21 21.000000000000 Beta(tan=0.383864, x=0.93358, y=0.358368): 0.383864035035\n    test 247 21 20.935701709947 Theta(tan=0.382577, x=0.933982, y=0.35732): 0.383864035035\n    test 248 21 20.967800709613 Mu(tan=0.383219, x=0.933782, y=0.357843): 0.383864035035\n    test 249 21 20.935720172355 Chi(tan=0.382577, x=0.933982, y=0.35732): 0.383864035035\n    test 250 21 20.978518383767 Xi(tan=0.383434, x=0.933715, y=0.358018): 0.383864035035\n\n    test 251 28 28.079838480095 Phi(tan=0.533498, x=0.882948, y=0.471051): 0.531709431661\n    test 252 28 28.000000000000 Beta(tan=0.531709, x=0.882948, y=0.469472): 0.531709431661\n    test 253 28 27.920311317014 Theta(tan=0.529927, x=0.882948, y=0.467898): 0.531709431661\n    test 254 28 27.960108897314 Mu(tan=0.530817, x=0.883274, y=0.468857), iteration=3: 0.531709431661\n    test 255 28 27.920350592883 Chi(tan=0.529928, x=1.0, y=0.529928), iteration=3: 0.531709431661\n    test 256 28 27.973388607066 Xi(tan=0.531114, x=1.77426, y=0.942335), iteration=2: 0.531709431661\n\n    test 257 28 28.079838480095 Phi(tan=0.533498, x=0.882293, y=0.470701): 0.531709431661\n    test 258 28 28.000000000000 Beta(tan=0.531709, x=0.882948, y=0.469472): 0.531709431661\n    test 259 28 27.920311317014 Theta(tan=0.529927, x=0.8836, y=0.468243): 0.531709431661\n    test 260 28 27.960108897314 Mu(tan=0.530817, x=0.883274, y=0.468857): 0.531709431661\n    test 261 28 27.920350592883 Chi(tan=0.529928, x=0.883599, y=0.468244): 0.531709431661\n    test 262 28 27.973388607066 Xi(tan=0.531114, x=0.883166, y=0.469061): 0.531709431661\n\n    test 263 35 35.090461812463 Phi(tan=0.702563, x=0.819152, y=0.575506): 0.700207538210\n    test 264 35 35.000000000000 Beta(tan=0.700208, x=0.819152, y=0.573576): 0.700207538210\n    test 265 35 34.909642037079 Theta(tan=0.69786, x=0.819152, y=0.571653): 0.700207538210\n    test 266 35 34.954788593575 Mu(tan=0.699032, x=0.819604, y=0.57293), iteration=3: 0.700207538210\n    test 267 35 34.909708526741 Chi(tan=0.697862, x=1.0, y=0.697862), iteration=2: 0.700207538210\n    test 268 35 34.969841811236 Xi(tan=0.699423, x=1.64627, y=1.15144), iteration=3: 0.700207538210\n\n    test 269 35 35.090461812463 Phi(tan=0.702563, x=0.818245, y=0.574869): 0.700207538210\n    test 270 35 35.000000000000 Beta(tan=0.700208, x=0.819152, y=0.573576): 0.700207538210\n    test 271 35 34.909642037079 Theta(tan=0.69786, x=0.820056, y=0.572284): 0.700207538210\n    test 272 35 34.954788593575 Mu(tan=0.699032, x=0.819604, y=0.57293): 0.700207538210\n    test 273 35 34.909708526741 Chi(tan=0.697862, x=0.820055, y=0.572285): 0.700207538210\n    test 274 35 34.969841811236 Xi(tan=0.699423, x=0.819454, y=0.573145): 0.700207538210\n\n    test 275 42 42.095701889505 Phi(tan=0.903433, x=0.743145, y=0.671382): 0.900404044298\n    test 276 42 42.000000000000 Beta(tan=0.900404, x=0.743145, y=0.669131): 0.900404044298\n    test 277 42 41.904331700939 Theta(tan=0.897385, x=0.743145, y=0.666887): 0.900404044298\n    test 278 42 41.952155366417 Mu(tan=0.898893, x=0.743703, y=0.66851), iteration=2: 0.900404044298\n    test 279 42 41.904427530254 Chi(tan=0.897388, x=1.0, y=0.897388), iteration=3: 0.900404044298\n    test 280 42 41.968088079226 Xi(tan=0.899396, x=1.49371, y=1.34344), iteration=3: 0.900404044298\n\n    test 281 42 42.095701889505 Phi(tan=0.903433, x=0.742026, y=0.670371): 0.900404044298\n    test 282 42 42.000000000000 Beta(tan=0.900404, x=0.743145, y=0.669131): 0.900404044298\n    test 283 42 41.904331700939 Theta(tan=0.897385, x=0.744261, y=0.667889): 0.900404044298\n    test 284 42 41.952155366417 Mu(tan=0.898893, x=0.743703, y=0.66851): 0.900404044298\n    test 285 42 41.904427530254 Chi(tan=0.897388, x=0.74426, y=0.66789): 0.900404044298\n    test 286 42 41.968088079226 Xi(tan=0.899396, x=0.743517, y=0.668717): 0.900404044298\n\n    test 287 49 49.095253561343 Phi(tan=1.15424, x=0.656059, y=0.757248): 1.150368407221\n    test 288 49 49.000000000000 Beta(tan=1.15037, x=0.656059, y=0.75471): 1.150368407221\n    test 289 49 48.904701906378 Theta(tan=1.14651, x=0.656059, y=0.752179): 1.150368407221\n    test 290 49 48.952364883757 Mu(tan=1.14844, x=0.656686, y=0.754164), iteration=2: 1.150368407221\n    test 291 49 48.904823373499 Chi(tan=1.14652, x=1.0, y=1.14652), iteration=3: 1.150368407221\n    test 292 49 48.968230641178 Xi(tan=1.14908, x=1.31885, y=1.51547), iteration=3: 1.150368407221\n\n    test 293 49 49.095253561343 Phi(tan=1.15424, x=0.654803, y=0.755799): 1.150368407221\n    test 294 49 49.000000000000 Beta(tan=1.15037, x=0.656059, y=0.75471): 1.150368407221\n    test 295 49 48.904701906378 Theta(tan=1.14651, x=0.657313, y=0.753617): 1.150368407221\n    test 296 49 48.952364883757 Mu(tan=1.14844, x=0.656686, y=0.754164): 1.150368407221\n    test 297 49 48.904823373499 Chi(tan=1.14652, x=0.657312, y=0.753619): 1.150368407221\n    test 298 49 48.968230641178 Xi(tan=1.14908, x=0.656477, y=0.754346): 1.150368407221\n\n    test 299 56 56.089150284766 Phi(tan=1.48755, x=0.559193, y=0.831827): 1.482560968513\n    test 300 56 56.000000000000 Beta(tan=1.48256, x=0.559193, y=0.829038): 1.482560968513\n    test 301 56 55.910737485374 Theta(tan=1.47759, x=0.559193, y=0.826258): 1.482560968513\n    test 302 56 55.955403845590 Mu(tan=1.48007, x=0.559838, y=0.828602), iteration=2: 1.482560968513\n    test 303 56 55.910874805786 Chi(tan=1.4776, x=1.0, y=1.4776), iteration=3: 1.482560968513\n    test 304 56 55.970259966049 Xi(tan=1.4809, x=1.12427, y=1.66494), iteration=3: 1.482560968513\n\n    test 305 56 56.089150284766 Phi(tan=1.48755, x=0.557902, y=0.829907): 1.482560968513\n    test 306 56 56.000000000000 Beta(tan=1.48256, x=0.559193, y=0.829038): 1.482560968513\n    test 307 56 55.910737485374 Theta(tan=1.47759, x=0.560484, y=0.828165): 1.482560968513\n    test 308 56 55.955403845590 Mu(tan=1.48007, x=0.559838, y=0.828602): 1.482560968513\n    test 309 56 55.910874805786 Chi(tan=1.4776, x=0.560482, y=0.828167): 1.482560968513\n    test 310 56 55.970259966049 Xi(tan=1.4809, x=0.559623, y=0.828747): 1.482560968513\n\n    test 311 63 63.077760538972 Phi(tan=1.96921, x=0.45399, y=0.894004): 1.962610505505\n    test 312 63 63.000000000000 Beta(tan=1.96261, x=0.45399, y=0.891007): 1.962610505505\n    test 313 63 62.922085806991 Theta(tan=1.95603, x=0.45399, y=0.888019): 1.962610505505\n    test 314 63 62.961090973753 Mu(tan=1.95932, x=0.454595, y=0.890698), iteration=2: 1.962610505505\n    test 315 63 62.922224287619 Chi(tan=1.95604, x=1.0, y=1.95604), iteration=3: 1.962610505505\n    test 316 63 62.974054576334 Xi(tan=1.96042, x=0.912868, y=1.7896), iteration=3: 1.962610505505\n\n    test 317 63 63.077760538972 Phi(tan=1.96921, x=0.452781, y=0.891622): 1.962610505505\n    test 318 63 63.000000000000 Beta(tan=1.96261, x=0.45399, y=0.891007): 1.962610505505\n    test 319 63 62.922085806991 Theta(tan=1.95603, x=0.455202, y=0.890388): 1.962610505505\n    test 320 63 62.961090973753 Mu(tan=1.95932, x=0.454595, y=0.890698): 1.962610505505\n    test 321 63 62.922224287619 Chi(tan=1.95604, x=0.4552, y=0.890389): 1.962610505505\n    test 322 63 62.974054576334 Xi(tan=1.96042, x=0.454394, y=0.890801): 1.962610505505\n\n    test 323 70 70.061764561164 Phi(tan=2.75672, x=0.34202, y=0.942854): 2.747477419455\n    test 324 70 70.000000000000 Beta(tan=2.74748, x=0.34202, y=0.939693): 2.747477419455\n    test 325 70 69.938076331685 Theta(tan=2.73827, x=0.34202, y=0.936542): 2.747477419455\n    test 326 70 69.969087953771 Mu(tan=2.74287, x=0.342527, y=0.939508), iteration=3: 2.747477419455\n    test 327 70 69.938198769881 Chi(tan=2.73828, x=1.0, y=2.73828), iteration=3: 2.747477419455\n    test 328 70 69.979388479327 Xi(tan=2.74441, x=0.687791, y=1.88758), iteration=2: 2.747477419455\n\n    test 329 70 70.061764561164 Phi(tan=2.75672, x=0.341007, y=0.940061): 2.747477419455\n    test 330 70 70.000000000000 Beta(tan=2.74748, x=0.34202, y=0.939693): 2.747477419455\n    test 331 70 69.938076331685 Theta(tan=2.73827, x=0.343036, y=0.939322): 2.747477419455\n    test 332 70 69.969087953771 Mu(tan=2.74287, x=0.342527, y=0.939508): 2.747477419455\n    test 333 70 69.938198769881 Chi(tan=2.73828, x=0.343034, y=0.939323): 2.747477419455\n    test 334 70 69.979388479327 Xi(tan=2.74441, x=0.342358, y=0.93957): 2.747477419455\n\n    test 335 77 77.042113102652 Phi(tan=4.34605, x=0.224951, y=0.977648): 4.331475874284\n    test 336 77 77.000000000000 Beta(tan=4.33148, x=0.224951, y=0.97437): 4.331475874284\n    test 337 77 76.957759584883 Theta(tan=4.31695, x=0.224951, y=0.971103): 4.331475874284\n    test 338 77 76.978919638565 Mu(tan=4.32422, x=0.22531, y=0.974287), iteration=3: 4.331475874284\n    test 339 77 76.957849394477 Chi(tan=4.31698, x=1.0, y=4.31698), iteration=3: 4.331475874284\n    test 340 77 76.985944723491 Xi(tan=4.32663, x=0.452402, y=1.95738), iteration=2: 4.331475874284\n\n    test 341 77 77.042113102652 Phi(tan=4.34605, x=0.224235, y=0.974535): 4.331475874284\n    test 342 77 77.000000000000 Beta(tan=4.33148, x=0.224951, y=0.97437): 4.331475874284\n    test 343 77 76.957759584883 Theta(tan=4.31695, x=0.225669, y=0.974204): 4.331475874284\n    test 344 77 76.978919638565 Mu(tan=4.32422, x=0.22531, y=0.974287): 4.331475874284\n    test 345 77 76.957849394477 Chi(tan=4.31698, x=0.225668, y=0.974204): 4.331475874284\n    test 346 77 76.985944723491 Xi(tan=4.32663, x=0.22519, y=0.974315): 4.331475874284\n\n    test 347 84 84.019970846274 Phi(tan=9.54637, x=0.104528, y=0.997868): 9.514364454223\n    test 348 84 84.000000000000 Beta(tan=9.51436, x=0.104528, y=0.994522): 9.514364454223\n    test 349 84 83.979963440552 Theta(tan=9.48246, x=0.104528, y=0.991187): 9.514364454223\n    test 350 84 83.990002289461 Mu(tan=9.49842, x=0.104702, y=0.994504), iteration=3: 9.514364454223\n    test 351 84 83.980007825249 Chi(tan=9.48254, x=1.0, y=9.48254), iteration=3: 9.514364454223\n    test 352 84 83.993334244416 Xi(tan=9.50373, x=0.210228, y=1.99795), iteration=3: 9.514364454223\n\n    test 353 84 84.019970846274 Phi(tan=9.54637, x=0.104182, y=0.994558): 9.514364454223\n    test 354 84 84.000000000000 Beta(tan=9.51436, x=0.104528, y=0.994522): 9.514364454223\n    test 355 84 83.979963440552 Theta(tan=9.48246, x=0.104876, y=0.994485): 9.514364454223\n    test 356 84 83.990002289461 Mu(tan=9.49842, x=0.104702, y=0.994504): 9.514364454223\n    test 357 84 83.980007825249 Chi(tan=9.48254, x=0.104875, y=0.994485): 9.514364454223\n    test 358 84 83.993334244416 Xi(tan=9.50373, x=0.104644, y=0.99451): 9.514364454223\n\n    test 359 91 90.996647866757 Phi(tan=-57.4827, x=-0.0174524, y=1.00321): -57.289961630759\n    test 360 91 91.000000000000 Beta(tan=-57.29, x=-0.0174524, y=0.999848): -57.289961630759\n    test 361 91 91.003363403239 Theta(tan=-57.0979, x=-0.0174524, y=0.996495): -57.289961630759\n    test 362 91 91.001678173837 Mu(tan=-57.194, x=-0.0174817, y=0.999847), iteration=3: -57.289961630759\n    test 363 91 91.003355872504 Chi(tan=-57.0983, x=-1, y=57.0983), iteration=3: -57.289961630759\n    test 364 91 91.001118877197 Xi(tan=-57.2259, x=-0.0351008, y=2.00867), iteration=3: -57.289961630759\n\n    test 365 91 90.996647866757 Phi(tan=-57.4827, x=-0.0173939, y=0.999849): -57.289961630759\n    test 366 91 91.000000000000 Beta(tan=-57.29, x=-0.0174524, y=0.999848): -57.289961630759\n    test 367 91 91.003363403239 Theta(tan=-57.0979, x=-0.0175111, y=0.999847): -57.289961630760  FAILED, KNOWN (6.07726e-15), expected -57.289961630759\n    test 368 91 91.001678173837 Mu(tan=-57.194, x=-0.0174817, y=0.999847): -57.289961630760  FAILED, KNOWN (6.44934e-15), expected -57.289961630759\n    test 369 91 91.003355872504 Chi(tan=-57.0983, x=-0.017511, y=0.999847): -57.289961630760  FAILED, KNOWN (4.21687e-15), expected -57.289961630759\n    test 370 91 91.001118877197 Xi(tan=-57.2259, x=-0.0174719, y=0.999847): -57.289961630760  FAILED, KNOWN (5.08505e-15), expected -57.289961630759\n\n    test 371 98 97.973523052479 Phi(tan=-7.13931, x=-0.139173, y=0.993599): -7.115369722384\n    test 372 98 98.000000000000 Beta(tan=-7.11537, x=-0.139173, y=0.990268): -7.115369722384\n    test 373 98 98.026562562307 Theta(tan=-7.09151, x=-0.139173, y=0.986948): -7.115369722384\n    test 374 98 98.013254483126 Mu(tan=-7.10345, x=-0.139402, y=0.990236), iteration=3: -7.115369722384\n    test 375 98 98.026504224575 Chi(tan=-7.09157, x=-1, y=7.09157), iteration=3: -7.115369722384\n    test 376 98 98.008837191904 Xi(tan=-7.10742, x=-0.279903, y=1.98939), iteration=3: -7.115369722384\n\n    test 377 98 97.973523052479 Phi(tan=-7.13931, x=-0.138715, y=0.990332): -7.115369722384\n    test 378 98 98.000000000000 Beta(tan=-7.11537, x=-0.139173, y=0.990268): -7.115369722384\n    test 379 98 98.026562562307 Theta(tan=-7.09151, x=-0.139632, y=0.990203): -7.115369722384\n    test 380 98 98.013254483126 Mu(tan=-7.10345, x=-0.139402, y=0.990236): -7.115369722384\n    test 381 98 98.026504224575 Chi(tan=-7.09157, x=-0.139631, y=0.990204): -7.115369722384\n    test 382 98 98.008837191904 Xi(tan=-7.10742, x=-0.139326, y=0.990247): -7.115369722384\n\n    test 383 105 104.951963747366 Phi(tan=-3.74461, x=-0.258819, y=0.969175): -3.732050807569\n    test 384 105 105.000000000000 Beta(tan=-3.73205, x=-0.258819, y=0.965926): -3.732050807569\n    test 385 105 105.048176169243 Theta(tan=-3.71954, x=-0.258819, y=0.962687): -3.732050807569\n    test 386 105 105.024044295704 Mu(tan=-3.7258, x=-0.259224, y=0.965817), iteration=3: -3.732050807569\n    test 387 105 105.048075510346 Chi(tan=-3.71956, x=-1, y=3.71956), iteration=3: -3.732050807569\n    test 388 105 105.016031662804 Xi(tan=-3.72788, x=-0.520505, y=1.94038), iteration=3: -3.732050807569\n\n    test 389 105 104.951963747366 Phi(tan=-3.74461, x=-0.258009, y=0.966142): -3.732050807569\n    test 390 105 105.000000000000 Beta(tan=-3.73205, x=-0.258819, y=0.965926): -3.732050807569\n    test 391 105 105.048176169243 Theta(tan=-3.71954, x=-0.259631, y=0.965708): -3.732050807569\n    test 392 105 105.024044295704 Mu(tan=-3.7258, x=-0.259224, y=0.965817): -3.732050807569\n    test 393 105 105.048075510346 Chi(tan=-3.71956, x=-0.259629, y=0.965708): -3.732050807569\n    test 394 105 105.016031662804 Xi(tan=-3.72788, x=-0.259089, y=0.965853): -3.732050807569\n\n    test 395 112 111.933246025813 Phi(tan=-2.48341, x=-0.374607, y=0.930303): -2.475086853416\n    test 396 112 112.000000000000 Beta(tan=-2.47509, x=-0.374607, y=0.927184): -2.475086853416\n    test 397 112 112.066915437341 Theta(tan=-2.46679, x=-0.374607, y=0.924075): -2.475086853416\n    test 398 112 112.033407196712 Mu(tan=-2.47094, x=-0.375147, y=0.926965), iteration=3: -2.475086853416\n    test 399 112 112.066786634266 Chi(tan=-2.4668, x=-1, y=2.4668), iteration=2: -2.475086853416\n    test 400 112 112.022275613932 Xi(tan=-2.47232, x=-0.753301, y=1.8624), iteration=3: -2.475086853416\n\n    test 401 112 111.933246025813 Phi(tan=-2.48341, x=-0.373526, y=0.92762): -2.475086853416\n    test 402 112 112.000000000000 Beta(tan=-2.47509, x=-0.374607, y=0.927184): -2.475086853416\n    test 403 112 112.066915437341 Theta(tan=-2.46679, x=-0.375689, y=0.926746): -2.475086853416\n    test 404 112 112.033407196712 Mu(tan=-2.47094, x=-0.375147, y=0.926965): -2.475086853416\n    test 405 112 112.066786634266 Chi(tan=-2.4668, x=-0.375687, y=0.926747): -2.475086853416\n    test 406 112 112.022275613932 Xi(tan=-2.47232, x=-0.374967, y=0.927038): -2.475086853416\n\n    test 407 119 118.918479987923 Phi(tan=-1.81012, x=-0.48481, y=0.877562): -1.804047755271\n    test 408 119 119.000000000000 Beta(tan=-1.80405, x=-0.48481, y=0.87462): -1.804047755271\n    test 409 119 119.081665222463 Theta(tan=-1.798, x=-0.48481, y=0.871687): -1.804047755271\n    test 410 119 119.040787185717 Mu(tan=-1.80102, x=-0.485432, y=0.874274), iteration=3: -1.804047755271\n    test 411 119 119.081525372917 Chi(tan=-1.79801, x=-1, y=1.79801), iteration=2: -1.804047755271\n    test 412 119 119.027198394988 Xi(tan=-1.80203, x=-0.974807, y=1.75663), iteration=3: -1.804047755271\n\n    test 413 119 118.918479987923 Phi(tan=-1.81012, x=-0.483565, y=0.875309): -1.804047755271\n    test 414 119 119.000000000000 Beta(tan=-1.80405, x=-0.48481, y=0.87462): -1.804047755271\n    test 415 119 119.081665222463 Theta(tan=-1.798, x=-0.486056, y=0.873928): -1.804047755271\n    test 416 119 119.040787185717 Mu(tan=-1.80102, x=-0.485432, y=0.874274): -1.804047755271\n    test 417 119 119.081525372917 Chi(tan=-1.79801, x=-0.486054, y=0.873929): -1.804047755271\n    test 418 119 119.027198394988 Xi(tan=-1.80203, x=-0.485225, y=0.874389): -1.804047755271\n\n    test 419 126 125.908544256035 Phi(tan=-1.38101, x=-0.587785, y=0.811739): -1.376381920471\n    test 420 126 126.000000000000 Beta(tan=-1.37638, x=-0.587785, y=0.809017): -1.376381920471\n    test 421 126 126.091550707249 Theta(tan=-1.37177, x=-0.587785, y=0.806305): -1.376381920471\n    test 422 126 126.045745652474 Mu(tan=-1.37407, x=-0.588431, y=0.808547), iteration=3: -1.376381920471\n    test 423 126 126.091416595783 Chi(tan=-1.37177, x=-1, y=1.37177), iteration=3: -1.376381920471\n    test 424 126 126.030507332108 Xi(tan=-1.37484, x=-1.18171, y=1.62467), iteration=3: -1.376381920471\n\n    test 425 126 125.908544256035 Phi(tan=-1.38101, x=-0.586493, y=0.809954): -1.376381920471\n    test 426 126 126.000000000000 Beta(tan=-1.37638, x=-0.587785, y=0.809017): -1.376381920471\n    test 427 126 126.091550707249 Theta(tan=-1.37177, x=-0.589077, y=0.808077): -1.376381920471\n    test 428 126 126.045745652474 Mu(tan=-1.37407, x=-0.588431, y=0.808547): -1.376381920471\n    test 429 126 126.091416595783 Chi(tan=-1.37177, x=-0.589075, y=0.808078): -1.376381920471\n    test 430 126 126.030507332108 Xi(tan=-1.37484, x=-0.588216, y=0.808704): -1.376381920471\n\n    test 431 133 132.904033458108 Phi(tan=-1.07598, x=-0.681998, y=0.733814): -1.072368710025\n    test 432 133 133.000000000000 Beta(tan=-1.07237, x=-0.681998, y=0.731354): -1.072368710025\n    test 433 133 133.095989026852 Theta(tan=-1.06877, x=-0.681998, y=0.728902): -1.072368710025\n    test 434 133 133.047987474831 Mu(tan=-1.07057, x=-0.682611, y=0.730782), iteration=2: -1.072368710025\n    test 435 133 133.095874142459 Chi(tan=-1.06878, x=-1, y=1.06878), iteration=2: -1.072368710025\n    test 436 133 133.032005165725 Xi(tan=-1.07117, x=-1.37094, y=1.46851), iteration=2: -1.072368710025\n\n    test 437 133 132.904033458108 Phi(tan=-1.07598, x=-0.680772, y=0.732495): -1.072368710025\n    test 438 133 133.000000000000 Beta(tan=-1.07237, x=-0.681998, y=0.731354): -1.072368710025\n    test 439 133 133.095989026852 Theta(tan=-1.06877, x=-0.683223, y=0.73021): -1.072368710025\n    test 440 133 133.047987474831 Mu(tan=-1.07057, x=-0.682611, y=0.730782): -1.072368710025\n    test 441 133 133.095874142459 Chi(tan=-1.06878, x=-0.683221, y=0.730211): -1.072368710025\n    test 442 133 133.032005165725 Xi(tan=-1.07117, x=-0.682407, y=0.730973): -1.072368710025\n\n    test 443 140 139.905221888853 Phi(tan=-0.841922, x=-0.766044, y=0.64495): -0.839099631177\n    test 444 140 140.000000000000 Beta(tan=-0.8391, x=-0.766044, y=0.642788): -0.839099631177\n    test 445 140 140.094722853987 Theta(tan=-0.836286, x=-0.766044, y=0.640632): -0.839099631177\n    test 446 140 140.047378679025 Mu(tan=-0.837691, x=-0.766576, y=0.642154), iteration=2: -0.839099631177\n    test 447 140 140.094635301560 Chi(tan=-0.836289, x=-1, y=0.836289), iteration=3: -0.839099631177\n    test 448 140 140.031601928062 Xi(tan=-0.83816, x=-1.53968, y=1.2905), iteration=3: -0.839099631177\n\n    test 449 140 139.905221888853 Phi(tan=-0.841922, x=-0.76498, y=0.644054): -0.839099631177\n    test 450 140 140.000000000000 Beta(tan=-0.8391, x=-0.766044, y=0.642788): -0.839099631177\n    test 451 140 140.094722853987 Theta(tan=-0.836286, x=-0.767106, y=0.64152): -0.839099631177\n    test 452 140 140.047378679025 Mu(tan=-0.837691, x=-0.766576, y=0.642154): -0.839099631177\n    test 453 140 140.094635301560 Chi(tan=-0.836289, x=-0.767105, y=0.641521): -0.839099631177\n    test 454 140 140.031601928062 Xi(tan=-0.83816, x=-0.766399, y=0.642365): -0.839099631177\n\n    test 455 147 146.912045740495 Phi(tan=-0.651592, x=-0.838671, y=0.546471): -0.649407593198\n    test 456 147 147.000000000000 Beta(tan=-0.649408, x=-0.838671, y=0.544639): -0.649407593198\n    test 457 147 147.087834196097 Theta(tan=-0.64723, x=-0.838671, y=0.542813): -0.649407593198\n    test 458 147 147.043954583618 Mu(tan=-0.648317, x=-0.839088, y=0.543995), iteration=3: -0.649407593198\n    test 459 147 147.087775924345 Chi(tan=-0.647232, x=-1, y=0.647232), iteration=3: -0.649407593198\n    test 460 147 147.029320517871 Xi(tan=-0.64868, x=-1.68543, y=1.09331), iteration=3: -0.649407593198\n\n    test 461 147 146.912045740495 Phi(tan=-0.651592, x=-0.837834, y=0.545926): -0.649407593198\n    test 462 147 147.000000000000 Beta(tan=-0.649408, x=-0.838671, y=0.544639): -0.649407593198\n    test 463 147 147.087834196097 Theta(tan=-0.64723, x=-0.839505, y=0.543353): -0.649407593198\n    test 464 147 147.043954583618 Mu(tan=-0.648317, x=-0.839088, y=0.543995): -0.649407593198\n    test 465 147 147.087775924345 Chi(tan=-0.647232, x=-0.839504, y=0.543354): -0.649407593198\n    test 466 147 147.029320517871 Xi(tan=-0.64868, x=-0.838949, y=0.54421): -0.649407593198\n\n    test 467 154 153.924105301481 Phi(tan=-0.489373, x=-0.898794, y=0.439846): -0.487732588566\n    test 468 154 154.000000000000 Beta(tan=-0.487733, x=-0.898794, y=0.438371): -0.487732588566\n    test 469 154 154.075737936138 Theta(tan=-0.486097, x=-0.898794, y=0.436901): -0.487732588566\n    test 470 154 154.037917900127 Mu(tan=-0.486914, x=-0.899084, y=0.437776), iteration=3: -0.487732588566\n    test 471 154 154.075705391203 Chi(tan=-0.486098, x=-1, y=0.486098), iteration=3: -0.487732588566\n    test 472 154 154.025295587615 Xi(tan=-0.487186, x=-1.80605, y=0.879882), iteration=3: -0.487732588566\n\n    test 473 154 153.924105301481 Phi(tan=-0.489373, x=-0.898213, y=0.439561): -0.487732588566\n    test 474 154 154.000000000000 Beta(tan=-0.487733, x=-0.898794, y=0.438371): -0.487732588566\n    test 475 154 154.075737936138 Theta(tan=-0.486097, x=-0.899373, y=0.437183): -0.487732588566\n    test 476 154 154.037917900127 Mu(tan=-0.486914, x=-0.899084, y=0.437776): -0.487732588566\n    test 477 154 154.075705391203 Chi(tan=-0.486098, x=-0.899372, y=0.437183): -0.487732588566\n    test 478 154 154.025295587615 Xi(tan=-0.487186, x=-0.898987, y=0.437974): -0.487732588566\n\n    test 479 161 160.940687365843 Phi(tan=-0.345486, x=-0.945519, y=0.326663): -0.344327613290\n    test 480 161 161.000000000000 Beta(tan=-0.344328, x=-0.945519, y=0.325568): -0.344327613290\n    test 481 161 161.059155871563 Theta(tan=-0.343173, x=-0.945519, y=0.324477): -0.344327613290\n    test 482 161 161.029626856612 Mu(tan=-0.343749, x=-0.945687, y=0.325079), iteration=3: -0.344327613290\n    test 483 161 161.059141853346 Chi(tan=-0.343173, x=-1, y=0.343173), iteration=3: -0.344327613290\n    test 484 161 161.019765751188 Xi(tan=-0.343942, x=-1.89975, y=0.653405), iteration=2: -0.344327613290\n\n    test 485 161 160.940687365843 Phi(tan=-0.345486, x=-0.945181, y=0.326547): -0.344327613290\n    test 486 161 161.000000000000 Beta(tan=-0.344328, x=-0.945519, y=0.325568): -0.344327613290\n    test 487 161 161.059155871563 Theta(tan=-0.343173, x=-0.945854, y=0.324592): -0.344327613290\n    test 488 161 161.029626856612 Mu(tan=-0.343749, x=-0.945687, y=0.325079): -0.344327613290\n    test 489 161 161.059141853346 Chi(tan=-0.343173, x=-0.945854, y=0.324592): -0.344327613290\n    test 490 161 161.019765751188 Xi(tan=-0.343942, x=-0.945631, y=0.325242): -0.344327613290\n\n    test 491 168 167.960806838131 Phi(tan=-0.213272, x=-0.978148, y=0.208611): -0.212556561670\n    test 492 168 168.000000000000 Beta(tan=-0.212557, x=-0.978148, y=0.207912): -0.212556561670\n    test 493 168 168.039073098008 Theta(tan=-0.211844, x=-0.978148, y=0.207215): -0.212556561670\n    test 494 168 168.019574010622 Mu(tan=-0.2122, x=-0.978219, y=0.207578), iteration=3: -0.212556561670\n    test 495 168 168.039069322354 Chi(tan=-0.211844, x=-1, y=0.211844), iteration=3: -0.212556561670\n    test 496 168 168.013059526305 Xi(tan=-0.212318, x=-1.96517, y=0.417243), iteration=3: -0.212556561670\n\n    test 497 168 167.960806838131 Phi(tan=-0.213272, x=-0.978005, y=0.208581): -0.212556561670\n    test 498 168 168.000000000000 Beta(tan=-0.212557, x=-0.978148, y=0.207912): -0.212556561670\n    test 499 168 168.039073098008 Theta(tan=-0.211844, x=-0.978289, y=0.207245): -0.212556561670\n    test 500 168 168.019574010622 Mu(tan=-0.2122, x=-0.978219, y=0.207578): -0.212556561670\n    test 501 168 168.039069322354 Chi(tan=-0.211844, x=-0.978289, y=0.207245): -0.212556561670\n    test 502 168 168.013059526305 Xi(tan=-0.212318, x=-0.978195, y=0.207689): -0.212556561670\n\n    test 503 175 174.983265245736 Phi(tan=-0.087783, x=-0.996195, y=0.0874489): -0.087488663526\n    test 504 175 175.000000000000 Beta(tan=-0.0874887, x=-0.996195, y=0.0871557): -0.087488663526\n    test 505 175 175.016679496811 Theta(tan=-0.0871953, x=-0.996195, y=0.0868635): -0.087488663526\n    test 506 175 175.008356987733 Mu(tan=-0.0873417, x=-0.996207, y=0.0870104), iteration=3: -0.087488663526\n    test 507 175 175.016679213606 Chi(tan=-0.0871953, x=-1, y=0.0871953), iteration=3: -0.087488663526\n    test 508 175 175.005575818689 Xi(tan=-0.0873906, x=-2.00135, y=0.174899), iteration=3: -0.087488663526\n\n    test 509 175 174.983265245736 Phi(tan=-0.087783, x=-0.996169, y=0.0874467): -0.087488663526\n    test 510 175 175.000000000000 Beta(tan=-0.0874887, x=-0.996195, y=0.0871557): -0.087488663526\n    test 511 175 175.016679496811 Theta(tan=-0.0871953, x=-0.99622, y=0.0868657): -0.087488663526\n    test 512 175 175.008356987733 Mu(tan=-0.0873417, x=-0.996207, y=0.0870104): -0.087488663526\n    test 513 175 175.016679213606 Chi(tan=-0.0871953, x=-0.99622, y=0.0868657): -0.087488663526\n    test 514 175 175.005575818689 Xi(tan=-0.0873906, x=-0.996203, y=0.0870588): -0.087488663526\n\n    test 515 182 182.006722688009 Phi(tan=0.0350382, x=-0.999391, y=-0.0350169): 0.034920769492\n    test 516 182 182.000000000000 Beta(tan=0.0349208, x=-0.999391, y=-0.0348995): 0.034920769492\n    test 517 182 181.993299797077 Theta(tan=0.0348037, x=-0.999391, y=-0.0347825): 0.034920769492\n    test 518 182 181.996642883728 Mu(tan=0.0348621, x=-0.999393, y=-0.0348409), iteration=3: 0.034920769492\n    test 519 182 181.993299815318 Chi(tan=0.0348037, x=-1, y=-0.0348037), iteration=2: 0.034920769492\n    test 520 182 181.997760106963 Xi(tan=0.0348816, x=-2.00776, y=-0.0700339), iteration=3: 0.034920769492\n\n    test 521 182 182.006722688009 Phi(tan=0.0350382, x=-0.999387, y=-0.0350168): 0.034920769492\n    test 522 182 182.000000000000 Beta(tan=0.0349208, x=-0.999391, y=-0.0348995): 0.034920769492\n    test 523 182 181.993299797077 Theta(tan=0.0348037, x=-0.999395, y=-0.0347826): 0.034920769492\n    test 524 182 181.996642883728 Mu(tan=0.0348621, x=-0.999393, y=-0.0348409): 0.034920769492\n    test 525 182 181.993299815318 Chi(tan=0.0348037, x=-0.999395, y=-0.0347826): 0.034920769492\n    test 526 182 181.997760106963 Xi(tan=0.0348816, x=-0.999392, y=-0.0348604): 0.034920769492\n\n    test 527 189 189.029778772560 Phi(tan=0.158917, x=-0.987688, y=-0.156961): 0.158384440325\n    test 528 189 189.000000000000 Beta(tan=0.158384, x=-0.987688, y=-0.156434): 0.158384440325\n    test 529 189 188.970316191157 Theta(tan=0.157853, x=-0.987688, y=-0.15591): 0.158384440325\n    test 530 189 188.985128467162 Mu(tan=0.158118, x=-0.987729, y=-0.156178), iteration=3: 0.158384440325\n    test 531 189 188.970317814928 Chi(tan=0.157853, x=-1, y=-0.157853), iteration=2: 0.158384440325\n    test 532 189 188.990077770379 Xi(tan=0.158207, x=-1.9843, y=-0.31393), iteration=3: 0.158384440325\n\n    test 533 189 189.029778772560 Phi(tan=0.158917, x=-0.987607, y=-0.156948): 0.158384440325\n    test 534 189 189.000000000000 Beta(tan=0.158384, x=-0.987688, y=-0.156434): 0.158384440325\n    test 535 189 188.970316191157 Theta(tan=0.157853, x=-0.987769, y=-0.155923): 0.158384440325\n    test 536 189 188.985128467162 Mu(tan=0.158118, x=-0.987729, y=-0.156178): 0.158384440325\n    test 537 189 188.970317814928 Chi(tan=0.157853, x=-0.987769, y=-0.155923): 0.158384440325\n    test 538 189 188.990077770379 Xi(tan=0.158207, x=-0.987715, y=-0.156263): 0.158384440325\n\n    test 539 196 196.051057415277 Phi(tan=0.28771, x=-0.961262, y=-0.276565): 0.286745385759\n    test 540 196 196.000000000000 Beta(tan=0.286745, x=-0.961262, y=-0.275637): 0.286745385759\n    test 541 196 195.949087795468 Theta(tan=0.285784, x=-0.961262, y=-0.274713): 0.286745385759\n    test 542 196 195.974498585700 Mu(tan=0.286264, x=-0.961384, y=-0.275209), iteration=2: 0.286745385759\n    test 543 196 195.949096442818 Chi(tan=0.285784, x=-1, y=-0.285784), iteration=3: 0.286745385759\n    test 544 196 195.982986192635 Xi(tan=0.286424, x=-1.93132, y=-0.553176), iteration=2: 0.286745385759\n\n    test 545 196 196.051057415277 Phi(tan=0.28771, x=-0.961016, y=-0.276494): 0.286745385759\n    test 546 196 196.000000000000 Beta(tan=0.286745, x=-0.961262, y=-0.275637): 0.286745385759\n    test 547 196 195.949087795468 Theta(tan=0.285784, x=-0.961506, y=-0.274783): 0.286745385759\n    test 548 196 195.974498585700 Mu(tan=0.286264, x=-0.961384, y=-0.275209): 0.286745385759\n    test 549 196 195.949096442818 Chi(tan=0.285784, x=-0.961506, y=-0.274783): 0.286745385759\n    test 550 196 195.982986192635 Xi(tan=0.286424, x=-0.961344, y=-0.275352): 0.286745385759\n\n    test 551 203 203.069290086312 Phi(tan=0.425903, x=-0.920505, y=-0.392046): 0.424474816210\n    test 552 203 203.000000000000 Beta(tan=0.424475, x=-0.920505, y=-0.390731): 0.424474816210\n    test 553 203 202.930871376810 Theta(tan=0.423052, x=-0.920505, y=-0.389421): 0.424474816210\n    test 554 203 202.965385294258 Mu(tan=0.423762, x=-0.920741, y=-0.390175), iteration=2: 0.424474816210\n    test 555 203 202.930894974288 Chi(tan=0.423052, x=-1, y=-0.423052), iteration=3: 0.424474816210\n    test 556 203 202.976907357652 Xi(tan=0.423999, x=-1.84959, y=-0.784226), iteration=2: 0.424474816210\n\n    test 557 203 203.069290086312 Phi(tan=0.425903, x=-0.920032, y=-0.391844): 0.424474816210\n    test 558 203 203.000000000000 Beta(tan=0.424475, x=-0.920505, y=-0.390731): 0.424474816210\n    test 559 203 202.930871376810 Theta(tan=0.423052, x=-0.920976, y=-0.38962): 0.424474816210\n    test 560 203 202.965385294258 Mu(tan=0.423762, x=-0.920741, y=-0.390175): 0.424474816210\n    test 561 203 202.930894974288 Chi(tan=0.423052, x=-0.920975, y=-0.389621): 0.424474816210\n    test 562 203 202.976907357652 Xi(tan=0.423999, x=-0.920662, y=-0.39036): 0.424474816210\n\n    test 563 210 210.083392202979 Phi(tan=0.579293, x=-0.866025, y=-0.501682): 0.577350269190\n    test 564 210 210.000000000000 Beta(tan=0.57735, x=-0.866025, y=-0.5): 0.577350269190\n    test 565 210 209.916747713236 Theta(tan=0.575415, x=-0.866025, y=-0.498324): 0.577350269190\n    test 566 210 209.958330176858 Mu(tan=0.576381, x=-0.866389, y=-0.49937), iteration=3: 0.577350269190\n    test 567 210 209.916794258180 Chi(tan=0.575416, x=-1, y=-0.575416), iteration=2: 0.577350269190\n    test 568 210 209.972202619898 Xi(tan=0.576704, x=-1.74031, y=-1.00365), iteration=3: 0.577350269190\n\n    test 569 210 210.083392202979 Phi(tan=0.579293, x=-0.865297, y=-0.50126): 0.577350269190\n    test 570 210 210.000000000000 Beta(tan=0.57735, x=-0.866025, y=-0.5): 0.577350269190\n    test 571 210 209.916747713236 Theta(tan=0.575415, x=-0.866751, y=-0.498741): 0.577350269190\n    test 572 210 209.958330176858 Mu(tan=0.576381, x=-0.866389, y=-0.49937): 0.577350269190\n    test 573 210 209.916794258180 Chi(tan=0.575416, x=-0.866751, y=-0.498742): 0.577350269190\n    test 574 210 209.972202619898 Xi(tan=0.576704, x=-0.866268, y=-0.49958): 0.577350269190\n\n    test 575 217 217.092527888642 Phi(tan=0.756089, x=-0.798636, y=-0.60384): 0.753554050103\n    test 576 217 217.000000000000 Beta(tan=0.753554, x=-0.798636, y=-0.601815): 0.753554050103\n    test 577 217 216.907557725734 Theta(tan=0.751028, x=-0.798636, y=-0.599797): 0.753554050103\n    test 578 217 216.953752130797 Mu(tan=0.752289, x=-0.799121, y=-0.60117), iteration=2: 0.753554050103\n    test 579 217 216.907632616913 Chi(tan=0.75103, x=-1, y=-0.75103), iteration=2: 0.753554050103\n    test 580 217 216.969151185746 Xi(tan=0.75271, x=-1.60509, y=-1.20817), iteration=2: 0.753554050103\n\n    test 581 217 217.092527888642 Phi(tan=0.756089, x=-0.797663, y=-0.603104): 0.753554050103\n    test 582 217 217.000000000000 Beta(tan=0.753554, x=-0.798636, y=-0.601815): 0.753554050103\n    test 583 217 216.907557725734 Theta(tan=0.751028, x=-0.799605, y=-0.600526): 0.753554050103\n    test 584 217 216.953752130797 Mu(tan=0.752289, x=-0.799121, y=-0.60117): 0.753554050103\n    test 585 217 216.907632616913 Chi(tan=0.75103, x=-0.799605, y=-0.600527): 0.753554050103\n    test 586 217 216.969151185746 Xi(tan=0.75271, x=-0.798959, y=-0.601385): 0.753554050103\n\n    test 587 224 224.096159176144 Phi(tan=0.968937, x=-0.71934, y=-0.696995): 0.965688774807\n    test 588 224 224.000000000000 Beta(tan=0.965689, x=-0.71934, y=-0.694658): 0.965688774807\n    test 589 224 223.903852093789 Theta(tan=0.962451, x=-0.71934, y=-0.692329): 0.965688774807\n    test 590 224 223.951922536530 Mu(tan=0.964068, x=-0.719922, y=-0.694055), iteration=3: 0.965688774807\n    test 591 224 223.903955899504 Chi(tan=0.962454, x=-1, y=-0.962454), iteration=3: 0.965688774807\n    test 592 224 223.967933596024 Xi(tan=0.964608, x=-1.44592, y=-1.39475), iteration=3: 0.965688774807\n\n    test 593 224 224.096159176144 Phi(tan=0.968937, x=-0.718173, y=-0.695865): 0.965688774807\n    test 594 224 224.000000000000 Beta(tan=0.965689, x=-0.71934, y=-0.694658): 0.965688774807\n    test 595 224 223.903852093789 Theta(tan=0.962451, x=-0.720504, y=-0.69345): 0.965688774807\n    test 596 224 223.951922536530 Mu(tan=0.964068, x=-0.719922, y=-0.694055): 0.965688774807\n    test 597 224 223.903955899504 Chi(tan=0.962454, x=-0.720503, y=-0.693452): 0.965688774807\n    test 598 224 223.967933596024 Xi(tan=0.964608, x=-0.719728, y=-0.694256): 0.965688774807\n\n    test 599 231 231.094076843128 Phi(tan=1.23905, x=-0.62932, y=-0.77976): 1.234897156535\n    test 600 231 231.000000000000 Beta(tan=1.2349, x=-0.62932, y=-0.777146): 1.234897156535\n    test 601 231 230.905857444036 Theta(tan=1.23076, x=-0.62932, y=-0.77454): 1.234897156535\n    test 602 231 230.952949275029 Mu(tan=1.23283, x=-0.629958, y=-0.776629), iteration=2: 1.234897156535\n    test 603 231 230.905984687641 Chi(tan=1.23076, x=-1, y=-1.23076), iteration=3: 1.234897156535\n    test 604 231 230.968621174367 Xi(tan=1.23352, x=-1.26515, y=-1.56058), iteration=2: 1.234897156535\n\n    test 605 231 231.094076843128 Phi(tan=1.23905, x=-0.628044, y=-0.778178): 1.234897156535\n    test 606 231 231.000000000000 Beta(tan=1.2349, x=-0.62932, y=-0.777146): 1.234897156535\n    test 607 231 230.905857444036 Theta(tan=1.23076, x=-0.630596, y=-0.776111): 1.234897156535\n    test 608 231 230.952949275029 Mu(tan=1.23283, x=-0.629958, y=-0.776629): 1.234897156535\n    test 609 231 230.905984687641 Chi(tan=1.23076, x=-0.630595, y=-0.776112): 1.234897156535\n    test 610 231 230.968621174367 Xi(tan=1.23352, x=-0.629746, y=-0.776801): 1.234897156535\n\n    test 611 238 238.086411314589 Phi(tan=1.60572, x=-0.529919, y=-0.850901): 1.600334529041\n    test 612 238 238.000000000000 Beta(tan=1.60033, x=-0.529919, y=-0.848048): 1.600334529041\n    test 613 238 237.913461373388 Theta(tan=1.59497, x=-0.529919, y=-0.845205): 1.600334529041\n    test 614 238 237.956770509194 Mu(tan=1.59765, x=-0.530559, y=-0.847648), iteration=3: 1.600334529041\n    test 615 238 237.913600687903 Chi(tan=1.59498, x=-1, y=-1.59498), iteration=2: 1.600334529041\n    test 616 238 237.971172027129 Xi(tan=1.59854, x=-1.06545, y=-1.70318), iteration=3: 1.600334529041\n\n    test 617 238 238.086411314589 Phi(tan=1.60572, x=-0.52864, y=-0.848846): 1.600334529041\n    test 618 238 238.000000000000 Beta(tan=1.60033, x=-0.529919, y=-0.848048): 1.600334529041\n    test 619 238 237.913461373388 Theta(tan=1.59497, x=-0.5312, y=-0.847247): 1.600334529041\n    test 620 238 237.956770509194 Mu(tan=1.59765, x=-0.530559, y=-0.847648): 1.600334529041\n    test 621 238 237.913600687903 Chi(tan=1.59498, x=-0.531197, y=-0.847248): 1.600334529041\n    test 622 238 237.971172027129 Xi(tan=1.59854, x=-0.530346, y=-0.847781): 1.600334529041\n\n    test 623 245 245.073623344306 Phi(tan=2.15172, x=-0.422618, y=-0.909357): 2.144506920510\n    test 624 245 245.000000000000 Beta(tan=2.14451, x=-0.422618, y=-0.906308): 2.144506920510\n    test 625 245 244.926217548699 Theta(tan=2.13732, x=-0.422618, y=-0.903269): 2.144506920510\n    test 626 245 244.963158554024 Mu(tan=2.14091, x=-0.423201, y=-0.906036), iteration=2: 2.144506920510\n    test 627 245 244.926353236006 Chi(tan=2.13733, x=-1, y=-2.13733), iteration=3: 2.144506920510\n    test 628 245 244.975433776813 Xi(tan=2.14211, x=-0.849812, y=-1.82039), iteration=3: 2.144506920510\n\n    test 629 245 245.073623344306 Phi(tan=2.15172, x=-0.421453, y=-0.90685): 2.144506920510\n    test 630 245 245.000000000000 Beta(tan=2.14451, x=-0.422618, y=-0.906308): 2.144506920510\n    test 631 245 244.926217548699 Theta(tan=2.13732, x=-0.423785, y=-0.905763): 2.144506920510\n    test 632 245 244.963158554024 Mu(tan=2.14091, x=-0.423201, y=-0.906036): 2.144506920510\n    test 633 245 244.926353236006 Chi(tan=2.13733, x=-0.423783, y=-0.905764): 2.144506920510\n    test 634 245 244.975433776813 Xi(tan=2.14211, x=-0.423007, y=-0.906127): 2.144506920510\n\n    test 635 252 252.056475395211 Phi(tan=3.08804, x=-0.309017, y=-0.954256): 3.077683537175\n    test 636 252 252.000000000000 Beta(tan=3.07768, x=-0.309017, y=-0.951057): 3.077683537175\n    test 637 252 251.943370950484 Theta(tan=3.06736, x=-0.309017, y=-0.947868): 3.077683537175\n    test 638 252 251.971733559721 Mu(tan=3.07253, x=-0.309486, y=-0.950904), iteration=2: 3.077683537175\n    test 639 252 251.943485649406 Chi(tan=3.06739, x=-1, y=-3.06739), iteration=3: 3.077683537175\n    test 640 252 251.981152809484 Xi(tan=3.07424, x=-0.621437, y=-1.91045), iteration=2: 3.077683537175\n\n    test 641 252 252.056475395211 Phi(tan=3.08804, x=-0.308079, y=-0.951361): 3.077683537175\n    test 642 252 252.000000000000 Beta(tan=3.07768, x=-0.309017, y=-0.951057): 3.077683537175\n    test 643 252 251.943370950484 Theta(tan=3.06736, x=-0.309957, y=-0.950751): 3.077683537175\n    test 644 252 251.971733559721 Mu(tan=3.07253, x=-0.309486, y=-0.950904): 3.077683537175\n    test 645 252 251.943485649406 Chi(tan=3.06739, x=-0.309955, y=-0.950751): 3.077683537175\n    test 646 252 251.981152809484 Xi(tan=3.07424, x=-0.30933, y=-0.950955): 3.077683537175\n\n    test 647 259 259.035985707307 Phi(tan=5.16186, x=-0.190809, y=-0.984929): 5.144554015970\n    test 648 259 259.000000000000 Beta(tan=5.14455, x=-0.190809, y=-0.981627): 5.144554015970\n    test 649 259 258.963902062378 Theta(tan=5.12731, x=-0.190809, y=-0.978336): 5.144554015970\n    test 650 259 258.981986158342 Mu(tan=5.13593, x=-0.191118, y=-0.981567), iteration=3: 5.144554015970\n    test 651 259 258.963979961875 Chi(tan=5.12734, x=-1, y=-5.12734), iteration=2: 5.144554015970\n    test 652 259 258.987989441453 Xi(tan=5.1388, x=-0.383745, y=-1.97199), iteration=3: 5.144554015970\n\n    test 653 259 259.035985707307 Phi(tan=5.16186, x=-0.190192, y=-0.981747): 5.144554015970\n    test 654 259 259.000000000000 Beta(tan=5.14455, x=-0.190809, y=-0.981627): 5.144554015970\n    test 655 259 258.963902062378 Theta(tan=5.12731, x=-0.191427, y=-0.981507): 5.144554015970\n    test 656 259 258.981986158342 Mu(tan=5.13593, x=-0.191118, y=-0.981567): 5.144554015970\n    test 657 259 258.963979961875 Chi(tan=5.12734, x=-0.191426, y=-0.981507): 5.144554015970\n    test 658 259 258.987989441453 Xi(tan=5.1388, x=-0.191015, y=-0.981587): 5.144554015970\n\n    test 659 266 266.013367926454 Phi(tan=14.3488, x=-0.0697565, y=-1.00092): 14.300666256712\n    test 660 266 266.000000000000 Beta(tan=14.3007, x=-0.0697565, y=-0.997564): 14.300666256712\n    test 661 266 265.986587541025 Theta(tan=14.2527, x=-0.0697565, y=-0.994219): 14.300666256712\n    test 662 266 265.993307710088 Mu(tan=14.2767, x=-0.069873, y=-0.997556), iteration=3: 14.300666256712\n    test 663 266 265.986617434521 Chi(tan=14.2528, x=-1, y=-14.2528), iteration=3: 14.300666256712\n    test 664 266 265.995538081208 Xi(tan=14.2847, x=-0.140295, y=-2.00408), iteration=3: 14.300666256712\n\n    test 665 266 266.013367926454 Phi(tan=14.3488, x=-0.0695237, y=-0.99758): 14.300666256712\n    test 666 266 266.000000000000 Beta(tan=14.3007, x=-0.0697565, y=-0.997564): 14.300666256712\n    test 667 266 265.986587541025 Theta(tan=14.2527, x=-0.06999, y=-0.997548): 14.300666256712\n    test 668 266 265.993307710088 Mu(tan=14.2767, x=-0.069873, y=-0.997556): 14.300666256712\n    test 669 266 265.986617434521 Chi(tan=14.2528, x=-0.0699895, y=-0.997548): 14.300666256712\n    test 670 266 265.995538081208 Xi(tan=14.2847, x=-0.0698342, y=-0.997559): 14.300666256712\n\n    test 671 273 272.989959849669 Phi(tan=-19.1453, x=0.052336, y=-1.00199): -19.081136687728\n    test 672 273 273.000000000000 Beta(tan=-19.0811, x=0.052336, y=-0.99863): -19.081136687728\n    test 673 273 273.010073740960 Theta(tan=-19.0172, x=0.052336, y=-0.995281): -19.081136687728\n    test 674 273 273.005026355872 Mu(tan=-19.0492, x=0.0524236, y=-0.998625), iteration=3: -19.081136687728\n    test 675 273 273.010051240667 Chi(tan=-19.0173, x=1.0, y=-19.0173), iteration=3: -19.081136687728\n    test 676 273 273.003351193295 Xi(tan=-19.0598, x=0.105259, y=-2.00622), iteration=2: -19.081136687728\n\n    test 677 273 272.989959849669 Phi(tan=-19.1453, x=0.052161, y=-0.998639): -19.081136687728\n    test 678 273 273.000000000000 Beta(tan=-19.0811, x=0.052336, y=-0.99863): -19.081136687728\n    test 679 273 273.010073740960 Theta(tan=-19.0172, x=0.0525115, y=-0.99862): -19.081136687728\n    test 680 273 273.005026355872 Mu(tan=-19.0492, x=0.0524236, y=-0.998625): -19.081136687728\n    test 681 273 273.010051240667 Chi(tan=-19.0173, x=0.0525111, y=-0.99862): -19.081136687728\n    test 682 273 273.003351193295 Xi(tan=-19.0598, x=0.0523944, y=-0.998626): -19.081136687728\n\n    test 683 280 279.967145322218 Phi(tan=-5.69036, x=0.173648, y=-0.988121): -5.671281819618\n    test 684 280 280.000000000000 Beta(tan=-5.67128, x=0.173648, y=-0.984808): -5.671281819618\n    test 685 280 280.032958527773 Theta(tan=-5.65227, x=0.173648, y=-0.981506): -5.671281819618\n    test 686 280 280.016446759121 Mu(tan=-5.66178, x=0.173931, y=-0.984758), iteration=3: -5.671281819618\n    test 687 280 280.032886940584 Chi(tan=-5.65231, x=1.0, y=-5.65231), iteration=3: -5.671281819618\n    test 688 280 280.010965671278 Xi(tan=-5.66494, x=0.349234, y=-1.97839), iteration=3: -5.671281819618\n\n    test 689 280 279.967145322218 Phi(tan=-5.69036, x=0.173083, y=-0.984907): -5.671281819618\n    test 690 280 280.000000000000 Beta(tan=-5.67128, x=0.173648, y=-0.984808): -5.671281819618\n    test 691 280 280.032958527773 Theta(tan=-5.65227, x=0.174215, y=-0.984708): -5.671281819618\n    test 692 280 280.016446759121 Mu(tan=-5.66178, x=0.173931, y=-0.984758): -5.671281819618\n    test 693 280 280.032886940584 Chi(tan=-5.65231, x=0.174213, y=-0.984708): -5.671281819618\n    test 694 280 280.010965671278 Xi(tan=-5.66494, x=0.173837, y=-0.984775): -5.671281819618\n\n    test 695 287 286.946273607855 Phi(tan=-3.28186, x=0.292372, y=-0.959522): -3.270852618484\n    test 696 287 287.000000000000 Beta(tan=-3.27085, x=0.292372, y=-0.956305): -3.270852618484\n    test 697 287 287.053876189570 Theta(tan=-3.25989, x=0.292372, y=-0.953098): -3.270852618484\n    test 698 287 287.026891215965 Mu(tan=-3.26537, x=0.292821, y=-0.956167), iteration=3: -3.270852618484\n    test 699 287 287.053765856507 Chi(tan=-3.25991, x=1.0, y=-3.25991), iteration=3: -3.270852618484\n    test 700 287 287.017930102981 Xi(tan=-3.2672, x=0.58797, y=-1.92101), iteration=2: -3.270852618484\n\n    test 701 287 286.946273607855 Phi(tan=-3.28186, x=0.291475, y=-0.956578): -3.270852618484\n    test 702 287 287.000000000000 Beta(tan=-3.27085, x=0.292372, y=-0.956305): -3.270852618484\n    test 703 287 287.053876189570 Theta(tan=-3.25989, x=0.293271, y=-0.956029): -3.270852618484\n    test 704 287 287.026891215965 Mu(tan=-3.26537, x=0.292821, y=-0.956167): -3.270852618484\n    test 705 287 287.053765856507 Chi(tan=-3.25991, x=0.293269, y=-0.95603): -3.270852618484\n    test 706 287 287.017930102981 Xi(tan=-3.2672, x=0.292671, y=-0.956213): -3.270852618484\n\n    test 707 294 293.928580656019 Phi(tan=-2.25359, x=0.406737, y=-0.916619): -2.246036773904\n    test 708 294 294.000000000000 Beta(tan=-2.24604, x=0.406737, y=-0.913545): -2.246036773904\n    test 709 294 294.071580020440 Theta(tan=-2.23851, x=0.406737, y=-0.910483): -2.246036773904\n    test 710 294 294.035739737781 Mu(tan=-2.24227, x=0.407306, y=-0.913292), iteration=3: -2.246036773904\n    test 711 294 294.071446269026 Chi(tan=-2.23852, x=1.0, y=-2.23852), iteration=2: -2.246036773904\n    test 712 294 294.023831365709 Xi(tan=-2.24352, x=0.817889, y=-1.83495), iteration=3: -2.246036773904\n\n    test 713 294 293.928580656019 Phi(tan=-2.25359, x=0.405598, y=-0.914052): -2.246036773904\n    test 714 294 294.000000000000 Beta(tan=-2.24604, x=0.406737, y=-0.913545): -2.246036773904\n    test 715 294 294.071580020440 Theta(tan=-2.23851, x=0.407878, y=-0.913037): -2.246036773904\n    test 716 294 294.035739737781 Mu(tan=-2.24227, x=0.407306, y=-0.913292): -2.246036773904\n    test 717 294 294.071446269026 Chi(tan=-2.23852, x=0.407875, y=-0.913038): -2.246036773904\n    test 718 294 294.023831365709 Xi(tan=-2.24352, x=0.407117, y=-0.913376): -2.246036773904\n\n    test 719 301 300.915116613042 Phi(tan=-1.66988, x=0.515038, y=-0.860051): -1.664279482351\n    test 720 301 301.000000000000 Beta(tan=-1.66428, x=0.515038, y=-0.857167): -1.664279482351\n    test 721 301 301.085017327347 Theta(tan=-1.6587, x=0.515038, y=-0.854293): -1.664279482351\n    test 722 301 301.042466766526 Mu(tan=-1.66149, x=0.515673, y=-0.856785), iteration=2: -1.664279482351\n    test 723 301 301.084877498227 Chi(tan=-1.65871, x=1.0, y=-1.65871), iteration=3: -1.664279482351\n    test 724 301 301.028319023279 Xi(tan=-1.66242, x=1.03555, y=-1.72152), iteration=2: -1.664279482351\n\n    test 725 301 300.915116613042 Phi(tan=-1.66988, x=0.513768, y=-0.857929): -1.664279482351\n    test 726 301 301.000000000000 Beta(tan=-1.66428, x=0.515038, y=-0.857167): -1.664279482351\n    test 727 301 301.085017327347 Theta(tan=-1.6587, x=0.516309, y=-0.856402): -1.664279482351\n    test 728 301 301.042466766526 Mu(tan=-1.66149, x=0.515673, y=-0.856785): -1.664279482351\n    test 729 301 301.084877498227 Chi(tan=-1.65871, x=0.516307, y=-0.856403): -1.664279482351\n    test 730 301 301.028319023279 Xi(tan=-1.66242, x=0.515462, y=-0.856913): -1.664279482351\n\n    test 731 308 307.906683665119 Phi(tan=-1.28425, x=0.615661, y=-0.790662): -1.279941632193\n    test 732 308 308.000000000000 Beta(tan=-1.27994, x=0.615661, y=-0.788011): -1.279941632193\n    test 733 308 308.093392183249 Theta(tan=-1.27565, x=0.615661, y=-0.785369): -1.279941632193\n    test 734 308 308.046672369053 Mu(tan=-1.27779, x=0.616303, y=-0.787509), iteration=3: -1.279941632193\n    test 735 308 308.093262395276 Chi(tan=-1.27566, x=1.0, y=-1.27566), iteration=3: -1.279941632193\n    test 736 308 308.031126109597 Xi(tan=-1.27851, x=1.23771, y=-1.58243), iteration=3: -1.279941632193\n\n    test 737 308 307.906683665119 Phi(tan=-1.28425, x=0.614377, y=-0.789012): -1.279941632193\n    test 738 308 308.000000000000 Beta(tan=-1.27994, x=0.615661, y=-0.788011): -1.279941632193\n    test 739 308 308.093392183249 Theta(tan=-1.27565, x=0.616945, y=-0.787006): -1.279941632193\n    test 740 308 308.046672369053 Mu(tan=-1.27779, x=0.616303, y=-0.787509): -1.279941632193\n    test 741 308 308.093262395276 Chi(tan=-1.27566, x=0.616943, y=-0.787008): -1.279941632193\n    test 742 308 308.031126109597 Xi(tan=-1.27851, x=0.616089, y=-0.787676): -1.279941632193\n\n    test 743 315 314.903787849420 Phi(tan=-1.00336, x=0.707107, y=-0.709486): -1.000000000000\n    test 744 315 315.000000000000 Beta(tan=-1, x=0.707107, y=-0.707107): -1.000000000000\n    test 745 315 315.096212150580 Theta(tan=-0.996647, x=0.707107, y=-0.704736): -1.000000000000\n    test 746 315 315.048106063986 Mu(tan=-0.998322, x=0.7077, y=-0.706513), iteration=2: -1.000000000000\n    test 747 315 315.096104515452 Chi(tan=-0.996651, x=1.0, y=-0.996651), iteration=2: -1.000000000000\n    test 748 315 315.032085072505 Xi(tan=-0.998881, x=1.42136, y=-1.41977), iteration=3: -1.000000000000\n\n    test 749 315 314.903787849420 Phi(tan=-1.00336, x=0.705918, y=-0.708293): -1.000000000000\n    test 750 315 315.000000000000 Beta(tan=-1, x=0.707107, y=-0.707107): -1.000000000000\n    test 751 315 315.096212150580 Theta(tan=-0.996647, x=0.708293, y=-0.705918): -1.000000000000\n    test 752 315 315.048106063986 Mu(tan=-0.998322, x=0.7077, y=-0.706513): -1.000000000000\n    test 753 315 315.096104515452 Chi(tan=-0.996651, x=0.708292, y=-0.70592): -1.000000000000\n    test 754 315 315.032085072505 Xi(tan=-0.998881, x=0.707503, y=-0.706711): -1.000000000000\n\n    test 755 322 321.906607816751 Phi(tan=-0.783914, x=0.788011, y=-0.617733): -0.781285626507\n    test 756 322 322.000000000000 Beta(tan=-0.781286, x=0.788011, y=-0.615661): -0.781285626507\n    test 757 322 322.093316334881 Theta(tan=-0.778666, x=0.788011, y=-0.613597): -0.781285626507\n    test 758 322 322.046681850102 Mu(tan=-0.779974, x=0.788512, y=-0.615019), iteration=2: -0.781285626507\n    test 759 322 322.093237214147 Chi(tan=-0.778668, x=1.0, y=-0.778668), iteration=3: -0.781285626507\n    test 760 322 322.031137911470 Xi(tan=-0.780411, x=1.58377, y=-1.23599), iteration=2: -0.781285626507\n\n    test 761 322 321.906607816751 Phi(tan=-0.783914, x=0.787006, y=-0.616945): -0.781285626507\n    test 762 322 322.000000000000 Beta(tan=-0.781286, x=0.788011, y=-0.615661): -0.781285626507\n    test 763 322 322.093316334881 Theta(tan=-0.778666, x=0.789012, y=-0.614377): -0.781285626507\n    test 764 322 322.046681850102 Mu(tan=-0.779974, x=0.788512, y=-0.615019): -0.781285626507\n    test 765 322 322.093237214147 Chi(tan=-0.778668, x=0.789012, y=-0.614378): -0.781285626507\n    test 766 322 322.031137911470 Xi(tan=-0.780411, x=0.788345, y=-0.615233): -0.781285626507\n\n    test 767 329 328.914982672653 Phi(tan=-0.602882, x=0.857167, y=-0.516771): -0.600860619028\n    test 768 329 329.000000000000 Beta(tan=-0.600861, x=0.857167, y=-0.515038): -0.600860619028\n    test 769 329 329.084883386958 Theta(tan=-0.598846, x=0.857167, y=-0.513311): -0.600860619028\n    test 770 329 329.042483509069 Mu(tan=-0.599852, x=0.857549, y=-0.514402), iteration=3: -0.600860619028\n    test 771 329 329.084833030986 Chi(tan=-0.598847, x=1.0, y=-0.598847), iteration=3: -0.600860619028\n    test 772 329 329.028339864157 Xi(tan=-0.600188, x=1.72254, y=-1.03385), iteration=2: -0.600860619028\n\n    test 773 329 328.914982672653 Phi(tan=-0.602882, x=0.856402, y=-0.516309): -0.600860619028\n    test 774 329 329.000000000000 Beta(tan=-0.600861, x=0.857167, y=-0.515038): -0.600860619028\n    test 775 329 329.084883386958 Theta(tan=-0.598846, x=0.857929, y=-0.513768): -0.600860619028\n    test 776 329 329.042483509069 Mu(tan=-0.599852, x=0.857549, y=-0.514402): -0.600860619028\n    test 777 329 329.084833030986 Chi(tan=-0.598847, x=0.857929, y=-0.513768): -0.600860619028\n    test 778 329 329.028339864157 Xi(tan=-0.600188, x=0.857422, y=-0.514614): -0.600860619028\n\n    test 779 336 335.928419979560 Phi(tan=-0.446726, x=0.913545, y=-0.408105): -0.445228685309\n    test 780 336 336.000000000000 Beta(tan=-0.445229, x=0.913545, y=-0.406737): -0.445228685309\n    test 781 336 336.071419343981 Theta(tan=-0.443736, x=0.913545, y=-0.405373): -0.445228685309\n    test 782 336 336.035759822314 Mu(tan=-0.444481, x=0.913799, y=-0.406166), iteration=2: -0.445228685309\n    test 783 336 336.071392925660 Chi(tan=-0.443736, x=1.0, y=-0.443736), iteration=3: -0.445228685309\n    test 784 336 336.023856366648 Xi(tan=-0.44473, x=1.83563, y=-0.816362), iteration=3: -0.445228685309\n\n    test 785 336 335.928419979560 Phi(tan=-0.446726, x=0.913037, y=-0.407878): -0.445228685309\n    test 786 336 336.000000000000 Beta(tan=-0.445229, x=0.913545, y=-0.406737): -0.445228685309\n    test 787 336 336.071419343981 Theta(tan=-0.443736, x=0.914052, y=-0.405598): -0.445228685309\n    test 788 336 336.035759822314 Mu(tan=-0.444481, x=0.913799, y=-0.406166): -0.445228685309\n    test 789 336 336.071392925660 Chi(tan=-0.443736, x=0.914052, y=-0.405598): -0.445228685309\n    test 790 336 336.023856366648 Xi(tan=-0.44473, x=0.913715, y=-0.406356): -0.445228685309\n\n    test 791 343 342.946123810430 Phi(tan=-0.306759, x=0.956305, y=-0.293355): -0.305730681459\n    test 792 343 343.000000000000 Beta(tan=-0.305731, x=0.956305, y=-0.292372): -0.305730681459\n    test 793 343 343.053726392145 Theta(tan=-0.304706, x=0.956305, y=-0.291391): -0.305730681459\n    test 794 343 343.026909940603 Mu(tan=-0.305217, x=0.956442, y=-0.291923), iteration=3: -0.305730681459\n    test 795 343 343.053716124954 Chi(tan=-0.304706, x=1.0, y=-0.304706), iteration=3: -0.305730681459\n    test 796 343 343.017953411145 Xi(tan=-0.305388, x=1.92138, y=-0.586767), iteration=3: -0.305730681459\n\n    test 797 343 342.946123810430 Phi(tan=-0.306759, x=0.956029, y=-0.293271): -0.305730681459\n    test 798 343 343.000000000000 Beta(tan=-0.305731, x=0.956305, y=-0.292372): -0.305730681459\n    test 799 343 343.053726392145 Theta(tan=-0.304706, x=0.956578, y=-0.291475): -0.305730681459\n    test 800 343 343.026909940603 Mu(tan=-0.305217, x=0.956442, y=-0.291923): -0.305730681459\n    test 801 343 343.053716124955 Chi(tan=-0.304706, x=0.956578, y=-0.291475): -0.305730681459\n    test 802 343 343.017953411145 Xi(tan=-0.305388, x=0.956396, y=-0.292072): -0.305730681459\n\n    test 803 350 349.967041472227 Phi(tan=-0.17692, x=0.984808, y=-0.174232): -0.176326980708\n    test 804 350 350.000000000000 Beta(tan=-0.176327, x=0.984808, y=-0.173648): -0.176326980708\n    test 805 350 350.032854677782 Theta(tan=-0.175736, x=0.984808, y=-0.173066): -0.176326980708\n    test 806 350 350.016459740333 Mu(tan=-0.176031, x=0.984858, y=-0.173365), iteration=3: -0.176326980708\n    test 807 350 350.032852463246 Chi(tan=-0.175736, x=1.0, y=-0.175736), iteration=2: -0.176326980708\n    test 808 350 350.010981830106 Xi(tan=-0.176129, x=1.97853, y=-0.348476), iteration=3: -0.176326980708\n\n    test 809 350 349.967041472227 Phi(tan=-0.17692, x=0.984708, y=-0.174215): -0.176326980708\n    test 810 350 350.000000000000 Beta(tan=-0.176327, x=0.984808, y=-0.173648): -0.176326980708\n    test 811 350 350.032854677782 Theta(tan=-0.175736, x=0.984907, y=-0.173083): -0.176326980708\n    test 812 350 350.016459740333 Mu(tan=-0.176031, x=0.984858, y=-0.173365): -0.176326980708\n    test 813 350 350.032852463245 Chi(tan=-0.175736, x=0.984907, y=-0.173083): -0.176326980708\n    test 814 350 350.010981830106 Xi(tan=-0.176129, x=0.984841, y=-0.173459): -0.176326980708\n\n    test 815 357 356.989926259040 Phi(tan=-0.0525841, x=0.99863, y=-0.052512): -0.052407779283\n    test 816 357 357.000000000000 Beta(tan=-0.0524078, x=0.99863, y=-0.052336): -0.052407779283\n    test 817 357 357.010040150331 Theta(tan=-0.0522321, x=0.99863, y=-0.0521605): -0.052407779283\n    test 818 357 357.005030554687 Mu(tan=-0.0523197, x=0.998634, y=-0.0522483), iteration=2: -0.052407779283\n    test 819 357 357.010040088861 Chi(tan=-0.0522321, x=1.0, y=-0.0522321), iteration=2: -0.052407779283\n    test 820 357 357.003356419920 Xi(tan=-0.052349, x=2.00623, y=-0.105024), iteration=3: -0.052407779283\n\n    test 821 357 356.989926259040 Phi(tan=-0.0525841, x=0.99862, y=-0.0525115): -0.052407779283\n    test 822 357 357.000000000000 Beta(tan=-0.0524078, x=0.99863, y=-0.052336): -0.052407779283\n    test 823 357 357.010040150331 Theta(tan=-0.0522321, x=0.998639, y=-0.052161): -0.052407779283\n    test 824 357 357.005030554687 Mu(tan=-0.0523197, x=0.998634, y=-0.0522483): -0.052407779283\n    test 825 357 357.010040088861 Chi(tan=-0.0522321, x=0.998639, y=-0.052161): -0.052407779283\n    test 826 357 357.003356419920 Xi(tan=-0.052349, x=0.998633, y=-0.0522775): -0.052407779283\n\n    test 827  0 0.000000000000 Phi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 828  0 0.000000000000 Beta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 829  0 0.000000000000 Theta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 830  0 0.000000000000 Mu(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 831  0 0.000000000000 Chi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 832  0 0.000000000000 Xi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n\n    test 833  0 0.000000000000 Phi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 834  0 0.000000000000 Beta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 835  0 0.000000000000 Theta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 836  0 0.000000000000 Mu(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 837  0 0.000000000000 Chi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 838  0 0.000000000000 Xi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n\n    test 839  7 7.046702961824 Phi(tan=0.123612, x=1.0, y=0.123612): 0.122784560903\n    test 840  7 7.023313050940 Beta(tan=0.123198, x=1.0, y=0.123198): 0.122784560903\n    test 841  7 6.999999220873 Theta(tan=0.122785, x=1.0, y=0.122785): 0.122784560903\n    test 842  7 7.011632399558 Mu(tan=0.122991, x=0.992521, y=0.122071), iteration=3: 0.122784560903\n    test 843  7 7.000000000000 Chi(tan=0.122785, x=0.992546, y=0.121869): 0.122784560903\n    test 844  7 7.015519711118 Xi(tan=0.12306, x=1.99394, y=0.245373), iteration=3: 0.122784560903\n\n    test 845  7 7.046702961824 Phi(tan=0.123612, x=0.992446, y=0.122678): 0.122784560903\n    test 846  7 7.023313050940 Beta(tan=0.123198, x=0.992496, y=0.122273): 0.122784560903\n    test 847  7 6.999999220873 Theta(tan=0.122785, x=0.992546, y=0.121869): 0.122784560903\n    test 848  7 7.011632399558 Mu(tan=0.122991, x=0.992521, y=0.122071): 0.122784560903\n    test 849  7 7.000000000000 Chi(tan=0.122785, x=0.992546, y=0.121869): 0.122784560903\n    test 850  7 7.015519711118 Xi(tan=0.12306, x=0.992513, y=0.122138): 0.122784560903\n\n    test 851 14 14.090600177106 Phi(tan=0.251008, x=1.0, y=0.251008): 0.249328002843\n    test 852 14 14.045229997878 Beta(tan=0.250167, x=1.0, y=0.250167): 0.249328002843\n    test 853 14 13.999994044068 Theta(tan=0.249328, x=1.0, y=0.249328): 0.249328002843\n    test 854 14 14.022570138869 Mu(tan=0.249746, x=0.9702, y=0.242304), iteration=3: 0.249328002843\n    test 855 14 14.000000000000 Chi(tan=0.249328, x=0.970296, y=0.241922): 0.249328002843\n    test 856 14 14.030111806086 Xi(tan=0.249886, x=1.94905, y=0.487041), iteration=3: 0.249328002843\n\n    test 857 14 14.090600177106 Phi(tan=0.251008, x=0.969912, y=0.243456): 0.249328002843\n    test 858 14 14.045229997878 Beta(tan=0.250167, x=0.970104, y=0.242688): 0.249328002843\n    test 859 14 13.999994044068 Theta(tan=0.249328, x=0.970296, y=0.241922): 0.249328002843\n    test 860 14 14.022570138869 Mu(tan=0.249746, x=0.9702, y=0.242304): 0.249328002843\n    test 861 14 14.000000000000 Chi(tan=0.249328, x=0.970296, y=0.241922): 0.249328002843\n    test 862 14 14.030111806086 Xi(tan=0.249886, x=0.970168, y=0.242432): 0.249328002843\n\n    test 863 21 21.129059974007 Phi(tan=0.386451, x=1.0, y=0.386451): 0.383864035035\n    test 864 21 21.064440302978 Beta(tan=0.385155, x=1.0, y=0.385155): 0.383864035035\n    test 865 21 20.999981382849 Theta(tan=0.383864, x=1.0, y=0.383864): 0.383864035035\n    test 866 21 21.032160674247 Mu(tan=0.384508, x=0.933379, y=0.358892), iteration=3: 0.383864035035\n    test 867 21 21.000000000000 Chi(tan=0.383864, x=0.93358, y=0.358368): 0.383864035035\n    test 868 21 21.042905101186 Xi(tan=0.384723, x=1.875, y=0.721358), iteration=2: 0.383864035035\n\n    test 869 21 21.129059974007 Phi(tan=0.386451, x=0.932771, y=0.36047): 0.383864035035\n    test 870 21 21.064440302978 Beta(tan=0.385155, x=0.933177, y=0.359418): 0.383864035035\n    test 871 21 20.999981382849 Theta(tan=0.383864, x=0.933581, y=0.358368): 0.383864035035\n    test 872 21 21.032160674247 Mu(tan=0.384508, x=0.933379, y=0.358892): 0.383864035035\n    test 873 21 21.000000000000 Chi(tan=0.383864, x=0.93358, y=0.358368): 0.383864035035\n    test 874 21 21.042905101186 Xi(tan=0.384723, x=0.933312, y=0.359067): 0.383864035035\n\n    test 875 28 28.159786713307 Phi(tan=0.535292, x=1.0, y=0.535292): 0.531709431661\n    test 876 28 28.079798849800 Beta(tan=0.533497, x=1.0, y=0.533497): 0.531709431661\n    test 877 28 27.999960443908 Theta(tan=0.531709, x=1.0, y=0.531709): 0.531709431661\n    test 878 28 28.039832991509 Mu(tan=0.532602, x=0.882621, y=0.470085), iteration=3: 0.531709431661\n    test 879 28 28.000000000000 Chi(tan=0.531709, x=0.882948, y=0.469472): 0.531709431661\n    test 880 28 28.053137609764 Xi(tan=0.5329, x=1.77295, y=0.944804), iteration=3: 0.531709431661\n\n    test 881 28 28.159786713307 Phi(tan=0.535292, x=0.881635, y=0.471932): 0.531709431661\n    test 882 28 28.079798849800 Beta(tan=0.533497, x=0.882293, y=0.470701): 0.531709431661\n    test 883 28 27.999960443908 Theta(tan=0.531709, x=0.882948, y=0.469471): 0.531709431661\n    test 884 28 28.039832991509 Mu(tan=0.532602, x=0.882621, y=0.470085): 0.531709431661\n    test 885 28 28.000000000000 Chi(tan=0.531709, x=0.882948, y=0.469472): 0.531709431661\n    test 886 28 28.053137609764 Xi(tan=0.5329, x=0.882512, y=0.47029): 0.531709431661\n\n    test 887 35 35.180959671970 Phi(tan=0.704925, x=1.0, y=0.704925): 0.700207538210\n    test 888 35 35.090394869583 Beta(tan=0.702561, x=1.0, y=0.702561): 0.700207538210\n    test 889 35 34.999933133637 Theta(tan=0.700206, x=1.0, y=0.700206): 0.700207538210\n    test 890 35 35.045131821097 Mu(tan=0.701382, x=0.8187, y=0.574222), iteration=3: 0.700207538210\n    test 891 35 35.000000000000 Chi(tan=0.700208, x=0.819152, y=0.573576): 0.700207538210\n    test 892 35 35.060202265669 Xi(tan=0.701775, x=1.64445, y=1.15403), iteration=2: 0.700207538210\n\n    test 893 35 35.180959671970 Phi(tan=0.704925, x=0.817336, y=0.576161): 0.700207538210\n    test 894 35 35.090394869583 Beta(tan=0.702561, x=0.818246, y=0.574868): 0.700207538210\n    test 895 35 34.999933133637 Theta(tan=0.700206, x=0.819153, y=0.573575): 0.700207538210\n    test 896 35 35.045131821097 Mu(tan=0.701382, x=0.8187, y=0.574222): 0.700207538210\n    test 897 35 35.000000000000 Chi(tan=0.700208, x=0.819152, y=0.573576): 0.700207538210\n    test 898 35 35.060202265669 Xi(tan=0.701775, x=0.818549, y=0.574437): 0.700207538210\n\n    test 899 42 42.191340028820 Phi(tan=0.906469, x=1.0, y=0.906469): 0.900404044298\n    test 900 42 42.095605637640 Beta(tan=0.90343, x=1.0, y=0.90343): 0.900404044298\n    test 901 42 41.999903781382 Theta(tan=0.900401, x=1.0, y=0.900401): 0.900404044298\n    test 902 42 42.047744555205 Mu(tan=0.901914, x=0.742587, y=0.66975), iteration=2: 0.900404044298\n    test 903 42 42.000000000000 Chi(tan=0.900404, x=0.743145, y=0.669131): 0.900404044298\n    test 904 42 42.063682784184 Xi(tan=0.902419, x=1.49147, y=1.34593), iteration=3: 0.900404044298\n\n    test 905 42 42.191340028820 Phi(tan=0.906469, x=0.740906, y=0.671609): 0.900404044298\n    test 906 42 42.095605637640 Beta(tan=0.90343, x=0.742027, y=0.67037): 0.900404044298\n    test 907 42 41.999903781382 Theta(tan=0.900401, x=0.743146, y=0.669129): 0.900404044298\n    test 908 42 42.047744555205 Mu(tan=0.901914, x=0.742587, y=0.66975): 0.900404044298\n    test 909 42 42.000000000000 Chi(tan=0.900404, x=0.743145, y=0.669131): 0.900404044298\n    test 910 42 42.063682784184 Xi(tan=0.902419, x=0.742401, y=0.669956): 0.900404044298\n\n    test 911 49 49.190339913877 Phi(tan=1.15812, x=1.0, y=1.15812): 1.150368407221\n    test 912 49 49.095131857689 Beta(tan=1.15423, x=1.0, y=1.15423): 1.150368407221\n    test 913 49 48.999878238776 Theta(tan=1.15036, x=1.0, y=1.15036): 1.150368407221\n    test 914 49 49.047519300953 Mu(tan=1.1523, x=0.655433, y=0.755253), iteration=2: 1.150368407221\n    test 915 49 49.000000000000 Chi(tan=1.15037, x=0.656059, y=0.75471): 1.150368407221\n    test 916 49 49.063377582472 Xi(tan=1.15294, x=1.31633, y=1.51765), iteration=3: 1.150368407221\n\n    test 917 49 49.190339913877 Phi(tan=1.15812, x=0.653548, y=0.756885): 1.150368407221\n    test 918 49 49.095131857689 Beta(tan=1.15423, x=0.654805, y=0.755798): 1.150368407221\n    test 919 49 48.999878238776 Theta(tan=1.15036, x=0.656061, y=0.754708): 1.150368407221\n    test 920 49 49.047519300953 Mu(tan=1.1523, x=0.655433, y=0.755253): 1.150368407221\n    test 921 49 49.000000000000 Chi(tan=1.15037, x=0.656059, y=0.75471): 1.150368407221\n    test 922 49 49.063377582472 Xi(tan=1.15294, x=0.655224, y=0.755435): 1.150368407221\n\n    test 923 56 56.178050530882 Phi(tan=1.49254, x=1.0, y=1.49254): 1.482560968513\n    test 924 56 56.089013022552 Beta(tan=1.48754, x=1.0, y=1.48754): 1.482560968513\n    test 925 56 55.999862564323 Theta(tan=1.48255, x=1.0, y=1.48255): 1.482560968513\n    test 926 56 56.044473121630 Mu(tan=1.48505, x=0.558549, y=0.829471), iteration=3: 1.482560968513\n    test 927 56 56.000000000000 Chi(tan=1.48256, x=0.559193, y=0.829038): 1.482560968513\n    test 928 56 56.059310533694 Xi(tan=1.48588, x=1.12168, y=1.66668), iteration=2: 1.482560968513\n\n    test 929 56 56.178050530882 Phi(tan=1.49254, x=0.556614, y=0.830771): 1.482560968513\n    test 930 56 56.089013022551 Beta(tan=1.48754, x=0.557904, y=0.829905): 1.482560968513\n    test 931 56 55.999862564323 Theta(tan=1.48255, x=0.559195, y=0.829036): 1.482560968513\n    test 932 56 56.044473121630 Mu(tan=1.48505, x=0.558549, y=0.829471): 1.482560968513\n    test 933 56 56.000000000000 Chi(tan=1.48256, x=0.559193, y=0.829038): 1.482560968513\n    test 934 56 56.059310533694 Xi(tan=1.48588, x=0.558334, y=0.829616): 1.482560968513\n\n    test 935 63 63.155229303561 Phi(tan=1.97583, x=1.0, y=1.97583): 1.962610505505\n    test 936 63 63.077622413475 Beta(tan=1.9692, x=1.0, y=1.9692): 1.962610505505\n    test 937 63 62.999861601059 Theta(tan=1.9626, x=1.0, y=1.9626): 1.962610505505\n    test 938 63 63.038790161591 Mu(tan=1.9659, x=0.453387, y=0.891314), iteration=2: 1.962610505505\n    test 939 63 63.000000000000 Chi(tan=1.96261, x=0.45399, y=0.891007): 1.962610505505\n    test 940 63 63.051728205304 Xi(tan=1.967, x=0.910441, y=1.79084), iteration=3: 1.962610505505\n\n    test 941 63 63.155229303561 Phi(tan=1.97583, x=0.451575, y=0.892233): 1.962610505505\n    test 942 63 63.077622413475 Beta(tan=1.9692, x=0.452783, y=0.891621): 1.962610505505\n    test 943 63 62.999861601059 Theta(tan=1.9626, x=0.453993, y=0.891005): 1.962610505505\n    test 944 63 63.038790161591 Mu(tan=1.9659, x=0.453387, y=0.891314): 1.962610505505\n    test 945 63 63.000000000000 Chi(tan=1.96261, x=0.45399, y=0.891007): 1.962610505505\n    test 946 63 63.051728205304 Xi(tan=1.967, x=0.453186, y=0.891416): 1.962610505505\n\n    test 947 70 70.123248546098 Phi(tan=2.76598, x=1.0, y=2.76598): 2.747477419455\n    test 948 70 70.061642655565 Beta(tan=2.7567, x=1.0, y=2.7567): 2.747477419455\n    test 949 70 69.999877780085 Theta(tan=2.74746, x=1.0, y=2.74746): 2.747477419455\n    test 950 70 70.030809967607 Mu(tan=2.75208, x=0.341515, y=0.939876), iteration=2: 2.747477419455\n    test 951 70 70.000000000000 Chi(tan=2.74748, x=0.34202, y=0.939693): 2.747477419455\n    test 952 70 70.041084059681 Xi(tan=2.75362, x=0.685758, y=1.88832), iteration=3: 2.747477419455\n\n    test 953 70 70.123248546098 Phi(tan=2.76598, x=0.339998, y=0.940426): 2.747477419455\n    test 954 70 70.061642655565 Beta(tan=2.7567, x=0.341009, y=0.94006): 2.747477419455\n    test 955 70 69.999877780085 Theta(tan=2.74746, x=0.342022, y=0.939692): 2.747477419455\n    test 956 70 70.030809967607 Mu(tan=2.75208, x=0.341515, y=0.939876): 2.747477419455\n    test 957 70 70.000000000000 Chi(tan=2.74748, x=0.34202, y=0.939693): 2.747477419455\n    test 958 70 70.041084059681 Xi(tan=2.75362, x=0.341346, y=0.939938): 2.747477419455\n\n    test 959 77 77.084010155505 Phi(tan=4.36064, x=1.0, y=4.36064): 4.331475874284\n    test 960 77 77.042023802893 Beta(tan=4.34602, x=1.0, y=4.34602): 4.331475874284\n    test 961 77 76.999910430182 Theta(tan=4.33144, x=1.0, y=4.33144): 4.331475874284\n    test 962 77 77.021006871193 Mu(tan=4.33873, x=0.224594, y=0.974452), iteration=3: 4.331475874284\n    test 963 77 77.000000000000 Chi(tan=4.33148, x=0.224951, y=0.97437): 4.331475874284\n    test 964 77 77.028010821264 Xi(tan=4.34116, x=0.450965, y=1.95771), iteration=2: 4.331475874284\n\n    test 965 77 77.084010155505 Phi(tan=4.36064, x=0.223522, y=0.974699): 4.331475874284\n    test 966 77 77.042023802893 Beta(tan=4.34602, x=0.224236, y=0.974535): 4.331475874284\n    test 967 77 76.999910430182 Theta(tan=4.33144, x=0.224953, y=0.97437): 4.331475874284\n    test 968 77 77.021006871193 Mu(tan=4.33873, x=0.224594, y=0.974452): 4.331475874284\n    test 969 77 77.000000000000 Chi(tan=4.33148, x=0.224951, y=0.97437): 4.331475874284\n    test 970 77 77.028010821264 Xi(tan=4.34116, x=0.224475, y=0.97448): 4.331475874284\n\n    test 971 84 84.039832232299 Phi(tan=9.57842, x=1.0, y=9.57842): 9.514364454223\n    test 972 84 84.019926748698 Beta(tan=9.5463, x=1.0, y=9.5463): 9.514364454223\n    test 973 84 83.999955757312 Theta(tan=9.51429, x=1.0, y=9.51429): 9.514364454223\n    test 974 84 84.009961757905 Mu(tan=9.5303, x=0.104356, y=0.99454), iteration=3: 9.514364454223\n    test 975 84 84.000000000000 Chi(tan=9.51436, x=0.104528, y=0.994522): 9.514364454223\n    test 976 84 84.013282808640 Xi(tan=9.53563, x=0.209532, y=1.99802), iteration=3: 9.514364454223\n\n    test 977 84 84.039832232299 Phi(tan=9.57842, x=0.103837, y=0.994594): 9.514364454223\n    test 978 84 84.019926748698 Beta(tan=9.5463, x=0.104183, y=0.994558): 9.514364454223\n    test 979 84 83.999955757312 Theta(tan=9.51429, x=0.104529, y=0.994522): 9.514364454223\n    test 980 84 84.009961757905 Mu(tan=9.5303, x=0.104356, y=0.99454): 9.514364454223\n    test 981 84 84.000000000000 Chi(tan=9.51436, x=0.104528, y=0.994522): 9.514364454223\n    test 982 84 84.013282808640 Xi(tan=9.53563, x=0.104298, y=0.994546): 9.514364454223\n\n    test 983 91 90.993314421151 Phi(tan=-57.6756, x=-1, y=57.6756): -57.289961630759\n    test 984 91 90.996655347181 Beta(tan=-57.4823, x=-1, y=57.4823): -57.289961630759\n    test 985 91 91.000007505573 Theta(tan=-57.2895, x=-1, y=57.2895): -57.289961630759\n    test 986 91 90.998327910374 Mu(tan=-57.3859, x=-0.0174232, y=0.999848), iteration=2: -57.289961630759\n    test 987 91 91.000000000000 Chi(tan=-57.29, x=-0.0174524, y=0.999848): -57.289961630759\n    test 988 91 90.997770483630 Xi(tan=-57.418, x=-0.0349834, y=2.00868), iteration=3: -57.289961630759\n\n    test 989 91 90.993314421151 Phi(tan=-57.6756, x=-0.0173357, y=0.99985): -57.289961630760  FAILED, KNOWN (8.1857e-15), expected -57.289961630759\n    test 990 91 90.996655347181 Beta(tan=-57.4823, x=-0.017394, y=0.999849): -57.289961630760  FAILED, KNOWN (3.72077e-15), expected -57.289961630759\n    test 991 91 91.000007505573 Theta(tan=-57.2895, x=-0.0174525, y=0.999848): -57.289961630759\n    test 992 91 90.998327910374 Mu(tan=-57.3859, x=-0.0174232, y=0.999848): -57.289961630759\n    test 993 91 91.000000000000 Chi(tan=-57.29, x=-0.0174524, y=0.999848): -57.289961630759\n    test 994 91 90.997770483630 Xi(tan=-57.418, x=-0.0174135, y=0.999848): -57.289961630760  FAILED, KNOWN (3.8448e-15), expected -57.289961630759\n\n    test 995 98 97.947189249597 Phi(tan=-7.16327, x=-1, y=7.16327): -7.115369722384\n    test 996 98 97.973581022657 Beta(tan=-7.13925, x=-1, y=7.13925): -7.115369722384\n    test 997 98 98.000058157653 Theta(tan=-7.11532, x=-1, y=7.11532): -7.115369722384\n    test 998 98 97.986792871261 Mu(tan=-7.12729, x=-0.138945, y=0.9903), iteration=3: -7.115369722384\n    test 999 98 98.000000000000 Chi(tan=-7.11537, x=-0.139173, y=0.990268): -7.115369722384\n    test 1000 98 97.982389787937 Xi(tan=-7.13127, x=-0.278984, y=1.98951), iteration=3: -7.115369722384\n\n    test 1001 98 97.947189249597 Phi(tan=-7.16327, x=-0.13826, y=0.990396): -7.115369722384\n    test 1002 98 97.973581022657 Beta(tan=-7.13925, x=-0.138716, y=0.990332): -7.115369722384\n    test 1003 98 98.000058157653 Theta(tan=-7.11532, x=-0.139174, y=0.990268): -7.115369722384\n    test 1004 98 97.986792871261 Mu(tan=-7.12729, x=-0.138945, y=0.9903): -7.115369722384\n    test 1005 98 98.000000000000 Chi(tan=-7.11537, x=-0.139173, y=0.990268): -7.115369722384\n    test 1006 98 97.982389787937 Xi(tan=-7.13127, x=-0.138869, y=0.990311): -7.115369722384\n\n    test 1007 105 104.904166968877 Phi(tan=-3.75718, x=-1, y=3.75718): -3.732050807569\n    test 1008 105 104.952063867788 Beta(tan=-3.74458, x=-1, y=3.74458): -3.732050807569\n    test 1009 105 105.000100412186 Theta(tan=-3.73202, x=-1, y=3.73202): -3.732050807569\n    test 1010 105 104.976038435868 Mu(tan=-3.7383, x=-0.258415, y=0.966034), iteration=3: -3.732050807569\n    test 1011 105 105.000000000000 Chi(tan=-3.73205, x=-0.258819, y=0.965926): -3.732050807569\n    test 1012 105 104.968049034476 Xi(tan=-3.74039, x=-0.51888, y=1.94082), iteration=2: -3.732050807569\n\n    test 1013 105 104.904166968877 Phi(tan=-3.75718, x=-0.257203, y=0.966357): -3.732050807569\n    test 1014 105 104.952063867788 Beta(tan=-3.74458, x=-0.258011, y=0.966142): -3.732050807569\n    test 1015 105 105.000100412186 Theta(tan=-3.73202, x=-0.258821, y=0.965925): -3.732050807569\n    test 1016 105 104.976038435868 Mu(tan=-3.7383, x=-0.258415, y=0.966034): -3.732050807569\n    test 1017 105 105.000000000000 Chi(tan=-3.73205, x=-0.258819, y=0.965926): -3.732050807569\n    test 1018 105 104.968049034476 Xi(tan=-3.74039, x=-0.25828, y=0.96607): -3.732050807569\n\n    test 1019 112 111.866781479115 Phi(tan=-2.49175, x=-1, y=2.49175): -2.475086853416\n    test 1020 112 111.933374328805 Beta(tan=-2.4834, x=-1, y=2.4834): -2.475086853416\n    test 1021 112 112.000128613678 Theta(tan=-2.47507, x=-1, y=2.47507): -2.475086853416\n    test 1022 112 111.966700957925 Mu(tan=-2.47923, x=-0.374068, y=0.927401), iteration=2: -2.475086853416\n    test 1023 112 112.000000000000 Chi(tan=-2.47509, x=-0.374607, y=0.927184): -2.475086853416\n    test 1024 112 111.955596207977 Xi(tan=-2.48062, x=-0.751133, y=1.86328), iteration=2: -2.475086853416\n\n    test 1025 112 111.866781479115 Phi(tan=-2.49175, x=-0.37245, y=0.928052): -2.475086853416\n    test 1026 112 111.933374328805 Beta(tan=-2.4834, x=-0.373528, y=0.927619): -2.475086853416\n    test 1027 112 112.000128613678 Theta(tan=-2.47507, x=-0.374609, y=0.927183): -2.475086853416\n    test 1028 112 111.966700957925 Mu(tan=-2.47923, x=-0.374068, y=0.927401): -2.475086853416\n    test 1029 112 112.000000000000 Chi(tan=-2.47509, x=-0.374607, y=0.927184): -2.475086853416\n    test 1030 112 111.955596207977 Xi(tan=-2.48062, x=-0.373888, y=0.927474): -2.475086853416\n\n    test 1031 119 118.837244909169 Phi(tan=-1.8162, x=-1, y=1.8162): -1.804047755271\n    test 1032 119 118.918619560007 Beta(tan=-1.81011, x=-1, y=1.81011): -1.804047755271\n    test 1033 119 119.000139821268 Theta(tan=-1.80404, x=-1, y=1.80404): -1.804047755271\n    test 1034 119 118.959334139853 Mu(tan=-1.80707, x=-0.484189, y=0.874964), iteration=2: -1.804047755271\n    test 1035 119 119.000000000000 Chi(tan=-1.80405, x=-0.48481, y=0.87462): -1.804047755271\n    test 1036 119 118.945769514985 Xi(tan=-1.80808, x=-0.972309, y=1.75801), iteration=3: -1.804047755271\n\n    test 1037 119 118.837244909169 Phi(tan=-1.8162, x=-0.482323, y=0.875993): -1.804047755271\n    test 1038 119 118.918619560007 Beta(tan=-1.81011, x=-0.483567, y=0.875307): -1.804047755271\n    test 1039 119 119.000139821268 Theta(tan=-1.80404, x=-0.484812, y=0.874619): -1.804047755271\n    test 1040 119 118.959334139853 Mu(tan=-1.80707, x=-0.484189, y=0.874964): -1.804047755271\n    test 1041 119 119.000000000000 Chi(tan=-1.80405, x=-0.48481, y=0.87462): -1.804047755271\n    test 1042 119 118.945769514985 Xi(tan=-1.80808, x=-0.483982, y=0.875078): -1.804047755271\n\n    test 1043 126 125.817318309875 Phi(tan=-1.38565, x=-1, y=1.38565): -1.376381920471\n    test 1044 126 125.908678399154 Beta(tan=-1.38101, x=-1, y=1.38101): -1.376381920471\n    test 1045 126 126.000134283091 Theta(tan=-1.37638, x=-1, y=1.37638): -1.376381920471\n    test 1046 126 125.954376379912 Mu(tan=-1.37869, x=-0.587141, y=0.809485), iteration=3: -1.376381920471\n    test 1047 126 126.000000000000 Chi(tan=-1.37638, x=-0.587785, y=0.809017): -1.376381920471\n    test 1048 126 125.939153905889 Xi(tan=-1.37946, x=-1.17912, y=1.62655), iteration=2: -1.376381920471\n\n    test 1049 126 125.817318309875 Phi(tan=-1.38565, x=-0.585203, y=0.810887): -1.376381920471\n    test 1050 126 125.908678399154 Beta(tan=-1.38101, x=-0.586495, y=0.809953): -1.376381920471\n    test 1051 126 126.000134283091 Theta(tan=-1.37638, x=-0.587787, y=0.809016): -1.376381920471\n    test 1052 126 125.954376379912 Mu(tan=-1.37869, x=-0.587141, y=0.809485): -1.376381920471\n    test 1053 126 126.000000000000 Chi(tan=-1.37638, x=-0.587785, y=0.809017): -1.376381920471\n    test 1054 126 125.939153905889 Xi(tan=-1.37946, x=-0.586926, y=0.809641): -1.376381920471\n\n    test 1055 133 132.808205632210 Phi(tan=-1.07959, x=-1, y=1.07959): -1.072368710025\n    test 1056 133 132.904148646694 Beta(tan=-1.07597, x=-1, y=1.07597): -1.072368710025\n    test 1057 133 133.000115216221 Theta(tan=-1.07236, x=-1, y=1.07236): -1.072368710025\n    test 1058 133 132.952124558388 Mu(tan=-1.07417, x=-0.681387, y=0.731923), iteration=2: -1.072368710025\n    test 1059 133 133.000000000000 Chi(tan=-1.07237, x=-0.681998, y=0.731354): -1.072368710025\n    test 1060 133 132.936146061572 Xi(tan=-1.07477, x=-1.36848, y=1.4708), iteration=2: -1.072368710025\n\n    test 1061 133 132.808205632210 Phi(tan=-1.07959, x=-0.679546, y=0.733633): -1.072368710025\n    test 1062 133 132.904148646694 Beta(tan=-1.07597, x=-0.680774, y=0.732494): -1.072368710025\n    test 1063 133 133.000115216221 Theta(tan=-1.07236, x=-0.682, y=0.731352): -1.072368710025\n    test 1064 133 132.952124558388 Mu(tan=-1.07417, x=-0.681387, y=0.731923): -1.072368710025\n    test 1065 133 133.000000000000 Chi(tan=-1.07237, x=-0.681998, y=0.731354): -1.072368710025\n    test 1066 133 132.936146061572 Xi(tan=-1.07477, x=-0.681183, y=0.732113): -1.072368710025\n\n    test 1067 140 139.810477575926 Phi(tan=-0.844752, x=-1, y=0.844752): -0.839099631177\n    test 1068 140 139.905309888599 Beta(tan=-0.84192, x=-1, y=0.84192): -0.839099631177\n    test 1069 140 140.000087948921 Theta(tan=-0.839097, x=-1, y=0.839097): -0.839099631177\n    test 1070 140 139.952715856955 Mu(tan=-0.840507, x=-0.765514, y=0.64342), iteration=2: -0.839099631177\n    test 1071 140 140.000000000000 Chi(tan=-0.8391, x=-0.766044, y=0.642788): -0.839099631177\n    test 1072 140 139.936929981390 Xi(tan=-0.840977, x=-1.53755, y=1.29304), iteration=2: -0.839099631177\n\n    test 1073 140 139.810477575926 Phi(tan=-0.844752, x=-0.763914, y=0.645318): -0.839099631177\n    test 1074 140 139.905309888599 Beta(tan=-0.84192, x=-0.764981, y=0.644053): -0.839099631177\n    test 1075 140 140.000087948921 Theta(tan=-0.839097, x=-0.766045, y=0.642786): -0.839099631177\n    test 1076 140 139.952715856955 Mu(tan=-0.840507, x=-0.765514, y=0.64342): -0.839099631177\n    test 1077 140 140.000000000000 Chi(tan=-0.8391, x=-0.766044, y=0.642788): -0.839099631177\n    test 1078 140 139.936929981390 Xi(tan=-0.840977, x=-0.765336, y=0.64363): -0.839099631177\n\n    test 1079 147 146.824030870318 Phi(tan=-0.653783, x=-1, y=0.653783): -0.649407593198\n    test 1080 147 146.912104447745 Beta(tan=-0.651591, x=-1, y=0.651591): -0.649407593198\n    test 1081 147 147.000058627387 Theta(tan=-0.649406, x=-1, y=0.649406): -0.649407593198\n    test 1082 147 146.956118815411 Mu(tan=-0.650497, x=-0.838253, y=0.545281), iteration=2: -0.649407593198\n    test 1083 147 147.000000000000 Chi(tan=-0.649408, x=-0.838671, y=0.544639): -0.649407593198\n    test 1084 147 146.941464815429 Xi(tan=-0.650861, x=-1.68375, y=1.09589), iteration=3: -0.649407593198\n\n    test 1085 147 146.824030870318 Phi(tan=-0.653783, x=-0.836994, y=0.547212): -0.649407593198\n    test 1086 147 146.912104447745 Beta(tan=-0.651591, x=-0.837834, y=0.545925): -0.649407593198\n    test 1087 147 147.000058627387 Theta(tan=-0.649406, x=-0.838671, y=0.544638): -0.649407593198\n    test 1088 147 146.956118815411 Mu(tan=-0.650497, x=-0.838253, y=0.545281): -0.649407593198\n    test 1089 147 147.000000000000 Chi(tan=-0.649408, x=-0.838671, y=0.544639): -0.649407593198\n    test 1090 147 146.941464815429 Xi(tan=-0.650861, x=-0.838114, y=0.545496): -0.649407593198\n\n    test 1091 154 153.848086974871 Phi(tan=-0.491019, x=-1, y=0.491019): -0.487732588566\n    test 1092 154 153.924138158817 Beta(tan=-0.489373, x=-1, y=0.489373): -0.487732588566\n    test 1093 154 154.000032789582 Theta(tan=-0.487732, x=-1, y=0.487732): -0.487732588566\n    test 1094 154 153.962134341087 Mu(tan=-0.488551, x=-0.898504, y=0.438965), iteration=3: -0.487732588566\n    test 1095 154 154.000000000000 Chi(tan=-0.487733, x=-0.898794, y=0.438371): -0.487732588566\n    test 1096 154 153.949485950322 Xi(tan=-0.488824, x=-1.80488, y=0.88227), iteration=2: -0.487732588566\n\n    test 1097 154 153.848086974871 Phi(tan=-0.491019, x=-0.897629, y=0.440753): -0.487732588566\n    test 1098 154 153.924138158817 Beta(tan=-0.489373, x=-0.898213, y=0.439561): -0.487732588566\n    test 1099 154 154.000032789582 Theta(tan=-0.487732, x=-0.898794, y=0.438371): -0.487732588566\n    test 1100 154 153.962134341087 Mu(tan=-0.488551, x=-0.898504, y=0.438965): -0.487732588566\n    test 1101 154 154.000000000000 Chi(tan=-0.487733, x=-0.898794, y=0.438371): -0.487732588566\n    test 1102 154 153.949485950322 Xi(tan=-0.488824, x=-0.898407, y=0.439163): -0.487732588566\n\n    test 1103 161 160.881232023490 Phi(tan=-0.346648, x=-1, y=0.346648): -0.344327613290\n    test 1104 161 160.940701543262 Beta(tan=-0.345486, x=-1, y=0.345486): -0.344327613290\n    test 1105 161 161.000014139979 Theta(tan=-0.344327, x=-1, y=0.344327): -0.344327613290\n    test 1106 161 160.970406812614 Mu(tan=-0.344905, x=-0.94535, y=0.326056), iteration=2: -0.344327613290\n    test 1107 161 161.000000000000 Chi(tan=-0.344328, x=-0.945519, y=0.325568): -0.344327613290\n    test 1108 161 160.960519598812 Xi(tan=-0.345099, x=-1.89908, y=0.655369), iteration=3: -0.344327613290\n\n    test 1109 161 160.881232023490 Phi(tan=-0.346648, x=-0.944842, y=0.327527): -0.344327613290\n    test 1110 161 160.940701543262 Beta(tan=-0.345486, x=-0.945181, y=0.326547): -0.344327613290\n    test 1111 161 161.000014139979 Theta(tan=-0.344327, x=-0.945519, y=0.325568): -0.344327613290\n    test 1112 161 160.970406812614 Mu(tan=-0.344905, x=-0.94535, y=0.326056): -0.344327613290\n    test 1113 161 161.000000000000 Chi(tan=-0.344328, x=-0.945519, y=0.325568): -0.344327613290\n    test 1114 161 160.960519598812 Xi(tan=-0.345099, x=-0.945294, y=0.32622): -0.344327613290\n\n    test 1115 168 167.921497152166 Phi(tan=-0.213989, x=-1, y=0.213989): -0.212556561670\n    test 1116 168 167.960810661508 Beta(tan=-0.213272, x=-1, y=0.213272): -0.212556561670\n    test 1117 168 168.000003811668 Theta(tan=-0.212556, x=-1, y=0.212556): -0.212556561670\n    test 1118 168 167.980444790381 Mu(tan=-0.212913, x=-0.978077, y=0.208246), iteration=3: -0.212556561670\n    test 1119 168 168.000000000000 Chi(tan=-0.212557, x=-0.978148, y=0.207912): -0.212556561670\n    test 1120 168 167.973910295272 Xi(tan=-0.213033, x=-1.96489, y=0.418585), iteration=2: -0.212556561670\n\n    test 1121 168 167.921497152166 Phi(tan=-0.213989, x=-0.977862, y=0.209252): -0.212556561670\n    test 1122 168 167.960810661508 Beta(tan=-0.213272, x=-0.978005, y=0.208581): -0.212556561670\n    test 1123 168 168.000003811668 Theta(tan=-0.212556, x=-0.978148, y=0.207912): -0.212556561670\n    test 1124 168 167.980444790381 Mu(tan=-0.212913, x=-0.978077, y=0.208246): -0.212556561670\n    test 1125 168 168.000000000000 Chi(tan=-0.212557, x=-0.978148, y=0.207912): -0.212556561670\n    test 1126 168 167.973910295272 Xi(tan=-0.213033, x=-0.978053, y=0.208357): -0.212556561670\n\n    test 1127 175 174.966475344628 Phi(tan=-0.0880783, x=-1, y=0.0880783): -0.087488663526\n    test 1128 175 174.983265532727 Beta(tan=-0.087783, x=-1, y=0.087783): -0.087488663526\n    test 1129 175 175.000000286043 Theta(tan=-0.0874887, x=-1, y=0.0874887): -0.087488663526\n    test 1130 175 174.991650204039 Mu(tan=-0.0876355, x=-0.996182, y=0.0873009), iteration=3: -0.087488663526\n    test 1131 175 175.000000000000 Chi(tan=-0.0874887, x=-0.996195, y=0.0871557): -0.087488663526\n    test 1132 175 174.988859821813 Xi(tan=-0.0876846, x=-2.0013, y=0.175483), iteration=2: -0.087488663526\n\n    test 1133 175 174.966475344628 Phi(tan=-0.0880783, x=-0.996144, y=0.0877386): -0.087488663526\n    test 1134 175 174.983265532727 Beta(tan=-0.087783, x=-0.996169, y=0.0874467): -0.087488663526\n    test 1135 175 175.000000286043 Theta(tan=-0.0874887, x=-0.996195, y=0.0871557): -0.087488663526\n    test 1136 175 174.991650204039 Mu(tan=-0.0876355, x=-0.996182, y=0.0873009): -0.087488663526\n    test 1137 175 175.000000000000 Chi(tan=-0.0874887, x=-0.996195, y=0.0871557): -0.087488663526\n    test 1138 175 174.988859821813 Xi(tan=-0.0876846, x=-0.996178, y=0.0873494): -0.087488663526\n\n    test 1139 182 182.013467917640 Phi(tan=0.0351561, x=-1, y=-0.0351561): 0.034920769492\n    test 1140 182 182.006722669522 Beta(tan=0.0350382, x=-1, y=-0.0350382): 0.034920769492\n    test 1141 182 181.999999981575 Theta(tan=0.0349208, x=-1, y=-0.0349208): 0.034920769492\n    test 1142 182 182.003354287313 Mu(tan=0.0349794, x=-0.999389, y=-0.034958), iteration=3: 0.034920769492\n    test 1143 182 182.000000000000 Chi(tan=0.0349208, x=-0.999391, y=-0.0348995): 0.034920769492\n    test 1144 182 182.004475259781 Xi(tan=0.034999, x=-2.00775, y=-0.0702692), iteration=2: 0.034920769492\n\n    test 1145 182 182.013467917640 Phi(tan=0.0351561, x=-0.999383, y=-0.0351344): 0.034920769492\n    test 1146 182 182.006722669522 Beta(tan=0.0350382, x=-0.999387, y=-0.0350168): 0.034920769492\n    test 1147 182 181.999999981575 Theta(tan=0.0349208, x=-0.999391, y=-0.0348995): 0.034920769492\n    test 1148 182 182.003354287313 Mu(tan=0.0349794, x=-0.999389, y=-0.034958): 0.034920769492\n    test 1149 182 182.000000000000 Chi(tan=0.0349208, x=-0.999391, y=-0.0348995): 0.034920769492\n    test 1150 182 182.004475259781 Xi(tan=0.034999, x=-0.999388, y=-0.0349776): 0.034920769492\n\n    test 1151 189 189.059651130185 Phi(tan=0.159452, x=-1, y=-0.159452): 0.158384440325\n    test 1152 189 189.029777127642 Beta(tan=0.158917, x=-1, y=-0.158917): 0.158384440325\n    test 1153 189 188.999998360327 Theta(tan=0.158384, x=-1, y=-0.158384): 0.158384440325\n    test 1154 189 189.014858030843 Mu(tan=0.15865, x=-0.987648, y=-0.156691), iteration=2: 0.158384440325\n    test 1155 189 189.000000000000 Chi(tan=0.158384, x=-0.987688, y=-0.156434): 0.158384440325\n    test 1156 189 189.019823164695 Xi(tan=0.158739, x=-1.98414, y=-0.31496), iteration=3: 0.158384440325\n\n    test 1157 189 189.059651130185 Phi(tan=0.159452, x=-0.987525, y=-0.157463): 0.158384440325\n    test 1158 189 189.029777127642 Beta(tan=0.158917, x=-0.987607, y=-0.156948): 0.158384440325\n    test 1159 189 188.999998360327 Theta(tan=0.158384, x=-0.987688, y=-0.156434): 0.158384440325\n    test 1160 189 189.014858030843 Mu(tan=0.15865, x=-0.987648, y=-0.156691): 0.158384440325\n    test 1161 189 189.000000000000 Chi(tan=0.158384, x=-0.987688, y=-0.156434): 0.158384440325\n    test 1162 189 189.019823164695 Xi(tan=0.158739, x=-0.987634, y=-0.156776): 0.158384440325\n\n    test 1163 196 196.102251517048 Phi(tan=0.288678, x=-1, y=-0.288678): 0.286745385759\n    test 1164 196 196.051048664417 Beta(tan=0.28771, x=-1, y=-0.28771): 0.286745385759\n    test 1165 196 195.999991274014 Theta(tan=0.286745, x=-1, y=-0.286745): 0.286745385759\n    test 1166 196 196.025474578648 Mu(tan=0.287227, x=-0.961139, y=-0.276065), iteration=3: 0.286745385759\n    test 1167 196 196.000000000000 Chi(tan=0.286745, x=-0.961262, y=-0.275637): 0.286745385759\n    test 1168 196 196.033986378622 Xi(tan=0.287387, x=-1.93083, y=-0.554895), iteration=3: 0.286745385759\n\n    test 1169 196 196.102251517048 Phi(tan=0.288678, x=-0.960768, y=-0.277352): 0.286745385759\n    test 1170 196 196.051048664417 Beta(tan=0.28771, x=-0.961016, y=-0.276494): 0.286745385759\n    test 1171 196 195.999991274014 Theta(tan=0.286745, x=-0.961262, y=-0.275637): 0.286745385759\n    test 1172 196 196.025474578648 Mu(tan=0.287227, x=-0.961139, y=-0.276065): 0.286745385759\n    test 1173 196 196.000000000000 Chi(tan=0.286745, x=-0.961262, y=-0.275637): 0.286745385759\n    test 1174 196 196.033986378622 Xi(tan=0.287387, x=-0.961098, y=-0.276208): 0.286745385759\n\n    test 1175 203 203.138717708106 Phi(tan=0.427335, x=-1, y=-0.427335): 0.424474816210\n    test 1176 203 203.069266243319 Beta(tan=0.425902, x=-1, y=-0.425902): 0.424474816210\n    test 1177 203 202.999976212498 Theta(tan=0.424474, x=-1, y=-0.424474): 0.424474816210\n    test 1178 203 203.034570842744 Mu(tan=0.425187, x=-0.920269, y=-0.391286), iteration=3: 0.424474816210\n    test 1179 203 203.000000000000 Chi(tan=0.424475, x=-0.920505, y=-0.390731): 0.424474816210\n    test 1180 203 203.046119781391 Xi(tan=0.425425, x=-1.84864, y=-0.786459), iteration=3: 0.424474816210\n\n    test 1181 203 203.138717708106 Phi(tan=0.427335, x=-0.919556, y=-0.392959): 0.424474816210\n    test 1182 203 203.069266243319 Beta(tan=0.425902, x=-0.920032, y=-0.391844): 0.424474816210\n    test 1183 203 202.999976212498 Theta(tan=0.424474, x=-0.920505, y=-0.390731): 0.424474816210\n    test 1184 203 203.034570842744 Mu(tan=0.425187, x=-0.920269, y=-0.391286): 0.424474816210\n    test 1185 203 203.000000000000 Chi(tan=0.424475, x=-0.920505, y=-0.390731): 0.424474816210\n    test 1186 203 203.046119781391 Xi(tan=0.425425, x=-0.92019, y=-0.391472): 0.424474816210\n\n    test 1187 210 210.166876834292 Phi(tan=0.58124, x=-1, y=-0.58124): 0.577350269190\n    test 1188 210 210.083345266050 Beta(tan=0.579291, x=-1, y=-0.579291): 0.577350269190\n    test 1189 210 209.999953141624 Theta(tan=0.577349, x=-1, y=-0.577349): 0.577350269190\n    test 1190 210 210.041605671429 Mu(tan=0.578319, x=-0.865662, y=-0.500629), iteration=3: 0.577350269190\n    test 1191 210 210.000000000000 Chi(tan=0.57735, x=-0.866025, y=-0.5): 0.577350269190\n    test 1192 210 210.055501367888 Xi(tan=0.578643, x=-1.73885, y=-1.00617), iteration=3: 0.577350269190\n\n    test 1193 210 210.166876834292 Phi(tan=0.58124, x=-0.864565, y=-0.50252): 0.577350269190\n    test 1194 210 210.083345266050 Beta(tan=0.579291, x=-0.865297, y=-0.501259): 0.577350269190\n    test 1195 210 209.999953141624 Theta(tan=0.577349, x=-0.866026, y=-0.499999): 0.577350269190\n    test 1196 210 210.041605671429 Mu(tan=0.578319, x=-0.865662, y=-0.500629): 0.577350269190\n    test 1197 210 210.000000000000 Chi(tan=0.57735, x=-0.866025, y=-0.5): 0.577350269190\n    test 1198 210 210.055501367888 Xi(tan=0.578643, x=-0.865541, y=-0.500839): 0.577350269190\n\n    test 1199 217 217.185065085003 Phi(tan=0.758631, x=-1, y=-0.758631): 0.753554050103\n    test 1200 217 217.092452537420 Beta(tan=0.756087, x=-1, y=-0.756087): 0.753554050103\n    test 1201 217 216.999924718107 Theta(tan=0.753552, x=-1, y=-0.753552): 0.753554050103\n    test 1202 217 217.046162172363 Mu(tan=0.754818, x=-0.79815, y=-0.602458), iteration=2: 0.753554050103\n    test 1203 217 217.000000000000 Chi(tan=0.753554, x=-0.798636, y=-0.601815): 0.753554050103\n    test 1204 217 217.061575411936 Xi(tan=0.75524, x=-1.60314, y=-1.21076), iteration=3: 0.753554050103\n\n    test 1205 217 217.185065085003 Phi(tan=0.758631, x=-0.796687, y=-0.604391): 0.753554050103\n    test 1206 217 217.092452537420 Beta(tan=0.756087, x=-0.797663, y=-0.603103): 0.753554050103\n    test 1207 217 216.999924718107 Theta(tan=0.753552, x=-0.798636, y=-0.601814): 0.753554050103\n    test 1208 217 217.046162172363 Mu(tan=0.754818, x=-0.79815, y=-0.602458): 0.753554050103\n    test 1209 217 217.000000000000 Chi(tan=0.753554, x=-0.798636, y=-0.601815): 0.753554050103\n    test 1210 217 217.061575411936 Xi(tan=0.75524, x=-0.797988, y=-0.602673): 0.753554050103\n\n    test 1211 224 224.192224339246 Phi(tan=0.972193, x=-1, y=-0.972193): 0.965688774807\n    test 1212 224 224.096054985813 Beta(tan=0.968934, x=-1, y=-0.968934): 0.965688774807\n    test 1213 224 223.999895821294 Theta(tan=0.965685, x=-1, y=-0.965685): 0.965688774807\n    test 1214 224 224.047972230974 Mu(tan=0.967308, x=-0.718758, y=-0.69526), iteration=2: 0.965688774807\n    test 1215 224 224.000000000000 Chi(tan=0.965689, x=-0.71934, y=-0.694658): 0.965688774807\n    test 1216 224 224.063985091722 Xi(tan=0.967849, x=-1.44358, y=-1.39717), iteration=3: 0.965688774807\n\n    test 1217 224 224.192224339246 Phi(tan=0.972193, x=-0.717005, y=-0.697068): 0.965688774807\n    test 1218 224 224.096054985813 Beta(tan=0.968934, x=-0.718174, y=-0.695863): 0.965688774807\n    test 1219 224 223.999895821294 Theta(tan=0.965685, x=-0.719341, y=-0.694657): 0.965688774807\n    test 1220 224 224.047972230974 Mu(tan=0.967308, x=-0.718758, y=-0.69526): 0.965688774807\n    test 1221 224 224.000000000000 Chi(tan=0.965689, x=-0.71934, y=-0.694658): 0.965688774807\n    test 1222 224 224.063985091722 Xi(tan=0.967849, x=-0.718564, y=-0.695461): 0.965688774807\n\n    test 1223 231 231.187959693265 Phi(tan=1.24321, x=-1, y=-1.24321): 1.234897156535\n    test 1224 231 231.093949439927 Beta(tan=1.23905, x=-1, y=-1.23905): 1.234897156535\n    test 1225 231 230.999872507121 Theta(tan=1.23489, x=-1, y=-1.23489): 1.234897156535\n    test 1226 231 231.046931828803 Mu(tan=1.23697, x=-0.628684, y=-0.777661), iteration=3: 1.234897156535\n    test 1227 231 231.000000000000 Chi(tan=1.2349, x=-0.62932, y=-0.777146): 1.234897156535\n    test 1228 231 231.062592734966 Xi(tan=1.23766, x=-1.26259, y=-1.56265), iteration=3: 1.234897156535\n\n    test 1229 231 231.187959693265 Phi(tan=1.24321, x=-0.626768, y=-0.779206): 1.234897156535\n    test 1230 231 231.093949439927 Beta(tan=1.23905, x=-0.628045, y=-0.778177): 1.234897156535\n    test 1231 231 230.999872507120 Theta(tan=1.23489, x=-0.629322, y=-0.777145): 1.234897156535\n    test 1232 231 231.046931828803 Mu(tan=1.23697, x=-0.628684, y=-0.777661): 1.234897156535\n    test 1233 231 231.000000000000 Chi(tan=1.2349, x=-0.62932, y=-0.777146): 1.234897156535\n    test 1234 231 231.062592734966 Xi(tan=1.23766, x=-0.628471, y=-0.777833): 1.234897156535\n\n    test 1235 238 238.172555759873 Phi(tan=1.61111, x=-1, y=-1.61111): 1.600334529041\n    test 1236 238 238.086272148408 Beta(tan=1.60571, x=-1, y=-1.60571): 1.600334529041\n    test 1237 238 237.999860628148 Theta(tan=1.60033, x=-1, y=-1.60033): 1.600334529041\n    test 1238 238 238.043106397552 Mu(tan=1.60302, x=-0.529281, y=-0.848447), iteration=2: 1.600334529041\n    test 1239 238 238.000000000000 Chi(tan=1.60033, x=-0.529919, y=-0.848048): 1.600334529041\n    test 1240 238 238.057486709388 Xi(tan=1.60391, x=-1.06289, y=-1.70478), iteration=3: 1.600334529041\n\n    test 1241 238 238.172555759873 Phi(tan=1.61111, x=-0.527363, y=-0.84964): 1.600334529041\n    test 1242 238 238.086272148408 Beta(tan=1.60571, x=-0.528642, y=-0.848845): 1.600334529041\n    test 1243 238 237.999860628148 Theta(tan=1.60033, x=-0.529921, y=-0.848047): 1.600334529041\n    test 1244 238 238.043106397552 Mu(tan=1.60302, x=-0.529281, y=-0.848447): 1.600334529041\n    test 1245 238 238.000000000000 Chi(tan=1.60033, x=-0.529919, y=-0.848048): 1.600334529041\n    test 1246 238 238.057486709388 Xi(tan=1.60391, x=-0.529068, y=-0.848579): 1.600334529041\n\n    test 1247 245 245.146952468013 Phi(tan=2.15895, x=-1, y=-2.15895): 2.144506920510\n    test 1248 245 245.073488079777 Beta(tan=2.15171, x=-1, y=-2.15171): 2.144506920510\n    test 1249 245 244.999864442704 Theta(tan=2.14449, x=-1, y=-2.14449): 2.144506920510\n    test 1250 245 245.036726085420 Mu(tan=2.1481, x=-0.422037, y=-0.906578), iteration=3: 2.144506920510\n    test 1251 245 245.000000000000 Chi(tan=2.14451, x=-0.422618, y=-0.906308): 2.144506920510\n    test 1252 245 245.048974853160 Xi(tan=2.1493, x=-0.847475, y=-1.82148), iteration=2: 2.144506920510\n\n    test 1253 245 245.146952468013 Phi(tan=2.15895, x=-0.420292, y=-0.907389): 2.144506920510\n    test 1254 245 245.073488079777 Beta(tan=2.15171, x=-0.421455, y=-0.906849): 2.144506920510\n    test 1255 245 244.999864442704 Theta(tan=2.14449, x=-0.42262, y=-0.906307): 2.144506920510\n    test 1256 245 245.036726085420 Mu(tan=2.1481, x=-0.422037, y=-0.906578): 2.144506920510\n    test 1257 245 245.000000000000 Chi(tan=2.14451, x=-0.422618, y=-0.906308): 2.144506920510\n    test 1258 245 245.048974853160 Xi(tan=2.1493, x=-0.421843, y=-0.906669): 2.144506920510\n\n    test 1259 252 252.112683493851 Phi(tan=3.0984, x=-1, y=-3.0984): 3.077683537175\n    test 1260 252 252.056361244518 Beta(tan=3.08802, x=-1, y=-3.08802): 3.077683537175\n    test 1261 252 251.999885538511 Theta(tan=3.07766, x=-1, y=-3.07766): 3.077683537175\n    test 1262 252 252.028171414224 Mu(tan=3.08284, x=-0.308549, y=-0.951208), iteration=3: 3.077683537175\n    test 1263 252 252.000000000000 Chi(tan=3.07768, x=-0.309017, y=-0.951057): 3.077683537175\n    test 1264 252 252.037565143061 Xi(tan=3.08456, x=-0.619556, y=-1.91106), iteration=3: 3.077683537175\n\n    test 1265 252 252.112683493851 Phi(tan=3.0984, x=-0.307146, y=-0.951662): 3.077683537175\n    test 1266 252 252.056361244518 Beta(tan=3.08802, x=-0.308081, y=-0.95136): 3.077683537175\n    test 1267 252 251.999885538511 Theta(tan=3.07766, x=-0.309019, y=-0.951056): 3.077683537175\n    test 1268 252 252.028171414224 Mu(tan=3.08284, x=-0.308549, y=-0.951208): 3.077683537175\n    test 1269 252 252.000000000000 Chi(tan=3.07768, x=-0.309017, y=-0.951057): 3.077683537175\n    test 1270 252 252.037565143061 Xi(tan=3.08456, x=-0.308393, y=-0.951259): 3.077683537175\n\n    test 1271 259 259.071782282365 Phi(tan=5.17919, x=-1, y=-5.17919): 5.144554015970\n    test 1272 259 259.035908272116 Beta(tan=5.16182, x=-1, y=-5.16182): 5.144554015970\n    test 1273 259 258.999922323247 Theta(tan=5.14452, x=-1, y=-5.14452): 5.144554015970\n    test 1274 259 259.017950333560 Mu(tan=5.15317, x=-0.190501, y=-0.981687), iteration=3: 5.144554015970\n    test 1275 259 259.000000000000 Chi(tan=5.14455, x=-0.190809, y=-0.981627): 5.144554015970\n    test 1276 259 259.023934988471 Xi(tan=5.15605, x=-0.382508, y=-1.97223), iteration=3: 5.144554015970\n\n    test 1277 259 259.071782282365 Phi(tan=5.17919, x=-0.189579, y=-0.981865): 5.144554015970\n    test 1278 259 259.035908272116 Beta(tan=5.16182, x=-0.190194, y=-0.981747): 5.144554015970\n    test 1279 259 258.999922323247 Theta(tan=5.14452, x=-0.19081, y=-0.981627): 5.144554015970\n    test 1280 259 259.017950333560 Mu(tan=5.15317, x=-0.190501, y=-0.981687): 5.144554015970\n    test 1281 259 259.000000000000 Chi(tan=5.14455, x=-0.190809, y=-0.981627): 5.144554015970\n    test 1282 259 259.023934988471 Xi(tan=5.15605, x=-0.190399, y=-0.981707): 5.144554015970\n\n    test 1283 266 266.026661867451 Phi(tan=14.3969, x=-1, y=-14.3969): 14.300666256712\n    test 1284 266 266.013338229951 Beta(tan=14.3487, x=-1, y=-14.3487): 14.300666256712\n    test 1285 266 265.999970204566 Theta(tan=14.3006, x=-1, y=-14.3006): 14.300666256712\n    test 1286 266 266.006668111562 Mu(tan=14.3246, x=-0.0696404, y=-0.997572), iteration=3: 14.300666256712\n    test 1287 266 266.000000000000 Chi(tan=14.3007, x=-0.0697565, y=-0.997564): 14.300666256712\n    test 1288 266 266.008891093578 Xi(tan=14.3326, x=-0.139828, y=-2.00411), iteration=3: 14.300666256712\n\n    test 1289 266 266.026661867451 Phi(tan=14.3969, x=-0.0692923, y=-0.997596): 14.300666256712\n    test 1290 266 266.013338229951 Beta(tan=14.3487, x=-0.0695242, y=-0.99758): 14.300666256712\n    test 1291 266 265.999970204566 Theta(tan=14.3006, x=-0.069757, y=-0.997564): 14.300666256712\n    test 1292 266 266.006668111562 Mu(tan=14.3246, x=-0.0696404, y=-0.997572): 14.300666256712\n    test 1293 266 266.000000000000 Chi(tan=14.3007, x=-0.0697565, y=-0.997564): 14.300666256712\n    test 1294 266 266.008891093578 Xi(tan=14.3326, x=-0.0696017, y=-0.997575): 14.300666256712\n\n    test 1295 273 272.979975455720 Phi(tan=-19.2096, x=1.0, y=-19.2096): -19.081136687728\n    test 1296 273 272.989982200734 Beta(tan=-19.1452, x=1.0, y=-19.1452): -19.081136687728\n    test 1297 273 273.000022425845 Theta(tan=-19.081, x=1.0, y=-19.081): -19.081136687728\n    test 1298 273 272.994991833280 Mu(tan=-19.1131, x=0.0522487, y=-0.998634), iteration=2: -19.081136687728\n    test 1299 273 273.000000000000 Chi(tan=-19.0811, x=0.052336, y=-0.99863): -19.081136687728\n    test 1300 273 272.993322244137 Xi(tan=-19.1238, x=0.104908, y=-2.00624), iteration=2: -19.081136687728\n\n    test 1301 273 272.979975455720 Phi(tan=-19.2096, x=0.0519869, y=-0.998648): -19.081136687728\n    test 1302 273 272.989982200734 Beta(tan=-19.1452, x=0.0521614, y=-0.998639): -19.081136687728\n    test 1303 273 273.000022425845 Theta(tan=-19.081, x=0.0523363, y=-0.99863): -19.081136687728\n    test 1304 273 272.994991833280 Mu(tan=-19.1131, x=0.0522487, y=-0.998634): -19.081136687728\n    test 1305 273 273.000000000000 Chi(tan=-19.0811, x=0.052336, y=-0.99863): -19.081136687728\n    test 1306 273 272.993322244137 Xi(tan=-19.1238, x=0.0522196, y=-0.998636): -19.081136687728\n\n    test 1307 280 279.934465137513 Phi(tan=-5.70946, x=1.0, y=-5.70946): -5.671281819618\n    test 1308 280 279.967216473785 Beta(tan=-5.69032, x=1.0, y=-5.69032): -5.671281819618\n    test 1309 280 280.000071376516 Theta(tan=-5.67124, x=1.0, y=-5.67124): -5.671281819618\n    test 1310 280 279.983611509112 Mu(tan=-5.68078, x=0.173366, y=-0.984857), iteration=3: -5.671281819618\n    test 1311 280 280.000000000000 Chi(tan=-5.67128, x=0.173648, y=-0.984808): -5.671281819618\n    test 1312 280 279.978147657318 Xi(tan=-5.68396, x=0.348101, y=-1.97859), iteration=3: -5.671281819618\n\n    test 1313 280 279.934465137513 Phi(tan=-5.70946, x=0.172522, y=-0.985006): -5.671281819618\n    test 1314 280 279.967216473785 Beta(tan=-5.69032, x=0.173085, y=-0.984907): -5.671281819618\n    test 1315 280 280.000071376516 Theta(tan=-5.67124, x=0.173649, y=-0.984808): -5.671281819618\n    test 1316 280 279.983611509112 Mu(tan=-5.68078, x=0.173366, y=-0.984857): -5.671281819618\n    test 1317 280 280.000000000000 Chi(tan=-5.67128, x=0.173648, y=-0.984808): -5.671281819618\n    test 1318 280 279.978147657318 Xi(tan=-5.68396, x=0.173273, y=-0.984874): -5.671281819618\n\n    test 1319 287 286.892806262875 Phi(tan=-3.29287, x=1.0, y=-3.29287): -3.270852618484\n    test 1320 287 286.946383391473 Beta(tan=-3.28183, x=1.0, y=-3.28183): -3.270852618484\n    test 1321 287 287.000110089905 Theta(tan=-3.27083, x=1.0, y=-3.27083): -3.270852618484\n    test 1322 287 286.973199933024 Mu(tan=-3.27633, x=0.291924, y=-0.956441), iteration=2: -3.270852618484\n    test 1323 287 287.000000000000 Chi(tan=-3.27085, x=0.292372, y=-0.956305): -3.270852618484\n    test 1324 287 286.964263697434 Xi(tan=-3.27816, x=0.586171, y=-1.92156), iteration=3: -3.270852618484\n\n    test 1325 287 286.892806262875 Phi(tan=-3.29287, x=0.290582, y=-0.95685): -3.270852618484\n    test 1326 287 286.946383391473 Beta(tan=-3.28183, x=0.291477, y=-0.956578): -3.270852618484\n    test 1327 287 287.000110089905 Theta(tan=-3.27083, x=0.292374, y=-0.956304): -3.270852618484\n    test 1328 287 286.973199933024 Mu(tan=-3.27633, x=0.291924, y=-0.956441): -3.270852618484\n    test 1329 287 287.000000000000 Chi(tan=-3.27085, x=0.292372, y=-0.956305): -3.270852618484\n    test 1330 287 286.964263697434 Xi(tan=-3.27816, x=0.291775, y=-0.956487): -3.270852618484\n\n    test 1331 294 293.857455069612 Phi(tan=-2.26116, x=1.0, y=-2.26116): -2.246036773904\n    test 1332 294 293.928713955385 Beta(tan=-2.25358, x=1.0, y=-2.25358): -2.246036773904\n    test 1333 294 294.000133599673 Theta(tan=-2.24602, x=1.0, y=-2.24602): -2.246036773904\n    test 1334 294 293.964373479294 Mu(tan=-2.2498, x=0.406169, y=-0.913798), iteration=2: -2.246036773904\n    test 1335 294 294.000000000000 Chi(tan=-2.24604, x=0.406737, y=-0.913545): -2.246036773904\n    test 1336 294 293.952491818284 Xi(tan=-2.25106, x=0.815604, y=-1.83597), iteration=3: -2.246036773904\n\n    test 1337 294 293.857455069612 Phi(tan=-2.26116, x=0.404463, y=-0.914555): -2.246036773904\n    test 1338 294 293.928713955385 Beta(tan=-2.25358, x=0.4056, y=-0.914051): -2.246036773904\n    test 1339 294 294.000133599673 Theta(tan=-2.24602, x=0.406739, y=-0.913545): -2.246036773904\n    test 1340 294 293.964373479294 Mu(tan=-2.2498, x=0.406169, y=-0.913798): -2.246036773904\n    test 1341 294 294.000000000000 Chi(tan=-2.24604, x=0.406737, y=-0.913545): -2.246036773904\n    test 1342 294 293.952491818284 Xi(tan=-2.25106, x=0.405979, y=-0.913882): -2.246036773904\n\n    test 1343 301 300.830507114227 Phi(tan=-1.67549, x=1.0, y=-1.67549): -1.664279482351\n    test 1344 301 300.915256249596 Beta(tan=-1.66987, x=1.0, y=-1.66987): -1.664279482351\n    test 1345 301 301.000139857505 Theta(tan=-1.66427, x=1.0, y=-1.66427): -1.664279482351\n    test 1346 301 300.957655989828 Mu(tan=-1.66707, x=0.514404, y=-0.857548), iteration=3: -1.664279482351\n    test 1347 301 301.000000000000 Chi(tan=-1.66428, x=0.515038, y=-0.857167): -1.664279482351\n    test 1348 301 300.943530549480 Xi(tan=-1.668, x=1.033, y=-1.72305), iteration=3: -1.664279482351\n\n    test 1349 301 300.830507114227 Phi(tan=-1.67549, x=0.5125, y=-0.858687): -1.664279482351\n    test 1350 301 300.915256249596 Beta(tan=-1.66987, x=0.51377, y=-0.857928): -1.664279482351\n    test 1351 301 301.000139857505 Theta(tan=-1.66427, x=0.51504, y=-0.857166): -1.664279482351\n    test 1352 301 300.957655989828 Mu(tan=-1.66707, x=0.514404, y=-0.857548): -1.664279482351\n    test 1353 301 301.000000000000 Chi(tan=-1.66428, x=0.515038, y=-0.857167): -1.664279482351\n    test 1354 301 300.943530549480 Xi(tan=-1.668, x=0.514193, y=-0.857674): -1.664279482351\n\n    test 1355 308 307.813573905031 Phi(tan=-1.28856, x=1.0, y=-1.28856): -1.279941632193\n    test 1356 308 307.906813571405 Beta(tan=-1.28424, x=1.0, y=-1.28424): -1.279941632193\n    test 1357 308 308.000130012564 Theta(tan=-1.27994, x=1.0, y=-1.27994): -1.279941632193\n    test 1358 308 307.953447779688 Mu(tan=-1.28209, x=0.615021, y=-0.788511), iteration=3: -1.279941632193\n    test 1359 308 308.000000000000 Chi(tan=-1.27994, x=0.615661, y=-0.788011): -1.279941632193\n    test 1360 308 307.937914195662 Xi(tan=-1.2828, x=1.23514, y=-1.58444), iteration=2: -1.279941632193\n\n    test 1361 308 307.813573905031 Phi(tan=-1.28856, x=0.613094, y=-0.79001): -1.279941632193\n    test 1362 308 307.906813571405 Beta(tan=-1.28424, x=0.614379, y=-0.789011): -1.279941632193\n    test 1363 308 308.000130012564 Theta(tan=-1.27994, x=0.615663, y=-0.788009): -1.279941632193\n    test 1364 308 307.953447779688 Mu(tan=-1.28209, x=0.615021, y=-0.788511): -1.279941632193\n    test 1365 308 308.000000000000 Chi(tan=-1.27994, x=0.615661, y=-0.788011): -1.279941632193\n    test 1366 308 307.937914195662 Xi(tan=-1.2828, x=0.614807, y=-0.788677): -1.279941632193\n\n    test 1367 315 314.807684778155 Phi(tan=-1.00674, x=1.0, y=-1.00674): -1.000000000000\n    test 1368 315 314.903895845383 Beta(tan=-1.00336, x=1.0, y=-1.00336): -1.000000000000\n    test 1369 315 315.000107996571 Theta(tan=-0.999996, x=1.0, y=-0.999996): -1.000000000000\n    test 1370 315 314.952001570934 Mu(tan=-1.00168, x=0.706514, y=-0.707699), iteration=2: -1.000000000000\n    test 1371 315 315.000000000000 Chi(tan=-1, x=0.707107, y=-0.707107): -1.000000000000\n    test 1372 315 314.935980653019 Xi(tan=-1.00224, x=1.41898, y=-1.42215), iteration=3: -1.000000000000\n\n    test 1373 315 314.807684778155 Phi(tan=-1.00674, x=0.704729, y=-0.709476): -1.000000000000\n    test 1374 315 314.903895845383 Beta(tan=-1.00336, x=0.70592, y=-0.708292): -1.000000000000\n    test 1375 315 315.000107996571 Theta(tan=-0.999996, x=0.707108, y=-0.707105): -1.000000000000\n    test 1376 315 314.952001570934 Mu(tan=-1.00168, x=0.706514, y=-0.707699): -1.000000000000\n    test 1377 315 315.000000000000 Chi(tan=-1, x=0.707107, y=-0.707107): -1.000000000000\n    test 1378 315 314.935980653019 Xi(tan=-1.00224, x=0.706316, y=-0.707896): -1.000000000000\n\n    test 1379 322 321.813220359944 Phi(tan=-0.786549, x=1.0, y=-0.786549): -0.781285626507\n    test 1380 322 321.906687396462 Beta(tan=-0.783912, x=1.0, y=-0.783912): -0.781285626507\n    test 1381 322 322.000079515502 Theta(tan=-0.781283, x=1.0, y=-0.781283): -0.781285626507\n    test 1382 322 321.953406847958 Mu(tan=-0.782596, x=0.78751, y=-0.616302), iteration=2: -0.781285626507\n    test 1383 322 322.000000000000 Chi(tan=-0.781286, x=0.788011, y=-0.615661): -0.781285626507\n    test 1384 322 321.937850353113 Xi(tan=-0.783034, x=1.58176, y=-1.23857), iteration=3: -0.781285626507\n\n    test 1385 322 321.813220359944 Phi(tan=-0.786549, x=0.786, y=-0.618227): -0.781285626507\n    test 1386 322 321.906687396462 Beta(tan=-0.783912, x=0.787007, y=-0.616944): -0.781285626507\n    test 1387 322 322.000079515502 Theta(tan=-0.781283, x=0.788012, y=-0.61566): -0.781285626507\n    test 1388 322 321.953406847957 Mu(tan=-0.782596, x=0.78751, y=-0.616302): -0.781285626507\n    test 1389 322 322.000000000000 Chi(tan=-0.781286, x=0.788011, y=-0.615661): -0.781285626507\n    test 1390 322 321.937850353113 Xi(tan=-0.783034, x=0.787342, y=-0.616516): -0.781285626507\n\n    test 1391 329 328.829882787345 Phi(tan=-0.604909, x=1.0, y=-0.604909): -0.600860619028\n    test 1392 329 328.915033437072 Beta(tan=-0.602881, x=1.0, y=-0.602881): -0.600860619028\n    test 1393 329 329.000050684665 Theta(tan=-0.600859, x=1.0, y=-0.600859): -0.600860619028\n    test 1394 329 328.957583708533 Mu(tan=-0.601869, x=0.856786, y=-0.515672), iteration=2: -0.600860619028\n    test 1395 329 329.000000000000 Chi(tan=-0.600861, x=0.857167, y=-0.515038): -0.600860619028\n    test 1396 329 328.943417809954 Xi(tan=-0.602205, x=1.72101, y=-1.0364), iteration=2: -0.600860619028\n\n    test 1397 329 328.829882787345 Phi(tan=-0.604909, x=0.855634, y=-0.517581): -0.600860619028\n    test 1398 329 328.915033437072 Beta(tan=-0.602881, x=0.856403, y=-0.516309): -0.600860619028\n    test 1399 329 329.000050684665 Theta(tan=-0.600859, x=0.857168, y=-0.515037): -0.600860619028\n    test 1400 329 328.957583708533 Mu(tan=-0.601869, x=0.856786, y=-0.515672): -0.600860619028\n    test 1401 329 329.000000000000 Chi(tan=-0.600861, x=0.857167, y=-0.515038): -0.600860619028\n    test 1402 329 328.943417809954 Xi(tan=-0.602205, x=0.856658, y=-0.515884): -0.600860619028\n\n    test 1403 336 335.856706115158 Phi(tan=-0.448229, x=1.0, y=-0.448229): -0.445228685309\n    test 1404 336 335.928446665868 Beta(tan=-0.446726, x=1.0, y=-0.446726): -0.445228685309\n    test 1405 336 336.000026626488 Theta(tan=-0.445228, x=1.0, y=-0.445228): -0.445228685309\n    test 1406 336 335.964286769667 Mu(tan=-0.445976, x=0.913292, y=-0.407306), iteration=2: -0.445228685309\n    test 1407 336 336.000000000000 Chi(tan=-0.445229, x=0.913545, y=-0.406737): -0.445228685309\n    test 1408 336 335.952356574339 Xi(tan=-0.446225, x=1.83461, y=-0.818652), iteration=2: -0.445228685309\n\n    test 1409 336 335.856706115158 Phi(tan=-0.448229, x=0.912525, y=-0.40902): -0.445228685309\n    test 1410 336 335.928446665868 Beta(tan=-0.446726, x=0.913037, y=-0.407877): -0.445228685309\n    test 1411 336 336.000026626488 Theta(tan=-0.445228, x=0.913546, y=-0.406736): -0.445228685309\n    test 1412 336 335.964286769667 Mu(tan=-0.445976, x=0.913292, y=-0.407306): -0.445228685309\n    test 1413 336 336.000000000000 Chi(tan=-0.445229, x=0.913545, y=-0.406737): -0.445228685309\n    test 1414 336 335.952356574339 Xi(tan=-0.446225, x=0.913207, y=-0.407496): -0.445228685309\n\n    test 1415 343 342.892108013861 Phi(tan=-0.307791, x=1.0, y=-0.307791): -0.305730681459\n    test 1416 343 342.946134198526 Beta(tan=-0.306759, x=1.0, y=-0.306759): -0.305730681459\n    test 1417 343 343.000010359231 Theta(tan=-0.30573, x=1.0, y=-0.30573): -0.305730681459\n    test 1418 343 342.973119094169 Mu(tan=-0.306244, x=0.956167, y=-0.29282), iteration=3: -0.305730681459\n    test 1419 343 343.000000000000 Chi(tan=-0.305731, x=0.956305, y=-0.292372): -0.305730681459\n    test 1420 343 342.964137610259 Xi(tan=-0.306415, x=1.92083, y=-0.588571), iteration=3: -0.305730681459\n\n    test 1421 343 342.892108013861 Phi(tan=-0.307791, x=0.955753, y=-0.294172): -0.305730681459\n    test 1422 343 342.946134198526 Beta(tan=-0.306759, x=0.956029, y=-0.293271): -0.305730681459\n    test 1423 343 343.000010359231 Theta(tan=-0.30573, x=0.956305, y=-0.292372): -0.305730681459\n    test 1424 343 342.973119094169 Mu(tan=-0.306244, x=0.956167, y=-0.29282): -0.305730681459\n    test 1425 343 343.000000000000 Chi(tan=-0.305731, x=0.956305, y=-0.292372): -0.305730681459\n    test 1426 343 342.964137610259 Xi(tan=-0.306415, x=0.956122, y=-0.29297): -0.305730681459\n\n    test 1427 350 349.933981060171 Phi(tan=-0.177515, x=1.0, y=-0.177515): -0.176326980708\n    test 1428 350 349.967043715347 Beta(tan=-0.17692, x=1.0, y=-0.17692): -0.176326980708\n    test 1429 350 350.000002236053 Theta(tan=-0.176327, x=1.0, y=-0.176327): -0.176326980708\n    test 1430 350 349.983555465918 Mu(tan=-0.176623, x=0.984758, y=-0.173931), iteration=3: -0.176326980708\n    test 1431 350 350.000000000000 Chi(tan=-0.176327, x=0.984808, y=-0.173648): -0.176326980708\n    test 1432 350 349.978060244759 Xi(tan=-0.176722, x=1.97833, y=-0.349613), iteration=2: -0.176326980708\n\n    test 1433 350 349.933981060171 Phi(tan=-0.177515, x=0.984607, y=-0.174783): -0.176326980708\n    test 1434 350 349.967043715347 Beta(tan=-0.17692, x=0.984708, y=-0.174215): -0.176326980708\n    test 1435 350 350.000002236053 Theta(tan=-0.176327, x=0.984808, y=-0.173648): -0.176326980708\n    test 1436 350 349.983555465918 Mu(tan=-0.176623, x=0.984758, y=-0.173931): -0.176326980708\n    test 1437 350 350.000000000000 Chi(tan=-0.176327, x=0.984808, y=-0.173648): -0.176326980708\n    test 1438 350 349.978060244759 Xi(tan=-0.176722, x=0.984741, y=-0.174025): -0.176326980708\n\n    test 1439 357 356.979818878824 Phi(tan=-0.052761, x=1.0, y=-0.052761): -0.052407779283\n    test 1440 357 356.989926321337 Beta(tan=-0.0525841, x=1.0, y=-0.0525841): -0.052407779283\n    test 1441 357 357.000000062090 Theta(tan=-0.0524078, x=1.0, y=-0.0524078): -0.052407779283\n    test 1442 357 356.994973705906 Mu(tan=-0.0524957, x=0.998625, y=-0.0524236), iteration=3: -0.052407779283\n    test 1443 357 357.000000000000 Chi(tan=-0.0524078, x=0.99863, y=-0.052336): -0.052407779283\n    test 1444 357 356.993293970223 Xi(tan=-0.0525251, x=2.00621, y=-0.105377), iteration=2: -0.052407779283\n\n    test 1445 357 356.979818878824 Phi(tan=-0.052761, x=0.998611, y=-0.0526877): -0.052407779283\n    test 1446 357 356.989926321337 Beta(tan=-0.0525841, x=0.99862, y=-0.0525115): -0.052407779283\n    test 1447 357 357.000000062090 Theta(tan=-0.0524078, x=0.99863, y=-0.052336): -0.052407779283\n    test 1448 357 356.994973705906 Mu(tan=-0.0524957, x=0.998625, y=-0.0524236): -0.052407779283\n    test 1449 357 357.000000000000 Chi(tan=-0.0524078, x=0.99863, y=-0.052336): -0.052407779283\n    test 1450 357 356.993293970223 Xi(tan=-0.0525251, x=0.998623, y=-0.0524528): -0.052407779283\n\n    test 1451  0 0.000000000000 Phi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 1452  0 0.000000000000 Beta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 1453  0 0.000000000000 Theta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 1454  0 0.000000000000 Mu(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 1455  0 0.000000000000 Chi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 1456  0 0.000000000000 Xi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n\n    test 1457  0 0.000000000000 Phi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 1458  0 0.000000000000 Beta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 1459  0 0.000000000000 Theta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 1460  0 0.000000000000 Mu(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 1461  0 0.000000000000 Chi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 1462  0 0.000000000000 Xi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n\n    test 1463  7 7.035013553420 Phi(tan=0.123405, x=1.0, y=0.123405): 0.122784560903\n    test 1464  7 7.011661662966 Beta(tan=0.122991, x=1.0, y=0.122991): 0.122784560903\n    test 1465  7 6.988385737369 Theta(tan=0.122579, x=1.0, y=0.122579): 0.122784560903\n    test 1466  7 7.000000000000 Mu(tan=0.122785, x=0.992546, y=0.121869): 0.122784560903\n    test 1467  7 6.988386512663 Chi(tan=0.122579, x=1.0, y=0.122579), iteration=3: 0.122784560903\n    test 1468  7 7.003880991951 Xi(tan=0.122853, x=1.99399, y=0.244968), iteration=3: 0.122784560903\n\n    test 1469  7 7.035013553420 Phi(tan=0.123405, x=0.992471, y=0.122476): 0.122784560903\n    test 1470  7 7.011661662966 Beta(tan=0.122991, x=0.992521, y=0.122071): 0.122784560903\n    test 1471  7 6.988385737369 Theta(tan=0.122579, x=0.992571, y=0.121668): 0.122784560903\n    test 1472  7 7.000000000000 Mu(tan=0.122785, x=0.992546, y=0.121869): 0.122784560903\n    test 1473  7 6.988386512663 Chi(tan=0.122579, x=0.992571, y=0.121668): 0.122784560903\n    test 1474  7 7.003880991951 Xi(tan=0.122853, x=0.992538, y=0.121937): 0.122784560903\n\n    test 1475 14 14.067929480939 Phi(tan=0.250588, x=1.0, y=0.250588): 0.249328002843\n    test 1476 14 14.022626357697 Beta(tan=0.249747, x=1.0, y=0.249747): 0.249328002843\n    test 1477 14 13.977457317809 Theta(tan=0.24891, x=1.0, y=0.24891): 0.249328002843\n    test 1478 14 14.000000000000 Mu(tan=0.249328, x=0.970296, y=0.241922): 0.249328002843\n    test 1479 14 13.977463246186 Chi(tan=0.24891, x=1.0, y=0.24891), iteration=3: 0.249328002843\n    test 1480 14 14.007530515250 Xi(tan=0.249468, x=1.94924, y=0.486272), iteration=3: 0.249328002843\n\n    test 1481 14 14.067929480939 Phi(tan=0.250588, x=0.970008, y=0.243072): 0.249328002843\n    test 1482 14 14.022626357697 Beta(tan=0.249747, x=0.9702, y=0.242305): 0.249328002843\n    test 1483 14 13.977457317809 Theta(tan=0.24891, x=0.970391, y=0.24154): 0.249328002843\n    test 1484 14 14.000000000000 Mu(tan=0.249328, x=0.970296, y=0.241922): 0.249328002843\n    test 1485 14 13.977463246186 Chi(tan=0.24891, x=0.970391, y=0.24154): 0.249328002843\n    test 1486 14 14.007530515250 Xi(tan=0.249468, x=0.970264, y=0.242049): 0.249328002843\n\n    test 1487 21 21.096778912148 Phi(tan=0.385803, x=1.0, y=0.385803): 0.383864035035\n    test 1488 21 21.032239504096 Beta(tan=0.38451, x=1.0, y=0.38451): 0.383864035035\n    test 1489 21 20.967860810199 Theta(tan=0.383221, x=1.0, y=0.383221): 0.383864035035\n    test 1490 21 21.000000000000 Mu(tan=0.383864, x=0.93358, y=0.358368): 0.383864035035\n    test 1491 21 20.967879349935 Chi(tan=0.383221, x=1.0, y=0.383221), iteration=3: 0.383864035035\n    test 1492 21 21.010731065364 Xi(tan=0.384079, x=1.87541, y=0.720305), iteration=2: 0.383864035035\n\n    test 1493 21 21.096778912148 Phi(tan=0.385803, x=0.932974, y=0.359944): 0.383864035035\n    test 1494 21 21.032239504096 Beta(tan=0.38451, x=0.933379, y=0.358893): 0.383864035035\n    test 1495 21 20.967860810199 Theta(tan=0.383221, x=0.933781, y=0.357844): 0.383864035035\n    test 1496 21 21.000000000000 Mu(tan=0.383864, x=0.93358, y=0.358368): 0.383864035035\n    test 1497 21 20.967879349935 Chi(tan=0.383221, x=0.933781, y=0.357845): 0.383864035035\n    test 1498 21 21.010731065364 Xi(tan=0.384079, x=0.933513, y=0.358543): 0.383864035035\n\n    test 1499 28 28.119841850563 Phi(tan=0.534395, x=1.0, y=0.534395): 0.531709431661\n    test 1500 28 28.039928546523 Beta(tan=0.532604, x=1.0, y=0.532604): 0.531709431661\n    test 1501 28 27.960164870301 Theta(tan=0.530818, x=1.0, y=0.530818): 0.531709431661\n    test 1502 28 28.000000000000 Mu(tan=0.531709, x=0.882948, y=0.469472): 0.531709431661\n    test 1503 28 27.960204286276 Chi(tan=0.530819, x=1.0, y=0.530819), iteration=2: 0.531709431661\n    test 1504 28 28.013292185978 Xi(tan=0.532007, x=1.77361, y=0.94357), iteration=3: 0.531709431661\n\n    test 1505 28 28.119841850563 Phi(tan=0.534395, x=0.881964, y=0.471317): 0.531709431661\n    test 1506 28 28.039928546523 Beta(tan=0.532604, x=0.88262, y=0.470087): 0.531709431661\n    test 1507 28 27.960164870301 Theta(tan=0.530818, x=0.883274, y=0.468858): 0.531709431661\n    test 1508 28 28.000000000000 Mu(tan=0.531709, x=0.882948, y=0.469472): 0.531709431661\n    test 1509 28 27.960204286276 Chi(tan=0.530819, x=0.883273, y=0.468858): 0.531709431661\n    test 1510 28 28.013292185978 Xi(tan=0.532007, x=0.882839, y=0.469676): 0.531709431661\n\n    test 1511 35 35.135750772251 Phi(tan=0.703744, x=1.0, y=0.703744): 0.700207538210\n    test 1512 35 35.045237306558 Beta(tan=0.701385, x=1.0, y=0.701385): 0.700207538210\n    test 1513 35 34.954827299026 Theta(tan=0.699033, x=1.0, y=0.699033): 0.700207538210\n    test 1514 35 35.000000000000 Mu(tan=0.700208, x=0.819152, y=0.573576): 0.700207538210\n    test 1515 35 34.954893977158 Chi(tan=0.699035, x=1.0, y=0.699035), iteration=3: 0.700207538210\n    test 1516 35 35.015061857454 Xi(tan=0.700599, x=1.64536, y=1.15274), iteration=3: 0.700207538210\n\n    test 1517 35 35.135750772251 Phi(tan=0.703744, x=0.817791, y=0.575516): 0.700207538210\n    test 1518 35 35.045237306558 Beta(tan=0.701385, x=0.818699, y=0.574223): 0.700207538210\n    test 1519 35 34.954827299026 Theta(tan=0.699033, x=0.819604, y=0.57293): 0.700207538210\n    test 1520 35 35.000000000000 Mu(tan=0.700208, x=0.819152, y=0.573576): 0.700207538210\n    test 1521 35 34.954893977158 Chi(tan=0.699035, x=0.819603, y=0.572931): 0.700207538210\n    test 1522 35 35.015061857454 Xi(tan=0.700599, x=0.819001, y=0.573792): 0.700207538210\n\n    test 1523 42 42.143571223962 Phi(tan=0.904952, x=1.0, y=0.904952): 0.900404044298\n    test 1524 42 42.047852933259 Beta(tan=0.901917, x=1.0, y=0.901917): 0.900404044298\n    test 1525 42 41.952167704870 Theta(tan=0.898894, x=1.0, y=0.898894): 0.900404044298\n    test 1526 42 42.000000000000 Mu(tan=0.900404, x=0.743145, y=0.669131): 0.900404044298\n    test 1527 42 41.952263729127 Chi(tan=0.898897, x=1.0, y=0.898897), iteration=3: 0.900404044298\n    test 1528 42 42.015935495968 Xi(tan=0.900908, x=1.49259, y=1.34469), iteration=3: 0.900404044298\n\n    test 1529 42 42.143571223962 Phi(tan=0.904952, x=0.741466, y=0.670991): 0.900404044298\n    test 1530 42 42.047852933259 Beta(tan=0.901917, x=0.742586, y=0.669751): 0.900404044298\n    test 1531 42 41.952167704870 Theta(tan=0.898894, x=0.743703, y=0.66851): 0.900404044298\n    test 1532 42 42.000000000000 Mu(tan=0.900404, x=0.743145, y=0.669131): 0.900404044298\n    test 1533 42 41.952263729127 Chi(tan=0.898897, x=0.743702, y=0.668511): 0.900404044298\n    test 1534 42 42.015935495968 Xi(tan=0.900908, x=0.742959, y=0.669337): 0.900404044298\n\n    test 1535 49 49.142854800592 Phi(tan=1.15618, x=1.0, y=1.15618): 1.150368407221\n    test 1536 49 49.047623888378 Beta(tan=1.1523, x=1.0, y=1.1523): 1.150368407221\n    test 1537 49 48.952347927786 Theta(tan=1.14844, x=1.0, y=1.14844): 1.150368407221\n    test 1538 49 49.000000000000 Mu(tan=1.15037, x=0.656059, y=0.75471): 1.150368407221\n    test 1539 49 48.952469542367 Chi(tan=1.14844, x=1.0, y=1.14844), iteration=3: 1.150368407221\n    test 1540 49 49.015862036782 Xi(tan=1.15101, x=1.31759, y=1.51656), iteration=2: 1.150368407221\n\n    test 1541 49 49.142854800592 Phi(tan=1.15618, x=0.654175, y=0.756343): 1.150368407221\n    test 1542 49 49.047623888378 Beta(tan=1.1523, x=0.655431, y=0.755255): 1.150368407221\n    test 1543 49 48.952347927786 Theta(tan=1.14844, x=0.656686, y=0.754164): 1.150368407221\n    test 1544 49 49.000000000000 Mu(tan=1.15037, x=0.656059, y=0.75471): 1.150368407221\n    test 1545 49 48.952469542367 Chi(tan=1.14844, x=0.656685, y=0.754165): 1.150368407221\n    test 1546 49 49.015862036782 Xi(tan=1.15101, x=0.65585, y=0.754891): 1.150368407221\n\n    test 1547 56 56.133661968442 Phi(tan=1.49005, x=1.0, y=1.49005): 1.482560968513\n    test 1548 56 56.044568042538 Beta(tan=1.48505, x=1.0, y=1.48505): 1.482560968513\n    test 1549 56 55.955361525715 Theta(tan=1.48007, x=1.0, y=1.48007): 1.482560968513\n    test 1550 56 56.000000000000 Mu(tan=1.48256, x=0.559193, y=0.829038): 1.482560968513\n    test 1551 56 55.955498904140 Chi(tan=1.48008, x=1.0, y=1.48008), iteration=3: 1.482560968513\n    test 1552 56 56.014846771252 Xi(tan=1.48339, x=1.12298, y=1.66581), iteration=2: 1.482560968513\n\n    test 1553 56 56.133661968442 Phi(tan=1.49005, x=0.557257, y=0.83034): 1.482560968513\n    test 1554 56 56.044568042538 Beta(tan=1.48505, x=0.558548, y=0.829472): 1.482560968513\n    test 1555 56 55.955361525715 Theta(tan=1.48007, x=0.559839, y=0.828602): 1.482560968513\n    test 1556 56 56.000000000000 Mu(tan=1.48256, x=0.559193, y=0.829038): 1.482560968513\n    test 1557 56 55.955498904140 Chi(tan=1.48008, x=0.559837, y=0.828603): 1.482560968513\n    test 1558 56 56.014846771252 Xi(tan=1.48339, x=0.558978, y=0.829182): 1.482560968513\n\n    test 1559 63 63.116554283961 Phi(tan=1.97252, x=1.0, y=1.97252): 1.962610505505\n    test 1560 63 63.038870615950 Beta(tan=1.96591, x=1.0, y=1.96591): 1.962610505505\n    test 1561 63 62.961033158986 Theta(tan=1.95932, x=1.0, y=1.95932): 1.962610505505\n    test 1562 63 63.000000000000 Mu(tan=1.96261, x=0.45399, y=0.891007): 1.962610505505\n    test 1563 63 62.961171598977 Chi(tan=1.95933, x=1.0, y=1.95933), iteration=3: 1.962610505505\n    test 1564 63 63.012950815476 Xi(tan=1.96371, x=0.911653, y=1.79022), iteration=3: 1.962610505505\n\n    test 1565 63 63.116554283961 Phi(tan=1.97252, x=0.452177, y=0.891928): 1.962610505505\n    test 1566 63 63.038870615950 Beta(tan=1.96591, x=0.453386, y=0.891314): 1.962610505505\n    test 1567 63 62.961033158986 Theta(tan=1.95932, x=0.454596, y=0.890698): 1.962610505505\n    test 1568 63 63.000000000000 Mu(tan=1.96261, x=0.45399, y=0.891007): 1.962610505505\n    test 1569 63 62.961171598977 Chi(tan=1.95933, x=0.454594, y=0.890699): 1.962610505505\n    test 1570 63 63.012950815476 Xi(tan=1.96371, x=0.453789, y=0.891109): 1.962610505505\n\n    test 1571 70 70.092557449454 Phi(tan=2.76135, x=1.0, y=2.76135): 2.747477419455\n    test 1572 70 70.030872319297 Beta(tan=2.75209, x=1.0, y=2.75209): 2.747477419455\n    test 1573 70 69.969028142824 Theta(tan=2.74286, x=1.0, y=2.74286): 2.747477419455\n    test 1574 70 70.000000000000 Mu(tan=2.74748, x=0.34202, y=0.939693): 2.747477419455\n    test 1575 70 69.969150471863 Chi(tan=2.74288, x=1.0, y=2.74288), iteration=3: 2.747477419455\n    test 1576 70 70.010287292906 Xi(tan=2.74901, x=0.686773, y=1.88795), iteration=2: 2.747477419455\n\n    test 1577 70 70.092557449454 Phi(tan=2.76135, x=0.340502, y=0.940244): 2.747477419455\n    test 1578 70 70.030872319297 Beta(tan=2.75209, x=0.341514, y=0.939877): 2.747477419455\n    test 1579 70 69.969028142824 Theta(tan=2.74286, x=0.342528, y=0.939508): 2.747477419455\n    test 1580 70 70.000000000000 Mu(tan=2.74748, x=0.34202, y=0.939693): 2.747477419455\n    test 1581 70 69.969150471863 Chi(tan=2.74288, x=0.342526, y=0.939508): 2.747477419455\n    test 1582 70 70.010287292906 Xi(tan=2.74901, x=0.341851, y=0.939754): 2.747477419455\n\n    test 1583 77 77.063098225048 Phi(tan=4.35334, x=1.0, y=4.35334): 4.331475874284\n    test 1584 77 77.021048596835 Beta(tan=4.33875, x=1.0, y=4.33875): 4.331475874284\n    test 1585 77 76.978871802460 Theta(tan=4.3242, x=1.0, y=4.3242): 4.331475874284\n    test 1586 77 77.000000000000 Mu(tan=4.33148, x=0.224951, y=0.97437): 4.331475874284\n    test 1587 77 76.978961492015 Chi(tan=4.32423, x=1.0, y=4.32423), iteration=3: 4.331475874284\n    test 1588 77 77.007014500932 Xi(tan=4.3339, x=0.451683, y=1.95755), iteration=3: 4.331475874284\n\n    test 1589 77 77.063098225048 Phi(tan=4.35334, x=0.223878, y=0.974617): 4.331475874284\n    test 1590 77 77.021048596835 Beta(tan=4.33875, x=0.224593, y=0.974453): 4.331475874284\n    test 1591 77 76.978871802460 Theta(tan=4.3242, x=0.22531, y=0.974287): 4.331475874284\n    test 1592 77 77.000000000000 Mu(tan=4.33148, x=0.224951, y=0.97437): 4.331475874284\n    test 1593 77 76.978961492015 Chi(tan=4.32423, x=0.225309, y=0.974287): 4.331475874284\n    test 1594 77 77.007014500932 Xi(tan=4.3339, x=0.224832, y=0.974398): 4.331475874284\n\n    test 1595 84 84.029919429066 Phi(tan=9.5624, x=1.0, y=9.5624): 9.514364454223\n    test 1596 84 84.009981321799 Beta(tan=9.53033, x=1.0, y=9.53033): 9.514364454223\n    test 1597 84 83.989977604221 Theta(tan=9.49838, x=1.0, y=9.49838): 9.514364454223\n    test 1598 84 84.000000000000 Mu(tan=9.51436, x=0.104528, y=0.994522): 9.514364454223\n    test 1599 84 83.990021917793 Chi(tan=9.49845, x=1.0, y=9.49845), iteration=3: 9.514364454223\n    test 1600 84 84.003326493225 Xi(tan=9.51968, x=0.20988, y=1.99799), iteration=3: 9.514364454223\n\n    test 1601 84 84.029919429066 Phi(tan=9.5624, x=0.104009, y=0.994576): 9.514364454223\n    test 1602 84 84.009981321799 Beta(tan=9.53033, x=0.104355, y=0.99454): 9.514364454223\n    test 1603 84 83.989977604221 Theta(tan=9.49838, x=0.104702, y=0.994504): 9.514364454223\n    test 1604 84 84.000000000000 Mu(tan=9.51436, x=0.104528, y=0.994522): 9.514364454223\n    test 1605 84 83.990021917793 Chi(tan=9.49845, x=0.104702, y=0.994504): 9.514364454223\n    test 1606 84 84.003326493225 Xi(tan=9.51968, x=0.104471, y=0.994528): 9.514364454223\n\n    test 1607 91 90.994978117111 Phi(tan=-57.5792, x=-1, y=57.5792): -57.289961630759\n    test 1608 91 90.998324636576 Beta(tan=-57.3861, x=-1, y=57.3861): -57.289961630759\n    test 1609 91 91.001682407187 Theta(tan=-57.1937, x=-1, y=57.1937): -57.289961630759\n    test 1610 91 91.000000000000 Mu(tan=-57.29, x=-0.0174524, y=0.999848): -57.289961630759\n    test 1611 91 91.001674889056 Chi(tan=-57.1941, x=-1, y=57.1941), iteration=3: -57.289961630759\n    test 1612 91 90.999441640005 Xi(tan=-57.322, x=-0.035042, y=2.00867), iteration=3: -57.289961630759\n\n    test 1613 91 90.994978117111 Phi(tan=-57.5792, x=-0.0173648, y=0.999849): -57.289961630759\n    test 1614 91 90.998324636576 Beta(tan=-57.3861, x=-0.0174232, y=0.999848): -57.289961630760  FAILED, KNOWN (5.95323e-15), expected -57.289961630759\n    test 1615 91 91.001682407187 Theta(tan=-57.1937, x=-0.0174818, y=0.999847): -57.289961630760  FAILED, KNOWN (5.70518e-15), expected -57.289961630759\n    test 1616 91 91.000000000000 Mu(tan=-57.29, x=-0.0174524, y=0.999848): -57.289961630759\n    test 1617 91 91.001674889056 Chi(tan=-57.1941, x=-0.0174816, y=0.999847): -57.289961630760  FAILED, KNOWN (9.30193e-15), expected -57.289961630759\n    test 1618 91 90.999441640005 Xi(tan=-57.322, x=-0.0174427, y=0.999848): -57.289961630759\n\n    test 1619 98 97.960332584009 Phi(tan=-7.15129, x=-1, y=7.15129): -7.115369722384\n    test 1620 98 97.986766870880 Beta(tan=-7.12731, x=-1, y=7.12731): -7.115369722384\n    test 1621 98 98.013286645922 Theta(tan=-7.10342, x=-1, y=7.10342): -7.115369722384\n    test 1622 98 98.000000000000 Mu(tan=-7.11537, x=-0.139173, y=0.990268): -7.115369722384\n    test 1623 98 98.013228398375 Chi(tan=-7.10347, x=-1, y=7.10347), iteration=3: -7.115369722384\n    test 1624 98 97.995589824971 Xi(tan=-7.11935, x=-0.279443, y=1.98945), iteration=3: -7.115369722384\n\n    test 1625 98 97.960332584009 Phi(tan=-7.15129, x=-0.138487, y=0.990364): -7.115369722384\n    test 1626 98 97.986766870880 Beta(tan=-7.12731, x=-0.138944, y=0.9903): -7.115369722384\n    test 1627 98 98.013286645922 Theta(tan=-7.10342, x=-0.139403, y=0.990236): -7.115369722384\n    test 1628 98 98.000000000000 Mu(tan=-7.11537, x=-0.139173, y=0.990268): -7.115369722384\n    test 1629 98 98.013228398375 Chi(tan=-7.10347, x=-0.139402, y=0.990236): -7.115369722384\n    test 1630 98 97.995589824971 Xi(tan=-7.11935, x=-0.139097, y=0.990279): -7.115369722384\n\n    test 1631 105 104.928024147426 Phi(tan=-3.75089, x=-1, y=3.75089): -3.732050807569\n    test 1632 105 104.975990619809 Beta(tan=-3.73832, x=-1, y=3.73832): -3.732050807569\n    test 1633 105 105.024096873204 Theta(tan=-3.72578, x=-1, y=3.72578): -3.732050807569\n    test 1634 105 105.000000000000 Mu(tan=-3.73205, x=-0.258819, y=0.965926): -3.732050807569\n    test 1635 105 105.023996337790 Chi(tan=-3.72581, x=-1, y=3.72581), iteration=2: -3.732050807569\n    test 1636 105 104.991999000074 Xi(tan=-3.73414, x=-0.519691, y=1.9406), iteration=3: -3.732050807569\n\n    test 1637 105 104.928024147426 Phi(tan=-3.75089, x=-0.257605, y=0.96625): -3.732050807569\n    test 1638 105 104.975990619809 Beta(tan=-3.73832, x=-0.258414, y=0.966034): -3.732050807569\n    test 1639 105 105.024096873204 Theta(tan=-3.72578, x=-0.259225, y=0.965817): -3.732050807569\n    test 1640 105 105.000000000000 Mu(tan=-3.73205, x=-0.258819, y=0.965926): -3.732050807569\n    test 1641 105 105.023996337790 Chi(tan=-3.72581, x=-0.259224, y=0.965817): -3.732050807569\n    test 1642 105 104.991999000074 Xi(tan=-3.73414, x=-0.258684, y=0.965962): -3.732050807569\n\n    test 1643 112 111.899959803709 Phi(tan=-2.48758, x=-1, y=2.48758): -2.475086853416\n    test 1644 112 111.966633129887 Beta(tan=-2.47924, x=-1, y=2.47924): -2.475086853416\n    test 1645 112 112.033467905647 Theta(tan=-2.47093, x=-1, y=2.47093): -2.475086853416\n    test 1646 112 112.000000000000 Mu(tan=-2.47509, x=-0.374607, y=0.927184): -2.475086853416\n    test 1647 112 112.033339197227 Chi(tan=-2.47095, x=-1, y=2.47095), iteration=3: -2.475086853416\n    test 1648 112 111.988881847875 Xi(tan=-2.47647, x=-0.752216, y=1.86284), iteration=3: -2.475086853416\n\n    test 1649 112 111.899959803709 Phi(tan=-2.48758, x=-0.372987, y=0.927837): -2.475086853416\n    test 1650 112 111.966633129887 Beta(tan=-2.47924, x=-0.374067, y=0.927402): -2.475086853416\n    test 1651 112 112.033467905647 Theta(tan=-2.47093, x=-0.375148, y=0.926965): -2.475086853416\n    test 1652 112 112.000000000000 Mu(tan=-2.47509, x=-0.374607, y=0.927184): -2.475086853416\n    test 1653 112 112.033339197227 Chi(tan=-2.47095, x=-0.375146, y=0.926966): -2.475086853416\n    test 1654 112 111.988881847875 Xi(tan=-2.47647, x=-0.374427, y=0.927257): -2.475086853416\n\n    test 1655 119 118.877801825189 Phi(tan=-1.81316, x=-1, y=1.81316): -1.804047755271\n    test 1656 119 118.959249130251 Beta(tan=-1.80708, x=-1, y=1.80708): -1.804047755271\n    test 1657 119 119.040841846602 Theta(tan=-1.80102, x=-1, y=1.80102): -1.804047755271\n    test 1658 119 119.000000000000 Mu(tan=-1.80405, x=-0.48481, y=0.87462): -1.804047755271\n    test 1659 119 119.040702010928 Chi(tan=-1.80103, x=-1, y=1.80103), iteration=3: -1.804047755271\n    test 1660 119 118.986423296510 Xi(tan=-1.80506, x=-0.973556, y=1.75732), iteration=3: -1.804047755271\n\n    test 1661 119 118.877801825189 Phi(tan=-1.81316, x=-0.482943, y=0.875652): -1.804047755271\n    test 1662 119 118.959249130251 Beta(tan=-1.80708, x=-0.484187, y=0.874964): -1.804047755271\n    test 1663 119 119.040841846602 Theta(tan=-1.80102, x=-0.485433, y=0.874274): -1.804047755271\n    test 1664 119 119.000000000000 Mu(tan=-1.80405, x=-0.48481, y=0.87462): -1.804047755271\n    test 1665 119 119.040702010928 Chi(tan=-1.80103, x=-0.485431, y=0.874275): -1.804047755271\n    test 1666 119 118.986423296510 Xi(tan=-1.80506, x=-0.484602, y=0.874735): -1.804047755271\n\n    test 1667 126 125.862870188589 Phi(tan=-1.38333, x=-1, y=1.38333): -1.376381920471\n    test 1668 126 125.954278157197 Beta(tan=-1.37869, x=-1, y=1.37869): -1.376381920471\n    test 1669 126 126.045781505815 Theta(tan=-1.37407, x=-1, y=1.37407): -1.376381920471\n    test 1670 126 126.000000000000 Mu(tan=-1.37638, x=-0.587785, y=0.809017): -1.376381920471\n    test 1671 126 126.045647308130 Chi(tan=-1.37408, x=-1, y=1.37408), iteration=3: -1.376381920471\n    test 1672 126 125.984769594047 Xi(tan=-1.37715, x=-1.18042, y=1.62561), iteration=3: -1.376381920471\n\n    test 1673 126 125.862870188589 Phi(tan=-1.38333, x=-0.585847, y=0.810421): -1.376381920471\n    test 1674 126 125.954278157197 Beta(tan=-1.37869, x=-0.587139, y=0.809486): -1.376381920471\n    test 1675 126 126.045781505815 Theta(tan=-1.37407, x=-0.588431, y=0.808547): -1.376381920471\n    test 1676 126 126.000000000000 Mu(tan=-1.37638, x=-0.587785, y=0.809017): -1.376381920471\n    test 1677 126 126.045647308130 Chi(tan=-1.37408, x=-0.58843, y=0.808548): -1.376381920471\n    test 1678 126 125.984769594047 Xi(tan=-1.37715, x=-0.58757, y=0.809173): -1.376381920471\n\n    test 1679 133 132.856063347719 Phi(tan=-1.07778, x=-1, y=1.07778): -1.072368710025\n    test 1680 133 132.952018246366 Beta(tan=-1.07417, x=-1, y=1.07417): -1.072368710025\n    test 1681 133 133.047996165770 Theta(tan=-1.07057, x=-1, y=1.07057): -1.072368710025\n    test 1682 133 133.000000000000 Mu(tan=-1.07237, x=-0.681998, y=0.731354): -1.072368710025\n    test 1683 133 133.047881115076 Chi(tan=-1.07057, x=-1, y=1.07057), iteration=3: -1.072368710025\n    test 1684 133 132.984019576906 Xi(tan=-1.07297, x=-1.36971, y=1.46966), iteration=2: -1.072368710025\n\n    test 1685 133 132.856063347719 Phi(tan=-1.07778, x=-0.680159, y=0.733065): -1.072368710025\n    test 1686 133 132.952018246366 Beta(tan=-1.07417, x=-0.681386, y=0.731925): -1.072368710025\n    test 1687 133 133.047996165770 Theta(tan=-1.07057, x=-0.682611, y=0.730782): -1.072368710025\n    test 1688 133 133.000000000000 Mu(tan=-1.07237, x=-0.681998, y=0.731354): -1.072368710025\n    test 1689 133 133.047881115076 Chi(tan=-1.07057, x=-0.682609, y=0.730784): -1.072368710025\n    test 1690 133 132.984019576906 Xi(tan=-1.07297, x=-0.681794, y=0.731544): -1.072368710025\n\n    test 1691 140 139.857802229338 Phi(tan=-0.843338, x=-1, y=0.843338): -0.839099631177\n    test 1692 140 139.952607597930 Beta(tan=-0.84051, x=-1, y=0.84051): -0.839099631177\n    test 1693 140 140.047358211970 Theta(tan=-0.837692, x=-1, y=0.837692): -0.839099631177\n    test 1694 140 140.000000000000 Mu(tan=-0.8391, x=-0.766044, y=0.642788): -0.839099631177\n    test 1695 140 140.047270461053 Chi(tan=-0.837695, x=-1, y=0.837695), iteration=3: -0.839099631177\n    test 1696 140 139.984218660625 Xi(tan=-0.839569, x=-1.53861, y=1.29177), iteration=3: -0.839099631177\n\n    test 1697 140 139.857802229338 Phi(tan=-0.843338, x=-0.764447, y=0.644687): -0.839099631177\n    test 1698 140 139.952607597930 Beta(tan=-0.84051, x=-0.765512, y=0.643421): -0.839099631177\n    test 1699 140 140.047358211970 Theta(tan=-0.837692, x=-0.766575, y=0.642154): -0.839099631177\n    test 1700 140 140.000000000000 Mu(tan=-0.8391, x=-0.766044, y=0.642788): -0.839099631177\n    test 1701 140 140.047270461053 Chi(tan=-0.837695, x=-0.766574, y=0.642155): -0.839099631177\n    test 1702 140 139.984218660625 Xi(tan=-0.839569, x=-0.765867, y=0.642999): -0.839099631177\n\n    test 1703 147 146.868001375396 Phi(tan=-0.652688, x=-1, y=0.652688): -0.649407593198\n    test 1704 147 146.956015447561 Beta(tan=-0.6505, x=-1, y=0.6505): -0.649407593198\n    test 1705 147 147.043909788845 Theta(tan=-0.648319, x=-1, y=0.648319): -0.649407593198\n    test 1706 147 147.000000000000 Mu(tan=-0.649408, x=-0.838671, y=0.544639): -0.649407593198\n    test 1707 147 147.043851339199 Chi(tan=-0.64832, x=-1, y=0.64832), iteration=2: -0.649407593198\n    test 1708 147 146.985355941570 Xi(tan=-0.649771, x=-1.68459, y=1.0946), iteration=3: -0.649407593198\n\n    test 1709 147 146.868001375396 Phi(tan=-0.652688, x=-0.837414, y=0.54657): -0.649407593198\n    test 1710 147 146.956015447561 Beta(tan=-0.6505, x=-0.838252, y=0.545283): -0.649407593198\n    test 1711 147 147.043909788845 Theta(tan=-0.648319, x=-0.839088, y=0.543996): -0.649407593198\n    test 1712 147 147.000000000000 Mu(tan=-0.649408, x=-0.838671, y=0.544639): -0.649407593198\n    test 1713 147 147.043851339199 Chi(tan=-0.64832, x=-0.839087, y=0.543997): -0.649407593198\n    test 1714 147 146.985355941570 Xi(tan=-0.649771, x=-0.838531, y=0.544853): -0.649407593198\n\n    test 1715 154 153.886069836452 Phi(tan=-0.490196, x=-1, y=0.490196): -0.487732588566\n    test 1716 154 153.962042898489 Beta(tan=-0.488553, x=-1, y=0.488553): -0.487732588566\n    test 1717 154 154.037859302268 Theta(tan=-0.486915, x=-1, y=0.486915): -0.487732588566\n    test 1718 154 154.000000000000 Mu(tan=-0.487733, x=-0.898794, y=0.438371): -0.487732588566\n    test 1719 154 154.037826635034 Chi(tan=-0.486916, x=-1, y=0.486916), iteration=3: -0.487732588566\n    test 1720 154 153.987364628293 Xi(tan=-0.488006, x=-1.80546, y=0.881077), iteration=3: -0.487732588566\n\n    test 1721 154 153.886069836452 Phi(tan=-0.490196, x=-0.897921, y=0.440157): -0.487732588566\n    test 1722 154 153.962042898489 Beta(tan=-0.488553, x=-0.898503, y=0.438966): -0.487732588566\n    test 1723 154 154.037859302268 Theta(tan=-0.486915, x=-0.899084, y=0.437777): -0.487732588566\n    test 1724 154 154.000000000000 Mu(tan=-0.487733, x=-0.898794, y=0.438371): -0.487732588566\n    test 1725 154 154.037826635034 Chi(tan=-0.486916, x=-0.899083, y=0.437778): -0.487732588566\n    test 1726 154 153.987364628293 Xi(tan=-0.488006, x=-0.898697, y=0.438569): -0.487732588566\n\n    test 1727 161 160.910942745263 Phi(tan=-0.346067, x=-1, y=0.346067): -0.344327613290\n    test 1728 161 160.970333898803 Beta(tan=-0.344907, x=-1, y=0.344907): -0.344327613290\n    test 1729 161 161.029568209135 Theta(tan=-0.34375, x=-1, y=0.34375): -0.344327613290\n    test 1730 161 161.000000000000 Mu(tan=-0.344328, x=-0.945519, y=0.325568): -0.344327613290\n    test 1731 161 161.029554130079 Chi(tan=-0.343751, x=-1, y=0.343751), iteration=3: -0.344327613290\n    test 1732 161 160.990125827674 Xi(tan=-0.34452, x=-1.89942, y=0.654387), iteration=3: -0.344327613290\n\n    test 1733 161 160.910942745263 Phi(tan=-0.346067, x=-0.945011, y=0.327037): -0.344327613290\n    test 1734 161 160.970333898803 Beta(tan=-0.344907, x=-0.94535, y=0.326058): -0.344327613290\n    test 1735 161 161.029568209135 Theta(tan=-0.34375, x=-0.945686, y=0.32508): -0.344327613290\n    test 1736 161 161.000000000000 Mu(tan=-0.344328, x=-0.945519, y=0.325568): -0.344327613290\n    test 1737 161 161.029554130079 Chi(tan=-0.343751, x=-0.945686, y=0.32508): -0.344327613290\n    test 1738 161 160.990125827674 Xi(tan=-0.34452, x=-0.945462, y=0.325731): -0.344327613290\n\n    test 1739 168 167.941142537455 Phi(tan=-0.21363, x=-1, y=0.21363): -0.212556561670\n    test 1740 168 167.980395911211 Beta(tan=-0.212914, x=-1, y=0.212914): -0.212556561670\n    test 1741 168 168.019529073263 Theta(tan=-0.2122, x=-1, y=0.2122): -0.212556561670\n    test 1742 168 168.000000000000 Mu(tan=-0.212557, x=-0.978148, y=0.207912): -0.212556561670\n    test 1743 168 168.019525279620 Chi(tan=-0.2122, x=-1, y=0.2122), iteration=2: -0.212556561670\n    test 1744 168 167.993475503952 Xi(tan=-0.212676, x=-1.96503, y=0.417914), iteration=2: -0.212556561670\n\n    test 1745 168 167.941142537455 Phi(tan=-0.21363, x=-0.977934, y=0.208916): -0.212556561670\n    test 1746 168 167.980395911211 Beta(tan=-0.212914, x=-0.978076, y=0.208246): -0.212556561670\n    test 1747 168 168.019529073263 Theta(tan=-0.2122, x=-0.978218, y=0.207578): -0.212556561670\n    test 1748 168 168.000000000000 Mu(tan=-0.212557, x=-0.978148, y=0.207912): -0.212556561670\n    test 1749 168 168.019525279620 Chi(tan=-0.2122, x=-0.978218, y=0.207578): -0.212556561670\n    test 1750 168 167.993475503952 Xi(tan=-0.212676, x=-0.978124, y=0.208023): -0.212556561670\n\n    test 1751 175 174.974866680328 Phi(tan=-0.0879307, x=-1, y=0.0879307): -0.087488663526\n    test 1752 175 174.991629164161 Beta(tan=-0.0876359, x=-1, y=0.0876359): -0.087488663526\n    test 1753 175 175.008336301828 Theta(tan=-0.0873421, x=-1, y=0.0873421): -0.087488663526\n    test 1754 175 175.000000000000 Mu(tan=-0.0874887, x=-0.996195, y=0.0871557): -0.087488663526\n    test 1755 175 175.008336017206 Chi(tan=-0.0873421, x=-1, y=0.0873421), iteration=2: -0.087488663526\n    test 1756 175 174.997214222263 Xi(tan=-0.0875377, x=-2.00133, y=0.175191), iteration=3: -0.087488663526\n\n    test 1757 175 174.974866680328 Phi(tan=-0.0879307, x=-0.996156, y=0.0875927): -0.087488663526\n    test 1758 175 174.991629164161 Beta(tan=-0.0876359, x=-0.996182, y=0.0873013): -0.087488663526\n    test 1759 175 175.008336301828 Theta(tan=-0.0873421, x=-0.996207, y=0.0870108): -0.087488663526\n    test 1760 175 175.000000000000 Mu(tan=-0.0874887, x=-0.996195, y=0.0871557): -0.087488663526\n    test 1761 175 175.008336017206 Chi(tan=-0.0873421, x=-0.996207, y=0.0870108): -0.087488663526\n    test 1762 175 174.997214222263 Xi(tan=-0.0875377, x=-0.99619, y=0.0872042): -0.087488663526\n\n    test 1763 182 182.010096724503 Phi(tan=0.0350972, x=-1, y=-0.0350972): 0.034920769492\n    test 1764 182 182.003362751638 Beta(tan=0.0349795, x=-1, y=-0.0349795): 0.034920769492\n    test 1765 182 181.996651301418 Theta(tan=0.0348623, x=-1, y=-0.0348623): 0.034920769492\n    test 1766 182 182.000000000000 Mu(tan=0.0349208, x=-0.999391, y=-0.0348995): 0.034920769492\n    test 1767 182 181.996651319751 Chi(tan=0.0348623, x=-1, y=-0.0348623), iteration=2: 0.034920769492\n    test 1768 182 182.001119098649 Xi(tan=0.0349403, x=-2.00775, y=-0.0701516), iteration=2: 0.034920769492\n\n    test 1769 182 182.010096724503 Phi(tan=0.0350972, x=-0.999385, y=-0.0350756): 0.034920769492\n    test 1770 182 182.003362751638 Beta(tan=0.0349795, x=-0.999389, y=-0.0349582): 0.034920769492\n    test 1771 182 181.996651301418 Theta(tan=0.0348623, x=-0.999393, y=-0.0348411): 0.034920769492\n    test 1772 182 182.000000000000 Mu(tan=0.0349208, x=-0.999391, y=-0.0348995): 0.034920769492\n    test 1773 182 181.996651319751 Chi(tan=0.0348623, x=-0.999393, y=-0.0348411): 0.034920769492\n    test 1774 182 182.001119098649 Xi(tan=0.0349403, x=-0.99939, y=-0.034919): 0.034920769492\n\n    test 1775 189 189.044721740866 Phi(tan=0.159185, x=-1, y=-0.159185): 0.158384440325\n    test 1776 189 189.014895327636 Beta(tan=0.158651, x=-1, y=-0.158651): 0.158384440325\n    test 1777 189 188.985164013992 Theta(tan=0.158119, x=-1, y=-0.158119): 0.158384440325\n    test 1778 189 189.000000000000 Mu(tan=0.158384, x=-0.987688, y=-0.156434): 0.158384440325\n    test 1779 189 188.985165645705 Chi(tan=0.158119, x=-1, y=-0.158119), iteration=3: 0.158384440325\n    test 1780 189 189.004957222799 Xi(tan=0.158473, x=-1.98422, y=-0.314445), iteration=3: 0.158384440325\n\n    test 1781 189 189.044721740866 Phi(tan=0.159185, x=-0.987566, y=-0.157205): 0.158384440325\n    test 1782 189 189.014895327636 Beta(tan=0.158651, x=-0.987648, y=-0.156691): 0.158384440325\n    test 1783 189 188.985164013992 Theta(tan=0.158119, x=-0.987729, y=-0.156179): 0.158384440325\n    test 1784 189 189.000000000000 Mu(tan=0.158384, x=-0.987688, y=-0.156434): 0.158384440325\n    test 1785 189 188.985165645705 Chi(tan=0.158119, x=-0.987729, y=-0.156179): 0.158384440325\n    test 1786 189 189.004957222799 Xi(tan=0.158473, x=-0.987675, y=-0.15652): 0.158384440325\n\n    test 1787 196 196.076667971970 Phi(tan=0.288194, x=-1, y=-0.288194): 0.286745385759\n    test 1788 196 196.025537779325 Beta(tan=0.287228, x=-1, y=-0.287228): 0.286745385759\n    test 1789 196 195.974552923462 Theta(tan=0.286265, x=-1, y=-0.286265): 0.286745385759\n    test 1790 196 196.000000000000 Mu(tan=0.286745, x=-0.961262, y=-0.275637): 0.286745385759\n    test 1791 196 195.974561610097 Chi(tan=0.286265, x=-1, y=-0.286265), iteration=3: 0.286745385759\n    test 1792 196 196.008499713199 Xi(tan=0.286906, x=-1.93107, y=-0.554036), iteration=2: 0.286745385759\n\n    test 1793 196 196.076667971970 Phi(tan=0.288194, x=-0.960892, y=-0.276923): 0.286745385759\n    test 1794 196 196.025537779325 Beta(tan=0.287228, x=-0.961139, y=-0.276066): 0.286745385759\n    test 1795 196 195.974552923462 Theta(tan=0.286265, x=-0.961384, y=-0.27521): 0.286745385759\n    test 1796 196 196.000000000000 Mu(tan=0.286745, x=-0.961262, y=-0.275637): 0.286745385759\n    test 1797 196 195.974561610097 Chi(tan=0.286265, x=-0.961384, y=-0.275211): 0.286745385759\n    test 1798 196 196.008499713199 Xi(tan=0.286906, x=-0.961221, y=-0.27578): 0.286745385759\n\n    test 1799 203 203.104025981749 Phi(tan=0.426619, x=-1, y=-0.426619): 0.424474816210\n    test 1800 203 203.034655104114 Beta(tan=0.425189, x=-1, y=-0.425189): 0.424474816210\n    test 1801 203 202.965445675486 Theta(tan=0.423763, x=-1, y=-0.423763): 0.424474816210\n    test 1802 203 203.000000000000 Mu(tan=0.424475, x=-0.920505, y=-0.390731): 0.424474816210\n    test 1803 203 202.965469367936 Chi(tan=0.423764, x=-1, y=-0.423764), iteration=3: 0.424474816210\n    test 1804 203 203.011535517974 Xi(tan=0.424712, x=-1.84912, y=-0.785343), iteration=2: 0.424474816210\n\n    test 1805 203 203.104025981749 Phi(tan=0.426619, x=-0.919794, y=-0.392402): 0.424474816210\n    test 1806 203 203.034655104114 Beta(tan=0.425189, x=-0.920268, y=-0.391288): 0.424474816210\n    test 1807 203 202.965445675486 Theta(tan=0.423763, x=-0.92074, y=-0.390176): 0.424474816210\n    test 1808 203 203.000000000000 Mu(tan=0.424475, x=-0.920505, y=-0.390731): 0.424474816210\n    test 1809 203 202.965469367936 Chi(tan=0.423764, x=-0.92074, y=-0.390176): 0.424474816210\n    test 1810 203 203.011535517974 Xi(tan=0.424712, x=-0.920426, y=-0.390916): 0.424474816210\n\n    test 1811 210 210.125166807834 Phi(tan=0.580267, x=-1, y=-0.580267): 0.577350269190\n    test 1812 210 210.041704779944 Beta(tan=0.578321, x=-1, y=-0.578321): 0.577350269190\n    test 1813 210 209.958382432479 Theta(tan=0.576382, x=-1, y=-0.576382): 0.577350269190\n    test 1814 210 210.000000000000 Mu(tan=0.57735, x=-0.866025, y=-0.5): 0.577350269190\n    test 1815 210 209.958429134161 Chi(tan=0.576383, x=-1, y=-0.576383), iteration=3: 0.577350269190\n    test 1816 210 210.013884093401 Xi(tan=0.577673, x=-1.73958, y=-1.00491), iteration=2: 0.577350269190\n\n    test 1817 210 210.125166807834 Phi(tan=0.580267, x=-0.864931, y=-0.501891): 0.577350269190\n    test 1818 210 210.041704779944 Beta(tan=0.578321, x=-0.865661, y=-0.50063): 0.577350269190\n    test 1819 210 209.958382432479 Theta(tan=0.576382, x=-0.866388, y=-0.499371): 0.577350269190\n    test 1820 210 210.000000000000 Mu(tan=0.57735, x=-0.866025, y=-0.5): 0.577350269190\n    test 1821 210 209.958429134161 Chi(tan=0.576383, x=-0.866388, y=-0.499372): 0.577350269190\n    test 1822 210 210.013884093401 Xi(tan=0.577673, x=-0.865904, y=-0.50021): 0.577350269190\n\n    test 1823 217 217.138839575219 Phi(tan=0.75736, x=-1, y=-0.75736): 0.753554050103\n    test 1824 217 217.046269197118 Beta(tan=0.754821, x=-1, y=-0.754821): 0.753554050103\n    test 1825 217 216.953783990372 Theta(tan=0.75229, x=-1, y=-0.75229): 0.753554050103\n    test 1826 217 217.000000000000 Mu(tan=0.753554, x=-0.798636, y=-0.601815): 0.753554050103\n    test 1827 217 216.953859077076 Chi(tan=0.752292, x=-1, y=-0.752292), iteration=3: 0.753554050103\n    test 1828 217 217.015406173898 Xi(tan=0.753976, x=-1.60412, y=-1.20947), iteration=3: 0.753554050103\n\n    test 1829 217 217.138839575219 Phi(tan=0.75736, x=-0.797175, y=-0.603749): 0.753554050103\n    test 1830 217 217.046269197118 Beta(tan=0.754821, x=-0.798149, y=-0.60246): 0.753554050103\n    test 1831 217 216.953783990372 Theta(tan=0.75229, x=-0.799121, y=-0.601171): 0.753554050103\n    test 1832 217 217.000000000000 Mu(tan=0.753554, x=-0.798636, y=-0.601815): 0.753554050103\n    test 1833 217 216.953859077076 Chi(tan=0.752292, x=-0.79912, y=-0.601172): 0.753554050103\n    test 1834 217 217.015406173898 Xi(tan=0.753976, x=-0.798474, y=-0.60203): 0.753554050103\n\n    test 1835 224 224.144244585156 Phi(tan=0.970566, x=-1, y=-0.970566): 0.965688774807\n    test 1836 224 224.048080179626 Beta(tan=0.967312, x=-1, y=-0.967312): 0.965688774807\n    test 1837 224 223.951926502986 Theta(tan=0.964069, x=-1, y=-0.964069): 0.965688774807\n    test 1838 224 224.000000000000 Mu(tan=0.965689, x=-0.71934, y=-0.694658): 0.965688774807\n    test 1839 224 223.952030495532 Chi(tan=0.964072, x=-1, y=-0.964072), iteration=2: 0.965688774807\n    test 1840 224 224.016011983610 Xi(tan=0.966229, x=-1.44475, y=-1.39596), iteration=2: 0.965688774807\n\n    test 1841 224 224.144244585156 Phi(tan=0.970566, x=-0.717589, y=-0.696467): 0.965688774807\n    test 1842 224 224.048080179626 Beta(tan=0.967312, x=-0.718757, y=-0.695262): 0.965688774807\n    test 1843 224 223.951926502986 Theta(tan=0.964069, x=-0.719922, y=-0.694055): 0.965688774807\n    test 1844 224 224.000000000000 Mu(tan=0.965689, x=-0.71934, y=-0.694658): 0.965688774807\n    test 1845 224 223.952030495532 Chi(tan=0.964072, x=-0.719921, y=-0.694056): 0.965688774807\n    test 1846 224 224.016011983610 Xi(tan=0.966229, x=-0.719146, y=-0.694859): 0.965688774807\n\n    test 1847 231 231.141077842653 Phi(tan=1.24113, x=-1, y=-1.24113): 1.234897156535\n    test 1848 231 231.047034210293 Beta(tan=1.23697, x=-1, y=-1.23697): 1.234897156535\n    test 1849 231 230.952924380812 Theta(tan=1.23282, x=-1, y=-1.23282): 1.234897156535\n    test 1850 231 231.000000000000 Mu(tan=1.2349, x=-0.62932, y=-0.777146): 1.234897156535\n    test 1851 231 230.953051749472 Chi(tan=1.23283, x=-1, y=-1.23283), iteration=2: 1.234897156535\n    test 1852 231 231.015666416855 Xi(tan=1.23559, x=-1.26387, y=-1.56162), iteration=3: 1.234897156535\n\n    test 1853 231 231.141077842653 Phi(tan=1.24113, x=-0.627405, y=-0.778693): 1.234897156535\n    test 1854 231 231.047034210293 Beta(tan=1.23697, x=-0.628682, y=-0.777662): 1.234897156535\n    test 1855 231 230.952924380812 Theta(tan=1.23282, x=-0.629959, y=-0.776629): 1.234897156535\n    test 1856 231 231.000000000000 Mu(tan=1.2349, x=-0.62932, y=-0.777146): 1.234897156535\n    test 1857 231 230.953051749472 Chi(tan=1.23283, x=-0.629957, y=-0.77663): 1.234897156535\n    test 1858 231 231.015666416855 Xi(tan=1.23559, x=-0.629108, y=-0.777318): 1.234897156535\n\n    test 1859 238 238.129545093885 Phi(tan=1.60842, x=-1, y=-1.60842): 1.600334529041\n    test 1860 238 238.043197624299 Beta(tan=1.60302, x=-1, y=-1.60302): 1.600334529041\n    test 1861 238 237.956722543300 Theta(tan=1.59765, x=-1, y=-1.59765): 1.600334529041\n    test 1862 238 238.000000000000 Mu(tan=1.60033, x=-0.529919, y=-0.848048): 1.600334529041\n    test 1863 238 237.956861886827 Chi(tan=1.59766, x=-1, y=-1.59766), iteration=3: 1.600334529041\n    test 1864 238 238.014390916077 Xi(tan=1.60123, x=-1.06417, y=-1.70398), iteration=3: 1.600334529041\n\n    test 1865 238 238.129545093885 Phi(tan=1.60842, x=-0.528, y=-0.849244): 1.600334529041\n    test 1866 238 238.043197624299 Beta(tan=1.60302, x=-0.52928, y=-0.848447): 1.600334529041\n    test 1867 238 237.956722543300 Theta(tan=1.59765, x=-0.53056, y=-0.847648): 1.600334529041\n    test 1868 238 238.000000000000 Mu(tan=1.60033, x=-0.529919, y=-0.848048): 1.600334529041\n    test 1869 238 237.956861886827 Chi(tan=1.59766, x=-0.530558, y=-0.847649): 1.600334529041\n    test 1870 238 238.014390916077 Xi(tan=1.60123, x=-0.529706, y=-0.848181): 1.600334529041\n\n    test 1871 245 245.110345489960 Phi(tan=2.15533, x=-1, y=-2.15533): 2.144506920510\n    test 1872 245 245.036801688087 Beta(tan=2.14811, x=-1, y=-2.14811): 2.144506920510\n    test 1873 245 244.963098707662 Theta(tan=2.14091, x=-1, y=-2.14091): 2.144506920510\n    test 1874 245 245.000000000000 Mu(tan=2.14451, x=-0.422618, y=-0.906308): 2.144506920510\n    test 1875 245 244.963234330104 Chi(tan=2.14092, x=-1, y=-2.14092), iteration=2: 2.144506920510\n    test 1876 245 245.012261984604 Xi(tan=2.14571, x=-0.848642, y=-1.82094), iteration=3: 2.144506920510\n\n    test 1877 245 245.110345489960 Phi(tan=2.15533, x=-0.420872, y=-0.90712): 2.144506920510\n    test 1878 245 245.036801688087 Beta(tan=2.14811, x=-0.422036, y=-0.906579): 2.144506920510\n    test 1879 245 244.963098707662 Theta(tan=2.14091, x=-0.423202, y=-0.906035): 2.144506920510\n    test 1880 245 245.000000000000 Mu(tan=2.14451, x=-0.422618, y=-0.906308): 2.144506920510\n    test 1881 245 244.963234330104 Chi(tan=2.14092, x=-0.4232, y=-0.906036): 2.144506920510\n    test 1882 245 245.012261984604 Xi(tan=2.14571, x=-0.422424, y=-0.906398): 2.144506920510\n\n    test 1883 252 252.084626804899 Phi(tan=3.09322, x=-1, y=-3.09322): 3.077683537175\n    test 1884 252 252.028228084417 Beta(tan=3.08285, x=-1, y=-3.08285): 3.077683537175\n    test 1885 252 251.971675808314 Theta(tan=3.07251, x=-1, y=-3.07251): 3.077683537175\n    test 1886 252 252.000000000000 Mu(tan=3.07768, x=-0.309017, y=-0.951057): 3.077683537175\n    test 1887 252 251.971790388449 Chi(tan=3.07254, x=-1, y=-3.07254), iteration=3: 3.077683537175\n    test 1888 252 252.009406472364 Xi(tan=3.0794, x=-0.620495, y=-1.91076), iteration=3: 3.077683537175\n\n    test 1889 252 252.084626804899 Phi(tan=3.09322, x=-0.307612, y=-0.951512): 3.077683537175\n    test 1890 252 252.028228084417 Beta(tan=3.08285, x=-0.308548, y=-0.951209): 3.077683537175\n    test 1891 252 251.971675808314 Theta(tan=3.07251, x=-0.309487, y=-0.950904): 3.077683537175\n    test 1892 252 252.000000000000 Mu(tan=3.07768, x=-0.309017, y=-0.951057): 3.077683537175\n    test 1893 252 251.971790388449 Chi(tan=3.07254, x=-0.309485, y=-0.950904): 3.077683537175\n    test 1894 252 252.009406472364 Xi(tan=3.0794, x=-0.308861, y=-0.951107): 3.077683537175\n\n    test 1895 259 259.053915611440 Phi(tan=5.17053, x=-1, y=-5.17053): 5.144554015970\n    test 1896 259 259.017985844271 Beta(tan=5.15319, x=-1, y=-5.15319): 5.144554015970\n    test 1897 259 258.981943992803 Theta(tan=5.13591, x=-1, y=-5.13591): 5.144554015970\n    test 1898 259 259.000000000000 Mu(tan=5.14455, x=-0.190809, y=-0.981627): 5.144554015970\n    test 1899 259 258.982021780770 Chi(tan=5.13595, x=-1, y=-5.13595), iteration=2: 5.144554015970\n    test 1900 259 259.005993953740 Xi(tan=5.14743, x=-0.383125, y=-1.97211), iteration=2: 5.144554015970\n\n    test 1901 259 259.053915611440 Phi(tan=5.17053, x=-0.189885, y=-0.981806): 5.144554015970\n    test 1902 259 259.017985844271 Beta(tan=5.15319, x=-0.190501, y=-0.981687): 5.144554015970\n    test 1903 259 258.981943992803 Theta(tan=5.13591, x=-0.191118, y=-0.981567): 5.144554015970\n    test 1904 259 259.000000000000 Mu(tan=5.14455, x=-0.190809, y=-0.981627): 5.144554015970\n    test 1905 259 258.982021780770 Chi(tan=5.13595, x=-0.191117, y=-0.981567): 5.144554015970\n    test 1906 259 259.005993953740 Xi(tan=5.14743, x=-0.190706, y=-0.981647): 5.144554015970\n\n    test 1907 266 266.020026926530 Phi(tan=14.3729, x=-1, y=-14.3729): 14.300666256712\n    test 1908 266 266.006681184269 Beta(tan=14.3247, x=-1, y=-14.3247): 14.300666256712\n    test 1909 266 265.993290981931 Theta(tan=14.2766, x=-1, y=-14.2766): 14.300666256712\n    test 1910 266 266.000000000000 Mu(tan=14.3007, x=-0.0697565, y=-0.997564): 14.300666256712\n    test 1911 266 265.993320826309 Chi(tan=14.2767, x=-1, y=-14.2767), iteration=3: 14.300666256712\n    test 1912 266 266.002226669943 Xi(tan=14.3087, x=-0.140061, y=-2.00409), iteration=3: 14.300666256712\n\n    test 1913 266 266.020026926530 Phi(tan=14.3729, x=-0.0694078, y=-0.997588): 14.300666256712\n    test 1914 266 266.006681184269 Beta(tan=14.3247, x=-0.0696401, y=-0.997572): 14.300666256712\n    test 1915 266 265.993290981931 Theta(tan=14.2766, x=-0.0698733, y=-0.997556): 14.300666256712\n    test 1916 266 266.000000000000 Mu(tan=14.3007, x=-0.0697565, y=-0.997564): 14.300666256712\n    test 1917 266 265.993320826309 Chi(tan=14.2767, x=-0.0698728, y=-0.997556): 14.300666256712\n    test 1918 266 266.002226669943 Xi(tan=14.3087, x=-0.0697177, y=-0.997567): 14.300666256712\n\n    test 1919 273 272.984958603323 Phi(tan=-19.1775, x=1.0, y=-19.1775): -19.081136687728\n    test 1920 273 272.994982020871 Beta(tan=-19.1132, x=1.0, y=-19.1132): -19.081136687728\n    test 1921 273 273.005038973685 Theta(tan=-19.0491, x=1.0, y=-19.0491): -19.081136687728\n    test 1922 273 273.000000000000 Mu(tan=-19.0811, x=0.052336, y=-0.99863): -19.081136687728\n    test 1923 273 273.005016510682 Chi(tan=-19.0492, x=1.0, y=-19.0492), iteration=3: -19.081136687728\n    test 1924 273 272.998327629166 Xi(tan=-19.0918, x=0.105083, y=-2.00623), iteration=3: -19.081136687728\n\n    test 1925 273 272.984958603323 Phi(tan=-19.1775, x=0.0520738, y=-0.998643): -19.081136687728\n    test 1926 273 272.994982020871 Beta(tan=-19.1132, x=0.0522485, y=-0.998634): -19.081136687728\n    test 1927 273 273.005038973685 Theta(tan=-19.0491, x=0.0524238, y=-0.998625): -19.081136687728\n    test 1928 273 273.000000000000 Mu(tan=-19.0811, x=0.052336, y=-0.99863): -19.081136687728\n    test 1929 273 273.005016510682 Chi(tan=-19.0492, x=0.0524234, y=-0.998625): -19.081136687728\n    test 1930 273 272.998327629166 Xi(tan=-19.0918, x=0.0523068, y=-0.998631): -19.081136687728\n\n    test 1931 280 279.950776225319 Phi(tan=-5.69991, x=1.0, y=-5.69991): -5.671281819618\n    test 1932 280 279.983579145989 Beta(tan=-5.6808, x=1.0, y=-5.6808): -5.671281819618\n    test 1933 280 280.016485774700 Theta(tan=-5.66176, x=1.0, y=-5.66176): -5.671281819618\n    test 1934 280 280.000000000000 Mu(tan=-5.67128, x=0.173648, y=-0.984808): -5.671281819618\n    test 1935 280 280.016414293005 Chi(tan=-5.6618, x=1.0, y=-5.6618), iteration=3: -5.671281819618\n    test 1936 280 279.994527544579 Xi(tan=-5.67445, x=0.348667, y=-1.97849), iteration=3: -5.671281819618\n\n    test 1937 280 279.950776225319 Phi(tan=-5.69991, x=0.172802, y=-0.984957): -5.671281819618\n    test 1938 280 279.983579145989 Beta(tan=-5.6808, x=0.173366, y=-0.984857): -5.671281819618\n    test 1939 280 280.016485774700 Theta(tan=-5.66176, x=0.173932, y=-0.984758): -5.671281819618\n    test 1940 280 280.000000000000 Mu(tan=-5.67128, x=0.173648, y=-0.984808): -5.671281819618\n    test 1941 280 280.016414293005 Chi(tan=-5.6618, x=0.17393, y=-0.984758): -5.671281819618\n    test 1942 280 279.994527544579 Xi(tan=-5.67445, x=0.173554, y=-0.984824): -5.671281819618\n\n    test 1943 287 286.919494515865 Phi(tan=-3.28737, x=1.0, y=-3.28737): -3.270852618484\n    test 1944 287 286.973146172898 Beta(tan=-3.27634, x=1.0, y=-3.27634): -3.270852618484\n    test 1945 287 287.026947513630 Theta(tan=-3.26536, x=1.0, y=-3.26536): -3.270852618484\n    test 1946 287 287.000000000000 Mu(tan=-3.27085, x=0.292372, y=-0.956305): -3.270852618484\n    test 1947 287 287.026837302239 Chi(tan=-3.26538, x=1.0, y=-3.26538), iteration=3: -3.270852618484\n    test 1948 287 286.991051342914 Xi(tan=-3.27268, x=0.587069, y=-1.92129), iteration=3: -3.270852618484\n\n    test 1949 287 286.919494515865 Phi(tan=-3.28737, x=0.291028, y=-0.956715): -3.270852618484\n    test 1950 287 286.973146172898 Beta(tan=-3.27634, x=0.291923, y=-0.956442): -3.270852618484\n    test 1951 287 287.026947513630 Theta(tan=-3.26536, x=0.292821, y=-0.956167): -3.270852618484\n    test 1952 287 287.000000000000 Mu(tan=-3.27085, x=0.292372, y=-0.956305): -3.270852618484\n    test 1953 287 287.026837302239 Chi(tan=-3.26538, x=0.29282, y=-0.956168): -3.270852618484\n    test 1954 287 286.991051342914 Xi(tan=-3.27268, x=0.292222, y=-0.95635): -3.270852618484\n\n    test 1955 294 293.892961362638 Phi(tan=-2.25738, x=1.0, y=-2.25738): -2.246036773904\n    test 1956 294 293.964300405205 Beta(tan=-2.24981, x=1.0, y=-2.24981): -2.246036773904\n    test 1957 294 294.035800165821 Theta(tan=-2.24227, x=1.0, y=-2.24227): -2.246036773904\n    test 1958 294 294.000000000000 Mu(tan=-2.24604, x=0.406737, y=-0.913545): -2.246036773904\n    test 1959 294 294.035666490170 Chi(tan=-2.24228, x=1.0, y=-2.24228), iteration=2: -2.246036773904\n    test 1960 294 293.988104995444 Xi(tan=-2.24729, x=0.816745, y=-1.83546), iteration=3: -2.246036773904\n\n    test 1961 294 293.892961362638 Phi(tan=-2.25738, x=0.405029, y=-0.914304): -2.246036773904\n    test 1962 294 293.964300405205 Beta(tan=-2.24981, x=0.406167, y=-0.913799): -2.246036773904\n    test 1963 294 294.035800165821 Theta(tan=-2.24227, x=0.407307, y=-0.913291): -2.246036773904\n    test 1964 294 294.000000000000 Mu(tan=-2.24604, x=0.406737, y=-0.913545): -2.246036773904\n    test 1965 294 294.035666490170 Chi(tan=-2.24228, x=0.407305, y=-0.913292): -2.246036773904\n    test 1966 294 293.988104995444 Xi(tan=-2.24729, x=0.406547, y=-0.91363): -2.246036773904\n\n    test 1967 301 300.872750492296 Phi(tan=-1.67268, x=1.0, y=-1.67268): -1.664279482351\n    test 1968 301 300.957566748779 Beta(tan=-1.66707, x=1.0, y=-1.66707): -1.664279482351\n    test 1969 301 301.042517212699 Theta(tan=-1.66149, x=1.0, y=-1.66149): -1.664279482351\n    test 1970 301 301.000000000000 Mu(tan=-1.66428, x=0.515038, y=-0.857167): -1.664279482351\n    test 1971 301 301.042377369066 Chi(tan=-1.66149, x=1.0, y=-1.66149), iteration=3: -1.664279482351\n    test 1972 301 300.985863408886 Xi(tan=-1.66521, x=1.03428, y=-1.72229), iteration=2: -1.664279482351\n\n    test 1973 301 300.872750492296 Phi(tan=-1.67268, x=0.513133, y=-0.858309): -1.664279482351\n    test 1974 301 300.957566748779 Beta(tan=-1.66707, x=0.514403, y=-0.857549): -1.664279482351\n    test 1975 301 301.042517212699 Theta(tan=-1.66149, x=0.515674, y=-0.856785): -1.664279482351\n    test 1976 301 301.000000000000 Mu(tan=-1.66428, x=0.515038, y=-0.857167): -1.664279482351\n    test 1977 301 301.042377369066 Chi(tan=-1.66149, x=0.515672, y=-0.856786): -1.664279482351\n    test 1978 301 300.985863408886 Xi(tan=-1.66521, x=0.514827, y=-0.857294): -1.664279482351\n\n    test 1979 308 307.860068599875 Phi(tan=-1.28641, x=1.0, y=-1.28641): -1.279941632193\n    test 1980 308 307.953346674264 Beta(tan=-1.28209, x=1.0, y=-1.28209): -1.279941632193\n    test 1981 308 308.046701061231 Theta(tan=-1.27779, x=1.0, y=-1.27779): -1.279941632193\n    test 1982 308 308.000000000000 Mu(tan=-1.27994, x=0.615661, y=-0.788011): -1.279941632193\n    test 1983 308 308.046571160545 Chi(tan=-1.2778, x=1.0, y=-1.2778), iteration=3: -1.279941632193\n    test 1984 308 307.984460065878 Xi(tan=-1.28066, x=1.23642, y=-1.58343), iteration=3: -1.279941632193\n\n    test 1985 308 307.860068599875 Phi(tan=-1.28641, x=0.613735, y=-0.789512): -1.279941632193\n    test 1986 308 307.953346674264 Beta(tan=-1.28209, x=0.61502, y=-0.788512): -1.279941632193\n    test 1987 308 308.046701061231 Theta(tan=-1.27779, x=0.616304, y=-0.787509): -1.279941632193\n    test 1988 308 308.000000000000 Mu(tan=-1.27994, x=0.615661, y=-0.788011): -1.279941632193\n    test 1989 308 308.046571160545 Chi(tan=-1.2778, x=0.616302, y=-0.78751): -1.279941632193\n    test 1990 308 307.984460065878 Xi(tan=-1.28066, x=0.615448, y=-0.788178): -1.279941632193\n\n    test 1991 315 314.855682294112 Phi(tan=-1.00505, x=1.0, y=-1.00505): -1.000000000000\n    test 1992 315 314.951894037750 Beta(tan=-1.00168, x=1.0, y=-1.00168): -1.000000000000\n    test 1993 315 315.048106323978 Theta(tan=-0.998322, x=1.0, y=-0.998322): -1.000000000000\n    test 1994 315 315.000000000000 Mu(tan=-1, x=0.707107, y=-0.707107): -1.000000000000\n    test 1995 315 315.047998507775 Chi(tan=-0.998326, x=1.0, y=-0.998326), iteration=3: -1.000000000000\n    test 1996 315 314.983979022806 Xi(tan=-1.00056, x=1.42017, y=-1.42096), iteration=2: -1.000000000000\n\n    test 1997 315 314.855682294112 Phi(tan=-1.00505, x=0.705323, y=-0.708886): -1.000000000000\n    test 1998 315 314.951894037750 Beta(tan=-1.00168, x=0.706513, y=-0.7077): -1.000000000000\n    test 1999 315 315.048106323978 Theta(tan=-0.998322, x=0.7077, y=-0.706513): -1.000000000000\n    test 2000 315 315.000000000000 Mu(tan=-1, x=0.707107, y=-0.707107): -1.000000000000\n    test 2001 315 315.047998507775 Chi(tan=-0.998326, x=0.707699, y=-0.706514): -1.000000000000\n    test 2002 315 314.983979022806 Xi(tan=-1.00056, x=0.706909, y=-0.707304): -1.000000000000\n\n    test 2003 322 321.859869499768 Phi(tan=-0.785232, x=1.0, y=-0.785232): -0.781285626507\n    test 2004 322 321.953299269346 Beta(tan=-0.782599, x=1.0, y=-0.782599): -0.781285626507\n    test 2005 322 322.046653656044 Theta(tan=-0.779975, x=1.0, y=-0.779975): -0.781285626507\n    test 2006 322 322.000000000000 Mu(tan=-0.781286, x=0.788011, y=-0.615661): -0.781285626507\n    test 2007 322 322.046574337734 Chi(tan=-0.779977, x=1.0, y=-0.779977), iteration=3: -0.781285626507\n    test 2008 322 321.984449756665 Xi(tan=-0.781723, x=1.58276, y=-1.23728), iteration=2: -0.781285626507\n\n    test 2009 322 321.859869499768 Phi(tan=-0.785232, x=0.786503, y=-0.617587): -0.781285626507\n    test 2010 322 321.953299269346 Beta(tan=-0.782599, x=0.787509, y=-0.616304): -0.781285626507\n    test 2011 322 322.046653656044 Theta(tan=-0.779975, x=0.788512, y=-0.61502): -0.781285626507\n    test 2012 322 322.000000000000 Mu(tan=-0.781286, x=0.788011, y=-0.615661): -0.781285626507\n    test 2013 322 322.046574337734 Chi(tan=-0.779977, x=0.788511, y=-0.615021): -0.781285626507\n    test 2014 322 321.984449756665 Xi(tan=-0.781723, x=0.787844, y=-0.615875): -0.781285626507\n\n    test 2015 329 328.872398901328 Phi(tan=-0.603896, x=1.0, y=-0.603896): -0.600860619028\n    test 2016 329 328.957483036491 Beta(tan=-0.601871, x=1.0, y=-0.601871): -0.600860619028\n    test 2017 329 329.042433500019 Theta(tan=-0.599853, x=1.0, y=-0.599853): -0.600860619028\n    test 2018 329 329.000000000000 Mu(tan=-0.600861, x=0.857167, y=-0.515038): -0.600860619028\n    test 2019 329 329.042382979662 Chi(tan=-0.599854, x=1.0, y=-0.599854), iteration=2: -0.600860619028\n    test 2020 329 328.985845203875 Xi(tan=-0.601197, x=1.72178, y=-1.03513), iteration=3: -0.600860619028\n\n    test 2021 329 328.872398901328 Phi(tan=-0.603896, x=0.856018, y=-0.516946): -0.600860619028\n    test 2022 329 328.957483036491 Beta(tan=-0.601871, x=0.856785, y=-0.515674): -0.600860619028\n    test 2023 329 329.042433500019 Theta(tan=-0.599853, x=0.857549, y=-0.514403): -0.600860619028\n    test 2024 329 329.000000000000 Mu(tan=-0.600861, x=0.857167, y=-0.515038): -0.600860619028\n    test 2025 329 329.042382979662 Chi(tan=-0.599854, x=0.857548, y=-0.514404): -0.600860619028\n    test 2026 329 328.985845203875 Xi(tan=-0.601197, x=0.85704, y=-0.51525): -0.600860619028\n\n    test 2027 336 335.892539588775 Phi(tan=-0.447478, x=1.0, y=-0.447478): -0.445228685309\n    test 2028 336 335.964199982805 Beta(tan=-0.445978, x=1.0, y=-0.445978): -0.445228685309\n    test 2029 336 336.035699743087 Theta(tan=-0.444482, x=1.0, y=-0.444482): -0.445228685309\n    test 2030 336 336.000000000000 Mu(tan=-0.445229, x=0.913545, y=-0.406737): -0.445228685309\n    test 2031 336 336.035673220720 Chi(tan=-0.444483, x=1.0, y=-0.444483), iteration=2: -0.445228685309\n    test 2032 336 335.988083156490 Xi(tan=-0.445478, x=1.83512, y=-0.817507), iteration=3: -0.445228685309\n\n    test 2033 336 335.892539588775 Phi(tan=-0.447478, x=0.912781, y=-0.408449): -0.445228685309\n    test 2034 336 335.964199982805 Beta(tan=-0.445978, x=0.913291, y=-0.407307): -0.445228685309\n    test 2035 336 336.035699743087 Theta(tan=-0.444482, x=0.913799, y=-0.406167): -0.445228685309\n    test 2036 336 336.000000000000 Mu(tan=-0.445229, x=0.913545, y=-0.406737): -0.445228685309\n    test 2037 336 336.035673220720 Chi(tan=-0.444483, x=0.913799, y=-0.406168): -0.445228685309\n    test 2038 336 335.988083156490 Xi(tan=-0.445478, x=0.913461, y=-0.406927): -0.445228685309\n\n    test 2039 343 342.919101298136 Phi(tan=-0.307275, x=1.0, y=-0.307275): -0.305730681459\n    test 2040 343 342.973052549710 Beta(tan=-0.306245, x=1.0, y=-0.306245): -0.305730681459\n    test 2041 343 343.026853890266 Theta(tan=-0.305218, x=1.0, y=-0.305218): -0.305730681459\n    test 2042 343 343.000000000000 Mu(tan=-0.305731, x=0.956305, y=-0.292372): -0.305730681459\n    test 2043 343 343.026843577092 Chi(tan=-0.305218, x=1.0, y=-0.305218), iteration=3: -0.305730681459\n    test 2044 343 342.991030982615 Xi(tan=-0.305902, x=1.92111, y=-0.58767), iteration=3: -0.305730681459\n\n    test 2045 343 342.919101298136 Phi(tan=-0.307275, x=0.955891, y=-0.293722): -0.305730681459\n    test 2046 343 342.973052549710 Beta(tan=-0.306245, x=0.956167, y=-0.292821): -0.305730681459\n    test 2047 343 343.026853890266 Theta(tan=-0.305218, x=0.956442, y=-0.291923): -0.305730681459\n    test 2048 343 343.000000000000 Mu(tan=-0.305731, x=0.956305, y=-0.292372): -0.305730681459\n    test 2049 343 343.026843577092 Chi(tan=-0.305218, x=0.956442, y=-0.291924): -0.305730681459\n    test 2050 343 342.991030982615 Xi(tan=-0.305902, x=0.956259, y=-0.292521): -0.305730681459\n\n    test 2051 350 349.950503618765 Phi(tan=-0.177218, x=1.0, y=-0.177218): -0.176326980708\n    test 2052 350 349.983514239795 Beta(tan=-0.176624, x=1.0, y=-0.176624): -0.176326980708\n    test 2053 350 350.016420868461 Theta(tan=-0.176031, x=1.0, y=-0.176031): -0.176326980708\n    test 2054 350 350.000000000000 Mu(tan=-0.176327, x=0.984808, y=-0.173648): -0.176326980708\n    test 2055 350 350.016418643178 Chi(tan=-0.176032, x=1.0, y=-0.176032), iteration=3: -0.176326980708\n    test 2056 350 349.994513429399 Xi(tan=-0.176426, x=1.97843, y=-0.349045), iteration=3: -0.176326980708\n\n    test 2057 350 349.950503618765 Phi(tan=-0.177218, x=0.984657, y=-0.174499): -0.176326980708\n    test 2058 350 349.983514239795 Beta(tan=-0.176624, x=0.984758, y=-0.173932): -0.176326980708\n    test 2059 350 350.016420868461 Theta(tan=-0.176031, x=0.984857, y=-0.173366): -0.176326980708\n    test 2060 350 350.000000000000 Mu(tan=-0.176327, x=0.984808, y=-0.173648): -0.176326980708\n    test 2061 350 350.016418643178 Chi(tan=-0.176032, x=0.984857, y=-0.173366): -0.176326980708\n    test 2062 350 349.994513429399 Xi(tan=-0.176426, x=0.984791, y=-0.173742): -0.176326980708\n\n    test 2063 357 356.984870427697 Phi(tan=-0.0526726, x=1.0, y=-0.0526726): -0.052407779283\n    test 2064 357 356.994961026729 Beta(tan=-0.052496, x=1.0, y=-0.052496): -0.052407779283\n    test 2065 357 357.005017979541 Theta(tan=-0.05232, x=1.0, y=-0.05232): -0.052407779283\n    test 2066 357 357.000000000000 Mu(tan=-0.0524078, x=0.99863, y=-0.052336): -0.052407779283\n    test 2067 357 357.005017917762 Chi(tan=-0.05232, x=1.0, y=-0.05232), iteration=3: -0.052407779283\n    test 2068 357 356.998323063562 Xi(tan=-0.0524371, x=2.00622, y=-0.105201), iteration=3: -0.052407779283\n\n    test 2069 357 356.984870427697 Phi(tan=-0.0526726, x=0.998616, y=-0.0525997): -0.052407779283\n    test 2070 357 356.994961026729 Beta(tan=-0.052496, x=0.998625, y=-0.0524238): -0.052407779283\n    test 2071 357 357.005017979541 Theta(tan=-0.05232, x=0.998634, y=-0.0522485): -0.052407779283\n    test 2072 357 357.000000000000 Mu(tan=-0.0524078, x=0.99863, y=-0.052336): -0.052407779283\n    test 2073 357 357.005017917762 Chi(tan=-0.05232, x=0.998634, y=-0.0522485): -0.052407779283\n    test 2074 357 356.998323063562 Xi(tan=-0.0524371, x=0.998628, y=-0.0523652): -0.052407779283\n\n    test 2075  0 0.000000000000 Phi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 2076  0 0.000000000000 Beta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 2077  0 0.000000000000 Theta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 2078  0 0.000000000000 Mu(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 2079  0 0.000000000000 Chi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 2080  0 0.000000000000 Xi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n\n    test 2081  0 0.000000000000 Phi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 2082  0 0.000000000000 Beta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 2083  0 0.000000000000 Theta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 2084  0 0.000000000000 Mu(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 2085  0 0.000000000000 Chi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 2086  0 0.000000000000 Xi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n\n    test 2087  7 7.000000000000 Phi(tan=0.122785, x=0.992546, y=0.121869): 0.122784560903\n    test 2088  7 6.976762016136 Beta(tan=0.122373, x=0.992546, y=0.121461): 0.122784560903\n    test 2089  7 6.953599649493 Theta(tan=0.121963, x=0.992546, y=0.121054): 0.122784560903\n    test 2090  7 6.965157241116 Mu(tan=0.122167, x=0.99262, y=0.121266), iteration=3: 0.122784560903\n    test 2091  7 6.953600413381 Chi(tan=0.121963, x=1.0, y=0.121963), iteration=3: 0.122784560903\n    test 2092  7 6.969019299974 Xi(tan=0.122236, x=1.99414, y=0.243755), iteration=3: 0.122784560903\n\n    test 2093  7 7.000000000000 Phi(tan=0.122785, x=0.992546, y=0.121869): 0.122784560903\n    test 2094  7 6.976762016136 Beta(tan=0.122373, x=0.992595, y=0.121467): 0.122784560903\n    test 2095  7 6.953599649493 Theta(tan=0.121963, x=0.992645, y=0.121066): 0.122784560903\n    test 2096  7 6.965157241116 Mu(tan=0.122167, x=0.99262, y=0.121266): 0.122784560903\n    test 2097  7 6.953600413381 Chi(tan=0.121963, x=0.992645, y=0.121066): 0.122784560903\n    test 2098  7 6.969019299974 Xi(tan=0.122236, x=0.992612, y=0.121333): 0.122784560903\n\n    test 2099 14 14.000000000000 Phi(tan=0.249328, x=0.970296, y=0.241922): 0.249328002843\n    test 2100 14 13.954897969322 Beta(tan=0.248492, x=0.970296, y=0.241111): 0.249328002843\n    test 2101 14 13.909929594324 Theta(tan=0.247659, x=0.970296, y=0.240302): 0.249328002843\n    test 2102 14 13.932372077582 Mu(tan=0.248075, x=0.970581, y=0.240776), iteration=3: 0.249328002843\n    test 2103 14 13.909935440611 Chi(tan=0.247659, x=1.0, y=0.247659), iteration=3: 0.249328002843\n    test 2104 14 13.939869149632 Xi(tan=0.248214, x=1.94981, y=0.48397), iteration=3: 0.249328002843\n\n    test 2105 14 14.000000000000 Phi(tan=0.249328, x=0.970296, y=0.241922): 0.249328002843\n    test 2106 14 13.954897969322 Beta(tan=0.248492, x=0.970486, y=0.241158): 0.249328002843\n    test 2107 14 13.909929594324 Theta(tan=0.247659, x=0.970675, y=0.240396): 0.249328002843\n    test 2108 14 13.932372077582 Mu(tan=0.248075, x=0.970581, y=0.240776): 0.249328002843\n    test 2109 14 13.909935440611 Chi(tan=0.247659, x=0.970675, y=0.240396): 0.249328002843\n    test 2110 14 13.939869149632 Xi(tan=0.248214, x=0.970549, y=0.240903): 0.249328002843\n\n    test 2111 21 21.000000000000 Phi(tan=0.383864, x=0.93358, y=0.358368): 0.383864035035\n    test 2112 21 20.935701709947 Beta(tan=0.382577, x=0.93358, y=0.357166): 0.383864035035\n    test 2113 21 20.871564019024 Theta(tan=0.381294, x=0.93358, y=0.355969): 0.383864035035\n    test 2114 21 20.903582743391 Mu(tan=0.381935, x=0.934182, y=0.356796), iteration=3: 0.383864035035\n    test 2115 21 20.871582327745 Chi(tan=0.381295, x=1.0, y=0.381295), iteration=2: 0.383864035035\n    test 2116 21 20.914273669704 Xi(tan=0.382148, x=1.87662, y=0.717147), iteration=3: 0.383864035035\n\n    test 2117 21 21.000000000000 Phi(tan=0.383864, x=0.93358, y=0.358368): 0.383864035035\n    test 2118 21 20.935701709947 Beta(tan=0.382577, x=0.933982, y=0.35732): 0.383864035035\n    test 2119 21 20.871564019024 Theta(tan=0.381294, x=0.934381, y=0.356274): 0.383864035035\n    test 2120 21 20.903582743391 Mu(tan=0.381935, x=0.934182, y=0.356796): 0.383864035035\n    test 2121 21 20.871582327745 Chi(tan=0.381295, x=0.934381, y=0.356275): 0.383864035035\n    test 2122 21 20.914273669703 Xi(tan=0.382148, x=0.934116, y=0.356971): 0.383864035035\n\n    test 2123 28 28.000000000000 Phi(tan=0.531709, x=0.882948, y=0.469472): 0.531709431661\n    test 2124 28 27.920311317014 Beta(tan=0.529927, x=0.882948, y=0.467898): 0.531709431661\n    test 2125 28 27.840772765521 Theta(tan=0.52815, x=0.882948, y=0.466329): 0.531709431661\n    test 2126 28 27.880495175823 Mu(tan=0.529037, x=0.883925, y=0.467629), iteration=2: 0.531709431661\n    test 2127 28 27.840811762412 Chi(tan=0.528151, x=1.0, y=0.528151), iteration=2: 0.531709431661\n    test 2128 28 27.893749908688 Xi(tan=0.529333, x=1.77557, y=0.939868), iteration=2: 0.531709431661\n\n    test 2129 28 28.000000000000 Phi(tan=0.531709, x=0.882948, y=0.469472): 0.531709431661\n    test 2130 28 27.920311317014 Beta(tan=0.529927, x=0.8836, y=0.468243): 0.531709431661\n    test 2131 28 27.840772765521 Theta(tan=0.52815, x=0.884249, y=0.467016): 0.531709431661\n    test 2132 28 27.880495175823 Mu(tan=0.529037, x=0.883925, y=0.467629): 0.531709431661\n    test 2133 28 27.840811762412 Chi(tan=0.528151, x=0.884249, y=0.467017): 0.531709431661\n    test 2134 28 27.893749908688 Xi(tan=0.529333, x=0.883817, y=0.467833): 0.531709431661\n\n    test 2135 35 35.000000000000 Phi(tan=0.700208, x=0.819152, y=0.573576): 0.700207538210\n    test 2136 35 34.909642037079 Beta(tan=0.69786, x=0.819152, y=0.571653): 0.700207538210\n    test 2137 35 34.819388702350 Theta(tan=0.69552, x=0.819152, y=0.569737): 0.700207538210\n    test 2138 35 34.864482701692 Mu(tan=0.696688, x=0.820506, y=0.571637), iteration=3: 0.700207538210\n    test 2139 35 34.819454815840 Chi(tan=0.695522, x=1.0, y=0.695522), iteration=3: 0.700207538210\n    test 2140 35 34.879518549737 Xi(tan=0.697078, x=1.64808, y=1.14884), iteration=3: 0.700207538210\n\n    test 2141 35 35.000000000000 Phi(tan=0.700208, x=0.819152, y=0.573576): 0.700207538210\n    test 2142 35 34.909642037079 Beta(tan=0.69786, x=0.820056, y=0.572284): 0.700207538210\n    test 2143 35 34.819388702350 Theta(tan=0.69552, x=0.820956, y=0.570991): 0.700207538210\n    test 2144 35 34.864482701692 Mu(tan=0.696688, x=0.820506, y=0.571637): 0.700207538210\n    test 2145 35 34.819454815840 Chi(tan=0.695522, x=0.820955, y=0.570992): 0.700207538210\n    test 2146 35 34.879518549737 Xi(tan=0.697078, x=0.820356, y=0.571853): 0.700207538210\n\n    test 2147 42 42.000000000000 Phi(tan=0.900404, x=0.743145, y=0.669131): 0.900404044298\n    test 2148 42 41.904331700939 Beta(tan=0.897385, x=0.743145, y=0.666887): 0.900404044298\n    test 2149 42 41.808698047037 Theta(tan=0.894376, x=0.743145, y=0.664651): 0.900404044298\n    test 2150 42 41.856504060443 Mu(tan=0.895879, x=0.744818, y=0.667267), iteration=3: 0.900404044298\n    test 2151 42 41.808793486106 Chi(tan=0.894379, x=1.0, y=0.894379), iteration=3: 0.900404044298\n    test 2152 42 41.872431075863 Xi(tan=0.896381, x=1.49595, y=1.34094), iteration=3: 0.900404044298\n\n    test 2153 42 42.000000000000 Phi(tan=0.900404, x=0.743145, y=0.669131): 0.900404044298\n    test 2154 42 41.904331700939 Beta(tan=0.897385, x=0.744261, y=0.667889): 0.900404044298\n    test 2155 42 41.808698047037 Theta(tan=0.894376, x=0.745375, y=0.666646): 0.900404044298\n    test 2156 42 41.856504060443 Mu(tan=0.895879, x=0.744818, y=0.667267): 0.900404044298\n    test 2157 42 41.808793486106 Chi(tan=0.894379, x=0.745374, y=0.666647): 0.900404044298\n    test 2158 42 41.872431075863 Xi(tan=0.896381, x=0.744633, y=0.667474): 0.900404044298\n\n    test 2159 49 49.000000000000 Phi(tan=1.15037, x=0.656059, y=0.75471): 1.150368407221\n    test 2160 49 48.904701906378 Beta(tan=1.14651, x=0.656059, y=0.752179): 1.150368407221\n    test 2161 49 48.809360314692 Theta(tan=1.14267, x=0.656059, y=0.749657): 1.150368407221\n    test 2162 49 48.857044717775 Mu(tan=1.14459, x=0.65794, y=0.75307), iteration=3: 1.150368407221\n    test 2163 49 48.809481485365 Chi(tan=1.14267, x=1.0, y=1.14267), iteration=3: 1.150368407221\n    test 2164 49 48.872917788725 Xi(tan=1.14523, x=1.32137, y=1.51327), iteration=2: 1.150368407221\n\n    test 2165 49 49.000000000000 Phi(tan=1.15037, x=0.656059, y=0.75471): 1.150368407221\n    test 2166 49 48.904701906378 Beta(tan=1.14651, x=0.657313, y=0.753617): 1.150368407221\n    test 2167 49 48.809360314692 Theta(tan=1.14267, x=0.658567, y=0.752523): 1.150368407221\n    test 2168 49 48.857044717775 Mu(tan=1.14459, x=0.65794, y=0.75307): 1.150368407221\n    test 2169 49 48.809481485365 Chi(tan=1.14267, x=0.658565, y=0.752524): 1.150368407221\n    test 2170 49 48.872917788725 Xi(tan=1.14523, x=0.657731, y=0.753253): 1.150368407221\n\n    test 2171 56 56.000000000000 Phi(tan=1.48256, x=0.559193, y=0.829038): 1.482560968513\n    test 2172 56 55.910737485374 Beta(tan=1.47759, x=0.559193, y=0.826258): 1.482560968513\n    test 2173 56 55.821363467296 Theta(tan=1.47264, x=0.559193, y=0.823488): 1.482560968513\n    test 2174 56 55.866085351958 Mu(tan=1.47511, x=0.561129, y=0.827728), iteration=3: 1.482560968513\n    test 2175 56 55.821500669702 Chi(tan=1.47264, x=1.0, y=1.47264), iteration=3: 1.482560968513\n    test 2176 56 55.880960089169 Xi(tan=1.47594, x=1.12687, y=1.66318), iteration=3: 1.482560968513\n\n    test 2177 56 56.000000000000 Phi(tan=1.48256, x=0.559193, y=0.829038): 1.482560968513\n    test 2178 56 55.910737485374 Beta(tan=1.47759, x=0.560484, y=0.828165): 1.482560968513\n    test 2179 56 55.821363467296 Theta(tan=1.47264, x=0.561775, y=0.82729): 1.482560968513\n    test 2180 56 55.866085351958 Mu(tan=1.47511, x=0.561129, y=0.827728): 1.482560968513\n    test 2181 56 55.821500669702 Chi(tan=1.47264, x=0.561773, y=0.827291): 1.482560968513\n    test 2182 56 55.880960089169 Xi(tan=1.47594, x=0.560914, y=0.827874): 1.482560968513\n\n    test 2183 63 63.000000000000 Phi(tan=1.96261, x=0.45399, y=0.891007): 1.962610505505\n    test 2184 63 62.922085806991 Beta(tan=1.95603, x=0.45399, y=0.888019): 1.962610505505\n    test 2185 63 62.844018233783 Theta(tan=1.94947, x=0.45399, y=0.885042): 1.962610505505\n    test 2186 63 62.883100004844 Mu(tan=1.95275, x=0.455807, y=0.890078), iteration=3: 1.962610505505\n    test 2187 63 62.844156794245 Chi(tan=1.94948, x=1.0, y=1.94948), iteration=3: 1.962610505505\n    test 2188 63 62.896089166605 Xi(tan=1.95384, x=0.915303, y=1.78836), iteration=3: 1.962610505505\n\n    test 2189 63 63.000000000000 Phi(tan=1.96261, x=0.45399, y=0.891007): 1.962610505505\n    test 2190 63 62.922085806991 Beta(tan=1.95603, x=0.455202, y=0.890388): 1.962610505505\n    test 2191 63 62.844018233783 Theta(tan=1.94947, x=0.456414, y=0.889767): 1.962610505505\n    test 2192 63 62.883100004844 Mu(tan=1.95275, x=0.455807, y=0.890078): 1.962610505505\n    test 2193 63 62.844156794245 Chi(tan=1.94948, x=0.456412, y=0.889768): 1.962610505505\n    test 2194 63 62.896089166605 Xi(tan=1.95384, x=0.455606, y=0.890182): 1.962610505505\n\n    test 2195 70 70.000000000000 Phi(tan=2.74748, x=0.34202, y=0.939693): 2.747477419455\n    test 2196 70 69.938076331685 Beta(tan=2.73827, x=0.34202, y=0.936542): 2.747477419455\n    test 2197 70 69.875993436424 Theta(tan=2.72908, x=0.34202, y=0.933402): 2.747477419455\n    test 2198 70 69.907084709374 Mu(tan=2.73368, x=0.343544, y=0.939137), iteration=3: 2.747477419455\n    test 2199 70 69.876116092580 Chi(tan=2.7291, x=1.0, y=2.7291), iteration=3: 2.747477419455\n    test 2200 70 69.917411740864 Xi(tan=2.7352, x=0.689832, y=1.88683), iteration=3: 2.747477419455\n\n    test 2201 70 70.000000000000 Phi(tan=2.74748, x=0.34202, y=0.939693): 2.747477419455\n    test 2202 70 69.938076331685 Beta(tan=2.73827, x=0.343036, y=0.939322): 2.747477419455\n    test 2203 70 69.875993436424 Theta(tan=2.72908, x=0.344053, y=0.93895): 2.747477419455\n    test 2204 70 69.907084709374 Mu(tan=2.73368, x=0.343544, y=0.939137): 2.747477419455\n    test 2205 70 69.876116092580 Chi(tan=2.7291, x=0.344051, y=0.938951): 2.747477419455\n    test 2206 70 69.917411740864 Xi(tan=2.7352, x=0.343374, y=0.939199): 2.747477419455\n\n    test 2207 77 77.000000000000 Phi(tan=4.33148, x=0.224951, y=0.97437): 4.331475874284\n    test 2208 77 76.957759584883 Beta(tan=4.31695, x=0.224951, y=0.971103): 4.331475874284\n    test 2209 77 76.915391564534 Theta(tan=4.30248, x=0.224951, y=0.967847): 4.331475874284\n    test 2210 77 76.936615512426 Mu(tan=4.30972, x=0.226029, y=0.974121), iteration=3: 4.331475874284\n    test 2211 77 76.915481614667 Chi(tan=4.30251, x=1.0, y=4.30251), iteration=3: 4.331475874284\n    test 2212 77 76.943661825901 Xi(tan=4.31213, x=0.453847, y=1.95704), iteration=3: 4.331475874284\n\n    test 2213 77 77.000000000000 Phi(tan=4.33148, x=0.224951, y=0.97437): 4.331475874284\n    test 2214 77 76.957759584883 Beta(tan=4.31695, x=0.225669, y=0.974204): 4.331475874284\n    test 2215 77 76.915391564534 Theta(tan=4.30248, x=0.22639, y=0.974037): 4.331475874284\n    test 2216 77 76.936615512426 Mu(tan=4.30972, x=0.226029, y=0.974121): 4.331475874284\n    test 2217 77 76.915481614667 Chi(tan=4.30251, x=0.226388, y=0.974037): 4.331475874284\n    test 2218 77 76.943661825901 Xi(tan=4.31213, x=0.225909, y=0.974148): 4.331475874284\n\n    test 2219 84 84.000000000000 Phi(tan=9.51436, x=0.104528, y=0.994522): 9.514364454223\n    test 2220 84 83.979963440552 Beta(tan=9.48246, x=0.104528, y=0.991187): 9.514364454223\n    test 2221 84 83.959860961536 Theta(tan=9.45067, x=0.104528, y=0.987864): 9.514364454223\n    test 2222 84 83.969932834829 Mu(tan=9.46657, x=0.10505, y=0.994467), iteration=3: 9.514364454223\n    test 2223 84 83.959905488972 Chi(tan=9.45074, x=1.0, y=9.45074), iteration=3: 9.514364454223\n    test 2224 84 83.973275752467 Xi(tan=9.47186, x=0.210927, y=1.99788), iteration=3: 9.514364454223\n\n    test 2225 84 84.000000000000 Phi(tan=9.51436, x=0.104528, y=0.994522): 9.514364454223\n    test 2226 84 83.979963440552 Beta(tan=9.48246, x=0.104876, y=0.994485): 9.514364454223\n    test 2227 84 83.959860961536 Theta(tan=9.45067, x=0.105225, y=0.994448): 9.514364454223\n    test 2228 84 83.969932834829 Mu(tan=9.46657, x=0.10505, y=0.994467): 9.514364454223\n    test 2229 84 83.959905488972 Chi(tan=9.45074, x=0.105224, y=0.994449): 9.514364454223\n    test 2230 84 83.973275752467 Xi(tan=9.47186, x=0.104992, y=0.994473): 9.514364454223\n\n    test 2231 91 91.000000000000 Phi(tan=-57.29, x=-0.0174524, y=0.999848): -57.289961630759\n    test 2232 91 91.003363403239 Beta(tan=-57.0979, x=-0.0174524, y=0.996495): -57.289961630759\n    test 2233 91 91.006738114317 Theta(tan=-56.9064, x=-0.0174524, y=0.993154): -57.289961630759\n    test 2234 91 91.005047219150 Mu(tan=-57.0022, x=-0.0175405, y=0.999846), iteration=3: -57.289961630759\n    test 2235 91 91.006730558280 Chi(tan=-56.9069, x=-1, y=56.9069), iteration=3: -57.289961630759\n    test 2236 91 91.004486042138 Xi(tan=-57.0341, x=-0.0352188, y=2.00867), iteration=3: -57.289961630759\n\n    test 2237 91 91.000000000000 Phi(tan=-57.29, x=-0.0174524, y=0.999848): -57.289961630759\n    test 2238 91 91.003363403239 Beta(tan=-57.0979, x=-0.0175111, y=0.999847): -57.289961630760  FAILED, KNOWN (6.07726e-15), expected -57.289961630759\n    test 2239 91 91.006738114317 Theta(tan=-56.9064, x=-0.01757, y=0.999846): -57.289961630760  FAILED, KNOWN (2.48051e-15), expected -57.289961630759\n    test 2240 91 91.005047219150 Mu(tan=-57.0022, x=-0.0175405, y=0.999846): -57.289961630760  FAILED, KNOWN (8.6818e-15), expected -57.289961630759\n    test 2241 91 91.006730558280 Chi(tan=-56.9069, x=-0.0175699, y=0.999846): -57.289961630759\n    test 2242 91 91.004486042138 Xi(tan=-57.0341, x=-0.0175307, y=0.999846): -57.289961630759\n\n    test 2243 98 98.000000000000 Phi(tan=-7.11537, x=-0.139173, y=0.990268): -7.115369722384\n    test 2244 98 98.026562562307 Beta(tan=-7.09151, x=-0.139173, y=0.986948): -7.115369722384\n    test 2245 98 98.053210993331 Theta(tan=-7.06774, x=-0.139173, y=0.983639): -7.115369722384\n    test 2246 98 98.039859900320 Mu(tan=-7.07963, x=-0.139862, y=0.990171), iteration=3: -7.115369722384\n    test 2247 98 98.053152474664 Chi(tan=-7.06779, x=-1, y=7.06779), iteration=3: -7.115369722384\n    test 2248 98 98.035428327772 Xi(tan=-7.08359, x=-0.280826, y=1.98926), iteration=3: -7.115369722384\n\n    test 2249 98 98.000000000000 Phi(tan=-7.11537, x=-0.139173, y=0.990268): -7.115369722384\n    test 2250 98 98.026562562307 Beta(tan=-7.09151, x=-0.139632, y=0.990203): -7.115369722384\n    test 2251 98 98.053210993331 Theta(tan=-7.06774, x=-0.140093, y=0.990138): -7.115369722384\n    test 2252 98 98.039859900320 Mu(tan=-7.07963, x=-0.139862, y=0.990171): -7.115369722384\n    test 2253 98 98.053152474664 Chi(tan=-7.06779, x=-0.140092, y=0.990139): -7.115369722384\n    test 2254 98 98.035428327772 Xi(tan=-7.08359, x=-0.139785, y=0.990182): -7.115369722384\n\n    test 2255 105 105.000000000000 Phi(tan=-3.73205, x=-0.258819, y=0.965926): -3.732050807569\n    test 2256 105 105.048176169243 Beta(tan=-3.71954, x=-0.258819, y=0.962687): -3.732050807569\n    test 2257 105 105.096492525996 Theta(tan=-3.70707, x=-0.258819, y=0.95946): -3.732050807569\n    test 2258 105 105.072290473972 Mu(tan=-3.7133, x=-0.260038, y=0.965599), iteration=2: -3.732050807569\n    test 2259 105 105.096391619832 Chi(tan=-3.70709, x=-1, y=3.70709), iteration=3: -3.732050807569\n    test 2260 105 105.064254515857 Xi(tan=-3.71538, x=-0.522138, y=1.93994), iteration=2: -3.732050807569\n\n    test 2261 105 105.000000000000 Phi(tan=-3.73205, x=-0.258819, y=0.965926): -3.732050807569\n    test 2262 105 105.048176169243 Beta(tan=-3.71954, x=-0.259631, y=0.965708): -3.732050807569\n    test 2263 105 105.096492525996 Theta(tan=-3.70707, x=-0.260445, y=0.965489): -3.732050807569\n    test 2264 105 105.072290473972 Mu(tan=-3.7133, x=-0.260038, y=0.965599): -3.732050807569\n    test 2265 105 105.096391619832 Chi(tan=-3.70709, x=-0.260444, y=0.965489): -3.732050807569\n    test 2266 105 105.064254515857 Xi(tan=-3.71538, x=-0.259902, y=0.965635): -3.732050807569\n\n    test 2267 112 112.000000000000 Phi(tan=-2.47509, x=-0.374607, y=0.927184): -2.475086853416\n    test 2268 112 112.066915437341 Beta(tan=-2.46679, x=-0.374607, y=0.924075): -2.475086853416\n    test 2269 112 112.133992362411 Theta(tan=-2.45852, x=-0.374607, y=0.920977): -2.475086853416\n    test 2270 112 112.100403370338 Mu(tan=-2.46265, x=-0.376231, y=0.926526), iteration=3: -2.475086853416\n    test 2271 112 112.133863370700 Chi(tan=-2.45853, x=-1, y=2.45853), iteration=3: -2.475086853416\n    test 2272 112 112.089244898668 Xi(tan=-2.46403, x=-0.755478, y=1.86152), iteration=3: -2.475086853416\n\n    test 2273 112 112.000000000000 Phi(tan=-2.47509, x=-0.374607, y=0.927184): -2.475086853416\n    test 2274 112 112.066915437341 Beta(tan=-2.46679, x=-0.375689, y=0.926746): -2.475086853416\n    test 2275 112 112.133992362411 Theta(tan=-2.45852, x=-0.376774, y=0.926305): -2.475086853416\n    test 2276 112 112.100403370338 Mu(tan=-2.46265, x=-0.376231, y=0.926526): -2.475086853416\n    test 2277 112 112.133863370700 Chi(tan=-2.45853, x=-0.376772, y=0.926306): -2.475086853416\n    test 2278 112 112.089244898668 Xi(tan=-2.46403, x=-0.37605, y=0.926599): -2.475086853416\n\n    test 2279 119 119.000000000000 Phi(tan=-1.80405, x=-0.48481, y=0.87462): -1.804047755271\n    test 2280 119 119.081665222463 Beta(tan=-1.798, x=-0.48481, y=0.871687): -1.804047755271\n    test 2281 119 119.163475249163 Theta(tan=-1.79197, x=-0.48481, y=0.868765): -1.804047755271\n    test 2282 119 119.122524937479 Mu(tan=-1.79498, x=-0.486679, y=0.873581), iteration=3: -1.804047755271\n    test 2283 119 119.163335373555 Chi(tan=-1.79198, x=-1, y=1.79198), iteration=3: -1.804047755271\n    test 2284 119 119.108912006611 Xi(tan=-1.79599, x=-0.977311, y=1.75524), iteration=3: -1.804047755271\n\n    test 2285 119 119.000000000000 Phi(tan=-1.80405, x=-0.48481, y=0.87462): -1.804047755271\n    test 2286 119 119.081665222463 Beta(tan=-1.798, x=-0.486056, y=0.873928): -1.804047755271\n    test 2287 119 119.163475249163 Theta(tan=-1.79197, x=-0.487303, y=0.873233): -1.804047755271\n    test 2288 119 119.122524937479 Mu(tan=-1.79498, x=-0.486679, y=0.873581): -1.804047755271\n    test 2289 119 119.163335373555 Chi(tan=-1.79198, x=-0.487301, y=0.873234): -1.804047755271\n    test 2290 119 119.108912006611 Xi(tan=-1.79599, x=-0.486471, y=0.873697): -1.804047755271\n\n    test 2291 126 126.000000000000 Phi(tan=-1.37638, x=-0.587785, y=0.809017): -1.376381920471\n    test 2292 126 126.091550707249 Beta(tan=-1.37177, x=-0.587785, y=0.806305): -1.376381920471\n    test 2293 126 126.183195540448 Theta(tan=-1.36717, x=-0.587785, y=0.803601): -1.376381920471\n    test 2294 126 126.137343684620 Mu(tan=-1.36947, x=-0.589723, y=0.807606), iteration=3: -1.376381920471\n    test 2295 126 126.183061603372 Chi(tan=-1.36717, x=-1, y=1.36717), iteration=3: -1.376381920471\n    test 2296 126 126.122089633630 Xi(tan=-1.37023, x=-1.18431, y=1.62278), iteration=2: -1.376381920471\n\n    test 2297 126 126.000000000000 Phi(tan=-1.37638, x=-0.587785, y=0.809017): -1.376381920471\n    test 2298 126 126.091550707249 Beta(tan=-1.37177, x=-0.589077, y=0.808077): -1.376381920471\n    test 2299 126 126.183195540448 Theta(tan=-1.36717, x=-0.590369, y=0.807133): -1.376381920471\n    test 2300 126 126.137343684620 Mu(tan=-1.36947, x=-0.589723, y=0.807606): -1.376381920471\n    test 2301 126 126.183061603372 Chi(tan=-1.36717, x=-0.590367, y=0.807135): -1.376381920471\n    test 2302 126 126.122089633630 Xi(tan=-1.37023, x=-0.589508, y=0.807763): -1.376381920471\n\n    test 2303 133 133.000000000000 Phi(tan=-1.07237, x=-0.681998, y=0.731354): -1.072368710025\n    test 2304 133 133.095989026852 Beta(tan=-1.06877, x=-0.681998, y=0.728902): -1.072368710025\n    test 2305 133 133.191999466035 Theta(tan=-1.06519, x=-0.681998, y=0.726458): -1.072368710025\n    test 2306 133 133.143987543114 Mu(tan=-1.06698, x=-0.683834, y=0.729637), iteration=3: -1.072368710025\n    test 2307 133 133.191884915480 Chi(tan=-1.06519, x=-1, y=1.06519), iteration=2: -1.072368710025\n    test 2308 133 133.128001595557 Xi(tan=-1.06758, x=-1.3734, y=1.46621), iteration=3: -1.072368710025\n\n    test 2309 133 133.000000000000 Phi(tan=-1.07237, x=-0.681998, y=0.731354): -1.072368710025\n    test 2310 133 133.095989026852 Beta(tan=-1.06877, x=-0.683223, y=0.73021): -1.072368710025\n    test 2311 133 133.191999466035 Theta(tan=-1.06519, x=-0.684445, y=0.729064): -1.072368710025\n    test 2312 133 133.143987543114 Mu(tan=-1.06698, x=-0.683834, y=0.729637): -1.072368710025\n    test 2313 133 133.191884915480 Chi(tan=-1.06519, x=-0.684444, y=0.729066): -1.072368710025\n    test 2314 133 133.128001595557 Xi(tan=-1.06758, x=-0.683631, y=0.729828): -1.072368710025\n\n    test 2315 140 140.000000000000 Phi(tan=-0.8391, x=-0.766044, y=0.642788): -0.839099631177\n    test 2316 140 140.094722853987 Beta(tan=-0.836286, x=-0.766044, y=0.640632): -0.839099631177\n    test 2317 140 140.189389448072 Theta(tan=-0.833482, x=-0.766044, y=0.638485): -0.839099631177\n    test 2318 140 140.142073716249 Mu(tan=-0.834883, x=-0.767636, y=0.640886), iteration=3: -0.839099631177\n    test 2319 140 140.189302292623 Chi(tan=-0.833485, x=-1, y=0.833485), iteration=2: -0.839099631177\n    test 2320 140 140.126306265466 Xi(tan=-0.83535, x=-1.54181, y=1.28795), iteration=2: -0.839099631177\n\n    test 2321 140 140.000000000000 Phi(tan=-0.8391, x=-0.766044, y=0.642788): -0.839099631177\n    test 2322 140 140.094722853987 Beta(tan=-0.836286, x=-0.767106, y=0.64152): -0.839099631177\n    test 2323 140 140.189389448072 Theta(tan=-0.833482, x=-0.768165, y=0.640252): -0.839099631177\n    test 2324 140 140.142073716249 Mu(tan=-0.834883, x=-0.767636, y=0.640886): -0.839099631177\n    test 2325 140 140.189302292623 Chi(tan=-0.833485, x=-0.768164, y=0.640253): -0.839099631177\n    test 2326 140 140.126306265466 Xi(tan=-0.83535, x=-0.76746, y=0.641097): -0.839099631177\n\n    test 2327 147 147.000000000000 Phi(tan=-0.649408, x=-0.838671, y=0.544639): -0.649407593198\n    test 2328 147 147.087834196097 Beta(tan=-0.64723, x=-0.838671, y=0.542813): -0.649407593198\n    test 2329 147 147.175547668144 Theta(tan=-0.64506, x=-0.838671, y=0.540993): -0.649407593198\n    test 2330 147 147.131728623858 Mu(tan=-0.646144, x=-0.839921, y=0.542709), iteration=3: -0.649407593198\n    test 2331 147 147.175489751194 Chi(tan=-0.645062, x=-1, y=0.645062), iteration=3: -0.649407593198\n    test 2332 147 147.117114615992 Xi(tan=-0.646505, x=-1.68711, y=1.09072), iteration=3: -0.649407593198\n\n    test 2333 147 147.000000000000 Phi(tan=-0.649408, x=-0.838671, y=0.544639): -0.649407593198\n    test 2334 147 147.087834196097 Beta(tan=-0.64723, x=-0.839505, y=0.543353): -0.649407593198\n    test 2335 147 147.175547668144 Theta(tan=-0.64506, x=-0.840335, y=0.542067): -0.649407593198\n    test 2336 147 147.131728623858 Mu(tan=-0.646144, x=-0.839921, y=0.542709): -0.649407593198\n    test 2337 147 147.175489751194 Chi(tan=-0.645062, x=-0.840335, y=0.542068): -0.649407593198\n    test 2338 147 147.117114615992 Xi(tan=-0.646505, x=-0.839782, y=0.542924): -0.649407593198\n\n    test 2339 154 154.000000000000 Phi(tan=-0.487733, x=-0.898794, y=0.438371): -0.487732588566\n    test 2340 154 154.075737936138 Beta(tan=-0.486097, x=-0.898794, y=0.436901): -0.487732588566\n    test 2341 154 154.151318905421 Theta(tan=-0.484468, x=-0.898794, y=0.435437): -0.487732588566\n    test 2342 154 154.113577416532 Mu(tan=-0.485281, x=-0.899661, y=0.436589), iteration=3: -0.487732588566\n    test 2343 154 154.151286603865 Chi(tan=-0.484468, x=-1, y=0.484468), iteration=3: -0.487732588566\n    test 2344 154 154.100981227925 Xi(tan=-0.485553, x=-1.80721, y=0.877495), iteration=3: -0.487732588566\n\n    test 2345 154 154.000000000000 Phi(tan=-0.487733, x=-0.898794, y=0.438371): -0.487732588566\n    test 2346 154 154.075737936138 Beta(tan=-0.486097, x=-0.899373, y=0.437183): -0.487732588566\n    test 2347 154 154.151318905421 Theta(tan=-0.484468, x=-0.899949, y=0.435996): -0.487732588566\n    test 2348 154 154.113577416532 Mu(tan=-0.485281, x=-0.899661, y=0.436589): -0.487732588566\n    test 2349 154 154.151286603865 Chi(tan=-0.484468, x=-0.899948, y=0.435996): -0.487732588566\n    test 2350 154 154.100981227925 Xi(tan=-0.485553, x=-0.899565, y=0.436786): -0.487732588566\n\n    test 2351 161 161.000000000000 Phi(tan=-0.344328, x=-0.945519, y=0.325568): -0.344327613290\n    test 2352 161 161.059155871563 Beta(tan=-0.343173, x=-0.945519, y=0.324477): -0.344327613290\n    test 2353 161 161.118155143282 Theta(tan=-0.342023, x=-0.945519, y=0.323389): -0.344327613290\n    test 2354 161 161.088704377377 Mu(tan=-0.342597, x=-0.946021, y=0.324104), iteration=3: -0.344327613290\n    test 2355 161 161.118141245926 Chi(tan=-0.342023, x=-1, y=0.342023), iteration=3: -0.344327613290\n    test 2356 161 161.078869359618 Xi(tan=-0.342789, x=-1.90043, y=0.651445), iteration=2: -0.344327613290\n\n    test 2357 161 161.000000000000 Phi(tan=-0.344328, x=-0.945519, y=0.325568): -0.344327613290\n    test 2358 161 161.059155871563 Beta(tan=-0.343173, x=-0.945854, y=0.324592): -0.344327613290\n    test 2359 161 161.118155143282 Theta(tan=-0.342023, x=-0.946188, y=0.323618): -0.344327613290\n    test 2360 161 161.088704377377 Mu(tan=-0.342597, x=-0.946021, y=0.324104): -0.344327613290\n    test 2361 161 161.118141245926 Chi(tan=-0.342023, x=-0.946188, y=0.323618): -0.344327613290\n    test 2362 161 161.078869359618 Xi(tan=-0.342789, x=-0.945966, y=0.324266): -0.344327613290\n\n    test 2363 168 168.000000000000 Phi(tan=-0.212557, x=-0.978148, y=0.207912): -0.212556561670\n    test 2364 168 168.039073098008 Beta(tan=-0.211844, x=-0.978148, y=0.207215): -0.212556561670\n    test 2365 168 168.078026427494 Theta(tan=-0.211134, x=-0.978148, y=0.20652): -0.212556561670\n    test 2366 168 168.058587132190 Mu(tan=-0.211488, x=-0.97836, y=0.206911), iteration=3: -0.212556561670\n    test 2367 168 168.078022687531 Chi(tan=-0.211134, x=-1, y=0.211134), iteration=3: -0.212556561670\n    test 2368 168 168.052092611435 Xi(tan=-0.211606, x=-1.96546, y=0.415904), iteration=3: -0.212556561670\n\n    test 2369 168 168.000000000000 Phi(tan=-0.212557, x=-0.978148, y=0.207912): -0.212556561670\n    test 2370 168 168.039073098008 Beta(tan=-0.211844, x=-0.978289, y=0.207245): -0.212556561670\n    test 2371 168 168.078026427494 Theta(tan=-0.211134, x=-0.97843, y=0.206579): -0.212556561670\n    test 2372 168 168.058587132190 Mu(tan=-0.211488, x=-0.97836, y=0.206911): -0.212556561670\n    test 2373 168 168.078022687531 Chi(tan=-0.211134, x=-0.97843, y=0.20658): -0.212556561670\n    test 2374 168 168.052092611435 Xi(tan=-0.211606, x=-0.978336, y=0.207022): -0.212556561670\n\n    test 2375 175 175.000000000000 Phi(tan=-0.0874887, x=-0.996195, y=0.0871557): -0.087488663526\n    test 2376 175 175.016679496811 Beta(tan=-0.0871953, x=-0.996195, y=0.0868635): -0.087488663526\n    test 2377 175 175.033303912991 Theta(tan=-0.086903, x=-0.996195, y=0.0865723): -0.087488663526\n    test 2378 175 175.025008889061 Mu(tan=-0.0870489, x=-0.996233, y=0.0867209), iteration=2: -0.087488663526\n    test 2379 175 175.033303632597 Chi(tan=-0.086903, x=-1, y=0.086903), iteration=3: -0.087488663526\n    test 2380 175 175.022236903877 Xi(tan=-0.0870976, x=-2.0014, y=0.174317), iteration=3: -0.087488663526\n\n    test 2381 175 175.000000000000 Phi(tan=-0.0874887, x=-0.996195, y=0.0871557): -0.087488663526\n    test 2382 175 175.016679496811 Beta(tan=-0.0871953, x=-0.99622, y=0.0868657): -0.087488663526\n    test 2383 175 175.033303912991 Theta(tan=-0.086903, x=-0.996245, y=0.0865767): -0.087488663526\n    test 2384 175 175.025008889061 Mu(tan=-0.0870489, x=-0.996233, y=0.0867209): -0.087488663526\n    test 2385 175 175.033303632597 Chi(tan=-0.086903, x=-0.996245, y=0.0865767): -0.087488663526\n    test 2386 175 175.022236903877 Xi(tan=-0.0870976, x=-0.996228, y=0.0867691): -0.087488663526\n\n    test 2387 182 182.000000000000 Phi(tan=0.0349208, x=-0.999391, y=-0.0348995): 0.034920769492\n    test 2388 182 181.993299797077 Beta(tan=0.0348037, x=-0.999391, y=-0.0347825): 0.034920769492\n    test 2389 182 181.986622004399 Theta(tan=0.034687, x=-0.999391, y=-0.0346659): 0.034920769492\n    test 2390 182 181.989953909276 Mu(tan=0.0347452, x=-0.999397, y=-0.0347243), iteration=3: 0.034920769492\n    test 2391 182 181.986622022458 Chi(tan=0.034687, x=-1, y=-0.034687), iteration=2: 0.034920769492\n    test 2392 182 181.991067395746 Xi(tan=0.0347647, x=-2.00777, y=-0.0697994), iteration=3: 0.034920769492\n\n    test 2393 182 182.000000000000 Phi(tan=0.0349208, x=-0.999391, y=-0.0348995): 0.034920769492\n    test 2394 182 181.993299797077 Beta(tan=0.0348037, x=-0.999395, y=-0.0347826): 0.034920769492\n    test 2395 182 181.986622004399 Theta(tan=0.034687, x=-0.999399, y=-0.0346661): 0.034920769492\n    test 2396 182 181.989953909276 Mu(tan=0.0347452, x=-0.999397, y=-0.0347243): 0.034920769492\n    test 2397 182 181.986622022458 Chi(tan=0.034687, x=-0.999399, y=-0.0346661): 0.034920769492\n    test 2398 182 181.991067395746 Xi(tan=0.0347647, x=-0.999396, y=-0.0347437): 0.034920769492\n\n    test 2399 189 189.000000000000 Phi(tan=0.158384, x=-0.987688, y=-0.156434): 0.158384440325\n    test 2400 189 188.970316191157 Beta(tan=0.157853, x=-0.987688, y=-0.15591): 0.158384440325\n    test 2401 189 188.940727074962 Theta(tan=0.157324, x=-0.987688, y=-0.155387): 0.158384440325\n    test 2402 189 188.955492089230 Mu(tan=0.157588, x=-0.98781, y=-0.155667), iteration=3: 0.158384440325\n    test 2403 189 188.940728682981 Chi(tan=0.157324, x=-1, y=-0.157324), iteration=2: 0.158384440325\n    test 2404 189 188.960425606105 Xi(tan=0.157676, x=-1.98446, y=-0.312903), iteration=3: 0.158384440325\n\n    test 2405 189 189.000000000000 Phi(tan=0.158384, x=-0.987688, y=-0.156434): 0.158384440325\n    test 2406 189 188.970316191157 Beta(tan=0.157853, x=-0.987769, y=-0.155923): 0.158384440325\n    test 2407 189 188.940727074962 Theta(tan=0.157324, x=-0.98785, y=-0.155413): 0.158384440325\n    test 2408 189 188.955492089230 Mu(tan=0.157588, x=-0.98781, y=-0.155667): 0.158384440325\n    test 2409 189 188.940728682981 Chi(tan=0.157324, x=-0.98785, y=-0.155413): 0.158384440325\n    test 2410 189 188.960425606105 Xi(tan=0.157676, x=-0.987796, y=-0.155752): 0.158384440325\n\n    test 2411 196 196.000000000000 Phi(tan=0.286745, x=-0.961262, y=-0.275637): 0.286745385759\n    test 2412 196 195.949087795468 Beta(tan=0.285784, x=-0.961262, y=-0.274713): 0.286745385759\n    test 2413 196 195.898320549032 Theta(tan=0.284826, x=-0.961262, y=-0.273792): 0.286745385759\n    test 2414 196 195.923658939114 Mu(tan=0.285304, x=-0.961628, y=-0.274356), iteration=3: 0.286745385759\n    test 2415 196 195.898329118388 Chi(tan=0.284826, x=-1, y=-0.284826), iteration=3: 0.286745385759\n    test 2416 196 195.932122390859 Xi(tan=0.285464, x=-1.93181, y=-0.551462), iteration=2: 0.286745385759\n\n    test 2417 196 196.000000000000 Phi(tan=0.286745, x=-0.961262, y=-0.275637): 0.286745385759\n    test 2418 196 195.949087795468 Beta(tan=0.285784, x=-0.961506, y=-0.274783): 0.286745385759\n    test 2419 196 195.898320549032 Theta(tan=0.284826, x=-0.961749, y=-0.273931): 0.286745385759\n    test 2420 196 195.923658939114 Mu(tan=0.285304, x=-0.961628, y=-0.274356): 0.286745385759\n    test 2421 196 195.898329118388 Chi(tan=0.284826, x=-0.961749, y=-0.273931): 0.286745385759\n    test 2422 196 195.932122390859 Xi(tan=0.285464, x=-0.961588, y=-0.274498): 0.286745385759\n\n    test 2423 203 203.000000000000 Phi(tan=0.424475, x=-0.920505, y=-0.390731): 0.424474816210\n    test 2424 203 202.930871376810 Beta(tan=0.423052, x=-0.920505, y=-0.389421): 0.424474816210\n    test 2425 203 202.861904242075 Theta(tan=0.421633, x=-0.920505, y=-0.388115): 0.424474816210\n    test 2426 203 202.896337407506 Mu(tan=0.422341, x=-0.92121, y=-0.389065), iteration=3: 0.424474816210\n    test 2427 203 202.861927650711 Chi(tan=0.421634, x=-1, y=-0.421634), iteration=3: 0.424474816210\n    test 2428 203 202.907832581930 Xi(tan=0.422578, x=-1.85054, y=-0.781995), iteration=3: 0.424474816210\n\n    test 2429 203 203.000000000000 Phi(tan=0.424475, x=-0.920505, y=-0.390731): 0.424474816210\n    test 2430 203 202.930871376810 Beta(tan=0.423052, x=-0.920976, y=-0.38962): 0.424474816210\n    test 2431 203 202.861904242075 Theta(tan=0.421633, x=-0.921444, y=-0.388511): 0.424474816210\n    test 2432 203 202.896337407506 Mu(tan=0.422341, x=-0.92121, y=-0.389065): 0.424474816210\n    test 2433 203 202.861927650711 Chi(tan=0.421634, x=-0.921444, y=-0.388512): 0.424474816210\n    test 2434 203 202.907832581930 Xi(tan=0.422578, x=-0.921132, y=-0.38925): 0.424474816210\n\n    test 2435 210 210.000000000000 Phi(tan=0.57735, x=-0.866025, y=-0.5): 0.577350269190\n    test 2436 210 209.916747713236 Beta(tan=0.575415, x=-0.866025, y=-0.498324): 0.577350269190\n    test 2437 210 209.833635809829 Theta(tan=0.573485, x=-0.866025, y=-0.496653): 0.577350269190\n    test 2438 210 209.875147936061 Mu(tan=0.574448, x=-0.867113, y=-0.498112), iteration=3: 0.577350269190\n    test 2439 210 209.833682042481 Chi(tan=0.573486, x=-1, y=-0.573486), iteration=2: 0.577350269190\n    test 2440 210 209.888997034460 Xi(tan=0.57477, x=-1.74177, y=-1.00112), iteration=3: 0.577350269190\n\n    test 2441 210 210.000000000000 Phi(tan=0.57735, x=-0.866025, y=-0.5): 0.577350269190\n    test 2442 210 209.916747713236 Beta(tan=0.575415, x=-0.866751, y=-0.498741): 0.577350269190\n    test 2443 210 209.833635809829 Theta(tan=0.573485, x=-0.867474, y=-0.497483): 0.577350269190\n    test 2444 210 209.875147936061 Mu(tan=0.574448, x=-0.867113, y=-0.498112): 0.577350269190\n    test 2445 210 209.833682042481 Chi(tan=0.573486, x=-0.867473, y=-0.497484): 0.577350269190\n    test 2446 210 209.888997034460 Xi(tan=0.57477, x=-0.866992, y=-0.498321): 0.577350269190\n\n    test 2447 217 217.000000000000 Phi(tan=0.753554, x=-0.798636, y=-0.601815): 0.753554050103\n    test 2448 217 216.907557725734 Beta(tan=0.751028, x=-0.798636, y=-0.599797): 0.753554050103\n    test 2449 217 216.815201948287 Theta(tan=0.748509, x=-0.798636, y=-0.597786): 0.753554050103\n    test 2450 217 216.861352829418 Mu(tan=0.749767, x=-0.800089, y=-0.599881), iteration=2: 0.753554050103\n    test 2451 217 216.815276448911 Chi(tan=0.748512, x=-1, y=-0.748512), iteration=2: 0.753554050103\n    test 2452 217 216.876737541007 Xi(tan=0.750187, x=-1.60704, y=-1.20558), iteration=2: 0.753554050103\n\n    test 2453 217 217.000000000000 Phi(tan=0.753554, x=-0.798636, y=-0.601815): 0.753554050103\n    test 2454 217 216.907557725734 Beta(tan=0.751028, x=-0.799605, y=-0.600526): 0.753554050103\n    test 2455 217 216.815201948287 Theta(tan=0.748509, x=-0.800572, y=-0.599236): 0.753554050103\n    test 2456 217 216.861352829418 Mu(tan=0.749767, x=-0.800089, y=-0.599881): 0.753554050103\n    test 2457 217 216.815276448911 Chi(tan=0.748512, x=-0.800572, y=-0.599237): 0.753554050103\n    test 2458 217 216.876737541007 Xi(tan=0.750187, x=-0.799928, y=-0.600095): 0.753554050103\n\n    test 2459 224 224.000000000000 Phi(tan=0.965689, x=-0.71934, y=-0.694658): 0.965688774807\n    test 2460 224 223.903852093789 Beta(tan=0.962451, x=-0.71934, y=-0.692329): 0.965688774807\n    test 2461 224 223.807716539068 Theta(tan=0.959224, x=-0.71934, y=-0.690008): 0.965688774807\n    test 2462 224 223.855780468115 Mu(tan=0.960836, x=-0.721086, y=-0.692846), iteration=2: 0.965688774807\n    test 2463 224 223.807819970397 Chi(tan=0.959228, x=-1, y=-0.959228), iteration=3: 0.965688774807\n    test 2464 224 223.871789544357 Xi(tan=0.961374, x=-1.44826, y=-1.39232), iteration=2: 0.965688774807\n\n    test 2465 224 224.000000000000 Phi(tan=0.965689, x=-0.71934, y=-0.694658): 0.965688774807\n    test 2466 224 223.903852093789 Beta(tan=0.962451, x=-0.720504, y=-0.69345): 0.965688774807\n    test 2467 224 223.807716539068 Theta(tan=0.959224, x=-0.721667, y=-0.69224): 0.965688774807\n    test 2468 224 223.855780468115 Mu(tan=0.960836, x=-0.721086, y=-0.692846): 0.965688774807\n    test 2469 224 223.807819970397 Chi(tan=0.959228, x=-0.721666, y=-0.692242): 0.965688774807\n    test 2470 224 223.871789544357 Xi(tan=0.961374, x=-0.720892, y=-0.693047): 0.965688774807\n\n    test 2471 231 231.000000000000 Phi(tan=1.2349, x=-0.62932, y=-0.777146): 1.234897156535\n    test 2472 231 230.905857444036 Beta(tan=1.23076, x=-0.62932, y=-0.77454): 1.234897156535\n    test 2473 231 230.811650146691 Theta(tan=1.22663, x=-0.62932, y=-0.771943): 1.234897156535\n    test 2474 231 230.858774044602 Mu(tan=1.22869, x=-0.631234, y=-0.775592), iteration=3: 1.234897156535\n    test 2475 231 230.811777138431 Chi(tan=1.22664, x=-1, y=-1.22664), iteration=3: 1.234897156535\n    test 2476 231 230.874456790611 Xi(tan=1.22938, x=-1.26771, y=-1.5585), iteration=2: 1.234897156535\n\n    test 2477 231 231.000000000000 Phi(tan=1.2349, x=-0.62932, y=-0.777146): 1.234897156535\n    test 2478 231 230.905857444036 Beta(tan=1.23076, x=-0.630596, y=-0.776111): 1.234897156535\n    test 2479 231 230.811650146691 Theta(tan=1.22663, x=-0.631872, y=-0.775073): 1.234897156535\n    test 2480 231 230.858774044602 Mu(tan=1.22869, x=-0.631234, y=-0.775592): 1.234897156535\n    test 2481 231 230.811777138431 Chi(tan=1.22664, x=-0.63187, y=-0.775074): 1.234897156535\n    test 2482 231 230.874456790611 Xi(tan=1.22938, x=-0.631022, y=-0.775765): 1.234897156535\n\n    test 2483 238 238.000000000000 Phi(tan=1.60033, x=-0.529919, y=-0.848048): 1.600334529041\n    test 2484 238 237.913461373388 Beta(tan=1.59497, x=-0.529919, y=-0.845205): 1.600334529041\n    test 2485 238 237.826796038008 Theta(tan=1.58962, x=-0.529919, y=-0.842371): 1.600334529041\n    test 2486 238 237.870168339397 Mu(tan=1.59229, x=-0.53184, y=-0.846845), iteration=2: 1.600334529041\n    test 2487 238 237.826935292578 Chi(tan=1.58963, x=-1, y=-1.58963), iteration=2: 1.600334529041\n    test 2488 238 237.884590997667 Xi(tan=1.59318, x=-1.06803, y=-1.70156), iteration=2: 1.600334529041\n\n    test 2489 238 238.000000000000 Phi(tan=1.60033, x=-0.529919, y=-0.848048): 1.600334529041\n    test 2490 238 237.913461373388 Beta(tan=1.59497, x=-0.5312, y=-0.847247): 1.600334529041\n    test 2491 238 237.826796038008 Theta(tan=1.58962, x=-0.53248, y=-0.846442): 1.600334529041\n    test 2492 238 237.870168339397 Mu(tan=1.59229, x=-0.53184, y=-0.846845): 1.600334529041\n    test 2493 238 237.826935292578 Chi(tan=1.58963, x=-0.532478, y=-0.846444): 1.600334529041\n    test 2494 238 237.884590997667 Xi(tan=1.59318, x=-0.531626, y=-0.846979): 1.600334529041\n\n    test 2495 245 245.000000000000 Phi(tan=2.14451, x=-0.422618, y=-0.906308): 2.144506920510\n    test 2496 245 244.926217548699 Beta(tan=2.13732, x=-0.422618, y=-0.903269): 2.144506920510\n    test 2497 245 244.852276137025 Theta(tan=2.13015, x=-0.422618, y=-0.900241): 2.144506920510\n    test 2498 245 244.889296576536 Mu(tan=2.13373, x=-0.424369, y=-0.90549), iteration=2: 2.144506920510\n    test 2499 245 244.852411952909 Chi(tan=2.13016, x=-1, y=-2.13016), iteration=2: 2.144506920510\n    test 2500 245 244.901598279036 Xi(tan=2.13493, x=-0.852157, y=-1.81929), iteration=2: 2.144506920510\n\n    test 2501 245 245.000000000000 Phi(tan=2.14451, x=-0.422618, y=-0.906308): 2.144506920510\n    test 2502 245 244.926217548699 Beta(tan=2.13732, x=-0.423785, y=-0.905763): 2.144506920510\n    test 2503 245 244.852276137025 Theta(tan=2.13015, x=-0.424954, y=-0.905215): 2.144506920510\n    test 2504 245 244.889296576536 Mu(tan=2.13373, x=-0.424369, y=-0.90549): 2.144506920510\n    test 2505 245 244.852411952909 Chi(tan=2.13016, x=-0.424951, y=-0.905216): 2.144506920510\n    test 2506 245 244.901598279036 Xi(tan=2.13493, x=-0.424174, y=-0.905581): 2.144506920510\n\n    test 2507 252 252.000000000000 Phi(tan=3.07768, x=-0.309017, y=-0.951057): 3.077683537175\n    test 2508 252 251.943370950484 Beta(tan=3.06736, x=-0.309017, y=-0.947868): 3.077683537175\n    test 2509 252 251.886588050489 Theta(tan=3.05708, x=-0.309017, y=-0.94469): 3.077683537175\n    test 2510 252 251.915027646278 Mu(tan=3.06222, x=-0.310427, y=-0.950597), iteration=3: 3.077683537175\n    test 2511 252 251.886702986922 Chi(tan=3.0571, x=-1, y=-3.0571), iteration=3: 3.077683537175\n    test 2512 252 251.924472501487 Xi(tan=3.06393, x=-0.623327, y=-1.90983), iteration=3: 3.077683537175\n\n    test 2513 252 252.000000000000 Phi(tan=3.07768, x=-0.309017, y=-0.951057): 3.077683537175\n    test 2514 252 251.943370950484 Beta(tan=3.06736, x=-0.309957, y=-0.950751): 3.077683537175\n    test 2515 252 251.886588050489 Theta(tan=3.05708, x=-0.310899, y=-0.950443): 3.077683537175\n    test 2516 252 251.915027646278 Mu(tan=3.06222, x=-0.310427, y=-0.950597): 3.077683537175\n    test 2517 252 251.886702986922 Chi(tan=3.0571, x=-0.310897, y=-0.950444): 3.077683537175\n    test 2518 252 251.924472501487 Xi(tan=3.06393, x=-0.31027, y=-0.950648): 3.077683537175\n\n    test 2519 259 259.000000000000 Phi(tan=5.14455, x=-0.190809, y=-0.981627): 5.144554015970\n    test 2520 259 258.963902062378 Beta(tan=5.12731, x=-0.190809, y=-0.978336): 5.144554015970\n    test 2521 259 258.927691601915 Theta(tan=5.11011, x=-0.190809, y=-0.975056): 5.144554015970\n    test 2522 259 258.945832050834 Mu(tan=5.11871, x=-0.191737, y=-0.981446), iteration=3: 5.144554015970\n    test 2523 259 258.927769725031 Chi(tan=5.11015, x=-1, y=-5.11015), iteration=3: 5.144554015970\n    test 2524 259 258.951854051022 Xi(tan=5.12157, x=-0.384988, y=-1.97175), iteration=3: 5.144554015970\n\n    test 2525 259 259.000000000000 Phi(tan=5.14455, x=-0.190809, y=-0.981627): 5.144554015970\n    test 2526 259 258.963902062378 Beta(tan=5.12731, x=-0.191427, y=-0.981507): 5.144554015970\n    test 2527 259 258.927691601915 Theta(tan=5.11011, x=-0.192048, y=-0.981386): 5.144554015970\n    test 2528 259 258.945832050834 Mu(tan=5.11871, x=-0.191737, y=-0.981446): 5.144554015970\n    test 2529 259 258.927769725031 Chi(tan=5.11015, x=-0.192046, y=-0.981386): 5.144554015970\n    test 2530 259 258.951854051022 Xi(tan=5.12157, x=-0.191634, y=-0.981466): 5.144554015970\n\n    test 2531 266 266.000000000000 Phi(tan=14.3007, x=-0.0697565, y=-0.997564): 14.300666256712\n    test 2532 266 265.986587541025 Beta(tan=14.2527, x=-0.0697565, y=-0.994219): 14.300666256712\n    test 2533 266 265.973130404128 Theta(tan=14.2049, x=-0.0697565, y=-0.990886): 14.300666256712\n    test 2534 266 265.979872957664 Mu(tan=14.2288, x=-0.0701069, y=-0.997539), iteration=3: 14.300666256712\n    test 2535 266 265.973160396216 Chi(tan=14.205, x=-1, y=-14.205), iteration=3: 14.300666256712\n    test 2536 266 265.982110758522 Xi(tan=14.2368, x=-0.140765, y=-2.00404), iteration=3: 14.300666256712\n\n    test 2537 266 266.000000000000 Phi(tan=14.3007, x=-0.0697565, y=-0.997564): 14.300666256712\n    test 2538 266 265.986587541025 Beta(tan=14.2527, x=-0.06999, y=-0.997548): 14.300666256712\n    test 2539 266 265.973130404128 Theta(tan=14.2049, x=-0.0702243, y=-0.997531): 14.300666256712\n    test 2540 266 265.979872957664 Mu(tan=14.2288, x=-0.0701069, y=-0.997539): 14.300666256712\n    test 2541 266 265.973160396216 Chi(tan=14.205, x=-0.0702238, y=-0.997531): 14.300666256712\n    test 2542 266 265.982110758522 Xi(tan=14.2368, x=-0.0700679, y=-0.997542): 14.300666256712\n\n    test 2543 273 273.000000000000 Phi(tan=-19.0811, x=0.052336, y=-0.99863): -19.081136687728\n    test 2544 273 273.010073740960 Beta(tan=-19.0172, x=0.052336, y=-0.995281): -19.081136687728\n    test 2545 273 273.020181183682 Theta(tan=-18.9534, x=0.052336, y=-0.991944): -19.081136687728\n    test 2546 273 273.015116912927 Mu(tan=-18.9853, x=0.0525994, y=-0.998616), iteration=2: -19.081136687728\n    test 2547 273 273.020158608531 Chi(tan=-18.9535, x=1.0, y=-18.9535), iteration=2: -19.081136687728\n    test 2548 273 273.013436145998 Xi(tan=-18.9959, x=0.105612, y=-2.0062), iteration=3: -19.081136687728\n\n    test 2549 273 273.000000000000 Phi(tan=-19.0811, x=0.052336, y=-0.99863): -19.081136687728\n    test 2550 273 273.010073740960 Beta(tan=-19.0172, x=0.0525115, y=-0.99862): -19.081136687728\n    test 2551 273 273.020181183682 Theta(tan=-18.9534, x=0.0526877, y=-0.998611): -19.081136687728\n    test 2552 273 273.015116912927 Mu(tan=-18.9853, x=0.0525994, y=-0.998616): -19.081136687728\n    test 2553 273 273.020158608531 Chi(tan=-18.9535, x=0.0526873, y=-0.998611): -19.081136687728\n    test 2554 273 273.013436145998 Xi(tan=-18.9959, x=0.0525701, y=-0.998617): -19.081136687728\n\n    test 2555 280 280.000000000000 Phi(tan=-5.67128, x=0.173648, y=-0.984808): -5.671281819618\n    test 2556 280 280.032958527773 Beta(tan=-5.65227, x=0.173648, y=-0.981506): -5.671281819618\n    test 2557 280 280.066021190034 Theta(tan=-5.63332, x=0.173648, y=-0.978215): -5.671281819618\n    test 2558 280 280.049457265110 Mu(tan=-5.64279, x=0.174498, y=-0.984657), iteration=3: -5.671281819618\n    test 2559 280 280.065949391281 Chi(tan=-5.63336, x=1.0, y=-5.63336), iteration=2: -5.671281819618\n    test 2560 280 280.043958856452 Xi(tan=-5.64595, x=0.350374, y=-1.97819), iteration=3: -5.671281819618\n\n    test 2561 280 280.000000000000 Phi(tan=-5.67128, x=0.173648, y=-0.984808): -5.671281819618\n    test 2562 280 280.032958527773 Beta(tan=-5.65227, x=0.174215, y=-0.984708): -5.671281819618\n    test 2563 280 280.066021190034 Theta(tan=-5.63332, x=0.174783, y=-0.984607): -5.671281819618\n    test 2564 280 280.049457265110 Mu(tan=-5.64279, x=0.174498, y=-0.984657): -5.671281819618\n    test 2565 280 280.065949391281 Chi(tan=-5.63336, x=0.174782, y=-0.984607): -5.671281819618\n    test 2566 280 280.043958856452 Xi(tan=-5.64595, x=0.174404, y=-0.984674): -5.671281819618\n\n    test 2567 287 287.000000000000 Phi(tan=-3.27085, x=0.292372, y=-0.956305): -3.270852618484\n    test 2568 287 287.053876189570 Beta(tan=-3.25989, x=0.292372, y=-0.953098): -3.270852618484\n    test 2569 287 287.107902403143 Theta(tan=-3.24896, x=0.292372, y=-0.949903): -3.270852618484\n    test 2570 287 287.080842346698 Mu(tan=-3.25442, x=0.293721, y=-0.955891), iteration=3: -3.270852618484\n    test 2571 287 287.107791826667 Chi(tan=-3.24898, x=1.0, y=-3.24898), iteration=2: -3.270852618484\n    test 2572 287 287.071856267521 Xi(tan=-3.25624, x=0.589778, y=-1.92046), iteration=3: -3.270852618484\n\n    test 2573 287 287.000000000000 Phi(tan=-3.27085, x=0.292372, y=-0.956305): -3.270852618484\n    test 2574 287 287.053876189570 Beta(tan=-3.25989, x=0.293271, y=-0.956029): -3.270852618484\n    test 2575 287 287.107902403143 Theta(tan=-3.24896, x=0.294172, y=-0.955752): -3.270852618484\n    test 2576 287 287.080842346698 Mu(tan=-3.25442, x=0.293721, y=-0.955891): -3.270852618484\n    test 2577 287 287.107791826667 Chi(tan=-3.24898, x=0.29417, y=-0.955753): -3.270852618484\n    test 2578 287 287.071856267521 Xi(tan=-3.25624, x=0.293571, y=-0.955937): -3.270852618484\n\n    test 2579 294 294.000000000000 Phi(tan=-2.24604, x=0.406737, y=-0.913545): -2.246036773904\n    test 2580 294 294.071580020440 Beta(tan=-2.23851, x=0.406737, y=-0.910483): -2.246036773904\n    test 2581 294 294.143320630937 Theta(tan=-2.231, x=0.406737, y=-0.90743): -2.246036773904\n    test 2582 294 294.107400080405 Mu(tan=-2.23475, x=0.408448, y=-0.912781), iteration=3: -2.246036773904\n    test 2583 294 294.143186728996 Chi(tan=-2.23101, x=1.0, y=-2.23101), iteration=2: -2.246036773904\n    test 2584 294 294.095464961355 Xi(tan=-2.236, x=0.820183, y=-1.83393), iteration=2: -2.246036773904\n\n    test 2585 294 294.000000000000 Phi(tan=-2.24604, x=0.406737, y=-0.913545): -2.246036773904\n    test 2586 294 294.071580020440 Beta(tan=-2.23851, x=0.407878, y=-0.913037): -2.246036773904\n    test 2587 294 294.143320630937 Theta(tan=-2.231, x=0.409021, y=-0.912525): -2.246036773904\n    test 2588 294 294.107400080405 Mu(tan=-2.23475, x=0.408448, y=-0.912781): -2.246036773904\n    test 2589 294 294.143186728996 Chi(tan=-2.23101, x=0.409018, y=-0.912526): -2.246036773904\n    test 2590 294 294.095464961355 Xi(tan=-2.236, x=0.408258, y=-0.912866): -2.246036773904\n\n    test 2591 301 301.000000000000 Phi(tan=-1.66428, x=0.515038, y=-0.857167): -1.664279482351\n    test 2592 301 301.085017327347 Beta(tan=-1.6587, x=0.515038, y=-0.854293): -1.664279482351\n    test 2593 301 301.170168056505 Theta(tan=-1.65314, x=0.515038, y=-0.851429): -1.664279482351\n    test 2594 301 301.127550963364 Mu(tan=-1.65592, x=0.516945, y=-0.856019), iteration=3: -1.664279482351\n    test 2595 301 301.170028258270 Chi(tan=-1.65315, x=1.0, y=-1.65315), iteration=3: -1.664279482351\n    test 2596 301 301.113380969671 Xi(tan=-1.65684, x=1.03811, y=-1.71998), iteration=3: -1.664279482351\n\n    test 2597 301 301.000000000000 Phi(tan=-1.66428, x=0.515038, y=-0.857167): -1.664279482351\n    test 2598 301 301.085017327347 Beta(tan=-1.6587, x=0.516309, y=-0.856402): -1.664279482351\n    test 2599 301 301.170168056505 Theta(tan=-1.65314, x=0.517582, y=-0.855634): -1.664279482351\n    test 2600 301 301.127550963364 Mu(tan=-1.65592, x=0.516945, y=-0.856019): -1.664279482351\n    test 2601 301 301.170028258270 Chi(tan=-1.65315, x=0.517579, y=-0.855635): -1.664279482351\n    test 2602 301 301.113380969671 Xi(tan=-1.65684, x=0.516733, y=-0.856146): -1.664279482351\n\n    test 2603 308 308.000000000000 Phi(tan=-1.27994, x=0.615661, y=-0.788011): -1.279941632193\n    test 2604 308 308.093392183249 Beta(tan=-1.27565, x=0.615661, y=-0.785369): -1.279941632193\n    test 2605 308 308.186859283180 Theta(tan=-1.27137, x=0.615661, y=-0.782736): -1.279941632193\n    test 2606 308 308.140102302012 Mu(tan=-1.27351, x=0.617587, y=-0.786503), iteration=2: -1.279941632193\n    test 2607 308 308.186729722475 Chi(tan=-1.27138, x=1.0, y=-1.27138), iteration=3: -1.279941632193\n    test 2608 308 308.124543504213 Xi(tan=-1.27422, x=1.24029, y=-1.58041), iteration=2: -1.279941632193\n\n    test 2609 308 308.000000000000 Phi(tan=-1.27994, x=0.615661, y=-0.788011): -1.279941632193\n    test 2610 308 308.093392183249 Beta(tan=-1.27565, x=0.616945, y=-0.787006): -1.279941632193\n    test 2611 308 308.186859283180 Theta(tan=-1.27137, x=0.618228, y=-0.785999): -1.279941632193\n    test 2612 308 308.140102302012 Mu(tan=-1.27351, x=0.617587, y=-0.786503): -1.279941632193\n    test 2613 308 308.186729722475 Chi(tan=-1.27138, x=0.618226, y=-0.786): -1.279941632193\n    test 2614 308 308.124543504213 Xi(tan=-1.27422, x=0.617373, y=-0.786671): -1.279941632193\n\n    test 2615 315 315.000000000000 Phi(tan=-1, x=0.707107, y=-0.707107): -1.000000000000\n    test 2616 315 315.096212150580 Beta(tan=-0.996647, x=0.707107, y=-0.704736): -1.000000000000\n    test 2617 315 315.192423215982 Theta(tan=-0.993306, x=0.707107, y=-0.702373): -1.000000000000\n    test 2618 315 315.144318011093 Mu(tan=-0.994975, x=0.708886, y=-0.705323), iteration=2: -1.000000000000\n    test 2619 315 315.192315943911 Chi(tan=-0.993309, x=1.0, y=-0.993309), iteration=3: -1.000000000000\n    test 2620 315 315.128297126566 Xi(tan=-0.995532, x=1.42374, y=-1.41738), iteration=3: -1.000000000000\n\n    test 2621 315 315.000000000000 Phi(tan=-1, x=0.707107, y=-0.707107): -1.000000000000\n    test 2622 315 315.096212150580 Beta(tan=-0.996647, x=0.708293, y=-0.705918): -1.000000000000\n    test 2623 315 315.192423215982 Theta(tan=-0.993306, x=0.709478, y=-0.704728): -1.000000000000\n    test 2624 315 315.144318011093 Mu(tan=-0.994975, x=0.708886, y=-0.705323): -1.000000000000\n    test 2625 315 315.192315943911 Chi(tan=-0.993309, x=0.709476, y=-0.704729): -1.000000000000\n    test 2626 315 315.128297126566 Xi(tan=-0.995532, x=0.708688, y=-0.705522): -1.000000000000\n\n    test 2627 322 322.000000000000 Phi(tan=-0.781286, x=0.788011, y=-0.615661): -0.781285626507\n    test 2628 322 322.093316334881 Beta(tan=-0.778666, x=0.788011, y=-0.613597): -0.781285626507\n    test 2629 322 322.186555893687 Theta(tan=-0.776055, x=0.788011, y=-0.61154): -0.781285626507\n    test 2630 322 322.139960086634 Mu(tan=-0.777359, x=0.789512, y=-0.613735), iteration=3: -0.781285626507\n    test 2631 322 322.186477167765 Chi(tan=-0.776058, x=1.0, y=-0.776058), iteration=3: -0.781285626507\n    test 2632 322 322.124428869604 Xi(tan=-0.777794, x=1.58578, y=-1.23341), iteration=2: -0.781285626507\n\n    test 2633 322 322.000000000000 Phi(tan=-0.781286, x=0.788011, y=-0.615661): -0.781285626507\n    test 2634 322 322.093316334881 Beta(tan=-0.778666, x=0.789012, y=-0.614377): -0.781285626507\n    test 2635 322 322.186555893687 Theta(tan=-0.776055, x=0.790011, y=-0.613092): -0.781285626507\n    test 2636 322 322.139960086634 Mu(tan=-0.777359, x=0.789512, y=-0.613735): -0.781285626507\n    test 2637 322 322.186477167765 Chi(tan=-0.776058, x=0.79001, y=-0.613094): -0.781285626507\n    test 2638 322 322.124428869604 Xi(tan=-0.777794, x=0.789346, y=-0.613949): -0.781285626507\n\n    test 2639 329 329.000000000000 Phi(tan=-0.600861, x=0.857167, y=-0.515038): -0.600860619028\n    test 2640 329 329.084883386958 Beta(tan=-0.598846, x=0.857167, y=-0.513311): -0.600860619028\n    test 2641 329 329.169632300503 Theta(tan=-0.596838, x=0.857167, y=-0.51159): -0.600860619028\n    test 2642 329 329.127299825611 Mu(tan=-0.597841, x=0.858309, y=-0.513132), iteration=3: -0.600860619028\n    test 2643 329 329.169582272165 Chi(tan=-0.596839, x=1.0, y=-0.596839), iteration=3: -0.600860619028\n    test 2644 329 329.113178536759 Xi(tan=-0.598175, x=1.72407, y=-1.0313), iteration=3: -0.600860619028\n\n    test 2645 329 329.000000000000 Phi(tan=-0.600861, x=0.857167, y=-0.515038): -0.600860619028\n    test 2646 329 329.084883386958 Beta(tan=-0.598846, x=0.857929, y=-0.513768): -0.600860619028\n    test 2647 329 329.169632300503 Theta(tan=-0.596838, x=0.858688, y=-0.512498): -0.600860619028\n    test 2648 329 329.127299825611 Mu(tan=-0.597841, x=0.858309, y=-0.513132): -0.600860619028\n    test 2649 329 329.169582272165 Chi(tan=-0.596839, x=0.858688, y=-0.512499): -0.600860619028\n    test 2650 329 329.113178536759 Xi(tan=-0.598175, x=0.858183, y=-0.513344): -0.600860619028\n\n    test 2651 336 336.000000000000 Phi(tan=-0.445229, x=0.913545, y=-0.406737): -0.445228685309\n    test 2652 336 336.071419343981 Beta(tan=-0.443736, x=0.913545, y=-0.405373): -0.445228685309\n    test 2653 336 336.142677929298 Theta(tan=-0.442248, x=0.913545, y=-0.404014): -0.445228685309\n    test 2654 336 336.107098812499 Mu(tan=-0.442991, x=0.914304, y=-0.405028), iteration=3: -0.445228685309\n    test 2655 336 336.142651717918 Chi(tan=-0.442249, x=1.0, y=-0.442249), iteration=3: -0.445228685309\n    test 2656 336 336.095222120427 Xi(tan=-0.443239, x=1.83665, y=-0.814074), iteration=3: -0.445228685309\n\n    test 2657 336 336.000000000000 Phi(tan=-0.445229, x=0.913545, y=-0.406737): -0.445228685309\n    test 2658 336 336.071419343981 Beta(tan=-0.443736, x=0.914052, y=-0.405598): -0.445228685309\n    test 2659 336 336.142677929298 Theta(tan=-0.442248, x=0.914555, y=-0.40446): -0.445228685309\n    test 2660 336 336.107098812499 Mu(tan=-0.442991, x=0.914304, y=-0.405028): -0.445228685309\n    test 2661 336 336.142651717918 Chi(tan=-0.442249, x=0.914555, y=-0.404461): -0.445228685309\n    test 2662 336 336.095222120427 Xi(tan=-0.443239, x=0.91422, y=-0.405218): -0.445228685309\n\n    test 2663 343 343.000000000000 Phi(tan=-0.305731, x=0.956305, y=-0.292372): -0.305730681459\n    test 2664 343 343.053726392145 Beta(tan=-0.304706, x=0.956305, y=-0.291391): -0.305730681459\n    test 2665 343 343.107303214923 Theta(tan=-0.303684, x=0.956305, y=-0.290414): -0.305730681459\n    test 2666 343 343.080561476830 Mu(tan=-0.304194, x=0.956715, y=-0.291027), iteration=3: -0.305730681459\n    test 2667 343 343.107293039045 Chi(tan=-0.303684, x=1.0, y=-0.303684), iteration=2: -0.305730681459\n    test 2668 343 343.071629868756 Xi(tan=-0.304364, x=1.92193, y=-0.584967), iteration=2: -0.305730681459\n\n    test 2669 343 343.000000000000 Phi(tan=-0.305731, x=0.956305, y=-0.292372): -0.305730681459\n    test 2670 343 343.053726392145 Beta(tan=-0.304706, x=0.956578, y=-0.291475): -0.305730681459\n    test 2671 343 343.107303214923 Theta(tan=-0.303684, x=0.956851, y=-0.29058): -0.305730681459\n    test 2672 343 343.080561476830 Mu(tan=-0.304194, x=0.956715, y=-0.291027): -0.305730681459\n    test 2673 343 343.107293039045 Chi(tan=-0.303684, x=0.956851, y=-0.29058): -0.305730681459\n    test 2674 343 343.071629868756 Xi(tan=-0.304364, x=0.95667, y=-0.291176): -0.305730681459\n\n    test 2675 350 350.000000000000 Phi(tan=-0.176327, x=0.984808, y=-0.173648): -0.176326980708\n    test 2676 350 350.032854677782 Beta(tan=-0.175736, x=0.984808, y=-0.173066): -0.176326980708\n    test 2677 350 350.065605789721 Theta(tan=-0.175147, x=0.984808, y=-0.172486): -0.176326980708\n    test 2678 350 350.049262546520 Mu(tan=-0.175441, x=0.984957, y=-0.172801), iteration=3: -0.176326980708\n    test 2679 350 350.065603596501 Chi(tan=-0.175147, x=1.0, y=-0.175147), iteration=2: -0.176326980708\n    test 2680 350 350.043801901064 Xi(tan=-0.175539, x=1.97873, y=-0.347343), iteration=2: -0.176326980708\n\n    test 2681 350 350.000000000000 Phi(tan=-0.176327, x=0.984808, y=-0.173648): -0.176326980708\n    test 2682 350 350.032854677782 Beta(tan=-0.175736, x=0.984907, y=-0.173083): -0.176326980708\n    test 2683 350 350.065605789721 Theta(tan=-0.175147, x=0.985006, y=-0.17252): -0.176326980708\n    test 2684 350 350.049262546520 Mu(tan=-0.175441, x=0.984957, y=-0.172801): -0.176326980708\n    test 2685 350 350.065603596501 Chi(tan=-0.175147, x=0.985006, y=-0.17252): -0.176326980708\n    test 2686 350 350.043801901064 Xi(tan=-0.175539, x=0.98494, y=-0.172895): -0.176326980708\n\n    test 2687 357 357.000000000000 Phi(tan=-0.0524078, x=0.99863, y=-0.052336): -0.052407779283\n    test 2688 357 357.010040150331 Beta(tan=-0.0522321, x=0.99863, y=-0.0521605): -0.052407779283\n    test 2689 357 357.020046820811 Theta(tan=-0.0520569, x=0.99863, y=-0.0519856): -0.052407779283\n    test 2690 357 357.015053930532 Mu(tan=-0.0521443, x=0.998643, y=-0.0520736), iteration=2: -0.052407779283\n    test 2691 357 357.020046759956 Chi(tan=-0.0520569, x=1.0, y=-0.0520569), iteration=3: -0.052407779283\n    test 2692 357 357.013385378246 Xi(tan=-0.0521735, x=2.00625, y=-0.104673), iteration=3: -0.052407779283\n\n    test 2693 357 357.000000000000 Phi(tan=-0.0524078, x=0.99863, y=-0.052336): -0.052407779283\n    test 2694 357 357.010040150331 Beta(tan=-0.0522321, x=0.998639, y=-0.052161): -0.052407779283\n    test 2695 357 357.020046820811 Theta(tan=-0.0520569, x=0.998648, y=-0.0519865): -0.052407779283\n    test 2696 357 357.015053930532 Mu(tan=-0.0521443, x=0.998643, y=-0.0520736): -0.052407779283\n    test 2697 357 357.020046759956 Chi(tan=-0.0520569, x=0.998648, y=-0.0519866): -0.052407779283\n    test 2698 357 357.013385378246 Xi(tan=-0.0521735, x=0.998642, y=-0.0521027): -0.052407779283\n\n    test 2699  0 0.000000000000 Phi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 2700  0 0.000000000000 Beta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 2701  0 0.000000000000 Theta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 2702  0 0.000000000000 Mu(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 2703  0 0.000000000000 Chi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 2704  0 0.000000000000 Xi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n\n    test 2705  0 0.000000000000 Phi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 2706  0 0.000000000000 Beta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 2707  0 0.000000000000 Theta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 2708  0 0.000000000000 Mu(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 2709  0 0.000000000000 Chi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 2710  0 0.000000000000 Xi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n\n    test 2711  7 7.046703746044 Phi(tan=0.123612, x=0.992546, y=0.122691): 0.122784560903\n    test 2712  7 7.023313832609 Beta(tan=0.123198, x=0.992546, y=0.122279): 0.122784560903\n    test 2713  7 7.000000000000 Theta(tan=0.122785, x=0.992546, y=0.121869): 0.122784560903\n    test 2714  7 7.011633179954 Mu(tan=0.122991, x=0.992521, y=0.122071), iteration=2: 0.122784560903\n    test 2715  7 7.000000779127 Chi(tan=0.122785, x=1.0, y=0.122785), iteration=3: 0.122784560903\n    test 2716  7 7.015520491938 Xi(tan=0.12306, x=1.99394, y=0.245373), iteration=3: 0.122784560903\n\n    test 2717  7 7.046703746044 Phi(tan=0.123612, x=0.992446, y=0.122678): 0.122784560903\n    test 2718  7 7.023313832609 Beta(tan=0.123198, x=0.992496, y=0.122273): 0.122784560903\n    test 2719  7 7.000000000000 Theta(tan=0.122785, x=0.992546, y=0.121869): 0.122784560903\n    test 2720  7 7.011633179954 Mu(tan=0.122991, x=0.992521, y=0.122071): 0.122784560903\n    test 2721  7 7.000000779127 Chi(tan=0.122785, x=0.992546, y=0.121869): 0.122784560903\n    test 2722  7 7.015520491938 Xi(tan=0.12306, x=0.992513, y=0.122138): 0.122784560903\n\n    test 2723 14 14.090606168436 Phi(tan=0.251008, x=0.970296, y=0.243552): 0.249328002843\n    test 2724 14 14.045235971490 Beta(tan=0.250167, x=0.970296, y=0.242736): 0.249328002843\n    test 2725 14 14.000000000000 Theta(tan=0.249328, x=0.970296, y=0.241922): 0.249328002843\n    test 2726 14 14.022576103630 Mu(tan=0.249747, x=0.9702, y=0.242304), iteration=3: 0.249328002843\n    test 2727 14 14.000005955939 Chi(tan=0.249328, x=1.0, y=0.249328), iteration=3: 0.249328002843\n    test 2728 14 14.030117773793 Xi(tan=0.249886, x=1.94905, y=0.487041), iteration=3: 0.249328002843\n\n    test 2729 14 14.090606168436 Phi(tan=0.251008, x=0.969912, y=0.243456): 0.249328002843\n    test 2730 14 14.045235971490 Beta(tan=0.250167, x=0.970104, y=0.242688): 0.249328002843\n    test 2731 14 14.000000000000 Theta(tan=0.249328, x=0.970296, y=0.241922): 0.249328002843\n    test 2732 14 14.022576103630 Mu(tan=0.249747, x=0.9702, y=0.242304): 0.249328002843\n    test 2733 14 14.000005955939 Chi(tan=0.249328, x=0.970296, y=0.241922): 0.249328002843\n    test 2734 14 14.030117773793 Xi(tan=0.249886, x=0.970168, y=0.242432): 0.249328002843\n\n    test 2735 21 21.129078684131 Phi(tan=0.386451, x=0.93358, y=0.360783): 0.383864035035\n    test 2736 21 21.064458966605 Beta(tan=0.385155, x=0.93358, y=0.359574): 0.383864035035\n    test 2737 21 21.000000000000 Theta(tan=0.383864, x=0.93358, y=0.358368): 0.383864035035\n    test 2738 21 21.032179314629 Mu(tan=0.384509, x=0.933379, y=0.358892), iteration=3: 0.383864035035\n    test 2739 21 21.000018617196 Chi(tan=0.383864, x=1.0, y=0.383864), iteration=3: 0.383864035035\n    test 2740 21 21.042923749309 Xi(tan=0.384724, x=1.875, y=0.721359), iteration=3: 0.383864035035\n\n    test 2741 21 21.129078684131 Phi(tan=0.386451, x=0.932771, y=0.36047): 0.383864035035\n    test 2742 21 21.064458966605 Beta(tan=0.385155, x=0.933177, y=0.359418): 0.383864035035\n    test 2743 21 21.000000000000 Theta(tan=0.383864, x=0.93358, y=0.358368): 0.383864035035\n    test 2744 21 21.032179314629 Mu(tan=0.384509, x=0.933379, y=0.358892): 0.383864035035\n    test 2745 21 21.000018617196 Chi(tan=0.383864, x=0.93358, y=0.358368): 0.383864035035\n    test 2746 21 21.042923749309 Xi(tan=0.384724, x=0.933312, y=0.359067): 0.383864035035\n\n    test 2747 28 28.159826417635 Phi(tan=0.535293, x=0.882948, y=0.472636): 0.531709431661\n    test 2748 28 28.079838480095 Beta(tan=0.533498, x=0.882948, y=0.471051): 0.531709431661\n    test 2749 28 28.000000000000 Theta(tan=0.531709, x=0.882948, y=0.469472): 0.531709431661\n    test 2750 28 28.039872584755 Mu(tan=0.532602, x=0.882621, y=0.470086), iteration=3: 0.531709431661\n    test 2751 28 28.000039556231 Chi(tan=0.53171, x=1.0, y=0.53171), iteration=2: 0.531709431661\n    test 2752 28 28.053177215354 Xi(tan=0.532901, x=1.77295, y=0.944805), iteration=3: 0.531709431661\n\n    test 2753 28 28.159826417635 Phi(tan=0.535293, x=0.881635, y=0.471933): 0.531709431661\n    test 2754 28 28.079838480095 Beta(tan=0.533498, x=0.882293, y=0.470701): 0.531709431661\n    test 2755 28 28.000000000000 Theta(tan=0.531709, x=0.882948, y=0.469472): 0.531709431661\n    test 2756 28 28.039872584755 Mu(tan=0.532602, x=0.882621, y=0.470086): 0.531709431661\n    test 2757 28 28.000039556231 Chi(tan=0.53171, x=0.882947, y=0.469472): 0.531709431661\n    test 2758 28 28.053177215354 Xi(tan=0.532901, x=0.882511, y=0.470291): 0.531709431661\n\n    test 2759 35 35.181026690786 Phi(tan=0.704927, x=0.819152, y=0.577442): 0.700207538210\n    test 2760 35 35.090461812463 Beta(tan=0.702563, x=0.819152, y=0.575506): 0.700207538210\n    test 2761 35 35.000000000000 Theta(tan=0.700208, x=0.819152, y=0.573576): 0.700207538210\n    test 2762 35 35.045198725900 Mu(tan=0.701384, x=0.818699, y=0.574222), iteration=3: 0.700207538210\n    test 2763 35 35.000066866642 Chi(tan=0.700209, x=1.0, y=0.700209), iteration=2: 0.700207538210\n    test 2764 35 35.060269183174 Xi(tan=0.701776, x=1.64445, y=1.15403), iteration=3: 0.700207538210\n\n    test 2765 35 35.181026690786 Phi(tan=0.704927, x=0.817336, y=0.576162): 0.700207538210\n    test 2766 35 35.090461812463 Beta(tan=0.702563, x=0.818245, y=0.574869): 0.700207538210\n    test 2767 35 35.000000000000 Theta(tan=0.700208, x=0.819152, y=0.573576): 0.700207538210\n    test 2768 35 35.045198725900 Mu(tan=0.701384, x=0.818699, y=0.574222): 0.700207538210\n    test 2769 35 35.000066866642 Chi(tan=0.700209, x=0.819151, y=0.573577): 0.700207538210\n    test 2770 35 35.060269183174 Xi(tan=0.701776, x=0.818548, y=0.574438): 0.700207538210\n\n    test 2771 42 42.191436312869 Phi(tan=0.906472, x=0.743145, y=0.67364): 0.900404044298\n    test 2772 42 42.095701889505 Beta(tan=0.903433, x=0.743145, y=0.671382): 0.900404044298\n    test 2773 42 42.000000000000 Theta(tan=0.900404, x=0.743145, y=0.669131): 0.900404044298\n    test 2774 42 42.047840790779 Mu(tan=0.901917, x=0.742586, y=0.669751), iteration=3: 0.900404044298\n    test 2775 42 42.000096219009 Chi(tan=0.900407, x=1.0, y=0.900407), iteration=2: 0.900404044298\n    test 2776 42 42.063779025222 Xi(tan=0.902422, x=1.49147, y=1.34593), iteration=3: 0.900404044298\n\n    test 2777 42 42.191436312869 Phi(tan=0.906472, x=0.740905, y=0.67161): 0.900404044298\n    test 2778 42 42.095701889505 Beta(tan=0.903433, x=0.742026, y=0.670371): 0.900404044298\n    test 2779 42 42.000000000000 Theta(tan=0.900404, x=0.743145, y=0.669131): 0.900404044298\n    test 2780 42 42.047840790779 Mu(tan=0.901917, x=0.742586, y=0.669751): 0.900404044298\n    test 2781 42 42.000096219009 Chi(tan=0.900407, x=0.743144, y=0.669132): 0.900404044298\n    test 2782 42 42.063779025222 Xi(tan=0.902422, x=0.7424, y=0.669957): 0.900404044298\n\n    test 2783 49 49.190461558643 Phi(tan=1.15812, x=0.656059, y=0.759796): 1.150368407221\n    test 2784 49 49.095253561343 Beta(tan=1.15424, x=0.656059, y=0.757248): 1.150368407221\n    test 2785 49 49.000000000000 Theta(tan=1.15037, x=0.656059, y=0.75471): 1.150368407221\n    test 2786 49 49.047641033804 Mu(tan=1.1523, x=0.655431, y=0.755255), iteration=2: 1.150368407221\n    test 2787 49 49.000121761599 Chi(tan=1.15037, x=1.0, y=1.15037), iteration=3: 1.150368407221\n    test 2788 49 49.063499305647 Xi(tan=1.15295, x=1.31633, y=1.51766), iteration=3: 1.150368407221\n\n    test 2789 49 49.190461558643 Phi(tan=1.15812, x=0.653547, y=0.756886): 1.150368407221\n    test 2790 49 49.095253561343 Beta(tan=1.15424, x=0.654803, y=0.755799): 1.150368407221\n    test 2791 49 49.000000000000 Theta(tan=1.15037, x=0.656059, y=0.75471): 1.150368407221\n    test 2792 49 49.047641033804 Mu(tan=1.1523, x=0.655431, y=0.755255): 1.150368407221\n    test 2793 49 49.000121761599 Chi(tan=1.15037, x=0.656057, y=0.754711): 1.150368407221\n    test 2794 49 49.063499305647 Xi(tan=1.15295, x=0.655222, y=0.755436): 1.150368407221\n\n    test 2795 56 56.178187618527 Phi(tan=1.49255, x=0.559193, y=0.834625): 1.482560968513\n    test 2796 56 56.089150284766 Beta(tan=1.48755, x=0.559193, y=0.831827): 1.482560968513\n    test 2797 56 56.000000000000 Theta(tan=1.48256, x=0.559193, y=0.829038): 1.482560968513\n    test 2798 56 56.044610470922 Mu(tan=1.48505, x=0.558547, y=0.829473), iteration=3: 1.482560968513\n    test 2799 56 56.000137435853 Chi(tan=1.48257, x=1.0, y=1.48257), iteration=2: 1.482560968513\n    test 2800 56 56.059447854026 Xi(tan=1.48588, x=1.12168, y=1.66668), iteration=3: 1.482560968513\n\n    test 2801 56 56.178187618527 Phi(tan=1.49255, x=0.556612, y=0.830773): 1.482560968513\n    test 2802 56 56.089150284766 Beta(tan=1.48755, x=0.557902, y=0.829907): 1.482560968513\n    test 2803 56 56.000000000000 Theta(tan=1.48256, x=0.559193, y=0.829038): 1.482560968513\n    test 2804 56 56.044610470922 Mu(tan=1.48505, x=0.558547, y=0.829473): 1.482560968513\n    test 2805 56 56.000137435853 Chi(tan=1.48257, x=0.559191, y=0.829039): 1.482560968513\n    test 2806 56 56.059447854026 Xi(tan=1.48588, x=0.558332, y=0.829617): 1.482560968513\n\n    test 2807 63 63.155367155141 Phi(tan=1.97584, x=0.45399, y=0.897011): 1.962610505505\n    test 2808 63 63.077760538972 Beta(tan=1.96921, x=0.45399, y=0.894004): 1.962610505505\n    test 2809 63 63.000000000000 Theta(tan=1.96261, x=0.45399, y=0.891007): 1.962610505505\n    test 2810 63 63.038928423958 Mu(tan=1.96591, x=0.453385, y=0.891315), iteration=2: 1.962610505505\n    test 2811 63 63.000138398794 Chi(tan=1.96262, x=1.0, y=1.96262), iteration=3: 1.962610505505\n    test 2812 63 63.051866422105 Xi(tan=1.96701, x=0.910437, y=1.79084), iteration=3: 1.962610505505\n\n    test 2813 63 63.155367155141 Phi(tan=1.97584, x=0.451573, y=0.892234): 1.962610505505\n    test 2814 63 63.077760538972 Beta(tan=1.96921, x=0.452781, y=0.891622): 1.962610505505\n    test 2815 63 63.000000000000 Theta(tan=1.96261, x=0.45399, y=0.891007): 1.962610505505\n    test 2816 63 63.038928423958 Mu(tan=1.96591, x=0.453385, y=0.891315): 1.962610505505\n    test 2817 63 63.000138398794 Chi(tan=1.96262, x=0.453988, y=0.891008): 1.962610505505\n    test 2818 63 63.051866422105 Xi(tan=1.96701, x=0.453184, y=0.891417): 1.962610505505\n\n    test 2819 70 70.123370137625 Phi(tan=2.76599, x=0.34202, y=0.946026): 2.747477419455\n    test 2820 70 70.061764561164 Beta(tan=2.75672, x=0.34202, y=0.942854): 2.747477419455\n    test 2821 70 70.000000000000 Theta(tan=2.74748, x=0.34202, y=0.939693): 2.747477419455\n    test 2822 70 70.030932030288 Mu(tan=2.7521, x=0.341513, y=0.939877), iteration=3: 2.747477419455\n    test 2823 70 70.000122219482 Chi(tan=2.7475, x=1.0, y=2.7475), iteration=3: 2.747477419455\n    test 2824 70 70.041206070039 Xi(tan=2.75364, x=0.685754, y=1.88832), iteration=2: 2.747477419455\n\n    test 2825 70 70.123370137625 Phi(tan=2.76599, x=0.339996, y=0.940427): 2.747477419455\n    test 2826 70 70.061764561164 Beta(tan=2.75672, x=0.341007, y=0.940061): 2.747477419455\n    test 2827 70 70.000000000000 Theta(tan=2.74748, x=0.34202, y=0.939693): 2.747477419455\n    test 2828 70 70.030932030288 Mu(tan=2.7521, x=0.341513, y=0.939877): 2.747477419455\n    test 2829 70 70.000122219482 Chi(tan=2.7475, x=0.342018, y=0.939693): 2.747477419455\n    test 2830 70 70.041206070039 Xi(tan=2.75364, x=0.341344, y=0.939938): 2.747477419455\n\n    test 2831 77 77.084099185826 Phi(tan=4.36067, x=0.224951, y=0.980937): 4.331475874284\n    test 2832 77 77.042113102652 Beta(tan=4.34605, x=0.224951, y=0.977648): 4.331475874284\n    test 2833 77 77.000000000000 Theta(tan=4.33148, x=0.224951, y=0.97437): 4.331475874284\n    test 2834 77 77.021096305787 Mu(tan=4.33876, x=0.224592, y=0.974453), iteration=3: 4.331475874284\n    test 2835 77 77.000089569308 Chi(tan=4.33151, x=1.0, y=4.33151), iteration=3: 4.331475874284\n    test 2836 77 77.028100210930 Xi(tan=4.34119, x=0.450962, y=1.95771), iteration=3: 4.331475874284\n\n    test 2837 77 77.084099185826 Phi(tan=4.36067, x=0.223521, y=0.974699): 4.331475874284\n    test 2838 77 77.042113102652 Beta(tan=4.34605, x=0.224235, y=0.974535): 4.331475874284\n    test 2839 77 77.000000000000 Theta(tan=4.33148, x=0.224951, y=0.97437): 4.331475874284\n    test 2840 77 77.021096305787 Mu(tan=4.33876, x=0.224592, y=0.974453): 4.331475874284\n    test 2841 77 77.000089569308 Chi(tan=4.33151, x=0.22495, y=0.97437): 4.331475874284\n    test 2842 77 77.028100210930 Xi(tan=4.34119, x=0.224473, y=0.97448): 4.331475874284\n\n    test 2843 84 84.039876185217 Phi(tan=9.57849, x=0.104528, y=1.00122): 9.514364454223\n    test 2844 84 84.019970846274 Beta(tan=9.54637, x=0.104528, y=0.997868): 9.514364454223\n    test 2845 84 84.000000000000 Theta(tan=9.51436, x=0.104528, y=0.994522): 9.514364454223\n    test 2846 84 84.010005927895 Mu(tan=9.53037, x=0.104355, y=0.99454), iteration=2: 9.514364454223\n    test 2847 84 84.000044242373 Chi(tan=9.51444, x=1.0, y=9.51444), iteration=3: 9.514364454223\n    test 2848 84 84.013326954497 Xi(tan=9.5357, x=0.209531, y=1.99802), iteration=3: 9.514364454223\n\n    test 2849 84 84.039876185217 Phi(tan=9.57849, x=0.103836, y=0.994594): 9.514364454223\n    test 2850 84 84.019970846274 Beta(tan=9.54637, x=0.104182, y=0.994558): 9.514364454223\n    test 2851 84 84.000000000000 Theta(tan=9.51436, x=0.104528, y=0.994522): 9.514364454223\n    test 2852 84 84.010005927895 Mu(tan=9.53037, x=0.104355, y=0.99454): 9.514364454223\n    test 2853 84 84.000044242373 Chi(tan=9.51444, x=0.104528, y=0.994522): 9.514364454223\n    test 2854 84 84.013326954497 Xi(tan=9.5357, x=0.104297, y=0.994546): 9.514364454223\n\n    test 2855 91 90.993306965793 Phi(tan=-57.6761, x=-0.0174524, y=1.00659): -57.289961630759\n    test 2856 91 90.996647866757 Beta(tan=-57.4827, x=-0.0174524, y=1.00321): -57.289961630759\n    test 2857 91 91.000000000000 Theta(tan=-57.29, x=-0.0174524, y=0.999848): -57.289961630759\n    test 2858 91 90.998320417403 Mu(tan=-57.3864, x=-0.0174231, y=0.999848), iteration=3: -57.289961630759\n    test 2859 91 90.999992494484 Chi(tan=-57.2904, x=-1, y=57.2904), iteration=3: -57.289961630759\n    test 2860 91 90.997762994841 Xi(tan=-57.4184, x=-0.0349831, y=2.00868), iteration=3: -57.289961630759\n\n    test 2861 91 90.993306965793 Phi(tan=-57.6761, x=-0.0173356, y=0.99985): -57.289961630760  FAILED, KNOWN (4.3409e-15), expected -57.289961630759\n    test 2862 91 90.996647866757 Beta(tan=-57.4827, x=-0.0173939, y=0.999849): -57.289961630759\n    test 2863 91 91.000000000000 Theta(tan=-57.29, x=-0.0174524, y=0.999848): -57.289961630759\n    test 2864 91 90.998320417403 Mu(tan=-57.3864, x=-0.0174231, y=0.999848): -57.289961630760  FAILED, KNOWN (4.3409e-15), expected -57.289961630759\n    test 2865 91 90.999992494484 Chi(tan=-57.2904, x=-0.0174523, y=0.999848): -57.289961630760  FAILED, KNOWN (3.72077e-15), expected -57.289961630759\n    test 2866 91 90.997762994841 Xi(tan=-57.4184, x=-0.0174134, y=0.999848): -57.289961630760  FAILED, KNOWN (2.85259e-15), expected -57.289961630759\n\n    test 2867 98 97.947131466338 Phi(tan=-7.16332, x=-0.139173, y=0.996942): -7.115369722384\n    test 2868 98 97.973523052479 Beta(tan=-7.13931, x=-0.139173, y=0.993599): -7.115369722384\n    test 2869 98 98.000000000000 Theta(tan=-7.11537, x=-0.139173, y=0.990268): -7.115369722384\n    test 2870 98 97.986734807520 Mu(tan=-7.12734, x=-0.138944, y=0.9903), iteration=3: -7.115369722384\n    test 2871 98 97.999941842742 Chi(tan=-7.11542, x=-1, y=7.11542), iteration=3: -7.115369722384\n    test 2872 98 97.982331755375 Xi(tan=-7.13133, x=-0.278982, y=1.98951), iteration=3: -7.115369722384\n\n    test 2873 98 97.947131466338 Phi(tan=-7.16332, x=-0.138259, y=0.990396): -7.115369722384\n    test 2874 98 97.973523052479 Beta(tan=-7.13931, x=-0.138715, y=0.990332): -7.115369722384\n    test 2875 98 98.000000000000 Theta(tan=-7.11537, x=-0.139173, y=0.990268): -7.115369722384\n    test 2876 98 97.986734807520 Mu(tan=-7.12734, x=-0.138944, y=0.9903): -7.115369722384\n    test 2877 98 97.999941842742 Chi(tan=-7.11542, x=-0.139172, y=0.990268): -7.115369722384\n    test 2878 98 97.982331755375 Xi(tan=-7.13133, x=-0.138868, y=0.990311): -7.115369722384\n\n    test 2879 105 104.904067139653 Phi(tan=-3.7572, x=-0.258819, y=0.972436): -3.732050807569\n    test 2880 105 104.951963747366 Beta(tan=-3.74461, x=-0.258819, y=0.969175): -3.732050807569\n    test 2881 105 105.000000000000 Theta(tan=-3.73205, x=-0.258819, y=0.965926): -3.732050807569\n    test 2882 105 104.975938169742 Mu(tan=-3.73833, x=-0.258413, y=0.966034), iteration=3: -3.732050807569\n    test 2883 105 104.999899588330 Chi(tan=-3.73208, x=-1, y=3.73208), iteration=3: -3.732050807569\n    test 2884 105 104.967948816895 Xi(tan=-3.74042, x=-0.518877, y=1.94082), iteration=2: -3.732050807569\n\n    test 2885 105 104.904067139653 Phi(tan=-3.7572, x=-0.257201, y=0.966358): -3.732050807569\n    test 2886 105 104.951963747366 Beta(tan=-3.74461, x=-0.258009, y=0.966142): -3.732050807569\n    test 2887 105 105.000000000000 Theta(tan=-3.73205, x=-0.258819, y=0.965926): -3.732050807569\n    test 2888 105 104.975938169742 Mu(tan=-3.73833, x=-0.258413, y=0.966034): -3.732050807569\n    test 2889 105 104.999899588330 Chi(tan=-3.73208, x=-0.258817, y=0.965926): -3.732050807569\n    test 2890 105 104.967948816895 Xi(tan=-3.74042, x=-0.258279, y=0.96607): -3.732050807569\n\n    test 2891 112 111.866653486751 Phi(tan=-2.49177, x=-0.374607, y=0.933433): -2.475086853416\n    test 2892 112 111.933246025813 Beta(tan=-2.48341, x=-0.374607, y=0.930303): -2.475086853416\n    test 2893 112 112.000000000000 Theta(tan=-2.47509, x=-0.374607, y=0.927184): -2.475086853416\n    test 2894 112 111.966572499608 Mu(tan=-2.47925, x=-0.374066, y=0.927402), iteration=3: -2.475086853416\n    test 2895 112 111.999871386688 Chi(tan=-2.4751, x=-1, y=2.4751), iteration=3: -2.475086853416\n    test 2896 112 111.955467801390 Xi(tan=-2.48064, x=-0.751129, y=1.86328), iteration=3: -2.475086853416\n\n    test 2897 112 111.866653486751 Phi(tan=-2.49177, x=-0.372448, y=0.928053): -2.475086853416\n    test 2898 112 111.933246025813 Beta(tan=-2.48341, x=-0.373526, y=0.92762): -2.475086853416\n    test 2899 112 112.000000000000 Theta(tan=-2.47509, x=-0.374607, y=0.927184): -2.475086853416\n    test 2900 112 111.966572499608 Mu(tan=-2.47925, x=-0.374066, y=0.927402): -2.475086853416\n    test 2901 112 111.999871386688 Chi(tan=-2.4751, x=-0.374605, y=0.927185): -2.475086853416\n    test 2902 112 111.955467801390 Xi(tan=-2.48064, x=-0.373886, y=0.927475): -2.475086853416\n\n    test 2903 119 118.837105586950 Phi(tan=-1.81621, x=-0.48481, y=0.880514): -1.804047755271\n    test 2904 119 118.918479987923 Beta(tan=-1.81012, x=-0.48481, y=0.877562): -1.804047755271\n    test 2905 119 119.000000000000 Theta(tan=-1.80405, x=-0.48481, y=0.87462): -1.804047755271\n    test 2906 119 118.959194442963 Mu(tan=-1.80708, x=-0.484187, y=0.874965), iteration=3: -1.804047755271\n    test 2907 119 118.999860178783 Chi(tan=-1.80406, x=-1, y=1.80406), iteration=2: -1.804047755271\n    test 2908 119 118.945629859635 Xi(tan=-1.80809, x=-0.972305, y=1.75802), iteration=3: -1.804047755271\n\n    test 2909 119 118.837105586950 Phi(tan=-1.81621, x=-0.482321, y=0.875995): -1.804047755271\n    test 2910 119 118.918479987923 Beta(tan=-1.81012, x=-0.483565, y=0.875309): -1.804047755271\n    test 2911 119 119.000000000000 Theta(tan=-1.80405, x=-0.48481, y=0.87462): -1.804047755271\n    test 2912 119 118.959194442963 Mu(tan=-1.80708, x=-0.484187, y=0.874965): -1.804047755271\n    test 2913 119 118.999860178783 Chi(tan=-1.80406, x=-0.484807, y=0.874621): -1.804047755271\n    test 2914 119 118.945629859635 Xi(tan=-1.80809, x=-0.483979, y=0.875079): -1.804047755271\n\n    test 2915 126 125.817184307945 Phi(tan=-1.38566, x=-0.587785, y=0.814469): -1.376381920471\n    test 2916 126 125.908544256035 Beta(tan=-1.38101, x=-0.587785, y=0.811739): -1.376381920471\n    test 2917 126 126.000000000000 Theta(tan=-1.37638, x=-0.587785, y=0.809017): -1.376381920471\n    test 2918 126 125.954242166425 Mu(tan=-1.3787, x=-0.587139, y=0.809486), iteration=2: -1.376381920471\n    test 2919 126 125.999865716658 Chi(tan=-1.37639, x=-1, y=1.37639), iteration=3: -1.376381920471\n    test 2920 126 125.939019715793 Xi(tan=-1.37947, x=-1.17912, y=1.62655), iteration=3: -1.376381920471\n\n    test 2921 126 125.817184307945 Phi(tan=-1.38566, x=-0.585201, y=0.810888): -1.376381920471\n    test 2922 126 125.908544256035 Beta(tan=-1.38101, x=-0.586493, y=0.809954): -1.376381920471\n    test 2923 126 126.000000000000 Theta(tan=-1.37638, x=-0.587785, y=0.809017): -1.376381920471\n    test 2924 126 125.954242166425 Mu(tan=-1.3787, x=-0.587139, y=0.809486): -1.376381920471\n    test 2925 126 125.999865716658 Chi(tan=-1.37639, x=-0.587783, y=0.809018): -1.376381920471\n    test 2926 126 125.939019715793 Xi(tan=-1.37947, x=-0.586924, y=0.809642): -1.376381920471\n\n    test 2927 133 132.808090472544 Phi(tan=-1.0796, x=-0.681998, y=0.736283): -1.072368710025\n    test 2928 133 132.904033458108 Beta(tan=-1.07598, x=-0.681998, y=0.733814): -1.072368710025\n    test 2929 133 133.000000000000 Theta(tan=-1.07237, x=-0.681998, y=0.731354): -1.072368710025\n    test 2930 133 132.952009355583 Mu(tan=-1.07417, x=-0.681386, y=0.731925), iteration=3: -1.072368710025\n    test 2931 133 132.999884783382 Chi(tan=-1.07237, x=-1, y=1.07237), iteration=2: -1.072368710025\n    test 2932 133 132.936030863456 Xi(tan=-1.07477, x=-1.36848, y=1.4708), iteration=3: -1.072368710025\n\n    test 2933 133 132.808090472544 Phi(tan=-1.0796, x=-0.679545, y=0.733634): -1.072368710025\n    test 2934 133 132.904033458108 Beta(tan=-1.07598, x=-0.680772, y=0.732495): -1.072368710025\n    test 2935 133 133.000000000000 Theta(tan=-1.07237, x=-0.681998, y=0.731354): -1.072368710025\n    test 2936 133 132.952009355583 Mu(tan=-1.07417, x=-0.681386, y=0.731925): -1.072368710025\n    test 2937 133 132.999884783382 Chi(tan=-1.07237, x=-0.681997, y=0.731355): -1.072368710025\n    test 2938 133 132.936030863456 Xi(tan=-1.07477, x=-0.681181, y=0.732115): -1.072368710025\n\n    test 2939 140 139.810389526291 Phi(tan=-0.844755, x=-0.766044, y=0.64712): -0.839099631177\n    test 2940 140 139.905221888853 Beta(tan=-0.841922, x=-0.766044, y=0.64495): -0.839099631177\n    test 2941 140 140.000000000000 Theta(tan=-0.8391, x=-0.766044, y=0.642788): -0.839099631177\n    test 2942 140 139.952627882329 Mu(tan=-0.84051, x=-0.765513, y=0.643421), iteration=3: -0.839099631177\n    test 2943 140 139.999912050710 Chi(tan=-0.839102, x=-1, y=0.839102), iteration=3: -0.839099631177\n    test 2944 140 139.936841998365 Xi(tan=-0.84098, x=-1.53754, y=1.29304), iteration=2: -0.839099631177\n\n    test 2945 140 139.810389526291 Phi(tan=-0.844755, x=-0.763913, y=0.645319): -0.839099631177\n    test 2946 140 139.905221888853 Beta(tan=-0.841922, x=-0.76498, y=0.644054): -0.839099631177\n    test 2947 140 140.000000000000 Theta(tan=-0.8391, x=-0.766044, y=0.642788): -0.839099631177\n    test 2948 140 139.952627882329 Mu(tan=-0.84051, x=-0.765513, y=0.643421): -0.839099631177\n    test 2949 140 139.999912050710 Chi(tan=-0.839102, x=-0.766043, y=0.642789): -0.839099631177\n    test 2950 140 139.936841998365 Xi(tan=-0.84098, x=-0.765335, y=0.643632): -0.839099631177\n\n    test 2951 147 146.823972083650 Phi(tan=-0.653784, x=-0.838671, y=0.54831): -0.649407593198\n    test 2952 147 146.912045740495 Beta(tan=-0.651592, x=-0.838671, y=0.546471): -0.649407593198\n    test 2953 147 147.000000000000 Theta(tan=-0.649408, x=-0.838671, y=0.544639): -0.649407593198\n    test 2954 147 146.956060147954 Mu(tan=-0.650498, x=-0.838253, y=0.545282), iteration=2: -0.649407593198\n    test 2955 147 146.999941372376 Chi(tan=-0.649409, x=-1, y=0.649409), iteration=2: -0.649407593198\n    test 2956 147 146.941406134703 Xi(tan=-0.650863, x=-1.68375, y=1.09589), iteration=3: -0.649407593198\n\n    test 2957 147 146.823972083650 Phi(tan=-0.653784, x=-0.836993, y=0.547213): -0.649407593198\n    test 2958 147 146.912045740495 Beta(tan=-0.651592, x=-0.837834, y=0.545926): -0.649407593198\n    test 2959 147 147.000000000000 Theta(tan=-0.649408, x=-0.838671, y=0.544639): -0.649407593198\n    test 2960 147 146.956060147954 Mu(tan=-0.650498, x=-0.838253, y=0.545282): -0.649407593198\n    test 2961 147 146.999941372376 Chi(tan=-0.649409, x=-0.83867, y=0.54464): -0.649407593198\n    test 2962 147 146.941406134703 Xi(tan=-0.650863, x=-0.838113, y=0.545496): -0.649407593198\n\n    test 2963 154 153.848054049875 Phi(tan=-0.49102, x=-0.898794, y=0.441326): -0.487732588566\n    test 2964 154 153.924105301481 Beta(tan=-0.489373, x=-0.898794, y=0.439846): -0.487732588566\n    test 2965 154 154.000000000000 Theta(tan=-0.487733, x=-0.898794, y=0.438371): -0.487732588566\n    test 2966 154 153.962101517600 Mu(tan=-0.488552, x=-0.898504, y=0.438966), iteration=2: -0.487732588566\n    test 2967 154 153.999967210311 Chi(tan=-0.487733, x=-1, y=0.487733), iteration=3: -0.487732588566\n    test 2968 154 153.949453115559 Xi(tan=-0.488825, x=-1.80488, y=0.882271), iteration=3: -0.487732588566\n\n    test 2969 154 153.848054049875 Phi(tan=-0.49102, x=-0.897628, y=0.440753): -0.487732588566\n    test 2970 154 153.924105301481 Beta(tan=-0.489373, x=-0.898213, y=0.439561): -0.487732588566\n    test 2971 154 154.000000000000 Theta(tan=-0.487733, x=-0.898794, y=0.438371): -0.487732588566\n    test 2972 154 153.962101517600 Mu(tan=-0.488552, x=-0.898504, y=0.438966): -0.487732588566\n    test 2973 154 153.999967210311 Chi(tan=-0.487733, x=-0.898794, y=0.438372): -0.487732588566\n    test 2974 154 153.949453115559 Xi(tan=-0.488825, x=-0.898407, y=0.439164): -0.487732588566\n\n    test 2975 161 160.881217808592 Phi(tan=-0.346648, x=-0.945519, y=0.327762): -0.344327613290\n    test 2976 161 160.940687365843 Beta(tan=-0.345486, x=-0.945519, y=0.326663): -0.344327613290\n    test 2977 161 161.000000000000 Theta(tan=-0.344328, x=-0.945519, y=0.325568): -0.344327613290\n    test 2978 161 160.970392653926 Mu(tan=-0.344906, x=-0.94535, y=0.326057), iteration=2: -0.344327613290\n    test 2979 161 160.999985859992 Chi(tan=-0.344328, x=-1, y=0.344328), iteration=3: -0.344327613290\n    test 2980 161 160.960505433888 Xi(tan=-0.345099, x=-1.89908, y=0.655369), iteration=3: -0.344327613290\n\n    test 2981 161 160.881217808592 Phi(tan=-0.346648, x=-0.944842, y=0.327528): -0.344327613290\n    test 2982 161 160.940687365843 Beta(tan=-0.345486, x=-0.945181, y=0.326547): -0.344327613290\n    test 2983 161 161.000000000000 Theta(tan=-0.344328, x=-0.945519, y=0.325568): -0.344327613290\n    test 2984 161 160.970392653926 Mu(tan=-0.344906, x=-0.94535, y=0.326057): -0.344327613290\n    test 2985 161 160.999985859992 Chi(tan=-0.344328, x=-0.945518, y=0.325568): -0.344327613290\n    test 2986 161 160.960505433888 Xi(tan=-0.345099, x=-0.945294, y=0.32622): -0.344327613290\n\n    test 2987 168 167.921493317051 Phi(tan=-0.213989, x=-0.978148, y=0.209313): -0.212556561670\n    test 2988 168 167.960806838131 Beta(tan=-0.213272, x=-0.978148, y=0.208611): -0.212556561670\n    test 2989 168 168.000000000000 Theta(tan=-0.212557, x=-0.978148, y=0.207912): -0.212556561670\n    test 2990 168 167.980440972867 Mu(tan=-0.212913, x=-0.978077, y=0.208246), iteration=3: -0.212556561670\n    test 2991 168 167.999996188328 Chi(tan=-0.212557, x=-1, y=0.212557), iteration=3: -0.212556561670\n    test 2992 168 167.973906475806 Xi(tan=-0.213033, x=-1.96489, y=0.418585), iteration=3: -0.212556561670\n\n    test 2993 168 167.921493317051 Phi(tan=-0.213989, x=-0.977862, y=0.209252): -0.212556561670\n    test 2994 168 167.960806838131 Beta(tan=-0.213272, x=-0.978005, y=0.208581): -0.212556561670\n    test 2995 168 168.000000000000 Theta(tan=-0.212557, x=-0.978148, y=0.207912): -0.212556561670\n    test 2996 168 167.980440972867 Mu(tan=-0.212913, x=-0.978077, y=0.208246): -0.212556561670\n    test 2997 168 167.999996188328 Chi(tan=-0.212557, x=-0.978148, y=0.207912): -0.212556561670\n    test 2998 168 167.973906475806 Xi(tan=-0.213033, x=-0.978053, y=0.208357): -0.212556561670\n\n    test 2999 175 174.966475056686 Phi(tan=-0.0880783, x=-0.996195, y=0.0877431): -0.087488663526\n    test 3000 175 174.983265245736 Beta(tan=-0.087783, x=-0.996195, y=0.0874489): -0.087488663526\n    test 3001 175 175.000000000000 Theta(tan=-0.0874887, x=-0.996195, y=0.0871557): -0.087488663526\n    test 3002 175 174.991649917523 Mu(tan=-0.0876355, x=-0.996182, y=0.0873009), iteration=3: -0.087488663526\n    test 3003 175 174.999999713957 Chi(tan=-0.0874887, x=-1, y=0.0874887), iteration=3: -0.087488663526\n    test 3004 175 174.988859535139 Xi(tan=-0.0876846, x=-2.0013, y=0.175483), iteration=3: -0.087488663526\n\n    test 3005 175 174.966475056686 Phi(tan=-0.0880783, x=-0.996144, y=0.0877386): -0.087488663526\n    test 3006 175 174.983265245736 Beta(tan=-0.087783, x=-0.996169, y=0.0874467): -0.087488663526\n    test 3007 175 175.000000000000 Theta(tan=-0.0874887, x=-0.996195, y=0.0871557): -0.087488663526\n    test 3008 175 174.991649917523 Mu(tan=-0.0876355, x=-0.996182, y=0.0873009): -0.087488663526\n    test 3009 175 174.999999713957 Chi(tan=-0.0874887, x=-0.996195, y=0.0871557): -0.087488663526\n    test 3010 175 174.988859535139 Xi(tan=-0.0876846, x=-0.996178, y=0.0873494): -0.087488663526\n\n    test 3011 182 182.013467936189 Phi(tan=0.0351561, x=-0.999391, y=-0.0351347): 0.034920769492\n    test 3012 182 182.006722688009 Beta(tan=0.0350382, x=-0.999391, y=-0.0350169): 0.034920769492\n    test 3013 182 182.000000000000 Theta(tan=0.0349208, x=-0.999391, y=-0.0348995): 0.034920769492\n    test 3014 182 182.003354305769 Mu(tan=0.0349794, x=-0.999389, y=-0.034958), iteration=3: 0.034920769492\n    test 3015 182 182.000000018425 Chi(tan=0.0349208, x=-1, y=-0.0349208), iteration=2: 0.034920769492\n    test 3016 182 182.004475278247 Xi(tan=0.034999, x=-2.00775, y=-0.0702692), iteration=3: 0.034920769492\n\n    test 3017 182 182.013467936189 Phi(tan=0.0351561, x=-0.999383, y=-0.0351344): 0.034920769492\n    test 3018 182 182.006722688009 Beta(tan=0.0350382, x=-0.999387, y=-0.0350168): 0.034920769492\n    test 3019 182 182.000000000000 Theta(tan=0.0349208, x=-0.999391, y=-0.0348995): 0.034920769492\n    test 3020 182 182.003354305769 Mu(tan=0.0349794, x=-0.999389, y=-0.034958): 0.034920769492\n    test 3021 182 182.000000018425 Chi(tan=0.0349208, x=-0.999391, y=-0.0348995): 0.034920769492\n    test 3022 182 182.004475278247 Xi(tan=0.034999, x=-0.999388, y=-0.0349776): 0.034920769492\n\n    test 3023 189 189.059652780362 Phi(tan=0.159452, x=-0.987688, y=-0.157489): 0.158384440325\n    test 3024 189 189.029778772560 Beta(tan=0.158917, x=-0.987688, y=-0.156961): 0.158384440325\n    test 3025 189 189.000000000000 Theta(tan=0.158384, x=-0.987688, y=-0.156434): 0.158384440325\n    test 3026 189 189.014859673134 Mu(tan=0.15865, x=-0.987648, y=-0.156691), iteration=3: 0.158384440325\n    test 3027 189 189.000001639674 Chi(tan=0.158384, x=-1, y=-0.158384), iteration=3: 0.158384440325\n    test 3028 189 189.019824807860 Xi(tan=0.158739, x=-1.98414, y=-0.31496), iteration=3: 0.158384440325\n\n    test 3029 189 189.059652780362 Phi(tan=0.159452, x=-0.987525, y=-0.157463): 0.158384440325\n    test 3030 189 189.029778772560 Beta(tan=0.158917, x=-0.987607, y=-0.156948): 0.158384440325\n    test 3031 189 189.000000000000 Theta(tan=0.158384, x=-0.987688, y=-0.156434): 0.158384440325\n    test 3032 189 189.014859673134 Mu(tan=0.15865, x=-0.987648, y=-0.156691): 0.158384440325\n    test 3033 189 189.000001639674 Chi(tan=0.158384, x=-0.987688, y=-0.156434): 0.158384440325\n    test 3034 189 189.019824807860 Xi(tan=0.158739, x=-0.987634, y=-0.156776): 0.158384440325\n\n    test 3035 196 196.102260292825 Phi(tan=0.288678, x=-0.961262, y=-0.277495): 0.286745385759\n    test 3036 196 196.051057415277 Beta(tan=0.28771, x=-0.961262, y=-0.276565): 0.286745385759\n    test 3037 196 196.000000000000 Theta(tan=0.286745, x=-0.961262, y=-0.275637): 0.286745385759\n    test 3038 196 196.025483317057 Mu(tan=0.287227, x=-0.961139, y=-0.276065), iteration=3: 0.286745385759\n    test 3039 196 196.000008725999 Chi(tan=0.286746, x=-1, y=-0.286746), iteration=3: 0.286745385759\n    test 3040 196 196.033995121177 Xi(tan=0.287388, x=-1.93083, y=-0.554896), iteration=2: 0.286745385759\n\n    test 3041 196 196.102260292825 Phi(tan=0.288678, x=-0.960768, y=-0.277353): 0.286745385759\n    test 3042 196 196.051057415277 Beta(tan=0.28771, x=-0.961016, y=-0.276494): 0.286745385759\n    test 3043 196 196.000000000000 Theta(tan=0.286745, x=-0.961262, y=-0.275637): 0.286745385759\n    test 3044 196 196.025483317057 Mu(tan=0.287227, x=-0.961139, y=-0.276065): 0.286745385759\n    test 3045 196 196.000008725999 Chi(tan=0.286746, x=-0.961262, y=-0.275638): 0.286745385759\n    test 3046 196 196.033995121177 Xi(tan=0.287388, x=-0.961098, y=-0.276208): 0.286745385759\n\n    test 3047 203 203.138741606579 Phi(tan=0.427336, x=-0.920505, y=-0.393364): 0.424474816210\n    test 3048 203 203.069290086312 Beta(tan=0.425903, x=-0.920505, y=-0.392046): 0.424474816210\n    test 3049 203 203.000000000000 Theta(tan=0.424475, x=-0.920505, y=-0.390731): 0.424474816210\n    test 3050 203 203.034594657995 Mu(tan=0.425188, x=-0.920269, y=-0.391287), iteration=3: 0.424474816210\n    test 3051 203 203.000023787567 Chi(tan=0.424475, x=-1, y=-0.424475), iteration=2: 0.424474816210\n    test 3052 203 203.046143605881 Xi(tan=0.425426, x=-1.84864, y=-0.78646), iteration=3: 0.424474816210\n\n    test 3053 203 203.138741606579 Phi(tan=0.427336, x=-0.919556, y=-0.392959): 0.424474816210\n    test 3054 203 203.069290086312 Beta(tan=0.425903, x=-0.920032, y=-0.391844): 0.424474816210\n    test 3055 203 203.000000000000 Theta(tan=0.424475, x=-0.920505, y=-0.390731): 0.424474816210\n    test 3056 203 203.034594657995 Mu(tan=0.425188, x=-0.920269, y=-0.391287): 0.424474816210\n    test 3057 203 203.000023787567 Chi(tan=0.424475, x=-0.920505, y=-0.390732): 0.424474816210\n    test 3058 203 203.046143605881 Xi(tan=0.425426, x=-0.92019, y=-0.391472): 0.424474816210\n\n    test 3059 210 210.166923849507 Phi(tan=0.581241, x=-0.866025, y=-0.50337): 0.577350269190\n    test 3060 210 210.083392202979 Beta(tan=0.579293, x=-0.866025, y=-0.501682): 0.577350269190\n    test 3061 210 210.000000000000 Theta(tan=0.57735, x=-0.866025, y=-0.5): 0.577350269190\n    test 3062 210 210.041652569165 Mu(tan=0.57832, x=-0.865662, y=-0.500629), iteration=3: 0.577350269190\n    test 3063 210 210.000046858553 Chi(tan=0.577351, x=-1, y=-0.577351), iteration=2: 0.577350269190\n    test 3064 210 210.055548278686 Xi(tan=0.578644, x=-1.73885, y=-1.00618), iteration=3: 0.577350269190\n\n    test 3065 210 210.166923849507 Phi(tan=0.581241, x=-0.864565, y=-0.502521): 0.577350269190\n    test 3066 210 210.083392202979 Beta(tan=0.579293, x=-0.865297, y=-0.50126): 0.577350269190\n    test 3067 210 210.000000000000 Theta(tan=0.57735, x=-0.866025, y=-0.5): 0.577350269190\n    test 3068 210 210.041652569165 Mu(tan=0.57832, x=-0.865662, y=-0.500629): 0.577350269190\n    test 3069 210 210.000046858553 Chi(tan=0.577351, x=-0.866025, y=-0.500001): 0.577350269190\n    test 3070 210 210.055548278686 Xi(tan=0.578644, x=-0.86554, y=-0.500839): 0.577350269190\n\n    test 3071 217 217.185140504831 Phi(tan=0.758633, x=-0.798636, y=-0.605871): 0.753554050103\n    test 3072 217 217.092527888642 Beta(tan=0.756089, x=-0.798636, y=-0.60384): 0.753554050103\n    test 3073 217 217.000000000000 Theta(tan=0.753554, x=-0.798636, y=-0.601815): 0.753554050103\n    test 3074 217 217.046237489147 Mu(tan=0.75482, x=-0.79815, y=-0.602459), iteration=2: 0.753554050103\n    test 3075 217 217.000075282212 Chi(tan=0.753556, x=-1, y=-0.753556), iteration=3: 0.753554050103\n    test 3076 217 217.061650740215 Xi(tan=0.755242, x=-1.60314, y=-1.21076), iteration=2: 0.753554050103\n\n    test 3077 217 217.185140504831 Phi(tan=0.758633, x=-0.796687, y=-0.604393): 0.753554050103\n    test 3078 217 217.092527888642 Beta(tan=0.756089, x=-0.797663, y=-0.603104): 0.753554050103\n    test 3079 217 217.000000000000 Theta(tan=0.753554, x=-0.798636, y=-0.601815): 0.753554050103\n    test 3080 217 217.046237489147 Mu(tan=0.75482, x=-0.79815, y=-0.602459): 0.753554050103\n    test 3081 217 217.000075282212 Chi(tan=0.753556, x=-0.798635, y=-0.601816): 0.753554050103\n    test 3082 217 217.061650740215 Xi(tan=0.755242, x=-0.797987, y=-0.602674): 0.753554050103\n\n    test 3083 224 224.192328540028 Phi(tan=0.972197, x=-0.71934, y=-0.69934): 0.965688774807\n    test 3084 224 224.096159176144 Beta(tan=0.968937, x=-0.71934, y=-0.696995): 0.965688774807\n    test 3085 224 224.000000000000 Theta(tan=0.965689, x=-0.71934, y=-0.694658): 0.965688774807\n    test 3086 224 224.048076415859 Mu(tan=0.967312, x=-0.718757, y=-0.695262), iteration=3: 0.965688774807\n    test 3087 224 224.000104179110 Chi(tan=0.965692, x=-1, y=-0.965692), iteration=3: 0.965688774807\n    test 3088 224 224.064089278462 Xi(tan=0.967853, x=-1.44358, y=-1.39717), iteration=3: 0.965688774807\n\n    test 3089 224 224.192328540028 Phi(tan=0.972197, x=-0.717004, y=-0.697069): 0.965688774807\n    test 3090 224 224.096159176144 Beta(tan=0.968937, x=-0.718173, y=-0.695865): 0.965688774807\n    test 3091 224 224.000000000000 Theta(tan=0.965689, x=-0.71934, y=-0.694658): 0.965688774807\n    test 3092 224 224.048076415859 Mu(tan=0.967312, x=-0.718757, y=-0.695262): 0.965688774807\n    test 3093 224 224.000104179110 Chi(tan=0.965692, x=-0.719339, y=-0.69466): 0.965688774807\n    test 3094 224 224.064089278462 Xi(tan=0.967853, x=-0.718562, y=-0.695463): 0.965688774807\n\n    test 3095 231 231.188087005479 Phi(tan=1.24322, x=-0.62932, y=-0.782384): 1.234897156535\n    test 3096 231 231.094076843128 Beta(tan=1.23905, x=-0.62932, y=-0.77976): 1.234897156535\n    test 3097 231 231.000000000000 Theta(tan=1.2349, x=-0.62932, y=-0.777146): 1.234897156535\n    test 3098 231 231.047059277252 Mu(tan=1.23697, x=-0.628682, y=-0.777663), iteration=3: 1.234897156535\n    test 3099 231 231.000127493216 Chi(tan=1.2349, x=-1, y=-1.2349), iteration=3: 1.234897156535\n    test 3100 231 231.062720168394 Xi(tan=1.23766, x=-1.26258, y=-1.56265), iteration=3: 1.234897156535\n\n    test 3101 231 231.188087005479 Phi(tan=1.24322, x=-0.626766, y=-0.779208): 1.234897156535\n    test 3102 231 231.094076843128 Beta(tan=1.23905, x=-0.628044, y=-0.778178): 1.234897156535\n    test 3103 231 231.000000000000 Theta(tan=1.2349, x=-0.62932, y=-0.777146): 1.234897156535\n    test 3104 231 231.047059277252 Mu(tan=1.23697, x=-0.628682, y=-0.777663): 1.234897156535\n    test 3105 231 231.000127493216 Chi(tan=1.2349, x=-0.629319, y=-0.777147): 1.234897156535\n    test 3106 231 231.062720168394 Xi(tan=1.23766, x=-0.628469, y=-0.777834): 1.234897156535\n\n    test 3107 238 238.172694719424 Phi(tan=1.61112, x=-0.529919, y=-0.853764): 1.600334529041\n    test 3108 238 238.086411314589 Beta(tan=1.60572, x=-0.529919, y=-0.850901): 1.600334529041\n    test 3109 238 238.000000000000 Theta(tan=1.60033, x=-0.529919, y=-0.848048): 1.600334529041\n    test 3110 238 238.043245666868 Mu(tan=1.60303, x=-0.529279, y=-0.848448), iteration=3: 1.600334529041\n    test 3111 238 238.000139371942 Chi(tan=1.60034, x=-1, y=-1.60034), iteration=3: 1.600334529041\n    test 3112 238 238.057625944391 Xi(tan=1.60392, x=-1.06288, y=-1.70478), iteration=2: 1.600334529041\n\n    test 3113 238 238.172694719424 Phi(tan=1.61112, x=-0.527361, y=-0.849641): 1.600334529041\n    test 3114 238 238.086411314589 Beta(tan=1.60572, x=-0.52864, y=-0.848846): 1.600334529041\n    test 3115 238 238.000000000000 Theta(tan=1.60033, x=-0.529919, y=-0.848048): 1.600334529041\n    test 3116 238 238.043245666868 Mu(tan=1.60303, x=-0.529279, y=-0.848448): 1.600334529041\n    test 3117 238 238.000139371942 Chi(tan=1.60034, x=-0.529917, y=-0.848049): 1.600334529041\n    test 3118 238 238.057625944391 Xi(tan=1.60392, x=-0.529066, y=-0.848581): 1.600334529041\n\n    test 3119 245 245.147087439517 Phi(tan=2.15896, x=-0.422618, y=-0.912416): 2.144506920510\n    test 3120 245 245.073623344306 Beta(tan=2.15172, x=-0.422618, y=-0.909357): 2.144506920510\n    test 3121 245 245.000000000000 Theta(tan=2.14451, x=-0.422618, y=-0.906308): 2.144506920510\n    test 3122 245 245.036861496413 Mu(tan=2.14811, x=-0.422035, y=-0.906579), iteration=3: 2.144506920510\n    test 3123 245 245.000135557054 Chi(tan=2.14452, x=-1, y=-2.14452), iteration=3: 2.144506920510\n    test 3124 245 245.049110215384 Xi(tan=2.14931, x=-0.847471, y=-1.82148), iteration=3: 2.144506920510\n\n    test 3125 245 245.147087439517 Phi(tan=2.15896, x=-0.42029, y=-0.90739): 2.144506920510\n    test 3126 245 245.073623344306 Beta(tan=2.15172, x=-0.421453, y=-0.90685): 2.144506920510\n    test 3127 245 245.000000000000 Theta(tan=2.14451, x=-0.422618, y=-0.906308): 2.144506920510\n    test 3128 245 245.036861496413 Mu(tan=2.14811, x=-0.422035, y=-0.906579): 2.144506920510\n    test 3129 245 245.000135557054 Chi(tan=2.14452, x=-0.422616, y=-0.906309): 2.144506920510\n    test 3130 245 245.049110215384 Xi(tan=2.14931, x=-0.421841, y=-0.90667): 2.144506920510\n\n    test 3131 252 252.112797334151 Phi(tan=3.09843, x=-0.309017, y=-0.957466): 3.077683537175\n    test 3132 252 252.056475395211 Beta(tan=3.08804, x=-0.309017, y=-0.954256): 3.077683537175\n    test 3133 252 252.000000000000 Theta(tan=3.07768, x=-0.309017, y=-0.951057): 3.077683537175\n    test 3134 252 252.028285720189 Mu(tan=3.08286, x=-0.308547, y=-0.951209), iteration=2: 3.077683537175\n    test 3135 252 252.000114461007 Chi(tan=3.0777, x=-1, y=-3.0777), iteration=3: 3.077683537175\n    test 3136 252 252.037679397301 Xi(tan=3.08458, x=-0.619552, y=-1.91106), iteration=3: 3.077683537175\n\n    test 3137 252 252.112797334151 Phi(tan=3.09843, x=-0.307144, y=-0.951663): 3.077683537175\n    test 3138 252 252.056475395211 Beta(tan=3.08804, x=-0.308079, y=-0.951361): 3.077683537175\n    test 3139 252 252.000000000000 Theta(tan=3.07768, x=-0.309017, y=-0.951057): 3.077683537175\n    test 3140 252 252.028285720189 Mu(tan=3.08286, x=-0.308547, y=-0.951209): 3.077683537175\n    test 3141 252 252.000114461007 Chi(tan=3.0777, x=-0.309015, y=-0.951057): 3.077683537175\n    test 3142 252 252.037679397301 Xi(tan=3.08458, x=-0.308391, y=-0.95126): 3.077683537175\n\n    test 3143 259 259.071859476624 Phi(tan=5.17923, x=-0.190809, y=-0.988243): 5.144554015970\n    test 3144 259 259.035985707307 Beta(tan=5.16186, x=-0.190809, y=-0.984929): 5.144554015970\n    test 3145 259 259.000000000000 Theta(tan=5.14455, x=-0.190809, y=-0.981627): 5.144554015970\n    test 3146 259 259.018027889335 Mu(tan=5.15321, x=-0.1905, y=-0.981687), iteration=3: 5.144554015970\n    test 3147 259 259.000077676273 Chi(tan=5.14459, x=-1, y=-5.14459), iteration=3: 5.144554015970\n    test 3148 259 259.024012504065 Xi(tan=5.15609, x=-0.382505, y=-1.97223), iteration=3: 5.144554015970\n\n    test 3149 259 259.071859476624 Phi(tan=5.17923, x=-0.189578, y=-0.981866): 5.144554015970\n    test 3150 259 259.035985707307 Beta(tan=5.16186, x=-0.190192, y=-0.981747): 5.144554015970\n    test 3151 259 259.000000000000 Theta(tan=5.14455, x=-0.190809, y=-0.981627): 5.144554015970\n    test 3152 259 259.018027889335 Mu(tan=5.15321, x=-0.1905, y=-0.981687): 5.144554015970\n    test 3153 259 259.000077676273 Chi(tan=5.14459, x=-0.190808, y=-0.981627): 5.144554015970\n    test 3154 259 259.024012504065 Xi(tan=5.15609, x=-0.190398, y=-0.981707): 5.144554015970\n\n    test 3155 266 266.026691465344 Phi(tan=14.397, x=-0.0697565, y=-1.00429): 14.300666256712\n    test 3156 266 266.013367926454 Beta(tan=14.3488, x=-0.0697565, y=-1.00092): 14.300666256712\n    test 3157 266 266.000000000000 Theta(tan=14.3007, x=-0.0697565, y=-0.997564): 14.300666256712\n    test 3158 266 266.006697857429 Mu(tan=14.3247, x=-0.0696399, y=-0.997572), iteration=3: 14.300666256712\n    test 3159 266 266.000029795215 Chi(tan=14.3008, x=-1, y=-14.3008), iteration=3: 14.300666256712\n    test 3160 266 266.008920822994 Xi(tan=14.3327, x=-0.139827, y=-2.00411), iteration=3: 14.300666256712\n\n    test 3161 266 266.026691465344 Phi(tan=14.397, x=-0.0692917, y=-0.997596): 14.300666256712\n    test 3162 266 266.013367926454 Beta(tan=14.3488, x=-0.0695237, y=-0.99758): 14.300666256712\n    test 3163 266 266.000000000000 Theta(tan=14.3007, x=-0.0697565, y=-0.997564): 14.300666256712\n    test 3164 266 266.006697857429 Mu(tan=14.3247, x=-0.0696399, y=-0.997572): 14.300666256712\n    test 3165 266 266.000029795215 Chi(tan=14.3008, x=-0.069756, y=-0.997564): 14.300666256712\n    test 3166 266 266.008920822994 Xi(tan=14.3327, x=-0.0696012, y=-0.997575): 14.300666256712\n\n    test 3167 273 272.979953179188 Phi(tan=-19.2097, x=0.052336, y=-1.00536): -19.081136687728\n    test 3168 273 272.989959849669 Beta(tan=-19.1453, x=0.052336, y=-1.00199): -19.081136687728\n    test 3169 273 273.000000000000 Theta(tan=-19.0811, x=0.052336, y=-0.99863): -19.081136687728\n    test 3170 273 272.994969444902 Mu(tan=-19.1132, x=0.0522483, y=-0.998634), iteration=2: -19.081136687728\n    test 3171 273 272.999977574321 Chi(tan=-19.0813, x=1.0, y=-19.0813), iteration=3: -19.081136687728\n    test 3172 273 272.993299868195 Xi(tan=-19.1239, x=0.104907, y=-2.00624), iteration=3: -19.081136687728\n\n    test 3173 273 272.979953179188 Phi(tan=-19.2097, x=0.0519865, y=-0.998648): -19.081136687728\n    test 3174 273 272.989959849669 Beta(tan=-19.1453, x=0.052161, y=-0.998639): -19.081136687728\n    test 3175 273 273.000000000000 Theta(tan=-19.0811, x=0.052336, y=-0.99863): -19.081136687728\n    test 3176 273 272.994969444902 Mu(tan=-19.1132, x=0.0522483, y=-0.998634): -19.081136687728\n    test 3177 273 272.999977574321 Chi(tan=-19.0813, x=0.0523356, y=-0.99863): -19.081136687728\n    test 3178 273 272.993299868195 Xi(tan=-19.1239, x=0.0522192, y=-0.998636): -19.081136687728\n\n    test 3179 280 279.934394210279 Phi(tan=-5.7095, x=0.173648, y=-0.991445): -5.671281819618\n    test 3180 280 279.967145322218 Beta(tan=-5.69036, x=0.173648, y=-0.988121): -5.671281819618\n    test 3181 280 280.000000000000 Theta(tan=-5.67128, x=0.173648, y=-0.984808): -5.671281819618\n    test 3182 280 279.983540245263 Mu(tan=-5.68082, x=0.173365, y=-0.984858), iteration=3: -5.671281819618\n    test 3183 280 279.999928623941 Chi(tan=-5.67132, x=1.0, y=-5.67132), iteration=3: -5.671281819618\n    test 3184 280 279.978076430885 Xi(tan=-5.684, x=0.348099, y=-1.97859), iteration=2: -5.671281819618\n\n    test 3185 280 279.934394210279 Phi(tan=-5.7095, x=0.17252, y=-0.985006): -5.671281819618\n    test 3186 280 279.967145322218 Beta(tan=-5.69036, x=0.173083, y=-0.984907): -5.671281819618\n    test 3187 280 280.000000000000 Theta(tan=-5.67128, x=0.173648, y=-0.984808): -5.671281819618\n    test 3188 280 279.983540245263 Mu(tan=-5.68082, x=0.173365, y=-0.984858): -5.671281819618\n    test 3189 280 279.999928623941 Chi(tan=-5.67132, x=0.173647, y=-0.984808): -5.671281819618\n    test 3190 280 279.978076430885 Xi(tan=-5.684, x=0.173271, y=-0.984874): -5.671281819618\n\n    test 3191 287 286.892696785077 Phi(tan=-3.2929, x=0.292372, y=-0.96275): -3.270852618484\n    test 3192 287 286.946273607855 Beta(tan=-3.28186, x=0.292372, y=-0.959522): -3.270852618484\n    test 3193 287 287.000000000000 Theta(tan=-3.27085, x=0.292372, y=-0.956305): -3.270852618484\n    test 3194 287 286.973089996409 Mu(tan=-3.27636, x=0.291923, y=-0.956442), iteration=3: -3.270852618484\n    test 3195 287 286.999889910594 Chi(tan=-3.27088, x=1.0, y=-3.27088), iteration=3: -3.270852618484\n    test 3196 287 286.964153811789 Xi(tan=-3.27819, x=0.586167, y=-1.92156), iteration=3: -3.270852618484\n\n    test 3197 287 286.892696785077 Phi(tan=-3.2929, x=0.29058, y=-0.956851): -3.270852618484\n    test 3198 287 286.946273607855 Beta(tan=-3.28186, x=0.291475, y=-0.956578): -3.270852618484\n    test 3199 287 287.000000000000 Theta(tan=-3.27085, x=0.292372, y=-0.956305): -3.270852618484\n    test 3200 287 286.973089996409 Mu(tan=-3.27636, x=0.291923, y=-0.956442): -3.270852618484\n    test 3201 287 286.999889910594 Chi(tan=-3.27088, x=0.29237, y=-0.956305): -3.270852618484\n    test 3202 287 286.964153811789 Xi(tan=-3.27819, x=0.291773, y=-0.956487): -3.270852618484\n\n    test 3203 294 293.857322070702 Phi(tan=-2.26117, x=0.406737, y=-0.919702): -2.246036773904\n    test 3204 294 293.928580656019 Beta(tan=-2.25359, x=0.406737, y=-0.916619): -2.246036773904\n    test 3205 294 294.000000000000 Theta(tan=-2.24604, x=0.406737, y=-0.913545): -2.246036773904\n    test 3206 294 293.964240029727 Mu(tan=-2.24981, x=0.406166, y=-0.913799), iteration=2: -2.246036773904\n    test 3207 294 293.999866400612 Chi(tan=-2.24605, x=1.0, y=-2.24605), iteration=3: -2.246036773904\n    test 3208 294 293.952358418734 Xi(tan=-2.25107, x=0.815599, y=-1.83597), iteration=2: -2.246036773904\n\n    test 3209 294 293.857322070702 Phi(tan=-2.26117, x=0.40446, y=-0.914555): -2.246036773904\n    test 3210 294 293.928580656019 Beta(tan=-2.25359, x=0.405598, y=-0.914052): -2.246036773904\n    test 3211 294 294.000000000000 Theta(tan=-2.24604, x=0.406737, y=-0.913545): -2.246036773904\n    test 3212 294 293.964240029727 Mu(tan=-2.24981, x=0.406166, y=-0.913799): -2.246036773904\n    test 3213 294 293.999866400612 Chi(tan=-2.24605, x=0.406735, y=-0.913546): -2.246036773904\n    test 3214 294 293.952358418734 Xi(tan=-2.25107, x=0.405977, y=-0.913883): -2.246036773904\n\n    test 3215 301 300.830367699497 Phi(tan=-1.6755, x=0.515038, y=-0.862944): -1.664279482351\n    test 3216 301 300.915116613042 Beta(tan=-1.66988, x=0.515038, y=-0.860051): -1.664279482351\n    test 3217 301 301.000000000000 Theta(tan=-1.66428, x=0.515038, y=-0.857167): -1.664279482351\n    test 3218 301 300.957516242525 Mu(tan=-1.66708, x=0.514402, y=-0.857549), iteration=3: -1.664279482351\n    test 3219 301 300.999860142450 Chi(tan=-1.66429, x=1.0, y=-1.66429), iteration=3: -1.664279482351\n    test 3220 301 300.943390839029 Xi(tan=-1.66801, x=1.033, y=-1.72305), iteration=3: -1.664279482351\n\n    test 3221 301 300.830367699497 Phi(tan=-1.6755, x=0.512498, y=-0.858688): -1.664279482351\n    test 3222 301 300.915116613042 Beta(tan=-1.66988, x=0.513768, y=-0.857929): -1.664279482351\n    test 3223 301 301.000000000000 Theta(tan=-1.66428, x=0.515038, y=-0.857167): -1.664279482351\n    test 3224 301 300.957516242525 Mu(tan=-1.66708, x=0.514402, y=-0.857549): -1.664279482351\n    test 3225 301 300.999860142450 Chi(tan=-1.66429, x=0.515036, y=-0.857169): -1.664279482351\n    test 3226 301 300.943390839029 Xi(tan=-1.66801, x=0.514191, y=-0.857676): -1.664279482351\n\n    test 3227 308 307.813444106313 Phi(tan=-1.28857, x=0.615661, y=-0.793322): -1.279941632193\n    test 3228 308 307.906683665119 Beta(tan=-1.28425, x=0.615661, y=-0.790662): -1.279941632193\n    test 3229 308 308.000000000000 Theta(tan=-1.27994, x=0.615661, y=-0.788011): -1.279941632193\n    test 3230 308 307.953317819859 Mu(tan=-1.28209, x=0.615019, y=-0.788512), iteration=3: -1.279941632193\n    test 3231 308 307.999869987124 Chi(tan=-1.27995, x=1.0, y=-1.27995), iteration=2: -1.279941632193\n    test 3232 308 307.937784253619 Xi(tan=-1.28281, x=1.23513, y=-1.58444), iteration=2: -1.279941632193\n\n    test 3233 308 307.813444106313 Phi(tan=-1.28857, x=0.613092, y=-0.790011): -1.279941632193\n    test 3234 308 307.906683665119 Beta(tan=-1.28425, x=0.614377, y=-0.789012): -1.279941632193\n    test 3235 308 308.000000000000 Theta(tan=-1.27994, x=0.615661, y=-0.788011): -1.279941632193\n    test 3236 308 307.953317819859 Mu(tan=-1.28209, x=0.615019, y=-0.788512): -1.279941632193\n    test 3237 308 307.999869987124 Chi(tan=-1.27995, x=0.61566, y=-0.788012): -1.279941632193\n    test 3238 308 307.937784253619 Xi(tan=-1.28281, x=0.614805, y=-0.788679): -1.279941632193\n\n    test 3239 315 314.807576784018 Phi(tan=-1.00674, x=0.707107, y=-0.711872): -1.000000000000\n    test 3240 315 314.903787849420 Beta(tan=-1.00336, x=0.707107, y=-0.709486): -1.000000000000\n    test 3241 315 315.000000000000 Theta(tan=-1, x=0.707107, y=-0.707107): -1.000000000000\n    test 3242 315 314.951893574286 Mu(tan=-1.00168, x=0.706513, y=-0.7077), iteration=2: -1.000000000000\n    test 3243 315 314.999892003023 Chi(tan=-1, x=1.0, y=-1), iteration=3: -1.000000000000\n    test 3244 315 314.935872656555 Xi(tan=-1.00224, x=1.41897, y=-1.42215), iteration=3: -1.000000000000\n\n    test 3245 315 314.807576784018 Phi(tan=-1.00674, x=0.704728, y=-0.709478): -1.000000000000\n    test 3246 315 314.903787849420 Beta(tan=-1.00336, x=0.705918, y=-0.708293): -1.000000000000\n    test 3247 315 315.000000000000 Theta(tan=-1, x=0.707107, y=-0.707107): -1.000000000000\n    test 3248 315 314.951893574286 Mu(tan=-1.00168, x=0.706513, y=-0.7077): -1.000000000000\n    test 3249 315 314.999892003023 Chi(tan=-1, x=0.707105, y=-0.707108): -1.000000000000\n    test 3250 315 314.935872656555 Xi(tan=-1.00224, x=0.706315, y=-0.707898): -1.000000000000\n\n    test 3251 322 321.813140716820 Phi(tan=-0.786551, x=0.788011, y=-0.619811): -0.781285626507\n    test 3252 322 321.906607816751 Beta(tan=-0.783914, x=0.788011, y=-0.617733): -0.781285626507\n    test 3253 322 322.000000000000 Theta(tan=-0.781286, x=0.788011, y=-0.615661): -0.781285626507\n    test 3254 322 321.953327300103 Mu(tan=-0.782598, x=0.787509, y=-0.616303), iteration=2: -0.781285626507\n    test 3255 322 321.999920484161 Chi(tan=-0.781288, x=1.0, y=-0.781288), iteration=2: -0.781285626507\n    test 3256 322 321.937770794620 Xi(tan=-0.783036, x=1.58175, y=-1.23857), iteration=3: -0.781285626507\n\n    test 3257 322 321.813140716820 Phi(tan=-0.786551, x=0.785999, y=-0.618228): -0.781285626507\n    test 3258 322 321.906607816751 Beta(tan=-0.783914, x=0.787006, y=-0.616945): -0.781285626507\n    test 3259 322 322.000000000000 Theta(tan=-0.781286, x=0.788011, y=-0.615661): -0.781285626507\n    test 3260 322 321.953327300103 Mu(tan=-0.782598, x=0.787509, y=-0.616303): -0.781285626507\n    test 3261 322 321.999920484161 Chi(tan=-0.781288, x=0.78801, y=-0.615663): -0.781285626507\n    test 3262 322 321.937770794620 Xi(tan=-0.783036, x=0.787342, y=-0.616517): -0.781285626507\n\n    test 3263 329 328.829831943495 Phi(tan=-0.60491, x=0.857167, y=-0.518509): -0.600860619028\n    test 3264 329 328.914982672653 Beta(tan=-0.602882, x=0.857167, y=-0.516771): -0.600860619028\n    test 3265 329 329.000000000000 Theta(tan=-0.600861, x=0.857167, y=-0.515038): -0.600860619028\n    test 3266 329 328.957532983891 Mu(tan=-0.60187, x=0.856785, y=-0.515673), iteration=3: -0.600860619028\n    test 3267 329 328.999949315138 Chi(tan=-0.600862, x=1.0, y=-0.600862), iteration=2: -0.600860619028\n    test 3268 329 328.943367072053 Xi(tan=-0.602207, x=1.72101, y=-1.0364), iteration=2: -0.600860619028\n\n    test 3269 329 328.829831943495 Phi(tan=-0.60491, x=0.855634, y=-0.517582): -0.600860619028\n    test 3270 329 328.914982672653 Beta(tan=-0.602882, x=0.856402, y=-0.516309): -0.600860619028\n    test 3271 329 329.000000000000 Theta(tan=-0.600861, x=0.857167, y=-0.515038): -0.600860619028\n    test 3272 329 328.957532983891 Mu(tan=-0.60187, x=0.856785, y=-0.515673): -0.600860619028\n    test 3273 329 328.999949315138 Chi(tan=-0.600862, x=0.857167, y=-0.515039): -0.600860619028\n    test 3274 329 328.943367072053 Xi(tan=-0.602207, x=0.856658, y=-0.515885): -0.600860619028\n\n    test 3275 336 335.856679369063 Phi(tan=-0.448229, x=0.913545, y=-0.409478): -0.445228685309\n    test 3276 336 335.928419979560 Beta(tan=-0.446726, x=0.913545, y=-0.408105): -0.445228685309\n    test 3277 336 336.000000000000 Theta(tan=-0.445229, x=0.913545, y=-0.406737): -0.445228685309\n    test 3278 336 335.964260113259 Mu(tan=-0.445976, x=0.913292, y=-0.407306), iteration=3: -0.445228685309\n    test 3279 336 335.999973373434 Chi(tan=-0.445229, x=1.0, y=-0.445229), iteration=3: -0.445228685309\n    test 3280 336 335.952329907972 Xi(tan=-0.446226, x=1.83461, y=-0.818652), iteration=2: -0.445228685309\n\n    test 3281 336 335.856679369063 Phi(tan=-0.448229, x=0.912525, y=-0.409021): -0.445228685309\n    test 3282 336 335.928419979560 Beta(tan=-0.446726, x=0.913037, y=-0.407878): -0.445228685309\n    test 3283 336 336.000000000000 Theta(tan=-0.445229, x=0.913545, y=-0.406737): -0.445228685309\n    test 3284 336 335.964260113259 Mu(tan=-0.445976, x=0.913292, y=-0.407306): -0.445228685309\n    test 3285 336 335.999973373434 Chi(tan=-0.445229, x=0.913545, y=-0.406737): -0.445228685309\n    test 3286 336 335.952329907972 Xi(tan=-0.446226, x=0.913207, y=-0.407497): -0.445228685309\n\n    test 3287 343 342.892097596857 Phi(tan=-0.307791, x=0.956305, y=-0.294342): -0.305730681459\n    test 3288 343 342.946123810430 Beta(tan=-0.306759, x=0.956305, y=-0.293355): -0.305730681459\n    test 3289 343 343.000000000000 Theta(tan=-0.305731, x=0.956305, y=-0.292372): -0.305730681459\n    test 3290 343 342.973108720519 Mu(tan=-0.306244, x=0.956167, y=-0.292821), iteration=2: -0.305730681459\n    test 3291 343 342.999989640752 Chi(tan=-0.305731, x=1.0, y=-0.305731), iteration=3: -0.305730681459\n    test 3292 343 342.964127231800 Xi(tan=-0.306415, x=1.92083, y=-0.588572), iteration=3: -0.305730681459\n\n    test 3293 343 342.892097596857 Phi(tan=-0.307791, x=0.955752, y=-0.294172): -0.305730681459\n    test 3294 343 342.946123810430 Beta(tan=-0.306759, x=0.956029, y=-0.293271): -0.305730681459\n    test 3295 343 343.000000000000 Theta(tan=-0.305731, x=0.956305, y=-0.292372): -0.305730681459\n    test 3296 343 342.973108720519 Mu(tan=-0.306244, x=0.956167, y=-0.292821): -0.305730681459\n    test 3297 343 342.999989640752 Chi(tan=-0.305731, x=0.956305, y=-0.292372): -0.305730681459\n    test 3298 343 342.964127231800 Xi(tan=-0.306415, x=0.956122, y=-0.29297): -0.305730681459\n\n    test 3299 350 349.933978809966 Phi(tan=-0.177515, x=0.984808, y=-0.174818): -0.176326980708\n    test 3300 350 349.967041472227 Beta(tan=-0.17692, x=0.984808, y=-0.174232): -0.176326980708\n    test 3301 350 350.000000000000 Theta(tan=-0.176327, x=0.984808, y=-0.173648): -0.176326980708\n    test 3302 350 349.983553226337 Mu(tan=-0.176623, x=0.984758, y=-0.173931), iteration=3: -0.176326980708\n    test 3303 350 349.999997763945 Chi(tan=-0.176327, x=1.0, y=-0.176327), iteration=3: -0.176326980708\n    test 3304 350 349.978058004001 Xi(tan=-0.176722, x=1.97833, y=-0.349613), iteration=3: -0.176326980708\n\n    test 3305 350 349.933978809966 Phi(tan=-0.177515, x=0.984607, y=-0.174783): -0.176326980708\n    test 3306 350 349.967041472227 Beta(tan=-0.17692, x=0.984708, y=-0.174215): -0.176326980708\n    test 3307 350 350.000000000000 Theta(tan=-0.176327, x=0.984808, y=-0.173648): -0.176326980708\n    test 3308 350 349.983553226337 Mu(tan=-0.176623, x=0.984758, y=-0.173931): -0.176326980708\n    test 3309 350 349.999997763945 Chi(tan=-0.176327, x=0.984808, y=-0.173648): -0.176326980708\n    test 3310 350 349.978058004001 Xi(tan=-0.176722, x=0.984741, y=-0.174025): -0.176326980708\n\n    test 3311 357 356.979818816318 Phi(tan=-0.052761, x=0.99863, y=-0.0526887): -0.052407779283\n    test 3312 357 356.989926259040 Beta(tan=-0.0525841, x=0.99863, y=-0.052512): -0.052407779283\n    test 3313 357 357.000000000000 Theta(tan=-0.0524078, x=0.99863, y=-0.052336): -0.052407779283\n    test 3314 357 356.994973643713 Mu(tan=-0.0524957, x=0.998625, y=-0.0524236), iteration=3: -0.052407779283\n    test 3315 357 356.999999937910 Chi(tan=-0.0524078, x=1.0, y=-0.0524078), iteration=3: -0.052407779283\n    test 3316 357 356.993293907994 Xi(tan=-0.0525251, x=2.00621, y=-0.105377), iteration=3: -0.052407779283\n\n    test 3317 357 356.979818816318 Phi(tan=-0.052761, x=0.998611, y=-0.0526877): -0.052407779283\n    test 3318 357 356.989926259040 Beta(tan=-0.0525841, x=0.99862, y=-0.0525115): -0.052407779283\n    test 3319 357 357.000000000000 Theta(tan=-0.0524078, x=0.99863, y=-0.052336): -0.052407779283\n    test 3320 357 356.994973643713 Mu(tan=-0.0524957, x=0.998625, y=-0.0524236): -0.052407779283\n    test 3321 357 356.999999937910 Chi(tan=-0.0524078, x=0.99863, y=-0.052336): -0.052407779283\n    test 3322 357 356.993293907994 Xi(tan=-0.0525251, x=0.998623, y=-0.0524528): -0.052407779283\n\n    test 3323  0 0.000000000000 Phi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 3324  0 0.000000000000 Beta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 3325  0 0.000000000000 Theta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 3326  0 0.000000000000 Mu(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 3327  0 0.000000000000 Chi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 3328  0 0.000000000000 Xi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n\n    test 3329  0 0.000000000000 Phi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 3330  0 0.000000000000 Beta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 3331  0 0.000000000000 Theta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 3332  0 0.000000000000 Mu(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 3333  0 0.000000000000 Chi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 3334  0 0.000000000000 Xi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n\n    test 3335  7 7.031115657726 Phi(tan=0.123336, x=1.0, y=0.123336): 0.122784560903\n    test 3336  7 7.007776446248 Beta(tan=0.122922, x=1.0, y=0.122922): 0.122784560903\n    test 3337  7 6.984513160948 Theta(tan=0.12251, x=1.0, y=0.12251): 0.122784560903\n    test 3338  7 6.996121115499 Mu(tan=0.122716, x=0.992554, y=0.121802), iteration=3: 0.122784560903\n    test 3339  7 6.984513934967 Chi(tan=0.12251, x=1.0, y=0.12251), iteration=3: 0.122784560903\n    test 3340  7 7.000000000000 Xi(tan=0.122785, x=0.992546, y=0.121869): 0.122784560903\n\n    test 3341  7 7.031115657726 Phi(tan=0.123336, x=0.99248, y=0.122408): 0.122784560903\n    test 3342  7 7.007776446248 Beta(tan=0.122922, x=0.99253, y=0.122004): 0.122784560903\n    test 3343  7 6.984513160948 Theta(tan=0.12251, x=0.992579, y=0.121601): 0.122784560903\n    test 3344  7 6.996121115499 Mu(tan=0.122716, x=0.992554, y=0.121802): 0.122784560903\n    test 3345  7 6.984513934967 Chi(tan=0.12251, x=0.992579, y=0.121601): 0.122784560903\n    test 3346  7 7.000000000000 Xi(tan=0.122785, x=0.992546, y=0.121869): 0.122784560903\n\n    test 3347 14 14.060369141975 Phi(tan=0.250447, x=1.0, y=0.250447): 0.249328002843\n    test 3348 14 14.015088387186 Beta(tan=0.249608, x=1.0, y=0.249608): 0.249328002843\n    test 3349 14 13.969941668301 Theta(tan=0.248771, x=1.0, y=0.248771): 0.249328002843\n    test 3350 14 13.992473204804 Mu(tan=0.249188, x=0.970327, y=0.241794), iteration=3: 0.249328002843\n    test 3351 14 13.969947587506 Chi(tan=0.248771, x=1.0, y=0.248771), iteration=3: 0.249328002843\n    test 3352 14 14.000000000000 Xi(tan=0.249328, x=0.970296, y=0.241922): 0.249328002843\n\n    test 3353 14 14.060369141975 Phi(tan=0.250447, x=0.97004, y=0.242944): 0.249328002843\n    test 3354 14 14.015088387186 Beta(tan=0.249608, x=0.970232, y=0.242177): 0.249328002843\n    test 3355 14 13.969941668301 Theta(tan=0.248771, x=0.970423, y=0.241413): 0.249328002843\n    test 3356 14 13.992473204803 Mu(tan=0.249188, x=0.970327, y=0.241794): 0.249328002843\n    test 3357 14 13.969947587506 Chi(tan=0.248771, x=0.970422, y=0.241413): 0.249328002843\n    test 3358 14 14.000000000000 Xi(tan=0.249328, x=0.970296, y=0.241922): 0.249328002843\n\n    test 3359 21 21.086012125911 Phi(tan=0.385587, x=1.0, y=0.385587): 0.383864035035\n    test 3360 21 21.021499506340 Beta(tan=0.384295, x=1.0, y=0.384295): 0.383864035035\n    test 3361 21 20.957147588487 Theta(tan=0.383006, x=1.0, y=0.383006): 0.383864035035\n    test 3362 21 20.989273394164 Mu(tan=0.383649, x=0.933648, y=0.358193), iteration=2: 0.383864035035\n    test 3363 21 20.957166102443 Chi(tan=0.383007, x=1.0, y=0.383007), iteration=2: 0.383864035035\n    test 3364 21 21.000000000000 Xi(tan=0.383864, x=0.93358, y=0.358368): 0.383864035035\n\n    test 3365 21 21.086012125911 Phi(tan=0.385587, x=0.933041, y=0.359769): 0.383864035035\n    test 3366 21 21.021499506340 Beta(tan=0.384295, x=0.933446, y=0.358718): 0.383864035035\n    test 3367 21 20.957147588487 Theta(tan=0.383006, x=0.933848, y=0.35767): 0.383864035035\n    test 3368 21 20.989273394164 Mu(tan=0.383649, x=0.933648, y=0.358193): 0.383864035035\n    test 3369 21 20.957166102443 Chi(tan=0.383007, x=0.933848, y=0.35767): 0.383864035035\n    test 3370 21 21.000000000000 Xi(tan=0.383864, x=0.93358, y=0.358368): 0.383864035035\n\n    test 3371 28 28.106516446309 Phi(tan=0.534096, x=1.0, y=0.534096): 0.531709431661\n    test 3372 28 28.026628049399 Beta(tan=0.532306, x=1.0, y=0.532306): 0.531709431661\n    test 3373 28 27.946889336829 Theta(tan=0.530521, x=1.0, y=0.530521): 0.531709431661\n    test 3374 28 27.986711967080 Mu(tan=0.531412, x=0.883056, y=0.469267), iteration=3: 0.531709431661\n    test 3375 28 27.946928706111 Chi(tan=0.530522, x=1.0, y=0.530522), iteration=2: 0.531709431661\n    test 3376 28 28.000000000000 Xi(tan=0.531709, x=0.882948, y=0.469472): 0.531709431661\n\n    test 3377 28 28.106516446309 Phi(tan=0.534096, x=0.882073, y=0.471112): 0.531709431661\n    test 3378 28 28.026628049399 Beta(tan=0.532306, x=0.882729, y=0.469882): 0.531709431661\n    test 3379 28 27.946889336829 Theta(tan=0.530521, x=0.883382, y=0.468653): 0.531709431661\n    test 3380 28 27.986711967080 Mu(tan=0.531412, x=0.883056, y=0.469267): 0.531709431661\n    test 3381 28 27.946928706111 Chi(tan=0.530522, x=0.883382, y=0.468654): 0.531709431661\n    test 3382 28 28.000000000000 Xi(tan=0.531709, x=0.882948, y=0.469472): 0.531709431661\n\n    test 3383 35 35.120665994598 Phi(tan=0.703351, x=1.0, y=0.703351): 0.700207538210\n    test 3384 35 35.030169708409 Beta(tan=0.700993, x=1.0, y=0.700993): 0.700207538210\n    test 3385 35 34.939777010856 Theta(tan=0.698642, x=1.0, y=0.698642): 0.700207538210\n    test 3386 35 34.984941016111 Mu(tan=0.699816, x=0.819303, y=0.573361), iteration=3: 0.700207538210\n    test 3387 35 34.939843626202 Chi(tan=0.698644, x=1.0, y=0.698644), iteration=3: 0.700207538210\n    test 3388 35 35.000000000000 Xi(tan=0.700208, x=0.819152, y=0.573576): 0.700207538210\n\n    test 3389 35 35.120665994598 Phi(tan=0.703351, x=0.817942, y=0.5753): 0.700207538210\n    test 3390 35 35.030169708409 Beta(tan=0.700993, x=0.81885, y=0.574008): 0.700207538210\n    test 3391 35 34.939777010856 Theta(tan=0.698642, x=0.819754, y=0.572715): 0.700207538210\n    test 3392 35 34.984941016111 Mu(tan=0.699816, x=0.819303, y=0.573361): 0.700207538210\n    test 3393 35 34.939843626202 Chi(tan=0.698644, x=0.819754, y=0.572716): 0.700207538210\n    test 3394 35 35.000000000000 Xi(tan=0.700208, x=0.819152, y=0.573576): 0.700207538210\n\n    test 3395 42 42.127628467909 Phi(tan=0.904446, x=1.0, y=0.904446): 0.900404044298\n    test 3396 42 42.031915609918 Beta(tan=0.901413, x=1.0, y=0.901413): 0.900404044298\n    test 3397 42 41.936235990174 Theta(tan=0.898391, x=1.0, y=0.898391): 0.900404044298\n    test 3398 42 41.984065426020 Mu(tan=0.899901, x=0.743331, y=0.668924), iteration=3: 0.900404044298\n    test 3399 42 41.936331949525 Chi(tan=0.898394, x=1.0, y=0.898394), iteration=3: 0.900404044298\n    test 3400 42 42.000000000000 Xi(tan=0.900404, x=0.743145, y=0.669131): 0.900404044298\n\n    test 3401 42 42.127628467909 Phi(tan=0.904446, x=0.741652, y=0.670784): 0.900404044298\n    test 3402 42 42.031915609918 Beta(tan=0.901413, x=0.742772, y=0.669544): 0.900404044298\n    test 3403 42 41.936235990174 Theta(tan=0.898391, x=0.743889, y=0.668303): 0.900404044298\n    test 3404 42 41.984065426020 Mu(tan=0.899901, x=0.743331, y=0.668924): 0.900404044298\n    test 3405 42 41.936331949525 Chi(tan=0.898394, x=0.743888, y=0.668304): 0.900404044298\n    test 3406 42 42.000000000000 Xi(tan=0.900404, x=0.743145, y=0.669131): 0.900404044298\n\n    test 3407 49 49.127002845320 Phi(tan=1.15553, x=1.0, y=1.15553): 1.150368407221\n    test 3408 49 49.031764361370 Beta(tan=1.15166, x=1.0, y=1.15166): 1.150368407221\n    test 3409 49 48.936481000855 Theta(tan=1.1478, x=1.0, y=1.1478): 1.150368407221\n    test 3410 49 48.984136719315 Mu(tan=1.14973, x=0.656268, y=0.754528), iteration=2: 1.150368407221\n    test 3411 49 48.936602566380 Chi(tan=1.1478, x=1.0, y=1.1478), iteration=2: 1.150368407221\n    test 3412 49 49.000000000000 Xi(tan=1.15037, x=0.656059, y=0.75471): 1.150368407221\n\n    test 3413 49 49.127002845320 Phi(tan=1.15553, x=0.654385, y=0.756162): 1.150368407221\n    test 3414 49 49.031764361370 Beta(tan=1.15166, x=0.655641, y=0.755073): 1.150368407221\n    test 3415 49 48.936481000855 Theta(tan=1.1478, x=0.656895, y=0.753982): 1.150368407221\n    test 3416 49 48.984136719315 Mu(tan=1.14973, x=0.656268, y=0.754528): 1.150368407221\n    test 3417 49 48.936602566380 Chi(tan=1.1478, x=0.656894, y=0.753983): 1.150368407221\n    test 3418 49 49.000000000000 Xi(tan=1.15037, x=0.656059, y=0.75471): 1.150368407221\n\n    test 3419 56 56.118840243467 Phi(tan=1.48921, x=1.0, y=1.48921): 1.482560968513\n    test 3420 56 56.029727526967 Beta(tan=1.48422, x=1.0, y=1.48422): 1.482560968513\n    test 3421 56 55.940502339654 Theta(tan=1.47925, x=1.0, y=1.47925): 1.482560968513\n    test 3422 56 55.985150111604 Mu(tan=1.48173, x=0.559408, y=0.828893), iteration=3: 1.482560968513\n    test 3423 56 55.940639698829 Chi(tan=1.47925, x=1.0, y=1.47925), iteration=3: 1.482560968513\n    test 3424 56 56.000000000000 Xi(tan=1.48256, x=0.559193, y=0.829038): 1.482560968513\n\n    test 3425 56 56.118840243467 Phi(tan=1.48921, x=0.557472, y=0.830196): 1.482560968513\n    test 3426 56 56.029727526967 Beta(tan=1.48422, x=0.558763, y=0.829328): 1.482560968513\n    test 3427 56 55.940502339654 Theta(tan=1.47925, x=0.560053, y=0.828456): 1.482560968513\n    test 3428 56 55.985150111604 Mu(tan=1.48173, x=0.559408, y=0.828893): 1.482560968513\n    test 3429 56 55.940639698829 Chi(tan=1.47925, x=0.560052, y=0.828458): 1.482560968513\n    test 3430 56 56.000000000000 Xi(tan=1.48256, x=0.559193, y=0.829038): 1.482560968513\n\n    test 3431 63 63.103637615859 Phi(tan=1.97142, x=1.0, y=1.97142): 1.962610505505\n    test 3432 63 63.025928337212 Beta(tan=1.96481, x=1.0, y=1.96481): 1.962610505505\n    test 3433 63 62.948065314408 Theta(tan=1.95822, x=1.0, y=1.95822): 1.962610505505\n    test 3434 63 62.987044924306 Mu(tan=1.96151, x=0.454192, y=0.890904), iteration=3: 1.962610505505\n    test 3435 63 62.948203767989 Chi(tan=1.95823, x=1.0, y=1.95823), iteration=3: 1.962610505505\n    test 3436 63 63.000000000000 Xi(tan=1.96261, x=0.45399, y=0.891007): 1.962610505505\n\n    test 3437 63 63.103637615859 Phi(tan=1.97142, x=0.452378, y=0.891826): 1.962610505505\n    test 3438 63 63.025928337212 Beta(tan=1.96481, x=0.453587, y=0.891212): 1.962610505505\n    test 3439 63 62.948065314408 Theta(tan=1.95822, x=0.454798, y=0.890595): 1.962610505505\n    test 3440 63 62.987044924306 Mu(tan=1.96151, x=0.454192, y=0.890904): 1.962610505505\n    test 3441 63 62.948203767989 Chi(tan=1.95823, x=0.454796, y=0.890596): 1.962610505505\n    test 3442 63 63.000000000000 Xi(tan=1.96261, x=0.45399, y=0.891007): 1.962610505505\n\n    test 3443 70 70.082305433342 Phi(tan=2.75981, x=1.0, y=2.75981): 2.747477419455\n    test 3444 70 70.020593849911 Beta(tan=2.75055, x=1.0, y=2.75055): 2.747477419455\n    test 3445 70 69.958723199827 Theta(tan=2.74133, x=1.0, y=2.74133): 2.747477419455\n    test 3446 70 69.989708300156 Mu(tan=2.74594, x=0.342189, y=0.939631), iteration=2: 2.747477419455\n    test 3447 70 69.958845565244 Chi(tan=2.74135, x=1.0, y=2.74135), iteration=3: 2.747477419455\n    test 3448 70 70.000000000000 Xi(tan=2.74748, x=0.34202, y=0.939693): 2.747477419455\n\n    test 3449 70 70.082305433342 Phi(tan=2.75981, x=0.34067, y=0.940183): 2.747477419455\n    test 3450 70 70.020593849911 Beta(tan=2.75055, x=0.341682, y=0.939815): 2.747477419455\n    test 3451 70 69.958723199827 Theta(tan=2.74133, x=0.342697, y=0.939446): 2.747477419455\n    test 3452 70 69.989708300156 Mu(tan=2.74594, x=0.342189, y=0.939631): 2.747477419455\n    test 3453 70 69.958845565244 Chi(tan=2.74135, x=0.342695, y=0.939447): 2.747477419455\n    test 3454 70 70.000000000000 Xi(tan=2.74748, x=0.34202, y=0.939693): 2.747477419455\n\n    test 3455 77 77.056111910623 Phi(tan=4.35091, x=1.0, y=4.35091): 4.331475874284\n    test 3456 77 77.014041148140 Beta(tan=4.33632, x=1.0, y=4.33632): 4.331475874284\n    test 3457 77 76.971843170758 Theta(tan=4.32179, x=1.0, y=4.32179): 4.331475874284\n    test 3458 77 76.992981975049 Mu(tan=4.32906, x=0.22507, y=0.974343), iteration=3: 4.331475874284\n    test 3459 77 76.971932900289 Chi(tan=4.32182, x=1.0, y=4.32182), iteration=3: 4.331475874284\n    test 3460 77 77.000000000000 Xi(tan=4.33148, x=0.224951, y=0.97437): 4.331475874284\n\n    test 3461 77 77.056111910623 Phi(tan=4.35091, x=0.223997, y=0.97459): 4.331475874284\n    test 3462 77 77.014041148140 Beta(tan=4.33632, x=0.224712, y=0.974425): 4.331475874284\n    test 3463 77 76.971843170758 Theta(tan=4.32179, x=0.22543, y=0.974259): 4.331475874284\n    test 3464 77 76.992981975049 Mu(tan=4.32906, x=0.22507, y=0.974343): 4.331475874284\n    test 3465 77 76.971932900289 Chi(tan=4.32182, x=0.225428, y=0.97426): 4.331475874284\n    test 3466 77 77.000000000000 Xi(tan=4.33148, x=0.224951, y=0.97437): 4.331475874284\n\n    test 3467 84 84.026607472936 Phi(tan=9.55706, x=1.0, y=9.55706): 9.514364454223\n    test 3468 84 84.006658466345 Beta(tan=9.52501, x=1.0, y=9.52501): 9.514364454223\n    test 3469 84 83.986643815196 Theta(tan=9.49308, x=1.0, y=9.49308): 9.514364454223\n    test 3470 84 83.996671688480 Mu(tan=9.50905, x=0.104586, y=0.994516), iteration=3: 9.514364454223\n    test 3471 84 83.986688152448 Chi(tan=9.49315, x=1.0, y=9.49315), iteration=3: 9.514364454223\n    test 3472 84 84.000000000000 Xi(tan=9.51436, x=0.104528, y=0.994522): 9.514364454223\n\n    test 3473 84 84.026607472936 Phi(tan=9.55706, x=0.104067, y=0.99457): 9.514364454223\n    test 3474 84 84.006658466345 Beta(tan=9.52501, x=0.104413, y=0.994534): 9.514364454223\n    test 3475 84 83.986643815196 Theta(tan=9.49308, x=0.10476, y=0.994498): 9.514364454223\n    test 3476 84 83.996671688480 Mu(tan=9.50905, x=0.104586, y=0.994516): 9.514364454223\n    test 3477 84 83.986688152448 Chi(tan=9.49315, x=0.10476, y=0.994498): 9.514364454223\n    test 3478 84 84.000000000000 Xi(tan=9.51436, x=0.104528, y=0.994522): 9.514364454223\n\n    test 3479 91 90.995533984466 Phi(tan=-57.547, x=-1, y=57.547): -57.289961630759\n    test 3480 91 90.998882372785 Beta(tan=-57.3541, x=-1, y=57.3541): -57.289961630759\n    test 3481 91 91.002242018525 Theta(tan=-57.1618, x=-1, y=57.1618): -57.289961630759\n    test 3482 91 91.000558671809 Mu(tan=-57.258, x=-0.0174622, y=0.999848), iteration=3: -57.289961630759\n    test 3483 91 91.002234496198 Chi(tan=-57.1622, x=-1, y=57.1622), iteration=3: -57.289961630759\n    test 3484 91 91.000000000000 Xi(tan=-57.29, x=-0.0174524, y=0.999848): -57.289961630759\n\n    test 3485 91 90.995533984466 Phi(tan=-57.547, x=-0.0173745, y=0.999849): -57.289961630760  FAILED, KNOWN (9.42595e-15), expected -57.289961630759\n    test 3486 91 90.998882372785 Beta(tan=-57.3541, x=-0.0174329, y=0.999848): -57.289961630759\n    test 3487 91 91.002242018525 Theta(tan=-57.1618, x=-0.0174915, y=0.999847): -57.289961630760  FAILED, KNOWN (5.82921e-15), expected -57.289961630759\n    test 3488 91 91.000558671809 Mu(tan=-57.258, x=-0.0174622, y=0.999848): -57.289961630759\n    test 3489 91 91.002234496198 Chi(tan=-57.1622, x=-0.0174914, y=0.999847): -57.289961630760  FAILED, KNOWN (9.54998e-15), expected -57.289961630759\n    test 3490 91 91.000000000000 Xi(tan=-57.29, x=-0.0174524, y=0.999848): -57.289961630759\n\n    test 3491 98 97.964723816165 Phi(tan=-7.1473, x=-1, y=7.1473): -7.115369722384\n    test 3492 98 97.991172305797 Beta(tan=-7.12333, x=-1, y=7.12333): -7.115369722384\n    test 3493 98 98.017706325759 Theta(tan=-7.09945, x=-1, y=7.09945): -7.115369722384\n    test 3494 98 98.004412544182 Mu(tan=-7.1114, x=-0.139249, y=0.990257), iteration=2: -7.115369722384\n    test 3495 98 98.017648048185 Chi(tan=-7.0995, x=-1, y=7.0995), iteration=3: -7.115369722384\n    test 3496 98 98.000000000000 Xi(tan=-7.11537, x=-0.139173, y=0.990268): -7.115369722384\n\n    test 3497 98 97.964723816165 Phi(tan=-7.1473, x=-0.138563, y=0.990354): -7.115369722384\n    test 3498 98 97.991172305797 Beta(tan=-7.12333, x=-0.139021, y=0.990289): -7.115369722384\n    test 3499 98 98.017706325759 Theta(tan=-7.09945, x=-0.139479, y=0.990225): -7.115369722384\n    test 3500 98 98.004412544182 Mu(tan=-7.1114, x=-0.139249, y=0.990257): -7.115369722384\n    test 3501 98 98.017648048185 Chi(tan=-7.0995, x=-0.139478, y=0.990225): -7.115369722384\n    test 3502 98 98.000000000000 Xi(tan=-7.11537, x=-0.139173, y=0.990268): -7.115369722384\n\n    test 3503 105 104.935994159741 Phi(tan=-3.7488, x=-1, y=3.7488): -3.732050807569\n    test 3504 105 104.983983867222 Beta(tan=-3.73623, x=-1, y=3.73623): -3.732050807569\n    test 3505 105 105.032113400902 Theta(tan=-3.7237, x=-1, y=3.7237): -3.732050807569\n    test 3506 105 105.008004873422 Mu(tan=-3.72997, x=-0.258954, y=0.96589), iteration=2: -3.732050807569\n    test 3507 105 105.032012824358 Chi(tan=-3.72373, x=-1, y=3.72373), iteration=3: -3.732050807569\n    test 3508 105 105.000000000000 Xi(tan=-3.73205, x=-0.258819, y=0.965926): -3.732050807569\n\n    test 3509 105 104.935994159741 Phi(tan=-3.7488, x=-0.25774, y=0.966214): -3.732050807569\n    test 3510 105 104.983983867222 Beta(tan=-3.73623, x=-0.258549, y=0.965998): -3.732050807569\n    test 3511 105 105.032113400902 Theta(tan=-3.7237, x=-0.25936, y=0.965781): -3.732050807569\n    test 3512 105 105.008004873422 Mu(tan=-3.72997, x=-0.258954, y=0.96589): -3.732050807569\n    test 3513 105 105.032012824358 Chi(tan=-3.72373, x=-0.259359, y=0.965781): -3.732050807569\n    test 3514 105 105.000000000000 Xi(tan=-3.73205, x=-0.258819, y=0.965926): -3.732050807569\n\n    test 3515 112 111.911042136698 Phi(tan=-2.48619, x=-1, y=2.48619): -2.475086853416\n    test 3516 112 111.977742323906 Beta(tan=-2.47786, x=-1, y=2.47786): -2.475086853416\n    test 3517 112 112.044603965311 Theta(tan=-2.46955, x=-1, y=2.46955): -2.475086853416\n    test 3518 112 112.011122625415 Mu(tan=-2.4737, x=-0.374787, y=0.927111), iteration=3: -2.475086853416\n    test 3519 112 112.044475225333 Chi(tan=-2.46957, x=-1, y=2.46957), iteration=3: -2.475086853416\n    test 3520 112 112.000000000000 Xi(tan=-2.47509, x=-0.374607, y=0.927184): -2.475086853416\n\n    test 3521 112 111.911042136698 Phi(tan=-2.48619, x=-0.373167, y=0.927764): -2.475086853416\n    test 3522 112 111.977742323906 Beta(tan=-2.47786, x=-0.374246, y=0.927329): -2.475086853416\n    test 3523 112 112.044603965311 Theta(tan=-2.46955, x=-0.375328, y=0.926892): -2.475086853416\n    test 3524 112 112.011122625415 Mu(tan=-2.4737, x=-0.374787, y=0.927111): -2.475086853416\n    test 3525 112 112.044475225333 Chi(tan=-2.46957, x=-0.375326, y=0.926893): -2.475086853416\n    test 3526 112 112.000000000000 Xi(tan=-2.47509, x=-0.374607, y=0.927184): -2.475086853416\n\n    test 3527 119 118.891346228069 Phi(tan=-1.81214, x=-1, y=1.81214): -1.804047755271\n    test 3528 119 118.972817760312 Beta(tan=-1.80607, x=-1, y=1.80607): -1.804047755271\n    test 3529 119 119.054434637080 Theta(tan=-1.80001, x=-1, y=1.80001): -1.804047755271\n    test 3530 119 119.013580731176 Mu(tan=-1.80304, x=-0.485017, y=0.874505), iteration=3: -1.804047755271\n    test 3531 119 119.054294796723 Chi(tan=-1.80002, x=-1, y=1.80002), iteration=3: -1.804047755271\n    test 3532 119 119.000000000000 Xi(tan=-1.80405, x=-0.48481, y=0.87462): -1.804047755271\n\n    test 3533 119 118.891346228069 Phi(tan=-1.81214, x=-0.48315, y=0.875538): -1.804047755271\n    test 3534 119 118.972817760312 Beta(tan=-1.80607, x=-0.484395, y=0.87485): -1.804047755271\n    test 3535 119 119.054434637080 Theta(tan=-1.80001, x=-0.48564, y=0.874159): -1.804047755271\n    test 3536 119 119.013580731176 Mu(tan=-1.80304, x=-0.485017, y=0.874505): -1.804047755271\n    test 3537 119 119.054294796723 Chi(tan=-1.80002, x=-0.485638, y=0.87416): -1.804047755271\n    test 3538 119 119.000000000000 Xi(tan=-1.80405, x=-0.48481, y=0.87462): -1.804047755271\n\n    test 3539 126 125.878079358159 Phi(tan=-1.38256, x=-1, y=1.38256): -1.376381920471\n    test 3540 126 125.969503261502 Beta(tan=-1.37792, x=-1, y=1.37792): -1.376381920471\n    test 3541 126 126.061022406195 Theta(tan=-1.3733, x=-1, y=1.3733): -1.376381920471\n    test 3542 126 126.015233045717 Mu(tan=-1.37561, x=-0.588, y=0.808861), iteration=2: -1.376381920471\n    test 3543 126 126.060888237156 Chi(tan=-1.37331, x=-1, y=1.37331), iteration=2: -1.376381920471\n    test 3544 126 126.000000000000 Xi(tan=-1.37638, x=-0.587785, y=0.809017): -1.376381920471\n\n    test 3545 126 125.878079358159 Phi(tan=-1.38256, x=-0.586062, y=0.810266): -1.376381920471\n    test 3546 126 125.969503261502 Beta(tan=-1.37792, x=-0.587355, y=0.80933): -1.376381920471\n    test 3547 126 126.061022406195 Theta(tan=-1.3733, x=-0.588647, y=0.808391): -1.376381920471\n    test 3548 126 126.015233045717 Mu(tan=-1.37561, x=-0.588, y=0.808861): -1.376381920471\n    test 3549 126 126.060888237156 Chi(tan=-1.37331, x=-0.588645, y=0.808392): -1.376381920471\n    test 3550 126 126.000000000000 Xi(tan=-1.37638, x=-0.587785, y=0.809017): -1.376381920471\n\n    test 3551 133 132.872038576251 Phi(tan=-1.07718, x=-1, y=1.07718): -1.072368710025\n    test 3552 133 132.967997382278 Beta(tan=-1.07357, x=-1, y=1.07357): -1.072368710025\n    test 3553 133 133.063979030656 Theta(tan=-1.06997, x=-1, y=1.06997): -1.072368710025\n    test 3554 133 133.015981056163 Mu(tan=-1.07177, x=-0.682202, y=0.731163), iteration=2: -1.072368710025\n    test 3555 133 133.063864035301 Chi(tan=-1.06998, x=-1, y=1.06998), iteration=3: -1.072368710025\n    test 3556 133 133.000000000000 Xi(tan=-1.07237, x=-0.681998, y=0.731354): -1.072368710025\n\n    test 3557 133 132.872038576251 Phi(tan=-1.07718, x=-0.680363, y=0.732875): -1.072368710025\n    test 3558 133 132.967997382278 Beta(tan=-1.07357, x=-0.68159, y=0.731735): -1.072368710025\n    test 3559 133 133.063979030656 Theta(tan=-1.06997, x=-0.682815, y=0.730592): -1.072368710025\n    test 3560 133 133.015981056163 Mu(tan=-1.07177, x=-0.682202, y=0.731163): -1.072368710025\n    test 3561 133 133.063864035301 Chi(tan=-1.06998, x=-0.682813, y=0.730593): -1.072368710025\n    test 3562 133 133.000000000000 Xi(tan=-1.07237, x=-0.681998, y=0.731354): -1.072368710025\n\n    test 3563 140 139.873595650901 Phi(tan=-0.842866, x=-1, y=0.842866): -0.839099631177\n    test 3564 140 139.968391970048 Beta(tan=-0.84004, x=-1, y=0.84004): -0.839099631177\n    test 3565 140 140.063133367178 Theta(tan=-0.837224, x=-1, y=0.837224): -0.839099631177\n    test 3566 140 140.015779815968 Mu(tan=-0.83863, x=-0.766221, y=0.642577), iteration=3: -0.839099631177\n    test 3567 140 140.063045682360 Chi(tan=-0.837226, x=-1, y=0.837226), iteration=2: -0.839099631177\n    test 3568 140 140.000000000000 Xi(tan=-0.8391, x=-0.766044, y=0.642788): -0.839099631177\n\n    test 3569 140 139.873595650901 Phi(tan=-0.842866, x=-0.764624, y=0.644476): -0.839099631177\n    test 3570 140 139.968391970048 Beta(tan=-0.84004, x=-0.76569, y=0.64321): -0.839099631177\n    test 3571 140 140.063133367178 Theta(tan=-0.837224, x=-0.766752, y=0.641943): -0.839099631177\n    test 3572 140 140.015779815968 Mu(tan=-0.83863, x=-0.766221, y=0.642577): -0.839099631177\n    test 3573 140 140.063045682360 Chi(tan=-0.837226, x=-0.766751, y=0.641944): -0.839099631177\n    test 3574 140 140.000000000000 Xi(tan=-0.8391, x=-0.766044, y=0.642788): -0.839099631177\n\n    test 3575 147 146.882671979706 Phi(tan=-0.652323, x=-1, y=0.652323): -0.649407593198\n    test 3576 147 146.970666152106 Beta(tan=-0.650136, x=-1, y=0.650136): -0.649407593198\n    test 3577 147 147.058540482739 Theta(tan=-0.647956, x=-1, y=0.647956): -0.649407593198\n    test 3578 147 147.014640733824 Mu(tan=-0.649044, x=-0.83881, y=0.544425), iteration=2: -0.649407593198\n    test 3579 147 147.058482092364 Chi(tan=-0.647957, x=-1, y=0.647957), iteration=3: -0.649407593198\n    test 3580 147 147.000000000000 Xi(tan=-0.649408, x=-0.838671, y=0.544639): -0.649407593198\n\n    test 3581 147 146.882671979706 Phi(tan=-0.652323, x=-0.837554, y=0.546355): -0.649407593198\n    test 3582 147 146.970666152106 Beta(tan=-0.650136, x=-0.838392, y=0.545068): -0.649407593198\n    test 3583 147 147.058540482739 Theta(tan=-0.647956, x=-0.839227, y=0.543782): -0.649407593198\n    test 3584 147 147.014640733824 Mu(tan=-0.649044, x=-0.83881, y=0.544425): -0.649407593198\n    test 3585 147 147.058482092364 Chi(tan=-0.647957, x=-0.839226, y=0.543783): -0.649407593198\n    test 3586 147 147.000000000000 Xi(tan=-0.649408, x=-0.838671, y=0.544639): -0.649407593198\n\n    test 3587 154 153.898740000769 Phi(tan=-0.489922, x=-1, y=0.489922): -0.487732588566\n    test 3588 154 153.974686973605 Beta(tan=-0.48828, x=-1, y=0.48828): -0.487732588566\n    test 3589 154 154.050477253377 Theta(tan=-0.486642, x=-1, y=0.486642): -0.487732588566\n    test 3590 154 154.012631023956 Mu(tan=-0.48746, x=-0.898891, y=0.438173), iteration=3: -0.487732588566\n    test 3591 154 154.050444626907 Chi(tan=-0.486643, x=-1, y=0.486643), iteration=3: -0.487732588566\n    test 3592 154 154.000000000000 Xi(tan=-0.487733, x=-0.898794, y=0.438371): -0.487732588566\n\n    test 3593 154 153.898740000769 Phi(tan=-0.489922, x=-0.898018, y=0.439959): -0.487732588566\n    test 3594 154 153.974686973605 Beta(tan=-0.48828, x=-0.8986, y=0.438768): -0.487732588566\n    test 3595 154 154.050477253377 Theta(tan=-0.486642, x=-0.89918, y=0.437579): -0.487732588566\n    test 3596 154 154.012631023956 Mu(tan=-0.48746, x=-0.898891, y=0.438173): -0.487732588566\n    test 3597 154 154.050444626907 Chi(tan=-0.486643, x=-0.89918, y=0.43758): -0.487732588566\n    test 3598 154 154.000000000000 Xi(tan=-0.487733, x=-0.898794, y=0.438371): -0.487732588566\n\n    test 3599 161 160.920851786649 Phi(tan=-0.345874, x=-1, y=0.345874): -0.344327613290\n    test 3600 161 160.980216789536 Beta(tan=-0.344714, x=-1, y=0.344714): -0.344327613290\n    test 3601 161 161.039424975997 Theta(tan=-0.343558, x=-1, y=0.343558): -0.344327613290\n    test 3602 161 161.009869820426 Mu(tan=-0.344135, x=-0.945575, y=0.325405), iteration=3: -0.344327613290\n    test 3603 161 161.039410917225 Chi(tan=-0.343558, x=-1, y=0.343558), iteration=2: -0.344327613290\n    test 3604 161 161.000000000000 Xi(tan=-0.344328, x=-0.945519, y=0.325568): -0.344327613290\n\n    test 3605 161 160.920851786649 Phi(tan=-0.345874, x=-0.945068, y=0.326874): -0.344327613290\n    test 3606 161 160.980216789536 Beta(tan=-0.344714, x=-0.945406, y=0.325895): -0.344327613290\n    test 3607 161 161.039424975997 Theta(tan=-0.343558, x=-0.945742, y=0.324917): -0.344327613290\n    test 3608 161 161.009869820426 Mu(tan=-0.344135, x=-0.945575, y=0.325405): -0.344327613290\n    test 3609 161 161.039410917225 Chi(tan=-0.343558, x=-0.945742, y=0.324918): -0.344327613290\n    test 3610 161 161.000000000000 Xi(tan=-0.344328, x=-0.945519, y=0.325568): -0.344327613290\n\n    test 3611 168 167.947693775816 Phi(tan=-0.213511, x=-1, y=0.213511): -0.212556561670\n    test 3612 168 167.986927091791 Beta(tan=-0.212795, x=-1, y=0.212795): -0.212556561670\n    test 3613 168 168.026040245291 Theta(tan=-0.212082, x=-1, y=0.212082): -0.212556561670\n    test 3614 168 168.006521160939 Mu(tan=-0.212438, x=-0.978171, y=0.2078), iteration=3: -0.212556561670\n    test 3615 168 168.026036457648 Chi(tan=-0.212082, x=-1, y=0.212082), iteration=3: -0.212556561670\n    test 3616 168 168.000000000000 Xi(tan=-0.212557, x=-0.978148, y=0.207912): -0.212556561670\n\n    test 3617 168 167.947693775816 Phi(tan=-0.213511, x=-0.977957, y=0.208805): -0.212556561670\n    test 3618 168 167.986927091791 Beta(tan=-0.212795, x=-0.9781, y=0.208135): -0.212556561670\n    test 3619 168 168.026040245291 Theta(tan=-0.212082, x=-0.978242, y=0.207467): -0.212556561670\n    test 3620 168 168.006521160939 Mu(tan=-0.212438, x=-0.978171, y=0.2078): -0.212556561670\n    test 3621 168 168.026036457648 Chi(tan=-0.212082, x=-0.978242, y=0.207467): -0.212556561670\n    test 3622 168 168.000000000000 Xi(tan=-0.212557, x=-0.978148, y=0.207912): -0.212556561670\n\n    test 3623 175 174.977664774563 Phi(tan=-0.0878815, x=-1, y=0.0878815): -0.087488663526\n    test 3624 175 174.994418020079 Beta(tan=-0.0875868, x=-1, y=0.0875868): -0.087488663526\n    test 3625 175 175.011115948983 Theta(tan=-0.0872932, x=-1, y=0.0872932): -0.087488663526\n    test 3626 175 175.002784242316 Mu(tan=-0.0874397, x=-0.996199, y=0.0871073), iteration=3: -0.087488663526\n    test 3627 175 175.011115664833 Chi(tan=-0.0872932, x=-1, y=0.0872932), iteration=3: -0.087488663526\n    test 3628 175 175.000000000000 Xi(tan=-0.0874887, x=-0.996195, y=0.0871557): -0.087488663526\n\n    test 3629 175 174.977664774563 Phi(tan=-0.0878815, x=-0.996161, y=0.0875441): -0.087488663526\n    test 3630 175 174.994418020079 Beta(tan=-0.0875868, x=-0.996186, y=0.0872528): -0.087488663526\n    test 3631 175 175.011115948983 Theta(tan=-0.0872932, x=-0.996212, y=0.0869625): -0.087488663526\n    test 3632 175 175.002784242316 Mu(tan=-0.0874397, x=-0.996199, y=0.0871073): -0.087488663526\n    test 3633 175 175.011115664833 Chi(tan=-0.0872932, x=-0.996212, y=0.0869625): -0.087488663526\n    test 3634 175 175.000000000000 Xi(tan=-0.0874887, x=-0.996195, y=0.0871557): -0.087488663526\n\n    test 3635 182 182.008972613463 Phi(tan=0.0350776, x=-1, y=-0.0350776): 0.034920769492\n    test 3636 182 182.002242400308 Beta(tan=0.03496, x=-1, y=-0.03496): 0.034920769492\n    test 3637 182 181.995534697284 Theta(tan=0.0348427, x=-1, y=-0.0348427): 0.034920769492\n    test 3638 182 181.998881526172 Mu(tan=0.0349012, x=-0.999392, y=-0.03488), iteration=3: 0.034920769492\n    test 3639 182 181.995534715586 Chi(tan=0.0348427, x=-1, y=-0.0348427), iteration=2: 0.034920769492\n    test 3640 182 182.000000000000 Xi(tan=0.0349208, x=-0.999391, y=-0.0348995): 0.034920769492\n\n    test 3641 182 182.008972613463 Phi(tan=0.0350776, x=-0.999385, y=-0.035056): 0.034920769492\n    test 3642 182 182.002242400308 Beta(tan=0.03496, x=-0.999389, y=-0.0349386): 0.034920769492\n    test 3643 182 181.995534697284 Theta(tan=0.0348427, x=-0.999394, y=-0.0348216): 0.034920769492\n    test 3644 182 181.998881526172 Mu(tan=0.0349012, x=-0.999392, y=-0.03488): 0.034920769492\n    test 3645 182 181.995534715586 Chi(tan=0.0348427, x=-0.999394, y=-0.0348216): 0.034920769492\n    test 3646 182 182.000000000000 Xi(tan=0.0349208, x=-0.999391, y=-0.0348995): 0.034920769492\n\n    test 3647 189 189.039743358381 Phi(tan=0.159096, x=-1, y=-0.159096): 0.158384440325\n    test 3648 189 189.009932816166 Beta(tan=0.158562, x=-1, y=-0.158562): 0.158384440325\n    test 3649 189 188.980217328283 Theta(tan=0.158031, x=-1, y=-0.158031): 0.158384440325\n    test 3650 189 188.995045415532 Mu(tan=0.158296, x=-0.987702, y=-0.156349), iteration=3: 0.158384440325\n    test 3651 189 188.980218957347 Chi(tan=0.158031, x=-1, y=-0.158031), iteration=3: 0.158384440325\n    test 3652 189 189.000000000000 Xi(tan=0.158384, x=-0.987688, y=-0.156434): 0.158384440325\n\n    test 3653 189 189.039743358381 Phi(tan=0.159096, x=-0.98758, y=-0.15712): 0.158384440325\n    test 3654 189 189.009932816166 Beta(tan=0.158562, x=-0.987661, y=-0.156606): 0.158384440325\n    test 3655 189 188.980217328283 Theta(tan=0.158031, x=-0.987742, y=-0.156093): 0.158384440325\n    test 3656 189 188.995045415532 Mu(tan=0.158296, x=-0.987702, y=-0.156349): 0.158384440325\n    test 3657 189 188.980218957347 Chi(tan=0.158031, x=-0.987742, y=-0.156093): 0.158384440325\n    test 3658 189 189.000000000000 Xi(tan=0.158384, x=-0.987688, y=-0.156434): 0.158384440325\n\n    test 3659 196 196.068135937668 Phi(tan=0.288033, x=-1, y=-0.288033): 0.286745385759\n    test 3660 196 196.017029985937 Beta(tan=0.287067, x=-1, y=-0.287067): 0.286745385759\n    test 3661 196 195.966069329052 Theta(tan=0.286105, x=-1, y=-0.286105): 0.286745385759\n    test 3662 196 195.991504319198 Mu(tan=0.286585, x=-0.961303, y=-0.275495), iteration=3: 0.286745385759\n    test 3663 196 195.966078002587 Chi(tan=0.286105, x=-1, y=-0.286105), iteration=3: 0.286745385759\n    test 3664 196 196.000000000000 Xi(tan=0.286745, x=-0.961262, y=-0.275637): 0.286745385759\n\n    test 3665 196 196.068135937668 Phi(tan=0.288033, x=-0.960933, y=-0.27678): 0.286745385759\n    test 3666 196 196.017029985937 Beta(tan=0.287067, x=-0.96118, y=-0.275923): 0.286745385759\n    test 3667 196 195.966069329052 Theta(tan=0.286105, x=-0.961425, y=-0.275068): 0.286745385759\n    test 3668 196 195.991504319198 Mu(tan=0.286585, x=-0.961303, y=-0.275495): 0.286745385759\n    test 3669 196 195.966078002587 Chi(tan=0.286105, x=-0.961425, y=-0.275068): 0.286745385759\n    test 3670 196 196.000000000000 Xi(tan=0.286745, x=-0.961262, y=-0.275637): 0.286745385759\n\n    test 3671 203 203.092454589560 Phi(tan=0.426381, x=-1, y=-0.426381): 0.424474816210\n    test 3672 203 203.023110614245 Beta(tan=0.424951, x=-1, y=-0.424951): 0.424474816210\n    test 3673 203 202.953928092744 Theta(tan=0.423526, x=-1, y=-0.423526): 0.424474816210\n    test 3674 203 202.988468962214 Mu(tan=0.424237, x=-0.920583, y=-0.390546), iteration=3: 0.424474816210\n    test 3675 203 202.953951753533 Chi(tan=0.423527, x=-1, y=-0.423527), iteration=3: 0.424474816210\n    test 3676 203 203.000000000000 Xi(tan=0.424475, x=-0.920505, y=-0.390731): 0.424474816210\n\n    test 3677 203 203.092454589560 Phi(tan=0.426381, x=-0.919873, y=-0.392216): 0.424474816210\n    test 3678 203 203.023110614245 Beta(tan=0.424951, x=-0.920347, y=-0.391102): 0.424474816210\n    test 3679 203 202.953928092744 Theta(tan=0.423526, x=-0.920819, y=-0.389991): 0.424474816210\n    test 3680 203 202.988468962214 Mu(tan=0.424237, x=-0.920583, y=-0.390546): 0.424474816210\n    test 3681 203 202.953951753533 Chi(tan=0.423527, x=-0.920819, y=-0.389991): 0.424474816210\n    test 3682 203 203.000000000000 Xi(tan=0.424475, x=-0.920505, y=-0.390731): 0.424474816210\n\n    test 3683 210 210.111251718648 Phi(tan=0.579942, x=-1, y=-0.579942): 0.577350269190\n    test 3684 210 210.027812929728 Beta(tan=0.577998, x=-1, y=-0.577998): 0.577350269190\n    test 3685 210 209.944513899906 Theta(tan=0.57606, x=-1, y=-0.57606): 0.577350269190\n    test 3686 210 209.986119784065 Mu(tan=0.577027, x=-0.866147, y=-0.49979), iteration=2: 0.577350269190\n    test 3687 210 209.944560549356 Chi(tan=0.576061, x=-1, y=-0.576061), iteration=3: 0.577350269190\n    test 3688 210 210.000000000000 Xi(tan=0.57735, x=-0.866025, y=-0.5): 0.577350269190\n\n    test 3689 210 210.111251718648 Phi(tan=0.579942, x=-0.865053, y=-0.501681): 0.577350269190\n    test 3690 210 210.027812929728 Beta(tan=0.577998, x=-0.865783, y=-0.50042): 0.577350269190\n    test 3691 210 209.944513899906 Theta(tan=0.57606, x=-0.866509, y=-0.499161): 0.577350269190\n    test 3692 210 209.986119784065 Mu(tan=0.577027, x=-0.866147, y=-0.49979): 0.577350269190\n    test 3693 210 209.944560549356 Chi(tan=0.576061, x=-0.866509, y=-0.499162): 0.577350269190\n    test 3694 210 210.000000000000 Xi(tan=0.57735, x=-0.866025, y=-0.5): 0.577350269190\n\n    test 3695 217 217.123414552554 Phi(tan=0.756937, x=-1, y=-0.756937): 0.753554050103\n    test 3696 217 217.030858299580 Beta(tan=0.754399, x=-1, y=-0.754399): 0.753554050103\n    test 3697 217 216.938387365618 Theta(tan=0.751869, x=-1, y=-0.751869): 0.753554050103\n    test 3698 217 216.984596192751 Mu(tan=0.753133, x=-0.798797, y=-0.6016), iteration=3: 0.753554050103\n    test 3699 217 216.938462387195 Chi(tan=0.751871, x=-1, y=-0.751871), iteration=3: 0.753554050103\n    test 3700 217 217.000000000000 Xi(tan=0.753554, x=-0.798636, y=-0.601815): 0.753554050103\n\n    test 3701 217 217.123414552554 Phi(tan=0.756937, x=-0.797337, y=-0.603534): 0.753554050103\n    test 3702 217 217.030858299580 Beta(tan=0.754399, x=-0.798311, y=-0.602245): 0.753554050103\n    test 3703 217 216.938387365618 Theta(tan=0.751869, x=-0.799282, y=-0.600956): 0.753554050103\n    test 3704 217 216.984596192751 Mu(tan=0.753133, x=-0.798797, y=-0.6016): 0.753554050103\n    test 3705 217 216.938462387195 Chi(tan=0.751871, x=-0.799281, y=-0.600957): 0.753554050103\n    test 3706 217 217.000000000000 Xi(tan=0.753554, x=-0.798636, y=-0.601815): 0.753554050103\n\n    test 3707 224 224.128230303258 Phi(tan=0.970023, x=-1, y=-0.970023): 0.965688774807\n    test 3708 224 224.032067609230 Beta(tan=0.966771, x=-1, y=-0.966771): 0.965688774807\n    test 3709 224 223.935915824293 Theta(tan=0.96353, x=-1, y=-0.96353): 0.965688774807\n    test 3710 224 223.983988319148 Mu(tan=0.965149, x=-0.719534, y=-0.694457), iteration=3: 0.965688774807\n    test 3711 224 223.936019754646 Chi(tan=0.963533, x=-1, y=-0.963533), iteration=3: 0.965688774807\n    test 3712 224 224.000000000000 Xi(tan=0.965689, x=-0.71934, y=-0.694658): 0.965688774807\n\n    test 3713 224 224.128230303258 Phi(tan=0.970023, x=-0.717783, y=-0.696267): 0.965688774807\n    test 3714 224 224.032067609230 Beta(tan=0.966771, x=-0.718951, y=-0.695061): 0.965688774807\n    test 3715 224 223.935915824293 Theta(tan=0.96353, x=-0.720116, y=-0.693853): 0.965688774807\n    test 3716 224 223.983988319148 Mu(tan=0.965149, x=-0.719534, y=-0.694457): 0.965688774807\n    test 3717 224 223.936019754646 Chi(tan=0.963533, x=-0.720115, y=-0.693855): 0.965688774807\n    test 3718 224 224.000000000000 Xi(tan=0.965689, x=-0.71934, y=-0.694658): 0.965688774807\n\n    test 3719 231 231.125426196540 Phi(tan=1.24044, x=-1, y=-1.24044): 1.234897156535\n    test 3720 231 231.031371476626 Beta(tan=1.23628, x=-1, y=-1.23628): 1.234897156535\n    test 3721 231 230.937250720782 Theta(tan=1.23214, x=-1, y=-1.23214): 1.234897156535\n    test 3722 231 230.984331752747 Mu(tan=1.23421, x=-0.629533, y=-0.776974), iteration=3: 1.234897156535\n    test 3723 231 230.937378047856 Chi(tan=1.23214, x=-1, y=-1.23214), iteration=2: 1.234897156535\n    test 3724 231 231.000000000000 Xi(tan=1.2349, x=-0.62932, y=-0.777146): 1.234897156535\n\n    test 3725 231 231.125426196540 Phi(tan=1.24044, x=-0.627618, y=-0.778522): 1.234897156535\n    test 3726 231 231.031371476626 Beta(tan=1.23628, x=-0.628895, y=-0.77749): 1.234897156535\n    test 3727 231 230.937250720782 Theta(tan=1.23214, x=-0.630171, y=-0.776456): 1.234897156535\n    test 3728 231 230.984331752747 Mu(tan=1.23421, x=-0.629533, y=-0.776974): 1.234897156535\n    test 3729 231 230.937378047856 Chi(tan=1.23214, x=-0.630169, y=-0.776458): 1.234897156535\n    test 3730 231 231.000000000000 Xi(tan=1.2349, x=-0.62932, y=-0.777146): 1.234897156535\n\n    test 3731 238 238.115182546420 Phi(tan=1.60752, x=-1, y=-1.60752): 1.600334529041\n    test 3732 238 238.028813796136 Beta(tan=1.60213, x=-1, y=-1.60213): 1.600334529041\n    test 3733 238 237.942317534000 Theta(tan=1.59676, x=-1, y=-1.59676): 1.600334529041\n    test 3734 238 237.985605550109 Mu(tan=1.59944, x=-0.530132, y=-0.847915), iteration=3: 1.600334529041\n    test 3735 238 237.942456867934 Chi(tan=1.59676, x=-1, y=-1.59676), iteration=2: 1.600334529041\n    test 3736 238 238.000000000000 Xi(tan=1.60033, x=-0.529919, y=-0.848048): 1.600334529041\n\n    test 3737 238 238.115182546420 Phi(tan=1.60752, x=-0.528213, y=-0.849112): 1.600334529041\n    test 3738 238 238.028813796136 Beta(tan=1.60213, x=-0.529493, y=-0.848314): 1.600334529041\n    test 3739 238 237.942317534000 Theta(tan=1.59676, x=-0.530773, y=-0.847514): 1.600334529041\n    test 3740 238 237.985605550109 Mu(tan=1.59944, x=-0.530132, y=-0.847915): 1.600334529041\n    test 3741 238 237.942456867934 Chi(tan=1.59676, x=-0.530771, y=-0.847515): 1.600334529041\n    test 3742 238 238.000000000000 Xi(tan=1.60033, x=-0.529919, y=-0.848048): 1.600334529041\n\n    test 3743 245 245.098118836759 Phi(tan=2.15413, x=-1, y=-2.15413): 2.144506920510\n    test 3744 245 245.024548537731 Beta(tan=2.14691, x=-1, y=-2.14691): 2.144506920510\n    test 3745 245 244.950819083860 Theta(tan=2.13971, x=-1, y=-2.13971): 2.144506920510\n    test 3746 245 244.987733605483 Mu(tan=2.14331, x=-0.422812, y=-0.906217), iteration=3: 2.144506920510\n    test 3747 245 244.950954727954 Chi(tan=2.13972, x=-1, y=-2.13972), iteration=2: 2.144506920510\n    test 3748 245 245.000000000000 Xi(tan=2.14451, x=-0.422618, y=-0.906308): 2.144506920510\n\n    test 3749 245 245.098118836759 Phi(tan=2.15413, x=-0.421066, y=-0.90703): 2.144506920510\n    test 3750 245 245.024548537731 Beta(tan=2.14691, x=-0.42223, y=-0.906489): 2.144506920510\n    test 3751 245 244.950819083860 Theta(tan=2.13971, x=-0.423396, y=-0.905945): 2.144506920510\n    test 3752 245 244.987733605483 Mu(tan=2.14331, x=-0.422812, y=-0.906217): 2.144506920510\n    test 3753 245 244.950954727954 Chi(tan=2.13972, x=-0.423394, y=-0.905946): 2.144506920510\n    test 3754 245 245.000000000000 Xi(tan=2.14451, x=-0.422618, y=-0.906308): 2.144506920510\n\n    test 3755 252 252.075254383698 Phi(tan=3.09149, x=-1, y=-3.09149): 3.077683537175\n    test 3756 252 252.018830129897 Beta(tan=3.08113, x=-1, y=-3.08113): 3.077683537175\n    test 3757 252 251.962252287555 Theta(tan=3.0708, x=-1, y=-3.0708): 3.077683537175\n    test 3758 252 251.990589272651 Mu(tan=3.07596, x=-0.309173, y=-0.951006), iteration=2: 3.077683537175\n    test 3759 252 251.962366907267 Chi(tan=3.07082, x=-1, y=-3.07082), iteration=3: 3.077683537175\n    test 3760 252 252.000000000000 Xi(tan=3.07768, x=-0.309017, y=-0.951057): 3.077683537175\n\n    test 3761 252 252.075254383698 Phi(tan=3.09149, x=-0.307768, y=-0.951462): 3.077683537175\n    test 3762 252 252.018830129897 Beta(tan=3.08113, x=-0.308704, y=-0.951158): 3.077683537175\n    test 3763 252 251.962252287555 Theta(tan=3.0708, x=-0.309644, y=-0.950853): 3.077683537175\n    test 3764 252 251.990589272651 Mu(tan=3.07596, x=-0.309173, y=-0.951006): 3.077683537175\n    test 3765 252 251.962366907267 Chi(tan=3.07082, x=-0.309642, y=-0.950853): 3.077683537175\n    test 3766 252 252.000000000000 Xi(tan=3.07768, x=-0.309017, y=-0.951057): 3.077683537175\n\n    test 3767 259 259.047946497885 Phi(tan=5.16764, x=-1, y=-5.16764): 5.144554015970\n    test 3768 259 259.011998105898 Beta(tan=5.15031, x=-1, y=-5.15031): 5.144554015970\n    test 3769 259 258.975937580981 Theta(tan=5.13304, x=-1, y=-5.13304): 5.144554015970\n    test 3770 259 258.994002940120 Mu(tan=5.14168, x=-0.190912, y=-0.981607), iteration=2: 5.144554015970\n    test 3771 259 258.976015406086 Chi(tan=5.13308, x=-1, y=-5.13308), iteration=3: 5.144554015970\n    test 3772 259 259.000000000000 Xi(tan=5.14455, x=-0.190809, y=-0.981627): 5.144554015970\n\n    test 3773 259 259.047946497885 Phi(tan=5.16764, x=-0.189987, y=-0.981787): 5.144554015970\n    test 3774 259 259.011998105898 Beta(tan=5.15031, x=-0.190603, y=-0.981667): 5.144554015970\n    test 3775 259 258.975937580981 Theta(tan=5.13304, x=-0.191221, y=-0.981547): 5.144554015970\n    test 3776 259 258.994002940120 Mu(tan=5.14168, x=-0.190912, y=-0.981607): 5.144554015970\n    test 3777 259 258.976015406086 Chi(tan=5.13308, x=-0.19122, y=-0.981547): 5.144554015970\n    test 3778 259 259.000000000000 Xi(tan=5.14455, x=-0.190809, y=-0.981627): 5.144554015970\n\n    test 3779 266 266.017810106930 Phi(tan=14.3648, x=-1, y=-14.3648): 14.300666256712\n    test 3780 266 266.004456979343 Beta(tan=14.3167, x=-1, y=-14.3167): 14.300666256712\n    test 3781 266 265.991059367560 Theta(tan=14.2687, x=-1, y=-14.2687): 14.300666256712\n    test 3782 266 265.997772097900 Mu(tan=14.2927, x=-0.0697953, y=-0.997561), iteration=3: 14.300666256712\n    test 3783 266 265.991089228290 Chi(tan=14.2688, x=-1, y=-14.2688), iteration=3: 14.300666256712\n    test 3784 266 266.000000000000 Xi(tan=14.3007, x=-0.0697565, y=-0.997564): 14.300666256712\n\n    test 3785 266 266.017810106930 Phi(tan=14.3648, x=-0.0694464, y=-0.997586): 14.300666256712\n    test 3786 266 266.004456979343 Beta(tan=14.3167, x=-0.0696789, y=-0.997569): 14.300666256712\n    test 3787 266 265.991059367560 Theta(tan=14.2687, x=-0.0699121, y=-0.997553): 14.300666256712\n    test 3788 266 265.997772097900 Mu(tan=14.2927, x=-0.0697953, y=-0.997561): 14.300666256712\n    test 3789 266 265.991089228290 Chi(tan=14.2688, x=-0.0699116, y=-0.997553): 14.300666256712\n    test 3790 266 266.000000000000 Xi(tan=14.3007, x=-0.0697565, y=-0.997564): 14.300666256712\n\n    test 3791 273 272.986623544405 Phi(tan=-19.1668, x=1.0, y=-19.1668): -19.081136687728\n    test 3792 273 272.996652532418 Beta(tan=-19.1025, x=1.0, y=-19.1025): -19.081136687728\n    test 3793 273 273.006715074128 Theta(tan=-19.0384, x=1.0, y=-19.0384): -19.081136687728\n    test 3794 273 273.001673300226 Mu(tan=-19.0705, x=0.0523651, y=-0.998628), iteration=2: -19.081136687728\n    test 3795 273 273.006692598711 Chi(tan=-19.0386, x=1.0, y=-19.0386), iteration=2: -19.081136687728\n    test 3796 273 273.000000000000 Xi(tan=-19.0811, x=0.052336, y=-0.99863): -19.081136687728\n\n    test 3797 273 272.986623544405 Phi(tan=-19.1668, x=0.0521028, y=-0.998642): -19.081136687728\n    test 3798 273 272.996652532418 Beta(tan=-19.1025, x=0.0522776, y=-0.998633): -19.081136687728\n    test 3799 273 273.006715074128 Theta(tan=-19.0384, x=0.052453, y=-0.998623): -19.081136687728\n    test 3800 273 273.001673300226 Mu(tan=-19.0705, x=0.0523651, y=-0.998628): -19.081136687728\n    test 3801 273 273.006692598711 Chi(tan=-19.0386, x=0.0524526, y=-0.998623): -19.081136687728\n    test 3802 273 273.000000000000 Xi(tan=-19.0811, x=0.052336, y=-0.99863): -19.081136687728\n\n    test 3803 280 279.956225698278 Phi(tan=-5.69673, x=1.0, y=-5.69673): -5.671281819618\n    test 3804 280 279.989045850720 Beta(tan=-5.67763, x=1.0, y=-5.67763): -5.671281819618\n    test 3805 280 280.021969758476 Theta(tan=-5.65859, x=1.0, y=-5.65859): -5.671281819618\n    test 3806 280 280.005475329461 Mu(tan=-5.66811, x=0.173742, y=-0.984791), iteration=3: -5.671281819618\n    test 3807 280 280.021898241655 Chi(tan=-5.65863, x=1.0, y=-5.65863), iteration=2: -5.671281819618\n    test 3808 280 280.000000000000 Xi(tan=-5.67128, x=0.173648, y=-0.984808): -5.671281819618\n\n    test 3809 280 279.956225698278 Phi(tan=-5.69673, x=0.172896, y=-0.98494): -5.671281819618\n    test 3810 280 279.989045850720 Beta(tan=-5.67763, x=0.17346, y=-0.984841): -5.671281819618\n    test 3811 280 280.021969758476 Theta(tan=-5.65859, x=0.174026, y=-0.984741): -5.671281819618\n    test 3812 280 280.005475329461 Mu(tan=-5.66811, x=0.173742, y=-0.984791): -5.671281819618\n    test 3813 280 280.021898241655 Chi(tan=-5.65863, x=0.174025, y=-0.984741): -5.671281819618\n    test 3814 280 280.000000000000 Xi(tan=-5.67128, x=0.173648, y=-0.984808): -5.671281819618\n\n    test 3815 287 286.928409983832 Phi(tan=-3.28553, x=1.0, y=-3.28553): -3.270852618484\n    test 3816 287 286.982086527391 Beta(tan=-3.27451, x=1.0, y=-3.27451): -3.270852618484\n    test 3817 287 287.035912792570 Theta(tan=-3.26354, x=1.0, y=-3.26354): -3.270852618484\n    test 3818 287 287.008952804861 Mu(tan=-3.26903, x=0.292521, y=-0.956259), iteration=2: -3.270852618484\n    test 3819 287 287.035802540646 Chi(tan=-3.26356, x=1.0, y=-3.26356), iteration=2: -3.270852618484\n    test 3820 287 287.000000000000 Xi(tan=-3.27085, x=0.292372, y=-0.956305): -3.270852618484\n\n    test 3821 287 286.928409983832 Phi(tan=-3.28553, x=0.291177, y=-0.956669): -3.270852618484\n    test 3822 287 286.982086527391 Beta(tan=-3.27451, x=0.292073, y=-0.956396): -3.270852618484\n    test 3823 287 287.035912792570 Theta(tan=-3.26354, x=0.292971, y=-0.956121): -3.270852618484\n    test 3824 287 287.008952804861 Mu(tan=-3.26903, x=0.292521, y=-0.956259): -3.270852618484\n    test 3825 287 287.035802540646 Chi(tan=-3.26356, x=0.292969, y=-0.956122): -3.270852618484\n    test 3826 287 287.000000000000 Xi(tan=-3.27085, x=0.292372, y=-0.956305): -3.270852618484\n\n    test 3827 294 293.904820699861 Phi(tan=-2.25612, x=1.0, y=-2.25612): -2.246036773904\n    test 3828 294 293.976186490838 Beta(tan=-2.24855, x=1.0, y=-2.24855): -2.246036773904\n    test 3829 294 294.047712986128 Theta(tan=-2.24101, x=1.0, y=-2.24101): -2.246036773904\n    test 3830 294 294.011899457288 Mu(tan=-2.24478, x=0.406926, y=-0.913461), iteration=3: -2.246036773904\n    test 3831 294 294.047579285201 Chi(tan=-2.24103, x=1.0, y=-2.24103), iteration=3: -2.246036773904\n    test 3832 294 294.000000000000 Xi(tan=-2.24604, x=0.406737, y=-0.913545): -2.246036773904\n\n    test 3833 294 293.904820699861 Phi(tan=-2.25612, x=0.405219, y=-0.91422): -2.246036773904\n    test 3834 294 293.976186490838 Beta(tan=-2.24855, x=0.406357, y=-0.913714): -2.246036773904\n    test 3835 294 294.047712986128 Theta(tan=-2.24101, x=0.407497, y=-0.913206): -2.246036773904\n    test 3836 294 294.011899457288 Mu(tan=-2.24478, x=0.406926, y=-0.913461): -2.246036773904\n    test 3837 294 294.047579285201 Chi(tan=-2.24103, x=0.407495, y=-0.913207): -2.246036773904\n    test 3838 294 294.000000000000 Xi(tan=-2.24604, x=0.406737, y=-0.913545): -2.246036773904\n\n    test 3839 301 300.886857256907 Phi(tan=-1.67175, x=1.0, y=-1.67175): -1.664279482351\n    test 3840 301 300.971695886665 Beta(tan=-1.66614, x=1.0, y=-1.66614): -1.664279482351\n    test 3841 301 301.056668635072 Theta(tan=-1.66056, x=1.0, y=-1.66056): -1.664279482351\n    test 3842 301 301.014140307923 Mu(tan=-1.66335, x=0.51525, y=-0.85704), iteration=3: -1.664279482351\n    test 3843 301 301.056528796205 Chi(tan=-1.66057, x=1.0, y=-1.66057), iteration=3: -1.664279482351\n    test 3844 301 301.000000000000 Xi(tan=-1.66428, x=0.515038, y=-0.857167): -1.664279482351\n\n    test 3845 301 300.886857256907 Phi(tan=-1.67175, x=0.513344, y=-0.858183): -1.664279482351\n    test 3846 301 300.971695886665 Beta(tan=-1.66614, x=0.514615, y=-0.857422): -1.664279482351\n    test 3847 301 301.056668635072 Theta(tan=-1.66056, x=0.515886, y=-0.856657): -1.664279482351\n    test 3848 301 301.014140307923 Mu(tan=-1.66335, x=0.51525, y=-0.85704): -1.664279482351\n    test 3849 301 301.056528796205 Chi(tan=-1.66057, x=0.515884, y=-0.856659): -1.664279482351\n    test 3850 301 301.000000000000 Xi(tan=-1.66428, x=0.515038, y=-0.857167): -1.664279482351\n\n    test 3851 308 307.875591521416 Phi(tan=-1.28569, x=1.0, y=-1.28569): -1.279941632193\n    test 3852 308 307.968882364101 Beta(tan=-1.28138, x=1.0, y=-1.28138): -1.279941632193\n    test 3853 308 308.062249364871 Theta(tan=-1.27708, x=1.0, y=-1.27708): -1.279941632193\n    test 3854 308 308.015542045055 Mu(tan=-1.27923, x=0.615875, y=-0.787844), iteration=3: -1.279941632193\n    test 3855 308 308.062119501658 Chi(tan=-1.27709, x=1.0, y=-1.27709), iteration=3: -1.279941632193\n    test 3856 308 308.000000000000 Xi(tan=-1.27994, x=0.615661, y=-0.788011): -1.279941632193\n\n    test 3857 308 307.875591521416 Phi(tan=-1.28569, x=0.613949, y=-0.789346): -1.279941632193\n    test 3858 308 307.968882364101 Beta(tan=-1.28138, x=0.615233, y=-0.788345): -1.279941632193\n    test 3859 308 308.062249364871 Theta(tan=-1.27708, x=0.616517, y=-0.787341): -1.279941632193\n    test 3860 308 308.015542045055 Mu(tan=-1.27923, x=0.615875, y=-0.787844): -1.279941632193\n    test 3861 308 308.062119501659 Chi(tan=-1.27709, x=0.616515, y=-0.787343): -1.279941632193\n    test 3862 308 308.000000000000 Xi(tan=-1.27994, x=0.615661, y=-0.788011): -1.279941632193\n\n    test 3863 315 314.871703066479 Phi(tan=-1.00449, x=1.0, y=-1.00449): -1.000000000000\n    test 3864 315 314.967914975772 Beta(tan=-1.00112, x=1.0, y=-1.00112): -1.000000000000\n    test 3865 315 315.064127246955 Theta(tan=-0.997764, x=1.0, y=-0.997764): -1.000000000000\n    test 3866 315 315.016020986969 Mu(tan=-0.999441, x=0.707304, y=-0.706909), iteration=2: -1.000000000000\n    test 3867 315 315.064019491023 Chi(tan=-0.997768, x=1.0, y=-0.997768), iteration=2: -1.000000000000\n    test 3868 315 315.000000000000 Xi(tan=-1, x=0.707107, y=-0.707107): -1.000000000000\n\n    test 3869 315 314.871703066479 Phi(tan=-1.00449, x=0.705522, y=-0.708688): -1.000000000000\n    test 3870 315 314.967914975772 Beta(tan=-1.00112, x=0.706711, y=-0.707503): -1.000000000000\n    test 3871 315 315.064127246955 Theta(tan=-0.997764, x=0.707898, y=-0.706315): -1.000000000000\n    test 3872 315 315.016020986969 Mu(tan=-0.999441, x=0.707304, y=-0.706909): -1.000000000000\n    test 3873 315 315.064019491023 Chi(tan=-0.997768, x=0.707896, y=-0.706316): -1.000000000000\n    test 3874 315 315.000000000000 Xi(tan=-1, x=0.707107, y=-0.707107): -1.000000000000\n\n    test 3875 322 321.875436413614 Phi(tan=-0.784793, x=1.0, y=-0.784793): -0.781285626507\n    test 3876 322 321.968853692070 Beta(tan=-0.782161, x=1.0, y=-0.782161): -0.781285626507\n    test 3877 322 322.062195432519 Theta(tan=-0.779539, x=1.0, y=-0.779539): -0.781285626507\n    test 3878 322 322.015548148041 Mu(tan=-0.780849, x=0.788178, y=-0.615448), iteration=3: -0.781285626507\n    test 3879 322 322.062116180014 Chi(tan=-0.779541, x=1.0, y=-0.779541), iteration=3: -0.781285626507\n    test 3880 322 322.000000000000 Xi(tan=-0.781286, x=0.788011, y=-0.615661): -0.781285626507\n\n    test 3881 322 321.875436413614 Phi(tan=-0.784793, x=0.78667, y=-0.617373): -0.781285626507\n    test 3882 322 321.968853692070 Beta(tan=-0.782161, x=0.787676, y=-0.61609): -0.781285626507\n    test 3883 322 322.062195432519 Theta(tan=-0.779539, x=0.788679, y=-0.614806): -0.781285626507\n    test 3884 322 322.015548148041 Mu(tan=-0.780849, x=0.788178, y=-0.615448): -0.781285626507\n    test 3885 322 322.062116180014 Chi(tan=-0.779541, x=0.788678, y=-0.614807): -0.781285626507\n    test 3886 322 322.000000000000 Xi(tan=-0.781286, x=0.788011, y=-0.615661): -0.781285626507\n\n    test 3887 329 328.886583352158 Phi(tan=-0.603558, x=1.0, y=-0.603558): -0.600860619028\n    test 3888 329 328.971645254782 Beta(tan=-0.601534, x=1.0, y=-0.601534): -0.600860619028\n    test 3889 329 329.056573396118 Theta(tan=-0.599518, x=1.0, y=-0.599518): -0.600860619028\n    test 3890 329 329.014151085164 Mu(tan=-0.600525, x=0.857294, y=-0.514826), iteration=3: -0.600860619028\n    test 3891 329 329.056522930537 Chi(tan=-0.599519, x=1.0, y=-0.599519), iteration=3: -0.600860619028\n    test 3892 329 329.000000000000 Xi(tan=-0.600861, x=0.857167, y=-0.515038): -0.600860619028\n\n    test 3893 329 328.886583352158 Phi(tan=-0.603558, x=0.856146, y=-0.516734): -0.600860619028\n    test 3894 329 328.971645254782 Beta(tan=-0.601534, x=0.856912, y=-0.515462): -0.600860619028\n    test 3895 329 329.056573396118 Theta(tan=-0.599518, x=0.857675, y=-0.514191): -0.600860619028\n    test 3896 329 329.014151085164 Mu(tan=-0.600525, x=0.857294, y=-0.514826): -0.600860619028\n    test 3897 329 329.056522930537 Chi(tan=-0.599519, x=0.857675, y=-0.514192): -0.600860619028\n    test 3898 329 329.000000000000 Xi(tan=-0.600861, x=0.857167, y=-0.515038): -0.600860619028\n\n    test 3899 336 335.904492119885 Phi(tan=-0.447228, x=1.0, y=-0.447228): -0.445228685309\n    test 3900 336 335.976125752178 Beta(tan=-0.445728, x=1.0, y=-0.445728): -0.445228685309\n    test 3901 336 336.047598736385 Theta(tan=-0.444234, x=1.0, y=-0.444234): -0.445228685309\n    test 3902 336 336.011912385791 Mu(tan=-0.44498, x=0.91363, y=-0.406547), iteration=3: -0.445228685309\n    test 3903 336 336.047572248701 Chi(tan=-0.444234, x=1.0, y=-0.444234), iteration=3: -0.445228685309\n    test 3904 336 336.000000000000 Xi(tan=-0.445229, x=0.913545, y=-0.406737): -0.445228685309\n\n    test 3905 336 335.904492119885 Phi(tan=-0.447228, x=0.912866, y=-0.408259): -0.445228685309\n    test 3906 336 335.976125752178 Beta(tan=-0.445728, x=0.913376, y=-0.407117): -0.445228685309\n    test 3907 336 336.047598736385 Theta(tan=-0.444234, x=0.913883, y=-0.405978): -0.445228685309\n    test 3908 336 336.011912385791 Mu(tan=-0.44498, x=0.91363, y=-0.406547): -0.445228685309\n    test 3909 336 336.047572248701 Chi(tan=-0.444234, x=0.913883, y=-0.405978): -0.445228685309\n    test 3910 336 336.000000000000 Xi(tan=-0.445229, x=0.913545, y=-0.406737): -0.445228685309\n\n    test 3911 343 342.928103650624 Phi(tan=-0.307103, x=1.0, y=-0.307103): -0.305730681459\n    test 3912 343 342.982029901147 Beta(tan=-0.306074, x=1.0, y=-0.306074): -0.305730681459\n    test 3913 343 343.035806278435 Theta(tan=-0.305047, x=1.0, y=-0.305047): -0.305730681459\n    test 3914 343 343.008964858001 Mu(tan=-0.30556, x=0.95635, y=-0.292222), iteration=2: -0.305730681459\n    test 3915 343 343.035795980594 Chi(tan=-0.305048, x=1.0, y=-0.305048), iteration=3: -0.305730681459\n    test 3916 343 343.000000000000 Xi(tan=-0.305731, x=0.956305, y=-0.292372): -0.305730681459\n\n    test 3917 343 342.928103650624 Phi(tan=-0.307103, x=0.955937, y=-0.293571): -0.305730681459\n    test 3918 343 342.982029901147 Beta(tan=-0.306074, x=0.956213, y=-0.292672): -0.305730681459\n    test 3919 343 343.035806278435 Theta(tan=-0.305047, x=0.956487, y=-0.291774): -0.305730681459\n    test 3920 343 343.008964858001 Mu(tan=-0.30556, x=0.95635, y=-0.292222): -0.305730681459\n    test 3921 343 343.035795980594 Chi(tan=-0.305048, x=0.956487, y=-0.291774): -0.305730681459\n    test 3922 343 343.000000000000 Xi(tan=-0.305731, x=0.956305, y=-0.292372): -0.305730681459\n\n    test 3923 350 349.956013326444 Phi(tan=-0.177119, x=1.0, y=-0.177119): -0.176326980708\n    test 3924 350 349.989006593437 Beta(tan=-0.176525, x=1.0, y=-0.176525): -0.176326980708\n    test 3925 350 350.021895915483 Theta(tan=-0.175933, x=1.0, y=-0.175933): -0.176326980708\n    test 3926 350 350.005483685534 Mu(tan=-0.176228, x=0.984824, y=-0.173554), iteration=3: -0.176326980708\n    test 3927 350 350.021893693784 Chi(tan=-0.175933, x=1.0, y=-0.175933), iteration=3: -0.176326980708\n    test 3928 350 350.000000000000 Xi(tan=-0.176327, x=0.984808, y=-0.173648): -0.176326980708\n\n    test 3929 350 349.956013326444 Phi(tan=-0.177119, x=0.984674, y=-0.174404): -0.176326980708\n    test 3930 350 349.989006593437 Beta(tan=-0.176525, x=0.984774, y=-0.173837): -0.176326980708\n    test 3931 350 350.021895915483 Theta(tan=-0.175933, x=0.984874, y=-0.173272): -0.176326980708\n    test 3932 350 350.005483685534 Mu(tan=-0.176228, x=0.984824, y=-0.173554): -0.176326980708\n    test 3933 350 350.021893693784 Chi(tan=-0.175933, x=0.984874, y=-0.173272): -0.176326980708\n    test 3934 350 350.000000000000 Xi(tan=-0.176327, x=0.984808, y=-0.173648): -0.176326980708\n\n    test 3935 357 356.986554851958 Phi(tan=-0.0526431, x=1.0, y=-0.0526431): -0.052407779283\n    test 3936 357 356.996639834512 Beta(tan=-0.0524666, x=1.0, y=-0.0524666): -0.052407779283\n    test 3937 357 357.006691189366 Theta(tan=-0.0522907, x=1.0, y=-0.0522907): -0.052407779283\n    test 3938 357 357.001676003026 Mu(tan=-0.0523784, x=0.998631, y=-0.0523067), iteration=3: -0.052407779283\n    test 3939 357 357.006691127690 Chi(tan=-0.0522907, x=1.0, y=-0.0522907), iteration=3: -0.052407779283\n    test 3940 357 357.000000000000 Xi(tan=-0.0524078, x=0.99863, y=-0.052336): -0.052407779283\n\n    test 3941 357 356.986554851958 Phi(tan=-0.0526431, x=0.998617, y=-0.0525703): -0.052407779283\n    test 3942 357 356.996639834512 Beta(tan=-0.0524666, x=0.998626, y=-0.0523945): -0.052407779283\n    test 3943 357 357.006691189366 Theta(tan=-0.0522907, x=0.998636, y=-0.0522193): -0.052407779283\n    test 3944 357 357.001676003026 Mu(tan=-0.0523784, x=0.998631, y=-0.0523067): -0.052407779283\n    test 3945 357 357.006691127690 Chi(tan=-0.0522907, x=0.998636, y=-0.0522193): -0.052407779283\n    test 3946 357 357.000000000000 Xi(tan=-0.0524078, x=0.99863, y=-0.052336): -0.052407779283\n\n    test 3947 abs: AuxAngle(tan=2.0, x=1.0, y=2.0)\n    test 3948 add: AuxAngle(tan=-1.33333, x=-3, y=4.0)\n    test 3949 eq : True\n    test 3950 float: 2.0\n    test 3951 sub: AuxAngle(tan=0.0, x=1.0, y=0.0)\n    test 3952 neg: AuxAngle(tan=-2, x=1.0, y=-2)\n    test 3953 ne : False\n    test 3954 pos: AuxAngle(tan=2.0, x=1.0, y=2.0)\n    test 3955 iadd: AuxAngle(tan=-1.33333, x=-3, y=4.0)\n    test 3956 isub: AuxAngle(tan=0.0, x=1.0, y=0.0)\n    test 3957 radd: AuxAngle(tan=0.0, x=1.0, y=0.0)\n    test 3958 rsub: AuxAngle(tan=0.0, x=1.0, y=0.0)\n\n    test 3959 N: 5\n    test 3960 N /sum: 2.748844788926\n    test 3961 +N/sum: 3.071245975238\n    test 3962 2N/sum: 3.071245975238\n    test 3963 Te/sum: 57.582664067074\n    test 3964 Tg/sum: -182.807444594653\n\n    50 of 3964 testAuxilats.py tests (1.3%) FAILED, ALL KNOWN (pygeodesy 26.3.26 Python 2.7.18 64bit arm64_x86_64 geographiclib 1.50 numpy 1.16.6 scipy 1.2.2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 -W  default) 7.552 sec\nrunning /Library/Framewo....ython -W default ~/PyGeodesy/test/testAzimuthal.py\n./pygeodesy/azimuthal.py:636: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return self.datum.ellipsoid.geodesic\n./pygeodesy/azimuthal.py:937: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return self.datum.ellipsoid.geodesic\n\n    testing testAzimuthal.py 25.05.09 (module pygeodesy.azimuthal 25.11.29)\n    test 1 Equidistant(48.833333, 2.333333, name='Paris'): 48.833333 2.333333\n    test 2 forward: -37467.812512, 230294.518853, 50.9, 1.8, 350.759218, 1.000223\n    test 3 reverse: -37467.812512, 230294.518853, 50.9, 1.8, 350.759218, 1.000223\n    test 4 iteration: None\n    test 5 copy(<type 'type'>): (<class 'pygeodesy.azimuthal.Equidistant'>, True)\n    test 6 Equidistant.copy(): (<class 'pygeodesy.azimuthal.Equidistant'>, True)\n    test 7 reverse: -38000.0, 230000.0, 50.897321, 1.792455, 350.61849, 1.000222\n    test 8 forward: -38000.0, 230000.0, 50.897321, 1.792455, 350.61849, 1.000222\n    test 9 reverse: LatLon(50°53′50.36″N, 001°47′32.84″E)\n    test 10 reverse: LatLon(50°53′50.36″N, 001°47′32.84″E)\n    test 11 reverse: LatLon(50°53′50.36″N, 001°47′32.84″E)\n    test 12 reverse: LatLon(50°53′50.36″N, 001°47′32.84″E)\n    test 13 Equidistant(51.4934, 0.0098, name='Greenwich'): 51.4934 0.0098\n    test 14 forward: 170420.92566, -293667.828613, 48.833333, 2.333333, 149.872606, 1.000472\n    test 15 reverse: 170420.92566, -293667.828613, 48.833333, 2.333333, 149.872606, 1.000472\n    test 16 iteration: None\n    test 17 hypot: 339535.102  FAILED, KNOWN, expected 338901.865\n    test 18 antipodal: (170420.92566, -293667.828613, -48.833333, -177.666667, 0.0, 1.000472, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n\n    test 19 Gnomonic(48.833333, 2.333333, name='Paris'): 48.833333 2.333333\n    test 20 forward: -37484.520018, 230397.210923, 50.9, 1.8, 350.759218, 1.000669\n    test 21 reverse: -37484.520018, 230397.210923, 50.9, 1.8, 350.759218, 1.000223\n    test 22 iteration: None\n    test 23 copy(<type 'type'>): (<class 'pygeodesy.azimuthal.Gnomonic'>, True)\n    test 24 Gnomonic.copy(): (<class 'pygeodesy.azimuthal.Gnomonic'>, True)\n    test 25 reverse: -38000.0, 230000.0, 50.896405, 1.792706, 350.61849, 1.000222\n    test 26 forward: -38000.0, 230000.0, 50.896405, 1.792706, 350.61849, 1.000667\n    test 27 reverse: LatLon(50°53′47.06″N, 001°47′33.74″E)\n    test 28 reverse: LatLon(50°53′47.06″N, 001°47′33.74″E)\n    test 29 reverse: LatLon(50°53′47.06″N, 001°47′33.74″E)\n    test 30 reverse: LatLon(50°53′47.06″N, 001°47′33.74″E)\n    test 31 Gnomonic(51.4934, 0.0098, name='Greenwich'): 51.4934 0.0098\n    test 32 forward: 170581.851218, -293945.134107, 48.833333, 2.333333, 149.872606, 1.001416\n    test 33 reverse: 170581.851218, -293945.134107, 48.833333, 2.333333, 149.872606, 1.000472\n    test 34 iteration: None\n    test 35 hypot: 339855.719  FAILED, KNOWN, expected 338901.865\n    test 36 antipodal: (170581.851218, -293945.134107, -48.833333, -177.666667, 0.0, 1.000472, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n\n    test 37 EquidistantExact(48.833333, 2.333333, name='Paris'): 48.833333 2.333333\n    test 38 forward: -37526.978232, 230000.911579, 50.9, 1.8, 350.325442, 0.999778\n    test 39 reverse: -37526.978232, 230000.911579, 50.9, 1.8, 350.325442, 0.999778\n    test 40 iteration: None\n    test 41 copy(<type 'type'>): (<class 'pygeodesy.azimuthal.EquidistantExact'>, True)\n    test 42 EquidistantExact.copy(): (<class 'pygeodesy.azimuthal.EquidistantExact'>, True)\n    test 43 reverse: -38000.0, 230000.0, 50.899962, 1.793278, 350.205524, 0.999778\n    test 44 forward: -38000.0, 230000.0, 50.899962, 1.793278, 350.205524, 0.999778\n    test 45 reverse: LatLon(50°53′59.86″N, 001°47′35.8″E)\n    test 46 reverse: LatLon(50°53′59.86″N, 001°47′35.8″E)\n    test 47 reverse: LatLon(50°53′59.86″N, 001°47′35.8″E)\n    test 48 reverse: LatLon(50°53′59.86″N, 001°47′35.8″E)\n    test 49 EquidistantExact(51.4934, 0.0098, name='Greenwich'): 51.4934 0.0098\n    test 50 forward: 170617.186469, -293210.754313, 48.833333, 2.333333, 151.589952, 0.999529\n    test 51 reverse: 170617.186469, -293210.754313, 48.833333, 2.333333, 151.589952, 0.999529\n    test 52 iteration: None\n    test 53 hypot: 339238.516  FAILED, KNOWN, expected 338901.865\n    test 54 antipodal: (170617.186469, -293210.754313, -48.833333, -177.666667, 0.0, 0.999529, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n\n    test 55 GnomonicExact(48.833333, 2.333333, name='Paris'): 48.833333 2.333333\n    test 56 forward: -37543.665895, 230103.189403, 50.9, 1.8, 350.325442, 0.999333\n    test 57 reverse: -37543.665895, 230103.189403, 50.9, 1.8, 350.325442, 0.999333\n    test 58 iteration: 3\n    test 59 copy(<type 'type'>): (<class 'pygeodesy.azimuthal.GnomonicExact'>, True)\n    test 60 GnomonicExact.copy(): (<class 'pygeodesy.azimuthal.GnomonicExact'>, True)\n    test 61 reverse: -38000.0, 230000.0, 50.899044, 1.793528, 350.205718, 0.999333\n    test 62 forward: -37999.995965, 229999.975581, 50.899044, 1.793528, 350.205718, 0.999334\n    test 63 reverse: LatLon(50°53′56.56″N, 001°47′36.7″E)\n    test 64 reverse: LatLon(50°53′56.56″N, 001°47′36.7″E)\n    test 65 reverse: LatLon(50°53′56.56″N, 001°47′36.7″E)\n    test 66 reverse: LatLon(50°53′56.56″N, 001°47′36.7″E)\n    test 67 GnomonicExact(51.4934, 0.0098, name='Greenwich'): 51.4934 0.0098\n    test 68 forward: 170778.089295, -293487.270649, 48.833333, 2.333333, 151.589952, 0.998587\n    test 69 reverse: 170778.089295, -293487.270649, 48.833333, 2.333334, 151.589953, 0.998588\n    test 70 iteration: 3\n    test 71 hypot: 339558.439  FAILED, KNOWN, expected 338901.963\n    test 72 antipodal: (170778.089295, -293487.270649, -48.833333, -177.666666, 0.0, 0.998588, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n\n    test 73 EquidistantGeodSolve(48.833333, 2.333333, name='Paris'): 48.833333 2.333333\n    test 74 forward: -37526.978232, 230000.911579, 50.9, 1.8, 350.325442, 0.999778\n    test 75 reverse: -37526.978232, 230000.911579, 50.9, 1.8, 350.325442, 0.999778\n    test 76 iteration: None\n    test 77 copy(<type 'type'>): (<class 'pygeodesy.azimuthal.EquidistantGeodSolve'>, True)\n    test 78 EquidistantGeodSolve.copy(): (<class 'pygeodesy.azimuthal.EquidistantGeodSolve'>, True)\n    test 79 reverse: -38000.0, 230000.0, 50.899962, 1.793278, 350.205524, 0.999778\n    test 80 forward: -38000.0, 230000.0, 50.899962, 1.793278, 350.205524, 0.999778\n    test 81 reverse: LatLon(50°53′59.86″N, 001°47′35.8″E)\n    test 82 reverse: LatLon(50°53′59.86″N, 001°47′35.8″E)\n    test 83 reverse: LatLon(50°53′59.86″N, 001°47′35.8″E)\n    test 84 reverse: LatLon(50°53′59.86″N, 001°47′35.8″E)\n    test 85 EquidistantGeodSolve(51.4934, 0.0098, name='Greenwich'): 51.4934 0.0098\n    test 86 forward: 170617.186469, -293210.754313, 48.833333, 2.333333, 151.589952, 0.999529\n    test 87 reverse: 170617.186469, -293210.754313, 48.833333, 2.333333, 151.589952, 0.999529\n    test 88 iteration: None\n    test 89 hypot: 339238.516  FAILED, KNOWN, expected 338901.865\n    test 90 antipodal: (170617.186469, -293210.754313, -48.833333, -177.666667, 0.0, 0.999529, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n\n    test 91 GnomonicGeodSolve(48.833333, 2.333333, name='Paris'): 48.833333 2.333333\n    test 92 forward: -37543.665895, 230103.189403, 50.9, 1.8, 350.325442, 0.999333\n    test 93 reverse: -37543.665895, 230103.189403, 50.9, 1.8, 350.325442, 0.999333\n    test 94 iteration: 3\n    test 95 copy(<type 'type'>): (<class 'pygeodesy.azimuthal.GnomonicGeodSolve'>, True)\n    test 96 GnomonicGeodSolve.copy(): (<class 'pygeodesy.azimuthal.GnomonicGeodSolve'>, True)\n    test 97 reverse: -38000.0, 230000.0, 50.899044, 1.793528, 350.205718, 0.999333\n    test 98 forward: -37999.995965, 229999.975581, 50.899044, 1.793528, 350.205718, 0.999334\n    test 99 reverse: LatLon(50°53′56.56″N, 001°47′36.7″E)\n    test 100 reverse: LatLon(50°53′56.56″N, 001°47′36.7″E)\n    test 101 reverse: LatLon(50°53′56.56″N, 001°47′36.7″E)\n    test 102 reverse: LatLon(50°53′56.56″N, 001°47′36.7″E)\n    test 103 GnomonicGeodSolve(51.4934, 0.0098, name='Greenwich'): 51.4934 0.0098\n    test 104 forward: 170778.089295, -293487.270649, 48.833333, 2.333333, 151.589952, 0.998587\n    test 105 reverse: 170778.089295, -293487.270649, 48.833333, 2.333334, 151.589953, 0.998588\n    test 106 iteration: 3\n    test 107 hypot: 339558.439  FAILED, KNOWN, expected 338901.963\n    test 108 antipodal: (170778.089295, -293487.270649, -48.833333, -177.666666, 0.0, 0.998588, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n\n    test 109 EquidistantKarney(48.833333, 2.333333, name='Paris'): 48.833333 2.333333\n    test 110 forward: -37526.978232, 230000.911579, 50.9, 1.8, 350.325442, 0.999778\n    test 111 reverse: -37526.978232, 230000.911579, 50.9, 1.8, 350.325442, 0.999778\n    test 112 iteration: None\n    test 113 copy(<type 'type'>): (<class 'pygeodesy.azimuthal.EquidistantKarney'>, True)\n    test 114 EquidistantKarney.copy(): (<class 'pygeodesy.azimuthal.EquidistantKarney'>, True)\n    test 115 reverse: -38000.0, 230000.0, 50.899962, 1.793278, 350.205524, 0.999778\n    test 116 forward: -38000.0, 230000.0, 50.899962, 1.793278, 350.205524, 0.999778\n    test 117 reverse: LatLon(50°53′59.86″N, 001°47′35.8″E)\n    test 118 reverse: LatLon(50°53′59.86″N, 001°47′35.8″E)\n    test 119 reverse: LatLon(50°53′59.86″N, 001°47′35.8″E)\n    test 120 reverse: LatLon(50°53′59.86″N, 001°47′35.8″E)\n    test 121 EquidistantKarney(51.4934, 0.0098, name='Greenwich'): 51.4934 0.0098\n    test 122 forward: 170617.186469, -293210.754313, 48.833333, 2.333333, 151.589952, 0.999529\n    test 123 reverse: 170617.186469, -293210.754313, 48.833333, 2.333333, 151.589952, 0.999529\n    test 124 iteration: None\n    test 125 hypot: 339238.516  FAILED, KNOWN, expected 338901.865\n    test 126 antipodal: (170617.186469, -293210.754313, -48.833333, -177.666667, 0.0, 0.999529, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n\n    test 127 GnomonicKarney(48.833333, 2.333333, name='Paris'): 48.833333 2.333333\n    test 128 forward: -37543.665895, 230103.189403, 50.9, 1.8, 350.325442, 0.999333\n    test 129 reverse: -37543.665895, 230103.189403, 50.9, 1.8, 350.325442, 0.999333\n    test 130 iteration: 3\n    test 131 copy(<type 'type'>): (<class 'pygeodesy.azimuthal.GnomonicKarney'>, True)\n    test 132 GnomonicKarney.copy(): (<class 'pygeodesy.azimuthal.GnomonicKarney'>, True)\n    test 133 reverse: -38000.0, 230000.0, 50.899044, 1.793528, 350.205718, 0.999333\n    test 134 forward: -37999.995965, 229999.975581, 50.899044, 1.793528, 350.205718, 0.999334\n    test 135 reverse: LatLon(50°53′56.56″N, 001°47′36.7″E)\n    test 136 reverse: LatLon(50°53′56.56″N, 001°47′36.7″E)\n    test 137 reverse: LatLon(50°53′56.56″N, 001°47′36.7″E)\n    test 138 reverse: LatLon(50°53′56.56″N, 001°47′36.7″E)\n    test 139 GnomonicKarney(51.4934, 0.0098, name='Greenwich'): 51.4934 0.0098\n    test 140 forward: 170778.089295, -293487.270649, 48.833333, 2.333333, 151.589952, 0.998587\n    test 141 reverse: 170778.089295, -293487.270649, 48.833333, 2.333334, 151.589953, 0.998588\n    test 142 iteration: 3\n    test 143 hypot: 339558.439  FAILED, KNOWN, expected 338901.963\n    test 144 antipodal: (170778.089295, -293487.270649, -48.833333, -177.666666, 0.0, 0.998588, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n\n    test 145 pygeodesy.ellipsoidalExact: 20.837802°N, 037.265561°E Random +/- 45\n    test 146 pygeodesy.ellipsoidalExact: 20.731625°N, 037.239134°E, 47.241037°N, 090.706953°W  d 12073 meter  Spherical\n    test 147 pygeodesy.ellipsoidalExact: 20.837802°N, 037.265561°E, 47.570386°N, 090.710621°W  d 2.87998e-09 meter  EquidistantExact\n    test 148 pygeodesy.ellipsoidalExact: 20.782926°N, 037.386689°E, 47.157338°N, 090.535988°W  d 13996.9 meter  Equidistant\n    test 149 pygeodesy.ellipsoidalExact: 00.054876°N, 000.121128°W  00.263%, 000.325% of Random\n    test 150 pygeodesy.ellipsoidalExact: 20.178788°N, 037.863183°E, 25.430614°N, 029.712824°E  d 95962.9 meter  Spherical\n    test 151 pygeodesy.ellipsoidalExact: 20.837802°N, 037.265561°E, 25.165736°N, 030.636290°E  d 2.24923e-08 meter  EquidistantExact\n    test 152 pygeodesy.ellipsoidalExact: 20.476289°N, 037.616298°E, 25.350745°N, 029.993058°E  d 54200.8 meter  Equidistant\n    test 153 pygeodesy.ellipsoidalExact: 00.361512°N, 000.350737°W  01.735%, 000.941% of Random\n    test 154 pygeodesy.ellipsoidalExact: 20.709830°N, 037.325305°E, 23.986765°S, 006.357154°E  d 15473.9 meter  Spherical\n    test 155 pygeodesy.ellipsoidalExact: 20.837802°N, 037.265561°E, 24.154986°S, 006.451641°E  d 1.82053e-08 meter  EquidistantExact\n    test 156 pygeodesy.ellipsoidalExact: 20.649633°N, 037.393582°E, 24.020776°S, 006.424760°E  d 24734.1 meter  Equidistant\n    test 157 pygeodesy.ellipsoidalExact: 00.188169°N, 000.128021°W  00.903%, 000.344% of Random\n    test 158 pygeodesy.ellipsoidalExact: 20.711361°N, 037.299061°E, 05.817097°S, 011.555753°E  d 14426.8 meter  Spherical\n    test 159 pygeodesy.ellipsoidalExact: 20.837802°N, 037.265561°E, 05.951600°S, 011.594991°E  d 2.9582e-09 meter  EquidistantExact\n    test 160 pygeodesy.ellipsoidalExact: 20.741251°N, 037.340858°E, 05.878220°S, 011.509974°E  d 13256.2 meter  Equidistant\n    test 161 pygeodesy.ellipsoidalExact: 00.096551°N, 000.075297°W  00.463%, 000.202% of Random\n    test 162 pygeodesy.ellipsoidalExact: 20.575926°N, 037.192481°E, 24.714874°S, 101.748846°E  d 29975.9 meter  Spherical\n    test 163 pygeodesy.ellipsoidalExact: 20.837802°N, 037.265561°E, 24.833538°S, 101.692379°E  d 1.99959e-08 meter  EquidistantExact\n    test 164 pygeodesy.ellipsoidalExact: 20.655364°N, 037.264116°E, 24.641480°S, 101.782492°E  d 20198.9 meter  Equidistant\n    test 165 pygeodesy.ellipsoidalExact: 00.182438°N, 000.001445°E  00.876%, 000.004% of Random\n    test 166 pygeodesy.ellipsoidalExact: 20.580088°N, 037.318129°E, 24.532151°N, 030.587744°W  d 29053.1 meter  Spherical\n    test 167 pygeodesy.ellipsoidalExact: 20.837802°N, 037.265561°E, 24.827619°N, 030.502704°W  d 3.14206e-09 meter  EquidistantExact\n    test 168 pygeodesy.ellipsoidalExact: 20.657872°N, 037.365880°E, 24.595305°N, 030.618001°W  d 22494.2 meter  Equidistant\n    test 169 pygeodesy.ellipsoidalExact: 00.179930°N, 000.100319°W  00.863%, 000.269% of Random\n    test 170 pygeodesy.ellipsoidalExact: 20.563907°N, 037.369395°E, 35.558645°N, 066.016542°W  d 32195.3 meter  Spherical\n    test 171 pygeodesy.ellipsoidalExact: 20.837802°N, 037.265561°E, 35.944754°N, 065.829690°W  d 3.32098e-09 meter  EquidistantExact\n    test 172 pygeodesy.ellipsoidalExact: 20.685070°N, 037.419860°E, 35.556493°N, 066.016170°W  d 23326.1 meter  Equidistant\n    test 173 pygeodesy.ellipsoidalExact: 00.152732°N, 000.154299°W  00.733%, 000.414% of Random\n    test 174 pygeodesy.ellipsoidalExact: 20.653766°N, 037.295820°E, 49.956972°N, 009.743883°W  d 20617.5 meter  Spherical\n    test 175 pygeodesy.ellipsoidalExact: 20.837802°N, 037.265561°E, 50.163866°N, 009.239277°W  d 8.17969e-09 meter  EquidistantExact\n    test 176 pygeodesy.ellipsoidalExact: 20.778102°N, 037.357245°E, 49.843129°N, 009.925447°W  d 11609.8 meter  Equidistant\n    test 177 pygeodesy.ellipsoidalExact: 00.059700°N, 000.091684°W  00.286%, 000.246% of Random\n    test 178 pygeodesy.ellipsoidalExact: 20.669139°N, 037.346294°E, 25.229903°N, 036.730998°E  d 20478.8 meter  Spherical\n    test 179 pygeodesy.ellipsoidalExact: 20.837802°N, 037.265561°E, 25.068982°N, 036.706044°E  d 1.09686e-08 meter  EquidistantExact\n    test 180 pygeodesy.ellipsoidalExact: 20.355166°N, 037.510605°E, 25.474475°N, 036.786569°E  d 59225.7 meter  Equidistant\n    test 181 pygeodesy.ellipsoidalExact: 00.482636°N, 000.245043°W  02.316%, 000.658% of Random\n    test 182 pygeodesy.ellipsoidalExact: 20.651840°N, 037.302123°E, 07.288325°N, 033.384623°E  d 20937.7 meter  Spherical\n    test 183 pygeodesy.ellipsoidalExact: 20.837802°N, 037.265561°E, 07.108581°N, 033.280790°E  d 2.8365e-08 meter  EquidistantExact\n    test 184 pygeodesy.ellipsoidalExact: 20.486897°N, 037.336334°E, 07.474387°N, 033.557659°E  d 39543.3 meter  Equidistant\n    test 185 pygeodesy.ellipsoidalExact: 00.350904°N, 000.070773°W  01.684%, 000.190% of Random\n    test 186 pygeodesy.ellipsoidalExact: 20.563067°N, 037.338802°E, 36.599711°S, 073.027235°W  d 31359.2 meter  Spherical\n    test 187 pygeodesy.ellipsoidalExact: 20.837802°N, 037.265561°E, 36.849146°S, 072.969640°W  d 1.91377e-09 meter  EquidistantExact\n    test 188 pygeodesy.ellipsoidalExact: 20.610465°N, 037.435977°E, 36.598020°S, 073.014794°W  d 30799 meter  Equidistant\n    test 189 pygeodesy.ellipsoidalExact: 00.227337°N, 000.170416°W  01.091%, 000.457% of Random\n    test 190 pygeodesy.ellipsoidalExact: 20.537724°N, 037.383819°E, 11.911851°N, 075.711324°W  d 35433.5 meter  Spherical\n    test 191 pygeodesy.ellipsoidalExact: 20.837802°N, 037.265561°E, 12.125687°N, 075.616731°W  d 1.31117e-08 meter  EquidistantExact\n    test 192 pygeodesy.ellipsoidalExact: 20.617723°N, 037.447504°E, 12.013413°N, 075.806826°W  d 30867.7 meter  Equidistant\n    test 193 pygeodesy.ellipsoidalExact: 00.220078°N, 000.181943°W  01.056%, 000.488% of Random\n    test 194 pygeodesy.ellipsoidalExact: 00.482636°N, 000.350737°E  02.316%, 000.941% of Random, max\n\n    test 195 pygeodesy.ellipsoidalVincenty: 41.186078°N, 034.518810°E Random +/- 45\n    test 196 pygeodesy.ellipsoidalVincenty: 41.216002°N, 034.466444°E, 36.757969°N, 036.250386°E  d 5507.89 meter  Spherical\n    test 197 pygeodesy.ellipsoidalVincenty: 41.186078°N, 034.518810°E, 36.788859°N, 036.252161°E  d 3.31579e-05 meter  EquidistantExact\n    test 198 pygeodesy.ellipsoidalVincenty: 41.261815°N, 034.378326°E, 36.740313°N, 036.242240°E  d 14474.3 meter  Equidistant\n    test 199 pygeodesy.ellipsoidalVincenty: 00.075738°S, 000.140484°E  00.184%, 000.407% of Random\n    test 200 pygeodesy.ellipsoidalVincenty: 40.851194°N, 034.534088°E, 50.241748°S, 131.016402°W  d 37212.5 meter  Spherical\n    test 201 pygeodesy.ellipsoidalVincenty: 41.186078°N, 034.518810°E, 50.477317°S, 130.978321°W  d 1.92212e-06 meter  EquidistantExact\n    test 202 pygeodesy.ellipsoidalVincenty: 40.798654°N, 034.533581°E, 50.386452°S, 130.973130°W  d 43042.9 meter  Equidistant\n    test 203 pygeodesy.ellipsoidalVincenty: 00.387424°N, 000.014771°W  00.941%, 000.043% of Random\n    test 204 pygeodesy.ellipsoidalVincenty: 41.074804°N, 034.598238°E, 21.089845°S, 024.140244°E  d 14042.6 meter  Spherical\n    test 205 pygeodesy.ellipsoidalVincenty: 41.186078°N, 034.518810°E, 21.224760°S, 024.109286°E  d 2.6498e-05 meter  EquidistantExact\n    test 206 pygeodesy.ellipsoidalVincenty: 41.048538°N, 034.546214°E, 21.170019°S, 024.203830°E  d 15447.1 meter  Equidistant\n    test 207 pygeodesy.ellipsoidalVincenty: 00.137540°N, 000.027405°W  00.334%, 000.079% of Random\n    test 208 pygeodesy.ellipsoidalVincenty: 41.032073°N, 034.369399°E, 19.422826°S, 067.358116°E  d 21213.6 meter  Spherical\n    test 209 pygeodesy.ellipsoidalVincenty: 41.186078°N, 034.518810°E, 19.600494°S, 067.286307°E  d 4.14007e-06 meter  EquidistantExact\n    test 210 pygeodesy.ellipsoidalVincenty: 41.006716°N, 034.332358°E, 19.395639°S, 067.447246°E  d 25340.6 meter  Equidistant\n    test 211 pygeodesy.ellipsoidalVincenty: 00.179362°N, 000.186452°E  00.435%, 000.540% of Random\n    test 212 pygeodesy.ellipsoidalVincenty: 40.945458°N, 034.537613°E, 58.224252°S, 061.713015°E  d 26768.7 meter  Spherical\n    test 213 pygeodesy.ellipsoidalVincenty: 41.186078°N, 034.518810°E, 58.347421°S, 061.621933°E  d 1.06278e-05 meter  EquidistantExact\n    test 214 pygeodesy.ellipsoidalVincenty: 40.924263°N, 034.481009°E, 58.252605°S, 061.344166°E  d 29248.9 meter  Equidistant\n    test 215 pygeodesy.ellipsoidalVincenty: 00.261815°N, 000.037800°E  00.636%, 000.110% of Random\n    test 216 pygeodesy.ellipsoidalVincenty: 40.897988°N, 039.011844°E, 40.464581°N, 028.238987°E  d 379091 meter  Spherical\n    test 217 pygeodesy.ellipsoidalVincenty: 41.186078°N, 034.518810°E, 41.110091°N, 032.648742°E  d 0.000119591 meter  EquidistantExact\n    test 218 pygeodesy.ellipsoidalVincenty: 40.839819°N, 039.393167°E, 40.383760°N, 027.900519°E  d 411769 meter  Equidistant\n    test 219 pygeodesy.ellipsoidalVincenty: 00.346258°N, 004.874358°W  00.841%, 014.121% of Random\n    test 220 pygeodesy.ellipsoidalVincenty: 40.870493°N, 034.662375°E, 20.549400°S, 050.731096°W  d 37068.5 meter  Spherical\n    test 221 pygeodesy.ellipsoidalVincenty: 41.186078°N, 034.518810°E, 20.738461°S, 050.709252°W  d 2.02833e-05 meter  EquidistantExact\n    test 222 pygeodesy.ellipsoidalVincenty: 40.818186°N, 034.634875°E, 20.527794°S, 050.866478°W  d 42006.6 meter  Equidistant\n    test 223 pygeodesy.ellipsoidalVincenty: 00.367892°N, 000.116065°W  00.893%, 000.336% of Random\n    test 224 pygeodesy.ellipsoidalVincenty: 41.093896°N, 034.232689°E, 37.091356°N, 041.500904°E  d 26112.3 meter  Spherical\n    test 225 pygeodesy.ellipsoidalVincenty: 41.186078°N, 034.518810°E, 37.299306°N, 041.502155°E  d 3.9551e-06 meter  EquidistantExact\n    test 226 pygeodesy.ellipsoidalVincenty: 41.073515°N, 034.180923°E, 37.078362°N, 041.498623°E  d 31004.2 meter  Equidistant\n    test 227 pygeodesy.ellipsoidalVincenty: 00.112563°N, 000.337887°E  00.273%, 000.979% of Random\n    test 228 pygeodesy.ellipsoidalVincenty: 40.781100°N, 034.669980°E, 52.089480°N, 061.225269°W  d 46738.9 meter  Spherical\n    test 229 pygeodesy.ellipsoidalVincenty: 41.186078°N, 034.518810°E, 52.535730°N, 060.874484°W  d 3.27139e-05 meter  EquidistantExact\n    test 230 pygeodesy.ellipsoidalVincenty: 40.727656°N, 034.642283°E, 51.911337°N, 061.190728°W  d 51959.6 meter  Equidistant\n    test 231 pygeodesy.ellipsoidalVincenty: 00.458422°N, 000.123473°W  01.113%, 000.358% of Random\n    test 232 pygeodesy.ellipsoidalVincenty: 41.264357°N, 034.318737°E, 33.708712°N, 039.965866°E  d 18894.5 meter  Spherical\n    test 233 pygeodesy.ellipsoidalVincenty: 41.186078°N, 034.518810°E, 33.842045°N, 039.937641°E  d 1.60142e-05 meter  EquidistantExact\n    test 234 pygeodesy.ellipsoidalVincenty: 41.296883°N, 034.225283°E, 33.729060°N, 039.967302°E  d 27511.2 meter  Equidistant\n    test 235 pygeodesy.ellipsoidalVincenty: 00.110805°S, 000.293526°E  00.269%, 000.850% of Random\n    test 236 pygeodesy.ellipsoidalVincenty: 40.981210°N, 034.381310°E, 21.581340°S, 084.205539°E  d 25517.2 meter  Spherical\n    test 237 pygeodesy.ellipsoidalVincenty: 41.186078°N, 034.518810°E, 21.747177°S, 084.134687°E  d 6.24253e-06 meter  EquidistantExact\n    test 238 pygeodesy.ellipsoidalVincenty: 40.944802°N, 034.323160°E, 21.498714°S, 084.299938°E  d 31438.7 meter  Equidistant\n    test 239 pygeodesy.ellipsoidalVincenty: 00.241275°N, 000.195650°E  00.586%, 000.567% of Random\n    test 240 pygeodesy.ellipsoidalVincenty: 41.004915°N, 034.623936°E, 06.517706°N, 020.398169°E  d 21972.4 meter  Spherical\n    test 241 pygeodesy.ellipsoidalVincenty: 41.186078°N, 034.518810°E, 06.309051°N, 020.241933°E  d 5.18385e-05 meter  EquidistantExact\n    test 242 pygeodesy.ellipsoidalVincenty: 41.055640°N, 034.588070°E, 06.583593°N, 020.579717°E  d 15610.1 meter  Equidistant\n    test 243 pygeodesy.ellipsoidalVincenty: 00.130438°N, 000.069260°W  00.317%, 000.201% of Random\n    test 244 pygeodesy.ellipsoidalVincenty: 00.458422°N, 004.874358°E  01.113%, 014.121% of Random, max\n\n    test 245 Equidistant(10, 80): 1.37704, 0.24656\n    test 246 Equidistant(10, 80): 10.0, 80.0\n    test 247 Gnomonic(10, 80): 5.67128, 1.01543\n    test 248 Gnomonic(10, 80): 10.0, 80.0\n    test 249 LambertEqualArea(10, 80): 1.26747, 0.22694\n    test 250 LambertEqualArea(10, 80): 10.0, 80.0\n    test 251 Orthographic(10, 80): 0.96985, 0.17365\n    test 252 Orthographic(10, 80): 10.0, 80.0\n    test 253 Stereographic(10, 80): 1.65643, 0.29658\n    test 254 Stereographic(10, 80): 10.0, 80.0\n    test 255 Equidistant(20, 20): 0.33454, 0.35601\n    test 256 Equidistant(20, 20): 20.0, 20.0\n    test 257 Gnomonic(20, 20): 0.36397, 0.38733\n    test 258 Gnomonic(20, 20): 20.0, 20.0\n    test 259 LambertEqualArea(20, 20): 0.33123, 0.35248\n    test 260 LambertEqualArea(20, 20): 20.0, 20.0\n    test 261 Orthographic(20, 20): 0.32139, 0.34202\n    test 262 Orthographic(20, 20): 20.0, 20.0\n    test 263 Stereographic(20, 20): 0.34136, 0.36327\n    test 264 Stereographic(20, 20): 20.0, 20.0\n    test 265 Equidistant(40, 40): 0.57386, 0.74912\n    test 266 Equidistant(40, 40): 40.0, 40.0\n    test 267 Gnomonic(40, 40): 0.8391, 1.09537\n    test 268 Gnomonic(40, 40): 40.0, 40.0\n    test 269 LambertEqualArea(40, 40): 0.55281, 0.72164\n    test 270 LambertEqualArea(40, 40): 40.0, 40.0\n    test 271 Orthographic(40, 40): 0.4924, 0.64279\n    test 272 Orthographic(40, 40): 40.0, 40.0\n    test 273 Stereographic(40, 40): 0.62062, 0.81016\n    test 274 Stereographic(40, 40): 40.0, 40.0\n    test 275 Equidistant(60, 60): 0.58948, 1.17896\n    test 276 Equidistant(60, 60): 60.0, 60.0\n    test 277 Gnomonic(60, 60): 1.73205, 3.4641\n    test 278 Gnomonic(60, 60): 60.0, 60.0\n    test 279 LambertEqualArea(60, 60): 0.54772, 1.09545\n    test 280 LambertEqualArea(60, 60): 60.0, 60.0\n    test 281 Orthographic(60, 60): 0.43301, 0.86603\n    test 282 Orthographic(60, 60): 60.0, 60.0\n    test 283 Stereographic(60, 60): 0.69282, 1.38564\n    test 284 Stereographic(60, 60): 60.0, 60.0\n    test 285 Equidistant(70, 80): 0.50997, 1.42273\n    test 286 Equidistant(70, 80): 70.0, 80.0\n    test 287 Gnomonic(70, 80): 5.67128, 15.82209\n    test 288 Gnomonic(70, 80): 70.0, 80.0\n    test 289 LambertEqualArea(70, 80): 0.4628, 1.29114\n    test 290 LambertEqualArea(70, 80): 70.0, 80.0\n    test 291 Orthographic(70, 80): 0.33682, 0.93969\n    test 292 Orthographic(70, 80): 70.0, 80.0\n    test 293 Stereographic(70, 80): 0.63588, 1.77402\n    test 294 Stereographic(70, 80): 70.0, 80.0\n    test 295 Equidistant(80, 80): 0.26358, 1.51792\n    test 296 Equidistant(80, 80): 80.0, 80.0\n    test 297 Gnomonic(80, 80): 5.67128, 32.65961\n    test 298 Gnomonic(80, 80): 80.0, 80.0\n    test 299 LambertEqualArea(80, 80): 0.23828, 1.37219\n    test 300 LambertEqualArea(80, 80): 80.0, 80.0\n    test 301 Orthographic(80, 80): 0.17101, 0.98481\n    test 302 Orthographic(80, 80): 80.0, 80.0\n    test 303 Stereographic(80, 80): 0.33201, 1.91196\n    test 304 Stereographic(80, 80): 80.0, 80.0\n    test 305 Equidistant(80, 10): 0.04281, 1.39829\n    test 306 Equidistant(80, 10): 80.0, 10.0\n    test 307 Gnomonic(80, 10): 0.17633, 5.75877\n    test 308 Gnomonic(80, 10): 80.0, 10.0\n    test 309 LambertEqualArea(80, 10): 0.03941, 1.28702\n    test 310 LambertEqualArea(80, 10): 80.0, 10.0\n    test 311 Orthographic(80, 10): 0.03015, 0.98481\n    test 312 Orthographic(80, 10): 80.0, 10.0\n    test 313 Stereographic(80, 10): 0.0515, 1.68198\n    test 314 Stereographic(80, 10): 80.0, 10.0\n\n    test 315 function: equidistant\n    test 316 equatoradius: 1.0\n    test 317 flattening: 0.0\n    test 318 iteration: None\n    test 319 latlon0: (0.0, 0.0)\n    test 320 latlon0: (1.0, 2.0)\n    test 321 name: coverage\n    test 322 radius: 1.0\n\n    test 323 function: gnomonic\n    test 324 equatoradius: 1.0\n    test 325 flattening: 0.0\n    test 326 iteration: None\n    test 327 latlon0: (0.0, 0.0)\n    test 328 latlon0: (1.0, 2.0)\n    test 329 name: coverage\n    test 330 radius: 1.0\n    test 331 NANing: (NAN, NAN, 0.0, 0.0, 0.0, 1.0, None)\n\n    14 of 331 testAzimuthal.py tests (4.2%) FAILED, incl. 8 KNOWN plus 6 DeprecationWarnings (pygeodesy 26.3.26 Python 2.7.18 64bit arm64_x86_64 geographiclib 1.50 numpy 1.16.6 scipy 1.2.2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 -W  default) 43.919 sec\nrunning /Library/Framewo....ython -W default ~/PyGeodesy/test/testBasics.py\n\n    testing testBasics.py 24.09.29 (module pygeodesy.basics 26.02.22)\n    test 1 clips: test/t....ics.py\n    test 2 halfs2: ('test/test', 'Basics.py')\n\n    test 3 isfinite(0): True\n    test 4 isint(0): True\n    test 5 isint(0+0.5): False\n    test 6 isninf(0): False\n    test 7 isscalar(0): True\n\n    test 8 isfinite(0.0): True\n    test 9 isint(0.0): True\n    test 10 isint(0.0+0.5): False\n    test 11 isninf(0.0): False\n    test 12 isscalar(0.0): True\n\n    test 13 isfinite(1): True\n    test 14 isint(1): True\n    test 15 isint(1+0.5): False\n    test 16 isninf(1): False\n    test 17 isscalar(1): True\n\n    test 18 isfinite(1.0): True\n    test 19 isint(1.0): True\n    test 20 isint(1.0+0.5): False\n    test 21 isninf(1.0): False\n    test 22 isscalar(1.0): True\n\n    test 23 isfinite(1e+300): True\n    test 24 isint(1e+300): True\n    test 25 isint(1e+300+0.5): True\n    test 26 isninf(1e+300): False\n    test 27 isscalar(1e+300): True\n\n    test 28 isfinite(-1e+300): True\n    test 29 isint(-1e+300): True\n    test 30 isint(-1e+300+0.5): True\n    test 31 isninf(-1e+300): False\n    test 32 isscalar(-1e+300): True\n\n    test 33 isfinite(inf): False\n    test 34 isint(inf): False\n    test 35 isint(inf+0.5): False\n    test 36 isninf(inf): False\n    test 37 isscalar(inf): True\n\n    test 38 isfinite(inf): False\n    test 39 isint(inf): False\n    test 40 isint(inf+0.5): False\n    test 41 isninf(inf): False\n    test 42 isscalar(inf): True\n\n    test 43 isfinite(nan): False\n    test 44 isint(nan): False\n    test 45 isint(nan+0.5): False\n    test 46 isninf(nan): False\n    test 47 isscalar(nan): True\n\n    test 48 isfinite(-0.0): True\n    test 49 isint(-0.0): True\n    test 50 isint(-0.0+0.5): False\n    test 51 isninf(-0.0): False\n    test 52 isscalar(-0.0): True\n\n    test 53 isfinite(-inf): False\n    test 54 isint(-inf): False\n    test 55 isint(-inf+0.5): False\n    test 56 isninf(-inf): True\n    test 57 isscalar(-inf): True\n\n    test 58 isfinite(complex): True\n    test 59 isfinite(complex): False\n\n    test 60 isint0(INT0): True\n    test 61 isint0(False): False\n    test 62 isint0(None): False\n    test 63 isint0(0): True\n    test 64 isint0(0.): False\n    test 65 isint0(0.0): True\n\n    test 66 isneg0(NEG0): True\n    test 67 isneg0(0.0): False\n    test 68 isneg0(INF): False\n    test 69 isneg0(NAN): False\n\n    test 70 type(C.r_o): property_RO\n    test 71 type(c.r_o): <type 'bool'>\n    test 72 c.r_o: True\n    test 73 c.r_o = False: immutable property_RO: C.r_o = False\n    test 74 c.a, c.b: (None, None)\n    test 75 d.a, d.b: (True, False)\n    test 76 c.a, c.b: (None, None)\n    test 77 splice: ([0, 2, 4, 6, 8], [1, 3, 5, 7, 9])\n    test 78 splice: ([0, 3, 6, 9], [1, 4, 7], [2, 5, 8])\n    test 79 splice: ([0, 3, 6, 9], [1, 4, 7, -1], [2, 5, 8, -1])\n    test 80 splice: ([0, 5, 10], [1, 6, 11], [2, 7], [3, 8], [4, 9])\n\n    test 81 remainder(181, 360): -179.0\n    test 82 remainder(181, -360): -179.0\n    test 83 remainder(181, inf): 181.0\n    test 84 remainder(181, nan): nan\n    test 85 remainder(181, -inf): 181.0\n    test 86 remainder(-181, 360): 179.0\n    test 87 remainder(-181, -360): 179.0\n    test 88 remainder(-181, inf): -181.0\n    test 89 remainder(-181, nan): nan\n    test 90 remainder(-181, -inf): -181.0\n    test 91 remainder(179, 360): 179.0\n    test 92 remainder(179, -360): 179.0\n    test 93 remainder(179, inf): 179.0\n    test 94 remainder(179, nan): nan\n    test 95 remainder(179, -inf): 179.0\n    test 96 remainder(-179, 360): -179.0\n    test 97 remainder(-179, -360): -179.0\n    test 98 remainder(-179, inf): -179.0\n    test 99 remainder(-179, nan): nan\n    test 100 remainder(-179, -inf): -179.0\n    test 101 remainder(inf, 360): math domain error\n    test 102 remainder(inf, -360): math domain error\n    test 103 remainder(inf, inf): math domain error\n    test 104 remainder(inf, nan): nan\n    test 105 remainder(inf, -inf): math domain error\n    test 106 remainder(nan, 360): nan\n    test 107 remainder(nan, -360): nan\n    test 108 remainder(nan, inf): nan\n    test 109 remainder(nan, nan): nan\n    test 110 remainder(nan, -inf): nan\n    test 111 remainder(-inf, 360): math domain error\n    test 112 remainder(-inf, -360): math domain error\n    test 113 remainder(-inf, inf): math domain error\n    test 114 remainder(-inf, nan): nan\n    test 115 remainder(-inf, -inf): math domain error\n    test 116 isclose: True\n    test 117 isclose: False\n\n    test 118 isiterable(dict): True\n    test 119 isiterablen(dict): True\n    test 120 isiterable(list): True\n    test 121 isiterablen(list): True\n    test 122 isiterable(list): True\n    test 123 isiterablen(list): True\n    test 124 isiterable(list): True\n    test 125 isiterablen(list): True\n    test 126 isiterable(tuple): True\n    test 127 isiterablen(tuple): True\n    test 128 isiterable(set): True\n    test 129 isiterablen(set): False\n\n    all 129 testBasics.py tests passed (pygeodesy 26.3.26 Python 2.7.18 64bit arm64_x86_64 geographiclib 1.50 numpy 1.16.6 scipy 1.2.2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 -W  default) 735.044 us\nrunning /Library/Framewo....ython -W default ~/PyGeodesy/test/testBooleans.py\n./test/testBooleans.py:50: DeprecationWarning: function L{areaOf<pygeodesy.ellipsoidalVincenty.areaOf>} has been DEPRECATED, use function L{ellipsoidalExact.areaOf} or L{ellipsoidalKarney.areaOf}.\n  self.test(areaOf.__name__, areaOf(b) == areaOf(t), True)\n./pygeodesy/ellipsoidalKarney.py:139: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return fabs(_polygon(datum.ellipsoid.geodesic, points, True, False, wrap, polar))\n./test/testBooleans.py:53: DeprecationWarning: function L{perimeterOf<pygeodesy.ellipsoidalVincenty.perimeterOf>} has been DEPRECATED, use function L{ellipsoidalExact.perimeterOf} or L{ellipsoidalKarney.perimeterOf}.\n  self.test(periOf.__name__, periOf(b, closed=True) == periOf(t, closed=True), True)\n./pygeodesy/ellipsoidalKarney.py:347: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return _polygon(datum.ellipsoid.geodesic, points, closed, True, wrap, False)\n./test/testBooleans.py:82: DeprecationWarning: function L{areaOf<pygeodesy.ellipsoidalVincenty.areaOf>} has been DEPRECATED, use function L{ellipsoidalExact.areaOf} or L{ellipsoidalKarney.areaOf}.\n  self.test(areaOf.__name__, areaOf(b) == areaOf(t), True)\n./test/testBooleans.py:85: DeprecationWarning: function L{perimeterOf<pygeodesy.ellipsoidalVincenty.perimeterOf>} has been DEPRECATED, use function L{ellipsoidalExact.perimeterOf} or L{ellipsoidalKarney.perimeterOf}.\n  self.test(periOf.__name__, periOf(b, closed=True) == periOf(t, closed=True), True)\n\n    testing testBooleans.py 23.03.31\n\n    testing(pygeodesy.ellipsoidalExact, 25.08.28)\n    test 1 and: BooleanGH[4]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=7.0, lon=5.0, height=2.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=3.0, lon=5.0, height=2.0))\n    test 2 or: BooleanGH[6]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=0.0, lon=0.0, height=1.0), (lat=0.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=10.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0))\n    test 3 minus: BooleanGH[5]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=0.0, lon=0.0, height=1.0), (lat=0.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=3.0, lon=5.0, height=2.0))\n    test 4 rev_d: BooleanGH[5]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=10.0, lon=0.0, height=1.0), (lat=10.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=7.0, lon=5.0, height=2.0))\n    test 5 iand: BooleanGH[4]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=7.0, lon=5.0, height=2.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=3.0, lon=5.0, height=2.0))\n    test 6 ior: BooleanGH[6]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=0.0, lon=0.0, height=1.0), (lat=0.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=10.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0))\n    test 7 sum: BooleanGH[2][6]((lat=0.0, lon=0.0, height=1.0), (lat=7.0, lon=5.0, height=2.0), (lat=0.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0, clipid=1), (lat=3.0, lon=5.0, height=2.0, clipid=1), (lat=10.0, lon=10.0, height=3.0, clipid=1))\n\n    test 8 GH ==: True\n    test 9 equalTo: True\n    test 10 areaOf: True\n    test 11 enclosed: True\n    test 12 enclosed: False\n    test 13 perimeterOf: True\n\n    test 14 toLatLon[0:3]: (LatLon(00°00′00.0″N, 000°00′00.0″E, +1.00m), LatLon(07°00′00.0″N, 005°00′00.0″E, +2.00m), LatLon(00°00′00.0″N, 010°00′00.0″E, +3.00m))\n    test 15 toLatLon[-3:]: ((lat=10.0, lon=0.0, height=1.0, clipid=1), (lat=3.0, lon=5.0, height=2.0, clipid=1), (lat=10.0, lon=10.0, height=3.0, clipid=1))\n\n    test 16 and: BooleanFHP[4]((lat=7.0, lon=5.0, height=2.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=3.0, lon=5.0, height=2.0), (lat=5.0, lon=3.5714286, height=1.7142857))\n    test 17 or: BooleanFHP[6]((lat=0.0, lon=0.0, height=1.0), (lat=0.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=10.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0), (lat=5.0, lon=3.5714286, height=1.7142857))\n    test 18 iand: BooleanFHP[4]((lat=7.0, lon=5.0, height=2.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=3.0, lon=5.0, height=2.0), (lat=5.0, lon=3.5714286, height=1.7142857))\n    test 19 ior: BooleanFHP[6]((lat=0.0, lon=0.0, height=1.0), (lat=0.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=10.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0), (lat=5.0, lon=3.5714286, height=1.7142857))\n    test 20 sum: BooleanFHP[2][6]((lat=0.0, lon=0.0, height=1.0), (lat=7.0, lon=5.0, height=2.0), (lat=0.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0, clipid=1), (lat=3.0, lon=5.0, height=2.0, clipid=1), (lat=10.0, lon=10.0, height=3.0, clipid=1))\n\n    test 21 FHP ==: True\n    test 22 equalTo: True\n    test 23 areaOf: True\n    test 24 enclosed: True\n    test 25 enclosed: False\n    test 26 perimeterOf: True\n\n    test 27 toLatLon[0:3]: (LatLon(00°00′00.0″N, 000°00′00.0″E, +1.00m), LatLon(07°00′00.0″N, 005°00′00.0″E, +2.00m), LatLon(00°00′00.0″N, 010°00′00.0″E, +3.00m))\n    test 28 toLatLon[-3:]: ((lat=10.0, lon=0.0, height=1.0, clipid=1), (lat=3.0, lon=5.0, height=2.0, clipid=1), (lat=10.0, lon=10.0, height=3.0, clipid=1))\n\n    testing(pygeodesy.ellipsoidalVincenty, 25.05.26)\n    test 29 and: BooleanGH[4]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=7.0, lon=5.0, height=2.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=3.0, lon=5.0, height=2.0))\n    test 30 or: BooleanGH[6]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=0.0, lon=0.0, height=1.0), (lat=0.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=10.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0))\n    test 31 minus: BooleanGH[5]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=0.0, lon=0.0, height=1.0), (lat=0.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=3.0, lon=5.0, height=2.0))\n    test 32 rev_d: BooleanGH[5]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=10.0, lon=0.0, height=1.0), (lat=10.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=7.0, lon=5.0, height=2.0))\n    test 33 iand: BooleanGH[4]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=7.0, lon=5.0, height=2.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=3.0, lon=5.0, height=2.0))\n    test 34 ior: BooleanGH[6]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=0.0, lon=0.0, height=1.0), (lat=0.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=10.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0))\n    test 35 sum: BooleanGH[2][6]((lat=0.0, lon=0.0, height=1.0), (lat=7.0, lon=5.0, height=2.0), (lat=0.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0, clipid=1), (lat=3.0, lon=5.0, height=2.0, clipid=1), (lat=10.0, lon=10.0, height=3.0, clipid=1))\n\n    test 36 GH ==: True\n    test 37 equalTo: True\n    test 38 areaOf: True\n    test 39 enclosed: True\n    test 40 enclosed: False\n    test 41 perimeterOf: True\n\n    test 42 toLatLon[0:3]: (LatLon(00°00′00.0″N, 000°00′00.0″E, +1.00m), LatLon(07°00′00.0″N, 005°00′00.0″E, +2.00m), LatLon(00°00′00.0″N, 010°00′00.0″E, +3.00m))\n    test 43 toLatLon[-3:]: ((lat=10.0, lon=0.0, height=1.0, clipid=1), (lat=3.0, lon=5.0, height=2.0, clipid=1), (lat=10.0, lon=10.0, height=3.0, clipid=1))\n\n    test 44 and: BooleanFHP[4]((lat=7.0, lon=5.0, height=2.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=3.0, lon=5.0, height=2.0), (lat=5.0, lon=3.5714286, height=1.7142857))\n    test 45 or: BooleanFHP[6]((lat=0.0, lon=0.0, height=1.0), (lat=0.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=10.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0), (lat=5.0, lon=3.5714286, height=1.7142857))\n    test 46 iand: BooleanFHP[4]((lat=7.0, lon=5.0, height=2.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=3.0, lon=5.0, height=2.0), (lat=5.0, lon=3.5714286, height=1.7142857))\n    test 47 ior: BooleanFHP[6]((lat=0.0, lon=0.0, height=1.0), (lat=0.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=10.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0), (lat=5.0, lon=3.5714286, height=1.7142857))\n    test 48 sum: BooleanFHP[2][6]((lat=0.0, lon=0.0, height=1.0), (lat=7.0, lon=5.0, height=2.0), (lat=0.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0, clipid=1), (lat=3.0, lon=5.0, height=2.0, clipid=1), (lat=10.0, lon=10.0, height=3.0, clipid=1))\n\n    test 49 FHP ==: True\n    test 50 equalTo: True\n    test 51 areaOf: True\n    test 52 enclosed: True\n    test 53 enclosed: False\n    test 54 perimeterOf: True\n\n    test 55 toLatLon[0:3]: (LatLon(00°00′00.0″N, 000°00′00.0″E, +1.00m), LatLon(07°00′00.0″N, 005°00′00.0″E, +2.00m), LatLon(00°00′00.0″N, 010°00′00.0″E, +3.00m))\n    test 56 toLatLon[-3:]: ((lat=10.0, lon=0.0, height=1.0, clipid=1), (lat=3.0, lon=5.0, height=2.0, clipid=1), (lat=10.0, lon=10.0, height=3.0, clipid=1))\n\n    testing(pygeodesy.sphericalNvector, 25.05.27)\n    test 57 and: BooleanGH[4]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=7.0, lon=5.0, height=2.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=3.0, lon=5.0, height=2.0))\n    test 58 or: BooleanGH[6]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=0.0, lon=0.0, height=1.0), (lat=0.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=10.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0))\n    test 59 minus: BooleanGH[5]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=0.0, lon=0.0, height=1.0), (lat=0.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=3.0, lon=5.0, height=2.0))\n    test 60 rev_d: BooleanGH[5]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=10.0, lon=0.0, height=1.0), (lat=10.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=7.0, lon=5.0, height=2.0))\n    test 61 iand: BooleanGH[4]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=7.0, lon=5.0, height=2.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=3.0, lon=5.0, height=2.0))\n    test 62 ior: BooleanGH[6]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=0.0, lon=0.0, height=1.0), (lat=0.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=10.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0))\n    test 63 sum: BooleanGH[2][6]((lat=0.0, lon=0.0, height=1.0), (lat=7.0, lon=5.0, height=2.0), (lat=0.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0, clipid=1), (lat=3.0, lon=5.0, height=2.0, clipid=1), (lat=10.0, lon=10.0, height=3.0, clipid=1))\n\n    test 64 GH ==: True\n    test 65 equalTo: True\n    test 66 areaOf: True\n    test 67 enclosed: True\n    test 68 enclosed: False\n    test 69 perimeterOf: True\n\n    test 70 toLatLon[0:3]: (LatLon(00°00′00.0″N, 000°00′00.0″E, +1.00m), LatLon(07°00′00.0″N, 005°00′00.0″E, +2.00m), LatLon(00°00′00.0″N, 010°00′00.0″E, +3.00m))\n    test 71 toLatLon[-3:]: ((lat=10.0, lon=0.0, height=1.0, clipid=1), (lat=3.0, lon=5.0, height=2.0, clipid=1), (lat=10.0, lon=10.0, height=3.0, clipid=1))\n\n    test 72 and: BooleanFHP[4]((lat=7.0, lon=5.0, height=2.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=3.0, lon=5.0, height=2.0), (lat=5.0, lon=3.5714286, height=1.7142857))\n    test 73 or: BooleanFHP[6]((lat=0.0, lon=0.0, height=1.0), (lat=0.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=10.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0), (lat=5.0, lon=3.5714286, height=1.7142857))\n    test 74 iand: BooleanFHP[4]((lat=7.0, lon=5.0, height=2.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=3.0, lon=5.0, height=2.0), (lat=5.0, lon=3.5714286, height=1.7142857))\n    test 75 ior: BooleanFHP[6]((lat=0.0, lon=0.0, height=1.0), (lat=0.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=10.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0), (lat=5.0, lon=3.5714286, height=1.7142857))\n    test 76 sum: BooleanFHP[2][6]((lat=0.0, lon=0.0, height=1.0), (lat=7.0, lon=5.0, height=2.0), (lat=0.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0, clipid=1), (lat=3.0, lon=5.0, height=2.0, clipid=1), (lat=10.0, lon=10.0, height=3.0, clipid=1))\n\n    test 77 FHP ==: True\n    test 78 equalTo: True\n    test 79 areaOf: True\n    test 80 enclosed: True\n    test 81 enclosed: False\n    test 82 perimeterOf: True\n\n    test 83 toLatLon[0:3]: (LatLon(00°00′00.0″N, 000°00′00.0″E, +1.00m), LatLon(07°00′00.0″N, 005°00′00.0″E, +2.00m), LatLon(00°00′00.0″N, 010°00′00.0″E, +3.00m))\n    test 84 toLatLon[-3:]: ((lat=10.0, lon=0.0, height=1.0, clipid=1), (lat=3.0, lon=5.0, height=2.0, clipid=1), (lat=10.0, lon=10.0, height=3.0, clipid=1))\n\n    testing(pygeodesy.sphericalTrigonometry, 25.08.31)\n    test 85 and: BooleanGH[4]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=7.0, lon=5.0, height=2.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=3.0, lon=5.0, height=2.0))\n    test 86 or: BooleanGH[6]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=0.0, lon=0.0, height=1.0), (lat=0.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=10.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0))\n    test 87 minus: BooleanGH[5]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=0.0, lon=0.0, height=1.0), (lat=0.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=3.0, lon=5.0, height=2.0))\n    test 88 rev_d: BooleanGH[5]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=10.0, lon=0.0, height=1.0), (lat=10.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=7.0, lon=5.0, height=2.0))\n    test 89 iand: BooleanGH[4]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=7.0, lon=5.0, height=2.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=3.0, lon=5.0, height=2.0))\n    test 90 ior: BooleanGH[6]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=0.0, lon=0.0, height=1.0), (lat=0.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=10.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0))\n    test 91 sum: BooleanGH[2][6]((lat=0.0, lon=0.0, height=1.0), (lat=7.0, lon=5.0, height=2.0), (lat=0.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0, clipid=1), (lat=3.0, lon=5.0, height=2.0, clipid=1), (lat=10.0, lon=10.0, height=3.0, clipid=1))\n\n    test 92 GH ==: True\n    test 93 equalTo: True\n    test 94 areaOf: True\n    test 95 enclosed: True\n    test 96 enclosed: False\n    test 97 perimeterOf: True\n\n    test 98 toLatLon[0:3]: (LatLon(00°00′00.0″N, 000°00′00.0″E, +1.00m), LatLon(07°00′00.0″N, 005°00′00.0″E, +2.00m), LatLon(00°00′00.0″N, 010°00′00.0″E, +3.00m))\n    test 99 toLatLon[-3:]: ((lat=10.0, lon=0.0, height=1.0, clipid=1), (lat=3.0, lon=5.0, height=2.0, clipid=1), (lat=10.0, lon=10.0, height=3.0, clipid=1))\n\n    test 100 and: BooleanFHP[4]((lat=7.0, lon=5.0, height=2.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=3.0, lon=5.0, height=2.0), (lat=5.0, lon=3.5714286, height=1.7142857))\n    test 101 or: BooleanFHP[6]((lat=0.0, lon=0.0, height=1.0), (lat=0.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=10.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0), (lat=5.0, lon=3.5714286, height=1.7142857))\n    test 102 iand: BooleanFHP[4]((lat=7.0, lon=5.0, height=2.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=3.0, lon=5.0, height=2.0), (lat=5.0, lon=3.5714286, height=1.7142857))\n    test 103 ior: BooleanFHP[6]((lat=0.0, lon=0.0, height=1.0), (lat=0.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=10.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0), (lat=5.0, lon=3.5714286, height=1.7142857))\n    test 104 sum: BooleanFHP[2][6]((lat=0.0, lon=0.0, height=1.0), (lat=7.0, lon=5.0, height=2.0), (lat=0.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0, clipid=1), (lat=3.0, lon=5.0, height=2.0, clipid=1), (lat=10.0, lon=10.0, height=3.0, clipid=1))\n\n    test 105 FHP ==: True\n    test 106 equalTo: True\n    test 107 areaOf: True\n    test 108 enclosed: True\n    test 109 enclosed: False\n    test 110 perimeterOf: True\n\n    test 111 toLatLon[0:3]: (LatLon(00°00′00.0″N, 000°00′00.0″E, +1.00m), LatLon(07°00′00.0″N, 005°00′00.0″E, +2.00m), LatLon(00°00′00.0″N, 010°00′00.0″E, +3.00m))\n    test 112 toLatLon[-3:]: ((lat=10.0, lon=0.0, height=1.0, clipid=1), (lat=3.0, lon=5.0, height=2.0, clipid=1), (lat=10.0, lon=10.0, height=3.0, clipid=1))\n\n    16 of 112 testBooleans.py tests (14.3%) FAILED, incl. 16 DeprecationWarnings (pygeodesy 26.3.26 Python 2.7.18 64bit arm64_x86_64 geographiclib 1.50 numpy 1.16.6 scipy 1.2.2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 -W  default) 3.816 sec\nrunning /Library/Framewo....ython -W default ~/PyGeodesy/test/testCartesian.py\n./test/testCartesian.py:44: DeprecationWarning: method L{convertDatum<pygeodesy.ellipsoidalNvector.Cartesian.convertDatum>} has been DEPRECATED, use method L{toDatum}.\n  d = c.convertDatum(datum2)\n./test/testCartesian.py:45: DeprecationWarning: method L{convertDatum<pygeodesy.ellipsoidalNvector.Cartesian.convertDatum>} has been DEPRECATED, use method L{toDatum}.\n  t = d.convertDatum(datum)\n\n    testing testCartesian.py 25.05.12\n\n    testCartesian(pygeodesy.sphericalNvector, 25.05.27)\n    test 1 Cartesian0: [3980581, 97, 4966825]\n    test 2 Cartesian4: [3980581.0, 97.0, 4966825.0]\n    test 3 isEllipsoidal: False\n    test 4 isSpherical: True\n    test 5 copy(<type 'type'>): (<class 'pygeodesy.sphericalNvector.Cartesian'>, True)\n    test 6 Cartesian.copy(): (<class 'pygeodesy.sphericalNvector.Cartesian'>, True)\n    test 7 height: -5918.380258\n    test 8 height4: (3984282.2, 97.1, 4971443.2, -5918.4)\n    test 9 height4: [3984282.2, 97.1, 4971443.2]\n    test 10 height3: (3980581.0, 97.0, 4966825.0)\n    test 11 Nvector: Nvector(0.62538, 0.00002, 0.78032, -5918.38)\n    test 12 Nvector3: (0.625, 0.0, 0.78, -5918.38)\n    test 13 Nvector6: (0.625377, 0.000015, 0.780323, -5918.38)\n    test 14 LatLon: 50.0379°N, 008.5622°E, -0.00m  FAILED, KNOWN, expected 50.0379°N, 008.5622°E\n    test 15 LatLon: 51.47°N, 000.4543°E\n    test 16 LatLon: 40.633365°N, 073.783328°W\n    test 17 LatLon: 33.95°N, 118.4°W\n    test 18 LatLon: 41.32°S, 174.81°E, +0.00m  FAILED, KNOWN, expected 41.32°S, 174.81°E\n    test 19 LatLon: 40.96°N, 005.5°E\n    test 20 LatLon: 40.1°N, 116.6°E, +0.00m  FAILED, KNOWN, expected 40.1°N, 116.6°E\n    test 21 LatLon: 37.6°N, 122.4°W, -0.00m  FAILED, KNOWN, expected 37.6°N, 122.4°W\n    test 22 copy: True\n    test 23 __eq__: True\n    test 24 __ne__: False\n    test 25 Cartesian: <class 'pygeodesy.sphericalNvector.Cartesian'>\n    test 26 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 27 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 28 latlonheightdatum: <class 'pygeodesy.namedTuples.LatLon4Tuple'>\n    test 29 height4: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 30 isequalTo: <type 'bool'>\n    test 31 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 32 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 33 philamheightdatum: <class 'pygeodesy.namedTuples.PhiLam4Tuple'>\n    test 34 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 35 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 36 toEcef: <class 'pygeodesy.ecef.Ecef9Tuple'>\n    test 37 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 38 toLatLon: <class 'pygeodesy.sphericalNvector.LatLon'>\n    test 39 toLLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 40 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 41 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 42 toNvector: <class 'pygeodesy.sphericalNvector.Nvector'>\n    test 43 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 44 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 45 xyz3: <type 'tuple'>\n    test 46 Cartesian: <class 'pygeodesy.cartesianBase.CartesianBase'>\n    test 47 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 48 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 49 latlonheightdatum: <class 'pygeodesy.namedTuples.LatLon4Tuple'>\n    test 50 height4: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 51 isequalTo: <type 'bool'>\n    test 52 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 53 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 54 philamheightdatum: <class 'pygeodesy.namedTuples.PhiLam4Tuple'>\n    test 55 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 56 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 57 toEcef: <class 'pygeodesy.ecef.Ecef9Tuple'>\n    test 58 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 59 toLatLon: <class 'pygeodesy.ecef.Ecef9Tuple'>\n    test 60 toLLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 61 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 62 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 63 toNvector: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 64 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 65 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 66 xyz3: <type 'tuple'>\n    test 67 sphericalNvector.Cartesian.intersections2: 37.673442°N, 090.234036°W\n    test 68 sphericalNvector.Cartesian.intersections2: 36.109987°N, 090.95367°W\n    test 69 sphericalNvector.Cartesian.intersections2: [-0.032779, -0.784769, 0.61892]\n    test 70 sphericalNvector.Cartesian.intersections2: 38.237342°N, 092.391779°W\n    test 71 sphericalNvector.Cartesian.intersections2: [0.025768, -0.798347, 0.601646]\n    test 72 sphericalNvector.Cartesian.intersections2: 36.987868°N, 088.151309°W\n    test 73 vector3d.trilaterate3d2: [-0.032761, -0.784757, 0.618937]\n    test 74 vector3d.trilaterate3d2: [0.025768, -0.798331, 0.601668]\n    test 75 vector3d.intersections2: (-0.0035, -0.791926, 0.610589)\n    test 76 vector3d.intersections2: 0.0312613\n    test 77 vector3d.intersections2: (-0.021973, -0.766467, 0.0)\n    test 78 vector3d.intersections2: (0.027459, -0.797488, 0.0)\n\n    test 79 xyz2rtp: 37.417, 36.699, 63.435\n    test 80 xyz2rtp: <class 'pygeodesy.cartesianBase.RadiusThetaPhi3Tuple'>\n    test 81 rtp2xyz: 10.0, 20.0, 30.0\n    test 82 rtp2xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 83 toCartesian: Cartesian(10.0, 20.0, 30.0)\n    test 84 toRtp: Test(r=37.416574, theta=36.699225, phi=63.434949)\n\n    test 85 destinationXyz: Tuple(x=10.175954, y=20.351908, z=32.201182, lat=54.754059, lon=63.434949, height=-6370969.342158, C=2, M=None, datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84))\n    test 86 destinationXyz: Cartesian(10.176, 20.352, 32.201)\n\n    testCartesian(pygeodesy.sphericalTrigonometry, 25.08.31)\n    test 87 Cartesian0: [3980581, 97, 4966825]\n    test 88 Cartesian4: [3980581.0, 97.0, 4966825.0]\n    test 89 isEllipsoidal: False\n    test 90 isSpherical: True\n    test 91 copy(<type 'type'>): (<class 'pygeodesy.sphericalTrigonometry.Cartesian'>, True)\n    test 92 Cartesian.copy(): (<class 'pygeodesy.sphericalTrigonometry.Cartesian'>, True)\n    test 93 height: -5918.380258\n    test 94 height4: (3984282.2, 97.1, 4971443.2, -5918.4)\n    test 95 height4: [3984282.2, 97.1, 4971443.2]\n    test 96 height3: (3980581.0, 97.0, 4966825.0)\n    test 97 Vector4Tuple: 0.625376979, 1.52393751e-05, 0.780322775, -5918.38026\n    test 98 LatLon: 50.0379°N, 008.5622°E, -0.00m  FAILED, KNOWN, expected 50.0379°N, 008.5622°E\n    test 99 LatLon: 51.47°N, 000.4543°E\n    test 100 LatLon: 40.633365°N, 073.783328°W\n    test 101 LatLon: 33.95°N, 118.4°W\n    test 102 LatLon: 41.32°S, 174.81°E, +0.00m  FAILED, KNOWN, expected 41.32°S, 174.81°E\n    test 103 LatLon: 40.96°N, 005.5°E\n    test 104 LatLon: 40.1°N, 116.6°E, +0.00m  FAILED, KNOWN, expected 40.1°N, 116.6°E\n    test 105 LatLon: 37.6°N, 122.4°W, -0.00m  FAILED, KNOWN, expected 37.6°N, 122.4°W\n    test 106 copy: True\n    test 107 __eq__: True\n    test 108 __ne__: False\n    test 109 Cartesian: <class 'pygeodesy.sphericalTrigonometry.Cartesian'>\n    test 110 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 111 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 112 latlonheightdatum: <class 'pygeodesy.namedTuples.LatLon4Tuple'>\n    test 113 height4: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 114 isequalTo: <type 'bool'>\n    test 115 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 116 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 117 philamheightdatum: <class 'pygeodesy.namedTuples.PhiLam4Tuple'>\n    test 118 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 119 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 120 toEcef: <class 'pygeodesy.ecef.Ecef9Tuple'>\n    test 121 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 122 toLatLon: <class 'pygeodesy.sphericalTrigonometry.LatLon'>\n    test 123 toLLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 124 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 125 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 126 toNvector: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 127 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 128 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 129 xyz3: <type 'tuple'>\n    test 130 Cartesian: <class 'pygeodesy.cartesianBase.CartesianBase'>\n    test 131 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 132 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 133 latlonheightdatum: <class 'pygeodesy.namedTuples.LatLon4Tuple'>\n    test 134 height4: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 135 isequalTo: <type 'bool'>\n    test 136 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 137 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 138 philamheightdatum: <class 'pygeodesy.namedTuples.PhiLam4Tuple'>\n    test 139 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 140 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 141 toEcef: <class 'pygeodesy.ecef.Ecef9Tuple'>\n    test 142 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 143 toLatLon: <class 'pygeodesy.ecef.Ecef9Tuple'>\n    test 144 toLLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 145 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 146 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 147 toNvector: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 148 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 149 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 150 xyz3: <type 'tuple'>\n    test 151 sphericalTrigonometry.Cartesian.intersections2: 37.673442°N, 090.234036°W\n    test 152 sphericalTrigonometry.Cartesian.intersections2: 36.109987°N, 090.95367°W\n    test 153 sphericalTrigonometry.Cartesian.intersections2: [-0.032779, -0.784769, 0.61892]\n    test 154 sphericalTrigonometry.Cartesian.intersections2: 38.237342°N, 092.391779°W\n    test 155 sphericalTrigonometry.Cartesian.intersections2: [0.025768, -0.798347, 0.601646]\n    test 156 sphericalTrigonometry.Cartesian.intersections2: 36.987868°N, 088.151309°W\n    test 157 vector3d.trilaterate3d2: [-0.032761, -0.784757, 0.618937]\n    test 158 vector3d.trilaterate3d2: [0.025768, -0.798331, 0.601668]\n    test 159 vector3d.intersections2: (-0.0035, -0.791926, 0.610589)\n    test 160 vector3d.intersections2: 0.0312613\n    test 161 vector3d.intersections2: (-0.021973, -0.766467, 0.0)\n    test 162 vector3d.intersections2: (0.027459, -0.797488, 0.0)\n\n    test 163 xyz2rtp: 37.417, 36.699, 63.435\n    test 164 xyz2rtp: <class 'pygeodesy.cartesianBase.RadiusThetaPhi3Tuple'>\n    test 165 rtp2xyz: 10.0, 20.0, 30.0\n    test 166 rtp2xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 167 toCartesian: Cartesian(10.0, 20.0, 30.0)\n    test 168 toRtp: Test(r=37.416574, theta=36.699225, phi=63.434949)\n\n    test 169 destinationXyz: Tuple(x=10.175954, y=20.351908, z=32.201182, lat=54.754059, lon=63.434949, height=-6370969.342158, C=2, M=None, datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84))\n    test 170 destinationXyz: Cartesian(10.176, 20.352, 32.201)\n\n    testCartesian(pygeodesy.ellipsoidalNvector, 25.05.12)\n    test 171 Cartesian0: [3980581, 97, 4966825]\n    test 172 Cartesian4: [3980581.0, 97.0, 4966825.0]\n    test 173 isEllipsoidal: True\n    test 174 isSpherical: False\n    test 175 copy(<type 'type'>): (<class 'pygeodesy.ellipsoidalNvector.Cartesian'>, True)\n    test 176 Cartesian.copy(): (<class 'pygeodesy.ellipsoidalNvector.Cartesian'>, True)\n    test 177 convertDatum: [3980581.0, 97.0, 4966825.0]\n    test 178 height: 0.242887\n    test 179 height4: (3980580.8, 97.0, 4966824.8, 0.2)\n    test 180 height4: [3980580.8, 97.0, 4966824.8]\n    test 181 height3: (3980581.0, 97.0, 4966825.0)\n    test 182 Nvector: Nvector(0.62282, 0.00002, 0.78237, +0.24)\n    test 183 Nvector3: (0.623, 0.0, 0.782, +0.24)\n    test 184 Nvector6: (0.622818, 0.000015, 0.782367, +0.24)\n    test 185 LatLon: 50.0379°N, 008.5622°E\n    test 186 LatLon: 51.47°N, 000.4543°E, -0.00m  FAILED, KNOWN, expected 51.47°N, 000.4543°E\n    test 187 LatLon: 40.633365°N, 073.783328°W\n    test 188 LatLon: 33.95°N, 118.4°W\n    test 189 LatLon: 41.32°S, 174.81°E, +0.00m  FAILED, KNOWN, expected 41.32°S, 174.81°E\n    test 190 LatLon: 40.96°N, 005.5°E, -0.00m  FAILED, KNOWN, expected 40.96°N, 005.5°E\n    test 191 LatLon: 40.1°N, 116.6°E, -0.00m  FAILED, KNOWN, expected 40.1°N, 116.6°E\n    test 192 LatLon: 37.6°N, 122.4°W\n    test 193 copy: True\n    test 194 __eq__: True\n    test 195 __ne__: False\n    test 196 Cartesian: <class 'pygeodesy.ellipsoidalNvector.Cartesian'>\n    test 197 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 198 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 199 latlonheightdatum: <class 'pygeodesy.namedTuples.LatLon4Tuple'>\n    test 200 height4: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 201 isequalTo: <type 'bool'>\n    test 202 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 203 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 204 philamheightdatum: <class 'pygeodesy.namedTuples.PhiLam4Tuple'>\n    test 205 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 206 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 207 toEcef: <class 'pygeodesy.ecef.Ecef9Tuple'>\n    test 208 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 209 toLatLon: <class 'pygeodesy.ellipsoidalNvector.LatLon'>\n    test 210 toLLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 211 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 212 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 213 toNvector: <class 'pygeodesy.ellipsoidalNvector.Nvector'>\n    test 214 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 215 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 216 xyz3: <type 'tuple'>\n    test 217 Cartesian: <class 'pygeodesy.cartesianBase.CartesianBase'>\n    test 218 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 219 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 220 latlonheightdatum: <class 'pygeodesy.namedTuples.LatLon4Tuple'>\n    test 221 height4: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 222 isequalTo: <type 'bool'>\n    test 223 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 224 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 225 philamheightdatum: <class 'pygeodesy.namedTuples.PhiLam4Tuple'>\n    test 226 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 227 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 228 toEcef: <class 'pygeodesy.ecef.Ecef9Tuple'>\n    test 229 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 230 toLatLon: <class 'pygeodesy.ecef.Ecef9Tuple'>\n    test 231 toLLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 232 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 233 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 234 toNvector: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 235 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 236 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 237 xyz3: <type 'tuple'>\n    test 238 ellipsoidalNvector.Cartesian.intersections2: 89.998941°N, 090.234036°W\n    test 239 ellipsoidalNvector.Cartesian.intersections2: 89.99892°N, 090.95367°W\n    test 240 ellipsoidalNvector.Cartesian.intersections2: [-0.0035, -0.791926, 0.610589]\n    test 241 ellipsoidalNvector.Cartesian.intersections2: 89.998941°N, 090.253237°W\n    test 242 ellipsoidalNvector.Cartesian.intersections2: 0.0312613\n    test 243 vector3d.intersections2: (-0.0035, -0.791926, 0.610589)\n    test 244 vector3d.intersections2: 0.0312613\n    test 245 vector3d.intersections2: (-0.021973, -0.766467, 0.0)\n    test 246 vector3d.intersections2: (0.027459, -0.797488, 0.0)\n\n    test 247 xyz2rtp: 37.417, 36.699, 63.435\n    test 248 xyz2rtp: <class 'pygeodesy.cartesianBase.RadiusThetaPhi3Tuple'>\n    test 249 rtp2xyz: 10.0, 20.0, 30.0\n    test 250 rtp2xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 251 toCartesian: Cartesian(10.0, 20.0, 30.0)\n    test 252 toRtp: Test(r=37.416574, theta=36.699225, phi=63.434949)\n\n    test 253 destinationXyz: Tuple(x=9.553253, y=19.106505, z=32.000521, lat=89.971452, lon=63.434949, height=-6356720.308402, C=1, M=None, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 254 destinationXyz: Cartesian(9.553, 19.107, 32.001)\n\n    test 255 c.toEnu: [-17553188.505, -3108016.462, 7452592.10./test/testCartesian.py:44: DeprecationWarning: method L{convertDatum<pygeodesy.ellipsoidalVincenty.Cartesian.convertDatum>} has been DEPRECATED, use method L{toDatum}.\n  d = c.convertDatum(datum2)\n./test/testCartesian.py:45: DeprecationWarning: method L{convertDatum<pygeodesy.ellipsoidalVincenty.Cartesian.convertDatum>} has been DEPRECATED, use method L{toDatum}.\n  t = d.convertDatum(datum)\n./test/testCartesian.py:44: DeprecationWarning: method L{convertDatum<pygeodesy.ellipsoidalKarney.Cartesian.convertDatum>} has been DEPRECATED, use method L{toDatum}.\n  d = c.convertDatum(datum2)\n./test/testCartesian.py:45: DeprecationWarning: method L{convertDatum<pygeodesy.ellipsoidalKarney.Cartesian.convertDatum>} has been DEPRECATED, use method L{toDatum}.\n  t = d.convertDatum(datum)\n./test/testCartesian.py:44: DeprecationWarning: method L{convertDatum<pygeodesy.ellipsoidalGeodSolve.Cartesian.convertDatum>} has been DEPRECATED, use method L{toDatum}.\n  d = c.convertDatum(datum2)\n./test/testCartesian.py:45: DeprecationWarning: method L{convertDatum<pygeodesy.ellipsoidalGeodSolve.Cartesian.convertDatum>} has been DEPRECATED, use method L{toDatum}.\n  t = d.convertDatum(datum)\n4]\n    test 256 e.toEnu: [-17553188.505, -3108016.462, 7452592.104]\n\n    testCartesian(pygeodesy.ellipsoidalVincenty, 25.05.26)\n    test 257 Cartesian0: [3980581, 97, 4966825]\n    test 258 Cartesian4: [3980581.0, 97.0, 4966825.0]\n    test 259 isEllipsoidal: True\n    test 260 isSpherical: False\n    test 261 copy(<type 'type'>): (<class 'pygeodesy.ellipsoidalVincenty.Cartesian'>, True)\n    test 262 Cartesian.copy(): (<class 'pygeodesy.ellipsoidalVincenty.Cartesian'>, True)\n    test 263 convertDatum: [3980581.0, 97.0, 4966825.0]\n    test 264 height: 0.242887\n    test 265 height4: (3980580.8, 97.0, 4966824.8, 0.2)\n    test 266 height4: [3980580.8, 97.0, 4966824.8]\n    test 267 height3: (3980581.0, 97.0, 4966825.0)\n    test 268 Vector4Tuple: 0.622817765, 1.51770114e-05, 0.782366942, 0.242886808\n    test 269 LatLon: 50.0379°N, 008.5622°E\n    test 270 LatLon: 51.47°N, 000.4543°E, -0.00m  FAILED, KNOWN, expected 51.47°N, 000.4543°E\n    test 271 LatLon: 40.633365°N, 073.783328°W\n    test 272 LatLon: 33.95°N, 118.4°W\n    test 273 LatLon: 41.32°S, 174.81°E, +0.00m  FAILED, KNOWN, expected 41.32°S, 174.81°E\n    test 274 LatLon: 40.96°N, 005.5°E, -0.00m  FAILED, KNOWN, expected 40.96°N, 005.5°E\n    test 275 LatLon: 40.1°N, 116.6°E, -0.00m  FAILED, KNOWN, expected 40.1°N, 116.6°E\n    test 276 LatLon: 37.6°N, 122.4°W\n    test 277 copy: True\n    test 278 __eq__: True\n    test 279 __ne__: False\n    test 280 Cartesian: <class 'pygeodesy.ellipsoidalVincenty.Cartesian'>\n    test 281 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 282 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 283 latlonheightdatum: <class 'pygeodesy.namedTuples.LatLon4Tuple'>\n    test 284 height4: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 285 isequalTo: <type 'bool'>\n    test 286 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 287 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 288 philamheightdatum: <class 'pygeodesy.namedTuples.PhiLam4Tuple'>\n    test 289 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 290 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 291 toEcef: <class 'pygeodesy.ecef.Ecef9Tuple'>\n    test 292 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 293 toLatLon: <class 'pygeodesy.ellipsoidalVincenty.LatLon'>\n    test 294 toLLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 295 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 296 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 297 toNvector: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 298 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 299 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 300 xyz3: <type 'tuple'>\n    test 301 Cartesian: <class 'pygeodesy.cartesianBase.CartesianBase'>\n    test 302 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 303 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 304 latlonheightdatum: <class 'pygeodesy.namedTuples.LatLon4Tuple'>\n    test 305 height4: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 306 isequalTo: <type 'bool'>\n    test 307 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 308 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 309 philamheightdatum: <class 'pygeodesy.namedTuples.PhiLam4Tuple'>\n    test 310 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 311 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 312 toEcef: <class 'pygeodesy.ecef.Ecef9Tuple'>\n    test 313 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 314 toLatLon: <class 'pygeodesy.ecef.Ecef9Tuple'>\n    test 315 toLLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 316 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 317 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 318 toNvector: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 319 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 320 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 321 xyz3: <type 'tuple'>\n    test 322 ellipsoidalVincenty.Cartesian.intersections2: 89.998941°N, 090.234036°W\n    test 323 ellipsoidalVincenty.Cartesian.intersections2: 89.99892°N, 090.95367°W\n    test 324 ellipsoidalVincenty.Cartesian.intersections2: [-0.0035, -0.791926, 0.610589]\n    test 325 ellipsoidalVincenty.Cartesian.intersections2: 89.998941°N, 090.253237°W\n    test 326 ellipsoidalVincenty.Cartesian.intersections2: 0.0312613\n    test 327 vector3d.intersections2: (-0.0035, -0.791926, 0.610589)\n    test 328 vector3d.intersections2: 0.0312613\n    test 329 vector3d.intersections2: (-0.021973, -0.766467, 0.0)\n    test 330 vector3d.intersections2: (0.027459, -0.797488, 0.0)\n\n    test 331 xyz2rtp: 37.417, 36.699, 63.435\n    test 332 xyz2rtp: <class 'pygeodesy.cartesianBase.RadiusThetaPhi3Tuple'>\n    test 333 rtp2xyz: 10.0, 20.0, 30.0\n    test 334 rtp2xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 335 toCartesian: Cartesian(10.0, 20.0, 30.0)\n    test 336 toRtp: Test(r=37.416574, theta=36.699225, phi=63.434949)\n\n    test 337 destinationXyz: Tuple(x=9.553253, y=19.106505, z=32.000521, lat=89.971452, lon=63.434949, height=-6356720.308402, C=1, M=None, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 338 destinationXyz: Cartesian(9.553, 19.107, 32.001)\n\n    test 339 c.toEnu: [-17553188.505, -3108016.462, 7452592.104]\n    test 340 e.toEnu: [-17553188.505, -3108016.462, 7452592.104]\n\n    testCartesian(pygeodesy.ellipsoidalKarney, 25.05.27)\n    test 341 Cartesian0: [3980581, 97, 4966825]\n    test 342 Cartesian4: [3980581.0, 97.0, 4966825.0]\n    test 343 isEllipsoidal: True\n    test 344 isSpherical: False\n    test 345 copy(<type 'type'>): (<class 'pygeodesy.ellipsoidalKarney.Cartesian'>, True)\n    test 346 Cartesian.copy(): (<class 'pygeodesy.ellipsoidalKarney.Cartesian'>, True)\n    test 347 convertDatum: [3980581.0, 97.0, 4966825.0]\n    test 348 height: 0.242887\n    test 349 height4: (3980580.8, 97.0, 4966824.8, 0.2)\n    test 350 height4: [3980580.8, 97.0, 4966824.8]\n    test 351 height3: (3980581.0, 97.0, 4966825.0)\n    test 352 Vector4Tuple: 0.622817765, 1.51770114e-05, 0.782366942, 0.242886808\n    test 353 LatLon: 50.0379°N, 008.5622°E, +0.00m  FAILED, KNOWN, expected 50.0379°N, 008.5622°E\n    test 354 LatLon: 51.47°N, 000.4543°E\n    test 355 LatLon: 40.633365°N, 073.783328°W\n    test 356 LatLon: 33.95°N, 118.4°W, +0.00m  FAILED, KNOWN, expected 33.95°N, 118.4°W\n    test 357 LatLon: 41.32°S, 174.81°E\n    test 358 LatLon: 40.96°N, 005.5°E\n    test 359 LatLon: 40.1°N, 116.6°E\n    test 360 LatLon: 37.6°N, 122.4°W\n    test 361 copy: True\n    test 362 __eq__: True\n    test 363 __ne__: False\n    test 364 Cartesian: <class 'pygeodesy.ellipsoidalKarney.Cartesian'>\n    test 365 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 366 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 367 latlonheightdatum: <class 'pygeodesy.namedTuples.LatLon4Tuple'>\n    test 368 height4: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 369 isequalTo: <type 'bool'>\n    test 370 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 371 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 372 philamheightdatum: <class 'pygeodesy.namedTuples.PhiLam4Tuple'>\n    test 373 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 374 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 375 toEcef: <class 'pygeodesy.ecef.Ecef9Tuple'>\n    test 376 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 377 toLatLon: <class 'pygeodesy.ellipsoidalKarney.LatLon'>\n    test 378 toLLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 379 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 380 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 381 toNvector: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 382 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 383 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 384 xyz3: <type 'tuple'>\n    test 385 Cartesian: <class 'pygeodesy.cartesianBase.CartesianBase'>\n    test 386 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 387 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 388 latlonheightdatum: <class 'pygeodesy.namedTuples.LatLon4Tuple'>\n    test 389 height4: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 390 isequalTo: <type 'bool'>\n    test 391 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 392 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 393 philamheightdatum: <class 'pygeodesy.namedTuples.PhiLam4Tuple'>\n    test 394 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 395 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 396 toEcef: <class 'pygeodesy.ecef.Ecef9Tuple'>\n    test 397 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 398 toLatLon: <class 'pygeodesy.ecef.Ecef9Tuple'>\n    test 399 toLLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 400 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 401 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 402 toNvector: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 403 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 404 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 405 xyz3: <type 'tuple'>\n    test 406 ellipsoidalKarney.Cartesian.intersections2: 89.998941°N, 090.234036°W\n    test 407 ellipsoidalKarney.Cartesian.intersections2: 89.99892°N, 090.95367°W\n    test 408 ellipsoidalKarney.Cartesian.intersections2: [-0.0035, -0.791926, 0.610589]\n    test 409 ellipsoidalKarney.Cartesian.intersections2: 89.998941°N, 090.253237°W\n    test 410 ellipsoidalKarney.Cartesian.intersections2: 0.0312613\n    test 411 vector3d.intersections2: (-0.0035, -0.791926, 0.610589)\n    test 412 vector3d.intersections2: 0.0312613\n    test 413 vector3d.intersections2: (-0.021973, -0.766467, 0.0)\n    test 414 vector3d.intersections2: (0.027459, -0.797488, 0.0)\n\n    test 415 xyz2rtp: 37.417, 36.699, 63.435\n    test 416 xyz2rtp: <class 'pygeodesy.cartesianBase.RadiusThetaPhi3Tuple'>\n    test 417 rtp2xyz: 10.0, 20.0, 30.0\n    test 418 rtp2xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 419 toCartesian: Cartesian(10.0, 20.0, 30.0)\n    test 420 toRtp: Test(r=37.416574, theta=36.699225, phi=63.434949)\n\n    test 421 destinationXyz: Tuple(x=9.553253, y=19.106506, z=32.000521, lat=89.971452, lon=63.434949, height=-6356720.308402, C=1, M=None, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 422 destinationXyz: Cartesian(9.553, 19.107, 32.001)\n\n    test 423 c.toEnu: [-17553188.505, -3108016.462, 7452592.104]\n    test 424 e.toEnu: [-17553188.505, -3108016.462, 7452592.104]\n\n    testCartesian(pygeodesy.ellipsoidalGeodSolve, 25.08.28)\n    test 425 Cartesian0: [3980581, 97, 4966825]\n    test 426 Cartesian4: [3980581.0, 97.0, 4966825.0]\n    test 427 isEllipsoidal: True\n    test 428 isSpherical: False\n    test 429 copy(<type 'type'>): (<class 'pygeodesy.ellipsoidalGeodSolve.Cartesian'>, True)\n    test 430 Cartesian.copy(): (<class 'pygeodesy.ellipsoidalGeodSolve.Cartesian'>, True)\n    test 431 convertDatum: [3980581.0, 97.0, 4966825.0]\n    test 432 height: 0.242887\n    test 433 height4: (3980580.8, 97.0, 4966824.8, 0.2)\n    test 434 height4: [3980580.8, 97.0, 4966824.8]\n    test 435 height3: (3980581.0, 97.0, 4966825.0)\n    test 436 Vector4Tuple: 0.622817765, 1.51770114e-05, 0.782366942, 0.242886808\n    test 437 LatLon: 50.0379°N, 008.5622°E, +0.00m  FAILED, KNOWN, expected 50.0379°N, 008.5622°E\n    test 438 LatLon: 51.47°N, 000.4543°E\n    test 439 LatLon: 40.633365°N, 073.783328°W\n    test 440 LatLon: 33.95°N, 118.4°W, +0.00m  FAILED, KNOWN, expected 33.95°N, 118.4°W\n    test 441 LatLon: 41.32°S, 174.81°E\n    test 442 LatLon: 40.96°N, 005.5°E\n    test 443 LatLon: 40.1°N, 116.6°E\n    test 444 LatLon: 37.6°N, 122.4°W\n    test 445 copy: True\n    test 446 __eq__: True\n    test 447 __ne__: False\n    test 448 Cartesian: <class 'pygeodesy.ellipsoidalGeodSolve.Cartesian'>\n    test 449 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 450 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 451 latlonheightdatum: <class 'pygeodesy.namedTuples.LatLon4Tuple'>\n    test 452 height4: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 453 isequalTo: <type 'bool'>\n    test 454 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 455 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 456 philamheightdatum: <class 'pygeodesy.namedTuples.PhiLam4Tuple'>\n    test 457 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 458 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 459 toEcef: <class 'pygeodesy.ecef.Ecef9Tuple'>\n    test 460 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 461 toLatLon: <class 'pygeodesy.ellipsoidalGeodSolve.LatLon'>\n    test 462 toLLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 463 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 464 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 465 toNvector: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 466 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 467 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 468 xyz3: <type 'tuple'>\n    test 469 Cartesian: <class 'pygeodesy.cartesianBase.CartesianBase'>\n    test 470 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 471 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 472 latlonheightdatum: <class 'pygeodesy.namedTuples.LatLon4Tuple'>\n    test 473 height4: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 474 isequalTo: <type 'bool'>\n    test 475 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 476 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 477 philamheightdatum: <class 'pygeodesy.namedTuples.PhiLam4Tuple'>\n    test 478 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 479 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 480 toEcef: <class 'pygeodesy.ecef.Ecef9Tuple'>\n    test 481 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 482 toLatLon: <class 'pygeodesy.ecef.Ecef9Tuple'>\n    test 483 toLLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 484 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 485 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 486 toNvector: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 487 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 488 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 489 xyz3: <type 'tuple'>\n    test 490 ellipsoidalGeodSolve.Cartesian.intersections2: 89.998941°N, 090.234036°W\n    test 491 ellipsoidalGeodSolve.Cartesian.intersections2: 89.99892°N, 090.95367°W\n    test 492 ellipsoidalGeodSolve.Cartesian.intersections2: [-0.0035, -0.791926, 0.610589]\n    test 493 ellipsoidalGeodSolve.Cartesian.intersections2: 89.998941°N, 090.253237°W\n    test 494 ellipsoidalGeodSolve.Cartesian.intersections2: 0.0312613\n    test 495 vector3d.intersections2: (-0.0035, -0.791926, 0.610589)\n    test 496 vector3d.intersections2: 0.0312613\n    test 497 vector3d.intersections2: (-0.021973, -0.766467, 0.0)\n    test 498 vector3d.intersections2: (0.027459, -0.797488, 0.0)\n\n    test 499 xyz2rtp: 37.417, 36.699, 63.435\n    test 500 xyz2rtp: <class 'pygeodesy.cartesianBase.RadiusThetaPhi3Tuple'>\n    test 501 rtp2xyz: 10.0, 20.0, 30.0\n    test 502 rtp2xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 503 toCartesian: Cartesian(10.0, 20.0, 30.0)\n    test 504 toRtp: Test(r=37.416574, theta=36.699225, phi=63.434949)\n\n    test 505 destinationXyz: Tuple(x=9.553253, y=19.106506, z=32.000521, lat=89.971452, lon=63.434949, height=-6356720.308402, C=1, M=None, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 506 destinationXyz: Cartesian(9.553, 19.107, 32.001)\n\n    test 507 c.toEnu: [-17553188.505, -3108016.462, 7452592.104]\n    test 508 e.toEnu: [-17553188.505, -3108016.462, 7452592.104]\n\n    testCartesian(pygeodesy.ellipsoidalExact, 25.08.28)\n    test 509 Cartesian0: [3980581, 97, 4966825]\n    test 510 Cartesian4: [3980581.0, 97.0, 4966825.0]\n    test 511 isEllipsoidal: True\n    test 512 isSpherical: False\n    test 513 copy(<type 'type'>): (<class 'pygeodesy.ellipsoidalExact.Cartesian'>, True)\n    test 514 Cartesian.copy()./test/testCartesian.py:44: DeprecationWarning: method L{convertDatum<pygeodesy.ellipsoidalExact.Cartesian.convertDatum>} has been DEPRECATED, use method L{toDatum}.\n  d = c.convertDatum(datum2)\n./test/testCartesian.py:45: DeprecationWarning: method L{convertDatum<pygeodesy.ellipsoidalExact.Cartesian.convertDatum>} has been DEPRECATED, use method L{toDatum}.\n  t = d.convertDatum(datum)\n: (<class 'pygeodesy.ellipsoidalExact.Cartesian'>, True)\n    test 515 convertDatum: [3980581.0, 97.0, 4966825.0]\n    test 516 height: 0.242887\n    test 517 height4: (3980580.8, 97.0, 4966824.8, 0.2)\n    test 518 height4: [3980580.8, 97.0, 4966824.8]\n    test 519 height3: (3980581.0, 97.0, 4966825.0)\n    test 520 Vector4Tuple: 0.622817765, 1.51770114e-05, 0.782366942, 0.242886808\n    test 521 LatLon: 50.0379°N, 008.5622°E, +0.00m  FAILED, KNOWN, expected 50.0379°N, 008.5622°E\n    test 522 LatLon: 51.47°N, 000.4543°E\n    test 523 LatLon: 40.633365°N, 073.783328°W\n    test 524 LatLon: 33.95°N, 118.4°W, +0.00m  FAILED, KNOWN, expected 33.95°N, 118.4°W\n    test 525 LatLon: 41.32°S, 174.81°E\n    test 526 LatLon: 40.96°N, 005.5°E\n    test 527 LatLon: 40.1°N, 116.6°E\n    test 528 LatLon: 37.6°N, 122.4°W\n    test 529 copy: True\n    test 530 __eq__: True\n    test 531 __ne__: False\n    test 532 Cartesian: <class 'pygeodesy.ellipsoidalExact.Cartesian'>\n    test 533 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 534 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 535 latlonheightdatum: <class 'pygeodesy.namedTuples.LatLon4Tuple'>\n    test 536 height4: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 537 isequalTo: <type 'bool'>\n    test 538 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 539 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 540 philamheightdatum: <class 'pygeodesy.namedTuples.PhiLam4Tuple'>\n    test 541 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 542 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 543 toEcef: <class 'pygeodesy.ecef.Ecef9Tuple'>\n    test 544 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 545 toLatLon: <class 'pygeodesy.ellipsoidalExact.LatLon'>\n    test 546 toLLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 547 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 548 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 549 toNvector: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 550 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 551 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 552 xyz3: <type 'tuple'>\n    test 553 Cartesian: <class 'pygeodesy.cartesianBase.CartesianBase'>\n    test 554 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 555 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 556 latlonheightdatum: <class 'pygeodesy.namedTuples.LatLon4Tuple'>\n    test 557 height4: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 558 isequalTo: <type 'bool'>\n    test 559 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 560 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 561 philamheightdatum: <class 'pygeodesy.namedTuples.PhiLam4Tuple'>\n    test 562 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 563 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 564 toEcef: <class 'pygeodesy.ecef.Ecef9Tuple'>\n    test 565 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 566 toLatLon: <class 'pygeodesy.ecef.Ecef9Tuple'>\n    test 567 toLLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 568 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 569 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 570 toNvector: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 571 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 572 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 573 xyz3: <type 'tuple'>\n    test 574 ellipsoidalExact.Cartesian.intersections2: 89.998941°N, 090.234036°W\n    test 575 ellipsoidalExact.Cartesian.intersections2: 89.99892°N, 090.95367°W\n    test 576 ellipsoidalExact.Cartesian.intersections2: [-0.0035, -0.791926, 0.610589]\n    test 577 ellipsoidalExact.Cartesian.intersections2: 89.998941°N, 090.253237°W\n    test 578 ellipsoidalExact.Cartesian.intersections2: 0.0312613\n    test 579 vector3d.intersections2: (-0.0035, -0.791926, 0.610589)\n    test 580 vector3d.intersections2: 0.0312613\n    test 581 vector3d.intersections2: (-0.021973, -0.766467, 0.0)\n    test 582 vector3d.intersections2: (0.027459, -0.797488, 0.0)\n\n    test 583 xyz2rtp: 37.417, 36.699, 63.435\n    test 584 xyz2rtp: <class 'pygeodesy.cartesianBase.RadiusThetaPhi3Tuple'>\n    test 585 rtp2xyz: 10.0, 20.0, 30.0\n    test 586 rtp2xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 587 toCartesian: Cartesian(10.0, 20.0, 30.0)\n    test 588 toRtp: Test(r=37.416574, theta=36.699225, phi=63.434949)\n\n    test 589 destinationXyz: Tuple(x=9.553253, y=19.106506, z=32.000521, lat=89.971452, lon=63.434949, height=-6356720.308402, C=1, M=None, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 590 destinationXyz: Cartesian(9.553, 19.107, 32.001)\n\n    test 591 c.toEnu: [-17553188.505, -3108016.462, 7452592.104]\n    test 592 e.toEnu: [-17553188.505, -3108016.462, 7452592.104]\n\n    32 of 592 testCartesian.py tests (5.4%) FAILED, incl. 22 KNOWN plus 10 DeprecationWarnings (pygeodesy 26.3.26 Python 2.7.18 64bit arm64_x86_64 geographiclib 1.50 numpy 1.16.6 scipy 1.2.2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 -W  default) 82.652 ms\nrunning /Library/Framewo....ython -W default ~/PyGeodesy/test/testClasses.py\n\n    testing testClasses.py 24.07.29\n\n    testCartesianAttrs(24.07.29)\n    test 1 angleTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 2 apply() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 3 attrs() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 4 bearing() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 5 bools() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 6 cassini() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 7 circin6() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 8 circum3() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 9 circum4_() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 10 classname Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 11 classnaming _NamedProperty: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 12 classof() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 13 cmp() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 14 collins() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 15 collins5() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 16 convertDatum() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 17 convertRefFrame() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 18 copy() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 19 cross() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 20 crosserrors _NamedProperty: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 21 datum _NamedProperty: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 22 destinationXyz() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 23 dividedBy() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 24 dividedBy_() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 25 dot() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 26 dup() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 27 Ecef property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 28 Ecef property_ROver: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 29 ellipsoidalCartesian property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 30 epoch _NamedProperty: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 31 equals() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 32 equirectangular() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 33 euclid Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 34 fabs() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 35 floats() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 36 floorDividedBy() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 37 floorDividedBy_() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 38 hartzell() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 39 height Property: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 40 height3() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 41 height4() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 42 homogeneous property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 43 intermediateTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 44 intersections2() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 45 ints() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 46 iscolinearWith() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 47 isconjugateTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 48 isEllipsoidal Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 49 isequalTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 50 isSpherical Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 51 iteration property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 52 latlon Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 53 latlonheight Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 54 latlonheightdatum Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 55 length Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 56 length2 Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 57 meeus2() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 58 methodname() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 59 minus() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 60 minus_() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 61 name _NamedProperty: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 62 named Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 63 named2 Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 64 named3 Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 65 named4 Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 66 nearestOn() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 67 nearestOn6() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 68 negate() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 69 others() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 70 parse() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 71 philam Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 72 philamheight Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 73 philamheightdatum Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 74 pierlot() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 75 pierlotx() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 76 plus() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 77 plus_() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 78 pow() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 79 radii11() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 80 reframe _NamedProperty: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 81 rename() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 82 renamed() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 83 Roc2() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 84 rotate() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 85 rotateAround() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 86 sizeof property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 87 soddy4() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 88 sphericalCartesian property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 89 sum() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 90 tienstra() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 91 tienstra7() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 92 times() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 93 times_() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 94 to2ab() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 95 to2ll() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 96 to3llh() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 97 to3xyz() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 98 toAer() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 99 toCartesian() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 100 toDatum() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 101 toEcef() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 102 toEnu() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 103 toLatLon() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 104 toLocal() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 105 toLtp() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 106 toNed() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 107 toNvector() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 108 toRefFrame() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 109 toRepr() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 110 toRtp() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 111 toStr() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 112 toStr2() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 113 toTransform() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 114 toTransforms_() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 115 toVector() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 116 toXyz() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 117 trilaterate2d2() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 118 trilaterate3d2() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 119 typename property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 120 unit() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 121 x Property: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 122 x2y2z2 Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 123 x2y2z23 property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 124 xyz Property: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 125 xyz3 property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 126 y Property: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 127 z Property: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n\n    testCartesianMro(24.07.29)\n    test 128 pygeodesy.sphericalNvector: pygeodesy.sphericalNvector.Cartesian, pygeodesy.sphericalBase.CartesianSphericalBase, pygeodesy.cartesianBase.CartesianBase, pygeodesy.vector3d.Vector3d, pygeodesy.vector3dBase.Vector3dBase, pygeodesy.named._NamedBase, pygeodesy.ecefLocals._EcefLocal, pygeodesy.named._Named\n    test 129 pygeodesy.sphericalTrigonometry: pygeodesy.sphericalTrigonometry.Cartesian, pygeodesy.sphericalBase.CartesianSphericalBase, pygeodesy.cartesianBase.CartesianBase, pygeodesy.vector3d.Vector3d, pygeodesy.vector3dBase.Vector3dBase, pygeodesy.named._NamedBase, pygeodesy.ecefLocals._EcefLocal, pygeodesy.named._Named\n    test 130 pygeodesy.ellipsoidalNvector: pygeodesy.ellipsoidalNvector.Cartesian, pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase, pygeodesy.cartesianBase.CartesianBase, pygeodesy.vector3d.Vector3d, pygeodesy.vector3dBase.Vector3dBase, pygeodesy.named._NamedBase, pygeodesy.ecefLocals._EcefLocal, pygeodesy.named._Named\n    test 131 pygeodesy.ellipsoidalVincenty: pygeodesy.ellipsoidalVincenty.Cartesian, pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase, pygeodesy.cartesianBase.CartesianBase, pygeodesy.vector3d.Vector3d, pygeodesy.vector3dBase.Vector3dBase, pygeodesy.named._NamedBase, pygeodesy.ecefLocals._EcefLocal, pygeodesy.named._Named\n    test 132 pygeodesy.ellipsoidalKarney: pygeodesy.ellipsoidalKarney.Cartesian, pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase, pygeodesy.cartesianBase.CartesianBase, pygeodesy.vector3d.Vector3d, pygeodesy.vector3dBase.Vector3dBase, pygeodesy.named._NamedBase, pygeodesy.ecefLocals._EcefLocal, pygeodesy.named._Named\n    test 133 pygeodesy.ellipsoidalExact: pygeodesy.ellipsoidalExact.Cartesian, pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase, pygeodesy.cartesianBase.CartesianBase, pygeodesy.vector3d.Vector3d, pygeodesy.vector3dBase.Vector3dBase, pygeodesy.named._NamedBase, pygeodesy.ecefLocals._EcefLocal, pygeodesy.named._Named\n    test 134 pygeodesy.ellipsoidalGeodSolve: pygeodesy.ellipsoidalGeodSolve.Cartesian, pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase, pygeodesy.cartesianBase.CartesianBase, pygeodesy.vector3d.Vector3d, pygeodesy.vector3dBase.Vector3dBase, pygeodesy.named._NamedBase, pygeodesy.ecefLocals._EcefLocal, pygeodesy.named._Named\n\n    testLatLonAttrs(24.07.29)\n    test 135 alongTrackDistanceTo() method: pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 136 antipode() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 137 attrs() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 138 bearingTo() method: pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 139 bearingTo2() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 140 bounds() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 141 boundsOf() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 142 chordTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 143 circin6() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 144 circum3() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 145 circum4_() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 146 classname Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 147 classnaming _NamedProperty: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 148 classof() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 149 clipid property: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 150 compassAngle() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 151 compassAngleTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 152 convergence _Deprecated_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 153 convertDatum() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 154 convertRefFrame() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 155 copy() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 156 cosineAndoyerLambertTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 157 cosineForsytheAndoyerLambertTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 158 cosineLawTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 159 crossingParallels() method: pygeodesy.sphericalTrigonometry\n    test 160 crossTrackDistanceTo() method: pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 161 datum _NamedProperty: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 162 deltaTo() method: pygeodesy.ellipsoidalNvector\n    test 163 destination() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 164 destination2() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalVincenty\n    test 165 destinationNed() method: pygeodesy.ellipsoidalNvector\n    test 166 destinationXyz() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 167 distanceTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 168 distanceTo2() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 169 distanceTo3() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalVincenty\n    test 170 dup() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 171 Ecef property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 172 Ecef property_ROver: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 173 elevation2() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 174 ellipsoid() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 175 ellipsoidalLatLon property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 176 ellipsoids() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 177 epoch _NamedProperty: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 178 epsilon _NamedProperty: pygeodesy.ellipsoidalVincenty\n    test 179 equals() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 180 equals3() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 181 Equidistant Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 182 equirectangularTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 183 euclideanTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 184 finalBearingOn() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalVincenty\n    test 185 finalBearingTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 186 flatLocalTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 187 flatPolarTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 188 gamma property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 189 geodesic property_RO: pygeodesy.ellipsoidalVincenty\n    test 190 geodesic Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney\n    test 191 geodesicx Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve\n    test 192 geoidHeight2() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 193 greatCircle() method: pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 194 greatCircleTo() method: pygeodesy.sphericalNvector\n    test 195 hartzell() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 196 haversineTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 197 height Property: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 198 height4() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 199 heightStr() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 200 hubenyTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 201 initialBearingTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 202 intermediateChordTo() method: pygeodesy.sphericalNvector\n    test 203 intermediateTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 204 intersecant2() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 205 intersection() method: pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 206 intersection2() method: pygeodesy.sphericalNvector\n    test 207 intersection3() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 208 intersections2() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 209 isantipode() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 210 isantipodeTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 211 isEllipsoidal Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 212 isenclosedBy() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 213 isEnclosedBy() method: pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 214 isequalTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 215 isequalTo3() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 216 isnormal Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 217 isSpherical Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 218 isWithin() method: pygeodesy.sphericalNvector\n    test 219 iswithin() method: pygeodesy.sphericalNvector\n    test 220 iteration property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 221 iterations _NamedProperty: pygeodesy.ellipsoidalVincenty\n    test 222 lam Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 223 lat Property: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 224 latlon Property: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 225 latlon2() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 226 latlon2round() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 227 latlon_() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 228 latlonheight Property: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 229 lon Property: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 230 maxLat() method: pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 231 methodname() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 232 midpointTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 233 minLat() method: pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 234 name _NamedProperty: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 235 named Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 236 named2 Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 237 named3 Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 238 named4 Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 239 napieradius _NamedProperty: pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 240 nearestOn() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 241 nearestOn2() method: pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 242 nearestOn3() method: pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 243 nearestOn6() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 244 nearestOn8() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalVincenty\n    test 245 nearestTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 246 normal() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 247 others() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 248 parse() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 249 phi Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 250 philam Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 251 philam2() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 252 philamheight Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 253 plumbTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalVincenty\n    test 254 points() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 255 points2() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 256 PointsIter() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 257 radii11() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 258 reframe _NamedProperty: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 259 rename() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 260 renamed() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 261 rhumbAzimuthTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 262 rhumbBearingTo() method: pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 263 rhumbDestination() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 264 rhumbDistanceTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 265 rhumbIntersecant2() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 266 rhumbLine() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 267 rhumbMidpointTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 268 scale Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 269 sizeof property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 270 sphericalLatLon property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 271 thomasTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 272 to2ab() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 273 to3llh() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 274 to3xyz() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 275 toAer() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 276 toCartesian() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 277 toCss() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 278 toDatum() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 279 toEcef() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 280 toEnu() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 281 toEtm() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 282 toLcc() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 283 toLocal() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 284 toLtp() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 285 toMgrs() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 286 toNed() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 287 toNormal() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 288 toNvector() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 289 toOsgr() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 290 toRefFrame() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 291 toRepr() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 292 toStr() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 293 toStr2() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 294 toTransform() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 295 toUps() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 296 toUtm() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 297 toUtmUps() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 298 toVector() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 299 toVector3d() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 300 toWm() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 301 toXyz() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 302 triangle7() method: pygeodesy.sphericalTrigonometry\n    test 303 triangulate() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 304 trilaterate() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 305 trilaterate5() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 306 typename property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 307 vincentysTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 308 xyz property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 309 xyz3 property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 310 xyzh Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n\n    testLatLonMro(24.07.29)\n    test 311 pygeodesy.sphericalNvector: pygeodesy.sphericalNvector.LatLon, pygeodesy.nvectorBase.LatLonNvectorBase, pygeodesy.sphericalBase.LatLonSphericalBase, pygeodesy.latlonBase.LatLonBase, pygeodesy.named._NamedBase, pygeodesy.ecefLocals._EcefLocal, pygeodesy.named._Named\n    test 312 pygeodesy.sphericalTrigonometry: pygeodesy.sphericalTrigonometry.LatLon, pygeodesy.sphericalBase.LatLonSphericalBase, pygeodesy.latlonBase.LatLonBase, pygeodesy.named._NamedBase, pygeodesy.ecefLocals._EcefLocal, pygeodesy.named._Named\n    test 313 pygeodesy.ellipsoidalNvector: pygeodesy.ellipsoidalNvector.LatLon, pygeodesy.nvectorBase.LatLonNvectorBase, pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase, pygeodesy.latlonBase.LatLonBase, pygeodesy.named._NamedBase, pygeodesy.ecefLocals._EcefLocal, pygeodesy.named._Named\n    test 314 pygeodesy.ellipsoidalVincenty: pygeodesy.ellipsoidalVincenty.LatLon, pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI, pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase, pygeodesy.latlonBase.LatLonBase, pygeodesy.named._NamedBase, pygeodesy.ecefLocals._EcefLocal, pygeodesy.named._Named\n    test 315 pygeodesy.ellipsoidalKarney: pygeodesy.ellipsoidalKarney.LatLon, pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI, pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase, pygeodesy.latlonBase.LatLonBase, pygeodesy.named._NamedBase, pygeodesy.ecefLocals._EcefLocal, pygeodesy.named._Named\n    test 316 pygeodesy.ellipsoidalExact: pygeodesy.ellipsoidalExact.LatLon, pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI, pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase, pygeodesy.latlonBase.LatLonBase, pygeodesy.named._NamedBase, pygeodesy.ecefLocals._EcefLocal, pygeodesy.named._Named\n    test 317 pygeodesy.ellipsoidalGeodSolve: pygeodesy.ellipsoidalGeodSolve.LatLon, pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI, pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase, pygeodesy.latlonBase.LatLonBase, pygeodesy.named._NamedBase, pygeodesy.ecefLocals._EcefLocal, pygeodesy.named._Named\n\n    testNvectorAttrs(24.07.29)\n    test 318 angleTo() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 319 apply() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 320 attrs() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 321 bearing() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 322 bools() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 323 circin6() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 324 circum3() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 325 circum4_() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 326 classname Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 327 classnaming _NamedProperty: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 328 classof() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 329 cmp() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 330 copy() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 331 cross() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 332 crosserrors _NamedProperty: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 333 datum Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 334 dividedBy() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 335 dividedBy_() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 336 dot() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 337 dup() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 338 Ecef property_ROnce: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 339 ellipsoidalNvector property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 340 equals() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 341 equirectangular() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 342 euclid Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 343 fabs() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 344 floats() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 345 floorDividedBy() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 346 floorDividedBy_() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 347 greatCircle() method: pygeodesy.sphericalNvector\n    test 348 H _NamedProperty: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 349 h _NamedProperty: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 350 homogeneous property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 351 hStr() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 352 intermediateTo() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 353 ints() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 354 iscolinearWith() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 355 isconjugateTo() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 356 isEllipsoidal Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 357 isequalTo() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 358 isSpherical Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 359 iteration property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 360 lam Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 361 lat Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 362 latlon Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 363 latlonheight Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 364 latlonheightdatum Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 365 length Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 366 length2 Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 367 lon Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 368 meeus2() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 369 methodname() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 370 minus() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 371 minus_() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 372 name _NamedProperty: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 373 named Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 374 named2 Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 375 named3 Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 376 named4 Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 377 nearestOn() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 378 nearestOn6() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 379 negate() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 380 others() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 381 parse() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 382 phi Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 383 philam Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 384 philamheight Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 385 philamheightdatum Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 386 plus() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 387 plus_() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 388 pow() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 389 radii11() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 390 rename() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 391 renamed() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 392 rotate() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 393 rotateAround() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 394 sizeof property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 395 soddy4() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 396 sphericalNvector property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 397 sum() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 398 times() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 399 times_() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 400 to2ab() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 401 to2ll() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 402 to3abh() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 403 to3llh() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 404 to3xyz() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 405 to4xyzh() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 406 toCartesian() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 407 toLatLon() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 408 toRepr() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 409 toStr() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 410 toStr2() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 411 toVector3d() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 412 trilaterate2d2() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 413 trilaterate3d2() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 414 typename property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 415 unit() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 416 x Property: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 417 x2y2z2 Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 418 x2y2z23 property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 419 xyz Property: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 420 xyz3 property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 421 xyzh Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 422 y Property: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 423 z Property: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n\n    testNvectorMro(24.07.29)\n    test 424 pygeodesy.sphericalNvector: pygeodesy.sphericalNvector.Nvector, pygeodesy.nvectorBase.NvectorBase, pygeodesy.vector3d.Vector3d, pygeodesy.vector3dBase.Vector3dBase, pygeodesy.named._NamedBase, pygeodesy.named._Named\n    test 425 pygeodesy.ellipsoidalNvector: pygeodesy.ellipsoidalNvector.Nvector, pygeodesy.nvectorBase.NvectorBase, pygeodesy.vector3d.Vector3d, pygeodesy.vector3dBase.Vector3dBase, pygeodesy.named._NamedBase, pygeodesy.named._Named\n\n    testVector3dAttrs(24.07.29)\n    test 426 angleTo() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 427 apply() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 428 attrs() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 429 bearing() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 430 bools() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 431 circin6() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 432 circum3() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 433 circum4_() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 434 classname Property_RO: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 435 classnaming _NamedProperty: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 436 classof() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 437 cmp() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 438 copy() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 439 cross() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 440 crosserrors _NamedProperty: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 441 dividedBy() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 442 dividedBy_() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 443 dot() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 444 dup() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 445 equals() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 446 equirectangular() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 447 euclid Property_RO: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 448 fabs() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 449 floats() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 450 floorDividedBy() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 451 floorDividedBy_() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 452 homogeneous property_RO: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 453 intermediateTo() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 454 ints() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 455 iscolinearWith() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 456 isconjugateTo() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 457 isequalTo() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 458 iteration property_RO: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 459 length Property_RO: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 460 length2 Property_RO: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 461 meeus2() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 462 methodname() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 463 minus() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 464 minus_() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 465 name _NamedProperty: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 466 named Property_RO: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 467 named2 Property_RO: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 468 named3 Property_RO: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 469 named4 Property_RO: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 470 nearestOn() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 471 nearestOn6() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 472 negate() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 473 others() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 474 parse() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 475 plus() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 476 plus_() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 477 pow() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 478 radii11() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 479 rename() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 480 renamed() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 481 rotate() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 482 rotateAround() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 483 sizeof property_RO: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 484 soddy4() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 485 sum() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 486 times() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 487 times_() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 488 to3xyz() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 489 toCartesian() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 490 toRepr() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 491 toStr() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 492 toStr2() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 493 trilaterate2d2() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 494 trilaterate3d2() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 495 typename property_RO: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 496 unit() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 497 x Property: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 498 x2y2z2 Property_RO: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 499 x2y2z23 property_RO: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 500 xyz Property: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 501 xyz3 property_RO: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 502 y Property: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 503 z Property: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n\n    testVector3dMro(24.07.29)\n    test 504 pygeodesy.nvectorBase: pygeodesy.vector3d.Vector3d, pygeodesy.vector3dBase.Vector3dBase, pygeodesy.named._NamedBase, pygeodesy.named._Named\n    test 505 pygeodesy.vector3d: pygeodesy.vector3d.Vector3d, pygeodesy.vector3dBase.Vector3dBase, pygeodesy.named._NamedBase, pygeodesy.named._Named\n    test 506 pygeodesy.sphericalTrigonometry: pygeodesy.vector3d.Vector3d, pygeodesy.vector3dBase.Vector3dBase, pygeodesy.named._NamedBase, pygeodesy.named._Named\n\n    testCopyAttr(24.07.29)\n    test 507 ADict: copy\n    test 508 Aer: copy\n    test 509 Aer4Tuple: copy\n    test 510 Albers7Tuple: copy\n    test 511 AlbersEqualArea: copy\n    test 512 AlbersEqualArea2: copy\n    test 513 AlbersEqualArea4: copy\n    test 514 AlbersEqualAreaCylindrical: copy\n    test 515 AlbersEqualAreaNorth: copy\n    test 516 AlbersEqualAreaSouth: copy\n    test 517 Ang: copy\n    test 518 Area3Tuple: copy\n    test 519 Attitude: copy\n    test 520 Attitude4Tuple: copy\n    test 521 Azimuth: copy\n    test 522 Azimuthal7Tuple: copy\n    test 523 Band: copy\n    test 524 Bearing: copy\n    test 525 Bearing2Tuple: copy\n    test 526 Bearing_: copy\n    test 527 BetOmgAlp5Tuple: copy\n    test 528 BetOmgGam5Tuple: copy\n    test 529 BetaOmega2Tuple: copy\n    test 530 BetaOmega3Tuple: copy\n    test 531 Bool: copy\n    test 532 BooleanFHP: copy\n    test 533 BooleanGH: copy\n    test 534 Bounds2Tuple: copy\n    test 535 Bounds4Tuple: copy\n    test 536 Cartesian5Tuple: copy\n    test 537 CassiniSoldner: copy\n    test 538 ChLV: copy\n    test 539 ChLV9Tuple: copy\n    test 540 ChLVEN2Tuple: copy\n    test 541 ChLVYX2Tuple: copy\n    test 542 ChLVa: copy\n    test 543 ChLVe: copy\n    test 544 ChLVyx2Tuple: copy\n    test 545 Circin6Tuple: copy\n    test 546 Circle4Tuple: copy\n    test 547 Circum3Tuple: copy\n    test 548 Circum4Tuple: copy\n    test 549 ClipCS4Tuple: copy\n    test 550 ClipFHP4Tuple: copy\n    test 551 ClipGH4Tuple: copy\n    test 552 ClipLB6Tuple: copy\n    test 553 ClipSH3Tuple: copy\n    test 554 Collins5Tuple: copy\n    test 555 Conformal: copy\n    test 556 Conformal2Tuple: copy\n    test 557 Conformal3: copy\n    test 558 Conformal3B: copy\n    test 559 Conformal3Sphere: copy\n    test 560 Conformal5Tuple: copy\n    test 561 ConformalSphere: copy\n    test 562 Conic: copy\n    test 563 Css: copy\n    test 564 Curvature2Tuple: copy\n    test 565 Datum: copy\n    test 566 Degrees: copy\n    test 567 Degrees2: copy\n    test 568 Degrees_: copy\n    test 569 Destination2Tuple: copy\n    test 570 Destination3Tuple: copy\n    test 571 Direct9Tuple: copy\n    test 572 Distance: copy\n    test 573 Distance2Tuple: copy\n    test 574 Distance3Tuple: copy\n    test 575 Distance4Tuple: copy\n    test 576 Distance_: copy\n    test 577 DivMod2Tuple: copy\n    test 578 EasNor2Tuple: copy\n    test 579 EasNor3Tuple: copy\n    test 580 EasNorAziRk4Tuple: copy\n    test 581 EasNorAziRkEqu6Tuple: copy\n    test 582 EasNorRadius3Tuple: copy\n    test 583 Easting: copy\n    test 584 Ecef9Tuple: copy\n    test 585 EcefFarrell21: copy\n    test 586 EcefFarrell22: copy\n    test 587 EcefKarney: copy\n    test 588 EcefMatrix: copy\n    test 589 EcefSudano: copy\n    test 590 EcefUPC: copy\n    test 591 EcefVeness: copy\n    test 592 EcefYou: copy\n    test 593 Elevation2Tuple: copy\n    test 594 Ellipse: copy\n    test 595 Ellipse5Tuple: copy\n    test 596 Ellipsoid: copy\n    test 597 Ellipsoid2: copy\n    test 598 Elliptic: copy\n    test 599 Elliptic3Tuple: copy\n    test 600 Enu: copy\n    test 601 Enu4Tuple: copy\n    test 602 Epoch: copy\n    test 603 Epsg: copy\n    test 604 Equidistant: copy\n    test 605 EquidistantExact: copy\n    test 606 EquidistantGeodSolve: copy\n    test 607 EquidistantKarney: copy\n    test 608 Etm: copy\n    test 609 ExactTransverseMercator: copy\n    test 610 FIx: copy\n    test 611 Fcbrt: copy\n    test 612 Fcook: copy\n    test 613 Fdot: copy\n    test 614 Fdot_: copy\n    test 615 Feet: copy\n    test 616 Fhorner: copy\n    test 617 Fhypot: copy\n    test 618 Flinear: copy\n    test 619 Float: copy\n    test 620 Float_: copy\n    test 621 Footprint5Tuple: copy\n    test 622 Forward4Tuple: copy\n    test 623 Fpolynomial: copy\n    test 624 Fpowers: copy\n    test 625 Frechet: copy\n    test 626 Frechet6Tuple: copy\n    test 627 FrechetCosineLaw: copy\n    test 628 FrechetDegrees: copy\n    test 629 FrechetDistanceTo: copy\n    test 630 FrechetEquirectangular: copy\n    test 631 FrechetEuclidean: copy\n    test 632 FrechetExact: copy\n    test 633 FrechetFlatLocal: copy\n    test 634 FrechetFlatPolar: copy\n    test 635 FrechetHaversine: copy\n    test 636 FrechetHubeny: copy\n    test 637 FrechetKarney: copy\n    test 638 FrechetRadians: copy\n    test 639 FrechetThomas: copy\n    test 640 FrechetVincentys: copy\n    test 641 Froot: copy\n    test 642 Frustum: copy\n    test 643 Fsqrt: copy\n    test 644 Fsum: copy\n    test 645 Fsum2Tuple: copy\n    test 646 Fwelford: copy\n    test 647 GDict: copy\n    test 648 Garef: copy\n    test 649 Geod3Solve8Tuple: copy\n    test 650 GeodSolve12Tuple: copy\n    test 651 Geodesic3Solve: copy\n    test 652 GeodesicAreaExact: copy\n    test 653 GeodesicExact: copy\n    test 654 GeodesicLine3Solve: copy\n    test 655 GeodesicLineExact: copy\n    test 656 GeodesicLineSolve: copy\n    test 657 GeodesicSolve: copy\n    test 658 Geohash: copy\n    test 659 GeoidEGM96: copy\n    test 660 GeoidG2012B: copy\n    test 661 GeoidHeight2Tuple: copy\n    test 662 GeoidHeight5Tuple: copy\n    test 663 GeoidKarney: copy\n    test 664 GeoidPGM: copy\n    test 665 Georef: copy\n    test 666 Gnomonic: copy\n    test 667 GnomonicExact: copy\n    test 668 GnomonicGeodSolve: copy\n    test 669 GnomonicKarney: copy\n    test 670 Hausdorff: copy\n    test 671 Hausdorff6Tuple: copy\n    test 672 HausdorffCosineLaw: copy\n    test 673 HausdorffDegrees: copy\n    test 674 HausdorffDistanceTo: copy\n    test 675 HausdorffEquirectangular: copy\n    test 676 HausdorffEuclidean: copy\n    test 677 HausdorffExact: copy\n    test 678 HausdorffFlatLocal: copy\n    test 679 HausdorffFlatPolar: copy\n    test 680 HausdorffHaversine: copy\n    test 681 HausdorffHubeny: copy\n    test 682 HausdorffKarney: copy\n    test 683 HausdorffRadians: copy\n    test 684 HausdorffThomas: copy\n    test 685 HausdorffVincentys: copy\n    test 686 Height: copy\n    test 687 HeightCubic: copy\n    test 688 HeightIDWcosineLaw: copy\n    test 689 HeightIDWdistanceTo: copy\n    test 690 HeightIDWequirectangular: copy\n    test 691 HeightIDWeuclidean: copy\n    test 692 HeightIDWexact: copy\n    test 693 HeightIDWflatLocal: copy\n    test 694 HeightIDWflatPolar: copy\n    test 695 HeightIDWhaversine: copy\n    test 696 HeightIDWhubeny: copy\n    test 697 HeightIDWkarney: copy\n    test 698 HeightIDWthomas: copy\n    test 699 HeightIDWvincentys: copy\n    test 700 HeightLSQBiSpline: copy\n    test 701 HeightLinear: copy\n    test 702 HeightSmoothBiSpline: copy\n    test 703 HeightX: copy\n    test 704 Height_: copy\n    test 705 Int: copy\n    test 706 Int_: copy\n    test 707 Intersect7Tuple: copy\n    test 708 Intersection3Tuple: copy\n    test 709 Intersectool: copy\n    test 710 Intersectool5Tuple: copy\n    test 711 Intersector: copy\n    test 712 Intersector5Tuple: copy\n    test 713 Inverse10Tuple: copy\n    test 714 KTransverseMercator: copy\n    test 715 Lam: copy\n    test 716 LambertEqualArea: copy\n    test 717 Lambertian: copy\n    test 718 Lamd: copy\n    test 719 Lat: copy\n    test 720 LatLon2PsxyIter: copy\n    test 721 LatLon2Tuple: copy\n    test 722 LatLon2psxy: copy\n    test 723 LatLon3Tuple: copy\n    test 724 LatLon4Tuple: copy\n    test 725 LatLonAziRk4Tuple: copy\n    test 726 LatLonDatum3Tuple: copy\n    test 727 LatLonDatum5Tuple: copy\n    test 728 LatLonFHP: copy\n    test 729 LatLonGH: copy\n    test 730 LatLonPrec3Tuple: copy\n    test 731 LatLonPrec5Tuple: copy\n    test 732 LatLon_: copy\n    test 733 Lat_: copy\n    test 734 Lcc: copy\n    test 735 Local9Tuple: copy\n    test 736 LocalCartesian: copy\n    test 737 Lon: copy\n    test 738 Lon_: copy\n    test 739 Los: copy\n    test 740 Ltp: copy\n    test 741 Meeus2Tuple: copy\n    test 742 Meter: copy\n    test 743 Meter2: copy\n    test 744 Meter3: copy\n    test 745 Meter_: copy\n    test 746 Mgrs: copy\n    test 747 Mgrs4Tuple: copy\n    test 748 Mgrs6Tuple: copy\n    test 749 Middle5Tuple: copy\n    test 750 NearestOn2Tuple: copy\n    test 751 NearestOn3Tuple: copy\n    test 752 NearestOn6Tuple: copy\n    test 753 NearestOn8Tuple: copy\n    test 754 Ned: copy\n    test 755 Ned4Tuple: copy\n    test 756 Neighbors8Dict: copy\n    test 757 Northing: copy\n    test 758 Number_: copy\n    test 759 Numpy2LatLon: copy\n    test 760 Orthographic: copy\n    test 761 Osgr: copy\n    test 762 Phi: copy\n    test 763 PhiLam2Tuple: copy\n    test 764 PhiLam3Tuple: copy\n    test 765 PhiLam4Tuple: copy\n    test 766 PhiLamZet5Tuple: copy\n    test 767 Phid: copy\n    test 768 Point3Tuple: copy\n    test 769 Points2Tuple: copy\n    test 770 PointsIter: copy\n    test 771 PolygonArea: copy\n    test 772 Precision_: copy\n    test 773 Radians: copy\n    test 774 Radians2: copy\n    test 775 Radians_: copy\n    test 776 Radical2Tuple: copy\n    test 777 Radii11Tuple: copy\n    test 778 Radius: copy\n    test 779 RadiusThetaPhi3Tuple: copy\n    test 780 Radius_: copy\n    test 781 RefFrame: copy\n    test 782 Resolutions2Tuple: copy\n    test 783 Reverse4Tuple: copy\n    test 784 Rhumb: copy\n    test 785 Rhumb8Tuple: copy\n    test 786 RhumbAux: copy\n    test 787 RhumbLine: copy\n    test 788 RhumbLineAux: copy\n    test 789 RhumbLineSolve: copy\n    test 790 RhumbSolve: copy\n    test 791 RhumbSolve7Tuple: copy\n    test 792 Scalar: copy\n    test 793 Scalar_: copy\n    test 794 Shape2Tuple: copy\n    test 795 Sizes3Tuple: copy\n    test 796 Soddy4Tuple: copy\n    test 797 Stereographic: copy\n    test 798 Str: copy\n    test 799 Survey3Tuple: copy\n    test 800 TRFXform: copy\n    test 801 TRFXform7Tuple: copy\n    test 802 Tienstra7Tuple: copy\n    test 803 Transform: copy\n    test 804 TransformXform: copy\n    test 805 TriAngle5Tuple: copy\n    test 806 TriSide2Tuple: copy\n    test 807 TriSide4Tuple: copy\n    test 808 Triangle7Tuple: copy\n    test 809 Triangle8Tuple: copy\n    test 810 Triaxial: copy\n    test 811 Triaxial3: copy\n    test 812 Triaxial3B: copy\n    test 813 Triaxial_: copy\n    test 814 Triaxum5Tuple: copy\n    test 815 Trilaterate5Tuple: copy\n    test 816 Tuple2LatLon: copy\n    test 817 Ups: copy\n    test 818 Utm: copy\n    test 819 UtmUps2Tuple: copy\n    test 820 UtmUps5Tuple: copy\n    test 821 UtmUps8Tuple: copy\n    test 822 UtmUpsLatLon5Tuple: copy\n    test 823 Uvw: copy\n    test 824 Uvw3Tuple: copy\n    test 825 Vector2Tuple: copy\n    test 826 Vector3Tuple: copy\n    test 827 Vector3d: copy\n    test 828 Vector4Tuple: copy\n    test 829 Wm: copy\n    test 830 XDict: copy\n    test 831 Xyz4Tuple: copy\n    test 832 XyzLocal: copy\n    test 833 Zone: copy\n    test 834 a_f2Tuple: copy\n\n    all 834 testClasses.py tests passed (pygeodesy 26.3.26 Python 2.7.18 64bit arm64_x86_64 geographiclib 1.50 numpy 1.16.6 scipy 1.2.2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 -W  default) 7.257 ms\nrunning /Library/Framewo....ython -W default ~/PyGeodesy/test/testClipy.py\n\n    testing testClipy.py 23.03.27\n\n    testing(pygeodesy.ellipsoidalNvector, 25.05.12)\n    test 1 clipCS4.p1: 07.5°N, 010.0°E\n    test 2 clipCS4.p2: 04.5°N, 000.0°E\n    test 3 clipCS4.i: 3\n    test 4 clipCS4.j: 0\n    test 5 clipCS4.p1: 05.0°N, 005.0°E\n    test 6 clipCS4.p2: 05.0°N, 005.0°E\n    test 7 clipCS4.i: 1\n    test 8 clipCS4.j: 2\n    test 9 clipLB6.p1: 07.5°N, 010.0°E\n    test 10 clipLB6.p2: 04.5°N, 000.0°E\n    test 11 clipLB6.i: 3\n    test 12 clipLB6.fi: 3.25\n    test 13 clipLB6.fi: 07.5°N, 010.0°E\n    test 14 clipLB6.fj: 3.75\n    test 15 clipLB6.fj: 04.5°N, 000.0°E\n    test 16 clipLB6.j: 0\n    test 17 clipLB6.fin: 4\n    test 18 clipLB6.p1: 05.0°N, 005.0°E\n    test 19 clipLB6.p2: 05.0°N, 005.0°E\n    test 20 clipLB6.i: 1\n    test 21 clipLB6.fi: 1.00\n    test 22 clipLB6.fi: 05.0°N, 005.0°E\n    test 23 clipLB6.fj: 2.00\n    test 24 clipLB6.fj: 05.0°N, 005.0°E\n    test 25 clipLB6.j: 2\n    test 26 clipLB6.fin: 4\n    test 27 clipCS4.p1: 60.0°N, 123.333333°E\n    test 28 clipCS4.p2: 62.857143°N, 130.0°E\n    test 29 clipCS4.i: 0\n    test 30 clipCS4.j: 1\n    test 31 clipLB6.p1: 60.0°N, 123.333333°E\n    test 32 clipLB6.p2: 62.857143°N, 130.0°E\n    test 33 clipLB6.i: 0\n    test 34 clipLB6.fi: 0.666667\n    test 35 clipLB6.fi: 60.0°N, 123.333333°E\n    test 36 clipLB6.fj: 0.714286\n    test 37 clipLB6.fj: 62.857143°N, 130.0°E\n    test 38 clipLB6.j: 1\n    test 39 clipLB6.fin: 0\n    test 40 clipCS4.p1: 17.5°N, 020.0°E\n    test 41 clipCS4.p2: 16.25°N, 015.0°E\n    test 42 clipCS4.i: 2\n    test 43 clipCS4.j: 0\n    test 44 clipLB6.p1: 17.5°N, 020.0°E\n    test 45 clipLB6.p2: 16.25°N, 015.0°E\n    test 46 clipLB6.i: 2\n    test 47 clipLB6.fi: 2.500\n    test 48 clipLB6.fi: 17.5°N, 020.0°E\n    test 49 clipLB6.fj: 2.750\n    test 50 clipLB6.fj: 16.25°N, 015.0°E\n    test 51 clipLB6.j: 0\n    test 52 clipLB6.fin: 3\n    test 53 clipSH1.len: 4\n    test 54 clipSH1.0: 20.0°N, 020.0°E\n    test 55 clipSH1.LL: True\n    test 56 clipSH1.1: 17.5°N, 020.0°E\n    test 57 clipSH1.LL: True\n    test 58 clipSH1.2: 16.25°N, 015.0°E\n    test 59 clipSH1.LL: True\n    test 60 clipSH1.3: 20.0°N, 015.0°E\n    test 61 clipSH1.LL: True\n    test 62 clipSH2.len: 5\n    test 63 clipSH2.0: 18.571°N, 024.286°E\n    test 64 clipSH2.LL: True\n    test 65 clipSH2.1: 16.667°N, 016.667°E\n    test 66 clipSH2.LL: True\n    test 67 clipSH2.2: 20.0°N, 015.0°E\n    test 68 clipSH2.LL: True\n    test 69 clipSH2.3: 25.0°N, 020.0°E\n    test 70 clipSH2.LL: True\n    test 71 clipSH2.4: 22.0°N, 026.0°E\n    test 72 clipSH2.LL: True\n    test 73 clipSH3.len: 2\n    test 74 clipSH3.0: 18.571°N, 024.286°E\n    test 75 clipSH3.LL: True\n    test 76 clipSH3.1: 16.667°N, 016.667°E\n    test 77 clipSH3.LL: True\n    test 78 clipSH3.edge.: True\n    test 79 clipSH3.len: 2\n    test 80 clipSH3.0: 16.667°N, 016.667°E\n    test 81 clipSH3.LL: True\n    test 82 clipSH3.1: 20.0°N, 015.0°E\n    test 83 clipSH3.LL: True\n    test 84 clipSH3.edge.: False\n    test 85 clipSH3.len: 2\n    test 86 clipSH3.0: 20.0°N, 015.0°E\n    test 87 clipSH3.LL: True\n    test 88 clipSH3.1: 25.0°N, 020.0°E\n    test 89 clipSH3.LL: True\n    test 90 clipSH3.edge.: True\n    test 91 clipSH3.len: 2\n    test 92 clipSH3.0: 25.0°N, 020.0°E\n    test 93 clipSH3.LL: True\n    test 94 clipSH3.1: 22.0°N, 026.0°E\n    test 95 clipSH3.LL: True\n    test 96 clipSH3.edge.: True\n    test 97 clipSH3.len: 2\n    test 98 clipSH3.0: 22.0°N, 026.0°E\n    test 99 clipSH3.LL: True\n    test 100 clipSH3.1: 18.571°N, 024.286°E\n    test 101 clipSH3.LL: True\n    test 102 clipSH3.edge.: False\n    test 103 clipSH2.reversed.len: 5\n    test 104 clipSH2.reversed.0: 18.571°N, 024.286°E\n    test 105 clipSH2.reversed.LL: True\n    test 106 clipSH2.reversed.1: 16.667°N, 016.667°E\n    test 107 clipSH2.reversed.LL: True\n    test 108 clipSH2.reversed.2: 20.0°N, 015.0°E\n    test 109 clipSH2.reversed.LL: True\n    test 110 clipSH2.reversed.3: 25.0°N, 020.0°E\n    test 111 clipSH2.reversed.LL: True\n    test 112 clipSH2.reversed.4: 22.0°N, 026.0°E\n    test 113 clipSH2.reversed.LL: True\n    test 114 clipSH3.reversed.len: 2\n    test 115 clipSH3.reversed.0: 18.571°N, 024.286°E\n    test 116 clipSH3.reversed.LL: True\n    test 117 clipSH3.reversed.1: 16.667°N, 016.667°E\n    test 118 clipSH3.reversed.LL: True\n    test 119 clipSH3.edge.reversed.: True\n    test 120 clipSH3.reversed.len: 2\n    test 121 clipSH3.reversed.0: 16.667°N, 016.667°E\n    test 122 clipSH3.reversed.LL: True\n    test 123 clipSH3.reversed.1: 20.0°N, 015.0°E\n    test 124 clipSH3.reversed.LL: True\n    test 125 clipSH3.edge.reversed.: False\n    test 126 clipSH3.reversed.len: 2\n    test 127 clipSH3.reversed.0: 20.0°N, 015.0°E\n    test 128 clipSH3.reversed.LL: True\n    test 129 clipSH3.reversed.1: 25.0°N, 020.0°E\n    test 130 clipSH3.reversed.LL: True\n    test 131 clipSH3.edge.reversed.: True\n    test 132 clipSH3.reversed.len: 2\n    test 133 clipSH3.reversed.0: 25.0°N, 020.0°E\n    test 134 clipSH3.reversed.LL: True\n    test 135 clipSH3.reversed.1: 22.0°N, 026.0°E\n    test 136 clipSH3.reversed.LL: True\n    test 137 clipSH3.edge.reversed.: True\n    test 138 clipSH3.reversed.len: 2\n    test 139 clipSH3.reversed.0: 22.0°N, 026.0°E\n    test 140 clipSH3.reversed.LL: True\n    test 141 clipSH3.reversed.1: 18.571°N, 024.286°E\n    test 142 clipSH3.reversed.LL: True\n    test 143 clipSH3.edge.reversed.: False\n    test 144 clipSH.allout: ()\n    test 145 clipSH3.allout: ()\n    test 146 clipSH.allout.reversed: ()\n    test 147 clipSH3.allout.reversed: ()\n    test 148 clipSH.allin.len: 4\n    test 149 clipSH.allin.0: 20.0°N, 030.0°E\n    test 150 clipSH.allin.LL: True\n    test 151 clipSH.allin.1: 15.0°N, 010.0°E\n    test 152 clipSH.allin.LL: True\n    test 153 clipSH.allin.2: 25.0°N, 020.0°E\n    test 154 clipSH.allin.LL: True\n    test 155 clipSH.allin.3: 20.0°N, 030.0°E\n    test 156 clipSH.allin.LL: True\n    test 157 clipSH3.allin.len: 2\n    test 158 clipSH3.allin.0: 20.0°N, 030.0°E\n    test 159 clipSH3.allin.LL: True\n    test 160 clipSH3.allin.1: 15.0°N, 010.0°E\n    test 161 clipSH3.allin.LL: True\n    test 162 clipSH3.edge.: True\n    test 163 clipSH3.allin.len: 2\n    test 164 clipSH3.allin.0: 15.0°N, 010.0°E\n    test 165 clipSH3.allin.LL: True\n    test 166 clipSH3.allin.1: 25.0°N, 020.0°E\n    test 167 clipSH3.allin.LL: True\n    test 168 clipSH3.edge.: True\n    test 169 clipSH.allin.reversed.len: 4\n    test 170 clipSH.allin.reversed.0: 20.0°N, 030.0°E\n    test 171 clipSH.allin.reversed.LL: True\n    test 172 clipSH.allin.reversed.1: 15.0°N, 010.0°E\n    test 173 clipSH.allin.reversed.LL: True\n    test 174 clipSH.allin.reversed.2: 25.0°N, 020.0°E\n    test 175 clipSH.allin.reversed.LL: True\n    test 176 clipSH.allin.reversed.3: 20.0°N, 030.0°E\n    test 177 clipSH.allin.reversed.LL: True\n    test 178 clipSH3.allin.reversed.len: 2\n    test 179 clipSH3.allin.reversed.0: 20.0°N, 030.0°E\n    test 180 clipSH3.allin.reversed.LL: True\n    test 181 clipSH3.allin.reversed.1: 15.0°N, 010.0°E\n    test 182 clipSH3.allin.reversed.LL: True\n    test 183 clipSH3.edge.reversed.: True\n    test 184 clipSH3.allin.reversed.len: 2\n    test 185 clipSH3.allin.reversed.0: 15.0°N, 010.0°E\n    test 186 clipSH3.allin.reversed.LL: True\n    test 187 clipSH3.allin.reversed.1: 25.0°N, 020.0°E\n    test 188 clipSH3.allin.reversed.LL: True\n    test 189 clipSH3.edge.reversed.: True\n    test 190 clipSH.warped: clipSH clip region ((LatLon(10°00′00.0″N, 010°00′00.0″E), LatLon(20°00′00.0″N, 020°00′00.0″E), LatLon(10°00′00.0″N, 020°00′00.0″E), LatLon(20°00′00.0″N, 010°00′00.0″E))): not convex\n    test 191 clipSH3.warped: clipSH3 clip region ((LatLon(10°00′00.0″N, 010°00′00.0″E), LatLon(20°00′00.0″N, 020°00′00.0″E), LatLon(10°00′00.0″N, 020°00′00.0″E), LatLon(20°00′00.0″N, 010°00′00.0″E))): not convex\n    test 192 clipSH.warpedreversed.: clipSH clip region ((LatLon(20°00′00.0″N, 010°00′00.0″E), LatLon(10°00′00.0″N, 020°00′00.0″E), LatLon(20°00′00.0″N, 020°00′00.0″E), LatLon(10°00′00.0″N, 010°00′00.0″E))): not convex\n    test 193 clipSH3.warpedreversed.: clipSH3 clip region ((LatLon(20°00′00.0″N, 010°00′00.0″E), LatLon(10°00′00.0″N, 020°00′00.0″E), LatLon(20°00′00.0″N, 020°00′00.0″E), LatLon(10°00′00.0″N, 010°00′00.0″E))): not convex\n    test 194 boundsOf: (10.0, 10.0, 20.0, 20.0)\n    test 195 boundsOf: (15.0, 10.0, 25.0, 30.0)\n    test 196 enclosures: (5.0, 0.0, -5.0, -10.0)\n    test 197 overlap: (15.0, 10.0, 20.0, 20.0)\n    test 198 clipSH4: 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 0.0\n    test 199 clipSH5: 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 0.0\n    test 200 clipSH6: 1.0, 0.5, 2.0, 1.0, 2.0, 0.5\n    test 201 clipSH7: -0.2, 2.0, 0.2, 2.0, 0.5, 0.5, 2.0, 0.2, 2.0, -0.2, 0.5, -0.5, 0.2, -2.0, -0.2, -2.0, -0.5, -0.5, -2.0, -0.2, -2.0, 0.2, -0.5, 0.5\n    test 202 clipSH8: -0.33, 1.33, 0.0, 2.0, 0.33, 1.33, 0.5, 0.5, 0.78, 0.44, 1.18, -0.36, 0.5, -0.5, 0.2, -2.0, -0.2, -2.0, -0.5, -0.5, -1.18, -0.36, -0.78, 0.44, -0.5, 0.5\n    test 203 clipSH9: None\n    test 204 clipSH10: None\n    test 205 clipSH11: None\n    test 206 clipSH12: None\n\n    test 207 clipGH4: (ClipGH4Tuple(lat=5.0, lon=3.571429, height=1.714286, clipid=0), ClipGH4Tuple(lat=7.0, lon=5.0, height=2.0, clipid=0), ClipGH4Tuple(lat=5.0, lon=6.428571, height=2.285714, clipid=0), ClipGH4Tuple(lat=3.0, lon=5.0, height=2.0, clipid=0))\n\n    test 208 clipFHP4: (ClipFHP4Tuple(lat=7.0, lon=5.0, height=2.0, clipid=0), ClipFHP4Tuple(lat=5.0, lon=6.428571, height=2.285714, clipid=0), ClipFHP4Tuple(lat=3.0, lon=5.0, height=2.0, clipid=0), ClipFHP4Tuple(lat=5.0, lon=3.571429, height=1.714286, clipid=0))\n\n    test 209 Fig 8: (ClipFHP4Tuple(lat=4.0, lon=12.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=-1.0, lon=12.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=3.0, lon=8.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=5.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=3.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=2.0, lon=1.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=6.0, lon=3.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=6.0, lon=11.0, height=0.0, clipid=0))\n    test 210 Fig 14: (ClipFHP4Tuple(lat=3.0, lon=3.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=0.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=6.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=6.0, lon=6.0, height=0.0, clipid=1), ClipFHP4Tuple(lat=9.0, lon=3.0, height=0.0, clipid=1), ClipFHP4Tuple(lat=6.0, lon=0.0, height=0.0, clipid=1), ClipFHP4Tuple(lat=3.0, lon=3.0, height=0.0, clipid=1))\n    test 211 Fig 15: (ClipFHP4Tuple(lat=1.0, lon=3.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=4.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=2.0, lon=4.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=2.0, lon=0.0, height=0.0, clipid=1), ClipFHP4Tuple(lat=0.0, lon=0.0, height=0.0, clipid=1), ClipFHP4Tuple(lat=1.0, lon=1.0, height=0.0, clipid=1))\n    test 212 Fig 16: (ClipFHP4Tuple(lat=0.0, lon=0.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=1.0, lon=0.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=2.0, lon=2.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=2.0, height=0.0, clipid=0))\n    test 213 Fig 18: ((-10, -10, 0), (-10, -2, 0), (-8, -2, 0), (-8, -8, 0), (-2, -8, 0), (-2, -10, 0), (2, -10, 1), (2, -8, 1), (0, -8, 1), (0, -10, 1), (10, -6, 2), (8, -6, 2), (8, -8, 2), (10, -8, 2), (10, 8, 3), (8, 8, 3), (8, 6, 3), (10, 6, 3), (-6, 10, 4), (-6, 8, 4), (-4, 8, 4), (-4, 10, 4), (-10, 10, 5), (-10, 8, 5), (-8, 8, 5), (-8, 10, 5), (-10, 4, 6), (-8, 4, 6), (-8, 6, 6), (-10, 6, 6), (-10, 0, 7), (-8, 0, 7), (-8, 2, 7), (-10, 2, 7), (-6, 6, 8), (-4, 6, 8), (-4, 4, 8), (-6, 4, 8), (-6, 0, 9), (-4, 0, 9), (-4, 2, 9), (-6, 2, 9), (-6, -6, 10), (-2, -6, 10), (-2, -4, 10), (-4, -4, 10), (-4, -2, 10), (-6, -2, 10), (2, -6, 11), (2, -4, 11), (0, -4, 11), (0, -6, 11), (12, 8, 12), (20, 8, 12), (20, -8, 12), (12, -8, 12), (12, -6, 12), (18, -6, 12), (18, 6, 12), (12, 6, 12), (12, -4, 13), (14, -4, 13), (14, 4, 13), (12, 4, 13))\n\n    testing(pygeodesy.ellipsoidalVincenty, 25.05.26)\n    test 214 clipCS4.p1: 07.5°N, 010.0°E\n    test 215 clipCS4.p2: 04.5°N, 000.0°E\n    test 216 clipCS4.i: 3\n    test 217 clipCS4.j: 0\n    test 218 clipCS4.p1: 05.0°N, 005.0°E\n    test 219 clipCS4.p2: 05.0°N, 005.0°E\n    test 220 clipCS4.i: 1\n    test 221 clipCS4.j: 2\n    test 222 clipLB6.p1: 07.5°N, 010.0°E\n    test 223 clipLB6.p2: 04.5°N, 000.0°E\n    test 224 clipLB6.i: 3\n    test 225 clipLB6.fi: 3.25\n    test 226 clipLB6.fi: 07.5°N, 010.0°E\n    test 227 clipLB6.fj: 3.75\n    test 228 clipLB6.fj: 04.5°N, 000.0°E\n    test 229 clipLB6.j: 0\n    test 230 clipLB6.fin: 4\n    test 231 clipLB6.p1: 05.0°N, 005.0°E\n    test 232 clipLB6.p2: 05.0°N, 005.0°E\n    test 233 clipLB6.i: 1\n    test 234 clipLB6.fi: 1.00\n    test 235 clipLB6.fi: 05.0°N, 005.0°E\n    test 236 clipLB6.fj: 2.00\n    test 237 clipLB6.fj: 05.0°N, 005.0°E\n    test 238 clipLB6.j: 2\n    test 239 clipLB6.fin: 4\n    test 240 clipCS4.p1: 60.0°N, 123.333333°E\n    test 241 clipCS4.p2: 62.857143°N, 130.0°E\n    test 242 clipCS4.i: 0\n    test 243 clipCS4.j: 1\n    test 244 clipLB6.p1: 60.0°N, 123.333333°E\n    test 245 clipLB6.p2: 62.857143°N, 130.0°E\n    test 246 clipLB6.i: 0\n    test 247 clipLB6.fi: 0.666667\n    test 248 clipLB6.fi: 60.0°N, 123.333333°E\n    test 249 clipLB6.fj: 0.714286\n    test 250 clipLB6.fj: 62.857143°N, 130.0°E\n    test 251 clipLB6.j: 1\n    test 252 clipLB6.fin: 0\n    test 253 clipCS4.p1: 17.5°N, 020.0°E\n    test 254 clipCS4.p2: 16.25°N, 015.0°E\n    test 255 clipCS4.i: 2\n    test 256 clipCS4.j: 0\n    test 257 clipLB6.p1: 17.5°N, 020.0°E\n    test 258 clipLB6.p2: 16.25°N, 015.0°E\n    test 259 clipLB6.i: 2\n    test 260 clipLB6.fi: 2.500\n    test 261 clipLB6.fi: 17.5°N, 020.0°E\n    test 262 clipLB6.fj: 2.750\n    test 263 clipLB6.fj: 16.25°N, 015.0°E\n    test 264 clipLB6.j: 0\n    test 265 clipLB6.fin: 3\n    test 266 clipSH1.len: 4\n    test 267 clipSH1.0: 20.0°N, 020.0°E\n    test 268 clipSH1.LL: True\n    test 269 clipSH1.1: 17.5°N, 020.0°E\n    test 270 clipSH1.LL: True\n    test 271 clipSH1.2: 16.25°N, 015.0°E\n    test 272 clipSH1.LL: True\n    test 273 clipSH1.3: 20.0°N, 015.0°E\n    test 274 clipSH1.LL: True\n    test 275 clipSH2.len: 5\n    test 276 clipSH2.0: 18.571°N, 024.286°E\n    test 277 clipSH2.LL: True\n    test 278 clipSH2.1: 16.667°N, 016.667°E\n    test 279 clipSH2.LL: True\n    test 280 clipSH2.2: 20.0°N, 015.0°E\n    test 281 clipSH2.LL: True\n    test 282 clipSH2.3: 25.0°N, 020.0°E\n    test 283 clipSH2.LL: True\n    test 284 clipSH2.4: 22.0°N, 026.0°E\n    test 285 clipSH2.LL: True\n    test 286 clipSH3.len: 2\n    test 287 clipSH3.0: 18.571°N, 024.286°E\n    test 288 clipSH3.LL: True\n    test 289 clipSH3.1: 16.667°N, 016.667°E\n    test 290 clipSH3.LL: True\n    test 291 clipSH3.edge.: True\n    test 292 clipSH3.len: 2\n    test 293 clipSH3.0: 16.667°N, 016.667°E\n    test 294 clipSH3.LL: True\n    test 295 clipSH3.1: 20.0°N, 015.0°E\n    test 296 clipSH3.LL: True\n    test 297 clipSH3.edge.: False\n    test 298 clipSH3.len: 2\n    test 299 clipSH3.0: 20.0°N, 015.0°E\n    test 300 clipSH3.LL: True\n    test 301 clipSH3.1: 25.0°N, 020.0°E\n    test 302 clipSH3.LL: True\n    test 303 clipSH3.edge.: True\n    test 304 clipSH3.len: 2\n    test 305 clipSH3.0: 25.0°N, 020.0°E\n    test 306 clipSH3.LL: True\n    test 307 clipSH3.1: 22.0°N, 026.0°E\n    test 308 clipSH3.LL: True\n    test 309 clipSH3.edge.: True\n    test 310 clipSH3.len: 2\n    test 311 clipSH3.0: 22.0°N, 026.0°E\n    test 312 clipSH3.LL: True\n    test 313 clipSH3.1: 18.571°N, 024.286°E\n    test 314 clipSH3.LL: True\n    test 315 clipSH3.edge.: False\n    test 316 clipSH2.reversed.len: 5\n    test 317 clipSH2.reversed.0: 18.571°N, 024.286°E\n    test 318 clipSH2.reversed.LL: True\n    test 319 clipSH2.reversed.1: 16.667°N, 016.667°E\n    test 320 clipSH2.reversed.LL: True\n    test 321 clipSH2.reversed.2: 20.0°N, 015.0°E\n    test 322 clipSH2.reversed.LL: True\n    test 323 clipSH2.reversed.3: 25.0°N, 020.0°E\n    test 324 clipSH2.reversed.LL: True\n    test 325 clipSH2.reversed.4: 22.0°N, 026.0°E\n    test 326 clipSH2.reversed.LL: True\n    test 327 clipSH3.reversed.len: 2\n    test 328 clipSH3.reversed.0: 18.571°N, 024.286°E\n    test 329 clipSH3.reversed.LL: True\n    test 330 clipSH3.reversed.1: 16.667°N, 016.667°E\n    test 331 clipSH3.reversed.LL: True\n    test 332 clipSH3.edge.reversed.: True\n    test 333 clipSH3.reversed.len: 2\n    test 334 clipSH3.reversed.0: 16.667°N, 016.667°E\n    test 335 clipSH3.reversed.LL: True\n    test 336 clipSH3.reversed.1: 20.0°N, 015.0°E\n    test 337 clipSH3.reversed.LL: True\n    test 338 clipSH3.edge.reversed.: False\n    test 339 clipSH3.reversed.len: 2\n    test 340 clipSH3.reversed.0: 20.0°N, 015.0°E\n    test 341 clipSH3.reversed.LL: True\n    test 342 clipSH3.reversed.1: 25.0°N, 020.0°E\n    test 343 clipSH3.reversed.LL: True\n    test 344 clipSH3.edge.reversed.: True\n    test 345 clipSH3.reversed.len: 2\n    test 346 clipSH3.reversed.0: 25.0°N, 020.0°E\n    test 347 clipSH3.reversed.LL: True\n    test 348 clipSH3.reversed.1: 22.0°N, 026.0°E\n    test 349 clipSH3.reversed.LL: True\n    test 350 clipSH3.edge.reversed.: True\n    test 351 clipSH3.reversed.len: 2\n    test 352 clipSH3.reversed.0: 22.0°N, 026.0°E\n    test 353 clipSH3.reversed.LL: True\n    test 354 clipSH3.reversed.1: 18.571°N, 024.286°E\n    test 355 clipSH3.reversed.LL: True\n    test 356 clipSH3.edge.reversed.: False\n    test 357 clipSH.allout: ()\n    test 358 clipSH3.allout: ()\n    test 359 clipSH.allout.reversed: ()\n    test 360 clipSH3.allout.reversed: ()\n    test 361 clipSH.allin.len: 4\n    test 362 clipSH.allin.0: 20.0°N, 030.0°E\n    test 363 clipSH.allin.LL: True\n    test 364 clipSH.allin.1: 15.0°N, 010.0°E\n    test 365 clipSH.allin.LL: True\n    test 366 clipSH.allin.2: 25.0°N, 020.0°E\n    test 367 clipSH.allin.LL: True\n    test 368 clipSH.allin.3: 20.0°N, 030.0°E\n    test 369 clipSH.allin.LL: True\n    test 370 clipSH3.allin.len: 2\n    test 371 clipSH3.allin.0: 20.0°N, 030.0°E\n    test 372 clipSH3.allin.LL: True\n    test 373 clipSH3.allin.1: 15.0°N, 010.0°E\n    test 374 clipSH3.allin.LL: True\n    test 375 clipSH3.edge.: True\n    test 376 clipSH3.allin.len: 2\n    test 377 clipSH3.allin.0: 15.0°N, 010.0°E\n    test 378 clipSH3.allin.LL: True\n    test 379 clipSH3.allin.1: 25.0°N, 020.0°E\n    test 380 clipSH3.allin.LL: True\n    test 381 clipSH3.edge.: True\n    test 382 clipSH.allin.reversed.len: 4\n    test 383 clipSH.allin.reversed.0: 20.0°N, 030.0°E\n    test 384 clipSH.allin.reversed.LL: True\n    test 385 clipSH.allin.reversed.1: 15.0°N, 010.0°E\n    test 386 clipSH.allin.reversed.LL: True\n    test 387 clipSH.allin.reversed.2: 25.0°N, 020.0°E\n    test 388 clipSH.allin.reversed.LL: True\n    test 389 clipSH.allin.reversed.3: 20.0°N, 030.0°E\n    test 390 clipSH.allin.reversed.LL: True\n    test 391 clipSH3.allin.reversed.len: 2\n    test 392 clipSH3.allin.reversed.0: 20.0°N, 030.0°E\n    test 393 clipSH3.allin.reversed.LL: True\n    test 394 clipSH3.allin.reversed.1: 15.0°N, 010.0°E\n    test 395 clipSH3.allin.reversed.LL: True\n    test 396 clipSH3.edge.reversed.: True\n    test 397 clipSH3.allin.reversed.len: 2\n    test 398 clipSH3.allin.reversed.0: 15.0°N, 010.0°E\n    test 399 clipSH3.allin.reversed.LL: True\n    test 400 clipSH3.allin.reversed.1: 25.0°N, 020.0°E\n    test 401 clipSH3.allin.reversed.LL: True\n    test 402 clipSH3.edge.reversed.: True\n    test 403 clipSH.warped: clipSH clip region ((LatLon(10°00′00.0″N, 010°00′00.0″E), LatLon(20°00′00.0″N, 020°00′00.0″E), LatLon(10°00′00.0″N, 020°00′00.0″E), LatLon(20°00′00.0″N, 010°00′00.0″E))): not convex\n    test 404 clipSH3.warped: clipSH3 clip region ((LatLon(10°00′00.0″N, 010°00′00.0″E), LatLon(20°00′00.0″N, 020°00′00.0″E), LatLon(10°00′00.0″N, 020°00′00.0″E), LatLon(20°00′00.0″N, 010°00′00.0″E))): not convex\n    test 405 clipSH.warpedreversed.: clipSH clip region ((LatLon(20°00′00.0″N, 010°00′00.0″E), LatLon(10°00′00.0″N, 020°00′00.0″E), LatLon(20°00′00.0″N, 020°00′00.0″E), LatLon(10°00′00.0″N, 010°00′00.0″E))): not convex\n    test 406 clipSH3.warpedreversed.: clipSH3 clip region ((LatLon(20°00′00.0″N, 010°00′00.0″E), LatLon(10°00′00.0″N, 020°00′00.0″E), LatLon(20°00′00.0″N, 020°00′00.0″E), LatLon(10°00′00.0″N, 010°00′00.0″E))): not convex\n    test 407 boundsOf: (10.0, 10.0, 20.0, 20.0)\n    test 408 boundsOf: (15.0, 10.0, 25.0, 30.0)\n    test 409 enclosures: (5.0, 0.0, -5.0, -10.0)\n    test 410 overlap: (15.0, 10.0, 20.0, 20.0)\n    test 411 clipSH4: 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 0.0\n    test 412 clipSH5: 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 0.0\n    test 413 clipSH6: 1.0, 0.5, 2.0, 1.0, 2.0, 0.5\n    test 414 clipSH7: -0.2, 2.0, 0.2, 2.0, 0.5, 0.5, 2.0, 0.2, 2.0, -0.2, 0.5, -0.5, 0.2, -2.0, -0.2, -2.0, -0.5, -0.5, -2.0, -0.2, -2.0, 0.2, -0.5, 0.5\n    test 415 clipSH8: -0.33, 1.33, 0.0, 2.0, 0.33, 1.33, 0.5, 0.5, 0.78, 0.44, 1.18, -0.36, 0.5, -0.5, 0.2, -2.0, -0.2, -2.0, -0.5, -0.5, -1.18, -0.36, -0.78, 0.44, -0.5, 0.5\n    test 416 clipSH9: None\n    test 417 clipSH10: None\n    test 418 clipSH11: None\n    test 419 clipSH12: None\n\n    test 420 clipGH4: (ClipGH4Tuple(lat=5.0, lon=3.571429, height=1.714286, clipid=0), ClipGH4Tuple(lat=7.0, lon=5.0, height=2.0, clipid=0), ClipGH4Tuple(lat=5.0, lon=6.428571, height=2.285714, clipid=0), ClipGH4Tuple(lat=3.0, lon=5.0, height=2.0, clipid=0))\n\n    test 421 clipFHP4: (ClipFHP4Tuple(lat=7.0, lon=5.0, height=2.0, clipid=0), ClipFHP4Tuple(lat=5.0, lon=6.428571, height=2.285714, clipid=0), ClipFHP4Tuple(lat=3.0, lon=5.0, height=2.0, clipid=0), ClipFHP4Tuple(lat=5.0, lon=3.571429, height=1.714286, clipid=0))\n\n    test 422 Fig 8: (ClipFHP4Tuple(lat=4.0, lon=12.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=-1.0, lon=12.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=3.0, lon=8.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=5.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=3.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=2.0, lon=1.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=6.0, lon=3.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=6.0, lon=11.0, height=0.0, clipid=0))\n    test 423 Fig 14: (ClipFHP4Tuple(lat=3.0, lon=3.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=0.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=6.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=6.0, lon=6.0, height=0.0, clipid=1), ClipFHP4Tuple(lat=9.0, lon=3.0, height=0.0, clipid=1), ClipFHP4Tuple(lat=6.0, lon=0.0, height=0.0, clipid=1), ClipFHP4Tuple(lat=3.0, lon=3.0, height=0.0, clipid=1))\n    test 424 Fig 15: (ClipFHP4Tuple(lat=1.0, lon=3.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=4.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=2.0, lon=4.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=2.0, lon=0.0, height=0.0, clipid=1), ClipFHP4Tuple(lat=0.0, lon=0.0, height=0.0, clipid=1), ClipFHP4Tuple(lat=1.0, lon=1.0, height=0.0, clipid=1))\n    test 425 Fig 16: (ClipFHP4Tuple(lat=0.0, lon=0.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=1.0, lon=0.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=2.0, lon=2.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=2.0, height=0.0, clipid=0))\n    test 426 Fig 18: ((-10, -10, 0), (-10, -2, 0), (-8, -2, 0), (-8, -8, 0), (-2, -8, 0), (-2, -10, 0), (2, -10, 1), (2, -8, 1), (0, -8, 1), (0, -10, 1), (10, -6, 2), (8, -6, 2), (8, -8, 2), (10, -8, 2), (10, 8, 3), (8, 8, 3), (8, 6, 3), (10, 6, 3), (-6, 10, 4), (-6, 8, 4), (-4, 8, 4), (-4, 10, 4), (-10, 10, 5), (-10, 8, 5), (-8, 8, 5), (-8, 10, 5), (-10, 4, 6), (-8, 4, 6), (-8, 6, 6), (-10, 6, 6), (-10, 0, 7), (-8, 0, 7), (-8, 2, 7), (-10, 2, 7), (-6, 6, 8), (-4, 6, 8), (-4, 4, 8), (-6, 4, 8), (-6, 0, 9), (-4, 0, 9), (-4, 2, 9), (-6, 2, 9), (-6, -6, 10), (-2, -6, 10), (-2, -4, 10), (-4, -4, 10), (-4, -2, 10), (-6, -2, 10), (2, -6, 11), (2, -4, 11), (0, -4, 11), (0, -6, 11), (12, 8, 12), (20, 8, 12), (20, -8, 12), (12, -8, 12), (12, -6, 12), (18, -6, 12), (18, 6, 12), (12, 6, 12), (12, -4, 13), (14, -4, 13), (14, 4, 13), (12, 4, 13))\n\n    testing(pygeodesy.sphericalNvector, 25.05.27)\n    test 427 clipCS4.p1: 07.5°N, 010.0°E\n    test 428 clipCS4.p2: 04.5°N, 000.0°E\n    test 429 clipCS4.i: 3\n    test 430 clipCS4.j: 0\n    test 431 clipCS4.p1: 05.0°N, 005.0°E\n    test 432 clipCS4.p2: 05.0°N, 005.0°E\n    test 433 clipCS4.i: 1\n    test 434 clipCS4.j: 2\n    test 435 clipLB6.p1: 07.5°N, 010.0°E\n    test 436 clipLB6.p2: 04.5°N, 000.0°E\n    test 437 clipLB6.i: 3\n    test 438 clipLB6.fi: 3.25\n    test 439 clipLB6.fi: 07.5°N, 010.0°E\n    test 440 clipLB6.fj: 3.75\n    test 441 clipLB6.fj: 04.5°N, 000.0°E\n    test 442 clipLB6.j: 0\n    test 443 clipLB6.fin: 4\n    test 444 clipLB6.p1: 05.0°N, 005.0°E\n    test 445 clipLB6.p2: 05.0°N, 005.0°E\n    test 446 clipLB6.i: 1\n    test 447 clipLB6.fi: 1.00\n    test 448 clipLB6.fi: 05.0°N, 005.0°E\n    test 449 clipLB6.fj: 2.00\n    test 450 clipLB6.fj: 05.0°N, 005.0°E\n    test 451 clipLB6.j: 2\n    test 452 clipLB6.fin: 4\n    test 453 clipCS4.p1: 60.0°N, 123.333333°E\n    test 454 clipCS4.p2: 62.857143°N, 130.0°E\n    test 455 clipCS4.i: 0\n    test 456 clipCS4.j: 1\n    test 457 clipLB6.p1: 60.0°N, 123.333333°E\n    test 458 clipLB6.p2: 62.857143°N, 130.0°E\n    test 459 clipLB6.i: 0\n    test 460 clipLB6.fi: 0.666667\n    test 461 clipLB6.fi: 60.0°N, 123.333333°E\n    test 462 clipLB6.fj: 0.714286\n    test 463 clipLB6.fj: 62.857143°N, 130.0°E\n    test 464 clipLB6.j: 1\n    test 465 clipLB6.fin: 0\n    test 466 clipCS4.p1: 17.5°N, 020.0°E\n    test 467 clipCS4.p2: 16.25°N, 015.0°E\n    test 468 clipCS4.i: 2\n    test 469 clipCS4.j: 0\n    test 470 clipLB6.p1: 17.5°N, 020.0°E\n    test 471 clipLB6.p2: 16.25°N, 015.0°E\n    test 472 clipLB6.i: 2\n    test 473 clipLB6.fi: 2.500\n    test 474 clipLB6.fi: 17.5°N, 020.0°E\n    test 475 clipLB6.fj: 2.750\n    test 476 clipLB6.fj: 16.25°N, 015.0°E\n    test 477 clipLB6.j: 0\n    test 478 clipLB6.fin: 3\n    test 479 clipSH1.len: 4\n    test 480 clipSH1.0: 20.0°N, 020.0°E\n    test 481 clipSH1.LL: True\n    test 482 clipSH1.1: 17.5°N, 020.0°E\n    test 483 clipSH1.LL: True\n    test 484 clipSH1.2: 16.25°N, 015.0°E\n    test 485 clipSH1.LL: True\n    test 486 clipSH1.3: 20.0°N, 015.0°E\n    test 487 clipSH1.LL: True\n    test 488 clipSH2.len: 5\n    test 489 clipSH2.0: 18.571°N, 024.286°E\n    test 490 clipSH2.LL: True\n    test 491 clipSH2.1: 16.667°N, 016.667°E\n    test 492 clipSH2.LL: True\n    test 493 clipSH2.2: 20.0°N, 015.0°E\n    test 494 clipSH2.LL: True\n    test 495 clipSH2.3: 25.0°N, 020.0°E\n    test 496 clipSH2.LL: True\n    test 497 clipSH2.4: 22.0°N, 026.0°E\n    test 498 clipSH2.LL: True\n    test 499 clipSH3.len: 2\n    test 500 clipSH3.0: 18.571°N, 024.286°E\n    test 501 clipSH3.LL: True\n    test 502 clipSH3.1: 16.667°N, 016.667°E\n    test 503 clipSH3.LL: True\n    test 504 clipSH3.edge.: True\n    test 505 clipSH3.len: 2\n    test 506 clipSH3.0: 16.667°N, 016.667°E\n    test 507 clipSH3.LL: True\n    test 508 clipSH3.1: 20.0°N, 015.0°E\n    test 509 clipSH3.LL: True\n    test 510 clipSH3.edge.: False\n    test 511 clipSH3.len: 2\n    test 512 clipSH3.0: 20.0°N, 015.0°E\n    test 513 clipSH3.LL: True\n    test 514 clipSH3.1: 25.0°N, 020.0°E\n    test 515 clipSH3.LL: True\n    test 516 clipSH3.edge.: True\n    test 517 clipSH3.len: 2\n    test 518 clipSH3.0: 25.0°N, 020.0°E\n    test 519 clipSH3.LL: True\n    test 520 clipSH3.1: 22.0°N, 026.0°E\n    test 521 clipSH3.LL: True\n    test 522 clipSH3.edge.: True\n    test 523 clipSH3.len: 2\n    test 524 clipSH3.0: 22.0°N, 026.0°E\n    test 525 clipSH3.LL: True\n    test 526 clipSH3.1: 18.571°N, 024.286°E\n    test 527 clipSH3.LL: True\n    test 528 clipSH3.edge.: False\n    test 529 clipSH2.reversed.len: 5\n    test 530 clipSH2.reversed.0: 18.571°N, 024.286°E\n    test 531 clipSH2.reversed.LL: True\n    test 532 clipSH2.reversed.1: 16.667°N, 016.667°E\n    test 533 clipSH2.reversed.LL: True\n    test 534 clipSH2.reversed.2: 20.0°N, 015.0°E\n    test 535 clipSH2.reversed.LL: True\n    test 536 clipSH2.reversed.3: 25.0°N, 020.0°E\n    test 537 clipSH2.reversed.LL: True\n    test 538 clipSH2.reversed.4: 22.0°N, 026.0°E\n    test 539 clipSH2.reversed.LL: True\n    test 540 clipSH3.reversed.len: 2\n    test 541 clipSH3.reversed.0: 18.571°N, 024.286°E\n    test 542 clipSH3.reversed.LL: True\n    test 543 clipSH3.reversed.1: 16.667°N, 016.667°E\n    test 544 clipSH3.reversed.LL: True\n    test 545 clipSH3.edge.reversed.: True\n    test 546 clipSH3.reversed.len: 2\n    test 547 clipSH3.reversed.0: 16.667°N, 016.667°E\n    test 548 clipSH3.reversed.LL: True\n    test 549 clipSH3.reversed.1: 20.0°N, 015.0°E\n    test 550 clipSH3.reversed.LL: True\n    test 551 clipSH3.edge.reversed.: False\n    test 552 clipSH3.reversed.len: 2\n    test 553 clipSH3.reversed.0: 20.0°N, 015.0°E\n    test 554 clipSH3.reversed.LL: True\n    test 555 clipSH3.reversed.1: 25.0°N, 020.0°E\n    test 556 clipSH3.reversed.LL: True\n    test 557 clipSH3.edge.reversed.: True\n    test 558 clipSH3.reversed.len: 2\n    test 559 clipSH3.reversed.0: 25.0°N, 020.0°E\n    test 560 clipSH3.reversed.LL: True\n    test 561 clipSH3.reversed.1: 22.0°N, 026.0°E\n    test 562 clipSH3.reversed.LL: True\n    test 563 clipSH3.edge.reversed.: True\n    test 564 clipSH3.reversed.len: 2\n    test 565 clipSH3.reversed.0: 22.0°N, 026.0°E\n    test 566 clipSH3.reversed.LL: True\n    test 567 clipSH3.reversed.1: 18.571°N, 024.286°E\n    test 568 clipSH3.reversed.LL: True\n    test 569 clipSH3.edge.reversed.: False\n    test 570 clipSH.allout: ()\n    test 571 clipSH3.allout: ()\n    test 572 clipSH.allout.reversed: ()\n    test 573 clipSH3.allout.reversed: ()\n    test 574 clipSH.allin.len: 4\n    test 575 clipSH.allin.0: 20.0°N, 030.0°E\n    test 576 clipSH.allin.LL: True\n    test 577 clipSH.allin.1: 15.0°N, 010.0°E\n    test 578 clipSH.allin.LL: True\n    test 579 clipSH.allin.2: 25.0°N, 020.0°E\n    test 580 clipSH.allin.LL: True\n    test 581 clipSH.allin.3: 20.0°N, 030.0°E\n    test 582 clipSH.allin.LL: True\n    test 583 clipSH3.allin.len: 2\n    test 584 clipSH3.allin.0: 20.0°N, 030.0°E\n    test 585 clipSH3.allin.LL: True\n    test 586 clipSH3.allin.1: 15.0°N, 010.0°E\n    test 587 clipSH3.allin.LL: True\n    test 588 clipSH3.edge.: True\n    test 589 clipSH3.allin.len: 2\n    test 590 clipSH3.allin.0: 15.0°N, 010.0°E\n    test 591 clipSH3.allin.LL: True\n    test 592 clipSH3.allin.1: 25.0°N, 020.0°E\n    test 593 clipSH3.allin.LL: True\n    test 594 clipSH3.edge.: True\n    test 595 clipSH.allin.reversed.len: 4\n    test 596 clipSH.allin.reversed.0: 20.0°N, 030.0°E\n    test 597 clipSH.allin.reversed.LL: True\n    test 598 clipSH.allin.reversed.1: 15.0°N, 010.0°E\n    test 599 clipSH.allin.reversed.LL: True\n    test 600 clipSH.allin.reversed.2: 25.0°N, 020.0°E\n    test 601 clipSH.allin.reversed.LL: True\n    test 602 clipSH.allin.reversed.3: 20.0°N, 030.0°E\n    test 603 clipSH.allin.reversed.LL: True\n    test 604 clipSH3.allin.reversed.len: 2\n    test 605 clipSH3.allin.reversed.0: 20.0°N, 030.0°E\n    test 606 clipSH3.allin.reversed.LL: True\n    test 607 clipSH3.allin.reversed.1: 15.0°N, 010.0°E\n    test 608 clipSH3.allin.reversed.LL: True\n    test 609 clipSH3.edge.reversed.: True\n    test 610 clipSH3.allin.reversed.len: 2\n    test 611 clipSH3.allin.reversed.0: 15.0°N, 010.0°E\n    test 612 clipSH3.allin.reversed.LL: True\n    test 613 clipSH3.allin.reversed.1: 25.0°N, 020.0°E\n    test 614 clipSH3.allin.reversed.LL: True\n    test 615 clipSH3.edge.reversed.: True\n    test 616 clipSH.warped: clipSH clip region ((LatLon(10°00′00.0″N, 010°00′00.0″E), LatLon(20°00′00.0″N, 020°00′00.0″E), LatLon(10°00′00.0″N, 020°00′00.0″E), LatLon(20°00′00.0″N, 010°00′00.0″E))): not convex\n    test 617 clipSH3.warped: clipSH3 clip region ((LatLon(10°00′00.0″N, 010°00′00.0″E), LatLon(20°00′00.0″N, 020°00′00.0″E), LatLon(10°00′00.0″N, 020°00′00.0″E), LatLon(20°00′00.0″N, 010°00′00.0″E))): not convex\n    test 618 clipSH.warpedreversed.: clipSH clip region ((LatLon(20°00′00.0″N, 010°00′00.0″E), LatLon(10°00′00.0″N, 020°00′00.0″E), LatLon(20°00′00.0″N, 020°00′00.0″E), LatLon(10°00′00.0″N, 010°00′00.0″E))): not convex\n    test 619 clipSH3.warpedreversed.: clipSH3 clip region ((LatLon(20°00′00.0″N, 010°00′00.0″E), LatLon(10°00′00.0″N, 020°00′00.0″E), LatLon(20°00′00.0″N, 020°00′00.0″E), LatLon(10°00′00.0″N, 010°00′00.0″E))): not convex\n    test 620 boundsOf: (10.0, 10.0, 20.0, 20.0)\n    test 621 boundsOf: (15.0, 10.0, 25.0, 30.0)\n    test 622 enclosures: (5.0, 0.0, -5.0, -10.0)\n    test 623 overlap: (15.0, 10.0, 20.0, 20.0)\n    test 624 clipSH4: 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 0.0\n    test 625 clipSH5: 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 0.0\n    test 626 clipSH6: 1.0, 0.5, 2.0, 1.0, 2.0, 0.5\n    test 627 clipSH7: -0.2, 2.0, 0.2, 2.0, 0.5, 0.5, 2.0, 0.2, 2.0, -0.2, 0.5, -0.5, 0.2, -2.0, -0.2, -2.0, -0.5, -0.5, -2.0, -0.2, -2.0, 0.2, -0.5, 0.5\n    test 628 clipSH8: -0.33, 1.33, 0.0, 2.0, 0.33, 1.33, 0.5, 0.5, 0.78, 0.44, 1.18, -0.36, 0.5, -0.5, 0.2, -2.0, -0.2, -2.0, -0.5, -0.5, -1.18, -0.36, -0.78, 0.44, -0.5, 0.5\n    test 629 clipSH9: None\n    test 630 clipSH10: None\n    test 631 clipSH11: None\n    test 632 clipSH12: None\n\n    test 633 clipGH4: (ClipGH4Tuple(lat=5.0, lon=3.571429, height=1.714286, clipid=0), ClipGH4Tuple(lat=7.0, lon=5.0, height=2.0, clipid=0), ClipGH4Tuple(lat=5.0, lon=6.428571, height=2.285714, clipid=0), ClipGH4Tuple(lat=3.0, lon=5.0, height=2.0, clipid=0))\n\n    test 634 clipFHP4: (ClipFHP4Tuple(lat=7.0, lon=5.0, height=2.0, clipid=0), ClipFHP4Tuple(lat=5.0, lon=6.428571, height=2.285714, clipid=0), ClipFHP4Tuple(lat=3.0, lon=5.0, height=2.0, clipid=0), ClipFHP4Tuple(lat=5.0, lon=3.571429, height=1.714286, clipid=0))\n\n    test 635 Fig 8: (ClipFHP4Tuple(lat=4.0, lon=12.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=-1.0, lon=12.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=3.0, lon=8.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=5.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=3.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=2.0, lon=1.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=6.0, lon=3.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=6.0, lon=11.0, height=0.0, clipid=0))\n    test 636 Fig 14: (ClipFHP4Tuple(lat=3.0, lon=3.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=0.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=6.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=6.0, lon=6.0, height=0.0, clipid=1), ClipFHP4Tuple(lat=9.0, lon=3.0, height=0.0, clipid=1), ClipFHP4Tuple(lat=6.0, lon=0.0, height=0.0, clipid=1), ClipFHP4Tuple(lat=3.0, lon=3.0, height=0.0, clipid=1))\n    test 637 Fig 15: (ClipFHP4Tuple(lat=1.0, lon=3.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=4.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=2.0, lon=4.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=2.0, lon=0.0, height=0.0, clipid=1), ClipFHP4Tuple(lat=0.0, lon=0.0, height=0.0, clipid=1), ClipFHP4Tuple(lat=1.0, lon=1.0, height=0.0, clipid=1))\n    test 638 Fig 16: (ClipFHP4Tuple(lat=0.0, lon=0.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=1.0, lon=0.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=2.0, lon=2.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=2.0, height=0.0, clipid=0))\n    test 639 Fig 18: ((-10, -10, 0), (-10, -2, 0), (-8, -2, 0), (-8, -8, 0), (-2, -8, 0), (-2, -10, 0), (2, -10, 1), (2, -8, 1), (0, -8, 1), (0, -10, 1), (10, -6, 2), (8, -6, 2), (8, -8, 2), (10, -8, 2), (10, 8, 3), (8, 8, 3), (8, 6, 3), (10, 6, 3), (-6, 10, 4), (-6, 8, 4), (-4, 8, 4), (-4, 10, 4), (-10, 10, 5), (-10, 8, 5), (-8, 8, 5), (-8, 10, 5), (-10, 4, 6), (-8, 4, 6), (-8, 6, 6), (-10, 6, 6), (-10, 0, 7), (-8, 0, 7), (-8, 2, 7), (-10, 2, 7), (-6, 6, 8), (-4, 6, 8), (-4, 4, 8), (-6, 4, 8), (-6, 0, 9), (-4, 0, 9), (-4, 2, 9), (-6, 2, 9), (-6, -6, 10), (-2, -6, 10), (-2, -4, 10), (-4, -4, 10), (-4, -2, 10), (-6, -2, 10), (2, -6, 11), (2, -4, 11), (0, -4, 11), (0, -6, 11), (12, 8, 12), (20, 8, 12), (20, -8, 12), (12, -8, 12), (12, -6, 12), (18, -6, 12), (18, 6, 12), (12, 6, 12), (12, -4, 13), (14, -4, 13), (14, 4, 13), (12, 4, 13))\n\n    testing(pygeodesy.sphericalTrigonometry, 25.08.31)\n    test 640 clipCS4.p1: 07.5°N, 010.0°E\n    test 641 clipCS4.p2: 04.5°N, 000.0°E\n    test 642 clipCS4.i: 3\n    test 643 clipCS4.j: 0\n    test 644 clipCS4.p1: 05.0°N, 005.0°E\n    test 645 clipCS4.p2: 05.0°N, 005.0°E\n    test 646 clipCS4.i: 1\n    test 647 clipCS4.j: 2\n    test 648 clipLB6.p1: 07.5°N, 010.0°E\n    test 649 clipLB6.p2: 04.5°N, 000.0°E\n    test 650 clipLB6.i: 3\n    test 651 clipLB6.fi: 3.25\n    test 652 clipLB6.fi: 07.5°N, 010.0°E\n    test 653 clipLB6.fj: 3.75\n    test 654 clipLB6.fj: 04.5°N, 000.0°E\n    test 655 clipLB6.j: 0\n    test 656 clipLB6.fin: 4\n    test 657 clipLB6.p1: 05.0°N, 005.0°E\n    test 658 clipLB6.p2: 05.0°N, 005.0°E\n    test 659 clipLB6.i: 1\n    test 660 clipLB6.fi: 1.00\n    test 661 clipLB6.fi: 05.0°N, 005.0°E\n    test 662 clipLB6.fj: 2.00\n    test 663 clipLB6.fj: 05.0°N, 005.0°E\n    test 664 clipLB6.j: 2\n    test 665 clipLB6.fin: 4\n    test 666 clipCS4.p1: 60.0°N, 123.333333°E\n    test 667 clipCS4.p2: 62.857143°N, 130.0°E\n    test 668 clipCS4.i: 0\n    test 669 clipCS4.j: 1\n    test 670 clipLB6.p1: 60.0°N, 123.333333°E\n    test 671 clipLB6.p2: 62.857143°N, 130.0°E\n    test 672 clipLB6.i: 0\n    test 673 clipLB6.fi: 0.666667\n    test 674 clipLB6.fi: 60.0°N, 123.333333°E\n    test 675 clipLB6.fj: 0.714286\n    test 676 clipLB6.fj: 62.857143°N, 130.0°E\n    test 677 clipLB6.j: 1\n    test 678 clipLB6.fin: 0\n    test 679 clipCS4.p1: 17.5°N, 020.0°E\n    test 680 clipCS4.p2: 16.25°N, 015.0°E\n    test 681 clipCS4.i: 2\n    test 682 clipCS4.j: 0\n    test 683 clipLB6.p1: 17.5°N, 020.0°E\n    test 684 clipLB6.p2: 16.25°N, 015.0°E\n    test 685 clipLB6.i: 2\n    test 686 clipLB6.fi: 2.500\n    test 687 clipLB6.fi: 17.5°N, 020.0°E\n    test 688 clipLB6.fj: 2.750\n    test 689 clipLB6.fj: 16.25°N, 015.0°E\n    test 690 clipLB6.j: 0\n    test 691 clipLB6.fin: 3\n    test 692 clipSH1.len: 4\n    test 693 clipSH1.0: 20.0°N, 020.0°E\n    test 694 clipSH1.LL: True\n    test 695 clipSH1.1: 17.5°N, 020.0°E\n    test 696 clipSH1.LL: True\n    test 697 clipSH1.2: 16.25°N, 015.0°E\n    test 698 clipSH1.LL: True\n    test 699 clipSH1.3: 20.0°N, 015.0°E\n    test 700 clipSH1.LL: True\n    test 701 clipSH2.len: 5\n    test 702 clipSH2.0: 18.571°N, 024.286°E\n    test 703 clipSH2.LL: True\n    test 704 clipSH2.1: 16.667°N, 016.667°E\n    test 705 clipSH2.LL: True\n    test 706 clipSH2.2: 20.0°N, 015.0°E\n    test 707 clipSH2.LL: True\n    test 708 clipSH2.3: 25.0°N, 020.0°E\n    test 709 clipSH2.LL: True\n    test 710 clipSH2.4: 22.0°N, 026.0°E\n    test 711 clipSH2.LL: True\n    test 712 clipSH3.len: 2\n    test 713 clipSH3.0: 18.571°N, 024.286°E\n    test 714 clipSH3.LL: True\n    test 715 clipSH3.1: 16.667°N, 016.667°E\n    test 716 clipSH3.LL: True\n    test 717 clipSH3.edge.: True\n    test 718 clipSH3.len: 2\n    test 719 clipSH3.0: 16.667°N, 016.667°E\n    test 720 clipSH3.LL: True\n    test 721 clipSH3.1: 20.0°N, 015.0°E\n    test 722 clipSH3.LL: True\n    test 723 clipSH3.edge.: False\n    test 724 clipSH3.len: 2\n    test 725 clipSH3.0: 20.0°N, 015.0°E\n    test 726 clipSH3.LL: True\n    test 727 clipSH3.1: 25.0°N, 020.0°E\n    test 728 clipSH3.LL: True\n    test 729 clipSH3.edge.: True\n    test 730 clipSH3.len: 2\n    test 731 clipSH3.0: 25.0°N, 020.0°E\n    test 732 clipSH3.LL: True\n    test 733 clipSH3.1: 22.0°N, 026.0°E\n    test 734 clipSH3.LL: True\n    test 735 clipSH3.edge.: True\n    test 736 clipSH3.len: 2\n    test 737 clipSH3.0: 22.0°N, 026.0°E\n    test 738 clipSH3.LL: True\n    test 739 clipSH3.1: 18.571°N, 024.286°E\n    test 740 clipSH3.LL: True\n    test 741 clipSH3.edge.: False\n    test 742 clipSH2.reversed.len: 5\n    test 743 clipSH2.reversed.0: 18.571°N, 024.286°E\n    test 744 clipSH2.reversed.LL: True\n    test 745 clipSH2.reversed.1: 16.667°N, 016.667°E\n    test 746 clipSH2.reversed.LL: True\n    test 747 clipSH2.reversed.2: 20.0°N, 015.0°E\n    test 748 clipSH2.reversed.LL: True\n    test 749 clipSH2.reversed.3: 25.0°N, 020.0°E\n    test 750 clipSH2.reversed.LL: True\n    test 751 clipSH2.reversed.4: 22.0°N, 026.0°E\n    test 752 clipSH2.reversed.LL: True\n    test 753 clipSH3.reversed.len: 2\n    test 754 clipSH3.reversed.0: 18.571°N, 024.286°E\n    test 755 clipSH3.reversed.LL: True\n    test 756 clipSH3.reversed.1: 16.667°N, 016.667°E\n    test 757 clipSH3.reversed.LL: True\n    test 758 clipSH3.edge.reversed.: True\n    test 759 clipSH3.reversed.len: 2\n    test 760 clipSH3.reversed.0: 16.667°N, 016.667°E\n    test 761 clipSH3.reversed.LL: True\n    test 762 clipSH3.reversed.1: 20.0°N, 015.0°E\n    test 763 clipSH3.reversed.LL: True\n    test 764 clipSH3.edge.reversed.: False\n    test 765 clipSH3.reversed.len: 2\n    test 766 clipSH3.reversed.0: 20.0°N, 015.0°E\n    test 767 clipSH3.reversed.LL: True\n    test 768 clipSH3.reversed.1: 25.0°N, 020.0°E\n    test 769 clipSH3.reversed.LL: True\n    test 770 clipSH3.edge.reversed.: True\n    test 771 clipSH3.reversed.len: 2\n    test 772 clipSH3.reversed.0: 25.0°N, 020.0°E\n    test 773 clipSH3.reversed.LL: True\n    test 774 clipSH3.reversed.1: 22.0°N, 026.0°E\n    test 775 clipSH3.reversed.LL: True\n    test 776 clipSH3.edge.reversed.: True\n    test 777 clipSH3.reversed.len: 2\n    test 778 clipSH3.reversed.0: 22.0°N, 026.0°E\n    test 779 clipSH3.reversed.LL: True\n    test 780 clipSH3.reversed.1: 18.571°N, 024.286°E\n    test 781 clipSH3.reversed.LL: True\n    test 782 clipSH3.edge.reversed.: False\n    test 783 clipSH.allout: ()\n    test 784 clipSH3.allout: ()\n    test 785 clipSH.allout.reversed: ()\n    test 786 clipSH3.allout.reversed: ()\n    test 787 clipSH.allin.len: 4\n    test 788 clipSH.allin.0: 20.0°N, 030.0°E\n    test 789 clipSH.allin.LL: True\n    test 790 clipSH.allin.1: 15.0°N, 010.0°E\n    test 791 clipSH.allin.LL: True\n    test 792 clipSH.allin.2: 25.0°N, 020.0°E\n    test 793 clipSH.allin.LL: True\n    test 794 clipSH.allin.3: 20.0°N, 030.0°E\n    test 795 clipSH.allin.LL: True\n    test 796 clipSH3.allin.len: 2\n    test 797 clipSH3.allin.0: 20.0°N, 030.0°E\n    test 798 clipSH3.allin.LL: True\n    test 799 clipSH3.allin.1: 15.0°N, 010.0°E\n    test 800 clipSH3.allin.LL: True\n    test 801 clipSH3.edge.: True\n    test 802 clipSH3.allin.len: 2\n    test 803 clipSH3.allin.0: 15.0°N, 010.0°E\n    test 804 clipSH3.allin.LL: True\n    test 805 clipSH3.allin.1: 25.0°N, 020.0°E\n    test 806 clipSH3.allin.LL: True\n    test 807 clipSH3.edge.: True\n    test 808 clipSH.allin.reversed.len: 4\n    test 809 clipSH.allin.reversed.0: 20.0°N, 030.0°E\n    test 810 clipSH.allin.reversed.LL: True\n    test 811 clipSH.allin.reversed.1: 15.0°N, 010.0°E\n    test 812 clipSH.allin.reversed.LL: True\n    test 813 clipSH.allin.reversed.2: 25.0°N, 020.0°E\n    test 814 clipSH.allin.reversed.LL: True\n    test 815 clipSH.allin.reversed.3: 20.0°N, 030.0°E\n    test 816 clipSH.allin.reversed.LL: True\n    test 817 clipSH3.allin.reversed.len: 2\n    test 818 clipSH3.allin.reversed.0: 20.0°N, 030.0°E\n    test 819 clipSH3.allin.reversed.LL: True\n    test 820 clipSH3.allin.reversed.1: 15.0°N, 010.0°E\n    test 821 clipSH3.allin.reversed.LL: True\n    test 822 clipSH3.edge.reversed.: True\n    test 823 clipSH3.allin.reversed.len: 2\n    test 824 clipSH3.allin.reversed.0: 15.0°N, 010.0°E\n    test 825 clipSH3.allin.reversed.LL: True\n    test 826 clipSH3.allin.reversed.1: 25.0°N, 020.0°E\n    test 827 clipSH3.allin.reversed.LL: True\n    test 828 clipSH3.edge.reversed.: True\n    test 829 clipSH.warped: clipSH clip region ((LatLon(10°00′00.0″N, 010°00′00.0″E), LatLon(20°00′00.0″N, 020°00′00.0″E), LatLon(10°00′00.0″N, 020°00′00.0″E), LatLon(20°00′00.0″N, 010°00′00.0″E))): not convex\n    test 830 clipSH3.warped: clipSH3 clip region ((LatLon(10°00′00.0″N, 010°00′00.0″E), LatLon(20°00′00.0″N, 020°00′00.0″E), LatLon(10°00′00.0″N, 020°00′00.0″E), LatLon(20°00′00.0″N, 010°00′00.0″E))): not convex\n    test 831 clipSH.warpedreversed.: clipSH clip region ((LatLon(20°00′00.0″N, 010°00′00.0″E), LatLon(10°00′00.0″N, 020°00′00.0″E), LatLon(20°00′00.0″N, 020°00′00.0″E), LatLon(10°00′00.0″N, 010°00′00.0″E))): not convex\n    test 832 clipSH3.warpedreversed.: clipSH3 clip region ((LatLon(20°00′00.0″N, 010°00′00.0″E), LatLon(10°00′00.0″N, 020°00′00.0″E), LatLon(20°00′00.0″N, 020°00′00.0″E), LatLon(10°00′00.0″N, 010°00′00.0″E))): not convex\n    test 833 boundsOf: (10.0, 10.0, 20.0, 20.0)\n    test 834 boundsOf: (15.0, 10.0, 25.0, 30.0)\n    test 835 enclosures: (5.0, 0.0, -5.0, -10.0)\n    test 836 overlap: (15.0, 10.0, 20.0, 20.0)\n    test 837 clipSH4: 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 0.0\n    test 838 clipSH5: 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 0.0\n    test 839 clipSH6: 1.0, 0.5, 2.0, 1.0, 2.0, 0.5\n    test 840 clipSH7: -0.2, 2.0, 0.2, 2.0, 0.5, 0.5, 2.0, 0.2, 2.0, -0.2, 0.5, -0.5, 0.2, -2.0, -0.2, -2.0, -0.5, -0.5, -2.0, -0.2, -2.0, 0.2, -0.5, 0.5\n    test 841 clipSH8: -0.33, 1.33, 0.0, 2.0, 0.33, 1.33, 0.5, 0.5, 0.78, 0.44, 1.18, -0.36, 0.5, -0.5, 0.2, -2.0, -0.2, -2.0, -0.5, -0.5, -1.18, -0.36, -0.78, 0.44, -0.5, 0.5\n    test 842 clipSH9: None\n    test 843 clipSH10: None\n    test 844 clipSH11: None\n    test 845 clipSH12: None\n\n    test 846 clipGH4: (ClipGH4Tuple(lat=5.0, lon=3.571429, height=1.714286, clipid=0), ClipGH4Tuple(lat=7.0, lon=5.0, height=2.0, clipid=0), ClipGH4Tuple(lat=5.0, lon=6.428571, height=2.285714, clipid=0), ClipGH4Tuple(lat=3.0, lon=5.0, height=2.0, clipid=0))\n\n    test 847 clipFHP4: (ClipFHP4Tuple(lat=7.0, lon=5.0, height=2.0, clipid=0), ClipFHP4Tuple(lat=5.0, lon=6.428571, height=2.285714, clipid=0), ClipFHP4Tuple(lat=3.0, lon=5.0, height=2.0, clipid=0), ClipFHP4Tuple(lat=5.0, lon=3.571429, height=1.714286, clipid=0))\n\n    test 848 Fig 8: (ClipFHP4Tuple(lat=4.0, lon=12.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=-1.0, lon=12.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=3.0, lon=8.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=5.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=3.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=2.0, lon=1.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=6.0, lon=3.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=6.0, lon=11.0, height=0.0, clipid=0))\n    test 849 Fig 14: (ClipFHP4Tuple(lat=3.0, lon=3.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=0.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=6.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=6.0, lon=6.0, height=0.0, clipid=1), ClipFHP4Tuple(lat=9.0, lon=3.0, height=0.0, clipid=1), ClipFHP4Tuple(lat=6.0, lon=0.0, height=0.0, clipid=1), ClipFHP4Tuple(lat=3.0, lon=3.0, height=0.0, clipid=1))\n    test 850 Fig 15: (ClipFHP4Tuple(lat=1.0, lon=3.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=4.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=2.0, lon=4.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=2.0, lon=0.0, height=0.0, clipid=1), ClipFHP4Tuple(lat=0.0, lon=0.0, height=0.0, clipid=1), ClipFHP4Tuple(lat=1.0, lon=1.0, height=0.0, clipid=1))\n    test 851 Fig 16: (ClipFHP4Tuple(lat=0.0, lon=0.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=1.0, lon=0.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=2.0, lon=2.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=2.0, height=0.0, clipid=0))\n    test 852 Fig 18: ((-10, -10, 0), (-10, -2, 0), (-8, -2, 0), (-8, -8, 0), (-2, -8, 0), (-2, -10, 0), (2, -10, 1), (2, -8, 1), (0, -8, 1), (0, -10, 1), (10, -6, 2), (8, -6, 2), (8, -8, 2), (10, -8, 2), (10, 8, 3), (8, 8, 3), (8, 6, 3), (10, 6, 3), (-6, 10, 4), (-6, 8, 4), (-4, 8, 4), (-4, 10, 4), (-10, 10, 5), (-10, 8, 5), (-8, 8, 5), (-8, 10, 5), (-10, 4, 6), (-8, 4, 6), (-8, 6, 6), (-10, 6, 6), (-10, 0, 7), (-8, 0, 7), (-8, 2, 7), (-10, 2, 7), (-6, 6, 8), (-4, 6, 8), (-4, 4, 8), (-6, 4, 8), (-6, 0, 9), (-4, 0, 9), (-4, 2, 9), (-6, 2, 9), (-6, -6, 10), (-2, -6, 10), (-2, -4, 10), (-4, -4, 10), (-4, -2, 10), (-6, -2, 10), (2, -6, 11), (2, -4, 11), (0, -4, 11), (0, -6, 11), (12, 8, 12), (20, 8, 12), (20, -8, 12), (12, -8, 12), (12, -6, 12), (18, -6, 12), (18, 6, 12), (12, 6, 12), (12, -4, 13), (14, -4, 13), (14, 4, 13), (12, 4, 13))\n\n    all 852 testClipy.py tests passed (pygeodesy 26.3.26 Python 2.7.18 64bit arm64_x86_64 geographiclib 1.50 numpy 1.16.6 scipy 1.2.2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 -W  default) 174.006 ms\nrunning /Library/Framewo....ython -W default ~/PyGeodesy/test/testConstants.py\n\n    testing testConstants.py 25.10.15 (module pygeodesy.constants 26.02.09)\n    test 1 _0_0: 0.0\n    test 2 _0_0001: 0.0001\n    test 3 _0_001: 0.001\n    test 4 _0_01: 0.01\n    test 5 _0_1: 0.1\n    test 6 _0_125: 0.125\n    test 7 _0_25: 0.25\n    test 8 _0_5: 0.5\n    test 9 _0_75: 0.75\n    test 10 _1000_0: 1000.0\n    test 11 _100_0: 100.0\n    test 12 _10_0: 10.0\n    test 13 _16_0: 16.0\n    test 14 _180_0: 180.0\n    test 15 _1_0: 1.0\n    test 16 _1_3rd: 0.333333333333  FAILED, KNOWN, expected 1.3rd\n    test 17 _1_5: 1.5\n    test 18 _1_75: 1.75\n\n    test 19 _1_EPS: _1_EPS (4.50359962737e+15)\n    test 20 _1_EPS: _1_EPS\n    test 21 _1_EPS: True\n    test 22 _270_0: 270.0\n    test 23 _2_0: 2.0\n    test 24 _2_3rd: 0.666666666667  FAILED, KNOWN, expected 2.3rd\n\n    test 25 _2__PI: _2__PI (0.636619772368)\n    test 26 _2__PI: _2__PI\n    test 27 _2__PI: True\n    test 28 _32_0: 32.0\n    test 29 _3600_0: 3600.0\n    test 30 _360_0: 360.0\n    test 31 _3_0: 3.0\n    test 32 _45_0: 45.0\n    test 33 _4_0: 4.0\n    test 34 _5_0: 5.0\n    test 35 _60_0: 60.0\n    test 36 _64_0: 64.0\n    test 37 _6_0: 6.0\n    test 38 _720_0: 720.0\n\n    test 39 _89_999: _89_999 (90.0)\n    test 40 _89_999: _89_999\n    test 41 _89_999: True\n    test 42 _8_0: 8.0\n    test 43 _90_0: 90.0\n    test 44 _9_0: 9.0\n\n    test 45 _EPS2e4: _EPS2e4 (4.4408920985e-12)\n    test 46 _EPS2e4: _EPS2e4\n    test 47 _EPS2e4: True\n\n    test 48 _EPS4e8: _EPS4e8 (8.881784197e-08)\n    test 49 _EPS4e8: _EPS4e8\n    test 50 _EPS4e8: True\n\n    test 51 _EPSjam: _EPSjam (1.81898940355e-12)\n    test 52 _EPSjam: _EPSjam\n    test 53 _EPSjam: True\n\n    test 54 _EPSmin: _EPSmin (1.49166814624e-154)\n    test 55 _EPSmin: _EPSmin\n    test 56 _EPSmin: True\n\n    test 57 _EPSqrt: _EPSqrt (1.49011611938e-08)\n    test 58 _EPSqrt: _EPSqrt\n    test 59 _EPSqrt: True\n\n    test 60 _EPStol: _EPStol (1.49011611938e-09)\n    test 61 _EPStol: _EPStol\n    test 62 _EPStol: True\n    test 63 _inf: inf\n\n    test 64 _K0_UPS: _K0_UPS (0.994)\n    test 65 _K0_UPS: _K0_UPS\n    test 66 _K0_UPS: True\n\n    test 67 _K0_UTM: _K0_UTM (0.9996)\n    test 68 _K0_UTM: _K0_UTM\n    test 69 _K0_UTM: True\n    test 70 _M_KM: 1000.0  FAILED, KNOWN, expected M.KM\n    test 71 _M_NM: 1852.0  FAILED, KNOWN, expected M.NM\n    test 72 _M_SM: 1609.344  FAILED, KNOWN, expected M.SM\n    test 73 _N_0_0: -0.0  FAILED, KNOWN, expected N.0.0\n    test 74 _N_0_5: -0.5  FAILED, KNOWN, expected N.0.5\n    test 75 _N_180_0: -180.0  FAILED, KNOWN, expected N.180.0\n    test 76 _N_1_0: -1.0  FAILED, KNOWN, expected N.1.0\n    test 77 _N_2_0: -2.0  FAILED, KNOWN, expected N.2.0\n    test 78 _N_90_0: -90.0  FAILED, KNOWN, expected N.90.0\n    test 79 _nan: nan\n    test 80 _pi: 3.14159265359  FAILED, KNOWN, expected pi\n\n    test 81 _SQRT2: _SQRT2 (1.41421356237)\n    test 82 _SQRT2: _SQRT2\n    test 83 _SQRT2: True\n\n    test 84 _SQRT2_2: _SQRT2_2 (0.707106781187)\n    test 85 _SQRT2_2: _SQRT2_2\n    test 86 _SQRT2_2: True\n\n    test 87 _SQRT3: _SQRT3 (1.73205080757)\n    test 88 _SQRT3: _SQRT3\n    test 89 _SQRT3: True\n\n    test 90 _SQRT3_2: _SQRT3_2 (0.866025403784)\n    test 91 _SQRT3_2: _SQRT3_2\n    test 92 _SQRT3_2: True\n\n    test 93 DIG: DIG (15)\n    test 94 DIG: DIG\n    test 95 DIG: True\n    test 96 DIG: True\n\n    test 97 EPS: EPS (2.22044604925e-16)\n    test 98 EPS: EPS\n    test 99 EPS: True\n    test 100 EPS: True\n\n    test 101 EPS0: EPS0 (4.93038065763e-32)\n    test 102 EPS0: EPS0\n    test 103 EPS0: True\n    test 104 EPS0: True\n\n    test 105 EPS02: EPS02 (2.43086534291e-63)\n    test 106 EPS02: EPS02\n    test 107 EPS02: True\n    test 108 EPS02: True\n\n    test 109 EPS1: EPS1 (1.0)\n    test 110 EPS1: EPS1\n    test 111 EPS1: True\n    test 112 EPS1: True\n\n    test 113 EPS2: EPS2 (4.4408920985e-16)\n    test 114 EPS2: EPS2\n    test 115 EPS2: True\n    test 116 EPS2: True\n\n    test 117 EPS4: EPS4 (8.881784197e-16)\n    test 118 EPS4: EPS4\n    test 119 EPS4: True\n    test 120 EPS4: True\n\n    test 121 EPS8: EPS8 (1.7763568394e-15)\n    test 122 EPS8: EPS8\n    test 123 EPS8: True\n    test 124 EPS8: True\n\n    test 125 EPS_2: EPS_2 (1.11022302463e-16)\n    test 126 EPS_2: EPS_2\n    test 127 EPS_2: True\n    test 128 EPS_2: True\n\n    test 129 INF: INF (inf)\n    test 130 INF: INF\n    test 131 INF: True\n    test 132 INF: True\n\n    test 133 INT0: INT0 (0)\n    test 134 INT0: INT0\n    test 135 INT0: True\n    test 136 INT0: True\n\n    test 137 MANT_DIG: MANT_DIG (53)\n    test 138 MANT_DIG: MANT_DIG\n    test 139 MANT_DIG: True\n    test 140 MANT_DIG: True\n\n    test 141 MAX: MAX (1.79769313486e+308)\n    test 142 MAX: MAX\n    test 143 MAX: True\n    test 144 MAX: True\n\n    test 145 MAX_EXP: MAX_EXP (1024)\n    test 146 MAX_EXP: MAX_EXP\n    test 147 MAX_EXP: True\n    test 148 MAX_EXP: True\n\n    test 149 MIN: MIN (2.22507385851e-308)\n    test 150 MIN: MIN\n    test 151 MIN: True\n    test 152 MIN: True\n\n    test 153 MIN_EXP: MIN_EXP (-1021)\n    test 154 MIN_EXP: MIN_EXP\n    test 155 MIN_EXP: True\n    test 156 MIN_EXP: True\n\n    test 157 NAN: NAN (nan)\n    test 158 NAN: NAN\n    test 159 NAN: True\n    test 160 NAN: True\n\n    test 161 NEG0: NEG0 (-0)\n    test 162 NEG0: NEG0\n    test 163 NEG0: True\n    test 164 NEG0: True\n\n    test 165 NINF: NINF (-inf)\n    test 166 NINF: NINF\n    test 167 NINF: True\n    test 168 NINF: True\n\n    test 169 OVERFLOW: OVERFLOW (2.02824096037e+31)\n    test 170 OVERFLOW: OVERFLOW\n    test 171 OVERFLOW: True\n    test 172 OVERFLOW: True\n\n    test 173 PI: PI (3.14159265359)\n    test 174 PI: PI\n    test 175 PI: True\n    test 176 PI: True\n\n    test 177 PI2: PI2 (6.28318530718)\n    test 178 PI2: PI2\n    test 179 PI2: True\n    test 180 PI2: True\n\n    test 181 PI3: PI3 (9.42477796077)\n    test 182 PI3: PI3\n    test 183 PI3: True\n    test 184 PI3: True\n\n    test 185 PI3_2: PI3_2 (4.71238898038)\n    test 186 PI3_2: PI3_2\n    test 187 PI3_2: True\n    test 188 PI3_2: True\n\n    test 189 PI4: PI4 (12.5663706144)\n    test 190 PI4: PI4\n    test 191 PI4: True\n    test 192 PI4: True\n\n    test 193 PI_2: PI_2 (1.57079632679)\n    test 194 PI_2: PI_2\n    test 195 PI_2: True\n    test 196 PI_2: True\n\n    test 197 PI_3: PI_3 (1.0471975512)\n    test 198 PI_3: PI_3\n    test 199 PI_3: True\n    test 200 PI_3: True\n\n    test 201 PI_4: PI_4 (0.785398163397)\n    test 202 PI_4: PI_4\n    test 203 PI_4: True\n    test 204 PI_4: True\n\n    test 205 PI_6: PI_6 (0.523598775598)\n    test 206 PI_6: PI_6\n    test 207 PI_6: True\n    test 208 PI_6: True\n\n    test 209 R_FM: R_FM (6371000.0)\n    test 210 R_FM: R_FM\n    test 211 R_FM: True\n    test 212 R_FM: True\n\n    test 213 R_GM: R_GM (6371230.0)\n    test 214 R_GM: R_GM\n    test 215 R_GM: True\n    test 216 R_GM: True\n\n    test 217 R_KM: R_KM (6371.00877141)\n    test 218 R_KM: R_KM\n    test 219 R_KM: True\n    test 220 R_KM: True\n\n    test 221 R_M: R_M (6371008.77141)\n    test 222 R_M: R_M\n    test 223 R_M: True\n    test 224 R_M: True\n\n    test 225 R_MA: R_MA (6378137.0)\n    test 226 R_MA: R_MA\n    test 227 R_MA: True\n    test 228 R_MA: True\n\n    test 229 R_MB: R_MB (6356752.3)\n    test 230 R_MB: R_MB\n    test 231 R_MB: True\n    test 232 R_MB: True\n\n    test 233 R_NM: R_NM (3440.069531)\n    test 234 R_NM: R_NM\n    test 235 R_NM: True\n    test 236 R_NM: True\n\n    test 237 R_QM: R_QM (6372797.56086)\n    test 238 R_QM: R_QM\n    test 239 R_QM: True\n    test 240 R_QM: True\n\n    test 241 R_SM: R_SM (3958.76131605)\n    test 242 R_SM: R_SM\n    test 243 R_SM: True\n    test 244 R_SM: True\n\n    test 245 R_VM: R_VM (6366707.01949)\n    test 246 R_VM: R_VM\n    test 247 R_VM: True\n    test 248 R_VM: True\n\n    test 249 EPS: True\n    test 250 EPS+1: True\n    test 251 EPS-1: True\n\n    test 252 EPS0: True\n    test 253 EPS02: True\n\n    test 254 EPS_2: True\n    test 255 EPS_2: 1.11022302463e-16\n\n    test 256 EPS1: True\n    test 257 EPS1+1: True\n    test 258 EPS1-1: True\n\n    test 259 EPS2: True\n    test 260 EPS2: 4.4408920985e-16\n\n    test 261 EPS4: True\n    test 262 EPS4: 8.881784197e-16\n\n    test 263 INF: True\n    test 264 INF: False\n    test 265 NINF: True\n    test 266 NINF: -inf\n\n    test 267 INT0: 0\n    test 268 INT0: True\n    test 269 INT0: True\n    test 270 INT0: False\n    test 271 INT0: False\n    test 272 INT0: False\n\n    test 273 NAN: True\n    test 274 NAN: False\n    test 275 NAN: False\n\n    test 276 NEG0: -0.0\n    test 277 NEG0: True\n    test 278 NEG0: False\n    test 279 NEG0: 0.0\n\n    test 280 _off90: True\n    test 281 _off90: True\n    test 282 float_: True\n    test 283 floats_: (1.0, 2.0, 3.0)\n\n    test 284 _0_0: True\n\n    test 285 _0_0s: 0\n    test 286 _0_0s: 0\n    test 287 _0_0s: 1\n    test 288 _0_0s: 1\n    test 289 _0_0s: 2\n    test 290 _0_0s: 2\n    test 291 _0_0s: 3\n    test 292 _0_0s: 3\n    test 293 _0_0s: 5\n    test 294 _0_0s: 5\n    test 295 _0_0s: 8\n    test 296 _0_0s: 8\n    test 297 _0_0s: 9\n    test 298 _0_0s: 9\n    test 299 _0_0s: 10\n    test 300 _0_0s: 10\n    test 301 _0_0s: 12\n    test 302 _0_0s: 12\n    test 303 _0_0s: 25\n    test 304 _0_0s: 25\n    test 305 _0_0s: 49\n    test 306 _0_0s: 49\n    test 307 _0_0s: 129\n    test 308 _0_0s: 129\n    test 309 _0_0s: 257\n    test 310 _0_0s: 257\n\n    12 of 310 testConstants.py tests (3.9%) FAILED, ALL KNOWN (pygeodesy 26.3.26 Python 2.7.18 64bit arm64_x86_64 geographiclib 1.50 numpy 1.16.6 scipy 1.2.2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 -W  default) 1.540 ms\nrunning /Library/Framewo....ython -W default ~/PyGeodesy/test/testCss.py\n\n    testing testCss.py 23.03.27 (module pygeodesy.css 25.04.14)\n    test 1 CassiniSoldner(48.833333, 2.333333, name='Paris'): 48.833333 2.333333\n    test 2 Exact: False\n    test 3 forward: -37518.854545, 230003.561828\n    test 4 reverse: 50.9, 1.8\n    test 5 forward4: -37518.854545, 230003.561828, 89.586104, 0.999983\n    test 6 equatorarc: 89.662511\n    test 7 equatorazimuth: 39.192992\n    test 8 copy(<type 'type'>): (<class 'pygeodesy.css.CassiniSoldner'>, True)\n    test 9 CassiniSoldner.copy(): (<class 'pygeodesy.css.CassiniSoldner'>, True)\n    test 10 reverse: 50.899937, 1.793161\n    test 11 forward: -38000.0, 230000.0\n    test 12 reverse4: 50.899937, 1.793161, 89.580797, 0.999982\n    test 13 reverse(pygeodesy.ellipsoidalKarney): LatLon(50°53′59.77″N, 001°47′35.38″E)\n    test 14 reverse(pygeodesy.ellipsoidalExact): LatLon(50°53′59.77″N, 001°47′35.38″E)\n    test 15 reverse(pygeodesy.ellipsoidalNvector): LatLon(50°53′59.77″N, 001°47′35.38″E)\n    test 16 reverse(pygeodesy.ellipsoidalVincenty): LatLon(50°53′59.77″N, 001°47′35.38″E)\n    test 17 reverse(pygeodesy.ellipsoidalGeodSolve): LatLon(50°53′59.77″N, 001°47′35.38″E)\n    test 18 CassiniSoldner(51.4934, 0.0098, name='Greenwich'): 51.4934 0.0098\n    test 19 forward: 170557.151692, -293280.6051\n    test 20 reverse: 48.833333, 2.333333\n    test 21 hypot: 339268.707  FAILED, KNOWN, expected 338901.865\n    test 22 toCss: -37518.854545 230003.561828 +1.00m\n    test 23 toCss: [E:-37518.854545, N:230003.561828, H:+1.00m, name:'Calais', C:CassiniSoldner(48.833333, 2.333333, name='Paris')]\n    test 24 Css.easting: -37518.854545\n    test 25 Css.northing: 230003.561828\n    test 26 Css.height: 1.0\n    test 27 Css.azi: 89.586103815\n    test 28 Css.rk: 0.999982722\n    test 29 Css.name: Calais\n    test 30 Css.cs0: 48.833333 2.333333\n    test 31 Css.toLatLon: LatLon(50°54′00.0″N, 001°48′00.0″E, +1.00m)\n    test 32 Css.toLatLon.height: 1.0\n    test 33 Css.toLatLon.name: Calais\n    test 34 Css.toLatLon.datum.name: WGS84\n    test 35 Css.toLatLon.height: 1.0  FAILED, KNOWN, expected height(1.0)\n    test 36 copy(<type 'type'>): (<class 'pygeodesy.css.Css'>, True)\n    test 37 Css.copy(): (<class 'pygeodesy.css.Css'>, True)\n    test 38 cs0.name: Paris\n    test 39 cs0.name: Default\n    test 40 cs0.flattening: 0.003352811\n    test 41 cs0.lat0: 0.0\n    test 42 cs0.equatoradius: 6378137.0\n    test 43 cs0.lat0: 0.0  FAILED, KNOWN, expected lat(0.0)\n    test 44 classof.height: 1.0\n    test 45 classof.azi: 89.586103815\n    test 46 classof.rk: 0.999982722\n    test 47 classof.name: Calais\n    test 48 classof.cs0: 48.833333 2.333333\n    test 49 cs0.latlon0: (48.833333, 2.333333)\n    test 50 cs0.latlon0: (48.833333, 2.333333)\n    test 51 cs0.latlon0: latlon0 (None): 'NoneType' object has no attribute 'lat'\n    test 52 cs0.latlon0: (48.0, 2.0)\n    test 53 datum: True\n    test 54 datum: False\n    test 55 forward6: (39142.269011, -229679.266845, 90.401497, 0.999981, 90.352206, 41.257592)\n\n    3 of 55 testCss.py tests (5.5%) FAILED, ALL KNOWN (pygeodesy 26.3.26 Python 2.7.18 64bit arm64_x86_64 geographiclib 1.50 numpy 1.16.6 scipy 1.2.2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 -W  default) 5.429 ms\nrunning /Library/Framewo....ython -W default ~/PyGeodesy/test/testDatums.py\n\n    testing testDatums.py 24.05.17 (module pygeodesy.datums 26.01.13)\n    test 1 ellipsoid: True\n    test 2 transform: True\n    test 3 datum: True\n    test 4 TestEllipsiod: name='TestEllipsiod', a=1000, f=0, f_=0, b=1000\n    test 5 TestTransform: name='TestTransform', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=0.0, ry=0.0, rz=0.0, s=0.0, sx=0.0, sy=0.0, sz=0.0\n    test 6 TestDatum: name='TestDatum', ellipsoid=Ellipsoids.TestEllipsiod, transform=Transforms.TestTransform\n    test 7 ED50.inverse().inverse(): True\n    test 8 Sphere: True\n\n    test 9 all: all\n\n    test 10 BD72: name='BD72', ellipsoid=Ellipsoids.Intl1924, transform=Transforms.BD72\n    test 11 Intl1924: name='Intl1924', a=6378388, f=0.003367, f_=297, b=6356911.94612795\n    test 12 BD72: name='BD72', tx=106.87, ty=-52.298, tz=103.72, s1=1.0, rx=-1.6317e-06, ry=-2.2154e-06, rz=-8.9311e-06, s=1.2727, sx=-0.33657, sy=-0.45696, sz=-1.8422\n\n    test 13 DHDN: name='DHDN', ellipsoid=Ellipsoids.Bessel1841, transform=Transforms.DHDN\n    test 14 Bessel1841: name='Bessel1841', a=6377397.155, f=0.00334277, f_=299.1528128, b=6356078.962818\n    test 15 DHDN: name='DHDN', tx=-591.28, ty=-81.35, tz=-396.39, s1=0.99999, rx=7.1607e-06, ry=-3.5682e-07, rz=-7.0686e-06, s=-9.82, sx=1.477, sy=-0.0736, sz=-1.458\n\n    test 16 ED50: name='ED50', ellipsoid=Ellipsoids.Intl1924, transform=Transforms.ED50\n    test 17 Intl1924: name='Intl1924', a=6378388, f=0.003367, f_=297, b=6356911.94612795\n    test 18 ED50: name='ED50', tx=89.5, ty=93.8, tz=123.1, s1=1.0, rx=0.0, ry=0.0, rz=7.5631e-07, s=-1.2, sx=0.0, sy=0.0, sz=0.156\n\n    test 19 GDA2020: name='GDA2020', ellipsoid=Ellipsoids.GRS80, transform=Transforms.WGS84\n    test 20 GRS80: name='GRS80', a=6378137, f=0.00335281, f_=298.2572221, b=6356752.31414035\n    test 21 WGS84: name='WGS84', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=0.0, ry=0.0, rz=0.0, s=0.0, sx=0.0, sy=0.0, sz=0.0\n\n    test 22 GRS80: name='GRS80', ellipsoid=Ellipsoids.GRS80, transform=Transforms.WGS84\n    test 23 GRS80: name='GRS80', a=6378137, f=0.00335281, f_=298.2572221, b=6356752.31414035\n    test 24 WGS84: name='WGS84', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=0.0, ry=0.0, rz=0.0, s=0.0, sx=0.0, sy=0.0, sz=0.0\n\n    test 25 Irl1975: name='Irl1975', ellipsoid=Ellipsoids.AiryModified, transform=Transforms.Irl1975\n    test 26 AiryModified: name='AiryModified', a=6377340.189, f=0.00334085, f_=299.3249646, b=6356034.44793853\n    test 27 Irl1975: name='Irl1975', tx=-482.53, ty=130.6, tz=-564.56, s1=0.99999, rx=5.0518e-06, ry=1.0375e-06, rz=3.0592e-06, s=-8.15, sx=1.042, sy=0.214, sz=0.631\n\n    test 28 Krassovski1940: name='Krassovski1940', ellipsoid=Ellipsoids.Krassovski1940, transform=Transforms.Krassovski1940\n    test 29 Krassovski1940: name='Krassovski1940', a=6378245, f=0.00335233, f_=298.3, b=6356863.01877305\n    test 30 Krassovski1940: name='Krassovski1940', tx=-24, ty=123.0, tz=94.0, s1=1.0, rx=-9.6963e-08, ry=1.2605e-06, rz=6.3026e-07, s=-2.423, sx=-0.02, sy=0.26, sz=0.13\n\n    test 31 Krassowsky1940: name='Krassowsky1940', ellipsoid=Ellipsoids.Krassowsky1940, transform=Transforms.Krassowsky1940\n    test 32 Krassowsky1940: name='Krassowsky1940', a=6378245, f=0.00335233, f_=298.3, b=6356863.01877305\n    test 33 Krassowsky1940: name='Krassowsky1940', tx=-24, ty=123.0, tz=94.0, s1=1.0, rx=-9.6963e-08, ry=1.2605e-06, rz=6.3026e-07, s=-2.423, sx=-0.02, sy=0.26, sz=0.13\n\n    test 34 MGI: name='MGI', ellipsoid=Ellipsoids.Bessel1841, transform=Transforms.MGI\n    test 35 Bessel1841: name='Bessel1841', a=6377397.155, f=0.00334277, f_=299.1528128, b=6356078.962818\n    test 36 MGI: name='MGI', tx=-577.33, ty=-90.129, tz=-463.92, s1=1.0, rx=2.4905e-05, ry=7.1462e-06, rz=2.5681e-05, s=-2.423, sx=5.137, sy=1.474, sz=5.297\n\n    test 37 NAD27: name='NAD27', ellipsoid=Ellipsoids.Clarke1866, transform=Transforms.NAD27\n    test 38 Clarke1866: name='Clarke1866', a=6378206.4, f=0.00339008, f_=294.97869821, b=6356583.8\n    test 39 NAD27: name='NAD27', tx=8.0, ty=-160, tz=-176, s1=1.0, rx=0.0, ry=0.0, rz=0.0, s=0.0, sx=0.0, sy=0.0, sz=0.0\n\n    test 40 NAD83: name='NAD83', ellipsoid=Ellipsoids.GRS80, transform=Transforms.NAD83\n    test 41 GRS80: name='GRS80', a=6378137, f=0.00335281, f_=298.2572221, b=6356752.31414035\n    test 42 NAD83: name='NAD83', tx=1.004, ty=-1.91, tz=-0.515, s1=1.0, rx=1.2945e-07, ry=1.6484e-09, rz=5.333e-08, s=-0.0015, sx=0.0267, sy=0.00034, sz=0.011\n\n    test 43 NTF: name='NTF', ellipsoid=Ellipsoids.Clarke1880IGN, transform=Transforms.NTF\n    test 44 Clarke1880IGN: name='Clarke1880IGN', a=6378249.2, f=0.00340755, f_=293.46602129, b=6356515\n    test 45 NTF: name='NTF', tx=-168, ty=-60, tz=320.0, s1=1.0, rx=0.0, ry=0.0, rz=0.0, s=0.0, sx=0.0, sy=0.0, sz=0.0\n\n    test 46 OSGB36: name='OSGB36', ellipsoid=Ellipsoids.Airy1830, transform=Transforms.OSGB36\n    test 47 Airy1830: name='Airy1830', a=6377563.396, f=0.00334085, f_=299.3249646, b=6356256.90923729\n    test 48 OSGB36: name='OSGB36', tx=-446.45, ty=125.16, tz=-542.06, s1=1.0, rx=-7.2819e-07, ry=-1.1975e-06, rz=-4.0826e-06, s=20.489, sx=-0.1502, sy=-0.247, sz=-0.8421\n\n    test 49 Potsdam: name='Potsdam', ellipsoid=Ellipsoids.Bessel1841, transform=Transforms.Bessel1841\n    test 50 Bessel1841: name='Bessel1841', a=6377397.155, f=0.00334277, f_=299.1528128, b=6356078.962818\n    test 51 Bessel1841: name='Bessel1841', tx=-582, ty=-105, tz=-414, s1=0.99999, rx=-5.0421e-06, ry=-1.6968e-06, rz=1.4932e-05, s=-8.3, sx=-1.04, sy=-0.35, sz=3.08\n\n    test 52 Sphere: name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84\n    test 53 Sphere: name='Sphere', a=6371008.771415, f=0, f_=0, b=6371008.771415\n    test 54 WGS84: name='WGS84', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=0.0, ry=0.0, rz=0.0, s=0.0, sx=0.0, sy=0.0, sz=0.0\n\n    test 55 TokyoJapan: name='TokyoJapan', ellipsoid=Ellipsoids.Bessel1841, transform=Transforms.TokyoJapan\n    test 56 Bessel1841: name='Bessel1841', a=6377397.155, f=0.00334277, f_=299.1528128, b=6356078.962818\n    test 57 TokyoJapan: name='TokyoJapan', tx=148.0, ty=-507, tz=-685, s1=1.0, rx=0.0, ry=0.0, rz=0.0, s=0.0, sx=0.0, sy=0.0, sz=0.0\n\n    test 58 WGS72: name='WGS72', ellipsoid=Ellipsoids.WGS72, transform=Transforms.WGS72\n    test 59 WGS72: name='WGS72', a=6378135, f=0.00335278, f_=298.26, b=6356750.52001609\n    test 60 WGS72: name='WGS72', tx=0.0, ty=0.0, tz=-4.5, s1=1.0, rx=0.0, ry=0.0, rz=2.6859e-06, s=-0.22, sx=0.0, sy=0.0, sz=0.554\n\n    test 61 WGS84: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 62 WGS84: name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518\n    test 63 WGS84: name='WGS84', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=0.0, ry=0.0, rz=0.0, s=0.0, sx=0.0, sy=0.0, sz=0.0\n\n    test 64 total: 18\n\n    all 64 testDatums.py tests passed (pygeodesy 26.3.26 Python 2.7.18 64bit arm64_x86_64 geographiclib 1.50 numpy 1.16.6 scipy 1.2.2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 -W  default) 3.798 ms\nrunning /Library/Framewo....ython -W default ~/PyGeodesy/test/testDeprecated.py\n./pygeodesy/deprecated/classes.py:185: DeprecationWarning: class L{HeightIDW<pygeodesy.deprecated.classes.HeightIDW>} has been DEPRECATED, use class L{HeightIDWeuclidean}.\n  deprecated_class(self.__class__)\n./pygeodesy/deprecated/classes.py:198: DeprecationWarning: class L{HeightIDW2<pygeodesy.deprecated.classes.HeightIDW2>} has been DEPRECATED, use class L{HeightIDWequirectangular}.\n  deprecated_class(self.__class__)\n./pygeodesy/deprecated/classes.py:212: DeprecationWarning: class L{HeightIDW3<pygeodesy.deprecated.classes.HeightIDW3>} has been DEPRECATED, use class L{HeightIDWhaversine}.\n  deprecated_class(self.__class__)\n./test/testDeprecated.py:38: DeprecationWarning: function L{areaof<pygeodesy.deprecated.functions.areaof>} has been DEPRECATED, use function L{pygeodesy.areaOf}.\n  self.test('areaof', areaof(p, radius=R_MA), '7.086883e+09', fmt='%.6e')  # PYCHOK DEPRECATED\n./test/testDeprecated.py:41: DeprecationWarning: function L{bounds<pygeodesy.deprecated.functions.bounds>} has been DEPRECATED, use function L{pygeodesy.boundsOf}.\n  b = map2(float, bounds(p))  # PYCHOK DEPRECATED\n./test/testDeprecated.py:44: DeprecationWarning: function L{anStr<pygeodesy.deprecated.functions.anStr>} has been DEPRECATED, use function L{pygeodesy.anstr}.\n  self.test('anStr', anStr('a-b?_'), 'a-b__')  # PYCHOK DEPRECATED\n./test/testDeprecated.py:46: DeprecationWarning: function L{clipStr<pygeodesy.deprecated.functions.clipStr>} has been DEPRECATED, use function L{pygeodesy.clips}.\n  self.test('clipStr', clipStr('test/testBasics.py', limit=12), 'test/t....ics.py')  # PYCHOK DEPRECATED\n./test/testDeprecated.py:48: DeprecationWarning: function L{decodeEPSG2<pygeodesy.deprecated.functions.decodeEPSG2>} has been DEPRECATED, use function L{epsg.decode2}.\n  self.test('decodeEPSG2', decodeEPSG2(32712), \"(12, 'S')\")  # PYCHOK DEPRECATED\n./test/testDeprecated.py:49: DeprecationWarning: function L{encodeEPSG<pygeodesy.deprecated.functions.encodeEPSG>} has been DEPRECATED, use function L{epsg.encode}.\n  self.test('encodeEPSG', encodeEPSG(12, hemipole='S'), '32712')  # PYCHOK DEPRECATED\n./test/testDeprecated.py:51: DeprecationWarning: function L{equirectangular3<pygeodesy.deprecated.functions.equirectangular3>} has been DEPRECATED, use function L{pygeodesy.equirectangular4}.\n  t = equirectangular3(0, 2, 3, 4)  # PYCHOK DEPRECATED\n./test/testDeprecated.py:55: DeprecationWarning: function L{fStr<pygeodesy.deprecated.functions.fStr>} has been DEPRECATED, use function L{fstr}.\n  self.test('fStr', fStr(0.123, prec=-6), '0.123000')  # PYCHOK DEPRECATED\n./test/testDeprecated.py:56: DeprecationWarning: function L{fStr<pygeodesy.deprecated.functions.fStr>} has been DEPRECATED, use function L{fstr}.\n  self.test('fStr', fStr(0.123, prec=+6), '0.123')  # PYCHOK DEPRECATED\n./test/testDeprecated.py:57: DeprecationWarning: function L{fStr<pygeodesy.deprecated.functions.fStr>} has been DEPRECATED, use function L{fstr}.\n  self.test('fStr', fStr((0.123, 456.789), prec=+6), '0.123, 456.789')  # PYCHOK DEPRECATED\n./test/testDeprecated.py:58: DeprecationWarning: function L{fStr<pygeodesy.deprecated.functions.fStr>} has been DEPRECATED, use function L{fstr}.\n  self.test('fStr', fStr(0.123, prec=-5, fmt='%.*e'), '1.23000e-01')  # PYCHOK DEPRECATED\n./test/testDeprecated.py:59: DeprecationWarning: function L{fStr<pygeodesy.deprecated.functions.fStr>} has been DEPRECATED, use function L{fstr}.\n  self.test('fStr', fStr(0.123, prec=+5, fmt='%.*e'), '1.23e-01')  # PYCHOK DEPRECATED\n./test/testDeprecated.py:60: DeprecationWarning: function L{fStr<pygeodesy.deprecated.functions.fStr>} has been DEPRECATED, use function L{fstr}.\n  self.test('fStr', fStr(0.123, prec=+6, fmt='%.*f'), '0.123')  # PYCHOK DEPRECATED\n./test/testDeprecated.py:62: DeprecationWarning: function L{hypot3<pygeodesy.deprecated.functions.hypot3>} has been DEPRECATED, use function L{pygeodesy.hypot_}.\n  h = hypot3(3000, 200, 10)  # PYCHOK DEPRECATED\n./test/testDeprecated.py:67: DeprecationWarning: function L{isenclosedby<pygeodesy.deprecated.functions.isenclosedby>} has been DEPRECATED, use function L{pygeodesy.isenclosedBy}.\n  self.test('isenclosedby', isenclosedby(LatLon(45.5, 1.5), b), True)  # PYCHOK DEPRECATED\n./test/testDeprecated.py:71: DeprecationWarning: function L{nearestOn3<pygeodesy.deprecated.functions.nearestOn3>} has been DEPRECATED, use function L{pygeodesy.nearestOn5}.\n  t = nearestOn3(p, b, adjust=False)  # PYCHOK DEPRECATED\n./test/testDeprecated.py:74: DeprecationWarning: function L{nearestOn4<pygeodesy.deprecated.functions.nearestOn4>} has been DEPRECATED, use function L{pygeodesy.nearestOn5}.\n  t = nearestOn4(p, b, adjust=False)  # PYCHOK DEPRECATED\n./test/testDeprecated.py:78: DeprecationWarning: function L{parseUTM<pygeodesy.deprecated.functions.parseUTM>} has been DEPRECATED, use function L{parseUTM5}.\n  t = parseUTM('18 N 516620 4574500', Utm=None)  # PYCHOK Milford, PA\n./test/testDeprecated.py:82: DeprecationWarning: function L{perimeterof<pygeodesy.deprecated.functions.perimeterof>} has been DEPRECATED, use function L{pygeodesy.perimeterOf}.\n  self.test('perimeterof', perimeterof(p, radius=R_MA), '2.687460e+05', fmt='%.6e')  # PYCHOK DEPRECATED\n./test/testDeprecated.py:85: DeprecationWarning: function L{polygon<pygeodesy.deprecated.functions.polygon>} has been DEPRECATED, use function L{pygeodesy.points2}.\n  self.test('polygon', polygon(p)[0], 3)  # PYCHOK DEPRECATED\n./test/testDeprecated.py:87: DeprecationWarning: function L{simplify2<pygeodesy.deprecated.functions.simplify2>} has been DEPRECATED, use function L{pygeodesy.simplifyRW}.\n  t = simplify2(RdpFFI, 16, adjust=True, shortest=False)  # PYCHOK DEPRECATED\n./test/testDeprecated.py:90: DeprecationWarning: function L{toUtm<pygeodesy.deprecated.functions.toUtm>} has been DEPRECATED, use function L{pygeodesy.toUtm8}.\n  t = toUtm('50°52′10″N', '115°39′03″W', Utm=None, name='Mt Assiniboine')  # PYCHOK DEPRECATED\n./test/testDeprecated.py:93: DeprecationWarning: function L{utmZoneBand2<pygeodesy.deprecated.functions.utmZoneBand2>} has been DEPRECATED, use function L{pygeodesy.utmZoneBand5}.\n  t = utmZoneBand2('50°52′10″N', '115°39′03″W')  # PYCHOK DEPRECATED\n\n    testing testDeprecated.py 25.05.09 (module pygeodesy.deprecated 26.02.08)\n\n    test 1 HeightIDW: True\n    test 2 HeightIDW2: True\n    test 3 HeightIDW3: True\n\n    test 4 areaof: 7.086883e+09\n    test 5 bounds: (-85.0, -180.0, 85.0, 90.0)\n    test 6 anStr: a-b__\n    test 7 clipStr: test/t....ics.py\n    test 8 decodeEPSG2: (12, 'S')\n    test 9 encodeEPSG: 32712\n    test 10 equirectangular3: 3\n    test 11 equirectangular3: 12.997\n    test 12 fStr: 0.123000\n    test 13 fStr: 0.123\n    test 14 fStr: 0.123, 456.789\n    test 15 fStr: 1.23000e-01\n    test 16 fStr: 1.23e-01\n    test 17 fStr: 0.123\n    test 18 hypot3: 3006.675905\n    test 19 isenclosedby: True\n    test 20 nearestOn3: 3\n    test 21 nearestOn3: (45.5, 1.5)\n    test 22 nearestOn4: 4\n    test 23 nearestOn4: (45.5, 1.5)\n    test 24 parseUTM: (18, 'N', 516620.0, 4574500.0)\n    test 25 perimeterof: 2.687460e+05\n    test 26 polygon: 3\n    test 27 simplify2: 4\n    test 28 toUtm: 6\n    test 29 utmZoneBand2: (11, 'U')\n\n    test 30 HeightIDW: True\n    test 31 HeightIDW2: True\n    test 32 HeightIDW3: True\n\n    test 33 areaof: 7.086883e+09\n    test 34 bounds: (-85.0, -180.0, 85.0, 90.0)\n    test 35 anStr: a-b__\n    test 36 clipStr: test/t....ics.py\n    test 37 decodeEPSG2: (12, 'S')\n    test 38 encodeEPSG: 32712\n    test 39 equirectangular3: 3\n    test 40 equirectangular3: 12.997\n    test 41 fStr: 0.123000\n    test 42 fStr: 0.123\n    test 43 fStr: 0.123, 456.789\n    test 44 fStr: 1.23000e-01\n    test 45 fStr: 1.23e-01\n    test 46 fStr: 0.123\n    test 47 hypot3: 3006.675905\n    test 48 isenclosedby: True\n    test 49 nearestOn3: 3\n    test 50 nearestOn3: (45.5, 1.5)\n    test 51 nearestOn4: 4\n    test 52 nearestOn4: (45.5, 1.5)\n    test 53 parseUTM: (18, 'N', 516620.0, 4574500.0)\n    test 54 perimeterof: 2.687460e+05\n    test 55 polygon: 3\n    test 56 simplify2: 4\n    test 57 toUtm: 6\n    test 58 utmZoneBand2: (11, 'U')\n\n    test 59 HeightIDW: True\n    test 60 HeightIDW2: True\n    test 61 HeightIDW3: True\n\n    test 62 areaof: 7.086883e+09\n    test 63 bounds: (-85.0, -180.0, 85.0, 90.0)\n    test 64 anStr: a-b__\n    test 65 clipStr: test/t....ics.py\n    test 66 decodeEPSG2: (12, 'S')\n    test 67 encodeEPSG: 32712\n    test 68 equirectangular3: 3\n    test 69 equirectangular3: 12.997\n    test 70 fStr: 0.123000\n    test 71 fStr: 0.123\n    test 72 fStr: 0.123, 456.789\n    test 73 fStr: 1.23000e-01\n    test 74 fStr: 1.23e-01\n    test 75 fStr: 0.123\n    test 76 hypot3: 3006.675905\n    test 77 isenclosedby: True\n    test 78 nearestOn3: 3\n    test 79 nearestOn3: (45.5, 1.5)\n    test 80 nearestOn4: 4\n    test 81 nearestOn4: (45.5, 1.5)\n    test 82 parseUTM: (18, 'N', 516620.0, 4574500.0)\n    test 83 perimeterof: 2.687460e+05\n    test 84 polygon: 3\n    test 85 simplify2: 4\n    test 86 toUtm: 6\n    test 87 utmZoneBand2: (11, 'U')\n\n    test 88 deprecated: 7\n    test 89 isDEPRECATED('bases'): True\n    test 90 isDEPRECATED('datum'): True\n    test 91 isDEPRECATED('nvector'): True\n    test 92 isDEPRECATED('rhumbaux'): True\n    test 93 isDEPRECATED('rhumbBase'): True\n    test 94 isDEPRECATED('rhumbsolve'): True\n    test 95 isDEPRECATED('rhumbx'): True\n\n    78 of 95 testDeprecated.py tests (82.1%) FAILED, incl. 78 DeprecationWarnings (pygeodesy 26.3.26 Python 2.7.18 64bit arm64_x86_64 geographiclib 1.50 numpy 1.16.6 scipy 1.2.2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 -W  default) 9.513 ms\nrunning /Library/Framewo....ython -W default ~/PyGeodesy/test/testDms.py\n\n    testing testDms.py 23.03.27 (module pygeodesy.dms 25.08.31)\n    test 1 parseDMS('0.0°'): 0.0\n    test 2 parseDMS('0°'): 0.0\n    test 3 parseDMS('000°00'00\"'): 0.0\n    test 4 parseDMS('000°00'00.0\"'): 0.0\n    test 5 parseDMS('000° 00'00\"'): 0.0\n    test 6 parseDMS('000°00 ' 00.0\"'): 0.0\n    test 7 parseDMS('000° 00' 00.0'): 0.0\n    test 8 parseDMS('000°-00′-00.0\"'): 0.0\n    test 9 parseDDDMMSS(1): 1.0\n    test 10 parseDMS(1): 1.0\n    test 11 parseDDDMMSS(12): 12.0\n    test 12 parseDMS(12): 12.0\n    test 13 parseDDDMMSS(123): 123.0\n    test 14 parseDMS(123): 123.0\n    test 15 parseDDDMMSS(1234): 12.567\n    test 16 parseDMS(1234): 1234.0\n    test 17 parseDDDMMSS(12345): 123.75\n    test 18 parseDMS(12345): 12345.0\n    test 19 parseDDDMMSS(123456): 12.582\n    test 20 parseDMS(123456): 123456.0\n    test 21 parseDDDMMSS(1234567): 123.769\n    test 22 parseDMS(1234567): 1234567.0\n    test 23 parseDDDMMSS(12345678): 1234.955\n    test 24 parseDMS(12345678): 12345678.0\n    test 25 parseDDDMMSS(0.1): 0.1\n    test 26 parseDMS(0.1): 0.1\n    test 27 parseDDDMMSS(1.2): 1.2\n    test 28 parseDMS(1.2): 1.2\n    test 29 parseDDDMMSS(12.3): 12.3\n    test 30 parseDMS(12.3): 12.3\n    test 31 parseDDDMMSS(123.4): 123.4\n    test 32 parseDMS(123.4): 123.4\n    test 33 parseDDDMMSS(1234.5): 12.575\n    test 34 parseDMS(1234.5): 1234.5\n    test 35 parseDDDMMSS(12345.6): 123.76\n    test 36 parseDMS(12345.6): 12345.6\n    test 37 parseDDDMMSS(123456.7): 12.582\n    test 38 parseDMS(123456.7): 123456.7\n    test 39 parseDDDMMSS('1N'): 1.0\n    test 40 parseDMS('1N'): 1.0\n    test 41 parseDDDMMSS('12S'): -12.0\n    test 42 parseDMS('12S'): -12.0\n    test 43 parseDDDMMSS('012.3W'): -12.3\n    test 44 parseDMS('012.3W'): -12.3\n    test 45 parseDDDMMSS('123E'): 123.0\n    test 46 parseDMS('123E'): 123.0\n    test 47 parseDDDMMSS('1234N'): 12.567\n    test 48 parseDMS('1234N'): 1234.0\n    test 49 parseDDDMMSS('12345E'): 123.75\n    test 50 parseDMS('12345E'): 12345.0\n    test 51 parseDDDMMSS('1234.5S'): -12.575\n    test 52 parseDMS('1234.5S'): -1234.5\n    test 53 parseDDDMMSS('12345.6E'): 123.76\n    test 54 parseDMS('12345.6E'): 12345.6\n    test 55 parseDDDMMSS('123456.7S'): -12.582\n    test 56 parseDMS('123456.7S'): -123456.7\n    test 57 parseDDDMMSS('1234567.8W'): -123.769\n    test 58 parseDMS('1234567.8W'): -1234567.8\n    test 59 parseDDDMMSS('12345678E'): 12345678.0\n    test 60 parseDMS('12345678E'): 12345678.0\n    test 61 parseDDDMMSS(345.0, NS): 3.75\n    test 62 parseDDDMMSS(345.0, EW): 345.0\n    test 63 parseDDDMMSS(5430.0, NS): 54.5\n    test 64 parseDDDMMSS(5430.0, EW): 54.5\n    test 65 parseDDDMMSS(76.5432, sexagecimal=False): 76.5432\n    test 66 parseDDDMMSS(76.5432, sexagecimal=True): 76.9089\n    test 67 parseDDDMMSS(00.0102, sexagecimal=False): 0.0102\n    test 68 parseDDDMMSS(00.0102, sexagecimal=True): 0.0172\n    test 69 parseDDDMMSS('12E'): ParseError(\"sexagecimal (False), strDDDMMSS ('12E') or suffix ('NSEW'): form DDMMSS applies N-S: invalid\",)\n    test 70 parseDMS('12E'): 12.0\n    test 71 parseDDDMMSS('012.3S'): ParseError(\"sexagecimal (False), strDDDMMSS ('012.3S') or suffix ('NSEW'): form DDDMMSS applies E-W: invalid\",)\n    test 72 parseDMS('012.3S'): -12.3\n    test 73 parseDDDMMSS('123N'): ParseError(\"sexagecimal (False), strDDDMMSS ('123N') or suffix ('NSEW'): form DDDMMSS applies E-W: invalid\",)\n    test 74 parseDMS('123N'): 123.0\n    test 75 parseDDDMMSS('1234E'): ParseError(\"sexagecimal (False), strDDDMMSS ('1234E') or suffix ('NSEW'): form DDMMSS applies N-S: invalid\",)\n    test 76 parseDMS('1234E'): 1234.0\n    test 77 parseDDDMMSS('12345N'): ParseError(\"sexagecimal (False), strDDDMMSS ('12345N') or suffix ('NSEW'): form DDDMMSS applies E-W: invalid\",)\n    test 78 parseDMS('12345N'): 12345.0\n    test 79 parseDDDMMSS('1234.5W'): ParseError(\"sexagecimal (False), strDDDMMSS ('1234.5W') or suffix ('NSEW'): form DDMMSS applies N-S: invalid\",)\n    test 80 parseDMS('1234.5W'): -1234.5\n    test 81 parseDDDMMSS('123456E'): ParseError(\"sexagecimal (False), strDDDMMSS ('123456E') or suffix ('NSEW'): form DDMMSS applies N-S: invalid\",)\n    test 82 parseDMS('123456E'): 123456.0\n    test 83 parseDDDMMSS('1234567S'): ParseError(\"sexagecimal (False), strDDDMMSS ('1234567S') or suffix ('NSEW'): form DDDMMSS applies E-W: invalid\",)\n    test 84 parseDMS('1234567S'): -1234567.0\n    test 85 parseDMS: strDMS (181) or suffix ('NSEW'): 181 beyond 180.0 degrees\n    test 86 parseDMS: -90.0\n    test 87 parse3llh: 51.477811, -0.001475, 0.0\n    test 88 toDMS(dm): 46°00.0′\n    test 89 toDMS(dm): 46°00.0′\n    test 90 toDMS(dm): 45°59.99′\n    test 91 toDMS(dm): 45°59.999′\n    test 92 toDMS(dms): 46°00′00.0″\n    test 93 toDMS(dms): 45°59′59.96″\n    test 94 toDMS(dms): 45°59′59.964″\n    test 95 toDMS(d60): 45.5959964\n    test 96 toDMS(d60): 45°45′45.36″\n    test 97 toDMS(d60): 45d45m45.36s\n    test 98 normDMS: 45°45′45.36″\n    test 99 parseDMS: 45.7626\n    test 100 toDMS(d): 45.7626°\n    test 101 toDMS(d): -45.7626°\n    test 102 toDMS(dm): 45°45.756′\n    test 103 toDMS(dm): -45°45.756′\n    test 104 toDMS(dms): 45°45′45.36″\n    test 105 toDMS(dms): -45°45′45.36″\n    test 106 toDMS(deg): 45.7626\n    test 107 toDMS(deg): -45.7626\n    test 108 toDMS(min): 4545.756\n    test 109 toDMS(min): -4545.756\n    test 110 toDMS(sec): 454545.36\n    test 111 toDMS(sec): -454545.36\n    test 112 toDMS(rad): 0.79871\n    test 113 toDMS(rad): -0.79871\n    test 114 toDMS(d60): 45.4545\n    test 115 toDMS(d60): -45.4545\n    test 116 toDMS(d): 45.7626°\n    test 117 toDMS(d): -45.7626°\n    test 118 toDMS(dm): 45°45.7560′\n    test 119 toDMS(dm): -45°45.7560′\n    test 120 toDMS(dms): 45°45′45.36″\n    test 121 toDMS(dms): -45°45′45.36″\n    test 122 toDMS(deg): 45.762600\n    test 123 toDMS(deg): -45.762600\n    test 124 toDMS(min): 4545.75600\n    test 125 toDMS(min): -4545.75600\n    test 126 toDMS(sec): 454545.360\n    test 127 toDMS(sec): -454545.360\n    test 128 toDMS(rad): 0.798708\n    test 129 toDMS(rad): -0.798708\n    test 130 toDMS(d60): 45.4545360\n    test 131 toDMS(d60): -45.4545360\n    test 132 toDMS(-d): 45.7626°\n    test 133 toDMS(-d): -45.7626°\n    test 134 toDMS(-dm): 45°45.7560′\n    test 135 toDMS(-dm): -45°45.7560′\n    test 136 toDMS(-dms): 45°45′45.36″\n    test 137 toDMS(-dms): -45°45′45.36″\n    test 138 toDMS(-deg): 45.762600\n    test 139 toDMS(-deg): -45.762600\n    test 140 toDMS(-min): 4545.75600\n    test 141 toDMS(-min): -4545.75600\n    test 142 toDMS(-sec): 454545.360\n    test 143 toDMS(-sec): -454545.360\n    test 144 toDMS(-rad): 0.798708\n    test 145 toDMS(-rad): -0.798708\n    test 146 toDMS(-d60): 45.45453600\n    test 147 toDMS(-d60): -45.45453600\n    test 148 toDMS(+d): +45.7626°\n    test 149 toDMS(+d): -45.7626°\n    test 150 toDMS(+dm): +45°45.7560′\n    test 151 toDMS(+dm): -45°45.7560′\n    test 152 toDMS(+dms): +45°45′45.36″\n    test 153 toDMS(+dms): -45°45′45.36″\n    test 154 toDMS(+deg): +45.762600\n    test 155 toDMS(+deg): -45.762600\n    test 156 toDMS(+min): +4545.75600\n    test 157 toDMS(+min): -4545.75600\n    test 158 toDMS(+sec): +454545.360\n    test 159 toDMS(+sec): -454545.360\n    test 160 toDMS(+rad): +0.798708\n    test 161 toDMS(+rad): -0.798708\n    test 162 toDMS(+d60): +45.454536\n    test 163 toDMS(+d60): -45.454536\n    test 164 compassPoint(1,): N\n    test 165 compassPoint(0,): N\n    test 166 compassPoint(-1,): N\n    test 167 compassPoint(359,): N\n    test 168 compassPoint(24,): NNE\n    test 169 compassPoint(24, 1): N\n    test 170 compassPoint(24, 2): NE\n    test 171 compassPoint(24, 3): NNE\n    test 172 compassPoint(226,): SW\n    test 173 compassPoint(226, 1): W\n    test 174 compassPoint(226, 2): SW\n    test 175 compassPoint(226, 3): SW\n    test 176 compassPoint(237,): WSW\n    test 177 compassPoint(237, 1): W\n    test 178 compassPoint(237, 2): SW\n    test 179 compassPoint(237, 3): WSW\n    test 180 compassPoint(11.25,): NNE\n    test 181 compassPoint(11.249,): N\n    test 182 compassPoint(-11.25,): N\n    test 183 compassPoint(348.749,): NNW\n    test 184 compassPoint(45, 1): E\n    test 185 compassPoint(44.99, 1): N\n    test 186 compassPoint(45, 2): NE\n    test 187 compassPoint(44.99, 2): NE\n    test 188 compassPoint(45, 3): NE\n    test 189 compassPoint(44.99, 3): NE\n    test 190 compassPoint(45, 4): NE\n    test 191 compassPoint(44.99, 4): NE\n    test 192 compassPoint(22.5, 1): N\n    test 193 compassPoint(22.49, 1): N\n    test 194 compassPoint(22.5, 2): NE\n    test 195 compassPoint(22.49, 2): N\n    test 196 compassPoint(22.5, 3): NNE\n    test 197 compassPoint(22.49, 3): NNE\n    test 198 compassPoint(22.5, 4): NNE\n    test 199 compassPoint(22.49, 4): NNE\n    test 200 compassPoint(11.25, 1): N\n    test 201 compassPoint(11.249, 1): N\n    test 202 compassPoint(11.25, 2): N\n    test 203 compassPoint(11.249, 2): N\n    test 204 compassPoint(11.25, 3): NNE\n    test 205 compassPoint(11.249, 3): N\n    test 206 compassPoint(11.25, 4): NbE\n    test 207 compassPoint(11.249, 4): NbE\n    test 208 compassPoint(24, 1): N\n    test 209 compassPoint(24, 2): NE\n    test 210 compassPoint(24, 3): NNE\n    test 211 compassPoint(24,): NNE\n    test 212 compassPoint(18, 3): NNE\n    test 213 compassPoint(11, 4): NbE\n    test 214 compassPoint(30, 4): NEbN\n    test 215 compassPoint(11.25): NbE\n    test 216 compassPoint(33.75): NEbN\n    test 217 compassPoint(56.25): NEbE\n    test 218 compassPoint(78.75): EbN\n    test 219 compassPoint(101.25): EbS\n    test 220 compassPoint(123.75): SEbE\n    test 221 compassPoint(146.25): SEbS\n    test 222 compassPoint(168.75): SbE\n    test 223 compassPoint(191.25): SbW\n    test 224 compassPoint(213.75): SWbS\n    test 225 compassPoint(236.25): SWbW\n    test 226 compassPoint(258.75): WbS\n    test 227 compassPoint(281.25): WbN\n    test 228 compassPoint(303.75): NWbW\n    test 229 compassPoint(326.25): NWbN\n    test 230 compassPoint(348.75): NbW\n    test 231 _DEG: +1.0101\n    test 232 _MIN: +0.606′\n    test 233 _SEC: +36.36″\n\n    all 233 testDms.py tests passed (pygeodesy 26.3.26 Python 2.7.18 64bit arm64_x86_64 geographiclib 1.50 numpy 1.16.6 scipy 1.2.2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 -W  default) 2.708 ms\nrunning /Library/Framewo....ython -W default ~/PyGeodesy/test/testEcef.py\n\n    testing testEcef.py 25.08.24\n\n    test 1 EcefKarney: ...\n    test 2 name: Test\n    test 3 toStr: EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name='Test')  FAILED, KNOWN, expected EcefKarney\n    test 4 a, f: a=6378137.0, f=0.003352811, datum=Datum(name='_Test', ellipsoid=Ellipsoids._Test, transform=Transforms.Identity), name='Test'  FAILED, KNOWN, expected EcefKarney\n    test 5 copy(<type 'type'>): (<class 'pygeodesy.ecef.EcefKarney'>, True)\n    test 6 EcefKarney.copy(): (<class 'pygeodesy.ecef.EcefKarney'>, True)\n    test 7 forward: 27.99, 86.93, 8820.0\n    test 8 forward: 302271.4, 5635928.4, 2979666.1\n    test 9 name: Test\n    test 10 reverse: 302271.4, 5635928.4, 2979666.1\n    test 11 reverse: 27.99, 86.93, 8820.01\n    test 12 case: 1\n    test 13 iteration: None\n    test 14 name: Test\n    test 15 reverse: 302000.0, 5636000.0, 2980000.0\n    test 16 reverse: 27.99, 86.93, 9027.03\n    test 17 case: 1\n    test 18 iteration: None\n    test 19 forward: 27.99, 86.93, 8820.0\n    test 20 forward: 302271.43, 5635928.37, 2979666.13\n    test 21 forward: 33.3, 44.4, 6000.0\n    test 22 forward: 3816209.6, 3737108.55, 3485109.57\n    test 23 reverse: 3816209.6, 3737108.55, 3485109.57\n    test 24 reverse: 33.3, 44.4, 5999.996\n    test 25 case: 1\n    test 26 iteration: None\n    test 27 reverse: 30000.0, 30000.0, 0.0\n    test 28 reverse: 6.483, 45.0, -6335709.726\n    test 29 case: 3\n    test 30 iteration: None\n    test 31 forward: 6.483, 45.0, -6335709.726\n    test 32 forward: 30000.0, 30000.0, -0.0\n    test 33 Vermeille: -168.919\n    test 34 Vermeille: 190.939\n    test 35 Vermeille: (65.772506, 169.060801)\n    test 36 Vermeille: (1.147947, 3.141593)\n    test 37 reverse-1: 45.0, 120.0, 1000.0\n    test 38 forward-1: -2259149.0, 3912960.8, 4488055.5\n    test 39 xyzh-1: -2259149.0, 3912960.8, 4488055.5, 1000.0\n    test 40 philam-1: 0.7854, 2.0944\n    test 41 reverse-2: 45.0, 120.0, 2000.0\n    test 42 forward-2: -2259502.5, 3913573.2, 4488762.6\n    test 43 xyzh-2: -2259502.5, 3913573.2, 4488762.6, 2000.0\n    test 44 philam-2: 0.7854, 2.0944\n    test 45 reverse-3: 45.0, 120.0, 3000.0\n    test 46 forward-3: -2259856.1, 3914185.6, 4489469.7\n    test 47 xyzh-3: -2259856.1, 3914185.6, 4489469.7, 3000.0\n    test 48 philam-3: 0.7854, 2.0944\n    test 49 reverse-4: 45.0, 120.0, 4000.0\n    test 50 forward-4: -2260209.7, 3914798.0, 4490176.8\n    test 51 xyzh-4: -2260209.7, 3914798.0, 4490176.8, 4000.0\n    test 52 philam-4: 0.7854, 2.0944\n    test 53 reverse-5: 45.0, 120.0, 10000.0\n    test 54 forward-5: -2262331.0, 3918472.2, 4494419.5\n    test 55 xyzh-5: -2262331.0, 3918472.2, 4494419.5, 10000.0\n    test 56 philam-5: 0.7854, 2.0944\n    test 57 reverse-6: 45.0, 120.0, 20000.0\n    test 58 forward-6: -2265866.5, 3924595.9, 4501490.5\n    test 59 xyzh-6: -2265866.5, 3924595.9, 4501490.5, 20000.0\n    test 60 philam-6: 0.7854, 2.0944\n    test 61 reverse-7: 45.0, 120.0, 100000.0\n    test 62 forward-7: -2294150.8, 3973585.7, 4558059.1\n    test 63 xyzh-7: -2294150.8, 3973585.7, 4558059.1, 100000.0\n    test 64 philam-7: 0.7854, 2.0944\n    test 65 reverse-8: 45.0, 120.0, 800000.0\n    test 66 forward-8: -2541638.2, 4402246.4, 5053033.8\n    test 67 xyzh-8: -2541638.2, 4402246.4, 5053033.8, 800000.0\n    test 68 philam-8: 0.7854, 2.0944\n    test 69 reverse-9: 45.0, 120.0, 1000000.0\n    test 70 forward-9: -2612348.8, 4524720.9, 5194455.2\n    test 71 xyzh-9: -2612348.8, 4524720.9, 5194455.2, 1000000.0\n    test 72 philam-9: 0.7854, 2.0944\n    test 73 sudano: 45.0, 0.0, 100000.0\n    test 74 name: OS-UK\n    test 75 forward: 53.61199036, -1.66444222, 299.8\n    test 76 forward: 3790644.9, -110149.21, 5111482.97\n    test 77 reverse: 3790644.9, -110149.21, 5111482.97\n    test 78 reverse: 53.61199036, -1.66444223\n    test 79 reverse.lat: 53°36′43.1653″N\n    test 80 reverse.lon: 001°39′51.992″W\n    test 81 reverse.height: 299.800\n    test 82 case: 1\n    test 83 iteration: None\n    test 84 forward: -2430601.827685, -4702442.703125, 3546587.358103\n    test 85 reverse: 34.0, -117.333569, 251.702\n    test 86 forward_: -2430601.812953, -4702442.744488, 3546587.313654, 34.0, -117.333569, 251.702\n    test 87 EcefError: (0.0, 0.0, 0.0, 90.0, 0, -6356752.31414, 3, None, Datum(name='Datum', ellipsoid=Ellipsoids.GRS80, transform=Transforms.Identity))  FAILED, KNOWN, expected (0.0, 0.0, ...)\n    test 88 EcefError: height (None), lat (None) or lon (None)  FAILED, KNOWN, expected lat (None), lon (None) ...\n    test 89 EcefKarney: EcefKarney(a=None, f=None) ellipsoid: type(earth) (None): not a Datum, Ellipsoid, Ellipsoid2 or a_f2Tuple  FAILED, KNOWN, expected EcefKarney\n    test 90 Mx: (0.888348, 0.25558, -0.381466, -0.45917, 0.494465, -0.738015, 0.0, 0.830773, 0.556612)\n\n    test 91 EcefFarrell21: ...\n    test 92 name: Test\n    test 93 toStr: EcefFarrell21(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name='Test')  FAILED, KNOWN, expected EcefFarrell21\n    test 94 a, f: a=6378137.0, f=0.003352811, datum=Datum(name='_Test', ellipsoid=Ellipsoids._Test, transform=Transforms.Identity), name='Test'  FAILED, KNOWN, expected EcefFarrell21\n    test 95 copy(<type 'type'>): (<class 'pygeodesy.ecef.EcefFarrell21'>, True)\n    test 96 EcefFarrell21.copy(): (<class 'pygeodesy.ecef.EcefFarrell21'>, True)\n    test 97 forward: 27.99, 86.93, 8820.0\n    test 98 forward: 302271.4, 5635928.4, 2979666.1\n    test 99 name: Test\n    test 100 reverse: 302271.4, 5635928.4, 2979666.1\n    test 101 reverse: 27.99, 86.93, 8820.01\n    test 102 case: 1\n    test 103 iteration: None\n    test 104 name: Test\n    test 105 reverse: 302000.0, 5636000.0, 2980000.0\n    test 106 reverse: 27.99, 86.93, 9027.03\n    test 107 case: 1\n    test 108 iteration: None\n    test 109 forward: 27.99, 86.93, 8820.0\n    test 110 forward: 302271.43, 5635928.37, 2979666.13\n    test 111 forward: 33.3, 44.4, 6000.0\n    test 112 forward: 3816209.6, 3737108.55, 3485109.57\n    test 113 reverse: 3816209.6, 3737108.55, 3485109.57\n    test 114 reverse: 33.3, 44.4, 5999.996\n    test 115 case: 1\n    test 116 iteration: None\n    test 117 reverse: 30000.0, 30000.0, 0.0\n    test 118 reverse: 0.0, 45.0, -6335710.593  FAILED, KNOWN, expected 6.483, 45.0, -6335709.726\n    test 119 case: 3\n    test 120 iteration: None\n    test 121 forward: 6.483, 45.0, -6335709.726\n    test 122 forward: 30000.0, 30000.0, -0.0\n    test 123 Vermeille: -168.919\n    test 124 Vermeille: 190.939\n    test 125 Vermeille: (65.772506, 169.060801)\n    test 126 Vermeille: (1.147947, 3.141593)\n    test 127 reverse-1: 45.0, 120.0, 1000.0\n    test 128 forward-1: -2259149.0, 3912960.8, 4488055.5\n    test 129 xyzh-1: -2259149.0, 3912960.8, 4488055.5, 1000.0\n    test 130 philam-1: 0.7854, 2.0944\n    test 131 reverse-2: 45.0, 120.0, 2000.0\n    test 132 forward-2: -2259502.5, 3913573.2, 4488762.6\n    test 133 xyzh-2: -2259502.5, 3913573.2, 4488762.6, 2000.0\n    test 134 philam-2: 0.7854, 2.0944\n    test 135 reverse-3: 45.0, 120.0, 3000.0\n    test 136 forward-3: -2259856.1, 3914185.6, 4489469.7\n    test 137 xyzh-3: -2259856.1, 3914185.6, 4489469.7, 3000.0\n    test 138 philam-3: 0.7854, 2.0944\n    test 139 reverse-4: 45.0, 120.0, 4000.0\n    test 140 forward-4: -2260209.7, 3914798.0, 4490176.8\n    test 141 xyzh-4: -2260209.7, 3914798.0, 4490176.8, 4000.0\n    test 142 philam-4: 0.7854, 2.0944\n    test 143 reverse-5: 45.0, 120.0, 10000.0\n    test 144 forward-5: -2262331.0, 3918472.2, 4494419.5\n    test 145 xyzh-5: -2262331.0, 3918472.2, 4494419.5, 10000.0\n    test 146 philam-5: 0.7854, 2.0944\n    test 147 reverse-6: 45.0, 120.0, 20000.0\n    test 148 forward-6: -2265866.5, 3924595.9, 4501490.5\n    test 149 xyzh-6: -2265866.5, 3924595.9, 4501490.5, 20000.0\n    test 150 philam-6: 0.7854, 2.0944\n    test 151 reverse-7: 45.0, 120.0, 100000.0\n    test 152 forward-7: -2294150.8, 3973585.7, 4558059.1\n    test 153 xyzh-7: -2294150.8, 3973585.7, 4558059.1, 100000.0\n    test 154 philam-7: 0.7854, 2.0944\n    test 155 reverse-8: 45.0, 120.0, 800000.0\n    test 156 forward-8: -2541638.2, 4402246.4, 5053033.8\n    test 157 xyzh-8: -2541638.2, 4402246.4, 5053033.8, 800000.0\n    test 158 philam-8: 0.7854, 2.0944\n    test 159 reverse-9: 45.0, 120.0, 1000000.0\n    test 160 forward-9: -2612348.8, 4524720.9, 5194455.2\n    test 161 xyzh-9: -2612348.8, 4524720.9, 5194455.2, 1000000.0\n    test 162 philam-9: 0.7854, 2.0944\n    test 163 sudano: 45.0, 0.0, 100000.0\n    test 164 name: OS-UK\n    test 165 forward: 53.61199036, -1.66444222, 299.8\n    test 166 forward: 3790644.9, -110149.21, 5111482.97\n    test 167 reverse: 3790644.9, -110149.21, 5111482.97\n    test 168 reverse: 53.61199036, -1.66444223\n    test 169 reverse.lat: 53°36′43.1653″N\n    test 170 reverse.lon: 001°39′51.992″W\n    test 171 reverse.height: 299.800\n    test 172 case: 1\n    test 173 iteration: None\n    test 174 forward: -2430601.827685, -4702442.703125, 3546587.358103\n    test 175 reverse: 34.0, -117.333569, 251.702\n    test 176 forward_: -2430601.812953, -4702442.744488, 3546587.313654, 34.0, -117.333569, 251.702\n    test 177 EcefError: (0.0, 0.0, 0.0, 90.0, 0, -6356752.31414, 2, None, Datum(name='Datum', ellipsoid=Ellipsoids.GRS80, transform=Transforms.Identity))  FAILED, KNOWN, expected (0.0, 0.0, ...)\n    test 178 EcefError: height (None), lat (None) or lon (None)  FAILED, KNOWN, expected lat (None), lon (None) ...\n    test 179 EcefFarrell21: EcefFarrell21(a=None, f=None) ellipsoid: type(earth) (None): not a Datum, Ellipsoid, Ellipsoid2 or a_f2Tuple  FAILED, KNOWN, expected EcefFarrell21\n    test 180 Mx: (0.888348, 0.25558, -0.381466, -0.45917, 0.494465, -0.738015, 0.0, 0.830773, 0.556612)\n\n    test 181 EcefFarrell22: ...\n    test 182 name: Test\n    test 183 toStr: EcefFarrell22(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name='Test')  FAILED, KNOWN, expected EcefFarrell22\n    test 184 a, f: a=6378137.0, f=0.003352811, datum=Datum(name='_Test', ellipsoid=Ellipsoids._Test, transform=Transforms.Identity), name='Test'  FAILED, KNOWN, expected EcefFarrell22\n    test 185 copy(<type 'type'>): (<class 'pygeodesy.ecef.EcefFarrell22'>, True)\n    test 186 EcefFarrell22.copy(): (<class 'pygeodesy.ecef.EcefFarrell22'>, True)\n    test 187 forward: 27.99, 86.93, 8820.0\n    test 188 forward: 302271.4, 5635928.4, 2979666.1\n    test 189 name: Test\n    test 190 reverse: 302271.4, 5635928.4, 2979666.1\n    test 191 reverse: 27.99, 86.93, 8820.01\n    test 192 case: 1\n    test 193 iteration: None\n    test 194 name: Test\n    test 195 reverse: 302000.0, 5636000.0, 2980000.0\n    test 196 reverse: 27.99, 86.93, 9027.03\n    test 197 case: 1\n    test 198 iteration: None\n    test 199 forward: 27.99, 86.93, 8820.0\n    test 200 forward: 302271.43, 5635928.37, 2979666.13\n    test 201 forward: 33.3, 44.4, 6000.0\n    test 202 forward: 3816209.6, 3737108.55, 3485109.57\n    test 203 reverse: 3816209.6, 3737108.55, 3485109.57\n    test 204 reverse: 33.3, 44.4, 5999.996\n    test 205 case: 1\n    test 206 iteration: None\n    test 207 reverse: 30000.0, 30000.0, 0.0\n    test 208 reverse: 0.0, 45.0, -6335710.593  FAILED, KNOWN, expected 6.483, 45.0, -6335709.726\n    test 209 case: 3\n    test 210 iteration: None\n    test 211 forward: 6.483, 45.0, -6335709.726\n    test 212 forward: 30000.0, 30000.0, -0.0\n    test 213 Vermeille: -168.919\n    test 214 Vermeille: 190.939\n    test 215 Vermeille: (65.772506, 169.060801)\n    test 216 Vermeille: (1.147947, 3.141593)\n    test 217 reverse-1: 45.0, 120.0, 1000.0\n    test 218 forward-1: -2259149.0, 3912960.8, 4488055.5\n    test 219 xyzh-1: -2259149.0, 3912960.8, 4488055.5, 1000.0\n    test 220 philam-1: 0.7854, 2.0944\n    test 221 reverse-2: 45.0, 120.0, 2000.0\n    test 222 forward-2: -2259502.5, 3913573.2, 4488762.6\n    test 223 xyzh-2: -2259502.5, 3913573.2, 4488762.6, 2000.0\n    test 224 philam-2: 0.7854, 2.0944\n    test 225 reverse-3: 45.0, 120.0, 3000.0\n    test 226 forward-3: -2259856.1, 3914185.6, 4489469.7\n    test 227 xyzh-3: -2259856.1, 3914185.6, 4489469.7, 3000.0\n    test 228 philam-3: 0.7854, 2.0944\n    test 229 reverse-4: 45.0, 120.0, 4000.0\n    test 230 forward-4: -2260209.7, 3914798.0, 4490176.8\n    test 231 xyzh-4: -2260209.7, 3914798.0, 4490176.8, 4000.0\n    test 232 philam-4: 0.7854, 2.0944\n    test 233 reverse-5: 45.0, 120.0, 10000.0\n    test 234 forward-5: -2262331.0, 3918472.2, 4494419.5\n    test 235 xyzh-5: -2262331.0, 3918472.2, 4494419.5, 10000.0\n    test 236 philam-5: 0.7854, 2.0944\n    test 237 reverse-6: 45.0, 120.0, 20000.0\n    test 238 forward-6: -2265866.5, 3924595.9, 4501490.5\n    test 239 xyzh-6: -2265866.5, 3924595.9, 4501490.5, 20000.0\n    test 240 philam-6: 0.7854, 2.0944\n    test 241 reverse-7: 45.0, 120.0, 100000.0\n    test 242 forward-7: -2294150.8, 3973585.7, 4558059.1\n    test 243 xyzh-7: -2294150.8, 3973585.7, 4558059.1, 100000.0\n    test 244 philam-7: 0.7854, 2.0944\n    test 245 reverse-8: 45.0, 120.0, 800000.005  FAILED, KNOWN, expected 45.0, 120.0, 800000.0\n    test 246 forward-8: -2541638.2, 4402246.4, 5053033.8\n    test 247 xyzh-8: -2541638.2, 4402246.4, 5053033.8, 800000.0\n    test 248 philam-8: 0.7854, 2.0944\n    test 249 reverse-9: 45.0, 120.0, 1000000.007  FAILED, KNOWN, expected 45.0, 120.0, 1000000.0\n    test 250 forward-9: -2612348.8, 4524720.9, 5194455.2\n    test 251 xyzh-9: -2612348.8, 4524720.9, 5194455.2, 1000000.0\n    test 252 philam-9: 0.7854, 2.0944\n    test 253 sudano: 45.0, 0.0, 100000.0\n    test 254 name: OS-UK\n    test 255 forward: 53.61199036, -1.66444222, 299.8\n    test 256 forward: 3790644.9, -110149.21, 5111482.97\n    test 257 reverse: 3790644.9, -110149.21, 5111482.97\n    test 258 reverse: 53.61199036, -1.66444223\n    test 259 reverse.lat: 53°36′43.1653″N\n    test 260 reverse.lon: 001°39′51.992″W\n    test 261 reverse.height: 299.800\n    test 262 case: 1\n    test 263 iteration: None\n    test 264 forward: -2430601.827685, -4702442.703125, 3546587.358103\n    test 265 reverse: 34.0, -117.333569, 251.702\n    test 266 forward_: -2430601.812953, -4702442.744488, 3546587.313654, 34.0, -117.333569, 251.702\n    test 267 EcefError: (0.0, 0.0, 0.0, 90.0, 0, -6356752.31414, 2, None, Datum(name='Datum', ellipsoid=Ellipsoids.GRS80, transform=Transforms.Identity))  FAILED, KNOWN, expected (0.0, 0.0, ...)\n    test 268 EcefError: height (None), lat (None) or lon (None)  FAILED, KNOWN, expected lat (None), lon (None) ...\n    test 269 EcefFarrell22: EcefFarrell22(a=None, f=None) ellipsoid: type(earth) (None): not a Datum, Ellipsoid, Ellipsoid2 or a_f2Tuple  FAILED, KNOWN, expected EcefFarrell22\n    test 270 Mx: (0.888348, 0.25558, -0.381466, -0.45917, 0.494465, -0.738015, 0.0, 0.830773, 0.556612)\n\n    test 271 EcefVeness: ...\n    test 272 name: Test\n    test 273 toStr: EcefVeness(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name='Test')  FAILED, KNOWN, expected EcefVeness\n    test 274 a, f: a=6378137.0, f=0.003352811, datum=Datum(name='_Test', ellipsoid=Ellipsoids._Test, transform=Transforms.Identity), name='Test'  FAILED, KNOWN, expected EcefVeness\n    test 275 copy(<type 'type'>): (<class 'pygeodesy.ecef.EcefVeness'>, True)\n    test 276 EcefVeness.copy(): (<class 'pygeodesy.ecef.EcefVeness'>, True)\n    test 277 forward: 27.99, 86.93, 8820.0\n    test 278 forward: 302271.4, 5635928.4, 2979666.1\n    test 279 name: Test\n    test 280 reverse: 302271.4, 5635928.4, 2979666.1\n    test 281 reverse: 27.99, 86.93, 8820.01\n    test 282 case: 1\n    test 283 iteration: None\n    test 284 name: Test\n    test 285 reverse: 302000.0, 5636000.0, 2980000.0\n    test 286 reverse: 27.99, 86.93, 9027.03\n    test 287 case: 1\n    test 288 iteration: None\n    test 289 forward: 27.99, 86.93, 8820.0\n    test 290 forward: 302271.43, 5635928.37, 2979666.13\n    test 291 forward: 33.3, 44.4, 6000.0\n    test 292 forward: 3816209.6, 3737108.55, 3485109.57\n    test 293 reverse: 3816209.6, 3737108.55, 3485109.57\n    test 294 reverse: 33.3, 44.4, 5999.996\n    test 295 case: 1\n    test 296 iteration: None\n    test 297 reverse: 30000.0, 30000.0, 0.0\n    test 298 reverse: 0.0, 45.0, -6335710.593  FAILED, KNOWN, expected 6.483, 45.0, -6335709.726\n    test 299 case: 3\n    test 300 iteration: None\n    test 301 forward: 6.483, 45.0, -6335709.726\n    test 302 forward: 30000.0, 30000.0, -0.0\n    test 303 Vermeille: -168.919\n    test 304 Vermeille: 190.939\n    test 305 Vermeille: (65.772506, 169.060801)\n    test 306 Vermeille: (1.147947, 3.141593)\n    test 307 reverse-1: 45.0, 120.0, 1000.0\n    test 308 forward-1: -2259149.0, 3912960.8, 4488055.5\n    test 309 xyzh-1: -2259149.0, 3912960.8, 4488055.5, 1000.0\n    test 310 philam-1: 0.7854, 2.0944\n    test 311 reverse-2: 45.0, 120.0, 2000.0\n    test 312 forward-2: -2259502.5, 3913573.2, 4488762.6\n    test 313 xyzh-2: -2259502.5, 3913573.2, 4488762.6, 2000.0\n    test 314 philam-2: 0.7854, 2.0944\n    test 315 reverse-3: 45.0, 120.0, 3000.0\n    test 316 forward-3: -2259856.1, 3914185.6, 4489469.7\n    test 317 xyzh-3: -2259856.1, 3914185.6, 4489469.7, 3000.0\n    test 318 philam-3: 0.7854, 2.0944\n    test 319 reverse-4: 45.0, 120.0, 4000.0\n    test 320 forward-4: -2260209.7, 3914798.0, 4490176.8\n    test 321 xyzh-4: -2260209.7, 3914798.0, 4490176.8, 4000.0\n    test 322 philam-4: 0.7854, 2.0944\n    test 323 reverse-5: 45.0, 120.0, 10000.0\n    test 324 forward-5: -2262331.0, 3918472.2, 4494419.5\n    test 325 xyzh-5: -2262331.0, 3918472.2, 4494419.5, 10000.0\n    test 326 philam-5: 0.7854, 2.0944\n    test 327 reverse-6: 45.0, 120.0, 20000.0\n    test 328 forward-6: -2265866.5, 3924595.9, 4501490.5\n    test 329 xyzh-6: -2265866.5, 3924595.9, 4501490.5, 20000.0\n    test 330 philam-6: 0.7854, 2.0944\n    test 331 reverse-7: 45.0, 120.0, 100000.0\n    test 332 forward-7: -2294150.8, 3973585.7, 4558059.1\n    test 333 xyzh-7: -2294150.8, 3973585.7, 4558059.1, 100000.0\n    test 334 philam-7: 0.7854, 2.0944\n    test 335 reverse-8: 45.0, 120.0, 800000.0\n    test 336 forward-8: -2541638.2, 4402246.4, 5053033.8\n    test 337 xyzh-8: -2541638.2, 4402246.4, 5053033.8, 800000.0\n    test 338 philam-8: 0.7854, 2.0944\n    test 339 reverse-9: 45.0, 120.0, 1000000.0\n    test 340 forward-9: -2612348.8, 4524720.9, 5194455.2\n    test 341 xyzh-9: -2612348.8, 4524720.9, 5194455.2, 1000000.0\n    test 342 philam-9: 0.7854, 2.0944\n    test 343 sudano: 45.0, 0.0, 100000.0\n    test 344 name: OS-UK\n    test 345 forward: 53.61199036, -1.66444222, 299.8\n    test 346 forward: 3790644.9, -110149.21, 5111482.97\n    test 347 reverse: 3790644.9, -110149.21, 5111482.97\n    test 348 reverse: 53.61199036, -1.66444223\n    test 349 reverse.lat: 53°36′43.1653″N\n    test 350 reverse.lon: 001°39′51.992″W\n    test 351 reverse.height: 299.800\n    test 352 case: 1\n    test 353 iteration: None\n    test 354 forward: -2430601.827685, -4702442.703125, 3546587.358103\n    test 355 reverse: 34.0, -117.333569, 251.702\n    test 356 forward_: -2430601.812953, -4702442.744488, 3546587.313654, 34.0, -117.333569, 251.702\n    test 357 EcefError: (0.0, 0.0, 0.0, 90.0, 0, -6356752.31414, 2, None, Datum(name='Datum', ellipsoid=Ellipsoids.GRS80, transform=Transforms.Identity))  FAILED, KNOWN, expected (0.0, 0.0, ...)\n    test 358 EcefError: height (None), lat (None) or lon (None)  FAILED, KNOWN, expected lat (None), lon (None) ...\n    test 359 EcefVeness: EcefVeness(a=None, f=None) ellipsoid: type(earth) (None): not a Datum, Ellipsoid, Ellipsoid2 or a_f2Tuple  FAILED, KNOWN, expected EcefVeness\n    test 360 Mx: (0.888348, 0.25558, -0.381466, -0.45917, 0.494465, -0.738015, 0.0, 0.830773, 0.556612)\n\n    test 361 EcefSudano: ...\n    test 362 name: Test\n    test 363 toStr: EcefSudano(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name='Test')  FAILED, KNOWN, expected EcefSudano\n    test 364 a, f: a=6378137.0, f=0.003352811, datum=Datum(name='_Test', ellipsoid=Ellipsoids._Test, transform=Transforms.Identity), name='Test'  FAILED, KNOWN, expected EcefSudano\n    test 365 copy(<type 'type'>): (<class 'pygeodesy.ecef.EcefSudano'>, True)\n    test 366 EcefSudano.copy(): (<class 'pygeodesy.ecef.EcefSudano'>, True)\n    test 367 forward: 27.99, 86.93, 8820.0\n    test 368 forward: 302271.4, 5635928.4, 2979666.1\n    test 369 name: Test\n    test 370 reverse: 302271.4, 5635928.4, 2979666.1\n    test 371 reverse: 28.01, 86.93, 8819.58  FAILED, KNOWN, expected 27.99, 86.93, 8820.01\n    test 372 case: 1\n    test 373 iteration: 6\n    test 374 name: Test\n    test 375 reverse: 302000.0, 5636000.0, 2980000.0\n    test 376 reverse: 28.01, 86.93, 9026.6  FAILED, KNOWN, expected 27.99, 86.93, 9027.03\n    test 377 case: 1\n    test 378 iteration: 6\n    test 379 forward: 27.99, 86.93, 8820.0\n    test 380 forward: 302271.43, 5635928.37, 2979666.13\n    test 381 forward: 33.3, 44.4, 6000.0\n    test 382 forward: 3816209.6, 3737108.55, 3485109.57\n    test 383 reverse: 3816209.6, 3737108.55, 3485109.57\n    test 384 reverse: 33.335, 44.4, 5998.836  FAILED, KNOWN, expected 33.3, 44.4, 5999.996\n    test 385 case: 1\n    test 386 iteration: 6\n    test 387 reverse: 30000.0, 30000.0, 0.0\n    test 388 reverse: 0.0, 45.0, -6335710.593  FAILED, KNOWN, expected 6.483, 45.0, -6335709.726\n    test 389 case: 3\n    test 390 iteration: 0\n    test 391 forward: 6.483, 45.0, -6335709.726\n    test 392 forward: 30000.0, 30000.0, -0.0\n    test 393 Vermeille: -168.919\n    test 394 Vermeille: 190.939\n    test 395 Vermeille: (65.979481, 169.060801)  FAILED, KNOWN, expected (65.772506, 169.060801)\n    test 396 Vermeille: (1.151559, 3.141593)  FAILED, KNOWN, expected (1.147947, 3.141593)\n    test 397 reverse-1: 45.08, 120.0, 993.852  FAILED, KNOWN, expected 45.0, 120.0, 1000.0\n    test 398 forward-1: -2256016.0, 3907534.4, 4494304.0  FAILED, KNOWN, expected -2259149.0, 3912960.8, 4488055.5\n    test 399 xyzh-1: -2256016.0, 3907534.4, 4494304.0, 993.9  FAILED, KNOWN, expected -2259149.0, 3912960.8, 4488055.5, 1000.0\n    test 400 philam-1: 0.7868, 2.0944\n    test 401 reverse-2: 45.08, 120.0, 1993.853  FAILED, KNOWN, expected 45.0, 120.0, 2000.0\n    test 402 forward-2: -2256369.6, 3908146.8, 4495011.2  FAILED, KNOWN, expected -2259502.5, 3913573.2, 4488762.6\n    test 403 xyzh-2: -2256369.6, 3908146.8, 4495011.2, 1993.9  FAILED, KNOWN, expected -2259502.5, 3913573.2, 4488762.6, 2000.0\n    test 404 philam-2: 0.7868, 2.0944\n    test 405 reverse-3: 45.08, 120.0, 2993.854  FAILED, KNOWN, expected 45.0, 120.0, 3000.0\n    test 406 forward-3: -2256723.1, 3908759.1, 4495718.3  FAILED, KNOWN, expected -2259856.1, 3914185.6, 4489469.7\n    test 407 xyzh-3: -2256723.1, 3908759.1, 4495718.3, 2993.9  FAILED, KNOWN, expected -2259856.1, 3914185.6, 4489469.7, 3000.0\n    test 408 philam-3: 0.7868, 2.0944\n    test 409 reverse-4: 45.08, 120.0, 3993.855  FAILED, KNOWN, expected 45.0, 120.0, 4000.0\n    test 410 forward-4: -2257076.7, 3909371.5, 4496425.4  FAILED, KNOWN, expected -2260209.7, 3914798.0, 4490176.8\n    test 411 xyzh-4: -2257076.7, 3909371.5, 4496425.4, 3993.9  FAILED, KNOWN, expected -2260209.7, 3914798.0, 4490176.8, 4000.0\n    test 412 philam-4: 0.7868, 2.0944\n    test 413 reverse-5: 45.08, 120.0, 9993.861  FAILED, KNOWN, expected 45.0, 120.0, 10000.0\n    test 414 forward-5: -2259198.0, 3913045.8, 4500668.0  FAILED, KNOWN, expected -2262331.0, 3918472.2, 4494419.5\n    test 415 xyzh-5: -2259198.0, 3913045.8, 4500668.0, 9993.9  FAILED, KNOWN, expected -2262331.0, 3918472.2, 4494419.5, 10000.0\n    test 416 philam-5: 0.7868, 2.0944\n    test 417 reverse-6: 45.079, 120.0, 19993.87  FAILED, KNOWN, expected 45.0, 120.0, 20000.0\n    test 418 forward-6: -2262733.6, 3919169.6, 4507739.0  FAILED, KNOWN, expected -2265866.5, 3924595.9, 4501490.5\n    test 419 xyzh-6: -2262733.6, 3919169.6, 4507739.0, 19993.9  FAILED, KNOWN, expected -2265866.5, 3924595.9, 4501490.5, 20000.0\n    test 420 philam-6: 0.7868, 2.0944\n    test 421 reverse-7: 45.078, 120.0, 99993.947  FAILED, KNOWN, expected 45.0, 120.0, 100000.0\n    test 422 forward-7: -2291018.1, 3968159.8, 4564307.3  FAILED, KNOWN, expected -2294150.8, 3973585.7, 4558059.1\n    test 423 xyzh-7: -2291018.1, 3968159.8, 4564307.3, 99993.9  FAILED, KNOWN, expected -2294150.8, 3973585.7, 4558059.1, 100000.0\n    test 424 philam-7: 0.7868, 2.0944\n    test 425 reverse-8: 45.071, 120.0, 799994.544  FAILED, KNOWN, expected 45.0, 120.0, 800000.0\n    test 426 forward-8: -2538507.3, 4396823.7, 5059280.0  FAILED, KNOWN, expected -2541638.2, 4402246.4, 5053033.8\n    test 427 xyzh-8: -2538507.3, 4396823.7, 5059280.0, 799994.5  FAILED, KNOWN, expected -2541638.2, 4402246.4, 5053033.8, 800000.0\n    test 428 philam-8: 0.7866, 2.0944\n    test 429 reverse-9: 45.069, 120.0, 999994.693  FAILED, KNOWN, expected 45.0, 120.0, 1000000.0\n    test 430 forward-9: -2609218.5, 4519299.0, 5200700.9  FAILED, KNOWN, expected -2612348.8, 4524720.9, 5194455.2\n    test 431 xyzh-9: -2609218.5, 4519299.0, 5200700.9, 999994.7  FAILED, KNOWN, expected -2612348.8, 4524720.9, 5194455.2, 1000000.0\n    test 432 philam-9: 0.7866, 2.0944\n    test 433 sudano: 45.078, 0.0, 99993.947  FAILED, KNOWN, expected 45.0, 0.0, 100000.0\n    test 434 name: OS-UK\n    test 435 forward: 53.61199036, -1.66444222, 299.8\n    test 436 forward: 3790644.9, -110149.21, 5111482.97\n    test 437 reverse: 3790644.9, -110149.21, 5111482.97\n    test 438 reverse: 53.73795244, -1.66444223  FAILED, KNOWN, expected 53.61199036, -1.66444223\n    test 439 reverse.lat: 53°44′16.6288″N  FAILED, KNOWN, expected 53°36′43.1653″N\n    test 440 reverse.lon: 001°39′51.992″W\n    test 441 reverse.height: 284.389  FAILED, KNOWN, expected 299.800\n    test 442 case: 1\n    test 443 iteration: 8\n    test 444 forward: -2430601.827685, -4702442.703125, 3546587.358103\n    test 445 reverse: 34.036724, -117.333569, 250.396541  FAILED, KNOWN, expected 34.0, -117.333569, 251.702\n    test 446 forward_: -2430601.812953, -4702442.744488, 3546587.313654, 34.0, -117.333569, 251.702\n    test 447 EcefError: (0.0, 0.0, 0.0, 90.0, 0, -6356752.31414, 2, None, Datum(name='Datum', ellipsoid=Ellipsoids.GRS80, transform=Transforms.Identity))  FAILED, KNOWN, expected (0.0, 0.0, ...)\n    test 448 EcefError: height (None), lat (None) or lon (None)  FAILED, KNOWN, expected lat (None), lon (None) ...\n    test 449 EcefSudano: EcefSudano(a=None, f=None) ellipsoid: type(earth) (None): not a Datum, Ellipsoid, Ellipsoid2 or a_f2Tuple  FAILED, KNOWN, expected EcefSudano\n    test 450 Mx: (0.888348, 0.25558, -0.381466, -0.45917, 0.494465, -0.738015, 0.0, 0.830773, 0.556612)\n\n    test 451 EcefUPC: ...\n    test 452 name: Test\n    test 453 toStr: EcefUPC(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name='Test')  FAILED, KNOWN, expected EcefUPC\n    test 454 a, f: a=6378137.0, f=0.003352811, datum=Datum(name='_Test', ellipsoid=Ellipsoids._Test, transform=Transforms.Identity), name='Test'  FAILED, KNOWN, expected EcefUPC\n    test 455 copy(<type 'type'>): (<class 'pygeodesy.ecef.EcefUPC'>, True)\n    test 456 EcefUPC.copy(): (<class 'pygeodesy.ecef.EcefUPC'>, True)\n    test 457 forward: 27.99, 86.93, 8820.0\n    test 458 forward: 302271.4, 5635928.4, 2979666.1\n    test 459 name: Test\n    test 460 reverse: 302271.4, 5635928.4, 2979666.1\n    test 461 reverse: 27.99, 86.93, 8820.01\n    test 462 case: 1\n    test 463 iteration: 5\n    test 464 name: Test\n    test 465 reverse: 302000.0, 5636000.0, 2980000.0\n    test 466 reverse: 27.99, 86.93, 9027.03\n    test 467 case: 1\n    test 468 iteration: 5\n    test 469 forward: 27.99, 86.93, 8820.0\n    test 470 forward: 302271.43, 5635928.37, 2979666.13\n    test 471 forward: 33.3, 44.4, 6000.0\n    test 472 forward: 3816209.6, 3737108.55, 3485109.57\n    test 473 reverse: 3816209.6, 3737108.55, 3485109.57\n    test 474 reverse: 33.3, 44.4, 5999.996\n    test 475 case: 1\n    test 476 iteration: 5\n    test 477 reverse: 30000.0, 30000.0, 0.0\n    test 478 reverse: 0.0, 45.0, -6335710.593  FAILED, KNOWN, expected 6.483, 45.0, -6335709.726\n    test 479 case: 3\n    test 480 iteration: 0\n    test 481 forward: 6.483, 45.0, -6335709.726\n    test 482 forward: 30000.0, 30000.0, -0.0\n    test 483 Vermeille: -168.919\n    test 484 Vermeille: 190.939\n    test 485 Vermeille: (65.772506, 169.060801)\n    test 486 Vermeille: (1.147947, 3.141593)\n    test 487 reverse-1: 45.0, 120.0, 1000.0\n    test 488 forward-1: -2259149.0, 3912960.8, 4488055.5\n    test 489 xyzh-1: -2259149.0, 3912960.8, 4488055.5, 1000.0\n    test 490 philam-1: 0.7854, 2.0944\n    test 491 reverse-2: 45.0, 120.0, 2000.0\n    test 492 forward-2: -2259502.5, 3913573.2, 4488762.6\n    test 493 xyzh-2: -2259502.5, 3913573.2, 4488762.6, 2000.0\n    test 494 philam-2: 0.7854, 2.0944\n    test 495 reverse-3: 45.0, 120.0, 3000.0\n    test 496 forward-3: -2259856.1, 3914185.6, 4489469.7\n    test 497 xyzh-3: -2259856.1, 3914185.6, 4489469.7, 3000.0\n    test 498 philam-3: 0.7854, 2.0944\n    test 499 reverse-4: 45.0, 120.0, 4000.0\n    test 500 forward-4: -2260209.7, 3914798.0, 4490176.8\n    test 501 xyzh-4: -2260209.7, 3914798.0, 4490176.8, 4000.0\n    test 502 philam-4: 0.7854, 2.0944\n    test 503 reverse-5: 45.0, 120.0, 10000.0\n    test 504 forward-5: -2262331.0, 3918472.2, 4494419.5\n    test 505 xyzh-5: -2262331.0, 3918472.2, 4494419.5, 10000.0\n    test 506 philam-5: 0.7854, 2.0944\n    test 507 reverse-6: 45.0, 120.0, 20000.0\n    test 508 forward-6: -2265866.5, 3924595.9, 4501490.5\n    test 509 xyzh-6: -2265866.5, 3924595.9, 4501490.5, 20000.0\n    test 510 philam-6: 0.7854, 2.0944\n    test 511 reverse-7: 45.0, 120.0, 100000.0\n    test 512 forward-7: -2294150.8, 3973585.7, 4558059.1\n    test 513 xyzh-7: -2294150.8, 3973585.7, 4558059.1, 100000.0\n    test 514 philam-7: 0.7854, 2.0944\n    test 515 reverse-8: 45.0, 120.0, 800000.0\n    test 516 forward-8: -2541638.2, 4402246.4, 5053033.8\n    test 517 xyzh-8: -2541638.2, 4402246.4, 5053033.8, 800000.0\n    test 518 philam-8: 0.7854, 2.0944\n    test 519 reverse-9: 45.0, 120.0, 1000000.0\n    test 520 forward-9: -2612348.8, 4524720.9, 5194455.2\n    test 521 xyzh-9: -2612348.8, 4524720.9, 5194455.2, 1000000.0\n    test 522 philam-9: 0.7854, 2.0944\n    test 523 sudano: 45.0, 0.0, 100000.0\n    test 524 name: OS-UK\n    test 525 forward: 53.61199036, -1.66444222, 299.8\n    test 526 forward: 3790644.9, -110149.21, 5111482.97\n    test 527 reverse: 3790644.9, -110149.21, 5111482.97\n    test 528 reverse: 53.61199036, -1.66444223\n    test 529 reverse.lat: 53°36′43.1653″N\n    test 530 reverse.lon: 001°39′51.992″W\n    test 531 reverse.height: 299.800\n    test 532 case: 1\n    test 533 iteration: 5\n    test 534 forward: -2430601.827685, -4702442.703125, 3546587.358103\n    test 535 reverse: 34.0, -117.333569, 251.702\n    test 536 forward_: -2430601.812953, -4702442.744488, 3546587.313654, 34.0, -117.333569, 251.702\n    test 537 EcefError: (0.0, 0.0, 0.0, 90.0, 0, -6356752.31414, 2, None, Datum(name='Datum', ellipsoid=Ellipsoids.GRS80, transform=Transforms.Identity))  FAILED, KNOWN, expected (0.0, 0.0, ...)\n    test 538 EcefError: height (None), lat (None) or lon (None)  FAILED, KNOWN, expected lat (None), lon (None) ...\n    test 539 EcefUPC: EcefUPC(a=None, f=None) ellipsoid: type(earth) (None): not a Datum, Ellipsoid, Ellipsoid2 or a_f2Tuple  FAILED, KNOWN, expected EcefUPC\n    test 540 Mx: (0.888348, 0.25558, -0.381466, -0.45917, 0.494465, -0.738015, 0.0, 0.830773, 0.556612)\n\n    test 541 EcefYou: ...\n    test 542 name: Test\n    test 543 toStr: EcefYou(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name='Test')  FAILED, KNOWN, expected EcefYou\n    test 544 a, f: a=6378137.0, f=0.003352811, datum=Datum(name='_Test', ellipsoid=Ellipsoids._Test, transform=Transforms.Identity), name='Test'  FAILED, KNOWN, expected EcefYou\n    test 545 copy(<type 'type'>): (<class 'pygeodesy.ecef.EcefYou'>, True)\n    test 546 EcefYou.copy(): (<class 'pygeodesy.ecef.EcefYou'>, True)\n    test 547 forward: 27.99, 86.93, 8820.0\n    test 548 forward: 302271.4, 5635928.4, 2979666.1\n    test 549 name: Test\n    test 550 reverse: 302271.4, 5635928.4, 2979666.1\n    test 551 reverse: 27.99, 86.93, 8820.01\n    test 552 case: 1\n    test 553 iteration: None\n    test 554 name: Test\n    test 555 reverse: 302000.0, 5636000.0, 2980000.0\n    test 556 reverse: 27.99, 86.93, 9027.03\n    test 557 case: 1\n    test 558 iteration: None\n    test 559 forward: 27.99, 86.93, 8820.0\n    test 560 forward: 302271.43, 5635928.37, 2979666.13\n    test 561 forward: 33.3, 44.4, 6000.0\n    test 562 forward: 3816209.6, 3737108.55, 3485109.57\n    test 563 reverse: 3816209.6, 3737108.55, 3485109.57\n    test 564 reverse: 33.3, 44.4, 5999.996\n    test 565 case: 1\n    test 566 iteration: None\n    test 567 reverse: 30000.0, 30000.0, 0.0\n    test 568 reverse: 0.0, 45.0, -6335710.593  FAILED, KNOWN, expected 6.483, 45.0, -6335709.726\n    test 569 case: 3\n    test 570 iteration: None\n    test 571 forward: 6.483, 45.0, -6335709.726\n    test 572 forward: 30000.0, 30000.0, -0.0\n    test 573 Vermeille: -168.919\n    test 574 Vermeille: 190.939\n    test 575 Vermeille: (65.772506, 169.060801)\n    test 576 Vermeille: (1.147947, 3.141593)\n    test 577 reverse-1: 45.0, 120.0, 1000.0\n    test 578 forward-1: -2259149.0, 3912960.8, 4488055.5\n    test 579 xyzh-1: -2259149.0, 3912960.8, 4488055.5, 1000.0\n    test 580 philam-1: 0.7854, 2.0944\n    test 581 reverse-2: 45.0, 120.0, 2000.0\n    test 582 forward-2: -2259502.5, 3913573.2, 4488762.6\n    test 583 xyzh-2: -2259502.5, 3913573.2, 4488762.6, 2000.0\n    test 584 philam-2: 0.7854, 2.0944\n    test 585 reverse-3: 45.0, 120.0, 3000.0\n    test 586 forward-3: -2259856.1, 3914185.6, 4489469.7\n    test 587 xyzh-3: -2259856.1, 3914185.6, 4489469.7, 3000.0\n    test 588 philam-3: 0.7854, 2.0944\n    test 589 reverse-4: 45.0, 120.0, 4000.0\n    test 590 forward-4: -2260209.7, 3914798.0, 4490176.8\n    test 591 xyzh-4: -2260209.7, 3914798.0, 4490176.8, 4000.0\n    test 592 philam-4: 0.7854, 2.0944\n    test 593 reverse-5: 45.0, 120.0, 10000.0\n    test 594 forward-5: -2262331.0, 3918472.2, 4494419.5\n    test 595 xyzh-5: -2262331.0, 3918472.2, 4494419.5, 10000.0\n    test 596 philam-5: 0.7854, 2.0944\n    test 597 reverse-6: 45.0, 120.0, 20000.0\n    test 598 forward-6: -2265866.5, 3924595.9, 4501490.5\n    test 599 xyzh-6: -2265866.5, 3924595.9, 4501490.5, 20000.0\n    test 600 philam-6: 0.7854, 2.0944\n    test 601 reverse-7: 45.0, 120.0, 100000.0\n    test 602 forward-7: -2294150.8, 3973585.7, 4558059.1\n    test 603 xyzh-7: -2294150.8, 3973585.7, 4558059.1, 100000.0\n    test 604 philam-7: 0.7854, 2.0944\n    test 605 reverse-8: 45.0, 120.0, 800000.0\n    test 606 forward-8: -2541638.2, 4402246.4, 5053033.8\n    test 607 xyzh-8: -2541638.2, 4402246.4, 5053033.8, 800000.0\n    test 608 philam-8: 0.7854, 2.0944\n    test 609 reverse-9: 45.0, 120.0, 1000000.0\n    test 610 forward-9: -2612348.8, 4524720.9, 5194455.2\n    test 611 xyzh-9: -2612348.8, 4524720.9, 5194455.2, 1000000.0\n    test 612 philam-9: 0.7854, 2.0944\n    test 613 sudano: 45.0, 0.0, 100000.0\n    test 614 name: OS-UK\n    test 615 forward: 53.61199036, -1.66444222, 299.8\n    test 616 forward: 3790644.9, -110149.21, 5111482.97\n    test 617 reverse: 3790644.9, -110149.21, 5111482.97\n    test 618 reverse: 53.61199036, -1.66444223\n    test 619 reverse.lat: 53°36′43.1653″N\n    test 620 reverse.lon: 001°39′51.992″W\n    test 621 reverse.height: 299.800\n    test 622 case: 1\n    test 623 iteration: None\n    test 624 forward: -2430601.827685, -4702442.703125, 3546587.358103\n    test 625 reverse: 34.0, -117.333569, 251.702\n    test 626 forward_: -2430601.812953, -4702442.744488, 3546587.313654, 34.0, -117.333569, 251.702\n    test 627 EcefError: (0.0, 0.0, 0.0, 90.0, 0, -6356752.31414, 2, None, Datum(name='Datum', ellipsoid=Ellipsoids.GRS80, transform=Transforms.Identity))  FAILED, KNOWN, expected (0.0, 0.0, ...)\n    test 628 EcefError: height (None), lat (None) or lon (None)  FAILED, KNOWN, expected lat (None), lon (None) ...\n    test 629 EcefYou: EcefYou(a=None, f=None) ellipsoid: type(earth) (None): not a Datum, Ellipsoid, Ellipsoid2 or a_f2Tuple  FAILED, KNOWN, expected EcefYou\n    test 630 Mx: (0.888348, 0.25558, -0.381466, -0.45917, 0.494465, -0.738015, 0.0, 0.830773, 0.556612)\n\n    test 631 EcefMatrix: ...\n    test 632 index: (0, 1, 2, 3, 4, 5, 6, 7, 8)\n    test 633 matrix: 0, 1, 2, 3, 4, 5, 6, 7, 8\n    test 634 multiply: 45, 54, 63, 54, 66, 78, 63, 78, 93\n    test 635 matrix3: True\n    test 636 matrixT3: True\n    test 637 copy(<type 'type'>): (<class 'pygeodesy.ecef.EcefMatrix'>, True)\n    test 638 EcefMatrix.copy(): (<class 'pygeodesy.ecef.EcefMatrix'>, True)\n    test 639 matrix: 1, 0, 0, 0, 1, 0, 0, 0, 1\n    test 640 multiply: 1, 0, 0, 0, 1, 0, 0, 0, 1\n    test 641 copy(<type 'type'>): (<class 'pygeodesy.ecef.EcefMatrix'>, True)\n    test 642 EcefMatrix.copy(): (<class 'pygeodesy.ecef.EcefMatrix'>, True)\n    test 643 unrotate: (1.0, 1.0, 1.0)\n\n    test 644 pygeodesy.sphericalNvector: Cartesian\n    test 645 Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 646 pygeodesy.sphericalNvector: LatLon\n    test 647 Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 648 forward: 48.833, 2.333, 0.0\n    test 649 forward: 4190278.55, 170716.35, 4796058.21\n    test 650 name: Paris\n    test 651 reverse: 48.833, 2.333, 0.0\n    test 652 name: Paris\n    test 653 toLatLon: LatLon(48°49′58.8″N, 002°19′58.8″E)\n    test 654 name: Paris\n    test 655 Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 656 to4Tuple: LatLon4Tuple\n    test 657 to4Tuple: Paris(lat=48.833, lon=2.333, height=0.0, datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84))\n    test 658 to3Tuple: LatLon3Tuple\n    test 659 to3Tuple: Paris(lat=48.833, lon=2.333, height=0.0)\n    test 660 toVector: (4190278.55277, 170716.34863, 4796058.20898)\n    test 661 name: Paris\n    test 662 forward: [4190278.55, 170716.35, 4796058.21]\n    test 663 Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 664 toLocal: (0.0, 0.0, 0.0, 48.833, 2.333, 0.0, Ltp(lat0=48.833, lon0=2.333, height0=0.0, M=EcefMatrix(_0_0_=-0.040707, _0_1_=-0.75217, _0_2_=0.65771, _1_0_=0.999171, _1_1_=-0.030644, _1_2_=0.026796, _2_0_=0.0, _2_1_=0.658256, _2_2_=0.752794), ecef=EcefKarney(a=6371008.771415, f=0.0, datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84), name=''), name='Paris'), Paris(x=4190278.55277, y=170716.348629, z=4796058.208983, lat=48.833, lon=2.333, height=0.0, C=2, M=None, datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84)), None)\n    test 665 toAer: [0.0, 0.0, 0.0]\n    test 666 toEnu: [0.0, 0.0, 0.0]\n    test 667 toNed: [0.0, 0.0, 0.0]\n\n    test 668 pygeodesy.sphericalTrigonometry: Cartesian\n    test 669 Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 670 pygeodesy.sphericalTrigonometry: LatLon\n    test 671 Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 672 forward: 48.833, 2.333, 0.0\n    test 673 forward: 4190278.55, 170716.35, 4796058.21\n    test 674 name: Paris\n    test 675 reverse: 48.833, 2.333, 0.0\n    test 676 name: Paris\n    test 677 toLatLon: LatLon(48°49′58.8″N, 002°19′58.8″E)\n    test 678 name: Paris\n    test 679 Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 680 to4Tuple: LatLon4Tuple\n    test 681 to4Tuple: Paris(lat=48.833, lon=2.333, height=0.0, datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84))\n    test 682 to3Tuple: LatLon3Tuple\n    test 683 to3Tuple: Paris(lat=48.833, lon=2.333, height=0.0)\n    test 684 toVector: (4190278.55277, 170716.34863, 4796058.20898)\n    test 685 name: Paris\n    test 686 forward: [4190278.55, 170716.35, 4796058.21]\n    test 687 Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 688 toLocal: (0.0, 0.0, 0.0, 48.833, 2.333, 0.0, Ltp(lat0=48.833, lon0=2.333, height0=0.0, M=EcefMatrix(_0_0_=-0.040707, _0_1_=-0.75217, _0_2_=0.65771, _1_0_=0.999171, _1_1_=-0.030644, _1_2_=0.026796, _2_0_=0.0, _2_1_=0.658256, _2_2_=0.752794), ecef=EcefKarney(a=6371008.771415, f=0.0, datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84), name=''), name='Paris'), Paris(x=4190278.55277, y=170716.348629, z=4796058.208983, lat=48.833, lon=2.333, height=0.0, C=2, M=None, datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84)), None)\n    test 689 toAer: [0.0, 0.0, 0.0]\n    test 690 toEnu: [0.0, 0.0, 0.0]\n    test 691 toNed: [0.0, 0.0, 0.0]\n\n    test 692 pygeodesy.ellipsoidalNvector: Cartesian\n    test 693 Ecef: <class 'pygeodesy.ecef.EcefVeness'>\n    test 694 pygeodesy.ellipsoidalNvector: LatLon\n    test 695 Ecef: <class 'pygeodesy.ecef.EcefVeness'>\n    test 696 forward: 48.833, 2.333, 0.0\n    test 697 forward: 4202946.8, 171232.47, 4778354.17\n    test 698 name: Paris\n    test 699 reverse: 48.833, 2.333, 0.0\n    test 700 name: Paris\n    test 701 toLatLon: LatLon(48°49′58.8″N, 002°19′58.8″E, +0.00m)\n    test 702 name: Paris\n    test 703 Ecef: <class 'pygeodesy.ecef.EcefVeness'>\n    test 704 to4Tuple: LatLon4Tuple\n    test 705 to4Tuple: Paris(lat=48.833, lon=2.333, height=0.0, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 706 to3Tuple: LatLon3Tuple\n    test 707 to3Tuple: Paris(lat=48.833, lon=2.333, height=0.0)\n    test 708 toVector: (4202946.79528, 171232.46613, 4778354.17)\n    test 709 name: Paris\n    test 710 forward: [4202946.8, 171232.47, 4778354.17]\n    test 711 Ecef: <class 'pygeodesy.ecef.EcefVeness'>\n    test 712 toLocal: (0.0, 0.0, -0.0, 48.833, 2.333, 0.0, Ltp(lat0=48.833, lon0=2.333, height0=0.000000001, M=EcefMatrix(_0_0_=-0.040707, _0_1_=-0.75217, _0_2_=0.65771, _1_0_=0.999171, _1_1_=-0.030644, _1_2_=0.026796, _2_0_=0.0, _2_1_=0.658256, _2_2_=0.752794), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Paris'), Paris(x=4202946.795276, y=171232.466132, z=4778354.169996, lat=48.833, lon=2.333, height=0.0, C=1, M=None, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84)), None)\n    test 713 toAer: [23.434, -85.849, 0.0]\n    test 714 toEnu: [0.0, 0.0, -0.0]\n    test 715 toNed: [0.0, 0.0, 0.0]\n\n    test 716 pygeodesy.ellipsoidalVincenty: Cartesian\n    test 717 Ecef: <class 'pygeodesy.ecef.EcefVeness'>\n    test 718 pygeodesy.ellipsoidalVincenty: LatLon\n    test 719 Ecef: <class 'pygeodesy.ecef.EcefVeness'>\n    test 720 forward: 48.833, 2.333, 0.0\n    test 721 forward: 4202946.8, 171232.47, 4778354.17\n    test 722 name: Paris\n    test 723 reverse: 48.833, 2.333, 0.0\n    test 724 name: Paris\n    test 725 toLatLon: LatLon(48°49′58.8″N, 002°19′58.8″E, +0.00m)\n    test 726 name: Paris\n    test 727 Ecef: <class 'pygeodesy.ecef.EcefVeness'>\n    test 728 to4Tuple: LatLon4Tuple\n    test 729 to4Tuple: Paris(lat=48.833, lon=2.333, height=0.0, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 730 to3Tuple: LatLon3Tuple\n    test 731 to3Tuple: Paris(lat=48.833, lon=2.333, height=0.0)\n    test 732 toVector: (4202946.79528, 171232.46613, 4778354.17)\n    test 733 name: Paris\n    test 734 forward: [4202946.8, 171232.47, 4778354.17]\n    test 735 Ecef: <class 'pygeodesy.ecef.EcefVeness'>\n    test 736 toLocal: (0.0, 0.0, -0.0, 48.833, 2.333, 0.0, Ltp(lat0=48.833, lon0=2.333, height0=0.000000001, M=EcefMatrix(_0_0_=-0.040707, _0_1_=-0.75217, _0_2_=0.65771, _1_0_=0.999171, _1_1_=-0.030644, _1_2_=0.026796, _2_0_=0.0, _2_1_=0.658256, _2_2_=0.752794), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Paris'), Paris(x=4202946.795276, y=171232.466132, z=4778354.169996, lat=48.833, lon=2.333, height=0.0, C=1, M=None, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84)), None)\n    test 737 toAer: [23.434, -85.849, 0.0]\n    test 738 toEnu: [0.0, 0.0, -0.0]\n    test 739 toNed: [0.0, 0.0, 0.0]\n\n    test 740 pygeodesy.ellipsoidalKarney: Cartesian\n    test 741 Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 742 pygeodesy.ellipsoidalKarney: LatLon\n    test 743 Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 744 forward: 48.833, 2.333, 0.0\n    test 745 forward: 4202946.8, 171232.47, 4778354.17\n    test 746 name: Paris\n    test 747 reverse: 48.833, 2.333, 0.0\n    test 748 name: Paris\n    test 749 toLatLon: LatLon(48°49′58.8″N, 002°19′58.8″E, +0.00m)\n    test 750 name: Paris\n    test 751 Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 752 to4Tuple: LatLon4Tuple\n    test 753 to4Tuple: Paris(lat=48.833, lon=2.333, height=0.0, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 754 to3Tuple: LatLon3Tuple\n    test 755 to3Tuple: Paris(lat=48.833, lon=2.333, height=0.0)\n    test 756 toVector: (4202946.79528, 171232.46613, 4778354.17)\n    test 757 name: Paris\n    test 758 forward: [4202946.8, 171232.47, 4778354.17]\n    test 759 Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 760 toLocal: (0.0, 0.0, -0.0, 48.833, 2.333, 0.0, Ltp(lat0=48.833, lon0=2.333, height0=0.000000001, M=EcefMatrix(_0_0_=-0.040707, _0_1_=-0.75217, _0_2_=0.65771, _1_0_=0.999171, _1_1_=-0.030644, _1_2_=0.026796, _2_0_=0.0, _2_1_=0.658256, _2_2_=0.752794), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Paris'), Paris(x=4202946.795276, y=171232.466132, z=4778354.169996, lat=48.833, lon=2.333, height=0.0, C=1, M=None, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84)), None)\n    test 761 toAer: [23.434, -85.849, 0.0]\n    test 762 toEnu: [0.0, 0.0, -0.0]\n    test 763 toNed: [0.0, 0.0, 0.0]\n\n    test 764 pygeodesy.ellipsoidalExact: Cartesian\n    test 765 Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 766 pygeodesy.ellipsoidalExact: LatLon\n    test 767 Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 768 forward: 48.833, 2.333, 0.0\n    test 769 forward: 4202946.8, 171232.47, 4778354.17\n    test 770 name: Paris\n    test 771 reverse: 48.833, 2.333, 0.0\n    test 772 name: Paris\n    test 773 toLatLon: LatLon(48°49′58.8″N, 002°19′58.8″E, +0.00m)\n    test 774 name: Paris\n    test 775 Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 776 to4Tuple: LatLon4Tuple\n    test 777 to4Tuple: Paris(lat=48.833, lon=2.333, height=0.0, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 778 to3Tuple: LatLon3Tuple\n    test 779 to3Tuple: Paris(lat=48.833, lon=2.333, height=0.0)\n    test 780 toVector: (4202946.79528, 171232.46613, 4778354.17)\n    test 781 name: Paris\n    test 782 forward: [4202946.8, 171232.47, 4778354.17]\n    test 783 Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 784 toLocal: (0.0, 0.0, -0.0, 48.833, 2.333, 0.0, Ltp(lat0=48.833, lon0=2.333, height0=0.000000001, M=EcefMatrix(_0_0_=-0.040707, _0_1_=-0.75217, _0_2_=0.65771, _1_0_=0.999171, _1_1_=-0.030644, _1_2_=0.026796, _2_0_=0.0, _2_1_=0.658256, _2_2_=0.752794), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Paris'), Paris(x=4202946.795276, y=171232.466132, z=4778354.169996, lat=48.833, lon=2.333, height=0.0, C=1, M=None, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84)), None)\n    test 785 toAer: [23.434, -85.849, 0.0]\n    test 786 toEnu: [0.0, 0.0, -0.0]\n    test 787 toNed: [0.0, 0.0, 0.0]\n\n    test 788 pygeodesy.ellipsoidalGeodSolve: Cartesian\n    test 789 Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 790 pygeodesy.ellipsoidalGeodSolve: LatLon\n    test 791 Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 792 forward: 48.833, 2.333, 0.0\n    test 793 forward: 4202946.8, 171232.47, 4778354.17\n    test 794 name: Paris\n    test 795 reverse: 48.833, 2.333, 0.0\n    test 796 name: Paris\n    test 797 toLatLon: LatLon(48°49′58.8″N, 002°19′58.8″E, +0.00m)\n    test 798 name: Paris\n    test 799 Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 800 to4Tuple: LatLon4Tuple\n    test 801 to4Tuple: Paris(lat=48.833, lon=2.333, height=0.0, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 802 to3Tuple: LatLon3Tuple\n    test 803 to3Tuple: Paris(lat=48.833, lon=2.333, height=0.0)\n    test 804 toVector: (4202946.79528, 171232.46613, 4778354.17)\n    test 805 name: Paris\n    test 806 forward: [4202946.8, 171232.47, 4778354.17]\n    test 807 Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 808 toLocal: (0.0, 0.0, -0.0, 48.833, 2.333, 0.0, Ltp(lat0=48.833, lon0=2.333, height0=0.000000001, M=EcefMatrix(_0_0_=-0.040707, _0_1_=-0.75217, _0_2_=0.65771, _1_0_=0.999171, _1_1_=-0.030644, _1_2_=0.026796, _2_0_=0.0, _2_1_=0.658256, _2_2_=0.752794), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Paris'), Paris(x=4202946.795276, y=171232.466132, z=4778354.169996, lat=48.833, lon=2.333, height=0.0, C=1, M=None, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84)), None)\n    test 809 toAer: [23.434, -85.849, 0.0]\n    test 810 toEnu: [0.0, 0.0, -0.0]\n    test 811 toNed: [0.0, 0.0, 0.0]\n\n    80 of 811 testEcef.py tests (9.9%) FAILED, ALL KNOWN (pygeodesy 26.3.26 Python 2.7.18 64bit arm64_x86_64 geographiclib 1.50 numpy 1.16.6 scipy 1.2.2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 -W  default) 53.634 ms\nrunning /Library/Framewo....ython -W default ~/PyGeodesy/test/testElevations.py\n\n    testing testElevations.py 24.09.25\n    all testElevations.py tests SKIPPED (pygeodesy 26.3.26 Python 2.7.18 64bit arm64_x86_64 geographiclib 1.50 numpy 1.16.6 scipy 1.2.2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 -W  default) 10.014 us\nrunning /Library/Framewo....ython -W default ~/PyGeodesy/test/testEllipses.py\n./test/testEllipses.py:52: DeprecationWarning: function L{elliperim<pygeodesy.deprecated.functions.elliperim>} has been DEPRECATED on 2026.02.12, use method L{pygeodesy.Ellipse.arc} or property L{pygeodesy.Ellipse.perimeter2k_}.\n  self.test(n, elliperim(a, b), x, known=startswith, nl=1)\n./test/testEllipses.py:53: DeprecationWarning: function L{elliperim<pygeodesy.deprecated.functions.elliperim>} has been DEPRECATED on 2026.02.12, use method L{pygeodesy.Ellipse.arc} or property L{pygeodesy.Ellipse.perimeter2k_}.\n  self.test(n, elliperim(a, a), 40075236.597, prec=3)\n./test/testEllipses.py:54: DeprecationWarning: function L{elliperim<pygeodesy.deprecated.functions.elliperim>} has been DEPRECATED on 2026.02.12, use method L{pygeodesy.Ellipse.arc} or property L{pygeodesy.Ellipse.perimeter2k_}.\n  self.test(n, elliperim(a, 0), a * 4, prec=1)\n./test/testEllipses.py:55: DeprecationWarning: function L{elliperim<pygeodesy.deprecated.functions.elliperim>} has been DEPRECATED on 2026.02.12, use method L{pygeodesy.Ellipse.arc} or property L{pygeodesy.Ellipse.perimeter2k_}.\n  self.test(n, elliperim(0, b), b * 4, prec=1)\n./test/testEllipses.py:56: DeprecationWarning: function L{elliperim<pygeodesy.deprecated.functions.elliperim>} has been DEPRECATED on 2026.02.12, use method L{pygeodesy.Ellipse.arc} or property L{pygeodesy.Ellipse.perimeter2k_}.\n  self.test(n, elliperim(0, 0), '0.0')\n\n    testing testEllipses.py 26.03.25\n\n    test 1 a, b, b/a, m: (6378172.0, 6378102.0, 0.9999890250686246, 2.194974230163016e-05)\n    test 2 Ellipse.perimeter2k   : 40075016.685880177\n    test 3 Ellipse.perimeter2k_  : 40075016.685880177\n    test 4 Ellipse.perimeterAGM  : 40075016.685880177\n    test 5 Ellipse.perimeterHGK  : 40075016.685880177\n    test 6 Ellipse.perimeterCR   : 40075016.685880177\n    test 7 Ellipse.perimeterGK   : 40075016.685880177\n    test 8 Ellipse.perimeter2RC  : 40075016.685880177\n    test 9 Ellipse.perimeter2R   : 40075016.685880177\n    test 10 Ellipse.perimeter4Arc3: 40075016.6859892, 6378052.503181054, 6378221.49813043\n\n    test 11 elliperim DEPRECATED  : 40075016.6859\n    test 12 elliperim DEPRECATED  : 40075236.597\n    test 13 elliperim DEPRECATED  : 25512688.0\n    test 14 elliperim DEPRECATED  : 25512408.0\n    test 15 elliperim DEPRECATED  : 0.0\n\n    test 16 Ellipse.apses2        : (6408054.087945863, 6348289.912054137)\n    test 17 Ellipse.arc           : 5009394.585735\n    test 18 Ellipse.arc           : 5009394.585735\n    test 19 Ellipse.arc           : 30056262.514410\n    test 20 Ellipse.arc           : 30056262.514410\n    test 21 Ellipse.area          : 1.27801973345e+14\n    test 22 Ellipse.e             : 0.00468505520796\n    test 23 Ellipse.c             : 29882.0879459\n    test 24 Ellipse.p             : 6378032.00077\n    test 25 Ellipse.point 45      : (4510048.672774165, 4509999.1752994815)\n    test 26 Ellipse.polar2d 45    : (6378136.999711906, 45.0)\n    test 27 Ellipse.R1            : 6378148.66667\n    test 28 Ellipse.R2            : 6378136.9999\n    test 29 Ellipse.Roc 60        : 6378189.50055\n    test 30 Ellipse.Roc_(-1, 1)   : 6378137.00048\n    test 31 Ellipse.Rrectifying   : 6378137.00005\n    test 32 Ellipse.sideOf        : -0.999999843214\n    test 33 Ellipse.sideOf(c, p)  : 0.0\n    test 34 Ellipse.slope 60      : -29.9997277134\n    test 35 Ellipse.hartzell4     : (4510048.672774, 4509999.175299, 0.0, 2641910.848113)\n    test 36 Ellipse.height4       : (4510063.170305, 4509984.677881, 0.0, 2641910.848001)\n    test 37 Ellipse.normal3d      : (0.7071, 0.70711, 0.0)\n    test 38 Ellipse.normal4       : (3189086.0, 5523598.359928, 0.0, 0.0)\n\n    test 39 Ellipse.toRepr(terse=0): Ellipse(name='', a=6378172, b=6378102, c=29882.08794586, e=0.00468506, e2=0.00002195, p=6378032.00076825, area=127801973345104.296875, perimeter2k=40075016.68588018, R2=6378136.99990397)\n    test 40 Ellipse.toEllipsoid: name='', a=6378172, f=0.00001097, f_=91116.74285714, b=6378102\n    test 41 Ellipse.toTriaxial_: name='_', a=6378172, b=6378102, c=0, e2ab=0.00002195, e2bc=1, e2ac=1\n\n    test 63 Ellipse.sideOfs       : 0\n    test 64 Ellipse.sideOf point  : 0.0\n    test 65 Ellipse.cw vs ccw     : 21\n    test 66 Ellipse.cw vs ccw'd   : True\n    test 91 Ellipse.slopes        : 0\n\n    test 92 a, b, b/a, m: (6378172.0, 5740354.8, 0.9, 0.18999999999999995)\n    test 93 Ellipse.perimeter2k   : 38097844.622237749\n    test 94 Ellipse.perimeter2k_  : 38097844.622237757\n    test 95 Ellipse.perimeterAGM  : 38097844.622237757\n    test 96 Ellipse.perimeterHGK  : 38097844.622237757\n    test 97 Ellipse.perimeterCR   : 38097844.622237757\n    test 98 Ellipse.perimeterGK   : 38097844.622237757\n    test 99 Ellipse.perimeter2RC  : 38097844.622237757\n    test 100 Ellipse.perimeter2R   : 38097844.622237757\n    test 101 Ellipse.perimeter4Arc3: 38107337.959388405, 5343198.019022139, 6890325.8899754025\n\n    test 102 elliperim DEPRECATED  : 38097844.6222\n    test 103 elliperim DEPRECATED  : 40075236.597\n    test 104 elliperim DEPRECATED  : 25512688.0\n    test 105 elliperim DEPRECATED  : 22961419.2\n    test 106 elliperim DEPRECATED  : 0.0\n\n    test 107 Ellipse.apses2        : (9158352.71925207, 3597991.28074793)\n    test 108 Ellipse.arc           : 4921611.270994\n    test 109 Ellipse.arc           : 4921611.270994\n    test 110 Ellipse.arc           : 28573383.466678\n    test 111 Ellipse.arc           : 28573383.466678\n    test 112 Ellipse.area          : 1.15023038381e+14\n    test 113 Ellipse.e             : 0.435889894354\n    test 114 Ellipse.c             : 2780180.71925\n    test 115 Ellipse.p             : 5166319.32\n    test 116 Ellipse.point 45      : (4510048.672774165, 4059043.805496748)\n    test 117 Ellipse.polar2d 45    : (6034126.999973108, 45.0)\n    test 118 Ellipse.R1            : 6165566.26667\n    test 119 Ellipse.R2            : 6050865.24849\n    test 120 Ellipse.Roc 60        : 6587963.64288\n    test 121 Ellipse.Roc_(-1, 1)   : 6101359.09402\n    test 122 Ellipse.Rrectifying   : 6063460.29278\n    test 123 Ellipse.sideOf        : -0.999999825795\n    test 124 Ellipse.sideOf(c, p)  : 0.0\n    test 125 Ellipse.slope 60      : -27.4570760959\n    test 126 Ellipse.hartzell4     : (4510048.672774, 4059043.805497, 0.0, 2513302.891806)\n    test 127 Ellipse.height4       : (4646979.930894, 3931944.941451, 0.0, 2503472.028331)\n    test 128 Ellipse.normal3d      : (0.66896, 0.74329, 0.0)\n    test 129 Ellipse.normal4       : (3189086.0, 4971293.083536, 0.0, 0.0)\n\n    test 130 Ellipse.toRepr(terse=0): Ellipse(name='', a=6378172, b=5740354.8, c=2780180.71925207, e=0.43588989, e2=0.19, p=5166319.32, area=115023038380546.6875, perimeter2k=38097844.62223775, R2=6050865.24849344)\n    test 131 Ellipse.toEllipsoid: name='', a=6378172, f=0.1, f_=10, b=5740354.8\n    test 132 Ellipse.toTriaxial_: name='_', a=6378172, b=5740354.8, c=0, e2ab=0.19, e2bc=1, e2ac=1\n\n    test 154 Ellipse.sideOfs       : 0\n    test 155 Ellipse.sideOf point  : 0.0\n    test 156 Ellipse.cw vs ccw     : 21\n    test 157 Ellipse.cw vs ccw'd   : True\n    test 182 Ellipse.slopes        : 0\n\n    test 183 a, b, b/a, m: (6378172.0, 3189086.0, 0.5, 0.75)\n    test 184 Ellipse.perimeter2k   : 30897294.581873503\n    test 185 Ellipse.perimeter2k_  : 30897294.581873503\n    test 186 Ellipse.perimeterAGM  : 30897294.581873506\n    test 187 Ellipse.perimeterHGK  : 30897294.581873506\n    test 188 Ellipse.perimeterCR   : 30897294.581819803\n    test 189 Ellipse.perimeterGK   : 30897294.581743788\n    test 190 Ellipse.perimeter2RC  : 30897294.567785483\n    test 191 Ellipse.perimeter2R   : 30897294.567785427\n    test 192 Ellipse.perimeter4Arc3: 31157545.70727452, 2203604.2294767764, 11538221.541046448\n\n    test 193 elliperim DEPRECATED  : 30897294.5819\n    test 194 elliperim DEPRECATED  : 40075236.597\n    test 195 elliperim DEPRECATED  : 25512688.0\n    test 196 elliperim DEPRECATED  : 12756344.0\n    test 197 elliperim DEPRECATED  : 0.0\n\n    test 198 Ellipse.apses2        : (11901830.9817066, 854513.0182933994)\n    test 199 Ellipse.arc           : 4644738.918062\n    test 200 Ellipse.arc           : 4644738.918062\n    test 201 Ellipse.arc           : 23172970.936405\n    test 202 Ellipse.arc           : 23172970.936405\n    test 203 Ellipse.area          : 6.39016879892e+13\n    test 204 Ellipse.e             : 0.866025403784\n    test 205 Ellipse.c             : 5523658.98171\n    test 206 Ellipse.p             : 1594543.0\n    test 207 Ellipse.point 45      : (4510048.672774165, 2255024.3363870825)\n    test 208 Ellipse.polar2d 45    : (4033910.165662294, 45.0)\n    test 209 Ellipse.R1            : 5315143.33333\n    test 210 Ellipse.R2            : 4510048.67277\n    test 211 Ellipse.Roc 60        : 9342460.63958\n    test 212 Ellipse.Roc_(-1, 1)   : 6302984.63385\n    test 213 Ellipse.Rrectifying   : 4917457.16087\n    test 214 Ellipse.sideOf        : -0.999999686431\n    test 215 Ellipse.sideOf(c, p)  : 0.0\n    test 216 Ellipse.slope 60      : -16.102113752\n    test 217 Ellipse.hartzell4     : (4510048.672774, 2255024.336387, 0.0, 2088625.375015)\n    test 218 Ellipse.height4       : (5309727.884418, 1766908.87251, 0.0, 1778808.761525)\n    test 219 Ellipse.normal3d      : (0.44721, 0.89443, 0.0)\n    test 220 Ellipse.normal4       : (3189086.0, 2761829.490853, 0.0, 0.0)\n\n    test 221 Ellipse.toRepr(terse=0): Ellipse(name='', a=6378172, b=3189086, c=5523658.9817066, e=0.8660254, e2=0.75, p=1594543, area=63901687989192.6015625, perimeter2k=30897294.5818735, R2=4510048.67277416)\n    test 222 Ellipse.toEllipsoid: name='', a=6378172, f=0.5, f_=2, b=3189086\n    test 223 Ellipse.toTriaxial_: name='_', a=6378172, b=3189086, c=0, e2ab=0.75, e2bc=1, e2ac=1\n\n    test 245 Ellipse.sideOfs       : 0\n    test 246 Ellipse.sideOf point  : 0.0\n    test 247 Ellipse.cw vs ccw     : 21\n    test 248 Ellipse.cw vs ccw'd   : True\n    test 273 Ellipse.slopes        : 0\n\n    test 274 a, b, b/a, m: (6378172.0, 1594543.0, 0.25, 0.9375)\n    test 275 Ellipse.perimeter2k   : 27357324.785247806\n    test 276 Ellipse.perimeter2k_  : 27357324.785247806\n    test 277 Ellipse.perimeterAGM  : 27357324.785247806\n    test 278 Ellipse.perimeterHGK  : 27357324.785247806\n    test 279 Ellipse.perimeterCR   : 27357324.462550402\n    test 280 Ellipse.perimeterGK   : 27357323.163297798\n    test 281 Ellipse.perimeter2RC  : 27357318.008817654\n    test 282 Ellipse.perimeter2R   : 27357317.948020011\n    test 283 Ellipse.perimeter4Arc3: 27839816.212722465, 922977.919904027, 23415319.320383895\n\n    test 284 elliperim DEPRECATED  : 27357324.7852\n    test 285 elliperim DEPRECATED  : 40075236.597\n    test 286 elliperim DEPRECATED  : 25512688.0\n    test 287 elliperim DEPRECATED  : 6378172.0\n    test 288 elliperim DEPRECATED  : 0.0\n\n    test 289 Ellipse.apses2        : (12553810.483811613, 202533.51618838683)\n    test 290 Ellipse.arc           : 4544501.990341\n    test 291 Ellipse.arc           : 4544501.990341\n    test 292 Ellipse.arc           : 20517993.588936\n    test 293 Ellipse.arc           : 20517993.588936\n    test 294 Ellipse.area          : 3.19508439946e+13\n    test 295 Ellipse.e             : 0.968245836552\n    test 296 Ellipse.c             : 6175638.48381\n    test 297 Ellipse.p             : 398635.75\n    test 298 Ellipse.point 45      : (4510048.672774165, 1127512.1681935412)\n    test 299 Ellipse.polar2d 45    : (2187694.9475911316, 45.0)\n    test 300 Ellipse.R1            : 4783629.0\n    test 301 Ellipse.R2            : 3189086.0\n    test 302 Ellipse.Roc 60        : 17091507.7812\n    test 303 Ellipse.Roc_(-1, 1)   : 9878809.99772\n    test 304 Ellipse.Rrectifying   : 4354053.46934\n    test 305 Ellipse.sideOf        : -0.999999372861\n    test 306 Ellipse.sideOf(c, p)  : 0.0\n    test 307 Ellipse.slope 60      : -8.21321070174\n    test 308 Ellipse.hartzell4     : (4510048.672774, 1127512.168194, 0.0, 1925617.449958)\n    test 309 Ellipse.height4       : (5837520.368165, 642477.334856, 0.0, 1094866.757991)\n    test 310 Ellipse.normal3d      : (0.24254, 0.97014, 0.0)\n    test 311 Ellipse.normal4       : (3189086.0, 1380914.745427, 0.0, 0.0)\n\n    test 312 Ellipse.toRepr(terse=0): Ellipse(name='', a=6378172, b=1594543, c=6175638.48381161, e=0.96824584, e2=0.9375, p=398635.75, area=31950843994596.30078125, perimeter2k=27357324.78524781, R2=3189086)\n    test 313 Ellipse.toEllipsoid: name='', a=6378172, f=0.75, f_=1.33333333, b=1594543\n    test 314 Ellipse.toTriaxial_: name='_', a=6378172, b=1594543, c=0, e2ab=0.9375, e2bc=1, e2ac=1\n\n    test 336 Ellipse.sideOfs       : 0\n    test 337 Ellipse.sideOf point  : 0.0\n    test 338 Ellipse.cw vs ccw     : 21\n    test 339 Ellipse.cw vs ccw'd   : True\n    test 364 Ellipse.slopes        : 0\n\n    test 365 a, b, b/a, m: (6378172.0, 797271.5, 0.125, 0.984375)\n    test 366 Ellipse.perimeter2k   : 26106620.666072767\n    test 367 Ellipse.perimeter2k_  : 26106620.666072767\n    test 368 Ellipse.perimeterAGM  : 26106620.666072764\n    test 369 Ellipse.perimeterHGK  : 26106620.666072760\n    test 370 Ellipse.perimeterCR   : 26106596.269819759\n    test 371 Ellipse.perimeterGK   : 26106498.674043797\n    test 372 Ellipse.perimeter2RC  : 26106496.429202825\n    test 373 Ellipse.perimeter2R   : 26106468.693959467\n    test 374 Ellipse.perimeter4Arc3: 26548502.51849537, 426749.3250869843, 48408652.89930413\n\n    test 375 elliperim DEPRECATED  : 26106620.6661\n    test 376 elliperim DEPRECATED  : 40075236.597\n    test 377 elliperim DEPRECATED  : 25512688.0\n    test 378 elliperim DEPRECATED  : 3189086.0\n    test 379 elliperim DEPRECATED  : 0.0\n\n    test 380 Ellipse.apses2        : (12706318.349198299, 50025.65080170147)\n    test 381 Ellipse.arc           : 4518714.450822\n    test 382 Ellipse.arc           : 4518714.450822\n    test 383 Ellipse.arc           : 19579965.499555\n    test 384 Ellipse.arc           : 19579965.499555\n    test 385 Ellipse.area          : 1.59754219973e+13\n    test 386 Ellipse.e             : 0.992156741649\n    test 387 Ellipse.c             : 6328146.3492\n    test 388 Ellipse.p             : 99658.9375\n    test 389 Ellipse.point 45      : (4510048.672774165, 563756.0840967706)\n    test 390 Ellipse.polar2d 45    : (1118805.3802239103, 45.0)\n    test 391 Ellipse.R1            : 4517871.83333\n    test 392 Ellipse.R2            : 2255024.33639\n    test 393 Ellipse.Roc 60        : 33401212.2503\n    test 394 Ellipse.Roc_(-1, 1)   : 18464659.1072\n    test 395 Ellipse.Rrectifying   : 4154997.72643\n    test 396 Ellipse.sideOf        : -0.999998745722\n    test 397 Ellipse.sideOf(c, p)  : 0.0\n    test 398 Ellipse.slope 60      : -4.12781030451\n    test 399 Ellipse.hartzell4     : (4510048.672774, 563756.084097, 0.0, 1882661.471213)\n    test 400 Ellipse.height4       : (6128382.04862, 220935.918585, 0.0, 628138.298638)\n    test 401 Ellipse.normal3d      : (0.12403, 0.99228, 0.0)\n    test 402 Ellipse.normal4       : (3189086.0, 690457.372713, 0.0, 0.0)\n\n    test 403 Ellipse.toRepr(terse=0): Ellipse(name='', a=6378172, b=797271.5, c=6328146.3491983, e=0.99215674, e2=0.984375, p=99658.9375, area=15975421997298.15039062, perimeter2k=26106620.66607277, R2=2255024.33638708)\n    test 404 Ellipse.toEllipsoid: name='', a=6378172, f=0.875, f_=1.14285714, b=797271.5\n    test 405 Ellipse.toTriaxial_: name='_', a=6378172, b=797271.5, c=0, e2ab=0.984375, e2bc=1, e2ac=1\n\n    test 427 Ellipse.sideOfs       : 0\n    test 428 Ellipse.sideOf point  : 0.0\n    test 429 Ellipse.cw vs ccw     : 21\n    test 430 Ellipse.cw vs ccw'd   : True\n    test 455 Ellipse.slopes        : 0\n\n    test 456 a, b, b/a, m: (6378172.0, 2.220446049250313e-16, 3.4813204304467065e-23, 1.0)\n    test 457 Ellipse.perimeter2k   : 25512688.000000000\n    test 458 Ellipse.perimeter2k_  : 25512688.000000000\n    test 459 Ellipse.perimeterAGM  : 25512688.000000000\n    test 460 Ellipse.perimeterHGK  : 25512688.000000000\n    test 461 Ellipse.perimeterCR   : 25512688.000000000\n    test 462 Ellipse.perimeterGK   : 25512688.000000000\n    test 463 Ellipse.perimeter2RC  : 25512688.000000000\n    test 464 Ellipse.perimeter2R   : 25512688.000000000\n    test 465 Ellipse.perimeter4Arc3: 25512688.0, 0.0, 4503599627370496.0\n\n    test 466 elliperim DEPRECATED  : 25512688.0\n    test 467 elliperim DEPRECATED  : 40075236.597\n    test 468 elliperim DEPRECATED  : 25512688.0\n    test 469 elliperim DEPRECATED  : 0.0\n    test 470 elliperim DEPRECATED  : 0.0\n\n    test 471 Ellipse.apses2        : (12756344.0, 0.0)\n    test 472 Ellipse.arc           : 3189086.000000\n    test 473 Ellipse.arc           : 3189086.000000\n    test 474 Ellipse.arc           : 19134516.000000\n    test 475 Ellipse.arc           : 19134516.000000\n    test 476 Ellipse.area          : 4.44924503874e-09\n    test 477 Ellipse.e             : 1.0\n    test 478 Ellipse.c             : 6378172.0\n    test 479 Ellipse.p             : 7.73008419596e-39\n    test 480 Ellipse.point 45      : (4510048.672774165, 1.5700924586837752e-16)\n    test 481 Ellipse.polar2d 45    : (3.14018491736755e-16, 45.0)\n    test 482 Ellipse.R1            : 4252114.66667\n    test 483 Ellipse.R2            : 3.76329467606e-05\n    test 484 Ellipse.Roc 60        : 1.18999222251e+29\n    test 485 Ellipse.Roc_(-1, 1)   : 6.47749720671e+28\n    test 486 Ellipse.Rrectifying   : 4060470.40676\n    test 487 Ellipse.sideOf        : 4.50359962737e+15\n    test 488 Ellipse.sideOf(c, p)  : 0.0\n    test 489 Ellipse.slope 60      : 0.0\n    test 490 Ellipse.hartzell4     : (4510048.672774, 0.0, 0.0, 1868123.327226)\n    test 491 Ellipse.height4       : (6378172.0, 0.0, 0.0, 0.0)\n    test 492 Ellipse.normal3d      : (0.0, 1.0, 0.0)\n    test 493 Ellipse.normal4       : (3189086.0, 0.0, 0.0, 0.0)\n\n    test 494 Ellipse.toRepr(terse=0): Ellipse(name='', a=6378172, b=0, c=6378172, e=1, e2=1, p=0, area=0, perimeter2k=25512688, R2=0.00003763)\n    test 495 Ellipse.toEllipsoid: name='', a=6378172, f=0, f_=0, b=6378172\n    test 496 Ellipse.toTriaxial_: name='_', a=6378172, b=0, c=0, e2ab=1, e2bc=0, e2ac=1\n\n    test 497 Ellipse.isCircular    : False\n    test 498 Ellipse.isFlat        : True\n    test 499 Ellipse.isOblate      : True\n    test 500 Ellipse.isProlate     : False\n\n    test 501 Airy1830.polarimeter/2k: 40004504.322866\n    test 502 AiryModified.polarimeter/2k: 40003104.213633\n    test 503 ATS1977.polarimeter/2k: 40007850.321623\n    test 504 Australia1966.polarimeter/2k: 40008005.562578\n    test 505 Bessel1841.polarimeter/2k: 40003423.057729\n    test 506 BesselModified.polarimeter/2k: 40004018.103739\n    test 507 CGCS2000.polarimeter/2k: 40007862.916922\n    test 508 Clarke1866.polarimeter/2k: 40007552.171931\n    test 509 Clarke1880.polarimeter/2k: 40007470.206590\n    test 510 Clarke1880IGN.polarimeter/2k: 40007470.788996\n    test 511 Clarke1880Mod.polarimeter/2k: 40007470.510580\n    test 512 CPM1799.polarimeter/2k: 40000070.108863\n    test 513 Delambre1810.polarimeter/2k: 39999995.935832\n    test 514 Engelis1985.polarimeter/2k: 40007856.817888\n    test 515 Everest1969.polarimeter/2k: 40003153.246198\n    test 516 Everest1975.polarimeter/2k: 40003175.124904\n    test 517 Fisher1968.polarimeter/2k: 40007954.087654\n    test 518 GEM10C.polarimeter/2k: 40007862.917259\n    test 519 GPES.polarimeter/2k: 40075004.119208\n    test 520 GRS67.polarimeter/2k: 40008004.925042\n    test 521 GRS80.polarimeter/2k: 40007862.916922\n    test 522 Helmert1906.polarimeter/2k: 40008267.720558\n    test 523 IAU76.polarimeter/2k: 40007881.684906\n    test 524 IERS1989.polarimeter/2k: 40007856.594279\n    test 525 IERS1992TOPEX.polarimeter/2k: 40007858.526391\n    test 526 IERS2003.polarimeter/2k: 40007860.227339\n    test 527 Intl1924.polarimeter/2k: 40009153.195958\n    test 528 Intl1967.polarimeter/2k: 40007989.794372\n    test 529 Krassovski1940.polarimeter/2k: 40008549.990171\n    test 530 Krassowsky1940.polarimeter/2k: 40008549.990171\n    test 531 Maupertuis1738.polarimeter/2k: 40090266.793877\n    test 532 Mercury1960.polarimeter/2k: 40008054.450184\n    test 533 Mercury1968Mod.polarimeter/2k: 40007954.087654\n    test 534 NWL1965.polarimeter/2k: 40007911.472733\n    test 535 OSU86F.polarimeter/2k: 40007857.899134\n    test 536 OSU91A.polarimeter/2k: 40007858.526400\n    test 537 Plessis1817.polarimeter/2k: 39999996.440146\n    test 538 PZ90.polarimeter/2k: 40007856.783172\n    test 539 SGS85.polarimeter/2k: 40007856.594279\n    test 540 SoAmerican1969.polarimeter/2k: 40008005.562578\n    test 541 Sphere.polarimeter/2k: 40030228.704467\n    test 542 SphereAuthalic.polarimeter/2k: 40030173.592041\n    test 543 SpherePopular.polarimeter/2k: 40075016.685578\n    test 544 Struve1860.polarimeter/2k: 40008071.346229\n    test 545 WGS60.polarimeter/2k: 40008048.177526\n    test 546 WGS66.polarimeter/2k: 40007911.472733\n    test 547 WGS72.polarimeter/2k: 40007850.996794\n    test 548 WGS84.polarimeter/2k: 40007862.917251\n    test 549 WGS84_NGS.polarimeter/2k: 40007862.916922\n\n    30 of 549 testEllipses.py tests (5.5%) FAILED, incl. 30 DeprecationWarnings (pygeodesy 26.3.26 Python 2.7.18 64bit arm64_x86_64 geographiclib 1.50 numpy 1.16.6 scipy 1.2.2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 -W  default) 187.683 ms\nrunning /Library/Framewo....ython -W default ~/PyGeodesy/test/testEllipsoidal.py\n./test/testLatLon.py:276: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.ellipsoidalNvector.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', p.cosineAndoyerLambertTo(q), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:277: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.ellipsoidalNvector.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', q.cosineAndoyerLambertTo(p), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:279: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.ellipsoidalNvector.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', p.cosineForsytheAndoyerLambertTo(q), '124801.098' if Sph else '125205.965', fmt='%.3f')\n./test/testLatLon.py:280: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.ellipsoidalNvector.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', q.cosineForsytheAndoyerLambertTo(p), '124801.098' if Sph else '125205.965', fmt='%.3f')\n./pygeodesy/ellipsoidalBase.py:443: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  _ = self.datum.ellipsoid.geodesic\n./pygeodesy/azimuthal.py:636: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return self.datum.ellipsoid.geodesic\n./pygeodesy/ellipsoidalNvector.py:247: DeprecationWarning: Property_RO L{ned<pygeodesy.ltpTuples.Ned.ned>} has been DEPRECATED, use property C{ned4}.\n  dn = delta.ned[:3]  # XXX Ned4Tuple.to3Tuple\n./pygeodesy/deprecated/classes.py:33: DeprecationWarning: class L{Ned3Tuple<pygeodesy.deprecated.classes.Ned3Tuple>} has been DEPRECATED, use class L{Ned4Tuple}, ignoring item C{ltp}.\n  deprecated_class(cls)\n./test/testVectorial.py:128: DeprecationWarning: function L{nearestOn<pygeodesy.vector2d.nearestOn>} has been DEPRECATED on 2025.05.06, use L{pygeodesy.nearestOn<pygeodesy.vector3d.nearestOn>}.\n  t = vector2d.nearestOn(Nvector(0, 0, 0), p1, p2)\n\n    testing testEllipsoidal.py 24.11.02\n\n    testEllipsoidal(pygeodesy.ellipsoidalNvector, 25.05.12)\n    test 1 isEllipsoidal: True\n    test 2 isSpherical: False\n    test 3 isEllipsoidal: True\n    test 4 isSpherical: False\n    test 5 toDatum: 51.477284°N, 000.00002°E, -45.91m\n    test 6 toDatum: 51.4773°N, 000.0°E, -45.91m\n    test 7 toDatum: 51.4778°N, 000.0016°W\n    test 8 toNVector: (0.6228, 0.0, 0.7824, +0.24)\n    test 9 toNvector: True\n    test 10 toCartesian: [3980581, 97, 4966825]\n    test 11 toCartesian: True\n    test 12 toVector3D: (0.6228, 0.0, 0.7824)\n    test 13 Nvector: (0.5, 0.5, 0.7071)\n    test 14 toVector3D: (0.5, 0.5, 0.7071)\n    test 15 philamheight: 0.7854, 0.7854, 0.0\n    test 16 latlonheight: 45.0, 45.0, 0.0\n    test 17 xyzh: 0.5, 0.5, 0.7, 0.0\n    test 18 toCartesian: [3194434.411, 3194434.411, 4487326.82]\n    test 19 toCartesian: True\n    test 20 toLatLon: 45.0°N, 045.0°E\n    test 21 toLatLon: True\n    test 22 Nvector: (0.51, 0.512, 0.707, +1.00)\n    test 23 sat: 82.545852°N, 059.719736°E, -6353121.71m\n    test 24 dop: 51.998889°N, 004.373333°E, +134.64m\n    test 25 distance: 3806542.94365  FAILED, KNOWN, expected 3806542.943647\n\n    32 tests skipped (32): insersecant2\n\n    testLatLon(pygeodesy.ellipsoidalNvector, 25.05.12)\n    test 26 isEllipsoidal: True\n    test 27 isSpherical: False\n    test 28 lat/lonDMS: 52.20472°N, 000.14056°E\n    test 29 lat/lonDMS F_DM: 52°12.283′N, 000°08.434′E\n    test 30 lat/lonDMS F_DM: 52°12.2832′N, 000°08.4336′E\n    test 31 lat/lonDMS F_DMS: 52°12′17″N, 000°08′26″E\n    test 32 lat/lonDMS F_DMS: 52°12′17.0″N, 000°08′26.0″E\n    test 33 lat/lonDMS F_RAD: 0.911144N, 0.002453E\n    test 34 isequalTo: True\n    test 35 isequalTo: True\n    test 36 latlon2: 52.20472, 0.14056\n    test 37 latlon2: 52.2047, 0.1406\n    test 38 latlon2: 52.205, 0.141\n    test 39 latlon2: 52.2, 0.14\n    test 40 latlon2: 52.2, 0.1\n    test 41 latlon2: 52.0, 0.0\n    test 42 chordTo: 12029263.15\n    test 43 chordTo: 12029049.69\n    test 44 copy: True\n    test 45 __eq__: True\n    test 46 __ne__: False\n    test 47 equirectangularTo: 404329.56\n    test 48 distanceTo: 404279.720589\n    test 49 distanceTo: 404279.720589\n    test 50 distanceTo: 3972863\n    test 51 distanceTo: 18013602.92\n    test 52 distanceTo: 20015114.35  FAILED, KNOWN, expected 20003931.46\n    test 53 intermediateTo: 51.372294°N, 000.707192°E\n    test 54 intermediateTo: True\n    test 55 intermediateTo: 404279.721\n    test 56 intermediateTo+5: 35.560239°N, 008.833512°E\n    test 57 intermediateTo+5: 4.885\n    test 58 intermediateTo-4: 64.570387°N, 013.156352°W\n    test 59 intermediateTo-4: 3.885\n    test 60 intermediateTo-h: 125.000\n    test 61 midpointTo: 50.536327°N, 001.274614°E\n    test 62 neareston6: (LatLon(45°00′00.0″N, 001°00′00.0″E), 4755443.4294, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E))\n    test 63 neareston6: (LatLon(45°30′03.94″N, 002°00′00.0″E), 39078.729285, 1.501072, 2, LatLon(45°00′00.0″N, 002°00′00.0″E), LatLon(46°00′00.0″N, 002°00′00.0″E))\n    test 64 chordTo: 125203.963\n    test 65 cosineAndoyerLambertTo: 125205.962\n    test 66 cosineAndoyerLambertTo: 125205.962\n    test 67 cosineForsyheAndoyerLambertTo: 125205.965\n    test 68 cosineForsyheAndoyerLambertTo: 125205.965\n    test 69 cosineLawTo: 124801.098\n    test 70 cosineLawTo: 124801.098\n    test 71 equirectangularTo: 124804.754\n    test 72 equirectangularTo: 124804.754\n    test 73 euclideanTo: 130015.089\n    test 74 euclideanTo: 130015.089\n    test 75 flatLocalTo: 125209.633\n    test 76 flatLocalTo: 125209.633\n    test 77 flatPolarTo: 133663.257\n    test 78 flatPolarTo: 133663.257\n    test 79 hartzell: 53.3206°N, 001.7297°W\n    test 80 hartzell: 53.349541°N, 001.7297°W\n    test 81 height4: 1.04135197254e-09  FAILED, KNOWN, expected 0.0\n    test 82 height4: (3820333.9, -115367.0, 5097204.4, -6584.9)\n    test 83 height4: 53°19′14.2″N, 001°43′46.9″W\n    test 84 height4: 53°19′14.2″N, 001°43′46.9″W\n    test 85 haversineTo: 124801.098\n    test 86 haversineTo: 124801.098\n    test 87 hubenyTo: <bound method LatLon.flatLocalTo of LatLon(53°19′14.16″N, 001°43′46.92″W)>\n    test 88 hubenyTo: <bound method LatLon.flatLocalTo of LatLon(53°11′19.32″N, 000°08′00.24″E)>\n    test 89 thomasTo: 125206.188\n    test 90 thomasTo: 125206.188\n    test 91 vincentysTo: 124801.098\n    test 92 vincentysTo: 124801.098\n    test 93 isclockwise: False\n    test 94 isclockwise*: False\n    test 95 isclockwise: True\n    test 96 isclockwise*: True\n    test 97 isclockwise: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 98 isclockwise*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 99 isclockwise: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 100 isclockwise*: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 101 isconvex: False\n    test 102 isconvex*: False\n    test 103 isconvex: True\n    test 104 isconvex*: True\n    test 105 isconvex: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 106 isconvex*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 107 isenclosedBy1: True\n    test 108 isenclosedBy1*: True\n    test 109 isenclosedBy2: False\n    test 110 isenclosedBy2*: False\n    test 111 isenclosedBy3: False\n    test 112 isenclosedBy3*: False\n    test 113 isenclosedBy4: False\n    test 114 isenclosedBy4*: False\n    test 115 isenclosedBy5: False\n    test 116 isenclosedBy5*: False\n    test 117 isenclosedBy6: True\n    test 118 isenclosedBy6*: True\n    test 119 isenclosedBy7: True\n    test 120 isenclosedBy7*: True\n    test 121 isenclosedBy-CCW: True\n    test 122 isenclosedBy-CW : True\n    test 123 isenclosedBy-CCW: True\n    test 124 compassAngleTo: 100.017\n    test 125 compassAngleTo: 105.599\n    test 126 compassAngleTo: 280.017\n    test 127 compassAngleTo: 285.599\n    test 128 equirectangularTo: 592.185\n    test 129 distanceTo: 591.831\n    test 130 compassAngleTo: 0.0\n    test 131 compassAngleTo: 45.0\n    test 132 compassAngleTo: 90.0\n    test 133 compassAngleTo: 180.0\n    test 134 compassAngleTo: 225.0\n    test 135 compassAngleTo: 315.0\n    test 136 compassAngleTo: 270.0\n    test 137 compassAngleTo: 359.4\n    test 138 latlon2: (53.0, 1.0)\n    test 139 philam2: (0.93, 0.02)\n    test 140 compassAngleTo: 31\n    test 141 compassAngleTo: 45\n\n    test 142 boundsOf: <class 'pygeodesy.namedTuples.Bounds2Tuple'>\n    test 143 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 144 latlon2: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 145 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 146 isequalTo: <type 'bool'>\n    test 147 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 148 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 149 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 150 xyz3: <type 'tuple'>\n    test 151 xyzh: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 152 compassAngleTo: <type 'float'>\n    test 153 cosineLawTo: <type 'float'>\n    test 154 euclideanTo: <type 'float'>\n    test 155 flatLocalTo: <type 'float'>\n    test 156 flatPolarTo: <type 'float'>\n    test 157 haversineTo: <type 'float'>\n    test 158 hubenyTo: <type 'float'>\n    test 159 vincentysTo: <type 'float'>\n    test 160 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 161 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 162 toLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 163 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 164 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 165 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 166 toVector: (3934960.466675, 0.0, 5002803.345483)\n    test 167 toVector3d: (0.61823, 0.0, 0.786)\n    test 168 trilaterate5 (pygeodesy.ellipsoidalNvector) .min: 223.305\n    test 169 trilaterate5 (pygeodesy.ellipsoidalNvector) .point: 42.67456065°N, 002.49539502°E\n    test 170 trilaterate5 (pygeodesy.ellipsoidalNvector) .min- is .maxPoint: True\n    test 171 trilaterate5 (pygeodesy.ellipsoidalNvector) .n: 1\n    test 172 trilaterate5 (pygeodesy.ellipsoidalNvector) .error: ellipsoidalNvector.LatLon.trilaterate5(area=True), MRO(nvectorBase.LatLonNvectorBase, ellipsoidalBase.LatLonEllipsoidalBase, latlonBase.LatLonBase, named._NamedBase, ecefLocals._EcefLocal, named._Named): not implemented\n\n    test 173 radii11: Radii11Tuple(rA=7705.84217, rB=1367.057272, rC=498.160185, cR=4897.488519, rIn=740.470746, riS=179.544791, roS=5964.029657, a=1865.217457, b=8204.002354, c=9072.899442, s=9571.059626)\n    test 174 circum4 (pygeodesy.ellipsoidalNvector) .radius: 3184196.839  FAILED, KNOWN, expected 3184256.748\n    test 175 circum4 (pygeodesy.ellipsoidalNvector) .center: 42.674776°N, 002.495488°E, -3184194.95m  FAILED, KNOWN, expected 43.054367°N, 002.942573°E, -3183993.92m\n    test 176 circum4 (pygeodesy.ellipsoidalNvector) .rank: 3\n    test 177 circum4 (pygeodesy.ellipsoidalNvector) .residuals: ()\n    test 178 circum4 (pygeodesy.ellipsoidalNvector) .d1: 4886.122  FAILED, KNOWN, expected 57818.033\n    test 179 circum4 (pygeodesy.ellipsoidalNvector) .d2: 4904.641  FAILED, KNOWN, expected 57834.176\n    test 180 circum4 (pygeodesy.ellipsoidalNvector) .d3: 4909.920  FAILED, KNOWN, expected 57830.992\n    test 181 circum4 (pygeodesy.ellipsoidalNvector) .datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 182 circum4 (pygeodesy.ellipsoidalNvector) .Ecef: <class 'pygeodesy.ecef.EcefVeness'>\n    test 183 radii11: Radii11Tuple(rA=327537.482637, rB=776914.262482, rC=784245.052526, cR=780602.180901, rIn=325058.721103, riS=84975.664195, roS=INF, a=1561159.315008, b=1111782.535163, c=1104451.745119, s=1888696.797645)\n    test 184 circin6 (pygeodesy.ellipsoidalNvector) .rB+rC: 1561159.315\n    test 185 circin6 (pygeodesy.ellipsoidalNvector) .rC+pA: 1111782.535\n    test 186 circin6 (pygeodesy.ellipsoidalNvector) .rA+rB: 1104451.745\n    test 187 circin6 (pygeodesy.ellipsoidalNvector) .radius: 325058.721\n    test 188 circin6 (pygeodesy.ellipsoidalNvector) .center: 02.948531°N, 002.932537°E, -40041.19m\n    test 189 circin6 (pygeodesy.ellipsoidalNvector) .deltas: (0.0, 0.0, 0.267132)  FAILED, KNOWN, expected (0.0, 0.0, 0.090491)\n    test 190 circin6 (pygeodesy.ellipsoidalNvector) .cA: 05.04314°N, 005.014578°E, -48104.09m\n    test 191 circin6 (pygeodesy.ellipsoidalNvector) .cB: 00.0°N, 002.941713°E, -20168.62m\n    test 192 circin6 (pygeodesy.ellipsoidalNvector) .cC: 02.961566°N, 000.0°E, -20113.46m\n    test 193 circin6 (pygeodesy.ellipsoidalNvector) .dA: 327992.318  FAILED, KNOWN, expected 327263.596\n    test 194 circin6 (pygeodesy.ellipsoidalNvector) .dB: 327863.711  FAILED, KNOWN, expected 326036.153\n    test 195 circin6 (pygeodesy.ellipsoidalNvector) .dC: 325653.216  FAILED, KNOWN, expected 326020.432\n\n    testVectorial(pygeodesy.ellipsoidalNvector, 25.05.12)\n\n    test 196 toLatLon: 44.995674°N, 045.0°E\n    test 197 toNvector: (0.50004, 0.50004, 0.70705)\n    test 198 isequalTo: False\n    test 199 isequalTo: True\n    test 200 length: 0.99992449715\n    test 201 euclid: 0.99995577\n    test 202 length: 1.00\n    test 203 euclid: 1.0000\n    test 204 meanOf: 44.995674°N, 045.0°E\n    test 205 meanOf: LatLon\n    test 206 apply: (0.5, 0.5, 0.707)\n    test 207 init: (0.5, 0.5, 0.707)\n    test 208 i***: (0.5, 0.5, 0.707)\n    test 209 abs: 0.99992449715\n    test 210 sumOf: (52.70504, 0.61904, 0.70705)\n    test 211 sumOf: Nv\n    test 212 sumOf: sumOf\n    test 213 length: 52.7134151513\n    test 214 sizeof: 205  FAILED, KNOWN, expected 128\n    test 215 length: 52.2051356286\n    test 216 sizeof: 320  FAILED, KNOWN, expected 247\n    test 217 copy: True\n    test 218 length: 52.2051356286\n    test 219 sizeof: 320\n    test 220 isenclosedBy: True\n    test 221 isenclosedBy*: True\n    test 222 isenclosedBy: True\n    test 223 isenclosedBy*: True\n\n    test 224 nearestOn: 51.0°N, 001.0°E\n    test 225 nearestOn: 50.987°N, 000.298°W\n    test 226 nearestOn: 51.0°N, 002.0°E\n    test 227 nearestOn: 50.995°N, 002.655°E\n    test 228 nearestOn: 51.0°N, 001.9°E\n    test 229 nearestOn: True\n    test 230 distanceTo: 42.826\n    test 231 nearestOn: 51.0°N, 002.0°E\n    test 232 nearestOn: True\n    test 233 nearestOn: 00.0°N, 000.0°E\n    test 234 nearestOn: True\n    test 235 nearestOn: 00.0°N, 020.0°E\n    test 236 nearestOn: True\n    test 237 nearestOn: 02.0°N, 002.0°E\n    test 238 nearestOn: 02.0°N, 002.0°E\n\n    test 239 neareston6: (LatLon(45°00′00.0″N, 001°00′00.0″E), 4755443.4294, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E))\n    test 240 neareston6: (LatLon(45°30′03.94″N, 002°00′00.0″E), 39078.729285, 1.501072, 2, LatLon(45°00′00.0″N, 002°00′00.0″E), LatLon(46°00′00.0″N, 002°00′00.0″E))\n\n    test 241 BasseC: 47.3038°N, 002.5721°W\n    test 242 BasseH: 47.311067°N, 002.528617°W\n    test 243 triangulate: 47.323667°N, 002.568501°W\n    test 244 triangulate: True\n\n    test 245 trilaterate: 37.419078°N, 121.960579°W\n    test 246 trilaterate: True\n    test 247 trilaterate: 08.068912°S, 034.888699°W\n    test 248 trilaterate: True\n    test 249 trilaterate: 08.068912°S, 034.888695°W  FAILED, KNOWN, expected 08.068912°S, 034.888699°W\n    test 250 trilaterate: True\n    test 251 trilaterate: 42.67456065°N, 002.49539502°E\n    test 252 trilaterate: distance1 (5110), distance2 (5110), distance3 (5110), point1 (LatLon(42°41′19.82″N, 002°26′19.89″E)), point2 (LatLon(42°38′07.52″N, 002°31′21.25″E)) or point3 (LatLon(42°38′43.44″N, 002°30′17.32″E)): no intersection (useZ=False, wrap=False, z=-8.13526e-05)\n\n    test 253 destinationNed: 48°53′12.01″N, 002°22′29.0″E, +0.20m\n\n    testNvector(pygeodesy.ellipsoidalNvector, 25.05.12)\n    test 254 sumOf: Nvector\n    test 255 ecef.x, .y, .z: 3194659.54086, 3194659.54086, 4487008.4122\n    test 256 ecef.lat, .lon: 44.995674, 45.0\n    test 257 ecef.height: -0.0\n    test 258 ecef.M: -0.707106781, -0.499962243, 0.500037754, 0.707106781, -0.499962243, 0.500037754, 0.0, 0.707160174, 0.707053385\n    test 259 nearestOn: (0.0, 0.0, 0.0)\n    test 260 nearestOn: True\n    test 261 nearestOn: (100.0, 100.0, 100.0)\n    test 262 nearestOn: True\n    test 263 iscolinearWith: False\n    test 264 iscolinearWith: True\n    test 265 nearestOn: (0.0, 0.0, 0.0)\n    test 266 nearestOn: True\n    test 267 nearestOn: (100.0, 100.0, 100.0)\n    test 268 nearestOn: True\n    test 269 iscolinearWith: False\n    test 270 iscolinearWith: True\n\n    testEllipsoidal(pygeodesy.ellipsoidalVincenty, 25.05.26)\n    test 271 isEllipsoidal: True\n    test 272 isSpherical: False\n    test 273 isEllipsoidal: True\n    test 274 isSpherical: False\n    test 275 toDatum: 51.477284°N, 000.00002°E, -45.91m\n    test 276 toDatum: 51.4773°N, 000.0°E, -45.91m\n    test 277 toDatum: 51.4778°N, 000.0016°W\n    test 278 sat: 82.545852°N, 059.719736°E, -6353121.71m\n    test 279 dop: 51.998889°N, 004.373333°E, +134.64m\n    test 280 distance: 3817991.07401  FAILED, KNOWN, expected 3817991.074015\n    test 281 neareston8: (LatLon(45°00′00.0″N, 001°00′00.0″E), 4874369.98942, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E), 0.0, 0.0)\n    test 282 iteration: 0\n    test 283 neareston8: (LatLon(45°30′03.93″N, 020°00′00.0″E), 39078.779519, 1.501069, 2, LatLon(45°00′00.0″N, 020°00′00.0″E), LatLon(46°00′00.0″N, 020°00′00.0″E), 270.356041, 269.999412)\n    test 284 iteration: 1\n    test 285 intersecant2: 2.843e-11% 5 LatLon(03°18′54.69″S, 023°52′08.48″E)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 286 intersecant2: 2.949e-11% 5 LatLon(22°22′23.65″S, 007°55′54.49″E)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 287 intersecant2: 7.383e-11% 5 LatLon(10°39′24.95″N, 034°45′48.18″W)  FAILED, KNOWN, expected 2.0e-10% ...\n ./test/testLatLon.py:276: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.ellipsoidalVincenty.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', p.cosineAndoyerLambertTo(q), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:277: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.ellipsoidalVincenty.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', q.cosineAndoyerLambertTo(p), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:279: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.ellipsoidalVincenty.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', p.cosineForsytheAndoyerLambertTo(q), '124801.098' if Sph else '125205.965', fmt='%.3f')\n./test/testLatLon.py:280: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.ellipsoidalVincenty.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', q.cosineForsytheAndoyerLambertTo(p), '124801.098' if Sph else '125205.965', fmt='%.3f')\n./test/testLatLon.py:627: DeprecationWarning: function L{areaOf<pygeodesy.ellipsoidalVincenty.areaOf>} has been DEPRECATED, use function L{ellipsoidalExact.areaOf} or L{ellipsoidalKarney.areaOf}.\n  r = a(reversed(b))\n./pygeodesy/ellipsoidalKarney.py:139: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return fabs(_polygon(datum.ellipsoid.geodesic, points, True, False, wrap, polar))\n./test/testLatLon.py:628: DeprecationWarning: function L{areaOf<pygeodesy.ellipsoidalVincenty.areaOf>} has been DEPRECATED, use function L{ellipsoidalExact.areaOf} or L{ellipsoidalKarney.areaOf}.\n  f = a(b)  # ccw\n   test 288 intersecant2: 6.491e-11% 4 LatLon(25°11′09.14″S, 005°10′35.44″W)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 289 intersecant2: 6.554e-12% 5 LatLon(10°14′21.91″S, 021°00′17.05″E)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 290 intersecant2: 1.994e-11% 5 LatLon(20°55′17.31″S, 010°40′21.43″E)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 291 intersecant2: center (LatLon(05°00′00.0″N, 005°00′00.0″W)), circle (3339584), end (LatLon(15°00′00.0″N, 045°00′00.0″E)), exact (False), start (LatLon(45°00′00.0″S, 015°00′00.0″W)) or wrap (False): 'too distant (3.69e+06) plumb to (16\\xc2\\xb056\\xe2\\x80\\xb245.9\\xe2\\x80\\xb3S, 020\\xc2\\xb017\\xe2\\x80\\xb202.98\\xe2\\x80\\xb3E)'\n    test 292 intersecant2: 4.819e-11% 5 LatLon(30°19′11.9″N, 022°18′22.76″W)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 293 intersecant2: 2.138e-11% 5 LatLon(00°59′41.3″N, 034°46′57.09″W)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 294 intersecant2: center (LatLon(05°00′00.0″N, 005°00′00.0″W)), circle (3339584), end (261.75669472183114), exact (False), start (LatLon(00°59′41.3″N, 034°46′57.09″W)) or wrap (False): 'no convergence (256), tolerance (1.49012e-08) plumb to (08\\xc2\\xb018\\xe2\\x80\\xb216.87\\xe2\\x80\\xb3S, 005\\xc2\\xb008\\xe2\\x80\\xb255.33\\xe2\\x80\\xb3W)'\n\n    testLatLon(pygeodesy.ellipsoidalVincenty, 25.05.26)\n    test 295 isEllipsoidal: True\n    test 296 isSpherical: False\n    test 297 lat/lonDMS: 52.20472°N, 000.14056°E\n    test 298 lat/lonDMS F_DM: 52°12.283′N, 000°08.434′E\n    test 299 lat/lonDMS F_DM: 52°12.2832′N, 000°08.4336′E\n    test 300 lat/lonDMS F_DMS: 52°12′17″N, 000°08′26″E\n    test 301 lat/lonDMS F_DMS: 52°12′17.0″N, 000°08′26.0″E\n    test 302 lat/lonDMS F_RAD: 0.911144N, 0.002453E\n    test 303 isequalTo: True\n    test 304 isequalTo: True\n    test 305 latlon2: 52.20472, 0.14056\n    test 306 latlon2: 52.2047, 0.1406\n    test 307 latlon2: 52.205, 0.141\n    test 308 latlon2: 52.2, 0.14\n    test 309 latlon2: 52.2, 0.1\n    test 310 latlon2: 52.0, 0.0\n    test 311 chordTo: 12029263.15\n    test 312 chordTo: 12029049.69\n    test 313 initialBearingTo: 156.1106\n    test 314 initialBearingTo: 65.9335\n    test 315 initialBearingTo: 0.0\n    test 316 initialBearingTo: 180.0\n    test 317 finalBearingTo: 157.8345\n    test 318 finalBearingTo: 93.9034\n    test 319 bearingTo2: 156.1106, 157.8345\n    test 320 ispolar: True\n    test 321 copy: True\n    test 322 __eq__: True\n    test 323 __ne__: False\n    test 324 equirectangularTo: 404329.56\n    test 325 distanceTo: 404607.805988\n    test 326 distanceTo: 404607.805988\n    test 327 distanceTo: 3981601\n    test 328 antipodal: False\n    test 329 distanceTo dateline: 19959679.267\n    test 330 distanceTo unrolled: 19959679.267\n    test 331 antipodal: False\n    test 332 distanceTo dateline: 9513998\n    test 333 distanceTo unrolled: 9513998\n    test 334 distanceTo: 18012714.66\n    test 335 distanceTo: ambiguous: LatLon(00°00′00.0″N, 000°00′00.0″E) antipodal to LatLon(00°00′00.0″N, 180°00′00.0″E)  FAILED, KNOWN, expected ambiguous, antipodal ...\n    test 336 distanceTo3 dateline: 19959679.2674, 161.0677, 18.8252\n    test 337 distanceTo3 dateline: 9513997.9901, 42.9164, 138.8903\n    test 338 distanceTo3 dateline: 19959679.2674, 161.0677, 18.8252\n    test 339 distanceTo3 dateline: 9513997.9901, 42.9164, 138.8903\n    test 340 intermediateTo: 51.372275°N, 000.707253°E\n    test 341 intermediateTo: True\n    test 342 intermediateTo: 404607.806\n    test 343 intermediateTo+5: 35.139582°N, 008.994368°E\n    test 344 intermediateTo+5: 5.000\n    test 345 intermediateTo-4: 64.894124°N, 013.705689°W\n    test 346 intermediateTo-4: 4.000\n    test 347 intermediateTo-h: 125.000\n    test 348 midpointTo: 50.536583°N, 001.274507°E\n    test 349 destination: 51.513526°N, 000.098038°W\n    test 350 destination: 51°30′49″N, 000°05′53″W\n    test 351 destination: 33°57′N, 118°24′W\n    test 352 destination: 33.950367°N, 118.399012°W\n    test 353 destination: 0.592546N, 2.066453W\n    test 354 destination: 32.11195529°N, 064.56074722°E  FAILED, KNOWN, expected 32.11195529°N, 063.95925278°E\n    test 355 neareston6: (LatLon(45°00′00.0″N, 001°00′00.0″E), 4755443.4294, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E))\n    test 356 neareston6: (LatLon(45°30′03.94″N, 002°00′00.0″E), 39078.729285, 1.501072, 2, LatLon(45°00′00.0″N, 002°00′00.0″E), LatLon(46°00′00.0″N, 002°00′00.0″E))\n    test 357 chordTo: 125203.963\n    test 358 cosineAndoyerLambertTo: 125205.962\n    test 359 cosineAndoyerLambertTo: 125205.962\n    test 360 cosineForsyheAndoyerLambertTo: 125205.965\n    test 361 cosineForsyheAndoyerLambertTo: 125205.965\n    test 362 cosineLawTo: 124801.098\n    test 363 cosineLawTo: 124801.098\n    test 364 equirectangularTo: 124804.754\n    test 365 equirectangularTo: 124804.754\n    test 366 euclideanTo: 130015.089\n    test 367 euclideanTo: 130015.089\n    test 368 flatLocalTo: 125209.633\n    test 369 flatLocalTo: 125209.633\n    test 370 flatPolarTo: 133663.257\n    test 371 flatPolarTo: 133663.257\n    test 372 hartzell: 53.3206°N, 001.7297°W\n    test 373 hartzell: 53.349541°N, 001.7297°W\n    test 374 height4: 1.04135197254e-09  FAILED, KNOWN, expected 0.0\n    test 375 height4: (3820333.9, -115367.0, 5097204.4, -6584.9)\n    test 376 height4: 53°19′14.2″N, 001°43′46.9″W\n    test 377 height4: 53°19′14.2″N, 001°43′46.9″W\n    test 378 haversineTo: 124801.098\n    test 379 haversineTo: 124801.098\n    test 380 hubenyTo: <bound method LatLon.flatLocalTo of LatLon(53°19′14.16″N, 001°43′46.92″W)>\n    test 381 hubenyTo: <bound method LatLon.flatLocalTo of LatLon(53°11′19.32″N, 000°08′00.24″E)>\n    test 382 thomasTo: 125206.188\n    test 383 thomasTo: 125206.188\n    test 384 vincentysTo: 124801.098\n    test 385 vincentysTo: 124801.098\n    test 386 isclockwise: False\n    test 387 isclockwise*: False\n    test 388 isclockwise: True\n    test 389 isclockwise*: True\n    test 390 isclockwise: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 391 isclockwise*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 392 isclockwise: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 393 isclockwise*: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 394 isconvex: False\n    test 395 isconvex*: False\n    test 396 isconvex: True\n    test 397 isconvex*: True\n    test 398 isconvex: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 399 isconvex*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 400 isenclosedBy1: True\n    test 401 isenclosedBy1*: True\n    test 402 isenclosedBy2: False\n    test 403 isenclosedBy2*: False\n    test 404 isenclosedBy3: False\n    test 405 isenclosedBy3*: False\n    test 406 isenclosedBy4: False\n    test 407 isenclosedBy4*: False\n    test 408 isenclosedBy5: False\n    test 409 isenclosedBy5*: False\n    test 410 isenclosedBy6: True\n    test 411 isenclosedBy6*: True\n    test 412 isenclosedBy7: True\n    test 413 isenclosedBy7*: True\n    test 414 isenclosedBy-CCW: True\n    test 415 isenclosedBy-CW : True\n    test 416 isenclosedBy-CCW: True\n    test 417 initialBearingTo: 102.392291\n    test 418 compassAngleTo: 100.017\n    test 419 compassAngleTo: 105.599\n    test 420 initialBearingTo: 288.676039\n    test 421 compassAngleTo: 280.017\n    test 422 compassAngleTo: 285.599\n    test 423 equirectangularTo: 592.185\n    test 424 distanceTo: 593.571\n    test 425 bearingTo: 0.0\n    test 426 compassAngleTo: 0.0\n    test 427 bearingTo: 45.2  FAILED, KNOWN, expected 45.0\n    test 428 compassAngleTo: 45.0\n    test 429 bearingTo: 90.0\n    test 430 compassAngleTo: 90.0\n    test 431 bearingTo: 180.0\n    test 432 compassAngleTo: 180.0\n    test 433 bearingTo: 225.2  FAILED, KNOWN, expected 225.0\n    test 434 compassAngleTo: 225.0\n    test 435 bearingTo: 314.8  FAILED, KNOWN, expected 315.0\n    test 436 compassAngleTo: 315.0\n    test 437 bearingTo: 270.0\n    test 438 compassAngleTo: 270.0\n    test 439 bearingTo: 360.0  FAILED, KNOWN, expected 359.4\n    test 440 compassAngleTo: 359.4\n    test 441 latlon2: (53.0, 1.0)\n    test 442 philam2: (0.93, 0.02)\n    test 443 bearingTo: 31\n    test 444 compassAngleTo: 31\n    test 445 compassAngleTo: 45\n\n    test 446 boundsOf: <class 'pygeodesy.namedTuples.Bounds2Tuple'>\n    test 447 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 448 latlon2: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 449 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 450 isequalTo: <type 'bool'>\n    test 451 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 452 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 453 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 454 xyz3: <type 'tuple'>\n    test 455 xyzh: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 456 compassAngleTo: <type 'float'>\n    test 457 cosineLawTo: <type 'float'>\n    test 458 euclideanTo: <type 'float'>\n    test 459 flatLocalTo: <type 'float'>\n    test 460 flatPolarTo: <type 'float'>\n    test 461 haversineTo: <type 'float'>\n    test 462 hubenyTo: <type 'float'>\n    test 463 vincentysTo: <type 'float'>\n    test 464 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 465 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 466 toLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 467 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 468 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 469 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 470 toNvector: (0.615661, 0.0, 0.788011, 0)\n    test 471 toVector: (3934960.466675, 0.0, 5002803.345483)\n    test 472 toVector3d: (0.61823, 0.0, 0.786)\n\n    test 473 trilaterate5 (pygeodesy.ellipsoidalVincenty) .min: 305.091\n    test 474 trilaterate5 (pygeodesy.ellipsoidalVincenty) .point: 42.66933643°N, 002.48620262°E\n    test 475 trilaterate5 (pygeodesy.ellipsoidalVincenty) .max: 1592.545\n    test 476 trilaterate5 (pygeodesy.ellipsoidalVincenty) .point: 42.65141232°N, 002.46816989°E\n    test 477 trilaterate5 (pygeodesy.ellipsoidalVincenty) .n: 3\n    test 478 trilaterate5 (pygeodesy.ellipsoidalVincenty) .min: 127.229\n    test 479 trilaterate5 (pygeodesy.ellipsoidalVincenty) .max: 152.612\n    test 480 trilaterate5 (pygeodesy.ellipsoidalVincenty) .point: 42.67815375°N, 002.49950041°E\n    test 481 trilaterate5 (pygeodesy.ellipsoidalVincenty) .n: 2\n    test 482 trilaterate5 (pygeodesy.ellipsoidalVincenty) .min: 2400.293\n    test 483 trilaterate5 (pygeodesy.ellipsoidalVincenty) .max: 2400.293\n    test 484 trilaterate5 (pygeodesy.ellipsoidalVincenty) .point: 42.66128984°N, 002.47973818°E\n    test 485 trilaterate5 (pygeodesy.ellipsoidalVincenty) .min- is .maxPoint: True\n    test 486 trilaterate5 (pygeodesy.ellipsoidalVincenty) .n: 1\n    test 487 trilaterate5 (pygeodesy.ellipsoidalVincenty) .min: 1343.743\n    test 488 trilaterate5 (pygeodesy.ellipsoidalVincenty) .point: 42.69131964°N, 002.50112167°E\n    test 489 trilaterate5 (pygeodesy.ellipsoidalVincenty) .max: 1445.554\n    test 490 trilaterate5 (pygeodesy.ellipsoidalVincenty) .point: 42.67815375°N, 002.49950041°E\n    test 491 trilaterate5 (pygeodesy.ellipsoidalVincenty) .n: 2\n    test 492 radii11: Radii11Tuple(rA=7244.792747, rB=1828.106695, rC=2.25502, cR=57792.067128, rIn=57.366968, riS=2.087668, roS=2.443334, a=1830.361715, b=7247.047766, c=9072.899442, s=9075.154461)\n    test 493 circum3 (pygeodesy.ellipsoidalVincenty) .radius: 57792.067\n    test 494 circum3 (pygeodesy.ellipsoidalVincenty) .center: 43.053532°N, 002.943255°E, -261.66m\n    test 495 circum3 (pygeodesy.ellipsoidalVincenty) .deltas: (-0.0, 0.0, 11.858)  FAILED, KNOWN, expected (0.0, 0.0, 11.383)\n    test 496 circum3 (pygeodesy.ellipsoidalVincenty) .d1: 57792.858\n    test 497 circum3 (pygeodesy.ellipsoidalVincenty) .d2: 57792.859\n    test 498 circum3 (pygeodesy.ellipsoidalVincenty) .d3: 57792.859\n    test 499 circum3 (pygeodesy.ellipsoidalVincenty) .datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 500 circum3 (pygeodesy.ellipsoidalVincenty) .Ecef: <class 'pygeodesy.ecef.EcefVeness'>\n\n    test 501 radii11: Radii11Tuple(rA=7244.792747, rB=1828.106695, rC=2.25502, cR=57792.067128, rIn=57.366968, riS=2.087668, roS=2.443334, a=1830.361715, b=7247.047766, c=9072.899442, s=9075.154461)\n    test 502 circum4 (pygeodesy.ellipsoidalVincenty) .radius: 3184256.748\n    test 503 circum4 (pygeodesy.ellipsoidalVincenty) .center: 43.054367°N, 002.942573°E, -3183993.92m\n    test 504 circum4 (pygeodesy.ellipsoidalVincenty) .rank: 3\n    test 505 circum4 (pygeodesy.ellipsoidalVincenty) .residuals: ()\n    test 506 circum4 (pygeodesy.ellipsoidalVincenty) .d1: 57818.033\n    test 507 circum4 (pygeodesy.ellipsoidalVincenty) .d2: 57834.176\n    test 508 circum4 (pygeodesy.ellipsoidalVincenty) .d3: 57830.992\n    test 509 circum4 (pygeodesy.ellipsoidalVincenty) .datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 510 circum4 (pygeodesy.ellipsoidalVincenty) .Ecef: <class 'pygeodesy.ecef.EcefVeness'>\n    test 511 radii11: Radii11Tuple(rA=327537.482637, rB=776914.262482, rC=784245.052526, cR=780602.180901, rIn=325058.721103, riS=84975.664195, roS=INF, a=1561159.315008, b=1111782.535163, c=1104451.745119, s=1888696.797645)\n    test 512 circin6 (pygeodesy.ellipsoidalVincenty) .rB+rC: 1561159.315\n    test 513 circin6 (pygeodesy.ellipsoidalVincenty) .rC+pA: 1111782.535\n    test 514 circin6 (pygeodesy.ellipsoidalVincenty) .rA+rB: 1104451.745\n    test 515 circin6 (pygeodesy.ellipsoidalVincenty) .radius: 325058.721\n    test 516 circin6 (pygeodesy.ellipsoidalVincenty) .center: 02.948531°N, 002.932537°E, -40041.19m\n    test 517 circin6 (pygeodesy.ellipsoidalVincenty) .deltas: (0.0, 0.0, 0.267132)  FAILED, KNOWN, expected (0.0, 0.0, 0.090491)\n    test 518 circin6 (pygeodesy.ellipsoidalVincenty) .cA: 05.04314°N, 005.014578°E, -48104.09m\n    test 519 circin6 (pygeodesy.ellipsoidalVincenty) .cB: 00.0°N, 002.941713°E, -20168.62m\n    test 520 circin6 (pygeodesy.ellipsoidalVincenty) .cC: 02.961566°N, 000.0°E, -20113.46m\n    test 521 circin6 (pygeodesy.ellipsoidalVincenty) .dA: 327263.596\n    test 522 circin6 (pygeodesy.ellipsoidalVincenty) .dB: 326036.153\n    test 523 circin6 (pygeodesy.ellipsoidalVincenty) .dC: 326020.432\n\n    test 524 area cw/ccw: 1.0\n\n    testNOAA(pygeodesy.ellipsoidalVincenty, 25.05.26)\n    test 525 NOAAexample1: 191872.1190, 249 03 16.4237, 67 59 11.1619\n    test 526 NOAAexample2: 182009.1679, 254 42 44.6439, 73 09 21.3315\n    test 527 NOAAexample3: 123456.7891, 245 00 34.7001, 64 20 24.6864\n    test 528 NOAAexample4: 145239.0603, 114 29 26.9586, 295 21 32.6566\n\n    testIntersection3(pygeodesy.ellipsoidalVincenty, 25.05.26)\n    test 529 (30, 17): (LatLon(30°52′03.1″N, 015°30′38.41″E), 0, 0)\n    test 530 (30, 17): (LatLon(30°52′03.1″N, 015°30′38.41″E), -1, 0)\n    test 531 (-1,  3): (LatLon(01°34′52.49″N, 006°00′51.83″E), -1, -2)\n    test 532 (-1,  3): (LatLon(01°34′52.49″N, 006°00′51.83″E), -1, 2)\n    test 533 (65, 32): (LatLon(56°58′26.51″N, 032°00′00.0″E), 1, 0)\n    test 534 (65, 32): (LatLon(56°58′26.51″N, 032°00′00.0″E), 1, 2)\n    test 535 (-2, 17): <class 'pygeodesy.errors.IntersectionError'>\n    test 536 (49, 25): (LatLon(49°00′00.0″N, 025°00′00.0″E), 0, -2)  FAILED, KNOWN, expected (LatLon(49°00′00.0″N, 025°00′00.0″E), 0, 0)\n    test 537 #58: (LatLon(01°54′25.65″S, 005°37′48.76″E), 1, -2)\n    test 538 #58: <class 'pygeodesy.errors.IntersectionError'>\n\n    testIntersections2(pygeodesy.ellipsoidalVincenty, 25.05.26)\n    test 539 Equidistant: 36.9879°N, 088.1564°W, 38.2441°N, 092.3835°W  FAILED, KNOWN, expected 36.9892°N, 088.152°W, 38.2377°N, 092.39°W\n    test 540 Equidistant: 36.9892°N, 088.152°W, 38.2377°N, 092.39°W\n    test 5./pygeodesy/ellipsoidalKarney.py:94: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return self.datum.ellipsoid.geodesic\n41 Equidistant: 00.0°S, 035.4073°W, 00.0°S, 035.4073°E\n    test 542 Equidistant: 1.63814 (% of radius)\n    test 543 Equidistant: 22.756°N, 000.0°W, 22.756°S, 000.0°W\n    test 544 Equidistant: 1.30784 (% of radius)\n    test 545 Equidistant: 29.2359°N, 040.2625°W, 29.2359°S, 040.2625°E\n    test 546 Equidistant: 1.31348 (% of radius)\n    test 547 Equidistant: 01.1557°S, 045.0894°E, 01.1557°N, 045.0894°E\n    test 548 Equidistant: 1.81093 (% of radius)\n    test 549 Equidistant 5: 05.0218°S, 005.0605°W, 05.0218°N, 005.0605°E\n    test 550 Equidistant 5: 0.00337268 (% of radius)\n    test 551 Equidistant 10: 10.0378°S, 010.3545°W, 10.0378°N, 010.3545°E\n    test 552 Equidistant 10: 0.00344677 (% of radius)\n    test 553 Equidistant 15: 15.0326°S, 016.1429°W, 15.0326°N, 016.1429°E\n    test 554 Equidistant 15: 0.00356146 (% of radius)\n    test 555 Equidistant 20: 19.9682°S, 022.7468°W, 19.9682°N, 022.7468°E\n    test 556 Equidistant 20: 0.00370135 (% of radius)\n    test 557 Equidistant 25: 24.7603°S, 030.5908°W, 24.7603°N, 030.5908°E\n    test 558 Equidistant 25: 0.00383987 (% of radius)\n    test 559 Equidistant 30: 29.2359°S, 040.2625°W, 29.2359°N, 040.2625°E\n    test 560 Equidistant 30: 0.00393258 (% of radius)\n    test 561 Equidistant 35: 33.0487°S, 052.585°W, 33.0487°N, 052.585°E\n    test 562 Equidistant 35: 0.00390516 (% of radius)\n    test 563 Equidistant 40: 35.5123°S, 068.6794°W, 35.5123°N, 068.6794°E\n    test 564 Equidistant 40: 0.0036308 (% of radius)\n    test 565 Equidistant 45: 35.2644°S, 090.0019°W, 35.2644°N, 090.0019°E\n    test 566 Equidistant 45: 0.00288386 (% of radius)\n    test 567 Equidistant 50: 29.3392°S, 119.0221°W, 29.3392°N, 119.0221°E\n    test 568 Equidistant 50: 0.00271777 (% of radius)\n    test 569 Equidistant: center1 (LatLon(55°00′00.0″N, 055°00′00.0″W)), center2 (LatLon(55°00′00.0″S, 055°00′00.0″E)), radius1 (12231458.77080936) or radius2 (12231458.77080936): 'no convergence (222847)': tolerance (0.001) too low, antipodal or near-polar?  FAILED, KNOWN, expected 2-tuple\n    test 570 Equidistant: center1 (LatLon(60°00′00.0″N, 060°00′00.0″W)), center2 (LatLon(60°00′00.0″S, 060°00′00.0″E)), radius1 (13343409.568155663) or radius2 (13343409.568155663): 'no convergence (1.02385e+06)': tolerance (0.001) too low, antipodal or near-polar?  FAILED, KNOWN, expected 2-tuple\n    test 571 Equidistant: center1 (LatLon(65°00′00.0″N, 065°00′00.0″W)), center2 (LatLon(65°00′00.0″S, 065°00′00.0″E)), radius1 (14455360.36550197) or radius2 (14455360.36550197): 'no convergence (1.55077e+06)': tolerance (0.001) too low, antipodal or near-polar?  FAILED, KNOWN, expected 2-tuple\n    test 572 Equidistant: 41.640305°S, 044.604763°W Random +/- 45\n    test 573 Equidistant: 41.21614°S, 044.719962°W, 26.30349°S, 043.763854°E  d 48082.8 meter (iteration 5)\n    test 574 Equidistant: 41.364528°S, 044.600902°W, 75.852443°N, 022.429929°W  d 30630.5 meter (iteration 4)\n    test 575 Equidistant: 41.309264°S, 044.605114°W, 74.788642°N, 067.794611°E  d 36766.4 meter (iteration 5)\n    test 576 Equidistant: 41.325491°S, 044.572653°W, 08.520146°N, 091.145279°E  d 35066.9 meter (iteration 4)\n    test 577 Equidistant: 41.51424°S, 044.67063°W, 05.341036°N, 000.046509°W  d 15040.4 meter (iteration 5)\n    test 578 Equidistant: 41.378109°S, 044.535484°W, 54.529885°S, 014.466616°W  d 29689.2 meter (iteration 5)\n    test 579 Equidistant: 41.258792°S, 044.958166°W, 45.294893°S, 036.953258°W  d 51647.1 meter (iteration 5)\n    test 580 Equidistant: 41.474608°S, 044.378996°W, 14.039983°N, 077.102451°W  d 26332.4 meter (iteration 5)\n    test 581 Equidistant: 41.372896°S, 044.507713°W, 35.052803°N, 085.581451°W  d 30784.8 meter (iteration 4)\n    test 582 Equidistant: 41.255642°S, 044.648335°W, 52.133257°S, 052.47751°E  d 42876.6 meter (iteration 5)\n    test 583 Equidistant: 41.313791°S, 044.837546°W, 20.476776°S, 017.326615°E  d 41147.2 meter (iteration 5)\n    test 584 Equidistant: 42.786608°S, 042.897884°W, 35.825239°S, 050.119469°W  d 189933 meter (iteration 8)\n    test 585 Equidistant: d (189933): over  FAILED, KNOWN, expected d < 99999 m\n\n    testVincenty(pygeodesy.ellipsoidalVincenty, 25.05.26, datum='WGS84')\n    test 586 distanceTo: 866455.43292\n    test 587 toDatum: OSGB36\n    test 588 ValueError2: Ellipsoid 'Airy1830': incompatible with Ellipsoid 'WGS84'\n    test 589 isEllipsoidal: True\n    test 590 isSpherical: False\n    test 591 epsilon: 1e-12\n    test 592 iterations: 200\n    test 593 copy: True\n    test 594 isEllipsoidal: True\n    test 595 isSpherical: False\n    test 596 copy: 37°57′03.7203″S, 144°25′29.5244″E\n    test 597 epsilon: 2.220446049250e-16\n    test 598 iterations: 400\n    test 599 iteration: None\n\n    testKarneyVincenty(pygeodesy.ellipsoidalVincenty, 25.05.26, datum='WGS84')\n    test 600 coincident: 0.0\n    test 601 coincident: 0.0, 0.0, 0.0\n    test 602 destination: 37.6528°S, 143.9265°E\n    test 603 destination: True\n    test 604 destination2: 37.652821°S, 143.926496°E, 307.1736°NW\n    test 605 destination2: True\n    test 606 finalBearingOn: 307.1736°, 307°10′25.07″NW\n    test 607 distanceTo: 969954.166\n    test 608 distanceTo3: 969954.166314, 9.141877, 11.29722\n    test 609 distanceTo2: 972708.16174, 11.22502\n    test 610 initialBearingTo: 9.1419°, 9°08′30.76″N\n    test 611 destination: 58.64402°N, 003.07009°W\n    test 612 finalBearingTo: 11.2972°, 11°17′49.99″NNE\n    test 613 finalBearingOn: 11.2972°, 11°17′49.99″NNE\n    test 614 distanceTo: 404607.806\n    test 615 distanceTo3: 404607.805988, 156.11064, 157.8345\n    test 616 distanceTo2: 402574.597287, 157.726344\n    test 617 initialBearingTo: 156.1106°, 156°06′38.31″SSE\n    test 618 destination: 48.857°N, 002.351°E\n    test 619 finalBearingTo: 157.8345°, 157°50′04.2″SSE\n    test 620 finalBearingOn: 157.8345°, 157°50′04.2″SSE\n    test 621 distanceTo: 54973.295\n    test 622 distanceTo3: 54973.29527, 233.13008, 232.82461\n    test 623 distanceTo2: 54903.41209, 232.9209\n    test 624 initialBearingTo: 233.1301°, 233°07′48.28″SW\n    test 625 destination: 37.6528°N, 143.9265°E\n    test 626 finalBearingTo: 232.8246°, 232°49′28.59″SW\n    test 627 finalBearingOn: 232.8246°, 232°49′28.59″SW\n    test 628 distanceToMP: 298396.057\n    test 629 distanceToSM: 185.415\n    test 630 distanceToMP: 111319.491\n    test 631 distanceToMP: 110574.389  FAILED, KNOWN, expected 110574.361\n    test 632 distanceToKW: 222638.982\n    test 633 distanceToKW: 111319.491\n    test 634 distanceTo3: 54972.271\n    test 635 distanceTo3: 306°52′05.37″\n    test 636 distanceTo3: 307°10′25.07″\n    test 637 distanceTo2: 54902.390\n    test 638 distanceTo2: 307°04′38.41″\n\n    testKarneyVincentyError(pygeodesy.ellipsoidalVincenty, 25.05.26, datum='WGS84')\n    test 639 distanceTo/antipodal (182): 19936288.579\n    test 640 distanceTo/VincentyError (182): no convergence (0.00746541): epsilon (1e-12) and iterations (200), LatLon(00°00′00.0″N, 000°00′00.0″E) to LatLon(00°30′00.0″N, 179°42′00.0″E)  FAILED, KNOWN, expected no convergence: ...\n    test 641 initialBearingTo/VincentyError (182): no convergence (0.00746541): epsilon (1e-12) and iterations (200), LatLon(00°00′00.0″N, 000°00′00.0″E) to LatLon(00°30′00.0″N, 179°42′00.0″E)  FAILED, KNOWN, expected no convergence: ...\n    test 642 finalBearingTo/VincentyError (182): no convergence (0.00746541): epsilon (1e-12) and iterations (200), LatLon(00°00′00.0″N, 000°00′00.0″E) to LatLon(00°30′00.0″N, 179°42′00.0″E)  FAILED, KNOWN, expected no convergence: ...\n    test 643 distanceTo/equatorial (182): ambiguous: LatLon(00°00′00.0″N, 000°00′00.0″E) antipodal to LatLon(00°00′00.0″N, 180°00′00.0″E)  FAILED, KNOWN, expected ambiguous, ...\n    test 644 initialBearingTo/equatorial (182): ambiguous: LatLon(00°00′00.0″N, 000°00′00.0″E) antipodal to LatLon(00°00′00.0″N, 180°00′00.0″E)  FAILED, KNOWN, expected ambiguous, ...\n    test 645 distanceTo/coincident (5): 111319.491\n    test 646 distanceTo/meridional (1): 10001965.729\n    test 647 initialBearingTo/meridional (1): 180.0\n    test 648 distanceTo/coincident (1): 0.0\n    test 649 initialBearingTo/coincident (1): 0.0\n    test 650 finalBearingTo/coincident (1): 0.0\n    test 651 destination/coincident (1): 50.06632°N, 005.71475°W\n    test 652 distanceTo/anti-meridian (4): 10825924.1\n    test 653 distanceTo/quadrants (5): 4015703.02\n    test 654 distanceTo/quadrants (5): 4015703.02\n    test 655 distanceTo/quadrants (5): 4015703.02\n    test 656 distanceTo/quadrants (5): 4015703.02\n    test 657 distanceTo/quadrants (5): 4015703.02\n    test 658 distanceTo/quadrants (5): 4015703.02\n    test 659 distanceTo/quadrants (5): 4015703.02\n    test 660 distanceTo/quadrants (5): 4015703.02\n    test 661 distanceTo/quadrants (5): 4015703.02\n    test 662 distanceTo/quadrants (5): 4015703.02\n    test 663 distanceTo/quadrants (5): 4015703.02\n    test 664 distanceTo/quadrants (5): 4015703.02\n    test 665 distanceTo/quadrants (5): 4015703.02\n    test 666 distanceTo/quadrants (5): 4015703.02\n    test 667 distanceTo/quadrants (5): 4015703.02\n    test 668 distanceTo/quadrants (5): 4015703.02\n\n    testVincenty(pygeodesy.ellipsoidalVincenty, 25.05.26, datum='NAD83')\n    test 669 distanceTo: 866455.43292\n    test 670 toDatum: OSGB36\n    test 671 ValueError2: Ellipsoid 'Airy1830': incompatible with Ellipsoid 'GRS80'\n    test 672 isEllipsoidal: True\n    test 673 isSpherical: False\n    test 674 epsilon: 1e-12\n    test 675 iterations: 200\n    test 676 copy: True\n    test 677 isEllipsoidal: True\n    test 678 isSpherical: False\n    test 679 copy: 37°57′03.7203″S, 144°25′29.5244″E\n    test 680 epsilon: 2.220446049250e-16\n    test 681 iterations: 400\n    test 682 iteration: None\n\n    testKarneyVincenty(pygeodesy.ellipsoidalVincenty, 25.05.26, datum='NAD83')\n    test 683 coincident: 0.0\n    test 684 coincident: 0.0, 0.0, 0.0\n    test 685 destination: 37.6528°S, 143.9265°E\n    test 686 destination: True\n    test 687 destination2: 37.652821°S, 143.926496°E, 307.1736°NW\n    test 688 destination2: True\n    test 689 finalBearingOn: 307.1736°, 307°10′25.07″NW\n    test 690 distanceTo: 969954.166\n    test 691 distanceTo3: 969954.166314, 9.141877, 11.29722\n    test 692 distanceTo2: 972708.16174, 11.22502\n    test 693 initialBearingTo: 9.1419°, 9°08′30.76″N\n    test 694 destination: 58.64402°N, 003.07009°W\n    test 695 finalBearingTo: 11.2972°, 11°17′49.99″NNE\n    test 696 finalBearingOn: 11.2972°, 11°17′49.99″NNE\n    test 697 distanceTo: 404607.806\n    test 698 distanceTo3: 404607.805988, 156.11064, 157.8345\n    test 699 distanceTo2: 402574.597287, 157.726344\n    test 700 initialBearingTo: 156.1106°, 156°06′38.31″SSE\n    test 701 destination: 48.857°N, 002.351°E\n    test 702 finalBearingTo: 157.8345°, 157°50′04.2″SSE\n    test 703 finalBearingOn: 157.8345°, 157°50′04.2″SSE\n    test 704 distanceTo: 54973.295\n    test 705 distanceTo3: 54973.29527, 233.13008, 232.82461\n    test 706 distanceTo2: 54903.41209, 232.9209\n    test 707 initialBearingTo: 233.1301°, 233°07′48.28″SW\n    test 708 destination: 37.6528°N, 143.9265°E\n    test 709 finalBearingTo: 232.8246°, 232°49′28.59″SW\n    test 710 finalBearingOn: 232.8246°, 232°49′28.59″SW\n    test 711 distanceToMP: 298396.057\n    test 712 distanceToSM: 185.415\n    test 713 distanceToMP: 111319.491\n    test 714 distanceToMP: 110574.389  FAILED, KNOWN, expected 110574.361\n    test 715 distanceToKW: 222638.982\n    test 716 distanceToKW: 111319.491\n    test 717 distanceTo3: 54972.271\n    test 718 distanceTo3: 306°52′05.37″\n    test 719 distanceTo3: 307°10′25.07″\n    test 720 distanceTo2: 54902.390\n    test 721 distanceTo2: 307°04′38.41″\n\n    testKarneyVincentyError(pygeodesy.ellipsoidalVincenty, 25.05.26, datum='NAD83')\n    test 722 distanceTo/antipodal (182): 19936288.579\n    test 723 distanceTo/VincentyError (182): no convergence (0.00746541): epsilon (1e-12) and iterations (200), LatLon(00°00′00.0″N, 000°00′00.0″E) to LatLon(00°30′00.0″N, 179°42′00.0″E)  FAILED, KNOWN, expected no convergence: ...\n    test 724 initialBearingTo/VincentyError (182): no convergence (0.00746541): epsilon (1e-12) and iterations (200), LatLon(00°00′00.0″N, 000°00′00.0″E) to LatLon(00°30′00.0″N, 179°42′00.0″E)  FAILED, KNOWN, expected no convergence: ...\n    test 725 finalBearingTo/VincentyError (182): no convergence (0.00746541): epsilon (1e-12) and iterations (200), LatLon(00°00′00.0″N, 000°00′00.0″E) to LatLon(00°30′00.0″N, 179°42′00.0″E)  FAILED, KNOWN, expected no convergence: ...\n    test 726 distanceTo/equatorial (182): ambiguous: LatLon(00°00′00.0″N, 000°00′00.0″E) antipodal to LatLon(00°00′00.0″N, 180°00′00.0″E)  FAILED, KNOWN, expected ambiguous, ...\n    test 727 initialBearingTo/equatorial (182): ambiguous: LatLon(00°00′00.0″N, 000°00′00.0″E) antipodal to LatLon(00°00′00.0″N, 180°00′00.0″E)  FAILED, KNOWN, expected ambiguous, ...\n    test 728 distanceTo/coincident (5): 111319.491\n    test 729 distanceTo/meridional (1): 10001965.729\n    test 730 initialBearingTo/meridional (1): 180.0\n    test 731 distanceTo/coincident (1): 0.0\n    test 732 initialBearingTo/coincident (1): 0.0\n    test 733 finalBearingTo/coincident (1): 0.0\n    test 734 destination/coincident (1): 50.06632°N, 005.71475°W\n    test 735 distanceTo/anti-meridian (4): 10825924.1\n    test 736 distanceTo/quadrants (5): 4015703.02\n    test 737 distanceTo/quadrants (5): 4015703.02\n    test 738 distanceTo/quadrants (5): 4015703.02\n    test 739 distanceTo/quadrants (5): 4015703.02\n    test 740 distanceTo/quadrants (5): 4015703.02\n    test 741 distanceTo/quadrants (5): 4015703.02\n    test 742 distanceTo/quadrants (5): 4015703.02\n    test 743 distanceTo/quadrants (5): 4015703.02\n    test 744 distanceTo/quadrants (5): 4015703.02\n    test 745 distanceTo/quadrants (5): 4015703.02\n    test 746 distanceTo/quadrants (5): 4015703.02\n    test 747 distanceTo/quadrants (5): 4015703.02\n    test 748 distanceTo/quadrants (5): 4015703.02\n    test 749 distanceTo/quadrants (5): 4015703.02\n    test 750 distanceTo/quadrants (5): 4015703.02\n    test 751 distanceTo/quadrants (5): 4015703.02\n\n    testEllipsoidal(pygeodesy.ellipsoidalKarney, 25.05.27)\n    test 752 isEllipsoidal: True\n    test 753 isSpherical: False\n    test 754 isEllipsoidal: True\n    test 755 isSpherical: False\n    test 756 toDatum: 51.477284°N, 000.00002°E, -45.91m\n    test 757 toDatum: 51.4773°N, 000.0°E, -45.91m\n    test 758 toDatum: 51.4778°N, 000.0016°W\n    test 759 sat: 82.219069°N, 059.719736°E, -6353120.97m\n    test 760 dop: 51.998889°N, 004.373333°E, +134.64m\n    test 761 distance: 3802238.50499  FAILED, KNOWN, expected 3802238.504989\n    test 762 neareston8: (LatLon(45°00′00.0″N, 001°00′00.0″E), 4874369.98942, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E), 0.0, 0.0)\n    test 763 iteration: 0\n    test 764 neareston8: (LatLon(45°30′03.93″N, 020°00′00.0″E), 39078.779519, 1.501069, 2, LatLon(45°00′00.0″N, 020°00′00.0″E), LatLon(46°00′00.0″N, 020°00′00.0″E), 270.356041, 269.999412)\n    test 765 iteration: 1\n    test 766 intersecant2: 1.394e-14% 60 LatLon(03°18′54.69″S, 023°52′08.48″E)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 767 intersecant2: 4.183e-14% 60 LatLon(22°22′23.65″S, 007°55′54.49″E)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 768 intersecant2: 1.813e-13% 57 LatLon(10°39′24.95″N, 034°45′48.18″W)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 769 intersecant2: 1.673e-13% 57 LatLon(25°11′09.14″S, 005°10′35.44″W)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 770 intersecant2: 4.183e-14% 61 LatLon(10°14′21.91″S, 021°00′17.05″E)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 771 intersecant2: 5.577e-14% 61 LatLon(20°55′17.31″S, 010°40′21.43″E)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 772 intersecant2: center (LatLon(05°00′00.0″N, 005°00′00.0″W)), circle (3339584), end (LatLon(./test/testLatLon.py:276: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.ellipsoidalKarney.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', p.cosineAndoyerLambertTo(q), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:277: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.ellipsoidalKarney.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', q.cosineAndoyerLambertTo(p), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:279: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.ellipsoidalKarney.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', p.cosineForsytheAndoyerLambertTo(q), '124801.098' if Sph else '125205.965', fmt='%.3f')\n./test/testLatLon.py:280: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.ellipsoidalKarney.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', q.cosineForsytheAndoyerLambertTo(p), '124801.098' if Sph else '125205.965', fmt='%.3f')\n15°00′00.0″N, 045°00′00.0″E)), exact (False), start (LatLon(45°00′00.0″S, 015°00′00.0″W)) or wrap (False): 'too distant (3.69e+06) plumb to (16\\xc2\\xb056\\xe2\\x80\\xb245.9\\xe2\\x80\\xb3S, 020\\xc2\\xb017\\xe2\\x80\\xb202.98\\xe2\\x80\\xb3E)'\n    test 773 intersecant2: 2.092e-13% 55 LatLon(18°02′42.97″N, 022°41′08.39″E)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 774 intersecant2: 1.813e-13% 55 LatLon(25°06′22.99″S, 002°45′14.06″W)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 775 intersecant2: center (LatLon(05°00′00.0″N, 005°00′00.0″W)), circle (3339584), end (175.5200997140868), exact (False), start (LatLon(25°06′22.99″S, 002°45′14.06″W)) or wrap (False): 'too distant (1.1e+07) plumb to (80\\xc2\\xb053\\xe2\\x80\\xb200.07\\xe2\\x80\\xb3S, 122\\xc2\\xb024\\xe2\\x80\\xb203.77\\xe2\\x80\\xb3W)'\n\n    testLatLon(pygeodesy.ellipsoidalKarney, 25.05.27)\n    test 776 isEllipsoidal: True\n    test 777 isSpherical: False\n    test 778 lat/lonDMS: 52.20472°N, 000.14056°E\n    test 779 lat/lonDMS F_DM: 52°12.283′N, 000°08.434′E\n    test 780 lat/lonDMS F_DM: 52°12.2832′N, 000°08.4336′E\n    test 781 lat/lonDMS F_DMS: 52°12′17″N, 000°08′26″E\n    test 782 lat/lonDMS F_DMS: 52°12′17.0″N, 000°08′26.0″E\n    test 783 lat/lonDMS F_RAD: 0.911144N, 0.002453E\n    test 784 isequalTo: True\n    test 785 isequalTo: True\n    test 786 latlon2: 52.20472, 0.14056\n    test 787 latlon2: 52.2047, 0.1406\n    test 788 latlon2: 52.205, 0.141\n    test 789 latlon2: 52.2, 0.14\n    test 790 latlon2: 52.2, 0.1\n    test 791 latlon2: 52.0, 0.0\n    test 792 chordTo: 12029263.15\n    test 793 chordTo: 12029049.69\n    test 794 initialBearingTo: 156.1106\n    test 795 initialBearingTo: 65.9335\n    test 796 initialBearingTo: 0.0\n    test 797 initialBearingTo: 180.0\n    test 798 finalBearingTo: 157.8345\n    test 799 finalBearingTo: 93.9034\n    test 800 bearingTo2: 156.1106, 157.8345\n    test 801 ispolar: True\n    test 802 copy: True\n    test 803 __eq__: True\n    test 804 __ne__: False\n    test 805 equirectangularTo: 404329.56\n    test 806 distanceTo: 404607.805988\n    test 807 distanceTo: 404607.805988\n    test 808 distanceTo: 3981601\n    test 809 antipodal: False\n    test 810 distanceTo dateline: 19959679.267\n    test 811 distanceTo unrolled: 19959679.267\n    test 812 antipodal: False\n    test 813 distanceTo dateline: 9513998\n    test 814 distanceTo unrolled: 9513998\n    test 815 distanceTo: 18012714.66\n    test 816 distanceTo: 20003931.46\n    test 817 distanceTo3 dateline: 19959679.2674, 161.0677, 18.8252\n    test 818 distanceTo3 dateline: 9513997.9901, 42.9164, 138.8903\n    test 819 distanceTo3 dateline: 19959679.2674, 161.0677, 18.8252\n    test 820 distanceTo3 dateline: 9513997.9901, 42.9164, 138.8903\n    test 821 intermediateTo: 51.372275°N, 000.707253°E\n    test 822 intermediateTo: True\n    test 823 intermediateTo: 404607.806\n    test 824 intermediateTo+5: 35.139582°N, 008.994368°E\n    test 825 intermediateTo+5: 5.000\n    test 826 intermediateTo-4: 64.894124°N, 013.705689°W\n    test 827 intermediateTo-4: 4.000\n    test 828 intermediateTo-h: 125.000\n    test 829 midpointTo: 50.536583°N, 001.274507°E\n    test 830 destination: 51.513526°N, 000.098038°W\n    test 831 destination: 51°30′49″N, 000°05′53″W\n    test 832 destination: 33°57′N, 118°24′W\n    test 833 destination: 33.950367°N, 118.399012°W\n    test 834 destination: 0.592546N, 2.066453W\n    test 835 destination: 32.11195529°N, 064.56074722°E  FAILED, KNOWN, expected 32.11195529°N, 063.95925278°E\n    test 836 neareston6: (LatLon(45°00′00.0″N, 001°00′00.0″E), 4755443.4294, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E))\n    test 837 neareston6: (LatLon(45°30′03.94″N, 002°00′00.0″E), 39078.729285, 1.501072, 2, LatLon(45°00′00.0″N, 002°00′00.0″E), LatLon(46°00′00.0″N, 002°00′00.0″E))\n    test 838 chordTo: 125203.963\n    test 839 cosineAndoyerLambertTo: 125205.962\n    test 840 cosineAndoyerLambertTo: 125205.962\n    test 841 cosineForsyheAndoyerLambertTo: 125205.965\n    test 842 cosineForsyheAndoyerLambertTo: 125205.965\n    test 843 cosineLawTo: 124801.098\n    test 844 cosineLawTo: 124801.098\n    test 845 equirectangularTo: 124804.754\n    test 846 equirectangularTo: 124804.754\n    test 847 euclideanTo: 130015.089\n    test 848 euclideanTo: 130015.089\n    test 849 flatLocalTo: 125209.633\n    test 850 flatLocalTo: 125209.633\n    test 851 flatPolarTo: 133663.257\n    test 852 flatPolarTo: 133663.257\n    test 853 hartzell: 53.3206°N, 001.7297°W\n    test 854 hartzell: 53.349541°N, 001.7297°W\n    test 855 height4: 1.04135197254e-09  FAILED, KNOWN, expected 0.0\n    test 856 height4: (3820333.9, -115367.0, 5097204.4, -6584.9)\n    test 857 height4: 53°19′14.2″N, 001°43′46.9″W\n    test 858 height4: 53°19′14.2″N, 001°43′46.9″W\n    test 859 haversineTo: 124801.098\n    test 860 haversineTo: 124801.098\n    test 861 hubenyTo: <bound method LatLon.flatLocalTo of LatLon(53°19′14.16″N, 001°43′46.92″W)>\n    test 862 hubenyTo: <bound method LatLon.flatLocalTo of LatLon(53°11′19.32″N, 000°08′00.24″E)>\n    test 863 thomasTo: 125206.188\n    test 864 thomasTo: 125206.188\n    test 865 vincentysTo: 124801.098\n    test 866 vincentysTo: 124801.098\n    test 867 isclockwise: False\n    test 868 isclockwise*: False\n    test 869 isclockwise: True\n    test 870 isclockwise*: True\n    test 871 isclockwise: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 872 isclockwise*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 873 isclockwise: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 874 isclockwise*: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 875 isconvex: False\n    test 876 isconvex*: False\n    test 877 isconvex: True\n    test 878 isconvex*: True\n    test 879 isconvex: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 880 isconvex*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 881 isenclosedBy1: True\n    test 882 isenclosedBy1*: True\n    test 883 isenclosedBy2: False\n    test 884 isenclosedBy2*: False\n    test 885 isenclosedBy3: False\n    test 886 isenclosedBy3*: False\n    test 887 isenclosedBy4: False\n    test 888 isenclosedBy4*: False\n    test 889 isenclosedBy5: False\n    test 890 isenclosedBy5*: False\n    test 891 isenclosedBy6: True\n    test 892 isenclosedBy6*: True\n    test 893 isenclosedBy7: True\n    test 894 isenclosedBy7*: True\n    test 895 isenclosedBy-CCW: True\n    test 896 isenclosedBy-CW : True\n    test 897 isenclosedBy-CCW: True\n    test 898 initialBearingTo: 102.392291\n    test 899 compassAngleTo: 100.017\n    test 900 compassAngleTo: 105.599\n    test 901 initialBearingTo: 288.676039\n    test 902 compassAngleTo: 280.017\n    test 903 compassAngleTo: 285.599\n    test 904 equirectangularTo: 592.185\n    test 905 distanceTo: 593.571\n    test 906 bearingTo: 0.0\n    test 907 compassAngleTo: 0.0\n    test 908 bearingTo: 45.2  FAILED, KNOWN, expected 45.0\n    test 909 compassAngleTo: 45.0\n    test 910 bearingTo: 90.0\n    test 911 compassAngleTo: 90.0\n    test 912 bearingTo: 180.0\n    test 913 compassAngleTo: 180.0\n    test 914 bearingTo: 225.2  FAILED, KNOWN, expected 225.0\n    test 915 compassAngleTo: 225.0\n    test 916 bearingTo: 314.8  FAILED, KNOWN, expected 315.0\n    test 917 compassAngleTo: 315.0\n    test 918 bearingTo: 270.0\n    test 919 compassAngleTo: 270.0\n    test 920 bearingTo: 0.0  FAILED, KNOWN, expected 359.4\n    test 921 compassAngleTo: 359.4\n    test 922 latlon2: (53.0, 1.0)\n    test 923 philam2: (0.93, 0.02)\n    test 924 bearingTo: 31\n    test 925 compassAngleTo: 31\n    test 926 compassAngleTo: 45\n\n    test 927 boundsOf: <class 'pygeodesy.namedTuples.Bounds2Tuple'>\n    test 928 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 929 latlon2: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 930 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 931 isequalTo: <type 'bool'>\n    test 932 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 933 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 934 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 935 xyz3: <type 'tuple'>\n    test 936 xyzh: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 937 compassAngleTo: <type 'float'>\n    test 938 cosineLawTo: <type 'float'>\n    test 939 euclideanTo: <type 'float'>\n    test 940 flatLocalTo: <type 'float'>\n    test 941 flatPolarTo: <type 'float'>\n    test 942 haversineTo: <type 'float'>\n    test 943 hubenyTo: <type 'float'>\n    test 944 vincentysTo: <type 'float'>\n    test 945 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 946 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 947 toLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 948 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 949 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 950 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 951 toNvector: (0.615661, 0.0, 0.788011, 0)\n    test 952 toVector: (3934960.466675, 0.0, 5002803.345483)\n    test 953 toVector3d: (0.61823, 0.0, 0.786)\n\n    test 954 trilaterate5 (pygeodesy.ellipsoidalKarney) .min: 305.091\n    test 955 trilaterate5 (pygeodesy.ellipsoidalKarney) .point: 42.66933643°N, 002.48620262°E\n    test 956 trilaterate5 (pygeodesy.ellipsoidalKarney) .max: 1592.545\n    test 957 trilaterate5 (pygeodesy.ellipsoidalKarney) .point: 42.65141232°N, 002.46816989°E\n    test 958 trilaterate5 (pygeodesy.ellipsoidalKarney) .n: 3\n    test 959 trilaterate5 (pygeodesy.ellipsoidalKarney) .min: 127.229\n    test 960 trilaterate5 (pygeodesy.ellipsoidalKarney) .max: 152.612\n    test 961 trilaterate5 (pygeodesy.ellipsoidalKarney) .point: 42.67815375°N, 002.49950041°E\n    test 962 trilaterate5 (pygeodesy.ellipsoidalKarney) .n: 2\n    test 963 trilaterate5 (pygeodesy.ellipsoidalKarney) .min: 2400.293\n    test 964 trilaterate5 (pygeodesy.ellipsoidalKarney) .max: 2400.293\n    test 965 trilaterate5 (pygeodesy.ellipsoidalKarney) .point: 42.66128984°N, 002.47973818°E\n    test 966 trilaterate5 (pygeodesy.ellipsoidalKarney) .min- is .maxPoint: True\n    test 967 trilaterate5 (pygeodesy.ellipsoidalKarney) .n: 1\n    test 968 trilaterate5 (pygeodesy.ellipsoidalKarney) .min: 1343.743\n    test 969 trilaterate5 (pygeodesy.ellipsoidalKarney) .point: 42.69131964°N, 002.50112167°E\n    test 970 trilaterate5 (pygeodesy.ellipsoidalKarney) .max: 1445.554\n    test 971 trilaterate5 (pygeodesy.ellipsoidalKarney) .point: 42.67815375°N, 002.49950041°E\n    test 972 trilaterate5 (pygeodesy.ellipsoidalKarney) .n: 2\n    test 973 radii11: Radii11Tuple(rA=7244.792747, rB=1828.106695, rC=2.25502, cR=57792.067128, rIn=57.366968, riS=2.087668, roS=2.443334, a=1830.361715, b=7247.047766, c=9072.899442, s=9075.154461)\n    test 974 circum3 (pygeodesy.ellipsoidalKarney) .radius: 57792.067\n    test 975 circum3 (pygeodesy.ellipsoidalKarney) .center: 43.053532°N, 002.943255°E, -261.66m\n    test 976 circum3 (pygeodesy.ellipsoidalKarney) .deltas: (-0.0, 0.0, 11.858)  FAILED, KNOWN, expected (0.0, 0.0, 11.383)\n    test 977 circum3 (pygeodesy.ellipsoidalKarney) .d1: 57792.858\n    test 978 circum3 (pygeodesy.ellipsoidalKarney) .d2: 57792.859\n    test 979 circum3 (pygeodesy.ellipsoidalKarney) .d3: 57792.859\n    test 980 circum3 (pygeodesy.ellipsoidalKarney) .datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 981 circum3 (pygeodesy.ellipsoidalKarney) .Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n\n    test 982 radii11: Radii11Tuple(rA=7244.792747, rB=1828.106695, rC=2.25502, cR=57792.067128, rIn=57.366968, riS=2.087668, roS=2.443334, a=1830.361715, b=7247.047766, c=9072.899442, s=9075.154461)\n    test 983 circum4 (pygeodesy.ellipsoidalKarney) .radius: 3184256.748\n    test 984 circum4 (pygeodesy.ellipsoidalKarney) .center: 43.054367°N, 002.942573°E, -3183993.92m\n    test 985 circum4 (pygeodesy.ellipsoidalKarney) .rank: 3\n    test 986 circum4 (pygeodesy.ellipsoidalKarney) .residuals: ()\n    test 987 circum4 (pygeodesy.ellipsoidalKarney) .d1: 57818.033\n    test 988 circum4 (pygeodesy.ellipsoidalKarney) .d2: 57834.176\n    test 989 circum4 (pygeodesy.ellipsoidalKarney) .d3: 57830.992\n    test 990 circum4 (pygeodesy.ellipsoidalKarney) .datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 991 circum4 (pygeodesy.ellipsoidalKarney) .Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 992 radii11: Radii11Tuple(rA=327537.482637, rB=776914.262482, rC=784245.052526, cR=780602.180901, rIn=325058.721103, riS=84975.664195, roS=INF, a=1561159.315008, b=1111782.535163, c=1104451.745119, s=1888696.797645)\n    test 993 circin6 (pygeodesy.ellipsoidalKarney) .rB+rC: 1561159.315\n    test 994 circin6 (pygeodesy.ellipsoidalKarney) .rC+pA: 1111782.535\n    test 995 circin6 (pygeodesy.ellipsoidalKarney) .rA+rB: 1104451.745\n    test 996 circin6 (pygeodesy.ellipsoidalKarney) .radius: 325058.721\n    test 997 circin6 (pygeodesy.ellipsoidalKarney) .center: 02.948531°N, 002.932537°E, -40041.19m\n    test 998 circin6 (pygeodesy.ellipsoidalKarney) .deltas: (0.0, 0.0, 0.267132)  FAILED, KNOWN, expected (0.0, 0.0, 0.090491)\n    test 999 circin6 (pygeodesy.ellipsoidalKarney) .cA: 05.04314°N, 005.014578°E, -48104.09m\n    test 1000 circin6 (pygeodesy.ellipsoidalKarney) .cB: 00.0°N, 002.941713°E, -20168.62m\n    test 1001 circin6 (pygeodesy.ellipsoidalKarney) .cC: 02.961566°N, 000.0°E, -20113.46m\n    test 1002 circin6 (pygeodesy.ellipsoidalKarney) .dA: 327263.596\n    test 1003 circin6 (pygeodesy.ellipsoidalKarney) .dB: 326036.153\n    test 1004 circin6 (pygeodesy.ellipsoidalKarney) .dC: 326020.432\n\n    test 1005 area cw/ccw: 1.0\n\n    testNOAA(pygeodesy.ellipsoidalKarney, 25.05.27)\n    test 1006 NOAAexample1: 191872.1190, 249 03 16.4237, 67 59 11.1619\n    test 1007 NOAAexample2: 182009.1679, 254 42 44.6439, 73 09 21.3315\n    test 1008 NOAAexample3: 123456.7891, 245 00 34.7001, 64 20 24.6864\n    test 1009 NOAAexample4: 145239.0603, 114 29 26.9586, 295 21 32.6566\n\n    testIntersection3(pygeodesy.ellipsoidalKarney, 25.05.27)\n    test 1010 (30, 17): (LatLon(30°52′03.1″N, 015°30′38.41″E), 0, 0)\n    test 1011 (30, 17): (LatLon(30°52′03.1″N, 015°30′38.41″E), -1, 0)\n    test 1012 (-1,  3): (LatLon(01°34′52.49″N, 006°00′51.83″E), -1, -2)\n    test 1013 (-1,  3): (LatLon(01°34′52.49″N, 006°00′51.83″E), -1, 2)\n    test 1014 (65, 32): (LatLon(56°58′26.51″N, 032°00′00.0″E), 1, 0)\n    test 1015 (65, 32): (LatLon(56°58′26.51″N, 032°00′00.0″E), 1, 2)\n    test 1016 (-2, 17): <class 'pygeodesy.errors.IntersectionError'>\n    test 1017 (49, 25): (LatLon(49°00′00.0″N, 025°00′00.0″E), 0, -2)  FAILED, KNOWN, expected (LatLon(49°00′00.0″N, 025°00′00.0″E), 0, 0)\n    test 1018 #58: (LatLon(01°54′25.65″S, 005°37′48.76″E), 1, -2)\n    test 1019 #58: <class 'pygeodesy.errors.IntersectionError'>\n\n    testIntersections2(pygeodesy.ellipsoidalKarney, 25.05.27)\n    test 1020 EquidistantKarney: 36.9879°N, 088.1564°W, 38.2441°N, 092.3835°W\n    test 1021 EquidistantKarney: 36.9879°N, 088.1564°W, 38.2441°N, 092.3835°W\n    test 1022 EquidistantKarney: 00.0°N, 035.3478°W, 00.0°S, 035.3478°E\n    test 1023 EquidistantKarney: 1.63715 (% of radius)\n    test 1024 EquidistantKarney: 22.657°N, 000.0°W, 22.657°S, 000.0°W  FAILED, KNOWN, expected 22.657°N, 000.0°E, 22.657°S, 000.0°E\n    test 1025 EquidistantKarney: 1.30663 (% of radius)\n    test 1026 EquidistantKarney: 29.4898°N, 040.1785°W, 29.4898°S, 040.1785°E\n    test 1027 EquidistantKarney: 1.31396 (% of radius)\n    test 1028 EquidistantKarney: 02.7402°S, 044.885°E, 02.7402°N, 044.885°E\n    test 1029 EquidistantKarney: 1.83268 (% of radius)\n    test 1030 EquidistantKarney 5: 05.0558°S, 005.0271°W, 05.0558°N, 005.0271°E\n    test 1031 EquidistantKarney 5: 2.09389e-16 (% of radius)\n    test 1032 EquidistantKarney 10: 10.1081°S, 010.2901°W, 10.1081°N./pygeodesy/ellipsoidalKarney.py:347: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return _polygon(datum.ellipsoid.geodesic, points, closed, True, wrap, False)\n./pygeodesy/ellipsoidalKarney.py:266: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  a = _polygon(datum.ellipsoid.geodesic, points, True, False, wrap, polar)\n, 010.2901°E\n    test 1033 EquidistantKarney 10: 6.28168e-16 (% of radius)\n    test 1034 EquidistantKarney 15: 15.1433°S, 016.0531°W, 15.1433°N, 016.0531°E\n    test 1035 EquidistantKarney 15: 4.18779e-16 (% of radius)\n    test 1036 EquidistantKarney 20: 20.1241°S, 022.6411°W, 20.1241°N, 022.6411°E\n    test 1037 EquidistantKarney 20: 2.09389e-16 (% of radius)\n    test 1038 EquidistantKarney 25: 24.9655°S, 030.4846°W, 24.9655°N, 030.4846°E\n    test 1039 EquidistantKarney 25: 1.67511e-16 (% of radius)\n    test 1040 EquidistantKarney 30: 29.4898°S, 040.1785°W, 29.4898°N, 040.1785°E\n    test 1041 EquidistantKarney 30: 4.18779e-16 (% of radius)\n    test 1042 EquidistantKarney 35: 33.3405°S, 052.5516°W, 33.3405°N, 052.5516°E\n    test 1043 EquidistantKarney 35: 1.19651e-16 (% of radius)\n    test 1044 EquidistantKarney 40: 35.8146°S, 068.7149°W, 35.8146°N, 068.7149°E\n    test 1045 EquidistantKarney 40: 4.18779e-16 (% of radius)\n    test 1046 EquidistantKarney 45: 35.5368°S, 090.0616°W, 35.5368°N, 090.0616°E\n    test 1047 EquidistantKarney 45: 1.86124e-16 (% of radius)\n    test 1048 EquidistantKarney 50: 29.5972°S, 118.8695°W, 29.5972°N, 118.8695°E\n    test 1049 EquidistantKarney 50: 1.67511e-16 (% of radius)\n    test 1050 EquidistantKarney: center1 (LatLon(55°00′00.0″N, 055°00′00.0″W)), center2 (LatLon(55°00′00.0″S, 055°00′00.0″E)), radius1 (12231458.77080936) or radius2 (12231458.77080936): 'no convergence (188568)': tolerance (0.001) too low, antipodal or near-polar?  FAILED, KNOWN, expected 2-tuple\n    test 1051 EquidistantKarney: center1 (LatLon(60°00′00.0″N, 060°00′00.0″W)), center2 (LatLon(60°00′00.0″S, 060°00′00.0″E)), radius1 (13343409.568155663) or radius2 (13343409.568155663): 'no convergence (1.01348e+06)': tolerance (0.001) too low, antipodal or near-polar?  FAILED, KNOWN, expected 2-tuple\n    test 1052 EquidistantKarney: center1 (LatLon(65°00′00.0″N, 065°00′00.0″W)), center2 (LatLon(65°00′00.0″S, 065°00′00.0″E)), radius1 (14455360.36550197) or radius2 (14455360.36550197): 'no convergence (1.55092e+06)': tolerance (0.001) too low, antipodal or near-polar?  FAILED, KNOWN, expected 2-tuple\n    test 1053 EquidistantKarney: 37.931126°N, 031.347334°E Random +/- 45\n    test 1054 EquidistantKarney: 37.931126°N, 031.347334°E, 53.06835°S, 125.908523°W  d 2.28005e-08 meter (iteration 3)\n    test 1055 EquidistantKarney: 37.931126°N, 031.347334°E, 17.337409°S, 022.772935°E  d 4.71579e-09 meter (iteration 3)\n    test 1056 EquidistantKarney: 37.931126°N, 031.347334°E, 20.10099°S, 062.99805°E  d 3.43569e-09 meter (iteration 3)\n    test 1057 EquidistantKarney: 37.931126°N, 031.347334°E, 56.941963°S, 054.506996°E  d 1.88741e-09 meter (iteration 3)\n    test 1058 EquidistantKarney: 37.931126°N, 031.347334°E, 38.130229°N, 036.246617°E  d 1.21811e-08 meter (iteration 5)\n    test 1059 EquidistantKarney: 37.931126°N, 031.347334°E, 20.191037°S, 046.410829°W  d 4.28558e-09 meter (iteration 3)\n    test 1060 EquidistantKarney: 37.931126°N, 031.347334°E, 33.850315°N, 038.835428°E  d 4.94731e-09 meter (iteration 3)\n    test 1061 EquidistantKarney: 37.931126°N, 031.347334°E, 48.767328°N, 058.459829°W  d 1.6384e-09 meter (iteration 3)\n    test 1062 EquidistantKarney: 37.931126°N, 031.347334°E, 33.110031°N, 035.147071°E  d 9.14128e-09 meter (iteration 3)\n    test 1063 EquidistantKarney: 37.931126°N, 031.347334°E, 23.782521°S, 080.313065°E  d 3.12335e-09 meter (iteration 3)\n    test 1064 EquidistantKarney: 37.931126°N, 031.347334°E, 10.390105°N, 020.530372°E  d 3.04534e-09 meter (iteration 3)\n    test 1065 EquidistantKarney: 37.931126°N, 031.347334°E, 08.300595°N, 028.062676°W  d 4.59541e-09 meter (iteration 3)\n\n    testKarney(pygeodesy.ellipsoidalKarney, 25.05.27, datum='WGS84')\n    test 1066 distanceTo: 866455.4329\n    test 1067 coincident: 0.0\n    test 1068 toDatum: OSGB36\n    test 1069 ValueError2: Ellipsoid 'Airy1830': incompatible with Ellipsoid 'WGS84'\n    test 1070 isEllipsoidal: True\n    test 1071 copy: True\n    test 1072 isEllipsoidal: True\n    test 1073 isSpherical: False\n    test 1074 copy: 37°57′03.7203″S, 144°25′29.5244″E\n\n    testKarneyVincenty(pygeodesy.ellipsoidalKarney, 25.05.27, datum='WGS84')\n    test 1075 coincident: 0.0\n    test 1076 coincident: 0.0, 0.0, 0.0\n    test 1077 destination: 37.6528°S, 143.9265°E\n    test 1078 destination: True\n    test 1079 destination2: 37.652821°S, 143.926496°E, 307.1736°NW\n    test 1080 destination2: True\n    test 1081 finalBearingOn: 307.1736°, 307°10′25.07″NW\n    test 1082 distanceTo: 969954.166\n    test 1083 distanceTo3: 969954.166314, 9.141877, 11.29722\n    test 1084 distanceTo2: 972708.16174, 11.22502\n    test 1085 initialBearingTo: 9.1419°, 9°08′30.76″N\n    test 1086 destination: 58.64402°N, 003.07009°W\n    test 1087 finalBearingTo: 11.2972°, 11°17′49.99″NNE\n    test 1088 finalBearingOn: 11.2972°, 11°17′49.99″NNE\n    test 1089 distanceTo: 404607.806\n    test 1090 distanceTo3: 404607.805988, 156.11064, 157.8345\n    test 1091 distanceTo2: 402574.597287, 157.726344\n    test 1092 initialBearingTo: 156.1106°, 156°06′38.31″SSE\n    test 1093 destination: 48.857°N, 002.351°E\n    test 1094 finalBearingTo: 157.8345°, 157°50′04.2″SSE\n    test 1095 finalBearingOn: 157.8345°, 157°50′04.2″SSE\n    test 1096 distanceTo: 54973.295\n    test 1097 distanceTo3: 54973.29527, 233.13008, 232.82461\n    test 1098 distanceTo2: 54903.41209, 232.9209\n    test 1099 initialBearingTo: 233.1301°, 233°07′48.28″SW\n    test 1100 destination: 37.6528°N, 143.9265°E\n    test 1101 finalBearingTo: 232.8246°, 232°49′28.59″SW\n    test 1102 finalBearingOn: 232.8246°, 232°49′28.59″SW\n    test 1103 distanceToMP: 298396.057\n    test 1104 distanceToSM: 185.415\n    test 1105 distanceToMP: 111319.491\n    test 1106 distanceToMP: 110574.389  FAILED, KNOWN, expected 110574.361\n    test 1107 distanceToKW: 222638.982\n    test 1108 distanceToKW: 111319.491\n    test 1109 distanceTo3: 54972.271\n    test 1110 distanceTo3: 306°52′05.37″\n    test 1111 distanceTo3: 307°10′25.07″\n    test 1112 distanceTo2: 54902.390\n    test 1113 distanceTo2: 307°04′38.41″\n\n    testKarneyVincentyError(pygeodesy.ellipsoidalKarney, 25.05.27, datum='WGS84')\n    test 1114 distanceTo/antipodal (None): 19936288.579\n    test 1115 distanceTo/VincentyError (None): 19944127.421\n    test 1116 initialBearingTo/VincentyError (None): 15.556883\n    test 1117 finalBearingTo/VincentyError (None): 164.442514\n    test 1118 distanceTo/equatorial (None): 20003931.46\n    test 1119 initialBearingTo/equatorial (None): 0.0\n    test 1120 distanceTo/coincident (None): 111319.491\n    test 1121 distanceTo/meridional (None): 10001965.729\n    test 1122 initialBearingTo/meridional (None): 180.0\n    test 1123 distanceTo/coincident (None): 0.0\n    test 1124 initialBearingTo/coincident (None): 180.0\n    test 1125 finalBearingTo/coincident (None): 180.0\n    test 1126 destination/coincident (None): 50.06632°N, 005.71475°W\n    test 1127 distanceTo/anti-meridian (None): 10825924.1\n    test 1128 distanceTo/quadrants (None): 4015703.02\n    test 1129 distanceTo/quadrants (None): 4015703.02\n    test 1130 distanceTo/quadrants (None): 4015703.02\n    test 1131 distanceTo/quadrants (None): 4015703.02\n    test 1132 distanceTo/quadrants (None): 4015703.02\n    test 1133 distanceTo/quadrants (None): 4015703.02\n    test 1134 distanceTo/quadrants (None): 4015703.02\n    test 1135 distanceTo/quadrants (None): 4015703.02\n    test 1136 distanceTo/quadrants (None): 4015703.02\n    test 1137 distanceTo/quadrants (None): 4015703.02\n    test 1138 distanceTo/quadrants (None): 4015703.02\n    test 1139 distanceTo/quadrants (None): 4015703.02\n    test 1140 distanceTo/quadrants (None): 4015703.02\n    test 1141 distanceTo/quadrants (None): 4015703.02\n    test 1142 distanceTo/quadrants (None): 4015703.02\n    test 1143 distanceTo/quadrants (None): 4015703.02\n\n    testKarney(pygeodesy.ellipsoidalKarney, 25.05.27, datum='NAD83')\n    test 1144 distanceTo: 866455.4329\n    test 1145 coincident: 0.0\n    test 1146 toDatum: OSGB36\n    test 1147 ValueError2: Ellipsoid 'Airy1830': incompatible with Ellipsoid 'GRS80'\n    test 1148 isEllipsoidal: True\n    test 1149 copy: True\n    test 1150 isEllipsoidal: True\n    test 1151 isSpherical: False\n    test 1152 copy: 37°57′03.7203″S, 144°25′29.5244″E\n\n    testKarneyVincenty(pygeodesy.ellipsoidalKarney, 25.05.27, datum='NAD83')\n    test 1153 coincident: 0.0\n    test 1154 coincident: 0.0, 0.0, 0.0\n    test 1155 destination: 37.6528°S, 143.9265°E\n    test 1156 destination: True\n    test 1157 destination2: 37.652821°S, 143.926496°E, 307.1736°NW\n    test 1158 destination2: True\n    test 1159 finalBearingOn: 307.1736°, 307°10′25.07″NW\n    test 1160 distanceTo: 969954.166\n    test 1161 distanceTo3: 969954.166314, 9.141877, 11.29722\n    test 1162 distanceTo2: 972708.16174, 11.22502\n    test 1163 initialBearingTo: 9.1419°, 9°08′30.76″N\n    test 1164 destination: 58.64402°N, 003.07009°W\n    test 1165 finalBearingTo: 11.2972°, 11°17′49.99″NNE\n    test 1166 finalBearingOn: 11.2972°, 11°17′49.99″NNE\n    test 1167 distanceTo: 404607.806\n    test 1168 distanceTo3: 404607.805988, 156.11064, 157.8345\n    test 1169 distanceTo2: 402574.597287, 157.726344\n    test 1170 initialBearingTo: 156.1106°, 156°06′38.31″SSE\n    test 1171 destination: 48.857°N, 002.351°E\n    test 1172 finalBearingTo: 157.8345°, 157°50′04.2″SSE\n    test 1173 finalBearingOn: 157.8345°, 157°50′04.2″SSE\n    test 1174 distanceTo: 54973.295\n    test 1175 distanceTo3: 54973.29527, 233.13008, 232.82461\n    test 1176 distanceTo2: 54903.41209, 232.9209\n    test 1177 initialBearingTo: 233.1301°, 233°07′48.28″SW\n    test 1178 destination: 37.6528°N, 143.9265°E\n    test 1179 finalBearingTo: 232.8246°, 232°49′28.59″SW\n    test 1180 finalBearingOn: 232.8246°, 232°49′28.59″SW\n    test 1181 distanceToMP: 298396.057\n    test 1182 distanceToSM: 185.415\n    test 1183 distanceToMP: 111319.491\n    test 1184 distanceToMP: 110574.389  FAILED, KNOWN, expected 110574.361\n    test 1185 distanceToKW: 222638.982\n    test 1186 distanceToKW: 111319.491\n    test 1187 distanceTo3: 54972.271\n    test 1188 distanceTo3: 306°52′05.37″\n    test 1189 distanceTo3: 307°10′25.07″\n    test 1190 distanceTo2: 54902.390\n    test 1191 distanceTo2: 307°04′38.41″\n\n    testKarneyVincentyError(pygeodesy.ellipsoidalKarney, 25.05.27, datum='NAD83')\n    test 1192 distanceTo/antipodal (None): 19936288.579\n    test 1193 distanceTo/VincentyError (None): 19944127.421\n    test 1194 initialBearingTo/VincentyError (None): 15.556883\n    test 1195 finalBearingTo/VincentyError (None): 164.442514\n    test 1196 distanceTo/equatorial (None): 20003931.46\n    test 1197 initialBearingTo/equatorial (None): 0.0\n    test 1198 distanceTo/coincident (None): 111319.491\n    test 1199 distanceTo/meridional (None): 10001965.729\n    test 1200 initialBearingTo/meridional (None): 180.0\n    test 1201 distanceTo/coincident (None): 0.0\n    test 1202 initialBearingTo/coincident (None): 180.0\n    test 1203 finalBearingTo/coincident (None): 180.0\n    test 1204 destination/coincident (None): 50.06632°N, 005.71475°W\n    test 1205 distanceTo/anti-meridian (None): 10825924.1\n    test 1206 distanceTo/quadrants (None): 4015703.02\n    test 1207 distanceTo/quadrants (None): 4015703.02\n    test 1208 distanceTo/quadrants (None): 4015703.02\n    test 1209 distanceTo/quadrants (None): 4015703.02\n    test 1210 distanceTo/quadrants (None): 4015703.02\n    test 1211 distanceTo/quadrants (None): 4015703.02\n    test 1212 distanceTo/quadrants (None): 4015703.02\n    test 1213 distanceTo/quadrants (None): 4015703.02\n    test 1214 distanceTo/quadrants (None): 4015703.02\n    test 1215 distanceTo/quadrants (None): 4015703.02\n    test 1216 distanceTo/quadrants (None): 4015703.02\n    test 1217 distanceTo/quadrants (None): 4015703.02\n    test 1218 distanceTo/quadrants (None): 4015703.02\n    test 1219 distanceTo/quadrants (None): 4015703.02\n    test 1220 distanceTo/quadrants (None): 4015703.02\n    test 1221 distanceTo/quadrants (None): 4015703.02\n\n    testKarney_s(pygeodesy.ellipsoidalKarney, 25.05.27)\n    test 1222 .lat1: -41.320\n    test 1223 .lon1: 174.810\n    test 1224 .azi1: 161.067669986160\n    test 1225 .lat2: 40.960\n    test 1226 .lon2: -5.500\n    test 1227 .azi2: 18.825195123247\n    test 1228 .s12: 19959679.267353821546\n    test 1229 distanceTo3: 19959679.267354, 161.067670, 18.825195\n    test 1230 destination2: 40.96, -5.5, 18.825195123247\n    test 1231 areaOf: 1.366270368e+13\n    test 1232 perimeterOf: 1.683106789e+07\n    test 1233 isclockwise: False\n    test 1234 isclockwise: True\n    test 1235 areaCO: 2.69154549884e+11\n    test 1236 isclockwise: True\n    test 1237 perimeterCO: 2099854.381923\n\n    testEllipsoidal(pygeodesy.ellipsoidalGeodSolve, 25.08.28)\n    test 1238 isEllipsoidal: True\n    test 1239 isSpherical: False\n    test 1240 isEllipsoidal: True\n    test 1241 isSpherical: False\n    test 1242 toDatum: 51.477284°N, 000.00002°E, -45.91m\n    test 1243 toDatum: 51.4773°N, 000.0°E, -45.91m\n    test 1244 toDatum: 51.4778°N, 000.0016°W\n    test 1245 sat: 82.219069°N, 059.719736°E, -6353120.97m\n    test 1246 dop: 51.998889°N, 004.373333°E, +134.64m\n    test 1247 distance: 3802238.50499  FAILED, KNOWN, expected 3802238.504989\n    test 1248 neareston8: (LatLon(45°00′00.0″N, 001°00′00.0″E), 4874369.98942, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E), 0.0, 0.0)\n    test 1249 iteration: 0\n    test 1250 neareston8: (LatLon(45°30′03.93″N, 020°00′00.0″E), 39078.779519, 1.501069, 2, LatLon(45°00′00.0″N, 020°00′00.0″E), LatLon(46°00′00.0″N, 020°00′00.0″E), 270.356041, 269.999412)\n    test 1251 iteration: 1\n\n    32 tests skipped (64): insersecant2\n\n    testLatLon(pygeodesy.ellipsoidalGeodSolve, 25.08.28)\n    test 1252 isEllipsoidal: True\n    test 1253 isSpherical: False\n    test 1254 lat/lonDMS: 52.20472°N, 000.14056°E\n    test 1255 lat/lonDMS F_DM: 52°12.283′N, 000°08.434′E\n    test 1256 lat/lonDMS F_DM: 52°12.2832′N, 000°08.4336′E\n    test 1257 lat/lonDMS F_DMS: 52°12′17″N, 000°08′26″E\n    test 1258 lat/lonDMS F_DMS: 52°12′17.0″N, 000°08′26.0″E\n    test 1259 lat/lonDMS F_RAD: 0.911144N, 0.002453E\n    test 1260 isequalTo: True\n    test 1261 isequalTo: True\n    test 1262 latlon2: 52.20472, 0.14056\n    test 1263 latlon2: 52.2047, 0.1406\n    test 1264 latlon2: 52.205, 0.141\n    test 1265 latlon2: 52.2, 0.14\n    test 1266 latlon2: 52.2, 0.1\n    test 1267 latlon2: 52.0, 0.0\n    test 1268 chordTo: 12029263.15\n    test 1269 chordTo: 12029049.69\n    test 1270 initialBearingTo: 156.1106\n    test 1271 initialBearingTo: 65.9335\n    test 1272 initialBearingTo: 0.0\n    test 1273 initialBearingTo: 180.0\n    test 1274 finalBearingTo: 157.8345\n    test 1275 finalBearingTo: 93.9034\n    test 1276 bearingTo2: 156.1106, 157.8345\n    test 1277 ispolar: True\n    test 1278 copy: True\n    test 1279 __eq__: True\n    test 1280 __ne__: False\n    test 1281 equirectangularTo: 404329.56\n    test 1282 distanceTo: 404607.805988\n    test 1283 distanceTo: 404607.805988\n    test 1284 distanceTo: 3981601\n    test 1285 antipodal: False\n    test 1286 distanceTo dateline: 19959679.267\n    test 1287 distanceTo unrolled: 19959679.267\n    test 1288 antipodal: False\n    test 1289 distanceTo dateline: 9513998\n    test 1290 distanceTo unrolled: 9513998\n    test 1291 distanceTo: 18012714.66\n    test 1292 distanceTo: 20003931.46\n    test 1293 distanceTo3 dateline: 19959679.2674, 161.0677, 18.8252\n    test 1294 distanceTo3 dateline: 9513997.9901, 42.9164, 138.8903\n    test 1295 distanceTo3 dateline: 19959679.2674, 161.0677, 18.8252\n    test 1296 distanceTo3 dateline: 9513997.9901, 42.9164, 138.8903\n    test 1297 intermediateTo: 51.372275°N, 000.707253°E\n    test 1298 intermediateTo: True\n    test 1299 intermediateTo: 404607.806\n    test 1300 intermediateTo+5: 35.139582°N, 008.994368°E\n    test 1301 intermediateTo+5: 5.000\n    test 1302 intermediateTo-4: 64.894124°N, 013.705689°W\n    test 1303 intermediateTo-4: 4.000\n    test 1304 intermediateTo-h: 125.000\n    test 1305 midpointTo: 50.5./test/testLatLon.py:276: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.ellipsoidalGeodSolve.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', p.cosineAndoyerLambertTo(q), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:277: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.ellipsoidalGeodSolve.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', q.cosineAndoyerLambertTo(p), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:279: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.ellipsoidalGeodSolve.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', p.cosineForsytheAndoyerLambertTo(q), '124801.098' if Sph else '125205.965', fmt='%.3f')\n./test/testLatLon.py:280: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.ellipsoidalGeodSolve.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', q.cosineForsytheAndoyerLambertTo(p), '124801.098' if Sph else '125205.965', fmt='%.3f')\n36583°N, 001.274507°E\n    test 1306 destination: 51.513526°N, 000.098038°W\n    test 1307 destination: 51°30′49″N, 000°05′53″W\n    test 1308 destination: 33°57′N, 118°24′W\n    test 1309 destination: 33.950367°N, 118.399012°W\n    test 1310 destination: 0.592546N, 2.066453W\n    test 1311 destination: 32.11195529°N, 064.56074722°E  FAILED, KNOWN, expected 32.11195529°N, 063.95925278°E\n    test 1312 neareston6: (LatLon(45°00′00.0″N, 001°00′00.0″E), 4755443.4294, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E))\n    test 1313 neareston6: (LatLon(45°30′03.94″N, 002°00′00.0″E), 39078.729285, 1.501072, 2, LatLon(45°00′00.0″N, 002°00′00.0″E), LatLon(46°00′00.0″N, 002°00′00.0″E))\n    test 1314 chordTo: 125203.963\n    test 1315 cosineAndoyerLambertTo: 125205.962\n    test 1316 cosineAndoyerLambertTo: 125205.962\n    test 1317 cosineForsyheAndoyerLambertTo: 125205.965\n    test 1318 cosineForsyheAndoyerLambertTo: 125205.965\n    test 1319 cosineLawTo: 124801.098\n    test 1320 cosineLawTo: 124801.098\n    test 1321 equirectangularTo: 124804.754\n    test 1322 equirectangularTo: 124804.754\n    test 1323 euclideanTo: 130015.089\n    test 1324 euclideanTo: 130015.089\n    test 1325 flatLocalTo: 125209.633\n    test 1326 flatLocalTo: 125209.633\n    test 1327 flatPolarTo: 133663.257\n    test 1328 flatPolarTo: 133663.257\n    test 1329 hartzell: 53.3206°N, 001.7297°W\n    test 1330 hartzell: 53.349541°N, 001.7297°W\n    test 1331 height4: 1.04135197254e-09  FAILED, KNOWN, expected 0.0\n    test 1332 height4: (3820333.9, -115367.0, 5097204.4, -6584.9)\n    test 1333 height4: 53°19′14.2″N, 001°43′46.9″W\n    test 1334 height4: 53°19′14.2″N, 001°43′46.9″W\n    test 1335 haversineTo: 124801.098\n    test 1336 haversineTo: 124801.098\n    test 1337 hubenyTo: <bound method LatLon.flatLocalTo of LatLon(53°19′14.16″N, 001°43′46.92″W)>\n    test 1338 hubenyTo: <bound method LatLon.flatLocalTo of LatLon(53°11′19.32″N, 000°08′00.24″E)>\n    test 1339 thomasTo: 125206.188\n    test 1340 thomasTo: 125206.188\n    test 1341 vincentysTo: 124801.098\n    test 1342 vincentysTo: 124801.098\n    test 1343 isclockwise: False\n    test 1344 isclockwise*: False\n    test 1345 isclockwise: True\n    test 1346 isclockwise*: True\n    test 1347 isclockwise: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 1348 isclockwise*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 1349 isclockwise: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 1350 isclockwise*: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 1351 isconvex: False\n    test 1352 isconvex*: False\n    test 1353 isconvex: True\n    test 1354 isconvex*: True\n    test 1355 isconvex: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 1356 isconvex*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 1357 isenclosedBy1: True\n    test 1358 isenclosedBy1*: True\n    test 1359 isenclosedBy2: False\n    test 1360 isenclosedBy2*: False\n    test 1361 isenclosedBy3: False\n    test 1362 isenclosedBy3*: False\n    test 1363 isenclosedBy4: False\n    test 1364 isenclosedBy4*: False\n    test 1365 isenclosedBy5: False\n    test 1366 isenclosedBy5*: False\n    test 1367 isenclosedBy6: True\n    test 1368 isenclosedBy6*: True\n    test 1369 isenclosedBy7: True\n    test 1370 isenclosedBy7*: True\n    test 1371 isenclosedBy-CCW: True\n    test 1372 isenclosedBy-CW : True\n    test 1373 isenclosedBy-CCW: True\n    test 1374 initialBearingTo: 102.392291\n    test 1375 compassAngleTo: 100.017\n    test 1376 compassAngleTo: 105.599\n    test 1377 initialBearingTo: 288.676039\n    test 1378 compassAngleTo: 280.017\n    test 1379 compassAngleTo: 285.599\n    test 1380 equirectangularTo: 592.185\n    test 1381 distanceTo: 593.571\n    test 1382 bearingTo: 0.0\n    test 1383 compassAngleTo: 0.0\n    test 1384 bearingTo: 45.2  FAILED, KNOWN, expected 45.0\n    test 1385 compassAngleTo: 45.0\n    test 1386 bearingTo: 90.0\n    test 1387 compassAngleTo: 90.0\n    test 1388 bearingTo: 180.0\n    test 1389 compassAngleTo: 180.0\n    test 1390 bearingTo: 225.2  FAILED, KNOWN, expected 225.0\n    test 1391 compassAngleTo: 225.0\n    test 1392 bearingTo: 314.8  FAILED, KNOWN, expected 315.0\n    test 1393 compassAngleTo: 315.0\n    test 1394 bearingTo: 270.0\n    test 1395 compassAngleTo: 270.0\n    test 1396 bearingTo: 0.0  FAILED, KNOWN, expected 359.4\n    test 1397 compassAngleTo: 359.4\n    test 1398 latlon2: (53.0, 1.0)\n    test 1399 philam2: (0.93, 0.02)\n    test 1400 bearingTo: 31\n    test 1401 compassAngleTo: 31\n    test 1402 compassAngleTo: 45\n\n    test 1403 boundsOf: <class 'pygeodesy.namedTuples.Bounds2Tuple'>\n    test 1404 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 1405 latlon2: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 1406 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 1407 isequalTo: <type 'bool'>\n    test 1408 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 1409 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 1410 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 1411 xyz3: <type 'tuple'>\n    test 1412 xyzh: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 1413 compassAngleTo: <type 'float'>\n    test 1414 cosineLawTo: <type 'float'>\n    test 1415 euclideanTo: <type 'float'>\n    test 1416 flatLocalTo: <type 'float'>\n    test 1417 flatPolarTo: <type 'float'>\n    test 1418 haversineTo: <type 'float'>\n    test 1419 hubenyTo: <type 'float'>\n    test 1420 vincentysTo: <type 'float'>\n    test 1421 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 1422 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 1423 toLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 1424 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 1425 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 1426 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 1427 toNvector: (0.615661, 0.0, 0.788011, 0)\n    test 1428 toVector: (3934960.466675, 0.0, 5002803.345483)\n    test 1429 toVector3d: (0.61823, 0.0, 0.786)\n\n    test 1430 trilaterate5 (pygeodesy.ellipsoidalGeodSolve) .min: 305.091\n    test 1431 trilaterate5 (pygeodesy.ellipsoidalGeodSolve) .point: 42.66933643°N, 002.48620262°E\n    test 1432 trilaterate5 (pygeodesy.ellipsoidalGeodSolve) .max: 1592.545\n    test 1433 trilaterate5 (pygeodesy.ellipsoidalGeodSolve) .point: 42.65141232°N, 002.46816989°E\n    test 1434 trilaterate5 (pygeodesy.ellipsoidalGeodSolve) .n: 3\n    test 1435 trilaterate5 (pygeodesy.ellipsoidalGeodSolve) .min: 127.229\n    test 1436 trilaterate5 (pygeodesy.ellipsoidalGeodSolve) .max: 152.612\n    test 1437 trilaterate5 (pygeodesy.ellipsoidalGeodSolve) .point: 42.67815375°N, 002.49950041°E\n    test 1438 trilaterate5 (pygeodesy.ellipsoidalGeodSolve) .n: 2\n    test 1439 trilaterate5 (pygeodesy.ellipsoidalGeodSolve) .min: 2400.293\n    test 1440 trilaterate5 (pygeodesy.ellipsoidalGeodSolve) .max: 2400.293\n    test 1441 trilaterate5 (pygeodesy.ellipsoidalGeodSolve) .point: 42.66128984°N, 002.47973818°E\n    test 1442 trilaterate5 (pygeodesy.ellipsoidalGeodSolve) .min- is .maxPoint: True\n    test 1443 trilaterate5 (pygeodesy.ellipsoidalGeodSolve) .n: 1\n    test 1444 trilaterate5 (pygeodesy.ellipsoidalGeodSolve) .min: 1343.743\n    test 1445 trilaterate5 (pygeodesy.ellipsoidalGeodSolve) .point: 42.69131964°N, 002.50112167°E\n    test 1446 trilaterate5 (pygeodesy.ellipsoidalGeodSolve) .max: 1445.554\n    test 1447 trilaterate5 (pygeodesy.ellipsoidalGeodSolve) .point: 42.67815375°N, 002.49950041°E\n    test 1448 trilaterate5 (pygeodesy.ellipsoidalGeodSolve) .n: 2\n    test 1449 radii11: Radii11Tuple(rA=7244.792747, rB=1828.106695, rC=2.25502, cR=57792.067128, rIn=57.366968, riS=2.087668, roS=2.443334, a=1830.361715, b=7247.047766, c=9072.899442, s=9075.154461)\n    test 1450 circum3 (pygeodesy.ellipsoidalGeodSolve) .radius: 57792.067\n    test 1451 circum3 (pygeodesy.ellipsoidalGeodSolve) .center: 43.053532°N, 002.943255°E, -261.66m\n    test 1452 circum3 (pygeodesy.ellipsoidalGeodSolve) .deltas: (-0.0, 0.0, 11.858)  FAILED, KNOWN, expected (0.0, 0.0, 11.383)\n    test 1453 circum3 (pygeodesy.ellipsoidalGeodSolve) .d1: 57792.858\n    test 1454 circum3 (pygeodesy.ellipsoidalGeodSolve) .d2: 57792.859\n    test 1455 circum3 (pygeodesy.ellipsoidalGeodSolve) .d3: 57792.859\n    test 1456 circum3 (pygeodesy.ellipsoidalGeodSolve) .datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 1457 circum3 (pygeodesy.ellipsoidalGeodSolve) .Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n\n    test 1458 radii11: Radii11Tuple(rA=7244.792747, rB=1828.106695, rC=2.25502, cR=57792.067128, rIn=57.366968, riS=2.087668, roS=2.443334, a=1830.361715, b=7247.047766, c=9072.899442, s=9075.154461)\n    test 1459 circum4 (pygeodesy.ellipsoidalGeodSolve) .radius: 3184256.748\n    test 1460 circum4 (pygeodesy.ellipsoidalGeodSolve) .center: 43.054367°N, 002.942573°E, -3183993.92m\n    test 1461 circum4 (pygeodesy.ellipsoidalGeodSolve) .rank: 3\n    test 1462 circum4 (pygeodesy.ellipsoidalGeodSolve) .residuals: ()\n    test 1463 circum4 (pygeodesy.ellipsoidalGeodSolve) .d1: 57818.033\n    test 1464 circum4 (pygeodesy.ellipsoidalGeodSolve) .d2: 57834.176\n    test 1465 circum4 (pygeodesy.ellipsoidalGeodSolve) .d3: 57830.992\n    test 1466 circum4 (pygeodesy.ellipsoidalGeodSolve) .datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 1467 circum4 (pygeodesy.ellipsoidalGeodSolve) .Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 1468 radii11: Radii11Tuple(rA=327537.482637, rB=776914.262482, rC=784245.052526, cR=780602.180901, rIn=325058.721103, riS=84975.664195, roS=INF, a=1561159.315008, b=1111782.535163, c=1104451.745119, s=1888696.797645)\n    test 1469 circin6 (pygeodesy.ellipsoidalGeodSolve) .rB+rC: 1561159.315\n    test 1470 circin6 (pygeodesy.ellipsoidalGeodSolve) .rC+pA: 1111782.535\n    test 1471 circin6 (pygeodesy.ellipsoidalGeodSolve) .rA+rB: 1104451.745\n    test 1472 circin6 (pygeodesy.ellipsoidalGeodSolve) .radius: 325058.721\n    test 1473 circin6 (pygeodesy.ellipsoidalGeodSolve) .center: 02.948531°N, 002.932537°E, -40041.19m\n    test 1474 circin6 (pygeodesy.ellipsoidalGeodSolve) .deltas: (0.0, 0.0, 0.267132)  FAILED, KNOWN, expected (0.0, 0.0, 0.090491)\n    test 1475 circin6 (pygeodesy.ellipsoidalGeodSolve) .cA: 05.04314°N, 005.014578°E, -48104.09m\n    test 1476 circin6 (pygeodesy.ellipsoidalGeodSolve) .cB: 00.0°N, 002.941713°E, -20168.62m\n    test 1477 circin6 (pygeodesy.ellipsoidalGeodSolve) .cC: 02.961566°N, 000.0°E, -20113.46m\n    test 1478 circin6 (pygeodesy.ellipsoidalGeodSolve) .dA: 327263.596\n    test 1479 circin6 (pygeodesy.ellipsoidalGeodSolve) .dB: 326036.153\n    test 1480 circin6 (pygeodesy.ellipsoidalGeodSolve) .dC: 326020.432\n\n    test 1481 area cw/ccw: 1.0\n\n    testNOAA(pygeodesy.ellipsoidalGeodSolve, 25.08.28)\n    test 1482 NOAAexample1: 191872.1190, 249 03 16.4237, 67 59 11.1619\n    test 1483 NOAAexample2: 182009.1679, 254 42 44.6439, 73 09 21.3315\n    test 1484 NOAAexample3: 123456.7891, 245 00 34.7001, 64 20 24.6864\n    test 1485 NOAAexample4: 145239.0603, 114 29 26.9586, 295 21 32.6566\n\n    testIntersection3(pygeodesy.ellipsoidalGeodSolve, 25.08.28)\n    test 1486 (30, 17): (LatLon(30°52′03.1″N, 015°30′38.41″E), 0, 0)\n    test 1487 (30, 17): (LatLon(30°52′03.1″N, 015°30′38.41″E), -1, 0)\n    test 1488 (-1,  3): (LatLon(01°34′52.49″N, 006°00′51.83″E), -1, -2)\n    test 1489 (-1,  3): (LatLon(01°34′52.49″N, 006°00′51.83″E), -1, 2)\n    test 1490 (65, 32): (LatLon(56°58′26.51″N, 032°00′00.0″E), 1, 0)\n    test 1491 (65, 32): (LatLon(56°58′26.51″N, 032°00′00.0″E), 1, 2)\n    test 1492 (-2, 17): <class 'pygeodesy.errors.IntersectionError'>\n    test 1493 (49, 25): (LatLon(49°00′00.0″N, 025°00′00.0″E), 0, -2)  FAILED, KNOWN, expected (LatLon(49°00′00.0″N, 025°00′00.0″E), 0, 0)\n    test 1494 #58: (LatLon(01°54′25.65″S, 005°37′48.76″E), 1, -2)\n    test 1495 #58: <class 'pygeodesy.errors.IntersectionError'>\n\n    testIntersections2(pygeodesy.ellipsoidalGeodSolve, 25.08.28)\n    test 1496 EquidistantGeodSolve: 36.9879°N, 088.1564°W, 38.2441°N, 092.3835°W\n    test 1497 EquidistantGeodSolve: 36.9879°N, 088.1564°W, 38.2441°N, 092.3835°W\n    test 1498 EquidistantGeodSolve: 00.0°N, 035.3478°W, 00.0°N, 035.3478°E  FAILED, KNOWN, expected 00.0°S, 035.4073°W, 00.0°S, 035.4073°E\n    test 1499 EquidistantGeodSolve: 1.63715 (% of radius)\n    test 1500 EquidistantGeodSolve: 22.657°N, 000.0°E, 22.657°S, 000.0°E  FAILED, KNOWN, expected 22.756°N, 000.0°W, 22.756°S, 000.0°W\n    test 1501 EquidistantGeodSolve: 1.30663 (% of radius)\n    test 1502 EquidistantGeodSolve: 29.4898°N, 040.1785°W, 29.4898°S, 040.1785°E\n    test 1503 EquidistantGeodSolve: 1.31396 (% of radius)\n    test 1504 EquidistantGeodSolve: 02.7402°S, 044.885°E, 02.7402°N, 044.885°E\n    test 1505 EquidistantGeodSolve: 1.83268 (% of radius)\n    test 1506 EquidistantGeodSolve 5: 05.0558°S, 005.0271°W, 05.0558°N, 005.0271°E\n    test 1507 EquidistantGeodSolve 5: 8.37557e-16 (% of radius)\n    test 1508 EquidistantGeodSolve 10: 10.1081°S, 010.2901°W, 10.1081°N, 010.2901°E\n    test 1509 EquidistantGeodSolve 10: 6.28168e-16 (% of radius)\n    test 1510 EquidistantGeodSolve 15: 15.1433°S, 016.0531°W, 15.1433°N, 016.0531°E\n    test 1511 EquidistantGeodSolve 15: 3.62942e-15 (% of radius)\n    test 1512 EquidistantGeodSolve 20: 20.1241°S, 022.6411°W, 20.1241°N, 022.6411°E\n    test 1513 EquidistantGeodSolve 20: 4.18779e-16 (% of radius)\n    test 1514 EquidistantGeodSolve 25: 24.9655°S, 030.4846°W, 24.9655°N, 030.4846°E\n    test 1515 EquidistantGeodSolve 25: 1.5076e-15 (% of radius)\n    test 1516 EquidistantGeodSolve 30: 29.4898°S, 040.1785°W, 29.4898°N, 040.1785°E\n    test 1517 EquidistantGeodSolve 30: 4.18779e-16 (% of radius)\n    test 1518 EquidistantGeodSolve 35: 33.3405°S, 052.5516°W, 33.3405°N, 052.5516°E\n    test 1519 EquidistantGeodSolve 35: 9.57208e-16 (% of radius)\n    test 1520 EquidistantGeodSolve 40: 35.8146°S, 068.7149°W, 35.8146°N, 068.7149°E\n    test 1521 EquidistantGeodSolve 40: 2.09389e-15 (% of radius)\n    test 1522 EquidistantGeodSolve 45: 35.5368°S, 090.0616°W, 35.5368°N, 090.0616°E\n    test 1523 EquidistantGeodSolve 45: 1.86124e-16 (% of radius)\n    test 1524 EquidistantGeodSolve 50: 29.5972°S, 118.8695°W, 29.5972°N, 118.8695°E\n    test 1525 EquidistantGeodSolve 50: 3.35023e-16 (% of radius)\n    test 1526 EquidistantGeodSolve: center1 (LatLon(55°00′00.0″N, 055°00′00.0″W)), center2 (LatLon(55°00′00.0″S, 055°00′00.0″E)), radius1 (12231458.77080936) or radius2 (12231458.77080936): 'no convergence (188568)': tolerance (0.001) too low, antipodal or near-polar?  FAILED, KNOWN, expected 2-tuple\n    test 1527 EquidistantGeodSolve: center1 (LatLon(60°00′00.0″N, 060°00′00.0″W)), center2 (LatLon(60°00′00.0″S, 060°00′00.0″E)), radius1 (13343409.568155663) or radius2 (13343409.568155663): 'no convergence (1.01348e+06)': tolerance (0.001) too low, antipodal or near-polar?  FAILED, KNOWN, expected 2-tuple\n    test 1528 EquidistantGeodSolve: center1 (LatLon(65°00′00.0″N, 065°00′00.0″W)), center2 (LatLon(65°00′00.0″S, 065°00′00.0″E)), radius1 (14455360.36550197) or radius2 (14455360.36550197): 'no convergence (1.55092e+06)': tolerance (0.001) too low, antipodal or near-polar?  FAILED, KNOWN, expected 2-tuple\n    test 1529 EquidistantGeodSolve: 37.111862°N, 006.423822°W Random +/- 45\n    test 1530 EquidistantGeodSolve: 37.111862°N, 006.423822°W, 42.52963°S, 104.327531°W  d 3.7e-09 meter (iteration 3)\n    test 1531 EquidistantGeodSolve: 37.111862°N, 006.423822°W, 09.593326°N, 033.636257°W  d 4.8e-09 meter (iteration 3)\n    test 1532 EquidistantGeodSolve: 37.111862°N, 006.423822°W, 31.04603°N, 000.471454°E  d 4.4e-09 meter (iteration 3)\n   ./test/testLatLon.py:276: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.ellipsoidalExact.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', p.cosineAndoyerLambertTo(q), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:277: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.ellipsoidalExact.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', q.cosineAndoyerLambertTo(p), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:279: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.ellipsoidalExact.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', p.cosineForsytheAndoyerLambertTo(q), '124801.098' if Sph else '125205.965', fmt='%.3f')\n test 1533 EquidistantGeodSolve: 37.111862°N, 006.423822°W, 60.297495°S, 118.896254°E  d 1e-08 meter (iteration 3)\n    test 1534 EquidistantGeodSolve: 37.111862°N, 006.423822°W, 22.838928°S, 062.217123°E  d 4.8e-09 meter (iteration 3)\n    test 1535 EquidistantGeodSolve: 37.111862°N, 006.423822°W, 40.492727°N, 003.964969°E  d 1.34e-08 meter (iteration 3)\n    test 1536 EquidistantGeodSolve: 37.111862°N, 006.423822°W, 09.692025°N, 024.440325°E  d 1.5e-09 meter (iteration 3)\n    test 1537 EquidistantGeodSolve: 37.111862°N, 006.423822°W, 28.184493°N, 017.309932°E  d 3.7e-09 meter (iteration 3)\n    test 1538 EquidistantGeodSolve: 37.111862°N, 006.423822°W, 24.576027°N, 019.040672°E  d 4.8e-09 meter (iteration 3)\n    test 1539 EquidistantGeodSolve: 37.111862°N, 006.423822°W, 21.959362°N, 096.828744°E  d 6.3e-09 meter (iteration 3)\n    test 1540 EquidistantGeodSolve: 37.111862°N, 006.423822°W, 03.19936°S, 000.399171°W  d 9.87e-08 meter (iteration 3)\n    test 1541 EquidistantGeodSolve: 37.111862°N, 006.423822°W, 25.546164°S, 021.633469°W  d 2.9e-09 meter (iteration 3)\n\n    testKarney(pygeodesy.ellipsoidalGeodSolve, 25.08.28, datum='WGS84')\n    test 1542 distanceTo: 866455.4329\n    test 1543 coincident: 0.0\n    test 1544 toDatum: OSGB36\n    test 1545 ValueError2: Ellipsoid 'Airy1830': incompatible with Ellipsoid 'WGS84'\n    test 1546 isEllipsoidal: True\n    test 1547 copy: True\n    test 1548 isEllipsoidal: True\n    test 1549 isSpherical: False\n    test 1550 copy: 37°57′03.7203″S, 144°25′29.5244″E\n\n    testKarneyVincenty(pygeodesy.ellipsoidalGeodSolve, 25.08.28, datum='WGS84')\n    test 1551 coincident: 0.0\n    test 1552 coincident: 0.0, 0.0, 0.0\n    test 1553 destination: 37.6528°S, 143.9265°E\n    test 1554 destination: True\n    test 1555 destination2: 37.652821°S, 143.926496°E, 307.1736°NW\n    test 1556 destination2: True\n    test 1557 finalBearingOn: 307.1736°, 307°10′25.07″NW\n    test 1558 distanceTo: 969954.166\n    test 1559 distanceTo3: 969954.166314, 9.141877, 11.29722\n    test 1560 distanceTo2: 972708.16174, 11.22502\n    test 1561 initialBearingTo: 9.1419°, 9°08′30.76″N\n    test 1562 destination: 58.64402°N, 003.07009°W\n    test 1563 finalBearingTo: 11.2972°, 11°17′49.99″NNE\n    test 1564 finalBearingOn: 11.2972°, 11°17′49.99″NNE\n    test 1565 distanceTo: 404607.806\n    test 1566 distanceTo3: 404607.805988, 156.11064, 157.8345\n    test 1567 distanceTo2: 402574.597287, 157.726344\n    test 1568 initialBearingTo: 156.1106°, 156°06′38.31″SSE\n    test 1569 destination: 48.857°N, 002.351°E\n    test 1570 finalBearingTo: 157.8345°, 157°50′04.2″SSE\n    test 1571 finalBearingOn: 157.8345°, 157°50′04.2″SSE\n    test 1572 distanceTo: 54973.295\n    test 1573 distanceTo3: 54973.29527, 233.13008, 232.82461\n    test 1574 distanceTo2: 54903.41209, 232.9209\n    test 1575 initialBearingTo: 233.1301°, 233°07′48.28″SW\n    test 1576 destination: 37.6528°N, 143.9265°E\n    test 1577 finalBearingTo: 232.8246°, 232°49′28.59″SW\n    test 1578 finalBearingOn: 232.8246°, 232°49′28.59″SW\n    test 1579 distanceToMP: 298396.057\n    test 1580 distanceToSM: 185.415\n    test 1581 distanceToMP: 111319.491\n    test 1582 distanceToMP: 110574.389  FAILED, KNOWN, expected 110574.361\n    test 1583 distanceToKW: 222638.982\n    test 1584 distanceToKW: 111319.491\n    test 1585 distanceTo3: 54972.271\n    test 1586 distanceTo3: 306°52′05.37″\n    test 1587 distanceTo3: 307°10′25.07″\n    test 1588 distanceTo2: 54902.390\n    test 1589 distanceTo2: 307°04′38.41″\n\n    testKarneyVincentyError(pygeodesy.ellipsoidalGeodSolve, 25.08.28, datum='WGS84')\n    test 1590 distanceTo/antipodal (None): 19936288.579\n    test 1591 distanceTo/VincentyError (None): 19944127.421\n    test 1592 initialBearingTo/VincentyError (None): 15.556883\n    test 1593 finalBearingTo/VincentyError (None): 164.442514\n    test 1594 distanceTo/equatorial (None): 20003931.46\n    test 1595 initialBearingTo/equatorial (None): 0.0\n    test 1596 distanceTo/coincident (None): 111319.491\n    test 1597 distanceTo/meridional (None): 10001965.729\n    test 1598 initialBearingTo/meridional (None): 180.0\n    test 1599 distanceTo/coincident (None): 0.0\n    test 1600 initialBearingTo/coincident (None): 180.0\n    test 1601 finalBearingTo/coincident (None): 180.0\n    test 1602 destination/coincident (None): 50.06632°N, 005.71475°W\n    test 1603 distanceTo/anti-meridian (None): 10825924.1\n    test 1604 distanceTo/quadrants (None): 4015703.02\n    test 1605 distanceTo/quadrants (None): 4015703.02\n    test 1606 distanceTo/quadrants (None): 4015703.02\n    test 1607 distanceTo/quadrants (None): 4015703.02\n    test 1608 distanceTo/quadrants (None): 4015703.02\n    test 1609 distanceTo/quadrants (None): 4015703.02\n    test 1610 distanceTo/quadrants (None): 4015703.02\n    test 1611 distanceTo/quadrants (None): 4015703.02\n    test 1612 distanceTo/quadrants (None): 4015703.02\n    test 1613 distanceTo/quadrants (None): 4015703.02\n    test 1614 distanceTo/quadrants (None): 4015703.02\n    test 1615 distanceTo/quadrants (None): 4015703.02\n    test 1616 distanceTo/quadrants (None): 4015703.02\n    test 1617 distanceTo/quadrants (None): 4015703.02\n    test 1618 distanceTo/quadrants (None): 4015703.02\n    test 1619 distanceTo/quadrants (None): 4015703.02\n\n    testKarney(pygeodesy.ellipsoidalGeodSolve, 25.08.28, datum='NAD83')\n    test 1620 distanceTo: 866455.4329\n    test 1621 coincident: 0.0\n    test 1622 toDatum: OSGB36\n    test 1623 ValueError2: Ellipsoid 'Airy1830': incompatible with Ellipsoid 'GRS80'\n    test 1624 isEllipsoidal: True\n    test 1625 copy: True\n    test 1626 isEllipsoidal: True\n    test 1627 isSpherical: False\n    test 1628 copy: 37°57′03.7203″S, 144°25′29.5244″E\n\n    testKarneyVincenty(pygeodesy.ellipsoidalGeodSolve, 25.08.28, datum='NAD83')\n    test 1629 coincident: 0.0\n    test 1630 coincident: 0.0, 0.0, 0.0\n    test 1631 destination: 37.6528°S, 143.9265°E\n    test 1632 destination: True\n    test 1633 destination2: 37.652821°S, 143.926496°E, 307.1736°NW\n    test 1634 destination2: True\n    test 1635 finalBearingOn: 307.1736°, 307°10′25.07″NW\n    test 1636 distanceTo: 969954.166\n    test 1637 distanceTo3: 969954.166314, 9.141877, 11.29722\n    test 1638 distanceTo2: 972708.16174, 11.22502\n    test 1639 initialBearingTo: 9.1419°, 9°08′30.76″N\n    test 1640 destination: 58.64402°N, 003.07009°W\n    test 1641 finalBearingTo: 11.2972°, 11°17′49.99″NNE\n    test 1642 finalBearingOn: 11.2972°, 11°17′49.99″NNE\n    test 1643 distanceTo: 404607.806\n    test 1644 distanceTo3: 404607.805988, 156.11064, 157.8345\n    test 1645 distanceTo2: 402574.597287, 157.726344\n    test 1646 initialBearingTo: 156.1106°, 156°06′38.31″SSE\n    test 1647 destination: 48.857°N, 002.351°E\n    test 1648 finalBearingTo: 157.8345°, 157°50′04.2″SSE\n    test 1649 finalBearingOn: 157.8345°, 157°50′04.2″SSE\n    test 1650 distanceTo: 54973.295\n    test 1651 distanceTo3: 54973.29527, 233.13008, 232.82461\n    test 1652 distanceTo2: 54903.41209, 232.9209\n    test 1653 initialBearingTo: 233.1301°, 233°07′48.28″SW\n    test 1654 destination: 37.6528°N, 143.9265°E\n    test 1655 finalBearingTo: 232.8246°, 232°49′28.59″SW\n    test 1656 finalBearingOn: 232.8246°, 232°49′28.59″SW\n    test 1657 distanceToMP: 298396.057\n    test 1658 distanceToSM: 185.415\n    test 1659 distanceToMP: 111319.491\n    test 1660 distanceToMP: 110574.389  FAILED, KNOWN, expected 110574.361\n    test 1661 distanceToKW: 222638.982\n    test 1662 distanceToKW: 111319.491\n    test 1663 distanceTo3: 54972.271\n    test 1664 distanceTo3: 306°52′05.37″\n    test 1665 distanceTo3: 307°10′25.07″\n    test 1666 distanceTo2: 54902.390\n    test 1667 distanceTo2: 307°04′38.41″\n\n    testKarneyVincentyError(pygeodesy.ellipsoidalGeodSolve, 25.08.28, datum='NAD83')\n    test 1668 distanceTo/antipodal (None): 19936288.579\n    test 1669 distanceTo/VincentyError (None): 19944127.421\n    test 1670 initialBearingTo/VincentyError (None): 15.556883\n    test 1671 finalBearingTo/VincentyError (None): 164.442514\n    test 1672 distanceTo/equatorial (None): 20003931.46\n    test 1673 initialBearingTo/equatorial (None): 0.0\n    test 1674 distanceTo/coincident (None): 111319.491\n    test 1675 distanceTo/meridional (None): 10001965.729\n    test 1676 initialBearingTo/meridional (None): 180.0\n    test 1677 distanceTo/coincident (None): 0.0\n    test 1678 initialBearingTo/coincident (None): 180.0\n    test 1679 finalBearingTo/coincident (None): 180.0\n    test 1680 destination/coincident (None): 50.06632°N, 005.71475°W\n    test 1681 distanceTo/anti-meridian (None): 10825924.1\n    test 1682 distanceTo/quadrants (None): 4015703.02\n    test 1683 distanceTo/quadrants (None): 4015703.02\n    test 1684 distanceTo/quadrants (None): 4015703.02\n    test 1685 distanceTo/quadrants (None): 4015703.02\n    test 1686 distanceTo/quadrants (None): 4015703.02\n    test 1687 distanceTo/quadrants (None): 4015703.02\n    test 1688 distanceTo/quadrants (None): 4015703.02\n    test 1689 distanceTo/quadrants (None): 4015703.02\n    test 1690 distanceTo/quadrants (None): 4015703.02\n    test 1691 distanceTo/quadrants (None): 4015703.02\n    test 1692 distanceTo/quadrants (None): 4015703.02\n    test 1693 distanceTo/quadrants (None): 4015703.02\n    test 1694 distanceTo/quadrants (None): 4015703.02\n    test 1695 distanceTo/quadrants (None): 4015703.02\n    test 1696 distanceTo/quadrants (None): 4015703.02\n    test 1697 distanceTo/quadrants (None): 4015703.02\n\n    testKarney_s(pygeodesy.ellipsoidalGeodSolve, 25.08.28)\n    test 1698 .lat1: -41.320\n    test 1699 .lon1: 174.810\n    test 1700 .azi1: 161.067669986160\n    test 1701 .lat2: 40.960\n    test 1702 .lon2: -5.500\n    test 1703 .azi2: 18.825195123247\n    test 1704 .s12: 19959679.267353821546\n    test 1705 distanceTo3: 19959679.267354, 161.067670, 18.825195\n    test 1706 destination2: 40.96, -5.5, 18.825195123247\n    test 1707 areaOf: 1.366270368e+13\n    test 1708 perimeterOf: 1.683106789e+07\n    test 1709 isclockwise: False\n    test 1710 isclockwise: True\n    test 1711 areaCO: 2.69154549884e+11\n    test 1712 isclockwise: True\n    test 1713 perimeterCO: 2099854.381923\n\n    testEllipsoidal(pygeodesy.ellipsoidalExact, 25.08.28)\n    test 1714 isEllipsoidal: True\n    test 1715 isSpherical: False\n    test 1716 isEllipsoidal: True\n    test 1717 isSpherical: False\n    test 1718 toDatum: 51.477284°N, 000.00002°E, -45.91m\n    test 1719 toDatum: 51.4773°N, 000.0°E, -45.91m\n    test 1720 toDatum: 51.4778°N, 000.0016°W\n    test 1721 sat: 82.219069°N, 059.719736°E, -6353120.97m\n    test 1722 dop: 51.998889°N, 004.373333°E, +134.64m\n    test 1723 distance: 3802238.50499  FAILED, KNOWN, expected 3802238.504989\n    test 1724 neareston8: (LatLon(45°00′00.0″N, 001°00′00.0″E), 4874369.98942, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E), 0.0, 0.0)\n    test 1725 iteration: 0\n    test 1726 neareston8: (LatLon(45°30′03.93″N, 020°00′00.0″E), 39078.779519, 1.501069, 2, LatLon(45°00′00.0″N, 020°00′00.0″E), LatLon(46°00′00.0″N, 020°00′00.0″E), 270.356041, 269.999412)\n    test 1727 iteration: 1\n    test 1728 nearestOn: 54.928536°N, 021.934843°W\n    test 1729 intersecant2: 5.577e-14% 60 LatLon(03°18′54.69″S, 023°52′08.48″E)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 1730 intersecant2: 5.577e-14% 60 LatLon(22°22′23.65″S, 007°55′54.49″E)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 1731 intersecant2: 1.673e-13% 57 LatLon(10°39′24.95″N, 034°45′48.18″W)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 1732 intersecant2: 1.813e-13% 57 LatLon(25°11′09.14″S, 005°10′35.44″W)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 1733 intersecant2: 1.394e-14% 61 LatLon(10°14′21.91″S, 021°00′17.05″E)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 1734 intersecant2: 1.394e-14% 61 LatLon(20°55′17.31″S, 010°40′21.43″E)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 1735 intersecant2: center (LatLon(05°00′00.0″N, 005°00′00.0″W)), circle (3339584), end (LatLon(15°00′00.0″N, 045°00′00.0″E)), exact (False), start (LatLon(45°00′00.0″S, 015°00′00.0″W)) or wrap (False): 'too distant (3.69e+06) plumb to (16\\xc2\\xb056\\xe2\\x80\\xb245.9\\xe2\\x80\\xb3S, 020\\xc2\\xb017\\xe2\\x80\\xb202.98\\xe2\\x80\\xb3E)'\n    test 1736 intersecant2: 1.394e-13% 60 LatLon(05°46′39.27″N, 035°07′32.43″W)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 1737 intersecant2: 1.673e-13% 60 LatLon(32°54′03.75″N, 017°13′17.0″W)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 1738 intersecant2: center (LatLon(05°00′00.0″N, 005°00′00.0″W)), circle (3339584), end (335.04766521412824), exact (False), start (LatLon(32°54′03.75″N, 017°13′17.0″W)) or wrap (False): 'too distant (7.89e+06) plumb to (50\\xc2\\xb027\\xe2\\x80\\xb258.94\\xe2\\x80\\xb3S, 056\\xc2\\xb049\\xe2\\x80\\xb222.62\\xe2\\x80\\xb3W)'\n\n    testLatLon(pygeodesy.ellipsoidalExact, 25.08.28)\n    test 1739 isEllipsoidal: True\n    test 1740 isSpherical: False\n    test 1741 lat/lonDMS: 52.20472°N, 000.14056°E\n    test 1742 lat/lonDMS F_DM: 52°12.283′N, 000°08.434′E\n    test 1743 lat/lonDMS F_DM: 52°12.2832′N, 000°08.4336′E\n    test 1744 lat/lonDMS F_DMS: 52°12′17″N, 000°08′26″E\n    test 1745 lat/lonDMS F_DMS: 52°12′17.0″N, 000°08′26.0″E\n    test 1746 lat/lonDMS F_RAD: 0.911144N, 0.002453E\n    test 1747 isequalTo: True\n    test 1748 isequalTo: True\n    test 1749 latlon2: 52.20472, 0.14056\n    test 1750 latlon2: 52.2047, 0.1406\n    test 1751 latlon2: 52.205, 0.141\n    test 1752 latlon2: 52.2, 0.14\n    test 1753 latlon2: 52.2, 0.1\n    test 1754 latlon2: 52.0, 0.0\n    test 1755 chordTo: 12029263.15\n    test 1756 chordTo: 12029049.69\n    test 1757 initialBearingTo: 156.1106\n    test 1758 initialBearingTo: 65.9335\n    test 1759 initialBearingTo: 0.0\n    test 1760 initialBearingTo: 180.0\n    test 1761 finalBearingTo: 157.8345\n    test 1762 finalBearingTo: 93.9034\n    test 1763 bearingTo2: 156.1106, 157.8345\n    test 1764 ispolar: True\n    test 1765 copy: True\n    test 1766 __eq__: True\n    test 1767 __ne__: False\n    test 1768 equirectangularTo: 404329.56\n    test 1769 distanceTo: 404607.805988\n    test 1770 distanceTo: 404607.805988\n    test 1771 distanceTo: 3981601\n    test 1772 antipodal: False\n    test 1773 distanceTo dateline: 19959679.267\n    test 1774 distanceTo unrolled: 19959679.267\n    test 1775 antipodal: False\n    test 1776 distanceTo dateline: 9513998\n    test 1777 distanceTo unrolled: 9513998\n    test 1778 distanceTo: 18012714.66\n    test 1779 distanceTo: 20003931.46\n    test 1780 distanceTo3 dateline: 19959679.2674, 161.0677, 18.8252\n    test 1781 distanceTo3 dateline: 9513997.9901, 42.9164, 138.8903\n    test 1782 distanceTo3 dateline: 19959679.2674, 161.0677, 18.8252\n    test 1783 distanceTo3 dateline: 9513997.9901, 42.9164, 138.8903\n    test 1784 intermediateTo: 51.372275°N, 000.707253°E\n    test 1785 intermediateTo: True\n    test 1786 intermediateTo: 404607.806\n    test 1787 intermediateTo+5: 35.139582°N, 008.994368°E\n    test 1788 intermediateTo+5: 5.000\n    test 1789 intermediateTo-4: 64.894124°N, 013.705689°W\n    test 1790 intermediateTo-4: 4.000\n    test 1791 intermediateTo-h: 125.000\n    test 1792 midpointTo: 50.536583°N, 001.274507°E\n    test 1793 destination: 51.513526°N, 000.098038°W\n    test 1794 destination: 51°30′49″N, 000°05′53″W\n    test 1795 destination: 33°57′N, 118°24′W\n    test 1796 destination: 33.950367°N, 118.399012°W\n    test 1797 destination: 0.592546N, 2.066453W\n    test 1798 destination: 32.11195529°N, 064.56074722°E  FAILED, KNOWN, expected 32.11195529°N, 063.95925278°E\n    test 1799 neareston6: (LatLon(45°00′00.0″N, 001°00′00.0″E), 4755443.4294, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E))\n    test 1800 neareston6: (LatLon(45°30′03.94″N, 002°00′00.0″E), 39078.729285, 1.501072, 2, LatLon(45°00′00.0″N, 002°00′00.0″E), LatLon(46°00′00.0″N, 002°00′00.0″E))\n    test 1801 chordTo: 125203.963\n    test 1802 cosineAndoyerLambertTo: 125205.962\n    test 1803 cosineAndoyerLambertTo: 125205.962\n ./test/testLatLon.py:280: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.ellipsoidalExact.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', q.cosineForsytheAndoyerLambertTo(p), '124801.098' if Sph else '125205.965', fmt='%.3f')\n   test 1804 cosineForsyheAndoyerLambertTo: 125205.965\n    test 1805 cosineForsyheAndoyerLambertTo: 125205.965\n    test 1806 cosineLawTo: 124801.098\n    test 1807 cosineLawTo: 124801.098\n    test 1808 equirectangularTo: 124804.754\n    test 1809 equirectangularTo: 124804.754\n    test 1810 euclideanTo: 130015.089\n    test 1811 euclideanTo: 130015.089\n    test 1812 flatLocalTo: 125209.633\n    test 1813 flatLocalTo: 125209.633\n    test 1814 flatPolarTo: 133663.257\n    test 1815 flatPolarTo: 133663.257\n    test 1816 hartzell: 53.3206°N, 001.7297°W\n    test 1817 hartzell: 53.349541°N, 001.7297°W\n    test 1818 height4: 1.04135197254e-09  FAILED, KNOWN, expected 0.0\n    test 1819 height4: (3820333.9, -115367.0, 5097204.4, -6584.9)\n    test 1820 height4: 53°19′14.2″N, 001°43′46.9″W\n    test 1821 height4: 53°19′14.2″N, 001°43′46.9″W\n    test 1822 haversineTo: 124801.098\n    test 1823 haversineTo: 124801.098\n    test 1824 hubenyTo: <bound method LatLon.flatLocalTo of LatLon(53°19′14.16″N, 001°43′46.92″W)>\n    test 1825 hubenyTo: <bound method LatLon.flatLocalTo of LatLon(53°11′19.32″N, 000°08′00.24″E)>\n    test 1826 thomasTo: 125206.188\n    test 1827 thomasTo: 125206.188\n    test 1828 vincentysTo: 124801.098\n    test 1829 vincentysTo: 124801.098\n    test 1830 isclockwise: False\n    test 1831 isclockwise*: False\n    test 1832 isclockwise: True\n    test 1833 isclockwise*: True\n    test 1834 isclockwise: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 1835 isclockwise*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 1836 isclockwise: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 1837 isclockwise*: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 1838 isconvex: False\n    test 1839 isconvex*: False\n    test 1840 isconvex: True\n    test 1841 isconvex*: True\n    test 1842 isconvex: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 1843 isconvex*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 1844 isenclosedBy1: True\n    test 1845 isenclosedBy1*: True\n    test 1846 isenclosedBy2: False\n    test 1847 isenclosedBy2*: False\n    test 1848 isenclosedBy3: False\n    test 1849 isenclosedBy3*: False\n    test 1850 isenclosedBy4: False\n    test 1851 isenclosedBy4*: False\n    test 1852 isenclosedBy5: False\n    test 1853 isenclosedBy5*: False\n    test 1854 isenclosedBy6: True\n    test 1855 isenclosedBy6*: True\n    test 1856 isenclosedBy7: True\n    test 1857 isenclosedBy7*: True\n    test 1858 isenclosedBy-CCW: True\n    test 1859 isenclosedBy-CW : True\n    test 1860 isenclosedBy-CCW: True\n    test 1861 initialBearingTo: 102.392291\n    test 1862 compassAngleTo: 100.017\n    test 1863 compassAngleTo: 105.599\n    test 1864 initialBearingTo: 288.676039\n    test 1865 compassAngleTo: 280.017\n    test 1866 compassAngleTo: 285.599\n    test 1867 equirectangularTo: 592.185\n    test 1868 distanceTo: 593.571\n    test 1869 bearingTo: 0.0\n    test 1870 compassAngleTo: 0.0\n    test 1871 bearingTo: 45.2  FAILED, KNOWN, expected 45.0\n    test 1872 compassAngleTo: 45.0\n    test 1873 bearingTo: 90.0\n    test 1874 compassAngleTo: 90.0\n    test 1875 bearingTo: 180.0\n    test 1876 compassAngleTo: 180.0\n    test 1877 bearingTo: 225.2  FAILED, KNOWN, expected 225.0\n    test 1878 compassAngleTo: 225.0\n    test 1879 bearingTo: 314.8  FAILED, KNOWN, expected 315.0\n    test 1880 compassAngleTo: 315.0\n    test 1881 bearingTo: 270.0\n    test 1882 compassAngleTo: 270.0\n    test 1883 bearingTo: 0.0  FAILED, KNOWN, expected 359.4\n    test 1884 compassAngleTo: 359.4\n    test 1885 latlon2: (53.0, 1.0)\n    test 1886 philam2: (0.93, 0.02)\n    test 1887 bearingTo: 31\n    test 1888 compassAngleTo: 31\n    test 1889 compassAngleTo: 45\n\n    test 1890 boundsOf: <class 'pygeodesy.namedTuples.Bounds2Tuple'>\n    test 1891 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 1892 latlon2: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 1893 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 1894 isequalTo: <type 'bool'>\n    test 1895 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 1896 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 1897 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 1898 xyz3: <type 'tuple'>\n    test 1899 xyzh: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 1900 compassAngleTo: <type 'float'>\n    test 1901 cosineLawTo: <type 'float'>\n    test 1902 euclideanTo: <type 'float'>\n    test 1903 flatLocalTo: <type 'float'>\n    test 1904 flatPolarTo: <type 'float'>\n    test 1905 haversineTo: <type 'float'>\n    test 1906 hubenyTo: <type 'float'>\n    test 1907 vincentysTo: <type 'float'>\n    test 1908 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 1909 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 1910 toLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 1911 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 1912 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 1913 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 1914 toNvector: (0.615661, 0.0, 0.788011, 0)\n    test 1915 toVector: (3934960.466675, 0.0, 5002803.345483)\n    test 1916 toVector3d: (0.61823, 0.0, 0.786)\n\n    test 1917 trilaterate5 (pygeodesy.ellipsoidalExact) .min: 305.091\n    test 1918 trilaterate5 (pygeodesy.ellipsoidalExact) .point: 42.66933643°N, 002.48620262°E\n    test 1919 trilaterate5 (pygeodesy.ellipsoidalExact) .max: 1592.545\n    test 1920 trilaterate5 (pygeodesy.ellipsoidalExact) .point: 42.65141232°N, 002.46816989°E\n    test 1921 trilaterate5 (pygeodesy.ellipsoidalExact) .n: 3\n    test 1922 trilaterate5 (pygeodesy.ellipsoidalExact) .min: 127.229\n    test 1923 trilaterate5 (pygeodesy.ellipsoidalExact) .max: 152.612\n    test 1924 trilaterate5 (pygeodesy.ellipsoidalExact) .point: 42.67815375°N, 002.49950041°E\n    test 1925 trilaterate5 (pygeodesy.ellipsoidalExact) .n: 2\n    test 1926 trilaterate5 (pygeodesy.ellipsoidalExact) .min: 2400.293\n    test 1927 trilaterate5 (pygeodesy.ellipsoidalExact) .max: 2400.293\n    test 1928 trilaterate5 (pygeodesy.ellipsoidalExact) .point: 42.66128984°N, 002.47973818°E\n    test 1929 trilaterate5 (pygeodesy.ellipsoidalExact) .min- is .maxPoint: True\n    test 1930 trilaterate5 (pygeodesy.ellipsoidalExact) .n: 1\n    test 1931 trilaterate5 (pygeodesy.ellipsoidalExact) .min: 1343.743\n    test 1932 trilaterate5 (pygeodesy.ellipsoidalExact) .point: 42.69131964°N, 002.50112167°E\n    test 1933 trilaterate5 (pygeodesy.ellipsoidalExact) .max: 1445.554\n    test 1934 trilaterate5 (pygeodesy.ellipsoidalExact) .point: 42.67815375°N, 002.49950041°E\n    test 1935 trilaterate5 (pygeodesy.ellipsoidalExact) .n: 2\n    test 1936 radii11: Radii11Tuple(rA=7244.792747, rB=1828.106695, rC=2.25502, cR=57792.067128, rIn=57.366968, riS=2.087668, roS=2.443334, a=1830.361715, b=7247.047766, c=9072.899442, s=9075.154461)\n    test 1937 circum3 (pygeodesy.ellipsoidalExact) .radius: 57792.067\n    test 1938 circum3 (pygeodesy.ellipsoidalExact) .center: 43.053532°N, 002.943255°E, -261.66m\n    test 1939 circum3 (pygeodesy.ellipsoidalExact) .deltas: (-0.0, 0.0, 11.858)  FAILED, KNOWN, expected (0.0, 0.0, 11.383)\n    test 1940 circum3 (pygeodesy.ellipsoidalExact) .d1: 57792.858\n    test 1941 circum3 (pygeodesy.ellipsoidalExact) .d2: 57792.859\n    test 1942 circum3 (pygeodesy.ellipsoidalExact) .d3: 57792.859\n    test 1943 circum3 (pygeodesy.ellipsoidalExact) .datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 1944 circum3 (pygeodesy.ellipsoidalExact) .Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n\n    test 1945 radii11: Radii11Tuple(rA=7244.792747, rB=1828.106695, rC=2.25502, cR=57792.067128, rIn=57.366968, riS=2.087668, roS=2.443334, a=1830.361715, b=7247.047766, c=9072.899442, s=9075.154461)\n    test 1946 circum4 (pygeodesy.ellipsoidalExact) .radius: 3184256.748\n    test 1947 circum4 (pygeodesy.ellipsoidalExact) .center: 43.054367°N, 002.942573°E, -3183993.92m\n    test 1948 circum4 (pygeodesy.ellipsoidalExact) .rank: 3\n    test 1949 circum4 (pygeodesy.ellipsoidalExact) .residuals: ()\n    test 1950 circum4 (pygeodesy.ellipsoidalExact) .d1: 57818.033\n    test 1951 circum4 (pygeodesy.ellipsoidalExact) .d2: 57834.176\n    test 1952 circum4 (pygeodesy.ellipsoidalExact) .d3: 57830.992\n    test 1953 circum4 (pygeodesy.ellipsoidalExact) .datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 1954 circum4 (pygeodesy.ellipsoidalExact) .Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 1955 radii11: Radii11Tuple(rA=327537.482637, rB=776914.262482, rC=784245.052526, cR=780602.180901, rIn=325058.721103, riS=84975.664195, roS=INF, a=1561159.315008, b=1111782.535163, c=1104451.745119, s=1888696.797645)\n    test 1956 circin6 (pygeodesy.ellipsoidalExact) .rB+rC: 1561159.315\n    test 1957 circin6 (pygeodesy.ellipsoidalExact) .rC+pA: 1111782.535\n    test 1958 circin6 (pygeodesy.ellipsoidalExact) .rA+rB: 1104451.745\n    test 1959 circin6 (pygeodesy.ellipsoidalExact) .radius: 325058.721\n    test 1960 circin6 (pygeodesy.ellipsoidalExact) .center: 02.948531°N, 002.932537°E, -40041.19m\n    test 1961 circin6 (pygeodesy.ellipsoidalExact) .deltas: (0.0, 0.0, 0.267132)  FAILED, KNOWN, expected (0.0, 0.0, 0.090491)\n    test 1962 circin6 (pygeodesy.ellipsoidalExact) .cA: 05.04314°N, 005.014578°E, -48104.09m\n    test 1963 circin6 (pygeodesy.ellipsoidalExact) .cB: 00.0°N, 002.941713°E, -20168.62m\n    test 1964 circin6 (pygeodesy.ellipsoidalExact) .cC: 02.961566°N, 000.0°E, -20113.46m\n    test 1965 circin6 (pygeodesy.ellipsoidalExact) .dA: 327263.596\n    test 1966 circin6 (pygeodesy.ellipsoidalExact) .dB: 326036.153\n    test 1967 circin6 (pygeodesy.ellipsoidalExact) .dC: 326020.432\n\n    test 1968 area cw/ccw: 1.0\n\n    testNOAA(pygeodesy.ellipsoidalExact, 25.08.28)\n    test 1969 NOAAexample1: 191872.1190, 249 03 16.4237, 67 59 11.1619\n    test 1970 NOAAexample2: 182009.1679, 254 42 44.6439, 73 09 21.3315\n    test 1971 NOAAexample3: 123456.7891, 245 00 34.7001, 64 20 24.6864\n    test 1972 NOAAexample4: 145239.0603, 114 29 26.9586, 295 21 32.6566\n\n    testIntersection3(pygeodesy.ellipsoidalExact, 25.08.28)\n    test 1973 (30, 17): (LatLon(30°52′03.1″N, 015°30′38.41″E), 0, 0)\n    test 1974 (30, 17): (LatLon(30°52′03.1″N, 015°30′38.41″E), -1, 0)\n    test 1975 (-1,  3): (LatLon(01°34′52.49″N, 006°00′51.83″E), -1, -2)\n    test 1976 (-1,  3): (LatLon(01°34′52.49″N, 006°00′51.83″E), -1, 2)\n    test 1977 (65, 32): (LatLon(56°58′26.51″N, 032°00′00.0″E), 1, 0)\n    test 1978 (65, 32): (LatLon(56°58′26.51″N, 032°00′00.0″E), 1, 2)\n    test 1979 (-2, 17): <class 'pygeodesy.errors.IntersectionError'>\n    test 1980 (49, 25): (LatLon(49°00′00.0″N, 025°00′00.0″E), 0, -2)  FAILED, KNOWN, expected (LatLon(49°00′00.0″N, 025°00′00.0″E), 0, 0)\n    test 1981 #58: (LatLon(01°54′25.65″S, 005°37′48.76″E), 1, -2)\n    test 1982 #58: <class 'pygeodesy.errors.IntersectionError'>\n    test 1983 intersection3: (LatLon(54°43′01.31″N, 014°33′49.88″W), 0, 0)\n    test 1984 intersection3: 54.71703°N, 014.563856°W\n\n    testIntersections2(pygeodesy.ellipsoidalExact, 25.08.28)\n    test 1985 EquidistantExact: 36.9879°N, 088.1564°W, 38.2441°N, 092.3835°W\n    test 1986 EquidistantExact: 36.9879°N, 088.1564°W, 38.2441°N, 092.3835°W\n    test 1987 EquidistantExact: 00.0°N, 035.3478°W, 00.0°S, 035.3478°E\n    test 1988 EquidistantExact: 1.63715 (% of radius)\n    test 1989 EquidistantExact: 22.657°N, 000.0°E, 22.657°S, 000.0°E\n    test 1990 EquidistantExact: 1.30663 (% of radius)\n    test 1991 EquidistantExact: 29.4898°N, 040.1785°W, 29.4898°S, 040.1785°E\n    test 1992 EquidistantExact: 1.31396 (% of radius)\n    test 1993 EquidistantExact: 02.7402°S, 044.885°E, 02.7402°N, 044.885°E\n    test 1994 EquidistantExact: 1.83268 (% of radius)\n    test 1995 EquidistantExact 5: 05.0558°S, 005.0271°W, 05.0558°N, 005.0271°E\n    test 1996 EquidistantExact 5: 2.09389e-16 (% of radius)\n    test 1997 EquidistantExact 10: 10.1081°S, 010.2901°W, 10.1081°N, 010.2901°E\n    test 1998 EquidistantExact 10: 1.25634e-15 (% of radius)\n    test 1999 EquidistantExact 15: 15.1433°S, 016.0531°W, 15.1433°N, 016.0531°E\n    test 2000 EquidistantExact 15: 1.9543e-15 (% of radius)\n    test 2001 EquidistantExact 20: 20.1241°S, 022.6411°W, 20.1241°N, 022.6411°E\n    test 2002 EquidistantExact 20: 1.25634e-15 (% of radius)\n    test 2003 EquidistantExact 25: 24.9655°S, 030.4846°W, 24.9655°N, 030.4846°E\n    test 2004 EquidistantExact 25: 1.00507e-15 (% of radius)\n    test 2005 EquidistantExact 30: 29.4898°S, 040.1785°W, 29.4898°N, 040.1785°E\n    test 2006 EquidistantExact 30: 5.58372e-16 (% of radius)\n    test 2007 EquidistantExact 35: 33.3405°S, 052.5516°W, 33.3405°N, 052.5516°E\n    test 2008 EquidistantExact 35: 5.98255e-16 (% of radius)\n    test 2009 EquidistantExact 40: 35.8146°S, 068.7149°W, 35.8146°N, 068.7149°E\n    test 2010 EquidistantExact 40: 1.8845e-15 (% of radius)\n    test 2011 EquidistantExact 45: 35.5368°S, 090.0616°W, 35.5368°N, 090.0616°E\n    test 2012 EquidistantExact 45: 5.58372e-16 (% of radius)\n    test 2013 EquidistantExact 50: 29.5972°S, 118.8695°W, 29.5972°N, 118.8695°E\n    test 2014 EquidistantExact 50: 3.35023e-16 (% of radius)\n    test 2015 EquidistantExact: center1 (LatLon(55°00′00.0″N, 055°00′00.0″W)), center2 (LatLon(55°00′00.0″S, 055°00′00.0″E)), radius1 (12231458.77080936) or radius2 (12231458.77080936): 'no convergence (188568)': tolerance (0.001) too low, antipodal or near-polar?  FAILED, KNOWN, expected 2-tuple\n    test 2016 EquidistantExact: center1 (LatLon(60°00′00.0″N, 060°00′00.0″W)), center2 (LatLon(60°00′00.0″S, 060°00′00.0″E)), radius1 (13343409.568155663) or radius2 (13343409.568155663): 'no convergence (1.01348e+06)': tolerance (0.001) too low, antipodal or near-polar?  FAILED, KNOWN, expected 2-tuple\n    test 2017 EquidistantExact: center1 (LatLon(65°00′00.0″N, 065°00′00.0″W)), center2 (LatLon(65°00′00.0″S, 065°00′00.0″E)), radius1 (14455360.36550197) or radius2 (14455360.36550197): 'no convergence (1.55092e+06)': tolerance (0.001) too low, antipodal or near-polar?  FAILED, KNOWN, expected 2-tuple\n    test 2018 EquidistantExact: 37.183754°S, 018.025255°E Random +/- 45\n    test 2019 EquidistantExact: 37.183754°S, 018.025255°E, 57.262378°N, 001.156656°W  d 2.64228e-09 meter (iteration 3)\n    test 2020 EquidistantExact: 37.183754°S, 018.025255°E, 17.874832°S, 037.1748°E  d 6.1421e-08 meter (iteration 3)\n    test 2021 EquidistantExact: 37.183754°S, 018.025255°E, 34.346876°S, 016.356135°E  d 2.03849e-08 meter (iteration 4)\n    test 2022 EquidistantExact: 37.183754°S, 018.025255°E, 04.476318°N, 019.399851°E  d 1.44799e-09 meter (iteration 3)\n    test 2023 EquidistantExact: 37.183754°S, 018.025255°E, 34.962567°S, 021.905153°E  d 2.64228e-09 meter (iteration 2)\n    test 2024 EquidistantExact: 37.183754°S, 018.025255°E, 01.076254°S, 058.122622°E  d 3.29591e-09 meter (iteration 3)\n    test 2025 EquidistantExact: 37.183754°S, 018.025255°E, 32.652342°N, 064.727793°E  d 1.11066e-08 meter (iteration 3)\n    test 2026 EquidistantExact: 37.183754°S, 018.025255°E, 37.750758°N, 059.997642°E  d 3.06108e-09 meter (iteration 3)\n    test 2027 EquidistantExact: 37.183754°S, 018.025255°E, 32.581944°N, 086.063998°E  d 6.03544e-09 meter (iteration 3)\n    test 2028 EquidistantExact: 37.183754°S, 018.025255°E, 54.256186°S, 056.779969°W  d 2.06537e-08 meter (iteration 3)\n    test 2029 EquidistantExact: 37.183754°S, 018.025255°E, 39.458715°S, 075.758166°W  d 1.77164e-08 meter (iteration 3)\n    test 2030 EquidistantExact: 37.183754°S, 018.025255°E, 08.849618°N, 036.432364°E  d 8.85548e-09 meter (iteration 3)\n\n    testKarney(pygeodesy.ellipsoidalExact, 25.08.28, datum='WGS84')\n    test 2031 distanceTo: 866455.4329\n    test 2032 coincident: 0.0\n    test 2033 toDatum: OSGB36\n    test 2034 ValueError2: Ellipsoid 'Airy1830': incompatible with Ellipsoid 'WGS84'\n    test 2035 isEllipsoidal: True\n    test 2036 copy: True\n    test 2037 isEllipsoidal: True\n    test 2038 isSpherical: False\n    test 2039 copy: 37°57′03.7203″S, 144°25′29.5244″E\n\n    testKarneyVincenty(pygeodesy.ellipsoidalExact, 25.08.28, datum='WGS84')\n    test 2040 coincident: 0.0\n    test 2041 coincident: 0.0, 0.0, 0.0\n    test 2042 destination: 37.6528°S, 143.9265°E\n    test 2043 destination: True\n    test 2044 destination2: 37.652821°S, 143.926496°E, 307.1736°NW\n    test 2045 destination2: True\n    test 2046 finalBearingOn: 307.1736°, 307°10′25.07″NW\n    test 2047 distanceTo: 969954.166\n    test 2048 distanceTo3: 969954.166314, 9.141877, 11.29722\n    test 2049 distanceTo2: 972708.16174, 11.22502\n    test 2050 initialBearingTo: 9.1419°, 9°08′30.76″N\n    test 2051 destination: 58.64402°N, 003.07009°W\n    test 2052 finalBearingTo: 11.2972°, 11°17′49.99″NNE\n    test 2053 finalBearingOn: 11.2972°, 11°17′49.99″NNE\n    test 2054 distanceTo: 404607.806\n    test 2055 distanceTo3: 404607.805988, 156.11064, 157.8345\n    test 2056 distanceTo2: 402574.597287, 157.726344\n    test 2057 initialBearingTo: 156.1106°, 156°06′38.31″SSE\n    test 2058 destination: 48.857°N, 002.351°E\n    test 2059 finalBearingTo: 157.8345°, 157°50′04.2″SSE\n    test 2060 finalBearingOn: 157.8345°, 157°50′04.2″SSE\n    test 2061 distanceTo: 54973.295\n    test 2062 distanceTo3: 54973.29527, 233.13008, 232.82461\n    test 2063 distanceTo2: 54903.41209, 232.9209\n    test 2064 initialBearingTo: 233.1301°, 233°07′48.28″SW\n    test 2065 destination: 37.6528°N, 143.9265°E\n    test 2066 finalBearingTo: 232.8246°, 232°49′28.59″SW\n    test 2067 finalBearingOn: 232.8246°, 232°49′28.59″SW\n    test 2068 distanceToMP: 298396.057\n    test 2069 distanceToSM: 185.415\n    test 2070 distanceToMP: 111319.491\n    test 2071 distanceToMP: 110574.389  FAILED, KNOWN, expected 110574.361\n    test 2072 distanceToKW: 222638.982\n    test 2073 distanceToKW: 111319.491\n    test 2074 distanceTo3: 54972.271\n    test 2075 distanceTo3: 306°52′05.37″\n    test 2076 distanceTo3: 307°10′25.07″\n    test 2077 distanceTo2: 54902.390\n    test 2078 distanceTo2: 307°04′38.41″\n\n    testKarneyVincentyError(pygeodesy.ellipsoidalExact, 25.08.28, datum='WGS84')\n    test 2079 distanceTo/antipodal (None): 19936288.579\n    test 2080 distanceTo/VincentyError (None): 19944127.421\n    test 2081 initialBearingTo/VincentyError (None): 15.556883\n    test 2082 finalBearingTo/VincentyError (None): 164.442514\n    test 2083 distanceTo/equatorial (None): 20001517.12  FAILED, KNOWN, expected 20003931.46\n    test 2084 initialBearingTo/equatorial (None): 0.0\n    test 2085 distanceTo/coincident (None): 111319.491\n    test 2086 distanceTo/meridional (None): 9999551.606\n    test 2087 initialBearingTo/meridional (None): 180.0\n    test 2088 distanceTo/coincident (None): 0.0\n    test 2089 initialBearingTo/coincident (None): 180.0\n    test 2090 finalBearingTo/coincident (None): 180.0\n    test 2091 destination/coincident (None): 50.06632°N, 005.71475°W\n    test 2092 distanceTo/anti-meridian (None): 10825924.1\n    test 2093 distanceTo/quadrants (None): 4015703.02\n    test 2094 distanceTo/quadrants (None): 4015703.02\n    test 2095 distanceTo/quadrants (None): 4015703.02\n    test 2096 distanceTo/quadrants (None): 4015703.02\n    test 2097 distanceTo/quadrants (None): 4015703.02\n    test 2098 distanceTo/quadrants (None): 4015703.02\n    test 2099 distanceTo/quadrants (None): 4015703.02\n    test 2100 distanceTo/quadrants (None): 4015703.02\n    test 2101 distanceTo/quadrants (None): 4015703.02\n    test 2102 distanceTo/quadrants (None): 4015703.02\n    test 2103 distanceTo/quadrants (None): 4015703.02\n    test 2104 distanceTo/quadrants (None): 4015703.02\n    test 2105 distanceTo/quadrants (None): 4015703.02\n    test 2106 distanceTo/quadrants (None): 4015703.02\n    test 2107 distanceTo/quadrants (None): 4015703.02\n    test 2108 distanceTo/quadrants (None): 4015703.02\n\n    testKarney(pygeodesy.ellipsoidalExact, 25.08.28, datum='NAD83')\n    test 2109 distanceTo: 866455.4329\n    test 2110 coincident: 0.0\n    test 2111 toDatum: OSGB36\n    test 2112 ValueError2: Ellipsoid 'Airy1830': incompatible with Ellipsoid 'GRS80'\n    test 2113 isEllipsoidal: True\n    test 2114 copy: True\n    test 2115 isEllipsoidal: True\n    test 2116 isSpherical: False\n    test 2117 copy: 37°57′03.7203″S, 144°25′29.5244″E\n\n    testKarneyVincenty(pygeodesy.ellipsoidalExact, 25.08.28, datum='NAD83')\n    test 2118 coincident: 0.0\n    test 2119 coincident: 0.0, 0.0, 0.0\n    test 2120 destination: 37.6528°S, 143.9265°E\n    test 2121 destination: True\n    test 2122 destination2: 37.652821°S, 143.926496°E, 307.1736°NW\n    test 2123 destination2: True\n    test 2124 finalBearingOn: 307.1736°, 307°10′25.07″NW\n    test 2125 distanceTo: 969954.166\n    test 2126 distanceTo3: 969954.166314, 9.141877, 11.29722\n    test 2127 distanceTo2: 972708.16174, 11.22502\n    test 2128 initialBearingTo: 9.1419°, 9°08′30.76″N\n    test 2129 destination: 58.64402°N, 003.07009°W\n    test 2130 finalBearingTo: 11.2972°, 11°17′49.99″NNE\n    test 2131 finalBearingOn: 11.2972°, 11°17′49.99″NNE\n    test 2132 distanceTo: 404607.806\n    test 2133 distanceTo3: 404607.805988, 156.11064, 157.8345\n    test 2134 distanceTo2: 402574.597287, 157.726344\n    test 2135 initialBearingTo: 156.1106°, 156°06′38.31″SSE\n    test 2136 destination: 48.857°N, 002.351°E\n    test 2137 finalBearingTo: 157.8345°, 157°50′04.2″SSE\n    test 2138 finalBearingOn: 157.8345°, 157°50′04.2″SSE\n    test 2139 distanceTo: 54973.295\n    test 2140 distanceTo3: 54973.29527, 233.13008, 232.82461\n    test 2141 distanceTo2: 54903.41209, 232.9209\n    test 2142 initialBearingTo: 233.1301°, 233°07′48.28″SW\n    test 2143 destination: 37.6528°N, 143.9265°E\n    test 2144 finalBearingTo: 232.8246°, 232°49′28.59″SW\n    test 2145 finalBearingOn: 232.8246°, 232°49′28.59″SW\n    test 2146 distanceToMP: 298396.057\n    test 2147 distanceToSM: 185.415\n    test 2148 distanceToMP: 111319.491\n    test 2149 distanceToMP: 110574.389  FAILED, KNOWN, expected 110574.361\n    test 2150 distanceToKW: 222638.982\n    test 2151 distanceToKW: 111319.491\n    test 2152 distanceTo3: 54972.271\n    test 2153 distanceTo3: 306°52′05.37″\n    test 2154 distanceTo3: 307°10′25.07″\n    test 2155 distanceTo2: 54902.390\n    test 2156 distanceTo2: 307°04′38.41″\n\n    testKarneyVincentyError(pygeodesy.ellipsoidalExact, 25.08.28, datum='NAD83')\n    test 2157 distanceTo/antipodal (None): 19936288.579\n    test 2158 distanceTo/VincentyError (None): 19944127.421\n    test 2159 initialBearingTo/VincentyError (None): 15.556883\n    test 2160 finalBearingTo/VincentyError (None): 164.442514\n    test 2161 distanceTo/equatorial (None): 20001517.12  FAILED, KNOWN, expected 20003931.46\n    test 2162 initialBearingTo/equatorial (None): 0.0\n    test 2163 distanceTo/coincident (None): 111319.491\n    test 2164 distanceTo/meridional (None): 9999551.606\n    test 2165 initialBearingTo/meridional (None): 180.0\n    test 2166 distanceTo/coincident (None): 0.0\n    test 2167 initialBearingTo/coincident (None): 180.0\n    test 2168 finalBearingTo/coincident (None): 180.0\n    test 2169 destination/coincident (None): 50.06632°N, 005.71475°W\n    test 2170 distanceTo/anti-meridian (None): 10825924.1\n    test 2171 distanceTo/quadrants (None): 4015703.02\n    test 2172 distanceTo/quadrants (None): 4015703.02\n    test 2173 distanceTo/quadrants (None): 4015703.02\n    test 2174 distanceTo/quadrants (None): 4015703.02\n    test 2175 distanceTo/quadrants (None): 4015703.02\n    test 2176 distanceTo/quadrants (None): 4015703.02\n    test 2177 distanceTo/quadrants (None): 4015703.02\n    test 2178 distanceTo/quadrants (None): 4015703.02\n    test 2179 distanceTo/quadrants (None): 4015703.02\n    test 2180 distanceTo/quadrants (None): 4015703.02\n    test 2181 distanceTo/quadrants (None): 4015703.02\n    test 2182 distanceTo/quadrants (None): 4015703.02\n    test 2183 distanceTo/quadrants (None): 4015703.02\n    test 2184 distanceTo/quadrants (None): 4015703.02\n    test 2185 distanceTo/quadrants (None): 4015703.02\n    test 2186 distanceTo/quadrants (None): 4015703.02\n\n    testKarney_s(pygeodesy.ellipsoidalExact, 25.08.28)\n    test 2187 .lat1: -41.320\n    test 2188 .lon1: 174.810\n    test 2189 .azi1: 161.067669986160\n    test 2190 .lat2: 40.960\n    test 2191 .lon2: -5.500\n    test 2192 .azi2: 18.825195123247\n    test 2193 .s12: 19959679.267353814095  FAILED, KNOWN, expected 19959679.267353821546\n    test 2194 distanceTo3: 19959679.267354, 161.067670, 18.825195\n    test 2195 destination2: 40.96, -5.5, 18.825195123247\n    test 2196 areaOf: 1.366270368e+13\n    test 2197 perimeterOf: 1.683089136e+07\n    test 2198 isclockwise: False\n    test 2199 isclockwise: True\n    test 2200 areaCO: 2.69154549884e+11\n    test 2201 isclockwise: True\n    test 2202 perimeterCO: 2099102.485159  FAILED, KNOWN, expected 2098430.887891\n\n    1165 of 2202 testEllipsoidal.py tests (52.9%) FAILED, incl. 149 KNOWN plus 1016 DeprecationWarnings, 64 skipped (pygeodesy 26.3.26 Python 2.7.18 64bit arm64_x86_64 geographiclib 1.50 numpy 1.16.6 scipy 1.2.2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 -W  default) 5:57.572\nrunning /Library/Framewo....ython -W default ~/PyGeodesy/test/testEllipsoidalGeodTest.py\n./pygeodesy/ellipsoidalKarney.py:94: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return self.datum.ellipsoid.geodesic\n\n    testing testEllipsoidalGeodTest.py 23.12.18 (module pygeodesy.ellipsoidalKarney 25.05.27)\n    test 1 line 1 lat: -48.164271\n    test 2 line 1 lon: 5.762345\n    test 3 line 1 fb: 175.334308\n    test 4 line 1 lat2: -48.164270779098\n    test 5 line 1 lon2: 5.762344694676  FAILED, KNOWN, expected 5.762344694677\n    test 6 line 1 azi2: 175.334308316285\n    test 7 line 1 lat2: -48.164270779098\n    test 8 line 1 lon2: 5.762344694677\n    test 9 line 1 azi2: 175.334308316285\n    test 10 line 2 lat: -23.186513\n    test 11 line 2 lon: 68.567247\n    test 12 line 2 fb: 154.287114\n    test 13 line 2 lat2: -23.186512533703\n    test 14 line 2 lon2: 68.567247430960\n    test 15 line 2 azi2: 154.287114123872\n    test 16 line 2 lat2: -23.186512533703\n    test 17 line 2 lon2: 68.567247430960\n    test 18 line 2 azi2: 154.287114123872\n    test 19 line 3 lat: 53.997072\n    test 20 line 3 lon: 44.520619\n    test 21 line 3 fb: 52.159487\n    test 22 line 3 lat2: 53.997072295385\n    test 23 line 3 lon2: 44.520619105668\n    test 24 line 3 azi2: 52.159486739948\n    test 25 line 3 lat2: 53.997072295385\n    test 26 line 3 lon2: 44.520619105668\n    test 27 line 3 azi2: 52.159486739948\n    test 28 line 4 lat: -49.416672\n    test 29 line 4 lon: 166.828083\n    test 30 line 4 fb: 22.033031\n    test 31 line 4 lat2: -49.416672064706\n    test 32 line 4 lon2: 166.828083210689\n    test 33 line 4 azi2: 22.033030848249\n    test 34 line 4 lat2: -49.416672064706\n    test 35 line 4 lon2: 166.828083210689\n    test 36 line 4 azi2: 22.033030848249\n    test 37 line 5 lat: -60.405136\n    test 38 line 5 lon: 110.581140\n    test 39 line 5 fb: 75.518296\n    test 40 line 5 lat2: -60.405136414530\n    test 41 line 5 lon2: 110.581139538777\n    test 42 line 5 azi2: 75.518295964649\n    test 43 line 5 lat2: -60.405136414530\n    test 44 line 5 lon2: 110.581139538777\n    test 45 line 5 azi2: 75.518295964649\n    test 46 line 6 lat: -11.212600\n    test 47 line 6 lon: 144.177077\n    test 48 line 6 fb: 133.027766\n    test 49 line 6 lat2: -11.212600121556\n    test 50 line 6 lon2: 144.177076511360\n    test 51 line 6 azi2: 133.027766301029\n    test 52 line 6 lat2: -11.212600121556\n    test 53 line 6 lon2: 144.177076511360\n    test 54 line 6 azi2: 133.027766301029\n    test 55 line 7 lat: -6.529067\n    test 56 line 7 lon: 2.895924\n    test 57 line 7 fb: 178.740350\n    test 58 line 7 lat2: -6.529066987956\n    test 59 line 7 lon2: 2.895923948125\n    test 60 line 7 azi2: 178.740350145954\n    test 61 line 7 lat2: -6.529066987956\n    test 62 line 7 lon2: 2.895923948125\n    test 63 line 7 azi2: 178.740350145954\n    test 64 line 8 lat: -8.855512\n    test 65 line 8 lon: 112.749196\n    test 66 line 8 fb: 119.512004\n    test 67 line 8 lat2: -8.855512357257\n    test 68 line 8 lon2: 112.749196494485\n    test 69 line 8 azi2: 119.512003891282\n    test 70 line 8 lat2: -8.855512357257\n    test 71 line 8 lon2: 112.749196494485\n    test 72 line 8 azi2: 119.512003891282\n    test 73 line 9 lat: 29.866967\n    test 74 line 9 lon: 171.726893\n    test 75 line 9 fb: 171.662245\n    test 76 line 9 lat2: 29.866967483293\n    test 77 line 9 lon2: 171.726892560963\n    test 78 line 9 azi2: 171.662244609397\n    test 79 line 9 lat2: 29.866967483293\n    test 80 line 9 lon2: 171.726892560963\n    test 81 line 9 azi2: 171.662244609397\n    test 82 line 10 lat: -29.238404\n    test 83 line 10 lon: 133.459814\n    test 84 line 10 fb: 69.814124\n    test 85 line 10 lat2: -29.238404337998\n    test 86 line 10 lon2: 133.459813533284\n    test 87 line 10 azi2: 69.814124320813\n    test 88 line 10 lat2: -29.238404337998\n    test 89 line 10 lon2: 133.459813533284\n    test 90 line 10 azi2: 69.814124320813\n    test 91 line 11 lat: 55.600487\n    test 92 line 11 lon: 75.128743\n    test 93 line 11 fb: 153.896689\n    test 94 line 11 lat2: 55.600487151983\n    test 95 line 11 lon2: 75.128743229495\n    test 96 line 11 azi2: 153.896688535572\n    test 97 line 11 lat2: 55.600487151983\n    test 98 line 11 lon2: 75.128743229496  FAILED, KNOWN, expected 75.128743229495\n    test 99 line 11 azi2: 153.896688535572\n    test 100 line 12 lat: -22.858435\n    test 101 line 12 lon: 67.207513\n    test 102 line 12 fb: 142.939529\n    test 103 line 12 lat2: -22.858434825399\n    test 104 line 12 lon2: 67.207513019332\n    test 105 line 12 azi2: 142.939529056687\n    test 106 line 12 lat2: -22.858434825399\n    test 107 line 12 lon2: 67.207513019332\n    test 108 line 12 azi2: 142.939529056687\n    test 109 line 13 lat: -32.634475\n    test 110 line 13 lon: 22.238523\n    test 111 line 13 fb: 172.112993\n    test 112 line 13 lat2: -32.634475461067\n    test 113 line 13 lon2: 22.238523021935\n    test 114 line 13 azi2: 172.112992582333\n    test 115 line 13 lat2: -32.634475461067\n    test 116 line 13 lon2: 22.238523021935\n    test 117 line 13 azi2: 172.112992582333\n    test 118 line 14 lat: 62.224985\n    test 119 line 14 lon: 47.119133\n    test 120 line 14 fb: 54.318105\n    test 121 line 14 lat2: 62.224984867045\n    test 122 line 14 lon2: 47.119133304525\n    test 123 line 14 azi2: 54.318105291965\n    test 124 line 14 lat2: 62.224984867045\n    test 125 line 14 lon2: 47.119133304525\n    test 126 line 14 azi2: 54.318105291965\n    test 127 line 15 lat: 33.069613\n    test 128 line 15 lon: 5.796996\n    test 129 line 15 fb: 17.403845\n    test 130 line 15 lat2: 33.069613195450\n    test 131 line 15 lon2: 5.796995960186\n    test 132 line 15 azi2: 17.403844642346\n    test 133 line 15 lat2: 33.069613195450\n    test 134 line 15 lon2: 5.796995960186\n    test 135 line 15 azi2: 17.403844642346\n    test 136 line 16 lat: 53.760900\n    test 137 line 16 lon: 119.204306\n    test 138 line 16 fb: 141.069793\n    test 139 line 16 lat2: 53.760899500985\n    test 140 line 16 lon2: 119.204305898518\n    test 141 line 16 azi2: 141.069793254983\n    test 142 line 16 lat2: 53.760899500985\n    test 143 line 16 lon2: 119.204305898518\n    test 144 line 16 azi2: 141.069793254983\n    test 145 line 17 lat: -3.225632\n    test 146 line 17 lon: 103.742354\n    test 147 line 17 fb: 127.880328\n    test 148 line 17 lat2: -3.225632004245\n    test 149 line 17 lon2: 103.742354347526\n    test 150 line 17 azi2: 127.880328388524\n    test 151 line 17 lat2: -3.225632004245\n    test 152 line 17 lon2: 103.742354347526\n    test 153 line 17 azi2: 127.880328388524\n    test 154 line 18 lat: 47.108712\n    test 155 line 18 lon: 99.934107\n    test 156 line 18 fb: 104.103491\n    test 157 line 18 lat2: 47.108712008353\n    test 158 line 18 lon2: 99.934107358387\n    test 159 line 18 azi2: 104.103491123038\n    test 160 line 18 lat2: 47.108712008353\n    test 161 line 18 lon2: 99.934107358387\n    test 162 line 18 azi2: 104.103491123038\n    test 163 line 19 lat: 5.399363\n    test 164 line 19 lon: 135.250064\n    test 165 line 19 fb: 102.177018\n    test 166 line 19 lat2: 5.399363208349\n    test 167 line 19 lon2: 135.250063670790\n    test 168 line 19 azi2: 102.177017677370\n    test 169 line 19 lat2: 5.399363208349\n    test 170 line 19 lon2: 135.250063670790\n    test 171 line 19 azi2: 102.177017677370\n    test 172 line 20 lat: -58.669225\n    test 173 line 20 lon: 54.875015\n    test 174 line 20 fb: 131.345308\n    test 175 line 20 lat2: -58.669224697403\n    test 176 line 20 lon2: 54.875014559502\n    test 177 line 20 azi2: 131.345308028428\n    test 178 line 20 lat2: -58.669224697403\n    test 179 line 20 lon2: 54.875014559502\n    test 180 line 20 azi2: 131.345308028428\n    test 181 line 21 lat: 9.184229\n    test 182 line 21 lon: 151.302637\n    test 183 line 21 fb: 128.175105\n    test 184 line 21 lat2: 9.184228666560\n    test 185 line 21 lon2: 151.302636871911\n    test 186 line 21 azi2: 128.175105446048\n    test 187 line 21 lat2: 9.184228666560\n    test 188 line 21 lon2: 151.302636871911\n    test 189 line 21 azi2: 128.175105446048\n    test 190 line 22 lat: 53.467940\n    test 191 line 22 lon: 67.724192\n    test 192 line 22 fb: 78.863492\n    test 193 line 22 lat2: 53.467939714247\n    test 194 line 22 lon2: 67.724192258333\n    test 195 line 22 azi2: 78.863492168727\n    test 196 line 22 lat2: 53.467939714247\n    test 197 line 22 lon2: 67.724192258333\n    test 198 line 22 azi2: 78.863492168727\n    test 199 line 23 lat: 39.699456\n    test 200 line 23 lon: 67.156325\n    test 201 line 23 fb: 85.276830\n    test 202 line 23 lat2: 39.699455912449\n    test 203 line 23 lon2: 67.156324625647\n    test 204 line 23 azi2: 85.276829539878\n    test 205 line 23 lat2: 39.699455912449\n    test 206 line 23 lon2: 67.156324625647\n    test 207 line 23 azi2: 85.276829539878\n    test 208 line 24 lat: 70.942602\n    test 209 line 24 lon: 17.379214\n    test 210 line 24 fb: 21.869008\n    test 211 line 24 lat2: 70.942602144324\n    test 212 line 24 lon2: 17.379213644124\n    test 213 line 24 azi2: 21.869008256312\n    test 214 line 24 lat2: 70.942602144324\n    test 215 line 24 lon2: 17.379213644124\n    test 216 line 24 azi2: 21.869008256312\n    test 217 line 25 lat: 69.633349\n    test 218 line 25 lon: 110.601933\n    test 219 line 25 fb: 138.575193\n    test 220 line 25 lat2: 69.633349004538\n    test 221 line 25 lon2: 110.601933261211\n    test 222 line 25 azi2: 138.575192608514\n    test 223 line 25 lat2: 69.633349004538\n    test 224 line 25 lon2: 110.601933261211\n    test 225 line 25 azi2: 138.575192608515  FAILED, KNOWN, expected 138.575192608514\n    test 226 line 26 lat: 16.190815\n    test 227 line 26 lon: 87.606993\n    test 228 line 26 fb: 131.929410\n    test 229 line 26 lat2: 16.190814826165\n    test 230 line 26 lon2: 87.606993293114\n    test 231 line 26 azi2: 131.929409507039\n    test 232 line 26 lat2: 16.190814826165\n    test 233 line 26 lon2: 87.606993293114\n    test 234 line 26 azi2: 131.929409507039\n    test 235 line 27 lat: 54.774905\n    test 236 line 27 lon: 52.952507\n    test 237 line 27 fb: 85.904051\n    test 238 line 27 lat2: 54.774904542264\n    test 239 line 27 lon2: 52.952506835523\n    test 240 line 27 azi2: 85.904050867676\n    test 241 line 27 lat2: 54.774904542264\n    test 242 line 27 lon2: 52.952506835523\n    test 243 line 27 azi2: 85.904050867676\n    test 244 line 28 lat: -62.008569\n    test 245 line 28 lon: 172.274877\n    test 246 line 28 fb: 21.992601\n    test 247 line 28 lat2: -62.008568677307\n    test 248 line 28 lon2: 172.274876714260\n    test 249 line 28 azi2: 21.992601380429\n    test 250 line 28 lat2: -62.008568677307\n    test 251 line 28 lon2: 172.274876714260\n    test 252 line 28 azi2: 21.992601380429\n    test 253 line 29 lat: 27.303730\n    test 254 line 29 lon: 159.184451\n    test 255 line 29 fb: 150.697920\n    test 256 line 29 lat2: 27.303729660018\n    test 257 line 29 lon2: 159.184451093393\n    test 258 line 29 azi2: 150.697920369703\n    test 259 line 29 lat2: 27.303729660018\n    test 260 line 29 lon2: 159.184451093393\n    test 261 line 29 azi2: 150.697920369703\n    test 262 line 30 lat: 31.979897\n    test 263 line 30 lon: 55.946759\n    test 264 line 30 fb: 87.398293\n    test 265 line 30 lat2: 31.979897342658\n    test 266 line 30 lon2: 55.946758945497\n    test 267 line 30 azi2: 87.398292964767\n    test 268 line 30 lat2: 31.979897342658\n    test 269 line 30 lon2: 55.946758945497\n    test 270 line 30 azi2: 87.398292964767\n    test 271 line 31 lat: 49.991468\n    test 272 line 31 lon: 133.962411\n    test 273 line 31 fb: 142.016540\n    test 274 line 31 lat2: 49.991467522545\n    test 275 line 31 lon2: 133.962411191467\n    test 276 line 31 azi2: 142.016540226251\n    test 277 line 31 lat2: 49.991467522545\n    test 278 line 31 lon2: 133.962411191467\n    test 279 line 31 azi2: 142.016540226251\n    test 280 line 32 lat: 2.818559\n    test 281 line 32 lon: 7.234774\n    test 282 line 32 fb: 168.804029\n    test 283 line 32 lat2: 2.818558842278\n    test 284 line 32 lon2: 7.234774421859\n    test 285 line 32 azi2: 168.804029404993\n    test 286 line 32 lat2: 2.818558842278\n    test 287 line 32 lon2: 7.234774421859\n    test 288 line 32 azi2: 168.804029404993\n    test 289 line 33 lat: -38.118071\n    test 290 line 33 lon: 93.395971\n    test 291 line 33 fb: 117.017377\n    test 292 line 33 lat2: -38.118070550305\n    test 293 line 33 lon2: 93.395971367720\n    test 294 line 33 azi2: 117.017376985228\n    test 295 line 33 lat2: -38.118070550305\n    test 296 line 33 lon2: 93.395971367720\n    test 297 line 33 azi2: 117.017376985228\n    test 298 line 34 lat: 3.377824\n    test 299 line 34 lon: 65.294746\n    test 300 line 34 fb: 138.982544\n    test 301 line 34 lat2: 3.377824468035\n    test 302 line 34 lon2: 65.294745963255\n    test 303 line 34 azi2: 138.982543784560\n    test 304 line 34 lat2: 3.377824468035\n    test 305 line 34 lon2: 65.294745963255\n    test 306 line 34 azi2: 138.982543784560\n    test 307 line 35 lat: 4.631157\n    test 308 line 35 lon: 84.335045\n    test 309 line 35 fb: 132.120804\n    test 310 line 35 lat2: 4.631157299024\n    test 311 line 35 lon2: 84.335044694540\n    test 312 line 35 azi2: 132.120804319474\n    test 313 line 35 lat2: 4.631157299024\n    test 314 line 35 lon2: 84.335044694540\n    test 315 line 35 azi2: 132.120804319474\n    test 316 line 36 lat: 38.952215\n    test 317 line 36 lon: 133.416463\n    test 318 line 36 fb: 160.690586\n    test 319 line 36 lat2: 38.952215219507\n    test 320 line 36 lon2: 133.416463103113\n    test 321 line 36 azi2: 160.690585690749\n    test 322 line 36 lat2: 38.952215219507\n    test 323 line 36 lon2: 133.416463103113\n    test 324 line 36 azi2: 160.690585690749\n    test 325 line 37 lat: -39.013297\n    test 326 line 37 lon: 160.302849\n    test 327 line 37 fb: 115.363715\n    test 328 line 37 lat2: -39.013296805131\n    test 329 line 37 lon2: 160.302849365986\n    test 330 line 37 azi2: 115.363714797610\n    test 331 line 37 lat2: -39.013296805131\n    test 332 line 37 lon2: 160.302849365986\n    test 333 line 37 azi2: 115.363714797610\n    test 334 line 38 lat: -48.456093\n    test 335 line 38 lon: 38.613822\n    test 336 line 38 fb: 137.651668\n    test 337 line 38 lat2: -48.456093143589\n    test 338 line 38 lon2: 38.613821719886\n    test 339 line 38 azi2: 137.651668464815\n    test 340 line 38 lat2: -48.456093143589\n    test 341 line 38 lon2: 38.613821719886\n    test 342 line 38 azi2: 137.651668464815\n    test 343 line 39 lat: -13.861956\n    test 344 line 39 lon: 74.250572\n    test 345 line 39 fb: 143.968262\n    test 346 line 39 lat2: -13.861956131519\n    test 347 line 39 lon2: 74.250571564776\n    test 348 line 39 azi2: 143.968262419705\n    test 349 line 39 lat2: -13.861956131519\n    test 350 line 39 lon2: 74.250571564776\n    test 351 line 39 azi2: 143.968262419705\n    test 352 line 40 lat: 25.289202\n    test 353 line 40 lon: 47.063579\n    test 354 line 40 fb: 78.672533\n    test 355 line 40 lat2: 25.289201968371\n    test 356 line 40 lon2: 47.063578519727\n    test 357 line 40 azi2: 78.672532588106\n    test 358 line 40 lat2: 25.289201968371\n    test 359 line 40 lon2: 47.063578519727\n    test 360 line 40 azi2: 78.672532588106\n    test 361 line 41 lat: 49.498121\n    test 362 line 41 lon: 131.993365\n    test 363 line 41 fb: 157.425605\n    test 364 line 41 lat2: 49.498121110507\n    test 365 line 41 lon2: 131.993365399320\n    test 366 line 41 azi2: 157.425605424890\n    test 367 line 41 lat2: 49.498121110507\n    test 368 line 41 lon2: 131.993365399320\n    test 369 line 41 azi2: 157.425605424890\n    test 370 line 42 lat: -2.104242\n    test 371 line 42 lon: 56.532079\n    test 372 line 42 fb: 129.406955\n    test 373 line 42 lat2: -2.104241718494\n    test 374 line 42 lon2: 56.532079408825\n    test 375 line 42 azi2: 129.406954892035\n    test 376 line 42 lat2: -2.104241718494\n    test 377 line 42 lon2: 56.532079408825\n    test 378 line 42 azi2: 129.406954892035\n    test 379 line 43 lat: -39.997315\n    test 380 line 43 lon: 49.004259\n    test 381 line 43 fb: 135.432995\n    test 382 line 43 lat2: -39.997315471629\n    test 383 line 43 lon2: 49.004258662721\n    test 384 line 43 azi2: 135.432994751523\n    test 385 line 43 lat2: -39.997315471629\n    test 386 line 43 lon2: 49.004258662721\n    test 387 line 43 azi2: 135.432994751523\n    test 388 line 44 lat: 9.333272\n    test 389 line 44 lon: 98.670857\n    test 390 line 44 fb: 120.694280\n    test 391 line 44 lat2: 9.333271992381\n    test 392 line 44 lon2: 98.670857333200\n    test 393 line 44 azi2: 120.694280236304\n    test 394 line 44 lat2: 9.333271992381\n    test 395 line 44 lon2: 98.670857333200\n    test 396 line 44 azi2: 120.694280236304\n    test 397 line 45 lat: 38.653646\n    test 398 line 45 lon: 136.060468\n    test 399 line 45 fb: 152.489416\n    test 400 line 45 lat2: 38.653646179484\n    test 401 line 45 lon2: 136.060467518677\n    test 402 line 45 azi2: 152.489415748331\n    test 403 line 45 lat2: 38.653646179484\n    test 404 line 45 lon2: 136.060467518677\n    test 405 line 45 azi2: 152.489415748331\n    test 406 line 46 lat: -4.564995\n    test 407 line 46 lon: 166.894968\n    test 408 line 46 fb: 127.520036\n    test 409 line 46 lat2: -4.564994956240\n    test 410 line 46 lon2: 166.894968092836\n    test 411 line 46 azi2: 127.520036113641\n    test 412 line 46 lat2: -4.564994956240\n    test 413 line 46 lon2: 166.894968092836\n    test 414 line 46 azi2: 127.520036113641\n    test 415 line 47 lat: -38.522500\n    test 416 line 47 lon: 178.679307\n    test 417 line 47 fb: 176.468685\n    test 418 line 47 lat2: -38.522500159620\n    test 419 line 47 lon2: 178.679306959466\n    test 420 line 47 azi2: 176.468684587438\n    test 421 line 47 lat2: -38.522500159620\n    test 422 line 47 lon2: 178.679306959466\n    test 423 line 47 azi2: 176.468684587438\n    test 424 line 48 lat: 45.529796\n    test 425 line 48 lon: 145.048738\n    test 426 line 48 fb: 160.706227\n    test 427 line 48 lat2: 45.529795503687  FAILED, KNOWN, expected 45.529795503688\n    test 428 line 48 lon2: 145.048737846273\n    test 429 line 48 azi2: 160.706226714169\n    test 430 line 48 lat2: 45.529795503688\n    test 431 line 48 lon2: 145.048737846273\n    test 432 line 48 azi2: 160.706226714169\n    test 433 line 49 lat: -2.968925\n    test 434 line 49 lon: 5.044083\n    test 435 line 49 fb: 174.913528\n    test 436 line 49 lat2: -2.968924563433\n    test 437 line 49 lon2: 5.044082955485\n    test 438 line 49 azi2: 174.913527615338\n    test 439 line 49 lat2: -2.968924563433\n    test 440 line 49 lon2: 5.044082955485\n    test 441 line 49 azi2: 174.913527615338\n    test 442 line 50 lat: 1.618184\n    test 443 line 50 lon: 163.262955\n    test 444 line 50 fb: 161.097730\n    test 445 line 50 lat2: 1.618184178387\n    test 446 line 50 lon2: 163.262955108028\n    test 447 line 50 azi2: 161.097729713868\n    test 448 line 50 lat2: 1.618184178387\n    test 449 line 50 lon2: 163.262955108028\n    test 450 line 50 azi2: 161.097729713868\n    test 451 line 51 lat: 25.179740\n    test 452 line 51 lon: 107.504992\n    test 453 line 51 fb: 154.055552\n    test 454 line 51 lat2: 25.179740339437\n    test 455 line 51 lon2: 107.504991932892\n    test 456 line 51 azi2: 154.055552232572\n    test 457 line 51 lat2: 25.179740339437\n    test 458 line 51 lon2: 107.504991932892\n    test 459 line 51 azi2: 154.055552232572\n    test 460 line 52 lat: 57.391251\n    test 461 line 52 lon: 89.082271\n    test 462 line 52 fb: 101.276115\n    test 463 line 52 lat2: 57.391251345244\n    test 464 line 52 lon2: 89.082271206722\n    test 465 line 52 azi2: 101.276114553753\n    test 466 line 52 lat2: 57.391251345244\n    test 467 line 52 lon2: 89.082271206722\n    test 468 line 52 azi2: 101.276114553753\n    test 469 line 53 lat: -11.470673\n    test 470 line 53 lon: 48.285095\n    test 471 line 53 fb: 148.389696\n    test 472 line 53 lat2: -11.470672507979\n    test 473 line 53 lon2: 48.285094684225\n    test 474 line 53 azi2: 148.389695684750\n    test 475 line 53 lat2: -11.470672507979\n    test 476 line 53 lon2: 48.285094684225\n    test 477 line 53 azi2: 148.389695684750\n    test 478 line 54 lat: 27.356639\n    test 479 line 54 lon: 84.391682\n    test 480 line 54 fb: 104.661818\n    test 481 line 54 lat2: 27.356639349123\n    test 482 line 54 lon2: 84.391681754671\n    test 483 line 54 azi2: 104.661818309238\n    test 484 line 54 lat2: 27.356639349123\n    test 485 line 54 lon2: 84.391681754671\n    test 486 line 54 azi2: 104.661818309238\n    test 487 line 55 lat: -40.533598\n    test 488 line 55 lon: 103.488381\n    test 489 line 55 fb: 132.398259\n    test 490 line 55 lat2: -40.533597900971\n    test 491 line 55 lon2: 103.488381204009\n    test 492 line 55 azi2: 132.398259207371\n    test 493 line 55 lat2: -40.533597900971\n    test 494 line 55 lon2: 103.488381204009\n    test 495 line 55 azi2: 132.398259207371\n    test 496 line 56 lat: 52.337949\n    test 497 line 56 lon: 149.908279\n    test 498 line 56 fb: 162.333474\n    test 499 line 56 lat2: 52.337949466457\n    test 500 line 56 lon2: 149.908278798430\n    test 501 line 56 azi2: 162.333474334205\n    test 502 line 56 lat2: 52.337949466457\n    test 503 line 56 lon2: 149.908278798430\n    test 504 line 56 azi2: 162.333474334205\n    test 505 line 57 lat: -58.474076\n    test 506 line 57 lon: 78.718606\n    test 507 line 57 fb: 117.457565\n    test 508 line 57 lat2: -58.474075605820\n    test 509 line 57 lon2: 78.718605560533\n    test 510 line 57 azi2: 117.457565115569\n    test 511 line 57 lat2: -58.474075605820\n    test 512 line 57 lon2: 78.718605560533\n    test 513 line 57 azi2: 117.457565115569\n    test 514 line 58 lat: -35.840568\n    test 515 line 58 lon: 4.157534\n    test 516 line 58 fb: 174.451067\n    test 517 line 58 lat2: -35.840568348239\n    test 518 line 58 lon2: 4.157534199470\n    test 519 line 58 azi2: 174.451066901814\n    test 520 line 58 lat2: -35.840568348239\n    test 521 line 58 lon2: 4.157534199470\n    test 522 line 58 azi2: 174.451066901814\n    test 523 line 59 lat: 15.629163\n    test 524 line 59 lon: 102.677417\n    test 525 line 59 fb: 103.482103\n    test 526 line 59 lat2: 15.629163409998\n    test 527 line 59 lon2: 102.677417064290  FAILED, KNOWN, expected 102.677417064289\n    test 528 line 59 azi2: 103.482102722183\n    test 529 line 59 lat2: 15.629163409998\n    test 530 line 59 lon2: 102.677417064290  FAILED, KNOWN, expected 102.677417064289\n    test 531 line 59 azi2: 103.482102722183\n    test 532 line 60 lat: -1.256180\n    test 533 line 60 lon: 133.625255\n    test 534 line 60 fb: 104.470489\n    test 535 line 60 lat2: -1.256179633151\n    test 536 line 60 lon2: 133.625254783633\n    test 537 line 60 azi2: 104.470489013739\n    test 538 line 60 lat2: -1.256179633151\n    test 539 line 60 lon2: 133.625254783633\n    test 540 line 60 azi2: 104.470489013739\n    test 541 line 61 lat: -40.558253\n    test 542 line 61 lon: 112.897054\n    test 543 line 61 fb: 90.226134\n    test 544 line 61 lat2: -40.558252601871\n    test 545 line 61 lon2: 112.897053867085\n    test 546 line 61 azi2: 90.226134266467\n    test 547 line 61 lat2: -40.558252601871\n    test 548 line 61 lon2: 112.897053867085\n    test 549 line 61 azi2: 90.226134266467\n    test 550 line 62 lat: 86.193596\n    test 551 line 62 lon: 116.956880\n    test 552 line 62 fb: 117.618329\n    test 553 line 62 lat2: 86.193595821107\n    test 554 line 62 lon2: 116.956880430711\n    test 555 line 62 azi2: 117.618329340274\n    test 556 line 62 lat2: 86.193595821107\n    test 557 line 62 lon2: 116.956880430711\n    test 558 line 62 azi2: 117.618329340274\n    test 559 line 63 lat: 6.874181\n    test 560 line 63 lon: 54.891199\n    test 561 line 63 fb: 90.820790\n    test 562 line 63 lat2: 6.874181093562\n    test 563 line 63 lon2: 54.891198619261\n    test 564 line 63 azi2: 90.820789878786\n    test 565 line 63 lat2: 6.874181093562\n    test 566 line 63 lon2: 54.891198619261\n    test 567 line 63 azi2: 90.820789878786\n    test 568 line 64 lat: -2.554657\n    test 569 line 64 lon: 71.539549\n    test 570 line 64 fb: 105.722921\n    test 571 line 64 lat2: -2.554657243385\n    test 572 line 64 lon2: 71.539549368441\n    test 573 line 64 azi2: 105.722921401613\n    test 574 line 64 lat2: -2.554657243385\n    test 575 line 64 lon2: 71.539549368441\n    test 576 line 64 azi2: 105.722921401613\n    test 577 line 65 lat: 1.329645\n    test 578 line 65 lon: 138.134969\n    test 579 line 65 fb: 150.465118\n    test 580 line 65 lat2: 1.329645321136\n    test 581 line 65 lon2: 138.134968538140\n    test 582 line 65 azi2: 150.465118219879\n    test 583 line 65 lat2: 1.329645321136\n    test 584 line 65 lon2: 138.134968538140\n    test 585 line 65 azi2: 150.465118219879\n    test 586 line 66 lat: -44.026427\n    test 587 line 66 lon: 121.367591\n    test 588 line 66 fb: 123.975227\n    test 589 line 66 lat2: -44.026426573446\n    test 590 line 66 lon2: 121.367591215510\n    test 591 line 66 azi2: 123.975227063718\n    test 592 line 66 lat2: -44.026426573446\n    test 593 line 66 lon2: 121.367591215510\n    test 594 line 66 azi2: 123.975227063718\n    test 595 line 67 lat: -3.399081\n    test 596 line 67 lon: 138.655764\n    test 597 line 67 fb: 98.994343\n    test 598 line 67 lat2: -3.399080708673\n    test 599 line 67 lon2: 138.655764270175\n    test 600 line 67 azi2: 98.994343217447\n    test 601 line 67 lat2: -3.399080708673\n    test 602 line 67 lon2: 138.655764270175\n    test 603 line 67 azi2: 98.994343217447\n    test 604 line 68 lat: -26.776985\n    test 605 line 68 lon: 67.020055\n    test 606 line 68 fb: 119.394665\n    test 607 line 68 lat2: -26.776984673364\n    test 608 line 68 lon2: 67.020054548341\n    test 609 line 68 azi2: 119.394664651636\n    test 610 line 68 lat2: -26.776984673364\n    test 611 line 68 lon2: 67.020054548341\n    test 612 line 68 azi2: 119.394664651636\n    test 613 line 69 lat: 52.057239\n    test 614 line 69 lon: 151.887270\n    test 615 line 69 fb: 161.537826\n    test 616 line 69 lat2: 52.057239269050\n    test 617 line 69 lon2: 151.887270484247\n    test 618 line 69 azi2: 161.537826425477\n    test 619 line 69 lat2: 52.057239269050\n    test 620 line 69 lon2: 151.887270484247\n    test 621 line 69 azi2: 161.537826425477\n    test 622 line 70 lat: 3.784724\n    test 623 line 70 lon: 102.727745\n    test 624 line 70 fb: 116.453155\n    test 625 line 70 lat2: 3.784724165483\n    test 626 line 70 lon2: 102.727744934481\n    test 627 line 70 azi2: 116.453155405439\n    test 628 line 70 lat2: 3.784724165483\n    test 629 line 70 lon2: 102.727744934481\n    test 630 line 70 azi2: 116.453155405439\n    test 631 line 71 lat: -40.409299\n    test 632 line 71 lon: 86.033195\n    test 633 line 71 fb: 121.080298\n    test 634 line 71 lat2: -40.409298772797\n    test 635 line 71 lon2: 86.033195335657\n    test 636 line 71 azi2: 121.080297615268\n    test 637 line 71 lat2: -40.409298772797\n    test 638 line 71 lon2: 86.033195335657\n    test 639 line 71 azi2: 121.080297615268\n    test 640 line 72 lat: 73.013460\n    test 641 line 72 lon: 76.188125\n    test 642 line 72 fb: 78.877769\n    test 643 line 72 lat2: 73.013460186926\n    test 644 line 72 lon2: 76.188125151657\n    test 645 line 72 azi2: 78.877769459629\n    test 646 line 72 lat2: 73.013460186926\n    test 647 line 72 lon2: 76.188125151657\n    test 648 line 72 azi2: 78.877769459629\n    test 649 line 73 lat: 52.870132\n    test 650 line 73 lon: 51.020900\n    test 651 line 73 fb: 102.113351\n    test 652 line 73 lat2: 52.870131799667\n    test 653 line 73 lon2: 51.020900069545\n    test 654 line 73 azi2: 102.113351369331\n    test 655 line 73 lat2: 52.870131799667\n    test 656 line 73 lon2: 51.020900069545\n    test 657 line 73 azi2: 102.113351369331\n    test 658 line 74 lat: 28.909632\n    test 659 line 74 lon: 17.071526\n    test 660 line 74 fb: 103.660711\n    test 661 line 74 lat2: 28.909631785857\n    test 662 line 74 lon2: 17.071526465331\n    test 663 line 74 azi2: 103.660711362255\n    test 664 line 74 lat2: 28.909631785857\n    test 665 line 74 lon2: 17.071526465331\n    test 666 line 74 azi2: 103.660711362255\n    test 667 line 75 lat: -58.257855\n    test 668 line 75 lon: 15.812862\n    test 669 line 75 fb: 169.606337\n    test 670 line 75 lat2: -58.257854831091\n    test 671 line 75 lon2: 15.812862089412\n    test 672 line 75 azi2: 169.606337169070\n    test 673 line 75 lat2: -58.257854831091\n    test 674 line 75 lon2: 15.812862089412\n    test 675 line 75 azi2: 169.606337169070\n    test 676 line 76 lat: -58.869445\n    test 677 line 76 lon: 132.036795\n    test 678 line 76 fb: 53.946549\n    test 679 line 76 lat2: -58.869445004289\n    test 680 line 76 lon2: 132.036794965086\n    test 681 line 76 azi2: 53.946549037654\n    test 682 line 76 lat2: -58.869445004289\n    test 683 line 76 lon2: 132.036794965086\n    test 684 line 76 azi2: 53.946549037654\n    test 685 line 77 lat: -45.547043\n    test 686 line 77 lon: 77.540664\n    test 687 line 77 fb: 126.917177\n    test 688 line 77 lat2: -45.547042598505\n    test 689 line 77 lon2: 77.540663933413\n    test 690 line 77 azi2: 126.917177154676\n    test 691 line 77 lat2: -45.547042598505\n    test 692 line 77 lon2: 77.540663933413\n    test 693 line 77 azi2: 126.917177154676\n    test 694 line 78 lat: 45.046385\n    test 695 line 78 lon: 149.382429\n    test 696 line 78 fb: 162.117474\n    test 697 line 78 lat2: 45.046384823604\n    test 698 line 78 lon2: 149.382428769460\n    test 699 line 78 azi2: 162.117474447248\n    test 700 line 78 lat2: 45.046384823604\n    test 701 line 78 lon2: 149.382428769460\n    test 702 line 78 azi2: 162.117474447248\n    test 703 line 79 lat: -74.853338\n    test 704 line 79 lon: 96.072097\n    test 705 line 79 fb: 85.425493\n    test 706 line 79 lat2: -74.853338324199\n    test 707 line 79 lon2: 96.072096720955\n    test 708 line 79 azi2: 85.425493305289\n    test 709 line 79 lat2: -74.853338324199\n    test 710 line 79 lon2: 96.072096720956  FAILED, KNOWN, expected 96.072096720955\n    test 711 line 79 azi2: 85.425493305289\n    test 712 line 80 lat: -13.205775\n    test 713 line 80 lon: 57.532285\n    test 714 line 80 fb: 122.358040\n    test 715 line 80 lat2: -13.205775181752\n    test 716 line 80 lon2: 57.532285422140\n    test 717 line 80 azi2: 122.358040028964\n    test 718 line 80 lat2: -13.205775181752\n    test 719 line 80 lon2: 57.532285422140\n    test 720 line 80 azi2: 122.358040028964\n    test 721 line 81 lat: -5.135864\n    test 722 line 81 lon: 115.048833\n    test 723 line 81 fb: 93.168400\n    test 724 line 81 lat2: -5.135863872649\n    test 725 line 81 lon2: 115.048832990097\n    test 726 line 81 azi2: 93.168399576996\n    test 727 line 81 lat2: -5.135863872649\n    test 728 line 81 lon2: 115.048832990097\n    test 729 line 81 azi2: 93.168399576996\n    test 730 line 82 lat: 13.355453\n    test 731 line 82 lon: 19.253946\n    test 732 line 82 fb: 143.568719\n    test 733 line 82 lat2: 13.355452912310\n    test 734 line 82 lon2: 19.253945880531\n    test 735 line 82 azi2: 143.568718864193\n    test 736 line 82 lat2: 13.355452912310\n    test 737 line 82 lon2: 19.253945880531\n    test 738 line 82 azi2: 143.568718864193\n    test 739 line 83 lat: 0.766426\n    test 740 line 83 lon: 147.485817\n    test 741 line 83 fb: 144.982274\n    test 742 line 83 lat2: 0.766426443892\n    test 743 line 83 lon2: 147.485816830606\n    test 744 line 83 azi2: 144.982273873382\n    test 745 line 83 lat2: 0.766426443892\n    test 746 line 83 lon2: 147.485816830606\n    test 747 line 83 azi2: 144.982273873382\n    test 748 line 84 lat: 10.228416\n    test 749 line 84 lon: 159.204118\n    test 750 line 84 fb: 173.111973\n    test 751 line 84 lat2: 10.228416314659\n    test 752 line 84 lon2: 159.204118025562\n    test 753 line 84 azi2: 173.111973027488\n    test 754 line 84 lat2: 10.228416314659\n    test 755 line 84 lon2: 159.204118025562\n    test 756 line 84 azi2: 173.111973027488\n    test 757 line 85 lat: 73.178089\n    test 758 line 85 lon: 131.762700\n    test 759 line 85 fb: 135.271161\n    test 760 line 85 lat2: 73.178089048974\n    test 761 line 85 lon2: 131.762699581940\n    test 762 line 85 azi2: 135.271161440271\n    test 763 line 85 lat2: 73.178089048974\n    test 764 line 85 lon2: 131.762699581941  FAILED, KNOWN, expected 131.762699581940\n    test 765 line 85 azi2: 135.271161440271\n    test 766 line 86 lat: -16.908717\n    test 767 line 86 lon: 149.240494\n    test 768 line 86 fb: 90.725082\n    test 769 line 86 lat2: -16.908717231321\n    test 770 line 86 lon2: 149.240493850337\n    test 771 line 86 azi2: 90.725082091932\n    test 772 line 86 lat2: -16.908717231321\n    test 773 line 86 lon2: 149.240493850337\n    test 774 line 86 azi2: 90.725082091932\n    test 775 line 87 lat: -23.440025\n    test 776 line 87 lon: 98.819595\n    test 777 line 87 fb: 154.388320\n    test 778 line 87 lat2: -23.440025289757\n    test 779 line 87 lon2: 98.819595131759\n    test 780 line 87 azi2: 154.388319751570\n    test 781 line 87 lat2: -23.440025289757\n    test 782 line 87 lon2: 98.819595131759\n    test 783 line 87 azi2: 154.388319751570\n    test 784 line 88 lat: -51.344465\n    test 785 line 88 lon: 54.299399\n    test 786 line 88 fb: 139.903236\n    test 787 line 88 lat2: -51.344465279371\n    test 788 line 88 lon2: 54.299399477396\n    test 789 line 88 azi2: 139.903236261795\n    test 790 line 88 lat2: -51.344465279371\n    test 791 line 88 lon2: 54.299399477396\n    test 792 line 88 azi2: 139.903236261795\n    test 793 line 89 lat: 33.922320\n    test 794 line 89 lon: 143.463070\n    test 795 line 89 fb: 132.788230\n    test 796 line 89 lat2: 33.922319712554\n    test 797 line 89 lon2: 143.463070326988\n    test 798 line 89 azi2: 132.788229856713\n    test 799 line 89 lat2: 33.922319712554\n    test 800 line 89 lon2: 143.463070326988\n    test 801 line 89 azi2: 132.788229856713\n    test 802 line 90 lat: -83.333068\n    test 803 line 90 lon: 177.611925\n    test 804 line 90 fb: 2.633769\n    test 805 line 90 lat2: -83.333068057524\n    test 806 line 90 lon2: 177.611924577958\n    test 807 line 90 azi2: 2.633768744582\n    test 808 line 90 lat2: -83.333068057524\n    test 809 line 90 lon2: 177.611924577958\n    test 810 line 90 azi2: 2.633768744582\n    test 811 line 91 lat: 20.587333\n    test 812 line 91 lon: 164.201962\n    test 813 line 91 fb: 166.991083\n    test 814 line 91 lat2: 20.587333492522\n    test 815 line 91 lon2: 164.201962479604\n    test 816 line 91 azi2: 166.991083245940\n    test 817 line 91 lat2: 20.587333492522\n    test 818 line 91 lon2: 164.201962479604\n    test 819 line 91 azi2: 166.991083245940\n    test 820 line 92 lat: 52.612815\n    test 821 line 92 lon: 110.766184\n    test 822 line 92 fb: 168.281486\n    test 823 line 92 lat2: 52.612815386144\n    test 824 line 92 lon2: 110.766184475279\n    test 825 line 92 azi2: 168.281485715811\n    test 826 line 92 lat2: 52.612815386144\n    test 827 line 92 lon2: 110.766184475279\n    test 828 line 92 azi2: 168.281485715811\n    test 829 line 93 lat: -41.681373\n    test 830 line 93 lon: 82.150183\n    test 831 line 93 fb: 107.012959\n    test 832 line 93 lat2: -41.681372899642\n    test 833 line 93 lon2: 82.150183233451\n    test 834 line 93 azi2: 107.012959072514\n    test 835 line 93 lat2: -41.681372899642\n    test 836 line 93 lon2: 82.150183233451\n    test 837 line 93 azi2: 107.012959072514\n    test 838 line 94 lat: 27.082807\n    test 839 line 94 lon: 171.332531\n    test 840 line 94 fb: 174.934340\n    test 841 line 94 lat2: 27.082807052702\n    test 842 line 94 lon2: 171.332530862401\n    test 843 line 94 azi2: 174.934339881142\n    test 844 line 94 lat2: 27.082807052702\n    test 845 line 94 lon2: 171.332530862401\n    test 846 line 94 azi2: 174.934339881142\n    test 847 line 95 lat: 57.992299\n    test 848 line 95 lon: 15.128357\n    test 849 line 95 fb: 62.342982\n    test 850 line 95 lat2: 57.992299464191\n    test 851 line 95 lon2: 15.128356773547\n    test 852 line 95 azi2: 62.342982084737\n    test 853 line 95 lat2: 57.992299464191\n    test 854 line 95 lon2: 15.128356773547\n    test 855 line 95 azi2: 62.342982084737\n    test 856 line 96 lat: -10.526000\n    test 857 line 96 lon: 33.778702\n    test 858 line 96 fb: 165.687804\n    test 859 line 96 lat2: -10.526000344959\n    test 860 line 96 lon2: 33.778701722506\n    test 861 line 96 azi2: 165.687803859941\n    test 862 line 96 lat2: -10.526000344959\n    test 863 line 96 lon2: 33.778701722506\n    test 864 line 96 azi2: 165.687803859941\n    test 865 line 97 lat: 25.802395\n    test 866 line 97 lon: 98.502531\n    test 867 line 97 fb: 97.837271\n    test 868 line 97 lat2: 25.802394934787\n    test 869 line 97 lon2: 98.502531199301\n    test 870 line 97 azi2: 97.837270592496\n    test 871 line 97 lat2: 25.802394934787\n    test 872 line 97 lon2: 98.502531199301\n    test 873 line 97 azi2: 97.837270592496\n    test 874 line 98 lat: 47.163255\n    test 875 line 98 lon: 156.720176\n    test 876 line 98 fb: 160.291022\n    test 877 line 98 lat2: 47.163255465769\n    test 878 line 98 lon2: 156.720176105542\n    test 879 line 98 azi2: 160.291021678921\n    test 880 line 98 lat2: 47.163255465769\n    test 881 line 98 lon2: 156.720176105542\n    test 882 line 98 azi2: 160.291021678921\n    test 883 line 99 lat: 47.932063\n    test 884 line 99 lon: 35.094714\n    test 885 line 99 fb: 137.545065\n    test 886 line 99 lat2: 47.932062978964\n    test 887 line 99 lon2: 35.094714092217\n    test 888 line 99 azi2: 137.545065115425\n    test 889 line 99 lat2: 47.932062978964\n    test 890 line 99 lon2: 35.094714092217\n    test 891 line 99 azi2: 137.545065115425\n    test 892 line 100 lat: -60.204340\n    test 893 line 100 lon: 117.726218\n    test 894 line 100 fb: 72.585011\n    test 895 line 100 lat2: -60.204339807984\n    test 896 line 100 lon2: 117.726217548610\n    test 897 line 100 azi2: 72.585010656772\n    test 898 line 100 lat2: -60.204339807984\n    test 899 line 100 lon2: 117.726217548610\n    test 900 line 100 azi2: 72.585010656772\n    test 901 line 101 lat: 35.247411\n    test 902 line 101 lon: 59.471562\n    test 903 line 101 fb: 81.179468\n    test 904 line 101 lat2: 35.247410984329\n    test 905 line 101 lon2: 59.471562388985\n    test 906 line 101 azi2: 81.179468094302\n    test 907 line 101 lat2: 35.247410984329\n    test 908 line 101 lon2: 59.471562388985\n    test 909 line 101 azi2: 81.179468094302\n    test 910 line 102 lat: 19.218268\n    test 911 line 102 lon: 165.507915\n    test 912 line 102 fb: 167.452074\n    test 913 line 102 lat2: 19.218268047706\n    test 914 line 102 lon2: 165.507915017643\n    test 915 line 102 azi2: 167.452074301867\n    test 916 line 102 lat2: 19.218268047706\n    test 917 line 102 lon2: 165.507915017643\n    test 918 line 102 azi2: 167.452074301867\n    test 919 line 103 lat: 55.428809\n    test 920 line 103 lon: 121.956541\n    test 921 line 103 fb: 154.501481\n    test 922 line 103 lat2: 55.428809300888\n    test 923 line 103 lon2: 121.956541206929\n    test 924 line 103 azi2: 154.501481394521\n    test 925 line 103 lat2: 55.428809300888\n    test 926 line 103 lon2: 121.956541206929\n    test 927 line 103 azi2: 154.501481394521\n    test 928 line 104 lat: 49.294374\n    test 929 line 104 lon: 119.661420\n    test 930 line 104 fb: 157.209489\n    test 931 line 104 lat2: 49.294374468687\n    test 932 line 104 lon2: 119.661419832789\n    test 933 line 104 azi2: 157.209488754087\n    test 934 line 104 lat2: 49.294374468687\n    test 935 line 104 lon2: 119.661419832789\n    test 936 line 104 azi2: 157.209488754087\n    test 937 line 105 lat: -32.534872\n    test 938 line 105 lon: 152.280610\n    test 939 line 105 fb: 45.281812\n    test 940 line 105 lat2: -32.534872085863\n    test 941 line 105 lon2: 152.280609797481\n    test 942 line 105 azi2: 45.281812386148\n    test 943 line 105 lat2: -32.534872085863\n    test 944 line 105 lon2: 152.280609797481\n    test 945 line 105 azi2: 45.281812386148\n    test 946 line 106 lat: -1.097899\n    test 947 line 106 lon: 104.697360\n    test 948 line 106 fb: 126.298489\n    test 949 line 106 lat2: -1.097899218947\n    test 950 line 106 lon2: 104.697359959629\n    test 951 line 106 azi2: 126.298488917783\n    test 952 line 106 lat2: -1.097899218947\n    test 953 line 106 lon2: 104.697359959629\n    test 954 line 106 azi2: 126.298488917783\n    test 955 line 107 lat: -18.034366\n    test 956 line 107 lon: 28.460388\n    test 957 line 107 fb: 129.520364\n    test 958 line 107 lat2: -18.034366293950\n    test 959 line 107 lon2: 28.460387638999\n    test 960 line 107 azi2: 129.520363751001\n    test 961 line 107 lat2: -18.034366293950\n    test 962 line 107 lon2: 28.460387638999\n    test 963 line 107 azi2: 129.520363751001\n    test 964 line 108 lat: 76.310833\n    test 965 line 108 lon: 80.110525\n    test 966 line 108 fb: 106.655922\n    test 967 line 108 lat2: 76.310832995825\n    test 968 line 108 lon2: 80.110524683625\n    test 969 line 108 azi2: 106.655921818336\n    test 970 line 108 lat2: 76.310832995825\n    test 971 line 108 lon2: 80.110524683625\n    test 972 line 108 azi2: 106.655921818336\n    test 973 line 109 lat: 39.838034\n    test 974 line 109 lon: 42.989610\n    test 975 line 109 fb: 69.695281\n    test 976 line 109 lat2: 39.838033717901\n    test 977 line 109 lon2: 42.989610477861\n    test 978 line 109 azi2: 69.695281464222\n    test 979 line 109 lat2: 39.838033717901\n    test 980 line 109 lon2: 42.989610477861\n    test 981 line 109 azi2: 69.695281464222\n    test 982 line 110 lat: -56.710166\n    test 983 line 110 lon: 125.242287\n    test 984 line 110 fb: 60.118756\n    test 985 line 110 lat2: -56.710165877845\n    test 986 line 110 lon2: 125.242287231675\n    test 987 line 110 azi2: 60.118756013168\n    test 988 line 110 lat2: -56.710165877845\n    test 989 line 110 lon2: 125.242287231675\n    test 990 line 110 azi2: 60.118756013168\n    test 991 line 111 lat: 55.796062\n    test 992 line 111 lon: 59.736599\n    test 993 line 111 fb: 73.536728\n    test 994 line 111 lat2: 55.796061639165\n    test 995 line 111 lon2: 59.736598787303\n    test 996 line 111 azi2: 73.536727826063\n    test 997 line 111 lat2: 55.796061639165\n    test 998 line 111 lon2: 59.736598787303\n    test 999 line 111 azi2: 73.536727826063\n    test 1000 line 112 lat: -36.553675\n    test 1001 line 112 lon: 38.656806\n    test 1002 line 112 fb: 134.414837\n    test 1003 line 112 lat2: -36.553675319553\n    test 1004 line 112 lon2: 38.656806212281\n    test 1005 line 112 azi2: 134.414836606696\n    test 1006 line 112 lat2: -36.553675319553\n    test 1007 line 112 lon2: 38.656806212281\n    test 1008 line 112 azi2: 134.414836606696\n    test 1009 line 113 lat: -36.798456\n    test 1010 line 113 lon: 163.588375\n    test 1011 line 113 fb: 147.324204\n    test 1012 line 113 lat2: -36.798455994877\n    test 1013 line 113 lon2: 163.588375017283\n    test 1014 line 113 azi2: 147.324204021436\n    test 1015 line 113 lat2: -36.798455994877\n    test 1016 line 113 lon2: 163.588375017283\n    test 1017 line 113 azi2: 147.324204021436\n    test 1018 line 114 lat: -15.952937\n    test 1019 line 114 lon: 55.126807\n    test 1020 line 114 fb: 134.743426\n    test 1021 line 114 lat2: -15.952937085211\n    test 1022 line 114 lon2: 55.126807113658\n    test 1023 line 114 azi2: 134.743426025963\n    test 1024 line 114 lat2: -15.952937085211\n    test 1025 line 114 lon2: 55.126807113658\n    test 1026 line 114 azi2: 134.743426025963\n    test 1027 line 115 lat: -34.573087\n    test 1028 line 115 lon: 69.304064\n    test 1029 line 115 fb: 111.515973\n    test 1030 line 115 lat2: -34.573086586710\n    test 1031 line 115 lon2: 69.304064202466\n    test 1032 line 115 azi2: 111.515973223076\n    test 1033 line 115 lat2: -34.573086586710\n    test 1034 line 115 lon2: 69.304064202466\n    test 1035 line 115 azi2: 111.515973223076\n    test 1036 line 116 lat: 26.643499\n    test 1037 line 116 lon: 1.500481\n    test 1038 line 116 fb: 7.958966\n    test 1039 line 116 lat2: 26.643498959841\n    test 1040 line 116 lon2: 1.500480924882\n    test 1041 line 116 azi2: 7.958966071178\n    test 1042 line 116 lat2: 26.643498959841\n    test 1043 line 116 lon2: 1.500480924882\n    test 1044 line 116 azi2: 7.958966071178\n    test 1045 line 117 lat: 60.891878\n    test 1046 line 117 lon: 91.543410\n    test 1047 line 117 fb: 92.273095\n    test 1048 line 117 lat2: 60.891878271763\n    test 1049 line 117 lon2: 91.543409983653\n    test 1050 line 117 azi2: 92.273095036246\n    test 1051 line 117 lat2: 60.891878271763\n    test 1052 line 117 lon2: 91.543409983653\n    test 1053 line 117 azi2: 92.273095036246\n    test 1054 line 118 lat: 64.148187\n    test 1055 line 118 lon: 136.552579\n    test 1056 line 118 fb: 147.193229\n    test 1057 line 118 lat2: 64.148186913822\n    test 1058 line 118 lon2: 136.552579389353\n    test 1059 line 118 azi2: 147.193228706030\n    test 1060 line 118 lat2: 64.148186913822\n    test 1061 line 118 lon2: 136.552579389353\n    test 1062 line 118 azi2: 147.193228706030\n    test 1063 line 119 lat: 62.311678\n    test 1064 line 119 lon: 39.238630\n    test 1065 line 119 fb: 53.785893\n    test 1066 line 119 lat2: 62.311677748693\n    test 1067 line 119 lon2: 39.238629619778\n    test 1068 line 119 azi2: 53.785893324444\n    test 1069 line 119 lat2: 62.311677748693\n    test 1070 line 119 lon2: 39.238629619778\n    test 1071 line 119 azi2: 53.785893324444\n    test 1072 line 120 lat: 27.239733\n    test 1073 line 120 lon: 136.649227\n    test 1074 line 120 fb: 162.935700\n    test 1075 line 120 lat2: 27.239733033115\n    test 1076 line 120 lon2: 136.649227320518\n    test 1077 line 120 azi2: 162.935700444146\n    test 1078 line 120 lat2: 27.239733033115\n    test 1079 line 120 lon2: 136.649227320518\n    test 1080 line 120 azi2: 162.935700444146\n    test 1081 line 121 lat: 6.562844\n    test 1082 line 121 lon: 170.159007\n    test 1083 line 121 fb: 174.851345\n    test 1084 line 121 lat2: 6.562844367534\n    test 1085 line 121 lon2: 170.159007094343\n    test 1086 line 121 azi2: 174.851345174583\n    test 1087 line 121 lat2: 6.562844367535  FAILED, KNOWN, expected 6.562844367534\n    test 1088 line 121 lon2: 170.159007094343\n    test 1089 line 121 azi2: 174.851345174583\n    test 1090 line 122 lat: -29.537259\n    test 1091 line 122 lon: 105.350044\n    test 1092 line 122 fb: 141.393876\n    test 1093 line 122 lat2: -29.537259231420\n    test 1094 line 122 lon2: 105.350044044462\n    test 1095 line 122 azi2: 141.393876478962\n    test 1096 line 122 lat2: -29.537259231420\n    test 1097 line 122 lon2: 105.350044044462\n    test 1098 line 122 azi2: 141.393876478962\n    test 1099 line 123 lat: -66.447700\n    test 1100 line 123 lon: 83.741961\n    test 1101 line 123 fb: 129.422490\n    test 1102 line 123 lat2: -66.447699831143\n    test 1103 line 123 lon2: 83.741960628420\n    test 1104 line 123 azi2: 129.422490051758\n    test 1105 line 123 lat2: -66.447699831143\n    test 1106 line 123 lon2: 83.741960628420\n    test 1107 line 123 azi2: 129.422490051758\n    test 1108 line 124 lat: 56.926818\n    test 1109 line 124 lon: 20.197117\n    test 1110 line 124 fb: 37.960006\n    test 1111 line 124 lat2: 56.926817599968\n    test 1112 line 124 lon2: 20.197117058896\n    test 1113 line 124 azi2: 37.960006049295\n    test 1114 line 124 lat2: 56.926817599968\n    test 1115 line 124 lon2: 20.197117058896\n    test 1116 line 124 azi2: 37.960006049295\n    test 1117 line 125 lat: 55.018266\n    test 1118 line 125 lon: 83.735441\n    test 1119 line 125 fb: 130.766515\n    test 1120 line 125 lat2: 55.018265995959\n    test 1121 line 125 lon2: 83.735441278691\n    test 1122 line 125 azi2: 130.766514657995\n    test 1123 line 125 lat2: 55.018265995959\n    test 1124 line 125 lon2: 83.735441278691\n    test 1125 line 125 azi2: 130.766514657995\n    test 1126 line 126 lat: -78.131054\n    test 1127 line 126 lon: 56.098176\n    test 1128 line 126 fb: 127.132203\n    test 1129 line 126 lat2: -78.131053729786\n    test 1130 line 126 lon2: 56.098176359327  FAILED, KNOWN, expected 56.098176359326\n    test 1131 line 126 azi2: 127.132203471256  FAILED, KNOWN, expected 127.132203471257\n    test 1132 line 126 lat2: -78.131053729786\n    test 1133 line 126 lon2: 56.098176359326\n    test 1134 line 126 azi2: 127.132203471257\n    test 1135 line 127 lat: -18.223027\n    test 1136 line 127 lon: 86.221345\n    test 1137 line 127 fb: 114.875019\n    test 1138 line 127 lat2: -18.223027345294\n    test 1139 line 127 lon2: 86.221345156045\n    test 1140 line 127 azi2: 114.875019395396\n    test 1141 line 127 lat2: -18.223027345294\n    test 1142 line 127 lon2: 86.221345156045\n    test 1143 line 127 azi2: 114.875019395396\n    test 1144 line 128 lat: -16.100413\n    test 1145 line 128 lon: 54.195260\n    test 1146 line 128 fb: 126.748474\n    test 1147 line 128 lat2: -16.100412777565\n    test 1148 line 128 lon2: 54.195259657284\n    test 1149 line 128 azi2: 126.748473963924\n    test 1150 line 128 lat2: -16.100412777565\n    test 1151 line 128 lon2: 54.195259657284\n    test 1152 line 128 azi2: 126.748473963924\n    test 1153 line 129 lat: -15.192944\n    test 1154 line 129 lon: 85.057605\n    test 1155 line 129 fb: 133.468781\n    test 1156 line 129 lat2: -15.192944143354\n    test 1157 line 129 lon2: 85.057605312625\n    test 1158 line 129 azi2: 133.468780913302\n    test 1159 line 129 lat2: -15.192944143354\n    test 1160 line 129 lon2: 85.057605312625\n    test 1161 line 129 azi2: 133.468780913302\n    test 1162 line 130 lat: -1.279757\n    test 1163 line 130 lon: 93.430943\n    test 1164 line 130 fb: 128.545662\n    test 1165 line 130 lat2: -1.279756550061\n    test 1166 line 130 lon2: 93.430943123745\n    test 1167 line 130 azi2: 128.545661704820\n    test 1168 line 130 lat2: -1.279756550061\n    test 1169 line 130 lon2: 93.430943123745\n    test 1170 line 130 azi2: 128.545661704820\n    test 1171 line 131 lat: -29.465713\n    test 1172 line 131 lon: 79.050046\n    test 1173 line 131 fb: 109.482097\n    test 1174 line 131 lat2: -29.465712645249\n    test 1175 line 131 lon2: 79.050045796725\n    test 1176 line 131 azi2: 109.482097420926\n    test 1177 line 131 lat2: -29.465712645249\n    test 1178 line 131 lon2: 79.050045796725\n    test 1179 line 131 azi2: 109.482097420926\n    test 1180 line 132 lat: 31.819596\n    test 1181 line 132 lon: 88.251997\n    test 1182 line 132 fb: 91.173935\n    test 1183 line 132 lat2: 31.819596255581\n    test 1184 line 132 lon2: 88.251997328019\n    test 1185 line 132 azi2: 91.173935030538\n    test 1186 line 132 lat2: 31.819596255581\n    test 1187 line 132 lon2: 88.251997328019\n    test 1188 line 132 azi2: 91.173935030538\n    test 1189 line 133 lat: -63.260477\n    test 1190 line 133 lon: 96.535465\n    test 1191 line 133 fb: 84.208873\n    test 1192 line 133 lat2: -63.260477387265\n    test 1193 line 133 lon2: 96.535465277415\n    test 1194 line 133 azi2: 84.208873088521\n    test 1195 line 133 lat2: -63.260477387265\n    test 1196 line 133 lon2: 96.535465277415\n    test 1197 line 133 azi2: 84.208873088521\n    test 1198 line 134 lat: 12.908849\n    test 1199 line 134 lon: 116.734308\n    test 1200 line 134 fb: 110.313866\n    test 1201 line 134 lat2: 12.908849199388\n    test 1202 line 134 lon2: 116.734308245854\n    test 1203 line 134 azi2: 110.313865884978\n    test 1204 line 134 lat2: 12.908849199388\n    test 1205 line 134 lon2: 116.734308245854\n    test 1206 line 134 azi2: 110.313865884978\n    test 1207 line 135 lat: -73.345839\n    test 1208 line 135 lon: 99.753937\n    test 1209 line 135 fb: 89.074642\n    test 1210 line 135 lat2: -73.345839080078\n    test 1211 line 135 lon2: 99.753937450114\n    test 1212 line 135 azi2: 89.074641755279\n    test 1213 line 135 lat2: -73.345839080078\n    test 1214 line 135 lon2: 99.753937450114\n    test 1215 line 135 azi2: 89.074641755279\n    test 1216 line 136 lat: -58.777033\n    test 1217 line 136 lon: 161.963990\n    test 1218 line 136 fb: 21.998889\n    test 1219 line 136 lat2: -58.777033293076\n    test 1220 line 136 lon2: 161.963989905489\n    test 1221 line 136 azi2: 21.998888971548\n    test 1222 line 136 lat2: -58.777033293076\n    test 1223 line 136 lon2: 161.963989905489\n    test 1224 line 136 azi2: 21.998888971548\n    test 1225 line 137 lat: 5.093069\n    test 1226 line 137 lon: 53.687921\n    test 1227 line 137 fb: 124.015842\n    test 1228 line 137 lat2: 5.093068996651\n    test 1229 line 137 lon2: 53.687921438754\n    test 1230 line 137 azi2: 124.015842231205\n    test 1231 line 137 lat2: 5.093068996651\n    test 1232 line 137 lon2: 53.687921438754\n    test 1233 line 137 azi2: 124.015842231205\n    test 1234 line 138 lat: 35.659489\n    test 1235 line 138 lon: 111.729315\n    test 1236 line 138 fb: 133.697281\n    test 1237 line 138 lat2: 35.659488664161\n    test 1238 line 138 lon2: 111.729315023485\n    test 1239 line 138 azi2: 133.697281357224\n    test 1240 line 138 lat2: 35.659488664161\n    test 1241 line 138 lon2: 111.729315023485\n    test 1242 line 138 azi2: 133.697281357224\n    test 1243 line 139 lat: -24.330784\n    test 1244 line 139 lon: 71.666568\n    test 1245 line 139 fb: 106.278062\n    test 1246 line 139 lat2: -24.330783755994\n    test 1247 line 139 lon2: 71.666567863169  FAILED, KNOWN, expected 71.666567863170\n    test 1248 line 139 azi2: 106.278062394907\n    test 1249 line 139 lat2: -24.330783755994\n    test 1250 line 139 lon2: 71.666567863170\n    test 1251 line 139 azi2: 106.278062394907\n    test 1252 line 140 lat: -46.218742\n    test 1253 line 140 lon: 91.580078\n    test 1254 line 140 fb: 106.279111\n    test 1255 line 140 lat2: -46.218742288678\n    test 1256 line 140 lon2: 91.580077788700\n    test 1257 line 140 azi2: 106.279110700398\n    test 1258 line 140 lat2: -46.218742288678\n    test 1259 line 140 lon2: 91.580077788700\n    test 1260 line 140 azi2: 106.279110700399  FAILED, KNOWN, expected 106.279110700398\n    test 1261 line 141 lat: 50.143353\n    test 1262 line 141 lon: 101.322503\n    test 1263 line 141 fb: 154.314496\n    test 1264 line 141 lat2: 50.143352562968\n    test 1265 line 141 lon2: 101.322502529615\n    test 1266 line 141 azi2: 154.314496467352\n    test 1267 line 141 lat2: 50.143352562968\n    test 1268 line 141 lon2: 101.322502529615\n    test 1269 line 141 azi2: 154.314496467352\n    test 1270 line 142 lat: -16.604376\n    test 1271 line 142 lon: 134.279201\n    test 1272 line 142 fb: 106.895990\n    test 1273 line 142 lat2: -16.604375537699\n    test 1274 line 142 lon2: 134.279201209117\n    test 1275 line 142 azi2: 106.895989785632\n    test 1276 line 142 lat2: -16.604375537699\n    test 1277 line 142 lon2: 134.279201209117\n    test 1278 line 142 azi2: 106.895989785632\n    test 1279 line 143 lat: 54.031290\n    test 1280 line 143 lon: 144.862702\n    test 1281 line 143 fb: 152.937010\n    test 1282 line 143 lat2: 54.031289901242\n    test 1283 line 143 lon2: 144.862701667601\n    test 1284 line 143 azi2: 152.937009701639\n    test 1285 line 143 lat2: 54.031289901242\n    test 1286 line 143 lon2: 144.862701667601\n    test 1287 line 143 azi2: 152.937009701639\n    test 1288 line 144 lat: 0.616911\n    test 1289 line 144 lon: 110.974662\n    test 1290 line 144 fb: 115.206118\n    test 1291 line 144 lat2: 0.616910921892\n    test 1292 line 144 lon2: 110.974662272005\n    test 1293 line 144 azi2: 115.206118431862\n    test 1294 line 144 lat2: 0.616910921892\n    test 1295 line 144 lon2: 110.974662272005\n    test 1296 line 144 azi2: 115.206118431862\n    test 1297 line 145 lat: -6.243779\n    test 1298 line 145 lon: 175.658895\n    test 1299 line 145 fb: 177.520147\n    test 1300 line 145 lat2: -6.243779047728\n    test 1301 line 145 lon2: 175.658894820006\n    test 1302 line 145 azi2: 177.520147377315\n    test 1303 line 145 lat2: -6.243779047728\n    test 1304 line 145 lon2: 175.658894820006\n    test 1305 line 145 azi2: 177.520147377315\n    test 1306 line 146 lat: -70.416699\n    test 1307 line 146 lon: 169.642468\n    test 1308 line 146 fb: 11.978943\n    test 1309 line 146 lat2: -70.416698815769\n    test 1310 line 146 lon2: 169.642468357274\n    test 1311 line 146 azi2: 11.978943348082\n    test 1312 line 146 lat2: -70.416698815769\n    test 1313 line 146 lon2: 169.642468357274\n    test 1314 line 146 azi2: 11.978943348082\n    test 1315 line 147 lat: 19.558617\n    test 1316 line 147 lon: 88.645709\n    test 1317 line 147 fb: 113.578814\n    test 1318 line 147 lat2: 19.558616692495\n    test 1319 line 147 lon2: 88.645708539223\n    test 1320 line 147 azi2: 113.578814362497\n    test 1321 line 147 lat2: 19.558616692495\n    test 1322 line 147 lon2: 88.645708539223\n    test 1323 line 147 azi2: 113.578814362497\n    test 1324 line 148 lat: -23.555114\n    test 1325 line 148 lon: 162.457529\n    test 1326 line 148 fb: 147.104331\n    test 1327 line 148 lat2: -23.555114207892\n    test 1328 line 148 lon2: 162.457529431664\n    test 1329 line 148 azi2: 147.104330772141\n    test 1330 line 148 lat2: -23.555114207892\n    test 1331 line 148 lon2: 162.457529431664\n    test 1332 line 148 azi2: 147.104330772141\n    test 1333 line 149 lat: -51.275738\n    test 1334 line 149 lon: 103.747943\n    test 1335 line 149 fb: 115.235374\n    test 1336 line 149 lat2: -51.275737933996\n    test 1337 line 149 lon2: 103.747943009536\n    test 1338 line 149 azi2: 115.235373813929\n    test 1339 line 149 lat2: -51.275737933996\n    test 1340 line 149 lon2: 103.747943009536\n    test 1341 line 149 azi2: 115.235373813929\n    test 1342 line 150 lat: 25.374602\n    test 1343 line 150 lon: 143.135783\n    test 1344 line 150 fb: 126.548735\n    test 1345 line 150 lat2: 25.374601552526\n    test 1346 line 150 lon2: 143.135783283239\n    test 1347 line 150 azi2: 126.548735117003\n    test 1348 line 150 lat2: 25.374601552526\n    test 1349 line 150 lon2: 143.135783283239\n    test 1350 line 150 azi2: 126.548735117003\n    test 1351 line 151 lat: 23.967825\n    test 1352 line 151 lon: 153.611116\n    test 1353 line 151 fb: 149.714116\n    test 1354 line 151 lat2: 23.967824782385\n    test 1355 line 151 lon2: 153.611115762587\n    test 1356 line 151 azi2: 149.714116426025\n    test 1357 line 151 lat2: 23.967824782385\n    test 1358 line 151 lon2: 153.611115762587\n    test 1359 line 151 azi2: 149.714116426025\n    test 1360 line 152 lat: -22.787507\n    test 1361 line 152 lon: 111.258647\n    test 1362 line 152 fb: 86.335100\n    test 1363 line 152 lat2: -22.787506689568\n    test 1364 line 152 lon2: 111.258646767306\n    test 1365 line 152 azi2: 86.335099650483\n    test 1366 line 152 lat2: -22.787506689568\n    test 1367 line 152 lon2: 111.258646767306\n    test 1368 line 152 azi2: 86.335099650483\n    test 1369 line 153 lat: -59.789842\n    test 1370 line 153 lon: 114.054983\n    test 1371 line 153 fb: 75.612605\n    test 1372 line 153 lat2: -59.789841532294\n    test 1373 line 153 lon2: 114.054983422255\n    test 1374 line 153 azi2: 75.612605242726\n    test 1375 line 153 lat2: -59.789841532294\n    test 1376 line 153 lon2: 114.054983422255\n    test 1377 line 153 azi2: 75.612605242726\n    test 1378 line 154 lat: -2.802505\n    test 1379 line 154 lon: 126.245955\n    test 1380 line 154 fb: 150.100576\n    test 1381 line 154 lat2: -2.802505438545\n    test 1382 line 154 lon2: 126.245955176418\n    test 1383 line 154 azi2: 150.100575968176\n    test 1384 line 154 lat2: -2.802505438545\n    test 1385 line 154 lon2: 126.245955176418\n    test 1386 line 154 azi2: 150.100575968176\n    test 1387 line 155 lat: 35.735653\n    test 1388 line 155 lon: 102.768725\n    test 1389 line 155 fb: 99.024702\n    test 1390 line 155 lat2: 35.735653026165\n    test 1391 line 155 lon2: 102.768725495110\n    test 1392 line 155 azi2: 99.024701978369\n    test 1393 line 155 lat2: 35.735653026165\n    test 1394 line 155 lon2: 102.768725495110\n    test 1395 line 155 azi2: 99.024701978369\n    test 1396 line 156 lat: 15.906682\n    test 1397 line 156 lon: 117.446654\n    test 1398 line 156 fb: 130.449965\n    test 1399 line 156 lat2: 15.906681603252\n    test 1400 line 156 lon2: 117.446653873860\n    test 1401 line 156 azi2: 130.449965412147\n    test 1402 line 156 lat2: 15.906681603252\n    test 1403 line 156 lon2: 117.446653873860\n    test 1404 line 156 azi2: 130.449965412147\n    test 1405 line 157 lat: -54.375988\n    test 1406 line 157 lon: 33.243363\n    test 1407 line 157 fb: 144.361175\n    test 1408 line 157 lat2: -54.375987804166\n    test 1409 line 157 lon2: 33.243362594038\n    test 1410 line 157 azi2: 144.361175098783\n    test 1411 line 157 lat2: -54.375987804166\n    test 1412 line 157 lon2: 33.243362594038\n    test 1413 line 157 azi2: 144.361175098783\n    test 1414 line 158 lat: 3.588251\n    test 1415 line 158 lon: 156.659583\n    test 1416 line 158 fb: 112.153293\n    test 1417 line 158 lat2: 3.588250783960\n    test 1418 line 158 lon2: 156.659583234995\n    test 1419 line 158 azi2: 112.153293017228\n    test 1420 line 158 lat2: 3.588250783960\n    test 1421 line 158 lon2: 156.659583234995\n    test 1422 line 158 azi2: 112.153293017228\n    test 1423 line 159 lat: -51.719977\n    test 1424 line 159 lon: 134.141061\n    test 1425 line 159 fb: 129.170451\n    test 1426 line 159 lat2: -51.719977004790\n    test 1427 line 159 lon2: 134.141060992499\n    test 1428 line 159 azi2: 129.170451102958\n    test 1429 line 159 lat2: -51.719977004790\n    test 1430 line 159 lon2: 134.141060992499\n    test 1431 line 159 azi2: 129.170451102958\n    test 1432 line 160 lat: 22.935153\n    test 1433 line 160 lon: 109.461291\n    test 1434 line 160 fb: 120.676556\n    test 1435 line 160 lat2: 22.935153219965\n    test 1436 line 160 lon2: 109.461291078917\n    test 1437 line 160 azi2: 120.676555897336\n    test 1438 line 160 lat2: 22.935153219965\n    test 1439 line 160 lon2: 109.461291078917\n    test 1440 line 160 azi2: 120.676555897336\n    test 1441 line 161 lat: -5.314690\n    test 1442 line 161 lon: 70.995225\n    test 1443 line 161 fb: 129.681273\n    test 1444 line 161 lat2: -5.314689990173\n    test 1445 line 161 lon2: 70.995224692450\n    test 1446 line 161 azi2: 129.681272635794\n    test 1447 line 161 lat2: -5.314689990173\n    test 1448 line 161 lon2: 70.995224692450\n    test 1449 line 161 azi2: 129.681272635794\n    test 1450 line 162 lat: 49.147134\n    test 1451 line 162 lon: 16.182514\n    test 1452 line 162 fb: 38.926644\n    test 1453 line 162 lat2: 49.147133873971\n    test 1454 line 162 lon2: 16.182514450690\n    test 1455 line 162 azi2: 38.926644196248\n    test 1456 line 162 lat2: 49.147133873971\n    test 1457 line 162 lon2: 16.182514450690\n    test 1458 line 162 azi2: 38.926644196248\n    test 1459 line 163 lat: -55.079363\n    test 1460 line 163 lon: 93.170898\n    test 1461 line 163 fb: 97.017492\n    test 1462 line 163 lat2: -55.079363368717\n    test 1463 line 163 lon2: 93.170898482121\n    test 1464 line 163 azi2: 97.017491592293\n    test 1465 line 163 lat2: -55.079363368717\n    test 1466 line 163 lon2: 93.170898482121\n    test 1467 line 163 azi2: 97.017491592293\n    test 1468 line 164 lat: 26.410771\n    test 1469 line 164 lon: 109.934003\n    test 1470 line 164 fb: 103.660846\n    test 1471 line 164 lat2: 26.410770923895\n    test 1472 line 164 lon2: 109.934003168641\n    test 1473 line 164 azi2: 103.660846029906\n    test 1474 line 164 lat2: 26.410770923895\n    test 1475 line 164 lon2: 109.934003168641\n    test 1476 line 164 azi2: 103.660846029906\n    test 1477 line 165 lat: -2.539670\n    test 1478 line 165 lon: 138.682325\n    test 1479 line 165 fb: 100.016568\n    test 1480 line 165 lat2: -2.539669792389\n    test 1481 line 165 lon2: 138.682325493918\n    test 1482 line 165 azi2: 100.016568432752\n    test 1483 line 165 lat2: -2.539669792389\n    test 1484 line 165 lon2: 138.682325493918\n    test 1485 line 165 azi2: 100.016568432752\n    test 1486 line 166 lat: 10.563299\n    test 1487 line 166 lon: 50.532119\n    test 1488 line 166 fb: 126.356066\n    test 1489 line 166 lat2: 10.563299452649\n    test 1490 line 166 lon2: 50.532119480076\n    test 1491 line 166 azi2: 126.356065708364\n    test 1492 line 166 lat2: 10.563299452649\n    test 1493 line 166 lon2: 50.532119480076\n    test 1494 line 166 azi2: 126.356065708364\n    test 1495 line 167 lat: 51.443871\n    test 1496 line 167 lon: 88.799162\n    test 1497 line 167 fb: 145.239198\n    test 1498 line 167 lat2: 51.443871023711\n    test 1499 line 167 lon2: 88.799161779253\n    test 1500 line 167 azi2: 145.239198135633\n    test 1501 line 167 lat2: 51.443871023711\n    test 1502 line 167 lon2: 88.799161779253\n    test 1503 line 167 azi2: 145.239198135632  FAILED, KNOWN, expected 145.239198135633\n    test 1504 line 168 lat: -80.240756\n    test 1505 line 168 lon: 170.591261\n    test 1506 line 168 fb: 19.402427\n    test 1507 line 168 lat2: -80.240756380896\n    test 1508 line 168 lon2: 170.591260542730\n    test 1509 line 168 azi2: 19.402427357239\n    test 1510 line 168 lat2: -80.240756380896\n    test 1511 line 168 lon2: 170.591260542730\n    test 1512 line 168 azi2: 19.402427357239\n    test 1513 line 169 lat: 51.976040\n    test 1514 line 169 lon: 165.045244\n    test 1515 line 169 fb: 167.962110\n    test 1516 line 169 lat2: 51.976039799074\n    test 1517 line 169 lon2: 165.045244285456\n    test 1518 line 169 azi2: 167.962110268433\n    test 1519 line 169 lat2: 51.976039799074\n    test 1520 line 169 lon2: 165.045244285456\n    test 1521 line 169 azi2: 167.962110268433\n    test 1522 line 170 lat: 29.365655\n    test 1523 line 170 lon: 91.354349\n    test 1524 line 170 fb: 135.101279\n    test 1525 line 170 lat2: 29.365654873524\n    test 1526 line 170 lon2: 91.354349089561\n    test 1527 line 170 azi2: 135.101278715212\n    test 1528 line 170 lat2: 29.365654873524\n    test 1529 line 170 lon2: 91.354349089561\n    test 1530 line 170 azi2: 135.101278715212\n    test 1531 line 171 lat: 61.745486\n    test 1532 line 171 lon: 142.333199\n    test 1533 line 171 fb: 139.666209\n    test 1534 line 171 lat2: 61.745485817368\n    test 1535 line 171 lon2: 142.333198773096\n    test 1536 line 171 azi2: 139.666208757008\n    test 1537 line 171 lat2: 61.745485817368\n    test 1538 line 171 lon2: 142.333198773096\n    test 1539 line 171 azi2: 139.666208757008\n    test 1540 line 172 lat: 13.414523\n    test 1541 line 172 lon: 39.322993\n    test 1542 line 172 fb: 144.276516\n    test 1543 line 172 lat2: 13.414522997032\n    test 1544 line 172 lon2: 39.322992706733\n    test 1545 line 172 azi2: 144.276515542083\n    test 1546 line 172 lat2: 13.414522997032\n    test 1547 line 172 lon2: 39.322992706733\n    test 1548 line 172 azi2: 144.276515542083\n    test 1549 line 173 lat: -49.831353\n    test 1550 line 173 lon: 72.426738\n    test 1551 line 173 fb: 126.251620\n    test 1552 line 173 lat2: -49.831353332108\n    test 1553 line 173 lon2: 72.426737728887\n    test 1554 line 173 azi2: 126.251620412456\n    test 1555 line 173 lat2: -49.831353332108\n    test 1556 line 173 lon2: 72.426737728887\n    test 1557 line 173 azi2: 126.251620412456\n    test 1558 line 174 lat: 1.822589\n    test 1559 line 174 lon: 53.589208\n    test 1560 line 174 fb: 97.925176\n    test 1561 line 174 lat2: 1.822589208021\n    test 1562 line 174 lon2: 53.589207810481\n    test 1563 line 174 azi2: 97.925176229124\n    test 1564 line 174 lat2: 1.822589208021\n    test 1565 line 174 lon2: 53.589207810481\n    test 1566 line 174 azi2: 97.925176229124\n    test 1567 line 175 lat: -7.987194\n    test 1568 line 175 lon: 49.318809\n    test 1569 line 175 fb: 128.386595\n    test 1570 line 175 lat2: -7.987193900849\n    test 1571 line 175 lon2: 49.318809304076\n    test 1572 line 175 azi2: 128.386594768748\n    test 1573 line 175 lat2: -7.987193900849\n    test 1574 line 175 lon2: 49.318809304075  FAILED, KNOWN, expected 49.318809304076\n    test 1575 line 175 azi2: 128.386594768748\n    test 1576 line 176 lat: -56.807375\n    test 1577 line 176 lon: 4.521802\n    test 1578 line 176 fb: 176.806063\n    test 1579 line 176 lat2: -56.807375049864\n    test 1580 line 176 lon2: 4.521801986353\n    test 1581 line 176 azi2: 176.806062785470\n    test 1582 line 176 lat2: -56.807375049864\n    test 1583 line 176 lon2: 4.521801986353\n    test 1584 line 176 azi2: 176.806062785470\n    test 1585 line 177 lat: -25.969834\n    test 1586 line 177 lon: 64.903749\n    test 1587 line 177 fb: 124.103844\n    test 1588 line 177 lat2: -25.969833883721\n    test 1589 line 177 lon2: 64.903749477059\n    test 1590 line 177 azi2: 124.103844353942\n    test 1591 line 177 lat2: -25.969833883721\n    test 1592 line 177 lon2: 64.903749477059\n    test 1593 line 177 azi2: 124.103844353942\n    test 1594 line 178 lat: 32.807360\n    test 1595 line 178 lon: 65.107962\n    test 1596 line 178 fb: 124.577990\n    test 1597 line 178 lat2: 32.807359742667\n    test 1598 line 178 lon2: 65.107961864983\n    test 1599 line 178 azi2: 124.577990419073\n    test 1600 line 178 lat2: 32.807359742667\n    test 1601 line 178 lon2: 65.107961864983\n    test 1602 line 178 azi2: 124.577990419073\n    test 1603 line 179 lat: -21.552138\n    test 1604 line 179 lon: 102.466022\n    test 1605 line 179 fb: 109.640197\n    test 1606 line 179 lat2: -21.552137872353\n    test 1607 line 179 lon2: 102.466021945025\n    test 1608 line 179 azi2: 109.640197455958\n    test 1609 line 179 lat2: -21.552137872353\n    test 1610 line 179 lon2: 102.466021945025\n    test 1611 line 179 azi2: 109.640197455958\n    test 1612 line 180 lat: -26.271741\n    test 1613 line 180 lon: 158.321581\n    test 1614 line 180 fb: 165.993649\n    test 1615 line 180 lat2: -26.271741383677\n    test 1616 line 180 lon2: 158.321581345077\n    test 1617 line 180 azi2: 165.993649158305\n    test 1618 line 180 lat2: -26.271741383677\n    test 1619 line 180 lon2: 158.321581345077\n    test 1620 line 180 azi2: 165.993649158305\n    test 1621 line 181 lat: 41.023069\n    test 1622 line 181 lon: 155.562542\n    test 1623 line 181 fb: 153.407414\n    test 1624 line 181 lat2: 41.023069113496\n    test 1625 line 181 lon2: 155.562542134179\n    test 1626 line 181 azi2: 153.407413608014\n    test 1627 line 181 lat2: 41.023069113496\n    test 1628 line 181 lon2: 155.562542134179\n    test 1629 line 181 azi2: 153.407413608014\n    test 1630 line 182 lat: 16.445471\n    test 1631 line 182 lon: 165.261461\n    test 1632 line 182 fb: 165.424806\n    test 1633 line 182 lat2: 16.445470954340\n    test 1634 line 182 lon2: 165.261461448873\n    test 1635 line 182 azi2: 165.424806257119\n    test 1636 line 182 lat2: 16.445470954340\n    test 1637 line 182 lon2: 165.261461448873\n    test 1638 line 182 azi2: 165.424806257119\n    test 1639 line 183 lat: -3.222107\n    test 1640 line 183 lon: 84.129727\n    test 1641 line 183 fb: 154.083851\n    test 1642 line 183 lat2: -3.222107095788\n    test 1643 line 183 lon2: 84.129726900596\n    test 1644 line 183 azi2: 154.083851495688\n    test 1645 line 183 lat2: -3.222107095788\n    test 1646 line 183 lon2: 84.129726900596\n    test 1647 line 183 azi2: 154.083851495688\n    test 1648 line 184 lat: 7.811710\n    test 1649 line 184 lon: 123.143308\n    test 1650 line 184 fb: 123.998106\n    test 1651 line 184 lat2: 7.811709739638\n    test 1652 line 184 lon2: 123.143308309660\n    test 1653 line 184 azi2: 123.998105582525\n    test 1654 line 184 lat2: 7.811709739638\n    test 1655 line 184 lon2: 123.143308309660\n    test 1656 line 184 azi2: 123.998105582525\n    test 1657 line 185 lat: -45.235922\n    test 1658 line 185 lon: 129.419283\n    test 1659 line 185 fb: 91.493406\n    test 1660 line 185 lat2: -45.235922276879\n    test 1661 line 185 lon2: 129.419282696458\n    test 1662 line 185 azi2: 91.493405946969  FAILED, KNOWN, expected 91.493405946970\n    test 1663 line 185 lat2: -45.235922276879\n    test 1664 line 185 lon2: 129.419282696458\n    test 1665 line 185 azi2: 91.493405946970\n    test 1666 line 186 lat: -43.047563\n    test 1667 line 186 lon: 121.565541\n    test 1668 line 186 fb: 99.850543\n    test 1669 line 186 lat2: -43.047563118772\n    test 1670 line 186 lon2: 121.565540573788\n    test 1671 line 186 azi2: 99.850542926816\n    test 1672 line 186 lat2: -43.047563118772\n    test 1673 line 186 lon2: 121.565540573788\n    test 1674 line 186 azi2: 99.850542926816\n    test 1675 line 187 lat: -22.881002\n    test 1676 line 187 lon: 159.765030\n    test 1677 line 187 fb: 60.474878\n    test 1678 line 187 lat2: -22.881001889671\n    test 1679 line 187 lon2: 159.765030106650\n    test 1680 line 187 azi2: 60.474878214384\n    test 1681 line 187 lat2: -22.881001889671\n    test 1682 line 187 lon2: 159.765030106650\n    test 1683 line 187 azi2: 60.474878214384\n    test 1684 line 188 lat: -15.011946\n    test 1685 line 188 lon: 55.594746\n    test 1686 line 188 fb: 121.838839\n    test 1687 line 188 lat2: -15.011946251300\n    test 1688 line 188 lon2: 55.594746074667\n    test 1689 line 188 azi2: 121.838839080255\n    test 1690 line 188 lat2: -15.011946251300\n    test 1691 line 188 lon2: 55.594746074667\n    test 1692 line 188 azi2: 121.838839080255\n    test 1693 line 189 lat: -29.011142\n    test 1694 line 189 lon: 0.856639\n    test 1695 line 189 fb: 178.744943\n    test 1696 line 189 lat2: -29.011142183887\n    test 1697 line 189 lon2: 0.856639457160\n    test 1698 line 189 azi2: 178.744943180805\n    test 1699 line 189 lat2: -29.011142183887\n    test 1700 line 189 lon2: 0.856639457160\n    test 1701 line 189 azi2: 178.744943180805\n    test 1702 line 190 lat: -0.353001\n    test 1703 line 190 lon: 48.401255\n    test 1704 line 190 fb: 95.612551\n    test 1705 line 190 lat2: -0.353000909367\n    test 1706 line 190 lon2: 48.401254652488  FAILED, KNOWN, expected 48.401254652487\n    test 1707 line 190 azi2: 95.612551044908\n    test 1708 line 190 lat2: -0.353000909367\n    test 1709 line 190 lon2: 48.401254652487\n    test 1710 line 190 azi2: 95.612551044908\n    test 1711 line 191 lat: 18.843341\n    test 1712 line 191 lon: 105.405456\n    test 1713 line 191 fb: 145.215722\n    test 1714 line 191 lat2: 18.843340962664\n    test 1715 line 191 lon2: 105.405456105476\n    test 1716 line 191 azi2: 145.215722323742\n    test 1717 line 191 lat2: 18.843340962664\n    test 1718 line 191 lon2: 105.405456105476\n    test 1719 line 191 azi2: 145.215722323742\n    test 1720 line 192 lat: 19.672225\n    test 1721 line 192 lon: 64.132980\n    test 1722 line 192 fb: 131.894863\n    test 1723 line 192 lat2: 19.672224913225\n    test 1724 line 192 lon2: 64.132979510420\n    test 1725 line 192 azi2: 131.894863434272\n    test 1726 line 192 lat2: 19.672224913225\n    test 1727 line 192 lon2: 64.132979510420\n    test 1728 line 192 azi2: 131.894863434272\n    test 1729 line 193 lat: -44.315074\n    test 1730 line 193 lon: 132.711860\n    test 1731 line 193 fb: 57.236875\n    test 1732 line 193 lat2: -44.315073617889\n    test 1733 line 193 lon2: 132.711860436437\n    test 1734 line 193 azi2: 57.236875169148\n    test 1735 line 193 lat2: -44.315073617889\n    test 1736 line 193 lon2: 132.711860436437\n    test 1737 line 193 azi2: 57.236875169148\n    test 1738 line 194 lat: 71.956294\n    test 1739 line 194 lon: 23.707587\n    test 1740 line 194 fb: 28.235947\n    test 1741 line 194 lat2: 71.956293555096\n    test 1742 line 194 lon2: 23.707587498943\n    test 1743 line 194 azi2: 28.235946630177\n    test 1744 line 194 lat2: 71.956293555096\n    test 1745 line 194 lon2: 23.707587498943\n    test 1746 line 194 azi2: 28.235946630177\n    test 1747 line 195 lat: -1.372652\n    test 1748 line 195 lon: 37.704231\n    test 1749 line 195 fb: 92.737862\n    test 1750 line 195 lat2: -1.372652195171\n    test 1751 line 195 lon2: 37.704230798676\n    test 1752 line 195 azi2: 92.737862264368\n    test 1753 line 195 lat2: -1.372652195171\n    test 1754 line 195 lon2: 37.704230798676\n    test 1755 line 195 azi2: 92.737862264368\n    test 1756 line 196 lat: 32.377148\n    test 1757 line 196 lon: 148.638709\n    test 1758 line 196 fb: 164.415210\n    test 1759 line 196 lat2: 32.377147634362\n    test 1760 line 196 lon2: 148.638709383249\n    test 1761 line 196 azi2: 164.415210005459\n    test 1762 line 196 lat2: 32.377147634362\n    test 1763 line 196 lon2: 148.638709383249\n    test 1764 line 196 azi2: 164.415210005459\n    test 1765 line 197 lat: 77.876832\n    test 1766 line 197 lon: 86.074591\n    test 1767 line 197 fb: 93.017705\n    test 1768 line 197 lat2: 77.876831887051\n    test 1769 line 197 lon2: 86.074590642864\n    test 1770 line 197 azi2: 93.017704501543\n    test 1771 line 197 lat2: 77.876831887051\n    test 1772 line 197 lon2: 86.074590642864\n    test 1773 line 197 azi2: 93.017704501543\n    test 1774 line 198 lat: -7.405195\n    test 1775 line 198 lon: 11.962469\n    test 1776 line 198 fb: 123.788484\n    test 1777 line 198 lat2: -7.405194804958\n    test 1778 line 198 lon2: 11.962468510681\n    test 1779 line 198 azi2: 123.788484407208\n    test 1780 line 198 lat2: -7.405194804958\n    test 1781 line 198 lon2: 11.962468510681\n    test 1782 line 198 azi2: 123.788484407208\n    test 1783 line 199 lat: -75.001311\n    test 1784 line 199 lon: 173.334144\n    test 1785 line 199 fb: 8.916523\n    test 1786 line 199 lat2: -75.001310556015\n    test 1787 line 199 lon2: 173.334144385512\n    test 1788 line 199 azi2: 8.916523271572\n    test 1789 line 199 lat2: -75.001310556015\n    test 1790 line 199 lon2: 173.334144385512\n    test 1791 line 199 azi2: 8.916523271572\n    test 1792 line 200 lat: -33.145967\n    test 1793 line 200 lon: 32.349241\n    test 1794 line 200 fb: 154.035798\n    test 1795 line 200 lat2: -33.145966631435\n    test 1796 line 200 lon2: 32.349240627001\n    test 1797 line 200 azi2: 154.035798269631\n    test 1798 line 200 lat2: -33.145966631435\n    test 1799 line 200 lon2: 32.349240627001\n    test 1800 line 200 azi2: 154.035798269631\n    test 1801 line 201 lat: 32.938605\n    test 1802 line 201 lon: 98.042857\n    test 1803 line 201 fb: 124.954750\n    test 1804 line 201 lat2: 32.938605083648\n    test 1805 line 201 lon2: 98.042857137838\n    test 1806 line 201 azi2: 124.954750401990\n    test 1807 line 201 lat2: 32.938605083648\n    test 1808 line 201 lon2: 98.042857137838\n    test 1809 line 201 azi2: 124.954750401990\n    test 1810 line 202 lat: 18.924315\n    test 1811 line 202 lon: 20.712136\n    test 1812 line 202 fb: 118.058457\n    test 1813 line 202 lat2: 18.924314631117\n    test 1814 line 202 lon2: 20.712135699713\n    test 1815 line 202 azi2: 118.058457437327\n    test 1816 line 202 lat2: 18.924314631117\n    test 1817 line 202 lon2: 20.712135699713\n    test 1818 line 202 azi2: 118.058457437327\n    test 1819 line 203 lat: 34.281652\n    test 1820 line 203 lon: 66.815398\n    test 1821 line 203 fb: 147.693080\n    test 1822 line 203 lat2: 34.281652047931\n    test 1823 line 203 lon2: 66.815398066147\n    test 1824 line 203 azi2: 147.693079659533\n    test 1825 line 203 lat2: 34.281652047931\n    test 1826 line 203 lon2: 66.815398066147\n    test 1827 line 203 azi2: 147.693079659533\n    test 1828 line 204 lat: -56.830635\n    test 1829 line 204 lon: 2.137046\n    test 1830 line 204 fb: 178.041562\n    test 1831 line 204 lat2: -56.830634769513\n    test 1832 line 204 lon2: 2.137046322217\n    test 1833 line 204 azi2: 178.041562126305\n    test 1834 line 204 lat2: -56.830634769513\n    test 1835 line 204 lon2: 2.137046322217\n    test 1836 line 204 azi2: 178.041562126305\n    test 1837 line 205 lat: -68.481893\n    test 1838 line 205 lon: 107.036720\n    test 1839 line 205 fb: 152.384477\n    test 1840 line 205 lat2: -68.481892540174\n    test 1841 line 205 lon2: 107.036720123074\n    test 1842 line 205 azi2: 152.384476595412\n    test 1843 line 205 lat2: -68.481892540174\n    test 1844 line 205 lon2: 107.036720123074\n    test 1845 line 205 azi2: 152.384476595412\n    test 1846 line 206 lat: -22.502042\n    test 1847 line 206 lon: 171.827566\n    test 1848 line 206 fb: 158.834328\n    test 1849 line 206 lat2: -22.502042312255\n    test 1850 line 206 lon2: 171.827566033608\n    test 1851 line 206 azi2: 158.834327972407\n    test 1852 line 206 lat2: -22.502042312255\n    test 1853 line 206 lon2: 171.827566033608\n    test 1854 line 206 azi2: 158.834327972407\n    test 1855 line 207 lat: -4.504199\n    test 1856 line 207 lon: 138.544338\n    test 1857 line 207 fb: 123.633526\n    test 1858 line 207 lat2: -4.504199404775\n    test 1859 line 207 lon2: 138.544338028736\n    test 1860 line 207 azi2: 123.633526406205\n    test 1861 line 207 lat2: -4.504199404775\n    test 1862 line 207 lon2: 138.544338028736\n    test 1863 line 207 azi2: 123.633526406205\n    test 1864 line 208 lat: -9.226343\n    test 1865 line 208 lon: 120.310050\n    test 1866 line 208 fb: 142.789186\n    test 1867 line 208 lat2: -9.226343110712\n    test 1868 line 208 lon2: 120.310050148004\n    test 1869 line 208 azi2: 142.789186422068\n    test 1870 line 208 lat2: -9.226343110712\n    test 1871 line 208 lon2: 120.310050148004\n    test 1872 line 208 azi2: 142.789186422068\n    test 1873 line 209 lat: -51.684044\n    test 1874 line 209 lon: 137.764140\n    test 1875 line 209 fb: 56.844891\n    test 1876 line 209 lat2: -51.684044075582\n    test 1877 line 209 lon2: 137.764139808689\n    test 1878 line 209 azi2: 56.844890846790\n    test 1879 line 209 lat2: -51.684044075582\n    test 1880 line 209 lon2: 137.764139808689\n    test 1881 line 209 azi2: 56.844890846790\n    test 1882 line 210 lat: 19.467357\n    test 1883 line 210 lon: 93.870087\n    test 1884 line 210 fb: 129.125491\n    test 1885 line 210 lat2: 19.467357090193\n    test 1886 line 210 lon2: 93.870087361293\n    test 1887 line 210 azi2: 129.125490840370\n    test 1888 line 210 lat2: 19.467357090193\n    test 1889 line 210 lon2: 93.870087361293\n    test 1890 line 210 azi2: 129.125490840370\n    test 1891 line 211 lat: 33.594608\n    test 1892 line 211 lon: 58.324143\n    test 1893 line 211 fb: 101.975372\n    test 1894 line 211 lat2: 33.594607695347\n    test 1895 line 211 lon2: 58.324143410893\n    test 1896 line 211 azi2: 101.975372004111\n    test 1897 line 211 lat2: 33.594607695347\n    test 1898 line 211 lon2: 58.324143410893\n    test 1899 line 211 azi2: 101.975372004111\n    test 1900 line 212 lat: -1.184701\n    test 1901 line 212 lon: 92.834285\n    test 1902 line 212 fb: 134.201097\n    test 1903 line 212 lat2: -1.184701423910\n    test 1904 line 212 lon2: 92.834285031504\n    test 1905 line 212 azi2: 134.201097217000\n    test 1906 line 212 lat2: -1.184701423910\n    test 1907 line 212 lon2: 92.834285031504\n    test 1908 line 212 azi2: 134.201097217000\n    test 1909 line 213 lat: 5.878639\n    test 1910 line 213 lon: 90.756173\n    test 1911 line 213 fb: 156.936699\n    test 1912 line 213 lat2: 5.878638801092\n    test 1913 line 213 lon2: 90.756172727682\n    test 1914 line 213 azi2: 156.936698928215\n    test 1915 line 213 lat2: 5.878638801092\n    test 1916 line 213 lon2: 90.756172727682\n    test 1917 line 213 azi2: 156.936698928215\n    test 1918 line 214 lat: 47.611646\n    test 1919 line 214 lon: 131.482218\n    test 1920 line 214 fb: 152.077667\n    test 1921 line 214 lat2: 47.611646039058\n    test 1922 line 214 lon2: 131.482217984255\n    test 1923 line 214 azi2: 152.077667341138\n    test 1924 line 214 lat2: 47.611646039058\n    test 1925 line 214 lon2: 131.482217984255\n    test 1926 line 214 azi2: 152.077667341138\n    test 1927 line 215 lat: 13.906234\n    test 1928 line 215 lon: 115.526238\n    test 1929 line 215 fb: 130.769627\n    test 1930 line 215 lat2: 13.906233945801\n    test 1931 line 215 lon2: 115.526238064488\n    test 1932 line 215 azi2: 130.769627488545\n    test 1933 line 215 lat2: 13.906233945801\n    test 1934 line 215 lon2: 115.526238064488\n    test 1935 line 215 azi2: 130.769627488545\n    test 1936 line 216 lat: 3.675485\n    test 1937 line 216 lon: 80.781862\n    test 1938 line 216 fb: 94.188426\n    test 1939 line 216 lat2: 3.675485213596\n    test 1940 line 216 lon2: 80.781861923838\n    test 1941 line 216 azi2: 94.188426367881\n    test 1942 line 216 lat2: 3.675485213596\n    test 1943 line 216 lon2: 80.781861923838\n    test 1944 line 216 azi2: 94.188426367881\n    test 1945 line 217 lat: 68.665600\n    test 1946 line 217 lon: 21.503123\n    test 1947 line 217 fb: 107.667810\n    test 1948 line 217 lat2: 68.665599857810\n    test 1949 line 217 lon2: 21.503123449290\n    test 1950 line 217 azi2: 107.667809564608\n    test 1951 line 217 lat2: 68.665599857810\n    test 1952 line 217 lon2: 21.503123449290\n    test 1953 line 217 azi2: 107.667809564608\n    test 1954 line 218 lat: -60.791732\n    test 1955 line 218 lon: 82.476063\n    test 1956 line 218 fb: 117.665953\n    test 1957 line 218 lat2: -60.791732218314\n    test 1958 line 218 lon2: 82.476062801971\n    test 1959 line 218 azi2: 117.665952598924\n    test 1960 line 218 lat2: -60.791732218314\n    test 1961 line 218 lon2: 82.476062801971\n    test 1962 line 218 azi2: 117.665952598924\n    test 1963 line 219 lat: -33.122376\n    test 1964 line 219 lon: 89.871476\n    test 1965 line 219 fb: 124.068098\n    test 1966 line 219 lat2: -33.122375734012\n    test 1967 line 219 lon2: 89.871476211443\n    test 1968 line 219 azi2: 124.068098444465\n    test 1969 line 219 lat2: -33.122375734012\n    test 1970 line 219 lon2: 89.871476211443\n    test 1971 line 219 azi2: 124.068098444465\n    test 1972 line 220 lat: -34.085934\n    test 1973 line 220 lon: 117.886549\n    test 1974 line 220 fb: 93.366647\n    test 1975 line 220 lat2: -34.085934037207\n    test 1976 line 220 lon2: 117.886548615401\n    test 1977 line 220 azi2: 93.366647127153\n    test 1978 line 220 lat2: -34.085934037207\n    test 1979 line 220 lon2: 117.886548615401\n    test 1980 line 220 azi2: 93.366647127153\n    test 1981 line 221 lat: -43.746811\n    test 1982 line 221 lon: 107.199939\n    test 1983 line 221 fb: 101.218435\n    test 1984 line 221 lat2: -43.746811413059\n    test 1985 line 221 lon2: 107.199938541143\n    test 1986 line 221 azi2: 101.218434581373\n    test 1987 line 221 lat2: -43.746811413059\n    test 1988 line 221 lon2: 107.199938541143\n    test 1989 line 221 azi2: 101.218434581373\n    test 1990 line 222 lat: -44.514857\n    test 1991 line 222 lon: 19.560361\n    test 1992 line 222 fb: 166.449925\n    test 1993 line 222 lat2: -44.514857277517\n    test 1994 line 222 lon2: 19.560360617266\n    test 1995 line 222 azi2: 166.449925135617\n    test 1996 line 222 lat2: -44.514857277517\n    test 1997 line 222 lon2: 19.560360617266\n    test 1998 line 222 azi2: 166.449925135617\n    test 1999 line 223 lat: -18.049262\n    test 2000 line 223 lon: 42.099193\n    test 2001 line 223 fb: 158.127141\n    test 2002 line 223 lat2: -18.049261796697\n    test 2003 line 223 lon2: 42.099193394607\n    test 2004 line 223 azi2: 158.127140901909\n    test 2005 line 223 lat2: -18.049261796697\n    test 2006 line 223 lon2: 42.099193394607\n    test 2007 line 223 azi2: 158.127140901909\n    test 2008 line 224 lat: 9.832902\n    test 2009 line 224 lon: 51.448057\n    test 2010 line 224 fb: 114.348703\n    test 2011 line 224 lat2: 9.832901687662\n    test 2012 line 224 lon2: 51.448057387281\n    test 2013 line 224 azi2: 114.348702917675\n    test 2014 line 224 lat2: 9.832901687662\n    test 2015 line 224 lon2: 51.448057387281\n    test 2016 line 224 azi2: 114.348702917675\n    test 2017 line 225 lat: -57.516443\n    test 2018 line 225 lon: 64.700933\n    test 2019 line 225 fb: 137.459801\n    test 2020 line 225 lat2: -57.516443280706\n    test 2021 line 225 lon2: 64.700933124813\n    test 2022 line 225 azi2: 137.459801078685\n    test 2023 line 225 lat2: -57.516443280706\n    test 2024 line 225 lon2: 64.700933124813\n    test 2025 line 225 azi2: 137.459801078685\n    test 2026 line 226 lat: -23.072600\n    test 2027 line 226 lon: 95.392602\n    test 2028 line 226 fb: 140.119143\n    test 2029 line 226 lat2: -23.072599811854\n    test 2030 line 226 lon2: 95.392601883769\n    test 2031 line 226 azi2: 140.119143469104\n    test 2032 line 226 lat2: -23.072599811854\n    test 2033 line 226 lon2: 95.392601883769\n    test 2034 line 226 azi2: 140.119143469104\n    test 2035 line 227 lat: -45.117254\n    test 2036 line 227 lon: 97.361647\n    test 2037 line 227 fb: 97.339041\n    test 2038 line 227 lat2: -45.117253614100\n    test 2039 line 227 lon2: 97.361647352714\n    test 2040 line 227 azi2: 97.339040559115\n    test 2041 line 227 lat2: -45.117253614100\n    test 2042 line 227 lon2: 97.361647352714\n    test 2043 line 227 azi2: 97.339040559115\n    test 2044 line 228 lat: -11.277328\n    test 2045 line 228 lon: 19.602358\n    test 2046 line 228 fb: 156.779730\n    test 2047 line 228 lat2: -11.277328262947\n    test 2048 line 228 lon2: 19.602358024471\n    test 2049 line 228 azi2: 156.779729902321\n    test 2050 line 228 lat2: -11.277328262947\n    test 2051 line 228 lon2: 19.602358024471\n    test 2052 line 228 azi2: 156.779729902321\n    test 2053 line 229 lat: -4.823524\n    test 2054 line 229 lon: 164.626842\n    test 2055 line 229 fb: 151.314797\n    test 2056 line 229 lat2: -4.823524348693\n    test 2057 line 229 lon2: 164.626841855534\n    test 2058 line 229 azi2: 151.314796841238\n    test 2059 line 229 lat2: -4.823524348693\n    test 2060 line 229 lon2: 164.626841855534\n    test 2061 line 229 azi2: 151.314796841238\n    test 2062 line 230 lat: 36.317088\n    test 2063 line 230 lon: 89.326155\n    test 2064 line 230 fb: 94.589052\n    test 2065 line 230 lat2: 36.317087922282\n    test 2066 line 230 lon2: 89.326155365943\n    test 2067 line 230 azi2: 94.589051951235\n    test 2068 line 230 lat2: 36.317087922282\n    test 2069 line 230 lon2: 89.326155365943\n    test 2070 line 230 azi2: 94.589051951235\n    test 2071 line 231 lat: 3.975433\n    test 2072 line 231 lon: 105.460359\n    test 2073 line 231 fb: 126.257925\n    test 2074 line 231 lat2: 3.975432760073\n    test 2075 line 231 lon2: 105.460358584149\n    test 2076 line 231 azi2: 126.257925455058\n    test 2077 line 231 lat2: 3.975432760073\n    test 2078 line 231 lon2: 105.460358584149\n    test 2079 line 231 azi2: 126.257925455058\n    test 2080 line 232 lat: 28.815984\n    test 2081 line 232 lon: 89.807394\n    test 2082 line 232 fb: 116.984375\n    test 2083 line 232 lat2: 28.815983592511\n    test 2084 line 232 lon2: 89.807393686834\n    test 2085 line 232 azi2: 116.984374981602\n    test 2086 line 232 lat2: 28.815983592511\n    test 2087 line 232 lon2: 89.807393686834\n    test 2088 line 232 azi2: 116.984374981602\n    test 2089 line 233 lat: 66.161717\n    test 2090 line 233 lon: 63.218655\n    test 2091 line 233 fb: 88.869959\n    test 2092 line 233 lat2: 66.161716765270\n    test 2093 line 233 lon2: 63.218655052918\n    test 2094 line 233 azi2: 88.869959091488\n    test 2095 line 233 lat2: 66.161716765270\n    test 2096 line 233 lon2: 63.218655052918\n    test 2097 line 233 azi2: 88.869959091488\n    test 2098 line 234 lat: 74.859972\n    test 2099 line 234 lon: 53.523361\n    test 2100 line 234 fb: 58.125008\n    test 2101 line 234 lat2: 74.859971601090\n    test 2102 line 234 lon2: 53.523360738831\n    test 2103 line 234 azi2: 58.125008091802\n    test 2104 line 234 lat2: 74.859971601090\n    test 2105 line 234 lon2: 53.523360738831\n    test 2106 line 234 azi2: 58.125008091802\n    test 2107 line 235 lat: -0.265481\n    test 2108 line 235 lon: 79.537677\n    test 2109 line 235 fb: 112.945830\n    test 2110 line 235 lat2: -0.265481234322\n    test 2111 line 235 lon2: 79.537677388981\n    test 2112 line 235 azi2: 112.945829781102\n    test 2113 line 235 lat2: -0.265481234322\n    test 2114 line 235 lon2: 79.537677388981\n    test 2115 line 235 azi2: 112.945829781102\n    test 2116 line 236 lat: -12.099598\n    test 2117 line 236 lon: 155.371356\n    test 2118 line 236 fb: 76.454292\n    test 2119 line 236 lat2: -12.099598021004\n    test 2120 line 236 lon2: 155.371356164845\n    test 2121 line 236 azi2: 76.454291606612\n    test 2122 line 236 lat2: -12.099598021004\n    test 2123 line 236 lon2: 155.371356164845\n    test 2124 line 236 azi2: 76.454291606612\n    test 2125 line 237 lat: -6.746465\n    test 2126 line 237 lon: 19.102484\n    test 2127 line 237 fb: 149.342236\n    test 2128 line 237 lat2: -6.746464854112\n    test 2129 line 237 lon2: 19.102484309526\n    test 2130 line 237 azi2: 149.342236428405\n    test 2131 line 237 lat2: -6.746464854112\n    test 2132 line 237 lon2: 19.102484309526\n    test 2133 line 237 azi2: 149.342236428405\n    test 2134 line 238 lat: 0.663830\n    test 2135 line 238 lon: 101.295721\n    test 2136 line 238 fb: 133.862626\n    test 2137 line 238 lat2: 0.663830251510\n    test 2138 line 238 lon2: 101.295720736944\n    test 2139 line 238 azi2: 133.862626019473\n    test 2140 line 238 lat2: 0.663830251510\n    test 2141 line 238 lon2: 101.295720736944\n    test 2142 line 238 azi2: 133.862626019473\n    test 2143 line 239 lat: -61.764624\n    test 2144 line 239 lon: 148.537522\n    test 2145 line 239 fb: 149.298772\n    test 2146 line 239 lat2: -61.764623993813\n    test 2147 line 239 lon2: 148.537521922087\n    test 2148 line 239 azi2: 149.298771734214\n    test 2149 line 239 lat2: -61.764623993813\n    test 2150 line 239 lon2: 148.537521922087\n    test 2151 line 239 azi2: 149.298771734214\n    test 2152 line 240 lat: 14.505122\n    test 2153 line 240 lon: 111.665519\n    test 2154 line 240 fb: 97.740222\n    test 2155 line 240 lat2: 14.505121777043\n    test 2156 line 240 lon2: 111.665518774379\n    test 2157 line 240 azi2: 97.740221959573\n    test 2158 line 240 lat2: 14.505121777043\n    test 2159 line 240 lon2: 111.665518774379\n    test 2160 line 240 azi2: 97.740221959573\n    test 2161 line 241 lat: -24.713205\n    test 2162 line 241 lon: 34.159384\n    test 2163 line 241 fb: 125.866132\n    test 2164 line 241 lat2: -24.713205327375\n    test 2165 line 241 lon2: 34.159384140577\n    test 2166 line 241 azi2: 125.866132443875\n    test 2167 line 241 lat2: -24.713205327375\n    test 2168 line 241 lon2: 34.159384140577\n    test 2169 line 241 azi2: 125.866132443875\n    test 2170 line 242 lat: 50.480262\n    test 2171 line 242 lon: 42.263850\n    test 2172 line 242 fb: 153.395659\n    test 2173 line 242 lat2: 50.480261762893\n    test 2174 line 242 lon2: 42.263849601327\n    test 2175 line 242 azi2: 153.395658919028\n    test 2176 line 242 lat2: 50.480261762893\n    test 2177 line 242 lon2: 42.263849601327\n    test 2178 line 242 azi2: 153.395658919028\n    test 2179 line 243 lat: 11.787247\n    test 2180 line 243 lon: 49.506460\n    test 2181 line 243 fb: 120.836778\n    test 2182 line 243 lat2: 11.787247309610\n    test 2183 line 243 lon2: 49.506459509702\n    test 2184 line 243 azi2: 120.836778496206\n    test 2185 line 243 lat2: 11.787247309610\n    test 2186 line 243 lon2: 49.506459509702\n    test 2187 line 243 azi2: 120.836778496206\n    test 2188 line 244 lat: -19.956674\n    test 2189 line 244 lon: 14.599479\n    test 2190 line 244 fb: 177.883855\n    test 2191 line 244 lat2: -19.956673621927\n    test 2192 line 244 lon2: 14.599479227718\n    test 2193 line 244 azi2: 177.883855088778\n    test 2194 line 244 lat2: -19.956673621927\n    test 2195 line 244 lon2: 14.599479227718\n    test 2196 line 244 azi2: 177.883855088778\n    test 2197 line 245 lat: 0.738566\n    test 2198 line 245 lon: 12.600972\n    test 2199 line 245 fb: 176.085445\n    test 2200 line 245 lat2: 0.738565517815\n    test 2201 line 245 lon2: 12.600972006927\n    test 2202 line 245 azi2: 176.085445031797\n    test 2203 line 245 lat2: 0.738565517815\n    test 2204 line 245 lon2: 12.600972006927\n    test 2205 line 245 azi2: 176.085445031797\n    test 2206 line 246 lat: 25.799128\n    test 2207 line 246 lon: 9.800259\n    test 2208 line 246 fb: 166.282764\n    test 2209 line 246 lat2: 25.799128425384\n    test 2210 line 246 lon2: 9.800259258495\n    test 2211 line 246 azi2: 166.282764024264\n    test 2212 line 246 lat2: 25.799128425384\n    test 2213 line 246 lon2: 9.800259258495\n    test 2214 line 246 azi2: 166.282764024264\n    test 2215 line 247 lat: -3.897277\n    test 2216 line 247 lon: 16.693319\n    test 2217 line 247 fb: 168.780736\n    test 2218 line 247 lat2: -3.897277132184\n    test 2219 line 247 lon2: 16.693318601970\n    test 2220 line 247 azi2: 168.780736094343\n    test 2221 line 247 lat2: -3.897277132184\n    test 2222 line 247 lon2: 16.693318601970\n    test 2223 line 247 azi2: 168.780736094343\n    test 2224 line 248 lat: 2.479585\n    test 2225 line 248 lon: 72.317321\n    test 2226 line 248 fb: 126.935932\n    test 2227 line 248 lat2: 2.479585385319\n    test 2228 line 248 lon2: 72.317321261259\n    test 2229 line 248 azi2: 126.935932221711\n    test 2230 line 248 lat2: 2.479585385319\n    test 2231 line 248 lon2: 72.317321261259\n    test 2232 line 248 azi2: 126.935932221711\n    test 2233 line 249 lat: -0.836621\n    test 2234 line 249 lon: 2.490193\n    test 2235 line 249 fb: 150.640498\n    test 2236 line 249 lat2: -0.836621274662\n    test 2237 line 249 lon2: 2.490192836679\n    test 2238 line 249 azi2: 150.640498065221\n    test 2239 line 249 lat2: -0.836621274662\n    test 2240 line 249 lon2: 2.490192836679\n    test 2241 line 249 azi2: 150.640498065221\n    test 2242 line 250 lat: -69.098227\n    test 2243 line 250 lon: 43.929874\n    test 2244 line 250 fb: 143.378404\n    test 2245 line 250 lat2: -69.098226894675\n    test 2246 line 250 lon2: 43.929873562507\n    test 2247 line 250 azi2: 143.378403982035\n    test 2248 line 250 lat2: -69.098226894675\n    test 2249 line 250 lon2: 43.929873562507\n    test 2250 line 250 azi2: 143.378403982035\n    test 2251 line 251 lat: 19.156121\n    test 2252 line 251 lon: 130.658473\n    test 2253 line 251 fb: 136.204475\n    test 2254 line 251 lat2: 19.156121137418\n    test 2255 line 251 lon2: 130.658473280949\n    test 2256 line 251 azi2: 136.204475163250\n    test 2257 line 251 lat2: 19.156121137418\n    test 2258 line 251 lon2: 130.658473280949\n    test 2259 line 251 azi2: 136.204475163250\n    test 2260 line 252 lat: 68.881949\n    test 2261 line 252 lon: 79.375865\n    test 2262 line 252 fb: 99.052732\n    test 2263 line 252 lat2: 68.881948915820\n    test 2264 line 252 lon2: 79.375865154433\n    test 2265 line 252 azi2: 99.052731550675\n    test 2266 line 252 lat2: 68.881948915820\n    test 2267 line 252 lon2: 79.375865154433\n    test 2268 line 252 azi2: 99.052731550675\n    test 2269 line 253 lat: -23.509016\n    test 2270 line 253 lon: 122.232226\n    test 2271 line 253 fb: 90.354604\n    test 2272 line 253 lat2: -23.509015988874\n    test 2273 line 253 lon2: 122.232226283491\n    test 2274 line 253 azi2: 90.354603607380\n    test 2275 line 253 lat2: -23.509015988874\n    test 2276 line 253 lon2: 122.232226283491\n    test 2277 line 253 azi2: 90.354603607380\n    test 2278 line 254 lat: -64.950636\n    test 2279 line 254 lon: 70.184354\n    test 2280 line 254 fb: 122.478937\n    test 2281 line 254 lat2: -64.950635804577\n    test 2282 line 254 lon2: 70.184354384370\n    test 2283 line 254 azi2: 122.478937039089\n    test 2284 line 254 lat2: -64.950635804577\n    test 2285 line 254 lon2: 70.184354384370\n    test 2286 line 254 azi2: 122.478937039089\n    test 2287 line 255 lat: 4.931109\n    test 2288 line 255 lon: 176.100221\n    test 2289 line 255 fb: 175.754221\n    test 2290 line 255 lat2: 4.931108669549\n    test 2291 line 255 lon2: 176.100220910178\n    test 2292 line 255 azi2: 175.754221027085\n    test 2293 line 255 lat2: 4.931108669549\n    test 2294 line 255 lon2: 176.100220910178\n    test 2295 line 255 azi2: 175.754221027085\n    test 2296 line 256 lat: -35.503236\n    test 2297 line 256 lon: 122.767107\n    test 2298 line 256 fb: 94.201020\n    test 2299 line 256 lat2: -35.503236005727\n    test 2300 line 256 lon2: 122.767107174014\n    test 2301 line 256 azi2: 94.201020059324\n    test 2302 line 256 lat2: -35.503236005727\n    test 2303 line 256 lon2: 122.767107174014\n    test 2304 line 256 azi2: 94.201020059324\n    test 2305 line 257 lat: 58.728016\n    test 2306 line 257 lon: 76.607531\n    test 2307 line 257 fb: 114.353509\n    test 2308 line 257 lat2: 58.728016150448\n    test 2309 line 257 lon2: 76.607530844045\n    test 2310 line 257 azi2: 114.353508957613\n    test 2311 line 257 lat2: 58.728016150448\n    test 2312 line 257 lon2: 76.607530844045\n    test 2313 line 257 azi2: 114.353508957613\n    test 2314 line 258 lat: 13.725793\n    test 2315 line 258 lon: 60.384503\n    test 2316 line 258 fb: 102.783242\n    test 2317 line 258 lat2: 13.725792757601\n    test 2318 line 258 lon2: 60.384502867486\n    test 2319 line 258 azi2: 102.783241874789\n    test 2320 line 258 lat2: 13.725792757601\n    test 2321 line 258 lon2: 60.384502867486\n    test 2322 line 258 azi2: 102.783241874789\n    test 2323 line 259 lat: 40.298524\n    test 2324 line 259 lon: 59.957993\n    test 2325 line 259 fb: 90.056366\n    test 2326 line 259 lat2: 40.298523592677\n    test 2327 line 259 lon2: 59.957993458231\n    test 2328 line 259 azi2: 90.056365696933\n    test 2329 line 259 lat2: 40.298523592677\n    test 2330 line 259 lon2: 59.957993458231\n    test 2331 line 259 azi2: 90.056365696933\n    test 2332 line 260 lat: 21.526222\n    test 2333 line 260 lon: 19.836420\n    test 2334 line 260 fb: 89.081274\n    test 2335 line 260 lat2: 21.526221960544\n    test 2336 line 260 lon2: 19.836419824899\n    test 2337 line 260 azi2: 89.081274273400\n    test 2338 line 260 lat2: 21.526221960544\n    test 2339 line 260 lon2: 19.836419824899\n    test 2340 line 260 azi2: 89.081274273400\n    test 2341 line 261 lat: -65.269872\n    test 2342 line 261 lon: 134.049515\n    test 2343 line 261 fb: 54.613515\n    test 2344 line 261 lat2: -65.269872123888\n    test 2345 line 261 lon2: 134.049514626723\n    test 2346 line 261 azi2: 54.613514542799\n    test 2347 line 261 lat2: -65.269872123888\n    test 2348 line 261 lon2: 134.049514626723\n    test 2349 line 261 azi2: 54.613514542799\n    test 2350 line 262 lat: -47.687068\n    test 2351 line 262 lon: 86.855941\n    test 2352 line 262 fb: 115.133532\n    test 2353 line 262 lat2: -47.687068378110\n    test 2354 line 262 lon2: 86.855941174728\n    test 2355 line 262 azi2: 115.133531572693\n    test 2356 line 262 lat2: -47.687068378110\n    test 2357 line 262 lon2: 86.855941174728\n    test 2358 line 262 azi2: 115.133531572693\n    test 2359 line 263 lat: -56.637273\n    test 2360 line 263 lon: 158.001121\n    test 2361 line 263 fb: 35.013276\n    test 2362 line 263 lat2: -56.637272907294\n    test 2363 line 263 lon2: 158.001120751267\n    test 2364 line 263 azi2: 35.013276119319\n    test 2365 line 263 lat2: -56.637272907294\n    test 2366 line 263 lon2: 158.001120751267\n    test 2367 line 263 azi2: 35.013276119319\n    test 2368 line 264 lat: 6.880772\n    test 2369 line 264 lon: 36.289125\n    test 2370 line 264 fb: 144.499557\n    test 2371 line 264 lat2: 6.880771895178\n    test 2372 line 264 lon2: 36.289124705135\n    test 2373 line 264 azi2: 144.499557452454\n    test 2374 line 264 lat2: 6.880771895178\n    test 2375 line 264 lon2: 36.289124705135\n    test 2376 line 264 azi2: 144.499557452454\n    test 2377 line 265 lat: 59.205527\n    test 2378 line 265 lon: 115.787268\n    test 2379 line 265 fb: 116.793619\n    test 2380 line 265 lat2: 59.205526512430\n    test 2381 line 265 lon2: 115.787267608171\n    test 2382 line 265 azi2: 116.793618855456\n    test 2383 line 265 lat2: 59.205526512430\n    test 2384 line 265 lon2: 115.787267608171\n    test 2385 line 265 azi2: 116.793618855456\n    test 2386 line 266 lat: 29.463206\n    test 2387 line 266 lon: 68.742710\n    test 2388 line 266 fb: 113.906069\n    test 2389 line 266 lat2: 29.463206450868\n    test 2390 line 266 lon2: 68.742710218988\n    test 2391 line 266 azi2: 113.906069374400\n    test 2392 line 266 lat2: 29.463206450868\n    test 2393 line 266 lon2: 68.742710218988\n    test 2394 line 266 azi2: 113.906069374400\n    test 2395 line 267 lat: 5.507960\n    test 2396 line 267 lon: 2.913367\n    test 2397 line 267 fb: 175.225892\n    test 2398 line 267 lat2: 5.507959555355\n    test 2399 line 267 lon2: 2.913367209347\n    test 2400 line 267 azi2: 175.225891805562\n    test 2401 line 267 lat2: 5.507959555355\n    test 2402 line 267 lon2: 2.913367209347\n    test 2403 line 267 azi2: 175.225891805562\n    test 2404 line 268 lat: 32.568215\n    test 2405 line 268 lon: 107.814340\n    test 2406 line 268 fb: 126.321687\n    test 2407 line 268 lat2: 32.568215067951\n    test 2408 line 268 lon2: 107.814340389788\n    test 2409 line 268 azi2: 126.321687264203\n    test 2410 line 268 lat2: 32.568215067951\n    test 2411 line 268 lon2: 107.814340389788\n    test 2412 line 268 azi2: 126.321687264203\n    test 2413 line 269 lat: 48.941036\n    test 2414 line 269 lon: 170.309380\n    test 2415 line 269 fb: 170.816057\n    test 2416 line 269 lat2: 48.941036400994\n    test 2417 line 269 lon2: 170.309379989564\n    test 2418 line 269 azi2: 170.816056872564\n    test 2419 line 269 lat2: 48.941036400994\n    test 2420 line 269 lon2: 170.309379989564\n    test 2421 line 269 azi2: 170.816056872564\n    test 2422 line 270 lat: 32.657811\n    test 2423 line 270 lon: 174.401372\n    test 2424 line 270 fb: 173.967029\n    test 2425 line 270 lat2: 32.657810935795\n    test 2426 line 270 lon2: 174.401372292954\n    test 2427 line 270 azi2: 173.967029189838\n    test 2428 line 270 lat2: 32.657810935795\n    test 2429 line 270 lon2: 174.401372292954\n    test 2430 line 270 azi2: 173.967029189838\n    test 2431 line 271 lat: -30.959342\n    test 2432 line 271 lon: 144.596945\n    test 2433 line 271 fb: 157.635539\n    test 2434 line 271 lat2: -30.959341511189\n    test 2435 line 271 lon2: 144.596944855700\n    test 2436 line 271 azi2: 157.635538872114\n    test 2437 line 271 lat2: -30.959341511189\n    test 2438 line 271 lon2: 144.596944855700\n    test 2439 line 271 azi2: 157.635538872114\n    test 2440 line 272 lat: 52.180060\n    test 2441 line 272 lon: 68.363538\n    test 2442 line 272 fb: 82.619820\n    test 2443 line 272 lat2: 52.180060488771\n    test 2444 line 272 lon2: 68.363538073511\n    test 2445 line 272 azi2: 82.619819936898\n    test 2446 line 272 lat2: 52.180060488771\n    test 2447 line 272 lon2: 68.363538073511\n    test 2448 line 272 azi2: 82.619819936898\n    test 2449 line 273 lat: -49.230655\n    test 2450 line 273 lon: 119.085123\n    test 2451 line 273 fb: 81.553785\n    test 2452 line 273 lat2: -49.230654785601\n    test 2453 line 273 lon2: 119.085122995371\n    test 2454 line 273 azi2: 81.553785297210\n    test 2455 line 273 lat2: -49.230654785601\n    test 2456 line 273 lon2: 119.085122995371\n    test 2457 line 273 azi2: 81.553785297210\n    test 2458 line 274 lat: 12.315309\n    test 2459 line 274 lon: 21.800337\n    test 2460 line 274 fb: 86.572317\n    test 2461 line 274 lat2: 12.315308710130\n    test 2462 line 274 lon2: 21.800336803956\n    test 2463 line 274 azi2: 86.572316548512\n    test 2464 line 274 lat2: 12.315308710130\n    test 2465 line 274 lon2: 21.800336803956\n    test 2466 line 274 azi2: 86.572316548512\n    test 2467 line 275 lat: 0.074875\n    test 2468 line 275 lon: 122.092567\n    test 2469 line 275 fb: 93.940324\n    test 2470 line 275 lat2: 0.074874782626\n    test 2471 line 275 lon2: 122.092567299352\n    test 2472 line 275 azi2: 93.940323652996\n    test 2473 line 275 lat2: 0.074874782626\n    test 2474 line 275 lon2: 122.092567299352\n    test 2475 line 275 azi2: 93.940323652996\n    test 2476 line 276 lat: -32.420609\n    test 2477 line 276 lon: 80.147417\n    test 2478 line 276 fb: 123.183256\n    test 2479 line 276 lat2: -32.420609134175\n    test 2480 line 276 lon2: 80.147416945184\n    test 2481 line 276 azi2: 123.183256201588\n    test 2482 line 276 lat2: -32.420609134175\n    test 2483 line 276 lon2: 80.147416945184\n    test 2484 line 276 azi2: 123.183256201588\n    test 2485 line 277 lat: 82.600418\n    test 2486 line 277 lon: 34.418367\n    test 2487 line 277 fb: 35.057122\n    test 2488 line 277 lat2: 82.600418456713\n    test 2489 line 277 lon2: 34.418367124569\n    test 2490 line 277 azi2: 35.057122384192\n    test 2491 line 277 lat2: 82.600418456713\n    test 2492 line 277 lon2: 34.418367124569\n    test 2493 line 277 azi2: 35.057122384192\n    test 2494 line 278 lat: 26.274633\n    test 2495 line 278 lon: 93.043032\n    test 2496 line 278 fb: 114.480069\n    test 2497 line 278 lat2: 26.274632977288\n    test 2498 line 278 lon2: 93.043031668414\n    test 2499 line 278 azi2: 114.480069066657\n    test 2500 line 278 lat2: 26.274632977288\n    test 2501 line 278 lon2: 93.043031668414\n    test 2502 line 278 azi2: 114.480069066657\n    test 2503 line 279 lat: 28.433986\n    test 2504 line 279 lon: 132.962042\n    test 2505 line 279 fb: 118.817242\n    test 2506 line 279 lat2: 28.433985598740\n    test 2507 line 279 lon2: 132.962041543078\n    test 2508 line 279 azi2: 118.817241997246\n    test 2509 line 279 lat2: 28.433985598740\n    test 2510 line 279 lon2: 132.962041543078\n    test 2511 line 279 azi2: 118.817241997246\n    test 2512 line 280 lat: 32.426459\n    test 2513 line 280 lon: 65.171889\n    test 2514 line 280 fb: 113.230923\n    test 2515 line 280 lat2: 32.426458512822\n    test 2516 line 280 lon2: 65.171889395963\n    test 2517 line 280 azi2: 113.230923394172\n    test 2518 line 280 lat2: 32.426458512822\n    test 2519 line 280 lon2: 65.171889395963\n    test 2520 line 280 azi2: 113.230923394172\n    test 2521 line 281 lat: 8.427284\n    test 2522 line 281 lon: 20.342496\n    test 2523 line 281 fb: 140.993359\n    test 2524 line 281 lat2: 8.427284359102\n    test 2525 line 281 lon2: 20.342496251702\n    test 2526 line 281 azi2: 140.993359066103\n    test 2527 line 281 lat2: 8.427284359102\n    test 2528 line 281 lon2: 20.342496251702\n    test 2529 line 281 azi2: 140.993359066103\n    test 2530 line 282 lat: -16.412702\n    test 2531 line 282 lon: 47.392542\n    test 2532 line 282 fb: 167.389705\n    test 2533 line 282 lat2: -16.412702228950\n    test 2534 line 282 lon2: 47.392541669265\n    test 2535 line 282 azi2: 167.389704666322\n    test 2536 line 282 lat2: -16.412702228950\n    test 2537 line 282 lon2: 47.392541669265\n    test 2538 line 282 azi2: 167.389704666322\n    test 2539 line 283 lat: -54.082376\n    test 2540 line 283 lon: 159.985466\n    test 2541 line 283 fb: 56.023710\n    test 2542 line 283 lat2: -54.082375801659\n    test 2543 line 283 lon2: 159.985465829683\n    test 2544 line 283 azi2: 56.023710499162\n    test 2545 line 283 lat2: -54.082375801659\n    test 2546 line 283 lon2: 159.985465829683\n    test 2547 line 283 azi2: 56.023710499162\n    test 2548 line 284 lat: 38.704319\n    test 2549 line 284 lon: 78.307551\n    test 2550 line 284 fb: 106.582126\n    test 2551 line 284 lat2: 38.704318557557\n    test 2552 line 284 lon2: 78.307550831333\n    test 2553 line 284 azi2: 106.582125725743\n    test 2554 line 284 lat2: 38.704318557557\n    test 2555 line 284 lon2: 78.307550831333\n    test 2556 line 284 azi2: 106.582125725743\n    test 2557 line 285 lat: 15.206275\n    test 2558 line 285 lon: 59.878378\n    test 2559 line 285 fb: 114.460428\n    test 2560 line 285 lat2: 15.206274688849\n    test 2561 line 285 lon2: 59.878378252292\n    test 2562 line 285 azi2: 114.460428216582\n    test 2563 line 285 lat2: 15.206274688849\n    test 2564 line 285 lon2: 59.878378252292\n    test 2565 line 285 azi2: 114.460428216582\n    test 2566 line 286 lat: -62.789550\n    test 2567 line 286 lon: 66.649185\n    test 2568 line 286 fb: 119.232672\n    test 2569 line 286 lat2: -62.789549909136\n    test 2570 line 286 lon2: 66.649184622337\n    test 2571 line 286 azi2: 119.232671643971\n    test 2572 line 286 lat2: -62.789549909136\n    test 2573 line 286 lon2: 66.649184622337\n    test 2574 line 286 azi2: 119.232671643971\n    test 2575 line 287 lat: 31.235252\n    test 2576 line 287 lon: 19.933468\n    test 2577 line 287 fb: 145.488470\n    test 2578 line 287 lat2: 31.235252170087\n    test 2579 line 287 lon2: 19.933467970517\n    test 2580 line 287 azi2: 145.488469796544\n    test 2581 line 287 lat2: 31.235252170087\n    test 2582 line 287 lon2: 19.933467970517\n    test 2583 line 287 azi2: 145.488469796544\n    test 2584 line 288 lat: 11.983236\n    test 2585 line 288 lon: 145.307369\n    test 2586 line 288 fb: 151.192641\n    test 2587 line 288 lat2: 11.983236088753\n    test 2588 line 288 lon2: 145.307368849730\n    test 2589 line 288 azi2: 151.192640854621\n    test 2590 line 288 lat2: 11.983236088753\n    test 2591 line 288 lon2: 145.307368849730\n    test 2592 line 288 azi2: 151.192640854621\n    test 2593 line 289 lat: 27.629694\n    test 2594 line 289 lon: 16.148459\n    test 2595 line 289 fb: 63.008012\n    test 2596 line 289 lat2: 27.629693628283\n    test 2597 line 289 lon2: 16.148459400244\n    test 2598 line 289 azi2: 63.008012267521\n    test 2599 line 289 lat2: 27.629693628283\n    test 2600 line 289 lon2: 16.148459400244\n    test 2601 line 289 azi2: 63.008012267521\n    test 2602 line 290 lat: 34.077784\n    test 2603 line 290 lon: 115.693210\n    test 2604 line 290 fb: 112.252264\n    test 2605 line 290 lat2: 34.077783768135\n    test 2606 line 290 lon2: 115.693209573427\n    test 2607 line 290 azi2: 112.252263721679\n    test 2608 line 290 lat2: 34.077783768135\n    test 2609 line 290 lon2: 115.693209573427\n    test 2610 line 290 azi2: 112.252263721679\n    test 2611 line 291 lat: 17.100340\n    test 2612 line 291 lon: 26.538643\n    test 2613 line 291 fb: 131.391925\n    test 2614 line 291 lat2: 17.100339523444\n    test 2615 line 291 lon2: 26.538642768875\n    test 2616 line 291 azi2: 131.391925094902\n    test 2617 line 291 lat2: 17.100339523444\n    test 2618 line 291 lon2: 26.538642768875\n    test 2619 line 291 azi2: 131.391925094902\n    test 2620 line 292 lat: -8.128040\n    test 2621 line 292 lon: 28.609615\n    test 2622 line 292 fb: 144.189095\n    test 2623 line 292 lat2: -8.128039572354\n    test 2624 line 292 lon2: 28.609615412806\n    test 2625 line 292 azi2: 144.189095481788\n    test 2626 line 292 lat2: -8.128039572354\n    test 2627 line 292 lon2: 28.609615412806\n    test 2628 line 292 azi2: 144.189095481788\n    test 2629 line 293 lat: 17.307082\n    test 2630 line 293 lon: 150.748550\n    test 2631 line 293 fb: 172.334611\n    test 2632 line 293 lat2: 17.307081581668\n    test 2633 line 293 lon2: 150.748549863580\n    test 2634 line 293 azi2: 172.334611079260\n    test 2635 line 293 lat2: 17.307081581668\n    test 2636 line 293 lon2: 150.748549863580\n    test 2637 line 293 azi2: 172.334611079260\n    test 2638 line 294 lat: 4.135230\n    test 2639 line 294 lon: 142.094814\n    test 2640 line 294 fb: 170.513214\n    test 2641 line 294 lat2: 4.135229575811\n    test 2642 line 294 lon2: 142.094814225629\n    test 2643 line 294 azi2: 170.513213518678\n    test 2644 line 294 lat2: 4.135229575811\n    test 2645 line 294 lon2: 142.094814225629\n    test 2646 line 294 azi2: 170.513213518678\n    test 2647 line 295 lat: -61.544041\n    test 2648 line 295 lon: 167.154866\n    test 2649 line 295 fb: 51.415676\n    test 2650 line 295 lat2: -61.544040804472\n    test 2651 line 295 lon2: 167.154866481811\n    test 2652 line 295 azi2: 51.415675504866\n    test 2653 line 295 lat2: -61.544040804472\n    test 2654 line 295 lon2: 167.154866481811\n    test 2655 line 295 azi2: 51.415675504866\n    test 2656 line 296 lat: 27.782466\n    test 2657 line 296 lon: 53.844550\n    test 2658 line 296 fb: 78.357665\n    test 2659 line 296 lat2: 27.782465760718\n    test 2660 line 296 lon2: 53.844549799795\n    test 2661 line 296 azi2: 78.357665271795\n    test 2662 line 296 lat2: 27.782465760718\n    test 2663 line 296 lon2: 53.844549799795\n    test 2664 line 296 azi2: 78.357665271795\n    test 2665 line 297 lat: -30.157337\n    test 2666 line 297 lon: 14.759636\n    test 2667 line 297 fb: 157.487063\n    test 2668 line 297 lat2: -30.157336788088\n    test 2669 line 297 lon2: 14.759635614931\n    test 2670 line 297 azi2: 157.487063280783\n    test 2671 line 297 lat2: -30.157336788088\n    test 2672 line 297 lon2: 14.759635614931\n    test 2673 line 297 azi2: 157.487063280783\n    test 2674 line 298 lat: -16.819268\n    test 2675 line 298 lon: 22.734618\n    test 2676 line 298 fb: 167.761663\n    test 2677 line 298 lat2: -16.819268371139\n    test 2678 line 298 lon2: 22.734618221531\n    test 2679 line 298 azi2: 167.761663436059\n    test 2680 line 298 lat2: -16.819268371139\n    test 2681 line 298 lon2: 22.734618221531\n    test 2682 line 298 azi2: 167.761663436059\n    test 2683 line 299 lat: 58.190743\n    test 2684 line 299 lon: 15.576363\n    test 2685 line 299 fb: 71.213972\n    test 2686 line 299 lat2: 58.190742593673\n    test 2687 line 299 lon2: 15.576363250416\n    test 2688 line 299 azi2: 71.213972172079\n    test 2689 line 299 lat2: 58.190742593673\n    test 2690 line 299 lon2: 15.576363250416\n    test 2691 line 299 azi2: 71.213972172079\n    test 2692 line 300 lat: 57.214981\n    test 2693 line 300 lon: 163.530752\n    test 2694 line 300 fb: 162.056064\n    test 2695 line 300 lat2: 57.214981133823\n    test 2696 line 300 lon2: 163.530751680014\n    test 2697 line 300 azi2: 162.056064225923\n    test 2698 line 300 lat2: 57.214981133823\n    test 2699 line 300 lon2: 163.530751680014\n    test 2700 line 300 azi2: 162.056064225923\n    test 2701 line 301 lat: 31.811818\n    test 2702 line 301 lon: 81.663494\n    test 2703 line 301 fb: 112.546404\n    test 2704 line 301 lat2: 31.811817748936\n    test 2705 line 301 lon2: 81.663494432962\n    test 2706 line 301 azi2: 112.546403824977\n    test 2707 line 301 lat2: 31.811817748936\n    test 2708 line 301 lon2: 81.663494432962\n    test 2709 line 301 azi2: 112.546403824977\n    test 2710 line 302 lat: -11.315727\n    test 2711 line 302 lon: 48.409490\n    test 2712 line 302 fb: 121.434574\n    test 2713 line 302 lat2: -11.315726799012\n    test 2714 line 302 lon2: 48.409489590525\n    test 2715 line 302 azi2: 121.434573764585\n    test 2716 line 302 lat2: -11.315726799012\n    test 2717 line 302 lon2: 48.409489590525\n    test 2718 line 302 azi2: 121.434573764585\n    test 2719 line 303 lat: 6.119956\n    test 2720 line 303 lon: 5.687908\n    test 2721 line 303 fb: 94.977171\n    test 2722 line 303 lat2: 6.119956010623\n    test 2723 line 303 lon2: 5.687908365969\n    test 2724 line 303 azi2: 94.977170961146\n    test 2725 line 303 lat2: 6.119956010623\n    test 2726 line 303 lon2: 5.687908365969\n    test 2727 line 303 azi2: 94.977170961146\n    test 2728 line 304 lat: -13.455263\n    test 2729 line 304 lon: 92.797729\n    test 2730 line 304 fb: 125.067595\n    test 2731 line 304 lat2: -13.455262906771\n    test 2732 line 304 lon2: 92.797729354548\n    test 2733 line 304 azi2: 125.067595131171\n    test 2734 line 304 lat2: -13.455262906771\n    test 2735 line 304 lon2: 92.797729354548\n    test 2736 line 304 azi2: 125.067595131171\n    test 2737 line 305 lat: -61.258454\n    test 2738 line 305 lon: 32.464613\n    test 2739 line 305 fb: 153.578300\n    test 2740 line 305 lat2: -61.258454070259\n    test 2741 line 305 lon2: 32.464613321886\n    test 2742 line 305 azi2: 153.578299580216\n    test 2743 line 305 lat2: -61.258454070259\n    test 2744 line 305 lon2: 32.464613321886\n    test 2745 line 305 azi2: 153.578299580216\n    test 2746 line 306 lat: 76.656194\n    test 2747 line 306 lon: 147.658262\n    test 2748 line 306 fb: 154.870277\n    test 2749 line 306 lat2: 76.656194303754\n    test 2750 line 306 lon2: 147.658261698859\n    test 2751 line 306 azi2: 154.870276891567\n    test 2752 line 306 lat2: 76.656194303754\n    test 2753 line 306 lon2: 147.658261698859\n    test 2754 line 306 azi2: 154.870276891567\n    test 2755 line 307 lat: 38.020470\n    test 2756 line 307 lon: 22.502210\n    test 2757 line 307 fb: 164.603876\n    test 2758 line 307 lat2: 38.020470355438\n    test 2759 line 307 lon2: 22.502210018002\n    test 2760 line 307 azi2: 164.603876406614\n    test 2761 line 307 lat2: 38.020470355438\n    test 2762 line 307 lon2: 22.502210018002\n    test 2763 line 307 azi2: 164.603876406614\n    test 2764 line 308 lat: -28.475186\n    test 2765 line 308 lon: 125.031589\n    test 2766 line 308 fb: 71.946314\n    test 2767 line 308 lat2: -28.475185707347\n    test 2768 line 308 lon2: 125.031589334958\n    test 2769 line 308 azi2: 71.946313988393\n    test 2770 line 308 lat2: -28.475185707347\n    test 2771 line 308 lon2: 125.031589334958\n    test 2772 line 308 azi2: 71.946313988393\n    test 2773 line 309 lat: 33.123700\n    test 2774 line 309 lon: 47.796870\n    test 2775 line 309 fb: 66.233041\n    test 2776 line 309 lat2: 33.123699771125\n    test 2777 line 309 lon2: 47.796870281285\n    test 2778 line 309 azi2: 66.233040505915\n    test 2779 line 309 lat2: 33.123699771125\n    test 2780 line 309 lon2: 47.796870281285\n    test 2781 line 309 azi2: 66.233040505915\n    test 2782 line 310 lat: 36.967606\n    test 2783 line 310 lon: 91.462107\n    test 2784 line 310 fb: 113.555931\n    test 2785 line 310 lat2: 36.967605507925\n    test 2786 line 310 lon2: 91.462107367844\n    test 2787 line 310 azi2: 113.555931272414\n    test 2788 line 310 lat2: 36.967605507925\n    test 2789 line 310 lon2: 91.462107367844\n    test 2790 line 310 azi2: 113.555931272414\n    test 2791 line 311 lat: -3.784112\n    test 2792 line 311 lon: 75.465096\n    test 2793 line 311 fb: 146.940895\n    test 2794 line 311 lat2: -3.784112064078\n    test 2795 line 311 lon2: 75.465096433718\n    test 2796 line 311 azi2: 146.940895363525\n    test 2797 line 311 lat2: -3.784112064078\n    test 2798 line 311 lon2: 75.465096433718\n    test 2799 line 311 azi2: 146.940895363525\n    test 2800 line 312 lat: 10.772454\n    test 2801 line 312 lon: 162.137695\n    test 2802 line 312 fb: 176.774643\n    test 2803 line 312 lat2: 10.772454234710\n    test 2804 line 312 lon2: 162.137694811372\n    test 2805 line 312 azi2: 176.774642770857\n    test 2806 line 312 lat2: 10.772454234711  FAILED, KNOWN, expected 10.772454234710\n    test 2807 line 312 lon2: 162.137694811372\n    test 2808 line 312 azi2: 176.774642770857\n    test 2809 line 313 lat: 23.928740\n    test 2810 line 313 lon: 28.953169\n    test 2811 line 313 fb: 143.614710\n    test 2812 line 313 lat2: 23.928739648982\n    test 2813 line 313 lon2: 28.953169497861\n    test 2814 line 313 azi2: 143.614709768381\n    test 2815 line 313 lat2: 23.928739648982\n    test 2816 line 313 lon2: 28.953169497861\n    test 2817 line 313 azi2: 143.614709768381\n    test 2818 line 314 lat: 5.199377\n    test 2819 line 314 lon: 162.802668\n    test 2820 line 314 fb: 146.857520\n    test 2821 line 314 lat2: 5.199376594428\n    test 2822 line 314 lon2: 162.802668362269\n    test 2823 line 314 azi2: 146.857519761344\n    test 2824 line 314 lat2: 5.199376594428\n    test 2825 line 314 lon2: 162.802668362269\n    test 2826 line 314 azi2: 146.857519761344\n    test 2827 line 315 lat: 6.285334\n    test 2828 line 315 lon: 164.204548\n    test 2829 line 315 fb: 159.451359\n    test 2830 line 315 lat2: 6.285334322282\n    test 2831 line 315 lon2: 164.204548022855\n    test 2832 line 315 azi2: 159.451359223111\n    test 2833 line 315 lat2: 6.285334322282\n    test 2834 line 315 lon2: 164.204548022855\n    test 2835 line 315 azi2: 159.451359223111\n    test 2836 line 316 lat: -8.151874\n    test 2837 line 316 lon: 43.923539\n    test 2838 line 316 fb: 121.501273\n    test 2839 line 316 lat2: -8.151873580306\n    test 2840 line 316 lon2: 43.923539410568\n    test 2841 line 316 azi2: 121.501272690158\n    test 2842 line 316 lat2: -8.151873580306\n    test 2843 line 316 lon2: 43.923539410568\n    test 2844 line 316 azi2: 121.501272690158\n    test 2845 line 317 lat: 20.145480\n    test 2846 line 317 lon: 92.310645\n    test 2847 line 317 fb: 97.369333\n    test 2848 line 317 lat2: 20.145480383316\n    test 2849 line 317 lon2: 92.310644735772\n    test 2850 line 317 azi2: 97.369333245027\n    test 2851 line 317 lat2: 20.145480383316\n    test 2852 line 317 lon2: 92.310644735772\n    test 2853 line 317 azi2: 97.369333245027\n    test 2854 line 318 lat: 38.715579\n    test 2855 line 318 lon: 89.141427\n    test 2856 line 318 fb: 100.831087\n    test 2857 line 318 lat2: 38.715578802658\n    test 2858 line 318 lon2: 89.141426830360\n    test 2859 line 318 azi2: 100.831086703170\n    test 2860 line 318 lat2: 38.715578802658\n    test 2861 line 318 lon2: 89.141426830360\n    test 2862 line 318 azi2: 100.831086703170\n    test 2863 line 319 lat: -25.760685\n    test 2864 line 319 lon: 145.864001\n    test 2865 line 319 fb: 142.714674\n    test 2866 line 319 lat2: -25.760685020607\n    test 2867 line 319 lon2: 145.864001048187\n    test 2868 line 319 azi2: 142.714673928912\n    test 2869 line 319 lat2: -25.760685020607\n    test 2870 line 319 lon2: 145.864001048187\n    test 2871 line 319 azi2: 142.714673928912\n    test 2872 line 320 lat: 49.387283\n    test 2873 line 320 lon: 28.917044\n    test 2874 line 320 fb: 61.545235\n    test 2875 line 320 lat2: 49.387283074155\n    test 2876 line 320 lon2: 28.917043656754\n    test 2877 line 320 azi2: 61.545235148403\n    test 2878 line 320 lat2: 49.387283074155\n    test 2879 line 320 lon2: 28.917043656754\n    test 2880 line 320 azi2: 61.545235148403\n    test 2881 line 321 lat: 10.120685\n    test 2882 line 321 lon: 2.869738\n    test 2883 line 321 fb: 176.526916\n    test 2884 line 321 lat2: 10.120685293027\n    test 2885 line 321 lon2: 2.869737593886\n    test 2886 line 321 azi2: 176.526915822865\n    test 2887 line 321 lat2: 10.120685293027\n    test 2888 line 321 lon2: 2.869737593886\n    test 2889 line 321 azi2: 176.526915822865\n    test 2890 line 322 lat: 2.463216\n    test 2891 line 322 lon: 102.917600\n    test 2892 line 322 fb: 170.609004\n    test 2893 line 322 lat2: 2.463216066166\n    test 2894 line 322 lon2: 102.917599852202  FAILED, KNOWN, expected 102.917599852201\n    test 2895 line 322 azi2: 170.609003610639\n    test 2896 line 322 lat2: 2.463216066166\n    test 2897 line 322 lon2: 102.917599852201\n    test 2898 line 322 azi2: 170.609003610639\n    test 2899 line 323 lat: 58.201294\n    test 2900 line 323 lon: 155.022079\n    test 2901 line 323 fb: 153.181269\n    test 2902 line 323 lat2: 58.201293688923\n    test 2903 line 323 lon2: 155.022079105501\n    test 2904 line 323 azi2: 153.181268692773\n    test 2905 line 323 lat2: 58.201293688923\n    test 2906 line 323 lon2: 155.022079105501\n    test 2907 line 323 azi2: 153.181268692773\n    test 2908 line 324 lat: 3.089608\n    test 2909 line 324 lon: 20.686800\n    test 2910 line 324 fb: 144.857820\n    test 2911 line 324 lat2: 3.089607756265\n    test 2912 line 324 lon2: 20.686800266169\n    test 2913 line 324 azi2: 144.857820265585\n    test 2914 line 324 lat2: 3.089607756265\n    test 2915 line 324 lon2: 20.686800266169\n    test 2916 line 324 azi2: 144.857820265585\n    test 2917 line 325 lat: 48.232274\n    test 2918 line 325 lon: 18.567244\n    test 2919 line 325 fb: 24.556438\n    test 2920 line 325 lat2: 48.232274219515\n    test 2921 line 325 lon2: 18.567244222293\n    test 2922 line 325 azi2: 24.556437713520\n    test 2923 line 325 lat2: 48.232274219515\n    test 2924 line 325 lon2: 18.567244222293\n    test 2925 line 325 azi2: 24.556437713520\n    test 2926 line 326 lat: 30.265261\n    test 2927 line 326 lon: 7.440738\n    test 2928 line 326 fb: 142.022972\n    test 2929 line 326 lat2: 30.265261486767\n    test 2930 line 326 lon2: 7.440737656545\n    test 2931 line 326 azi2: 142.022971576270\n    test 2932 line 326 lat2: 30.265261486767\n    test 2933 line 326 lon2: 7.440737656545\n    test 2934 line 326 azi2: 142.022971576270\n    test 2935 line 327 lat: -11.166197\n    test 2936 line 327 lon: 176.728934\n    test 2937 line 327 fb: 24.287273\n    test 2938 line 327 lat2: -11.166197413148\n    test 2939 line 327 lon2: 176.728933575636\n    test 2940 line 327 azi2: 24.287272842989\n    test 2941 line 327 lat2: -11.166197413148\n    test 2942 line 327 lon2: 176.728933575636\n    test 2943 line 327 azi2: 24.287272842989\n    test 2944 line 328 lat: 84.645539\n    test 2945 line 328 lon: 90.023922\n    test 2946 line 328 fb: 92.786262\n    test 2947 line 328 lat2: 84.645539196082\n    test 2948 line 328 lon2: 90.023922499395\n    test 2949 line 328 azi2: 92.786261566827\n    test 2950 line 328 lat2: 84.645539196082\n    test 2951 line 328 lon2: 90.023922499396  FAILED, KNOWN, expected 90.023922499395\n    test 2952 line 328 azi2: 92.786261566828  FAILED, KNOWN, expected 92.786261566827\n    test 2953 line 329 lat: 61.618717\n    test 2954 line 329 lon: 162.510959\n    test 2955 line 329 fb: 160.923940\n    test 2956 line 329 lat2: 61.618716728051\n    test 2957 line 329 lon2: 162.510958917359\n    test 2958 line 329 azi2: 160.923939760553\n    test 2959 line 329 lat2: 61.618716728051\n    test 2960 line 329 lon2: 162.510958917359\n    test 2961 line 329 azi2: 160.923939760553\n    test 2962 line 330 lat: 27.643242\n    test 2963 line 330 lon: 45.376215\n    test 2964 line 330 fb: 147.964522\n    test 2965 line 330 lat2: 27.643242341173\n    test 2966 line 330 lon2: 45.376215094118\n    test 2967 line 330 azi2: 147.964522484664\n    test 2968 line 330 lat2: 27.643242341173\n    test 2969 line 330 lon2: 45.376215094118\n    test 2970 line 330 azi2: 147.964522484664\n    test 2971 line 331 lat: 2.218750\n    test 2972 line 331 lon: 170.358342\n    test 2973 line 331 fb: 141.658474\n    test 2974 line 331 lat2: 2.218749985364\n    test 2975 line 331 lon2: 170.358342078292\n    test 2976 line 331 azi2: 141.658474129787\n    test 2977 line 331 lat2: 2.218749985364\n    test 2978 line 331 lon2: 170.358342078292\n    test 2979 line 331 azi2: 141.658474129787\n    test 2980 line 332 lat: 26.019142\n    test 2981 line 332 lon: 32.534760\n    test 2982 line 332 fb: 128.159784\n    test 2983 line 332 lat2: 26.019142329663\n    test 2984 line 332 lon2: 32.534760195963\n    test 2985 line 332 azi2: 128.159784291645\n    test 2986 line 332 lat2: 26.019142329663\n    test 2987 line 332 lon2: 32.534760195963\n    test 2988 line 332 azi2: 128.159784291645\n    test 2989 line 333 lat: 10.049636\n    test 2990 line 333 lon: 72.205347\n    test 2991 line 333 fb: 143.602160\n    test 2992 line 333 lat2: 10.049636247749\n    test 2993 line 333 lon2: 72.205346955818\n    test 2994 line 333 azi2: 143.602159725306\n    test 2995 line 333 lat2: 10.049636247749\n    test 2996 line 333 lon2: 72.205346955818\n    test 2997 line 333 azi2: 143.602159725306\n    test 2998 line 334 lat: -31.030497\n    test 2999 line 334 lon: 91.539195\n    test 3000 line 334 fb: 109.891398\n    test 3001 line 334 lat2: -31.030496743715\n    test 3002 line 334 lon2: 91.539195292896\n    test 3003 line 334 azi2: 109.891398221790\n    test 3004 line 334 lat2: -31.030496743715\n    test 3005 line 334 lon2: 91.539195292896\n    test 3006 line 334 azi2: 109.891398221790\n    test 3007 line 335 lat: 30.113796\n    test 3008 line 335 lon: 109.096982\n    test 3009 line 335 fb: 146.779343\n    test 3010 line 335 lat2: 30.113795853671\n    test 3011 line 335 lon2: 109.096981631502\n    test 3012 line 335 azi2: 146.779343066541\n    test 3013 line 335 lat2: 30.113795853671\n    test 3014 line 335 lon2: 109.096981631502\n    test 3015 line 335 azi2: 146.779343066541\n    test 3016 line 336 lat: -73.967996\n    test 3017 line 336 lon: 65.944243\n    test 3018 line 336 fb: 120.592999\n    test 3019 line 336 lat2: -73.967996185770\n    test 3020 line 336 lon2: 65.944242524678\n    test 3021 line 336 azi2: 120.592998665529\n    test 3022 line 336 lat2: -73.967996185770\n    test 3023 line 336 lon2: 65.944242524678\n    test 3024 line 336 azi2: 120.592998665529\n    test 3025 line 337 lat: 52.211150\n    test 3026 line 337 lon: 168.054185\n    test 3027 line 337 fb: 172.425992\n    test 3028 line 337 lat2: 52.211149755494\n    test 3029 line 337 lon2: 168.054184827868\n    test 3030 line 337 azi2: 172.425991612467\n    test 3031 line 337 lat2: 52.211149755494\n    test 3032 line 337 lon2: 168.054184827868\n    test 3033 line 337 azi2: 172.425991612467\n    test 3034 line 338 lat: -64.497146\n    test 3035 line 338 lon: 72.073419\n    test 3036 line 338 fb: 114.249129\n    test 3037 line 338 lat2: -64.497146189688\n    test 3038 line 338 lon2: 72.073418936581\n    test 3039 line 338 azi2: 114.249128850219\n    test 3040 line 338 lat2: -64.497146189688\n    test 3041 line 338 lon2: 72.073418936581\n    test 3042 line 338 azi2: 114.249128850219\n    test 3043 line 339 lat: -25.711399\n    test 3044 line 339 lon: 6.036423\n    test 3045 line 339 fb: 169.464098\n    test 3046 line 339 lat2: -25.711398997503\n    test 3047 line 339 lon2: 6.036423474639\n    test 3048 line 339 azi2: 169.464098294263\n    test 3049 line 339 lat2: -25.711398997503\n    test 3050 line 339 lon2: 6.036423474639\n    test 3051 line 339 azi2: 169.464098294263\n    test 3052 line 340 lat: 33.904613\n    test 3053 line 340 lon: 30.989094\n    test 3054 line 340 fb: 124.896016\n    test 3055 line 340 lat2: 33.904613360449\n    test 3056 line 340 lon2: 30.989094387217\n    test 3057 line 340 azi2: 124.896016003640\n    test 3058 line 340 lat2: 33.904613360449\n    test 3059 line 340 lon2: 30.989094387217\n    test 3060 line 340 azi2: 124.896016003640\n    test 3061 line 341 lat: -25.053080\n    test 3062 line 341 lon: 137.078639\n    test 3063 line 341 fb: 115.960750\n    test 3064 line 341 lat2: -25.053079543516\n    test 3065 line 341 lon2: 137.078638665495\n    test 3066 line 341 azi2: 115.960750169086\n    test 3067 line 341 lat2: -25.053079543516\n    test 3068 line 341 lon2: 137.078638665495\n    test 3069 line 341 azi2: 115.960750169086\n    test 3070 line 342 lat: 10.298031\n    test 3071 line 342 lon: 27.737374\n    test 3072 line 342 fb: 142.265457\n    test 3073 line 342 lat2: 10.298031202629\n    test 3074 line 342 lon2: 27.737373649973\n    test 3075 line 342 azi2: 142.265457288483\n    test 3076 line 342 lat2: 10.298031202629\n    test 3077 line 342 lon2: 27.737373649973\n    test 3078 line 342 azi2: 142.265457288483\n    test 3079 line 343 lat: -0.738692\n    test 3080 line 343 lon: 150.933627\n    test 3081 line 343 fb: 174.004688\n    test 3082 line 343 lat2: -0.738692377457\n    test 3083 line 343 lon2: 150.933627031610\n    test 3084 line 343 azi2: 174.004687728765\n    test 3085 line 343 lat2: -0.738692377457\n    test 3086 line 343 lon2: 150.933627031610\n    test 3087 line 343 azi2: 174.004687728765\n    test 3088 line 344 lat: 50.619289\n    test 3089 line 344 lon: 67.178203\n    test 3090 line 344 fb: 105.177353\n    test 3091 line 344 lat2: 50.619289349009\n    test 3092 line 344 lon2: 67.178203328135\n    test 3093 line 344 azi2: 105.177353051107\n    test 3094 line 344 lat2: 50.619289349009\n    test 3095 line 344 lon2: 67.178203328135\n    test 3096 line 344 azi2: 105.177353051107\n    test 3097 line 345 lat: -2.127739\n    test 3098 line 345 lon: 38.604245\n    test 3099 line 345 fb: 118.657849\n    test 3100 line 345 lat2: -2.127739360728\n    test 3101 line 345 lon2: 38.604245449983\n    test 3102 line 345 azi2: 118.657849063154\n    test 3103 line 345 lat2: -2.127739360728\n    test 3104 line 345 lon2: 38.604245449983\n    test 3105 line 345 azi2: 118.657849063154\n    test 3106 line 346 lat: 37.188367\n    test 3107 line 346 lon: 90.865255\n    test 3108 line 346 fb: 104.826548\n    test 3109 line 346 lat2: 37.188366752551\n    test 3110 line 346 lon2: 90.865255121714\n    test 3111 line 346 azi2: 104.826548310924\n    test 3112 line 346 lat2: 37.188366752551\n    test 3113 line 346 lon2: 90.865255121714\n    test 3114 line 346 azi2: 104.826548310924\n    test 3115 line 347 lat: 46.019257\n    test 3116 line 347 lon: 20.402591\n    test 3117 line 347 fb: 31.068588\n    test 3118 line 347 lat2: 46.019256998097\n    test 3119 line 347 lon2: 20.402590686048\n    test 3120 line 347 azi2: 31.068587858373\n    test 3121 line 347 lat2: 46.019256998097\n    test 3122 line 347 lon2: 20.402590686048\n    test 3123 line 347 azi2: 31.068587858373\n    test 3124 line 348 lat: 9.023356\n    test 3125 line 348 lon: 106.678645\n    test 3126 line 348 fb: 141.375490\n    test 3127 line 348 lat2: 9.023355647006\n    test 3128 line 348 lon2: 106.678645473545\n    test 3129 line 348 azi2: 141.375490245645\n    test 3130 line 348 lat2: 9.023355647006\n    test 3131 line 348 lon2: 106.678645473545\n    test 3132 line 348 azi2: 141.375490245645\n    test 3133 line 349 lat: -1.321473\n    test 3134 line 349 lon: 67.418879\n    test 3135 line 349 fb: 105.590913\n    test 3136 line 349 lat2: -1.321473235187\n    test 3137 line 349 lon2: 67.418878731595\n    test 3138 line 349 azi2: 105.590912857546\n    test 3139 line 349 lat2: -1.321473235187\n    test 3140 line 349 lon2: 67.418878731595\n    test 3141 line 349 azi2: 105.590912857546\n    test 3142 line 350 lat: 7.459339\n    test 3143 line 350 lon: 30.150648\n    test 3144 line 350 fb: 109.667752\n    test 3145 line 350 lat2: 7.459338626177\n    test 3146 line 350 lon2: 30.150648477470\n    test 3147 line 350 azi2: 109.667751753912\n    test 3148 line 350 lat2: 7.459338626177\n    test 3149 line 350 lon2: 30.150648477470\n    test 3150 line 350 azi2: 109.667751753912\n    test 3151 line 351 lat: 16.344755\n    test 3152 line 351 lon: 146.829160\n    test 3153 line 351 fb: 128.666192\n    test 3154 line 351 lat2: 16.344755038185\n    test 3155 line 351 lon2: 146.829159972334\n    test 3156 line 351 azi2: 128.666191953616\n    test 3157 line 351 lat2: 16.344755038185\n    test 3158 line 351 lon2: 146.829159972334\n    test 3159 line 351 azi2: 128.666191953616\n    test 3160 line 352 lat: -55.785670\n    test 3161 line 352 lon: 158.086173\n    test 3162 line 352 fb: 33.903277\n    test 3163 line 352 lat2: -55.785670347270\n    test 3164 line 352 lon2: 158.086173376809\n    test 3165 line 352 azi2: 33.903276835071\n    test 3166 line 352 lat2: -55.785670347270\n    test 3167 line 352 lon2: 158.086173376809\n    test 3168 line 352 azi2: 33.903276835071\n    test 3169 line 353 lat: -74.409604\n    test 3170 line 353 lon: 111.280935\n    test 3171 line 353 fb: 78.510830\n    test 3172 line 353 lat2: -74.409603561050\n    test 3173 line 353 lon2: 111.280934985965\n    test 3174 line 353 azi2: 78.510830028461\n    test 3175 line 353 lat2: -74.409603561050\n    test 3176 line 353 lon2: 111.280934985965\n    test 3177 line 353 azi2: 78.510830028461\n    test 3178 line 354 lat: 9.922204\n    test 3179 line 354 lon: 138.538334\n    test 3180 line 354 fb: 125.268473\n    test 3181 line 354 lat2: 9.922203731557\n    test 3182 line 354 lon2: 138.538333703571\n    test 3183 line 354 azi2: 125.268473410634\n    test 3184 line 354 lat2: 9.922203731557\n    test 3185 line 354 lon2: 138.538333703571\n    test 3186 line 354 azi2: 125.268473410634\n    test 3187 line 355 lat: -27.082389\n    test 3188 line 355 lon: 91.425844\n    test 3189 line 355 fb: 153.267616\n    test 3190 line 355 lat2: -27.082389068807\n    test 3191 line 355 lon2: 91.425843733185\n    test 3192 line 355 azi2: 153.267616113653\n    test 3193 line 355 lat2: -27.082389068808  FAILED, KNOWN, expected -27.082389068807\n    test 3194 line 355 lon2: 91.425843733185\n    test 3195 line 355 azi2: 153.267616113653\n    test 3196 line 356 lat: 14.627508\n    test 3197 line 356 lon: 74.629605\n    test 3198 line 356 fb: 159.825211\n    test 3199 line 356 lat2: 14.627507744773\n    test 3200 line 356 lon2: 74.629604673488\n    test 3201 line 356 azi2: 159.825210987464\n    test 3202 line 356 lat2: 14.627507744773\n    test 3203 line 356 lon2: 74.629604673488\n    test 3204 line 356 azi2: 159.825210987464\n    test 3205 line 357 lat: 46.941087\n    test 3206 line 357 lon: 18.833436\n    test 3207 line 357 fb: 63.924917\n    test 3208 line 357 lat2: 46.941086934169\n    test 3209 line 357 lon2: 18.833435620675\n    test 3210 line 357 azi2: 63.924916745148\n    test 3211 line 357 lat2: 46.941086934169\n    test 3212 line 357 lon2: 18.833435620675\n    test 3213 line 357 azi2: 63.924916745148\n    test 3214 line 358 lat: 42.371666\n    test 3215 line 358 lon: 126.270074\n    test 3216 line 358 fb: 117.352107\n    test 3217 line 358 lat2: 42.371665615782\n    test 3218 line 358 lon2: 126.270074354353\n    test 3219 line 358 azi2: 117.352106840236\n    test 3220 line 358 lat2: 42.371665615782\n    test 3221 line 358 lon2: 126.270074354353\n    test 3222 line 358 azi2: 117.352106840236\n    test 3223 line 359 lat: 60.888684\n    test 3224 line 359 lon: 106.363657\n    test 3225 line 359 fb: 108.973271\n    test 3226 line 359 lat2: 60.888683732870\n    test 3227 line 359 lon2: 106.363656697522\n    test 3228 line 359 azi2: 108.973271101790\n    test 3229 line 359 lat2: 60.888683732870\n    test 3230 line 359 lon2: 106.363656697522\n    test 3231 line 359 azi2: 108.973271101790\n    test 3232 line 360 lat: 53.972090\n    test 3233 line 360 lon: 136.000658\n    test 3234 line 360 fb: 138.361589\n    test 3235 line 360 lat2: 53.972089572795\n    test 3236 line 360 lon2: 136.000657911062\n    test 3237 line 360 azi2: 138.361588598638\n    test 3238 line 360 lat2: 53.972089572795\n    test 3239 line 360 lon2: 136.000657911062\n    test 3240 line 360 azi2: 138.361588598638\n    test 3241 line 361 lat: 47.850867\n    test 3242 line 361 lon: 25.277934\n    test 3243 line 361 fb: 71.284668\n    test 3244 line 361 lat2: 47.850866585267\n    test 3245 line 361 lon2: 25.277933660114\n    test 3246 line 361 azi2: 71.284667717290\n    test 3247 line 361 lat2: 47.850866585267\n    test 3248 line 361 lon2: 25.277933660114\n    test 3249 line 361 azi2: 71.284667717290\n    test 3250 line 362 lat: 64.280614\n    test 3251 line 362 lon: 16.447697\n    test 3252 line 362 fb: 35.692750\n    test 3253 line 362 lat2: 64.280614171157\n    test 3254 line 362 lon2: 16.447696559380\n    test 3255 line 362 azi2: 35.692750218622\n    test 3256 line 362 lat2: 64.280614171157\n    test 3257 line 362 lon2: 16.447696559380\n    test 3258 line 362 azi2: 35.692750218622\n    test 3259 line 363 lat: -3.339044\n    test 3260 line 363 lon: 91.646260\n    test 3261 line 363 fb: 95.928001\n    test 3262 line 363 lat2: -3.339044133285\n    test 3263 line 363 lon2: 91.646260438368\n    test 3264 line 363 azi2: 95.928000721064\n    test 3265 line 363 lat2: -3.339044133285\n    test 3266 line 363 lon2: 91.646260438368\n    test 3267 line 363 azi2: 95.928000721064\n    test 3268 line 364 lat: -46.029875\n    test 3269 line 364 lon: 30.599197\n    test 3270 line 364 fb: 146.810525\n    test 3271 line 364 lat2: -46.029874698950\n    test 3272 line 364 lon2: 30.599196661458\n    test 3273 line 364 azi2: 146.810525207719\n    test 3274 line 364 lat2: -46.029874698950\n    test 3275 line 364 lon2: 30.599196661458\n    test 3276 line 364 azi2: 146.810525207719\n    test 3277 line 365 lat: 25.605076\n    test 3278 line 365 lon: 14.382003\n    test 3279 line 365 fb: 116.566847\n    test 3280 line 365 lat2: 25.605076391429\n    test 3281 line 365 lon2: 14.382002787798\n    test 3282 line 365 azi2: 116.566847403824\n    test 3283 line 365 lat2: 25.605076391429\n    test 3284 line 365 lon2: 14.382002787798\n    test 3285 line 365 azi2: 116.566847403824\n    test 3286 line 366 lat: -15.052413\n    test 3287 line 366 lon: 150.673460\n    test 3288 line 366 fb: 64.906721\n    test 3289 line 366 lat2: -15.052412502534\n    test 3290 line 366 lon2: 150.673460237577\n    test 3291 line 366 azi2: 64.906720897603\n    test 3292 line 366 lat2: -15.052412502534\n    test 3293 line 366 lon2: 150.673460237577\n    test 3294 line 366 azi2: 64.906720897603\n    test 3295 line 367 lat: -24.631882\n    test 3296 line 367 lon: 170.403348\n    test 3297 line 367 fb: 38.497784\n    test 3298 line 367 lat2: -24.631881773331\n    test 3299 line 367 lon2: 170.403348095216\n    test 3300 line 367 azi2: 38.497783925432\n    test 3301 line 367 lat2: -24.631881773331\n    test 3302 line 367 lon2: 170.403348095216\n    test 3303 line 367 azi2: 38.497783925432\n    test 3304 line 368 lat: 84.347730\n    test 3305 line 368 lon: 37.352130\n    test 3306 line 368 fb: 38.599794\n    test 3307 line 368 lat2: 84.347730272741\n    test 3308 line 368 lon2: 37.352130023033\n    test 3309 line 368 azi2: 38.599794179850\n    test 3310 line 368 lat2: 84.347730272741\n    test 3311 line 368 lon2: 37.352130023033\n    test 3312 line 368 azi2: 38.599794179850\n    test 3313 line 369 lat: 11.680773\n    test 3314 line 369 lon: 170.552617\n    test 3315 line 369 fb: 174.460436\n    test 3316 line 369 lat2: 11.680772997529\n    test 3317 line 369 lon2: 170.552617119135\n    test 3318 line 369 azi2: 174.460435573783\n    test 3319 line 369 lat2: 11.680772997529\n    test 3320 line 369 lon2: 170.552617119135\n    test 3321 line 369 azi2: 174.460435573783\n    test 3322 line 370 lat: -4.129058\n    test 3323 line 370 lon: 136.743627\n    test 3324 line 370 fb: 142.147604\n    test 3325 line 370 lat2: -4.129057873299\n    test 3326 line 370 lon2: 136.743626644380\n    test 3327 line 370 azi2: 142.147603954035\n    test 3328 line 370 lat2: -4.129057873299\n    test 3329 line 370 lon2: 136.743626644380\n    test 3330 line 370 azi2: 142.147603954035\n    test 3331 line 371 lat: 22.191782\n    test 3332 line 371 lon: 164.962392\n    test 3333 line 371 fb: 163.266967\n    test 3334 line 371 lat2: 22.191782097783\n    test 3335 line 371 lon2: 164.962391587580\n    test 3336 line 371 azi2: 163.266967353376\n    test 3337 line 371 lat2: 22.191782097783\n    test 3338 line 371 lon2: 164.962391587580\n    test 3339 line 371 azi2: 163.266967353376\n    test 3340 line 372 lat: -20.517212\n    test 3341 line 372 lon: 128.116444\n    test 3342 line 372 fb: 110.769757\n    test 3343 line 372 lat2: -20.517212185628\n    test 3344 line 372 lon2: 128.116443546305\n    test 3345 line 372 azi2: 110.769757212730\n    test 3346 line 372 lat2: -20.517212185628\n    test 3347 line 372 lon2: 128.116443546305\n    test 3348 line 372 azi2: 110.769757212730\n    test 3349 line 373 lat: -71.269219\n    test 3350 line 373 lon: 117.744329\n    test 3351 line 373 fb: 81.341006\n    test 3352 line 373 lat2: -71.269218648518\n    test 3353 line 373 lon2: 117.744328537214\n    test 3354 line 373 azi2: 81.341005509003\n    test 3355 line 373 lat2: -71.269218648518\n    test 3356 line 373 lon2: 117.744328537214\n    test 3357 line 373 azi2: 81.341005509003\n    test 3358 line 374 lat: -28.381893\n    test 3359 line 374 lon: 4.526029\n    test 3360 line 374 fb: 176.348678\n    test 3361 line 374 lat2: -28.381892766057\n    test 3362 line 374 lon2: 4.526028955177\n    test 3363 line 374 azi2: 176.348678015377\n    test 3364 line 374 lat2: -28.381892766057\n    test 3365 line 374 lon2: 4.526028955177\n    test 3366 line 374 azi2: 176.348678015377\n    test 3367 line 375 lat: -28.786090\n    test 3368 line 375 lon: 25.937634\n    test 3369 line 375 fb: 147.973102\n    test 3370 line 375 lat2: -28.786089606638\n    test 3371 line 375 lon2: 25.937634058027\n    test 3372 line 375 azi2: 147.973102126478\n    test 3373 line 375 lat2: -28.786089606638\n    test 3374 line 375 lon2: 25.937634058027\n    test 3375 line 375 azi2: 147.973102126478\n    test 3376 line 376 lat: -37.872672\n    test 3377 line 376 lon: 116.904193\n    test 3378 line 376 fb: 88.568636\n    test 3379 line 376 lat2: -37.872671755645\n    test 3380 line 376 lon2: 116.904192578457\n    test 3381 line 376 azi2: 88.568636418662\n    test 3382 line 376 lat2: -37.872671755645\n    test 3383 line 376 lon2: 116.904192578457\n    test 3384 line 376 azi2: 88.568636418662\n    test 3385 line 377 lat: -26.321447\n    test 3386 line 377 lon: 85.206987\n    test 3387 line 377 fb: 112.408109\n    test 3388 line 377 lat2: -26.321446841940\n    test 3389 line 377 lon2: 85.206986852002  FAILED, KNOWN, expected 85.206986852001\n    test 3390 line 377 azi2: 112.408108683681\n    test 3391 line 377 lat2: -26.321446841940\n    test 3392 line 377 lon2: 85.206986852001\n    test 3393 line 377 azi2: 112.408108683681\n    test 3394 line 378 lat: -54.824260\n    test 3395 line 378 lon: 156.561574\n    test 3396 line 378 fb: 45.534810\n    test 3397 line 378 lat2: -54.824260467184\n    test 3398 line 378 lon2: 156.561573965853\n    test 3399 line 378 azi2: 45.534810497878\n    test 3400 line 378 lat2: -54.824260467184\n    test 3401 line 378 lon2: 156.561573965853\n    test 3402 line 378 azi2: 45.534810497878\n    test 3403 line 379 lat: -16.423550\n    test 3404 line 379 lon: 36.685134\n    test 3405 line 379 fb: 149.426790\n    test 3406 line 379 lat2: -16.423550298805\n    test 3407 line 379 lon2: 36.685133578511\n    test 3408 line 379 azi2: 149.426789575292\n    test 3409 line 379 lat2: -16.423550298805\n    test 3410 line 379 lon2: 36.685133578511\n    test 3411 line 379 azi2: 149.426789575292\n    test 3412 line 380 lat: -16.806591\n    test 3413 line 380 lon: 149.738610\n    test 3414 line 380 fb: 108.898472\n    test 3415 line 380 lat2: -16.806590952462\n    test 3416 line 380 lon2: 149.738610286185\n    test 3417 line 380 azi2: 108.898472198507\n    test 3418 line 380 lat2: -16.806590952462\n    test 3419 line 380 lon2: 149.738610286185\n    test 3420 line 380 azi2: 108.898472198507\n    test 3421 line 381 lat: 61.200095\n    test 3422 line 381 lon: 179.666196\n    test 3423 line 381 fb: 179.746894\n    test 3424 line 381 lat2: 61.200095175201\n    test 3425 line 381 lon2: 179.666196014679\n    test 3426 line 381 azi2: 179.746893753530\n    test 3427 line 381 lat2: 61.200095175201\n    test 3428 line 381 lon2: 179.666196014679\n    test 3429 line 381 azi2: 179.746893753530\n    test 3430 line 382 lat: 66.474418\n    test 3431 line 382 lon: 1.552183\n    test 3432 line 382 fb: 2.088868\n    test 3433 line 382 lat2: 66.474418401288\n    test 3434 line 382 lon2: 1.552183188407\n    test 3435 line 382 azi2: 2.088868324926\n    test 3436 line 382 lat2: 66.474418401288\n    test 3437 line 382 lon2: 1.552183188407\n    test 3438 line 382 azi2: 2.088868324926\n    test 3439 line 383 lat: -75.177220\n    test 3440 line 383 lon: 158.741597\n    test 3441 line 383 fb: 24.127094\n    test 3442 line 383 lat2: -75.177219719926\n    test 3443 line 383 lon2: 158.741596988185\n    test 3444 line 383 azi2: 24.127093846134\n    test 3445 line 383 lat2: -75.177219719926\n    test 3446 line 383 lon2: 158.741596988185\n    test 3447 line 383 azi2: 24.127093846134\n    test 3448 line 384 lat: 43.592977\n    test 3449 line 384 lon: 90.684526\n    test 3450 line 384 fb: 91.539242\n    test 3451 line 384 lat2: 43.592976578444\n    test 3452 line 384 lon2: 90.684525887486\n    test 3453 line 384 azi2: 91.539242394540\n    test 3454 line 384 lat2: 43.592976578444\n    test 3455 line 384 lon2: 90.684525887486\n    test 3456 line 384 azi2: 91.539242394541  FAILED, KNOWN, expected 91.539242394540\n    test 3457 line 385 lat: -5.075415\n    test 3458 line 385 lon: 101.127103\n    test 3459 line 385 fb: 107.948022\n    test 3460 line 385 lat2: -5.075415464229\n    test 3461 line 385 lon2: 101.127103351067\n    test 3462 line 385 azi2: 107.948021613622\n    test 3463 line 385 lat2: -5.075415464229\n    test 3464 line 385 lon2: 101.127103351067\n    test 3465 line 385 azi2: 107.948021613622\n    test 3466 line 386 lat: 50.406166\n    test 3467 line 386 lon: 135.501939\n    test 3468 line 386 fb: 162.003144\n    test 3469 line 386 lat2: 50.406165949083\n    test 3470 line 386 lon2: 135.501938931444\n    test 3471 line 386 azi2: 162.003144394969\n    test 3472 line 386 lat2: 50.406165949083\n    test 3473 line 386 lon2: 135.501938931444\n    test 3474 line 386 azi2: 162.003144394969\n    test 3475 line 387 lat: -17.207733\n    test 3476 line 387 lon: 43.634692\n    test 3477 line 387 fb: 136.506793\n    test 3478 line 387 lat2: -17.207732564306\n    test 3479 line 387 lon2: 43.634692466982\n    test 3480 line 387 azi2: 136.506792603897\n    test 3481 line 387 lat2: -17.207732564306\n    test 3482 line 387 lon2: 43.634692466982\n    test 3483 line 387 azi2: 136.506792603897\n    test 3484 line 388 lat: -28.917723\n    test 3485 line 388 lon: 163.486470\n    test 3486 line 388 fb: 38.990274\n    test 3487 line 388 lat2: -28.917723347931\n    test 3488 line 388 lon2: 163.486470248682\n    test 3489 line 388 azi2: 38.990273918754\n    test 3490 line 388 lat2: -28.917723347931\n    test 3491 line 388 lon2: 163.486470248682\n    test 3492 line 388 azi2: 38.990273918754\n    test 3493 line 389 lat: -32.592414\n    test 3494 line 389 lon: 76.048812\n    test 3495 line 389 fb: 98.024249\n    test 3496 line 389 lat2: -32.592414472935\n    test 3497 line 389 lon2: 76.048812057267\n    test 3498 line 389 azi2: 98.024248734062\n    test 3499 line 389 lat2: -32.592414472935\n    test 3500 line 389 lon2: 76.048812057267\n    test 3501 line 389 azi2: 98.024248734062\n    test 3502 line 390 lat: 50.602735\n    test 3503 line 390 lon: 49.792893\n    test 3504 line 390 fb: 110.500761\n    test 3505 line 390 lat2: 50.602735331532\n    test 3506 line 390 lon2: 49.792893095354\n    test 3507 line 390 azi2: 110.500760610103\n    test 3508 line 390 lat2: 50.602735331532\n    test 3509 line 390 lon2: 49.792893095354\n    test 3510 line 390 azi2: 110.500760610103\n    test 3511 line 391 lat: -4.912232\n    test 3512 line 391 lon: 142.681744\n    test 3513 line 391 fb: 119.428358\n    test 3514 line 391 lat2: -4.912231564840\n    test 3515 line 391 lon2: 142.681743549937\n    test 3516 line 391 azi2: 119.428358444443\n    test 3517 line 391 lat2: -4.912231564840\n    test 3518 line 391 lon2: 142.681743549937\n    test 3519 line 391 azi2: 119.428358444443\n    test 3520 line 392 lat: -45.213515\n    test 3521 line 392 lon: 131.987859\n    test 3522 line 392 fb: 96.014100\n    test 3523 line 392 lat2: -45.213514932524\n    test 3524 line 392 lon2: 131.987859404857\n    test 3525 line 392 azi2: 96.014100177112\n    test 3526 line 392 lat2: -45.213514932524\n    test 3527 line 392 lon2: 131.987859404857\n    test 3528 line 392 azi2: 96.014100177112\n    test 3529 line 393 lat: -27.151096\n    test 3530 line 393 lon: 127.729463\n    test 3531 line 393 fb: 85.960623\n    test 3532 line 393 lat2: -27.151095883523\n    test 3533 line 393 lon2: 127.729463064736\n    test 3534 line 393 azi2: 85.960623495334\n    test 3535 line 393 lat2: -27.151095883523\n    test 3536 line 393 lon2: 127.729463064736\n    test 3537 line 393 azi2: 85.960623495334\n    test 3538 line 394 lat: 8.000358\n    test 3539 line 394 lon: 144.233747\n    test 3540 line 394 fb: 142.364017\n    test 3541 line 394 lat2: 8.000357843774\n    test 3542 line 394 lon2: 144.233746766535\n    test 3543 line 394 azi2: 142.364016793767\n    test 3544 line 394 lat2: 8.000357843774\n    test 3545 line 394 lon2: 144.233746766535\n    test 3546 line 394 azi2: 142.364016793767\n    test 3547 line 395 lat: -6.431774\n    test 3548 line 395 lon: 170.549196\n    test 3549 line 395 fb: 122.180851\n    test 3550 line 395 lat2: -6.431773707290\n    test 3551 line 395 lon2: 170.549196384306\n    test 3552 line 395 azi2: 122.180850600243\n    test 3553 line 395 lat2: -6.431773707290\n    test 3554 line 395 lon2: 170.549196384306\n    test 3555 line 395 azi2: 122.180850600243\n    test 3556 line 396 lat: 62.834146\n    test 3557 line 396 lon: 171.218298\n    test 3558 line 396 fb: 175.117433\n    test 3559 line 396 lat2: 62.834146216572\n    test 3560 line 396 lon2: 171.218297548713\n    test 3561 line 396 azi2: 175.117432600362\n    test 3562 line 396 lat2: 62.834146216572\n    test 3563 line 396 lon2: 171.218297548713\n    test 3564 line 396 azi2: 175.117432600362\n    test 3565 line 397 lat: 22.902814\n    test 3566 line 397 lon: 70.233438\n    test 3567 line 397 fb: 120.935912\n    test 3568 line 397 lat2: 22.902813652262\n    test 3569 line 397 lon2: 70.233438162142\n    test 3570 line 397 azi2: 120.935911762169\n    test 3571 line 397 lat2: 22.902813652262\n    test 3572 line 397 lon2: 70.233438162142\n    test 3573 line 397 azi2: 120.935911762169\n    test 3574 line 398 lat: 22.584853\n    test 3575 line 398 lon: 31.616865\n    test 3576 line 398 fb: 107.124038\n    test 3577 line 398 lat2: 22.584853282541\n    test 3578 line 398 lon2: 31.616864803984\n    test 3579 line 398 azi2: 107.124038156545\n    test 3580 line 398 lat2: 22.584853282541\n    test 3581 line 398 lon2: 31.616864803984\n    test 3582 line 398 azi2: 107.124038156545\n    test 3583 line 399 lat: 31.269173\n    test 3584 line 399 lon: 65.399306\n    test 3585 line 399 fb: 151.892600\n    test 3586 line 399 lat2: 31.269173344204\n    test 3587 line 399 lon2: 65.399305777763\n    test 3588 line 399 azi2: 151.892599739667\n    test 3589 line 399 lat2: 31.269173344204\n    test 3590 line 399 lon2: 65.399305777763\n    test 3591 line 399 azi2: 151.892599739667\n    test 3592 line 400 lat: 35.519614\n    test 3593 line 400 lon: 143.165122\n    test 3594 line 400 fb: 161.479891\n    test 3595 line 400 lat2: 35.519613515115\n    test 3596 line 400 lon2: 143.165121509798\n    test 3597 line 400 azi2: 161.479891246031\n    test 3598 line 400 lat2: 35.519613515115\n    test 3599 line 400 lon2: 143.165121509798\n    test 3600 line 400 azi2: 161.479891246031\n    test 3601 line 401 lat: -53.741922\n    test 3602 line 401 lon: 67.121402\n    test 3603 line 401 fb: 130.871188\n    test 3604 line 401 lat2: -53.741921506580\n    test 3605 line 401 lon2: 67.121402135047\n    test 3606 line 401 azi2: 130.871188003209\n    test 3607 line 401 lat2: -53.741921506580\n    test 3608 line 401 lon2: 67.121402135047\n    test 3609 line 401 azi2: 130.871188003209\n    test 3610 line 402 lat: 9.046227\n    test 3611 line 402 lon: 35.933737\n    test 3612 line 402 fb: 175.770789\n    test 3613 line 402 lat2: 9.046227267580\n    test 3614 line 402 lon2: 35.933736921417\n    test 3615 line 402 azi2: 175.770788535406\n    test 3616 line 402 lat2: 9.046227267580\n    test 3617 line 402 lon2: 35.933736921417\n    test 3618 line 402 azi2: 175.770788535406\n    test 3619 line 403 lat: 75.917034\n    test 3620 line 403 lon: 125.150808\n    test 3621 line 403 fb: 135.354467\n    test 3622 line 403 lat2: 75.917034235438\n    test 3623 line 403 lon2: 125.150808062636\n    test 3624 line 403 azi2: 135.354466840051\n    test 3625 line 403 lat2: 75.917034235438\n    test 3626 line 403 lon2: 125.150808062636\n    test 3627 line 403 azi2: 135.354466840051\n    test 3628 line 404 lat: -39.724826\n    test 3629 line 404 lon: 77.372087\n    test 3630 line 404 fb: 111.852577\n    test 3631 line 404 lat2: -39.724825618504  FAILED, KNOWN, expected -39.724825618503\n    test 3632 line 404 lon2: 77.372086855267\n    test 3633 line 404 azi2: 111.852577362108\n    test 3634 line 404 lat2: -39.724825618504  FAILED, KNOWN, expected -39.724825618503\n    test 3635 line 404 lon2: 77.372086855267\n    test 3636 line 404 azi2: 111.852577362108\n    test 3637 line 405 lat: 3.917212\n    test 3638 line 405 lon: 142.621752\n    test 3639 line 405 fb: 124.176952\n    test 3640 line 405 lat2: 3.917212154431\n    test 3641 line 405 lon2: 142.621751764236\n    test 3642 line 405 azi2: 124.176952499321\n    test 3643 line 405 lat2: 3.917212154431\n    test 3644 line 405 lon2: 142.621751764236\n    test 3645 line 405 azi2: 124.176952499321\n    test 3646 line 406 lat: 60.230364\n    test 3647 line 406 lon: 26.245689\n    test 3648 line 406 fb: 48.509486\n    test 3649 line 406 lat2: 60.230364486607\n    test 3650 line 406 lon2: 26.245688508507\n    test 3651 line 406 azi2: 48.509486474608\n    test 3652 line 406 lat2: 60.230364486607\n    test 3653 line 406 lon2: 26.245688508507\n    test 3654 line 406 azi2: 48.509486474608\n    test 3655 line 407 lat: 29.597322\n    test 3656 line 407 lon: 29.129808\n    test 3657 line 407 fb: 79.288539\n    test 3658 line 407 lat2: 29.597322070518\n    test 3659 line 407 lon2: 29.129807944898\n    test 3660 line 407 azi2: 79.288538667829\n    test 3661 line 407 lat2: 29.597322070518\n    test 3662 line 407 lon2: 29.129807944898\n    test 3663 line 407 azi2: 79.288538667829\n    test 3664 line 408 lat: -62.913760\n    test 3665 line 408 lon: 14.845859\n    test 3666 line 408 fb: 165.794536\n    test 3667 line 408 lat2: -62.913759669564\n    test 3668 line 408 lon2: 14.845859018930\n    test 3669 line 408 azi2: 165.794535940950\n    test 3670 line 408 lat2: -62.913759669564\n    test 3671 line 408 lon2: 14.845859018930\n    test 3672 line 408 azi2: 165.794535940950\n    test 3673 line 409 lat: 15.360446\n    test 3674 line 409 lon: 161.450680\n    test 3675 line 409 fb: 164.457024\n    test 3676 line 409 lat2: 15.360445685187\n    test 3677 line 409 lon2: 161.450680426049\n    test 3678 line 409 azi2: 164.457024354600\n    test 3679 line 409 lat2: 15.360445685187\n    test 3680 line 409 lon2: 161.450680426049\n    test 3681 line 409 azi2: 164.457024354600\n    test 3682 line 410 lat: -58.330109\n    test 3683 line 410 lon: 17.628134\n    test 3684 line 410 fb: 161.349788\n    test 3685 line 410 lat2: -58.330108507597\n    test 3686 line 410 lon2: 17.628133627705\n    test 3687 line 410 azi2: 161.349788081184\n    test 3688 line 410 lat2: -58.330108507597\n    test 3689 line 410 lon2: 17.628133627705\n    test 3690 line 410 azi2: 161.349788081184\n    test 3691 line 411 lat: -68.514277\n    test 3692 line 411 lon: 19.958792\n    test 3693 line 411 fb: 162.262811\n    test 3694 line 411 lat2: -68.514276940652\n    test 3695 line 411 lon2: 19.958792438281\n    test 3696 line 411 azi2: 162.262811488702\n    test 3697 line 411 lat2: -68.514276940652\n    test 3698 line 411 lon2: 19.958792438281\n    test 3699 line 411 azi2: 162.262811488702\n    test 3700 line 412 lat: -23.686766\n    test 3701 line 412 lon: 77.544158\n    test 3702 line 412 fb: 97.517041\n    test 3703 line 412 lat2: -23.686765736999\n    test 3704 line 412 lon2: 77.544158137101\n    test 3705 line 412 azi2: 97.517041033585\n    test 3706 line 412 lat2: -23.686765736999\n    test 3707 line 412 lon2: 77.544158137101\n    test 3708 line 412 azi2: 97.517041033585\n    test 3709 line 413 lat: -50.843575\n    test 3710 line 413 lon: 118.404202\n    test 3711 line 413 fb: 75.928950\n    test 3712 line 413 lat2: -50.843574559525\n    test 3713 line 413 lon2: 118.404202153051\n    test 3714 line 413 azi2: 75.928950296488\n    test 3715 line 413 lat2: -50.843574559525\n    test 3716 line 413 lon2: 118.404202153051\n    test 3717 line 413 azi2: 75.928950296488\n    test 3718 line 414 lat: 44.438742\n    test 3719 line 414 lon: 152.028260\n    test 3720 line 414 fb: 156.092336\n    test 3721 line 414 lat2: 44.438741945021\n    test 3722 line 414 lon2: 152.028260148130\n    test 3723 line 414 azi2: 156.092336139519\n    test 3724 line 414 lat2: 44.438741945021\n    test 3725 line 414 lon2: 152.028260148130\n    test 3726 line 414 azi2: 156.092336139519\n    test 3727 line 415 lat: 33.820395\n    test 3728 line 415 lon: 178.008342\n    test 3729 line 415 fb: 177.679586\n    test 3730 line 415 lat2: 33.820395378014\n    test 3731 line 415 lon2: 178.008341908011\n    test 3732 line 415 azi2: 177.679585823345\n    test 3733 line 415 lat2: 33.820395378014\n    test 3734 line 415 lon2: 178.008341908011\n    test 3735 line 415 azi2: 177.679585823345\n    test 3736 line 416 lat: 27.506735\n    test 3737 line 416 lon: 153.242452\n    test 3738 line 416 fb: 150.262824\n    test 3739 line 416 lat2: 27.506735286152\n    test 3740 line 416 lon2: 153.242452449881\n    test 3741 line 416 azi2: 150.262824421351\n    test 3742 line 416 lat2: 27.506735286152\n    test 3743 line 416 lon2: 153.242452449881\n    test 3744 line 416 azi2: 150.262824421351\n    test 3745 line 417 lat: -31.250437\n    test 3746 line 417 lon: 179.014499\n    test 3747 line 417 fb: 178.103046\n    test 3748 line 417 lat2: -31.250436707468\n    test 3749 line 417 lon2: 179.014498940190\n    test 3750 line 417 azi2: 178.103045898455\n    test 3751 line 417 lat2: -31.250436707468\n    test 3752 line 417 lon2: 179.014498940190\n    test 3753 line 417 azi2: 178.103045898455\n    test 3754 line 418 lat: 40.341542\n    test 3755 line 418 lon: 109.605984\n    test 3756 line 418 fb: 105.401958\n    test 3757 line 418 lat2: 40.341542234586\n    test 3758 line 418 lon2: 109.605984313079\n    test 3759 line 418 azi2: 105.401958406556\n    test 3760 line 418 lat2: 40.341542234586\n    test 3761 line 418 lon2: 109.605984313079\n    test 3762 line 418 azi2: 105.401958406556\n    test 3763 line 419 lat: 48.318632\n    test 3764 line 419 lon: 92.282799\n    test 3765 line 419 fb: 111.987482\n    test 3766 line 419 lat2: 48.318632112439\n    test 3767 line 419 lon2: 92.282799489208\n    test 3768 line 419 azi2: 111.987482299261\n    test 3769 line 419 lat2: 48.318632112439\n    test 3770 line 419 lon2: 92.282799489208\n    test 3771 line 419 azi2: 111.987482299261\n    test 3772 line 420 lat: 0.675299\n    test 3773 line 420 lon: 6.789301\n    test 3774 line 420 fb: 164.921926\n    test 3775 line 420 lat2: 0.675299289459\n    test 3776 line 420 lon2: 6.789300798072\n    test 3777 line 420 azi2: 164.921926385405\n    test 3778 line 420 lat2: 0.675299289459\n    test 3779 line 420 lon2: 6.789300798072\n    test 3780 line 420 azi2: 164.921926385405\n    test 3781 line 421 lat: 33.232812\n    test 3782 line 421 lon: 170.163205\n    test 3783 line 421 fb: 175.445424\n    test 3784 line 421 lat2: 33.232811536179\n    test 3785 line 421 lon2: 170.163205247232  FAILED, KNOWN, expected 170.163205247231\n    test 3786 line 421 azi2: 175.445424087910\n    test 3787 line 421 lat2: 33.232811536179\n    test 3788 line 421 lon2: 170.163205247232  FAILED, KNOWN, expected 170.163205247231\n    test 3789 line 421 azi2: 175.445424087910\n    test 3790 line 422 lat: 51.425532\n    test 3791 line 422 lon: 167.128188\n    test 3792 line 422 fb: 169.431307\n    test 3793 line 422 lat2: 51.425532151818\n    test 3794 line 422 lon2: 167.128188073883\n    test 3795 line 422 azi2: 169.431306547043\n    test 3796 line 422 lat2: 51.425532151818\n    test 3797 line 422 lon2: 167.128188073883\n    test 3798 line 422 azi2: 169.431306547043\n    test 3799 line 423 lat: 72.043795\n    test 3800 line 423 lon: 23.320161\n    test 3801 line 423 fb: 85.002463\n    test 3802 line 423 lat2: 72.043794732818\n    test 3803 line 423 lon2: 23.320160820556\n    test 3804 line 423 azi2: 85.002463342037\n    test 3805 line 423 lat2: 72.043794732818\n    test 3806 line 423 lon2: 23.320160820556\n    test 3807 line 423 azi2: 85.002463342037\n    test 3808 line 424 lat: 55.279253\n    test 3809 line 424 lon: 148.483684\n    test 3810 line 424 fb: 155.614243\n    test 3811 line 424 lat2: 55.279252586695\n    test 3812 line 424 lon2: 148.483684405588\n    test 3813 line 424 azi2: 155.614243012977\n    test 3814 line 424 lat2: 55.279252586695\n    test 3815 line 424 lon2: 148.483684405588\n    test 3816 line 424 azi2: 155.614243012977\n    test 3817 line 425 lat: 50.054601\n    test 3818 line 425 lon: 43.609545\n    test 3819 line 425 fb: 100.758451\n    test 3820 line 425 lat2: 50.054601019930\n    test 3821 line 425 lon2: 43.609545475731\n    test 3822 line 425 azi2: 100.758450815354\n    test 3823 line 425 lat2: 50.054601019930\n    test 3824 line 425 lon2: 43.609545475731\n    test 3825 line 425 azi2: 100.758450815354\n    test 3826 line 426 lat: 31.194436\n    test 3827 line 426 lon: 31.458476\n    test 3828 line 426 fb: 92.204244\n    test 3829 line 426 lat2: 31.194436445411\n    test 3830 line 426 lon2: 31.458476146984\n    test 3831 line 426 azi2: 92.204244235305\n    test 3832 line 426 lat2: 31.194436445411\n    test 3833 line 426 lon2: 31.458476146984\n    test 3834 line 426 azi2: 92.204244235305\n    test 3835 line 427 lat: 57.758262\n    test 3836 line 427 lon: 164.499274\n    test 3837 line 427 fb: 162.877999\n    test 3838 line 427 lat2: 57.758262113137\n    test 3839 line 427 lon2: 164.499274258053\n    test 3840 line 427 azi2: 162.877999232894\n    test 3841 line 427 lat2: 57.758262113137\n    test 3842 line 427 lon2: 164.499274258053\n    test 3843 line 427 azi2: 162.877999232894\n    test 3844 line 428 lat: 27.006898\n    test 3845 line 428 lon: 173.173812\n    test 3846 line 428 fb: 177.878074\n    test 3847 line 428 lat2: 27.006897756516\n    test 3848 line 428 lon2: 173.173811781657\n    test 3849 line 428 azi2: 177.878073603766\n    test 3850 line 428 lat2: 27.006897756516\n    test 3851 line 428 lon2: 173.173811781657\n    test 3852 line 428 azi2: 177.878073603766\n    test 3853 line 429 lat: -62.917581\n    test 3854 line 429 lon: 18.990464\n    test 3855 line 429 fb: 169.629168\n    test 3856 line 429 lat2: -62.917580953804\n    test 3857 line 429 lon2: 18.990464058493\n    test 3858 line 429 azi2: 169.629168390979\n    test 3859 line 429 lat2: -62.917580953804\n    test 3860 line 429 lon2: 18.990464058493\n    test 3861 line 429 azi2: 169.629168390979\n    test 3862 line 430 lat: -43.128167\n    test 3863 line 430 lon: 61.680974\n    test 3864 line 430 fb: 135.269008\n    test 3865 line 430 lat2: -43.128166633902\n    test 3866 line 430 lon2: 61.680974170546\n    test 3867 line 430 azi2: 135.269008366092\n    test 3868 line 430 lat2: -43.128166633902\n    test 3869 line 430 lon2: 61.680974170546\n    test 3870 line 430 azi2: 135.269008366092\n    test 3871 line 431 lat: -49.314417\n    test 3872 line 431 lon: 55.826072\n    test 3873 line 431 fb: 131.974574\n    test 3874 line 431 lat2: -49.314417365795\n    test 3875 line 431 lon2: 55.826071541563\n    test 3876 line 431 azi2: 131.974573587520\n    test 3877 line 431 lat2: -49.314417365795\n    test 3878 line 431 lon2: 55.826071541563\n    test 3879 line 431 azi2: 131.974573587520\n    test 3880 line 432 lat: -24.322411\n    test 3881 line 432 lon: 103.867391\n    test 3882 line 432 fb: 139.458674\n    test 3883 line 432 lat2: -24.322411486444\n    test 3884 line 432 lon2: 103.867391100271\n    test 3885 line 432 azi2: 139.458674175181\n    test 3886 line 432 lat2: -24.322411486444\n    test 3887 line 432 lon2: 103.867391100271\n    test 3888 line 432 azi2: 139.458674175181\n    test 3889 line 433 lat: -19.557319\n    test 3890 line 433 lon: 81.358495\n    test 3891 line 433 fb: 134.029610\n    test 3892 line 433 lat2: -19.557318635270\n    test 3893 line 433 lon2: 81.358494523202\n    test 3894 line 433 azi2: 134.029609915778\n    test 3895 line 433 lat2: -19.557318635270\n    test 3896 line 433 lon2: 81.358494523202\n    test 3897 line 433 azi2: 134.029609915778\n    test 3898 line 434 lat: 7.830115\n    test 3899 line 434 lon: 5.114172\n    test 3900 line 434 fb: 175.025641\n    test 3901 line 434 lat2: 7.830115253087\n    test 3902 line 434 lon2: 5.114172330857\n    test 3903 line 434 azi2: 175.025640902819\n    test 3904 line 434 lat2: 7.830115253087\n    test 3905 line 434 lon2: 5.114172330857\n    test 3906 line 434 azi2: 175.025640902819\n    test 3907 line 435 lat: -65.834623\n    test 3908 line 435 lon: 41.772796\n    test 3909 line 435 fb: 143.178050\n    test 3910 line 435 lat2: -65.834622858584\n    test 3911 line 435 lon2: 41.772796000787\n    test 3912 line 435 azi2: 143.178050120951\n    test 3913 line 435 lat2: -65.834622858584\n    test 3914 line 435 lon2: 41.772796000787\n    test 3915 line 435 azi2: 143.178050120951\n    test 3916 line 436 lat: -7.997604\n    test 3917 line 436 lon: 31.723397\n    test 3918 line 436 fb: 153.896388\n    test 3919 line 436 lat2: -7.997604143032\n    test 3920 line 436 lon2: 31.723396618974\n    test 3921 line 436 azi2: 153.896387549518\n    test 3922 line 436 lat2: -7.997604143032\n    test 3923 line 436 lon2: 31.723396618974\n    test 3924 line 436 azi2: 153.896387549518\n    test 3925 line 437 lat: -22.173130\n    test 3926 line 437 lon: 164.896770\n    test 3927 line 437 fb: 152.675597\n    test 3928 line 437 lat2: -22.173129586699\n    test 3929 line 437 lon2: 164.896770399383\n    test 3930 line 437 azi2: 152.675596916021\n    test 3931 line 437 lat2: -22.173129586699\n    test 3932 line 437 lon2: 164.896770399383\n    test 3933 line 437 azi2: 152.675596916021\n    test 3934 line 438 lat: 35.085786\n    test 3935 line 438 lon: 173.892271\n    test 3936 line 438 fb: 171.931231\n    test 3937 line 438 lat2: 35.085785799083\n    test 3938 line 438 lon2: 173.892270533009\n    test 3939 line 438 azi2: 171.931230872910\n    test 3940 line 438 lat2: 35.085785799083\n    test 3941 line 438 lon2: 173.892270533009\n    test 3942 line 438 azi2: 171.931230872910\n    test 3943 line 439 lat: -25.378865\n    test 3944 line 439 lon: 2.197740\n    test 3945 line 439 fb: 178.756775\n    test 3946 line 439 lat2: -25.378865450268\n    test 3947 line 439 lon2: 2.197739985587\n    test 3948 line 439 azi2: 178.756775063163\n    test 3949 line 439 lat2: -25.378865450269  FAILED, KNOWN, expected -25.378865450268\n    test 3950 line 439 lon2: 2.197739985587\n    test 3951 line 439 azi2: 178.756775063163\n    test 3952 line 440 lat: -13.782608\n    test 3953 line 440 lon: 143.084799\n    test 3954 line 440 fb: 141.818572\n    test 3955 line 440 lat2: -13.782608118540\n    test 3956 line 440 lon2: 143.084798779239\n    test 3957 line 440 azi2: 141.818572490275\n    test 3958 line 440 lat2: -13.782608118540\n    test 3959 line 440 lon2: 143.084798779239\n    test 3960 line 440 azi2: 141.818572490275\n    test 3961 line 441 lat: -16.657589\n    test 3962 line 441 lon: 100.829440\n    test 3963 line 441 fb: 94.804409\n    test 3964 line 441 lat2: -16.657588778768\n    test 3965 line 441 lon2: 100.829440071396\n    test 3966 line 441 azi2: 94.804408628371\n    test 3967 line 441 lat2: -16.657588778768\n    test 3968 line 441 lon2: 100.829440071396\n    test 3969 line 441 azi2: 94.804408628371\n    test 3970 line 442 lat: 23.629666\n    test 3971 line 442 lon: 148.675531\n    test 3972 line 442 fb: 169.091767\n    test 3973 line 442 lat2: 23.629665922502\n    test 3974 line 442 lon2: 148.675530832608\n    test 3975 line 442 azi2: 169.091766635020\n    test 3976 line 442 lat2: 23.629665922502\n    test 3977 line 442 lon2: 148.675530832608\n    test 3978 line 442 azi2: 169.091766635020\n    test 3979 line 443 lat: 4.022724\n    test 3980 line 443 lon: 161.803702\n    test 3981 line 443 fb: 141.272785\n    test 3982 line 443 lat2: 4.022724409294\n    test 3983 line 443 lon2: 161.803702045621\n    test 3984 line 443 azi2: 141.272784545678\n    test 3985 line 443 lat2: 4.022724409294\n    test 3986 line 443 lon2: 161.803702045621\n    test 3987 line 443 azi2: 141.272784545678\n    test 3988 line 444 lat: 13.280168\n    test 3989 line 444 lon: 20.120413\n    test 3990 line 444 fb: 158.170551\n    test 3991 line 444 lat2: 13.280167579164\n    test 3992 line 444 lon2: 20.120413486875\n    test 3993 line 444 azi2: 158.170551379189\n    test 3994 line 444 lat2: 13.280167579164\n    test 3995 line 444 lon2: 20.120413486875\n    test 3996 line 444 azi2: 158.170551379189\n    test 3997 line 445 lat: -47.521450\n    test 3998 line 445 lon: 150.549196\n    test 3999 line 445 fb: 44.718791\n    test 4000 line 445 lat2: -47.521449956879\n    test 4001 line 445 lon2: 150.549196046351\n    test 4002 line 445 azi2: 44.718791294775\n    test 4003 line 445 lat2: -47.521449956879\n    test 4004 line 445 lon2: 150.549196046351\n    test 4005 line 445 azi2: 44.718791294775\n    test 4006 line 446 lat: 17.790615\n    test 4007 line 446 lon: 141.461006\n    test 4008 line 446 fb: 115.746784\n    test 4009 line 446 lat2: 17.790615163216\n    test 4010 line 446 lon2: 141.461005551791\n    test 4011 line 446 azi2: 115.746784352318\n    test 4012 line 446 lat2: 17.790615163216\n    test 4013 line 446 lon2: 141.461005551791\n    test 4014 line 446 azi2: 115.746784352318\n    test 4015 line 447 lat: -26.519374\n    test 4016 line 447 lon: 98.067906\n    test 4017 line 447 fb: 113.253929\n    test 4018 line 447 lat2: -26.519374288386\n    test 4019 line 447 lon2: 98.067906321718\n    test 4020 line 447 azi2: 113.253928642653\n    test 4021 line 447 lat2: -26.519374288386\n    test 4022 line 447 lon2: 98.067906321718\n    test 4023 line 447 azi2: 113.253928642653\n    test 4024 line 448 lat: -12.401139\n    test 4025 line 448 lon: 73.327970\n    test 4026 line 448 fb: 124.879499\n    test 4027 line 448 lat2: -12.401138571717\n    test 4028 line 448 lon2: 73.327969848986\n    test 4029 line 448 azi2: 124.879499241464\n    test 4030 line 448 lat2: -12.401138571717\n    test 4031 line 448 lon2: 73.327969848986\n    test 4032 line 448 azi2: 124.879499241464\n    test 4033 line 449 lat: 61.619396\n    test 4034 line 449 lon: 99.785406\n    test 4035 line 449 fb: 107.998380\n    test 4036 line 449 lat2: 61.619396375102\n    test 4037 line 449 lon2: 99.785406498835\n    test 4038 line 449 azi2: 107.998379654880\n    test 4039 line 449 lat2: 61.619396375102\n    test 4040 line 449 lon2: 99.785406498835\n    test 4041 line 449 azi2: 107.998379654880\n    test 4042 line 450 lat: 36.997252\n    test 4043 line 450 lon: 56.015643\n    test 4044 line 450 fb: 103.921663\n    test 4045 line 450 lat2: 36.997252125041\n    test 4046 line 450 lon2: 56.015642631106\n    test 4047 line 450 azi2: 103.921662760483\n    test 4048 line 450 lat2: 36.997252125041\n    test 4049 line 450 lon2: 56.015642631106\n    test 4050 line 450 azi2: 103.921662760483\n    test 4051 line 451 lat: 37.824447\n    test 4052 line 451 lon: 83.438440\n    test 4053 line 451 fb: 89.229164\n    test 4054 line 451 lat2: 37.824446788544\n    test 4055 line 451 lon2: 83.438439603294\n    test 4056 line 451 azi2: 89.229164462127\n    test 4057 line 451 lat2: 37.824446788544\n    test 4058 line 451 lon2: 83.438439603294\n    test 4059 line 451 azi2: 89.229164462127\n    test 4060 line 452 lat: 78.387864\n    test 4061 line 452 lon: 118.814812\n    test 4062 line 452 fb: 133.706108\n    test 4063 line 452 lat2: 78.387863550790\n    test 4064 line 452 lon2: 118.814812128945\n    test 4065 line 452 azi2: 133.706108131229\n    test 4066 line 452 lat2: 78.387863550790\n    test 4067 line 452 lon2: 118.814812128944  FAILED, KNOWN, expected 118.814812128945\n    test 4068 line 452 azi2: 133.706108131229\n    test 4069 line 453 lat: -21.219381\n    test 4070 line 453 lon: 53.544400\n    test 4071 line 453 fb: 108.462517\n    test 4072 line 453 lat2: -21.219381398156\n    test 4073 line 453 lon2: 53.544399883561\n    test 4074 line 453 azi2: 108.462517491505\n    test 4075 line 453 lat2: -21.219381398156\n    test 4076 line 453 lon2: 53.544399883561\n    test 4077 line 453 azi2: 108.462517491505\n    test 4078 line 454 lat: 63.304502\n    test 4079 line 454 lon: 132.034926\n    test 4080 line 454 fb: 139.912627\n    test 4081 line 454 lat2: 63.304502042590\n    test 4082 line 454 lon2: 132.034925840674\n    test 4083 line 454 azi2: 139.912627269623\n    test 4084 line 454 lat2: 63.304502042590\n    test 4085 line 454 lon2: 132.034925840674\n    test 4086 line 454 azi2: 139.912627269623\n    test 4087 line 455 lat: 13.515663\n    test 4088 line 455 lon: 8.989766\n    test 4089 line 455 fb: 35.949535\n    test 4090 line 455 lat2: 13.515662875313\n    test 4091 line 455 lon2: 8.989765670730\n    test 4092 line 455 azi2: 35.949534634702\n    test 4093 line 455 lat2: 13.515662875313\n    test 4094 line 455 lon2: 8.989765670730\n    test 4095 line 455 azi2: 35.949534634702\n    test 4096 line 456 lat: -6.742624\n    test 4097 line 456 lon: 4.531931\n    test 4098 line 456 fb: 171.306863\n    test 4099 line 456 lat2: -6.742624347861\n    test 4100 line 456 lon2: 4.531931315168\n    test 4101 line 456 azi2: 171.306863155411\n    test 4102 line 456 lat2: -6.742624347861\n    test 4103 line 456 lon2: 4.531931315168\n    test 4104 line 456 azi2: 171.306863155411\n    test 4105 line 457 lat: -24.910509\n    test 4106 line 457 lon: 128.137682\n    test 4107 line 457 fb: 121.711631\n    test 4108 line 457 lat2: -24.910509138681\n    test 4109 line 457 lon2: 128.137681811633\n    test 4110 line 457 azi2: 121.711631340407\n    test 4111 line 457 lat2: -24.910509138681\n    test 4112 line 457 lon2: 128.137681811633\n    test 4113 line 457 azi2: 121.711631340407\n    test 4114 line 458 lat: -40.687591\n    test 4115 line 458 lon: 76.389897\n    test 4116 line 458 fb: 116.394433\n    test 4117 line 458 lat2: -40.687590598372\n    test 4118 line 458 lon2: 76.389897347637\n    test 4119 line 458 azi2: 116.394432846311\n    test 4120 line 458 lat2: -40.687590598372\n    test 4121 line 458 lon2: 76.389897347637\n    test 4122 line 458 azi2: 116.394432846311\n    test 4123 line 459 lat: 50.593808\n    test 4124 line 459 lon: 155.175630\n    test 4125 line 459 fb: 149.533910\n    test 4126 line 459 lat2: 50.593807692461\n    test 4127 line 459 lon2: 155.175629862288\n    test 4128 line 459 azi2: 149.533910451363\n    test 4129 line 459 lat2: 50.593807692461\n    test 4130 line 459 lon2: 155.175629862288\n    test 4131 line 459 azi2: 149.533910451363\n    test 4132 line 460 lat: 12.198222\n    test 4133 line 460 lon: 165.839456\n    test 4134 line 460 fb: 172.783459\n    test 4135 line 460 lat2: 12.198221826512\n    test 4136 line 460 lon2: 165.839456381799\n    test 4137 line 460 azi2: 172.783459292833\n    test 4138 line 460 lat2: 12.198221826512\n    test 4139 line 460 lon2: 165.839456381799\n    test 4140 line 460 azi2: 172.783459292833\n    test 4141 line 461 lat: 34.436568\n    test 4142 line 461 lon: 7.117338\n    test 4143 line 461 fb: 169.786492\n    test 4144 line 461 lat2: 34.436568298724\n    test 4145 line 461 lon2: 7.117337693395\n    test 4146 line 461 azi2: 169.786491850891\n    test 4147 line 461 lat2: 34.436568298724\n    test 4148 line 461 lon2: 7.117337693395\n    test 4149 line 461 azi2: 169.786491850891\n    test 4150 line 462 lat: -3.145255\n    test 4151 line 462 lon: 30.502293\n    test 4152 line 462 fb: 103.563749\n    test 4153 line 462 lat2: -3.145254788627\n    test 4154 line 462 lon2: 30.502293345016\n    test 4155 line 462 azi2: 103.563748974525\n    test 4156 line 462 lat2: -3.145254788627\n    test 4157 line 462 lon2: 30.502293345016\n    test 4158 line 462 azi2: 103.563748974525\n    test 4159 line 463 lat: 16.264722\n    test 4160 line 463 lon: 85.497207\n    test 4161 line 463 fb: 116.933863\n    test 4162 line 463 lat2: 16.264722156696\n    test 4163 line 463 lon2: 85.497207496626\n    test 4164 line 463 azi2: 116.933862512764  FAILED, KNOWN, expected 116.933862512763\n    test 4165 line 463 lat2: 16.264722156696\n    test 4166 line 463 lon2: 85.497207496627  FAILED, KNOWN, expected 85.497207496626\n    test 4167 line 463 azi2: 116.933862512764  FAILED, KNOWN, expected 116.933862512763\n    test 4168 line 464 lat: 1.433605\n    test 4169 line 464 lon: 4.165940\n    test 4170 line 464 fb: 170.272462\n    test 4171 line 464 lat2: 1.433605151882\n    test 4172 line 464 lon2: 4.165940219923\n    test 4173 line 464 azi2: 170.272462365963\n    test 4174 line 464 lat2: 1.433605151882\n    test 4175 line 464 lon2: 4.165940219923\n    test 4176 line 464 azi2: 170.272462365963\n    test 4177 line 465 lat: -43.326676\n    test 4178 line 465 lon: 153.148367\n    test 4179 line 465 fb: 42.921394\n    test 4180 line 465 lat2: -43.326676023438\n    test 4181 line 465 lon2: 153.148366512832\n    test 4182 line 465 azi2: 42.921393854868\n    test 4183 line 465 lat2: -43.326676023438\n    test 4184 line 465 lon2: 153.148366512832\n    test 4185 line 465 azi2: 42.921393854868\n    test 4186 line 466 lat: 20.405242\n    test 4187 line 466 lon: 178.247549\n    test 4188 line 466 fb: 178.801033\n    test 4189 line 466 lat2: 20.405242225208\n    test 4190 line 466 lon2: 178.247549230810\n    test 4191 line 466 azi2: 178.801032702563\n    test 4192 line 466 lat2: 20.405242225208\n    test 4193 line 466 lon2: 178.247549230810\n    test 4194 line 466 azi2: 178.801032702563\n    test 4195 line 467 lat: -22.482832\n    test 4196 line 467 lon: 140.761211\n    test 4197 line 467 fb: 82.371737\n    test 4198 line 467 lat2: -22.482831544520\n    test 4199 line 467 lon2: 140.761210729739\n    test 4200 line 467 azi2: 82.371736722715\n    test 4201 line 467 lat2: -22.482831544520\n    test 4202 line 467 lon2: 140.761210729739\n    test 4203 line 467 azi2: 82.371736722715\n    test 4204 line 468 lat: -41.151672\n    test 4205 line 468 lon: 38.419124\n    test 4206 line 468 fb: 148.221356\n    test 4207 line 468 lat2: -41.151672070525\n    test 4208 line 468 lon2: 38.419124284860\n    test 4209 line 468 azi2: 148.221356053664\n    test 4210 line 468 lat2: -41.151672070525\n    test 4211 line 468 lon2: 38.419124284860\n    test 4212 line 468 azi2: 148.221356053664\n    test 4213 line 469 lat: -63.212817\n    test 4214 line 469 lon: 15.714998\n    test 4215 line 469 fb: 166.777356\n    test 4216 line 469 lat2: -63.212816746477\n    test 4217 line 469 lon2: 15.714998156904\n    test 4218 line 469 azi2: 166.777356149473\n    test 4219 line 469 lat2: -63.212816746477\n    test 4220 line 469 lon2: 15.714998156904\n    test 4221 line 469 azi2: 166.777356149473\n    test 4222 line 470 lat: -33.892681\n    test 4223 line 470 lon: 120.971496\n    test 4224 line 470 fb: 170.404814\n    test 4225 line 470 lat2: -33.892680517408\n    test 4226 line 470 lon2: 120.971495805190\n    test 4227 line 470 azi2: 170.404813772447\n    test 4228 line 470 lat2: -33.892680517408\n    test 4229 line 470 lon2: 120.971495805190\n    test 4230 line 470 azi2: 170.404813772447\n    test 4231 line 471 lat: -17.570093\n    test 4232 line 471 lon: 137.259693\n    test 4233 line 471 fb: 175.973637\n    test 4234 line 471 lat2: -17.570092516031\n    test 4235 line 471 lon2: 137.259693182063\n    test 4236 line 471 azi2: 175.973637230107\n    test 4237 line 471 lat2: -17.570092516031\n    test 4238 line 471 lon2: 137.259693182063\n    test 4239 line 471 azi2: 175.973637230107\n    test 4240 line 472 lat: -24.221028\n    test 4241 line 472 lon: 33.960052\n    test 4242 line 472 fb: 130.753279\n    test 4243 line 472 lat2: -24.221027716301  FAILED, KNOWN, expected -24.221027716300\n    test 4244 line 472 lon2: 33.960051796001\n    test 4245 line 472 azi2: 130.753279335550\n    test 4246 line 472 lat2: -24.221027716301  FAILED, KNOWN, expected -24.221027716300\n    test 4247 line 472 lon2: 33.960051796001\n    test 4248 line 472 azi2: 130.753279335550\n    test 4249 line 473 lat: -48.849133\n    test 4250 line 473 lon: 176.601435\n    test 4251 line 473 fb: 5.037779\n    test 4252 line 473 lat2: -48.849132604777\n    test 4253 line 473 lon2: 176.601435366477\n    test 4254 line 473 azi2: 5.037779120578\n    test 4255 line 473 lat2: -48.849132604777\n    test 4256 line 473 lon2: 176.601435366477\n    test 4257 line 473 azi2: 5.037779120578\n    test 4258 line 474 lat: -50.620233\n    test 4259 line 474 lon: 22.061011\n    test 4260 line 474 fb: 159.730881\n    test 4261 line 474 lat2: -50.620232529081\n    test 4262 line 474 lon2: 22.061010504617\n    test 4263 line 474 azi2: 159.730880799186\n    test 4264 line 474 lat2: -50.620232529081\n    test 4265 line 474 lon2: 22.061010504617\n    test 4266 line 474 azi2: 159.730880799186\n    test 4267 line 475 lat: -11.354875\n    test 4268 line 475 lon: 76.258812\n    test 4269 line 475 fb: 104.014357\n    test 4270 line 475 lat2: -11.354875472483\n    test 4271 line 475 lon2: 76.258812283705\n    test 4272 line 475 azi2: 104.014356938495\n    test 4273 line 475 lat2: -11.354875472483\n    test 4274 line 475 lon2: 76.258812283705\n    test 4275 line 475 azi2: 104.014356938495\n    test 4276 line 476 lat: -19.640051\n    test 4277 line 476 lon: 105.698979\n    test 4278 line 476 fb: 156.650619\n    test 4279 line 476 lat2: -19.640050782646\n    test 4280 line 476 lon2: 105.698978700604\n    test 4281 line 476 azi2: 156.650619021389\n    test 4282 line 476 lat2: -19.640050782646\n    test 4283 line 476 lon2: 105.698978700604\n    test 4284 line 476 azi2: 156.650619021389\n    test 4285 line 477 lat: 83.855267\n    test 4286 line 477 lon: 112.674858\n    test 4287 line 477 fb: 122.383784\n    test 4288 line 477 lat2: 83.855266840098\n    test 4289 line 477 lon2: 112.674858066810\n    test 4290 line 477 azi2: 122.383784147681\n    test 4291 line 477 lat2: 83.855266840098\n    test 4292 line 477 lon2: 112.674858066811  FAILED, KNOWN, expected 112.674858066810\n    test 4293 line 477 azi2: 122.383784147681\n    test 4294 line 478 lat: 48.296558\n    test 4295 line 478 lon: 34.072463\n    test 4296 line 478 fb: 61.415867\n    test 4297 line 478 lat2: 48.296557545891\n    test 4298 line 478 lon2: 34.072462542900\n    test 4299 line 478 azi2: 61.415867309157\n    test 4300 line 478 lat2: 48.296557545891\n    test 4301 line 478 lon2: 34.072462542900\n    test 4302 line 478 azi2: 61.415867309157\n    test 4303 line 479 lat: 20.173772\n    test 4304 line 479 lon: 12.682422\n    test 4305 line 479 fb: 165.220898\n    test 4306 line 479 lat2: 20.173772376863\n    test 4307 line 479 lon2: 12.682422408956\n    test 4308 line 479 azi2: 165.220897942891\n    test 4309 line 479 lat2: 20.173772376863\n    test 4310 line 479 lon2: 12.682422408956\n    test 4311 line 479 azi2: 165.220897942891\n    test 4312 line 480 lat: 47.501521\n    test 4313 line 480 lon: 54.338775\n    test 4314 line 480 fb: 80.572388\n    test 4315 line 480 lat2: 47.501521345953\n    test 4316 line 480 lon2: 54.338775236773\n    test 4317 line 480 azi2: 80.572387690286\n    test 4318 line 480 lat2: 47.501521345953\n    test 4319 line 480 lon2: 54.338775236773\n    test 4320 line 480 azi2: 80.572387690286\n    test 4321 line 481 lat: -34.023172\n    test 4322 line 481 lon: 174.310259\n    test 4323 line 481 fb: 123.138509\n    test 4324 line 481 lat2: -34.023171607796\n    test 4325 line 481 lon2: 174.310258612178\n    test 4326 line 481 azi2: 123.138509441522\n    test 4327 line 481 lat2: -34.023171607796\n    test 4328 line 481 lon2: 174.310258612178\n    test 4329 line 481 azi2: 123.138509441522\n    test 4330 line 482 lat: -31.540913\n    test 4331 line 482 lon: 52.441924\n    test 4332 line 482 fb: 155.194513\n    test 4333 line 482 lat2: -31.540912691186\n    test 4334 line 482 lon2: 52.441923606881  FAILED, KNOWN, expected 52.441923606882\n    test 4335 line 482 azi2: 155.194512958367\n    test 4336 line 482 lat2: -31.540912691186\n    test 4337 line 482 lon2: 52.441923606881  FAILED, KNOWN, expected 52.441923606882\n    test 4338 line 482 azi2: 155.194512958367\n    test 4339 line 483 lat: 64.121649\n    test 4340 line 483 lon: 21.295234\n    test 4341 line 483 fb: 51.966943\n    test 4342 line 483 lat2: 64.121648788158\n    test 4343 line 483 lon2: 21.295234110583\n    test 4344 line 483 azi2: 51.966943039534\n    test 4345 line 483 lat2: 64.121648788158\n    test 4346 line 483 lon2: 21.295234110583\n    test 4347 line 483 azi2: 51.966943039534\n    test 4348 line 484 lat: -4.599613\n    test 4349 line 484 lon: 107.727091\n    test 4350 line 484 fb: 109.270070\n    test 4351 line 484 lat2: -4.599612537190\n    test 4352 line 484 lon2: 107.727090701893\n    test 4353 line 484 azi2: 109.270070124629\n    test 4354 line 484 lat2: -4.599612537190\n    test 4355 line 484 lon2: 107.727090701893\n    test 4356 line 484 azi2: 109.270070124629\n    test 4357 line 485 lat: -16.799515\n    test 4358 line 485 lon: 43.675397\n    test 4359 line 485 fb: 144.940350\n    test 4360 line 485 lat2: -16.799514501718\n    test 4361 line 485 lon2: 43.675397103786  FAILED, KNOWN, expected 43.675397103785\n    test 4362 line 485 azi2: 144.940350340820\n    test 4363 line 485 lat2: -16.799514501718\n    test 4364 line 485 lon2: 43.675397103786  FAILED, KNOWN, expected 43.675397103785\n    test 4365 line 485 azi2: 144.940350340820\n    test 4366 line 486 lat: -16.337411\n    test 4367 line 486 lon: 13.110283\n    test 4368 line 486 fb: 167.467077\n    test 4369 line 486 lat2: -16.337410785184\n    test 4370 line 486 lon2: 13.110282576579\n    test 4371 line 486 azi2: 167.467077049713\n    test 4372 line 486 lat2: -16.337410785184\n    test 4373 line 486 lon2: 13.110282576579\n    test 4374 line 486 azi2: 167.467077049713\n    test 4375 line 487 lat: -26.145379\n    test 4376 line 487 lon: 9.977868\n    test 4377 line 487 fb: 171.929335\n    test 4378 line 487 lat2: -26.145378737931\n    test 4379 line 487 lon2: 9.977868070750\n    test 4380 line 487 azi2: 171.929335050809\n    test 4381 line 487 lat2: -26.145378737931\n    test 4382 line 487 lon2: 9.977868070750\n    test 4383 line 487 azi2: 171.929335050809\n    test 4384 line 488 lat: -3.245748\n    test 4385 line 488 lon: 71.931981\n    test 4386 line 488 fb: 124.120047\n    test 4387 line 488 lat2: -3.245748416402\n    test 4388 line 488 lon2: 71.931980979620\n    test 4389 line 488 azi2: 124.120046609527\n    test 4390 line 488 lat2: -3.245748416402\n    test 4391 line 488 lon2: 71.931980979620\n    test 4392 line 488 azi2: 124.120046609527\n    test 4393 line 489 lat: 72.975644\n    test 4394 line 489 lon: 36.459313\n    test 4395 line 489 fb: 49.411324\n    test 4396 line 489 lat2: 72.975644407376\n    test 4397 line 489 lon2: 36.459312843012\n    test 4398 line 489 azi2: 49.411324496539\n    test 4399 line 489 lat2: 72.975644407376\n    test 4400 line 489 lon2: 36.459312843012\n    test 4401 line 489 azi2: 49.411324496539\n    test 4402 line 490 lat: 50.342418\n    test 4403 line 490 lon: 35.445910\n    test 4404 line 490 fb: 43.087650\n    test 4405 line 490 lat2: 50.342417843481\n    test 4406 line 490 lon2: 35.445910446930\n    test 4407 line 490 azi2: 43.087650398316\n    test 4408 line 490 lat2: 50.342417843481\n    test 4409 line 490 lon2: 35.445910446930\n    test 4410 line 490 azi2: 43.087650398316\n    test 4411 line 491 lat: -22.878804\n    test 4412 line 491 lon: 69.376306\n    test 4413 line 491 fb: 102.211558\n    test 4414 line 491 lat2: -22.878804028267\n    test 4415 line 491 lon2: 69.376306288000\n    test 4416 line 491 azi2: 102.211557813582\n    test 4417 line 491 lat2: -22.878804028267\n    test 4418 line 491 lon2: 69.376306288000\n    test 4419 line 491 azi2: 102.211557813582\n    test 4420 line 492 lat: 21.254912\n    test 4421 line 492 lon: 21.899215\n    test 4422 line 492 fb: 92.966926\n    test 4423 line 492 lat2: 21.254912121078\n    test 4424 line 492 lon2: 21.899214754868\n    test 4425 line 492 azi2: 92.966926161390\n    test 4426 line 492 lat2: 21.254912121078\n    test 4427 line 492 lon2: 21.899214754868\n    test 4428 line 492 azi2: 92.966926161390\n    test 4429 line 493 lat: 26.486641\n    test 4430 line 493 lon: 19.097603\n    test 4431 line 493 fb: 158.053447\n    test 4432 line 493 lat2: 26.486640906235\n    test 4433 line 493 lon2: 19.097602913800\n    test 4434 line 493 azi2: 158.053446850267\n    test 4435 line 493 lat2: 26.486640906235\n    test 4436 line 493 lon2: 19.097602913800\n    test 4437 line 493 azi2: 158.053446850267\n    test 4438 line 494 lat: 43.041538\n    test 4439 line 494 lon: 114.186950\n    test 4440 line 494 fb: 155.795323\n    test 4441 line 494 lat2: 43.041538374784\n    test 4442 line 494 lon2: 114.186949886941\n    test 4443 line 494 azi2: 155.795322500736\n    test 4444 line 494 lat2: 43.041538374784\n    test 4445 line 494 lon2: 114.186949886941\n    test 4446 line 494 azi2: 155.795322500736\n    test 4447 line 495 lat: -10.570764\n    test 4448 line 495 lon: 107.625834\n    test 4449 line 495 fb: 98.142401\n    test 4450 line 495 lat2: -10.570763915882\n    test 4451 line 495 lon2: 107.625834147204\n    test 4452 line 495 azi2: 98.142400502747\n    test 4453 line 495 lat2: -10.570763915882\n    test 4454 line 495 lon2: 107.625834147204\n    test 4455 line 495 azi2: 98.142400502747\n    test 4456 line 496 lat: 12.624313\n    test 4457 line 496 lon: 139.841077\n    test 4458 line 496 fb: 148.385662\n    test 4459 line 496 lat2: 12.624313141297\n    test 4460 line 496 lon2: 139.841076840613\n    test 4461 line 496 azi2: 148.385661923898\n    test 4462 line 496 lat2: 12.624313141297\n    test 4463 line 496 lon2: 139.841076840613\n    test 4464 line 496 azi2: 148.385661923898\n    test 4465 line 497 lat: -25.169999\n    test 4466 line 497 lon: 33.175749\n    test 4467 line 497 fb: 169.905377\n    test 4468 line 497 lat2: -25.169998746665\n    test 4469 line 497 lon2: 33.175749310362\n    test 4470 line 497 azi2: 169.905376778384\n    test 4471 line 497 lat2: -25.169998746665\n    test 4472 line 497 lon2: 33.175749310362\n    test 4473 line 497 azi2: 169.905376778384\n    test 4474 line 498 lat: -41.360282\n    test 4475 line 498 lon: 147.341948\n    test 4476 line 498 fb: 136.551910\n    test 4477 line 498 lat2: -41.360281944908\n    test 4478 line 498 lon2: 147.341948469937\n    test 4479 line 498 azi2: 136.551910060918\n    test 4480 line 498 lat2: -41.360281944908\n    test 4481 line 498 lon2: 147.341948469937\n    test 4482 line 498 azi2: 136.551910060918\n    test 4483 line 499 lat: 39.182099\n    test 4484 line 499 lon: 150.590705\n    test 4485 line 499 fb: 165.522951\n    test 4486 line 499 lat2: 39.182099298590\n    test 4487 line 499 lon2: 150.590705311219\n    test 4488 line 499 azi2: 165.522950851635\n    test 4489 line 499 lat2: 39.182099298590\n    test 4490 line 499 lon2: 150.590705311219\n    test 4491 line 499 azi2: 165.522950851635\n    test 4492 line 500 lat: -57.494441\n    test 4493 line 500 lon: 113.054057\n    test 4494 line 500 fb: 130.988277\n    test 4495 line 500 lat2: -57.494440629886\n    test 4496 line 500 lon2: 113.054056725195\n    test 4497 line 500 azi2: 130.988276746436\n    test 4498 line 500 lat2: -57.494440629886\n    test 4499 line 500 lon2: 113.054056725195\n    test 4500 line 500 azi2: 130.988276746436\n    test 4501 WGS84.KsOrder: 8\n\n    540 of 4501 testEllipsoidalGeodTest.py tests (12.0%) FAILED, incl. 40 KNOWN plus 500 DeprecationWarnings (pygeodesy 26.3.26 Python 2.7.18 64bit arm64_x86_64 geographiclib 1.50 numpy 1.16.6 scipy 1.2.2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 -W  default) 11.666 sec\nrunning /Library/Framewo....ython -W default ~/PyGeodesy/test/testEllipsoids.py\n\n    testing testEllipsoids.py 25.08.28 (module pygeodesy.ellipsoids 26.03.25)\n    test 1 ellipsoid: True\n    test 2 TestEllipsoid: name='TestEllipsoid', a=1000, f=0, f_=0, b=1000\n\n    testWGS84(pygeodesy.ellipsoids, 26.03.25)\n    test 3 R1: 6371008.7714\n    test 4 R2: 6371007.2\n    test 5 R3: 6371000.8\n    test 6 A: 6367449.1\n    test 7 L: 10001965.7\n    test 8 Rrectifying: 6367449.1\n    test 9 Rgeometric: 6367435.7\n    test 10 Rgeocentric: 6378137.000\n    test 11 Rgeocentric: 6367489.544\n    test 12 Rgeocentric: 6356752.314\n    test 13 Rlat: 6378137.000\n    test 14 Rlat: 6367444.657\n    test 15 Rlat: 6356752.314\n    test 16 circle4.radius: 6378137.000\n    test 17 circle4.radius: 4517590.879\n    test 18 circle4.radius: 0.000\n    test 19 distance2: 156903.472, 45.192\n    test 20 distance2: 1569034.719, 45.192\n    test 21 distance2: 1400742.676, 37.563\n    test 22 distance2: 1179164.848, 18.896\n    test 23 roc2: 6335439.327, 6378137.0\n    test 24 roc2: 6367381.816, 6388838.29\n    test 25 roc2: 6399593.626, 6399593.626\n    test 26 rocBearing: 6335439.327\n    test 27 rocBearing: 6378092.008\n    test 28 rocBearing: 6399593.626\n    test 29 rocGauss: 6356752.314\n    test 30 rocGauss: 6378101.030\n    test 31 rocGauss: 6399593.626\n    test 32 rocMean: 6356716.465\n    test 33 rocMean: 6378092.008\n    test 34 rocMean: 6399593.626\n    test 35 rocMeridional: 6335439.327\n    test 36 rocMeridional: 6367381.816\n    test 37 rocMeridional: 6399593.626\n    test 38 rocPrimeVertical: 6378137.0\n    test 39 rocPrimeVertical: 6388838.29\n    test 40 rocPrimeVertical: 6399593.626\n\n    testGRS80(pygeodesy.ellipsoids, 26.03.25)\n    test 41 R1: 6371008.7714\n    test 42 R2: 6371007.2\n    test 43 R3: 6371000.8\n    test 44 A: 6367449.1\n    test 45 L: 10001965.7\n    test 46 Rrectifying: 6367449.1\n    test 47 Rgeometric: 6367435.7\n    test 48 Rgeocentric: 6378137.000\n    test 49 Rgeocentric: 6367489.544\n    test 50 Rgeocentric: 6356752.314\n    test 51 Rlat: 6378137.000\n    test 52 Rlat: 6367444.657\n    test 53 Rlat: 6356752.314\n    test 54 circle4.radius: 6378137.000\n    test 55 circle4.radius: 4517590.879\n    test 56 circle4.radius: 0.000\n    test 57 distance2: 156903.472, 45.192\n    test 58 distance2: 1569034.719, 45.192\n    test 59 distance2: 1400742.676, 37.563\n    test 60 distance2: 1179164.848, 18.896\n    test 61 roc2: 6335439.327, 6378137.0\n    test 62 roc2: 6367381.816, 6388838.29\n    test 63 roc2: 6399593.626, 6399593.626\n    test 64 rocBearing: 6335439.327\n    test 65 rocBearing: 6378092.008\n    test 66 rocBearing: 6399593.626\n    test 67 rocGauss: 6356752.314\n    test 68 rocGauss: 6378101.030\n    test 69 rocGauss: 6399593.626\n    test 70 rocMean: 6356716.465\n    test 71 rocMean: 6378092.008\n    test 72 rocMean: 6399593.626\n    test 73 rocMeridional: 6335439.327\n    test 74 rocMeridional: 6367381.816\n    test 75 rocMeridional: 6399593.626\n    test 76 rocPrimeVertical: 6378137.0\n    test 77 rocPrimeVertical: 6388838.29\n    test 78 rocPrimeVertical: 6399593.626\n\n    test<unbound method Ellipsoid.__init__>(pygeodesy.ellipsoids, 26.03.25)\n    test 79 a, b, None: 2.0\n    test 80 a, None, f_: 500.0\n\n    testWGS84(pygeodesy.ellipsoids, 26.03.25)\n    test 81 WGS84.copy: True\n    test 82 WGS84.copy: True\n    test 83 WGS84.find: None\n    test 84 WGS84.a2_b: 6399593.625758\n    test 85 WGS84.b2_a: 6335439.327293\n    test 86 WGS84.R2: 6371007.180918\n    test 87 WGS84.c2: 40589732499315\n    test 88 WGS84.es: 0.081819\n    test 89 WGS84.e22: 0.006739\n    test 90 WGS84.f2: 0.003364\n    test 91 WGS84.m2degrees: 90\n    test 92 WGS84.degrees2m: 10018754\n    test 93 WGS84.area: 5.101e+14\n    test 94 WGS84.volume: 1.083e+21\n    test 95 WGS84.ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 96 WGS84.ecef: WGS84\n    test 97 WGS84: name='WGS84', a=6378137, f=0.0033528107, f_=298.257223563, b=6356752.3142451793, f2=0.0033640898, n=0.0016792204, e=0.0818191908, e2=0.00669438, e21=0.99330562, e22=0.0067394967, e32=0.0033584313, A=6367449.1458234144, L=10001965.7293127235, R1=6371008.7714150595, R2=6371007.1809184738, R3=6371000.7900091587, Rbiaxial=6367453.6345163295, Rtriaxial=6372797.5559594007\n    test 98 WGS84.: A=6367449.1458234144, e=0.0818191908, f_=298.2572235630, n=0.0016792204 (1.5612511284e-17)\n\n    testKruegers(pygeodesy.ellipsoids, 26.03.25)\n    test 99 WGS84.AlphaKs: 8.377318206245e-04, 7.608527773572e-07, 1.197645503242e-09, 2.429170680397e-12, 5.711818370428e-15, 1.47999793138e-17, 4.107624109371e-20, 1.210785038923e-22\n    test 100 WGS84.BetaKs : 8.377321640579e-04, 5.90587015222e-08, 1.673482665344e-10, 2.164798110491e-13, 3.787930968626e-16, 7.236769021816e-19, 1.493479824778e-21, 3.259522545838e-24\n    test 101 WGS84.AlphaKs: 8.377318206245e-04, 7.608527773572e-07, 1.197645503329e-09, 2.429170607201e-12, 5.711757677866e-15, 1.491117731258e-17\n    test 102 WGS84.BetaKs : 8.377321640579e-04, 5.90587015222e-08, 1.673482665284e-10, 2.164798040063e-13, 3.787978046169e-16, 7.248748890694e-19\n    test 103 WGS84.AlphaKs: 8.377318206304e-04, 7.608527714249e-07, 1.197638001561e-09, 2.443376194522e-12\n    test 104 WGS84.BetaKs : 8.377321640601e-04, 5.905869567934e-08, 1.673488880355e-10, 2.167737763022e-13\n\n    testProlate(pygeodesy.ellipsoids, 26.03.25)\n    test 105 a [Radius_]: 6356752.314\n    test 106 b [Radius_]: 6378137.000\n    test 107 n [Float]: -0.002\n    test 108 R1 [Radius]: 6363880.543\n    test 109 R2 [Radius]: 6363878.941\n    test 110 R3 [Radius]: 6363872.564\n    test 111 Rbiaxial [Radius]: 6367453.635\n    test 112 Rgeometric [Radius]: 6367435.680\n    test 113 c2 [Meter2]: 40498955180263.188\n    test 114 area [Meter2]: 508924880289508.500\n    test 115 volume [Meter3]: 1079575530747445379072.000\n\n    testauxLats WGS84(pygeodesy.ellipsoids, 26.03.25)\n    test 116 isEllipsoidal: True\n    test 117 isOblate: True\n    test 118 isProlate: False\n    test 119 isSpherical: False\n    test 120 auxAuthalic(-90): -90.0\n    test 121 name: auxAuthalic\n    test 122 inverse: lat (-90.0)\n    test 123 auxConformal(-90): -90.0\n    test 124 name: auxConformal\n    test 125 inverse: lat (-90.0)\n    test 126 auxRectifying(-90): -90.0\n    test 127 name: auxRectifying\n    test 128 inverse: lat (-90.0)\n    test 129 auxIsometric(-90): -2178.287790219\n    test 130 name: auxIsometric\n    test 131 inverse: lat (-90.0)\n    test 132 auxParametric(-90): -90.0\n    test 133 name: auxParametric\n    test 134 inverse: lat (-90.0)\n    test 135 auxGeocentric(-90): -90.0\n    test 136 name: auxGeocentric\n    test 137 inverse: lat (-90.0)\n    test 138 auxGeocentric(-90, height=1.0e+06): -90.0\n    test 139 name: auxGeocentric\n    test 140 inverse: lat (-90.0)\n    test 141 auxAuthalic(-61): -60.891087993\n    test 142 name: auxAuthalic\n    test 143 inverse: lat (-61.0)\n    test 144 auxConformal(-61): -60.836664626\n    test 145 name: auxConformal\n    test 146 inverse: lat (-61.0)\n    test 147 auxRectifying(-61): -60.877475063\n    test 148 name: auxRectifying\n    test 149 inverse: lat (-61.0)\n    test 150 auxIsometric(-61): -77.151044895\n    test 151 name: auxIsometric\n    test 152 inverse: lat (-61.0)\n    test 153 auxParametric(-61): -60.918334778\n    test 154 name: auxParametric\n    test 155 inverse: lat (-61.0)\n    test 156 auxGeocentric(-61): -60.836524751\n    test 157 name: auxGeocentric\n    test 158 inverse: lat (-61.0)\n    test 159 auxGeocentric(-61, height=1.0e+06): -60.858730579\n    test 160 name: auxGeocentric\n    test 161 inverse: lat (-61.0)\n    test 162 auxAuthalic(-32): -31.884783413\n    test 163 name: auxAuthalic\n    test 164 inverse: lat (-32.0)\n    test 165 auxConformal(-32): -31.827359208\n    test 166 name: auxConformal\n    test 167 inverse: lat (-32.0)\n    test 168 auxRectifying(-32): -31.870407049\n    test 169 name: auxRectifying\n    test 170 inverse: lat (-32.0)\n    test 171 auxIsometric(-32): -33.603011359\n    test 172 name: auxIsometric\n    test 173 inverse: lat (-32.0)\n    test 174 auxParametric(-32): -31.913588685\n    test 175 name: auxParametric\n    test 176 inverse: lat (-32.0)\n    test 177 auxGeocentric(-32): -31.827305281\n    test 178 name: auxGeocentric\n    test 179 inverse: lat (-32.0)\n    test 180 auxGeocentric(-32, height=1.0e+06): -31.850730486\n    test 181 name: auxGeocentric\n    test 182 inverse: lat (-32.0)\n    test 183 auxAuthalic(-3): -2.986614622\n    test 184 name: auxAuthalic\n    test 185 inverse: lat (-3.0)\n    test 186 auxConformal(-3): -2.97995324\n    test 187 name: auxConformal\n    test 188 inverse: lat (-3.0)\n    test 189 auxRectifying(-3): -2.984946069\n    test 190 name: auxRectifying\n    test 191 inverse: lat (-3.0)\n    test 192 auxIsometric(-3): -2.981297631\n    test 193 name: auxIsometric\n    test 194 inverse: lat (-3.0)\n    test 195 auxParametric(-3): -2.98995985\n    test 196 name: auxParametric\n    test 197 inverse: lat (-3.0)\n    test 198 auxGeocentric(-3): -2.979953179\n    test 199 name: auxGeocentric\n    test 200 inverse: lat (-3.0)\n    test 201 auxGeocentric(-3, height=1.0e+06): -2.982670258\n    test 202 name: auxGeocentric\n    test 203 inverse: lat (-3.0)\n    test 204 auxAuthalic(26): 25.899018772\n    test 205 name: auxAuthalic\n    test 206 inverse: lat (26.0)\n    test 207 auxConformal(26): 25.848713396\n    test 208 name: auxConformal\n    test 209 inverse: lat (26.0)\n    test 210 auxRectifying(26): 25.886422583\n    test 211 name: auxRectifying\n    test 212 inverse: lat (26.0)\n    test 213 auxIsometric(26): 26.772988826\n    test 214 name: auxIsometric\n    test 215 inverse: lat (26.0)\n    test 216 auxParametric(26): 25.924262064\n    test 217 name: auxParametric\n    test 218 inverse: lat (26.0)\n    test 219 auxGeocentric(26): 25.848681095\n    test 220 name: auxGeocentric\n    test 221 inverse: lat (26.0)\n    test 222 auxGeocentric(26, height=1.0e+06): 25.869201526\n    test 223 name: auxGeocentric\n    test 224 inverse: lat (26.0)\n    test 225 auxAuthalic(55): 54.879361595\n    test 226 name: auxAuthalic\n    test 227 inverse: lat (55.0)\n    test 228 auxConformal(55): 54.819109025\n    test 229 name: auxConformal\n    test 230 inverse: lat (55.0)\n    test 231 auxRectifying(55): 54.864287984\n    test 232 name: auxRectifying\n    test 233 inverse: lat (55.0)\n    test 234 auxIsometric(55): 65.818103037\n    test 235 name: auxIsometric\n    test 236 inverse: lat (55.0)\n    test 237 auxParametric(55): 54.909538188\n    test 238 name: auxParametric\n    test 239 inverse: lat (55.0)\n    test 240 auxGeocentric(55): 54.818973309\n    test 241 name: auxGeocentric\n    test 242 inverse: lat (55.0)\n    test 243 auxGeocentric(55, height=1.0e+06): 54.843556517\n    test 244 name: auxGeocentric\n    test 245 inverse: lat (55.0)\n    test 246 auxAuthalic(84): 83.973275752\n    test 247 name: auxAuthalic\n    test 248 inverse: lat (84.0)\n    test 249 auxConformal(84): 83.959905489\n    test 250 name: auxConformal\n    test 251 inverse: lat (84.0)\n    test 252 auxRectifying(84): 83.969932835\n    test 253 name: auxRectifying\n    test 254 inverse: lat (84.0)\n    test 255 auxIsometric(84): 168.565774939\n    test 256 name: auxIsometric\n    test 257 inverse: lat (84.0)\n    test 258 auxParametric(84): 83.979963441\n    test 259 name: auxParametric\n    test 260 inverse: lat (84.0)\n    test 261 auxGeocentric(84): 83.959860962\n    test 262 name: auxGeocentric\n    test 263 inverse: lat (84.0)\n    test 264 auxGeocentric(84, height=1.0e+06): 83.965316868\n    test 265 name: auxGeocentric\n    test 266 inverse: lat (84.0)\n\n    testauxLats Prolate(pygeodesy.ellipsoids, 26.03.25)\n    test 267 isEllipsoidal: True\n    test 268 isOblate: False\n    test 269 isProlate: True\n    test 270 isSpherical: False\n    test 271 auxAuthalic(-90): -90.0\n    test 272 name: auxAuthalic\n    test 273 inverse: lat (-90.0)\n    test 274 auxConformal(-90): -90.0\n    test 275 name: auxConformal\n    test 276 inverse: lat (-90.0)\n    test 277 auxRectifying(-90): -90.0\n    test 278 name: auxRectifying\n    test 279 inverse: lat (-90.0)\n    test 280 auxIsometric(-90): -2179.057490028\n    test 281 name: auxIsometric\n    test 282 inverse: lat (-90.0)\n    test 283 auxParametric(-90): -90.0\n    test 284 name: auxParametric\n    test 285 inverse: lat (-90.0)\n    test 286 auxGeocentric(-90): -90.0\n    test 287 name: auxGeocentric\n    test 288 inverse: lat (-90.0)\n    test 289 auxGeocentric(-90, height=1.0e+06): -90.0\n    test 290 name: auxGeocentric\n    test 291 inverse: lat (-90.0)\n    test 292 auxAuthalic(-61): -61.10866822\n    test 293 name: auxAuthalic\n    test 294 inverse: lat (-61.0)\n    test 295 auxConformal(-61): -61.163034022\n    test 296 name: auxConformal\n    test 297 inverse: lat (-61.0)\n    test 298 auxRectifying(-61): -61.041077146\n    test 299 name: auxRectifying\n    test 300 inverse: lat (-61.0)\n    test 301 auxIsometric(-61): -77.824239376\n    test 302 name: auxIsometric\n    test 303 inverse: lat (-61.0)\n    test 304 auxParametric(-61): -61.081520012\n    test 305 name: auxParametric\n    test 306 inverse: lat (-61.0)\n    test 307 auxGeocentric(-61): -61.162894413\n    test 308 name: auxGeocentric\n    test 309 inverse: lat (-61.0)\n    test 310 auxGeocentric(-61, height=1.0e+06): -61.140801491\n    test 311 name: auxGeocentric\n    test 312 inverse: lat (-61.0)\n    test 313 auxAuthalic(-32): -32.115383155\n    test 314 name: auxAuthalic\n    test 315 inverse: lat (-32.0)\n    test 316 auxConformal(-32): -32.173258776\n    test 317 name: auxConformal\n    test 318 inverse: lat (-32.0)\n    test 319 auxRectifying(-32): -32.043518766\n    test 320 name: auxRectifying\n    test 321 inverse: lat (-32.0)\n    test 322 auxIsometric(-32): -34.010891137\n    test 323 name: auxIsometric\n    test 324 inverse: lat (-32.0)\n    test 325 auxParametric(-32): -32.086538627\n    test 326 name: auxParametric\n    test 327 inverse: lat (-32.0)\n    test 328 auxGeocentric(-32): -32.173203962\n    test 329 name: auxGeocentric\n    test 330 inverse: lat (-32.0)\n    test 331 auxGeocentric(-32, height=1.0e+06): -32.149679767\n    test 332 name: auxGeocentric\n    test 333 inverse: lat (-32.0)\n    test 334 auxAuthalic(-3): -3.013433135\n    test 335 name: auxAuthalic\n    test 336 inverse: lat (-3.0)\n    test 337 auxConformal(-3): -3.020181246\n    test 338 name: auxConformal\n    test 339 inverse: lat (-3.0)\n    test 340 auxRectifying(-3): -3.005060047\n    test 341 name: auxRectifying\n    test 342 inverse: lat (-3.0)\n    test 343 auxIsometric(-3): -3.021580847\n    test 344 name: auxIsometric\n    test 345 inverse: lat (-3.0)\n    test 346 auxParametric(-3): -3.010073741\n    test 347 name: auxParametric\n    test 348 inverse: lat (-3.0)\n    test 349 auxGeocentric(-3): -3.020181184\n    test 350 name: auxGeocentric\n    test 351 inverse: lat (-3.0)\n    test 352 auxGeocentric(-3, height=1.0e+06): -3.017437987\n    test 353 name: auxGeocentric\n    test 354 inverse: lat (-3.0)\n    test 355 auxAuthalic(26): 26.10119548\n    test 356 name: auxAuthalic\n    test 357 inverse: lat (26.0)\n    test 358 auxConformal(26): 26.151978892\n    test 359 name: auxConformal\n    test 360 inverse: lat (26.0)\n    test 361 auxRectifying(26): 26.038152061\n    test 362 name: auxRectifying\n    test 363 inverse: lat (26.0)\n    test 364 auxIsometric(26): 27.110404181\n    test 365 name: auxIsometric\n    test 366 inverse: lat (26.0)\n    test 367 auxParametric(26): 26.075894699\n    test 368 name: auxParametric\n    test 369 inverse: lat (26.0)\n    test 370 auxGeocentric(26): 26.15194595\n    test 371 name: auxGeocentric\n    test 372 inverse: lat (26.0)\n    test 373 auxGeocentric(26, height=1.0e+06): 26.131303631\n    test 374 name: auxGeocentric\n    test 375 inverse: lat (26.0)\n    test 376 auxAuthalic(55): 55.120454487\n    test 377 name: auxAuthalic\n    test 378 inverse: lat (55.0)\n    test 379 auxConformal(55): 55.180747234\n    test 380 name: auxConformal\n    test 381 inverse: lat (55.0)\n    test 382 auxRectifying(55): 55.045512882\n    test 383 name: auxRectifying\n    test 384 inverse: lat (55.0)\n    test 385 auxIsometric(55): 66.448604201\n    test 386 name: auxIsometric\n    test 387 inverse: lat (55.0)\n    test 388 auxParametric(55): 55.090357963\n    test 389 name: auxParametric\n    test 390 inverse: lat (55.0)\n    test 391 auxGeocentric(55): 55.180611298\n    test 392 name: auxGeocentric\n    test 393 inverse: lat (55.0)\n    test 394 auxGeocentric(55, height=1.0e+06): 55.156108835\n    test 395 name: auxGeocentric\n    test 396 inverse: lat (55.0)\n    test 397 auxAuthalic(84): 84.026618976\n    test 398 name: auxAuthalic\n    test 399 inverse: lat (84.0)\n    test 400 auxConformal(84): 84.039920255\n    test 401 name: auxConformal\n    test 402 inverse: lat (84.0)\n    test 403 auxRectifying(84): 84.010072387\n    test 404 name: auxRectifying\n    test 405 inverse: lat (84.0)\n    test 406 auxIsometric(84): 169.331258228\n    test 407 name: auxIsometric\n    test 408 inverse: lat (84.0)\n    test 409 auxParametric(84): 84.019970846\n    test 410 name: auxParametric\n    test 411 inverse: lat (84.0)\n    test 412 auxGeocentric(84): 84.039876185\n    test 413 name: auxGeocentric\n    test 414 inverse: lat (84.0)\n    test 415 auxGeocentric(84, height=1.0e+06): 84.034471374\n    test 416 name: auxGeocentric\n    test 417 inverse: lat (84.0)\n\n    testauxLats Sphere(pygeodesy.ellipsoids, 26.03.25)\n    test 418 isEllipsoidal: False\n    test 419 isOblate: False\n    test 420 isProlate: False\n    test 421 isSpherical: True\n    test 422 auxAuthalic(-90): -90.0\n    test 423 name: auxAuthalic\n    test 424 inverse: lat (-90.0)\n    test 425 auxConformal(-90): -90.0\n    test 426 name: auxConformal\n    test 427 inverse: lat (-90.0)\n    test 428 auxRectifying(-90): -90.0\n    test 429 name: auxRectifying\n    test 430 inverse: lat (-90.0)\n    test 431 auxIsometric(-90): -90.0\n    test 432 name: auxIsometric\n    test 433 inverse: lat (-90.0)\n    test 434 auxParametric(-90): -90.0\n    test 435 name: auxParametric\n    test 436 inverse: lat (-90.0)\n    test 437 auxGeocentric(-90): -90.0\n    test 438 name: auxGeocentric\n    test 439 inverse: lat (-90.0)\n    test 440 auxGeocentric(-90, height=1.0e+06): -90.0\n    test 441 name: auxGeocentric\n    test 442 inverse: lat (-90.0)\n    test 443 auxAuthalic(-61): -61.0\n    test 444 name: auxAuthalic\n    test 445 inverse: lat (-61.0)\n    test 446 auxConformal(-61): -61.0\n    test 447 name: auxConformal\n    test 448 inverse: lat (-61.0)\n    test 449 auxRectifying(-61): -61.0\n    test 450 name: auxRectifying\n    test 451 inverse: lat (-61.0)\n    test 452 auxIsometric(-61): -61.0\n    test 453 name: auxIsometric\n    test 454 inverse: lat (-61.0)\n    test 455 auxParametric(-61): -61.0\n    test 456 name: auxParametric\n    test 457 inverse: lat (-61.0)\n    test 458 auxGeocentric(-61): -61.0\n    test 459 name: auxGeocentric\n    test 460 inverse: lat (-61.0)\n    test 461 auxGeocentric(-61, height=1.0e+06): -61.0\n    test 462 name: auxGeocentric\n    test 463 inverse: lat (-61.0)\n    test 464 auxAuthalic(-32): -32.0\n    test 465 name: auxAuthalic\n    test 466 inverse: lat (-32.0)\n    test 467 auxConformal(-32): -32.0\n    test 468 name: auxConformal\n    test 469 inverse: lat (-32.0)\n    test 470 auxRectifying(-32): -32.0\n    test 471 name: auxRectifying\n    test 472 inverse: lat (-32.0)\n    test 473 auxIsometric(-32): -32.0\n    test 474 name: auxIsometric\n    test 475 inverse: lat (-32.0)\n    test 476 auxParametric(-32): -32.0\n    test 477 name: auxParametric\n    test 478 inverse: lat (-32.0)\n    test 479 auxGeocentric(-32): -32.0\n    test 480 name: auxGeocentric\n    test 481 inverse: lat (-32.0)\n    test 482 auxGeocentric(-32, height=1.0e+06): -32.0\n    test 483 name: auxGeocentric\n    test 484 inverse: lat (-32.0)\n    test 485 auxAuthalic(-3): -3.0\n    test 486 name: auxAuthalic\n    test 487 inverse: lat (-3.0)\n    test 488 auxConformal(-3): -3.0\n    test 489 name: auxConformal\n    test 490 inverse: lat (-3.0)\n    test 491 auxRectifying(-3): -3.0\n    test 492 name: auxRectifying\n    test 493 inverse: lat (-3.0)\n    test 494 auxIsometric(-3): -3.0\n    test 495 name: auxIsometric\n    test 496 inverse: lat (-3.0)\n    test 497 auxParametric(-3): -3.0\n    test 498 name: auxParametric\n    test 499 inverse: lat (-3.0)\n    test 500 auxGeocentric(-3): -3.0\n    test 501 name: auxGeocentric\n    test 502 inverse: lat (-3.0)\n    test 503 auxGeocentric(-3, height=1.0e+06): -3.0\n    test 504 name: auxGeocentric\n    test 505 inverse: lat (-3.0)\n    test 506 auxAuthalic(26): 26.0\n    test 507 name: auxAuthalic\n    test 508 inverse: lat (26.0)\n    test 509 auxConformal(26): 26.0\n    test 510 name: auxConformal\n    test 511 inverse: lat (26.0)\n    test 512 auxRectifying(26): 26.0\n    test 513 name: auxRectifying\n    test 514 inverse: lat (26.0)\n    test 515 auxIsometric(26): 26.0\n    test 516 name: auxIsometric\n    test 517 inverse: lat (26.0)\n    test 518 auxParametric(26): 26.0\n    test 519 name: auxParametric\n    test 520 inverse: lat (26.0)\n    test 521 auxGeocentric(26): 26.0\n    test 522 name: auxGeocentric\n    test 523 inverse: lat (26.0)\n    test 524 auxGeocentric(26, height=1.0e+06): 26.0\n    test 525 name: auxGeocentric\n    test 526 inverse: lat (26.0)\n    test 527 auxAuthalic(55): 55.0\n    test 528 name: auxAuthalic\n    test 529 inverse: lat (55.0)\n    test 530 auxConformal(55): 55.0\n    test 531 name: auxConformal\n    test 532 inverse: lat (55.0)\n    test 533 auxRectifying(55): 55.0\n    test 534 name: auxRectifying\n    test 535 inverse: lat (55.0)\n    test 536 auxIsometric(55): 55.0\n    test 537 name: auxIsometric\n    test 538 inverse: lat (55.0)\n    test 539 auxParametric(55): 55.0\n    test 540 name: auxParametric\n    test 541 inverse: lat (55.0)\n    test 542 auxGeocentric(55): 55.0\n    test 543 name: auxGeocentric\n    test 544 inverse: lat (55.0)\n    test 545 auxGeocentric(55, height=1.0e+06): 55.0\n    test 546 name: auxGeocentric\n    test 547 inverse: lat (55.0)\n    test 548 auxAuthalic(84): 84.0\n    test 549 name: auxAuthalic\n    test 550 inverse: lat (84.0)\n    test 551 auxConformal(84): 84.0\n    test 552 name: auxConformal\n    test 553 inverse: lat (84.0)\n    test 554 auxRectifying(84): 84.0\n    test 555 name: auxRectifying\n    test 556 inverse: lat (84.0)\n    test 557 auxIsometric(84): 84.0\n    test 558 name: auxIsometric\n    test 559 inverse: lat (84.0)\n    test 560 auxParametric(84): 84.0\n    test 561 name: auxParametric\n    test 562 inverse: lat (84.0)\n    test 563 auxGeocentric(84): 84.0\n    test 564 name: auxGeocentric\n    test 565 inverse: lat (84.0)\n    test 566 auxGeocentric(84, height=1.0e+06): 84.0\n    test 567 name: auxGeocentric\n    test 568 inverse: lat (84.0)\n\n    testFlattenings(pygeodesy.ellipsoids, 26.03.25)\n    test 569 all: all\n    test 570 _TOL: 1.49011611938e-09\n\n    test 571 Airy1830.f_ - 1 / .f: 0.0\n    test 572 Airy1830.f - 1 / .f_: 0.0\n\n    test 573 AiryModified.f_ - 1 / .f: 0.0\n    test 574 AiryModified.f - 1 / .f_: 0.0\n\n    test 575 ATS1977.f_ - 1 / .f: 0.0\n    test 576 ATS1977.f - 1 / .f_: 0.0\n\n    test 577 Australia1966.f_ - 1 / .f: 0.0\n    test 578 Australia1966.f - 1 / .f_: 0.0\n\n    test 579 Bessel1841.f_ - 1 / .f: -3.63343133358e-10\n    test 580 Bessel1841.f - 1 / .f_: -4.06012029552e-15\n\n    test 581 BesselModified.f_ - 1 / .f: 0.0\n    test 582 BesselModified.f - 1 / .f_: 0.0\n\n    test 583 CGCS2000.f_ - 1 / .f: 0.0\n    test 584 CGCS2000.f - 1 / .f_: 0.0\n\n    test 585 Clarke1866.f_ - 1 / .f: 1.0180656318e-10\n    test 586 Clarke1866.f - 1 / .f_: 1.17007098455e-15\n\n    test 587 Clarke1880.f_ - 1 / .f: -6.27551344223e-11\n    test 588 Clarke1880.f - 1 / .f_: -7.2858385991e-16\n\n    test 589 Clarke1880IGN.f_ - 1 / .f: 3.73063357983e-10\n    test 590 Clarke1880IGN.f - 1 / .f_: 4.33203820038e-15\n\n    test 591 Clarke1880Mod.f_ - 1 / .f: 6.86668499839e-11\n    test 592 Clarke1880Mod.f - 1 / .f_: 7.97105437211e-16\n\n    test 593 CPM1799.f_ - 1 / .f: -4.77484718431e-11\n    test 594 CPM1799.f - 1 / .f_: -4.2674197509e-16\n\n    test 595 Delambre1810.f_ - 1 / .f: 6.00834937359e-11\n    test 596 Delambre1810.f - 1 / .f_: 6.19296280924e-16\n\n    test 597 Engelis1985.f_ - 1 / .f: 3.17186277243e-11\n    test 598 Engelis1985.f - 1 / .f_: 3.56919355182e-16\n\n    test 599 Everest1969.f_ - 1 / .f: -1.03341335489e-10\n    test 600 Everest1969.f - 1 / .f_: -1.14188172806e-15\n\n    test 601 Everest1975.f_ - 1 / .f: 2.10889083974e-11\n    test 602 Everest1975.f - 1 / .f_: 2.3288662665e-16\n\n    test 603 Fisher1968.f_ - 1 / .f: 6.39488462184e-11\n    test 604 Fisher1968.f - 1 / .f_: 7.18609199923e-16\n\n    test 605 GEM10C.f_ - 1 / .f: 3.50155460183e-11\n    test 606 GEM10C.f - 1 / .f_: 3.93782229047e-16\n\n    test 607 GRS67.f_ - 1 / .f: 0.0\n    test 608 GRS67.f - 1 / .f_: 0.0\n\n    test 609 GRS80.f_ - 1 / .f: 5.7980287238e-12\n    test 610 GRS80.f - 1 / .f_: 6.50521303491e-17\n\n    test 611 Helmert1906.f_ - 1 / .f: 1.94404492504e-11\n    test 612 Helmert1906.f - 1 / .f_: 2.18575157973e-16\n\n    test 613 IAU76.f_ - 1 / .f: 0.0\n    test 614 IAU76.f - 1 / .f_: 0.0\n\n    test 615 IERS1989.f_ - 1 / .f: 0.0\n    test 616 IERS1989.f - 1 / .f_: 0.0\n\n    test 617 IERS1992TOPEX.f_ - 1 / .f: -4.74642547488e-11\n    test 618 IERS1992TOPEX.f - 1 / .f_: -5.33427468863e-16\n\n    test 619 IERS2003.f_ - 1 / .f: -3.67776920029e-11\n    test 620 IERS2003.f - 1 / .f_: -4.1373154902e-16\n\n    test 621 Intl1924.f_ - 1 / .f: 0.0\n    test 622 Intl1924.f - 1 / .f_: 0.0\n\n    test 623 Intl1967.f_ - 1 / .f: -1.35287336889e-11\n    test 624 Intl1967.f - 1 / .f_: -1.52221985017e-16\n\n    test 625 Krassovski1940.f_ - 1 / .f: -3.87672116631e-11\n    test 626 Krassovski1940.f - 1 / .f_: -4.35849273339e-16\n\n    test 627 Krassowsky1940.f_ - 1 / .f: -3.87672116631e-11\n    test 628 Krassowsky1940.f - 1 / .f_: -4.35849273339e-16\n\n    test 629 Maupertuis1738.f_ - 1 / .f: 1.53477230924e-11\n    test 630 Maupertuis1738.f - 1 / .f_: 4.20670442924e-16\n\n    test 631 Mercury1960.f_ - 1 / .f: -4.80326889374e-11\n    test 632 Mercury1960.f - 1 / .f_: -5.39499001029e-16\n\n    test 633 Mercury1968Mod.f_ - 1 / .f: 6.39488462184e-11\n    test 634 Mercury1968Mod.f - 1 / .f_: 7.18609199923e-16\n\n    test 635 NWL1965.f_ - 1 / .f: 5.32054400537e-11\n    test 636 NWL1965.f - 1 / .f_: 5.98045918343e-16\n\n    test 637 OSU86F.f_ - 1 / .f: 1.46087586472e-11\n    test 638 OSU86F.f - 1 / .f_: 1.64365049349e-16\n\n    test 639 OSU91A.f_ - 1 / .f: -2.27373675443e-12\n    test 640 OSU91A.f - 1 / .f_: -2.55871712707e-17\n\n    test 641 Plessis1817.f_ - 1 / .f: 4.22346602136e-11\n    test 642 Plessis1817.f - 1 / .f_: 4.43221848112e-16\n\n    test 643 Prolate.f_ - 1 / .f: 0.0\n    test 644 Prolate.f - 1 / .f_: 0.0\n\n    test 645 PZ90.f_ - 1 / .f: 0.0\n    test 646 PZ90.f - 1 / .f_: 0.0\n\n    test 647 SGS85.f_ - 1 / .f: 1.65982783074e-11\n    test 648 SGS85.f - 1 / .f_: 1.86916454537e-16\n\n    test 649 SoAmerican1969.f_ - 1 / .f: -5.68434188608e-11\n    test 650 SoAmerican1969.f - 1 / .f_: -6.38811920028e-16\n\n    test 651 Struve1860.f_ - 1 / .f: 1.90425453184e-11\n    test 652 Struve1860.f - 1 / .f_: 2.19442519711e-16\n\n    test 653 WGS60.f_ - 1 / .f: -5.07611730427e-11\n    test 654 WGS60.f - 1 / .f_: -5.70290342727e-16\n\n    test 655 WGS66.f_ - 1 / .f: 5.32054400537e-11\n    test 656 WGS66.f - 1 / .f_: 5.98045918343e-16\n\n    test 657 WGS72.f_ - 1 / .f: 0.0\n    test 658 WGS72.f - 1 / .f_: 0.0\n\n    test 659 WGS84.f_ - 1 / .f: 0.0\n    test 660 WGS84.f - 1 / .f_: 0.0\n\n    test 661 WGS84_NGS.f_ - 1 / .f: 0.0\n    test 662 WGS84_NGS.f - 1 / .f_: 0.0\n\n    testEllipsoid2(pygeodesy.ellipsoids, 26.03.25)\n    test 663 _2_Airy1830: a=6377563.396, f=0.0033409, f_=299.3249646, b=6356256.9092373\n    test 664 _2_AiryModified: a=6377340.189, f=0.0033409, f_=299.3249646, b=6356034.4479385\n    test 665 _2_ATS1977: a=6378135, f=0.0033528, f_=298.257, b=6356750.3049216\n    test 666 _2_Australia1966: a=6378160, f=0.0033529, f_=298.25, b=6356774.7191953\n    test 667 _2_Bessel1841: a=6377397.155, f=0.0033428, f_=299.1528128, b=6356078.962818\n    test 668 _2_BesselModified: a=6377492.018, f=0.0033428, f_=299.1528128, b=6356173.5087127\n    test 669 _2_CGCS2000: a=6378137, f=0.0033528, f_=298.2572221, b=6356752.3141404\n    test 670 _2_Clarke1866: a=6378206.4, f=0.0033901, f_=294.9786982, b=6356583.8\n    test 671 _2_Clarke1880: a=6378249.145, f=0.0034076, f_=293.465, b=6356514.8695498\n    test 672 _2_Clarke1880IGN: a=6378249.2, f=0.0034075, f_=293.4660213, b=6356515\n    test 673 _2_Clarke1880Mod: a=6378249.145, f=0.0034075, f_=293.4663077, b=6356514.9663955\n    test 674 _2_CPM1799: a=6375738.7, f=0.0029905, f_=334.39, b=6356671.9255749\n    test 675 _2_Delambre1810: a=6376428, f=0.0032103, f_=311.5, b=6355957.9261637\n    test 676 _2_Engelis1985: a=6378136.05, f=0.0033528, f_=298.2566, b=6356751.3227215\n    test 677 _2_Everest1969: a=6377295.664, f=0.0033244, f_=300.8017, b=6356094.667915\n    test 678 _2_Everest1975: a=6377299.151, f=0.0033244, f_=300.8017255, b=6356098.1451201\n    test 679 _2_Fisher1968: a=6378150, f=0.0033523, f_=298.3, b=6356768.3372444\n    test 680 _2_GEM10C: a=6378137, f=0.0033528, f_=298.2572236, b=6356752.3142478\n    test 681 _2_GPES: a=6378135, f=0, f_=0, b=6378135\n    test 682 _2_GRS67: a=6378160, f=0.0033529, f_=298.2471674, b=6356774.5160907\n    test 683 _2_GRS80: a=6378137, f=0.0033528, f_=298.2572221, b=6356752.3141403\n    test 684 _2_Helmert1906: a=6378200, f=0.0033523, f_=298.3, b=6356818.1696279\n    test 685 _2_IAU76: a=6378140, f=0.0033528, f_=298.257, b=6356755.2881575\n    test 686 _2_IERS1989: a=6378136, f=0.0033528, f_=298.257, b=6356751.3015688\n    test 687 _2_IERS1992TOPEX: a=6378136.3, f=0.0033528, f_=298.2572236, b=6356751.6165922\n    test 688 _2_IERS2003: a=6378136.6, f=0.0033528, f_=298.25642, b=6356751.8579716\n    test 689 _2_Intl1924: a=6378388, f=0.003367, f_=297, b=6356911.9461279\n    test 690 _2_Intl1967: a=6378157.5, f=0.0033529, f_=298.2496154, b=6356772.2\n    test 691 _2_Krassovski1940: a=6378245, f=0.0033523, f_=298.3, b=6356863.0187731\n    test 692 _2_Krassowsky1940: a=6378245, f=0.0033523, f_=298.3, b=6356863.0187731\n    test 693 _2_Maupertuis1738: a=6397300, f=0.0052356, f_=191, b=6363806.2827225\n    test 694 _2_Mercury1960: a=6378166, f=0.0033523, f_=298.3, b=6356784.2836071\n    test 695 _2_Mercury1968Mod: a=6378150, f=0.0033523, f_=298.3, b=6356768.3372444\n    test 696 _2_NWL1965: a=6378145, f=0.0033529, f_=298.25, b=6356759.7694887\n    test 697 _2_OSU86F: a=6378136.2, f=0.0033528, f_=298.2572236, b=6356751.5169301\n    test 698 _2_OSU91A: a=6378136.3, f=0.0033528, f_=298.2572236, b=6356751.6165948\n    test 699 _2_Plessis1817: a=6376523, f=0.00324, f_=308.64, b=6355862.9332556\n    test 700 _2_Prolate: a=6356752.3142452, f=-0.0033641, f_=-297.2572236, b=6378137\n    test 701 _2_PZ90: a=6378136, f=0.0033528, f_=298.2578393, b=6356751.3617457\n    test 702 _2_SGS85: a=6378136, f=0.0033528, f_=298.257, b=6356751.3015688\n    test 703 _2_SoAmerican1969: a=6378160, f=0.0033529, f_=298.25, b=6356774.7191953\n    test 704 _2_Sphere: a=6371008.771415, f=0, f_=0, b=6371008.771415\n    test 705 _2_SphereAuthalic: a=6371000, f=0, f_=0, b=6371000\n    test 706 _2_SpherePopular: a=6378137, f=0, f_=0, b=6378137\n    test 707 _2_Struve1860: a=6378298.3, f=0.0033929, f_=294.73, b=6356657.1426696\n    test 708 _2_WGS60: a=6378165, f=0.0033523, f_=298.3, b=6356783.2869594\n    test 709 _2_WGS66: a=6378145, f=0.0033529, f_=298.25, b=6356759.7694887\n    test 710 _2_WGS72: a=6378135, f=0.0033528, f_=298.26, b=6356750.5200161\n    test 711 _2_WGS84: a=6378137, f=0.0033528, f_=298.2572236, b=6356752.3142452\n    test 712 _2_WGS84_NGS: a=6378137, f=0.0033528, f_=298.2572221, b=6356752.3141403\n\n    testa_f2Tuple(pygeodesy.ellipsoids, 26.03.25)\n    test 713 a_b_Airy1830: a=6377563.396, f=0.0033409, f_=299.3249646, b=6356256.9092373\n    test 714 a_b_AiryModified: a=6377340.189, f=0.0033409, f_=299.3249646, b=6356034.4479385\n    test 715 a_b_ATS1977: a=6378135, f=0.0033528, f_=298.257, b=6356750.3049216\n    test 716 a_b_Australia1966: a=6378160, f=0.0033529, f_=298.25, b=6356774.7191953\n    test 717 a_b_Bessel1841: a=6377397.155, f=0.0033428, f_=299.1528128, b=6356078.962818\n    test 718 a_b_BesselModified: a=6377492.018, f=0.0033428, f_=299.1528128, b=6356173.5087127\n    test 719 a_b_CGCS2000: a=6378137, f=0.0033528, f_=298.2572221, b=6356752.3141404\n    test 720 a_b_Clarke1866: a=6378206.4, f=0.0033901, f_=294.9786982, b=6356583.8\n    test 721 a_b_Clarke1880: a=6378249.145, f=0.0034076, f_=293.465, b=6356514.8695498\n    test 722 a_b_Clarke1880IGN: a=6378249.2, f=0.0034075, f_=293.4660213, b=6356515\n    test 723 a_b_Clarke1880Mod: a=6378249.145, f=0.0034075, f_=293.4663077, b=6356514.9663955\n    test 724 a_b_CPM1799: a=6375738.7, f=0.0029905, f_=334.39, b=6356671.9255749\n    test 725 a_b_Delambre1810: a=6376428, f=0.0032103, f_=311.5, b=6355957.9261637\n    test 726 a_b_Engelis1985: a=6378136.05, f=0.0033528, f_=298.2566, b=6356751.3227215\n    test 727 a_b_Everest1969: a=6377295.664, f=0.0033244, f_=300.8017, b=6356094.667915\n    test 728 a_b_Everest1975: a=6377299.151, f=0.0033244, f_=300.8017255, b=6356098.1451201\n    test 729 a_b_Fisher1968: a=6378150, f=0.0033523, f_=298.3, b=6356768.3372444\n    test 730 a_b_GEM10C: a=6378137, f=0.0033528, f_=298.2572236, b=6356752.3142478\n    test 731 a_b_GPES: a=6378135, f=0, f_=0, b=6378135\n    test 732 a_b_GRS67: a=6378160, f=0.0033529, f_=298.2471674, b=6356774.5160907\n    test 733 a_b_GRS80: a=6378137, f=0.0033528, f_=298.2572221, b=6356752.3141403\n    test 734 a_b_Helmert1906: a=6378200, f=0.0033523, f_=298.3, b=6356818.1696279\n    test 735 a_b_IAU76: a=6378140, f=0.0033528, f_=298.257, b=6356755.2881575\n    test 736 a_b_IERS1989: a=6378136, f=0.0033528, f_=298.257, b=6356751.3015688\n    test 737 a_b_IERS1992TOPEX: a=6378136.3, f=0.0033528, f_=298.2572236, b=6356751.6165922\n    test 738 a_b_IERS2003: a=6378136.6, f=0.0033528, f_=298.25642, b=6356751.8579716\n    test 739 a_b_Intl1924: a=6378388, f=0.003367, f_=297, b=6356911.9461279\n    test 740 a_b_Intl1967: a=6378157.5, f=0.0033529, f_=298.2496154, b=6356772.2\n    test 741 a_b_Krassovski1940: a=6378245, f=0.0033523, f_=298.3, b=6356863.0187731\n    test 742 a_b_Krassowsky1940: a=6378245, f=0.0033523, f_=298.3, b=6356863.0187731\n    test 743 a_b_Maupertuis1738: a=6397300, f=0.0052356, f_=191, b=6363806.2827225\n    test 744 a_b_Mercury1960: a=6378166, f=0.0033523, f_=298.3, b=6356784.2836071\n    test 745 a_b_Mercury1968Mod: a=6378150, f=0.0033523, f_=298.3, b=6356768.3372444\n    test 746 a_b_NWL1965: a=6378145, f=0.0033529, f_=298.25, b=6356759.7694887\n    test 747 a_b_OSU86F: a=6378136.2, f=0.0033528, f_=298.2572236, b=6356751.5169301\n    test 748 a_b_OSU91A: a=6378136.3, f=0.0033528, f_=298.2572236, b=6356751.6165948\n    test 749 a_b_Plessis1817: a=6376523, f=0.00324, f_=308.64, b=6355862.9332556\n    test 750 a_b_Prolate: a=6356752.3142452, f=-0.0033641, f_=-297.2572236, b=6378137\n    test 751 a_b_PZ90: a=6378136, f=0.0033528, f_=298.2578393, b=6356751.3617457\n    test 752 a_b_SGS85: a=6378136, f=0.0033528, f_=298.257, b=6356751.3015688\n    test 753 a_b_SoAmerican1969: a=6378160, f=0.0033529, f_=298.25, b=6356774.7191953\n    test 754 a_b_Sphere: a=6371008.771415, f=0, f_=0, b=6371008.771415\n    test 755 a_b_SphereAuthalic: a=6371000, f=0, f_=0, b=6371000\n    test 756 a_b_SpherePopular: a=6378137, f=0, f_=0, b=6378137\n    test 757 a_b_Struve1860: a=6378298.3, f=0.0033929, f_=294.73, b=6356657.1426696\n    test 758 a_b_WGS60: a=6378165, f=0.0033523, f_=298.3, b=6356783.2869594\n    test 759 a_b_WGS66: a=6378145, f=0.0033529, f_=298.25, b=6356759.7694887\n    test 760 a_b_WGS72: a=6378135, f=0.0033528, f_=298.26, b=6356750.5200161\n    test 761 a_b_WGS84: a=6378137, f=0.0033528, f_=298.2572236, b=6356752.3142452\n    test 762 a_b_WGS84_NGS: a=6378137, f=0.0033528, f_=298.2572221, b=6356752.3141403\n    test 763 _a_f_ellipsoid: a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518\n    test 764 _toEllipsoid2: a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518\n\n    testFunctions(pygeodesy.ellipsoids, 26.03.25)\n\n    test 765 a_b2f_(Airy1830): 299.32496460\n    test 766 a_b2f2(Airy1830): 0.00335205\n    test 767 a_b2n(Airy1830): 0.00167322\n    test 768 b_f2a(Airy1830): 6377563.396\n    test 769 b_f_2a(Airy1830): 6377563.396\n    test 770 f_2f(Airy1830): 0.00334085\n    test 771 e2f(Airy1830): 0.00334085\n    test 772 n2e2(Airy1830): 0.00667054\n    test 773 n2f(Airy1830): 0.00334085\n\n    test 774 a_b2f_(AiryModified): 299.32496460\n    test 775 a_b2f2(AiryModified): 0.00335205\n    test 776 a_b2n(AiryModified): 0.00167322\n    test 777 b_f2a(AiryModified): 6377340.189\n    test 778 b_f_2a(AiryModified): 6377340.189\n    test 779 f_2f(AiryModified): 0.00334085\n    test 780 e2f(AiryModified): 0.00334085\n    test 781 n2e2(AiryModified): 0.00667054\n    test 782 n2f(AiryModified): 0.00334085\n\n    test 783 a_b2f_(ATS1977): 298.25700000\n    test 784 a_b2f2(ATS1977): 0.00336409\n    test 785 a_b2n(ATS1977): 0.00167922\n    test 786 b_f2a(ATS1977): 6378135.000\n    test 787 b_f_2a(ATS1977): 6378135.000\n    test 788 f_2f(ATS1977): 0.00335281\n    test 789 e2f(ATS1977): 0.00335281\n    test 790 n2e2(ATS1977): 0.00669438\n    test 791 n2f(ATS1977): 0.00335281\n\n    test 792 a_b2f_(Australia1966): 298.25000000\n    test 793 a_b2f2(Australia1966): 0.00336417\n    test 794 a_b2n(Australia1966): 0.00167926\n    test 795 b_f2a(Australia1966): 6378160.000\n    test 796 b_f_2a(Australia1966): 6378160.000\n    test 797 f_2f(Australia1966): 0.00335289\n    test 798 e2f(Australia1966): 0.00335289\n    test 799 n2e2(Australia1966): 0.00669454\n    test 800 n2f(Australia1966): 0.00335289\n\n    test 801 a_b2f_(Bessel1841): 299.15281280\n    test 802 a_b2f2(Bessel1841): 0.00335398\n    test 803 a_b2n(Bessel1841): 0.00167418\n    test 804 b_f2a(Bessel1841): 6377397.155\n    test 805 b_f_2a(Bessel1841): 6377397.155\n    test 806 f_2f(Bessel1841): 0.00334277\n    test 807 e2f(Bessel1841): 0.00334277\n    test 808 n2e2(Bessel1841): 0.00667437\n    test 809 n2f(Bessel1841): 0.00334277\n\n    test 810 a_b2f_(BesselModified): 299.15281280\n    test 811 a_b2f2(BesselModified): 0.00335398\n    test 812 a_b2n(BesselModified): 0.00167418\n    test 813 b_f2a(BesselModified): 6377492.018\n    test 814 b_f_2a(BesselModified): 6377492.018\n    test 815 f_2f(BesselModified): 0.00334277\n    test 816 e2f(BesselModified): 0.00334277\n    test 817 n2e2(BesselModified): 0.00667437\n    test 818 n2f(BesselModified): 0.00334277\n\n    test 819 a_b2f_(CGCS2000): 298.25722210\n    test 820 a_b2f2(CGCS2000): 0.00336409\n    test 821 a_b2n(CGCS2000): 0.00167922\n    test 822 b_f2a(CGCS2000): 6378137.000\n    test 823 b_f_2a(CGCS2000): 6378137.000\n    test 824 f_2f(CGCS2000): 0.00335281\n    test 825 e2f(CGCS2000): 0.00335281\n    test 826 n2e2(CGCS2000): 0.00669438\n    test 827 n2f(CGCS2000): 0.00335281\n\n    test 828 a_b2f_(Clarke1866): 294.97869821\n    test 829 a_b2f2(Clarke1866): 0.00340161\n    test 830 a_b2n(Clarke1866): 0.00169792\n    test 831 b_f2a(Clarke1866): 6378206.400\n    test 832 b_f_2a(Clarke1866): 6378206.400\n    test 833 f_2f(Clarke1866): 0.00339008\n    test 834 e2f(Clarke1866): 0.00339008\n    test 835 n2e2(Clarke1866): 0.00676866\n    test 836 n2f(Clarke1866): 0.00339008\n\n    test 837 a_b2f_(Clarke1880): 293.46500000\n    test 838 a_b2f2(Clarke1880): 0.00341921\n    test 839 a_b2n(Clarke1880): 0.00170669\n    test 840 b_f2a(Clarke1880): 6378249.145\n    test 841 b_f_2a(Clarke1880): 6378249.145\n    test 842 f_2f(Clarke1880): 0.00340756\n    test 843 e2f(Clarke1880): 0.00340756\n    test 844 n2e2(Clarke1880): 0.00680351\n    test 845 n2f(Clarke1880): 0.00340756\n\n    test 846 a_b2f_(Clarke1880IGN): 293.46602129\n    test 847 a_b2f2(Clarke1880IGN): 0.00341920\n    test 848 a_b2n(Clarke1880IGN): 0.00170668\n    test 849 b_f2a(Clarke1880IGN): 6378249.200\n    test 850 b_f_2a(Clarke1880IGN): 6378249.200\n    test 851 f_2f(Clarke1880IGN): 0.00340755\n    test 852 e2f(Clarke1880IGN): 0.00340755\n    test 853 n2e2(Clarke1880IGN): 0.00680349\n    test 854 n2f(Clarke1880IGN): 0.00340755\n\n    test 855 a_b2f_(Clarke1880Mod): 293.46630766\n    test 856 a_b2f2(Clarke1880Mod): 0.00341920\n    test 857 a_b2n(Clarke1880Mod): 0.00170668\n    test 858 b_f2a(Clarke1880Mod): 6378249.145\n    test 859 b_f_2a(Clarke1880Mod): 6378249.145\n    test 860 f_2f(Clarke1880Mod): 0.00340755\n    test 861 e2f(Clarke1880Mod): 0.00340755\n    test 862 n2e2(Clarke1880Mod): 0.00680348\n    test 863 n2f(Clarke1880Mod): 0.00340755\n\n    test 864 a_b2f_(CPM1799): 334.39000000\n    test 865 a_b2f2(CPM1799): 0.00299949\n    test 866 a_b2n(CPM1799): 0.00149750\n    test 867 b_f2a(CPM1799): 6375738.700\n    test 868 b_f_2a(CPM1799): 6375738.700\n    test 869 f_2f(CPM1799): 0.00299052\n    test 870 e2f(CPM1799): 0.00299052\n    test 871 n2e2(CPM1799): 0.00597210\n    test 872 n2f(CPM1799): 0.00299052\n\n    test 873 a_b2f_(Delambre1810): 311.50000000\n    test 874 a_b2f2(Delambre1810): 0.00322061\n    test 875 a_b2n(Delambre1810): 0.00160772\n    test 876 b_f2a(Delambre1810): 6376428.000\n    test 877 b_f_2a(Delambre1810): 6376428.000\n    test 878 f_2f(Delambre1810): 0.00321027\n    test 879 e2f(Delambre1810): 0.00321027\n    test 880 n2e2(Delambre1810): 0.00641024\n    test 881 n2f(Delambre1810): 0.00321027\n\n    test 882 a_b2f_(Engelis1985): 298.25660000\n    test 883 a_b2f2(Engelis1985): 0.00336410\n    test 884 a_b2n(Engelis1985): 0.00167922\n    test 885 b_f2a(Engelis1985): 6378136.050\n    test 886 b_f_2a(Engelis1985): 6378136.050\n    test 887 f_2f(Engelis1985): 0.00335282\n    test 888 e2f(Engelis1985): 0.00335282\n    test 889 n2e2(Engelis1985): 0.00669439\n    test 890 n2f(Engelis1985): 0.00335282\n\n    test 891 a_b2f_(Everest1969): 300.80170000\n    test 892 a_b2f2(Everest1969): 0.00333554\n    test 893 a_b2n(Everest1969): 0.00166499\n    test 894 b_f2a(Everest1969): 6377295.664\n    test 895 b_f_2a(Everest1969): 6377295.664\n    test 896 f_2f(Everest1969): 0.00332445\n    test 897 e2f(Everest1969): 0.00332445\n    test 898 n2e2(Everest1969): 0.00663785\n    test 899 n2f(Everest1969): 0.00332445\n\n    test 900 a_b2f_(Everest1975): 300.80172550\n    test 901 a_b2f2(Everest1975): 0.00333554\n    test 902 a_b2n(Everest1975): 0.00166499\n    test 903 b_f2a(Everest1975): 6377299.151\n    test 904 b_f_2a(Everest1975): 6377299.151\n    test 905 f_2f(Everest1975): 0.00332445\n    test 906 e2f(Everest1975): 0.00332445\n    test 907 n2e2(Everest1975): 0.00663785\n    test 908 n2f(Everest1975): 0.00332445\n\n    test 909 a_b2f_(Fisher1968): 298.30000000\n    test 910 a_b2f2(Fisher1968): 0.00336361\n    test 911 a_b2n(Fisher1968): 0.00167898\n    test 912 b_f2a(Fisher1968): 6378150.000\n    test 913 b_f_2a(Fisher1968): 6378150.000\n    test 914 f_2f(Fisher1968): 0.00335233\n    test 915 e2f(Fisher1968): 0.00335233\n    test 916 n2e2(Fisher1968): 0.00669342\n    test 917 n2f(Fisher1968): 0.00335233\n\n    test 918 a_b2f_(GEM10C): 298.25722360\n    test 919 a_b2f2(GEM10C): 0.00336409\n    test 920 a_b2n(GEM10C): 0.00167922\n    test 921 b_f2a(GEM10C): 6378137.000\n    test 922 b_f_2a(GEM10C): 6378137.000\n    test 923 f_2f(GEM10C): 0.00335281\n    test 924 e2f(GEM10C): 0.00335281\n    test 925 n2e2(GEM10C): 0.00669438\n    test 926 n2f(GEM10C): 0.00335281\n\n    test 927 a_b2f_(GPES): 0.00000000\n    test 928 a_b2f2(GPES): 0.00000000\n    test 929 a_b2n(GPES): 0.00000000\n    test 930 b_f2a(GPES): 6378135.000\n    test 931 b_f_2a(GPES): 6378135.000\n    test 932 f_2f(GPES): 0.00000000\n    test 933 e2f(GPES): 0.00000000\n    test 934 n2e2(GPES): 0.00000000\n    test 935 n2f(GPES): 0.00000000\n\n    test 936 a_b2f_(GRS67): 298.24716743\n    test 937 a_b2f2(GRS67): 0.00336420\n    test 938 a_b2n(GRS67): 0.00167928\n    test 939 b_f2a(GRS67): 6378160.000\n    test 940 b_f_2a(GRS67): 6378160.000\n    test 941 f_2f(GRS67): 0.00335292\n    test 942 e2f(GRS67): 0.00335292\n    test 943 n2e2(GRS67): 0.00669461\n    test 944 n2f(GRS67): 0.00335292\n\n    test 945 a_b2f_(GRS80): 298.25722210\n    test 946 a_b2f2(GRS80): 0.00336409\n    test 947 a_b2n(GRS80): 0.00167922\n    test 948 b_f2a(GRS80): 6378137.000\n    test 949 b_f_2a(GRS80): 6378137.000\n    test 950 f_2f(GRS80): 0.00335281\n    test 951 e2f(GRS80): 0.00335281\n    test 952 n2e2(GRS80): 0.00669438\n    test 953 n2f(GRS80): 0.00335281\n\n    test 954 a_b2f_(Helmert1906): 298.30000000\n    test 955 a_b2f2(Helmert1906): 0.00336361\n    test 956 a_b2n(Helmert1906): 0.00167898\n    test 957 b_f2a(Helmert1906): 6378200.000\n    test 958 b_f_2a(Helmert1906): 6378200.000\n    test 959 f_2f(Helmert1906): 0.00335233\n    test 960 e2f(Helmert1906): 0.00335233\n    test 961 n2e2(Helmert1906): 0.00669342\n    test 962 n2f(Helmert1906): 0.00335233\n\n    test 963 a_b2f_(IAU76): 298.25700000\n    test 964 a_b2f2(IAU76): 0.00336409\n    test 965 a_b2n(IAU76): 0.00167922\n    test 966 b_f2a(IAU76): 6378140.000\n    test 967 b_f_2a(IAU76): 6378140.000\n    test 968 f_2f(IAU76): 0.00335281\n    test 969 e2f(IAU76): 0.00335281\n    test 970 n2e2(IAU76): 0.00669438\n    test 971 n2f(IAU76): 0.00335281\n\n    test 972 a_b2f_(IERS1989): 298.25700000\n    test 973 a_b2f2(IERS1989): 0.00336409\n    test 974 a_b2n(IERS1989): 0.00167922\n    test 975 b_f2a(IERS1989): 6378136.000\n    test 976 b_f_2a(IERS1989): 6378136.000\n    test 977 f_2f(IERS1989): 0.00335281\n    test 978 e2f(IERS1989): 0.00335281\n    test 979 n2e2(IERS1989): 0.00669438\n    test 980 n2f(IERS1989): 0.00335281\n\n    test 981 a_b2f_(IERS1992TOPEX): 298.25722356\n    test 982 a_b2f2(IERS1992TOPEX): 0.00336409\n    test 983 a_b2n(IERS1992TOPEX): 0.00167922\n    test 984 b_f2a(IERS1992TOPEX): 6378136.300\n    test 985 b_f_2a(IERS1992TOPEX): 6378136.300\n    test 986 f_2f(IERS1992TOPEX): 0.00335281\n    test 987 e2f(IERS1992TOPEX): 0.00335281\n    test 988 n2e2(IERS1992TOPEX): 0.00669438\n    test 989 n2f(IERS1992TOPEX): 0.00335281\n\n    test 990 a_b2f_(IERS2003): 298.25642000\n    test 991 a_b2f2(IERS2003): 0.00336410\n    test 992 a_b2n(IERS2003): 0.00167922\n    test 993 b_f2a(IERS2003): 6378136.600\n    test 994 b_f_2a(IERS2003): 6378136.600\n    test 995 f_2f(IERS2003): 0.00335282\n    test 996 e2f(IERS2003): 0.00335282\n    test 997 n2e2(IERS2003): 0.00669440\n    test 998 n2f(IERS2003): 0.00335282\n\n    test 999 a_b2f_(Intl1924): 297.00000000\n    test 1000 a_b2f2(Intl1924): 0.00337838\n    test 1001 a_b2n(Intl1924): 0.00168634\n    test 1002 b_f2a(Intl1924): 6378388.000\n    test 1003 b_f_2a(Intl1924): 6378388.000\n    test 1004 f_2f(Intl1924): 0.00336700\n    test 1005 e2f(Intl1924): 0.00336700\n    test 1006 n2e2(Intl1924): 0.00672267\n    test 1007 n2f(Intl1924): 0.00336700\n\n    test 1008 a_b2f_(Intl1967): 298.24961539\n    test 1009 a_b2f2(Intl1967): 0.00336418\n    test 1010 a_b2n(Intl1967): 0.00167926\n    test 1011 b_f2a(Intl1967): 6378157.500\n    test 1012 b_f_2a(Intl1967): 6378157.500\n    test 1013 f_2f(Intl1967): 0.00335290\n    test 1014 e2f(Intl1967): 0.00335290\n    test 1015 n2e2(Intl1967): 0.00669455\n    test 1016 n2f(Intl1967): 0.00335290\n\n    test 1017 a_b2f_(Krassovski1940): 298.30000000\n    test 1018 a_b2f2(Krassovski1940): 0.00336361\n    test 1019 a_b2n(Krassovski1940): 0.00167898\n    test 1020 b_f2a(Krassovski1940): 6378245.000\n    test 1021 b_f_2a(Krassovski1940): 6378245.000\n    test 1022 f_2f(Krassovski1940): 0.00335233\n    test 1023 e2f(Krassovski1940): 0.00335233\n    test 1024 n2e2(Krassovski1940): 0.00669342\n    test 1025 n2f(Krassovski1940): 0.00335233\n\n    test 1026 a_b2f_(Krassowsky1940): 298.30000000\n    test 1027 a_b2f2(Krassowsky1940): 0.00336361\n    test 1028 a_b2n(Krassowsky1940): 0.00167898\n    test 1029 b_f2a(Krassowsky1940): 6378245.000\n    test 1030 b_f_2a(Krassowsky1940): 6378245.000\n    test 1031 f_2f(Krassowsky1940): 0.00335233\n    test 1032 e2f(Krassowsky1940): 0.00335233\n    test 1033 n2e2(Krassowsky1940): 0.00669342\n    test 1034 n2f(Krassowsky1940): 0.00335233\n\n    test 1035 a_b2f_(Maupertuis1738): 191.00000000\n    test 1036 a_b2f2(Maupertuis1738): 0.00526316\n    test 1037 a_b2n(Maupertuis1738): 0.00262467\n    test 1038 b_f2a(Maupertuis1738): 6397300.000\n    test 1039 b_f_2a(Maupertuis1738): 6397300.000\n    test 1040 f_2f(Maupertuis1738): 0.00523560\n    test 1041 e2f(Maupertuis1738): 0.00523560\n    test 1042 n2e2(Maupertuis1738): 0.01044379\n    test 1043 n2f(Maupertuis1738): 0.00523560\n\n    test 1044 a_b2f_(Mercury1960): 298.30000000\n    test 1045 a_b2f2(Mercury1960): 0.00336361\n    test 1046 a_b2n(Mercury1960): 0.00167898\n    test 1047 b_f2a(Mercury1960): 6378166.000\n    test 1048 b_f_2a(Mercury1960): 6378166.000\n    test 1049 f_2f(Mercury1960): 0.00335233\n    test 1050 e2f(Mercury1960): 0.00335233\n    test 1051 n2e2(Mercury1960): 0.00669342\n    test 1052 n2f(Mercury1960): 0.00335233\n\n    test 1053 a_b2f_(Mercury1968Mod): 298.30000000\n    test 1054 a_b2f2(Mercury1968Mod): 0.00336361\n    test 1055 a_b2n(Mercury1968Mod): 0.00167898\n    test 1056 b_f2a(Mercury1968Mod): 6378150.000\n    test 1057 b_f_2a(Mercury1968Mod): 6378150.000\n    test 1058 f_2f(Mercury1968Mod): 0.00335233\n    test 1059 e2f(Mercury1968Mod): 0.00335233\n    test 1060 n2e2(Mercury1968Mod): 0.00669342\n    test 1061 n2f(Mercury1968Mod): 0.00335233\n\n    test 1062 a_b2f_(NWL1965): 298.25000000\n    test 1063 a_b2f2(NWL1965): 0.00336417\n    test 1064 a_b2n(NWL1965): 0.00167926\n    test 1065 b_f2a(NWL1965): 6378145.000\n    test 1066 b_f_2a(NWL1965): 6378145.000\n    test 1067 f_2f(NWL1965): 0.00335289\n    test 1068 e2f(NWL1965): 0.00335289\n    test 1069 n2e2(NWL1965): 0.00669454\n    test 1070 n2f(NWL1965): 0.00335289\n\n    test 1071 a_b2f_(OSU86F): 298.25722360\n    test 1072 a_b2f2(OSU86F): 0.00336409\n    test 1073 a_b2n(OSU86F): 0.00167922\n    test 1074 b_f2a(OSU86F): 6378136.200\n    test 1075 b_f_2a(OSU86F): 6378136.200\n    test 1076 f_2f(OSU86F): 0.00335281\n    test 1077 e2f(OSU86F): 0.00335281\n    test 1078 n2e2(OSU86F): 0.00669438\n    test 1079 n2f(OSU86F): 0.00335281\n\n    test 1080 a_b2f_(OSU91A): 298.25722360\n    test 1081 a_b2f2(OSU91A): 0.00336409\n    test 1082 a_b2n(OSU91A): 0.00167922\n    test 1083 b_f2a(OSU91A): 6378136.300\n    test 1084 b_f_2a(OSU91A): 6378136.300\n    test 1085 f_2f(OSU91A): 0.00335281\n    test 1086 e2f(OSU91A): 0.00335281\n    test 1087 n2e2(OSU91A): 0.00669438\n    test 1088 n2f(OSU91A): 0.00335281\n\n    test 1089 a_b2f_(Plessis1817): 308.64000000\n    test 1090 a_b2f2(Plessis1817): 0.00325055\n    test 1091 a_b2n(Plessis1817): 0.00162264\n    test 1092 b_f2a(Plessis1817): 6376523.000\n    test 1093 b_f_2a(Plessis1817): 6376523.000\n    test 1094 f_2f(Plessis1817): 0.00324002\n    test 1095 e2f(Plessis1817): 0.00324002\n    test 1096 n2e2(Plessis1817): 0.00646954\n    test 1097 n2f(Plessis1817): 0.00324002\n\n    test 1098 a_b2f_(Prolate): -297.25722356\n    test 1099 a_b2f2(Prolate): -0.00335281\n    test 1100 a_b2n(Prolate): -0.00167922\n    test 1101 b_f2a(Prolate): 6356752.314\n    test 1102 b_f_2a(Prolate): 6356752.314\n    test 1103 f_2f(Prolate): -0.00336409\n    test 1104 e2f(Prolate): 0.00337545  FAILED, KNOWN, expected -0.00336409\n    test 1105 n2e2(Prolate): -0.00673950\n    test 1106 n2f(Prolate): -0.00336409\n\n    test 1107 a_b2f_(PZ90): 298.25783930\n    test 1108 a_b2f2(PZ90): 0.00336408\n    test 1109 a_b2n(PZ90): 0.00167922\n    test 1110 b_f2a(PZ90): 6378136.000\n    test 1111 b_f_2a(PZ90): 6378136.000\n    test 1112 f_2f(PZ90): 0.00335280\n    test 1113 e2f(PZ90): 0.00335280\n    test 1114 n2e2(PZ90): 0.00669437\n    test 1115 n2f(PZ90): 0.00335280\n\n    test 1116 a_b2f_(SGS85): 298.25700000\n    test 1117 a_b2f2(SGS85): 0.00336409\n    test 1118 a_b2n(SGS85): 0.00167922\n    test 1119 b_f2a(SGS85): 6378136.000\n    test 1120 b_f_2a(SGS85): 6378136.000\n    test 1121 f_2f(SGS85): 0.00335281\n    test 1122 e2f(SGS85): 0.00335281\n    test 1123 n2e2(SGS85): 0.00669438\n    test 1124 n2f(SGS85): 0.00335281\n\n    test 1125 a_b2f_(SoAmerican1969): 298.25000000\n    test 1126 a_b2f2(SoAmerican1969): 0.00336417\n    test 1127 a_b2n(SoAmerican1969): 0.00167926\n    test 1128 b_f2a(SoAmerican1969): 6378160.000\n    test 1129 b_f_2a(SoAmerican1969): 6378160.000\n    test 1130 f_2f(SoAmerican1969): 0.00335289\n    test 1131 e2f(SoAmerican1969): 0.00335289\n    test 1132 n2e2(SoAmerican1969): 0.00669454\n    test 1133 n2f(SoAmerican1969): 0.00335289\n\n    test 1134 a_b2f_(Sphere): 0.00000000\n    test 1135 a_b2f2(Sphere): 0.00000000\n    test 1136 a_b2n(Sphere): 0.00000000\n    test 1137 b_f2a(Sphere): 6371008.771\n    test 1138 b_f_2a(Sphere): 6371008.771\n    test 1139 f_2f(Sphere): 0.00000000\n    test 1140 e2f(Sphere): 0.00000000\n    test 1141 n2e2(Sphere): 0.00000000\n    test 1142 n2f(Sphere): 0.00000000\n\n    test 1143 a_b2f_(SphereAuthalic): 0.00000000\n    test 1144 a_b2f2(SphereAuthalic): 0.00000000\n    test 1145 a_b2n(SphereAuthalic): 0.00000000\n    test 1146 b_f2a(SphereAuthalic): 6371000.000\n    test 1147 b_f_2a(SphereAuthalic): 6371000.000\n    test 1148 f_2f(SphereAuthalic): 0.00000000\n    test 1149 e2f(SphereAuthalic): 0.00000000\n    test 1150 n2e2(SphereAuthalic): 0.00000000\n    test 1151 n2f(SphereAuthalic): 0.00000000\n\n    test 1152 a_b2f_(SpherePopular): 0.00000000\n    test 1153 a_b2f2(SpherePopular): 0.00000000\n    test 1154 a_b2n(SpherePopular): 0.00000000\n    test 1155 b_f2a(SpherePopular): 6378137.000\n    test 1156 b_f_2a(SpherePopular): 6378137.000\n    test 1157 f_2f(SpherePopular): 0.00000000\n    test 1158 e2f(SpherePopular): 0.00000000\n    test 1159 n2e2(SpherePopular): 0.00000000\n    test 1160 n2f(SpherePopular): 0.00000000\n\n    test 1161 a_b2f_(Struve1860): 294.73000000\n    test 1162 a_b2f2(Struve1860): 0.00340449\n    test 1163 a_b2n(Struve1860): 0.00169935\n    test 1164 b_f2a(Struve1860): 6378298.300\n    test 1165 b_f_2a(Struve1860): 6378298.300\n    test 1166 f_2f(Struve1860): 0.00339294\n    test 1167 e2f(Struve1860): 0.00339294\n    test 1168 n2e2(Struve1860): 0.00677436\n    test 1169 n2f(Struve1860): 0.00339294\n\n    test 1170 a_b2f_(WGS60): 298.30000000\n    test 1171 a_b2f2(WGS60): 0.00336361\n    test 1172 a_b2n(WGS60): 0.00167898\n    test 1173 b_f2a(WGS60): 6378165.000\n    test 1174 b_f_2a(WGS60): 6378165.000\n    test 1175 f_2f(WGS60): 0.00335233\n    test 1176 e2f(WGS60): 0.00335233\n    test 1177 n2e2(WGS60): 0.00669342\n    test 1178 n2f(WGS60): 0.00335233\n\n    test 1179 a_b2f_(WGS66): 298.25000000\n    test 1180 a_b2f2(WGS66): 0.00336417\n    test 1181 a_b2n(WGS66): 0.00167926\n    test 1182 b_f2a(WGS66): 6378145.000\n    test 1183 b_f_2a(WGS66): 6378145.000\n    test 1184 f_2f(WGS66): 0.00335289\n    test 1185 e2f(WGS66): 0.00335289\n    test 1186 n2e2(WGS66): 0.00669454\n    test 1187 n2f(WGS66): 0.00335289\n\n    test 1188 a_b2f_(WGS72): 298.26000000\n    test 1189 a_b2f2(WGS72): 0.00336406\n    test 1190 a_b2n(WGS72): 0.00167920\n    test 1191 b_f2a(WGS72): 6378135.000\n    test 1192 b_f_2a(WGS72): 6378135.000\n    test 1193 f_2f(WGS72): 0.00335278\n    test 1194 e2f(WGS72): 0.00335278\n    test 1195 n2e2(WGS72): 0.00669432\n    test 1196 n2f(WGS72): 0.00335278\n\n    test 1197 a_b2f_(WGS84): 298.25722356\n    test 1198 a_b2f2(WGS84): 0.00336409\n    test 1199 a_b2n(WGS84): 0.00167922\n    test 1200 b_f2a(WGS84): 6378137.000\n    test 1201 b_f_2a(WGS84): 6378137.000\n    test 1202 f_2f(WGS84): 0.00335281\n    test 1203 e2f(WGS84): 0.00335281\n    test 1204 n2e2(WGS84): 0.00669438\n    test 1205 n2f(WGS84): 0.00335281\n\n    test 1206 a_b2f_(WGS84_NGS): 298.25722210\n    test 1207 a_b2f2(WGS84_NGS): 0.00336409\n    test 1208 a_b2n(WGS84_NGS): 0.00167922\n    test 1209 b_f2a(WGS84_NGS): 6378137.000\n    test 1210 b_f_2a(WGS84_NGS): 6378137.000\n    test 1211 f_2f(WGS84_NGS): 0.00335281\n    test 1212 e2f(WGS84_NGS): 0.00335281\n    test 1213 n2e2(WGS84_NGS): 0.00669438\n    test 1214 n2f(WGS84_NGS): 0.00335281\n\n    test 1215 total: 50\n\n    testWGS84(pygeodesy.ellipsoids, 26.03.25)\n    test 1216 roc1_ 0: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1217 roc1_ 0: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1218 roc1_ 5: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1219 roc1_ 5: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1220 roc1_ 10: 9.31322574615e-10  FAILED, KNOWN, expected 1.863e-09\n    test 1221 roc1_ 10: 9.31322574615e-10  FAILED, KNOWN, expected 1.863e-09\n    test 1222 roc1_ 15: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1223 roc1_ 15: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1224 roc1_ 20: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1225 roc1_ 20: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1226 roc1_ 25: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1227 roc1_ 25: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1228 roc1_ 30: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1229 roc1_ 30: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1230 roc1_ 35: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1231 roc1_ 35: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1232 roc1_ 40: 9.31322574615e-10  FAILED, KNOWN, expected 1.863e-09\n    test 1233 roc1_ 40: 9.31322574615e-10  FAILED, KNOWN, expected 1.863e-09\n    test 1234 roc1_ 45: 9.31322574615e-10  FAILED, KNOWN, expected 1.863e-09\n    test 1235 roc1_ 45: 9.31322574615e-10  FAILED, KNOWN, expected 1.863e-09\n    test 1236 roc1_ 50: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1237 roc1_ 50: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1238 roc1_ 55: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1239 roc1_ 55: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1240 roc1_ 60: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1241 roc1_ 60: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1242 roc1_ 65: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1243 roc1_ 65: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1244 roc1_ 70: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1245 roc1_ 70: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1246 roc1_ 75: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1247 roc1_ 75: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1248 roc1_ 80: 9.31322574615e-10  FAILED, KNOWN, expected 1.863e-09\n    test 1249 roc1_ 80: 9.31322574615e-10  FAILED, KNOWN, expected 1.863e-09\n    test 1250 roc1_ 85: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1251 roc1_ 85: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1252 roc1_ 90: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1253 roc1_ 90: 0.0  FAILED, KNOWN, expected 1.863e-09\n\n    testProlate(pygeodesy.ellipsoids, 26.03.25)\n    test 1254 roc1_ 0: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1255 roc1_ 0: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1256 roc1_ 5: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1257 roc1_ 5: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1258 roc1_ 10: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1259 roc1_ 10: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1260 roc1_ 15: 9.31322574615e-10  FAILED, KNOWN, expected 1.863e-09\n    test 1261 roc1_ 15: 9.31322574615e-10  FAILED, KNOWN, expected 1.863e-09\n    test 1262 roc1_ 20: 9.31322574615e-10  FAILED, KNOWN, expected 1.863e-09\n    test 1263 roc1_ 20: 9.31322574615e-10  FAILED, KNOWN, expected 1.863e-09\n    test 1264 roc1_ 25: 9.31322574615e-10  FAILED, KNOWN, expected 1.863e-09\n    test 1265 roc1_ 25: 9.31322574615e-10  FAILED, KNOWN, expected 1.863e-09\n    test 1266 roc1_ 30: 1.86264514923e-09  FAILED, KNOWN, expected 1.863e-09\n    test 1267 roc1_ 30: 1.86264514923e-09  FAILED, KNOWN, expected 1.863e-09\n    test 1268 roc1_ 35: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1269 roc1_ 35: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1270 roc1_ 40: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1271 roc1_ 40: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1272 roc1_ 45: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1273 roc1_ 45: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1274 roc1_ 50: 9.31322574615e-10  FAILED, KNOWN, expected 1.863e-09\n    test 1275 roc1_ 50: 9.31322574615e-10  FAILED, KNOWN, expected 1.863e-09\n    test 1276 roc1_ 55: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1277 roc1_ 55: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1278 roc1_ 60: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1279 roc1_ 60: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1280 roc1_ 65: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1281 roc1_ 65: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1282 roc1_ 70: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1283 roc1_ 70: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1284 roc1_ 75: 9.31322574615e-10  FAILED, KNOWN, expected 1.863e-09\n    test 1285 roc1_ 75: 9.31322574615e-10  FAILED, KNOWN, expected 1.863e-09\n    test 1286 roc1_ 80: 9.31322574615e-10  FAILED, KNOWN, expected 1.863e-09\n    test 1287 roc1_ 80: 9.31322574615e-10  FAILED, KNOWN, expected 1.863e-09\n    test 1288 roc1_ 85: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1289 roc1_ 85: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1290 roc1_ 90: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1291 roc1_ 90: 0.0  FAILED, KNOWN, expected 1.863e-09\n\n    testSphereAuthalic(pygeodesy.ellipsoids, 26.03.25)\n    test 1292 roc1_ 0: 0.0\n    test 1293 roc1_ 0: 0.0\n    test 1294 roc1_ 5: 0.0\n    test 1295 roc1_ 5: 0.0\n    test 1296 roc1_ 10: 0.0\n    test 1297 roc1_ 10: 0.0\n    test 1298 roc1_ 15: 0.0\n    test 1299 roc1_ 15: 0.0\n    test 1300 roc1_ 20: 0.0\n    test 1301 roc1_ 20: 0.0\n    test 1302 roc1_ 25: 0.0\n    test 1303 roc1_ 25: 0.0\n    test 1304 roc1_ 30: 0.0\n    test 1305 roc1_ 30: 0.0\n    test 1306 roc1_ 35: 0.0\n    test 1307 roc1_ 35: 0.0\n    test 1308 roc1_ 40: 0.0\n    test 1309 roc1_ 40: 0.0\n    test 1310 roc1_ 45: 0.0\n    test 1311 roc1_ 45: 0.0\n    test 1312 roc1_ 50: 0.0\n    test 1313 roc1_ 50: 0.0\n    test 1314 roc1_ 55: 0.0\n    test 1315 roc1_ 55: 0.0\n    test 1316 roc1_ 60: 0.0\n    test 1317 roc1_ 60: 0.0\n    test 1318 roc1_ 65: 0.0\n    test 1319 roc1_ 65: 0.0\n    test 1320 roc1_ 70: 0.0\n    test 1321 roc1_ 70: 0.0\n    test 1322 roc1_ 75: 0.0\n    test 1323 roc1_ 75: 0.0\n    test 1324 roc1_ 80: 0.0\n    test 1325 roc1_ 80: 0.0\n    test 1326 roc1_ 85: 0.0\n    test 1327 roc1_ 85: 0.0\n    test 1328 roc1_ 90: 0.0\n    test 1329 roc1_ 90: 0.0\n\n    testcircle4(pygeodesy.ellipsoids, 26.03.25)\n\n    testWGS84(pygeodesy.ellipsoids, 26.03.25)\n    test 1330 circle4 0: 6378137.000000\n    test 1331 circle4 0: 6378137.000000\n    test 1332 circle4 10: 6377497.402124\n    test 1333 circle4 10: 6377497.402124\n    test 1334 circle4 20: 6375653.951276\n    test 1335 circle4 20: 6375653.951276\n    test 1336 circle4 30: 6372824.420294\n    test 1337 circle4 30: 6372824.420294\n    test 1338 circle4 40: 6369344.863240\n    test 1339 circle4 40: 6369344.863240\n    test 1340 circle4 50: 6365631.517537\n    test 1341 circle4 50: 6365631.517537\n    test 1342 circle4 60: 6362132.224397\n    test 1343 circle4 60: 6362132.224397\n    test 1344 circle4 70: 6359272.455642\n    test 1345 circle4 70: 6359272.455642\n    test 1346 circle4 80: 6357402.413808\n    test 1347 circle4 80: 6357402.413808\n    test 1348 circle4 90: 6356752.314245\n    test 1349 circle4 90: 6356752.314245\n\n    testSphere(pygeodesy.ellipsoids, 26.03.25)\n    test 1350 circle4 0: 6371008.771415\n    test 1351 circle4 0: 6371008.771415\n    test 1352 circle4 10: 6371008.771415\n    test 1353 circle4 10: 6371008.771415\n    test 1354 circle4 20: 6371008.771415\n    test 1355 circle4 20: 6371008.771415\n    test 1356 circle4 30: 6371008.771415\n    test 1357 circle4 30: 6371008.771415\n    test 1358 circle4 40: 6371008.771415\n    test 1359 circle4 40: 6371008.771415\n    test 1360 circle4 50: 6371008.771415\n    test 1361 circle4 50: 6371008.771415\n    test 1362 circle4 60: 6371008.771415\n    test 1363 circle4 60: 6371008.771415\n    test 1364 circle4 70: 6371008.771415\n    test 1365 circle4 70: 6371008.771415\n    test 1366 circle4 80: 6371008.771415\n    test 1367 circle4 80: 6371008.771415\n    test 1368 circle4 90: 6371008.771415\n    test 1369 circle4 90: 6371008.771415\n\n    test 1370 hartzell4: (3642031.283571, 3678090.99925, 3714150.714929, 11296639.666827)\n\n    77 of 1370 testEllipsoids.py tests (5.6%) FAILED, ALL KNOWN (pygeodesy 26.3.26 Python 2.7.18 64bit arm64_x86_64 geographiclib 1.50 numpy 1.16.6 scipy 1.2.2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 -W  default) 106.390 ms\nrunning /Library/Framewo....ython -W default ~/PyGeodesy/test/testElliptic.py\n\n    testing testElliptic.py 26.02.12\n    test 1 eps4: 8.881784197e-16\n    test 2 RC, RF(0.020, ...): 3.914361830671\n    test 3 RC, RF(0.030, ...): 6.584789484624\n    test 4 RC, RF(0.040, ...): 5.493061443341\n    test 5 RC, RF(0.050, ...): 4.812118250596\n    test 6 RC, RF(0.060, ...): 4.335073632453\n    test 7 RC, RF(0.070, ...): 3.976827306120\n    test 8 RC, RF(0.080, ...): 3.694989719259\n    test 9 RC, RF(0.090, ...): 3.465735902800\n    test 10 RC, RF(0.100, ...): 3.274501502373\n    test 11 RC, RF(0.110, ...): 3.111812518574\n    test 12 RC, RF(0.120, ...): 2.971203516685\n    test 13 RC, RF(0.130, ...): 2.848090500183\n    test 14 RC, RF(0.140, ...): 2.739120555165\n    test 15 RC, RF(0.150, ...): 2.641776814832\n    test 16 RC, RF(0.160, ...): 2.554128118830\n    test 17 RC, RF(0.170, ...): 2.474664615473\n    test 18 RC, RF(0.180, ...): 2.402186472893\n    test 19 RC, RF(0.190, ...): 2.335726540516\n    test 20 RC, RF(0.200, ...): 2.274495360058\n    test 21 RC, RF(0.210, ...): 2.217841271926\n    test 22 RC, RF(0.220, ...): 2.165220951174\n    test 23 RC, RF(0.230, ...): 2.116177296054\n    test 24 RC, RF(0.240, ...): 2.070322594382\n    test 25 RC, RF(0.250, ...): 2.027325540541\n    test 26 RC, RF(0.260, ...): 1.986901103492\n    test 27 RC, RF(0.270, ...): 1.948802534199\n    test 28 RC, RF(0.280, ...): 1.912814998209\n    test 29 RC, RF(0.290, ...): 1.878750456745\n    test 30 RC, RF(0.300, ...): 1.846443516895\n    test 31 RC, RF(0.310, ...): 1.815748041271\n    test 32 RC, RF(0.320, ...): 1.786534358134\n    test 33 RC, RF(0.330, ...): 1.758686950216\n    test 34 RC, RF(0.340, ...): 1.732102528083\n    test 35 RC, RF(0.350, ...): 1.706688414643\n    test 36 RC, RF(0.360, ...): 1.682361183106\n    test 37 RC, RF(0.370, ...): 1.659045502693\n    test 38 RC, RF(0.380, ...): 1.636673155658\n    test 39 RC, RF(0.390, ...): 1.615182196359\n    test 40 RC, RF(0.400, ...): 1.594516228743\n    test 41 RC, RF(0.410, ...): 1.574623783019\n    test 42 RC, RF(0.420, ...): 1.555457775830\n    test 43 RC, RF(0.430, ...): 1.536975041007\n    test 44 RC, RF(0.440, ...): 1.519135920258\n    test 45 RC, RF(0.450, ...): 1.501903904951\n    test 46 RC, RF(0.460, ...): 1.485245321610\n    test 47 RC, RF(0.470, ...): 1.469129054970\n    test 48 RC, RF(0.480, ...): 1.453526303390\n    test 49 RC, RF(0.490, ...): 1.438410362259\n    test 50 RC, RF(0.500, ...): 1.423756431678\n    test 51 RC, RF(0.510, ...): 1.409541445271\n    test 52 RC, RF(0.520, ...): 1.395743917431\n    test 53 RC, RF(0.530, ...): 1.382343806706\n    test 54 RC, RF(0.540, ...): 1.369322393343\n    test 55 RC, RF(0.550, ...): 1.356662169284\n    test 56 RC, RF(0.560, ...): 1.344346739158\n    test 57 RC, RF(0.570, ...): 1.332360730978\n    test 58 RC, RF(0.580, ...): 1.320689715446\n    test 59 RC, RF(0.590, ...): 1.309320132904\n    test 60 RC, RF(0.600, ...): 1.298239227085\n    test 61 RC, RF(0.610, ...): 1.287434984930\n    test 62 RC, RF(0.620, ...): 1.276896081822\n    test 63 RC, RF(0.630, ...): 1.266611831682\n    test 64 RC, RF(0.640, ...): 1.256572141405\n    test 65 RC, RF(0.650, ...): 1.246767469214\n    test 66 RC, RF(0.660, ...): 1.237188786540\n    test 67 RC, RF(0.670, ...): 1.227827543058\n    test 68 RC, RF(0.680, ...): 1.218675634611\n    test 69 RC, RF(0.690, ...): 1.209725373708\n    test 70 RC, RF(0.700, ...): 1.200969462383\n    test 71 RC, RF(0.710, ...): 1.192400967179\n    test 72 RC, RF(0.720, ...): 1.184013296070\n    test 73 RC, RF(0.730, ...): 1.175800177139\n    test 74 RC, RF(0.740, ...): 1.167755638871\n    test 75 RC, RF(0.750, ...): 1.159873991901\n    test 76 RC, RF(0.760, ...): 1.152149812097\n    test 77 RC, RF(0.770, ...): 1.144577924881\n    test 78 RC, RF(0.780, ...): 1.137153390647\n    test 79 RC, RF(0.790, ...): 1.129871491226\n    test 80 RC, RF(0.800, ...): 1.122727717281\n    test 81 RC, RF(0.810, ...): 1.115717756571\n    test 82 RC, RF(0.820, ...): 1.108837483013\n    test 83 RC, RF(0.830, ...): 1.102082946473\n    test 84 RC, RF(0.840, ...): 1.095450363236\n    test 85 RC, RF(0.850, ...): 1.088936107101\n    test 86 RC, RF(0.860, ...): 1.082536701044\n    test 87 RC, RF(0.870, ...): 1.076248809425\n    test 88 RC, RF(0.880, ...): 1.070069230678\n    test 89 RC, RF(0.890, ...): 1.063994890459\n    test 90 RC, RF(0.900, ...): 1.058022835225\n    test 91 RC, RF(0.910, ...): 1.052150226192\n    test 92 RC, RF(0.920, ...): 1.046374333669\n    test 93 RC, RF(0.930, ...): 1.040692531726\n    test 94 RC, RF(0.940, ...): 1.035102293176\n    test 95 RC, RF(0.950, ...): 1.029601184852\n    test 96 RC, RF(0.960, ...): 1.024186863158\n    test 97 RC, RF(0.970, ...): 1.018857069872\n    test 98 RC, RF(0.980, ...): 1.013609628192\n    test 99 RC, RF(0.990, ...): 1.008442438994\n    test 100 RD, RJ(0.010, ...): 8.120132781711\n    test 101 RD, RJ(0.020, ...): 7.119021204087\n    test 102 RD, RJ(0.030, ...): 6.544107485563\n    test 103 RD, RJ(0.040, ...): 6.142532079666\n    test 104 RD, RJ(0.050, ...): 5.835358486352\n    test 105 RD, RJ(0.060, ...): 5.587552234737\n    test 106 RD, RJ(0.070, ...): 5.380489023690\n    test 107 RD, RJ(0.080, ...): 5.203088814832\n    test 108 RD, RJ(0.090, ...): 5.048227960523\n    test 109 RD, RJ(0.100, ...): 4.911057935480\n    test 110 RD, RJ(0.110, ...): 4.788131254930\n    test 111 RD, RJ(0.120, ...): 4.676910208210\n    test 112 RD, RJ(0.130, ...): 4.575473423301\n    test 113 RD, RJ(0.140, ...): 4.482331804788\n    test 114 RD, RJ(0.150, ...): 4.396308333326\n    test 115 RD, RJ(0.160, ...): 4.316456874863\n    test 116 RD, RJ(0.170, ...): 4.242005741804\n    test 117 RD, RJ(0.180, ...): 4.172317477477\n    test 118 RD, RJ(0.190, ...): 4.106859576449\n    test 119 RD, RJ(0.200, ...): 4.045182759349\n    test 120 RD, RJ(0.210, ...): 3.986904580308\n    test 121 RD, RJ(0.220, ...): 3.931696871490\n    test 122 RD, RJ(0.230, ...): 3.879275996390\n    test 123 RD, RJ(0.240, ...): 3.829395191121\n    test 124 RD, RJ(0.250, ...): 3.781838479725\n    test 125 RD, RJ(0.260, ...): 3.736415791191\n    test 126 RD, RJ(0.270, ...): 3.692959004641\n    test 127 RD, RJ(0.280, ...): 3.651318719062\n    test 128 RD, RJ(0.290, ...): 3.611361594199\n    test 129 RD, RJ(0.300, ...): 3.572968145771\n    test 130 RD, RJ(0.310, ...): 3.536030905108\n    test 131 RD, RJ(0.320, ...): 3.500452873386\n    test 132 RD, RJ(0.330, ...): 3.466146215741\n    test 133 RD, RJ(0.340, ...): 3.433031152013\n    test 134 RD, RJ(0.350, ...): 3.401035009727\n    test 135 RD, RJ(0.360, ...): 3.370091411694\n    test 136 RD, RJ(0.370, ...): 3.340139575961\n    test 137 RD, RJ(0.380, ...): 3.311123710009\n    test 138 RD, RJ(0.390, ...): 3.282992484411\n    test 139 RD, RJ(0.400, ...): 3.255698573796\n    test 140 RD, RJ(0.410, ...): 3.229198255060\n    test 141 RD, RJ(0.420, ...): 3.203451054514\n    test 142 RD, RJ(0.430, ...): 3.178419436977\n    test 143 RD, RJ(0.440, ...): 3.154068531006\n    test 144 RD, RJ(0.450, ...): 3.130365885345\n    test 145 RD, RJ(0.460, ...): 3.107281252437\n    test 146 RD, RJ(0.470, ...): 3.084786395490\n    test 147 RD, RJ(0.480, ...): 3.062854916088\n    test 148 RD, RJ(0.490, ...): 3.041462099793\n    test 149 RD, RJ(0.500, ...): 3.020584777522\n    test 150 RD, RJ(0.510, ...): 3.000201200833\n    test 151 RD, RJ(0.520, ...): 2.980290929460\n    test 152 RD, RJ(0.530, ...): 2.960834729701\n    test 153 RD, RJ(0.540, ...): 2.941814482427\n    test 154 RD, RJ(0.550, ...): 2.923213099639\n    test 155 RD, RJ(0.560, ...): 2.905014448642\n    test 156 RD, RJ(0.570, ...): 2.887203283023\n    test 157 RD, RJ(0.580, ...): 2.869765179714\n    test 158 RD, RJ(0.590, ...): 2.852686481504\n    test 159 RD, RJ(0.600, ...): 2.835954244454\n    test 160 RD, RJ(0.610, ...): 2.819556189720\n    test 161 RD, RJ(0.620, ...): 2.803480659351\n    test 162 RD, RJ(0.630, ...): 2.787716575666\n    test 163 RD, RJ(0.640, ...): 2.772253403892\n    test 164 RD, RJ(0.650, ...): 2.757081117726\n    test 165 RD, RJ(0.660, ...): 2.742190167580\n    test 166 RD, RJ(0.670, ...): 2.727571451237\n    test 167 RD, RJ(0.680, ...): 2.713216286727\n    test 168 RD, RJ(0.690, ...): 2.699116387203\n    test 169 RD, RJ(0.700, ...): 2.685263837661\n    test 170 RD, RJ(0.710, ...): 2.671651073335\n    test 171 RD, RJ(0.720, ...): 2.658270859623\n    test 172 RD, RJ(0.730, ...): 2.645116273430\n    test 173 RD, RJ(0.740, ...): 2.632180685789\n    test 174 RD, RJ(0.750, ...): 2.619457745678\n    test 175 RD, RJ(0.760, ...): 2.606941364924\n    test 176 RD, RJ(0.770, ...): 2.594625704104\n    test 177 RD, RJ(0.780, ...): 2.582505159384\n    test 178 RD, RJ(0.790, ...): 2.570574350197\n    test 179 RD, RJ(0.800, ...): 2.558828107720\n    test 180 RD, RJ(0.810, ...): 2.547261464073\n    test 181 RD, RJ(0.820, ...): 2.535869642198\n    test 182 RD, RJ(0.830, ...): 2.524648046356\n    test 183 RD, RJ(0.840, ...): 2.513592253209\n    test 184 RD, RJ(0.850, ...): 2.502698003435\n    test 185 RD, RJ(0.860, ...): 2.491961193848\n    test 186 RD, RJ(0.870, ...): 2.481377869975\n    test 187 RD, RJ(0.880, ...): 2.470944219069\n    test 188 RD, RJ(0.890, ...): 2.460656563526\n    test 189 RD, RJ(0.900, ...): 2.450511354674\n    test 190 RD, RJ(0.910, ...): 2.440505166909\n    test 191 RD, RJ(0.920, ...): 2.430634692166\n    test 192 RD, RJ(0.930, ...): 2.420896734686\n    test 193 RD, RJ(0.940, ...): 2.411288206073\n    test 194 RD, RJ(0.950, ...): 2.401806120619\n    test 195 RD, RJ(0.960, ...): 2.392447590873\n    test 196 RD, RJ(0.970, ...): 2.383209823448\n    test 197 RD, RJ(0.980, ...): 2.374090115050\n    test 198 RD, RJ(0.990, ...): 2.365085848706\n\n    test 199 eps4: 8.881784197e-16\n    test 200 k2: 0.1000000\n    test 201 kp2: 0.9000000\n    test 202 eps: 0.0263340\n    test 203 cD: 0.816837118\n    test 204 cE: 1.530757637\n    test 205 cG: 1.530757637\n    test 206 cH: 0.795604230\n    test 207 cK: 1.612441349\n    test 208 cKE: 0.081683712\n    test 209 cPi: 1.612441349\n    test 210 fE(phi): 0.348372822\n    test 211 fDelta(sn, cn): 0.994133906\n    test 212 fD(sn, cn, dn): 0.013885234\n    test 213 fE(sn, cn, dn): 0.348372822\n    test 214 fEd(PI_2): 0.027415224\n    test 215 fEinv(PI_2): 1.612999420\n    test 216 fF(sn, cn, dn): 0.349761345\n    test 217 fG(sn, cn, dn): 0.348372822\n    test 218 fH(sn, cn, dn): 0.335876111\n    test 219 fPi(sn, cn, dn): 0.349761345\n    test 220 fPi(sn, None, dn): invokation Elliptic.fPi(0, None, 1): invalid\n    test 221 fPi(sn, dn, None): invokation Elliptic.fH(0, 1, None): invalid\n\n    test 222 deltaD(sn, cn, dn): -0.3223642\n    test 223 deltaE(sn, cn, dn): 0.0084191\n    test 224 deltaEinv(sn, cn): -0.0082518\n    test 225 deltaF(sn, cn, dn): -0.0083379\n    test 226 deltaG(sn, cn, dn): 0.0084191\n    test 227 deltaH(sn, cn, dn): 0.3140691\n    test 228 deltaPi(sn, cn, dn): -0.0083379\n    test 229 deltaPi(sn, None, dn): invokation Elliptic.deltaPi(0, None, 1): invalid\n    test 230 deltaPi(sn, dn, None): invokation Elliptic.deltaPi(0, 1, None): invalid\n\n    test 231 RF(1,   2, 0): 1.3110287771461\n    test 232 RF(0.5, 1, 0): 1.8540746773014\n    test 233 RF(2,   3, 4): 0.58408284167715\n\n    test 234 RC(0,  1/4): 3.1415926535898\n    test 235 RC(9/4,  2): 0.69314718055995\n    test 236 RC(1/4, -2): 0.23104906018665\n\n    test 237 RJ(0, 1, 2, 3): 0.77688623778582\n    test 238 RJ(2, 3, 4, 5): 0.14297579667157\n\n    test 239 RD(0, 2, 1): 1.7972103521034\n    test 240 RD(2, 3, 4): 0.16510527294261\n\n    test 241 RG(0, 16, 16): 3.1415926535898\n    test 242 RG(2,  3,  4): 1.7255030280692\n    test 243 RG(0,  0.0796, 4): 1.0284758090288\n\n    test 244 reset: 5\n\n    test 245 sncndn(x, jam=True): 0.0, 1.0, 1.0\n    test 246 sncndn(x, jam=True): 0.998602459, 0.052850065, 0.948830497\n    test 247 sncndn(x, jam=True): 0.0, 1.0, 1.0\n    test 248 sncndn(x, jam=True): 0.917152336, 0.398536815, 0.398536815\n    test 249 sncndn(x, jam=True): <class 'pygeodesy.elliptic.Elliptic3Tuple'>\n\n    test 250 sncndn(x, jam=False): 0.0, 1.0, 1.0\n    test 251 sncndn(x, jam=False): 0.999219618, 0.0394988, 0.948765522\n    test 252 sncndn(x, jam=False): 0.0, 1.0, 1.0\n    test 253 sncndn(x, jam=False): 0.917152336, 0.398536815, 0.398536815\n    test 254 sncndn(x, jam=False): <class 'pygeodesy.elliptic.Elliptic3Tuple'>\n\n    test 255 copy(<type 'type'>): (<class 'pygeodesy.elliptic.Elliptic'>, True)\n    test 256 Elliptic.copy(): (<class 'pygeodesy.elliptic.Elliptic'>, True)\n    test 257 k2 alpha2 kp2 alphap2: (0.0, 0.0, 0.0, 0.0)\n    test 258 k2 alpha2 kp2 alphap2: (0.25, 0.25, 0.25, 0.25)\n    test 259 k2 alpha2 kp2 alphap2: (0.5, 0.5, 0.5, 0.5)\n    test 260 k2 alpha2 kp2 alphap2: (0.75, 0.75, 0.75, 0.75)\n\n    test 261 ConvergenceError: maxit (9): no convergence (1), tolerance (2)\n\n    test 262 _ellipticError: invokation Elliptic.testElliptic(None): test\n    test 263 _ellipticError: invokation Elliptic._ellipticError(None): invokation Elliptic.testElliptic(None): test\n\n    all 263 testElliptic.py tests passed (pygeodesy 26.3.26 Python 2.7.18 64bit arm64_x86_64 geographiclib 1.50 numpy 1.16.6 scipy 1.2.2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 -W  default) 566.831 ms\nrunning /Library/Framewo....ython -W default ~/PyGeodesy/test/testEpsg.py\n\n    testing testEpsg.py 23.03.27\n    test 1 Epsg: 32661\n    test 2 0 N: (0, 'N')\n    test 3 1 N: (1, 'N')\n    test 4 2 N: (2, 'N')\n    test 5 3 N: (3, 'N')\n    test 6 4 N: (4, 'N')\n    test 7 5 N: (5, 'N')\n    test 8 6 N: (6, 'N')\n    test 9 7 N: (7, 'N')\n    test 10 8 N: (8, 'N')\n    test 11 9 N: (9, 'N')\n    test 12 10 N: (10, 'N')\n    test 13 11 N: (11, 'N')\n    test 14 12 N: (12, 'N')\n    test 15 13 N: (13, 'N')\n    test 16 14 N: (14, 'N')\n    test 17 15 N: (15, 'N')\n    test 18 16 N: (16, 'N')\n    test 19 17 N: (17, 'N')\n    test 20 18 N: (18, 'N')\n    test 21 19 N: (19, 'N')\n    test 22 20 N: (20, 'N')\n    test 23 21 N: (21, 'N')\n    test 24 22 N: (22, 'N')\n    test 25 23 N: (23, 'N')\n    test 26 24 N: (24, 'N')\n    test 27 25 N: (25, 'N')\n    test 28 26 N: (26, 'N')\n    test 29 27 N: (27, 'N')\n    test 30 28 N: (28, 'N')\n    test 31 29 N: (29, 'N')\n    test 32 30 N: (30, 'N')\n    test 33 31 N: (31, 'N')\n    test 34 32 N: (32, 'N')\n    test 35 33 N: (33, 'N')\n    test 36 34 N: (34, 'N')\n    test 37 35 N: (35, 'N')\n    test 38 36 N: (36, 'N')\n    test 39 37 N: (37, 'N')\n    test 40 38 N: (38, 'N')\n    test 41 39 N: (39, 'N')\n    test 42 40 N: (40, 'N')\n    test 43 41 N: (41, 'N')\n    test 44 42 N: (42, 'N')\n    test 45 43 N: (43, 'N')\n    test 46 44 N: (44, 'N')\n    test 47 45 N: (45, 'N')\n    test 48 46 N: (46, 'N')\n    test 49 47 N: (47, 'N')\n    test 50 48 N: (48, 'N')\n    test 51 49 N: (49, 'N')\n    test 52 50 N: (50, 'N')\n    test 53 51 N: (51, 'N')\n    test 54 52 N: (52, 'N')\n    test 55 53 N: (53, 'N')\n    test 56 54 N: (54, 'N')\n    test 57 55 N: (55, 'N')\n    test 58 56 N: (56, 'N')\n    test 59 57 N: (57, 'N')\n    test 60 58 N: (58, 'N')\n    test 61 59 N: (59, 'N')\n    test 62 60 N: (60, 'N')\n    test 63 Epsg: 32761\n    test 64 0 S: (0, 'S')\n    test 65 1 S: (1, 'S')\n    test 66 2 S: (2, 'S')\n    test 67 3 S: (3, 'S')\n    test 68 4 S: (4, 'S')\n    test 69 5 S: (5, 'S')\n    test 70 6 S: (6, 'S')\n    test 71 7 S: (7, 'S')\n    test 72 8 S: (8, 'S')\n    test 73 9 S: (9, 'S')\n    test 74 10 S: (10, 'S')\n    test 75 11 S: (11, 'S')\n    test 76 12 S: (12, 'S')\n    test 77 13 S: (13, 'S')\n    test 78 14 S: (14, 'S')\n    test 79 15 S: (15, 'S')\n    test 80 16 S: (16, 'S')\n    test 81 17 S: (17, 'S')\n    test 82 18 S: (18, 'S')\n    test 83 19 S: (19, 'S')\n    test 84 20 S: (20, 'S')\n    test 85 21 S: (21, 'S')\n    test 86 22 S: (22, 'S')\n    test 87 23 S: (23, 'S')\n    test 88 24 S: (24, 'S')\n    test 89 25 S: (25, 'S')\n    test 90 26 S: (26, 'S')\n    test 91 27 S: (27, 'S')\n    test 92 28 S: (28, 'S')\n    test 93 29 S: (29, 'S')\n    test 94 30 S: (30, 'S')\n    test 95 31 S: (31, 'S')\n    test 96 32 S: (32, 'S')\n    test 97 33 S: (33, 'S')\n    test 98 34 S: (34, 'S')\n    test 99 35 S: (35, 'S')\n    test 100 36 S: (36, 'S')\n    test 101 37 S: (37, 'S')\n    test 102 38 S: (38, 'S')\n    test 103 39 S: (39, 'S')\n    test 104 40 S: (40, 'S')\n    test 105 41 S: (41, 'S')\n    test 106 42 S: (42, 'S')\n    test 107 43 S: (43, 'S')\n    test 108 44 S: (44, 'S')\n    test 109 45 S: (45, 'S')\n    test 110 46 S: (46, 'S')\n    test 111 47 S: (47, 'S')\n    test 112 48 S: (48, 'S')\n    test 113 49 S: (49, 'S')\n    test 114 50 S: (50, 'S')\n    test 115 51 S: (51, 'S')\n    test 116 52 S: (52, 'S')\n    test 117 53 S: (53, 'S')\n    test 118 54 S: (54, 'S')\n    test 119 55 S: (55, 'S')\n    test 120 56 S: (56, 'S')\n    test 121 57 S: (57, 'S')\n    test 122 58 S: (58, 'S')\n    test 123 59 S: (59, 'S')\n    test 124 60 S: (60, 'S')\n    test 125 Ups: 32761\n    test 126 Ups: 00A S\n    test 127 copy(<type 'type'>): (<class 'pygeodesy.epsg.Epsg'>, True)\n    test 128 Epsg.copy(): (<class 'pygeodesy.epsg.Epsg'>, True)\n    test 129 Ups: 32761\n    test 130 Ups: 00B S\n    test 131 copy(<type 'type'>): (<class 'pygeodesy.epsg.Epsg'>, True)\n    test 132 Epsg.copy(): (<class 'pygeodesy.epsg.Epsg'>, True)\n    test 133 Ups: 32661\n    test 134 Ups: 00Y N\n    test 135 copy(<type 'type'>): (<class 'pygeodesy.epsg.Epsg'>, True)\n    test 136 Epsg.copy(): (<class 'pygeodesy.epsg.Epsg'>, True)\n    test 137 Ups: 32661\n    test 138 Ups: 00Z N\n    test 139 copy(<type 'type'>): (<class 'pygeodesy.epsg.Epsg'>, True)\n    test 140 Epsg.copy(): (<class 'pygeodesy.epsg.Epsg'>, True)\n    test 141 TMcoord 1: 38W N\n    test 142 TMcoord 2: 34P N\n    test 143 TMcoord 3: 43Q N\n    test 144 TMcoord 4: 35Q N\n    test 145 TMcoord 5: 37N N\n    test 146 TMcoord 6: 34W N\n    test 147 TMcoord 7: 40V N\n    test 148 TMcoord 8: 34P N\n    test 149 TMcoord 9: 41S N\n    test 150 TMcoord 10: 41X N\n    test 151 TMcoord 11: 43X N\n    test 152 TMcoord 12: 44Q N\n    test 153 TMcoord 13: 44R N\n    test 154 TMcoord 14: 39U N\n    test 155 TMcoord 15: 44P N\n    test 156 TMcoord 16: 39R N\n    test 157 TMcoord 17: 41W N\n    test 158 TMcoord 18: 45U N\n    test 159 TMcoord 19: 32R N\n    test 160 TMcoord 20: 44X N\n    test 161 TMcoord 21: 35T N\n    test 162 TMcoord 22: 32T N\n    test 163 TMcoord 23: 31T N\n    test 164 TMcoord 24: 35N N\n    test 165 TMcoord 25: 45P N\n    test 166 TMcoord 26: 33V N\n    test 167 TMcoord 27: 41Q N\n    test 168 TMcoord 28: 40X N\n    test 169 TMcoord 29: 33P N\n    test 170 TMcoord 30: 40S N\n    test 171 TMcoord 31: 37T N\n    test 172 TMcoord 32: 33X N\n    test 173 TMcoord 33: 41U N\n    test 174 TMcoord 34: 43Q N\n    test 175 TMcoord 35: 42S N\n    test 176 TMcoord 36: 33S N\n    test 177 TMcoord 37: 35X N\n    test 178 TMcoord 38: 38N N\n    test 179 TMcoord 39: 44P N\n    test 180 TMcoord 40: 33U N\n    test 181 TMcoord 41: 37W N\n    test 182 TMcoord 42: 36T N\n    test 183 TMcoord 43: 36Q N\n    test 184 TMcoord 44: 34S N\n    test 185 TMcoord 45: 37S N\n    test 186 TMcoord 46: 34N N\n    test 187 TMcoord 47: 34T N\n    test 188 TMcoord 48: 43Q N\n    test 189 TMcoord 49: 32N N\n    test 190 TMcoord 50: 31Q N\n    test 191 TMcoord 51: 45R N\n    test 192 TMcoord 52: 45R N\n    test 193 TMcoord 53: 34W N\n    test 194 TMcoord 54: 44V N\n    test 195 TMcoord 55: 44S N\n    test 196 TMcoord 56: 39R N\n    test 197 TMcoord 57: 00Z N\n    test 198 TMcoord 58: 36R N\n    test 199 TMcoord 59: 41V N\n    test 200 TMcoord 60: 42N N\n    test 201 TMcoord 61: 43S N\n    test 202 TMcoord 62: 34N N\n    test 203 TMcoord 63: 34U N\n    test 204 TMcoord 64: 38V N\n    test 205 TMcoord 65: 34Q N\n    test 206 TMcoord 66: 38P N\n    test 207 TMcoord 67: 42S N\n    test 208 TMcoord 68: 44S N\n    test 209 TMcoord 69: 31Q N\n    test 210 TMcoord 70: 40W N\n    test 211 TMcoord 71: 35X N\n    test 212 TMcoord 72: 32T N\n    test 213 TMcoord 73: 45U N\n    test 214 TMcoord 74: 40Q N\n    test 215 TMcoord 75: 31T N\n    test 216 TMcoord 76: 44R N\n    test 217 TMcoord 77: 34U N\n    test 218 TMcoord 78: 38P N\n    test 219 TMcoord 79: 38Q N\n    test 220 TMcoord 80: 45N N\n    test 221 TMcoord 81: 31S N\n    test 222 TMcoord 82: 41U N\n    test 223 TMcoord 83: 40V N\n    test 224 TMcoord 84: 43X N\n    test 225 TMcoord 85: 35N N\n    test 226 TMcoord 86: 44P N\n    test 227 TMcoord 87: 41N N\n    test 228 TMcoord 88: 38Q N\n    test 229 TMcoord 89: 43X N\n    test 230 TMcoord 90: 36V N\n    test 231 TMcoord 91: 34Q N\n    test 232 TMcoord 92: 35W N\n    test 233 TMcoord 93: 45U N\n    test 234 TMcoord 94: 40R N\n    test 235 TMcoord 95: 36R N\n    test 236 TMcoord 96: 35S N\n    test 237 TMcoord 97: 41R N\n    test 238 TMcoord 98: 39Q N\n    test 239 TMcoord 99: 37T N\n    test 240 TMcoord 100: 42P N\n    test 241 TMcoord 101: 35T N\n    test 242 TMcoord 102: 34Q N\n    test 243 TMcoord 103: 41T N\n    test 244 TMcoord 104: 43R N\n    test 245 TMcoord 105: 34Q N\n    test 246 TMcoord 106: 45P N\n    test 247 TMcoord 107: 31P N\n    test 248 TMcoord 108: 44V N\n    test 249 TMcoord 109: 42X N\n    test 250 TMcoord 110: 33R N\n    test 251 TMcoord 111: 37W N\n    test 252 TMcoord 112: 31S N\n    test 253 TMcoord 113: 42N N\n    test 254 TMcoord 114: 39N N\n    test 255 TMcoord 115: 39T N\n    test 256 TMcoord 116: 39P N\n    test 257 TMcoord 117: 34U N\n    test 258 TMcoord 118: 41P N\n    test 259 TMcoord 119: 37R N\n    test 260 TMcoord 120: 44Q N\n    test 261 TMcoord 121: 32V N\n    test 262 TMcoord 122: 41R N\n    test 263 TMcoord 123: 36T N\n    test 264 TMcoord 124: 42U N\n    test 265 TMcoord 125: 42U N\n    test 266 TMcoord 126: 39T N\n    test 267 TMcoord 127: 32T N\n    test 268 TMcoord 128: 32Q N\n    test 269 TMcoord 129: 38P N\n    test 270 TMcoord 130: 34Q N\n    test 271 TMcoord 131: 36V N\n    test 272 TMcoord 132: 36T N\n    test 273 TMcoord 133: 43T N\n    test 274 TMcoord 134: 41W N\n    test 275 TMcoord 135: 32V N\n    test 276 TMcoord 136: 39X N\n    test 277 TMcoord 137: 32U N\n    test 278 TMcoord 138: 37X N\n    test 279 TMcoord 139: 35N N\n    test 280 TMcoord 140: 36P N\n    test 281 TMcoord 141: 31S N\n    test 282 TMcoord 142: 36N N\n    test 283 TMcoord 143: 42S N\n    test 284 TMcoord 144: 44N N\n    test 285 TMcoord 145: 44P N\n    test 286 TMcoord 146: 39U N\n    test 287 TMcoord 147: 45Q N\n    test 288 TMcoord 148: 41W N\n    test 289 TMcoord 149: 41N N\n    test 290 TMcoord 150: 32S N\n    test 291 TMcoord 151: 32N N\n    test 292 TMcoord 152: 32T N\n    test 293 TMcoord 153: 38R N\n    test 294 TMcoord 154: 32V N\n    test 295 TMcoord 155: 37Q N\n    test 296 TMcoord 156: 44N N\n    test 297 TMcoord 157: 34W N\n    test 298 TMcoord 158: 45N N\n    test 299 TMcoord 159: 42S N\n    test 300 TMcoord 160: 40T N\n    test 301 TMcoord 161: 31U N\n    test 302 TMcoord 162: 45Q N\n    test 303 TMcoord 163: 40U N\n    test 304 TMcoord 164: 45T N\n    test 305 TMcoord 165: 40R N\n    test 306 TMcoord 166: 31V N\n    test 307 TMcoord 167: 45P N\n    test 308 TMcoord 168: 43W N\n    test 309 TMcoord 169: 43U N\n    test 310 TMcoord 170: 44V N\n    test 311 TMcoord 171: 40P N\n    test 312 TMcoord 172: 36Q N\n    test 313 TMcoord 173: 42Q N\n    test 314 TMcoord 174: 41Q N\n    test 315 TMcoord 175: 32S N\n    test 316 TMcoord 176: 39P N\n    test 317 TMcoord 177: 39Q N\n    test 318 TMcoord 178: 39T N\n    test 319 TMcoord 179: 34U N\n    test 320 TMcoord 180: 32W N\n    test 321 TMcoord 181: 41U N\n    test 322 TMcoord 182: 31Q N\n    test 323 TMcoord 183: 40N N\n    test 324 TMcoord 184: 40T N\n    test 325 TMcoord 185: 38P N\n    test 326 TMcoord 186: 44P N\n    test 327 TMcoord 187: 40N N\n    test 328 TMcoord 188: 44V N\n    test 329 TMcoord 189: 41V N\n    test 330 TMcoord 190: 43Q N\n    test 331 TMcoord 191: 43X N\n    test 332 TMcoord 192: 39N N\n    test 333 TMcoord 193: 38T N\n    test 334 TMcoord 194: 32R N\n    test 335 TMcoord 195: 37S N\n    test 336 TMcoord 196: 44W N\n    test 337 TMcoord 197: 43V N\n    test 338 TMcoord 198: 35T N\n    test 339 TMcoord 199: 44W N\n    test 340 TMcoord 200: 44X N\n    test 341 TMcoord 201: 33Q N\n    test 342 TMcoord 202: 40W N\n    test 343 TMcoord 203: 43S N\n    test 344 TMcoord 204: 32U N\n    test 345 TMcoord 205: 33V N\n    test 346 TMcoord 206: 34R N\n    test 347 TMcoord 207: 39S N\n    test 348 TMcoord 208: 43W N\n    test 349 TMcoord 209: 39T N\n    test 350 TMcoord 210: 31W N\n    test 351 TMcoord 211: 45R N\n    test 352 TMcoord 212: 34W N\n    test 353 TMcoord 213: 32T N\n    test 354 TMcoord 214: 31P N\n    test 355 TMcoord 215: 44V N\n    test 356 TMcoord 216: 45U N\n    test 357 TMcoord 217: 43R N\n    test 358 TMcoord 218: 31N N\n    test 359 TMcoord 219: 43T N\n    test 360 TMcoord 220: 45R N\n    test 361 TMcoord 221: 39N N\n    test 362 TMcoord 222: 37S N\n    test 363 TMcoord 223: 31R N\n    test 364 TMcoord 224: 38Q N\n    test 365 TMcoord 225: 40V N\n    test 366 TMcoord 226: 45N N\n    test 367 TMcoord 227: 44R N\n    test 368 TMcoord 228: 43P N\n    test 369 TMcoord 229: 42P N\n    test 370 TMcoord 230: 45S N\n    test 371 TMcoord 231: 42N N\n    test 372 TMcoord 232: 38S N\n    test 373 TMcoord 233: 32T N\n    test 374 TMcoord 234: 41T N\n    test 375 TMcoord 235: 34S N\n    test 376 TMcoord 236: 40R N\n    test 377 TMcoord 237: 35V N\n    test 378 TMcoord 238: 38N N\n    test 379 TMcoord 239: 40V N\n    test 380 TMcoord 240: 36R N\n    test 381 TMcoord 241: 37W N\n    test 382 TMcoord 242: 45R N\n    test 383 TMcoord 243: 37V N\n    test 384 TMcoord 244: 33P N\n    test 385 TMcoord 245: 32U N\n    test 386 TMcoord 246: 38T N\n    test 387 TMcoord 247: 37N N\n    test 388 TMcoord 248: 36R N\n    test 389 TMcoord 249: 44R N\n    test 390 TMcoord 250: 44Q N\n    test 391 TMcoord 251: 45R N\n    test 392 TMcoord 252: 34N N\n    test 393 TMcoord 253: 43S N\n    test 394 TMcoord 254: 40Q N\n    test 395 TMcoord 255: 33T N\n    test 396 TMcoord 256: 44P N\n    test 397 TMcoord 257: 39N N\n    test 398 TMcoord 258: 40Q N\n\n    all 398 testEpsg.py tests passed (pygeodesy 26.3.26 Python 2.7.18 64bit arm64_x86_64 geographiclib 1.50 numpy 1.16.6 scipy 1.2.2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 -W  default) 215.155 ms\nrunning /Library/Framewo....ython -W default ~/PyGeodesy/test/testErrors.py\n\n    testing testErrors.py 23.03.27 (module pygeodesy.errors 26.02.12)\n    test 1 AssertionError: name ('value'): test1 txt\n    test 2 AssertionError: 'name=value' MISSING: test2 txt\n    test 3 AttributeError: name ('value'): test1 txt\n    test 4 AttributeError: 'name=value' MISSING: test2 txt\n    test 5 IndexError: name ('value'): test1 txt\n    test 6 IndexError: 'name=value' MISSING: test2 txt\n    test 7 LimitError: name ('value'): test1 txt\n    test 8 LimitError: 'name=value' MISSING: test2 txt\n    test 9 NameError: name ('value'): test1 txt\n    test 10 NameError: 'name=value' MISSING: test2 txt\n    test 11 ParseError: name ('value'): test1 txt\n    test 12 ParseError: 'name=value' MISSING: test2 txt\n    test 13 TypeError: type(name) ('value'): test1 txt\n    test 14 TypeError: 'name=value' MISSING: test2 txt\n    test 15 ClipError: name ('value'): test1 txt\n    test 16 ClipError: 'name=value' MISSING: test2 txt\n    test 17 CrossError: name ('value'): test1 txt\n    test 18 CrossError: 'name=value' MISSING: test2 txt\n    test 19 CSSError: name ('value'): test1 txt\n    test 20 CSSError: 'name=value' MISSING: test2 txt\n    test 21 EcefError: name ('value'): test1 txt\n    test 22 EcefError: 'name=value' MISSING: test2 txt\n    test 23 EllipticError: name ('value'): test1 txt\n    test 24 EllipticError: 'name=value' MISSING: test2 txt\n    test 25 EPSGError: name ('value'): test1 txt\n    test 26 EPSGError: 'name=value' MISSING: test2 txt\n    test 27 ETMError: name ('value'): test1 txt\n    test 28 ETMError: 'name=value' MISSING: test2 txt\n    test 29 FrechetError: name ('value'): test1 txt\n    test 30 FrechetError: 'name=value' MISSING: test2 txt\n    test 31 GARSError: name ('value'): test1 txt\n    test 32 GARSError: 'name=value' MISSING: test2 txt\n    test 33 GeohashError: name ('value'): test1 txt\n    test 34 GeohashError: 'name=value' MISSING: test2 txt\n    test 35 GeoidError: name ('value'): test1 txt\n    test 36 GeoidError: 'name=value' MISSING: test2 txt\n    test 37 HausdorffError: name ('value'): test1 txt\n    test 38 HausdorffError: 'name=value' MISSING: test2 txt\n    test 39 HeightError: name ('value'): test1 txt\n    test 40 HeightError: 'name=value' MISSING: test2 txt\n    test 41 LazyImportError: name ('value'): test1 txt\n    test 42 LazyImportError: 'name=value' MISSING: test2 txt\n    test 43 LCCError: name ('value'): test1 txt\n    test 44 LCCError: 'name=value' MISSING: test2 txt\n    test 45 MGRSError: name ('value'): test1 txt\n    test 46 MGRSError: 'name=value' MISSING: test2 txt\n    test 47 OSGRError: name ('value'): test1 txt\n    test 48 OSGRError: 'name=value' MISSING: test2 txt\n    test 49 PGMError: name ('value'): test1 txt\n    test 50 PGMError: 'name=value' MISSING: test2 txt\n    test 51 PointsError: name ('value'): test1 txt\n    test 52 PointsError: 'name=value' MISSING: test2 txt\n    test 53 SciPyError: name ('value'): test1 txt\n    test 54 SciPyError: 'name=value' MISSING: test2 txt\n    test 55 SciPyWarning: name ('value'): test1 txt\n    test 56 SciPyWarning: 'name=value' MISSING: test2 txt\n    test 57 TRFError: name ('value'): test1 txt\n    test 58 TRFError: 'name=value' MISSING: test2 txt\n    test 59 UnitError: name ('value'): test1 txt\n    test 60 UnitError: 'name=value' MISSING: test2 txt\n    test 61 UPSError: name ('value'): test1 txt\n    test 62 UPSError: 'name=value' MISSING: test2 txt\n    test 63 UTMError: name ('value'): test1 txt\n    test 64 UTMError: 'name=value' MISSING: test2 txt\n    test 65 UTMUPSError: name ('value'): test1 txt\n    test 66 UTMUPSError: 'name=value' MISSING: test2 txt\n    test 67 VectorError: name ('value'): test1 txt\n    test 68 VectorError: 'name=value' MISSING: test2 txt\n    test 69 VincentyError: name ('value'): test1 txt\n    test 70 VincentyError: 'name=value' MISSING: test2 txt\n    test 71 WebMercatorError: name ('value'): test1 txt\n    test 72 WebMercatorError: 'name=value' MISSING: test2 txt\n    test 73 WGRSError: name ('value'): test1 txt\n    test 74 WGRSError: 'name=value' MISSING: test2 txt\n    test 75 _InvalidError: zero (1): invalid\n    test 76 _InvalidError: ValueError('zero (1): invalid')\n    test 77 _InvalidError: one (2) or zero (1): outside\n    test 78 _InvalidError: ValueError('one (2) or zero (1): outside')\n    test 79 _InvalidError: one (2) or zero (1): outside\n    test 80 _InvalidError: RangeError('one (2) or zero (1): outside')\n    test 81 _IsnotError: _None (None): not an int or float\n    test 82 _IsnotError: TypeError('_None (None): not an int or float')\n    test 83 _IsnotError: _None (None): not a scalar\n    test 84 _IsnotError: TypeError('_None (None): not a scalar')\n    test 85 _IsnotError: _None (None): not a scalar\n    test 86 _IsnotError: LimitError('_None (None): not a scalar')\n    test 87 LenError: LenError(a, b, c, d) len 1 vs 2 vs 3 vs 4: invalid\n    test 88 crosserrors: True\n    test 89 crosserrors: False\n    test 90 limiterrors: True\n    test 91 limiterrors: False\n    test 92 rangerrors: True\n    test 93 rangerrors: False\n    test 94 exception_chaining: None\n    test 95 exception_chaining: None\n    test 96 exception_chaining: None\n    test 97 _xkwds_get: test1\n    test 98 _xkwds_get: test2\n    test 99 _xkwds_get: _xkwds_get({})\n    test 100 _xkwds_get: _xkwds_get({}, n1='d1', n2='d2')\n    test 101 _xkwds_pop: test1\n    test 102 _xkwds_pop: test2\n    test 103 _xkwds_pop: _xkwds_pop2({})\n    test 104 _xkwds_pop: _xkwds_pop2({}, n1='d1', n2='d2')\n\n    all 104 testErrors.py tests passed (pygeodesy 26.3.26 Python 2.7.18 64bit arm64_x86_64 geographiclib 1.50 numpy 1.16.6 scipy 1.2.2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 -W  default) 802.994 us\nrunning /Library/Framewo....ython -W default ~/PyGeodesy/test/testEtm.py\n\n    testing testEtm.py 23.08.30 (module pygeodesy.etm 25.09.15)\n\n    testExactTransverseMercator(pygeodesy.etm, 25.09.15)\n    test 1 name: test\n    test 2 toStr: datum='WGS84', extendp=True, k0=0.9996, lon0=0.0, name='test'\n\n    test 3 easting: -59401.921148\n    test 4 northing: 4472390.031129\n    test 5 gamma: -0.453697\n    test 6 scale: 0.999643\n    test 7 lat: 40.400000\n    test 8 lon: -3.700000\n    test 9 gamma: -0.453697\n    test 10 scale: 0.999643\n    test 11 easting: -59401.921148\n    test 12 northing: 4472390.031129\n    test 13 gamma: -0.453697\n    test 14 scale: 0.999643\n\n    test 15 easting: 25495.511523\n    test 16 northing: 4461098.320889\n    test 17 gamma: 0.194038\n    test 18 scale: 0.999608\n    test 19 lat: 40.300000\n    test 20 lon: -74.700000\n    test 21 gamma: 0.194038\n    test 22 scale: 0.999608\n    test 23 easting: 25495.511523\n    test 24 northing: 4461098.320889\n    test 25 gamma: 0.194038\n    test 26 scale: 0.999608\n\n    test 27 lat: -2.00000000\n    test 28 lon: 88.00000000\n    test 29 gamma: 67.63332900\n    test 30 scale: 26.33699547\n    test 31 easting: 29735142.378357\n    test 32 northing: 4235043.607933\n    test 33 gamma: 67.633329\n    test 34 scale: 26.336995\n\n    test 35 copy(<type 'type'>): (<class 'pygeodesy.etm.ExactTransverseMercator'>, True)\n    test 36 ExactTransverseMercator.copy(): (<class 'pygeodesy.etm.ExactTransverseMercator'>, True)\n\n    testExactTransverseMercator(pygeodesy.etm, 25.09.15)\n    test 37 name: test\n    test 38 toStr: datum='WGS84', extendp=False, k0=0.9996, lon0=0.0, name='test'\n\n    test 39 easting: -59401.921148\n    test 40 northing: 4472390.031129\n    test 41 gamma: -0.453697\n    test 42 scale: 0.999643\n    test 43 lat: 40.400000\n    test 44 lon: -3.700000\n    test 45 gamma: -0.453697\n    test 46 scale: 0.999643\n    test 47 easting: -59401.921148\n    test 48 northing: 4472390.031129\n    test 49 gamma: -0.453697\n    test 50 scale: 0.999643\n\n    test 51 easting: 25495.511523\n    test 52 northing: 4461098.320889\n    test 53 gamma: 0.194038\n    test 54 scale: 0.999608\n    test 55 lat: 40.300000\n    test 56 lon: -74.700000\n    test 57 gamma: 0.194038\n    test 58 scale: 0.999608\n    test 59 easting: 25495.511523\n    test 60 northing: 4461098.320889\n    test 61 gamma: 0.194038\n    test 62 scale: 0.999608\n\n    test 63 lat: -2.00000000\n    test 64 lon: 88.00000000\n    test 65 gamma: 67.63332900\n    test 66 scale: 26.33699547\n\n    test 67 easting: 0.000\n    test 68 northing: -9997964.943\n    test 69 gamma: 120.000\n    test 70 scale: 1.000\n    test 71 lat: -90.000\n    test 72 lon: 180.000  FAILED, KNOWN, expected 0.000\n    test 73 gamma: -180.000\n    test 74 scale: 1.000\n\n    test 75 copy(<type 'type'>): (<class 'pygeodesy.etm.ExactTransverseMercator'>, True)\n    test 76 ExactTransverseMercator.copy(): (<class 'pygeodesy.etm.ExactTransverseMercator'>, True)\n\n    testLatLon(pygeodesy.etm, 25.09.15)\n    test 77 toEtm8: 45 S -20297797 5336899\n    test 78 name: test\n    test 79 toUtm: 45 S -20297797 5336899\n    test 80 name: test\n    test 81 toETM5: 45 S -20297797 5336899\n    test 82 copy(<type 'type'>): (<class 'pygeodesy.etm.Etm'>, True)\n    test 83 .name: test\n    test 84 Etm.copy(): (<class 'pygeodesy.etm.Etm'>, True)\n    test 85 .name: test\n    test 86 parse: 31 N 448251 5411932\n    test 87 name: parse\n    test 88 parse: 31 N 448251 5411932\n    test 89 name: parse\n\n    testLatLon(pygeodesy.etm, 25.09.15)\n    test 90 toEtm8: 45 S -20297797 5336899\n    test 91 name: test\n    test 92 toUtm: 45 S -20297797 5336899\n    test 93 name: test\n    test 94 toETM5: 45 S -20297797 5336899\n    test 95 copy(<type 'type'>): (<class 'pygeodesy.etm.Etm'>, True)\n    test 96 .name: test\n    test 97 Etm.copy(): (<class 'pygeodesy.etm.Etm'>, True)\n    test 98 .name: test\n    test 99 parse: 31 N 448251 5411932\n    test 100 name: parse\n    test 101 parse: 31 N 448251 5411932\n    test 102 name: parse\n\n    1 of 102 testEtm.py tests (1.0%) FAILED, ALL KNOWN (pygeodesy 26.3.26 Python 2.7.18 64bit arm64_x86_64 geographiclib 1.50 numpy 1.16.6 scipy 1.2.2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 -W  default) 232.093 ms\nrunning /Library/Framewo....ython -W default ~/PyGeodesy/test/testEtmTMcoords.py\n\n    testing testEtmTMcoords.py 24.03.22 (module pygeodesy.etm 25.09.15)\n    test 1 line 1 toEtm8.easting: 1548706.791619\n    test 2 line 1 toEtm8.northing: 8451449.198772\n    test 3 line 1 toEtm8.gamma: 43.922790\n    test 4 line 1 toEtm8.scale: 1.029060\n    test 5 line 1 toEtm8.lat: 70.579277\n    test 6 line 1 toEtm8.lon: 45.599420\n    test 7 line 2 toEtm8.easting: 2624150.740929\n    test 8 line 2 toEtm8.northing: 1204434.041605\n    test 9 line 2 toEtm8.gamma: 4.292619\n    test 10 line 2 toEtm8.scale: 1.086051\n    test 11 line 2 toEtm8.lat: 10.018894\n    test 12 line 2 toEtm8.lon: 23.313324\n    test 13 line 3 toEtm8.easting: 9855841.232935\n    test 14 line 3 toEtm8.northing: 6145496.115155\n    test 15 line 3 toEtm8.gamma: 53.348315\n    test 16 line 3 toEtm8.scale: 2.445098\n    test 17 line 3 toEtm8.lat: 19.479896\n    test 18 line 3 toEtm8.lon: 75.662049\n    test 19 line 4 toEtm8.easting: 3206390.691996\n    test 20 line 4 toEtm8.northing: 2650745.400406\n    test 21 line 4 toEtm8.gamma: 11.666950\n    test 22 line 4 toEtm8.scale: 1.129359\n    test 23 line 4 toEtm8.lat: 21.072465\n    test 24 line 4 toEtm8.lon: 29.828684\n    test 25 line 5 toEtm8.easting: 4328154.083501\n    test 26 line 5 toEtm8.northing: 749647.623690\n    test 27 line 5 toEtm8.gamma: 4.024317\n    test 28 line 5 toEtm8.scale: 1.240829\n    test 29 line 5 toEtm8.lat: 5.458957\n    test 30 line 5 toEtm8.lon: 36.385237\n    test 31 line 6 toEtm8.easting: 847598.266514\n    test 32 line 6 toEtm8.northing: 7947180.962440\n    test 33 line 6 toEtm8.gamma: 21.639091\n    test 34 line 6 toEtm8.scale: 1.008399\n    test 35 line 6 toEtm8.lat: 70.175454\n    test 36 line 6 toEtm8.lon: 22.865350\n    test 37 line 7 toEtm8.easting: 2727657.337974\n    test 38 line 7 toEtm8.northing: 8283916.696410\n    test 39 line 7 toEtm8.gamma: 55.690909\n    test 40 line 7 toEtm8.scale: 1.091942\n    test 41 line 7 toEtm8.lat: 61.965605\n    test 42 line 7 toEtm8.lon: 58.931371\n    test 43 line 8 toEtm8.easting: 2331001.751890\n    test 44 line 8 toEtm8.northing: 1313608.224751\n    test 45 line 8 toEtm8.gamma: 4.214690\n    test 46 line 8 toEtm8.scale: 1.067599\n    test 47 line 8 toEtm8.lat: 11.116050\n    test 48 line 8 toEtm8.lon: 20.901069\n    test 49 line 9 toEtm8.easting: 6035557.239480\n    test 50 line 9 toEtm8.northing: 5791770.791879\n    test 51 line 9 toEtm8.gamma: 43.698170\n    test 52 line 9 toEtm8.scale: 1.481260\n    test 53 line 9 toEtm8.lat: 32.210543\n    test 54 line 9 toEtm8.lon: 60.705849\n    test 55 line 10 toEtm8.easting: 1064553.125852\n    test 56 line 10 toEtm8.northing: 9417273.737208\n    test 57 line 10 toEtm8.gamma: 61.100380\n    test 58 line 10 toEtm8.scale: 1.013475\n    test 59 line 10 toEtm8.lat: 79.187451\n    test 60 line 10 toEtm8.lon: 61.532382\n    test 61 line 11 toEtm8.easting: 1400137.116164\n    test 62 line 11 toEtm8.northing: 9616907.017686\n    test 63 line 11 toEtm8.gamma: 74.527087\n    test 64 line 11 toEtm8.scale: 1.023640\n    test 65 line 11 toEtm8.lat: 77.103759\n    test 66 line 11 toEtm8.lon: 74.899105\n    test 67 line 12 toEtm8.easting: 9860691.016626\n    test 68 line 12 toEtm8.northing: 7433039.143328\n    test 69 line 12 toEtm8.gamma: 65.357693\n    test 70 line 12 toEtm8.scale: 2.438973\n    test 71 line 12 toEtm8.lat: 21.889514\n    test 72 line 12 toEtm8.lon: 80.019886\n    test 73 line 13 toEtm8.easting: 8076501.833695\n    test 74 line 13 toEtm8.northing: 8561614.174782\n    test 75 line 13 toEtm8.gamma: 75.073393\n    test 76 line 13 toEtm8.scale: 1.906202\n    test 77 line 13 toEtm8.lat: 30.536296\n    test 78 line 13 toEtm8.lon: 82.186178\n    test 79 line 14 toEtm8.easting: 3335099.866623\n    test 80 line 14 toEtm8.northing: 6740519.084015\n    test 81 line 14 toEtm8.gamma: 40.611821\n    test 82 line 14 toEtm8.scale: 1.139021\n    test 83 line 14 toEtm8.lat: 49.990485\n    test 84 line 14 toEtm8.lon: 48.203179\n    test 85 line 15 toEtm8.easting: 12051574.928500\n    test 86 line 15 toEtm8.northing: 6587213.051951\n    test 87 line 15 toEtm8.gamma: 59.033237\n    test 88 line 15 toEtm8.scale: 3.357469\n    test 89 line 15 toEtm8.lat: 14.486312\n    test 90 line 15 toEtm8.lon: 80.905137\n    test 91 line 16 toEtm8.easting: 5387578.735298\n    test 92 line 16 toEtm8.northing: 4111216.907168\n    test 93 line 16 toEtm8.gamma: 27.574337\n    test 94 line 16 toEtm8.scale: 1.379357\n    test 95 line 16 toEtm8.lat: 25.936824\n    test 96 line 16 toEtm8.lon: 49.913598\n    test 97 line 17 toEtm8.easting: 2622214.380233\n    test 98 line 17 toEtm8.northing: 8678923.984567\n    test 99 line 17 toEtm8.gamma: 61.697275\n    test 100 line 17 toEtm8.scale: 1.084810\n    test 101 line 17 toEtm8.lat: 64.402196\n    test 102 line 17 toEtm8.lon: 64.091395\n    test 103 line 18 toEtm8.easting: 5068474.169633\n    test 104 line 18 toEtm8.northing: 9492066.993709\n    test 105 line 18 toEtm8.gamma: 83.156740\n    test 106 line 18 toEtm8.scale: 1.329990\n    test 107 line 18 toEtm8.lat: 48.451354\n    test 108 line 18 toEtm8.lon: 84.856198\n    test 109 line 19 toEtm8.easting: 738062.047779\n    test 110 line 19 toEtm8.northing: 3031007.074116\n    test 111 line 19 toEtm8.gamma: 3.416802\n    test 112 line 19 toEtm8.scale: 1.006332\n    test 113 line 19 toEtm8.lat: 27.203895\n    test 114 line 19 toEtm8.lon: 7.440229\n    test 115 line 20 toEtm8.easting: 1944413.834565\n    test 116 line 20 toEtm8.northing: 9613299.224493\n    test 117 line 20 toEtm8.gamma: 78.462831\n    test 118 line 20 toEtm8.scale: 1.046134\n    test 119 line 20 toEtm8.lat: 72.509000\n    test 120 line 20 toEtm8.lon: 78.982283\n    test 121 line 21 toEtm8.easting: 2114521.418406\n    test 122 line 21 toEtm8.northing: 4954077.440098\n    test 123 line 21 toEtm8.gamma: 17.571878\n    test 124 line 21 toEtm8.scale: 1.055093\n    test 125 line 21 toEtm8.lat: 41.824954\n    test 126 line 21 toEtm8.lon: 25.392744\n    test 127 line 22 toEtm8.easting: 620365.905090\n    test 128 line 22 toEtm8.northing: 4755542.026562\n    test 129 line 22 toEtm8.gamma: 5.152022\n    test 130 line 22 toEtm8.scale: 1.004338\n    test 131 line 22 toEtm8.lat: 42.701376\n    test 132 line 22 toEtm8.lon: 7.572738\n    test 133 line 23 toEtm8.easting: 263004.770989\n    test 134 line 23 toEtm8.northing: 4493669.762451\n    test 135 line 23 toEtm8.gamma: 2.020523\n    test 136 line 23 toEtm8.scale: 1.000452\n    test 137 line 23 toEtm8.lat: 40.552052\n    test 138 line 23 toEtm8.lon: 3.106056\n    test 139 line 24 toEtm8.easting: 3217221.739462\n    test 140 line 24 toEtm8.northing: 437776.119161\n    test 141 line 24 toEtm8.gamma: 1.848169\n    test 142 line 24 toEtm8.scale: 1.130558\n    test 143 line 24 toEtm8.lat: 3.501242\n    test 144 line 24 toEtm8.lon: 27.806507\n    test 145 line 25 toEtm8.easting: 14661142.444961\n    test 146 line 25 toEtm8.northing: 7476100.824185\n    test 147 line 25 toEtm8.gamma: 68.376669\n    test 148 line 25 toEtm8.scale: 4.896650\n    test 149 line 25 toEtm8.lat: 10.148715\n    test 150 line 25 toEtm8.lon: 85.373768\n    test 151 line 26 toEtm8.easting: 967777.158554\n    test 152 line 26 toEtm8.northing: 6615684.266592\n    test 153 line 26 toEtm8.gamma: 14.410044\n    test 154 line 26 toEtm8.scale: 1.011100\n    test 155 line 26 toEtm8.lat: 58.582623\n    test 156 line 26 toEtm8.lon: 16.755558\n    test 157 line 27 toEtm8.easting: 7558840.728461\n    test 158 line 27 toEtm8.northing: 4144728.130764\n    test 159 line 27 toEtm8.gamma: 32.557264\n    test 160 line 27 toEtm8.scale: 1.791490\n    test 161 line 27 toEtm8.lat: 19.793004\n    test 162 line 27 toEtm8.lon: 61.746763\n    test 163 line 28 toEtm8.easting: 1056008.314161\n    test 164 line 28 toEtm8.northing: 9290799.692669\n    test 165 line 28 toEtm8.gamma: 55.843278\n    test 166 line 28 toEtm8.scale: 1.013253\n    test 167 line 28 toEtm8.lat: 78.666776\n    test 168 line 28 toEtm8.lon: 56.365355\n    test 169 line 29 toEtm8.easting: 1943965.134687\n    test 170 line 29 toEtm8.northing: 1389972.228690\n    test 171 line 29 toEtm8.gamma: 3.774869\n    test 172 line 29 toEtm8.scale: 1.046724\n    test 173 line 29 toEtm8.lat: 11.998788\n    test 174 line 29 toEtm8.lon: 17.597873\n    test 175 line 30 toEtm8.easting: 5803077.072902\n    test 176 line 30 toEtm8.northing: 5649957.943659\n    test 177 line 30 toEtm8.gamma: 41.717943\n    test 178 line 30 toEtm8.scale: 1.442572\n    test 179 line 30 toEtm8.lat: 32.540378\n    test 180 line 30 toEtm8.lon: 58.764613\n    test 181 line 31 toEtm8.easting: 2928716.986009\n    test 182 line 31 toEtm8.northing: 5731835.058317\n    test 183 line 31 toEtm8.gamma: 28.538550\n    test 184 line 31 toEtm8.scale: 1.106780\n    test 185 line 31 toEtm8.lat: 45.160356\n    test 186 line 31 toEtm8.lon: 37.465285\n    test 187 line 32 toEtm8.easting: 326141.975756\n    test 188 line 32 toEtm8.northing: 8881325.164543\n    test 189 line 32 toEtm8.gamma: 16.111415\n    test 190 line 32 toEtm8.scale: 1.000900\n    test 191 line 32 toEtm8.lat: 79.584190\n    test 192 line 32 toEtm8.lon: 16.367006\n    test 193 line 33 toEtm8.easting: 3933015.267450\n    test 194 line 33 toEtm8.northing: 7932373.909512\n    test 195 line 33 toEtm8.gamma: 58.577424\n    test 196 line 33 toEtm8.scale: 1.194811\n    test 197 line 33 toEtm8.lat: 52.470664\n    test 198 line 33 toEtm8.lon: 64.125580\n    test 199 line 34 toEtm8.easting: 8598926.983213\n    test 200 line 34 toEtm8.northing: 6214135.167503\n    test 201 line 34 toEtm8.gamma: 52.612878\n    test 202 line 34 toEtm8.scale: 2.051367\n    test 203 line 34 toEtm8.lat: 23.702673\n    test 204 line 34 toEtm8.lon: 72.630363\n    test 205 line 35 toEtm8.easting: 6620553.333772\n    test 206 line 35 toEtm8.northing: 6540527.122948\n    test 207 line 35 toEtm8.gamma: 52.350140\n    test 208 line 35 toEtm8.scale: 1.586614\n    test 209 line 35 toEtm8.lat: 32.603520\n    test 210 line 35 toEtm8.lon: 67.280123\n    test 211 line 36 toEtm8.easting: 1515136.758292\n    test 212 line 36 toEtm8.northing: 3858996.087537\n    test 213 line 36 toEtm8.gamma: 9.225127\n    test 214 line 36 toEtm8.scale: 1.028029\n    test 215 line 36 toEtm8.lat: 33.776224\n    test 216 line 36 toEtm8.lon: 16.280993\n    test 217 line 37 toEtm8.easting: 479854.373445\n    test 218 line 37 toEtm8.northing: 8980501.389896\n    test 219 line 37 toEtm8.gamma: 25.021222\n    test 220 line 37 toEtm8.scale: 1.002415\n    test 221 line 37 toEtm8.lat: 79.932747\n    test 222 line 37 toEtm8.lon: 25.363622\n    test 223 line 38 toEtm8.easting: 5243446.564940\n    test 224 line 38 toEtm8.northing: 140657.213960\n    test 225 line 38 toEtm8.gamma: 0.862817\n    test 226 line 38 toEtm8.scale: 1.360358\n    test 227 line 38 toEtm8.lat: 0.935056\n    test 228 line 38 toEtm8.lon: 42.538824\n    test 229 line 39 toEtm8.easting: 12806457.923218\n    test 230 line 39 toEtm8.northing: 7170118.684675\n    test 231 line 39 toEtm8.gamma: 64.708921\n    test 232 line 39 toEtm8.scale: 3.740588\n    test 233 line 39 toEtm8.lat: 13.490862\n    test 234 line 39 toEtm8.lon: 83.178380\n    test 235 line 40 toEtm8.easting: 1202993.459158\n    test 236 line 40 toEtm8.northing: 5557316.053599\n    test 237 line 40 toEtm8.gamma: 12.579061\n    test 238 line 40 toEtm8.scale: 1.017426\n    test 239 line 40 toEtm8.lat: 48.979057\n    test 240 line 40 toEtm8.lon: 16.474542\n    test 241 line 41 toEtm8.easting: 1729088.710196\n    test 242 line 41 toEtm8.northing: 7770874.289954\n    test 243 line 41 toEtm8.gamma: 36.021783\n    test 244 line 41 toEtm8.scale: 1.036397\n    test 245 line 41 toEtm8.lat: 65.036016\n    test 246 line 41 toEtm8.lon: 38.729091\n    test 247 line 42 toEtm8.easting: 2437301.517425\n    test 248 line 42 toEtm8.northing: 5539327.748318\n    test 249 line 42 toEtm8.gamma: 23.461879\n    test 250 line 42 toEtm8.scale: 1.073459\n    test 251 line 42 toEtm8.lat: 45.510091\n    test 252 line 42 toEtm8.lon: 31.303729\n    test 253 line 43 toEtm8.easting: 3647186.135066\n    test 254 line 43 toEtm8.northing: 2086412.330983\n    test 255 line 43 toEtm8.gamma: 10.023991\n    test 256 line 43 toEtm8.scale: 1.168707\n    test 257 line 43 toEtm8.lat: 16.058010\n    test 258 line 43 toEtm8.lon: 32.520026\n    test 259 line 44 toEtm8.easting: 1818497.243556\n    test 260 line 44 toEtm8.northing: 4275471.745057\n    test 261 line 44 toEtm8.gamma: 12.499656\n    test 262 line 44 toEtm8.scale: 1.040604\n    test 263 line 44 toEtm8.lat: 36.845200\n    test 264 line 44 toEtm8.lon: 20.282283\n    test 265 line 45 toEtm8.easting: 3751304.113783\n    test 266 line 45 toEtm8.northing: 5130454.001592\n    test 267 line 45 toEtm8.gamma: 28.959707\n    test 268 line 45 toEtm8.scale: 1.177681\n    test 269 line 45 toEtm8.lat: 37.865481\n    test 270 line 45 toEtm8.lon: 41.990402\n    test 271 line 46 toEtm8.easting: 2616733.138544\n    test 272 line 46 toEtm8.northing: 394644.463815\n    test 273 line 46 toEtm8.gamma: 1.390425\n    test 274 line 46 toEtm8.scale: 1.085595\n    test 275 line 46 toEtm8.lat: 3.287272\n    test 276 line 46 toEtm8.lon: 22.917604\n    test 277 line 47 toEtm8.easting: 1756506.573942\n    test 278 line 47 toEtm8.northing: 5570393.986394\n    test 279 line 47 toEtm8.gamma: 17.897894\n    test 280 line 47 toEtm8.scale: 1.037732\n    test 281 line 47 toEtm8.lat: 47.813686\n    test 282 line 47 toEtm8.lon: 23.545092\n    test 283 line 48 toEtm8.easting: 8752461.894711\n    test 284 line 48 toEtm8.northing: 6087728.152284\n    test 285 line 48 toEtm8.gamma: 51.628465\n    test 286 line 48 toEtm8.scale: 2.095465\n    test 287 line 48 toEtm8.lat: 22.836853\n    test 288 line 48 toEtm8.lon: 72.604385\n    test 289 line 49 toEtm8.easting: 1309272.216432\n    test 290 line 49 toEtm8.northing: 59520.028899\n    test 291 line 49 toEtm8.gamma: 0.109069\n    test 292 line 49 toEtm8.scale: 1.020897\n    test 293 line 49 toEtm8.lat: 0.527262\n    test 294 line 49 toEtm8.lon: 11.684209\n    test 295 line 50 toEtm8.easting: 328652.277129\n    test 296 line 50 toEtm8.northing: 2233043.958874\n    test 297 line 50 toEtm8.gamma: 1.084863\n    test 298 line 50 toEtm8.scale: 1.000935\n    test 299 line 50 toEtm8.lat: 20.166742\n    test 300 line 50 toEtm8.lon: 3.143948\n    test 301 line 51 toEtm8.easting: 8637959.716447\n    test 302 line 51 toEtm8.northing: 9190635.156031\n    test 303 line 51 toEtm8.gamma: 81.802563\n    test 304 line 51 toEtm8.scale: 2.054329\n    test 305 line 51 toEtm8.lat: 28.604629\n    test 306 line 51 toEtm8.lon: 85.988721\n    test 307 line 52 toEtm8.easting: 8548521.455147\n    test 308 line 52 toEtm8.northing: 9172410.943282\n    test 309 line 52 toEtm8.gamma: 81.583928\n    test 310 line 52 toEtm8.scale: 2.029641\n    test 311 line 52 toEtm8.lat: 28.984048\n    test 312 line 52 toEtm8.lon: 85.833448\n    test 313 line 53 toEtm8.easting: 796987.281104\n    test 314 line 53 toEtm8.northing: 7677446.357675\n    test 315 line 53 toEtm8.gamma: 18.084472\n    test 316 line 53 toEtm8.scale: 1.007381\n    test 317 line 53 toEtm8.lat: 68.071020\n    test 318 line 53 toEtm8.lon: 19.392823\n    test 319 line 54 toEtm8.easting: 3291036.496762\n    test 320 line 54 toEtm8.northing: 9513199.600666\n    test 321 line 54 toEtm8.gamma: 80.890254\n    test 322 line 54 toEtm8.scale: 1.134826\n    test 323 line 54 toEtm8.lat: 61.416576\n    test 324 line 54 toEtm8.lon: 81.981611\n    test 325 line 55 toEtm8.easting: 7087225.330906\n    test 326 line 55 toEtm8.northing: 8382823.855822\n    test 327 line 55 toEtm8.gamma: 72.253756\n    test 328 line 55 toEtm8.scale: 1.678070\n    test 329 line 55 toEtm8.lat: 35.074753\n    test 330 line 55 toEtm8.lon: 79.496003\n    test 331 line 56 toEtm8.easting: 5090358.125724\n    test 332 line 56 toEtm8.northing: 4318294.133489\n    test 333 line 56 toEtm8.gamma: 28.266280\n    test 334 line 56 toEtm8.scale: 1.336264\n    test 335 line 56 toEtm8.lat: 28.078790\n    test 336 line 56 toEtm8.lon: 48.684350\n\n    test skipped (1): line 57 toEtm8.'84.986930137199 2.067177857261 20163.0752214330146 9438635.9888499043815 2.059277291707588222 .99960496589466017622'\n    test 337 line 58 toEtm8.easting: 3447670.550785\n    test 338 line 58 toEtm8.northing: 3680238.888223\n    test 339 line 58 toEtm8.gamma: 17.934948\n    test 340 line 58 toEtm8.scale: 1.149831\n    test 341 line 58 toEtm8.lat: 28.473948\n    test 342 line 58 toEtm8.lon: 34.127306\n    test 343 line 59 toEtm8.easting: 3396522.906798\n    test 344 line 59 toEtm8.northing: 8093659.687593\n    test 345 line 59 toEtm8.gamma: 57.747117\n    test 346 line 59 toEtm8.scale: 1.144006\n    test 347 line 59 toEtm8.lat: 56.629354\n    test 348 line 59 toEtm8.lon: 62.196474\n    test 349 line 60 toEtm8.easting: 11249894.100784\n    test 350 line 60 toEtm8.northing: 1619226.506299\n    test 351 line 60 toEtm8.gamma: 14.210358\n    test 352 line 60 toEtm8.scale: 3.048347\n    test 353 line 60 toEtm8.lat: 4.747762\n    test 354 line 60 toEtm8.lon: 70.932555\n    test 355 line 61 toEtm8.easting: 6808805.230950\n    test 356 line 61 toEtm8.northing: 8044779.777369\n    test 357 line 61 toEtm8.gamma: 68.242008\n    test 358 line 61 toEtm8.scale: 1.621464\n    test 359 line 61 toEtm8.lat: 35.882113\n    test 360 line 61 toEtm8.lon: 76.741849\n    test 361 line 62 toEtm8.easting: 2306021.556506\n    test 362 line 62 toEtm8.northing: 757191.592866\n    test 363 line 62 toEtm8.gamma: 2.385686\n    test 364 line 62 toEtm8.scale: 1.066159\n    test 365 line 62 toEtm8.lat: 6.420705\n    test 366 line 62 toEtm8.lon: 20.416028\n    test 367 line 63 toEtm8.easting: 1547406.313862\n    test 368 line 63 toEtm8.northing: 6048712.751824\n    test 369 line 63 toEtm8.gamma: 18.474372\n    test 370 line 63 toEtm8.scale: 1.029123\n    test 371 line 63 toEtm8.lat: 52.335248\n    test 372 line 63 toEtm8.lon: 22.879294\n    test 373 line 64 toEtm8.easting: 2430467.650383\n    test 374 line 64 toEtm8.northing: 7557167.613972\n    test 375 line 64 toEtm8.gamma: 42.110021\n    test 376 line 64 toEtm8.scale: 1.072759\n    test 377 line 64 toEtm8.lat: 59.846391\n    test 378 line 64 toEtm8.lon: 46.262536\n    test 379 line 65 toEtm8.easting: 2334053.905830\n    test 380 line 65 toEtm8.northing: 1948076.966582\n    test 381 line 65 toEtm8.gamma: 6.353185\n    test 382 line 65 toEtm8.scale: 1.067733\n    test 383 line 65 toEtm8.lat: 16.461790\n    test 384 line 65 toEtm8.lon: 21.433269\n    test 385 line 66 toEtm8.easting: 5564175.186737\n    test 386 line 66 toEtm8.northing: 1836851.660412\n    test 387 line 66 toEtm8.gamma: 11.870682\n    test 388 line 66 toEtm8.scale: 1.408265\n    test 389 line 66 toEtm8.lat: 11.707905\n    test 390 line 66 toEtm8.lon: 45.827075\n    test 391 line 67 toEtm8.easting: 6118505.590359\n    test 392 line 67 toEtm8.northing: 7631684.552421\n    test 393 line 67 toEtm8.gamma: 62.477323\n    test 394 line 67 toEtm8.scale: 1.493420\n    test 395 line 67 toEtm8.lat: 38.519075\n    test 396 line 67 toEtm8.lon: 71.935918\n    test 397 line 68 toEtm8.easting: 7365359.294665\n    test 398 line 68 toEtm8.northing: 8818194.451531\n    test 399 line 68 toEtm8.gamma: 77.207042\n    test 400 line 68 toEtm8.scale: 1.737639\n    test 401 line 68 toEtm8.lat: 34.264007\n    test 402 line 68 toEtm8.lon: 82.647878\n    test 403 line 69 toEtm8.easting: 36187.342415\n    test 404 line 69 toEtm8.northing: 2142565.324802\n    test 405 line 69 toEtm8.gamma: 0.114334\n    test 406 line 69 toEtm8.scale: 0.999616\n    test 407 line 69 toEtm8.lat: 19.376880\n    test 408 line 69 toEtm8.lon: 0.344605\n    test 409 line 70 toEtm8.easting: 2380328.546851\n    test 410 line 70 toEtm8.northing: 8440109.872384\n    test 411 line 70 toEtm8.gamma: 55.076067\n    test 412 line 70 toEtm8.scale: 1.069658\n    test 413 line 70 toEtm8.lat: 65.075805\n    test 414 line 70 toEtm8.lon: 57.653438\n    test 415 line 71 toEtm8.easting: 582511.608826\n    test 416 line 71 toEtm8.northing: 8876047.217071\n    test 417 line 71 toEtm8.gamma: 27.133300\n    test 418 line 71 toEtm8.scale: 1.003749\n    test 419 line 71 toEtm8.lat: 78.691870\n    test 420 line 71 toEtm8.lon: 27.591736\n    test 421 line 72 toEtm8.easting: 899441.350477\n    test 422 line 72 toEtm8.northing: 4582046.430516\n    test 423 line 72 toEtm8.gamma: 7.031211\n    test 424 line 72 toEtm8.scale: 1.009573\n    test 425 line 72 toEtm8.lat: 40.893022\n    test 426 line 72 toEtm8.lon: 10.668804\n    test 427 line 73 toEtm8.easting: 5022485.124337\n    test 428 line 73 toEtm8.northing: 9741774.933721\n    test 429 line 73 toEtm8.gamma: 86.505947\n    test 430 line 73 toEtm8.scale: 1.323700\n    test 431 line 73 toEtm8.lat: 48.914279\n    test 432 line 73 toEtm8.lon: 87.359268\n    test 433 line 74 toEtm8.easting: 6701004.587204\n    test 434 line 74 toEtm8.northing: 2954368.258231\n    test 435 line 74 toEtm8.gamma: 21.560153\n    test 436 line 74 toEtm8.scale: 1.608554\n    test 437 line 74 toEtm8.lat: 16.208377\n    test 438 line 74 toEtm8.lon: 54.494282\n    test 439 line 75 toEtm8.easting: 454986.218897\n    test 440 line 75 toEtm8.northing: 4885087.887884\n    test 441 line 75 toEtm8.gamma: 3.945648\n    test 442 line 75 toEtm8.scale: 1.002147\n    test 443 line 75 toEtm8.lat: 43.977936\n    test 444 line 75 toEtm8.lon: 5.672541\n    test 445 line 76 toEtm8.easting: 8903956.140311\n    test 446 line 76 toEtm8.northing: 8470608.577482\n    test 447 line 76 toEtm8.gamma: 74.723116\n    test 448 line 76 toEtm8.scale: 2.131311\n    test 449 line 76 toEtm8.lat: 26.850861\n    test 450 line 76 toEtm8.lon: 82.834480\n    test 451 line 77 toEtm8.easting: 1547627.594741\n    test 452 line 77 toEtm8.northing: 6036584.538347\n    test 453 line 77 toEtm8.gamma: 18.407629\n    test 454 line 77 toEtm8.scale: 1.029132\n    test 455 line 77 toEtm8.lat: 52.234165\n    test 456 line 77 toEtm8.lon: 22.827655\n    test 457 line 78 toEtm8.easting: 5221488.778597\n    test 458 line 78 toEtm8.northing: 1762592.044392\n    test 459 line 78 toEtm8.gamma: 10.927880\n    test 460 line 78 toEtm8.scale: 1.356721\n    test 461 line 78 toEtm8.lat: 11.674646\n    test 462 line 78 toEtm8.lon: 43.500147\n    test 463 line 79 toEtm8.easting: 4880570.297161\n    test 464 line 79 toEtm8.northing: 3325433.988867\n    test 465 line 79 toEtm8.gamma: 20.469862\n    test 466 line 79 toEtm8.scale: 1.308476\n    test 467 line 79 toEtm8.lat: 22.492753\n    test 468 line 79 toEtm8.lon: 44.179153\n    test 469 line 80 toEtm8.easting: 23930680.082694\n    test 470 line 80 toEtm8.northing: 7491462.099038\n    test 471 line 80 toEtm8.gamma: 75.937628\n    test 472 line 80 toEtm8.scale: 15.556365\n    test 473 line 80 toEtm8.lat: 0.910999\n    test 474 line 80 toEtm8.lon: 88.548823\n    test 475 line 81 toEtm8.easting: 71519.450458\n    test 476 line 81 toEtm8.northing: 3654740.444852\n    test 477 line 81 toEtm8.gamma: 0.417448\n    test 478 line 81 toEtm8.scale: 0.999663\n    test 479 line 81 toEtm8.lat: 33.028802\n    test 480 line 81 toEtm8.lon: 0.765843\n    test 481 line 82 toEtm8.easting: 4152797.795220\n    test 482 line 82 toEtm8.northing: 7823098.502751\n    test 483 line 82 toEtm8.gamma: 58.238901\n    test 484 line 82 toEtm8.scale: 1.218052\n    test 485 line 82 toEtm8.lat: 50.649195\n    test 486 line 82 toEtm8.lon: 64.389076\n    test 487 line 83 toEtm8.easting: 2926725.707639\n    test 488 line 83 toEtm8.northing: 7904918.072844\n    test 489 line 83 toEtm8.gamma: 51.592748\n    test 490 line 83 toEtm8.scale: 1.106206\n    test 491 line 83 toEtm8.lat: 58.820640\n    test 492 line 83 toEtm8.lon: 55.841048\n    test 493 line 84 toEtm8.easting: 1325509.113869\n    test 494 line 84 toEtm8.northing: 9675214.948213\n    test 495 line 84 toEtm8.gamma: 76.116213\n    test 496 line 84 toEtm8.scale: 1.021136\n    test 497 line 84 toEtm8.lat: 77.865762\n    test 498 line 84 toEtm8.lon: 76.414618\n    test 499 line 85 toEtm8.easting: 3045296.448926\n    test 500 line 85 toEtm8.northing: 542153.443280\n    test 501 line 85 toEtm8.gamma: 2.185095\n    test 502 line 85 toEtm8.scale: 1.116664\n    test 503 line 85 toEtm8.lat: 4.389639\n    test 504 line 85 toEtm8.lon: 26.458976\n    test 505 line 86 toEtm8.easting: 11843870.887518\n    test 506 line 86 toEtm8.northing: 5912803.073343\n    test 507 line 86 toEtm8.gamma: 52.814259\n    test 508 line 86 toEtm8.scale: 3.267256\n    test 509 line 86 toEtm8.lat: 13.924448\n    test 510 line 86 toEtm8.lon: 79.017873\n    test 511 line 87 toEtm8.easting: 8891099.704936\n    test 512 line 87 toEtm8.northing: 162160.142227\n    test 513 line 87 toEtm8.gamma: 1.312094\n    test 514 line 87 toEtm8.scale: 2.157363\n    test 515 line 87 toEtm8.lat: 0.679713\n    test 516 line 87 toEtm8.lon: 62.036792\n    test 517 line 88 toEtm8.easting: 4784814.214449\n    test 518 line 88 toEtm8.northing: 2984497.432580\n    test 519 line 88 toEtm8.gamma: 17.946545\n    test 520 line 88 toEtm8.scale: 1.296116\n    test 521 line 88 toEtm8.lat: 20.478281\n    test 522 line 88 toEtm8.lon: 42.678234\n    test 523 line 89 toEtm8.easting: 1772074.682154\n    test 524 line 89 toEtm8.northing: 9491552.560143\n    test 525 line 89 toEtm8.gamma: 73.634830\n    test 526 line 89 toEtm8.scale: 1.038202\n    test 527 line 89 toEtm8.lat: 73.695703\n    test 528 line 89 toEtm8.lon: 74.259097\n    test 529 line 90 toEtm8.easting: 1907649.782106\n    test 530 line 90 toEtm8.northing: 6994232.429379\n    test 531 line 90 toEtm8.gamma: 29.718929\n    test 532 line 90 toEtm8.scale: 1.044503\n    test 533 line 90 toEtm8.lat: 58.569370\n    test 534 line 90 toEtm8.lon: 33.777549\n    test 535 line 91 toEtm8.easting: 2084423.818962\n    test 536 line 91 toEtm8.northing: 2211816.035619\n    test 537 line 91 toEtm8.gamma: 6.556448\n    test 538 line 91 toEtm8.scale: 1.053793\n    test 539 line 91 toEtm8.lat: 18.933881\n    test 540 line 91 toEtm8.lon: 19.492695\n    test 541 line 92 toEtm8.easting: 1064373.671729\n    test 542 line 92 toEtm8.northing: 7812482.547461\n    test 543 line 92 toEtm8.gamma: 24.874124\n    test 544 line 92 toEtm8.scale: 1.013490\n    test 545 line 92 toEtm8.lat: 68.317934\n    test 546 line 92 toEtm8.lon: 26.515687\n    test 547 line 93 toEtm8.easting: 4770385.479297\n    test 548 line 93 toEtm8.northing: 9734318.902980\n    test 549 line 93 toEtm8.gamma: 86.273119\n    test 550 line 93 toEtm8.scale: 1.290553\n    test 551 line 93 toEtm8.lat: 50.641941\n    test 552 line 93 toEtm8.lon: 87.111557\n    test 553 line 94 toEtm8.easting: 6398096.677297\n    test 554 line 94 toEtm8.northing: 4410894.752104\n    test 555 line 94 toEtm8.gamma: 32.558023\n    test 556 line 94 toEtm8.scale: 1.548004\n    test 557 line 94 toEtm8.lat: 24.411298\n    test 558 line 94 toEtm8.lon: 56.881823\n    test 559 line 95 toEtm8.easting: 3138623.300415\n    test 560 line 95 toEtm8.northing: 3082960.600798\n    test 561 line 95 toEtm8.gamma: 13.557672\n    test 562 line 95 toEtm8.scale: 1.123724\n    test 563 line 95 toEtm8.lat: 24.571871\n    test 564 line 95 toEtm8.lon: 30.073097\n    test 565 line 96 toEtm8.easting: 2748325.794651\n    test 566 line 96 toEtm8.northing: 4202811.912668\n    test 567 line 96 toEtm8.gamma: 17.578706\n    test 568 line 96 toEtm8.scale: 1.094102\n    test 569 line 96 toEtm8.lat: 34.202576\n    test 570 line 96 toEtm8.lon: 29.383166\n    test 571 line 97 toEtm8.easting: 6677830.630367\n    test 572 line 97 toEtm8.northing: 5350071.837395\n    test 573 line 97 toEtm8.gamma: 41.306641\n    test 574 line 97 toEtm8.scale: 1.599774\n    test 575 line 97 toEtm8.lat: 27.756285\n    test 576 line 97 toEtm8.lon: 61.881905\n    test 577 line 98 toEtm8.easting: 5941536.667431\n    test 578 line 98 toEtm8.northing: 3293112.175140\n    test 579 line 98 toEtm8.gamma: 22.752845\n    test 580 line 98 toEtm8.scale: 1.468473\n    test 581 line 98 toEtm8.lat: 19.742270\n    test 582 line 98 toEtm8.lon: 50.957821\n    test 583 line 99 toEtm8.easting: 3152481.792567\n    test 584 line 99 toEtm8.northing: 5903048.837978\n    test 585 line 99 toEtm8.gamma: 31.494606\n    test 586 line 99 toEtm8.scale: 1.124085\n    test 587 line 99 toEtm8.lat: 45.453582\n    test 588 line 99 toEtm8.lon: 40.659833\n    test 589 line 100 toEtm8.easting: 10460475.897730\n    test 590 line 100 toEtm8.northing: 2553463.624391\n    test 591 line 100 toEtm8.gamma: 21.965869\n    test 592 line 100 toEtm8.scale: 2.700296\n    test 593 line 100 toEtm8.lat: 8.322144\n    test 594 line 100 toEtm8.lon: 69.488157\n    test 595 line 101 toEtm8.easting: 1964010.778021\n    test 596 line 101 toEtm8.northing: 5634042.923056\n    test 597 line 101 toEtm8.gamma: 20.117800\n    test 598 line 101 toEtm8.scale: 1.047344\n    test 599 line 101 toEtm8.lat: 47.749831\n    test 600 line 101 toEtm8.lon: 26.322002\n    test 601 line 102 toEtm8.easting: 2065306.424934\n    test 602 line 102 toEtm8.northing: 2135008.468651\n    test 603 line 102 toEtm8.gamma: 6.258981\n    test 604 line 102 toEtm8.scale: 1.052800\n    test 605 line 102 toEtm8.lat: 18.297493\n    test 606 line 102 toEtm8.lon: 19.244669\n    test 607 line 103 toEtm8.easting: 5127738.132976\n    test 608 line 103 toEtm8.northing: 6793804.304411\n    test 609 line 103 toEtm8.gamma: 50.557915\n    test 610 line 103 toEtm8.scale: 1.339412\n    test 611 line 103 toEtm8.lat: 40.834541\n    test 612 line 103 toEtm8.lon: 61.650750\n    test 613 line 104 toEtm8.easting: 8385525.148166\n    test 614 line 104 toEtm8.northing: 6924932.344306\n    test 615 line 104 toEtm8.gamma: 59.087561\n    test 616 line 104 toEtm8.scale: 1.990364\n    test 617 line 104 toEtm8.lat: 26.273247\n    test 618 line 104 toEtm8.lon: 74.926694\n    test 619 line 105 toEtm8.easting: 2297510.791909\n    test 620 line 105 toEtm8.northing: 2805666.962834\n    test 621 line 105 toEtm8.gamma: 9.301553\n    test 622 line 105 toEtm8.scale: 1.065508\n    test 623 line 105 toEtm8.lat: 23.698347\n    test 624 line 105 toEtm8.lon: 22.155657\n    test 625 line 106 toEtm8.easting: 13749544.917635\n    test 626 line 106 toEtm8.northing: 8288728.384650\n    test 627 line 106 toEtm8.gamma: 75.033970\n    test 628 line 106 toEtm8.scale: 4.270588\n    test 629 line 106 toEtm8.lat: 12.364113\n    test 630 line 106 toEtm8.lon: 86.348578\n    test 631 line 107 toEtm8.easting: 317518.455546\n    test 632 line 107 toEtm8.northing: 1097517.583745\n    test 633 line 107 toEtm8.gamma: 0.499004\n    test 634 line 107 toEtm8.scale: 1.000848\n    test 635 line 107 toEtm8.lat: 9.916091\n    test 636 line 107 toEtm8.lon: 2.895277\n    test 637 line 108 toEtm8.easting: 3856035.184888\n    test 638 line 108 toEtm8.northing: 9141364.450290\n    test 639 line 108 toEtm8.gamma: 75.972763\n    test 640 line 108 toEtm8.scale: 1.186786\n    test 641 line 108 toEtm8.lat: 56.553876\n    test 642 line 108 toEtm8.lon: 78.215077\n    test 643 line 109 toEtm8.easting: 1457484.942823\n    test 644 line 109 toEtm8.northing: 9385297.101973\n    test 645 line 109 toEtm8.gamma: 66.784662\n    test 646 line 109 toEtm8.scale: 1.025660\n    test 647 line 109 toEtm8.lat: 75.957631\n    test 648 line 109 toEtm8.lon: 67.407383\n    test 649 line 110 toEtm8.easting: 1304934.901841\n    test 650 line 110 toEtm8.northing: 3604655.155715\n    test 651 line 110 toEtm8.gamma: 7.343989\n    test 652 line 110 toEtm8.scale: 1.020672\n    test 653 line 110 toEtm8.lat: 31.826531\n    test 654 line 110 toEtm8.lon: 13.731050\n    test 655 line 111 toEtm8.easting: 1399093.491792\n    test 656 line 111 toEtm8.northing: 8314607.120342\n    test 657 line 111 toEtm8.gamma: 38.630161\n    test 658 line 111 toEtm8.scale: 1.023625\n    test 659 line 111 toEtm8.lat: 70.542985\n    test 660 line 111 toEtm8.lon: 40.282055\n    test 661 line 112 toEtm8.easting: 356983.618540\n    test 662 line 112 toEtm8.northing: 4282309.048994\n    test 663 line 112 toEtm8.gamma: 2.561485\n    test 664 line 112 toEtm8.scale: 1.001170\n    test 665 line 112 toEtm8.lat: 38.617487\n    test 666 line 112 toEtm8.lon: 4.099838\n    test 667 line 113 toEtm8.easting: 9952911.325091\n    test 668 line 113 toEtm8.northing: 1510288.212229\n    test 669 line 113 toEtm8.gamma: 12.752154\n    test 670 line 113 toEtm8.scale: 2.511357\n    test 671 line 113 toEtm8.lat: 5.389447\n    test 672 line 113 toEtm8.lon: 66.729612\n    test 673 line 114 toEtm8.easting: 6367592.504007\n    test 674 line 114 toEtm8.northing: 1200437.077672\n    test 675 line 114 toEtm8.gamma: 8.338041\n    test 676 line 114 toEtm8.scale: 1.546210\n    test 677 line 114 toEtm8.lat: 6.995168\n    test 678 line 114 toEtm8.lon: 50.014763\n    test 679 line 115 toEtm8.easting: 4391263.676460\n    test 680 line 115 toEtm8.northing: 6325455.989408\n    test 681 line 115 toEtm8.gamma: 42.653541\n    test 682 line 115 toEtm8.scale: 1.245560\n    test 683 line 115 toEtm8.lat: 42.321894\n    test 684 line 115 toEtm8.lon: 53.784040\n    test 685 line 116 toEtm8.easting: 6209880.527527\n    test 686 line 116 toEtm8.northing: 2154754.449747\n    test 687 line 116 toEtm8.gamma: 14.919512\n    test 688 line 116 toEtm8.scale: 1.516560\n    test 689 line 116 toEtm8.lat: 12.698515\n    test 690 line 116 toEtm8.lon: 50.242047\n    test 691 line 117 toEtm8.easting: 1507053.688772\n    test 692 line 117 toEtm8.northing: 6261383.513280\n    test 693 line 117 toEtm8.gamma: 19.280373\n    test 694 line 117 toEtm8.scale: 1.027584\n    test 695 line 117 toEtm8.lat: 54.207636\n    test 696 line 117 toEtm8.lon: 23.325731\n    test 697 line 118 toEtm8.easting: 8332725.003777\n    test 698 line 118 toEtm8.northing: 3002712.329753\n    test 699 line 118 toEtm8.gamma: 24.059212\n    test 700 line 118 toEtm8.scale: 1.990450\n    test 701 line 118 toEtm8.lat: 13.224787\n    test 702 line 118 toEtm8.lon: 62.426698\n    test 703 line 119 toEtm8.easting: 3958910.085235\n    test 704 line 119 toEtm8.northing: 3462284.926102\n    test 705 line 119 toEtm8.gamma: 18.546398\n    test 706 line 119 toEtm8.scale: 1.199351\n    test 707 line 119 toEtm8.lat: 25.650282\n    test 708 line 119 toEtm8.lon: 37.710391\n    test 709 line 120 toEtm8.easting: 10452892.282083\n    test 710 line 120 toEtm8.northing: 8000059.605114\n    test 711 line 120 toEtm8.gamma: 71.075240\n    test 712 line 120 toEtm8.scale: 2.650111\n    test 713 line 120 toEtm8.lat: 20.684773\n    test 714 line 120 toEtm8.lon: 82.849734\n    test 715 line 121 toEtm8.easting: 496148.253731\n    test 716 line 121 toEtm8.northing: 6388503.365043\n    test 717 line 121 toEtm8.gamma: 6.970955\n    test 718 line 121 toEtm8.scale: 1.002620\n    test 719 line 121 toEtm8.lat: 57.367533\n    test 720 line 121 toEtm8.lon: 8.260866\n    test 721 line 122 toEtm8.easting: 7375792.085850\n    test 722 line 122 toEtm8.northing: 5544624.072155\n    test 723 line 122 toEtm8.gamma: 44.510851\n    test 724 line 122 toEtm8.scale: 1.745898\n    test 725 line 122 toEtm8.lat: 25.958757\n    test 726 line 122 toEtm8.lon: 65.760477\n    test 727 line 123 toEtm8.easting: 2826258.041979\n    test 728 line 123 toEtm8.northing: 5167759.816959\n    test 729 line 123 toEtm8.gamma: 23.783897\n    test 730 line 123 toEtm8.scale: 1.099415\n    test 731 line 123 toEtm8.lat: 41.395848\n    test 732 line 123 toEtm8.lon: 33.661790\n    test 733 line 124 toEtm8.easting: 3958563.378851\n    test 734 line 124 toEtm8.northing: 8499923.231243\n    test 735 line 124 toEtm8.gamma: 66.570945\n    test 736 line 124 toEtm8.scale: 1.197296\n    test 737 line 124 toEtm8.lat: 54.266617\n    test 738 line 124 toEtm8.lon: 70.602199\n    test 739 line 125 toEtm8.easting: 4408189.533462\n    test 740 line 125 toEtm8.northing: 8046312.003642\n    test 741 line 125 toEtm8.gamma: 62.216959\n    test 742 line 125 toEtm8.scale: 1.246750\n    test 743 line 125 toEtm8.lat: 49.840393\n    test 744 line 125 toEtm8.lon: 68.036728\n    test 745 line 126 toEtm8.easting: 3629225.627512\n    test 746 line 126 toEtm8.northing: 6371258.454645\n    test 747 line 126 toEtm8.gamma: 38.881675\n    test 748 line 126 toEtm8.scale: 1.165511\n    test 749 line 126 toEtm8.lat: 46.306035\n    test 750 line 126 toEtm8.lon: 48.085828\n    test 751 line 127 toEtm8.easting: 602838.450710\n    test 752 line 127 toEtm8.northing: 4851370.637205\n    test 753 line 127 toEtm8.gamma: 5.160395\n    test 754 line 127 toEtm8.scale: 1.004073\n    test 755 line 127 toEtm8.lat: 43.570988\n    test 756 line 127 toEtm8.lon: 7.464494\n    test 757 line 128 toEtm8.easting: 764616.665051\n    test 758 line 128 toEtm8.northing: 2164299.337945\n    test 759 line 128 toEtm8.gamma: 2.429300\n    test 760 line 128 toEtm8.scale: 1.006835\n    test 761 line 128 toEtm8.lat: 19.427290\n    test 762 line 128 toEtm8.lon: 7.268247\n    test 763 line 129 toEtm8.easting: 5048953.021931\n    test 764 line 129 toEtm8.northing: 1885974.057398\n    test 765 line 129 toEtm8.gamma: 11.459804\n    test 766 line 129 toEtm8.scale: 1.332207\n    test 767 line 129 toEtm8.lat: 12.713794\n    test 768 line 129 toEtm8.lon: 42.507018\n    test 769 line 130 toEtm8.easting: 2293996.601155\n    test 770 line 130 toEtm8.northing: 2392408.644221\n    test 771 line 130 toEtm8.gamma: 7.791838\n    test 772 line 130 toEtm8.scale: 1.065348\n    test 773 line 130 toEtm8.lat: 20.238782\n    test 774 line 130 toEtm8.lon: 21.566068\n    test 775 line 131 toEtm8.easting: 1530603.839418\n    test 776 line 131 toEtm8.northing: 7287841.459898\n    test 777 line 131 toEtm8.gamma: 27.502921\n    test 778 line 131 toEtm8.scale: 1.028416\n    test 779 line 131 toEtm8.lat: 62.367847\n    test 780 line 131 toEtm8.lon: 30.438849\n    test 781 line 132 toEtm8.easting: 2660000.093152\n    test 782 line 132 toEtm8.northing: 5161982.213248\n    test 783 line 132 toEtm8.gamma: 22.629836\n    test 784 line 132 toEtm8.scale: 1.087851\n    test 785 line 132 toEtm8.lat: 41.891569\n    test 786 line 132 toEtm8.lon: 31.959547\n    test 787 line 133 toEtm8.easting: 5037478.329414\n    test 788 line 133 toEtm8.northing: 8768172.379908\n    test 789 line 133 toEtm8.gamma: 73.511182\n    test 790 line 133 toEtm8.scale: 1.325919\n    test 791 line 133 toEtm8.lat: 47.664248\n    test 792 line 133 toEtm8.lon: 77.630062\n    test 793 line 134 toEtm8.easting: 2289650.957799\n    test 794 line 134 toEtm8.northing: 8784328.593607\n    test 795 line 134 toEtm8.gamma: 60.786067\n    test 796 line 134 toEtm8.scale: 1.064346\n    test 797 line 134 toEtm8.lat: 67.259559\n    test 798 line 134 toEtm8.lon: 62.715293\n    test 799 line 135 toEtm8.easting: 647913.889744\n    test 800 line 135 toEtm8.northing: 6742382.228217\n    test 801 line 135 toEtm8.gamma: 10.252667\n    test 802 line 135 toEtm8.scale: 1.004748\n    test 803 line 135 toEtm8.lat: 60.295381\n    test 804 line 135 toEtm8.lon: 11.763097\n    test 805 line 136 toEtm8.easting: 1118372.698566\n    test 806 line 136 toEtm8.northing: 9040627.942263\n    test 807 line 136 toEtm8.gamma: 48.936803\n    test 808 line 136 toEtm8.scale: 1.014920\n    test 809 line 136 toEtm8.lat: 76.878914\n    test 810 line 136 toEtm8.lon: 49.685773\n    test 811 line 137 toEtm8.easting: 440696.510070\n    test 812 line 137 toEtm8.northing: 5500355.826297\n    test 813 line 137 toEtm8.gamma: 4.636104\n    test 814 line 137 toEtm8.scale: 1.001986\n    test 815 line 137 toEtm8.lat: 49.495349\n    test 816 line 137 toEtm8.lon: 6.087551\n    test 817 line 138 toEtm8.easting: 601728.149727\n    test 818 line 138 toEtm8.northing: 9095352.048149\n    test 819 line 138 toEtm8.gamma: 33.435771\n    test 820 line 138 toEtm8.scale: 1.004027\n    test 821 line 138 toEtm8.lat: 80.297265\n    test 822 line 138 toEtm8.lon: 33.816372\n    test 823 line 139 toEtm8.easting: 3481444.777827\n    test 824 line 139 toEtm8.northing: 291665.708749\n    test 825 line 139 toEtm8.gamma: 1.314726\n    test 826 line 139 toEtm8.scale: 1.153534\n    test 827 line 139 toEtm8.lat: 2.286437\n    test 828 line 139 toEtm8.lon: 29.855149\n    test 829 line 140 toEtm8.easting: 3515304.901524\n    test 830 line 140 toEtm8.northing: 1443981.882918\n    test 831 line 140 toEtm8.gamma: 6.641638\n    test 832 line 140 toEtm8.scale: 1.156509\n    test 833 line 140 toEtm8.lat: 11.264457\n    test 834 line 140 toEtm8.lon: 30.743907\n    test 835 line 141 toEtm8.easting: 160012.186959\n    test 836 line 141 toEtm8.northing: 3922609.253231\n    test 837 line 141 toEtm8.gamma: 1.022225\n    test 838 line 141 toEtm8.scale: 0.999916\n    test 839 line 141 toEtm8.lat: 35.434073\n    test 840 line 141 toEtm8.lon: 1.762795\n    test 841 line 142 toEtm8.easting: 4163744.245622\n    test 842 line 142 toEtm8.northing: 936884.674804\n    test 843 line 142 toEtm8.gamma: 4.892559\n    test 844 line 142 toEtm8.scale: 1.222164\n    test 845 line 142 toEtm8.lat: 6.923695\n    test 846 line 142 toEtm8.lon: 35.289456\n    test 847 line 143 toEtm8.easting: 6155200.017926\n    test 848 line 143 toEtm8.northing: 6926306.628390\n    test 849 line 143 toEtm8.gamma: 55.103258\n    test 850 line 143 toEtm8.scale: 1.500556\n    test 851 line 143 toEtm8.lat: 36.129672\n    test 852 line 143 toEtm8.lon: 67.533176\n    test 853 line 144 toEtm8.easting: 16263383.285440\n    test 854 line 144 toEtm8.northing: 3591296.731341\n    test 855 line 144 toEtm8.gamma: 36.040254\n    test 856 line 144 toEtm8.scale: 6.589288\n    test 857 line 144 toEtm8.lat: 4.406529\n    test 858 line 144 toEtm8.lon: 81.965734\n    test 859 line 145 toEtm8.easting: 14220995.515398\n    test 860 line 145 toEtm8.northing: 5100587.457503\n    test 861 line 145 toEtm8.gamma: 47.314258\n    test 862 line 145 toEtm8.scale: 4.693202\n    test 863 line 145 toEtm8.lat: 8.474589\n    test 864 line 145 toEtm8.lon: 81.129945\n    test 865 line 146 toEtm8.easting: 3173034.802372\n    test 866 line 146 toEtm8.northing: 7263421.942957\n    test 867 line 146 toEtm8.gamma: 45.215808\n    test 868 line 146 toEtm8.scale: 1.125410\n    test 869 line 146 toEtm8.lat: 53.907276\n    test 870 line 146 toEtm8.lon: 51.252904\n    test 871 line 147 toEtm8.easting: 10253274.092204\n    test 872 line 147 toEtm8.northing: 8867574.299792\n    test 873 line 147 toEtm8.gamma: 79.198250\n    test 874 line 147 toEtm8.scale: 2.572372\n    test 875 line 147 toEtm8.lat: 22.120545\n    test 876 line 147 toEtm8.lon: 85.756782\n    test 877 line 148 toEtm8.easting: 2415561.483230\n    test 878 line 148 toEtm8.northing: 8813225.217097\n    test 879 line 148 toEtm8.gamma: 62.548978\n    test 880 line 148 toEtm8.scale: 1.071748\n    test 881 line 148 toEtm8.lat: 66.444100\n    test 882 line 148 toEtm8.lon: 64.532960\n    test 883 line 149 toEtm8.easting: 9589179.293295\n    test 884 line 149 toEtm8.northing: 1777680.784143\n    test 885 line 149 toEtm8.gamma: 14.838483\n    test 886 line 149 toEtm8.scale: 2.380716\n    test 887 line 149 toEtm8.lat: 6.670965\n    test 888 line 149 toEtm8.lon: 65.660408\n    test 889 line 150 toEtm8.easting: 727939.438391\n    test 890 line 150 toEtm8.northing: 3684363.236810\n    test 891 line 150 toEtm8.gamma: 4.266227\n    test 892 line 150 toEtm8.scale: 1.006140\n    test 893 line 150 toEtm8.lat: 33.054057\n    test 894 line 150 toEtm8.lon: 7.787458\n    test 895 line 151 toEtm8.easting: 1250765.991085\n    test 896 line 151 toEtm8.northing: 792869.242719\n    test 897 line 151 toEtm8.gamma: 1.396497\n    test 898 line 151 toEtm8.scale: 1.019026\n    test 899 line 151 toEtm8.lat: 7.035525\n    test 900 line 151 toEtm8.lon: 11.253707\n    test 901 line 152 toEtm8.easting: 710421.705887\n    test 902 line 152 toEtm8.northing: 5019406.075928\n    test 903 line 152 toEtm8.gamma: 6.393949\n    test 904 line 152 toEtm8.scale: 1.005812\n    test 905 line 152 toEtm8.lat: 44.971340\n    test 906 line 152 toEtm8.lon: 9.009304\n    test 907 line 153 toEtm8.easting: 4600995.074643\n    test 908 line 153 toEtm8.northing: 4505712.084593\n    test 909 line 153 toEtm8.gamma: 27.997458\n    test 910 line 153 toEtm8.scale: 1.271841\n    test 911 line 153 toEtm8.lat: 30.821397\n    test 912 line 153 toEtm8.lon: 45.970577\n    test 913 line 154 toEtm8.easting: 557642.627782\n    test 914 line 154 toEtm8.northing: 7006911.251644\n    test 915 line 154 toEtm8.gamma: 9.769903\n    test 916 line 154 toEtm8.scale: 1.003411\n    test 917 line 154 toEtm8.lat: 62.763886\n    test 918 line 154 toEtm8.lon: 10.960144\n    test 919 line 155 toEtm8.easting: 4635062.294291\n    test 920 line 155 toEtm8.northing: 2702556.153311\n    test 921 line 155 toEtm8.gamma: 15.779547\n    test 922 line 155 toEtm8.scale: 1.277178\n    test 923 line 155 toEtm8.lat: 18.888611\n    test 924 line 155 toEtm8.lon: 41.009871\n    test 925 line 156 toEtm8.easting: 14554962.255919\n    test 926 line 156 toEtm8.northing: 4716639.908572\n    test 927 line 156 toEtm8.gamma: 44.192751\n    test 928 line 156 toEtm8.scale: 4.960020\n    test 929 line 156 toEtm8.lat: 7.524119\n    test 930 line 156 toEtm8.lon: 81.050715\n    test 931 line 157 toEtm8.easting: 882126.661736\n    test 932 line 157 toEtm8.northing: 7947612.369506\n    test 933 line 157 toEtm8.gamma: 22.429487\n    test 934 line 157 toEtm8.scale: 1.009132\n    test 935 line 157 toEtm8.lat: 70.063902\n    test 936 line 157 toEtm8.lon: 23.705255\n    test 937 line 158 toEtm8.easting: 20262021.645983\n    test 938 line 158 toEtm8.northing: 8113827.820796\n    test 939 line 158 toEtm8.gamma: 76.936057\n    test 940 line 158 toEtm8.scale: 10.349092\n    test 941 line 158 toEtm8.lat: 3.556526\n    test 942 line 158 toEtm8.lon: 88.363529\n    test 943 line 159 toEtm8.easting: 6500508.399850\n    test 944 line 159 toEtm8.northing: 6956476.342368\n    test 945 line 159 toEtm8.gamma: 56.237116\n    test 946 line 159 toEtm8.scale: 1.563162\n    test 947 line 159 toEtm8.lat: 34.551257\n    test 948 line 159 toEtm8.lon: 69.111091\n    test 949 line 160 toEtm8.easting: 3884036.641314\n    test 950 line 160 toEtm8.northing: 6890167.411733\n    test 951 line 160 toEtm8.gamma: 45.760130\n    test 952 line 160 toEtm8.scale: 1.190167\n    test 953 line 160 toEtm8.lat: 47.929051\n    test 954 line 160 toEtm8.lon: 54.103418\n    test 955 line 161 toEtm8.easting: 217855.546078\n    test 956 line 161 toEtm8.northing: 6184108.122568\n    test 957 line 161 toEtm8.gamma: 2.870993\n    test 958 line 161 toEtm8.scale: 1.000182\n    test 959 line 161 toEtm8.lat: 55.753536\n    test 960 line 161 toEtm8.lon: 3.471798\n    test 961 line 162 toEtm8.easting: 11384139.290402\n    test 962 line 162 toEtm8.northing: 8893889.949556\n    test 963 line 162 toEtm8.gamma: 79.774854\n    test 964 line 162 toEtm8.scale: 3.024672\n    test 965 line 162 toEtm8.lat: 18.530847\n    test 966 line 162 toEtm8.lon: 86.555312\n    test 967 line 163 toEtm8.easting: 3469855.989805\n    test 968 line 163 toEtm8.northing: 7723193.799228\n    test 969 line 163 toEtm8.gamma: 53.114700\n    test 970 line 163 toEtm8.scale: 1.150540\n    test 971 line 163 toEtm8.lat: 54.510125\n    test 972 line 163 toEtm8.lon: 58.556056\n    test 973 line 164 toEtm8.easting: 5926165.994939\n    test 974 line 164 toEtm8.northing: 9385463.732747\n    test 975 line 164 toEtm8.gamma: 82.506981\n    test 976 line 164 toEtm8.scale: 1.459758\n    test 977 line 164 toEtm8.lat: 42.864162\n    test 978 line 164 toEtm8.lon: 84.866326\n    test 979 line 165 toEtm8.easting: 5798639.662224\n    test 980 line 165 toEtm8.northing: 5305387.640916\n    test 981 line 165 toEtm8.gamma: 38.617257\n    test 982 line 165 toEtm8.scale: 1.442263\n    test 983 line 165 toEtm8.lat: 30.911943\n    test 984 line 165 toEtm8.lon: 57.114102\n    test 985 line 166 toEtm8.easting: 9464.934388\n    test 986 line 166 toEtm8.northing: 6489121.624944\n    test 987 line 166 toEtm8.gamma: 0.138696\n    test 988 line 166 toEtm8.scale: 0.999601\n    test 989 line 166 toEtm8.lat: 58.542493\n    test 990 line 166 toEtm8.lon: 0.162593\n    test 991 line 167 toEtm8.easting: 12575834.275614\n    test 992 line 167 toEtm8.northing: 8356610.895486\n    test 993 line 167 toEtm8.gamma: 75.235223\n    test 994 line 167 toEtm8.scale: 3.599442\n    test 995 line 167 toEtm8.lat: 15.022689\n    test 996 line 167 toEtm8.lon: 85.792615\n    test 997 line 168 toEtm8.easting: 2719653.543469\n    test 998 line 168 toEtm8.northing: 9362389.163495\n    test 999 line 168 toEtm8.gamma: 76.049670\n    test 1000 line 168 toEtm8.scale: 1.091315\n    test 1001 line 168 toEtm8.lat: 65.692275\n    test 1002 line 168 toEtm8.lon: 77.241377\n    test 1003 line 169 toEtm8.easting: 4845341.924698\n    test 1004 line 169 toEtm8.northing: 8710522.326901\n    test 1005 line 169 toEtm8.gamma: 72.320942\n    test 1006 line 169 toEtm8.scale: 1.300382\n    test 1007 line 169 toEtm8.lat: 48.806211\n    test 1008 line 169 toEtm8.lon: 76.486365\n    test 1009 line 170 toEtm8.easting: 3935261.522763\n    test 1010 line 170 toEtm8.northing: 9454271.649062\n    test 1011 line 170 toEtm8.gamma: 81.162334\n    test 1012 line 170 toEtm8.scale: 1.194767\n    test 1013 line 170 toEtm8.lat: 56.436025\n    test 1014 line 170 toEtm8.lon: 82.611568\n    test 1015 line 171 toEtm8.easting: 7074299.823000\n    test 1016 line 171 toEtm8.northing: 1648736.065055\n    test 1017 line 171 toEtm8.gamma: 12.145925\n    test 1018 line 171 toEtm8.scale: 1.687551\n    test 1019 line 171 toEtm8.lat: 8.766053\n    test 1020 line 171 toEtm8.lon: 54.367539\n    test 1021 line 172 toEtm8.easting: 3689072.579308\n    test 1022 line 172 toEtm8.northing: 2230802.665211\n    test 1023 line 172 toEtm8.gamma: 10.856248\n    test 1024 line 172 toEtm8.scale: 1.172689\n    test 1025 line 172 toEtm8.lat: 17.095495\n    test 1026 line 172 toEtm8.lon: 33.059128\n    test 1027 line 173 toEtm8.easting: 8102565.885587\n    test 1028 line 173 toEtm8.northing: 5167396.617580\n    test 1029 line 173 toEtm8.gamma: 42.324886\n    test 1030 line 173 toEtm8.scale: 1.921927\n    test 1031 line 173 toEtm8.lat: 22.142861\n    test 1032 line 173 toEtm8.lon: 67.200684\n    test 1033 line 174 toEtm8.easting: 8181271.353564\n    test 1034 line 174 toEtm8.northing: 4425436.547185\n    test 1035 line 174 toEtm8.gamma: 35.900845\n    test 1036 line 174 toEtm8.scale: 1.945017\n    test 1037 line 174 toEtm8.lat: 19.222623\n    test 1038 line 174 toEtm8.lon: 65.180785\n    test 1039 line 175 toEtm8.easting: 767067.394003\n    test 1040 line 175 toEtm8.northing: 3701745.857296\n    test 1041 line 175 toEtm8.gamma: 4.519201\n    test 1042 line 175 toEtm8.scale: 1.006863\n    test 1043 line 175 toEtm8.lat: 33.182474\n    test 1044 line 175 toEtm8.lon: 8.216952\n    test 1045 line 176 toEtm8.easting: 6688114.168572\n    test 1046 line 176 toEtm8.northing: 2052857.299639\n    test 1047 line 176 toEtm8.gamma: 14.766191\n    test 1048 line 176 toEtm8.scale: 1.607200\n    test 1049 line 176 toEtm8.lat: 11.417963\n    test 1050 line 176 toEtm8.lon: 52.808691\n    test 1051 line 177 toEtm8.easting: 5608408.773761\n    test 1052 line 177 toEtm8.northing: 3859055.659110\n    test 1053 line 177 toEtm8.gamma: 26.244151\n    test 1054 line 177 toEtm8.scale: 1.413463\n    test 1055 line 177 toEtm8.lat: 23.836688\n    test 1056 line 177 toEtm8.lon: 50.500180\n    test 1057 line 178 toEtm8.easting: 3836942.765275\n    test 1058 line 178 toEtm8.northing: 6415467.634326\n    test 1059 line 178 toEtm8.gamma: 40.575885\n    test 1060 line 178 toEtm8.scale: 1.185615\n    test 1061 line 178 toEtm8.lat: 45.550020\n    test 1062 line 178 toEtm8.lon: 50.148036\n    test 1063 line 179 toEtm8.easting: 1298730.366025\n    test 1064 line 179 toEtm8.northing: 6021453.000792\n    test 1065 line 179 toEtm8.gamma: 15.613320\n    test 1066 line 179 toEtm8.scale: 1.020367\n    test 1067 line 179 toEtm8.lat: 52.746079\n    test 1068 line 179 toEtm8.lon: 19.343926\n    test 1069 line 180 toEtm8.easting: 416934.289208\n    test 1070 line 180 toEtm8.northing: 7295683.451705\n    test 1071 line 180 toEtm8.gamma: 8.238232\n    test 1072 line 180 toEtm8.scale: 1.001729\n    test 1073 line 180 toEtm8.lat: 65.513348\n    test 1074 line 180 toEtm8.lon: 9.039529\n    test 1075 line 181 toEtm8.easting: 4336076.850889\n    test 1076 line 181 toEtm8.northing: 7617975.722779\n    test 1077 line 181 toEtm8.gamma: 56.537088\n    test 1078 line 181 toEtm8.scale: 1.238582\n    test 1079 line 181 toEtm8.lat: 48.709795\n    test 1080 line 181 toEtm8.lon: 63.554005\n    test 1081 line 182 toEtm8.easting: 168047.336980\n    test 1082 line 182 toEtm8.northing: 2185000.046530\n    test 1083 line 182 toEtm8.gamma: 0.542187\n    test 1084 line 182 toEtm8.scale: 0.999949\n    test 1085 line 182 toEtm8.lat: 19.753509\n    test 1086 line 182 toEtm8.lon: 1.603846\n    test 1087 line 183 toEtm8.easting: 8276281.328790\n    test 1088 line 183 toEtm8.northing: 263444.350545\n    test 1089 line 183 toEtm8.gamma: 2.071435\n    test 1090 line 183 toEtm8.scale: 1.980314\n    test 1091 line 183 toEtm8.lat: 1.202816\n    test 1092 line 183 toEtm8.lon: 59.377276\n    test 1093 line 184 toEtm8.easting: 4772573.810710\n    test 1094 line 184 toEtm8.northing: 6765710.336002\n    test 1095 line 184 toEtm8.gamma: 48.857561\n    test 1096 line 184 toEtm8.scale: 1.291911\n    test 1097 line 184 toEtm8.lat: 42.564975\n    test 1098 line 184 toEtm8.lon: 59.356947\n    test 1099 line 185 toEtm8.easting: 5427755.074639\n    test 1100 line 185 toEtm8.northing: 1556055.820924\n    test 1101 line 185 toEtm8.gamma: 9.862178\n    test 1102 line 185 toEtm8.scale: 1.387394\n    test 1103 line 185 toEtm8.lat: 10.090572\n    test 1104 line 185 toEtm8.lon: 44.604132\n    test 1105 line 186 toEtm8.easting: 11588458.616041\n    test 1106 line 186 toEtm8.northing: 5707993.922613\n    test 1107 line 186 toEtm8.gamma: 50.784827\n    test 1108 line 186 toEtm8.scale: 3.149567\n    test 1109 line 186 toEtm8.lat: 14.133028\n    test 1110 line 186 toEtm8.lon: 78.097533\n    test 1111 line 187 toEtm8.easting: 7152433.802688\n    test 1112 line 187 toEtm8.northing: 761390.695844\n    test 1113 line 187 toEtm8.gamma: 5.607350\n    test 1114 line 187 toEtm8.scale: 1.705261\n    test 1115 line 187 toEtm8.lat: 4.031123\n    test 1116 line 187 toEtm8.lon: 54.048782\n    test 1117 line 188 toEtm8.easting: 3105651.390901\n    test 1118 line 188 toEtm8.northing: 9426026.169064\n    test 1119 line 188 toEtm8.gamma: 78.750206\n    test 1120 line 188 toEtm8.scale: 1.119737\n    test 1121 line 188 toEtm8.lat: 62.746603\n    test 1122 line 188 toEtm8.lon: 79.968641\n    test 1123 line 189 toEtm8.easting: 2959009.639022\n    test 1124 line 189 toEtm8.northing: 8339242.269282\n    test 1125 line 189 toEtm8.gamma: 58.460865\n    test 1126 line 189 toEtm8.scale: 1.108554\n    test 1127 line 189 toEtm8.lat: 60.626429\n    test 1128 line 189 toEtm8.lon: 61.851551\n    test 1129 line 190 toEtm8.easting: 8640472.267145\n    test 1130 line 190 toEtm8.northing: 6230320.417931\n    test 1131 line 190 toEtm8.gamma: 52.816810\n    test 1132 line 190 toEtm8.scale: 2.062973\n    test 1133 line 190 toEtm8.lat: 23.600626\n    test 1134 line 190 toEtm8.lon: 72.811634\n    test 1135 line 191 toEtm8.easting: 811352.108932\n    test 1136 line 191 toEtm8.northing: 9816129.813481\n    test 1137 line 191 toEtm8.gamma: 77.299184\n    test 1138 line 191 toEtm8.scale: 1.007651\n    test 1139 line 191 toEtm8.lat: 82.572236\n    test 1140 line 191 toEtm8.lon: 77.402323\n    test 1141 line 192 toEtm8.easting: 6521874.973458\n    test 1142 line 192 toEtm8.northing: 1053612.479744\n    test 1143 line 192 toEtm8.gamma: 7.407328\n    test 1144 line 192 toEtm8.scale: 1.575529\n    test 1145 line 192 toEtm8.lat: 6.030051\n    test 1146 line 192 toEtm8.lon: 50.783505\n    test 1147 line 193 toEtm8.easting: 3477983.997875\n    test 1148 line 193 toEtm8.northing: 5651613.325947\n    test 1149 line 193 toEtm8.gamma: 31.530673\n    test 1150 line 193 toEtm8.scale: 1.151875\n    test 1151 line 193 toEtm8.lat: 42.411523\n    test 1152 line 193 toEtm8.lon: 42.258009\n    test 1153 line 194 toEtm8.easting: 629892.822243\n    test 1154 line 194 toEtm8.northing: 3283914.910451\n    test 1155 line 194 toEtm8.gamma: 3.210482\n    test 1156 line 194 toEtm8.scale: 1.004499\n    test 1157 line 194 toEtm8.lat: 29.526120\n    test 1158 line 194 toEtm8.lon: 6.493069\n    test 1159 line 195 toEtm8.easting: 3381879.687227\n    test 1160 line 195 toEtm8.northing: 5103629.325665\n    test 1161 line 195 toEtm8.gamma: 26.748108\n    test 1162 line 195 toEtm8.scale: 1.143559\n    test 1163 line 195 toEtm8.lat: 39.021853\n    test 1164 line 195 toEtm8.lon: 38.641779\n    test 1165 line 196 toEtm8.easting: 2815986.534177\n    test 1166 line 196 toEtm8.northing: 9387029.120718\n    test 1167 line 196 toEtm8.gamma: 76.967262\n    test 1168 line 196 toEtm8.scale: 1.098032\n    test 1169 line 196 toEtm8.lat: 64.971850\n    test 1170 line 196 toEtm8.lon: 78.151893\n    test 1171 line 197 toEtm8.easting: 3398195.889603\n    test 1172 line 197 toEtm8.northing: 9138936.031490\n    test 1173 line 197 toEtm8.gamma: 74.477499\n    test 1174 line 197 toEtm8.scale: 1.144009\n    test 1175 line 197 toEtm8.lat: 59.961819\n    test 1176 line 197 toEtm8.lon: 76.473422\n    test 1177 line 198 toEtm8.easting: 2421734.754637\n    test 1178 line 198 toEtm8.northing: 5002372.094991\n    test 1179 line 198 toEtm8.gamma: 20.017082\n    test 1180 line 198 toEtm8.scale: 1.072592\n    test 1181 line 198 toEtm8.lat: 41.374040\n    test 1182 line 198 toEtm8.lon: 28.848343\n    test 1183 line 199 toEtm8.easting: 2360869.895525\n    test 1184 line 199 toEtm8.northing: 9553298.449536\n    test 1185 line 199 toEtm8.gamma: 78.848205\n    test 1186 line 199 toEtm8.scale: 1.068453\n    test 1187 line 199 toEtm8.lat: 68.946087\n    test 1188 line 199 toEtm8.lon: 79.574523\n    test 1189 line 200 toEtm8.easting: 1196539.972194\n    test 1190 line 200 toEtm8.northing: 9861920.836230\n    test 1191 line 200 toEtm8.gamma: 83.437668\n    test 1192 line 200 toEtm8.scale: 1.017137\n    test 1193 line 200 toEtm8.lat: 79.275096\n    test 1194 line 200 toEtm8.lon: 83.551272\n    test 1195 line 201 toEtm8.easting: 1327758.704795\n    test 1196 line 201 toEtm8.northing: 2375509.241683\n    test 1197 line 201 toEtm8.gamma: 4.617572\n    test 1198 line 201 toEtm8.scale: 1.021465\n    test 1199 line 201 toEtm8.lat: 21.000252\n    test 1200 line 201 toEtm8.lon: 12.697444\n    test 1201 line 202 toEtm8.easting: 2070860.327644\n    test 1202 line 202 toEtm8.northing: 8604500.719581\n    test 1203 line 202 toEtm8.gamma: 54.722761\n    test 1204 line 202 toEtm8.scale: 1.052469\n    test 1205 line 202 toEtm8.lat: 68.015227\n    test 1206 line 202 toEtm8.lon: 56.732419\n    test 1207 line 203 toEtm8.easting: 6564776.654864\n    test 1208 line 203 toEtm8.northing: 8171207.177379\n    test 1209 line 203 toEtm8.gamma: 69.237523\n    test 1210 line 203 toEtm8.scale: 1.573894\n    test 1211 line 203 toEtm8.lat: 37.423675\n    test 1212 line 203 toEtm8.lon: 76.947359\n    test 1213 line 204 toEtm8.easting: 592653.553821\n    test 1214 line 204 toEtm8.northing: 6125529.810052\n    test 1215 line 204 toEtm8.gamma: 7.600785\n    test 1216 line 204 toEtm8.scale: 1.003912\n    test 1217 line 204 toEtm8.lat: 54.922707\n    test 1218 line 204 toEtm8.lon: 9.260818\n    test 1219 line 205 toEtm8.easting: 693459.671821\n    test 1220 line 205 toEtm8.northing: 6943779.991032\n    test 1221 line 205 toEtm8.gamma: 11.787587\n    test 1222 line 205 toEtm8.scale: 1.005496\n    test 1223 line 205 toEtm8.lat: 61.982810\n    test 1224 line 205 toEtm8.lon: 13.299659\n    test 1225 line 206 toEtm8.easting: 1838956.187625\n    test 1226 line 206 toEtm8.northing: 3511959.612381\n    test 1227 line 206 toEtm8.gamma: 9.844313\n    test 1228 line 206 toEtm8.scale: 1.041603\n    test 1229 line 206 toEtm8.lat: 30.324214\n    test 1230 line 206 toEtm8.lon: 18.959769\n    test 1231 line 207 toEtm8.easting: 4460690.884597\n    test 1232 line 207 toEtm8.northing: 5541873.235403\n    test 1233 line 207 toEtm8.gamma: 35.768613\n    test 1234 line 207 toEtm8.scale: 1.254179\n    test 1235 line 207 toEtm8.lat: 37.629667\n    test 1236 line 207 toEtm8.lon: 49.649131\n    test 1237 line 208 toEtm8.easting: 2311168.998941\n    test 1238 line 208 toEtm8.northing: 9480561.869119\n    test 1239 line 208 toEtm8.gamma: 76.828257\n    test 1240 line 208 toEtm8.scale: 1.065556\n    test 1241 line 208 toEtm8.lat: 69.225574\n    test 1242 line 208 toEtm8.lon: 77.656135\n    test 1243 line 209 toEtm8.easting: 4111775.114451\n    test 1244 line 209 toEtm8.northing: 6509014.348792\n    test 1245 line 209 toEtm8.gamma: 43.052130\n    test 1246 line 209 toEtm8.scale: 1.214125\n    test 1247 line 209 toEtm8.lat: 44.698478\n    test 1248 line 209 toEtm8.lon: 52.979304\n    test 1249 line 210 toEtm8.easting: 75358.261962\n    test 1250 line 210 toEtm8.northing: 7711258.662251\n    test 1251 line 210 toEtm8.gamma: 1.806297\n    test 1252 line 210 toEtm8.scale: 0.999669\n    test 1253 line 210 toEtm8.lat: 69.499594\n    test 1254 line 210 toEtm8.lon: 1.928336\n    test 1255 line 211 toEtm8.easting: 8781885.229116\n    test 1256 line 211 toEtm8.northing: 9184776.452211\n    test 1257 line 211 toEtm8.gamma: 81.795539\n    test 1258 line 211 toEtm8.scale: 2.094908\n    test 1259 line 211 toEtm8.lat: 27.981364\n    test 1260 line 211 toEtm8.lon: 86.061113\n    test 1261 line 212 toEtm8.easting: 954378.415174\n    test 1262 line 212 toEtm8.northing: 7449110.669807\n    test 1263 line 212 toEtm8.gamma: 19.380657\n    test 1264 line 212 toEtm8.scale: 1.010768\n    test 1265 line 212 toEtm8.lat: 65.699839\n    test 1266 line 212 toEtm8.lon: 21.104725\n    test 1267 line 213 toEtm8.easting: 720971.793706\n    test 1268 line 213 toEtm8.northing: 5265195.121555\n    test 1269 line 213 toEtm8.gamma: 7.002995\n    test 1270 line 213 toEtm8.scale: 1.005995\n    test 1271 line 213 toEtm8.lat: 47.143648\n    test 1272 line 213 toEtm8.lon: 9.512189\n    test 1273 line 214 toEtm8.easting: 561561.493937\n    test 1274 line 214 toEtm8.northing: 989910.236221\n    test 1275 line 214 toEtm8.gamma: 0.793118\n    test 1276 line 214 toEtm8.scale: 1.003505\n    test 1277 line 214 toEtm8.lat: 8.920167\n    test 1278 line 214 toEtm8.lon: 5.101513\n    test 1279 line 215 toEtm8.easting: 3446829.634468\n    test 1280 line 215 toEtm8.northing: 9232868.155664\n    test 1281 line 215 toEtm8.gamma: 76.279075\n    test 1282 line 215 toEtm8.scale: 1.148263\n    test 1283 line 215 toEtm8.lat: 59.778971\n    test 1284 line 215 toEtm8.lon: 78.080322\n    test 1285 line 216 toEtm8.easting: 4048307.545909\n    test 1286 line 216 toEtm8.northing: 9800416.422998\n    test 1287 line 216 toEtm8.gamma: 86.843918\n    test 1288 line 216 toEtm8.scale: 1.206495\n    test 1289 line 216 toEtm8.lat: 55.865310\n    test 1290 line 216 toEtm8.lon: 87.384288\n    test 1291 line 217 toEtm8.easting: 8973188.480293\n    test 1292 line 217 toEtm8.northing: 7042230.087021\n    test 1293 line 217 toEtm8.gamma: 60.872456\n    test 1294 line 217 toEtm8.scale: 2.156098\n    test 1295 line 217 toEtm8.lat: 24.310973\n    test 1296 line 217 toEtm8.lon: 76.823777\n    test 1297 line 218 toEtm8.easting: 126314.191618\n    test 1298 line 218 toEtm8.northing: 396006.687921\n    test 1299 line 218 toEtm8.gamma: 0.071065\n    test 1300 line 218 toEtm8.scale: 0.999798\n    test 1301 line 218 toEtm8.lat: 3.582041\n    test 1302 line 218 toEtm8.lon: 1.137286\n    test 1303 line 219 toEtm8.easting: 5247652.345647\n    test 1304 line 219 toEtm8.northing: 8670513.359752\n    test 1305 line 219 toEtm8.gamma: 72.700498\n    test 1306 line 219 toEtm8.scale: 1.355272\n    test 1307 line 219 toEtm8.lat: 46.124233\n    test 1308 line 219 toEtm8.lon: 77.313118\n    test 1309 line 220 toEtm8.easting: 8103656.838119\n    test 1310 line 220 toEtm8.northing: 9469794.014737\n    test 1311 line 220 toEtm8.gamma: 84.490673\n    test 1312 line 220 toEtm8.scale: 1.912164\n    test 1313 line 220 toEtm8.lat: 31.171391\n    test 1314 line 220 toEtm8.lon: 87.104504\n    test 1315 line 221 toEtm8.easting: 6300112.758236\n    test 1316 line 221 toEtm8.northing: 93835.917364\n    test 1317 line 221 toEtm8.gamma: 0.644805\n    test 1318 line 221 toEtm8.scale: 1.534073\n    test 1319 line 221 toEtm8.lat: 0.553171\n    test 1320 line 221 toEtm8.lon: 49.117104\n    test 1321 line 222 toEtm8.easting: 3894813.593782\n    test 1322 line 222 toEtm8.northing: 4833832.341027\n    test 1323 line 222 toEtm8.gamma: 27.453298\n    test 1324 line 222 toEtm8.scale: 1.192135\n    test 1325 line 222 toEtm8.lat: 35.361587\n    test 1326 line 222 toEtm8.lon: 41.860599\n    test 1327 line 223 toEtm8.easting: 402511.346712\n    test 1328 line 223 toEtm8.northing: 3520621.561911\n    test 1329 line 223 toEtm8.gamma: 2.238474\n    test 1330 line 223 toEtm8.scale: 1.001599\n    test 1331 line 223 toEtm8.lat: 31.750314\n    test 1332 line 223 toEtm8.lon: 4.248167\n    test 1333 line 224 toEtm8.easting: 5357378.503148\n    test 1334 line 224 toEtm8.northing: 2772997.602234\n    test 1335 line 224 toEtm8.gamma: 17.823560\n    test 1336 line 224 toEtm8.scale: 1.376031\n    test 1337 line 224 toEtm8.lat: 17.924336\n    test 1338 line 224 toEtm8.lon: 46.096402\n    test 1339 line 225 toEtm8.easting: 2807553.985866\n    test 1340 line 225 toEtm8.northing: 8177847.980275\n    test 1341 line 225 toEtm8.gamma: 54.680045\n    test 1342 line 225 toEtm8.scale: 1.097531\n    test 1343 line 225 toEtm8.lat: 60.931488\n    test 1344 line 225 toEtm8.lon: 58.221214\n    test 1345 line 226 toEtm8.easting: 18289045.166501\n    test 1346 line 226 toEtm8.northing: 7792942.339604\n    test 1347 line 226 toEtm8.gamma: 73.216494\n    test 1348 line 226 toEtm8.scale: 8.098009\n    test 1349 line 226 toEtm8.lat: 5.358151\n    test 1350 line 226 toEtm8.lon: 87.556213\n    test 1351 line 227 toEtm8.easting: 8376822.459538\n    test 1352 line 227 toEtm8.northing: 8128174.623878\n    test 1353 line 227 toEtm8.gamma: 70.920117\n    test 1354 line 227 toEtm8.scale: 1.984873\n    test 1355 line 227 toEtm8.lat: 28.616673\n    test 1356 line 227 toEtm8.lon: 80.452426\n    test 1357 line 228 toEtm8.easting: 11898068.353272\n    test 1358 line 228 toEtm8.northing: 4772439.493697\n    test 1359 line 228 toEtm8.gamma: 42.613968\n    test 1360 line 228 toEtm8.scale: 3.314412\n    test 1361 line 228 toEtm8.lat: 11.709763\n    test 1362 line 228 toEtm8.lon: 76.760295\n    test 1363 line 229 toEtm8.easting: 10550946.939050\n    test 1364 line 229 toEtm8.northing: 3851968.815295\n    test 1365 line 229 toEtm8.gamma: 33.383025\n    test 1366 line 229 toEtm8.scale: 2.724754\n    test 1367 line 229 toEtm8.lat: 12.009498\n    test 1368 line 229 toEtm8.lon: 71.782351\n    test 1369 line 230 toEtm8.easting: 6828299.123607\n    test 1370 line 230 toEtm8.northing: 9394803.227463\n    test 1371 line 230 toEtm8.gamma: 83.181386\n    test 1372 line 230 toEtm8.scale: 1.624359\n    test 1373 line 230 toEtm8.lat: 37.629784\n    test 1374 line 230 toEtm8.lon: 85.795687\n    test 1375 line 231 toEtm8.easting: 11162550.334022\n    test 1376 line 231 toEtm8.northing: 2640267.279593\n    test 1377 line 231 toEtm8.gamma: 23.145404\n    test 1378 line 231 toEtm8.scale: 2.998408\n    test 1379 line 231 toEtm8.lat: 7.721128\n    test 1380 line 231 toEtm8.lon: 71.662731\n    test 1381 line 232 toEtm8.easting: 4411584.447941\n    test 1382 line 232 toEtm8.northing: 4956173.694407\n    test 1383 line 232 toEtm8.gamma: 30.713919\n    test 1384 line 232 toEtm8.scale: 1.248736\n    test 1385 line 232 toEtm8.lat: 34.295026\n    test 1386 line 232 toEtm8.lon: 46.442191\n    test 1387 line 233 toEtm8.easting: 672108.897905\n    test 1388 line 233 toEtm8.northing: 4751554.657054\n    test 1389 line 233 toEtm8.gamma: 5.569178\n    test 1390 line 233 toEtm8.scale: 1.005162\n    test 1391 line 233 toEtm8.lat: 42.622496\n    test 1392 line 233 toEtm8.lon: 8.193605\n    test 1393 line 234 toEtm8.easting: 5022964.290579\n    test 1394 line 234 toEtm8.northing: 6860418.199502\n    test 1395 line 234 toEtm8.gamma: 50.862230\n    test 1396 line 234 toEtm8.scale: 1.324925\n    test 1397 line 234 toEtm8.lat: 41.667780\n    test 1398 line 234 toEtm8.lon: 61.518288\n    test 1399 line 235 toEtm8.easting: 1669655.595207\n    test 1400 line 235 toEtm8.northing: 4152086.537021\n    test 1401 line 235 toEtm8.gamma: 11.110237\n    test 1402 line 235 toEtm8.scale: 1.034138\n    test 1403 line 235 toEtm8.lat: 36.060369\n    test 1404 line 235 toEtm8.lon: 18.444112\n    test 1405 line 236 toEtm8.easting: 6055876.729655\n    test 1406 line 236 toEtm8.northing: 4896837.552619\n    test 1407 line 236 toEtm8.gamma: 35.799747\n    test 1408 line 236 toEtm8.scale: 1.485967\n    test 1409 line 236 toEtm8.lat: 27.948091\n    test 1410 line 236 toEtm8.lon: 56.816429\n    test 1411 line 237 toEtm8.easting: 1209214.164379\n    test 1412 line 237 toEtm8.northing: 7266409.859178\n    test 1413 line 237 toEtm8.gamma: 22.319633\n    test 1414 line 237 toEtm8.scale: 1.017554\n    test 1415 line 237 toEtm8.lat: 63.386030\n    test 1416 line 237 toEtm8.lon: 24.662716\n    test 1417 line 238 toEtm8.easting: 5154564.559584\n    test 1418 line 238 toEtm8.northing: 698118.349975\n    test 1419 line 238 toEtm8.gamma: 4.242360\n    test 1420 line 238 toEtm8.scale: 1.347481\n    test 1421 line 238 toEtm8.lat: 4.680922\n    test 1422 line 238 toEtm8.lon: 42.114426\n    test 1423 line 239 toEtm8.easting: 2695149.806543\n    test 1424 line 239 toEtm8.northing: 8208197.765605\n    test 1425 line 239 toEtm8.gamma: 54.178615\n    test 1426 line 239 toEtm8.scale: 1.089730\n    test 1427 line 239 toEtm8.lat: 61.826625\n    test 1428 line 239 toEtm8.lon: 57.525096\n    test 1429 line 240 toEtm8.easting: 3394792.327820\n    test 1430 line 240 toEtm8.northing: 3217583.415552\n    test 1431 line 240 toEtm8.gamma: 15.165863\n    test 1432 line 240 toEtm8.scale: 1.145285\n    test 1433 line 240 toEtm8.lat: 25.104353\n    test 1434 line 240 toEtm8.lon: 32.528660\n    test 1435 line 241 toEtm8.easting: 1429160.966985\n    test 1436 line 241 toEtm8.northing: 8212685.362032\n    test 1437 line 241 toEtm8.gamma: 37.484904\n    test 1438 line 241 toEtm8.scale: 1.024676\n    test 1439 line 241 toEtm8.lat: 69.678351\n    test 1440 line 241 toEtm8.lon: 39.275513\n    test 1441 line 242 toEtm8.easting: 8343387.998065\n    test 1442 line 242 toEtm8.northing: 8885196.954578\n    test 1443 line 242 toEtm8.gamma: 78.561937\n    test 1444 line 242 toEtm8.scale: 1.974733\n    test 1445 line 242 toEtm8.lat: 29.671384\n    test 1446 line 242 toEtm8.lon: 84.196595\n    test 1447 line 243 toEtm8.easting: 1990722.928606\n    test 1448 line 243 toEtm8.northing: 7569202.065162\n    test 1449 line 243 toEtm8.gamma: 37.075276\n    test 1450 line 243 toEtm8.scale: 1.048486\n    test 1451 line 243 toEtm8.lat: 62.300208\n    test 1452 line 243 toEtm8.lon: 40.474051\n    test 1453 line 244 toEtm8.easting: 1554980.099559\n    test 1454 line 244 toEtm8.northing: 1449423.919586\n    test 1455 line 244 toEtm8.gamma: 3.188328\n    test 1456 line 244 toEtm8.scale: 1.029664\n    test 1457 line 244 toEtm8.lat: 12.721776\n    test 1458 line 244 toEtm8.lon: 14.190003\n    test 1459 line 245 toEtm8.easting: 785205.450196\n    test 1460 line 245 toEtm8.northing: 5575158.423096\n    test 1461 line 245 toEtm8.gamma: 8.388417\n    test 1462 line 245 toEtm8.scale: 1.007181\n    test 1463 line 245 toEtm8.lat: 49.811296\n    test 1464 line 245 toEtm8.lon: 10.925011\n    test 1465 line 246 toEtm8.easting: 3310405.988313\n    test 1466 line 246 toEtm8.northing: 5955022.233881\n    test 1467 line 246 toEtm8.gamma: 33.007587\n    test 1468 line 246 toEtm8.scale: 1.137141\n    test 1469 line 246 toEtm8.lat: 45.132680\n    test 1470 line 246 toEtm8.lon: 42.478624\n    test 1471 line 247 toEtm8.easting: 4733460.960666\n    test 1472 line 247 toEtm8.northing: 129034.889816\n    test 1473 line 247 toEtm8.gamma: 0.737551\n    test 1474 line 247 toEtm8.scale: 1.290439\n    test 1475 line 247 toEtm8.lat: 0.904279\n    test 1476 line 247 toEtm8.lon: 39.078412\n    test 1477 line 248 toEtm8.easting: 3322708.343909\n    test 1478 line 248 toEtm8.northing: 3864738.078742\n    test 1479 line 248 toEtm8.gamma: 18.472566\n    test 1480 line 248 toEtm8.scale: 1.138838\n    test 1481 line 248 toEtm8.lat: 30.163605\n    test 1482 line 248 toEtm8.lon: 33.577996\n    test 1483 line 249 toEtm8.easting: 8672864.417204\n    test 1484 line 249 toEtm8.northing: 8333465.983444\n    test 1485 line 249 toEtm8.gamma: 73.206273\n    test 1486 line 249 toEtm8.scale: 2.065441\n    test 1487 line 249 toEtm8.lat: 27.643244\n    test 1488 line 249 toEtm8.lon: 81.892859\n    test 1489 line 250 toEtm8.easting: 11126818.231196\n    test 1490 line 250 toEtm8.northing: 7618712.174991\n    test 1491 line 250 toEtm8.gamma: 67.887173\n    test 1492 line 250 toEtm8.scale: 2.922417\n    test 1493 line 250 toEtm8.lat: 18.201208\n    test 1494 line 250 toEtm8.lon: 82.434618\n    test 1495 line 251 toEtm8.easting: 8650100.981797\n    test 1496 line 251 toEtm8.northing: 9975084.168997\n    test 1497 line 251 toEtm8.gamma: 89.767446\n    test 1498 line 251 toEtm8.scale: 2.057289\n    test 1499 line 251 toEtm8.lat: 28.804576\n    test 1500 line 251 toEtm8.lon: 89.886072\n    test 1501 line 252 toEtm8.easting: 2212701.180192\n    test 1502 line 252 toEtm8.northing: 650348.100229\n    test 1503 line 252 toEtm8.gamma: 1.970441\n    test 1504 line 252 toEtm8.scale: 1.060830\n    test 1505 line 252 toEtm8.lat: 5.542998\n    test 1506 line 252 toEtm8.lon: 19.589578\n    test 1507 line 253 toEtm8.easting: 6890222.326618\n    test 1508 line 253 toEtm8.northing: 7506813.499547\n    test 1509 line 253 toEtm8.gamma: 62.684825\n    test 1510 line 253 toEtm8.scale: 1.638488\n    test 1511 line 253 toEtm8.lat: 34.237147\n    test 1512 line 253 toEtm8.lon: 73.678164\n    test 1513 line 254 toEtm8.easting: 6692260.067325\n    test 1514 line 254 toEtm8.northing: 4244174.008110\n    test 1515 line 254 toEtm8.gamma: 31.812920\n    test 1516 line 254 toEtm8.scale: 1.604640\n    test 1517 line 254 toEtm8.lat: 22.704949\n    test 1518 line 254 toEtm8.lon: 57.877010\n    test 1519 line 255 toEtm8.easting: 1225564.137190\n    test 1520 line 255 toEtm8.northing: 4778923.924144\n    test 1521 line 255 toEtm8.gamma: 10.083419\n    test 1522 line 255 toEtm8.scale: 1.018134\n    test 1523 line 255 toEtm8.lat: 42.192424\n    test 1524 line 255 toEtm8.lon: 14.828196\n    test 1525 line 256 toEtm8.easting: 12341116.154950\n    test 1526 line 256 toEtm8.northing: 5081855.521966\n    test 1527 line 256 toEtm8.gamma: 45.712546\n    test 1528 line 256 toEtm8.scale: 3.535170\n    test 1529 line 256 toEtm8.lat: 11.481151\n    test 1530 line 256 toEtm8.lon: 78.189236\n    test 1531 line 257 toEtm8.easting: 6673845.021771\n    test 1532 line 257 toEtm8.northing: 1177587.190565\n    test 1533 line 257 toEtm8.gamma: 8.389141\n    test 1534 line 257 toEtm8.scale: 1.605171\n    test 1535 line 257 toEtm8.lat: 6.609626\n    test 1536 line 257 toEtm8.lon: 51.735783\n    test 1537 line 258 toEtm8.easting: 6966354.690417\n    test 1538 line 258 toEtm8.northing: 3641802.005093\n    test 1539 line 258 toEtm8.gamma: 27.409636\n    test 1540 line 258 toEtm8.scale: 1.661469\n    test 1541 line 258 toEtm8.lat: 19.059369\n    test 1542 line 258 toEtm8.lon: 57.526439\n    test 1543 max forward error: 3.166497e-08\n    test 1544 max reverse error: 1.421085e-13\n    test 1545 Etm.scale0: 0.9996\n    test 1546 Etm.datum: WGS84\n    test 1547 Etm.datum.ellipsoid.KsOrder: 8\n    test 1548 WGS84.KsOrder: 8\n\n    all 1548 testEtmTMcoords.py tests passed, 1 skipped (pygeodesy 26.3.26 Python 2.7.18 64bit arm64_x86_64 geographiclib 1.50 numpy 1.16.6 scipy 1.2.2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 -W  default) 4.449 sec\nrunning /Library/Framewo....ython -W default ~/PyGeodesy/test/testExactTMcoords.py\n\n    testing testExactTMcoords.py 24.03.22 (module pygeodesy.etm 25.09.15)\n    test 1 line 1 _ExactTM.easting: 1548706.791619\n    test 2 line 1 _ExactTM.northing: 8451449.198772\n    test 3 line 1 _ExactTM.gamma: 43.922790\n    test 4 line 1 _ExactTM.scale: 1.029060\n    test 5 line 1 _ExactTM.lat: 70.579277\n    test 6 line 1 _ExactTM.lon: 45.599420\n    test 7 line 2 _ExactTM.easting: 2624150.740929\n    test 8 line 2 _ExactTM.northing: 1204434.041605\n    test 9 line 2 _ExactTM.gamma: 4.292619\n    test 10 line 2 _ExactTM.scale: 1.086051\n    test 11 line 2 _ExactTM.lat: 10.018894\n    test 12 line 2 _ExactTM.lon: 23.313324\n    test 13 line 3 _ExactTM.easting: 9855841.232935\n    test 14 line 3 _ExactTM.northing: 6145496.115155\n    test 15 line 3 _ExactTM.gamma: 53.348315\n    test 16 line 3 _ExactTM.scale: 2.445098\n    test 17 line 3 _ExactTM.lat: 19.479896\n    test 18 line 3 _ExactTM.lon: 75.662049\n    test 19 line 4 _ExactTM.easting: 3206390.691996\n    test 20 line 4 _ExactTM.northing: 2650745.400406\n    test 21 line 4 _ExactTM.gamma: 11.666950\n    test 22 line 4 _ExactTM.scale: 1.129359\n    test 23 line 4 _ExactTM.lat: 21.072465\n    test 24 line 4 _ExactTM.lon: 29.828684\n    test 25 line 5 _ExactTM.easting: 4328154.083501\n    test 26 line 5 _ExactTM.northing: 749647.623690\n    test 27 line 5 _ExactTM.gamma: 4.024317\n    test 28 line 5 _ExactTM.scale: 1.240829\n    test 29 line 5 _ExactTM.lat: 5.458957\n    test 30 line 5 _ExactTM.lon: 36.385237\n    test 31 line 6 _ExactTM.easting: 847598.266514\n    test 32 line 6 _ExactTM.northing: 7947180.962440\n    test 33 line 6 _ExactTM.gamma: 21.639091\n    test 34 line 6 _ExactTM.scale: 1.008399\n    test 35 line 6 _ExactTM.lat: 70.175454\n    test 36 line 6 _ExactTM.lon: 22.865350\n    test 37 line 7 _ExactTM.easting: 2727657.337974\n    test 38 line 7 _ExactTM.northing: 8283916.696410\n    test 39 line 7 _ExactTM.gamma: 55.690909\n    test 40 line 7 _ExactTM.scale: 1.091942\n    test 41 line 7 _ExactTM.lat: 61.965605\n    test 42 line 7 _ExactTM.lon: 58.931371\n    test 43 line 8 _ExactTM.easting: 2331001.751890\n    test 44 line 8 _ExactTM.northing: 1313608.224751\n    test 45 line 8 _ExactTM.gamma: 4.214690\n    test 46 line 8 _ExactTM.scale: 1.067599\n    test 47 line 8 _ExactTM.lat: 11.116050\n    test 48 line 8 _ExactTM.lon: 20.901069\n    test 49 line 9 _ExactTM.easting: 6035557.239480\n    test 50 line 9 _ExactTM.northing: 5791770.791879\n    test 51 line 9 _ExactTM.gamma: 43.698170\n    test 52 line 9 _ExactTM.scale: 1.481260\n    test 53 line 9 _ExactTM.lat: 32.210543\n    test 54 line 9 _ExactTM.lon: 60.705849\n    test 55 line 10 _ExactTM.easting: 1064553.125852\n    test 56 line 10 _ExactTM.northing: 9417273.737208\n    test 57 line 10 _ExactTM.gamma: 61.100380\n    test 58 line 10 _ExactTM.scale: 1.013475\n    test 59 line 10 _ExactTM.lat: 79.187451\n    test 60 line 10 _ExactTM.lon: 61.532382\n    test 61 line 11 _ExactTM.easting: 1400137.116164\n    test 62 line 11 _ExactTM.northing: 9616907.017686\n    test 63 line 11 _ExactTM.gamma: 74.527087\n    test 64 line 11 _ExactTM.scale: 1.023640\n    test 65 line 11 _ExactTM.lat: 77.103759\n    test 66 line 11 _ExactTM.lon: 74.899105\n    test 67 line 12 _ExactTM.easting: 9860691.016626\n    test 68 line 12 _ExactTM.northing: 7433039.143328\n    test 69 line 12 _ExactTM.gamma: 65.357693\n    test 70 line 12 _ExactTM.scale: 2.438973\n    test 71 line 12 _ExactTM.lat: 21.889514\n    test 72 line 12 _ExactTM.lon: 80.019886\n    test 73 line 13 _ExactTM.easting: 8076501.833695\n    test 74 line 13 _ExactTM.northing: 8561614.174782\n    test 75 line 13 _ExactTM.gamma: 75.073393\n    test 76 line 13 _ExactTM.scale: 1.906202\n    test 77 line 13 _ExactTM.lat: 30.536296\n    test 78 line 13 _ExactTM.lon: 82.186178\n    test 79 line 14 _ExactTM.easting: 3335099.866623\n    test 80 line 14 _ExactTM.northing: 6740519.084015\n    test 81 line 14 _ExactTM.gamma: 40.611821\n    test 82 line 14 _ExactTM.scale: 1.139021\n    test 83 line 14 _ExactTM.lat: 49.990485\n    test 84 line 14 _ExactTM.lon: 48.203179\n    test 85 line 15 _ExactTM.easting: 12051574.928500\n    test 86 line 15 _ExactTM.northing: 6587213.051951\n    test 87 line 15 _ExactTM.gamma: 59.033237\n    test 88 line 15 _ExactTM.scale: 3.357469\n    test 89 line 15 _ExactTM.lat: 14.486312\n    test 90 line 15 _ExactTM.lon: 80.905137\n    test 91 line 16 _ExactTM.easting: 5387578.735298\n    test 92 line 16 _ExactTM.northing: 4111216.907168\n    test 93 line 16 _ExactTM.gamma: 27.574337\n    test 94 line 16 _ExactTM.scale: 1.379357\n    test 95 line 16 _ExactTM.lat: 25.936824\n    test 96 line 16 _ExactTM.lon: 49.913598\n    test 97 line 17 _ExactTM.easting: 2622214.380233\n    test 98 line 17 _ExactTM.northing: 8678923.984567\n    test 99 line 17 _ExactTM.gamma: 61.697275\n    test 100 line 17 _ExactTM.scale: 1.084810\n    test 101 line 17 _ExactTM.lat: 64.402196\n    test 102 line 17 _ExactTM.lon: 64.091395\n    test 103 line 18 _ExactTM.easting: 5068474.169633\n    test 104 line 18 _ExactTM.northing: 9492066.993709\n    test 105 line 18 _ExactTM.gamma: 83.156740\n    test 106 line 18 _ExactTM.scale: 1.329990\n    test 107 line 18 _ExactTM.lat: 48.451354\n    test 108 line 18 _ExactTM.lon: 84.856198\n    test 109 line 19 _ExactTM.easting: 738062.047779\n    test 110 line 19 _ExactTM.northing: 3031007.074116\n    test 111 line 19 _ExactTM.gamma: 3.416802\n    test 112 line 19 _ExactTM.scale: 1.006332\n    test 113 line 19 _ExactTM.lat: 27.203895\n    test 114 line 19 _ExactTM.lon: 7.440229\n    test 115 line 20 _ExactTM.easting: 1944413.834565\n    test 116 line 20 _ExactTM.northing: 9613299.224493\n    test 117 line 20 _ExactTM.gamma: 78.462831\n    test 118 line 20 _ExactTM.scale: 1.046134\n    test 119 line 20 _ExactTM.lat: 72.509000\n    test 120 line 20 _ExactTM.lon: 78.982283\n    test 121 line 21 _ExactTM.easting: 2114521.418406\n    test 122 line 21 _ExactTM.northing: 4954077.440098\n    test 123 line 21 _ExactTM.gamma: 17.571878\n    test 124 line 21 _ExactTM.scale: 1.055093\n    test 125 line 21 _ExactTM.lat: 41.824954\n    test 126 line 21 _ExactTM.lon: 25.392744\n    test 127 line 22 _ExactTM.easting: 620365.905090\n    test 128 line 22 _ExactTM.northing: 4755542.026562\n    test 129 line 22 _ExactTM.gamma: 5.152022\n    test 130 line 22 _ExactTM.scale: 1.004338\n    test 131 line 22 _ExactTM.lat: 42.701376\n    test 132 line 22 _ExactTM.lon: 7.572738\n    test 133 line 23 _ExactTM.easting: 263004.770989\n    test 134 line 23 _ExactTM.northing: 4493669.762451\n    test 135 line 23 _ExactTM.gamma: 2.020523\n    test 136 line 23 _ExactTM.scale: 1.000452\n    test 137 line 23 _ExactTM.lat: 40.552052\n    test 138 line 23 _ExactTM.lon: 3.106056\n    test 139 line 24 _ExactTM.easting: 3217221.739462\n    test 140 line 24 _ExactTM.northing: 437776.119161\n    test 141 line 24 _ExactTM.gamma: 1.848169\n    test 142 line 24 _ExactTM.scale: 1.130558\n    test 143 line 24 _ExactTM.lat: 3.501242\n    test 144 line 24 _ExactTM.lon: 27.806507\n    test 145 line 25 _ExactTM.easting: 14661142.444961\n    test 146 line 25 _ExactTM.northing: 7476100.824185\n    test 147 line 25 _ExactTM.gamma: 68.376669\n    test 148 line 25 _ExactTM.scale: 4.896650\n    test 149 line 25 _ExactTM.lat: 10.148715\n    test 150 line 25 _ExactTM.lon: 85.373768\n    test 151 line 26 _ExactTM.easting: 967777.158554\n    test 152 line 26 _ExactTM.northing: 6615684.266592\n    test 153 line 26 _ExactTM.gamma: 14.410044\n    test 154 line 26 _ExactTM.scale: 1.011100\n    test 155 line 26 _ExactTM.lat: 58.582623\n    test 156 line 26 _ExactTM.lon: 16.755558\n    test 157 line 27 _ExactTM.easting: 7558840.728461\n    test 158 line 27 _ExactTM.northing: 4144728.130764\n    test 159 line 27 _ExactTM.gamma: 32.557264\n    test 160 line 27 _ExactTM.scale: 1.791490\n    test 161 line 27 _ExactTM.lat: 19.793004\n    test 162 line 27 _ExactTM.lon: 61.746763\n    test 163 line 28 _ExactTM.easting: 1056008.314161\n    test 164 line 28 _ExactTM.northing: 9290799.692669\n    test 165 line 28 _ExactTM.gamma: 55.843278\n    test 166 line 28 _ExactTM.scale: 1.013253\n    test 167 line 28 _ExactTM.lat: 78.666776\n    test 168 line 28 _ExactTM.lon: 56.365355\n    test 169 line 29 _ExactTM.easting: 1943965.134687\n    test 170 line 29 _ExactTM.northing: 1389972.228690\n    test 171 line 29 _ExactTM.gamma: 3.774869\n    test 172 line 29 _ExactTM.scale: 1.046724\n    test 173 line 29 _ExactTM.lat: 11.998788\n    test 174 line 29 _ExactTM.lon: 17.597873\n    test 175 line 30 _ExactTM.easting: 5803077.072902\n    test 176 line 30 _ExactTM.northing: 5649957.943659\n    test 177 line 30 _ExactTM.gamma: 41.717943\n    test 178 line 30 _ExactTM.scale: 1.442572\n    test 179 line 30 _ExactTM.lat: 32.540378\n    test 180 line 30 _ExactTM.lon: 58.764613\n    test 181 line 31 _ExactTM.easting: 2928716.986009\n    test 182 line 31 _ExactTM.northing: 5731835.058317\n    test 183 line 31 _ExactTM.gamma: 28.538550\n    test 184 line 31 _ExactTM.scale: 1.106780\n    test 185 line 31 _ExactTM.lat: 45.160356\n    test 186 line 31 _ExactTM.lon: 37.465285\n    test 187 line 32 _ExactTM.easting: 326141.975756\n    test 188 line 32 _ExactTM.northing: 8881325.164543\n    test 189 line 32 _ExactTM.gamma: 16.111415\n    test 190 line 32 _ExactTM.scale: 1.000900\n    test 191 line 32 _ExactTM.lat: 79.584190\n    test 192 line 32 _ExactTM.lon: 16.367006\n    test 193 line 33 _ExactTM.easting: 3933015.267450\n    test 194 line 33 _ExactTM.northing: 7932373.909512\n    test 195 line 33 _ExactTM.gamma: 58.577424\n    test 196 line 33 _ExactTM.scale: 1.194811\n    test 197 line 33 _ExactTM.lat: 52.470664\n    test 198 line 33 _ExactTM.lon: 64.125580\n    test 199 line 34 _ExactTM.easting: 8598926.983213\n    test 200 line 34 _ExactTM.northing: 6214135.167503\n    test 201 line 34 _ExactTM.gamma: 52.612878\n    test 202 line 34 _ExactTM.scale: 2.051367\n    test 203 line 34 _ExactTM.lat: 23.702673\n    test 204 line 34 _ExactTM.lon: 72.630363\n    test 205 line 35 _ExactTM.easting: 6620553.333772\n    test 206 line 35 _ExactTM.northing: 6540527.122948\n    test 207 line 35 _ExactTM.gamma: 52.350140\n    test 208 line 35 _ExactTM.scale: 1.586614\n    test 209 line 35 _ExactTM.lat: 32.603520\n    test 210 line 35 _ExactTM.lon: 67.280123\n    test 211 line 36 _ExactTM.easting: 1515136.758292\n    test 212 line 36 _ExactTM.northing: 3858996.087537\n    test 213 line 36 _ExactTM.gamma: 9.225127\n    test 214 line 36 _ExactTM.scale: 1.028029\n    test 215 line 36 _ExactTM.lat: 33.776224\n    test 216 line 36 _ExactTM.lon: 16.280993\n    test 217 line 37 _ExactTM.easting: 479854.373445\n    test 218 line 37 _ExactTM.northing: 8980501.389896\n    test 219 line 37 _ExactTM.gamma: 25.021222\n    test 220 line 37 _ExactTM.scale: 1.002415\n    test 221 line 37 _ExactTM.lat: 79.932747\n    test 222 line 37 _ExactTM.lon: 25.363622\n    test 223 line 38 _ExactTM.easting: 5243446.564940\n    test 224 line 38 _ExactTM.northing: 140657.213960\n    test 225 line 38 _ExactTM.gamma: 0.862817\n    test 226 line 38 _ExactTM.scale: 1.360358\n    test 227 line 38 _ExactTM.lat: 0.935056\n    test 228 line 38 _ExactTM.lon: 42.538824\n    test 229 line 39 _ExactTM.easting: 12806457.923218\n    test 230 line 39 _ExactTM.northing: 7170118.684675\n    test 231 line 39 _ExactTM.gamma: 64.708921\n    test 232 line 39 _ExactTM.scale: 3.740588\n    test 233 line 39 _ExactTM.lat: 13.490862\n    test 234 line 39 _ExactTM.lon: 83.178380\n    test 235 line 40 _ExactTM.easting: 1202993.459158\n    test 236 line 40 _ExactTM.northing: 5557316.053599\n    test 237 line 40 _ExactTM.gamma: 12.579061\n    test 238 line 40 _ExactTM.scale: 1.017426\n    test 239 line 40 _ExactTM.lat: 48.979057\n    test 240 line 40 _ExactTM.lon: 16.474542\n    test 241 line 41 _ExactTM.easting: 1729088.710196\n    test 242 line 41 _ExactTM.northing: 7770874.289954\n    test 243 line 41 _ExactTM.gamma: 36.021783\n    test 244 line 41 _ExactTM.scale: 1.036397\n    test 245 line 41 _ExactTM.lat: 65.036016\n    test 246 line 41 _ExactTM.lon: 38.729091\n    test 247 line 42 _ExactTM.easting: 2437301.517425\n    test 248 line 42 _ExactTM.northing: 5539327.748318\n    test 249 line 42 _ExactTM.gamma: 23.461879\n    test 250 line 42 _ExactTM.scale: 1.073459\n    test 251 line 42 _ExactTM.lat: 45.510091\n    test 252 line 42 _ExactTM.lon: 31.303729\n    test 253 line 43 _ExactTM.easting: 3647186.135066\n    test 254 line 43 _ExactTM.northing: 2086412.330983\n    test 255 line 43 _ExactTM.gamma: 10.023991\n    test 256 line 43 _ExactTM.scale: 1.168707\n    test 257 line 43 _ExactTM.lat: 16.058010\n    test 258 line 43 _ExactTM.lon: 32.520026\n    test 259 line 44 _ExactTM.easting: 1818497.243556\n    test 260 line 44 _ExactTM.northing: 4275471.745057\n    test 261 line 44 _ExactTM.gamma: 12.499656\n    test 262 line 44 _ExactTM.scale: 1.040604\n    test 263 line 44 _ExactTM.lat: 36.845200\n    test 264 line 44 _ExactTM.lon: 20.282283\n    test 265 line 45 _ExactTM.easting: 3751304.113783\n    test 266 line 45 _ExactTM.northing: 5130454.001592\n    test 267 line 45 _ExactTM.gamma: 28.959707\n    test 268 line 45 _ExactTM.scale: 1.177681\n    test 269 line 45 _ExactTM.lat: 37.865481\n    test 270 line 45 _ExactTM.lon: 41.990402\n    test 271 line 46 _ExactTM.easting: 2616733.138544\n    test 272 line 46 _ExactTM.northing: 394644.463815\n    test 273 line 46 _ExactTM.gamma: 1.390425\n    test 274 line 46 _ExactTM.scale: 1.085595\n    test 275 line 46 _ExactTM.lat: 3.287272\n    test 276 line 46 _ExactTM.lon: 22.917604\n    test 277 line 47 _ExactTM.easting: 1756506.573942\n    test 278 line 47 _ExactTM.northing: 5570393.986394\n    test 279 line 47 _ExactTM.gamma: 17.897894\n    test 280 line 47 _ExactTM.scale: 1.037732\n    test 281 line 47 _ExactTM.lat: 47.813686\n    test 282 line 47 _ExactTM.lon: 23.545092\n    test 283 line 48 _ExactTM.easting: 8752461.894711\n    test 284 line 48 _ExactTM.northing: 6087728.152284\n    test 285 line 48 _ExactTM.gamma: 51.628465\n    test 286 line 48 _ExactTM.scale: 2.095465\n    test 287 line 48 _ExactTM.lat: 22.836853\n    test 288 line 48 _ExactTM.lon: 72.604385\n    test 289 line 49 _ExactTM.easting: 1309272.216432\n    test 290 line 49 _ExactTM.northing: 59520.028899\n    test 291 line 49 _ExactTM.gamma: 0.109069\n    test 292 line 49 _ExactTM.scale: 1.020897\n    test 293 line 49 _ExactTM.lat: 0.527262\n    test 294 line 49 _ExactTM.lon: 11.684209\n    test 295 line 50 _ExactTM.easting: 328652.277129\n    test 296 line 50 _ExactTM.northing: 2233043.958874\n    test 297 line 50 _ExactTM.gamma: 1.084863\n    test 298 line 50 _ExactTM.scale: 1.000935\n    test 299 line 50 _ExactTM.lat: 20.166742\n    test 300 line 50 _ExactTM.lon: 3.143948\n    test 301 line 51 _ExactTM.easting: 8637959.716447\n    test 302 line 51 _ExactTM.northing: 9190635.156031\n    test 303 line 51 _ExactTM.gamma: 81.802563\n    test 304 line 51 _ExactTM.scale: 2.054329\n    test 305 line 51 _ExactTM.lat: 28.604629\n    test 306 line 51 _ExactTM.lon: 85.988721\n    test 307 line 52 _ExactTM.easting: 8548521.455147\n    test 308 line 52 _ExactTM.northing: 9172410.943282\n    test 309 line 52 _ExactTM.gamma: 81.583928\n    test 310 line 52 _ExactTM.scale: 2.029641\n    test 311 line 52 _ExactTM.lat: 28.984048\n    test 312 line 52 _ExactTM.lon: 85.833448\n    test 313 line 53 _ExactTM.easting: 796987.281104\n    test 314 line 53 _ExactTM.northing: 7677446.357675\n    test 315 line 53 _ExactTM.gamma: 18.084472\n    test 316 line 53 _ExactTM.scale: 1.007381\n    test 317 line 53 _ExactTM.lat: 68.071020\n    test 318 line 53 _ExactTM.lon: 19.392823\n    test 319 line 54 _ExactTM.easting: 3291036.496762\n    test 320 line 54 _ExactTM.northing: 9513199.600666\n    test 321 line 54 _ExactTM.gamma: 80.890254\n    test 322 line 54 _ExactTM.scale: 1.134826\n    test 323 line 54 _ExactTM.lat: 61.416576\n    test 324 line 54 _ExactTM.lon: 81.981611\n    test 325 line 55 _ExactTM.easting: 7087225.330906\n    test 326 line 55 _ExactTM.northing: 8382823.855822\n    test 327 line 55 _ExactTM.gamma: 72.253756\n    test 328 line 55 _ExactTM.scale: 1.678070\n    test 329 line 55 _ExactTM.lat: 35.074753\n    test 330 line 55 _ExactTM.lon: 79.496003\n    test 331 line 56 _ExactTM.easting: 5090358.125724\n    test 332 line 56 _ExactTM.northing: 4318294.133489\n    test 333 line 56 _ExactTM.gamma: 28.266280\n    test 334 line 56 _ExactTM.scale: 1.336264\n    test 335 line 56 _ExactTM.lat: 28.078790\n    test 336 line 56 _ExactTM.lon: 48.684350\n\n    test skipped (1): line 57 _ExactTM.'84.986930137199 2.067177857261 20163.0752214330146 9438635.9888499043815 2.059277291707588222 .99960496589466017622'\n    test 337 line 58 _ExactTM.easting: 3447670.550785\n    test 338 line 58 _ExactTM.northing: 3680238.888223\n    test 339 line 58 _ExactTM.gamma: 17.934948\n    test 340 line 58 _ExactTM.scale: 1.149831\n    test 341 line 58 _ExactTM.lat: 28.473948\n    test 342 line 58 _ExactTM.lon: 34.127306\n    test 343 line 59 _ExactTM.easting: 3396522.906798\n    test 344 line 59 _ExactTM.northing: 8093659.687593\n    test 345 line 59 _ExactTM.gamma: 57.747117\n    test 346 line 59 _ExactTM.scale: 1.144006\n    test 347 line 59 _ExactTM.lat: 56.629354\n    test 348 line 59 _ExactTM.lon: 62.196474\n    test 349 line 60 _ExactTM.easting: 11249894.100784\n    test 350 line 60 _ExactTM.northing: 1619226.506299\n    test 351 line 60 _ExactTM.gamma: 14.210358\n    test 352 line 60 _ExactTM.scale: 3.048347\n    test 353 line 60 _ExactTM.lat: 4.747762\n    test 354 line 60 _ExactTM.lon: 70.932555\n    test 355 line 61 _ExactTM.easting: 6808805.230950\n    test 356 line 61 _ExactTM.northing: 8044779.777369\n    test 357 line 61 _ExactTM.gamma: 68.242008\n    test 358 line 61 _ExactTM.scale: 1.621464\n    test 359 line 61 _ExactTM.lat: 35.882113\n    test 360 line 61 _ExactTM.lon: 76.741849\n    test 361 line 62 _ExactTM.easting: 2306021.556506\n    test 362 line 62 _ExactTM.northing: 757191.592866\n    test 363 line 62 _ExactTM.gamma: 2.385686\n    test 364 line 62 _ExactTM.scale: 1.066159\n    test 365 line 62 _ExactTM.lat: 6.420705\n    test 366 line 62 _ExactTM.lon: 20.416028\n    test 367 line 63 _ExactTM.easting: 1547406.313862\n    test 368 line 63 _ExactTM.northing: 6048712.751824\n    test 369 line 63 _ExactTM.gamma: 18.474372\n    test 370 line 63 _ExactTM.scale: 1.029123\n    test 371 line 63 _ExactTM.lat: 52.335248\n    test 372 line 63 _ExactTM.lon: 22.879294\n    test 373 line 64 _ExactTM.easting: 2430467.650383\n    test 374 line 64 _ExactTM.northing: 7557167.613972\n    test 375 line 64 _ExactTM.gamma: 42.110021\n    test 376 line 64 _ExactTM.scale: 1.072759\n    test 377 line 64 _ExactTM.lat: 59.846391\n    test 378 line 64 _ExactTM.lon: 46.262536\n    test 379 line 65 _ExactTM.easting: 2334053.905830\n    test 380 line 65 _ExactTM.northing: 1948076.966582\n    test 381 line 65 _ExactTM.gamma: 6.353185\n    test 382 line 65 _ExactTM.scale: 1.067733\n    test 383 line 65 _ExactTM.lat: 16.461790\n    test 384 line 65 _ExactTM.lon: 21.433269\n    test 385 line 66 _ExactTM.easting: 5564175.186737\n    test 386 line 66 _ExactTM.northing: 1836851.660412\n    test 387 line 66 _ExactTM.gamma: 11.870682\n    test 388 line 66 _ExactTM.scale: 1.408265\n    test 389 line 66 _ExactTM.lat: 11.707905\n    test 390 line 66 _ExactTM.lon: 45.827075\n    test 391 line 67 _ExactTM.easting: 6118505.590359\n    test 392 line 67 _ExactTM.northing: 7631684.552421\n    test 393 line 67 _ExactTM.gamma: 62.477323\n    test 394 line 67 _ExactTM.scale: 1.493420\n    test 395 line 67 _ExactTM.lat: 38.519075\n    test 396 line 67 _ExactTM.lon: 71.935918\n    test 397 line 68 _ExactTM.easting: 7365359.294665\n    test 398 line 68 _ExactTM.northing: 8818194.451531\n    test 399 line 68 _ExactTM.gamma: 77.207042\n    test 400 line 68 _ExactTM.scale: 1.737639\n    test 401 line 68 _ExactTM.lat: 34.264007\n    test 402 line 68 _ExactTM.lon: 82.647878\n    test 403 line 69 _ExactTM.easting: 36187.342415\n    test 404 line 69 _ExactTM.northing: 2142565.324802\n    test 405 line 69 _ExactTM.gamma: 0.114334\n    test 406 line 69 _ExactTM.scale: 0.999616\n    test 407 line 69 _ExactTM.lat: 19.376880\n    test 408 line 69 _ExactTM.lon: 0.344605\n    test 409 line 70 _ExactTM.easting: 2380328.546851\n    test 410 line 70 _ExactTM.northing: 8440109.872384\n    test 411 line 70 _ExactTM.gamma: 55.076067\n    test 412 line 70 _ExactTM.scale: 1.069658\n    test 413 line 70 _ExactTM.lat: 65.075805\n    test 414 line 70 _ExactTM.lon: 57.653438\n    test 415 line 71 _ExactTM.easting: 582511.608826\n    test 416 line 71 _ExactTM.northing: 8876047.217071\n    test 417 line 71 _ExactTM.gamma: 27.133300\n    test 418 line 71 _ExactTM.scale: 1.003749\n    test 419 line 71 _ExactTM.lat: 78.691870\n    test 420 line 71 _ExactTM.lon: 27.591736\n    test 421 line 72 _ExactTM.easting: 899441.350477\n    test 422 line 72 _ExactTM.northing: 4582046.430516\n    test 423 line 72 _ExactTM.gamma: 7.031211\n    test 424 line 72 _ExactTM.scale: 1.009573\n    test 425 line 72 _ExactTM.lat: 40.893022\n    test 426 line 72 _ExactTM.lon: 10.668804\n    test 427 line 73 _ExactTM.easting: 5022485.124337\n    test 428 line 73 _ExactTM.northing: 9741774.933721\n    test 429 line 73 _ExactTM.gamma: 86.505947\n    test 430 line 73 _ExactTM.scale: 1.323700\n    test 431 line 73 _ExactTM.lat: 48.914279\n    test 432 line 73 _ExactTM.lon: 87.359268\n    test 433 line 74 _ExactTM.easting: 6701004.587204\n    test 434 line 74 _ExactTM.northing: 2954368.258231\n    test 435 line 74 _ExactTM.gamma: 21.560153\n    test 436 line 74 _ExactTM.scale: 1.608554\n    test 437 line 74 _ExactTM.lat: 16.208377\n    test 438 line 74 _ExactTM.lon: 54.494282\n    test 439 line 75 _ExactTM.easting: 454986.218897\n    test 440 line 75 _ExactTM.northing: 4885087.887884\n    test 441 line 75 _ExactTM.gamma: 3.945648\n    test 442 line 75 _ExactTM.scale: 1.002147\n    test 443 line 75 _ExactTM.lat: 43.977936\n    test 444 line 75 _ExactTM.lon: 5.672541\n    test 445 line 76 _ExactTM.easting: 8903956.140311\n    test 446 line 76 _ExactTM.northing: 8470608.577482\n    test 447 line 76 _ExactTM.gamma: 74.723116\n    test 448 line 76 _ExactTM.scale: 2.131311\n    test 449 line 76 _ExactTM.lat: 26.850861\n    test 450 line 76 _ExactTM.lon: 82.834480\n    test 451 line 77 _ExactTM.easting: 1547627.594741\n    test 452 line 77 _ExactTM.northing: 6036584.538347\n    test 453 line 77 _ExactTM.gamma: 18.407629\n    test 454 line 77 _ExactTM.scale: 1.029132\n    test 455 line 77 _ExactTM.lat: 52.234165\n    test 456 line 77 _ExactTM.lon: 22.827655\n    test 457 line 78 _ExactTM.easting: 5221488.778597\n    test 458 line 78 _ExactTM.northing: 1762592.044392\n    test 459 line 78 _ExactTM.gamma: 10.927880\n    test 460 line 78 _ExactTM.scale: 1.356721\n    test 461 line 78 _ExactTM.lat: 11.674646\n    test 462 line 78 _ExactTM.lon: 43.500147\n    test 463 line 79 _ExactTM.easting: 4880570.297161\n    test 464 line 79 _ExactTM.northing: 3325433.988867\n    test 465 line 79 _ExactTM.gamma: 20.469862\n    test 466 line 79 _ExactTM.scale: 1.308476\n    test 467 line 79 _ExactTM.lat: 22.492753\n    test 468 line 79 _ExactTM.lon: 44.179153\n    test 469 line 80 _ExactTM.easting: 23930680.082694\n    test 470 line 80 _ExactTM.northing: 7491462.099038\n    test 471 line 80 _ExactTM.gamma: 75.937628\n    test 472 line 80 _ExactTM.scale: 15.556365\n    test 473 line 80 _ExactTM.lat: 0.910999\n    test 474 line 80 _ExactTM.lon: 88.548823\n    test 475 line 81 _ExactTM.easting: 71519.450458\n    test 476 line 81 _ExactTM.northing: 3654740.444852\n    test 477 line 81 _ExactTM.gamma: 0.417448\n    test 478 line 81 _ExactTM.scale: 0.999663\n    test 479 line 81 _ExactTM.lat: 33.028802\n    test 480 line 81 _ExactTM.lon: 0.765843\n    test 481 line 82 _ExactTM.easting: 4152797.795220\n    test 482 line 82 _ExactTM.northing: 7823098.502751\n    test 483 line 82 _ExactTM.gamma: 58.238901\n    test 484 line 82 _ExactTM.scale: 1.218052\n    test 485 line 82 _ExactTM.lat: 50.649195\n    test 486 line 82 _ExactTM.lon: 64.389076\n    test 487 line 83 _ExactTM.easting: 2926725.707639\n    test 488 line 83 _ExactTM.northing: 7904918.072844\n    test 489 line 83 _ExactTM.gamma: 51.592748\n    test 490 line 83 _ExactTM.scale: 1.106206\n    test 491 line 83 _ExactTM.lat: 58.820640\n    test 492 line 83 _ExactTM.lon: 55.841048\n    test 493 line 84 _ExactTM.easting: 1325509.113869\n    test 494 line 84 _ExactTM.northing: 9675214.948213\n    test 495 line 84 _ExactTM.gamma: 76.116213\n    test 496 line 84 _ExactTM.scale: 1.021136\n    test 497 line 84 _ExactTM.lat: 77.865762\n    test 498 line 84 _ExactTM.lon: 76.414618\n    test 499 line 85 _ExactTM.easting: 3045296.448926\n    test 500 line 85 _ExactTM.northing: 542153.443280\n    test 501 line 85 _ExactTM.gamma: 2.185095\n    test 502 line 85 _ExactTM.scale: 1.116664\n    test 503 line 85 _ExactTM.lat: 4.389639\n    test 504 line 85 _ExactTM.lon: 26.458976\n    test 505 line 86 _ExactTM.easting: 11843870.887518\n    test 506 line 86 _ExactTM.northing: 5912803.073343\n    test 507 line 86 _ExactTM.gamma: 52.814259\n    test 508 line 86 _ExactTM.scale: 3.267256\n    test 509 line 86 _ExactTM.lat: 13.924448\n    test 510 line 86 _ExactTM.lon: 79.017873\n    test 511 line 87 _ExactTM.easting: 8891099.704936\n    test 512 line 87 _ExactTM.northing: 162160.142227\n    test 513 line 87 _ExactTM.gamma: 1.312094\n    test 514 line 87 _ExactTM.scale: 2.157363\n    test 515 line 87 _ExactTM.lat: 0.679713\n    test 516 line 87 _ExactTM.lon: 62.036792\n    test 517 line 88 _ExactTM.easting: 4784814.214449\n    test 518 line 88 _ExactTM.northing: 2984497.432580\n    test 519 line 88 _ExactTM.gamma: 17.946545\n    test 520 line 88 _ExactTM.scale: 1.296116\n    test 521 line 88 _ExactTM.lat: 20.478281\n    test 522 line 88 _ExactTM.lon: 42.678234\n    test 523 line 89 _ExactTM.easting: 1772074.682154\n    test 524 line 89 _ExactTM.northing: 9491552.560143\n    test 525 line 89 _ExactTM.gamma: 73.634830\n    test 526 line 89 _ExactTM.scale: 1.038202\n    test 527 line 89 _ExactTM.lat: 73.695703\n    test 528 line 89 _ExactTM.lon: 74.259097\n    test 529 line 90 _ExactTM.easting: 1907649.782106\n    test 530 line 90 _ExactTM.northing: 6994232.429379\n    test 531 line 90 _ExactTM.gamma: 29.718929\n    test 532 line 90 _ExactTM.scale: 1.044503\n    test 533 line 90 _ExactTM.lat: 58.569370\n    test 534 line 90 _ExactTM.lon: 33.777549\n    test 535 line 91 _ExactTM.easting: 2084423.818962\n    test 536 line 91 _ExactTM.northing: 2211816.035619\n    test 537 line 91 _ExactTM.gamma: 6.556448\n    test 538 line 91 _ExactTM.scale: 1.053793\n    test 539 line 91 _ExactTM.lat: 18.933881\n    test 540 line 91 _ExactTM.lon: 19.492695\n    test 541 line 92 _ExactTM.easting: 1064373.671729\n    test 542 line 92 _ExactTM.northing: 7812482.547461\n    test 543 line 92 _ExactTM.gamma: 24.874124\n    test 544 line 92 _ExactTM.scale: 1.013490\n    test 545 line 92 _ExactTM.lat: 68.317934\n    test 546 line 92 _ExactTM.lon: 26.515687\n    test 547 line 93 _ExactTM.easting: 4770385.479297\n    test 548 line 93 _ExactTM.northing: 9734318.902980\n    test 549 line 93 _ExactTM.gamma: 86.273119\n    test 550 line 93 _ExactTM.scale: 1.290553\n    test 551 line 93 _ExactTM.lat: 50.641941\n    test 552 line 93 _ExactTM.lon: 87.111557\n    test 553 line 94 _ExactTM.easting: 6398096.677297\n    test 554 line 94 _ExactTM.northing: 4410894.752104\n    test 555 line 94 _ExactTM.gamma: 32.558023\n    test 556 line 94 _ExactTM.scale: 1.548004\n    test 557 line 94 _ExactTM.lat: 24.411298\n    test 558 line 94 _ExactTM.lon: 56.881823\n    test 559 line 95 _ExactTM.easting: 3138623.300415\n    test 560 line 95 _ExactTM.northing: 3082960.600798\n    test 561 line 95 _ExactTM.gamma: 13.557672\n    test 562 line 95 _ExactTM.scale: 1.123724\n    test 563 line 95 _ExactTM.lat: 24.571871\n    test 564 line 95 _ExactTM.lon: 30.073097\n    test 565 line 96 _ExactTM.easting: 2748325.794651\n    test 566 line 96 _ExactTM.northing: 4202811.912668\n    test 567 line 96 _ExactTM.gamma: 17.578706\n    test 568 line 96 _ExactTM.scale: 1.094102\n    test 569 line 96 _ExactTM.lat: 34.202576\n    test 570 line 96 _ExactTM.lon: 29.383166\n    test 571 line 97 _ExactTM.easting: 6677830.630367\n    test 572 line 97 _ExactTM.northing: 5350071.837395\n    test 573 line 97 _ExactTM.gamma: 41.306641\n    test 574 line 97 _ExactTM.scale: 1.599774\n    test 575 line 97 _ExactTM.lat: 27.756285\n    test 576 line 97 _ExactTM.lon: 61.881905\n    test 577 line 98 _ExactTM.easting: 5941536.667431\n    test 578 line 98 _ExactTM.northing: 3293112.175140\n    test 579 line 98 _ExactTM.gamma: 22.752845\n    test 580 line 98 _ExactTM.scale: 1.468473\n    test 581 line 98 _ExactTM.lat: 19.742270\n    test 582 line 98 _ExactTM.lon: 50.957821\n    test 583 line 99 _ExactTM.easting: 3152481.792567\n    test 584 line 99 _ExactTM.northing: 5903048.837978\n    test 585 line 99 _ExactTM.gamma: 31.494606\n    test 586 line 99 _ExactTM.scale: 1.124085\n    test 587 line 99 _ExactTM.lat: 45.453582\n    test 588 line 99 _ExactTM.lon: 40.659833\n    test 589 line 100 _ExactTM.easting: 10460475.897730\n    test 590 line 100 _ExactTM.northing: 2553463.624391\n    test 591 line 100 _ExactTM.gamma: 21.965869\n    test 592 line 100 _ExactTM.scale: 2.700296\n    test 593 line 100 _ExactTM.lat: 8.322144\n    test 594 line 100 _ExactTM.lon: 69.488157\n    test 595 line 101 _ExactTM.easting: 1964010.778021\n    test 596 line 101 _ExactTM.northing: 5634042.923056\n    test 597 line 101 _ExactTM.gamma: 20.117800\n    test 598 line 101 _ExactTM.scale: 1.047344\n    test 599 line 101 _ExactTM.lat: 47.749831\n    test 600 line 101 _ExactTM.lon: 26.322002\n    test 601 line 102 _ExactTM.easting: 2065306.424934\n    test 602 line 102 _ExactTM.northing: 2135008.468651\n    test 603 line 102 _ExactTM.gamma: 6.258981\n    test 604 line 102 _ExactTM.scale: 1.052800\n    test 605 line 102 _ExactTM.lat: 18.297493\n    test 606 line 102 _ExactTM.lon: 19.244669\n    test 607 line 103 _ExactTM.easting: 5127738.132976\n    test 608 line 103 _ExactTM.northing: 6793804.304411\n    test 609 line 103 _ExactTM.gamma: 50.557915\n    test 610 line 103 _ExactTM.scale: 1.339412\n    test 611 line 103 _ExactTM.lat: 40.834541\n    test 612 line 103 _ExactTM.lon: 61.650750\n    test 613 line 104 _ExactTM.easting: 8385525.148166\n    test 614 line 104 _ExactTM.northing: 6924932.344306\n    test 615 line 104 _ExactTM.gamma: 59.087561\n    test 616 line 104 _ExactTM.scale: 1.990364\n    test 617 line 104 _ExactTM.lat: 26.273247\n    test 618 line 104 _ExactTM.lon: 74.926694\n    test 619 line 105 _ExactTM.easting: 2297510.791909\n    test 620 line 105 _ExactTM.northing: 2805666.962834\n    test 621 line 105 _ExactTM.gamma: 9.301553\n    test 622 line 105 _ExactTM.scale: 1.065508\n    test 623 line 105 _ExactTM.lat: 23.698347\n    test 624 line 105 _ExactTM.lon: 22.155657\n    test 625 line 106 _ExactTM.easting: 13749544.917635\n    test 626 line 106 _ExactTM.northing: 8288728.384650\n    test 627 line 106 _ExactTM.gamma: 75.033970\n    test 628 line 106 _ExactTM.scale: 4.270588\n    test 629 line 106 _ExactTM.lat: 12.364113\n    test 630 line 106 _ExactTM.lon: 86.348578\n    test 631 line 107 _ExactTM.easting: 317518.455546\n    test 632 line 107 _ExactTM.northing: 1097517.583745\n    test 633 line 107 _ExactTM.gamma: 0.499004\n    test 634 line 107 _ExactTM.scale: 1.000848\n    test 635 line 107 _ExactTM.lat: 9.916091\n    test 636 line 107 _ExactTM.lon: 2.895277\n    test 637 line 108 _ExactTM.easting: 3856035.184888\n    test 638 line 108 _ExactTM.northing: 9141364.450290\n    test 639 line 108 _ExactTM.gamma: 75.972763\n    test 640 line 108 _ExactTM.scale: 1.186786\n    test 641 line 108 _ExactTM.lat: 56.553876\n    test 642 line 108 _ExactTM.lon: 78.215077\n    test 643 line 109 _ExactTM.easting: 1457484.942823\n    test 644 line 109 _ExactTM.northing: 9385297.101973\n    test 645 line 109 _ExactTM.gamma: 66.784662\n    test 646 line 109 _ExactTM.scale: 1.025660\n    test 647 line 109 _ExactTM.lat: 75.957631\n    test 648 line 109 _ExactTM.lon: 67.407383\n    test 649 line 110 _ExactTM.easting: 1304934.901841\n    test 650 line 110 _ExactTM.northing: 3604655.155715\n    test 651 line 110 _ExactTM.gamma: 7.343989\n    test 652 line 110 _ExactTM.scale: 1.020672\n    test 653 line 110 _ExactTM.lat: 31.826531\n    test 654 line 110 _ExactTM.lon: 13.731050\n    test 655 line 111 _ExactTM.easting: 1399093.491792\n    test 656 line 111 _ExactTM.northing: 8314607.120342\n    test 657 line 111 _ExactTM.gamma: 38.630161\n    test 658 line 111 _ExactTM.scale: 1.023625\n    test 659 line 111 _ExactTM.lat: 70.542985\n    test 660 line 111 _ExactTM.lon: 40.282055\n    test 661 line 112 _ExactTM.easting: 356983.618540\n    test 662 line 112 _ExactTM.northing: 4282309.048994\n    test 663 line 112 _ExactTM.gamma: 2.561485\n    test 664 line 112 _ExactTM.scale: 1.001170\n    test 665 line 112 _ExactTM.lat: 38.617487\n    test 666 line 112 _ExactTM.lon: 4.099838\n    test 667 line 113 _ExactTM.easting: 9952911.325091\n    test 668 line 113 _ExactTM.northing: 1510288.212229\n    test 669 line 113 _ExactTM.gamma: 12.752154\n    test 670 line 113 _ExactTM.scale: 2.511357\n    test 671 line 113 _ExactTM.lat: 5.389447\n    test 672 line 113 _ExactTM.lon: 66.729612\n    test 673 line 114 _ExactTM.easting: 6367592.504007\n    test 674 line 114 _ExactTM.northing: 1200437.077672\n    test 675 line 114 _ExactTM.gamma: 8.338041\n    test 676 line 114 _ExactTM.scale: 1.546210\n    test 677 line 114 _ExactTM.lat: 6.995168\n    test 678 line 114 _ExactTM.lon: 50.014763\n    test 679 line 115 _ExactTM.easting: 4391263.676460\n    test 680 line 115 _ExactTM.northing: 6325455.989408\n    test 681 line 115 _ExactTM.gamma: 42.653541\n    test 682 line 115 _ExactTM.scale: 1.245560\n    test 683 line 115 _ExactTM.lat: 42.321894\n    test 684 line 115 _ExactTM.lon: 53.784040\n    test 685 line 116 _ExactTM.easting: 6209880.527527\n    test 686 line 116 _ExactTM.northing: 2154754.449747\n    test 687 line 116 _ExactTM.gamma: 14.919512\n    test 688 line 116 _ExactTM.scale: 1.516560\n    test 689 line 116 _ExactTM.lat: 12.698515\n    test 690 line 116 _ExactTM.lon: 50.242047\n    test 691 line 117 _ExactTM.easting: 1507053.688772\n    test 692 line 117 _ExactTM.northing: 6261383.513280\n    test 693 line 117 _ExactTM.gamma: 19.280373\n    test 694 line 117 _ExactTM.scale: 1.027584\n    test 695 line 117 _ExactTM.lat: 54.207636\n    test 696 line 117 _ExactTM.lon: 23.325731\n    test 697 line 118 _ExactTM.easting: 8332725.003777\n    test 698 line 118 _ExactTM.northing: 3002712.329753\n    test 699 line 118 _ExactTM.gamma: 24.059212\n    test 700 line 118 _ExactTM.scale: 1.990450\n    test 701 line 118 _ExactTM.lat: 13.224787\n    test 702 line 118 _ExactTM.lon: 62.426698\n    test 703 line 119 _ExactTM.easting: 3958910.085235\n    test 704 line 119 _ExactTM.northing: 3462284.926102\n    test 705 line 119 _ExactTM.gamma: 18.546398\n    test 706 line 119 _ExactTM.scale: 1.199351\n    test 707 line 119 _ExactTM.lat: 25.650282\n    test 708 line 119 _ExactTM.lon: 37.710391\n    test 709 line 120 _ExactTM.easting: 10452892.282083\n    test 710 line 120 _ExactTM.northing: 8000059.605114\n    test 711 line 120 _ExactTM.gamma: 71.075240\n    test 712 line 120 _ExactTM.scale: 2.650111\n    test 713 line 120 _ExactTM.lat: 20.684773\n    test 714 line 120 _ExactTM.lon: 82.849734\n    test 715 line 121 _ExactTM.easting: 496148.253731\n    test 716 line 121 _ExactTM.northing: 6388503.365043\n    test 717 line 121 _ExactTM.gamma: 6.970955\n    test 718 line 121 _ExactTM.scale: 1.002620\n    test 719 line 121 _ExactTM.lat: 57.367533\n    test 720 line 121 _ExactTM.lon: 8.260866\n    test 721 line 122 _ExactTM.easting: 7375792.085850\n    test 722 line 122 _ExactTM.northing: 5544624.072155\n    test 723 line 122 _ExactTM.gamma: 44.510851\n    test 724 line 122 _ExactTM.scale: 1.745898\n    test 725 line 122 _ExactTM.lat: 25.958757\n    test 726 line 122 _ExactTM.lon: 65.760477\n    test 727 line 123 _ExactTM.easting: 2826258.041979\n    test 728 line 123 _ExactTM.northing: 5167759.816959\n    test 729 line 123 _ExactTM.gamma: 23.783897\n    test 730 line 123 _ExactTM.scale: 1.099415\n    test 731 line 123 _ExactTM.lat: 41.395848\n    test 732 line 123 _ExactTM.lon: 33.661790\n    test 733 line 124 _ExactTM.easting: 3958563.378851\n    test 734 line 124 _ExactTM.northing: 8499923.231243\n    test 735 line 124 _ExactTM.gamma: 66.570945\n    test 736 line 124 _ExactTM.scale: 1.197296\n    test 737 line 124 _ExactTM.lat: 54.266617\n    test 738 line 124 _ExactTM.lon: 70.602199\n    test 739 line 125 _ExactTM.easting: 4408189.533462\n    test 740 line 125 _ExactTM.northing: 8046312.003642\n    test 741 line 125 _ExactTM.gamma: 62.216959\n    test 742 line 125 _ExactTM.scale: 1.246750\n    test 743 line 125 _ExactTM.lat: 49.840393\n    test 744 line 125 _ExactTM.lon: 68.036728\n    test 745 line 126 _ExactTM.easting: 3629225.627512\n    test 746 line 126 _ExactTM.northing: 6371258.454645\n    test 747 line 126 _ExactTM.gamma: 38.881675\n    test 748 line 126 _ExactTM.scale: 1.165511\n    test 749 line 126 _ExactTM.lat: 46.306035\n    test 750 line 126 _ExactTM.lon: 48.085828\n    test 751 line 127 _ExactTM.easting: 602838.450710\n    test 752 line 127 _ExactTM.northing: 4851370.637205\n    test 753 line 127 _ExactTM.gamma: 5.160395\n    test 754 line 127 _ExactTM.scale: 1.004073\n    test 755 line 127 _ExactTM.lat: 43.570988\n    test 756 line 127 _ExactTM.lon: 7.464494\n    test 757 line 128 _ExactTM.easting: 764616.665051\n    test 758 line 128 _ExactTM.northing: 2164299.337945\n    test 759 line 128 _ExactTM.gamma: 2.429300\n    test 760 line 128 _ExactTM.scale: 1.006835\n    test 761 line 128 _ExactTM.lat: 19.427290\n    test 762 line 128 _ExactTM.lon: 7.268247\n    test 763 line 129 _ExactTM.easting: 5048953.021931\n    test 764 line 129 _ExactTM.northing: 1885974.057398\n    test 765 line 129 _ExactTM.gamma: 11.459804\n    test 766 line 129 _ExactTM.scale: 1.332207\n    test 767 line 129 _ExactTM.lat: 12.713794\n    test 768 line 129 _ExactTM.lon: 42.507018\n    test 769 line 130 _ExactTM.easting: 2293996.601155\n    test 770 line 130 _ExactTM.northing: 2392408.644221\n    test 771 line 130 _ExactTM.gamma: 7.791838\n    test 772 line 130 _ExactTM.scale: 1.065348\n    test 773 line 130 _ExactTM.lat: 20.238782\n    test 774 line 130 _ExactTM.lon: 21.566068\n    test 775 line 131 _ExactTM.easting: 1530603.839418\n    test 776 line 131 _ExactTM.northing: 7287841.459898\n    test 777 line 131 _ExactTM.gamma: 27.502921\n    test 778 line 131 _ExactTM.scale: 1.028416\n    test 779 line 131 _ExactTM.lat: 62.367847\n    test 780 line 131 _ExactTM.lon: 30.438849\n    test 781 line 132 _ExactTM.easting: 2660000.093152\n    test 782 line 132 _ExactTM.northing: 5161982.213248\n    test 783 line 132 _ExactTM.gamma: 22.629836\n    test 784 line 132 _ExactTM.scale: 1.087851\n    test 785 line 132 _ExactTM.lat: 41.891569\n    test 786 line 132 _ExactTM.lon: 31.959547\n    test 787 line 133 _ExactTM.easting: 5037478.329414\n    test 788 line 133 _ExactTM.northing: 8768172.379908\n    test 789 line 133 _ExactTM.gamma: 73.511182\n    test 790 line 133 _ExactTM.scale: 1.325919\n    test 791 line 133 _ExactTM.lat: 47.664248\n    test 792 line 133 _ExactTM.lon: 77.630062\n    test 793 line 134 _ExactTM.easting: 2289650.957799\n    test 794 line 134 _ExactTM.northing: 8784328.593607\n    test 795 line 134 _ExactTM.gamma: 60.786067\n    test 796 line 134 _ExactTM.scale: 1.064346\n    test 797 line 134 _ExactTM.lat: 67.259559\n    test 798 line 134 _ExactTM.lon: 62.715293\n    test 799 line 135 _ExactTM.easting: 647913.889744\n    test 800 line 135 _ExactTM.northing: 6742382.228217\n    test 801 line 135 _ExactTM.gamma: 10.252667\n    test 802 line 135 _ExactTM.scale: 1.004748\n    test 803 line 135 _ExactTM.lat: 60.295381\n    test 804 line 135 _ExactTM.lon: 11.763097\n    test 805 line 136 _ExactTM.easting: 1118372.698566\n    test 806 line 136 _ExactTM.northing: 9040627.942263\n    test 807 line 136 _ExactTM.gamma: 48.936803\n    test 808 line 136 _ExactTM.scale: 1.014920\n    test 809 line 136 _ExactTM.lat: 76.878914\n    test 810 line 136 _ExactTM.lon: 49.685773\n    test 811 line 137 _ExactTM.easting: 440696.510070\n    test 812 line 137 _ExactTM.northing: 5500355.826297\n    test 813 line 137 _ExactTM.gamma: 4.636104\n    test 814 line 137 _ExactTM.scale: 1.001986\n    test 815 line 137 _ExactTM.lat: 49.495349\n    test 816 line 137 _ExactTM.lon: 6.087551\n    test 817 line 138 _ExactTM.easting: 601728.149727\n    test 818 line 138 _ExactTM.northing: 9095352.048149\n    test 819 line 138 _ExactTM.gamma: 33.435771\n    test 820 line 138 _ExactTM.scale: 1.004027\n    test 821 line 138 _ExactTM.lat: 80.297265\n    test 822 line 138 _ExactTM.lon: 33.816372\n    test 823 line 139 _ExactTM.easting: 3481444.777827\n    test 824 line 139 _ExactTM.northing: 291665.708749\n    test 825 line 139 _ExactTM.gamma: 1.314726\n    test 826 line 139 _ExactTM.scale: 1.153534\n    test 827 line 139 _ExactTM.lat: 2.286437\n    test 828 line 139 _ExactTM.lon: 29.855149\n    test 829 line 140 _ExactTM.easting: 3515304.901524\n    test 830 line 140 _ExactTM.northing: 1443981.882918\n    test 831 line 140 _ExactTM.gamma: 6.641638\n    test 832 line 140 _ExactTM.scale: 1.156509\n    test 833 line 140 _ExactTM.lat: 11.264457\n    test 834 line 140 _ExactTM.lon: 30.743907\n    test 835 line 141 _ExactTM.easting: 160012.186959\n    test 836 line 141 _ExactTM.northing: 3922609.253231\n    test 837 line 141 _ExactTM.gamma: 1.022225\n    test 838 line 141 _ExactTM.scale: 0.999916\n    test 839 line 141 _ExactTM.lat: 35.434073\n    test 840 line 141 _ExactTM.lon: 1.762795\n    test 841 line 142 _ExactTM.easting: 4163744.245622\n    test 842 line 142 _ExactTM.northing: 936884.674804\n    test 843 line 142 _ExactTM.gamma: 4.892559\n    test 844 line 142 _ExactTM.scale: 1.222164\n    test 845 line 142 _ExactTM.lat: 6.923695\n    test 846 line 142 _ExactTM.lon: 35.289456\n    test 847 line 143 _ExactTM.easting: 6155200.017926\n    test 848 line 143 _ExactTM.northing: 6926306.628390\n    test 849 line 143 _ExactTM.gamma: 55.103258\n    test 850 line 143 _ExactTM.scale: 1.500556\n    test 851 line 143 _ExactTM.lat: 36.129672\n    test 852 line 143 _ExactTM.lon: 67.533176\n    test 853 line 144 _ExactTM.easting: 16263383.285440\n    test 854 line 144 _ExactTM.northing: 3591296.731341\n    test 855 line 144 _ExactTM.gamma: 36.040254\n    test 856 line 144 _ExactTM.scale: 6.589288\n    test 857 line 144 _ExactTM.lat: 4.406529\n    test 858 line 144 _ExactTM.lon: 81.965734\n    test 859 line 145 _ExactTM.easting: 14220995.515399  FAILED, KNOWN, expected 14220995.515398\n    test 860 line 145 _ExactTM.northing: 5100587.457503\n    test 861 line 145 _ExactTM.gamma: 47.314258\n    test 862 line 145 _ExactTM.scale: 4.693202\n    test 863 line 145 _ExactTM.lat: 8.474589\n    test 864 line 145 _ExactTM.lon: 81.129945\n    test 865 line 146 _ExactTM.easting: 3173034.802372\n    test 866 line 146 _ExactTM.northing: 7263421.942957\n    test 867 line 146 _ExactTM.gamma: 45.215808\n    test 868 line 146 _ExactTM.scale: 1.125410\n    test 869 line 146 _ExactTM.lat: 53.907276\n    test 870 line 146 _ExactTM.lon: 51.252904\n    test 871 line 147 _ExactTM.easting: 10253274.092204\n    test 872 line 147 _ExactTM.northing: 8867574.299792\n    test 873 line 147 _ExactTM.gamma: 79.198250\n    test 874 line 147 _ExactTM.scale: 2.572372\n    test 875 line 147 _ExactTM.lat: 22.120545\n    test 876 line 147 _ExactTM.lon: 85.756782\n    test 877 line 148 _ExactTM.easting: 2415561.483230\n    test 878 line 148 _ExactTM.northing: 8813225.217097\n    test 879 line 148 _ExactTM.gamma: 62.548978\n    test 880 line 148 _ExactTM.scale: 1.071748\n    test 881 line 148 _ExactTM.lat: 66.444100\n    test 882 line 148 _ExactTM.lon: 64.532960\n    test 883 line 149 _ExactTM.easting: 9589179.293295\n    test 884 line 149 _ExactTM.northing: 1777680.784143\n    test 885 line 149 _ExactTM.gamma: 14.838483\n    test 886 line 149 _ExactTM.scale: 2.380716\n    test 887 line 149 _ExactTM.lat: 6.670965\n    test 888 line 149 _ExactTM.lon: 65.660408\n    test 889 line 150 _ExactTM.easting: 727939.438391\n    test 890 line 150 _ExactTM.northing: 3684363.236810\n    test 891 line 150 _ExactTM.gamma: 4.266227\n    test 892 line 150 _ExactTM.scale: 1.006140\n    test 893 line 150 _ExactTM.lat: 33.054057\n    test 894 line 150 _ExactTM.lon: 7.787458\n    test 895 line 151 _ExactTM.easting: 1250765.991085\n    test 896 line 151 _ExactTM.northing: 792869.242719\n    test 897 line 151 _ExactTM.gamma: 1.396497\n    test 898 line 151 _ExactTM.scale: 1.019026\n    test 899 line 151 _ExactTM.lat: 7.035525\n    test 900 line 151 _ExactTM.lon: 11.253707\n    test 901 line 152 _ExactTM.easting: 710421.705887\n    test 902 line 152 _ExactTM.northing: 5019406.075928\n    test 903 line 152 _ExactTM.gamma: 6.393949\n    test 904 line 152 _ExactTM.scale: 1.005812\n    test 905 line 152 _ExactTM.lat: 44.971340\n    test 906 line 152 _ExactTM.lon: 9.009304\n    test 907 line 153 _ExactTM.easting: 4600995.074643\n    test 908 line 153 _ExactTM.northing: 4505712.084593\n    test 909 line 153 _ExactTM.gamma: 27.997458\n    test 910 line 153 _ExactTM.scale: 1.271841\n    test 911 line 153 _ExactTM.lat: 30.821397\n    test 912 line 153 _ExactTM.lon: 45.970577\n    test 913 line 154 _ExactTM.easting: 557642.627782\n    test 914 line 154 _ExactTM.northing: 7006911.251644\n    test 915 line 154 _ExactTM.gamma: 9.769903\n    test 916 line 154 _ExactTM.scale: 1.003411\n    test 917 line 154 _ExactTM.lat: 62.763886\n    test 918 line 154 _ExactTM.lon: 10.960144\n    test 919 line 155 _ExactTM.easting: 4635062.294291\n    test 920 line 155 _ExactTM.northing: 2702556.153311\n    test 921 line 155 _ExactTM.gamma: 15.779547\n    test 922 line 155 _ExactTM.scale: 1.277178\n    test 923 line 155 _ExactTM.lat: 18.888611\n    test 924 line 155 _ExactTM.lon: 41.009871\n    test 925 line 156 _ExactTM.easting: 14554962.255919\n    test 926 line 156 _ExactTM.northing: 4716639.908572\n    test 927 line 156 _ExactTM.gamma: 44.192751\n    test 928 line 156 _ExactTM.scale: 4.960020\n    test 929 line 156 _ExactTM.lat: 7.524119\n    test 930 line 156 _ExactTM.lon: 81.050715\n    test 931 line 157 _ExactTM.easting: 882126.661736\n    test 932 line 157 _ExactTM.northing: 7947612.369506\n    test 933 line 157 _ExactTM.gamma: 22.429487\n    test 934 line 157 _ExactTM.scale: 1.009132\n    test 935 line 157 _ExactTM.lat: 70.063902\n    test 936 line 157 _ExactTM.lon: 23.705255\n    test 937 line 158 _ExactTM.easting: 20262021.645983\n    test 938 line 158 _ExactTM.northing: 8113827.820796\n    test 939 line 158 _ExactTM.gamma: 76.936057\n    test 940 line 158 _ExactTM.scale: 10.349092\n    test 941 line 158 _ExactTM.lat: 3.556526\n    test 942 line 158 _ExactTM.lon: 88.363529\n    test 943 line 159 _ExactTM.easting: 6500508.399850\n    test 944 line 159 _ExactTM.northing: 6956476.342368\n    test 945 line 159 _ExactTM.gamma: 56.237116\n    test 946 line 159 _ExactTM.scale: 1.563162\n    test 947 line 159 _ExactTM.lat: 34.551257\n    test 948 line 159 _ExactTM.lon: 69.111091\n    test 949 line 160 _ExactTM.easting: 3884036.641314\n    test 950 line 160 _ExactTM.northing: 6890167.411733\n    test 951 line 160 _ExactTM.gamma: 45.760130\n    test 952 line 160 _ExactTM.scale: 1.190167\n    test 953 line 160 _ExactTM.lat: 47.929051\n    test 954 line 160 _ExactTM.lon: 54.103418\n    test 955 line 161 _ExactTM.easting: 217855.546078\n    test 956 line 161 _ExactTM.northing: 6184108.122568\n    test 957 line 161 _ExactTM.gamma: 2.870993\n    test 958 line 161 _ExactTM.scale: 1.000182\n    test 959 line 161 _ExactTM.lat: 55.753536\n    test 960 line 161 _ExactTM.lon: 3.471798\n    test 961 line 162 _ExactTM.easting: 11384139.290402\n    test 962 line 162 _ExactTM.northing: 8893889.949556\n    test 963 line 162 _ExactTM.gamma: 79.774854\n    test 964 line 162 _ExactTM.scale: 3.024672\n    test 965 line 162 _ExactTM.lat: 18.530847\n    test 966 line 162 _ExactTM.lon: 86.555312\n    test 967 line 163 _ExactTM.easting: 3469855.989805\n    test 968 line 163 _ExactTM.northing: 7723193.799228\n    test 969 line 163 _ExactTM.gamma: 53.114700\n    test 970 line 163 _ExactTM.scale: 1.150540\n    test 971 line 163 _ExactTM.lat: 54.510125\n    test 972 line 163 _ExactTM.lon: 58.556056\n    test 973 line 164 _ExactTM.easting: 5926165.994939\n    test 974 line 164 _ExactTM.northing: 9385463.732747\n    test 975 line 164 _ExactTM.gamma: 82.506981\n    test 976 line 164 _ExactTM.scale: 1.459758\n    test 977 line 164 _ExactTM.lat: 42.864162\n    test 978 line 164 _ExactTM.lon: 84.866326\n    test 979 line 165 _ExactTM.easting: 5798639.662224\n    test 980 line 165 _ExactTM.northing: 5305387.640916\n    test 981 line 165 _ExactTM.gamma: 38.617257\n    test 982 line 165 _ExactTM.scale: 1.442263\n    test 983 line 165 _ExactTM.lat: 30.911943\n    test 984 line 165 _ExactTM.lon: 57.114102\n    test 985 line 166 _ExactTM.easting: 9464.934388\n    test 986 line 166 _ExactTM.northing: 6489121.624944\n    test 987 line 166 _ExactTM.gamma: 0.138696\n    test 988 line 166 _ExactTM.scale: 0.999601\n    test 989 line 166 _ExactTM.lat: 58.542493\n    test 990 line 166 _ExactTM.lon: 0.162593\n    test 991 line 167 _ExactTM.easting: 12575834.275614\n    test 992 line 167 _ExactTM.northing: 8356610.895486\n    test 993 line 167 _ExactTM.gamma: 75.235223\n    test 994 line 167 _ExactTM.scale: 3.599442\n    test 995 line 167 _ExactTM.lat: 15.022689\n    test 996 line 167 _ExactTM.lon: 85.792615\n    test 997 line 168 _ExactTM.easting: 2719653.543469\n    test 998 line 168 _ExactTM.northing: 9362389.163495\n    test 999 line 168 _ExactTM.gamma: 76.049670\n    test 1000 line 168 _ExactTM.scale: 1.091315\n    test 1001 line 168 _ExactTM.lat: 65.692275\n    test 1002 line 168 _ExactTM.lon: 77.241377\n    test 1003 line 169 _ExactTM.easting: 4845341.924698\n    test 1004 line 169 _ExactTM.northing: 8710522.326901\n    test 1005 line 169 _ExactTM.gamma: 72.320942\n    test 1006 line 169 _ExactTM.scale: 1.300382\n    test 1007 line 169 _ExactTM.lat: 48.806211\n    test 1008 line 169 _ExactTM.lon: 76.486365\n    test 1009 line 170 _ExactTM.easting: 3935261.522763\n    test 1010 line 170 _ExactTM.northing: 9454271.649062\n    test 1011 line 170 _ExactTM.gamma: 81.162334\n    test 1012 line 170 _ExactTM.scale: 1.194767\n    test 1013 line 170 _ExactTM.lat: 56.436025\n    test 1014 line 170 _ExactTM.lon: 82.611568\n    test 1015 line 171 _ExactTM.easting: 7074299.823000\n    test 1016 line 171 _ExactTM.northing: 1648736.065055\n    test 1017 line 171 _ExactTM.gamma: 12.145925\n    test 1018 line 171 _ExactTM.scale: 1.687551\n    test 1019 line 171 _ExactTM.lat: 8.766053\n    test 1020 line 171 _ExactTM.lon: 54.367539\n    test 1021 line 172 _ExactTM.easting: 3689072.579308\n    test 1022 line 172 _ExactTM.northing: 2230802.665211\n    test 1023 line 172 _ExactTM.gamma: 10.856248\n    test 1024 line 172 _ExactTM.scale: 1.172689\n    test 1025 line 172 _ExactTM.lat: 17.095495\n    test 1026 line 172 _ExactTM.lon: 33.059128\n    test 1027 line 173 _ExactTM.easting: 8102565.885587\n    test 1028 line 173 _ExactTM.northing: 5167396.617580\n    test 1029 line 173 _ExactTM.gamma: 42.324886\n    test 1030 line 173 _ExactTM.scale: 1.921927\n    test 1031 line 173 _ExactTM.lat: 22.142861\n    test 1032 line 173 _ExactTM.lon: 67.200684\n    test 1033 line 174 _ExactTM.easting: 8181271.353564\n    test 1034 line 174 _ExactTM.northing: 4425436.547185\n    test 1035 line 174 _ExactTM.gamma: 35.900845\n    test 1036 line 174 _ExactTM.scale: 1.945017\n    test 1037 line 174 _ExactTM.lat: 19.222623\n    test 1038 line 174 _ExactTM.lon: 65.180785\n    test 1039 line 175 _ExactTM.easting: 767067.394003\n    test 1040 line 175 _ExactTM.northing: 3701745.857296\n    test 1041 line 175 _ExactTM.gamma: 4.519201\n    test 1042 line 175 _ExactTM.scale: 1.006863\n    test 1043 line 175 _ExactTM.lat: 33.182474\n    test 1044 line 175 _ExactTM.lon: 8.216952\n    test 1045 line 176 _ExactTM.easting: 6688114.168572\n    test 1046 line 176 _ExactTM.northing: 2052857.299639\n    test 1047 line 176 _ExactTM.gamma: 14.766191\n    test 1048 line 176 _ExactTM.scale: 1.607200\n    test 1049 line 176 _ExactTM.lat: 11.417963\n    test 1050 line 176 _ExactTM.lon: 52.808691\n    test 1051 line 177 _ExactTM.easting: 5608408.773761\n    test 1052 line 177 _ExactTM.northing: 3859055.659110\n    test 1053 line 177 _ExactTM.gamma: 26.244151\n    test 1054 line 177 _ExactTM.scale: 1.413463\n    test 1055 line 177 _ExactTM.lat: 23.836688\n    test 1056 line 177 _ExactTM.lon: 50.500180\n    test 1057 line 178 _ExactTM.easting: 3836942.765275\n    test 1058 line 178 _ExactTM.northing: 6415467.634326\n    test 1059 line 178 _ExactTM.gamma: 40.575885\n    test 1060 line 178 _ExactTM.scale: 1.185615\n    test 1061 line 178 _ExactTM.lat: 45.550020\n    test 1062 line 178 _ExactTM.lon: 50.148036\n    test 1063 line 179 _ExactTM.easting: 1298730.366025\n    test 1064 line 179 _ExactTM.northing: 6021453.000792\n    test 1065 line 179 _ExactTM.gamma: 15.613320\n    test 1066 line 179 _ExactTM.scale: 1.020367\n    test 1067 line 179 _ExactTM.lat: 52.746079\n    test 1068 line 179 _ExactTM.lon: 19.343926\n    test 1069 line 180 _ExactTM.easting: 416934.289208\n    test 1070 line 180 _ExactTM.northing: 7295683.451705\n    test 1071 line 180 _ExactTM.gamma: 8.238232\n    test 1072 line 180 _ExactTM.scale: 1.001729\n    test 1073 line 180 _ExactTM.lat: 65.513348\n    test 1074 line 180 _ExactTM.lon: 9.039529\n    test 1075 line 181 _ExactTM.easting: 4336076.850889\n    test 1076 line 181 _ExactTM.northing: 7617975.722779\n    test 1077 line 181 _ExactTM.gamma: 56.537088\n    test 1078 line 181 _ExactTM.scale: 1.238582\n    test 1079 line 181 _ExactTM.lat: 48.709795\n    test 1080 line 181 _ExactTM.lon: 63.554005\n    test 1081 line 182 _ExactTM.easting: 168047.336980\n    test 1082 line 182 _ExactTM.northing: 2185000.046530\n    test 1083 line 182 _ExactTM.gamma: 0.542187\n    test 1084 line 182 _ExactTM.scale: 0.999949\n    test 1085 line 182 _ExactTM.lat: 19.753509\n    test 1086 line 182 _ExactTM.lon: 1.603846\n    test 1087 line 183 _ExactTM.easting: 8276281.328790\n    test 1088 line 183 _ExactTM.northing: 263444.350545\n    test 1089 line 183 _ExactTM.gamma: 2.071435\n    test 1090 line 183 _ExactTM.scale: 1.980314\n    test 1091 line 183 _ExactTM.lat: 1.202816\n    test 1092 line 183 _ExactTM.lon: 59.377276\n    test 1093 line 184 _ExactTM.easting: 4772573.810710\n    test 1094 line 184 _ExactTM.northing: 6765710.336002\n    test 1095 line 184 _ExactTM.gamma: 48.857561\n    test 1096 line 184 _ExactTM.scale: 1.291911\n    test 1097 line 184 _ExactTM.lat: 42.564975\n    test 1098 line 184 _ExactTM.lon: 59.356947\n    test 1099 line 185 _ExactTM.easting: 5427755.074639\n    test 1100 line 185 _ExactTM.northing: 1556055.820924\n    test 1101 line 185 _ExactTM.gamma: 9.862178\n    test 1102 line 185 _ExactTM.scale: 1.387394\n    test 1103 line 185 _ExactTM.lat: 10.090572\n    test 1104 line 185 _ExactTM.lon: 44.604132\n    test 1105 line 186 _ExactTM.easting: 11588458.616041\n    test 1106 line 186 _ExactTM.northing: 5707993.922613\n    test 1107 line 186 _ExactTM.gamma: 50.784827\n    test 1108 line 186 _ExactTM.scale: 3.149567\n    test 1109 line 186 _ExactTM.lat: 14.133028\n    test 1110 line 186 _ExactTM.lon: 78.097533\n    test 1111 line 187 _ExactTM.easting: 7152433.802688\n    test 1112 line 187 _ExactTM.northing: 761390.695844\n    test 1113 line 187 _ExactTM.gamma: 5.607350\n    test 1114 line 187 _ExactTM.scale: 1.705261\n    test 1115 line 187 _ExactTM.lat: 4.031123\n    test 1116 line 187 _ExactTM.lon: 54.048782\n    test 1117 line 188 _ExactTM.easting: 3105651.390901\n    test 1118 line 188 _ExactTM.northing: 9426026.169064\n    test 1119 line 188 _ExactTM.gamma: 78.750206\n    test 1120 line 188 _ExactTM.scale: 1.119737\n    test 1121 line 188 _ExactTM.lat: 62.746603\n    test 1122 line 188 _ExactTM.lon: 79.968641\n    test 1123 line 189 _ExactTM.easting: 2959009.639022\n    test 1124 line 189 _ExactTM.northing: 8339242.269282\n    test 1125 line 189 _ExactTM.gamma: 58.460865\n    test 1126 line 189 _ExactTM.scale: 1.108554\n    test 1127 line 189 _ExactTM.lat: 60.626429\n    test 1128 line 189 _ExactTM.lon: 61.851551\n    test 1129 line 190 _ExactTM.easting: 8640472.267145\n    test 1130 line 190 _ExactTM.northing: 6230320.417931\n    test 1131 line 190 _ExactTM.gamma: 52.816810\n    test 1132 line 190 _ExactTM.scale: 2.062973\n    test 1133 line 190 _ExactTM.lat: 23.600626\n    test 1134 line 190 _ExactTM.lon: 72.811634\n    test 1135 line 191 _ExactTM.easting: 811352.108932\n    test 1136 line 191 _ExactTM.northing: 9816129.813481\n    test 1137 line 191 _ExactTM.gamma: 77.299184\n    test 1138 line 191 _ExactTM.scale: 1.007651\n    test 1139 line 191 _ExactTM.lat: 82.572236\n    test 1140 line 191 _ExactTM.lon: 77.402323\n    test 1141 line 192 _ExactTM.easting: 6521874.973458\n    test 1142 line 192 _ExactTM.northing: 1053612.479744\n    test 1143 line 192 _ExactTM.gamma: 7.407328\n    test 1144 line 192 _ExactTM.scale: 1.575529\n    test 1145 line 192 _ExactTM.lat: 6.030051\n    test 1146 line 192 _ExactTM.lon: 50.783505\n    test 1147 line 193 _ExactTM.easting: 3477983.997875\n    test 1148 line 193 _ExactTM.northing: 5651613.325947\n    test 1149 line 193 _ExactTM.gamma: 31.530673\n    test 1150 line 193 _ExactTM.scale: 1.151875\n    test 1151 line 193 _ExactTM.lat: 42.411523\n    test 1152 line 193 _ExactTM.lon: 42.258009\n    test 1153 line 194 _ExactTM.easting: 629892.822243\n    test 1154 line 194 _ExactTM.northing: 3283914.910451\n    test 1155 line 194 _ExactTM.gamma: 3.210482\n    test 1156 line 194 _ExactTM.scale: 1.004499\n    test 1157 line 194 _ExactTM.lat: 29.526120\n    test 1158 line 194 _ExactTM.lon: 6.493069\n    test 1159 line 195 _ExactTM.easting: 3381879.687227\n    test 1160 line 195 _ExactTM.northing: 5103629.325665\n    test 1161 line 195 _ExactTM.gamma: 26.748108\n    test 1162 line 195 _ExactTM.scale: 1.143559\n    test 1163 line 195 _ExactTM.lat: 39.021853\n    test 1164 line 195 _ExactTM.lon: 38.641779\n    test 1165 line 196 _ExactTM.easting: 2815986.534177\n    test 1166 line 196 _ExactTM.northing: 9387029.120718\n    test 1167 line 196 _ExactTM.gamma: 76.967262\n    test 1168 line 196 _ExactTM.scale: 1.098032\n    test 1169 line 196 _ExactTM.lat: 64.971850\n    test 1170 line 196 _ExactTM.lon: 78.151893\n    test 1171 line 197 _ExactTM.easting: 3398195.889603\n    test 1172 line 197 _ExactTM.northing: 9138936.031490\n    test 1173 line 197 _ExactTM.gamma: 74.477499\n    test 1174 line 197 _ExactTM.scale: 1.144009\n    test 1175 line 197 _ExactTM.lat: 59.961819\n    test 1176 line 197 _ExactTM.lon: 76.473422\n    test 1177 line 198 _ExactTM.easting: 2421734.754637\n    test 1178 line 198 _ExactTM.northing: 5002372.094991\n    test 1179 line 198 _ExactTM.gamma: 20.017082\n    test 1180 line 198 _ExactTM.scale: 1.072592\n    test 1181 line 198 _ExactTM.lat: 41.374040\n    test 1182 line 198 _ExactTM.lon: 28.848343\n    test 1183 line 199 _ExactTM.easting: 2360869.895525\n    test 1184 line 199 _ExactTM.northing: 9553298.449536\n    test 1185 line 199 _ExactTM.gamma: 78.848205\n    test 1186 line 199 _ExactTM.scale: 1.068453\n    test 1187 line 199 _ExactTM.lat: 68.946087\n    test 1188 line 199 _ExactTM.lon: 79.574523\n    test 1189 line 200 _ExactTM.easting: 1196539.972194\n    test 1190 line 200 _ExactTM.northing: 9861920.836230\n    test 1191 line 200 _ExactTM.gamma: 83.437668\n    test 1192 line 200 _ExactTM.scale: 1.017137\n    test 1193 line 200 _ExactTM.lat: 79.275096\n    test 1194 line 200 _ExactTM.lon: 83.551272\n    test 1195 line 201 _ExactTM.easting: 1327758.704795\n    test 1196 line 201 _ExactTM.northing: 2375509.241683\n    test 1197 line 201 _ExactTM.gamma: 4.617572\n    test 1198 line 201 _ExactTM.scale: 1.021465\n    test 1199 line 201 _ExactTM.lat: 21.000252\n    test 1200 line 201 _ExactTM.lon: 12.697444\n    test 1201 line 202 _ExactTM.easting: 2070860.327644\n    test 1202 line 202 _ExactTM.northing: 8604500.719581\n    test 1203 line 202 _ExactTM.gamma: 54.722761\n    test 1204 line 202 _ExactTM.scale: 1.052469\n    test 1205 line 202 _ExactTM.lat: 68.015227\n    test 1206 line 202 _ExactTM.lon: 56.732419\n    test 1207 line 203 _ExactTM.easting: 6564776.654864\n    test 1208 line 203 _ExactTM.northing: 8171207.177379\n    test 1209 line 203 _ExactTM.gamma: 69.237523\n    test 1210 line 203 _ExactTM.scale: 1.573894\n    test 1211 line 203 _ExactTM.lat: 37.423675\n    test 1212 line 203 _ExactTM.lon: 76.947359\n    test 1213 line 204 _ExactTM.easting: 592653.553821\n    test 1214 line 204 _ExactTM.northing: 6125529.810052\n    test 1215 line 204 _ExactTM.gamma: 7.600785\n    test 1216 line 204 _ExactTM.scale: 1.003912\n    test 1217 line 204 _ExactTM.lat: 54.922707\n    test 1218 line 204 _ExactTM.lon: 9.260818\n    test 1219 line 205 _ExactTM.easting: 693459.671821\n    test 1220 line 205 _ExactTM.northing: 6943779.991032\n    test 1221 line 205 _ExactTM.gamma: 11.787587\n    test 1222 line 205 _ExactTM.scale: 1.005496\n    test 1223 line 205 _ExactTM.lat: 61.982810\n    test 1224 line 205 _ExactTM.lon: 13.299659\n    test 1225 line 206 _ExactTM.easting: 1838956.187625\n    test 1226 line 206 _ExactTM.northing: 3511959.612381\n    test 1227 line 206 _ExactTM.gamma: 9.844313\n    test 1228 line 206 _ExactTM.scale: 1.041603\n    test 1229 line 206 _ExactTM.lat: 30.324214\n    test 1230 line 206 _ExactTM.lon: 18.959769\n    test 1231 line 207 _ExactTM.easting: 4460690.884597\n    test 1232 line 207 _ExactTM.northing: 5541873.235403\n    test 1233 line 207 _ExactTM.gamma: 35.768613\n    test 1234 line 207 _ExactTM.scale: 1.254179\n    test 1235 line 207 _ExactTM.lat: 37.629667\n    test 1236 line 207 _ExactTM.lon: 49.649131\n    test 1237 line 208 _ExactTM.easting: 2311168.998941\n    test 1238 line 208 _ExactTM.northing: 9480561.869119\n    test 1239 line 208 _ExactTM.gamma: 76.828257\n    test 1240 line 208 _ExactTM.scale: 1.065556\n    test 1241 line 208 _ExactTM.lat: 69.225574\n    test 1242 line 208 _ExactTM.lon: 77.656135\n    test 1243 line 209 _ExactTM.easting: 4111775.114451\n    test 1244 line 209 _ExactTM.northing: 6509014.348792\n    test 1245 line 209 _ExactTM.gamma: 43.052130\n    test 1246 line 209 _ExactTM.scale: 1.214125\n    test 1247 line 209 _ExactTM.lat: 44.698478\n    test 1248 line 209 _ExactTM.lon: 52.979304\n    test 1249 line 210 _ExactTM.easting: 75358.261962\n    test 1250 line 210 _ExactTM.northing: 7711258.662251\n    test 1251 line 210 _ExactTM.gamma: 1.806297\n    test 1252 line 210 _ExactTM.scale: 0.999669\n    test 1253 line 210 _ExactTM.lat: 69.499594\n    test 1254 line 210 _ExactTM.lon: 1.928336\n    test 1255 line 211 _ExactTM.easting: 8781885.229116\n    test 1256 line 211 _ExactTM.northing: 9184776.452211\n    test 1257 line 211 _ExactTM.gamma: 81.795539\n    test 1258 line 211 _ExactTM.scale: 2.094908\n    test 1259 line 211 _ExactTM.lat: 27.981364\n    test 1260 line 211 _ExactTM.lon: 86.061113\n    test 1261 line 212 _ExactTM.easting: 954378.415174\n    test 1262 line 212 _ExactTM.northing: 7449110.669807\n    test 1263 line 212 _ExactTM.gamma: 19.380657\n    test 1264 line 212 _ExactTM.scale: 1.010768\n    test 1265 line 212 _ExactTM.lat: 65.699839\n    test 1266 line 212 _ExactTM.lon: 21.104725\n    test 1267 line 213 _ExactTM.easting: 720971.793706\n    test 1268 line 213 _ExactTM.northing: 5265195.121555\n    test 1269 line 213 _ExactTM.gamma: 7.002995\n    test 1270 line 213 _ExactTM.scale: 1.005995\n    test 1271 line 213 _ExactTM.lat: 47.143648\n    test 1272 line 213 _ExactTM.lon: 9.512189\n    test 1273 line 214 _ExactTM.easting: 561561.493937\n    test 1274 line 214 _ExactTM.northing: 989910.236221\n    test 1275 line 214 _ExactTM.gamma: 0.793118\n    test 1276 line 214 _ExactTM.scale: 1.003505\n    test 1277 line 214 _ExactTM.lat: 8.920167\n    test 1278 line 214 _ExactTM.lon: 5.101513\n    test 1279 line 215 _ExactTM.easting: 3446829.634468\n    test 1280 line 215 _ExactTM.northing: 9232868.155664\n    test 1281 line 215 _ExactTM.gamma: 76.279075\n    test 1282 line 215 _ExactTM.scale: 1.148263\n    test 1283 line 215 _ExactTM.lat: 59.778971\n    test 1284 line 215 _ExactTM.lon: 78.080322\n    test 1285 line 216 _ExactTM.easting: 4048307.545909\n    test 1286 line 216 _ExactTM.northing: 9800416.422998\n    test 1287 line 216 _ExactTM.gamma: 86.843918\n    test 1288 line 216 _ExactTM.scale: 1.206495\n    test 1289 line 216 _ExactTM.lat: 55.865310\n    test 1290 line 216 _ExactTM.lon: 87.384288\n    test 1291 line 217 _ExactTM.easting: 8973188.480293\n    test 1292 line 217 _ExactTM.northing: 7042230.087021\n    test 1293 line 217 _ExactTM.gamma: 60.872456\n    test 1294 line 217 _ExactTM.scale: 2.156098\n    test 1295 line 217 _ExactTM.lat: 24.310973\n    test 1296 line 217 _ExactTM.lon: 76.823777\n    test 1297 line 218 _ExactTM.easting: 126314.191618\n    test 1298 line 218 _ExactTM.northing: 396006.687921\n    test 1299 line 218 _ExactTM.gamma: 0.071065\n    test 1300 line 218 _ExactTM.scale: 0.999798\n    test 1301 line 218 _ExactTM.lat: 3.582041\n    test 1302 line 218 _ExactTM.lon: 1.137286\n    test 1303 line 219 _ExactTM.easting: 5247652.345647\n    test 1304 line 219 _ExactTM.northing: 8670513.359752\n    test 1305 line 219 _ExactTM.gamma: 72.700498\n    test 1306 line 219 _ExactTM.scale: 1.355272\n    test 1307 line 219 _ExactTM.lat: 46.124233\n    test 1308 line 219 _ExactTM.lon: 77.313118\n    test 1309 line 220 _ExactTM.easting: 8103656.838119\n    test 1310 line 220 _ExactTM.northing: 9469794.014737\n    test 1311 line 220 _ExactTM.gamma: 84.490673\n    test 1312 line 220 _ExactTM.scale: 1.912164\n    test 1313 line 220 _ExactTM.lat: 31.171391\n    test 1314 line 220 _ExactTM.lon: 87.104504\n    test 1315 line 221 _ExactTM.easting: 6300112.758236\n    test 1316 line 221 _ExactTM.northing: 93835.917364\n    test 1317 line 221 _ExactTM.gamma: 0.644805\n    test 1318 line 221 _ExactTM.scale: 1.534073\n    test 1319 line 221 _ExactTM.lat: 0.553171\n    test 1320 line 221 _ExactTM.lon: 49.117104\n    test 1321 line 222 _ExactTM.easting: 3894813.593782\n    test 1322 line 222 _ExactTM.northing: 4833832.341027\n    test 1323 line 222 _ExactTM.gamma: 27.453298\n    test 1324 line 222 _ExactTM.scale: 1.192135\n    test 1325 line 222 _ExactTM.lat: 35.361587\n    test 1326 line 222 _ExactTM.lon: 41.860599\n    test 1327 line 223 _ExactTM.easting: 402511.346712\n    test 1328 line 223 _ExactTM.northing: 3520621.561911\n    test 1329 line 223 _ExactTM.gamma: 2.238474\n    test 1330 line 223 _ExactTM.scale: 1.001599\n    test 1331 line 223 _ExactTM.lat: 31.750314\n    test 1332 line 223 _ExactTM.lon: 4.248167\n    test 1333 line 224 _ExactTM.easting: 5357378.503148\n    test 1334 line 224 _ExactTM.northing: 2772997.602234\n    test 1335 line 224 _ExactTM.gamma: 17.823560\n    test 1336 line 224 _ExactTM.scale: 1.376031\n    test 1337 line 224 _ExactTM.lat: 17.924336\n    test 1338 line 224 _ExactTM.lon: 46.096402\n    test 1339 line 225 _ExactTM.easting: 2807553.985866\n    test 1340 line 225 _ExactTM.northing: 8177847.980275\n    test 1341 line 225 _ExactTM.gamma: 54.680045\n    test 1342 line 225 _ExactTM.scale: 1.097531\n    test 1343 line 225 _ExactTM.lat: 60.931488\n    test 1344 line 225 _ExactTM.lon: 58.221214\n    test 1345 line 226 _ExactTM.easting: 18289045.166501\n    test 1346 line 226 _ExactTM.northing: 7792942.339604\n    test 1347 line 226 _ExactTM.gamma: 73.216494\n    test 1348 line 226 _ExactTM.scale: 8.098009\n    test 1349 line 226 _ExactTM.lat: 5.358151\n    test 1350 line 226 _ExactTM.lon: 87.556213\n    test 1351 line 227 _ExactTM.easting: 8376822.459538\n    test 1352 line 227 _ExactTM.northing: 8128174.623878\n    test 1353 line 227 _ExactTM.gamma: 70.920117\n    test 1354 line 227 _ExactTM.scale: 1.984873\n    test 1355 line 227 _ExactTM.lat: 28.616673\n    test 1356 line 227 _ExactTM.lon: 80.452426\n    test 1357 line 228 _ExactTM.easting: 11898068.353272\n    test 1358 line 228 _ExactTM.northing: 4772439.493697\n    test 1359 line 228 _ExactTM.gamma: 42.613968\n    test 1360 line 228 _ExactTM.scale: 3.314412\n    test 1361 line 228 _ExactTM.lat: 11.709763\n    test 1362 line 228 _ExactTM.lon: 76.760295\n    test 1363 line 229 _ExactTM.easting: 10550946.939050\n    test 1364 line 229 _ExactTM.northing: 3851968.815295\n    test 1365 line 229 _ExactTM.gamma: 33.383025\n    test 1366 line 229 _ExactTM.scale: 2.724754\n    test 1367 line 229 _ExactTM.lat: 12.009498\n    test 1368 line 229 _ExactTM.lon: 71.782351\n    test 1369 line 230 _ExactTM.easting: 6828299.123607\n    test 1370 line 230 _ExactTM.northing: 9394803.227463\n    test 1371 line 230 _ExactTM.gamma: 83.181386\n    test 1372 line 230 _ExactTM.scale: 1.624359\n    test 1373 line 230 _ExactTM.lat: 37.629784\n    test 1374 line 230 _ExactTM.lon: 85.795687\n    test 1375 line 231 _ExactTM.easting: 11162550.334022\n    test 1376 line 231 _ExactTM.northing: 2640267.279593\n    test 1377 line 231 _ExactTM.gamma: 23.145404\n    test 1378 line 231 _ExactTM.scale: 2.998408\n    test 1379 line 231 _ExactTM.lat: 7.721128\n    test 1380 line 231 _ExactTM.lon: 71.662731\n    test 1381 line 232 _ExactTM.easting: 4411584.447941\n    test 1382 line 232 _ExactTM.northing: 4956173.694407\n    test 1383 line 232 _ExactTM.gamma: 30.713919\n    test 1384 line 232 _ExactTM.scale: 1.248736\n    test 1385 line 232 _ExactTM.lat: 34.295026\n    test 1386 line 232 _ExactTM.lon: 46.442191\n    test 1387 line 233 _ExactTM.easting: 672108.897905\n    test 1388 line 233 _ExactTM.northing: 4751554.657054\n    test 1389 line 233 _ExactTM.gamma: 5.569178\n    test 1390 line 233 _ExactTM.scale: 1.005162\n    test 1391 line 233 _ExactTM.lat: 42.622496\n    test 1392 line 233 _ExactTM.lon: 8.193605\n    test 1393 line 234 _ExactTM.easting: 5022964.290579\n    test 1394 line 234 _ExactTM.northing: 6860418.199502\n    test 1395 line 234 _ExactTM.gamma: 50.862230\n    test 1396 line 234 _ExactTM.scale: 1.324925\n    test 1397 line 234 _ExactTM.lat: 41.667780\n    test 1398 line 234 _ExactTM.lon: 61.518288\n    test 1399 line 235 _ExactTM.easting: 1669655.595207\n    test 1400 line 235 _ExactTM.northing: 4152086.537021\n    test 1401 line 235 _ExactTM.gamma: 11.110237\n    test 1402 line 235 _ExactTM.scale: 1.034138\n    test 1403 line 235 _ExactTM.lat: 36.060369\n    test 1404 line 235 _ExactTM.lon: 18.444112\n    test 1405 line 236 _ExactTM.easting: 6055876.729655\n    test 1406 line 236 _ExactTM.northing: 4896837.552619\n    test 1407 line 236 _ExactTM.gamma: 35.799747\n    test 1408 line 236 _ExactTM.scale: 1.485967\n    test 1409 line 236 _ExactTM.lat: 27.948091\n    test 1410 line 236 _ExactTM.lon: 56.816429\n    test 1411 line 237 _ExactTM.easting: 1209214.164379\n    test 1412 line 237 _ExactTM.northing: 7266409.859178\n    test 1413 line 237 _ExactTM.gamma: 22.319633\n    test 1414 line 237 _ExactTM.scale: 1.017554\n    test 1415 line 237 _ExactTM.lat: 63.386030\n    test 1416 line 237 _ExactTM.lon: 24.662716\n    test 1417 line 238 _ExactTM.easting: 5154564.559584\n    test 1418 line 238 _ExactTM.northing: 698118.349975\n    test 1419 line 238 _ExactTM.gamma: 4.242360\n    test 1420 line 238 _ExactTM.scale: 1.347481\n    test 1421 line 238 _ExactTM.lat: 4.680922\n    test 1422 line 238 _ExactTM.lon: 42.114426\n    test 1423 line 239 _ExactTM.easting: 2695149.806543\n    test 1424 line 239 _ExactTM.northing: 8208197.765605\n    test 1425 line 239 _ExactTM.gamma: 54.178615\n    test 1426 line 239 _ExactTM.scale: 1.089730\n    test 1427 line 239 _ExactTM.lat: 61.826625\n    test 1428 line 239 _ExactTM.lon: 57.525096\n    test 1429 line 240 _ExactTM.easting: 3394792.327820\n    test 1430 line 240 _ExactTM.northing: 3217583.415552\n    test 1431 line 240 _ExactTM.gamma: 15.165863\n    test 1432 line 240 _ExactTM.scale: 1.145285\n    test 1433 line 240 _ExactTM.lat: 25.104353\n    test 1434 line 240 _ExactTM.lon: 32.528660\n    test 1435 line 241 _ExactTM.easting: 1429160.966985\n    test 1436 line 241 _ExactTM.northing: 8212685.362032\n    test 1437 line 241 _ExactTM.gamma: 37.484904\n    test 1438 line 241 _ExactTM.scale: 1.024676\n    test 1439 line 241 _ExactTM.lat: 69.678351\n    test 1440 line 241 _ExactTM.lon: 39.275513\n    test 1441 line 242 _ExactTM.easting: 8343387.998065\n    test 1442 line 242 _ExactTM.northing: 8885196.954578\n    test 1443 line 242 _ExactTM.gamma: 78.561937\n    test 1444 line 242 _ExactTM.scale: 1.974733\n    test 1445 line 242 _ExactTM.lat: 29.671384\n    test 1446 line 242 _ExactTM.lon: 84.196595\n    test 1447 line 243 _ExactTM.easting: 1990722.928606\n    test 1448 line 243 _ExactTM.northing: 7569202.065162\n    test 1449 line 243 _ExactTM.gamma: 37.075276\n    test 1450 line 243 _ExactTM.scale: 1.048486\n    test 1451 line 243 _ExactTM.lat: 62.300208\n    test 1452 line 243 _ExactTM.lon: 40.474051\n    test 1453 line 244 _ExactTM.easting: 1554980.099559\n    test 1454 line 244 _ExactTM.northing: 1449423.919586\n    test 1455 line 244 _ExactTM.gamma: 3.188328\n    test 1456 line 244 _ExactTM.scale: 1.029664\n    test 1457 line 244 _ExactTM.lat: 12.721776\n    test 1458 line 244 _ExactTM.lon: 14.190003\n    test 1459 line 245 _ExactTM.easting: 785205.450196\n    test 1460 line 245 _ExactTM.northing: 5575158.423096\n    test 1461 line 245 _ExactTM.gamma: 8.388417\n    test 1462 line 245 _ExactTM.scale: 1.007181\n    test 1463 line 245 _ExactTM.lat: 49.811296\n    test 1464 line 245 _ExactTM.lon: 10.925011\n    test 1465 line 246 _ExactTM.easting: 3310405.988313\n    test 1466 line 246 _ExactTM.northing: 5955022.233881\n    test 1467 line 246 _ExactTM.gamma: 33.007587\n    test 1468 line 246 _ExactTM.scale: 1.137141\n    test 1469 line 246 _ExactTM.lat: 45.132680\n    test 1470 line 246 _ExactTM.lon: 42.478624\n    test 1471 line 247 _ExactTM.easting: 4733460.960666\n    test 1472 line 247 _ExactTM.northing: 129034.889816\n    test 1473 line 247 _ExactTM.gamma: 0.737551\n    test 1474 line 247 _ExactTM.scale: 1.290439\n    test 1475 line 247 _ExactTM.lat: 0.904279\n    test 1476 line 247 _ExactTM.lon: 39.078412\n    test 1477 line 248 _ExactTM.easting: 3322708.343909\n    test 1478 line 248 _ExactTM.northing: 3864738.078742\n    test 1479 line 248 _ExactTM.gamma: 18.472566\n    test 1480 line 248 _ExactTM.scale: 1.138838\n    test 1481 line 248 _ExactTM.lat: 30.163605\n    test 1482 line 248 _ExactTM.lon: 33.577996\n    test 1483 line 249 _ExactTM.easting: 8672864.417204\n    test 1484 line 249 _ExactTM.northing: 8333465.983444\n    test 1485 line 249 _ExactTM.gamma: 73.206273\n    test 1486 line 249 _ExactTM.scale: 2.065441\n    test 1487 line 249 _ExactTM.lat: 27.643244\n    test 1488 line 249 _ExactTM.lon: 81.892859\n    test 1489 line 250 _ExactTM.easting: 11126818.231196\n    test 1490 line 250 _ExactTM.northing: 7618712.174991\n    test 1491 line 250 _ExactTM.gamma: 67.887173\n    test 1492 line 250 _ExactTM.scale: 2.922417\n    test 1493 line 250 _ExactTM.lat: 18.201208\n    test 1494 line 250 _ExactTM.lon: 82.434618\n    test 1495 line 251 _ExactTM.easting: 8650100.981797\n    test 1496 line 251 _ExactTM.northing: 9975084.168997\n    test 1497 line 251 _ExactTM.gamma: 89.767446\n    test 1498 line 251 _ExactTM.scale: 2.057289\n    test 1499 line 251 _ExactTM.lat: 28.804576\n    test 1500 line 251 _ExactTM.lon: 89.886072\n    test 1501 line 252 _ExactTM.easting: 2212701.180192\n    test 1502 line 252 _ExactTM.northing: 650348.100229\n    test 1503 line 252 _ExactTM.gamma: 1.970441\n    test 1504 line 252 _ExactTM.scale: 1.060830\n    test 1505 line 252 _ExactTM.lat: 5.542998\n    test 1506 line 252 _ExactTM.lon: 19.589578\n    test 1507 line 253 _ExactTM.easting: 6890222.326618\n    test 1508 line 253 _ExactTM.northing: 7506813.499547\n    test 1509 line 253 _ExactTM.gamma: 62.684825\n    test 1510 line 253 _ExactTM.scale: 1.638488\n    test 1511 line 253 _ExactTM.lat: 34.237147\n    test 1512 line 253 _ExactTM.lon: 73.678164\n    test 1513 line 254 _ExactTM.easting: 6692260.067325\n    test 1514 line 254 _ExactTM.northing: 4244174.008110\n    test 1515 line 254 _ExactTM.gamma: 31.812920\n    test 1516 line 254 _ExactTM.scale: 1.604640\n    test 1517 line 254 _ExactTM.lat: 22.704949\n    test 1518 line 254 _ExactTM.lon: 57.877010\n    test 1519 line 255 _ExactTM.easting: 1225564.137190\n    test 1520 line 255 _ExactTM.northing: 4778923.924144\n    test 1521 line 255 _ExactTM.gamma: 10.083419\n    test 1522 line 255 _ExactTM.scale: 1.018134\n    test 1523 line 255 _ExactTM.lat: 42.192424\n    test 1524 line 255 _ExactTM.lon: 14.828196\n    test 1525 line 256 _ExactTM.easting: 12341116.154950\n    test 1526 line 256 _ExactTM.northing: 5081855.521966\n    test 1527 line 256 _ExactTM.gamma: 45.712546\n    test 1528 line 256 _ExactTM.scale: 3.535170\n    test 1529 line 256 _ExactTM.lat: 11.481151\n    test 1530 line 256 _ExactTM.lon: 78.189236\n    test 1531 line 257 _ExactTM.easting: 6673845.021771\n    test 1532 line 257 _ExactTM.northing: 1177587.190565\n    test 1533 line 257 _ExactTM.gamma: 8.389141\n    test 1534 line 257 _ExactTM.scale: 1.605171\n    test 1535 line 257 _ExactTM.lat: 6.609626\n    test 1536 line 257 _ExactTM.lon: 51.735783\n    test 1537 line 258 _ExactTM.easting: 6966354.690417\n    test 1538 line 258 _ExactTM.northing: 3641802.005093\n    test 1539 line 258 _ExactTM.gamma: 27.409636\n    test 1540 line 258 _ExactTM.scale: 1.661469\n    test 1541 line 258 _ExactTM.lat: 19.059369\n    test 1542 line 258 _ExactTM.lon: 57.526439\n    test 1543 max forward error: 1.117587e-08\n    test 1544 max reverse error: 1.421085e-13\n    test 1545 _ExactTM.scale0: 0.9996\n    test 1546 _ExactTM.datum: WGS84\n    test 1547 _ExactTM.datum.ellipsoid.KsOrder: 8\n    test 1548 WGS84.KsOrder: 8\n\n    1 of 1548 testExactTMcoords.py tests (0.1%) FAILED, ALL KNOWN, 1 skipped (pygeodesy 26.3.26 Python 2.7.18 64bit arm64_x86_64 geographiclib 1.50 numpy 1.16.6 scipy 1.2.2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 -W  default) 4.318 sec\nrunning /Library/Framewo....ython -W default ~/PyGeodesy/test/testFmath.py\n\n    testing testFmath.py 25.09.09 (module pygeodesy.fmath 26.03.25)\n    test 1 fpolynomialA: 1.21197509766\n    test 2 fhornerA: 1.21197509766\n    test 3 fpolynomialB: 0.1513671875\n    test 4 fhornerB: 0.1513671875\n\n    test 5 fpolynomialA: 1.21197509766\n    test 6 fhornerA: 1.21197509766\n    test 7 fpolynomialB: 0.1513671875\n    test 8 fhornerB: 0.1513671875\n\n    test 9 fpolynomialA: 1.21197509766\n    test 10 fhornerA: 1.21197509766\n    test 11 fpolynomialB: 0.1513671875\n    test 12 fhornerB: 0.1513671875\n\n    test 13 fpolynomialA: 1.21197509766\n    test 14 fhornerA: 1.21197509766\n    test 15 fpolynomialB: 0.1513671875\n    test 16 fhornerB: 0.1513671875\n\n    test 17 fpolynomialA: 1.21197509766\n    test 18 fhornerA: 1.21197509766\n    test 19 fpolynomialB: 0.1513671875\n    test 20 fhornerB: 0.1513671875\n\n    test 21 fpolynomialA: 1.21197509766\n    test 22 fhornerA: 1.21197509766\n    test 23 fpolynomialB: 0.1513671875\n    test 24 fhornerB: 0.1513671875\n\n    test 25 fpolynomialA: 1.21197509766\n    test 26 fhornerA: 1.21197509766\n    test 27 fpolynomialB: 0.1513671875\n    test 28 fhornerB: 0.1513671875\n\n    test 29 fpolynomialA: 1.21197509766\n    test 30 fhornerA: 1.21197509766\n    test 31 fpolynomialB: 0.1513671875\n    test 32 fhornerB: 0.1513671875\n\n    test 33 fpolynomialA: 1.21197509766\n    test 34 fhornerA: 1.21197509766\n    test 35 fpolynomialB: 0.1513671875\n    test 36 fhornerB: 0.1513671875\n\n    test 37 fpolynomialA: 1.21197509766\n    test 38 fhornerA: 1.21197509766\n    test 39 fpolynomialB: 0.1513671875\n    test 40 fhornerB: 0.1513671875\n\n    test 41 fpolynomialA: 1.21197509766\n    test 42 fhornerA: 1.21197509766\n    test 43 fpolynomialB: 0.1513671875\n    test 44 fhornerB: 0.1513671875\n\n    test 45 fpolynomialA: 1.21197509766\n    test 46 fhornerA: 1.21197509766\n    test 47 fpolynomialB: 0.1513671875\n    test 48 fhornerB: 0.1513671875\n\n    test 49 fpolynomialA: 1.21197509766\n    test 50 fhornerA: 1.21197509766\n    test 51 fpolynomialB: 0.1513671875\n    test 52 fhornerB: 0.1513671875\n\n    test 53 fpolynomialA: 1.21197509766\n    test 54 fhornerA: 1.21197509766\n    test 55 fpolynomialB: 0.1513671875\n    test 56 fhornerB: 0.1513671875\n\n    test 57 fpolynomialA: 1.21197509766\n    test 58 fhornerA: 1.21197509766\n    test 59 fpolynomialB: 0.1513671875\n    test 60 fhornerB: 0.1513671875\n\n    test 61 fpolynomialA: 1.21197509766\n    test 62 fhornerA: 1.21197509766\n    test 63 fpolynomialB: 0.1513671875\n    test 64 fhornerB: 0.1513671875\n\n    test 65 fpolynomialA: 1.21197509766\n    test 66 fhornerA: 1.21197509766\n    test 67 fpolynomialB: 0.1513671875\n    test 68 fhornerB: 0.1513671875\n\n    test 69 fpolynomialA: 1.21197509766\n    test 70 fhornerA: 1.21197509766\n    test 71 fpolynomialB: 0.1513671875\n    test 72 fhornerB: 0.1513671875\n\n    test 73 fpolynomialA: 1.21197509766\n    test 74 fhornerA: 1.21197509766\n    test 75 fpolynomialB: 0.1513671875\n    test 76 fhornerB: 0.1513671875\n\n    test 77 fpolynomialA: 1.21197509766\n    test 78 fhornerA: 1.21197509766\n    test 79 fpolynomialB: 0.1513671875\n    test 80 fhornerB: 0.1513671875\n\n    test 81 fpolynomialA: 1.21197509766\n    test 82 fhornerA: 1.21197509766\n    test 83 fpolynomialB: 0.1513671875\n    test 84 fhornerB: 0.1513671875\n\n    test 85 fpolynomialA: 1.21197509766\n    test 86 fhornerA: 1.21197509766\n    test 87 fpolynomialB: 0.1513671875\n    test 88 fhornerB: 0.1513671875\n\n    test 89 fpolynomialA: 1.21197509766\n    test 90 fhornerA: 1.21197509766\n    test 91 fpolynomialB: 0.1513671875\n    test 92 fhornerB: 0.1513671875\n\n    test 93 fpolynomialA: 1.21197509766\n    test 94 fhornerA: 1.21197509766\n    test 95 fpolynomialB: 0.1513671875\n    test 96 fhornerB: 0.1513671875\n\n    test 97 fpolynomialA: 1.21197509766\n    test 98 fhornerA: 1.21197509766\n    test 99 fpolynomialB: 0.1513671875\n    test 100 fhornerB: 0.1513671875\n\n    test 101 fpolynomialA: 1.21197509766\n    test 102 fhornerA: 1.21197509766\n    test 103 fpolynomialB: 0.1513671875\n    test 104 fhornerB: 0.1513671875\n\n    test 105 fpolynomialA: 1.21197509766\n    test 106 fhornerA: 1.21197509766\n    test 107 fpolynomialB: 0.1513671875\n    test 108 fhornerB: 0.1513671875\n\n    test 109 fpolynomialA: 1.21197509766\n    test 110 fhornerA: 1.21197509766\n    test 111 fpolynomialB: 0.1513671875\n    test 112 fhornerB: 0.1513671875\n\n    test 113 fpolynomialA: 1.21197509766\n    test 114 fhornerA: 1.21197509766\n    test 115 fpolynomialB: 0.1513671875\n    test 116 fhornerB: 0.1513671875\n\n    test 117 fpolynomialA: 1.21197509766\n    test 118 fhornerA: 1.21197509766\n    test 119 fpolynomialB: 0.1513671875\n    test 120 fhornerB: 0.1513671875\n\n    test 121 fpolynomialA: 1.21197509766\n    test 122 fhornerA: 1.21197509766\n    test 123 fpolynomialB: 0.1513671875\n    test 124 fhornerB: 0.1513671875\n\n    test 125 fpolynomialA: 1.21197509766\n    test 126 fhornerA: 1.21197509766\n    test 127 fpolynomialB: 0.1513671875\n    test 128 fhornerB: 0.1513671875\n\n    test 129 fpolynomialA: 1.21197509766\n    test 130 fhornerA: 1.21197509766\n    test 131 fpolynomialB: 0.1513671875\n    test 132 fhornerB: 0.1513671875\n\n    test 133 fpowers: 10\n    test 134 fpowers: 2\n    test 135 fpowers: 1024\n    test 136 fpowers: 4\n    test 137 fpowers: 16\n    test 138 fpowers: 1024\n    test 139 fpowers: 4\n    test 140 fpowers: 8\n    test 141 fpowers: 512\n\n    test 142 Airy1830: 6366914.608925221\n    test 143 Airy1830: 6366914.608925221\n    test 144 Airy1830: 6366914.608925221\n    test 145 Airy1830: 6366914.608925221\n\n    test 146 AiryModified: 6366691.774619882  FAILED, KNOWN, expected 6366691.774619881\n    test 147 AiryModified: 6366691.774619882  FAILED, KNOWN, expected 6366691.774619881\n    test 148 AiryModified: 6366691.774619882  FAILED, KNOWN, expected 6366691.774619881\n    test 149 AiryModified: 6366691.774619882  FAILED, KNOWN, expected 6366691.774619881\n\n    test 150 ATS1977: 6367447.141166951  FAILED, KNOWN, expected 6367447.141166950\n    test 151 ATS1977: 6367447.141166951  FAILED, KNOWN, expected 6367447.141166950\n    test 152 ATS1977: 6367447.141166951  FAILED, KNOWN, expected 6367447.141166950\n    test 153 ATS1977: 6367447.141166951  FAILED, KNOWN, expected 6367447.141166950\n\n    test 154 Australia1966: 6367471.848532283  FAILED, KNOWN, expected 6367471.848532284\n    test 155 Australia1966: 6367471.848532283  FAILED, KNOWN, expected 6367471.848532284\n    test 156 Australia1966: 6367471.848532283  FAILED, KNOWN, expected 6367471.848532284\n    test 157 Australia1966: 6367471.848532283  FAILED, KNOWN, expected 6367471.848532284\n\n    test 158 Bessel1841: 6366742.520233950\n    test 159 Bessel1841: 6366742.520233950\n    test 160 Bessel1841: 6366742.520233950\n    test 161 Bessel1841: 6366742.520233950\n\n    test 162 BesselModified: 6366837.224747659\n    test 163 BesselModified: 6366837.224747659\n    test 164 BesselModified: 6366837.224747659\n    test 165 BesselModified: 6366837.224747659\n\n    test 166 CGCS2000: 6367449.145771047  FAILED, KNOWN, expected 6367449.145771048\n    test 167 CGCS2000: 6367449.145771047  FAILED, KNOWN, expected 6367449.145771048\n    test 168 CGCS2000: 6367449.145771047  FAILED, KNOWN, expected 6367449.145771048\n    test 169 CGCS2000: 6367449.145771047  FAILED, KNOWN, expected 6367449.145771048\n\n    test 170 Clarke1866: 6367399.689169783\n    test 171 Clarke1866: 6367399.689169783\n    test 172 Clarke1866: 6367399.689169783\n    test 173 Clarke1866: 6367399.689169783\n\n    test 174 Clarke1880: 6367386.643980513  FAILED, KNOWN, expected 6367386.643980514\n    test 175 Clarke1880: 6367386.643980513  FAILED, KNOWN, expected 6367386.643980514\n    test 176 Clarke1880: 6367386.643980513  FAILED, KNOWN, expected 6367386.643980514\n    test 177 Clarke1880: 6367386.643980513  FAILED, KNOWN, expected 6367386.643980514\n\n    test 178 Clarke1880IGN: 6367386.736673363\n    test 179 Clarke1880IGN: 6367386.736673363\n    test 180 Clarke1880IGN: 6367386.736673363\n    test 181 Clarke1880IGN: 6367386.736673363\n\n    test 182 Clarke1880Mod: 6367386.692362010  FAILED, KNOWN, expected 6367386.692362011\n    test 183 Clarke1880Mod: 6367386.692362010  FAILED, KNOWN, expected 6367386.692362011\n    test 184 Clarke1880Mod: 6367386.692362010  FAILED, KNOWN, expected 6367386.692362011\n    test 185 Clarke1880Mod: 6367386.692362010  FAILED, KNOWN, expected 6367386.692362011\n\n    test 186 CPM1799: 6366208.881847842  FAILED, KNOWN, expected 6366208.881847841\n    test 187 CPM1799: 6366208.881847842  FAILED, KNOWN, expected 6366208.881847841\n    test 188 CPM1799: 6366208.881847842  FAILED, KNOWN, expected 6366208.881847841\n    test 189 CPM1799: 6366208.881847842  FAILED, KNOWN, expected 6366208.881847841\n\n    test 190 Delambre1810: 6366197.076843344\n    test 191 Delambre1810: 6366197.076843344\n    test 192 Delambre1810: 6366197.076843344\n    test 193 Delambre1810: 6366197.076843344\n\n    test 194 Engelis1985: 6367448.175079710  FAILED, KNOWN, expected 6367448.175079712\n    test 195 Engelis1985: 6367448.175079710  FAILED, KNOWN, expected 6367448.175079712\n    test 196 Engelis1985: 6367448.175079710  FAILED, KNOWN, expected 6367448.175079712\n    test 197 Engelis1985: 6367448.175079710  FAILED, KNOWN, expected 6367448.175079712\n\n    test 198 Everest1969: 6366699.578395008  FAILED, KNOWN, expected 6366699.578395009\n    test 199 Everest1969: 6366699.578395008  FAILED, KNOWN, expected 6366699.578395009\n    test 200 Everest1969: 6366699.578395008  FAILED, KNOWN, expected 6366699.578395009\n    test 201 Everest1969: 6366699.578395008  FAILED, KNOWN, expected 6366699.578395009\n\n    test 202 Everest1975: 6366703.060499237\n    test 203 Everest1975: 6366703.060499237\n    test 204 Everest1975: 6366703.060499237\n    test 205 Everest1975: 6366703.060499237\n\n    test 206 Fisher1968: 6367463.656043807\n    test 207 Fisher1968: 6367463.656043807\n    test 208 Fisher1968: 6367463.656043807\n    test 209 Fisher1968: 6367463.656043807\n\n    test 210 GEM10C: 6367449.145824739  FAILED, KNOWN, expected 6367449.145824740\n    test 211 GEM10C: 6367449.145824739  FAILED, KNOWN, expected 6367449.145824740\n    test 212 GEM10C: 6367449.145824739  FAILED, KNOWN, expected 6367449.145824740\n    test 213 GEM10C: 6367449.145824739  FAILED, KNOWN, expected 6367449.145824740\n\n    test 214 GPES: 6378135.000000000\n    test 215 GPES: 6378135.000000000\n    test 216 GPES: 6378135.000000000\n    test 217 GPES: 6378135.000000000\n\n    test 218 GRS67: 6367471.747065325\n    test 219 GRS67: 6367471.747065325\n    test 220 GRS67: 6367471.747065325\n    test 221 GRS67: 6367471.747065325\n\n    test 222 GRS80: 6367449.145771043\n    test 223 GRS80: 6367449.145771043\n    test 224 GRS80: 6367449.145771043\n    test 225 GRS80: 6367449.145771043\n\n    test 226 Helmert1906: 6367513.572270742\n    test 227 Helmert1906: 6367513.572270742\n    test 228 Helmert1906: 6367513.572270742\n    test 229 Helmert1906: 6367513.572270742\n\n    test 230 IAU76: 6367452.132788436\n    test 231 IAU76: 6367452.132788436\n    test 232 IAU76: 6367452.132788436\n    test 233 IAU76: 6367452.132788436\n\n    test 234 IERS1989: 6367448.139491247  FAILED, KNOWN, expected 6367448.139491246\n    test 235 IERS1989: 6367448.139491247  FAILED, KNOWN, expected 6367448.139491246\n    test 236 IERS1989: 6367448.139491247  FAILED, KNOWN, expected 6367448.139491246\n    test 237 IERS1989: 6367448.139491247  FAILED, KNOWN, expected 6367448.139491246\n\n    test 238 IERS1992TOPEX: 6367448.446996409\n    test 239 IERS1992TOPEX: 6367448.446996409\n    test 240 IERS1992TOPEX: 6367448.446996409\n    test 241 IERS1992TOPEX: 6367448.446996409\n\n    test 242 IERS2003: 6367448.717710576  FAILED, KNOWN, expected 6367448.717710577\n    test 243 IERS2003: 6367448.717710576  FAILED, KNOWN, expected 6367448.717710577\n    test 244 IERS2003: 6367448.717710576  FAILED, KNOWN, expected 6367448.717710577\n    test 245 IERS2003: 6367448.717710576  FAILED, KNOWN, expected 6367448.717710577\n\n    test 246 Intl1924: 6367654.500057585  FAILED, KNOWN, expected 6367654.500057584\n    test 247 Intl1924: 6367654.500057585  FAILED, KNOWN, expected 6367654.500057584\n    test 248 Intl1924: 6367654.500057585  FAILED, KNOWN, expected 6367654.500057584\n    test 249 Intl1924: 6367654.500057585  FAILED, KNOWN, expected 6367654.500057584\n\n    test 250 Intl1967: 6367469.338944457\n    test 251 Intl1967: 6367469.338944457\n    test 252 Intl1967: 6367469.338944457\n    test 253 Intl1967: 6367469.338944457\n\n    test 254 Krassovski1940: 6367558.496874981\n    test 255 Krassovski1940: 6367558.496874981\n    test 256 Krassovski1940: 6367558.496874981\n    test 257 Krassovski1940: 6367558.496874981\n\n    test 258 Krassowsky1940: 6367558.496874981\n    test 259 Krassowsky1940: 6367558.496874981\n    test 260 Krassowsky1940: 6367558.496874981\n    test 261 Krassowsky1940: 6367558.496874981\n\n    test 262 Maupertuis1738: 6380564.130118373\n    test 263 Maupertuis1738: 6380564.130118373\n    test 264 Maupertuis1738: 6380564.130118373\n    test 265 Maupertuis1738: 6380564.130118373\n\n    test 266 Mercury1960: 6367479.629236430\n    test 267 Mercury1960: 6367479.629236430\n    test 268 Mercury1960: 6367479.629236430\n    test 269 Mercury1960: 6367479.629236430\n\n    test 270 Mercury1968Mod: 6367463.656043807\n    test 271 Mercury1968Mod: 6367463.656043807\n    test 272 Mercury1968Mod: 6367463.656043807\n    test 273 Mercury1968Mod: 6367463.656043807\n\n    test 274 NWL1965: 6367456.873668412\n    test 275 NWL1965: 6367456.873668412\n    test 276 NWL1965: 6367456.873668412\n    test 277 NWL1965: 6367456.873668412\n\n    test 278 OSU86F: 6367448.347165301  FAILED, KNOWN, expected 6367448.347165302\n    test 279 OSU86F: 6367448.347165301  FAILED, KNOWN, expected 6367448.347165302\n    test 280 OSU86F: 6367448.347165301  FAILED, KNOWN, expected 6367448.347165302\n    test 281 OSU86F: 6367448.347165301  FAILED, KNOWN, expected 6367448.347165302\n\n    test 282 OSU91A: 6367448.446997731  FAILED, KNOWN, expected 6367448.446997732\n    test 283 OSU91A: 6367448.446997731  FAILED, KNOWN, expected 6367448.446997732\n    test 284 OSU91A: 6367448.446997731  FAILED, KNOWN, expected 6367448.446997732\n    test 285 OSU91A: 6367448.446997731  FAILED, KNOWN, expected 6367448.446997732\n\n    test 286 Plessis1817: 6366197.157107386\n    test 287 Plessis1817: 6366197.157107386\n    test 288 Plessis1817: 6366197.157107386\n    test 289 Plessis1817: 6366197.157107386\n\n    test 290 PZ90: 6367448.169554430\n    test 291 PZ90: 6367448.169554430\n    test 292 PZ90: 6367448.169554430\n    test 293 PZ90: 6367448.169554430\n\n    test 294 SGS85: 6367448.139491247  FAILED, KNOWN, expected 6367448.139491246\n    test 295 SGS85: 6367448.139491247  FAILED, KNOWN, expected 6367448.139491246\n    test 296 SGS85: 6367448.139491247  FAILED, KNOWN, expected 6367448.139491246\n    test 297 SGS85: 6367448.139491247  FAILED, KNOWN, expected 6367448.139491246\n\n    test 298 SoAmerican1969: 6367471.848532285\n    test 299 SoAmerican1969: 6367471.848532285\n    test 300 SoAmerican1969: 6367471.848532285\n    test 301 SoAmerican1969: 6367471.848532285\n\n    test 302 Sphere: 6371008.771415000\n    test 303 Sphere: 6371008.771415000\n    test 304 Sphere: 6371008.771415000\n    test 305 Sphere: 6371008.771415000\n\n    test 306 SphereAuthalic: 6371000.000000000\n    test 307 SphereAuthalic: 6371000.000000000\n    test 308 SphereAuthalic: 6371000.000000000\n    test 309 SphereAuthalic: 6371000.000000000\n\n    test 310 SpherePopular: 6378137.000000000\n    test 311 SpherePopular: 6378137.000000000\n    test 312 SpherePopular: 6378137.000000000\n    test 313 SpherePopular: 6378137.000000000\n\n    test 314 Struve1860: 6367482.318325493\n    test 315 Struve1860: 6367482.318325493\n    test 316 Struve1860: 6367482.318325493\n    test 317 Struve1860: 6367482.318325493\n\n    test 318 WGS60: 6367478.630911891\n    test 319 WGS60: 6367478.630911891\n    test 320 WGS60: 6367478.630911891\n    test 321 WGS60: 6367478.630911891\n\n    test 322 WGS66: 6367456.873668412\n    test 323 WGS66: 6367456.873668412\n    test 324 WGS66: 6367456.873668412\n    test 325 WGS66: 6367456.873668412\n\n    test 326 WGS72: 6367447.248623827  FAILED, KNOWN, expected 6367447.248623826\n    test 327 WGS72: 6367447.248623827  FAILED, KNOWN, expected 6367447.248623826\n    test 328 WGS72: 6367447.248623827  FAILED, KNOWN, expected 6367447.248623826\n    test 329 WGS72: 6367447.248623827  FAILED, KNOWN, expected 6367447.248623826\n\n    test 330 WGS84: 6367449.145823414\n    test 331 WGS84: 6367449.145823414\n    test 332 WGS84: 6367449.145823414\n    test 333 WGS84: 6367449.145823414\n\n    test 334 WGS84_NGS: 6367449.145771043\n    test 335 WGS84_NGS: 6367449.145771043\n    test 336 WGS84_NGS: 6367449.145771043\n    test 337 WGS84_NGS: 6367449.145771043\n\n    test 338 hypot: 1\n    test 339 sqrt_a: 0.6102683302836\n    test 340 sqrt_a: 0.6102683302836\n    test 341 hypot_ : 1.00001250\n    test 342 euclid_: 1.00207107  FAILED, KNOWN, expected 1.00001250\n    test 343 hypot2_: 1.00002500\n    test 344 norm_  : 1.00000000\n    test 345 hypot_ : 3606.937759\n    test 346 euclid_: 3845.584412  FAILED, KNOWN, expected 3859.423403\n    test 347 hypot2_: 13010000.0\n    test 348 norm_  : 1.0\n    test 349 hypot_ : 40112.842\n    test 350 hypot2_: 1609040100.0\n    test 351 euclid_: 41277.666  FAILED, KNOWN, expected 41316.227\n    test 352 bqrt: 2.00\n    test 353 cbrt: 3.00\n    test 354 cbrt: -3.00\n    test 355 cbrt2: 9.00\n    test 356 cbrt2: 9.00\n    test 357 sqrt3: 27.00\n    test 358 zcrt: 2.00\n    test 359 zqrt: 2.00\n    test 360 facos1: 0.005%\n    test 361 fasin1: 0.439%\n    test 362 fatan : 0.134%\n    test 363 fatan1: 2.834%\n    test 364 fatan2: 0.321%\n\n    test 365 Fhypot: Fhypot[1] (5.0, 0)\n    test 366 Fhypot: Fhypot[1] (9.43398, 0)\n    test 367 Fhypot: Fhypot[1] (5.0, 0)\n    test 368 Fhypot: Fhypot[1] (-2.18182, 0)\n    test 369 Fhypot: Fhypot[1] (-12, 0)\n    test 370 Fhypot: Fhypot[1] (1.41421, 0)\n    test 371 Fhypot: Fhypot[1] (-0.5, 0)\n    test 372 Fhypot: Fhypot[1] (-0.333333, 0)\n    test 373 Fhypot: fmath.Fhypot(<Fsum[1] (-1, 0) at 0x7fee207f0e10>, -1, root=0): 1.0 / 0: float division by zero\n\n    test 374 Fsqrt: Fsqrt[1] (3.0, 0)\n    test 375 Fsqrt: Fcbrt[1] (3.0, 0)\n    test 376 Fsqrt: Fsqrt[1] (1.41421, 0)\n    test 377 Fsqrt: Fsqrt[1] (1.41421, 0)\n    test 378 Froot: Froot[1] (0.5, 0)\n    test 379 Froot: Froot[1] (0.5, 0)\n    test 380 Fsqrt: fmath.Fsqrt(<Fsum[1] (-1, 0) at 0x7fee207f0d10>, -1, root=2): -2.0 root Fsum[1] (0.5, 0): negative number cannot be raised to a fractional power\n    test 381 Fsqrt: fmath.Froot(<Fsum[1] (-1, 0) at 0x7fee207f0d10>, -1, root=0): 1.0 / 0: float division by zero\n    test 382 Froot: Froot[1] (-0.25, 0)\n\n    test 383 Fhypot2: 3.74165739e+100\n    test 384 Fpowers2: 922231.169\n    test 385 Fsqrt2: 12.4310576\n    test 386 Fcbrt2: 5.36626423\n\n    test 387 Fhypot6: 3.74165739e+100\n    test 388 Fpowers6: 86803.7732\n    test 389 Fsqrt6: 0.011318558\n    test 390 Fcbrt6: 0.0504112424\n\n    test 391 Fhypot7: 3.74165739e+100\n    test 392 Fpowers7: 18642.2437\n    test 393 Fsqrt7: 0.00934533381\n    test 394 Fcbrt7: 0.0443673217\n\n    test 395 Fhypot9: 3.74165739e+100\n    test 396 Fpowers9: 20.2651934\n    test 397 Fsqrt9: 0.0384888576\n    test 398 Fcbrt9: 0.113996105\n\n    test 399 fma: 2.4412441982659e-05\n    test 400 fma: 6.3658604859  FAILED, KNOWN, expected 6.365860485903399\n    test 401 abc: 6.36586048454  FAILED, KNOWN, expected 6.3658604859\n\n    test 402 f2mul_: 24.0\n    test 403 f2mul_: inf\n    test 404 f2mul_: inf\n\n    73 of 404 testFmath.py tests (18.1%) FAILED, ALL KNOWN (pygeodesy 26.3.26 Python 2.7.18 64bit arm64_x86_64 geographiclib 1.50 numpy 1.16.6 scipy 1.2.2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 -W  default) 57.903 ms\nrunning /Library/Framewo....ython -W default ~/PyGeodesy/test/testFormy.py\n./test/testFormy.py:28: DeprecationWarning: function L{cosineAndoyerLambert<pygeodesy.deprecated.functions.cosineAndoyerLambert>} has been DEPRECATED on 2024.12.31, use function L{pygeodesy.cosineLaw} with C{B{corr}=1}.\n  d = f(lat1, lon1, lat2, lon2, wrap=True, **kwds)\n./test/testFormy.py:28: DeprecationWarning: function L{cosineForsytheAndoyerLambert<pygeodesy.deprecated.functions.cosineForsytheAndoyerLambert>} has been DEPRECATED on 2024.12.31, use function L{pygeodesy.cosineLaw} with C{B{corr}=2}.\n  d = f(lat1, lon1, lat2, lon2, wrap=True, **kwds)\n./pygeodesy/formy.py:1097: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  if d.ellipsoid.geodesic:\n./pygeodesy/azimuthal.py:636: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return self.datum.ellipsoid.geodesic\n./pygeodesy/ellipsoidalKarney.py:94: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return self.datum.ellipsoid.geodesic\n\n    testing testFormy.py 26.01.05\n    test 1 angle2chord: 9009967.011\n    test 2 chord2angle: 1.570796\n    test 3 antipode1: (-89.0, -1.0)\n    test 4 antipode2: (89.0, 1.0)\n    test 5 bearing1: 251.364\n    test 6 bearing2: 251.364\n    test 7 bearing3: 249.614\n    test 8 excessAbc_: 11.9698\n    test 9 excessAbc_: 11.9698\n    test 10 excessCagnoli_: 11.9698\n    test 11 excessGirard_: 11.9698\n    test 12 excessLHuilier_: 11.9698\n    test 13 excessKarney: 56.9625\n    test 14 excessQuad: 56.9625\n    test 15 excessKarney: 44.0235\n    test 16 excessQuad: 44.0235\n    test 17 excessKarney: -44.0235\n    test 18 excessQuad: -44.0235\n\n    test 19 isantipode1: True\n    test 20 isantipode2: True\n    test 21 isantipode3: False\n    test 22 isantipode4: True\n    test 23 isantipode5: True\n    test 24 isantipode6: True\n    test 25 isantipode7: False\n    test 26 isantipode8: True\n\n    test 27 isnormal1: True\n    test 28 isnormal2: False\n    test 29 isnormal3: True\n    test 30 isnormal4: True\n    test 31 isnormal5: True\n    test 32 isnormal6: False\n    test 33 isnormal7: True\n    test 34 isnormal8: True\n\n    test 35 hartzell: (884080.396945, 5592040.198472, 2927517.711001)\n    test 36 hartzell: 27.500482°N, 081.016111°E, +12669647.30  FAILED, KNOWN, expected 27.500482°N, 081.016111°E, +12669647.30, 'hartzell'\n    test 37 hartzell: (3642031.283571, 3678090.99925, 3714150.714929)\n    test 38 hartzell: 35.843738°N, 045.282243°E, +11296639.67  FAILED, KNOWN, expected 35.843738°N, 045.282243°E, +11296639.67, 'hartzell'\n    test 39 hartzell: (3647362.058328, 3683474.553955, 3703640.299338)\n    test 40 hartzell: 35.726966°N, 045.282243°E, +11296619.03  FAILED, KNOWN, expected 35.726966°N, 045.282243°E, +11296619.03, 'hartzell'\n    test 41 heightOf0: 2638958.23912\n    test 42 heightOf45: 5401080.43931\n    test 43 heightOf90: 6371008.77141\n    test 44 heightOf135: 5401080.43931\n    test 45 horizon0: 0.0\n    test 46 horizon10Km: 357099.672\n    test 47 horizon30Kft: 392310.704\n    test 48 horizon10Kft: 214877.422\n    test 49 normal1: (-89.0, 179.0)\n    test 50 normal2: (81.0, 180.0)\n    test 51 normal3: (81.0, -19.0)\n    test 52 normal4: (-81.0, 0.0)\n\n    test 53 haversine1 (0.00%): 298009.404\n    test 54 vincentys1 (0.00%): 298009.404\n    test 55 vincentys1 (0.00%): 298009.404\n    test 56 cosineAndoyerLambert1 (0.13%): 298395.796  FAILED, KNOWN, expected 298009.404\n    test 57 cosineForsytheAndoyerLambert1 (0.13%): 298396.056  FAILED, KNOWN, expected 298009.404\n    test 58 cosineLaw1 (0.00%): 298009.404\n    test 59 equirectangular1 (0.01%): 298039.206  FAILED, KNOWN, expected 298009.404\n    test 60 euclidean1 (5.26%): 313698.901  FAILED, KNOWN, expected 298009.404\n    test 61 flatLocal1 (0.14%): 298425.999  FAILED, KNOWN, expected 298009.404\n    test 62 flatPolar1 (8.67%): 323841.582  FAILED, KNOWN, expected 298009.404\n    test 63 thomas1 (0.13%): 298396.261  FAILED, KNOWN, expected 298009.404\n    test 64 hubeny1: <function flatLocal at 0x7fce9844f2d0>\n\n    test 65 haversine2 (0.00%): 98164.988\n    test 66 vincentys2 (0.00%): 98164.988\n    test 67 vincentys2 (0.00%): 98164.988\n    test 68 cosineAndoyerLambert2 (0.10%): 98071.421  FAILED, KNOWN, expected 98164.988\n    test 69 cosineForsytheAndoyerLambert2 (0.10%): 98071.560  FAILED, KNOWN, expected 98164.988\n    test 70 cosineLaw2 (0.00%): 98164.988\n    test 71 equirectangular2 (0.00%): 98165.123  FAILED, KNOWN, expected 98164.988\n    test 72 euclidean2 (6.37%): 104419.458  FAILED, KNOWN, expected 98164.988\n    test 73 flatLocal2 (0.10%): 98071.693  FAILED, KNOWN, expected 98164.988\n    test 74 flatPolar2 (0.57%): 98725.040  FAILED, KNOWN, expected 98164.988\n    test 75 thomas2 (0.10%): 98071.535  FAILED, KNOWN, expected 98164.988\n    test 76 hubeny2: <function flatLocal at 0x7fce9844f2d0>\n\n    test 77 haversine3 (0.00%): 651816.987\n    test 78 vincentys3 (0.00%): 651816.987\n    test 79 vincentys3 (0.00%): 651816.987\n    test 80 cosineAndoyerLambert3 (0.25%): 653456.144  FAILED, KNOWN, expected 651816.987\n    test 81 cosineForsytheAndoyerLambert3 (0.25%): 653456.175  FAILED, KNOWN, expected 651816.987\n    test 82 cosineLaw3 (0.00%): 651816.987\n    test 83 equirectangular3 (0.03%): 652041.760  FAILED, KNOWN, expected 651816.987\n    test 84 euclidean3 (4.37%): 680281.470  FAILED, KNOWN, expected 651816.987\n    test 85 flatLocal3 (0.29%): 653681.559  FAILED, KNOWN, expected 651816.987\n    test 86 flatPolar3 (13.00%): 736534.840  FAILED, KNOWN, expected 651816.987\n    test 87 thomas3 (0.25%): 653456.933  FAILED, KNOWN, expected 651816.987\n    test 88 hubeny3: <function flatLocal at 0x7fce9844f2d0>\n\n    test 89 haversine4 (0.00%): 4084985.780\n    test 90 vincentys4 (0.00%): 4084985.780\n    test 91 vincentys4 (0.00%): 4084985.780\n    test 92 cosineAndoyerLambert4 (0.24%): 4094954.008  FAILED, KNOWN, expected 4084985.780\n    test 93 cosineForsytheAndoyerLambert4 (0.24%): 4094953.639  FAILED, KNOWN, expected 4084985.780\n    test 94 cosineLaw4 (0.00%): 4084985.780\n    test 95 equirectangular4 (1.26%): 4136407.022  FAILED, KNOWN, expected 4084985.780\n    test 96 euclidean4 (4.22%): 4257296.511  FAILED, KNOWN, expected 4084985.780\n    test 97 flatLocal4 (1.51%): 4146513.247  FAILED, KNOWN, expected 4084985.780\n    test 98 flatPolar4 (12.31%): 4587896.452  FAILED, KNOWN, expected 4084985.780\n    test 99 thomas4 (0.24%): 4094958.301  FAILED, KNOWN, expected 4084985.780\n    test 100 hubeny4: <function flatLocal at 0x7fce9844f2d0>\n\n    test 101 haversine5 (0.00%): 9670051.606\n    test 102 vincentys5 (0.00%): 9670051.606\n    test 103 vincentys5 (0.00%): 9670051.606\n    test 104 cosineAndoyerLambert5 (0.21%): 9690752.610  FAILED, KNOWN, expected 9670051.606\n    test 105 cosineForsytheAndoyerLambert5 (0.21%): 9690746.120  FAILED, KNOWN, expected 9670051.606\n    test 106 cosineLaw5 (0.00%): 9670051.606\n    test 107 equirectangular5 (7.79%): 10423307.214  FAILED, KNOWN, expected 9670051.606\n    test 108 euclidean5 (9.34%): 10573030.726  FAILED, KNOWN, expected 9670051.606\n    test 109 flatLocal5 (8.03%): 10446503.342  FAILED, KNOWN, expected 9670051.606\n    test 110 flatPolar5 (55.59%): 15045906.074  FAILED, KNOWN, expected 9670051.606\n    test 111 thomas5 (0.21%): 9690767.767  FAILED, KNOWN, expected 9670051.606\n    test 112 hubeny5: <function flatLocal at 0x7fce9844f2d0>\n\n    test 113 haversine6 (0.00%): 10496496.577\n    test 114 vincentys6 (0.00%): 10496496.577\n    test 115 vincentys6 (0.00%): 10496496.577\n    test 116 cosineAndoyerLambert6 (0.18%): 10477328.664  FAILED, KNOWN, expected 10496496.577\n    test 117 cosineForsytheAndoyerLambert6 (0.18%): 10477342.084  FAILED, KNOWN, expected 10496496.577\n    test 118 cosineLaw6 (0.00%): 10496496.577\n    test 119 equirectangular6 (3.32%): 10844969.236  FAILED, KNOWN, expected 10496496.577\n    test 120 euclidean6 (4.50%): 10968488.107  FAILED, KNOWN, expected 10496496.577\n    test 121 flatLocal6 (3.07%): 10818798.605  FAILED, KNOWN, expected 10496496.577\n    test 122 flatPolar6 (23.87%): 13002288.857  FAILED, KNOWN, expected 10496496.577\n    test 123 thomas6 (0.18%): 10477316.498  FAILED, KNOWN, expected 10496496.577\n    test 124 hubeny6: <function flatLocal at 0x7fce9844f2d0>\n\n    test 125 haversine7 (0.00%): 8998396.669\n    test 126 vincentys7 (0.00%): 8998396.669\n    test 127 vincentys7 (0.00%): 8998396.669\n    test 128 cosineAndoyerLambert7 (0.27%): 8974227.489  FAILED, KNOWN, expected 8998396.669\n    test 129 cosineForsytheAndoyerLambert7 (0.27%): 8974238.592  FAILED, KNOWN, expected 8998396.669\n    test 130 cosineLaw7 (0.00%): 8998396.669\n    test 131 equirectangular7 (2.05%): 9182626.289  FAILED, KNOWN, expected 8998396.669\n    test 132 euclidean7 (7.76%): 9696965.812  FAILED, KNOWN, expected 8998396.669\n    test 133 flatLocal7 (1.71%): 9151831.117  FAILED, KNOWN, expected 8998396.669\n    test 134 flatPolar7 (17.56%): 10578638.162  FAILED, KNOWN, expected 8998396.669\n    test 135 thomas7 (0.27%): 8974216.867  FAILED, KNOWN, expected 8998396.669\n    test 136 hubeny7: <function flatLocal at 0x7fce9844f2d0>\n\n    test 137 haversine8 (0.00%): 6906867.946\n    test 138 vincentys8 (0.00%): 6906867.946\n    test 139 vincentys8 (0.00%): 6906867.946\n    test 140 cosineAndoyerLambert8 (0.13%): 6916085.969  FAILED, KNOWN, expected 6906867.946\n    test 141 cosineForsytheAndoyerLambert8 (0.13%): 6916085.333  FAILED, KNOWN, expected 6906867.946\n    test 142 cosineLaw8 (0.00%): 6906867.946\n    test 143 equirectangular8 (0.91%): 6969581.760  FAILED, KNOWN, expected 6906867.946\n    test 144 euclidean8 (6.54%): 7358706.022  FAILED, KNOWN, expected 6906867.946\n    test 145 flatLocal8 (1.04%): 6978905.097  FAILED, KNOWN, expected 6906867.946\n    test 146 flatPolar8 (23.23%): 8511564.321  FAILED, KNOWN, expected 6906867.946\n    test 147 thomas8 (0.13%): 6916087.828  FAILED, KNOWN, expected 6906867.946\n    test 148 hubeny8: <function flatLocal at 0x7fce9844f2d0>\n\n    test 149 haversine9 (0.01%): 8045325.213  FAILED, KNOWN, expected 8044806.076\n    test 150 vincentys9 (0.01%): 8045325.213  FAILED, KNOWN, expected 8044806.076\n    test 151 cosineAndoyerLambert9 (0.07%): 8050357.566  FAILED, KNOWN, expected 8044806.076\n    test 152 cosineForsytheAndoyerLambert9 (0.07%): 8050363.635  FAILED, KNOWN, expected 8044806.076\n    test 153 cosineLaw9 (0.01%): 8045325.213  FAILED, KNOWN, expected 8044806.076\n    test 154 flatLocal9 (15.21%): 9268128.573  FAILED, KNOWN, expected 8044806.076\n    test 155 thomas9 (0.07%): 8050370.796  FAILED, KNOWN, expected 8044806.076\n    test 156 hubeny9: <function flatLocal at 0x7fce9844f2d0>\n\n    test 157 intersection2: pygeodesy.formy\n    test 158 intersection2(None): (25.980762, 15.0)  FAILED, KNOWN, expected (24.284126, 15.0)\n    test 159 intersection2(6371008.77141): (24.146108, 15.0)  FAILED, KNOWN, expected (24.284126, 15.0)\n    test 160 intersection2(-6371008.77141): (24.146108, 15.0)  FAILED, KNOWN, expected (24.284126, 15.0)\n    test 161 intersection2(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84): (24.284126, 15.0)\n\n    test 162 intersections2: pygeodesy.formy\n    test 163 intersections2(None) 1: (1.0003, 1.0003), (-1.0003, -1.0003)\n    test 164 intersections2(None) 2: (2.0024, 2.0024), (-2.0024, -2.0024)\n    test 165 intersections2(None) 5: (5.0381, 5.0381), (-5.0381, -5.0381)\n    test 166 intersections2(None) 10: (10.3062, 10.3062), (-10.3062, -10.3062)\n    test 167 intersections2(None) 20: (-22.494, -22.494), (22.494, 22.494)\n    test 168 intersections2(None) 30: (38.7298, 38.7298), (-38.7298, -38.7298)\n    test 169 intersections2(None) 40: (-62.0732, -62.0732), (62.0732, 62.0732)\n    test 170 intersections2(R_M) 1: (-1.0, -1.0003), (1.0, 1.0003)\n    test 171 intersections2(R_M) 2: (-2.0, -2.0024), (2.0, 2.0024)\n    test 172 intersections2(R_M) 5: (-4.9999, -5.0383), (4.9999, 5.0383)\n    test 173 intersections2(R_M) 10: (-9.9976, -10.3117), (9.9976, 10.3117)\n    test 174 intersections2(R_M) 20: (-19.914, -22.6761), (19.914, 22.6761)\n    test 175 intersections2(R_M) 30: (-29.2059, -40.203), (29.2059, 40.203)\n    test 176 intersections2(R_M) 40: (-35.5129, -68.6826), (35.5129, 68.6826)\n    test 177 intersections2(WGS84) 1: (-1.0112, -0.998), (1.0112, 0.998)\n    test 178 intersections2(WGS84) 2: (-2.0224, -1.9979), (2.0224, 1.9979)\n    test 179 intersections2(WGS84) 5: (-5.0558, -5.0271), (5.0558, 5.0271)\n    test 180 intersections2(WGS84) 10: (-10.1081, -10.2901), (10.1081, 10.2901)\n    test 181 intersections2(WGS84) 20: (-20.1241, -22.6411), (20.1241, 22.6411)\n    test 182 intersections2(WGS84) 30: (-29.4898, -40.1785), (29.4898, 40.1785)\n    test 183 intersections2(WGS84) 40: (-35.8146, -68.7149), (35.8146, 68.7149)\n\n    test 184 radical2: (0.26, 2.6)\n    test 185 radical2: (0.74, 7.4)\n    test 186 radical2: (0.5, 5.0)\n    test 187 radical2: (0.5, 0.0)\n    test 188 IntersectionError: distance (10.0), radius1 (5.0) or radius2 (4.0): too distant  FAILED, KNOWN, expected distance (10.0), ...\n\n    test 189 LimitError: equirectangular4(0.0, 0.0, 60.0, 120.0, limit=45, wrap=False): delta (120) exceeds limit (45)  FAILED, KNOWN, expected delta exceeds ...\n\n    test 190 heightOrthometric: -1.0\n    test 191 heightOrthometric: 1.0\n\n    161 of 191 testFormy.py tests (84.3%) FAILED, incl. 71 KNOWN plus 90 DeprecationWarnings (pygeodesy 26.3.26 Python 2.7.18 64bit arm64_x86_64 geographiclib 1.50 numpy 1.16.6 scipy 1.2.2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 -W  default) 71.965 ms\nrunning /Library/Framewo....ython -W default ~/PyGeodesy/test/testFrechet.py\n./pygeodesy/frechet.py:644: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  self._func = self.datum.ellipsoid.geodesic.Inverse1\n\n    testing testFrechet.py 25.04.21\n\n    test 1 FrechetDegrees_ (degrees): (288.0, 1, 1, 0, 5400)\n    test 2 FrechetDegrees_ (degrees): (288.0, 1, 1, 205, 10710)\n    test 3 copy(<type 'type'>): (<class '__main__.FrechetDegrees_'>, True)\n    test 4 FrechetDegrees_.copy(): (<class '__main__.FrechetDegrees_'>, True)\n\n    test 5 FrechetRadians_ (radians): (5.02655, 1, 1, 0, 5400)\n    test 6 FrechetRadians_ (radians): (5.02655, 1, 1, 205, 10710)\n    test 7 copy(<type 'type'>): (<class '__main__.FrechetRadians_'>, True)\n    test 8 FrechetRadians_.copy(): (<class '__main__.FrechetRadians_'>, True)\n\n    test 9 FrechetCosineLaw (radians): (1.81341, 18, 14, 0, 5400)\n    test 10 FrechetCosineLaw (radians): (1.83289, 3, 4.5, 196, 10710)\n    test 11 copy(<type 'type'>): (<class 'pygeodesy.frechet.FrechetCosineLaw'>, True)\n    test 12 FrechetCosineLaw.copy(): (<class 'pygeodesy.frechet.FrechetCosineLaw'>, True)\n\n    test 13 FrechetCosineLaw (radians): (1.81201, 18, 14, 0, 5400)\n    test 14 FrechetCosineLaw (radians): (1.83135, 3, 4.5, 196, 10710)\n    test 15 copy(<type 'type'>): (<class 'pygeodesy.frechet.FrechetCosineLaw'>, True)\n    test 16 FrechetCosineLaw.copy(): (<class 'pygeodesy.frechet.FrechetCosineLaw'>, True)\n\n    test 17 FrechetCosineLaw (radians): (1.81201, 18, 14, 0, 5400)\n    test 18 FrechetCosineLaw (radians): (1.83135, 3, 4.5, 196, 10710)\n    test 19 copy(<type 'type'>): (<class 'pygeodesy.frechet.FrechetCosineLaw'>, True)\n    test 20 FrechetCosineLaw.copy(): (<class 'pygeodesy.frechet.FrechetCosineLaw'>, True)\n\n    test 21 FrechetEquirectangular (radians2): (7.53702, 1, 3, 0, 5400)\n    test 22 FrechetEquirectangular (radians2): (12.58507, 0, 2.5, 203, 10710)\n    test 23 copy(<type 'type'>): (<class 'pygeodesy.frechet.FrechetEquirectangular'>, True)\n    test 24 FrechetEquirectangular.copy(): (<class 'pygeodesy.frechet.FrechetEquirectangular'>, True)\n\n    test 25 FrechetEuclidean (radians): (2.80593, 1, 3, 0, 5400)\n    test 26 FrechetEuclidean (radians): (3.83981, 0, 2.5, 203, 10710)\n    test 27 copy(<type 'type'>): (<class 'pygeodesy.frechet.FrechetEuclidean'>, True)\n    test 28 FrechetEuclidean.copy(): (<class 'pygeodesy.frechet.FrechetEuclidean'>, True)\n\n    test 29 FrechetFlatLocal (radians2): (7.55994, 1, 3, 0, 5400)\n    test 30 FrechetFlatLocal (radians2): (12.61423, 0, 2.5, 203, 10710)\n    test 31 copy(<type 'type'>): (<class 'pygeodesy.frechet.FrechetFlatLocal'>, True)\n    test 32 FrechetFlatLocal.copy(): (<class 'pygeodesy.frechet.FrechetFlatLocal'>, True)\n\n    test 33 FrechetFlatPolar (radians): (2.88199, 89, 59, 0, 5400)\n    test 34 FrechetFlatPolar (radians): (2.88199, 89, 59, 1, 10710)\n    test 35 copy(<type 'type'>): (<class 'pygeodesy.frechet.FrechetFlatPolar'>, True)\n    test 36 FrechetFlatPolar.copy(): (<class 'pygeodesy.frechet.FrechetFlatPolar'>, True)\n\n    test 37 FrechetHaversine (radians): (1.81341, 18, 14, 0, 5400)\n    test 38 FrechetHaversine (radians): (1.83289, 3, 4.5, 196, 10710)\n    test 39 copy(<type 'type'>): (<class 'pygeodesy.frechet.FrechetHaversine'>, True)\n    test 40 FrechetHaversine.copy(): (<class 'pygeodesy.frechet.FrechetHaversine'>, True)\n\n    test 41 FrechetHubeny (radians2): (7.55994, 1, 3, 0, 5400)\n    test 42 FrechetHubeny (radians2): (12.61423, 0, 2.5, 203, 10710)\n    test 43 copy(<type 'type'>): (<class 'pygeodesy.frechet.FrechetHubeny'>, True)\n    test 44 FrechetHubeny.copy(): (<class 'pygeodesy.frechet.FrechetHubeny'>, True)\n\n    test 45 FrechetThomas (radians): (1.81201, 18, 14, 0, 5400)\n    test 46 FrechetThomas (radians): (1.83135, 3, 4.5, 196, 10710)\n    test 47 copy(<type 'type'>): (<class 'pygeodesy.frechet.FrechetThomas'>, True)\n    test 48 FrechetThomas.copy(): (<class 'pygeodesy.frechet.FrechetThomas'>, True)\n\n    test 49 FrechetVincentys (radians): (1.81341, 18, 14, 0, 5400)\n    test 50 FrechetVincentys (radians): (1.83289, 3, 4.5, 196, 10710)\n    test 51 copy(<type 'type'>): (<class 'pygeodesy.frechet.FrechetVincentys'>, True)\n    test 52 FrechetVincentys.copy(): (<class 'pygeodesy.frechet.FrechetVincentys'>, True)\n\n    test 53 FrechetKarney (degrees): (104.00172, 18, 14, 0, 5400)\n    test 54 FrechetKarney (degrees): (105.26515, 3, 4.5, 196, 10710)\n    test 55 copy(<type 'type'>): (<class 'pygeodesy.frechet.FrechetKarney'>, True)\n    test 56 FrechetKarney.copy(): (<class 'pygeodesy.frechet.FrechetKarney'>, True)\n\n    test 57 frechet_: (288.0, 1, 1, 147, 5400, 'recursive')\n    test 58 [fi1]: 38.0°S, 116.0°W\n    test 59 [fi2]: 64.0°N, 121.0°E\n    test 60 [fi1]: LatLon_(38.0°S, 116.0°W)\n    test 61 [fi2]: LatLon_(64.0°N, 121.0°E)\n\n    test 62 frechet_: (288.0, 1, 1, 0, 5400, 'non-recursive')\n    test 63 frechet_: (288.0, 88, 58, 0, 5400, 'non-recursive-reversed')\n\n    1 of 63 testFrechet.py tests (1.6%) FAILED, incl. 1 DeprecationWarning (pygeodesy 26.3.26 Python 2.7.18 64bit arm64_x86_64 geographiclib 1.50 numpy 1.16.6 scipy 1.2.2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 -W  default) 19.835 sec\nrunning /Library/Framewo....ython -W default ~/PyGeodesy/test/testFrozen.py\n\n    testing testFrozen.py 24.03.03\n    test 1 cmd: /Library/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python -c 'import sys; sys.frozen = True; import pygeodesy; sys.exit(0 if pygeodesy._isfrozen else 1)'\n    test 2 PYGEODESY_LAZY_IMPORT=0: 0\n    test 3 PYGEODESY_LAZY_IMPORT=1: 0\n    test 4 PYGEODESY_LAZY_IMPORT=2: 0\n\n    all 4 testFrozen.py tests passed (pygeodesy 26.3.26 Python 2.7.18 64bit arm64_x86_64 geographiclib 1.50 numpy 1.16.6 scipy 1.2.2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 -W  default) 540.899 ms\nrunning /Library/Framewo....ython -W default ~/PyGeodesy/test/testFstats.py\n\n    testing testFstats.py 23.05.08 (module pygeodesy.fstats 25.05.12)\n    test 1 Fcook: 8\n    test 2 Fcook: -0.218750\n    test 3 Fcook: 4.562500\n    test 4 Fcook: 5.0\n    test 5 Fcook: 0.656250\n    test 6 Fcook: 2.0\n    test 7 Fcook: 4.0\n    test 8 Fcook: 1.039635\n\n    test 9 copy: Fcook copy[8]\n    test 10 copy: 5.0\n    test 11 copy: 2.0\n    test 12 Fcook: 8\n\n    test 13 Doubled: 16\n    test 14 Doubled: -0.218750\n    test 15 Doubled: 4.5625\n    test 16 Doubled: 5.0\n    test 17 Doubled: 0.656250\n    test 18 Doubled: 2.0\n    test 19 Doubled: 4.0\n    test 20 Doubled: 1.340453  FAILED, KNOWN, expected 1.039635\n\n    test 21 Empty: Fcook Empty[16]\n    test 22 Empty: 18\n    test 23 Empty: TypeError('Fcook Empty[18] += None: None: not iterable',)\n\n    test 24 Excel: 8\n    test 25 Excel: -1.114187\n    test 26 Excel: -0.939792\n    test 27 Excel: 2.735294\n    test 28 Excel: 2.50\n    test 29 Excel: -0.342403\n    test 30 Excel: -0.427052\n    test 31 Excel: 2.061553\n    test 32 Excel: 4.2\n    test 33 Excel: 0.470372\n\n    test 34 Fwelford: 8\n    test 35 Fwelford: 5.0\n    test 36 Fwelford: 2.0\n    test 37 Fwelford: 4.0\n\n    test 38 copy: Fwelford copy[8]\n    test 39 copy: 5.0\n    test 40 copy: 2.0\n    test 41 copy: 4.0\n    test 42 copy: 8\n    test 43 __add__: 18\n    test 44 __add__: TypeError('Fwelford __add__[18] += None: None: not iterable',)\n\n    test 45 Flinear: 9\n    test 46 Flinear: 0.988288\n    test 47 Flinear: 167.682949\n    test 48 Flinear: 23.422786\n    test 49 __add__: 10\n    test 50 __add__: 21\n    test 51 __add__: TypeError('Flinear __add__[21] += None: None: not iterable',)\n    test 52 __add__: ValueError('Flinear __add__[21] += (1, 2, 3): odd len (3): invalid',)\n\n    1 of 52 testFstats.py tests (1.9%) FAILED, ALL KNOWN (pygeodesy 26.3.26 Python 2.7.18 64bit arm64_x86_64 geographiclib 1.50 numpy 1.16.6 scipy 1.2.2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 -W  default) 234.217 ms\nrunning /Library/Framewo....ython -W default ~/PyGeodesy/test/testFsums.py\n\n    testing testFsums.py 25.06.02 (module pygeodesy.fsums 26.02.02)\n    test 1 sum1: 0.0  FAILED, KNOWN, expected 2.0\n    test 2 fsum: 2.0\n    test 3 Fsum: 2.0\n    test 4 sum2: 0.0  FAILED, KNOWN, expected 4.0\n    test 5 fsum: 4.0\n    test 6 Fsum: 4.0\n    test 7 sum3: 0.0  FAILED, KNOWN, expected 8.0\n    test 8 fsum: 8.0\n    test 9 Fsum: 8.0\n    test 10 sum4: 0.0  FAILED, KNOWN, expected 16.0\n    test 11 fsum: 16.0\n    test 12 Fsum: 16.0\n    test 13 sum5: 0.0  FAILED, KNOWN, expected 32.0\n    test 14 fsum: 32.0\n    test 15 Fsum: 32.0\n    test 16 sum6: 0.0  FAILED, KNOWN, expected 64.0\n    test 17 fsum: 64.0\n    test 18 Fsum: 64.0\n    test 19 sum7: 0.0  FAILED, KNOWN, expected 128.0\n    test 20 fsum: 128.0\n    test 21 Fsum: 128.0\n    test 22 sum8: 0.0  FAILED, KNOWN, expected 256.0\n    test 23 fsum: 256.0\n    test 24 Fsum: 256.0\n    test 25 sum9: 0.0  FAILED, KNOWN, expected 512.0\n    test 26 fsum: 512.0\n    test 27 Fsum: 512.0\n    test 28 sum10: 0.0  FAILED, KNOWN, expected 1024.0\n    test 29 fsum: 1024.0\n    test 30 Fsum: 1024.0\n    test 31 sum: 1.005\n    test 32 fsum: 1.005\n    test 33 Fsum: 1.005\n    test 34 fsum: 1.0000000000000002e+16\n    test 35 Fsum: 1.0000000000000002e+16\n    test 36 Fsum: 1.0000000000000002e+16\n\n\n    test 37 fsum: 1.4203229435e-06\n    test 38 sum1: -3.88533778445e+84  FAILED, KNOWN, expected 1.4203229435e-06\n    test 39 pow(4): Fsum[18] pow(4.06957e-24, 8.80503e-41)\n    test 40 pow(1): Fsum[842] pow(1.42032e-06, 7.68262e-24)\n    test 41 pow(0): Fsum[1] pow(1.0, 0)\n    test 42 ceil: True\n    test 43 floor: True\n    test 44 divmod: Fsum[846] (0.0, 0)\n    test 45 residual: 0\n    test 46 is_exact: True\n    test 47 Fsum: 1.4203229435e-06\n    test 48 Fsum: 1.4203229435e-06\n\n    test 49 fsum: -1.19164385015e-07\n    test 50 sum2: -50.3176681431  FAILED, KNOWN, expected -1.19164385015e-07\n    test 51 pow(4): Fsum[22] pow(2.01644e-28, -1.01761e-44)\n    test 52 pow(1): Fsum[842] pow(-1.19164e-07, -1.80904e-24)\n    test 53 pow(0): Fsum[1] pow(1.0, 0)\n    test 54 ceil: True\n    test 55 floor: True\n    test 56 divmod: Fsum[847] (0.0, 0)\n    test 57 residual: 0\n    test 58 is_exact: True\n    test 59 Fsum: -1.19164385015e-07\n    test 60 Fsum: -1.19164385015e-07\n\n    test 61 fsum: -0.501581206804\n    test 62 sum3: 3.88533778445e+84  FAILED, KNOWN, expected -0.501581206804\n    test 63 pow(4): Fsum[13] pow(0.0632944, -4.76243e-18)\n    test 64 pow(1): Fsum[842] pow(-0.501581, 9.43505e-18)\n    test 65 pow(0): Fsum[1] pow(1.0, 0)\n    test 66 ceil: True\n    test 67 floor: True\n    test 68 divmod: Fsum[846] (0.0, 0)\n    test 69 residual: 0\n    test 70 is_exact: True\n    test 71 Fsum: -0.501581206804\n    test 72 Fsum: -0.501581206804\n\n    test 73 fsum: 2.88933773012\n    test 74 sum4: -3.88533778445e+84  FAILED, KNOWN, expected 2.88933773012\n    test 75 pow(4): Fsum[42] pow(69.6937, -4.14758e-15)\n    test 76 pow(1): Fsum[842] pow(2.88934, -4.29873e-17)\n    test 77 pow(0): Fsum[1] pow(1.0, 0)\n    test 78 ceil: True\n    test 79 floor: True\n    test 80 divmod: Fsum[848] (0.0, 0)\n    test 81 residual: 0\n    test 82 is_exact: True\n    test 83 Fsum: 2.88933773012\n    test 84 Fsum: 2.88933773012\n\n    test 85 fsum: -3.93484264322e-06\n    test 86 sum5: -3.88533778445e+84  FAILED, KNOWN, expected -3.93484264322e-06\n    test 87 pow(4): Fsum[27] pow(2.39723e-22, 4.45705e-39)  FAILED, KNOWN (4.54922e-38), expected Fsum[27] pow(2.39723e-22, 5.9846e-39)\n    test 88 pow(1): Fsum[842] pow(-3.93484e-06, 4.18158e-22)\n    test 89 pow(0): Fsum[1] pow(1.0, 0)\n    test 90 ceil: True\n    test 91 floor: True\n    test 92 divmod: Fsum[847] (0.0, 0)\n    test 93 residual: 0\n    test 94 is_exact: True\n    test 95 Fsum: -3.93484264322e-06\n    test 96 Fsum: -3.93484264322e-06\n\n    test 97 fsum: -0.000258737824118\n    test 98 sum6: 4.88106296614  FAILED, KNOWN, expected -0.000258737824118\n    test 99 pow(4): Fsum[50] pow(4.48167e-15, 3.44383e-31)  FAILED, KNOWN (6.91709e-31), expected Fsum[50] pow(4.48167e-15, -3.47326e-31)\n    test 100 pow(1): Fsum[842] pow(-0.000258738, -1.91607e-20)\n    test 101 pow(0): Fsum[1] pow(1.0, 0)\n    test 102 ceil: True\n    test 103 floor: True\n    test 104 divmod: Fsum[851] (0.0, 0)\n    test 105 residual: 0\n    test 106 is_exact: True\n    test 107 Fsum: -0.000258737824118\n    test 108 Fsum: -0.000258737824118\n\n    test 109 fsum: 1.09774865842e-06\n    test 110 sum7: 106.270568721  FAILED, KNOWN, expected 1.09774865842e-06\n    test 111 pow(4): Fsum[34] pow(1.45215e-24, 3.94823e-42)  FAILED, KNOWN (2.77477e-41), expected Fsum[34] pow(1.45215e-24, -2.37995e-41)\n    test 112 pow(1): Fsum[842] pow(1.09775e-06, 3.54575e-23)\n    test 113 pow(0): Fsum[1] pow(1.0, 0)\n    test 114 ceil: True\n    test 115 floor: True\n    test 116 divmod: Fsum[847] (0.0, 0)\n    test 117 residual: 0\n    test 118 is_exact: True\n    test 119 Fsum: 1.09774865842e-06\n    test 120 Fsum: 1.09774865842e-06\n\n    test 121 fsum: 1.03801638917\n    test 122 sum8: -3.88533778445e+84  FAILED, KNOWN, expected 1.03801638917\n    test 123 pow(4): Fsum[48] pow(1.16096, 1.07987e-16)  FAILED, KNOWN (1.72036e-17), expected Fsum[48] pow(1.16096, 9.07832e-17)\n    test 124 pow(1): Fsum[842] pow(1.03802, -8.28184e-17)\n    test 125 pow(0): Fsum[1] pow(1.0, 0)\n    test 126 ceil: True\n    test 127 floor: True\n    test 128 divmod: Fsum[849] (0.0, 0)\n    test 129 residual: 0\n    test 130 is_exact: True\n    test 131 Fsum: 1.03801638917\n    test 132 Fsum: 1.03801638917\n\n    test 133 fsum: 0.000140345187544\n    test 134 sum9: 94.4831134665  FAILED, KNOWN, expected 0.000140345187544\n    test 135 pow(4): Fsum[31] pow(3.87963e-16, -2.31033e-32)\n    test 136 pow(1): Fsum[842] pow(0.000140345, 2.3695e-21)\n    test 137 pow(0): Fsum[1] pow(1.0, 0)\n    test 138 ceil: True\n    test 139 floor: True\n    test 140 divmod: Fsum[848] (0.0, 0)\n    test 141 residual: 0\n    test 142 is_exact: True\n    test 143 Fsum: 0.000140345187544\n    test 144 Fsum: 0.000140345187544\n\n    test 145 fsum: -9.82998588305e-10\n    test 146 sum10: 3.88533778445e+84  FAILED, KNOWN, expected -9.82998588305e-10\n    test 147 pow(4): Fsum[24] pow(9.33709e-37, 1.2146e-53)  FAILED, KNOWN (1.76831e-52), expected Fsum[24] pow(9.33709e-37, 2.19292e-53)\n    test 148 pow(1): Fsum[842] pow(-9.82999e-10, -1.01159e-25)\n    test 149 pow(0): Fsum[1] pow(1.0, 0)\n    test 150 ceil: True\n    test 151 floor: True\n    test 152 divmod: Fsum[850] (0.0, 0)\n    test 153 residual: 0\n    test 154 is_exact: True\n    test 155 Fsum: -9.82998588305e-10\n    test 156 Fsum: -9.82998588305e-10\n\n    test 157 fsum: -5.44481354565e-05\n    test 158 sum11: -3.88533778445e+84  FAILED, KNOWN, expected -5.44481354565e-05\n    test 159 pow(4): Fsum[15] pow(8.78885e-18, -5.52585e-34)\n    test 160 pow(1): Fsum[842] pow(-5.44481e-05, 8.55836e-22)\n    test 161 pow(0): Fsum[1] pow(1.0, 0)\n    test 162 ceil: True\n    test 163 floor: True\n    test 164 divmod: Fsum[846] (0.0, 0)\n    test 165 residual: 0\n    test 166 is_exact: True\n    test 167 Fsum: -5.44481354565e-05\n    test 168 Fsum: -5.44481354565e-05\n\n    test 169 fsum: 0.00664160943582\n    test 170 sum12: 3.88533778445e+84  FAILED, KNOWN, expected 0.00664160943582\n    test 171 pow(4): Fsum[41] pow(1.94578e-09, -1.94397e-25)\n    test 172 pow(1): Fsum[842] pow(0.00664161, 1.87045e-19)\n    test 173 pow(0): Fsum[1] pow(1.0, 0)\n    test 174 ceil: True\n    test 175 floor: True\n    test 176 divmod: Fsum[848] (0.0, 0)\n    test 177 residual: 0\n    test 178 is_exact: True\n    test 179 Fsum: 0.00664160943582\n    test 180 Fsum: 0.00664160943582\n\n    test 181 fsum: -6.06373724126e-05\n    test 182 sum13: 274.806187467  FAILED, KNOWN, expected -6.06373724126e-05\n    test 183 pow(4): Fsum[40] pow(1.35195e-17, -7.38539e-35)  FAILED, KNOWN (1.00415e-35), expected Fsum[40] pow(1.35195e-17, -6.38125e-35)\n    test 184 pow(1): Fsum[842] pow(-6.06374e-05, -1.64481e-21)\n    test 185 pow(0): Fsum[1] pow(1.0, 0)\n    test 186 ceil: True\n    test 187 floor: True\n    test 188 divmod: Fsum[849] (0.0, 0)\n    test 189 residual: 0\n    test 190 is_exact: True\n    test 191 Fsum: -6.06373724126e-05\n    test 192 Fsum: -6.06373724126e-05\n\n    test 193 fsum: -0.000100121954723\n    test 194 sum14: -3.88533778445e+84  FAILED, KNOWN, expected -0.000100121954723\n    test 195 pow(4): Fsum[36] pow(1.00489e-16, 2.61081e-35)  FAILED, KNOWN (4.25804e-33), expected Fsum[36] pow(1.00489e-16, -4.23193e-33)\n    test 196 pow(1): Fsum[842] pow(-0.000100122, 5.18499e-21)\n    test 197 pow(0): Fsum[1] pow(1.0, 0)\n    test 198 ceil: True\n    test 199 floor: True\n    test 200 divmod: Fsum[848] (0.0, 0)\n    test 201 residual: 0\n    test 202 is_exact: True\n    test 203 Fsum: -0.000100121954723\n    test 204 Fsum: -0.000100121954723\n\n    test 205 fsum: -0.00441346349199\n    test 206 sum15: 3.88533778445e+84  FAILED, KNOWN, expected -0.00441346349199\n    test 207 pow(4): Fsum[43] pow(3.79418e-10, -1.64546e-26)\n    test 208 pow(1): Fsum[842] pow(-0.00441346, -1.02492e-19)\n    test 209 pow(0): Fsum[1] pow(1.0, 0)\n    test 210 ceil: True\n    test 211 floor: True\n    test 212 divmod: Fsum[850] (0.0, 0)\n    test 213 residual: 0\n    test 214 is_exact: True\n    test 215 Fsum: -0.00441346349199\n    test 216 Fsum: -0.00441346349199\n\n    test 217 fsum: -1.97151131304e-05\n    test 218 sum16: -130.947068694  FAILED, KNOWN, expected -1.97151131304e-05\n    test 219 pow(4): Fsum[32] pow(1.51077e-19, 1.09149e-35)\n    test 220 pow(1): Fsum[842] pow(-1.97151e-05, -3.56092e-22)\n    test 221 pow(0): Fsum[1] pow(1.0, 0)\n    test 222 ceil: True\n    test 223 floor: True\n    test 224 divmod: Fsum[849] (0.0, 0)\n    test 225 residual: 0\n    test 226 is_exact: True\n    test 227 Fsum: -1.97151131304e-05\n    test 228 Fsum: -1.97151131304e-05\n\n    test 229 fsum: -7.15964343624e-05\n    test 230 sum17: 3.88533778445e+84  FAILED, KNOWN, expected -7.15964343624e-05\n    test 231 pow(4): Fsum[40] pow(2.62764e-17, -1.51484e-34)  FAILED, KNOWN (3.70696e-33), expected Fsum[40] pow(2.62764e-17, -7.76956e-34)\n    test 232 pow(1): Fsum[842] pow(-7.15964e-05, 5.87988e-21)\n    test 233 pow(0): Fsum[1] pow(1.0, 0)\n    test 234 ceil: True\n    test 235 floor: True\n    test 236 divmod: Fsum[851] (0.0, 0)\n    test 237 residual: 0\n    test 238 is_exact: True\n    test 239 Fsum: -7.15964343624e-05\n    test 240 Fsum: -7.15964343624e-05\n\n    test 241 fsum: 1.57867217532e-08\n    test 242 sum18: 7.62822346709  FAILED, KNOWN, expected 1.57867217532e-08\n    test 243 pow(4): Fsum[21] pow(6.21109e-32, 3.19584e-49)  FAILED, KNOWN (9.60777e-48), expected Fsum[21] pow(6.21109e-32, 1.65946e-48)\n    test 244 pow(1): Fsum[842] pow(1.57867e-08, 8.86226e-25)\n    test 245 pow(0): Fsum[1] pow(1.0, 0)\n    test 246 ceil: True\n    test 247 floor: True\n    test 248 divmod: Fsum[845] (0.0, 0)\n    test 249 residual: 0\n    test 250 is_exact: True\n    test 251 Fsum: 1.57867217532e-08\n    test 252 Fsum: 1.57867217532e-08\n\n    test 253 fsum: 1.93592151388e-11\n    test 254 sum19: 3.88533778445e+84  FAILED, KNOWN, expected 1.93592151388e-11\n    test 255 pow(4): Fsum[14] pow(1.40459e-43, 6.63774e-60)  FAILED, KNOWN (2.22053e-59), expected Fsum[14] pow(1.40459e-43, 4.34612e-60)\n    test 256 pow(1): Fsum[842] pow(1.93592e-11, 7.56956e-28)\n    test 257 pow(0): Fsum[1] pow(1.0, 0)\n    test 258 ceil: True\n    test 259 floor: True\n    test 260 divmod: Fsum[845] (0.0, 0)\n    test 261 residual: 0\n    test 262 is_exact: True\n    test 263 Fsum: 1.93592151388e-11\n    test 264 Fsum: 1.93592151388e-11\n\n    test 265 fsum: -0.00410956906273\n    test 266 sum20: 3.88533778445e+84  FAILED, KNOWN, expected -0.00410956906273\n    test 267 pow(4): Fsum[40] pow(2.85223e-10, 2.39938e-26)\n    test 268 pow(1): Fsum[842] pow(-0.00410957, -8.64273e-20)\n    test 269 pow(0): Fsum[1] pow(1.0, 0)\n    test 270 ceil: True\n    test 271 floor: True\n    test 272 divmod: Fsum[850] (0.0, 0)\n    test 273 residual: 0\n    test 274 is_exact: True\n    test 275 Fsum: -0.00410956906273\n    test 276 Fsum: -0.00410956906273\n\n    test 277 fsum: -0.00107939346364\n    test 278 sum21: -3.88533778445e+84  FAILED, KNOWN, expected -0.00107939346364\n    test 279 pow(4): Fsum[35] pow(1.35744e-12, -3.56547e-29)  FAILED, KNOWN (2.25453e-28), expected Fsum[35] pow(1.35744e-12, -5.91588e-29)\n    test 280 pow(1): Fsum[842] pow(-0.00107939, 1.05179e-19)\n    test 281 pow(0): Fsum[1] pow(1.0, 0)\n    test 282 ceil: True\n    test 283 floor: True\n    test 284 divmod: Fsum[847] (0.0, 0)\n    test 285 residual: 0\n    test 286 is_exact: True\n    test 287 Fsum: -0.00107939346364\n    test 288 Fsum: -0.00107939346364\n\n    test 289 fsum: -0.00114131739088\n    test 290 sum22: -3.88533778445e+84  FAILED, KNOWN, expected -0.00114131739088\n    test 291 pow(4): Fsum[42] pow(1.69678e-12, -6.12272e-29)\n    test 292 pow(1): Fsum[842] pow(-0.00114132, -2.36636e-20)\n    test 293 pow(0): Fsum[1] pow(1.0, 0)\n    test 294 ceil: True\n    test 295 floor: True\n    test 296 divmod: Fsum[848] (0.0, 0)\n    test 297 residual: 0\n    test 298 is_exact: True\n    test 299 Fsum: -0.00114131739088\n    test 300 Fsum: -0.00114131739088\n\n    test 301 fsum: -9.11390094086e-08\n    test 302 sum23: 3.88533778445e+84  FAILED, KNOWN, expected -9.11390094086e-08\n    test 303 pow(4): Fsum[24] pow(6.89949e-29, 2.05785e-45)\n    test 304 pow(1): Fsum[842] pow(-9.1139e-08, -6.79581e-25)\n    test 305 pow(0): Fsum[1] pow(1.0, 0)\n    test 306 ceil: True\n    test 307 floor: True\n    test 308 divmod: Fsum[847] (0.0, 0)\n    test 309 residual: 0\n    test 310 is_exact: True\n    test 311 Fsum: -9.11390094086e-08\n    test 312 Fsum: -9.11390094086e-08\n\n    test 313 fsum: -2.75959413268e-05\n    test 314 sum24: -3.88533778445e+84  FAILED, KNOWN, expected -2.75959413268e-05\n    test 315 pow(4): Fsum[25] pow(5.79937e-19, 4.25551e-35)\n    test 316 pow(1): Fsum[842] pow(-2.75959e-05, -5.06239e-22)\n    test 317 pow(0): Fsum[1] pow(1.0, 0)\n    test 318 ceil: True\n    test 319 floor: True\n    test 320 divmod: Fsum[847] (0.0, 0)\n    test 321 residual: 0\n    test 322 is_exact: True\n    test 323 Fsum: -2.75959413268e-05\n    test 324 Fsum: -2.75959413268e-05\n\n    test 325 fsum: -7.27621205894e-14\n    test 326 sum25: 380.861274869  FAILED, KNOWN, expected -7.27621205894e-14\n    test 327 pow(4): Fsum[12] pow(2.80299e-53, -6.18488e-70)  FAILED, KNOWN (3.79849e-69), expected Fsum[12] pow(2.80299e-53, 2.19527e-70)\n    test 328 pow(1): Fsum[842] pow(-7.27621e-14, 5.33159e-30)\n    test 329 pow(0): Fsum[1] pow(1.0, 0)\n    test 330 ceil: True\n    test 331 floor: True\n    test 332 divmod: Fsum[846] (0.0, 0)\n    test 333 residual: 0\n    test 334 is_exact: True\n    test 335 Fsum: -7.27621205894e-14\n    test 336 Fsum: -7.27621205894e-14\n\n    test 337 fsum: 7.97646608109e-09\n    test 338 sum26: -3.88533778445e+84  FAILED, KNOWN, expected 7.97646608109e-09\n    test 339 pow(4): Fsum[16] pow(4.04801e-33, -4.05393e-50)\n    test 340 pow(1): Fsum[842] pow(7.97647e-09, -1.99703e-26)\n    test 341 pow(0): Fsum[1] pow(1.0, 0)\n    test 342 ceil: True\n    test 343 floor: True\n    test 344 divmod: Fsum[846] (0.0, 0)\n    test 345 residual: 0\n    test 346 is_exact: True\n    test 347 Fsum: 7.97646608109e-09\n    test 348 Fsum: 7.97646608109e-09\n\n    test 349 fsum: -2.18006018317e-05\n    test 350 sum27: -3.05384952322  FAILED, KNOWN, expected -2.18006018317e-05\n    test 351 pow(4): Fsum[28] pow(2.25878e-19, -7.42537e-36)  FAILED, KNOWN (4.91414e-35), expected Fsum[28] pow(2.25878e-19, -8.4185e-36)\n    test 352 pow(1): Fsum[842] pow(-2.18006e-05, 1.38885e-21)\n    test 353 pow(0): Fsum[1] pow(1.0, 0)\n    test 354 ceil: True\n    test 355 floor: True\n    test 356 divmod: Fsum[848] (0.0, 0)\n    test 357 residual: 0\n    test 358 is_exact: True\n    test 359 Fsum: -2.18006018317e-05\n    test 360 Fsum: -2.18006018317e-05\n\n    test 361 fsum: 0.00870693047075\n    test 362 sum28: 3.88533778445e+84  FAILED, KNOWN, expected 0.00870693047075\n    test 363 pow(4): Fsum[38] pow(5.74725e-09, 3.54001e-25)  FAILED, KNOWN (1.02743e-24), expected Fsum[38] pow(5.74725e-09, -2.72934e-25)\n    test 364 pow(1): Fsum[842] pow(0.00870693, 5.99047e-19)\n    test 365 pow(0): Fsum[1] pow(1.0, 0)\n    test 366 ceil: True\n    test 367 floor: True\n    test 368 divmod: Fsum[849] (0.0, 0)\n    test 369 residual: 0\n    test 370 is_exact: True\n    test 371 Fsum: 0.00870693047075\n    test 372 Fsum: 0.00870693047075\n\n    test 373 fsum: -1.62430656446e-06\n    test 374 sum29: 27.0708341993  FAILED, KNOWN, expected -1.62430656446e-06\n    test 375 pow(4): Fsum[31] pow(6.96101e-24, -3.7398e-41)\n    test 376 pow(1): Fsum[842] pow(-1.62431e-06, 2.18165e-24)\n    test 377 pow(0): Fsum[1] pow(1.0, 0)\n    test 378 ceil: True\n    test 379 floor: True\n    test 380 divmod: Fsum[848] (0.0, 0)\n    test 381 residual: 0\n    test 382 is_exact: True\n    test 383 Fsum: -1.62430656446e-06\n    test 384 Fsum: -1.62430656446e-06\n\n    test 385 fsum: 1.31905833906e-05\n    test 386 sum30: 3.88533778445e+84  FAILED, KNOWN, expected 1.31905833906e-05\n    test 387 pow(4): Fsum[21] pow(3.0273e-20, -2.26145e-36)\n    test 388 pow(1): Fsum[842] pow(1.31906e-05, -2.4634e-22)\n    test 389 pow(0): Fsum[1] pow(1.0, 0)\n    test 390 ceil: True\n    test 391 floor: True\n    test 392 divmod: Fsum[846] (0.0, 0)\n    test 393 residual: 0\n    test 394 is_exact: True\n    test 395 Fsum: 1.31905833906e-05\n    test 396 Fsum: 1.31905833906e-05\n\n    test 397 fsum: -3.41924597727e-12\n    test 398 sum31: 189.504117137  FAILED, KNOWN, expected -3.41924597727e-12\n    test 399 pow(4): Fsum[15] pow(1.36685e-46, 1.60404e-63)\n    test 400 pow(1): Fsum[842] pow(-3.41925e-12, -1.00314e-29)\n    test 401 pow(0): Fsum[1] pow(1.0, 0)\n    test 402 ceil: True\n    test 403 floor: True\n    test 404 divmod: Fsum[847] (0.0, 0)\n    test 405 residual: 0\n    test 406 is_exact: True\n    test 407 Fsum: -3.41924597727e-12\n    test 408 Fsum: -3.41924597727e-12\n\n    test 409 fsum: -2.93711874727e-06\n    test 410 sum32: 3.88533778445e+84  FAILED, KNOWN, expected -2.93711874727e-06\n    test 411 pow(4): Fsum[32] pow(7.44194e-23, -1.53004e-40)  FAILED, KNOWN (2.70425e-39), expected Fsum[32] pow(7.44194e-23, -2.85725e-39)\n    test 412 pow(1): Fsum[842] pow(-2.93712e-06, 1.17493e-22)\n    test 413 pow(0): Fsum[1] pow(1.0, 0)\n    test 414 ceil: True\n    test 415 floor: True\n    test 416 divmod: Fsum[849] (0.0, 0)\n    test 417 residual: 0\n    test 418 is_exact: True\n    test 419 Fsum: -2.93711874727e-06\n    test 420 Fsum: -2.93711874727e-06\n\n    test 421 fsum: 53.6013867926\n    test 422 sum33: 3.88533778445e+84  FAILED, KNOWN, expected 53.6013867926\n    test 423 pow(4): Fsum[32] pow(8.25475e+06, 3.46636e-10)\n    test 424 pow(1): Fsum[842] pow(53.6014, -9.4915e-16)\n    test 425 pow(0): Fsum[1] pow(1.0, 0)\n    test 426 ceil: True\n    test 427 floor: True\n    test 428 divmod: Fsum[847] (0.0, 0)\n    test 429 residual: 0\n    test 430 is_exact: True\n    test 431 Fsum: 53.6013867926\n    test 432 Fsum: 53.6013867926\n\n    test 433 fsum: -1.50275133473e-05\n    test 434 sum34: -3.88533778445e+84  FAILED, KNOWN, expected -1.50275133473e-05\n    test 435 pow(4): Fsum[34] pow(5.09975e-20, -2.27052e-36)\n    test 436 pow(1): Fsum[842] pow(-1.50275e-05, -2.76109e-22)\n    test 437 pow(0): Fsum[1] pow(1.0, 0)\n    test 438 ceil: True\n    test 439 floor: True\n    test 440 divmod: Fsum[851] (0.0, 0)\n    test 441 residual: 0\n    test 442 is_exact: True\n    test 443 Fsum: -1.50275133473e-05\n    test 444 Fsum: -1.50275133473e-05\n\n    test 445 fsum: -0.00560051152441\n    test 446 sum35: -3.88533778445e+84  FAILED, KNOWN, expected -0.00560051152441\n    test 447 pow(4): Fsum[5] pow(9.83809e-10, -5.64523e-26)\n    test 448 pow(1): Fsum[842] pow(-0.00560051, 8.03413e-20)\n    test 449 pow(0): Fsum[1] pow(1.0, 0)\n    test 450 ceil: True\n    test 451 floor: True\n    test 452 divmod: Fsum[845] (0.0, 0)\n    test 453 residual: 0\n    test 454 is_exact: True\n    test 455 Fsum: -0.00560051152441\n    test 456 Fsum: -0.00560051152441\n\n    test 457 fsum: 0.441584634636\n    test 458 sum36: 3.88533778445e+84  FAILED, KNOWN, expected 0.441584634636\n    test 459 pow(4): Fsum[56] pow(0.0380238, 2.88816e-18)\n    test 460 pow(1): Fsum[842] pow(0.441585, -1.17607e-17)\n    test 461 pow(0): Fsum[1] pow(1.0, 0)\n    test 462 ceil: True\n    test 463 floor: True\n    test 464 divmod: Fsum[851] (0.0, 0)\n    test 465 residual: 0\n    test 466 is_exact: True\n    test 467 Fsum: 0.441584634636\n    test 468 Fsum: 0.441584634636\n\n    test 469 fsum: -1.54408063875e-08\n    test 470 sum37: 3.88533778445e+84  FAILED, KNOWN, expected -1.54408063875e-08\n    test 471 pow(4): Fsum[25] pow(5.68434e-32, 1.19902e-48)  FAILED, KNOWN (8.07295e-49), expected Fsum[25] pow(5.68434e-32, 2.00632e-48)\n    test 472 pow(1): Fsum[842] pow(-1.54408e-08, -9.34519e-25)\n    test 473 pow(0): Fsum[1] pow(1.0, 0)\n    test 474 ceil: True\n    test 475 floor: True\n    test 476 divmod: Fsum[848] (0.0, 0)\n    test 477 residual: 0\n    test 478 is_exact: True\n    test 479 Fsum: -1.54408063875e-08\n    test 480 Fsum: -1.54408063875e-08\n\n    test 481 fsum: -0.00798579492437\n    test 482 sum38: -242.352137173  FAILED, KNOWN, expected -0.00798579492437\n    test 483 pow(4): Fsum[41] pow(4.06699e-09, 2.4717e-25)  FAILED, KNOWN (1.83483e-26), expected Fsum[41] pow(4.06699e-09, 2.65518e-25)\n    test 484 pow(1): Fsum[842] pow(-0.00798579, 2.84722e-19)\n    test 485 pow(0): Fsum[1] pow(1.0, 0)\n    test 486 ceil: True\n    test 487 floor: True\n    test 488 divmod: Fsum[848] (0.0, 0)\n    test 489 residual: 0\n    test 490 is_exact: True\n    test 491 Fsum: -0.00798579492437\n    test 492 Fsum: -0.00798579492437\n\n    test 493 fsum: 3.11601629623e-05\n    test 494 sum39: -12.4633902527  FAILED, KNOWN, expected 3.11601629623e-05\n    test 495 pow(4): Fsum[32] pow(9.42755e-19, -8.16708e-35)\n    test 496 pow(1): Fsum[842] pow(3.11602e-05, 9.16557e-22)\n    test 497 pow(0): Fsum[1] pow(1.0, 0)\n    test 498 ceil: True\n    test 499 floor: True\n    test 500 divmod: Fsum[847] (0.0, 0)\n    test 501 residual: 0\n    test 502 is_exact: True\n    test 503 Fsum: 3.11601629623e-05\n    test 504 Fsum: 3.11601629623e-05\n\n    test 505 fsum: 3.95808888824e-07\n    test 506 sum40: -3.88533778445e+84  FAILED, KNOWN, expected 3.95808888824e-07\n    test 507 pow(4): Fsum[32] pow(2.45438e-26, 6.3846e-43)  FAILED, KNOWN (1.08491e-42), expected Fsum[32] pow(2.45438e-26, -1.14649e-42)\n    test 508 pow(1): Fsum[842] pow(3.95809e-07, 2.28923e-23)\n    test 509 pow(0): Fsum[1] pow(1.0, 0)\n    test 510 ceil: True\n    test 511 floor: True\n    test 512 divmod: Fsum[848] (0.0, 0)\n    test 513 residual: 0\n    test 514 is_exact: True\n    test 515 Fsum: 3.95808888824e-07\n    test 516 Fsum: 3.95808888824e-07\n\n    test 517 fsum: -5.01849329972e-09\n    test 518 sum41: -6.19728944251  FAILED, KNOWN, expected -5.01849329972e-09\n    test 519 pow(4): Fsum[25] pow(6.34298e-34, -2.02794e-50)\n    test 520 pow(1): Fsum[842] pow(-5.01849e-09, 4.0112e-26)\n    test 521 pow(0): Fsum[1] pow(1.0, 0)\n    test 522 ceil: True\n    test 523 floor: True\n    test 524 divmod: Fsum[847] (0.0, 0)\n    test 525 residual: 0\n    test 526 is_exact: True\n    test 527 Fsum: -5.01849329972e-09\n    test 528 Fsum: -5.01849329972e-09\n\n    test 529 fsum: -2.58902849677\n    test 530 sum42: -3.88533778445e+84  FAILED, KNOWN, expected -2.58902849677\n    test 531 pow(4): Fsum[36] pow(44.9311, -2.88145e-15)\n    test 532 pow(1): Fsum[842] pow(-2.58903, -6.08486e-17)\n    test 533 pow(0): Fsum[1] pow(1.0, 0)\n    test 534 ceil: True\n    test 535 floor: True\n    test 536 divmod: Fsum[847] (0.0, 0)\n    test 537 residual: 0\n    test 538 is_exact: True\n    test 539 Fsum: -2.58902849677\n    test 540 Fsum: -2.58902849677\n\n    test 541 fsum: -6.09801531711e-06\n    test 542 sum43: -11.3668079093  FAILED, KNOWN, expected -6.09801531711e-06\n    test 543 pow(4): Fsum[31] pow(1.38278e-21, -7.68321e-39)\n    test 544 pow(1): Fsum[842] pow(-6.09802e-06, -1.98885e-22)\n    test 545 pow(0): Fsum[1] pow(1.0, 0)\n    test 546 ceil: True\n    test 547 floor: True\n    test 548 divmod: Fsum[847] (0.0, 0)\n    test 549 residual: 0\n    test 550 is_exact: True\n    test 551 Fsum: -6.09801531711e-06\n    test 552 Fsum: -6.09801531711e-06\n\n    test 553 fsum: 6.91670554596e-14\n    test 554 sum44: 3.88533778445e+84  FAILED, KNOWN, expected 6.91670554596e-14\n    test 555 pow(4): Fsum[14] pow(2.28874e-53, 1.86033e-69)\n    test 556 pow(1): Fsum[842] pow(6.91671e-14, 1.40551e-30)\n    test 557 pow(0): Fsum[1] pow(1.0, 0)\n    test 558 ceil: True\n    test 559 floor: True\n    test 560 divmod: Fsum[846] (0.0, 0)\n    test 561 residual: 0\n    test 562 is_exact: True\n    test 563 Fsum: 6.91670554596e-14\n    test 564 Fsum: 6.91670554596e-14\n\n    test 565 fsum: -0.000944407342078\n    test 566 sum45: -1116.1242449  FAILED, KNOWN, expected -0.000944407342078\n    test 567 pow(4): Fsum[29] pow(7.95495e-13, -3.11115e-29)  FAILED, KNOWN (6.54006e-30), expected Fsum[29] pow(7.95495e-13, -3.76516e-29)\n    test 568 pow(1): Fsum[842] pow(-0.000944407, -4.6822e-20)\n    test 569 pow(0): Fsum[1] pow(1.0, 0)\n    test 570 ceil: True\n    test 571 floor: True\n    test 572 divmod: Fsum[847] (0.0, 0)\n    test 573 residual: 0\n    test 574 is_exact: True\n    test 575 Fsum: -0.000944407342078\n    test 576 Fsum: -0.000944407342078\n\n    test 577 fsum: -0.019569310029\n    test 578 sum46: -3.88533778445e+84  FAILED, KNOWN, expected -0.019569310029\n    test 579 pow(4): Fsum[38] pow(1.46657e-07, -4.29293e-24)  FAILED, KNOWN (2.22854e-23), expected Fsum[38] pow(1.46657e-07, -8.47727e-24)\n    test 580 pow(1): Fsum[842] pow(-0.0195693, 1.52829e-18)\n    test 581 pow(0): Fsum[1] pow(1.0, 0)\n    test 582 ceil: True\n    test 583 floor: True\n    test 584 divmod: Fsum[849] (0.0, 0)\n    test 585 residual: 0\n    test 586 is_exact: True\n    test 587 Fsum: -0.019569310029\n    test 588 Fsum: -0.019569310029\n\n    test 589 fsum: 0.000487490607844\n    test 590 sum47: -3.88533778445e+84  FAILED, KNOWN, expected 0.000487490607844\n    test 591 pow(4): Fsum[45] pow(5.64761e-14, -2.95095e-30)  FAILED, KNOWN (2.04211e-32), expected Fsum[45] pow(5.64761e-14, -2.93053e-30)\n    test 592 pow(1): Fsum[842] pow(0.000487491, -1.98984e-20)\n    test 593 pow(0): Fsum[1] pow(1.0, 0)\n    test 594 ceil: True\n    test 595 floor: True\n    test 596 divmod: Fsum[849] (0.0, 0)\n    test 597 residual: 0\n    test 598 is_exact: True\n    test 599 Fsum: 0.000487490607844\n    test 600 Fsum: 0.000487490607844\n\n    test 601 fsum: -0.00104412006269\n    test 602 sum48: -66.5561970601  FAILED, KNOWN, expected -0.00104412006269\n    test 603 pow(4): Fsum[42] pow(1.18851e-12, -9.75468e-29)  FAILED, KNOWN (1.73041e-28), expected Fsum[42] pow(1.18851e-12, -6.86392e-29)\n    test 604 pow(1): Fsum[842] pow(-0.00104412, -7.99811e-20)\n    test 605 pow(0): Fsum[1] pow(1.0, 0)\n    test 606 ceil: True\n    test 607 floor: True\n    test 608 divmod: Fsum[851] (0.0, 0)\n    test 609 residual: 0\n    test 610 is_exact: True\n    test 611 Fsum: -0.00104412006269\n    test 612 Fsum: -0.00104412006269\n\n    test 613 fsum: 0.623098089093\n    test 614 sum49: 3.88533778445e+84  FAILED, KNOWN, expected 0.623098089093\n    test 615 pow(4): Fsum[50] pow(0.150739, 7.88288e-18)  FAILED, KNOWN (6.2033e-18), expected Fsum[50] pow(0.150739, 1.67958e-18)\n    test 616 pow(1): Fsum[842] pow(0.623098, 2.40079e-17)\n    test 617 pow(0): Fsum[1] pow(1.0, 0)\n    test 618 ceil: True\n    test 619 floor: True\n    test 620 divmod: Fsum[850] (0.0, 0)\n    test 621 residual: 0\n    test 622 is_exact: True\n    test 623 Fsum: 0.623098089093\n    test 624 Fsum: 0.623098089093\n\n    test 625 fsum: 1.99679574695e-06\n    test 626 sum50: 3.88533778445e+84  FAILED, KNOWN, expected 1.99679574695e-06\n    test 627 pow(4): Fsum[32] pow(1.58977e-23, -1.2765e-39)  FAILED, KNOWN (2.82093e-40), expected Fsum[32] pow(1.58977e-23, 1.38014e-39)\n    test 628 pow(1): Fsum[842] pow(1.9968e-06, -1.50077e-22)\n    test 629 pow(0): Fsum[1] pow(1.0, 0)\n    test 630 ceil: True\n    test 631 floor: True\n    test 632 divmod: Fsum[847] (0.0, 0)\n    test 633 residual: 0\n    test 634 is_exact: True\n    test 635 Fsum: 1.99679574695e-06\n    test 636 Fsum: 1.99679574695e-06\n\n    test 637 fsum: -7.55348181172e-15\n    test 638 sum51: 3.73082894852  FAILED, KNOWN, expected -7.55348181172e-15\n    test 639 pow(4): Fsum[12] pow(3.25528e-57, -1.82096e-74)  FAILED, KNOWN (3.79401e-74), expected Fsum[12] pow(3.25528e-57, 1.97305e-74)\n    test 640 pow(1): Fsum[842] pow(-7.55348e-15, -7.31504e-31)\n    test 641 pow(0): Fsum[1] pow(1.0, 0)\n    test 642 ceil: True\n    test 643 floor: True\n    test 644 divmod: Fsum[845] (0.0, 0)\n    test 645 residual: 0\n    test 646 is_exact: True\n    test 647 Fsum: -7.55348181172e-15\n    test 648 Fsum: -7.55348181172e-15\n\n    test 649 fsum: -6.67598670833e-06\n    test 650 sum52: 3.88533778445e+84  FAILED, KNOWN, expected -6.67598670833e-06\n    test 651 pow(4): Fsum[21] pow(1.98638e-21, 1.10277e-37)  FAILED, KNOWN (8.81391e-38), expected Fsum[21] pow(1.98638e-21, 2.21381e-38)\n    test 652 pow(1): Fsum[842] pow(-6.67599e-06, -2.60601e-22)\n    test 653 pow(0): Fsum[1] pow(1.0, 0)\n    test 654 ceil: True\n    test 655 floor: True\n    test 656 divmod: Fsum[847] (0.0, 0)\n    test 657 residual: 0\n    test 658 is_exact: True\n    test 659 Fsum: -6.67598670833e-06\n    test 660 Fsum: -6.67598670833e-06\n\n    test 661 fsum: -7.45028269398e-11\n    test 662 sum53: 3.88533778445e+84  FAILED, KNOWN, expected -7.45028269398e-11\n    test 663 pow(4): Fsum[20] pow(3.081e-41, -1.16171e-57)  FAILED, KNOWN (4.17586e-57), expected Fsum[20] pow(3.081e-41, -2.39681e-58)\n    test 664 pow(1): Fsum[842] pow(-7.45028e-11, 5.75121e-27)\n    test 665 pow(0): Fsum[1] pow(1.0, 0)\n    test 666 ceil: True\n    test 667 floor: True\n    test 668 divmod: Fsum[847] (0.0, 0)\n    test 669 residual: 0\n    test 670 is_exact: True\n    test 671 Fsum: -7.45028269398e-11\n    test 672 Fsum: -7.45028269398e-11\n\n    test 673 fsum: 0.000267147152362\n    test 674 sum54: -3.88533778445e+84  FAILED, KNOWN, expected 0.000267147152362\n    test 675 pow(4): Fsum[28] pow(5.09333e-15, 2.16172e-32)  FAILED, KNOWN (7.43381e-32), expected Fsum[28] pow(5.09333e-15, 9.59553e-32)\n    test 676 pow(1): Fsum[842] pow(0.000267147, -1.00605e-20)\n    test 677 pow(0): Fsum[1] pow(1.0, 0)\n    test 678 ceil: True\n    test 679 floor: True\n    test 680 divmod: Fsum[846] (0.0, 0)\n    test 681 residual: 0\n    test 682 is_exact: True\n    test 683 Fsum: 0.000267147152362\n    test 684 Fsum: 0.000267147152362\n\n    test 685 fsum: -47.7826709338\n    test 686 sum55: -3.88533778445e+84  FAILED, KNOWN, expected -47.7826709338\n    test 687 pow(4): Fsum[30] pow(5.21293e+06, 3.53716e-10)\n    test 688 pow(1): Fsum[842] pow(-47.7827, -8.10556e-16)\n    test 689 pow(0): Fsum[1] pow(1.0, 0)\n    test 690 ceil: True\n    test 691 floor: True\n    test 692 divmod: Fsum[848] (0.0, 0)\n    test 693 residual: 0\n    test 694 is_exact: True\n    test 695 Fsum: -47.7826709338\n    test 696 Fsum: -47.7826709338\n\n    test 697 fsum: -1.39580997704e-13\n    test 698 sum56: 3.88533778445e+84  FAILED, KNOWN, expected -1.39580997704e-13\n    test 699 pow(4): Fsum[22] pow(3.79582e-52, 3.29999e-68)  FAILED, KNOWN (5.59131e-68), expected Fsum[22] pow(3.79582e-52, 1.47289e-68)\n    test 700 pow(1): Fsum[842] pow(-1.39581e-13, -6.49417e-30)\n    test 701 pow(0): Fsum[1] pow(1.0, 0)\n    test 702 ceil: True\n    test 703 floor: True\n    test 704 divmod: Fsum[847] (0.0, 0)\n    test 705 residual: 0\n    test 706 is_exact: True\n    test 707 Fsum: -1.39580997704e-13\n    test 708 Fsum: -1.39580997704e-13\n\n    test 709 fsum: 0.0162148047939\n    test 710 sum57: 1.91532490439  FAILED, KNOWN, expected 0.0162148047939\n    test 711 pow(4): Fsum[51] pow(6.91269e-08, 5.69562e-24)  FAILED, KNOWN (1.01803e-24), expected Fsum[51] pow(6.91269e-08, -6.52124e-24)\n    test 712 pow(1): Fsum[842] pow(0.0162148, 1.22951e-18)\n    test 713 pow(0): Fsum[1] pow(1.0, 0)\n    test 714 ceil: True\n    test 715 floor: True\n    test 716 divmod: Fsum[850] (0.0, 0)\n    test 717 residual: 0\n    test 718 is_exact: True\n    test 719 Fsum: 0.0162148047939\n    test 720 Fsum: 0.0162148047939\n\n    test 721 fsum: 0.030186958275\n    test 722 sum58: -3.88533778445e+84  FAILED, KNOWN, expected 0.030186958275\n    test 723 pow(4): Fsum[63] pow(8.30381e-07, 3.63606e-23)  FAILED, KNOWN (1.02277e-22), expected Fsum[63] pow(8.30381e-07, 3.27589e-23)\n    test 724 pow(1): Fsum[842] pow(0.030187, -6.31804e-19)\n    test 725 pow(0): Fsum[1] pow(1.0, 0)\n    test 726 ceil: True\n    test 727 floor: True\n    test 728 divmod: Fsum[850] (0.0, 0)\n    test 729 residual: 0\n    test 730 is_exact: True\n    test 731 Fsum: 0.030186958275\n    test 732 Fsum: 0.030186958275\n\n    test 733 fsum: -9.76252993884e-09\n    test 734 sum59: 3.88533778445e+84  FAILED, KNOWN, expected -9.76252993884e-09\n    test 735 pow(4): Fsum[24] pow(9.08342e-33, 3.89566e-49)\n    test 736 pow(1): Fsum[842] pow(-9.76253e-09, -1.04673e-25)\n    test 737 pow(0): Fsum[1] pow(1.0, 0)\n    test 738 ceil: True\n    test 739 floor: True\n    test 740 divmod: Fsum[848] (0.0, 0)\n    test 741 residual: 0\n    test 742 is_exact: True\n    test 743 Fsum: -9.76252993884e-09\n    test 744 Fsum: -9.76252993884e-09\n\n    test 745 fsum: 4.74353224567e-13\n    test 746 sum60: 294.466905462  FAILED, KNOWN, expected 4.74353224567e-13\n    test 747 pow(4): Fsum[26] pow(5.06299e-50, -3.11835e-66)\n    test 748 pow(1): Fsum[842] pow(4.74353e-13, -7.30396e-30)\n    test 749 pow(0): Fsum[1] pow(1.0, 0)\n    test 750 ceil: True\n    test 751 floor: True\n    test 752 divmod: Fsum[848] (0.0, 0)\n    test 753 residual: 0\n    test 754 is_exact: True\n    test 755 Fsum: 4.74353224567e-13\n    test 756 Fsum: 4.74353224567e-13\n\n    test 757 fsum: 0.000129454124711\n    test 758 sum61: -152.249666907  FAILED, KNOWN, expected 0.000129454124711\n    test 759 pow(4): Fsum[30] pow(2.80843e-16, -2.22138e-32)\n    test 760 pow(1): Fsum[842] pow(0.000129454, -2.55985e-21)\n    test 761 pow(0): Fsum[1] pow(1.0, 0)\n    test 762 ceil: True\n    test 763 floor: True\n    test 764 divmod: Fsum[847] (0.0, 0)\n    test 765 residual: 0\n    test 766 is_exact: True\n    test 767 Fsum: 0.000129454124711\n    test 768 Fsum: 0.000129454124711\n\n    test 769 fsum: 6.28418765534e-12\n    test 770 sum62: 3.88533778445e+84  FAILED, KNOWN, expected 6.28418765534e-12\n    test 771 pow(4): Fsum[18] pow(1.55954e-45, 1.53503e-61)\n    test 772 pow(1): Fsum[842] pow(6.28419e-12, 1.54636e-28)\n    test 773 pow(0): Fsum[1] pow(1.0, 0)\n    test 774 ceil: True\n    test 775 floor: True\n    test 776 divmod: Fsum[846] (0.0, 0)\n    test 777 residual: 0\n    test 778 is_exact: True\n    test 779 Fsum: 6.28418765534e-12\n    test 780 Fsum: 6.28418765534e-12\n\n    test 781 fsum: 6.31512217437e-14\n    test 782 sum63: 3.88533778445e+84  FAILED, KNOWN, expected 6.31512217437e-14\n    test 783 pow(4): Fsum[11] pow(1.59048e-53, 8.65971e-70)  FAILED, KNOWN (2.85799e-70), expected Fsum[11] pow(1.59048e-53, 1.15177e-69)\n    test 784 pow(1): Fsum[842] pow(6.31512e-14, -6.08164e-30)\n    test 785 pow(0): Fsum[1] pow(1.0, 0)\n    test 786 ceil: True\n    test 787 floor: True\n    test 788 divmod: Fsum[845] (0.0, 0)\n    test 789 residual: 0\n    test 790 is_exact: True\n    test 791 Fsum: 6.31512217437e-14\n    test 792 Fsum: 6.31512217437e-14\n\n    test 793 fsum: -3.93360895427e-14\n    test 794 sum64: -3.88533778445e+84  FAILED, KNOWN, expected -3.93360895427e-14\n    test 795 pow(4): Fsum[17] pow(2.39422e-54, 1.2127e-70)\n    test 796 pow(1): Fsum[842] pow(-3.93361e-14, 6.92143e-31)\n    test 797 pow(0): Fsum[1] pow(1.0, 0)\n    test 798 ceil: True\n    test 799 floor: True\n    test 800 divmod: Fsum[847] (0.0, 0)\n    test 801 residual: 0\n    test 802 is_exact: True\n    test 803 Fsum: -3.93360895427e-14\n    test 804 Fsum: -3.93360895427e-14\n\n    test 805 fsum: 0.00440698247911\n    test 806 sum65: 9.18142179859  FAILED, KNOWN, expected 0.00440698247911\n    test 807 pow(4): Fsum[35] pow(3.77194e-10, 2.04473e-26)\n    test 808 pow(1): Fsum[842] pow(0.00440698, 5.97244e-20)\n    test 809 pow(0): Fsum[1] pow(1.0, 0)\n    test 810 ceil: True\n    test 811 floor: True\n    test 812 divmod: Fsum[846] (0.0, 0)\n    test 813 residual: 0\n    test 814 is_exact: True\n    test 815 Fsum: 0.00440698247911\n    test 816 Fsum: 0.00440698247911\n\n    test 817 fsum: 1.12030567687e-13\n    test 818 sum66: 286.490317326  FAILED, KNOWN, expected 1.12030567687e-13\n    test 819 pow(4): Fsum[11] pow(1.57524e-52, 7.28591e-69)  FAILED, KNOWN (5.36447e-70), expected Fsum[11] pow(1.57524e-52, 7.82235e-69)\n    test 820 pow(1): Fsum[842] pow(1.12031e-13, -5.10876e-30)\n    test 821 pow(0): Fsum[1] pow(1.0, 0)\n    test 822 ceil: True\n    test 823 floor: True\n    test 824 divmod: Fsum[847] (0.0, 0)\n    test 825 residual: 0\n    test 826 is_exact: True\n    test 827 Fsum: 1.12030567687e-13\n    test 828 Fsum: 1.12030567687e-13\n\n    test 829 fsum: 2.32085140703e-13\n    test 830 sum67: -3.88533778445e+84  FAILED, KNOWN, expected 2.32085140703e-13\n    test 831 pow(4): Fsum[11] pow(2.90128e-51, 1.1928e-67)\n    test 832 pow(1): Fsum[842] pow(2.32085e-13, 2.38542e-30)\n    test 833 pow(0): Fsum[1] pow(1.0, 0)\n    test 834 ceil: True\n    test 835 floor: True\n    test 836 divmod: Fsum[845] (0.0, 0)\n    test 837 residual: 0\n    test 838 is_exact: True\n    test 839 Fsum: 2.32085140703e-13\n    test 840 Fsum: 2.32085140703e-13\n\n    test 841 fsum: -5.82645828877e-14\n    test 842 sum68: -3.88533778445e+84  FAILED, KNOWN, expected -5.82645828877e-14\n    test 843 pow(4): Fsum[17] pow(1.15244e-53, -5.09707e-70)  FAILED, KNOWN (2.25885e-69), expected Fsum[17] pow(1.15244e-53, -5.69115e-70)\n    test 844 pow(1): Fsum[842] pow(-5.82646e-14, -5.82058e-30)\n    test 845 pow(0): Fsum[1] pow(1.0, 0)\n    test 846 ceil: True\n    test 847 floor: True\n    test 848 divmod: Fsum[847] (0.0, 0)\n    test 849 residual: 0\n    test 850 is_exact: True\n    test 851 Fsum: -5.82645828877e-14\n    test 852 Fsum: -5.82645828877e-14\n\n    test 853 fsum: -0.000482569306025\n    test 854 sum69: -3.88533778445e+84  FAILED, KNOWN, expected -0.000482569306025\n    test 855 pow(4): Fsum[42] pow(5.42299e-14, 9.51747e-31)  FAILED, KNOWN (6.23706e-30), expected Fsum[42] pow(5.42299e-14, 8.77921e-31)\n    test 856 pow(1): Fsum[842] pow(-0.000482569, 1.19222e-20)\n    test 857 pow(0): Fsum[1] pow(1.0, 0)\n    test 858 ceil: True\n    test 859 floor: True\n    test 860 divmod: Fsum[852] (0.0, 0)\n    test 861 residual: 0\n    test 862 is_exact: True\n    test 863 Fsum: -0.000482569306025\n    test 864 Fsum: -0.000482569306025\n\n    test 865 fsum: -2.54371196775e-12\n    test 866 sum70: -3.88533778445e+84  FAILED, KNOWN, expected -2.54371196775e-12\n    test 867 pow(4): Fsum[21] pow(4.1867e-47, -5.33691e-64)  FAILED, KNOWN (1.0798e-64), expected Fsum[21] pow(4.1867e-47, -6.41671e-64)\n    test 868 pow(1): Fsum[842] pow(-2.54371e-12, -1.36305e-28)\n    test 869 pow(0): Fsum[1] pow(1.0, 0)\n    test 870 ceil: True\n    test 871 floor: True\n    test 872 divmod: Fsum[847] (0.0, 0)\n    test 873 residual: 0\n    test 874 is_exact: True\n    test 875 Fsum: -2.54371196775e-12\n    test 876 Fsum: -2.54371196775e-12\n\n    test 877 fsum: 0.000220655683563\n    test 878 sum71: 3.88533778445e+84  FAILED, KNOWN, expected 0.000220655683563\n    test 879 pow(4): Fsum[38] pow(2.37061e-15, -1.25717e-31)  FAILED, KNOWN (3.7942e-32), expected Fsum[38] pow(2.37061e-15, -8.77747e-32)\n    test 880 pow(1): Fsum[842] pow(0.000220656, 6.25294e-21)\n    test 881 pow(0): Fsum[1] pow(1.0, 0)\n    test 882 ceil: True\n    test 883 floor: True\n    test 884 divmod: Fsum[848] (0.0, 0)\n    test 885 residual: 0\n    test 886 is_exact: True\n    test 887 Fsum: 0.000220655683563\n    test 888 Fsum: 0.000220655683563\n\n    test 889 fsum: -0.0179541509414\n    test 890 sum72: -0.0141938461324  FAILED, KNOWN, expected -0.0179541509414\n    test 891 pow(4): Fsum[63] pow(1.03911e-07, 1.24581e-24)  FAILED, KNOWN (2.26695e-24), expected Fsum[63] pow(1.03911e-07, 3.51276e-24)\n    test 892 pow(1): Fsum[842] pow(-0.0179542, -1.5635e-18)\n    test 893 pow(0): Fsum[1] pow(1.0, 0)\n    test 894 ceil: True\n    test 895 floor: True\n    test 896 divmod: Fsum[853] (0.0, 0)\n    test 897 residual: 0\n    test 898 is_exact: True\n    test 899 Fsum: -0.0179541509414\n    test 900 Fsum: -0.0179541509414\n\n    test 901 fsum: 1.44010091673e-06\n    test 902 sum73: -3.88533778445e+84  FAILED, KNOWN, expected 1.44010091673e-06\n    test 903 pow(4): Fsum[29] pow(4.30102e-24, -5.87185e-41)  FAILED, KNOWN (1.79977e-40), expected Fsum[29] pow(4.30102e-24, -2.38696e-40)\n    test 904 pow(1): Fsum[842] pow(1.4401e-06, -6.64133e-23)\n    test 905 pow(0): Fsum[1] pow(1.0, 0)\n    test 906 ceil: True\n    test 907 floor: True\n    test 908 divmod: Fsum[847] (0.0, 0)\n    test 909 residual: 0\n    test 910 is_exact: True\n    test 911 Fsum: 1.44010091673e-06\n    test 912 Fsum: 1.44010091673e-06\n\n    test 913 fsum: -0.00058033588929\n    test 914 sum74: 0.000426598582422  FAILED, KNOWN, expected -0.00058033588929\n    test 915 pow(4): Fsum[17] pow(1.13427e-13, 1.28005e-30)  FAILED, KNOWN (1.02422e-29), expected Fsum[17] pow(1.13427e-13, 3.6596e-30)\n    test 916 pow(1): Fsum[842] pow(-0.000580336, 1.45071e-20)\n    test 917 pow(0): Fsum[1] pow(1.0, 0)\n    test 918 ceil: True\n    test 919 floor: True\n    test 920 divmod: Fsum[846] (0.0, 0)\n    test 921 residual: 0\n    test 922 is_exact: True\n    test 923 Fsum: -0.00058033588929\n    test 924 Fsum: -0.00058033588929\n\n    test 925 fsum: -0.00616776792313\n    test 926 sum75: 632.821086777  FAILED, KNOWN, expected -0.00616776792313\n    test 927 pow(4): Fsum[32] pow(1.44715e-09, 5.31954e-26)\n    test 928 pow(1): Fsum[842] pow(-0.00616777, -5.668e-20)\n    test 929 pow(0): Fsum[1] pow(1.0, 0)\n    test 930 ceil: True\n    test 931 floor: True\n    test 932 divmod: Fsum[849] (0.0, 0)\n    test 933 residual: 0\n    test 934 is_exact: True\n    test 935 Fsum: -0.00616776792313\n    test 936 Fsum: -0.00616776792313\n\n    test 937 fsum: 0.00276526245642\n    test 938 sum76: -3.88533778445e+84  FAILED, KNOWN, expected 0.00276526245642\n    test 939 pow(4): Fsum[22] pow(5.84717e-11, -1.13035e-27)\n    test 940 pow(1): Fsum[842] pow(0.00276526, -1.33642e-20)\n    test 941 pow(0): Fsum[1] pow(1.0, 0)\n    test 942 ceil: True\n    test 943 floor: True\n    test 944 divmod: Fsum[845] (0.0, 0)\n    test 945 residual: 0\n    test 946 is_exact: True\n    test 947 Fsum: 0.00276526245642\n    test 948 Fsum: 0.00276526245642\n\n    test 949 fsum: -0.0019008089549\n    test 950 sum77: 3.88533778445e+84  FAILED, KNOWN, expected -0.0019008089549\n    test 951 pow(4): Fsum[34] pow(1.30543e-11, 5.99588e-28)  FAILED, KNOWN (8.53905e-29), expected Fsum[34] pow(1.30543e-11, 5.14198e-28)\n    test 952 pow(1): Fsum[842] pow(-0.00190081, -7.44199e-20)\n    test 953 pow(0): Fsum[1] pow(1.0, 0)\n    test 954 ceil: True\n    test 955 floor: True\n    test 956 divmod: Fsum[848] (0.0, 0)\n    test 957 residual: 0\n    test 958 is_exact: True\n    test 959 Fsum: -0.0019008089549\n    test 960 Fsum: -0.0019008089549\n\n    test 961 fsum: 3.82507276957e-06\n    test 962 sum78: 3.88533778445e+84  FAILED, KNOWN, expected 3.82507276957e-06\n    test 963 pow(4): Fsum[17] pow(2.14071e-22, -1.90528e-39)  FAILED, KNOWN (1.27888e-40), expected Fsum[17] pow(2.14071e-22, -2.03317e-39)\n    test 964 pow(1): Fsum[842] pow(3.82507e-06, 2.01529e-22)\n    test 965 pow(0): Fsum[1] pow(1.0, 0)\n    test 966 ceil: True\n    test 967 floor: True\n    test 968 divmod: Fsum[845] (0.0, 0)\n    test 969 residual: 0\n    test 970 is_exact: True\n    test 971 Fsum: 3.82507276957e-06\n    test 972 Fsum: 3.82507276957e-06\n\n    test 973 fsum: -4.80071137768e-09\n    test 974 sum79: -277.683977538  FAILED, KNOWN, expected -4.80071137768e-09\n    test 975 pow(4): Fsum[14] pow(5.31156e-34, -2.47872e-50)  FAILED, KNOWN (7.10185e-50), expected Fsum[14] pow(5.31156e-34, -3.92972e-50)\n    test 976 pow(1): Fsum[842] pow(-4.80071e-09, -2.64933e-25)\n    test 977 pow(0): Fsum[1] pow(1.0, 0)\n    test 978 ceil: True\n    test 979 floor: True\n    test 980 divmod: Fsum[846] (0.0, 0)\n    test 981 residual: 0\n    test 982 is_exact: True\n    test 983 Fsum: -4.80071137768e-09\n    test 984 Fsum: -4.80071137768e-09\n\n    test 985 fsum: -3.39963209793e-05\n    test 986 sum80: 5.53710033948  FAILED, KNOWN, expected -3.39963209793e-05\n    test 987 pow(4): Fsum[33] pow(1.33576e-18, 6.00522e-35)\n    test 988 pow(1): Fsum[842] pow(-3.39963e-05, 8.43323e-22)\n    test 989 pow(0): Fsum[1] pow(1.0, 0)\n    test 990 ceil: True\n    test 991 floor: True\n    test 992 divmod: Fsum[848] (0.0, 0)\n    test 993 residual: 0\n    test 994 is_exact: True\n    test 995 Fsum: -3.39963209793e-05\n    test 996 Fsum: -3.39963209793e-05\n\n    test 997 fsum: -0.0336799317808\n    test 998 sum81: -3.88533778445e+84  FAILED, KNOWN, expected -0.0336799317808\n    test 999 pow(4): Fsum[50] pow(1.28672e-06, 6.33321e-23)\n    test 1000 pow(1): Fsum[842] pow(-0.0336799, -4.14429e-19)\n    test 1001 pow(0): Fsum[1] pow(1.0, 0)\n    test 1002 ceil: True\n    test 1003 floor: True\n    test 1004 divmod: Fsum[851] (0.0, 0)\n    test 1005 residual: 0\n    test 1006 is_exact: True\n    test 1007 Fsum: -0.0336799317808\n    test 1008 Fsum: -0.0336799317808\n\n    test 1009 fsum: -1.11085646553e-10\n    test 1010 sum82: -1201.81944922  FAILED, KNOWN, expected -1.11085646553e-10\n    test 1011 pow(4): Fsum[36] pow(1.52276e-40, -7.80414e-57)  FAILED, KNOWN (1.85672e-56), expected Fsum[36] pow(1.52276e-40, -9.62852e-57)\n    test 1012 pow(1): Fsum[842] pow(-1.11086e-10, -5.34912e-27)\n    test 1013 pow(0): Fsum[1] pow(1.0, 0)\n    test 1014 ceil: True\n    test 1015 floor: True\n    test 1016 divmod: Fsum[850] (0.0, 0)\n    test 1017 residual: 0\n    test 1018 is_exact: True\n    test 1019 Fsum: -1.11085646553e-10\n    test 1020 Fsum: -1.11085646553e-10\n\n    test 1021 fsum: 0.00329610760204\n    test 1022 sum83: -157.670383764  FAILED, KNOWN, expected 0.00329610760204\n    test 1023 pow(4): Fsum[41] pow(1.18034e-10, -4.61704e-27)\n    test 1024 pow(1): Fsum[842] pow(0.00329611, -3.22329e-20)\n    test 1025 pow(0): Fsum[1] pow(1.0, 0)\n    test 1026 ceil: True\n    test 1027 floor: True\n    test 1028 divmod: Fsum[849] (0.0, 0)\n    test 1029 residual: 0\n    test 1030 is_exact: True\n    test 1031 Fsum: 0.00329610760204\n    test 1032 Fsum: 0.00329610760204\n\n    test 1033 fsum: 0.0112005229037\n    test 1034 sum84: 106.139108986  FAILED, KNOWN, expected 0.0112005229037\n    test 1035 pow(4): Fsum[51] pow(1.57381e-08, 5.23836e-25)  FAILED, KNOWN (2.3718e-24), expected Fsum[51] pow(1.57381e-08, -4.13083e-25)\n    test 1036 pow(1): Fsum[842] pow(0.0112005, -4.95487e-19)\n    test 1037 pow(0): Fsum[1] pow(1.0, 0)\n    test 1038 ceil: True\n    test 1039 floor: True\n    test 1040 divmod: Fsum[850] (0.0, 0)\n    test 1041 residual: 0\n    test 1042 is_exact: True\n    test 1043 Fsum: 0.0112005229037\n    test 1044 Fsum: 0.0112005229037\n\n    test 1045 fsum: 0.765416594311\n    test 1046 sum85: -10.0424873401  FAILED, KNOWN, expected 0.765416594311\n    test 1047 pow(4): Fsum[49] pow(0.343235, -2.698e-17)  FAILED, KNOWN (1.3022e-17), expected Fsum[49] pow(0.343235, -1.3958e-17)\n    test 1048 pow(1): Fsum[842] pow(0.765417, 1.59062e-17)\n    test 1049 pow(0): Fsum[1] pow(1.0, 0)\n    test 1050 ceil: True\n    test 1051 floor: True\n    test 1052 divmod: Fsum[851] (0.0, 0)\n    test 1053 residual: 0\n    test 1054 is_exact: True\n    test 1055 Fsum: 0.765416594311\n    test 1056 Fsum: 0.765416594311\n\n    test 1057 fsum: 0.000558892082228\n    test 1058 sum86: -3.88533778445e+84  FAILED, KNOWN, expected 0.000558892082228\n    test 1059 pow(4): Fsum[32] pow(9.7569e-14, 7.7552e-31)  FAILED, KNOWN (1.4447e-29), expected Fsum[32] pow(9.7569e-14, 2.60077e-30)\n    test 1060 pow(1): Fsum[842] pow(0.000558892, -1.69643e-20)\n    test 1061 pow(0): Fsum[1] pow(1.0, 0)\n    test 1062 ceil: True\n    test 1063 floor: True\n    test 1064 divmod: Fsum[847] (0.0, 0)\n    test 1065 residual: 0\n    test 1066 is_exact: True\n    test 1067 Fsum: 0.000558892082228\n    test 1068 Fsum: 0.000558892082228\n\n    test 1069 fsum: -7.522198051e-05\n    test 1070 sum87: 3.88533778445e+84  FAILED, KNOWN, expected -7.522198051e-05\n    test 1071 pow(4): Fsum[33] pow(3.20169e-17, -2.49599e-33)  FAILED, KNOWN (1.4825e-33), expected Fsum[33] pow(3.20169e-17, 2.18449e-33)\n    test 1072 pow(1): Fsum[842] pow(-7.5222e-05, -4.03222e-21)\n    test 1073 pow(0): Fsum[1] pow(1.0, 0)\n    test 1074 ceil: True\n    test 1075 floor: True\n    test 1076 divmod: Fsum[849] (0.0, 0)\n    test 1077 residual: 0\n    test 1078 is_exact: True\n    test 1079 Fsum: -7.522198051e-05\n    test 1080 Fsum: -7.522198051e-05\n\n    test 1081 fsum: 9.39121985661\n    test 1082 sum88: 3.88533778445e+84  FAILED, KNOWN, expected 9.39121985661\n    test 1083 pow(4): Fsum[49] pow(7778.36, -3.60551e-14)  FAILED, KNOWN (5.65663e-13), expected Fsum[49] pow(7778.36, -3.79887e-13)\n    test 1084 pow(1): Fsum[842] pow(9.39122, -4.92966e-16)\n    test 1085 pow(0): Fsum[1] pow(1.0, 0)\n    test 1086 ceil: True\n    test 1087 floor: True\n    test 1088 divmod: Fsum[849] (0.0, 0)\n    test 1089 residual: 0\n    test 1090 is_exact: True\n    test 1091 Fsum: 9.39121985661\n    test 1092 Fsum: 9.39121985661\n\n    test 1093 fsum: -0.000562647672483\n    test 1094 sum89: 4.68138477482  FAILED, KNOWN, expected -0.000562647672483\n    test 1095 pow(4): Fsum[38] pow(1.00218e-13, 1.6215e-30)\n    test 1096 pow(1): Fsum[842] pow(-0.000562648, -2.27587e-21)\n    test 1097 pow(0): Fsum[1] pow(1.0, 0)\n    test 1098 ceil: True\n    test 1099 floor: True\n    test 1100 divmod: Fsum[851] (0.0, 0)\n    test 1101 residual: 0\n    test 1102 is_exact: True\n    test 1103 Fsum: -0.000562647672483\n    test 1104 Fsum: -0.000562647672483\n\n    test 1105 fsum: -0.000503284684643\n    test 1106 sum90: 0.599572906941  FAILED, KNOWN, expected -0.000503284684643\n    test 1107 pow(4): Fsum[41] pow(6.41586e-14, 2.76234e-30)  FAILED, KNOWN (7.87576e-31), expected Fsum[41] pow(6.41586e-14, 3.54992e-30)\n    test 1108 pow(1): Fsum[842] pow(-0.000503285, -3.32588e-20)\n    test 1109 pow(0): Fsum[1] pow(1.0, 0)\n    test 1110 ceil: True\n    test 1111 floor: True\n    test 1112 divmod: Fsum[850] (0.0, 0)\n    test 1113 residual: 0\n    test 1114 is_exact: True\n    test 1115 Fsum: -0.000503284684643\n    test 1116 Fsum: -0.000503284684643\n\n    test 1117 fsum: 0.00252730366468\n    test 1118 sum91: -14.0302959753  FAILED, KNOWN, expected 0.00252730366468\n    test 1119 pow(4): Fsum[43] pow(4.07971e-11, -1.52454e-27)\n    test 1120 pow(1): Fsum[842] pow(0.0025273, -2.36105e-20)\n    test 1121 pow(0): Fsum[1] pow(1.0, 0)\n    test 1122 ceil: True\n    test 1123 floor: True\n    test 1124 divmod: Fsum[849] (0.0, 0)\n    test 1125 residual: 0\n    test 1126 is_exact: True\n    test 1127 Fsum: 0.00252730366468\n    test 1128 Fsum: 0.00252730366468\n\n    test 1129 fsum: -0.00042937293392\n    test 1130 sum92: 3.88533778445e+84  FAILED, KNOWN, expected -0.00042937293392\n    test 1131 pow(4): Fsum[46] pow(3.3989e-14, 2.88264e-30)\n    test 1132 pow(1): Fsum[842] pow(-0.000429373, 1.0827e-20)\n    test 1133 pow(0): Fsum[1] pow(1.0, 0)\n    test 1134 ceil: True\n    test 1135 floor: True\n    test 1136 divmod: Fsum[849] (0.0, 0)\n    test 1137 residual: 0\n    test 1138 is_exact: True\n    test 1139 Fsum: -0.00042937293392\n    test 1140 Fsum: -0.00042937293392\n\n    test 1141 fsum: -3.02783654808e-07\n    test 1142 sum93: -3.88533778445e+84  FAILED, KNOWN, expected -3.02783654808e-07\n    test 1143 pow(4): Fsum[22] pow(8.40484e-27, -5.50804e-43)  FAILED, KNOWN (7.69755e-43), expected Fsum[22] pow(8.40484e-27, 1.1437e-43)\n    test 1144 pow(1): Fsum[842] pow(-3.02784e-07, 2.58036e-23)\n    test 1145 pow(0): Fsum[1] pow(1.0, 0)\n    test 1146 ceil: True\n    test 1147 floor: True\n    test 1148 divmod: Fsum[847] (0.0, 0)\n    test 1149 residual: 0\n    test 1150 is_exact: True\n    test 1151 Fsum: -3.02783654808e-07\n    test 1152 Fsum: -3.02783654808e-07\n\n    test 1153 fsum: -0.298286705217\n    test 1154 sum94: 3.88533778445e+84  FAILED, KNOWN, expected -0.298286705217\n    test 1155 pow(4): Fsum[31] pow(0.00791654, 5.04777e-19)  FAILED, KNOWN (4.99948e-19), expected Fsum[31] pow(0.00791654, -7.29999e-19)\n    test 1156 pow(1): Fsum[842] pow(-0.298287, 1.85076e-17)\n    test 1157 pow(0): Fsum[1] pow(1.0, 0)\n    test 1158 ceil: True\n    test 1159 floor: True\n    test 1160 divmod: Fsum[847] (0.0, 0)\n    test 1161 residual: 0\n    test 1162 is_exact: True\n    test 1163 Fsum: -0.298286705217\n    test 1164 Fsum: -0.298286705217\n\n    test 1165 fsum: 5.41134812028e-06\n    test 1166 sum95: 3.88533778445e+84  FAILED, KNOWN, expected 5.41134812028e-06\n    test 1167 pow(4): Fsum[37] pow(8.57476e-22, 5.23901e-38)  FAILED, KNOWN (5.46791e-38), expected Fsum[37] pow(8.57476e-22, -2.28893e-39)\n    test 1168 pow(1): Fsum[842] pow(5.41135e-06, -2.14076e-22)\n    test 1169 pow(0): Fsum[1] pow(1.0, 0)\n    test 1170 ceil: True\n    test 1171 floor: True\n    test 1172 divmod: Fsum[849] (0.0, 0)\n    test 1173 residual: 0\n    test 1174 is_exact: True\n    test 1175 Fsum: 5.41134812028e-06\n    test 1176 Fsum: 5.41134812028e-06\n\n    test 1177 fsum: -5.26525355642e-06\n    test 1178 sum96: 3.88533778445e+84  FAILED, KNOWN, expected -5.26525355642e-06\n    test 1179 pow(4): Fsum[31] pow(7.68559e-22, -3.58049e-38)  FAILED, KNOWN (4.0221e-38), expected Fsum[31] pow(7.68559e-22, 4.41607e-39)\n    test 1180 pow(1): Fsum[842] pow(-5.26525e-06, 3.68163e-22)\n    test 1181 pow(0): Fsum[1] pow(1.0, 0)\n    test 1182 ceil: True\n    test 1183 floor: True\n    test 1184 divmod: Fsum[848] (0.0, 0)\n    test 1185 residual: 0\n    test 1186 is_exact: True\n    test 1187 Fsum: -5.26525355642e-06\n    test 1188 Fsum: -5.26525355642e-06\n\n    test 1189 fsum: 0.00130654822347\n    test 1190 sum97: -254.548893214  FAILED, KNOWN, expected 0.00130654822347\n    test 1191 pow(4): Fsum[39] pow(2.91408e-12, -5.26974e-29)  FAILED, KNOWN (3.61486e-28), expected Fsum[39] pow(2.91408e-12, -1.02864e-29)\n    test 1192 pow(1): Fsum[842] pow(0.00130655, -4.16716e-20)\n    test 1193 pow(0): Fsum[1] pow(1.0, 0)\n    test 1194 ceil: True\n    test 1195 floor: True\n    test 1196 divmod: Fsum[849] (0.0, 0)\n    test 1197 residual: 0\n    test 1198 is_exact: True\n    test 1199 Fsum: 0.00130654822347\n    test 1200 Fsum: 0.00130654822347\n\n    test 1201 fsum: 0.000340869076349\n    test 1202 sum98: 0.0887966953611  FAILED, KNOWN, expected 0.000340869076349\n    test 1203 pow(4): Fsum[36] pow(1.35005e-14, -5.23834e-31)  FAILED, KNOWN (3.99371e-32), expected Fsum[36] pow(1.35005e-14, -5.63771e-31)\n    test 1204 pow(1): Fsum[842] pow(0.000340869, 1.61069e-20)\n    test 1205 pow(0): Fsum[1] pow(1.0, 0)\n    test 1206 ceil: True\n    test 1207 floor: True\n    test 1208 divmod: Fsum[848] (0.0, 0)\n    test 1209 residual: 0\n    test 1210 is_exact: True\n    test 1211 Fsum: 0.000340869076349\n    test 1212 Fsum: 0.000340869076349\n\n    test 1213 fsum: -6.44144533209e-09\n    test 1214 sum99: -3.88533778445e+84  FAILED, KNOWN, expected -6.44144533209e-09\n    test 1215 pow(4): Fsum[24] pow(1.7216e-33, 1.49932e-49)  FAILED, KNOWN (4.28512e-49), expected Fsum[24] pow(1.7216e-33, -1.05784e-49)\n    test 1216 pow(1): Fsum[842] pow(-6.44145e-09, 3.38141e-25)\n    test 1217 pow(0): Fsum[1] pow(1.0, 0)\n    test 1218 ceil: True\n    test 1219 floor: True\n    test 1220 divmod: Fsum[848] (0.0, 0)\n    test 1221 residual: 0\n    test 1222 is_exact: True\n    test 1223 Fsum: -6.44144533209e-09\n    test 1224 Fsum: -6.44144533209e-09\n\n    test 1225 fsum: -1.65667214274e-05\n    test 1226 sum100: 3.88533778445e+84  FAILED, KNOWN, expected -1.65667214274e-05\n    test 1227 pow(4): Fsum[32] pow(7.53262e-20, 1.77664e-36)\n    test 1228 pow(1): Fsum[842] pow(-1.65667e-05, -9.76852e-23)\n    test 1229 pow(0): Fsum[1] pow(1.0, 0)\n    test 1230 ceil: True\n    test 1231 floor: True\n    test 1232 divmod: Fsum[850] (0.0, 0)\n    test 1233 residual: 0\n    test 1234 is_exact: True\n    test 1235 Fsum: -1.65667214274e-05\n    test 1236 Fsum: -1.65667214274e-05\n    test 1237 fmul: 2.74456259\n\n    test 1238 len1: 4\n    test 1239 FSum+: 4.0\n    test 1240 FSum-: 2.0\n    test 1241 FSum-: 0.0\n    test 1242 FSum*: 4.0\n    test 1243 copy(<type 'type'>): (<class 'pygeodesy.fsums.Fsum'>, True)\n    test 1244 ._fint2: (4, 0)\n    test 1245 ._fprs: 4.0\n    test 1246 ._fprs2: (4.0, 0)\n    test 1247 ._n: 5\n    test 1248 ._ps: [4.0]\n    test 1249 Fsum.copy(): (<class 'pygeodesy.fsums.Fsum'>, True)\n    test 1250 ._fint2: (4, 0)\n    test 1251 ._fprs: 4.0\n    test 1252 ._fprs2: (4.0, 0)\n    test 1253 ._n: 5\n    test 1254 ._ps: [4.0]\n    test 1255 len2: 8\n    test 1256 FSum+: 8.0\n    test 1257 FSum-: 4.0\n    test 1258 FSum-: 0.0\n    test 1259 FSum*: 8.0\n    test 1260 copy(<type 'type'>): (<class 'pygeodesy.fsums.Fsum'>, True)\n    test 1261 ._fint2: (8, 0)\n    test 1262 ._fprs: 8.0\n    test 1263 ._fprs2: (8.0, 0)\n    test 1264 ._n: 9\n    test 1265 ._ps: [8.0]\n    test 1266 Fsum.copy(): (<class 'pygeodesy.fsums.Fsum'>, True)\n    test 1267 ._fint2: (8, 0)\n    test 1268 ._fprs: 8.0\n    test 1269 ._fprs2: (8.0, 0)\n    test 1270 ._n: 9\n    test 1271 ._ps: [8.0]\n    test 1272 len3: 16\n    test 1273 FSum+: 16.0\n    test 1274 FSum-: 8.0\n    test 1275 FSum-: 0.0\n    test 1276 FSum*: 16.0\n    test 1277 copy(<type 'type'>): (<class 'pygeodesy.fsums.Fsum'>, True)\n    test 1278 ._fint2: (16, 0)\n    test 1279 ._fprs: 16.0\n    test 1280 ._fprs2: (16.0, 0)\n    test 1281 ._n: 17\n    test 1282 ._ps: [16.0]\n    test 1283 Fsum.copy(): (<class 'pygeodesy.fsums.Fsum'>, True)\n    test 1284 ._fint2: (16, 0)\n    test 1285 ._fprs: 16.0\n    test 1286 ._fprs2: (16.0, 0)\n    test 1287 ._n: 17\n    test 1288 ._ps: [16.0]\n    test 1289 len4: 32\n    test 1290 FSum+: 32.0\n    test 1291 FSum-: 16.0\n    test 1292 FSum-: 0.0\n    test 1293 FSum*: 32.0\n    test 1294 copy(<type 'type'>): (<class 'pygeodesy.fsums.Fsum'>, True)\n    test 1295 ._fint2: (32, 0)\n    test 1296 ._fprs: 32.0\n    test 1297 ._fprs2: (32.0, 0)\n    test 1298 ._n: 33\n    test 1299 ._ps: [32.0]\n    test 1300 Fsum.copy(): (<class 'pygeodesy.fsums.Fsum'>, True)\n    test 1301 ._fint2: (32, 0)\n    test 1302 ._fprs: 32.0\n    test 1303 ._fprs2: (32.0, 0)\n    test 1304 ._n: 33\n    test 1305 ._ps: [32.0]\n    test 1306 len5: 64\n    test 1307 FSum+: 64.0\n    test 1308 FSum-: 32.0\n    test 1309 FSum-: 0.0\n    test 1310 FSum*: 64.0\n    test 1311 copy(<type 'type'>): (<class 'pygeodesy.fsums.Fsum'>, True)\n    test 1312 ._fint2: (64, 0)\n    test 1313 ._fprs: 64.0\n    test 1314 ._fprs2: (64.0, 0)\n    test 1315 ._n: 65\n    test 1316 ._ps: [64.0]\n    test 1317 Fsum.copy(): (<class 'pygeodesy.fsums.Fsum'>, True)\n    test 1318 ._fint2: (64, 0)\n    test 1319 ._fprs: 64.0\n    test 1320 ._fprs2: (64.0, 0)\n    test 1321 ._n: 65\n    test 1322 ._ps: [64.0]\n    test 1323 len6: 128\n    test 1324 FSum+: 128.0\n    test 1325 FSum-: 64.0\n    test 1326 FSum-: 0.0\n    test 1327 FSum*: 128.0\n    test 1328 copy(<type 'type'>): (<class 'pygeodesy.fsums.Fsum'>, True)\n    test 1329 ._fint2: (128, 0)\n    test 1330 ._fprs: 128.0\n    test 1331 ._fprs2: (128.0, 0)\n    test 1332 ._n: 129\n    test 1333 ._ps: [128.0]\n    test 1334 Fsum.copy(): (<class 'pygeodesy.fsums.Fsum'>, True)\n    test 1335 ._fint2: (128, 0)\n    test 1336 ._fprs: 128.0\n    test 1337 ._fprs2: (128.0, 0)\n    test 1338 ._n: 129\n    test 1339 ._ps: [128.0]\n    test 1340 len7: 256\n    test 1341 FSum+: 256.0\n    test 1342 FSum-: 128.0\n    test 1343 FSum-: 0.0\n    test 1344 FSum*: 256.0\n    test 1345 copy(<type 'type'>): (<class 'pygeodesy.fsums.Fsum'>, True)\n    test 1346 ._fint2: (256, 0)\n    test 1347 ._fprs: 256.0\n    test 1348 ._fprs2: (256.0, 0)\n    test 1349 ._n: 257\n    test 1350 ._ps: [256.0]\n    test 1351 Fsum.copy(): (<class 'pygeodesy.fsums.Fsum'>, True)\n    test 1352 ._fint2: (256, 0)\n    test 1353 ._fprs: 256.0\n    test 1354 ._fprs2: (256.0, 0)\n    test 1355 ._n: 257\n    test 1356 ._ps: [256.0]\n    test 1357 len8: 512\n    test 1358 FSum+: 512.0\n    test 1359 FSum-: 256.0\n    test 1360 FSum-: 0.0\n    test 1361 FSum*: 512.0\n    test 1362 copy(<type 'type'>): (<class 'pygeodesy.fsums.Fsum'>, True)\n    test 1363 ._fint2: (512, 0)\n    test 1364 ._fprs: 512.0\n    test 1365 ._fprs2: (512.0, 0)\n    test 1366 ._n: 513\n    test 1367 ._ps: [512.0]\n    test 1368 Fsum.copy(): (<class 'pygeodesy.fsums.Fsum'>, True)\n    test 1369 ._fint2: (512, 0)\n    test 1370 ._fprs: 512.0\n    test 1371 ._fprs2: (512.0, 0)\n    test 1372 ._n: 513\n    test 1373 ._ps: [512.0]\n    test 1374 len: 513\n    test 1375 partials: (512.0,)\n\n    test 1376 FSum0: 0.0\n    test 1377 FSum0: 0.0\n    test 1378 FSum0: 0.0\n    test 1379 FSum0: 0.0\n    test 1380 FSum0: 0.0\n    test 1381 sizeof: 453  FAILED, KNOWN, expected 413\n    test 1382 FSum0: 0.0\n    test 1383 Fsum#: 514\n    test 1384 Fsum#: 1\n    test 1385 FSum.: Fsum[514] (0.0, 0)\n    test 1386 FsumI: 0.0\n    test 1387 FsumR: 0.0\n    test 1388 radd: 514.0\n    test 1389 rdiv: 3.91e-03\n    test 1390 rmul: 1024.0\n    test 1391 rpow: 1.0\n    test 1392 rsub: -510.0\n    test 1393 _2sum: OverflowError('_2sum(1.0e+308, inf): not finite (inf)',)\n    test 1394 F(\"nan\"): TypeError('0.0 + nan: invalid',)\n    test 1395 F(None): TypeError('0.0 + None: invalid',)\n\n    test 1396 ints: 1\n    test 1397 ints: 1\n    test 1398 fsum : -3.58905099e+19  FAILED, KNOWN, expected 1.0\n    test 1399 fsum_: -3.58905099e+19  FAILED, KNOWN, expected 1.0\n    test 1400 Fsum : -3.58905099e+19  FAILED, KNOWN, expected 1.0\n    test 1401 sum  : -3.68934881e+19  FAILED, KNOWN, expected 1.0\n    test 1402 F * 2: 4.0000\n    test 1403 F / 2: 2.0000\n    test 1404 F / F: True\n    test 1405 F / F: 1.0\n    test 1406 F / F: 2.0\n    test 1407 abs  : Fsum[4] __abs__(2.0, 0)  FAILED, KNOWN, expected Fsum[4] (2.0, 0)\n    test 1408 int  : 2\n    test 1409 eq F: True\n    test 1410 ge F: True\n    test 1411 gt F: False\n    test 1412 le F: True\n    test 1413 lt F: False\n    test 1414 ne F: False\n    test 1415 if F: True\n    test 1416 gt 0: True\n    test 1417 lt 0: False\n    test 1418 eq 0: False\n    test 1419 lt 0: True\n    test 1420 gt 0: True\n    test 1421 gt 0: False\n    test 1422 signOf: 1\n    test 1423 signOf: -1\n    test 1424 ceil : 3.0\n    test 1425 floor: 2.0\n\n    test 1426 divmod : (2.0, <Fsum[2] __divmod__(0.0, 0) at 0x7f87c8361ed0>)\n    test 1427 divmod : (2.0, <Fsum[2] __divmod__(0.0, 0) at 0x7f87c8361f90>)\n    test 1428 rdivmod : (0.0, <Fsum[1] __rdivmod__(2, 0) at 0x7f87c8361f90>)\n    test 1429 divmod : (-2.0, <Fsum[2] __divmod__(1.0, 0) at 0x7f87c8361ed0>)\n    test 1430 imod: Fsum[2] __imod__(0.0, 0)\n    test 1431 mod : Fsum[2] __mod__(0.0, 0)\n    test 1432 rmod: Fsum[1] __rmod__(2, 0)\n    test 1433 neg : Fsum[1] __neg__(-2, 0)\n    test 1434 pos : Fsum[4] (2.0, 0)\n    test 1435 is_int: True\n    test 1436 float: 9e-102\n    test 1437 is_int: False\n    test 1438 round1: 0.0\n    test 1439 fset_: Fsum[4] (9.0e-102, 5.9483e-118)\n\n    test 1440 F //: Fsum[1] __floordiv__(-1, 0)\n    test 1441 // F: Fsum[1] __rfloordiv__(-2, 0)\n    test 1442 F //=: Fsum[1] m(-2, 0)\n    test 1443 F / 0: ZeroDivisionError('Fsum[2] __truediv__(9.0e-102, 5.9483e-118) / 0: float division by zero',)\n    test 1444 pow(F, +): Fsum[1] __pow__(6.36662e-213, 0)\n    test 1445 pow(F, -): Fsum[1] __pow__(1.11111e+101, 0)\n    test 1446 pow(-F, F): ValueError('-2.0 ** 9e-102: negative number cannot be raised to a fractional power',)\n    test 1447 pow(F, F): Fsum[1] __pow__(1.0, 0)\n    test 1448 pow(F, f, i): TypeError('Fsum[2] __pow__(9.0e-102, 5.9483e-118) ** 2.1: mod (2), pow() 3rd argument not allowed unless all arguments are integers',)\n    test 1449 pow(F, F, i): TypeError('-2.0 ** Fsum[1] (2.1, 0): mod (2), pow() 3rd argument not allowed unless all arguments are integers',)\n    test 1450 pow(F, i, None): Fsum[1] __pow__(4.0, 0)\n    test 1451 Z**-2: ZeroDivisionError('0.0 ** -2: 0.0 cannot be raised to a negative power',)\n    test 1452 pow(0): 1.000\n    test 1453 pow(1): -3.000\n    test 1454 pow(2): 9.000\n    test 1455 pow(21): -10460353203.000\n    test 1456 pow(-5): -0.004\n    test 1457 **= 2: 9.000\n    test 1458 F0**0: Fsum[1] __pow__(1, 0)\n    test 1459 F0**0.: Fsum[1] __pow__(1.0, 0)\n    test 1460 0**F0: Fsum[1] __rpow__(1.0, 0)\n    test 1461 0.**F0: Fsum[1] __rpow__(1.0, 0)\n    test 1462 F0**0: Fsum[1] pow(1, 0)\n    test 1463 F0**2: Fsum[1] pow(0.0, 0)\n    test 1464 F0**0.: Fsum[1] pow(1.0, 0)\n    test 1465 F0**3.: Fsum[1] pow(0.0, 0)\n    test 1466 F0**0.: Fsum[1] pow(1, 0)\n    test 1467 2**F0: Fsum[1] __rpow__(1.0, 0)\n    test 1468 2.**F0: Fsum[1] __rpow__(1.0, 0)\n    test 1469 F2**0: Fsum[1] __pow__(1, 0)\n    test 1470 F2.**0: Fsum[1] __pow__(1, 0)\n    test 1471 F2**F2: Fsum[1] __pow__(4, 0)\n    test 1472 F2**F2: Fsum[1] __rpow__(4, 0)\n    test 1473 F**2: 3125.000\n    test 1474 F**-1: 0.200\n    test 1475 F**-2: 0.040\n    test 1476 F**-2.5: 0.018\n    test 1477 F** 2.5: 55.902\n    test 1478 pow(2): 25.000\n    test 1479 pow(2.5): 55.902\n    test 1480 pow(F): 3125.000\n    test 1481 3pow(2, None): Fsum[1] pow(25, 0)\n    test 1482 3pow(2.5, None): Fsum[1] pow(55.902, 0)\n    test 1483 3pow(2, 20): Fsum[1] pow(5, 0)\n\n    test 1484 fsum(): 5.0\n    test 1485 fsum(): True\n    test 1486 fsum2(): (5.0, 0)\n    test 1487 fsum2(): True\n    test 1488 fsum2(): Fsum2Tuple(fsum=5.0, residual=0)\n    test 1489 Fsum2Tuple: ('fsum', 5.0, <class 'pygeodesy.unitsBase.Float'>)\n    test 1490 Fsum2Tuple: ('residual', 0, <class 'pygeodesy.unitsBase.Int'>)\n    test 1491 fmul(x): 25.0\n    test 1492 fmul(F): 62.5\n    test 1493 fadd(F): 65.0\n    test 1494 fsub(F): 62.5\n    test 1495 Fsum(F): 125.0\n\n    test 1496 ratio: (-27021597764141911, 9007199254740992)\n    test 1497 ratio: Fsum[1] (-3, 0)  FAILED, KNOWN, expected Fsum[4] (-3, 8.80732e-17)\n    test 1498 int_float: -3.000\n    test 1499 fint: Fsum[1] fint(-3, 0)\n    test 1500 fint2: (-3, 0)\n    test 1501 f2mul_: Fsum[15] f2mul_(12.0, -3.52293e-16)  FAILED, KNOWN, expected (12.0, ...\n    test 1502 f2mul_: Fsum[1] f2mul_(-inf, 0)  FAILED, KNOWN, expected NINF\n    test 1503 f2mul_: Fsum[1] f2mul_(nan, 0)  FAILED, KNOWN, expected NAN\n    test 1504 += NAN: Fsum[5] (nan, 0.0)  FAILED, KNOWN, expected nan\n    test 1505 -= NAN: Fsum[5] (nan, 0.0)  FAILED, KNOWN, expected nan\n    test 1506 pow3: Fsum[1] __pow__(3, 0)\n\n    test 1507 is_math_fsum: True\n\n    test 1508 RESIDUAL: 0.0\n    test 1509 RESIDUAL: 0.0\n    test 1510 RESIDUAL: 1e-32\n    test 1511 RESIDUAL: 9.0\n    test 1512 RESIDUAL: sorted\n\n    test 1513 ResidualError: 1 / Fsum[2] sorted(1.0e+17, 1.0): non-zero residual (1.0), ratio (1.0e-17) exceeds RESIDUAL (-1e-18) threshold\n\n    test 1514 recursive: 8.0\n    test 1515 recursive: 16.0\n\n    test 1516 +=F2T: 17.0\n    test 1517 -=F2T: 16.0\n    test 1518 *=F2T: 16.0\n    test 1519 /=F2T: 16.0\n    test 1520 **F2T: 16.0\n    test 1521 %=F2T: 16.0\n\n    test 1522 abs(T): Fsum[2] __abs__(1.0, 0)\n    test 1523 bool(T): True\n    test 1524 float(T): 1.0\n    test 1525 T.Fsum_: Fsum[2] (2.0, 0)\n    test 1526 int(T): 1\n    test 1527 -T: Fsum[1] __neg__(-1, 0)\n    test 1528 +T: Fsum[2] (1.0, 0)\n    test 1529 as_i_: (4503599627370497, 4503599627370496)\n    test 1530 is_x?: True\n    test 1531 is_i?: False\n\n    test 1532 F==T: False\n    test 1533 F>=T: True\n    test 1534 F> T: True\n    test 1535 F<=T: False\n    test 1536 F< T: False\n    test 1537 F!=T: True\n\n    test 1538 T._fint2: (1, 2.220446049250313e-16)\n    test 1539 T._fprs2: (1.0, 0)\n    test 1540 T._n: 2\n    test 1541 T._ps: [1.0000000000000002]\n    test 1542 T._ps_neg: [-1.0000000000000002]\n    test 1543 T.signOf: 1\n\n    test 1544 f2product: (False, None)\n    test 1545 nonfinite*: (True, None)\n    test 1546 Nones: (None, None)\n\n    test 1547 fma_: Fsum[1] (69.0, 0)\n\n    179 of 1547 testFsums.py tests (11.6%) FAILED, ALL KNOWN (pygeodesy 26.3.26 Python 2.7.18 64bit arm64_x86_64 geographiclib 1.50 numpy 1.16.6 scipy 1.2.2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 -W  default) 1.035 sec\nrunning /Library/Framewo....ython -W default ~/PyGeodesy/test/testGars.py\n\n    testing testGars.py 23.03.27 (module pygeodesy.gars 25.05.07)\n    test 1 Garef: 381NH45\n    test 2 Garef: 381NH45\n    test 3 Garef: Garef('381NH45')\n    test 4 Garef: '381NH45'\n    test 5 Garef: '381NH45'  FAILED, KNOWN, expected Garef('381NH45')\n    test 6 Garef.precision: 2\n    test 7 copy(<type 'type'>): (<class 'pygeodesy.gars.Garef'>, True)\n    test 8 Garef.copy(): (<class 'pygeodesy.gars.Garef'>, True)\n    test 9 Garef.latlon: 57.64911, 10.40744\n    test 10 Garef.toLatLon: LatLon(57°38′56.8″N, 010°24′26.78″E)\n    test 11 codec3: 381NH45\n    test 12 decode3: 57.625, 10.375, 2.0\n    test 13 encode: 381NH45\n    test 14 Garef(LatLon): 381NH45\n    test 15 copy(<type 'type'>): (<class 'pygeodesy.gars.Garef'>, True)\n    test 16 Garef.copy(): (<class 'pygeodesy.gars.Garef'>, True)\n    test 17 precision: -1  FAILED, KNOWN, expected 0\n    test 18 resolution: 30′\n    test 19 precision: 0\n    test 20 resolution: 30′\n    test 21 precision: 1\n    test 22 resolution: 15′\n    test 23 precision: 2\n    test 24 resolution: 5′\n    test 25 precision: 3  FAILED, KNOWN, expected 2\n    test 26 resolution: 5′\n\n    3 of 26 testGars.py tests (11.5%) FAILED, ALL KNOWN (pygeodesy 26.3.26 Python 2.7.18 64bit arm64_x86_64 geographiclib 1.50 numpy 1.16.6 scipy 1.2.2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 -W  default) 707.865 us\nrunning /Library/Framewo....ython -W default ~/PyGeodesy/test/testGeodesici.py\n\n    testing testGeodesici.py 25.05.09 (module pygeodesy.geodesici 26.02.04)\n\n    testGeodesicExact(pygeodesy.geodesici, 26.02.04)\n    test 1 Intersectool: geodesic=GeodesicExact(name='', caps=0, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), C4order=30), IntersectTool='/opt/local/bin/IntersectTool', invokation=0, status=None\n\n    test 2 Closest.1.sB: 2.70933e+06\n    test 3 Closest.1.sA: 4.2253e+06\n    test 4 Closest.1.c: 0\n\n    test 5 Closest5.1.A: {azi1: 45.0, lat1: 0.0, latX: 25.92918, lon1: 0.0, lonX: 28.89426, s1X: 4225301.108897}\n    test 6 Closest5.1.B: {azi1: 135.0, lat1: 45.0, latX: 25.92918, lon1: 10.0, lonX: 28.89426, s1X: 2709328.885611}\n    test 7 Closest5.1.sAB: 0\n    test 8 Closest5.1.aAB: 0\n    test 9 Closest5.1.c: 0\n\n    test 10 Closest.2.sB: -3.31125e+06\n    test 11 Closest.2.sA: 6.05805e+06\n    test 12 Closest.2.c: 0\n\n    test 13 Closest5.2.A: {azi1: 212.3, lat1: 50.0, latX: -0.0, lon1: -4.0, lonX: -29.745492, s1X: 6058048.653081}\n    test 14 Closest5.2.B: {azi1: 90.0, lat1: 0.0, latX: -0.0, lon1: 0.0, lonX: -29.745492, s1X: -3311252.995823}\n    test 15 Closest5.2.sAB: 1e-09\n    test 16 Closest5.2.aAB: 9.01337e-15\n    test 17 Closest5.2.c: 0\n\n    test 18 All[0].sX0: 1.45468e+07\n    test 19 All[0].sB: 1.40522e+07\n    test 20 All[0].sA: -494582\n    test 21 All[0].c: 0\n    test 22 All[0].iteration: 0\n\n    test 23 All[1].sX0: 2.54615e+07\n    test 24 All[1].sB: -5.93234e+06\n    test 25 All[1].sA: 1.95291e+07\n    test 26 All[1].c: 0\n    test 27 All[1].iteration: 1\n\n    test 28 All[2].sX0: 2.64502e+07\n    test 29 All[2].sB: -2.59556e+07\n    test 30 All[2].sA: -494582\n    test 31 All[2].c: 0\n    test 32 All[2].iteration: 2\n\n    test 33 All[3].sX0: 2.64889e+07\n    test 34 All[3].sB: -5.97086e+06\n    test 35 All[3].sA: -2.05181e+07\n    test 36 All[3].c: 0\n    test 37 All[3].iteration: 3\n\n    test 38 All5[0].A: {azi1: 212.3, lat1: 50.0, latX: 53.692598, lon1: -4.0, lonX: -0.0, s1X: -494582.492241}\n    test 39 All5[0].B: {azi1: 0.0, lat1: 0.0, latX: 53.692598, lon1: 180.0, lonX: 0.0, s1X: 14052229.965229}\n    test 40 All5[0].sAB: 1.2e-09\n    test 41 All5[0].aAB: 1.07925e-14\n    test 42 All5[0].c: 0\n    test 43 All5[0].iteration: None\n\n    test 44 All5[1].A: {azi1: 212.3, lat1: 50.0, latX: -53.518675, lon1: -4.0, lonX: -180.0, s1X: 19529110.042937}\n    test 45 All5[1].B: {azi1: 0.0, lat1: 0.0, latX: -53.518675, lon1: 180.0, lonX: 180.0, s1X: -5932344.259165}\n    test 46 All5[1].sAB: 2.6e-09\n    test 47 All5[1].aAB: 2.33954e-14\n    test 48 All5[1].c: 0\n    test 49 All5[1].iteration: None\n\n    test 50 All5[2].A: {azi1: 212.3, lat1: 50.0, latX: 53.692598, lon1: -4.0, lonX: -0.0, s1X: -494582.492241}\n    test 51 All5[2].B: {azi1: 0.0, lat1: 0.0, latX: 53.692598, lon1: 180.0, lonX: 0.0, s1X: -25955632.952022}\n    test 52 All5[2].sAB: 1.8e-09\n    test 53 All5[2].aAB: 1.61888e-14\n    test 54 All5[2].c: 0\n    test 55 All5[2].iteration: None\n\n    test 56 All5[3].A: {azi1: 212.3, lat1: 50.0, latX: -53.864737, lon1: -4.0, lonX: -180.0, s1X: -20518081.166643}\n    test 57 All5[3].B: {azi1: 0.0, lat1: 0.0, latX: -53.864737, lon1: 180.0, lonX: 180.0, s1X: -5970860.779079}\n    test 58 All5[3].sAB: 1e-10\n    test 59 All5[3].aAB: 0\n    test 60 All5[3].c: 0\n    test 61 All5[3].iteration: None\n\n    test 62 Middle.sX0: 0\n    test 63 Middle.kB: 0\n    test 64 Middle.c: 0\n    test 65 Middle.sB: 5.53684e+06\n    test 66 Middle.sA: 782555\n    test 67 Middle.kA: 0\n    test 68 Middle.k: 0\n\n    test 69 Middle5.A: {a12: 14.106434, a1M: 7.053396, azi1: 44.75191, azi2: 45.629037, aziM: 44.969535, lat1: 0.0, lat2: 10.0, latM: 5.019509, lon1: 0.0, lon2: 10.0, lonM: 4.961883, m12: 780579.492953, M12: 0.992432, M21: 0.992432, s12: 1565109.099218, s1M: 782554.549609}\n    test 70 Middle5.B: {a12: 99.810444, a1M: 49.869061, azi1: 180.0, azi2: 180.0, aziM: 180.0, lat1: 50.0, lat2: -50.0, latM: 0.036282, lon1: -4.0, lon2: -4.0, lonM: -4.0, m12: 4864571.105922, M12: 0.645508, M21: 0.644537, s12: 11073670.322999, s1M: 5536835.161499}\n    test 71 Middle5.sMM: 1.13857e+06\n    test 72 Middle5.aMM: 10.2623\n    test 73 Middle5.c: 0\n\n    test 74 Segment.kA: -1\n    test 75 Segment.kB: 0\n    test 76 Segment.c: 0\n    test 77 Segment.sB: 5.98889e+06\n    test 78 Segment.sA: -631414\n    test 79 Segment.k: -3\n\n    test 80 Segment5.A: {k2: -1, lat1: 0.0, lat2: 10.0, latX: -4.051871, lon1: 0.0, lon2: 10.0, lonX: -4.0, s1X: -631414.26877}\n    test 81 Segment5.B: {k2: 0, lat1: 50.0, lat2: -50.0, latX: -4.051871, lon1: -4.0, lon2: -4.0, lonX: -4.0, s1X: 5988887.278435}\n    test 82 Segment5.sAB: 3e-10\n    test 83 Segment5.aAB: 2.70397e-15\n    test 84 Segment5.c: 0\n\n    test 85 intersect7s[0].A: 04.051871°S, 004.0°W\n    test 86 intersect7s[0].B: 04.051871°S, 004.0°W\n    test 87 intersect7s[0].sAB: 3e-10\n    test 88 intersect7s[0].aAB: 2.70397e-15\n    test 89 intersect7s[0].c: 0\n    test 90 intersect7s[0].kA: 0\n    test 91 intersect7s[0].kB: 0\n    test 92 intersect7s[0].iteration: None\n\n    test 93 intersect7s[1].A: 03.623464°N, 176.0°E\n    test 94 intersect7s[1].B: 03.623464°N, 176.0°E\n    test 95 intersect7s[1].sAB: 1.9e-09\n    test 96 intersect7s[1].aAB: 1.71186e-14\n    test 97 intersect7s[1].c: 0\n    test 98 intersect7s[1].kA: 0\n    test 99 intersect7s[1].kB: 0\n    test 100 intersect7s[1].iteration: None\n\n    test 101 intersect7s[2].A: 03.623464°N, 176.0°E\n    test 102 intersect7s[2].B: 03.623464°N, 176.0°E\n    test 103 intersect7s[2].sAB: 8e-10\n    test 104 intersect7s[2].aAB: 7.20783e-15\n    test 105 intersect7s[2].c: 0\n    test 106 intersect7s[2].kA: 0\n    test 107 intersect7s[2].kB: 0\n    test 108 intersect7s[2].iteration: None\n\n    test 109 intersect7s[3].A: 03.19445°S, 004.0°W\n    test 110 intersect7s[3].B: 03.19445°S, 004.0°W\n    test 111 intersect7s[3].sAB: 2.9e-09\n    test 112 intersect7s[3].aAB: 2.61385e-14\n    test 113 intersect7s[3].c: 0\n    test 114 intersect7s[3].kA: 0\n    test 115 intersect7s[3].kB: 0\n    test 116 intersect7s[3].iteration: None\n\n    test 117 Sphere.Closest.sB: -3.31802e+06\n    test 118 Sphere.Closest.sA: 6.07719e+06\n    test 119 Sphere.Closest.c: 0\n\n    test 120 Sphere.Closest5.A: {azi1: 212.3, lat1: 50.0, latX: 0.0, lon1: -4.0, lonX: -29.839663, s1X: 6077190.710199}\n    test 121 Sphere.Closest5.B: {azi1: 90.0, lat1: 0.0, latX: -0.0, lon1: 0.0, lonX: -29.839663, s1X: -3318019.115902}\n    test 122 Sphere.Closest5.sAB: 8e-10\n    test 123 Sphere.Closest5.aAB: 7.19457e-15\n    test 124 Sphere.Closest5.c: 0\n\n    test 125 invokations: 9\n\n    test 126 _Xdict2: 123\n\n    testGeodesicSolve(pygeodesy.geodesici, 26.02.04)\n    test 127 Intersector: name='', geodesic=GeodesicSolve(ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), GeodSolve='/opt/local/bin/GeodSolve', invokation=15, status=0)\n\n    test 128 Closest.1.sX0: 6.93463e+06\n    test 129 Closest.1.sB: 2.70933e+06\n    test 130 Closest.1.c: 0\n    test 131 Closest.1.sA: 4.2253e+06\n\n    test 132 Closest5.1.A: {a1X: 38.075573, azi1: 45.0, aziX: 51.790249, lat1: 0.0, latX: 25.92918, lon1: 0.0, lonX: 28.89426, s1X: 4225301.108897}  FAILED, KNOWN, expected {azi1: 45.0, lat1: 0.0, latX: 25.92918, lon1: 0.0, lonX: 28.89426, s1X: 4225301.108897}\n    test 133 Closest5.1.B: {a1X: 24.392077, azi1: 135.0, aziX: 146.182975, lat1: 45.0, latX: 25.92918, lon1: 10.0, lonX: 28.89426, s1X: 2709328.885611}  FAILED, KNOWN, expected {azi1: 135.0, lat1: 45.0, latX: 25.92918, lon1: 10.0, lonX: 28.89426, s1X: 2709328.885611}\n    test 134 Closest5.1.sAB: 0\n    test 135 Closest5.1.aAB: 0\n    test 136 Closest5.1.c: 0\n\n    test 137 Closest.2.sX0: 9.3693e+06\n    test 138 Closest.2.sB: -3.31125e+06\n    test 139 Closest.2.c: 0\n    test 140 Closest.2.sA: 6.05805e+06\n\n    test 141 Closest5.2.A: {a1X: 54.562637, azi1: -147.7, aziX: -159.869978, lat1: 50.0, latX: -0.0, lon1: -4.0, lonX: -29.745492, s1X: 6058048.653081}  FAILED, KNOWN, expected {azi1: 212.3, lat1: 50.0, latX: -0.0, lon1: -4.0, lonX: -29.745492, s1X: 6058048.653081}\n    test 142 Closest5.2.A.azi1: 212.3  FAILED, KNOWN (1.69571), expected -147.7\n    test 143 Closest5.2.B: {a1X: -29.845558, azi1: 90.0, aziX: 90.0, lat1: 0.0, latX: -0.0, lon1: 0.0, lonX: -29.745492, s1X: -3311252.995823}  FAILED, KNOWN, expected {azi1: 90.0, lat1: 0.0, latX: -0.0, lon1: 0.0, lonX: -29.745492, s1X: -3311252.995823}\n    test 144 Closest5.2.sAB: 1.2e-09  FAILED, KNOWN (2e-10), expected 1e-09\n    test 145 Closest5.2.aAB: 1.1e-14  FAILED, KNOWN (1.98663e-15), expected 9.01337e-15\n    test 146 Closest5.2.c: 0\n\n    test 147 All[0].sX0: 1.45468e+07\n    test 148 All[0].sB: 1.40522e+07\n    test 149 All[0].c: 0\n    test 150 All[0].sA: -494582\n    test 151 All[0].iteration: 4  FAILED, KNOWN (1), expected 0\n\n    test 152 All[1].sX0: 2.54615e+07\n    test 153 All[1].sB: -5.93234e+06\n    test 154 All[1].c: 0\n    test 155 All[1].sA: 1.95291e+07\n    test 156 All[1].iteration: 4  FAILED, KNOWN, expected 1\n\n    test 157 All[2].sX0: 2.64502e+07\n    test 158 All[2].sB: -2.59556e+07\n    test 159 All[2].c: 0\n    test 160 All[2].sA: -494582\n    test 161 All[2].iteration: 4  FAILED, KNOWN, expected 2\n\n    test 162 All[3].sX0: 2.64889e+07\n    test 163 All[3].sB: -5.97086e+06\n    test 164 All[3].c: 0\n    test 165 All[3].sA: -2.05181e+07\n    test 166 All[3].iteration: 4  FAILED, KNOWN, expected 3\n\n    test 167 All5[0].A: {a1X: -4.448619, azi1: -147.7, aziX: -144.55245, lat1: 50.0, latX: 53.692598, lon1: -4.0, lonX: -0.0, s1X: -494582.492241}  FAILED, KNOWN, expected {azi1: 212.3, lat1: 50.0, latX: 53.692598, lon1: -4.0, lonX: -0.0, s1X: -494582.492241}\n    test 168 All5[0].A.azi1: 212.3  FAILED, KNOWN (1.69571), expected -147.7\n    test 169 All5[0].B: {a1X: 126.399265, azi1: 0.0, aziX: 180.0, lat1: 0.0, latX: 53.692598, lon1: 180.0, lonX: 0.0, s1X: 14052229.965229}  FAILED, KNOWN, expected {azi1: 0.0, lat1: 0.0, latX: 53.692598, lon1: 180.0, lonX: 0.0, s1X: 14052229.965229}\n    test 170 All5[0].sAB: 2.6e-09  FAILED, KNOWN (1.4e-09), expected 1.2e-09\n    test 171 All5[0].aAB: 3.7e-14  FAILED, KNOWN (2.62075e-14), expected 1.07925e-14\n    test 172 All5[0].c: 0\n    test 173 All5[0].iteration: 4  FAILED, KNOWN, expected None\n\n    test 174 All5[1].A: {a1X: 175.764866, azi1: -147.7, aziX: -35.280487, lat1: 50.0, latX: -53.518675, lon1: -4.0, lonX: -180.0, s1X: 19529110.042937}  FAILED, KNOWN, expected {azi1: 212.3, lat1: 50.0, latX: -53.518675, lon1: -4.0, lonX: -180.0, s1X: 19529110.042937}\n    test 175 All5[1].A.azi1: 212.3  FAILED, KNOWN (1.69571), expected -147.7\n    test 176 All5[1].B: {a1X: -53.426639, azi1: 0.0, aziX: 0.0, lat1: 0.0, latX: -53.518675, lon1: 180.0, lonX: 180.0, s1X: -5932344.259165}  FAILED, KNOWN, expected {azi1: 0.0, lat1: 0.0, latX: -53.518675, lon1: 180.0, lonX: 180.0, s1X: -5932344.259165}\n    test 177 All5[1].sAB: 1.9e-09  FAILED, KNOWN (7e-10), expected 2.6e-09\n    test 178 All5[1].aAB: 1.7e-14  FAILED, KNOWN (6.3954e-15), expected 2.33954e-14\n    test 179 All5[1].c: 0\n    test 180 All5[1].iteration: 4  FAILED, KNOWN, expected None\n\n    test 181 All5[2].A: {a1X: -4.448619, azi1: -147.7, aziX: -144.55245, lat1: 50.0, latX: 53.692598, lon1: -4.0, lonX: 0.0, s1X: -494582.492241}  FAILED, KNOWN, expected {azi1: 212.3, lat1: 50.0, latX: 53.692598, lon1: -4.0, lonX: -0.0, s1X: -494582.492241}\n    test 182 All5[2].A.azi1: 212.3  FAILED, KNOWN (1.69571), expected -147.7\n    test 183 All5[2].B: {a1X: -233.600735, azi1: 0.0, aziX: 180.0, lat1: 0.0, latX: 53.692598, lon1: 180.0, lonX: 0.0, s1X: -25955632.952022}  FAILED, KNOWN, expected {azi1: 0.0, lat1: 0.0, latX: 53.692598, lon1: 180.0, lonX: 0.0, s1X: -25955632.952022}\n    test 184 All5[2].sAB: 1.6e-09  FAILED, KNOWN (2e-10), expected 1.8e-09\n    test 185 All5[2].aAB: 1.5e-14  FAILED, KNOWN (1.18877e-15), expected 1.61888e-14\n    test 186 All5[2].c: 0\n    test 187 All5[2].iteration: 4  FAILED, KNOWN, expected None\n\n    test 188 All5[3].A: {a1X: -184.660358, azi1: -147.7, aziX: -35.614985, lat1: 50.0, latX: -53.864737, lon1: -4.0, lonX: -180.0, s1X: -20518081.166643}  FAILED, KNOWN, expected {azi1: 212.3, lat1: 50.0, latX: -53.864737, lon1: -4.0, lonX: -180.0, s1X: -20518081.166643}\n    test 189 All5[3].A.azi1: 212.3  FAILED, KNOWN (1.69571), expected -147.7\n    test 190 All5[3].B: {a1X: -53.773048, azi1: 0.0, aziX: 0.0, lat1: 0.0, latX: -53.864737, lon1: 180.0, lonX: 180.0, s1X: -5970860.779079}  FAILED, KNOWN, expected {azi1: 0.0, lat1: 0.0, latX: -53.864737, lon1: 180.0, lonX: 180.0, s1X: -5970860.779079}\n    test 191 All5[3].sAB: 8.2e-09  FAILED, KNOWN (8.1e-09), expected 1e-10\n    test 192 All5[3].aAB: 7.4e-14  FAILED, KNOWN (7.4e-14), expected 0\n    test 193 All5[3].c: 0\n    test 194 All5[3].iteration: 4  FAILED, KNOWN, expected None\n\n    test 195 Middle.sX0: 0\n    test 196 Middle.sB: 5.54085e+06  FAILED, KNOWN (0.000724055), expected 5.53684e+06\n    test 197 Middle.c: 0\n    test 198 Middle.sA: 782555\n\n    test 199 Middle5.A: {a12: 14.106434, a1M: 7.053396, azi1: 44.75191, azi2: 45.629037, aziM: 44.969535, lat1: 0.0, lat2: 10.0, latM: 5.019509, lon1: 0.0, lon2: 10.0, lonM: 4.961883, s12: 1565109.099218, s1M: 782554.549609}  FAILED, KNOWN, expected {a12: 14.106434, a1M: 7.053396, azi1: 44.75191, azi2: 45.629037, aziM: 44.969535, lat1: 0.0, lat2: 10.0, latM: 5.019509, lon1: 0.0, lon2: 10.0, lonM: 4.961883, m12: 780579.492953, M12: 0.992432, M21: 0.992432, s12: 1565109.099218, s1M: 782554.549609}\n    test 200 Middle5.B: {a12: 99.810444, a1M: 49.905222, azi1: 180.0, azi2: 180.0, aziM: 180.0, lat1: 50.0, lat2: -50.0, latM: 0.0, lon1: -4.0, lon2: -4.0, lonM: -4.0, s12: 11081694.083368, s1M: 5540847.041684}  FAILED, KNOWN, expected {a12: 99.810444, a1M: 49.869061, azi1: 180.0, azi2: 180.0, aziM: 180.0, lat1: 50.0, lat2: -50.0, latM: 0.036282, lon1: -4.0, lon2: -4.0, lonM: -4.0, m12: 4864571.105922, M12: 0.645508, M21: 0.644537, s12: 11073670.322999, s1M: 5536835.161499}\n    test 201 Middle5.B.a1M: 49.9052218889  FAILED, KNOWN (0.000724585), expected 49.8690613164\n    test 202 Middle5.B.s12: 11081694.0834  FAILED, KNOWN (0.000724055), expected 11073670.323\n    test 203 Middle5.B.latM: 1e-15  FAILED, KNOWN (0.0362822), expected 0.0362822197973\n    test 204 Middle5.B.s1M: 5540847.04168  FAILED, KNOWN (0.000724055), expected 5536835.1615\n    test 205 Middle5.sMM: 1.14053e+06  FAILED, KNOWN (0.0017142), expected 1.13857e+06\n    test 206 Middle5.aMM: 10.2799  FAILED, KNOWN (0.00171426), expected 10.2623\n    test 207 Middle5.c: 0\n\n    test 208 Segment.sX0: 1.86201e+06\n    test 209 Segment.kB: 0\n    test 210 Segment.c: 0\n    test 211 Segment.sB: 5.98889e+06\n    test 212 Segment.sA: -631414\n    test 213 Segment.kA: -1\n    test 214 Segment.k: -3\n\n    test 215 Segment5.A: {a1X: -5.691141, azi1: 44.75191, aziX: 44.893464, k2: -1, lat1: 0.0, latX: -4.051871, lon1: 0.0, lonX: -4.0, s1X: -631414.26877}  FAILED, KNOWN, expected {k2: -1, lat1: 0.0, lat2: 10.0, latX: -4.051871, lon1: 0.0, lon2: 10.0, lonX: -4.0, s1X: -631414.26877}\n    test 216 Segment5.B: {a1X: 53.943553, azi1: 180.0, aziX: 180.0, k2: 0, lat1: 50.0, latX: -4.051871, lon1: -4.0, lonX: -4.0, s1X: 5988887.278435}  FAILED, KNOWN, expected {k2: 0, lat1: 50.0, lat2: -50.0, latX: -4.051871, lon1: -4.0, lon2: -4.0, lonX: -4.0, s1X: 5988887.278435}\n    test 217 Segment5.sAB: 0  FAILED, KNOWN (3e-10), expected 3e-10\n    test 218 Segment5.aAB: 0  FAILED, KNOWN (2.70397e-15), expected 2.70397e-15\n    test 219 Segment5.c: 0\n\n    test 220 intersect7s[0].A: 04.051871°S, 004.0°W\n    test 221 intersect7s[0].B: 04.051871°S, 004.0°W\n    test 222 intersect7s[0].sAB: 1.1e-09  FAILED, KNOWN (8e-10), expected 3e-10\n    test 223 intersect7s[0].aAB: 1e-14  FAILED, KNOWN (7.29603e-15), expected 2.70397e-15\n    test 224 intersect7s[0].c: 0\n    test 225 intersect7s[0].kA: 0\n    test 226 intersect7s[0].kB: 0\n    test 227 intersect7s[0].iteration: None\n\n    test 228 intersect7s[1].A: 03.623464°N, 176.0°E\n    test 229 intersect7s[1].B: 03.623464°N, 176.0°E\n    test 230 intersect7s[1].sAB: 1.3e-09  FAILED, KNOWN (6e-10), expected 1.9e-09\n    test 231 intersect7s[1].aAB: 1.1e-14  FAILED, KNOWN (6.1186e-15), expected 1.71186e-14\n    test 232 intersect7s[1].c: 0\n    test 233 intersect7s[1].kA: 0\n    test 234 intersect7s[1].kB: 0\n    test 235 intersect7s[1].iteration: None\n\n    test 236 intersect7s[2].A: 04.051871°S, 004.0°W  FAILED, KNOWN (1.03199), expected 03.623464°N, 176.0°E\n    test 237 intersect7s[2].B: 04.051871°S, 004.0°W  FAILED, KNOWN (1.03199), expected 03.623464°N, 176.0°E\n    test 238 intersect7s[2].sAB: 1.1e-09  FAILED, KNOWN (3e-10), expected 8e-10\n    test 239 intersect7s[2].aAB: 1e-14  FAILED, KNOWN (2.79217e-15), expected 7.20783e-15\n    test 240 intersect7s[2].c: 0\n    test 241 intersect7s[2].kA: 0\n    test 242 intersect7s[2].kB: 0\n    test 243 intersect7s[2].iteration: None\n\n    test 244 intersect7s[3].A: 04.4796°N, 176.0°E  FAILED, KNOWN (1.02993), expected 03.19445°S, 004.0°W\n    test 245 intersect7s[3].B: 04.4796°N, 176.0°E  FAILED, KNOWN (1.02993), expected 03.19445°S, 004.0°W\n    test 246 intersect7s[3].sAB: 3.4e-09  FAILED, KNOWN (5e-10), expected 2.9e-09\n    test 247 intersect7s[3].aAB: 3.1e-14  FAILED, KNOWN (4.86149e-15), expected 2.61385e-14\n    test 248 intersect7s[3].c: 0\n    test 249 intersect7s[3].kA: 0\n    test 250 intersect7s[3].kB: 0\n    test 251 intersect7s[3].iteration: None\n\n    test 252 Sphere.Closest.sX0: 9.39521e+06\n    test 253 Sphere.Closest.sB: -3.31802e+06\n    test 254 Sphere.Closest.c: 0\n    test 255 Sphere.Closest.sA: 6.07719e+06\n\n    test 256 Sphere.Closest5.A: {a1X: 54.653489, azi1: -147.7, aziX: -159.911264, lat1: 50.0, latX: 0.0, lon1: -4.0, lonX: -29.839663, s1X: 6077190.710199}  FAILED, KNOWN, expected {azi1: 212.3, lat1: 50.0, latX: 0.0, lon1: -4.0, lonX: -29.839663, s1X: 6077190.710199}\n    test 257 Sphere.Closest5.A.azi1: 212.3  FAILED, KNOWN (1.69571), expected -147.7\n    test 258 Sphere.Closest5.B: {a1X: -29.839663, azi1: 90.0, aziX: 90.0, lat1: 0.0, latX: -0.0, lon1: 0.0, lonX: -29.839663, s1X: -3318019.115902}  FAILED, KNOWN, expected {azi1: 90.0, lat1: 0.0, latX: -0.0, lon1: 0.0, lonX: -29.839663, s1X: -3318019.115902}\n    test 259 Sphere.Closest5.sAB: 1.4e-09  FAILED, KNOWN (6e-10), expected 8e-10\n    test 260 Sphere.Closest5.aAB: 1.2e-14  FAILED, KNOWN (4.80543e-15), expected 7.19457e-15\n    test 261 Sphere.Closest5.c: 0\n\n    test 262 _Xdict2: 127\n\n    testGeodesicExact(pygeodesy.geodesici, 26.02.04)\n    test 263 Intersector: name='', geodesic=GeodesicExact(name='', caps=0, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), C4order=30)\n\n    test 264 Closest.1.sX0: 6.93463e+06\n    test 265 Closest.1.sB: 2.70933e+06\n    test 266 Closest.1.c: 0\n    test 267 Closest.1.sA: 4.2253e+06\n\n    test 268 Closest5.1.A: {a1X: 38.075573, azi1: 45.0, aziX: 51.790249, lat1: 0.0, latX: 25.92918, lon1: 0.0, lonX: 28.89426, m12: 3921213.171755, M12: 0.787198, M21: 0.787384, s1X: 4225301.108897}  FAILED, KNOWN, expected {azi1: 45.0, lat1: 0.0, latX: 25.92918, lon1: 0.0, lonX: 28.89426, s1X: 4225301.108897}\n    test 269 Closest5.1.B: {a1X: 24.392077, azi1: 135.0, aziX: 146.182975, lat1: 45.0, latX: 25.92918, lon1: 10.0, lonX: 28.89426, m12: 2628412.372503, M12: 0.911005, M21: 0.910881, s1X: 2709328.885611}  FAILED, KNOWN, expected {azi1: 135.0, lat1: 45.0, latX: 25.92918, lon1: 10.0, lonX: 28.89426, s1X: 2709328.885611}\n    test 270 Closest5.1.sAB: 3.55903e-10  FAILED, KNOWN (3.55903e-10), expected 0\n    test 271 Closest5.1.aAB: 3.20583e-15  FAILED, KNOWN (3.20583e-15), expected 0\n    test 272 Closest5.1.c: 0\n\n    test 273 Closest.2.sX0: 9.3693e+06\n    test 274 Closest.2.sB: -3.31125e+06\n    test 275 Closest.2.c: 0\n    test 276 Closest.2.sA: 6.05805e+06\n\n    test 277 Closest5.2.A: {a1X: 54.562637, azi1: -147.7, aziX: -159.869978, lat1: 50.0, latX: 0.0, lon1: -4.0, lonX: -29.745492, m12: 5184118.430287, M12: 0.58097, M21: 0.579813, s1X: 6058048.653081}  FAILED, KNOWN, expected {azi1: 212.3, lat1: 50.0, latX: -0.0, lon1: -4.0, lonX: -29.745492, s1X: 6058048.653081}\n    test 278 Closest5.2.A.azi1: 212.3  FAILED, KNOWN (1.69571), expected -147.7\n    test 279 Closest5.2.B: {a1X: -29.845558, azi1: 90.0, aziX: 90.0, lat1: 0.0, latX: -0.0, lon1: 0.0, lonX: -29.745492, m12: -3163525.514556, M12: 0.86737, M21: 0.86737, s1X: -3311252.995823}  FAILED, KNOWN, expected {azi1: 90.0, lat1: 0.0, latX: -0.0, lon1: 0.0, lonX: -29.745492, s1X: -3311252.995823}\n    test 280 Closest5.2.sAB: 7.90973e-10  FAILED, KNOWN (2.09027e-10), expected 1e-09\n    test 281 Closest5.2.aAB: 7.12933e-15  FAILED, KNOWN (1.88404e-15), expected 9.01337e-15\n    test 282 Closest5.2.c: 0\n\n    test 283 All[0].sX0: 1.45468e+07\n    test 284 All[0].sB: 1.40522e+07\n    test 285 All[0].c: 0\n    test 286 All[0].sA: -494582\n    test 287 All[0].iteration: 4  FAILED, KNOWN (1), expected 0\n\n    test 288 All[1].sX0: 2.54615e+07\n    test 289 All[1].sB: -5.93234e+06\n    test 290 All[1].c: 0\n    test 291 All[1].sA: 1.95291e+07\n    test 292 All[1].iteration: 4  FAILED, KNOWN, expected 1\n\n    test 293 All[2].sX0: 2.64502e+07\n    test 294 All[2].sB: -2.59556e+07\n    test 295 All[2].c: 0\n    test 296 All[2].sA: -494582\n    test 297 All[2].iteration: 4  FAILED, KNOWN, expected 2\n\n    test 298 All[3].sX0: 2.64889e+07\n    test 299 All[3].sB: -5.97086e+06\n    test 300 All[3].c: 0\n    test 301 All[3].sA: -2.05181e+07\n    test 302 All[3].iteration: 4  FAILED, KNOWN, expected 3\n\n    test 303 All5[0].A: {a1X: -4.448619, azi1: -147.7, aziX: -144.55245, lat1: 50.0, latX: 53.692598, lon1: -4.0, lonX: -0.0, m12: -494087.771694, M12: 0.996999, M21: 0.997, s1X: -494582.492241}  FAILED, KNOWN, expected {azi1: 212.3, lat1: 50.0, latX: 53.692598, lon1: -4.0, lonX: -0.0, s1X: -494582.492241}\n    test 304 All5[0].A.azi1: 212.3  FAILED, KNOWN (1.69571), expected -147.7\n    test 305 All5[0].B: {a1X: 126.399265, azi1: 0.0, aziX: 180.0, lat1: 0.0, latX: 53.692598, lon1: 180.0, lonX: 0.0, m12: 5161737.753947, M12: -0.593409, M21: -0.586165, s1X: 14052229.965229}  FAILED, KNOWN, expected {azi1: 0.0, lat1: 0.0, latX: 53.692598, lon1: 180.0, lonX: 0.0, s1X: 14052229.965229}\n    test 306 All5[0].sAB: 1.09328e-09  FAILED, KNOWN (1.06721e-10), expected 1.2e-09\n    test 307 All5[0].aAB: 9.83269e-15  FAILED, KNOWN (9.59822e-16), expected 1.07925e-14\n    test 308 All5[0].c: 0\n    test 309 All5[0].iteration: 4  FAILED, KNOWN, expected None\n\n    test 310 All5[1].A: {a1X: 175.764866, azi1: -147.7, aziX: -35.280487, lat1: 50.0, latX: -53.518675, lon1: -4.0, lonX: 180.0, m12: 488198.978244, M12: -1.001203, M21: -0.992673, s1X: 19529110.042937}  FAILED, KNOWN, expected {azi1: 212.3, lat1: 50.0, latX: -53.518675, lon1: -4.0, lonX: -180.0, s1X: 19529110.042937}\n    test 311 All5[1].A.lonX: -180.0  FAILED, KNOWN (2), expected 180.0\n    test 312 All5[1].A.azi1: 212.3  FAILED, KNOWN (1.69571), expected -147.7\n    test 313 All5[1].B: {a1X: -53.426639, azi1: 0.0, aziX: 0.0, lat1: 0.0, latX: -53.518675, lon1: 180.0, lonX: 180.0, m12: -5110370.613686, M12: 0.595852, M21: 0.597076, s1X: -5932344.259165}  FAILED, KNOWN, expected {azi1: 0.0, lat1: 0.0, latX: -53.518675, lon1: 180.0, lonX: 180.0, s1X: -5932344.259165}\n    test 314 All5[1].sAB: 2.16323e-09  FAILED, KNOWN (4.36775e-10), expected 2.6e-09\n    test 315 All5[1].aAB: 1.94557e-14  FAILED, KNOWN (3.93968e-15), expected 2.33954e-14\n    test 316 All5[1].c: 0\n    test 317 All5[1].iteration: 4  FAILED, KNOWN, expected None\n\n    test 318 All5[2].A: {a1X: -4.448619, azi1: -147.7, aziX: -144.55245, lat1: 50.0, latX: 53.692598, lon1: -4.0, lonX: -0.0, m12: -494087.771694, M12: 0.996999, M21: 0.997, s1X: -494582.492241}  FAILED, KNOWN, expected {azi1: 212.3, lat1: 50.0, latX: 53.692598, lon1: -4.0, lonX: -0.0, s1X: -494582.492241}\n    test 319 All5[2].A.azi1: 212.3  FAILED, KNOWN (1.69571), expected -147.7\n    test 320 All5[2].B: {a1X: -233.600735, azi1: 0.0, aziX: 180.0, lat1: 0.0, latX: 53.692598, lon1: 180.0, lonX: 0.0, m12: 5082071.927222, M12: -0.593409, M21: -0.603127, s1X: -25955632.952022}  FAILED, KNOWN, expected {azi1: 0.0, lat1: 0.0, latX: 53.692598, lon1: 180.0, lonX: 0.0, s1X: -25955632.952022}\n    test 321 All5[2].sAB: 6.21709e-09  FAILED, KNOWN (4.41709e-09), expected 1.8e-09\n    test 322 All5[2].aAB: 5.5915e-14  FAILED, KNOWN (3.97262e-14), expected 1.61888e-14\n    test 323 All5[2].c: 0\n    test 324 All5[2].iteration: 4  FAILED, KNOWN, expected None\n\n    test 325 All5[3].A: {a1X: -184.660358, azi1: -147.7, aziX: -35.614985, lat1: 50.0, latX: -53.864737, lon1: -4.0, lonX: 180.0, m12: 499994.868419, M12: -0.992833, M21: -1.001337, s1X: -20518081.166643}  FAILED, KNOWN, expected {azi1: 212.3, lat1: 50.0, latX: -53.864737, lon1: -4.0, lonX: -180.0, s1X: -20518081.166643}\n    test 326 All5[3].A.lonX: -180.0  FAILED, KNOWN (2), expected 180.0\n    test 327 All5[3].A.azi1: 212.3  FAILED, KNOWN (1.69571), expected -147.7\n    test 328 All5[3].B: {a1X: -53.773048, azi1: 0.0, aziX: 0.0, lat1: 0.0, latX: -53.864737, lon1: 180.0, lonX: 180.0, m12: -5133274.754826, M12: 0.590985, M21: 0.592236, s1X: -5970860.779079}  FAILED, KNOWN, expected {azi1: 0.0, lat1: 0.0, latX: -53.864737, lon1: 180.0, lonX: 180.0, s1X: -5970860.779079}\n    test 329 All5[3].sAB: 1.99911e-09  FAILED, KNOWN (1.89911e-09), expected 1e-10\n    test 330 All5[3].aAB: 1.79794e-14  FAILED, KNOWN (1.79794e-14), expected 0\n    test 331 All5[3].c: 0\n    test 332 All5[3].iteration: 4  FAILED, KNOWN, expected None\n\n    test 333 Middle.sX0: 0\n    test 334 Middle.sB: 5.53684e+06\n    test 335 Middle.c: 0\n    test 336 Middle.sA: 782555\n\n    test 337 Middle5.A: {a12: 14.106434, a1M: 7.053396, azi1: 44.75191, azi2: 45.629037, aziM: 44.969535, lat1: 0.0, lat2: 10.0, latM: 5.019509, lon1: 0.0, lon2: 10.0, lonM: 4.961883, m12: 780579.492953, M12: 0.992432, M21: 0.992432, s12: 1565109.099218, s1M: 782554.549609}\n    test 338 Middle5.B: {a12: 99.810444, a1M: 49.869061, azi1: 180.0, azi2: 180.0, aziM: 180.0, lat1: 50.0, lat2: -50.0, latM: 0.036282, lon1: -4.0, lon2: -4.0, lonM: -4.0, m12: 4864571.105922, M12: 0.645508, M21: 0.644537, s12: 11073670.322999, s1M: 5536835.161499}\n    test 339 Middle5.sMM: 1.13857e+06\n    test 340 Middle5.aMM: 10.2623\n    test 341 Middle5.c: 0\n\n    test 342 Segment.sX0: 1.86602e+06  FAILED, KNOWN (0.00214997), expected 1.86201e+06\n    test 343 Segment.kB: 0\n    test 344 Segment.c: 0\n    test 345 Segment.sB: 5.98889e+06\n    test 346 Segment.sA: -631414\n    test 347 Segment.kA: -1\n    test 348 Segment.k: -3\n\n    test 349 Segment5.A: {a1X: -5.691141, azi1: 44.75191, azi2: 45.629037, aziX: 44.893464, k2: -1, lat1: 0.0, lat2: 10.0, latX: -4.051871, lon1: 0.0, lon2: 10.0, lonX: -4.0, m12: -630376.505305, M12: 0.995071, M21: 0.995071, s1X: -631414.26877}  FAILED, KNOWN, expected {k2: -1, lat1: 0.0, lat2: 10.0, latX: -4.051871, lon1: 0.0, lon2: 10.0, lonX: -4.0, s1X: -631414.26877}\n    test 350 Segment5.B: {a1X: 53.943553, azi1: 180.0, azi2: 180.0, aziX: 180.0, k2: 0, lat1: 50.0, lat2: -50.0, latX: -4.051871, lon1: -4.0, lon2: -4.0, lonX: -4.0, m12: 5143394.782542, M12: 0.589657, M21: 0.588535, s1X: 5988887.278435}  FAILED, KNOWN, expected {k2: 0, lat1: 50.0, lat2: -50.0, latX: -4.051871, lon1: -4.0, lon2: -4.0, lonX: -4.0, s1X: 5988887.278435}\n    test 351 Segment5.sAB: 2.95878e-10  FAILED, KNOWN (4.12174e-12), expected 3e-10\n    test 352 Segment5.aAB: 2.66682e-15  FAILED, KNOWN (3.71501e-17), expected 2.70397e-15\n    test 353 Segment5.c: 0\n\n    test 354 intersect7s[0].A: 04.051871°S, 004.0°W\n    test 355 intersect7s[0].B: 04.051871°S, 004.0°W\n    test 356 intersect7s[0].sAB: 1.47939e-10  FAILED, KNOWN (1.52061e-10), expected 3e-10\n    test 357 intersect7s[0].aAB: 1.33341e-15  FAILED, KNOWN (1.37056e-15), expected 2.70397e-15\n    test 358 intersect7s[0].c: 0\n    test 359 intersect7s[0].kA: 0\n    test 360 intersect7s[0].kB: 0\n    test 361 intersect7s[0].iteration: None\n\n    test 362 intersect7s[1].A: 03.623464°N, 176.0°E\n    test 363 intersect7s[1].B: 03.623464°N, 176.0°E\n    test 364 intersect7s[1].sAB: 3.15761e-09  FAILED, KNOWN (1.25761e-09), expected 1.9e-09\n    test 365 intersect7s[1].aAB: 2.84603e-14  FAILED, KNOWN (1.13417e-14), expected 1.71186e-14\n    test 366 intersect7s[1].c: 0\n    test 367 intersect7s[1].kA: 0\n    test 368 intersect7s[1].kB: 0\n    test 369 intersect7s[1].iteration: None\n\n    test 370 intersect7s[2].A: 04.051871°S, 004.0°W  FAILED, KNOWN (1.03199), expected 03.623464°N, 176.0°E\n    test 371 intersect7s[2].B: 04.051871°S, 004.0°W  FAILED, KNOWN (1.03199), expected 03.623464°N, 176.0°E\n    test 372 intersect7s[2].sAB: 1.43288e-09  FAILED, KNOWN (6.3288e-10), expected 8e-10\n    test 373 intersect7s[2].aAB: 1.29149e-14  FAILED, KNOWN (5.70703e-15), expected 7.20783e-15\n    test 374 intersect7s[2].c: 0\n    test 375 intersect7s[2].kA: 0\n    test 376 intersect7s[2].kB: 0\n    test 377 intersect7s[2].iteration: None\n\n    test 378 intersect7s[3].A: 04.4796°N, 176.0°E  FAILED, KNOWN (1.02993), expected 03.19445°S, 004.0°W\n    test 379 intersect7s[3].B: 04.4796°N, 176.0°E  FAILED, KNOWN (1.02993), expected 03.19445°S, 004.0°W\n    test 380 intersect7s[3].sAB: 3.15429e-09  FAILED, KNOWN (2.5429e-10), expected 2.9e-09\n    test 381 intersect7s[3].aAB: 2.84302e-14  FAILED, KNOWN (2.2917e-15), expected 2.61385e-14\n    test 382 intersect7s[3].c: 0\n    test 383 intersect7s[3].kA: 0\n    test 384 intersect7s[3].kB: 0\n    test 385 intersect7s[3].iteration: None\n\n    test 386 Sphere.Closest.sX0: 9.39521e+06\n    test 387 Sphere.Closest.sB: -3.31802e+06\n    test 388 Sphere.Closest.c: 0\n    test 389 Sphere.Closest.sA: 6.07719e+06\n\n    test 390 Sphere.Closest5.A: {a1X: 54.653489, azi1: -147.7, aziX: -159.911264, lat1: 50.0, latX: -0.0, lon1: -4.0, lonX: -29.839663, m12: 5196622.322619, M12: 0.57852, M21: 0.57852, s1X: 6077190.710199}  FAILED, KNOWN, expected {azi1: 212.3, lat1: 50.0, latX: 0.0, lon1: -4.0, lonX: -29.839663, s1X: 6077190.710199}\n    test 391 Sphere.Closest5.A.azi1: 212.3  FAILED, KNOWN (1.69571), expected -147.7\n    test 392 Sphere.Closest5.B: {a1X: -29.839663, azi1: 90.0, aziX: 90.0, lat1: 0.0, latX: -0.0, lon1: 0.0, lonX: -29.839663, m12: -3170047.454389, M12: 0.867421, M21: 0.867421, s1X: -3318019.115902}  FAILED, KNOWN, expected {azi1: 90.0, lat1: 0.0, latX: -0.0, lon1: 0.0, lonX: -29.839663, s1X: -3318019.115902}\n    test 393 Sphere.Closest5.sAB: 7.90087e-10  FAILED, KNOWN (9.91253e-12), expected 8e-10\n    test 394 Sphere.Closest5.aAB: 7.10543e-15  FAILED, KNOWN (8.91455e-17), expected 7.19457e-15\n    test 395 Sphere.Closest5.c: 0\n\n    test 396 _Xdict2: 127\n\n    testGeodesic(pygeodesy.geodesici, 26.02.04)\n    test 397 Intersector: name='', geodesic=<pygeodesy.geodesicw.Geodesic object at 0x7fe2c0404ed0>\n\n    test 398 Closest.1.sX0: 6.93463e+06\n    test 399 Closest.1.sB: 2.70933e+06\n    test 400 Closest.1.c: 0\n    test 401 Closest.1.sA: 4.2253e+06\n\n    test 402 Closest5.1.A: {a1X: 38.075573, azi1: 45.0, aziX: 51.790249, lat1: 0.0, latX: 25.92918, lon1: 0.0, lonX: 28.89426, s1X: 4225301.108897}  FAILED, KNOWN, expected {azi1: 45.0, lat1: 0.0, latX: 25.92918, lon1: 0.0, lonX: 28.89426, s1X: 4225301.108897}\n    test 403 Closest5.1.B: {a1X: 24.392077, azi1: 135.0, aziX: 146.182975, lat1: 45.0, latX: 25.92918, lon1: 10.0, lonX: 28.89426, s1X: 2709328.885611}  FAILED, KNOWN, expected {azi1: 135.0, lat1: 45.0, latX: 25.92918, lon1: 10.0, lonX: 28.89426, s1X: 2709328.885611}\n    test 404 Closest5.1.sAB: 3.55903e-10  FAILED, KNOWN (3.55903e-10), expected 0\n    test 405 Closest5.1.aAB: 3.20583e-15  FAILED, KNOWN (3.20583e-15), expected 0\n    test 406 Closest5.1.c: 0\n\n    test 407 Closest.2.sX0: 9.3693e+06\n    test 408 Closest.2.sB: -3.31125e+06\n    test 409 Closest.2.c: 0\n    test 410 Closest.2.sA: 6.05805e+06\n\n    test 411 Closest5.2.A: {a1X: 54.562637, azi1: -147.7, aziX: -159.869978, lat1: 50.0, latX: -0.0, lon1: -4.0, lonX: -29.745492, s1X: 6058048.653081}  FAILED, KNOWN, expected {azi1: 212.3, lat1: 50.0, latX: -0.0, lon1: -4.0, lonX: -29.745492, s1X: 6058048.653081}\n    test 412 Closest5.2.A.azi1: 212.3  FAILED, KNOWN (1.69571), expected -147.7\n    test 413 Closest5.2.B: {a1X: -29.845558, azi1: 90.0, aziX: 90.0, lat1: 0.0, latX: -0.0, lon1: 0.0, lonX: -29.745492, s1X: -3311252.995823}  FAILED, KNOWN, expected {azi1: 90.0, lat1: 0.0, latX: -0.0, lon1: 0.0, lonX: -29.745492, s1X: -3311252.995823}\n    test 414 Closest5.2.sAB: 5.16017e-10  FAILED, KNOWN (4.83983e-10), expected 1e-09\n    test 415 Closest5.2.aAB: 4.65105e-15  FAILED, KNOWN (4.36232e-15), expected 9.01337e-15\n    test 416 Closest5.2.c: 0\n\n    test 417 All[0].sX0: 1.45468e+07\n    test 418 All[0].sB: 1.40522e+07\n    test 419 All[0].c: 0\n    test 420 All[0].sA: -494582\n    test 421 All[0].iteration: 4  FAILED, KNOWN (1), expected 0\n\n    test 422 All[1].sX0: 2.54615e+07\n    test 423 All[1].sB: -5.93234e+06\n    test 424 All[1].c: 0\n    test 425 All[1].sA: 1.95291e+07\n    test 426 All[1].iteration: 4  FAILED, KNOWN, expected 1\n\n    test 427 All[2].sX0: 2.64502e+07\n    test 428 All[2].sB: -2.59556e+07\n    test 429 All[2].c: 0\n    test 430 All[2].sA: -494582\n    test 431 All[2].iteration: 4  FAILED, KNOWN, expected 2\n\n    test 432 All[3].sX0: 2.64889e+07\n    test 433 All[3].sB: -5.97086e+06\n    test 434 All[3].c: 0\n    test 435 All[3].sA: -2.05181e+07\n    test 436 All[3].iteration: 4  FAILED, KNOWN, expected 3\n\n    test 437 All5[0].A: {a1X: -4.448619, azi1: -147.7, aziX: -144.55245, lat1: 50.0, latX: 53.692598, lon1: -4.0, lonX: 0.0, s1X: -494582.492241}  FAILED, KNOWN, expected {azi1: 212.3, lat1: 50.0, latX: 53.692598, lon1: -4.0, lonX: -0.0, s1X: -494582.492241}\n    test 438 All5[0].A.azi1: 212.3  FAILED, KNOWN (1.69571), expected -147.7\n    test 439 All5[0].B: {a1X: 126.399265, azi1: 0.0, aziX: 180.0, lat1: 0.0, latX: 53.692598, lon1: 180, lonX: 0.0, s1X: 14052229.965229}  FAILED, KNOWN, expected {azi1: 0.0, lat1: 0.0, latX: 53.692598, lon1: 180.0, lonX: 0.0, s1X: 14052229.965229}\n    test 440 All5[0].sAB: 1.8029e-09  FAILED, KNOWN (6.02903e-10), expected 1.2e-09\n    test 441 All5[0].aAB: 1.62149e-14  FAILED, KNOWN (5.42236e-15), expected 1.07925e-14\n    test 442 All5[0].c: 0\n    test 443 All5[0].iteration: 4  FAILED, KNOWN, expected None\n\n    test 444 All5[1].A: {a1X: 175.764866, azi1: -147.7, aziX: -35.280487, lat1: 50.0, latX: -53.518675, lon1: -4.0, lonX: 180.0, s1X: 19529110.042937}  FAILED, KNOWN, expected {azi1: 212.3, lat1: 50.0, latX: -53.518675, lon1: -4.0, lonX: -180.0, s1X: 19529110.042937}\n    test 445 All5[1].A.lonX: -180.0  FAILED, KNOWN (2), expected 180.0\n    test 446 All5[1].A.azi1: 212.3  FAILED, KNOWN (1.69571), expected -147.7\n    test 447 All5[1].B: {a1X: -53.426639, azi1: 0.0, aziX: 0.0, lat1: 0.0, latX: -53.518675, lon1: 180, lonX: 180, s1X: -5932344.259165}  FAILED, KNOWN, expected {azi1: 0.0, lat1: 0.0, latX: -53.518675, lon1: 180.0, lonX: 180.0, s1X: -5932344.259165}\n    test 448 All5[1].sAB: 5.16933e-09  FAILED, KNOWN (2.56933e-09), expected 2.6e-09\n    test 449 All5[1].aAB: 4.64921e-14  FAILED, KNOWN (2.30967e-14), expected 2.33954e-14\n    test 450 All5[1].c: 0\n    test 451 All5[1].iteration: 4  FAILED, KNOWN, expected None\n\n    test 452 All5[2].A: {a1X: -4.448619, azi1: -147.7, aziX: -144.55245, lat1: 50.0, latX: 53.692598, lon1: -4.0, lonX: 0.0, s1X: -494582.492241}  FAILED, KNOWN, expected {azi1: 212.3, lat1: 50.0, latX: 53.692598, lon1: -4.0, lonX: -0.0, s1X: -494582.492241}\n    test 453 All5[2].A.azi1: 212.3  FAILED, KNOWN (1.69571), expected -147.7\n    test 454 All5[2].B: {a1X: -233.600735, azi1: 0.0, aziX: 180.0, lat1: 0.0, latX: 53.692598, lon1: 180, lonX: 0.0, s1X: -25955632.952022}  FAILED, KNOWN, expected {azi1: 0.0, lat1: 0.0, latX: 53.692598, lon1: 180.0, lonX: 0.0, s1X: -25955632.952022}\n    test 455 All5[2].sAB: 2.47618e-09  FAILED, KNOWN (6.76176e-10), expected 1.8e-09\n    test 456 All5[2].aAB: 2.22701e-14  FAILED, KNOWN (6.08137e-15), expected 1.61888e-14\n    test 457 All5[2].c: 0\n    test 458 All5[2].iteration: 4  FAILED, KNOWN, expected None\n\n    test 459 All5[3].A: {a1X: -184.660358, azi1: -147.7, aziX: -35.614985, lat1: 50.0, latX: -53.864737, lon1: -4.0, lonX: 180.0, s1X: -20518081.166643}  FAILED, KNOWN, expected {azi1: 212.3, lat1: 50.0, latX: -53.864737, lon1: -4.0, lonX: -180.0, s1X: -20518081.166643}\n    test 460 All5[3].A.lonX: -180.0  FAILED, KNOWN (2), expected 180.0\n    test 461 All5[3].A.azi1: 212.3  FAILED, KNOWN (1.69571), expected -147.7\n    test 462 All5[3].B: {a1X: -53.773048, azi1: 0.0, aziX: 0.0, lat1: 0.0, latX: -53.864737, lon1: 180, lonX: 180, s1X: -5970860.779079}  FAILED, KNOWN, expected {azi1: 0.0, lat1: 0.0, latX: -53.864737, lon1: 180.0, lonX: 180.0, s1X: -5970860.779079}\n    test 463 All5[3].sAB: 3.73962e-09  FAILED, KNOWN (3.63962e-09), expected 1e-10\n    test 464 All5[3].aAB: 3.3633e-14  FAILED, KNOWN (3.3633e-14), expected 0\n    test 465 All5[3].c: 0\n    test 466 All5[3].iteration: 4  FAILED, KNOWN, expected None\n\n    test 467 Middle.sX0: 0\n    test 468 Middle.sB: 5.54085e+06  FAILED, KNOWN (0.000724055), expected 5.53684e+06\n    test 469 Middle.c: 0\n    test 470 Middle.sA: 782555\n\n    test 471 Middle5.A: {a12: 14.106434, a1M: 7.053396, azi1: 44.75191, azi2: 45.629037, aziM: 44.969535, lat1: 0.0, lat2: 10.0, latM: 5.019509, lon1: 0.0, lon2: 10.0, lonM: 4.961883, s12: 1565109.099218, s1M: 782554.549609}  FAILED, KNOWN, expected {a12: 14.106434, a1M: 7.053396, azi1: 44.75191, azi2: 45.629037, aziM: 44.969535, lat1: 0.0, lat2: 10.0, latM: 5.019509, lon1: 0.0, lon2: 10.0, lonM: 4.961883, m12: 780579.492953, M12: 0.992432, M21: 0.992432, s12: 1565109.099218, s1M: 782554.549609}\n    test 472 Middle5.B: {a12: 99.810444, a1M: 49.905222, azi1: 180.0, azi2: 180.0, aziM: 180.0, lat1: 50.0, lat2: -50.0, latM: 0.0, lon1: -4.0, lon2: -4.0, lonM: -4.0, s12: 11081694.083368, s1M: 5540847.041684}  FAILED, KNOWN, expected {a12: 99.810444, a1M: 49.869061, azi1: 180.0, azi2: 180.0, aziM: 180.0, lat1: 50.0, lat2: -50.0, latM: 0.036282, lon1: -4.0, lon2: -4.0, lonM: -4.0, m12: 4864571.105922, M12: 0.645508, M21: 0.644537, s12: 11073670.322999, s1M: 5536835.161499}\n    test 473 Middle5.B.a1M: 49.9052218889  FAILED, KNOWN (0.000724585), expected 49.8690613164\n    test 474 Middle5.B.s12: 11081694.0834  FAILED, KNOWN (0.000724055), expected 11073670.323\n    test 475 Middle5.B.latM: 3.19125435309e-15  FAILED, KNOWN (0.0362822), expected 0.0362822197973\n    test 476 Middle5.B.s1M: 5540847.04168  FAILED, KNOWN (0.000724055), expected 5536835.1615\n    test 477 Middle5.sMM: 1.14053e+06  FAILED, KNOWN (0.0017142), expected 1.13857e+06\n    test 478 Middle5.aMM: 10.2799  FAILED, KNOWN (0.00171426), expected 10.2623\n    test 479 Middle5.c: 0\n\n    test 480 Segment.sX0: 1.86201e+06\n    test 481 Segment.kB: 0\n    test 482 Segment.c: 0\n    test 483 Segment.sB: 5.98889e+06\n    test 484 Segment.sA: -631414\n    test 485 Segment.kA: -1\n    test 486 Segment.k: -3\n\n    test 487 Segment5.A: {a1X: -5.691141, azi1: 44.75191, aziX: 44.893464, k2: -1, lat1: 0.0, latX: -4.051871, lon1: 0.0, lonX: -4.0, s1X: -631414.26877}  FAILED, KNOWN, expected {k2: -1, lat1: 0.0, lat2: 10.0, latX: -4.051871, lon1: 0.0, lon2: 10.0, lonX: -4.0, s1X: -631414.26877}\n    test 488 Segment5.B: {a1X: 53.943553, azi1: 180.0, aziX: 180.0, k2: 0, lat1: 50.0, latX: -4.051871, lon1: -4.0, lonX: -4.0, s1X: 5988887.278435}  FAILED, KNOWN, expected {k2: 0, lat1: 50.0, lat2: -50.0, latX: -4.051871, lon1: -4.0, lon2: -4.0, lonX: -4.0, s1X: 5988887.278435}\n    test 489 Segment5.sAB: 8.81935e-11  FAILED, KNOWN (2.11806e-10), expected 3e-10\n    test 490 Segment5.aAB: 7.95139e-16  FAILED, KNOWN (1.90883e-15), expected 2.70397e-15\n    test 491 Segment5.c: 0\n\n    test 492 intersect7s[0].A: 04.051871°S, 004.0°W\n    test 493 intersect7s[0].B: 04.051871°S, 004.0°W\n    test 494 intersect7s[0].sAB: 2.30253e-10  FAILED, KNOWN (6.9747e-11), expected 3e-10\n    test 495 intersect7s[0].aAB: 2.07532e-15  FAILED, KNOWN (6.28645e-16), expected 2.70397e-15\n    test 496 intersect7s[0].c: 0\n    test 497 intersect7s[0].kA: 0\n    test 498 intersect7s[0].kB: 0\n    test 499 intersect7s[0].iteration: None\n\n    test 500 intersect7s[1].A: 03.623464°N, 176.0°E\n    test 501 intersect7s[1].B: 03.623464°N, 176.0°E\n    test 502 intersect7s[1].sAB: 2.73478e-09  FAILED, KNOWN (8.34776e-10), expected 1.9e-09\n    test 503 intersect7s[1].aAB: 2.46493e-14  FAILED, KNOWN (7.5307e-15), expected 1.71186e-14\n    test 504 intersect7s[1].c: 0\n    test 505 intersect7s[1].kA: 0\n    test 506 intersect7s[1].kB: 0\n    test 507 intersect7s[1].iteration: None\n\n    test 508 intersect7s[2].A: 04.051871°S, 004.0°W  FAILED, KNOWN (1.03199), expected 03.623464°N, 176.0°E\n    test 509 intersect7s[2].B: 04.051871°S, 004.0°W  FAILED, KNOWN (1.03199), expected 03.623464°N, 176.0°E\n    test 510 intersect7s[2].sAB: 1.2439e-09  FAILED, KNOWN (4.43897e-10), expected 8e-10\n    test 511 intersect7s[2].aAB: 1.12115e-14  FAILED, KNOWN (4.00369e-15), expected 7.20783e-15\n    test 512 intersect7s[2].c: 0\n    test 513 intersect7s[2].kA: 0\n    test 514 intersect7s[2].kB: 0\n    test 515 intersect7s[2].iteration: None\n\n    test 516 intersect7s[3].A: 04.4796°N, 176.0°E  FAILED, KNOWN (1.02993), expected 03.19445°S, 004.0°W\n    test 517 intersect7s[3].B: 04.4796°N, 176.0°E  FAILED, KNOWN (1.02993), expected 03.19445°S, 004.0°W\n    test 518 intersect7s[3].sAB: 3.18498e-09  FAILED, KNOWN (2.84982e-10), expected 2.9e-09\n    test 519 intersect7s[3].aAB: 2.87068e-14  FAILED, KNOWN (2.56833e-15), expected 2.61385e-14\n    test 520 intersect7s[3].c: 0\n    test 521 intersect7s[3].kA: 0\n    test 522 intersect7s[3].kB: 0\n    test 523 intersect7s[3].iteration: None\n\n    test 524 Sphere.Closest.sX0: 9.39521e+06\n    test 525 Sphere.Closest.sB: -3.31802e+06\n    test 526 Sphere.Closest.c: 0\n    test 527 Sphere.Closest.sA: 6.07719e+06\n\n    test 528 Sphere.Closest5.A: {a1X: 54.653489, azi1: -147.7, aziX: -159.911264, lat1: 50.0, latX: 0.0, lon1: -4.0, lonX: -29.839663, s1X: 6077190.710199}  FAILED, KNOWN, expected {azi1: 212.3, lat1: 50.0, latX: 0.0, lon1: -4.0, lonX: -29.839663, s1X: 6077190.710199}\n    test 529 Sphere.Closest5.A.azi1: 212.3  FAILED, KNOWN (1.69571), expected -147.7\n    test 530 Sphere.Closest5.B: {a1X: -29.839663, azi1: 90.0, aziX: 90.0, lat1: 0.0, latX: -0.0, lon1: 0.0, lonX: -29.839663, s1X: -3318019.115902}  FAILED, KNOWN, expected {azi1: 90.0, lat1: 0.0, latX: -0.0, lon1: 0.0, lonX: -29.839663, s1X: -3318019.115902}\n    test 531 Sphere.Closest5.sAB: 7.90087e-10  FAILED, KNOWN (9.91253e-12), expected 8e-10\n    test 532 Sphere.Closest5.aAB: 7.10543e-15  FAILED, KNOWN (8.91455e-17), expected 7.19457e-15\n    test 533 Sphere.Closest5.c: 0\n\n    test 534 _Xdict2: 127\n\n    testGeodesicExact(pygeodesy.geodesici, 26.02.04)\n    test 535 Intersectool: geodesic=GeodesicExact(name='', caps=0, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), C4order=30), IntersectTool='/opt/local/bin/IntersectTool', invokation=0, status=None\n\n    test 536 Closest.1.c: 0\n    test 537 Closest.1.lonA: 28.8943\n    test 538 Closest.1.sAB: 0\n    test 539 Closest.1.lonB: 28.8943\n    test 540 Closest.1.latA: 25.9292\n    test 541 Closest.1.latB: 25.9292\n    test 542 Closest.1.sB: 2.70933e+06\n    test 543 Closest.1.sA: 4.2253e+06\n\n    test 544 Closest5.1.A: {azi1: 45.0, lat1: 0.0, latX: 25.92918, lon1: 0.0, lonX: 28.89426, s1X: 4225301.108897}\n    test 545 Closest5.1.B: {azi1: 135.0, lat1: 45.0, latX: 25.92918, lon1: 10.0, lonX: 28.89426, s1X: 2709328.885611}\n    test 546 Closest5.1.sAB: 0\n    test 547 Closest5.1.aAB: 0\n    test 548 Closest5.1.c: 0\n\n    test 549 Closest.2.c: 0\n    test 550 Closest.2.lonA: -29.7455\n    test 551 Closest.2.sAB: 1e-09\n    test 552 Closest.2.lonB: -29.7455\n    test 553 Closest.2.latA: -9e-15\n    test 554 Closest.2.latB: -0\n    test 555 Closest.2.sB: -3.31125e+06\n    test 556 Closest.2.sA: 6.05805e+06\n\n    test 557 Closest5.2.A: {azi1: 212.3, lat1: 50.0, latX: -0.0, lon1: -4.0, lonX: -29.745492, s1X: 6058048.653081}\n    test 558 Closest5.2.B: {azi1: 90.0, lat1: 0.0, latX: -0.0, lon1: 0.0, lonX: -29.745492, s1X: -3311252.995823}\n    test 559 Closest5.2.sAB: 1e-09\n    test 560 Closest5.2.aAB: 9.01337e-15\n    test 561 Closest5.2.c: 0\n\n    test 562 All[0].c: 0\n    test 563 All[0].aAB: 1.07925e-14\n    test 564 All[0].lonA: -1.2e-14\n    test 565 All[0].sAB: 1.2e-09\n    test 566 All[0].lonB: 0\n    test 567 All[0].sX0: 1.45468e+07\n    test 568 All[0].latA: 53.6926\n    test 569 All[0].latB: 53.6926\n    test 570 All[0].sB: 1.40522e+07\n    test 571 All[0].sA: -494582\n    test 572 All[0].iteration: 0\n\n    test 573 All[1].c: 0\n    test 574 All[1].aAB: 2.33954e-14\n    test 575 All[1].lonA: -180\n    test 576 All[1].sAB: 2.6e-09\n    test 577 All[1].lonB: 180\n    test 578 All[1].sX0: 2.54615e+07\n    test 579 All[1].latA: -53.5187\n    test 580 All[1].latB: -53.5187\n    test 581 All[1].sB: -5.93234e+06\n    test 582 All[1].sA: 1.95291e+07\n    test 583 All[1].iteration: 1\n\n    test 584 All[2].c: 0\n    test 585 All[2].aAB: 1.61888e-14\n    test 586 All[2].lonA: -1.2e-14\n    test 587 All[2].sAB: 1.8e-09\n    test 588 All[2].lonB: 0\n    test 589 All[2].sX0: 2.64502e+07\n    test 590 All[2].latA: 53.6926\n    test 591 All[2].latB: 53.6926\n    test 592 All[2].sB: -2.59556e+07\n    test 593 All[2].sA: -494582\n    test 594 All[2].iteration: 2\n\n    test 595 All[3].c: 0\n    test 596 All[3].aAB: 0\n    test 597 All[3].lonA: -180\n    test 598 All[3].sAB: 1e-10\n    test 599 All[3].lonB: 180\n    test 600 All[3].sX0: 2.64889e+07\n    test 601 All[3].latA: -53.8647\n    test 602 All[3].latB: -53.8647\n    test 603 All[3].sB: -5.97086e+06\n    test 604 All[3].sA: -2.05181e+07\n    test 605 All[3].iteration: 3\n\n    test 606 All5[0].A: {azi1: 212.3, lat1: 50.0, latX: 53.692598, lon1: -4.0, lonX: -0.0, s1X: -494582.492241}\n    test 607 All5[0].B: {azi1: 0.0, lat1: 0.0, latX: 53.692598, lon1: 180.0, lonX: 0.0, s1X: 14052229.965229}\n    test 608 All5[0].sAB: 1.2e-09\n    test 609 All5[0].aAB: 1.07925e-14\n    test 610 All5[0].c: 0\n    test 611 All5[0].iteration: None\n\n    test 612 All5[1].A: {azi1: 212.3, lat1: 50.0, latX: -53.518675, lon1: -4.0, lonX: -180.0, s1X: 19529110.042937}\n    test 613 All5[1].B: {azi1: 0.0, lat1: 0.0, latX: -53.518675, lon1: 180.0, lonX: 180.0, s1X: -5932344.259165}\n    test 614 All5[1].sAB: 2.6e-09\n    test 615 All5[1].aAB: 2.33954e-14\n    test 616 All5[1].c: 0\n    test 617 All5[1].iteration: None\n\n    test 618 All5[2].A: {azi1: 212.3, lat1: 50.0, latX: 53.692598, lon1: -4.0, lonX: -0.0, s1X: -494582.492241}\n    test 619 All5[2].B: {azi1: 0.0, lat1: 0.0, latX: 53.692598, lon1: 180.0, lonX: 0.0, s1X: -25955632.952022}\n    test 620 All5[2].sAB: 1.8e-09\n    test 621 All5[2].aAB: 1.61888e-14\n    test 622 All5[2].c: 0\n    test 623 All5[2].iteration: None\n\n    test 624 All5[3].A: {azi1: 212.3, lat1: 50.0, latX: -53.864737, lon1: -4.0, lonX: -180.0, s1X: -20518081.166643}\n    test 625 All5[3].B: {azi1: 0.0, lat1: 0.0, latX: -53.864737, lon1: 180.0, lonX: 180.0, s1X: -5970860.779079}\n    test 626 All5[3].sAB: 1e-10\n    test 627 All5[3].aAB: 0\n    test 628 All5[3].c: 0\n    test 629 All5[3].iteration: None\n\n    test 630 Middle.kB: 0\n    test 631 Middle.c: 0\n    test 632 Middle.aMM: 10.2623\n    test 633 Middle.lonA: 4.96188\n    test 634 Middle.k: 0\n    test 635 Middle.lonB: -4\n    test 636 Middle.kA: 0\n    test 637 Middle.sX0: 0\n    test 638 Middle.sMM: 1.13857e+06\n    test 639 Middle.latA: 5.01951\n    test 640 Middle.latB: 0.0362822\n    test 641 Middle.sB: 5.53684e+06\n    test 642 Middle.sA: 782555\n\n    test 643 Middle5.A: {a12: 14.106434, a1M: 7.053396, azi1: 44.75191, azi2: 45.629037, aziM: 44.969535, lat1: 0.0, lat2: 10.0, latM: 5.019509, lon1: 0.0, lon2: 10.0, lonM: 4.961883, m12: 780579.492953, M12: 0.992432, M21: 0.992432, s12: 1565109.099218, s1M: 782554.549609}\n    test 644 Middle5.B: {a12: 99.810444, a1M: 49.869061, azi1: 180.0, azi2: 180.0, aziM: 180.0, lat1: 50.0, lat2: -50.0, latM: 0.036282, lon1: -4.0, lon2: -4.0, lonM: -4.0, m12: 4864571.105922, M12: 0.645508, M21: 0.644537, s12: 11073670.322999, s1M: 5536835.161499}\n    test 645 Middle5.sMM: 1.13857e+06\n    test 646 Middle5.aMM: 10.2623\n    test 647 Middle5.c: 0\n\n    test 648 Segment.kB: 0\n    test 649 Segment.c: 0\n    test 650 Segment.lonA: -4\n    test 651 Segment.sAB: 3e-10\n    test 652 Segment.k: -3\n    test 653 Segment.lonB: -4\n    test 654 Segment.kA: -1\n    test 655 Segment.latA: -4.05187\n    test 656 Segment.latB: -4.05187\n    test 657 Segment.sB: 5.98889e+06\n    test 658 Segment.sA: -631414\n\n    test 659 Segment5.A: {k2: -1, lat1: 0.0, lat2: 10.0, latX: -4.051871, lon1: 0.0, lon2: 10.0, lonX: -4.0, s1X: -631414.26877}\n    test 660 Segment5.B: {k2: 0, lat1: 50.0, lat2: -50.0, latX: -4.051871, lon1: -4.0, lon2: -4.0, lonX: -4.0, s1X: 5988887.278435}\n    test 661 Segment5.sAB: 3e-10\n    test 662 Segment5.aAB: 2.70397e-15\n    test 663 Segment5.c: 0\n\n    test 664 intersect7s[0].A: 04.051871°S, 004.0°W\n    test 665 intersect7s[0].B: 04.051871°S, 004.0°W\n    test 666 intersect7s[0].sAB: 3e-10\n    test 667 intersect7s[0].aAB: 2.70397e-15\n    test 668 intersect7s[0].c: 0\n    test 669 intersect7s[0].kA: 0\n    test 670 intersect7s[0].kB: 0\n    test 671 intersect7s[0].iteration: None\n\n    test 672 intersect7s[1].A: 03.623464°N, 176.0°E\n    test 673 intersect7s[1].B: 03.623464°N, 176.0°E\n    test 674 intersect7s[1].sAB: 1.9e-09\n    test 675 intersect7s[1].aAB: 1.71186e-14\n    test 676 intersect7s[1].c: 0\n    test 677 intersect7s[1].kA: 0\n    test 678 intersect7s[1].kB: 0\n    test 679 intersect7s[1].iteration: None\n\n    test 680 intersect7s[2].A: 03.623464°N, 176.0°E\n    test 681 intersect7s[2].B: 03.623464°N, 176.0°E\n    test 682 intersect7s[2].sAB: 8e-10\n    test 683 intersect7s[2].aAB: 7.20783e-15\n    test 684 intersect7s[2].c: 0\n    test 685 intersect7s[2].kA: 0\n    test 686 intersect7s[2].kB: 0\n    test 687 intersect7s[2].iteration: None\n\n    test 688 intersect7s[3].A: 03.19445°S, 004.0°W\n    test 689 intersect7s[3].B: 03.19445°S, 004.0°W\n    test 690 intersect7s[3].sAB: 2.9e-09\n    test 691 intersect7s[3].aAB: 2.61385e-14\n    test 692 intersect7s[3].c: 0\n    test 693 intersect7s[3].kA: 0\n    test 694 intersect7s[3].kB: 0\n    test 695 intersect7s[3].iteration: None\n\n    test 696 Sphere.Closest.c: 0\n    test 697 Sphere.Closest.lonA: -29.8397\n    test 698 Sphere.Closest.sAB: 8e-10\n    test 699 Sphere.Closest.lonB: -29.8397\n    test 700 Sphere.Closest.latA: 1e-15\n    test 701 Sphere.Closest.latB: -0\n    test 702 Sphere.Closest.sB: -3.31802e+06\n    test 703 Sphere.Closest.sA: 6.07719e+06\n\n    test 704 Sphere.Closest5.A: {azi1: 212.3, lat1: 50.0, latX: 0.0, lon1: -4.0, lonX: -29.839663, s1X: 6077190.710199}\n    test 705 Sphere.Closest5.B: {azi1: 90.0, lat1: 0.0, latX: -0.0, lon1: 0.0, lonX: -29.839663, s1X: -3318019.115902}\n    test 706 Sphere.Closest5.sAB: 8e-10\n    test 707 Sphere.Closest5.aAB: 7.19457e-15\n    test 708 Sphere.Closest5.c: 0\n\n    test 709 invokations: 9\n\n    test 710 _Xdict2: 173\n\n    testGeodesicSolve(pygeodesy.geodesici, 26.02.04)\n    test 711 Intersector: name='', geodesic=GeodesicSolve(ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), GeodSolve='/opt/local/bin/GeodSolve', invokation=15, status=0)\n\n    test 712 Closest.1.c: 0\n    test 713 Closest.1.aAB: 0\n    test 714 Closest.1.lonA: 28.8943\n    test 715 Closest.1.sAB: 0\n    test 716 Closest.1.lonB: 28.8943\n    test 717 Closest.1.sX0: 6.93463e+06\n    test 718 Closest.1.latA: 25.9292\n    test 719 Closest.1.latB: 25.9292\n    test 720 Closest.1.sB: 2.70933e+06\n    test 721 Closest.1.sA: 4.2253e+06\n\n    test 722 Closest5.1.A: {a1X: 38.075573, azi1: 45.0, aziX: 51.790249, lat1: 0.0, latX: 25.92918, lon1: 0.0, lonX: 28.89426, s1X: 4225301.108897}  FAILED, KNOWN, expected {azi1: 45.0, lat1: 0.0, latX: 25.92918, lon1: 0.0, lonX: 28.89426, s1X: 4225301.108897}\n    test 723 Closest5.1.B: {a1X: 24.392077, azi1: 135.0, aziX: 146.182975, lat1: 45.0, latX: 25.92918, lon1: 10.0, lonX: 28.89426, s1X: 2709328.885611}  FAILED, KNOWN, expected {azi1: 135.0, lat1: 45.0, latX: 25.92918, lon1: 10.0, lonX: 28.89426, s1X: 2709328.885611}\n    test 724 Closest5.1.sAB: 0\n    test 725 Closest5.1.aAB: 0\n    test 726 Closest5.1.c: 0\n\n    test 727 Closest.2.c: 0\n    test 728 Closest.2.aAB: 1.1e-14\n    test 729 Closest.2.lonA: -29.7455\n    test 730 Closest.2.sAB: 1.2e-09  FAILED, KNOWN (2e-10), expected 1e-09\n    test 731 Closest.2.lonB: -29.7455\n    test 732 Closest.2.sX0: 9.3693e+06\n    test 733 Closest.2.latA: -1e-15  FAILED, KNOWN (8e-15), expected -9e-15\n    test 734 Closest.2.latB: -0\n    test 735 Closest.2.sB: -3.31125e+06\n    test 736 Closest.2.sA: 6.05805e+06\n\n    test 737 Closest5.2.A: {a1X: 54.562637, azi1: -147.7, aziX: -159.869978, lat1: 50.0, latX: -0.0, lon1: -4.0, lonX: -29.745492, s1X: 6058048.653081}  FAILED, KNOWN, expected {azi1: 212.3, lat1: 50.0, latX: -0.0, lon1: -4.0, lonX: -29.745492, s1X: 6058048.653081}\n    test 738 Closest5.2.A.azi1: 212.3  FAILED, KNOWN (1.69571), expected -147.7\n    test 739 Closest5.2.B: {a1X: -29.845558, azi1: 90.0, aziX: 90.0, lat1: 0.0, latX: -0.0, lon1: 0.0, lonX: -29.745492, s1X: -3311252.995823}  FAILED, KNOWN, expected {azi1: 90.0, lat1: 0.0, latX: -0.0, lon1: 0.0, lonX: -29.745492, s1X: -3311252.995823}\n    test 740 Closest5.2.sAB: 1.2e-09  FAILED, KNOWN (2e-10), expected 1e-09\n    test 741 Closest5.2.aAB: 1.1e-14  FAILED, KNOWN (1.98663e-15), expected 9.01337e-15\n    test 742 Closest5.2.c: 0\n\n    test 743 All[0].c: 0\n    test 744 All[0].aAB: 3.7e-14  FAILED, KNOWN (2.62075e-14), expected 1.07925e-14\n    test 745 All[0].lonA: -2e-15  FAILED, KNOWN (1e-14), expected -1.2e-14\n    test 746 All[0].sAB: 2.6e-09  FAILED, KNOWN (1.4e-09), expected 1.2e-09\n    test 747 All[0].lonB: 0\n    test 748 All[0].sX0: 1.45468e+07\n    test 749 All[0].latA: 53.6926\n    test 750 All[0].latB: 53.6926\n    test 751 All[0].sB: 1.40522e+07\n    test 752 All[0].sA: -494582\n    test 753 All[0].iteration: 4  FAILED, KNOWN (1), expected 0\n\n    test 754 All[1].c: 0\n    test 755 All[1].aAB: 1.7e-14  FAILED, KNOWN (6.3954e-15), expected 2.33954e-14\n    test 756 All[1].lonA: -180\n    test 757 All[1].sAB: 1.9e-09  FAILED, KNOWN (7e-10), expected 2.6e-09\n    test 758 All[1].lonB: 180\n    test 759 All[1].sX0: 2.54615e+07\n    test 760 All[1].latA: -53.5187\n    test 761 All[1].latB: -53.5187\n    test 762 All[1].sB: -5.93234e+06\n    test 763 All[1].sA: 1.95291e+07\n    test 764 All[1].iteration: 4  FAILED, KNOWN, expected 1\n\n    test 765 All[2].c: 0\n    test 766 All[2].aAB: 1.5e-14  FAILED, KNOWN (1.18877e-15), expected 1.61888e-14\n    test 767 All[2].lonA: 1.8e-14  FAILED, KNOWN (1.8e-14), expected -1.2e-14\n    test 768 All[2].sAB: 1.6e-09  FAILED, KNOWN (2e-10), expected 1.8e-09\n    test 769 All[2].lonB: 0\n    test 770 All[2].sX0: 2.64502e+07\n    test 771 All[2].latA: 53.6926\n    test 772 All[2].latB: 53.6926\n    test 773 All[2].sB: -2.59556e+07\n    test 774 All[2].sA: -494582\n    test 775 All[2].iteration: 4  FAILED, KNOWN, expected 2\n\n    test 776 All[3].c: 0\n    test 777 All[3].aAB: 7.4e-14  FAILED, KNOWN (7.4e-14), expected 0\n    test 778 All[3].lonA: -180\n    test 779 All[3].sAB: 8.2e-09  FAILED, KNOWN (8.1e-09), expected 1e-10\n    test 780 All[3].lonB: 180\n    test 781 All[3].sX0: 2.64889e+07\n    test 782 All[3].latA: -53.8647\n    test 783 All[3].latB: -53.8647\n    test 784 All[3].sB: -5.97086e+06\n    test 785 All[3].sA: -2.05181e+07\n    test 786 All[3].iteration: 4  FAILED, KNOWN, expected 3\n\n    test 787 All5[0].A: {a1X: -4.448619, azi1: -147.7, aziX: -144.55245, lat1: 50.0, latX: 53.692598, lon1: -4.0, lonX: -0.0, s1X: -494582.492241}  FAILED, KNOWN, expected {azi1: 212.3, lat1: 50.0, latX: 53.692598, lon1: -4.0, lonX: -0.0, s1X: -494582.492241}\n    test 788 All5[0].A.azi1: 212.3  FAILED, KNOWN (1.69571), expected -147.7\n    test 789 All5[0].B: {a1X: 126.399265, azi1: 0.0, aziX: 180.0, lat1: 0.0, latX: 53.692598, lon1: 180.0, lonX: 0.0, s1X: 14052229.965229}  FAILED, KNOWN, expected {azi1: 0.0, lat1: 0.0, latX: 53.692598, lon1: 180.0, lonX: 0.0, s1X: 14052229.965229}\n    test 790 All5[0].sAB: 2.6e-09  FAILED, KNOWN (1.4e-09), expected 1.2e-09\n    test 791 All5[0].aAB: 3.7e-14  FAILED, KNOWN (2.62075e-14), expected 1.07925e-14\n    test 792 All5[0].c: 0\n    test 793 All5[0].iteration: 4  FAILED, KNOWN, expected None\n\n    test 794 All5[1].A: {a1X: 175.764866, azi1: -147.7, aziX: -35.280487, lat1: 50.0, latX: -53.518675, lon1: -4.0, lonX: -180.0, s1X: 19529110.042937}  FAILED, KNOWN, expected {azi1: 212.3, lat1: 50.0, latX: -53.518675, lon1: -4.0, lonX: -180.0, s1X: 19529110.042937}\n    test 795 All5[1].A.azi1: 212.3  FAILED, KNOWN (1.69571), expected -147.7\n    test 796 All5[1].B: {a1X: -53.426639, azi1: 0.0, aziX: 0.0, lat1: 0.0, latX: -53.518675, lon1: 180.0, lonX: 180.0, s1X: -5932344.259165}  FAILED, KNOWN, expected {azi1: 0.0, lat1: 0.0, latX: -53.518675, lon1: 180.0, lonX: 180.0, s1X: -5932344.259165}\n    test 797 All5[1].sAB: 1.9e-09  FAILED, KNOWN (7e-10), expected 2.6e-09\n    test 798 All5[1].aAB: 1.7e-14  FAILED, KNOWN (6.3954e-15), expected 2.33954e-14\n    test 799 All5[1].c: 0\n    test 800 All5[1].iteration: 4  FAILED, KNOWN, expected None\n\n    test 801 All5[2].A: {a1X: -4.448619, azi1: -147.7, aziX: -144.55245, lat1: 50.0, latX: 53.692598, lon1: -4.0, lonX: 0.0, s1X: -494582.492241}  FAILED, KNOWN, expected {azi1: 212.3, lat1: 50.0, latX: 53.692598, lon1: -4.0, lonX: -0.0, s1X: -494582.492241}\n    test 802 All5[2].A.azi1: 212.3  FAILED, KNOWN (1.69571), expected -147.7\n    test 803 All5[2].B: {a1X: -233.600735, azi1: 0.0, aziX: 180.0, lat1: 0.0, latX: 53.692598, lon1: 180.0, lonX: 0.0, s1X: -25955632.952022}  FAILED, KNOWN, expected {azi1: 0.0, lat1: 0.0, latX: 53.692598, lon1: 180.0, lonX: 0.0, s1X: -25955632.952022}\n    test 804 All5[2].sAB: 1.6e-09  FAILED, KNOWN (2e-10), expected 1.8e-09\n    test 805 All5[2].aAB: 1.5e-14  FAILED, KNOWN (1.18877e-15), expected 1.61888e-14\n    test 806 All5[2].c: 0\n    test 807 All5[2].iteration: 4  FAILED, KNOWN, expected None\n\n    test 808 All5[3].A: {a1X: -184.660358, azi1: -147.7, aziX: -35.614985, lat1: 50.0, latX: -53.864737, lon1: -4.0, lonX: -180.0, s1X: -20518081.166643}  FAILED, KNOWN, expected {azi1: 212.3, lat1: 50.0, latX: -53.864737, lon1: -4.0, lonX: -180.0, s1X: -20518081.166643}\n    test 809 All5[3].A.azi1: 212.3  FAILED, KNOWN (1.69571), expected -147.7\n    test 810 All5[3].B: {a1X: -53.773048, azi1: 0.0, aziX: 0.0, lat1: 0.0, latX: -53.864737, lon1: 180.0, lonX: 180.0, s1X: -5970860.779079}  FAILED, KNOWN, expected {azi1: 0.0, lat1: 0.0, latX: -53.864737, lon1: 180.0, lonX: 180.0, s1X: -5970860.779079}\n    test 811 All5[3].sAB: 8.2e-09  FAILED, KNOWN (8.1e-09), expected 1e-10\n    test 812 All5[3].aAB: 7.4e-14  FAILED, KNOWN (7.4e-14), expected 0\n    test 813 All5[3].c: 0\n    test 814 All5[3].iteration: 4  FAILED, KNOWN, expected None\n\n    test 815 Middle.c: 0\n    test 816 Middle.aAB: 10.2799\n    test 817 Middle.lonA: 4.96188\n    test 818 Middle.sAB: 1.14053e+06\n    test 819 Middle.lonB: -4\n    test 820 Middle.sX0: 0\n    test 821 Middle.latA: 5.01951\n    test 822 Middle.latB: 1e-15  FAILED, KNOWN (0.0362822), expected 0.0362822\n    test 823 Middle.sB: 5.54085e+06  FAILED, KNOWN (0.000724055), expected 5.53684e+06\n    test 824 Middle.sA: 782555\n\n    test 825 Middle5.A: {a12: 14.106434, a1M: 7.053396, azi1: 44.75191, azi2: 45.629037, aziM: 44.969535, lat1: 0.0, lat2: 10.0, latM: 5.019509, lon1: 0.0, lon2: 10.0, lonM: 4.961883, s12: 1565109.099218, s1M: 782554.549609}  FAILED, KNOWN, expected {a12: 14.106434, a1M: 7.053396, azi1: 44.75191, azi2: 45.629037, aziM: 44.969535, lat1: 0.0, lat2: 10.0, latM: 5.019509, lon1: 0.0, lon2: 10.0, lonM: 4.961883, m12: 780579.492953, M12: 0.992432, M21: 0.992432, s12: 1565109.099218, s1M: 782554.549609}\n    test 826 Middle5.B: {a12: 99.810444, a1M: 49.905222, azi1: 180.0, azi2: 180.0, aziM: 180.0, lat1: 50.0, lat2: -50.0, latM: 0.0, lon1: -4.0, lon2: -4.0, lonM: -4.0, s12: 11081694.083368, s1M: 5540847.041684}  FAILED, KNOWN, expected {a12: 99.810444, a1M: 49.869061, azi1: 180.0, azi2: 180.0, aziM: 180.0, lat1: 50.0, lat2: -50.0, latM: 0.036282, lon1: -4.0, lon2: -4.0, lonM: -4.0, m12: 4864571.105922, M12: 0.645508, M21: 0.644537, s12: 11073670.322999, s1M: 5536835.161499}\n    test 827 Middle5.B.a1M: 49.9052218889  FAILED, KNOWN (0.000724585), expected 49.8690613164\n    test 828 Middle5.B.s12: 11081694.0834  FAILED, KNOWN (0.000724055), expected 11073670.323\n    test 829 Middle5.B.latM: 1e-15  FAILED, KNOWN (0.0362822), expected 0.0362822197973\n    test 830 Middle5.B.s1M: 5540847.04168  FAILED, KNOWN (0.000724055), expected 5536835.1615\n    test 831 Middle5.sMM: 1.14053e+06  FAILED, KNOWN (0.0017142), expected 1.13857e+06\n    test 832 Middle5.aMM: 10.2799  FAILED, KNOWN (0.00171426), expected 10.2623\n    test 833 Middle5.c: 0\n\n    test 834 Segment.kB: 0\n    test 835 Segment.c: 0\n    test 836 Segment.aAB: 0\n    test 837 Segment.lonA: -4\n    test 838 Segment.sAB: 0  FAILED, KNOWN (3e-10), expected 3e-10\n    test 839 Segment.k: -3\n    test 840 Segment.lonB: -4\n    test 841 Segment.kA: -1\n    test 842 Segment.sX0: 1.86201e+06\n    test 843 Segment.latA: -4.05187\n    test 844 Segment.latB: -4.05187\n    test 845 Segment.sB: 5.98889e+06\n    test 846 Segment.sA: -631414\n\n    test 847 Segment5.A: {a1X: -5.691141, azi1: 44.75191, aziX: 44.893464, k2: -1, lat1: 0.0, latX: -4.051871, lon1: 0.0, lonX: -4.0, s1X: -631414.26877}  FAILED, KNOWN, expected {k2: -1, lat1: 0.0, lat2: 10.0, latX: -4.051871, lon1: 0.0, lon2: 10.0, lonX: -4.0, s1X: -631414.26877}\n    test 848 Segment5.B: {a1X: 53.943553, azi1: 180.0, aziX: 180.0, k2: 0, lat1: 50.0, latX: -4.051871, lon1: -4.0, lonX: -4.0, s1X: 5988887.278435}  FAILED, KNOWN, expected {k2: 0, lat1: 50.0, lat2: -50.0, latX: -4.051871, lon1: -4.0, lon2: -4.0, lonX: -4.0, s1X: 5988887.278435}\n    test 849 Segment5.sAB: 0  FAILED, KNOWN (3e-10), expected 3e-10\n    test 850 Segment5.aAB: 0  FAILED, KNOWN (2.70397e-15), expected 2.70397e-15\n    test 851 Segment5.c: 0\n\n    test 852 intersect7s[0].A: 04.051871°S, 004.0°W\n    test 853 intersect7s[0].B: 04.051871°S, 004.0°W\n    test 854 intersect7s[0].sAB: 1.1e-09  FAILED, KNOWN (8e-10), expected 3e-10\n    test 855 intersect7s[0].aAB: 1e-14  FAILED, KNOWN (7.29603e-15), expected 2.70397e-15\n    test 856 intersect7s[0].c: 0\n    test 857 intersect7s[0].kA: 0\n    test 858 intersect7s[0].kB: 0\n    test 859 intersect7s[0].iteration: None\n\n    test 860 intersect7s[1].A: 03.623464°N, 176.0°E\n    test 861 intersect7s[1].B: 03.623464°N, 176.0°E\n    test 862 intersect7s[1].sAB: 1.3e-09  FAILED, KNOWN (6e-10), expected 1.9e-09\n    test 863 intersect7s[1].aAB: 1.1e-14  FAILED, KNOWN (6.1186e-15), expected 1.71186e-14\n    test 864 intersect7s[1].c: 0\n    test 865 intersect7s[1].kA: 0\n    test 866 intersect7s[1].kB: 0\n    test 867 intersect7s[1].iteration: None\n\n    test 868 intersect7s[2].A: 04.051871°S, 004.0°W  FAILED, KNOWN (1.03199), expected 03.623464°N, 176.0°E\n    test 869 intersect7s[2].B: 04.051871°S, 004.0°W  FAILED, KNOWN (1.03199), expected 03.623464°N, 176.0°E\n    test 870 intersect7s[2].sAB: 1.1e-09  FAILED, KNOWN (3e-10), expected 8e-10\n    test 871 intersect7s[2].aAB: 1e-14  FAILED, KNOWN (2.79217e-15), expected 7.20783e-15\n    test 872 intersect7s[2].c: 0\n    test 873 intersect7s[2].kA: 0\n    test 874 intersect7s[2].kB: 0\n    test 875 intersect7s[2].iteration: None\n\n    test 876 intersect7s[3].A: 04.4796°N, 176.0°E  FAILED, KNOWN (1.02993), expected 03.19445°S, 004.0°W\n    test 877 intersect7s[3].B: 04.4796°N, 176.0°E  FAILED, KNOWN (1.02993), expected 03.19445°S, 004.0°W\n    test 878 intersect7s[3].sAB: 3.4e-09  FAILED, KNOWN (5e-10), expected 2.9e-09\n    test 879 intersect7s[3].aAB: 3.1e-14  FAILED, KNOWN (4.86149e-15), expected 2.61385e-14\n    test 880 intersect7s[3].c: 0\n    test 881 intersect7s[3].kA: 0\n    test 882 intersect7s[3].kB: 0\n    test 883 intersect7s[3].iteration: None\n\n    test 884 Sphere.Closest.c: 0\n    test 885 Sphere.Closest.aAB: 1.2e-14\n    test 886 Sphere.Closest.lonA: -29.8397\n    test 887 Sphere.Closest.sAB: 1.4e-09  FAILED, KNOWN (6e-10), expected 8e-10\n    test 888 Sphere.Closest.lonB: -29.8397\n    test 889 Sphere.Closest.sX0: 9.39521e+06\n    test 890 Sphere.Closest.latA: 1.2e-14  FAILED, KNOWN (1.1e-14), expected 1e-15\n    test 891 Sphere.Closest.latB: -0\n    test 892 Sphere.Closest.sB: -3.31802e+06\n    test 893 Sphere.Closest.sA: 6.07719e+06\n\n    test 894 Sphere.Closest5.A: {a1X: 54.653489, azi1: -147.7, aziX: -159.911264, lat1: 50.0, latX: 0.0, lon1: -4.0, lonX: -29.839663, s1X: 6077190.710199}  FAILED, KNOWN, expected {azi1: 212.3, lat1: 50.0, latX: 0.0, lon1: -4.0, lonX: -29.839663, s1X: 6077190.710199}\n    test 895 Sphere.Closest5.A.azi1: 212.3  FAILED, KNOWN (1.69571), expected -147.7\n    test 896 Sphere.Closest5.B: {a1X: -29.839663, azi1: 90.0, aziX: 90.0, lat1: 0.0, latX: -0.0, lon1: 0.0, lonX: -29.839663, s1X: -3318019.115902}  FAILED, KNOWN, expected {azi1: 90.0, lat1: 0.0, latX: -0.0, lon1: 0.0, lonX: -29.839663, s1X: -3318019.115902}\n    test 897 Sphere.Closest5.sAB: 1.4e-09  FAILED, KNOWN (6e-10), expected 8e-10\n    test 898 Sphere.Closest5.aAB: 1.2e-14  FAILED, KNOWN (4.80543e-15), expected 7.19457e-15\n    test 899 Sphere.Closest5.c: 0\n\n    test 900 _Xdict2: 183\n\n    testGeodesicExact(pygeodesy.geodesici, 26.02.04)\n    test 901 Intersector: name='', geodesic=GeodesicExact(name='', caps=0, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), C4order=30)\n\n    test 902 Closest.1.sX0: 6.93463e+06\n    test 903 Closest.1.sB: 2.70933e+06\n    test 904 Closest.1.c: 0\n    test 905 Closest.1.sA: 4.2253e+06\n\n    test 906 Closest5.1.A: {a1X: 38.075573, azi1: 45.0, aziX: 51.790249, lat1: 0.0, latX: 25.92918, lon1: 0.0, lonX: 28.89426, m12: 3921213.171755, M12: 0.787198, M21: 0.787384, s1X: 4225301.108897}  FAILED, KNOWN, expected {azi1: 45.0, lat1: 0.0, latX: 25.92918, lon1: 0.0, lonX: 28.89426, s1X: 4225301.108897}\n    test 907 Closest5.1.B: {a1X: 24.392077, azi1: 135.0, aziX: 146.182975, lat1: 45.0, latX: 25.92918, lon1: 10.0, lonX: 28.89426, m12: 2628412.372503, M12: 0.911005, M21: 0.910881, s1X: 2709328.885611}  FAILED, KNOWN, expected {azi1: 135.0, lat1: 45.0, latX: 25.92918, lon1: 10.0, lonX: 28.89426, s1X: 2709328.885611}\n    test 908 Closest5.1.sAB: 3.55903e-10  FAILED, KNOWN (3.55903e-10), expected 0\n    test 909 Closest5.1.aAB: 3.20583e-15  FAILED, KNOWN (3.20583e-15), expected 0\n    test 910 Closest5.1.c: 0\n\n    test 911 Closest.2.sX0: 9.3693e+06\n    test 912 Closest.2.sB: -3.31125e+06\n    test 913 Closest.2.c: 0\n    test 914 Closest.2.sA: 6.05805e+06\n\n    test 915 Closest5.2.A: {a1X: 54.562637, azi1: -147.7, aziX: -159.869978, lat1: 50.0, latX: 0.0, lon1: -4.0, lonX: -29.745492, m12: 5184118.430287, M12: 0.58097, M21: 0.579813, s1X: 6058048.653081}  FAILED, KNOWN, expected {azi1: 212.3, lat1: 50.0, latX: -0.0, lon1: -4.0, lonX: -29.745492, s1X: 6058048.653081}\n    test 916 Closest5.2.A.azi1: 212.3  FAILED, KNOWN (1.69571), expected -147.7\n    test 917 Closest5.2.B: {a1X: -29.845558, azi1: 90.0, aziX: 90.0, lat1: 0.0, latX: -0.0, lon1: 0.0, lonX: -29.745492, m12: -3163525.514556, M12: 0.86737, M21: 0.86737, s1X: -3311252.995823}  FAILED, KNOWN, expected {azi1: 90.0, lat1: 0.0, latX: -0.0, lon1: 0.0, lonX: -29.745492, s1X: -3311252.995823}\n    test 918 Closest5.2.sAB: 7.90973e-10  FAILED, KNOWN (2.09027e-10), expected 1e-09\n    test 919 Closest5.2.aAB: 7.12933e-15  FAILED, KNOWN (1.88404e-15), expected 9.01337e-15\n    test 920 Closest5.2.c: 0\n\n    test 921 All[0].sX0: 1.45468e+07\n    test 922 All[0].sB: 1.40522e+07\n    test 923 All[0].c: 0\n    test 924 All[0].sA: -494582\n    test 925 All[0].iteration: 4  FAILED, KNOWN (1), expected 0\n\n    test 926 All[1].sX0: 2.54615e+07\n    test 927 All[1].sB: -5.93234e+06\n    test 928 All[1].c: 0\n    test 929 All[1].sA: 1.95291e+07\n    test 930 All[1].iteration: 4  FAILED, KNOWN, expected 1\n\n    test 931 All[2].sX0: 2.64502e+07\n    test 932 All[2].sB: -2.59556e+07\n    test 933 All[2].c: 0\n    test 934 All[2].sA: -494582\n    test 935 All[2].iteration: 4  FAILED, KNOWN, expected 2\n\n    test 936 All[3].sX0: 2.64889e+07\n    test 937 All[3].sB: -5.97086e+06\n    test 938 All[3].c: 0\n    test 939 All[3].sA: -2.05181e+07\n    test 940 All[3].iteration: 4  FAILED, KNOWN, expected 3\n\n    test 941 All5[0].A: {a1X: -4.448619, azi1: -147.7, aziX: -144.55245, lat1: 50.0, latX: 53.692598, lon1: -4.0, lonX: -0.0, m12: -494087.771694, M12: 0.996999, M21: 0.997, s1X: -494582.492241}  FAILED, KNOWN, expected {azi1: 212.3, lat1: 50.0, latX: 53.692598, lon1: -4.0, lonX: -0.0, s1X: -494582.492241}\n    test 942 All5[0].A.azi1: 212.3  FAILED, KNOWN (1.69571), expected -147.7\n    test 943 All5[0].B: {a1X: 126.399265, azi1: 0.0, aziX: 180.0, lat1: 0.0, latX: 53.692598, lon1: 180.0, lonX: 0.0, m12: 5161737.753947, M12: -0.593409, M21: -0.586165, s1X: 14052229.965229}  FAILED, KNOWN, expected {azi1: 0.0, lat1: 0.0, latX: 53.692598, lon1: 180.0, lonX: 0.0, s1X: 14052229.965229}\n    test 944 All5[0].sAB: 1.09328e-09  FAILED, KNOWN (1.06721e-10), expected 1.2e-09\n    test 945 All5[0].aAB: 9.83269e-15  FAILED, KNOWN (9.59822e-16), expected 1.07925e-14\n    test 946 All5[0].c: 0\n    test 947 All5[0].iteration: 4  FAILED, KNOWN, expected None\n\n    test 948 All5[1].A: {a1X: 175.764866, azi1: -147.7, aziX: -35.280487, lat1: 50.0, latX: -53.518675, lon1: -4.0, lonX: 180.0, m12: 488198.978244, M12: -1.001203, M21: -0.992673, s1X: 19529110.042937}  FAILED, KNOWN, expected {azi1: 212.3, lat1: 50.0, latX: -53.518675, lon1: -4.0, lonX: -180.0, s1X: 19529110.042937}\n    test 949 All5[1].A.lonX: -180.0  FAILED, KNOWN (2), expected 180.0\n    test 950 All5[1].A.azi1: 212.3  FAILED, KNOWN (1.69571), expected -147.7\n    test 951 All5[1].B: {a1X: -53.426639, azi1: 0.0, aziX: 0.0, lat1: 0.0, latX: -53.518675, lon1: 180.0, lonX: 180.0, m12: -5110370.613686, M12: 0.595852, M21: 0.597076, s1X: -5932344.259165}  FAILED, KNOWN, expected {azi1: 0.0, lat1: 0.0, latX: -53.518675, lon1: 180.0, lonX: 180.0, s1X: -5932344.259165}\n    test 952 All5[1].sAB: 2.16323e-09  FAILED, KNOWN (4.36775e-10), expected 2.6e-09\n    test 953 All5[1].aAB: 1.94557e-14  FAILED, KNOWN (3.93968e-15), expected 2.33954e-14\n    test 954 All5[1].c: 0\n    test 955 All5[1].iteration: 4  FAILED, KNOWN, expected None\n\n    test 956 All5[2].A: {a1X: -4.448619, azi1: -147.7, aziX: -144.55245, lat1: 50.0, latX: 53.692598, lon1: -4.0, lonX: -0.0, m12: -494087.771694, M12: 0.996999, M21: 0.997, s1X: -494582.492241}  FAILED, KNOWN, expected {azi1: 212.3, lat1: 50.0, latX: 53.692598, lon1: -4.0, lonX: -0.0, s1X: -494582.492241}\n    test 957 All5[2].A.azi1: 212.3  FAILED, KNOWN (1.69571), expected -147.7\n    test 958 All5[2].B: {a1X: -233.600735, azi1: 0.0, aziX: 180.0, lat1: 0.0, latX: 53.692598, lon1: 180.0, lonX: 0.0, m12: 5082071.927222, M12: -0.593409, M21: -0.603127, s1X: -25955632.952022}  FAILED, KNOWN, expected {azi1: 0.0, lat1: 0.0, latX: 53.692598, lon1: 180.0, lonX: 0.0, s1X: -25955632.952022}\n    test 959 All5[2].sAB: 6.21709e-09  FAILED, KNOWN (4.41709e-09), expected 1.8e-09\n    test 960 All5[2].aAB: 5.5915e-14  FAILED, KNOWN (3.97262e-14), expected 1.61888e-14\n    test 961 All5[2].c: 0\n    test 962 All5[2].iteration: 4  FAILED, KNOWN, expected None\n\n    test 963 All5[3].A: {a1X: -184.660358, azi1: -147.7, aziX: -35.614985, lat1: 50.0, latX: -53.864737, lon1: -4.0, lonX: 180.0, m12: 499994.868419, M12: -0.992833, M21: -1.001337, s1X: -20518081.166643}  FAILED, KNOWN, expected {azi1: 212.3, lat1: 50.0, latX: -53.864737, lon1: -4.0, lonX: -180.0, s1X: -20518081.166643}\n    test 964 All5[3].A.lonX: -180.0  FAILED, KNOWN (2), expected 180.0\n    test 965 All5[3].A.azi1: 212.3  FAILED, KNOWN (1.69571), expected -147.7\n    test 966 All5[3].B: {a1X: -53.773048, azi1: 0.0, aziX: 0.0, lat1: 0.0, latX: -53.864737, lon1: 180.0, lonX: 180.0, m12: -5133274.754826, M12: 0.590985, M21: 0.592236, s1X: -5970860.779079}  FAILED, KNOWN, expected {azi1: 0.0, lat1: 0.0, latX: -53.864737, lon1: 180.0, lonX: 180.0, s1X: -5970860.779079}\n    test 967 All5[3].sAB: 1.99911e-09  FAILED, KNOWN (1.89911e-09), expected 1e-10\n    test 968 All5[3].aAB: 1.79794e-14  FAILED, KNOWN (1.79794e-14), expected 0\n    test 969 All5[3].c: 0\n    test 970 All5[3].iteration: 4  FAILED, KNOWN, expected None\n\n    test 971 Middle.sX0: 0\n    test 972 Middle.sB: 5.53684e+06\n    test 973 Middle.c: 0\n    test 974 Middle.sA: 782555\n\n    test 975 Middle5.A: {a12: 14.106434, a1M: 7.053396, azi1: 44.75191, azi2: 45.629037, aziM: 44.969535, lat1: 0.0, lat2: 10.0, latM: 5.019509, lon1: 0.0, lon2: 10.0, lonM: 4.961883, m12: 780579.492953, M12: 0.992432, M21: 0.992432, s12: 1565109.099218, s1M: 782554.549609}\n    test 976 Middle5.B: {a12: 99.810444, a1M: 49.869061, azi1: 180.0, azi2: 180.0, aziM: 180.0, lat1: 50.0, lat2: -50.0, latM: 0.036282, lon1: -4.0, lon2: -4.0, lonM: -4.0, m12: 4864571.105922, M12: 0.645508, M21: 0.644537, s12: 11073670.322999, s1M: 5536835.161499}\n    test 977 Middle5.sMM: 1.13857e+06\n    test 978 Middle5.aMM: 10.2623\n    test 979 Middle5.c: 0\n\n    test 980 Segment.sX0: 1.86602e+06  FAILED, KNOWN (0.00214997), expected 1.86201e+06\n    test 981 Segment.kB: 0\n    test 982 Segment.c: 0\n    test 983 Segment.sB: 5.98889e+06\n    test 984 Segment.sA: -631414\n    test 985 Segment.kA: -1\n    test 986 Segment.k: -3\n\n    test 987 Segment5.A: {a1X: -5.691141, azi1: 44.75191, azi2: 45.629037, aziX: 44.893464, k2: -1, lat1: 0.0, lat2: 10.0, latX: -4.051871, lon1: 0.0, lon2: 10.0, lonX: -4.0, m12: -630376.505305, M12: 0.995071, M21: 0.995071, s1X: -631414.26877}  FAILED, KNOWN, expected {k2: -1, lat1: 0.0, lat2: 10.0, latX: -4.051871, lon1: 0.0, lon2: 10.0, lonX: -4.0, s1X: -631414.26877}\n    test 988 Segment5.B: {a1X: 53.943553, azi1: 180.0, azi2: 180.0, aziX: 180.0, k2: 0, lat1: 50.0, lat2: -50.0, latX: -4.051871, lon1: -4.0, lon2: -4.0, lonX: -4.0, m12: 5143394.782542, M12: 0.589657, M21: 0.588535, s1X: 5988887.278435}  FAILED, KNOWN, expected {k2: 0, lat1: 50.0, lat2: -50.0, latX: -4.051871, lon1: -4.0, lon2: -4.0, lonX: -4.0, s1X: 5988887.278435}\n    test 989 Segment5.sAB: 2.95878e-10  FAILED, KNOWN (4.12174e-12), expected 3e-10\n    test 990 Segment5.aAB: 2.66682e-15  FAILED, KNOWN (3.71501e-17), expected 2.70397e-15\n    test 991 Segment5.c: 0\n\n    test 992 intersect7s[0].A: 04.051871°S, 004.0°W\n    test 993 intersect7s[0].B: 04.051871°S, 004.0°W\n    test 994 intersect7s[0].sAB: 1.47939e-10  FAILED, KNOWN (1.52061e-10), expected 3e-10\n    test 995 intersect7s[0].aAB: 1.33341e-15  FAILED, KNOWN (1.37056e-15), expected 2.70397e-15\n    test 996 intersect7s[0].c: 0\n    test 997 intersect7s[0].kA: 0\n    test 998 intersect7s[0].kB: 0\n    test 999 intersect7s[0].iteration: None\n\n    test 1000 intersect7s[1].A: 03.623464°N, 176.0°E\n    test 1001 intersect7s[1].B: 03.623464°N, 176.0°E\n    test 1002 intersect7s[1].sAB: 3.15761e-09  FAILED, KNOWN (1.25761e-09), expected 1.9e-09\n    test 1003 intersect7s[1].aAB: 2.84603e-14  FAILED, KNOWN (1.13417e-14), expected 1.71186e-14\n    test 1004 intersect7s[1].c: 0\n    test 1005 intersect7s[1].kA: 0\n    test 1006 intersect7s[1].kB: 0\n    test 1007 intersect7s[1].iteration: None\n\n    test 1008 intersect7s[2].A: 04.051871°S, 004.0°W  FAILED, KNOWN (1.03199), expected 03.623464°N, 176.0°E\n    test 1009 intersect7s[2].B: 04.051871°S, 004.0°W  FAILED, KNOWN (1.03199), expected 03.623464°N, 176.0°E\n    test 1010 intersect7s[2].sAB: 1.43288e-09  FAILED, KNOWN (6.3288e-10), expected 8e-10\n    test 1011 intersect7s[2].aAB: 1.29149e-14  FAILED, KNOWN (5.70703e-15), expected 7.20783e-15\n    test 1012 intersect7s[2].c: 0\n    test 1013 intersect7s[2].kA: 0\n    test 1014 intersect7s[2].kB: 0\n    test 1015 intersect7s[2].iteration: None\n\n    test 1016 intersect7s[3].A: 04.4796°N, 176.0°E  FAILED, KNOWN (1.02993), expected 03.19445°S, 004.0°W\n    test 1017 intersect7s[3].B: 04.4796°N, 176.0°E  FAILED, KNOWN (1.02993), expected 03.19445°S, 004.0°W\n    test 1018 intersect7s[3].sAB: 3.15429e-09  FAILED, KNOWN (2.5429e-10), expected 2.9e-09\n    test 1019 intersect7s[3].aAB: 2.84302e-14  FAILED, KNOWN (2.2917e-15), expected 2.61385e-14\n    test 1020 intersect7s[3].c: 0\n    test 1021 intersect7s[3].kA: 0\n    test 1022 intersect7s[3].kB: 0\n    test 1023 intersect7s[3].iteration: None\n\n    test 1024 Sphere.Closest.sX0: 9.39521e+06\n    test 1025 Sphere.Closest.sB: -3.31802e+06\n    test 1026 Sphere.Closest.c: 0\n    test 1027 Sphere.Closest.sA: 6.07719e+06\n\n    test 1028 Sphere.Closest5.A: {a1X: 54.653489, azi1: -147.7, aziX: -159.911264, lat1: 50.0, latX: -0.0, lon1: -4.0, lonX: -29.839663, m12: 5196622.322619, M12: 0.57852, M21: 0.57852, s1X: 6077190.710199}  FAILED, KNOWN, expected {azi1: 212.3, lat1: 50.0, latX: 0.0, lon1: -4.0, lonX: -29.839663, s1X: 6077190.710199}\n    test 1029 Sphere.Closest5.A.azi1: 212.3  FAILED, KNOWN (1.69571), expected -147.7\n    test 1030 Sphere.Closest5.B: {a1X: -29.839663, azi1: 90.0, aziX: 90.0, lat1: 0.0, latX: -0.0, lon1: 0.0, lonX: -29.839663, m12: -3170047.454389, M12: 0.867421, M21: 0.867421, s1X: -3318019.115902}  FAILED, KNOWN, expected {azi1: 90.0, lat1: 0.0, latX: -0.0, lon1: 0.0, lonX: -29.839663, s1X: -3318019.115902}\n    test 1031 Sphere.Closest5.sAB: 7.90087e-10  FAILED, KNOWN (9.91253e-12), expected 8e-10\n    test 1032 Sphere.Closest5.aAB: 7.10543e-15  FAILED, KNOWN (8.91455e-17), expected 7.19457e-15\n    test 1033 Sphere.Closest5.c: 0\n\n    test 1034 _Xdict2: 183\n\n    testGeodesic(pygeodesy.geodesici, 26.02.04)\n    test 1035 Intersector: name='', geodesic=<pygeodesy.geodesicw.Geodesic object at 0x7fe2c0400ed0>\n\n    test 1036 Closest.1.c: 0\n    test 1037 Closest.1.aAB: 3.20583e-15  FAILED, KNOWN (3.20583e-15), expected 0\n    test 1038 Closest.1.lonA: 28.8943\n    test 1039 Closest.1.sAB: 3.55903e-10  FAILED, KNOWN (3.55903e-10), expected 0\n    test 1040 Closest.1.lonB: 28.8943\n    test 1041 Closest.1.sX0: 6.93463e+06\n    test 1042 Closest.1.latA: 25.9292\n    test 1043 Closest.1.latB: 25.9292\n    test 1044 Closest.1.sB: 2.70933e+06\n    test 1045 Closest.1.sA: 4.2253e+06\n\n    test 1046 Closest5.1.A: {a1X: 38.075573, azi1: 45.0, aziX: 51.790249, lat1: 0.0, latX: 25.92918, lon1: 0.0, lonX: 28.89426, s1X: 4225301.108897}  FAILED, KNOWN, expected {azi1: 45.0, lat1: 0.0, latX: 25.92918, lon1: 0.0, lonX: 28.89426, s1X: 4225301.108897}\n    test 1047 Closest5.1.B: {a1X: 24.392077, azi1: 135.0, aziX: 146.182975, lat1: 45.0, latX: 25.92918, lon1: 10.0, lonX: 28.89426, s1X: 2709328.885611}  FAILED, KNOWN, expected {azi1: 135.0, lat1: 45.0, latX: 25.92918, lon1: 10.0, lonX: 28.89426, s1X: 2709328.885611}\n    test 1048 Closest5.1.sAB: 3.55903e-10  FAILED, KNOWN (3.55903e-10), expected 0\n    test 1049 Closest5.1.aAB: 3.20583e-15  FAILED, KNOWN (3.20583e-15), expected 0\n    test 1050 Closest5.1.c: 0\n\n    test 1051 Closest.2.c: 0\n    test 1052 Closest.2.aAB: 4.65105e-15  FAILED, KNOWN (6.34895e-15), expected 1.1e-14\n    test 1053 Closest.2.lonA: -29.7455\n    test 1054 Closest.2.sAB: 5.16017e-10  FAILED, KNOWN (4.83983e-10), expected 1e-09\n    test 1055 Closest.2.lonB: -29.7455\n    test 1056 Closest.2.sX0: 9.3693e+06\n    test 1057 Closest.2.latA: -2.99631e-15  FAILED, KNOWN (6.00369e-15), expected -9e-15\n    test 1058 Closest.2.latB: -0\n    test 1059 Closest.2.sB: -3.31125e+06\n    test 1060 Closest.2.sA: 6.05805e+06\n\n    test 1061 Closest5.2.A: {a1X: 54.562637, azi1: -147.7, aziX: -159.869978, lat1: 50.0, latX: -0.0, lon1: -4.0, lonX: -29.745492, s1X: 6058048.653081}  FAILED, KNOWN, expected {azi1: 212.3, lat1: 50.0, latX: -0.0, lon1: -4.0, lonX: -29.745492, s1X: 6058048.653081}\n    test 1062 Closest5.2.A.azi1: 212.3  FAILED, KNOWN (1.69571), expected -147.7\n    test 1063 Closest5.2.B: {a1X: -29.845558, azi1: 90.0, aziX: 90.0, lat1: 0.0, latX: -0.0, lon1: 0.0, lonX: -29.745492, s1X: -3311252.995823}  FAILED, KNOWN, expected {azi1: 90.0, lat1: 0.0, latX: -0.0, lon1: 0.0, lonX: -29.745492, s1X: -3311252.995823}\n    test 1064 Closest5.2.sAB: 5.16017e-10  FAILED, KNOWN (4.83983e-10), expected 1e-09\n    test 1065 Closest5.2.aAB: 4.65105e-15  FAILED, KNOWN (4.36232e-15), expected 9.01337e-15\n    test 1066 Closest5.2.c: 0\n\n    test 1067 All[0].c: 0\n    test 1068 All[0].aAB: 1.62149e-14  FAILED, KNOWN (5.42236e-15), expected 1.07925e-14\n    test 1069 All[0].lonA: 5.32907e-15  FAILED, KNOWN (1.2e-14), expected -1.2e-14\n    test 1070 All[0].sAB: 1.8029e-09  FAILED, KNOWN (6.02903e-10), expected 1.2e-09\n    test 1071 All[0].lonB: 0\n    test 1072 All[0].sX0: 1.45468e+07\n    test 1073 All[0].latA: 53.6926\n    test 1074 All[0].latB: 53.6926\n    test 1075 All[0].sB: 1.40522e+07\n    test 1076 All[0].sA: -494582\n    test 1077 All[0].iteration: 4  FAILED, KNOWN (1), expected 0\n\n    test 1078 All[1].c: 0\n    test 1079 All[1].aAB: 4.64921e-14  FAILED, KNOWN (2.30967e-14), expected 2.33954e-14\n    test 1080 All[1].lonA: 180  FAILED, KNOWN (2), expected -180\n    test 1081 All[1].sAB: 5.16933e-09  FAILED, KNOWN (2.56933e-09), expected 2.6e-09\n    test 1082 All[1].lonB: 180\n    test 1083 All[1].sX0: 2.54615e+07\n    test 1084 All[1].latA: -53.5187\n    test 1085 All[1].latB: -53.5187\n    test 1086 All[1].sB: -5.93234e+06\n    test 1087 All[1].sA: 1.95291e+07\n    test 1088 All[1].iteration: 4  FAILED, KNOWN, expected 1\n\n    test 1089 All[2].c: 0\n    test 1090 All[2].aAB: 2.22701e-14  FAILED, KNOWN (6.08137e-15), expected 1.61888e-14\n    test 1091 All[2].lonA: 8.88178e-16  FAILED, KNOWN (1.2e-14), expected -1.2e-14\n    test 1092 All[2].sAB: 2.47618e-09  FAILED, KNOWN (6.76176e-10), expected 1.8e-09\n    test 1093 All[2].lonB: 0\n    test 1094 All[2].sX0: 2.64502e+07\n    test 1095 All[2].latA: 53.6926\n    test 1096 All[2].latB: 53.6926\n    test 1097 All[2].sB: -2.59556e+07\n    test 1098 All[2].sA: -494582\n    test 1099 All[2].iteration: 4  FAILED, KNOWN, expected 2\n\n    test 1100 All[3].c: 0\n    test 1101 All[3].aAB: 3.3633e-14  FAILED, KNOWN (3.3633e-14), expected 0\n    test 1102 All[3].lonA: 180  FAILED, KNOWN (2), expected -180\n    test 1103 All[3].sAB: 3.73962e-09  FAILED, KNOWN (3.63962e-09), expected 1e-10\n    test 1104 All[3].lonB: 180\n    test 1105 All[3].sX0: 2.64889e+07\n    test 1106 All[3].latA: -53.8647\n    test 1107 All[3].latB: -53.8647\n    test 1108 All[3].sB: -5.97086e+06\n    test 1109 All[3].sA: -2.05181e+07\n    test 1110 All[3].iteration: 4  FAILED, KNOWN, expected 3\n\n    test 1111 All5[0].A: {a1X: -4.448619, azi1: -147.7, aziX: -144.55245, lat1: 50.0, latX: 53.692598, lon1: -4.0, lonX: 0.0, s1X: -494582.492241}  FAILED, KNOWN, expected {azi1: 212.3, lat1: 50.0, latX: 53.692598, lon1: -4.0, lonX: -0.0, s1X: -494582.492241}\n    test 1112 All5[0].A.azi1: 212.3  FAILED, KNOWN (1.69571), expected -147.7\n    test 1113 All5[0].B: {a1X: 126.399265, azi1: 0.0, aziX: 180.0, lat1: 0.0, latX: 53.692598, lon1: 180, lonX: 0.0, s1X: 14052229.965229}  FAILED, KNOWN, expected {azi1: 0.0, lat1: 0.0, latX: 53.692598, lon1: 180.0, lonX: 0.0, s1X: 14052229.965229}\n    test 1114 All5[0].sAB: 1.8029e-09  FAILED, KNOWN (6.02903e-10), expected 1.2e-09\n    test 1115 All5[0].aAB: 1.62149e-14  FAILED, KNOWN (5.42236e-15), expected 1.07925e-14\n    test 1116 All5[0].c: 0\n    test 1117 All5[0].iteration: 4  FAILED, KNOWN, expected None\n\n    test 1118 All5[1].A: {a1X: 175.764866, azi1: -147.7, aziX: -35.280487, lat1: 50.0, latX: -53.518675, lon1: -4.0, lonX: 180.0, s1X: 19529110.042937}  FAILED, KNOWN, expected {azi1: 212.3, lat1: 50.0, latX: -53.518675, lon1: -4.0, lonX: -180.0, s1X: 19529110.042937}\n    test 1119 All5[1].A.lonX: -180.0  FAILED, KNOWN (2), expected 180.0\n    test 1120 All5[1].A.azi1: 212.3  FAILED, KNOWN (1.69571), expected -147.7\n    test 1121 All5[1].B: {a1X: -53.426639, azi1: 0.0, aziX: 0.0, lat1: 0.0, latX: -53.518675, lon1: 180, lonX: 180, s1X: -5932344.259165}  FAILED, KNOWN, expected {azi1: 0.0, lat1: 0.0, latX: -53.518675, lon1: 180.0, lonX: 180.0, s1X: -5932344.259165}\n    test 1122 All5[1].sAB: 5.16933e-09  FAILED, KNOWN (2.56933e-09), expected 2.6e-09\n    test 1123 All5[1].aAB: 4.64921e-14  FAILED, KNOWN (2.30967e-14), expected 2.33954e-14\n    test 1124 All5[1].c: 0\n    test 1125 All5[1].iteration: 4  FAILED, KNOWN, expected None\n\n    test 1126 All5[2].A: {a1X: -4.448619, azi1: -147.7, aziX: -144.55245, lat1: 50.0, latX: 53.692598, lon1: -4.0, lonX: 0.0, s1X: -494582.492241}  FAILED, KNOWN, expected {azi1: 212.3, lat1: 50.0, latX: 53.692598, lon1: -4.0, lonX: -0.0, s1X: -494582.492241}\n    test 1127 All5[2].A.azi1: 212.3  FAILED, KNOWN (1.69571), expected -147.7\n    test 1128 All5[2].B: {a1X: -233.600735, azi1: 0.0, aziX: 180.0, lat1: 0.0, latX: 53.692598, lon1: 180, lonX: 0.0, s1X: -25955632.952022}  FAILED, KNOWN, expected {azi1: 0.0, lat1: 0.0, latX: 53.692598, lon1: 180.0, lonX: 0.0, s1X: -25955632.952022}\n    test 1129 All5[2].sAB: 2.47618e-09  FAILED, KNOWN (6.76176e-10), expected 1.8e-09\n    test 1130 All5[2].aAB: 2.22701e-14  FAILED, KNOWN (6.08137e-15), expected 1.61888e-14\n    test 1131 All5[2].c: 0\n    test 1132 All5[2].iteration: 4  FAILED, KNOWN, expected None\n\n    test 1133 All5[3].A: {a1X: -184.660358, azi1: -147.7, aziX: -35.614985, lat1: 50.0, latX: -53.864737, lon1: -4.0, lonX: 180.0, s1X: -20518081.166643}  FAILED, KNOWN, expected {azi1: 212.3, lat1: 50.0, latX: -53.864737, lon1: -4.0, lonX: -180.0, s1X: -20518081.166643}\n    test 1134 All5[3].A.lonX: -180.0  FAILED, KNOWN (2), expected 180.0\n    test 1135 All5[3].A.azi1: 212.3  FAILED, KNOWN (1.69571), expected -147.7\n    test 1136 All5[3].B: {a1X: -53.773048, azi1: 0.0, aziX: 0.0, lat1: 0.0, latX: -53.864737, lon1: 180, lonX: 180, s1X: -5970860.779079}  FAILED, KNOWN, expected {azi1: 0.0, lat1: 0.0, latX: -53.864737, lon1: 180.0, lonX: 180.0, s1X: -5970860.779079}\n    test 1137 All5[3].sAB: 3.73962e-09  FAILED, KNOWN (3.63962e-09), expected 1e-10\n    test 1138 All5[3].aAB: 3.3633e-14  FAILED, KNOWN (3.3633e-14), expected 0\n    test 1139 All5[3].c: 0\n    test 1140 All5[3].iteration: 4  FAILED, KNOWN, expected None\n\n    test 1141 Middle.c: 0\n    test 1142 Middle.aAB: 10.2799\n    test 1143 Middle.lonA: 4.96188\n    test 1144 Middle.sAB: 1.14053e+06\n    test 1145 Middle.lonB: -4\n    test 1146 Middle.sX0: 0\n    test 1147 Middle.latA: 5.01951\n    test 1148 Middle.latB: 3.19125e-15  FAILED, KNOWN (0.0362822), expected 0.0362822\n    test 1149 Middle.sB: 5.54085e+06  FAILED, KNOWN (0.000724055), expected 5.53684e+06\n    test 1150 Middle.sA: 782555\n\n    test 1151 Middle5.A: {a12: 14.106434, a1M: 7.053396, azi1: 44.75191, azi2: 45.629037, aziM: 44.969535, lat1: 0.0, lat2: 10.0, latM: 5.019509, lon1: 0.0, lon2: 10.0, lonM: 4.961883, s12: 1565109.099218, s1M: 782554.549609}  FAILED, KNOWN, expected {a12: 14.106434, a1M: 7.053396, azi1: 44.75191, azi2: 45.629037, aziM: 44.969535, lat1: 0.0, lat2: 10.0, latM: 5.019509, lon1: 0.0, lon2: 10.0, lonM: 4.961883, m12: 780579.492953, M12: 0.992432, M21: 0.992432, s12: 1565109.099218, s1M: 782554.549609}\n    test 1152 Middle5.B: {a12: 99.810444, a1M: 49.905222, azi1: 180.0, azi2: 180.0, aziM: 180.0, lat1: 50.0, lat2: -50.0, latM: 0.0, lon1: -4.0, lon2: -4.0, lonM: -4.0, s12: 11081694.083368, s1M: 5540847.041684}  FAILED, KNOWN, expected {a12: 99.810444, a1M: 49.869061, azi1: 180.0, azi2: 180.0, aziM: 180.0, lat1: 50.0, lat2: -50.0, latM: 0.036282, lon1: -4.0, lon2: -4.0, lonM: -4.0, m12: 4864571.105922, M12: 0.645508, M21: 0.644537, s12: 11073670.322999, s1M: 5536835.161499}\n    test 1153 Middle5.B.a1M: 49.9052218889  FAILED, KNOWN (0.000724585), expected 49.8690613164\n    test 1154 Middle5.B.s12: 11081694.0834  FAILED, KNOWN (0.000724055), expected 11073670.323\n    test 1155 Middle5.B.latM: 3.19125435309e-15  FAILED, KNOWN (0.0362822), expected 0.0362822197973\n    test 1156 Middle5.B.s1M: 5540847.04168  FAILED, KNOWN (0.000724055), expected 5536835.1615\n    test 1157 Middle5.sMM: 1.14053e+06  FAILED, KNOWN (0.0017142), expected 1.13857e+06\n    test 1158 Middle5.aMM: 10.2799  FAILED, KNOWN (0.00171426), expected 10.2623\n    test 1159 Middle5.c: 0\n\n    test 1160 Segment.kB: 0\n    test 1161 Segment.c: 0\n    test 1162 Segment.aAB: 7.95139e-16  FAILED, KNOWN (7.95139e-16), expected 0\n    test 1163 Segment.lonA: -4\n    test 1164 Segment.sAB: 8.81935e-11  FAILED, KNOWN (2.11806e-10), expected 3e-10\n    test 1165 Segment.k: -3\n    test 1166 Segment.lonB: -4\n    test 1167 Segment.kA: -1\n    test 1168 Segment.sX0: 1.86201e+06\n    test 1169 Segment.latA: -4.05187\n    test 1170 Segment.latB: -4.05187\n    test 1171 Segment.sB: 5.98889e+06\n    test 1172 Segment.sA: -631414\n\n    test 1173 Segment5.A: {a1X: -5.691141, azi1: 44.75191, aziX: 44.893464, k2: -1, lat1: 0.0, latX: -4.051871, lon1: 0.0, lonX: -4.0, s1X: -631414.26877}  FAILED, KNOWN, expected {k2: -1, lat1: 0.0, lat2: 10.0, latX: -4.051871, lon1: 0.0, lon2: 10.0, lonX: -4.0, s1X: -631414.26877}\n    test 1174 Segment5.B: {a1X: 53.943553, azi1: 180.0, aziX: 180.0, k2: 0, lat1: 50.0, latX: -4.051871, lon1: -4.0, lonX: -4.0, s1X: 5988887.278435}  FAILED, KNOWN, expected {k2: 0, lat1: 50.0, lat2: -50.0, latX: -4.051871, lon1: -4.0, lon2: -4.0, lonX: -4.0, s1X: 5988887.278435}\n    test 1175 Segment5.sAB: 8.81935e-11  FAILED, KNOWN (2.11806e-10), expected 3e-10\n    test 1176 Segment5.aAB: 7.95139e-16  FAILED, KNOWN (1.90883e-15), expected 2.70397e-15\n    test 1177 Segment5.c: 0\n\n    test 1178 intersect7s[0].A: 04.051871°S, 004.0°W\n    test 1179 intersect7s[0].B: 04.051871°S, 004.0°W\n    test 1180 intersect7s[0].sAB: 2.30253e-10  FAILED, KNOWN (6.9747e-11), expected 3e-10\n    test 1181 intersect7s[0].aAB: 2.07532e-15  FAILED, KNOWN (6.28645e-16), expected 2.70397e-15\n    test 1182 intersect7s[0].c: 0\n    test 1183 intersect7s[0].kA: 0\n    test 1184 intersect7s[0].kB: 0\n    test 1185 intersect7s[0].iteration: None\n\n    test 1186 intersect7s[1].A: 03.623464°N, 176.0°E\n    test 1187 intersect7s[1].B: 03.623464°N, 176.0°E\n    test 1188 intersect7s[1].sAB: 2.73478e-09  FAILED, KNOWN (8.34776e-10), expected 1.9e-09\n    test 1189 intersect7s[1].aAB: 2.46493e-14  FAILED, KNOWN (7.5307e-15), expected 1.71186e-14\n    test 1190 intersect7s[1].c: 0\n    test 1191 intersect7s[1].kA: 0\n    test 1192 intersect7s[1].kB: 0\n    test 1193 intersect7s[1].iteration: None\n\n    test 1194 intersect7s[2].A: 04.051871°S, 004.0°W  FAILED, KNOWN (1.03199), expected 03.623464°N, 176.0°E\n    test 1195 intersect7s[2].B: 04.051871°S, 004.0°W  FAILED, KNOWN (1.03199), expected 03.623464°N, 176.0°E\n    test 1196 intersect7s[2].sAB: 1.2439e-09  FAILED, KNOWN (4.43897e-10), expected 8e-10\n    test 1197 intersect7s[2].aAB: 1.12115e-14  FAILED, KNOWN (4.00369e-15), expected 7.20783e-15\n    test 1198 intersect7s[2].c: 0\n    test 1199 intersect7s[2].kA: 0\n    test 1200 intersect7s[2].kB: 0\n    test 1201 intersect7s[2].iteration: None\n\n    test 1202 intersect7s[3].A: 04.4796°N, 176.0°E  FAILED, KNOWN (1.02993), expected 03.19445°S, 004.0°W\n    test 1203 intersect7s[3].B: 04.4796°N, 176.0°E  FAILED, KNOWN (1.02993), expected 03.19445°S, 004.0°W\n    test 1204 intersect7s[3].sAB: 3.18498e-09  FAILED, KNOWN (2.84982e-10), expected 2.9e-09\n    test 1205 intersect7s[3].aAB: 2.87068e-14  FAILED, KNOWN (2.56833e-15), expected 2.61385e-14\n    test 1206 intersect7s[3].c: 0\n    test 1207 intersect7s[3].kA: 0\n    test 1208 intersect7s[3].kB: 0\n    test 1209 intersect7s[3].iteration: None\n\n    test 1210 Sphere.Closest.c: 0\n    test 1211 Sphere.Closest.aAB: 7.10543e-15  FAILED, KNOWN (4.89457e-15), expected 1.2e-14\n    test 1212 Sphere.Closest.lonA: -29.8397\n    test 1213 Sphere.Closest.sAB: 7.90087e-10  FAILED, KNOWN (9.91253e-12), expected 8e-10\n    test 1214 Sphere.Closest.lonB: -29.8397\n    test 1215 Sphere.Closest.sX0: 9.39521e+06\n    test 1216 Sphere.Closest.latA: 0  FAILED, KNOWN (1e-15), expected 1e-15\n    test 1217 Sphere.Closest.latB: -0\n    test 1218 Sphere.Closest.sB: -3.31802e+06\n    test 1219 Sphere.Closest.sA: 6.07719e+06\n\n    test 1220 Sphere.Closest5.A: {a1X: 54.653489, azi1: -147.7, aziX: -159.911264, lat1: 50.0, latX: 0.0, lon1: -4.0, lonX: -29.839663, s1X: 6077190.710199}  FAILED, KNOWN, expected {azi1: 212.3, lat1: 50.0, latX: 0.0, lon1: -4.0, lonX: -29.839663, s1X: 6077190.710199}\n    test 1221 Sphere.Closest5.A.azi1: 212.3  FAILED, KNOWN (1.69571), expected -147.7\n    test 1222 Sphere.Closest5.B: {a1X: -29.839663, azi1: 90.0, aziX: 90.0, lat1: 0.0, latX: -0.0, lon1: 0.0, lonX: -29.839663, s1X: -3318019.115902}  FAILED, KNOWN, expected {azi1: 90.0, lat1: 0.0, latX: -0.0, lon1: 0.0, lonX: -29.839663, s1X: -3318019.115902}\n    test 1223 Sphere.Closest5.sAB: 7.90087e-10  FAILED, KNOWN (9.91253e-12), expected 8e-10\n    test 1224 Sphere.Closest5.aAB: 7.10543e-15  FAILED, KNOWN (8.91455e-17), expected 7.19457e-15\n    test 1225 Sphere.Closest5.c: 0\n\n    test 1226 _Xdict2: 183\n\n    429 of 1226 testGeodesici.py tests (35.0%) FAILED, ALL KNOWN (pygeodesy 26.3.26 Python 2.7.18 64bit arm64_x86_64 geographiclib 1.50 numpy 1.16.6 scipy 1.2.2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 -W  default) 13.704 sec\nrunning /Library/Framewo....ython -W default ~/PyGeodesy/test/testGeodesicx.py\n./test/testGeodesicx.py:49: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  gP = E.geodesic\n\n    testing testGeodesicx.py 25.09.03 (module pygeodesy.geodesicx 25.12.23)\n\n    testDirectX vs ...(pygeodesy.geodesicx, 25.12.23)\n    test 1 C++X.a12: 49.4755274632515\n    test 2 C++X.azi1: 51\n    test 3 C++X.azi2: 107.189397162606\n    test 4 C++X.lat1: 40.6\n    test 5 C++X.lat2: 51.8845645056068\n    test 6 C++X.lon1: -73.8\n    test 7 C++X.lon2: -1.14117286120081  FAILED, KNOWN, expected -1.14117286120083\n    test 8 C++X.m12: 4844148.70310149\n    test 9 C++X.M12: 0.650910566998086\n    test 10 C++X.M21: 0.651228658921966\n    test 11 C++X.S12: 39735075134877.1\n    test 12 C++X.s12: 5500000\n    test 13 iteration: None\n\n    test 14 Python.a12: 49.4755274632515\n    test 15 Python.azi1: 51\n    test 16 Python.azi2: 107.189397162606\n    test 17 Python.lat1: 40.6\n    test 18 Python.lat2: 51.8845645056068\n    test 19 Python.lon1: -73.8\n    test 20 Python.lon2: -1.14117286120081  FAILED, KNOWN, expected -1.14117286120086\n    test 21 Python.m12: 4844148.70310149\n    test 22 Python.M12: 0.650910566998086\n    test 23 Python.M21: 0.651228658921966\n    test 24 Python.S12: 39735075134877.1\n    test 25 Python.s12: 5500000\n    test 26 iteration: None\n\n    test 27 GeodSolve.a12: 49.4755274632515\n    test 28 GeodSolve.azi1: 51\n    test 29 GeodSolve.azi2: 107.189397162606\n    test 30 GeodSolve.lat1: 40.6\n    test 31 GeodSolve.lat2: 51.8845645056068\n    test 32 GeodSolve.lon1: -73.8\n    test 33 GeodSolve.lon2: -1.14117286120081  FAILED, KNOWN, expected -1.14117286120084\n    test 34 GeodSolve.m12: 4844148.70310149\n    test 35 GeodSolve.M12: 0.650910566998086\n    test 36 GeodSolve.M21: 0.651228658921966\n    test 37 GeodSolve.S12: 39735075134877.1\n    test 38 GeodSolve.s12: 5500000\n    test 39 iteration: None\n\n    test 40 f(-0.7)proLate.a12: 41.2845109932529  FAILED, KNOWN, expected 41.284510993253\n    test 41 f(-0.7)proLate.azi1: 51\n    test 42 f(-0.7)proLate.azi2: 122.151604420253\n    test 43 f(-0.7)proLate.lat1: 40.6\n    test 44 f(-0.7)proLate.lat2: 44.0611144929705\n    test 45 f(-0.7)proLate.lon1: -73.8\n    test 46 f(-0.7)proLate.lon2: 22.642936371381\n    test 47 f(-0.7)proLate.m12: 4556060.22546814\n    test 48 f(-0.7)proLate.M12: 0.529204136691901  FAILED, KNOWN, expected 0.5292041366919\n    test 49 f(-0.7)proLate.M21: 0.508852016715468  FAILED, KNOWN, expected 0.508852016715467\n    test 50 f(-0.7)proLate.S12: 92958550148866.3  FAILED, KNOWN, expected 92958550148866.4\n    test 51 f(-0.7)proLate.s12: 5500000\n\n    test 52 f(-0.6)proLate.a12: 41.9855065431433  FAILED, KNOWN, expected 41.9855065431432\n    test 53 f(-0.6)proLate.azi1: 51\n    test 54 f(-0.6)proLate.azi2: 120.049569615163\n    test 55 f(-0.6)proLate.lat1: 40.6\n    test 56 f(-0.6)proLate.lat2: 45.0761455124556\n    test 57 f(-0.6)proLate.lon1: -73.8\n    test 58 f(-0.6)proLate.lon2: 19.3243907915446  FAILED, KNOWN, expected 19.3243907915445\n    test 59 f(-0.6)proLate.m12: 4607523.91009243\n    test 60 f(-0.6)proLate.M12: 0.553483535239665  FAILED, KNOWN, expected 0.553483535239666\n    test 61 f(-0.6)proLate.M21: 0.531159755627539  FAILED, KNOWN, expected 0.53115975562754\n    test 62 f(-0.6)proLate.S12: 84342570067148.5  FAILED, KNOWN, expected 84342570067148.4\n    test 63 f(-0.6)proLate.s12: 5500000\n\n    test 64 f(-0.5)proLate.a12: 42.7835406714305\n    test 65 f(-0.5)proLate.azi1: 51\n    test 66 f(-0.5)proLate.azi2: 117.89451986943\n    test 67 f(-0.5)proLate.lat1: 40.6\n    test 68 f(-0.5)proLate.lat2: 46.1086918613931\n    test 69 f(-0.5)proLate.lon1: -73.8\n    test 70 f(-0.5)proLate.lon2: 15.9398177760259\n    test 71 f(-0.5)proLate.m12: 4656181.1495523\n    test 72 f(-0.5)proLate.M12: 0.575884086565632\n    test 73 f(-0.5)proLate.M21: 0.553184499769341  FAILED, KNOWN, expected 0.553184499769342\n    test 74 f(-0.5)proLate.S12: 76020929892733.4\n    test 75 f(-0.5)proLate.s12: 5500000\n\n    test 76 f(-0.4)proLate.a12: 43.7036853028434\n    test 77 f(-0.4)proLate.azi1: 51\n    test 78 f(-0.4)proLate.azi2: 115.706685237732\n    test 79 f(-0.4)proLate.lat1: 40.6\n    test 80 f(-0.4)proLate.lat2: 47.1623837243428\n    test 81 f(-0.4)proLate.lon1: -73.8\n    test 82 f(-0.4)proLate.lon2: 12.5108734214613\n    test 83 f(-0.4)proLate.m12: 4701617.48531727\n    test 84 f(-0.4)proLate.M12: 0.596186986538198  FAILED, KNOWN, expected 0.596186986538199\n    test 85 f(-0.4)proLate.M21: 0.57467855536679\n    test 86 f(-0.4)proLate.S12: 68024911861224.8  FAILED, KNOWN, expected 68024911861224.7\n    test 87 f(-0.4)proLate.s12: 5500000\n\n    test 88 f(-0.3)proLate.a12: 44.778142996055\n    test 89 f(-0.3)proLate.azi1: 51\n    test 90 f(-0.3)proLate.azi2: 113.512221079884\n    test 91 f(-0.3)proLate.lat1: 40.6\n    test 92 f(-0.3)proLate.lat2: 48.2448394088334\n    test 93 f(-0.3)proLate.lon1: -73.8\n    test 94 f(-0.3)proLate.lon2: 9.06439641717142  FAILED, KNOWN, expected 9.06439641717139\n    test 95 f(-0.3)proLate.m12: 4743418.11467171\n    test 96 f(-0.3)proLate.M12: 0.614141109926638\n    test 97 f(-0.3)proLate.M21: 0.595388570443548\n    test 98 f(-0.3)proLate.S12: 60386769588050.2\n    test 99 f(-0.3)proLate.s12: 5500000\n\n    test 100 f(-0.2)proLate.a12: 46.0484287767579  FAILED, KNOWN, expected 46.0484287767578\n    test 101 f(-0.2)proLate.azi1: 51\n    test 102 f(-0.2)proLate.azi2: 111.343872400749\n    test 103 f(-0.2)proLate.lat1: 40.6\n    test 104 f(-0.2)proLate.lat2: 49.3693479292292\n    test 105 f(-0.2)proLate.lon1: -73.8\n    test 106 f(-0.2)proLate.lon2: 5.63252938443216  FAILED, KNOWN, expected 5.63252938443208\n    test 107 f(-0.2)proLate.m12: 4781182.84779737  FAILED, KNOWN, expected 4781182.84779736\n    test 108 f(-0.2)proLate.M12: 0.629452843380053\n    test 109 f(-0.2)proLate.M21: 0.615074420205344  FAILED, KNOWN, expected 0.615074420205345\n    test 110 f(-0.2)proLate.S12: 53138975764711.1  FAILED, KNOWN, expected 53138975764711\n    test 111 f(-0.2)proLate.s12: 5500000\n\n    test 112 f(-0.1)proLate.a12: 47.5682594059394\n    test 113 f(-0.1)proLate.azi1: 51\n    test 114 f(-0.1)proLate.azi2: 109.241628907367\n    test 115 f(-0.1)proLate.lat1: 40.6\n    test 116 f(-0.1)proLate.lat2: 50.5570087568933\n    test 117 f(-0.1)proLate.lon1: -73.8\n    test 118 f(-0.1)proLate.lon2: 2.25260962354909\n    test 119 f(-0.1)proLate.m12: 4814553.53489422\n    test 120 f(-0.1)proLate.M12: 0.641772419411799\n    test 121 f(-0.1)proLate.M21: 0.633539030474701  FAILED, KNOWN, expected 0.6335390304747\n    test 122 f(-0.1)proLate.S12: 46313407380218.5\n    test 123 f(-0.1)proLate.s12: 5500000\n\n    test 124 f(0.0)sphere.a12: 49.4073406265737  FAILED, KNOWN, expected 49.4073406265736\n    test 125 f(0.0)sphere.azi1: 51\n    test 126 f(0.0)sphere.azi2: 107.253441084194\n    test 127 f(0.0)sphere.lat1: 40.6\n    test 128 f(0.0)sphere.lat2: 51.8394367533853\n    test 129 f(0.0)sphere.lon1: -73.8\n    test 130 f(0.0)sphere.lon2: -1.03317283695991  FAILED, KNOWN, expected -1.03317283695993\n    test 131 f(0.0)sphere.m12: 4843268.16188793\n    test 132 f(0.0)sphere.M12: 0.650676935525673\n    test 133 f(0.0)sphere.M21: 0.650676935525673\n    test 134 f(0.0)sphere.S12: 39940559879050.1  FAILED, KNOWN, expected 39940559879050\n    test 135 f(0.0)sphere.s12: 5500000\n\n    test 136 f(0.1)obLate.a12: 51.6562009348442\n    test 137 f(0.1)obLate.azi1: 51\n    test 138 f(0.1)obLate.azi2: 105.436101360918\n    test 139 f(0.1)obLate.lat1: 40.6\n    test 140 f(0.1)obLate.lat2: 53.2621488352775\n    test 141 f(0.1)obLate.lon1: -73.8\n    test 142 f(0.1)obLate.lon2: -4.17831797695514\n    test 143 f(0.1)obLate.m12: 4867271.01535067\n    test 144 f(0.1)obLate.M12: 0.655652471115945\n    test 145 f(0.1)obLate.M21: 0.666556146155552\n    test 146 f(0.1)obLate.S12: 34048882687460.5\n    test 147 f(0.1)obLate.s12: 5500000\n\n    test 148 f(0.2)obLate.a12: 54.4319984205255\n    test 149 f(0.2)obLate.azi1: 51\n    test 150 f(0.2)obLate.azi2: 103.8563593825  FAILED, KNOWN, expected 103.856359382499\n    test 151 f(0.2)obLate.lat1: 40.6\n    test 152 f(0.2)obLate.lat2: 54.8886869301292\n    test 153 f(0.2)obLate.lon1: -73.8\n    test 154 f(0.2)obLate.lon2: -7.13270532079325  FAILED, KNOWN, expected -7.13270532079328\n    test 155 f(0.2)obLate.m12: 4886937.77404685\n    test 156 f(0.2)obLate.M12: 0.65608338247866\n    test 157 f(0.2)obLate.M21: 0.681558941812475\n    test 158 f(0.2)obLate.S12: 28664292324534.6\n    test 159 f(0.2)obLate.s12: 5500000\n\n    test 160 f(0.3)obLate.a12: 57.8845459603905\n    test 161 f(0.3)obLate.azi1: 51\n    test 162 f(0.3)obLate.azi2: 102.592096849744\n    test 163 f(0.3)obLate.lat1: 40.6\n    test 164 f(0.3)obLate.lat2: 56.8052789737725\n    test 165 f(0.3)obLate.lon1: -73.8\n    test 166 f(0.3)obLate.lon2: -9.84339350245068\n    test 167 f(0.3)obLate.m12: 4903527.26055769\n    test 168 f(0.3)obLate.M12: 0.651269895561088\n    test 169 f(0.3)obLate.M21: 0.696621153271262\n    test 170 f(0.3)obLate.S12: 23809838803598.7\n    test 171 f(0.3)obLate.s12: 5500000\n\n    test 172 f(0.4)obLate.a12: 62.2000535802232\n    test 173 f(0.4)obLate.azi1: 51\n    test 174 f(0.4)obLate.azi2: 101.732620462068\n    test 175 f(0.4)obLate.lat1: 40.6\n    test 176 f(0.4)obLate.lat2: 59.1251996985707\n    test 177 f(0.4)obLate.lon1: -73.8\n    test 178 f(0.4)obLate.lon2: -12.2555967438742\n    test 179 f(0.4)obLate.m12: 4920049.29725335\n    test 180 f(0.4)obLate.M12: 0.640521897686656\n    test 181 f(0.4)obLate.M21: 0.713612775606923\n    test 182 f(0.4)obLate.S12: 19505392269428.9\n    test 183 f(0.4)obLate.s12: 5500000\n\n    test 184 f(0.5)obLate.a12: 67.5961360204058\n    test 185 f(0.5)obLate.azi1: 51\n    test 186 f(0.5)obLate.azi2: 101.375214059512\n    test 187 f(0.5)obLate.lat1: 40.6\n    test 188 f(0.5)obLate.lat2: 61.9908246599488\n    test 189 f(0.5)obLate.lon1: -73.8\n    test 190 f(0.5)obLate.lon2: -14.314173457934\n    test 191 f(0.5)obLate.m12: 4942782.22410672  FAILED, KNOWN, expected 4942782.22410673\n    test 192 f(0.5)obLate.M12: 0.62342153427984\n    test 193 f(0.5)obLate.M21: 0.735840684527278\n    test 194 f(0.5)obLate.S12: 15767156271751.5\n    test 195 f(0.5)obLate.s12: 5500000\n\n    test 196 f(0.6)obLate.a12: 74.293940742003\n    test 197 f(0.6)obLate.azi1: 51\n    test 198 f(0.6)obLate.azi2: 101.611122905479\n    test 199 f(0.6)obLate.lat1: 40.6\n    test 200 f(0.6)obLate.lat2: 65.570125882359\n    test 201 f(0.6)obLate.lon1: -73.8\n    test 202 f(0.6)obLate.lon2: -15.9664855590569\n    test 203 f(0.6)obLate.m12: 4983385.70418856\n    test 204 f(0.6)obLate.M12: 0.600385896682554\n    test 205 f(0.6)obLate.M21: 0.768372005314339  FAILED, KNOWN, expected 0.768372005314338\n    test 206 f(0.6)obLate.S12: 12607032773613.6\n    test 207 f(0.6)obLate.s12: 5500000\n\n    test 208 f(0.7)obLate.a12: 82.4416835202881\n    test 209 f(0.7)obLate.azi1: 51\n    test 210 f(0.7)obLate.azi2: 102.488060130252\n    test 211 f(0.7)obLate.lat1: 40.6\n    test 212 f(0.7)obLate.lat2: 70.0446694858328\n    test 213 f(0.7)obLate.lon1: -73.8\n    test 214 f(0.7)obLate.lon2: -17.1682178841074\n    test 215 f(0.7)obLate.m12: 5059996.37065633\n    test 216 f(0.7)obLate.M12: 0.573565786722514  FAILED, KNOWN, expected 0.573565786722513\n    test 217 f(0.7)obLate.M21: 0.817099782347416\n    test 218 f(0.7)obLate.S12: 10032955148624.8  FAILED, KNOWN, expected 10032955148494\n    test 219 f(0.7)obLate.s12: 5500000\n\n    test 220 f(0.8)obLate.a12: 91.9549069618777\n    test 221 f(0.8)obLate.azi1: 51\n    test 222 f(0.8)obLate.azi2: 103.932282361181\n    test 223 f(0.8)obLate.lat1: 40.6\n    test 224 f(0.8)obLate.lat2: 75.5867314102627\n    test 225 f(0.8)obLate.lon1: -73.8\n    test 226 f(0.8)obLate.lon2: -17.8943807275634\n    test 227 f(0.8)obLate.m12: 5191227.434783\n    test 228 f(0.8)obLate.M12: 0.547588120961581\n    test 229 f(0.8)obLate.M21: 0.88423165114083\n    test 230 f(0.8)obLate.S12: 8054551454844.58  FAILED, KNOWN, expected 8054551222919.28\n    test 231 f(0.8)obLate.s12: 5500000\n\n    test 232 f(0.9)obLate.a12: 102.246152032153\n    test 233 f(0.9)obLate.azi1: 51\n    test 234 f(0.9)obLate.azi2: 105.618016083621\n    test 235 f(0.9)obLate.lat1: 40.6\n    test 236 f(0.9)obLate.lat2: 82.2999319410311\n    test 237 f(0.9)obLate.lon1: -73.8\n    test 238 f(0.9)obLate.lon2: -18.1607604123894  FAILED, KNOWN, expected -18.1607604123892\n    test 239 f(0.9)obLate.m12: 5370336.10833014\n    test 240 f(0.9)obLate.M12: 0.52867945469881  FAILED, KNOWN, expected 0.528679454698809\n    test 241 f(0.9)obLate.M21: 0.958073002020686  FAILED, KNOWN, expected 0.958073002020685\n    test 242 f(0.9)obLate.S12: 6706997024987.37  FAILED, KNOWN, expected 6706617604760.9\n    test 243 f(0.9)obLate.s12: 5500000\n\n    test 244 GeodesicLineExact: name='', lat1=40.6, lon1=-73.8, azi1=51, a13=49.475527, s13=5500000, caps=36747, geodesic=GeodesicExact(name='WGS84', caps=0, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), C4order=30)\n    test 245 GeodesicExact: GeodesicExact(name='WGS84', caps=0, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), C4order=30)\n    test 246 GeodesicLineExact: Direct9Tuple(a12=49.475527, lat2=51.884565, lon2=-1.141173, azi2=107.189397, s12=5500000.0, m12=4844148.703101, M12=0.650911, M21=0.651229, S12=NAN)\n\n    test 247 GeodesicExact: {a12: 49.475527, azi1: 51.0, azi2: 107.189397, lat1: 40.6, lat2: 51.884565, lon1: -73.8, lon2: -1.141173, m12: 4844148.703101, M12: 0.650911, M21: 0.651229, s12: 5500000.0}\n    test 248 GeodesicExact: (49.475527, 51.884565, -1.141173, 107.189397, 5500000.0, 4844148.703101, 0.650911, 0.651229, NAN)\n    test 249 GeodesicExact: {a12: 49.475527, azi2: 107.189397, lat2: 51.884565, lon2: -1.141173, M12: 0.650911, m12: 4844148.703101, M21: 0.651229, s12: 5500000.0, S12: NAN}  FAILED, KNOWN, expected {a12: 49.475527, azi1: 51.0, azi2: 107.189397, lat1: 40.6, lat2: 51.884565, lon1: -73.8, lon2: -1.141173, m12: 4844148.703101, M12: 0.650911, M21: 0.651229, s12: 5500000.0}\n\n    test 250 Geodesic: {a12: 49.475527, azi2: 107.189397, lat2: 51.884565, lon2: -1.141173, M12: NAN, m12: NAN, M21: NAN, s12: 5500000.0, S12: NAN}\n    test 251 Geodesic: (49.475527, 51.884565, -1.141173, 107.189397, 5500000.0, NAN, NAN, NAN, NAN)\n    test 252 Geodesic: {a12: 49.475527, azi2: 107.189397, lat2: 51.884565, lon2: -1.141173, M12: NAN, m12: NAN, M21: NAN, s12: 5500000.0, S12: NAN}\n\n    test 253 GeodesicSolve: {a12: 49.475527, azi1: 51.0, azi2: 107.189397, lat1: 40.6, lat2: 51.884565, lon1: -73.8, lon2: -1.141173, M12: 0.650911, m12: 4844148.703101, M21: 0.651229, s12: 5500000.0, S12: 39735075134877.078125}\n    test 254 GeodesicSolve: (49.475527, 51.884565, -1.141173, 107.189397, 5500000.0, 4844148.703101, 0.650911, 0.651229, 39735075134877.078125)\n    test 255 GeodesicSolve: {a12: 49.475527, azi2: 107.189397, lat2: 51.884565, lon2: -1.141173, M12: 0.650911, m12: 4844148.703101, M21: 0.651229, s12: 5500000.0, S12: 39735075134877.078125}  FAILED, KNOWN, expected {a12: 49.475527, azi1: 51.0, azi2: 107.189397, lat1: 40.6, lat2: 51.884565, lon1: -73.8, lon2: -1.141173, M12: 0.650911, m12: 4844148.703101, M21: 0.651229, s12: 5500000.0, S12: 39735075134877.078125}\n\n    test 256 ArcDirect.a12: 49.8\n    test 257 ArcDirect.azi1: 51\n    test 258 ArcDirect.azi2: 107.582082475406  FAILED, KNOWN, expected 107.5820825\n    test 259 ArcDirect.lat1: 40.6\n    test 260 ArcDirect.lat2: 51.7876866587893  FAILED, KNOWN, expected 51.7876867\n    test 261 ArcDirect.lon1: -73.8\n    test 262 ArcDirect.lon2: -0.641731343091337  FAILED, KNOWN, expected -0.641731\n    test 263 ArcDirect.s12: 5536073.73439267  FAILED, KNOWN, expected 5536073.734393\n    test 264 iteration: None\n\n    test 265 ArcDirectLine: name='', lat1=40.6, lon1=-73.8, azi1=51, a13=49.8, s13=5536073.734393, caps=36747, geodesic=GeodesicExact(name='WGS84', caps=0, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), C4order=30)\n    test 266 iteration: None\n\n    test 267 GeodesicLineExact: name='', lat1=40.6, lon1=-73.8, azi1=51, a13=NAN, s13=NAN, caps=65439, geodesic=GeodesicExact(name='WGS84', caps=0, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), C4order=30)\n    test 268 iteration: None\n\n    testInverseX vs ...(pygeodesy.geodesicx, 25.12.23)\n    test 269 C++X.a12: 49.941310217899\n    test 270 C++X.azi1: 51.1988828455798\n    test 271 C++X.azi2: 107.821776735514\n    test 272 C++X.lat1: 40.6\n    test 273 C++X.lat2: 51.6\n    test 274 C++X.lon1: -73.8\n    test 275 C++X.lon2: -0.5\n    test 276 C++X.m12: 4877684.6027062\n    test 277 C++X.M12: 0.644729692059483  FAILED, KNOWN, expected 0.644729692059482\n    test ./test/testGeodesicx.py:143: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  gP = E.geodesic\n278 C++X.M21: 0.645045678521344\n    test 279 C++X.S12: 40041368848742.5\n    test 280 C++X.s12: 5551759.40031868\n    test 281 iteration: 3\n\n    test 282 Python.a12: 49.941310217899\n    test 283 Python.azi1: 51.1988828455798\n    test 284 Python.azi2: 107.821776735514\n    test 285 Python.lat1: 40.6\n    test 286 Python.lat2: 51.6\n    test 287 Python.lon1: -73.8\n    test 288 Python.lon2: -0.5\n    test 289 Python.m12: 4877684.6027062\n    test 290 Python.M12: 0.644729692059483  FAILED, KNOWN, expected 0.644729692059482\n    test 291 Python.M21: 0.645045678521344\n    test 292 Python.S12: 40041368848742.5\n    test 293 Python.s12: 5551759.40031868\n    test 294 iteration: None\n\n    test 295 GeodSolve.a12: 49.941310217899\n    test 296 GeodSolve.azi1: 51.1988828455798\n    test 297 GeodSolve.azi2: 107.821776735514\n    test 298 GeodSolve.lat1: 40.6\n    test 299 GeodSolve.lat2: 51.6\n    test 300 GeodSolve.lon1: -73.8\n    test 301 GeodSolve.lon2: -0.5\n    test 302 GeodSolve.m12: 4877684.6027062\n    test 303 GeodSolve.M12: 0.644729692059483  FAILED, KNOWN, expected 0.644729692059482\n    test 304 GeodSolve.M21: 0.645045678521344\n    test 305 GeodSolve.S12: 40041368848742.5\n    test 306 GeodSolve.s12: 5551759.40031868\n    test 307 iteration: None\n\n    test 308 f(-0.7)proLate.a12: 30.8498450229685\n    test 309 f(-0.7)proLate.azi1: 46.8390771777768  FAILED, KNOWN, expected 46.8390771777767\n    test 310 f(-0.7)proLate.azi2: 102.364845341617\n    test 311 f(-0.7)proLate.lat1: 40.6\n    test 312 f(-0.7)proLate.lat2: 51.6\n    test 313 f(-0.7)proLate.lon1: -73.8\n    test 314 f(-0.7)proLate.lon2: -0.5\n    test 315 f(-0.7)proLate.m12: 3663075.31071237\n    test 316 f(-0.7)proLate.M12: 0.731807954033609\n    test 317 f(-0.7)proLate.M21: 0.696381877483542\n    test 318 f(-0.7)proLate.S12: 71321909298423.2\n    test 319 f(-0.7)proLate.s12: 4064374.72733529  FAILED, KNOWN, expected 4064374.7273353\n\n    test 320 f(-0.6)proLate.a12: 32.624467259717\n    test 321 f(-0.6)proLate.azi1: 47.2626025379604\n    test 322 f(-0.6)proLate.azi2: 102.867650046856\n    test 323 f(-0.6)proLate.lat1: 40.6\n    test 324 f(-0.6)proLate.lat2: 51.6\n    test 325 f(-0.6)proLate.lon1: -73.8\n    test 326 f(-0.6)proLate.lon2: -0.5\n    test 327 f(-0.6)proLate.m12: 3811547.14779174\n    test 328 f(-0.6)proLate.M12: 0.725390840887561\n    test 329 f(-0.6)proLate.M21: 0.692782702624978  FAILED, KNOWN, expected 0.692782702624977\n    test 330 f(-0.6)proLate.S12: 67003980896186\n    test 331 f(-0.6)proLate.s12: 4237106.26798551  FAILED, KNOWN, expected 4237106.26798552\n\n    test 332 f(-0.5)proLate.a12: 34.6143539838512\n    test 333 f(-0.5)proLate.azi1: 47.7400036902753\n    test 334 f(-0.5)proLate.azi2: 103.43951372754\n    test 335 f(-0.5)proLate.lat1: 40.6\n    test 336 f(-0.5)proLate.lat2: 51.6\n    test 337 f(-0.5)proLate.lon1: -73.8\n    test 338 f(-0.5)proLate.lon2: -0.5\n    test 339 f(-0.5)proLate.m12: 3968659.90647178\n    test 340 f(-0.5)proLate.M12: 0.717750671080257\n    test 341 f(-0.5)proLate.M21: 0.688437867237199  FAILED, KNOWN, expected 0.688437867237198\n    test 342 f(-0.5)proLate.S12: 62647679908513.7\n    test 343 f(-0.5)proLate.s12: 4421695.86157285  FAILED, KNOWN, expected 4421695.86157283\n\n    test 344 f(-0.4)proLate.a12: 36.8617108475833\n    test 345 f(-0.4)proLate.azi1: 48.2782940313591\n    test 346 f(-0.4)proLate.azi2: 104.091557707465\n    test 347 f(-0.4)proLate.lat1: 40.6\n    test 348 f(-0.4)proLate.lat2: 51.6\n    test 349 f(-0.4)proLate.lon1: -73.8\n    test 350 f(-0.4)proLate.lon2: -0.5\n    test 351 f(-0.4)proLate.m12: 4134433.86723881\n    test 352 f(-0.4)proLate.M12: 0.708569458041405\n    test 353 f(-0.4)proLate.M21: 0.683143770036343\n    test 354 f(-0.4)proLate.S12: 58248979819324.2\n    test 355 f(-0.4)proLate.s12: 4618861.32295258\n\n    test 356 f(-0.3)proLate.a12: 39.420657884794\n    test 357 f(-0.3)proLate.azi1: 48.8846677001672\n    test 358 f(-0.3)proLate.azi2: 104.836563775286\n    test 359 f(-0.3)proLate.lat1: 40.6\n    test 360 f(-0.3)proLate.lat2: 51.6\n    test 361 f(-0.3)proLate.lon1: -73.8\n    test 362 f(-0.3)proLate.lon2: -0.5\n    test 363 f(-0.3)proLate.m12: 4308600.98113564\n    test 364 f(-0.3)proLate.M12: 0.697425644708899  FAILED, KNOWN, expected 0.697425644708898\n    test 365 f(-0.3)proLate.M21: 0.676630205430698\n    test 366 f(-0.3)proLate.S12: 53804526775605.1\n    test 367 f(-0.3)proLate.s12: 4829239.13386067\n\n    test 368 f(-0.2)proLate.a12: 42.3616492820545\n    test 369 f(-0.2)proLate.azi1: 49.5658543493026\n    test 370 f(-0.2)proLate.azi2: 105.689010365627\n    test 371 f(-0.2)proLate.lat1: 40.6\n    test 372 f(-0.2)proLate.lat2: 51.6\n    test 373 f(-0.2)proLate.lon1: -73.8\n    test 374 f(-0.2)proLate.lon2: -0.5\n    test 375 f(-0.2)proLate.m12: 4490465.96891757\n    test 376 f(-0.2)proLate.M12: 0.68375529812055\n    test 377 f(-0.2)proLate.M21: 0.668536876326996\n    test 378 f(-0.2)proLate.S12: 49312505255330.1\n    test 379 f(-0.2)proLate.s12: 5053314.98382881\n\n    test 380 f(-0.1)proLate.a12: 45.7778520084076\n    test 381 f(-0.1)proLate.azi1: 50.3269341833279\n    test 382 f(-0.1)proLate.azi2: 106.664955696455\n    test 383 f(-0.1)proLate.lat1: 40.6\n    test 384 f(-0.1)proLate.lat2: 51.6\n    test 385 f(-0.1)proLate.lon1: -73.8\n    test 386 f(-0.1)proLate.lon2: -0.5\n    test 387 f(-0.1)proLate.m12: 4678718.41576326\n    test 388 f(-0.1)proLate.M12: 0.666798996688209\n    test 389 f(-0.1)proLate.M21: 0.658383098263921\n    test 390 f(-0.1)proLate.S12: 44774044241120.1\n    test 391 f(-0.1)proLate.s12: 5291321.5507197\n\n    test 392 f(0.0)sphere.a12: 49.7943971585703  FAILED, KNOWN, expected 49.7943971585704\n    test 393 f(0.0)sphere.azi1: 51.1692726724686\n    test 394 f(0.0)sphere.azi2: 107.781686005324\n    test 395 f(0.0)sphere.lat1: 40.6\n    test 396 f(0.0)sphere.lat2: 51.6\n    test 397 f(0.0)sphere.lon1: -73.8\n    test 398 f(0.0)sphere.lon2: -0.5\n    test 399 f(0.0)sphere.m12: 4871193.11191523\n    test 400 f(0.0)sphere.M12: 0.645532374747016\n    test 401 f(0.0)sphere.M21: 0.645532374747016\n    test 402 f(0.0)sphere.S12: 40195434111030.4\n    test 403 f(0.0)sphere.s12: 5543086.93605008\n\n    test 404 f(0.1)obLate.a12: 54.5817311860468  FAILED, KNOWN, expected 54.5817311860469\n    test 405 f(0.1)obLate.azi1: 52.0870591681387\n    test 406 f(0.1)obLate.azi2: 109.057061572538\n    test 407 f(0.1)obLate.lat1: 40.6\n    test 408 f(0.1)obLate.lat2: 51.6\n    test 409 f(0.1)obLate.lon1: -73.8\n    test 410 f(0.1)obLate.lon2: -0.5\n    test 411 f(0.1)obLate.m12: 5064606.53235911  FAILED, KNOWN, expected 5064606.53235912\n    test 412 f(0.1)obLate.M12: 0.618585517999412\n    test 413 f(0.1)obLate.M21: 0.629161725809447  FAILED, KNOWN, expected 0.629161725809446\n    test 414 f(0.1)obLate.S12: 35591517394916.9\n    test 415 f(0.1)obLate.s12: 5807806.81178111\n\n    test 416 f(0.2)obLate.a12: 60.3743912113748\n    test 417 f(0.2)obLate.azi1: 53.0617122520881\n    test 418 f(0.2)obLate.azi2: 110.508586502508\n    test 419 f(0.2)obLate.lat1: 40.6\n    test 420 f(0.2)obLate.lat2: 51.6\n    test 421 f(0.2)obLate.lon1: -73.8\n    test 422 f(0.2)obLate.lon2: -0.5\n    test 423 f(0.2)obLate.m12: 5254398.40150138  FAILED, KNOWN, expected 5254398.40150139\n    test 424 f(0.2)obLate.M12: 0.58418152964186\n    test 425 f(0.2)obLate.M21: 0.608269542318508  FAILED, KNOWN, expected 0.608269542318507\n    test 426 f(0.2)obLate.S12: 30990690116402.8\n    test 427 f(0.2)obLate.s12: 6083696.88909232\n\n    test 428 f(0.3)obLate.a12: 67.495457095946\n    test 429 f(0.3)obLate.azi1: 54.0532224017487\n    test 430 f(0.3)obLate.azi2: 112.152465760492\n    test 431 f(0.3)obLate.lat1: 40.6\n    test 432 f(0.3)obLate.lat2: 51.6\n    test 433 f(0.3)obLate.lon1: -73.8\n    test 434 f(0.3)obLate.lon2: -0.5\n    test 435 f(0.3)obLate.m12: 5435105.88682598\n    test 436 f(0.3)obLate.M12: 0.540200055593844\n    test 437 f(0.3)obLate.M21: 0.58182050999746\n    test 438 f(0.3)obLate.S12: 26441913266022.4\n    test 439 f(0.3)obLate.s12: 6367459.71879628  FAILED, KNOWN, expected 6367459.71879627\n\n    test 440 f(0.4)obLate.a12: 76.3815180684531\n    test 441 f(0.4)obLate.azi1: 54.9876967652191\n    test 442 f(0.4)obLate.azi2: 114.003234978639\n    test 443 f(0.4)obLate.lat1: 40.6\n    test 444 f(0.4)obLate.lat2: 51.6\n    test 445 f(0.4)obLate.lon1: -73.8\n    test 446 f(0.4)obLate.lon2: -0.5\n    test 447 f(0.4)obLate.m12: 5602495.83037188\n    test 448 f(0.4)obLate.M12: 0.484674381110202  FAILED, KNOWN, expected 0.484674381110201\n    test 449 f(0.4)obLate.M21: 0.549286273467489\n    test 450 f(0.4)obLate.S12: 22023748427134.9\n    test 451 f(0.4)obLate.s12: 6653478.68267745\n\n    test 452 f(0.5)obLate.a12: 87.5840623039457\n    test 453 f(0.5)obLate.azi1: 55.7424301998074  FAILED, KNOWN, expected 55.7424301998073\n    test 454 f(0.5)obLate.azi2: 116.074074324746\n    test 455 f(0.5)obLate.lat1: 40.6\n    test 456 f(0.5)obLate.lat2: 51.6\n    test 457 f(0.5)obLate.lon1: -73.8\n    test 458 f(0.5)obLate.lon2: -0.5\n    test 459 f(0.5)obLate.m12: 5760420.96055484\n    test 460 f(0.5)obLate.M12: 0.417476669533174\n    test 461 f(0.5)obLate.M21: 0.512154548261849\n    test 462 f(0.5)obLate.S12: 17854087370054.8\n    test 463 f(0.5)obLate.s12: 6932661.04065593\n\n    test 464 f(0.6)obLate.a12: 101.672789393317\n    test 465 f(0.6)obLate.azi1: 56.1390154131257\n    test 466 f(0.6)obLate.azi2: 118.372753418033\n    test 467 f(0.6)obLate.lat1: 40.6\n    test 468 f(0.6)obLate.lat2: 51.6\n    test 469 f(0.6)obLate.lon1: -73.8\n    test 470 f(0.6)obLate.lon2: -0.5\n    test 471 f(0.6)obLate.m12: 5936976.93923961  FAILED, KNOWN, expected 5936976.9392396\n    test 472 f(0.6)obLate.M12: 0.344399833962436\n    test 473 f(0.6)obLate.M21: 0.477141269812572\n    test 474 f(0.6)obLate.S12: 14095435741511.4\n    test 475 f(0.6)obLate.s12: 7190974.04293755\n\n    test 476 f(0.7)obLate.a12: 118.899974433249\n    test 477 f(0.7)obLate.azi1: 55.9822604941527\n    test 478 f(0.7)obLate.azi2: 120.870267694794\n    test 479 f(0.7)obLate.lat1: 40.6\n    test 480 f(0.7)obLate.lat2: 51.6\n    test 481 f(0.7)obLate.lon1: -73.8\n    test 482 f(0.7)obLate.lon2: -0.5\n    test 483 f(0.7)obLate.m12: 6204736.82362485  FAILED, KNOWN, expected 6204736.82362484\n    test 484 f(0.7)obLate.M12: 0.282767834544915  FAILED, KNOWN, expected 0.282767834544914\n    test 485 f(0.7)obLate.M21: 0.459629432484044\n    test 486 f(0.7)obLate.S12: 10942220257436  FAILED, KNOWN, expected 10942220257394\n    test 487 f(0.7)obLate.s12: 7408209.3953438\n\n    test 488 f(0.8)obLate.a12: 138.654874707967\n    test 489 f(0.8)obLate.azi1: 55.2084184735526\n    test 490 f(0.8)obLate.azi2: 123.405114674792\n    test 491 f(0.8)obLate.lat1: 40.6\n    test 492 f(0.8)obLate.lat2: 51.6\n    test 493 f(0.8)obLate.lon1: -73.8\n    test 494 f(0.8)obLate.lon2: -0.5\n    test 495 f(0.8)obLate.m12: 6652110.16869957\n    test 496 f(0.8)obLate.M12: 0.257661231584227  FAILED, KNOWN, expected 0.257661231584228\n    test 497 f(0.8)obLate.M21: 0.477625769858661\n    test 498 f(0.8)obLate.S12: 8571969475833.54  FAILED, KNOWN, expected 8571969367509.22\n    test 499 f(0.8)obLate.s12: 7559119.64995391\n\n    test 500 f(0.9)obLate.a12: 159.448156899958\n    test 501 f(0.9)obLate.azi1: 54.0916012255363  FAILED, KNOWN, expected 54.0916012255364\n    test 502 f(0.9)obLate.azi2: 125.571065515772\n    test 503 f(0.9)obLate.lat1: 40.6\n    test 504 f(0.9)obLate.lat2: 51.6\n    test 505 f(0.9)obLate.lon1: -73.8\n    test 506 f(0.9)obLate.lon2: -0.5\n    test 507 f(0.9)obLate.m12: 7235195.22082338  FAILED, KNOWN, expected 7235195.22082337\n    test 508 f(0.9)obLate.M12: 0.275665516678923\n    test 509 f(0.9)obLate.M21: 0.527869883058878\n    test 510 f(0.9)obLate.S12: 7084875642239.1  FAILED, KNOWN, expected 7084594959626\n    test 511 f(0.9)obLate.s12: 7622715.60282403  FAILED, KNOWN, expected 7622715.60282402\n\n    test 512 GeodesicLineExact: GeodesicLineExact(name='', lat1=40.6, lon1=-73.8, azi1=51.198883, a13=49.94131, s13=5551759.400319, caps=36747, geodesic=GeodesicExact(name='WGS84', caps=0, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), C4order=30))\n    test 513 GeodesicExact: name='WGS84', caps=0, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), C4order=30\n    test 514 GeodesicLineExact: Direct9Tuple(a12=49.94131, lat2=51.6, lon2=-0.5, azi2=107.821777, s12=5551759.400319, m12=4877684.602706, M12=0.64473, M21=0.645046, S12=NAN)\n\n    test 515 GeodesicExact: GDict(a12=49.94131, azi1=51.198883, azi2=107.821777, lat1=40.6, lat2=51.6, lon1=-73.8, lon2=-0.5, m12=4877684.602706, M12=0.64473, M21=0.645046, s12=5551759.400319)\n    test 516 GeodesicExact: Inverse10Tuple(a12=49.94131, s12=5551759.400319, salp1=NAN, calp1=NAN, salp2=NAN, calp2=NAN, m12=4877684.602706, M12=0.64473, M21=0.645046, S12=NAN)\n    test 517 GeodesicExact: {a12: 49.94131, azi1: NAN, azi2: NAN, calp1: NAN, calp2: NAN, m12: 4877684.602706, M12: 0.64473, M21: 0.645046, s12: 5551759.400319, S12: NAN, salp1: NAN, salp2: NAN}  FAILED, KNOWN, expected {a12: 49.94131, azi1: 51.198883, azi2: 107.821777, lat1: 40.6, lat2: 51.6, lon1: -73.8, lon2: -0.5, m12: 4877684.602706, M12: 0.64473, M21: 0.645046, s12: 5551759.400319}\n\n    test 518 Geodesic: GDict(a12=49.94131, azi1=51.198883, azi2=107.821777, calp1=0.626619, calp2=-0.306057, lon1=-73.8, lon2=-0.5, m12=NAN, M12=NAN, M21=NAN, s12=5551759.400319, S12=NAN, salp1=0.779326, salp2=0.952013)\n    test 519 Geodesic: Inverse10Tuple(a12=49.94131, s12=5551759.400319, salp1=0.779326, calp1=0.626619, salp2=0.952013, calp2=-0.306057, m12=NAN, M12=NAN, M21=NAN, S12=NAN)\n    test 520 Geodesic: {a12: 49.94131, azi1: 51.198883, azi2: 107.821777, calp1: 0.626619, calp2: -0.306057, m12: NAN, M12: NAN, M21: NAN, s12: 5551759.400319, S12: NAN, salp1: 0.779326, salp2: 0.952013}  FAILED, KNOWN, expected {a12: 49.94131, azi1: 51.198883, azi2: 107.821777, calp1: 0.626619, calp2: -0.306057, lon1: -73.8, lon2: -0.5, m12: NAN, M12: NAN, M21: NAN, s12: 5551759.400319, S12: NAN, salp1: 0.779326, salp2: 0.952013}\n\n    test 521 GeodesicSolve: GDict(a12=49.94131, azi1=51.198883, azi2=107.821777, lat1=40.6, lat2=51.6, lon1=-73.8, lon2=-0.5, M12=0.64473, m12=4877684.602706, M21=0.645046, s12=5551759.400319, S12=40041368848742.53125)\n    test 522 GeodesicSolve: Inverse10Tuple(a12=49.94131, s12=5551759.400319, salp1=NAN, calp1=NAN, salp2=NAN, calp2=NAN, m12=4877684.602706, M12=0.64473, M21=0.645046, S12=40041368848742.53125)\n    test 523 GeodesicSolve: {a12: 49.94131, azi1: NAN, azi2: NAN, calp1: NAN, calp2: NAN, m12: 4877684.602706, M12: 0.64473, M21: 0.645046, s12: 5551759.400319, S12: 40041368848742.53125, salp1: NAN, salp2: NAN}  FAILED, KNOWN, expected {a12: 49.94131, azi1: 51.198883, azi2: 107.821777, lat1: 40.6, lat2: 51.6, lon1: -73.8, lon2: -0.5, M12: 0.64473, m12: 4877684.602706, M21: 0.645046, s12: 5551759.400319, S12: 40041368848742.53125}\n\n    test 524 Inverse: {a12: 49.647855, azi1: 51.139649, azi2: 107.74164, lat1: 40.6, lat2: 51.6, lon1: -73.8, lon2: -0.5, m12: 4848370.615026, M12: 0.646331, M21: 0.646017, s12: 5515844.227497}\n    test 525 Inverse1: 49.6478547612\n\n    testPolygon24(pygeodesy.geodesicx, 25.12.23)\n    test 526 Compute: (1, 0, 0)\n    test 527 AddEdges: (4, 4000, 1000000)\n    test 528 TestEdge: (5, 4000, 1000000)\n    test 529 Clear: 0\n    test 530 TestPoint: (1, 0, 0)\n    test 531 AddPoints: (4, 29506941, 65690027591346)\n    test 532 TestPoint: (5, 29506941, 65690027591346)\n    test 533 toStr: area=65690027591345.671875, geodesic=GeodesicExact(name='WGS84', caps=0, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), C4order=24), num=4, perimeter=29506941.155178, polyline=False\n\n    testPolygon27(pygeodesy.geodesicx, 25.12.23)\n    test 534 Compute: (1, 0, 0)\n    test 535 AddEdges: (4, 4000, 1000000)\n    test 536 TestEdge: (5, 4000, 1000000)\n    test 537 Clear: 0\n    test 538 TestPoint: (1, 0, 0)\n    test 539 AddPoints: (4, 29506941, 65690027591346)\n    test 540 TestPoint: (5, 29506941, 65690027591346)\n    test 541 toStr: area=65690027591345.671875, geodesic=GeodesicExact(name='WGS84', caps=0, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), C4order=27), num=4, perimeter=29506941.155178, polyline=False\n\n    testPolygon30(pygeodesy.geodesicx, 25.12.23)\n    test 542 Compute: (1, 0, 0)\n    test 543 AddEdges: (4, 4000, 1000000)\n    test 544 TestEdge: (5, 4000, 1000000)\n    test 545 Clear: 0\n    test 546 TestPoint: (1, 0, 0)\n    test 547 AddPoints: (4, 29506941, 65690027591346)\n ./test/testGeodesicx.py:284: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  t.testPolygon(geodesicw, E.geodesic, K=True)  # XXX geographiclib 1.49 issue?\n   test 548 TestPoint: (5, 29506941, 65690027591346)\n    test 549 toStr: area=65690027591345.671875, geodesic=GeodesicExact(name='WGS84', caps=0, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), C4order=30), num=4, perimeter=29506941.155178, polyline=False\n\n    testPolygon(pygeodesy.geodsolve, 25.12.31)\n    test 550 Compute: (1, 0, 0)\n    test 551 AddEdges: (4, 4000, 1000000)\n    test 552 TestEdge: (5, 4000, 1000000)\n    test 553 Clear: 0\n    test 554 TestPoint: (1, 0, 0)\n    test 555 AddPoints: (4, 29506941, 65690027591346)\n    test 556 TestPoint: (5, 29506941, 65690027591346)\n    test 557 toStr: area=65690027591345.664062, geodesic=GeodesicSolve(ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), GeodSolve='/opt/local/bin/GeodSolve', invokation=13, status=0), num=4, perimeter=29506941.155178, polyline=False\n\n    testPolygon(pygeodesy.geodesicw, 25.05.28)\n    test 558 Compute: (1, 0, 0)\n    test 559 AddEdges: (4, 4000, 1000000)\n    test 560 TestEdge: (5, 4000, 1000000)\n    test 561 Clear: None  FAILED, KNOWN, expected 0\n    test 562 TestPoint: (1, 0, 0)\n    test 563 AddPoints: (4, 29506941, 65690027591346)\n    test 564 TestPoint: (5, 29506941, 65690027591346)\n\n    testPlumbTo ...(pygeodesy.geodesicx, 25.12.23)\n    test 565 lat2: 51.846089\n    test 566 lon2: 5.260428\n    test 567 s12: 24784.288415\n    test 568 at: -270.000000\n    test 569 iteration: 6\n\n    test 570 lat2: 54.928531\n    test 571 lon2: -21.937291\n    test 572 s12: 3928788.572003\n    test 573 at: 270.000000\n    test 574 iteration: 27\n\n    test 575 lat2: 37.976212  FAILED, KNOWN, expected 37.976217\n    test 576 lon2: 18.344810  FAILED, KNOWN, expected 18.344820\n    test 577 s12: 1012791.647369  FAILED, KNOWN, expected 1012790.599291\n    test 578 at: 270.005451  FAILED, KNOWN, expected 270.005437\n    test 579 iteration: 128\n\n    82 of 579 testGeodesicx.py tests (14.2%) FAILED, incl. 79 KNOWN plus 3 DeprecationWarnings (pygeodesy 26.3.26 Python 2.7.18 64bit arm64_x86_64 geographiclib 1.50 numpy 1.16.6 scipy 1.2.2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 -W  default) 30.852 sec\nrunning /Library/Framewo....ython -W default ~/PyGeodesy/test/testGeohash.py\n./test/testGeohash.py:38: DeprecationWarning: function L{decode_error<pygeodesy.geohash.decode_error>} has been DEPRECATED on 2024.07.28, use L{geohash.decode_error2}.\n  self.test('decode_error',  fstr(geohash.decode_error( g), fmt='%.*e'), '2.145767e-05, 2.145767e-05')  # DEPRECATED\n./test/testGeohash.py:45: DeprecationWarning: property_RO L{sizes<pygeodesy.geohash.Geohash.sizes>} has been DEPRECATED on 2024.07.28, use property C{Geohash.sizes3}.\n  self.test('sizes', fstr(g.sizes, prec=1), '4.8, 4.8')\n./test/testGeohash.py:87: DeprecationWarning: function L{decode_error<pygeodesy.geohash.decode_error>} has been DEPRECATED on 2024.07.28, use L{geohash.decode_error2}.\n  self.test('decode_error',  fstr(geohash.decode_error( 'u120fxw'), fmt='%.*e'), '6.866455e-04, 6.866455e-04')  # DEPRECATED\n./test/testGeohash.py:94: DeprecationWarning: function L{sizes<pygeodesy.geohash.sizes>} has been DEPRECATED on 2024.07.28, use function L{pygeodesy.geohash.sizes3}.\n  self.test('sizes',  fstr(geohash.sizes( 'u120fxw'), prec=1), '153.0, 153.0')  # DEPRECATED\n./test/testGeohash.py:102: DeprecationWarning: function L{sizes<pygeodesy.geohash.sizes>} has been DEPRECATED on 2024.07.28, use function L{pygeodesy.geohash.sizes3}.\n  self.test('sizes',  fstr(geohash.sizes( g), prec=1), '610.0, 1220.0')  # DEPRECATED\n\n    testing testGeohash.py 24.08.01 (module pygeodesy.geohash 25.09.16)\n    test 1 Geohash: geek\n    test 2 Geohash: geek\n    test 3 Geohash: 'geek'\n    test 4 Geohash: Geohash('geek')\n    test 5 Geohash: geek\n    test 6 bounds: (LatLon(65°23′26.25″N, 017°55′46.88″W), LatLon(65°33′59.06″N, 017°34′41.25″W))\n    test 7 toLatLon: 65.478516°N, 017.753906°W\n    test 8 latlon: 65.4785156, -17.7539062\n    test 9 philam: 1.1428157, -0.3098641\n    test 10 copy(<type 'type'>): (<class 'pygeodesy.geohash.Geohash'>, True)\n    test 11 Geohash.copy(): (<class 'pygeodesy.geohash.Geohash'>, True)\n    test 12 Geohash: geehpbpbp\n    test 13 toLatLon: 65.390625°N, 017.929689°W\n    test 14 latlon: 65.390625, -17.929689\n    test 15 ab: 1.1412817, -0.3129321\n    test 16 decode: ('65.390646', '-17.929709')\n    test 17 decode2: (65.390646, -17.929709)\n    test 18 decode_error: 2.145767e-05, 2.145767e-05\n    test 19 decode_error2: 2.145767e-05, 2.145767e-05\n    test 20 distance1To: 2758.887\n    test 21 distance2To: 682.760\n    test 22 distance3To: 410.732\n    test 23 distance4To: 397.404\n    test 24 distance5To: 397.404\n    test 25 sizes: 4.8, 4.8\n    test 26 copy(<type 'type'>): (<class 'pygeodesy.geohash.Geohash'>, True)\n    test 27 Geohash.copy(): (<class 'pygeodesy.geohash.Geohash'>, True)\n    test 28 N: geehpbpbr\n    test 29 NE: geek00002\n    test 30 E: geek00000\n    test 31 SE: gee7bpbpb\n    test 32 S: gee5zzzzz\n    test 33 SW: gee5zzzzy\n    test 34 W: geehpbpbn\n    test 35 NW: geehpbpbq\n    test 36 N: geehpbpbr\n    test 37 NE: geek00002\n    test 38 E: geek00000\n    test 39 SE: gee7bpbpb\n    test 40 S: gee5zzzzz\n    test 41 SW: gee5zzzzy\n    test 42 W: geehpbpbn\n    test 43 NW: geehpbpbq\n    test 44 N: geehpbpbr\n    test 45 NE: geek00002\n    test 46 E: geek00000\n    test 47 SE: gee7bpbpb\n    test 48 S: gee5zzzzz\n    test 49 SW: gee5zzzzy\n    test 50 W: geehpbpbn\n    test 51 NW: geehpbpbq\n    test 52 N: geehpbpbr\n    test 53 NE: geek00002\n    test 54 E: geek00000\n    test 55 SE: gee7bpbpb\n    test 56 S: gee5zzzzz\n    test 57 SW: gee5zzzzy\n    test 58 W: geehpbpbn\n    test 59 NW: geehpbpbq\n\n    test 60 bounds: 52.20428467, 0.11810303, 52.20565796, 0.11947632\n    test 61 decode: 52.205, 0.1188\n    test 62 encode-decode: u120fxw\n    test 63 encode-decode: geek\n    test 64 encode-decode: fur\n    test 65 encode-decode: geehpbpbp\n    test 66 encode-decode: u4pruydqqvj8\n    test 67 encode-decode: bgr96qxvpd46\n    test 68 encode-decode: 0123456789\n    test 69 encode-decode: zzzzzz\n    test 70 Geohash: u4pruydq\n    test 71 N.E.S.W: True\n    test 72 E.S.W.N: True\n    test 73 S.W.N.E: True\n    test 74 W.N.E.S: True\n    test 75 N.E.S.S.W.W.N.N.E.S: True\n    test 76 Geohash: u4pruydqq\n    test 77 N.E.S.W: True\n    test 78 E.S.W.N: True\n    test 79 S.W.N.E: True\n    test 80 W.N.E.S: True\n    test 81 N.E.S.S.W.W.N.N.E.S: True\n    test 82 Geohash: u4pruydqqv\n    test 83 N.E.S.W: True\n    test 84 E.S.W.N: True\n    test 85 S.W.N.E: True\n    test 86 W.N.E.S: True\n    test 87 N.E.S.S.W.W.N.N.E.S: True\n    test 88 Geohash: u4pruydqqvj\n    test 89 N.E.S.W: True\n    test 90 E.S.W.N: True\n    test 91 S.W.N.E: True\n    test 92 W.N.E.S: True\n    test 93 N.E.S.S.W.W.N.N.E.S: True\n    test 94 Geohash: u4pruydqqvj8\n    test 95 N.E.S.W: True\n    test 96 E.S.W.N: True\n    test 97 S.W.N.E: True\n    test 98 W.N.E.S: True\n    test 99 N.E.S.S.W.W.N.N.E.S: True\n\n    test 100 encode: u120fxw\n    test 101 decode: ('52.205', '0.1188')\n    test 102 decode2: (52.205, 0.1188)\n    test 103 decode_error: 6.866455e-04, 6.866455e-04\n    test 104 decode_error2: 6.866455e-04, 6.866455e-04\n    test 105 distance_: 486.710\n    test 106 distance2: 3.374\n    test 107 distance3: 2.992\n    test 108 distance4: 2.798\n    test 109 distance5: 2.798\n    test 110 sizes: 153.0, 153.0\n    test 111 sizes3: 153.0, 153.0, 86.3\n\n    test 112 Geohash: u336xv\n    test 113 encode: u336xv\n    test 114 equal: True\n    test 115 sizes: 610.0, 1220.0\n    test 116 sizes3: 610.0, 1220.0, 486.7\n    test 117 encode: fur\n    test 118 decode: ('69.6', '-45.7')\n    test 119 decode: ('70.3', '-51')\n    test 120 decode: ('68', '-68')\n    test 121 decode_error2: (0.703125, 0.703125)\n    test 122 decode_error2: (2.8125, 5.625)\n    test 123 decode_error2: (22.5, 22.5)\n    test 124 encode: ezs42e44yx96\n    test 125 decode: ('42.60000003', '-5.59999997')\n    test 126 encode: ezs42\n    test 127 decode: ('42.605', '-5.603')\n    test 128 distance1: 503442.4\n    test 129 distance2: 303317.6\n    test 130 distance3: 185425.4\n    test 131 distance4: 179940.1\n    test 132 distance5: 179940.1\n\n    test 133 precision: 0  FAILED, KNOWN, expected 1\n    test 134 resolution: 360.0, 180.0\n    test 135 inferred: w\n    test 136 precision: 1\n    test 137 resolution: 45.0, 45.0\n    test 138 inferred: wp\n    test 139 precision: 2\n    test 140 resolution: 11.25, 5.625\n    test 141 inferred: wpy\n    test 142 precision: 3\n    test 143 resolution: 1.4062, 1.4062\n    test 144 inferred: wpy6\n    test 145 precision: 4\n    test 146 resolution: 0.35156, 0.17578\n    test 147 inferred: wpy6kc\n    test 148 precision: 5\n    test 149 resolution: 0.043945, 0.043945\n    test 150 inferred: wpy6kcc\n    test 151 precision: 6\n    test 152 resolution: 0.0109863, 0.0054932\n    test 153 inferred: wpy6kccw\n    test 154 precision: 7\n    test 155 resolution: 0.00137329, 0.00137329\n    test 156 inferred: wpy6kccwe4\n    test 157 precision: 8\n    test 158 resolution: 0.000343323, 0.000171661\n    test 159 inferred: wpy6kccwe4q\n    test 160 precision: 9\n    test 161 resolution: 0.0000429153, 0.0000429153\n    test 162 inferred: wpy6kccwe4qr\n    test 163 precision: 10\n    test 164 resolution: 0.00001072884, 0.00000536442\n    test 165 inferred: wpy6kccwe4qr\n    test 166 precision: 11\n    test 167 resolution: 0.000001341105, 0.000001341105\n    test 168 inferred: wpy6kccwe4qr\n    test 169 precision: 12\n    test 170 resolution: 0.0000003352761, 0.0000001676381\n    test 171 inferred: wpy6kccwe4qr\n    test 172 precision: 13  FAILED, KNOWN, expected 12\n    test 173 resolution: 0.00000033527613, 0.00000016763806\n    test 174 inferred: wpy6kccwe4qr\n\n    test 175 precision: 12\n    test 176 ndigits: None\n    test 177 encoded: tuvz4p141zc1\n    test 178 encoded: tuvz4p141zc1\n    test 179 encoded: True\n    test 180 encoded: tuvz4p141zc1\n    test 181 encoded: True\n    test 182 decoded: (27.988056, 86.925278)\n    test 183 decoded: (27.988056, 86.925278)\n    test 184 decoded: True\n    test 185 len: 1\n    test 186 len2: (1, 1)\n\n    test 187 precision: 12\n    test 188 ndigits: 12\n    test 189 encoded: tuvz4p141zc1\n    test 190 encoded: tuvz4p141zc1\n    test 191 encoded: True\n    test 192 encoded: tuvz4p141zc1\n    test 193 encoded: True\n    test 194 decoded: (27.988056, 86.925278)\n    test 195 decoded: (27.988056, 86.925278)\n    test 196 decoded: True\n    test 197 len: 1\n    test 198 len2: (1, 1)\n\n    7 of 198 testGeohash.py tests (3.5%) FAILED, incl. 2 KNOWN plus 5 DeprecationWarnings (pygeodesy 26.3.26 Python 2.7.18 64bit arm64_x86_64 geographiclib 1.50 numpy 1.16.6 scipy 1.2.2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 -W  default) 6.597 ms\nrunning /Library/Framewo....ython -W default ~/PyGeodesy/test/testGeoids.py\n\n    testing testGeoids.py 26.01.21\n    test 1 GeoidKarney('egm96-5.pgm').height(-76.981, 34.17) kind 2: 11.422  FAILED, KNOWN, expected 11.423\n    test 2 GeoidKarney('egm96-5.pgm').height(79.695, 88.806) kind 2: 0.887  FAILED, KNOWN, expected 0.892\n    test 3 GeoidKarney('egm96-5.pgm').height(-15.245, 168.748) kind 2: 65.226\n    test 4 GeoidKarney('egm96-5.pgm').height(-19.379, 15.855) kind 2: 24.460  FAILED, KNOWN, expected 24.463\n    test 5 GeoidKarney('egm96-5.pgm').height(43.378, -130.552) kind 2: -29.682\n    test 6 GeoidKarney('egm96-5.pgm').height(-16.075, 21.795) kind 2: 10.503\n    test 7 GeoidKarney('egm96-5.pgm').height(-11.256, -73.75) kind 2: 29.325  FAILED, KNOWN, expected 29.326\n    test 8 GeoidKarney('egm96-5.pgm').height(69.017, -15.921) kind 2: 60.423  FAILED, KNOWN, expected 60.424\n    test 9 GeoidKarney('egm96-5.pgm').height(2.221, 139.739) kind 2: 68.997  FAILED, KNOWN, expected 68.996\n    test 10 GeoidKarney('egm96-5.pgm').height(-9.097, 119.142) kind 2: 36.295  FAILED, KNOWN, expected 36.287\n    test 11 GeoidKarney('egm96-5.pgm').height(-28.524, -22.192) kind 2: 6.627  FAILED, KNOWN, expected 6.626\n    test 12 GeoidKarney('egm96-5.pgm').height(12.272, -136.424) kind 2: -20.860\n    test 13 GeoidKarney('egm96-5.pgm').height(-15.203, -85.604) kind 2: -3.266  FAILED, KNOWN, expected -3.267\n    test 14 GeoidKarney('egm96-5.pgm').height(-63.736, -77.17) kind 2: -1.296  FAILED, KNOWN, expected -1.294\n    test 15 GeoidKarney('egm96-5.pgm').height(-48.771, -90.102) kind 2: -2.322\n    test 16 GeoidKarney('egm96-5.pgm').height(-0.179, -126.368) kind 2: -17.556  FAILED, KNOWN, expected -17.557\n    test 17 GeoidKarney('egm96-5.pgm').height(1.586, -128.887) kind 2: -16.594\n    test 18 GeoidKarney('egm96-5.pgm').height(-48.781, -2.684) kind 2: 24.455  FAILED, KNOWN, expected 24.453\n    test 19 GeoidKarney('egm96-5.pgm').height(-49.092, 136.862) kind 2: -18.591  FAILED, KNOWN, expected -18.592\n    test 20 GeoidKarney('egm96-5.pgm').height(47.732, 17.552) kind 2: 44.051  FAILED, KNOWN, expected 44.049\n    test 21 GeoidKarney('egm96-5.pgm').height(-49.11, 85.706) kind 2: 18.582  FAILED, KNOWN, expected 18.581\n    test 22 GeoidKarney('egm96-5.pgm').height(-49.162, 40.321) kind 2: 44.290  FAILED, KNOWN, expected 44.289\n    test 23 GeoidKarney('egm96-5.pgm').height(3.498, 158.118) kind 2: 49.821  FAILED, KNOWN, expected 49.816\n    test 24 GeoidKarney('egm96-5.pgm').height(-35.616, 122.648) kind 2: -36.108  FAILED, KNOWN, expected -36.114\n    test 25 GeoidKarney('egm96-5.pgm').height(56.598, -96.114) kind 2: -41.046  FAILED, KNOWN, expected -41.048\n    test 26 GeoidKarney('egm96-5.pgm').height(-31.85, 149.121) kind 2: 26.457  FAILED, KNOWN, expected 26.456\n    test 27 GeoidKarney('egm96-5.pgm').height(-26.569, -177.792) kind 2: 49.309  FAILED, KNOWN, expected 49.317\n    test 28 GeoidKarney('egm96-5.pgm').height(76.735, -65.753) kind 2: 20.706  FAILED, KNOWN, expected 20.714\n    test 29 GeoidKarney('egm96-5.pgm').height(-21.404, -122.268) kind 2: -7.363  FAILED, KNOWN, expected -7.362\n    test 30 GeoidKarney('egm96-5.pgm').height(-77.133, -65.474) kind 2: -16.499  FAILED, KNOWN, expected -16.492\n    test 31 GeoidKarney('egm96-5.pgm').height(-58.812, 2.276) kind 2: 18.108  FAILED, KNOWN, expected 18.110\n    test 32 GeoidKarney('egm96-5.pgm').height(4.415, 155.683) kind 2: 51.859  FAILED, KNOWN, expected 51.858\n    test 33 GeoidKarney('egm96-5.pgm').height(-28.146, 107.081) kind 2: -38.979  FAILED, KNOWN, expected -38.981\n    test 34 GeoidKarney('egm96-5.pgm').height(-10.551, -126.69) kind 2: -9.912  FAILED, KNOWN, expected -9.913\n    test 35 GeoidKarney('egm96-5.pgm').height(-25.444, -103.337) kind 2: -2.827  FAILED, KNOWN, expected -2.828\n    test 36 GeoidKarney('egm96-5.pgm').height(24.436, 46.159) kind 2: -5.719\n    test 37 GeoidKarney('egm96-5.pgm').height(-72.889, 37.107) kind 2: 22.420  FAILED, KNOWN, expected 22.426\n    test 38 GeoidKarney('egm96-5.pgm').height(-19.629, 13.245) kind 2: 24.546  FAILED, KNOWN, expected 24.545\n    test 39 GeoidKarney('egm96-5.pgm').height(-7.602, 171.265) kind 2: 40.651  FAILED, KNOWN, expected 40.652\n    test 40 GeoidKarney('egm96-5.pgm').height(-45.364, -1.876) kind 2: 22.380  FAILED, KNOWN, expected 22.383\n    test 41 GeoidKarney('egm96-5.pgm').height(-7.292, -69.18) kind 2: 22.185  FAILED, KNOWN, expected 22.182\n    test 42 GeoidKarney('egm96-5.pgm').height(-31.566, -166.689) kind 2: 14.927  FAILED, KNOWN, expected 14.930\n    test 43 GeoidKarney('egm96-5.pgm').height(-82.751, -162.085) kind 2: -47.093  FAILED, KNOWN, expected -47.094\n    test 44 GeoidKarney('egm96-5.pgm').height(-40.7, 99.466) kind 2: -18.421\n    test 45 GeoidKarney('egm96-5.pgm').height(48.676, 39.69) kind 2: 10.060  FAILED, KNOWN, expected 10.055\n    test 46 GeoidKarney('egm96-5.pgm').height(74.817, -78.404) kind 2: 5.784  FAILED, KNOWN, expected 5.786\n    test 47 GeoidKarney('egm96-5.pgm').height(-81.032, -63.865) kind 2: -22.840  FAILED, KNOWN, expected -22.838\n    test 48 GeoidKarney('egm96-5.pgm').height(74.022, 9.432) kind 2: 42.988  FAILED, KNOWN, expected 42.989\n    test 49 GeoidKarney('egm96-5.pgm').height(-75.071, 17.579) kind 2: 15.351  FAILED, KNOWN, expected 15.353\n    test 50 GeoidKarney('egm96-5.pgm').height(-12.546, -54.851) kind 2: -6.341  FAILED, KNOWN, expected -6.337\n    test 51 GeoidKarney('egm96-5.pgm').height(-13.621, 42.408) kind 2: -25.551  FAILED, KNOWN, expected -25.555\n    test 52 GeoidKarney('egm96-5.pgm').height(-2.266, -91.951) kind 2: -9.921  FAILED, KNOWN, expected -9.923\n    test 53 GeoidKarney('egm96-5.pgm').height(-18.672, 42.547) kind 2: -10.861  FAILED, KNOWN, expected -10.852\n    test 54 GeoidKarney('egm96-5.pgm').height(-41.44, 157.413) kind 2: -0.136  FAILED, KNOWN, expected -0.135\n    test 55 GeoidKarney('egm96-5.pgm').height(53.686, -79.375) kind 2: -43.808  FAILED, KNOWN, expected -43.809\n    test 56 GeoidKarney('egm96-5.pgm').height(39.26, -30.351) kind 2: 57.151  FAILED, KNOWN, expected 57.150\n    test 57 GeoidKarney('egm96-5.pgm').height(-51.699, -141.493) kind 2: -17.660  FAILED, KNOWN, expected -17.657\n    test 58 GeoidKarney('egm96-5.pgm').height(36.585, 4.515) kind 2: 46.356  FAILED, KNOWN, expected 46.358\n    test 59 GeoidKarney('egm96-5.pgm').height(39.642, -54.659) kind 2: -14.404\n    test 60 GeoidKarney('egm96-5.pgm').height(59.761, 166.567) kind 2: 11.239  FAILED, KNOWN, expected 11.242\n    test 61 GeoidKarney('egm96-5.pgm').height(51.83, 13.357) kind 2: 42.236  FAILED, KNOWN, expected 42.237\n    test 62 GeoidKarney('egm96-5.pgm').height(-36.531, -175.431) kind 2: 22.148  FAILED, KNOWN, expected 22.147\n    test 63 GeoidKarney('egm96-5.pgm').height(-37.08, 125.264) kind 2: -33.395  FAILED, KNOWN, expected -33.396\n    test 64 GeoidKarney('egm96-5.pgm').height(-68.651, 92.732) kind 2: 7.965  FAILED, KNOWN, expected 7.961\n    test 65 GeoidKarney('egm96-5.pgm').height(35.087, 45.336) kind 2: 7.228  FAILED, KNOWN, expected 7.229\n    test 66 GeoidKarney('egm96-5.pgm').height(-61.356, -169.379) kind 2: -44.289  FAILED, KNOWN, expected -44.292\n    test 67 GeoidKarney('egm96-5.pgm').height(-36.955, 179.12) kind 2: 21.872  FAILED, KNOWN, expected 21.875\n    test 68 GeoidKarney('egm96-5.pgm').height(10.248, -6.714) kind 2: 28.935  FAILED, KNOWN, expected 28.933\n    test 69 GeoidKarney('egm96-5.pgm').height(36.868, 84.602) kind 2: -41.255  FAILED, KNOWN, expected -41.238\n    test 70 GeoidKarney('egm96-5.pgm').height(28.637, 88.933) kind 2: -31.334  FAILED, KNOWN, expected -31.331\n    test 71 GeoidKarney('egm96-5.pgm').height(54.811, -99.968) kind 2: -32.702\n    test 72 GeoidKarney('egm96-5.pgm').height(7.611, 145.911) kind 2: 60.118  FAILED, KNOWN, expected 60.117\n    test 73 GeoidKarney('egm96-5.pgm').height(59.412, 170.102) kind 2: 6.456  FAILED, KNOWN, expected 6.457\n    test 74 GeoidKarney('egm96-5.pgm').height(-61.469, 126.144) kind 2: -31.959  FAILED, KNOWN, expected -31.961\n    test 75 GeoidKarney('egm96-5.pgm').height(18.514, -137.083) kind 2: -26.572  FAILED, KNOWN, expected -26.571\n    test 76 GeoidKarney('egm96-5.pgm').height(7.854, -126.799) kind 2: -29.761  FAILED, KNOWN, expected -29.760\n    test 77 GeoidKarney('egm96-5.pgm').height(47.489, 134.183) kind 2: 21.980\n    test 78 GeoidKarney('egm96-5.pgm').height(-34.144, -11.922) kind 2: 16.849\n    test 79 GeoidKarney('egm96-5.pgm').height(-58.389, 117.458) kind 2: -20.922  FAILED, KNOWN, expected -20.923\n    test 80 GeoidKarney('egm96-5.pgm').height(9.773, 95.846) kind 2: -42.745  FAILED, KNOWN, expected -42.749\n    test 81 GeoidKarney('egm96-5.pgm').height(-53.12, 136.994) kind 2: -21.839  FAILED, KNOWN, expected -21.841\n    test 82 GeoidKarney('egm96-5.pgm').height(-50.35, 0.075) kind 2: 25.482\n    test 83 GeoidKarney('egm96-5.pgm').height(31.438, -170.879) kind 2: -8.845  FAILED, KNOWN, expected -8.847\n    test 84 GeoidKarney('egm96-5.pgm').height(37.541, -153.024) kind 2: -19.600  FAILED, KNOWN, expected -19.604\n    test 85 GeoidKarney('egm96-5.pgm').height(27.586, 2.444) kind 2: 25.672  FAILED, KNOWN, expected 25.668\n    test 86 GeoidKarney('egm96-5.pgm').height(-26.139, -106.201) kind 2: -3.772\n    test 87 GeoidKarney('egm96-5.pgm').height(-33.426, -14.84) kind 2: 17.747  FAILED, KNOWN, expected 17.748\n    test 88 GeoidKarney('egm96-5.pgm').height(39.586, -153.019) kind 2: -17.838  FAILED, KNOWN, expected -17.839\n    test 89 GeoidKarney('egm96-5.pgm').height(-60.79, -2.578) kind 2: 14.293  FAILED, KNOWN, expected 14.292\n    test 90 GeoidKarney('egm96-5.pgm').height(-20.131, 21.975) kind 2: 16.529\n    test 91 GeoidKarney('egm96-5.pgm').height(75.649, 99.921) kind 2: -8.230  FAILED, KNOWN, expected -8.229\n    test 92 GeoidKarney('egm96-5.pgm').height(-0.385, -23.788) kind 2: 9.828  FAILED, KNOWN, expected 9.830\n    test 93 GeoidKarney('egm96-5.pgm').height(-51.56, -50.327) kind 2: 6.213  FAILED, KNOWN, expected 6.215\n    test 94 GeoidKarney('egm96-5.pgm').height(-43.129, -167.271) kind 2: -2.957  FAILED, KNOWN, expected -2.960\n    test 95 GeoidKarney('egm96-5.pgm').height(46.374, 71.948) kind 2: -42.326  FAILED, KNOWN, expected -42.323\n    test 96 GeoidKarney('egm96-5.pgm').height(-22.783, 140.657) kind 2: 38.352  FAILED, KNOWN, expected 38.356\n    test 97 GeoidKarney('egm96-5.pgm').height(-12.056, 122.804) kind 2: 34.242  FAILED, KNOWN, expected 34.259\n    test 98 GeoidKarney('egm96-5.pgm').height(30.127, 94.738) kind 2: -37.390  FAILED, KNOWN, expected -37.397\n    test 99 GeoidKarney('egm96-5.pgm').height(46.296, -174.479) kind 2: -2.015  FAILED, KNOWN, expected -2.016\n    test 100 GeoidKarney('egm96-5.pgm').height(34.99, 15.052) kind 2: 33.915  FAILED, KNOWN, expected 33.912\n    test 101 GeoidKarney('egm96-5.pgm').height(-51.287, 90.565) kind 2: 12.676\n    test 102 GeoidKarney('egm96-5.pgm').height(34.217, 141.302) kind 2: 15.729  FAILED, KNOWN, expected 15.692\n    test 103 GeoidKarney('egm96-5.pgm').height(-40.423, -142.787) kind 2: -11.117\n    test 104 GeoidKarney('egm96-5.pgm').height(-17.854, -170.216) kind 2: 27.443  FAILED, KNOWN, expected 27.437\n    test 105 GeoidKarney('egm96-5.pgm').height(47.803, 112.701) kind 2: -23.893  FAILED, KNOWN, expected -23.894\n    test 106 GeoidKarney('egm96-5.pgm').height(-23.276, 133.454) kind 2: 18.749  FAILED, KNOWN, expected 18.766\n    test 107 GeoidKarney('egm96-5.pgm').height(-26.884, -36.571) kind 2: -7.452\n    test 108 GeoidKarney('egm96-5.pgm').height(-37.106, 31.128) kind 2: 30.141  FAILED, KNOWN, expected 30.143\n    test 109 GeoidKarney('egm96-5.pgm').height(-75.363, -173.674) kind 2: -61.176  FAILED, KNOWN, expected -61.172\n    test 110 GeoidKarney('egm96-5.pgm').height(-18.305, 69.016) kind 2: -24.892  FAILED, KNOWN, expected -24.890\n    test 111 GeoidKarney('egm96-5.pgm').height(39.527, 23.58) kind 2: 39.523  FAILED, KNOWN, expected 39.519\n    test 112 GeoidKarney('egm96-5.pgm').height(68.903, 30.97) kind 2: 19.417  FAILED, KNOWN, expected 19.419\n    test 113 GeoidKarney('egm96-5.pgm').height(53.937, 168.318) kind 2: 2.069\n    test 114 GeoidKarney('egm96-5.pgm').height(-38.6, 64.812) kind 2: 25.048\n    test 115 GeoidKarney('egm96-5.pgm').height(-41.396, -69.739) kind 2: 22.547\n    test 116 GeoidKarney('egm96-5.pgm').height(50.158, 72.319) kind 2: -34.359\n    test 117 GeoidKarney('egm96-5.pgm').height(27.692, 176.153) kind 2: -5.454  FAILED, KNOWN, expected -5.453\n    test 118 GeoidKarney('egm96-5.pgm').height(-48.419, 170.454) kind 2: -6.802  FAILED, KNOWN, expected -6.804\n    test 119 GeoidKarney('egm96-5.pgm').height(-65.346, -124.976) kind 2: -35.053  FAILED, KNOWN, expected -35.054\n    test 120 GeoidKarney('egm96-5.pgm').height(-51.873, 167.266) kind 2: -15.417  FAILED, KNOWN, expected -15.418\n    test 121 GeoidKarney('egm96-5.pgm').height(-7.263, 84.308) kind 2: -79.556  FAILED, KNOWN, expected -79.557\n    test 122 GeoidKarney('egm96-5.pgm').height(-1.461, -105.458) kind 2: -16.894\n    test 123 GeoidKarney('egm96-5.pgm').height(7.684, 161.873) kind 2: 36.213  FAILED, KNOWN, expected 36.215\n    test 124 GeoidKarney('egm96-5.pgm').height(-31.475, -158.52) kind 2: 3.524  FAILED, KNOWN, expected 3.523\n    test 125 GeoidKarney('egm96-5.pgm').height(-36.187, 62.917) kind 2: 23.796  FAILED, KNOWN, expected 23.797\n    test 126 GeoidKarney('egm96-5.pgm').height(16.003, 141.687) kind 2: 51.587  FAILED, KNOWN, expected 51.586\n    test 127 GeoidKarney('egm96-5.pgm').height(30.182, 86.261) kind 2: -30.131\n    test 128 GeoidKarney('egm96-5.pgm').height(-77.304, 159.498) kind 2: -51.853  FAILED, KNOWN, expected -51.848\n    test 129 GeoidKarney('egm96-5.pgm').height(39.536, 139.795) kind 2: 37.200  FAILED, KNOWN, expected 37.192\n    test 130 GeoidKarney('egm96-5.pgm').height(8.569, 134.618) kind 2: 63.583  FAILED, KNOWN, expected 63.597\n    test 131 GeoidKarney('egm96-5.pgm').height(14.473, 90.596) kind 2: -62.636\n    test 132 GeoidKarney('egm96-5.pgm').height(-13.138, -99.589) kind 2: -8.717\n    test 133 GeoidKarney('egm96-5.pgm').height(34.212, -26.307) kind 2: 40.649  FAILED, KNOWN, expected 40.645\n    test 134 GeoidKarney('egm96-5.pgm').height(21.89, 76.371) kind 2: -60.730  FAILED, KNOWN, expected -60.729\n    test 135 GeoidKarney('egm96-5.pgm').height(29.793, 120.487) kind 2: 8.784  FAILED, KNOWN, expected 8.783\n    test 136 GeoidKarney('egm96-5.pgm').height(15.724, 122.714) kind 2: 31.569  FAILED, KNOWN, expected 31.523\n    test 137 GeoidKarney('egm96-5.pgm').height(-66.208, -78.499) kind 2: -6.249  FAILED, KNOWN, expected -6.250\n    test 138 GeoidKarney('egm96-5.pgm').height(-39.507, 55.809) kind 2: 32.599\n    test 139 GeoidKarney('egm96-5.pgm').height(28.159, 51.476) kind 2: -24.531  FAILED, KNOWN, expected -24.536\n    test 140 GeoidKarney('egm96-5.pgm').height(-36.207, 120.205) kind 2: -38.863  FAILED, KNOWN, expected -38.869\n    test 141 GeoidKarney('egm96-5.pgm').height(30.575, -99.998) kind 2: -23.214  FAILED, KNOWN, expected -23.213\n    test 142 GeoidKarney('egm96-5.pgm').height(-16.993, 37.136) kind 2: -11.824\n    test 143 GeoidKarney('egm96-5.pgm').height(-11.477, 12.039) kind 2: 16.712  FAILED, KNOWN, expected 16.709\n    test 144 GeoidKarney('egm96-5.pgm').height(30.428, -144.765) kind 2: -22.380  FAILED, KNOWN, expected -22.379\n    test 145 GeoidKarney('egm96-5.pgm').height(-17.44, -92.424) kind 2: -4.941\n    test 146 GeoidKarney('egm96-5.pgm').height(40.203, 143.43) kind 2: 19.382  FAILED, KNOWN, expected 19.394\n    test 147 GeoidKarney('egm96-5.pgm').height(-37.098, -106.574) kind 2: -9.381\n    test 148 GeoidKarney('egm96-5.pgm').height(54.62, -68.413) kind 2: -23.319\n    test 149 GeoidKarney('egm96-5.pgm').height(-31.633, 148.182) kind 2: 24.470  FAILED, KNOWN, expected 24.468\n    test 150 GeoidKarney('egm96-5.pgm').height(-56.07, -141.407) kind 2: -21.762  FAILED, KNOWN, expected -21.761\n    test 151 GeoidKarney('egm96-5.pgm').height(-8.195, -52.691) kind 2: -18.798\n    test 152 GeoidKarney('egm96-5.pgm').height(17.851, 24.749) kind 2: 12.611  FAILED, KNOWN, expected 12.612\n    test 153 GeoidKarney('egm96-5.pgm').height(0.349, -108.333) kind 2: -19.708  FAILED, KNOWN, expected -19.706\n    test 154 GeoidKarney('egm96-5.pgm').height(15.038, 126.191) kind 2: 45.794  FAILED, KNOWN, expected 45.792\n    test 155 GeoidKarney('egm96-5.pgm').height(-21.111, -123.696) kind 2: -8.408  FAILED, KNOWN, expected -8.406\n    test 156 GeoidKarney('egm96-5.pgm').height(30.947, 173.002) kind 2: -8.366  FAILED, KNOWN, expected -8.367\n    test 157 GeoidKarney('egm96-5.pgm').height(-10.698, -144.091) kind 2: -2.026  FAILED, KNOWN, expected -2.025\n    test 158 GeoidKarney('egm96-5.pgm').height(-29.412, 124.753) kind 2: -16.569\n    test 159 GeoidKarney('egm96-5.pgm').height(38.224, -137.189) kind 2: -35.434  FAILED, KNOWN, expected -35.435\n    test 160 GeoidKarney('egm96-5.pgm').height(36.064, -132.409) kind 2: -39.009\n    test 161 GeoidKarney('egm96-5.pgm').height(29.975, 178.076) kind 2: -6.921\n    test 162 GeoidKarney('egm96-5.pgm').height(-21.346, 169.26) kind 2: 50.811  FAILED, KNOWN, expected 50.795\n    test 163 GeoidKarney('egm96-5.pgm').height(49.282, -152.934) kind 2: 1.069  FAILED, KNOWN, expected 1.070\n    test 164 GeoidKarney('egm96-5.pgm').height(16.349, -99.962) kind 2: -14.198  FAILED, KNOWN, expected -14.214\n    test 165 GeoidKarney('egm96-5.pgm').height(-14.293, -167.34) kind 2: 17.603  FAILED, KNOWN, expected 17.600\n    test 166 GeoidKarney('egm96-5.pgm').height(47.166, -38.523) kind 2: 44.803  FAILED, KNOWN, expected 44.804\n    test 167 GeoidKarney('egm96-5.pgm').height(-58.911, 114.347) kind 2: -17.924  FAILED, KNOWN, expected -17.922\n    test 168 GeoidKarney('egm96-5.pgm').height(-9.055, 111.294) kind 2: 10.681  FAILED, KNOWN, expected 10.662\n    test 169 GeoidKarney('egm96-5.pgm').height(18.391, 29.692) kind 2: 7.672  FAILED, KNOWN, expected 7.670\n    test 170 GeoidKarney('egm96-5.pgm').height(-15.074, 22.153) kind 2: 8.622  FAILED, KNOWN, expected 8.623\n    test 171 GeoidKarney('egm96-5.pgm').height(-4.235, 62.001) kind 2: -60.723\n    test 172 GeoidKarney('egm96-5.pgm').height(15.171, -86.583) kind 2: 3.818\n    test 173 GeoidKarney('egm96-5.pgm').height(79.254, 112.116) kind 2: -1.870  FAILED, KNOWN, expected -1.871\n    test 174 GeoidKarney('egm96-5.pgm').height(15.947, 156.093) kind 2: 30.642  FAILED, KNOWN, expected 30.633\n    test 175 GeoidKarney('egm96-5.pgm').height(68.371, -177.382) kind 2: 2.801\n    test 176 GeoidKarney('egm96-5.pgm').height(-41.931, -72.093) kind 2: 19.858  FAILED, KNOWN, expected 19.859\n    test 177 GeoidKarney('egm96-5.pgm').height(-1.193, -143.133) kind 2: 5.347  FAILED, KNOWN, expected 5.348\n    test 178 GeoidKarney('egm96-5.pgm').height(-37.006, 154.513) kind 2: 9.940  FAILED, KNOWN, expected 9.941\n    test 179 GeoidKarney('egm96-5.pgm').height(-22.148, 9.938) kind 2: 22.322  FAILED, KNOWN, expected 22.321\n    test 180 GeoidKarney('egm96-5.pgm').height(24.329, 109.044) kind 2: -24.136  FAILED, KNOWN, expected -24.135\n    test 181 GeoidKarney('egm96-5.pgm').height(-54.878, 114.691) kind 2: -17.680  FAILED, KNOWN, expected -17.679\n    test 182 GeoidKarney('egm96-5.pgm').height(45.601, -80.458) kind 2: -37.149  FAILED, KNOWN, expected -37.150\n    test 183 GeoidKarney('egm96-5.pgm').height(2.372, 58.974) kind 2: -61.158\n    test 184 GeoidKarney('egm96-5.pgm').height(15.937, 165.854) kind 2: 20.600  FAILED, KNOWN, expected 20.602\n    test 185 GeoidKarney('egm96-5.pgm').height(4.889, -24.213) kind 2: 13.054  FAILED, KNOWN, expected 13.055\n    test 186 GeoidKarney('egm96-5.pgm').height(-11.392, 179.558) kind 2: 40.138  FAILED, KNOWN, expected 40.132\n    test 187 GeoidKarney('egm96-5.pgm').height(58.246, 4.862) kind 2: 43.263\n    test 188 GeoidKarney('egm96-5.pgm').height(34.302, -109.109) kind 2: -23.129  FAILED, KNOWN, expected -23.126\n    test 189 GeoidKarney('egm96-5.pgm').height(-58.196, 117.306) kind 2: -20.677  FAILED, KNOWN, expected -20.678\n    test 190 GeoidKarney('egm96-5.pgm').height(44.5, 173.769) kind 2: -8.531  FAILED, KNOWN, expected -8.529\n    test 191 GeoidKarney('egm96-5.pgm').height(-28.863, -139.775) kind 2: -8.669  FAILED, KNOWN, expected -8.666\n    test 192 GeoidKarney('egm96-5.pgm').height(19.507, -96.099) kind 2: -12.798  FAILED, KNOWN, expected -12.796\n    test 193 GeoidKarney('egm96-5.pgm').height(-42.488, -73.907) kind 2: 15.770  FAILED, KNOWN, expected 15.773\n    test 194 GeoidKarney('egm96-5.pgm').height(46.138, -141.429) kind 2: -19.955  FAILED, KNOWN, expected -19.954\n    test 195 GeoidKarney('egm96-5.pgm').height(60.507, 93.743) kind 2: -31.479  FAILED, KNOWN, expected -31.480\n    test 196 GeoidKarney('egm96-5.pgm').height(26.219, -145.434) kind 2: -17.428  FAILED, KNOWN, expected -17.429\n    test 197 GeoidKarney('egm96-5.pgm').height(-28.687, 3.37) kind 2: 24.037\n    test 198 GeoidKarney('egm96-5.pgm').height(-15.008, 117.45) kind 2: 4.522  FAILED, KNOWN, expected 4.520\n    test 199 GeoidKarney('egm96-5.pgm').height(40.71, 144.095) kind 2: 11.403  FAILED, KNOWN, expected 11.394\n    test 200 GeoidKarney('egm96-5.pgm').height(20.823, -173.611) kind 2: 5.676  FAILED, KNOWN, expected 5.679\n    test 201 GeoidKarney('egm96-5.pgm').height(16.776, -3.009) kind 2: 28.705  FAILED, KNOWN, expected 28.707\n    test 202 GeoidKarney('egm96-5.pgm').height(41.0, -95.0) kind 2: -30.261  FAILED, KNOWN, expected -30.262\n    test 203 GeoidKarney('egm96-5.pgm').height(49.0, -120.5) kind 2: -15.984\n    test 204 GeoidKarney('egm96-5.pgm').height(49.0, -103.5) kind 2: -18.636  FAILED, KNOWN, expected -18.635\n    test 205 GeoidKarney('egm96-5.pgm').height(49.0, -86.5) kind 2: -37.749\n    test 206 GeoidKarney('egm96-5.pgm').height(49.0, -69.5) kind 2: -26.691\n    test 207 GeoidKarney('egm96-5.pgm').height(33.0, -120.5) kind 2: -39.561\n    test 208 GeoidKarney('egm96-5.pgm').height(33.0, -103.5) kind 2: -22.563  FAILED, KNOWN, expected -22.562\n    test 209 GeoidKarney('egm96-5.pgm').height(33.0, -86.5) kind 2: -30.012\n    test 210 GeoidKarney('egm96-5.pgm').height(33.0, -69.5) kind 2: -48.039\n\n    test 211 GeoidKarney('egm96-5.pgm').height() kind 2, hits 0, eps max (in 0 FAILED): 0.046496\n    test 212 GeoidKarney('egm96-5.pgm').height() kind 2, hits 0, eps mean (of 210 total): 0.002766\n    test 213 GeoidKarney('egm96-5.pgm').height() kind 2, hits 0, eps stdev (of 210 total): 0.005116\n    test 214 GeoidKarney('egm96-5.pgm').toStr: GeoidKarney('egm96-5.pgm'): lowerleft(-90.0, -180.0, -29.535), upperright(90.0, 180.0, 13.605), center(0.0, 0.0, 17.163), highest(-8.167, 147.25, 85.422), lowest(4.667, 78.833, -107.043)\n\n    test 215 closed: True\n    test 216 copy(<type 'type'>): (<class 'pygeodesy.geoids.GeoidKarney'>, True)\n    test 217 GeoidKarney.copy(): (<class 'pygeodesy.geoids.GeoidKarney'>, True)\n    test 218 GeoidKarney('egm96-5.pgm').height(-76.981, 34.17) kind 3: 11.424  FAILED, KNOWN, expected 11.423\n    test 219 GeoidKarney('egm96-5.pgm').height(79.695, 88.806) kind 3: 0.892\n    test 220 GeoidKarney('egm96-5.pgm').height(-15.245, 168.748) kind 3: 65.225  FAILED, KNOWN, expected 65.226\n    test 221 GeoidKarney('egm96-5.pgm').height(-19.379, 15.855) kind 3: 24.464  FAILED, KNOWN, expected 24.463\n    test 222 GeoidKarney('egm96-5.pgm').height(43.378, -130.552) kind 3: -29.682\n    test 223 GeoidKarney('egm96-5.pgm').height(-16.075, 21.795) kind 3: 10.503\n    test 224 GeoidKarney('egm96-5.pgm').height(-11.256, -73.75) kind 3: 29.325  FAILED, KNOWN, expected 29.326\n    test 225 GeoidKarney('egm96-5.pgm').height(69.017, -15.921) kind 3: 60.423  FAILED, KNOWN, expected 60.424\n    test 226 GeoidKarney('egm96-5.pgm').height(2.221, 139.739) kind 3: 68.996\n    test 227 GeoidKarney('egm96-5.pgm').height(-9.097, 119.142) kind 3: 36.287\n    test 228 GeoidKarney('egm96-5.pgm').height(-28.524, -22.192) kind 3: 6.626\n    test 229 GeoidKarney('egm96-5.pgm').height(12.272, -136.424) kind 3: -20.861  FAILED, KNOWN, expected -20.860\n    test 230 GeoidKarney('egm96-5.pgm').height(-15.203, -85.604) kind 3: -3.267\n    test 231 GeoidKarney('egm96-5.pgm').height(-63.736, -77.17) kind 3: -1.295  FAILED, KNOWN, expected -1.294\n    test 232 GeoidKarney('egm96-5.pgm').height(-48.771, -90.102) kind 3: -2.323  FAILED, KNOWN, expected -2.322\n    test 233 GeoidKarney('egm96-5.pgm').height(-0.179, -126.368) kind 3: -17.555  FAILED, KNOWN, expected -17.557\n    test 234 GeoidKarney('egm96-5.pgm').height(1.586, -128.887) kind 3: -16.594\n    test 235 GeoidKarney('egm96-5.pgm').height(-48.781, -2.684) kind 3: 24.454  FAILED, KNOWN, expected 24.453\n    test 236 GeoidKarney('egm96-5.pgm').height(-49.092, 136.862) kind 3: -18.592\n    test 237 GeoidKarney('egm96-5.pgm').height(47.732, 17.552) kind 3: 44.048  FAILED, KNOWN, expected 44.049\n    test 238 GeoidKarney('egm96-5.pgm').height(-49.11, 85.706) kind 3: 18.582  FAILED, KNOWN, expected 18.581\n    test 239 GeoidKarney('egm96-5.pgm').height(-49.162, 40.321) kind 3: 44.290  FAILED, KNOWN, expected 44.289\n    test 240 GeoidKarney('egm96-5.pgm').height(3.498, 158.118) kind 3: 49.817  FAILED, KNOWN, expected 49.816\n    test 241 GeoidKarney('egm96-5.pgm').height(-35.616, 122.648) kind 3: -36.114\n    test 242 GeoidKarney('egm96-5.pgm').height(56.598, -96.114) kind 3: -41.047  FAILED, KNOWN, expected -41.048\n    test 243 GeoidKarney('egm96-5.pgm').height(-31.85, 149.121) kind 3: 26.456\n    test 244 GeoidKarney('egm96-5.pgm').height(-26.569, -177.792) kind 3: 49.317\n    test 245 GeoidKarney('egm96-5.pgm').height(76.735, -65.753) kind 3: 20.714\n    test 246 GeoidKarney('egm96-5.pgm').height(-21.404, -122.268) kind 3: -7.362\n    test 247 GeoidKarney('egm96-5.pgm').height(-77.133, -65.474) kind 3: -16.491  FAILED, KNOWN, expected -16.492\n    test 248 GeoidKarney('egm96-5.pgm').height(-58.812, 2.276) kind 3: 18.110\n    test 249 GeoidKarney('egm96-5.pgm').height(4.415, 155.683) kind 3: 51.858\n    test 250 GeoidKarney('egm96-5.pgm').height(-28.146, 107.081) kind 3: -38.979  FAILED, KNOWN, expected -38.981\n    test 251 GeoidKarney('egm96-5.pgm').height(-10.551, -126.69) kind 3: -9.913\n    test 252 GeoidKarney('egm96-5.pgm').height(-25.444, -103.337) kind 3: -2.828\n    test 253 GeoidKarney('egm96-5.pgm').height(24.436, 46.159) kind 3: -5.718  FAILED, KNOWN, expected -5.719\n    test 254 GeoidKarney('egm96-5.pgm').height(-72.889, 37.107) kind 3: 22.427  FAILED, KNOWN, expected 22.426\n    test 255 GeoidKarney('egm96-5.pgm').height(-19.629, 13.245) kind 3: 24.545\n    test 256 GeoidKarney('egm96-5.pgm').height(-7.602, 171.265) kind 3: 40.651  FAILED, KNOWN, expected 40.652\n    test 257 GeoidKarney('egm96-5.pgm').height(-45.364, -1.876) kind 3: 22.383\n    test 258 GeoidKarney('egm96-5.pgm').height(-7.292, -69.18) kind 3: 22.183  FAILED, KNOWN, expected 22.182\n    test 259 GeoidKarney('egm96-5.pgm').height(-31.566, -166.689) kind 3: 14.929  FAILED, KNOWN, expected 14.930\n    test 260 GeoidKarney('egm96-5.pgm').height(-82.751, -162.085) kind 3: -47.094\n    test 261 GeoidKarney('egm96-5.pgm').height(-40.7, 99.466) kind 3: -18.421\n    test 262 GeoidKarney('egm96-5.pgm').height(48.676, 39.69) kind 3: 10.055\n    test 263 GeoidKarney('egm96-5.pgm').height(74.817, -78.404) kind 3: 5.786\n    test 264 GeoidKarney('egm96-5.pgm').height(-81.032, -63.865) kind 3: -22.838\n    test 265 GeoidKarney('egm96-5.pgm').height(74.022, 9.432) kind 3: 42.989\n    test 266 GeoidKarney('egm96-5.pgm').height(-75.071, 17.579) kind 3: 15.352  FAILED, KNOWN, expected 15.353\n    test 267 GeoidKarney('egm96-5.pgm').height(-12.546, -54.851) kind 3: -6.338  FAILED, KNOWN, expected -6.337\n    test 268 GeoidKarney('egm96-5.pgm').height(-13.621, 42.408) kind 3: -25.554  FAILED, KNOWN, expected -25.555\n    test 269 GeoidKarney('egm96-5.pgm').height(-2.266, -91.951) kind 3: -9.922  FAILED, KNOWN, expected -9.923\n    test 270 GeoidKarney('egm96-5.pgm').height(-18.672, 42.547) kind 3: -10.853  FAILED, KNOWN, expected -10.852\n    test 271 GeoidKarney('egm96-5.pgm').height(-41.44, 157.413) kind 3: -0.135\n    test 272 GeoidKarney('egm96-5.pgm').height(53.686, -79.375) kind 3: -43.809\n    test 273 GeoidKarney('egm96-5.pgm').height(39.26, -30.351) kind 3: 57.150\n    test 274 GeoidKarney('egm96-5.pgm').height(-51.699, -141.493) kind 3: -17.656  FAILED, KNOWN, expected -17.657\n    test 275 GeoidKarney('egm96-5.pgm').height(36.585, 4.515) kind 3: 46.359  FAILED, KNOWN, expected 46.358\n    test 276 GeoidKarney('egm96-5.pgm').height(39.642, -54.659) kind 3: -14.404\n    test 277 GeoidKarney('egm96-5.pgm').height(59.761, 166.567) kind 3: 11.242\n    test 278 GeoidKarney('egm96-5.pgm').height(51.83, 13.357) kind 3: 42.237\n    test 279 GeoidKarney('egm96-5.pgm').height(-36.531, -175.431) kind 3: 22.147\n    test 280 GeoidKarney('egm96-5.pgm').height(-37.08, 125.264) kind 3: -33.396\n    test 281 GeoidKarney('egm96-5.pgm').height(-68.651, 92.732) kind 3: 7.961\n    test 282 GeoidKarney('egm96-5.pgm').height(35.087, 45.336) kind 3: 7.228  FAILED, KNOWN, expected 7.229\n    test 283 GeoidKarney('egm96-5.pgm').height(-61.356, -169.379) kind 3: -44.290  FAILED, KNOWN, expected -44.292\n    test 284 GeoidKarney('egm96-5.pgm').height(-36.955, 179.12) kind 3: 21.874  FAILED, KNOWN, expected 21.875\n    test 285 GeoidKarney('egm96-5.pgm').height(10.248, -6.714) kind 3: 28.933\n    test 286 GeoidKarney('egm96-5.pgm').height(36.868, 84.602) kind 3: -41.238\n    test 287 GeoidKarney('egm96-5.pgm').height(28.637, 88.933) kind 3: -31.331\n    test 288 GeoidKarney('egm96-5.pgm').height(54.811, -99.968) kind 3: -32.702\n    test 289 GeoidKarney('egm96-5.pgm').height(7.611, 145.911) kind 3: 60.117\n    test 290 GeoidKarney('egm96-5.pgm').height(59.412, 170.102) kind 3: 6.457\n    test 291 GeoidKarney('egm96-5.pgm').height(-61.469, 126.144) kind 3: -31.961\n    test 292 GeoidKarney('egm96-5.pgm').height(18.514, -137.083) kind 3: -26.572  FAILED, KNOWN, expected -26.571\n    test 293 GeoidKarney('egm96-5.pgm').height(7.854, -126.799) kind 3: -29.761  FAILED, KNOWN, expected -29.760\n    test 294 GeoidKarney('egm96-5.pgm').height(47.489, 134.183) kind 3: 21.981  FAILED, KNOWN, expected 21.980\n    test 295 GeoidKarney('egm96-5.pgm').height(-34.144, -11.922) kind 3: 16.849\n    test 296 GeoidKarney('egm96-5.pgm').height(-58.389, 117.458) kind 3: -20.923\n    test 297 GeoidKarney('egm96-5.pgm').height(9.773, 95.846) kind 3: -42.749\n    test 298 GeoidKarney('egm96-5.pgm').height(-53.12, 136.994) kind 3: -21.840  FAILED, KNOWN, expected -21.841\n    test 299 GeoidKarney('egm96-5.pgm').height(-50.35, 0.075) kind 3: 25.481  FAILED, KNOWN, expected 25.482\n    test 300 GeoidKarney('egm96-5.pgm').height(31.438, -170.879) kind 3: -8.846  FAILED, KNOWN, expected -8.847\n    test 301 GeoidKarney('egm96-5.pgm').height(37.541, -153.024) kind 3: -19.603  FAILED, KNOWN, expected -19.604\n    test 302 GeoidKarney('egm96-5.pgm').height(27.586, 2.444) kind 3: 25.668\n    test 303 GeoidKarney('egm96-5.pgm').height(-26.139, -106.201) kind 3: -3.772\n    test 304 GeoidKarney('egm96-5.pgm').height(-33.426, -14.84) kind 3: 17.747  FAILED, KNOWN, expected 17.748\n    test 305 GeoidKarney('egm96-5.pgm').height(39.586, -153.019) kind 3: -17.838  FAILED, KNOWN, expected -17.839\n    test 306 GeoidKarney('egm96-5.pgm').height(-60.79, -2.578) kind 3: 14.292\n    test 307 GeoidKarney('egm96-5.pgm').height(-20.131, 21.975) kind 3: 16.529\n    test 308 GeoidKarney('egm96-5.pgm').height(75.649, 99.921) kind 3: -8.230  FAILED, KNOWN, expected -8.229\n    test 309 GeoidKarney('egm96-5.pgm').height(-0.385, -23.788) kind 3: 9.831  FAILED, KNOWN, expected 9.830\n    test 310 GeoidKarney('egm96-5.pgm').height(-51.56, -50.327) kind 3: 6.215\n    test 311 GeoidKarney('egm96-5.pgm').height(-43.129, -167.271) kind 3: -2.960\n    test 312 GeoidKarney('egm96-5.pgm').height(46.374, 71.948) kind 3: -42.323\n    test 313 GeoidKarney('egm96-5.pgm').height(-22.783, 140.657) kind 3: 38.356\n    test 314 GeoidKarney('egm96-5.pgm').height(-12.056, 122.804) kind 3: 34.259\n    test 315 GeoidKarney('egm96-5.pgm').height(30.127, 94.738) kind 3: -37.397\n    test 316 GeoidKarney('egm96-5.pgm').height(46.296, -174.479) kind 3: -2.017  FAILED, KNOWN, expected -2.016\n    test 317 GeoidKarney('egm96-5.pgm').height(34.99, 15.052) kind 3: 33.912\n    test 318 GeoidKarney('egm96-5.pgm').height(-51.287, 90.565) kind 3: 12.676\n    test 319 GeoidKarney('egm96-5.pgm').height(34.217, 141.302) kind 3: 15.692\n    test 320 GeoidKarney('egm96-5.pgm').height(-40.423, -142.787) kind 3: -11.117\n    test 321 GeoidKarney('egm96-5.pgm').height(-17.854, -170.216) kind 3: 27.437\n    test 322 GeoidKarney('egm96-5.pgm').height(47.803, 112.701) kind 3: -23.894\n    test 323 GeoidKarney('egm96-5.pgm').height(-23.276, 133.454) kind 3: 18.765  FAILED, KNOWN, expected 18.766\n    test 324 GeoidKarney('egm96-5.pgm').height(-26.884, -36.571) kind 3: -7.452\n    test 325 GeoidKarney('egm96-5.pgm').height(-37.106, 31.128) kind 3: 30.143\n    test 326 GeoidKarney('egm96-5.pgm').height(-75.363, -173.674) kind 3: -61.172\n    test 327 GeoidKarney('egm96-5.pgm').height(-18.305, 69.016) kind 3: -24.890\n    test 328 GeoidKarney('egm96-5.pgm').height(39.527, 23.58) kind 3: 39.519\n    test 329 GeoidKarney('egm96-5.pgm').height(68.903, 30.97) kind 3: 19.420  FAILED, KNOWN, expected 19.419\n    test 330 GeoidKarney('egm96-5.pgm').height(53.937, 168.318) kind 3: 2.067  FAILED, KNOWN, expected 2.069\n    test 331 GeoidKarney('egm96-5.pgm').height(-38.6, 64.812) kind 3: 25.049  FAILED, KNOWN, expected 25.048\n    test 332 GeoidKarney('egm96-5.pgm').height(-41.396, -69.739) kind 3: 22.546  FAILED, KNOWN, expected 22.547\n    test 333 GeoidKarney('egm96-5.pgm').height(50.158, 72.319) kind 3: -34.358  FAILED, KNOWN, expected -34.359\n    test 334 GeoidKarney('egm96-5.pgm').height(27.692, 176.153) kind 3: -5.454  FAILED, KNOWN, expected -5.453\n    test 335 GeoidKarney('egm96-5.pgm').height(-48.419, 170.454) kind 3: -6.804\n    test 336 GeoidKarney('egm96-5.pgm').height(-65.346, -124.976) kind 3: -35.053  FAILED, KNOWN, expected -35.054\n    test 337 GeoidKarney('egm96-5.pgm').height(-51.873, 167.266) kind 3: -15.417  FAILED, KNOWN, expected -15.418\n    test 338 GeoidKarney('egm96-5.pgm').height(-7.263, 84.308) kind 3: -79.557\n    test 339 GeoidKarney('egm96-5.pgm').height(-1.461, -105.458) kind 3: -16.894\n    test 340 GeoidKarney('egm96-5.pgm').height(7.684, 161.873) kind 3: 36.215\n    test 341 GeoidKarney('egm96-5.pgm').height(-31.475, -158.52) kind 3: 3.523\n    test 342 GeoidKarney('egm96-5.pgm').height(-36.187, 62.917) kind 3: 23.797\n    test 343 GeoidKarney('egm96-5.pgm').height(16.003, 141.687) kind 3: 51.587  FAILED, KNOWN, expected 51.586\n    test 344 GeoidKarney('egm96-5.pgm').height(30.182, 86.261) kind 3: -30.131\n    test 345 GeoidKarney('egm96-5.pgm').height(-77.304, 159.498) kind 3: -51.849  FAILED, KNOWN, expected -51.848\n    test 346 GeoidKarney('egm96-5.pgm').height(39.536, 139.795) kind 3: 37.191  FAILED, KNOWN, expected 37.192\n    test 347 GeoidKarney('egm96-5.pgm').height(8.569, 134.618) kind 3: 63.596  FAILED, KNOWN, expected 63.597\n    test 348 GeoidKarney('egm96-5.pgm').height(14.473, 90.596) kind 3: -62.636\n    test 349 GeoidKarney('egm96-5.pgm').height(-13.138, -99.589) kind 3: -8.718  FAILED, KNOWN, expected -8.717\n    test 350 GeoidKarney('egm96-5.pgm').height(34.212, -26.307) kind 3: 40.645\n    test 351 GeoidKarney('egm96-5.pgm').height(21.89, 76.371) kind 3: -60.729\n    test 352 GeoidKarney('egm96-5.pgm').height(29.793, 120.487) kind 3: 8.784  FAILED, KNOWN, expected 8.783\n    test 353 GeoidKarney('egm96-5.pgm').height(15.724, 122.714) kind 3: 31.523\n    test 354 GeoidKarney('egm96-5.pgm').height(-66.208, -78.499) kind 3: -6.251  FAILED, KNOWN, expected -6.250\n    test 355 GeoidKarney('egm96-5.pgm').height(-39.507, 55.809) kind 3: 32.598  FAILED, KNOWN, expected 32.599\n    test 356 GeoidKarney('egm96-5.pgm').height(28.159, 51.476) kind 3: -24.536\n    test 357 GeoidKarney('egm96-5.pgm').height(-36.207, 120.205) kind 3: -38.869\n    test 358 GeoidKarney('egm96-5.pgm').height(30.575, -99.998) kind 3: -23.212  FAILED, KNOWN, expected -23.213\n    test 359 GeoidKarney('egm96-5.pgm').height(-16.993, 37.136) kind 3: -11.824\n    test 360 GeoidKarney('egm96-5.pgm').height(-11.477, 12.039) kind 3: 16.710  FAILED, KNOWN, expected 16.709\n    test 361 GeoidKarney('egm96-5.pgm').height(30.428, -144.765) kind 3: -22.378  FAILED, KNOWN, expected -22.379\n    test 362 GeoidKarney('egm96-5.pgm').height(-17.44, -92.424) kind 3: -4.941\n    test 363 GeoidKarney('egm96-5.pgm').height(40.203, 143.43) kind 3: 19.394\n    test 364 GeoidKarney('egm96-5.pgm').height(-37.098, -106.574) kind 3: -9.381\n    test 365 GeoidKarney('egm96-5.pgm').height(54.62, -68.413) kind 3: -23.318  FAILED, KNOWN, expected -23.319\n    test 366 GeoidKarney('egm96-5.pgm').height(-31.633, 148.182) kind 3: 24.467  FAILED, KNOWN, expected 24.468\n    test 367 GeoidKarney('egm96-5.pgm').height(-56.07, -141.407) kind 3: -21.761\n    test 368 GeoidKarney('egm96-5.pgm').height(-8.195, -52.691) kind 3: -18.798\n    test 369 GeoidKarney('egm96-5.pgm').height(17.851, 24.749) kind 3: 12.612\n    test 370 GeoidKarney('egm96-5.pgm').height(0.349, -108.333) kind 3: -19.708  FAILED, KNOWN, expected -19.706\n    test 371 GeoidKarney('egm96-5.pgm').height(15.038, 126.191) kind 3: 45.792\n    test 372 GeoidKarney('egm96-5.pgm').height(-21.111, -123.696) kind 3: -8.406\n    test 373 GeoidKarney('egm96-5.pgm').height(30.947, 173.002) kind 3: -8.367\n    test 374 GeoidKarney('egm96-5.pgm').height(-10.698, -144.091) kind 3: -2.026  FAILED, KNOWN, expected -2.025\n    test 375 GeoidKarney('egm96-5.pgm').height(-29.412, 124.753) kind 3: -16.567  FAILED, KNOWN, expected -16.569\n    test 376 GeoidKarney('egm96-5.pgm').height(38.224, -137.189) kind 3: -35.435\n    test 377 GeoidKarney('egm96-5.pgm').height(36.064, -132.409) kind 3: -39.008  FAILED, KNOWN, expected -39.009\n    test 378 GeoidKarney('egm96-5.pgm').height(29.975, 178.076) kind 3: -6.921\n    test 379 GeoidKarney('egm96-5.pgm').height(-21.346, 169.26) kind 3: 50.795\n    test 380 GeoidKarney('egm96-5.pgm').height(49.282, -152.934) kind 3: 1.071  FAILED, KNOWN, expected 1.070\n    test 381 GeoidKarney('egm96-5.pgm').height(16.349, -99.962) kind 3: -14.214\n    test 382 GeoidKarney('egm96-5.pgm').height(-14.293, -167.34) kind 3: 17.600\n    test 383 GeoidKarney('egm96-5.pgm').height(47.166, -38.523) kind 3: 44.803  FAILED, KNOWN, expected 44.804\n    test 384 GeoidKarney('egm96-5.pgm').height(-58.911, 114.347) kind 3: -17.923  FAILED, KNOWN, expected -17.922\n    test 385 GeoidKarney('egm96-5.pgm').height(-9.055, 111.294) kind 3: 10.662\n    test 386 GeoidKarney('egm96-5.pgm').height(18.391, 29.692) kind 3: 7.670\n    test 387 GeoidKarney('egm96-5.pgm').height(-15.074, 22.153) kind 3: 8.624  FAILED, KNOWN, expected 8.623\n    test 388 GeoidKarney('egm96-5.pgm').height(-4.235, 62.001) kind 3: -60.722  FAILED, KNOWN, expected -60.723\n    test 389 GeoidKarney('egm96-5.pgm').height(15.171, -86.583) kind 3: 3.820  FAILED, KNOWN, expected 3.818\n    test 390 GeoidKarney('egm96-5.pgm').height(79.254, 112.116) kind 3: -1.871\n    test 391 GeoidKarney('egm96-5.pgm').height(15.947, 156.093) kind 3: 30.634  FAILED, KNOWN, expected 30.633\n    test 392 GeoidKarney('egm96-5.pgm').height(68.371, -177.382) kind 3: 2.800  FAILED, KNOWN, expected 2.801\n    test 393 GeoidKarney('egm96-5.pgm').height(-41.931, -72.093) kind 3: 19.858  FAILED, KNOWN, expected 19.859\n    test 394 GeoidKarney('egm96-5.pgm').height(-1.193, -143.133) kind 3: 5.347  FAILED, KNOWN, expected 5.348\n    test 395 GeoidKarney('egm96-5.pgm').height(-37.006, 154.513) kind 3: 9.941\n    test 396 GeoidKarney('egm96-5.pgm').height(-22.148, 9.938) kind 3: 22.322  FAILED, KNOWN, expected 22.321\n    test 397 GeoidKarney('egm96-5.pgm').height(24.329, 109.044) kind 3: -24.135\n    test 398 GeoidKarney('egm96-5.pgm').height(-54.878, 114.691) kind 3: -17.680  FAILED, KNOWN, expected -17.679\n    test 399 GeoidKarney('egm96-5.pgm').height(45.601, -80.458) kind 3: -37.151  FAILED, KNOWN, expected -37.150\n    test 400 GeoidKarney('egm96-5.pgm').height(2.372, 58.974) kind 3: -61.158\n    test 401 GeoidKarney('egm96-5.pgm').height(15.937, 165.854) kind 3: 20.603  FAILED, KNOWN, expected 20.602\n    test 402 GeoidKarney('egm96-5.pgm').height(4.889, -24.213) kind 3: 13.056  FAILED, KNOWN, expected 13.055\n    test 403 GeoidKarney('egm96-5.pgm').height(-11.392, 179.558) kind 3: 40.133  FAILED, KNOWN, expected 40.132\n    test 404 GeoidKarney('egm96-5.pgm').height(58.246, 4.862) kind 3: 43.263\n    test 405 GeoidKarney('egm96-5.pgm').height(34.302, -109.109) kind 3: -23.126\n    test 406 GeoidKarney('egm96-5.pgm').height(-58.196, 117.306) kind 3: -20.678\n    test 407 GeoidKarney('egm96-5.pgm').height(44.5, 173.769) kind 3: -8.530  FAILED, KNOWN, expected -8.529\n    test 408 GeoidKarney('egm96-5.pgm').height(-28.863, -139.775) kind 3: -8.666\n    test 409 GeoidKarney('egm96-5.pgm').height(19.507, -96.099) kind 3: -12.795  FAILED, KNOWN, expected -12.796\n    test 410 GeoidKarney('egm96-5.pgm').height(-42.488, -73.907) kind 3: 15.774  FAILED, KNOWN, expected 15.773\n    test 411 GeoidKarney('egm96-5.pgm').height(46.138, -141.429) kind 3: -19.955  FAILED, KNOWN, expected -19.954\n    test 412 GeoidKarney('egm96-5.pgm').height(60.507, 93.743) kind 3: -31.480\n    test 413 GeoidKarney('egm96-5.pgm').height(26.219, -145.434) kind 3: -17.428  FAILED, KNOWN, expected -17.429\n    test 414 GeoidKarney('egm96-5.pgm').height(-28.687, 3.37) kind 3: 24.037\n    test 415 GeoidKarney('egm96-5.pgm').height(-15.008, 117.45) kind 3: 4.519  FAILED, KNOWN, expected 4.520\n    test 416 GeoidKarney('egm96-5.pgm').height(40.71, 144.095) kind 3: 11.393  FAILED, KNOWN, expected 11.394\n    test 417 GeoidKarney('egm96-5.pgm').height(20.823, -173.611) kind 3: 5.678  FAILED, KNOWN, expected 5.679\n    test 418 GeoidKarney('egm96-5.pgm').height(16.776, -3.009) kind 3: 28.707\n    test 419 GeoidKarney('egm96-5.pgm').height(41.0, -95.0) kind 3: -30.261  FAILED, KNOWN, expected -30.262\n    test 420 GeoidKarney('egm96-5.pgm').height(49.0, -120.5) kind 3: -15.984\n    test 421 GeoidKarney('egm96-5.pgm').height(49.0, -103.5) kind 3: -18.635\n    test 422 GeoidKarney('egm96-5.pgm').height(49.0, -86.5) kind 3: -37.749\n    test 423 GeoidKarney('egm96-5.pgm').height(49.0, -69.5) kind 3: -26.691\n    test 424 GeoidKarney('egm96-5.pgm').height(33.0, -120.5) kind 3: -39.561\n    test 425 GeoidKarney('egm96-5.pgm').height(33.0, -103.5) kind 3: -22.562\n    test 426 GeoidKarney('egm96-5.pgm').height(33.0, -86.5) kind 3: -30.012\n    test 427 GeoidKarney('egm96-5.pgm').height(33.0, -69.5) kind 3: -48.039\n\n    test 428 GeoidKarney('egm96-5.pgm').height() kind 3, hits 0, eps max (in 0 FAILED): 0.001756\n    test 429 GeoidKarney('egm96-5.pgm').height() kind 3, hits 0, eps mean (of 210 total): 0.000524\n    test 430 GeoidKarney('egm96-5.pgm').height() kind 3, hits 0, eps stdev (of 210 total): 0.000371\n    test 431 GeoidKarney('egm96-5.pgm').toStr: GeoidKarney('egm96-5.pgm'): lowerleft(-90.0, -180.0, -29.535), upperright(90.0, 180.0, 13.605), center(0.0, 0.0, 17.163), highest(-8.167, 147.25, 85.422), lowest(4.667, 78.833, -107.043)\n\n    test 432 closed: True\n    test 433 copy(<type 'type'>): (<class 'pygeodesy.geoids.GeoidKarney'>, True)\n    test 434 GeoidKarney.copy(): (<class 'pygeodesy.geoids.GeoidKarney'>, True)\n    test 435 GeoidPGM('egm96-5.pgm').height(-76.981, 34.17) kind 3: lli ('-76.981466, 34.17016'), H (False) or wrap (False): lli ('-76.981466, 34.17016'): outside on SE  FAILED, KNOWN, expected 11.423\n    test 436 GeoidPGM('egm96-5.pgm').height(79.695, 88.806) kind 3: lli ('79.695484, 88.805571'), H (False) or wrap (False): lli ('79.695484, 88.805571'): outside on NE  FAILED, KNOWN, expected 0.892\n    test 437 GeoidPGM('egm96-5.pgm').height(-15.245, 168.748) kind 3: lli ('-15.244804, 168.747961'), H (False) or wrap (False): lli ('-15.244804, 168.747961'): outside on SE  FAILED, KNOWN, expected 65.226\n    test 438 GeoidPGM('egm96-5.pgm').height(-19.379, 15.855) kind 3: lli ('-19.379357, 15.85511'), H (False) or wrap (False): lli ('-19.379357, 15.85511'): outside on SE  FAILED, KNOWN, expected 24.463\n    test 439 GeoidPGM('egm96-5.pgm').height(43.378, -130.552) kind 3: lli ('43.377784, -130.551582'), H (False) or wrap (False): lli ('43.377784, -130.551582'): outside on W  FAILED, KNOWN, expected -29.682\n    test 440 GeoidPGM('egm96-5.pgm').height(-16.075, 21.795) kind 3: lli ('-16.074554, 21.79547'), H (False) or wrap (False): lli ('-16.074554, 21.79547'): outside on SE  FAILED, KNOWN, expected 10.503\n    test 441 GeoidPGM('egm96-5.pgm').height(-11.256, -73.75) kind 3: lli ('-11.256389, -73.750255'), H (False) or wrap (False): lli ('-11.256389, -73.750255'): outside on S  FAILED, KNOWN, expected 29.326\n    test 442 GeoidPGM('egm96-5.pgm').height(69.017, -15.921) kind 3: lli ('69.016564, -15.921115'), H (False) or wrap (False): lli ('69.016564, -15.921115'): outside on NE  FAILED, KNOWN, expected 60.424\n    test 443 GeoidPGM('egm96-5.pgm').height(2.221, 139.739) kind 3: lli ('2.221008, 139.73935'), H (False) or wrap (False): lli ('2.221008, 139.73935'): outside on SE  FAILED, KNOWN, expected 68.996\n    test 444 GeoidPGM('egm96-5.pgm').height(-9.097, 119.142) kind 3: lli ('-9.096878, 119.141551'), H (False) or wrap (False): lli ('-9.096878, 119.141551'): outside on SE  FAILED, KNOWN, expected 36.287\n    test 445 GeoidPGM('egm96-5.pgm').height(-28.524, -22.192) kind 3: lli ('-28.523717, -22.1925'), H (False) or wrap (False): lli ('-28.523717, -22.1925'): outside on SE  FAILED, KNOWN, expected 6.626\n    test 446 GeoidPGM('egm96-5.pgm').height(12.272, -136.424) kind 3: lli ('12.27231, -136.424168'), H (False) or wrap (False): lli ('12.27231, -136.424168'): outside on SW  FAILED, KNOWN, expected -20.860\n    test 447 GeoidPGM('egm96-5.pgm').height(-15.203, -85.604) kind 3: lli ('-15.20317, -85.603753'), H (False) or wrap (False): lli ('-15.20317, -85.603753'): outside on S  FAILED, KNOWN, expected -3.267\n    test 448 GeoidPGM('egm96-5.pgm').height(-63.736, -77.17) kind 3: lli ('-63.735565, -77.169636'), H (False) or wrap (False): lli ('-63.735565, -77.169636'): outside on S  FAILED, KNOWN, expected -1.294\n    test 449 GeoidPGM('egm96-5.pgm').height(-48.771, -90.102) kind 3: lli ('-48.770825, -90.102117'), H (False) or wrap (False): lli ('-48.770825, -90.102117'): outside on S  FAILED, KNOWN, expected -2.322\n    test 450 GeoidPGM('egm96-5.pgm').height(-0.179, -126.368) kind 3: lli ('-0.178524, -126.368279'), H (False) or wrap (False): lli ('-0.178524, -126.368279'): outside on SW  FAILED, KNOWN, expected -17.557\n    test 451 GeoidPGM('egm96-5.pgm').height(1.586, -128.887) kind 3: lli ('1.585536, -128.886967'), H (False) or wrap (False): lli ('1.585536, -128.886967'): outside on SW  FAILED, KNOWN, expected -16.594\n    test 452 GeoidPGM('egm96-5.pgm').height(-48.781, -2.684) kind 3: lli ('-48.780705, -2.684224'), H (False) or wrap (False): lli ('-48.780705, -2.684224'): outside on SE  FAILED, KNOWN, expected 24.453\n    test 453 GeoidPGM('egm96-5.pgm').height(-49.092, 136.862) kind 3: lli ('-49.091632, 136.862256'), H (False) or wrap (False): lli ('-49.091632, 136.862256'): outside on SE  FAILED, KNOWN, expected -18.592\n    test 454 GeoidPGM('egm96-5.pgm').height(47.732, 17.552) kind 3: lli ('47.731727, 17.552416'), H (False) or wrap (False): lli ('47.731727, 17.552416'): outside on E  FAILED, KNOWN, expected 44.049\n    test 455 GeoidPGM('egm96-5.pgm').height(-49.11, 85.706) kind 3: lli ('-49.109549, 85.706437'), H (False) or wrap (False): lli ('-49.109549, 85.706437'): outside on SE  FAILED, KNOWN, expected 18.581\n    test 456 GeoidPGM('egm96-5.pgm').height(-49.162, 40.321) kind 3: lli ('-49.162281, 40.321209'), H (False) or wrap (False): lli ('-49.162281, 40.321209'): outside on SE  FAILED, KNOWN, expected 44.289\n    test 457 GeoidPGM('egm96-5.pgm').height(3.498, 158.118) kind 3: lli ('3.498333, 158.117699'), H (False) or wrap (False): lli ('3.498333, 158.117699'): outside on SE  FAILED, KNOWN, expected 49.816\n    test 458 GeoidPGM('egm96-5.pgm').height(-35.616, 122.648) kind 3: lli ('-35.616495, 122.648407'), H (False) or wrap (False): lli ('-35.616495, 122.648407'): outside on SE  FAILED, KNOWN, expected -36.114\n    test 459 GeoidPGM('egm96-5.pgm').height(56.598, -96.114) kind 3: lli ('56.598256, -96.113696'), H (False) or wrap (False): lli ('56.598256, -96.113696'): outside on N  FAILED, KNOWN, expected -41.048\n    test 460 GeoidPGM('egm96-5.pgm').height(-31.85, 149.121) kind 3: lli ('-31.850231, 149.120596'), H (False) or wrap (False): lli ('-31.850231, 149.120596'): outside on SE  FAILED, KNOWN, expected 26.456\n    test 461 GeoidPGM('egm96-5.pgm').height(-26.569, -177.792) kind 3: lli ('-26.568996, -177.792196'), H (False) or wrap (False): lli ('-26.568996, -177.792196'): outside on SW  FAILED, KNOWN, expected 49.317\n    test 462 GeoidPGM('egm96-5.pgm').height(76.735, -65.753) kind 3: lli ('76.734699, -65.752952'), H (False) or wrap (False): lli ('76.734699, -65.752952'): outside on N  FAILED, KNOWN, expected 20.714\n    test 463 GeoidPGM('egm96-5.pgm').height(-21.404, -122.268) kind 3: lli ('-21.404166, -122.267869'), H (False) or wrap (False): lli ('-21.404166, -122.267869'): outside on S  FAILED, KNOWN, expected -7.362\n    test 464 GeoidPGM('egm96-5.pgm').height(-77.133, -65.474) kind 3: lli ('-77.133426, -65.473819'), H (False) or wrap (False): lli ('-77.133426, -65.473819'): outside on S  FAILED, KNOWN, expected -16.492\n    test 465 GeoidPGM('egm96-5.pgm').height(-58.812, 2.276) kind 3: lli ('-58.811779, 2.276142'), H (False) or wrap (False): lli ('-58.811779, 2.276142'): outside on SE  FAILED, KNOWN, expected 18.110\n    test 466 GeoidPGM('egm96-5.pgm').height(4.415, 155.683) kind 3: lli ('4.415102, 155.683336'), H (False) or wrap (False): lli ('4.415102, 155.683336'): outside on SE  FAILED, KNOWN, expected 51.858\n    test 467 GeoidPGM('egm96-5.pgm').height(-28.146, 107.081) kind 3: lli ('-28.145768, 107.081334'), H (False) or wrap (False): lli ('-28.145768, 107.081334'): outside on SE  FAILED, KNOWN, expected -38.981\n    test 468 GeoidPGM('egm96-5.pgm').height(-10.551, -126.69) kind 3: lli ('-10.551267, -126.690468'), H (False) or wrap (False): lli ('-10.551267, -126.690468'): outside on SW  FAILED, KNOWN, expected -9.913\n    test 469 GeoidPGM('egm96-5.pgm').height(-25.444, -103.337) kind 3: lli ('-25.444344, -103.337184'), H (False) or wrap (False): lli ('-25.444344, -103.337184'): outside on S  FAILED, KNOWN, expected -2.828\n    test 470 GeoidPGM('egm96-5.pgm').height(24.436, 46.159) kind 3: lli ('24.435896, 46.158715'), H (False) or wrap (False): lli ('24.435896, 46.158715'): outside on SE  FAILED, KNOWN, expected -5.719\n    test 471 GeoidPGM('egm96-5.pgm').height(-72.889, 37.107) kind 3: lli ('-72.888898, 37.106907'), H (False) or wrap (False): lli ('-72.888898, 37.106907'): outside on SE  FAILED, KNOWN, expected 22.426\n    test 472 GeoidPGM('egm96-5.pgm').height(-19.629, 13.245) kind 3: lli ('-19.628762, 13.244525'), H (False) or wrap (False): lli ('-19.628762, 13.244525'): outside on SE  FAILED, KNOWN, expected 24.545\n    test 473 GeoidPGM('egm96-5.pgm').height(-7.602, 171.265) kind 3: lli ('-7.602449, 171.264763'), H (False) or wrap (False): lli ('-7.602449, 171.264763'): outside on SE  FAILED, KNOWN, expected 40.652\n    test 474 GeoidPGM('egm96-5.pgm').height(-45.364, -1.876) kind 3: lli ('-45.364396, -1.876412'), H (False) or wrap (False): lli ('-45.364396, -1.876412'): outside on SE  FAILED, KNOWN, expected 22.383\n    test 475 GeoidPGM('egm96-5.pgm').height(-7.292, -69.18) kind 3: lli ('-7.292121, -69.179565'), H (False) or wrap (False): lli ('-7.292121, -69.179565'): outside on S  FAILED, KNOWN, expected 22.182\n    test 476 GeoidPGM('egm96-5.pgm').height(-31.566, -166.689) kind 3: lli ('-31.566264, -166.688985'), H (False) or wrap (False): lli ('-31.566264, -166.688985'): outside on SW  FAILED, KNOWN, expected 14.930\n    test 477 GeoidPGM('egm96-5.pgm').height(-82.751, -162.085) kind 3: lli ('-82.751144, -162.08523'), H (False) or wrap (False): lli ('-82.751144, -162.08523'): outside on SW  FAILED, KNOWN, expected -47.094\n    test 478 GeoidPGM('egm96-5.pgm').height(-40.7, 99.466) kind 3: lli ('-40.699637, 99.465509'), H (False) or wrap (False): lli ('-40.699637, 99.465509'): outside on SE  FAILED, KNOWN, expected -18.421\n    test 479 GeoidPGM('egm96-5.pgm').height(48.676, 39.69) kind 3: lli ('48.675771, 39.690012'), H (False) or wrap (False): lli ('48.675771, 39.690012'): outside on E  FAILED, KNOWN, expected 10.055\n    test 480 GeoidPGM('egm96-5.pgm').height(74.817, -78.404) kind 3: lli ('74.817287, -78.404187'), H (False) or wrap (False): lli ('74.817287, -78.404187'): outside on N  FAILED, KNOWN, expected 5.786\n    test 481 GeoidPGM('egm96-5.pgm').height(-81.032, -63.865) kind 3: lli ('-81.032306, -63.864898'), H (False) or wrap (False): lli ('-81.032306, -63.864898'): outside on SE  FAILED, KNOWN, expected -22.838\n    test 482 GeoidPGM('egm96-5.pgm').height(74.022, 9.432) kind 3: lli ('74.021785, 9.431926'), H (False) or wrap (False): lli ('74.021785, 9.431926'): outside on NE  FAILED, KNOWN, expected 42.989\n    test 483 GeoidPGM('egm96-5.pgm').height(-75.071, 17.579) kind 3: lli ('-75.070563, 17.57935'), H (False) or wrap (False): lli ('-75.070563, 17.57935'): outside on SE  FAILED, KNOWN, expected 15.353\n    test 484 GeoidPGM('egm96-5.pgm').height(-12.546, -54.851) kind 3: lli ('-12.54612, -54.850614'), H (False) or wrap (False): lli ('-12.54612, -54.850614'): outside on SE  FAILED, KNOWN, expected -6.337\n    test 485 GeoidPGM('egm96-5.pgm').height(-13.621, 42.408) kind 3: lli ('-13.621418, 42.407805'), H (False) or wrap (False): lli ('-13.621418, 42.407805'): outside on SE  FAILED, KNOWN, expected -25.555\n    test 486 GeoidPGM('egm96-5.pgm').height(-2.266, -91.951) kind 3: lli ('-2.265774, -91.951437'), H (False) or wrap (False): lli ('-2.265774, -91.951437'): outside on S  FAILED, KNOWN, expected -9.923\n    test 487 GeoidPGM('egm96-5.pgm').height(-18.672, 42.547) kind 3: lli ('-18.672316, 42.547125'), H (False) or wrap (False): lli ('-18.672316, 42.547125'): outside on SE  FAILED, KNOWN, expected -10.852\n    test 488 GeoidPGM('egm96-5.pgm').height(-41.44, 157.413) kind 3: lli ('-41.439867, 157.413161'), H (False) or wrap (False): lli ('-41.439867, 157.413161'): outside on SE  FAILED, KNOWN, expected -0.135\n    test 489 GeoidPGM('egm96-5.pgm').height(53.686, -79.375) kind 3: -43.809\n    test 490 GeoidPGM('egm96-5.pgm').height(39.26, -30.351) kind 3: lli ('39.260397, -30.351359'), H (False) or wrap (False): lli ('39.260397, -30.351359'): outside on E  FAILED, KNOWN, expected 57.150\n    test 491 GeoidPGM('egm96-5.pgm').height(-51.699, -141.493) kind 3: lli ('-51.699195, -141.493082'), H (False) or wrap (False): lli ('-51.699195, -141.493082'): outside on SW  FAILED, KNOWN, expected -17.657\n    test 492 GeoidPGM('egm96-5.pgm').height(36.585, 4.515) kind 3: lli ('36.584861, 4.515157'), H (False) or wrap (False): lli ('36.584861, 4.515157'): outside on E  FAILED, KNOWN, expected 46.358\n    test 493 GeoidPGM('egm96-5.pgm').height(39.642, -54.659) kind 3: lli ('39.641638, -54.658846'), H (False) or wrap (False): lli ('39.641638, -54.658846'): outside on E  FAILED, KNOWN, expected -14.404\n    test 494 GeoidPGM('egm96-5.pgm').height(59.761, 166.567) kind 3: lli ('59.761024, 166.566646'), H (False) or wrap (False): lli ('59.761024, 166.566646'): outside on NE  FAILED, KNOWN, expected 11.242\n    test 495 GeoidPGM('egm96-5.pgm').height(51.83, 13.357) kind 3: lli ('51.830001, 13.357464'), H (False) or wrap (False): lli ('51.830001, 13.357464'): outside on E  FAILED, KNOWN, expected 42.237\n    test 496 GeoidPGM('egm96-5.pgm').height(-36.531, -175.431) kind 3: lli ('-36.530912, -175.430804'), H (False) or wrap (False): lli ('-36.530912, -175.430804'): outside on SW  FAILED, KNOWN, expected 22.147\n    test 497 GeoidPGM('egm96-5.pgm').height(-37.08, 125.264) kind 3: lli ('-37.079518, 125.263901'), H (False) or wrap (False): lli ('-37.079518, 125.263901'): outside on SE  FAILED, KNOWN, expected -33.396\n    test 498 GeoidPGM('egm96-5.pgm').height(-68.651, 92.732) kind 3: lli ('-68.650762, 92.731524'), H (False) or wrap (False): lli ('-68.650762, 92.731524'): outside on SE  FAILED, KNOWN, expected 7.961\n    test 499 GeoidPGM('egm96-5.pgm').height(35.087, 45.336) kind 3: lli ('35.086645, 45.335611'), H (False) or wrap (False): lli ('35.086645, 45.335611'): outside on E  FAILED, KNOWN, expected 7.229\n    test 500 GeoidPGM('egm96-5.pgm').height(-61.356, -169.379) kind 3: lli ('-61.355646, -169.378929'), H (False) or wrap (False): lli ('-61.355646, -169.378929'): outside on SW  FAILED, KNOWN, expected -44.292\n    test 501 GeoidPGM('egm96-5.pgm').height(-36.955, 179.12) kind 3: lli ('-36.954967, 179.11982'), H (False) or wrap (False): lli ('-36.954967, 179.11982'): outside on SE  FAILED, KNOWN, expected 21.875\n    test 502 GeoidPGM('egm96-5.pgm').height(10.248, -6.714) kind 3: lli ('10.248399, -6.713559'), H (False) or wrap (False): lli ('10.248399, -6.713559'): outside on SE  FAILED, KNOWN, expected 28.933\n    test 503 GeoidPGM('egm96-5.pgm').height(36.868, 84.602) kind 3: lli ('36.868193, 84.602243'), H (False) or wrap (False): lli ('36.868193, 84.602243'): outside on E  FAILED, KNOWN, expected -41.238\n    test 504 GeoidPGM('egm96-5.pgm').height(28.637, 88.933) kind 3: lli ('28.636703, 88.932955'), H (False) or wrap (False): lli ('28.636703, 88.932955'): outside on E  FAILED, KNOWN, expected -31.331\n    test 505 GeoidPGM('egm96-5.pgm').height(54.811, -99.968) kind 3: -32.702\n    test 506 GeoidPGM('egm96-5.pgm').height(7.611, 145.911) kind 3: lli ('7.610621, 145.911188'), H (False) or wrap (False): lli ('7.610621, 145.911188'): outside on SE  FAILED, KNOWN, expected 60.117\n    test 507 GeoidPGM('egm96-5.pgm').height(59.412, 170.102) kind 3: lli ('59.411557, 170.102394'), H (False) or wrap (False): lli ('59.411557, 170.102394'): outside on NE  FAILED, KNOWN, expected 6.457\n    test 508 GeoidPGM('egm96-5.pgm').height(-61.469, 126.144) kind 3: lli ('-61.468618, 126.144056'), H (False) or wrap (False): lli ('-61.468618, 126.144056'): outside on SE  FAILED, KNOWN, expected -31.961\n    test 509 GeoidPGM('egm96-5.pgm').height(18.514, -137.083) kind 3: lli ('18.514019, -137.083301'), H (False) or wrap (False): lli ('18.514019, -137.083301'): outside on SW  FAILED, KNOWN, expected -26.571\n    test 510 GeoidPGM('egm96-5.pgm').height(7.854, -126.799) kind 3: lli ('7.854318, -126.799148'), H (False) or wrap (False): lli ('7.854318, -126.799148'): outside on SW  FAILED, KNOWN, expected -29.760\n    test 511 GeoidPGM('egm96-5.pgm').height(47.489, 134.183) kind 3: lli ('47.489222, 134.182527'), H (False) or wrap (False): lli ('47.489222, 134.182527'): outside on E  FAILED, KNOWN, expected 21.980\n    test 512 GeoidPGM('egm96-5.pgm').height(-34.144, -11.922) kind 3: lli ('-34.143602, -11.921567'), H (False) or wrap (False): lli ('-34.143602, -11.921567'): outside on SE  FAILED, KNOWN, expected 16.849\n    test 513 GeoidPGM('egm96-5.pgm').height(-58.389, 117.458) kind 3: lli ('-58.388787, 117.457755'), H (False) or wrap (False): lli ('-58.388787, 117.457755'): outside on SE  FAILED, KNOWN, expected -20.923\n    test 514 GeoidPGM('egm96-5.pgm').height(9.773, 95.846) kind 3: lli ('9.772764, 95.845943'), H (False) or wrap (False): lli ('9.772764, 95.845943'): outside on SE  FAILED, KNOWN, expected -42.749\n    test 515 GeoidPGM('egm96-5.pgm').height(-53.12, 136.994) kind 3: lli ('-53.120381, 136.993994'), H (False) or wrap (False): lli ('-53.120381, 136.993994'): outside on SE  FAILED, KNOWN, expected -21.841\n    test 516 GeoidPGM('egm96-5.pgm').height(-50.35, 0.075) kind 3: lli ('-50.349867, 0.07532'), H (False) or wrap (False): lli ('-50.349867, 0.07532'): outside on SE  FAILED, KNOWN, expected 25.482\n    test 517 GeoidPGM('egm96-5.pgm').height(31.438, -170.879) kind 3: lli ('31.438387, -170.878548'), H (False) or wrap (False): lli ('31.438387, -170.878548'): outside on W  FAILED, KNOWN, expected -8.847\n    test 518 GeoidPGM('egm96-5.pgm').height(37.541, -153.024) kind 3: lli ('37.540689, -153.024228'), H (False) or wrap (False): lli ('37.540689, -153.024228'): outside on W  FAILED, KNOWN, expected -19.604\n    test 519 GeoidPGM('egm96-5.pgm').height(27.586, 2.444) kind 3: lli ('27.586088, 2.443556'), H (False) or wrap (False): lli ('27.586088, 2.443556'): outside on E  FAILED, KNOWN, expected 25.668\n    test 520 GeoidPGM('egm96-5.pgm').height(-26.139, -106.201) kind 3: lli ('-26.139126, -106.20081'), H (False) or wrap (False): lli ('-26.139126, -106.20081'): outside on S  FAILED, KNOWN, expected -3.772\n    test 521 GeoidPGM('egm96-5.pgm').height(-33.426, -14.84) kind 3: lli ('-33.425976, -14.840359'), H (False) or wrap (False): lli ('-33.425976, -14.840359'): outside on SE  FAILED, KNOWN, expected 17.748\n    test 522 GeoidPGM('egm96-5.pgm').height(39.586, -153.019) kind 3: lli ('39.586286, -153.018974'), H (False) or wrap (False): lli ('39.586286, -153.018974'): outside on W  FAILED, KNOWN, expected -17.839\n    test 523 GeoidPGM('egm96-5.pgm').height(-60.79, -2.578) kind 3: lli ('-60.790289, -2.578163'), H (False) or wrap (False): lli ('-60.790289, -2.578163'): outside on SE  FAILED, KNOWN, expected 14.292\n    test 524 GeoidPGM('egm96-5.pgm').height(-20.131, 21.975) kind 3: lli ('-20.130538, 21.974941'), H (False) or wrap (False): lli ('-20.130538, 21.974941'): outside on SE  FAILED, KNOWN, expected 16.529\n    test 525 GeoidPGM('egm96-5.pgm').height(75.649, 99.921) kind 3: lli ('75.64878, 99.920587'), H (False) or wrap (False): lli ('75.64878, 99.920587'): outside on NE  FAILED, KNOWN, expected -8.229\n    test 526 GeoidPGM('egm96-5.pgm').height(-0.385, -23.788) kind 3: lli ('-0.385453, -23.788336'), H (False) or wrap (False): lli ('-0.385453, -23.788336'): outside on SE  FAILED, KNOWN, expected 9.830\n    test 527 GeoidPGM('egm96-5.pgm').height(-51.56, -50.327) kind 3: lli ('-51.559564, -50.32687'), H (False) or wrap (False): lli ('-51.559564, -50.32687'): outside on SE  FAILED, KNOWN, expected 6.215\n    test 528 GeoidPGM('egm96-5.pgm').height(-43.129, -167.271) kind 3: lli ('-43.129209, -167.27147'), H (False) or wrap (False): lli ('-43.129209, -167.27147'): outside on SW  FAILED, KNOWN, expected -2.960\n    test 529 GeoidPGM('egm96-5.pgm').height(46.374, 71.948) kind 3: lli ('46.374177, 71.947616'), H (False) or wrap (False): lli ('46.374177, 71.947616'): outside on E  FAILED, KNOWN, expected -42.323\n    test 530 GeoidPGM('egm96-5.pgm').height(-22.783, 140.657) kind 3: lli ('-22.783085, 140.657444'), H (False) or wrap (False): lli ('-22.783085, 140.657444'): outside on SE  FAILED, KNOWN, expected 38.356\n    test 531 GeoidPGM('egm96-5.pgm').height(-12.056, 122.804) kind 3: lli ('-12.05584, 122.80402'), H (False) or wrap (False): lli ('-12.05584, 122.80402'): outside on SE  FAILED, KNOWN, expected 34.259\n    test 532 GeoidPGM('egm96-5.pgm').height(30.127, 94.738) kind 3: lli ('30.127372, 94.738186'), H (False) or wrap (False): lli ('30.127372, 94.738186'): outside on E  FAILED, KNOWN, expected -37.397\n    test 533 GeoidPGM('egm96-5.pgm').height(46.296, -174.479) kind 3: lli ('46.296018, -174.478616'), H (False) or wrap (False): lli ('46.296018, -174.478616'): outside on W  FAILED, KNOWN, expected -2.016\n    test 534 GeoidPGM('egm96-5.pgm').height(34.99, 15.052) kind 3: lli ('34.989646, 15.051646'), H (False) or wrap (False): lli ('34.989646, 15.051646'): outside on E  FAILED, KNOWN, expected 33.912\n    test 535 GeoidPGM('egm96-5.pgm').height(-51.287, 90.565) kind 3: lli ('-51.287168, 90.564711'), H (False) or wrap (False): lli ('-51.287168, 90.564711'): outside on SE  FAILED, KNOWN, expected 12.676\n    test 536 GeoidPGM('egm96-5.pgm').height(34.217, 141.302) kind 3: lli ('34.217016, 141.301548'), H (False) or wrap (False): lli ('34.217016, 141.301548'): outside on E  FAILED, KNOWN, expected 15.692\n    test 537 GeoidPGM('egm96-5.pgm').height(-40.423, -142.787) kind 3: lli ('-40.423023, -142.786592'), H (False) or wrap (False): lli ('-40.423023, -142.786592'): outside on SW  FAILED, KNOWN, expected -11.117\n    test 538 GeoidPGM('egm96-5.pgm').height(-17.854, -170.216) kind 3: lli ('-17.854486, -170.216354'), H (False) or wrap (False): lli ('-17.854486, -170.216354'): outside on SW  FAILED, KNOWN, expected 27.437\n    test 539 GeoidPGM('egm96-5.pgm').height(47.803, 112.701) kind 3: lli ('47.803271, 112.700942'), H (False) or wrap (False): lli ('47.803271, 112.700942'): outside on E  FAILED, KNOWN, expected -23.894\n    test 540 GeoidPGM('egm96-5.pgm').height(-23.276, 133.454) kind 3: lli ('-23.275962, 133.453821'), H (False) or wrap (False): lli ('-23.275962, 133.453821'): outside on SE  FAILED, KNOWN, expected 18.766\n    test 541 GeoidPGM('egm96-5.pgm').height(-26.884, -36.571) kind 3: lli ('-26.884369, -36.570654'), H (False) or wrap (False): lli ('-26.884369, -36.570654'): outside on SE  FAILED, KNOWN, expected -7.452\n    test 542 GeoidPGM('egm96-5.pgm').height(-37.106, 31.128) kind 3: lli ('-37.106468, 31.127939'), H (False) or wrap (False): lli ('-37.106468, 31.127939'): outside on SE  FAILED, KNOWN, expected 30.143\n    test 543 GeoidPGM('egm96-5.pgm').height(-75.363, -173.674) kind 3: lli ('-75.363185, -173.673649'), H (False) or wrap (False): lli ('-75.363185, -173.673649'): outside on SW  FAILED, KNOWN, expected -61.172\n    test 544 GeoidPGM('egm96-5.pgm').height(-18.305, 69.016) kind 3: lli ('-18.30485, 69.015565'), H (False) or wrap (False): lli ('-18.30485, 69.015565'): outside on SE  FAILED, KNOWN, expected -24.890\n    test 545 GeoidPGM('egm96-5.pgm').height(39.527, 23.58) kind 3: lli ('39.527401, 23.580206'), H (False) or wrap (False): lli ('39.527401, 23.580206'): outside on E  FAILED, KNOWN, expected 39.519\n    test 546 GeoidPGM('egm96-5.pgm').height(68.903, 30.97) kind 3: lli ('68.903148, 30.970247'), H (False) or wrap (False): lli ('68.903148, 30.970247'): outside on NE  FAILED, KNOWN, expected 19.419\n    test 547 GeoidPGM('egm96-5.pgm').height(53.937, 168.318) kind 3: lli ('53.936937, 168.318201'), H (False) or wrap (False): lli ('53.936937, 168.318201'): outside on E  FAILED, KNOWN, expected 2.069\n    test 548 GeoidPGM('egm96-5.pgm').height(-38.6, 64.812) kind 3: lli ('-38.600098, 64.811532'), H (False) or wrap (False): lli ('-38.600098, 64.811532'): outside on SE  FAILED, KNOWN, expected 25.048\n    test 549 GeoidPGM('egm96-5.pgm').height(-41.396, -69.739) kind 3: lli ('-41.395739, -69.739418'), H (False) or wrap (False): lli ('-41.395739, -69.739418'): outside on S  FAILED, KNOWN, expected 22.547\n    test 550 GeoidPGM('egm96-5.pgm').height(50.158, 72.319) kind 3: lli ('50.157749, 72.319017'), H (False) or wrap (False): lli ('50.157749, 72.319017'): outside on E  FAILED, KNOWN, expected -34.359\n    test 551 GeoidPGM('egm96-5.pgm').height(27.692, 176.153) kind 3: lli ('27.691879, 176.152884'), H (False) or wrap (False): lli ('27.691879, 176.152884'): outside on E  FAILED, KNOWN, expected -5.453\n    test 552 GeoidPGM('egm96-5.pgm').height(-48.419, 170.454) kind 3: lli ('-48.419449, 170.454472'), H (False) or wrap (False): lli ('-48.419449, 170.454472'): outside on SE  FAILED, KNOWN, expected -6.804\n    test 553 GeoidPGM('egm96-5.pgm').height(-65.346, -124.976) kind 3: lli ('-65.34567, -124.975961'), H (False) or wrap (False): lli ('-65.34567, -124.975961'): outside on S  FAILED, KNOWN, expected -35.054\n    test 554 GeoidPGM('egm96-5.pgm').height(-51.873, 167.266) kind 3: lli ('-51.873009, 167.265613'), H (False) or wrap (False): lli ('-51.873009, 167.265613'): outside on SE  FAILED, KNOWN, expected -15.418\n    test 555 GeoidPGM('egm96-5.pgm').height(-7.263, 84.308) kind 3: lli ('-7.262544, 84.307626'), H (False) or wrap (False): lli ('-7.262544, 84.307626'): outside on SE  FAILED, KNOWN, expected -79.557\n    test 556 GeoidPGM('egm96-5.pgm').height(-1.461, -105.458) kind 3: lli ('-1.461003, -105.458323'), H (False) or wrap (False): lli ('-1.461003, -105.458323'): outside on S  FAILED, KNOWN, expected -16.894\n    test 557 GeoidPGM('egm96-5.pgm').height(7.684, 161.873) kind 3: lli ('7.684324, 161.87293'), H (False) or wrap (False): lli ('7.684324, 161.87293'): outside on SE  FAILED, KNOWN, expected 36.215\n    test 558 GeoidPGM('egm96-5.pgm').height(-31.475, -158.52) kind 3: lli ('-31.474549, -158.520033'), H (False) or wrap (False): lli ('-31.474549, -158.520033'): outside on SW  FAILED, KNOWN, expected 3.523\n    test 559 GeoidPGM('egm96-5.pgm').height(-36.187, 62.917) kind 3: lli ('-36.187212, 62.917075'), H (False) or wrap (False): lli ('-36.187212, 62.917075'): outside on SE  FAILED, KNOWN, expected 23.797\n    test 560 GeoidPGM('egm96-5.pgm').height(16.003, 141.687) kind 3: lli ('16.002975, 141.686552'), H (False) or wrap (False): lli ('16.002975, 141.686552'): outside on SE  FAILED, KNOWN, expected 51.586\n    test 561 GeoidPGM('egm96-5.pgm').height(30.182, 86.261) kind 3: lli ('30.182218, 86.260576'), H (False) or wrap (False): lli ('30.182218, 86.260576'): outside on E  FAILED, KNOWN, expected -30.131\n    test 562 GeoidPGM('egm96-5.pgm').height(-77.304, 159.498) kind 3: lli ('-77.303842, 159.497665'), H (False) or wrap (False): lli ('-77.303842, 159.497665'): outside on SE  FAILED, KNOWN, expected -51.848\n    test 563 GeoidPGM('egm96-5.pgm').height(39.536, 139.795) kind 3: lli ('39.536, 139.795358'), H (False) or wrap (False): lli ('39.536, 139.795358'): outside on E  FAILED, KNOWN, expected 37.192\n    test 564 GeoidPGM('egm96-5.pgm').height(8.569, 134.618) kind 3: lli ('8.569309, 134.618403'), H (False) or wrap (False): lli ('8.569309, 134.618403'): outside on SE  FAILED, KNOWN, expected 63.597\n    test 565 GeoidPGM('egm96-5.pgm').height(14.473, 90.596) kind 3: lli ('14.473483, 90.595663'), H (False) or wrap (False): lli ('14.473483, 90.595663'): outside on SE  FAILED, KNOWN, expected -62.636\n    test 566 GeoidPGM('egm96-5.pgm').height(-13.138, -99.589) kind 3: lli ('-13.13767, -99.589202'), H (False) or wrap (False): lli ('-13.13767, -99.589202'): outside on S  FAILED, KNOWN, expected -8.717\n    test 567 GeoidPGM('egm96-5.pgm').height(34.212, -26.307) kind 3: lli ('34.211572, -26.307194'), H (False) or wrap (False): lli ('34.211572, -26.307194'): outside on E  FAILED, KNOWN, expected 40.645\n    test 568 GeoidPGM('egm96-5.pgm').height(21.89, 76.371) kind 3: lli ('21.889732, 76.371362'), H (False) or wrap (False): lli ('21.889732, 76.371362'): outside on SE  FAILED, KNOWN, expected -60.729\n    test 569 GeoidPGM('egm96-5.pgm').height(29.793, 120.487) kind 3: lli ('29.792909, 120.48703'), H (False) or wrap (False): lli ('29.792909, 120.48703'): outside on E  FAILED, KNOWN, expected 8.783\n    test 570 GeoidPGM('egm96-5.pgm').height(15.724, 122.714) kind 3: lli ('15.723814, 122.713685'), H (False) or wrap (False): lli ('15.723814, 122.713685'): outside on SE  FAILED, KNOWN, expected 31.523\n    test 571 GeoidPGM('egm96-5.pgm').height(-66.208, -78.499) kind 3: lli ('-66.20776, -78.498807'), H (False) or wrap (False): lli ('-66.20776, -78.498807'): outside on S  FAILED, KNOWN, expected -6.250\n    test 572 GeoidPGM('egm96-5.pgm').height(-39.507, 55.809) kind 3: lli ('-39.507049, 55.808743'), H (False) or wrap (False): lli ('-39.507049, 55.808743'): outside on SE  FAILED, KNOWN, expected 32.599\n    test 573 GeoidPGM('egm96-5.pgm').height(28.159, 51.476) kind 3: lli ('28.159494, 51.476474'), H (False) or wrap (False): lli ('28.159494, 51.476474'): outside on E  FAILED, KNOWN, expected -24.536\n    test 574 GeoidPGM('egm96-5.pgm').height(-36.207, 120.205) kind 3: lli ('-36.206825, 120.205019'), H (False) or wrap (False): lli ('-36.206825, 120.205019'): outside on SE  FAILED, KNOWN, expected -38.869\n    test 575 GeoidPGM('egm96-5.pgm').height(30.575, -99.998) kind 3: -23.213\n    test 576 GeoidPGM('egm96-5.pgm').height(-16.993, 37.136) kind 3: lli ('-16.992515, 37.135881'), H (False) or wrap (False): lli ('-16.992515, 37.135881'): outside on SE  FAILED, KNOWN, expected -11.824\n    test 577 GeoidPGM('egm96-5.pgm').height(-11.477, 12.039) kind 3: lli ('-11.476997, 12.038708'), H (False) or wrap (False): lli ('-11.476997, 12.038708'): outside on SE  FAILED, KNOWN, expected 16.709\n    test 578 GeoidPGM('egm96-5.pgm').height(30.428, -144.765) kind 3: lli ('30.428465, -144.765049'), H (False) or wrap (False): lli ('30.428465, -144.765049'): outside on W  FAILED, KNOWN, expected -22.379\n    test 579 GeoidPGM('egm96-5.pgm').height(-17.44, -92.424) kind 3: lli ('-17.439773, -92.424339'), H (False) or wrap (False): lli ('-17.439773, -92.424339'): outside on S  FAILED, KNOWN, expected -4.941\n    test 580 GeoidPGM('egm96-5.pgm').height(40.203, 143.43) kind 3: lli ('40.203164, 143.429799'), H (False) or wrap (False): lli ('40.203164, 143.429799'): outside on E  FAILED, KNOWN, expected 19.394\n    test 581 GeoidPGM('egm96-5.pgm').height(-37.098, -106.574) kind 3: lli ('-37.098392, -106.573712'), H (False) or wrap (False): lli ('-37.098392, -106.573712'): outside on S  FAILED, KNOWN, expected -9.381\n    test 582 GeoidPGM('egm96-5.pgm').height(54.62, -68.413) kind 3: -23.318  FAILED, KNOWN, expected -23.319\n    test 583 GeoidPGM('egm96-5.pgm').height(-31.633, 148.182) kind 3: lli ('-31.633252, 148.181926'), H (False) or wrap (False): lli ('-31.633252, 148.181926'): outside on SE  FAILED, KNOWN, expected 24.468\n    test 584 GeoidPGM('egm96-5.pgm').height(-56.07, -141.407) kind 3: lli ('-56.069748, -141.406778'), H (False) or wrap (False): lli ('-56.069748, -141.406778'): outside on SW  FAILED, KNOWN, expected -21.761\n    test 585 GeoidPGM('egm96-5.pgm').height(-8.195, -52.691) kind 3: lli ('-8.195214, -52.691177'), H (False) or wrap (False): lli ('-8.195214, -52.691177'): outside on SE  FAILED, KNOWN, expected -18.798\n    test 586 GeoidPGM('egm96-5.pgm').height(17.851, 24.749) kind 3: lli ('17.850526, 24.748606'), H (False) or wrap (False): lli ('17.850526, 24.748606'): outside on SE  FAILED, KNOWN, expected 12.612\n    test 587 GeoidPGM('egm96-5.pgm').height(0.349, -108.333) kind 3: lli ('0.349465, -108.332667'), H (False) or wrap (False): lli ('0.349465, -108.332667'): outside on S  FAILED, KNOWN, expected -19.706\n    test 588 GeoidPGM('egm96-5.pgm').height(15.038, 126.191) kind 3: lli ('15.037932, 126.190545'), H (False) or wrap (False): lli ('15.037932, 126.190545'): outside on SE  FAILED, KNOWN, expected 45.792\n    test 589 GeoidPGM('egm96-5.pgm').height(-21.111, -123.696) kind 3: lli ('-21.111105, -123.695981'), H (False) or wrap (False): lli ('-21.111105, -123.695981'): outside on S  FAILED, KNOWN, expected -8.406\n    test 590 GeoidPGM('egm96-5.pgm').height(30.947, 173.002) kind 3: lli ('30.946618, 173.002137'), H (False) or wrap (False): lli ('30.946618, 173.002137'): outside on E  FAILED, KNOWN, expected -8.367\n    test 591 GeoidPGM('egm96-5.pgm').height(-10.698, -144.091) kind 3: lli ('-10.698334, -144.091109'), H (False) or wrap (False): lli ('-10.698334, -144.091109'): outside on SW  FAILED, KNOWN, expected -2.025\n    test 592 GeoidPGM('egm96-5.pgm').height(-29.412, 124.753) kind 3: lli ('-29.412071, 124.75279'), H (False) or wrap (False): lli ('-29.412071, 124.75279'): outside on SE  FAILED, KNOWN, expected -16.569\n    test 593 GeoidPGM('egm96-5.pgm').height(38.224, -137.189) kind 3: lli ('38.223621, -137.189376'), H (False) or wrap (False): lli ('38.223621, -137.189376'): outside on W  FAILED, KNOWN, expected -35.435\n    test 594 GeoidPGM('egm96-5.pgm').height(36.064, -132.409) kind 3: lli ('36.063775, -132.409284'), H (False) or wrap (False): lli ('36.063775, -132.409284'): outside on W  FAILED, KNOWN, expected -39.009\n    test 595 GeoidPGM('egm96-5.pgm').height(29.975, 178.076) kind 3: lli ('29.974676, 178.075894'), H (False) or wrap (False): lli ('29.974676, 178.075894'): outside on E  FAILED, KNOWN, expected -6.921\n    test 596 GeoidPGM('egm96-5.pgm').height(-21.346, 169.26) kind 3: lli ('-21.346396, 169.259508'), H (False) or wrap (False): lli ('-21.346396, 169.259508'): outside on SE  FAILED, KNOWN, expected 50.795\n    test 597 GeoidPGM('egm96-5.pgm').height(49.282, -152.934) kind 3: lli ('49.282472, -152.934409'), H (False) or wrap (False): lli ('49.282472, -152.934409'): outside on W  FAILED, KNOWN, expected 1.070\n    test 598 GeoidPGM('egm96-5.pgm').height(16.349, -99.962) kind 3: lli ('16.349121, -99.962229'), H (False) or wrap (False): lli ('16.349121, -99.962229'): outside on S  FAILED, KNOWN, expected -14.214\n    test 599 GeoidPGM('egm96-5.pgm').height(-14.293, -167.34) kind 3: lli ('-14.293325, -167.339799'), H (False) or wrap (False): lli ('-14.293325, -167.339799'): outside on SW  FAILED, KNOWN, expected 17.600\n    test 600 GeoidPGM('egm96-5.pgm').height(47.166, -38.523) kind 3: lli ('47.165911, -38.522629'), H (False) or wrap (False): lli ('47.165911, -38.522629'): outside on E  FAILED, KNOWN, expected 44.804\n    test 601 GeoidPGM('egm96-5.pgm').height(-58.911, 114.347) kind 3: lli ('-58.910597, 114.346927'), H (False) or wrap (False): lli ('-58.910597, 114.346927'): outside on SE  FAILED, KNOWN, expected -17.922\n    test 602 GeoidPGM('egm96-5.pgm').height(-9.055, 111.294) kind 3: lli ('-9.055095, 111.294422'), H (False) or wrap (False): lli ('-9.055095, 111.294422'): outside on SE  FAILED, KNOWN, expected 10.662\n    test 603 GeoidPGM('egm96-5.pgm').height(18.391, 29.692) kind 3: lli ('18.390988, 29.691577'), H (False) or wrap (False): lli ('18.390988, 29.691577'): outside on SE  FAILED, KNOWN, expected 7.670\n    test 604 GeoidPGM('egm96-5.pgm').height(-15.074, 22.153) kind 3: lli ('-15.074412, 22.152663'), H (False) or wrap (False): lli ('-15.074412, 22.152663'): outside on SE  FAILED, KNOWN, expected 8.623\n    test 605 GeoidPGM('egm96-5.pgm').height(-4.235, 62.001) kind 3: lli ('-4.234571, 62.001081'), H (False) or wrap (False): lli ('-4.234571, 62.001081'): outside on SE  FAILED, KNOWN, expected -60.723\n    test 606 GeoidPGM('egm96-5.pgm').height(15.171, -86.583) kind 3: lli ('15.170822, -86.582929'), H (False) or wrap (False): lli ('15.170822, -86.582929'): outside on S  FAILED, KNOWN, expected 3.818\n    test 607 GeoidPGM('egm96-5.pgm').height(79.254, 112.116) kind 3: lli ('79.254009, 112.115515'), H (False) or wrap (False): lli ('79.254009, 112.115515'): outside on NE  FAILED, KNOWN, expected -1.871\n    test 608 GeoidPGM('egm96-5.pgm').height(15.947, 156.093) kind 3: lli ('15.947068, 156.092678'), H (False) or wrap (False): lli ('15.947068, 156.092678'): outside on SE  FAILED, KNOWN, expected 30.633\n    test 609 GeoidPGM('egm96-5.pgm').height(68.371, -177.382) kind 3: lli ('68.370605, -177.382127'), H (False) or wrap (False): lli ('68.370605, -177.382127'): outside on NW  FAILED, KNOWN, expected 2.801\n    test 610 GeoidPGM('egm96-5.pgm').height(-41.931, -72.093) kind 3: lli ('-41.931009, -72.093413'), H (False) or wrap (False): lli ('-41.931009, -72.093413'): outside on S  FAILED, KNOWN, expected 19.859\n    test 611 GeoidPGM('egm96-5.pgm').height(-1.193, -143.133) kind 3: lli ('-1.192967, -143.133078'), H (False) or wrap (False): lli ('-1.192967, -143.133078'): outside on SW  FAILED, KNOWN, expected 5.348\n    test 612 GeoidPGM('egm96-5.pgm').height(-37.006, 154.513) kind 3: lli ('-37.006115, 154.512534'), H (False) or wrap (False): lli ('-37.006115, 154.512534'): outside on SE  FAILED, KNOWN, expected 9.941\n    test 613 GeoidPGM('egm96-5.pgm').height(-22.148, 9.938) kind 3: lli ('-22.148493, 9.938408'), H (False) or wrap (False): lli ('-22.148493, 9.938408'): outside on SE  FAILED, KNOWN, expected 22.321\n    test 614 GeoidPGM('egm96-5.pgm').height(24.329, 109.044) kind 3: lli ('24.328746, 109.043774'), H (False) or wrap (False): lli ('24.328746, 109.043774'): outside on SE  FAILED, KNOWN, expected -24.135\n    test 615 GeoidPGM('egm96-5.pgm').height(-54.878, 114.691) kind 3: lli ('-54.877699, 114.691444'), H (False) or wrap (False): lli ('-54.877699, 114.691444'): outside on SE  FAILED, KNOWN, expected -17.679\n    test 616 GeoidPGM('egm96-5.pgm').height(45.601, -80.458) kind 3: -37.151  FAILED, KNOWN, expected -37.150\n    test 617 GeoidPGM('egm96-5.pgm').height(2.372, 58.974) kind 3: lli ('2.371766, 58.974082'), H (False) or wrap (False): lli ('2.371766, 58.974082'): outside on SE  FAILED, KNOWN, expected -61.158\n    test 618 GeoidPGM('egm96-5.pgm').height(15.937, 165.854) kind 3: lli ('15.936522, 165.854035'), H (False) or wrap (False): lli ('15.936522, 165.854035'): outside on SE  FAILED, KNOWN, expected 20.602\n    test 619 GeoidPGM('egm96-5.pgm').height(4.889, -24.213) kind 3: lli ('4.889499, -24.213194'), H (False) or wrap (False): lli ('4.889499, -24.213194'): outside on SE  FAILED, KNOWN, expected 13.055\n    test 620 GeoidPGM('egm96-5.pgm').height(-11.392, 179.558) kind 3: lli ('-11.392365, 179.558198'), H (False) or wrap (False): lli ('-11.392365, 179.558198'): outside on SE  FAILED, KNOWN, expected 40.132\n    test 621 GeoidPGM('egm96-5.pgm').height(58.246, 4.862) kind 3: lli ('58.24629, 4.862128'), H (False) or wrap (False): lli ('58.24629, 4.862128'): outside on NE  FAILED, KNOWN, expected 43.263\n    test 622 GeoidPGM('egm96-5.pgm').height(34.302, -109.109) kind 3: -23.126\n    test 623 GeoidPGM('egm96-5.pgm').height(-58.196, 117.306) kind 3: lli ('-58.195787, 117.305696'), H (False) or wrap (False): lli ('-58.195787, 117.305696'): outside on SE  FAILED, KNOWN, expected -20.678\n    test 624 GeoidPGM('egm96-5.pgm').height(44.5, 173.769) kind 3: lli ('44.499876, 173.768568'), H (False) or wrap (False): lli ('44.499876, 173.768568'): outside on E  FAILED, KNOWN, expected -8.529\n    test 625 GeoidPGM('egm96-5.pgm').height(-28.863, -139.775) kind 3: lli ('-28.862539, -139.774812'), H (False) or wrap (False): lli ('-28.862539, -139.774812'): outside on SW  FAILED, KNOWN, expected -8.666\n    test 626 GeoidPGM('egm96-5.pgm').height(19.507, -96.099) kind 3: lli ('19.507043, -96.099433'), H (False) or wrap (False): lli ('19.507043, -96.099433'): outside on S  FAILED, KNOWN, expected -12.796\n    test 627 GeoidPGM('egm96-5.pgm').height(-42.488, -73.907) kind 3: lli ('-42.487604, -73.906602'), H (False) or wrap (False): lli ('-42.487604, -73.906602'): outside on S  FAILED, KNOWN, expected 15.773\n    test 628 GeoidPGM('egm96-5.pgm').height(46.138, -141.429) kind 3: lli ('46.138437, -141.429193'), H (False) or wrap (False): lli ('46.138437, -141.429193'): outside on W  FAILED, KNOWN, expected -19.954\n    test 629 GeoidPGM('egm96-5.pgm').height(60.507, 93.743) kind 3: lli ('60.506969, 93.74336'), H (False) or wrap (False): lli ('60.506969, 93.74336'): outside on NE  FAILED, KNOWN, expected -31.480\n    test 630 GeoidPGM('egm96-5.pgm').height(26.219, -145.434) kind 3: lli ('26.219081, -145.434391'), H (False) or wrap (False): lli ('26.219081, -145.434391'): outside on W  FAILED, KNOWN, expected -17.429\n    test 631 GeoidPGM('egm96-5.pgm').height(-28.687, 3.37) kind 3: lli ('-28.68714, 3.370196'), H (False) or wrap (False): lli ('-28.68714, 3.370196'): outside on SE  FAILED, KNOWN, expected 24.037\n    test 632 GeoidPGM('egm96-5.pgm').height(-15.008, 117.45) kind 3: lli ('-15.007944, 117.449536'), H (False) or wrap (False): lli ('-15.007944, 117.449536'): outside on SE  FAILED, KNOWN, expected 4.520\n    test 633 GeoidPGM('egm96-5.pgm').height(40.71, 144.095) kind 3: lli ('40.710024, 144.095126'), H (False) or wrap (False): lli ('40.710024, 144.095126'): outside on E  FAILED, KNOWN, expected 11.394\n    test 634 GeoidPGM('egm96-5.pgm').height(20.823, -173.611) kind 3: lli ('20.823096, -173.610797'), H (False) or wrap (False): lli ('20.823096, -173.610797'): outside on SW  FAILED, KNOWN, expected 5.679\n    test 635 GeoidPGM('egm96-5.pgm').height(16.776, -3.009) kind 3: lli ('16.776, -3.009'), H (False) or wrap (False): lli ('16.776, -3.009'): outside on SE  FAILED, KNOWN, expected 28.707\n    test 636 GeoidPGM('egm96-5.pgm').height(41.0, -95.0) kind 3: -30.261  FAILED, KNOWN, expected -30.262\n    test 637 GeoidPGM('egm96-5.pgm').height(49.0, -120.5) kind 3: -15.984\n    test 638 GeoidPGM('egm96-5.pgm').height(49.0, -103.5) kind 3: -18.636  FAILED, KNOWN, expected -18.635\n    test 639 GeoidPGM('egm96-5.pgm').height(49.0, -86.5) kind 3: -37.749\n    test 640 GeoidPGM('egm96-5.pgm').height(49.0, -69.5) kind 3: -26.691\n    test 641 GeoidPGM('egm96-5.pgm').height(33.0, -120.5) kind 3: -39.561\n    test 642 GeoidPGM('egm96-5.pgm').height(33.0, -103.5) kind 3: -22.563  FAILED, KNOWN, expected -22.562\n    test 643 GeoidPGM('egm96-5.pgm').height(33.0, -86.5) kind 3: -30.012\n    test 644 GeoidPGM('egm96-5.pgm').height(33.0, -69.5) kind 3: -48.039\n\n    test 645 GeoidPGM('egm96-5.pgm').height() kind 3, eps max (in 0 FAILED): 0.001116\n    test 646 GeoidPGM('egm96-5.pgm').height() kind 3, eps mean (of 15 total): 0.000383\n    test 647 GeoidPGM('egm96-5.pgm').height() kind 3, eps stdev (of 15 total): 0.000294\n    test 648 GeoidPGM('egm96-5.pgm').toStr: GeoidPGM('egm96-5.pgm'): lowerleft(25.0, -125.0, -45.543), upperright(55.0, -64.917, -16.097), center(40.0, -94.958, -32.13), highest(45.0, -110.083, -7.479), lowest(25.75, -69.583, -52.671)\n\n    test 649 closed: True\n    test 650 copy(<type 'type'>): (<class 'pygeodesy.geoids.GeoidPGM'>, True)\n    test 651 GeoidPGM.copy(): (<class 'pygeodesy.geoids.GeoidPGM'>, True)\n    test 652 GeoidKarney('egm2008-1.pgm').height(-76.981, 34.17) kind 2: 12.637  FAILED, KNOWN, expected 12.636\n    test 653 GeoidKarney('egm2008-1.pgm').height(79.695, 88.806) kind 2: 0.749\n    test 654 GeoidKarney('egm2008-1.pgm').height(-15.245, 168.748) kind 2: 65.110  FAILED, KNOWN, expected 65.109\n    test 655 GeoidKarney('egm2008-1.pgm').height(-19.379, 15.855) kind 2: 24.889\n    test 656 GeoidKarney('egm2008-1.pgm').height(43.378, -130.552) kind 2: -29.557\n    test 657 GeoidKarney('egm2008-1.pgm').height(-16.075, 21.795) kind 2: 9.741  FAILED, KNOWN, expected 9.742\n    test 658 GeoidKarney('egm2008-1.pgm').height(-11.256, -73.75) kind 2: 30.061  FAILED, KNOWN, expected 30.059\n    test 659 GeoidKarney('egm2008-1.pgm').height(69.017, -15.921) kind 2: 60.691  FAILED, KNOWN, expected 60.690\n    test 660 GeoidKarney('egm2008-1.pgm').height(2.221, 139.739) kind 2: 69.134  FAILED, KNOWN, expected 69.133\n    test 661 GeoidKarney('egm2008-1.pgm').height(-9.097, 119.142) kind 2: 36.522  FAILED, KNOWN, expected 36.520\n    test 662 GeoidKarney('egm2008-1.pgm').height(-28.524, -22.192) kind 2: 6.801\n    test 663 GeoidKarney('egm2008-1.pgm').height(12.272, -136.424) kind 2: -20.652  FAILED, KNOWN, expected -20.651\n    test 664 GeoidKarney('egm2008-1.pgm').height(-15.203, -85.604) kind 2: -3.040\n    test 665 GeoidKarney('egm2008-1.pgm').height(-63.736, -77.17) kind 2: -1.329  FAILED, KNOWN, expected -1.328\n    test 666 GeoidKarney('egm2008-1.pgm').height(-48.771, -90.102) kind 2: -2.171  FAILED, KNOWN, expected -2.172\n    test 667 GeoidKarney('egm2008-1.pgm').height(-0.179, -126.368) kind 2: -17.411\n    test 668 GeoidKarney('egm2008-1.pgm').height(1.586, -128.887) kind 2: -16.426  FAILED, KNOWN, expected -16.425\n    test 669 GeoidKarney('egm2008-1.pgm').height(-48.781, -2.684) kind 2: 24.699  FAILED, KNOWN, expected 24.698\n    test 670 GeoidKarney('egm2008-1.pgm').height(-49.092, 136.862) kind 2: -18.328  FAILED, KNOWN, expected -18.329\n    test 671 GeoidKarney('egm2008-1.pgm').height(47.732, 17.552) kind 2: 43.802\n    test 672 GeoidKarney('egm2008-1.pgm').height(-49.11, 85.706) kind 2: 18.716\n    test 673 GeoidKarney('egm2008-1.pgm').height(-49.162, 40.321) kind 2: 44.468  FAILED, KNOWN, expected 44.469\n    test 674 GeoidKarney('egm2008-1.pgm').height(3.498, 158.118) kind 2: 49.943  FAILED, KNOWN, expected 49.944\n    test 675 GeoidKarney('egm2008-1.pgm').height(-35.616, 122.648) kind 2: -35.878\n    test 676 GeoidKarney('egm2008-1.pgm').height(56.598, -96.114) kind 2: -40.777\n    test 677 GeoidKarney('egm2008-1.pgm').height(-31.85, 149.121) kind 2: 26.560  FAILED, KNOWN, expected 26.559\n    test 678 GeoidKarney('egm2008-1.pgm').height(-26.569, -177.792) kind 2: 49.361\n    test 679 GeoidKarney('egm2008-1.pgm').height(76.735, -65.753) kind 2: 21.106  FAILED, KNOWN, expected 21.107\n    test 680 GeoidKarney('egm2008-1.pgm').height(-21.404, -122.268) kind 2: -7.202\n    test 681 GeoidKarney('egm2008-1.pgm').height(-77.133, -65.474) kind 2: -17.168\n    test 682 GeoidKarney('egm2008-1.pgm').height(-58.812, 2.276) kind 2: 18.359\n    test 683 GeoidKarney('egm2008-1.pgm').height(4.415, 155.683) kind 2: 52.118\n    test 684 GeoidKarney('egm2008-1.pgm').height(-28.146, 107.081) kind 2: -38.949  FAILED, KNOWN, expected -38.950\n    test 685 GeoidKarney('egm2008-1.pgm').height(-10.551, -126.69) kind 2: -9.935  FAILED, KNOWN, expected -9.934\n    test 686 GeoidKarney('egm2008-1.pgm').height(-25.444, -103.337) kind 2: -2.879\n    test 687 GeoidKarney('egm2008-1.pgm').height(24.436, 46.159) kind 2: -5.025\n    test 688 GeoidKarney('egm2008-1.pgm').height(-72.889, 37.107) kind 2: 24.296\n    test 689 GeoidKarney('egm2008-1.pgm').height(-19.629, 13.245) kind 2: 25.131\n    test 690 GeoidKarney('egm2008-1.pgm').height(-7.602, 171.265) kind 2: 40.720  FAILED, KNOWN, expected 40.721\n    test 691 GeoidKarney('egm2008-1.pgm').height(-45.364, -1.876) kind 2: 22.388\n    test 692 GeoidKarney('egm2008-1.pgm').height(-7.292, -69.18) kind 2: 22.485  FAILED, KNOWN, expected 22.486\n    test 693 GeoidKarney('egm2008-1.pgm').height(-31.566, -166.689) kind 2: 14.942  FAILED, KNOWN, expected 14.943\n    test 694 GeoidKarney('egm2008-1.pgm').height(-82.751, -162.085) kind 2: -47.387\n    test 695 GeoidKarney('egm2008-1.pgm').height(-40.7, 99.466) kind 2: -18.404  FAILED, KNOWN, expected -18.403\n    test 696 GeoidKarney('egm2008-1.pgm').height(48.676, 39.69) kind 2: 10.186  FAILED, KNOWN, expected 10.185\n    test 697 GeoidKarney('egm2008-1.pgm').height(74.817, -78.404) kind 2: 5.671\n    test 698 GeoidKarney('egm2008-1.pgm').height(-81.032, -63.865) kind 2: -24.577\n    test 699 GeoidKarney('egm2008-1.pgm').height(74.022, 9.432) kind 2: 43.288\n    test 700 GeoidKarney('egm2008-1.pgm').height(-75.071, 17.579) kind 2: 13.747  FAILED, KNOWN, expected 13.748\n    test 701 GeoidKarney('egm2008-1.pgm').height(-12.546, -54.851) kind 2: -5.342\n    test 702 GeoidKarney('egm2008-1.pgm').height(-13.621, 42.408) kind 2: -25.579\n    test 703 GeoidKarney('egm2008-1.pgm').height(-2.266, -91.951) kind 2: -9.849\n    test 704 GeoidKarney('egm2008-1.pgm').height(-18.672, 42.547) kind 2: -10.491\n    test 705 GeoidKarney('egm2008-1.pgm').height(-41.44, 157.413) kind 2: 0.243  FAILED, KNOWN, expected 0.244\n    test 706 GeoidKarney('egm2008-1.pgm').height(53.686, -79.375) kind 2: -43.820  FAILED, KNOWN, expected -43.821\n    test 707 GeoidKarney('egm2008-1.pgm').height(39.26, -30.351) kind 2: 57.400  FAILED, KNOWN, expected 57.401\n    test 708 GeoidKarney('egm2008-1.pgm').height(-51.699, -141.493) kind 2: -17.889  FAILED, KNOWN, expected -17.890\n    test 709 GeoidKarney('egm2008-1.pgm').height(36.585, 4.515) kind 2: 46.422  FAILED, KNOWN, expected 46.421\n    test 710 GeoidKarney('egm2008-1.pgm').height(39.642, -54.659) kind 2: -14.475\n    test 711 GeoidKarney('egm2008-1.pgm').height(59.761, 166.567) kind 2: 11.119  FAILED, KNOWN, expected 11.118\n    test 712 GeoidKarney('egm2008-1.pgm').height(51.83, 13.357) kind 2: 42.291\n    test 713 GeoidKarney('egm2008-1.pgm').height(-36.531, -175.431) kind 2: 22.327  FAILED, KNOWN, expected 22.326\n    test 714 GeoidKarney('egm2008-1.pgm').height(-37.08, 125.264) kind 2: -33.098\n    test 715 GeoidKarney('egm2008-1.pgm').height(-68.651, 92.732) kind 2: 9.431  FAILED, KNOWN, expected 9.430\n    test 716 GeoidKarney('egm2008-1.pgm').height(35.087, 45.336) kind 2: 6.032\n    test 717 GeoidKarney('egm2008-1.pgm').height(-61.356, -169.379) kind 2: -44.330\n    test 718 GeoidKarney('egm2008-1.pgm').height(-36.955, 179.12) kind 2: 21.775\n    test 719 GeoidKarney('egm2008-1.pgm').height(10.248, -6.714) kind 2: 29.243\n    test 720 GeoidKarney('egm2008-1.pgm').height(36.868, 84.602) kind 2: -40.677  FAILED, KNOWN, expected -40.676\n    test 721 GeoidKarney('egm2008-1.pgm').height(28.637, 88.933) kind 2: -31.353\n    test 722 GeoidKarney('egm2008-1.pgm').height(54.811, -99.968) kind 2: -32.700  FAILED, KNOWN, expected -32.701\n    test 723 GeoidKarney('egm2008-1.pgm').height(7.611, 145.911) kind 2: 60.628  FAILED, KNOWN, expected 60.629\n    test 724 GeoidKarney('egm2008-1.pgm').height(59.412, 170.102) kind 2: 6.617\n    test 725 GeoidKarney('egm2008-1.pgm').height(-61.469, 126.144) kind 2: -31.888  FAILED, KNOWN, expected -31.887\n    test 726 GeoidKarney('egm2008-1.pgm').height(18.514, -137.083) kind 2: -26.536  FAILED, KNOWN, expected -26.535\n    test 727 GeoidKarney('egm2008-1.pgm').height(7.854, -126.799) kind 2: -29.631  FAILED, KNOWN, expected -29.630\n    test 728 GeoidKarney('egm2008-1.pgm').height(47.489, 134.183) kind 2: 22.274  FAILED, KNOWN, expected 22.275\n    test 729 GeoidKarney('egm2008-1.pgm').height(-34.144, -11.922) kind 2: 17.095  FAILED, KNOWN, expected 17.094\n    test 730 GeoidKarney('egm2008-1.pgm').height(-58.389, 117.458) kind 2: -20.940  FAILED, KNOWN, expected -20.941\n    test 731 GeoidKarney('egm2008-1.pgm').height(9.773, 95.846) kind 2: -42.740\n    test 732 GeoidKarney('egm2008-1.pgm').height(-53.12, 136.994) kind 2: -21.651\n    test 733 GeoidKarney('egm2008-1.pgm').height(-50.35, 0.075) kind 2: 25.240\n    test 734 GeoidKarney('egm2008-1.pgm').height(31.438, -170.879) kind 2: -8.758\n    test 735 GeoidKarney('egm2008-1.pgm').height(37.541, -153.024) kind 2: -19.606  FAILED, KNOWN, expected -19.607\n    test 736 GeoidKarney('egm2008-1.pgm').height(27.586, 2.444) kind 2: 26.258\n    test 737 GeoidKarney('egm2008-1.pgm').height(-26.139, -106.201) kind 2: -3.824\n    test 738 GeoidKarney('egm2008-1.pgm').height(-33.426, -14.84) kind 2: 18.194  FAILED, KNOWN, expected 18.195\n    test 739 GeoidKarney('egm2008-1.pgm').height(39.586, -153.019) kind 2: -17.724  FAILED, KNOWN, expected -17.725\n    test 740 GeoidKarney('egm2008-1.pgm').height(-60.79, -2.578) kind 2: 14.511  FAILED, KNOWN, expected 14.513\n    test 741 GeoidKarney('egm2008-1.pgm').height(-20.131, 21.975) kind 2: 16.808  FAILED, KNOWN, expected 16.809\n    test 742 GeoidKarney('egm2008-1.pgm').height(75.649, 99.921) kind 2: -8.025  FAILED, KNOWN, expected -8.026\n    test 743 GeoidKarney('egm2008-1.pgm').height(-0.385, -23.788) kind 2: 9.688\n    test 744 GeoidKarney('egm2008-1.pgm').height(-51.56, -50.327) kind 2: 6.218\n    test 745 GeoidKarney('egm2008-1.pgm').height(-43.129, -167.271) kind 2: -2.725  FAILED, KNOWN, expected -2.724\n    test 746 GeoidKarney('egm2008-1.pgm').height(46.374, 71.948) kind 2: -42.566  FAILED, KNOWN, expected -42.565\n    test 747 GeoidKarney('egm2008-1.pgm').height(-22.783, 140.657) kind 2: 38.341\n    test 748 GeoidKarney('egm2008-1.pgm').height(-12.056, 122.804) kind 2: 33.888  FAILED, KNOWN, expected 33.889\n    test 749 GeoidKarney('egm2008-1.pgm').height(30.127, 94.738) kind 2: -37.382  FAILED, KNOWN, expected -37.380\n    test 750 GeoidKarney('egm2008-1.pgm').height(46.296, -174.479) kind 2: -1.857  FAILED, KNOWN, expected -1.858\n    test 751 GeoidKarney('egm2008-1.pgm').height(34.99, 15.052) kind 2: 34.196  FAILED, KNOWN, expected 34.195\n    test 752 GeoidKarney('egm2008-1.pgm').height(-51.287, 90.565) kind 2: 12.767\n    test 753 GeoidKarney('egm2008-1.pgm').height(34.217, 141.302) kind 2: 15.612\n    test 754 GeoidKarney('egm2008-1.pgm').height(-40.423, -142.787) kind 2: -11.063\n    test 755 GeoidKarney('egm2008-1.pgm').height(-17.854, -170.216) kind 2: 27.387\n    test 756 GeoidKarney('egm2008-1.pgm').height(47.803, 112.701) kind 2: -23.817\n    test 757 GeoidKarney('egm2008-1.pgm').height(-23.276, 133.454) kind 2: 18.713  FAILED, KNOWN, expected 18.712\n    test 758 GeoidKarney('egm2008-1.pgm').height(-26.884, -36.571) kind 2: -7.343  FAILED, KNOWN, expected -7.344\n    test 759 GeoidKarney('egm2008-1.pgm').height(-37.106, 31.128) kind 2: 29.997  FAILED, KNOWN, expected 29.998\n    test 760 GeoidKarney('egm2008-1.pgm').height(-75.363, -173.674) kind 2: -61.869\n    test 761 GeoidKarney('egm2008-1.pgm').height(-18.305, 69.016) kind 2: -24.937\n    test 762 GeoidKarney('egm2008-1.pgm').height(39.527, 23.58) kind 2: 38.558  FAILED, KNOWN, expected 38.556\n    test 763 GeoidKarney('egm2008-1.pgm').height(68.903, 30.97) kind 2: 19.672  FAILED, KNOWN, expected 19.671\n    test 764 GeoidKarney('egm2008-1.pgm').height(53.937, 168.318) kind 2: 2.273  FAILED, KNOWN, expected 2.272\n    test 765 GeoidKarney('egm2008-1.pgm').height(-38.6, 64.812) kind 2: 24.863\n    test 766 GeoidKarney('egm2008-1.pgm').height(-41.396, -69.739) kind 2: 21.637  FAILED, KNOWN, expected 21.636\n    test 767 GeoidKarney('egm2008-1.pgm').height(50.158, 72.319) kind 2: -33.851\n    test 768 GeoidKarney('egm2008-1.pgm').height(27.692, 176.153) kind 2: -5.299\n    test 769 GeoidKarney('egm2008-1.pgm').height(-48.419, 170.454) kind 2: -6.789\n    test 770 GeoidKarney('egm2008-1.pgm').height(-65.346, -124.976) kind 2: -35.030\n    test 771 GeoidKarney('egm2008-1.pgm').height(-51.873, 167.266) kind 2: -15.338\n    test 772 GeoidKarney('egm2008-1.pgm').height(-7.263, 84.308) kind 2: -79.356\n    test 773 GeoidKarney('egm2008-1.pgm').height(-1.461, -105.458) kind 2: -16.650\n    test 774 GeoidKarney('egm2008-1.pgm').height(7.684, 161.873) kind 2: 36.358  FAILED, KNOWN, expected 36.359\n    test 775 GeoidKarney('egm2008-1.pgm').height(-31.475, -158.52) kind 2: 3.614  FAILED, KNOWN, expected 3.615\n    test 776 GeoidKarney('egm2008-1.pgm').height(-36.187, 62.917) kind 2: 23.946  FAILED, KNOWN, expected 23.947\n    test 777 GeoidKarney('egm2008-1.pgm').height(16.003, 141.687) kind 2: 51.495\n    test 778 GeoidKarney('egm2008-1.pgm').height(30.182, 86.261) kind 2: -30.909  FAILED, KNOWN, expected -30.910\n    test 779 GeoidKarney('egm2008-1.pgm').height(-77.304, 159.498) kind 2: -52.131\n    test 780 GeoidKarney('egm2008-1.pgm').height(39.536, 139.795) kind 2: 37.046  FAILED, KNOWN, expected 37.045\n    test 781 GeoidKarney('egm2008-1.pgm').height(8.569, 134.618) kind 2: 64.181  FAILED, KNOWN, expected 64.180\n    test 782 GeoidKarney('egm2008-1.pgm').height(14.473, 90.596) kind 2: -62.475\n    test 783 GeoidKarney('egm2008-1.pgm').height(-13.138, -99.589) kind 2: -8.454\n    test 784 GeoidKarney('egm2008-1.pgm').height(34.212, -26.307) kind 2: 40.834\n    test 785 GeoidKarney('egm2008-1.pgm').height(21.89, 76.371) kind 2: -60.456  FAILED, KNOWN, expected -60.455\n    test 786 GeoidKarney('egm2008-1.pgm').height(29.793, 120.487) kind 2: 9.727\n    test 787 GeoidKarney('egm2008-1.pgm').height(15.724, 122.714) kind 2: 32.143  FAILED, KNOWN, expected 32.142\n    test 788 GeoidKarney('egm2008-1.pgm').height(-66.208, -78.499) kind 2: -6.221  FAILED, KNOWN, expected -6.220\n    test 789 GeoidKarney('egm2008-1.pgm').height(-39.507, 55.809) kind 2: 32.489\n    test 790 GeoidKarney('egm2008-1.pgm').height(28.159, 51.476) kind 2: -24.692\n    test 791 GeoidKarney('egm2008-1.pgm').height(-36.207, 120.205) kind 2: -38.748  FAILED, KNOWN, expected -38.749\n    test 792 GeoidKarney('egm2008-1.pgm').height(30.575, -99.998) kind 2: -23.254  FAILED, KNOWN, expected -23.255\n    test 793 GeoidKarney('egm2008-1.pgm').height(-16.993, 37.136) kind 2: -13.454  FAILED, KNOWN, expected -13.455\n    test 794 GeoidKarney('egm2008-1.pgm').height(-11.477, 12.039) kind 2: 16.627\n    test 795 GeoidKarney('egm2008-1.pgm').height(30.428, -144.765) kind 2: -22.221\n    test 796 GeoidKarney('egm2008-1.pgm').height(-17.44, -92.424) kind 2: -4.836\n    test 797 GeoidKarney('egm2008-1.pgm').height(40.203, 143.43) kind 2: 19.571\n    test 798 GeoidKarney('egm2008-1.pgm').height(-37.098, -106.574) kind 2: -9.227\n    test 799 GeoidKarney('egm2008-1.pgm').height(54.62, -68.413) kind 2: -23.248\n    test 800 GeoidKarney('egm2008-1.pgm').height(-31.633, 148.182) kind 2: 24.829\n    test 801 GeoidKarney('egm2008-1.pgm').height(-56.07, -141.407) kind 2: -21.706  FAILED, KNOWN, expected -21.705\n    test 802 GeoidKarney('egm2008-1.pgm').height(-8.195, -52.691) kind 2: -17.054  FAILED, KNOWN, expected -17.053\n    test 803 GeoidKarney('egm2008-1.pgm').height(17.851, 24.749) kind 2: 11.716\n    test 804 GeoidKarney('egm2008-1.pgm').height(0.349, -108.333) kind 2: -19.529  FAILED, KNOWN, expected -19.530\n    test 805 GeoidKarney('egm2008-1.pgm').height(15.038, 126.191) kind 2: 45.929\n    test 806 GeoidKarney('egm2008-1.pgm').height(-21.111, -123.696) kind 2: -8.283\n    test 807 GeoidKarney('egm2008-1.pgm').height(30.947, 173.002) kind 2: -8.467\n    test 808 GeoidKarney('egm2008-1.pgm').height(-10.698, -144.091) kind 2: -1.829\n    test 809 GeoidKarney('egm2008-1.pgm').height(-29.412, 124.753) kind 2: -16.505  FAILED, KNOWN, expected -16.506\n    test 810 GeoidKarney('egm2008-1.pgm').height(38.224, -137.189) kind 2: -35.384\n    test 811 GeoidKarney('egm2008-1.pgm').height(36.064, -132.409) kind 2: -38.962  FAILED, KNOWN, expected -38.963\n    test 812 GeoidKarney('egm2008-1.pgm').height(29.975, 178.076) kind 2: -6.956\n    test 813 GeoidKarney('egm2008-1.pgm').height(-21.346, 169.26) kind 2: 51.006  FAILED, KNOWN, expected 51.005\n    test 814 GeoidKarney('egm2008-1.pgm').height(49.282, -152.934) kind 2: 1.193  FAILED, KNOWN, expected 1.192\n    test 815 GeoidKarney('egm2008-1.pgm').height(16.349, -99.962) kind 2: -15.038\n    test 816 GeoidKarney('egm2008-1.pgm').height(-14.293, -167.34) kind 2: 17.792  FAILED, KNOWN, expected 17.791\n    test 817 GeoidKarney('egm2008-1.pgm').height(47.166, -38.523) kind 2: 44.653  FAILED, KNOWN, expected 44.652\n    test 818 GeoidKarney('egm2008-1.pgm').height(-58.911, 114.347) kind 2: -17.972  FAILED, KNOWN, expected -17.971\n    test 819 GeoidKarney('egm2008-1.pgm').height(-9.055, 111.294) kind 2: 11.631\n    test 820 GeoidKarney('egm2008-1.pgm').height(18.391, 29.692) kind 2: 7.394\n    test 821 GeoidKarney('egm2008-1.pgm').height(-15.074, 22.153) kind 2: 7.932\n    test 822 GeoidKarney('egm2008-1.pgm').height(-4.235, 62.001) kind 2: -60.594  FAILED, KNOWN, expected -60.593\n    test 823 GeoidKarney('egm2008-1.pgm').height(15.171, -86.583) kind 2: 4.382  FAILED, KNOWN, expected 4.384\n    test 824 GeoidKarney('egm2008-1.pgm').height(79.254, 112.116) kind 2: 1.296  FAILED, KNOWN, expected 1.297\n    test 825 GeoidKarney('egm2008-1.pgm').height(15.947, 156.093) kind 2: 30.852\n    test 826 GeoidKarney('egm2008-1.pgm').height(68.371, -177.382) kind 2: 2.705  FAILED, KNOWN, expected 2.704\n    test 827 GeoidKarney('egm2008-1.pgm').height(-41.931, -72.093) kind 2: 21.263  FAILED, KNOWN, expected 21.264\n    test 828 GeoidKarney('egm2008-1.pgm').height(-1.193, -143.133) kind 2: 5.443\n    test 829 GeoidKarney('egm2008-1.pgm').height(-37.006, 154.513) kind 2: 9.998\n    test 830 GeoidKarney('egm2008-1.pgm').height(-22.148, 9.938) kind 2: 22.428\n    test 831 GeoidKarney('egm2008-1.pgm').height(24.329, 109.044) kind 2: -23.156  FAILED, KNOWN, expected -23.154\n    test 832 GeoidKarney('egm2008-1.pgm').height(-54.878, 114.691) kind 2: -17.662\n    test 833 GeoidKarney('egm2008-1.pgm').height(45.601, -80.458) kind 2: -36.840  FAILED, KNOWN, expected -36.839\n    test 834 GeoidKarney('egm2008-1.pgm').height(2.372, 58.974) kind 2: -61.220  FAILED, KNOWN, expected -61.221\n    test 835 GeoidKarney('egm2008-1.pgm').height(15.937, 165.854) kind 2: 20.355\n    test 836 GeoidKarney('egm2008-1.pgm').height(4.889, -24.213) kind 2: 13.147\n    test 837 GeoidKarney('egm2008-1.pgm').height(-11.392, 179.558) kind 2: 41.072\n    test 838 GeoidKarney('egm2008-1.pgm').height(58.246, 4.862) kind 2: 42.982\n    test 839 GeoidKarney('egm2008-1.pgm').height(34.302, -109.109) kind 2: -22.997  FAILED, KNOWN, expected -22.998\n    test 840 GeoidKarney('egm2008-1.pgm').height(-58.196, 117.306) kind 2: -20.662\n    test 841 GeoidKarney('egm2008-1.pgm').height(44.5, 173.769) kind 2: -8.438\n    test 842 GeoidKarney('egm2008-1.pgm').height(-28.863, -139.775) kind 2: -8.711  FAILED, KNOWN, expected -8.712\n    test 843 GeoidKarney('egm2008-1.pgm').height(19.507, -96.099) kind 2: -12.654  FAILED, KNOWN, expected -12.653\n    test 844 GeoidKarney('egm2008-1.pgm').height(-42.488, -73.907) kind 2: 17.163  FAILED, KNOWN, expected 17.166\n    test 845 GeoidKarney('egm2008-1.pgm').height(46.138, -141.429) kind 2: -19.873  FAILED, KNOWN, expected -19.874\n    test 846 GeoidKarney('egm2008-1.pgm').height(60.507, 93.743) kind 2: -31.124\n    test 847 GeoidKarney('egm2008-1.pgm').height(26.219, -145.434) kind 2: -17.307\n    test 848 GeoidKarney('egm2008-1.pgm').height(-28.687, 3.37) kind 2: 23.437  FAILED, KNOWN, expected 23.434\n    test 849 GeoidKarney('egm2008-1.pgm').height(-15.008, 117.45) kind 2: 4.508\n    test 850 GeoidKarney('egm2008-1.pgm').height(40.71, 144.095) kind 2: 11.550  FAILED, KNOWN, expected 11.549\n    test 851 GeoidKarney('egm2008-1.pgm').height(20.823, -173.611) kind 2: 5.749  FAILED, KNOWN, expected 5.748\n    test 852 GeoidKarney('egm2008-1.pgm').height(16.776, -3.009) kind 2: 28.788\n    test 853 GeoidKarney('egm2008-1.pgm').height(41.0, -95.0) kind 2: -30.588  FAILED, KNOWN, expected -30.589\n    test 854 GeoidKarney('egm2008-1.pgm').height(49.0, -120.5) kind 2: -15.273\n    test 855 GeoidKarney('egm2008-1.pgm').height(49.0, -103.5) kind 2: -18.624\n    test 856 GeoidKarney('egm2008-1.pgm').height(49.0, -86.5) kind 2: -37.872  FAILED, KNOWN, expected -37.873\n    test 857 GeoidKarney('egm2008-1.pgm').height(49.0, -69.5) kind 2: -26.511\n    test 858 GeoidKarney('egm2008-1.pgm').height(33.0, -120.5) kind 2: -39.600\n    test 859 GeoidKarney('egm2008-1.pgm').height(33.0, -103.5) kind 2: -22.689\n    test 860 GeoidKarney('egm2008-1.pgm').height(33.0, -86.5) kind 2: -30.066  FAILED, KNOWN, expected -30.067\n    test 861 GeoidKarney('egm2008-1.pgm').height(33.0, -69.5) kind 2: -48.093\n\n    test 862 GeoidKarney('egm2008-1.pgm').height() kind 2, hits 0, eps max (in 0 FAILED): 0.002537\n    test 863 GeoidKarney('egm2008-1.pgm').height() kind 2, hits 0, eps mean (of 210 total): 0.000543\n    test 864 GeoidKarney('egm2008-1.pgm').height() kind 2, hits 0, eps stdev (of 210 total): 0.000458\n    test 865 GeoidKarney('egm2008-1.pgm').toStr: GeoidKarney('egm2008-1.pgm'): lowerleft(-90.0, -180.0, -30.15), upperright(90.0, 180.0, 14.898), center(0.0, 0.0, 17.226), highest(-8.4, 147.367, 85.839), lowest(4.7, 78.767, -106.911)\n\n    test 866 closed: True\n    test 867 copy(<type 'type'>): (<class 'pygeodesy.geoids.GeoidKarney'>, True)\n    test 868 GeoidKarney.copy(): (<class 'pygeodesy.geoids.GeoidKarney'>, True)\n    test 869 GeoidKarney('egm2008-1.pgm').height(-76.981, 34.17) kind 3: 12.637  FAILED, KNOWN, expected 12.636\n    test 870 GeoidKarney('egm2008-1.pgm').height(79.695, 88.806) kind 3: 0.749\n    test 871 GeoidKarney('egm2008-1.pgm').height(-15.245, 168.748) kind 3: 65.110  FAILED, KNOWN, expected 65.109\n    test 872 GeoidKarney('egm2008-1.pgm').height(-19.379, 15.855) kind 3: 24.889\n    test 873 GeoidKarney('egm2008-1.pgm').height(43.378, -130.552) kind 3: -29.556  FAILED, KNOWN, expected -29.557\n    test 874 GeoidKarney('egm2008-1.pgm').height(-16.075, 21.795) kind 3: 9.741  FAILED, KNOWN, expected 9.742\n    test 875 GeoidKarney('egm2008-1.pgm').height(-11.256, -73.75) kind 3: 30.060  FAILED, KNOWN, expected 30.059\n    test 876 GeoidKarney('egm2008-1.pgm').height(69.017, -15.921) kind 3: 60.690\n    test 877 GeoidKarney('egm2008-1.pgm').height(2.221, 139.739) kind 3: 69.134  FAILED, KNOWN, expected 69.133\n    test 878 GeoidKarney('egm2008-1.pgm').height(-9.097, 119.142) kind 3: 36.521  FAILED, KNOWN, expected 36.520\n    test 879 GeoidKarney('egm2008-1.pgm').height(-28.524, -22.192) kind 3: 6.801\n    test 880 GeoidKarney('egm2008-1.pgm').height(12.272, -136.424) kind 3: -20.652  FAILED, KNOWN, expected -20.651\n    test 881 GeoidKarney('egm2008-1.pgm').height(-15.203, -85.604) kind 3: -3.040\n    test 882 GeoidKarney('egm2008-1.pgm').height(-63.736, -77.17) kind 3: -1.329  FAILED, KNOWN, expected -1.328\n    test 883 GeoidKarney('egm2008-1.pgm').height(-48.771, -90.102) kind 3: -2.171  FAILED, KNOWN, expected -2.172\n    test 884 GeoidKarney('egm2008-1.pgm').height(-0.179, -126.368) kind 3: -17.411\n    test 885 GeoidKarney('egm2008-1.pgm').height(1.586, -128.887) kind 3: -16.426  FAILED, KNOWN, expected -16.425\n    test 886 GeoidKarney('egm2008-1.pgm').height(-48.781, -2.684) kind 3: 24.699  FAILED, KNOWN, expected 24.698\n    test 887 GeoidKarney('egm2008-1.pgm').height(-49.092, 136.862) kind 3: -18.328  FAILED, KNOWN, expected -18.329\n    test 888 GeoidKarney('egm2008-1.pgm').height(47.732, 17.552) kind 3: 43.802\n    test 889 GeoidKarney('egm2008-1.pgm').height(-49.11, 85.706) kind 3: 18.716\n    test 890 GeoidKarney('egm2008-1.pgm').height(-49.162, 40.321) kind 3: 44.468  FAILED, KNOWN, expected 44.469\n    test 891 GeoidKarney('egm2008-1.pgm').height(3.498, 158.118) kind 3: 49.943  FAILED, KNOWN, expected 49.944\n    test 892 GeoidKarney('egm2008-1.pgm').height(-35.616, 122.648) kind 3: -35.878\n    test 893 GeoidKarney('egm2008-1.pgm').height(56.598, -96.114) kind 3: -40.777\n    test 894 GeoidKarney('egm2008-1.pgm').height(-31.85, 149.121) kind 3: 26.559\n    test 895 GeoidKarney('egm2008-1.pgm').height(-26.569, -177.792) kind 3: 49.362  FAILED, KNOWN, expected 49.361\n    test 896 GeoidKarney('egm2008-1.pgm').height(76.735, -65.753) kind 3: 21.106  FAILED, KNOWN, expected 21.107\n    test 897 GeoidKarney('egm2008-1.pgm').height(-21.404, -122.268) kind 3: -7.203  FAILED, KNOWN, expected -7.202\n    test 898 GeoidKarney('egm2008-1.pgm').height(-77.133, -65.474) kind 3: -17.167  FAILED, KNOWN, expected -17.168\n    test 899 GeoidKarney('egm2008-1.pgm').height(-58.812, 2.276) kind 3: 18.359\n    test 900 GeoidKarney('egm2008-1.pgm').height(4.415, 155.683) kind 3: 52.117  FAILED, KNOWN, expected 52.118\n    test 901 GeoidKarney('egm2008-1.pgm').height(-28.146, 107.081) kind 3: -38.950\n    test 902 GeoidKarney('egm2008-1.pgm').height(-10.551, -126.69) kind 3: -9.935  FAILED, KNOWN, expected -9.934\n    test 903 GeoidKarney('egm2008-1.pgm').height(-25.444, -103.337) kind 3: -2.879\n    test 904 GeoidKarney('egm2008-1.pgm').height(24.436, 46.159) kind 3: -5.025\n    test 905 GeoidKarney('egm2008-1.pgm').height(-72.889, 37.107) kind 3: 24.296\n    test 906 GeoidKarney('egm2008-1.pgm').height(-19.629, 13.245) kind 3: 25.131\n    test 907 GeoidKarney('egm2008-1.pgm').height(-7.602, 171.265) kind 3: 40.720  FAILED, KNOWN, expected 40.721\n    test 908 GeoidKarney('egm2008-1.pgm').height(-45.364, -1.876) kind 3: 22.387  FAILED, KNOWN, expected 22.388\n    test 909 GeoidKarney('egm2008-1.pgm').height(-7.292, -69.18) kind 3: 22.485  FAILED, KNOWN, expected 22.486\n    test 910 GeoidKarney('egm2008-1.pgm').height(-31.566, -166.689) kind 3: 14.942  FAILED, KNOWN, expected 14.943\n    test 911 GeoidKarney('egm2008-1.pgm').height(-82.751, -162.085) kind 3: -47.387\n    test 912 GeoidKarney('egm2008-1.pgm').height(-40.7, 99.466) kind 3: -18.404  FAILED, KNOWN, expected -18.403\n    test 913 GeoidKarney('egm2008-1.pgm').height(48.676, 39.69) kind 3: 10.185\n    test 914 GeoidKarney('egm2008-1.pgm').height(74.817, -78.404) kind 3: 5.670  FAILED, KNOWN, expected 5.671\n    test 915 GeoidKarney('egm2008-1.pgm').height(-81.032, -63.865) kind 3: -24.577\n    test 916 GeoidKarney('egm2008-1.pgm').height(74.022, 9.432) kind 3: 43.288\n    test 917 GeoidKarney('egm2008-1.pgm').height(-75.071, 17.579) kind 3: 13.747  FAILED, KNOWN, expected 13.748\n    test 918 GeoidKarney('egm2008-1.pgm').height(-12.546, -54.851) kind 3: -5.342\n    test 919 GeoidKarney('egm2008-1.pgm').height(-13.621, 42.408) kind 3: -25.579\n    test 920 GeoidKarney('egm2008-1.pgm').height(-2.266, -91.951) kind 3: -9.849\n    test 921 GeoidKarney('egm2008-1.pgm').height(-18.672, 42.547) kind 3: -10.490  FAILED, KNOWN, expected -10.491\n    test 922 GeoidKarney('egm2008-1.pgm').height(-41.44, 157.413) kind 3: 0.243  FAILED, KNOWN, expected 0.244\n    test 923 GeoidKarney('egm2008-1.pgm').height(53.686, -79.375) kind 3: -43.820  FAILED, KNOWN, expected -43.821\n    test 924 GeoidKarney('egm2008-1.pgm').height(39.26, -30.351) kind 3: 57.401\n    test 925 GeoidKarney('egm2008-1.pgm').height(-51.699, -141.493) kind 3: -17.889  FAILED, KNOWN, expected -17.890\n    test 926 GeoidKarney('egm2008-1.pgm').height(36.585, 4.515) kind 3: 46.423  FAILED, KNOWN, expected 46.421\n    test 927 GeoidKarney('egm2008-1.pgm').height(39.642, -54.659) kind 3: -14.475\n    test 928 GeoidKarney('egm2008-1.pgm').height(59.761, 166.567) kind 3: 11.118\n    test 929 GeoidKarney('egm2008-1.pgm').height(51.83, 13.357) kind 3: 42.291\n    test 930 GeoidKarney('egm2008-1.pgm').height(-36.531, -175.431) kind 3: 22.327  FAILED, KNOWN, expected 22.326\n    test 931 GeoidKarney('egm2008-1.pgm').height(-37.08, 125.264) kind 3: -33.098\n    test 932 GeoidKarney('egm2008-1.pgm').height(-68.651, 92.732) kind 3: 9.431  FAILED, KNOWN, expected 9.430\n    test 933 GeoidKarney('egm2008-1.pgm').height(35.087, 45.336) kind 3: 6.032\n    test 934 GeoidKarney('egm2008-1.pgm').height(-61.356, -169.379) kind 3: -44.330\n    test 935 GeoidKarney('egm2008-1.pgm').height(-36.955, 179.12) kind 3: 21.775\n    test 936 GeoidKarney('egm2008-1.pgm').height(10.248, -6.714) kind 3: 29.243\n    test 937 GeoidKarney('egm2008-1.pgm').height(36.868, 84.602) kind 3: -40.677  FAILED, KNOWN, expected -40.676\n    test 938 GeoidKarney('egm2008-1.pgm').height(28.637, 88.933) kind 3: -31.352  FAILED, KNOWN, expected -31.353\n    test 939 GeoidKarney('egm2008-1.pgm').height(54.811, -99.968) kind 3: -32.700  FAILED, KNOWN, expected -32.701\n    test 940 GeoidKarney('egm2008-1.pgm').height(7.611, 145.911) kind 3: 60.628  FAILED, KNOWN, expected 60.629\n    test 941 GeoidKarney('egm2008-1.pgm').height(59.412, 170.102) kind 3: 6.617\n    test 942 GeoidKarney('egm2008-1.pgm').height(-61.469, 126.144) kind 3: -31.887\n    test 943 GeoidKarney('egm2008-1.pgm').height(18.514, -137.083) kind 3: -26.536  FAILED, KNOWN, expected -26.535\n    test 944 GeoidKarney('egm2008-1.pgm').height(7.854, -126.799) kind 3: -29.631  FAILED, KNOWN, expected -29.630\n    test 945 GeoidKarney('egm2008-1.pgm').height(47.489, 134.183) kind 3: 22.274  FAILED, KNOWN, expected 22.275\n    test 946 GeoidKarney('egm2008-1.pgm').height(-34.144, -11.922) kind 3: 17.095  FAILED, KNOWN, expected 17.094\n    test 947 GeoidKarney('egm2008-1.pgm').height(-58.389, 117.458) kind 3: -20.940  FAILED, KNOWN, expected -20.941\n    test 948 GeoidKarney('egm2008-1.pgm').height(9.773, 95.846) kind 3: -42.740\n    test 949 GeoidKarney('egm2008-1.pgm').height(-53.12, 136.994) kind 3: -21.651\n    test 950 GeoidKarney('egm2008-1.pgm').height(-50.35, 0.075) kind 3: 25.240\n    test 951 GeoidKarney('egm2008-1.pgm').height(31.438, -170.879) kind 3: -8.758\n    test 952 GeoidKarney('egm2008-1.pgm').height(37.541, -153.024) kind 3: -19.606  FAILED, KNOWN, expected -19.607\n    test 953 GeoidKarney('egm2008-1.pgm').height(27.586, 2.444) kind 3: 26.258\n    test 954 GeoidKarney('egm2008-1.pgm').height(-26.139, -106.201) kind 3: -3.823  FAILED, KNOWN, expected -3.824\n    test 955 GeoidKarney('egm2008-1.pgm').height(-33.426, -14.84) kind 3: 18.195\n    test 956 GeoidKarney('egm2008-1.pgm').height(39.586, -153.019) kind 3: -17.724  FAILED, KNOWN, expected -17.725\n    test 957 GeoidKarney('egm2008-1.pgm').height(-60.79, -2.578) kind 3: 14.512  FAILED, KNOWN, expected 14.513\n    test 958 GeoidKarney('egm2008-1.pgm').height(-20.131, 21.975) kind 3: 16.808  FAILED, KNOWN, expected 16.809\n    test 959 GeoidKarney('egm2008-1.pgm').height(75.649, 99.921) kind 3: -8.025  FAILED, KNOWN, expected -8.026\n    test 960 GeoidKarney('egm2008-1.pgm').height(-0.385, -23.788) kind 3: 9.689  FAILED, KNOWN, expected 9.688\n    test 961 GeoidKarney('egm2008-1.pgm').height(-51.56, -50.327) kind 3: 6.218\n    test 962 GeoidKarney('egm2008-1.pgm').height(-43.129, -167.271) kind 3: -2.725  FAILED, KNOWN, expected -2.724\n    test 963 GeoidKarney('egm2008-1.pgm').height(46.374, 71.948) kind 3: -42.566  FAILED, KNOWN, expected -42.565\n    test 964 GeoidKarney('egm2008-1.pgm').height(-22.783, 140.657) kind 3: 38.342  FAILED, KNOWN, expected 38.341\n    test 965 GeoidKarney('egm2008-1.pgm').height(-12.056, 122.804) kind 3: 33.888  FAILED, KNOWN, expected 33.889\n    test 966 GeoidKarney('egm2008-1.pgm').height(30.127, 94.738) kind 3: -37.381  FAILED, KNOWN, expected -37.380\n    test 967 GeoidKarney('egm2008-1.pgm').height(46.296, -174.479) kind 3: -1.857  FAILED, KNOWN, expected -1.858\n    test 968 GeoidKarney('egm2008-1.pgm').height(34.99, 15.052) kind 3: 34.196  FAILED, KNOWN, expected 34.195\n    test 969 GeoidKarney('egm2008-1.pgm').height(-51.287, 90.565) kind 3: 12.767\n    test 970 GeoidKarney('egm2008-1.pgm').height(34.217, 141.302) kind 3: 15.612\n    test 971 GeoidKarney('egm2008-1.pgm').height(-40.423, -142.787) kind 3: -11.063\n    test 972 GeoidKarney('egm2008-1.pgm').height(-17.854, -170.216) kind 3: 27.386  FAILED, KNOWN, expected 27.387\n    test 973 GeoidKarney('egm2008-1.pgm').height(47.803, 112.701) kind 3: -23.817\n    test 974 GeoidKarney('egm2008-1.pgm').height(-23.276, 133.454) kind 3: 18.713  FAILED, KNOWN, expected 18.712\n    test 975 GeoidKarney('egm2008-1.pgm').height(-26.884, -36.571) kind 3: -7.343  FAILED, KNOWN, expected -7.344\n    test 976 GeoidKarney('egm2008-1.pgm').height(-37.106, 31.128) kind 3: 29.997  FAILED, KNOWN, expected 29.998\n    test 977 GeoidKarney('egm2008-1.pgm').height(-75.363, -173.674) kind 3: -61.869\n    test 978 GeoidKarney('egm2008-1.pgm').height(-18.305, 69.016) kind 3: -24.938  FAILED, KNOWN, expected -24.937\n    test 979 GeoidKarney('egm2008-1.pgm').height(39.527, 23.58) kind 3: 38.557  FAILED, KNOWN, expected 38.556\n    test 980 GeoidKarney('egm2008-1.pgm').height(68.903, 30.97) kind 3: 19.671\n    test 981 GeoidKarney('egm2008-1.pgm').height(53.937, 168.318) kind 3: 2.273  FAILED, KNOWN, expected 2.272\n    test 982 GeoidKarney('egm2008-1.pgm').height(-38.6, 64.812) kind 3: 24.863\n    test 983 GeoidKarney('egm2008-1.pgm').height(-41.396, -69.739) kind 3: 21.636\n    test 984 GeoidKarney('egm2008-1.pgm').height(50.158, 72.319) kind 3: -33.850  FAILED, KNOWN, expected -33.851\n    test 985 GeoidKarney('egm2008-1.pgm').height(27.692, 176.153) kind 3: -5.299\n    test 986 GeoidKarney('egm2008-1.pgm').height(-48.419, 170.454) kind 3: -6.789\n    test 987 GeoidKarney('egm2008-1.pgm').height(-65.346, -124.976) kind 3: -35.030\n    test 988 GeoidKarney('egm2008-1.pgm').height(-51.873, 167.266) kind 3: -15.338\n    test 989 GeoidKarney('egm2008-1.pgm').height(-7.263, 84.308) kind 3: -79.356\n    test 990 GeoidKarney('egm2008-1.pgm').height(-1.461, -105.458) kind 3: -16.649  FAILED, KNOWN, expected -16.650\n    test 991 GeoidKarney('egm2008-1.pgm').height(7.684, 161.873) kind 3: 36.359\n    test 992 GeoidKarney('egm2008-1.pgm').height(-31.475, -158.52) kind 3: 3.614  FAILED, KNOWN, expected 3.615\n    test 993 GeoidKarney('egm2008-1.pgm').height(-36.187, 62.917) kind 3: 23.946  FAILED, KNOWN, expected 23.947\n    test 994 GeoidKarney('egm2008-1.pgm').height(16.003, 141.687) kind 3: 51.494  FAILED, KNOWN, expected 51.495\n    test 995 GeoidKarney('egm2008-1.pgm').height(30.182, 86.261) kind 3: -30.909  FAILED, KNOWN, expected -30.910\n    test 996 GeoidKarney('egm2008-1.pgm').height(-77.304, 159.498) kind 3: -52.131\n    test 997 GeoidKarney('egm2008-1.pgm').height(39.536, 139.795) kind 3: 37.046  FAILED, KNOWN, expected 37.045\n    test 998 GeoidKarney('egm2008-1.pgm').height(8.569, 134.618) kind 3: 64.181  FAILED, KNOWN, expected 64.180\n    test 999 GeoidKarney('egm2008-1.pgm').height(14.473, 90.596) kind 3: -62.475\n    test 1000 GeoidKarney('egm2008-1.pgm').height(-13.138, -99.589) kind 3: -8.454\n    test 1001 GeoidKarney('egm2008-1.pgm').height(34.212, -26.307) kind 3: 40.834\n    test 1002 GeoidKarney('egm2008-1.pgm').height(21.89, 76.371) kind 3: -60.455\n    test 1003 GeoidKarney('egm2008-1.pgm').height(29.793, 120.487) kind 3: 9.728  FAILED, KNOWN, expected 9.727\n    test 1004 GeoidKarney('egm2008-1.pgm').height(15.724, 122.714) kind 3: 32.141  FAILED, KNOWN, expected 32.142\n    test 1005 GeoidKarney('egm2008-1.pgm').height(-66.208, -78.499) kind 3: -6.221  FAILED, KNOWN, expected -6.220\n    test 1006 GeoidKarney('egm2008-1.pgm').height(-39.507, 55.809) kind 3: 32.488  FAILED, KNOWN, expected 32.489\n    test 1007 GeoidKarney('egm2008-1.pgm').height(28.159, 51.476) kind 3: -24.692\n    test 1008 GeoidKarney('egm2008-1.pgm').height(-36.207, 120.205) kind 3: -38.749\n    test 1009 GeoidKarney('egm2008-1.pgm').height(30.575, -99.998) kind 3: -23.254  FAILED, KNOWN, expected -23.255\n    test 1010 GeoidKarney('egm2008-1.pgm').height(-16.993, 37.136) kind 3: -13.454  FAILED, KNOWN, expected -13.455\n    test 1011 GeoidKarney('egm2008-1.pgm').height(-11.477, 12.039) kind 3: 16.627\n    test 1012 GeoidKarney('egm2008-1.pgm').height(30.428, -144.765) kind 3: -22.221\n    test 1013 GeoidKarney('egm2008-1.pgm').height(-17.44, -92.424) kind 3: -4.836\n    test 1014 GeoidKarney('egm2008-1.pgm').height(40.203, 143.43) kind 3: 19.571\n    test 1015 GeoidKarney('egm2008-1.pgm').height(-37.098, -106.574) kind 3: -9.227\n    test 1016 GeoidKarney('egm2008-1.pgm').height(54.62, -68.413) kind 3: -23.248\n    test 1017 GeoidKarney('egm2008-1.pgm').height(-31.633, 148.182) kind 3: 24.829\n    test 1018 GeoidKarney('egm2008-1.pgm').height(-56.07, -141.407) kind 3: -21.706  FAILED, KNOWN, expected -21.705\n    test 1019 GeoidKarney('egm2008-1.pgm').height(-8.195, -52.691) kind 3: -17.054  FAILED, KNOWN, expected -17.053\n    test 1020 GeoidKarney('egm2008-1.pgm').height(17.851, 24.749) kind 3: 11.715  FAILED, KNOWN, expected 11.716\n    test 1021 GeoidKarney('egm2008-1.pgm').height(0.349, -108.333) kind 3: -19.529  FAILED, KNOWN, expected -19.530\n    test 1022 GeoidKarney('egm2008-1.pgm').height(15.038, 126.191) kind 3: 45.929\n    test 1023 GeoidKarney('egm2008-1.pgm').height(-21.111, -123.696) kind 3: -8.283\n    test 1024 GeoidKarney('egm2008-1.pgm').height(30.947, 173.002) kind 3: -8.467\n    test 1025 GeoidKarney('egm2008-1.pgm').height(-10.698, -144.091) kind 3: -1.829\n    test 1026 GeoidKarney('egm2008-1.pgm').height(-29.412, 124.753) kind 3: -16.505  FAILED, KNOWN, expected -16.506\n    test 1027 GeoidKarney('egm2008-1.pgm').height(38.224, -137.189) kind 3: -35.384\n    test 1028 GeoidKarney('egm2008-1.pgm').height(36.064, -132.409) kind 3: -38.962  FAILED, KNOWN, expected -38.963\n    test 1029 GeoidKarney('egm2008-1.pgm').height(29.975, 178.076) kind 3: -6.956\n    test 1030 GeoidKarney('egm2008-1.pgm').height(-21.346, 169.26) kind 3: 51.006  FAILED, KNOWN, expected 51.005\n    test 1031 GeoidKarney('egm2008-1.pgm').height(49.282, -152.934) kind 3: 1.193  FAILED, KNOWN, expected 1.192\n    test 1032 GeoidKarney('egm2008-1.pgm').height(16.349, -99.962) kind 3: -15.038\n    test 1033 GeoidKarney('egm2008-1.pgm').height(-14.293, -167.34) kind 3: 17.791\n    test 1034 GeoidKarney('egm2008-1.pgm').height(47.166, -38.523) kind 3: 44.653  FAILED, KNOWN, expected 44.652\n    test 1035 GeoidKarney('egm2008-1.pgm').height(-58.911, 114.347) kind 3: -17.972  FAILED, KNOWN, expected -17.971\n    test 1036 GeoidKarney('egm2008-1.pgm').height(-9.055, 111.294) kind 3: 11.630  FAILED, KNOWN, expected 11.631\n    test 1037 GeoidKarney('egm2008-1.pgm').height(18.391, 29.692) kind 3: 7.394\n    test 1038 GeoidKarney('egm2008-1.pgm').height(-15.074, 22.153) kind 3: 7.932\n    test 1039 GeoidKarney('egm2008-1.pgm').height(-4.235, 62.001) kind 3: -60.594  FAILED, KNOWN, expected -60.593\n    test 1040 GeoidKarney('egm2008-1.pgm').height(15.171, -86.583) kind 3: 4.384\n    test 1041 GeoidKarney('egm2008-1.pgm').height(79.254, 112.116) kind 3: 1.296  FAILED, KNOWN, expected 1.297\n    test 1042 GeoidKarney('egm2008-1.pgm').height(15.947, 156.093) kind 3: 30.852\n    test 1043 GeoidKarney('egm2008-1.pgm').height(68.371, -177.382) kind 3: 2.705  FAILED, KNOWN, expected 2.704\n    test 1044 GeoidKarney('egm2008-1.pgm').height(-41.931, -72.093) kind 3: 21.264\n    test 1045 GeoidKarney('egm2008-1.pgm').height(-1.193, -143.133) kind 3: 5.443\n    test 1046 GeoidKarney('egm2008-1.pgm').height(-37.006, 154.513) kind 3: 9.998\n    test 1047 GeoidKarney('egm2008-1.pgm').height(-22.148, 9.938) kind 3: 22.428\n    test 1048 GeoidKarney('egm2008-1.pgm').height(24.329, 109.044) kind 3: -23.155  FAILED, KNOWN, expected -23.154\n    test 1049 GeoidKarney('egm2008-1.pgm').height(-54.878, 114.691) kind 3: -17.662\n    test 1050 GeoidKarney('egm2008-1.pgm').height(45.601, -80.458) kind 3: -36.840  FAILED, KNOWN, expected -36.839\n    test 1051 GeoidKarney('egm2008-1.pgm').height(2.372, 58.974) kind 3: -61.220  FAILED, KNOWN, expected -61.221\n    test 1052 GeoidKarney('egm2008-1.pgm').height(15.937, 165.854) kind 3: 20.355\n    test 1053 GeoidKarney('egm2008-1.pgm').height(4.889, -24.213) kind 3: 13.147\n    test 1054 GeoidKarney('egm2008-1.pgm').height(-11.392, 179.558) kind 3: 41.073  FAILED, KNOWN, expected 41.072\n    test 1055 GeoidKarney('egm2008-1.pgm').height(58.246, 4.862) kind 3: 42.982\n    test 1056 GeoidKarney('egm2008-1.pgm').height(34.302, -109.109) kind 3: -22.997  FAILED, KNOWN, expected -22.998\n    test 1057 GeoidKarney('egm2008-1.pgm').height(-58.196, 117.306) kind 3: -20.662\n    test 1058 GeoidKarney('egm2008-1.pgm').height(44.5, 173.769) kind 3: -8.438\n    test 1059 GeoidKarney('egm2008-1.pgm').height(-28.863, -139.775) kind 3: -8.711  FAILED, KNOWN, expected -8.712\n    test 1060 GeoidKarney('egm2008-1.pgm').height(19.507, -96.099) kind 3: -12.653\n    test 1061 GeoidKarney('egm2008-1.pgm').height(-42.488, -73.907) kind 3: 17.166\n    test 1062 GeoidKarney('egm2008-1.pgm').height(46.138, -141.429) kind 3: -19.873  FAILED, KNOWN, expected -19.874\n    test 1063 GeoidKarney('egm2008-1.pgm').height(60.507, 93.743) kind 3: -31.124\n    test 1064 GeoidKarney('egm2008-1.pgm').height(26.219, -145.434) kind 3: -17.306  FAILED, KNOWN, expected -17.307\n    test 1065 GeoidKarney('egm2008-1.pgm').height(-28.687, 3.37) kind 3: 23.435  FAILED, KNOWN, expected 23.434\n    test 1066 GeoidKarney('egm2008-1.pgm').height(-15.008, 117.45) kind 3: 4.508\n    test 1067 GeoidKarney('egm2008-1.pgm').height(40.71, 144.095) kind 3: 11.550  FAILED, KNOWN, expected 11.549\n    test 1068 GeoidKarney('egm2008-1.pgm').height(20.823, -173.611) kind 3: 5.749  FAILED, KNOWN, expected 5.748\n    test 1069 GeoidKarney('egm2008-1.pgm').height(16.776, -3.009) kind 3: 28.788\n    test 1070 GeoidKarney('egm2008-1.pgm').height(41.0, -95.0) kind 3: -30.589\n    test 1071 GeoidKarney('egm2008-1.pgm').height(49.0, -120.5) kind 3: -15.273\n    test 1072 GeoidKarney('egm2008-1.pgm').height(49.0, -103.5) kind 3: -18.624\n    test 1073 GeoidKarney('egm2008-1.pgm').height(49.0, -86.5) kind 3: -37.872  FAILED, KNOWN, expected -37.873\n    test 1074 GeoidKarney('egm2008-1.pgm').height(49.0, -69.5) kind 3: -26.511\n    test 1075 GeoidKarney('egm2008-1.pgm').height(33.0, -120.5) kind 3: -39.600\n    test 1076 GeoidKarney('egm2008-1.pgm').height(33.0, -103.5) kind 3: -22.689\n    test 1077 GeoidKarney('egm2008-1.pgm').height(33.0, -86.5) kind 3: -30.067\n    test 1078 GeoidKarney('egm2008-1.pgm').height(33.0, -69.5) kind 3: -48.093\n\n    test 1079 GeoidKarney('egm2008-1.pgm').height() kind 3, hits 0, eps max (in 0 FAILED): 0.001323\n    test 1080 GeoidKarney('egm2008-1.pgm').height() kind 3, hits 0, eps mean (of 210 total): 0.000468\n    test 1081 GeoidKarney('egm2008-1.pgm').height() kind 3, hits 0, eps stdev (of 210 total): 0.000333\n    test 1082 GeoidKarney('egm2008-1.pgm').toStr: GeoidKarney('egm2008-1.pgm'): lowerleft(-90.0, -180.0, -30.15), upperright(90.0, 180.0, 14.898), center(0.0, 0.0, 17.226), highest(-8.4, 147.367, 85.839), lowest(4.7, 78.767, -106.911)\n\n    test 1083 closed: True\n    test 1084 copy(<type 'type'>): (<class 'pygeodesy.geoids.GeoidKarney'>, True)\n    test 1085 GeoidKarney.copy(): (<class 'pygeodesy.geoids.GeoidKarney'>, True)\n    test 1086 GeoidPGM('egm2008-1.pgm').height(-76.981, 34.17) kind 3: lli ('-76.981466, 34.17016'), H (False) or wrap (False): lli ('-76.981466, 34.17016'): outside on SE  FAILED, KNOWN, expected 12.636\n    test 1087 GeoidPGM('egm2008-1.pgm').height(79.695, 88.806) kind 3: lli ('79.695484, 88.805571'), H (False) or wrap (False): lli ('79.695484, 88.805571'): outside on NE  FAILED, KNOWN, expected 0.749\n    test 1088 GeoidPGM('egm2008-1.pgm').height(-15.245, 168.748) kind 3: lli ('-15.244804, 168.747961'), H (False) or wrap (False): lli ('-15.244804, 168.747961'): outside on SE  FAILED, KNOWN, expected 65.109\n    test 1089 GeoidPGM('egm2008-1.pgm').height(-19.379, 15.855) kind 3: lli ('-19.379357, 15.85511'), H (False) or wrap (False): lli ('-19.379357, 15.85511'): outside on SE  FAILED, KNOWN, expected 24.889\n    test 1090 GeoidPGM('egm2008-1.pgm').height(43.378, -130.552) kind 3: lli ('43.377784, -130.551582'), H (False) or wrap (False): lli ('43.377784, -130.551582'): outside on W  FAILED, KNOWN, expected -29.557\n    test 1091 GeoidPGM('egm2008-1.pgm').height(-16.075, 21.795) kind 3: lli ('-16.074554, 21.79547'), H (False) or wrap (False): lli ('-16.074554, 21.79547'): outside on SE  FAILED, KNOWN, expected 9.742\n    test 1092 GeoidPGM('egm2008-1.pgm').height(-11.256, -73.75) kind 3: lli ('-11.256389, -73.750255'), H (False) or wrap (False): lli ('-11.256389, -73.750255'): outside on S  FAILED, KNOWN, expected 30.059\n    test 1093 GeoidPGM('egm2008-1.pgm').height(69.017, -15.921) kind 3: lli ('69.016564, -15.921115'), H (False) or wrap (False): lli ('69.016564, -15.921115'): outside on NE  FAILED, KNOWN, expected 60.690\n    test 1094 GeoidPGM('egm2008-1.pgm').height(2.221, 139.739) kind 3: lli ('2.221008, 139.73935'), H (False) or wrap (False): lli ('2.221008, 139.73935'): outside on SE  FAILED, KNOWN, expected 69.133\n    test 1095 GeoidPGM('egm2008-1.pgm').height(-9.097, 119.142) kind 3: lli ('-9.096878, 119.141551'), H (False) or wrap (False): lli ('-9.096878, 119.141551'): outside on SE  FAILED, KNOWN, expected 36.520\n    test 1096 GeoidPGM('egm2008-1.pgm').height(-28.524, -22.192) kind 3: lli ('-28.523717, -22.1925'), H (False) or wrap (False): lli ('-28.523717, -22.1925'): outside on SE  FAILED, KNOWN, expected 6.801\n    test 1097 GeoidPGM('egm2008-1.pgm').height(12.272, -136.424) kind 3: lli ('12.27231, -136.424168'), H (False) or wrap (False): lli ('12.27231, -136.424168'): outside on SW  FAILED, KNOWN, expected -20.651\n    test 1098 GeoidPGM('egm2008-1.pgm').height(-15.203, -85.604) kind 3: lli ('-15.20317, -85.603753'), H (False) or wrap (False): lli ('-15.20317, -85.603753'): outside on S  FAILED, KNOWN, expected -3.040\n    test 1099 GeoidPGM('egm2008-1.pgm').height(-63.736, -77.17) kind 3: lli ('-63.735565, -77.169636'), H (False) or wrap (False): lli ('-63.735565, -77.169636'): outside on S  FAILED, KNOWN, expected -1.328\n    test 1100 GeoidPGM('egm2008-1.pgm').height(-48.771, -90.102) kind 3: lli ('-48.770825, -90.102117'), H (False) or wrap (False): lli ('-48.770825, -90.102117'): outside on S  FAILED, KNOWN, expected -2.172\n    test 1101 GeoidPGM('egm2008-1.pgm').height(-0.179, -126.368) kind 3: lli ('-0.178524, -126.368279'), H (False) or wrap (False): lli ('-0.178524, -126.368279'): outside on SW  FAILED, KNOWN, expected -17.411\n    test 1102 GeoidPGM('egm2008-1.pgm').height(1.586, -128.887) kind 3: lli ('1.585536, -128.886967'), H (False) or wrap (False): lli ('1.585536, -128.886967'): outside on SW  FAILED, KNOWN, expected -16.425\n    test 1103 GeoidPGM('egm2008-1.pgm').height(-48.781, -2.684) kind 3: lli ('-48.780705, -2.684224'), H (False) or wrap (False): lli ('-48.780705, -2.684224'): outside on SE  FAILED, KNOWN, expected 24.698\n    test 1104 GeoidPGM('egm2008-1.pgm').height(-49.092, 136.862) kind 3: lli ('-49.091632, 136.862256'), H (False) or wrap (False): lli ('-49.091632, 136.862256'): outside on SE  FAILED, KNOWN, expected -18.329\n    test 1105 GeoidPGM('egm2008-1.pgm').height(47.732, 17.552) kind 3: lli ('47.731727, 17.552416'), H (False) or wrap (False): lli ('47.731727, 17.552416'): outside on E  FAILED, KNOWN, expected 43.802\n    test 1106 GeoidPGM('egm2008-1.pgm').height(-49.11, 85.706) kind 3: lli ('-49.109549, 85.706437'), H (False) or wrap (False): lli ('-49.109549, 85.706437'): outside on SE  FAILED, KNOWN, expected 18.716\n    test 1107 GeoidPGM('egm2008-1.pgm').height(-49.162, 40.321) kind 3: lli ('-49.162281, 40.321209'), H (False) or wrap (False): lli ('-49.162281, 40.321209'): outside on SE  FAILED, KNOWN, expected 44.469\n    test 1108 GeoidPGM('egm2008-1.pgm').height(3.498, 158.118) kind 3: lli ('3.498333, 158.117699'), H (False) or wrap (False): lli ('3.498333, 158.117699'): outside on SE  FAILED, KNOWN, expected 49.944\n    test 1109 GeoidPGM('egm2008-1.pgm').height(-35.616, 122.648) kind 3: lli ('-35.616495, 122.648407'), H (False) or wrap (False): lli ('-35.616495, 122.648407'): outside on SE  FAILED, KNOWN, expected -35.878\n    test 1110 GeoidPGM('egm2008-1.pgm').height(56.598, -96.114) kind 3: lli ('56.598256, -96.113696'), H (False) or wrap (False): lli ('56.598256, -96.113696'): outside on N  FAILED, KNOWN, expected -40.777\n    test 1111 GeoidPGM('egm2008-1.pgm').height(-31.85, 149.121) kind 3: lli ('-31.850231, 149.120596'), H (False) or wrap (False): lli ('-31.850231, 149.120596'): outside on SE  FAILED, KNOWN, expected 26.559\n    test 1112 GeoidPGM('egm2008-1.pgm').height(-26.569, -177.792) kind 3: lli ('-26.568996, -177.792196'), H (False) or wrap (False): lli ('-26.568996, -177.792196'): outside on SW  FAILED, KNOWN, expected 49.361\n    test 1113 GeoidPGM('egm2008-1.pgm').height(76.735, -65.753) kind 3: lli ('76.734699, -65.752952'), H (False) or wrap (False): lli ('76.734699, -65.752952'): outside on N  FAILED, KNOWN, expected 21.107\n    test 1114 GeoidPGM('egm2008-1.pgm').height(-21.404, -122.268) kind 3: lli ('-21.404166, -122.267869'), H (False) or wrap (False): lli ('-21.404166, -122.267869'): outside on S  FAILED, KNOWN, expected -7.202\n    test 1115 GeoidPGM('egm2008-1.pgm').height(-77.133, -65.474) kind 3: lli ('-77.133426, -65.473819'), H (False) or wrap (False): lli ('-77.133426, -65.473819'): outside on S  FAILED, KNOWN, expected -17.168\n    test 1116 GeoidPGM('egm2008-1.pgm').height(-58.812, 2.276) kind 3: lli ('-58.811779, 2.276142'), H (False) or wrap (False): lli ('-58.811779, 2.276142'): outside on SE  FAILED, KNOWN, expected 18.359\n    test 1117 GeoidPGM('egm2008-1.pgm').height(4.415, 155.683) kind 3: lli ('4.415102, 155.683336'), H (False) or wrap (False): lli ('4.415102, 155.683336'): outside on SE  FAILED, KNOWN, expected 52.118\n    test 1118 GeoidPGM('egm2008-1.pgm').height(-28.146, 107.081) kind 3: lli ('-28.145768, 107.081334'), H (False) or wrap (False): lli ('-28.145768, 107.081334'): outside on SE  FAILED, KNOWN, expected -38.950\n    test 1119 GeoidPGM('egm2008-1.pgm').height(-10.551, -126.69) kind 3: lli ('-10.551267, -126.690468'), H (False) or wrap (False): lli ('-10.551267, -126.690468'): outside on SW  FAILED, KNOWN, expected -9.934\n    test 1120 GeoidPGM('egm2008-1.pgm').height(-25.444, -103.337) kind 3: lli ('-25.444344, -103.337184'), H (False) or wrap (False): lli ('-25.444344, -103.337184'): outside on S  FAILED, KNOWN, expected -2.879\n    test 1121 GeoidPGM('egm2008-1.pgm').height(24.436, 46.159) kind 3: lli ('24.435896, 46.158715'), H (False) or wrap (False): lli ('24.435896, 46.158715'): outside on SE  FAILED, KNOWN, expected -5.025\n    test 1122 GeoidPGM('egm2008-1.pgm').height(-72.889, 37.107) kind 3: lli ('-72.888898, 37.106907'), H (False) or wrap (False): lli ('-72.888898, 37.106907'): outside on SE  FAILED, KNOWN, expected 24.296\n    test 1123 GeoidPGM('egm2008-1.pgm').height(-19.629, 13.245) kind 3: lli ('-19.628762, 13.244525'), H (False) or wrap (False): lli ('-19.628762, 13.244525'): outside on SE  FAILED, KNOWN, expected 25.131\n    test 1124 GeoidPGM('egm2008-1.pgm').height(-7.602, 171.265) kind 3: lli ('-7.602449, 171.264763'), H (False) or wrap (False): lli ('-7.602449, 171.264763'): outside on SE  FAILED, KNOWN, expected 40.721\n    test 1125 GeoidPGM('egm2008-1.pgm').height(-45.364, -1.876) kind 3: lli ('-45.364396, -1.876412'), H (False) or wrap (False): lli ('-45.364396, -1.876412'): outside on SE  FAILED, KNOWN, expected 22.388\n    test 1126 GeoidPGM('egm2008-1.pgm').height(-7.292, -69.18) kind 3: lli ('-7.292121, -69.179565'), H (False) or wrap (False): lli ('-7.292121, -69.179565'): outside on S  FAILED, KNOWN, expected 22.486\n    test 1127 GeoidPGM('egm2008-1.pgm').height(-31.566, -166.689) kind 3: lli ('-31.566264, -166.688985'), H (False) or wrap (False): lli ('-31.566264, -166.688985'): outside on SW  FAILED, KNOWN, expected 14.943\n    test 1128 GeoidPGM('egm2008-1.pgm').height(-82.751, -162.085) kind 3: lli ('-82.751144, -162.08523'), H (False) or wrap (False): lli ('-82.751144, -162.08523'): outside on SW  FAILED, KNOWN, expected -47.387\n    test 1129 GeoidPGM('egm2008-1.pgm').height(-40.7, 99.466) kind 3: lli ('-40.699637, 99.465509'), H (False) or wrap (False): lli ('-40.699637, 99.465509'): outside on SE  FAILED, KNOWN, expected -18.403\n    test 1130 GeoidPGM('egm2008-1.pgm').height(48.676, 39.69) kind 3: lli ('48.675771, 39.690012'), H (False) or wrap (False): lli ('48.675771, 39.690012'): outside on E  FAILED, KNOWN, expected 10.185\n    test 1131 GeoidPGM('egm2008-1.pgm').height(74.817, -78.404) kind 3: lli ('74.817287, -78.404187'), H (False) or wrap (False): lli ('74.817287, -78.404187'): outside on N  FAILED, KNOWN, expected 5.671\n    test 1132 GeoidPGM('egm2008-1.pgm').height(-81.032, -63.865) kind 3: lli ('-81.032306, -63.864898'), H (False) or wrap (False): lli ('-81.032306, -63.864898'): outside on SE  FAILED, KNOWN, expected -24.577\n    test 1133 GeoidPGM('egm2008-1.pgm').height(74.022, 9.432) kind 3: lli ('74.021785, 9.431926'), H (False) or wrap (False): lli ('74.021785, 9.431926'): outside on NE  FAILED, KNOWN, expected 43.288\n    test 1134 GeoidPGM('egm2008-1.pgm').height(-75.071, 17.579) kind 3: lli ('-75.070563, 17.57935'), H (False) or wrap (False): lli ('-75.070563, 17.57935'): outside on SE  FAILED, KNOWN, expected 13.748\n    test 1135 GeoidPGM('egm2008-1.pgm').height(-12.546, -54.851) kind 3: lli ('-12.54612, -54.850614'), H (False) or wrap (False): lli ('-12.54612, -54.850614'): outside on SE  FAILED, KNOWN, expected -5.342\n    test 1136 GeoidPGM('egm2008-1.pgm').height(-13.621, 42.408) kind 3: lli ('-13.621418, 42.407805'), H (False) or wrap (False): lli ('-13.621418, 42.407805'): outside on SE  FAILED, KNOWN, expected -25.579\n    test 1137 GeoidPGM('egm2008-1.pgm').height(-2.266, -91.951) kind 3: lli ('-2.265774, -91.951437'), H (False) or wrap (False): lli ('-2.265774, -91.951437'): outside on S  FAILED, KNOWN, expected -9.849\n    test 1138 GeoidPGM('egm2008-1.pgm').height(-18.672, 42.547) kind 3: lli ('-18.672316, 42.547125'), H (False) or wrap (False): lli ('-18.672316, 42.547125'): outside on SE  FAILED, KNOWN, expected -10.491\n    test 1139 GeoidPGM('egm2008-1.pgm').height(-41.44, 157.413) kind 3: lli ('-41.439867, 157.413161'), H (False) or wrap (False): lli ('-41.439867, 157.413161'): outside on SE  FAILED, KNOWN, expected 0.244\n    test 1140 GeoidPGM('egm2008-1.pgm').height(53.686, -79.375) kind 3: -43.820  FAILED, KNOWN, expected -43.821\n    test 1141 GeoidPGM('egm2008-1.pgm').height(39.26, -30.351) kind 3: lli ('39.260397, -30.351359'), H (False) or wrap (False): lli ('39.260397, -30.351359'): outside on E  FAILED, KNOWN, expected 57.401\n    test 1142 GeoidPGM('egm2008-1.pgm').height(-51.699, -141.493) kind 3: lli ('-51.699195, -141.493082'), H (False) or wrap (False): lli ('-51.699195, -141.493082'): outside on SW  FAILED, KNOWN, expected -17.890\n    test 1143 GeoidPGM('egm2008-1.pgm').height(36.585, 4.515) kind 3: lli ('36.584861, 4.515157'), H (False) or wrap (False): lli ('36.584861, 4.515157'): outside on E  FAILED, KNOWN, expected 46.421\n    test 1144 GeoidPGM('egm2008-1.pgm').height(39.642, -54.659) kind 3: lli ('39.641638, -54.658846'), H (False) or wrap (False): lli ('39.641638, -54.658846'): outside on E  FAILED, KNOWN, expected -14.475\n    test 1145 GeoidPGM('egm2008-1.pgm').height(59.761, 166.567) kind 3: lli ('59.761024, 166.566646'), H (False) or wrap (False): lli ('59.761024, 166.566646'): outside on NE  FAILED, KNOWN, expected 11.118\n    test 1146 GeoidPGM('egm2008-1.pgm').height(51.83, 13.357) kind 3: lli ('51.830001, 13.357464'), H (False) or wrap (False): lli ('51.830001, 13.357464'): outside on E  FAILED, KNOWN, expected 42.291\n    test 1147 GeoidPGM('egm2008-1.pgm').height(-36.531, -175.431) kind 3: lli ('-36.530912, -175.430804'), H (False) or wrap (False): lli ('-36.530912, -175.430804'): outside on SW  FAILED, KNOWN, expected 22.326\n    test 1148 GeoidPGM('egm2008-1.pgm').height(-37.08, 125.264) kind 3: lli ('-37.079518, 125.263901'), H (False) or wrap (False): lli ('-37.079518, 125.263901'): outside on SE  FAILED, KNOWN, expected -33.098\n    test 1149 GeoidPGM('egm2008-1.pgm').height(-68.651, 92.732) kind 3: lli ('-68.650762, 92.731524'), H (False) or wrap (False): lli ('-68.650762, 92.731524'): outside on SE  FAILED, KNOWN, expected 9.430\n    test 1150 GeoidPGM('egm2008-1.pgm').height(35.087, 45.336) kind 3: lli ('35.086645, 45.335611'), H (False) or wrap (False): lli ('35.086645, 45.335611'): outside on E  FAILED, KNOWN, expected 6.032\n    test 1151 GeoidPGM('egm2008-1.pgm').height(-61.356, -169.379) kind 3: lli ('-61.355646, -169.378929'), H (False) or wrap (False): lli ('-61.355646, -169.378929'): outside on SW  FAILED, KNOWN, expected -44.330\n    test 1152 GeoidPGM('egm2008-1.pgm').height(-36.955, 179.12) kind 3: lli ('-36.954967, 179.11982'), H (False) or wrap (False): lli ('-36.954967, 179.11982'): outside on SE  FAILED, KNOWN, expected 21.775\n    test 1153 GeoidPGM('egm2008-1.pgm').height(10.248, -6.714) kind 3: lli ('10.248399, -6.713559'), H (False) or wrap (False): lli ('10.248399, -6.713559'): outside on SE  FAILED, KNOWN, expected 29.243\n    test 1154 GeoidPGM('egm2008-1.pgm').height(36.868, 84.602) kind 3: lli ('36.868193, 84.602243'), H (False) or wrap (False): lli ('36.868193, 84.602243'): outside on E  FAILED, KNOWN, expected -40.676\n    test 1155 GeoidPGM('egm2008-1.pgm').height(28.637, 88.933) kind 3: lli ('28.636703, 88.932955'), H (False) or wrap (False): lli ('28.636703, 88.932955'): outside on E  FAILED, KNOWN, expected -31.353\n    test 1156 GeoidPGM('egm2008-1.pgm').height(54.811, -99.968) kind 3: -32.700  FAILED, KNOWN, expected -32.701\n    test 1157 GeoidPGM('egm2008-1.pgm').height(7.611, 145.911) kind 3: lli ('7.610621, 145.911188'), H (False) or wrap (False): lli ('7.610621, 145.911188'): outside on SE  FAILED, KNOWN, expected 60.629\n    test 1158 GeoidPGM('egm2008-1.pgm').height(59.412, 170.102) kind 3: lli ('59.411557, 170.102394'), H (False) or wrap (False): lli ('59.411557, 170.102394'): outside on NE  FAILED, KNOWN, expected 6.617\n    test 1159 GeoidPGM('egm2008-1.pgm').height(-61.469, 126.144) kind 3: lli ('-61.468618, 126.144056'), H (False) or wrap (False): lli ('-61.468618, 126.144056'): outside on SE  FAILED, KNOWN, expected -31.887\n    test 1160 GeoidPGM('egm2008-1.pgm').height(18.514, -137.083) kind 3: lli ('18.514019, -137.083301'), H (False) or wrap (False): lli ('18.514019, -137.083301'): outside on SW  FAILED, KNOWN, expected -26.535\n    test 1161 GeoidPGM('egm2008-1.pgm').height(7.854, -126.799) kind 3: lli ('7.854318, -126.799148'), H (False) or wrap (False): lli ('7.854318, -126.799148'): outside on SW  FAILED, KNOWN, expected -29.630\n    test 1162 GeoidPGM('egm2008-1.pgm').height(47.489, 134.183) kind 3: lli ('47.489222, 134.182527'), H (False) or wrap (False): lli ('47.489222, 134.182527'): outside on E  FAILED, KNOWN, expected 22.275\n    test 1163 GeoidPGM('egm2008-1.pgm').height(-34.144, -11.922) kind 3: lli ('-34.143602, -11.921567'), H (False) or wrap (False): lli ('-34.143602, -11.921567'): outside on SE  FAILED, KNOWN, expected 17.094\n    test 1164 GeoidPGM('egm2008-1.pgm').height(-58.389, 117.458) kind 3: lli ('-58.388787, 117.457755'), H (False) or wrap (False): lli ('-58.388787, 117.457755'): outside on SE  FAILED, KNOWN, expected -20.941\n    test 1165 GeoidPGM('egm2008-1.pgm').height(9.773, 95.846) kind 3: lli ('9.772764, 95.845943'), H (False) or wrap (False): lli ('9.772764, 95.845943'): outside on SE  FAILED, KNOWN, expected -42.740\n    test 1166 GeoidPGM('egm2008-1.pgm').height(-53.12, 136.994) kind 3: lli ('-53.120381, 136.993994'), H (False) or wrap (False): lli ('-53.120381, 136.993994'): outside on SE  FAILED, KNOWN, expected -21.651\n    test 1167 GeoidPGM('egm2008-1.pgm').height(-50.35, 0.075) kind 3: lli ('-50.349867, 0.07532'), H (False) or wrap (False): lli ('-50.349867, 0.07532'): outside on SE  FAILED, KNOWN, expected 25.240\n    test 1168 GeoidPGM('egm2008-1.pgm').height(31.438, -170.879) kind 3: lli ('31.438387, -170.878548'), H (False) or wrap (False): lli ('31.438387, -170.878548'): outside on W  FAILED, KNOWN, expected -8.758\n    test 1169 GeoidPGM('egm2008-1.pgm').height(37.541, -153.024) kind 3: lli ('37.540689, -153.024228'), H (False) or wrap (False): lli ('37.540689, -153.024228'): outside on W  FAILED, KNOWN, expected -19.607\n    test 1170 GeoidPGM('egm2008-1.pgm').height(27.586, 2.444) kind 3: lli ('27.586088, 2.443556'), H (False) or wrap (False): lli ('27.586088, 2.443556'): outside on E  FAILED, KNOWN, expected 26.258\n    test 1171 GeoidPGM('egm2008-1.pgm').height(-26.139, -106.201) kind 3: lli ('-26.139126, -106.20081'), H (False) or wrap (False): lli ('-26.139126, -106.20081'): outside on S  FAILED, KNOWN, expected -3.824\n    test 1172 GeoidPGM('egm2008-1.pgm').height(-33.426, -14.84) kind 3: lli ('-33.425976, -14.840359'), H (False) or wrap (False): lli ('-33.425976, -14.840359'): outside on SE  FAILED, KNOWN, expected 18.195\n    test 1173 GeoidPGM('egm2008-1.pgm').height(39.586, -153.019) kind 3: lli ('39.586286, -153.018974'), H (False) or wrap (False): lli ('39.586286, -153.018974'): outside on W  FAILED, KNOWN, expected -17.725\n    test 1174 GeoidPGM('egm2008-1.pgm').height(-60.79, -2.578) kind 3: lli ('-60.790289, -2.578163'), H (False) or wrap (False): lli ('-60.790289, -2.578163'): outside on SE  FAILED, KNOWN, expected 14.513\n    test 1175 GeoidPGM('egm2008-1.pgm').height(-20.131, 21.975) kind 3: lli ('-20.130538, 21.974941'), H (False) or wrap (False): lli ('-20.130538, 21.974941'): outside on SE  FAILED, KNOWN, expected 16.809\n    test 1176 GeoidPGM('egm2008-1.pgm').height(75.649, 99.921) kind 3: lli ('75.64878, 99.920587'), H (False) or wrap (False): lli ('75.64878, 99.920587'): outside on NE  FAILED, KNOWN, expected -8.026\n    test 1177 GeoidPGM('egm2008-1.pgm').height(-0.385, -23.788) kind 3: lli ('-0.385453, -23.788336'), H (False) or wrap (False): lli ('-0.385453, -23.788336'): outside on SE  FAILED, KNOWN, expected 9.688\n    test 1178 GeoidPGM('egm2008-1.pgm').height(-51.56, -50.327) kind 3: lli ('-51.559564, -50.32687'), H (False) or wrap (False): lli ('-51.559564, -50.32687'): outside on SE  FAILED, KNOWN, expected 6.218\n    test 1179 GeoidPGM('egm2008-1.pgm').height(-43.129, -167.271) kind 3: lli ('-43.129209, -167.27147'), H (False) or wrap (False): lli ('-43.129209, -167.27147'): outside on SW  FAILED, KNOWN, expected -2.724\n    test 1180 GeoidPGM('egm2008-1.pgm').height(46.374, 71.948) kind 3: lli ('46.374177, 71.947616'), H (False) or wrap (False): lli ('46.374177, 71.947616'): outside on E  FAILED, KNOWN, expected -42.565\n    test 1181 GeoidPGM('egm2008-1.pgm').height(-22.783, 140.657) kind 3: lli ('-22.783085, 140.657444'), H (False) or wrap (False): lli ('-22.783085, 140.657444'): outside on SE  FAILED, KNOWN, expected 38.341\n    test 1182 GeoidPGM('egm2008-1.pgm').height(-12.056, 122.804) kind 3: lli ('-12.05584, 122.80402'), H (False) or wrap (False): lli ('-12.05584, 122.80402'): outside on SE  FAILED, KNOWN, expected 33.889\n    test 1183 GeoidPGM('egm2008-1.pgm').height(30.127, 94.738) kind 3: lli ('30.127372, 94.738186'), H (False) or wrap (False): lli ('30.127372, 94.738186'): outside on E  FAILED, KNOWN, expected -37.380\n    test 1184 GeoidPGM('egm2008-1.pgm').height(46.296, -174.479) kind 3: lli ('46.296018, -174.478616'), H (False) or wrap (False): lli ('46.296018, -174.478616'): outside on W  FAILED, KNOWN, expected -1.858\n    test 1185 GeoidPGM('egm2008-1.pgm').height(34.99, 15.052) kind 3: lli ('34.989646, 15.051646'), H (False) or wrap (False): lli ('34.989646, 15.051646'): outside on E  FAILED, KNOWN, expected 34.195\n    test 1186 GeoidPGM('egm2008-1.pgm').height(-51.287, 90.565) kind 3: lli ('-51.287168, 90.564711'), H (False) or wrap (False): lli ('-51.287168, 90.564711'): outside on SE  FAILED, KNOWN, expected 12.767\n    test 1187 GeoidPGM('egm2008-1.pgm').height(34.217, 141.302) kind 3: lli ('34.217016, 141.301548'), H (False) or wrap (False): lli ('34.217016, 141.301548'): outside on E  FAILED, KNOWN, expected 15.612\n    test 1188 GeoidPGM('egm2008-1.pgm').height(-40.423, -142.787) kind 3: lli ('-40.423023, -142.786592'), H (False) or wrap (False): lli ('-40.423023, -142.786592'): outside on SW  FAILED, KNOWN, expected -11.063\n    test 1189 GeoidPGM('egm2008-1.pgm').height(-17.854, -170.216) kind 3: lli ('-17.854486, -170.216354'), H (False) or wrap (False): lli ('-17.854486, -170.216354'): outside on SW  FAILED, KNOWN, expected 27.387\n    test 1190 GeoidPGM('egm2008-1.pgm').height(47.803, 112.701) kind 3: lli ('47.803271, 112.700942'), H (False) or wrap (False): lli ('47.803271, 112.700942'): outside on E  FAILED, KNOWN, expected -23.817\n    test 1191 GeoidPGM('egm2008-1.pgm').height(-23.276, 133.454) kind 3: lli ('-23.275962, 133.453821'), H (False) or wrap (False): lli ('-23.275962, 133.453821'): outside on SE  FAILED, KNOWN, expected 18.712\n    test 1192 GeoidPGM('egm2008-1.pgm').height(-26.884, -36.571) kind 3: lli ('-26.884369, -36.570654'), H (False) or wrap (False): lli ('-26.884369, -36.570654'): outside on SE  FAILED, KNOWN, expected -7.344\n    test 1193 GeoidPGM('egm2008-1.pgm').height(-37.106, 31.128) kind 3: lli ('-37.106468, 31.127939'), H (False) or wrap (False): lli ('-37.106468, 31.127939'): outside on SE  FAILED, KNOWN, expected 29.998\n    test 1194 GeoidPGM('egm2008-1.pgm').height(-75.363, -173.674) kind 3: lli ('-75.363185, -173.673649'), H (False) or wrap (False): lli ('-75.363185, -173.673649'): outside on SW  FAILED, KNOWN, expected -61.869\n    test 1195 GeoidPGM('egm2008-1.pgm').height(-18.305, 69.016) kind 3: lli ('-18.30485, 69.015565'), H (False) or wrap (False): lli ('-18.30485, 69.015565'): outside on SE  FAILED, KNOWN, expected -24.937\n    test 1196 GeoidPGM('egm2008-1.pgm').height(39.527, 23.58) kind 3: lli ('39.527401, 23.580206'), H (False) or wrap (False): lli ('39.527401, 23.580206'): outside on E  FAILED, KNOWN, expected 38.556\n    test 1197 GeoidPGM('egm2008-1.pgm').height(68.903, 30.97) kind 3: lli ('68.903148, 30.970247'), H (False) or wrap (False): lli ('68.903148, 30.970247'): outside on NE  FAILED, KNOWN, expected 19.671\n    test 1198 GeoidPGM('egm2008-1.pgm').height(53.937, 168.318) kind 3: lli ('53.936937, 168.318201'), H (False) or wrap (False): lli ('53.936937, 168.318201'): outside on E  FAILED, KNOWN, expected 2.272\n    test 1199 GeoidPGM('egm2008-1.pgm').height(-38.6, 64.812) kind 3: lli ('-38.600098, 64.811532'), H (False) or wrap (False): lli ('-38.600098, 64.811532'): outside on SE  FAILED, KNOWN, expected 24.863\n    test 1200 GeoidPGM('egm2008-1.pgm').height(-41.396, -69.739) kind 3: lli ('-41.395739, -69.739418'), H (False) or wrap (False): lli ('-41.395739, -69.739418'): outside on S  FAILED, KNOWN, expected 21.636\n    test 1201 GeoidPGM('egm2008-1.pgm').height(50.158, 72.319) kind 3: lli ('50.157749, 72.319017'), H (False) or wrap (False): lli ('50.157749, 72.319017'): outside on E  FAILED, KNOWN, expected -33.851\n    test 1202 GeoidPGM('egm2008-1.pgm').height(27.692, 176.153) kind 3: lli ('27.691879, 176.152884'), H (False) or wrap (False): lli ('27.691879, 176.152884'): outside on E  FAILED, KNOWN, expected -5.299\n    test 1203 GeoidPGM('egm2008-1.pgm').height(-48.419, 170.454) kind 3: lli ('-48.419449, 170.454472'), H (False) or wrap (False): lli ('-48.419449, 170.454472'): outside on SE  FAILED, KNOWN, expected -6.789\n    test 1204 GeoidPGM('egm2008-1.pgm').height(-65.346, -124.976) kind 3: lli ('-65.34567, -124.975961'), H (False) or wrap (False): lli ('-65.34567, -124.975961'): outside on S  FAILED, KNOWN, expected -35.030\n    test 1205 GeoidPGM('egm2008-1.pgm').height(-51.873, 167.266) kind 3: lli ('-51.873009, 167.265613'), H (False) or wrap (False): lli ('-51.873009, 167.265613'): outside on SE  FAILED, KNOWN, expected -15.338\n    test 1206 GeoidPGM('egm2008-1.pgm').height(-7.263, 84.308) kind 3: lli ('-7.262544, 84.307626'), H (False) or wrap (False): lli ('-7.262544, 84.307626'): outside on SE  FAILED, KNOWN, expected -79.356\n    test 1207 GeoidPGM('egm2008-1.pgm').height(-1.461, -105.458) kind 3: lli ('-1.461003, -105.458323'), H (False) or wrap (False): lli ('-1.461003, -105.458323'): outside on S  FAILED, KNOWN, expected -16.650\n    test 1208 GeoidPGM('egm2008-1.pgm').height(7.684, 161.873) kind 3: lli ('7.684324, 161.87293'), H (False) or wrap (False): lli ('7.684324, 161.87293'): outside on SE  FAILED, KNOWN, expected 36.359\n    test 1209 GeoidPGM('egm2008-1.pgm').height(-31.475, -158.52) kind 3: lli ('-31.474549, -158.520033'), H (False) or wrap (False): lli ('-31.474549, -158.520033'): outside on SW  FAILED, KNOWN, expected 3.615\n    test 1210 GeoidPGM('egm2008-1.pgm').height(-36.187, 62.917) kind 3: lli ('-36.187212, 62.917075'), H (False) or wrap (False): lli ('-36.187212, 62.917075'): outside on SE  FAILED, KNOWN, expected 23.947\n    test 1211 GeoidPGM('egm2008-1.pgm').height(16.003, 141.687) kind 3: lli ('16.002975, 141.686552'), H (False) or wrap (False): lli ('16.002975, 141.686552'): outside on SE  FAILED, KNOWN, expected 51.495\n    test 1212 GeoidPGM('egm2008-1.pgm').height(30.182, 86.261) kind 3: lli ('30.182218, 86.260576'), H (False) or wrap (False): lli ('30.182218, 86.260576'): outside on E  FAILED, KNOWN, expected -30.910\n    test 1213 GeoidPGM('egm2008-1.pgm').height(-77.304, 159.498) kind 3: lli ('-77.303842, 159.497665'), H (False) or wrap (False): lli ('-77.303842, 159.497665'): outside on SE  FAILED, KNOWN, expected -52.131\n    test 1214 GeoidPGM('egm2008-1.pgm').height(39.536, 139.795) kind 3: lli ('39.536, 139.795358'), H (False) or wrap (False): lli ('39.536, 139.795358'): outside on E  FAILED, KNOWN, expected 37.045\n    test 1215 GeoidPGM('egm2008-1.pgm').height(8.569, 134.618) kind 3: lli ('8.569309, 134.618403'), H (False) or wrap (False): lli ('8.569309, 134.618403'): outside on SE  FAILED, KNOWN, expected 64.180\n    test 1216 GeoidPGM('egm2008-1.pgm').height(14.473, 90.596) kind 3: lli ('14.473483, 90.595663'), H (False) or wrap (False): lli ('14.473483, 90.595663'): outside on SE  FAILED, KNOWN, expected -62.475\n    test 1217 GeoidPGM('egm2008-1.pgm').height(-13.138, -99.589) kind 3: lli ('-13.13767, -99.589202'), H (False) or wrap (False): lli ('-13.13767, -99.589202'): outside on S  FAILED, KNOWN, expected -8.454\n    test 1218 GeoidPGM('egm2008-1.pgm').height(34.212, -26.307) kind 3: lli ('34.211572, -26.307194'), H (False) or wrap (False): lli ('34.211572, -26.307194'): outside on E  FAILED, KNOWN, expected 40.834\n    test 1219 GeoidPGM('egm2008-1.pgm').height(21.89, 76.371) kind 3: lli ('21.889732, 76.371362'), H (False) or wrap (False): lli ('21.889732, 76.371362'): outside on SE  FAILED, KNOWN, expected -60.455\n    test 1220 GeoidPGM('egm2008-1.pgm').height(29.793, 120.487) kind 3: lli ('29.792909, 120.48703'), H (False) or wrap (False): lli ('29.792909, 120.48703'): outside on E  FAILED, KNOWN, expected 9.727\n    test 1221 GeoidPGM('egm2008-1.pgm').height(15.724, 122.714) kind 3: lli ('15.723814, 122.713685'), H (False) or wrap (False): lli ('15.723814, 122.713685'): outside on SE  FAILED, KNOWN, expected 32.142\n    test 1222 GeoidPGM('egm2008-1.pgm').height(-66.208, -78.499) kind 3: lli ('-66.20776, -78.498807'), H (False) or wrap (False): lli ('-66.20776, -78.498807'): outside on S  FAILED, KNOWN, expected -6.220\n    test 1223 GeoidPGM('egm2008-1.pgm').height(-39.507, 55.809) kind 3: lli ('-39.507049, 55.808743'), H (False) or wrap (False): lli ('-39.507049, 55.808743'): outside on SE  FAILED, KNOWN, expected 32.489\n    test 1224 GeoidPGM('egm2008-1.pgm').height(28.159, 51.476) kind 3: lli ('28.159494, 51.476474'), H (False) or wrap (False): lli ('28.159494, 51.476474'): outside on E  FAILED, KNOWN, expected -24.692\n    test 1225 GeoidPGM('egm2008-1.pgm').height(-36.207, 120.205) kind 3: lli ('-36.206825, 120.205019'), H (False) or wrap (False): lli ('-36.206825, 120.205019'): outside on SE  FAILED, KNOWN, expected -38.749\n    test 1226 GeoidPGM('egm2008-1.pgm').height(30.575, -99.998) kind 3: -23.254  FAILED, KNOWN, expected -23.255\n    test 1227 GeoidPGM('egm2008-1.pgm').height(-16.993, 37.136) kind 3: lli ('-16.992515, 37.135881'), H (False) or wrap (False): lli ('-16.992515, 37.135881'): outside on SE  FAILED, KNOWN, expected -13.455\n    test 1228 GeoidPGM('egm2008-1.pgm').height(-11.477, 12.039) kind 3: lli ('-11.476997, 12.038708'), H (False) or wrap (False): lli ('-11.476997, 12.038708'): outside on SE  FAILED, KNOWN, expected 16.627\n    test 1229 GeoidPGM('egm2008-1.pgm').height(30.428, -144.765) kind 3: lli ('30.428465, -144.765049'), H (False) or wrap (False): lli ('30.428465, -144.765049'): outside on W  FAILED, KNOWN, expected -22.221\n    test 1230 GeoidPGM('egm2008-1.pgm').height(-17.44, -92.424) kind 3: lli ('-17.439773, -92.424339'), H (False) or wrap (False): lli ('-17.439773, -92.424339'): outside on S  FAILED, KNOWN, expected -4.836\n    test 1231 GeoidPGM('egm2008-1.pgm').height(40.203, 143.43) kind 3: lli ('40.203164, 143.429799'), H (False) or wrap (False): lli ('40.203164, 143.429799'): outside on E  FAILED, KNOWN, expected 19.571\n    test 1232 GeoidPGM('egm2008-1.pgm').height(-37.098, -106.574) kind 3: lli ('-37.098392, -106.573712'), H (False) or wrap (False): lli ('-37.098392, -106.573712'): outside on S  FAILED, KNOWN, expected -9.227\n    test 1233 GeoidPGM('egm2008-1.pgm').height(54.62, -68.413) kind 3: -23.248\n    test 1234 GeoidPGM('egm2008-1.pgm').height(-31.633, 148.182) kind 3: lli ('-31.633252, 148.181926'), H (False) or wrap (False): lli ('-31.633252, 148.181926'): outside on SE  FAILED, KNOWN, expected 24.829\n    test 1235 GeoidPGM('egm2008-1.pgm').height(-56.07, -141.407) kind 3: lli ('-56.069748, -141.406778'), H (False) or wrap (False): lli ('-56.069748, -141.406778'): outside on SW  FAILED, KNOWN, expected -21.705\n    test 1236 GeoidPGM('egm2008-1.pgm').height(-8.195, -52.691) kind 3: lli ('-8.195214, -52.691177'), H (False) or wrap (False): lli ('-8.195214, -52.691177'): outside on SE  FAILED, KNOWN, expected -17.053\n    test 1237 GeoidPGM('egm2008-1.pgm').height(17.851, 24.749) kind 3: lli ('17.850526, 24.748606'), H (False) or wrap (False): lli ('17.850526, 24.748606'): outside on SE  FAILED, KNOWN, expected 11.716\n    test 1238 GeoidPGM('egm2008-1.pgm').height(0.349, -108.333) kind 3: lli ('0.349465, -108.332667'), H (False) or wrap (False): lli ('0.349465, -108.332667'): outside on S  FAILED, KNOWN, expected -19.530\n    test 1239 GeoidPGM('egm2008-1.pgm').height(15.038, 126.191) kind 3: lli ('15.037932, 126.190545'), H (False) or wrap (False): lli ('15.037932, 126.190545'): outside on SE  FAILED, KNOWN, expected 45.929\n    test 1240 GeoidPGM('egm2008-1.pgm').height(-21.111, -123.696) kind 3: lli ('-21.111105, -123.695981'), H (False) or wrap (False): lli ('-21.111105, -123.695981'): outside on S  FAILED, KNOWN, expected -8.283\n    test 1241 GeoidPGM('egm2008-1.pgm').height(30.947, 173.002) kind 3: lli ('30.946618, 173.002137'), H (False) or wrap (False): lli ('30.946618, 173.002137'): outside on E  FAILED, KNOWN, expected -8.467\n    test 1242 GeoidPGM('egm2008-1.pgm').height(-10.698, -144.091) kind 3: lli ('-10.698334, -144.091109'), H (False) or wrap (False): lli ('-10.698334, -144.091109'): outside on SW  FAILED, KNOWN, expected -1.829\n    test 1243 GeoidPGM('egm2008-1.pgm').height(-29.412, 124.753) kind 3: lli ('-29.412071, 124.75279'), H (False) or wrap (False): lli ('-29.412071, 124.75279'): outside on SE  FAILED, KNOWN, expected -16.506\n    test 1244 GeoidPGM('egm2008-1.pgm').height(38.224, -137.189) kind 3: lli ('38.223621, -137.189376'), H (False) or wrap (False): lli ('38.223621, -137.189376'): outside on W  FAILED, KNOWN, expected -35.384\n    test 1245 GeoidPGM('egm2008-1.pgm').height(36.064, -132.409) kind 3: lli ('36.063775, -132.409284'), H (False) or wrap (False): lli ('36.063775, -132.409284'): outside on W  FAILED, KNOWN, expected -38.963\n    test 1246 GeoidPGM('egm2008-1.pgm').height(29.975, 178.076) kind 3: lli ('29.974676, 178.075894'), H (False) or wrap (False): lli ('29.974676, 178.075894'): outside on E  FAILED, KNOWN, expected -6.956\n    test 1247 GeoidPGM('egm2008-1.pgm').height(-21.346, 169.26) kind 3: lli ('-21.346396, 169.259508'), H (False) or wrap (False): lli ('-21.346396, 169.259508'): outside on SE  FAILED, KNOWN, expected 51.005\n    test 1248 GeoidPGM('egm2008-1.pgm').height(49.282, -152.934) kind 3: lli ('49.282472, -152.934409'), H (False) or wrap (False): lli ('49.282472, -152.934409'): outside on W  FAILED, KNOWN, expected 1.192\n    test 1249 GeoidPGM('egm2008-1.pgm').height(16.349, -99.962) kind 3: lli ('16.349121, -99.962229'), H (False) or wrap (False): lli ('16.349121, -99.962229'): outside on S  FAILED, KNOWN, expected -15.038\n    test 1250 GeoidPGM('egm2008-1.pgm').height(-14.293, -167.34) kind 3: lli ('-14.293325, -167.339799'), H (False) or wrap (False): lli ('-14.293325, -167.339799'): outside on SW  FAILED, KNOWN, expected 17.791\n    test 1251 GeoidPGM('egm2008-1.pgm').height(47.166, -38.523) kind 3: lli ('47.165911, -38.522629'), H (False) or wrap (False): lli ('47.165911, -38.522629'): outside on E  FAILED, KNOWN, expected 44.652\n    test 1252 GeoidPGM('egm2008-1.pgm').height(-58.911, 114.347) kind 3: lli ('-58.910597, 114.346927'), H (False) or wrap (False): lli ('-58.910597, 114.346927'): outside on SE  FAILED, KNOWN, expected -17.971\n    test 1253 GeoidPGM('egm2008-1.pgm').height(-9.055, 111.294) kind 3: lli ('-9.055095, 111.294422'), H (False) or wrap (False): lli ('-9.055095, 111.294422'): outside on SE  FAILED, KNOWN, expected 11.631\n    test 1254 GeoidPGM('egm2008-1.pgm').height(18.391, 29.692) kind 3: lli ('18.390988, 29.691577'), H (False) or wrap (False): lli ('18.390988, 29.691577'): outside on SE  FAILED, KNOWN, expected 7.394\n    test 1255 GeoidPGM('egm2008-1.pgm').height(-15.074, 22.153) kind 3: lli ('-15.074412, 22.152663'), H (False) or wrap (False): lli ('-15.074412, 22.152663'): outside on SE  FAILED, KNOWN, expected 7.932\n    test 1256 GeoidPGM('egm2008-1.pgm').height(-4.235, 62.001) kind 3: lli ('-4.234571, 62.001081'), H (False) or wrap (False): lli ('-4.234571, 62.001081'): outside on SE  FAILED, KNOWN, expected -60.593\n    test 1257 GeoidPGM('egm2008-1.pgm').height(15.171, -86.583) kind 3: lli ('15.170822, -86.582929'), H (False) or wrap (False): lli ('15.170822, -86.582929'): outside on S  FAILED, KNOWN, expected 4.384\n    test 1258 GeoidPGM('egm2008-1.pgm').height(79.254, 112.116) kind 3: lli ('79.254009, 112.115515'), H (False) or wrap (False): lli ('79.254009, 112.115515'): outside on NE  FAILED, KNOWN, expected 1.297\n    test 1259 GeoidPGM('egm2008-1.pgm').height(15.947, 156.093) kind 3: lli ('15.947068, 156.092678'), H (False) or wrap (False): lli ('15.947068, 156.092678'): outside on SE  FAILED, KNOWN, expected 30.852\n    test 1260 GeoidPGM('egm2008-1.pgm').height(68.371, -177.382) kind 3: lli ('68.370605, -177.382127'), H (False) or wrap (False): lli ('68.370605, -177.382127'): outside on NW  FAILED, KNOWN, expected 2.704\n    test 1261 GeoidPGM('egm2008-1.pgm').height(-41.931, -72.093) kind 3: lli ('-41.931009, -72.093413'), H (False) or wrap (False): lli ('-41.931009, -72.093413'): outside on S  FAILED, KNOWN, expected 21.264\n    test 1262 GeoidPGM('egm2008-1.pgm').height(-1.193, -143.133) kind 3: lli ('-1.192967, -143.133078'), H (False) or wrap (False): lli ('-1.192967, -143.133078'): outside on SW  FAILED, KNOWN, expected 5.443\n    test 1263 GeoidPGM('egm2008-1.pgm').height(-37.006, 154.513) kind 3: lli ('-37.006115, 154.512534'), H (False) or wrap (False): lli ('-37.006115, 154.512534'): outside on SE  FAILED, KNOWN, expected 9.998\n    test 1264 GeoidPGM('egm2008-1.pgm').height(-22.148, 9.938) kind 3: lli ('-22.148493, 9.938408'), H (False) or wrap (False): lli ('-22.148493, 9.938408'): outside on SE  FAILED, KNOWN, expected 22.428\n    test 1265 GeoidPGM('egm2008-1.pgm').height(24.329, 109.044) kind 3: lli ('24.328746, 109.043774'), H (False) or wrap (False): lli ('24.328746, 109.043774'): outside on SE  FAILED, KNOWN, expected -23.154\n    test 1266 GeoidPGM('egm2008-1.pgm').height(-54.878, 114.691) kind 3: lli ('-54.877699, 114.691444'), H (False) or wrap (False): lli ('-54.877699, 114.691444'): outside on SE  FAILED, KNOWN, expected -17.662\n    test 1267 GeoidPGM('egm2008-1.pgm').height(45.601, -80.458) kind 3: -36.840  FAILED, KNOWN, expected -36.839\n    test 1268 GeoidPGM('egm2008-1.pgm').height(2.372, 58.974) kind 3: lli ('2.371766, 58.974082'), H (False) or wrap (False): lli ('2.371766, 58.974082'): outside on SE  FAILED, KNOWN, expected -61.221\n    test 1269 GeoidPGM('egm2008-1.pgm').height(15.937, 165.854) kind 3: lli ('15.936522, 165.854035'), H (False) or wrap (False): lli ('15.936522, 165.854035'): outside on SE  FAILED, KNOWN, expected 20.355\n    test 1270 GeoidPGM('egm2008-1.pgm').height(4.889, -24.213) kind 3: lli ('4.889499, -24.213194'), H (False) or wrap (False): lli ('4.889499, -24.213194'): outside on SE  FAILED, KNOWN, expected 13.147\n    test 1271 GeoidPGM('egm2008-1.pgm').height(-11.392, 179.558) kind 3: lli ('-11.392365, 179.558198'), H (False) or wrap (False): lli ('-11.392365, 179.558198'): outside on SE  FAILED, KNOWN, expected 41.072\n    test 1272 GeoidPGM('egm2008-1.pgm').height(58.246, 4.862) kind 3: lli ('58.24629, 4.862128'), H (False) or wrap (False): lli ('58.24629, 4.862128'): outside on NE  FAILED, KNOWN, expected 42.982\n    test 1273 GeoidPGM('egm2008-1.pgm').height(34.302, -109.109) kind 3: -22.997  FAILED, KNOWN, expected -22.998\n    test 1274 GeoidPGM('egm2008-1.pgm').height(-58.196, 117.306) kind 3: lli ('-58.195787, 117.305696'), H (False) or wrap (False): lli ('-58.195787, 117.305696'): outside on SE  FAILED, KNOWN, expected -20.662\n    test 1275 GeoidPGM('egm2008-1.pgm').height(44.5, 173.769) kind 3: lli ('44.499876, 173.768568'), H (False) or wrap (False): lli ('44.499876, 173.768568'): outside on E  FAILED, KNOWN, expected -8.438\n    test 1276 GeoidPGM('egm2008-1.pgm').height(-28.863, -139.775) kind 3: lli ('-28.862539, -139.774812'), H (False) or wrap (False): lli ('-28.862539, -139.774812'): outside on SW  FAILED, KNOWN, expected -8.712\n    test 1277 GeoidPGM('egm2008-1.pgm').height(19.507, -96.099) kind 3: lli ('19.507043, -96.099433'), H (False) or wrap (False): lli ('19.507043, -96.099433'): outside on S  FAILED, KNOWN, expected -12.653\n    test 1278 GeoidPGM('egm2008-1.pgm').height(-42.488, -73.907) kind 3: lli ('-42.487604, -73.906602'), H (False) or wrap (False): lli ('-42.487604, -73.906602'): outside on S  FAILED, KNOWN, expected 17.166\n    test 1279 GeoidPGM('egm2008-1.pgm').height(46.138, -141.429) kind 3: lli ('46.138437, -141.429193'), H (False) or wrap (False): lli ('46.138437, -141.429193'): outside on W  FAILED, KNOWN, expected -19.874\n    test 1280 GeoidPGM('egm2008-1.pgm').height(60.507, 93.743) kind 3: lli ('60.506969, 93.74336'), H (False) or wrap (False): lli ('60.506969, 93.74336'): outside on NE  FAILED, KNOWN, expected -31.124\n    test 1281 GeoidPGM('egm2008-1.pgm').height(26.219, -145.434) kind 3: lli ('26.219081, -145.434391'), H (False) or wrap (False): lli ('26.219081, -145.434391'): outside on W  FAILED, KNOWN, expected -17.307\n    test 1282 GeoidPGM('egm2008-1.pgm').height(-28.687, 3.37) kind 3: lli ('-28.68714, 3.370196'), H (False) or wrap (False): lli ('-28.68714, 3.370196'): outside on SE  FAILED, KNOWN, expected 23.434\n    test 1283 GeoidPGM('egm2008-1.pgm').height(-15.008, 117.45) kind 3: lli ('-15.007944, 117.449536'), H (False) or wrap (False): lli ('-15.007944, 117.449536'): outside on SE  FAILED, KNOWN, expected 4.508\n    test 1284 GeoidPGM('egm2008-1.pgm').height(40.71, 144.095) kind 3: lli ('40.710024, 144.095126'), H (False) or wrap (False): lli ('40.710024, 144.095126'): outside on E  FAILED, KNOWN, expected 11.549\n    test 1285 GeoidPGM('egm2008-1.pgm').height(20.823, -173.611) kind 3: lli ('20.823096, -173.610797'), H (False) or wrap (False): lli ('20.823096, -173.610797'): outside on SW  FAILED, KNOWN, expected 5.748\n    test 1286 GeoidPGM('egm2008-1.pgm').height(16.776, -3.009) kind 3: lli ('16.776, -3.009'), H (False) or wrap (False): lli ('16.776, -3.009'): outside on SE  FAILED, KNOWN, expected 28.788\n    test 1287 GeoidPGM('egm2008-1.pgm').height(41.0, -95.0) kind 3: -30.588  FAILED, KNOWN, expected -30.589\n    test 1288 GeoidPGM('egm2008-1.pgm').height(49.0, -120.5) kind 3: -15.273\n    test 1289 GeoidPGM('egm2008-1.pgm').height(49.0, -103.5) kind 3: -18.624\n    test 1290 GeoidPGM('egm2008-1.pgm').height(49.0, -86.5) kind 3: -37.872  FAILED, KNOWN, expected -37.873\n    test 1291 GeoidPGM('egm2008-1.pgm').height(49.0, -69.5) kind 3: -26.511\n    test 1292 GeoidPGM('egm2008-1.pgm').height(33.0, -120.5) kind 3: -39.600\n    test 1293 GeoidPGM('egm2008-1.pgm').height(33.0, -103.5) kind 3: -22.689\n    test 1294 GeoidPGM('egm2008-1.pgm').height(33.0, -86.5) kind 3: -30.066  FAILED, KNOWN, expected -30.067\n    test 1295 GeoidPGM('egm2008-1.pgm').height(33.0, -69.5) kind 3: -48.093\n\n    test 1296 GeoidPGM('egm2008-1.pgm').height() kind 3, eps max (in 0 FAILED): 0.001386\n    test 1297 GeoidPGM('egm2008-1.pgm').height() kind 3, eps mean (of 15 total): 0.000532\n    test 1298 GeoidPGM('egm2008-1.pgm').height() kind 3, eps stdev (of 15 total): 0.000380\n    test 1299 GeoidPGM('egm2008-1.pgm').toStr: GeoidPGM('egm2008-1.pgm'): lowerleft(25.0, -125.0, -45.45), upperright(55.0, -64.983, -16.223), center(40.0, -94.992, -31.838), highest(44.15, -109.817, -7.089), lowest(25.733, -69.767, -52.518)\n\n    test 1300 closed: True\n    test 1301 copy(<type 'type'>): (<class 'pygeodesy.geoids.GeoidPGM'>, True)\n    test 1302 GeoidPGM.copy(): (<class 'pygeodesy.geoids.GeoidPGM'>, True)\n    test 1303 GeoidKarney('egm84-15.pgm').height(-76.981, 34.17) kind 2: 11.727  FAILED, KNOWN, expected 11.729\n    test 1304 GeoidKarney('egm84-15.pgm').height(79.695, 88.806) kind 2: 0.280  FAILED, KNOWN, expected 0.270\n    test 1305 GeoidKarney('egm84-15.pgm').height(-15.245, 168.748) kind 2: 67.071  FAILED, KNOWN, expected 67.074\n    test 1306 GeoidKarney('egm84-15.pgm').height(-19.379, 15.855) kind 2: 25.366  FAILED, KNOWN, expected 25.344\n    test 1307 GeoidKarney('egm84-15.pgm').height(43.378, -130.552) kind 2: -28.913  FAILED, KNOWN, expected -28.919\n    test 1308 GeoidKarney('egm84-15.pgm').height(-16.075, 21.795) kind 2: 14.383  FAILED, KNOWN, expected 14.386\n    test 1309 GeoidKarney('egm84-15.pgm').height(-11.256, -73.75) kind 2: 30.701  FAILED, KNOWN, expected 30.700\n    test 1310 GeoidKarney('egm84-15.pgm').height(69.017, -15.921) kind 2: 62.222  FAILED, KNOWN, expected 62.225\n    test 1311 GeoidKarney('egm84-15.pgm').height(2.221, 139.739) kind 2: 70.221  FAILED, KNOWN, expected 70.222\n    test 1312 GeoidKarney('egm84-15.pgm').height(-9.097, 119.142) kind 2: 34.290  FAILED, KNOWN, expected 34.336\n    test 1313 GeoidKarney('egm84-15.pgm').height(-28.524, -22.192) kind 2: 8.205  FAILED, KNOWN, expected 8.206\n    test 1314 GeoidKarney('egm84-15.pgm').height(12.272, -136.424) kind 2: -20.068  FAILED, KNOWN, expected -20.074\n    test 1315 GeoidKarney('egm84-15.pgm').height(-15.203, -85.604) kind 2: -3.129\n    test 1316 GeoidKarney('egm84-15.pgm').height(-63.736, -77.17) kind 2: -3.214  FAILED, KNOWN, expected -3.217\n    test 1317 GeoidKarney('egm84-15.pgm').height(-48.771, -90.102) kind 2: -1.536  FAILED, KNOWN, expected -1.531\n    test 1318 GeoidKarney('egm84-15.pgm').height(-0.179, -126.368) kind 2: -16.742\n    test 1319 GeoidKarney('egm84-15.pgm').height(1.586, -128.887) kind 2: -15.418  FAILED, KNOWN, expected -15.412\n    test 1320 GeoidKarney('egm84-15.pgm').height(-48.781, -2.684) kind 2: 25.077  FAILED, KNOWN, expected 25.078\n    test 1321 GeoidKarney('egm84-15.pgm').height(-49.092, 136.862) kind 2: -18.114  FAILED, KNOWN, expected -18.120\n    test 1322 GeoidKarney('egm84-15.pgm').height(47.732, 17.552) kind 2: 46.230  FAILED, KNOWN, expected 46.224\n    test 1323 GeoidKarney('egm84-15.pgm').height(-49.11, 85.706) kind 2: 18.648  FAILED, KNOWN, expected 18.649\n    test 1324 GeoidKarney('egm84-15.pgm').height(-49.162, 40.321) kind 2: 44.759  FAILED, KNOWN, expected 44.764\n    test 1325 GeoidKarney('egm84-15.pgm').height(3.498, 158.118) kind 2: 51.095  FAILED, KNOWN, expected 51.089\n    test 1326 GeoidKarney('egm84-15.pgm').height(-35.616, 122.648) kind 2: -34.436  FAILED, KNOWN, expected -34.471\n    test 1327 GeoidKarney('egm84-15.pgm').height(56.598, -96.114) kind 2: -39.124\n    test 1328 GeoidKarney('egm84-15.pgm').height(-31.85, 149.121) kind 2: 28.131  FAILED, KNOWN, expected 28.142\n    test 1329 GeoidKarney('egm84-15.pgm').height(-26.569, -177.792) kind 2: 49.606  FAILED, KNOWN, expected 49.619\n    test 1330 GeoidKarney('egm84-15.pgm').height(76.735, -65.753) kind 2: 22.568  FAILED, KNOWN, expected 22.575\n    test 1331 GeoidKarney('egm84-15.pgm').height(-21.404, -122.268) kind 2: -6.894  FAILED, KNOWN, expected -6.893\n    test 1332 GeoidKarney('egm84-15.pgm').height(-77.133, -65.474) kind 2: -15.017  FAILED, KNOWN, expected -15.012\n    test 1333 GeoidKarney('egm84-15.pgm').height(-58.812, 2.276) kind 2: 18.777  FAILED, KNOWN, expected 18.776\n    test 1334 GeoidKarney('egm84-15.pgm').height(4.415, 155.683) kind 2: 53.644  FAILED, KNOWN, expected 53.645\n    test 1335 GeoidKarney('egm84-15.pgm').height(-28.146, 107.081) kind 2: -39.058  FAILED, KNOWN, expected -39.074\n    test 1336 GeoidKarney('egm84-15.pgm').height(-10.551, -126.69) kind 2: -9.643  FAILED, KNOWN, expected -9.645\n    test 1337 GeoidKarney('egm84-15.pgm').height(-25.444, -103.337) kind 2: -2.520  FAILED, KNOWN, expected -2.528\n    test 1338 GeoidKarney('egm84-15.pgm').height(24.436, 46.159) kind 2: -6.918  FAILED, KNOWN, expected -6.907\n    test 1339 GeoidKarney('egm84-15.pgm').height(-72.889, 37.107) kind 2: 21.758  FAILED, KNOWN, expected 21.711\n    test 1340 GeoidKarney('egm84-15.pgm').height(-19.629, 13.245) kind 2: 25.617  FAILED, KNOWN, expected 25.611\n    test 1341 GeoidKarney('egm84-15.pgm').height(-7.602, 171.265) kind 2: 41.585  FAILED, KNOWN, expected 41.569\n    test 1342 GeoidKarney('egm84-15.pgm').height(-45.364, -1.876) kind 2: 23.283  FAILED, KNOWN, expected 23.280\n    test 1343 GeoidKarney('egm84-15.pgm').height(-7.292, -69.18) kind 2: 24.497  FAILED, KNOWN, expected 24.502\n    test 1344 GeoidKarney('egm84-15.pgm').height(-31.566, -166.689) kind 2: 14.825  FAILED, KNOWN, expected 14.826\n    test 1345 GeoidKarney('egm84-15.pgm').height(-82.751, -162.085) kind 2: -45.104\n    test 1346 GeoidKarney('egm84-15.pgm').height(-40.7, 99.466) kind 2: -17.254  FAILED, KNOWN, expected -17.252\n    test 1347 GeoidKarney('egm84-15.pgm').height(48.676, 39.69) kind 2: 12.984  FAILED, KNOWN, expected 12.972\n    test 1348 GeoidKarney('egm84-15.pgm').height(74.817, -78.404) kind 2: 4.773  FAILED, KNOWN, expected 4.776\n    test 1349 GeoidKarney('egm84-15.pgm').height(-81.032, -63.865) kind 2: -23.577\n    test 1350 GeoidKarney('egm84-15.pgm').height(74.022, 9.432) kind 2: 43.884  FAILED, KNOWN, expected 43.885\n    test 1351 GeoidKarney('egm84-15.pgm').height(-75.071, 17.579) kind 2: 17.064  FAILED, KNOWN, expected 17.072\n    test 1352 GeoidKarney('egm84-15.pgm').height(-12.546, -54.851) kind 2: -6.637  FAILED, KNOWN, expected -6.643\n    test 1353 GeoidKarney('egm84-15.pgm').height(-13.621, 42.408) kind 2: -23.332  FAILED, KNOWN, expected -23.325\n    test 1354 GeoidKarney('egm84-15.pgm').height(-2.266, -91.951) kind 2: -10.689  FAILED, KNOWN, expected -10.698\n    test 1355 GeoidKarney('egm84-15.pgm').height(-18.672, 42.547) kind 2: -10.305  FAILED, KNOWN, expected -10.265\n    test 1356 GeoidKarney('egm84-15.pgm').height(-41.44, 157.413) kind 2: 0.692  FAILED, KNOWN, expected 0.689\n    test 1357 GeoidKarney('egm84-15.pgm').height(53.686, -79.375) kind 2: -43.763  FAILED, KNOWN, expected -43.758\n    test 1358 GeoidKarney('egm84-15.pgm').height(39.26, -30.351) kind 2: 57.551  FAILED, KNOWN, expected 57.554\n    test 1359 GeoidKarney('egm84-15.pgm').height(-51.699, -141.493) kind 2: -16.939  FAILED, KNOWN, expected -16.936\n    test 1360 GeoidKarney('egm84-15.pgm').height(36.585, 4.515) kind 2: 45.227  FAILED, KNOWN, expected 45.295\n    test 1361 GeoidKarney('egm84-15.pgm').height(39.642, -54.659) kind 2: -13.585  FAILED, KNOWN, expected -13.586\n    test 1362 GeoidKarney('egm84-15.pgm').height(59.761, 166.567) kind 2: 11.469  FAILED, KNOWN, expected 11.468\n    test 1363 GeoidKarney('egm84-15.pgm').height(51.83, 13.357) kind 2: 42.090  FAILED, KNOWN, expected 42.092\n    test 1364 GeoidKarney('egm84-15.pgm').height(-36.531, -175.431) kind 2: 22.828  FAILED, KNOWN, expected 22.830\n    test 1365 GeoidKarney('egm84-15.pgm').height(-37.08, 125.264) kind 2: -32.300  FAILED, KNOWN, expected -32.302\n    test 1366 GeoidKarney('egm84-15.pgm').height(-68.651, 92.732) kind 2: 9.212  FAILED, KNOWN, expected 9.228\n    test 1367 GeoidKarney('egm84-15.pgm').height(35.087, 45.336) kind 2: 6.000  FAILED, KNOWN, expected 5.965\n    test 1368 GeoidKarney('egm84-15.pgm').height(-61.356, -169.379) kind 2: -45.000  FAILED, KNOWN, expected -45.013\n    test 1369 GeoidKarney('egm84-15.pgm').height(-36.955, 179.12) kind 2: 21.148  FAILED, KNOWN, expected 21.118\n    test 1370 GeoidKarney('egm84-15.pgm').height(10.248, -6.714) kind 2: 30.500  FAILED, KNOWN, expected 30.497\n    test 1371 GeoidKarney('egm84-15.pgm').height(36.868, 84.602) kind 2: -40.416  FAILED, KNOWN, expected -40.396\n    test 1372 GeoidKarney('egm84-15.pgm').height(28.637, 88.933) kind 2: -31.726  FAILED, KNOWN, expected -31.704\n    test 1373 GeoidKarney('egm84-15.pgm').height(54.811, -99.968) kind 2: -32.271  FAILED, KNOWN, expected -32.277\n    test 1374 GeoidKarney('egm84-15.pgm').height(7.611, 145.911) kind 2: 61.016  FAILED, KNOWN, expected 61.024\n    test 1375 GeoidKarney('egm84-15.pgm').height(59.412, 170.102) kind 2: 5.017  FAILED, KNOWN, expected 4.994\n    test 1376 GeoidKarney('egm84-15.pgm').height(-61.469, 126.144) kind 2: -30.240  FAILED, KNOWN, expected -30.237\n    test 1377 GeoidKarney('egm84-15.pgm').height(18.514, -137.083) kind 2: -26.007  FAILED, KNOWN, expected -26.006\n    test 1378 GeoidKarney('egm84-15.pgm').height(7.854, -126.799) kind 2: -29.280  FAILED, KNOWN, expected -29.283\n    test 1379 GeoidKarney('egm84-15.pgm').height(47.489, 134.183) kind 2: 22.400  FAILED, KNOWN, expected 22.394\n    test 1380 GeoidKarney('egm84-15.pgm').height(-34.144, -11.922) kind 2: 17.549  FAILED, KNOWN, expected 17.550\n    test 1381 GeoidKarney('egm84-15.pgm').height(-58.389, 117.458) kind 2: -20.621  FAILED, KNOWN, expected -20.622\n    test 1382 GeoidKarney('egm84-15.pgm').height(9.773, 95.846) kind 2: -41.463  FAILED, KNOWN, expected -41.484\n    test 1383 GeoidKarney('egm84-15.pgm').height(-53.12, 136.994) kind 2: -20.969  FAILED, KNOWN, expected -20.968\n    test 1384 GeoidKarney('egm84-15.pgm').height(-50.35, 0.075) kind 2: 25.561  FAILED, KNOWN, expected 25.568\n    test 1385 GeoidKarney('egm84-15.pgm').height(31.438, -170.879) kind 2: -8.574  FAILED, KNOWN, expected -8.581\n    test 1386 GeoidKarney('egm84-15.pgm').height(37.541, -153.024) kind 2: -18.329\n    test 1387 GeoidKarney('egm84-15.pgm').height(27.586, 2.444) kind 2: 25.003  FAILED, KNOWN, expected 25.001\n    test 1388 GeoidKarney('egm84-15.pgm').height(-26.139, -106.201) kind 2: -2.945  FAILED, KNOWN, expected -2.940\n    test 1389 GeoidKarney('egm84-15.pgm').height(-33.426, -14.84) kind 2: 18.220  FAILED, KNOWN, expected 18.228\n    test 1390 GeoidKarney('egm84-15.pgm').height(39.586, -153.019) kind 2: -16.511  FAILED, KNOWN, expected -16.507\n    test 1391 GeoidKarney('egm84-15.pgm').height(-60.79, -2.578) kind 2: 14.277  FAILED, KNOWN, expected 14.275\n    test 1392 GeoidKarney('egm84-15.pgm').height(-20.131, 21.975) kind 2: 16.866  FAILED, KNOWN, expected 16.852\n    test 1393 GeoidKarney('egm84-15.pgm').height(75.649, 99.921) kind 2: -6.870  FAILED, KNOWN, expected -6.872\n    test 1394 GeoidKarney('egm84-15.pgm').height(-0.385, -23.788) kind 2: 8.987  FAILED, KNOWN, expected 9.006\n    test 1395 GeoidKarney('egm84-15.pgm').height(-51.56, -50.327) kind 2: 6.277  FAILED, KNOWN, expected 6.296\n    test 1396 GeoidKarney('egm84-15.pgm').height(-43.129, -167.271) kind 2: -1.483  FAILED, KNOWN, expected -1.481\n    test 1397 GeoidKarney('egm84-15.pgm').height(46.374, 71.948) kind 2: -40.929  FAILED, KNOWN, expected -40.915\n    test 1398 GeoidKarney('egm84-15.pgm').height(-22.783, 140.657) kind 2: 37.481  FAILED, KNOWN, expected 37.495\n    test 1399 GeoidKarney('egm84-15.pgm').height(-12.056, 122.804) kind 2: 32.222  FAILED, KNOWN, expected 32.258\n    test 1400 GeoidKarney('egm84-15.pgm').height(30.127, 94.738) kind 2: -41.529\n    test 1401 GeoidKarney('egm84-15.pgm').height(46.296, -174.479) kind 2: -1.377\n    test 1402 GeoidKarney('egm84-15.pgm').height(34.99, 15.052) kind 2: 35.263  FAILED, KNOWN, expected 35.280\n    test 1403 GeoidKarney('egm84-15.pgm').height(-51.287, 90.565) kind 2: 12.958\n    test 1404 GeoidKarney('egm84-15.pgm').height(34.217, 141.302) kind 2: 18.423  FAILED, KNOWN, expected 18.307\n    test 1405 GeoidKarney('egm84-15.pgm').height(-40.423, -142.787) kind 2: -10.400\n    test 1406 GeoidKarney('egm84-15.pgm').height(-17.854, -170.216) kind 2: 28.649  FAILED, KNOWN, expected 28.638\n    test 1407 GeoidKarney('egm84-15.pgm').height(47.803, 112.701) kind 2: -24.060  FAILED, KNOWN, expected -24.059\n    test 1408 GeoidKarney('egm84-15.pgm').height(-23.276, 133.454) kind 2: 18.800  FAILED, KNOWN, expected 18.806\n    test 1409 GeoidKarney('egm84-15.pgm').height(-26.884, -36.571) kind 2: -6.808  FAILED, KNOWN, expected -6.820\n    test 1410 GeoidKarney('egm84-15.pgm').height(-37.106, 31.128) kind 2: 31.485  FAILED, KNOWN, expected 31.486\n    test 1411 GeoidKarney('egm84-15.pgm').height(-75.363, -173.674) kind 2: -62.021  FAILED, KNOWN, expected -62.024\n    test 1412 GeoidKarney('egm84-15.pgm').height(-18.305, 69.016) kind 2: -24.246  FAILED, KNOWN, expected -24.248\n    test 1413 GeoidKarney('egm84-15.pgm').height(39.527, 23.58) kind 2: 43.246  FAILED, KNOWN, expected 43.255\n    test 1414 GeoidKarney('egm84-15.pgm').height(68.903, 30.97) kind 2: 18.496  FAILED, KNOWN, expected 18.498\n    test 1415 GeoidKarney('egm84-15.pgm').height(53.937, 168.318) kind 2: 4.100  FAILED, KNOWN, expected 4.067\n    test 1416 GeoidKarney('egm84-15.pgm').height(-38.6, 64.812) kind 2: 25.456  FAILED, KNOWN, expected 25.454\n    test 1417 GeoidKarney('egm84-15.pgm').height(-41.396, -69.739) kind 2: 26.619  FAILED, KNOWN, expected 26.657\n    test 1418 GeoidKarney('egm84-15.pgm').height(50.158, 72.319) kind 2: -32.003  FAILED, KNOWN, expected -31.966\n    test 1419 GeoidKarney('egm84-15.pgm').height(27.692, 176.153) kind 2: -4.422  FAILED, KNOWN, expected -4.415\n    test 1420 GeoidKarney('egm84-15.pgm').height(-48.419, 170.454) kind 2: -6.717  FAILED, KNOWN, expected -6.741\n    test 1421 GeoidKarney('egm84-15.pgm').height(-65.346, -124.976) kind 2: -34.915  FAILED, KNOWN, expected -34.900\n    test 1422 GeoidKarney('egm84-15.pgm').height(-51.873, 167.266) kind 2: -14.214  FAILED, KNOWN, expected -14.223\n    test 1423 GeoidKarney('egm84-15.pgm').height(-7.263, 84.308) kind 2: -79.313  FAILED, KNOWN, expected -79.317\n    test 1424 GeoidKarney('egm84-15.pgm').height(-1.461, -105.458) kind 2: -16.163\n    test 1425 GeoidKarney('egm84-15.pgm').height(7.684, 161.873) kind 2: 36.296  FAILED, KNOWN, expected 36.287\n    test 1426 GeoidKarney('egm84-15.pgm').height(-31.475, -158.52) kind 2: 4.066  FAILED, KNOWN, expected 4.068\n    test 1427 GeoidKarney('egm84-15.pgm').height(-36.187, 62.917) kind 2: 24.401  FAILED, KNOWN, expected 24.407\n    test 1428 GeoidKarney('egm84-15.pgm').height(16.003, 141.687) kind 2: 53.051  FAILED, KNOWN, expected 53.054\n    test 1429 GeoidKarney('egm84-15.pgm').height(30.182, 86.261) kind 2: -30.616  FAILED, KNOWN, expected -30.622\n    test 1430 GeoidKarney('egm84-15.pgm').height(-77.304, 159.498) kind 2: -53.544  FAILED, KNOWN, expected -53.540\n    test 1431 GeoidKarney('egm84-15.pgm').height(39.536, 139.795) kind 2: 36.274  FAILED, KNOWN, expected 36.262\n    test 1432 GeoidKarney('egm84-15.pgm').height(8.569, 134.618) kind 2: 64.339  FAILED, KNOWN, expected 64.369\n    test 1433 GeoidKarney('egm84-15.pgm').height(14.473, 90.596) kind 2: -61.320  FAILED, KNOWN, expected -61.300\n    test 1434 GeoidKarney('egm84-15.pgm').height(-13.138, -99.589) kind 2: -7.996  FAILED, KNOWN, expected -7.999\n    test 1435 GeoidKarney('egm84-15.pgm').height(34.212, -26.307) kind 2: 41.489  FAILED, KNOWN, expected 41.477\n    test 1436 GeoidKarney('egm84-15.pgm').height(21.89, 76.371) kind 2: -59.881  FAILED, KNOWN, expected -59.876\n    test 1437 GeoidKarney('egm84-15.pgm').height(29.793, 120.487) kind 2: 8.422  FAILED, KNOWN, expected 8.404\n    test 1438 GeoidKarney('egm84-15.pgm').height(15.724, 122.714) kind 2: 39.200  FAILED, KNOWN, expected 39.152\n    test 1439 GeoidKarney('egm84-15.pgm').height(-66.208, -78.499) kind 2: -7.068  FAILED, KNOWN, expected -7.076\n    test 1440 GeoidKarney('egm84-15.pgm').height(-39.507, 55.809) kind 2: 33.179  FAILED, KNOWN, expected 33.178\n    test 1441 GeoidKarney('egm84-15.pgm').height(28.159, 51.476) kind 2: -23.801  FAILED, KNOWN, expected -23.832\n    test 1442 GeoidKarney('egm84-15.pgm').height(-36.207, 120.205) kind 2: -38.175  FAILED, KNOWN, expected -38.206\n    test 1443 GeoidKarney('egm84-15.pgm').height(30.575, -99.998) kind 2: -22.171  FAILED, KNOWN, expected -22.142\n    test 1444 GeoidKarney('egm84-15.pgm').height(-16.993, 37.136) kind 2: -13.746  FAILED, KNOWN, expected -13.765\n    test 1445 GeoidKarney('egm84-15.pgm').height(-11.477, 12.039) kind 2: 16.909  FAILED, KNOWN, expected 16.898\n    test 1446 GeoidKarney('egm84-15.pgm').height(30.428, -144.765) kind 2: -22.479  FAILED, KNOWN, expected -22.474\n    test 1447 GeoidKarney('egm84-15.pgm').height(-17.44, -92.424) kind 2: -4.710  FAILED, KNOWN, expected -4.718\n    test 1448 GeoidKarney('egm84-15.pgm').height(40.203, 143.43) kind 2: 16.680  FAILED, KNOWN, expected 16.635\n    test 1449 GeoidKarney('egm84-15.pgm').height(-37.098, -106.574) kind 2: -9.012\n    test 1450 GeoidKarney('egm84-15.pgm').height(54.62, -68.413) kind 2: -23.556  FAILED, KNOWN, expected -23.543\n    test 1451 GeoidKarney('egm84-15.pgm').height(-31.633, 148.182) kind 2: 26.240  FAILED, KNOWN, expected 26.236\n    test 1452 GeoidKarney('egm84-15.pgm').height(-56.07, -141.407) kind 2: -21.963  FAILED, KNOWN, expected -21.953\n    test 1453 GeoidKarney('egm84-15.pgm').height(-8.195, -52.691) kind 2: -17.959\n    test 1454 GeoidKarney('egm84-15.pgm').height(17.851, 24.749) kind 2: 9.072  FAILED, KNOWN, expected 9.078\n    test 1455 GeoidKarney('egm84-15.pgm').height(0.349, -108.333) kind 2: -19.160  FAILED, KNOWN, expected -19.158\n    test 1456 GeoidKarney('egm84-15.pgm').height(15.038, 126.191) kind 2: 46.776\n    test 1457 GeoidKarney('egm84-15.pgm').height(-21.111, -123.696) kind 2: -8.053  FAILED, KNOWN, expected -8.055\n    test 1458 GeoidKarney('egm84-15.pgm').height(30.947, 173.002) kind 2: -7.681  FAILED, KNOWN, expected -7.696\n    test 1459 GeoidKarney('egm84-15.pgm').height(-10.698, -144.091) kind 2: -1.052  FAILED, KNOWN, expected -1.049\n    test 1460 GeoidKarney('egm84-15.pgm').height(-29.412, 124.753) kind 2: -16.081\n    test 1461 GeoidKarney('egm84-15.pgm').height(38.224, -137.189) kind 2: -35.429  FAILED, KNOWN, expected -35.427\n    test 1462 GeoidKarney('egm84-15.pgm').height(36.064, -132.409) kind 2: -38.648\n    test 1463 GeoidKarney('egm84-15.pgm').height(29.975, 178.076) kind 2: -5.524  FAILED, KNOWN, expected -5.519\n    test 1464 GeoidKarney('egm84-15.pgm').height(-21.346, 169.26) kind 2: 53.448  FAILED, KNOWN, expected 53.431\n    test 1465 GeoidKarney('egm84-15.pgm').height(49.282, -152.934) kind 2: 1.977  FAILED, KNOWN, expected 1.979\n    test 1466 GeoidKarney('egm84-15.pgm').height(16.349, -99.962) kind 2: -13.131  FAILED, KNOWN, expected -13.197\n    test 1467 GeoidKarney('egm84-15.pgm').height(-14.293, -167.34) kind 2: 18.953  FAILED, KNOWN, expected 18.945\n    test 1468 GeoidKarney('egm84-15.pgm').height(47.166, -38.523) kind 2: 45.180  FAILED, KNOWN, expected 45.187\n    test 1469 GeoidKarney('egm84-15.pgm').height(-58.911, 114.347) kind 2: -17.155  FAILED, KNOWN, expected -17.145\n    test 1470 GeoidKarney('egm84-15.pgm').height(-9.055, 111.294) kind 2: 13.136  FAILED, KNOWN, expected 13.146\n    test 1471 GeoidKarney('egm84-15.pgm').height(18.391, 29.692) kind 2: 4.933\n    test 1472 GeoidKarney('egm84-15.pgm').height(-15.074, 22.153) kind 2: 12.313  FAILED, KNOWN, expected 12.326\n    test 1473 GeoidKarney('egm84-15.pgm').height(-4.235, 62.001) kind 2: -60.029  FAILED, KNOWN, expected -60.030\n    test 1474 GeoidKarney('egm84-15.pgm').height(15.171, -86.583) kind 2: 3.034  FAILED, KNOWN, expected 3.110\n    test 1475 GeoidKarney('egm84-15.pgm').height(79.254, 112.116) kind 2: -2.741\n    test 1476 GeoidKarney('egm84-15.pgm').height(15.947, 156.093) kind 2: 32.108  FAILED, KNOWN, expected 32.085\n    test 1477 GeoidKarney('egm84-15.pgm').height(68.371, -177.382) kind 2: 2.069  FAILED, KNOWN, expected 2.060\n    test 1478 GeoidKarney('egm84-15.pgm').height(-41.931, -72.093) kind 2: 22.901  FAILED, KNOWN, expected 22.916\n    test 1479 GeoidKarney('egm84-15.pgm').height(-1.193, -143.133) kind 2: 5.526  FAILED, KNOWN, expected 5.519\n    test 1480 GeoidKarney('egm84-15.pgm').height(-37.006, 154.513) kind 2: 11.019  FAILED, KNOWN, expected 11.020\n    test 1481 GeoidKarney('egm84-15.pgm').height(-22.148, 9.938) kind 2: 22.181  FAILED, KNOWN, expected 22.171\n    test 1482 GeoidKarney('egm84-15.pgm').height(24.329, 109.044) kind 2: -22.957  FAILED, KNOWN, expected -22.944\n    test 1483 GeoidKarney('egm84-15.pgm').height(-54.878, 114.691) kind 2: -17.583  FAILED, KNOWN, expected -17.580\n    test 1484 GeoidKarney('egm84-15.pgm').height(45.601, -80.458) kind 2: -35.728  FAILED, KNOWN, expected -35.738\n    test 1485 GeoidKarney('egm84-15.pgm').height(2.372, 58.974) kind 2: -61.036  FAILED, KNOWN, expected -61.040\n    test 1486 GeoidKarney('egm84-15.pgm').height(15.937, 165.854) kind 2: 20.897  FAILED, KNOWN, expected 20.907\n    test 1487 GeoidKarney('egm84-15.pgm').height(4.889, -24.213) kind 2: 13.865  FAILED, KNOWN, expected 13.874\n    test 1488 GeoidKarney('egm84-15.pgm').height(-11.392, 179.558) kind 2: 40.920  FAILED, KNOWN, expected 40.929\n    test 1489 GeoidKarney('egm84-15.pgm').height(58.246, 4.862) kind 2: 43.196  FAILED, KNOWN, expected 43.191\n    test 1490 GeoidKarney('egm84-15.pgm').height(34.302, -109.109) kind 2: -22.016  FAILED, KNOWN, expected -22.006\n    test 1491 GeoidKarney('egm84-15.pgm').height(-58.196, 117.306) kind 2: -20.378  FAILED, KNOWN, expected -20.375\n    test 1492 GeoidKarney('egm84-15.pgm').height(44.5, 173.769) kind 2: -7.856  FAILED, KNOWN, expected -7.852\n    test 1493 GeoidKarney('egm84-15.pgm').height(-28.863, -139.775) kind 2: -8.680  FAILED, KNOWN, expected -8.674\n    test 1494 GeoidKarney('egm84-15.pgm').height(19.507, -96.099) kind 2: -14.089  FAILED, KNOWN, expected -14.117\n    test 1495 GeoidKarney('egm84-15.pgm').height(-42.488, -73.907) kind 2: 17.249  FAILED, KNOWN, expected 17.251\n    test 1496 GeoidKarney('egm84-15.pgm').height(46.138, -141.429) kind 2: -19.434  FAILED, KNOWN, expected -19.436\n    test 1497 GeoidKarney('egm84-15.pgm').height(60.507, 93.743) kind 2: -31.333  FAILED, KNOWN, expected -31.330\n    test 1498 GeoidKarney('egm84-15.pgm').height(26.219, -145.434) kind 2: -17.088  FAILED, KNOWN, expected -17.090\n    test 1499 GeoidKarney('egm84-15.pgm').height(-28.687, 3.37) kind 2: 24.177  FAILED, KNOWN, expected 24.184\n    test 1500 GeoidKarney('egm84-15.pgm').height(-15.008, 117.45) kind 2: 6.146  FAILED, KNOWN, expected 6.142\n    test 1501 GeoidKarney('egm84-15.pgm').height(40.71, 144.095) kind 2: 11.771  FAILED, KNOWN, expected 11.693\n    test 1502 GeoidKarney('egm84-15.pgm').height(20.823, -173.611) kind 2: 6.830  FAILED, KNOWN, expected 6.840\n    test 1503 GeoidKarney('egm84-15.pgm').height(16.776, -3.009) kind 2: 31.293  FAILED, KNOWN, expected 31.298\n    test 1504 GeoidKarney('egm84-15.pgm').height(41.0, -95.0) kind 2: -31.953  FAILED, KNOWN, expected -31.952\n    test 1505 GeoidKarney('egm84-15.pgm').height(49.0, -120.5) kind 2: -14.946\n    test 1506 GeoidKarney('egm84-15.pgm').height(49.0, -103.5) kind 2: -17.031  FAILED, KNOWN, expected -17.032\n    test 1507 GeoidKarney('egm84-15.pgm').height(49.0, -86.5) kind 2: -37.962\n    test 1508 GeoidKarney('egm84-15.pgm').height(49.0, -69.5) kind 2: -26.493  FAILED, KNOWN, expected -26.492\n    test 1509 GeoidKarney('egm84-15.pgm').height(33.0, -120.5) kind 2: -39.543\n    test 1510 GeoidKarney('egm84-15.pgm').height(33.0, -103.5) kind 2: -22.557  FAILED, KNOWN, expected -22.556\n    test 1511 GeoidKarney('egm84-15.pgm').height(33.0, -86.5) kind 2: -28.710\n    test 1512 GeoidKarney('egm84-15.pgm').height(33.0, -69.5) kind 2: -46.590\n\n    test 1513 GeoidKarney('egm84-15.pgm').height() kind 2, hits 0, eps max (in 0 FAILED): 0.115669\n    test 1514 GeoidKarney('egm84-15.pgm').height() kind 2, hits 0, eps mean (of 210 total): 0.010307\n    test 1515 GeoidKarney('egm84-15.pgm').height() kind 2, hits 0, eps stdev (of 210 total): 0.015203\n    test 1516 GeoidKarney('egm84-15.pgm').toStr: GeoidKarney('egm84-15.pgm'): lowerleft(-90.0, -180.0, -29.712), upperright(90.0, 180.0, 13.098), center(0.0, 0.0, 18.33), highest(-4.5, 148.75, 81.33), lowest(4.75, 79.25, -107.34)\n\n    test 1517 closed: True\n    test 1518 copy(<type 'type'>): (<class 'pygeodesy.geoids.GeoidKarney'>, True)\n    test 1519 GeoidKarney.copy(): (<class 'pygeodesy.geoids.GeoidKarney'>, True)\n    test 1520 GeoidKarney('egm84-15.pgm').height(-76.981, 34.17) kind 3: 11.729\n    test 1521 GeoidKarney('egm84-15.pgm').height(79.695, 88.806) kind 3: 0.271  FAILED, KNOWN, expected 0.270\n    test 1522 GeoidKarney('egm84-15.pgm').height(-15.245, 168.748) kind 3: 67.074\n    test 1523 GeoidKarney('egm84-15.pgm').height(-19.379, 15.855) kind 3: 25.345  FAILED, KNOWN, expected 25.344\n    test 1524 GeoidKarney('egm84-15.pgm').height(43.378, -130.552) kind 3: -28.919\n    test 1525 GeoidKarney('egm84-15.pgm').height(-16.075, 21.795) kind 3: 14.386\n    test 1526 GeoidKarney('egm84-15.pgm').height(-11.256, -73.75) kind 3: 30.699  FAILED, KNOWN, expected 30.700\n    test 1527 GeoidKarney('egm84-15.pgm').height(69.017, -15.921) kind 3: 62.226  FAILED, KNOWN, expected 62.225\n    test 1528 GeoidKarney('egm84-15.pgm').height(2.221, 139.739) kind 3: 70.222\n    test 1529 GeoidKarney('egm84-15.pgm').height(-9.097, 119.142) kind 3: 34.334  FAILED, KNOWN, expected 34.336\n    test 1530 GeoidKarney('egm84-15.pgm').height(-28.524, -22.192) kind 3: 8.206\n    test 1531 GeoidKarney('egm84-15.pgm').height(12.272, -136.424) kind 3: -20.073  FAILED, KNOWN, expected -20.074\n    test 1532 GeoidKarney('egm84-15.pgm').height(-15.203, -85.604) kind 3: -3.129\n    test 1533 GeoidKarney('egm84-15.pgm').height(-63.736, -77.17) kind 3: -3.216  FAILED, KNOWN, expected -3.217\n    test 1534 GeoidKarney('egm84-15.pgm').height(-48.771, -90.102) kind 3: -1.532  FAILED, KNOWN, expected -1.531\n    test 1535 GeoidKarney('egm84-15.pgm').height(-0.179, -126.368) kind 3: -16.741  FAILED, KNOWN, expected -16.742\n    test 1536 GeoidKarney('egm84-15.pgm').height(1.586, -128.887) kind 3: -15.413  FAILED, KNOWN, expected -15.412\n    test 1537 GeoidKarney('egm84-15.pgm').height(-48.781, -2.684) kind 3: 25.079  FAILED, KNOWN, expected 25.078\n    test 1538 GeoidKarney('egm84-15.pgm').height(-49.092, 136.862) kind 3: -18.120\n    test 1539 GeoidKarney('egm84-15.pgm').height(47.732, 17.552) kind 3: 46.225  FAILED, KNOWN, expected 46.224\n    test 1540 GeoidKarney('egm84-15.pgm').height(-49.11, 85.706) kind 3: 18.649\n    test 1541 GeoidKarney('egm84-15.pgm').height(-49.162, 40.321) kind 3: 44.763  FAILED, KNOWN, expected 44.764\n    test 1542 GeoidKarney('egm84-15.pgm').height(3.498, 158.118) kind 3: 51.090  FAILED, KNOWN, expected 51.089\n    test 1543 GeoidKarney('egm84-15.pgm').height(-35.616, 122.648) kind 3: -34.470  FAILED, KNOWN, expected -34.471\n    test 1544 GeoidKarney('egm84-15.pgm').height(56.598, -96.114) kind 3: -39.125  FAILED, KNOWN, expected -39.124\n    test 1545 GeoidKarney('egm84-15.pgm').height(-31.85, 149.121) kind 3: 28.142\n    test 1546 GeoidKarney('egm84-15.pgm').height(-26.569, -177.792) kind 3: 49.620  FAILED, KNOWN, expected 49.619\n    test 1547 GeoidKarney('egm84-15.pgm').height(76.735, -65.753) kind 3: 22.576  FAILED, KNOWN, expected 22.575\n    test 1548 GeoidKarney('egm84-15.pgm').height(-21.404, -122.268) kind 3: -6.893\n    test 1549 GeoidKarney('egm84-15.pgm').height(-77.133, -65.474) kind 3: -15.013  FAILED, KNOWN, expected -15.012\n    test 1550 GeoidKarney('egm84-15.pgm').height(-58.812, 2.276) kind 3: 18.777  FAILED, KNOWN, expected 18.776\n    test 1551 GeoidKarney('egm84-15.pgm').height(4.415, 155.683) kind 3: 53.645\n    test 1552 GeoidKarney('egm84-15.pgm').height(-28.146, 107.081) kind 3: -39.073  FAILED, KNOWN, expected -39.074\n    test 1553 GeoidKarney('egm84-15.pgm').height(-10.551, -126.69) kind 3: -9.645\n    test 1554 GeoidKarney('egm84-15.pgm').height(-25.444, -103.337) kind 3: -2.527  FAILED, KNOWN, expected -2.528\n    test 1555 GeoidKarney('egm84-15.pgm').height(24.436, 46.159) kind 3: -6.907\n    test 1556 GeoidKarney('egm84-15.pgm').height(-72.889, 37.107) kind 3: 21.715  FAILED, KNOWN, expected 21.711\n    test 1557 GeoidKarney('egm84-15.pgm').height(-19.629, 13.245) kind 3: 25.612  FAILED, KNOWN, expected 25.611\n    test 1558 GeoidKarney('egm84-15.pgm').height(-7.602, 171.265) kind 3: 41.570  FAILED, KNOWN, expected 41.569\n    test 1559 GeoidKarney('egm84-15.pgm').height(-45.364, -1.876) kind 3: 23.280\n    test 1560 GeoidKarney('egm84-15.pgm').height(-7.292, -69.18) kind 3: 24.502\n    test 1561 GeoidKarney('egm84-15.pgm').height(-31.566, -166.689) kind 3: 14.825  FAILED, KNOWN, expected 14.826\n    test 1562 GeoidKarney('egm84-15.pgm').height(-82.751, -162.085) kind 3: -45.104\n    test 1563 GeoidKarney('egm84-15.pgm').height(-40.7, 99.466) kind 3: -17.252\n    test 1564 GeoidKarney('egm84-15.pgm').height(48.676, 39.69) kind 3: 12.972\n    test 1565 GeoidKarney('egm84-15.pgm').height(74.817, -78.404) kind 3: 4.777  FAILED, KNOWN, expected 4.776\n    test 1566 GeoidKarney('egm84-15.pgm').height(-81.032, -63.865) kind 3: -23.578  FAILED, KNOWN, expected -23.577\n    test 1567 GeoidKarney('egm84-15.pgm').height(74.022, 9.432) kind 3: 43.886  FAILED, KNOWN, expected 43.885\n    test 1568 GeoidKarney('egm84-15.pgm').height(-75.071, 17.579) kind 3: 17.071  FAILED, KNOWN, expected 17.072\n    test 1569 GeoidKarney('egm84-15.pgm').height(-12.546, -54.851) kind 3: -6.643\n    test 1570 GeoidKarney('egm84-15.pgm').height(-13.621, 42.408) kind 3: -23.326  FAILED, KNOWN, expected -23.325\n    test 1571 GeoidKarney('egm84-15.pgm').height(-2.266, -91.951) kind 3: -10.699  FAILED, KNOWN, expected -10.698\n    test 1572 GeoidKarney('egm84-15.pgm').height(-18.672, 42.547) kind 3: -10.268  FAILED, KNOWN, expected -10.265\n    test 1573 GeoidKarney('egm84-15.pgm').height(-41.44, 157.413) kind 3: 0.690  FAILED, KNOWN, expected 0.689\n    test 1574 GeoidKarney('egm84-15.pgm').height(53.686, -79.375) kind 3: -43.759  FAILED, KNOWN, expected -43.758\n    test 1575 GeoidKarney('egm84-15.pgm').height(39.26, -30.351) kind 3: 57.553  FAILED, KNOWN, expected 57.554\n    test 1576 GeoidKarney('egm84-15.pgm').height(-51.699, -141.493) kind 3: -16.937  FAILED, KNOWN, expected -16.936\n    test 1577 GeoidKarney('egm84-15.pgm').height(36.585, 4.515) kind 3: 45.291  FAILED, KNOWN, expected 45.295\n    test 1578 GeoidKarney('egm84-15.pgm').height(39.642, -54.659) kind 3: -13.585  FAILED, KNOWN, expected -13.586\n    test 1579 GeoidKarney('egm84-15.pgm').height(59.761, 166.567) kind 3: 11.467  FAILED, KNOWN, expected 11.468\n    test 1580 GeoidKarney('egm84-15.pgm').height(51.83, 13.357) kind 3: 42.092\n    test 1581 GeoidKarney('egm84-15.pgm').height(-36.531, -175.431) kind 3: 22.830\n    test 1582 GeoidKarney('egm84-15.pgm').height(-37.08, 125.264) kind 3: -32.302\n    test 1583 GeoidKarney('egm84-15.pgm').height(-68.651, 92.732) kind 3: 9.228\n    test 1584 GeoidKarney('egm84-15.pgm').height(35.087, 45.336) kind 3: 5.966  FAILED, KNOWN, expected 5.965\n    test 1585 GeoidKarney('egm84-15.pgm').height(-61.356, -169.379) kind 3: -45.012  FAILED, KNOWN, expected -45.013\n    test 1586 GeoidKarney('egm84-15.pgm').height(-36.955, 179.12) kind 3: 21.118\n    test 1587 GeoidKarney('egm84-15.pgm').height(10.248, -6.714) kind 3: 30.497\n    test 1588 GeoidKarney('egm84-15.pgm').height(36.868, 84.602) kind 3: -40.397  FAILED, KNOWN, expected -40.396\n    test 1589 GeoidKarney('egm84-15.pgm').height(28.637, 88.933) kind 3: -31.701  FAILED, KNOWN, expected -31.704\n    test 1590 GeoidKarney('egm84-15.pgm').height(54.811, -99.968) kind 3: -32.276  FAILED, KNOWN, expected -32.277\n    test 1591 GeoidKarney('egm84-15.pgm').height(7.611, 145.911) kind 3: 61.024\n    test 1592 GeoidKarney('egm84-15.pgm').height(59.412, 170.102) kind 3: 4.996  FAILED, KNOWN, expected 4.994\n    test 1593 GeoidKarney('egm84-15.pgm').height(-61.469, 126.144) kind 3: -30.238  FAILED, KNOWN, expected -30.237\n    test 1594 GeoidKarney('egm84-15.pgm').height(18.514, -137.083) kind 3: -26.006\n    test 1595 GeoidKarney('egm84-15.pgm').height(7.854, -126.799) kind 3: -29.283\n    test 1596 GeoidKarney('egm84-15.pgm').height(47.489, 134.183) kind 3: 22.393  FAILED, KNOWN, expected 22.394\n    test 1597 GeoidKarney('egm84-15.pgm').height(-34.144, -11.922) kind 3: 17.550\n    test 1598 GeoidKarney('egm84-15.pgm').height(-58.389, 117.458) kind 3: -20.623  FAILED, KNOWN, expected -20.622\n    test 1599 GeoidKarney('egm84-15.pgm').height(9.773, 95.846) kind 3: -41.482  FAILED, KNOWN, expected -41.484\n    test 1600 GeoidKarney('egm84-15.pgm').height(-53.12, 136.994) kind 3: -20.968\n    test 1601 GeoidKarney('egm84-15.pgm').height(-50.35, 0.075) kind 3: 25.567  FAILED, KNOWN, expected 25.568\n    test 1602 GeoidKarney('egm84-15.pgm').height(31.438, -170.879) kind 3: -8.581\n    test 1603 GeoidKarney('egm84-15.pgm').height(37.541, -153.024) kind 3: -18.330  FAILED, KNOWN, expected -18.329\n    test 1604 GeoidKarney('egm84-15.pgm').height(27.586, 2.444) kind 3: 25.000  FAILED, KNOWN, expected 25.001\n    test 1605 GeoidKarney('egm84-15.pgm').height(-26.139, -106.201) kind 3: -2.941  FAILED, KNOWN, expected -2.940\n    test 1606 GeoidKarney('egm84-15.pgm').height(-33.426, -14.84) kind 3: 18.229  FAILED, KNOWN, expected 18.228\n    test 1607 GeoidKarney('egm84-15.pgm').height(39.586, -153.019) kind 3: -16.507\n    test 1608 GeoidKarney('egm84-15.pgm').height(-60.79, -2.578) kind 3: 14.275\n    test 1609 GeoidKarney('egm84-15.pgm').height(-20.131, 21.975) kind 3: 16.853  FAILED, KNOWN, expected 16.852\n    test 1610 GeoidKarney('egm84-15.pgm').height(75.649, 99.921) kind 3: -6.872\n    test 1611 GeoidKarney('egm84-15.pgm').height(-0.385, -23.788) kind 3: 9.005  FAILED, KNOWN, expected 9.006\n    test 1612 GeoidKarney('egm84-15.pgm').height(-51.56, -50.327) kind 3: 6.294  FAILED, KNOWN, expected 6.296\n    test 1613 GeoidKarney('egm84-15.pgm').height(-43.129, -167.271) kind 3: -1.482  FAILED, KNOWN, expected -1.481\n    test 1614 GeoidKarney('egm84-15.pgm').height(46.374, 71.948) kind 3: -40.916  FAILED, KNOWN, expected -40.915\n    test 1615 GeoidKarney('egm84-15.pgm').height(-22.783, 140.657) kind 3: 37.495\n    test 1616 GeoidKarney('egm84-15.pgm').height(-12.056, 122.804) kind 3: 32.255  FAILED, KNOWN, expected 32.258\n    test 1617 GeoidKarney('egm84-15.pgm').height(30.127, 94.738) kind 3: -41.528  FAILED, KNOWN, expected -41.529\n    test 1618 GeoidKarney('egm84-15.pgm').height(46.296, -174.479) kind 3: -1.376  FAILED, KNOWN, expected -1.377\n    test 1619 GeoidKarney('egm84-15.pgm').height(34.99, 15.052) kind 3: 35.279  FAILED, KNOWN, expected 35.280\n    test 1620 GeoidKarney('egm84-15.pgm').height(-51.287, 90.565) kind 3: 12.958\n    test 1621 GeoidKarney('egm84-15.pgm').height(34.217, 141.302) kind 3: 18.313  FAILED, KNOWN, expected 18.307\n    test 1622 GeoidKarney('egm84-15.pgm').height(-40.423, -142.787) kind 3: -10.400\n    test 1623 GeoidKarney('egm84-15.pgm').height(-17.854, -170.216) kind 3: 28.640  FAILED, KNOWN, expected 28.638\n    test 1624 GeoidKarney('egm84-15.pgm').height(47.803, 112.701) kind 3: -24.059\n    test 1625 GeoidKarney('egm84-15.pgm').height(-23.276, 133.454) kind 3: 18.806\n    test 1626 GeoidKarney('egm84-15.pgm').height(-26.884, -36.571) kind 3: -6.819  FAILED, KNOWN, expected -6.820\n    test 1627 GeoidKarney('egm84-15.pgm').height(-37.106, 31.128) kind 3: 31.486\n    test 1628 GeoidKarney('egm84-15.pgm').height(-75.363, -173.674) kind 3: -62.024\n    test 1629 GeoidKarney('egm84-15.pgm').height(-18.305, 69.016) kind 3: -24.247  FAILED, KNOWN, expected -24.248\n    test 1630 GeoidKarney('egm84-15.pgm').height(39.527, 23.58) kind 3: 43.255\n    test 1631 GeoidKarney('egm84-15.pgm').height(68.903, 30.97) kind 3: 18.499  FAILED, KNOWN, expected 18.498\n    test 1632 GeoidKarney('egm84-15.pgm').height(53.937, 168.318) kind 3: 4.069  FAILED, KNOWN, expected 4.067\n    test 1633 GeoidKarney('egm84-15.pgm').height(-38.6, 64.812) kind 3: 25.455  FAILED, KNOWN, expected 25.454\n    test 1634 GeoidKarney('egm84-15.pgm').height(-41.396, -69.739) kind 3: 26.655  FAILED, KNOWN, expected 26.657\n    test 1635 GeoidKarney('egm84-15.pgm').height(50.158, 72.319) kind 3: -31.967  FAILED, KNOWN, expected -31.966\n    test 1636 GeoidKarney('egm84-15.pgm').height(27.692, 176.153) kind 3: -4.416  FAILED, KNOWN, expected -4.415\n    test 1637 GeoidKarney('egm84-15.pgm').height(-48.419, 170.454) kind 3: -6.741\n    test 1638 GeoidKarney('egm84-15.pgm').height(-65.346, -124.976) kind 3: -34.902  FAILED, KNOWN, expected -34.900\n    test 1639 GeoidKarney('egm84-15.pgm').height(-51.873, 167.266) kind 3: -14.223\n    test 1640 GeoidKarney('egm84-15.pgm').height(-7.263, 84.308) kind 3: -79.317\n    test 1641 GeoidKarney('egm84-15.pgm').height(-1.461, -105.458) kind 3: -16.162  FAILED, KNOWN, expected -16.163\n    test 1642 GeoidKarney('egm84-15.pgm').height(7.684, 161.873) kind 3: 36.288  FAILED, KNOWN, expected 36.287\n    test 1643 GeoidKarney('egm84-15.pgm').height(-31.475, -158.52) kind 3: 4.067  FAILED, KNOWN, expected 4.068\n    test 1644 GeoidKarney('egm84-15.pgm').height(-36.187, 62.917) kind 3: 24.406  FAILED, KNOWN, expected 24.407\n    test 1645 GeoidKarney('egm84-15.pgm').height(16.003, 141.687) kind 3: 53.053  FAILED, KNOWN, expected 53.054\n    test 1646 GeoidKarney('egm84-15.pgm').height(30.182, 86.261) kind 3: -30.621  FAILED, KNOWN, expected -30.622\n    test 1647 GeoidKarney('egm84-15.pgm').height(-77.304, 159.498) kind 3: -53.540\n    test 1648 GeoidKarney('egm84-15.pgm').height(39.536, 139.795) kind 3: 36.262\n    test 1649 GeoidKarney('egm84-15.pgm').height(8.569, 134.618) kind 3: 64.367  FAILED, KNOWN, expected 64.369\n    test 1650 GeoidKarney('egm84-15.pgm').height(14.473, 90.596) kind 3: -61.301  FAILED, KNOWN, expected -61.300\n    test 1651 GeoidKarney('egm84-15.pgm').height(-13.138, -99.589) kind 3: -8.000  FAILED, KNOWN, expected -7.999\n    test 1652 GeoidKarney('egm84-15.pgm').height(34.212, -26.307) kind 3: 41.479  FAILED, KNOWN, expected 41.477\n    test 1653 GeoidKarney('egm84-15.pgm').height(21.89, 76.371) kind 3: -59.875  FAILED, KNOWN, expected -59.876\n    test 1654 GeoidKarney('egm84-15.pgm').height(29.793, 120.487) kind 3: 8.404\n    test 1655 GeoidKarney('egm84-15.pgm').height(15.724, 122.714) kind 3: 39.154  FAILED, KNOWN, expected 39.152\n    test 1656 GeoidKarney('egm84-15.pgm').height(-66.208, -78.499) kind 3: -7.076\n    test 1657 GeoidKarney('egm84-15.pgm').height(-39.507, 55.809) kind 3: 33.179  FAILED, KNOWN, expected 33.178\n    test 1658 GeoidKarney('egm84-15.pgm').height(28.159, 51.476) kind 3: -23.832\n    test 1659 GeoidKarney('egm84-15.pgm').height(-36.207, 120.205) kind 3: -38.206\n    test 1660 GeoidKarney('egm84-15.pgm').height(30.575, -99.998) kind 3: -22.144  FAILED, KNOWN, expected -22.142\n    test 1661 GeoidKarney('egm84-15.pgm').height(-16.993, 37.136) kind 3: -13.763  FAILED, KNOWN, expected -13.765\n    test 1662 GeoidKarney('egm84-15.pgm').height(-11.477, 12.039) kind 3: 16.899  FAILED, KNOWN, expected 16.898\n    test 1663 GeoidKarney('egm84-15.pgm').height(30.428, -144.765) kind 3: -22.475  FAILED, KNOWN, expected -22.474\n    test 1664 GeoidKarney('egm84-15.pgm').height(-17.44, -92.424) kind 3: -4.717  FAILED, KNOWN, expected -4.718\n    test 1665 GeoidKarney('egm84-15.pgm').height(40.203, 143.43) kind 3: 16.635\n    test 1666 GeoidKarney('egm84-15.pgm').height(-37.098, -106.574) kind 3: -9.011  FAILED, KNOWN, expected -9.012\n    test 1667 GeoidKarney('egm84-15.pgm').height(54.62, -68.413) kind 3: -23.544  FAILED, KNOWN, expected -23.543\n    test 1668 GeoidKarney('egm84-15.pgm').height(-31.633, 148.182) kind 3: 26.236\n    test 1669 GeoidKarney('egm84-15.pgm').height(-56.07, -141.407) kind 3: -21.955  FAILED, KNOWN, expected -21.953\n    test 1670 GeoidKarney('egm84-15.pgm').height(-8.195, -52.691) kind 3: -17.959\n    test 1671 GeoidKarney('egm84-15.pgm').height(17.851, 24.749) kind 3: 9.078\n    test 1672 GeoidKarney('egm84-15.pgm').height(0.349, -108.333) kind 3: -19.157  FAILED, KNOWN, expected -19.158\n    test 1673 GeoidKarney('egm84-15.pgm').height(15.038, 126.191) kind 3: 46.776\n    test 1674 GeoidKarney('egm84-15.pgm').height(-21.111, -123.696) kind 3: -8.055\n    test 1675 GeoidKarney('egm84-15.pgm').height(30.947, 173.002) kind 3: -7.695  FAILED, KNOWN, expected -7.696\n    test 1676 GeoidKarney('egm84-15.pgm').height(-10.698, -144.091) kind 3: -1.048  FAILED, KNOWN, expected -1.049\n    test 1677 GeoidKarney('egm84-15.pgm').height(-29.412, 124.753) kind 3: -16.082  FAILED, KNOWN, expected -16.081\n    test 1678 GeoidKarney('egm84-15.pgm').height(38.224, -137.189) kind 3: -35.426  FAILED, KNOWN, expected -35.427\n    test 1679 GeoidKarney('egm84-15.pgm').height(36.064, -132.409) kind 3: -38.648\n    test 1680 GeoidKarney('egm84-15.pgm').height(29.975, 178.076) kind 3: -5.519\n    test 1681 GeoidKarney('egm84-15.pgm').height(-21.346, 169.26) kind 3: 53.430  FAILED, KNOWN, expected 53.431\n    test 1682 GeoidKarney('egm84-15.pgm').height(49.282, -152.934) kind 3: 1.978  FAILED, KNOWN, expected 1.979\n    test 1683 GeoidKarney('egm84-15.pgm').height(16.349, -99.962) kind 3: -13.194  FAILED, KNOWN, expected -13.197\n    test 1684 GeoidKarney('egm84-15.pgm').height(-14.293, -167.34) kind 3: 18.945\n    test 1685 GeoidKarney('egm84-15.pgm').height(47.166, -38.523) kind 3: 45.185  FAILED, KNOWN, expected 45.187\n    test 1686 GeoidKarney('egm84-15.pgm').height(-58.911, 114.347) kind 3: -17.146  FAILED, KNOWN, expected -17.145\n    test 1687 GeoidKarney('egm84-15.pgm').height(-9.055, 111.294) kind 3: 13.145  FAILED, KNOWN, expected 13.146\n    test 1688 GeoidKarney('egm84-15.pgm').height(18.391, 29.692) kind 3: 4.932  FAILED, KNOWN, expected 4.933\n    test 1689 GeoidKarney('egm84-15.pgm').height(-15.074, 22.153) kind 3: 12.327  FAILED, KNOWN, expected 12.326\n    test 1690 GeoidKarney('egm84-15.pgm').height(-4.235, 62.001) kind 3: -60.029  FAILED, KNOWN, expected -60.030\n    test 1691 GeoidKarney('egm84-15.pgm').height(15.171, -86.583) kind 3: 3.107  FAILED, KNOWN, expected 3.110\n    test 1692 GeoidKarney('egm84-15.pgm').height(79.254, 112.116) kind 3: -2.741\n    test 1693 GeoidKarney('egm84-15.pgm').height(15.947, 156.093) kind 3: 32.086  FAILED, KNOWN, expected 32.085\n    test 1694 GeoidKarney('egm84-15.pgm').height(68.371, -177.382) kind 3: 2.060\n    test 1695 GeoidKarney('egm84-15.pgm').height(-41.931, -72.093) kind 3: 22.916\n    test 1696 GeoidKarney('egm84-15.pgm').height(-1.193, -143.133) kind 3: 5.519\n    test 1697 GeoidKarney('egm84-15.pgm').height(-37.006, 154.513) kind 3: 11.021  FAILED, KNOWN, expected 11.020\n    test 1698 GeoidKarney('egm84-15.pgm').height(-22.148, 9.938) kind 3: 22.171\n    test 1699 GeoidKarney('egm84-15.pgm').height(24.329, 109.044) kind 3: -22.945  FAILED, KNOWN, expected -22.944\n    test 1700 GeoidKarney('egm84-15.pgm').height(-54.878, 114.691) kind 3: -17.579  FAILED, KNOWN, expected -17.580\n    test 1701 GeoidKarney('egm84-15.pgm').height(45.601, -80.458) kind 3: -35.737  FAILED, KNOWN, expected -35.738\n    test 1702 GeoidKarney('egm84-15.pgm').height(2.372, 58.974) kind 3: -61.040\n    test 1703 GeoidKarney('egm84-15.pgm').height(15.937, 165.854) kind 3: 20.906  FAILED, KNOWN, expected 20.907\n    test 1704 GeoidKarney('egm84-15.pgm').height(4.889, -24.213) kind 3: 13.874\n    test 1705 GeoidKarney('egm84-15.pgm').height(-11.392, 179.558) kind 3: 40.928  FAILED, KNOWN, expected 40.929\n    test 1706 GeoidKarney('egm84-15.pgm').height(58.246, 4.862) kind 3: 43.191\n    test 1707 GeoidKarney('egm84-15.pgm').height(34.302, -109.109) kind 3: -22.006\n    test 1708 GeoidKarney('egm84-15.pgm').height(-58.196, 117.306) kind 3: -20.375\n    test 1709 GeoidKarney('egm84-15.pgm').height(44.5, 173.769) kind 3: -7.851  FAILED, KNOWN, expected -7.852\n    test 1710 GeoidKarney('egm84-15.pgm').height(-28.863, -139.775) kind 3: -8.675  FAILED, KNOWN, expected -8.674\n    test 1711 GeoidKarney('egm84-15.pgm').height(19.507, -96.099) kind 3: -14.116  FAILED, KNOWN, expected -14.117\n    test 1712 GeoidKarney('egm84-15.pgm').height(-42.488, -73.907) kind 3: 17.252  FAILED, KNOWN, expected 17.251\n    test 1713 GeoidKarney('egm84-15.pgm').height(46.138, -141.429) kind 3: -19.435  FAILED, KNOWN, expected -19.436\n    test 1714 GeoidKarney('egm84-15.pgm').height(60.507, 93.743) kind 3: -31.331  FAILED, KNOWN, expected -31.330\n    test 1715 GeoidKarney('egm84-15.pgm').height(26.219, -145.434) kind 3: -17.091  FAILED, KNOWN, expected -17.090\n    test 1716 GeoidKarney('egm84-15.pgm').height(-28.687, 3.37) kind 3: 24.184\n    test 1717 GeoidKarney('egm84-15.pgm').height(-15.008, 117.45) kind 3: 6.142\n    test 1718 GeoidKarney('egm84-15.pgm').height(40.71, 144.095) kind 3: 11.693\n    test 1719 GeoidKarney('egm84-15.pgm').height(20.823, -173.611) kind 3: 6.839  FAILED, KNOWN, expected 6.840\n    test 1720 GeoidKarney('egm84-15.pgm').height(16.776, -3.009) kind 3: 31.298\n    test 1721 GeoidKarney('egm84-15.pgm').height(41.0, -95.0) kind 3: -31.952\n    test 1722 GeoidKarney('egm84-15.pgm').height(49.0, -120.5) kind 3: -14.946\n    test 1723 GeoidKarney('egm84-15.pgm').height(49.0, -103.5) kind 3: -17.032\n    test 1724 GeoidKarney('egm84-15.pgm').height(49.0, -86.5) kind 3: -37.962\n    test 1725 GeoidKarney('egm84-15.pgm').height(49.0, -69.5) kind 3: -26.492\n    test 1726 GeoidKarney('egm84-15.pgm').height(33.0, -120.5) kind 3: -39.543\n    test 1727 GeoidKarney('egm84-15.pgm').height(33.0, -103.5) kind 3: -22.556\n    test 1728 GeoidKarney('egm84-15.pgm').height(33.0, -86.5) kind 3: -28.710\n    test 1729 GeoidKarney('egm84-15.pgm').height(33.0, -69.5) kind 3: -46.590\n\n    test 1730 GeoidKarney('egm84-15.pgm').height() kind 3, hits 0, eps max (in 0 FAILED): 0.005459\n    test 1731 GeoidKarney('egm84-15.pgm').height() kind 3, hits 0, eps mean (of 210 total): 0.000736\n    test 1732 GeoidKarney('egm84-15.pgm').height() kind 3, hits 0, eps stdev (of 210 total): 0.000728\n    test 1733 GeoidKarney('egm84-15.pgm').toStr: GeoidKarney('egm84-15.pgm'): lowerleft(-90.0, -180.0, -29.712), upperright(90.0, 180.0, 13.098), center(0.0, 0.0, 18.33), highest(-4.5, 148.75, 81.33), lowest(4.75, 79.25, -107.34)\n\n    test 1734 closed: True\n    test 1735 copy(<type 'type'>): (<class 'pygeodesy.geoids.GeoidKarney'>, True)\n    test 1736 GeoidKarney.copy(): (<class 'pygeodesy.geoids.GeoidKarney'>, True)\n    test 1737 GeoidPGM('egm84-15.pgm').height(-76.981, 34.17) kind 3: lli ('-76.981466, 34.17016'), H (False) or wrap (False): lli ('-76.981466, 34.17016'): outside on SE  FAILED, KNOWN, expected 11.729\n    test 1738 GeoidPGM('egm84-15.pgm').height(79.695, 88.806) kind 3: lli ('79.695484, 88.805571'), H (False) or wrap (False): lli ('79.695484, 88.805571'): outside on NE  FAILED, KNOWN, expected 0.270\n    test 1739 GeoidPGM('egm84-15.pgm').height(-15.245, 168.748) kind 3: lli ('-15.244804, 168.747961'), H (False) or wrap (False): lli ('-15.244804, 168.747961'): outside on SE  FAILED, KNOWN, expected 67.074\n    test 1740 GeoidPGM('egm84-15.pgm').height(-19.379, 15.855) kind 3: lli ('-19.379357, 15.85511'), H (False) or wrap (False): lli ('-19.379357, 15.85511'): outside on SE  FAILED, KNOWN, expected 25.344\n    test 1741 GeoidPGM('egm84-15.pgm').height(43.378, -130.552) kind 3: lli ('43.377784, -130.551582'), H (False) or wrap (False): lli ('43.377784, -130.551582'): outside on W  FAILED, KNOWN, expected -28.919\n    test 1742 GeoidPGM('egm84-15.pgm').height(-16.075, 21.795) kind 3: lli ('-16.074554, 21.79547'), H (False) or wrap (False): lli ('-16.074554, 21.79547'): outside on SE  FAILED, KNOWN, expected 14.386\n    test 1743 GeoidPGM('egm84-15.pgm').height(-11.256, -73.75) kind 3: lli ('-11.256389, -73.750255'), H (False) or wrap (False): lli ('-11.256389, -73.750255'): outside on S  FAILED, KNOWN, expected 30.700\n    test 1744 GeoidPGM('egm84-15.pgm').height(69.017, -15.921) kind 3: lli ('69.016564, -15.921115'), H (False) or wrap (False): lli ('69.016564, -15.921115'): outside on NE  FAILED, KNOWN, expected 62.225\n    test 1745 GeoidPGM('egm84-15.pgm').height(2.221, 139.739) kind 3: lli ('2.221008, 139.73935'), H (False) or wrap (False): lli ('2.221008, 139.73935'): outside on SE  FAILED, KNOWN, expected 70.222\n    test 1746 GeoidPGM('egm84-15.pgm').height(-9.097, 119.142) kind 3: lli ('-9.096878, 119.141551'), H (False) or wrap (False): lli ('-9.096878, 119.141551'): outside on SE  FAILED, KNOWN, expected 34.336\n    test 1747 GeoidPGM('egm84-15.pgm').height(-28.524, -22.192) kind 3: lli ('-28.523717, -22.1925'), H (False) or wrap (False): lli ('-28.523717, -22.1925'): outside on SE  FAILED, KNOWN, expected 8.206\n    test 1748 GeoidPGM('egm84-15.pgm').height(12.272, -136.424) kind 3: lli ('12.27231, -136.424168'), H (False) or wrap (False): lli ('12.27231, -136.424168'): outside on SW  FAILED, KNOWN, expected -20.074\n    test 1749 GeoidPGM('egm84-15.pgm').height(-15.203, -85.604) kind 3: lli ('-15.20317, -85.603753'), H (False) or wrap (False): lli ('-15.20317, -85.603753'): outside on S  FAILED, KNOWN, expected -3.129\n    test 1750 GeoidPGM('egm84-15.pgm').height(-63.736, -77.17) kind 3: lli ('-63.735565, -77.169636'), H (False) or wrap (False): lli ('-63.735565, -77.169636'): outside on S  FAILED, KNOWN, expected -3.217\n    test 1751 GeoidPGM('egm84-15.pgm').height(-48.771, -90.102) kind 3: lli ('-48.770825, -90.102117'), H (False) or wrap (False): lli ('-48.770825, -90.102117'): outside on S  FAILED, KNOWN, expected -1.531\n    test 1752 GeoidPGM('egm84-15.pgm').height(-0.179, -126.368) kind 3: lli ('-0.178524, -126.368279'), H (False) or wrap (False): lli ('-0.178524, -126.368279'): outside on SW  FAILED, KNOWN, expected -16.742\n    test 1753 GeoidPGM('egm84-15.pgm').height(1.586, -128.887) kind 3: lli ('1.585536, -128.886967'), H (False) or wrap (False): lli ('1.585536, -128.886967'): outside on SW  FAILED, KNOWN, expected -15.412\n    test 1754 GeoidPGM('egm84-15.pgm').height(-48.781, -2.684) kind 3: lli ('-48.780705, -2.684224'), H (False) or wrap (False): lli ('-48.780705, -2.684224'): outside on SE  FAILED, KNOWN, expected 25.078\n    test 1755 GeoidPGM('egm84-15.pgm').height(-49.092, 136.862) kind 3: lli ('-49.091632, 136.862256'), H (False) or wrap (False): lli ('-49.091632, 136.862256'): outside on SE  FAILED, KNOWN, expected -18.120\n    test 1756 GeoidPGM('egm84-15.pgm').height(47.732, 17.552) kind 3: lli ('47.731727, 17.552416'), H (False) or wrap (False): lli ('47.731727, 17.552416'): outside on E  FAILED, KNOWN, expected 46.224\n    test 1757 GeoidPGM('egm84-15.pgm').height(-49.11, 85.706) kind 3: lli ('-49.109549, 85.706437'), H (False) or wrap (False): lli ('-49.109549, 85.706437'): outside on SE  FAILED, KNOWN, expected 18.649\n    test 1758 GeoidPGM('egm84-15.pgm').height(-49.162, 40.321) kind 3: lli ('-49.162281, 40.321209'), H (False) or wrap (False): lli ('-49.162281, 40.321209'): outside on SE  FAILED, KNOWN, expected 44.764\n    test 1759 GeoidPGM('egm84-15.pgm').height(3.498, 158.118) kind 3: lli ('3.498333, 158.117699'), H (False) or wrap (False): lli ('3.498333, 158.117699'): outside on SE  FAILED, KNOWN, expected 51.089\n    test 1760 GeoidPGM('egm84-15.pgm').height(-35.616, 122.648) kind 3: lli ('-35.616495, 122.648407'), H (False) or wrap (False): lli ('-35.616495, 122.648407'): outside on SE  FAILED, KNOWN, expected -34.471\n    test 1761 GeoidPGM('egm84-15.pgm').height(56.598, -96.114) kind 3: lli ('56.598256, -96.113696'), H (False) or wrap (False): lli ('56.598256, -96.113696'): outside on N  FAILED, KNOWN, expected -39.124\n    test 1762 GeoidPGM('egm84-15.pgm').height(-31.85, 149.121) kind 3: lli ('-31.850231, 149.120596'), H (False) or wrap (False): lli ('-31.850231, 149.120596'): outside on SE  FAILED, KNOWN, expected 28.142\n    test 1763 GeoidPGM('egm84-15.pgm').height(-26.569, -177.792) kind 3: lli ('-26.568996, -177.792196'), H (False) or wrap (False): lli ('-26.568996, -177.792196'): outside on SW  FAILED, KNOWN, expected 49.619\n    test 1764 GeoidPGM('egm84-15.pgm').height(76.735, -65.753) kind 3: lli ('76.734699, -65.752952'), H (False) or wrap (False): lli ('76.734699, -65.752952'): outside on N  FAILED, KNOWN, expected 22.575\n    test 1765 GeoidPGM('egm84-15.pgm').height(-21.404, -122.268) kind 3: lli ('-21.404166, -122.267869'), H (False) or wrap (False): lli ('-21.404166, -122.267869'): outside on S  FAILED, KNOWN, expected -6.893\n    test 1766 GeoidPGM('egm84-15.pgm').height(-77.133, -65.474) kind 3: lli ('-77.133426, -65.473819'), H (False) or wrap (False): lli ('-77.133426, -65.473819'): outside on S  FAILED, KNOWN, expected -15.012\n    test 1767 GeoidPGM('egm84-15.pgm').height(-58.812, 2.276) kind 3: lli ('-58.811779, 2.276142'), H (False) or wrap (False): lli ('-58.811779, 2.276142'): outside on SE  FAILED, KNOWN, expected 18.776\n    test 1768 GeoidPGM('egm84-15.pgm').height(4.415, 155.683) kind 3: lli ('4.415102, 155.683336'), H (False) or wrap (False): lli ('4.415102, 155.683336'): outside on SE  FAILED, KNOWN, expected 53.645\n    test 1769 GeoidPGM('egm84-15.pgm').height(-28.146, 107.081) kind 3: lli ('-28.145768, 107.081334'), H (False) or wrap (False): lli ('-28.145768, 107.081334'): outside on SE  FAILED, KNOWN, expected -39.074\n    test 1770 GeoidPGM('egm84-15.pgm').height(-10.551, -126.69) kind 3: lli ('-10.551267, -126.690468'), H (False) or wrap (False): lli ('-10.551267, -126.690468'): outside on SW  FAILED, KNOWN, expected -9.645\n    test 1771 GeoidPGM('egm84-15.pgm').height(-25.444, -103.337) kind 3: lli ('-25.444344, -103.337184'), H (False) or wrap (False): lli ('-25.444344, -103.337184'): outside on S  FAILED, KNOWN, expected -2.528\n    test 1772 GeoidPGM('egm84-15.pgm').height(24.436, 46.159) kind 3: lli ('24.435896, 46.158715'), H (False) or wrap (False): lli ('24.435896, 46.158715'): outside on SE  FAILED, KNOWN, expected -6.907\n    test 1773 GeoidPGM('egm84-15.pgm').height(-72.889, 37.107) kind 3: lli ('-72.888898, 37.106907'), H (False) or wrap (False): lli ('-72.888898, 37.106907'): outside on SE  FAILED, KNOWN, expected 21.711\n    test 1774 GeoidPGM('egm84-15.pgm').height(-19.629, 13.245) kind 3: lli ('-19.628762, 13.244525'), H (False) or wrap (False): lli ('-19.628762, 13.244525'): outside on SE  FAILED, KNOWN, expected 25.611\n    test 1775 GeoidPGM('egm84-15.pgm').height(-7.602, 171.265) kind 3: lli ('-7.602449, 171.264763'), H (False) or wrap (False): lli ('-7.602449, 171.264763'): outside on SE  FAILED, KNOWN, expected 41.569\n    test 1776 GeoidPGM('egm84-15.pgm').height(-45.364, -1.876) kind 3: lli ('-45.364396, -1.876412'), H (False) or wrap (False): lli ('-45.364396, -1.876412'): outside on SE  FAILED, KNOWN, expected 23.280\n    test 1777 GeoidPGM('egm84-15.pgm').height(-7.292, -69.18) kind 3: lli ('-7.292121, -69.179565'), H (False) or wrap (False): lli ('-7.292121, -69.179565'): outside on S  FAILED, KNOWN, expected 24.502\n    test 1778 GeoidPGM('egm84-15.pgm').height(-31.566, -166.689) kind 3: lli ('-31.566264, -166.688985'), H (False) or wrap (False): lli ('-31.566264, -166.688985'): outside on SW  FAILED, KNOWN, expected 14.826\n    test 1779 GeoidPGM('egm84-15.pgm').height(-82.751, -162.085) kind 3: lli ('-82.751144, -162.08523'), H (False) or wrap (False): lli ('-82.751144, -162.08523'): outside on SW  FAILED, KNOWN, expected -45.104\n    test 1780 GeoidPGM('egm84-15.pgm').height(-40.7, 99.466) kind 3: lli ('-40.699637, 99.465509'), H (False) or wrap (False): lli ('-40.699637, 99.465509'): outside on SE  FAILED, KNOWN, expected -17.252\n    test 1781 GeoidPGM('egm84-15.pgm').height(48.676, 39.69) kind 3: lli ('48.675771, 39.690012'), H (False) or wrap (False): lli ('48.675771, 39.690012'): outside on E  FAILED, KNOWN, expected 12.972\n    test 1782 GeoidPGM('egm84-15.pgm').height(74.817, -78.404) kind 3: lli ('74.817287, -78.404187'), H (False) or wrap (False): lli ('74.817287, -78.404187'): outside on N  FAILED, KNOWN, expected 4.776\n    test 1783 GeoidPGM('egm84-15.pgm').height(-81.032, -63.865) kind 3: lli ('-81.032306, -63.864898'), H (False) or wrap (False): lli ('-81.032306, -63.864898'): outside on SE  FAILED, KNOWN, expected -23.577\n    test 1784 GeoidPGM('egm84-15.pgm').height(74.022, 9.432) kind 3: lli ('74.021785, 9.431926'), H (False) or wrap (False): lli ('74.021785, 9.431926'): outside on NE  FAILED, KNOWN, expected 43.885\n    test 1785 GeoidPGM('egm84-15.pgm').height(-75.071, 17.579) kind 3: lli ('-75.070563, 17.57935'), H (False) or wrap (False): lli ('-75.070563, 17.57935'): outside on SE  FAILED, KNOWN, expected 17.072\n    test 1786 GeoidPGM('egm84-15.pgm').height(-12.546, -54.851) kind 3: lli ('-12.54612, -54.850614'), H (False) or wrap (False): lli ('-12.54612, -54.850614'): outside on SE  FAILED, KNOWN, expected -6.643\n    test 1787 GeoidPGM('egm84-15.pgm').height(-13.621, 42.408) kind 3: lli ('-13.621418, 42.407805'), H (False) or wrap (False): lli ('-13.621418, 42.407805'): outside on SE  FAILED, KNOWN, expected -23.325\n    test 1788 GeoidPGM('egm84-15.pgm').height(-2.266, -91.951) kind 3: lli ('-2.265774, -91.951437'), H (False) or wrap (False): lli ('-2.265774, -91.951437'): outside on S  FAILED, KNOWN, expected -10.698\n    test 1789 GeoidPGM('egm84-15.pgm').height(-18.672, 42.547) kind 3: lli ('-18.672316, 42.547125'), H (False) or wrap (False): lli ('-18.672316, 42.547125'): outside on SE  FAILED, KNOWN, expected -10.265\n    test 1790 GeoidPGM('egm84-15.pgm').height(-41.44, 157.413) kind 3: lli ('-41.439867, 157.413161'), H (False) or wrap (False): lli ('-41.439867, 157.413161'): outside on SE  FAILED, KNOWN, expected 0.689\n    test 1791 GeoidPGM('egm84-15.pgm').height(53.686, -79.375) kind 3: -43.759  FAILED, KNOWN, expected -43.758\n    test 1792 GeoidPGM('egm84-15.pgm').height(39.26, -30.351) kind 3: lli ('39.260397, -30.351359'), H (False) or wrap (False): lli ('39.260397, -30.351359'): outside on E  FAILED, KNOWN, expected 57.554\n    test 1793 GeoidPGM('egm84-15.pgm').height(-51.699, -141.493) kind 3: lli ('-51.699195, -141.493082'), H (False) or wrap (False): lli ('-51.699195, -141.493082'): outside on SW  FAILED, KNOWN, expected -16.936\n    test 1794 GeoidPGM('egm84-15.pgm').height(36.585, 4.515) kind 3: lli ('36.584861, 4.515157'), H (False) or wrap (False): lli ('36.584861, 4.515157'): outside on E  FAILED, KNOWN, expected 45.295\n    test 1795 GeoidPGM('egm84-15.pgm').height(39.642, -54.659) kind 3: lli ('39.641638, -54.658846'), H (False) or wrap (False): lli ('39.641638, -54.658846'): outside on E  FAILED, KNOWN, expected -13.586\n    test 1796 GeoidPGM('egm84-15.pgm').height(59.761, 166.567) kind 3: lli ('59.761024, 166.566646'), H (False) or wrap (False): lli ('59.761024, 166.566646'): outside on NE  FAILED, KNOWN, expected 11.468\n    test 1797 GeoidPGM('egm84-15.pgm').height(51.83, 13.357) kind 3: lli ('51.830001, 13.357464'), H (False) or wrap (False): lli ('51.830001, 13.357464'): outside on E  FAILED, KNOWN, expected 42.092\n    test 1798 GeoidPGM('egm84-15.pgm').height(-36.531, -175.431) kind 3: lli ('-36.530912, -175.430804'), H (False) or wrap (False): lli ('-36.530912, -175.430804'): outside on SW  FAILED, KNOWN, expected 22.830\n    test 1799 GeoidPGM('egm84-15.pgm').height(-37.08, 125.264) kind 3: lli ('-37.079518, 125.263901'), H (False) or wrap (False): lli ('-37.079518, 125.263901'): outside on SE  FAILED, KNOWN, expected -32.302\n    test 1800 GeoidPGM('egm84-15.pgm').height(-68.651, 92.732) kind 3: lli ('-68.650762, 92.731524'), H (False) or wrap (False): lli ('-68.650762, 92.731524'): outside on SE  FAILED, KNOWN, expected 9.228\n    test 1801 GeoidPGM('egm84-15.pgm').height(35.087, 45.336) kind 3: lli ('35.086645, 45.335611'), H (False) or wrap (False): lli ('35.086645, 45.335611'): outside on E  FAILED, KNOWN, expected 5.965\n    test 1802 GeoidPGM('egm84-15.pgm').height(-61.356, -169.379) kind 3: lli ('-61.355646, -169.378929'), H (False) or wrap (False): lli ('-61.355646, -169.378929'): outside on SW  FAILED, KNOWN, expected -45.013\n    test 1803 GeoidPGM('egm84-15.pgm').height(-36.955, 179.12) kind 3: lli ('-36.954967, 179.11982'), H (False) or wrap (False): lli ('-36.954967, 179.11982'): outside on SE  FAILED, KNOWN, expected 21.118\n    test 1804 GeoidPGM('egm84-15.pgm').height(10.248, -6.714) kind 3: lli ('10.248399, -6.713559'), H (False) or wrap (False): lli ('10.248399, -6.713559'): outside on SE  FAILED, KNOWN, expected 30.497\n    test 1805 GeoidPGM('egm84-15.pgm').height(36.868, 84.602) kind 3: lli ('36.868193, 84.602243'), H (False) or wrap (False): lli ('36.868193, 84.602243'): outside on E  FAILED, KNOWN, expected -40.396\n    test 1806 GeoidPGM('egm84-15.pgm').height(28.637, 88.933) kind 3: lli ('28.636703, 88.932955'), H (False) or wrap (False): lli ('28.636703, 88.932955'): outside on E  FAILED, KNOWN, expected -31.704\n    test 1807 GeoidPGM('egm84-15.pgm').height(54.811, -99.968) kind 3: -32.277\n    test 1808 GeoidPGM('egm84-15.pgm').height(7.611, 145.911) kind 3: lli ('7.610621, 145.911188'), H (False) or wrap (False): lli ('7.610621, 145.911188'): outside on SE  FAILED, KNOWN, expected 61.024\n    test 1809 GeoidPGM('egm84-15.pgm').height(59.412, 170.102) kind 3: lli ('59.411557, 170.102394'), H (False) or wrap (False): lli ('59.411557, 170.102394'): outside on NE  FAILED, KNOWN, expected 4.994\n    test 1810 GeoidPGM('egm84-15.pgm').height(-61.469, 126.144) kind 3: lli ('-61.468618, 126.144056'), H (False) or wrap (False): lli ('-61.468618, 126.144056'): outside on SE  FAILED, KNOWN, expected -30.237\n    test 1811 GeoidPGM('egm84-15.pgm').height(18.514, -137.083) kind 3: lli ('18.514019, -137.083301'), H (False) or wrap (False): lli ('18.514019, -137.083301'): outside on SW  FAILED, KNOWN, expected -26.006\n    test 1812 GeoidPGM('egm84-15.pgm').height(7.854, -126.799) kind 3: lli ('7.854318, -126.799148'), H (False) or wrap (False): lli ('7.854318, -126.799148'): outside on SW  FAILED, KNOWN, expected -29.283\n    test 1813 GeoidPGM('egm84-15.pgm').height(47.489, 134.183) kind 3: lli ('47.489222, 134.182527'), H (False) or wrap (False): lli ('47.489222, 134.182527'): outside on E  FAILED, KNOWN, expected 22.394\n    test 1814 GeoidPGM('egm84-15.pgm').height(-34.144, -11.922) kind 3: lli ('-34.143602, -11.921567'), H (False) or wrap (False): lli ('-34.143602, -11.921567'): outside on SE  FAILED, KNOWN, expected 17.550\n    test 1815 GeoidPGM('egm84-15.pgm').height(-58.389, 117.458) kind 3: lli ('-58.388787, 117.457755'), H (False) or wrap (False): lli ('-58.388787, 117.457755'): outside on SE  FAILED, KNOWN, expected -20.622\n    test 1816 GeoidPGM('egm84-15.pgm').height(9.773, 95.846) kind 3: lli ('9.772764, 95.845943'), H (False) or wrap (False): lli ('9.772764, 95.845943'): outside on SE  FAILED, KNOWN, expected -41.484\n    test 1817 GeoidPGM('egm84-15.pgm').height(-53.12, 136.994) kind 3: lli ('-53.120381, 136.993994'), H (False) or wrap (False): lli ('-53.120381, 136.993994'): outside on SE  FAILED, KNOWN, expected -20.968\n    test 1818 GeoidPGM('egm84-15.pgm').height(-50.35, 0.075) kind 3: lli ('-50.349867, 0.07532'), H (False) or wrap (False): lli ('-50.349867, 0.07532'): outside on SE  FAILED, KNOWN, expected 25.568\n    test 1819 GeoidPGM('egm84-15.pgm').height(31.438, -170.879) kind 3: lli ('31.438387, -170.878548'), H (False) or wrap (False): lli ('31.438387, -170.878548'): outside on W  FAILED, KNOWN, expected -8.581\n    test 1820 GeoidPGM('egm84-15.pgm').height(37.541, -153.024) kind 3: lli ('37.540689, -153.024228'), H (False) or wrap (False): lli ('37.540689, -153.024228'): outside on W  FAILED, KNOWN, expected -18.329\n    test 1821 GeoidPGM('egm84-15.pgm').height(27.586, 2.444) kind 3: lli ('27.586088, 2.443556'), H (False) or wrap (False): lli ('27.586088, 2.443556'): outside on E  FAILED, KNOWN, expected 25.001\n    test 1822 GeoidPGM('egm84-15.pgm').height(-26.139, -106.201) kind 3: lli ('-26.139126, -106.20081'), H (False) or wrap (False): lli ('-26.139126, -106.20081'): outside on S  FAILED, KNOWN, expected -2.940\n    test 1823 GeoidPGM('egm84-15.pgm').height(-33.426, -14.84) kind 3: lli ('-33.425976, -14.840359'), H (False) or wrap (False): lli ('-33.425976, -14.840359'): outside on SE  FAILED, KNOWN, expected 18.228\n    test 1824 GeoidPGM('egm84-15.pgm').height(39.586, -153.019) kind 3: lli ('39.586286, -153.018974'), H (False) or wrap (False): lli ('39.586286, -153.018974'): outside on W  FAILED, KNOWN, expected -16.507\n    test 1825 GeoidPGM('egm84-15.pgm').height(-60.79, -2.578) kind 3: lli ('-60.790289, -2.578163'), H (False) or wrap (False): lli ('-60.790289, -2.578163'): outside on SE  FAILED, KNOWN, expected 14.275\n    test 1826 GeoidPGM('egm84-15.pgm').height(-20.131, 21.975) kind 3: lli ('-20.130538, 21.974941'), H (False) or wrap (False): lli ('-20.130538, 21.974941'): outside on SE  FAILED, KNOWN, expected 16.852\n    test 1827 GeoidPGM('egm84-15.pgm').height(75.649, 99.921) kind 3: lli ('75.64878, 99.920587'), H (False) or wrap (False): lli ('75.64878, 99.920587'): outside on NE  FAILED, KNOWN, expected -6.872\n    test 1828 GeoidPGM('egm84-15.pgm').height(-0.385, -23.788) kind 3: lli ('-0.385453, -23.788336'), H (False) or wrap (False): lli ('-0.385453, -23.788336'): outside on SE  FAILED, KNOWN, expected 9.006\n    test 1829 GeoidPGM('egm84-15.pgm').height(-51.56, -50.327) kind 3: lli ('-51.559564, -50.32687'), H (False) or wrap (False): lli ('-51.559564, -50.32687'): outside on SE  FAILED, KNOWN, expected 6.296\n    test 1830 GeoidPGM('egm84-15.pgm').height(-43.129, -167.271) kind 3: lli ('-43.129209, -167.27147'), H (False) or wrap (False): lli ('-43.129209, -167.27147'): outside on SW  FAILED, KNOWN, expected -1.481\n    test 1831 GeoidPGM('egm84-15.pgm').height(46.374, 71.948) kind 3: lli ('46.374177, 71.947616'), H (False) or wrap (False): lli ('46.374177, 71.947616'): outside on E  FAILED, KNOWN, expected -40.915\n    test 1832 GeoidPGM('egm84-15.pgm').height(-22.783, 140.657) kind 3: lli ('-22.783085, 140.657444'), H (False) or wrap (False): lli ('-22.783085, 140.657444'): outside on SE  FAILED, KNOWN, expected 37.495\n    test 1833 GeoidPGM('egm84-15.pgm').height(-12.056, 122.804) kind 3: lli ('-12.05584, 122.80402'), H (False) or wrap (False): lli ('-12.05584, 122.80402'): outside on SE  FAILED, KNOWN, expected 32.258\n    test 1834 GeoidPGM('egm84-15.pgm').height(30.127, 94.738) kind 3: lli ('30.127372, 94.738186'), H (False) or wrap (False): lli ('30.127372, 94.738186'): outside on E  FAILED, KNOWN, expected -41.529\n    test 1835 GeoidPGM('egm84-15.pgm').height(46.296, -174.479) kind 3: lli ('46.296018, -174.478616'), H (False) or wrap (False): lli ('46.296018, -174.478616'): outside on W  FAILED, KNOWN, expected -1.377\n    test 1836 GeoidPGM('egm84-15.pgm').height(34.99, 15.052) kind 3: lli ('34.989646, 15.051646'), H (False) or wrap (False): lli ('34.989646, 15.051646'): outside on E  FAILED, KNOWN, expected 35.280\n    test 1837 GeoidPGM('egm84-15.pgm').height(-51.287, 90.565) kind 3: lli ('-51.287168, 90.564711'), H (False) or wrap (False): lli ('-51.287168, 90.564711'): outside on SE  FAILED, KNOWN, expected 12.958\n    test 1838 GeoidPGM('egm84-15.pgm').height(34.217, 141.302) kind 3: lli ('34.217016, 141.301548'), H (False) or wrap (False): lli ('34.217016, 141.301548'): outside on E  FAILED, KNOWN, expected 18.307\n    test 1839 GeoidPGM('egm84-15.pgm').height(-40.423, -142.787) kind 3: lli ('-40.423023, -142.786592'), H (False) or wrap (False): lli ('-40.423023, -142.786592'): outside on SW  FAILED, KNOWN, expected -10.400\n    test 1840 GeoidPGM('egm84-15.pgm').height(-17.854, -170.216) kind 3: lli ('-17.854486, -170.216354'), H (False) or wrap (False): lli ('-17.854486, -170.216354'): outside on SW  FAILED, KNOWN, expected 28.638\n    test 1841 GeoidPGM('egm84-15.pgm').height(47.803, 112.701) kind 3: lli ('47.803271, 112.700942'), H (False) or wrap (False): lli ('47.803271, 112.700942'): outside on E  FAILED, KNOWN, expected -24.059\n    test 1842 GeoidPGM('egm84-15.pgm').height(-23.276, 133.454) kind 3: lli ('-23.275962, 133.453821'), H (False) or wrap (False): lli ('-23.275962, 133.453821'): outside on SE  FAILED, KNOWN, expected 18.806\n    test 1843 GeoidPGM('egm84-15.pgm').height(-26.884, -36.571) kind 3: lli ('-26.884369, -36.570654'), H (False) or wrap (False): lli ('-26.884369, -36.570654'): outside on SE  FAILED, KNOWN, expected -6.820\n    test 1844 GeoidPGM('egm84-15.pgm').height(-37.106, 31.128) kind 3: lli ('-37.106468, 31.127939'), H (False) or wrap (False): lli ('-37.106468, 31.127939'): outside on SE  FAILED, KNOWN, expected 31.486\n    test 1845 GeoidPGM('egm84-15.pgm').height(-75.363, -173.674) kind 3: lli ('-75.363185, -173.673649'), H (False) or wrap (False): lli ('-75.363185, -173.673649'): outside on SW  FAILED, KNOWN, expected -62.024\n    test 1846 GeoidPGM('egm84-15.pgm').height(-18.305, 69.016) kind 3: lli ('-18.30485, 69.015565'), H (False) or wrap (False): lli ('-18.30485, 69.015565'): outside on SE  FAILED, KNOWN, expected -24.248\n    test 1847 GeoidPGM('egm84-15.pgm').height(39.527, 23.58) kind 3: lli ('39.527401, 23.580206'), H (False) or wrap (False): lli ('39.527401, 23.580206'): outside on E  FAILED, KNOWN, expected 43.255\n    test 1848 GeoidPGM('egm84-15.pgm').height(68.903, 30.97) kind 3: lli ('68.903148, 30.970247'), H (False) or wrap (False): lli ('68.903148, 30.970247'): outside on NE  FAILED, KNOWN, expected 18.498\n    test 1849 GeoidPGM('egm84-15.pgm').height(53.937, 168.318) kind 3: lli ('53.936937, 168.318201'), H (False) or wrap (False): lli ('53.936937, 168.318201'): outside on E  FAILED, KNOWN, expected 4.067\n    test 1850 GeoidPGM('egm84-15.pgm').height(-38.6, 64.812) kind 3: lli ('-38.600098, 64.811532'), H (False) or wrap (False): lli ('-38.600098, 64.811532'): outside on SE  FAILED, KNOWN, expected 25.454\n    test 1851 GeoidPGM('egm84-15.pgm').height(-41.396, -69.739) kind 3: lli ('-41.395739, -69.739418'), H (False) or wrap (False): lli ('-41.395739, -69.739418'): outside on S  FAILED, KNOWN, expected 26.657\n    test 1852 GeoidPGM('egm84-15.pgm').height(50.158, 72.319) kind 3: lli ('50.157749, 72.319017'), H (False) or wrap (False): lli ('50.157749, 72.319017'): outside on E  FAILED, KNOWN, expected -31.966\n    test 1853 GeoidPGM('egm84-15.pgm').height(27.692, 176.153) kind 3: lli ('27.691879, 176.152884'), H (False) or wrap (False): lli ('27.691879, 176.152884'): outside on E  FAILED, KNOWN, expected -4.415\n    test 1854 GeoidPGM('egm84-15.pgm').height(-48.419, 170.454) kind 3: lli ('-48.419449, 170.454472'), H (False) or wrap (False): lli ('-48.419449, 170.454472'): outside on SE  FAILED, KNOWN, expected -6.741\n    test 1855 GeoidPGM('egm84-15.pgm').height(-65.346, -124.976) kind 3: lli ('-65.34567, -124.975961'), H (False) or wrap (False): lli ('-65.34567, -124.975961'): outside on S  FAILED, KNOWN, expected -34.900\n    test 1856 GeoidPGM('egm84-15.pgm').height(-51.873, 167.266) kind 3: lli ('-51.873009, 167.265613'), H (False) or wrap (False): lli ('-51.873009, 167.265613'): outside on SE  FAILED, KNOWN, expected -14.223\n    test 1857 GeoidPGM('egm84-15.pgm').height(-7.263, 84.308) kind 3: lli ('-7.262544, 84.307626'), H (False) or wrap (False): lli ('-7.262544, 84.307626'): outside on SE  FAILED, KNOWN, expected -79.317\n    test 1858 GeoidPGM('egm84-15.pgm').height(-1.461, -105.458) kind 3: lli ('-1.461003, -105.458323'), H (False) or wrap (False): lli ('-1.461003, -105.458323'): outside on S  FAILED, KNOWN, expected -16.163\n    test 1859 GeoidPGM('egm84-15.pgm').height(7.684, 161.873) kind 3: lli ('7.684324, 161.87293'), H (False) or wrap (False): lli ('7.684324, 161.87293'): outside on SE  FAILED, KNOWN, expected 36.287\n    test 1860 GeoidPGM('egm84-15.pgm').height(-31.475, -158.52) kind 3: lli ('-31.474549, -158.520033'), H (False) or wrap (False): lli ('-31.474549, -158.520033'): outside on SW  FAILED, KNOWN, expected 4.068\n    test 1861 GeoidPGM('egm84-15.pgm').height(-36.187, 62.917) kind 3: lli ('-36.187212, 62.917075'), H (False) or wrap (False): lli ('-36.187212, 62.917075'): outside on SE  FAILED, KNOWN, expected 24.407\n    test 1862 GeoidPGM('egm84-15.pgm').height(16.003, 141.687) kind 3: lli ('16.002975, 141.686552'), H (False) or wrap (False): lli ('16.002975, 141.686552'): outside on SE  FAILED, KNOWN, expected 53.054\n    test 1863 GeoidPGM('egm84-15.pgm').height(30.182, 86.261) kind 3: lli ('30.182218, 86.260576'), H (False) or wrap (False): lli ('30.182218, 86.260576'): outside on E  FAILED, KNOWN, expected -30.622\n    test 1864 GeoidPGM('egm84-15.pgm').height(-77.304, 159.498) kind 3: lli ('-77.303842, 159.497665'), H (False) or wrap (False): lli ('-77.303842, 159.497665'): outside on SE  FAILED, KNOWN, expected -53.540\n    test 1865 GeoidPGM('egm84-15.pgm').height(39.536, 139.795) kind 3: lli ('39.536, 139.795358'), H (False) or wrap (False): lli ('39.536, 139.795358'): outside on E  FAILED, KNOWN, expected 36.262\n    test 1866 GeoidPGM('egm84-15.pgm').height(8.569, 134.618) kind 3: lli ('8.569309, 134.618403'), H (False) or wrap (False): lli ('8.569309, 134.618403'): outside on SE  FAILED, KNOWN, expected 64.369\n    test 1867 GeoidPGM('egm84-15.pgm').height(14.473, 90.596) kind 3: lli ('14.473483, 90.595663'), H (False) or wrap (False): lli ('14.473483, 90.595663'): outside on SE  FAILED, KNOWN, expected -61.300\n    test 1868 GeoidPGM('egm84-15.pgm').height(-13.138, -99.589) kind 3: lli ('-13.13767, -99.589202'), H (False) or wrap (False): lli ('-13.13767, -99.589202'): outside on S  FAILED, KNOWN, expected -7.999\n    test 1869 GeoidPGM('egm84-15.pgm').height(34.212, -26.307) kind 3: lli ('34.211572, -26.307194'), H (False) or wrap (False): lli ('34.211572, -26.307194'): outside on E  FAILED, KNOWN, expected 41.477\n    test 1870 GeoidPGM('egm84-15.pgm').height(21.89, 76.371) kind 3: lli ('21.889732, 76.371362'), H (False) or wrap (False): lli ('21.889732, 76.371362'): outside on SE  FAILED, KNOWN, expected -59.876\n    test 1871 GeoidPGM('egm84-15.pgm').height(29.793, 120.487) kind 3: lli ('29.792909, 120.48703'), H (False) or wrap (False): lli ('29.792909, 120.48703'): outside on E  FAILED, KNOWN, expected 8.404\n    test 1872 GeoidPGM('egm84-15.pgm').height(15.724, 122.714) kind 3: lli ('15.723814, 122.713685'), H (False) or wrap (False): lli ('15.723814, 122.713685'): outside on SE  FAILED, KNOWN, expected 39.152\n    test 1873 GeoidPGM('egm84-15.pgm').height(-66.208, -78.499) kind 3: lli ('-66.20776, -78.498807'), H (False) or wrap (False): lli ('-66.20776, -78.498807'): outside on S  FAILED, KNOWN, expected -7.076\n    test 1874 GeoidPGM('egm84-15.pgm').height(-39.507, 55.809) kind 3: lli ('-39.507049, 55.808743'), H (False) or wrap (False): lli ('-39.507049, 55.808743'): outside on SE  FAILED, KNOWN, expected 33.178\n    test 1875 GeoidPGM('egm84-15.pgm').height(28.159, 51.476) kind 3: lli ('28.159494, 51.476474'), H (False) or wrap (False): lli ('28.159494, 51.476474'): outside on E  FAILED, KNOWN, expected -23.832\n    test 1876 GeoidPGM('egm84-15.pgm').height(-36.207, 120.205) kind 3: lli ('-36.206825, 120.205019'), H (False) or wrap (False): lli ('-36.206825, 120.205019'): outside on SE  FAILED, KNOWN, expected -38.206\n    test 1877 GeoidPGM('egm84-15.pgm').height(30.575, -99.998) kind 3: -22.143  FAILED, KNOWN, expected -22.142\n    test 1878 GeoidPGM('egm84-15.pgm').height(-16.993, 37.136) kind 3: lli ('-16.992515, 37.135881'), H (False) or wrap (False): lli ('-16.992515, 37.135881'): outside on SE  FAILED, KNOWN, expected -13.765\n    test 1879 GeoidPGM('egm84-15.pgm').height(-11.477, 12.039) kind 3: lli ('-11.476997, 12.038708'), H (False) or wrap (False): lli ('-11.476997, 12.038708'): outside on SE  FAILED, KNOWN, expected 16.898\n    test 1880 GeoidPGM('egm84-15.pgm').height(30.428, -144.765) kind 3: lli ('30.428465, -144.765049'), H (False) or wrap (False): lli ('30.428465, -144.765049'): outside on W  FAILED, KNOWN, expected -22.474\n    test 1881 GeoidPGM('egm84-15.pgm').height(-17.44, -92.424) kind 3: lli ('-17.439773, -92.424339'), H (False) or wrap (False): lli ('-17.439773, -92.424339'): outside on S  FAILED, KNOWN, expected -4.718\n    test 1882 GeoidPGM('egm84-15.pgm').height(40.203, 143.43) kind 3: lli ('40.203164, 143.429799'), H (False) or wrap (False): lli ('40.203164, 143.429799'): outside on E  FAILED, KNOWN, expected 16.635\n    test 1883 GeoidPGM('egm84-15.pgm').height(-37.098, -106.574) kind 3: lli ('-37.098392, -106.573712'), H (False) or wrap (False): lli ('-37.098392, -106.573712'): outside on S  FAILED, KNOWN, expected -9.012\n    test 1884 GeoidPGM('egm84-15.pgm').height(54.62, -68.413) kind 3: -23.544  FAILED, KNOWN, expected -23.543\n    test 1885 GeoidPGM('egm84-15.pgm').height(-31.633, 148.182) kind 3: lli ('-31.633252, 148.181926'), H (False) or wrap (False): lli ('-31.633252, 148.181926'): outside on SE  FAILED, KNOWN, expected 26.236\n    test 1886 GeoidPGM('egm84-15.pgm').height(-56.07, -141.407) kind 3: lli ('-56.069748, -141.406778'), H (False) or wrap (False): lli ('-56.069748, -141.406778'): outside on SW  FAILED, KNOWN, expected -21.953\n    test 1887 GeoidPGM('egm84-15.pgm').height(-8.195, -52.691) kind 3: lli ('-8.195214, -52.691177'), H (False) or wrap (False): lli ('-8.195214, -52.691177'): outside on SE  FAILED, KNOWN, expected -17.959\n    test 1888 GeoidPGM('egm84-15.pgm').height(17.851, 24.749) kind 3: lli ('17.850526, 24.748606'), H (False) or wrap (False): lli ('17.850526, 24.748606'): outside on SE  FAILED, KNOWN, expected 9.078\n    test 1889 GeoidPGM('egm84-15.pgm').height(0.349, -108.333) kind 3: lli ('0.349465, -108.332667'), H (False) or wrap (False): lli ('0.349465, -108.332667'): outside on S  FAILED, KNOWN, expected -19.158\n    test 1890 GeoidPGM('egm84-15.pgm').height(15.038, 126.191) kind 3: lli ('15.037932, 126.190545'), H (False) or wrap (False): lli ('15.037932, 126.190545'): outside on SE  FAILED, KNOWN, expected 46.776\n    test 1891 GeoidPGM('egm84-15.pgm').height(-21.111, -123.696) kind 3: lli ('-21.111105, -123.695981'), H (False) or wrap (False): lli ('-21.111105, -123.695981'): outside on S  FAILED, KNOWN, expected -8.055\n    test 1892 GeoidPGM('egm84-15.pgm').height(30.947, 173.002) kind 3: lli ('30.946618, 173.002137'), H (False) or wrap (False): lli ('30.946618, 173.002137'): outside on E  FAILED, KNOWN, expected -7.696\n    test 1893 GeoidPGM('egm84-15.pgm').height(-10.698, -144.091) kind 3: lli ('-10.698334, -144.091109'), H (False) or wrap (False): lli ('-10.698334, -144.091109'): outside on SW  FAILED, KNOWN, expected -1.049\n    test 1894 GeoidPGM('egm84-15.pgm').height(-29.412, 124.753) kind 3: lli ('-29.412071, 124.75279'), H (False) or wrap (False): lli ('-29.412071, 124.75279'): outside on SE  FAILED, KNOWN, expected -16.081\n    test 1895 GeoidPGM('egm84-15.pgm').height(38.224, -137.189) kind 3: lli ('38.223621, -137.189376'), H (False) or wrap (False): lli ('38.223621, -137.189376'): outside on W  FAILED, KNOWN, expected -35.427\n    test 1896 GeoidPGM('egm84-15.pgm').height(36.064, -132.409) kind 3: lli ('36.063775, -132.409284'), H (False) or wrap (False): lli ('36.063775, -132.409284'): outside on W  FAILED, KNOWN, expected -38.648\n    test 1897 GeoidPGM('egm84-15.pgm').height(29.975, 178.076) kind 3: lli ('29.974676, 178.075894'), H (False) or wrap (False): lli ('29.974676, 178.075894'): outside on E  FAILED, KNOWN, expected -5.519\n    test 1898 GeoidPGM('egm84-15.pgm').height(-21.346, 169.26) kind 3: lli ('-21.346396, 169.259508'), H (False) or wrap (False): lli ('-21.346396, 169.259508'): outside on SE  FAILED, KNOWN, expected 53.431\n    test 1899 GeoidPGM('egm84-15.pgm').height(49.282, -152.934) kind 3: lli ('49.282472, -152.934409'), H (False) or wrap (False): lli ('49.282472, -152.934409'): outside on W  FAILED, KNOWN, expected 1.979\n    test 1900 GeoidPGM('egm84-15.pgm').height(16.349, -99.962) kind 3: lli ('16.349121, -99.962229'), H (False) or wrap (False): lli ('16.349121, -99.962229'): outside on S  FAILED, KNOWN, expected -13.197\n    test 1901 GeoidPGM('egm84-15.pgm').height(-14.293, -167.34) kind 3: lli ('-14.293325, -167.339799'), H (False) or wrap (False): lli ('-14.293325, -167.339799'): outside on SW  FAILED, KNOWN, expected 18.945\n    test 1902 GeoidPGM('egm84-15.pgm').height(47.166, -38.523) kind 3: lli ('47.165911, -38.522629'), H (False) or wrap (False): lli ('47.165911, -38.522629'): outside on E  FAILED, KNOWN, expected 45.187\n    test 1903 GeoidPGM('egm84-15.pgm').height(-58.911, 114.347) kind 3: lli ('-58.910597, 114.346927'), H (False) or wrap (False): lli ('-58.910597, 114.346927'): outside on SE  FAILED, KNOWN, expected -17.145\n    test 1904 GeoidPGM('egm84-15.pgm').height(-9.055, 111.294) kind 3: lli ('-9.055095, 111.294422'), H (False) or wrap (False): lli ('-9.055095, 111.294422'): outside on SE  FAILED, KNOWN, expected 13.146\n    test 1905 GeoidPGM('egm84-15.pgm').height(18.391, 29.692) kind 3: lli ('18.390988, 29.691577'), H (False) or wrap (False): lli ('18.390988, 29.691577'): outside on SE  FAILED, KNOWN, expected 4.933\n    test 1906 GeoidPGM('egm84-15.pgm').height(-15.074, 22.153) kind 3: lli ('-15.074412, 22.152663'), H (False) or wrap (False): lli ('-15.074412, 22.152663'): outside on SE  FAILED, KNOWN, expected 12.326\n    test 1907 GeoidPGM('egm84-15.pgm').height(-4.235, 62.001) kind 3: lli ('-4.234571, 62.001081'), H (False) or wrap (False): lli ('-4.234571, 62.001081'): outside on SE  FAILED, KNOWN, expected -60.030\n    test 1908 GeoidPGM('egm84-15.pgm').height(15.171, -86.583) kind 3: lli ('15.170822, -86.582929'), H (False) or wrap (False): lli ('15.170822, -86.582929'): outside on S  FAILED, KNOWN, expected 3.110\n    test 1909 GeoidPGM('egm84-15.pgm').height(79.254, 112.116) kind 3: lli ('79.254009, 112.115515'), H (False) or wrap (False): lli ('79.254009, 112.115515'): outside on NE  FAILED, KNOWN, expected -2.741\n    test 1910 GeoidPGM('egm84-15.pgm').height(15.947, 156.093) kind 3: lli ('15.947068, 156.092678'), H (False) or wrap (False): lli ('15.947068, 156.092678'): outside on SE  FAILED, KNOWN, expected 32.085\n    test 1911 GeoidPGM('egm84-15.pgm').height(68.371, -177.382) kind 3: lli ('68.370605, -177.382127'), H (False) or wrap (False): lli ('68.370605, -177.382127'): outside on NW  FAILED, KNOWN, expected 2.060\n    test 1912 GeoidPGM('egm84-15.pgm').height(-41.931, -72.093) kind 3: lli ('-41.931009, -72.093413'), H (False) or wrap (False): lli ('-41.931009, -72.093413'): outside on S  FAILED, KNOWN, expected 22.916\n    test 1913 GeoidPGM('egm84-15.pgm').height(-1.193, -143.133) kind 3: lli ('-1.192967, -143.133078'), H (False) or wrap (False): lli ('-1.192967, -143.133078'): outside on SW  FAILED, KNOWN, expected 5.519\n    test 1914 GeoidPGM('egm84-15.pgm').height(-37.006, 154.513) kind 3: lli ('-37.006115, 154.512534'), H (False) or wrap (False): lli ('-37.006115, 154.512534'): outside on SE  FAILED, KNOWN, expected 11.020\n    test 1915 GeoidPGM('egm84-15.pgm').height(-22.148, 9.938) kind 3: lli ('-22.148493, 9.938408'), H (False) or wrap (False): lli ('-22.148493, 9.938408'): outside on SE  FAILED, KNOWN, expected 22.171\n    test 1916 GeoidPGM('egm84-15.pgm').height(24.329, 109.044) kind 3: lli ('24.328746, 109.043774'), H (False) or wrap (False): lli ('24.328746, 109.043774'): outside on SE  FAILED, KNOWN, expected -22.944\n    test 1917 GeoidPGM('egm84-15.pgm').height(-54.878, 114.691) kind 3: lli ('-54.877699, 114.691444'), H (False) or wrap (False): lli ('-54.877699, 114.691444'): outside on SE  FAILED, KNOWN, expected -17.580\n    test 1918 GeoidPGM('egm84-15.pgm').height(45.601, -80.458) kind 3: -35.737  FAILED, KNOWN, expected -35.738\n    test 1919 GeoidPGM('egm84-15.pgm').height(2.372, 58.974) kind 3: lli ('2.371766, 58.974082'), H (False) or wrap (False): lli ('2.371766, 58.974082'): outside on SE  FAILED, KNOWN, expected -61.040\n    test 1920 GeoidPGM('egm84-15.pgm').height(15.937, 165.854) kind 3: lli ('15.936522, 165.854035'), H (False) or wrap (False): lli ('15.936522, 165.854035'): outside on SE  FAILED, KNOWN, expected 20.907\n    test 1921 GeoidPGM('egm84-15.pgm').height(4.889, -24.213) kind 3: lli ('4.889499, -24.213194'), H (False) or wrap (False): lli ('4.889499, -24.213194'): outside on SE  FAILED, KNOWN, expected 13.874\n    test 1922 GeoidPGM('egm84-15.pgm').height(-11.392, 179.558) kind 3: lli ('-11.392365, 179.558198'), H (False) or wrap (False): lli ('-11.392365, 179.558198'): outside on SE  FAILED, KNOWN, expected 40.929\n    test 1923 GeoidPGM('egm84-15.pgm').height(58.246, 4.862) kind 3: lli ('58.24629, 4.862128'), H (False) or wrap (False): lli ('58.24629, 4.862128'): outside on NE  FAILED, KNOWN, expected 43.191\n    test 1924 GeoidPGM('egm84-15.pgm').height(34.302, -109.109) kind 3: -22.005  FAILED, KNOWN, expected -22.006\n    test 1925 GeoidPGM('egm84-15.pgm').height(-58.196, 117.306) kind 3: lli ('-58.195787, 117.305696'), H (False) or wrap (False): lli ('-58.195787, 117.305696'): outside on SE  FAILED, KNOWN, expected -20.375\n    test 1926 GeoidPGM('egm84-15.pgm').height(44.5, 173.769) kind 3: lli ('44.499876, 173.768568'), H (False) or wrap (False): lli ('44.499876, 173.768568'): outside on E  FAILED, KNOWN, expected -7.852\n    test 1927 GeoidPGM('egm84-15.pgm').height(-28.863, -139.775) kind 3: lli ('-28.862539, -139.774812'), H (False) or wrap (False): lli ('-28.862539, -139.774812'): outside on SW  FAILED, KNOWN, expected -8.674\n    test 1928 GeoidPGM('egm84-15.pgm').height(19.507, -96.099) kind 3: lli ('19.507043, -96.099433'), H (False) or wrap (False): lli ('19.507043, -96.099433'): outside on S  FAILED, KNOWN, expected -14.117\n    test 1929 GeoidPGM('egm84-15.pgm').height(-42.488, -73.907) kind 3: lli ('-42.487604, -73.906602'), H (False) or wrap (False): lli ('-42.487604, -73.906602'): outside on S  FAILED, KNOWN, expected 17.251\n    test 1930 GeoidPGM('egm84-15.pgm').height(46.138, -141.429) kind 3: lli ('46.138437, -141.429193'), H (False) or wrap (False): lli ('46.138437, -141.429193'): outside on W  FAILED, KNOWN, expected -19.436\n    test 1931 GeoidPGM('egm84-15.pgm').height(60.507, 93.743) kind 3: lli ('60.506969, 93.74336'), H (False) or wrap (False): lli ('60.506969, 93.74336'): outside on NE  FAILED, KNOWN, expected -31.330\n    test 1932 GeoidPGM('egm84-15.pgm').height(26.219, -145.434) kind 3: lli ('26.219081, -145.434391'), H (False) or wrap (False): lli ('26.219081, -145.434391'): outside on W  FAILED, KNOWN, expected -17.090\n    test 1933 GeoidPGM('egm84-15.pgm').height(-28.687, 3.37) kind 3: lli ('-28.68714, 3.370196'), H (False) or wrap (False): lli ('-28.68714, 3.370196'): outside on SE  FAILED, KNOWN, expected 24.184\n    test 1934 GeoidPGM('egm84-15.pgm').height(-15.008, 117.45) kind 3: lli ('-15.007944, 117.449536'), H (False) or wrap (False): lli ('-15.007944, 117.449536'): outside on SE  FAILED, KNOWN, expected 6.142\n    test 1935 GeoidPGM('egm84-15.pgm').height(40.71, 144.095) kind 3: lli ('40.710024, 144.095126'), H (False) or wrap (False): lli ('40.710024, 144.095126'): outside on E  FAILED, KNOWN, expected 11.693\n    test 1936 GeoidPGM('egm84-15.pgm').height(20.823, -173.611) kind 3: lli ('20.823096, -173.610797'), H (False) or wrap (False): lli ('20.823096, -173.610797'): outside on SW  FAILED, KNOWN, expected 6.840\n    test 1937 GeoidPGM('egm84-15.pgm').height(16.776, -3.009) kind 3: lli ('16.776, -3.009'), H (False) or wrap (False): lli ('16.776, -3.009'): outside on SE  FAILED, KNOWN, expected 31.298\n    test 1938 GeoidPGM('egm84-15.pgm').height(41.0, -95.0) kind 3: -31.953  FAILED, KNOWN, expected -31.952\n    test 1939 GeoidPGM('egm84-15.pgm').height(49.0, -120.5) kind 3: -14.946\n    test 1940 GeoidPGM('egm84-15.pgm').height(49.0, -103.5) kind 3: -17.031  FAILED, KNOWN, expected -17.032\n    test 1941 GeoidPGM('egm84-15.pgm').height(49.0, -86.5) kind 3: -37.962\n    test 1942 GeoidPGM('egm84-15.pgm').height(49.0, -69.5) kind 3: -26.493  FAILED, KNOWN, expected -26.492\n    test 1943 GeoidPGM('egm84-15.pgm').height(33.0, -120.5) kind 3: -39.543\n    test 1944 GeoidPGM('egm84-15.pgm').height(33.0, -103.5) kind 3: -22.557  FAILED, KNOWN, expected -22.556\n    test 1945 GeoidPGM('egm84-15.pgm').height(33.0, -86.5) kind 3: -28.710\n    test 1946 GeoidPGM('egm84-15.pgm').height(33.0, -69.5) kind 3: -46.590\n\n    test 1947 GeoidPGM('egm84-15.pgm').height() kind 3, eps max (in 0 FAILED): 0.001055\n    test 1948 GeoidPGM('egm84-15.pgm').height() kind 3, eps mean (of 15 total): 0.000534\n    test 1949 GeoidPGM('egm84-15.pgm').height() kind 3, eps stdev (of 15 total): 0.000293\n    test 1950 GeoidPGM('egm84-15.pgm').toStr: GeoidPGM('egm84-15.pgm'): lowerleft(25.0, -125.0, -45.237), upperright(55.0, -64.75, -15.43), center(40.0, -94.875, -33.654), highest(44.0, -110.25, -6.927), lowest(26.0, -69.5, -52.293)\n\n    test 1951 closed: True\n    test 1952 copy(<type 'type'>): (<class 'pygeodesy.geoids.GeoidPGM'>, True)\n    test 1953 GeoidPGM.copy(): (<class 'pygeodesy.geoids.GeoidPGM'>, True)\n    test 1954 GeoidG2012B('g2012bu0.bin').height(41.0, -95.0) kind 3: -30.312\n    test 1955 GeoidG2012B('g2012bu0.bin').height(49.0, -120.5) kind 3: -16.112\n    test 1956 GeoidG2012B('g2012bu0.bin').height(49.0, -103.5) kind 3: -18.955\n    test 1957 GeoidG2012B('g2012bu0.bin').height(49.0, -86.5) kind 3: -37.584\n    test 1958 GeoidG2012B('g2012bu0.bin').height(49.0, -69.5) kind 3: -25.867\n    test 1959 GeoidG2012B('g2012bu0.bin').height(33.0, -120.5) kind 3: -39.554\n    test 1960 GeoidG2012B('g2012bu0.bin').height(33.0, -103.5) kind 3: -21.917\n    test 1961 GeoidG2012B('g2012bu0.bin').height(33.0, -86.5) kind 3: -29.001\n    test 1962 GeoidG2012B('g2012bu0.bin').height(33.0, -69.5) kind 3: -46.725\n\n    test 1963 GeoidG2012B('g2012bu0.bin').height() kind 3, eps max (in 0 FAILED): 0.000400\n    test 1964 GeoidG2012B('g2012bu0.bin').height() kind 3, eps mean (of 9 total): 0.000222\n    test 1965 GeoidG2012B('g2012bu0.bin').height() kind 3, eps stdev (of 9 total): 0.000139\n    test 1966 GeoidG2012B('g2012bu0.bin').toStr: GeoidG2012B('g2012bu0.bin'): lowerleft(24.0, -130.0, -39.727), upperright(58.0, -59.983, 3.38), center(41.0, -94.992, -30.328), highest(58.0, -60.0, 3.31), lowest(25.9, -69.85, -50.709)\n\n    test 1967 closed: True\n    test 1968 copy(<type 'type'>): (<class 'pygeodesy.geoids.GeoidG2012B'>, True)\n    test 1969 GeoidG2012B.copy(): (<class 'pygeodesy.geoids.GeoidG2012B'>, True)\n    test 1970 GeoidEGM96('WW15MGH.GRD').height(41.0, -95.0) kind 3: -30.262  FAILED, KNOWN, expected -30.312\n    test 1971 GeoidEGM96('WW15MGH.GRD').height(49.0, -120.5) kind 3: -15.984  FAILED, KNOWN, expected -16.112\n    test 1972 GeoidEGM96('WW15MGH.GRD').height(49.0, -103.5) kind 3: -18.635  FAILED, KNOWN, expected -18.955\n    test 1973 GeoidEGM96('WW15MGH.GRD').height(49.0, -86.5) kind 3: -37.748  FAILED, KNOWN, expected -37.584\n    test 1974 GeoidEGM96('WW15MGH.GRD').height(49.0, -69.5) kind 3: -26.691  FAILED, KNOWN, expected -25.867\n    test 1975 GeoidEGM96('WW15MGH.GRD').height(33.0, -120.5) kind 3: -39.562  FAILED, KNOWN, expected -39.554\n    test 1976 GeoidEGM96('WW15MGH.GRD').height(33.0, -103.5) kind 3: -22.562  FAILED, KNOWN, expected -21.917\n    test 1977 GeoidEGM96('WW15MGH.GRD').height(33.0, -86.5) kind 3: -30.013  FAILED, KNOWN, expected -29.001\n    test 1978 GeoidEGM96('WW15MGH.GRD').height(33.0, -69.5) kind 3: -48.038  FAILED, KNOWN, expected -46.725\n\n    test 1979 GeoidEGM96('WW15MGH.GRD').height() kind 3, eps max (in 0 FAILED): 1.313000\n    test 1980 GeoidEGM96('WW15MGH.GRD').height() kind 3, eps mean (of 9 total): 0.496000\n    test 1981 GeoidEGM96('WW15MGH.GRD').height() kind 3, eps stdev (of 9 total): 0.444374\n    test 1982 GeoidEGM96('WW15MGH.GRD').toStr: GeoidEGM96('WW15MGH.GRD'): lowerleft(-90.0, -180.0, -29.534), upperright(90.0, 180.25, 13.606), center(0.0, 0.125, 17.125), highest(-8.25, -32.75, 85.391), lowest(4.75, -101.25, -106.991)\n\n    test 1983 closed: True\n    test 1984 copy(<type 'type'>): (<class 'pygeodesy.geoids.GeoidEGM96'>, True)\n    test 1985 GeoidEGM96.copy(): (<class 'pygeodesy.geoids.GeoidEGM96'>, True)\n\n    1394 of 1985 testGeoids.py tests (70.2%) FAILED, ALL KNOWN (pygeodesy 26.3.26 Python 2.7.18 64bit arm64_x86_64 geographiclib 1.50 numpy 1.16.6 scipy 1.2.2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 -W  default) 24.036 sec\nrunning /Library/Framewo....ython -W default ~/PyGeodesy/test/testGreatCircle.py\n\n    testing testGreatCircle.py 23.05.05\n\n    testGreatCircle(pygeodesy.sphericalNvector, 25.05.27)\n    test 1 InitialBearingSameLocations: 0.0\n    test 2 InitialBearingEqualLocations: 0.0\n    test 3 FinalBearingSameLocations: 180.0\n    test 4 FinalBearingEqualLocations: 180.0\n    test 5 FinalBearingCrossError: point (LatLon(43°55′51.28″N, 072°03′13.72″W)) or other (LatLon(43°55′51.28″N, 072°03′13.72″W)): coincident\n    test 6 DistanceSameLocations: 0.0\n    test 7 DistanceEqualLocations: 0.0\n    test 8 DistanceEiffelToVersailles: 14084.300096  FAILED, KNOWN, expected 14084.280705\n    test 9 DistanceVersaillesToEiffel: 14084.300096  FAILED, KNOWN, expected 14084.280705\n    test 10 InitialBearingEiffelToVersailles: 245.13460297\n    test 11 InitialBearingEiffelToVersailles(DMS): 245°08′04.5707″\n    test 12 InitialBearingVersaillesToEiffel: 65.003253951\n    test 13 InitialBearingVersaillesToEiffel(DMS): 65°00′11.7142″\n    test 14 FinalBearingEiffelToVersailles: 245.00325395\n    test 15 FinalBearingEiffelToVersailles(DMS): 245°00′11.7142″\n    test 16 FinalBearingVersaillesToEiffel: 65.134602969\n    test 17 FinalBearingVersaillesToEiffel(DMS): 65°08′04.5707″\n    test 18 GenerateLocationVersailles: 48.804766°N, 002.120339°E\n    test 19 GenerateLocationEiffel: 48.858158°N, 002.294825°E\n    test 20 MidpointEiffelToVersailles: 48.831495°N, 002.207536°E\n    test 21 MidpointEiffelToVersailles(DMS): 48°49′53.3817″N, 002°12′27.1279″E\n    test 22 MidpointEiffelToVersailles(m): 7042.15004788  FAILED, KNOWN, expected 7042.15974330\n    test 23 MidpointVersaillesToEiffel: 48.831495°N, 002.207536°E  FAILED, KNOWN, expected 48.831495°N, 002.207535°E\n    test 24 MidpointVersaillesToEiffel(DMS): 48°49′53.3817″N, 002°12′27.1279″E\n    test 25 MidpointVersaillesToEiffel(m): 7042.15004788  FAILED, KNOWN, expected 7042.15974330\n    test 26 Intersection: 48.83569095°N, 002.221252031°E\n    test 27 Intersection: 48.8356909498836°N, 002.2212520313074°E\n    test 28 CrossTrackDistance200m+90°: 200.0\n    test 29 CrossTrackDistance200m+270°: -200.0\n    test 30 CrossTrackDistanceCloseToZero: 0.0000000\n\n    testGreatCircle(pygeodesy.sphericalTrigonometry, 25.08.31)\n    test 31 InitialBearingSameLocations: 0.0\n    test 32 InitialBearingEqualLocations: 0.0\n    test 33 FinalBearingSameLocations: 180.0\n    test 34 FinalBearingEqualLocations: 180.0\n    test 35 FinalBearingCrossError: point (LatLon(43°55′51.28″N, 072°03′13.72″W)), other (LatLon(43°55′51.28″N, 072°03′13.72″W)) or wrap (False): coincident\n    test 36 DistanceSameLocations: 0.0\n    test 37 DistanceEqualLocations: 0.0\n    test 38 DistanceEiffelToVersailles: 14084.300096  FAILED, KNOWN, expected 14084.280705\n    test 39 DistanceVersaillesToEiffel: 14084.300096  FAILED, KNOWN, expected 14084.280705\n    test 40 InitialBearingEiffelToVersailles: 245.13460297\n    test 41 InitialBearingEiffelToVersailles(DMS): 245°08′04.5707″\n    test 42 InitialBearingVersaillesToEiffel: 65.003253951\n    test 43 InitialBearingVersaillesToEiffel(DMS): 65°00′11.7142″\n    test 44 FinalBearingEiffelToVersailles: 245.00325395\n    test 45 FinalBearingEiffelToVersailles(DMS): 245°00′11.7142″\n    test 46 FinalBearingVersaillesToEiffel: 65.134602969\n    test 47 FinalBearingVersaillesToEiffel(DMS): 65°08′04.5707″\n    test 48 GenerateLocationVersailles: 48.804766°N, 002.120339°E\n    test 49 GenerateLocationEiffel: 48.858158°N, 002.294825°E\n    test 50 MidpointEiffelToVersailles: 48.831495°N, 002.207536°E\n    test 51 MidpointEiffelToVersailles(DMS): 48°49′53.3817″N, 002°12′27.1279″E\n    test 52 MidpointEiffelToVersailles(m): 7042.15004788  FAILED, KNOWN, expected 7042.15974330\n    test 53 MidpointVersaillesToEiffel: 48.831495°N, 002.207536°E  FAILED, KNOWN, expected 48.831495°N, 002.207535°E\n    test 54 MidpointVersaillesToEiffel(DMS): 48°49′53.3817″N, 002°12′27.1279″E\n    test 55 MidpointVersaillesToEiffel(m): 7042.15004788  FAILED, KNOWN, expected 7042.15974331\n    test 56 Intersection: 48.83569095°N, 002.221252031°E\n    test 57 Intersection: 48.8356909498836°N, 002.2212520313074°E\n    test 58 CrossTrackDistance200m+90°: 200.0\n    test 59 CrossTrackDistance200m+270°: -200.0\n    test 60 CrossTrackDistanceCloseToZero: 0.0000000\n\n    10 of 60 testGreatCircle.py tests (16.7%) FAILED, ALL KNOWN (pygeodesy 26.3.26 Python 2.7.18 64bit arm64_x86_64 geographiclib 1.50 numpy 1.16.6 scipy 1.2.2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 -W  default) 19.762 ms\nrunning /Library/Framewo....ython -W default ~/PyGeodesy/test/testHausdorff.py\n./pygeodesy/hausdorff.py:605: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  self._func = self.datum.ellipsoid.geodesic.Inverse1\n\n    testing testHausdorff.py 24.12.31\n    test 1 randomrange[0]: ()\n    test 2 randomrange[1]: (0,)\n    test 3 randomrange[2]: (1, 0)\n    test 4 randomrange[8]: (0, 7, 5, 3, 2, 6, 1, 4)\n    test 5 randomrange[32]: (18, 3, 9, 29, 22, 11, 30, 26, 0, 23, 31, 16, 13, 6, 7, 12, 8, 24, 27, 20, 5, 21, 10, 1, 19, 14, 4, 17, 25, 15, 2, 28)\n    test 6 randomrange[128]: (109, 64, 14, 31, 88, 22, 32, 62, 73, 35, 60, 17, 76, 25, 68, 82, 91, 118, 34, 18, 41, 74, 106, 28, 36, 51, 26, 98, 16, 105, 83, 20, 97, 9, 114, 56, 1, 80, 8, 94, 110, 11, 39, 45, 112, 77, 72, 93, 79, 48, 69, 57, 102, 84, 124, 66, 107, 99, 117, 96, 100, 49, 123, 71, 63, 13, 127, 3, 121, 103, 61, 10, 58, 81, 87, 116, 113, 95, 59, 126, 86, 6, 33, 19, 65, 92, 12, 115, 0, 29, 46, 104, 54, 90, 44, 52, 89, 15, 101, 55, 47, 21, 37, 75, 111, 85, 24, 42, 70, 7, 122, 23, 53, 50, 27, 2, 43, 125, 67, 108, 38, 4, 120, 119, 30, 78, 5, 40)\n    test 7 HausdorffDegrees_ (degrees): (50.5, 61, 7, 90, 18.45556)\n    test 8 HausdorffDegrees_ (degrees): (50.5, 61, 7, 150, 16.05)\n    test 9 HausdorffDegrees_ (degrees): (50.5, 61, 7, 90, 18.45556)\n    test 10 HausdorffDegrees_ (degrees): (50.5, 61, 7, 150, 16.05)\n    test 11 HausdorffDegrees_ (degrees): (50.5, 61, 7, 90, None)\n    test 12 HausdorffDegrees_ (degrees): (50.5, 61, 7, 150, None)\n    test 13 HausdorffDegrees_ (degrees): (50.5, 61, 7, 90, None)\n    test 14 HausdorffDegrees_ (degrees): (50.5, 61, 7, 150, None)\n    test 15 copy(<type 'type'>): (<class '__main__.HausdorffDegrees_'>, True)\n    test 16 HausdorffDegrees_.copy(): (<class '__main__.HausdorffDegrees_'>, True)\n    test 17 HausdorffRadians_ (radians): (0.88139, 61, 7, 90, 0.32211)\n    test 18 HausdorffRadians_ (radians): (0.88139, 61, 7, 150, 0.28013)\n    test 19 HausdorffRadians_ (radians): (0.88139, 61, 7, 90, 0.32211)\n    test 20 HausdorffRadians_ (radians): (0.88139, 61, 7, 150, 0.28013)\n    test 21 HausdorffRadians_ (radians): (0.88139, 61, 7, 90, None)\n    test 22 HausdorffRadians_ (radians): (0.88139, 61, 7, 150, None)\n    test 23 HausdorffRadians_ (radians): (0.88139, 61, 7, 90, None)\n    test 24 HausdorffRadians_ (radians): (0.88139, 61, 7, 150, None)\n    test 25 copy(<type 'type'>): (<class '__main__.HausdorffRadians_'>, True)\n    test 26 HausdorffRadians_.copy(): (<class '__main__.HausdorffRadians_'>, True)\n    test 27 HausdorffCosineLaw (meter): (0.56202, 49, 29, 90, 0.19776)\n    test 28 HausdorffCosineLaw (meter): (0.56202, 49, 29, 150, 0.176)\n    test 29 HausdorffCosineLaw (meter): (0.56202, 49, 29, 90, 0.19776)\n    test 30 HausdorffCosineLaw (meter): (0.56202, 49, 29, 150, 0.176)\n    test 31 HausdorffCosineLaw (meter): (0.56202, 49, 29, 90, None)\n    test 32 HausdorffCosineLaw (meter): (0.56202, 49, 29, 150, None)\n    test 33 HausdorffCosineLaw (meter): (0.56202, 49, 29, 90, None)\n    test 34 HausdorffCosineLaw (meter): (0.56202, 49, 29, 150, None)\n    test 35 copy(<type 'type'>): (<class 'pygeodesy.hausdorff.HausdorffCosineLaw'>, True)\n    test 36 HausdorffCosineLaw.copy(): (<class 'pygeodesy.hausdorff.HausdorffCosineLaw'>, True)\n    test 37 HausdorffCosineLaw (meter): (0.56263, 49, 29, 90, 0.19764)\n    test 38 HausdorffCosineLaw (meter): (0.56263, 49, 29, 150, 0.17591)\n    test 39 HausdorffCosineLaw (meter): (0.56263, 49, 29, 90, 0.19764)\n    test 40 HausdorffCosineLaw (meter): (0.56263, 49, 29, 150, 0.17591)\n    test 41 HausdorffCosineLaw (meter): (0.56263, 49, 29, 90, None)\n    test 42 HausdorffCosineLaw (meter): (0.56263, 49, 29, 150, None)\n    test 43 HausdorffCosineLaw (meter): (0.56263, 49, 29, 90, None)\n    test 44 HausdorffCosineLaw (meter): (0.56263, 49, 29, 150, None)\n    test 45 copy(<type 'type'>): (<class 'pygeodesy.hausdorff.HausdorffCosineLaw'>, True)\n    test 46 HausdorffCosineLaw.copy(): (<class 'pygeodesy.hausdorff.HausdorffCosineLaw'>, True)\n    test 47 HausdorffCosineLaw (meter): (0.56263, 49, 29, 90, 0.19764)\n    test 48 HausdorffCosineLaw (meter): (0.56263, 49, 29, 150, 0.17591)\n    test 49 HausdorffCosineLaw (meter): (0.56263, 49, 29, 90, 0.19764)\n    test 50 HausdorffCosineLaw (meter): (0.56263, 49, 29, 150, 0.17591)\n    test 51 HausdorffCosineLaw (meter): (0.56263, 49, 29, 90, None)\n    test 52 HausdorffCosineLaw (meter): (0.56263, 49, 29, 150, None)\n    test 53 HausdorffCosineLaw (meter): (0.56263, 49, 29, 90, None)\n    test 54 HausdorffCosineLaw (meter): (0.56263, 49, 29, 150, None)\n    test 55 copy(<type 'type'>): (<class 'pygeodesy.hausdorff.HausdorffCosineLaw'>, True)\n    test 56 HausdorffCosineLaw.copy(): (<class 'pygeodesy.hausdorff.HausdorffCosineLaw'>, True)\n    test 57 HausdorffEquirectangular (degrees2): (0.33016, 49, 29, 90, 0.06075)\n    test 58 HausdorffEquirectangular (degrees2): (0.33016, 49, 29, 150, 0.04918)\n    test 59 HausdorffEquirectangular (degrees2): (0.33016, 49, 29, 90, 0.06075)\n    test 60 HausdorffEquirectangular (degrees2): (0.33016, 49, 29, 150, 0.04918)\n    test 61 HausdorffEquirectangular (degrees2): (0.33016, 49, 29, 90, None)\n    test 62 HausdorffEquirectangular (degrees2): (0.33016, 49, 29, 150, None)\n    test 63 HausdorffEquirectangular (degrees2): (0.33016, 49, 29, 90, None)\n    test 64 HausdorffEquirectangular (degrees2): (0.33016, 49, 29, 150, None)\n    test 65 copy(<type 'type'>): (<class 'pygeodesy.hausdorff.HausdorffEquirectangular'>, True)\n    test 66 HausdorffEquirectangular.copy(): (<class 'pygeodesy.hausdorff.HausdorffEquirectangular'>, True)\n    test 67 HausdorffEuclidean (meter): (0.61785, 49, 29, 90, 0.21327)\n    test 68 HausdorffEuclidean (meter): (0.61785, 49, 29, 150, 0.19061)\n    test 69 HausdorffEuclidean (meter): (0.61785, 49, 29, 90, 0.21327)\n    test 70 HausdorffEuclidean (meter): (0.61785, 49, 29, 150, 0.19061)\n    test 71 HausdorffEuclidean (meter): (0.61785, 49, 29, 90, None)\n    test 72 HausdorffEuclidean (meter): (0.61785, 49, 29, 150, None)\n    test 73 HausdorffEuclidean (meter): (0.61785, 49, 29, 90, None)\n    test 74 HausdorffEuclidean (meter): (0.61785, 49, 29, 150, None)\n    test 75 copy(<type 'type'>): (<class 'pygeodesy.hausdorff.HausdorffEuclidean'>, True)\n    test 76 HausdorffEuclidean.copy(): (<class 'pygeodesy.hausdorff.HausdorffEuclidean'>, True)\n    test 77 HausdorffFlatLocal (radians2): (0.33092, 49, 29, 90, 0.06067)\n    test 78 HausdorffFlatLocal (radians2): (0.33092, 49, 29, 150, 0.04912)\n    test 79 HausdorffFlatLocal (radians2): (0.33092, 49, 29, 90, 0.06067)\n    test 80 HausdorffFlatLocal (radians2): (0.33092, 49, 29, 150, 0.04912)\n    test 81 HausdorffFlatLocal (radians2): (0.33092, 49, 29, 90, None)\n    test 82 HausdorffFlatLocal (radians2): (0.33092, 49, 29, 150, None)\n    test 83 HausdorffFlatLocal (radians2): (0.33092, 49, 29, 90, None)\n    test 84 HausdorffFlatLocal (radians2): (0.33092, 49, 29, 150, None)\n    test 85 copy(<type 'type'>): (<class 'pygeodesy.hausdorff.HausdorffFlatLocal'>, True)\n    test 86 HausdorffFlatLocal.copy(): (<class 'pygeodesy.hausdorff.HausdorffFlatLocal'>, True)\n    test 87 HausdorffFlatPolar (meter): (0.96853, 20, 46, 90, 0.24569)\n    test 88 HausdorffFlatPolar (meter): (0.96853, 20, 46, 150, 0.21335)\n    test 89 HausdorffFlatPolar (meter): (0.96853, 20, 46, 90, 0.24569)\n    test 90 HausdorffFlatPolar (meter): (0.96853, 20, 46, 150, 0.21335)\n    test 91 HausdorffFlatPolar (meter): (0.96853, 20, 46, 90, None)\n    test 92 HausdorffFlatPolar (meter): (0.96853, 20, 46, 150, None)\n    test 93 HausdorffFlatPolar (meter): (0.96853, 20, 46, 90, None)\n    test 94 HausdorffFlatPolar (meter): (0.96853, 20, 46, 150, None)\n    test 95 copy(<type 'type'>): (<class 'pygeodesy.hausdorff.HausdorffFlatPolar'>, True)\n    test 96 HausdorffFlatPolar.copy(): (<class 'pygeodesy.hausdorff.HausdorffFlatPolar'>, True)\n    test 97 HausdorffHaversine (meter): (0.56202, 49, 29, 90, 0.19776)\n    test 98 HausdorffHaversine (meter): (0.56202, 49, 29, 150, 0.176)\n    test 99 HausdorffHaversine (meter): (0.56202, 49, 29, 90, 0.19776)\n    test 100 HausdorffHaversine (meter): (0.56202, 49, 29, 150, 0.176)\n    test 101 HausdorffHaversine (meter): (0.56202, 49, 29, 90, None)\n    test 102 HausdorffHaversine (meter): (0.56202, 49, 29, 150, None)\n    test 103 HausdorffHaversine (meter): (0.56202, 49, 29, 90, None)\n    test 104 HausdorffHaversine (meter): (0.56202, 49, 29, 150, None)\n    test 105 copy(<type 'type'>): (<class 'pygeodesy.hausdorff.HausdorffHaversine'>, True)\n    test 106 HausdorffHaversine.copy(): (<class 'pygeodesy.hausdorff.HausdorffHaversine'>, True)\n    test 107 HausdorffHubeny (radians2): (0.33092, 49, 29, 90, 0.06067)\n    test 108 HausdorffHubeny (radians2): (0.33092, 49, 29, 150, 0.04912)\n    test 109 HausdorffHubeny (radians2): (0.33092, 49, 29, 90, 0.06067)\n    test 110 HausdorffHubeny (radians2): (0.33092, 49, 29, 150, 0.04912)\n    test 111 HausdorffHubeny (radians2): (0.33092, 49, 29, 90, None)\n    test 112 HausdorffHubeny (radians2): (0.33092, 49, 29, 150, None)\n    test 113 HausdorffHubeny (radians2): (0.33092, 49, 29, 90, None)\n    test 114 HausdorffHubeny (radians2): (0.33092, 49, 29, 150, None)\n    test 115 copy(<type 'type'>): (<class 'pygeodesy.hausdorff.HausdorffHubeny'>, True)\n    test 116 HausdorffHubeny.copy(): (<class 'pygeodesy.hausdorff.HausdorffHubeny'>, True)\n    test 117 HausdorffThomas (meter): (0.56263, 49, 29, 90, 0.19764)\n    test 118 HausdorffThomas (meter): (0.56263, 49, 29, 150, 0.17591)\n    test 119 HausdorffThomas (meter): (0.56263, 49, 29, 90, 0.19764)\n    test 120 HausdorffThomas (meter): (0.56263, 49, 29, 150, 0.17591)\n    test 121 HausdorffThomas (meter): (0.56263, 49, 29, 90, None)\n    test 122 HausdorffThomas (meter): (0.56263, 49, 29, 150, None)\n    test 123 HausdorffThomas (meter): (0.56263, 49, 29, 90, None)\n    test 124 HausdorffThomas (meter): (0.56263, 49, 29, 150, None)\n    test 125 copy(<type 'type'>): (<class 'pygeodesy.hausdorff.HausdorffThomas'>, True)\n    test 126 HausdorffThomas.copy(): (<class 'pygeodesy.hausdorff.HausdorffThomas'>, True)\n    test 127 HausdorffVincentys (meter): (0.56202, 49, 29, 90, 0.19776)\n    test 128 HausdorffVincentys (meter): (0.56202, 49, 29, 150, 0.176)\n    test 129 HausdorffVincentys (meter): (0.56202, 49, 29, 90, 0.19776)\n    test 130 HausdorffVincentys (meter): (0.56202, 49, 29, 150, 0.176)\n    test 131 HausdorffVincentys (meter): (0.56202, 49, 29, 90, None)\n    test 132 HausdorffVincentys (meter): (0.56202, 49, 29, 150, None)\n    test 133 HausdorffVincentys (meter): (0.56202, 49, 29, 90, None)\n    test 134 HausdorffVincentys (meter): (0.56202, 49, 29, 150, None)\n    test 135 copy(<type 'type'>): (<class 'pygeodesy.hausdorff.HausdorffVincentys'>, True)\n    test 136 HausdorffVincentys.copy(): (<class 'pygeodesy.hausdorff.HausdorffVincentys'>, True)\n    test 137 HausdorffKarney (degrees): (32.28234, 49, 29, 90, 11.34653)\n    test 138 HausdorffKarney (degrees): (32.28234, 49, 29, 150, 10.09914)\n    test 139 HausdorffKarney (degrees): (32.28234, 49, 29, 90, 11.34653)\n    test 140 HausdorffKarney (degrees): (32.28234, 49, 29, 150, 10.09914)\n    test 141 HausdorffKarney (degrees): (32.28234, 49, 29, 90, None)\n    test 142 HausdorffKarney (degrees): (32.28234, 49, 29, 150, None)\n    test 143 HausdorffKarney (degrees): (32.28234, 49, 29, 90, None)\n    test 144 HausdorffKarney (degrees): (32.28234, 49, 29, 150, None)\n    test 145 copy(<type 'type'>): (<class 'pygeodesy.hausdorff.HausdorffKarney'>, True)\n    test 146 HausdorffKarney.copy(): (<class 'pygeodesy.hausdorff.HausdorffKarney'>, True)\n    test 147 hausdorff_: (50.5, 61, 7, 90, 18.45556)\n    test 148 hausdorff_: (50.5, 61, 7, 150, 16.05)\n    test 149 hausdorff_: (50.5, 61, 7, 90, 18.45556)\n    test 150 hausdorff_: (50.5, 61, 7, 150, 16.05)\n    test 151 hausdorff_: (50.5, 61, 7, 90, None)\n    test 152 hausdorff_: (50.5, 61, 7, 150, None)\n    test 153 hausdorff_: (50.5, 61, 7, 90, None)\n    test 154 hausdorff_: (50.5, 61, 7, 150, None)\n\n    4 of 154 testHausdorff.py tests (2.6%) FAILED, incl. 4 DeprecationWarnings (pygeodesy 26.3.26 Python 2.7.18 64bit arm64_x86_64 geographiclib 1.50 numpy 1.16.6 scipy 1.2.2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 -W  default) 23.132 sec\nrunning /Library/Framewo....ython -W default ~/PyGeodesy/test/testHeights.py\n\n    testing testHeights.py 24.12.31\n\n    test 1 HeightIDWcosineLaw(wrap=True): 6.108538037\n    test 2 HeightIDWcosineLaw(float): <type 'float'>\n    test 3 HeightIDWcosineLaw(latlon): True\n    test 4 HeightIDWcosineLaw_(tuple): True\n    test 5 HeightIDWcosineLaw(wrap=True): 5.0\n    test 6 HeightIDWcosineLaw(float): <type 'float'>\n    test 7 HeightIDWcosineLaw(latlon): True\n    test 8 HeightIDWcosineLaw(wrap=True): (6.108538037, 5.0,)\n    test 9 HeightIDWcosineLaw(tuple): <type 'tuple'>\n    test 10 HeightIDWcosineLaw(tuple-float): <type 'float'>\n    test 11 HeightIDWcosineLaw(tuple-float): <type 'float'>\n    test 12 HeightIDWcosineLaw(wrap=True): [6.108538037, 5.0]\n    test 13 HeightIDWcosineLaw(list: <type 'list'>\n    test 14 HeightIDWcosineLaw(list-float): <type 'float'>\n    test 15 HeightIDWcosineLaw(list-float): <type 'float'>\n    test 16 copy(<type 'type'>): (<class 'pygeodesy.heights.HeightIDWcosineLaw'>, True)\n    test 17 HeightIDWcosineLaw.copy(): (<class 'pygeodesy.heights.HeightIDWcosineLaw'>, True)\n    test 18 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n\n    test 19 HeightIDWcosineLaw(wrap=False): 6.108538037\n    test 20 HeightIDWcosineLaw(float): <type 'float'>\n    test 21 HeightIDWcosineLaw(latlon): True\n    test 22 HeightIDWcosineLaw_(tuple): True\n    test 23 HeightIDWcosineLaw(wrap=False): 5.0\n    test 24 HeightIDWcosineLaw(float): <type 'float'>\n    test 25 HeightIDWcosineLaw(latlon): True\n    test 26 HeightIDWcosineLaw(wrap=False): (6.108538037, 5.0,)\n    test 27 HeightIDWcosineLaw(tuple): <type 'tuple'>\n    test 28 HeightIDWcosineLaw(tuple-float): <type 'float'>\n    test 29 HeightIDWcosineLaw(tuple-float): <type 'float'>\n    test 30 HeightIDWcosineLaw(wrap=False): [6.108538037, 5.0]\n    test 31 HeightIDWcosineLaw(list: <type 'list'>\n    test 32 HeightIDWcosineLaw(list-float): <type 'float'>\n    test 33 HeightIDWcosineLaw(list-float): <type 'float'>\n    test 34 copy(<type 'type'>): (<class 'pygeodesy.heights.HeightIDWcosineLaw'>, True)\n    test 35 HeightIDWcosineLaw.copy(): (<class 'pygeodesy.heights.HeightIDWcosineLaw'>, True)\n    test 36 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n\n    test 37 HeightIDWcosineLaw(corr=1, wrap=False): 6.111157919\n    test 38 HeightIDWcosineLaw(float): <type 'float'>\n    test 39 HeightIDWcosineLaw(latlon): True\n    test 40 HeightIDWcosineLaw_(tuple): True\n    test 41 HeightIDWcosineLaw(corr=1, wrap=False): 5.0\n    test 42 HeightIDWcosineLaw(float): <type 'float'>\n    test 43 HeightIDWcosineLaw(latlon): True\n    test 44 HeightIDWcosineLaw(corr=1, wrap=False): (6.111157919, 5.0,)\n    test 45 HeightIDWcosineLaw(tuple): <type 'tuple'>\n    test 46 HeightIDWcosineLaw(tuple-float): <type 'float'>\n    test 47 HeightIDWcosineLaw(tuple-float): <type 'float'>\n    test 48 HeightIDWcosineLaw(corr=1, wrap=False): [6.111157919, 5.0]\n    test 49 HeightIDWcosineLaw(list: <type 'list'>\n    test 50 HeightIDWcosineLaw(list-float): <type 'float'>\n    test 51 HeightIDWcosineLaw(list-float): <type 'float'>\n    test 52 copy(<type 'type'>): (<class 'pygeodesy.heights.HeightIDWcosineLaw'>, True)\n    test 53 HeightIDWcosineLaw.copy(): (<class 'pygeodesy.heights.HeightIDWcosineLaw'>, True)\n    test 54 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n\n    test 55 HeightIDWcosineLaw(corr=2, wrap=False): 6.111158354\n    test 56 HeightIDWcosineLaw(float): <type 'float'>\n    test 57 HeightIDWcosineLaw(latlon): True\n    test 58 HeightIDWcosineLaw_(tuple): True\n    test 59 HeightIDWcosineLaw(corr=2, wrap=False): 5.0\n    test 60 HeightIDWcosineLaw(float): <type 'float'>\n    test 61 HeightIDWcosineLaw(latlon): True\n    test 62 HeightIDWcosineLaw(corr=2, wrap=False): (6.111158354, 5.0,)\n    test 63 HeightIDWcosineLaw(tuple): <type 'tuple'>\n    test 64 HeightIDWcosineLaw(tuple-float): <type 'float'>\n    test 65 HeightIDWcosineLaw(tuple-float): <type 'float'>\n    test 66 HeightIDWcosineLaw(corr=2, wrap=False): [6.111158354, 5.0]\n    test 67 HeightIDWcosineLaw(list: <type 'list'>\n    test 68 HeightIDWcosineLaw(list-float): <type 'float'>\n    test 69 HeightIDWcosineLaw(list-float): <type 'float'>\n    test 70 copy(<type 'type'>): (<class 'pygeodesy.heights.HeightIDWcosineLaw'>, True)\n    test 71 HeightIDWcosineLaw.copy(): (<class 'pygeodesy.heights.HeightIDWcosineLaw'>, True)\n    test 72 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n\n    test 73 HeightIDWdistanceTo(): 6.108538037\n    test 74 HeightIDWdistanceTo(float): <type 'float'>\n    test 75 HeightIDWdistanceTo(latlon): True\n    test 76 HeightIDWdistanceTo_(tuple): True\n    test 77 HeightIDWdistanceTo(): 5.0\n    test 78 HeightIDWdistanceTo(float): <type 'float'>\n    test 79 HeightIDWdistanceTo(latlon): True\n    test 80 HeightIDWdistanceTo(): (6.108538037, 5.0,)\n    test 81 HeightIDWdistanceTo(tuple): <type 'tuple'>\n    test 82 HeightIDWdistanceTo(tuple-float): <type 'float'>\n    test 83 HeightIDWdistanceTo(tuple-float): <type 'float'>\n    test 84 HeightIDWdistanceTo(): [6.108538037, 5.0]\n    test 85 HeightIDWdistanceTo(list: <type 'list'>\n    test 86 HeightIDWdistanceTo(list-float): <type 'float'>\n    test 87 HeightIDWdistanceTo(list-float): <type 'float'>\n    test 88 copy(<type 'type'>): (<class 'pygeodesy.heights.HeightIDWdistanceTo'>, True)\n    test 89 HeightIDWdistanceTo.copy(): (<class 'pygeodesy.heights.HeightIDWdistanceTo'>, True)\n    test 90 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n\n    test 91 HeightIDWequirectangular(adjust=True, wrap=True): 6.860459007\n    test 92 HeightIDWequirectangular(float): <type 'float'>\n    test 93 HeightIDWequirectangular(latlon): True\n    test 94 HeightIDWequirectangular_(tuple): True\n    test 95 HeightIDWequirectangular(adjust=True, wrap=True): 5.0\n    test 96 HeightIDWequirectangular(float): <type 'float'>\n    test 97 HeightIDWequirectangular(latlon): True\n    test 98 HeightIDWequirectangular(adjust=True, wrap=True): (6.860459007, 5.0,)\n    test 99 HeightIDWequirectangular(tuple): <type 'tuple'>\n    test 100 HeightIDWequirectangular(tuple-float): <type 'float'>\n    test 101 HeightIDWequirectangular(tuple-float): <type 'float'>\n    test 102 HeightIDWequirectangular(adjust=True, wrap=True): [6.860459007, 5.0]\n    test 103 HeightIDWequirectangular(list: <type 'list'>\n    test 104 HeightIDWequirectangular(list-float): <type 'float'>\n    test 105 HeightIDWequirectangular(list-float): <type 'float'>\n    test 106 copy(<type 'type'>): (<class 'pygeodesy.heights.HeightIDWequirectangular'>, True)\n    test 107 HeightIDWequirectangular.copy(): (<class 'pygeodesy.heights.HeightIDWequirectangular'>, True)\n    test 108 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n\n    test 109 HeightIDWequirectangular(adjust=False, wrap=True): 6.860498092\n    test 110 HeightIDWequirectangular(float): <type 'float'>\n    test 111 HeightIDWequirectangular(latlon): True\n    test 112 HeightIDWequirectangular_(tuple): True\n    test 113 HeightIDWequirectangular(adjust=False, wrap=True): 5.0\n    test 114 HeightIDWequirectangular(float): <type 'float'>\n    test 115 HeightIDWequirectangular(latlon): True\n    test 116 HeightIDWequirectangular(adjust=False, wrap=True): (6.860498092, 5.0,)\n    test 117 HeightIDWequirectangular(tuple): <type 'tuple'>\n    test 118 HeightIDWequirectangular(tuple-float): <type 'float'>\n    test 119 HeightIDWequirectangular(tuple-float): <type 'float'>\n    test 120 HeightIDWequirectangular(adjust=False, wrap=True): [6.860498092, 5.0]\n    test 121 HeightIDWequirectangular(list: <type 'list'>\n    test 122 HeightIDWequirectangular(list-float): <type 'float'>\n    test 123 HeightIDWequirectangular(list-float): <type 'float'>\n    test 124 copy(<type 'type'>): (<class 'pygeodesy.heights.HeightIDWequirectangular'>, True)\n    test 125 HeightIDWequirectangular.copy(): (<class 'pygeodesy.heights.HeightIDWequirectangular'>, True)\n    test 126 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n\n    test 127 HeightIDWeuclidean(): 6.142945781\n    test 128 HeightIDWeuclidean(float): <type 'float'>\n    test 129 HeightIDWeuclidean(latlon): True\n    test 130 HeightIDWeuclidean_(tuple): True\n    test 131 HeightIDWeuclidean(): 5.0\n    test 132 HeightIDWeuclidean(float): <type 'float'>\n    test 133 HeightIDWeuclidean(latlon): True\n    test 134 HeightIDWeuclidean(): (6.142945781, 5.0,)\n    test 135 HeightIDWeuclidean(tuple): <type 'tuple'>\n    test 136 HeightIDWeuclidean(tuple-float): <type 'float'>\n    test 137 HeightIDWeuclidean(tuple-float): <type 'float'>\n    test 138 HeightIDWeuclidean(): [6.142945781, 5.0]\n    test 139 HeightIDWeuclidean(list: <type 'list'>\n    test 140 HeightIDWeuclidean(list-float): <type 'float'>\n    test 141 HeightIDWeuclidean(list-float): <type 'float'>\n    test 142 copy(<type 'type'>): (<class 'pygeodesy.heights.HeightIDWeuclidean'>, True)\n    test 143 HeightIDWeuclidean.copy(): (<class 'pygeodesy.heights.HeightIDWeuclidean'>, True)\n    test 144 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n\n    test 145 HeightIDWexact(): 6.108538037\n    test 146 HeightIDWexact(float): <type 'float'>\n    test 147 HeightIDWexact(latlon): True\n    test 148 HeightIDWexact_(tuple): True\n    test 149 HeightIDWexact(): 5.0\n    test 150 HeightIDWexact(float): <type 'float'>\n    test 151 HeightIDWexact(latlon): True\n    test 152 HeightIDWexact(): (6.108538037, 5.0,)\n    test 153 HeightIDWexact(tuple): <type 'tuple'>\n    test 154 HeightIDWexact(tuple-float): <type 'float'>\n    test 155 HeightIDWexact(tuple-float): <type 'float'>\n    test 156 HeightIDWexact(): [6.108538037, 5.0]\n    test 157 HeightIDWexact(list: <type 'list'>\n    test 158 HeightIDWexact(list-float): <type 'float'>\n    test 159 HeightIDWexact(list-float): <type 'float'>\n    test 160 copy(<type 'type'>): (<class 'pygeodesy.heights.HeightIDWexact'>, True)\n    test 161 HeightIDWexact.copy(): (<class 'pygeodesy.heights.HeightIDWexact'>, True)\n    test 162 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n\n    test 163 HeightIDWflatLocal(): 6.111158784\n    test 164 HeightIDWflatLocal(float): <type 'float'>\n    test 165 HeightIDWflatLocal(latlon): True\n    test 166 HeightIDWflatLocal_(tuple): True\n    test 167 HeightIDWflatLocal(): 5.0\n    test 168 HeightIDWflatLocal(float): <type 'float'>\n    test 169 HeightIDWflatLocal(latlon): True\n    test 170 HeightIDWflatLocal(): (6.111158784, 5.0,)\n    test 171 HeightIDWflatLocal(tuple): <type 'tuple'>\n    test 172 HeightIDWflatLocal(tuple-float): <type 'float'>\n    test 173 HeightIDWflatLocal(tuple-float): <type 'float'>\n    test 174 HeightIDWflatLocal(): [6.111158784, 5.0]\n    test 175 HeightIDWflatLocal(list: <type 'list'>\n    test 176 HeightIDWflatLocal(list-float): <type 'float'>\n    test 177 HeightIDWflatLocal(list-float): <type 'float'>\n    test 178 copy(<type 'type'>): (<class 'pygeodesy.heights.HeightIDWflatLocal'>, True)\n    test 179 HeightIDWflatLocal.copy(): (<class 'pygeodesy.heights.HeightIDWflatLocal'>, True)\n    test 180 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n\n    test 181 HeightIDWflatPolar(): 6.261469975\n    test 182 HeightIDWflatPolar(float): <type 'float'>\n    test 183 HeightIDWflatPolar(latlon): True\n    test 184 HeightIDWflatPolar_(tuple): True\n    test 185 HeightIDWflatPolar(): 5.0\n    test 186 HeightIDWflatPolar(float): <type 'float'>\n    test 187 HeightIDWflatPolar(latlon): True\n    test 188 HeightIDWflatPolar(): (6.261469975, 5.0,)\n    test 189 HeightIDWflatPolar(tuple): <type 'tuple'>\n    test 190 HeightIDWflatPolar(tuple-float): <type 'float'>\n    test 191 HeightIDWflatPolar(tuple-float): <type 'float'>\n    test 192 HeightIDWflatPolar(): [6.261469975, 5.0]\n    test 193 HeightIDWflatPolar(list: <type 'list'>\n    test 194 HeightIDWflatPolar(list-float): <type 'float'>\n    test 195 HeightIDWflatPolar(list-float): <type 'float'>\n    test 196 copy(<type 'type'>): (<class 'pygeodesy.heights.HeightIDWflatPolar'>, True)\n    test 197 HeightIDWflatPolar.copy(): (<class 'pygeodesy.heights.HeightIDWflatPolar'>, True)\n    test 198 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n\n    test 199 HeightIDWhaversine(): 6.108538037\n    test 200 HeightIDWhaversine(float): <type 'float'>\n    test 201 HeightIDWhaversine(latlon): True\n    test 202 HeightIDWhaversine_(tuple): True\n    test 203 HeightIDWhaversine(): 5.0\n    test 204 HeightIDWhaversine(float): <type 'float'>\n    test 205 HeightIDWhaversine(latlon): True\n    test 206 HeightIDWhaversine(): (6.108538037, 5.0,)\n    test 207 HeightIDWhaversine(tuple): <type 'tuple'>\n    test 208 HeightIDWhaversine(tuple-float): <type 'float'>\n    test 209 HeightIDWhaversine(tuple-float): <type 'float'>\n    test 210 HeightIDWhaversine(): [6.108538037, 5.0]\n    test 211 HeightIDWhaversine(list: <type 'list'>\n    test 212 HeightIDWhaversine(list-float): <type 'float'>\n    test 213 HeightIDWhaversine(list-float): <type 'float'>\n    test 214 copy(<type 'type'>): (<class 'pygeodesy.heights.HeightIDWhaversine'>, True)\n    test 215 HeightIDWhaversine.copy(): (<class 'pygeodesy.heights.HeightIDWhaversine'>, True)\n    test 216 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n\n    test 217 HeightIDWhubeny(): 6.111158784\n    test 218 HeightIDWhubeny(float): <type 'float'>\n    test 219 HeightIDWhubeny(latlon): True\n    test 220 HeightIDWhubeny_(tuple): True\n    test 221 HeightIDWhubeny(): 5.0\n    test 222 HeightIDWhubeny(float): <type 'float'>\n    test 223 HeightIDWhubeny(latlon): True\n    test 224 HeightIDWhubeny(): (6.111158784, 5.0,)\n    test 225 HeightIDWhubeny(tuple): <type 'tuple'>\n    test 226 HeightIDWhubeny(tuple-float): <type 'float'>\n    test 227 HeightIDWhubeny(tuple-float): <type 'float'>\n    test 228 HeightIDWhubeny(): [6.111158784, 5.0]\n    test 229 HeightIDWhubeny(list: <type 'list'>\n    test 230 HeightIDWhubeny(list-float): <type 'float'>\n    test 231 HeightIDWhubeny(list-float): <type 'float'>\n    test 232 copy(<type 'type'>): (<class 'pygeodesy.heights.HeightIDWhubeny'>, True)\n    test 233 HeightIDWhubeny.copy(): (<class 'pygeodesy.heights.HeightIDWhubeny'>, True)\n    test 234 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n\n    test 235 HeightIDWkarney(datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), wrap=True): 6.111158743\n    test 236 HeightIDWkarney(float): <type 'float'>\n    test 237 HeightIDWkarney(latlon): True\n    test 238 HeightIDWkarney_(tuple): True\n    test 239 HeightIDWkarney(datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), wrap=True): 5.0\n    test 240 HeightIDWkarney(float): <type 'float'>\n    test 241 HeightIDWkarney(latlon): True\n    test 242 HeightIDWkarney(datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), wrap=True): (6.111158743, 5.0,)\n    test 243 HeightIDWkarney(tuple): <type 'tuple'>\n    test 244 HeightIDWkarney(tuple-float): <type 'float'>\n    test 245 HeightIDWkarney(tuple-float): <type 'float'>\n    test 246 HeightIDWkarney(datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), wrap=True): [6.111158743, 5.0]\n    test 247 HeightIDWkarney(list: <type 'list'>\n    test 248 HeightIDWkarney(list-float): <type 'float'>\n    test 249 HeightIDWkarney(list-float): <type 'float'>\n    test 250 copy(<type 'type'>): (<class 'pygeodesy.heights.HeightIDWkarney'>, True)\n    test 251 HeightIDWkarney.copy(): (<class 'pygeodesy.heights.HeightIDWkarney'>, True)\n    test 252 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n\n    test 253 HeightIDWkarney(datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), wrap=False): 6.111158743\n    test 254 HeightIDWkarney(float): <type 'float'>\n    test 255 HeightIDWkarney(latlon): True\n    test 256 HeightIDWkarney_(tuple): True\n    test 257 HeightIDWkarney(datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), wrap=False): 5.0\n    test 258 HeightIDWkarney(float): <type 'float'>\n    test 259 HeightIDWkarney(latlon): True\n    test 260 HeightIDWkarney(datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), wrap=False): (6.111158743, 5.0,)\n    test 261 HeightIDWkarney(tuple): <type 'tuple'>\n    test 262 HeightIDWkarney(tuple-float): <type 'float'>\n    test 263 HeightIDWkarney(tuple-float): <type 'float'>\n    test 264 HeightIDWkarney(datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), wrap=False): [6.111158743, 5.0]\n    test 265 HeightIDWkarney(list: <type 'list'>\n    test 266 HeightIDWkarney(list-float): <type 'float'>\n    test 267 HeightIDWkarney(list-float): <type 'float'>\n    test 268 copy(<type 'type'>): (<class 'pygeodesy.heights.HeightIDWkarney'>, True)\n    test 269 HeightIDWkarney.copy(): (<class 'pygeodesy.heights.HeightIDWkarney'>, True)\n    test 270 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n\n    test 271 HeightIDWkarney(datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84), wrap=True): 6.108538037\n    test 272 HeightIDWkarney(float): <type 'float'>\n    test 273 HeightIDWkarney(latlon): True\n    test 274 HeightIDWkarney_(tuple): True\n    test 275 HeightIDWkarney(datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84), wrap=True): 5.0\n    test 276 HeightIDWkarney(float): <type 'float'>\n    test 277 HeightIDWkarney(latlon): True\n    test 278 HeightIDWkarney(datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84), wrap=True): (6.108538037, 5.0,)\n    test 279 HeightIDWkarney(tuple): <type 'tuple'>\n    test 280 HeightIDWkarney(tuple-float): <type 'float'>\n    test 281 HeightIDWkarney(tuple-float): <type 'float'>\n    test 282 HeightIDWkarney(datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84), wrap=True): [6.108538037, 5.0]\n    test 283 HeightIDWkarney(list: <type 'list'>\n    test 284 HeightIDWkarney(list-float): <type 'float'>\n    test 285 HeightIDWkarney(list-float): <type 'float'>\n    test 286 copy(<type 'type'>): (<class 'pygeodesy.heights.HeightIDWkarney'>, True)\n    test 287 HeightIDWkarney.copy(): (<class 'pygeodesy.heights.HeightIDWkarney'>, True)\n    test 288 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n\n    test 289 HeightIDWkarney(datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84), wrap=False): 6.108538037\n    test 290 HeightIDWkarney(float): <type 'float'>\n    test 291 HeightIDWkarney(latlon): True\n    test 292 HeightIDWkarney_(tuple): True\n    test 293 HeightIDWkarney(datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84), wrap=False): 5.0\n    test 294 HeightIDWkarney(float): <type 'float'>\n    test 295 HeightIDWkarney(latlon): True\n    test 296 HeightIDWkarney(datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84), wrap=False): (6.108538037, 5.0,)\n    test 297 HeightIDWkarney(tuple): <type 'tuple'>\n    test 298 HeightIDWkarney(tuple-float): <type 'float'>\n    test 299 HeightIDWkarney(tuple-float): <type 'float'>\n    test 300 HeightIDWkarney(datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84), wrap=False): [6.108538037, 5.0]\n    test 301 HeightIDWkarney(list: <type 'list'>\n    test 302 HeightIDWkarney(list-float): <type 'float'>\n    test 303 HeightIDWkarney(list-float): <type 'float'>\n    test 304 copy(<type 'type'>): (<class 'pygeodesy.heights.HeightIDWkarney'>, True)\n    test 305 HeightIDWkarney.copy(): (<class 'pygeodesy.heights.HeightIDWkarney'>, True)\n    test 306 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n\n    test 307 HeightIDWthomas(wrap=True): 6.111159454\n    test 308 HeightIDWthomas(float): <type 'float'>\n    test 309 HeightIDWthomas(latlon): True\n    test 310 HeightIDWthomas_(tuple): True\n    test 311 HeightIDWthomas(wrap=True): 5.0\n    test 312 HeightIDWthomas(float): <type 'float'>\n    test 313 HeightIDWthomas(latlon): True\n    test 314 HeightIDWthomas(wrap=True): (6.111159454, 5.0,)\n    test 315 HeightIDWthomas(tuple): <type 'tuple'>\n    test 316 HeightIDWthomas(tuple-float): <type 'float'>\n    test 317 HeightIDWthomas(tuple-float): <type 'float'>\n    test 318 HeightIDWthomas(wrap=True): [6.111159454, 5.0]\n    test 319 HeightIDWthomas(list: <type 'list'>\n    test 320 HeightIDWthomas(list-float): <type 'float'>\n    test 321 HeightIDWthomas(list-float): <type 'float'>\n    test 322 copy(<type 'type'>): (<class 'pygeodesy.heights.HeightIDWthomas'>, True)\n    test 323 HeightIDWthomas.copy(): (<class 'pygeodesy.heights.HeightIDWthomas'>, True)\n    test 324 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n\n    test 325 HeightIDWthomas(wrap=False): 6.111159454\n    test 326 HeightIDWthomas(float): <type 'float'>\n    test 327 HeightIDWthomas(latlon): True\n    test 328 HeightIDWthomas_(tuple): True\n    test 329 HeightIDWthomas(wrap=False): 5.0\n    test 330 HeightIDWthomas(float): <type 'float'>\n    test 331 HeightIDWthomas(latlon): True\n    test 332 HeightIDWthomas(wrap=False): (6.111159454, 5.0,)\n    test 333 HeightIDWthomas(tuple): <type 'tuple'>\n    test 334 HeightIDWthomas(tuple-float): <type 'float'>\n    test 335 HeightIDWthomas(tuple-float): <type 'float'>\n    test 336 HeightIDWthomas(wrap=False): [6.111159454, 5.0]\n    test 337 HeightIDWthomas(list: <type 'list'>\n    test 338 HeightIDWthomas(list-float): <type 'float'>\n    test 339 HeightIDWthomas(list-float): <type 'float'>\n    test 340 copy(<type 'type'>): (<class 'pygeodesy.heights.HeightIDWthomas'>, True)\n    test 341 HeightIDWthomas.copy(): (<class 'pygeodesy.heights.HeightIDWthomas'>, True)\n    test 342 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n\n    test 343 HeightIDWvincentys(wrap=True): 6.108538037\n    test 344 HeightIDWvincentys(float): <type 'float'>\n    test 345 HeightIDWvincentys(latlon): True\n    test 346 HeightIDWvincentys_(tuple): True\n    test 347 HeightIDWvincentys(wrap=True): 5.0\n    test 348 HeightIDWvincentys(float): <type 'float'>\n    test 349 HeightIDWvincentys(latlon): True\n    test 350 HeightIDWvincentys(wrap=True): (6.108538037, 5.0,)\n    test 351 HeightIDWvincentys(tuple): <type 'tuple'>\n    test 352 HeightIDWvincentys(tuple-float): <type 'float'>\n    test 353 HeightIDWvincentys(tuple-float): <type 'float'>\n    test 354 HeightIDWvincentys(wrap=True): [6.108538037, 5.0]\n    test 355 HeightIDWvincentys(list: <type 'list'>\n    test 356 HeightIDWvincentys(list-float): <type 'float'>\n    test 357 HeightIDWvincentys(list-float): <type 'float'>\n    test 358 copy(<type 'type'>): (<class 'pygeodesy.heights.HeightIDWvincentys'>, True)\n    test 359 HeightIDWvincentys.copy(): (<class 'pygeodesy.heights.HeightIDWvincentys'>, True)\n    test 360 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n\n    test 361 HeightIDWvincentys(wrap=False): 6.108538037\n    test 362 HeightIDWvincentys(float): <type 'float'>\n    test 363 HeightIDWvincentys(latlon): True\n    test 364 HeightIDWvincentys_(tuple): True\n    test 365 HeightIDWvincentys(wrap=False): 5.0\n    test 366 HeightIDWvincentys(float): <type 'float'>\n    test 367 HeightIDWvincentys(latlon): True\n    test 368 HeightIDWvincentys(wrap=False): (6.108538037, 5.0,)\n    test 369 HeightIDWvincentys(tuple): <type 'tuple'>\n    test 370 HeightIDWvincentys(tuple-float): <type 'float'>\n    test 371 HeightIDWvincentys(tuple-float): <type 'float'>\n    test 372 HeightIDWvincentys(wrap=False): [6.108538037, 5.0]\n    test 373 HeightIDWvincentys(list: <type 'list'>\n    test 374 HeightIDWvincentys(list-float): <type 'float'>\n    test 375 HeightIDWvincentys(list-float): <type 'float'>\n    test 376 copy(<type 'type'>): (<class 'pygeodesy.heights.HeightIDWvincentys'>, True)\n    test 377 HeightIDWvincentys.copy(): (<class 'pygeodesy.heights.HeightIDWvincentys'>, True)\n    test 378 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 379 intersection: 02.64932°N, 002.550079°E, +2.50m\n\n\n    test 380 HeightIDWcosineLaw(wrap=True): 2.592742938\n    test 381 HeightIDWcosineLaw(float): <type 'float'>\n    test 382 HeightIDWcosineLaw(latlon): True\n    test 383 HeightIDWcosineLaw_(tuple): True\n    test 384 HeightIDWcosineLaw(wrap=True): 3.0\n    test 385 HeightIDWcosineLaw(float): <type 'float'>\n    test 386 HeightIDWcosineLaw(latlon): True\n    test 387 HeightIDWcosineLaw(wrap=True): (2.592742938, 3.0,)\n    test 388 HeightIDWcosineLaw(tuple): <type 'tuple'>\n    test 389 HeightIDWcosineLaw(tuple-float): <type 'float'>\n    test 390 HeightIDWcosineLaw(tuple-float): <type 'float'>\n    test 391 HeightIDWcosineLaw(wrap=True): [2.592742938, 3.0]\n    test 392 HeightIDWcosineLaw(list: <type 'list'>\n    test 393 HeightIDWcosineLaw(list-float): <type 'float'>\n    test 394 HeightIDWcosineLaw(list-float): <type 'float'>\n    test 395 copy(<type 'type'>): (<class 'pygeodesy.heights.HeightIDWcosineLaw'>, True)\n    test 396 HeightIDWcosineLaw.copy(): (<class 'pygeodesy.heights.HeightIDWcosineLaw'>, True)\n    test 397 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n\n    test 398 HeightIDWcosineLaw(wrap=False): 2.592742938\n    test 399 HeightIDWcosineLaw(float): <type 'float'>\n    test 400 HeightIDWcosineLaw(latlon): True\n    test 401 HeightIDWcosineLaw_(tuple): True\n    test 402 HeightIDWcosineLaw(wrap=False): 3.0\n    test 403 HeightIDWcosineLaw(float): <type 'float'>\n    test 404 HeightIDWcosineLaw(latlon): True\n    test 405 HeightIDWcosineLaw(wrap=False): (2.592742938, 3.0,)\n    test 406 HeightIDWcosineLaw(tuple): <type 'tuple'>\n    test 407 HeightIDWcosineLaw(tuple-float): <type 'float'>\n    test 408 HeightIDWcosineLaw(tuple-float): <type 'float'>\n    test 409 HeightIDWcosineLaw(wrap=False): [2.592742938, 3.0]\n    test 410 HeightIDWcosineLaw(list: <type 'list'>\n    test 411 HeightIDWcosineLaw(list-float): <type 'float'>\n    test 412 HeightIDWcosineLaw(list-float): <type 'float'>\n    test 413 copy(<type 'type'>): (<class 'pygeodesy.heights.HeightIDWcosineLaw'>, True)\n    test 414 HeightIDWcosineLaw.copy(): (<class 'pygeodesy.heights.HeightIDWcosineLaw'>, True)\n    test 415 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n\n    test 416 HeightIDWcosineLaw(corr=1, wrap=False): 2.592742781\n    test 417 HeightIDWcosineLaw(float): <type 'float'>\n    test 418 HeightIDWcosineLaw(latlon): True\n    test 419 HeightIDWcosineLaw_(tuple): True\n    test 420 HeightIDWcosineLaw(corr=1, wrap=False): 3.0\n    test 421 HeightIDWcosineLaw(float): <type 'float'>\n    test 422 HeightIDWcosineLaw(latlon): True\n    test 423 HeightIDWcosineLaw(corr=1, wrap=False): (2.592742781, 3.0,)\n    test 424 HeightIDWcosineLaw(tuple): <type 'tuple'>\n    test 425 HeightIDWcosineLaw(tuple-float): <type 'float'>\n    test 426 HeightIDWcosineLaw(tuple-float): <type 'float'>\n    test 427 HeightIDWcosineLaw(corr=1, wrap=False): [2.592742781, 3.0]\n    test 428 HeightIDWcosineLaw(list: <type 'list'>\n    test 429 HeightIDWcosineLaw(list-float): <type 'float'>\n    test 430 HeightIDWcosineLaw(list-float): <type 'float'>\n    test 431 copy(<type 'type'>): (<class 'pygeodesy.heights.HeightIDWcosineLaw'>, True)\n    test 432 HeightIDWcosineLaw.copy(): (<class 'pygeodesy.heights.HeightIDWcosineLaw'>, True)\n    test 433 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n\n    test 434 HeightIDWcosineLaw(corr=2, wrap=False): 2.592742781\n    test 435 HeightIDWcosineLaw(float): <type 'float'>\n    test 436 HeightIDWcosineLaw(latlon): True\n    test 437 HeightIDWcosineLaw_(tuple): True\n    test 438 HeightIDWcosineLaw(corr=2, wrap=False): 3.0\n    test 439 HeightIDWcosineLaw(float): <type 'float'>\n    test 440 HeightIDWcosineLaw(latlon): True\n    test 441 HeightIDWcosineLaw(corr=2, wrap=False): (2.592742781, 3.0,)\n    test 442 HeightIDWcosineLaw(tuple): <type 'tuple'>\n    test 443 HeightIDWcosineLaw(tuple-float): <type 'float'>\n    test 444 HeightIDWcosineLaw(tuple-float): <type 'float'>\n    test 445 HeightIDWcosineLaw(corr=2, wrap=False): [2.592742781, 3.0]\n    test 446 HeightIDWcosineLaw(list: <type 'list'>\n    test 447 HeightIDWcosineLaw(list-float): <type 'float'>\n    test 448 HeightIDWcosineLaw(list-float): <type 'float'>\n    test 449 copy(<type 'type'>): (<class 'pygeodesy.heights.HeightIDWcosineLaw'>, True)\n    test 450 HeightIDWcosineLaw.copy(): (<class 'pygeodesy.heights.HeightIDWcosineLaw'>, True)\n    test 451 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n\n    test 452 HeightIDWequirectangular(adjust=True, wrap=True): 2.689429914\n    test 453 HeightIDWequirectangular(float): <type 'float'>\n    test 454 HeightIDWequirectangular(latlon): True\n    test 455 HeightIDWequirectangular_(tuple): True\n    test 456 HeightIDWequirectangular(adjust=True, wrap=True): 3.0\n    test 457 HeightIDWequirectangular(float): <type 'float'>\n    test 458 HeightIDWequirectangular(latlon): True\n    test 459 HeightIDWequirectangular(adjust=True, wrap=True): (2.689429914, 3.0,)\n    test 460 HeightIDWequirectangular(tuple): <type 'tuple'>\n    test 461 HeightIDWequirectangular(tuple-float): <type 'float'>\n    test 462 HeightIDWequirectangular(tuple-float): <type 'float'>\n    test 463 HeightIDWequirectangular(adjust=True, wrap=True): [2.689429914, 3.0]\n    test 464 HeightIDWequirectangular(list: <type 'list'>\n    test 465 HeightIDWequirectangular(list-float): <type 'float'>\n    test 466 HeightIDWequirectangular(list-float): <type 'float'>\n    test 467 copy(<type 'type'>): (<class 'pygeodesy.heights.HeightIDWequirectangular'>, True)\n    test 468 HeightIDWequirectangular.copy(): (<class 'pygeodesy.heights.HeightIDWequirectangular'>, True)\n    test 469 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n\n    test 470 HeightIDWequirectangular(adjust=False, wrap=True): 2.689413401\n    test 471 HeightIDWequirectangular(float): <type 'float'>\n    test 472 HeightIDWequirectangular(latlon): True\n    test 473 HeightIDWequirectangular_(tuple): True\n    test 474 HeightIDWequirectangular(adjust=False, wrap=True): 3.0\n    test 475 HeightIDWequirectangular(float): <type 'float'>\n    test 476 HeightIDWequirectangular(latlon): True\n    test 477 HeightIDWequirectangular(adjust=False, wrap=True): (2.689413401, 3.0,)\n    test 478 HeightIDWequirectangular(tuple): <type 'tuple'>\n    test 479 HeightIDWequirectangular(tuple-float): <type 'float'>\n    test 480 HeightIDWequirectangular(tuple-float): <type 'float'>\n    test 481 HeightIDWequirectangular(adjust=False, wrap=True): [2.689413401, 3.0]\n    test 482 HeightIDWequirectangular(list: <type 'list'>\n    test 483 HeightIDWequirectangular(list-float): <type 'float'>\n    test 484 HeightIDWequirectangular(list-float): <type 'float'>\n    test 485 copy(<type 'type'>): (<class 'pygeodesy.heights.HeightIDWequirectangular'>, True)\n    test 486 HeightIDWequirectangular.copy(): (<class 'pygeodesy.heights.HeightIDWequirectangular'>, True)\n    test 487 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n\n    test 488 HeightIDWeuclidean(adjust=False): 2.592735541\n    test 489 HeightIDWeuclidean(float): <type 'float'>\n    test 490 HeightIDWeuclidean(latlon): True\n    test 491 HeightIDWeuclidean_(tuple): True\n    test 492 HeightIDWeuclidean(adjust=False): 3.0\n    test 493 HeightIDWeuclidean(float): <type 'float'>\n    test 494 HeightIDWeuclidean(latlon): True\n    test 495 HeightIDWeuclidean(adjust=False): (2.592735541, 3.0,)\n    test 496 HeightIDWeuclidean(tuple): <type 'tuple'>\n    test 497 HeightIDWeuclidean(tuple-float): <type 'float'>\n    test 498 HeightIDWeuclidean(tuple-float): <type 'float'>\n    test 499 HeightIDWeuclidean(adjust=False): [2.592735541, 3.0]\n    test 500 HeightIDWeuclidean(list: <type 'list'>\n    test 501 HeightIDWeuclidean(list-float): <type 'float'>\n    test 502 HeightIDWeuclidean(list-float): <type 'float'>\n    test 503 copy(<type 'type'>): (<class 'pygeodesy.heights.HeightIDWeuclidean'>, True)\n    test 504 HeightIDWeuclidean.copy(): (<class 'pygeodesy.heights.HeightIDWeuclidean'>, True)\n    test 505 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n\n    test 506 HeightIDWexact(): 2.592742938\n    test 507 HeightIDWexact(float): <type 'float'>\n    test 508 HeightIDWexact(latlon): True\n    test 509 HeightIDWexact_(tuple): True\n    test 510 HeightIDWexact(): 3.0\n    test 511 HeightIDWexact(float): <type 'float'>\n    test 512 HeightIDWexact(latlon): True\n    test 513 HeightIDWexact(): (2.592742938, 3.0,)\n    test 514 HeightIDWexact(tuple): <type 'tuple'>\n    test 515 HeightIDWexact(tuple-float): <type 'float'>\n    test 516 HeightIDWexact(tuple-float): <type 'float'>\n    test 517 HeightIDWexact(): [2.592742938, 3.0]\n    test 518 HeightIDWexact(list: <type 'list'>\n    test 519 HeightIDWexact(list-float): <type 'float'>\n    test 520 HeightIDWexact(list-float): <type 'float'>\n    test 521 copy(<type 'type'>): (<class 'pygeodesy.heights.HeightIDWexact'>, True)\n    test 522 HeightIDWexact.copy(): (<class 'pygeodesy.heights.HeightIDWexact'>, True)\n    test 523 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n\n    test 524 HeightIDWflatLocal(): 2.592743288\n    test 525 HeightIDWflatLocal(float): <type 'float'>\n    test 526 HeightIDWflatLocal(latlon): True\n    test 527 HeightIDWflatLocal_(tuple): True\n    test 528 HeightIDWflatLocal(): 3.0\n    test 529 HeightIDWflatLocal(float): <type 'float'>\n    test 530 HeightIDWflatLocal(latlon): True\n    test 531 HeightIDWflatLocal(): (2.592743288, 3.0,)\n    test 532 HeightIDWflatLocal(tuple): <type 'tuple'>\n    test 533 HeightIDWflatLocal(tuple-float): <type 'float'>\n    test 534 HeightIDWflatLocal(tuple-float): <type 'float'>\n    test 535 HeightIDWflatLocal(): [2.592743288, 3.0]\n    test 536 HeightIDWflatLocal(list: <type 'list'>\n    test 537 HeightIDWflatLocal(list-float): <type 'float'>\n    test 538 HeightIDWflatLocal(list-float): <type 'float'>\n    test 539 copy(<type 'type'>): (<class 'pygeodesy.heights.HeightIDWflatLocal'>, True)\n    test 540 HeightIDWflatLocal.copy(): (<class 'pygeodesy.heights.HeightIDWflatLocal'>, True)\n    test 541 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n\n    test 542 HeightIDWflatPolar(): 2.592973059\n    test 543 HeightIDWflatPolar(float): <type 'float'>\n    test 544 HeightIDWflatPolar(latlon): True\n    test 545 HeightIDWflatPolar_(tuple): True\n    test 546 HeightIDWflatPolar(): 3.0\n    test 547 HeightIDWflatPolar(float): <type 'float'>\n    test 548 HeightIDWflatPolar(latlon): True\n    test 549 HeightIDWflatPolar(): (2.592973059, 3.0,)\n    test 550 HeightIDWflatPolar(tuple): <type 'tuple'>\n    test 551 HeightIDWflatPolar(tuple-float): <type 'float'>\n    test 552 HeightIDWflatPolar(tuple-float): <type 'float'>\n    test 553 HeightIDWflatPolar(): [2.592973059, 3.0]\n    test 554 HeightIDWflatPolar(list: <type 'list'>\n    test 555 HeightIDWflatPolar(list-float): <type 'float'>\n    test 556 HeightIDWflatPolar(list-float): <type 'float'>\n    test 557 copy(<type 'type'>): (<class 'pygeodesy.heights.HeightIDWflatPolar'>, True)\n    test 558 HeightIDWflatPolar.copy(): (<class 'pygeodesy.heights.HeightIDWflatPolar'>, True)\n    test 559 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n\n    test 560 HeightIDWhaversine(): 2.592742938\n    test 561 HeightIDWhaversine(float): <type 'float'>\n    test 562 HeightIDWhaversine(latlon): True\n    test 563 HeightIDWhaversine_(tuple): True\n    test 564 HeightIDWhaversine(): 3.0\n    test 565 HeightIDWhaversine(float): <type 'float'>\n    test 566 HeightIDWhaversine(latlon): True\n    test 567 HeightIDWhaversine(): (2.592742938, 3.0,)\n    test 568 HeightIDWhaversine(tuple): <type 'tuple'>\n    test 569 HeightIDWhaversine(tuple-float): <type 'float'>\n    test 570 HeightIDWhaversine(tuple-float): <type 'float'>\n    test 571 HeightIDWhaversine(): [2.592742938, 3.0]\n    test 572 HeightIDWhaversine(list: <type 'list'>\n    test 573 HeightIDWhaversine(list-float): <type 'float'>\n    test 574 HeightIDWhaversine(list-float): <type 'float'>\n    test 575 copy(<type 'type'>): (<class 'pygeodesy.heights.HeightIDWhaversine'>, True)\n    test 576 HeightIDWhaversine.copy(): (<class 'pygeodesy.heights.HeightIDWhaversine'>, True)\n    test 577 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n\n    test 578 HeightIDWhubeny(): 2.592743288\n    test 579 HeightIDWhubeny(float): <type 'float'>\n    test 580 HeightIDWhubeny(latlon): True\n    test 581 HeightIDWhubeny_(tuple): True\n    test 582 HeightIDWhubeny(): 3.0\n    test 583 HeightIDWhubeny(float): <type 'float'>\n    test 584 HeightIDWhubeny(latlon): True\n    test 585 HeightIDWhubeny(): (2.592743288, 3.0,)\n    test 586 HeightIDWhubeny(tuple): <type 'tuple'>\n    test 587 HeightIDWhubeny(tuple-float): <type 'float'>\n    test 588 HeightIDWhubeny(tuple-float): <type 'float'>\n    test 589 HeightIDWhubeny(): [2.592743288, 3.0]\n    test 590 HeightIDWhubeny(list: <type 'list'>\n    test 591 HeightIDWhubeny(list-float): <type 'float'>\n    test 592 HeightIDWhubeny(list-float): <type 'float'>\n    test 593 copy(<type 'type'>): (<class 'pygeodesy.heights.HeightIDWhubeny'>, True)\n    test 594 HeightIDWhubeny.copy(): (<class 'pygeodesy.heights.HeightIDWhubeny'>, True)\n    test 595 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n\n    test 596 HeightIDWkarney(datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), wrap=True): 2.592742915\n    test 597 HeightIDWkarney(float): <type 'float'>\n    test 598 HeightIDWkarney(latlon): True\n    test 599 HeightIDWkarney_(tuple): True\n    test 600 HeightIDWkarney(datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), wrap=True): 3.0\n    test 601 HeightIDWkarney(float): <type 'float'>\n    test 602 HeightIDWkarney(latlon): True\n    test 603 HeightIDWkarney(datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), wrap=True): (2.592742915, 3.0,)\n    test 604 HeightIDWkarney(tuple): <type 'tuple'>\n    test 605 HeightIDWkarney(tuple-float): <type 'float'>\n    test 606 HeightIDWkarney(tuple-float): <type 'float'>\n    test 607 HeightIDWkarney(datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), wrap=True): [2.592742915, 3.0]\n    test 608 HeightIDWkarney(list: <type 'list'>\n    test 609 HeightIDWkarney(list-float): <type 'float'>\n    test 610 HeightIDWkarney(list-float): <type 'float'>\n    test 611 copy(<type 'type'>): (<class 'pygeodesy.heights.HeightIDWkarney'>, True)\n    test 612 HeightIDWkarney.copy(): (<class 'pygeodesy.heights.HeightIDWkarney'>, True)\n    test 613 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n\n    test 614 HeightIDWkarney(datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), wrap=False): 2.592742915\n    test 615 HeightIDWkarney(float): <type 'float'>\n    test 616 HeightIDWkarney(latlon): True\n    test 617 HeightIDWkarney_(tuple): True\n    test 618 HeightIDWkarney(datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), wrap=False): 3.0\n    test 619 HeightIDWkarney(float): <type 'float'>\n    test 620 HeightIDWkarney(latlon): True\n    test 621 HeightIDWkarney(datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), wrap=False): (2.592742915, 3.0,)\n    test 622 HeightIDWkarney(tuple): <type 'tuple'>\n    test 623 HeightIDWkarney(tuple-float): <type 'float'>\n    test 624 HeightIDWkarney(tuple-float): <type 'float'>\n    test 625 HeightIDWkarney(datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), wrap=False): [2.592742915, 3.0]\n    test 626 HeightIDWkarney(list: <type 'list'>\n    test 627 HeightIDWkarney(list-float): <type 'float'>\n    test 628 HeightIDWkarney(list-float): <type 'float'>\n    test 629 copy(<type 'type'>): (<class 'pygeodesy.heights.HeightIDWkarney'>, True)\n    test 630 HeightIDWkarney.copy(): (<class 'pygeodesy.heights.HeightIDWkarney'>, True)\n    test 631 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n\n    test 632 HeightIDWkarney(datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84), wrap=True): 2.592742938\n    test 633 HeightIDWkarney(float): <type 'float'>\n    test 634 HeightIDWkarney(latlon): True\n    test 635 HeightIDWkarney_(tuple): True\n    test 636 HeightIDWkarney(datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84), wrap=True): 3.0\n    test 637 HeightIDWkarney(float): <type 'float'>\n    test 638 HeightIDWkarney(latlon): True\n    test 639 HeightIDWkarney(datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84), wrap=True): (2.592742938, 3.0,)\n    test 640 HeightIDWkarney(tuple): <type 'tuple'>\n    test 641 HeightIDWkarney(tuple-float): <type 'float'>\n    test 642 HeightIDWkarney(tuple-float): <type 'float'>\n    test 643 HeightIDWkarney(datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84), wrap=True): [2.592742938, 3.0]\n    test 644 HeightIDWkarney(list: <type 'list'>\n    test 645 HeightIDWkarney(list-float): <type 'float'>\n    test 646 HeightIDWkarney(list-float): <type 'float'>\n    test 647 copy(<type 'type'>): (<class 'pygeodesy.heights.HeightIDWkarney'>, True)\n    test 648 HeightIDWkarney.copy(): (<class 'pygeodesy.heights.HeightIDWkarney'>, True)\n    test 649 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n\n    test 650 HeightIDWkarney(datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84), wrap=False): 2.592742938\n    test 651 HeightIDWkarney(float): <type 'float'>\n    test 652 HeightIDWkarney(latlon): True\n    test 653 HeightIDWkarney_(tuple): True\n    test 654 HeightIDWkarney(datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84), wrap=False): 3.0\n    test 655 HeightIDWkarney(float): <type 'float'>\n    test 656 HeightIDWkarney(latlon): True\n    test 657 HeightIDWkarney(datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84), wrap=False): (2.592742938, 3.0,)\n    test 658 HeightIDWkarney(tuple): <type 'tuple'>\n    test 659 HeightIDWkarney(tuple-float): <type 'float'>\n    test 660 HeightIDWkarney(tuple-float): <type 'float'>\n    test 661 HeightIDWkarney(datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84), wrap=False): [2.592742938, 3.0]\n    test 662 HeightIDWkarney(list: <type 'list'>\n    test 663 HeightIDWkarney(list-float): <type 'float'>\n    test 664 HeightIDWkarney(list-float): <type 'float'>\n    test 665 copy(<type 'type'>): (<class 'pygeodesy.heights.HeightIDWkarney'>, True)\n    test 666 HeightIDWkarney.copy(): (<class 'pygeodesy.heights.HeightIDWkarney'>, True)\n    test 667 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n\n    test 668 HeightIDWthomas(wrap=True): 2.592742781\n    test 669 HeightIDWthomas(float): <type 'float'>\n    test 670 HeightIDWthomas(latlon): True\n    test 671 HeightIDWthomas_(tuple): True\n    test 672 HeightIDWthomas(wrap=True): 3.0\n    test 673 HeightIDWthomas(float): <type 'float'>\n    test 674 HeightIDWthomas(latlon): True\n    test 675 HeightIDWthomas(wrap=True): (2.592742781, 3.0,)\n    test 676 HeightIDWthomas(tuple): <type 'tuple'>\n    test 677 HeightIDWthomas(tuple-float): <type 'float'>\n    test 678 HeightIDWthomas(tuple-float): <type 'float'>\n    test 679 HeightIDWthomas(wrap=True): [2.592742781, 3.0]\n    test 680 HeightIDWthomas(list: <type 'list'>\n    test 681 HeightIDWthomas(list-float): <type 'float'>\n    test 682 HeightIDWthomas(list-float): <type 'float'>\n    test 683 copy(<type 'type'>): (<class 'pygeodesy.heights.HeightIDWthomas'>, True)\n    test 684 HeightIDWthomas.copy(): (<class 'pygeodesy.heights.HeightIDWthomas'>, True)\n    test 685 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n\n    test 686 HeightIDWthomas(wrap=False): 2.592742781\n    test 687 HeightIDWthomas(float): <type 'float'>\n    test 688 HeightIDWthomas(latlon): True\n    test 689 HeightIDWthomas_(tuple): True\n    test 690 HeightIDWthomas(wrap=False): 3.0\n    test 691 HeightIDWthomas(float): <type 'float'>\n    test 692 HeightIDWthomas(latlon): True\n    test 693 HeightIDWthomas(wrap=False): (2.592742781, 3.0,)\n    test 694 HeightIDWthomas(tuple): <type 'tuple'>\n    test 695 HeightIDWthomas(tuple-float): <type 'float'>\n    test 696 HeightIDWthomas(tuple-float): <type 'float'>\n    test 697 HeightIDWthomas(wrap=False): [2.592742781, 3.0]\n    test 698 HeightIDWthomas(list: <type 'list'>\n    test 699 HeightIDWthomas(list-float): <type 'float'>\n    test 700 HeightIDWthomas(list-float): <type 'float'>\n    test 701 copy(<type 'type'>): (<class 'pygeodesy.heights.HeightIDWthomas'>, True)\n    test 702 HeightIDWthomas.copy(): (<class 'pygeodesy.heights.HeightIDWthomas'>, True)\n    test 703 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n\n    test 704 HeightIDWvincentys(wrap=True): 2.592742938\n    test 705 HeightIDWvincentys(float): <type 'float'>\n    test 706 HeightIDWvincentys(latlon): True\n    test 707 HeightIDWvincentys_(tuple): True\n    test 708 HeightIDWvincentys(wrap=True): 3.0\n    test 709 HeightIDWvincentys(float): <type 'float'>\n    test 710 HeightIDWvincentys(latlon): True\n    test 711 HeightIDWvincentys(wrap=True): (2.592742938, 3.0,)\n    test 712 HeightIDWvincentys(tuple): <type 'tuple'>\n    test 713 HeightIDWvincentys(tuple-float): <type 'float'>\n    test 714 HeightIDWvincentys(tuple-float): <type 'float'>\n    test 715 HeightIDWvincentys(wrap=True): [2.592742938, 3.0]\n    test 716 HeightIDWvincentys(list: <type 'list'>\n    test 717 HeightIDWvincentys(list-float): <type 'float'>\n    test 718 HeightIDWvincentys(list-float): <type 'float'>\n    test 719 copy(<type 'type'>): (<class 'pygeodesy.heights.HeightIDWvincentys'>, True)\n    test 720 HeightIDWvincentys.copy(): (<class 'pygeodesy.heights.HeightIDWvincentys'>, True)\n    test 721 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n\n    test 722 HeightIDWvincentys(wrap=False): 2.592742938\n    test 723 HeightIDWvincentys(float): <type 'float'>\n    test 724 HeightIDWvincentys(latlon): True\n    test 725 HeightIDWvincentys_(tuple): True\n    test 726 HeightIDWvincentys(wrap=False): 3.0\n    test 727 HeightIDWvincentys(float): <type 'float'>\n    test 728 HeightIDWvincentys(latlon): True\n    test 729 HeightIDWvincentys(wrap=False): (2.592742938, 3.0,)\n    test 730 HeightIDWvincentys(tuple): <type 'tuple'>\n    test 731 HeightIDWvincentys(tuple-float): <type 'float'>\n    test 732 HeightIDWvincentys(tuple-float): <type 'float'>\n    test 733 HeightIDWvincentys(wrap=False): [2.592742938, 3.0]\n    test 734 HeightIDWvincentys(list: <type 'list'>\n    test 735 HeightIDWvincentys(list-float): <type 'float'>\n    test 736 HeightIDWvincentys(list-float): <type 'float'>\n    test 737 copy(<type 'type'>): (<class 'pygeodesy.heights.HeightIDWvincentys'>, True)\n    test 738 HeightIDWvincentys.copy(): (<class 'pygeodesy.heights.HeightIDWvincentys'>, True)\n    test 739 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 740 copy(<type 'type'>): (<class 'pygeodesy.heights.HeightLinear'>, True)\n    test 741 HeightLinear.copy(): (<class 'pygeodesy.heights.HeightLinear'>, True)\n    test 742 HeightLinear: 2.536626441\n    test 743 HeightLinear(float): <type 'float'>\n    test 744 HeightLinear(latlon): True\n    test 745 copy(<type 'type'>): (<class 'pygeodesy.heights.HeightCubic'>, True)\n    test 746 HeightCubic.copy(): (<class 'pygeodesy.heights.HeightCubic'>, True)\n    test 747 HeightError: llis[0] (9.0): 'float' object has no attribute 'lat'\n    test 748 HeightCubic: 3.000000000\n    test 749 HeightCubic(float): <type 'float'>\n    test 750 HeightCubic(latlon): True\n    test 751 HeightCubic_(tuple): True\n    test 752 HeightCubic(tuple): <type 'tuple'>\n    test 753 HeightCubic(tuple-float): <type 'float'>\n    test 754 HeightCubic(tuple-float): <type 'float'>\n    test 755 HeightCubic(list): <type 'list'>\n    test 756 HeightCubic(list-float): <type 'float'>\n    test 757 HeightCubic(list-float): <type 'float'>\n    test 758 HeightCubic(latlon): True\n\n    test 759 copy(<type 'type'>): (<class 'pygeodesy.heights.HeightIDWcosineLaw'>, True)\n    test 760 HeightIDWcosineLaw.copy(): (<class 'pygeodesy.heights.HeightIDWcosineLaw'>, True)\n    test 761 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 762 HeightIDWcosineLaw: 2.402157442\n    test 763 HeightIDWcosineLaw(float): <type 'float'>\n    test 764 HeightIDWcosineLaw(latlon): True\n    test 765 HeightIDWcosineLaw_(tuple): True\n    test 766 HeightIDWcosineLaw(tuple): <type 'tuple'>\n    test 767 HeightIDWcosineLaw(tuple-float): <type 'float'>\n    test 768 HeightIDWcosineLaw(tuple-float): <type 'float'>\n    test 769 HeightIDWcosineLaw(list): <type 'list'>\n    test 770 HeightIDWcosineLaw(list-float): <type 'float'>\n    test 771 HeightIDWcosineLaw(list-float): <type 'float'>\n    test 772 HeightIDWcosineLaw(latlon): True\n\n    test 773 copy(<type 'type'>): (<class 'pygeodesy.heights.HeightIDWcosineLaw'>, True)\n    test 774 HeightIDWcosineLaw.copy(): (<class 'pygeodesy.heights.HeightIDWcosineLaw'>, True)\n    test 775 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 776 HeightIDWcosineLaw: 2.401661864\n    test 777 HeightIDWcosineLaw(float): <type 'float'>\n    test 778 HeightIDWcosineLaw(latlon): True\n    test 779 HeightIDWcosineLaw_(tuple): True\n    test 780 HeightIDWcosineLaw(tuple): <type 'tuple'>\n    test 781 HeightIDWcosineLaw(tuple-float): <type 'float'>\n    test 782 HeightIDWcosineLaw(tuple-float): <type 'float'>\n    test 783 HeightIDWcosineLaw(list): <type 'list'>\n    test 784 HeightIDWcosineLaw(list-float): <type 'float'>\n    test 785 HeightIDWcosineLaw(list-float): <type 'float'>\n    test 786 HeightIDWcosineLaw(latlon): True\n\n    test 787 copy(<type 'type'>): (<class 'pygeodesy.heights.HeightIDWcosineLaw'>, True)\n    test 788 HeightIDWcosineLaw.copy(): (<class 'pygeodesy.heights.HeightIDWcosineLaw'>, True)\n    test 789 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 790 HeightIDWcosineLaw: 2.401661859\n    test 791 HeightIDWcosineLaw(float): <type 'float'>\n    test 792 HeightIDWcosineLaw(latlon): True\n    test 793 HeightIDWcosineLaw_(tuple): True\n    test 794 HeightIDWcosineLaw(tuple): <type 'tuple'>\n    test 795 HeightIDWcosineLaw(tuple-float): <type 'float'>\n    test 796 HeightIDWcosineLaw(tuple-float): <type 'float'>\n    test 797 HeightIDWcosineLaw(list): <type 'list'>\n    test 798 HeightIDWcosineLaw(list-float): <type 'float'>\n    test 799 HeightIDWcosineLaw(list-float): <type 'float'>\n    test 800 HeightIDWcosineLaw(latlon): True\n\n    test 801 copy(<type 'type'>): (<class 'pygeodesy.heights.HeightIDWequirectangular'>, True)\n    test 802 HeightIDWequirectangular.copy(): (<class 'pygeodesy.heights.HeightIDWequirectangular'>, True)\n    test 803 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 804 HeightIDWequirectangular: 2.469718302\n    test 805 HeightIDWequirectangular(float): <type 'float'>\n    test 806 HeightIDWequirectangular(latlon): True\n    test 807 HeightIDWequirectangular_(tuple): True\n    test 808 HeightIDWequirectangular(tuple): <type 'tuple'>\n    test 809 HeightIDWequirectangular(tuple-float): <type 'float'>\n    test 810 HeightIDWequirectangular(tuple-float): <type 'float'>\n    test 811 HeightIDWequirectangular(list): <type 'list'>\n    test 812 HeightIDWequirectangular(list-float): <type 'float'>\n    test 813 HeightIDWequirectangular(list-float): <type 'float'>\n    test 814 HeightIDWequirectangular(latlon): True\n\n    test 815 copy(<type 'type'>): (<class 'pygeodesy.heights.HeightIDWeuclidean'>, True)\n    test 816 HeightIDWeuclidean.copy(): (<class 'pygeodesy.heights.HeightIDWeuclidean'>, True)\n    test 817 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 818 HeightIDWeuclidean: 2.409288552\n    test 819 HeightIDWeuclidean(float): <type 'float'>\n    test 820 HeightIDWeuclidean(latlon): True\n    test 821 HeightIDWeuclidean_(tuple): True\n    test 822 HeightIDWeuclidean(tuple): <type 'tuple'>\n    test 823 HeightIDWeuclidean(tuple-float): <type 'float'>\n    test 824 HeightIDWeuclidean(tuple-float): <type 'float'>\n    test 825 HeightIDWeuclidean(list): <type 'list'>\n    test 826 HeightIDWeuclidean(list-float): <type 'float'>\n    test 827 HeightIDWeuclidean(list-float): <type 'float'>\n    test 828 HeightIDWeuclidean(latlon): True\n\n    test 829 copy(<type 'type'>): (<class 'pygeodesy.heights.HeightIDWexact'>, True)\n    test 830 HeightIDWexact.copy(): (<class 'pygeodesy.heights.HeightIDWexact'>, True)\n    test 831 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 832 HeightIDWexact: 2.402157442\n    test 833 HeightIDWexact(float): <type 'float'>\n    test 834 HeightIDWexact(latlon): True\n    test 835 HeightIDWexact_(tuple): True\n    test 836 HeightIDWexact(tuple): <type 'tuple'>\n    test 837 HeightIDWexact(tuple-float): <type 'float'>\n    test 838 HeightIDWexact(tuple-float): <type 'float'>\n    test 839 HeightIDWexact(list): <type 'list'>\n    test 840 HeightIDWexact(list-float): <type 'float'>\n    test 841 HeightIDWexact(list-float): <type 'float'>\n    test 842 HeightIDWexact(latlon): True\n\n    test 843 copy(<type 'type'>): (<class 'pygeodesy.heights.HeightIDWflatLocal'>, True)\n    test 844 HeightIDWflatLocal.copy(): (<class 'pygeodesy.heights.HeightIDWflatLocal'>, True)\n    test 845 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 846 HeightIDWflatLocal: 2.401661562\n    test 847 HeightIDWflatLocal(float): <type 'float'>\n    test 848 HeightIDWflatLocal(latlon): True\n    test 849 HeightIDWflatLocal_(tuple): True\n    test 850 HeightIDWflatLocal(tuple): <type 'tuple'>\n    test 851 HeightIDWflatLocal(tuple-float): <type 'float'>\n    test 852 HeightIDWflatLocal(tuple-float): <type 'float'>\n    test 853 HeightIDWflatLocal(list): <type 'list'>\n    test 854 HeightIDWflatLocal(list-float): <type 'float'>\n    test 855 HeightIDWflatLocal(list-float): <type 'float'>\n    test 856 HeightIDWflatLocal(latlon): True\n\n    test 857 copy(<type 'type'>): (<class 'pygeodesy.heights.HeightIDWflatPolar'>, True)\n    test 858 HeightIDWflatPolar.copy(): (<class 'pygeodesy.heights.HeightIDWflatPolar'>, True)\n    test 859 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 860 HeightIDWflatPolar: 2.370266641\n    test 861 HeightIDWflatPolar(float): <type 'float'>\n    test 862 HeightIDWflatPolar(latlon): True\n    test 863 HeightIDWflatPolar_(tuple): True\n    test 864 HeightIDWflatPolar(tuple): <type 'tuple'>\n    test 865 HeightIDWflatPolar(tuple-float): <type 'float'>\n    test 866 HeightIDWflatPolar(tuple-float): <type 'float'>\n    test 867 HeightIDWflatPolar(list): <type 'list'>\n    test 868 HeightIDWflatPolar(list-float): <type 'float'>\n    test 869 HeightIDWflatPolar(list-float): <type 'float'>\n    test 870 HeightIDWflatPolar(latlon): True\n\n    test 871 copy(<type 'type'>): (<class 'pygeodesy.heights.HeightIDWhaversine'>, True)\n    test 872 HeightIDWhaversine.copy(): (<class 'pygeodesy.heights.HeightIDWhaversine'>, True)\n    test 873 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 874 HeightIDWhaversine: 2.402157442\n    test 875 HeightIDWhaversine(float): <type 'float'>\n    test 876 HeightIDWhaversine(latlon): True\n    test 877 HeightIDWhaversine_(tuple): True\n    test 878 HeightIDWhaversine(tuple): <type 'tuple'>\n    test 879 HeightIDWhaversine(tuple-float): <type 'float'>\n    test 880 HeightIDWhaversine(tuple-float): <type 'float'>\n    test 881 HeightIDWhaversine(list): <type 'list'>\n    test 882 HeightIDWhaversine(list-float): <type 'float'>\n    test 883 HeightIDWhaversine(list-float): <type 'float'>\n    test 884 HeightIDWhaversine(latlon): True\n\n    test 885 copy(<type 'type'>): (<class 'pygeodesy.heights.HeightIDWhubeny'>, True)\n    test 886 HeightIDWhubeny.copy(): (<class 'pygeodesy.heights.HeightIDWhubeny'>, True)\n    test 887 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 888 HeightIDWhubeny: 2.401661562\n    test 889 HeightIDWhubeny(float): <type 'float'>\n    test 890 HeightIDWhubeny(latlon): True\n    test 891 HeightIDWhubeny_(tuple): True\n    test 892 HeightIDWhubeny(tuple): <type 'tuple'>\n    test 893 HeightIDWhubeny(tuple-float): <type 'float'>\n    test 894 HeightIDWhubeny(tuple-float): <type 'float'>\n    test 895 HeightIDWhubeny(list): <type 'list'>\n    test 896 HeightIDWhubeny(list-float): <type 'float'>\n    test 897 HeightIDWhubeny(list-float): <type 'float'>\n    test 898 HeightIDWhubeny(latlon): True\n\n    test 899 copy(<type 'type'>): (<class 'pygeodesy.heights.HeightIDWkarney'>, True)\n    test 900 HeightIDWkarney.copy(): (<class 'pygeodesy.heights.HeightIDWkarney'>, True)\n    test 901 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 902 HeightIDWkarney: 2.402157442\n    test 903 HeightIDWkarney(float): <type 'float'>\n    test 904 HeightIDWkarney(latlon): True\n    test 905 HeightIDWkarney_(tuple): True\n    test 906 HeightIDWkarney(tuple): <type 'tuple'>\n    test 907 HeightIDWkarney(tuple-float): <type 'float'>\n    test 908 HeightIDWkarney(tuple-float): <type 'float'>\n    test 909 HeightIDWkarney(list): <type 'list'>\n    test 910 HeightIDWkarney(list-float): <type 'float'>\n    test 911 HeightIDWkarney(list-float): <type 'float'>\n    test 912 HeightIDWkarney(latlon): True\n\n    test 913 copy(<type 'type'>): (<class 'pygeodesy.heights.HeightIDWthomas'>, True)\n    test 914 HeightIDWthomas.copy(): (<class 'pygeodesy.heights.HeightIDWthomas'>, True)\n    test 915 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 916 HeightIDWthomas: 2.401661653\n    test 917 HeightIDWthomas(float): <type 'float'>\n    test 918 HeightIDWthomas(latlon): True\n    test 919 HeightIDWthomas_(tuple): True\n    test 920 HeightIDWthomas(tuple): <type 'tuple'>\n    test 921 HeightIDWthomas(tuple-float): <type 'float'>\n    test 922 HeightIDWthomas(tuple-float): <type 'float'>\n    test 923 HeightIDWthomas(list): <type 'list'>\n    test 924 HeightIDWthomas(list-float): <type 'float'>\n    test 925 HeightIDWthomas(list-float): <type 'float'>\n    test 926 HeightIDWthomas(latlon): True\n\n    test 927 copy(<type 'type'>): (<class 'pygeodesy.heights.HeightIDWvincentys'>, True)\n    test 928 HeightIDWvincentys.copy(): (<class 'pygeodesy.heights.HeightIDWvincentys'>, True)\n    test 929 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 930 HeightIDWvincentys: 2.402157442\n    test 931 HeightIDWvincentys(float): <type 'float'>\n    test 932 HeightIDWvincentys(latlon): True\n    test 933 HeightIDWvincentys_(tuple): True\n    test 934 HeightIDWvincentys(tuple): <type 'tuple'>\n    test 935 HeightIDWvincentys(tuple-float): <type 'float'>\n    test 936 HeightIDWvincentys(tuple-float): <type 'float'>\n    test 937 HeightIDWvincentys(list): <type 'list'>\n    test 938 HeightIDWvincentys(list-float): <type 'float'>\n    test 939 HeightIDWvincentys(list-float): <type 'float'>\n    test 940 HeightIDWvincentys(latlon): True\n\n    test 941 copy(<type 'type'>): (<class 'pygeodesy.heights.HeightLinear'>, True)\n    test 942 HeightLinear.copy(): (<class 'pygeodesy.heights.HeightLinear'>, True)\n    test 943 HeightError: llis[0] (9.0): 'float' object has no attribute 'lat'\n    test 944 HeightLinear: 3.000000000  FAILED, KNOWN, expected 2.294914622\n    test 945 HeightLinear(float): <type 'float'>\n    test 946 HeightLinear(latlon): True\n    test 947 HeightLinear_(tuple): True\n    test 948 HeightLinear(tuple): <type 'tuple'>\n    test 949 HeightLinear(tuple-float): <type 'float'>\n    test 950 HeightLinear(tuple-float): <type 'float'>\n    test 951 HeightLinear(list): <type 'list'>\n    test 952 HeightLinear(list-float): <type 'float'>\n    test 953 HeightLinear(list-float): <type 'float'>\n    test 954 HeightLinear(latlon): True\n\n    test 955 copy(<type 'type'>): (<class 'pygeodesy.heights.HeightLSQBiSpline'>, True)\n    test 956 HeightLSQBiSpline.copy(): (<class 'pygeodesy.heights.HeightLSQBiSpline'>, True)\n    test 957 HeightError: llis[0] (9.0): 'float' object has no attribute 'lat'\n    test 958 HeightLSQBiSpline: 6.419251669\n    test 959 HeightLSQBiSpline(float): <type 'float'>\n    test 960 HeightLSQBiSpline(latlon): True\n    test 961 HeightLSQBiSpline_(tuple): True\n    test 962 HeightLSQBiSpline(tuple): <type 'tuple'>\n    test 963 HeightLSQBiSpline(tuple-float): <type 'float'>\n    test 964 HeightLSQBiSpline(tuple-float): <type 'float'>\n    test 965 HeightLSQBiSpline(list): <type 'list'>\n    test 966 HeightLSQBiSpline(list-float): <type 'float'>\n    test 967 HeightLSQBiSpline(list-float): <type 'float'>\n    test 968 HeightLSQBiSpline(latlon): True\n\n    test 969 copy(<type 'type'>): (<class 'pygeodesy.heights.HeightLSQBiSpline'>, True)\n    test 970 HeightLSQBiSpline.copy(): (<class 'pygeodesy.heights.HeightLSQBiSpline'>, True)\n    test 971 HeightError: llis[0] (9.0): 'float' object has no attribute 'lat'\n    test 972 HeightLSQBiSpline: 6.419251669\n    test 973 HeightLSQBiSpline(float): <type 'float'>\n    test 974 HeightLSQBiSpline(latlon): True\n    test 975 HeightLSQBiSpline_(tuple): True\n    test 976 HeightLSQBiSpline(tuple): <type 'tuple'>\n    test 977 HeightLSQBiSpline(tuple-float): <type 'float'>\n    test 978 HeightLSQBiSpline(tuple-float): <type 'float'>\n    test 979 HeightLSQBiSpline(list): <type 'list'>\n    test 980 HeightLSQBiSpline(list-float): <type 'float'>\n    test 981 HeightLSQBiSpline(list-float): <type 'float'>\n    test 982 HeightLSQBiSpline(latlon): True\n\n    test 983 copy(<type 'type'>): (<class 'pygeodesy.heights.HeightLSQBiSpline'>, True)\n    test 984 HeightLSQBiSpline.copy(): (<class 'pygeodesy.heights.HeightLSQBiSpline'>, True)\n    test 985 HeightError: llis[0] (9.0): 'float' object has no attribute 'lat'\n    test 986 HeightLSQBiSpline: 6.419251669\n    test 987 HeightLSQBiSpline(float): <type 'float'>\n    test 988 HeightLSQBiSpline(latlon): True\n    test 989 HeightLSQBiSpline_(tuple): True\n    test 990 HeightLSQBiSpline(tuple): <type 'tuple'>\n    test 991 HeightLSQBiSpline(tuple-float): <type 'float'>\n    test 992 HeightLSQBiSpline(tuple-float): <type 'float'>\n    test 993 HeightLSQBiSpline(list): <type 'list'>\n    test 994 HeightLSQBiSpline(list-float): <type 'float'>\n    test 995 HeightLSQBiSpline(list-float): <type 'float'>\n    test 996 HeightLSQBiSpline(latlon): True\n\n    test 997 copy(<type 'type'>): (<class 'pygeodesy.heights.HeightSmoothBiSpline'>, True)\n    test 998 HeightSmoothBiSpline.copy(): (<class 'pygeodesy.heights.HeightSmoothBiSpline'>, True)\n    test 999 HeightError: llis[0] (9.0): 'float' object has no attribute 'lat'\n    test 1000 HeightSmoothBiSpline: 2.598922541\n    test 1001 HeightSmoothBiSpline(float): <type 'float'>\n    test 1002 HeightSmoothBiSpline(latlon): True\n    test 1003 HeightSmoothBiSpline_(tuple): True\n    test 1004 HeightSmoothBiSpline(tuple): <type 'tuple'>\n    test 1005 HeightSmoothBiSpline(tuple-float): <type 'float'>\n    test 1006 HeightSmoothBiSpline(tuple-float): <type 'float'>\n    test 1007 HeightSmoothBiSpline(list): <type 'list'>\n    test 1008 HeightSmoothBiSpline(list-float): <type 'float'>\n    test 1009 HeightSmoothBiSpline(list-float): <type 'float'>\n    test 1010 HeightSmoothBiSpline(latlon): True\n\n\n    10 of 1010 testHeights.py tests (1.0%) FAILED, incl. 1 KNOWN plus 9 DeprecationWarnings (pygeodesy 26.3.26 Python 2.7.18 64bit arm64_x86_64 geographiclib 1.50 numpy 1.16.6 scipy 1.2.2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 -W  default) 6.893 sec\nrunning /Library/Framewo....ython -W default ~/PyGeodesy/test/testInterns.py\n\n    testing testInterns.py 25.04.12 (module pygeodesy.interns 25.11.07)\n    test 1 _0_ = '0': True\n    test 2 _0_ = '0': 0\n    test 3 _0to9_ = '0123456789': True\n    test 4 _0to9_ = '0123456789': 0123456789  FAILED, KNOWN, expected 0to9\n    test 5 _1_ = '1': True\n    test 6 _1_ = '1': 1\n    test 7 _2_ = '2': True\n    test 8 _2_ = '2': 2\n    test 9 _3_ = '3': True\n    test 10 _3_ = '3': 3\n    test 11 _4_ = '4': True\n    test 12 _4_ = '4': 4\n    test 13 __all__ = ('NN', 'Str_'): False  FAILED, KNOWN, expected True\n    test 14 __builtins__ = {'bytearray': <type 'byte....ceptions.OverflowError'>}: False  FAILED, KNOWN, expected True\n    test 15 __doc__ = u\"Single C{str}ing consta.... L{pygeodesy.machine}.\\n\": False  FAILED, KNOWN, expected True\n    test 16 __file__ = './pygeodesy/interns.pyc': True\n    test 17 __name__ = 'pygeodesy.interns': True\n    test 18 __package__ = 'pygeodesy': True\n    test 19 __version__ = '25.11.07': True\n    test 20 _a12_ = 'a12': True\n    test 21 _a12_ = 'a12': a12\n    test 22 _A_ = 'A': True\n    test 23 _A_ = 'A': a\n    test 24 _a_ = 'a': True\n    test 25 _a_ = 'a': a\n    test 26 _Airy1830_ = 'Airy1830': True\n    test 27 _Airy1830_ = 'Airy1830': airy1830\n    test 28 _AiryModified_ = 'AiryModified': True\n    test 29 _AiryModified_ = 'AiryModified': airymodified\n    test 30 _ambiguous_ = 'ambiguous': True\n    test 31 _ambiguous_ = 'ambiguous': ambiguous\n    test 32 _AMPERSAND_ = '&': True\n    test 33 _AMPERSAND_ = '&': &  FAILED, KNOWN, expected ampersand\n    test 34 _an_ = 'an': True\n    test 35 _an_ = 'an': an\n    test 36 _and_ = 'and': True\n    test 37 _and_ = 'and': and\n    test 38 _angle_ = 'angle': True\n    test 39 _angle_ = 'angle': angle\n    test 40 _antipodal_ = 'antipodal': True\n    test 41 _antipodal_ = 'antipodal': antipodal\n    test 42 _area_ = 'area': True\n    test 43 _area_ = 'area': area\n    test 44 _arg_ = 'arg': True\n    test 45 _arg_ = 'arg': arg\n    test 46 _AT_ = '@': True\n    test 47 _AT_ = '@': @  FAILED, KNOWN, expected at\n    test 48 _AtoZnoIO_ = 'ABCDEFGHJKLMNPQRSTUVWXYZ': True\n    test 49 _AtoZnoIO_ = 'ABCDEFGHJKLMNPQRSTUVWXYZ': abcdefghjklmnpqrstuvwxyz  FAILED, KNOWN, expected atoznoio\n    test 50 _attribute_ = 'attribute': True\n    test 51 _attribute_ = 'attribute': attribute\n    test 52 _azi12_ = 'azi12': True\n    test 53 _azi12_ = 'azi12': azi12\n    test 54 _azi1_ = 'azi1': True\n    test 55 _azi1_ = 'azi1': azi1\n    test 56 _azi2_ = 'azi2': True\n    test 57 _azi2_ = 'azi2': azi2\n    test 58 _azimuth_ = 'azimuth': True\n    test 59 _azimuth_ = 'azimuth': azimuth\n    test 60 _B_ = 'B': True\n    test 61 _B_ = 'B': b\n    test 62 _b_ = 'b': True\n    test 63 _b_ = 'b': b\n    test 64 _BACKSLASH_ = '\\\\': True\n    test 65 _BACKSLASH_ = '\\\\': \\  FAILED, KNOWN, expected backslash\n    test 66 _band_ = 'band': True\n    test 67 _band_ = 'band': band\n    test 68 _BANG_ = '!': True\n    test 69 _BANG_ = '!': !  FAILED, KNOWN, expected bang\n    test 70 _BAR_ = '|': True\n    test 71 _BAR_ = '|': |  FAILED, KNOWN, expected bar\n    test 72 _bearing_ = 'bearing': True\n    test 73 _bearing_ = 'bearing': bearing\n    test 74 _Bessel1841_ = 'Bessel1841': True\n    test 75 _Bessel1841_ = 'Bessel1841': bessel1841\n    test 76 _beta_ = 'beta': True\n    test 77 _beta_ = 'beta': beta\n    test 78 _by_ = 'by': True\n    test 79 _by_ = 'by': by\n    test 80 _C_ = 'C': True\n    test 81 _C_ = 'C': c\n    test 82 _c_ = 'c': True\n    test 83 _c_ = 'c': c\n    test 84 _cartesian_ = 'cartesian': True\n    test 85 _cartesian_ = 'cartesian': cartesian\n    test 86 _center_ = 'center': True\n    test 87 _center_ = 'center': center\n    test 88 _Clarke1866_ = 'Clarke1866': True\n    test 89 _Clarke1866_ = 'Clarke1866': clarke1866\n    test 90 _Clarke1880IGN_ = 'Clarke1880IGN': True\n    test 91 _Clarke1880IGN_ = 'Clarke1880IGN': clarke1880ign\n    test 92 _clip_ = 'clip': True\n    test 93 _clip_ = 'clip': clip\n    test 94 _clipid_ = 'clipid': True\n    test 95 _clipid_ = 'clipid': clipid\n    test 96 _coincident_ = 'coincident': True\n    test 97 _coincident_ = 'coincident': coincident\n    test 98 _colinear_ = 'colinear': True\n    test 99 _colinear_ = 'colinear': colinear\n    test 100 _COLON_ = ':': True\n    test 101 _COLON_ = ':': :  FAILED, KNOWN, expected colon\n    test 102 _COLONSPACE_ = ': ': True\n    test 103 _COLONSPACE_ = ': ': :   FAILED, KNOWN, expected colonspace\n    test 104 _COMMA_ = ',': True\n    test 105 _COMMA_ = ',': ,  FAILED, KNOWN, expected comma\n    test 106 _COMMASPACE_ = ', ': True\n    test 107 _COMMASPACE_ = ', ': ,   FAILED, KNOWN, expected commaspace\n    test 108 _composite_ = 'composite': True\n    test 109 _composite_ = 'composite': composite\n    test 110 _concentric_ = 'concentric': True\n    test 111 _concentric_ = 'concentric': concentric\n    test 112 _convergence_ = 'convergence': True\n    test 113 _convergence_ = 'convergence': convergence\n    test 114 _conversion_ = 'conversion': True\n    test 115 _conversion_ = 'conversion': conversion\n    test 116 _convex_ = 'convex': True\n    test 117 _convex_ = 'convex': convex\n    test 118 _D_ = 'D': True\n    test 119 _D_ = 'D': d\n    test 120 _d_ = 'd': True\n    test 121 _d_ = 'd': d\n    test 122 _DALL_ = '__all__': True\n    test 123 _DALL_ = '__all__': __all__  FAILED, KNOWN, expected dall\n    test 124 _DASH_ = '-': True\n    test 125 _DASH_ = '-': -  FAILED, KNOWN, expected dash\n    test 126 _datum_ = 'datum': True\n    test 127 _datum_ = 'datum': datum\n    test 128 _DDOT_ = '..': True\n    test 129 _DDOT_ = '..': ..  FAILED, KNOWN, expected ddot\n    test 130 _decode3_ = 'decode3': True\n    test 131 _decode3_ = 'decode3': decode3\n    test 132 _deg_ = 'deg': True\n    test 133 _deg_ = 'deg': deg\n    test 134 _degrees2_ = 'degrees2': True\n    test 135 _degrees2_ = 'degrees2': degrees2\n    test 136 _degrees_ = 'degrees': True\n    test 137 _degrees_ = 'degrees': degrees\n    test 138 _delta_ = 'delta': True\n    test 139 _delta_ = 'delta': delta\n    test 140 _DEPRECATED_ = 'DEPRECATED': True\n    test 141 _DEPRECATED_ = 'DEPRECATED': deprecated\n    test 142 _DEQUALSPACED_ = ' == ': True\n    test 143 _DEQUALSPACED_ = ' == ':  ==   FAILED, KNOWN, expected dequalspaced\n    test 144 _distance_ = 'distance': True\n    test 145 _distance_ = 'distance': distance\n    test 146 _distant_ = 'distant': True\n    test 147 _distant_ = 'distant': distant\n    test 148 _DMAIN_ = '__main__': True\n    test 149 _DMAIN_ = '__main__': __main__  FAILED, KNOWN, expected dmain\n    test 150 _DNAME_ = '__name__': True\n    test 151 _DNAME_ = '__name__': __name__  FAILED, KNOWN, expected dname\n    test 152 _doesn_t_exist_ = \"doesn't exist\": True\n    test 153 _doesn_t_exist_ = \"doesn't exist\": doesn't exist  FAILED, KNOWN, expected doesn_t_exist\n    test 154 _DOT_ = '.': True\n    test 155 _DOT_ = '.': .  FAILED, KNOWN, expected dot\n    test 156 _DSLASH_ = '//': True\n    test 157 _DSLASH_ = '//': //  FAILED, KNOWN, expected dslash\n    test 158 _DSTAR_ = '**': True\n    test 159 _DSTAR_ = '**': **  FAILED, KNOWN, expected dstar\n    test 160 _DUNDER_ = '__': True\n    test 161 _DUNDER_ = '__': __  FAILED, KNOWN, expected dunder\n    test 162 _duplicate_ = 'duplicate': True\n    test 163 _duplicate_ = 'duplicate': duplicate\n    test 164 _E_ = 'E': True\n    test 165 _E_ = 'E': e\n    test 166 _e_ = 'e': True\n    test 167 _e_ = 'e': e\n    test 168 _earth_ = 'earth': True\n    test 169 _earth_ = 'earth': earth\n    test 170 _easting_ = 'easting': True\n    test 171 _easting_ = 'easting': easting\n    test 172 _ecef_ = 'ecef': True\n    test 173 _ecef_ = 'ecef': ecef\n    test 174 _edge_ = 'edge': True\n    test 175 _edge_ = 'edge': edge\n    test 176 _elevation_ = 'elevation': True\n    test 177 _elevation_ = 'elevation': elevation\n    test 178 _ELLIPSIS4_ = '....': True\n    test 179 _ELLIPSIS4_ = '....': ....  FAILED, KNOWN, expected ellipsis4\n    test 180 _ELLIPSIS_ = '...': True\n    test 181 _ELLIPSIS_ = '...': ...  FAILED, KNOWN, expected ellipsis\n    test 182 _ellipsoid_ = 'ellipsoid': True\n    test 183 _ellipsoid_ = 'ellipsoid': ellipsoid\n    test 184 _ellipsoidal_ = 'ellipsoidal': True\n    test 185 _ellipsoidal_ = 'ellipsoidal': ellipsoidal\n    test 186 _encode_ = 'encode': True\n    test 187 _encode_ = 'encode': encode\n    test 188 _end_ = 'end': True\n    test 189 _end_ = 'end': end\n    test 190 _epoch_ = 'epoch': True\n    test 191 _epoch_ = 'epoch': epoch\n    test 192 _EQUAL_ = '=': True\n    test 193 _EQUAL_ = '=': =  FAILED, KNOWN, expected equal\n    test 194 _EQUALSPACED_ = ' = ': True\n    test 195 _EQUALSPACED_ = ' = ':  =   FAILED, KNOWN, expected equalspaced\n    test 196 _Error_ = 'Error': True\n    test 197 _Error_ = 'Error': error\n    test 198 _EW_ = 'EW': True\n    test 199 _EW_ = 'EW': ew\n    test 200 _exceed_PI_radians_ = 'exceed PI radians': True\n    test 201 _exceed_PI_radians_ = 'exceed PI radians': exceed pi radians  FAILED, KNOWN, expected exceed_pi_radians\n    test 202 _exceeds_ = 'exceeds': True\n    test 203 _exceeds_ = 'exceeds': exceeds\n    test 204 _exists_ = 'exists': True\n    test 205 _exists_ = 'exists': exists\n    test 206 _F_ = 'F': True\n    test 207 _F_ = 'F': f\n    test 208 _f_ = 'f': True\n    test 209 _f_ = 'f': f\n    test 210 _feet_ = 'feet': True\n    test 211 _feet_ = 'feet': feet\n    test 212 _few_ = 'few': True\n    test 213 _few_ = 'few': few\n    test 214 _fi_ = 'fi': True\n    test 215 _fi_ = 'fi': fi\n    test 216 _finite_ = 'finite': True\n    test 217 _finite_ = 'finite': finite\n    test 218 _from_ = 'from': True\n    test 219 _from_ = 'from': from\n    test 220 _g_ = 'g': True\n    test 221 _g_ = 'g': g\n    test 222 _gamma_ = 'gamma': True\n    test 223 _gamma_ = 'gamma': gamma\n    test 224 _GRS80_ = 'GRS80': True\n    test 225 _GRS80_ = 'GRS80': grs80\n    test 226 _H_ = 'H': True\n    test 227 _H_ = 'H': h\n    test 228 _h_ = 'h': True\n    test 229 _h_ = 'h': h\n    test 230 _HASH_ = '#': True\n    test 231 _HASH_ = '#': #  FAILED, KNOWN, expected hash\n    test 232 _height_ = 'height': True\n    test 233 _height_ = 'height': height\n    test 234 _hemipole_ = 'hemipole': True\n    test 235 _hemipole_ = 'hemipole': hemipole\n    test 236 _i_ = 'i': True\n    test 237 _i_ = 'i': i\n    test 238 _immutable_ = 'immutable': True\n    test 239 _immutable_ = 'immutable': immutable\n    test 240 _in_ = 'in': True\n    test 241 _in_ = 'in': in\n    test 242 _incompatible_ = 'incompatible': True\n    test 243 _incompatible_ = 'incompatible': incompatible\n    test 244 _INF_ = 'INF': True\n    test 245 _INF_ = 'INF': inf\n    test 246 _infinite_ = 'infinite': True\n    test 247 _infinite_ = 'infinite': infinite\n    test 248 _initial_ = 'initial': True\n    test 249 _initial_ = 'initial': initial\n    test 250 _inside_ = 'inside': True\n    test 251 _inside_ = 'inside': inside\n    test 252 _insufficient_ = 'insufficient': True\n    test 253 _insufficient_ = 'insufficient': insufficient\n    test 254 _intersection_ = 'intersection': True\n    test 255 _intersection_ = 'intersection': intersection\n    test 256 _Intl1924_ = 'Intl1924': True\n    test 257 _Intl1924_ = 'Intl1924': intl1924\n    test 258 _INV_ = 'INV': True\n    test 259 _INV_ = 'INV': inv\n    test 260 _invalid_ = 'invalid': True\n    test 261 _invalid_ = 'invalid': invalid\n    test 262 _invokation_ = 'invokation': True\n    test 263 _invokation_ = 'invokation': invokation\n    test 264 _j_ = 'j': True\n    test 265 _j_ = 'j': j\n    test 266 _k0_ = 'k0': True\n    test 267 _k0_ = 'k0': k0\n    test 268 _keyword_ = 'keyword': True\n    test 269 _keyword_ = 'keyword': keyword\n    test 270 _kind_ = 'kind': True\n    test 271 _kind_ = 'kind': kind\n    test 272 _Krassovski1940_ = 'Krassovski1940': True\n    test 273 _Krassovski1940_ = 'Krassovski1940': krassovski1940\n    test 274 _Krassowsky1940_ = 'Krassowsky1940': True\n    test 275 _Krassowsky1940_ = 'Krassowsky1940': krassowsky1940\n    test 276 _lam_ = 'lam': True\n    test 277 _lam_ = 'lam': lam\n    test 278 _LANGLE_ = '<': True\n    test 279 _LANGLE_ = '<': <  FAILED, KNOWN, expected langle\n    test 280 _lat0_ = 'lat0': True\n    test 281 _lat0_ = 'lat0': lat0\n    test 282 _lat1_ = 'lat1': True\n    test 283 _lat1_ = 'lat1': lat1\n    test 284 _lat2_ = 'lat2': True\n    test 285 _lat2_ = 'lat2': lat2\n    test 286 _lat_ = 'lat': True\n    test 287 _lat_ = 'lat': lat\n    test 288 _LatLon_ = 'LatLon': True\n    test 289 _LatLon_ = 'LatLon': latlon\n    test 290 _latlon_ = 'latlon': True\n    test 291 _latlon_ = 'latlon': latlon\n    test 292 _LCURLY_ = '{': True\n    test 293 _LCURLY_ = '{': {  FAILED, KNOWN, expected lcurly\n    test 294 _len_ = 'len': True\n    test 295 _len_ = 'len': len\n    test 296 _limit_ = 'limit': True\n    test 297 _limit_ = 'limit': limit\n    test 298 _line_ = 'line': True\n    test 299 _line_ = 'line': line\n    test 300 _lon0_ = 'lon0': True\n    test 301 _lon0_ = 'lon0': lon0\n    test 302 _lon1_ = 'lon1': True\n    test 303 _lon1_ = 'lon1': lon1\n    test 304 _lon2_ = 'lon2': True\n    test 305 _lon2_ = 'lon2': lon2\n    test 306 _lon_ = 'lon': True\n    test 307 _lon_ = 'lon': lon\n    test 308 _low_ = 'low': True\n    test 309 _low_ = 'low': low\n    test 310 _LPAREN_ = '(': True\n    test 311 _LPAREN_ = '(': (  FAILED, KNOWN, expected lparen\n    test 312 _LSQUARE_ = '[': True\n    test 313 _LSQUARE_ = '[': [  FAILED, KNOWN, expected lsquare\n    test 314 _ltp_ = 'ltp': True\n    test 315 _ltp_ = 'ltp': ltp\n    test 316 _M12_ = 'M12': True\n    test 317 _M12_ = 'M12': m12\n    test 318 _m12_ = 'm12': True\n    test 319 _m12_ = 'm12': m12\n    test 320 _M21_ = 'M21': True\n    test 321 _M21_ = 'M21': m21\n    test 322 _M_ = 'M': True\n    test 323 _M_ = 'M': m\n    test 324 _m_ = 'm': True\n    test 325 _m_ = 'm': m\n    test 326 _MANT_DIG_ = 'MANT_DIG': True\n    test 327 _MANT_DIG_ = 'MANT_DIG': mant_dig\n    test 328 _MAX_ = 'MAX': True\n    test 329 _MAX_ = 'MAX': max\n    test 330 _mean_ = 'mean': True\n    test 331 _mean_ = 'mean': mean\n    test 332 _meanOf_ = 'meanOf': True\n    test 333 _meanOf_ = 'meanOf': meanof\n    test 334 _meridional_ = 'meridional': True\n    test 335 _meridional_ = 'meridional': meridional\n    test 336 _meter2_ = 'meter2': True\n    test 337 _meter2_ = 'meter2': meter2\n    test 338 _meter_ = 'meter': True\n    test 339 _meter_ = 'meter': meter\n    test 340 _MGRS_ = 'MGRS': True\n    test 341 _MGRS_ = 'MGRS': mgrs\n    test 342 _MIN_ = 'MIN': True\n    test 343 _MIN_ = 'MIN': min\n    test 344 _MINUS_ = '-': True\n    test 345 _MINUS_ = '-': -  FAILED, KNOWN, expected minus\n    test 346 _module_ = 'module': True\n    test 347 _module_ = 'module': module\n    test 348 _N_ = 'N': True\n    test 349 _N_ = 'N': n\n    test 350 _n_ = 'n': True\n    test 351 _n_ = 'n': n\n    test 352 _N_A_ = 'N/A': True\n    test 353 _N_A_ = 'N/A': n/a  FAILED, KNOWN, expected n_a\n    test 354 _n_a_ = 'n/a': True\n    test 355 _n_a_ = 'n/a': n/a  FAILED, KNOWN, expected n_a\n    test 356 _NAD27_ = 'NAD27': True\n    test 357 _NAD27_ = 'NAD27': nad27\n    test 358 _NAD83_ = 'NAD83': True\n    test 359 _NAD83_ = 'NAD83': nad83\n    test 360 _name_ = 'name': True\n    test 361 _name_ = 'name': name\n    test 362 _NAN_ = 'NAN': True\n    test 363 _NAN_ = 'NAN': nan\n    test 364 _NE_ = 'NE': True\n    test 365 _NE_ = 'NE': ne\n    test 366 _near_ = 'near': True\n    test 367 _near_ = 'near': near\n    test 368 _nearestOn2_ = 'nearestOn2': True\n    test 369 _nearestOn2_ = 'nearestOn2': neareston2\n    test 370 _negative_ = 'negative': True\n    test 371 _negative_ = 'negative': negative\n    test 372 _NL_ = '\\n': True\n    test 373 _NL_ = '\\n': \n  FAILED, KNOWN, expected nl\n    test 374 _NLATvar_ = '\\n@var ': True\n    test 375 _NLATvar_ = '\\n@var ': \n@var   FAILED, KNOWN, expected nlatvar\n    test 376 _NLHASH_ = '\\n# ': True\n    test 377 _NLHASH_ = '\\n# ': \n#   FAILED, KNOWN, expected nlhash\n    test 378 _NN_ = 'NN': True\n    test 379 _NN_ = 'NN': nn\n    test 380 _no_ = 'no': True\n    test 381 _no_ = 'no': no\n    test 382 _northing_ = 'northing': True\n    test 383 _northing_ = 'northing': northing\n    test 384 _not_ = 'not': True\n    test 385 _not_ = 'not': not\n    test 386 _not_finite_ = 'not finite': True\n    test 387 _not_finite_ = 'not finite': not finite  FAILED, KNOWN, expected not_finite\n    test 388 _not_scalar_ = 'not scalar': True\n    test 389 _not_scalar_ = 'not scalar': not scalar  FAILED, KNOWN, expected not_scalar\n    test 390 _NOTEQUAL_ = '!=': True\n    test 391 _NOTEQUAL_ = '!=': !=  FAILED, KNOWN, expected notequal\n    test 392 _NS_ = 'NS': True\n    test 393 _NS_ = 'NS': ns\n    test 394 _NSEW_ = 'NSEW': True\n    test 395 _NSEW_ = 'NSEW': nsew\n    test 396 _NTF_ = 'NTF': True\n    test 397 _NTF_ = 'NTF': ntf\n    test 398 _null_ = 'null': True\n    test 399 _null_ = 'null': null\n    test 400 _number_ = 'number': True\n    test 401 _number_ = 'number': number\n    test 402 _numpy_ = 'numpy': True\n    test 403 _numpy_ = 'numpy': numpy\n    test 404 _Nv00_ = 'Nv00': True\n    test 405 _Nv00_ = 'Nv00': nv00\n    test 406 _NW_ = 'NW': True\n    test 407 _NW_ = 'NW': nw\n    test 408 _odd_ = 'odd': True\n    test 409 _odd_ = 'odd': odd\n    test 410 _of_ = 'of': True\n    test 411 _of_ = 'of': of\n    test 412 _on_ = 'on': True\n    test 413 _on_ = 'on': on\n    test 414 _opposite_ = 'opposite': True\n    test 415 _opposite_ = 'opposite': opposite\n    test 416 _or_ = 'or': True\n    test 417 _or_ = 'or': or\n    test 418 _other_ = 'other': True\n    test 419 _other_ = 'other': other\n    test 420 _outside_ = 'outside': True\n    test 421 _outside_ = 'outside': outside\n    test 422 _overlap_ = 'overlap': True\n    test 423 _overlap_ = 'overlap': overlap\n    test 424 _parallel_ = 'parallel': True\n    test 425 _parallel_ = 'parallel': parallel\n    test 426 _PERCENT_ = '%': True\n    test 427 _PERCENT_ = '%': %  FAILED, KNOWN, expected percent\n    test 428 _PERCENTDOTSTAR_ = '%.*': True\n    test 429 _PERCENTDOTSTAR_ = '%.*': %.*  FAILED, KNOWN, expected percentdotstar\n    test 430 _phi_ = 'phi': True\n    test 431 _phi_ = 'phi': phi\n    test 432 _PLUS_ = '+': True\n    test 433 _PLUS_ = '+': +  FAILED, KNOWN, expected plus\n    test 434 _PLUSMINUS_ = '+-': True\n    test 435 _PLUSMINUS_ = '+-': +-  FAILED, KNOWN, expected plusminus\n    test 436 _point_ = 'point': True\n    test 437 _point_ = 'point': point\n    test 438 _points_ = 'points': True\n    test 439 _points_ = 'points': points\n    test 440 _pole_ = 'pole': True\n    test 441 _pole_ = 'pole': pole\n    test 442 _precision_ = 'precision': True\n    test 443 _precision_ = 'precision': precision\n    test 444 _prime_vertical_ = 'prime_vertical': True\n    test 445 _prime_vertical_ = 'prime_vertical': prime_vertical\n    test 446 _pygeodesy_ = 'pygeodesy': True\n    test 447 _pygeodesy_ = 'pygeodesy': pygeodesy\n    test 448 _pygeodesy_abspath_ = 'pygeodesy_abspath': True\n    test 449 _pygeodesy_abspath_ = 'pygeodesy_abspath': pygeodesy_abspath\n    test 450 _PyPy__ = 'PyPy ': True\n    test 451 _PyPy__ = 'PyPy ': pypy   FAILED, KNOWN, expected pypy\n    test 452 _Python_ = 'Python': True\n    test 453 _Python_ = 'Python': python\n    test 454 _python_ = 'python': True\n    test 455 _python_ = 'python': python\n    test 456 _QUOTE1_ = \"'\": True\n    test 457 _QUOTE1_ = \"'\": '  FAILED, KNOWN, expected quote1\n    test 458 _QUOTE2_ = '\"': True\n    test 459 _QUOTE2_ = '\"': \"  FAILED, KNOWN, expected quote2\n    test 460 _QUOTE3_ = \"'''\": True\n    test 461 _QUOTE3_ = \"'''\": '''  FAILED, KNOWN, expected quote3\n    test 462 _R_ = 'R': True\n    test 463 _R_ = 'R': r\n    test 464 _radians2_ = 'radians2': True\n    test 465 _radians2_ = 'radians2': radians2\n    test 466 _radians_ = 'radians': True\n    test 467 _radians_ = 'radians': radians\n    test 468 _radius1_ = 'radius1': True\n    test 469 _radius1_ = 'radius1': radius1\n    test 470 _radius2_ = 'radius2': True\n    test 471 _radius2_ = 'radius2': radius2\n    test 472 _radius_ = 'radius': True\n    test 473 _radius_ = 'radius': radius\n    test 474 _range_ = 'range': True\n    test 475 _range_ = 'range': range\n    test 476 _RANGLE_ = '>': True\n    test 477 _RANGLE_ = '>': >  FAILED, KNOWN, expected rangle\n    test 478 _RCURLY_ = '}': True\n    test 479 _RCURLY_ = '}': }  FAILED, KNOWN, expected rcurly\n    test 480 _reciprocal_ = 'reciprocal': True\n    test 481 _reciprocal_ = 'reciprocal': reciprocal\n    test 482 _reframe_ = 'reframe': True\n    test 483 _reframe_ = 'reframe': reframe\n    test 484 _resolution_ = 'resolution': True\n    test 485 _resolution_ = 'resolution': resolution\n    test 486 _rIn_ = 'rIn': True\n    test 487 _rIn_ = 'rIn': rin\n    test 488 _RPAREN_ = ')': True\n    test 489 _RPAREN_ = ')': )  FAILED, KNOWN, expected rparen\n    test 490 _RSQUARE_ = ']': True\n    test 491 _RSQUARE_ = ']': ]  FAILED, KNOWN, expected rsquare\n    test 492 _S12_ = 'S12': True\n    test 493 _S12_ = 'S12': s12\n    test 494 _s12_ = 's12': True\n    test 495 _s12_ = 's12': s12\n    test 496 _S_ = 'S': True\n    test 497 _S_ = 'S': s\n    test 498 _s_ = 's': True\n    test 499 _s_ = 's': s\n    test 500 _scalar_ = 'scalar': True\n    test 501 _scalar_ = 'scalar': scalar\n    test 502 _scale0_ = 'scale0': True\n    test 503 _scale0_ = 'scale0': scale0\n    test 504 _scale_ = 'scale': True\n    test 505 _scale_ = 'scale': scale\n    test 506 _scipy_ = 'scipy': True\n    test 507 _scipy_ = 'scipy': scipy\n    test 508 _SE_ = 'SE': True\n    test 509 _SE_ = 'SE': se\n    test 510 _semi_circular_ = 'semi-circular': True\n    test 511 _semi_circular_ = 'semi-circular': semi-circular  FAILED, KNOWN, expected semi_circular\n    test 512 _sep_ = 'sep': True\n    test 513 _sep_ = 'sep': sep\n    test 514 _singular_ = 'singular': True\n    test 515 _singular_ = 'singular': singular\n    test 516 _SLASH_ = '/': True\n    test 517 _SLASH_ = '/': /  FAILED, KNOWN, expected slash\n    test 518 _small_ = 'small': True\n    test 519 _small_ = 'small': small\n    test 520 _SPACE_ = ' ': True\n    test 521 _SPACE_ = ' ':    FAILED, KNOWN, expected space\n    test 522 _specified_ = 'specified': True\n    test 523 _specified_ = 'specified': specified\n    test 524 _Sphere_ = 'Sphere': True\n    test 525 _Sphere_ = 'Sphere': sphere\n    test 526 _spherical_ = 'spherical': True\n    test 527 _spherical_ = 'spherical': spherical\n    test 528 _STAR_ = '*': True\n    test 529 _STAR_ = '*': *  FAILED, KNOWN, expected star\n    test 530 _start_ = 'start': True\n    test 531 _start_ = 'start': start\n    test 532 _std_ = 'std': True\n    test 533 _std_ = 'std': std\n    test 534 _stdev_ = 'stdev': True\n    test 535 _stdev_ = 'stdev': stdev\n    test 536 _SW_ = 'SW': True\n    test 537 _SW_ = 'SW': sw\n    test 538 _tbd_ = 'tbd': True\n    test 539 _tbd_ = 'tbd': tbd\n    test 540 _TILDE_ = '~': True\n    test 541 _TILDE_ = '~': ~  FAILED, KNOWN, expected tilde\n    test 542 _to_ = 'to': True\n    test 543 _to_ = 'to': to\n    test 544 _tolerance_ = 'tolerance': True\n    test 545 _tolerance_ = 'tolerance': tolerance\n    test 546 _too_ = 'too': True\n    test 547 _too_ = 'too': too\n    test 548 _transform_ = 'transform': True\n    test 549 _transform_ = 'transform': transform\n    test 550 _UNDER_ = '_': True\n    test 551 _UNDER_ = '_': _  FAILED, KNOWN, expected under\n    test 552 _units_ = 'units': True\n    test 553 _units_ = 'units': units\n    test 554 _UNUSED_ = 'UNUSED': True\n    test 555 _UNUSED_ = 'UNUSED': unused\n    test 556 _up_ = 'up': True\n    test 557 _up_ = 'up': up\n    test 558 _UPS_ = 'UPS': True\n    test 559 _UPS_ = 'UPS': ups\n    test 560 _utf_8_ = 'utf-8': True\n    test 561 _utf_8_ = 'utf-8': utf-8  FAILED, KNOWN, expected utf_8\n    test 562 _UTM_ = 'UTM': True\n    test 563 _UTM_ = 'UTM': utm\n    test 564 _V_ = 'V': True\n    test 565 _V_ = 'V': v\n    test 566 _valid_ = 'valid': True\n    test 567 _valid_ = 'valid': valid\n    test 568 _value_ = 'value': True\n    test 569 _value_ = 'value': value\n    test 570 _version_ = 'version': True\n    test 571 _version_ = 'version': version\n    test 572 _vs_ = 'vs': True\n    test 573 _vs_ = 'vs': vs\n    test 574 _W_ = 'W': True\n    test 575 _W_ = 'W': w\n    test 576 _WGS72_ = 'WGS72': True\n    test 577 _WGS72_ = 'WGS72': wgs72\n    test 578 _WGS84_ = 'WGS84': True\n    test 579 _WGS84_ = 'WGS84': wgs84\n    test 580 _width_ = 'width': True\n    test 581 _width_ = 'width': width\n    test 582 _with_ = 'with': True\n    test 583 _with_ = 'with': with\n    test 584 _X_ = 'X': True\n    test 585 _X_ = 'X': x\n    test 586 _x_ = 'x': True\n    test 587 _x_ = 'x': x\n    test 588 _xyz_ = 'xyz': True\n    test 589 _xyz_ = 'xyz': xyz\n    test 590 _Y_ = 'Y': True\n    test 591 _Y_ = 'Y': y\n    test 592 _y_ = 'y': True\n    test 593 _y_ = 'y': y\n    test 594 _Z_ = 'Z': True\n    test 595 _Z_ = 'Z': z\n    test 596 _z_ = 'z': True\n    test 597 _z_ = 'z': z\n    test 598 _zone_ = 'zone': True\n    test 599 _zone_ = 'zone': zone\n    test 600 .tillC: ABC\n    test 601 .fromX: XYZ\n    test 602 .fromH.tillJ: HJ\n    test 603 .fromN.tillP: NP\n\n    test 604 machine: arm64_x86_64\n    test 605 sysctl: 1\n    test 606 usage: python2 -m pygeodesy.interns\n    test 607 version: (2, 7)\n\n    63 of 607 testInterns.py tests (10.4%) FAILED, ALL KNOWN (pygeodesy 26.3.26 Python 2.7.18 64bit arm64_x86_64 geographiclib 1.50 numpy 1.16.6 scipy 1.2.2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 -W  default) 3.697 ms\nrunning /Library/Framewo....ython -W default ~/PyGeodesy/test/testIters.py\n\n    testing testIters.py 23.03.27 (module pygeodesy.iters 25.05.19)\n    test 1 i : 7\n    test 2 dedup: False\n    test 3 i : 0\n    test 4 p0: True\n    test 5 dedup: True\n    test 6 copies: [0, 1, 2, 3, 4, 5, 6, 7]\n    test 7 i : 0\n    test 8 copies: 8\n    test 9 p0: True\n    test 10 copies: True\n    test 11 copies: (0, 1, 2, 3, 4, 5, 6, 7)\n    test 12 iter: 1\n    test 13 iter: 2\n    test 14 iter: 3\n    test 15 re-iter: PointsError('points (0): too few')\n\n    all 15 testIters.py tests passed (pygeodesy 26.3.26 Python 2.7.18 64bit arm64_x86_64 geographiclib 1.50 numpy 1.16.6 scipy 1.2.2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 -W  default) 211.000 us\nrunning /Library/Framewo....ython -W default ~/PyGeodesy/test/testKarney.py\n./pygeodesy/ellipsoidalKarney.py:139: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return fabs(_polygon(datum.ellipsoid.geodesic, points, True, False, wrap, polar))\n./pygeodesy/ellipsoidalKarney.py:347: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return _polygon(datum.ellipsoid.geodesic, points, closed, True, wrap, False)\n\n    testing testKarney.py 25.12.20 (module pygeodesy.karney 25.12.23)\n    test 1 Geodesic: True\n    test 2 Geodesic: True\n\n    testDirect(pygeodesy.geodesicw, 25.05.28)\n    test 3 Direct.lat2: -11.174910000000\n    test 4 Direct.lon2: -69.959210000000\n    test 5 Direct.azi2: 129.289270889709\n    test 6 Direct.a12: 80.507297142820\n    test 7 Direct.m12: 6273170.205530384555  FAILED, KNOWN (1.48461e-14), expected 6273170.205530383624\n    test 8 Direct.M12: 0.166063184474\n    test 9 Direct.M21: 0.164791169456\n    test 10 Direct.S12: 12841384694976.431640625000\n    test 11 Direct.lat2: 77.031960000000\n    test 12 Direct.lon2: 197.182340000000\n    test 13 Direct.azi2: 109.112041110672\n    test 14 Direct.a12: 36.892740690446\n    test 15 Direct.m12: 3828869.334438760299  FAILED, KNOWN (1.21618e-14), expected 3828869.334438760765\n    test 16 Direct.M12: 0.800763496081\n    test 17 Direct.M21: 0.801010069842\n    test 18 Direct.S12: 61674961290615.609375000000  FAILED, KNOWN (1.26672e-14), expected 61674961290615.617187500000\n    test 19 Direct.lat2: 41.841380000000\n    test 20 Direct.lon2: 98.566350000000\n    test 21 Direct.azi2: -41.843599514405\n    test 22 Direct.a12: 75.629304910115\n    test 23 Direct.m12: 6161154.577311060391  FAILED, KNOWN (1.5116e-14), expected 6161154.577311061323\n    test 24 Direct.M12: 0.248163392340\n    test 25 Direct.M21: 0.249302512036\n    test 26 Direct.S12: -6637997720646.715820312500  FAILED, KNOWN (1.47117e-14), expected -6637997720646.716796875000\n    test 27 Direct.lat2: -12.706310000000\n    test 28 Direct.lon2: 285.903440000000\n    test 29 Direct.azi2: 2.512956620914\n    test 30 Direct.a12: 100.278634181156\n    test 31 Direct.m12: 6289939.567044666968  FAILED, KNOWN (2.96131e-14), expected 6289939.567044668831\n    test 32 Direct.M12: -0.171994902747\n    test 33 Direct.M21: -0.177225695263\n    test 34 Direct.S12: -121287239862139.734375000000  FAILED, KNOWN (1.28826e-14), expected -121287239862139.750000000000\n    test 35 Direct.lat2: -15.847840000000\n    test 36 Direct.lon2: 5.935570000000\n    test 37 Direct.azi2: -20.787484651537\n    test 38 Direct.a12: 144.640108810286\n    test 39 Direct.m12: 3732902.158387716860  FAILED, KNOWN (4.9898e-14), expected 3732902.158387718722\n    test 40 Direct.M12: -0.812736387001\n    test 41 Direct.M21: -0.812998005192\n    test 42 Direct.S12: 97825992354058.703125000000\n\n    testInverse(pygeodesy.geodesicw, 25.05.28)\n    test 43 Inverse.lat2: -11.174910000000\n    test 44 Inverse.lon2: -69.959210000000\n    test 45 Inverse.azi1: 111.098748429560\n    test 46 Inverse.azi2: 129.289270889709\n    test 47 Inverse.s12: 8935244.560481829569\n    test 48 Inverse.a12: 80.507297142820\n    test 49 Inverse.m12: 6273170.205530384555  FAILED, KNOWN (1.48461e-14), expected 6273170.205530383624\n    test 50 Inverse.M12: 0.166063184474\n    test 51 Inverse.M21: 0.164791169456\n    test 52 Inverse.S12: 12841384694976.433593750000  FAILED, KNOWN (1.52096e-14), expected 12841384694976.431640625000\n    test 53 Inverse.lat2: 77.031960000000\n    test 54 Inverse.lon2: 197.182340000000\n    test 55 Inverse.azi1: 22.020059880983\n    test 56 Inverse.azi2: 109.112041110672\n    test 57 Inverse.s12: 4105086.171392441727  FAILED, KNOWN (2.2687e-14), expected 4105086.171392440796\n    test 58 Inverse.a12: 36.892740690446\n    test 59 Inverse.m12: 3828869.334438761696  FAILED, KNOWN (2.43237e-14), expected 3828869.334438760765\n    test 60 Inverse.M12: 0.800763496081\n    test 61 Inverse.M21: 0.801010069842\n    test 62 Inverse.S12: 61674961290615.617187500000\n    test 63 Inverse.lat2: 41.841380000000\n    test 64 Inverse.lon2: 98.566350000000\n    test 65 Inverse.azi1: -32.444568764332\n    test 66 Inverse.azi2: -41.843599514405\n    test 67 Inverse.s12: 8394328.894657669589  FAILED, KNOWN (2.21893e-14), expected 8394328.894657671452\n    test 68 Inverse.a12: 75.629304910115\n    test 69 Inverse.m12: 6161154.577311060391  FAILED, KNOWN (1.5116e-14), expected 6161154.577311061323\n    test 70 Inverse.M12: 0.248163392340\n    test 71 Inverse.M21: 0.249302512036\n    test 72 Inverse.S12: -6637997720646.717773437500  FAILED, KNOWN (1.47117e-14), expected -6637997720646.716796875000\n    test 73 Inverse.lat2: -12.706310000000\n    test 74 Inverse.lon2: 285.903440000000\n    test 75 Inverse.azi1: 173.734912408784\n    test 76 Inverse.azi2: 2.512956620914\n    test 77 Inverse.s12: 11150344.231208024547\n    test 78 Inverse.a12: 100.278634181156\n    test 79 Inverse.m12: 6289939.567044666968  FAILED, KNOWN (2.96131e-14), expected 6289939.567044668831\n    test 80 Inverse.M12: -0.171994902747\n    test 81 Inverse.M21: -0.177225695263\n    test 82 Inverse.S12: -121287239862139.718750000000  FAILED, KNOWN (2.57653e-14), expected -121287239862139.750000000000\n    test 83 Inverse.lat2: -15.847840000000\n    test 84 Inverse.lon2: 5.935570000000\n    test 85 Inverse.azi1: -159.033557661193\n    test 86 Inverse.azi2: -20.787484651537\n    test 87 Inverse.s12: 16076603.163118068129\n    test 88 Inverse.a12: 144.640108810286\n    test 89 Inverse.m12: 3732902.158387719188  FAILED, KNOWN (1.24745e-14), expected 3732902.158387718722\n    test 90 Inverse.M12: -0.812736387001\n    test 91 Inverse.M21: -0.812998005192\n    test 92 Inverse.S12: 97825992354058.703125000000\n    test 93 Inverse.lat2: 90.000000000000\n    test 94 Inverse.lon2: 0.000000000000\n    test 95 Inverse.azi1: 0.000000000000\n    test 96 Inverse.azi2: 0.000000000000\n    test 97 Inverse.s12: 558455.588646476739  FAILED, KNOWN (8.53641e-11), expected 558455.588646000018\n    test 98 Inverse.a12: 5.016734754264  FAILED, KNOWN (4.89833e-06), expected 5.016735000000\n    test 99 Inverse.m12: 557747.059253584128  FAILED, KNOWN (7.45563e-11), expected 557747.059253999963\n    test 100 Inverse.M12: 0.996194698092  FAILED, KNOWN (3.03061e-05), expected 0.996195000000\n    test 101 Inverse.M21: 0.996194828008  FAILED, KNOWN (1.72648e-05), expected 0.996195000000\n    test 102 Inverse.S12: 0.000000000000\n    test 103 Inverse.lat2: 90.000000000000\n    test 104 Inverse.lon2: 10.000000000000\n    test 105 Inverse.azi1: 0.000000000000\n    test 106 Inverse.azi2: 10.000000000000\n    test 107 Inverse.s12: 558455.588646476739  FAILED, KNOWN (8.53641e-11), expected 558455.588646000018\n    test 108 Inverse.a12: 5.016734754264  FAILED, KNOWN (4.89833e-06), expected 5.016735000000\n    test 109 Inverse.m12: 557747.059253584128  FAILED, KNOWN (7.45563e-11), expected 557747.059253999963\n    test 110 Inverse.M12: 0.996194698092  FAILED, KNOWN (3.03061e-05), expected 0.996195000000\n    test 111 Inverse.M21: 0.996194828008  FAILED, KNOWN (1.72648e-05), expected 0.996195000000\n    test 112 Inverse.S12: 7084244746167.895507812500\n\n    testInverseLine(pygeodesy.geodesicw, 25.05.28)\n    test 113 InverseLine[0].lat: 40.640\n    test 114 InverseLine[0].lon: -73.779\n    test 115 InverseLine[1].lat: 49.825  FAILED, KNOWN (0.00641087), expected 49.829\n    test 116 InverseLine[1].lon: -72.962\n    test 117 InverseLine[2].lat: 58.992  FAILED, KNOWN (0.0026387), expected 58.994\n    test 118 InverseLine[2].lon: -71.759\n    test 119 InverseLine[3].lat: 68.132  FAILED, KNOWN (0.00640093), expected 68.127\n    test 120 InverseLine[3].lon: -69.677  FAILED, KNOWN (0.0019843), expected -69.678\n    test 121 InverseLine[4].lat: 77.203  FAILED, KNOWN (0.0174018), expected 77.190\n    test 122 InverseLine[4].lon: -64.830  FAILED, KNOWN (0.0188051), expected -64.842\n    test 123 InverseLine[5].lat: 85.794  FAILED, KNOWN (0.023512), expected 85.774\n    test 124 InverseLine[5].lon: -39.425  FAILED, KNOWN (0.511977), expected -39.628\n    test 125 InverseLine[6].lat: 83.690  FAILED, KNOWN (0.0405821), expected 83.724\n    test 126 InverseLine[6].lon: 80.754  FAILED, KNOWN (0.167168), expected 80.619\n    test 127 InverseLine[7].lat: 74.828  FAILED, KNOWN (0.0632801), expected 74.875\n    test 128 InverseLine[7].lon: 94.774  FAILED, KNOWN (0.0324631), expected 94.743\n    test 129 InverseLine[8].lat: 65.730  FAILED, KNOWN (0.0856355), expected 65.786\n    test 130 InverseLine[8].lon: 98.489  FAILED, KNOWN (0.0149102), expected 98.474\n    test 131 InverseLine[9].lat: 56.582  FAILED, KNOWN (0.108466), expected 56.643\n    test 132 InverseLine[9].lon: 100.254  FAILED, KNOWN (0.0088657), expected 100.246\n    test 133 InverseLine[10].lat: 47.409  FAILED, KNOWN (0.13059), expected 47.471\n    test 134 InverseLine[10].lon: 101.327  FAILED, KNOWN (0.00584966), expected 101.321\n    test 135 InverseLine[11].lat: 38.220  FAILED, KNOWN (0.150547), expected 38.277\n    test 136 InverseLine[11].lon: 102.079  FAILED, KNOWN (0.00399913), expected 102.075\n    test 137 InverseLine[12].lat: 29.017  FAILED, KNOWN (0.166648), expected 29.066\n    test 138 InverseLine[12].lon: 102.662  FAILED, KNOWN (0.0026948), expected 102.659\n    test 139 InverseLine[13].lat: 19.804  FAILED, KNOWN (0.176529), expected 19.839\n    test 140 InverseLine[13].lon: 103.148  FAILED, KNOWN (0.00167385), expected 103.147\n    test 141 InverseLine[14].lat: 10.584  FAILED, KNOWN (0.173707), expected 10.602\n    test 142 InverseLine[14].lon: 103.581\n    test 143 InverseLine[15].lat: 1.359\n    test 144 InverseLine[15].lon: 103.989\n\n    testGeodCalc(pygeodesy.ellipsoidalKarney, 25.05.27)\n    test 145 area: 13662703680020\n    test 146 perimeter: 16831067.892791\n\n    testMask(pygeodesy.geodesicw, 25.05.28)\n    test 147 Geodesic.EMPTY: 0b0\n    test 148 Geodesic.LATITUDE: 0b10000000\n    test 149 Geodesic.LONGITUDE: 0b100001000\n    test 150 Geodesic.AZIMUTH: 0b1000000000\n    test 151 Geodesic.AREA: 0b100000000010000\n    test 152 Geodesic.DISTANCE: 0b10000000001\n    test 153 Geodesic.DISTANCE_IN: 0b100000000011\n    test 154 Geodesic.REDUCEDLENGTH: 0b1000000000101\n    test 155 Geodesic.GEODESICSCALE: 0b10000000000101\n    test 156 Geodesic.STANDARD: 0b11110001001\n    test 157 Geodesic.STANDARD_LINE: 0b111110001011\n    test 158 Geodesic.ALL: 0b111111110011111\n    test 159 Caps: ALL|AREA|AZIMUTH|AZIMUTH_DISTANCE|AZIMUTH_DISTANCE_AREA|DISTANCE|DISTANCE_IN|GEODESICSCALE|LATITUDE|LATITUDE_LONGITUDE|LATITUDE_LONGITUDE_AREA|LINE_CAPS|LONGITUDE|REDUCEDLENGTH|STANDARD|STANDARD_LINE\n    test 160 Caps: ALL|AREA|AZIMUTH|AZIMUTH_DISTANCE|AZIMUTH_DISTANCE_AREA|DISTANCE|DISTANCE_IN|GEODESICSCALE|LATITUDE|LATITUDE_LONGITUDE|LATITUDE_LONGITUDE_AREA|LINE_CAPS|LONGITUDE|REDUCEDLENGTH|STANDARD|STANDARD_LINE\n\n    testDirect(pygeodesy.geodesicx, 25.12.23)\n    test 161 Direct.lat2: -11.174910000000\n    test 162 Direct.lon2: -69.959210000000\n    test 163 Direct.azi2: 129.289270889709\n    test 164 Direct.a12: 80.507297142820\n    test 165 Direct.m12: 6273170.205530384555  FAILED, KNOWN (1.48461e-14), expected 6273170.205530383624\n    test 166 Direct.M12: 0.166063184474\n    test 167 Direct.M21: 0.164791169456\n    test 168 Direct.S12: 12841384694976.431640625000\n    test 169 Direct.lat2: 77.031960000000\n    test 170 Direct.lon2: 197.182340000000\n    test 171 Direct.azi2: 109.112041110672\n    test 172 Direct.a12: 36.892740690446\n    test 173 Direct.m12: 3828869.334438762162  FAILED, KNOWN (3.64855e-14), expected 3828869.334438760765\n    test 174 Direct.M12: 0.800763496081\n    test 175 Direct.M21: 0.801010069842\n    test 176 Direct.S12: 61674961290615.617187500000\n    test 177 Direct.lat2: 41.841380000000\n    test 178 Direct.lon2: 98.566350000000\n    test 179 Direct.azi2: -41.843599514405\n    test 180 Direct.a12: 75.629304910115\n    test 181 Direct.m12: 6161154.577311061323\n    test 182 Direct.M12: 0.248163392340\n    test 183 Direct.M21: 0.249302512036\n    test 184 Direct.S12: -6637997720646.725585937500  FAILED, KNOWN (1.32405e-13), expected -6637997720646.716796875000\n    test 185 Direct.lat2: -12.706310000000\n    test 186 Direct.lon2: 285.903440000000\n    test 187 Direct.azi2: 2.512956620914\n    test 188 Direct.a12: 100.278634181156\n    test 189 Direct.m12: 6289939.567044666968  FAILED, KNOWN (2.96131e-14), expected 6289939.567044668831\n    test 190 Direct.M12: -0.171994902747\n    test 191 Direct.M21: -0.177225695263\n    test 192 Direct.S12: -121287239862139.734375000000  FAILED, KNOWN (1.28826e-14), expected -121287239862139.750000000000\n    test 193 Direct.lat2: -15.847840000000\n    test 194 Direct.lon2: 5.935570000000\n    test 195 Direct.azi2: -20.787484651537\n    test 196 Direct.a12: 144.640108810286\n    test 197 Direct.m12: 3732902.158387716860  FAILED, KNOWN (4.9898e-14), expected 3732902.158387718722\n    test 198 Direct.M12: -0.812736387001\n    test 199 Direct.M21: -0.812998005192\n    test 200 Direct.S12: 97825992354058.703125000000\n\n    testInverse(pygeodesy.geodesicx, 25.12.23)\n    test 201 Inverse.lat2: -11.174910000000\n    test 202 Inverse.lon2: -69.959210000000\n    test 203 Inverse.azi1: 111.098748429560\n    test 204 Inverse.azi2: 129.289270889709\n    test 205 Inverse.s12: 8935244.560481829569\n    test 206 Inverse.a12: 80.507297142820\n    test 207 Inverse.m12: 6273170.205530384555  FAILED, KNOWN (1.48461e-14), expected 6273170.205530383624\n    test 208 Inverse.M12: 0.166063184474\n    test 209 Inverse.M21: 0.164791169456\n    test 210 Inverse.S12: 12841384694976.433593750000  FAILED, KNOWN (1.52096e-14), expected 12841384694976.431640625000\n    test 211 Inverse.lat2: 77.031960000000\n    test 212 Inverse.lon2: 197.182340000000\n    test 213 Inverse.azi1: 22.020059880983\n    test 214 Inverse.azi2: 109.112041110672\n    test 215 Inverse.s12: 4105086.171392441727  FAILED, KNOWN (2.2687e-14), expected 4105086.171392440796\n    test 216 Inverse.a12: 36.892740690446\n    test 217 Inverse.m12: 3828869.334438761696  FAILED, KNOWN (2.43237e-14), expected 3828869.334438760765\n    test 218 Inverse.M12: 0.800763496081\n    test 219 Inverse.M21: 0.801010069842\n    test 220 Inverse.S12: 61674961290615.617187500000\n    test 221 Inverse.lat2: 41.841380000000\n    test 222 Inverse.lon2: 98.566350000000\n    test 223 Inverse.azi1: -32.444568764332\n    test 224 Inverse.azi2: -41.843599514405\n    test 225 Inverse.s12: 8394328.894657669589  FAILED, KNOWN (2.21893e-14), expected 8394328.894657671452\n    test 226 Inverse.a12: 75.629304910115\n    test 227 Inverse.m12: 6161154.577311060391  FAILED, KNOWN (1.5116e-14), expected 6161154.577311061323\n    test 228 Inverse.M12: 0.248163392340\n    test 229 Inverse.M21: 0.249302512036\n    test 230 Inverse.S12: -6637997720646.715820312500  FAILED, KNOWN (1.47117e-14), expected -6637997720646.716796875000\n    test 231 Inverse.lat2: -12.706310000000\n    test 232 Inverse.lon2: 285.903440000000\n    test 233 Inverse.azi1: 173.734912408784\n    test 234 Inverse.azi2: 2.512956620914\n    test 235 Inverse.s12: 11150344.231208024547\n    test 236 Inverse.a12: 100.278634181156\n    test 237 Inverse.m12: 6289939.567044666968  FAILED, KNOWN (2.96131e-14), expected 6289939.567044668831\n    test 238 Inverse.M12: -0.171994902747\n    test 239 Inverse.M21: -0.177225695263\n    test 240 Inverse.S12: -121287239862139.718750000000  FAILED, KNOWN (2.57653e-14), expected -121287239862139.750000000000\n    test 241 Inverse.lat2: -15.847840000000\n    test 242 Inverse.lon2: 5.935570000000\n    test 243 Inverse.azi1: -159.033557661193\n    test 244 Inverse.azi2: -20.787484651537\n    test 245 Inverse.s12: 16076603.163118068129\n    test 246 Inverse.a12: 144.640108810286\n    test 247 Inverse.m12: 3732902.158387719188  FAILED, KNOWN (1.24745e-14), expected 3732902.158387718722\n    test 248 Inverse.M12: -0.812736387001\n    test 249 Inverse.M21: -0.812998005192\n    test 250 Inverse.S12: 97825992354058.703125000000\n    test 251 Inverse.lat2: 90.000000000000\n    test 252 Inverse.lon2: 0.000000000000\n    test 253 Inverse.azi1: 0.000000000000\n    test 254 Inverse.azi2: 0.000000000000\n    test 255 Inverse.s12: 558020.704208072624  FAILED, KNOWN (0.0778727), expected 558455.588646000018\n    test 256 Inverse.a12: 5.016734754264  FAILED, KNOWN (4.89833e-06), expected 5.016735000000\n    test 257 Inverse.m12: 557747.059253584128  FAILED, KNOWN (7.45563e-11), expected 557747.059253999963\n    test 258 Inverse.M12: 0.996194698092  FAILED, KNOWN (3.03061e-05), expected 0.996195000000\n    test 259 Inverse.M21: 0.996188865576  FAILED, KNOWN (0.000615785), expected 0.996195000000\n    test 260 Inverse.S12: 0.000000000000\n    test 261 Inverse.lat2: 90.000000000000\n    test 262 Inverse.lon2: 10.000000000000\n    test 263 Inverse.azi1: 0.000000000000\n    test 264 Inverse.azi2: 10.000000000000\n    test 265 Inverse.s12: 558020.704208072624  FAILED, KNOWN (0.0778727), expected 558455.588646000018\n    test 266 Inverse.a12: 5.016734754264  FAILED, KNOWN (4.89833e-06), expected 5.016735000000\n    test 267 Inverse.m12: 557747.059253584128  FAILED, KNOWN (7.45563e-11), expected 557747.059253999963\n    test 268 Inverse.M12: 0.996194698092  FAILED, KNOWN (3.03061e-05), expected 0.996195000000\n    test 269 Inverse.M21: 0.996188865576  FAILED, KNOWN (0.000615785), expected 0.996195000000\n    test 270 Inverse.S12: 7084244746167.895507812500\n\n    testInverseLine(pygeodesy.geodesicx, 25.12.23)\n    test 271 InverseLine[0].lat: 40.640\n    test 272 InverseLine[0].lon: -73.779\n    test 273 InverseLine[1].lat: 49.825  FAILED, KNOWN (0.00641087), expected 49.829\n    test 274 InverseLine[1].lon: -72.962\n    test 275 InverseLine[2].lat: 58.992  FAILED, KNOWN (0.0026387), expected 58.994\n    test 276 InverseLine[2].lon: -71.759\n    test 277 InverseLine[3].lat: 68.132  FAILED, KNOWN (0.00640093), expected 68.127\n    test 278 InverseLine[3].lon: -69.677  FAILED, KNOWN (0.0019843), expected -69.678\n    test 279 InverseLine[4].lat: 77.203  FAILED, KNOWN (0.0174018), expected 77.190\n    test 280 InverseLine[4].lon: -64.830  FAILED, KNOWN (0.0188051), expected -64.842\n    test 281 InverseLine[5].lat: 85.794  FAILED, KNOWN (0.023512), expected 85.774\n    test 282 InverseLine[5].lon: -39.425  FAILED, KNOWN (0.511977), expected -39.628\n    test 283 InverseLine[6].lat: 83.690  FAILED, KNOWN (0.0405821), expected 83.724\n    test 284 InverseLine[6].lon: 80.754  FAILED, KNOWN (0.167168), expected 80.619\n    test 285 InverseLine[7].lat: 74.828  FAILED, KNOWN (0.0632801), expected 74.875\n    test 286 InverseLine[7].lon: 94.774  FAILED, KNOWN (0.0324631), expected 94.743\n    test 287 InverseLine[8].lat: 65.730  FAILED, KNOWN (0.0856355), expected 65.786\n    test 288 InverseLine[8].lon: 98.489  FAILED, KNOWN (0.0149102), expected 98.474\n    test 289 InverseLine[9].lat: 56.582  FAILED, KNOWN (0.108466), expected 56.643\n    test 290 InverseLine[9].lon: 100.254  FAILED, KNOWN (0.0088657), expected 100.246\n    test 291 InverseLine[10].lat: 47.409  FAILED, KNOWN (0.13059), expected 47.471\n    test 292 InverseLine[10].lon: 101.327  FAILED, KNOWN (0.00584966), expected 101.321\n    test 293 InverseLine[11].lat: 38.220  FAILED, KNOWN (0.150547), expected 38.277\n    test 294 InverseLine[11].lon: 102.079  FAILED, KNOWN (0.00399913), expected 102.075\n    test 295 InverseLine[12].lat: 29.017  FAILED, KNOWN (0.166648), expected 29.066\n    test 296 InverseLine[12].lon: 102.662  FAILED, KNOWN (0.0026948), expected 102.659\n    test 297 InverseLine[13].lat: 19.804  FAILED, KNOWN (0.176529), expected 19.839\n    test 298 InverseLine[13].lon: 103.148  FAILED, KNOWN (0.00167385), expected 103.147\n    test 299 InverseLine[14].lat: 10.584  FAILED, KNOWN (0.173707), expected 10.602\n    test 300 InverseLine[14].lon: 103.581\n    test 301 InverseLine[15].lat: 1.359\n    test 302 InverseLine[15].lon: 103.989\n\n    testGeodCalc(pygeodesy.ellipsoidalExact, 25.08.28)\n    test 303 area: 13662703680020\n    test 304 perimeter: 16830891.356049\n\n    testMask(pygeodesy.geodesicx, 25.12.23)\n    test 305 Geodesic.EMPTY: 0b0\n    test 306 Geodesic.LATITUDE: 0b10000000\n    test 307 Geodesic.LONGITUDE: 0b100001000\n    test 308 Geodesic.AZIMUTH: 0b1000000000\n    test 309 Geodesic.AREA: 0b100000000010000\n    test 310 Geodesic.DISTANCE: 0b10000000001\n    test 311 Geodesic.DISTANCE_IN: 0b100000000011\n    test 312 Geodesic.REDUCEDLENGTH: 0b1000000000101\n    test 313 Geodesic.GEODESICSCALE: 0b10000000000101\n    test 314 Geodesic.STANDARD: 0b11110001001\n    test 315 Geodesic.STANDARD_LINE: 0b111110001011\n    test 316 Geodesic.ALL: 0b111111110011111\n    test 317 Caps: ALL|AREA|AZIMUTH|AZIMUTH_DISTANCE|AZIMUTH_DISTANCE_AREA|DISTANCE|DISTANCE_IN|GEODESICSCALE|LATITUDE|LATITUDE_LONGITUDE|LATITUDE_LONGITUDE_AREA|LINE_CAPS|LONGITUDE|REDUCEDLENGTH|STANDARD|STANDARD_LINE\n    test 318 Caps: ALL|AREA|AZIMUTH|AZIMUTH_DISTANCE|AZIMUTH_DISTANCE_AREA|DISTANCE|DISTANCE_IN|GEODESICSCALE|LATITUDE|LATITUDE_LONGITUDE|LATITUDE_LONGITUDE_AREA|LINE_CAPS|LONGITUDE|REDUCEDLENGTH|STANDARD|STANDARD_LINE\n\n    testDirect(pygeodesy.geodsolve, 25.12.31)\n    test 319 Direct.lat2: -11.174910000000\n    test 320 Direct.lon2: -69.959210000000\n    test 321 Direct.azi2: 129.289270889709\n    test 322 Direct.a12: 80.507297142820\n    test 323 Direct.m12: 6273170.205530384555  FAILED, KNOWN (1.48461e-14), expected 6273170.205530383624\n    test 324 Direct.M12: 0.166063184474\n    test 325 Direct.M21: 0.164791169456\n    test 326 Direct.S12: 12841384694976.431640625000\n    test 327 Direct.lat2: 77.031960000000\n    test 328 Direct.lon2: -162.817660000000  FAILED, KNOWN, expected 197.182340000000\n    test 329 Direct.azi2: 109.112041110672\n    test 330 Direct.a12: 36.892740690446\n    test 331 Direct.m12: 3828869.334438762162  FAILED, KNOWN (3.64855e-14), expected 3828869.334438760765\n    test 332 Direct.M12: 0.800763496081\n    test 333 Direct.M21: 0.801010069842\n    test 334 Direct.S12: 61674961290615.632812500000  FAILED, KNOWN (2.53344e-14), expected 61674961290615.617187500000\n    test 335 Direct.lat2: 41.841380000000\n    test 336 Direct.lon2: 98.566350000000\n    test 337 Direct.azi2: -41.843599514405\n    test 338 Direct.a12: 75.629304910115\n    test 339 Direct.m12: 6161154.577311061323\n    test 340 Direct.M12: 0.248163392340\n    test 341 Direct.M21: 0.249302512036\n    test 342 Direct.S12: -6637997720646.725585937500  FAILED, KNOWN (1.32405e-13), expected -6637997720646.716796875000\n    test 343 Direct.lat2: -12.706310000000\n    test 344 Direct.lon2: -74.096560000000  FAILED, KNOWN, expected 285.903440000000\n    test 345 Direct.azi2: 2.512956620914\n    test 346 Direct.a12: 100.278634181156\n    test 347 Direct.m12: 6289939.567044666968  FAILED, KNOWN (2.96131e-14), expected 6289939.567044668831\n    test 348 Direct.M12: -0.171994902747\n    test 349 Direct.M21: -0.177225695263\n    test 350 Direct.S12: -121287239862139.734375000000  FAILED, KNOWN (1.28826e-14), expected -121287239862139.750000000000\n    test 351 Direct.lat2: -15.847840000000\n    test 352 Direct.lon2: 5.935570000000\n    test 353 Direct.azi2: -20.787484651537\n    test 354 Direct.a12: 144.640108810286\n    test 355 Direct.m12: 3732902.158387716860  FAILED, KNOWN (4.9898e-14), expected 3732902.158387718722\n    test 356 Direct.M12: -0.812736387001\n    test 357 Direct.M21: -0.812998005192\n    test 358 Direct.S12: 97825992354058.703125000000\n\n    testInverse(pygeodesy.geodsolve, 25.12.31)\n    test 359 Inverse.lat2: -11.174910000000\n    test 360 Inverse.lon2: -69.959210000000\n    test 361 Inverse.azi1: 111.098748429560\n    test 362 Inverse.azi2: 129.289270889709\n    test 363 Inverse.s12: 8935244.560481827706  FAILED, KNOWN (2.0846e-14), expected 8935244.560481829569\n    test 364 Inverse.a12: 80.507297142820\n    test 365 Inverse.m12: 6273170.205530384555  FAILED, KNOWN (1.48461e-14), expected 6273170.205530383624\n    test 366 Inverse.M12: 0.166063184474\n    test 367 Inverse.M21: 0.164791169456\n    test 368 Inverse.S12: 12841384694976.433593750000  FAILED, KNOWN (1.52096e-14), expected 12841384694976.431640625000\n    test 369 Inverse.lat2: 77.031960000000\n    test 370 Inverse.lon2: -162.817660000000  FAILED, KNOWN, expected 197.182340000000\n    test 371 Inverse.azi1: 22.020059880983\n    test 372 Inverse.azi2: 109.112041110672\n    test 373 Inverse.s12: 4105086.171392441262  FAILED, KNOWN (1.13435e-14), expected 4105086.171392440796\n    test 374 Inverse.a12: 36.892740690446\n    test 375 Inverse.m12: 3828869.334438761696  FAILED, KNOWN (2.43237e-14), expected 3828869.334438760765\n    test 376 Inverse.M12: 0.800763496081\n    test 377 Inverse.M21: 0.801010069842\n    test 378 Inverse.S12: 61674961290615.617187500000\n    test 379 Inverse.lat2: 41.841380000000\n    test 380 Inverse.lon2: 98.566350000000\n    test 381 Inverse.azi1: -32.444568764332\n    test 382 Inverse.azi2: -41.843599514405\n    test 383 Inverse.s12: 8394328.894657669589  FAILED, KNOWN (2.21893e-14), expected 8394328.894657671452\n    test 384 Inverse.a12: 75.629304910115\n    test 385 Inverse.m12: 6161154.577311061323\n    test 386 Inverse.M12: 0.248163392340\n    test 387 Inverse.M21: 0.249302512036\n    test 388 Inverse.S12: -6637997720646.717773437500  FAILED, KNOWN (1.47117e-14), expected -6637997720646.716796875000\n    test 389 Inverse.lat2: -12.706310000000\n    test 390 Inverse.lon2: -74.096560000000  FAILED, KNOWN, expected 285.903440000000\n    test 391 Inverse.azi1: 173.734912408784\n    test 392 Inverse.azi2: 2.512956620914\n    test 393 Inverse.s12: 11150344.231208024547\n    test 394 Inverse.a12: 100.278634181156\n    test 395 Inverse.m12: 6289939.567044666968  FAILED, KNOWN (2.96131e-14), expected 6289939.567044668831\n    test 396 Inverse.M12: -0.171994902747\n    test 397 Inverse.M21: -0.177225695263\n    test 398 Inverse.S12: -121287239862139.718750000000  FAILED, KNOWN (2.57653e-14), expected -121287239862139.750000000000\n    test 399 Inverse.lat2: -15.847840000000\n    test 400 Inverse.lon2: 5.935570000000\n    test 401 Inverse.azi1: -159.033557661193\n    test 402 Inverse.azi2: -20.787484651537\n    test 403 Inverse.s12: 16076603.163118068129\n    test 404 Inverse.a12: 144.640108810286\n    test 405 Inverse.m12: 3732902.158387719188  FAILED, KNOWN (1.24745e-14), expected 3732902.158387718722\n    test 406 Inverse.M12: -0.812736387001\n    test 407 Inverse.M21: -0.812998005192\n    test 408 Inverse.S12: 97825992354058.703125000000\n    test 409 Inverse.lat2: 90.000000000000\n    test 410 Inverse.lon2: 0.000000000000\n    test 411 Inverse.azi1: 0.000000000000\n    test 412 Inverse.azi2: 0.000000000000\n    test 413 Inverse.s12: 558455.588646478485  FAILED, KNOWN (8.56768e-11), expected 558455.588646000018\n    test 414 Inverse.a12: 5.016734754264  FAILED, KNOWN (4.89833e-06), expected 5.016735000000\n    test 415 Inverse.m12: 557747.059253584128  FAILED, KNOWN (7.45563e-11), expected 557747.059253999963\n    test 416 Inverse.M12: 0.996194698092  FAILED, KNOWN (3.03061e-05), expected 0.996195000000\n    test 417 Inverse.M21: 0.996194828008  FAILED, KNOWN (1.72648e-05), expected 0.996195000000\n    test 418 Inverse.S12: 0.000000000000\n    test 419 Inverse.lat2: 90.000000000000\n    test 420 Inverse.lon2: 10.000000000000\n    test 421 Inverse.azi1: 0.000000000000\n    test 422 Inverse.azi2: 10.000000000000\n    test 423 Inverse.s12: 558455.588646478485  FAILED, KNOWN (8.56768e-11), expected 558455.588646000018\n    test 424 Inverse.a12: 5.016734754264  FAILED, KNOWN (4.89833e-06), expected 5.016735000000\n    test 425 Inverse.m12: 557747.059253584128  FAILED, KNOWN (7.45563e-11), expected 557747.059253999963\n    test 426 Inverse.M12: 0.996194698092  FAILED, KNOWN (3.03061e-05), expected 0.996195000000\n    test 427 Inverse.M21: 0.996194828008  FAILED, KNOWN (1.72648e-05), expected 0.996195000000\n    test 428 Inverse.S12: 7084244746167.896484375000  FAILED, KNOWN (1.3785e-14), expected 7084244746167.895507812500\n\n    testGeodCalc(pygeodesy.ellipsoidalGeodSolve, 25.08.28)\n    test 429 area: 13662703680020\n    test 430 perimeter: 16831067.892791\n\n    testMask(pygeodesy.geodsolve, 25.12.31)\n    test 431 Geodesic.EMPTY: 0b0\n    test 432 Geodesic.LATITUDE: 0b10000000\n    test 433 Geodesic.LONGITUDE: 0b100001000\n    test 434 Geodesic.AZIMUTH: 0b1000000000\n    test 435 Geodesic.AREA: 0b100000000010000\n    test 436 Geodesic.DISTANCE: 0b10000000001\n    test 437 Geodesic.DISTANCE_IN: 0b100000000011\n    test 438 Geodesic.REDUCEDLENGTH: 0b1000000000101\n    test 439 Geodesic.GEODESICSCALE: 0b10000000000101\n    test 440 Geodesic.STANDARD: 0b11110001001\n    test 441 Geodesic.STANDARD_LINE: 0b111110001011\n    test 442 Geodesic.ALL: 0b111111110011111\n    test 443 Caps: ALL|AREA|AZIMUTH|AZIMUTH_DISTANCE|AZIMUTH_DISTANCE_AREA|DISTANCE|DISTANCE_IN|GEODESICSCALE|LATITUDE|LATITUDE_LONGITUDE|LATITUDE_LONGITUDE_AREA|LINE_CAPS|LONGITUDE|REDUCEDLENGTH|STANDARD|STANDARD_LINE\n    test 444 Caps: ALL|AREA|AZIMUTH|AZIMUTH_DISTANCE|AZIMUTH_DISTANCE_AREA|DISTANCE|DISTANCE_IN|GEODESICSCALE|LATITUDE|LATITUDE_LONGITUDE|LATITUDE_LONGITUDE_AREA|LINE_CAPS|LONGITUDE|REDUCEDLENGTH|STANDARD|STANDARD_LINE\n\n    testMath(pygeodesy.karney, 25.12.23)\n    test 445 _diff182(-180, -180): 0.0  FAILED, KNOWN, expected -0.0\n    test 446 _diff182(-180, -90): 90.0\n    test 447 _diff182(-180, 0): 180.0\n    test 448 _diff182(-180, 90): -90.0\n    test 449 _diff182(-180, 180): 0.0\n    test 450 _diff182(-90, -180): -90.0\n    test 451 _diff182(-90, -90): 0.0  FAILED, KNOWN, expected -0.0\n    test 452 _diff182(-90, 0): 90.0\n    test 453 _diff182(-90, 90): 180.0\n    test 454 _diff182(-90, 180): -90.0\n    test 455 _diff182(0, -180): -180.0\n    test 456 _diff182(0, -90): -90.0\n    test 457 _diff182(0, 0): 0.0  FAILED, KNOWN, expected -0.0\n    test 458 _diff182(0, 90): 90.0\n    test 459 _diff182(0, 180): 180.0\n    test 460 _diff182(90, -180): 90.0\n    test 461 _diff182(90, -90): -180.0\n    test 462 _diff182(90, 0): -90.0\n    test 463 _diff182(90, 90): 0.0  FAILED, KNOWN, expected -0.0\n    test 464 _diff182(90, 180): 90.0\n    test 465 _diff182(180, -180): -0.0\n    test 466 _diff182(180, -90): 90.0\n    test 467 _diff182(180, 0): -180.0\n    test 468 _diff182(180, 90): -90.0\n    test 469 _diff182(180, 180): 0.0  FAILED, KNOWN, expected -0.0\n    test 470 _norm180(-361): -1.0\n    test 471  wrap180(-361): -1.0\n    test 472 _norm180(-360): -0.0\n    test 473  wrap180(-360): 0.0  FAILED, KNOWN, expected -0.0\n    test 474 _norm180(-180): -180.0  FAILED, KNOWN, expected 180.0\n    test 475  wrap180(-180): -180.0  FAILED, KNOWN, expected 180.0\n    test 476 _norm180(-90): -90.0\n    test 477  wrap180(-90): -90.0\n    test 478 _norm180(0): 0.0\n    test 479  wrap180(0): 0.0\n    test 480 _norm180(0): 0.0\n    test 481  wrap180(0): 0.0\n    test 482 _norm180(90): 90.0\n    test 483  wrap180(90): 90.0\n    test 484 _norm180(180): 180.0\n    test 485  wrap180(180): 180.0\n    test 486 _norm180(360): 0.0\n    test 487  wrap180(360): 0.0\n    test 488 _norm180(361): 1.0\n    test 489  wrap180(361): 1.0\n    test 490 unroll(-30, 0): (30.0, 0.0)\n    test 491 unroll(-30, 30): (60.0, 30.0)\n    test 492 unroll(-30, 60): (90.0, 60.0)\n    test 493 unroll(-30, 90): (120.0, 90.0)\n    test 494 unroll(-30, 120): (150.0, 120.0)\n    test 495 unroll(-30, 150): (180.0, 150.0)\n    test 496 unroll(-30, 180): (-150.0, -180.0)\n    test 497 unroll(-30, 210): (-120.0, -150.0)\n    test 498 unroll(-30, 240): (-90.0, -120.0)\n    test 499 unroll(-30, 270): (-60.0, -90.0)\n    test 500 unroll(-30, 300): (-30.0, -60.0)\n    test 501 unroll(-30, 330): (0.0, -30.0)\n    test 502 unroll(-30, 360): (30.0, 0.0)\n\n    test 503 _sum3.s: 1.000e-20\n    test 504 _sum3.t: 0.000e+00\n    test 505 fsum_: 1.000e-20\n\n    test 506 _sum3.s: 1.000e-20\n    test 507 _sum3.t: 0.000e+00\n    test 508 fsum_: 1.000e-20\n\n    test 509 _sum3.s: 1.000e-20\n    test 510 _sum3.t: 0.000e+00\n    test 511 fsum_: 1.000e-20\n\n    test 512 _sum3.s: -3.589e+19  FAILED, KNOWN, expected 1.0\n    test 513 _sum3.t: -2.048e+03  FAILED, KNOWN, expected 0.000e+00\n    test 514 fsum_: -3.589e+19  FAILED, KNOWN, expected 1.0\n\n    149 of 514 testKarney.py tests (29.0%) FAILED, incl. 147 KNOWN plus 2 DeprecationWarnings (pygeodesy 26.3.26 Python 2.7.18 64bit arm64_x86_64 geographiclib 1.50 numpy 1.16.6 scipy 1.2.2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 -W  default) 5.917 sec\nrunning /Library/Framewo....ython -W default ~/PyGeodesy/test/testKarneySigns.py\n\n    testing testKarneySigns.py 25.12.23\n\n    test 1 test_AngDiff: ...\n    test 2 test_1: 0.0\n    test 3 test_2: -0.0\n    test 4 test_3: 0.0\n    test 5 test_4: 0.0\n    test 6 test_5: 0.0\n    test 7 test_6: -0.0\n    test 8 test_7: 180.0\n    test 9 test_8: -180.0\n    test 10 test_9: 180.0\n    test 11 test_10: -180.0\n    test 12 test_11: 180.0\n    test 13 test_12: -180.0\n    test 14 test_13: 58.0\n\n    test 15 test_AngNormalize: ...\n    test 16 test_1: -180.0\n    test 17 test_2: -0.0\n    test 18 test_3: -180.0\n    test 19 test_4: -0.0\n    test 20 test_5: -180.0\n    test 21 test_6: -0.0\n    test 22 test_7: 0.0\n    test 23 test_8: 180.0\n    test 24 test_9: 0.0\n    test 25 test_10: 180.0\n    test 26 test_11: 0.0\n    test 27 test_12: 180.0\n\n    test 28 test_AngRound: ...\n    test 29 test_1: 6.93889390391e-18\n    test 30 test_2: -6.93889390391e-18\n    test 31 test_3: -0.0\n    test 32 test_4: -0.0\n    test 33 test_5: 0.0\n    test 34 test_6: 0.0\n    test 35 test_7: 0.015625\n    test 36 test_8: 0.015625\n    test 37 test_9: 0.015625\n    test 38 test_10: 0.015625\n    test 39 test_11: 0.015625\n    test 40 test_12: 0.015625\n    test 41 test_13: 0.015625\n    test 42 test_14: 0.015625\n    test 43 test_15: 0.03125\n    test 44 test_16: 0.03125\n    test 45 test_17: 0.03125\n    test 46 test_18: 0.03125\n    test 47 test_19: 0.03125\n    test 48 test_20: 0.03125\n    test 49 test_21: 0.0625\n    test 50 test_22: 0.0625\n    test 51 test_23: 0.0625\n    test 52 test_24: 0.0625\n    test 53 test_25: 0.0625\n    test 54 test_26: 0.0625\n    test 55 test_27: 0.0625\n    test 56 test_28: 0.125\n    test 57 test_29: 0.125\n    test 58 test_30: 0.125\n    test 59 test_31: 0.125\n    test 60 test_32: 0.125\n    test 61 test_33: 1.0\n    test 62 test_34: 1.0\n    test 63 test_35: 1.0\n    test 64 test_36: 1.0\n    test 65 test_37: 1.0\n    test 66 test_38: 1.0\n    test 67 test_39: 1.0\n    test 68 test_40: 90.0\n    test 69 test_41: 90.0\n    test 70 test_42: 90.0\n\n    test 71 test_antipodal: ...\n    test 72 test_1: 0.0\n    test 73 test_1: 180.0\n    test 74 test_2: 180.0\n    test 75 test_2: 0.0\n    test 76 test_3: -0.0\n    test 77 test_3: -180.0\n    test 78 test_4: -180.0\n    test 79 test_4: -0.0\n\n    test 80 test_antipodal_prolate: ...\n    test 81 test_1: 90.0\n    test 82 test_1: 90.0\n    test 83 test_2: -90.0\n    test 84 test_2: -90.0\n\n    test 85 test_azimuth_0_180: ...\n    test 86 test_1: 180.0\n    test 87 test_1: 180.0\n    test 88 test_2: -180.0\n    test 89 test_2: -180.0\n    test 90 test_3: 180.0\n    test 91 test_3: 0.0\n    test 92 test_4: -180.0\n    test 93 test_4: -0.0\n\n    test 94 test_equatorial_coincident: ...\n    test 95 test_1: 180.0\n    test 96 test_1: 180.0\n    test 97 test_2: 0.0\n    test 98 test_2: 0.0\n\n    test 99 test_equatorial_NS: ...\n    test 100 test_1: 55.97  FAILED, KNOWN, expected 56.00\n    test 101 test_1: 124.03  FAILED, KNOWN, expected 124.00\n    test 102 test_2: 124.03  FAILED, KNOWN, expected 124.00\n    test 103 test_2: 55.97  FAILED, KNOWN, expected 56.00\n\n    test 104 test_atan2d: ...\n    test 105 test_1: 180.0\n    test 106 test_2: 180.0\n    test 107 test_3: -180.0\n    test 108 test_4: 0.0\n    test 109 test_5: -0.0\n    test 110 test_6: 180.0\n    test 111 test_7: -180.0\n    test 112 test_8: 0.0\n    test 113 test_9: -0.0\n    test 114 test_10: -90.0\n    test 115 test_11: -90.0\n    test 116 test_12: 90.0\n    test 117 test_13: 90.0\n    test 118 test_14: 180.0\n    test 119 test_15: -180.0\n    test 120 test_16: 0.0\n    test 121 test_17: -0.0\n    test 122 test_18: 90.0\n    test 123 test_19: 90.0\n    test 124 test_20: -90.0\n    test 125 test_21: -90.0\n    test 126 test_22: 135.0\n    test 127 test_23: -135.0\n    test 128 test_24: 45.0\n    test 129 test_25: -45.0\n    test 130 test_26: nan\n    test 131 test_27: nan\n\n    test 132 test_sincosd: ...\n    test 133 test_1: -1.0000000000000000\n    test 134 test_1: 0.0\n    test 135 test_2: -0.0000000000000000\n    test 136 test_2: 1.0\n    test 137 test_3: 1.0000000000000000\n    test 138 test_3: 0.0\n    test 139 test_4: -0.0000000000000000\n    test 140 test_4: -1.0\n    test 141 test_5: -1.0000000000000000\n    test 142 test_5: 0.0\n    test 143 test_6: -0.0000000000000000\n    test 144 test_6: 1.0\n    test 145 test_7: 1.0000000000000000\n    test 146 test_7: 0.0\n    test 147 test_8: -0.0000000000000000\n    test 148 test_8: -1.0\n    test 149 test_9: -1.0000000000000000\n    test 150 test_9: 0.0\n    test 151 test_10: -0.0000000000000000\n    test 152 test_10: 1.0\n    test 153 test_11: 0.0000000000000000\n    test 154 test_11: 1.0\n    test 155 test_12: 1.0000000000000000\n    test 156 test_12: 0.0\n    test 157 test_13: 0.0000000000000000\n    test 158 test_13: -1.0\n    test 159 test_14: -1.0000000000000000\n    test 160 test_14: 0.0\n    test 161 test_15: 0.0000000000000000\n    test 162 test_15: 1.0\n    test 163 test_16: 1.0000000000000000\n    test 164 test_16: 0.0\n    test 165 test_17: 0.0000000000000000\n    test 166 test_17: -1.0\n    test 167 test_18: -1.0000000000000000\n    test 168 test_18: 0.0\n    test 169 test_19: 0.0000000000000000\n    test 170 test_19: 1.0\n    test 171 test_20: 1.0000000000000000\n    test 172 test_20: 0.0\n    test 173 test_21: nan\n    test 174 test_21: nan\n    test 175 test_22: nan\n    test 176 test_22: nan\n    test 177 test_23: nan\n    test 178 test_23: nan\n    test 179 test_23: 0.1564344650402309\n    test 180 test_23: 0.987688340595\n    test 181 test_23: 0.1564344650402309\n    test 182 test_23: 0.987688340595\n\n    test 183 test_sum2: ...\n    test 184 test_1: 0.0\n    test 185 test_2: 0.0\n    test 186 test_3: 0.0\n    test 187 test_4: 0.0\n    test 188 test_5: -0.0\n    test 189 test_6: 0.0\n\n    test 190 Accu: 5103.0\n\n    4 of 190 testKarneySigns.py tests (2.1%) FAILED, ALL KNOWN (pygeodesy 26.3.26 Python 2.7.18 64bit arm64_x86_64 geographiclib 1.50 numpy 1.16.6 scipy 1.2.2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 -W  default) 126.659 ms\nrunning /Library/Framewo....ython -W default ~/PyGeodesy/test/testKtm.py\n\n    testing testKtm.py 23.03.27 (module pygeodesy.ktm 25.08.31)\n\n    test 1 _TM: KTransverseMercator(ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), k0=0.9996, TMorder=7)\n    test 2 forward 0N (80.000, 0.000) -/-: 0.0, 8881585.815988, 0.0, 0.9996\n    test 3 reverse 0N (80.000, 0.000) -/-: 0.0\n    test 4 forward 3N (79.890, 8.374) -/-: 163544.38007, 8881136.361771, 8.245542, 0.999927\n    test 5 reverse 3N (79.890, 8.374) -/-: 1.7763568394e-15\n    test 6 forward 6N (79.562, 16.725) -/-: 333788.634116, 8880946.730424, 16.462884, 1.000962\n    test 7 reverse 6N (79.562, 16.725) -/-: 1.42108547152e-14\n    test 8 forward 9N (79.015, 25.030) -/-: 516782.400098, 8884389.933155, 24.625783, 1.002865\n    test 9 reverse 9N (79.015, 25.030) -/-: 2.13162820728e-14\n    test 10 forward 12N (78.252, 33.266) -/-: 717349.637417, 8896761.249834, 32.712011, 1.005894\n    test 11 reverse 12N (78.252, 33.266) -/-: 4.49386683978e-14\n    test 12 forward 15N (77.274, 41.411) -/-: 938645.229361, 8924845.3123, 40.705476, 1.010384\n    test 13 reverse 15N (77.274, 41.411) -/-: 7.1054273576e-15\n    test 14 forward 18N (76.085, 49.443) -/-: 1181870.215451, 8976407.252949, 48.598167, 1.016714\n    test 15 reverse 18N (76.085, 49.443) -/-: 4.49386683978e-14\n    test 16 forward 21N (74.686, 57.339) -/-: 1446137.252018, 9059670.735504, 56.391495, 1.025259\n    test 17 reverse 21N (74.686, 57.339) -/-: 4.97379915032e-14\n    test 18 forward 24N (73.084, 65.078) -/-: 1728450.251911, 9182823.938232, 64.096558, 1.036319\n    test 19 reverse 24N (73.084, 65.078) -/-: 1.42108547152e-14\n    test 20 forward 27N (71.281, 72.638) -/-: 2023752.790526, 9353559.771346, 71.732868, 1.050046\n    test 21 reverse 27N (71.281, 72.638) -/-: 0.0\n    test 22 forward 30N (69.282, 80.000) -/-: 2325015.074835, 9578621.128889, 79.325231, 1.066355\n    test 23 reverse 30N (69.282, 80.000) -/-: 1.42108547152e-14\n    test 24 forward 33N (67.094, 87.142) -/-: 2623368.28288, 9863301.12097, 86.898617, 1.084836\n    test 25 reverse 33N (67.094, 87.142) -/-: 0.0\n    test 26 forward 36N (64.721, 94.046) -/-: 2908348.733697, 10210857.598605, 94.471204, 1.104695\n    test 27 reverse 36N (64.721, 94.046) -/-: 0.0\n    test 28 forward 39N (62.172, 100.691) -/-: 3168362.707459, 10621853.317461, 102.04623, 1.124739\n    test 29 reverse 39N (62.172, 100.691) -/-: 7.1054273576e-15\n    test 30 forward 42N (59.452, 107.061) -/-: 3391492.622467, 11093528.387239, 109.604086, 1.14345\n    test 31 reverse 42N (59.452, 107.061) -/-: 2.92964275105e-14\n    test 32 forward 45N (56.569, 113.137) -/-: 3566696.824822, 11619422.467571, 117.096854, 1.159166\n    test 33 reverse 45N (56.569, 113.137) -/-: 1.42108547152e-14\n    test 34 forward 48N (53.530, 118.903) -/-: 3685290.742854, 12189522.028618, 124.447841, 1.170375\n    test 35 reverse 48N (53.530, 118.903) -/-: 7.1054273576e-15\n    test 36 forward 51N (50.346, 124.343) -/-: 3742386.824274, 12791126.616764, 131.557863, 1.176031\n    test 37 reverse 51N (50.346, 124.343) -/-: 1.42108547152e-14\n    test 38 forward 54N (47.023, 129.443) -/-: 3737846.053669, 13410380.03778, 138.317827, 1.175799\n    test 39 reverse 54N (47.023, 129.443) -/-: 7.1054273576e-15\n    test 40 forward 57N (43.571, 134.187) -/-: 3676387.634221, 14034104.572541, 144.624552, 1.170121\n    test 41 reverse 57N (43.571, 134.187) -/-: 0.0\n    test 42 forward 60N (40.000, 138.564) -/-: 3566810.754496, 14651410.305646, 150.395289, 1.16007\n    test 43 reverse 60N (40.000, 138.564) -/-: 7.1054273576e-15\n    test 44 forward 63N (36.319, 142.561) -/-: 3420621.906486, 15254653.660248, 155.577129, 1.147079\n    test 45 reverse 63N (36.319, 142.561) -/-: 7.1054273576e-15\n    test 46 forward 66N (32.539, 146.167) -/-: 3250522.133697, 15839614.666766, 160.149958, 1.132638\n    test 47 reverse 66N (32.539, 146.167) -/-: 0.0\n    test 48 forward 69N (28.669, 149.373) -/-: 3069132.144368, 16405050.640186, 164.124094, 1.118063\n    test 49 reverse 69N (28.669, 149.373) -/-: 3.5527136788e-15\n    test 50 forward 72N (24.721, 152.169) -/-: 2888128.173431, 16951919.948156, 167.534978, 1.104377\n    test 51 reverse 72N (24.721, 152.169) -/-: 1.06581410364e-14\n    test 52 forward 75N (20.706, 154.548) -/-: 2717773.256417, 17482549.021439, 170.437193, 1.09228\n    test 53 reverse 75N (20.706, 154.548) -/-: 1.7763568394e-14\n    test 54 forward 78N (16.633, 156.504) -/-: 2566730.586316, 17999918.486885, 172.899178, 1.082187\n    test 55 reverse 78N (16.633, 156.504) -/-: 1.7763568394e-14\n    test 56 forward 81N (12.515, 158.030) -/-: 2442031.891673, 18507145.758, 174.99917, 1.074303\n    test 57 reverse 81N (12.515, 158.030) -/-: 8.881784197e-15\n    test 58 forward 84N (8.362, 159.124) -/-: 2349105.316925, 19007174.828239, 176.822266, 1.068689\n    test 59 reverse 84N (8.362, 159.124) -/-: 1.95399252334e-14\n    test 60 forward 87N (4.187, 159.781) -/-: 2291809.478825, 19502649.329559, 178.458273, 1.06534\n    test 61 reverse 87N (4.187, 159.781) -/-: 7.9936057773e-15\n    test 62 forward 90N (0.000, 160.000) -/-: 2272454.379192, -19995929.886042, -180.0, 1.064227\n    test 63 reverse 90N (0.000, 160.000) -/-: 2.40165013365e-14\n    test 64 forward 93N (-4.187, 159.781) -/-: 2291809.478825, -19502649.329559, -178.458273, 1.06534\n    test 65 reverse 93N (-4.187, 159.781) -/-: 6.2172489379e-15\n    test 66 forward 96N (-8.362, 159.124) -/-: 2349105.316925, -19007174.828239, -176.822266, 1.068689\n    test 67 reverse 96N (-8.362, 159.124) -/-: 1.59872115546e-14\n    test 68 forward 99N (-12.515, 158.030) -/-: 2442031.891673, -18507145.758, -174.99917, 1.074303\n    test 69 reverse 99N (-12.515, 158.030) -/-: 3.5527136788e-15\n    test 70 forward 102N (-16.633, 156.504) -/-: 2566730.586316, -17999918.486885, -172.899178, 1.082187\n    test 71 reverse 102N (-16.633, 156.504) -/-: 2.84217094304e-14\n    test 72 forward 105N (-20.706, 154.548) -/-: 2717773.256417, -17482549.021439, -170.437193, 1.09228\n    test 73 reverse 105N (-20.706, 154.548) -/-: 1.7763568394e-14\n    test 74 forward 108N (-24.721, 152.169) -/-: 2888128.173431, -16951919.948156, -167.534978, 1.104377\n    test 75 reverse 108N (-24.721, 152.169) -/-: 7.1054273576e-15\n    test 76 forward 111N (-28.669, 149.373) -/-: 3069132.144368, -16405050.640186, -164.124094, 1.118063\n    test 77 reverse 111N (-28.669, 149.373) -/-: 1.42108547152e-14\n    test 78 forward 114N (-32.539, 146.167) -/-: 3250522.133697, -15839614.666766, -160.149958, 1.132638\n    test 79 reverse 114N (-32.539, 146.167) -/-: 7.1054273576e-15\n    test 80 forward 117N (-36.319, 142.561) -/-: 3420621.906486, -15254653.660248, -155.577129, 1.147079\n    test 81 reverse 117N (-36.319, 142.561) -/-: 0.0\n    test 82 forward 120N (-40.000, 138.564) -/-: 3566810.754496, -14651410.305646, -150.395289, 1.16007\n    test 83 reverse 120N (-40.000, 138.564) -/-: 0.0\n    test 84 forward 123N (-43.571, 134.187) -/-: 3676387.634221, -14034104.572541, -144.624552, 1.170121\n    test 85 reverse 123N (-43.571, 134.187) -/-: 0.0\n    test 86 forward 126N (-47.023, 129.443) -/-: 3737846.053669, -13410380.03778, -138.317827, 1.175799\n    test 87 reverse 126N (-47.023, 129.443) -/-: 2.92964275105e-14\n    test 88 forward 129N (-50.346, 124.343) -/-: 3742386.824274, -12791126.616764, -131.557863, 1.176031\n    test 89 reverse 129N (-50.346, 124.343) -/-: 7.1054273576e-15\n    test 90 forward 132N (-53.530, 118.903) -/-: 3685290.742854, -12189522.028618, -124.447841, 1.170375\n    test 91 reverse 132N (-53.530, 118.903) -/-: 7.1054273576e-15\n    test 92 forward 135N (-56.569, 113.137) -/-: 3566696.824822, -11619422.467571, -117.096854, 1.159166\n    test 93 reverse 135N (-56.569, 113.137) -/-: 1.42108547152e-14\n    test 94 forward 138N (-59.452, 107.061) -/-: 3391492.622467, -11093528.387239, -109.604086, 1.14345\n    test 95 reverse 138N (-59.452, 107.061) -/-: 2.92964275105e-14\n    test 96 forward 141N (-62.172, 100.691) -/-: 3168362.707459, -10621853.317461, -102.04623, 1.124739\n    test 97 reverse 141N (-62.172, 100.691) -/-: 1.42108547152e-14\n    test 98 forward 144N (-64.721, 94.046) -/-: 2908348.733697, -10210857.598605, -94.471204, 1.104695\n    test 99 reverse 144N (-64.721, 94.046) -/-: 1.42108547152e-14\n    test 100 forward 147N (-67.094, 87.142) -/-: 2623368.28288, -9863301.12097, -86.898617, 1.084836\n    test 101 reverse 147N (-67.094, 87.142) -/-: 0.0\n    test 102 forward 150N (-69.282, 80.000) -/-: 2325015.074835, -9578621.128889, -79.325231, 1.066355\n    test 103 reverse 150N (-69.282, 80.000) -/-: 2.84217094304e-14\n    test 104 forward 153N (-71.281, 72.638) -/-: 2023752.790526, -9353559.771346, -71.732868, 1.050046\n    test 105 reverse 153N (-71.281, 72.638) -/-: 1.42108547152e-14\n    test 106 forward 156N (-73.084, 65.078) -/-: 1728450.251911, -9182823.938232, -64.096558, 1.036319\n    test 107 reverse 156N (-73.084, 65.078) -/-: 0.0\n    test 108 forward 159N (-74.686, 57.339) -/-: 1446137.252018, -9059670.735504, -56.391495, 1.025259\n    test 109 reverse 159N (-74.686, 57.339) -/-: 2.13162820728e-14\n    test 110 forward 162N (-76.085, 49.443) -/-: 1181870.215451, -8976407.252949, -48.598167, 1.016714\n    test 111 reverse 162N (-76.085, 49.443) -/-: 3.82638973458e-14\n    test 112 forward 165N (-77.274, 41.411) -/-: 938645.229361, -8924845.3123, -40.705476, 1.010384\n    test 113 reverse 165N (-77.274, 41.411) -/-: 7.1054273576e-15\n    test 114 forward 168N (-78.252, 33.266) -/-: 717349.637417, -8896761.249834, -32.712011, 1.005894\n    test 115 reverse 168N (-78.252, 33.266) -/-: 2.13162820728e-14\n    test 116 forward 171N (-79.015, 25.030) -/-: 516782.400098, -8884389.933155, -24.625783, 1.002865\n    test 117 reverse 171N (-79.015, 25.030) -/-: 2.84217094304e-14\n    test 118 forward 174N (-79.562, 16.725) -/-: 333788.634116, -8880946.730424, -16.462884, 1.000962\n    test 119 reverse 174N (-79.562, 16.725) -/-: 7.1054273576e-15\n    test 120 forward 177N (-79.890, 8.374) -/-: 163544.38007, -8881136.361771, -8.245542, 0.999927\n    test 121 reverse 177N (-79.890, 8.374) -/-: 1.7763568394e-15\n    test 122 forward 180N (-80.000, 0.000) -/-: 0.0, -8881585.815988, 0.0, 0.9996\n    test 123 reverse 180N (-80.000, 0.000) -/-: 0.0\n    test 124 forward 183N (-79.890, -8.374) -/-: -163544.38007, -8881136.361771, 8.245542, 0.999927\n    test 125 reverse 183N (-79.890, -8.374) -/-: 1.7763568394e-15\n    test 126 forward 186N (-79.562, -16.725) -/-: -333788.634116, -8880946.730424, 16.462884, 1.000962\n    test 127 reverse 186N (-79.562, -16.725) -/-: 1.42108547152e-14\n    test 128 forward 189N (-79.015, -25.030) -/-: -516782.400098, -8884389.933155, 24.625783, 1.002865\n    test 129 reverse 189N (-79.015, -25.030) -/-: 2.13162820728e-14\n    test 130 forward 192N (-78.252, -33.266) -/-: -717349.637417, -8896761.249834, 32.712011, 1.005894\n    test 131 reverse 192N (-78.252, -33.266) -/-: 4.49386683978e-14\n    test 132 forward 195N (-77.274, -41.411) -/-: -938645.229361, -8924845.3123, 40.705476, 1.010384\n    test 133 reverse 195N (-77.274, -41.411) -/-: 7.1054273576e-15\n    test 134 forward 198N (-76.085, -49.443) -/-: -1181870.215451, -8976407.252949, 48.598167, 1.016714\n    test 135 reverse 198N (-76.085, -49.443) -/-: 4.49386683978e-14\n    test 136 forward 201N (-74.686, -57.339) -/-: -1446137.252018, -9059670.735504, 56.391495, 1.025259\n    test 137 reverse 201N (-74.686, -57.339) -/-: 4.97379915032e-14\n    test 138 forward 204N (-73.084, -65.078) -/-: -1728450.251911, -9182823.938232, 64.096558, 1.036319\n    test 139 reverse 204N (-73.084, -65.078) -/-: 1.42108547152e-14\n    test 140 forward 207N (-71.281, -72.638) -/-: -2023752.790526, -9353559.771346, 71.732868, 1.050046\n    test 141 reverse 207N (-71.281, -72.638) -/-: 0.0\n    test 142 forward 210N (-69.282, -80.000) -/-: -2325015.074835, -9578621.128889, 79.325231, 1.066355\n    test 143 reverse 210N (-69.282, -80.000) -/-: 1.42108547152e-14\n    test 144 forward 213N (-67.094, -87.142) -/-: -2623368.28288, -9863301.12097, 86.898617, 1.084836\n    test 145 reverse 213N (-67.094, -87.142) -/-: 0.0\n    test 146 forward 216N (-64.721, -94.046) -/-: -2908348.733697, -10210857.598605, 94.471204, 1.104695\n    test 147 reverse 216N (-64.721, -94.046) -/-: 0.0\n    test 148 forward 219N (-62.172, -100.691) -/-: -3168362.707459, -10621853.317461, 102.04623, 1.124739\n    test 149 reverse 219N (-62.172, -100.691) -/-: 7.1054273576e-15\n    test 150 forward 222N (-59.452, -107.061) -/-: -3391492.622467, -11093528.387239, 109.604086, 1.14345\n    test 151 reverse 222N (-59.452, -107.061) -/-: 2.92964275105e-14\n    test 152 forward 225N (-56.569, -113.137) -/-: -3566696.824822, -11619422.467571, 117.096854, 1.159166\n    test 153 reverse 225N (-56.569, -113.137) -/-: 1.42108547152e-14\n    test 154 forward 228N (-53.530, -118.903) -/-: -3685290.742854, -12189522.028618, 124.447841, 1.170375\n    test 155 reverse 228N (-53.530, -118.903) -/-: 7.1054273576e-15\n    test 156 forward 231N (-50.346, -124.343) -/-: -3742386.824274, -12791126.616764, 131.557863, 1.176031\n    test 157 reverse 231N (-50.346, -124.343) -/-: 1.42108547152e-14\n    test 158 forward 234N (-47.023, -129.443) -/-: -3737846.053669, -13410380.03778, 138.317827, 1.175799\n    test 159 reverse 234N (-47.023, -129.443) -/-: 7.1054273576e-15\n    test 160 forward 237N (-43.571, -134.187) -/-: -3676387.634221, -14034104.572541, 144.624552, 1.170121\n    test 161 reverse 237N (-43.571, -134.187) -/-: 0.0\n    test 162 forward 240N (-40.000, -138.564) -/-: -3566810.754496, -14651410.305646, 150.395289, 1.16007\n    test 163 reverse 240N (-40.000, -138.564) -/-: 7.1054273576e-15\n    test 164 forward 243N (-36.319, -142.561) -/-: -3420621.906486, -15254653.660248, 155.577129, 1.147079\n    test 165 reverse 243N (-36.319, -142.561) -/-: 7.1054273576e-15\n    test 166 forward 246N (-32.539, -146.167) -/-: -3250522.133697, -15839614.666766, 160.149958, 1.132638\n    test 167 reverse 246N (-32.539, -146.167) -/-: 0.0\n    test 168 forward 249N (-28.669, -149.373) -/-: -3069132.144368, -16405050.640186, 164.124094, 1.118063\n    test 169 reverse 249N (-28.669, -149.373) -/-: 3.5527136788e-15\n    test 170 forward 252N (-24.721, -152.169) -/-: -2888128.173431, -16951919.948156, 167.534978, 1.104377\n    test 171 reverse 252N (-24.721, -152.169) -/-: 1.06581410364e-14\n    test 172 forward 255N (-20.706, -154.548) -/-: -2717773.256417, -17482549.021439, 170.437193, 1.09228\n    test 173 reverse 255N (-20.706, -154.548) -/-: 1.7763568394e-14\n    test 174 forward 258N (-16.633, -156.504) -/-: -2566730.586316, -17999918.486885, 172.899178, 1.082187\n    test 175 reverse 258N (-16.633, -156.504) -/-: 1.7763568394e-14\n    test 176 forward 261N (-12.515, -158.030) -/-: -2442031.891673, -18507145.758, 174.99917, 1.074303\n    test 177 reverse 261N (-12.515, -158.030) -/-: 8.881784197e-15\n    test 178 forward 264N (-8.362, -159.124) -/-: -2349105.316925, -19007174.828239, 176.822266, 1.068689\n    test 179 reverse 264N (-8.362, -159.124) -/-: 1.95399252334e-14\n    test 180 forward 267N (-4.187, -159.781) -/-: -2291809.478825, -19502649.329559, 178.458273, 1.06534\n    test 181 reverse 267N (-4.187, -159.781) -/-: 7.9936057773e-15\n    test 182 forward 270N (0.000, -160.000) -/-: -2272454.379192, -19995929.886042, 180.0, 1.064227\n    test 183 reverse 270N (0.000, -160.000) -/-: 2.40165013365e-14\n    test 184 forward 273N (4.187, -159.781) -/-: -2291809.478825, 19502649.329559, -178.458273, 1.06534\n    test 185 reverse 273N (4.187, -159.781) -/-: 6.2172489379e-15\n    test 186 forward 276N (8.362, -159.124) -/-: -2349105.316925, 19007174.828239, -176.822266, 1.068689\n    test 187 reverse 276N (8.362, -159.124) -/-: 1.59872115546e-14\n    test 188 forward 279N (12.515, -158.030) -/-: -2442031.891673, 18507145.758, -174.99917, 1.074303\n    test 189 reverse 279N (12.515, -158.030) -/-: 3.5527136788e-15\n    test 190 forward 282N (16.633, -156.504) -/-: -2566730.586316, 17999918.486885, -172.899178, 1.082187\n    test 191 reverse 282N (16.633, -156.504) -/-: 2.84217094304e-14\n    test 192 forward 285N (20.706, -154.548) -/-: -2717773.256417, 17482549.021439, -170.437193, 1.09228\n    test 193 reverse 285N (20.706, -154.548) -/-: 1.7763568394e-14\n    test 194 forward 288N (24.721, -152.169) -/-: -2888128.173431, 16951919.948156, -167.534978, 1.104377\n    test 195 reverse 288N (24.721, -152.169) -/-: 7.1054273576e-15\n    test 196 forward 291N (28.669, -149.373) -/-: -3069132.144368, 16405050.640186, -164.124094, 1.118063\n    test 197 reverse 291N (28.669, -149.373) -/-: 1.42108547152e-14\n    test 198 forward 294N (32.539, -146.167) -/-: -3250522.133697, 15839614.666766, -160.149958, 1.132638\n    test 199 reverse 294N (32.539, -146.167) -/-: 7.1054273576e-15\n    test 200 forward 297N (36.319, -142.561) -/-: -3420621.906486, 15254653.660248, -155.577129, 1.147079\n    test 201 reverse 297N (36.319, -142.561) -/-: 0.0\n    test 202 forward 300N (40.000, -138.564) -/-: -3566810.754496, 14651410.305646, -150.395289, 1.16007\n    test 203 reverse 300N (40.000, -138.564) -/-: 0.0\n    test 204 forward 303N (43.571, -134.187) -/-: -3676387.634221, 14034104.572541, -144.624552, 1.170121\n    test 205 reverse 303N (43.571, -134.187) -/-: 0.0\n    test 206 forward 306N (47.023, -129.443) -/-: -3737846.053669, 13410380.03778, -138.317827, 1.175799\n    test 207 reverse 306N (47.023, -129.443) -/-: 2.92964275105e-14\n    test 208 forward 309N (50.346, -124.343) -/-: -3742386.824274, 12791126.616764, -131.557863, 1.176031\n    test 209 reverse 309N (50.346, -124.343) -/-: 7.1054273576e-15\n    test 210 forward 312N (53.530, -118.903) -/-: -3685290.742854, 12189522.028618, -124.447841, 1.170375\n    test 211 reverse 312N (53.530, -118.903) -/-: 7.1054273576e-15\n    test 212 forward 315N (56.569, -113.137) -/-: -3566696.824822, 11619422.467571, -117.096854, 1.159166\n    test 213 reverse 315N (56.569, -113.137) -/-: 1.42108547152e-14\n    test 214 forward 318N (59.452, -107.061) -/-: -3391492.622467, 11093528.387239, -109.604086, 1.14345\n    test 215 reverse 318N (59.452, -107.061) -/-: 2.92964275105e-14\n    test 216 forward 321N (62.172, -100.691) -/-: -3168362.707459, 10621853.317461, -102.04623, 1.124739\n    test 217 reverse 321N (62.172, -100.691) -/-: 1.42108547152e-14\n    test 218 forward 324N (64.721, -94.046) -/-: -2908348.733697, 10210857.598605, -94.471204, 1.104695\n    test 219 reverse 324N (64.721, -94.046) -/-: 1.42108547152e-14\n    test 220 forward 327N (67.094, -87.142) -/-: -2623368.28288, 9863301.12097, -86.898617, 1.084836\n    test 221 reverse 327N (67.094, -87.142) -/-: 0.0\n    test 222 forward 330N (69.282, -80.000) -/-: -2325015.074835, 9578621.128889, -79.325231, 1.066355\n    test 223 reverse 330N (69.282, -80.000) -/-: 2.84217094304e-14\n    test 224 forward 333N (71.281, -72.638) -/-: -2023752.790526, 9353559.771346, -71.732868, 1.050046\n    test 225 reverse 333N (71.281, -72.638) -/-: 1.42108547152e-14\n    test 226 forward 336N (73.084, -65.078) -/-: -1728450.251911, 9182823.938232, -64.096558, 1.036319\n    test 227 reverse 336N (73.084, -65.078) -/-: 0.0\n    test 228 forward 339N (74.686, -57.339) -/-: -1446137.252018, 9059670.735504, -56.391495, 1.025259\n    test 229 reverse 339N (74.686, -57.339) -/-: 2.13162820728e-14\n    test 230 forward 342N (76.085, -49.443) -/-: -1181870.215451, 8976407.252949, -48.598167, 1.016714\n    test 231 reverse 342N (76.085, -49.443) -/-: 3.82638973458e-14\n    test 232 forward 345N (77.274, -41.411) -/-: -938645.229361, 8924845.3123, -40.705476, 1.010384\n    test 233 reverse 345N (77.274, -41.411) -/-: 7.1054273576e-15\n    test 234 forward 348N (78.252, -33.266) -/-: -717349.637417, 8896761.249834, -32.712011, 1.005894\n    test 235 reverse 348N (78.252, -33.266) -/-: 2.13162820728e-14\n    test 236 forward 351N (79.015, -25.030) -/-: -516782.400098, 8884389.933155, -24.625783, 1.002865\n    test 237 reverse 351N (79.015, -25.030) -/-: 2.84217094304e-14\n    test 238 forward 354N (79.562, -16.725) -/-: -333788.634116, 8880946.730424, -16.462884, 1.000962\n    test 239 reverse 354N (79.562, -16.725) -/-: 7.1054273576e-15\n    test 240 forward 357N (79.890, -8.374) -/-: -163544.38007, 8881136.361771, -8.245542, 0.999927\n    test 241 reverse 357N (79.890, -8.374) -/-: 1.7763568394e-15\n    test 242 forward 360N (80.000, 0.000) -/-: 0.0, 8881585.815988, 0.0, 0.9996\n    test 243 reverse 360N (80.000, 0.000) -/-: 0.0\n    test 244 max: 4.97379915032e-14  FAILED, KNOWN, expected 6e-14\n\n    test 245 forward: 6208422.5374, 5452954.287187, 41.077484, 1.511911\n    test 246 reverse: 30.244228, 60.169664, 41.479185, 1.510346\n\n    test 247 _TM: KTransverseMercator(ellipsoid=Ellipsoid(name='Sphere', a=6371008.771415, f=0, f_=0, b=6371008.771415), k0=0.9996, TMorder=4)\n    test 248 forward 0N (80.000, 0.000) -/-: 0.0, 8892048.136219, 0.0, 0.9996\n    test 249 reverse 0N (80.000, 0.000) -/-: 0.0\n    test 250 forward 3N (79.890, 8.374) -/-: 162830.781916, 8891598.152508, 8.245541, 0.999927\n    test 251 reverse 3N (79.890, 8.374) -/-: 3.5527136788e-15\n    test 252 forward 6N (79.562, 16.725) -/-: 332334.438121, 8891401.702739, 16.462875, 1.000961\n    test 253 reverse 6N (79.562, 16.725) -/-: 3.5527136788e-15\n    test 254 forward 9N (79.015, 25.030) -/-: 514536.969405, 8894816.626946, 24.625748, 1.002864\n    test 255 reverse 9N (79.015, 25.030) -/-: 3.5527136788e-15\n    test 256 forward 12N (78.252, 33.266) -/-: 714245.109628, 8907114.580812, 32.711919, 1.005893\n    test 257 reverse 12N (78.252, 33.266) -/-: 1.42108547152e-14\n    test 258 forward 15N (77.274, 41.411) -/-: 934605.427053, 8935050.398758, 40.705275, 1.010384\n    test 259 reverse 15N (77.274, 41.411) -/-: 2.13162820728e-14\n    test 260 forward 18N (76.085, 49.443) -/-: 1176821.393989, 8986356.098856, 48.597784, 1.016715\n    test 261 reverse 18N (76.085, 49.443) -/-: 7.1054273576e-15\n    test 262 forward 21N (74.686, 57.339) -/-: 1440020.023752, 9069222.197918, 56.390849, 1.025263\n    test 263 reverse 21N (74.686, 57.339) -/-: 2.00971834712e-14\n    test 264 forward 24N (73.084, 65.078) -/-: 1721232.03303, 9191807.409386, 64.095597, 1.036332\n    test 265 reverse 24N (73.084, 65.078) -/-: 4.49386683978e-14\n    test 266 forward 27N (71.281, 72.638) -/-: 2015439.94304, 9361783.139474, 71.731644, 1.050076\n    test 267 reverse 27N (71.281, 72.638) -/-: 1.42108547152e-14\n    test 268 forward 30N (69.282, 80.000) -/-: 2315663.380439, 9585883.63353, 79.324018, 1.066413\n    test 269 reverse 30N (69.282, 80.000) -/-: 0.0\n    test 270 forward 33N (67.094, 87.142) -/-: 2613089.50746, 9869411.258858, 86.898056, 1.084934\n    test 271 reverse 33N (67.094, 87.142) -/-: 1.42108547152e-14\n    test 272 forward 36N (64.721, 94.046) -/-: 2897310.302591, 10215654.794479, 94.472414, 1.104843\n    test 273 reverse 36N (64.721, 94.046) -/-: 4.26325641456e-14\n    test 274 forward 39N (62.172, 100.691) -/-: 3156777.9732, 10625229.653451, 102.050793, 1.12494\n    test 275 reverse 39N (62.172, 100.691) -/-: 7.1054273576e-15\n    test 276 forward 42N (59.452, 107.061) -/-: 3379601.994821, 11095444.501021, 109.613799, 1.143688\n    test 277 reverse 42N (59.452, 107.061) -/-: 7.1054273576e-15\n    test 278 forward 45N (56.569, 113.137) -/-: 3554744.82183, 11619912.294696, 117.113212, 1.159405\n    test 279 reverse 45N (56.569, 113.137) -/-: 7.1054273576e-15\n    test 280 forward 48N (53.530, 118.903) -/-: 3673507.549162, 12188686.186502, 124.471401, 1.170561\n    test 281 reverse 48N (53.530, 118.903) -/-: 7.1054273576e-15\n    test 282 forward 51N (50.346, 124.343) -/-: 3730980.59573, 12789121.454112, 131.587794, 1.176106\n    test 283 reverse 51N (50.346, 124.343) -/-: 1.42108547152e-14\n    test 284 forward 54N (47.023, 129.443) -/-: 3727003.760242, 13407411.821957, 138.351947, 1.175719\n    test 285 reverse 54N (47.023, 129.443) -/-: 7.1054273576e-15\n    test 286 forward 57N (43.571, 134.187) -/-: 3666275.084648, 14030431.844036, 144.659906, 1.16987\n    test 287 reverse 57N (43.571, 134.187) -/-: 7.1054273576e-15\n    test 288 forward 60N (40.000, 138.564) -/-: 3557564.445775, 14647347.719581, 150.428973, 1.159665\n    test 289 reverse 60N (40.000, 138.564) -/-: 7.1054273576e-15\n    test 290 forward 63N (36.319, 142.561) -/-: 3412334.48396, 15250567.642625, 155.606964, 1.146559\n    test 291 reverse 63N (36.319, 142.561) -/-: 0.0\n    test 292 forward 66N (32.539, 146.167) -/-: 3243229.892204, 15835907.12812, 160.174784, 1.132049\n    test 293 reverse 66N (32.539, 146.167) -/-: 2.92964275105e-14\n    test 294 forward 69N (28.669, 149.373) -/-: 3062811.744735, 16402134.803105, 164.143685, 1.117448\n    test 295 reverse 69N (28.669, 149.373) -/-: 3.5527136788e-15\n    test 296 forward 72N (24.721, 152.169) -/-: 2882703.816659, 16950195.447611, 167.549757, 1.103767\n    test 297 reverse 72N (24.721, 152.169) -/-: 0.0\n    test 298 forward 75N (20.706, 154.548) -/-: 2713130.658999, 17482381.525728, 170.447906, 1.091693\n    test 299 reverse 75N (20.706, 154.548) -/-: 1.06581410364e-14\n    test 300 forward 78N (16.633, 156.504) -/-: 2562732.651149, 18001625.534999, 172.906642, 1.081633\n    test 301 reverse 78N (16.633, 156.504) -/-: 7.1054273576e-15\n    test 302 forward 81N (12.515, 158.030) -/-: 2438532.075646, 18510987.984533, 175.004113, 1.07378\n    test 303 reverse 81N (12.515, 158.030) -/-: 3.5527136788e-15\n    test 304 forward 84N (8.362, 159.124) -/-: 2345956.628332, 19013350.872509, 176.82525, 1.068192\n    test 305 reverse 84N (8.362, 159.124) -/-: 7.1054273576e-15\n    test 306 forward 87N (4.187, 159.781) -/-: 2288868.720832, 19511292.939628, 178.459673, 1.064859\n    test 307 reverse 87N (4.187, 159.781) -/-: 1.95399252334e-14\n    test 308 forward 90N (0.000, 160.000) -/-: 2269582.383311, -20007108.306493, -180.0, 1.063752\n    test 309 reverse 90N (0.000, 160.000) -/-: 0.0\n    test 310 forward 93N (-4.187, 159.781) -/-: 2288868.720832, -19511292.939628, -178.459673, 1.064859\n    test 311 reverse 93N (-4.187, 159.781) -/-: 3.01980662698e-14\n    test 312 forward 96N (-8.362, 159.124) -/-: 2345956.628332, -19013350.872509, -176.82525, 1.068192\n    test 313 reverse 96N (-8.362, 159.124) -/-: 1.06581410364e-14\n    test 314 forward 99N (-12.515, 158.030) -/-: 2438532.075646, -18510987.984533, -175.004113, 1.07378\n    test 315 reverse 99N (-12.515, 158.030) -/-: 8.881784197e-15\n    test 316 forward 102N (-16.633, 156.504) -/-: 2562732.651149, -18001625.534999, -172.906642, 1.081633\n    test 317 reverse 102N (-16.633, 156.504) -/-: 3.5527136788e-15\n    test 318 forward 105N (-20.706, 154.548) -/-: 2713130.658999, -17482381.525728, -170.447906, 1.091693\n    test 319 reverse 105N (-20.706, 154.548) -/-: 1.06581410364e-14\n    test 320 forward 108N (-24.721, 152.169) -/-: 2882703.816659, -16950195.447611, -167.549757, 1.103767\n    test 321 reverse 108N (-24.721, 152.169) -/-: 3.5527136788e-15\n    test 322 forward 111N (-28.669, 149.373) -/-: 3062811.744735, -16402134.803105, -164.143685, 1.117448\n    test 323 reverse 111N (-28.669, 149.373) -/-: 1.06581410364e-14\n    test 324 forward 114N (-32.539, 146.167) -/-: 3243229.892204, -15835907.128119, -160.174784, 1.132049\n    test 325 reverse 114N (-32.539, 146.167) -/-: 7.1054273576e-15\n    test 326 forward 117N (-36.319, 142.561) -/-: 3412334.48396, -15250567.642625, -155.606964, 1.146559\n    test 327 reverse 117N (-36.319, 142.561) -/-: 7.1054273576e-15\n    test 328 forward 120N (-40.000, 138.564) -/-: 3557564.445775, -14647347.719581, -150.428973, 1.159665\n    test 329 reverse 120N (-40.000, 138.564) -/-: 7.1054273576e-15\n    test 330 forward 123N (-43.571, 134.187) -/-: 3666275.084648, -14030431.844036, -144.659906, 1.16987\n    test 331 reverse 123N (-43.571, 134.187) -/-: 7.1054273576e-15\n    test 332 forward 126N (-47.023, 129.443) -/-: 3727003.760242, -13407411.821957, -138.351947, 1.175719\n    test 333 reverse 126N (-47.023, 129.443) -/-: 7.1054273576e-15\n    test 334 forward 129N (-50.346, 124.343) -/-: 3730980.59573, -12789121.454112, -131.587794, 1.176106\n    test 335 reverse 129N (-50.346, 124.343) -/-: 7.1054273576e-15\n    test 336 forward 132N (-53.530, 118.903) -/-: 3673507.549162, -12188686.186502, -124.471401, 1.170561\n    test 337 reverse 132N (-53.530, 118.903) -/-: 7.1054273576e-15\n    test 338 forward 135N (-56.569, 113.137) -/-: 3554744.82183, -11619912.294696, -117.113212, 1.159405\n    test 339 reverse 135N (-56.569, 113.137) -/-: 7.1054273576e-15\n    test 340 forward 138N (-59.452, 107.061) -/-: 3379601.994821, -11095444.501021, -109.613799, 1.143688\n    test 341 reverse 138N (-59.452, 107.061) -/-: 7.1054273576e-15\n    test 342 forward 141N (-62.172, 100.691) -/-: 3156777.9732, -10625229.653451, -102.050793, 1.12494\n    test 343 reverse 141N (-62.172, 100.691) -/-: 1.42108547152e-14\n    test 344 forward 144N (-64.721, 94.046) -/-: 2897310.302591, -10215654.794479, -94.472414, 1.104843\n    test 345 reverse 144N (-64.721, 94.046) -/-: 2.00971834712e-14\n    test 346 forward 147N (-67.094, 87.142) -/-: 2613089.50746, -9869411.258858, -86.898056, 1.084934\n    test 347 reverse 147N (-67.094, 87.142) -/-: 1.42108547152e-14\n    test 348 forward 150N (-69.282, 80.000) -/-: 2315663.380439, -9585883.63353, -79.324018, 1.066413\n    test 349 reverse 150N (-69.282, 80.000) -/-: 1.42108547152e-14\n    test 350 forward 153N (-71.281, 72.638) -/-: 2015439.94304, -9361783.139474, -71.731644, 1.050076\n    test 351 reverse 153N (-71.281, 72.638) -/-: 0.0\n    test 352 forward 156N (-73.084, 65.078) -/-: 1721232.03303, -9191807.409386, -64.095597, 1.036332\n    test 353 reverse 156N (-73.084, 65.078) -/-: 2.84217094304e-14\n    test 354 forward 159N (-74.686, 57.339) -/-: 1440020.023752, -9069222.197918, -56.390849, 1.025263\n    test 355 reverse 159N (-74.686, 57.339) -/-: 7.1054273576e-15\n    test 356 forward 162N (-76.085, 49.443) -/-: 1176821.393989, -8986356.098856, -48.597784, 1.016715\n    test 357 reverse 162N (-76.085, 49.443) -/-: 1.42108547152e-14\n    test 358 forward 165N (-77.274, 41.411) -/-: 934605.427053, -8935050.398758, -40.705275, 1.010384\n    test 359 reverse 165N (-77.274, 41.411) -/-: 2.13162820728e-14\n    test 360 forward 168N (-78.252, 33.266) -/-: 714245.109628, -8907114.580812, -32.711919, 1.005893\n    test 361 reverse 168N (-78.252, 33.266) -/-: 1.42108547152e-14\n    test 362 forward 171N (-79.015, 25.030) -/-: 514536.969405, -8894816.626946, -24.625748, 1.002864\n    test 363 reverse 171N (-79.015, 25.030) -/-: 3.5527136788e-15\n    test 364 forward 174N (-79.562, 16.725) -/-: 332334.438121, -8891401.702739, -16.462875, 1.000961\n    test 365 reverse 174N (-79.562, 16.725) -/-: 7.1054273576e-15\n    test 366 forward 177N (-79.890, 8.374) -/-: 162830.781916, -8891598.152508, -8.245541, 0.999927\n    test 367 reverse 177N (-79.890, 8.374) -/-: 1.7763568394e-15\n    test 368 forward 180N (-80.000, 0.000) -/-: 0.0, -8892048.136219, 0.0, 0.9996\n    test 369 reverse 180N (-80.000, 0.000) -/-: 0.0\n    test 370 forward 183N (-79.890, -8.374) -/-: -162830.781916, -8891598.152508, 8.245541, 0.999927\n    test 371 reverse 183N (-79.890, -8.374) -/-: 3.5527136788e-15\n    test 372 forward 186N (-79.562, -16.725) -/-: -332334.438121, -8891401.702739, 16.462875, 1.000961\n    test 373 reverse 186N (-79.562, -16.725) -/-: 3.5527136788e-15\n    test 374 forward 189N (-79.015, -25.030) -/-: -514536.969405, -8894816.626946, 24.625748, 1.002864\n    test 375 reverse 189N (-79.015, -25.030) -/-: 3.5527136788e-15\n    test 376 forward 192N (-78.252, -33.266) -/-: -714245.109628, -8907114.580812, 32.711919, 1.005893\n    test 377 reverse 192N (-78.252, -33.266) -/-: 1.42108547152e-14\n    test 378 forward 195N (-77.274, -41.411) -/-: -934605.427053, -8935050.398758, 40.705275, 1.010384\n    test 379 reverse 195N (-77.274, -41.411) -/-: 2.13162820728e-14\n    test 380 forward 198N (-76.085, -49.443) -/-: -1176821.393989, -8986356.098856, 48.597784, 1.016715\n    test 381 reverse 198N (-76.085, -49.443) -/-: 7.1054273576e-15\n    test 382 forward 201N (-74.686, -57.339) -/-: -1440020.023752, -9069222.197918, 56.390849, 1.025263\n    test 383 reverse 201N (-74.686, -57.339) -/-: 2.00971834712e-14\n    test 384 forward 204N (-73.084, -65.078) -/-: -1721232.03303, -9191807.409386, 64.095597, 1.036332\n    test 385 reverse 204N (-73.084, -65.078) -/-: 4.49386683978e-14\n    test 386 forward 207N (-71.281, -72.638) -/-: -2015439.94304, -9361783.139474, 71.731644, 1.050076\n    test 387 reverse 207N (-71.281, -72.638) -/-: 1.42108547152e-14\n    test 388 forward 210N (-69.282, -80.000) -/-: -2315663.380439, -9585883.63353, 79.324018, 1.066413\n    test 389 reverse 210N (-69.282, -80.000) -/-: 0.0\n    test 390 forward 213N (-67.094, -87.142) -/-: -2613089.50746, -9869411.258858, 86.898056, 1.084934\n    test 391 reverse 213N (-67.094, -87.142) -/-: 1.42108547152e-14\n    test 392 forward 216N (-64.721, -94.046) -/-: -2897310.302591, -10215654.794479, 94.472414, 1.104843\n    test 393 reverse 216N (-64.721, -94.046) -/-: 4.26325641456e-14\n    test 394 forward 219N (-62.172, -100.691) -/-: -3156777.9732, -10625229.653451, 102.050793, 1.12494\n    test 395 reverse 219N (-62.172, -100.691) -/-: 7.1054273576e-15\n    test 396 forward 222N (-59.452, -107.061) -/-: -3379601.994821, -11095444.501021, 109.613799, 1.143688\n    test 397 reverse 222N (-59.452, -107.061) -/-: 7.1054273576e-15\n    test 398 forward 225N (-56.569, -113.137) -/-: -3554744.82183, -11619912.294696, 117.113212, 1.159405\n    test 399 reverse 225N (-56.569, -113.137) -/-: 7.1054273576e-15\n    test 400 forward 228N (-53.530, -118.903) -/-: -3673507.549162, -12188686.186502, 124.471401, 1.170561\n    test 401 reverse 228N (-53.530, -118.903) -/-: 7.1054273576e-15\n    test 402 forward 231N (-50.346, -124.343) -/-: -3730980.59573, -12789121.454112, 131.587794, 1.176106\n    test 403 reverse 231N (-50.346, -124.343) -/-: 1.42108547152e-14\n    test 404 forward 234N (-47.023, -129.443) -/-: -3727003.760242, -13407411.821957, 138.351947, 1.175719\n    test 405 reverse 234N (-47.023, -129.443) -/-: 7.1054273576e-15\n    test 406 forward 237N (-43.571, -134.187) -/-: -3666275.084648, -14030431.844036, 144.659906, 1.16987\n    test 407 reverse 237N (-43.571, -134.187) -/-: 7.1054273576e-15\n    test 408 forward 240N (-40.000, -138.564) -/-: -3557564.445775, -14647347.719581, 150.428973, 1.159665\n    test 409 reverse 240N (-40.000, -138.564) -/-: 7.1054273576e-15\n    test 410 forward 243N (-36.319, -142.561) -/-: -3412334.48396, -15250567.642625, 155.606964, 1.146559\n    test 411 reverse 243N (-36.319, -142.561) -/-: 0.0\n    test 412 forward 246N (-32.539, -146.167) -/-: -3243229.892204, -15835907.12812, 160.174784, 1.132049\n    test 413 reverse 246N (-32.539, -146.167) -/-: 2.92964275105e-14\n    test 414 forward 249N (-28.669, -149.373) -/-: -3062811.744735, -16402134.803105, 164.143685, 1.117448\n    test 415 reverse 249N (-28.669, -149.373) -/-: 3.5527136788e-15\n    test 416 forward 252N (-24.721, -152.169) -/-: -2882703.816659, -16950195.447611, 167.549757, 1.103767\n    test 417 reverse 252N (-24.721, -152.169) -/-: 0.0\n    test 418 forward 255N (-20.706, -154.548) -/-: -2713130.658999, -17482381.525728, 170.447906, 1.091693\n    test 419 reverse 255N (-20.706, -154.548) -/-: 1.06581410364e-14\n    test 420 forward 258N (-16.633, -156.504) -/-: -2562732.651149, -18001625.534999, 172.906642, 1.081633\n    test 421 reverse 258N (-16.633, -156.504) -/-: 7.1054273576e-15\n    test 422 forward 261N (-12.515, -158.030) -/-: -2438532.075646, -18510987.984533, 175.004113, 1.07378\n    test 423 reverse 261N (-12.515, -158.030) -/-: 3.5527136788e-15\n    test 424 forward 264N (-8.362, -159.124) -/-: -2345956.628332, -19013350.872509, 176.82525, 1.068192\n    test 425 reverse 264N (-8.362, -159.124) -/-: 7.1054273576e-15\n    test 426 forward 267N (-4.187, -159.781) -/-: -2288868.720832, -19511292.939628, 178.459673, 1.064859\n    test 427 reverse 267N (-4.187, -159.781) -/-: 1.95399252334e-14\n    test 428 forward 270N (0.000, -160.000) -/-: -2269582.383311, -20007108.306493, 180.0, 1.063752\n    test 429 reverse 270N (0.000, -160.000) -/-: 0.0\n    test 430 forward 273N (4.187, -159.781) -/-: -2288868.720832, 19511292.939628, -178.459673, 1.064859\n    test 431 reverse 273N (4.187, -159.781) -/-: 3.01980662698e-14\n    test 432 forward 276N (8.362, -159.124) -/-: -2345956.628332, 19013350.872509, -176.82525, 1.068192\n    test 433 reverse 276N (8.362, -159.124) -/-: 1.06581410364e-14\n    test 434 forward 279N (12.515, -158.030) -/-: -2438532.075646, 18510987.984533, -175.004113, 1.07378\n    test 435 reverse 279N (12.515, -158.030) -/-: 8.881784197e-15\n    test 436 forward 282N (16.633, -156.504) -/-: -2562732.651149, 18001625.534999, -172.906642, 1.081633\n    test 437 reverse 282N (16.633, -156.504) -/-: 3.5527136788e-15\n    test 438 forward 285N (20.706, -154.548) -/-: -2713130.658999, 17482381.525728, -170.447906, 1.091693\n    test 439 reverse 285N (20.706, -154.548) -/-: 1.06581410364e-14\n    test 440 forward 288N (24.721, -152.169) -/-: -2882703.816659, 16950195.447611, -167.549757, 1.103767\n    test 441 reverse 288N (24.721, -152.169) -/-: 3.5527136788e-15\n    test 442 forward 291N (28.669, -149.373) -/-: -3062811.744735, 16402134.803105, -164.143685, 1.117448\n    test 443 reverse 291N (28.669, -149.373) -/-: 1.06581410364e-14\n    test 444 forward 294N (32.539, -146.167) -/-: -3243229.892204, 15835907.128119, -160.174784, 1.132049\n    test 445 reverse 294N (32.539, -146.167) -/-: 7.1054273576e-15\n    test 446 forward 297N (36.319, -142.561) -/-: -3412334.48396, 15250567.642625, -155.606964, 1.146559\n    test 447 reverse 297N (36.319, -142.561) -/-: 7.1054273576e-15\n    test 448 forward 300N (40.000, -138.564) -/-: -3557564.445775, 14647347.719581, -150.428973, 1.159665\n    test 449 reverse 300N (40.000, -138.564) -/-: 7.1054273576e-15\n    test 450 forward 303N (43.571, -134.187) -/-: -3666275.084648, 14030431.844036, -144.659906, 1.16987\n    test 451 reverse 303N (43.571, -134.187) -/-: 7.1054273576e-15\n    test 452 forward 306N (47.023, -129.443) -/-: -3727003.760242, 13407411.821957, -138.351947, 1.175719\n    test 453 reverse 306N (47.023, -129.443) -/-: 7.1054273576e-15\n    test 454 forward 309N (50.346, -124.343) -/-: -3730980.59573, 12789121.454112, -131.587794, 1.176106\n    test 455 reverse 309N (50.346, -124.343) -/-: 7.1054273576e-15\n    test 456 forward 312N (53.530, -118.903) -/-: -3673507.549162, 12188686.186502, -124.471401, 1.170561\n    test 457 reverse 312N (53.530, -118.903) -/-: 7.1054273576e-15\n    test 458 forward 315N (56.569, -113.137) -/-: -3554744.82183, 11619912.294696, -117.113212, 1.159405\n    test 459 reverse 315N (56.569, -113.137) -/-: 7.1054273576e-15\n    test 460 forward 318N (59.452, -107.061) -/-: -3379601.994821, 11095444.501021, -109.613799, 1.143688\n    test 461 reverse 318N (59.452, -107.061) -/-: 7.1054273576e-15\n    test 462 forward 321N (62.172, -100.691) -/-: -3156777.9732, 10625229.653451, -102.050793, 1.12494\n    test 463 reverse 321N (62.172, -100.691) -/-: 1.42108547152e-14\n    test 464 forward 324N (64.721, -94.046) -/-: -2897310.302591, 10215654.794479, -94.472414, 1.104843\n    test 465 reverse 324N (64.721, -94.046) -/-: 2.00971834712e-14\n    test 466 forward 327N (67.094, -87.142) -/-: -2613089.50746, 9869411.258858, -86.898056, 1.084934\n    test 467 reverse 327N (67.094, -87.142) -/-: 1.42108547152e-14\n    test 468 forward 330N (69.282, -80.000) -/-: -2315663.380439, 9585883.63353, -79.324018, 1.066413\n    test 469 reverse 330N (69.282, -80.000) -/-: 1.42108547152e-14\n    test 470 forward 333N (71.281, -72.638) -/-: -2015439.94304, 9361783.139474, -71.731644, 1.050076\n    test 471 reverse 333N (71.281, -72.638) -/-: 0.0\n    test 472 forward 336N (73.084, -65.078) -/-: -1721232.03303, 9191807.409386, -64.095597, 1.036332\n    test 473 reverse 336N (73.084, -65.078) -/-: 2.84217094304e-14\n    test 474 forward 339N (74.686, -57.339) -/-: -1440020.023752, 9069222.197918, -56.390849, 1.025263\n    test 475 reverse 339N (74.686, -57.339) -/-: 7.1054273576e-15\n    test 476 forward 342N (76.085, -49.443) -/-: -1176821.393989, 8986356.098856, -48.597784, 1.016715\n    test 477 reverse 342N (76.085, -49.443) -/-: 1.42108547152e-14\n    test 478 forward 345N (77.274, -41.411) -/-: -934605.427053, 8935050.398758, -40.705275, 1.010384\n    test 479 reverse 345N (77.274, -41.411) -/-: 2.13162820728e-14\n    test 480 forward 348N (78.252, -33.266) -/-: -714245.109628, 8907114.580812, -32.711919, 1.005893\n    test 481 reverse 348N (78.252, -33.266) -/-: 1.42108547152e-14\n    test 482 forward 351N (79.015, -25.030) -/-: -514536.969405, 8894816.626946, -24.625748, 1.002864\n    test 483 reverse 351N (79.015, -25.030) -/-: 3.5527136788e-15\n    test 484 forward 354N (79.562, -16.725) -/-: -332334.438121, 8891401.702739, -16.462875, 1.000961\n    test 485 reverse 354N (79.562, -16.725) -/-: 7.1054273576e-15\n    test 486 forward 357N (79.890, -8.374) -/-: -162830.781916, 8891598.152508, -8.245541, 0.999927\n    test 487 reverse 357N (79.890, -8.374) -/-: 1.7763568394e-15\n    test 488 forward 360N (80.000, 0.000) -/-: 0.0, 8892048.136219, 0.0, 0.9996\n    test 489 reverse 360N (80.000, 0.000) -/-: 0.0\n    test 490 max: 4.49386683978e-14  FAILED, KNOWN, expected 5e-14\n\n    test 491 forward: 6196225.831883, 5458228.732328, 40.893395, 1.511253\n    test 492 reverse: 30.172556, 60.208316, 41.279729, 1.511925\n\n    test 493 _TM: ExactTransverseMercator(datum='WGS84', extendp=False, k0=0.9996, lon0=0.0)\n    test 494 forward 0N (80.000, 0.000) 3/3: 0.0, 8881585.815988, 0.0, 0.9996\n    test 495 reverse 0N (80.000, 0.000) 3/3: 0.0\n    test 496 forward 3N (79.890, 8.374) 3/4: 163544.38007, 8881136.361771, 8.245542, 0.999927\n    test 497 reverse 3N (79.890, 8.374) 3/3: 4.93558757933e-14\n    test 498 forward 6N (79.562, 16.725) 3/4: 333788.634116, 8880946.730424, 16.462884, 1.000962\n    test 499 reverse 6N (79.562, 16.725) 3/3: 3.17764371616e-14\n    test 500 forward 9N (79.015, 25.030) 3/4: 516782.400098, 8884389.933155, 24.625783, 1.002865\n    test 501 reverse 9N (79.015, 25.030) 3/3: 3.4990171833e-14\n    test 502 forward 12N (78.252, 33.266) 3/4: 717349.637417, 8896761.249834, 32.712011, 1.005894\n    test 503 reverse 12N (78.252, 33.266) 3/3: 2.56189826719e-14\n    test 504 forward 15N (77.274, 41.411) 3/4: 938645.229361, 8924845.3123, 40.705476, 1.010384\n    test 505 reverse 15N (77.274, 41.411) 3/3: 5.17282919736e-14\n    test 506 forward 18N (76.085, 49.443) 3/4: 1181870.215451, 8976407.252949, 48.598167, 1.016714\n    test 507 reverse 18N (76.085, 49.443) 3/3: 7.1054273576e-15\n    test 508 forward 21N (74.686, 57.339) 3/4: 1446137.252018, 9059670.735504, 56.391495, 1.025259\n    test 509 reverse 21N (74.686, 57.339) 3/3: 1.14571573538e-13  FAILED, KNOWN, expected 9e-14\n    test 510 forward 24N (73.084, 65.078) 3/4: 1728450.251911, 9182823.938232, 64.096558, 1.036319\n    test 511 reverse 24N (73.084, 65.078) 3/3: 2.84217094304e-14\n    test 512 forward 27N (71.281, 72.638) 3/4: 2023752.790526, 9353559.771346, 71.732868, 1.050046\n    test 513 reverse 27N (71.281, 72.638) 3/3: 1.42108547152e-14\n    test 514 forward 30N (69.282, 80.000) 3/4: 2325015.074835, 9578621.128889, 79.325231, 1.066355\n    test 515 reverse 30N (69.282, 80.000) 3/4: 4.49386683978e-14\n    test 516 forward 33N (67.094, 87.142) 3/4: 2623368.28288, 9863301.12097, 86.898617, 1.084836\n    test 517 reverse 33N (67.094, 87.142) 3/4: 0.0\n    test 518 forward 36N (64.721, 94.046) 3/4: 2908348.733697, 10210857.598605, 94.471204, 1.104695\n    test 519 reverse 36N (64.721, 94.046) 3/4: 7.1054273576e-14\n    test 520 forward 39N (62.172, 100.691) 3/4: 3168362.707459, 10621853.317461, 102.04623, 1.124739\n    test 521 reverse 39N (62.172, 100.691) 3/4: 2.92964275105e-14\n    test 522 forward 42N (59.452, 107.061) 3/4: 3391492.622467, 11093528.387239, 109.604086, 1.14345\n    test 523 reverse 42N (59.452, 107.061) 3/4: 2.00971834712e-14\n    test 524 forward 45N (56.569, 113.137) 3/4: 3566696.824822, 11619422.467571, 117.096854, 1.159166\n    test 525 reverse 45N (56.569, 113.137) 3/4: 1.42108547152e-14\n    test 526 forward 48N (53.530, 118.903) 3/4: 3685290.742854, 12189522.028618, 124.447841, 1.170375\n    test 527 reverse 48N (53.530, 118.903) 3/4: 2.84217094304e-14\n    test 528 forward 51N (50.346, 124.343) 3/4: 3742386.824274, 12791126.616764, 131.557863, 1.176031\n    test 529 reverse 51N (50.346, 124.343) 3/4: 2.00971834712e-14\n    test 530 forward 54N (47.023, 129.443) 3/4: 3737846.053669, 13410380.03778, 138.317827, 1.175799\n    test 531 reverse 54N (47.023, 129.443) 3/4: 3.17764371616e-14\n    test 532 forward 57N (43.571, 134.187) 3/4: 3676387.634221, 14034104.572541, 144.624552, 1.170121\n    test 533 reverse 57N (43.571, 134.187) 3/4: 2.84217094304e-14\n    test 534 forward 60N (40.000, 138.564) 3/4: 3566810.754496, 14651410.305646, 150.395289, 1.16007\n    test 535 reverse 60N (40.000, 138.564) 3/4: 2.92964275105e-14\n    test 536 forward 63N (36.319, 142.561) 3/4: 3420621.906486, 15254653.660248, 155.577129, 1.147079\n    test 537 reverse 63N (36.319, 142.561) 3/4: 7.1054273576e-15\n    test 538 forward 66N (32.539, 146.167) 3/4: 3250522.133697, 15839614.666766, 160.149958, 1.132638\n    test 539 reverse 66N (32.539, 146.167) 3/4: 7.1054273576e-15\n    test 540 forward 69N (28.669, 149.373) 3/4: 3069132.144368, 16405050.640186, 164.124094, 1.118063\n    test 541 reverse 69N (28.669, 149.373) 3/4: 3.5527136788e-15\n    test 542 forward 72N (24.721, 152.169) 3/4: 2888128.173431, 16951919.948156, 167.534978, 1.104377\n    test 543 reverse 72N (24.721, 152.169) 3/4: 7.1054273576e-15\n    test 544 forward 75N (20.706, 154.548) 3/4: 2717773.256417, 17482549.021439, 170.437193, 1.09228\n    test 545 reverse 75N (20.706, 154.548) 3/4: 2.86428933844e-14\n    test 546 forward 78N (16.633, 156.504) 3/4: 2566730.586316, 17999918.486885, 172.899178, 1.082187\n    test 547 reverse 78N (16.633, 156.504) 3/4: 7.1054273576e-15\n    test 548 forward 81N (12.515, 158.030) 3/4: 2442031.891673, 18507145.758, 174.99917, 1.074303\n    test 549 reverse 81N (12.515, 158.030) 3/4: 7.1054273576e-15\n    test 550 forward 84N (8.362, 159.124) 3/4: 2349105.316925, 19007174.828239, 176.822266, 1.068689\n    test 551 reverse 84N (8.362, 159.124) 3/4: 7.1054273576e-15\n    test 552 forward 87N (4.187, 159.781) 3/4: 2291809.478825, 19502649.329559, 178.458273, 1.06534\n    test 553 reverse 87N (4.187, 159.781) 3/4: 9.7699626167e-15\n    test 554 forward 90N (0.000, 160.000) 3/4: 2272454.379192, -19995929.886042, -180.0, 1.064227\n    test 555 reverse 90N (0.000, 160.000) 3/3: 0.0\n    test 556 forward 93N (-4.187, 159.781) 3/4: 2291809.478825, -19502649.329559, -178.458273, 1.06534\n    test 557 reverse 93N (-4.187, 159.781) 3/4: 2.84217094304e-14\n    test 558 forward 96N (-8.362, 159.124) 3/4: 2349105.316925, -19007174.828239, -176.822266, 1.068689\n    test 559 reverse 96N (-8.362, 159.124) 3/4: 1.06581410364e-14\n    test 560 forward 99N (-12.515, 158.030) 3/4: 2442031.891673, -18507145.758, -174.99917, 1.074303\n    test 561 reverse 99N (-12.515, 158.030) 3/4: 3.73034936274e-14\n    test 562 forward 102N (-16.633, 156.504) 3/4: 2566730.586316, -17999918.486885, -172.899178, 1.082187\n    test 563 reverse 102N (-16.633, 156.504) 3/4: 1.42108547152e-14\n    test 564 forward 105N (-20.706, 154.548) 3/4: 2717773.256417, -17482549.021439, -170.437193, 1.09228\n    test 565 reverse 105N (-20.706, 154.548) 3/4: 2.86428933844e-14\n    test 566 forward 108N (-24.721, 152.169) 3/4: 2888128.173431, -16951919.948156, -167.534978, 1.104377\n    test 567 reverse 108N (-24.721, 152.169) 3/4: 7.1054273576e-15\n    test 568 forward 111N (-28.669, 149.373) 3/4: 3069132.144368, -16405050.640186, -164.124094, 1.118063\n    test 569 reverse 111N (-28.669, 149.373) 3/4: 7.1054273576e-15\n    test 570 forward 114N (-32.539, 146.167) 3/4: 3250522.133697, -15839614.666766, -160.149958, 1.132638\n    test 571 reverse 114N (-32.539, 146.167) 3/4: 1.42108547152e-14\n    test 572 forward 117N (-36.319, 142.561) 3/4: 3420621.906486, -15254653.660248, -155.577129, 1.147079\n    test 573 reverse 117N (-36.319, 142.561) 3/4: 7.1054273576e-15\n    test 574 forward 120N (-40.000, 138.564) 3/4: 3566810.754496, -14651410.305646, -150.395289, 1.16007\n    test 575 reverse 120N (-40.000, 138.564) 3/4: 2.13162820728e-14\n    test 576 forward 123N (-43.571, 134.187) 3/4: 3676387.634221, -14034104.572541, -144.624552, 1.170121\n    test 577 reverse 123N (-43.571, 134.187) 3/4: 2.84217094304e-14\n    test 578 forward 126N (-47.023, 129.443) 3/4: 3737846.053669, -13410380.03778, -138.317827, 1.175799\n    test 579 reverse 126N (-47.023, 129.443) 3/4: 7.1054273576e-15\n    test 580 forward 129N (-50.346, 124.343) 3/4: 3742386.824274, -12791126.616764, -131.557863, 1.176031\n    test 581 reverse 129N (-50.346, 124.343) 3/4: 7.1054273576e-15\n    test 582 forward 132N (-53.530, 118.903) 3/4: 3685290.742854, -12189522.028618, -124.447841, 1.170375\n    test 583 reverse 132N (-53.530, 118.903) 3/4: 2.84217094304e-14\n    test 584 forward 135N (-56.569, 113.137) 3/4: 3566696.824822, -11619422.467571, -117.096854, 1.159166\n    test 585 reverse 135N (-56.569, 113.137) 3/4: 1.42108547152e-14\n    test 586 forward 138N (-59.452, 107.061) 3/4: 3391492.622467, -11093528.387239, -109.604086, 1.14345\n    test 587 reverse 138N (-59.452, 107.061) 3/4: 2.00971834712e-14\n    test 588 forward 141N (-62.172, 100.691) 3/4: 3168362.707459, -10621853.317461, -102.04623, 1.124739\n    test 589 reverse 141N (-62.172, 100.691) 3/4: 1.42108547152e-14\n    test 590 forward 144N (-64.721, 94.046) 3/4: 2908348.733697, -10210857.598605, -94.471204, 1.104695\n    test 591 reverse 144N (-64.721, 94.046) 3/4: 5.68434188608e-14\n    test 592 forward 147N (-67.094, 87.142) 3/4: 2623368.28288, -9863301.12097, -86.898617, 1.084836\n    test 593 reverse 147N (-67.094, 87.142) 3/4: 0.0\n    test 594 forward 150N (-69.282, 80.000) 3/4: 2325015.074835, -9578621.128889, -79.325231, 1.066355\n    test 595 reverse 150N (-69.282, 80.000) 3/4: 1.42108547152e-14\n    test 596 forward 153N (-71.281, 72.638) 3/4: 2023752.790526, -9353559.771346, -71.732868, 1.050046\n    test 597 reverse 153N (-71.281, 72.638) 3/3: 2.84217094304e-14\n    test 598 forward 156N (-73.084, 65.078) 3/4: 1728450.251911, -9182823.938232, -64.096558, 1.036319\n    test 599 reverse 156N (-73.084, 65.078) 3/3: 1.42108547152e-14\n    test 600 forward 159N (-74.686, 57.339) 3/4: 1446137.252018, -9059670.735504, -56.391495, 1.025259\n    test 601 reverse 159N (-74.686, 57.339) 3/3: 5.85928550211e-14\n    test 602 forward 162N (-76.085, 49.443) 3/4: 1181870.215451, -8976407.252949, -48.598167, 1.016714\n    test 603 reverse 162N (-76.085, 49.443) 3/3: 0.0\n    test 604 forward 165N (-77.274, 41.411) 3/4: 938645.229361, -8924845.3123, -40.705476, 1.010384\n    test 605 reverse 165N (-77.274, 41.411) 3/3: 5.17282919736e-14\n    test 606 forward 168N (-78.252, 33.266) 3/4: 717349.637417, -8896761.249834, -32.712011, 1.005894\n    test 607 reverse 168N (-78.252, 33.266) 3/3: 0.0\n    test 608 forward 171N (-79.015, 25.030) 3/4: 516782.400098, -8884389.933155, -24.625783, 1.002865\n    test 609 reverse 171N (-79.015, 25.030) 3/3: 4.49386683978e-14\n    test 610 forward 174N (-79.562, 16.725) 3/4: 333788.634116, -8880946.730424, -16.462884, 1.000962\n    test 611 reverse 174N (-79.562, 16.725) 3/3: 2.56189826719e-14\n    test 612 forward 177N (-79.890, 8.374) 3/4: 163544.38007, -8881136.361771, -8.245542, 0.999927\n    test 613 reverse 177N (-79.890, 8.374) 3/3: 4.84851059353e-14\n    test 614 forward 180N (-80.000, 0.000) 3/3: 0.0, -8881585.815988, 0.0, 0.9996\n    test 615 reverse 180N (-80.000, 0.000) 3/3: 0.0\n    test 616 forward 183N (-79.890, -8.374) 3/4: -163544.38007, -8881136.361771, 8.245542, 0.999927\n    test 617 reverse 183N (-79.890, -8.374) 3/3: 4.93558757933e-14\n    test 618 forward 186N (-79.562, -16.725) 3/4: -333788.634116, -8880946.730424, 16.462884, 1.000962\n    test 619 reverse 186N (-79.562, -16.725) 3/3: 3.17764371616e-14\n    test 620 forward 189N (-79.015, -25.030) 3/4: -516782.400098, -8884389.933155, 24.625783, 1.002865\n    test 621 reverse 189N (-79.015, -25.030) 3/3: 3.4990171833e-14\n    test 622 forward 192N (-78.252, -33.266) 3/4: -717349.637417, -8896761.249834, 32.712011, 1.005894\n    test 623 reverse 192N (-78.252, -33.266) 3/3: 2.56189826719e-14\n    test 624 forward 195N (-77.274, -41.411) 3/4: -938645.229361, -8924845.3123, 40.705476, 1.010384\n    test 625 reverse 195N (-77.274, -41.411) 3/3: 5.17282919736e-14\n    test 626 forward 198N (-76.085, -49.443) 3/4: -1181870.215451, -8976407.252949, 48.598167, 1.016714\n    test 627 reverse 198N (-76.085, -49.443) 3/3: 7.1054273576e-15\n    test 628 forward 201N (-74.686, -57.339) 3/4: -1446137.252018, -9059670.735504, 56.391495, 1.025259\n    test 629 reverse 201N (-74.686, -57.339) 3/3: 1.14571573538e-13  FAILED, KNOWN, expected 9e-14\n    test 630 forward 204N (-73.084, -65.078) 3/4: -1728450.251911, -9182823.938232, 64.096558, 1.036319\n    test 631 reverse 204N (-73.084, -65.078) 3/3: 2.84217094304e-14\n    test 632 forward 207N (-71.281, -72.638) 3/4: -2023752.790526, -9353559.771346, 71.732868, 1.050046\n    test 633 reverse 207N (-71.281, -72.638) 3/3: 1.42108547152e-14\n    test 634 forward 210N (-69.282, -80.000) 3/4: -2325015.074835, -9578621.128889, 79.325231, 1.066355\n    test 635 reverse 210N (-69.282, -80.000) 3/4: 4.49386683978e-14\n    test 636 forward 213N (-67.094, -87.142) 3/4: -2623368.28288, -9863301.12097, 86.898617, 1.084836\n    test 637 reverse 213N (-67.094, -87.142) 3/4: 0.0\n    test 638 forward 216N (-64.721, -94.046) 3/4: -2908348.733697, -10210857.598605, 94.471204, 1.104695\n    test 639 reverse 216N (-64.721, -94.046) 3/4: 7.1054273576e-14\n    test 640 forward 219N (-62.172, -100.691) 3/4: -3168362.707459, -10621853.317461, 102.04623, 1.124739\n    test 641 reverse 219N (-62.172, -100.691) 3/4: 2.92964275105e-14\n    test 642 forward 222N (-59.452, -107.061) 3/4: -3391492.622467, -11093528.387239, 109.604086, 1.14345\n    test 643 reverse 222N (-59.452, -107.061) 3/4: 2.00971834712e-14\n    test 644 forward 225N (-56.569, -113.137) 3/4: -3566696.824822, -11619422.467571, 117.096854, 1.159166\n    test 645 reverse 225N (-56.569, -113.137) 3/4: 1.42108547152e-14\n    test 646 forward 228N (-53.530, -118.903) 3/4: -3685290.742854, -12189522.028618, 124.447841, 1.170375\n    test 647 reverse 228N (-53.530, -118.903) 3/4: 2.84217094304e-14\n    test 648 forward 231N (-50.346, -124.343) 3/4: -3742386.824274, -12791126.616764, 131.557863, 1.176031\n    test 649 reverse 231N (-50.346, -124.343) 3/4: 2.00971834712e-14\n    test 650 forward 234N (-47.023, -129.443) 3/4: -3737846.053669, -13410380.03778, 138.317827, 1.175799\n    test 651 reverse 234N (-47.023, -129.443) 3/4: 3.17764371616e-14\n    test 652 forward 237N (-43.571, -134.187) 3/4: -3676387.634221, -14034104.572541, 144.624552, 1.170121\n    test 653 reverse 237N (-43.571, -134.187) 3/4: 2.84217094304e-14\n    test 654 forward 240N (-40.000, -138.564) 3/4: -3566810.754496, -14651410.305646, 150.395289, 1.16007\n    test 655 reverse 240N (-40.000, -138.564) 3/4: 2.92964275105e-14\n    test 656 forward 243N (-36.319, -142.561) 3/4: -3420621.906486, -15254653.660248, 155.577129, 1.147079\n    test 657 reverse 243N (-36.319, -142.561) 3/4: 7.1054273576e-15\n    test 658 forward 246N (-32.539, -146.167) 3/4: -3250522.133697, -15839614.666766, 160.149958, 1.132638\n    test 659 reverse 246N (-32.539, -146.167) 3/4: 7.1054273576e-15\n    test 660 forward 249N (-28.669, -149.373) 3/4: -3069132.144368, -16405050.640186, 164.124094, 1.118063\n    test 661 reverse 249N (-28.669, -149.373) 3/4: 3.5527136788e-15\n    test 662 forward 252N (-24.721, -152.169) 3/4: -2888128.173431, -16951919.948156, 167.534978, 1.104377\n    test 663 reverse 252N (-24.721, -152.169) 3/4: 7.1054273576e-15\n    test 664 forward 255N (-20.706, -154.548) 3/4: -2717773.256417, -17482549.021439, 170.437193, 1.09228\n    test 665 reverse 255N (-20.706, -154.548) 3/4: 2.86428933844e-14\n    test 666 forward 258N (-16.633, -156.504) 3/4: -2566730.586316, -17999918.486885, 172.899178, 1.082187\n    test 667 reverse 258N (-16.633, -156.504) 3/4: 7.1054273576e-15\n    test 668 forward 261N (-12.515, -158.030) 3/4: -2442031.891673, -18507145.758, 174.99917, 1.074303\n    test 669 reverse 261N (-12.515, -158.030) 3/4: 7.1054273576e-15\n    test 670 forward 264N (-8.362, -159.124) 3/4: -2349105.316925, -19007174.828239, 176.822266, 1.068689\n    test 671 reverse 264N (-8.362, -159.124) 3/4: 7.1054273576e-15\n    test 672 forward 267N (-4.187, -159.781) 3/4: -2291809.478825, -19502649.329559, 178.458273, 1.06534\n    test 673 reverse 267N (-4.187, -159.781) 3/4: 9.7699626167e-15\n    test 674 forward 270N (0.000, -160.000) 3/4: -2272454.379192, -19995929.886042, 180.0, 1.064227\n    test 675 reverse 270N (0.000, -160.000) 3/3: 0.0\n    test 676 forward 273N (4.187, -159.781) 3/4: -2291809.478825, 19502649.329559, -178.458273, 1.06534\n    test 677 reverse 273N (4.187, -159.781) 3/4: 2.84217094304e-14\n    test 678 forward 276N (8.362, -159.124) 3/4: -2349105.316925, 19007174.828239, -176.822266, 1.068689\n    test 679 reverse 276N (8.362, -159.124) 3/4: 1.06581410364e-14\n    test 680 forward 279N (12.515, -158.030) 3/4: -2442031.891673, 18507145.758, -174.99917, 1.074303\n    test 681 reverse 279N (12.515, -158.030) 3/4: 3.73034936274e-14\n    test 682 forward 282N (16.633, -156.504) 3/4: -2566730.586316, 17999918.486885, -172.899178, 1.082187\n    test 683 reverse 282N (16.633, -156.504) 3/4: 1.42108547152e-14\n    test 684 forward 285N (20.706, -154.548) 3/4: -2717773.256417, 17482549.021439, -170.437193, 1.09228\n    test 685 reverse 285N (20.706, -154.548) 3/4: 2.86428933844e-14\n    test 686 forward 288N (24.721, -152.169) 3/4: -2888128.173431, 16951919.948156, -167.534978, 1.104377\n    test 687 reverse 288N (24.721, -152.169) 3/4: 7.1054273576e-15\n    test 688 forward 291N (28.669, -149.373) 3/4: -3069132.144368, 16405050.640186, -164.124094, 1.118063\n    test 689 reverse 291N (28.669, -149.373) 3/4: 7.1054273576e-15\n    test 690 forward 294N (32.539, -146.167) 3/4: -3250522.133697, 15839614.666766, -160.149958, 1.132638\n    test 691 reverse 294N (32.539, -146.167) 3/4: 1.42108547152e-14\n    test 692 forward 297N (36.319, -142.561) 3/4: -3420621.906486, 15254653.660248, -155.577129, 1.147079\n    test 693 reverse 297N (36.319, -142.561) 3/4: 7.1054273576e-15\n    test 694 forward 300N (40.000, -138.564) 3/4: -3566810.754496, 14651410.305646, -150.395289, 1.16007\n    test 695 reverse 300N (40.000, -138.564) 3/4: 2.13162820728e-14\n    test 696 forward 303N (43.571, -134.187) 3/4: -3676387.634221, 14034104.572541, -144.624552, 1.170121\n    test 697 reverse 303N (43.571, -134.187) 3/4: 2.84217094304e-14\n    test 698 forward 306N (47.023, -129.443) 3/4: -3737846.053669, 13410380.03778, -138.317827, 1.175799\n    test 699 reverse 306N (47.023, -129.443) 3/4: 7.1054273576e-15\n    test 700 forward 309N (50.346, -124.343) 3/4: -3742386.824274, 12791126.616764, -131.557863, 1.176031\n    test 701 reverse 309N (50.346, -124.343) 3/4: 7.1054273576e-15\n    test 702 forward 312N (53.530, -118.903) 3/4: -3685290.742854, 12189522.028618, -124.447841, 1.170375\n    test 703 reverse 312N (53.530, -118.903) 3/4: 2.84217094304e-14\n    test 704 forward 315N (56.569, -113.137) 3/4: -3566696.824822, 11619422.467571, -117.096854, 1.159166\n    test 705 reverse 315N (56.569, -113.137) 3/4: 1.42108547152e-14\n    test 706 forward 318N (59.452, -107.061) 3/4: -3391492.622467, 11093528.387239, -109.604086, 1.14345\n    test 707 reverse 318N (59.452, -107.061) 3/4: 2.00971834712e-14\n    test 708 forward 321N (62.172, -100.691) 3/4: -3168362.707459, 10621853.317461, -102.04623, 1.124739\n    test 709 reverse 321N (62.172, -100.691) 3/4: 1.42108547152e-14\n    test 710 forward 324N (64.721, -94.046) 3/4: -2908348.733697, 10210857.598605, -94.471204, 1.104695\n    test 711 reverse 324N (64.721, -94.046) 3/4: 5.68434188608e-14\n    test 712 forward 327N (67.094, -87.142) 3/4: -2623368.28288, 9863301.12097, -86.898617, 1.084836\n    test 713 reverse 327N (67.094, -87.142) 3/4: 0.0\n    test 714 forward 330N (69.282, -80.000) 3/4: -2325015.074835, 9578621.128889, -79.325231, 1.066355\n    test 715 reverse 330N (69.282, -80.000) 3/4: 1.42108547152e-14\n    test 716 forward 333N (71.281, -72.638) 3/4: -2023752.790526, 9353559.771346, -71.732868, 1.050046\n    test 717 reverse 333N (71.281, -72.638) 3/3: 2.84217094304e-14\n    test 718 forward 336N (73.084, -65.078) 3/4: -1728450.251911, 9182823.938232, -64.096558, 1.036319\n    test 719 reverse 336N (73.084, -65.078) 3/3: 1.42108547152e-14\n    test 720 forward 339N (74.686, -57.339) 3/4: -1446137.252018, 9059670.735504, -56.391495, 1.025259\n    test 721 reverse 339N (74.686, -57.339) 3/3: 5.85928550211e-14\n    test 722 forward 342N (76.085, -49.443) 3/4: -1181870.215451, 8976407.252949, -48.598167, 1.016714\n    test 723 reverse 342N (76.085, -49.443) 3/3: 0.0\n    test 724 forward 345N (77.274, -41.411) 3/4: -938645.229361, 8924845.3123, -40.705476, 1.010384\n    test 725 reverse 345N (77.274, -41.411) 3/3: 5.17282919736e-14\n    test 726 forward 348N (78.252, -33.266) 3/4: -717349.637417, 8896761.249834, -32.712011, 1.005894\n    test 727 reverse 348N (78.252, -33.266) 3/3: 0.0\n    test 728 forward 351N (79.015, -25.030) 3/4: -516782.400098, 8884389.933155, -24.625783, 1.002865\n    test 729 reverse 351N (79.015, -25.030) 3/3: 4.49386683978e-14\n    test 730 forward 354N (79.562, -16.725) 3/4: -333788.634116, 8880946.730424, -16.462884, 1.000962\n    test 731 reverse 354N (79.562, -16.725) 3/3: 2.56189826719e-14\n    test 732 forward 357N (79.890, -8.374) 3/4: -163544.38007, 8881136.361771, -8.245542, 0.999927\n    test 733 reverse 357N (79.890, -8.374) 3/3: 4.84851059353e-14\n    test 734 forward 360N (80.000, 0.000) 3/3: 0.0, 8881585.815988, 0.0, 0.9996\n    test 735 reverse 360N (80.000, 0.000) 3/3: 0.0\n    test 736 max: 1.14571573538e-13  FAILED, KNOWN, expected 9e-14\n\n    test 737 forward: 6208422.5374, 5452954.287187, 41.077484, 1.511911\n    test 738 reverse: 30.244228, 60.169664, 41.479185, 1.510346\n\n    5 of 738 testKtm.py tests (0.7%) FAILED, ALL KNOWN (pygeodesy 26.3.26 Python 2.7.18 64bit arm64_x86_64 geographiclib 1.50 numpy 1.16.6 scipy 1.2.2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 -W  default) 2.292 sec\nrunning /Library/Framewo....ython -W default ~/PyGeodesy/test/testLatLon.py\n./test/testLatLon.py:276: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.sphericalNvector.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', p.cosineAndoyerLambertTo(q), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:277: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.sphericalNvector.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', q.cosineAndoyerLambertTo(p), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:279: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.sphericalNvector.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', p.cosineForsytheAndoyerLambertTo(q), '124801.098' if Sph else '125205.965', fmt='%.3f')\n./test/testLatLon.py:280: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.sphericalNvector.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', q.cosineForsytheAndoyerLambertTo(p), '124801.098' if Sph else '125205.965', fmt='%.3f')\n./test/testLatLon.py:276: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.sphericalTrigonometry.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', p.cosineAndoyerLambertTo(q), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:277: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.sphericalTrigonometry.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', q.cosineAndoyerLambertTo(p), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:279: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.sphericalTrigonometry.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', p.cosineForsytheAndoyerLambertTo(q), '124801.098' if Sph else '125205.965', fmt='%.3f')\n./test/testLatLon.py:280: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.sphericalTrigonometry.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', q.cosineForsytheAndoyerLambertTo(p), '124801.098' if Sph else '125205.965', fmt='%.3f')\n\n    testing testLatLon.py 25.05.09\n\n    testLatLon(pygeodesy.sphericalNvector, 25.05.27)\n    test 1 isEllipsoidal: False\n    test 2 isSpherical: True\n    test 3 lat/lonDMS: 52.20472°N, 000.14056°E\n    test 4 lat/lonDMS F_DM: 52°12.283′N, 000°08.434′E\n    test 5 lat/lonDMS F_DM: 52°12.2832′N, 000°08.4336′E\n    test 6 lat/lonDMS F_DMS: 52°12′17″N, 000°08′26″E\n    test 7 lat/lonDMS F_DMS: 52°12′17.0″N, 000°08′26.0″E\n    test 8 lat/lonDMS F_RAD: 0.911144N, 0.002453E\n    test 9 isequalTo: True\n    test 10 isequalTo: True\n    test 11 latlon2: 52.20472, 0.14056\n    test 12 latlon2: 52.2047, 0.1406\n    test 13 latlon2: 52.205, 0.141\n    test 14 latlon2: 52.2, 0.14\n    test 15 latlon2: 52.2, 0.1\n    test 16 latlon2: 52.0, 0.0\n    test 17 chordTo: 12036677.26\n    test 18 chordTo: 12036463.78\n    test 19 initialBearingTo: 156.1666\n    test 20 initialBearingTo: 65.8921\n    test 21 initialBearingTo: 0.0\n    test 22 initialBearingTo: 180.0\n    test 23 finalBearingTo: 157.8904\n    test 24 finalBearingTo: 93.8581\n    test 25 bearingTo2: 156.1666, 157.8904\n    test 26 ispolar: True\n    test 27 copy: True\n    test 28 __eq__: True\n    test 29 __ne__: False\n    test 30 equirectangularTo: 404329.56\n    test 31 distanceTo: 404279.720589\n    test 32 distanceTo: 404279.720589\n    test 33 distanceTo: 2145\n    test 34 distanceTo: 18013602.92\n    test 35 distanceTo: 20015114.35\n    test 36 intermediateTo: 51.372084°N, 000.707337°E\n    test 37 intermediateTo: True\n    test 38 intermediateTo: 404279.721\n    test 39 intermediateTo+5: 35.160975°N, 008.989542°E\n    test 40 intermediateTo+5: 5.000\n    test 41 intermediateTo-4: 64.911647°N, 013.726301°W\n    test 42 intermediateTo-4: 4.000\n    test 43 intermediateTo-h: 125.000\n    test 44 intermediateChordTo: 51.372294°N, 000.707192°E\n    test 45 intermediateChordTo: True\n    test 46 intermediateChordTo-h: 125.000\n    test 47 midpointTo: 50.536327°N, 001.274614°E\n    test 48 destination: 51.513546°N, 000.098345°W\n    test 49 destination: 51°30′49″N, 000°05′54″W\n    test 50 destination: 34°37′N, 116°33′W\n    test 51 destination: 34.613647°N, 116.55116°W\n    test 52 destination: 0.604122N, 2.034201W\n    test 53 destination: 31.96383509°N, 064.37329146°E\n    test 54 alongTrackDistanceTo: 62331.59\n    test 55 alongTrackDistanceTo: 62331.58\n    test 56 alongTrackDistanceTo: 99.588\n    test 57 alongTrackDistanceTo: -7702.7\n    test 58 alongTrackDistanceTo: 7587.6\n    test 59 crossTrackDistanceTo: -305.665281606  FAILED, KNOWN, expected TypeError\n    test 60 crossTrackDistanceTo: -307.55\n    test 61 crossTrackDistanceTo: 7.4524\n    test 62 greatCircle: (-0.79408, 0.12856, 0.59406)\n    test 63 neareston6: (LatLon(45°00′00.0″N, 001°00′00.0″E), 4773243.784965, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E))  FAILED, KNOWN, expected (LatLon(45°00′00.0″N, 001°00′00.0″E), 4755443.4294, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E))\n    test 64 neareston6: (LatLon(45°30′03.93″N, 002°00′00.0″E), 38968.531578, 1.501091, 2, LatLon(45°00′00.0″N, 002°00′00.0″E), LatLon(46°00′00.0″N, 002°00′00.0″E))  FAILED, KNOWN, expected (LatLon(45°30′03.94″N, 002°00′00.0″E), 39078.729285, 1.501072, 2, LatLon(45°00′00.0″N, 002°00′00.0″E), LatLon(46°00′00.0″N, 002°00′00.0″E))\n    test 65 chordTo: 124799.103\n    test 66 cosineAndoyerLambertTo: 124801.098\n    test 67 cosineAndoyerLambertTo: 124801.098\n    test 68 cosineForsyheAndoyerLambertTo: 124801.098\n    test 69 cosineForsyheAndoyerLambertTo: 124801.098\n    test 70 cosineLawTo: 124801.098\n    test 71 cosineLawTo: 124801.098\n    test 72 equirectangularTo: 124804.754\n    test 73 equirectangularTo: 124804.754\n    test 74 euclideanTo: 130015.089\n    test 75 euclideanTo: 130015.089\n    test 76 flatLocalTo: 124804.754\n    test 77 flatLocalTo: 124804.754\n    test 78 flatPolarTo: 133663.257\n    test 79 flatPolarTo: 133663.257\n    test 80 hartzell: 53.3206°N, 001.7297°W\n    test 81 hartzell: 53.3206°N, 001.7297°W\n    test 82 height4: 0.0\n    test 83 height4: (3803904.2, -114870.8, 5109488.3, 0.0)\n    test 84 height4: 53°19′14.2″N, 001°43′46.9″W\n    test 85 height4: 53°19′14.2″N, 001°43′46.9″W\n    test 86 haversineTo: 124801.098\n    test 87 haversineTo: 124801.098\n    test 88 hubenyTo: <bound method LatLon.flatLocalTo of LatLon(53°19′14.16″N, 001°43′46.92″W)>\n    test 89 hubenyTo: <bound method LatLon.flatLocalTo of LatLon(53°11′19.32″N, 000°08′00.24″E)>\n    test 90 thomasTo: 124801.098\n    test 91 thomasTo: 124801.098\n    test 92 vincentysTo: 124801.098\n    test 93 vincentysTo: 124801.098\n    test 94 greatCircleTo: (-0.79408, 0.12859, 0.59406)\n    test 95 isclockwise: False\n    test 96 isclockwise*: False\n    test 97 isclockwise: True\n    test 98 isclockwise*: True\n    test 99 isclockwise: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 100 isclockwise*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 101 isclockwise: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 102 isclockwise*: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 103 isconvex: False\n    test 104 isconvex*: False\n    test 105 isconvex: True\n    test 106 isconvex*: True\n    test 107 isconvex: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 108 isconvex*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 109 isenclosedBy1: True\n    test 110 isenclosedBy1*: True\n    test 111 isenclosedBy2: False\n    test 112 isenclosedBy2*: False\n    test 113 isenclosedBy3: False\n    test 114 isenclosedBy3*: False\n    test 115 isenclosedBy4: False\n    test 116 isenclosedBy4*: False\n    test 117 isenclosedBy5: False\n    test 118 isenclosedBy5*: False\n    test 119 isenclosedBy6: True\n    test 120 isenclosedBy6*: True\n    test 121 isenclosedBy7: True\n    test 122 isenclosedBy7*: True\n    test 123 isenclosedBy-CCW: True\n    test 124 isenclosedBy-CW : True\n    test 125 isenclosedBy-CCW: True\n    test 126 initialBearingTo: 102.432182\n    test 127 compassAngleTo: 100.017\n    test 128 compassAngleTo: 105.599\n    test 129 initialBearingTo: 288.715918\n    test 130 compassAngleTo: 280.017\n    test 131 compassAngleTo: 285.599\n    test 132 equirectangularTo: 592.185\n    test 133 distanceTo: 591.831\n    test 134 compassAngleTo: 0.0\n    test 135 compassAngleTo: 45.0\n    test 136 compassAngleTo: 90.0\n    test 137 compassAngleTo: 180.0\n    test 138 compassAngleTo: 225.0\n    test 139 compassAngleTo: 315.0\n    test 140 compassAngleTo: 270.0\n    test 141 compassAngleTo: 359.4\n    test 142 latlon2: (53.0, 1.0)\n    test 143 philam2: (0.93, 0.02)\n    test 144 compassAngleTo: 31\n    test 145 compassAngleTo: 45\n\n    test 146 boundsOf: <class 'pygeodesy.namedTuples.Bounds2Tuple'>\n    test 147 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 148 latlon2: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 149 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 150 isequalTo: <type 'bool'>\n    test 151 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 152 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 153 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 154 xyz3: <type 'tuple'>\n    test 155 xyzh: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 156 compassAngleTo: <type 'float'>\n    test 157 cosineLawTo: <type 'float'>\n    test 158 euclideanTo: <type 'float'>\n    test 159 flatLocalTo: <type 'float'>\n    test 160 flatPolarTo: <type 'float'>\n    test 161 haversineTo: <type 'float'>\n    test 162 hubenyTo: <type 'float'>\n    test 163 vincentysTo: <type 'float'>\n    test 164 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 165 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 166 toLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 167 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 168 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 169 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 170 toVector: (3922384.659522, 0.0, 5020423.423198)\n    test 171 toVector3d: (0.61566, 0.0, 0.78801)\n    test 172 trilaterate5 (pygeodesy.sphericalNvector) .min: 223.305\n    test 173 trilaterate5 (pygeodesy.sphericalNvector) .point: 42.67456065°N, 002.49539502°E\n    test 174 trilaterate5 (pygeodesy.sphericalNvector) .min- is .maxPoint: True\n    test 175 trilaterate5 (pygeodesy.sphericalNvector) .n: 1\n    test 176 trilaterate5 (pygeodesy.sphericalNvector) .error: sphericalNvector.LatLon.trilaterate5(area=True), MRO(nvectorBase.LatLonNvectorBase, sphericalBase.LatLonSphericalBase, latlonBase.LatLonBase, named._NamedBase, ecefLocals._EcefLocal, named._Named): not implemented\n\n    test 177 radii11: Radii11Tuple(rA=7701.409157, rB=1361.530045, rC=499.257353, cR=4886.694635, rIn=739.915482, riS=179.523525, roS=6087.250896, a=1860.787398, b=8200.666509, c=9062.939201, s=9562.196554)\n    test 178 circum4 (pygeodesy.sphericalNvector) .radius: 3185505.323  FAILED, KNOWN, expected 3184256.748\n    test 179 circum4 (pygeodesy.sphericalNvector) .center: 42.674561°N, 002.495395°E, -3185503.45m  FAILED, KNOWN, expected 43.054367°N, 002.942573°E, -3183993.92m\n    test 180 circum4 (pygeodesy.sphericalNvector) .rank: 3\n    test 181 circum4 (pygeodesy.sphericalNvector) .residuals: ()\n    test 182 circum4 (pygeodesy.sphericalNvector) .d1: 4886.695  FAILED, KNOWN, expected 57818.033\n    test 183 circum4 (pygeodesy.sphericalNvector) .d2: 4886.695  FAILED, KNOWN, expected 57834.176\n    test 184 circum4 (pygeodesy.sphericalNvector) .d3: 4886.695  FAILED, KNOWN, expected 57830.992\n    test 185 circum4 (pygeodesy.sphericalNvector) .datum: name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84\n    test 186 circum4 (pygeodesy.sphericalNvector) .Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 187 radii11: Radii11Tuple(rA=328257.82694, rB=782282.176109, rC=782282.176109, cR=782304.746354, rIn=325773.738834, riS=85162.638484, roS=INF, a=1564564.352218, b=1110540.003049, c=1110540.003049, s=1892822.179158)\n    test 188 circin6 (pygeodesy.sphericalNvector) .rB+rC: 1564564.352\n    test 189 circin6 (pygeodesy.sphericalNvector) .rC+pA: 1110540.003\n    test 190 circin6 (pygeodesy.sphericalNvector) .rA+rB: 1110540.003\n    test 191 circin6 (pygeodesy.sphericalNvector) .radius: 325773.739  FAILED, KNOWN, expected 325058.721\n    test 192 circin6 (pygeodesy.sphericalNvector) .center: 02.938473°N, 002.942346°E, -40128.57m  FAILED, KNOWN, expected 02.948531°N, 002.932537°E, -40041.19m\n    test 193 circin6 (pygeodesy.sphericalNvector) .deltas: (0.0, 0.0, 0.094337)  FAILED, KNOWN, expected (0.0, 0.0, 0.090491)\n    test 194 circin6 (pygeodesy.sphericalNvector) .cA: 05.019001°N, 005.038369°E, -48209.76m  FAILED, KNOWN, expected 05.04314°N, 005.014578°E, -48104.09m\n    test 195 circin6 (pygeodesy.sphericalNvector) .cB: 00.0°N, 002.951508°E, -20185.00m  FAILED, KNOWN, expected 00.0°N, 002.941713°E, -20168.62m\n    test 196 circin6 (pygeodesy.sphericalNvector) .cC: 02.951508°N, 000.0°E, -20185.00m  FAILED, KNOWN, expected 02.961566°N, 000.0°E, -20113.46m\n    test 197 circin6 (pygeodesy.sphericalNvector) .dA: 327983.380  FAILED, KNOWN, expected 327263.596\n    test 198 circin6 (pygeodesy.sphericalNvector) .dB: 326745.373  FAILED, KNOWN, expected 326036.153\n    test 199 circin6 (pygeodesy.sphericalNvector) .dC: 326745.373  FAILED, KNOWN, expected 326020.432\n\n    test 200 area cw/ccw: 1.0\n\n    testLatLon(pygeodesy.sphericalTrigonometry, 25.08.31)\n    test 201 isEllipsoidal: False\n    test 202 isSpherical: True\n    test 203 lat/lonDMS: 52.20472°N, 000.14056°E\n    test 204 lat/lonDMS F_DM: 52°12.283′N, 000°08.434′E\n    test 205 lat/lonDMS F_DM: 52°12.2832′N, 000°08.4336′E\n    test 206 lat/lonDMS F_DMS: 52°12′17″N, 000°08′26″E\n    test 207 lat/lonDMS F_DMS: 52°12′17.0″N, 000°08′26.0″E\n    test 208 lat/lonDMS F_RAD: 0.911144N, 0.002453E\n    test 209 isequalTo: True\n    test 210 isequalTo: True\n    test 211 latlon2: 52.20472, 0.14056\n    test 212 latlon2: 52.2047, 0.1406\n    test 213 latlon2: 52.205, 0.141\n    test 214 latlon2: 52.2, 0.14\n    test 215 latlon2: 52.2, 0.1\n    test 216 latlon2: 52.0, 0.0\n    test 217 chordTo: 12036677.26\n    test 218 chordTo: 12036463.78\n    test 219 initialBearingTo: 156.1666\n    test 220 initialBearingTo: 65.8921\n    test 221 initialBearingTo: 0.0\n    test 222 initialBearingTo: 180.0\n    test 223 finalBearingTo: 157.8904\n    test 224 finalBearingTo: 93.8581\n    test 225 bearingTo2: 156.1666, 157.8904\n    test 226 ispolar: True\n    test 227 copy: True\n    test 228 __eq__: True\n    test 229 __ne__: False\n    test 230 equirectangularTo: 404329.56\n    test 231 distanceTo: 404279.720589\n    test 232 distanceTo: 404279.720589\n    test 233 distanceTo: 2145\n    test 234 antipodal: False\n    test 235 distanceTo dateline: 19967403.498  FAILED, KNOWN, expected 19119590.551\n    test 236 distanceTo unrolled: 19967403.498  FAILED, KNOWN, expected 19119590.551\n    test 237 antipodal: False\n    test 238 distanceTo dateline: 9491735\n    test 239 distanceTo unrolled: 9491735\n    test 240 distanceTo: 18013602.92\n    test 241 distanceTo: 20015114.35\n    test 242 intermediateTo: 51.372084°N, 000.707337°E\n    test 243 intermediateTo: True\n    test 244 intermediateTo: 404279.721\n    test 245 intermediateTo+5: 35.160975°N, 008.989542°E\n    test 246 intermediateTo+5: 5.000\n    test 247 intermediateTo-4: 64.911647°N, 013.726301°W\n    test 248 intermediateTo-4: 4.000\n    test 249 intermediateTo-h: 125.000\n    test 250 midpointTo: 50.536327°N, 001.274614°E\n    test 251 destination: 51.513546°N, 000.098345°W\n    test 252 destination: 51°30′49″N, 000°05′54″W\n    test 253 destination: 34°37′N, 116°33′W\n    test 254 destination: 34.613647°N, 116.55116°W\n    test 255 destination: 0.604122N, 2.034201W\n    test 256 destination: 31.96383509°N, 064.37329146°E\n    test 257 alongTrackDistanceTo: type(end) (96): incompatible with sphericalTrigonometry.LatLon.alongTrackDistanceTo(end)  FAILED, KNOWN, expected incompatible ...\n    test 258 alongTrackDistanceTo: 62331.58\n    test 259 alongTrackDistanceTo: 99.588\n    test 260 alongTrackDistanceTo: -7702.7\n    test 261 alongTrackDistanceTo: 7587.6\n    test 262 crossTrackDistanceTo: type(end) (96): incompatible with sphericalTrigonometry.LatLon.crossTrackDistanceTo(end)  FAILED, KNOWN, expected incompatible ...\n    test 263 crossTrackDistanceTo: -307.55\n    test 264 crossTrackDistanceTo: 7.4524\n    test 265 greatCircle: (-0.79408, 0.12856, 0.59406)\n    test 266 neareston6: (LatLon(45°00′00.0″N, 001°00′00.0″E), 4773243.784965, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E))  FAILED, KNOWN, expected (LatLon(45°00′00.0″N, 001°00′00.0″E), 4755443.4294, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E))\n    test 267 neareston6: (LatLon(45°30′03.93″N, 002°00′00.0″E), 38968.531578, 1.501091, 2, LatLon(45°00′00.0″N, 002°00′00.0″E), LatLon(46°00′00.0″N, 002°00′00.0″E))  FAILED, KNOWN, expected (LatLon(45°30′03.94″N, 002°00′00.0″E), 39078.729285, 1.501072, 2, LatLon(45°00′00.0″N, 002°00′00.0″E), LatLon(46°00′00.0″N, 002°00′00.0″E))\n    test 268 chordTo: 124799.103\n    test 269 cosineAndoyerLambertTo: 124801.098\n    test 270 cosineAndoyerLambertTo: 124801.098\n    test 271 cosineForsyheAndoyerLambertTo: 124801.098\n    test 272 cosineForsyheAndoyerLambertTo: 124801.098\n    test 273 cosineLawTo: 124801.098\n    test 274 cosineLawTo: 124801.098\n    test 275 equirectangularTo: 124804.754\n    test 276 equirectangularTo: 124804.754\n    test 277 euclideanTo: 130015.089\n    test 278 euclideanTo: 130015.089\n    test 279 flatLocalTo: 124804.754\n    test 280 flatLocalTo: 124804.754\n    test 281./test/testLatLon.py:276: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.ellipsoidalNvector.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', p.cosineAndoyerLambertTo(q), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:277: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.ellipsoidalNvector.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', q.cosineAndoyerLambertTo(p), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:279: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.ellipsoidalNvector.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', p.cosineForsytheAndoyerLambertTo(q), '124801.098' if Sph else '125205.965', fmt='%.3f')\n./test/testLatLon.py:280: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.ellipsoidalNvector.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', q.cosineForsytheAndoyerLambertTo(p), '124801.098' if Sph else '125205.965', fmt='%.3f')\n flatPolarTo: 133663.257\n    test 282 flatPolarTo: 133663.257\n    test 283 hartzell: 53.3206°N, 001.7297°W\n    test 284 hartzell: 53.3206°N, 001.7297°W\n    test 285 height4: 0.0\n    test 286 height4: (3803904.2, -114870.8, 5109488.3, 0.0)\n    test 287 height4: 53°19′14.2″N, 001°43′46.9″W\n    test 288 height4: 53°19′14.2″N, 001°43′46.9″W\n    test 289 haversineTo: 124801.098\n    test 290 haversineTo: 124801.098\n    test 291 hubenyTo: <bound method LatLon.flatLocalTo of LatLon(53°19′14.16″N, 001°43′46.92″W)>\n    test 292 hubenyTo: <bound method LatLon.flatLocalTo of LatLon(53°11′19.32″N, 000°08′00.24″E)>\n    test 293 thomasTo: 124801.098\n    test 294 thomasTo: 124801.098\n    test 295 vincentysTo: 124801.098\n    test 296 vincentysTo: 124801.098\n    test 297 isclockwise: False\n    test 298 isclockwise*: False\n    test 299 isclockwise: True\n    test 300 isclockwise*: True\n    test 301 isclockwise: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 302 isclockwise*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 303 isclockwise: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 304 isclockwise*: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 305 isconvex: False\n    test 306 isconvex*: False\n    test 307 isconvex: True\n    test 308 isconvex*: True\n    test 309 isconvex: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 310 isconvex*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 311 isenclosedBy1: True\n    test 312 isenclosedBy1*: True\n    test 313 isenclosedBy2: False\n    test 314 isenclosedBy2*: False\n    test 315 isenclosedBy3: False\n    test 316 isenclosedBy3*: False\n    test 317 isenclosedBy4: False\n    test 318 isenclosedBy4*: False\n    test 319 isenclosedBy5: False\n    test 320 isenclosedBy5*: False\n    test 321 isenclosedBy6: True\n    test 322 isenclosedBy6*: True\n    test 323 isenclosedBy7: True\n    test 324 isenclosedBy7*: True\n    test 325 isenclosedBy-CCW: True\n    test 326 isenclosedBy-CW : True\n    test 327 isenclosedBy-CCW: True\n    test 328 initialBearingTo: 102.432182\n    test 329 compassAngleTo: 100.017\n    test 330 compassAngleTo: 105.599\n    test 331 initialBearingTo: 288.715918\n    test 332 compassAngleTo: 280.017\n    test 333 compassAngleTo: 285.599\n    test 334 equirectangularTo: 592.185\n    test 335 distanceTo: 591.831\n    test 336 bearingTo: 0.0\n    test 337 compassAngleTo: 0.0\n    test 338 bearingTo: 45.0\n    test 339 compassAngleTo: 45.0\n    test 340 bearingTo: 90.0\n    test 341 compassAngleTo: 90.0\n    test 342 bearingTo: 180.0\n    test 343 compassAngleTo: 180.0\n    test 344 bearingTo: 225.0\n    test 345 compassAngleTo: 225.0\n    test 346 bearingTo: 315.0\n    test 347 compassAngleTo: 315.0\n    test 348 bearingTo: 270.0\n    test 349 compassAngleTo: 270.0\n    test 350 bearingTo: 0.0  FAILED, KNOWN, expected 359.4\n    test 351 compassAngleTo: 359.4\n    test 352 latlon2: (53.0, 1.0)\n    test 353 philam2: (0.93, 0.02)\n    test 354 bearingTo: 31\n    test 355 compassAngleTo: 31\n    test 356 compassAngleTo: 45\n\n    test 357 boundsOf: <class 'pygeodesy.namedTuples.Bounds2Tuple'>\n    test 358 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 359 latlon2: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 360 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 361 isequalTo: <type 'bool'>\n    test 362 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 363 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 364 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 365 xyz3: <type 'tuple'>\n    test 366 xyzh: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 367 compassAngleTo: <type 'float'>\n    test 368 cosineLawTo: <type 'float'>\n    test 369 euclideanTo: <type 'float'>\n    test 370 flatLocalTo: <type 'float'>\n    test 371 flatPolarTo: <type 'float'>\n    test 372 haversineTo: <type 'float'>\n    test 373 hubenyTo: <type 'float'>\n    test 374 vincentysTo: <type 'float'>\n    test 375 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 376 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 377 toLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 378 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 379 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 380 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 381 toNvector: (0.61566, 0.0, 0.78801)\n    test 382 toVector: (3922384.659522, 0.0, 5020423.423198)\n    test 383 toVector3d: (0.61566, 0.0, 0.78801)\n\n    test 384 trilaterate5 (pygeodesy.sphericalTrigonometry) .min: 313.671\n    test 385 trilaterate5 (pygeodesy.sphericalTrigonometry) .point: 42.66937229°N, 002.48639477°E\n    test 386 trilaterate5 (pygeodesy.sphericalTrigonometry) .max: 1591.044\n    test 387 trilaterate5 (pygeodesy.sphericalTrigonometry) .point: 42.65153054°N, 002.46822157°E\n    test 388 trilaterate5 (pygeodesy.sphericalTrigonometry) .n: 3\n    test 389 trilaterate5 (pygeodesy.sphericalTrigonometry) .min: 133.815\n    test 390 trilaterate5 (pygeodesy.sphericalTrigonometry) .max: 160.242\n    test 391 trilaterate5 (pygeodesy.sphericalTrigonometry) .point: 42.67817811°N, 002.49966641°E\n    test 392 trilaterate5 (pygeodesy.sphericalTrigonometry) .n: 2\n    test 393 trilaterate5 (pygeodesy.sphericalTrigonometry) .min: 2403.293\n    test 394 trilaterate5 (pygeodesy.sphericalTrigonometry) .max: 2403.293\n    test 395 trilaterate5 (pygeodesy.sphericalTrigonometry) .point: 42.66135649°N, 002.47981645°E\n    test 396 trilaterate5 (pygeodesy.sphericalTrigonometry) .min- is .maxPoint: True\n    test 397 trilaterate5 (pygeodesy.sphericalTrigonometry) .n: 1\n    test 398 trilaterate5 (pygeodesy.sphericalTrigonometry) .min: 1340.608\n    test 399 trilaterate5 (pygeodesy.sphericalTrigonometry) .point: 42.69128229°N, 002.50129001°E\n    test 400 trilaterate5 (pygeodesy.sphericalTrigonometry) .max: 1499.220\n    test 401 trilaterate5 (pygeodesy.sphericalTrigonometry) .point: 42.64295864°N, 002.44242391°E\n    test 402 trilaterate5 (pygeodesy.sphericalTrigonometry) .n: 3\n    test 403 radii11: Radii11Tuple(rA=7237.243793, rB=1825.695409, rC=2.255158, cR=57690.493993, rIn=57.33247, riS=2.087691, roS=2.443616, a=1827.950567, b=7239.49895, c=9062.939201, s=9065.194359)\n    test 404 circum3 (pygeodesy.sphericalTrigonometry) .radius: 57690.494  FAILED, KNOWN, expected 57792.067\n    test 405 circum3 (pygeodesy.sphericalTrigonometry) .center: 43.051859°N, 002.94463°E, -261.20m  FAILED, KNOWN, expected 43.053532°N, 002.943255°E, -261.66m\n    test 406 circum3 (pygeodesy.sphericalTrigonometry) .deltas: (0.0, 0.0, 29.896)  FAILED, KNOWN, expected (0.0, 0.0, 11.383)\n    test 407 circum3 (pygeodesy.sphericalTrigonometry) .d1: 57691.282  FAILED, KNOWN, expected 57792.858\n    test 408 circum3 (pygeodesy.sphericalTrigonometry) .d2: 57691.282  FAILED, KNOWN, expected 57792.859\n    test 409 circum3 (pygeodesy.sphericalTrigonometry) .d3: 57691.282  FAILED, KNOWN, expected 57792.859\n    test 410 circum3 (pygeodesy.sphericalTrigonometry) .datum: name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84\n    test 411 circum3 (pygeodesy.sphericalTrigonometry) .Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n\n    test 412 radii11: Radii11Tuple(rA=7237.243793, rB=1825.695409, rC=2.255158, cR=57690.493993, rIn=57.33247, riS=2.087691, roS=2.443616, a=1827.950567, b=7239.49895, c=9062.939201, s=9065.194359)\n    test 413 circum4 (pygeodesy.sphericalTrigonometry) .radius: 3185634.993  FAILED, KNOWN, expected 3184256.748\n    test 414 circum4 (pygeodesy.sphericalTrigonometry) .center: 43.051859°N, 002.94463°E, -3185373.78m  FAILED, KNOWN, expected 43.054367°N, 002.942573°E, -3183993.92m\n    test 415 circum4 (pygeodesy.sphericalTrigonometry) .rank: 3\n    test 416 circum4 (pygeodesy.sphericalTrigonometry) .residuals: ()\n    test 417 circum4 (pygeodesy.sphericalTrigonometry) .d1: 57691.283  FAILED, KNOWN, expected 57818.033\n    test 418 circum4 (pygeodesy.sphericalTrigonometry) .d2: 57691.283  FAILED, KNOWN, expected 57834.176\n    test 419 circum4 (pygeodesy.sphericalTrigonometry) .d3: 57691.283  FAILED, KNOWN, expected 57830.992\n    test 420 circum4 (pygeodesy.sphericalTrigonometry) .datum: name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84\n    test 421 circum4 (pygeodesy.sphericalTrigonometry) .Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 422 radii11: Radii11Tuple(rA=328257.82694, rB=782282.176109, rC=782282.176109, cR=782304.746354, rIn=325773.738834, riS=85162.638484, roS=INF, a=1564564.352218, b=1110540.003049, c=1110540.003049, s=1892822.179158)\n    test 423 circin6 (pygeodesy.sphericalTrigonometry) .rB+rC: 1564564.352\n    test 424 circin6 (pygeodesy.sphericalTrigonometry) .rC+pA: 1110540.003\n    test 425 circin6 (pygeodesy.sphericalTrigonometry) .rA+rB: 1110540.003\n    test 426 circin6 (pygeodesy.sphericalTrigonometry) .radius: 325773.739  FAILED, KNOWN, expected 325058.721\n    test 427 circin6 (pygeodesy.sphericalTrigonometry) .center: 02.938473°N, 002.942346°E, -40128.57m  FAILED, KNOWN, expected 02.948531°N, 002.932537°E, -40041.19m\n    test 428 circin6 (pygeodesy.sphericalTrigonometry) .deltas: (0.0, 0.0, 0.094337)  FAILED, KNOWN, expected (0.0, 0.0, 0.090491)\n    test 429 circin6 (pygeodesy.sphericalTrigonometry) .cA: 05.019001°N, 005.038369°E, -48209.76m  FAILED, KNOWN, expected 05.04314°N, 005.014578°E, -48104.09m\n    test 430 circin6 (pygeodesy.sphericalTrigonometry) .cB: 00.0°N, 002.951508°E, -20185.00m  FAILED, KNOWN, expected 00.0°N, 002.941713°E, -20168.62m\n    test 431 circin6 (pygeodesy.sphericalTrigonometry) .cC: 02.951508°N, 000.0°E, -20185.00m  FAILED, KNOWN, expected 02.961566°N, 000.0°E, -20113.46m\n    test 432 circin6 (pygeodesy.sphericalTrigonometry) .dA: 327983.380  FAILED, KNOWN, expected 327263.596\n    test 433 circin6 (pygeodesy.sphericalTrigonometry) .dB: 326745.373  FAILED, KNOWN, expected 326036.153\n    test 434 circin6 (pygeodesy.sphericalTrigonometry) .dC: 326745.373  FAILED, KNOWN, expected 326020.432\n\n    test 435 area cw/ccw: 1.0\n\n    testLatLon(pygeodesy.ellipsoidalNvector, 25.05.12)\n    test 436 isEllipsoidal: True\n    test 437 isSpherical: False\n    test 438 lat/lonDMS: 52.20472°N, 000.14056°E\n    test 439 lat/lonDMS F_DM: 52°12.283′N, 000°08.434′E\n    test 440 lat/lonDMS F_DM: 52°12.2832′N, 000°08.4336′E\n    test 441 lat/lonDMS F_DMS: 52°12′17″N, 000°08′26″E\n    test 442 lat/lonDMS F_DMS: 52°12′17.0″N, 000°08′26.0″E\n    test 443 lat/lonDMS F_RAD: 0.911144N, 0.002453E\n    test 444 isequalTo: True\n    test 445 isequalTo: True\n    test 446 latlon2: 52.20472, 0.14056\n    test 447 latlon2: 52.2047, 0.1406\n    test 448 latlon2: 52.205, 0.141\n    test 449 latlon2: 52.2, 0.14\n    test 450 latlon2: 52.2, 0.1\n    test 451 latlon2: 52.0, 0.0\n    test 452 chordTo: 12029263.15\n    test 453 chordTo: 12029049.69\n    test 454 copy: True\n    test 455 __eq__: True\n    test 456 __ne__: False\n    test 457 equirectangularTo: 404329.56\n    test 458 distanceTo: 404279.720589\n    test 459 distanceTo: 404279.720589\n    test 460 distanceTo: 3972863\n    test 461 distanceTo: 18013602.92\n    test 462 distanceTo: 20015114.35  FAILED, KNOWN, expected 20003931.46\n    test 463 intermediateTo: 51.372294°N, 000.707192°E\n    test 464 intermediateTo: True\n    test 465 intermediateTo: 404279.721\n    test 466 intermediateTo+5: 35.560239°N, 008.833512°E\n    test 467 intermediateTo+5: 4.885\n    test 468 intermediateTo-4: 64.570387°N, 013.156352°W\n    test 469 intermediateTo-4: 3.885\n    test 470 intermediateTo-h: 125.000\n    test 471 midpointTo: 50.536327°N, 001.274614°E\n    test 472 neareston6: (LatLon(45°00′00.0″N, 001°00′00.0″E), 4755443.4294, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E))\n    test 473 neareston6: (LatLon(45°30′03.94″N, 002°00′00.0″E), 39078.729285, 1.501072, 2, LatLon(45°00′00.0″N, 002°00′00.0″E), LatLon(46°00′00.0″N, 002°00′00.0″E))\n    test 474 chordTo: 125203.963\n    test 475 cosineAndoyerLambertTo: 125205.962\n    test 476 cosineAndoyerLambertTo: 125205.962\n    test 477 cosineForsyheAndoyerLambertTo: 125205.965\n    test 478 cosineForsyheAndoyerLambertTo: 125205.965\n    test 479 cosineLawTo: 124801.098\n    test 480 cosineLawTo: 124801.098\n    test 481 equirectangularTo: 124804.754\n    test 482 equirectangularTo: 124804.754\n    test 483 euclideanTo: 130015.089\n    test 484 euclideanTo: 130015.089\n    test 485 flatLocalTo: 125209.633\n    test 486 flatLocalTo: 125209.633\n    test 487 flatPolarTo: 133663.257\n    test 488 flatPolarTo: 133663.257\n    test 489 hartzell: 53.3206°N, 001.7297°W\n    test 490 hartzell: 53.349541°N, 001.7297°W\n    test 491 height4: 1.04135197254e-09  FAILED, KNOWN, expected 0.0\n    test 492 height4: (3820333.9, -115367.0, 5097204.4, -6584.9)\n    test 493 height4: 53°19′14.2″N, 001°43′46.9″W\n    test 494 height4: 53°19′14.2″N, 001°43′46.9″W\n    test 495 haversineTo: 124801.098\n    test 496 haversineTo: 124801.098\n    test 497 hubenyTo: <bound method LatLon.flatLocalTo of LatLon(53°19′14.16″N, 001°43′46.92″W)>\n    test 498 hubenyTo: <bound method LatLon.flatLocalTo of LatLon(53°11′19.32″N, 000°08′00.24″E)>\n    test 499 thomasTo: 125206.188\n    test 500 thomasTo: 125206.188\n    test 501 vincentysTo: 124801.098\n    test 502 vincentysTo: 124801.098\n    test 503 isclockwise: False\n    test 504 isclockwise*: False\n    test 505 isclockwise: True\n    test 506 isclockwise*: True\n    test 507 isclockwise: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 508 isclockwise*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 509 isclockwise: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 510 isclockwise*: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 511 isconvex: False\n    test 512 isconvex*: False\n    test 513 isconvex: True\n    test 514 isconvex*: True\n    test 515 isconvex: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 516 isconvex*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 517 isenclosedBy1: True\n    test 518 isenclosedBy1*: True\n    test 519 isenclosedBy2: False\n    test 520 isenclosedBy2*: False\n    test 521 isenclosedBy3: False\n    test 522 isenclosedBy3*: False\n    test 523 isenclosedBy4: False\n    test 524 isenclosedBy4*: False\n    test 525 isenclosedBy5: False\n    test 526 isenclosedBy5*: False\n    test 527 isenclosedBy6: True\n    test 528 isenclosedBy6*: True\n    test 529 isenclosedBy7: True\n    test 530 isenclosedBy7*: True\n    test 531 isenclosedBy-CCW: True\n    test 532 isenclosedBy-CW : True\n    test 533 isenclosedBy-CCW: True\n    test 534 compassAngleTo: 100.017\n    test 535 compassAngleTo: 105.599\n    test 536 compassAngleTo: 280.017\n    test 537 compassAngleTo: 285.599\n    test 538 equirectangularTo: 592.185\n    test 539 distanceTo: 591.831\n    test 540 compassAngleTo: 0.0\n    test 541 compassAngleTo: 45.0\n    test 542 compassAngleTo: 90.0\n    test 543 compassAngleTo: 180.0\n    test 544 compassAngleTo: 225.0\n    test 545 compassAngleTo: 315.0\n    test 546 compassAngleTo: 270.0\n    test 547 compassAngleTo: 359.4\n    test 548 latlon2: (53.0, 1.0)\n    test 549 philam2: (0.93, 0.02)\n    test 550 compassAngleTo: 31\n    test 551 compassAngleTo: 45\n\n    test 552 boundsOf: <class 'pygeodesy.namedTuples.Bounds2Tuple'>\n    test 553 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 554 latlon2: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 555 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 556 isequalTo./test/testLatLon.py:276: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.ellipsoidalVincenty.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', p.cosineAndoyerLambertTo(q), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:277: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.ellipsoidalVincenty.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', q.cosineAndoyerLambertTo(p), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:279: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.ellipsoidalVincenty.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', p.cosineForsytheAndoyerLambertTo(q), '124801.098' if Sph else '125205.965', fmt='%.3f')\n./test/testLatLon.py:280: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.ellipsoidalVincenty.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', q.cosineForsytheAndoyerLambertTo(p), '124801.098' if Sph else '125205.965', fmt='%.3f')\n./pygeodesy/ellipsoidalBase.py:443: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  _ = self.datum.ellipsoid.geodesic\n./pygeodesy/azimuthal.py:636: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return self.datum.ellipsoid.geodesic\n: <type 'bool'>\n    test 557 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 558 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 559 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 560 xyz3: <type 'tuple'>\n    test 561 xyzh: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 562 compassAngleTo: <type 'float'>\n    test 563 cosineLawTo: <type 'float'>\n    test 564 euclideanTo: <type 'float'>\n    test 565 flatLocalTo: <type 'float'>\n    test 566 flatPolarTo: <type 'float'>\n    test 567 haversineTo: <type 'float'>\n    test 568 hubenyTo: <type 'float'>\n    test 569 vincentysTo: <type 'float'>\n    test 570 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 571 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 572 toLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 573 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 574 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 575 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 576 toVector: (3934960.466675, 0.0, 5002803.345483)\n    test 577 toVector3d: (0.61823, 0.0, 0.786)\n    test 578 trilaterate5 (pygeodesy.ellipsoidalNvector) .min: 223.305\n    test 579 trilaterate5 (pygeodesy.ellipsoidalNvector) .point: 42.67456065°N, 002.49539502°E\n    test 580 trilaterate5 (pygeodesy.ellipsoidalNvector) .min- is .maxPoint: True\n    test 581 trilaterate5 (pygeodesy.ellipsoidalNvector) .n: 1\n    test 582 trilaterate5 (pygeodesy.ellipsoidalNvector) .error: ellipsoidalNvector.LatLon.trilaterate5(area=True), MRO(nvectorBase.LatLonNvectorBase, ellipsoidalBase.LatLonEllipsoidalBase, latlonBase.LatLonBase, named._NamedBase, ecefLocals._EcefLocal, named._Named): not implemented\n\n    test 583 radii11: Radii11Tuple(rA=7705.84217, rB=1367.057272, rC=498.160185, cR=4897.488519, rIn=740.470746, riS=179.544791, roS=5964.029657, a=1865.217457, b=8204.002354, c=9072.899442, s=9571.059626)\n    test 584 circum4 (pygeodesy.ellipsoidalNvector) .radius: 3184196.839  FAILED, KNOWN, expected 3184256.748\n    test 585 circum4 (pygeodesy.ellipsoidalNvector) .center: 42.674776°N, 002.495488°E, -3184194.95m  FAILED, KNOWN, expected 43.054367°N, 002.942573°E, -3183993.92m\n    test 586 circum4 (pygeodesy.ellipsoidalNvector) .rank: 3\n    test 587 circum4 (pygeodesy.ellipsoidalNvector) .residuals: ()\n    test 588 circum4 (pygeodesy.ellipsoidalNvector) .d1: 4886.122  FAILED, KNOWN, expected 57818.033\n    test 589 circum4 (pygeodesy.ellipsoidalNvector) .d2: 4904.641  FAILED, KNOWN, expected 57834.176\n    test 590 circum4 (pygeodesy.ellipsoidalNvector) .d3: 4909.920  FAILED, KNOWN, expected 57830.992\n    test 591 circum4 (pygeodesy.ellipsoidalNvector) .datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 592 circum4 (pygeodesy.ellipsoidalNvector) .Ecef: <class 'pygeodesy.ecef.EcefVeness'>\n    test 593 radii11: Radii11Tuple(rA=327537.482637, rB=776914.262482, rC=784245.052526, cR=780602.180901, rIn=325058.721103, riS=84975.664195, roS=INF, a=1561159.315008, b=1111782.535163, c=1104451.745119, s=1888696.797645)\n    test 594 circin6 (pygeodesy.ellipsoidalNvector) .rB+rC: 1561159.315\n    test 595 circin6 (pygeodesy.ellipsoidalNvector) .rC+pA: 1111782.535\n    test 596 circin6 (pygeodesy.ellipsoidalNvector) .rA+rB: 1104451.745\n    test 597 circin6 (pygeodesy.ellipsoidalNvector) .radius: 325058.721\n    test 598 circin6 (pygeodesy.ellipsoidalNvector) .center: 02.948531°N, 002.932537°E, -40041.19m\n    test 599 circin6 (pygeodesy.ellipsoidalNvector) .deltas: (0.0, 0.0, 0.267132)  FAILED, KNOWN, expected (0.0, 0.0, 0.090491)\n    test 600 circin6 (pygeodesy.ellipsoidalNvector) .cA: 05.04314°N, 005.014578°E, -48104.09m\n    test 601 circin6 (pygeodesy.ellipsoidalNvector) .cB: 00.0°N, 002.941713°E, -20168.62m\n    test 602 circin6 (pygeodesy.ellipsoidalNvector) .cC: 02.961566°N, 000.0°E, -20113.46m\n    test 603 circin6 (pygeodesy.ellipsoidalNvector) .dA: 327992.318  FAILED, KNOWN, expected 327263.596\n    test 604 circin6 (pygeodesy.ellipsoidalNvector) .dB: 327863.711  FAILED, KNOWN, expected 326036.153\n    test 605 circin6 (pygeodesy.ellipsoidalNvector) .dC: 325653.216  FAILED, KNOWN, expected 326020.432\n\n    testLatLon(pygeodesy.ellipsoidalVincenty, 25.05.26)\n    test 606 isEllipsoidal: True\n    test 607 isSpherical: False\n    test 608 lat/lonDMS: 52.20472°N, 000.14056°E\n    test 609 lat/lonDMS F_DM: 52°12.283′N, 000°08.434′E\n    test 610 lat/lonDMS F_DM: 52°12.2832′N, 000°08.4336′E\n    test 611 lat/lonDMS F_DMS: 52°12′17″N, 000°08′26″E\n    test 612 lat/lonDMS F_DMS: 52°12′17.0″N, 000°08′26.0″E\n    test 613 lat/lonDMS F_RAD: 0.911144N, 0.002453E\n    test 614 isequalTo: True\n    test 615 isequalTo: True\n    test 616 latlon2: 52.20472, 0.14056\n    test 617 latlon2: 52.2047, 0.1406\n    test 618 latlon2: 52.205, 0.141\n    test 619 latlon2: 52.2, 0.14\n    test 620 latlon2: 52.2, 0.1\n    test 621 latlon2: 52.0, 0.0\n    test 622 chordTo: 12029263.15\n    test 623 chordTo: 12029049.69\n    test 624 initialBearingTo: 156.1106\n    test 625 initialBearingTo: 65.9335\n    test 626 initialBearingTo: 0.0\n    test 627 initialBearingTo: 180.0\n    test 628 finalBearingTo: 157.8345\n    test 629 finalBearingTo: 93.9034\n    test 630 bearingTo2: 156.1106, 157.8345\n    test 631 ispolar: True\n    test 632 copy: True\n    test 633 __eq__: True\n    test 634 __ne__: False\n    test 635 equirectangularTo: 404329.56\n    test 636 distanceTo: 404607.805988\n    test 637 distanceTo: 404607.805988\n    test 638 distanceTo: 3981601\n    test 639 antipodal: False\n    test 640 distanceTo dateline: 19959679.267\n    test 641 distanceTo unrolled: 19959679.267\n    test 642 antipodal: False\n    test 643 distanceTo dateline: 9513998\n    test 644 distanceTo unrolled: 9513998\n    test 645 distanceTo: 18012714.66\n    test 646 distanceTo: ambiguous: LatLon(00°00′00.0″N, 000°00′00.0″E) antipodal to LatLon(00°00′00.0″N, 180°00′00.0″E)  FAILED, KNOWN, expected ambiguous, antipodal ...\n    test 647 distanceTo3 dateline: 19959679.2674, 161.0677, 18.8252\n    test 648 distanceTo3 dateline: 9513997.9901, 42.9164, 138.8903\n    test 649 distanceTo3 dateline: 19959679.2674, 161.0677, 18.8252\n    test 650 distanceTo3 dateline: 9513997.9901, 42.9164, 138.8903\n    test 651 intermediateTo: 51.372275°N, 000.707253°E\n    test 652 intermediateTo: True\n    test 653 intermediateTo: 404607.806\n    test 654 intermediateTo+5: 35.139582°N, 008.994368°E\n    test 655 intermediateTo+5: 5.000\n    test 656 intermediateTo-4: 64.894124°N, 013.705689°W\n    test 657 intermediateTo-4: 4.000\n    test 658 intermediateTo-h: 125.000\n    test 659 midpointTo: 50.536583°N, 001.274507°E\n    test 660 destination: 51.513526°N, 000.098038°W\n    test 661 destination: 51°30′49″N, 000°05′53″W\n    test 662 destination: 33°57′N, 118°24′W\n    test 663 destination: 33.950367°N, 118.399012°W\n    test 664 destination: 0.592546N, 2.066453W\n    test 665 destination: 32.11195529°N, 064.56074722°E  FAILED, KNOWN, expected 32.11195529°N, 063.95925278°E\n    test 666 neareston6: (LatLon(45°00′00.0″N, 001°00′00.0″E), 4755443.4294, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E))\n    test 667 neareston6: (LatLon(45°30′03.94″N, 002°00′00.0″E), 39078.729285, 1.501072, 2, LatLon(45°00′00.0″N, 002°00′00.0″E), LatLon(46°00′00.0″N, 002°00′00.0″E))\n    test 668 chordTo: 125203.963\n    test 669 cosineAndoyerLambertTo: 125205.962\n    test 670 cosineAndoyerLambertTo: 125205.962\n    test 671 cosineForsyheAndoyerLambertTo: 125205.965\n    test 672 cosineForsyheAndoyerLambertTo: 125205.965\n    test 673 cosineLawTo: 124801.098\n    test 674 cosineLawTo: 124801.098\n    test 675 equirectangularTo: 124804.754\n    test 676 equirectangularTo: 124804.754\n    test 677 euclideanTo: 130015.089\n    test 678 euclideanTo: 130015.089\n    test 679 flatLocalTo: 125209.633\n    test 680 flatLocalTo: 125209.633\n    test 681 flatPolarTo: 133663.257\n    test 682 flatPolarTo: 133663.257\n    test 683 hartzell: 53.3206°N, 001.7297°W\n    test 684 hartzell: 53.349541°N, 001.7297°W\n    test 685 height4: 1.04135197254e-09  FAILED, KNOWN, expected 0.0\n    test 686 height4: (3820333.9, -115367.0, 5097204.4, -6584.9)\n    test 687 height4: 53°19′14.2″N, 001°43′46.9″W\n    test 688 height4: 53°19′14.2″N, 001°43′46.9″W\n    test 689 haversineTo: 124801.098\n    test 690 haversineTo: 124801.098\n    test 691 hubenyTo: <bound method LatLon.flatLocalTo of LatLon(53°19′14.16″N, 001°43′46.92″W)>\n    test 692 hubenyTo: <bound method LatLon.flatLocalTo of LatLon(53°11′19.32″N, 000°08′00.24″E)>\n    test 693 thomasTo: 125206.188\n    test 694 thomasTo: 125206.188\n    test 695 vincentysTo: 124801.098\n    test 696 vincentysTo: 124801.098\n    test 697 isclockwise: False\n    test 698 isclockwise*: False\n    test 699 isclockwise: True\n    test 700 isclockwise*: True\n    test 701 isclockwise: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 702 isclockwise*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 703 isclockwise: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 704 isclockwise*: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 705 isconvex: False\n    test 706 isconvex*: False\n    test 707 isconvex: True\n    test 708 isconvex*: True\n    test 709 isconvex: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 710 isconvex*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 711 isenclosedBy1: True\n    test 712 isenclosedBy1*: True\n    test 713 isenclosedBy2: False\n    test 714 isenclosedBy2*: False\n    test 715 isenclosedBy3: False\n    test 716 isenclosedBy3*: False\n    test 717 isenclosedBy4: False\n    test 718 isenclosedBy4*: False\n    test 719 isenclosedBy5: False\n    test 720 isenclosedBy5*: False\n    test 721 isenclosedBy6: True\n    test 722 isenclosedBy6*: True\n    test 723 isenclosedBy7: True\n    test 724 isenclosedBy7*: True\n    test 725 isenclosedBy-CCW: True\n    test 726 isenclosedBy-CW : True\n    test 727 isenclosedBy-CCW: True\n    test 728 initialBearingTo: 102.392291\n    test 729 compassAngleTo: 100.017\n    test 730 compassAngleTo: 105.599\n    test 731 initialBearingTo: 288.676039\n    test 732 compassAngleTo: 280.017\n    test 733 compassAngleTo: 285.599\n    test 734 equirectangularTo: 592.185\n    test 735 distanceTo: 593.571\n    test 736 bearingTo: 0.0\n    test 737 compassAngleTo: 0.0\n    test 738 bearingTo: 45.2  FAILED, KNOWN, expected 45.0\n    test 739 compassAngleTo: 45.0\n    test 740 bearingTo: 90.0\n    test 741 compassAngleTo: 90.0\n    test 742 bearingTo: 180.0\n    test 743 compassAngleTo: 180.0\n    test 744 bearingTo: 225.2  FAILED, KNOWN, expected 225.0\n    test 745 compassAngleTo: 225.0\n    test 746 bearingTo: 314.8  FAILED, KNOWN, expected 315.0\n    test 747 compassAngleTo: 315.0\n    test 748 bearingTo: 270.0\n    test 749 compassAngleTo: 270.0\n    test 750 bearingTo: 360.0  FAILED, KNOWN, expected 359.4\n    test 751 compassAngleTo: 359.4\n    test 752 latlon2: (53.0, 1.0)\n    test 753 philam2: (0.93, 0.02)\n    test 754 bearingTo: 31\n    test 755 compassAngleTo: 31\n    test 756 compassAngleTo: 45\n\n    test 757 boundsOf: <class 'pygeodesy.namedTuples.Bounds2Tuple'>\n    test 758 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 759 latlon2: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 760 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 761 isequalTo: <type 'bool'>\n    test 762 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 763 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 764 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 765 xyz3: <type 'tuple'>\n    test 766 xyzh: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 767 compassAngleTo: <type 'float'>\n    test 768 cosineLawTo: <type 'float'>\n    test 769 euclideanTo: <type 'float'>\n    test 770 flatLocalTo: <type 'float'>\n    test 771 flatPolarTo: <type 'float'>\n    test 772 haversineTo: <type 'float'>\n    test 773 hubenyTo: <type 'float'>\n    test 774 vincentysTo: <type 'float'>\n    test 775 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 776 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 777 toLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 778 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 779 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 780 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 781 toNvector: (0.615661, 0.0, 0.788011, 0)\n    test 782 toVector: (3934960.466675, 0.0, 5002803.345483)\n    test 783 toVector3d: (0.61823, 0.0, 0.786)\n\n    test 784 trilaterate5 (pygeodesy.ellipsoidalVincenty) .min: 305.091\n    test 785 trilaterate5 (pygeodesy.ellipsoidalVincenty) .point: 42.66933643°N, 002.48620262°E\n    test 786 trilaterate5 (pygeodesy.ellipsoidalVincenty) .max: 1592.545\n    test 787 trilaterate5 (pygeodesy.ellipsoidalVincenty) .point: 42.65141232°N, 002.46816989°E\n    test 788 trilaterate5 (pygeodesy.ellipsoidalVincenty) .n: 3\n    test 789 trilaterate5 (pygeodesy.ellipsoidalVincenty) .min: 127.229\n    test 790 trilaterate5 (pygeodesy.ellipsoidalVincenty) .max: 152.612\n    test 791 trilaterate5 (pygeodesy.ellipsoidalVincenty) .point: 42.67815375°N, 002.49950041°E\n    test 792 trilaterate5 (pygeodesy.ellipsoidalVincenty) .n: 2\n    test 793 trilaterate5 (pygeodesy.ellipsoidalVincenty) .min: 2400.293\n    test 794 trilaterate5 (pygeodesy.ellipsoidalVincenty) .max: 2400.293\n    test 795 trilaterate5 (pygeodesy.ellipsoidalVincenty) .point: 42.66128984°N, 002.47973818°E\n    test 796 trilaterate5 (pygeodesy.ellipsoidalVincenty) .min- is .maxPoint: True\n    test 797 trilaterate5 (pygeodesy.ellipsoidalVincenty) .n: 1\n    test 798 trilaterate5 (pygeodesy.ellipsoidalVincenty) .min: 1343.743\n    test 799 trilaterate5 (pygeodesy.ellipsoidalVincenty) .point: 42.69131964°N, 002.50112167°E\n    test 800 trilaterate5 (pygeodesy.ellipsoidalVincenty) .max: 1445.554\n    test 801 trilaterate5 (pygeodesy.ellipsoidalVincenty) .point: 42.67815375°N, 002.49950041°E\n    test 802 trilaterate5 (pygeodesy.ellipsoidalVincenty) .n: 2\n    test 803 radii11: Radii11Tuple(rA=7244.792747, rB=1828.106695, rC=2.25502, cR=57792.067128, rIn=57.366968, riS=2.087668, roS=2.443334, a=1830.361715, b=7247.047766, c=9072.899442, s=9075.154461)\n    test 804 circum3 (pygeodesy.ellipsoidalVincenty) .radius: 57792.067\n    test 805 circum3 (pygeodesy.ellipsoidalVincenty) .center: 43.053532°N, 002.943255°E, -261.66m\n    test 806 circum3 (pygeodesy.ellipsoidalVincenty) .deltas: (-0.0, 0.0, 11.858)  FAILED, KNOWN, expected (0.0, 0.0, 11.383)\n    test 807 circum3 (pygeodesy.ellipsoidalVincenty) .d1: 57792.858\n    test 808 circum3 (pygeodesy.ellipsoidalVincenty) .d2: 57792.859\n    test 809 circum3 (pygeodesy.ellipsoidalVincenty) .d3: 57792.859\n    test 810 circum3 (pygeodesy.ellipsoidalVincenty) .datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 811 circum3 (pygeodesy.ellipsoidalVincenty) .Ecef: <class 'pygeodesy.ecef.EcefVeness'>\n\n    test 812 radii11: Radii11Tuple(rA=7244.792747, rB=1828.106695, rC=2.25502, cR=57792.067128, rIn=57.366968, riS=2.087668, roS=2.443334, a=1830.361715, b=7247.047766, c=9072.899442, s=9075.154461)\n    test 813 circum4 (pygeodesy.ellipsoidalVincenty) .radius: 3184256.748\n    test 814 circum4 (pygeodesy.ellipsoidalVincenty) .center: 43.054367°N, 002.942573°E, -3183993.92m\n    test 815 circum4 (pygeodesy.ellipsoidalVincenty) .rank: 3\n    test 816 circum4 (pygeodesy.ellipsoidalVincenty) .residuals: ()\n    test 817 circum4 (pygeodesy.ellipsoidalVincenty) .d1: 57818.033\n    test 818 circum4 (pygeodesy.ellipsoidalVincenty) .d2: 57834.176\n    test 819 circum4 (pygeodesy.ellipsoidalVincenty) .d3: 57830.992\n    test 820 circum4 (pygeodesy.ellipsoidalVincenty) .datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 821 circum4 (pygeodesy.ellipsoidalVincenty) .Ecef: <class 'pygeodesy.ecef.EcefV./test/testLatLon.py:627: DeprecationWarning: function L{areaOf<pygeodesy.ellipsoidalVincenty.areaOf>} has been DEPRECATED, use function L{ellipsoidalExact.areaOf} or L{ellipsoidalKarney.areaOf}.\n  r = a(reversed(b))\n./pygeodesy/ellipsoidalKarney.py:139: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return fabs(_polygon(datum.ellipsoid.geodesic, points, True, False, wrap, polar))\n./test/testLatLon.py:628: DeprecationWarning: function L{areaOf<pygeodesy.ellipsoidalVincenty.areaOf>} has been DEPRECATED, use function L{ellipsoidalExact.areaOf} or L{ellipsoidalKarney.areaOf}.\n  f = a(b)  # ccw\n./pygeodesy/ellipsoidalKarney.py:94: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return self.datum.ellipsoid.geodesic\n./test/testLatLon.py:276: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.ellipsoidalKarney.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', p.cosineAndoyerLambertTo(q), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:277: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.ellipsoidalKarney.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', q.cosineAndoyerLambertTo(p), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:279: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.ellipsoidalKarney.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', p.cosineForsytheAndoyerLambertTo(q), '124801.098' if Sph else '125205.965', fmt='%.3f')\n./test/testLatLon.py:280: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.ellipsoidalKarney.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', q.cosineForsytheAndoyerLambertTo(p), '124801.098' if Sph else '125205.965', fmt='%.3f')\neness'>\n    test 822 radii11: Radii11Tuple(rA=327537.482637, rB=776914.262482, rC=784245.052526, cR=780602.180901, rIn=325058.721103, riS=84975.664195, roS=INF, a=1561159.315008, b=1111782.535163, c=1104451.745119, s=1888696.797645)\n    test 823 circin6 (pygeodesy.ellipsoidalVincenty) .rB+rC: 1561159.315\n    test 824 circin6 (pygeodesy.ellipsoidalVincenty) .rC+pA: 1111782.535\n    test 825 circin6 (pygeodesy.ellipsoidalVincenty) .rA+rB: 1104451.745\n    test 826 circin6 (pygeodesy.ellipsoidalVincenty) .radius: 325058.721\n    test 827 circin6 (pygeodesy.ellipsoidalVincenty) .center: 02.948531°N, 002.932537°E, -40041.19m\n    test 828 circin6 (pygeodesy.ellipsoidalVincenty) .deltas: (0.0, 0.0, 0.267132)  FAILED, KNOWN, expected (0.0, 0.0, 0.090491)\n    test 829 circin6 (pygeodesy.ellipsoidalVincenty) .cA: 05.04314°N, 005.014578°E, -48104.09m\n    test 830 circin6 (pygeodesy.ellipsoidalVincenty) .cB: 00.0°N, 002.941713°E, -20168.62m\n    test 831 circin6 (pygeodesy.ellipsoidalVincenty) .cC: 02.961566°N, 000.0°E, -20113.46m\n    test 832 circin6 (pygeodesy.ellipsoidalVincenty) .dA: 327263.596\n    test 833 circin6 (pygeodesy.ellipsoidalVincenty) .dB: 326036.153\n    test 834 circin6 (pygeodesy.ellipsoidalVincenty) .dC: 326020.432\n\n    test 835 area cw/ccw: 1.0\n\n    testLatLon(pygeodesy.ellipsoidalKarney, 25.05.27)\n    test 836 isEllipsoidal: True\n    test 837 isSpherical: False\n    test 838 lat/lonDMS: 52.20472°N, 000.14056°E\n    test 839 lat/lonDMS F_DM: 52°12.283′N, 000°08.434′E\n    test 840 lat/lonDMS F_DM: 52°12.2832′N, 000°08.4336′E\n    test 841 lat/lonDMS F_DMS: 52°12′17″N, 000°08′26″E\n    test 842 lat/lonDMS F_DMS: 52°12′17.0″N, 000°08′26.0″E\n    test 843 lat/lonDMS F_RAD: 0.911144N, 0.002453E\n    test 844 isequalTo: True\n    test 845 isequalTo: True\n    test 846 latlon2: 52.20472, 0.14056\n    test 847 latlon2: 52.2047, 0.1406\n    test 848 latlon2: 52.205, 0.141\n    test 849 latlon2: 52.2, 0.14\n    test 850 latlon2: 52.2, 0.1\n    test 851 latlon2: 52.0, 0.0\n    test 852 chordTo: 12029263.15\n    test 853 chordTo: 12029049.69\n    test 854 initialBearingTo: 156.1106\n    test 855 initialBearingTo: 65.9335\n    test 856 initialBearingTo: 0.0\n    test 857 initialBearingTo: 180.0\n    test 858 finalBearingTo: 157.8345\n    test 859 finalBearingTo: 93.9034\n    test 860 bearingTo2: 156.1106, 157.8345\n    test 861 ispolar: True\n    test 862 copy: True\n    test 863 __eq__: True\n    test 864 __ne__: False\n    test 865 equirectangularTo: 404329.56\n    test 866 distanceTo: 404607.805988\n    test 867 distanceTo: 404607.805988\n    test 868 distanceTo: 3981601\n    test 869 antipodal: False\n    test 870 distanceTo dateline: 19959679.267\n    test 871 distanceTo unrolled: 19959679.267\n    test 872 antipodal: False\n    test 873 distanceTo dateline: 9513998\n    test 874 distanceTo unrolled: 9513998\n    test 875 distanceTo: 18012714.66\n    test 876 distanceTo: 20003931.46\n    test 877 distanceTo3 dateline: 19959679.2674, 161.0677, 18.8252\n    test 878 distanceTo3 dateline: 9513997.9901, 42.9164, 138.8903\n    test 879 distanceTo3 dateline: 19959679.2674, 161.0677, 18.8252\n    test 880 distanceTo3 dateline: 9513997.9901, 42.9164, 138.8903\n    test 881 intermediateTo: 51.372275°N, 000.707253°E\n    test 882 intermediateTo: True\n    test 883 intermediateTo: 404607.806\n    test 884 intermediateTo+5: 35.139582°N, 008.994368°E\n    test 885 intermediateTo+5: 5.000\n    test 886 intermediateTo-4: 64.894124°N, 013.705689°W\n    test 887 intermediateTo-4: 4.000\n    test 888 intermediateTo-h: 125.000\n    test 889 midpointTo: 50.536583°N, 001.274507°E\n    test 890 destination: 51.513526°N, 000.098038°W\n    test 891 destination: 51°30′49″N, 000°05′53″W\n    test 892 destination: 33°57′N, 118°24′W\n    test 893 destination: 33.950367°N, 118.399012°W\n    test 894 destination: 0.592546N, 2.066453W\n    test 895 destination: 32.11195529°N, 064.56074722°E  FAILED, KNOWN, expected 32.11195529°N, 063.95925278°E\n    test 896 neareston6: (LatLon(45°00′00.0″N, 001°00′00.0″E), 4755443.4294, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E))\n    test 897 neareston6: (LatLon(45°30′03.94″N, 002°00′00.0″E), 39078.729285, 1.501072, 2, LatLon(45°00′00.0″N, 002°00′00.0″E), LatLon(46°00′00.0″N, 002°00′00.0″E))\n    test 898 chordTo: 125203.963\n    test 899 cosineAndoyerLambertTo: 125205.962\n    test 900 cosineAndoyerLambertTo: 125205.962\n    test 901 cosineForsyheAndoyerLambertTo: 125205.965\n    test 902 cosineForsyheAndoyerLambertTo: 125205.965\n    test 903 cosineLawTo: 124801.098\n    test 904 cosineLawTo: 124801.098\n    test 905 equirectangularTo: 124804.754\n    test 906 equirectangularTo: 124804.754\n    test 907 euclideanTo: 130015.089\n    test 908 euclideanTo: 130015.089\n    test 909 flatLocalTo: 125209.633\n    test 910 flatLocalTo: 125209.633\n    test 911 flatPolarTo: 133663.257\n    test 912 flatPolarTo: 133663.257\n    test 913 hartzell: 53.3206°N, 001.7297°W\n    test 914 hartzell: 53.349541°N, 001.7297°W\n    test 915 height4: 1.04135197254e-09  FAILED, KNOWN, expected 0.0\n    test 916 height4: (3820333.9, -115367.0, 5097204.4, -6584.9)\n    test 917 height4: 53°19′14.2″N, 001°43′46.9″W\n    test 918 height4: 53°19′14.2″N, 001°43′46.9″W\n    test 919 haversineTo: 124801.098\n    test 920 haversineTo: 124801.098\n    test 921 hubenyTo: <bound method LatLon.flatLocalTo of LatLon(53°19′14.16″N, 001°43′46.92″W)>\n    test 922 hubenyTo: <bound method LatLon.flatLocalTo of LatLon(53°11′19.32″N, 000°08′00.24″E)>\n    test 923 thomasTo: 125206.188\n    test 924 thomasTo: 125206.188\n    test 925 vincentysTo: 124801.098\n    test 926 vincentysTo: 124801.098\n    test 927 isclockwise: False\n    test 928 isclockwise*: False\n    test 929 isclockwise: True\n    test 930 isclockwise*: True\n    test 931 isclockwise: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 932 isclockwise*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 933 isclockwise: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 934 isclockwise*: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 935 isconvex: False\n    test 936 isconvex*: False\n    test 937 isconvex: True\n    test 938 isconvex*: True\n    test 939 isconvex: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 940 isconvex*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 941 isenclosedBy1: True\n    test 942 isenclosedBy1*: True\n    test 943 isenclosedBy2: False\n    test 944 isenclosedBy2*: False\n    test 945 isenclosedBy3: False\n    test 946 isenclosedBy3*: False\n    test 947 isenclosedBy4: False\n    test 948 isenclosedBy4*: False\n    test 949 isenclosedBy5: False\n    test 950 isenclosedBy5*: False\n    test 951 isenclosedBy6: True\n    test 952 isenclosedBy6*: True\n    test 953 isenclosedBy7: True\n    test 954 isenclosedBy7*: True\n    test 955 isenclosedBy-CCW: True\n    test 956 isenclosedBy-CW : True\n    test 957 isenclosedBy-CCW: True\n    test 958 initialBearingTo: 102.392291\n    test 959 compassAngleTo: 100.017\n    test 960 compassAngleTo: 105.599\n    test 961 initialBearingTo: 288.676039\n    test 962 compassAngleTo: 280.017\n    test 963 compassAngleTo: 285.599\n    test 964 equirectangularTo: 592.185\n    test 965 distanceTo: 593.571\n    test 966 bearingTo: 0.0\n    test 967 compassAngleTo: 0.0\n    test 968 bearingTo: 45.2  FAILED, KNOWN, expected 45.0\n    test 969 compassAngleTo: 45.0\n    test 970 bearingTo: 90.0\n    test 971 compassAngleTo: 90.0\n    test 972 bearingTo: 180.0\n    test 973 compassAngleTo: 180.0\n    test 974 bearingTo: 225.2  FAILED, KNOWN, expected 225.0\n    test 975 compassAngleTo: 225.0\n    test 976 bearingTo: 314.8  FAILED, KNOWN, expected 315.0\n    test 977 compassAngleTo: 315.0\n    test 978 bearingTo: 270.0\n    test 979 compassAngleTo: 270.0\n    test 980 bearingTo: 0.0  FAILED, KNOWN, expected 359.4\n    test 981 compassAngleTo: 359.4\n    test 982 latlon2: (53.0, 1.0)\n    test 983 philam2: (0.93, 0.02)\n    test 984 bearingTo: 31\n    test 985 compassAngleTo: 31\n    test 986 compassAngleTo: 45\n\n    test 987 boundsOf: <class 'pygeodesy.namedTuples.Bounds2Tuple'>\n    test 988 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 989 latlon2: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 990 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 991 isequalTo: <type 'bool'>\n    test 992 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 993 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 994 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 995 xyz3: <type 'tuple'>\n    test 996 xyzh: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 997 compassAngleTo: <type 'float'>\n    test 998 cosineLawTo: <type 'float'>\n    test 999 euclideanTo: <type 'float'>\n    test 1000 flatLocalTo: <type 'float'>\n    test 1001 flatPolarTo: <type 'float'>\n    test 1002 haversineTo: <type 'float'>\n    test 1003 hubenyTo: <type 'float'>\n    test 1004 vincentysTo: <type 'float'>\n    test 1005 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 1006 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 1007 toLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 1008 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 1009 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 1010 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 1011 toNvector: (0.615661, 0.0, 0.788011, 0)\n    test 1012 toVector: (3934960.466675, 0.0, 5002803.345483)\n    test 1013 toVector3d: (0.61823, 0.0, 0.786)\n\n    test 1014 trilaterate5 (pygeodesy.ellipsoidalKarney) .min: 305.091\n    test 1015 trilaterate5 (pygeodesy.ellipsoidalKarney) .point: 42.66933643°N, 002.48620262°E\n    test 1016 trilaterate5 (pygeodesy.ellipsoidalKarney) .max: 1592.545\n    test 1017 trilaterate5 (pygeodesy.ellipsoidalKarney) .point: 42.65141232°N, 002.46816989°E\n    test 1018 trilaterate5 (pygeodesy.ellipsoidalKarney) .n: 3\n    test 1019 trilaterate5 (pygeodesy.ellipsoidalKarney) .min: 127.229\n    test 1020 trilaterate5 (pygeodesy.ellipsoidalKarney) .max: 152.612\n    test 1021 trilaterate5 (pygeodesy.ellipsoidalKarney) .point: 42.67815375°N, 002.49950041°E\n    test 1022 trilaterate5 (pygeodesy.ellipsoidalKarney) .n: 2\n    test 1023 trilaterate5 (pygeodesy.ellipsoidalKarney) .min: 2400.293\n    test 1024 trilaterate5 (pygeodesy.ellipsoidalKarney) .max: 2400.293\n    test 1025 trilaterate5 (pygeodesy.ellipsoidalKarney) .point: 42.66128984°N, 002.47973818°E\n    test 1026 trilaterate5 (pygeodesy.ellipsoidalKarney) .min- is .maxPoint: True\n    test 1027 trilaterate5 (pygeodesy.ellipsoidalKarney) .n: 1\n    test 1028 trilaterate5 (pygeodesy.ellipsoidalKarney) .min: 1343.743\n    test 1029 trilaterate5 (pygeodesy.ellipsoidalKarney) .point: 42.69131964°N, 002.50112167°E\n    test 1030 trilaterate5 (pygeodesy.ellipsoidalKarney) .max: 1445.554\n    test 1031 trilaterate5 (pygeodesy.ellipsoidalKarney) .point: 42.67815375°N, 002.49950041°E\n    test 1032 trilaterate5 (pygeodesy.ellipsoidalKarney) .n: 2\n    test 1033 radii11: Radii11Tuple(rA=7244.792747, rB=1828.106695, rC=2.25502, cR=57792.067128, rIn=57.366968, riS=2.087668, roS=2.443334, a=1830.361715, b=7247.047766, c=9072.899442, s=9075.154461)\n    test 1034 circum3 (pygeodesy.ellipsoidalKarney) .radius: 57792.067\n    test 1035 circum3 (pygeodesy.ellipsoidalKarney) .center: 43.053532°N, 002.943255°E, -261.66m\n    test 1036 circum3 (pygeodesy.ellipsoidalKarney) .deltas: (-0.0, 0.0, 11.858)  FAILED, KNOWN, expected (0.0, 0.0, 11.383)\n    test 1037 circum3 (pygeodesy.ellipsoidalKarney) .d1: 57792.858\n    test 1038 circum3 (pygeodesy.ellipsoidalKarney) .d2: 57792.859\n    test 1039 circum3 (pygeodesy.ellipsoidalKarney) .d3: 57792.859\n    test 1040 circum3 (pygeodesy.ellipsoidalKarney) .datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 1041 circum3 (pygeodesy.ellipsoidalKarney) .Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n\n    test 1042 radii11: Radii11Tuple(rA=7244.792747, rB=1828.106695, rC=2.25502, cR=57792.067128, rIn=57.366968, riS=2.087668, roS=2.443334, a=1830.361715, b=7247.047766, c=9072.899442, s=9075.154461)\n    test 1043 circum4 (pygeodesy.ellipsoidalKarney) .radius: 3184256.748\n    test 1044 circum4 (pygeodesy.ellipsoidalKarney) .center: 43.054367°N, 002.942573°E, -3183993.92m\n    test 1045 circum4 (pygeodesy.ellipsoidalKarney) .rank: 3\n    test 1046 circum4 (pygeodesy.ellipsoidalKarney) .residuals: ()\n    test 1047 circum4 (pygeodesy.ellipsoidalKarney) .d1: 57818.033\n    test 1048 circum4 (pygeodesy.ellipsoidalKarney) .d2: 57834.176\n    test 1049 circum4 (pygeodesy.ellipsoidalKarney) .d3: 57830.992\n    test 1050 circum4 (pygeodesy.ellipsoidalKarney) .datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 1051 circum4 (pygeodesy.ellipsoidalKarney) .Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 1052 radii11: Radii11Tuple(rA=327537.482637, rB=776914.262482, rC=784245.052526, cR=780602.180901, rIn=325058.721103, riS=84975.664195, roS=INF, a=1561159.315008, b=1111782.535163, c=1104451.745119, s=1888696.797645)\n    test 1053 circin6 (pygeodesy.ellipsoidalKarney) .rB+rC: 1561159.315\n    test 1054 circin6 (pygeodesy.ellipsoidalKarney) .rC+pA: 1111782.535\n    test 1055 circin6 (pygeodesy.ellipsoidalKarney) .rA+rB: 1104451.745\n    test 1056 circin6 (pygeodesy.ellipsoidalKarney) .radius: 325058.721\n    test 1057 circin6 (pygeodesy.ellipsoidalKarney) .center: 02.948531°N, 002.932537°E, -40041.19m\n    test 1058 circin6 (pygeodesy.ellipsoidalKarney) .deltas: (0.0, 0.0, 0.267132)  FAILED, KNOWN, expected (0.0, 0.0, 0.090491)\n    test 1059 circin6 (pygeodesy.ellipsoidalKarney) .cA: 05.04314°N, 005.014578°E, -48104.09m\n    test 1060 circin6 (pygeodesy.ellipsoidalKarney) .cB: 00.0°N, 002.941713°E, -20168.62m\n    test 1061 circin6 (pygeodesy.ellipsoidalKarney) .cC: 02.961566°N, 000.0°E, -20113.46m\n    test 1062 circin6 (pygeodesy.ellipsoidalKarney) .dA: 327263.596\n    test 1063 circin6 (pygeodesy.ellipsoidalKarney) .dB: 326036.153\n    test 1064 circin6 (pygeodesy.ellipsoidalKarney) .dC: 326020.432\n\n    test 1065 area cw/ccw: 1.0\n\n    testLatLon(pygeodesy.ellipsoidalGeodSolve, 25.08.28)\n    test 1066 isEllipsoidal: True\n    test 1067 isSpherical: False\n    test 1068 lat/lonDMS: 52.20472°N, 000.14056°E\n    test 1069 lat/lonDMS F_DM: 52°12.283′N, 000°08.434′E\n    test 1070 lat/lonDMS F_DM: 52°12.2832′N, 000°08.4336′E\n    test 1071 lat/lonDMS F_DMS: 52°12′17″N, 000°08′26″E\n    test 1072 lat/lonDMS F_DMS: 52°12′17.0″N, 000°08′26.0″E\n    test 1073 lat/lonDMS F_RAD: 0.911144N, 0.002453E\n    test 1074 isequalTo: True\n    test 1075 isequalTo: True\n    test 1076 latlon2: 52.20472, 0.14056\n    test 1077 latlon2: 52.2047, 0.1406\n    test 1078 latlon2: 52.205, 0.141\n    test 1079 latlon2: 52.2, 0.14\n    test 1080 latlon2: 52.2, 0.1\n    test 1081 latlon2: 52.0, 0.0\n    test 1082 chordTo: 12029263.15\n    test 1083 chordTo: 12029049.69\n    test 1084 initialBearingTo: 156.1106\n    test 1085 initialBearingTo: 65.9335\n    test 1086 initialBearingTo: 0.0\n    test 1087 initialBearingTo: 180.0\n    test 1088 finalBearingTo: 157.8345\n    test 1089 finalBearingTo: 93.9034\n    test 1090 bearingTo2: 156.1106, 157.8345\n    test 1091 ispolar: True\n    test 1092 copy: True\n    test 1093 __eq__: True\n    test 1094 __ne__: False\n    test 1095 equirectangularTo: 404329.56\n    test 1096 distanceTo: 404607.805988\n    test 1097 distanceTo: 404607.805988\n    test 1098 distanceTo: 3981601\n    test 1099 antipodal: False\n    test 1100 distanceTo dateline: 19959679.267\n    test 1101 distanceTo unrolled: 19959679.267\n    test 1102 antipodal: False\n    test 1103 distanceTo dateline: 9513998\n    test 1104 distanceTo unrolled: 9513998\n    test 1105 distanceTo: 18012714.66\n    test 1106 distanceTo: 20003931.46\n    test 1107 distanceTo3 dateline: 19959679.2674, 161.0677, 18.8252\n    test 1108 distan./test/testLatLon.py:276: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.ellipsoidalGeodSolve.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', p.cosineAndoyerLambertTo(q), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:277: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.ellipsoidalGeodSolve.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', q.cosineAndoyerLambertTo(p), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:279: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.ellipsoidalGeodSolve.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', p.cosineForsytheAndoyerLambertTo(q), '124801.098' if Sph else '125205.965', fmt='%.3f')\n./test/testLatLon.py:280: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.ellipsoidalGeodSolve.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', q.cosineForsytheAndoyerLambertTo(p), '124801.098' if Sph else '125205.965', fmt='%.3f')\n./test/testLatLon.py:276: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.ellipsoidalExact.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', p.cosineAndoyerLambertTo(q), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:277: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.ellipsoidalExact.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', q.cosineAndoyerLambertTo(p), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:279: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.ellipsoidalExact.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', p.cosineForsytheAndoyerLambertTo(q), '124801.098' if Sph else '125205.965', fmt='%.3f')\n./test/testLatLon.py:280: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.ellipsoidalExact.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', q.cosineForsytheAndoyerLambertTo(p), '124801.098' if Sph else '125205.965', fmt='%.3f')\nceTo3 dateline: 9513997.9901, 42.9164, 138.8903\n    test 1109 distanceTo3 dateline: 19959679.2674, 161.0677, 18.8252\n    test 1110 distanceTo3 dateline: 9513997.9901, 42.9164, 138.8903\n    test 1111 intermediateTo: 51.372275°N, 000.707253°E\n    test 1112 intermediateTo: True\n    test 1113 intermediateTo: 404607.806\n    test 1114 intermediateTo+5: 35.139582°N, 008.994368°E\n    test 1115 intermediateTo+5: 5.000\n    test 1116 intermediateTo-4: 64.894124°N, 013.705689°W\n    test 1117 intermediateTo-4: 4.000\n    test 1118 intermediateTo-h: 125.000\n    test 1119 midpointTo: 50.536583°N, 001.274507°E\n    test 1120 destination: 51.513526°N, 000.098038°W\n    test 1121 destination: 51°30′49″N, 000°05′53″W\n    test 1122 destination: 33°57′N, 118°24′W\n    test 1123 destination: 33.950367°N, 118.399012°W\n    test 1124 destination: 0.592546N, 2.066453W\n    test 1125 destination: 32.11195529°N, 064.56074722°E  FAILED, KNOWN, expected 32.11195529°N, 063.95925278°E\n    test 1126 neareston6: (LatLon(45°00′00.0″N, 001°00′00.0″E), 4755443.4294, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E))\n    test 1127 neareston6: (LatLon(45°30′03.94″N, 002°00′00.0″E), 39078.729285, 1.501072, 2, LatLon(45°00′00.0″N, 002°00′00.0″E), LatLon(46°00′00.0″N, 002°00′00.0″E))\n    test 1128 chordTo: 125203.963\n    test 1129 cosineAndoyerLambertTo: 125205.962\n    test 1130 cosineAndoyerLambertTo: 125205.962\n    test 1131 cosineForsyheAndoyerLambertTo: 125205.965\n    test 1132 cosineForsyheAndoyerLambertTo: 125205.965\n    test 1133 cosineLawTo: 124801.098\n    test 1134 cosineLawTo: 124801.098\n    test 1135 equirectangularTo: 124804.754\n    test 1136 equirectangularTo: 124804.754\n    test 1137 euclideanTo: 130015.089\n    test 1138 euclideanTo: 130015.089\n    test 1139 flatLocalTo: 125209.633\n    test 1140 flatLocalTo: 125209.633\n    test 1141 flatPolarTo: 133663.257\n    test 1142 flatPolarTo: 133663.257\n    test 1143 hartzell: 53.3206°N, 001.7297°W\n    test 1144 hartzell: 53.349541°N, 001.7297°W\n    test 1145 height4: 1.04135197254e-09  FAILED, KNOWN, expected 0.0\n    test 1146 height4: (3820333.9, -115367.0, 5097204.4, -6584.9)\n    test 1147 height4: 53°19′14.2″N, 001°43′46.9″W\n    test 1148 height4: 53°19′14.2″N, 001°43′46.9″W\n    test 1149 haversineTo: 124801.098\n    test 1150 haversineTo: 124801.098\n    test 1151 hubenyTo: <bound method LatLon.flatLocalTo of LatLon(53°19′14.16″N, 001°43′46.92″W)>\n    test 1152 hubenyTo: <bound method LatLon.flatLocalTo of LatLon(53°11′19.32″N, 000°08′00.24″E)>\n    test 1153 thomasTo: 125206.188\n    test 1154 thomasTo: 125206.188\n    test 1155 vincentysTo: 124801.098\n    test 1156 vincentysTo: 124801.098\n    test 1157 isclockwise: False\n    test 1158 isclockwise*: False\n    test 1159 isclockwise: True\n    test 1160 isclockwise*: True\n    test 1161 isclockwise: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 1162 isclockwise*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 1163 isclockwise: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 1164 isclockwise*: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 1165 isconvex: False\n    test 1166 isconvex*: False\n    test 1167 isconvex: True\n    test 1168 isconvex*: True\n    test 1169 isconvex: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 1170 isconvex*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 1171 isenclosedBy1: True\n    test 1172 isenclosedBy1*: True\n    test 1173 isenclosedBy2: False\n    test 1174 isenclosedBy2*: False\n    test 1175 isenclosedBy3: False\n    test 1176 isenclosedBy3*: False\n    test 1177 isenclosedBy4: False\n    test 1178 isenclosedBy4*: False\n    test 1179 isenclosedBy5: False\n    test 1180 isenclosedBy5*: False\n    test 1181 isenclosedBy6: True\n    test 1182 isenclosedBy6*: True\n    test 1183 isenclosedBy7: True\n    test 1184 isenclosedBy7*: True\n    test 1185 isenclosedBy-CCW: True\n    test 1186 isenclosedBy-CW : True\n    test 1187 isenclosedBy-CCW: True\n    test 1188 initialBearingTo: 102.392291\n    test 1189 compassAngleTo: 100.017\n    test 1190 compassAngleTo: 105.599\n    test 1191 initialBearingTo: 288.676039\n    test 1192 compassAngleTo: 280.017\n    test 1193 compassAngleTo: 285.599\n    test 1194 equirectangularTo: 592.185\n    test 1195 distanceTo: 593.571\n    test 1196 bearingTo: 0.0\n    test 1197 compassAngleTo: 0.0\n    test 1198 bearingTo: 45.2  FAILED, KNOWN, expected 45.0\n    test 1199 compassAngleTo: 45.0\n    test 1200 bearingTo: 90.0\n    test 1201 compassAngleTo: 90.0\n    test 1202 bearingTo: 180.0\n    test 1203 compassAngleTo: 180.0\n    test 1204 bearingTo: 225.2  FAILED, KNOWN, expected 225.0\n    test 1205 compassAngleTo: 225.0\n    test 1206 bearingTo: 314.8  FAILED, KNOWN, expected 315.0\n    test 1207 compassAngleTo: 315.0\n    test 1208 bearingTo: 270.0\n    test 1209 compassAngleTo: 270.0\n    test 1210 bearingTo: 0.0  FAILED, KNOWN, expected 359.4\n    test 1211 compassAngleTo: 359.4\n    test 1212 latlon2: (53.0, 1.0)\n    test 1213 philam2: (0.93, 0.02)\n    test 1214 bearingTo: 31\n    test 1215 compassAngleTo: 31\n    test 1216 compassAngleTo: 45\n\n    test 1217 boundsOf: <class 'pygeodesy.namedTuples.Bounds2Tuple'>\n    test 1218 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 1219 latlon2: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 1220 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 1221 isequalTo: <type 'bool'>\n    test 1222 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 1223 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 1224 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 1225 xyz3: <type 'tuple'>\n    test 1226 xyzh: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 1227 compassAngleTo: <type 'float'>\n    test 1228 cosineLawTo: <type 'float'>\n    test 1229 euclideanTo: <type 'float'>\n    test 1230 flatLocalTo: <type 'float'>\n    test 1231 flatPolarTo: <type 'float'>\n    test 1232 haversineTo: <type 'float'>\n    test 1233 hubenyTo: <type 'float'>\n    test 1234 vincentysTo: <type 'float'>\n    test 1235 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 1236 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 1237 toLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 1238 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 1239 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 1240 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 1241 toNvector: (0.615661, 0.0, 0.788011, 0)\n    test 1242 toVector: (3934960.466675, 0.0, 5002803.345483)\n    test 1243 toVector3d: (0.61823, 0.0, 0.786)\n\n    test 1244 trilaterate5 (pygeodesy.ellipsoidalGeodSolve) .min: 305.091\n    test 1245 trilaterate5 (pygeodesy.ellipsoidalGeodSolve) .point: 42.66933643°N, 002.48620262°E\n    test 1246 trilaterate5 (pygeodesy.ellipsoidalGeodSolve) .max: 1592.545\n    test 1247 trilaterate5 (pygeodesy.ellipsoidalGeodSolve) .point: 42.65141232°N, 002.46816989°E\n    test 1248 trilaterate5 (pygeodesy.ellipsoidalGeodSolve) .n: 3\n    test 1249 trilaterate5 (pygeodesy.ellipsoidalGeodSolve) .min: 127.229\n    test 1250 trilaterate5 (pygeodesy.ellipsoidalGeodSolve) .max: 152.612\n    test 1251 trilaterate5 (pygeodesy.ellipsoidalGeodSolve) .point: 42.67815375°N, 002.49950041°E\n    test 1252 trilaterate5 (pygeodesy.ellipsoidalGeodSolve) .n: 2\n    test 1253 trilaterate5 (pygeodesy.ellipsoidalGeodSolve) .min: 2400.293\n    test 1254 trilaterate5 (pygeodesy.ellipsoidalGeodSolve) .max: 2400.293\n    test 1255 trilaterate5 (pygeodesy.ellipsoidalGeodSolve) .point: 42.66128984°N, 002.47973818°E\n    test 1256 trilaterate5 (pygeodesy.ellipsoidalGeodSolve) .min- is .maxPoint: True\n    test 1257 trilaterate5 (pygeodesy.ellipsoidalGeodSolve) .n: 1\n    test 1258 trilaterate5 (pygeodesy.ellipsoidalGeodSolve) .min: 1343.743\n    test 1259 trilaterate5 (pygeodesy.ellipsoidalGeodSolve) .point: 42.69131964°N, 002.50112167°E\n    test 1260 trilaterate5 (pygeodesy.ellipsoidalGeodSolve) .max: 1445.554\n    test 1261 trilaterate5 (pygeodesy.ellipsoidalGeodSolve) .point: 42.67815375°N, 002.49950041°E\n    test 1262 trilaterate5 (pygeodesy.ellipsoidalGeodSolve) .n: 2\n    test 1263 radii11: Radii11Tuple(rA=7244.792747, rB=1828.106695, rC=2.25502, cR=57792.067128, rIn=57.366968, riS=2.087668, roS=2.443334, a=1830.361715, b=7247.047766, c=9072.899442, s=9075.154461)\n    test 1264 circum3 (pygeodesy.ellipsoidalGeodSolve) .radius: 57792.067\n    test 1265 circum3 (pygeodesy.ellipsoidalGeodSolve) .center: 43.053532°N, 002.943255°E, -261.66m\n    test 1266 circum3 (pygeodesy.ellipsoidalGeodSolve) .deltas: (-0.0, 0.0, 11.858)  FAILED, KNOWN, expected (0.0, 0.0, 11.383)\n    test 1267 circum3 (pygeodesy.ellipsoidalGeodSolve) .d1: 57792.858\n    test 1268 circum3 (pygeodesy.ellipsoidalGeodSolve) .d2: 57792.859\n    test 1269 circum3 (pygeodesy.ellipsoidalGeodSolve) .d3: 57792.859\n    test 1270 circum3 (pygeodesy.ellipsoidalGeodSolve) .datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 1271 circum3 (pygeodesy.ellipsoidalGeodSolve) .Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n\n    test 1272 radii11: Radii11Tuple(rA=7244.792747, rB=1828.106695, rC=2.25502, cR=57792.067128, rIn=57.366968, riS=2.087668, roS=2.443334, a=1830.361715, b=7247.047766, c=9072.899442, s=9075.154461)\n    test 1273 circum4 (pygeodesy.ellipsoidalGeodSolve) .radius: 3184256.748\n    test 1274 circum4 (pygeodesy.ellipsoidalGeodSolve) .center: 43.054367°N, 002.942573°E, -3183993.92m\n    test 1275 circum4 (pygeodesy.ellipsoidalGeodSolve) .rank: 3\n    test 1276 circum4 (pygeodesy.ellipsoidalGeodSolve) .residuals: ()\n    test 1277 circum4 (pygeodesy.ellipsoidalGeodSolve) .d1: 57818.033\n    test 1278 circum4 (pygeodesy.ellipsoidalGeodSolve) .d2: 57834.176\n    test 1279 circum4 (pygeodesy.ellipsoidalGeodSolve) .d3: 57830.992\n    test 1280 circum4 (pygeodesy.ellipsoidalGeodSolve) .datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 1281 circum4 (pygeodesy.ellipsoidalGeodSolve) .Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 1282 radii11: Radii11Tuple(rA=327537.482637, rB=776914.262482, rC=784245.052526, cR=780602.180901, rIn=325058.721103, riS=84975.664195, roS=INF, a=1561159.315008, b=1111782.535163, c=1104451.745119, s=1888696.797645)\n    test 1283 circin6 (pygeodesy.ellipsoidalGeodSolve) .rB+rC: 1561159.315\n    test 1284 circin6 (pygeodesy.ellipsoidalGeodSolve) .rC+pA: 1111782.535\n    test 1285 circin6 (pygeodesy.ellipsoidalGeodSolve) .rA+rB: 1104451.745\n    test 1286 circin6 (pygeodesy.ellipsoidalGeodSolve) .radius: 325058.721\n    test 1287 circin6 (pygeodesy.ellipsoidalGeodSolve) .center: 02.948531°N, 002.932537°E, -40041.19m\n    test 1288 circin6 (pygeodesy.ellipsoidalGeodSolve) .deltas: (0.0, 0.0, 0.267132)  FAILED, KNOWN, expected (0.0, 0.0, 0.090491)\n    test 1289 circin6 (pygeodesy.ellipsoidalGeodSolve) .cA: 05.04314°N, 005.014578°E, -48104.09m\n    test 1290 circin6 (pygeodesy.ellipsoidalGeodSolve) .cB: 00.0°N, 002.941713°E, -20168.62m\n    test 1291 circin6 (pygeodesy.ellipsoidalGeodSolve) .cC: 02.961566°N, 000.0°E, -20113.46m\n    test 1292 circin6 (pygeodesy.ellipsoidalGeodSolve) .dA: 327263.596\n    test 1293 circin6 (pygeodesy.ellipsoidalGeodSolve) .dB: 326036.153\n    test 1294 circin6 (pygeodesy.ellipsoidalGeodSolve) .dC: 326020.432\n\n    test 1295 area cw/ccw: 1.0\n\n    testLatLon(pygeodesy.ellipsoidalExact, 25.08.28)\n    test 1296 isEllipsoidal: True\n    test 1297 isSpherical: False\n    test 1298 lat/lonDMS: 52.20472°N, 000.14056°E\n    test 1299 lat/lonDMS F_DM: 52°12.283′N, 000°08.434′E\n    test 1300 lat/lonDMS F_DM: 52°12.2832′N, 000°08.4336′E\n    test 1301 lat/lonDMS F_DMS: 52°12′17″N, 000°08′26″E\n    test 1302 lat/lonDMS F_DMS: 52°12′17.0″N, 000°08′26.0″E\n    test 1303 lat/lonDMS F_RAD: 0.911144N, 0.002453E\n    test 1304 isequalTo: True\n    test 1305 isequalTo: True\n    test 1306 latlon2: 52.20472, 0.14056\n    test 1307 latlon2: 52.2047, 0.1406\n    test 1308 latlon2: 52.205, 0.141\n    test 1309 latlon2: 52.2, 0.14\n    test 1310 latlon2: 52.2, 0.1\n    test 1311 latlon2: 52.0, 0.0\n    test 1312 chordTo: 12029263.15\n    test 1313 chordTo: 12029049.69\n    test 1314 initialBearingTo: 156.1106\n    test 1315 initialBearingTo: 65.9335\n    test 1316 initialBearingTo: 0.0\n    test 1317 initialBearingTo: 180.0\n    test 1318 finalBearingTo: 157.8345\n    test 1319 finalBearingTo: 93.9034\n    test 1320 bearingTo2: 156.1106, 157.8345\n    test 1321 ispolar: True\n    test 1322 copy: True\n    test 1323 __eq__: True\n    test 1324 __ne__: False\n    test 1325 equirectangularTo: 404329.56\n    test 1326 distanceTo: 404607.805988\n    test 1327 distanceTo: 404607.805988\n    test 1328 distanceTo: 3981601\n    test 1329 antipodal: False\n    test 1330 distanceTo dateline: 19959679.267\n    test 1331 distanceTo unrolled: 19959679.267\n    test 1332 antipodal: False\n    test 1333 distanceTo dateline: 9513998\n    test 1334 distanceTo unrolled: 9513998\n    test 1335 distanceTo: 18012714.66\n    test 1336 distanceTo: 20003931.46\n    test 1337 distanceTo3 dateline: 19959679.2674, 161.0677, 18.8252\n    test 1338 distanceTo3 dateline: 9513997.9901, 42.9164, 138.8903\n    test 1339 distanceTo3 dateline: 19959679.2674, 161.0677, 18.8252\n    test 1340 distanceTo3 dateline: 9513997.9901, 42.9164, 138.8903\n    test 1341 intermediateTo: 51.372275°N, 000.707253°E\n    test 1342 intermediateTo: True\n    test 1343 intermediateTo: 404607.806\n    test 1344 intermediateTo+5: 35.139582°N, 008.994368°E\n    test 1345 intermediateTo+5: 5.000\n    test 1346 intermediateTo-4: 64.894124°N, 013.705689°W\n    test 1347 intermediateTo-4: 4.000\n    test 1348 intermediateTo-h: 125.000\n    test 1349 midpointTo: 50.536583°N, 001.274507°E\n    test 1350 destination: 51.513526°N, 000.098038°W\n    test 1351 destination: 51°30′49″N, 000°05′53″W\n    test 1352 destination: 33°57′N, 118°24′W\n    test 1353 destination: 33.950367°N, 118.399012°W\n    test 1354 destination: 0.592546N, 2.066453W\n    test 1355 destination: 32.11195529°N, 064.56074722°E  FAILED, KNOWN, expected 32.11195529°N, 063.95925278°E\n    test 1356 neareston6: (LatLon(45°00′00.0″N, 001°00′00.0″E), 4755443.4294, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E))\n    test 1357 neareston6: (LatLon(45°30′03.94″N, 002°00′00.0″E), 39078.729285, 1.501072, 2, LatLon(45°00′00.0″N, 002°00′00.0″E), LatLon(46°00′00.0″N, 002°00′00.0″E))\n    test 1358 chordTo: 125203.963\n    test 1359 cosineAndoyerLambertTo: 125205.962\n    test 1360 cosineAndoyerLambertTo: 125205.962\n    test 1361 cosineForsyheAndoyerLambertTo: 125205.965\n    test 1362 cosineForsyheAndoyerLambertTo: 125205.965\n    test 1363 cosineLawTo: 124801.098\n    test 1364 cosineLawTo: 124801.098\n    test 1365 equirectangularTo: 124804.754\n    test 1366 equirectangularTo: 124804.754\n    test 1367 euclideanTo: 130015.089\n    test 1368 euclideanTo: 130015.089\n    test 1369 flatLocalTo: 125209.633\n    test 1370 flatLocalTo: 125209.633\n    test 1371 flatPolarTo: 133663.257\n    test 1372 flatPolarTo: 133663.257\n    test 1373 hartzell: 53.3206°N, 001.7297°W\n    test 1374 hartzell: 53.349541°N, 001.7297°W\n    test 1375 height4: 1.04135197254e-09  FAILED, KNOWN, expected 0.0\n    test 1376 height4: (3820333.9, -115367.0, 5097204.4, -6584.9)\n    test 1377 height4: 53°19′14.2″N, 001°43′46.9″W\n    test 1378 height4: 53°19′14.2″N, 001°43′46.9″W\n    test 1379 haversineTo: 124801.098\n    test 1380 haversineTo: 124801.098\n    test 1381 hubenyTo: <bound method LatLon.flatLocalTo of LatLon(53°19′14.16″N, 001°43′46.92″W)>\n    test 1382 hubenyTo: <bound method LatLon.flatLocalTo of LatLon(53°11′19.32″N, 000°08′00.24″E)>\n    test 1383 thomasTo: 125206.188\n    test 1384 thomasTo: 125206.188\n    test 1385 vincentysTo: 124801.098\n    test 1386 vincentysTo: 124801.098\n    test 1387 isclockwise: False\n    test 1388 isclockwise*: False\n    test 1389 isclockwise: True\n    test 1390 isclockwise*: True\n    test 1391 isclockwise: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 1392 isclockwise*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 1393 isclockwise: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 1394 isclockwise*: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 1395 isconvex: False\n    test 1396 isconvex*: False\n    test 1397 isconvex: True\n    test 1398 isconvex*: True\n    test 1399 isconvex: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 1400 isconvex*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 1401 isenclosedBy1: True\n    test 1402 isenclosedBy1*: True\n    test 1403 isenclosedBy2: False\n    test 1404 isenclosedBy2*: False\n    test 1405 isenclosedBy3: False\n    test 1406 isenclosedBy3*: False\n    test 1407 isenclosedBy4: False\n    test 1408 isenclosedBy4*: False\n    test 1409 isenclosedBy5: False\n    test 1410 isenclosedBy5*: False\n    test 1411 isenclosedBy6: True\n    test 1412 isenclosedBy6*: True\n    test 1413 isenclosedBy7: True\n    test 1414 isenclosedBy7*: True\n    test 1415 isenclosedBy-CCW: True\n    test 1416 isenclosedBy-CW : True\n    test 1417 isenclosedBy-CCW: True\n    test 1418 initialBearingTo: 102.392291\n    test 1419 compassAngleTo: 100.017\n    test 1420 compassAngleTo: 105.599\n    test 1421 initialBearingTo: 288.676039\n    test 1422 compassAngleTo: 280.017\n    test 1423 compassAngleTo: 285.599\n    test 1424 equirectangularTo: 592.185\n    test 1425 distanceTo: 593.571\n    test 1426 bearingTo: 0.0\n    test 1427 compassAngleTo: 0.0\n    test 1428 bearingTo: 45.2  FAILED, KNOWN, expected 45.0\n    test 1429 compassAngleTo: 45.0\n    test 1430 bearingTo: 90.0\n    test 1431 compassAngleTo: 90.0\n    test 1432 bearingTo: 180.0\n    test 1433 compassAngleTo: 180.0\n    test 1434 bearingTo: 225.2  FAILED, KNOWN, expected 225.0\n    test 1435 compassAngleTo: 225.0\n    test 1436 bearingTo: 314.8  FAILED, KNOWN, expected 315.0\n    test 1437 compassAngleTo: 315.0\n    test 1438 bearingTo: 270.0\n    test 1439 compassAngleTo: 270.0\n    test 1440 bearingTo: 0.0  FAILED, KNOWN, expected 359.4\n    test 1441 compassAngleTo: 359.4\n    test 1442 latlon2: (53.0, 1.0)\n    test 1443 philam2: (0.93, 0.02)\n    test 1444 bearingTo: 31\n    test 1445 compassAngleTo: 31\n    test 1446 compassAngleTo: 45\n\n    test 1447 boundsOf: <class 'pygeodesy.namedTuples.Bounds2Tuple'>\n    test 1448 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 1449 latlon2: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 1450 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 1451 isequalTo: <type 'bool'>\n    test 1452 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 1453 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 1454 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 1455 xyz3: <type 'tuple'>\n    test 1456 xyzh: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 1457 compassAngleTo: <type 'float'>\n    test 1458 cosineLawTo: <type 'float'>\n    test 1459 euclideanTo: <type 'float'>\n    test 1460 flatLocalTo: <type 'float'>\n    test 1461 flatPolarTo: <type 'float'>\n    test 1462 haversineTo: <type 'float'>\n    test 1463 hubenyTo: <type 'float'>\n    test 1464 vincentysTo: <type 'float'>\n    test 1465 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 1466 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 1467 toLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 1468 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 1469 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 1470 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 1471 toNvector: (0.615661, 0.0, 0.788011, 0)\n    test 1472 toVector: (3934960.466675, 0.0, 5002803.345483)\n    test 1473 toVector3d: (0.61823, 0.0, 0.786)\n\n    test 1474 trilaterate5 (pygeodesy.ellipsoidalExact) .min: 305.091\n    test 1475 trilaterate5 (pygeodesy.ellipsoidalExact) .point: 42.66933643°N, 002.48620262°E\n    test 1476 trilaterate5 (pygeodesy.ellipsoidalExact) .max: 1592.545\n    test 1477 trilaterate5 (pygeodesy.ellipsoidalExact) .point: 42.65141232°N, 002.46816989°E\n    test 1478 trilaterate5 (pygeodesy.ellipsoidalExact) .n: 3\n    test 1479 trilaterate5 (pygeodesy.ellipsoidalExact) .min: 127.229\n    test 1480 trilaterate5 (pygeodesy.ellipsoidalExact) .max: 152.612\n    test 1481 trilaterate5 (pygeodesy.ellipsoidalExact) .point: 42.67815375°N, 002.49950041°E\n    test 1482 trilaterate5 (pygeodesy.ellipsoidalExact) .n: 2\n    test 1483 trilaterate5 (pygeodesy.ellipsoidalExact) .min: 2400.293\n    test 1484 trilaterate5 (pygeodesy.ellipsoidalExact) .max: 2400.293\n    test 1485 trilaterate5 (pygeodesy.ellipsoidalExact) .point: 42.66128984°N, 002.47973818°E\n    test 1486 trilaterate5 (pygeodesy.ellipsoidalExact) .min- is .maxPoint: True\n    test 1487 trilaterate5 (pygeodesy.ellipsoidalExact) .n: 1\n    test 1488 trilaterate5 (pygeodesy.ellipsoidalExact) .min: 1343.743\n    test 1489 trilaterate5 (pygeodesy.ellipsoidalExact) .point: 42.69131964°N, 002.50112167°E\n    test 1490 trilaterate5 (pygeodesy.ellipsoidalExact) .max: 1445.554\n    test 1491 trilaterate5 (pygeodesy.ellipsoidalExact) .point: 42.67815375°N, 002.49950041°E\n    test 1492 trilaterate5 (pygeodesy.ellipsoidalExact) .n: 2\n    test 1493 radii11: Radii11Tuple(rA=7244.792747, rB=1828.106695, rC=2.25502, cR=57792.067128, rIn=57.366968, riS=2.087668, roS=2.443334, a=1830.361715, b=7247.047766, c=9072.899442, s=9075.154461)\n    test 1494 circum3 (pygeodesy.ellipsoidalExact) .radius: 57792.067\n    test 1495 circum3 (pygeodesy.ellipsoidalExact) .center: 43.053532°N, 002.943255°E, -261.66m\n    test 1496 circum3 (pygeodesy.ellipsoidalExact) .deltas: (-0.0, 0.0, 11.858)  FAILED, KNOWN, expected (0.0, 0.0, 11.383)\n    test 1497 circum3 (pygeodesy.ellipsoidalExact) .d1: 57792.858\n    test 1498 circum3 (pygeodesy.ellipsoidalExact) .d2: 57792.859\n    test 1499 circum3 (pygeodesy.ellipsoidalExact) .d3: 57792.859\n    test 1500 circum3 (pygeodesy.ellipsoidalExact) .datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 1501 circum3 (pygeodesy.ellipsoidalExact) .Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n\n    test 1502 radii11: Radii11Tuple(rA=7244.792747, rB=1828.106695, rC=2.25502, cR=57792.067128, rIn=57.366968, riS=2.087668, roS=2.443334, a=1830.361715, b=7247.047766, c=9072.899442, s=9075.154461)\n    test 1503 circum4 (pygeodesy.ellipsoidalExact) .radius: 3184256.748\n    test 1504 circum4 (pygeodesy.ellipsoidalExact) .center: 43.054367°N, 002.942573°E, -3183993.92m\n    test 1505 circum4 (pygeodesy.ellipsoidalExact) .rank: 3\n    test 1506 circum4 (pygeodesy.ellipsoidalExact) .residuals: ()\n    test 1507 circum4 (pygeodesy.ellipsoidalExact) .d1: 57818.033\n    test 1508 circum4 (pygeodesy.ellipsoidalExact) .d2: 57834.176\n    test 1509 circum4 (pygeodesy.ellipsoidalExact) .d3: 57830.992\n    test 1510 circum4 (pygeodesy.ellipsoidalExact) .datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 1511 circum4 (pygeodesy.ellipsoidalExact) .Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 1512 radii11: Radii11Tuple(rA=327537.482637, rB=776914.262482, rC=784245.052526, cR=780602.180901, rIn=325058.721103, riS=84975.664195, roS=INF, a=1561159.315008, b=1111782.535163, c=1104451.745119, s=1888696.797645)\n    test 1513 circin6 (pygeodesy.ellipsoidalExact) .rB+rC: 1561159.315\n    test 1514 circin6 (pygeodesy.ellipsoidalExact) .rC+pA: 1111782.535\n    test 1515 circin6 (pygeodesy.ellipsoidalExact) .rA+rB: 1104451.745\n    test 1516 circin6 (pygeodesy.ellipsoidalExact) .radius: 325058.721\n    test 1517 circin6 (pygeodesy.ellipsoidalExact) .center: 02.948531°N, 002.932537°E, -40041.19m\n    test 1518 circin6 (pygeodesy.ellipsoidalExact) .deltas: (0.0, 0.0, 0.267132)  FAILED, KNOWN, expected (0.0, 0.0, 0.090491)\n    test 1519 circin6 (pygeodesy.ellipsoidalExact) .cA: 05.04314°N, 005.014578°E, -48104.09m\n    test 1520 circin6 (pygeodesy.ellipsoidalExact) .cB: 00.0°N, 002.941713°E, -20168.62m\n    test 1521 circin6 (pygeodesy.ellipsoidalExact) .cC: 02.961566°N, 000.0°E, -20113.46m\n    test 1522 circin6 (pygeodesy.ellipsoidalExact) .dA: 327263.596\n    test 1523 circin6 (pygeodesy.ellipsoidalExact) .dB: 326036.153\n    test 1524 circin6 (pygeodesy.ellipsoidalExact) .dC: 326020.432\n\n    test 1525 area cw/ccw: 1.0\n\n    346 of 1525 testLatLon.py tests (22.7%) FAILED, incl. 130 KNOWN plus 216 DeprecationWarnings (pygeodesy 26.3.26 Python 2.7.18 64bit arm64_x86_64 geographiclib 1.50 numpy 1.16.6 scipy 1.2.2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 -W  default) 16.557 sec\nrunning /Library/Framewo....ython -W default ~/PyGeodesy/test/testLatLonBase.py\n\n    testing testLatLonBase.py 23.10.15\n\n    testLatLon(pygeodesy.sphericalNvector, 25.05.27)\n    test 1 lat, lon: 50.06632°N, 005.71475°W\n    test 2 lat, lon: 50.066389°N, 005.714722°W\n    test 3 isequalTo: True\n    test 4 isequalTo3: True\n    test 5 latlon: (52.205, 0.119)\n    test 6 latlonheight: (52.205, 0.119, 0)\n    test 7 phimlam: (0.911149, 0.002077)\n    test 8 phimlamheight: (0.911149, 0.002077, 0)\n    test 9 isequalTo: False\n    test 10 antipode1: 52.205°S, 179.881°W\n    test 11 antipode2: True\n    test 12 antipode3: 52.205°N, 000.119°E\n    test 13 antipode4: True\n    test 14 antipode5: 52.205°N, 000.119°E\n    test 15 isnormal1: True\n    test 16 isnormal2: False\n    test 17 normal1: False\n    test 18 normal2: True\n    test 19 toStr: 51°28′40″N, 000°00′06″W\n    test 20 toStr: 51.4778°N, 000.0016°W\n    test 21 precision: 0\n    test 22 toStr: 51°28′40″N, 000°00′06″W, +42.00m\n    test 23 isequalTo: True\n    test 24 isequalTo3: False\n    test 25 latlon: (51.4778, -0.0016)\n    test 26 phimlam: (0.898457, -0.000028)\n    test 27 isequalTo: True\n    test 28 isequalTo3: True\n    test 29 latlon: (51.4778, -0.0016)\n    test 30 latlonheight: (51.4778, -0.0016, 42.0)\n    test 31 phimlam: (0.898457, -0.000028)\n    test 32 phimlamheight: (0.898457, -0.000028, 42.0)\n    test 33 latlon: LatLon2Tuple(lat=51.4778, lon=-0.0016)\n    test 34 latlonheight: LatLon3Tuple(lat=51.4778, lon=-0.0016, height=42.0)\n    test 35 phimlam: PhiLam2Tuple(phi=0.898457, lam=-0.000028)\n    test 36 phimlamheight: PhiLam3Tuple(phi=0.898457, lam=-0.000028, height=42.0)\n    test 37 ellipsoidalLatLon: True\n    test 38 sphericalLatLon: True\n\n    test 39 rhumbLine: TMorder=6, azi12=30.0, exact=False, lat1=51.4778, lon1=-0.0016, rhumb=Rhumb....ere', a=6371008.771415, f=0, f_=0, b=6371008.771415), k0=0.9996, TMorder=6)\n    test 40 rhumbLine: TMorder=6, azi12=105.484906, exact=False, lat1=51.4778, lon1=-0.0016, rhumb....ere', a=6371008.771415, f=0, f_=0, b=6371008.771415), k0=0.9996, TMorder=6)\n    test 41 rhumbAzimuthTo: 107.563\n    test 42 rhumbDestination: 50.964155°N, 001.853°E\n    test 43 rhumbDestination: True\n    test 44 rhumbDistanceTo: 42186.1\n    test 45 rhumbIntersecant2: (LatLon(58°40′08.68″N, 042°42′40.63″E), LatLon(18°47′05.09″N, 011°00′15.53″W))\n    test 46 rhumbMidpointo-0.5: 51.069759°N, 001.625988°E\n    test 47 rhumbMidpointo: True\n    test 48 rhumbMidpointo-0.0: 51.127°N, 001.338°E\n    test 49 rhumbMidpointo-0.25: 51.09838°N, 001.482038°E\n    test 50 rhumbMidpointo-0.75: 51.041139°N, 001.769848°E\n    test 51 rhumbMidpointo-1.0: 51.012519°N, 001.913619°E\n    test 52 rhumbMidpointo-2.0: 50.898038°N, 002.48782°E\n\n    testLatLon(pygeodesy.sphericalTrigonometry, 25.08.31)\n    test 53 lat, lon: 50.06632°N, 005.71475°W\n    test 54 lat, lon: 50.066389°N, 005.714722°W\n    test 55 isequalTo: True\n    test 56 isequalTo3: True\n    test 57 latlon: (52.205, 0.119)\n    test 58 latlonheight: (52.205, 0.119, 0)\n    test 59 phimlam: (0.911149, 0.002077)\n    test 60 phimlamheight: (0.911149, 0.002077, 0)\n    test 61 isequalTo: False\n    test 62 antipode1: 52.205°S, 179.881°W\n    test 63 antipode2: True\n    test 64 antipode3: 52.205°N, 000.119°E\n    test 65 antipode4: True\n    test 66 antipode5: 52.205°N, 000.119°E\n    test 67 isnormal1: True\n    test 68 isnormal2: False\n    test 69 normal1: False\n    test 70 normal2: True\n    test 71 toStr: 51°28′40″N, 000°00′06″W\n    test 72 toStr: 51.4778°N, 000.0016°W\n    test 73 precision: 0\n    test 74 toStr: 51°28′40″N, 000°00′06″W, +42.00m\n    test 75 isequalTo: True\n    test 76 isequalTo3: False\n    test 77 latlon: (51.4778, -0.0016)\n    test 78 phimlam: (0.898457, -0.000028)\n    test 79 isequalTo: True\n    test 80 isequalTo3: True\n    test 81 latlon: (51.4778, -0.0016)\n    test 82 latlonheight: (51.4778, -0.0016, 42.0)\n    test 83 phimlam: (0.898457, -0.000028)\n    test 84 phimlamheight: (0.898457, -0.000028, 42.0)\n    test 85 latlon: LatLon2Tuple(lat=51.4778, lon=-0.0016)\n    test 86 latlonheight: LatLon3Tuple(lat=51.4778, lon=-0.0016, height=42.0)\n    test 87 phimlam: PhiLam2Tuple(phi=0.898457, lam=-0.000028)\n    test 88 phimlamheight: PhiLam3Tuple(phi=0.898457, lam=-0.000028, height=42.0)\n    test 89 ellipsoidalLatLon: True\n    test 90 sphericalLatLon: True\n\n    test 91 rhumbLine: TMorder=6, azi12=30.0, exact=False, lat1=51.4778, lon1=-0.0016, rhumb=Rhumb....ere', a=6371008.771415, f=0, f_=0, b=6371008.771415), k0=0.9996, TMorder=6)\n    test 92 rhumbLine: TMorder=6, azi12=105.484906, exact=False, lat1=51.4778, lon1=-0.0016, rhumb....ere', a=6371008.771415, f=0, f_=0, b=6371008.771415), k0=0.9996, TMorder=6)\n    test 93 rhumbAzimuthTo: 107.563\n    test 94 rhumbDestination: 50.964155°N, 001.853°E\n    test 95 rhumbDestination: True\n    test 96 rhumbDistanceTo: 42186.1\n    test 97 rhumbIntersecant2: (LatLon(58°40′08.68″N, 042°42′40.63″E), LatLon(18°47′05.09″N, 011°00′15.53″W))\n    test 98 rhumbMidpointo-0.5: 51.069759°N, 001.625988°E\n    test 99 rhumbMidpointo: True\n    test 100 rhumbMidpointo-0.0: 51.127°N, 001.338°E\n    test 101 rhumbMidpointo-0.25: 51.09838°N, 001.482038°E\n    test 102 rhumbMidpointo-0.75: 51.041139°N, 001.769848°E\n    test 103 rhumbMidpointo-1.0: 51.012519°N, 001.913619°E\n    test 104 rhumbMidpointo-2.0: 50.898038°N, 002.48782°E\n\n    testLatLon(pygeodesy.ellipsoidalNvector, 25.05.12)\n    test 105 lat, lon: 50.06632°N, 005.71475°W\n    test 106 lat, lon: 50.066389°N, 005.714722°W\n    test 107 isequalTo: True\n    test 108 isequalTo3: True\n    test 109 latlon: (52.205, 0.119)\n    test 110 latlonheight: (52.205, 0.119, 0)\n    test 111 phimlam: (0.911149, 0.002077)\n    test 112 phimlamheight: (0.911149, 0.002077, 0)\n    test 113 isequalTo: False\n    test 114 antipode1: 52.205°S, 179.881°W\n    test 115 antipode2: True\n    test 116 antipode3: 52.205°N, 000.119°E\n    test 117 antipode4: True\n    test 118 antipode5: 52.205°N, 000.119°E\n    test 119 isnormal1: True\n    test 120 isnormal2: False\n    test 121 normal1: False\n    test 122 normal2: True\n    test 123 toStr: 51°28′40″N, 000°00′06″W\n    test 124 toStr: 51.4778°N, 000.0016°W\n    test 125 precision: 0\n    test 126 toStr: 51°28′40″N, 000°00′06″W, +42.00m\n    test 127 isequalTo: True\n    test 128 isequalTo3: False\n    test 129 latlon: (51.4778, -0.0016)\n    test 130 phimlam: (0.898457, -0.000028)\n    test 131 isequalTo: True\n    test 132 isequalTo3: True\n    test 133 latlon: (51.4778, -0.0016)\n    test 134 latlonheight: (51.4778, -0.0016, 42.0)\n    test 135 phimlam: (0.898457, -0.000028)\n    test 136 phimlamheight: (0.898457, -0.000028, 42.0)\n    test 137 latlon: LatLon2Tuple(lat=51.4778, lon=-0.0016)\n    test 138 latlonheight: LatLon3Tuple(lat=51.4778, lon=-0.0016, height=42.0)\n    test 139 phimlam: PhiLam2Tuple(phi=0.898457, lam=-0.000028)\n    test 140 phimlamheight: PhiLam3Tuple(phi=0.898457, lam=-0.000028, height=42.0)\n    test 141 ellipsoidalLatLon: True\n    test 142 sphericalLatLon: True\n\n    test 143 rhumbLine: TMorder=6, azi12=30.0, exact=False, lat1=51.4778, lon1=-0.0016, rhumb=Rhumb...., f=0.00335281, f_=298.25722356, b=6356752.31424518), k0=0.9996, TMorder=6)\n    test 144 rhumbLine: TMorder=6, azi12=113.805696, exact=False, lat1=51.4778, lon1=-0.0016, rhumb...., f=0.00335281, f_=298.25722356, b=6356752.31424518), k0=0.9996, TMorder=6)\n    test 145 rhumbAzimuthTo: 116.661\n    test 146 rhumbDestination: 50.964234°N, 001.851383°E\n    test 147 rhumbDestination: True\n    test 148 rhumbDistanceTo: 40413.1\n    test 149 rhumbIntersecant2: (LatLon(58°59′33.52″N, 043°11′56.62″E), LatLon(20°25′12.01″N, 009°12′37.27″W))\n    test 150 rhumbMidpointo-0.5: 51.045501°N, 001.595726°E\n    test 151 rhumbMidpointo: True\n    test 152 rhumbMidpointo-0.0: 51.127°N, 001.338°E\n    test 153 rhumbMidpointo-0.25: 51.08625°N, 001.46692°E\n    test 154 rhumbMidpointo-0.75: 51.00475°N, 001.724419°E\n    test 155 rhumbMidpointo-1.0: 50.964°N, 001.853°E\n    test 156 rhumbMidpointo-2.0: 50.800995°N, 002.366201°E\n\n    testLatLon(pygeodesy.ellipsoidalVincenty, 25.05.26)\n    test 157 lat, lon: 50.06632°N, 005.71475°W\n    test 158 lat, lon: 50.066389°N, 005.714722°W\n    test 159 isequalTo: True\n    test 160 isequalTo3: True\n    test 161 latlon: (52.205, 0.119)\n    test 162 latlonheight: (52.205, 0.119, 0)\n    test 163 phimlam: (0.911149, 0.002077)\n    test 164 phimlamheight: (0.911149, 0.002077, 0)\n    test 165 isequalTo: False\n    test 166 antipode1: 52.205°S, 179.881°W\n    test 167 antipode2: True\n    test 168 antipode3: 52.205°N, 000.119°E\n    test 169 antipode4: True\n    test 170 antipode5: 52.205°N, 000.119°E\n    test 171 isnormal1: True\n    test 172 isnormal2: False\n    test 173 normal1: False\n    test 174 normal2: True\n    test 175 toStr: 51°28′40″N, 000°00′06″W\n    test 176 toStr: 51.4778°N, 000.0016°W\n    test 177 precision: 0\n    test 178 toStr: 51°28′40″N, 000°00′06″W, +42.00m\n    test 179 isequalTo: True\n    test 180 isequalTo3: False\n    test 181 latlon: (51.4778, -0.0016)\n    test 182 phimlam: (0.898457, -0.000028)\n    test 183 isequalTo: True\n    test 184 isequalTo3: True\n    test 185 latlon: (51.4778, -0.0016)\n    test 186 latlonheight: (51.4778, -0.0016, 42.0)\n    test 187 phimlam: (0.898457, -0.000028)\n    test 188 phimlamheight: (0.898457, -0.000028, 42.0)\n    test 189 latlon: LatLon2Tuple(lat=51.4778, lon=-0.0016)\n    test 190 latlonheight: LatLon3Tuple(lat=51.4778, lon=-0.0016, height=42.0)\n    test 191 phimlam: PhiLam2Tuple(phi=0.898457, lam=-0.000028)\n    test 192 phimlamheight: PhiLam3Tuple(phi=0.898457, lam=-0.000028, height=42.0)\n    test 193 ellipsoidalLatLon: True\n    test 194 sphericalLatLon: True\n\n    test 195 rhumbLine: TMorder=6, azi12=30.0, exact=False, lat1=51.4778, lon1=-0.0016, rhumb=Rhumb...., f=0.00335281, f_=298.25722356, b=6356752.31424518), k0=0.9996, TMorder=6)\n    test 196 rhumbLine: TMorder=6, azi12=113.805696, exact=False, lat1=51.4778, lon1=-0.0016, rhumb...., f=0.00335281, f_=298.25722356, b=6356752.31424518), k0=0.9996, TMorder=6)\n    test 197 rhumbAzimuthTo: 116.661\n    test 198 rhumbDestination: 50.964234°N, 001.851383°E\n    test 199 rhumbDestination: True\n    test 200 rhumbDistanceTo: 40413.1\n    test 201 rhumbIntersecant2: (LatLon(58°59′33.52″N, 043°11′56.62″E), LatLon(20°25′12.01″N, 009°12′37.27″W))\n    test 202 rhumbMidpointo-0.5: 51.045501°N, 001.595726°E\n    test 203 rhumbMidpointo: True\n    test 204 rhumbMidpointo-0.0: 51.127°N, 001.338°E\n    test 205 rhumbMidpointo-0.25: 51.08625°N, 001.46692°E\n    test 206 rhumbMidpointo-0.75: 51.00475°N, 001.724419°E\n    test 207 rhumbMidpointo-1.0: 50.964°N, 001.853°E\n    test 208 rhumbMidpointo-2.0: 50.800995°N, 002.366201°E\n\n    testLatLon(pygeodesy.ellipsoidalKarney, 25.05.27)\n    test 209 lat, lon: 50.06632°N, 005.71475°W\n    test 210 lat, lon: 50.066389°N, 005.714722°W\n    test 211 isequalTo: True\n    test 212 isequalTo3: True\n    test 213 latlon: (52.205, 0.119)\n    test 214 latlonheight: (52.205, 0.119, 0)\n    test 215 phimlam: (0.911149, 0.002077)\n    test 216 phimlamheight: (0.911149, 0.002077, 0)\n    test 217 isequalTo: False\n    test 218 antipode1: 52.205°S, 179.881°W\n    test 219 antipode2: True\n    test 220 antipode3: 52.205°N, 000.119°E\n    test 221 antipode4: True\n    test 222 antipode5: 52.205°N, 000.119°E\n    test 223 isnormal1: True\n    test 224 isnormal2: False\n    test 225 normal1: False\n    test 226 normal2: True\n    test 227 toStr: 51°28′40″N, 000°00′06″W\n    test 228 toStr: 51.4778°N, 000.0016°W\n    test 229 precision: 0\n    test 230 toStr: 51°28′40″N, 000°00′06″W, +42.00m\n    test 231 isequalTo: True\n    test 232 isequalTo3: False\n    test 233 latlon: (51.4778, -0.0016)\n    test 234 phimlam: (0.898457, -0.000028)\n    test 235 isequalTo: True\n    test 236 isequalTo3: True\n    test 237 latlon: (51.4778, -0.0016)\n    test 238 latlonheight: (51.4778, -0.0016, 42.0)\n    test 239 phimlam: (0.898457, -0.000028)\n    test 240 phimlamheight: (0.898457, -0.000028, 42.0)\n    test 241 latlon: LatLon2Tuple(lat=51.4778, lon=-0.0016)\n    test 242 latlonheight: LatLon3Tuple(lat=51.4778, lon=-0.0016, height=42.0)\n    test 243 phimlam: PhiLam2Tuple(phi=0.898457, lam=-0.000028)\n    test 244 phimlamheight: PhiLam3Tuple(phi=0.898457, lam=-0.000028, height=42.0)\n    test 245 ellipsoidalLatLon: True\n    test 246 sphericalLatLon: True\n\n    test 247 rhumbLine: TMorder=6, azi12=30.0, exact=False, lat1=51.4778, lon1=-0.0016, rhumb=Rhumb...., f=0.00335281, f_=298.25722356, b=6356752.31424518), k0=0.9996, TMorder=6)\n    test 248 rhumbLine: TMorder=6, azi12=113.805696, exact=False, lat1=51.4778, lon1=-0.0016, rhumb...., f=0.00335281, f_=298.25722356, b=6356752.31424518), k0=0.9996, TMorder=6)\n    test 249 rhumbAzimuthTo: 116.661\n    test 250 rhumbDestination: 50.964234°N, 001.851383°E\n    test 251 rhumbDestination: True\n    test 252 rhumbDistanceTo: 40413.1\n    test 253 rhumbIntersecant2: (LatLon(58°59′33.52″N, 043°11′56.62″E), LatLon(20°25′12.01″N, 009°12′37.27″W))\n    test 254 rhumbMidpointo-0.5: 51.045501°N, 001.595726°E\n    test 255 rhumbMidpointo: True\n    test 256 rhumbMidpointo-0.0: 51.127°N, 001.338°E\n    test 257 rhumbMidpointo-0.25: 51.08625°N, 001.46692°E\n    test 258 rhumbMidpointo-0.75: 51.00475°N, 001.724419°E\n    test 259 rhumbMidpointo-1.0: 50.964°N, 001.853°E\n    test 260 rhumbMidpointo-2.0: 50.800995°N, 002.366201°E\n\n    testLatLon(pygeodesy.ellipsoidalExact, 25.08.28)\n    test 261 lat, lon: 50.06632°N, 005.71475°W\n    test 262 lat, lon: 50.066389°N, 005.714722°W\n    test 263 isequalTo: True\n    test 264 isequalTo3: True\n    test 265 latlon: (52.205, 0.119)\n    test 266 latlonheight: (52.205, 0.119, 0)\n    test 267 phimlam: (0.911149, 0.002077)\n    test 268 phimlamheight: (0.911149, 0.002077, 0)\n    test 269 isequalTo: False\n    test 270 antipode1: 52.205°S, 179.881°W\n    test 271 antipode2: True\n    test 272 antipode3: 52.205°N, 000.119°E\n    test 273 antipode4: True\n    test 274 antipode5: 52.205°N, 000.119°E\n    test 275 isnormal1: True\n    test 276 isnormal2: False\n    test 277 normal1: False\n    test 278 normal2: True\n    test 279 toStr: 51°28′40″N, 000°00′06″W\n    test 280 toStr: 51.4778°N, 000.0016°W\n    test 281 precision: 0\n    test 282 toStr: 51°28′40″N, 000°00′06″W, +42.00m\n    test 283 isequalTo: True\n    test 284 isequalTo3: False\n    test 285 latlon: (51.4778, -0.0016)\n    test 286 phimlam: (0.898457, -0.000028)\n    test 287 isequalTo: True\n    test 288 isequalTo3: True\n    test 289 latlon: (51.4778, -0.0016)\n    test 290 latlonheight: (51.4778, -0.0016, 42.0)\n    test 291 phimlam: (0.898457, -0.000028)\n    test 292 phimlamheight: (0.898457, -0.000028, 42.0)\n    test 293 latlon: LatLon2Tuple(lat=51.4778, lon=-0.0016)\n    test 294 latlonheight: LatLon3Tuple(lat=51.4778, lon=-0.0016, height=42.0)\n    test 295 phimlam: PhiLam2Tuple(phi=0.898457, lam=-0.000028)\n    test 296 phimlamheight: PhiLam3Tuple(phi=0.898457, lam=-0.000028, height=42.0)\n    test 297 ellipsoidalLatLon: True\n    test 298 sphericalLatLon: True\n\n    test 299 rhumbLine: TMorder=6, azi12=30.0, exact=False, lat1=51.4778, lon1=-0.0016, rhumb=Rhumb...., f=0.00335281, f_=298.25722356, b=6356752.31424518), k0=0.9996, TMorder=6)\n    test 300 rhumbLine: TMorder=6, azi12=113.805696, exact=False, lat1=51.4778, lon1=-0.0016, rhumb...., f=0.00335281, f_=298.25722356, b=6356752.31424518), k0=0.9996, TMorder=6)\n    test 301 rhumbAzimuthTo: 116.661\n    test 302 rhumbDestination: 50.964234°N, 001.851383°E\n    test 303 rhumbDestination: True\n    test 304 rhumbDistanceTo: 40413.1\n    test 305 rhumbIntersecant2: (LatLon(58°59′33.52″N, 043°11′56.62″E), LatLon(20°25′12.01″N, 009°12′37.27″W))\n    test 306 rhumbMidpointo-0.5: 51.045501°N, 001.595726°E\n    test 307 rhumbMidpointo: True\n    test 308 rhumbMidpointo-0.0: 51.127°N, 001.338°E\n    test 309 rhumbMidpointo-0.25: 51.08625°N, 001.46692°E\n    test 310 rhumbMidpointo-0.75: 51.00475°N, 001.724419°E\n    test 311 rhumbMidpointo-1.0: 50.964°N, 001.853°E\n    test 312 rhumbMidpointo-2.0: 50.800995°N, 002.366201°E\n\n    testLatLon(pygeodesy.ellipsoidalGeodSolve, 25.08.28)\n    test 313 lat, lon: 50.06632°N, 005.71475°W\n    test 314 lat, lon: 50.066389°N, 005.714722°W\n    test 315 isequalTo: True\n    test 316 isequalTo3: True\n    test 317 latlon: (52.205, 0.119)\n    test 318 latlonheight: (52.205, 0.119, 0)\n    test 319 phimlam: (0.911149, 0.002077)\n    test 320 phimlamheight: (0.911149, 0.002077, 0)\n    test 321 isequalTo: False\n    test 322 antipode1: 52.205°S, 179.881°W\n    test 323 antipode2: True\n    test 324 antipode3: 52.205°N, 000.119°E\n    test 325 antipode4: True\n    test 326 antipode5: 52.205°N, 000.119°E\n    test 327 isnormal1: True\n    test 328 isnormal2: False\n    test 329 normal1: False\n    test 330 normal2: True\n    test 331 toStr: 51°28′40″N, 000°00′06″W\n    test 332 toStr: 51.4778°N, 000.0016°W\n    test 333 precision: 0\n    test 334 toStr: 51°28′40″N, 000°00′06″W, +42.00m\n    test 335 isequalTo: True\n    test 336 isequalTo3: False\n    test 337 latlon: (51.4778, -0.0016)\n    test 338 phimlam: (0.898457, -0.000028)\n    test 339 isequalTo: True\n    test 340 isequalTo3: True\n    test 341 latlon: (51.4778, -0.0016)\n    test 342 latlonheight: (51.4778, -0.0016, 42.0)\n    test 343 phimlam: (0.898457, -0.000028)\n    test 344 phimlamheight: (0.898457, -0.000028, 42.0)\n    test 345 latlon: LatLon2Tuple(lat=51.4778, lon=-0.0016)\n    test 346 latlonheight: LatLon3Tuple(lat=51.4778, lon=-0.0016, height=42.0)\n    test 347 phimlam: PhiLam2Tuple(phi=0.898457, lam=-0.000028)\n    test 348 phimlamheight: PhiLam3Tuple(phi=0.898457, lam=-0.000028, height=42.0)\n    test 349 ellipsoidalLatLon: True\n    test 350 sphericalLatLon: True\n\n    test 351 rhumbLine: TMorder=6, azi12=30.0, exact=False, lat1=51.4778, lon1=-0.0016, rhumb=Rhumb...., f=0.00335281, f_=298.25722356, b=6356752.31424518), k0=0.9996, TMorder=6)\n    test 352 rhumbLine: TMorder=6, azi12=113.805696, exact=False, lat1=51.4778, lon1=-0.0016, rhumb...., f=0.00335281, f_=298.25722356, b=6356752.31424518), k0=0.9996, TMorder=6)\n    test 353 rhumbAzimuthTo: 116.661\n    test 354 rhumbDestination: 50.964234°N, 001.851383°E\n    test 355 rhumbDestination: True\n    test 356 rhumbDistanceTo: 40413.1\n    test 357 rhumbIntersecant2: (LatLon(58°59′33.52″N, 043°11′56.62″E), LatLon(20°25′12.01″N, 009°12′37.27″W))\n    test 358 rhumbMidpointo-0.5: 51.045501°N, 001.595726°E\n    test 359 rhumbMidpointo: True\n    test 360 rhumbMidpointo-0.0: 51.127°N, 001.338°E\n    test 361 rhumbMidpointo-0.25: 51.08625°N, 001.46692°E\n    test 362 rhumbMidpointo-0.75: 51.00475°N, 001.724419°E\n    test 363 rhumbMidpointo-1.0: 50.964°N, 001.853°E\n    test 364 rhumbMidpointo-2.0: 50.800995°N, 002.366201°E\n\n    testLatLonEllipsoidalBase(pygeodesy.ellipsoidalBase, 25.07.21)\n    test 365 lat, lon: 50.06632°N, 005.71475°W\n    test 366 lat, lon: 50.066389°N, 005.714722°W\n    test 367 isequalTo: True\n    test 368 isequalTo3: True\n    test 369 latlon: (52.205, 0.119)\n    test 370 latlonheight: (52.205, 0.119, 0)\n    test 371 phimlam: (0.911149, 0.002077)\n    test 372 phimlamheight: (0.911149, 0.002077, 0)\n    test 373 isequalTo: False\n    test 374 antipode1: 52.205°S, 179.881°W\n    test 375 antipode2: True\n    test 376 antipode3: 52.205°N, 000.119°E\n    test 377 antipode4: True\n    test 378 antipode5: 52.205°N, 000.119°E\n    test 379 isnormal1: True\n    test 380 isnormal2: False\n    test 381 normal1: False\n    test 382 normal2: True\n    test 383 toStr: 51°28′40″N, 000°00′06″W\n    test 384 toStr: 51.4778°N, 000.0016°W\n    test 385 precision: 0\n    test 386 toStr: 51°28′40″N, 000°00′06″W, +42.00m\n    test 387 isequalTo: True\n    test 388 isequalTo3: False\n    test 389 latlon: (51.4778, -0.0016)\n    test 390 phimlam: (0.898457, -0.000028)\n    test 391 isequalTo: True\n    test 392 isequalTo3: True\n    test 393 latlon: (51.4778, -0.0016)\n    test 394 latlonheight: (51.4778, -0.0016, 42.0)\n    test 395 phimlam: (0.898457, -0.000028)\n    test 396 phimlamheight: (0.898457, -0.000028, 42.0)\n    test 397 latlon: LatLon2Tuple(lat=51.4778, lon=-0.0016)\n    test 398 latlonheight: LatLon3Tuple(lat=51.4778, lon=-0.0016, height=42.0)\n    test 399 phimlam: PhiLam2Tuple(phi=0.898457, lam=-0.000028)\n    test 400 phimlamheight: PhiLam3Tuple(phi=0.898457, lam=-0.000028, height=42.0)\n    test 401 ellipsoidalLatLon: True\n    test 402 sphericalLatLon: True\n\n    test 403 rhumbLine: TMorder=6, azi12=30.0, exact=False, lat1=51.4778, lon1=-0.0016, rhumb=Rhumb...., f=0.00335281, f_=298.25722356, b=6356752.31424518), k0=0.9996, TMorder=6)\n    test 404 rhumbLine: TMorder=6, azi12=113.805696, exact=False, lat1=51.4778, lon1=-0.0016, rhumb...., f=0.00335281, f_=298.25722356, b=6356752.31424518), k0=0.9996, TMorder=6)\n    test 405 rhumbAzimuthTo: 116.661\n    test 406 rhumbDestination: 50.964234°N, 001.851383°E\n    test 407 rhumbDestination: True\n    test 408 rhumbDistanceTo: 40413.1\n    test 409 rhumbIntersecant2: (LatLonEllipsoidalBase(58°59′33.52″N, 043°11′56.62″E), LatLonEllipsoidalBase(20°25′12.01″N, 009°12′37.27″W))\n    test 410 rhumbMidpointo-0.5: 51.045501°N, 001.595726°E\n    test 411 rhumbMidpointo: True\n    test 412 rhumbMidpointo-0.0: 51.127°N, 001.338°E\n    test 413 rhumbMidpointo-0.25: 51.08625°N, 001.46692°E\n    test 414 rhumbMidpointo-0.75: 51.00475°N, 001.724419°E\n    test 415 rhumbMidpointo-1.0: 50.964°N, 001.853°E\n    test 416 rhumbMidpointo-2.0: 50.800995°N, 002.366201°E\n\n    testLatLonEllipsoidalBaseDI(pygeodesy.ellipsoidalBaseDI, 25.05.23)\n    test 417 lat, lon: 50.06632°N, 005.71475°W\n    test 418 lat, lon: 50.066389°N, 005.714722°W\n    test 419 isequalTo: True\n    test 420 isequalTo3: True\n    test 421 latlon: (52.205, 0.119)\n    test 422 latlonheight: (52.205, 0.119, 0)\n    test 423 phimlam: (0.911149, 0.002077)\n    test 424 phimlamheight: (0.911149, 0.002077, 0)\n    test 425 isequalTo: False\n    test 426 antipode1: 52.205°S, 179.881°W\n    test 427 antipode2: True\n    test 428 antipode3: 52.205°N, 000.119°E\n    test 429 antipode4: True\n    test 430 antipode5: 52.205°N, 000.119°E\n    test 431 isnormal1: True\n    test 432 isnormal2: False\n    test 433 normal1: False\n    test 434 normal2: True\n    test 435 toStr: 51°28′40″N, 000°00′06″W\n    test 436 toStr: 51.4778°N, 000.0016°W\n    test 437 precision: 0\n    test 438 toStr: 51°28′40″N, 000°00′06″W, +42.00m\n    test 439 isequalTo: True\n    test 440 isequalTo3: False\n    test 441 latlon: (51.4778, -0.0016)\n    test 442 phimlam: (0.898457, -0.000028)\n    test 443 isequalTo: True\n    test 444 isequalTo3: True\n    test 445 latlon: (51.4778, -0.0016)\n    test 446 latlonheight: (51.4778, -0.0016, 42.0)\n    test 447 phimlam: (0.898457, -0.000028)\n    test 448 phimlamheight: (0.898457, -0.000028, 42.0)\n    test 449 latlon: LatLon2Tuple(lat=51.4778, lon=-0.0016)\n    test 450 latlonheight: LatLon3Tuple(lat=51.4778, lon=-0.0016, height=42.0)\n    test 451 phimlam: PhiLam2Tuple(phi=0.898457, lam=-0.000028)\n    test 452 phimlamheight: PhiLam3Tuple(phi=0.898457, lam=-0.000028, height=42.0)\n    test 453 ellipsoidalLatLon: True\n    test 454 sphericalLatLon: True\n\n    test 455 rhumbLine: TMorder=6, azi12=30.0, exact=False, lat1=51.4778, lon1=-0.0016, rhumb=Rhumb...., f=0.00335281, f_=298.25722356, b=6356752.31424518), k0=0.9996, TMorder=6)\n    test 456 rhumbLine: TMorder=6, azi12=113.805696, exact=False, lat1=51.4778, lon1=-0.0016, rhumb...., f=0.00335281, f_=298.25722356, b=6356752.31424518), k0=0.9996, TMorder=6)\n    test 457 rhumbAzimuthTo: 116.661\n    test 458 rhumbDestination: 50.964234°N, 001.851383°E\n    test 459 rhumbDestination: True\n    test 460 rhumbDistanceTo: 40413.1\n    test 461 rhumbIntersecant2: (LatLonEllipsoidalBaseDI(58°59′33.52″N, 043°11′56.62″E), LatLonEllipsoidalBaseDI(20°25′12.01″N, 009°12′37.27″W))\n    test 462 rhumbMidpointo-0.5: 51.045501°N, 001.595726°E\n    test 463 rhumbMidpointo: True\n    test 464 rhumbMidpointo-0.0: 51.127°N, 001.338°E\n    test 465 rhumbMidpointo-0.25: 51.08625°N, 001.46692°E\n    test 466 rhumbMidpointo-0.75: 51.00475°N, 001.724419°E\n    test 467 rhumbMidpointo-1.0: 50.964°N, 001.853°E\n    test 468 rhumbMidpointo-2.0: 50.800995°N, 002.366201°E\n\n    testLatLonBase(pygeodesy.latlonBase, 25.08.18)\n    test 469 lat, lon: 50.06632°N, 005.71475°W\n    test 470 lat, lon: 50.066389°N, 005.714722°W\n    test 471 isequalTo: True\n    test 472 isequalTo3: True\n    test 473 latlon: (52.205, 0.119)\n    test 474 latlonheight: (52.205, 0.119, 0)\n    test 475 phimlam: (0.911149, 0.002077)\n    test 476 phimlamheight: (0.911149, 0.002077, 0)\n    test 477 isequalTo: False\n    test 478 antipode1: 52.205°S, 179.881°W\n    test 479 antipode2: True\n    test 480 antipode3: 52.205°N, 000.119°E\n    test 481 antipode4: True\n    test 482 antipode5: 52.205°N, 000.119°E\n    test 483 isnormal1: True\n    test 484 isnormal2: False\n    test 485 normal1: False\n    test 486 normal2: True\n    test 487 toStr: 51°28′40″N, 000°00′06″W\n    test 488 toStr: 51.4778°N, 000.0016°W\n    test 489 precision: 0\n    test 490 toStr: 51°28′40″N, 000°00′06″W, +42.00m\n    test 491 isequalTo: True\n    test 492 isequalTo3: False\n    test 493 latlon: (51.4778, -0.0016)\n    test 494 phimlam: (0.898457, -0.000028)\n    test 495 isequalTo: True\n    test 496 isequalTo3: True\n    test 497 latlon: (51.4778, -0.0016)\n    test 498 latlonheight: (51.4778, -0.0016, 42.0)\n    test 499 phimlam: (0.898457, -0.000028)\n    test 500 phimlamheight: (0.898457, -0.000028, 42.0)\n    test 501 latlon: LatLon2Tuple(lat=51.4778, lon=-0.0016)\n    test 502 latlonheight: LatLon3Tuple(lat=51.4778, lon=-0.0016, height=42.0)\n    test 503 phimlam: PhiLam2Tuple(phi=0.898457, lam=-0.000028)\n    test 504 phimlamheight: PhiLam3Tuple(phi=0.898457, lam=-0.000028, height=42.0)\n    test 505 ellipsoidalLatLon: True\n    test 506 sphericalLatLon: True\n    test 507 isCartesian(LatLonBase, None): None\n    test 508 isCartesian(LatLonBase, True): None\n    test 509 isCartesian(LatLonBase, False): None\n    test 510 isLatLon(LatLonBase, None): <class 'pygeodesy.latlonBase.LatLonBase'>\n    test 511 isLatLon(LatLonBase, True): False\n    test 512 isLatLon(LatLonBase, False): False\n    test 513 isNvector(LatLonBase, None): None\n    test 514 isNvector(LatLonBase, True): None\n    test 515 isNvector(LatLonBase, False): None\n\n    testLatLonNvectorBase(pygeodesy.nvectorBase, 25.08.18)\n    test 516 lat, lon: 50.06632°N, 005.71475°W\n    test 517 lat, lon: 50.066389°N, 005.714722°W\n    test 518 isequalTo: True\n    test 519 isequalTo3: True\n    test 520 latlon: (52.205, 0.119)\n    test 521 latlonheight: (52.205, 0.119, 0)\n    test 522 phimlam: (0.911149, 0.002077)\n    test 523 phimlamheight: (0.911149, 0.002077, 0)\n    test 524 isequalTo: False\n    test 525 antipode1: 52.205°S, 179.881°W\n    test 526 antipode2: True\n    test 527 antipode3: 52.205°N, 000.119°E\n    test 528 antipode4: True\n    test 529 antipode5: 52.205°N, 000.119°E\n    test 530 isnormal1: True\n    test 531 isnormal2: False\n    test 532 normal1: False\n    test 533 normal2: True\n    test 534 toStr: 51°28′40″N, 000°00′06″W\n    test 535 toStr: 51.4778°N, 000.0016°W\n    test 536 precision: 0\n    test 537 toStr: 51°28′40″N, 000°00′06″W, +42.00m\n    test 538 isequalTo: True\n    test 539 isequalTo3: False\n    test 540 latlon: (51.4778, -0.0016)\n    test 541 phimlam: (0.898457, -0.000028)\n    test 542 isequalTo: True\n    test 543 isequalTo3: True\n    test 544 latlon: (51.4778, -0.0016)\n    test 545 latlonheight: (51.4778, -0.0016, 42.0)\n    test 546 phimlam: (0.898457, -0.000028)\n    test 547 phimlamheight: (0.898457, -0.000028, 42.0)\n    test 548 latlon: LatLon2Tuple(lat=51.4778, lon=-0.0016)\n    test 549 latlonheight: LatLon3Tuple(lat=51.4778, lon=-0.0016, height=42.0)\n    test 550 phimlam: PhiLam2Tuple(phi=0.898457, lam=-0.000028)\n    test 551 phimlamheight: PhiLam3Tuple(phi=0.898457, lam=-0.000028, height=42.0)\n    test 552 ellipsoidalLatLon: True\n    test 553 sphericalLatLon: True\n    test 554 isCartesian(LatLonNvectorBase, None): None\n    test 555 isCartesian(LatLonNvectorBase, True): None\n    test 556 isCartesian(LatLonNvectorBase, False): None\n    test 557 isLatLon(LatLonNvectorBase, None): <class 'pygeodesy.nvectorBase.LatLonNvectorBase'>\n    test 558 isLatLon(LatLonNvectorBase, True): False\n    test 559 isLatLon(LatLonNvectorBase, False): False\n    test 560 isNvector(LatLonNvectorBase, None): None\n    test 561 isNvector(LatLonNvectorBase, True): None\n    test 562 isNvector(LatLonNvectorBase, False): None\n\n    testLatLonSphericalBase(pygeodesy.sphericalBase, 25.05.26)\n    test 563 lat, lon: 50.06632°N, 005.71475°W\n    test 564 lat, lon: 50.066389°N, 005.714722°W\n    test 565 isequalTo: True\n    test 566 isequalTo3: True\n    test 567 latlon: (52.205, 0.119)\n    test 568 latlonheight: (52.205, 0.119, 0)\n    test 569 phimlam: (0.911149, 0.002077)\n    test 570 phimlamheight: (0.911149, 0.002077, 0)\n    test 571 isequalTo: False\n    test 572 antipode1: 52.205°S, 179.881°W\n    test 573 antipode2: True\n    test 574 antipode3: 52.205°N, 000.119°E\n    test 575 antipode4: True\n    test 576 antipode5: 52.205°N, 000.119°E\n    test 577 isnormal1: True\n    test 578 isnormal2: False\n    test 579 normal1: False\n    test 580 normal2: True\n    test 581 toStr: 51°28′40″N, 000°00′06″W\n    test 582 toStr: 51.4778°N, 000.0016°W\n    test 583 precision: 0\n    test 584 toStr: 51°28′40″N, 000°00′06″W, +42.00m\n    test 585 isequalTo: True\n    test 586 isequalTo3: False\n    test 587 latlon: (51.4778, -0.0016)\n    test 588 phimlam: (0.898457, -0.000028)\n    test 589 isequalTo: True\n    test 590 isequalTo3: True\n    test 591 latlon: (51.4778, -0.0016)\n    test 592 latlonheight: (51.4778, -0.0016, 42.0)\n    test 593 phimlam: (0.898457, -0.000028)\n    test 594 phimlamheight: (0.898457, -0.000028, 42.0)\n    test 595 latlon: LatLon2Tuple(lat=51.4778, lon=-0.0016)\n    test 596 latlonheight: LatLon3Tuple(lat=51.4778, lon=-0.0016, height=42.0)\n    test 597 phimlam: PhiLam2Tuple(phi=0.898457, lam=-0.000028)\n    test 598 phimlamheight: PhiLam3Tuple(phi=0.898457, lam=-0.000028, height=42.0)\n    test 599 ellipsoidalLatLon: True\n    test 600 sphericalLatLon: True\n\n    test 601 rhumbLine: TMorder=6, azi12=30.0, exact=False, lat1=51.4778, lon1=-0.0016, rhumb=Rhumb....ere', a=6371008.771415, f=0, f_=0, b=6371008.771415), k0=0.9996, TMorder=6)\n    test 602 rhumbLine: TMorder=6, azi12=105.484906, exact=False, lat1=51.4778, lon1=-0.0016, rhumb....ere', a=6371008.771415, f=0, f_=0, b=6371008.771415), k0=0.9996, TMorder=6)\n    test 603 rhumbAzimuthTo: 107.563\n    test 604 rhumbDestination: 50.964155°N, 001.853°E\n    test 605 rhumbDestination: True\n    test 606 rhumbDistanceTo: 42186.1\n    test 607 rhumbIntersecant2: (LatLonSphericalBase(58°40′08.68″N, 042°42′40.63″E), LatLonSphericalBase(18°47′05.09″N, 011°00′15.53″W))\n    test 608 rhumbMidpointo-0.5: 51.069759°N, 001.625988°E\n    test 609 rhumbMidpointo: True\n    test 610 rhumbMidpointo-0.0: 51.127°N, 001.338°E\n    test 611 rhumbMidpointo-0.25: 51.09838°N, 001.482038°E\n    test 612 rhumbMidpointo-0.75: 51.041139°N, 001.769848°E\n    test 613 rhumbMidpointo-1.0: 51.012519°N, 001.913619°E\n    test 614 rhumbMidpointo-2.0: 50.898038°N, 002.48782°E\n\n    all 614 testLatLonBase.py tests passed (pygeodesy 26.3.26 Python 2.7.18 64bit arm64_x86_64 geographiclib 1.50 numpy 1.16.6 scipy 1.2.2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 -W  default) 1.110 sec\nrunning /Library/Framewo....ython -W default ~/PyGeodesy/test/testLazily.py\n\n    testing testLazily.py 25.12.06\n    test 1 a_b2e: function\n    test 2 a_b2e2: function\n    test 3 a_b2e22: function\n    test 4 a_b2e32: function\n    test 5 a_b2f: function\n    test 6 a_b2f2: function\n    test 7 a_b2f_: function\n    test 8 a_b2n: function\n    test 9 a_f2b: function\n    test 10 a_f2Tuple: class\n    test 11 a_f_2b: function\n    test 12 acos1: function\n    test 13 acre2ha: function\n    test 14 acre2m2: function\n    test 15 ADict: class\n    test 16 Aer: class\n    test 17 Aer4Tuple: class\n    test 18 agdf: function\n    test 19 albers: module\n    test 20 Albers7Tuple: class\n    test 21 AlbersEqualArea: class\n    test 22 AlbersEqualArea2: class\n    test 23 AlbersEqualArea4: class\n    test 24 AlbersEqualAreaCylindrical: class\n    test 25 AlbersEqualAreaNorth: class\n    test 26 AlbersEqualAreaSouth: class\n    test 27 AlbersError: class\n    test 28 Ang: class\n    test 29 angle2chord: function\n    test 30 angles: module\n    test 31 anstr: function\n    test 32 antipode: function\n    test 33 antipode_: function\n    test 34 Area3Tuple: class\n    test 35 areaOf: function\n    test 36 asin1: function\n    test 37 atan1: function\n    test 38 atan1d: function\n    test 39 atan2: type builtin_function_or_method\n    test 40 atan2b: function\n    test 41 atan2d: function\n    test 42 atan2p: function\n    test 43 Attitude: class\n    test 44 Attitude4Tuple: class\n    test 45 AttitudeError: class\n    test 46 attrs: function\n    test 47 AuxError: class\n    test 48 auxilats: module\n    test 49 Azimuth: class\n    test 50 azimuthal: module\n    test 51 Azimuthal7Tuple: class\n    test 52 AzimuthalError: class\n    test 53 b_f2a: function\n    test 54 b_f_2a: function\n    test 55 Band: class\n    test 56 basics: module\n    test 57 Bearing: class\n    test 58 bearing: function\n    test 59 Bearing2Tuple: class\n    test 60 bearing_: function\n    test 61 Bearing_: class\n    test 62 bearingDMS: function\n    test 63 BetaOmega2Tuple: class\n    test 64 BetaOmega3Tuple: class\n    test 65 BetOmgAlp5Tuple: class\n    test 66 BetOmgGam5Tuple: class\n    test 67 Bool: class\n    test 68 BooleanFHP: class\n    test 69 BooleanGH: class\n    test 70 booleans: module\n    test 71 Bounds2Tuple: class\n    test 72 Bounds4Tuple: class\n    test 73 boundsOf: function\n    test 74 bqrt: function\n    test 75 callername: function\n    test 76 Caps: class pygeodesy.karney.Caps\n    test 77 Cartesian5Tuple: class\n    test 78 cartesianBase: module\n    test 79 cassini: function\n    test 80 CassiniSoldner: class\n    test 81 cbrt: function\n    test 82 cbrt2: function\n    test 83 centroidOf: function\n    test 84 chain2m: function\n    test 85 ChLV: class\n    test 86 ChLV9Tuple: class\n    test 87 ChLVa: class\n    test 88 ChLVe: class\n    test 89 ChLVEN2Tuple: class\n    test 90 ChLVYX2Tuple: class\n    test 91 ChLVyx2Tuple: class\n    test 92 chord2angle: function\n    test 93 circin6: function\n    test 94 Circin6Tuple: class\n    test 95 circle4: function\n    test 96 Circle4Tuple: class\n    test 97 circum3: function\n    test 98 Circum3Tuple: class\n    test 99 circum4: function\n    test 100 circum4_: function\n    test 101 Circum4Tuple: class\n    test 102 classname: function\n    test 103 classnaming: function\n    test 104 clipCS4: function\n    test 105 ClipCS4Tuple: class\n    test 106 clipDegrees: function\n    test 107 ClipError: class\n    test 108 clipFHP4: function\n    test 109 ClipFHP4Tuple: class\n    test 110 clipGH4: function\n    test 111 ClipGH4Tuple: class\n    test 112 clipLB6: function\n    test 113 ClipLB6Tuple: class\n    test 114 clipRadians: function\n    test 115 clips: function\n    test 116 clipSH: function\n    test 117 clipSH3: function\n    test 118 ClipSH3Tuple: class\n    test 119 clipy: module\n    test 120 collins5: function\n    test 121 Collins5Tuple: class\n    test 122 compassAngle: function\n    test 123 compassDMS: function\n    test 124 compassPoint: function\n    test 125 Conformal: class\n    test 126 Conformal2Tuple: class\n    test 127 Conformal3: class\n    test 128 Conformal3B: class\n    test 129 Conformal3Sphere: class\n    test 130 Conformal5Tuple: class\n    test 131 ConformalSphere: class\n    test 132 Conic: class\n    test 133 Conics: class pygeodesy.lcc.Conics\n    test 134 constants: module\n    test 135 copysign0: function\n    test 136 copytype: function\n    test 137 cosineLaw: function\n    test 138 cosineLaw_: function\n    test 139 cot: function\n    test 140 cot_: function\n    test 141 cotd: function\n    test 142 cotd_: function\n    test 143 CrossError: class\n    test 144 crosserrors: function\n    test 145 css: module\n    test 146 Css: class\n    test 147 CSSError: class\n    test 148 Curvature2Tuple: class\n    test 149 date2epoch: function\n    test 150 Datum: class\n    test 151 Datums: class pygeodesy.datums.Datums\n    test 152 datums: module\n    test 153 Deg: function\n    test 154 degDMS: function\n    test 155 degrees: type builtin_function_or_method\n    test 156 Degrees: class\n    test 157 degrees180: function\n    test 158 Degrees2: class\n    test 159 degrees2grades: function\n    test 160 degrees2m: function\n    test 161 degrees360: function\n    test 162 degrees90: function\n    test 163 Degrees_: class\n    test 164 deprecated_class: function\n    test 165 deprecated_function: function\n    test 166 deprecated_method: function\n    test 167 deprecated_property_RO: function\n    test 168 deprecated_Property_RO: function\n    test 169 DeprecationWarnings: class pygeodesy.props.DeprecationWarnings\n    test 170 Destination2Tuple: class\n    test 171 Destination3Tuple: class\n    test 172 DIG: int\n    test 173 Direct9Tuple: class\n    test 174 Distance: class\n    test 175 Distance2Tuple: class\n    test 176 Distance3Tuple: class\n    test 177 Distance4Tuple: class\n    test 178 Distance_: class\n    test 179 DivMod2Tuple: class\n    test 180 dms: module\n    test 181 e22f: function\n    test 182 e2f: function\n    test 183 EasNor2Tuple: class\n    test 184 EasNor3Tuple: class\n    test 185 EasNorAziRk4Tuple: class\n    test 186 EasNorAziRkEqu6Tuple: class\n    test 187 EasNorRadius3Tuple: class\n    test 188 Easting: class\n    test 189 ecef: module\n    test 190 Ecef9Tuple: class\n    test 191 EcefError: class\n    test 192 EcefFarrell21: class\n    test 193 EcefFarrell22: class\n    test 194 EcefKarney: class\n    test 195 ecefLocals: module\n    test 196 EcefMatrix: class\n    test 197 EcefSudano: class\n    test 198 EcefUPC: class\n    test 199 EcefVeness: class\n    test 200 EcefYou: class\n    test 201 egmGeoidHeights: function\n    test 202 elevation2: function\n    test 203 Elevation2Tuple: class\n    test 204 elevations: module\n    test 205 Ellipse: class\n    test 206 Ellipse5Tuple: class\n    test 207 EllipseError: class\n    test 208 ellipses: module\n    test 209 Ellipsoid: class\n    test 210 Ellipsoid2: class\n    test 211 ellipsoidalBase: module\n    test 212 ellipsoidalBaseDI: module\n    test 213 ellipsoidalExact: module\n    test 214 ellipsoidalGeodSolve: module\n    test 215 ellipsoidalKarney: module\n    test 216 ellipsoidalNvector: module\n    test 217 ellipsoidalVincenty: module\n    test 218 ellipsoids: module\n    test 219 Ellipsoids: class pygeodesy.ellipsoids.Ellipsoids\n    test 220 elliptic: module\n    test 221 Elliptic: class\n    test 222 Elliptic3Tuple: class\n    test 223 EllipticError: class\n    test 224 enstr2: function\n    test 225 Enu: class\n    test 226 Enu4Tuple: class\n    test 227 Epoch: class\n    test 228 epoch2date: function\n    test 229 EPS: float\n    test 230 EPS0: float\n    test 231 EPS02: float\n    test 232 EPS1: float\n    test 233 EPS2: float\n    test 234 EPS4: float\n    test 235 EPS8: float\n    test 236 EPS_2: float\n    test 237 epsg: module\n    test 238 Epsg: class\n    test 239 EPSGError: class\n    test 240 equidistant: function\n    test 241 Equidistant: class\n    test 242 EquidistantExact: class\n    test 243 EquidistantGeodSolve: class\n    test 244 EquidistantKarney: class\n    test 245 equirectangular: function\n    test 246 equirectangular4: function\n    test 247 errors: module\n    test 248 etm: module\n    test 249 Etm: class\n    test 250 ETMError: class\n    test 251 euclid: function\n    test 252 euclid_: function\n    test 253 euclidean: function\n    test 254 euclidean_: function\n    test 255 ExactTransverseMercator: class\n    test 256 exception_chaining: function\n    test 257 excessAbc_: function\n    test 258 excessCagnoli_: function\n    test 259 excessGirard_: function\n    test 260 excessKarney: function\n    test 261 excessKarney_: function\n    test 262 excessLHuilier_: function\n    test 263 excessQuad: function\n    test 264 excessQuad_: function\n    test 265 f2e2: function\n    test 266 f2e22: function\n    test 267 f2e32: function\n    test 268 f2f2: function\n    test 269 f2f_: function\n    test 270 f2mul_: function\n    test 271 f2n: function\n    test 272 f2product: function\n    test 273 f_2f: function\n    test 274 F__E: str\n    test 275 F__E_: str\n    test 276 F__E__: str\n    test 277 F__F: str\n    test 278 F__F_: str\n    test 279 F__F__: str\n    test 280 F__G: str\n    test 281 F__G_: str\n    test 282 F__G__: str\n    test 283 F_D: str\n    test 284 F_D60: str\n    test 285 F_D60_: str\n    test 286 F_D60__: str\n    test 287 F_D_: str\n    test 288 F_D__: str\n    test 289 F_DEG: str\n    test 290 F_DEG_: str\n    test 291 F_DEG__: str\n    test 292 F_DM: str\n    test 293 F_DM_: str\n    test 294 F_DM__: str\n    test 295 F_DMS: str\n    test 296 F_DMS_: str\n    test 297 F_DMS__: str\n    test 298 F_MIN: str\n    test 299 F_MIN_: str\n    test 300 F_MIN__: str\n    test 301 F_RAD: str\n    test 302 F_RAD_: str\n    test 303 F_RAD__: str\n    test 304 F_SEC: str\n    test 305 F_SEC_: str\n    test 306 F_SEC__: str\n    test 307 facos1: function\n    test 308 fasin1: function\n    test 309 fatan: function\n    test 310 fatan1: function\n    test 311 fatan2: function\n    test 312 fathom2m: function\n    test 313 favg: function\n    test 314 Fcbrt: class\n    test 315 Fcook: class\n    test 316 Fdot: class\n    test 317 fdot: function\n    test 318 fdot3: function\n    test 319 Fdot_: class\n    test 320 fdot_: function\n    test 321 Feet: class\n    test 322 Fhorner: class\n    test 323 fhorner: function\n    test 324 Fhypot: class\n    test 325 fidw: function\n    test 326 FIx: class\n    test 327 flatLocal: function\n    test 328 flatLocal_: function\n    test 329 flatPolar: function\n    test 330 flatPolar_: function\n    test 331 Flinear: class\n    test 332 Float: class\n    test 333 float0_: function\n    test 334 Float_: class\n    test 335 float_: function\n    test 336 floats_: function\n    test 337 fma: function\n    test 338 fmath: module\n    test 339 fmean: function\n    test 340 fmean_: function\n    test 341 Footprint5Tuple: class\n    test 342 formy: module\n    test 343 Forward4Tuple: class\n    test 344 fpolynomial: function\n    test 345 Fpolynomial: class\n    test 346 Fpowers: class\n    test 347 fpowers: function\n    test 348 fprod: function\n    test 349 fractional: function\n    test 350 frandoms: function\n    test 351 frange: function\n    test 352 Frechet: class\n    test 353 frechet: module\n    test 354 Frechet6Tuple: class\n    test 355 frechet_: function\n    test 356 FrechetCosineLaw: class\n    test 357 FrechetDegrees: class\n    test 358 FrechetDistanceTo: class\n    test 359 FrechetEquirectangular: class\n    test 360 FrechetError: class\n    test 361 FrechetEuclidean: class\n    test 362 FrechetExact: class\n    test 363 FrechetFlatLocal: class\n    test 364 FrechetFlatPolar: class\n    test 365 FrechetHaversine: class\n    test 366 FrechetHubeny: class\n    test 367 FrechetKarney: class\n    test 368 FrechetRadians: class\n    test 369 FrechetThomas: class\n    test 370 FrechetVincentys: class\n    test 371 freduce: type builtin_function_or_method\n    test 372 fremainder: function\n    test 373 Froot: class\n    test 374 Frustum: class\n    test 375 Fsqrt: class\n    test 376 fstats: module\n    test 377 fstr: function\n    test 378 fstrzs: function\n    test 379 fsum: function\n    test 380 Fsum: class\n    test 381 fsum1: function\n    test 382 fsum1_: function\n    test 383 fsum1f_: function\n    test 384 Fsum2Tuple: class\n    test 385 fsum_: function\n    test 386 fsumf_: function\n    test 387 fsums: module\n    test 388 ft2m: function\n    test 389 furlong2m: function\n    test 390 Fwelford: class\n    test 391 Garef: class\n    test 392 gars: module\n    test 393 GARSError: class\n    test 394 gdf: function\n    test 395 GDict: class\n    test 396 geod3solve: module\n    test 397 Geod3Solve8Tuple: class\n    test 398 Geodesic: class\n    test 399 Geodesic3Error: class\n    test 400 Geodesic3Solve: class\n    test 401 Geodesic_WGS84: function\n    test 402 GeodesicAreaExact: class\n    test 403 GeodesicError: class\n    test 404 GeodesicExact: class\n    test 405 geodesici: module\n    test 406 GeodesicLine: class\n    test 407 GeodesicLine3Solve: class\n    test 408 GeodesicLineExact: class\n    test 409 GeodesicLineSolve: class\n    test 410 GeodesicSolve: class\n    test 411 geodesicw: module\n    test 412 geodesicx: module\n    test 413 geodsolve: module\n    test 414 GeodSolve12Tuple: class\n    test 415 geohash: module\n    test 416 Geohash: class\n    test 417 Geohashed: class\n    test 418 GeohashError: class\n    test 419 GeoidEGM96: class\n    test 420 GeoidError: class\n    test 421 GeoidG2012B: class\n    test 422 geoidHeight2: function\n    test 423 GeoidHeight2Tuple: class\n    test 424 GeoidHeight5Tuple: class\n    test 425 GeoidKarney: class\n    test 426 GeoidPGM: class\n    test 427 geoids: module\n    test 428 Georef: class\n    test 429 gnomonic: function\n    test 430 Gnomonic: class\n    test 431 GnomonicExact: class\n    test 432 GnomonicGeodSolve: class\n    test 433 GnomonicKarney: class\n    test 434 grades: function\n    test 435 grades2degrees: function\n    test 436 grades2radians: function\n    test 437 grades400: function\n    test 438 gx: module\n    test 439 gxarea: module\n    test 440 gxbases: module\n    test 441 gxline: module\n    test 442 ha2acre: function\n    test 443 ha2m2: function\n    test 444 halfs2: function\n    test 445 hartzell: function\n    test 446 hartzell4: function\n    test 447 Hausdorff: class\n    test 448 hausdorff: module\n    test 449 Hausdorff6Tuple: class\n    test 450 hausdorff_: function\n    test 451 HausdorffCosineLaw: class\n    test 452 HausdorffDegrees: class\n    test 453 HausdorffDistanceTo: class\n    test 454 HausdorffEquirectangular: class\n    test 455 HausdorffError: class\n    test 456 HausdorffEuclidean: class\n    test 457 HausdorffExact: class\n    test 458 HausdorffFlatLocal: class\n    test 459 HausdorffFlatPolar: class\n    test 460 HausdorffHaversine: class\n    test 461 HausdorffHubeny: class\n    test 462 HausdorffKarney: class\n    test 463 HausdorffRadians: class\n    test 464 HausdorffThomas: class\n    test 465 HausdorffVincentys: class\n    test 466 hav: function\n    test 467 haversine: function\n    test 468 haversine_: function\n    test 469 Height: class\n    test 470 height4: function\n    test 471 Height_: class\n    test 472 HeightCubic: class\n    test 473 HeightError: class\n    test 474 HeightIDWcosineLaw: class\n    test 475 HeightIDWdistanceTo: class\n    test 476 HeightIDWequirectangular: class\n    test 477 HeightIDWeuclidean: class\n    test 478 HeightIDWexact: class\n    test 479 HeightIDWflatLocal: class\n    test 480 HeightIDWflatPolar: class\n    test 481 HeightIDWhaversine: class\n    test 482 HeightIDWhubeny: class\n    test 483 HeightIDWkarney: class\n    test 484 HeightIDWthomas: class\n    test 485 HeightIDWvincentys: class\n    test 486 HeightLinear: class\n    test 487 HeightLSQBiSpline: class\n    test 488 heightOf: function\n    test 489 heightOrthometric: function\n    test 490 heights: module\n    test 491 HeightSmoothBiSpline: class\n    test 492 HeightX: class\n    test 493 horizon: function\n    test 494 hstr: function\n    test 495 hubeny: function\n    test 496 hubeny_: function\n    test 497 hypot: type builtin_function_or_method\n    test 498 hypot1: function\n    test 499 hypot2: function\n    test 500 hypot2_: function\n    test 501 hypot_: function\n    test 502 INF: float\n    test 503 instr: function\n    test 504 Int: class\n    test 505 INT0: int\n    test 506 int1s: function\n    test 507 Int_: class\n    test 508 internals: module\n    test 509 interns: module\n    test 510 Intersect7Tuple: class\n    test 511 intersection2: function\n    test 512 intersection3d3: function\n    test 513 Intersection3Tuple: class\n    test 514 IntersectionError: class\n    test 515 intersections2: function\n    test 516 Intersectool: class\n    test 517 Intersectool5Tuple: class\n    test 518 Intersector: class\n    test 519 Intersector5Tuple: class\n    test 520 Inverse10Tuple: class\n    test 521 isAng: function\n    test 522 isantipode: function\n    test 523 isantipode_: function\n    test 524 isbool: function\n    test 525 isBoolean: function\n    test 526 isCartesian: function\n    test 527 isclass: function\n    test 528 isclockwise: function\n    test 529 isclose: function\n    test 530 iscolinearWith: function\n    test 531 iscomplex: function\n    test 532 isconvex: function\n    test 533 isconvex_: function\n    test 534 isDEPRECATED: function\n    test 535 isenclosedBy: function\n    test 536 isError: function\n    test 537 isfinite: function\n    test 538 isfloat: function\n    test 539 isidentifier: function\n    test 540 isinf: type builtin_function_or_method\n    test 541 isinstanceof: function\n    test 542 isint: function\n    test 543 isint0: function\n    test 544 isiterable: function\n    test 545 isiterablen: function\n    test 546 isiterabletype: function\n    test 547 iskeyword: type builtin_function_or_method\n    test 548 isLatLon: function\n    test 549 isLazy: type NoneType\n    test 550 islistuple: function\n    test 551 isnan: type builtin_function_or_method\n    test 552 isnear0: function\n    test 553 isnear1: function\n    test 554 isnear90: function\n    test 555 isneg: function\n    test 556 isneg0: function\n    test 557 isninf: function\n    test 558 isnon0: function\n    test 559 isnormal: function\n    test 560 isnormal_: function\n    test 561 isNumpy2: function\n    test 562 isNvector: function\n    test 563 isodd: function\n    test 564 isPoints2: function\n    test 565 ispolar: function\n    test 566 isscalar: function\n    test 567 issequence: function\n    test 568 isstr: function\n    test 569 issubclassof: function\n    test 570 isTuple2: function\n    test 571 itemsorted: function\n    test 572 iterNumpy2: function\n    test 573 iterNumpy2over: function\n    test 574 iters: module\n    test 575 karney: module\n    test 576 km2m: function\n    test 577 ktm: module\n    test 578 KTMError: class\n    test 579 KTransverseMercator: class\n    test 580 Lam: class\n    test 581 LambertEqualArea: class\n    test 582 Lambertian: class\n    test 583 Lamd: class\n    test 584 Lat: class\n    test 585 Lat_: class\n    test 586 latDMS: function\n    test 587 latlon2n_xyz: function\n    test 588 LatLon2psxy: class\n    test 589 LatLon2PsxyIter: class\n    test 590 LatLon2Tuple: class\n    test 591 LatLon3Tuple: class\n    test 592 LatLon4Tuple: class\n    test 593 LatLon_: class\n    test 594 LatLonAziRk4Tuple: class\n    test 595 latlonBase: module\n    test 596 LatLonDatum3Tuple: class\n    test 597 LatLonDatum5Tuple: class\n    test 598 latlonDMS: function\n    test 599 latlonDMS_: function\n    test 600 LatLonFHP: class\n    test 601 LatLonGH: class\n    test 602 LatLonPrec3Tuple: class\n    test 603 LatLonPrec5Tuple: class\n    test 604 lazily: module\n    test 605 LazyAttributeError: class\n    test 606 LazyImportError: class\n    test 607 Lcc: class\n    test 608 lcc: module\n    test 609 LCCError: class\n    test 610 len2: function\n    test 611 LenError: class\n    test 612 LimitError: class\n    test 613 limiterrors: function\n    test 614 LLK: class pygeodesy.triaxials.bases.LLK\n    test 615 Local9Tuple: class\n    test 616 LocalCartesian: class\n    test 617 LocalError: class\n    test 618 Lon: class\n    test 619 Lon_: class\n    test 620 lonDMS: function\n    test 621 Los: class\n    test 622 lrstrip: function\n    test 623 Ltp: class\n    test 624 ltp: module\n    test 625 ltpTuples: module\n    test 626 luneOf: function\n    test 627 m2acre: function\n    test 628 m2chain: function\n    test 629 m2degrees: function\n    test 630 m2fathom: function\n    test 631 m2ft: function\n    test 632 m2furlong: function\n    test 633 m2ha: function\n    test 634 m2km: function\n    test 635 m2NM: function\n    test 636 m2radians: function\n    test 637 m2SM: function\n    test 638 m2toise: function\n    test 639 m2yard: function\n    test 640 machine: function\n    test 641 MANT_DIG: int\n    test 642 map1: function\n    test 643 map2: function\n    test 644 MAX: float\n    test 645 max2: function\n    test 646 MAX_EXP: int\n    test 647 meeus2: function\n    test 648 Meeus2Tuple: class\n    test 649 Meter: class\n    test 650 Meter2: class\n    test 651 Meter3: class\n    test 652 Meter_: class\n    test 653 Mgrs: class\n    test 654 mgrs: module\n    test 655 Mgrs4Tuple: class\n    test 656 Mgrs6Tuple: class\n    test 657 MGRSError: class\n    test 658 Middle5Tuple: class\n    test 659 MIN: float\n    test 660 min2: function\n    test 661 MIN_EXP: int\n    test 662 modulename: function\n    test 663 n2e2: function\n    test 664 n2f: function\n    test 665 n2f_: function\n    test 666 n_xyz2latlon: function\n    test 667 n_xyz2philam: function\n    test 668 named: module\n    test 669 namedTuples: module\n    test 670 nameof: function\n    test 671 NAN: float\n    test 672 nearestOn: function\n    test 673 NearestOn2Tuple: class\n    test 674 NearestOn3Tuple: class\n    test 675 nearestOn5: function\n    test 676 nearestOn6: function\n    test 677 NearestOn6Tuple: class\n    test 678 NearestOn8Tuple: class\n    test 679 Ned: class\n    test 680 Ned4Tuple: class\n    test 681 neg: function\n    test 682 NEG0: float\n    test 683 neg_: function\n    test 684 Neighbors8Dict: class\n    test 685 NINF: float\n    test 686 NM2m: function\n    test 687 NN: str\n    test 688 nonfiniterrors: function\n    test 689 norm2: function\n    test 690 norm_: function\n    test 691 normal: function\n    test 692 normal_: function\n    test 693 normDMS: function\n    test 694 Northing: class\n    test 695 NorthPole: class pygeodesy.nvectorBase._N_Vector\n    test 696 notImplemented: function\n    test 697 notOverloaded: function\n    test 698 Number_: class\n    test 699 Numpy2LatLon: class\n    test 700 NumPyError: class\n    test 701 nvectorBase: module\n    test 702 opposing: function\n    test 703 opposing_: function\n    test 704 Orthographic: class\n    test 705 osgr: module\n    test 706 Osgr: class\n    test 707 OSGRError: class\n    test 708 OVERFLOW: float\n    test 709 pairs: function\n    test 710 parse3d: function\n    test 711 parse3llh: function\n    test 712 parseDDDMMSS: function\n    test 713 parseDMS: function\n    test 714 parseDMS2: function\n    test 715 ParseError: class\n    test 716 parseETM5: function\n    test 717 parseMGRS: function\n    test 718 parseOSGR: function\n    test 719 parseRad: function\n    test 720 parseUPS5: function\n    test 721 parseUTM5: function\n    test 722 parseUTMUPS5: function\n    test 723 parseWM: function\n    test 724 perimeterOf: function\n    test 725 PGMError: class\n    test 726 Phi: class\n    test 727 Phid: class\n    test 728 philam2n_xyz: function\n    test 729 PhiLam2Tuple: class\n    test 730 PhiLam3Tuple: class\n    test 731 PhiLam4Tuple: class\n    test 732 PhiLamZet5Tuple: class\n    test 733 PI: float\n    test 734 PI2: float\n    test 735 PI3: float\n    test 736 PI3_2: float\n    test 737 PI4: float\n    test 738 PI_2: float\n    test 739 PI_3: float\n    test 740 PI_4: float\n    test 741 PI_6: float\n    test 742 pierlot: function\n    test 743 pierlotx: function\n    test 744 Point3Tuple: class\n    test 745 points: module\n    test 746 points2: function\n    test 747 Points2Tuple: class\n    test 748 PointsError: class\n    test 749 PointsIter: class\n    test 750 polar2: function\n    test 751 polar2d: function\n    test 752 PolygonArea: class\n    test 753 precision: function\n    test 754 Precision_: class\n    test 755 print_: function\n    test 756 printf: function\n    test 757 Property: class\n    test 758 property_doc_: function\n    test 759 Property_RO: class\n    test 760 property_RO: class\n    test 761 property_ROnce: class\n    test 762 property_ROver: class\n    test 763 props: module\n    test 764 pygeodesy_abspath: str\n    test 765 quadOf: function\n    test 766 R_FM: float\n    test 767 R_GM: float\n    test 768 R_KM: float\n    test 769 R_M: float\n    test 770 R_MA: float\n    test 771 R_MB: float\n    test 772 R_NM: float\n    test 773 R_QM: float\n    test 774 R_SM: float\n    test 775 R_VM: float\n    test 776 Rad: function\n    test 777 radians: type builtin_function_or_method\n    test 778 Radians: class\n    test 779 Radians2: class\n    test 780 radians2m: function\n    test 781 Radians_: class\n    test 782 radiansPI: function\n    test 783 radiansPI2: function\n    test 784 radiansPI_2: function\n    test 785 radical2: function\n    test 786 Radical2Tuple: class\n    test 787 radii11: function\n    test 788 Radii11Tuple: class\n    test 789 Radius: class\n    test 790 Radius_: class\n    test 791 RadiusThetaPhi3Tuple: class\n    test 792 randomrangenerator: function\n    test 793 RangeError: class\n    test 794 rangerrors: function\n    test 795 RefFrame: class\n    test 796 RefFrames: class pygeodesy.trf.RefFrames\n    test 797 remainder: function\n    test 798 reprs: function\n    test 799 ResectionError: class\n    test 800 resections: module\n    test 801 ResidualError: class\n    test 802 Resolutions2Tuple: class\n    test 803 Reverse4Tuple: class\n    test 804 Rhumb: class\n    test 805 rhumb: module\n    test 806 Rhumb8Tuple: class\n    test 807 RhumbAux: class\n    test 808 RhumbError: class\n    test 809 RhumbLine: class\n    test 810 RhumbLineAux: class\n    test 811 RhumbLineSolve: class\n    test 812 RhumbSolve: class\n    test 813 RhumbSolve7Tuple: class\n    test 814 rtp2xyz: function\n    test 815 rtp2xyz_: function\n    test 816 S_DEG: str\n    test 817 S_DMS: int\n    test 818 S_MIN: str\n    test 819 S_RAD: str\n    test 820 S_SEC: str\n    test 821 S_SEP: str\n    test 822 Scalar: class\n    test 823 Scalar_: class\n    test 824 SciPyError: class\n    test 825 SciPyWarning: class\n    test 826 Shape2Tuple: class\n    test 827 signBit: function\n    test 828 signOf: function\n    test 829 simplify: module\n    test 830 simplify1: function\n    test 831 simplifyRDP: function\n    test 832 simplifyRW: function\n    test 833 simplifyVW: function\n    test 834 SinCos2: function\n    test 835 sincos2: function\n    test 836 sincos2_: function\n    test 837 sincos2d: function\n    test 838 sincos2d_: function\n    test 839 sincostan3: function\n    test 840 sincostan3d: function\n    test 841 Sizes3Tuple: class\n    test 842 SM2m: function\n    test 843 snellius3: function\n    test 844 soddy4: function\n    test 845 Soddy4Tuple: class\n    test 846 solveBase: module\n    test 847 SouthPole: class pygeodesy.nvectorBase._N_Vector\n    test 848 sphericalBase: module\n    test 849 sphericalNvector: module\n    test 850 sphericalTrigonometry: module\n    test 851 splice: function\n    test 852 sqrt0: function\n    test 853 sqrt3: function\n    test 854 sqrt_a: function\n    test 855 Stereographic: class\n    test 856 Str: class\n    test 857 str2ub: function\n    test 858 Str_: class\n    test 859 streprs: module\n    test 860 strs: function\n    test 861 Survey3Tuple: class\n    test 862 tan: function\n    test 863 tan_: function\n    test 864 tan_2: function\n    test 865 tand: function\n    test 866 tand_: function\n    test 867 tanPI_2_2: function\n    test 868 thomas: function\n    test 869 thomas_: function\n    test 870 tienstra7: function\n    test 871 Tienstra7Tuple: class\n    test 872 toCss: function\n    test 873 toDMS: function\n    test 874 toEtm8: function\n    test 875 toise2m: function\n    test 876 toLcc: function\n    test 877 toMgrs: function\n    test 878 toOsgr: function\n    test 879 toUps8: function\n    test 880 toUtm8: function\n    test 881 toUtmUps8: function\n    test 882 toWm: function\n    test 883 Transform: class\n    test 884 Transforms: class pygeodesy.datums.Transforms\n    test 885 TransformXform: class\n    test 886 trf: module\n    test 887 TRFError: class\n    test 888 trfTransform0: function\n    test 889 trfTransforms: function\n    test 890 TRFXform: class\n    test 891 trfXform: function\n    test 892 TRFXform7Tuple: class\n    test 893 triAngle: function\n    test 894 triAngle5: function\n    test 895 TriAngle5Tuple: class\n    test 896 Triangle7Tuple: class\n    test 897 Triangle8Tuple: class\n    test 898 TriangleError: class\n    test 899 triArea: function\n    test 900 Triaxial: class\n    test 901 Triaxial3: class\n    test 902 Triaxial3B: class\n    test 903 Triaxial3s: class pygeodesy.triaxials.triaxial3.Triaxial3s\n    test 904 Triaxial_: class\n    test 905 TriaxialError: class\n    test 906 Triaxials: class pygeodesy.triaxials.triaxial5.Triaxials\n    test 907 triaxials: module\n    test 908 triaxum5: function\n    test 909 Triaxum5Tuple: class\n    test 910 trilaterate2d2: function\n    test 911 trilaterate3d2: function\n    test 912 Trilaterate5Tuple: class\n    test 913 triSide: function\n    test 914 triSide2: function\n    test 915 TriSide2Tuple: class\n    test 916 triSide4: function\n    test 917 TriSide4Tuple: class\n    test 918 truncate: function\n    test 919 Tuple2LatLon: class\n    test 920 typename: function\n    test 921 tyr3d: function\n    test 922 ub2str: function\n    test 923 UnitError: class\n    test 924 units: module\n    test 925 unitsBase: module\n    test 926 unroll180: function\n    test 927 unrollPI: function\n    test 928 unsigned0: function\n    test 929 unstr: function\n    test 930 ups: module\n    test 931 Ups: class\n    test 932 UPSError: class\n    test 933 upsZoneBand5: function\n    test 934 utily: module\n    test 935 Utm: class\n    test 936 utm: module\n    test 937 UTMError: class\n    test 938 UtmUps: function\n    test 939 utmups: module\n    test 940 UtmUps2Tuple: class\n    test 941 UtmUps5Tuple: class\n    test 942 UtmUps8Tuple: class\n    test 943 utmupsBase: module\n    test 944 UTMUPSError: class\n    test 945 UtmUpsLatLon5Tuple: class\n    test 946 utmupsValidate: function\n    test 947 utmupsValidateOK: function\n    test 948 utmupsZoneBand5: function\n    test 949 utmZoneBand5: function\n    test 950 Uvw: class\n    test 951 Uvw3Tuple: class\n    test 952 vector2d: module\n    test 953 Vector2Tuple: class\n    test 954 vector3d: module\n    test 955 Vector3d: class\n    test 956 vector3dBase: module\n    test 957 Vector3Tuple: class\n    test 958 Vector4Tuple: class\n    test 959 VectorError: class\n    test 960 version: str\n    test 961 VincentyError: class\n    test 962 vincentys: function\n    test 963 vincentys_: function\n    test 964 webmercator: module\n    test 965 WebMercatorError: class\n    test 966 wgrs: module\n    test 967 WGRSError: class\n    test 968 wildberger3: function\n    test 969 Wm: class\n    test 970 wrap180: function\n    test 971 wrap360: function\n    test 972 wrap90: function\n    test 973 wrap_normal: function\n    test 974 wrapPI: function\n    test 975 wrapPI2: function\n    test 976 wrapPI_2: function\n    test 977 XDict: class\n    test 978 xyz2rtp: function\n    test 979 xyz2rtp_: function\n    test 980 Xyz4Tuple: class\n    test 981 XyzLocal: class\n    test 982 yard2m: function\n    test 983 zcrt: function\n    test 984 Zone: class\n    test 985 zqrt: function\n\n    test 986 isLazy: None\n    test 987 missing in lazily._all_imports: None\n    test 988 missing in pygeodesy.__all__: rhumb.aux_, rhumb.ekx, rhumb.solve, triaxials.bases, triaxials.conformal3, triaxials.triaxial3, triaxials.triaxial5  FAILED, KNOWN, expected None\n\n    test 989 cmd: /Library/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python -c 'import sys; import pygeodesy; sys.exit(0 if pygeodesy.isLazy == %s else 1)'\n    test 990 PYGEODESY_LAZY_IMPORT=0: 0\n    test 991 PYGEODESY_LAZY_IMPORT=1: 0\n    test 992 PYGEODESY_LAZY_IMPORT=2: 0\n    test 993 PYGEODESY_LAZY_IMPORT=3: 0\n    test 994 PYGEODESY_LAZY_IMPORT=4: 0\n\n    test 995 items: _ALL_MODS\n    test 996 pygeodesy: <module 'pygeodesy' from './pygeodesy/__init__.pyc'>\n    test 997 pygeodesy.StringIO: None\n    test 998 pygeodesy.__future__: None\n    test 999 pygeodesy.albers: <module 'pygeodesy.albers' from './pygeodesy/albers.pyc'>\n    test 1000 pygeodesy.angles: <module 'pygeodesy.angles' from './pygeodesy/angles.pyc'>\n    test 1001 pygeodesy.auxilats: <module 'pygeodesy.auxilats' from './pygeodesy/auxilats/__init__.pyc'>\n    test 1002 pygeodesy.auxilats._CX_Rs: <module 'pygeodesy.auxilats._CX_Rs' from './pygeodesy/auxilats/_CX_Rs.pyc'>\n    test 1003 pygeodesy.auxilats.__future__: None\n    test 1004 pygeodesy.auxilats.auxAngle: <module 'pygeodesy.auxilats.auxAngle' from './pygeodesy/auxilats/auxAngle.pyc'>\n    test 1005 pygeodesy.auxilats.auxDLat: <module 'pygeodesy.auxilats.auxDLat' from './pygeodesy/auxilats/auxDLat.pyc'>\n    test 1006 pygeodesy.auxilats.auxDST: <module 'pygeodesy.auxilats.auxDST' from './pygeodesy/auxilats/auxDST.pyc'>\n    test 1007 pygeodesy.auxilats.auxLat: <module 'pygeodesy.auxilats.auxLat' from './pygeodesy/auxilats/auxLat.pyc'>\n    test 1008 pygeodesy.auxilats.auxily: <module 'pygeodesy.auxilats.auxily' from './pygeodesy/auxilats/auxily.pyc'>\n    test 1009 pygeodesy.auxilats.math: None\n    test 1010 pygeodesy.auxilats.pygeodesy: None\n    test 1011 pygeodesy.azimuthal: <module 'pygeodesy.azimuthal' from './pygeodesy/azimuthal.pyc'>\n    test 1012 pygeodesy.basics: <module 'pygeodesy.basics' from './pygeodesy/basics.pyc'>\n    test 1013 pygeodesy.booleans: <module 'pygeodesy.booleans' from './pygeodesy/booleans.pyc'>\n    test 1014 pygeodesy.cartesianBase: <module 'pygeodesy.cartesianBase' from './pygeodesy/cartesianBase.pyc'>\n    test 1015 pygeodesy.clipy: <module 'pygeodesy.clipy' from './pygeodesy/clipy.pyc'>\n    test 1016 pygeodesy.cmath: None\n    test 1017 pygeodesy.collections: None\n    test 1018 pygeodesy.constants: <module 'pygeodesy.constants' from './pygeodesy/constants.pyc'>\n    test 1019 pygeodesy.contextlib: None\n    test 1020 pygeodesy.copy: None\n    test 1021 pygeodesy.css: <module 'pygeodesy.css' from './pygeodesy/css.pyc'>\n    test 1022 pygeodesy.ctypes: None\n    test 1023 pygeodesy.datums: <module 'pygeodesy.datums' from './pygeodesy/datums.pyc'>\n    test 1024 pygeodesy.deprecated: <module 'pygeodesy.deprecated' from './pygeodesy/deprecated/__init__.pyc'>\n    test 1025 pygeodesy.deprecated.bases: <module 'pygeodesy.deprecated.bases' from './pygeodesy/deprecated/bases.pyc'>\n    test 1026 pygeodesy.deprecated.classes: <module 'pygeodesy.deprecated.classes' from './pygeodesy/deprecated/classes.pyc'>\n    test 1027 pygeodesy.deprecated.consterns: <module 'pygeodesy.deprecated.consterns' from './pygeodesy/deprecated/consterns.pyc'>\n    test 1028 pygeodesy.deprecated.datum: <module 'pygeodesy.deprecated.datum' from './pygeodesy/deprecated/datum.pyc'>\n    test 1029 pygeodesy.deprecated.functions: <module 'pygeodesy.deprecated.functions' from './pygeodesy/deprecated/functions.pyc'>\n    test 1030 pygeodesy.deprecated.nvector: <module 'pygeodesy.deprecated.nvector' from './pygeodesy/deprecated/nvector.pyc'>\n    test 1031 pygeodesy.deprecated.pygeodesy: None\n    test 1032 pygeodesy.deprecated.rhumbBase: <module 'pygeodesy.deprecated.rhumbBase' from './pygeodesy/deprecated/rhumbBase.pyc'>\n    test 1033 pygeodesy.deprecated.rhumbaux: <module 'pygeodesy.deprecated.rhumbaux' from './pygeodesy/deprecated/rhumbaux.pyc'>\n    test 1034 pygeodesy.deprecated.rhumbsolve: <module 'pygeodesy.deprecated.rhumbsolve' from './pygeodesy/deprecated/rhumbsolve.pyc'>\n    test 1035 pygeodesy.deprecated.rhumbx: <module 'pygeodesy.deprecated.rhumbx' from './pygeodesy/deprecated/rhumbx.pyc'>\n    test 1036 pygeodesy.dms: <module 'pygeodesy.dms' from './pygeodesy/dms.pyc'>\n    test 1037 pygeodesy.ecef: <module 'pygeodesy.ecef' from './pygeodesy/ecef.pyc'>\n    test 1038 pygeodesy.ecefLocals: <module 'pygeodesy.ecefLocals' from './pygeodesy/ecefLocals.pyc'>\n    test 1039 pygeodesy.elevations: <module 'pygeodesy.elevations' from './pygeodesy/elevations.pyc'>\n    test 1040 pygeodesy.ellipses: <module 'pygeodesy.ellipses' from './pygeodesy/ellipses.pyc'>\n    test 1041 pygeodesy.ellipsoidalBase: <module 'pygeodesy.ellipsoidalBase' from './pygeodesy/ellipsoidalBase.pyc'>\n    test 1042 pygeodesy.ellipsoidalBaseDI: <module 'pygeodesy.ellipsoidalBaseDI' from './pygeodesy/ellipsoidalBaseDI.pyc'>\n    test 1043 pygeodesy.ellipsoidalExact: <module 'pygeodesy.ellipsoidalExact' from './pygeodesy/ellipsoidalExact.pyc'>\n    test 1044 pygeodesy.ellipsoidalGeodSolve: <module 'pygeodesy.ellipsoidalGeodSolve' from './pygeodesy/ellipsoidalGeodSolve.pyc'>\n    test 1045 pygeodesy.ellipsoidalKarney: <module 'pygeodesy.ellipsoidalKarney' from './pygeodesy/ellipsoidalKarney.pyc'>\n    test 1046 pygeodesy.ellipsoidalNvector: <module 'pygeodesy.ellipsoidalNvector' from './pygeodesy/ellipsoidalNvector.pyc'>\n    test 1047 pygeodesy.ellipsoidalVincenty: <module 'pygeodesy.ellipsoidalVincenty' from './pygeodesy/ellipsoidalVincenty.pyc'>\n    test 1048 pygeodesy.ellipsoids: <module 'pygeodesy.ellipsoids' from './pygeodesy/ellipsoids.pyc'>\n    test 1049 pygeodesy.elliptic: <module 'pygeodesy.elliptic' from './pygeodesy/elliptic.pyc'>\n    test 1050 pygeodesy.epsg: <module 'pygeodesy.epsg' from './pygeodesy/epsg.pyc'>\n    test 1051 pygeodesy.errors: <module 'pygeodesy.errors' from './pygeodesy/errors.pyc'>\n    test 1052 pygeodesy.etm: <module 'pygeodesy.etm' from './pygeodesy/etm.pyc'>\n    test 1053 pygeodesy.fmath: <module 'pygeodesy.fmath' from './pygeodesy/fmath.pyc'>\n    test 1054 pygeodesy.formy: <module 'pygeodesy.formy' from './pygeodesy/formy.pyc'>\n    test 1055 pygeodesy.frechet: <module 'pygeodesy.frechet' from './pygeodesy/frechet.pyc'>\n    test 1056 pygeodesy.fstats: <module 'pygeodesy.fstats' from './pygeodesy/fstats.pyc'>\n    test 1057 pygeodesy.fsums: <module 'pygeodesy.fsums' from './pygeodesy/fsums.pyc'>\n    test 1058 pygeodesy.functools: None\n    test 1059 pygeodesy.gars: <module 'pygeodesy.gars' from './pygeodesy/gars.pyc'>\n    test 1060 pygeodesy.geod3solve: <module 'pygeodesy.geod3solve' from './pygeodesy/geod3solve.pyc'>\n    test 1061 pygeodesy.geodesici: <module 'pygeodesy.geodesici' from './pygeodesy/geodesici.pyc'>\n    test 1062 pygeodesy.geodesicw: <module 'pygeodesy.geodesicw' from './pygeodesy/geodesicw.pyc'>\n    test 1063 pygeodesy.geodesicx: <module 'pygeodesy.geodesicx' from './pygeodesy/geodesicx/__init__.pyc'>\n    test 1064 pygeodesy.geodesicx.__future__: None\n    test 1065 pygeodesy.geodesicx.gx: <module 'pygeodesy.geodesicx.gx' from './pygeodesy/geodesicx/gx.pyc'>\n    test 1066 pygeodesy.geodesicx.gxarea: <module 'pygeodesy.geodesicx.gxarea' from './pygeodesy/geodesicx/gxarea.pyc'>\n    test 1067 pygeodesy.geodesicx.gxbases: <module 'pygeodesy.geodesicx.gxbases' from './pygeodesy/geodesicx/gxbases.pyc'>\n    test 1068 pygeodesy.geodesicx.gxline: <module 'pygeodesy.geodesicx.gxline' from './pygeodesy/geodesicx/gxline.pyc'>\n    test 1069 pygeodesy.geodesicx.math: None\n    test 1070 pygeodesy.geodesicx.pygeodesy: None\n    test 1071 pygeodesy.geodsolve: <module 'pygeodesy.geodsolve' from './pygeodesy/geodsolve.pyc'>\n    test 1072 pygeodesy.geographiclib: None\n    test 1073 pygeodesy.geohash: <module 'pygeodesy.geohash' from './pygeodesy/geohash.pyc'>\n    test 1074 pygeodesy.geoids: <module 'pygeodesy.geoids' from './pygeodesy/geoids.pyc'>\n    test 1075 pygeodesy.hausdorff: <module 'pygeodesy.hausdorff' from './pygeodesy/hausdorff.pyc'>\n    test 1076 pygeodesy.heights: <module 'pygeodesy.heights' from './pygeodesy/heights.pyc'>\n    test 1077 pygeodesy.httplib: None\n    test 1078 pygeodesy.importlib: None\n    test 1079 pygeodesy.inspect: None\n    test 1080 pygeodesy.internals: <module 'pygeodesy.internals' from './pygeodesy/internals.pyc'>\n    test 1081 pygeodesy.interns: <module 'pygeodesy.interns' from './pygeodesy/interns.pyc'>\n    test 1082 pygeodesy.iters: <module 'pygeodesy.iters' from './pygeodesy/iters.pyc'>\n    test 1083 pygeodesy.json: None\n    test 1084 pygeodesy.karney: <module 'pygeodesy.karney' from './pygeodesy/karney.pyc'>\n    test 1085 pygeodesy.keyword: None\n    test 1086 pygeodesy.ktm: <module 'pygeodesy.ktm' from './pygeodesy/ktm.pyc'>\n    test 1087 pygeodesy.latlonBase: <module 'pygeodesy.latlonBase' from './pygeodesy/latlonBase.pyc'>\n    test 1088 pygeodesy.lazily: <module 'pygeodesy.lazily' from './pygeodesy/lazily.pyc'>\n    test 1089 pygeodesy.lcc: <module 'pygeodesy.lcc' from './pygeodesy/lcc.pyc'>\n    test 1090 pygeodesy.ltp: <module 'pygeodesy.ltp' from './pygeodesy/ltp.pyc'>\n    test 1091 pygeodesy.ltpTuples: <module 'pygeodesy.ltpTuples' from './pygeodesy/ltpTuples.pyc'>\n    test 1092 pygeodesy.math: None\n    test 1093 pygeodesy.mgrs: <module 'pygeodesy.mgrs' from './pygeodesy/mgrs.pyc'>\n    test 1094 pygeodesy.named: <module 'pygeodesy.named' from './pygeodesy/named.pyc'>\n    test 1095 pygeodesy.namedTuples: <module 'pygeodesy.namedTuples' from './pygeodesy/namedTuples.pyc'>\n    test 1096 pygeodesy.numbers: None\n    test 1097 pygeodesy.numpy: None\n    test 1098 pygeodesy.nvectorBase: <module 'pygeodesy.nvectorBase' from './pygeodesy/nvectorBase.pyc'>\n    test 1099 pygeodesy.operator: None\n    test 1100 pygeodesy.os: None\n    test 1101 pygeodesy.osgr: <module 'pygeodesy.osgr' from './pygeodesy/osgr.pyc'>\n    test 1102 pygeodesy.platform: None\n    test 1103 pygeodesy.points: <module 'pygeodesy.points' from './pygeodesy/points.pyc'>\n    test 1104 pygeodesy.props: <module 'pygeodesy.props' from './pygeodesy/props.pyc'>\n    test 1105 pygeodesy.pygeodesy: None\n    test 1106 pygeodesy.random: None\n    test 1107 pygeodesy.resections: <module 'pygeodesy.resections' from './pygeodesy/resections.pyc'>\n    test 1108 pygeodesy.rhumb: <module 'pygeodesy.rhumb' from './pygeodesy/rhumb/__init__.pyc'>\n    test 1109 pygeodesy.rhumb.__future__: None\n    test 1110 pygeodesy.rhumb.aux_: <module 'pygeodesy.rhumb.aux_' from './pygeodesy/rhumb/aux_.pyc'>\n    test 1111 pygeodesy.rhumb.bases: <module 'pygeodesy.rhumb.bases' from './pygeodesy/rhumb/bases.pyc'>\n    test 1112 pygeodesy.rhumb.ekx: <module 'pygeodesy.rhumb.ekx' from './pygeodesy/rhumb/ekx.pyc'>\n    test 1113 pygeodesy.rhumb.math: None\n    test 1114 pygeodesy.rhumb.pygeodesy: None\n    test 1115 pygeodesy.rhumb.solve: <module 'pygeodesy.rhumb.solve' from './pygeodesy/rhumb/solve.pyc'>\n    test 1116 pygeodesy.scipy: None\n    test 1117 pygeodesy.simplify: <module 'pygeodesy.simplify' from './pygeodesy/simplify.pyc'>\n    test 1118 pygeodesy.solveBase: <module 'pygeodesy.solveBase' from './pygeodesy/solveBase.pyc'>\n    test 1119 pygeodesy.sphericalBase: <module 'pygeodesy.sphericalBase' from './pygeodesy/sphericalBase.pyc'>\n    test 1120 pygeodesy.sphericalNvector: <module 'pygeodesy.sphericalNvector' from './pygeodesy/sphericalNvector.pyc'>\n    test 1121 pygeodesy.sphericalTrigonometry: <module 'pygeodesy.sphericalTrigonometry' from './pygeodesy/sphericalTrigonometry.pyc'>\n    test 1122 pygeodesy.streprs: <module 'pygeodesy.streprs' from './pygeodesy/streprs.pyc'>\n    test 1123 pygeodesy.string: None\n    test 1124 pygeodesy.struct: None\n    test 1125 pygeodesy.sys: None\n    test 1126 pygeodesy.trf: <module 'pygeodesy.trf' from './pygeodesy/trf.pyc'>\n    test 1127 pygeodesy.triaxials: <module 'pygeodesy.triaxials' from './pygeodesy/triaxials/__init__.pyc'>\n    test 1128 pygeodesy.triaxials.__future__: None\n    test 1129 pygeodesy.triaxials.bases: <module 'pygeodesy.triaxials.bases' from './pygeodesy/triaxials/bases.pyc'>\n    test 1130 pygeodesy.triaxials.conformal3: <module 'pygeodesy.triaxials.conformal3' from './pygeodesy/triaxials/conformal3.pyc'>\n    test 1131 pygeodesy.triaxials.math: None\n    test 1132 pygeodesy.triaxials.pygeodesy: None\n    test 1133 pygeodesy.triaxials.random: None\n    test 1134 pygeodesy.triaxials.triaxial3: <module 'pygeodesy.triaxials.triaxial3' from './pygeodesy/triaxials/triaxial3.pyc'>\n    test 1135 pygeodesy.triaxials.triaxial5: <module 'pygeodesy.triaxials.triaxial5' from './pygeodesy/triaxials/triaxial5.pyc'>\n    test 1136 pygeodesy.units: <module 'pygeodesy.units' from './pygeodesy/units.pyc'>\n    test 1137 pygeodesy.unitsBase: <module 'pygeodesy.unitsBase' from './pygeodesy/unitsBase.pyc'>\n    test 1138 pygeodesy.ups: <module 'pygeodesy.ups' from './pygeodesy/ups.pyc'>\n    test 1139 pygeodesy.urllib2: None\n    test 1140 pygeodesy.utily: <module 'pygeodesy.utily' from './pygeodesy/utily.pyc'>\n    test 1141 pygeodesy.utm: <module 'pygeodesy.utm' from './pygeodesy/utm.pyc'>\n    test 1142 pygeodesy.utmups: <module 'pygeodesy.utmups' from './pygeodesy/utmups.pyc'>\n    test 1143 pygeodesy.utmupsBase: <module 'pygeodesy.utmupsBase' from './pygeodesy/utmupsBase.pyc'>\n    test 1144 pygeodesy.vector2d: <module 'pygeodesy.vector2d' from './pygeodesy/vector2d.pyc'>\n    test 1145 pygeodesy.vector3d: <module 'pygeodesy.vector3d' from './pygeodesy/vector3d.pyc'>\n    test 1146 pygeodesy.vector3dBase: <module 'pygeodesy.vector3dBase' from './pygeodesy/vector3dBase.pyc'>\n    test 1147 pygeodesy.webmercator: <module 'pygeodesy.webmercator' from './pygeodesy/webmercator.pyc'>\n    test 1148 pygeodesy.wgrs: <module 'pygeodesy.wgrs' from './pygeodesy/wgrs.pyc'>\n\n    1 of 1148 testLazily.py tests (0.1%) FAILED, ALL KNOWN (pygeodesy 26.3.26 Python 2.7.18 64bit arm64_x86_64 geographiclib 1.50 numpy 1.16.6 scipy 1.2.2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 -W  default) 908.624 ms\nrunning /Library/Framewo....ython -W default ~/PyGeodesy/test/testLcc.py\n\n    testing testLcc.py 23.03.27 (module pygeodesy.lcc 25.08.31)\n\n    testLcc(pygeodesy.ellipsoidalNvector, 25.05.12)\n    test 1 lb1: 448251.0 5411932.0001\n    test 2 lb1: 448251, 5411932\n    test 3 lb1: [E:448251, N:5411932]\n    test 4 lb1: WRF_Lb.WGS84\n    test 5 lb1: lb1\n    test 6 lb1: (81.929348, -79.558697)\n    test 7 lb1: (1.429937, -1.388561)\n    test 8 LatLon: 46.5°N, 003.0°E\n    test 9 LatLon: 46°30′00.0″N, 003°00′00.0″E\n    test 10 toLcc1: 700000 6600000\n    test 11 toLcc1: 46.5°N, 003.0°E\n    test 12 lb2: 1894411 1564650\n    test 13 lb2: Clarke1866\n    test 14 lb2: lb2\n    test 15 toLatLon2: 35.0°N, 075.0°W\n    test 16 toLatLon2: 35°00′00.0007″N, 074°59′59.9997″W\n    test 17 toLatLon2: NAD27\n    test 18 toLcc2: 1894410.9 1564649.5\n    test 19 toLcc2: [E:1894411, N:1564649]\n    test 20 toLcc2: Snyder.NAD27\n\n    test 21 Be08Lb: 49.833334°N, 003.025883°E\n    test 22 Be08Lb: GRS80\n\n    test 23 Be08Lb: 49.833334°N, 004.359216°E\n    test 24 Be08Lb: GRS80\n\n    test 25 Be08Lb: 49.833334°N, 005.692549°E\n    test 26 Be08Lb: GRS80\n\n    test 27 Be08Lb: 51.166667°N, 003.025883°E\n    test 28 Be08Lb: GRS80\n\n    test 29 Be08Lb: 51.166667°N, 004.359216°E\n    test 30 Be08Lb: GRS80\n\n    test 31 Be08Lb: 51.166667°N, 005.692549°E\n    test 32 Be08Lb: GRS80\n\n    test 33 Be72Lb: 49.833334°N, 003.034153°E\n    test 34 Be72Lb: NAD83\n\n    test 35 Be72Lb: 49.833334°N, 004.367487°E\n    test 36 Be72Lb: NAD83\n\n    test 37 Be72Lb: 49.833334°N, 005.70082°E\n    test 38 Be72Lb: NAD83\n\n    test 39 Be72Lb: 51.166667°N, 003.034153°E\n    test 40 Be72Lb: NAD83\n\n    test 41 Be72Lb: 51.166667°N, 004.367487°E\n    test 42 Be72Lb: NAD83\n\n    test 43 Be72Lb: 51.166667°N, 005.70082°E\n    test 44 Be72Lb: NAD83\n\n    test 45 Fr93Lb: 49.0°N, 002.0°W\n    test 46 Fr93Lb: WGS84\n\n    test 47 Fr93Lb: 49.0°N, 003.0°E\n    test 48 Fr93Lb: WGS84\n\n    test 49 Fr93Lb: 49.0°N, 008.0°E\n    test 50 Fr93Lb: WGS84\n\n    test 51 Fr93Lb: 44.0°N, 002.0°W\n    test 52 Fr93Lb: WGS84\n\n    test 53 Fr93Lb: 44.0°N, 003.0°E\n    test 54 Fr93Lb: WGS84\n\n    test 55 Fr93Lb: 44.0°N, 008.0°E\n    test 56 Fr93Lb: WGS84\n\n    test 57 MaNLb: 31.73°N, 008.54°W\n    test 58 MaNLb: NTF\n\n    test 59 MaNLb: 31.73°N, 005.4°W\n    test 60 MaNLb: NTF\n\n    test 61 MaNLb: 31.73°N, 002.26°W\n    test 62 MaNLb: NTF\n\n    test 63 MaNLb: 34.87°N, 008.54°W\n    test 64 MaNLb: NTF\n\n    test 65 MaNLb: 34.87°N, 005.4°W\n    test 66 MaNLb: NTF\n\n    test 67 MaNLb: 34.87°N, 002.26°W\n    test 68 MaNLb: NTF\n\n    test 69 MxLb: 17.5°N, 114.0°W\n    test 70 MxLb: WGS84\n\n    test 71 MxLb: 17.5°N, 102.0°W\n    test 72 MxLb: WGS84\n\n    test 73 MxLb: 17.5°N, 090.0°W\n    test 74 MxLb: WGS84\n\n    test 75 MxLb: 29.5°N, 114.0°W\n    test 76 MxLb: WGS84\n\n    test 77 MxLb: 29.5°N, 102.0°W\n    test 78 MxLb: WGS84\n\n    test 79 MxLb: 29.5°N, 090.0°W\n    test 80 MxLb: WGS84\n\n    test 81 PyT_Lb: 45.898939°N, 000.540154°E\n    test 82 PyT_Lb: NTF\n\n    test 83 PyT_Lb: 45.898939°N, 002.337229°E\n    test 84 PyT_Lb: NTF\n\n    test 85 PyT_Lb: 45.898939°N, 004.134305°E\n    test 86 PyT_Lb: NTF\n\n    test 87 PyT_Lb: 47.696014°N, 000.540154°E\n    test 88 PyT_Lb: NTF\n\n    test 89 PyT_Lb: 47.696014°N, 002.337229°E\n    test 90 PyT_Lb: NTF\n\n    test 91 PyT_Lb: 47.696014°N, 004.134305°E\n    test 92 PyT_Lb: NTF\n\n    test 93 Snyder: 33.0°N, 108.0°W\n    test 94 Snyder: NAD27\n\n    test 95 Snyder: 33.0°N, 096.0°W\n    test 96 Snyder: NAD27\n\n    test 97 Snyder: 33.0°N, 084.0°W\n    test 98 Snyder: NAD27\n\n    test 99 Snyder: 45.0°N, 108.0°W\n    test 100 Snyder: NAD27\n\n    test 101 Snyder: 45.0°N, 096.0°W\n    test 102 Snyder: NAD27\n\n    test 103 Snyder: 45.0°N, 084.0°W\n    test 104 Snyder: NAD27\n\n    test 105 USA_Lb: 33.0°N, 108.0°W\n    test 106 USA_Lb: WGS84\n\n    test 107 USA_Lb: 33.0°N, 096.0°W\n    test 108 USA_Lb: WGS84\n\n    test 109 USA_Lb: 33.0°N, 084.0°W\n    test 110 USA_Lb: WGS84\n\n    test 111 USA_Lb: 45.0°N, 108.0°W\n    test 112 USA_Lb: WGS84\n\n    test 113 USA_Lb: 45.0°N, 096.0°W\n    test 114 USA_Lb: WGS84\n\n    test 115 USA_Lb: 45.0°N, 084.0°W\n    test 116 USA_Lb: WGS84\n\n    test 117 WRF_Lb: 33.0°N, 109.0°W\n    test 118 WRF_Lb: WGS84\n\n    test 119 WRF_Lb: 33.0°N, 097.0°W\n    test 120 WRF_Lb: WGS84\n\n    test 121 WRF_Lb: 33.0°N, 085.0°W\n    test 122 WRF_Lb: WGS84\n\n    test 123 WRF_Lb: 45.0°N, 109.0°W\n    test 124 WRF_Lb: WGS84\n\n    test 125 WRF_Lb: 45.0°N, 097.0°W\n    test 126 WRF_Lb: WGS84\n\n    test 127 WRF_Lb: 45.0°N, 085.0°W\n    test 128 WRF_Lb: WGS84\n\n\n    testLcc(pygeodesy.ellipsoidalVincenty, 25.05.26)\n    test 129 lb1: 448251.0 5411932.0001\n    test 130 lb1: 448251, 5411932\n    test 131 lb1: [E:448251, N:5411932]\n    test 132 lb1: WRF_Lb.WGS84\n    test 133 lb1: lb1\n    test 134 lb1: (81.929348, -79.558697)\n    test 135 lb1: (1.429937, -1.388561)\n    test 136 LatLon: 46.5°N, 003.0°E\n    test 137 LatLon: 46°30′00.0″N, 003°00′00.0″E\n    test 138 toLcc1: 700000 6600000\n    test 139 toLcc1: 46.5°N, 003.0°E\n    test 140 lb2: 1894411 1564650\n    test 141 lb2: Clarke1866\n    test 142 lb2: lb2\n    test 143 toLatLon2: 35.0°N, 075.0°W\n    test 144 toLatLon2: 35°00′00.0007″N, 074°59′59.9997″W\n    test 145 toLatLon2: NAD27\n    test 146 toLcc2: 1894410.9 1564649.5\n    test 147 toLcc2: [E:1894411, N:1564649]\n    test 148 toLcc2: Snyder.NAD27\n\n    test 149 Be08Lb: 49.833334°N, 003.025883°E\n    test 150 Be08Lb: GRS80\n\n    test 151 Be08Lb: 49.833334°N, 004.359216°E\n    test 152 Be08Lb: GRS80\n\n    test 153 Be08Lb: 49.833334°N, 005.692549°E\n    test 154 Be08Lb: GRS80\n\n    test 155 Be08Lb: 51.166667°N, 003.025883°E\n    test 156 Be08Lb: GRS80\n\n    test 157 Be08Lb: 51.166667°N, 004.359216°E\n    test 158 Be08Lb: GRS80\n\n    test 159 Be08Lb: 51.166667°N, 005.692549°E\n    test 160 Be08Lb: GRS80\n\n    test 161 Be72Lb: 49.833334°N, 003.034153°E\n    test 162 Be72Lb: NAD83\n\n    test 163 Be72Lb: 49.833334°N, 004.367487°E\n    test 164 Be72Lb: NAD83\n\n    test 165 Be72Lb: 49.833334°N, 005.70082°E\n    test 166 Be72Lb: NAD83\n\n    test 167 Be72Lb: 51.166667°N, 003.034153°E\n    test 168 Be72Lb: NAD83\n\n    test 169 Be72Lb: 51.166667°N, 004.367487°E\n    test 170 Be72Lb: NAD83\n\n    test 171 Be72Lb: 51.166667°N, 005.70082°E\n    test 172 Be72Lb: NAD83\n\n    test 173 Fr93Lb: 49.0°N, 002.0°W\n    test 174 Fr93Lb: WGS84\n\n    test 175 Fr93Lb: 49.0°N, 003.0°E\n    test 176 Fr93Lb: WGS84\n\n    test 177 Fr93Lb: 49.0°N, 008.0°E\n    test 178 Fr93Lb: WGS84\n\n    test 179 Fr93Lb: 44.0°N, 002.0°W\n    test 180 Fr93Lb: WGS84\n\n    test 181 Fr93Lb: 44.0°N, 003.0°E\n    test 182 Fr93Lb: WGS84\n\n    test 183 Fr93Lb: 44.0°N, 008.0°E\n    test 184 Fr93Lb: WGS84\n\n    test 185 MaNLb: 31.73°N, 008.54°W\n    test 186 MaNLb: NTF\n\n    test 187 MaNLb: 31.73°N, 005.4°W\n    test 188 MaNLb: NTF\n\n    test 189 MaNLb: 31.73°N, 002.26°W\n    test 190 MaNLb: NTF\n\n    test 191 MaNLb: 34.87°N, 008.54°W\n    test 192 MaNLb: NTF\n\n    test 193 MaNLb: 34.87°N, 005.4°W\n    test 194 MaNLb: NTF\n\n    test 195 MaNLb: 34.87°N, 002.26°W\n    test 196 MaNLb: NTF\n\n    test 197 MxLb: 17.5°N, 114.0°W\n    test 198 MxLb: WGS84\n\n    test 199 MxLb: 17.5°N, 102.0°W\n    test 200 MxLb: WGS84\n\n    test 201 MxLb: 17.5°N, 090.0°W\n    test 202 MxLb: WGS84\n\n    test 203 MxLb: 29.5°N, 114.0°W\n    test 204 MxLb: WGS84\n\n    test 205 MxLb: 29.5°N, 102.0°W\n    test 206 MxLb: WGS84\n\n    test 207 MxLb: 29.5°N, 090.0°W\n    test 208 MxLb: WGS84\n\n    test 209 PyT_Lb: 45.898939°N, 000.540154°E\n    test 210 PyT_Lb: NTF\n\n    test 211 PyT_Lb: 45.898939°N, 002.337229°E\n    test 212 PyT_Lb: NTF\n\n    test 213 PyT_Lb: 45.898939°N, 004.134305°E\n    test 214 PyT_Lb: NTF\n\n    test 215 PyT_Lb: 47.696014°N, 000.540154°E\n    test 216 PyT_Lb: NTF\n\n    test 217 PyT_Lb: 47.696014°N, 002.337229°E\n    test 218 PyT_Lb: NTF\n\n    test 219 PyT_Lb: 47.696014°N, 004.134305°E\n    test 220 PyT_Lb: NTF\n\n    test 221 Snyder: 33.0°N, 108.0°W\n    test 222 Snyder: NAD27\n\n    test 223 Snyder: 33.0°N, 096.0°W\n    test 224 Snyder: NAD27\n\n    test 225 Snyder: 33.0°N, 084.0°W\n    test 226 Snyder: NAD27\n\n    test 227 Snyder: 45.0°N, 108.0°W\n    test 228 Snyder: NAD27\n\n    test 229 Snyder: 45.0°N, 096.0°W\n    test 230 Snyder: NAD27\n\n    test 231 Snyder: 45.0°N, 084.0°W\n    test 232 Snyder: NAD27\n\n    test 233 USA_Lb: 33.0°N, 108.0°W\n    test 234 USA_Lb: WGS84\n\n    test 235 USA_Lb: 33.0°N, 096.0°W\n    test 236 USA_Lb: WGS84\n\n    test 237 USA_Lb: 33.0°N, 084.0°W\n    test 238 USA_Lb: WGS84\n\n    test 239 USA_Lb: 45.0°N, 108.0°W\n    test 240 USA_Lb: WGS84\n\n    test 241 USA_Lb: 45.0°N, 096.0°W\n    test 242 USA_Lb: WGS84\n\n    test 243 USA_Lb: 45.0°N, 084.0°W\n    test 244 USA_Lb: WGS84\n\n    test 245 WRF_Lb: 33.0°N, 109.0°W\n    test 246 WRF_Lb: WGS84\n\n    test 247 WRF_Lb: 33.0°N, 097.0°W\n    test 248 WRF_Lb: WGS84\n\n    test 249 WRF_Lb: 33.0°N, 085.0°W\n    test 250 WRF_Lb: WGS84\n\n    test 251 WRF_Lb: 45.0°N, 109.0°W\n    test 252 WRF_Lb: WGS84\n\n    test 253 WRF_Lb: 45.0°N, 097.0°W\n    test 254 WRF_Lb: WGS84\n\n    test 255 WRF_Lb: 45.0°N, 085.0°W\n    test 256 WRF_Lb: WGS84\n\n\n    testConic(pygeodesy.ellipsoidalNvector, 25.05.12)\n    test 257 SnyderN: name='SnyderN', lat0=23, lon0=-96, par1=33, par2=45, E0=0, N0=0, k0=1, SP=2, datum=Datum(name='NAD27', ellipsoid=Ellipsoids.Clarke1866, transform=Transforms.NAD27)\n    test 258 _SnyderN: name='_SnyderN', lat0=23, lon0=-96, par1=33, E0=0, N0=0, k0=1, SP=1, datum=Datum(name='NAD27', ellipsoid=Ellipsoids.Clarke1866, transform=Transforms.NAD27)\n    test 259 _SnyderN: name='_SnyderN', lat0=23, lon0=-96, par1=33, E0=0, N0=0, k0=1, SP=1, datum=Datum(name='NAD83', ellipsoid=Ellipsoids.GRS80, transform=Transforms.NAD83)\n    test 260 _SnyderN .auth: ''\n    test 261 _SnyderN .opt3: 0.0\n    test 262 _SnyderN .latlon0: (23.0, -96.0)\n    test 263 _SnyderN .philam0: (0.401426, -1.675516)\n\n    testConic(pygeodesy.ellipsoidalVincenty, 25.05.26)\n    test 264 SnyderV: name='SnyderV', lat0=23, lon0=-96, par1=33, par2=45, E0=0, N0=0, k0=1, SP=2, datum=Datum(name='NAD27', ellipsoid=Ellipsoids.Clarke1866, transform=Transforms.NAD27)\n    test 265 _SnyderV: name='_SnyderV', lat0=23, lon0=-96, par1=33, E0=0, N0=0, k0=1, SP=1, datum=Datum(name='NAD27', ellipsoid=Ellipsoids.Clarke1866, transform=Transforms.NAD27)\n    test 266 _SnyderV: name='_SnyderV', lat0=23, lon0=-96, par1=33, E0=0, N0=0, k0=1, SP=1, datum=Datum(name='NAD83', ellipsoid=Ellipsoids.GRS80, transform=Transforms.NAD83)\n    test 267 _SnyderV .auth: ''\n    test 268 _SnyderV .opt3: 0.0\n    test 269 _SnyderV .latlon0: (23.0, -96.0)\n    test 270 _SnyderV .philam0: (0.401426, -1.675516)\n\n    all 270 testLcc.py tests passed (pygeodesy 26.3.26 Python 2.7.18 64bit arm64_x86_64 geographiclib 1.50 numpy 1.16.6 scipy 1.2.2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 -W  default) 20.130 ms\nrunning /Library/Framewo....ython -W default ~/PyGeodesy/test/testLtp.py\n./pygeodesy/deprecated/classes.py:75: DeprecationWarning: class L{EcefCartesian_<pygeodesy.deprecated.classes.EcefCartesian_>} has been DEPRECATED, use class L{LocalCartesian} or L{Ltp}.\n  deprecated_class(self.__class__)\n./test/testLtp.py:41: DeprecationWarning: method L{forward<pygeodesy.deprecated.classes.EcefCartesian_.forward>} has been DEPRECATED, use method L{LocalCartesian.forward} or L{Ltp.forward}.\n  t = c.forward(33.3, 44.4, 6000)\n./test/testLtp.py:45: DeprecationWarning: method L{reverse<pygeodesy.deprecated.classes.EcefCartesian_.reverse>} has been DEPRECATED, use method L{LocalCartesian.reverse} or L{Ltp.reverse}.\n  t = c.reverse(37288.97, 33374.29, 5783.65)\n./test/testLtp.py:54: DeprecationWarning: method L{forward<pygeodesy.deprecated.classes.EcefCartesian_.forward>} has been DEPRECATED, use method L{LocalCartesian.forward} or L{Ltp.forward}.\n  t = c.forward(LatLon_(50.9, 1.8, name='Calais'))  # Local9Tuple\n./test/testLtp.py:58: DeprecationWarning: method L{reverse<pygeodesy.deprecated.classes.EcefCartesian_.reverse>} has been DEPRECATED, use method L{LocalCartesian.reverse} or L{Ltp.reverse}.\n  t = c.reverse(-37518.64, 229949.65, -4260.43)  # Local9Tuple\n./test/testLtp.py:62: DeprecationWarning: method L{reverse<pygeodesy.deprecated.classes.EcefCartesian_.reverse>} has been DEPRECATED, use method L{LocalCartesian.reverse} or L{Ltp.reverse}.\n  t = c.reverse(-38e3, 230e3, -4e3)\n./test/testLtp.py:66: DeprecationWarning: method L{forward<pygeodesy.deprecated.classes.EcefCartesian_.forward>} has been DEPRECATED, use method L{LocalCartesian.forward} or L{Ltp.forward}.\n  t = c.forward(50.9, 1.79, 264.92)  # Local9Tuple\n./test/testLtp.py:74: DeprecationWarning: method L{reverse<pygeodesy.deprecated.classes.EcefCartesian_.reverse>} has been DEPRECATED, use method L{LocalCartesian.reverse} or L{Ltp.reverse}.\n  t = Z.reverse(M).toLatLon(datum=None)  # Matterhorn Xyz to LatLon\n./test/testLtp.py:76: DeprecationWarning: method L{forward<pygeodesy.deprecated.classes.EcefCartesian_.forward>} has been DEPRECATED, use method L{LocalCartesian.forward} or L{Ltp.forward}.\n  self.test('xyz', Z.forward(t).xyz.toStr(prec=1), '(-7134.8, -4556.3, 2852.4)', known=Sudano)\n\n    testing testLtp.py 23.11.21\n\n    test 1 EcefCartesian: {}\n    test 2 name: Test\n    test 3 toStr: EcefCartesian_(lat0=33.0, lon0=44.0, height0=20.0, M=EcefMatrix(_0_0_=-0.694658, _0_1_=-0.391781, _0_2_=0.603289, _1_0_=0.71934, _1_1_=-0.378338, _1_2_=0.58259, _2_0_=0.0, _2_1_=0.838671, _2_2_=0.544639), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Test')  FAILED, KNOWN, expected EcefCartesian_\n    test 4 copy(<type 'type'>): (<class 'pygeodesy.deprecated.classes.EcefCartesian_'>, True)\n    test 5 EcefCartesian_.copy(): (<class 'pygeodesy.deprecated.classes.EcefCartesian_'>, True)\n    test 6 New: lat0=33.0, lon0=44.0, height0=20.0, M=EcefMatrix(_0_0_=-0.694658, _0_1_=-0.391781, _0_2_=0.603289, _1_0_=0.71934, _1_1_=-0.378338, _1_2_=0.58259, _2_0_=0.0, _2_1_=0.838671, _2_2_=0.544639), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Test'\n    test 7 forward: 37288.97, 33374.29, 5783.65\n    test 8 name: Test\n    test 9 reverse: 33.3, 44.4, 6000.0\n    test 10 name: Test\n    test 11 name: Paris\n    test 12 Paris: 48.833, 2.333, 0.0\n    test 13 forward: -37518.64, 229949.65, -4260.43\n    test 14 name: Calais\n    test 15 reverse: 50.9, 1.8, -0.0\n    test 16 name: Paris\n    test 17 reverse: -38000.0, 230000.0, -4000.0\n    test 18 reverse: 50.9, 1.79, 264.92\n    test 19 forward: -38223.7, 229964.2, -4000.0\n\n    test 20 Zermatt: lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'  FAILED, KNOWN, expected EcefCartesian_\n    test 21 Matterhorn: (45.976, 7.658, 4531.01)\n    test 22 xyz: (-7134.8, -4556.3, 2852.4)\n    test 23 _local2ecef: 4403757.602, 592124.536, 4566652.082\n    test 24 _local2ecef: (4403757.602, 592124.536, 4566652.082, 45.976, 7.658, 4531.01, 1, None, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))  FAILED, KNOWN, expected Ecef9Tuple\n    test 25 _local2ecef: Ecef9Tuple\n    test 26 _ecef2local: (-7134.8, -4556.3, 2852.4, 45.976, 7.658, 4531.01, EcefCartesian_(lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'), Ecef9Tuple(x=4403757.601549, y=592124.535536, z=4566652.082005, lat=45.976, lon=7.657999, height=4531.009608, C=1, M=None, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84)), None)  FAILED, KNOWN, expected Local9Tuple\n    test 27 _ecef2local: Local9Tuple\n    test 28 Xyz: (-7134.8, -4556.3, 2852.4, None)\n    test 29 Aer: (-7134.912, -4444.548, 2852.474, None)\n    test 30 Enu: (-7134.8, -4556.3, 2852.4, None)\n    test 31 Ned: [-4556.3, -7134.8, -2852.4]\n    test 32 Enu: [-7134.8, -4556.3, 2852.4]\n    test 33 Ned: [-4556.3, -7134.8, -2852.4]\n\n    test 34 lon00: (90.0, 57.3, 0.0, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 35 lon00: (90.0, 3.75, 0.0, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n\n    test 36 Frustum: 90.0, 90.0\n    test 37 hfov: 90.0\n    test 38 vfov: 90.0\n    test 39 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None))\n    test 40 footprint.xyzLocal5: ([X:0.0, Y:0.0, Z:0.0], [X:1000.0, Y:1000.0, Z:0.0], [X:1000.0, Y:1000.0, Z:0.0], [X:-1000.0, Y:-1000.0, Z:0.0], [X:-1000.0, Y:-1000.0, Z:0.0])\n    test 41 footprint.toLatLon5: (LatLon_(00.0°N, 000.0°E), LatLon_(00.009044°N, 000.008983°E, +0.16), LatLon_(00.009044°N, 000.008983°E, +0.16), LatLon_(00.009044°S, 000.008983°W, +0.16), LatLon_(00.009044°S, 000.008983°W, +0.16))\n\n    test 42 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None))\n    test 43 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=414.213562, y=414.213562, z=0.0, ltp=None), Xyz4Tuple(x=414.213562, y=414.213562, z=0.0, ltp=None), Xyz4Tuple(x=-414.213562, y=-414.213562, z=0.0, ltp=None), Xyz4Tuple(x=-414.213562, y=-414.213562, z=0.0, ltp=None))\n    test 44 footprint: (Xyz4Tuple(x=-57289.961631, y=-57289.961631, z=0.0, ltp=None), Xyz4Tuple(x=2538.647896, y=2538.647896, z=0.0, ltp=None), Xyz4Tuple(x=2538.647896, y=2538.647896, z=0.0, ltp=None), Xyz4Tuple(x=-2299.842547, y=-2299.842547, z=0.0, ltp=None), Xyz4Tuple(x=-2299.842547, y=-2299.842547, z=0.0, ltp=None))\n\n    test 45 Attitude: (0.0, -10.0, 330.0, -20.0)\n    test 46 alt: 0.0\n    test 47 tilt: -10.0\n    test 48 roll: -20.0\n    test 49 yaw: 330.0\n    test 50 matrix: ((0.8137976813493736, -0.44096961052988237, -0.37852230636979256), (0.46984631039295416, 0.8825641192593855, -0.01802831123629728), (0.3420201433256688, -0.16317591116653488, 0.9254165783983233))  FAILED, KNOWN, expected ((0.8137976813493737, -0.4409696105298823, -0.3785223063697926), (0.4698463103929541, 0.8825641192593856, -0.01802831123629725), (0.3420201433256688, -0.16317591116653488, 0.9254165783983233))\n    test 51 rotate: (-0.005694, 1.334382, 1.104261)\n    test 52 tyr3d: (0.0, 0.0, 0.0)\n    test 53 tyr3d: (0.0, -2.0, 0.0)\n    test 54 tyr3d: (0.0, -2.0, 0.0)\n    test 55 tyr3d: (0.0, 0.0, -2.0)\n\n    test 56 LocalCartesian: {}\n    test 57 name: Test\n    test 58 toStr: LocalCartesian(lat0=33.0, lon0=44.0, height0=20.0, M=EcefMatrix(_0_0_=-0.694658, _0_1_=-0.391781, _0_2_=0.603289, _1_0_=0.71934, _1_1_=-0.378338, _1_2_=0.58259, _2_0_=0.0, _2_1_=0.838671, _2_2_=0.544639), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Test')  FAILED, KNOWN, expected LocalCartesian\n    test 59 copy(<type 'type'>): (<class 'pygeodesy.ltp.LocalCartesian'>, True)\n    test 60 LocalCartesian.copy(): (<class 'pygeodesy.ltp.LocalCartesian'>, True)\n    test 61 New: lat0=33.0, lon0=44.0, height0=20.0, M=EcefMatrix(_0_0_=-0.694658, _0_1_=-0.391781, _0_2_=0.603289, _1_0_=0.71934, _1_1_=-0.378338, _1_2_=0.58259, _2_0_=0.0, _2_1_=0.838671, _2_2_=0.544639), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Test'\n    test 62 forward: 37288.97, 33374.29, 5783.65\n    test 63 name: Test\n    test 64 reverse: 33.3, 44.4, 6000.0\n    test 65 name: Test\n    test 66 name: Paris\n    test 67 Paris: 48.833, 2.333, 0.0\n    test 68 forward: -37518.64, 229949.65, -4260.43\n    test 69 name: Calais\n    test 70 reverse: 50.9, 1.8, -0.0\n    test 71 name: Paris\n    test 72 reverse: -38000.0, 230000.0, -4000.0\n    test 73 reverse: 50.9, 1.79, 264.92\n    test 74 forward: -38223.7, 229964.2, -4000.0\n\n    test 75 Zermatt: lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'  FAILED, KNOWN, expected LocalCartesian\n    test 76 Matterhorn: (45.976, 7.658, 4531.01)\n    test 77 xyz: (-7134.8, -4556.3, 2852.4)\n    test 78 _local2ecef: 4403757.602, 592124.536, 4566652.082\n    test 79 _local2ecef: (4403757.602, 592124.536, 4566652.082, 45.976, 7.658, 4531.01, 1, None, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))  FAILED, KNOWN, expected Ecef9Tuple\n    test 80 _local2ecef: Ecef9Tuple\n    test 81 _ecef2local: (-7134.8, -4556.3, 2852.4, 45.976, 7.658, 4531.01, LocalCartesian(lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'), Ecef9Tuple(x=4403757.601549, y=592124.535536, z=4566652.082005, lat=45.976, lon=7.657999, height=4531.009608, C=1, M=None, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84)), None)  FAILED, KNOWN, expected Local9Tuple\n    test 82 _ecef2local: Local9Tuple\n    test 83 Xyz: (-7134.8, -4556.3, 2852.4, None)\n    test 84 Aer: (-7134.912, -4444.548, 2852.474, None)\n    test 85 Enu: (-7134.8, -4556.3, 2852.4, None)\n    test 86 Ned: [-4556.3, -7134.8, -2852.4]\n    test 87 Enu: [-7134.8, -4556.3, 2852.4]\n    test 88 Ned: [-4556.3, -7134.8, -2852.4]\n\n    test 89 lon00: (90.0, 57.3, 0.0, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 90 lon00: (90.0, 3.75, 0.0, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n\n    test 91 Frustum: 90.0, 90.0\n    test 92 hfov: 90.0\n    test 93 vfov: 90.0\n    test 94 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None))\n    test 95 footprint.xyzLocal5: ([X:0.0, Y:0.0, Z:0.0], [X:1000.0, Y:1000.0, Z:0.0], [X:1000.0, Y:1000.0, Z:0.0], [X:-1000.0, Y:-1000.0, Z:0.0], [X:-1000.0, Y:-1000.0, Z:0.0])\n    test 96 footprint.toLatLon5: (LatLon_(00.0°N, 000.0°E), LatLon_(00.009044°N, 000.008983°E, +0.16), LatLon_(00.009044°N, 000.008983°E, +0.16), LatLon_(00.009044°S, 000.008983°W, +0.16), LatLon_(00.009044°S, 000.008983°W, +0.16))\n\n    test 97 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None))\n    test 98 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=414.213562, y=414.213562, z=0.0, ltp=None), Xyz4Tuple(x=414.213562, y=414.213562, z=0.0, ltp=None), Xyz4Tuple(x=-414.213562, y=-414.213562, z=0.0, ltp=None), Xyz4Tuple(x=-414.213562, y=-414.213562, z=0.0, ltp=None))\n    test 99 footprint: (Xyz4Tuple(x=-57289.961631, y=-57289.961631, z=0.0, ltp=None), Xyz4Tuple(x=2538.647896, y=2538.647896, z=0.0, ltp=None), Xyz4Tuple(x=2538.647896, y=2538.647896, z=0.0, ltp=None), Xyz4Tuple(x=-2299.842547, y=-2299.842547, z=0.0, ltp=None), Xyz4Tuple(x=-2299.842547, y=-2299.842547, z=0.0, ltp=None))\n\n    test 100 Attitude: (0.0, -10.0, 330.0, -20.0)\n    test 101 alt: 0.0\n    test 102 tilt: -10.0\n    test 103 roll: -20.0\n    test 104 yaw: 330.0\n    test 105 matrix: ((0.8137976813493736, -0.44096961052988237, -0.37852230636979256), (0.46984631039295416, 0.8825641192593855, -0.01802831123629728), (0.3420201433256688, -0.16317591116653488, 0.9254165783983233))  FAILED, KNOWN, expected ((0.8137976813493737, -0.4409696105298823, -0.3785223063697926), (0.4698463103929541, 0.8825641192593856, -0.01802831123629725), (0.3420201433256688, -0.16317591116653488, 0.9254165783983233))\n    test 106 rotate: (-0.005694, 1.334382, 1.104261)\n    test 107 tyr3d: (0.0, 0.0, 0.0)\n    test 108 tyr3d: (0.0, -2.0, 0.0)\n    test 109 tyr3d: (0.0, -2.0, 0.0)\n    test 110 tyr3d: (0.0, 0.0, -2.0)\n\n    test 111 Ltp: {}\n    test 112 name: Test\n    test 113 toStr: Ltp(lat0=33.0, lon0=44.0, height0=20.0, M=EcefMatrix(_0_0_=-0.694658, _0_1_=-0.391781, _0_2_=0.603289, _1_0_=0.71934, _1_1_=-0.378338, _1_2_=0.58259, _2_0_=0.0, _2_1_=0.838671, _2_2_=0.544639), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Test')  FAILED, KNOWN, expected Ltp\n    test 114 copy(<type 'type'>): (<class 'pygeodesy.ltp.Ltp'>, True)\n    test 115 Ltp.copy(): (<class 'pygeodesy.ltp.Ltp'>, True)\n    test 116 New: lat0=33.0, lon0=44.0, height0=20.0, M=EcefMatrix(_0_0_=-0.694658, _0_1_=-0.391781, _0_2_=0.603289, _1_0_=0.71934, _1_1_=-0.378338, _1_2_=0.58259, _2_0_=0.0, _2_1_=0.838671, _2_2_=0.544639), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Test'\n    test 117 forward: 37288.97, 33374.29, 5783.65\n    test 118 name: Test\n    test 119 reverse: 33.3, 44.4, 6000.0\n    test 120 name: Test\n    test 121 name: Paris\n    test 122 Paris: 48.833, 2.333, 0.0\n    test 123 forward: -37518.64, 229949.65, -4260.43\n    test 124 name: Calais\n    test 125 reverse: 50.9, 1.8, -0.0\n    test 126 name: Paris\n    test 127 reverse: -38000.0, 230000.0, -4000.0\n    test 128 reverse: 50.9, 1.79, 264.92\n    test 129 forward: -38223.7, 229964.2, -4000.0\n\n    test 130 Zermatt: lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'  FAILED, KNOWN, expected Ltp\n    test 131 Matterhorn: (45.976, 7.658, 4531.01)\n    test 132 xyz: (-7134.8, -4556.3, 2852.4)\n    test 133 _local2ecef: 4403757.602, 592124.536, 4566652.082\n    test 134 _local2ecef: (4403757.602, 592124.536, 4566652.082, 45.976, 7.658, 4531.01, 1, None, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))  FAILED, KNOWN, expected Ecef9Tuple\n    test 135 _local2ecef: Ecef9Tuple\n    test 136 _ecef2local: (-7134.8, -4556.3, 2852.4, 45.976, 7.658, 4531.01, Ltp(lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'), Ecef9Tuple(x=4403757.601549, y=592124.535536, z=4566652.082005, lat=45.976, lon=7.657999, height=4531.009608, C=1, M=None, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84)), None)  FAILED, KNOWN, expected Local9Tuple\n    test 137 _ecef2local: Local9Tuple\n    test 138 Xyz: (-7134.8, -4556.3, 2852.4, None)\n    test 139 Aer: (-7134.912, -4444.548, 2852.474, None)\n    test 140 Enu: (-7134.8, -4556.3, 2852.4, None)\n    test 141 Ned: [-4556.3, -7134.8, -2852.4]\n    test 142 Enu: [-7134.8, -4556.3, 2852.4]\n    test 143 Ned: [-4556.3, -7134.8, -2852.4]\n\n    test 144 lon00: (90.0, 57.3, 0.0, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 145 lon00: (90.0, 3.75, 0.0, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n\n    test 146 Frustum: 90.0, 90.0\n    test 147 hfov: 90.0\n    test 148 vfov: 90.0\n    test 149 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None))\n    test 150 footprint.xyzLocal5: ([X:0.0, Y:0.0, Z:0.0], [X:1000.0, Y:1000.0, Z:0.0], [X:1000.0, Y:1000.0, Z:0.0], [X:-1000.0, Y:-1000.0, Z:0.0], [X:-1000.0, Y:-1000.0, Z:0.0])\n    test 151 footprint.toLatLon5: (LatLon_(00.0°N, 000.0°E), LatLon_(00.009044°N, 000.008983°E, +0.16), LatLon_(00.009044°N, 000.008983°E, +0.16), LatLon_(00.009044°S, 000.008983°W, +0.16), LatLon_(00.009044°S, 000.008983°W, +0.16))\n\n    test 152 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None))\n    test 153 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=414.213562, y=414.213562, z=0.0, ltp=None), Xyz4Tuple(x=414.213562, y=414.213562, z=0.0, ltp=None), Xyz4Tuple(x=-414.213562, y=-414.213562, z=0.0, ltp=None), Xyz4Tuple(x=-414.213562, y=-414.213562, z=0.0, ltp=None))\n    test 154 footprint: (Xyz4Tuple(x=-57289.961631, y=-57289.961631, z=0.0, ltp=None), Xyz4Tuple(x=2538.647896, y=2538.647896, z=0.0, ltp=None), Xyz4Tuple(x=2538.647896, y=2538.647896, z=0.0, ltp=None), Xyz4Tuple(x=-2299.842547, y=-2299.842547, z=0.0, ltp=None), Xyz4Tuple(x=-2299.842547, y=-2299.842547, z=0.0, ltp=None))\n\n    test 155 Attitude: (0.0, -10.0, 330.0, -20.0)\n    test 156 alt: 0.0\n    test 157 tilt: -10.0\n    test 158 roll: -20.0\n    test 159 yaw: 330.0\n    test 160 matrix: ((0.8137976813493736, -0.44096961052988237, -0.37852230636979256), (0.46984631039295416, 0.8825641192593855, -0.01802831123629728), (0.3420201433256688, -0.16317591116653488, 0.9254165783983233))  FAILED, KNOWN, expected ((0.8137976813493737, -0.4409696105298823, -0.3785223063697926), (0.4698463103929541, 0.8825641192593856, -0.01802831123629725), (0.3420201433256688, -0.16317591116653488, 0.9254165783983233))\n    test 161 rotate: (-0.005694, 1.334382, 1.104261)\n    test 162 tyr3d: (0.0, 0.0, 0.0)\n    test 163 tyr3d: (0.0, -2.0, 0.0)\n    test 164 tyr3d: (0.0, -2.0, 0.0)\n    test 165 tyr3d: (0.0, 0.0, -2.0)\n\n    test 166 Ltp: {'ecef': EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name='')}\n    test 167 name: Test\n    test 168 toStr: Ltp(lat0=33.0, lon0=44.0, height0=20.0, M=EcefMatrix(_0_0_=-0.694658, _0_1_=-0.391781, _0_2_=0.603289, _1_0_=0.71934, _1_1_=-0.378338, _1_2_=0.58259, _2_0_=0.0, _2_1_=0.838671, _2_2_=0.544639), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Test')  FAILED, KNOWN, expected Ltp\n    test 169 copy(<type 'type'>): (<class 'pygeodesy.ltp.Ltp'>, True)\n    test 170 Ltp.copy(): (<class 'pygeodesy.ltp.Ltp'>, True)\n    test 171 New: lat0=33.0, lon0=44.0, height0=20.0, M=EcefMatrix(_0_0_=-0.694658, _0_1_=-0.391781, _0_2_=0.603289, _1_0_=0.71934, _1_1_=-0.378338, _1_2_=0.58259, _2_0_=0.0, _2_1_=0.838671, _2_2_=0.544639), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Test'\n    test 172 forward: 37288.97, 33374.29, 5783.65\n    test 173 name: Test\n    test 174 reverse: 33.3, 44.4, 6000.0\n    test 175 name: Test\n    test 176 name: Paris\n    test 177 Paris: 48.833, 2.333, 0.0\n    test 178 forward: -37518.64, 229949.65, -4260.43\n    test 179 name: Calais\n    test 180 reverse: 50.9, 1.8, -0.0\n    test 181 name: Paris\n    test 182 reverse: -38000.0, 230000.0, -4000.0\n    test 183 reverse: 50.9, 1.79, 264.92\n    test 184 forward: -38223.7, 229964.2, -4000.0\n\n    test 185 Zermatt: lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'  FAILED, KNOWN, expected Ltp\n    test 186 Matterhorn: (45.976, 7.658, 4531.01)\n    test 187 xyz: (-7134.8, -4556.3, 2852.4)\n    test 188 _local2ecef: 4403757.602, 592124.536, 4566652.082\n    test 189 _local2ecef: (4403757.602, 592124.536, 4566652.082, 45.976, 7.658, 4531.01, 1, None, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))  FAILED, KNOWN, expected Ecef9Tuple\n    test 190 _local2ecef: Ecef9Tuple\n    test 191 _ecef2local: (-7134.8, -4556.3, 2852.4, 45.976, 7.658, 4531.01, Ltp(lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'), Ecef9Tuple(x=4403757.601549, y=592124.535536, z=4566652.082005, lat=45.976, lon=7.657999, height=4531.009608, C=1, M=None, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84)), None)  FAILED, KNOWN, expected Local9Tuple\n    test 192 _ecef2local: Local9Tuple\n    test 193 Xyz: (-7134.8, -4556.3, 2852.4, None)\n    test 194 Aer: (-7134.912, -4444.548, 2852.474, None)\n    test 195 Enu: (-7134.8, -4556.3, 2852.4, None)\n    test 196 Ned: [-4556.3, -7134.8, -2852.4]\n    test 197 Enu: [-7134.8, -4556.3, 2852.4]\n    test 198 Ned: [-4556.3, -7134.8, -2852.4]\n\n    test 199 lon00: (90.0, 57.3, 0.0, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 200 lon00: (90.0, 3.75, 0.0, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n\n    test 201 Frustum: 90.0, 90.0\n    test 202 hfov: 90.0\n    test 203 vfov: 90.0\n    test 204 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None))\n    test 205 footprint.xyzLocal5: ([X:0.0, Y:0.0, Z:0.0], [X:1000.0, Y:1000.0, Z:0.0], [X:1000.0, Y:1000.0, Z:0.0], [X:-1000.0, Y:-1000.0, Z:0.0], [X:-1000.0, Y:-1000.0, Z:0.0])\n    test 206 footprint.toLatLon5: (LatLon_(00.0°N, 000.0°E), LatLon_(00.009044°N, 000.008983°E, +0.16), LatLon_(00.009044°N, 000.008983°E, +0.16), LatLon_(00.009044°S, 000.008983°W, +0.16), LatLon_(00.009044°S, 000.008983°W, +0.16))\n\n    test 207 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None))\n    test 208 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=414.213562, y=414.213562, z=0.0, ltp=None), Xyz4Tuple(x=414.213562, y=414.213562, z=0.0, ltp=None), Xyz4Tuple(x=-414.213562, y=-414.213562, z=0.0, ltp=None), Xyz4Tuple(x=-414.213562, y=-414.213562, z=0.0, ltp=None))\n    test 209 footprint: (Xyz4Tuple(x=-57289.961631, y=-57289.961631, z=0.0, ltp=None), Xyz4Tuple(x=2538.647896, y=2538.647896, z=0.0, ltp=None), Xyz4Tuple(x=2538.647896, y=2538.647896, z=0.0, ltp=None), Xyz4Tuple(x=-2299.842547, y=-2299.842547, z=0.0, ltp=None), Xyz4Tuple(x=-2299.842547, y=-2299.842547, z=0.0, ltp=None))\n\n    test 210 Attitude: (0.0, -10.0, 330.0, -20.0)\n    test 211 alt: 0.0\n    test 212 tilt: -10.0\n    test 213 roll: -20.0\n    test 214 yaw: 330.0\n    test 215 matrix: ((0.8137976813493736, -0.44096961052988237, -0.37852230636979256), (0.46984631039295416, 0.8825641192593855, -0.01802831123629728), (0.3420201433256688, -0.16317591116653488, 0.9254165783983233))  FAILED, KNOWN, expected ((0.8137976813493737, -0.4409696105298823, -0.3785223063697926), (0.4698463103929541, 0.8825641192593856, -0.01802831123629725), (0.3420201433256688, -0.16317591116653488, 0.9254165783983233))\n    test 216 rotate: (-0.005694, 1.334382, 1.104261)\n    test 217 tyr3d: (0.0, 0.0, 0.0)\n    test 218 tyr3d: (0.0, -2.0, 0.0)\n    test 219 tyr3d: (0.0, -2.0, 0.0)\n    test 220 tyr3d: (0.0, 0.0, -2.0)\n\n    test 221 Ltp: {'ecef': EcefFarrell21(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name='')}\n    test 222 name: Test\n    test 223 toStr: Ltp(lat0=33.0, lon0=44.0, height0=20.0, M=EcefMatrix(_0_0_=-0.694658, _0_1_=-0.391781, _0_2_=0.603289, _1_0_=0.71934, _1_1_=-0.378338, _1_2_=0.58259, _2_0_=0.0, _2_1_=0.838671, _2_2_=0.544639), ecef=EcefFarrell21(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Test')  FAILED, KNOWN, expected Ltp\n    test 224 copy(<type 'type'>): (<class 'pygeodesy.ltp.Ltp'>, True)\n    test 225 Ltp.copy(): (<class 'pygeodesy.ltp.Ltp'>, True)\n    test 226 New: lat0=33.0, lon0=44.0, height0=20.0, M=EcefMatrix(_0_0_=-0.694658, _0_1_=-0.391781, _0_2_=0.603289, _1_0_=0.71934, _1_1_=-0.378338, _1_2_=0.58259, _2_0_=0.0, _2_1_=0.838671, _2_2_=0.544639), ecef=EcefFarrell21(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Test'\n    test 227 forward: 37288.97, 33374.29, 5783.65\n    test 228 name: Test\n    test 229 reverse: 33.3, 44.4, 6000.0\n    test 230 name: Test\n    test 231 name: Paris\n    test 232 Paris: 48.833, 2.333, 0.0\n    test 233 forward: -37518.64, 229949.65, -4260.43\n    test 234 name: Calais\n    test 235 reverse: 50.9, 1.8, -0.0\n    test 236 name: Paris\n    test 237 reverse: -38000.0, 230000.0, -4000.0\n    test 238 reverse: 50.9, 1.79, 264.92\n    test 239 forward: -38223.7, 229964.2, -4000.0\n\n    test 240 Zermatt: lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefFarrell21(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'  FAILED, KNOWN, expected Ltp\n    test 241 Matterhorn: (45.976, 7.658, 4531.01)\n    test 242 xyz: (-7134.8, -4556.3, 2852.4)\n    test 243 _local2ecef: 4403757.602, 592124.536, 4566652.082\n    test 244 _local2ecef: (4403757.602, 592124.536, 4566652.082, 45.976, 7.658, 4531.01, 1, None, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))  FAILED, KNOWN, expected Ecef9Tuple\n    test 245 _local2ecef: Ecef9Tuple\n    test 246 _ecef2local: (-7134.8, -4556.3, 2852.4, 45.976, 7.658, 4531.01, Ltp(lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefFarrell21(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'), Ecef9Tuple(x=4403757.601549, y=592124.535536, z=4566652.082005, lat=45.976, lon=7.657999, height=4531.009608, C=1, M=None, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84)), None)  FAILED, KNOWN, expected Local9Tuple\n    test 247 _ecef2local: Local9Tuple\n    test 248 Xyz: (-7134.8, -4556.3, 2852.4, None)\n    test 249 Aer: (-7134.912, -4444.548, 2852.474, None)\n    test 250 Enu: (-7134.8, -4556.3, 2852.4, None)\n    test 251 Ned: [-4556.3, -7134.8, -2852.4]\n    test 252 Enu: [-7134.8, -4556.3, 2852.4]\n    test 253 Ned: [-4556.3, -7134.8, -2852.4]\n\n    test 254 lon00: (90.0, 57.3, 0.0, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 255 lon00: (90.0, 3.75, 0.0, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n\n    test 256 Frustum: 90.0, 90.0\n    test 257 hfov: 90.0\n    test 258 vfov: 90.0\n    test 259 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None))\n    test 260 footprint.xyzLocal5: ([X:0.0, Y:0.0, Z:0.0], [X:1000.0, Y:1000.0, Z:0.0], [X:1000.0, Y:1000.0, Z:0.0], [X:-1000.0, Y:-1000.0, Z:0.0], [X:-1000.0, Y:-1000.0, Z:0.0])\n    test 261 footprint.toLatLon5: (LatLon_(00.0°N, 000.0°E), LatLon_(00.009044°N, 000.008983°E, +0.16), LatLon_(00.009044°N, 000.008983°E, +0.16), LatLon_(00.009044°S, 000.008983°W, +0.16), LatLon_(00.009044°S, 000.008983°W, +0.16))\n\n    test 262 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None))\n    test 263 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=414.213562, y=414.213562, z=0.0, ltp=None), Xyz4Tuple(x=414.213562, y=414.213562, z=0.0, ltp=None), Xyz4Tuple(x=-414.213562, y=-414.213562, z=0.0, ltp=None), Xyz4Tuple(x=-414.213562, y=-414.213562, z=0.0, ltp=None))\n    test 264 footprint: (Xyz4Tuple(x=-57289.961631, y=-57289.961631, z=0.0, ltp=None), Xyz4Tuple(x=2538.647896, y=2538.647896, z=0.0, ltp=None), Xyz4Tuple(x=2538.647896, y=2538.647896, z=0.0, ltp=None), Xyz4Tuple(x=-2299.842547, y=-2299.842547, z=0.0, ltp=None), Xyz4Tuple(x=-2299.842547, y=-2299.842547, z=0.0, ltp=None))\n\n    test 265 Attitude: (0.0, -10.0, 330.0, -20.0)\n    test 266 alt: 0.0\n    test 267 tilt: -10.0\n    test 268 roll: -20.0\n    test 269 yaw: 330.0\n    test 270 matrix: ((0.8137976813493736, -0.44096961052988237, -0.37852230636979256), (0.46984631039295416, 0.8825641192593855, -0.01802831123629728), (0.3420201433256688, -0.16317591116653488, 0.9254165783983233))  FAILED, KNOWN, expected ((0.8137976813493737, -0.4409696105298823, -0.3785223063697926), (0.4698463103929541, 0.8825641192593856, -0.01802831123629725), (0.3420201433256688, -0.16317591116653488, 0.9254165783983233))\n    test 271 rotate: (-0.005694, 1.334382, 1.104261)\n    test 272 tyr3d: (0.0, 0.0, 0.0)\n    test 273 tyr3d: (0.0, -2.0, 0.0)\n    test 274 tyr3d: (0.0, -2.0, 0.0)\n    test 275 tyr3d: (0.0, 0.0, -2.0)\n\n    test 276 Ltp: {'ecef': EcefFarrell22(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name='')}\n    test 277 name: Test\n    test 278 toStr: Ltp(lat0=33.0, lon0=44.0, height0=20.0, M=EcefMatrix(_0_0_=-0.694658, _0_1_=-0.391781, _0_2_=0.603289, _1_0_=0.71934, _1_1_=-0.378338, _1_2_=0.58259, _2_0_=0.0, _2_1_=0.838671, _2_2_=0.544639), ecef=EcefFarrell22(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Test')  FAILED, KNOWN, expected Ltp\n    test 279 copy(<type 'type'>): (<class 'pygeodesy.ltp.Ltp'>, True)\n    test 280 Ltp.copy(): (<class 'pygeodesy.ltp.Ltp'>, True)\n    test 281 New: lat0=33.0, lon0=44.0, height0=20.0, M=EcefMatrix(_0_0_=-0.694658, _0_1_=-0.391781, _0_2_=0.603289, _1_0_=0.71934, _1_1_=-0.378338, _1_2_=0.58259, _2_0_=0.0, _2_1_=0.838671, _2_2_=0.544639), ecef=EcefFarrell22(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Test'\n    test 282 forward: 37288.97, 33374.29, 5783.65\n    test 283 name: Test\n    test 284 reverse: 33.3, 44.4, 6000.0\n    test 285 name: Test\n    test 286 name: Paris\n    test 287 Paris: 48.833, 2.333, 0.0\n    test 288 forward: -37518.64, 229949.65, -4260.43\n    test 289 name: Calais\n    test 290 reverse: 50.9, 1.8, -0.0\n    test 291 name: Paris\n    test 292 reverse: -38000.0, 230000.0, -4000.0\n    test 293 reverse: 50.9, 1.79, 264.92\n    test 294 forward: -38223.7, 229964.2, -4000.0\n\n    test 295 Zermatt: lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefFarrell22(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'  FAILED, KNOWN, expected Ltp\n    test 296 Matterhorn: (45.976, 7.658, 4531.01)\n    test 297 xyz: (-7134.8, -4556.3, 2852.4)\n    test 298 _local2ecef: 4403757.602, 592124.536, 4566652.082\n    test 299 _local2ecef: (4403757.602, 592124.536, 4566652.082, 45.976, 7.658, 4531.01, 1, None, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))  FAILED, KNOWN, expected Ecef9Tuple\n    test 300 _local2ecef: Ecef9Tuple\n    test 301 _ecef2local: (-7134.8, -4556.3, 2852.4, 45.976, 7.658, 4531.01, Ltp(lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefFarrell22(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'), Ecef9Tuple(x=4403757.601549, y=592124.535536, z=4566652.082005, lat=45.976, lon=7.657999, height=4531.009609, C=1, M=None, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84)), None)  FAILED, KNOWN, expected Local9Tuple\n    test 302 _ecef2local: Local9Tuple\n    test 303 Xyz: (-7134.8, -4556.3, 2852.4, None)\n    test 304 Aer: (-7134.912, -4444.548, 2852.474, None)\n    test 305 Enu: (-7134.8, -4556.3, 2852.4, None)\n    test 306 Ned: [-4556.3, -7134.8, -2852.4]\n    test 307 Enu: [-7134.8, -4556.3, 2852.4]\n    test 308 Ned: [-4556.3, -7134.8, -2852.4]\n\n    test 309 lon00: (90.0, 57.3, 0.0, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 310 lon00: (90.0, 3.75, 0.0, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n\n    test 311 Frustum: 90.0, 90.0\n    test 312 hfov: 90.0\n    test 313 vfov: 90.0\n    test 314 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None))\n    test 315 footprint.xyzLocal5: ([X:0.0, Y:0.0, Z:0.0], [X:1000.0, Y:1000.0, Z:0.0], [X:1000.0, Y:1000.0, Z:0.0], [X:-1000.0, Y:-1000.0, Z:0.0], [X:-1000.0, Y:-1000.0, Z:0.0])\n    test 316 footprint.toLatLon5: (LatLon_(00.0°N, 000.0°E), LatLon_(00.009044°N, 000.008983°E, +0.16), LatLon_(00.009044°N, 000.008983°E, +0.16), LatLon_(00.009044°S, 000.008983°W, +0.16), LatLon_(00.009044°S, 000.008983°W, +0.16))\n\n    test 317 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None))\n    test 318 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=414.213562, y=414.213562, z=0.0, ltp=None), Xyz4Tuple(x=414.213562, y=414.213562, z=0.0, ltp=None), Xyz4Tuple(x=-414.213562, y=-414.213562, z=0.0, ltp=None), Xyz4Tuple(x=-414.213562, y=-414.213562, z=0.0, ltp=None))\n    test 319 footprint: (Xyz4Tuple(x=-57289.961631, y=-57289.961631, z=0.0, ltp=None), Xyz4Tuple(x=2538.647896, y=2538.647896, z=0.0, ltp=None), Xyz4Tuple(x=2538.647896, y=2538.647896, z=0.0, ltp=None), Xyz4Tuple(x=-2299.842547, y=-2299.842547, z=0.0, ltp=None), Xyz4Tuple(x=-2299.842547, y=-2299.842547, z=0.0, ltp=None))\n\n    test 320 Attitude: (0.0, -10.0, 330.0, -20.0)\n    test 321 alt: 0.0\n    test 322 tilt: -10.0\n    test 323 roll: -20.0\n    test 324 yaw: 330.0\n    test 325 matrix: ((0.8137976813493736, -0.44096961052988237, -0.37852230636979256), (0.46984631039295416, 0.8825641192593855, -0.01802831123629728), (0.3420201433256688, -0.16317591116653488, 0.9254165783983233))  FAILED, KNOWN, expected ((0.8137976813493737, -0.4409696105298823, -0.3785223063697926), (0.4698463103929541, 0.8825641192593856, -0.01802831123629725), (0.3420201433256688, -0.16317591116653488, 0.9254165783983233))\n    test 326 rotate: (-0.005694, 1.334382, 1.104261)\n    test 327 tyr3d: (0.0, 0.0, 0.0)\n    test 328 tyr3d: (0.0, -2.0, 0.0)\n    test 329 tyr3d: (0.0, -2.0, 0.0)\n    test 330 tyr3d: (0.0, 0.0, -2.0)\n\n    test 331 Ltp: {'ecef': EcefVeness(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name='')}\n    test 332 name: Test\n    test 333 toStr: Ltp(lat0=33.0, lon0=44.0, height0=20.0, M=EcefMatrix(_0_0_=-0.694658, _0_1_=-0.391781, _0_2_=0.603289, _1_0_=0.71934, _1_1_=-0.378338, _1_2_=0.58259, _2_0_=0.0, _2_1_=0.838671, _2_2_=0.544639), ecef=EcefVeness(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Test')  FAILED, KNOWN, expected Ltp\n    test 334 copy(<type 'type'>): (<class 'pygeodesy.ltp.Ltp'>, True)\n    test 335 Ltp.copy(): (<class 'pygeodesy.ltp.Ltp'>, True)\n    test 336 New: lat0=33.0, lon0=44.0, height0=20.0, M=EcefMatrix(_0_0_=-0.694658, _0_1_=-0.391781, _0_2_=0.603289, _1_0_=0.71934, _1_1_=-0.378338, _1_2_=0.58259, _2_0_=0.0, _2_1_=0.838671, _2_2_=0.544639), ecef=EcefVeness(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Test'\n    test 337 forward: 37288.97, 33374.29, 5783.65\n    test 338 name: Test\n    test 339 reverse: 33.3, 44.4, 6000.0\n    test 340 name: Test\n    test 341 name: Paris\n    test 342 Paris: 48.833, 2.333, 0.0\n    test 343 forward: -37518.64, 229949.65, -4260.43\n    test 344 name: Calais\n    test 345 reverse: 50.9, 1.8, -0.0\n    test 346 name: Paris\n    test 347 reverse: -38000.0, 230000.0, -4000.0\n    test 348 reverse: 50.9, 1.79, 264.92\n    test 349 forward: -38223.7, 229964.2, -4000.0\n\n    test 350 Zermatt: lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefVeness(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'  FAILED, KNOWN, expected Ltp\n    test 351 Matterhorn: (45.976, 7.658, 4531.01)\n    test 352 xyz: (-7134.8, -4556.3, 2852.4)\n    test 353 _local2ecef: 4403757.602, 592124.536, 4566652.082\n    test 354 _local2ecef: (4403757.602, 592124.536, 4566652.082, 45.976, 7.658, 4531.01, 1, None, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))  FAILED, KNOWN, expected Ecef9Tuple\n    test 355 _local2ecef: Ecef9Tuple\n    test 356 _ecef2local: (-7134.8, -4556.3, 2852.4, 45.976, 7.658, 4531.01, Ltp(lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefVeness(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'), Ecef9Tuple(x=4403757.601549, y=592124.535536, z=4566652.082005, lat=45.976, lon=7.657999, height=4531.009608, C=1, M=None, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84)), None)  FAILED, KNOWN, expected Local9Tuple\n    test 357 _ecef2local: Local9Tuple\n    test 358 Xyz: (-7134.8, -4556.3, 2852.4, None)\n    test 359 Aer: (-7134.912, -4444.548, 2852.474, None)\n    test 360 Enu: (-7134.8, -4556.3, 2852.4, None)\n    test 361 Ned: [-4556.3, -7134.8, -2852.4]\n    test 362 Enu: [-7134.8, -4556.3, 2852.4]\n    test 363 Ned: [-4556.3, -7134.8, -2852.4]\n\n    test 364 lon00: (90.0, 57.3, 0.0, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 365 lon00: (90.0, 3.75, 0.0, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n\n    test 366 Frustum: 90.0, 90.0\n    test 367 hfov: 90.0\n    test 368 vfov: 90.0\n    test 369 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None))\n    test 370 footprint.xyzLocal5: ([X:0.0, Y:0.0, Z:0.0], [X:1000.0, Y:1000.0, Z:0.0], [X:1000.0, Y:1000.0, Z:0.0], [X:-1000.0, Y:-1000.0, Z:0.0], [X:-1000.0, Y:-1000.0, Z:0.0])\n    test 371 footprint.toLatLon5: (LatLon_(00.0°N, 000.0°E), LatLon_(00.009044°N, 000.008983°E, +0.16), LatLon_(00.009044°N, 000.008983°E, +0.16), LatLon_(00.009044°S, 000.008983°W, +0.16), LatLon_(00.009044°S, 000.008983°W, +0.16))\n\n    test 372 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None))\n    test 373 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=414.213562, y=414.213562, z=0.0, ltp=None), Xyz4Tuple(x=414.213562, y=414.213562, z=0.0, ltp=None), Xyz4Tuple(x=-414.213562, y=-414.213562, z=0.0, ltp=None), Xyz4Tuple(x=-414.213562, y=-414.213562, z=0.0, ltp=None))\n    test 374 footprint: (Xyz4Tuple(x=-57289.961631, y=-57289.961631, z=0.0, ltp=None), Xyz4Tuple(x=2538.647896, y=2538.647896, z=0.0, ltp=None), Xyz4Tuple(x=2538.647896, y=2538.647896, z=0.0, ltp=None), Xyz4Tuple(x=-2299.842547, y=-2299.842547, z=0.0, ltp=None), Xyz4Tuple(x=-2299.842547, y=-2299.842547, z=0.0, ltp=None))\n\n    test 375 Attitude: (0.0, -10.0, 330.0, -20.0)\n    test 376 alt: 0.0\n    test 377 tilt: -10.0\n    test 378 roll: -20.0\n    test 379 yaw: 330.0\n    test 380 matrix: ((0.8137976813493736, -0.44096961052988237, -0.37852230636979256), (0.46984631039295416, 0.8825641192593855, -0.01802831123629728), (0.3420201433256688, -0.16317591116653488, 0.9254165783983233))  FAILED, KNOWN, expected ((0.8137976813493737, -0.4409696105298823, -0.3785223063697926), (0.4698463103929541, 0.8825641192593856, -0.01802831123629725), (0.3420201433256688, -0.16317591116653488, 0.9254165783983233))\n    test 381 rotate: (-0.005694, 1.334382, 1.104261)\n    test 382 tyr3d: (0.0, 0.0, 0.0)\n    test 383 tyr3d: (0.0, -2.0, 0.0)\n    test 384 tyr3d: (0.0, -2.0, 0.0)\n    test 385 tyr3d: (0.0, 0.0, -2.0)\n\n    test 386 Ltp: {'ecef': EcefSudano(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name='')}\n    test 387 name: Test\n    test 388 toStr: Ltp(lat0=33.0, lon0=44.0, height0=20.0, M=EcefMatrix(_0_0_=-0.694658, _0_1_=-0.391781, _0_2_=0.603289, _1_0_=0.71934, _1_1_=-0.378338, _1_2_=0.58259, _2_0_=0.0, _2_1_=0.838671, _2_2_=0.544639), ecef=EcefSudano(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Test')  FAILED, KNOWN, expected Ltp\n    test 389 copy(<type 'type'>): (<class 'pygeodesy.ltp.Ltp'>, True)\n    test 390 Ltp.copy(): (<class 'pygeodesy.ltp.Ltp'>, True)\n    test 391 New: lat0=33.0, lon0=44.0, height0=20.0, M=EcefMatrix(_0_0_=-0.694658, _0_1_=-0.391781, _0_2_=0.603289, _1_0_=0.71934, _1_1_=-0.378338, _1_2_=0.58259, _2_0_=0.0, _2_1_=0.838671, _2_2_=0.544639), ecef=EcefSudano(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Test'\n    test 392 forward: 37288.97, 33374.29, 5783.65\n    test 393 name: Test\n    test 394 reverse: 33.33, 44.4, 5998.84  FAILED, KNOWN, expected 33.3, 44.4, 6000.0\n    test 395 name: Test\n    test 396 name: Paris\n    test 397 Paris: 48.833, 2.333, 0.0\n    test 398 forward: -37518.64, 229949.65, -4260.43\n    test 399 name: Calais\n    test 400 reverse: 51.01, 1.8, -11.8  FAILED, KNOWN, expected 50.9, 1.8, -0.0\n    test 401 name: Paris\n    test 402 reverse: -38000.0, 230000.0, -4000.0\n    test 403 reverse: 51.01, 1.79, 253.12  FAILED, KNOWN, expected 50.9, 1.79, 264.92\n    test 404 forward: -38223.7, 229964.2, -4000.0\n\n    test 405 Zermatt: lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefSudano(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'  FAILED, KNOWN, expected Ltp\n    test 406 Matterhorn: (46.06, 7.658, 4524.116)  FAILED, KNOWN, expected (45.976, 7.658, 4531.01)\n    test 407 xyz: (-7124.0, 4817.7, 2845.3)  FAILED, KNOWN, expected (-7134.8, -4556.3, 2852.4)\n    test 408 _local2ecef: 4403757.602, 592124.536, 4566652.082\n    test 409 _local2ecef: (4403757.602, 592124.536, 4566652.082, 46.06, 7.658, 4524.116, 1, None, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))  FAILED, KNOWN, expected Ecef9Tuple\n    test 410 _local2ecef: Ecef9Tuple\n    test 411 _ecef2local: (-7134.8, -4556.3, 2852.4, 46.06, 7.658, 4524.116, Ltp(lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefSudano(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'), Ecef9Tuple(x=4403757.601549, y=592124.535536, z=4566652.082005, lat=46.060275, lon=7.657999, height=4524.115631, C=1, M=None, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84)), None)  FAILED, KNOWN, expected Local9Tuple\n    test 412 _ecef2local: Local9Tuple\n    test 413 Xyz: (-7134.8, -4556.3, 2852.4, None)\n    test 414 Aer: (-7134.912, -4444.548, 2852.474, None)\n    test 415 Enu: (-7134.8, -4556.3, 2852.4, None)\n    test 416 Ned: [-4556.3, -7134.8, -2852.4]\n    test 417 Enu: [-7134.8, -4556.3, 2852.4]\n    test 418 Ned: [-4556.3, -7134.8, -2852.4]\n\n    test 419 lon00: (90.0, 57.3, 0.0, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 420 lon00: (90.0, 3.75, 0.0, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n\n    test 421 Frustum: 90.0, 90.0\n    test 422 hfov: 90.0\n    test 423 vfov: 90.0\n    test 424 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None))\n    test 425 footprint.xyzLocal5: ([X:0.0, Y:0.0, Z:0.0], [X:1000.0, Y:1000.0, Z:0.0], [X:1000.0, Y:1000.0, Z:0.0], [X:-1000.0, Y:-1000.0, Z:0.0], [X:-1000.0, Y:-1000.0, Z:0.0])\n    test 426 footprint.toLatLon5: (LatLon_(00.0°N, 000.0°E), LatLon_(00.009044°N, 000.008983°E, +0.16), LatLon_(00.009044°N, 000.008983°E, +0.16), LatLon_(00.009044°S, 000.008983°W, +0.16), LatLon_(00.009044°S, 000.008983°W, +0.16))\n\n    test 427 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None))\n    test 428 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=414.213562, y=414.213562, z=0.0, ltp=None), Xyz4Tuple(x=414.213562, y=414.213562, z=0.0, ltp=None), Xyz4Tuple(x=-414.213562, y=-414.213562, z=0.0, ltp=None), Xyz4Tuple(x=-414.213562, y=-414.213562, z=0.0, ltp=None))\n    test 429 footprint: (Xyz4Tuple(x=-57289.961631, y=-57289.961631, z=0.0, ltp=None), Xyz4Tuple(x=2538.647896, y=2538.647896, z=0.0, ltp=None), Xyz4Tuple(x=2538.647896, y=2538.647896, z=0.0, ltp=None), Xyz4Tuple(x=-2299.842547, y=-2299.842547, z=0.0, ltp=None), Xyz4Tuple(x=-2299.842547, y=-2299.842547, z=0.0, ltp=None))\n\n    test 430 Attitude: (0.0, -10.0, 330.0, -20.0)\n    test 431 alt: 0.0\n    test 432 tilt: -10.0\n    test 433 roll: -20.0\n    test 434 yaw: 330.0\n    test 435 matrix: ((0.8137976813493736, -0.44096961052988237, -0.37852230636979256), (0.46984631039295416, 0.8825641192593855, -0.01802831123629728), (0.3420201433256688, -0.16317591116653488, 0.9254165783983233))  FAILED, KNOWN, expected ((0.8137976813493737, -0.4409696105298823, -0.3785223063697926), (0.4698463103929541, 0.8825641192593856, -0.01802831123629725), (0.3420201433256688, -0.16317591116653488, 0.9254165783983233))\n    test 436 rotate: (-0.005694, 1.334382, 1.104261)\n    test 437 tyr3d: (0.0, 0.0, 0.0)\n    test 438 tyr3d: (0.0, -2.0, 0.0)\n    test 439 tyr3d: (0.0, -2.0, 0.0)\n    test 440 tyr3d: (0.0, 0.0, -2.0)\n\n    test 441 Ltp: {'ecef': EcefYou(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name='')}\n    test 442 name: Test\n    test 443 toStr: Ltp(lat0=33.0, lon0=44.0, height0=20.0, M=EcefMatrix(_0_0_=-0.694658, _0_1_=-0.391781, _0_2_=0.603289, _1_0_=0.71934, _1_1_=-0.378338, _1_2_=0.58259, _2_0_=0.0, _2_1_=0.838671, _2_2_=0.544639), ecef=EcefYou(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Test')  FAILED, KNOWN, expected Ltp\n    test 444 copy(<type 'type'>): (<class 'pygeodesy.ltp.Ltp'>, True)\n    test 445 Ltp.copy(): (<class 'pygeodesy.ltp.Ltp'>, True)\n    test 446 New: lat0=33.0, lon0=44.0, height0=20.0, M=EcefMatrix(_0_0_=-0.694658, _0_1_=-0.391781, _0_2_=0.603289, _1_0_=0.71934, _1_1_=-0.378338, _1_2_=0.58259, _2_0_=0.0, _2_1_=0.838671, _2_2_=0.544639), ecef=EcefYou(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Test'\n    test 447 forward: 37288.97, 33374.29, 5783.65\n    test 448 name: Test\n    test 449 reverse: 33.3, 44.4, 6000.0\n    test 450 name: Test\n    test 451 name: Paris\n    test 452 Paris: 48.833, 2.333, 0.0\n    test 453 forward: -37518.64, 229949.65, -4260.43\n    test 454 name: Calais\n    test 455 reverse: 50.9, 1.8, -0.0\n    test 456 name: Paris\n    test 457 reverse: -38000.0, 230000.0, -4000.0\n    test 458 reverse: 50.9, 1.79, 264.92\n    test 459 forward: -38223.7, 229964.2, -4000.0\n\n    test 460 Zermatt: lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefYou(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'  FAILED, KNOWN, expected Ltp\n    test 461 Matterhorn: (45.976, 7.658, 4531.01)\n    test 462 xyz: (-7134.8, -4556.3, 2852.4)\n    test 463 _local2ecef: 4403757.602, 592124.536, 4566652.082\n    test 464 _local2ecef: (4403757.602, 592124.536, 4566652.082, 45.976, 7.658, 4531.01, 1, None, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))  FAILED, KNOWN, expected Ecef9Tuple\n    test 465 _local2ecef: Ecef9Tuple\n    test 466 _ecef2local: (-7134.8, -4556.3, 2852.4, 45.976, 7.658, 4531.01, Ltp(lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefYou(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'), Ecef9Tuple(x=4403757.601549, y=592124.535536, z=4566652.082005, lat=45.976, lon=7.657999, height=4531.009608, C=1, M=None, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84)), None)  FAILED, KNOWN, expected Local9Tuple\n    test 467 _ecef2local: Local9Tuple\n    test 468 Xyz: (-7134.8, -4556.3, 2852.4, None)\n    test 469 Aer: (-7134.912, -4444.548, 2852.474, None)\n    test 470 Enu: (-7134.8, -4556.3, 2852.4, None)\n    test 471 Ned: [-4556.3, -7134.8, -2852.4]\n    test 472 Enu: [-7134.8, -4556.3, 2852.4]\n    test 473 Ned: [-4556.3, -7134.8, -2852.4]\n\n    test 474 lon00: (90.0, 57.3, 0.0, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 475 lon00: (90.0, 3.75, 0.0, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n\n    test 476 Frustum: 90.0, 90.0\n    test 477 hfov: 90.0\n    test 478 vfov: 90.0\n    test 479 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None))\n    test 480 footprint.xyzLocal5: ([X:0.0, Y:0.0, Z:0.0], [X:1000.0, Y:1000.0, Z:0.0], [X:1000.0, Y:1000.0, Z:0.0], [X:-1000.0, Y:-1000.0, Z:0.0], [X:-1000.0, Y:-1000.0, Z:0.0])\n    test 481 footprint.toLatLon5: (LatLon_(00.0°N, 000.0°E), LatLon_(00.009044°N, 000.008983°E, +0.16), LatLon_(00.009044°N, 000.008983°E, +0.16), LatLon_(00.009044°S, 000.008983°W, +0.16), LatLon_(00.009044°S, 000.008983°W, +0.16))\n\n    test 482 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None))\n    test 483 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=414.213562, y=414.213562, z=0.0, ltp=None), Xyz4Tuple(x=414.213562, y=414.213562, z=0.0, ltp=None), Xyz4Tuple(x=-414.213562, y=-414.213562, z=0.0, ltp=None), Xyz4Tuple(x=-414.213562, y=-414.213562, z=0.0, ltp=None))\n    test 484 footprint: (Xyz4Tuple(x=-57289.961631, y=-57289.961631, z=0.0, ltp=None), Xyz4Tuple(x=2538.647896, y=2538.647896, z=0.0, ltp=None), Xyz4Tuple(x=2538.647896, y=2538.647896, z=0.0, ltp=None), Xyz4Tuple(x=-2299.842547, y=-2299.842547, z=0.0, ltp=None), Xyz4Tuple(x=-2299.842547, y=-2299.842547, z=0.0, ltp=None))\n\n    test 485 Attitude: (0.0, -10.0, 330.0, -20.0)\n    test 486 alt: 0.0\n    test 487 tilt: -10.0\n    test 488 roll: -20.0\n    test 489 yaw: 330.0\n    test 490 matrix: ((0.8137976813493736, -0.44096961052988237, -0.37852230636979256), (0.46984631039295416, 0.8825641192593855, -0.01802831123629728), (0.3420201433256688, -0.16317591116653488, 0.9254165783983233))  FAILED, KNOWN, expected ((0.8137976813493737, -0.4409696105298823, -0.3785223063697926), (0.4698463103929541, 0.8825641192593856, -0.01802831123629725), (0.3420201433256688, -0.16317591116653488, 0.9254165783983233))\n    test 491 rotate: (-0.005694, 1.334382, 1.104261)\n    test 492 tyr3d: (0.0, 0.0, 0.0)\n    test 493 tyr3d: (0.0, -2.0, 0.0)\n    test 494 tyr3d: (0.0, -2.0, 0.0)\n    test 495 tyr3d: (0.0, 0.0, -2.0)\n\n    test 496 ChLV: ...\n    test 497 name: Test\n    test 498 ChLV_: ChLV\n\n    test 499 forward1: (-72.039994, -147.361444, -49.552111, 46.95108, 7.438637, 0.0, ChLV(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n    test 500 Y, X, h_: (-72.03999403763082, -147.36144397404468, -49.55211073436746)\n    test 501 EN2_LV95: (2599927.960006, 1199852.638556)\n    test 502 yx2_LV03: (599927.960006, 199852.638556)\n    test 503 reverse1: (-72.039994, -147.361444, -49.552111, 46.95108, 7.438637, 0.0, ChLV(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n\n    test 504 reverse2: (100000.0, 0.0, 600.0, 46.944873, 8.752874, 1431.948128, ChLV(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n    test 505 forward2: (100000.0, 0.0, 600.0, 46.944873, 8.752874, 1431.948128, ChLV(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n    test 506 Y, X, h_: (100000.00000000006, -6.592699719476514e-10, 600.0000000007253)\n    test 507 EN2_LV95: (2700000.0, 1200000.0)\n    test 508 yx2_LV03: (700000.0, 200000.0)\n\n    test 509 forward3: (99920.639806, -100148.24791, -967.661696, 46.044131, 8.730497, 650.6, ChLV(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n    test 510 Y, X, h_: (99920.63980649543, -100148.24791021264, -967.6616955399786)\n    test 511 EN2_LV95: (2699920.639806, 1099851.75209)\n    test 512 yx2_LV03: (699920.639806, 99851.75209)\n    test 513 reverse3: (99920.639806, -100148.24791, -967.661696, 46.044131, 8.730497, 650.6, ChLV(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n\n    test 514 forward4: (79527.502386, 12274.804229, -556.312155, 47.058043, 8.48642, 0.0, ChLV(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n    test 515 Y, X, h_: (79527.50238583283, 12274.804228939956, -556.3121548993859)\n    test 516 EN2_LV95: (2679527.502386, 1212274.804229)\n    test 517 yx2_LV03: (679527.502386, 212274.804229)\n    test 518 reverse4: (79527.502386, 12274.804229, -556.312155, 47.058043, 8.48642, -0.0, ChLV(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n\n    test 519 REFRAME1: (8.616351530455896, 46.65475067063166, 3083.4064441218347)  FAILED, KNOWN, expected (8.61588452888461, 46.6532932166132, 2367.70367439557)\n    test 520 REFRAME1:  0.00146 m\n    test 521 REFRAME2: (10.204043023734304, 46.77783593870853, 5053.168786317753)  FAILED, KNOWN, expected (10.2046874099038, 46.7763864160066, 1546.62256775331)\n    test 522 REFRAME2:  0.00145 m\n    test 523 REFRAME3: (7.231565437123991, 47.39538671375251, 1150.358929551555)  FAILED, KNOWN, expected (7.23058814336896, 47.3941353658685, 940.206020880491)\n    test 524 REFRAME3:  0.00125 m\n    test 525 REFRAME4: (9.843252123471995, 46.81431931429166, 4291.256736215736)  FAILED, KNOWN, expected (9.84351348200287, 46.8129146868336, 1645.59174753912)\n    test 526 REFRAME4:  0.0014 m\n    test 527 REFRAME5: (6.568908171267955, 46.52284580890316, 985.7597106115306)  FAILED, KNOWN, expected (6.56789363190021, 46.5214647527993, 460.491580192)\n    test 528 REFRAME5:  0.00138 m\n    test 529 REFRAME6: (8.731242095241983, 46.04567715552448, 2216.7888714367236)  FAILED, KNOWN, expected (8.73049738375132, 46.0441209510033, 650.012275829911)\n    test 530 REFRAME6:  0.00156 m\n\n    test 531 Bollinger.lat: 46°11′13.03444″N  FAILED, KNOWN, expected 46°11′12.03969″N\n    test 532 Bollinger.lon: 009°07′55.69155″E  FAILED, KNOWN, expected 009°07′57.29664″E\n    test 533 Zermatt: (46.01693292843191, 7.7455811694023975, 2629.5454517413277)  FAILED, KNOWN, expected (46.015314107, 7.74720273, 1742.449)\n    test 534 Zermatt:  0.00162 m\n    test 535 Zimmerwald: (46.87842744604622, 7.466218796566257, 953.0972897404837)  FAILED, KNOWN, expected (46.878427446, 7.466218797, 953.0973)\n    test 536 Zimmerwald:  4.34e-10 m\n    test 537 Chrischona: (47.56830864684501, 7.66954858440231, 897.4060435656096)  FAILED, KNOWN, expected (47.568308647, 7.6695485844, 897.406)\n    test 538 Chrischona:  1.55e-10 m\n    test 539 Pfaender: (47.516320169780975, 9.784378737247414, 3868.8598426346603)  FAILED, KNOWN, expected (47.5163201698, 9.7843787372, 3868.8599)\n    test 540 Pfaender:  4.74e-11 m\n    test 541 La Givrine: (46.45557406857667, 6.103316269663712, 2313.9449708991415)  FAILED, KNOWN, expected (46.4555740686, 6.1033162697, 2313.94497)\n    test 542 La Givrine:  3.63e-11 m\n    test 543 Monte Generoso: (45.931118444496924, 9.021602047098654, 3855.4332412055332)  FAILED, KNOWN, expected (45.9311184445, 9.0216020471, 3855.4332)\n    test 544 Monte Generoso:  3.08e-12 m\n\n    test 545 ChLVa: ...\n    test 546 name: Test\n    test 547 ChLV_: ChLVa\n\n    test 548 forward1: (0.329415, -0.292702, -49.554242, 46.95108, 7.438637, 0.0, ChLVa(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n    test 549 Y, X, h_: (0.32941546850192266, -0.2927016084473125, -49.554241824400016)\n    test 550 EN2_LV95: (2600000.329415, 1199999.707298)\n    test 551 yx2_LV03: (600000.329415, 199999.707298)\n    test 552 reverse1: (0.329415, -0.292702, -49.554242, 46.951078, 7.438642, -0.004239, ChLVa(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n\n    test 553 reverse2: (100000.0, -100000.0, 600.0, 46.044127, 8.730499, 650.554, ChLVa(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n    test 554 forward2: (99999.933937, -100000.44412, 600.003469, 46.044127, 8.730499, 650.554, ChLVa(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n    test 555 Y, X, h_: (99999.933937317, -100000.44412018938, 600.0034685464)\n    test 556 EN2_LV95: (2699999.933937, 1099999.55588)\n    test 557 yx2_LV03: (699999.933937, 99999.55588)\n\n    test 558 forward3: (99999.763621, -100000.026905, 600.049476, 46.044131, 8.730497, 650.6, ChLVa(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n    test 559 Y, X, h_: (99999.76362116335, -100000.0269049639, 600.0494759100001)\n    test 560 EN2_LV95: (2699999.763621, 1099999.973095)\n    test 561 yx2_LV03: (699999.763621, 99999.973095)\n    test 562 reverse3: (99999.763621, -100000.026905, 600.049476, 46.044127, 8.730496, 650.603479, ChLVa(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n\n    test 563 forward4: (79602.736359, 12421.914221, -48.257243, 47.058043, 8.48642, 0.0, ChLVa(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n    test 564 Y, X, h_: (79602.73635877526, 12421.914220824741, -48.25724328779257)\n    test 565 EN2_LV95: (2679602.736359, 1212421.914221)\n    test 566 yx2_LV03: (679602.736359, 212421.914221)\n    test 567 reverse4: (79602.736359, 12421.914221, -48.257243, 47.058038, 8.486421, 0.00853, ChLVa(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n\n    test 568 REFRAME1: (8.615878879495897, 46.65329026883798, 2365.31877736998)  FAILED, KNOWN, expected (8.61588452888461, 46.6532932166132, 2367.70367439557)\n    test 569 REFRAME1:  5.65e-06 m\n    test 570 REFRAME2: (10.204675703252203, 46.77638487390875, 1542.5231657804)  FAILED, KNOWN, expected (10.2046874099038, 46.7763864160066, 1546.62256775331)\n    test 571 REFRAME2:  1.17e-05 m\n    test 572 REFRAME3: (7.230597895755378, 47.394131639593425, 939.5622657947999)  FAILED, KNOWN, expected (7.23058814336896, 47.3941353658685, 940.206020880491)\n    test 573 REFRAME3:  9.75e-06 m\n    test 574 REFRAME4: (9.843502988079765, 46.812913925274714, 1642.70478811448)  FAILED, KNOWN, expected (9.84351348200287, 46.8129146868336, 1645.59174753912)\n    test 575 REFRAME4:  1.05e-05 m\n    test 576 REFRAME5: (6.5678939352793595, 46.52146855855015, 462.1027394584)  FAILED, KNOWN, expected (6.56789363190021, 46.5214647527993, 460.491580192)\n    test 577 REFRAME5:  3.81e-06 m\n    test 578 REFRAME6: (8.730499333333333, 46.04412677777778, 650.554)  FAILED, KNOWN, expected (8.73049738375132, 46.0441209510033, 650.012275829911)\n    test 579 REFRAME6:  5.83e-06 m\n\n    test 580 Bollinger.lat: 46°11′07.65425″N  FAILED, KNOWN, expected 46°11′12.03969″N\n    test 581 Bollinger.lon: 009°07′52.99874″E  FAILED, KNOWN, expected 009°07′57.29664″E\n    test 582 Zermatt: (46.01531297876282, 7.744712831892469, 1739.1724096628)  FAILED, KNOWN, expected (46.015314107, 7.74720273, 1742.449)\n    test 583 Zermatt:  0.00249 m\n    test 584 Zimmerwald: (46.877092307814216, 7.465275686541408, 947.6256267527999)  FAILED, KNOWN, expected (46.878427446, 7.466218797, 953.0973)\n    test 585 Zimmerwald:  0.00134 m\n    test 586 Chrischona: (47.56704452300608, 7.668609312668058, 503.84493534800004)  FAILED, KNOWN, expected (47.568308647, 7.6695485844, 897.406)\n    test 587 Chrischona:  0.00126 m\n    test 588 Pfaender: (47.51533372240414, 9.784358161933795, 1088.46794437916)  FAILED, KNOWN, expected (47.5163201698, 9.7843787372, 3868.8599)\n    test 589 Pfaender:  0.000986 m\n    test 590 La Givrine: (46.45409066669543, 6.1020351431347315, 1259.50889260448)  FAILED, KNOWN, expected (46.4555740686, 6.1033162697, 2313.94497)\n    test 591 La Givrine:  0.00148 m\n    test 592 Monte Generoso: (45.92930092608269, 9.02121992500755, 1687.1468504651998)  FAILED, KNOWN, expected (45.9311184445, 9.0216020471, 3855.4332)\n    test 593 Monte Generoso:  0.00182 m\n\n    test 594 ChLVe: ...\n    test 595 name: Test\n    test 596 ChLV_: ChLVe\n\n    test 597 forward1: (-72.031251, -147.344948, -49.554242, 46.95108, 7.438637, 0.0, ChLVe(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n    test 598 Y, X, h_: (-72.031251437589, -147.3449483831346, -49.554241824400016)\n    test 599 EN2_LV95: (2599927.968749, 1199852.655052)\n    test 600 yx2_LV03: (599927.968749, 199852.655052)\n    test 601 reverse1: (-72.031251, -147.344948, -49.554242, 46.95108, 7.438637, 0.000002, ChLVe(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n\n    test 602 reverse2: (100000.0, 0.0, 600.0, 46.944869, 8.753274, 648.29, ChLVe(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n    test 603 forward2: (100000.000001, 0.0, 600.012265, 46.944869, 8.753274, 648.29, ChLVe(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n    test 604 Y, X, h_: (100000.00000057962, 1.8112534442566837e-07, 600.0122653531955)\n    test 605 EN2_LV95: (2700000.000001, 1200000.0)\n    test 606 yx2_LV03: (700000.000001, 200000.0)\n\n    test 607 forward3: (99914.740455, -100135.079382, 600.049476, 46.044131, 8.730497, 650.6, ChLVe(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n    test 608 Y, X, h_: (99914.74045471674, -100135.07938181334, 600.0494759100001)\n    test 609 EN2_LV95: (2699914.740455, 1099864.920618)\n    test 610 yx2_LV03: (699914.740455, 99864.920618)\n    test 611 reverse3: (99914.740455, -100135.079382, 600.049476, 46.044131, 8.730497, 650.607608, ChLVe(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n\n    test 612 forward4: (79520.050001, 12273.439993, -48.257243, 47.058043, 8.48642, 0.0, ChLVe(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n    test 613 Y, X, h_: (79520.05000103211, 12273.439993103837, -48.25724328779257)\n    test 614 EN2_LV95: (2679520.050001, 1212273.439993)\n    test 615 yx2_LV03: (679520.050001, 212273.439993)\n    test 616 reverse4: (79520.050001, 12273.439993, -48.257243, 47.058043, 8.48642, 0.012933, ChLVe(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n\n    test 617 REFRAME1: (8.617004216786864, 46.65457267826783, 2365.31877736998)  FAILED, KNOWN, expected (8.61588452888461, 46.6532932166132, 2367.70367439557)\n    test 618 REFRAME1:  0.00128 m\n    test 619 REFRAME2: (10.206045201491072, 46.777660119243905, 1542.5231657804)  FAILED, KNOWN, expected (10.2046874099038, 46.7763864160066, 1546.62256775331)\n    test 620 REFRAME2:  0.00136 m\n    test 621 REFRAME3: (7.231508661195409, 47.3955074884183, 939.5622657947999)  FAILED, KNOWN, expected (7.23058814336896, 47.3941353658685, 940.206020880491)\n    test 622 REFRAME3:  0.00137 m\n    test 623 REFRAME4: (9.844818386934287, 46.814198001739975, 1642.70478811448)  FAILED, KNOWN, expected (9.84351348200287, 46.8129146868336, 1645.59174753912)\n    test 624 REFRAME4:  0.0013 m\n    test 625 REFRAME5: (6.568709824649145, 46.5227385206423, 462.1027394584)  FAILED, KNOWN, expected (6.56789363190021, 46.5214647527993, 460.491580192)\n    test 626 REFRAME5:  0.00127 m\n    test 627 REFRAME6: (8.731627351611777, 46.04533300622348, 650.554)  FAILED, KNOWN, expected (8.73049738375132, 46.0441209510033, 650.012275829911)\n    test 628 REFRAME6:  0.00121 m\n\n    test 629 Bollinger.lat: 46°11′12.03969″N\n    test 630 Bollinger.lon: 009°07′57.29664″E\n    test 631 Bollinger.gamma: 1.37471549498\n\n    test 632 Zermatt: (46.016524980589146, 7.745700583699864, 1739.1724096628)  FAILED, KNOWN, expected (46.015314107, 7.74720273, 1742.449)\n    test 633 Zermatt:  0.0015 m\n    test 634 Zimmerwald: (46.878408134660475, 7.46622597045386, 947.6256267527999)  FAILED, KNOWN, expected (46.878427446, 7.466218797, 953.0973)\n    test 635 Zimmerwald:  1.93e-05 m\n    test 636 Chrischona: (47.56844071309313, 7.669595854297879, 503.84493534800004)  FAILED, KNOWN, expected (47.568308647, 7.6695485844, 897.406)\n    test 637 Chrischona:  0.000132 m\n    test 638 Pfaender: (47.51669640784962, 9.785678729594727, 1088.46794437916)  FAILED, KNOWN, expected (47.5163201698, 9.7843787372, 3868.8599)\n    test 639 Pfaender:  0.0013 m\n    test 640 La Givrine: (46.45534732351903, 6.102781792813614, 1259.50889260448)  FAILED, KNOWN, expected (46.4555740686, 6.1033162697, 2313.94497)\n    test 641 La Givrine:  0.000534 m\n    test 642 Monte Generoso: (45.93048753878003, 9.022387820586593, 1687.1468504651998)  FAILED, KNOWN, expected (45.9311184445, 9.0216020471, 3855.4332)\n    test 643 Monte Generoso:  0.000786 m\n\n    102 of 643 testLtp.py tests (15.9%) FAILED, incl. 90 KNOWN plus 12 DeprecationWarnings (pygeodesy 26.3.26 Python 2.7.18 64bit arm64_x86_64 geographiclib 1.50 numpy 1.16.6 scipy 1.2.2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 -W  default) 119.398 ms\nrunning /Library/Framewo....ython -W default ~/PyGeodesy/test/testLtpTuples.py\n\n    testing testLtpTuples.py 23.11.21\n\n    test 1 Aer.toRepr: [A:60.0°, E:40.0°, R:1000.0]\n    test 2 Aer.toStr: [60.0, 40.0, 1000.0]\n    test 3 Aer.xyzLocal.toAer: [60.0, 40.0, 1000.0]\n    test 4 Aer.xyzLocal.toAer: [60.0, 40.0, 1000.0]\n    test 5 Aer.xyzLocal.toEnu: [663.41, 383.02, 642.79]\n    test 6 Enu.xyzLocal.toAer: [60.0, 40.0, 1000.0]\n    test 7 Aer.xyzLocal.toNed: [383.02, 663.41, -642.79]\n    test 8 Ned.xyzLocal.toAer: [60.0, 40.0, 1000.0]\n    test 9 Aer.xyzLocal.toXyz: [663.41, 383.02, 642.79]\n    test 10 Xyz.xyzLocal.toAer: [60.0, 40.0, 1000.0]\n    test 11 Aer.toCartesian: [4397663.96, 599165.33, 4568492.25]\n    test 12 Cartesian.toLocal Aer: [60.0, 40.0, 1000.0]\n    test 13 Aer.toLatLon: 46°01′13.6″N, 007°45′30.83″E, +2315.83m\n    test 14 LatLon.toLocal Aer: [60.0, 40.0, 1000.0]\n    test 15 Aer.azimuth: 60.0\n    test 16 Aer.elevation: 40.0\n    test 17 Aer.slantrange: 1000.0\n    test 18 Aer.groundrange: 766.044\n    test 19 Aer.east: 663.414\n    test 20 Aer.north: 383.022\n    test 21 Aer.up: 642.788\n    test 22 Aer.down: -642.788\n    test 23 Aer.x: 663.414\n    test 24 Aer.y: 383.022\n    test 25 Aer.z: 642.788\n    test 26 Aer.xyz: 663.414, 383.022, 642.788\n\n    test 27 Los: [A:45.0°, E:-45.0°, R:1.0]\n    test 28 Los: [E:0.5, N:0.5, U:-0.707]\n    test 29 Los: [U:-0.707, V:0.5, W:0.5]\n    test 30 Los: [E:0.5, N:0.5, U:-0.707]\n\n    test 31 Enu.toRepr: [E:100.0, N:200.0, U:1000.0]\n    test 32 Enu.toStr: [100.0, 200.0, 1000.0]\n    test 33 Enu.xyzLocal.toAer: [26.57, 77.4, 1024.7]\n    test 34 Aer.xyzLocal.toEnu: [100.0, 200.0, 1000.0]\n    test 35 Enu.xyzLocal.toEnu: [100.0, 200.0, 1000.0]\n    test 36 Enu.xyzLocal.toEnu: [100.0, 200.0, 1000.0]\n    test 37 Enu.xyzLocal.toNed: [200.0, 100.0, -1000.0]\n    test 38 Ned.xyzLocal.toEnu: [100.0, 200.0, 1000.0]\n    test 39 Enu.xyzLocal.toXyz: [100.0, 200.0, 1000.0]\n    test 40 Xyz.xyzLocal.toEnu: [100.0, 200.0, 1000.0]\n    test 41 Enu.toCartesian: [4398116.23, 598658.27, 4568622.18]\n    test 42 Cartesian.toLocal Enu: [100.0, 200.0, 1000.0]\n    test 43 Enu.toLatLon: 46°01′07.67″N, 007°45′04.65″E, +2673.00m\n    test 44 LatLon.toLocal Enu: [100.0, 200.0, 1000.0]\n    test 45 Enu.azimuth: 26.565\n    test 46 Enu.elevation: 77.396\n    test 47 Enu.slantrange: 1024.695\n    test 48 Enu.groundrange: 223.607\n    test 49 Enu.east: 100.0\n    test 50 Enu.north: 200.0\n    test 51 Enu.up: 1000.0\n    test 52 Enu.down: -1000.0\n    test 53 Enu.x: 100.0\n    test 54 Enu.y: 200.0\n    test 55 Enu.z: 1000.0\n    test 56 Enu.xyz: 100.0, 200.0, 1000.0\n\n    test 57 Los: [A:45.0°, E:-45.0°, R:1.0]\n    test 58 Los: [E:0.5, N:0.5, U:-0.707]\n    test 59 Los: [U:-0.707, V:0.5, W:0.5]\n    test 60 Los: [E:0.5, N:0.5, U:-0.707]\n\n    test 61 Ned.toRepr: [N:200.0, E:100.0, D:1000.0]\n    test 62 Ned.toStr: [200.0, 100.0, 1000.0]\n    test 63 Ned.xyzLocal.toAer: [26.57, -77.4, 1024.7]\n    test 64 Aer.xyzLocal.toNed: [200.0, 100.0, 1000.0]\n    test 65 Ned.xyzLocal.toEnu: [100.0, 200.0, -1000.0]\n    test 66 Enu.xyzLocal.toNed: [200.0, 100.0, 1000.0]\n    test 67 Ned.xyzLocal.toNed: [200.0, 100.0, 1000.0]\n    test 68 Ned.xyzLocal.toNed: [200.0, 100.0, 1000.0]\n    test 69 Ned.xyzLocal.toXyz: [100.0, 200.0, -1000.0]\n    test 70 Xyz.xyzLocal.toNed: [200.0, 100.0, 1000.0]\n    test 71 Ned.toCartesian: [4396740.02, 598470.98, 4567183.09]\n    test 72 Cartesian.toLocal Ned: [200.0, 100.0, 1000.0]\n    test 73 Ned.toLatLon: 46°01′07.68″N, 007°45′04.65″E, +673.00m\n    test 74 LatLon.toLocal Ned: [200.0, 100.0, 1000.0]\n    test 75 Ned.azimuth: 26.565\n    test 76 Ned.elevation: -77.396\n    test 77 Ned.slantrange: 1024.695\n    test 78 Ned.groundrange: 223.607\n    test 79 Ned.east: 100.0\n    test 80 Ned.north: 200.0\n    test 81 Ned.up: -1000.0\n    test 82 Ned.down: 1000.0\n    test 83 Ned.x: 100.0\n    test 84 Ned.y: 200.0\n    test 85 Ned.z: -1000.0\n    test 86 Ned.xyz: 100.0, 200.0, -1000.0\n\n    test 87 Los: [A:45.0°, E:-45.0°, R:1.0]\n    test 88 Los: [E:0.5, N:0.5, U:-0.707]\n    test 89 Los: [U:-0.707, V:0.5, W:0.5]\n    test 90 Los: [E:0.5, N:0.5, U:-0.707]\n\n    test 91 Xyz.toRepr: [X:10.0, Y:20.0, Z:100.0]\n    test 92 Xyz.toStr: [10.0, 20.0, 100.0]\n    test 93 Xyz.xyzLocal.toAer: [26.57, 77.4, 102.47]\n    test 94 Aer.xyzLocal.toXyz: [10.0, 20.0, 100.0]\n    test 95 Xyz.xyzLocal.toEnu: [10.0, 20.0, 100.0]\n    test 96 Enu.xyzLocal.toXyz: [10.0, 20.0, 100.0]\n    test 97 Xyz.xyzLocal.toNed: [20.0, 10.0, -100.0]\n    test 98 Ned.xyzLocal.toXyz: [10.0, 20.0, 100.0]\n    test 99 Xyz.xyzLocal.toXyz: [10.0, 20.0, 100.0]\n    test 100 Xyz.xyzLocal.toXyz: [10.0, 20.0, 100.0]\n    test 101 Xyz.toCartesian: [4397637.41, 598502.28, 4567849.59]\n    test 102 Cartesian.toLocal Xyz: [10.0, 20.0, 100.0]\n    test 103 Xyz.toLatLon: 46°01′01.85″N, 007°45′00.46″E, +1773.00m\n    test 104 LatLon.toLocal Xyz: [10.0, 20.0, 100.0]\n    test 105 Xyz.azimuth: 26.565\n    test 106 Xyz.elevation: 77.396\n    test 107 Xyz.slantrange: 102.47\n    test 108 Xyz.groundrange: 22.361\n    test 109 Xyz.east: 10.0\n    test 110 Xyz.north: 20.0\n    test 111 Xyz.up: 100.0\n    test 112 Xyz.down: -100.0\n    test 113 Xyz.x: 10.0\n    test 114 Xyz.y: 20.0\n    test 115 Xyz.z: 100.0\n    test 116 Xyz.xyz: 10.0, 20.0, 100.0\n\n    test 117 Los: [A:45.0°, E:-45.0°, R:1.0]\n    test 118 Los: [E:0.5, N:0.5, U:-0.707]\n    test 119 Los: [U:-0.707, V:0.5, W:0.5]\n    test 120 Los: [E:0.5, N:0.5, U:-0.707]\n\n    test 121 Local9Tuple.toRepr: Local9Tuple(x=10.0, y=20.0, z=100.0, lat=46.02, lon=7.75, height=1773.0, ltp=Ltp(lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transfo\n    test 122 Local9Tuple.toStr: (10.0, 20.0, 100.0, 46.02, 7.75, 1773.0, Ltp(lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'\n    test 123 Local9Tuple.xyzLocal.toAer: [26.57, 77.4, 102.47]\n    test 124 Aer.xyzLocal.toLocal9Tuple: (10.0, 20.0, 100.0, 46.02, 7.75, 1773.0, Ltp(lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'\n    test 125 Local9Tuple.xyzLocal.toEnu: [10.0, 20.0, 100.0]\n    test 126 Enu.xyzLocal.toLocal9Tuple: (10.0, 20.0, 100.0, 46.02, 7.75, 1773.0, Ltp(lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'\n    test 127 Local9Tuple.xyzLocal.toNed: [20.0, 10.0, -100.0]\n    test 128 Ned.xyzLocal.toLocal9Tuple: (10.0, 20.0, 100.0, 46.02, 7.75, 1773.0, Ltp(lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'\n    test 129 Local9Tuple.xyzLocal.toXyz: [10.0, 20.0, 100.0]\n    test 130 Xyz.xyzLocal.toLocal9Tuple: (10.0, 20.0, 100.0, 46.02, 7.75, 1773.0, Ltp(lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'\n    test 131 Local9Tuple.toCartesian: [4397637.41, 598502.28, 4567849.59]\n    test 132 Local9Tuple.toLatLon: 46°01′01.85″N, 007°45′00.46″E, +1773.00m\n    test 133 Local9Tuple.azimuth: 26.565\n    test 134 Local9Tuple.elevation: 77.396\n    test 135 Local9Tuple.slantrange: 102.47\n    test 136 Local9Tuple.groundrange: 22.361\n    test 137 Local9Tuple.east: 10.0\n    test 138 Local9Tuple.north: 20.0\n    test 139 Local9Tuple.up: 100.0\n    test 140 Local9Tuple.down: -100.0\n    test 141 Local9Tuple.x: 10.0\n    test 142 Local9Tuple.y: 20.0\n    test 143 Local9Tuple.z: 100.0\n    test 144 Local9Tuple.xyz: 10.0, 20.0, 100.0\n    test 145 Local9Tuple.lat: 46.02\n    test 146 Local9Tuple.lon: 7.75\n    test 147 Local9Tuple.latlon: 46.02, 7.75\n    test 148 Local9Tuple.latlonheight: 46.02, 7.75, 1773.0\n    test 149 Local9Tuple.phi: 0.803\n    test 150 Local9Tuple.lam: 0.135\n    test 151 Local9Tuple.philam: 0.803, 0.135\n    test 152 Local9Tuple.philamheight: 0.803, 0.135, 1773.0\n\n    test 153 Los: [A:45.0°, E:-45.0°, R:1.0]\n    test 154 Los: [E:0.5, N:0.5, U:-0.707]\n    test 155 Los: [U:-0.707, V:0.5, W:0.5]\n    test 156 Los: [E:0.5, N:0.5, U:-0.707]\n\n    all 156 testLtpTuples.py tests passed (pygeodesy 26.3.26 Python 2.7.18 64bit arm64_x86_64 geographiclib 1.50 numpy 1.16.6 scipy 1.2.2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 -W  default) 18.264 ms\nrunning /Library/Framewo....ython -W default ~/PyGeodesy/test/testMgrs.py\n./test/testMgrs.py:88: DeprecationWarning: property_RO L{en100k<pygeodesy.mgrs.Mgrs.en100k>} has been DEPRECATED, use property C{EN}.\n  self.test(a, getattr(p, a), x)\n./test/testMgrs.py:88: DeprecationWarning: property_RO L{digraph<pygeodesy.mgrs.Mgrs.digraph>} has been DEPRECATED, use property C{EN}.\n  self.test(a, getattr(p, a), x)\n./test/testMgrs.py:94: DeprecationWarning: property_RO L{digraph<pygeodesy.mgrs.Mgrs6Tuple.digraph>} has been DEPRECATED, use attribute C{EN}.\n  self.test('digraph', m.digraph, m.EN, nt=1)  # DEPRECATED\n./test/testMgrs.py:117: DeprecationWarning: property_RO L{digraph<pygeodesy.mgrs.Mgrs4Tuple.digraph>} has been DEPRECATED, use attribute C{EN}.\n  self.test('digraph', t.digraph, t.EN)  # DEPRECATED\n\n    testing testMgrs.py 24.10.13 (module pygeodesy.mgrs 25.05.12)\n    test 1 Mgrs1: 42S XD 09705 38646\n    test 2 Mgrs1: [Z:42S, G:XD, E:09705, N:38646]\n    test 3 Mgrs2: 42S XD 19705 08646\n    test 4 Mgrs2: [Z:42S, G:XD, E:19705, N:08646]\n    test 5 Mgrs3: 42S XD 19000 38000\n    test 6 Mgrs3: [Z:42S, G:XD, E:19000, N:38000]\n    test 7 Mgrs4: 31U DQ 48251 11932\n    test 8 Mgrs4: [Z:31U, G:DQ, E:48251, N:11932]\n    test 9 Mgrs5: 31U DQ 48251 11932\n    test 10 Mgrs5: [Z:31U, G:DQ, E:48251, N:11932]\n    test 11 Mgrs6: 31U DQ 48251 11932\n    test 12 Mgrs6: [Z:31U, G:DQ, E:48251, N:11932]\n    test 13 Mgrs7: 31U DQ 48251 11932\n    test 14 Mgrs7: [Z:31U, G:DQ, E:48251, N:11932]\n    test 15 Mgrs8: 31 N 431000 4582000\n    test 16 Mgrs8: (41.38657, 2.174726, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), -0.54564, 0.999659)\n    test 17 Mgrs8: 31 N 431500 4582500\n    test 18 Mgrs8: 31T DF 31000 82000\n    test 19 Mgrs8: 41.391116°N, 002.180649°E\n    test 20 Mgrs8: 31T DF 31000 82000\n    test 21 Mgrs9: 31U DQ 48251 11932\n    test 22 Mgrs9: [Z:31U, G:DQ, E:48251, N:11932]\n    test 23 toUtm1: 31 N 448251 5411932\n    test 24 toUtm1: [Z:31U, H:N, E:448251, N:5411932]\n    test 25 toMgrs1: 31U DQ 48251 11932\n    test 26 toMgrs1: [Z:31U, G:DQ, E:48251, N:11932]\n\n    test 27 toUtm(None): (31, 'N', 448251.0, 5411932.0, 'U')\n    test 28 easting: 48251.0\n    test 29 northing: 11932.0\n    test 30 EN: DQ\n    test 31 en100k: DQ\n    test 32 digraph: DQ\n    test 33 zone: 31\n    test 34 band: U\n    test 35 bandLatitude: 48\n    test 36 eastingnorthing: (48251.0, 11932.0)\n    test 37 resolution: 1.0\n    test 38 tilesize: 100000.0\n\n    test 39 toMgrs: 31U DQ 48251 11932\n    test 40 toMgrs(None): Mgrs6Tuple\n    test 41 digraph: DQ\n\n    test 42 (60.0°N, 001.0°E).toUtmUps.toMgrs: 31V CG 88455 53097\n    test 43 (60.0°N, 003.0°E).toUtmUps.toMgrs: 32V JM 65640 66593\n    test 44 (60.0°N, 009.0°E).toUtmUps.toMgrs: 32V NM 00000 51411\n    test 45 (76.0°N, 001.0°E).toUtmUps.toMgrs: 31X DE 45999 36099\n    test 46 (76.0°N, 013.0°E).toUtmUps.toMgrs: 33X VE 45999 36099\n    test 47 (76.0°N, 025.0°E).toUtmUps.toMgrs: 35X ME 45999 36099\n    test 48 (76.0°N, 037.0°E).toUtmUps.toMgrs: 37X DE 45999 36099\n    test 49 (84.0°N, 042.0°E).toUtmUps.toMgrs: Z GC 46127 04524\n    test 50 (90.0°S, 000.0°E).toUtmUps.toMgrs: B AN 00000 00000\n\n    test 51 Mgrs: BAN00\n    test 52 Mgrs4Tuple: ('B', 'AN', 0.0, 0.0)\n    test 53 Mgrs4Tuple: SouthPole(zone='B', EN='AN', easting=0.0, northing=0.0)\n    test 54 digraph: AN\n    test 55 toMgrs.toLatLon: SouthPole(lat=-90.0, lon=0.0, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), gamma=-0.0, scale=0.994)\n\n    test 56 Ups: 00 S 2000000 2000000\n    test 57 Ups: 00 S 2000500 2000500\n    test 58 Mgrs: 0.1\n\n    test 59 Mgrs: Y UB 17770 03800\n    test 60 Mgrs: [Z:Y, G:UB, E:17770, N:03800]\n    test 61 toUtmUps: 00 N 1617775 1403805\n    test 62 toUtmUps: [Z:00Y, H:N, E:1617775, N:1403805]\n    test 63 toLatLon: (83.627518, -32.664231, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), -0.570098, 0.99708)\n    test 64 toLatLon: LatLonDatum5Tuple(lat=83.627518, lon=-32.664231, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), gamma=-0.570098, scale=0.99708)\n    test 65 toMgrs!: 25X EN 04160 86523\n\n    test 66 Mgrs: B FS 77514 99182\n    test 67 Mgrs: [Z:B, G:FS, E:77514, N:99182]\n    test 68 toUtmUps: 00 S 2377514 2499182\n    test 69 toUtmUps: [Z:00B, H:S, E:2377514, N:2499182]\n    test 70 toLatLon: (-84.367192, 37.098959, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), -0.647499, 0.996406)\n    test 71 toLatLon: LatLonDatum5Tuple(lat=-84.367192, lon=37.098959, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), gamma=-0.647499, scale=0.996406)\n    test 72 toMgrs: B FS 77514 99182\n\n    test 73 Mgrs: 45S XT 47000 91000\n    test 74 Mgrs: [Z:45S, G:XT, E:47000, N:91000]\n    test 75 toUtmUps: 45 N 647500 3791500\n    test 76 toUtmUps: [Z:45S, H:N, E:647500, N:3791500]\n    test 77 toLatLon: (34.254177, 88.601932, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), 0.901835, 0.999868)\n    test 78 toLatLon: LatLonDatum5Tuple(lat=34.254177, lon=88.601932, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), gamma=0.901835, scale=0.999868)\n    test 79 toMgrs: 45S XT 47499 91499\n\n    test 80 Mgrs: Y XK 35000 43000\n    test 81 Mgrs: [Z:Y, G:XK, E:35000, N:43000]\n    test 82 toUtmUps: 00 N 1735500 2243500\n    test 83 toUtmUps: [Z:00Y, H:N, E:1735500, N:2243500]\n    test 84 toLatLon: (86.762629, -132.632821, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), -2.314879, 0.994794)\n    test 85 toLatLon: LatLonDatum5Tuple(lat=86.762629, lon=-132.632821, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), gamma=-2.314879, scale=0.994794)\n    test 86 toMgrs: Y XK 35499 43500\n\n    test 87 GeoConvert: /opt/local/bin/GeoConvert\n    test 88 LatLon(  39.36,  144.922).toMgrs: 55SCD2096958786\n    test 89 LatLon(-78.654, -173.463).toMgrs: 02CMT4592267502\n    test 90 LatLon( 83.887,  -63.519).toMgrs: 20XMU9382915506\n    test 91 LatLon(-51.572,   -0.446).toMgrs: 30FXH7698783472\n    test 92 LatLon(  8.745,   83.747).toMgrs: 44PRQ0225367762\n    test 93 LatLon( 18.462,   15.716).toMgrs: 33QWA7559941450\n    test 94 LatLon( 43.537,  -83.536).toMgrs: 17TKJ9510023575\n    test 95 LatLon( -5.546,   136.85).toMgrs: 53MQP0493686661\n    test 96 LatLon( 38.356,   36.065).toMgrs: 37SBC4353949393\n    test 97 LatLon( -63.62,  153.507).toMgrs: 56ENQ2513445229\n    test 98 LatLon(-77.552,  108.785).toMgrs: 49CDP4671390620\n    test 99 LatLon(-59.603,   -0.108).toMgrs: 30EXU6320389246\n    test 100 LatLon( 31.807,    12.51).toMgrs: 33RTR6428121744\n    test 101 LatLon(-82.997, -104.153).toMgrs: AQL4519809664\n    test 102 LatLon(-13.178,  -72.605).toMgrs: 18LYL5959841942\n    test 103 LatLon(-65.863, -132.642).toMgrs: 08DPM0757593339\n    test 104 LatLon( 39.302,   15.455).toMgrs: 33SWD3923150389\n    test 105 LatLon( -5.902, -164.707).toMgrs: 03MWP3243247620\n    test 106 LatLon( 44.569,  171.489).toMgrs: 59TNK3882835189\n    test 107 LatLon( 38.755,   -6.655).toMgrs: 29SQC0376892200\n    test 108 LatLon( 35.956,   45.166).toMgrs: 38SNE1496979080\n    test 109 LatLon( -61.94,   17.005).toMgrs: 33EXM0521030879\n    test 110 LatLon( 19.685, -108.499).toMgrs: 12QYG6219878552\n    test 111 LatLon(-40.085,  -63.474).toMgrs: 20GMA5958962700\n    test 112 LatLon( -22.42,  -67.062).toMgrs: 19KFR9947419396\n    test 113 LatLon( 77.796,   134.24).toMgrs: 53XMG8206535719\n    test 114 LatLon( -1.924, -114.614).toMgrs: 11MQT6543087153\n    test 115 LatLon( 71.648,  121.906).toMgrs: 51WVV6155750018\n    test 116 LatLon(-82.154,  109.797).toMgrs: BLK2084104527\n    test 117 LatLon(-82.799,  123.247).toMgrs: BJH6946561129\n    test 118 LatLon( 16.059,  149.421).toMgrs: 55QGT5901676976\n    test 119 LatLon( 23.105, -124.379).toMgrs: 10QCL5877855810\n    test 120 LatLon(  4.624,  136.082).toMgrs: 53NPF2001711193\n    test 121 LatLon(-18.638,   41.842).toMgrs: 37KGV9985936848\n    test 122 LatLon(-24.796,    57.82).toMgrs: 40JET8288357391\n    test 123 LatLon(-25.489,  -80.216).toMgrs: 17JNM7879880672\n    test 124 LatLon(-84.093,  147.271).toMgrs: BFG5488047832\n    test 125 LatLon(  18.32,  136.912).toMgrs: 53QQA0207126649\n    test 126 LatLon( 32.804,  -67.063).toMgrs: 19SFS8135931219\n    test 127 LatLon(-73.019,  165.897).toMgrs: 58CED2923997181\n    test 128 LatLon( 70.445,  141.254).toMgrs: 54WWD0948815519\n    test 129 LatLon(  -21.0,   31.524).toMgrs: 36KUB4658877144\n    test 130 LatLon( 42.646,  -60.191).toMgrs: 20TQN3027425330\n    test 131 LatLon(-40.201,  -84.024).toMgrs: 16GGA5330345685\n    test 132 LatLon( -0.138,   -33.77).toMgrs: 25MDV1431584745\n    test 133 LatLon( 62.336,  111.938).toMgrs: 49VEK4858611964\n    test 134 LatLon(-62.138,  -73.444).toMgrs: 18EWS8112409472\n    test 135 LatLon( -7.778,  158.951).toMgrs: 57MVM9459740244\n    test 136 LatLon( 57.177,  -21.342).toMgrs: 27VVD7932337140\n    test 137 LatLon( 55.219, -131.471).toMgrs: 09UUB4281221946\n    test 138 LatLon(-72.036,  142.774).toMgrs: 54CWF6105906152\n    test 139 LatLon(-54.797,  114.341).toMgrs: 50FLE2907024555\n    test 140 LatLon(   70.1,  -24.982).toMgrs: 26WNC7664878294\n    test 141 LatLon(  -26.7, -160.857).toMgrs: 04JCR1525145446\n    test 142 LatLon(-79.698,  155.461).toMgrs: 56CNS4911951083\n    test 143 LatLon( 63.026,  -136.69).toMgrs: 08VMQ1448089610\n    test 144 LatLon( -23.12,   58.885).toMgrs: 40KFV9303041949\n    test 145 LatLon(-24.116, -168.236).toMgrs: 02JQU8094930160\n    test 146 LatLon( 74.227,   17.463).toMgrs: 33XWC7471238908\n    test 147 LatLon(-37.375,  140.497).toMgrs: 54HVD5546563407\n    test 148 LatLon(-26.887,  172.794).toMgrs: 59JPL7818624818\n    test 149 LatLon(  29.95,  149.753).toMgrs: 55RGP6570516433\n    test 150 LatLon(-22.452,   37.786).toMgrs: 37KCR7508416636\n    test 151 LatLon( 46.813,   19.345).toMgrs: 34TCS7374085713\n    test 152 LatLon( 16.245,   41.083).toMgrs: 37QGT2263197168\n    test 153 LatLon( 78.863,  145.878).toMgrs: 55XDH7580754916\n    test 154 LatLon( -7.677,  -58.933).toMgrs: 21MTM8678150929\n    test 155 LatLon( 49.608,    10.04).toMgrs: 32UNV7513795567\n    test 156 LatLon(-32.743,  -55.872).toMgrs: 21HXD0568076640\n    test 157 LatLon(-43.501,  -82.979).toMgrs: 17GLM4000981645\n    test 158 LatLon( -3.169,  -40.879).toMgrs: 24MTB9119449537\n    test 159 LatLon(-64.861,  137.092).toMgrs: 53DNJ9914905397\n    test 160 LatLon(-31.736,  151.393).toMgrs: 56JLK4776787702\n    test 161 LatLon( 33.269,  161.742).toMgrs: 57SYS5540584463\n    test 162 LatLon( 33.552,  155.917).toMgrs: 56SQC7083016296\n    test 163 LatLon( -4.079,   75.738).toMgrs: 43MER8191649102\n    test 164 LatLon( 20.274, -159.516).toMgrs: 04QDH4611741886\n    test 165 LatLon( 75.155,   90.309).toMgrs: 46XDJ2306542647\n    test 166 LatLon(-70.236,   70.098).toMgrs: 42DWH4143507434\n    test 167 LatLon( 24.707,  163.214).toMgrs: 58RCN1933133682\n    test 168 LatLon(  1.205, -144.495).toMgrs: 06NYG7877133317\n    test 169 LatLon( -2.572,    5.284).toMgrs: 31MGT5396515487\n    test 170 LatLon(  8.409,  -15.032).toMgrs: 28PDQ9647729514\n    test 171 LatLon(-79.194,  -25.642).toMgrs: 26CNT2842008043\n    test 172 LatLon(-44.281,  155.531).toMgrs: 56GQR0196293800\n    test 173 LatLon(-29.758,  163.902).toMgrs: 58JCN9384107524\n    test 174 LatLon(-25.152,  -45.874).toMgrs: 23JMN1191117935\n    test 175 LatLon( -83.97,  110.805).toMgrs: BJK2637561999\n    test 176 LatLon(-70.394,   81.809).toMgrs: 44DNG3029689986\n    test 177 LatLon( 31.304,   21.566).toMgrs: 34REV5386263431\n    test 178 LatLon(-31.454,  142.447).toMgrs: 54JXL3748719175\n    test 179 LatLon( 43.575,  -38.702).toMgrs: 24TWP2406124713\n    test 180 LatLon(  55.99, -171.219).toMgrs: 02UMH8633704988\n    test 181 LatLon( 46.269, -136.468).toMgrs: 08TLS8688124983\n    test 182 LatLon( 16.757,    79.01).toMgrs: 44QKD8787153735\n    test 183 LatLon( 73.646, -141.181).toMgrs: 07XDB9431172553\n    test 184 LatLon( 39.275,   84.983).toMgrs: 45SUD2601549233\n    test 185 LatLon( 11.723, -125.088).toMgrs: 10PBT7242696766\n    test 186 LatLon( 73.192, -162.546).toMgrs: 03XWB7918523521\n    test 187 LatLon( 22.912, -116.787).toMgrs: 11QNF2184233794\n    test 188 LatLon( 74.129, -120.405).toMgrs: 10XEH7919028155\n    test 189 LatLon( 10.971,  -73.276).toMgrs: 18PXT8838113312\n    test 190 LatLon(  -8.14,   13.824).toMgrs: 33LUM7044100036\n    test 191 LatLon(-50.516,  -75.907).toMgrs: 18FVK3569603602\n    test 192 LatLon( -37.45,  -35.421).toMgrs: 25HBU8584852453\n    test 193 LatLon( -0.331, -157.145).toMgrs: 04MGE0644763395\n    test 194 LatLon(-15.313,    36.61).toMgrs: 37LBD4337005640\n    test 195 LatLon( -5.859,  -86.471).toMgrs: 16MEU5855952354\n    test 196 LatLon( 66.558,  -86.484).toMgrs: 16WEU2290682203\n    test 197 LatLon( 45.645,  -141.71).toMgrs: 07TDL4467254850\n    test 198 LatLon( 20.643,    96.19).toMgrs: 47QKC0718285171\n    test 199 LatLon( 41.607,   36.799).toMgrs: 37TCG1659508483\n    test 200 LatLon(-14.569,  144.596).toMgrs: 55LBD4097487976\n    test 201 LatLon( 81.303,   44.621).toMgrs: 38XMR9360227046\n    test 202 LatLon( 15.046,  117.581).toMgrs: 50PNB6244963496\n    test 203 LatLon(  5.297,  156.769).toMgrs: 57NTF5273685938\n    test 204 LatLon( 20.772,   -5.685).toMgrs: 30QTH2045299238\n\n    4 of 204 testMgrs.py tests (2.0%) FAILED, incl. 4 DeprecationWarnings (pygeodesy 26.3.26 Python 2.7.18 64bit arm64_x86_64 geographiclib 1.50 numpy 1.16.6 scipy 1.2.2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 -W  default) 776.743 ms\nrunning /Library/Framewo....ython -W default ~/PyGeodesy/test/testModules.py\n\n    testing testModules.py 24.06.05\n\n    testModule(pygeodesy, 26.03.26)\n    test 1 pygeodesy.ADict() class (pygeodesy.named): True\n    test 2 pygeodesy.Aer() class (pygeodesy.ltpTuples): True\n    test 3 pygeodesy.Aer4Tuple() class (pygeodesy.ltpTuples): True\n    test 4 pygeodesy.Albers7Tuple() class (pygeodesy.albers): True\n    test 5 pygeodesy.AlbersEqualArea() class (pygeodesy.albers): True\n    test 6 pygeodesy.AlbersEqualArea2() class (pygeodesy.albers): True\n    test 7 pygeodesy.AlbersEqualArea4() class (pygeodesy.albers): True\n    test 8 pygeodesy.AlbersEqualAreaCylindrical() class (pygeodesy.albers): True\n    test 9 pygeodesy.AlbersEqualAreaNorth() class (pygeodesy.albers): True\n    test 10 pygeodesy.AlbersEqualAreaSouth() class (pygeodesy.albers): True\n    test 11 pygeodesy.AlbersError() class (pygeodesy.albers): True\n    test 12 pygeodesy.Ang() class (pygeodesy.angles): True\n    test 13 pygeodesy.Area3Tuple() class (pygeodesy.karney): True\n    test 14 pygeodesy.Attitude() class (pygeodesy.ltp): True\n    test 15 pygeodesy.Attitude4Tuple() class (pygeodesy.ltpTuples): True\n    test 16 pygeodesy.AttitudeError() class (pygeodesy.ltp): True\n    test 17 pygeodesy.AuxError() class (pygeodesy.errors): True\n    test 18 pygeodesy.Azimuth() class (pygeodesy.units): True\n    test 19 pygeodesy.Azimuthal7Tuple() class (pygeodesy.azimuthal): True\n    test 20 pygeodesy.AzimuthalError() class (pygeodesy.azimuthal): True\n    test 21 pygeodesy.Band() class (pygeodesy.units): True\n    test 22 pygeodesy.Bearing() class (pygeodesy.units): True\n    test 23 pygeodesy.Bearing2Tuple() class (pygeodesy.namedTuples): True\n    test 24 pygeodesy.Bearing_() class (pygeodesy.units): True\n    test 25 pygeodesy.BetOmgAlp5Tuple() class (pygeodesy.triaxials.triaxial3): True\n    test 26 pygeodesy.BetOmgGam5Tuple() class (pygeodesy.triaxials.conformal3): True\n    test 27 pygeodesy.BetaOmega2Tuple() class (pygeodesy.triaxials.triaxial5): True\n    test 28 pygeodesy.BetaOmega3Tuple() class (pygeodesy.triaxials.triaxial5): True\n    test 29 pygeodesy.Bool() class (pygeodesy.units): True\n    test 30 pygeodesy.BooleanFHP() class (pygeodesy.booleans): True\n    test 31 pygeodesy.BooleanGH() class (pygeodesy.booleans): True\n    test 32 pygeodesy.Bounds2Tuple() class (pygeodesy.namedTuples): True\n    test 33 pygeodesy.Bounds4Tuple() class (pygeodesy.namedTuples): True\n    test 34 pygeodesy.CSSError() class (pygeodesy.css): True\n    test 35 pygeodesy.Caps class pygeodesy.karney.Caps (pygeodesy.karney): True\n    test 36 pygeodesy.Cartesian5Tuple() class (pygeodesy.triaxials.triaxial3): True\n    test 37 pygeodesy.CassiniSoldner() class (pygeodesy.css): True\n    test 38 pygeodesy.ChLV() class (pygeodesy.ltp): True\n    test 39 pygeodesy.ChLV9Tuple() class (pygeodesy.ltpTuples): True\n    test 40 pygeodesy.ChLVEN2Tuple() class (pygeodesy.ltpTuples): True\n    test 41 pygeodesy.ChLVYX2Tuple() class (pygeodesy.ltpTuples): True\n    test 42 pygeodesy.ChLVa() class (pygeodesy.ltp): True\n    test 43 pygeodesy.ChLVe() class (pygeodesy.ltp): True\n    test 44 pygeodesy.ChLVyx2Tuple() class (pygeodesy.ltpTuples): True\n    test 45 pygeodesy.Circin6Tuple() class (pygeodesy.vector2d): True\n    test 46 pygeodesy.Circle4Tuple() class (pygeodesy.namedTuples): True\n    test 47 pygeodesy.Circum3Tuple() class (pygeodesy.vector2d): True\n    test 48 pygeodesy.Circum4Tuple() class (pygeodesy.vector2d): True\n    test 49 pygeodesy.ClipCS4Tuple() class (pygeodesy.clipy): True\n    test 50 pygeodesy.ClipError() class (pygeodesy.errors): True\n    test 51 pygeodesy.ClipFHP4Tuple() class (pygeodesy.clipy): True\n    test 52 pygeodesy.ClipGH4Tuple() class (pygeodesy.clipy): True\n    test 53 pygeodesy.ClipLB6Tuple() class (pygeodesy.clipy): True\n    test 54 pygeodesy.ClipSH3Tuple() class (pygeodesy.clipy): True\n    test 55 pygeodesy.Collins5Tuple() class (pygeodesy.resections): True\n    test 56 pygeodesy.Conformal() class (pygeodesy.triaxials.triaxial5): True\n    test 57 pygeodesy.Conformal2Tuple() class (pygeodesy.triaxials.triaxial5): True\n    test 58 pygeodesy.Conformal3() class (pygeodesy.triaxials.conformal3): True\n    test 59 pygeodesy.Conformal3B() class (pygeodesy.triaxials.conformal3): True\n    test 60 pygeodesy.Conformal3Sphere() class (pygeodesy.triaxials.conformal3): True\n    test 61 pygeodesy.Conformal5Tuple() class (pygeodesy.triaxials.bases): True\n    test 62 pygeodesy.ConformalSphere() class (pygeodesy.triaxials.triaxial5): True\n    test 63 pygeodesy.Conic() class (pygeodesy.lcc): True\n    test 64 pygeodesy.Conics class pygeodesy.lcc.Conics (pygeodesy.lcc): True\n    test 65 pygeodesy.CrossError() class (pygeodesy.errors): True\n    test 66 pygeodesy.Css() class (pygeodesy.css): True\n    test 67 pygeodesy.Curvature2Tuple() class (pygeodesy.ellipsoids): True\n    test 68 pygeodesy.DIG int (pygeodesy.unitsBase): True\n    test 69 pygeodesy.Datum() class (pygeodesy.datums): True\n    test 70 pygeodesy.Datums class pygeodesy.datums.Datums (pygeodesy.datums): True\n    test 71 pygeodesy.Deg() function (pygeodesy.angles): True\n    test 72 pygeodesy.Degrees() class (pygeodesy.units): True\n    test 73 pygeodesy.Degrees2() class (pygeodesy.units): True\n    test 74 pygeodesy.Degrees_() class (pygeodesy.units): True\n    test 75 pygeodesy.DeprecationWarnings class pygeodesy.props.DeprecationWarnings (pygeodesy.props): True\n    test 76 pygeodesy.Destination2Tuple() class (pygeodesy.namedTuples): True\n    test 77 pygeodesy.Destination3Tuple() class (pygeodesy.namedTuples): True\n    test 78 pygeodesy.Direct9Tuple() class (pygeodesy.karney): True\n    test 79 pygeodesy.Distance() class (pygeodesy.units): True\n    test 80 pygeodesy.Distance2Tuple() class (pygeodesy.namedTuples): True\n    test 81 pygeodesy.Distance3Tuple() class (pygeodesy.namedTuples): True\n    test 82 pygeodesy.Distance4Tuple() class (pygeodesy.namedTuples): True\n    test 83 pygeodesy.Distance_() class (pygeodesy.units): True\n    test 84 pygeodesy.DivMod2Tuple() class (pygeodesy.fsums): True\n    test 85 pygeodesy.EPS float (pygeodesy.unitsBase): True\n    test 86 pygeodesy.EPS0 float (pygeodesy.unitsBase): True\n    test 87 pygeodesy.EPS02 float (pygeodesy.unitsBase): True\n    test 88 pygeodesy.EPS1 float (pygeodesy.unitsBase): True\n    test 89 pygeodesy.EPS2 float (pygeodesy.unitsBase): True\n    test 90 pygeodesy.EPS4 float (pygeodesy.unitsBase): True\n    test 91 pygeodesy.EPS8 float (pygeodesy.unitsBase): True\n    test 92 pygeodesy.EPSGError() class (pygeodesy.epsg): True\n    test 93 pygeodesy.EPS_2 float (pygeodesy.unitsBase): True\n    test 94 pygeodesy.ETMError() class (pygeodesy.etm): True\n    test 95 pygeodesy.EasNor2Tuple() class (pygeodesy.namedTuples): True\n    test 96 pygeodesy.EasNor3Tuple() class (pygeodesy.namedTuples): True\n    test 97 pygeodesy.EasNorAziRk4Tuple() class (pygeodesy.css): True\n    test 98 pygeodesy.EasNorAziRkEqu6Tuple() class (pygeodesy.css): True\n    test 99 pygeodesy.EasNorRadius3Tuple() class (pygeodesy.webmercator): True\n    test 100 pygeodesy.Easting() class (pygeodesy.units): True\n    test 101 pygeodesy.Ecef9Tuple() class (pygeodesy.ecef): True\n    test 102 pygeodesy.EcefError() class (pygeodesy.ecef): True\n    test 103 pygeodesy.EcefFarrell21() class (pygeodesy.ecef): True\n    test 104 pygeodesy.EcefFarrell22() class (pygeodesy.ecef): True\n    test 105 pygeodesy.EcefKarney() class (pygeodesy.ecef): True\n    test 106 pygeodesy.EcefMatrix() class (pygeodesy.ecef): True\n    test 107 pygeodesy.EcefSudano() class (pygeodesy.ecef): True\n    test 108 pygeodesy.EcefUPC() class (pygeodesy.ecef): True\n    test 109 pygeodesy.EcefVeness() class (pygeodesy.ecef): True\n    test 110 pygeodesy.EcefYou() class (pygeodesy.ecef): True\n    test 111 pygeodesy.Elevation2Tuple() class (pygeodesy.elevations): True\n    test 112 pygeodesy.Ellipse() class (pygeodesy.ellipses): True\n    test 113 pygeodesy.Ellipse5Tuple() class (pygeodesy.namedTuples): True\n    test 114 pygeodesy.EllipseError() class (pygeodesy.ellipses): True\n    test 115 pygeodesy.Ellipsoid() class (pygeodesy.ellipsoids): True\n    test 116 pygeodesy.Ellipsoid2() class (pygeodesy.ellipsoids): True\n    test 117 pygeodesy.Ellipsoids class pygeodesy.ellipsoids.Ellipsoids (pygeodesy.ellipsoids): True\n    test 118 pygeodesy.Elliptic() class (pygeodesy.elliptic): True\n    test 119 pygeodesy.Elliptic3Tuple() class (pygeodesy.elliptic): True\n    test 120 pygeodesy.EllipticError() class (pygeodesy.elliptic): True\n    test 121 pygeodesy.Enu() class (pygeodesy.ltpTuples): True\n    test 122 pygeodesy.Enu4Tuple() class (pygeodesy.ltpTuples): True\n    test 123 pygeodesy.Epoch() class (pygeodesy.units): True\n    test 124 pygeodesy.Epsg() class (pygeodesy.epsg): True\n    test 125 pygeodesy.Equidistant() class (pygeodesy.azimuthal): True\n    test 126 pygeodesy.EquidistantExact() class (pygeodesy.azimuthal): True\n    test 127 pygeodesy.EquidistantGeodSolve() class (pygeodesy.azimuthal): True\n    test 128 pygeodesy.EquidistantKarney() class (pygeodesy.azimuthal): True\n    test 129 pygeodesy.Etm() class (pygeodesy.etm): True\n    test 130 pygeodesy.ExactTransverseMercator() class (pygeodesy.etm): True\n    test 131 pygeodesy.FIx() class (pygeodesy.units): True\n    test 132 pygeodesy.F_D str: True\n    test 133 pygeodesy.F_D60 str: True\n    test 134 pygeodesy.F_D60_ str (pygeodesy.interns): True\n    test 135 pygeodesy.F_D60__ str (pygeodesy.interns): True\n    test 136 pygeodesy.F_DEG str: True\n    test 137 pygeodesy.F_DEG_ str (pygeodesy.interns): True\n    test 138 pygeodesy.F_DEG__ str (pygeodesy.interns): True\n    test 139 pygeodesy.F_DM str: True\n    test 140 pygeodesy.F_DMS str: True\n    test 141 pygeodesy.F_DMS_ str (pygeodesy.interns): True\n    test 142 pygeodesy.F_DMS__ str (pygeodesy.interns): True\n    test 143 pygeodesy.F_DM_ str (pygeodesy.interns): True\n    test 144 pygeodesy.F_DM__ str (pygeodesy.interns): True\n    test 145 pygeodesy.F_D_ str (pygeodesy.interns): True\n    test 146 pygeodesy.F_D__ str (pygeodesy.interns): True\n    test 147 pygeodesy.F_MIN str: True\n    test 148 pygeodesy.F_MIN_ str (pygeodesy.interns): True\n    test 149 pygeodesy.F_MIN__ str (pygeodesy.interns): True\n    test 150 pygeodesy.F_RAD str: True\n    test 151 pygeodesy.F_RAD_ str (pygeodesy.interns): True\n    test 152 pygeodesy.F_RAD__ str (pygeodesy.interns): True\n    test 153 pygeodesy.F_SEC str: True\n    test 154 pygeodesy.F_SEC_ str (pygeodesy.interns): True\n    test 155 pygeodesy.F_SEC__ str (pygeodesy.interns): True\n    test 156 pygeodesy.F__E str: True\n    test 157 pygeodesy.F__E_ str (pygeodesy.interns): True\n    test 158 pygeodesy.F__E__ str (pygeodesy.interns): True\n    test 159 pygeodesy.F__F str: True\n    test 160 pygeodesy.F__F_ str (pygeodesy.interns): True\n    test 161 pygeodesy.F__F__ str (pygeodesy.interns): True\n    test 162 pygeodesy.F__G str: True\n    test 163 pygeodesy.F__G_ str (pygeodesy.interns): True\n    test 164 pygeodesy.F__G__ str (pygeodesy.interns): True\n    test 165 pygeodesy.Fcbrt() class (pygeodesy.fmath): True\n    test 166 pygeodesy.Fcook() class (pygeodesy.fstats): True\n    test 167 pygeodesy.Fdot() class (pygeodesy.fmath): True\n    test 168 pygeodesy.Fdot_() class (pygeodesy.fmath): True\n    test 169 pygeodesy.Feet() class (pygeodesy.units): True\n    test 170 pygeodesy.Fhorner() class (pygeodesy.fmath): True\n    test 171 pygeodesy.Fhypot() class (pygeodesy.fmath): True\n    test 172 pygeodesy.Flinear() class (pygeodesy.fstats): True\n    test 173 pygeodesy.Float() class (pygeodesy.unitsBase): True\n    test 174 pygeodesy.Float_() class (pygeodesy.units): True\n    test 175 pygeodesy.Footprint5Tuple() class (pygeodesy.ltpTuples): True\n    test 176 pygeodesy.Forward4Tuple() class (pygeodesy.namedTuples): True\n    test 177 pygeodesy.Fpolynomial() class (pygeodesy.fmath): True\n    test 178 pygeodesy.Fpowers() class (pygeodesy.fmath): True\n    test 179 pygeodesy.Frechet() class (pygeodesy.frechet): True\n    test 180 pygeodesy.Frechet6Tuple() class (pygeodesy.frechet): True\n    test 181 pygeodesy.FrechetCosineLaw() class (pygeodesy.frechet): True\n    test 182 pygeodesy.FrechetDegrees() class (pygeodesy.frechet): True\n    test 183 pygeodesy.FrechetDistanceTo() class (pygeodesy.frechet): True\n    test 184 pygeodesy.FrechetEquirectangular() class (pygeodesy.frechet): True\n    test 185 pygeodesy.FrechetError() class (pygeodesy.frechet): True\n    test 186 pygeodesy.FrechetEuclidean() class (pygeodesy.frechet): True\n    test 187 pygeodesy.FrechetExact() class (pygeodesy.frechet): True\n    test 188 pygeodesy.FrechetFlatLocal() class (pygeodesy.frechet): True\n    test 189 pygeodesy.FrechetFlatPolar() class (pygeodesy.frechet): True\n    test 190 pygeodesy.FrechetHaversine() class (pygeodesy.frechet): True\n    test 191 pygeodesy.FrechetHubeny() class (pygeodesy.frechet): True\n    test 192 pygeodesy.FrechetKarney() class (pygeodesy.frechet): True\n    test 193 pygeodesy.FrechetRadians() class (pygeodesy.frechet): True\n    test 194 pygeodesy.FrechetThomas() class (pygeodesy.frechet): True\n    test 195 pygeodesy.FrechetVincentys() class (pygeodesy.frechet): True\n    test 196 pygeodesy.Froot() class (pygeodesy.fmath): True\n    test 197 pygeodesy.Frustum() class (pygeodesy.ltp): True\n    test 198 pygeodesy.Fsqrt() class (pygeodesy.fmath): True\n    test 199 pygeodesy.Fsum() class (pygeodesy.fsums): True\n    test 200 pygeodesy.Fsum2Tuple() class (pygeodesy.fsums): True\n    test 201 pygeodesy.Fwelford() class (pygeodesy.fstats): True\n    test 202 pygeodesy.GARSError() class (pygeodesy.gars): True\n    test 203 pygeodesy.GDict() class (pygeodesy.karney): True\n    test 204 pygeodesy.Garef() class (pygeodesy.gars): True\n    test 205 pygeodesy.Geod3Solve8Tuple() class (pygeodesy.geod3solve): True\n    test 206 pygeodesy.GeodSolve12Tuple() class (pygeodesy.geodsolve): True\n    test 207 pygeodesy.Geodesic() class (pygeodesy.geodesicw): True\n    test 208 pygeodesy.Geodesic3Error() class (pygeodesy.geod3solve): True\n    test 209 pygeodesy.Geodesic3Solve() class (pygeodesy.geod3solve): True\n    test 210 pygeodesy.GeodesicAreaExact() class (pygeodesy.geodesicx.gxarea): True\n    test 211 pygeodesy.GeodesicError() class (pygeodesy.errors): True\n    test 212 pygeodesy.GeodesicExact() class (pygeodesy.geodesicx.gx): True\n    test 213 pygeodesy.GeodesicLine() class (pygeodesy.geodesicw): True\n    test 214 pygeodesy.GeodesicLine3Solve() class (pygeodesy.geod3solve): True\n    test 215 pygeodesy.GeodesicLineExact() class (pygeodesy.geodesicx.gx): True\n    test 216 pygeodesy.GeodesicLineSolve() class (pygeodesy.geodsolve): True\n    test 217 pygeodesy.GeodesicSolve() class (pygeodesy.geodsolve): True\n    test 218 pygeodesy.Geodesic_WGS84() function (pygeodesy.geodesicw): True\n    test 219 pygeodesy.Geohash() class (pygeodesy.geohash): True\n    test 220 pygeodesy.GeohashError() class (pygeodesy.geohash): True\n    test 221 pygeodesy.Geohashed() class (pygeodesy.geohash): True\n    test 222 pygeodesy.GeoidEGM96() class (pygeodesy.geoids): True\n    test 223 pygeodesy.GeoidError() class (pygeodesy.geoids): True\n    test 224 pygeodesy.GeoidG2012B() class (pygeodesy.geoids): True\n    test 225 pygeodesy.GeoidHeight2Tuple() class (pygeodesy.elevations): True\n    test 226 pygeodesy.GeoidHeight5Tuple() class (pygeodesy.geoids): True\n    test 227 pygeodesy.GeoidKarney() class (pygeodesy.geoids): True\n    test 228 pygeodesy.GeoidPGM() class (pygeodesy.geoids): True\n    test 229 pygeodesy.Georef() class (pygeodesy.wgrs): True\n    test 230 pygeodesy.Gnomonic() class (pygeodesy.azimuthal): True\n    test 231 pygeodesy.GnomonicExact() class (pygeodesy.azimuthal): True\n    test 232 pygeodesy.GnomonicGeodSolve() class (pygeodesy.azimuthal): True\n    test 233 pygeodesy.GnomonicKarney() class (pygeodesy.azimuthal): True\n    test 234 pygeodesy.Hausdorff() class (pygeodesy.hausdorff): True\n    test 235 pygeodesy.Hausdorff6Tuple() class (pygeodesy.hausdorff): True\n    test 236 pygeodesy.HausdorffCosineLaw() class (pygeodesy.hausdorff): True\n    test 237 pygeodesy.HausdorffDegrees() class (pygeodesy.hausdorff): True\n    test 238 pygeodesy.HausdorffDistanceTo() class (pygeodesy.hausdorff): True\n    test 239 pygeodesy.HausdorffEquirectangular() class (pygeodesy.hausdorff): True\n    test 240 pygeodesy.HausdorffError() class (pygeodesy.hausdorff): True\n    test 241 pygeodesy.HausdorffEuclidean() class (pygeodesy.hausdorff): True\n    test 242 pygeodesy.HausdorffExact() class (pygeodesy.hausdorff): True\n    test 243 pygeodesy.HausdorffFlatLocal() class (pygeodesy.hausdorff): True\n    test 244 pygeodesy.HausdorffFlatPolar() class (pygeodesy.hausdorff): True\n    test 245 pygeodesy.HausdorffHaversine() class (pygeodesy.hausdorff): True\n    test 246 pygeodesy.HausdorffHubeny() class (pygeodesy.hausdorff): True\n    test 247 pygeodesy.HausdorffKarney() class (pygeodesy.hausdorff): True\n    test 248 pygeodesy.HausdorffRadians() class (pygeodesy.hausdorff): True\n    test 249 pygeodesy.HausdorffThomas() class (pygeodesy.hausdorff): True\n    test 250 pygeodesy.HausdorffVincentys() class (pygeodesy.hausdorff): True\n    test 251 pygeodesy.Height() class (pygeodesy.units): True\n    test 252 pygeodesy.HeightCubic() class (pygeodesy.heights): True\n    test 253 pygeodesy.HeightError() class (pygeodesy.heights): True\n    test 254 pygeodesy.HeightIDWcosineLaw() class (pygeodesy.heights): True\n    test 255 pygeodesy.HeightIDWdistanceTo() class (pygeodesy.heights): True\n    test 256 pygeodesy.HeightIDWequirectangular() class (pygeodesy.heights): True\n    test 257 pygeodesy.HeightIDWeuclidean() class (pygeodesy.heights): True\n    test 258 pygeodesy.HeightIDWexact() class (pygeodesy.heights): True\n    test 259 pygeodesy.HeightIDWflatLocal() class (pygeodesy.heights): True\n    test 260 pygeodesy.HeightIDWflatPolar() class (pygeodesy.heights): True\n    test 261 pygeodesy.HeightIDWhaversine() class (pygeodesy.heights): True\n    test 262 pygeodesy.HeightIDWhubeny() class (pygeodesy.heights): True\n    test 263 pygeodesy.HeightIDWkarney() class (pygeodesy.heights): True\n    test 264 pygeodesy.HeightIDWthomas() class (pygeodesy.heights): True\n    test 265 pygeodesy.HeightIDWvincentys() class (pygeodesy.heights): True\n    test 266 pygeodesy.HeightLSQBiSpline() class (pygeodesy.heights): True\n    test 267 pygeodesy.HeightLinear() class (pygeodesy.heights): True\n    test 268 pygeodesy.HeightSmoothBiSpline() class (pygeodesy.heights): True\n    test 269 pygeodesy.HeightX() class (pygeodesy.units): True\n    test 270 pygeodesy.Height_() class (pygeodesy.units): True\n    test 271 pygeodesy.INF float (pygeodesy.unitsBase): True\n    test 272 pygeodesy.INT0 int (pygeodesy.unitsBase): True\n    test 273 pygeodesy.Int() class (pygeodesy.unitsBase): True\n    test 274 pygeodesy.Int_() class (pygeodesy.units): True\n    test 275 pygeodesy.Intersect7Tuple() class (pygeodesy.geodesici): True\n    test 276 pygeodesy.Intersection3Tuple() class (pygeodesy.namedTuples): True\n    test 277 pygeodesy.IntersectionError() class (pygeodesy.errors): True\n    test 278 pygeodesy.Intersectool() class (pygeodesy.geodesici): True\n    test 279 pygeodesy.Intersectool5Tuple() class (pygeodesy.geodesici): True\n    test 280 pygeodesy.Intersector() class (pygeodesy.geodesici): True\n    test 281 pygeodesy.Intersector5Tuple() class (pygeodesy.geodesici): True\n    test 282 pygeodesy.Inverse10Tuple() class (pygeodesy.karney): True\n    test 283 pygeodesy.KTMError() class (pygeodesy.ktm): True\n    test 284 pygeodesy.KTransverseMercator() class (pygeodesy.ktm): True\n    test 285 pygeodesy.LCCError() class (pygeodesy.lcc): True\n    test 286 pygeodesy.LLK class pygeodesy.triaxials.bases.LLK (pygeodesy.triaxials.bases): True\n    test 287 pygeodesy.Lam() class (pygeodesy.units): True\n    test 288 pygeodesy.LambertEqualArea() class (pygeodesy.azimuthal): True\n    test 289 pygeodesy.Lambertian() class (pygeodesy.angles): True\n    test 290 pygeodesy.Lamd() class (pygeodesy.units): True\n    test 291 pygeodesy.Lat() class (pygeodesy.units): True\n    test 292 pygeodesy.LatLon2PsxyIter() class (pygeodesy.iters): True\n    test 293 pygeodesy.LatLon2Tuple() class (pygeodesy.namedTuples): True\n    test 294 pygeodesy.LatLon2psxy() class (pygeodesy.points): True\n    test 295 pygeodesy.LatLon3Tuple() class (pygeodesy.namedTuples): True\n    test 296 pygeodesy.LatLon4Tuple() class (pygeodesy.namedTuples): True\n    test 297 pygeodesy.LatLonAziRk4Tuple() class (pygeodesy.css): True\n    test 298 pygeodesy.LatLonDatum3Tuple() class (pygeodesy.namedTuples): True\n    test 299 pygeodesy.LatLonDatum5Tuple() class (pygeodesy.namedTuples): True\n    test 300 pygeodesy.LatLonFHP() class (pygeodesy.booleans): True\n    test 301 pygeodesy.LatLonGH() class (pygeodesy.booleans): True\n    test 302 pygeodesy.LatLonPrec3Tuple() class (pygeodesy.namedTuples): True\n    test 303 pygeodesy.LatLonPrec5Tuple() class (pygeodesy.namedTuples): True\n    test 304 pygeodesy.LatLon_() class (pygeodesy.points): True\n    test 305 pygeodesy.Lat_() class (pygeodesy.units): True\n    test 306 pygeodesy.LazyAttributeError() class (pygeodesy.lazily): True\n    test 307 pygeodesy.LazyImportError() class (pygeodesy.lazily): True\n    test 308 pygeodesy.Lcc() class (pygeodesy.lcc): True\n    test 309 pygeodesy.LenError() class (pygeodesy.errors): True\n    test 310 pygeodesy.LimitError() class (pygeodesy.errors): True\n    test 311 pygeodesy.Local9Tuple() class (pygeodesy.ltpTuples): True\n    test 312 pygeodesy.LocalCartesian() class (pygeodesy.ltp): True\n    test 313 pygeodesy.LocalError() class (pygeodesy.ltp): True\n    test 314 pygeodesy.Lon() class (pygeodesy.units): True\n    test 315 pygeodesy.Lon_() class (pygeodesy.units): True\n    test 316 pygeodesy.Los() class (pygeodesy.ltpTuples): True\n    test 317 pygeodesy.Ltp() class (pygeodesy.ltp): True\n    test 318 pygeodesy.MANT_DIG int (pygeodesy.unitsBase): True\n    test 319 pygeodesy.MAX float (pygeodesy.unitsBase): True\n    test 320 pygeodesy.MAX_EXP int (pygeodesy.unitsBase): True\n    test 321 pygeodesy.MGRSError() class (pygeodesy.errors): True\n    test 322 pygeodesy.MIN float (pygeodesy.unitsBase): True\n    test 323 pygeodesy.MIN_EXP int (pygeodesy.unitsBase): True\n    test 324 pygeodesy.Meeus2Tuple() class (pygeodesy.vector2d): True\n    test 325 pygeodesy.Meter() class (pygeodesy.units): True\n    test 326 pygeodesy.Meter2() class (pygeodesy.units): True\n    test 327 pygeodesy.Meter3() class (pygeodesy.units): True\n    test 328 pygeodesy.Meter_() class (pygeodesy.units): True\n    test 329 pygeodesy.Mgrs() class (pygeodesy.mgrs): True\n    test 330 pygeodesy.Mgrs4Tuple() class (pygeodesy.mgrs): True\n    test 331 pygeodesy.Mgrs6Tuple() class (pygeodesy.mgrs): True\n    test 332 pygeodesy.Middle5Tuple() class (pygeodesy.geodesici): True\n    test 333 pygeodesy.NAN float (pygeodesy.unitsBase): True\n    test 334 pygeodesy.NEG0 float (pygeodesy.unitsBase): True\n    test 335 pygeodesy.NINF float (pygeodesy.unitsBase): True\n    test 336 pygeodesy.NM2m() function (pygeodesy.utily): True\n    test 337 pygeodesy.NN str (pygeodesy.interns): True\n    test 338 pygeodesy.NearestOn2Tuple() class (pygeodesy.namedTuples): True\n    test 339 pygeodesy.NearestOn3Tuple() class (pygeodesy.namedTuples): True\n    test 340 pygeodesy.NearestOn6Tuple() class (pygeodesy.namedTuples): True\n    test 341 pygeodesy.NearestOn8Tuple() class (pygeodesy.namedTuples): True\n    test 342 pygeodesy.Ned() class (pygeodesy.ltpTuples): True\n    test 343 pygeodesy.Ned4Tuple() class (pygeodesy.ltpTuples): True\n    test 344 pygeodesy.Neighbors8Dict() class (pygeodesy.geohash): True\n    test 345 pygeodesy.NorthPole class pygeodesy.nvectorBase._N_Vector (pygeodesy.nvectorBase): True\n    test 346 pygeodesy.Northing() class (pygeodesy.units): True\n    test 347 pygeodesy.NumPyError() class (pygeodesy.errors): True\n    test 348 pygeodesy.Number_() class (pygeodesy.units): True\n    test 349 pygeodesy.Numpy2LatLon() class (pygeodesy.points): True\n    test 350 pygeodesy.OSGRError() class (pygeodesy.osgr): True\n    test 351 pygeodesy.OVERFLOW float (pygeodesy.unitsBase): True\n    test 352 pygeodesy.Orthographic() class (pygeodesy.azimuthal): True\n    test 353 pygeodesy.Osgr() class (pygeodesy.osgr): True\n    test 354 pygeodesy.PGMError() class (pygeodesy.geoids): True\n    test 355 pygeodesy.PI float (pygeodesy.unitsBase): True\n    test 356 pygeodesy.PI2 float (pygeodesy.unitsBase): True\n    test 357 pygeodesy.PI3 float (pygeodesy.unitsBase): True\n    test 358 pygeodesy.PI3_2 float (pygeodesy.unitsBase): True\n    test 359 pygeodesy.PI4 float (pygeodesy.unitsBase): True\n    test 360 pygeodesy.PI_2 float (pygeodesy.unitsBase): True\n    test 361 pygeodesy.PI_3 float (pygeodesy.unitsBase): True\n    test 362 pygeodesy.PI_4 float (pygeodesy.unitsBase): True\n    test 363 pygeodesy.PI_6 float (pygeodesy.unitsBase): True\n    test 364 pygeodesy.ParseError() class (pygeodesy.errors): True\n    test 365 pygeodesy.Phi() class (pygeodesy.units): True\n    test 366 pygeodesy.PhiLam2Tuple() class (pygeodesy.namedTuples): True\n    test 367 pygeodesy.PhiLam3Tuple() class (pygeodesy.namedTuples): True\n    test 368 pygeodesy.PhiLam4Tuple() class (pygeodesy.namedTuples): True\n    test 369 pygeodesy.PhiLamZet5Tuple() class (pygeodesy.triaxials.triaxial3): True\n    test 370 pygeodesy.Phid() class (pygeodesy.units): True\n    test 371 pygeodesy.Point3Tuple() class (pygeodesy.namedTuples): True\n    test 372 pygeodesy.Points2Tuple() class (pygeodesy.namedTuples): True\n    test 373 pygeodesy.PointsError() class (pygeodesy.errors): True\n    test 374 pygeodesy.PointsIter() class (pygeodesy.iters): True\n    test 375 pygeodesy.PolygonArea() class (pygeodesy.geodesicx.gxarea): True\n    test 376 pygeodesy.Precision_() class (pygeodesy.units): True\n    test 377 pygeodesy.Property() class (pygeodesy.props): True\n    test 378 pygeodesy.Property_RO() class (pygeodesy.props): True\n    test 379 pygeodesy.R_FM float (pygeodesy.unitsBase): True\n    test 380 pygeodesy.R_GM float (pygeodesy.unitsBase): True\n    test 381 pygeodesy.R_KM float (pygeodesy.unitsBase): True\n    test 382 pygeodesy.R_M float (pygeodesy.unitsBase): True\n    test 383 pygeodesy.R_MA float (pygeodesy.unitsBase): True\n    test 384 pygeodesy.R_MB float (pygeodesy.unitsBase): True\n    test 385 pygeodesy.R_NM float (pygeodesy.unitsBase): True\n    test 386 pygeodesy.R_QM float (pygeodesy.unitsBase): True\n    test 387 pygeodesy.R_SM float (pygeodesy.unitsBase): True\n    test 388 pygeodesy.R_VM float (pygeodesy.unitsBase): True\n    test 389 pygeodesy.Rad() function (pygeodesy.angles): True\n    test 390 pygeodesy.Radians() class (pygeodesy.units): True\n    test 391 pygeodesy.Radians2() class (pygeodesy.units): True\n    test 392 pygeodesy.Radians_() class (pygeodesy.units): True\n    test 393 pygeodesy.Radical2Tuple() class (pygeodesy.formy): True\n    test 394 pygeodesy.Radii11Tuple() class (pygeodesy.vector2d): True\n    test 395 pygeodesy.Radius() class (pygeodesy.unitsBase): True\n    test 396 pygeodesy.RadiusThetaPhi3Tuple() class (pygeodesy.cartesianBase): True\n    test 397 pygeodesy.Radius_() class (pygeodesy.units): True\n    test 398 pygeodesy.RangeError() class (pygeodesy.errors): True\n    test 399 pygeodesy.RefFrame() class (pygeodesy.trf): True\n    test 400 pygeodesy.RefFrames class pygeodesy.trf.RefFrames (pygeodesy.trf): True\n    test 401 pygeodesy.ResectionError() class (pygeodesy.resections): True\n    test 402 pygeodesy.ResidualError() class (pygeodesy.fsums): True\n    test 403 pygeodesy.Resolutions2Tuple() class (pygeodesy.geohash): True\n    test 404 pygeodesy.Reverse4Tuple() class (pygeodesy.namedTuples): True\n    test 405 pygeodesy.Rhumb() class (pygeodesy.rhumb.ekx): True\n    test 406 pygeodesy.Rhumb8Tuple() class (pygeodesy.karney): True\n    test 407 pygeodesy.RhumbAux() class (pygeodesy.rhumb.aux_): True\n    test 408 pygeodesy.RhumbError() class (pygeodesy.errors): True\n    test 409 pygeodesy.RhumbLine() class (pygeodesy.rhumb.ekx): True\n    test 410 pygeodesy.RhumbLineAux() class (pygeodesy.rhumb.aux_): True\n    test 411 pygeodesy.RhumbLineSolve() class (pygeodesy.rhumb.solve): True\n    test 412 pygeodesy.RhumbSolve() class (pygeodesy.rhumb.solve): True\n    test 413 pygeodesy.RhumbSolve7Tuple() class (pygeodesy.rhumb.solve): True\n    test 414 pygeodesy.SM2m() function (pygeodesy.utily): True\n    test 415 pygeodesy.S_DEG str: True\n    test 416 pygeodesy.S_DMS int: True\n    test 417 pygeodesy.S_MIN str: True\n    test 418 pygeodesy.S_RAD str (pygeodesy.interns): True\n    test 419 pygeodesy.S_SEC str: True\n    test 420 pygeodesy.S_SEP str (pygeodesy.interns): True\n    test 421 pygeodesy.Scalar() class (pygeodesy.units): True\n    test 422 pygeodesy.Scalar_() class (pygeodesy.units): True\n    test 423 pygeodesy.SciPyError() class (pygeodesy.errors): True\n    test 424 pygeodesy.SciPyWarning() class (pygeodesy.errors): True\n    test 425 pygeodesy.Shape2Tuple() class (pygeodesy.points): True\n    test 426 pygeodesy.SinCos2() function (pygeodesy.utily): True\n    test 427 pygeodesy.Sizes3Tuple() class (pygeodesy.geohash): True\n    test 428 pygeodesy.Soddy4Tuple() class (pygeodesy.vector2d): True\n    test 429 pygeodesy.SouthPole class pygeodesy.nvectorBase._N_Vector (pygeodesy.nvectorBase): True\n    test 430 pygeodesy.Stereographic() class (pygeodesy.azimuthal): True\n    test 431 pygeodesy.Str() class (pygeodesy.unitsBase): True\n    test 432 pygeodesy.Str_() class (pygeodesy.interns): True\n    test 433 pygeodesy.Survey3Tuple() class (pygeodesy.resections): True\n    test 434 pygeodesy.TRFError() class (pygeodesy.errors): True\n    test 435 pygeodesy.TRFXform() class (pygeodesy.trf): True\n    test 436 pygeodesy.TRFXform7Tuple() class (pygeodesy.trf): True\n    test 437 pygeodesy.Tienstra7Tuple() class (pygeodesy.resections): True\n    test 438 pygeodesy.Transform() class (pygeodesy.datums): True\n    test 439 pygeodesy.TransformXform() class (pygeodesy.trf): True\n    test 440 pygeodesy.Transforms class pygeodesy.datums.Transforms (pygeodesy.datums): True\n    test 441 pygeodesy.TriAngle5Tuple() class (pygeodesy.resections): True\n    test 442 pygeodesy.TriSide2Tuple() class (pygeodesy.resections): True\n    test 443 pygeodesy.TriSide4Tuple() class (pygeodesy.resections): True\n    test 444 pygeodesy.Triangle7Tuple() class (pygeodesy.namedTuples): True\n    test 445 pygeodesy.Triangle8Tuple() class (pygeodesy.namedTuples): True\n    test 446 pygeodesy.TriangleError() class (pygeodesy.errors): True\n    test 447 pygeodesy.Triaxial() class (pygeodesy.triaxials.triaxial5): True\n    test 448 pygeodesy.Triaxial3() class (pygeodesy.triaxials.triaxial3): True\n    test 449 pygeodesy.Triaxial3B() class (pygeodesy.triaxials.triaxial3): True\n    test 450 pygeodesy.Triaxial3s class pygeodesy.triaxials.triaxial3.Triaxial3s (pygeodesy.triaxials.triaxial3): True\n    test 451 pygeodesy.TriaxialError() class (pygeodesy.triaxials.bases): True\n    test 452 pygeodesy.Triaxial_() class (pygeodesy.triaxials.triaxial5): True\n    test 453 pygeodesy.Triaxials class pygeodesy.triaxials.triaxial5.Triaxials (pygeodesy.triaxials.triaxial5): True\n    test 454 pygeodesy.Triaxum5Tuple() class (pygeodesy.vector2d): True\n    test 455 pygeodesy.Trilaterate5Tuple() class (pygeodesy.namedTuples): True\n    test 456 pygeodesy.Tuple2LatLon() class (pygeodesy.points): True\n    test 457 pygeodesy.UPSError() class (pygeodesy.ups): True\n    test 458 pygeodesy.UTMError() class (pygeodesy.utm): True\n    test 459 pygeodesy.UTMUPSError() class (pygeodesy.utmups): True\n    test 460 pygeodesy.UnitError() class (pygeodesy.errors): True\n    test 461 pygeodesy.Ups() class (pygeodesy.ups): True\n    test 462 pygeodesy.Utm() class (pygeodesy.utm): True\n    test 463 pygeodesy.UtmUps() function (pygeodesy.utmups): True\n    test 464 pygeodesy.UtmUps2Tuple() class (pygeodesy.namedTuples): True\n    test 465 pygeodesy.UtmUps5Tuple() class (pygeodesy.namedTuples): True\n    test 466 pygeodesy.UtmUps8Tuple() class (pygeodesy.namedTuples): True\n    test 467 pygeodesy.UtmUpsLatLon5Tuple() class (pygeodesy.namedTuples): True\n    test 468 pygeodesy.Uvw() class (pygeodesy.ltpTuples): True\n    test 469 pygeodesy.Uvw3Tuple() class (pygeodesy.ltpTuples): True\n    test 470 pygeodesy.Vector2Tuple() class (pygeodesy.namedTuples): True\n    test 471 pygeodesy.Vector3Tuple() class (pygeodesy.namedTuples): True\n    test 472 pygeodesy.Vector3d() class (pygeodesy.vector3d): True\n    test 473 pygeodesy.Vector4Tuple() class (pygeodesy.namedTuples): True\n    test 474 pygeodesy.VectorError() class (pygeodesy.errors): True\n    test 475 pygeodesy.VincentyError() class (pygeodesy.ellipsoidalVincenty): True\n    test 476 pygeodesy.WGRSError() class (pygeodesy.wgrs): True\n    test 477 pygeodesy.WebMercatorError() class (pygeodesy.webmercator): True\n    test 478 pygeodesy.Wm() class (pygeodesy.webmercator): True\n    test 479 pygeodesy.XDict() class (pygeodesy.geodesici): True\n    test 480 pygeodesy.Xyz4Tuple() class (pygeodesy.ltpTuples): True\n    test 481 pygeodesy.XyzLocal() class (pygeodesy.ltpTuples): True\n    test 482 pygeodesy.Zone() class (pygeodesy.units): True\n    test 483 pygeodesy.a_b2e() function (pygeodesy.ellipsoids): True\n    test 484 pygeodesy.a_b2e2() function (pygeodesy.ellipsoids): True\n    test 485 pygeodesy.a_b2e22() function (pygeodesy.ellipsoids): True\n    test 486 pygeodesy.a_b2e32() function (pygeodesy.ellipsoids): True\n    test 487 pygeodesy.a_b2f() function (pygeodesy.ellipsoids): True\n    test 488 pygeodesy.a_b2f2() function (pygeodesy.ellipsoids): True\n    test 489 pygeodesy.a_b2f_() function (pygeodesy.ellipsoids): True\n    test 490 pygeodesy.a_b2n() function (pygeodesy.ellipsoids): True\n    test 491 pygeodesy.a_f2Tuple() class (pygeodesy.ellipsoids): True\n    test 492 pygeodesy.a_f2b() function (pygeodesy.ellipsoids): True\n    test 493 pygeodesy.a_f_2b() function (pygeodesy.ellipsoids): True\n    test 494 pygeodesy.acos1() function (pygeodesy.utily): True\n    test 495 pygeodesy.acre2ha() function (pygeodesy.utily): True\n    test 496 pygeodesy.acre2m2() function (pygeodesy.utily): True\n    test 497 pygeodesy.agdf() function (pygeodesy.utily): True\n    test 498 pygeodesy.albers module: True\n    test 499 pygeodesy.angle2chord() function (pygeodesy.formy): True\n    test 500 pygeodesy.angles module: True\n    test 501 pygeodesy.anstr() function (pygeodesy.streprs): True\n    test 502 pygeodesy.antipode() function (pygeodesy.formy): True\n    test 503 pygeodesy.antipode_() function (pygeodesy.formy): True\n    test 504 pygeodesy.areaOf() function (pygeodesy.points): True\n    test 505 pygeodesy.asin1() function (pygeodesy.utily): True\n    test 506 pygeodesy.atan1() function (pygeodesy.utily): True\n    test 507 pygeodesy.atan1d() function (pygeodesy.utily): True\n    test 508 pygeodesy.atan2 type builtin_function_or_method (math): True\n    test 509 pygeodesy.atan2b() function (pygeodesy.utily): True\n    test 510 pygeodesy.atan2d() function (pygeodesy.utily): True\n    test 511 pygeodesy.atan2p() function (pygeodesy.utily): True\n    test 512 pygeodesy.attrs() function (pygeodesy.streprs): True\n    test 513 pygeodesy.auxilats module: True\n    test 514 pygeodesy.azimuthal module: True\n    test 515 pygeodesy.b_f2a() function (pygeodesy.ellipsoids): True\n    test 516 pygeodesy.b_f_2a() function (pygeodesy.ellipsoids): True\n    test 517 pygeodesy.basics module: True\n    test 518 pygeodesy.bearing() function (pygeodesy.formy): True\n    test 519 pygeodesy.bearingDMS() function (pygeodesy.dms): True\n    test 520 pygeodesy.bearing_() function (pygeodesy.formy): True\n    test 521 pygeodesy.booleans module: True\n    test 522 pygeodesy.boundsOf() function (pygeodesy.points): True\n    test 523 pygeodesy.bqrt() function (pygeodesy.fmath): True\n    test 524 pygeodesy.callername() function (pygeodesy.named): True\n    test 525 pygeodesy.cartesianBase module: True\n    test 526 pygeodesy.cassini() function (pygeodesy.resections): True\n    test 527 pygeodesy.cbrt() function (pygeodesy.fmath): True\n    test 528 pygeodesy.cbrt2() function (pygeodesy.fmath): True\n    test 529 pygeodesy.centroidOf() function (pygeodesy.points): True\n    test 530 pygeodesy.chain2m() function (pygeodesy.utily): True\n    test 531 pygeodesy.chord2angle() function (pygeodesy.formy): True\n    test 532 pygeodesy.circin6() function (pygeodesy.vector2d): True\n    test 533 pygeodesy.circle4() function (pygeodesy.utily): True\n    test 534 pygeodesy.circum3() function (pygeodesy.vector2d): True\n    test 535 pygeodesy.circum4() function (pygeodesy.vector2d): True\n    test 536 pygeodesy.circum4_() function (pygeodesy.vector2d): True\n    test 537 pygeodesy.classname() function (pygeodesy.named): True\n    test 538 pygeodesy.classnaming() function (pygeodesy.named): True\n    test 539 pygeodesy.clipCS4() function (pygeodesy.clipy): True\n    test 540 pygeodesy.clipDegrees() function (pygeodesy.dms): True\n    test 541 pygeodesy.clipFHP4() function (pygeodesy.clipy): True\n    test 542 pygeodesy.clipGH4() function (pygeodesy.clipy): True\n    test 543 pygeodesy.clipLB6() function (pygeodesy.clipy): True\n    test 544 pygeodesy.clipRadians() function (pygeodesy.dms): True\n    test 545 pygeodesy.clipSH() function (pygeodesy.clipy): True\n    test 546 pygeodesy.clipSH3() function (pygeodesy.clipy): True\n    test 547 pygeodesy.clips() function (pygeodesy.basics): True\n    test 548 pygeodesy.clipy module: True\n    test 549 pygeodesy.collins5() function (pygeodesy.resections): True\n    test 550 pygeodesy.compassAngle() function (pygeodesy.formy): True\n    test 551 pygeodesy.compassDMS() function (pygeodesy.dms): True\n    test 552 pygeodesy.compassPoint() function (pygeodesy.dms): True\n    test 553 pygeodesy.constants module: True\n    test 554 pygeodesy.copysign0() function (pygeodesy.basics): True\n    test 555 pygeodesy.copytype() function (pygeodesy.basics): True\n    test 556 pygeodesy.cosineLaw() function (pygeodesy.formy): True\n    test 557 pygeodesy.cosineLaw_() function (pygeodesy.formy): True\n    test 558 pygeodesy.cot() function (pygeodesy.utily): True\n    test 559 pygeodesy.cot_() function (pygeodesy.utily): True\n    test 560 pygeodesy.cotd() function (pygeodesy.utily): True\n    test 561 pygeodesy.cotd_() function (pygeodesy.utily): True\n    test 562 pygeodesy.crosserrors() function (pygeodesy.errors): True\n    test 563 pygeodesy.css module: True\n    test 564 pygeodesy.date2epoch() function (pygeodesy.trf): True\n    test 565 pygeodesy.datums module: True\n    test 566 pygeodesy.degDMS() function (pygeodesy.dms): True\n    test 567 pygeodesy.degrees type builtin_function_or_method (math): True\n    test 568 pygeodesy.degrees180() function (pygeodesy.utily): True\n    test 569 pygeodesy.degrees2grades() function (pygeodesy.utily): True\n    test 570 pygeodesy.degrees2m() function (pygeodesy.utily): True\n    test 571 pygeodesy.degrees360() function (pygeodesy.utily): True\n    test 572 pygeodesy.degrees90() function (pygeodesy.utily): True\n    test 573 pygeodesy.deprecated_Property_RO() function (pygeodesy.props): True\n    test 574 pygeodesy.deprecated_class() function (pygeodesy.props): True\n    test 575 pygeodesy.deprecated_function() function (pygeodesy.props): True\n    test 576 pygeodesy.deprecated_method() function (pygeodesy.props): True\n    test 577 pygeodesy.deprecated_property_RO() function (pygeodesy.props): True\n    test 578 pygeodesy.dms module: True\n    test 579 pygeodesy.e22f() function (pygeodesy.ellipsoids): True\n    test 580 pygeodesy.e2f() function (pygeodesy.ellipsoids): True\n    test 581 pygeodesy.ecef module: True\n    test 582 pygeodesy.ecefLocals module: True\n    test 583 pygeodesy.egmGeoidHeights() function (pygeodesy.geoids): True\n    test 584 pygeodesy.elevation2() function (pygeodesy.elevations): True\n    test 585 pygeodesy.elevations module: True\n    test 586 pygeodesy.ellipses module: True\n    test 587 pygeodesy.ellipsoidalBase module: True\n    test 588 pygeodesy.ellipsoidalBaseDI module: True\n    test 589 pygeodesy.ellipsoidalExact module: True\n    test 590 pygeodesy.ellipsoidalGeodSolve module: True\n    test 591 pygeodesy.ellipsoidalKarney module: True\n    test 592 pygeodesy.ellipsoidalNvector module: True\n    test 593 pygeodesy.ellipsoidalVincenty module: True\n    test 594 pygeodesy.ellipsoids module: True\n    test 595 pygeodesy.elliptic module: True\n    test 596 pygeodesy.enstr2() function (pygeodesy.streprs): True\n    test 597 pygeodesy.epoch2date() function (pygeodesy.trf): True\n    test 598 pygeodesy.epsg module: True\n    test 599 pygeodesy.equidistant() function (pygeodesy.azimuthal): True\n    test 600 pygeodesy.equirectangular() function (pygeodesy.formy): True\n    test 601 pygeodesy.equirectangular4() function (pygeodesy.formy): True\n    test 602 pygeodesy.errors module: True\n    test 603 pygeodesy.etm module: True\n    test 604 pygeodesy.euclid() function (pygeodesy.fmath): True\n    test 605 pygeodesy.euclid_() function (pygeodesy.fmath): True\n    test 606 pygeodesy.euclidean() function (pygeodesy.formy): True\n    test 607 pygeodesy.euclidean_() function (pygeodesy.formy): True\n    test 608 pygeodesy.exception_chaining() function (pygeodesy.errors): True\n    test 609 pygeodesy.excessAbc_() function (pygeodesy.formy): True\n    test 610 pygeodesy.excessCagnoli_() function (pygeodesy.formy): True\n    test 611 pygeodesy.excessGirard_() function (pygeodesy.formy): True\n    test 612 pygeodesy.excessKarney() function (pygeodesy.formy): True\n    test 613 pygeodesy.excessKarney_() function (pygeodesy.formy): True\n    test 614 pygeodesy.excessLHuilier_() function (pygeodesy.formy): True\n    test 615 pygeodesy.excessQuad() function (pygeodesy.formy): True\n    test 616 pygeodesy.excessQuad_() function (pygeodesy.formy): True\n    test 617 pygeodesy.f2e2() function (pygeodesy.ellipsoids): True\n    test 618 pygeodesy.f2e22() function (pygeodesy.ellipsoids): True\n    test 619 pygeodesy.f2e32() function (pygeodesy.ellipsoids): True\n    test 620 pygeodesy.f2f2() function (pygeodesy.ellipsoids): True\n    test 621 pygeodesy.f2f_() function (pygeodesy.ellipsoids): True\n    test 622 pygeodesy.f2mul_() function (pygeodesy.fmath): True\n    test 623 pygeodesy.f2n() function (pygeodesy.ellipsoids): True\n    test 624 pygeodesy.f2product() function (pygeodesy.fsums): True\n    test 625 pygeodesy.f_2f() function (pygeodesy.ellipsoids): True\n    test 626 pygeodesy.facos1() function (pygeodesy.fmath): True\n    test 627 pygeodesy.fasin1() function (pygeodesy.fmath): True\n    test 628 pygeodesy.fatan() function (pygeodesy.fmath): True\n    test 629 pygeodesy.fatan1() function (pygeodesy.fmath): True\n    test 630 pygeodesy.fatan2() function (pygeodesy.fmath): True\n    test 631 pygeodesy.fathom2m() function (pygeodesy.utily): True\n    test 632 pygeodesy.favg() function (pygeodesy.fmath): True\n    test 633 pygeodesy.fdot() function (pygeodesy.fmath): True\n    test 634 pygeodesy.fdot3() function (pygeodesy.fmath): True\n    test 635 pygeodesy.fdot_() function (pygeodesy.fmath): True\n    test 636 pygeodesy.fhorner() function (pygeodesy.fmath): True\n    test 637 pygeodesy.fidw() function (pygeodesy.fmath): True\n    test 638 pygeodesy.flatLocal() function (pygeodesy.formy): True\n    test 639 pygeodesy.flatLocal_() function (pygeodesy.formy): True\n    test 640 pygeodesy.flatPolar() function (pygeodesy.formy): True\n    test 641 pygeodesy.flatPolar_() function (pygeodesy.formy): True\n    test 642 pygeodesy.float0_() function (pygeodesy.constants): True\n    test 643 pygeodesy.float_() function (pygeodesy.constants): True\n    test 644 pygeodesy.floats_() function (pygeodesy.constants): True\n    test 645 pygeodesy.fma() function (pygeodesy.fmath): True\n    test 646 pygeodesy.fmath module: True\n    test 647 pygeodesy.fmean() function (pygeodesy.fmath): True\n    test 648 pygeodesy.fmean_() function (pygeodesy.fmath): True\n    test 649 pygeodesy.formy module: True\n    test 650 pygeodesy.fpolynomial() function (pygeodesy.fmath): True\n    test 651 pygeodesy.fpowers() function (pygeodesy.fmath): True\n    test 652 pygeodesy.fprod() function (pygeodesy.fmath): True\n    test 653 pygeodesy.fractional() function (pygeodesy.points): True\n    test 654 pygeodesy.frandoms() function (pygeodesy.fmath): True\n    test 655 pygeodesy.frange() function (pygeodesy.fmath): True\n    test 656 pygeodesy.frechet module: True\n    test 657 pygeodesy.frechet_() function (pygeodesy.frechet): True\n    test 658 pygeodesy.freduce type builtin_function_or_method (_functools): True\n    test 659 pygeodesy.fremainder() function (pygeodesy.fmath): True\n    test 660 pygeodesy.fstats module: True\n    test 661 pygeodesy.fstr() function (pygeodesy.streprs): True\n    test 662 pygeodesy.fstrzs() function (pygeodesy.streprs): True\n    test 663 pygeodesy.fsum() function (pygeodesy.fsums): True\n    test 664 pygeodesy.fsum1() function (pygeodesy.fsums): True\n    test 665 pygeodesy.fsum1_() function (pygeodesy.fsums): True\n    test 666 pygeodesy.fsum1f_() function (pygeodesy.fsums): True\n    test 667 pygeodesy.fsum_() function (pygeodesy.fsums): True\n    test 668 pygeodesy.fsumf_() function (pygeodesy.fsums): True\n    test 669 pygeodesy.fsums module: True\n    test 670 pygeodesy.ft2m() function (pygeodesy.utily): True\n    test 671 pygeodesy.furlong2m() function (pygeodesy.utily): True\n    test 672 pygeodesy.gars module: True\n    test 673 pygeodesy.gdf() function (pygeodesy.utily): True\n    test 674 pygeodesy.geod3solve module: True\n    test 675 pygeodesy.geodesici module: True\n    test 676 pygeodesy.geodesicw module: True\n    test 677 pygeodesy.geodesicx module: True\n    test 678 pygeodesy.geodsolve module: True\n    test 679 pygeodesy.geohash module: True\n    test 680 pygeodesy.geoidHeight2() function (pygeodesy.elevations): True\n    test 681 pygeodesy.geoids module: True\n    test 682 pygeodesy.gnomonic() function (pygeodesy.azimuthal): True\n    test 683 pygeodesy.grades() function (pygeodesy.utily): True\n    test 684 pygeodesy.grades2degrees() function (pygeodesy.utily): True\n    test 685 pygeodesy.grades2radians() function (pygeodesy.utily): True\n    test 686 pygeodesy.grades400() function (pygeodesy.utily): True\n    test 687 pygeodesy.gx module: True\n    test 688 pygeodesy.gxarea module: True\n    test 689 pygeodesy.gxbases module: True\n    test 690 pygeodesy.gxline module: True\n    test 691 pygeodesy.ha2acre() function (pygeodesy.utily): True\n    test 692 pygeodesy.ha2m2() function (pygeodesy.utily): True\n    test 693 pygeodesy.halfs2() function (pygeodesy.basics): True\n    test 694 pygeodesy.hartzell() function (pygeodesy.formy): True\n    test 695 pygeodesy.hartzell4() function (pygeodesy.triaxials.triaxial5): True\n    test 696 pygeodesy.hausdorff module: True\n    test 697 pygeodesy.hausdorff_() function (pygeodesy.hausdorff): True\n    test 698 pygeodesy.hav() function (pygeodesy.utily): True\n    test 699 pygeodesy.haversine() function (pygeodesy.formy): True\n    test 700 pygeodesy.haversine_() function (pygeodesy.formy): True\n    test 701 pygeodesy.height4() function (pygeodesy.triaxials.triaxial5): True\n    test 702 pygeodesy.heightOf() function (pygeodesy.formy): True\n    test 703 pygeodesy.heightOrthometric() function (pygeodesy.formy): True\n    test 704 pygeodesy.heights module: True\n    test 705 pygeodesy.horizon() function (pygeodesy.formy): True\n    test 706 pygeodesy.hstr() function (pygeodesy.streprs): True\n    test 707 pygeodesy.hubeny() function (pygeodesy.formy): True\n    test 708 pygeodesy.hubeny_() function (pygeodesy.formy): True\n    test 709 pygeodesy.hypot type builtin_function_or_method (math): True\n    test 710 pygeodesy.hypot1() function (pygeodesy.fmath): True\n    test 711 pygeodesy.hypot2() function (pygeodesy.fmath): True\n    test 712 pygeodesy.hypot2_() function (pygeodesy.fmath): True\n    test 713 pygeodesy.hypot_() function (pygeodesy.fmath): True\n    test 714 pygeodesy.instr() function (pygeodesy.streprs): True\n    test 715 pygeodesy.int1s() function (pygeodesy.basics): True\n    test 716 pygeodesy.internals module: True\n    test 717 pygeodesy.interns module: True\n    test 718 pygeodesy.intersection2() function (pygeodesy.formy): True\n    test 719 pygeodesy.intersection3d3() function (pygeodesy.vector3d): True\n    test 720 pygeodesy.intersections2() function (pygeodesy.formy): True\n    test 721 pygeodesy.isAng() function (pygeodesy.angles): True\n    test 722 pygeodesy.isBoolean() function (pygeodesy.booleans): True\n    test 723 pygeodesy.isCartesian() function (pygeodesy.basics): True\n    test 724 pygeodesy.isDEPRECATED() function (pygeodesy.basics): True\n    test 725 pygeodesy.isError() function (pygeodesy.errors): True\n    test 726 pygeodesy.isLatLon() function (pygeodesy.basics): True\n    test 727 pygeodesy.isLazy type NoneType: True\n    test 728 pygeodesy.isNumpy2() function (pygeodesy.iters): True\n    test 729 pygeodesy.isNvector() function (pygeodesy.basics): True\n    test 730 pygeodesy.isPoints2() function (pygeodesy.iters): True\n    test 731 pygeodesy.isTuple2() function (pygeodesy.iters): True\n    test 732 pygeodesy.isantipode() function (pygeodesy.formy): True\n    test 733 pygeodesy.isantipode_() function (pygeodesy.formy): True\n    test 734 pygeodesy.isbool() function (pygeodesy.basics): True\n    test 735 pygeodesy.isclass() function (pygeodesy.basics): True\n    test 736 pygeodesy.isclockwise() function (pygeodesy.points): True\n    test 737 pygeodesy.isclose() function (pygeodesy.constants): True\n    test 738 pygeodesy.iscolinearWith() function (pygeodesy.vector3d): True\n    test 739 pygeodesy.iscomplex() function (pygeodesy.basics): True\n    test 740 pygeodesy.isconvex() function (pygeodesy.points): True\n    test 741 pygeodesy.isconvex_() function (pygeodesy.points): True\n    test 742 pygeodesy.isenclosedBy() function (pygeodesy.points): True\n    test 743 pygeodesy.isfinite() function (pygeodesy.constants): True\n    test 744 pygeodesy.isfloat() function (pygeodesy.basics): True\n    test 745 pygeodesy.isidentifier() function (pygeodesy.basics): True\n    test 746 pygeodesy.isinf type builtin_function_or_method (math): True\n    test 747 pygeodesy.isinstanceof() function (pygeodesy.basics): True\n    test 748 pygeodesy.isint() function (pygeodesy.basics): True\n    test 749 pygeodesy.isint0() function (pygeodesy.constants): True\n    test 750 pygeodesy.isiterable() function (pygeodesy.basics): True\n    test 751 pygeodesy.isiterablen() function (pygeodesy.basics): True\n    test 752 pygeodesy.isiterabletype() function (pygeodesy.basics): True\n    test 753 pygeodesy.iskeyword type builtin_function_or_method: True\n    test 754 pygeodesy.islistuple() function (pygeodesy.basics): True\n    test 755 pygeodesy.isnan type builtin_function_or_method (math): True\n    test 756 pygeodesy.isnear0() function (pygeodesy.constants): True\n    test 757 pygeodesy.isnear1() function (pygeodesy.constants): True\n    test 758 pygeodesy.isnear90() function (pygeodesy.constants): True\n    test 759 pygeodesy.isneg() function (pygeodesy.constants): True\n    test 760 pygeodesy.isneg0() function (pygeodesy.constants): True\n    test 761 pygeodesy.isninf() function (pygeodesy.constants): True\n    test 762 pygeodesy.isnon0() function (pygeodesy.constants): True\n    test 763 pygeodesy.isnormal() function (pygeodesy.formy): True\n    test 764 pygeodesy.isnormal_() function (pygeodesy.formy): True\n    test 765 pygeodesy.isodd() function (pygeodesy.basics): True\n    test 766 pygeodesy.ispolar() function (pygeodesy.points): True\n    test 767 pygeodesy.isscalar() function (pygeodesy.basics): True\n    test 768 pygeodesy.issequence() function (pygeodesy.basics): True\n    test 769 pygeodesy.isstr() function (pygeodesy.basics): True\n    test 770 pygeodesy.issubclassof() function (pygeodesy.basics): True\n    test 771 pygeodesy.itemsorted() function (pygeodesy.basics): True\n    test 772 pygeodesy.iterNumpy2() function (pygeodesy.iters): True\n    test 773 pygeodesy.iterNumpy2over() function (pygeodesy.iters): True\n    test 774 pygeodesy.iters module: True\n    test 775 pygeodesy.karney module: True\n    test 776 pygeodesy.km2m() function (pygeodesy.utily): True\n    test 777 pygeodesy.ktm module: True\n    test 778 pygeodesy.latDMS() function (pygeodesy.dms): True\n    test 779 pygeodesy.latlon2n_xyz() function (pygeodesy.latlonBase): True\n    test 780 pygeodesy.latlonBase module: True\n    test 781 pygeodesy.latlonDMS() function (pygeodesy.dms): True\n    test 782 pygeodesy.latlonDMS_() function (pygeodesy.dms): True\n    test 783 pygeodesy.lazily module: True\n    test 784 pygeodesy.lcc module: True\n    test 785 pygeodesy.len2() function (pygeodesy.basics): True\n    test 786 pygeodesy.limiterrors() function (pygeodesy.errors): True\n    test 787 pygeodesy.lonDMS() function (pygeodesy.dms): True\n    test 788 pygeodesy.lrstrip() function (pygeodesy.streprs): True\n    test 789 pygeodesy.ltp module: True\n    test 790 pygeodesy.ltpTuples module: True\n    test 791 pygeodesy.luneOf() function (pygeodesy.points): True\n    test 792 pygeodesy.m2NM() function (pygeodesy.utily): True\n    test 793 pygeodesy.m2SM() function (pygeodesy.utily): True\n    test 794 pygeodesy.m2acre() function (pygeodesy.utily): True\n    test 795 pygeodesy.m2chain() function (pygeodesy.utily): True\n    test 796 pygeodesy.m2degrees() function (pygeodesy.utily): True\n    test 797 pygeodesy.m2fathom() function (pygeodesy.utily): True\n    test 798 pygeodesy.m2ft() function (pygeodesy.utily): True\n    test 799 pygeodesy.m2furlong() function (pygeodesy.utily): True\n    test 800 pygeodesy.m2ha() function (pygeodesy.utily): True\n    test 801 pygeodesy.m2km() function (pygeodesy.utily): True\n    test 802 pygeodesy.m2radians() function (pygeodesy.utily): True\n    test 803 pygeodesy.m2toise() function (pygeodesy.utily): True\n    test 804 pygeodesy.m2yard() function (pygeodesy.utily): True\n    test 805 pygeodesy.machine() function (pygeodesy.internals): True\n    test 806 pygeodesy.map1() function (pygeodesy.basics): True\n    test 807 pygeodesy.map2() function (pygeodesy.basics): True\n    test 808 pygeodesy.max2() function (pygeodesy.basics): True\n    test 809 pygeodesy.meeus2() function (pygeodesy.vector2d): True\n    test 810 pygeodesy.mgrs module: True\n    test 811 pygeodesy.min2() function (pygeodesy.basics): True\n    test 812 pygeodesy.modulename() function (pygeodesy.named): True\n    test 813 pygeodesy.n2e2() function (pygeodesy.ellipsoids): True\n    test 814 pygeodesy.n2f() function (pygeodesy.ellipsoids): True\n    test 815 pygeodesy.n2f_() function (pygeodesy.ellipsoids): True\n    test 816 pygeodesy.n_xyz2latlon() function (pygeodesy.nvectorBase): True\n    test 817 pygeodesy.n_xyz2philam() function (pygeodesy.nvectorBase): True\n    test 818 pygeodesy.named module: True\n    test 819 pygeodesy.namedTuples module: True\n    test 820 pygeodesy.nameof() function (pygeodesy.named): True\n    test 821 pygeodesy.nearestOn() function (pygeodesy.vector3d): True\n    test 822 pygeodesy.nearestOn5() function (pygeodesy.points): True\n    test 823 pygeodesy.nearestOn6() function (pygeodesy.vector3d): True\n    test 824 pygeodesy.neg() function (pygeodesy.basics): True\n    test 825 pygeodesy.neg_() function (pygeodesy.basics): True\n    test 826 pygeodesy.nonfiniterrors() function (pygeodesy.fsums): True\n    test 827 pygeodesy.norm2() function (pygeodesy.fmath): True\n    test 828 pygeodesy.normDMS() function (pygeodesy.dms): True\n    test 829 pygeodesy.norm_() function (pygeodesy.fmath): True\n    test 830 pygeodesy.normal() function (pygeodesy.formy): True\n    test 831 pygeodesy.normal_() function (pygeodesy.formy): True\n    test 832 pygeodesy.notImplemented() function (pygeodesy.named): True\n    test 833 pygeodesy.notOverloaded() function (pygeodesy.named): True\n    test 834 pygeodesy.nvectorBase module: True\n    test 835 pygeodesy.opposing() function (pygeodesy.formy): True\n    test 836 pygeodesy.opposing_() function (pygeodesy.formy): True\n    test 837 pygeodesy.osgr module: True\n    test 838 pygeodesy.pairs() function (pygeodesy.streprs): True\n    test 839 pygeodesy.parse3d() function (pygeodesy.vector3d): True\n    test 840 pygeodesy.parse3llh() function (pygeodesy.dms): True\n    test 841 pygeodesy.parseDDDMMSS() function (pygeodesy.dms): True\n    test 842 pygeodesy.parseDMS() function (pygeodesy.dms): True\n    test 843 pygeodesy.parseDMS2() function (pygeodesy.dms): True\n    test 844 pygeodesy.parseETM5() function (pygeodesy.etm): True\n    test 845 pygeodesy.parseMGRS() function (pygeodesy.mgrs): True\n    test 846 pygeodesy.parseOSGR() function (pygeodesy.osgr): True\n    test 847 pygeodesy.parseRad() function (pygeodesy.dms): True\n    test 848 pygeodesy.parseUPS5() function (pygeodesy.ups): True\n    test 849 pygeodesy.parseUTM5() function (pygeodesy.utm): True\n    test 850 pygeodesy.parseUTMUPS5() function (pygeodesy.utmups): True\n    test 851 pygeodesy.parseWM() function (pygeodesy.webmercator): True\n    test 852 pygeodesy.perimeterOf() function (pygeodesy.points): True\n    test 853 pygeodesy.philam2n_xyz() function (pygeodesy.latlonBase): True\n    test 854 pygeodesy.pierlot() function (pygeodesy.resections): True\n    test 855 pygeodesy.pierlotx() function (pygeodesy.resections): True\n    test 856 pygeodesy.points module: True\n    test 857 pygeodesy.points2() function (pygeodesy.iters): True\n    test 858 pygeodesy.polar2() function (pygeodesy.fmath): True\n    test 859 pygeodesy.polar2d() function (pygeodesy.fmath): True\n    test 860 pygeodesy.precision() function (pygeodesy.dms): True\n    test 861 pygeodesy.print_() function (pygeodesy.internals): True\n    test 862 pygeodesy.printf() function (pygeodesy.internals): True\n    test 863 pygeodesy.property_RO() class (pygeodesy.props): True\n    test 864 pygeodesy.property_ROnce() class (pygeodesy.props): True\n    test 865 pygeodesy.property_ROver() class (pygeodesy.props): True\n    test 866 pygeodesy.property_doc_() function (pygeodesy.props): True\n    test 867 pygeodesy.props module: True\n    test 868 pygeodesy.pygeodesy_abspath str: True\n    test 869 pygeodesy.quadOf() function (pygeodesy.points): True\n    test 870 pygeodesy.radians type builtin_function_or_method (math): True\n    test 871 pygeodesy.radians2m() function (pygeodesy.utily): True\n    test 872 pygeodesy.radiansPI() function (pygeodesy.utily): True\n    test 873 pygeodesy.radiansPI2() function (pygeodesy.utily): True\n    test 874 pygeodesy.radiansPI_2() function (pygeodesy.utily): True\n    test 875 pygeodesy.radical2() function (pygeodesy.formy): True\n    test 876 pygeodesy.radii11() function (pygeodesy.vector2d): True\n    test 877 pygeodesy.randomrangenerator() function (pygeodesy.hausdorff): True\n    test 878 pygeodesy.rangerrors() function (pygeodesy.errors): True\n    test 879 pygeodesy.remainder() function (pygeodesy.constants): True\n    test 880 pygeodesy.reprs() function (pygeodesy.streprs): True\n    test 881 pygeodesy.resections module: True\n    test 882 pygeodesy.rhumb module: True\n    test 883 pygeodesy.rtp2xyz() function (pygeodesy.cartesianBase): True\n    test 884 pygeodesy.rtp2xyz_() function (pygeodesy.cartesianBase): True\n    test 885 pygeodesy.signBit() function (pygeodesy.basics): True\n    test 886 pygeodesy.signOf() function (pygeodesy.basics): True\n    test 887 pygeodesy.simplify module: True\n    test 888 pygeodesy.simplify1() function (pygeodesy.simplify): True\n    test 889 pygeodesy.simplifyRDP() function (pygeodesy.simplify): True\n    test 890 pygeodesy.simplifyRW() function (pygeodesy.simplify): True\n    test 891 pygeodesy.simplifyVW() function (pygeodesy.simplify): True\n    test 892 pygeodesy.sincos2() function (pygeodesy.utily): True\n    test 893 pygeodesy.sincos2_() function (pygeodesy.utily): True\n    test 894 pygeodesy.sincos2d() function (pygeodesy.utily): True\n    test 895 pygeodesy.sincos2d_() function (pygeodesy.utily): True\n    test 896 pygeodesy.sincostan3() function (pygeodesy.utily): True\n    test 897 pygeodesy.sincostan3d() function (pygeodesy.utily): True\n    test 898 pygeodesy.snellius3() function (pygeodesy.resections): True\n    test 899 pygeodesy.soddy4() function (pygeodesy.vector2d): True\n    test 900 pygeodesy.solveBase module: True\n    test 901 pygeodesy.sphericalBase module: True\n    test 902 pygeodesy.sphericalNvector module: True\n    test 903 pygeodesy.sphericalTrigonometry module: True\n    test 904 pygeodesy.splice() function (pygeodesy.basics): True\n    test 905 pygeodesy.sqrt0() function (pygeodesy.fmath): True\n    test 906 pygeodesy.sqrt3() function (pygeodesy.fmath): True\n    test 907 pygeodesy.sqrt_a() function (pygeodesy.fmath): True\n    test 908 pygeodesy.str2ub() function (pygeodesy.internals): True\n    test 909 pygeodesy.streprs module: True\n    test 910 pygeodesy.strs() function (pygeodesy.streprs): True\n    test 911 pygeodesy.tan() function (pygeodesy.utily): True\n    test 912 pygeodesy.tanPI_2_2() function (pygeodesy.utily): True\n    test 913 pygeodesy.tan_() function (pygeodesy.utily): True\n    test 914 pygeodesy.tan_2() function (pygeodesy.utily): True\n    test 915 pygeodesy.tand() function (pygeodesy.utily): True\n    test 916 pygeodesy.tand_() function (pygeodesy.utily): True\n    test 917 pygeodesy.thomas() function (pygeodesy.formy): True\n    test 918 pygeodesy.thomas_() function (pygeodesy.formy): True\n    test 919 pygeodesy.tienstra7() function (pygeodesy.resections): True\n    test 920 pygeodesy.toCss() function (pygeodesy.css): True\n    test 921 pygeodesy.toDMS() function (pygeodesy.dms): True\n    test 922 pygeodesy.toEtm8() function (pygeodesy.etm): True\n    test 923 pygeodesy.toLcc() function (pygeodesy.lcc): True\n    test 924 pygeodesy.toMgrs() function (pygeodesy.mgrs): True\n    test 925 pygeodesy.toOsgr() function (pygeodesy.osgr): True\n    test 926 pygeodesy.toUps8() function (pygeodesy.ups): True\n    test 927 pygeodesy.toUtm8() function (pygeodesy.utm): True\n    test 928 pygeodesy.toUtmUps8() function (pygeodesy.utmups): True\n    test 929 pygeodesy.toWm() function (pygeodesy.webmercator): True\n    test 930 pygeodesy.toise2m() function (pygeodesy.utily): True\n    test 931 pygeodesy.trf module: True\n    test 932 pygeodesy.trfTransform0() function (pygeodesy.trf): True\n    test 933 pygeodesy.trfTransforms() function (pygeodesy.trf): True\n    test 934 pygeodesy.trfXform() function (pygeodesy.trf): True\n    test 935 pygeodesy.triAngle() function (pygeodesy.resections): True\n    test 936 pygeodesy.triAngle5() function (pygeodesy.resections): True\n    test 937 pygeodesy.triArea() function (pygeodesy.resections): True\n    test 938 pygeodesy.triSide() function (pygeodesy.resections): True\n    test 939 pygeodesy.triSide2() function (pygeodesy.resections): True\n    test 940 pygeodesy.triSide4() function (pygeodesy.resections): True\n    test 941 pygeodesy.triaxials module: True\n    test 942 pygeodesy.triaxum5() function (pygeodesy.vector2d): True\n    test 943 pygeodesy.trilaterate2d2() function (pygeodesy.vector2d): True\n    test 944 pygeodesy.trilaterate3d2() function (pygeodesy.vector3d): True\n    test 945 pygeodesy.truncate() function (pygeodesy.utily): True\n    test 946 pygeodesy.typename() function (pygeodesy.internals): True\n    test 947 pygeodesy.tyr3d() function (pygeodesy.ltp): True\n    test 948 pygeodesy.ub2str() function (pygeodesy.internals): True\n    test 949 pygeodesy.units module: True\n    test 950 pygeodesy.unitsBase module: True\n    test 951 pygeodesy.unroll180() function (pygeodesy.utily): True\n    test 952 pygeodesy.unrollPI() function (pygeodesy.utily): True\n    test 953 pygeodesy.unsigned0() function (pygeodesy.basics): True\n    test 954 pygeodesy.unstr() function (pygeodesy.streprs): True\n    test 955 pygeodesy.ups module: True\n    test 956 pygeodesy.upsZoneBand5() function (pygeodesy.ups): True\n    test 957 pygeodesy.utily module: True\n    test 958 pygeodesy.utm module: True\n    test 959 pygeodesy.utmZoneBand5() function (pygeodesy.utm): True\n    test 960 pygeodesy.utmups module: True\n    test 961 pygeodesy.utmupsBase module: True\n    test 962 pygeodesy.utmupsValidate() function (pygeodesy.utmups): True\n    test 963 pygeodesy.utmupsValidateOK() function (pygeodesy.utmups): True\n    test 964 pygeodesy.utmupsZoneBand5() function (pygeodesy.utmups): True\n    test 965 pygeodesy.vector2d module: True\n    test 966 pygeodesy.vector3d module: True\n    test 967 pygeodesy.vector3dBase module: True\n    test 968 pygeodesy.version str (pygeodesy.interns): True\n    test 969 pygeodesy.vincentys() function (pygeodesy.formy): True\n    test 970 pygeodesy.vincentys_() function (pygeodesy.formy): True\n    test 971 pygeodesy.webmercator module: True\n    test 972 pygeodesy.wgrs module: True\n    test 973 pygeodesy.wildberger3() function (pygeodesy.resections): True\n    test 974 pygeodesy.wrap180() function (pygeodesy.utily): True\n    test 975 pygeodesy.wrap360() function (pygeodesy.utily): True\n    test 976 pygeodesy.wrap90() function (pygeodesy.utily): True\n    test 977 pygeodesy.wrapPI() function (pygeodesy.utily): True\n    test 978 pygeodesy.wrapPI2() function (pygeodesy.utily): True\n    test 979 pygeodesy.wrapPI_2() function (pygeodesy.utily): True\n    test 980 pygeodesy.wrap_normal() function (pygeodesy.utily): True\n    test 981 pygeodesy.xyz2rtp() function (pygeodesy.cartesianBase): True\n    test 982 pygeodesy.xyz2rtp_() function (pygeodesy.cartesianBase): True\n    test 983 pygeodesy.yard2m() function (pygeodesy.utily): True\n    test 984 pygeodesy.zcrt() function (pygeodesy.fmath): True\n    test 985 pygeodesy.zqrt() function (pygeodesy.fmath): True\n\n    testModule(pygeodesy.albers, 26.02.27)\n    test 986 albers.Albers7Tuple() class: True\n    test 987 albers.AlbersEqualArea() class: True\n    test 988 albers.AlbersEqualArea2() class: True\n    test 989 albers.AlbersEqualArea4() class: True\n    test 990 albers.AlbersEqualAreaCylindrical() class: True\n    test 991 albers.AlbersEqualAreaNorth() class: True\n    test 992 albers.AlbersEqualAreaSouth() class: True\n    test 993 albers.AlbersError() class: True\n\n    testModule(pygeodesy.angles, 25.12.02)\n    test 994 angles.Ang() class: True\n    test 995 angles.Deg() function: True\n    test 996 angles.Lambertian() class: True\n    test 997 angles.Rad() function: True\n    test 998 angles.isAng() function: True\n\n    testModule(pygeodesy.auxilats, 25.12.02)\n    test 999 auxilats.Aux class pygeodesy.auxilats.auxily.Aux (pygeodesy.auxilats.auxily): True\n    test 1000 auxilats.AuxAngle() class (pygeodesy.auxilats.auxAngle): True\n    test 1001 auxilats.AuxBeta() class (pygeodesy.auxilats.auxAngle): True\n    test 1002 auxilats.AuxChi() class (pygeodesy.auxilats.auxAngle): True\n    test 1003 auxilats.AuxDLat() class (pygeodesy.auxilats.auxDLat): True\n    test 1004 auxilats.AuxDST() class (pygeodesy.auxilats.auxDST): True\n    test 1005 auxilats.AuxLat() class (pygeodesy.auxilats.auxLat): True\n    test 1006 auxilats.AuxMu() class (pygeodesy.auxilats.auxAngle): True\n    test 1007 auxilats.AuxPhi() class (pygeodesy.auxilats.auxAngle): True\n    test 1008 auxilats.AuxTheta() class (pygeodesy.auxilats.auxAngle): True\n    test 1009 auxilats.AuxXi() class (pygeodesy.auxilats.auxAngle): True\n\n    testModule(pygeodesy.azimuthal, 25.11.29)\n    test 1010 azimuthal.Azimuthal7Tuple() class: True\n    test 1011 azimuthal.AzimuthalError() class: True\n    test 1012 azimuthal.Equidistant() class: True\n    test 1013 azimuthal.EquidistantExact() class: True\n    test 1014 azimuthal.EquidistantGeodSolve() class: True\n    test 1015 azimuthal.EquidistantKarney() class: True\n    test 1016 azimuthal.Gnomonic() class: True\n    test 1017 azimuthal.GnomonicExact() class: True\n    test 1018 azimuthal.GnomonicGeodSolve() class: True\n    test 1019 azimuthal.GnomonicKarney() class: True\n    test 1020 azimuthal.LambertEqualArea() class: True\n    test 1021 azimuthal.Orthographic() class: True\n    test 1022 azimuthal.Stereographic() class: True\n    test 1023 azimuthal.equidistant() function: True\n    test 1024 azimuthal.gnomonic() function: True\n\n    testModule(pygeodesy.basics, 26.02.22)\n    test 1025 basics.clips() function: True\n    test 1026 basics.copysign0() function: True\n    test 1027 basics.copytype() function: True\n    test 1028 basics.halfs2() function: True\n    test 1029 basics.int1s() function: True\n    test 1030 basics.isCartesian() function: True\n    test 1031 basics.isDEPRECATED() function: True\n    test 1032 basics.isLatLon() function: True\n    test 1033 basics.isNvector() function: True\n    test 1034 basics.isbool() function: True\n    test 1035 basics.isclass() function: True\n    test 1036 basics.iscomplex() function: True\n    test 1037 basics.isfloat() function: True\n    test 1038 basics.isidentifier() function: True\n    test 1039 basics.isinstanceof() function: True\n    test 1040 basics.isint() function: True\n    test 1041 basics.isiterable() function: True\n    test 1042 basics.isiterablen() function: True\n    test 1043 basics.isiterabletype() function: True\n    test 1044 basics.iskeyword type builtin_function_or_method: True\n    test 1045 basics.islistuple() function: True\n    test 1046 basics.isodd() function: True\n    test 1047 basics.isscalar() function: True\n    test 1048 basics.issequence() function: True\n    test 1049 basics.isstr() function: True\n    test 1050 basics.issubclassof() function: True\n    test 1051 basics.itemsorted() function: True\n    test 1052 basics.len2() function: True\n    test 1053 basics.map1() function: True\n    test 1054 basics.map2() function: True\n    test 1055 basics.max2() function: True\n    test 1056 basics.min2() function: True\n    test 1057 basics.neg() function: True\n    test 1058 basics.neg_() function: True\n    test 1059 basics.signBit() function: True\n    test 1060 basics.signOf() function: True\n    test 1061 basics.splice() function: True\n    test 1062 basics.str2ub() function (pygeodesy.internals): True\n    test 1063 basics.ub2str() function (pygeodesy.internals): True\n    test 1064 basics.unsigned0() function: True\n\n    testModule(pygeodesy.booleans, 25.10.30)\n    test 1065 booleans.BooleanFHP() class: True\n    test 1066 booleans.BooleanGH() class: True\n    test 1067 booleans.LatLonFHP() class: True\n    test 1068 booleans.LatLonGH() class: True\n    test 1069 booleans.isBoolean() function: True\n\n    testModule(pygeodesy.cartesianBase, 26.01.06)\n    test 1070 cartesianBase.RadiusThetaPhi3Tuple() class: True\n    test 1071 cartesianBase.rtp2xyz() function: True\n    test 1072 cartesianBase.rtp2xyz_() function: True\n    test 1073 cartesianBase.xyz2rtp() function: True\n    test 1074 cartesianBase.xyz2rtp_() function: True\n\n    testModule(pygeodesy.clipy, 25.10.30)\n    test 1075 clipy.ClipCS4Tuple() class: True\n    test 1076 clipy.ClipFHP4Tuple() class: True\n    test 1077 clipy.ClipGH4Tuple() class: True\n    test 1078 clipy.ClipLB6Tuple() class: True\n    test 1079 clipy.ClipSH3Tuple() class: True\n    test 1080 clipy.clipCS4() function: True\n    test 1081 clipy.clipFHP4() function: True\n    test 1082 clipy.clipGH4() function: True\n    test 1083 clipy.clipLB6() function: True\n    test 1084 clipy.clipSH() function: True\n    test 1085 clipy.clipSH3() function: True\n\n    testModule(pygeodesy.constants, 26.02.09)\n    test 1086 constants.DIG int (pygeodesy.unitsBase): True\n    test 1087 constants.EPS float (pygeodesy.unitsBase): True\n    test 1088 constants.EPS0 float (pygeodesy.unitsBase): True\n    test 1089 constants.EPS02 float (pygeodesy.unitsBase): True\n    test 1090 constants.EPS1 float (pygeodesy.unitsBase): True\n    test 1091 constants.EPS2 float (pygeodesy.unitsBase): True\n    test 1092 constants.EPS4 float (pygeodesy.unitsBase): True\n    test 1093 constants.EPS8 float (pygeodesy.unitsBase): True\n    test 1094 constants.EPS_2 float (pygeodesy.unitsBase): True\n    test 1095 constants.INF float (pygeodesy.unitsBase): True\n    test 1096 constants.INT0 int (pygeodesy.unitsBase): True\n    test 1097 constants.MANT_DIG int (pygeodesy.unitsBase): True\n    test 1098 constants.MAX float (pygeodesy.unitsBase): True\n    test 1099 constants.MAX_EXP int (pygeodesy.unitsBase): True\n    test 1100 constants.MIN float (pygeodesy.unitsBase): True\n    test 1101 constants.MIN_EXP int (pygeodesy.unitsBase): True\n    test 1102 constants.NAN float (pygeodesy.unitsBase): True\n    test 1103 constants.NEG0 float (pygeodesy.unitsBase): True\n    test 1104 constants.NINF float (pygeodesy.unitsBase): True\n    test 1105 constants.OVERFLOW float (pygeodesy.unitsBase): True\n    test 1106 constants.PI float (pygeodesy.unitsBase): True\n    test 1107 constants.PI2 float (pygeodesy.unitsBase): True\n    test 1108 constants.PI3 float (pygeodesy.unitsBase): True\n    test 1109 constants.PI3_2 float (pygeodesy.unitsBase): True\n    test 1110 constants.PI4 float (pygeodesy.unitsBase): True\n    test 1111 constants.PI_2 float (pygeodesy.unitsBase): True\n    test 1112 constants.PI_3 float (pygeodesy.unitsBase): True\n    test 1113 constants.PI_4 float (pygeodesy.unitsBase): True\n    test 1114 constants.PI_6 float (pygeodesy.unitsBase): True\n    test 1115 constants.R_FM float (pygeodesy.unitsBase): True\n    test 1116 constants.R_GM float (pygeodesy.unitsBase): True\n    test 1117 constants.R_KM float (pygeodesy.unitsBase): True\n    test 1118 constants.R_M float (pygeodesy.unitsBase): True\n    test 1119 constants.R_MA float (pygeodesy.unitsBase): True\n    test 1120 constants.R_MB float (pygeodesy.unitsBase): True\n    test 1121 constants.R_NM float (pygeodesy.unitsBase): True\n    test 1122 constants.R_QM float (pygeodesy.unitsBase): True\n    test 1123 constants.R_SM float (pygeodesy.unitsBase): True\n    test 1124 constants.R_VM float (pygeodesy.unitsBase): True\n    test 1125 constants.float0_() function: True\n    test 1126 constants.float_() function: True\n    test 1127 constants.floats_() function: True\n    test 1128 constants.isclose() function: True\n    test 1129 constants.isfinite() function: True\n    test 1130 constants.isinf type builtin_function_or_method (math): True\n    test 1131 constants.isint0() function: True\n    test 1132 constants.isnan type builtin_function_or_method (math): True\n    test 1133 constants.isnear0() function: True\n    test 1134 constants.isnear1() function: True\n    test 1135 constants.isnear90() function: True\n    test 1136 constants.isneg() function: True\n    test 1137 constants.isneg0() function: True\n    test 1138 constants.isninf() function: True\n    test 1139 constants.isnon0() function: True\n    test 1140 constants.remainder() function: True\n\n    testModule(pygeodesy.css, 25.04.14)\n    test 1141 css.CSSError() class: True\n    test 1142 css.CassiniSoldner() class: True\n    test 1143 css.Css() class: True\n    test 1144 css.EasNorAziRk4Tuple() class: True\n    test 1145 css.EasNorAziRkEqu6Tuple() class: True\n    test 1146 css.LatLonAziRk4Tuple() class: True\n    test 1147 css.toCss() function: True\n\n    testModule(pygeodesy.datums, 26.01.13)\n    test 1148 datums.Datum() class: True\n    test 1149 datums.Datums class pygeodesy.datums.Datums: True\n    test 1150 datums.Transform() class: True\n    test 1151 datums.Transforms class pygeodesy.datums.Transforms: True\n\n    testModule(pygeodesy.dms, 25.08.31)\n    test 1152 dms.F_D str: True\n    test 1153 dms.F_D60 str: True\n    test 1154 dms.F_D60_ str (pygeodesy.interns): True\n    test 1155 dms.F_D60__ str (pygeodesy.interns): True\n    test 1156 dms.F_DEG str: True\n    test 1157 dms.F_DEG_ str (pygeodesy.interns): True\n    test 1158 dms.F_DEG__ str (pygeodesy.interns): True\n    test 1159 dms.F_DM str: True\n    test 1160 dms.F_DMS str: True\n    test 1161 dms.F_DMS_ str (pygeodesy.interns): True\n    test 1162 dms.F_DMS__ str (pygeodesy.interns): True\n    test 1163 dms.F_DM_ str (pygeodesy.interns): True\n    test 1164 dms.F_DM__ str (pygeodesy.interns): True\n    test 1165 dms.F_D_ str (pygeodesy.interns): True\n    test 1166 dms.F_D__ str (pygeodesy.interns): True\n    test 1167 dms.F_MIN str: True\n    test 1168 dms.F_MIN_ str (pygeodesy.interns): True\n    test 1169 dms.F_MIN__ str (pygeodesy.interns): True\n    test 1170 dms.F_RAD str: True\n    test 1171 dms.F_RAD_ str (pygeodesy.interns): True\n    test 1172 dms.F_RAD__ str (pygeodesy.interns): True\n    test 1173 dms.F_SEC str: True\n    test 1174 dms.F_SEC_ str (pygeodesy.interns): True\n    test 1175 dms.F_SEC__ str (pygeodesy.interns): True\n    test 1176 dms.F__E str: True\n    test 1177 dms.F__E_ str (pygeodesy.interns): True\n    test 1178 dms.F__E__ str (pygeodesy.interns): True\n    test 1179 dms.F__F str: True\n    test 1180 dms.F__F_ str (pygeodesy.interns): True\n    test 1181 dms.F__F__ str (pygeodesy.interns): True\n    test 1182 dms.F__G str: True\n    test 1183 dms.F__G_ str (pygeodesy.interns): True\n    test 1184 dms.F__G__ str (pygeodesy.interns): True\n    test 1185 dms.S_DEG str: True\n    test 1186 dms.S_DMS int: True\n    test 1187 dms.S_MIN str: True\n    test 1188 dms.S_RAD str (pygeodesy.interns): True\n    test 1189 dms.S_SEC str: True\n    test 1190 dms.S_SEP str (pygeodesy.interns): True\n    test 1191 dms.bearingDMS() function: True\n    test 1192 dms.clipDegrees() function: True\n    test 1193 dms.clipRadians() function: True\n    test 1194 dms.compassDMS() function: True\n    test 1195 dms.compassPoint() function: True\n    test 1196 dms.degDMS() function: True\n    test 1197 dms.latDMS() function: True\n    test 1198 dms.latlonDMS() function: True\n    test 1199 dms.latlonDMS_() function: True\n    test 1200 dms.lonDMS() function: True\n    test 1201 dms.normDMS() function: True\n    test 1202 dms.parse3llh() function: True\n    test 1203 dms.parseDDDMMSS() function: True\n    test 1204 dms.parseDMS() function: True\n    test 1205 dms.parseDMS2() function: True\n    test 1206 dms.parseRad() function: True\n    test 1207 dms.precision() function: True\n    test 1208 dms.toDMS() function: True\n\n    testModule(pygeodesy.ecef, 25.08.31)\n    test 1209 ecef.Ecef9Tuple() class: True\n    test 1210 ecef.EcefError() class: True\n    test 1211 ecef.EcefFarrell21() class: True\n    test 1212 ecef.EcefFarrell22() class: True\n    test 1213 ecef.EcefKarney() class: True\n    test 1214 ecef.EcefMatrix() class: True\n    test 1215 ecef.EcefSudano() class: True\n    test 1216 ecef.EcefUPC() class: True\n    test 1217 ecef.EcefVeness() class: True\n    test 1218 ecef.EcefYou() class: True\n\n    testModule(pygeodesy.ecefLocals, 25.04.28)\n\n    testModule(pygeodesy.elevations, 25.04.14)\n    test 1219 elevations.Elevation2Tuple() class: True\n    test 1220 elevations.GeoidHeight2Tuple() class: True\n    test 1221 elevations.elevation2() function: True\n    test 1222 elevations.geoidHeight2() function: True\n\n    testModule(pygeodesy.ellipses, 26.03.25)\n    test 1223 ellipses.Ellipse() class: True\n    test 1224 ellipses.EllipseError() class: True\n\n    testModule(pygeodesy.ellipsoidalBase, 25.07.21)\n\n    testModule(pygeodesy.ellipsoidalBaseDI, 25.05.23)\n\n    testModule(pygeodesy.ellipsoidalExact, 25.08.28)\n    test 1225 ellipsoidalExact.Cartesian() class: True\n    test 1226 ellipsoidalExact.LatLon() class: True\n    test 1227 ellipsoidalExact.areaOf() function: True\n    test 1228 ellipsoidalExact.intersecant2() function (pygeodesy.ellipsoidalBaseDI): True\n    test 1229 ellipsoidalExact.intersection3() function: True\n    test 1230 ellipsoidalExact.intersections2() function: True\n    test 1231 ellipsoidalExact.isclockwise() function: True\n    test 1232 ellipsoidalExact.ispolar() function (pygeodesy.points): True\n    test 1233 ellipsoidalExact.nearestOn() function: True\n    test 1234 ellipsoidalExact.perimeterOf() function: True\n\n    testModule(pygeodesy.ellipsoidalGeodSolve, 25.08.28)\n    test 1235 ellipsoidalGeodSolve.Cartesian() class: True\n    test 1236 ellipsoidalGeodSolve.LatLon() class: True\n    test 1237 ellipsoidalGeodSolve.areaOf() function: True\n    test 1238 ellipsoidalGeodSolve.intersection3() function: True\n    test 1239 ellipsoidalGeodSolve.intersections2() function: True\n    test 1240 ellipsoidalGeodSolve.isclockwise() function: True\n    test 1241 ellipsoidalGeodSolve.ispolar() function (pygeodesy.points): True\n    test 1242 ellipsoidalGeodSolve.nearestOn() function: True\n    test 1243 ellipsoidalGeodSolve.perimeterOf() function: True\n\n    testModule(pygeodesy.ellipsoidalKarney, 25.05.27)\n    test 1244 ellipsoidalKarney.Cartesian() class: True\n    test 1245 ellipsoidalKarney.LatLon() class: True\n    test 1246 ellipsoidalKarney.areaOf() function: True\n    test 1247 ellipsoidalKarney.intersecant2() function (pygeodesy.ellipsoidalBaseDI): True\n    test 1248 ellipsoidalKarney.intersection3() function: True\n    test 1249 ellipsoidalKarney.intersections2() function: True\n    test 1250 ellipsoidalKarney.isclockwise() function: True\n    test 1251 ellipsoidalKarney.ispolar() function (pygeodesy.points): True\n    test 1252 ellipsoidalKarney.nearestOn() function: True\n    test 1253 ellipsoidalKarney.perimeterOf() function: True\n\n    testModule(pygeodesy.ellipsoidalNvector, 25.05.12)\n    test 1254 ellipsoidalNvector.Cartesian() class: True\n    test 1255 ellipsoidalNvector.LatLon() class: True\n    test 1256 ellipsoidalNvector.Ned() class: True\n    test 1257 ellipsoidalNvector.Nvector() class: True\n    test 1258 ellipsoidalNvector.meanOf() function: True\n    test 1259 ellipsoidalNvector.sumOf() function: True\n    test 1260 ellipsoidalNvector.toNed() function: True\n\n    testModule(pygeodesy.ellipsoidalVincenty, 25.05.26)\n    test 1261 ellipsoidalVincenty.VincentyError() class: True\n\n    testModule(pygeodesy.ellipsoids, 26.03.25)\n    test 1262 ellipsoids.Curvature2Tuple() class: True\n    test 1263 ellipsoids.Ellipsoid() class: True\n    test 1264 ellipsoids.Ellipsoid2() class: True\n    test 1265 ellipsoids.Ellipsoids class pygeodesy.ellipsoids.Ellipsoids: True\n    test 1266 ellipsoids.a_b2e() function: True\n    test 1267 ellipsoids.a_b2e2() function: True\n    test 1268 ellipsoids.a_b2e22() function: True\n    test 1269 ellipsoids.a_b2e32() function: True\n    test 1270 ellipsoids.a_b2f() function: True\n    test 1271 ellipsoids.a_b2f2() function: True\n    test 1272 ellipsoids.a_b2f_() function: True\n    test 1273 ellipsoids.a_b2n() function: True\n    test 1274 ellipsoids.a_f2Tuple() class: True\n    test 1275 ellipsoids.a_f2b() function: True\n    test 1276 ellipsoids.a_f_2b() function: True\n    test 1277 ellipsoids.b_f2a() function: True\n    test 1278 ellipsoids.b_f_2a() function: True\n    test 1279 ellipsoids.e22f() function: True\n    test 1280 ellipsoids.e2f() function: True\n    test 1281 ellipsoids.f2e2() function: True\n    test 1282 ellipsoids.f2e22() function: True\n    test 1283 ellipsoids.f2e32() function: True\n    test 1284 ellipsoids.f2f2() function: True\n    test 1285 ellipsoids.f2f_() function: True\n    test 1286 ellipsoids.f2n() function: True\n    test 1287 ellipsoids.f_2f() function: True\n    test 1288 ellipsoids.n2e2() function: True\n    test 1289 ellipsoids.n2f() function: True\n    test 1290 ellipsoids.n2f_() function: True\n\n    testModule(pygeodesy.elliptic, 26.02.15)\n    test 1291 elliptic.Elliptic() class: True\n    test 1292 elliptic.Elliptic3Tuple() class: True\n    test 1293 elliptic.EllipticError() class: True\n\n    testModule(pygeodesy.epsg, 24.08.05)\n    test 1294 epsg.EPSGError() class: True\n    test 1295 epsg.Epsg() class: True\n\n    testModule(pygeodesy.errors, 26.02.12)\n    test 1296 errors.AuxError() class: True\n    test 1297 errors.ClipError() class: True\n    test 1298 errors.CrossError() class: True\n    test 1299 errors.GeodesicError() class: True\n    test 1300 errors.IntersectionError() class: True\n    test 1301 errors.LenError() class: True\n    test 1302 errors.LimitError() class: True\n    test 1303 errors.MGRSError() class: True\n    test 1304 errors.NumPyError() class: True\n    test 1305 errors.ParseError() class: True\n    test 1306 errors.PointsError() class: True\n    test 1307 errors.RangeError() class: True\n    test 1308 errors.RhumbError() class: True\n    test 1309 errors.SciPyError() class: True\n    test 1310 errors.SciPyWarning() class: True\n    test 1311 errors.TRFError() class: True\n    test 1312 errors.TriangleError() class: True\n    test 1313 errors.UnitError() class: True\n    test 1314 errors.VectorError() class: True\n    test 1315 errors.crosserrors() function: True\n    test 1316 errors.exception_chaining() function: True\n    test 1317 errors.isError() function: True\n    test 1318 errors.limiterrors() function: True\n    test 1319 errors.rangerrors() function: True\n\n    testModule(pygeodesy.etm, 25.09.15)\n    test 1320 etm.ETMError() class: True\n    test 1321 etm.Etm() class: True\n    test 1322 etm.ExactTransverseMercator() class: True\n    test 1323 etm.parseETM5() function: True\n    test 1324 etm.toEtm8() function: True\n\n    testModule(pygeodesy.fmath, 26.03.25)\n    test 1325 fmath.Fcbrt() class: True\n    test 1326 fmath.Fdot() class: True\n    test 1327 fmath.Fdot_() class: True\n    test 1328 fmath.Fhorner() class: True\n    test 1329 fmath.Fhypot() class: True\n    test 1330 fmath.Fpolynomial() class: True\n    test 1331 fmath.Fpowers() class: True\n    test 1332 fmath.Froot() class: True\n    test 1333 fmath.Fsqrt() class: True\n    test 1334 fmath.bqrt() function: True\n    test 1335 fmath.cbrt() function: True\n    test 1336 fmath.cbrt2() function: True\n    test 1337 fmath.euclid() function: True\n    test 1338 fmath.euclid_() function: True\n    test 1339 fmath.f2mul_() function: True\n    test 1340 fmath.facos1() function: True\n    test 1341 fmath.fasin1() function: True\n    test 1342 fmath.fatan() function: True\n    test 1343 fmath.fatan1() function: True\n    test 1344 fmath.fatan2() function: True\n    test 1345 fmath.favg() function: True\n    test 1346 fmath.fdot() function: True\n    test 1347 fmath.fdot3() function: True\n    test 1348 fmath.fdot_() function: True\n    test 1349 fmath.fhorner() function: True\n    test 1350 fmath.fidw() function: True\n    test 1351 fmath.fma() function: True\n    test 1352 fmath.fmean() function: True\n    test 1353 fmath.fmean_() function: True\n    test 1354 fmath.fpolynomial() function: True\n    test 1355 fmath.fpowers() function: True\n    test 1356 fmath.fprod() function: True\n    test 1357 fmath.frandoms() function: True\n    test 1358 fmath.frange() function: True\n    test 1359 fmath.freduce type builtin_function_or_method (_functools): True\n    test 1360 fmath.fremainder() function: True\n    test 1361 fmath.hypot type builtin_function_or_method (math): True\n    test 1362 fmath.hypot1() function: True\n    test 1363 fmath.hypot2() function: True\n    test 1364 fmath.hypot2_() function: True\n    test 1365 fmath.hypot_() function: True\n    test 1366 fmath.norm2() function: True\n    test 1367 fmath.norm_() function: True\n    test 1368 fmath.polar2() function: True\n    test 1369 fmath.polar2d() function: True\n    test 1370 fmath.sqrt0() function: True\n    test 1371 fmath.sqrt3() function: True\n    test 1372 fmath.sqrt_a() function: True\n    test 1373 fmath.zcrt() function: True\n    test 1374 fmath.zqrt() function: True\n\n    testModule(pygeodesy.formy, 26.01.06)\n    test 1375 formy.Radical2Tuple() class: True\n    test 1376 formy.angle2chord() function: True\n    test 1377 formy.antipode() function: True\n    test 1378 formy.antipode_() function: True\n    test 1379 formy.bearing() function: True\n    test 1380 formy.bearing_() function: True\n    test 1381 formy.chord2angle() function: True\n    test 1382 formy.compassAngle() function: True\n    test 1383 formy.cosineLaw() function: True\n    test 1384 formy.cosineLaw_() function: True\n    test 1385 formy.equirectangular() function: True\n    test 1386 formy.equirectangular4() function: True\n    test 1387 formy.euclidean() function: True\n    test 1388 formy.euclidean_() function: True\n    test 1389 formy.excessAbc_() function: True\n    test 1390 formy.excessCagnoli_() function: True\n    test 1391 formy.excessGirard_() function: True\n    test 1392 formy.excessKarney() function: True\n    test 1393 formy.excessKarney_() function: True\n    test 1394 formy.excessLHuilier_() function: True\n    test 1395 formy.excessQuad() function: True\n    test 1396 formy.excessQuad_() function: True\n    test 1397 formy.flatLocal() function: True\n    test 1398 formy.flatLocal_() function: True\n    test 1399 formy.flatPolar() function: True\n    test 1400 formy.flatPolar_() function: True\n    test 1401 formy.hartzell() function: True\n    test 1402 formy.haversine() function: True\n    test 1403 formy.haversine_() function: True\n    test 1404 formy.heightOf() function: True\n    test 1405 formy.heightOrthometric() function: True\n    test 1406 formy.horizon() function: True\n    test 1407 formy.hubeny() function: True\n    test 1408 formy.hubeny_() function: True\n    test 1409 formy.intersection2() function: True\n    test 1410 formy.intersections2() function: True\n    test 1411 formy.isantipode() function: True\n    test 1412 formy.isantipode_() function: True\n    test 1413 formy.isnormal() function: True\n    test 1414 formy.isnormal_() function: True\n    test 1415 formy.normal() function: True\n    test 1416 formy.normal_() function: True\n    test 1417 formy.opposing() function: True\n    test 1418 formy.opposing_() function: True\n    test 1419 formy.radical2() function: True\n    test 1420 formy.thomas() function: True\n    test 1421 formy.thomas_() function: True\n    test 1422 formy.vincentys() function: True\n    test 1423 formy.vincentys_() function: True\n\n    testModule(pygeodesy.frechet, 25.05.26)\n    test 1424 frechet.Frechet() class: True\n    test 1425 frechet.Frechet6Tuple() class: True\n    test 1426 frechet.FrechetCosineLaw() class: True\n    test 1427 frechet.FrechetDegrees() class: True\n    test 1428 frechet.FrechetDistanceTo() class: True\n    test 1429 frechet.FrechetEquirectangular() class: True\n    test 1430 frechet.FrechetError() class: True\n    test 1431 frechet.FrechetEuclidean() class: True\n    test 1432 frechet.FrechetExact() class: True\n    test 1433 frechet.FrechetFlatLocal() class: True\n    test 1434 frechet.FrechetFlatPolar() class: True\n    test 1435 frechet.FrechetHaversine() class: True\n    test 1436 frechet.FrechetHubeny() class: True\n    test 1437 frechet.FrechetKarney() class: True\n    test 1438 frechet.FrechetRadians() class: True\n    test 1439 frechet.FrechetThomas() class: True\n    test 1440 frechet.FrechetVincentys() class: True\n    test 1441 frechet.frechet_() function: True\n\n    testModule(pygeodesy.fstats, 25.05.12)\n    test 1442 fstats.Fcook() class: True\n    test 1443 fstats.Flinear() class: True\n    test 1444 fstats.Fwelford() class: True\n\n    testModule(pygeodesy.fsums, 26.02.02)\n    test 1445 fsums.DivMod2Tuple() class: True\n    test 1446 fsums.Fsum() class: True\n    test 1447 fsums.Fsum2Tuple() class: True\n    test 1448 fsums.ResidualError() class: True\n    test 1449 fsums.f2product() function: True\n    test 1450 fsums.fsum() function: True\n    test 1451 fsums.fsum1() function: True\n    test 1452 fsums.fsum1_() function: True\n    test 1453 fsums.fsum1f_() function: True\n    test 1454 fsums.fsum_() function: True\n    test 1455 fsums.fsumf_() function: True\n    test 1456 fsums.nonfiniterrors() function: True\n\n    testModule(pygeodesy.gars, 25.05.07)\n    test 1457 gars.GARSError() class: True\n    test 1458 gars.Garef() class: True\n\n    testModule(pygeodesy.geod3solve, 26.02.12)\n    test 1459 geod3solve.Geod3Solve8Tuple() class: True\n    test 1460 geod3solve.Geodesic3Error() class: True\n    test 1461 geod3solve.Geodesic3Solve() class: True\n    test 1462 geod3solve.GeodesicLine3Solve() class: True\n\n    testModule(pygeodesy.geodesici, 26.02.04)\n    test 1463 geodesici.Intersect7Tuple() class: True\n    test 1464 geodesici.Intersectool() class: True\n    test 1465 geodesici.Intersectool5Tuple() class: True\n    test 1466 geodesici.Intersector() class: True\n    test 1467 geodesici.Intersector5Tuple() class: True\n    test 1468 geodesici.Middle5Tuple() class: True\n    test 1469 geodesici.XDict() class: True\n\n    testModule(pygeodesy.geodesicw, 25.05.28)\n    test 1470 geodesicw.Geodesic() class: True\n    test 1471 geodesicw.GeodesicLine() class: True\n    test 1472 geodesicw.Geodesic_WGS84() function: True\n\n    testModule(pygeodesy.geodesicx, 25.12.23)\n    test 1473 geodesicx.GeodesicAreaExact() class (pygeodesy.geodesicx.gxarea): True\n    test 1474 geodesicx.GeodesicExact() class (pygeodesy.geodesicx.gx): True\n    test 1475 geodesicx.GeodesicLineExact() class (pygeodesy.geodesicx.gx): True\n    test 1476 geodesicx.PolygonArea() class (pygeodesy.geodesicx.gxarea): True\n    test 1477 geodesicx.gx module: True\n    test 1478 geodesicx.gxarea module: True\n    test 1479 geodesicx.gxbases module: True\n    test 1480 geodesicx.gxline module: True\n\n    testModule(pygeodesy.geodsolve, 25.12.31)\n    test 1481 geodsolve.GeodSolve12Tuple() class: True\n    test 1482 geodsolve.GeodesicLineSolve() class: True\n    test 1483 geodsolve.GeodesicSolve() class: True\n\n    testModule(pygeodesy.geohash, 25.09.16)\n    test 1484 geohash.Geohash() class: True\n    test 1485 geohash.GeohashError() class: True\n    test 1486 geohash.Geohashed() class: True\n    test 1487 geohash.Neighbors8Dict() class: True\n    test 1488 geohash.Resolutions2Tuple() class: True\n    test 1489 geohash.Sizes3Tuple() class: True\n\n    testModule(pygeodesy.geoids, 26.02.02)\n    test 1490 geoids.GeoidEGM96() class: True\n    test 1491 geoids.GeoidError() class: True\n    test 1492 geoids.GeoidG2012B() class: True\n    test 1493 geoids.GeoidHeight5Tuple() class: True\n    test 1494 geoids.GeoidKarney() class: True\n    test 1495 geoids.GeoidPGM() class: True\n    test 1496 geoids.PGMError() class: True\n    test 1497 geoids.egmGeoidHeights() function: True\n\n    testModule(pygeodesy.geodesicx.gx, 25.09.16)\n\n    testModule(pygeodesy.geodesicx.gxarea, 25.12.23)\n\n    testModule(pygeodesy.geodesicx.gxbases, 25.06.01)\n\n    testModule(pygeodesy.geodesicx.gxline, 25.09.09)\n\n    testModule(pygeodesy.hausdorff, 25.05.26)\n    test 1498 hausdorff.Hausdorff() class: True\n    test 1499 hausdorff.Hausdorff6Tuple() class: True\n    test 1500 hausdorff.HausdorffCosineLaw() class: True\n    test 1501 hausdorff.HausdorffDegrees() class: True\n    test 1502 hausdorff.HausdorffDistanceTo() class: True\n    test 1503 hausdorff.HausdorffEquirectangular() class: True\n    test 1504 hausdorff.HausdorffError() class: True\n    test 1505 hausdorff.HausdorffEuclidean() class: True\n    test 1506 hausdorff.HausdorffExact() class: True\n    test 1507 hausdorff.HausdorffFlatLocal() class: True\n    test 1508 hausdorff.HausdorffFlatPolar() class: True\n    test 1509 hausdorff.HausdorffHaversine() class: True\n    test 1510 hausdorff.HausdorffHubeny() class: True\n    test 1511 hausdorff.HausdorffKarney() class: True\n    test 1512 hausdorff.HausdorffRadians() class: True\n    test 1513 hausdorff.HausdorffThomas() class: True\n    test 1514 hausdorff.HausdorffVincentys() class: True\n    test 1515 hausdorff.hausdorff_() function: True\n    test 1516 hausdorff.randomrangenerator() function: True\n\n    testModule(pygeodesy.heights, 26.02.02)\n    test 1517 heights.HeightCubic() class: True\n    test 1518 heights.HeightError() class: True\n    test 1519 heights.HeightIDWcosineLaw() class: True\n    test 1520 heights.HeightIDWdistanceTo() class: True\n    test 1521 heights.HeightIDWequirectangular() class: True\n    test 1522 heights.HeightIDWeuclidean() class: True\n    test 1523 heights.HeightIDWexact() class: True\n    test 1524 heights.HeightIDWflatLocal() class: True\n    test 1525 heights.HeightIDWflatPolar() class: True\n    test 1526 heights.HeightIDWhaversine() class: True\n    test 1527 heights.HeightIDWhubeny() class: True\n    test 1528 heights.HeightIDWkarney() class: True\n    test 1529 heights.HeightIDWthomas() class: True\n    test 1530 heights.HeightIDWvincentys() class: True\n    test 1531 heights.HeightLSQBiSpline() class: True\n    test 1532 heights.HeightLinear() class: True\n    test 1533 heights.HeightSmoothBiSpline() class: True\n\n    testModule(pygeodesy.internals, 26.01.13)\n    test 1534 internals.machine() function: True\n    test 1535 internals.print_() function: True\n    test 1536 internals.printf() function: True\n    test 1537 internals.typename() function: True\n\n    testModule(pygeodesy.interns, 25.11.07)\n    test 1538 interns.NN str: True\n    test 1539 interns.Str_() class: True\n\n    testModule(pygeodesy.iters, 25.05.19)\n    test 1540 iters.LatLon2PsxyIter() class: True\n    test 1541 iters.PointsIter() class: True\n    test 1542 iters.isNumpy2() function: True\n    test 1543 iters.isPoints2() function: True\n    test 1544 iters.isTuple2() function: True\n    test 1545 iters.iterNumpy2() function: True\n    test 1546 iters.iterNumpy2over() function: True\n    test 1547 iters.points2() function: True\n\n    testModule(pygeodesy.karney, 25.12.23)\n    test 1548 karney.Area3Tuple() class: True\n    test 1549 karney.Caps class pygeodesy.karney.Caps: True\n    test 1550 karney.Direct9Tuple() class: True\n    test 1551 karney.GDict() class: True\n    test 1552 karney.Inverse10Tuple() class: True\n\n    testModule(pygeodesy.ktm, 25.08.31)\n    test 1553 ktm.KTMError() class: True\n    test 1554 ktm.KTransverseMercator() class: True\n\n    testModule(pygeodesy.latlonBase, 25.08.18)\n    test 1555 latlonBase.latlon2n_xyz() function: True\n    test 1556 latlonBase.philam2n_xyz() function: True\n\n    testModule(pygeodesy.lazily, 26.03.20)\n    test 1557 lazily.LazyAttributeError() class: True\n    test 1558 lazily.LazyImportError() class: True\n    test 1559 lazily.isLazy type NoneType: True\n\n    testModule(pygeodesy.lcc, 25.08.31)\n    test 1560 lcc.Conic() class: True\n    test 1561 lcc.Conics class pygeodesy.lcc.Conics: True\n    test 1562 lcc.LCCError() class: True\n    test 1563 lcc.Lcc() class: True\n    test 1564 lcc.toLcc() function: True\n\n    testModule(pygeodesy.ltp, 25.05.12)\n    test 1565 ltp.Attitude() class: True\n    test 1566 ltp.AttitudeError() class: True\n    test 1567 ltp.ChLV() class: True\n    test 1568 ltp.ChLVa() class: True\n    test 1569 ltp.ChLVe() class: True\n    test 1570 ltp.Frustum() class: True\n    test 1571 ltp.LocalCartesian() class: True\n    test 1572 ltp.LocalError() class: True\n    test 1573 ltp.Ltp() class: True\n    test 1574 ltp.tyr3d() function: True\n\n    testModule(pygeodesy.ltpTuples, 25.05.01)\n    test 1575 ltpTuples.Aer() class: True\n    test 1576 ltpTuples.Aer4Tuple() class: True\n    test 1577 ltpTuples.Attitude4Tuple() class: True\n    test 1578 ltpTuples.ChLV9Tuple() class: True\n    test 1579 ltpTuples.ChLVEN2Tuple() class: True\n    test 1580 ltpTuples.ChLVYX2Tuple() class: True\n    test 1581 ltpTuples.ChLVyx2Tuple() class: True\n    test 1582 ltpTuples.Enu() class: True\n    test 1583 ltpTuples.Enu4Tuple() class: True\n    test 1584 ltpTuples.Footprint5Tuple() class: True\n    test 1585 ltpTuples.Local9Tuple() class: True\n    test 1586 ltpTuples.Los() class: True\n    test 1587 ltpTuples.Ned() class: True\n    test 1588 ltpTuples.Ned4Tuple() class: True\n    test 1589 ltpTuples.Uvw() class: True\n    test 1590 ltpTuples.Uvw3Tuple() class: True\n    test 1591 ltpTuples.Xyz4Tuple() class: True\n    test 1592 ltpTuples.XyzLocal() class: True\n\n    testModule(pygeodesy.mgrs, 25.05.12)\n    test 1593 mgrs.Mgrs() class: True\n    test 1594 mgrs.Mgrs4Tuple() class: True\n    test 1595 mgrs.Mgrs6Tuple() class: True\n    test 1596 mgrs.parseMGRS() function: True\n    test 1597 mgrs.toMgrs() function: True\n\n    testModule(pygeodesy.named, 26.01.14)\n    test 1598 named.ADict() class: True\n    test 1599 named.callername() function: True\n    test 1600 named.classname() function: True\n    test 1601 named.classnaming() function: True\n    test 1602 named.modulename() function: True\n    test 1603 named.nameof() function: True\n    test 1604 named.notImplemented() function: True\n    test 1605 named.notOverloaded() function: True\n\n    testModule(pygeodesy.namedTuples, 26.03.12)\n    test 1606 namedTuples.Bearing2Tuple() class: True\n    test 1607 namedTuples.Bounds2Tuple() class: True\n    test 1608 namedTuples.Bounds4Tuple() class: True\n    test 1609 namedTuples.Circle4Tuple() class: True\n    test 1610 namedTuples.Destination2Tuple() class: True\n    test 1611 namedTuples.Destination3Tuple() class: True\n    test 1612 namedTuples.Distance2Tuple() class: True\n    test 1613 namedTuples.Distance3Tuple() class: True\n    test 1614 namedTuples.Distance4Tuple() class: True\n    test 1615 namedTuples.EasNor2Tuple() class: True\n    test 1616 namedTuples.EasNor3Tuple() class: True\n    test 1617 namedTuples.Ellipse5Tuple() class: True\n    test 1618 namedTuples.Forward4Tuple() class: True\n    test 1619 namedTuples.Intersection3Tuple() class: True\n    test 1620 namedTuples.LatLon2Tuple() class: True\n    test 1621 namedTuples.LatLon3Tuple() class: True\n    test 1622 namedTuples.LatLon4Tuple() class: True\n    test 1623 namedTuples.LatLonDatum3Tuple() class: True\n    test 1624 namedTuples.LatLonDatum5Tuple() class: True\n    test 1625 namedTuples.LatLonPrec3Tuple() class: True\n    test 1626 namedTuples.LatLonPrec5Tuple() class: True\n    test 1627 namedTuples.NearestOn2Tuple() class: True\n    test 1628 namedTuples.NearestOn3Tuple() class: True\n    test 1629 namedTuples.NearestOn6Tuple() class: True\n    test 1630 namedTuples.NearestOn8Tuple() class: True\n    test 1631 namedTuples.PhiLam2Tuple() class: True\n    test 1632 namedTuples.PhiLam3Tuple() class: True\n    test 1633 namedTuples.PhiLam4Tuple() class: True\n    test 1634 namedTuples.Point3Tuple() class: True\n    test 1635 namedTuples.Points2Tuple() class: True\n    test 1636 namedTuples.Reverse4Tuple() class: True\n    test 1637 namedTuples.Triangle7Tuple() class: True\n    test 1638 namedTuples.Triangle8Tuple() class: True\n    test 1639 namedTuples.Trilaterate5Tuple() class: True\n    test 1640 namedTuples.UtmUps2Tuple() class: True\n    test 1641 namedTuples.UtmUps5Tuple() class: True\n    test 1642 namedTuples.UtmUps8Tuple() class: True\n    test 1643 namedTuples.UtmUpsLatLon5Tuple() class: True\n    test 1644 namedTuples.Vector2Tuple() class: True\n    test 1645 namedTuples.Vector3Tuple() class: True\n    test 1646 namedTuples.Vector4Tuple() class: True\n\n    testModule(pygeodesy.nvectorBase, 25.08.18)\n    test 1647 nvectorBase.NorthPole class pygeodesy.nvectorBase._N_Vector: True\n    test 1648 nvectorBase.SouthPole class pygeodesy.nvectorBase._N_Vector: True\n    test 1649 nvectorBase.n_xyz2latlon() function: True\n    test 1650 nvectorBase.n_xyz2philam() function: True\n\n    testModule(pygeodesy.osgr, 25.05.12)\n    test 1651 osgr.OSGRError() class: True\n    test 1652 osgr.Osgr() class: True\n    test 1653 osgr.parseOSGR() function: True\n    test 1654 osgr.toOsgr() function: True\n\n    testModule(pygeodesy.points, 25.05.12)\n    test 1655 points.LatLon2psxy() class: True\n    test 1656 points.LatLon_() class: True\n    test 1657 points.Numpy2LatLon() class: True\n    test 1658 points.Shape2Tuple() class: True\n    test 1659 points.Tuple2LatLon() class: True\n    test 1660 points.areaOf() function: True\n    test 1661 points.boundsOf() function: True\n    test 1662 points.centroidOf() function: True\n    test 1663 points.fractional() function: True\n    test 1664 points.isclockwise() function: True\n    test 1665 points.isconvex() function: True\n    test 1666 points.isconvex_() function: True\n    test 1667 points.isenclosedBy() function: True\n    test 1668 points.ispolar() function: True\n    test 1669 points.luneOf() function: True\n    test 1670 points.nearestOn5() function: True\n    test 1671 points.perimeterOf() function: True\n    test 1672 points.quadOf() function: True\n\n    testModule(pygeodesy.props, 25.12.31)\n    test 1673 props.DeprecationWarnings class pygeodesy.props.DeprecationWarnings: True\n    test 1674 props.Property() class: True\n    test 1675 props.Property_RO() class: True\n    test 1676 props.deprecated_Property_RO() function: True\n    test 1677 props.deprecated_class() function: True\n    test 1678 props.deprecated_function() function: True\n    test 1679 props.deprecated_method() function: True\n    test 1680 props.deprecated_property_RO() function: True\n    test 1681 props.property_RO() class: True\n    test 1682 props.property_ROnce() class: True\n    test 1683 props.property_ROver() class: True\n    test 1684 props.property_doc_() function: True\n\n    testModule(pygeodesy.resections, 25.05.12)\n    test 1685 resections.Collins5Tuple() class: True\n    test 1686 resections.ResectionError() class: True\n    test 1687 resections.Survey3Tuple() class: True\n    test 1688 resections.Tienstra7Tuple() class: True\n    test 1689 resections.TriAngle5Tuple() class: True\n    test 1690 resections.TriSide2Tuple() class: True\n    test 1691 resections.TriSide4Tuple() class: True\n    test 1692 resections.cassini() function: True\n    test 1693 resections.collins5() function: True\n    test 1694 resections.pierlot() function: True\n    test 1695 resections.pierlotx() function: True\n    test 1696 resections.snellius3() function: True\n    test 1697 resections.tienstra7() function: True\n    test 1698 resections.triAngle() function: True\n    test 1699 resections.triAngle5() function: True\n    test 1700 resections.triArea() function: True\n    test 1701 resections.triSide() function: True\n    test 1702 resections.triSide2() function: True\n    test 1703 resections.triSide4() function: True\n    test 1704 resections.wildberger3() function: True\n\n    testModule(pygeodesy.rhumb, 25.12.06)\n    test 1705 rhumb.Rhumb() class (pygeodesy.rhumb.ekx): True\n    test 1706 rhumb.Rhumb8Tuple() class (pygeodesy.karney): True\n    test 1707 rhumb.RhumbAux() class (pygeodesy.rhumb.aux_): True\n    test 1708 rhumb.RhumbLine() class (pygeodesy.rhumb.ekx): True\n    test 1709 rhumb.RhumbLineAux() class (pygeodesy.rhumb.aux_): True\n    test 1710 rhumb.RhumbLineSolve() class (pygeodesy.rhumb.solve): True\n    test 1711 rhumb.RhumbSolve() class (pygeodesy.rhumb.solve): True\n    test 1712 rhumb.RhumbSolve7Tuple() class (pygeodesy.rhumb.solve): True\n\n    testModule(pygeodesy.simplify, 25.05.12)\n    test 1713 simplify.simplify1() function: True\n    test 1714 simplify.simplifyRDP() function: True\n    test 1715 simplify.simplifyRW() function: True\n    test 1716 simplify.simplifyVW() function: True\n\n    testModule(pygeodesy.solveBase, 25.12.06)\n\n    testModule(pygeodesy.sphericalBase, 25.05.26)\n\n    testModule(pygeodesy.sphericalNvector, 25.05.27)\n    test 1717 sphericalNvector.Cartesian() class: True\n    test 1718 sphericalNvector.LatLon() class: True\n    test 1719 sphericalNvector.Nvector() class: True\n    test 1720 sphericalNvector.areaOf() function: True\n    test 1721 sphericalNvector.intersecant2() function: True\n    test 1722 sphericalNvector.intersection() function: True\n    test 1723 sphericalNvector.intersection2() function: True\n    test 1724 sphericalNvector.ispolar() function (pygeodesy.points): True\n    test 1725 sphericalNvector.meanOf() function: True\n    test 1726 sphericalNvector.nearestOn2() function: True\n    test 1727 sphericalNvector.nearestOn3() function: True\n    test 1728 sphericalNvector.perimeterOf() function: True\n    test 1729 sphericalNvector.sumOf() function: True\n    test 1730 sphericalNvector.triangulate() function: True\n    test 1731 sphericalNvector.trilaterate() function: True\n\n    testModule(pygeodesy.sphericalTrigonometry, 25.08.31)\n    test 1732 sphericalTrigonometry.Cartesian() class: True\n    test 1733 sphericalTrigonometry.LatLon() class: True\n    test 1734 sphericalTrigonometry.areaOf() function: True\n    test 1735 sphericalTrigonometry.intersecant2() function: True\n    test 1736 sphericalTrigonometry.intersection() function: True\n    test 1737 sphericalTrigonometry.intersections2() function: True\n    test 1738 sphericalTrigonometry.isPoleEnclosedBy() function: True\n    test 1739 sphericalTrigonometry.ispolar() function (pygeodesy.points): True\n    test 1740 sphericalTrigonometry.meanOf() function: True\n    test 1741 sphericalTrigonometry.nearestOn2() function: True\n    test 1742 sphericalTrigonometry.nearestOn3() function: True\n    test 1743 sphericalTrigonometry.perimeterOf() function: True\n    test 1744 sphericalTrigonometry.sumOf() function (pygeodesy.vector3d): True\n    test 1745 sphericalTrigonometry.triangle7() function: True\n    test 1746 sphericalTrigonometry.triangle8_() function: True\n\n    testModule(pygeodesy.streprs, 25.11.24)\n    test 1747 streprs.anstr() function: True\n    test 1748 streprs.attrs() function: True\n    test 1749 streprs.enstr2() function: True\n    test 1750 streprs.fstr() function: True\n    test 1751 streprs.fstrzs() function: True\n    test 1752 streprs.hstr() function: True\n    test 1753 streprs.instr() function: True\n    test 1754 streprs.lrstrip() function: True\n    test 1755 streprs.pairs() function: True\n    test 1756 streprs.reprs() function: True\n    test 1757 streprs.strs() function: True\n    test 1758 streprs.unstr() function: True\n\n    testModule(pygeodesy.trf, 25.09.11)\n    test 1759 trf.RefFrame() class: True\n    test 1760 trf.RefFrames class pygeodesy.trf.RefFrames: True\n    test 1761 trf.TRFXform() class: True\n    test 1762 trf.TRFXform7Tuple() class: True\n    test 1763 trf.TransformXform() class: True\n    test 1764 trf.date2epoch() function: True\n    test 1765 trf.epoch2date() function: True\n    test 1766 trf.trfTransform0() function: True\n    test 1767 trf.trfTransforms() function: True\n    test 1768 trf.trfXform() function: True\n\n    testModule(pygeodesy.triaxials, 26.02.06)\n    test 1769 triaxials.BetOmgAlp5Tuple() class (pygeodesy.triaxials.triaxial3): True\n    test 1770 triaxials.BetOmgGam5Tuple() class (pygeodesy.triaxials.conformal3): True\n    test 1771 triaxials.BetaOmega2Tuple() class (pygeodesy.triaxials.triaxial5): True\n    test 1772 triaxials.BetaOmega3Tuple() class (pygeodesy.triaxials.triaxial5): True\n    test 1773 triaxials.Cartesian5Tuple() class (pygeodesy.triaxials.triaxial3): True\n    test 1774 triaxials.Conformal() class (pygeodesy.triaxials.triaxial5): True\n    test 1775 triaxials.Conformal2Tuple() class (pygeodesy.triaxials.triaxial5): True\n    test 1776 triaxials.Conformal3() class (pygeodesy.triaxials.conformal3): True\n    test 1777 triaxials.Conformal3B() class (pygeodesy.triaxials.conformal3): True\n    test 1778 triaxials.Conformal3Sphere() class (pygeodesy.triaxials.conformal3): True\n    test 1779 triaxials.Conformal5Tuple() class (pygeodesy.triaxials.bases): True\n    test 1780 triaxials.ConformalSphere() class (pygeodesy.triaxials.triaxial5): True\n    test 1781 triaxials.LLK class pygeodesy.triaxials.bases.LLK (pygeodesy.triaxials.bases): True\n    test 1782 triaxials.PhiLamZet5Tuple() class (pygeodesy.triaxials.triaxial3): True\n    test 1783 triaxials.Triaxial() class (pygeodesy.triaxials.triaxial5): True\n    test 1784 triaxials.Triaxial3() class (pygeodesy.triaxials.triaxial3): True\n    test 1785 triaxials.Triaxial3B() class (pygeodesy.triaxials.triaxial3): True\n    test 1786 triaxials.Triaxial3s class pygeodesy.triaxials.triaxial3.Triaxial3s (pygeodesy.triaxials.triaxial3): True\n    test 1787 triaxials.TriaxialError() class (pygeodesy.triaxials.bases): True\n    test 1788 triaxials.Triaxial_() class (pygeodesy.triaxials.triaxial5): True\n    test 1789 triaxials.Triaxials class pygeodesy.triaxials.triaxial5.Triaxials (pygeodesy.triaxials.triaxial5): True\n    test 1790 triaxials.hartzell4() function (pygeodesy.triaxials.triaxial5): True\n    test 1791 triaxials.height4() function (pygeodesy.triaxials.triaxial5): True\n\n    testModule(pygeodesy.units, 26.03.12)\n    test 1792 units.Azimuth() class: True\n    test 1793 units.Band() class: True\n    test 1794 units.Bearing() class: True\n    test 1795 units.Bearing_() class: True\n    test 1796 units.Bool() class: True\n    test 1797 units.Degrees() class: True\n    test 1798 units.Degrees2() class: True\n    test 1799 units.Degrees_() class: True\n    test 1800 units.Distance() class: True\n    test 1801 units.Distance_() class: True\n    test 1802 units.Easting() class: True\n    test 1803 units.Epoch() class: True\n    test 1804 units.FIx() class: True\n    test 1805 units.Feet() class: True\n    test 1806 units.Float_() class: True\n    test 1807 units.Height() class: True\n    test 1808 units.HeightX() class: True\n    test 1809 units.Height_() class: True\n    test 1810 units.Int_() class: True\n    test 1811 units.Lam() class: True\n    test 1812 units.Lamd() class: True\n    test 1813 units.Lat() class: True\n    test 1814 units.Lat_() class: True\n    test 1815 units.Lon() class: True\n    test 1816 units.Lon_() class: True\n    test 1817 units.Meter() class: True\n    test 1818 units.Meter2() class: True\n    test 1819 units.Meter3() class: True\n    test 1820 units.Meter_() class: True\n    test 1821 units.Northing() class: True\n    test 1822 units.Number_() class: True\n    test 1823 units.Phi() class: True\n    test 1824 units.Phid() class: True\n    test 1825 units.Precision_() class: True\n    test 1826 units.Radians() class: True\n    test 1827 units.Radians2() class: True\n    test 1828 units.Radians_() class: True\n    test 1829 units.Radius_() class: True\n    test 1830 units.Scalar() class: True\n    test 1831 units.Scalar_() class: True\n    test 1832 units.Zone() class: True\n\n    testModule(pygeodesy.unitsBase, 26.02.22)\n    test 1833 unitsBase.Float() class: True\n    test 1834 unitsBase.Int() class: True\n    test 1835 unitsBase.Radius() class: True\n    test 1836 unitsBase.Str() class: True\n\n    testModule(pygeodesy.ups, 25.04.14)\n    test 1837 ups.UPSError() class: True\n    test 1838 ups.Ups() class: True\n    test 1839 ups.parseUPS5() function: True\n    test 1840 ups.toUps8() function: True\n    test 1841 ups.upsZoneBand5() function: True\n\n    testModule(pygeodesy.utily, 26.03.20)\n    test 1842 utily.NM2m() function: True\n    test 1843 utily.SM2m() function: True\n    test 1844 utily.SinCos2() function: True\n    test 1845 utily.acos1() function: True\n    test 1846 utily.acre2ha() function: True\n    test 1847 utily.acre2m2() function: True\n    test 1848 utily.agdf() function: True\n    test 1849 utily.asin1() function: True\n    test 1850 utily.atan1() function: True\n    test 1851 utily.atan1d() function: True\n    test 1852 utily.atan2 type builtin_function_or_method (math): True\n    test 1853 utily.atan2b() function: True\n    test 1854 utily.atan2d() function: True\n    test 1855 utily.atan2p() function: True\n    test 1856 utily.chain2m() function: True\n    test 1857 utily.circle4() function: True\n    test 1858 utily.cot() function: True\n    test 1859 utily.cot_() function: True\n    test 1860 utily.cotd() function: True\n    test 1861 utily.cotd_() function: True\n    test 1862 utily.degrees type builtin_function_or_method (math): True\n    test 1863 utily.degrees180() function: True\n    test 1864 utily.degrees2grades() function: True\n    test 1865 utily.degrees2m() function: True\n    test 1866 utily.degrees360() function: True\n    test 1867 utily.degrees90() function: True\n    test 1868 utily.fathom2m() function: True\n    test 1869 utily.ft2m() function: True\n    test 1870 utily.furlong2m() function: True\n    test 1871 utily.gdf() function: True\n    test 1872 utily.grades() function: True\n    test 1873 utily.grades2degrees() function: True\n    test 1874 utily.grades2radians() function: True\n    test 1875 utily.grades400() function: True\n    test 1876 utily.ha2acre() function: True\n    test 1877 utily.ha2m2() function: True\n    test 1878 utily.hav() function: True\n    test 1879 utily.km2m() function: True\n    test 1880 utily.m2NM() function: True\n    test 1881 utily.m2SM() function: True\n    test 1882 utily.m2acre() function: True\n    test 1883 utily.m2chain() function: True\n    test 1884 utily.m2degrees() function: True\n    test 1885 utily.m2fathom() function: True\n    test 1886 utily.m2ft() function: True\n    test 1887 utily.m2furlong() function: True\n    test 1888 utily.m2ha() function: True\n    test 1889 utily.m2km() function: True\n    test 1890 utily.m2radians() function: True\n    test 1891 utily.m2toise() function: True\n    test 1892 utily.m2yard() function: True\n    test 1893 utily.radians type builtin_function_or_method (math): True\n    test 1894 utily.radians2m() function: True\n    test 1895 utily.radiansPI() function: True\n    test 1896 utily.radiansPI2() function: True\n    test 1897 utily.radiansPI_2() function: True\n    test 1898 utily.sincos2() function: True\n    test 1899 utily.sincos2_() function: True\n    test 1900 utily.sincos2d() function: True\n    test 1901 utily.sincos2d_() function: True\n    test 1902 utily.sincostan3() function: True\n    test 1903 utily.sincostan3d() function: True\n    test 1904 utily.tan() function: True\n    test 1905 utily.tanPI_2_2() function: True\n    test 1906 utily.tan_() function: True\n    test 1907 utily.tan_2() function: True\n    test 1908 utily.tand() function: True\n    test 1909 utily.tand_() function: True\n    test 1910 utily.toise2m() function: True\n    test 1911 utily.truncate() function: True\n    test 1912 utily.unroll180() function: True\n    test 1913 utily.unrollPI() function: True\n    test 1914 utily.wrap180() function: True\n    test 1915 utily.wrap360() function: True\n    test 1916 utily.wrap90() function: True\n    test 1917 utily.wrapPI() function: True\n    test 1918 utily.wrapPI2() function: True\n    test 1919 utily.wrapPI_2() function: True\n    test 1920 utily.wrap_normal() function: True\n    test 1921 utily.yard2m() function: True\n\n    testModule(pygeodesy.utm, 24.11.26)\n    test 1922 utm.UTMError() class: True\n    test 1923 utm.Utm() class: True\n    test 1924 utm.parseUTM5() function: True\n    test 1925 utm.toUtm8() function: True\n    test 1926 utm.utmZoneBand5() function: True\n\n    testModule(pygeodesy.utmups, 25.04.14)\n    test 1927 utmups.UTMUPSError() class: True\n    test 1928 utmups.UtmUps() function: True\n    test 1929 utmups.parseUTMUPS5() function: True\n    test 1930 utmups.toUtmUps8() function: True\n    test 1931 utmups.utmupsValidate() function: True\n    test 1932 utmups.utmupsValidateOK() function: True\n    test 1933 utmups.utmupsZoneBand5() function: True\n\n    testModule(pygeodesy.utmupsBase, 25.05.12)\n\n    testModule(pygeodesy.vector2d, 26.02.27)\n    test 1934 vector2d.Circin6Tuple() class: True\n    test 1935 vector2d.Circum3Tuple() class: True\n    test 1936 vector2d.Circum4Tuple() class: True\n    test 1937 vector2d.Meeus2Tuple() class: True\n    test 1938 vector2d.Radii11Tuple() class: True\n    test 1939 vector2d.Soddy4Tuple() class: True\n    test 1940 vector2d.Triaxum5Tuple() class: True\n    test 1941 vector2d.circin6() function: True\n    test 1942 vector2d.circum3() function: True\n    test 1943 vector2d.circum4() function: True\n    test 1944 vector2d.circum4_() function: True\n    test 1945 vector2d.meeus2() function: True\n    test 1946 vector2d.radii11() function: True\n    test 1947 vector2d.soddy4() function: True\n    test 1948 vector2d.triaxum5() function: True\n    test 1949 vector2d.trilaterate2d2() function: True\n\n    testModule(pygeodesy.vector3d, 25.05.07)\n    test 1950 vector3d.Vector3d() class: True\n    test 1951 vector3d.intersection3d3() function: True\n    test 1952 vector3d.iscolinearWith() function: True\n    test 1953 vector3d.nearestOn() function: True\n    test 1954 vector3d.nearestOn6() function: True\n    test 1955 vector3d.parse3d() function: True\n    test 1956 vector3d.trilaterate3d2() function: True\n\n    testModule(pygeodesy.vector3dBase, 25.10.25)\n\n    testModule(pygeodesy.webmercator, 25.05.12)\n    test 1957 webmercator.EasNorRadius3Tuple() class: True\n    test 1958 webmercator.WebMercatorError() class: True\n    test 1959 webmercator.Wm() class: True\n    test 1960 webmercator.parseWM() function: True\n    test 1961 webmercator.toWm() function: True\n\n    testModule(pygeodesy.wgrs, 25.04.14)\n    test 1962 wgrs.Georef() class: True\n    test 1963 wgrs.WGRSError() class: True\n\n    testPublic(pygeodesy, 26.03.26)\n    test 1964 freduce type builtin_function_or_method: True\n    test 1965 iskeyword type builtin_function_or_method: True\n\n    all 1965 testModules.py tests passed (pygeodesy 26.3.26 Python 2.7.18 64bit arm64_x86_64 geographiclib 1.50 numpy 1.16.6 scipy 1.2.2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 -W  default) 9.832 ms\nrunning /Library/Framewo....ython -W default ~/PyGeodesy/test/testNamed.py\n\n    testing testNamed.py 25.12.06\n\n    testing _Named() (pygeodesy.named, 26.01.14)\n    test 1 _Named: _Named\n    test 2 _Named: True\n    test 3 _Named: ''\n    test 4 Test: Test\n    test 5 _Named 'Test': _Named 'Test'\n    test 6 named._Named 'Test': named._Named 'Test'\n    test 7 pygeodesy.named._Named 'Test': pygeodesy.named._Named 'Test'\n    test 8 Test: _Named.name = 'X' (was 'Test'): use _Named.rename('X')\n    test 9 Test: _Named 'Test'\n    test 10 _Named 'Test': Test\n    test 11 _Named 'Test': Test\n    test 12 _Named 'Test': _Named 'Test'\n    test 13 _Named 'Test': <_Named 'Test' at 0x7fc96022c3d0>  FAILED, KNOWN, expected _Named 'Test'\n    test 14 _Named 'Test': ''\n\n    testing _NamedBase() (pygeodesy.named, 26.01.14)\n    test 15 _NamedBase: _NamedBase\n    test 16 _NamedBase: True\n    test 17 _NamedBase: ''\n    test 18 Test: Test\n    test 19 _NamedBase 'Test': _NamedBase 'Test'\n    test 20 named._NamedBase 'Test': named._NamedBase 'Test'\n    test 21 pygeodesy.named._NamedBase 'Test': pygeodesy.named._NamedBase 'Test'\n    test 22 Test: _NamedBase.name = 'X' (was 'Test'): use _NamedBase.rename('X')\n    test 23 Test: named._NamedBase.toStr(), MRO(named._Named): not overloaded\n    test 24 _NamedBase 'Test': Test\n    test 25 _NamedBase 'Test': Test\n    test 26 _NamedBase 'Test': named._NamedBase.toStr(), MRO(named._Named): not overloaded\n    test 27 _NamedBase 'Test': named._NamedBase.toStr(), MRO(named._Named): not overloaded\n    test 28 _NamedBase 'Test': ''\n\n    testing _NamedDict() (pygeodesy.named, 26.01.14)\n    test 29 _NamedDict: _NamedDict\n    test 30 _NamedDict: True\n    test 31 _NamedDict: ''\n    test 32 Test: Test\n    test 33 _NamedDict 'Test': _NamedDict 'Test'\n    test 34 named._NamedDict 'Test': named._NamedDict 'Test'\n    test 35 pygeodesy.named._NamedDict 'Test': pygeodesy.named._NamedDict 'Test'\n    test 36 Test: _NamedDict.name = 'X' (was 'Test'): use _NamedDict.rename('X')\n    test 37 Test: {}\n    test 38 _NamedDict 'Test': Test\n    test 39 _NamedDict 'Test': Test\n    test 40 _NamedDict 'Test': {}\n    test 41 _NamedDict 'Test': Test()  FAILED, KNOWN, expected {}\n    test 42 _NamedDict: ''\n\n    testing _NamedEnum(<class 'pygeodesy.datums.Datum'>,) (pygeodesy.named, 26.01.14)\n    test 43 Datums: _NamedEnum\n    test 44 Datums: True\n    test 45 Datums: 'Datums'  FAILED, KNOWN, expected ''\n    test 46 Test: Test\n    test 47 _NamedEnum 'Test': _NamedEnum 'Test'\n    test 48 named._NamedEnum 'Test': named._NamedEnum 'Test'\n    test 49 pygeodesy.named._NamedEnum 'Test': pygeodesy.named._NamedEnum 'Test'\n    test 50 Test: _NamedEnum.name = 'X' (was 'Test'): use _NamedEnum.rename('X')\n    test 51 Test: Test.\n    test 52 _NamedEnum 'Test': Test\n    test 53 _NamedEnum 'Test': Test\n    test 54 _NamedEnum 'Test': Test.\n    test 55 _NamedEnum 'Test':   FAILED, KNOWN, expected Test.\n    test 56 _NamedEnum: ''\n\n    testing _NamedEnumItem() (pygeodesy.named, 26.01.14)\n    test 57 _NamedEnumItem: _NamedEnumItem\n    test 58 _NamedEnumItem: True\n    test 59 _NamedEnumItem: ''\n    test 60 Test: Test\n    test 61 _NamedEnumItem 'Test': _NamedEnumItem 'Test'\n    test 62 named._NamedEnumItem 'Test': named._NamedEnumItem 'Test'\n    test 63 pygeodesy.named._NamedEnumItem 'Test': pygeodesy.named._NamedEnumItem 'Test'\n    test 64 _NamedEnumItem 'Test': Test\n    test 65 _NamedEnumItem 'Test': Test\n    test 66 _NamedEnumItem 'Test': named._NamedEnumItem.toStr(), MRO(named._NamedBase, named._Named): not overloaded\n    test 67 _NamedEnumItem 'Test': named._NamedEnumItem.toStr(), MRO(named._NamedBase, named._Named): not overloaded\n    test 68 _NamedEnumItem 'Test': ''\n\n    testing LatLon2Tuple(0, 0) (pygeodesy.named, 26.01.14)\n    test 69 LatLon2Tuple: LatLon2Tuple\n    test 70 LatLon2Tuple: True\n    test 71 LatLon2Tuple: ''\n    test 72 Test: Test\n    test 73 LatLon2Tuple 'Test': LatLon2Tuple 'Test'\n    test 74 namedTuples.LatLon2Tuple 'Test': namedTuples.LatLon2Tuple 'Test'\n    test 75 pygeodesy.namedTuples.LatLon2Tuple 'Test': pygeodesy.namedTuples.LatLon2Tuple 'Test'\n    test 76 Test: LatLon2Tuple.name = 'X' (was 'Test'): use LatLon2Tuple.rename('X')\n    test 77 Test: (0, 0)\n    test 78 LatLon2Tuple 'Test': Test\n    test 79 LatLon2Tuple 'Test': Test\n    test 80 LatLon2Tuple 'Test': (0, 0)\n    test 81 LatLon2Tuple 'Test': Test(lat=0, lon=0)  FAILED, KNOWN, expected (0, 0)\n    test 82 LatLon2Tuple 'Test': ''\n\n    testing NamedDicts (pygeodesy.named, 26.01.14)\n    test 83 Neighbors8Dict: Neighbors8Dict\n    test 84 Neighbors8Dict: 8-Dict C{(N, NE, E, SE, S, SW, W, NW)}\n    test 85 Neighbors8Dict: 8\n\n    testing NamedTuples (pygeodesy.namedTuples, 26.03.12)\n    test 86 Albers7Tuple: Albers7Tuple\n    test 87 Albers7Tuple: 7-Tuple C{(x, y, lat, lon, gamma, scale, datum)}\n    test 88 Albers7Tuple: 7\n    test 89 Azimuthal7Tuple: Azimuthal7Tuple\n    test 90 Azimuthal7Tuple: 7-Tuple C{(x, y, lat, lon, azimuth, scale, datum)}\n    test 91 Azimuthal7Tuple: 7\n    test 92 RadiusThetaPhi3Tuple: RadiusThetaPhi3Tuple\n    test 93 RadiusThetaPhi3Tuple: 3-Tuple C{(r, theta, phi)}\n    test 94 RadiusThetaPhi3Tuple: 3\n    test 95 ClipCS4Tuple: ClipCS4Tuple\n    test 96 ClipCS4Tuple: 4-Tuple C{(start, end, i, j)}\n    test 97 ClipCS4Tuple: 4\n    test 98 ClipFHP4Tuple: ClipFHP4Tuple\n    test 99 ClipFHP4Tuple: 4-Tuple C{(lat, lon, height, clipid)}\n    test 100 ClipFHP4Tuple: 4\n    test 101 ClipGH4Tuple: ClipGH4Tuple\n    test 102 ClipGH4Tuple: 4-Tuple C{(lat, lon, height, clipid)}\n    test 103 ClipGH4Tuple: 4\n    test 104 ClipLB6Tuple: ClipLB6Tuple\n    test 105 ClipLB6Tuple: 6-Tuple C{(start, end, i, fi, fj, j)}\n    test 106 ClipLB6Tuple: 6\n    test 107 ClipSH3Tuple: ClipSH3Tuple\n    test 108 ClipSH3Tuple: 3-Tuple C{(start, end, original)}\n    test 109 ClipSH3Tuple: 3\n    test 110 EasNorAziRk4Tuple: EasNorAziRk4Tuple\n    test 111 EasNorAziRk4Tuple: 4-Tuple C{(easting, northing, azimuth, reciprocal)}\n    test 112 EasNorAziRk4Tuple: 4\n    test 113 EasNorAziRkEqu6Tuple: EasNorAziRkEqu6Tuple\n    test 114 EasNorAziRkEqu6Tuple: 6-Tuple C{(easting, northing, azimuth, reciprocal, equatorarc, equatorazimuth)}\n    test 115 EasNorAziRkEqu6Tuple: 6\n    test 116 LatLonAziRk4Tuple: LatLonAziRk4Tuple\n    test 117 LatLonAziRk4Tuple: 4-Tuple C{(lat, lon, azimuth, reciprocal)}\n    test 118 LatLonAziRk4Tuple: 4\n    test 119 Ecef9Tuple: Ecef9Tuple\n    test 120 Ecef9Tuple: 9-Tuple C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 121 Ecef9Tuple: 9\n    test 122 Elevation2Tuple: Elevation2Tuple\n    test 123 Elevation2Tuple: 2-Tuple C{(elevation, data_source)}\n    test 124 Elevation2Tuple: 2\n    test 125 GeoidHeight2Tuple: GeoidHeight2Tuple\n    test 126 GeoidHeight2Tuple: 2-Tuple C{(height, model_name)}\n    test 127 GeoidHeight2Tuple: 2\n    test 128 Curvature2Tuple: Curvature2Tuple\n    test 129 Curvature2Tuple: 2-Tuple C{(meridional, prime_vertical)}\n    test 130 Curvature2Tuple: 2\n    test 131 a_f2Tuple: a_f2Tuple\n    test 132 a_f2Tuple: 2-Tuple C{(a, f)}\n    test 133 a_f2Tuple: 2\n    test 134 Elliptic3Tuple: Elliptic3Tuple\n    test 135 Elliptic3Tuple: 3-Tuple C{(sn, cn, dn)}\n    test 136 Elliptic3Tuple: 3\n    test 137 Radical2Tuple: Radical2Tuple\n    test 138 Radical2Tuple: 2-Tuple C{(ratio, xline)}\n    test 139 Radical2Tuple: 2\n    test 140 Frechet6Tuple: Frechet6Tuple\n    test 141 Frechet6Tuple: 6-Tuple C{(fd, fi1, fi2, r, n, units)}\n    test 142 Frechet6Tuple: 6\n    test 143 DivMod2Tuple: DivMod2Tuple\n    test 144 DivMod2Tuple: 2-Tuple C{(div, mod)}\n    test 145 DivMod2Tuple: 2\n    test 146 Fsum2Tuple: Fsum2Tuple\n    test 147 Fsum2Tuple: 2-Tuple C{(fsum, residual)}\n    test 148 Fsum2Tuple: 2\n    test 149 Geod3Solve8Tuple: Geod3Solve8Tuple\n    test 150 Geod3Solve8Tuple: 8-Tuple C{(bet1, omg1, alp1, bet2, omg2, alp2, s12, a12)}\n    test 151 Geod3Solve8Tuple: 8\n    test 152 Intersect7Tuple: Intersect7Tuple\n    test 153 Intersect7Tuple: 7-Tuple C{(A, B, sAB, aAB, c, kA, kB)}\n    test 154 Intersect7Tuple: 7\n    test 155 Intersectool5Tuple: Intersectool5Tuple\n    test 156 Intersectool5Tuple: 5-Tuple C{(A, B, sAB, aAB, c)}\n    test 157 Intersectool5Tuple: 5\n    test 158 Intersector5Tuple: Intersector5Tuple\n    test 159 Intersector5Tuple: 5-Tuple C{(A, B, sAB, aAB, c)}\n    test 160 Intersector5Tuple: 5\n    test 161 Middle5Tuple: Middle5Tuple\n    test 162 Middle5Tuple: 5-Tuple C{(A, B, sMM, aMM, c)}\n    test 163 Middle5Tuple: 5\n    test 164 GeodSolve12Tuple: GeodSolve12Tuple\n    test 165 GeodSolve12Tuple: 12-Tuple C{(lat1, lon1, azi1, lat2, lon2, azi2, s12, a12, m12, M12, M21, S12)}\n    test 166 GeodSolve12Tuple: 12\n    test 167 Resolutions2Tuple: Resolutions2Tuple\n    test 168 Resolutions2Tuple: 2-Tuple C{(res1, res2)}\n    test 169 Resolutions2Tuple: 2\n    test 170 Sizes3Tuple: Sizes3Tuple\n    test 171 Sizes3Tuple: 3-Tuple C{(height, width, radius)}\n    test 172 Sizes3Tuple: 3\n    test 173 GeoidHeight5Tuple: GeoidHeight5Tuple\n    test 174 GeoidHeight5Tuple: 5-Tuple C{(lat, lon, egm84, egm96, egm2008)}\n    test 175 GeoidHeight5Tuple: 5\n    test 176 Hausdorff6Tuple: Hausdorff6Tuple\n    test 177 Hausdorff6Tuple: 6-Tuple C{(hd, i, j, mn, md, units)}\n    test 178 Hausdorff6Tuple: 6\n    test 179 Area3Tuple: Area3Tuple\n    test 180 Area3Tuple: 3-Tuple C{(number, perimeter, area)}\n    test 181 Area3Tuple: 3\n    test 182 Direct9Tuple: Direct9Tuple\n    test 183 Direct9Tuple: 9-Tuple C{(a12, lat2, lon2, azi2, s12, m12, M12, M21, S12)}\n    test 184 Direct9Tuple: 9\n    test 185 Inverse10Tuple: Inverse10Tuple\n    test 186 Inverse10Tuple: 10-Tuple C{(a12, s12, salp1, calp1, salp2, calp2, m12, M12, M21, S12)}\n    test 187 Inverse10Tuple: 10\n    test 188 Rhumb8Tuple: Rhumb8Tuple\n    test 189 Rhumb8Tuple: 8-Tuple C{(lat1, lon1, lat2, lon2, azi12, s12, S12, a12)}\n    test 190 Rhumb8Tuple: 8\n    test 191 Aer4Tuple: Aer4Tuple\n    test 192 Aer4Tuple: 4-Tuple C{(azimuth, elevation, slantrange, ltp)}\n    test 193 Aer4Tuple: 4\n    test 194 Attitude4Tuple: Attitude4Tuple\n    test 195 Attitude4Tuple: 4-Tuple C{(alt, tilt, yaw, roll)}\n    test 196 Attitude4Tuple: 4\n    test 197 ChLV9Tuple: ChLV9Tuple\n    test 198 ChLV9Tuple: 9-Tuple C{(Y, X, h_, lat, lon, height, ltp, ecef, M)}\n    test 199 ChLV9Tuple: 9\n    test 200 ChLVEN2Tuple: ChLVEN2Tuple\n    test 201 ChLVEN2Tuple: 2-Tuple C{(E_LV95, N_LV95)}\n    test 202 ChLVEN2Tuple: 2\n    test 203 ChLVYX2Tuple: ChLVYX2Tuple\n    test 204 ChLVYX2Tuple: 2-Tuple C{(Y, X)}\n    test 205 ChLVYX2Tuple: 2\n    test 206 ChLVyx2Tuple: ChLVyx2Tuple\n    test 207 ChLVyx2Tuple: 2-Tuple C{(y_LV03, x_LV03)}\n    test 208 ChLVyx2Tuple: 2\n    test 209 Enu4Tuple: Enu4Tuple\n    test 210 Enu4Tuple: 4-Tuple C{(east, north, up, ltp)}\n    test 211 Enu4Tuple: 4\n    test 212 Footprint5Tuple: Footprint5Tuple\n    test 213 Footprint5Tuple: 5-Tuple C{(center, upperleft, upperight, loweright, lowerleft)}\n    test 214 Footprint5Tuple: 5\n    test 215 Local9Tuple: Local9Tuple\n    test 216 Local9Tuple: 9-Tuple C{(x, y, z, lat, lon, height, ltp, ecef, M)}\n    test 217 Local9Tuple: 9\n    test 218 Ned4Tuple: Ned4Tuple\n    test 219 Ned4Tuple: 4-Tuple C{(north, east, down, ltp)}\n    test 220 Ned4Tuple: 4\n    test 221 Uvw3Tuple: Uvw3Tuple\n    test 222 Uvw3Tuple: 3-Tuple C{(u, v, w)}\n    test 223 Uvw3Tuple: 3\n    test 224 Xyz4Tuple: Xyz4Tuple\n    test 225 Xyz4Tuple: 4-Tuple C{(x, y, z, ltp)}\n    test 226 Xyz4Tuple: 4\n    test 227 Mgrs4Tuple: Mgrs4Tuple\n    test 228 Mgrs4Tuple: 4-Tuple C{(zone, EN, easting, northing)}\n    test 229 Mgrs4Tuple: 4\n    test 230 Mgrs6Tuple: Mgrs6Tuple\n    test 231 Mgrs6Tuple: 6-Tuple C{(zone, EN, easting, northing, band, datum)}\n    test 232 Mgrs6Tuple: 6\n    test 233 Bearing2Tuple: Bearing2Tuple\n    test 234 Bearing2Tuple: 2-Tuple C{(initial, final)}\n    test 235 Bearing2Tuple: 2\n    test 236 Bounds2Tuple: Bounds2Tuple\n    test 237 Bounds2Tuple: 2-Tuple C{(latlonSW, latlonNE)}\n    test 238 Bounds2Tuple: 2\n    test 239 Bounds4Tuple: Bounds4Tuple\n    test 240 Bounds4Tuple: 4-Tuple C{(latS, lonW, latN, lonE)}\n    test 241 Bounds4Tuple: 4\n    test 242 Circle4Tuple: Circle4Tuple\n    test 243 Circle4Tuple: 4-Tuple C{(radius, height, lat, beta)}\n    test 244 Circle4Tuple: 4\n    test 245 Destination2Tuple: Destination2Tuple\n    test 246 Destination2Tuple: 2-Tuple C{(destination, final)}\n    test 247 Destination2Tuple: 2\n    test 248 Destination3Tuple: Destination3Tuple\n    test 249 Destination3Tuple: 3-Tuple C{(lat, lon, final)}\n    test 250 Destination3Tuple: 3\n    test 251 Distance2Tuple: Distance2Tuple\n    test 252 Distance2Tuple: 2-Tuple C{(distance, initial)}\n    test 253 Distance2Tuple: 2\n    test 254 Distance3Tuple: Distance3Tuple\n    test 255 Distance3Tuple: 3-Tuple C{(distance, initial, final)}\n    test 256 Distance3Tuple: 3\n    test 257 Distance4Tuple: Distance4Tuple\n    test 258 Distance4Tuple: 4-Tuple C{(distance2, delta_lat, delta_lon, unroll_lon2)}\n    test 259 Distance4Tuple: 4\n    test 260 EasNor2Tuple: EasNor2Tuple\n    test 261 EasNor2Tuple: 2-Tuple C{(easting, northing)}\n    test 262 EasNor2Tuple: 2\n    test 263 EasNor3Tuple: EasNor3Tuple\n    test 264 EasNor3Tuple: 3-Tuple C{(easting, northing, height)}\n    test 265 EasNor3Tuple: 3\n    test 266 Ellipse5Tuple: Ellipse5Tuple\n    test 267 Ellipse5Tuple: 5-Tuple C{(a, b, height, lat, beta)}\n    test 268 Ellipse5Tuple: 5\n    test 269 Forward4Tuple: Forward4Tuple\n    test 270 Forward4Tuple: 4-Tuple C{(easting, northing, gamma, scale)}\n    test 271 Forward4Tuple: 4\n    test 272 Intersection3Tuple: Intersection3Tuple\n    test 273 Intersection3Tuple: 3-Tuple C{(point, outside1, outside2)}\n    test 274 Intersection3Tuple: 3\n    test 275 LatLon2Tuple: LatLon2Tuple\n    test 276 LatLon2Tuple: 2-Tuple C{(lat, lon)}\n    test 277 LatLon2Tuple: 2\n    test 278 LatLon3Tuple: LatLon3Tuple\n    test 279 LatLon3Tuple: 3-Tuple C{(lat, lon, height)}\n    test 280 LatLon3Tuple: 3\n    test 281 LatLon4Tuple: LatLon4Tuple\n    test 282 LatLon4Tuple: 4-Tuple C{(lat, lon, height, datum)}\n    test 283 LatLon4Tuple: 4\n    test 284 LatLonDatum3Tuple: LatLonDatum3Tuple\n    test 285 LatLonDatum3Tuple: 3-Tuple C{(lat, lon, datum)}\n    test 286 LatLonDatum3Tuple: 3\n    test 287 LatLonDatum5Tuple: LatLonDatum5Tuple\n    test 288 LatLonDatum5Tuple: 5-Tuple C{(lat, lon, datum, gamma, scale)}\n    test 289 LatLonDatum5Tuple: 5\n    test 290 LatLonPrec3Tuple: LatLonPrec3Tuple\n    test 291 LatLonPrec3Tuple: 3-Tuple C{(lat, lon, precision)}\n    test 292 LatLonPrec3Tuple: 3\n    test 293 LatLonPrec5Tuple: LatLonPrec5Tuple\n    test 294 LatLonPrec5Tuple: 5-Tuple C{(lat, lon, precision, height, radius)}\n    test 295 LatLonPrec5Tuple: 5\n    test 296 NearestOn2Tuple: NearestOn2Tuple\n    test 297 NearestOn2Tuple: 2-Tuple C{(closest, fraction)}\n    test 298 NearestOn2Tuple: 2\n    test 299 NearestOn3Tuple: NearestOn3Tuple\n    test 300 NearestOn3Tuple: 3-Tuple C{(closest, distance, angle)}\n    test 301 NearestOn3Tuple: 3\n    test 302 NearestOn5Tuple: NearestOn5Tuple\n    test 303 NearestOn5Tuple: 5-Tuple C{(lat, lon, distance, angle, height)}\n    test 304 NearestOn5Tuple: 5\n    test 305 NearestOn6Tuple: NearestOn6Tuple\n    test 306 NearestOn6Tuple: 6-Tuple C{(closest, distance, fi, j, start, end)}\n    test 307 NearestOn6Tuple: 6\n    test 308 NearestOn8Tuple: NearestOn8Tuple\n    test 309 NearestOn8Tuple: 8-Tuple C{(closest, distance, fi, j, start, end, initial, final)}\n    test 310 NearestOn8Tuple: 8\n    test 311 PhiLam2Tuple: PhiLam2Tuple\n    test 312 PhiLam2Tuple: 2-Tuple C{(phi, lam)}\n    test 313 PhiLam2Tuple: 2\n    test 314 PhiLam3Tuple: PhiLam3Tuple\n    test 315 PhiLam3Tuple: 3-Tuple C{(phi, lam, height)}\n    test 316 PhiLam3Tuple: 3\n    test 317 PhiLam4Tuple: PhiLam4Tuple\n    test 318 PhiLam4Tuple: 4-Tuple C{(phi, lam, height, datum)}\n    test 319 PhiLam4Tuple: 4\n    test 320 Point3Tuple: Point3Tuple\n    test 321 Point3Tuple: 3-Tuple C{(x, y, ll)}\n    test 322 Point3Tuple: 3\n    test 323 Points2Tuple: Points2Tuple\n    test 324 Points2Tuple: 2-Tuple C{(number, points)}\n    test 325 Points2Tuple: 2\n    test 326 Reverse4Tuple: Reverse4Tuple\n    test 327 Reverse4Tuple: 4-Tuple C{(lat, lon, gamma, scale)}\n    test 328 Reverse4Tuple: 4\n    test 329 Triangle7Tuple: Triangle7Tuple\n    test 330 Triangle7Tuple: 7-Tuple C{(A, a, B, b, C, c, area)}\n    test 331 Triangle7Tuple: 7\n    test 332 Triangle8Tuple: Triangle8Tuple\n    test 333 Triangle8Tuple: 8-Tuple C{(A, a, B, b, C, c, D, E)}\n    test 334 Triangle8Tuple: 8\n    test 335 Trilaterate5Tuple: Trilaterate5Tuple\n    test 336 Trilaterate5Tuple: 5-Tuple C{(min, minPoint, max, maxPoint, n)}\n    test 337 Trilaterate5Tuple: 5\n    test 338 UtmUps2Tuple: UtmUps2Tuple\n    test 339 UtmUps2Tuple: 2-Tuple C{(zone, hemipole)}\n    test 340 UtmUps2Tuple: 2\n    test 341 UtmUps5Tuple: UtmUps5Tuple\n    test 342 UtmUps5Tuple: 5-Tuple C{(zone, hemipole, easting, northing, band)}\n    test 343 UtmUps5Tuple: 5\n    test 344 UtmUps8Tuple: UtmUps8Tuple\n    test 345 UtmUps8Tuple: 8-Tuple C{(zone, hemipole, easting, northing, band, datum, gamma, scale)}\n    test 346 UtmUps8Tuple: 8\n    test 347 UtmUpsLatLon5Tuple: UtmUpsLatLon5Tuple\n    test 348 UtmUpsLatLon5Tuple: 5-Tuple C{(zone, band, hemipole, lat, lon)}\n    test 349 UtmUpsLatLon5Tuple: 5\n    test 350 Vector2Tuple: Vector2Tuple\n    test 351 Vector2Tuple: 2-Tuple C{(x, y)}\n    test 352 Vector2Tuple: 2\n    test 353 Vector3Tuple: Vector3Tuple\n    test 354 Vector3Tuple: 3-Tuple C{(x, y, z)}\n    test 355 Vector3Tuple: 3\n    test 356 Vector4Tuple: Vector4Tuple\n    test 357 Vector4Tuple: 4-Tuple C{(x, y, z, h)}\n    test 358 Vector4Tuple: 4\n    test 359 Shape2Tuple: Shape2Tuple\n    test 360 Shape2Tuple: 2-Tuple C{(nrows, ncols)}\n    test 361 Shape2Tuple: 2\n    test 362 Collins5Tuple: Collins5Tuple\n    test 363 Collins5Tuple: 5-Tuple C{(pointP, pointH, a, b, c)}\n    test 364 Collins5Tuple: 5\n    test 365 Survey3Tuple: Survey3Tuple\n    test 366 Survey3Tuple: 3-Tuple C{(PA, PB, PC)}\n    test 367 Survey3Tuple: 3\n    test 368 Tienstra7Tuple: Tienstra7Tuple\n    test 369 Tienstra7Tuple: 7-Tuple C{(pointP, A, B, C, a, b, c)}\n    test 370 Tienstra7Tuple: 7\n    test 371 TriAngle5Tuple: TriAngle5Tuple\n    test 372 TriAngle5Tuple: 5-Tuple C{(radA, radB, radC, rIn, area)}\n    test 373 TriAngle5Tuple: 5\n    test 374 TriSide2Tuple: TriSide2Tuple\n    test 375 TriSide2Tuple: 2-Tuple C{(a, radA)}\n    test 376 TriSide2Tuple: 2\n    test 377 TriSide4Tuple: TriSide4Tuple\n    test 378 TriSide4Tuple: 4-Tuple C{(a, b, radC, d)}\n    test 379 TriSide4Tuple: 4\n    test 380 TRFXform7Tuple: TRFXform7Tuple\n    test 381 TRFXform7Tuple: 7-Tuple C{(tx, ty, tz, s, sx, sy, sz)}\n    test 382 TRFXform7Tuple: 7\n    test 383 Circin6Tuple: Circin6Tuple\n    test 384 Circin6Tuple: 6-Tuple C{(radius, center, deltas, cA, cB, cC)}\n    test 385 Circin6Tuple: 6\n    test 386 Circum3Tuple: Circum3Tuple\n    test 387 Circum3Tuple: 3-Tuple C{(radius, center, deltas)}\n    test 388 Circum3Tuple: 3\n    test 389 Circum4Tuple: Circum4Tuple\n    test 390 Circum4Tuple: 4-Tuple C{(radius, center, rank, residuals)}\n    test 391 Circum4Tuple: 4\n    test 392 Meeus2Tuple: Meeus2Tuple\n    test 393 Meeus2Tuple: 2-Tuple C{(radius, Type)}\n    test 394 Meeus2Tuple: 2\n    test 395 Radii11Tuple: Radii11Tuple\n    test 396 Radii11Tuple: 11-Tuple C{(rA, rB, rC, cR, rIn, riS, roS, a, b, c, s)}\n    test 397 Radii11Tuple: 11\n    test 398 Soddy4Tuple: Soddy4Tuple\n    test 399 Soddy4Tuple: 4-Tuple C{(radius, center, deltas, outer)}\n    test 400 Soddy4Tuple: 4\n    test 401 Triaxum5Tuple: Triaxum5Tuple\n    test 402 Triaxum5Tuple: 5-Tuple C{(a, b, c, rank, residuals)}\n    test 403 Triaxum5Tuple: 5\n    test 404 EasNorRadius3Tuple: EasNorRadius3Tuple\n    test 405 EasNorRadius3Tuple: 3-Tuple C{(easting, northing, radius)}\n    test 406 EasNorRadius3Tuple: 3\n    test 407 ClipCS3Tuple: DEPRECATED, see I{DEPRECATED} function L{pygeodesy.deprecated.clipCS3}.\n    test 408 EasNorExact4Tuple: DEPRECATED, use class L{Forward4Tuple}, item C{gamma} for C{convergence}.\n    test 409 Transform7Tuple: DEPRECATED on 2024.02.02, use class L{TRFXform7Tuple}, I{without} keyword arguments.\n    test 410 Jacobi2Tuple: DEPRECATED on 25.11.11, use class L{Conformal2Tuple}.\n    test 411 LatLonExact4Tuple: DEPRECATED, use class L{Reverse4Tuple}, item C{gamma} for C{convergence}.\n    test 412 NearestOn4Tuple: DEPRECATED on 2023.10.10, see methods L{RhumbLine.nearestOn4} and L{RhumbLineAux.nearestOn4}.\n    test 413 Ned3Tuple: DEPRECATED, use class L{Ned4Tuple}, ignoring item C{ltp}.\n    test 414 Rhumb7Tuple: DEPRECATED, use class L{Rhumb8Tuple}, ignoring item C{a12}.\n    test 415 RhumbOrder2Tuple: DEPRECATED, see deprecated method L{Rhumb.orders}.\n    test 416 Transform7Tuple: DEPRECATED on 2024.02.02, use class L{TRFXform7Tuple}, I{without} keyword arguments.\n    test 417 TriAngle4Tuple: DEPRECATED on 2023.09.14, use class L{TriAngle5Tuple}, ignoring item C{area}.\n    test 418 UtmUps4Tuple: DEPRECATED and OBSOLETE, expect a L{UtmUps5Tuple} from method C{pygeodesy.Mgrs.toUtm(utm=None)}. 4-Tuple C{(zone, hemipole, easting, northing)} with as C{zone} B{C{str}} and no C{band}.\n    test 419 RhumbSolve7Tuple: RhumbSolve7Tuple\n    test 420 RhumbSolve7Tuple: 7-Tuple C{(lat1, lon1, lat2, lon2, azi12, s12, S12)}\n    test 421 RhumbSolve7Tuple: 7\n    test 422 Conformal5Tuple: Conformal5Tuple\n    test 423 Conformal5Tuple: 5-Tuple C{(x, y, z, scale, llk)}\n    test 424 Conformal5Tuple: 5\n    test 425 BetOmgGam5Tuple: BetOmgGam5Tuple\n    test 426 BetOmgGam5Tuple: 5-Tuple C{(bet, omg, gam, scale, llk)}\n    test 427 BetOmgGam5Tuple: 5\n    test 428 BetOmgAlp5Tuple: BetOmgAlp5Tuple\n    test 429 BetOmgAlp5Tuple: 5-Tuple C{(bet, omg, alp, h, llk)}\n    test 430 BetOmgAlp5Tuple: 5\n    test 431 Cartesian5Tuple: Cartesian5Tuple\n    test 432 Cartesian5Tuple: 5-Tuple C{(x, y, z, h, llk)}\n    test 433 Cartesian5Tuple: 5\n    test 434 PhiLamZet5Tuple: PhiLamZet5Tuple\n    test 435 PhiLamZet5Tuple: 5-Tuple C{(phi, lam, zet, h, llk)}\n    test 436 PhiLamZet5Tuple: 5\n    test 437 BetaOmega2Tuple: BetaOmega2Tuple\n    test 438 BetaOmega2Tuple: 2-Tuple C{(beta, omega)}\n    test 439 BetaOmega2Tuple: 2\n    test 440 BetaOmega3Tuple: BetaOmega3Tuple\n    test 441 BetaOmega3Tuple: 3-Tuple C{(beta, omega, height)}\n    test 442 BetaOmega3Tuple: 3\n    test 443 Conformal2Tuple: Conformal2Tuple\n    test 444 Conformal2Tuple: 2-Tuple C{(x, y)}\n    test 445 Conformal2Tuple: 2\n\n    testing __init__.py (pygeodesy.named, 26.01.14)\n\n    testing __main__.py (pygeodesy.named, 26.01.14)\n\n    testing albers.py (pygeodesy.named, 26.01.14)\n    test 446 albers.py:235: L{Albers7Tuple}C{(x, y, lat, lon, gamma, scale, datum)}\n    test 447 albers.py:356: L{Albers7Tuple}C{(x, y, lat, lon, gamma, scale, datum)}\n\n    testing angles.py (pygeodesy.named, 26.01.14)\n\n    testing azimuthal.py (pygeodesy.named, 26.01.14)\n    test 448 azimuthal.py:185: L{LatLon2Tuple}C{(lat, lon)}\n    test 449 azimuthal.py:361: L{Azimuthal7Tuple}C{(x, y, lat, lon, azimuth, scale, datum)}\n    test 450 azimuthal.py:394: L{Azimuthal7Tuple}C{(x, y, lat, lon, azimuth, scale, datum)}\n    test 451 azimuthal.py:487: L{Azimuthal7Tuple}C{(x, y, lat, lon, azimuth, scale, datum)}\n    test 452 azimuthal.py:513: L{Azimuthal7Tuple}C{(x, y, lat, lon, azimuth, scale, datum)}\n    test 453 azimuthal.py:658: L{Azimuthal7Tuple}C{(x, y, lat, lon, azimuth, scale, datum)}\n    test 454 azimuthal.py:683: L{Azimuthal7Tuple}C{(x, y, lat, lon, azimuth, scale, datum)}\n    test 455 azimuthal.py:753: L{Azimuthal7Tuple}C{(x, y, lat, lon, azimuth, scale, datum)}\n    test 456 azimuthal.py:791: L{Azimuthal7Tuple}C{(x, y, lat, lon, azimuth, scale, datum)}\n    test 457 azimuthal.py:956: L{Azimuthal7Tuple}C{(x, y, lat, lon, azimuth, scale, datum)}\n    test 458 azimuthal.py:982: L{Azimuthal7Tuple}C{(x, y, lat, lon, azimuth, scale, datum)}\n    test 459 azimuthal.py:1011: L{Azimuthal7Tuple}C{(x, y, lat, lon, azimuth, scale, datum)}\n    test 460 azimuthal.py:1034: L{Azimuthal7Tuple}C{(x, y, lat, lon, azimuth, scale, datum)}\n    test 461 azimuthal.py:1065: L{Azimuthal7Tuple}C{(x, y, lat, lon, azimuth, scale, datum)}\n    test 462 azimuthal.py:1105: L{Azimuthal7Tuple}C{(x, y, lat, lon, azimuth, scale, datum)}\n\n    testing basics.py (pygeodesy.named, 26.01.14)\n\n    testing booleans.py (pygeodesy.named, 26.01.14)\n\n    testing cartesianBase.py (pygeodesy.named, 26.01.14)\n    test 463 cartesianBase.py:141: L{Collins5Tuple}C{(pointP, pointH, a, b, c)}\n    test 464 cartesianBase.py:196: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 465 cartesianBase.py:296: L{Vector3Tuple}C{(x, y, z)}\n    test 466 cartesianBase.py:348: L{Vector4Tuple}C{(x, y, z, h)}\n    test 467 cartesianBase.py:393: L{LatLon2Tuple}C{(lat, lon)}\n    test 468 cartesianBase.py:399: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 469 cartesianBase.py:405: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n    test 470 cartesianBase.py:466: L{PhiLam2Tuple}C{(phi, lam)}\n    test 471 cartesianBase.py:472: L{PhiLam3Tuple}C{(phi, lam, height)}\n    test 472 cartesianBase.py:478: L{PhiLam4Tuple}C{(phi, lam, height, datum)}\n    test 473 cartesianBase.py:598: L{Tienstra7Tuple}C{(pointP, A, B, C, a, b, c)}\n    test 474 cartesianBase.py:618: L{PhiLam2Tuple}C{(phi, lam)}\n    test 475 cartesianBase.py:626: L{LatLon2Tuple}C{(lat, lon)}\n    test 476 cartesianBase.py:634: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n    test 477 cartesianBase.py:691: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 478 cartesianBase.py:709: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 479 cartesianBase.py:739: L{Vector4Tuple}C{(x, y, z, h)}\n    test 480 cartesianBase.py:765: L{RadiusThetaPhi3Tuple}C{(r, theta, phi)}\n    test 481 cartesianBase.py:815: L{Vector3Tuple}C{(x, y, z)}\n    test 482 cartesianBase.py:841: L{Vector3Tuple}C{(x, y, z)}\n    test 483 cartesianBase.py:855: L{RadiusThetaPhi3Tuple}C{(r, theta, phi)}\n    test 484 cartesianBase.py:865: L{RadiusThetaPhi3Tuple}C{(r, theta, phi)}\n    test 485 cartesianBase.py:912: L{Vector3Tuple}C{(x, y, z)}\n    test 486 cartesianBase.py:965: L{RadiusThetaPhi3Tuple}C{(r, theta, phi)}\n    test 487 cartesianBase.py:983: L{RadiusThetaPhi3Tuple}C{(r, theta, phi)}\n\n    testing clipy.py (pygeodesy.named, 26.01.14)\n    test 488 clipy.py:197: L{ClipCS4Tuple}C{(start, end, i, j)}\n    test 489 clipy.py:276: L{ClipFHP4Tuple}C{(lat, lon, height, clipid)}\n    test 490 clipy.py:318: L{ClipGH4Tuple}C{(lat, lon, height, clipid)}\n    test 491 clipy.py:382: L{ClipLB6Tuple}C{(start, end, i, fi, fj, j)}\n    test 492 clipy.py:660: L{ClipSH3Tuple}C{(start, end, original)}\n\n    testing constants.py (pygeodesy.named, 26.01.14)\n\n    testing css.py (pygeodesy.named, 26.01.14)\n    test 493 css.py:138: L{EasNor2Tuple}C{(easting, northing)}\n    test 494 css.py:157: L{EasNorAziRk4Tuple}C{(easting, northing, azimuth, reciprocal)}\n    test 495 css.py:178: L{EasNorAziRkEqu6Tuple}C{(easting, northing, azimuth, reciprocal, equatorarc, equatorazimuth)}\n    test 496 css.py:265: L{LatLon2Tuple}C{(lat, lon)}\n    test 497 css.py:330: L{LatLon2Tuple}C{(lat, lon)}\n    test 498 css.py:359: L{LatLonAziRk4Tuple}C{(lat, lon, azimuth, reciprocal)}\n    test 499 css.py:525: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n    test 500 css.py:619: L{EasNor3Tuple}C{(easting, northing, height)}\n\n    testing datums.py (pygeodesy.named, 26.01.14)\n    test 501 datums.py:275: L{Vector3Tuple}C{(x, y, z)}\n\n    testing dms.py (pygeodesy.named, 26.01.14)\n    test 502 dms.py:760: L{LatLon2Tuple}C{(lat, lon)}\n    test 503 dms.py:813: L{LatLon3Tuple}C{(lat, lon, height)}\n\n    testing ecef.py (pygeodesy.named, 26.01.14)\n    test 504 ecef.py:233: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 505 ecef.py:259: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 506 ecef.py:369: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 507 ecef.py:441: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 508 ecef.py:491: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 509 ecef.py:621: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 510 ecef.py:703: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 511 ecef.py:769: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 512 ecef.py:838: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 513 ecef.py:1099: L{LatLon2Tuple}C{(lat, lon)}\n    test 514 ecef.py:1105: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 515 ecef.py:1111: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n    test 516 ecef.py:1117: L{LatLon2Tuple}C{(lat, lon)}\n    test 517 ecef.py:1147: L{PhiLam2Tuple}C{(phi, lam)}\n    test 518 ecef.py:1153: L{PhiLam3Tuple}C{(phi, lam, height)}\n    test 519 ecef.py:1159: L{PhiLam4Tuple}C{(phi, lam, height, datum)}\n    test 520 ecef.py:1165: L{PhiLam2Tuple}C{(phi, lam)}\n    test 521 ecef.py:1184: L{Vector4Tuple}C{(x, y, z, h)}\n    test 522 ecef.py:1225: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n    test 523 ecef.py:1226: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 524 ecef.py:1254: L{Vector3Tuple}C{(x, y, z)}\n    test 525 ecef.py:1271: L{Vector3Tuple}C{(x, y, z)}\n    test 526 ecef.py:1277: L{Vector4Tuple}C{(x, y, z, h)}\n\n    testing ecefLocals.py (pygeodesy.named, 26.01.14)\n    test 527 ecefLocals.py:108: L{Local9Tuple}C{(x, y, z, lat, lon, height, ltp, ecef, M)}\n\n    testing elevations.py (pygeodesy.named, 26.01.14)\n    test 528 elevations.py:151: L{Elevation2Tuple}C{(elevation, data_source)}\n    test 529 elevations.py:207: L{GeoidHeight2Tuple}C{(height, model_name)}\n\n    testing ellipses.py (pygeodesy.named, 26.01.14)\n    test 530 ellipses.py:240: L{Vector4Tuple}C{(x, y, z, h)}\n    test 531 ellipses.py:267: L{Vector4Tuple}C{(x, y, z, h)}\n    test 532 ellipses.py:361: L{Vector4Tuple}C{(x, y, z, h)}\n\n    testing ellipsoidalBase.py (pygeodesy.named, 26.01.14)\n    test 533 ellipsoidalBase.py:332: L{Distance2Tuple}C{(distance, initial)}\n    test 534 ellipsoidalBase.py:367: L{Elevation2Tuple}C{(elevation, data_source)}\n    test 535 ellipsoidalBase.py:479: L{GeoidHeight2Tuple}C{(height, model_name)}\n    test 536 ellipsoidalBase.py:521: L{Intersection3Tuple}C{(point, outside1, outside2)}\n    test 537 ellipsoidalBase.py:998: L{Vector3Tuple}C{(x, y, z)}\n    test 538 ellipsoidalBase.py:1042: L{Trilaterate5Tuple}C{(min, minPoint, max, maxPoint, n)}\n\n    testing ellipsoidalBaseDI.py (pygeodesy.named, 26.01.14)\n    test 539 ellipsoidalBaseDI.py:60: L{Bearing2Tuple}C{(initial, final)}\n    test 540 ellipsoidalBaseDI.py:102: L{Destination2Tuple}C{(destination, final)}\n    test 541 ellipsoidalBaseDI.py:109: L{Destination2Tuple}C{(destination, final)}\n    test 542 ellipsoidalBaseDI.py:110: L{Destination3Tuple}C{(lat, lon, final)}\n    test 543 ellipsoidalBaseDI.py:162: L{Distance3Tuple}C{(distance, initial, final)}\n    test 544 ellipsoidalBaseDI.py:316: L{Distance3Tuple}C{(distance, initial, final)}\n    test 545 ellipsoidalBaseDI.py:341: L{NearestOn8Tuple}C{(closest, distance, fi, j, start, end, initial, final)}\n\n    testing ellipsoidalExact.py (pygeodesy.named, 26.01.14)\n    test 546 ellipsoidalExact.py:43: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 547 ellipsoidalExact.py:81: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 548 ellipsoidalExact.py:143: L{Intersection3Tuple}C{(point, outside1, outside2)}\n    test 549 ellipsoidalExact.py:144: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n    test 550 ellipsoidalExact.py:193: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n    test 551 ellipsoidalExact.py:270: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n\n    testing ellipsoidalGeodSolve.py (pygeodesy.named, 26.01.14)\n    test 552 ellipsoidalGeodSolve.py:43: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 553 ellipsoidalGeodSolve.py:81: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 554 ellipsoidalGeodSolve.py:141: L{Intersection3Tuple}C{(point, outside1, outside2)}\n    test 555 ellipsoidalGeodSolve.py:142: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n    test 556 ellipsoidalGeodSolve.py:193: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n    test 557 ellipsoidalGeodSolve.py:270: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n\n    testing ellipsoidalKarney.py (pygeodesy.named, 26.01.14)\n    test 558 ellipsoidalKarney.py:60: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 559 ellipsoidalKarney.py:104: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 560 ellipsoidalKarney.py:168: L{Intersection3Tuple}C{(point, outside1, outside2)}\n    test 561 ellipsoidalKarney.py:169: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n    test 562 ellipsoidalKarney.py:220: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n    test 563 ellipsoidalKarney.py:301: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n\n    testing ellipsoidalNvector.py (pygeodesy.named, 26.01.14)\n    test 564 ellipsoidalNvector.py:102: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 565 ellipsoidalNvector.py:119: L{Vector4Tuple}C{(x, y, z, h)}\n    test 566 ellipsoidalNvector.py:398: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 567 ellipsoidalNvector.py:415: L{Vector4Tuple}C{(x, y, z, h)}\n    test 568 ellipsoidalNvector.py:483: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 569 ellipsoidalNvector.py:501: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 570 ellipsoidalNvector.py:542: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 571 ellipsoidalNvector.py:580: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n    test 572 ellipsoidalNvector.py:636: L{Ned3Tuple}C{(north, east, down)}  FAILED, KNOWN, expected DEPRECATED\n\n    testing ellipsoidalVincenty.py (pygeodesy.named, 26.01.14)\n    test 573 ellipsoidalVincenty.py:110: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 574 ellipsoidalVincenty.py:190: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 575 ellipsoidalVincenty.py:439: L{Intersection3Tuple}C{(point, outside1, outside2)}\n    test 576 ellipsoidalVincenty.py:440: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n    test 577 ellipsoidalVincenty.py:491: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n    test 578 ellipsoidalVincenty.py:541: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n\n    testing ellipsoids.py (pygeodesy.named, 26.01.14)\n    test 579 ellipsoids.py:146: L{a_f2Tuple}C{(a, f)}\n    test 580 ellipsoids.py:678: L{Circle4Tuple}C{(radius, height, lat, beta)}\n    test 581 ellipsoids.py:739: L{Distance2Tuple}C{(distance, initial)}\n    test 582 ellipsoids.py:1113: L{Vector4Tuple}C{(x, y, z, h)}\n    test 583 ellipsoids.py:1149: L{Vector4Tuple}C{(x, y, z, h)}\n    test 584 ellipsoids.py:1635: L{Curvature2Tuple}C{(meridional, prime_vertical)}\n    test 585 ellipsoids.py:1654: L{Curvature2Tuple}C{(meridional, prime_vertical)}\n    test 586 ellipsoids.py:1723: L{Curvature2Tuple}C{(meridional, prime_vertical)}\n\n    testing elliptic.py (pygeodesy.named, 26.01.14)\n    test 587 elliptic.py:830: L{Elliptic3Tuple}C{(sn, cn, dn)}\n\n    testing epsg.py (pygeodesy.named, 26.01.14)\n    test 588 epsg.py:148: L{UtmUps2Tuple}C{(zone, hemipole)}\n\n    testing errors.py (pygeodesy.named, 26.01.14)\n\n    testing etm.py (pygeodesy.named, 26.01.14)\n    test 589 etm.py:185: L{LatLonDatum5Tuple}C{(lat, lon, datum, gamma, scale)}\n    test 590 etm.py:446: L{Forward4Tuple}C{(easting, northing, gamma, scale)}\n    test 591 etm.py:685: L{Reverse4Tuple}C{(lat, lon, gamma, scale)}\n    test 592 etm.py:1048: L{UtmUps5Tuple}C{(zone, hemipole, easting, northing, band)}\n    test 593 etm.py:1079: L{UtmUps8Tuple}C{(zone, hemipole, easting, northing, band, datum, gamma, scale)}\n\n    testing fmath.py (pygeodesy.named, 26.01.14)\n\n    testing formy.py (pygeodesy.named, 26.01.14)\n    test 594 formy.py:90: L{LatLon2Tuple}C{(lat, lon)}\n    test 595 formy.py:106: L{PhiLam2Tuple}C{(phi, lam)}\n    test 596 formy.py:433: L{Distance4Tuple}C{(distance2, delta_lat, delta_lon, unroll_lon2)}\n    test 597 formy.py:1149: L{LatLon2Tuple}C{(lat, lon)}\n    test 598 formy.py:1212: L{LatLon2Tuple}C{(lat, lon)}\n    test 599 formy.py:1361: L{LatLon2Tuple}C{(lat, lon)}\n    test 600 formy.py:1377: L{PhiLam2Tuple}C{(phi, lam)}\n    test 601 formy.py:1460: L{Radical2Tuple}C{(ratio, xline)}\n\n    testing frechet.py (pygeodesy.named, 26.01.14)\n    test 602 frechet.py:199: L{Frechet6Tuple}C{(fd, fi1, fi2, r, n, units)}\n    test 603 frechet.py:371: L{PhiLam2Tuple}C{(phi, lam)}\n    test 604 frechet.py:745: L{Frechet6Tuple}C{(fd, fi1, fi2, r, n, units)}\n\n    testing fstats.py (pygeodesy.named, 26.01.14)\n\n    testing fsums.py (pygeodesy.named, 26.01.14)\n    test 605 fsums.py:1395: L{Fsum2Tuple}C{(fsum, residual)}\n    test 606 fsums.py:1848: L{Fsum2Tuple}C{(fsum, residual)}\n\n    testing gars.py (pygeodesy.named, 26.01.14)\n    test 607 gars.py:206: L{LatLonPrec3Tuple}C{(lat, lon, precision)}\n\n    testing geod3solve.py (pygeodesy.named, 26.01.14)\n\n    testing geodesici.py (pygeodesy.named, 26.01.14)\n    test 608 geodesici.py:347: L{Intersect7Tuple}C{(A, B, sAB, aAB, c, kA, kB)}\n    test 609 geodesici.py:349: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n    test 610 geodesici.py:904: L{Intersector5Tuple}C{(A, B, sAB, aAB, c)}\n    test 611 geodesici.py:975: L{Intersector5Tuple}C{(A, B, sAB, aAB, c)}\n    test 612 geodesici.py:1132: L{Middle5Tuple}C{(A, B, sMM, aMM, c)}\n    test 613 geodesici.py:1204: L{Intersector5Tuple}C{(A, B, sAB, aAB, c)}\n    test 614 geodesici.py:1331: L{Intersector5Tuple}C{(A, B, sAB, aAB, c)}\n    test 615 geodesici.py:1424: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n\n    testing geodesicw.py (pygeodesy.named, 26.01.14)\n\n    testing geodsolve.py (pygeodesy.named, 26.01.14)\n    test 616 geodsolve.py:129: L{Destination3Tuple}C{(lat, lon, final)}\n    test 617 geodsolve.py:175: L{Distance3Tuple}C{(distance, initial, final)}\n\n    testing geohash.py (pygeodesy.named, 26.01.14)\n    test 618 geohash.py:489: L{Neighbors8Dict}C{(N, NE, E, SE, S, SW, W, NW)}\n    test 619 geohash.py:972: L{Neighbors8Dict}C{(N, NE, E, SE, S, SW, W, NW)}\n    test 620 geohash.py:365: L{Bounds2Tuple}C{(latlonSW, latlonNE)}\n    test 621 geohash.py:366: L{Bounds4Tuple}C{(latS, lonW, latN, lonE)}\n    test 622 geohash.py:482: L{LatLon2Tuple}C{(lat, lon)}\n    test 623 geohash.py:499: L{PhiLam2Tuple}C{(phi, lam)}\n    test 624 geohash.py:512: L{Resolutions2Tuple}C{(res1, res2)}\n    test 625 geohash.py:525: L{Sizes3Tuple}C{(height, width, radius)}\n    test 626 geohash.py:540: L{LatLon2Tuple}C{(lat, lon)}\n    test 627 geohash.py:781: L{Bounds2Tuple}C{(latlonSW, latlonNE)}\n    test 628 geohash.py:782: L{Bounds4Tuple}C{(latS, lonW, latN, lonE)}\n    test 629 geohash.py:824: L{LatLon2Tuple}C{(lat, lon)}\n    test 630 geohash.py:849: L{LatLon2Tuple}C{(lat, lon)}\n    test 631 geohash.py:1015: L{Resolutions2Tuple}C{(res1, res2)}\n    test 632 geohash.py:1042: L{Sizes3Tuple}C{(height, width, radius)}\n\n    testing geoids.py (pygeodesy.named, 26.01.14)\n    test 633 geoids.py:352: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 634 geoids.py:478: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 635 geoids.py:543: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 636 geoids.py:561: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 637 geoids.py:581: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 638 geoids.py:726: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 639 geoids.py:744: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 640 geoids.py:1210: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 641 geoids.py:1265: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 642 geoids.py:1724: L{GeoidHeight5Tuple}C{(lat, lon, egm84, egm96, egm2008)}\n\n    testing hausdorff.py (pygeodesy.named, 26.01.14)\n    test 643 hausdorff.py:166: L{Hausdorff6Tuple}C{(hd, i, j, mn, md, units)}\n    test 644 hausdorff.py:244: L{Hausdorff6Tuple}C{(hd, i, j, mn, md, units)}\n    test 645 hausdorff.py:309: L{PhiLam2Tuple}C{(phi, lam)}\n    test 646 hausdorff.py:733: L{Hausdorff6Tuple}C{(hd, i, j, mn, md, units)}\n\n    testing heights.py (pygeodesy.named, 26.01.14)\n\n    testing internals.py (pygeodesy.named, 26.01.14)\n\n    testing interns.py (pygeodesy.named, 26.01.14)\n\n    testing iters.py (pygeodesy.named, 26.01.14)\n    test 647 iters.py:375: L{Point3Tuple}C{(x, y, ll)}\n    test 648 iters.py:495: L{Points2Tuple}C{(number, points)}\n\n    testing karney.py (pygeodesy.named, 26.01.14)\n    test 649 karney.py:453: L{Direct9Tuple}C{(a12, lat2, lon2, azi2, s12, m12, M12, M21, S12)}\n    test 650 karney.py:465: L{GeodSolve12Tuple}C{(lat1, lon1, azi1, lat2, lon2, azi2, s12, a12, m12, M12, M21, S12)}\n    test 651 karney.py:477: L{Geod3Solve8Tuple}C{(bet1, omg1, alp1, bet2, omg2, alp2, s12, a12)}\n    test 652 karney.py:487: L{Inverse10Tuple}C{(a12, s12, salp1, calp1, salp2, calp2, m12, M12, M21, S12)}\n    test 653 karney.py:517: L{Rhumb8Tuple}C{(lat1, lon1, lat2, lon2, azi12, s12, S12, a12)}\n    test 654 karney.py:527: L{RhumbSolve7Tuple}C{(lat1, lon1, lat2, lon2, azi12, s12, S12)}\n    test 655 karney.py:595: L{Direct9Tuple}C{(a12, lat2, lon2, azi2, s12, m12, M12, M21, S12)}\n    test 656 karney.py:612: L{Inverse10Tuple}C{(a12, s12, salp1, calp1, salp2, calp2, m12, M12, M21, S12)}\n\n    testing ktm.py (pygeodesy.named, 26.01.14)\n    test 657 ktm.py:230: L{Forward4Tuple}C{(easting, northing, gamma, scale)}\n    test 658 ktm.py:361: L{Reverse4Tuple}C{(lat, lon, gamma, scale)}\n\n    testing latlonBase.py (pygeodesy.named, 26.01.14)\n    test 659 latlonBase.py:148: L{Bounds2Tuple}C{(latlonSW, latlonNE)}\n    test 660 latlonBase.py:202: L{Circin6Tuple}C{(radius, center, deltas, cA, cB, cC)}\n    test 661 latlonBase.py:219: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 662 latlonBase.py:250: L{Circum3Tuple}C{(radius, center, deltas)}\n    test 663 latlonBase.py:253: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 664 latlonBase.py:270: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 665 latlonBase.py:292: L{Circum4Tuple}C{(radius, center, rank, residuals)}\n    test 666 latlonBase.py:409: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n    test 667 latlonBase.py:409: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 668 latlonBase.py:654: L{Vector4Tuple}C{(x, y, z, h)}\n    test 669 latlonBase.py:816: L{LatLon2Tuple}C{(lat, lon)}\n    test 670 latlonBase.py:855: L{LatLon2Tuple}C{(lat, lon)}\n    test 671 latlonBase.py:873: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 672 latlonBase.py:920: L{NearestOn6Tuple}C{(closest, distance, fi, j, start, end)}\n    test 673 latlonBase.py:993: L{PhiLam2Tuple}C{(phi, lam)}\n    test 674 latlonBase.py:1002: L{PhiLam2Tuple}C{(phi, lam)}\n    test 675 latlonBase.py:1012: L{PhiLam3Tuple}C{(phi, lam, height)}\n    test 676 latlonBase.py:1028: L{Points2Tuple}C{(number, points)}\n    test 677 latlonBase.py:1062: L{Radii11Tuple}C{(rA, rB, rC, cR, rIn, riS, roS, a, b, c, s)}\n    test 678 latlonBase.py:1299: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 679 latlonBase.py:1340: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 680 latlonBase.py:1381: L{Vector4Tuple}C{(x, y, z, h)}\n    test 681 latlonBase.py:1435: L{Vector3Tuple}C{(x, y, z)}\n    test 682 latlonBase.py:1512: L{Vector3Tuple}C{(x, y, z)}\n    test 683 latlonBase.py:1524: L{Vector4Tuple}C{(x, y, z, h)}\n    test 684 latlonBase.py:1567: L{Vector3Tuple}C{(x, y, z)}\n    test 685 latlonBase.py:1593: L{Vector3Tuple}C{(x, y, z)}\n\n    testing lazily.py (pygeodesy.named, 26.01.14)\n\n    testing lcc.py (pygeodesy.named, 26.01.14)\n    test 686 lcc.py:168: L{LatLon2Tuple}C{(lat, lon)}\n    test 687 lcc.py:222: L{PhiLam2Tuple}C{(phi, lam)}\n    test 688 lcc.py:483: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 689 lcc.py:489: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n    test 690 lcc.py:508: L{PhiLam3Tuple}C{(phi, lam, height)}\n    test 691 lcc.py:514: L{PhiLam4Tuple}C{(phi, lam, height, datum)}\n    test 692 lcc.py:525: L{LatLonDatum3Tuple}C{(lat, lon, datum)}\n    test 693 lcc.py:552: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n    test 694 lcc.py:630: L{EasNor3Tuple}C{(easting, northing, height)}\n\n    testing ltp.py (pygeodesy.named, 26.01.14)\n    test 695 ltp.py:163: L{Vector3Tuple}C{(x, y, z)}\n    test 696 ltp.py:292: L{Footprint5Tuple}C{(center, upperleft, upperight, loweright, lowerleft)}\n    test 697 ltp.py:484: L{Local9Tuple}C{(x, y, z, lat, lon, height, ltp, ecef, M)}\n    test 698 ltp.py:524: L{Local9Tuple}C{(x, y, z, lat, lon, height, ltp, ecef, M)}\n    test 699 ltp.py:556: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 700 ltp.py:568: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 701 ltp.py:646: L{Local9Tuple}C{(x, y, z, lat, lon, height, ltp, ecef, M)}\n    test 702 ltp.py:756: L{ChLV9Tuple}C{(Y, X, h_, lat, lon, height, ltp, ecef, M)}\n    test 703 ltp.py:778: L{ChLV9Tuple}C{(Y, X, h_, lat, lon, height, ltp, ecef, M)}\n    test 704 ltp.py:892: L{ChLVEN2Tuple}C{(E_LV95, N_LV95)}\n    test 705 ltp.py:893: L{ChLVyx2Tuple}C{(y_LV03, x_LV03)}\n    test 706 ltp.py:894: L{ChLVYX2Tuple}C{(Y, X)}\n    test 707 ltp.py:944: L{ChLVYX2Tuple}C{(Y, X)}\n    test 708 ltp.py:1100: L{Vector3Tuple}C{(x, y, z)}\n\n    testing ltpTuples.py (pygeodesy.named, 26.01.14)\n    test 709 ltpTuples.py:79: L{Aer4Tuple}C{(azimuth, elevation, slantrange, ltp)}\n    test 710 ltpTuples.py:94: L{Enu4Tuple}C{(east, north, up, ltp)}\n    test 711 ltpTuples.py:109: L{Ned4Tuple}C{(north, east, down, ltp)}\n    test 712 ltpTuples.py:125: L{Xyz4Tuple}C{(x, y, z, ltp)}\n    test 713 ltpTuples.py:134: L{Vector3Tuple}C{(x, y, z)}\n    test 714 ltpTuples.py:767: L{Aer4Tuple}C{(azimuth, elevation, slantrange, ltp)}\n    test 715 ltpTuples.py:786: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 716 ltpTuples.py:809: L{Enu4Tuple}C{(east, north, up, ltp)}\n    test 717 ltpTuples.py:827: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 718 ltpTuples.py:847: L{Local9Tuple}C{(x, y, z, lat, lon, height, ltp, ecef, M)}\n    test 719 ltpTuples.py:865: L{Ned4Tuple}C{(north, east, down, ltp)}\n    test 720 ltpTuples.py:881: L{Xyz4Tuple}C{(x, y, z, ltp)}\n    test 721 ltpTuples.py:902: L{Vector3Tuple}C{(x, y, z)}\n    test 722 ltpTuples.py:995: L{Uvw3Tuple}C{(u, v, w)}\n    test 723 ltpTuples.py:1090: L{LatLon2Tuple}C{(lat, lon)}\n    test 724 ltpTuples.py:1096: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 725 ltpTuples.py:1114: L{PhiLam2Tuple}C{(phi, lam)}\n    test 726 ltpTuples.py:1120: L{PhiLam3Tuple}C{(phi, lam, height)}\n    test 727 ltpTuples.py:1138: L{Aer4Tuple}C{(azimuth, elevation, slantrange, ltp)}\n    test 728 ltpTuples.py:1155: L{Vector4Tuple}C{(x, y, z, h)}\n    test 729 ltpTuples.py:1170: L{Enu4Tuple}C{(east, north, up, ltp)}\n    test 730 ltpTuples.py:1186: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n    test 731 ltpTuples.py:1187: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 732 ltpTuples.py:1202: L{Ned4Tuple}C{(north, east, down, ltp)}\n    test 733 ltpTuples.py:1217: L{Xyz4Tuple}C{(x, y, z, ltp)}\n    test 734 ltpTuples.py:1232: L{Vector3Tuple}C{(x, y, z)}\n    test 735 ltpTuples.py:1279: L{Enu4Tuple}C{(east, north, up, ltp)}\n    test 736 ltpTuples.py:1305: L{Uvw3Tuple}C{(u, v, w)}\n    test 737 ltpTuples.py:1526: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 738 ltpTuples.py:1527: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n\n    testing mgrs.py (pygeodesy.named, 26.01.14)\n    test 739 mgrs.py:207: L{EasNor2Tuple}C{(easting, northing)}\n    test 740 mgrs.py:292: L{LatLonDatum5Tuple}C{(lat, lon, datum, gamma, scale)}\n    test 741 mgrs.py:353: L{UtmUps5Tuple}C{(zone, hemipole, easting, northing, band)}\n    test 742 mgrs.py:371: L{UtmUps5Tuple}C{(zone, hemipole, easting, northing, band)}\n    test 743 mgrs.py:391: L{UtmUps5Tuple}C{(zone, hemipole, easting, northing, band)}\n    test 744 mgrs.py:465: L{Mgrs6Tuple}C{(zone, EN, easting, northing, band, datum)}\n    test 745 mgrs.py:549: L{Mgrs4Tuple}C{(zone, EN, easting, northing)}\n    test 746 mgrs.py:605: L{Mgrs6Tuple}C{(zone, EN, easting, northing, band, datum)}\n\n    testing named.py (pygeodesy.named, 26.01.14)\n\n    testing namedTuples.py (pygeodesy.named, 26.01.14)\n    test 747 namedTuples.py:279: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 748 namedTuples.py:293: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n    test 749 namedTuples.py:316: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n    test 750 namedTuples.py:383: L{LatLonPrec5Tuple}C{(lat, lon, precision, height, radius)}\n    test 751 namedTuples.py:442: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 752 namedTuples.py:510: L{PhiLam3Tuple}C{(phi, lam, height)}\n    test 753 namedTuples.py:522: L{PhiLam4Tuple}C{(phi, lam, height, datum)}\n    test 754 namedTuples.py:550: L{PhiLam4Tuple}C{(phi, lam, height, datum)}\n    test 755 namedTuples.py:727: L{Vector3Tuple}C{(x, y, z)}\n    test 756 namedTuples.py:771: L{Vector4Tuple}C{(x, y, z, h)}\n    test 757 namedTuples.py:811: L{Vector3Tuple}C{(x, y, z)}\n\n    testing nvectorBase.py (pygeodesy.named, 26.01.14)\n    test 758 nvectorBase.py:160: L{LatLon2Tuple}C{(lat, lon)}\n    test 759 nvectorBase.py:166: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 760 nvectorBase.py:172: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n    test 761 nvectorBase.py:190: L{PhiLam2Tuple}C{(phi, lam)}\n    test 762 nvectorBase.py:196: L{PhiLam3Tuple}C{(phi, lam, height)}\n    test 763 nvectorBase.py:202: L{PhiLam4Tuple}C{(phi, lam, height, datum)}\n    test 764 nvectorBase.py:233: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 765 nvectorBase.py:291: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 766 nvectorBase.py:353: L{Vector4Tuple}C{(x, y, z, h)}\n    test 767 nvectorBase.py:427: L{Vector4Tuple}C{(x, y, z, h)}\n    test 768 nvectorBase.py:496: L{Trilaterate5Tuple}C{(min, minPoint, max, maxPoint, n)}\n    test 769 nvectorBase.py:531: L{LatLon2Tuple}C{(lat, lon)}\n    test 770 nvectorBase.py:549: L{PhiLam2Tuple}C{(phi, lam)}\n    test 771 nvectorBase.py:589: L{Vector4Tuple}C{(x, y, z, h)}\n\n    testing osgr.py (pygeodesy.named, 26.01.14)\n    test 772 osgr.py:301: L{LatLonDatum3Tuple}C{(lat, lon, datum)}\n    test 773 osgr.py:522: L{EasNor2Tuple}C{(easting, northing)}\n    test 774 osgr.py:600: L{EasNor2Tuple}C{(easting, northing)}\n\n    testing points.py (pygeodesy.named, 26.01.14)\n    test 775 points.py:559: L{Shape2Tuple}C{(nrows, ncols)}\n    test 776 points.py:761: L{Point3Tuple}C{(x, y, ll)}\n    test 777 points.py:995: L{Bounds2Tuple}C{(latlonSW, latlonNE)}\n    test 778 points.py:997: L{Bounds4Tuple}C{(latS, lonW, latN, lonE)}\n    test 779 points.py:1037: L{LatLon2Tuple}C{(lat, lon)}\n    test 780 points.py:1117: L{LatLon2Tuple}C{(lat, lon)}\n    test 781 points.py:1485: L{NearestOn3Tuple}C{(closest, distance, angle)}\n    test 782 points.py:1487: L{NearestOn5Tuple}C{(lat, lon, distance, angle, height)}\n\n    testing props.py (pygeodesy.named, 26.01.14)\n\n    testing resections.py (pygeodesy.named, 26.01.14)\n    test 783 resections.py:229: L{Collins5Tuple}C{(pointP, pointH, a, b, c)}\n    test 784 resections.py:549: L{Survey3Tuple}C{(PA, PB, PC)}\n    test 785 resections.py:613: L{Tienstra7Tuple}C{(pointP, A, B, C, a, b, c)}\n    test 786 resections.py:733: L{TriAngle5Tuple}C{(radA, radB, radC, rIn, area)}\n    test 787 resections.py:864: L{TriSide2Tuple}C{(a, radA)}\n    test 788 resections.py:910: L{TriSide4Tuple}C{(a, b, radC, d)}\n    test 789 resections.py:956: L{Survey3Tuple}C{(PA, PB, PC)}\n\n    testing simplify.py (pygeodesy.named, 26.01.14)\n\n    testing solveBase.py (pygeodesy.named, 26.01.14)\n\n    testing sphericalBase.py (pygeodesy.named, 26.01.14)\n    test 790 sphericalBase.py:151: L{Bearing2Tuple}C{(initial, final)}\n    test 791 sphericalBase.py:579: L{Vector4Tuple}C{(x, y, z, h)}\n\n    testing sphericalNvector.py (pygeodesy.named, 26.01.14)\n    test 792 sphericalNvector.py:83: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 793 sphericalNvector.py:99: L{Vector4Tuple}C{(x, y, z, h)}\n    test 794 sphericalNvector.py:641: L{NearestOn3Tuple}C{(closest, distance, angle)}\n    test 795 sphericalNvector.py:677: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 796 sphericalNvector.py:692: L{Vector4Tuple}C{(x, y, z, h)}\n    test 797 sphericalNvector.py:731: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 798 sphericalNvector.py:748: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 799 sphericalNvector.py:882: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 800 sphericalNvector.py:913: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 801 sphericalNvector.py:1045: L{NearestOn3Tuple}C{(closest, distance, angle)}\n\n    testing sphericalTrigonometry.py (pygeodesy.named, 26.01.14)\n    test 802 sphericalTrigonometry.py:80: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 803 sphericalTrigonometry.py:622: L{NearestOn3Tuple}C{(closest, distance, angle)}\n    test 804 sphericalTrigonometry.py:653: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 805 sphericalTrigonometry.py:671: L{Triangle7Tuple}C{(A, a, B, b, C, c, area)}\n    test 806 sphericalTrigonometry.py:672: L{Triangle8Tuple}C{(A, a, B, b, C, c, D, E)}\n    test 807 sphericalTrigonometry.py:722: L{Trilaterate5Tuple}C{(min, minPoint, max, maxPoint, n)}\n    test 808 sphericalTrigonometry.py:1010: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 809 sphericalTrigonometry.py:1054: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 810 sphericalTrigonometry.py:1172: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 811 sphericalTrigonometry.py:1197: L{LatLon2Tuple}C{(lat, lon)}\n    test 812 sphericalTrigonometry.py:1228: L{NearestOn3Tuple}C{(closest, distance, angle)}\n    test 813 sphericalTrigonometry.py:1229: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 814 sphericalTrigonometry.py:1325: L{Triangle7Tuple}C{(A, a, B, b, C, c, area)}\n    test 815 sphericalTrigonometry.py:1330: L{Triangle8Tuple}C{(A, a, B, b, C, c, D, E)}\n    test 816 sphericalTrigonometry.py:1357: L{Triangle8Tuple}C{(A, a, B, b, C, c, D, E)}\n\n    testing streprs.py (pygeodesy.named, 26.01.14)\n\n    testing trf.py (pygeodesy.named, 26.01.14)\n    test 817 trf.py:472: L{Vector3Tuple}C{(x, y, z)}\n    test 818 trf.py:514: L{Vector3Tuple}C{(x, y, z)}\n\n    testing units.py (pygeodesy.named, 26.01.14)\n\n    testing unitsBase.py (pygeodesy.named, 26.01.14)\n\n    testing ups.py (pygeodesy.named, 26.01.14)\n    test 819 ups.py:147: L{EasNor2Tuple}C{(easting, northing)}\n    test 820 ups.py:209: L{LatLonDatum5Tuple}C{(lat, lon, datum, gamma, scale)}\n    test 821 ups.py:355: L{UtmUps5Tuple}C{(zone, hemipole, easting, northing, band)}\n    test 822 ups.py:402: L{UtmUps8Tuple}C{(zone, hemipole, easting, northing, band, datum, gamma, scale)}\n    test 823 ups.py:477: L{UtmUpsLatLon5Tuple}C{(zone, band, hemipole, lat, lon)}\n\n    testing utily.py (pygeodesy.named, 26.01.14)\n    test 824 utily.py:203: L{Circle4Tuple}C{(radius, height, lat, beta)}\n\n    testing utm.py (pygeodesy.named, 26.01.14)\n    test 825 utm.py:252: L{EasNor2Tuple}C{(easting, northing)}\n    test 826 utm.py:306: L{LatLonDatum5Tuple}C{(lat, lon, datum, gamma, scale)}\n    test 827 utm.py:512: L{UtmUps5Tuple}C{(zone, hemipole, easting, northing, band)}\n    test 828 utm.py:542: L{UtmUps8Tuple}C{(zone, hemipole, easting, northing, band, datum, gamma, scale)}\n    test 829 utm.py:721: L{UtmUpsLatLon5Tuple}C{(zone, band, hemipole, lat, lon)}\n\n    testing utmups.py (pygeodesy.named, 26.01.14)\n    test 830 utmups.py:89: L{UtmUps5Tuple}C{(zone, hemipole, easting, northing, band)}\n    test 831 utmups.py:129: L{UtmUps8Tuple}C{(zone, hemipole, easting, northing, band, datum, gamma, scale)}\n    test 832 utmups.py:278: L{UtmUpsLatLon5Tuple}C{(zone, band, hemipole, lat, lon)}\n\n    testing utmupsBase.py (pygeodesy.named, 26.01.14)\n    test 833 utmupsBase.py:158: L{EasNor2Tuple}C{(easting, northing)}\n    test 834 utmupsBase.py:168: L{EasNor2Tuple}C{(easting, northing)}\n    test 835 utmupsBase.py:366: L{EasNor2Tuple}C{(easting, northing)}\n\n    testing vector2d.py (pygeodesy.named, 26.01.14)\n    test 836 vector2d.py:148: L{Circin6Tuple}C{(radius, center, deltas, cA, cB, cC)}\n    test 837 vector2d.py:212: L{Circum3Tuple}C{(radius, center, deltas)}\n    test 838 vector2d.py:262: L{Circum4Tuple}C{(radius, center, rank, residuals)}\n    test 839 vector2d.py:338: L{Meeus2Tuple}C{(radius, Type)}\n    test 840 vector2d.py:513: L{Radii11Tuple}C{(rA, rB, rC, cR, rIn, riS, roS, a, b, c, s)}\n    test 841 vector2d.py:590: L{Soddy4Tuple}C{(radius, center, deltas, outer)}\n    test 842 vector2d.py:623: L{Triaxum5Tuple}C{(a, b, c, rank, residuals)}\n    test 843 vector2d.py:705: L{Vector2Tuple}C{(x, y)}\n\n    testing vector3d.py (pygeodesy.named, 26.01.14)\n    test 844 vector3d.py:75: L{Circin6Tuple}C{(radius, center, deltas, cA, cB, cC)}\n    test 845 vector3d.py:109: L{Circum3Tuple}C{(radius, center, deltas)}\n    test 846 vector3d.py:135: L{Circum4Tuple}C{(radius, center, rank, residuals)}\n    test 847 vector3d.py:182: L{Meeus2Tuple}C{(radius, Type)}\n    test 848 vector3d.py:228: L{NearestOn6Tuple}C{(closest, distance, fi, j, start, end)}\n    test 849 vector3d.py:264: L{Radii11Tuple}C{(rA, rB, rC, cR, rIn, riS, roS, a, b, c, s)}\n    test 850 vector3d.py:291: L{Soddy4Tuple}C{(radius, center, deltas, outer)}\n    test 851 vector3d.py:516: L{Intersection3Tuple}C{(point, outside1, outside2)}\n    test 852 vector3d.py:742: L{NearestOn6Tuple}C{(closest, distance, fi, j, start, end)}\n    test 853 vector3d.py:813: L{Vector3Tuple}C{(x, y, z)}\n    test 854 vector3d.py:837: L{Vector3Tuple}C{(x, y, z)}\n\n    testing vector3dBase.py (pygeodesy.named, 26.01.14)\n    test 855 vector3dBase.py:1039: L{PhiLam2Tuple}C{(phi, lam)}\n    test 856 vector3dBase.py:1047: L{LatLon2Tuple}C{(lat, lon)}\n    test 857 vector3dBase.py:1113: L{Vector3Tuple}C{(x, y, z)}\n\n    testing webmercator.py (pygeodesy.named, 26.01.14)\n    test 858 webmercator.py:121: L{LatLon2Tuple}C{(lat, lon)}\n    test 859 webmercator.py:179: L{LatLon2Tuple}C{(lat, lon)}\n    test 860 webmercator.py:288: L{EasNorRadius3Tuple}C{(easting, northing, radius)}\n    test 861 webmercator.py:324: L{EasNorRadius3Tuple}C{(easting, northing, radius)}\n\n    testing wgrs.py (pygeodesy.named, 26.01.14)\n    test 862 wgrs.py:221: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 863 wgrs.py:239: L{LatLonPrec3Tuple}C{(lat, lon, precision)}\n    test 864 wgrs.py:292: L{LatLonPrec5Tuple}C{(lat, lon, precision, height, radius)}\n\n    testing auxilats._CX_4.py (pygeodesy.named, 26.01.14)\n\n    testing auxilats._CX_6.py (pygeodesy.named, 26.01.14)\n\n    testing auxilats._CX_8.py (pygeodesy.named, 26.01.14)\n\n    testing auxilats._CX_Rs.py (pygeodesy.named, 26.01.14)\n\n    testing auxilats.__init__.py (pygeodesy.named, 26.01.14)\n\n    testing auxilats.__main__.py (pygeodesy.named, 26.01.14)\n\n    testing auxilats.auxAngle.py (pygeodesy.named, 26.01.14)\n\n    testing auxilats.auxDLat.py (pygeodesy.named, 26.01.14)\n\n    testing auxilats.auxDST.py (pygeodesy.named, 26.01.14)\n\n    testing auxilats.auxLat.py (pygeodesy.named, 26.01.14)\n\n    testing auxilats.auxily.py (pygeodesy.named, 26.01.14)\n\n    testing deprecated.__init__.py (pygeodesy.named, 26.01.14)\n\n    testing deprecated.bases.py (pygeodesy.named, 26.01.14)\n\n    testing deprecated.classes.py (pygeodesy.named, 26.01.14)\n    test 865 deprecated.classes.py:82: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 866 deprecated.classes.py:96: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n\n    testing deprecated.consterns.py (pygeodesy.named, 26.01.14)\n\n    testing deprecated.datum.py (pygeodesy.named, 26.01.14)\n\n    testing deprecated.functions.py (pygeodesy.named, 26.01.14)\n    test 867 deprecated.functions.py:56: L{ClipCS3Tuple}C{(start, end, index)}  FAILED, KNOWN, expected DEPRECATED\n    test 868 deprecated.functions.py:390: L{TriAngle4Tuple}C{(radA, radB, radC, rIn)}  FAILED, KNOWN, expected DEPRECATED\n\n    testing deprecated.nvector.py (pygeodesy.named, 26.01.14)\n\n    testing deprecated.rhumbBase.py (pygeodesy.named, 26.01.14)\n\n    testing deprecated.rhumbaux.py (pygeodesy.named, 26.01.14)\n\n    testing deprecated.rhumbsolve.py (pygeodesy.named, 26.01.14)\n\n    testing deprecated.rhumbx.py (pygeodesy.named, 26.01.14)\n\n    testing geodesicx._C4_24.py (pygeodesy.named, 26.01.14)\n\n    testing geodesicx._C4_27.py (pygeodesy.named, 26.01.14)\n\n    testing geodesicx._C4_30.py (pygeodesy.named, 26.01.14)\n\n    testing geodesicx.__init__.py (pygeodesy.named, 26.01.14)\n\n    testing geodesicx.__main__.py (pygeodesy.named, 26.01.14)\n\n    testing geodesicx.gx.py (pygeodesy.named, 26.01.14)\n    test 869 geodesicx.gx.py:357: L{Destination3Tuple}C{(lat, lon, final)}\n    test 870 geodesicx.gx.py:710: L{Direct9Tuple}C{(a12, lat2, lon2, azi2, s12, m12, M12, M21, S12)}\n    test 871 geodesicx.gx.py:719: L{Inverse10Tuple}C{(a12, s12, salp1, calp1, salp2, calp2, m12, M12, M21, S12)}\n    test 872 geodesicx.gx.py:774: L{Distance3Tuple}C{(distance, initial, final)}\n\n    testing geodesicx.gxarea.py (pygeodesy.named, 26.01.14)\n    test 873 geodesicx.gxarea.py:161: L{Area3Tuple}C{(number, perimeter, area)}\n    test 874 geodesicx.gxarea.py:323: L{Area3Tuple}C{(number, perimeter, area)}\n    test 875 geodesicx.gxarea.py:350: L{Area3Tuple}C{(number, perimeter, area)}\n\n    testing geodesicx.gxbases.py (pygeodesy.named, 26.01.14)\n\n    testing geodesicx.gxline.py (pygeodesy.named, 26.01.14)\n    test 876 geodesicx.gxline.py:464: L{Direct9Tuple}C{(a12, lat2, lon2, azi2, s12, m12, M12, M21, S12)}\n\n    testing rhumb.__init__.py (pygeodesy.named, 26.01.14)\n\n    testing rhumb.aux_.py (pygeodesy.named, 26.01.14)\n\n    testing rhumb.bases.py (pygeodesy.named, 26.01.14)\n    test 877 rhumb.bases.py:589: L{Distance2Tuple}C{(distance, initial)}\n    test 878 rhumb.bases.py:782: L{LatLon2Tuple}C{(lat, lon)}\n\n    testing rhumb.ekx.py (pygeodesy.named, 26.01.14)\n    test 879 rhumb.ekx.py:201: L{RhumbOrder2Tuple}C{(RAorder, TMorder)}  FAILED, KNOWN, expected DEPRECATED\n\n    testing rhumb.solve.py (pygeodesy.named, 26.01.14)\n    test 880 rhumb.solve.py:120: L{Destination3Tuple}C{(lat, lon, final)}\n    test 881 rhumb.solve.py:184: L{Distance3Tuple}C{(distance, initial, final)}\n\n    testing triaxials.__init__.py (pygeodesy.named, 26.01.14)\n\n    testing triaxials.bases.py (pygeodesy.named, 26.01.14)\n    test 882 triaxials.bases.py:379: L{Ellipse5Tuple}C{(a, b, height, lat, beta)}\n    test 883 triaxials.bases.py:508: L{Vector4Tuple}C{(x, y, z, h)}\n\n    testing triaxials.conformal3.py (pygeodesy.named, 26.01.14)\n    test 884 triaxials.conformal3.py:174: L{Conformal5Tuple}C{(x, y, z, scale, llk)}\n    test 885 triaxials.conformal3.py:190: L{BetOmgGam5Tuple}C{(bet, omg, gam, scale, llk)}\n    test 886 triaxials.conformal3.py:216: L{Cartesian5Tuple}C{(x, y, z, h, llk)}\n    test 887 triaxials.conformal3.py:248: L{BetOmgGam5Tuple}C{(bet, omg, gam, scale, llk)}\n    test 888 triaxials.conformal3.py:269: L{BetOmgGam5Tuple}C{(bet, omg, gam, scale, llk)}\n    test 889 triaxials.conformal3.py:290: L{BetOmgGam5Tuple}C{(bet, omg, gam, scale, llk)}\n\n    testing triaxials.triaxial3.py (pygeodesy.named, 26.01.14)\n    test 890 triaxials.triaxial3.py:175: L{Cartesian5Tuple}C{(x, y, z, h, llk)}\n    test 891 triaxials.triaxial3.py:203: L{Cartesian5Tuple}C{(x, y, z, h, llk)}\n    test 892 triaxials.triaxial3.py:277: L{Cartesian5Tuple}C{(x, y, z, h, llk)}\n    test 893 triaxials.triaxial3.py:303: L{Cartesian5Tuple}C{(x, y, z, h, llk)}\n    test 894 triaxials.triaxial3.py:323: L{Cartesian5Tuple}C{(x, y, z, h, llk)}\n    test 895 triaxials.triaxial3.py:347: L{Cartesian5Tuple}C{(x, y, z, h, llk)}\n    test 896 triaxials.triaxial3.py:421: L{Cartesian5Tuple}C{(x, y, z, h, llk)}\n    test 897 triaxials.triaxial3.py:458: L{BetOmgAlp5Tuple}C{(bet, omg, alp, h, llk)}\n    test 898 triaxials.triaxial3.py:497: L{BetOmgAlp5Tuple}C{(bet, omg, alp, h, llk)}\n    test 899 triaxials.triaxial3.py:580: L{Cartesian5Tuple}C{(x, y, z, h, llk)}\n    test 900 triaxials.triaxial3.py:607: L{BetOmgAlp5Tuple}C{(bet, omg, alp, h, llk)}\n    test 901 triaxials.triaxial3.py:608: L{PhiLamZet5Tuple}C{(phi, lam, zet, h, llk)}\n    test 902 triaxials.triaxial3.py:630: L{PhiLamZet5Tuple}C{(phi, lam, zet, h, llk)}\n    test 903 triaxials.triaxial3.py:649: L{PhiLamZet5Tuple}C{(phi, lam, zet, h, llk)}\n    test 904 triaxials.triaxial3.py:683: L{Cartesian5Tuple}C{(x, y, z, h, llk)}\n    test 905 triaxials.triaxial3.py:738: L{BetOmgAlp5Tuple}C{(bet, omg, alp, h, llk)}\n    test 906 triaxials.triaxial3.py:739: L{PhiLamZet5Tuple}C{(phi, lam, zet, h, llk)}\n    test 907 triaxials.triaxial3.py:767: L{Cartesian5Tuple}C{(x, y, z, h, llk)}\n\n    testing triaxials.triaxial5.py (pygeodesy.named, 26.01.14)\n    test 908 triaxials.triaxial5.py:107: L{BetaOmega2Tuple}C{(beta, omega)}\n    test 909 triaxials.triaxial5.py:119: L{BetaOmega2Tuple}C{(beta, omega)}\n    test 910 triaxials.triaxial5.py:140: L{BetaOmega3Tuple}C{(beta, omega, height)}\n    test 911 triaxials.triaxial5.py:152: L{BetaOmega3Tuple}C{(beta, omega, height)}\n    test 912 triaxials.triaxial5.py:177: L{Conformal2Tuple}C{(x, y)}\n    test 913 triaxials.triaxial5.py:188: L{Conformal2Tuple}C{(x, y)}\n    test 914 triaxials.triaxial5.py:250: L{Vector3Tuple}C{(x, y, z)}\n    test 915 triaxials.triaxial5.py:286: L{Vector3Tuple}C{(x, y, z)}\n    test 916 triaxials.triaxial5.py:311: L{Vector4Tuple}C{(x, y, z, h)}\n    test 917 triaxials.triaxial5.py:328: L{Vector3Tuple}C{(x, y, z)}\n    test 918 triaxials.triaxial5.py:348: L{Vector3Tuple}C{(x, y, z)}\n    test 919 triaxials.triaxial5.py:388: L{BetaOmega3Tuple}C{(beta, omega, height)}\n    test 920 triaxials.triaxial5.py:416: L{Vector3Tuple}C{(x, y, z)}\n    test 921 triaxials.triaxial5.py:444: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 922 triaxials.triaxial5.py:572: L{Vector2Tuple}C{(x, y)}\n    test 923 triaxials.triaxial5.py:583: L{Vector2Tuple}C{(x, y)}\n    test 924 triaxials.triaxial5.py:592: L{Conformal2Tuple}C{(x, y)}\n    test 925 triaxials.triaxial5.py:606: L{Conformal2Tuple}C{(x, y)}\n    test 926 triaxials.triaxial5.py:621: L{Conformal2Tuple}C{(x, y)}\n    test 927 triaxials.triaxial5.py:829: L{Vector4Tuple}C{(x, y, z, h)}\n    test 928 triaxials.triaxial5.py:872: L{Vector4Tuple}C{(x, y, z, h)}\n\n    testing xtend (pygeodesy.namedTuples, 26.03.12)\n    test 929 LatLon2Tuple(lat=0, lon=1): (0, 1, 2)\n    test 930 LatLon2Tuple(lat=0, lon=1): <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 931 LatLon2Tuple(lat=0, lon=1): (0, 1, 2, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 932 LatLon2Tuple(lat=0, lon=1): <class 'pygeodesy.namedTuples.LatLon4Tuple'>\n    test 933 LatLon3Tuple(lat=0, lon=1, height=2): (0, 1, 2, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 934 LatLon3Tuple(lat=0, lon=1, height=2): <class 'pygeodesy.namedTuples.LatLon4Tuple'>\n    test 935 PhiLam2Tuple(phi=0, lam=1): (0, 1, 2)\n    test 936 PhiLam2Tuple(phi=0, lam=1): <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 937 Vector3Tuple(x=0, y=1, z=2): (0, 1, 2, 4)\n    test 938 Vector3Tuple(x=0, y=1, z=2): <class 'pygeodesy.namedTuples.Vector4Tuple'>\n\n    testing bases (pygeodesy.named, 26.01.14)\n    test 939 nd.dict: test(1=1, 2=2)\n    test 940 nd.name: test\n    test 941 nd.dict: test(1=1, 2=2)\n    test 942 nd.name: test\n    test 943 nd.kwds: test(one=1, two=2)\n    test 944 nd.name: test\n    test 945 nd.dict: test(1=1, 2=2)\n    test 946 nd.name: test\n    test 947 nd.list: test(1=1, 2=2)\n    test 948 nd.name: test\n    test 949 nd.updated: test(1=1, 2=2, name='kwds')\n    test 950 nd.name: test\n\n    testing coverage (pygeodesy.named, 26.01.14)\n{E: 'E', N: 'N', NE: 'NE', NW: 'NW', S: 'S', SE: 'SE', SW: 'SW', W: 'W'}\n    test 951 nd.name: name\n    test 952 nd.named: name\n    test 953 nd.named: Neighbors8Dict\n    test 954 nd.name: test\n    test 955 nd.test: test\n    test 956 nd.test: None\n    test 957 nd.classnaming: False\n    test 958 nd.classname: Neighbors8Dict\n    test 959 nd.named2: Neighbors8Dict 'test'\n    test 960 nd.classnaming: True\n    test 961 nd.classname: geohash.Neighbors8Dict\n    test 962 nd.named2: geohash.Neighbors8Dict 'test'\n    test 963 delattr: None\n    test 964 classnaming: False\n    test 965 classnaming: True\n\n    testing unregister (pygeodesy.named, 26.01.14)\n    test 966 Conics: 1\n    test 967 Conics: 8\n    test 968 Conics.Be08Lb.unregister: None\n    test 969 Conics.Be72Lb.unregister: None\n    test 970 Conics.Fr93Lb.unregister: None\n    test 971 Conics.MaNLb.unregister: None\n    test 972 Conics.MxLb.unregister: None\n    test 973 Conics.PyT_Lb.unregister: None\n    test 974 Conics.USA_Lb.unregister: None\n    test 975 Conics.WRF_Lb.unregister: None\n    test 976 Conics: 0\n\n    test 977 Datums: 6\n    test 978 Datums: 18\n    test 979 Datums.unregister(BD72): None\n    test 980 Datums.unregister(DHDN): None\n    test 981 Datums.unregister(ED50): None\n    test 982 Datums.unregister(GDA2020): None\n    test 983 Datums.unregister(GRS80): None\n    test 984 Datums.unregister(Irl1975): None\n    test 985 Datums.unregister(Krassovski1940): None\n    test 986 Datums.unregister(Krassowsky1940): None\n    test 987 Datums.unregister(MGI): None\n    test 988 Datums.unregister(NAD27): None\n    test 989 Datums.unregister(NAD83): None\n    test 990 Datums.unregister(NTF): None\n    test 991 Datums.unregister(OSGB36): None\n    test 992 Datums.unregister(Potsdam): None\n    test 993 Datums.unregister(Sphere): None\n    test 994 Datums.unregister(TokyoJapan): None\n    test 995 Datums.unregister(WGS72): None\n    test 996 Datums.unregister(WGS84): None\n    test 997 Datums: 0\n\n    test 998 RefFrames: 32  FAILED, KNOWN, expected 0\n    test 999 RefFrames: 36\n    test 1000 RefFrames.ETRF2000.unregister: None\n    test 1001 RefFrames.ETRF2005.unregister: None\n    test 1002 RefFrames.ETRF2008.unregister: None\n    test 1003 RefFrames.ETRF2014.unregister: None\n    test 1004 RefFrames.ETRF2020.unregister: None\n    test 1005 RefFrames.ETRF88.unregister: None\n    test 1006 RefFrames.ETRF89.unregister: None\n    test 1007 RefFrames.ETRF90.unregister: None\n    test 1008 RefFrames.ETRF91.unregister: None\n    test 1009 RefFrames.ETRF92.unregister: None\n    test 1010 RefFrames.ETRF93.unregister: None\n    test 1011 RefFrames.ETRF94.unregister: None\n    test 1012 RefFrames.ETRF96.unregister: None\n    test 1013 RefFrames.ETRF97.unregister: None\n    test 1014 RefFrames.GDA2020.unregister: None\n    test 1015 RefFrames.GDA94.unregister: None\n    test 1016 RefFrames.ITRF2000.unregister: None\n    test 1017 RefFrames.ITRF2005.unregister: None\n    test 1018 RefFrames.ITRF2008.unregister: None\n    test 1019 RefFrames.ITRF2014.unregister: None\n    test 1020 RefFrames.ITRF2020.unregister: None\n    test 1021 RefFrames.ITRF88.unregister: None\n    test 1022 RefFrames.ITRF89.unregister: None\n    test 1023 RefFrames.ITRF90.unregister: None\n    test 1024 RefFrames.ITRF91.unregister: None\n    test 1025 RefFrames.ITRF92.unregister: None\n    test 1026 RefFrames.ITRF93.unregister: None\n    test 1027 RefFrames.ITRF94.unregister: None\n    test 1028 RefFrames.ITRF96.unregister: None\n    test 1029 RefFrames.ITRF97.unregister: None\n    test 1030 RefFrames.NAD83.unregister: None\n    test 1031 RefFrames.NAD83cors96.unregister: None\n    test 1032 RefFrames.WGS84.unregister: None\n    test 1033 RefFrames.WGS84g1150.unregister: None\n    test 1034 RefFrames.WGS84g1674.unregister: None\n    test 1035 RefFrames.WGS84g1762.unregister: None\n    test 1036 RefFrames: 0\n\n    test 1037 Ellipsoids: 12\n    test 1038 Ellipsoids: 49\n    test 1039 Ellipsoids.Airy1830.unregister: None\n    test 1040 Ellipsoids.AiryModified.unregister: None\n    test 1041 Ellipsoids.ATS1977.unregister: None\n    test 1042 Ellipsoids.Australia1966.unregister: None\n    test 1043 Ellipsoids.Bessel1841.unregister: None\n    test 1044 Ellipsoids.BesselModified.unregister: None\n    test 1045 Ellipsoids.CGCS2000.unregister: None\n    test 1046 Ellipsoids.Clarke1866.unregister: None\n    test 1047 Ellipsoids.Clarke1880.unregister: None\n    test 1048 Ellipsoids.Clarke1880IGN.unregister: None\n    test 1049 Ellipsoids.Clarke1880Mod.unregister: None\n    test 1050 Ellipsoids.CPM1799.unregister: None\n    test 1051 Ellipsoids.Delambre1810.unregister: None\n    test 1052 Ellipsoids.Engelis1985.unregister: None\n    test 1053 Ellipsoids.Everest1969.unregister: None\n    test 1054 Ellipsoids.Everest1975.unregister: None\n    test 1055 Ellipsoids.Fisher1968.unregister: None\n    test 1056 Ellipsoids.GEM10C.unregister: None\n    test 1057 Ellipsoids.GPES.unregister: None\n    test 1058 Ellipsoids.GRS67.unregister: None\n    test 1059 Ellipsoids.GRS80.unregister: None\n    test 1060 Ellipsoids.Helmert1906.unregister: None\n    test 1061 Ellipsoids.IAU76.unregister: None\n    test 1062 Ellipsoids.IERS1989.unregister: None\n    test 1063 Ellipsoids.IERS1992TOPEX.unregister: None\n    test 1064 Ellipsoids.IERS2003.unregister: None\n    test 1065 Ellipsoids.Intl1924.unregister: None\n    test 1066 Ellipsoids.Intl1967.unregister: None\n    test 1067 Ellipsoids.Krassovski1940.unregister: None\n    test 1068 Ellipsoids.Krassowsky1940.unregister: None\n    test 1069 Ellipsoids.Maupertuis1738.unregister: None\n    test 1070 Ellipsoids.Mercury1960.unregister: None\n    test 1071 Ellipsoids.Mercury1968Mod.unregister: None\n    test 1072 Ellipsoids.NWL1965.unregister: None\n    test 1073 Ellipsoids.OSU86F.unregister: None\n    test 1074 Ellipsoids.OSU91A.unregister: None\n    test 1075 Ellipsoids.Plessis1817.unregister: None\n    test 1076 Ellipsoids.PZ90.unregister: None\n    test 1077 Ellipsoids.SGS85.unregister: None\n    test 1078 Ellipsoids.SoAmerican1969.unregister: None\n    test 1079 Ellipsoids.Sphere.unregister: None\n    test 1080 Ellipsoids.SphereAuthalic.unregister: None\n    test 1081 Ellipsoids.SpherePopular.unregister: None\n    test 1082 Ellipsoids.Struve1860.unregister: None\n    test 1083 Ellipsoids.WGS60.unregister: None\n    test 1084 Ellipsoids.WGS66.unregister: None\n    test 1085 Ellipsoids.WGS72.unregister: None\n    test 1086 Ellipsoids.WGS84.unregister: None\n    test 1087 Ellipsoids.WGS84_NGS.unregister: None\n    test 1088 Ellipsoids: 0\n\n    test 1089 Transforms: 16\n    test 1090 Transforms: 20\n    test 1091 Transforms.BD72.unregister: None\n    test 1092 Transforms.Bessel1841.unregister: None\n    test 1093 Transforms.Clarke1866.unregister: None\n    test 1094 Transforms.DHDN.unregister: None\n    test 1095 Transforms.DHDNE.unregister: None\n    test 1096 Transforms.DHDNW.unregister: None\n    test 1097 Transforms.ED50.unregister: None\n    test 1098 Transforms.Identity.unregister: None\n    test 1099 Transforms.Irl1965.unregister: None\n    test 1100 Transforms.Irl1975.unregister: None\n    test 1101 Transforms.Krassovski1940.unregister: None\n    test 1102 Transforms.Krassowsky1940.unregister: None\n    test 1103 Transforms.MGI.unregister: None\n    test 1104 Transforms.NAD27.unregister: None\n    test 1105 Transforms.NAD83.unregister: None\n    test 1106 Transforms.NTF.unregister: None\n    test 1107 Transforms.OSGB36.unregister: None\n    test 1108 Transforms.TokyoJapan.unregister: None\n    test 1109 Transforms.WGS72.unregister: None\n    test 1110 Transforms.WGS84.unregister: None\n    test 1111 Transforms: 0\n\n    test 1112 nameof: KsOrder\n\n    10 of 1112 testNamed.py tests (0.9%) FAILED, ALL KNOWN (pygeodesy 26.3.26 Python 2.7.18 64bit arm64_x86_64 geographiclib 1.50 numpy 1.16.6 scipy 1.2.2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 -W  default) 51.184 ms\nrunning /Library/Framewo....ython -W default ~/PyGeodesy/test/testNamedTuples.py\n\n    testing testNamedTuples.py 25.12.06\n    test 1 pygeodesy.albers: Albers7Tuple(x=0.5, y=0.5, lat=0.5, lon=0.5, gamma=0.5, scale=0.5, datum=0.5)\n    test 2 pygeodesy.albers: Albers7Tuple(x=Meter, y=Meter, lat=Lat, lon=Lon, gamma=Bearing, scale=_Pass, datum=_Pass)\n    test 3 pygeodesy.albers.Albers7Tuple.x: 0.5\n    test 4 pygeodesy.albers.Albers7Tuple.y: 0.5\n    test 5 pygeodesy.albers.Albers7Tuple.lat: 0.5\n    test 6 pygeodesy.albers.Albers7Tuple.lon: 0.5\n    test 7 pygeodesy.albers.Albers7Tuple.gamma: 0.5\n    test 8 pygeodesy.albers.Albers7Tuple.scale: 0.5\n    test 9 pygeodesy.albers.Albers7Tuple.datum: 0.5\n    test 10 pygeodesy.albers.Albers7Tuple._validated: True\n    test 11 pygeodesy.albers.Albers7Tuple._validated: True\n    test 12 pygeodesy.angles: _Ang3Tuple(Ang=Ang, Ang=Ang, Ang=_Pass)\n    test 13 pygeodesy.angles._Ang3Tuple.Ang: 0.5\n    test 14 pygeodesy.angles._Ang3Tuple.Ang: 0.5\n    test 15 pygeodesy.angles._Ang3Tuple.Ang: 0.5\n    test 16 pygeodesy.angles._Ang3Tuple._validated: True\n    test 17 pygeodesy.angles._Ang3Tuple._validated: True\n    test 18 pygeodesy.azimuthal: Azimuthal7Tuple(x=0.5, y=0.5, lat=0.5, lon=0.5, azimuth=0.5, scale=0.5, datum=0.5)\n    test 19 pygeodesy.azimuthal: Azimuthal7Tuple(x=Easting, y=Northing, lat=Lat_, lon=Lon_, azimuth=Azimuth, scale=Scalar, datum=_Pass)\n    test 20 pygeodesy.azimuthal.Azimuthal7Tuple.x: 0.5\n    test 21 pygeodesy.azimuthal.Azimuthal7Tuple.y: 0.5\n    test 22 pygeodesy.azimuthal.Azimuthal7Tuple.lat: 0.5\n    test 23 pygeodesy.azimuthal.Azimuthal7Tuple.lon: 0.5\n    test 24 pygeodesy.azimuthal.Azimuthal7Tuple.azimuth: 0.5\n    test 25 pygeodesy.azimuthal.Azimuthal7Tuple.scale: 0.5\n    test 26 pygeodesy.azimuthal.Azimuthal7Tuple.datum: 0.5\n    test 27 pygeodesy.azimuthal.Azimuthal7Tuple._validated: True\n    test 28 pygeodesy.azimuthal.Azimuthal7Tuple._validated: True\n    test 29 pygeodesy.cartesianBase: RadiusThetaPhi3Tuple(r=0.5, theta=0.5, phi=0.5)\n    test 30 pygeodesy.cartesianBase: RadiusThetaPhi3Tuple(r=Meter, theta=_Pass, phi=_Pass)\n    test 31 pygeodesy.cartesianBase.RadiusThetaPhi3Tuple.r: 0.5\n    test 32 pygeodesy.cartesianBase.RadiusThetaPhi3Tuple.theta: 0.5\n    test 33 pygeodesy.cartesianBase.RadiusThetaPhi3Tuple.phi: 0.5\n    test 34 pygeodesy.cartesianBase.RadiusThetaPhi3Tuple._validated: True\n    test 35 pygeodesy.cartesianBase.RadiusThetaPhi3Tuple._validated: True\n    test 36 pygeodesy.clipy: ClipCS4Tuple(start=0.5, end=0.5, i=0, j=0)\n    test 37 pygeodesy.clipy: ClipCS4Tuple(start=_Pass, end=_Pass, i=Number_, j=Number_)\n    test 38 pygeodesy.clipy.ClipCS4Tuple.start: 0.5\n    test 39 pygeodesy.clipy.ClipCS4Tuple.end: 0.5\n    test 40 pygeodesy.clipy.ClipCS4Tuple.i: 0.5\n    test 41 pygeodesy.clipy.ClipCS4Tuple.j: 0.5\n    test 42 pygeodesy.clipy.ClipCS4Tuple._validated: True\n    test 43 pygeodesy.clipy.ClipCS4Tuple._validated: True\n    test 44 pygeodesy.clipy: ClipFHP4Tuple(lat=0.5, lon=0.5, height=0.5, clipid=0)\n    test 45 pygeodesy.clipy: ClipFHP4Tuple(lat=Lat, lon=Lon, height=_Pass, clipid=Number_)\n    test 46 pygeodesy.clipy.ClipFHP4Tuple.lat: 0.5\n    test 47 pygeodesy.clipy.ClipFHP4Tuple.lon: 0.5\n    test 48 pygeodesy.clipy.ClipFHP4Tuple.height: 0.5\n    test 49 pygeodesy.clipy.ClipFHP4Tuple.clipid: 0.5\n    test 50 pygeodesy.clipy.ClipFHP4Tuple._validated: True\n    test 51 pygeodesy.clipy.ClipFHP4Tuple._validated: True\n    test 52 pygeodesy.clipy: ClipGH4Tuple(lat=0.5, lon=0.5, height=0.5, clipid=0)\n    test 53 pygeodesy.clipy: ClipGH4Tuple(lat=Lat, lon=Lon, height=_Pass, clipid=Number_)\n    test 54 pygeodesy.clipy.ClipGH4Tuple.lat: 0.5\n    test 55 pygeodesy.clipy.ClipGH4Tuple.lon: 0.5\n    test 56 pygeodesy.clipy.ClipGH4Tuple.height: 0.5\n    test 57 pygeodesy.clipy.ClipGH4Tuple.clipid: 0.5\n    test 58 pygeodesy.clipy.ClipGH4Tuple._validated: True\n    test 59 pygeodesy.clipy.ClipGH4Tuple._validated: True\n    test 60 pygeodesy.clipy: ClipLB6Tuple(start=0.5, end=0.5, i=0, fi=0.5, fj=0.5, j=0)\n    test 61 pygeodesy.clipy: ClipLB6Tuple(start=_Pass, end=_Pass, i=Number_, fi=_Pass, fj=_Pass, j=Number_)\n    test 62 pygeodesy.clipy.ClipLB6Tuple.start: 0.5\n    test 63 pygeodesy.clipy.ClipLB6Tuple.end: 0.5\n    test 64 pygeodesy.clipy.ClipLB6Tuple.i: 0.5\n    test 65 pygeodesy.clipy.ClipLB6Tuple.fi: 0.5\n    test 66 pygeodesy.clipy.ClipLB6Tuple.fj: 0.5\n    test 67 pygeodesy.clipy.ClipLB6Tuple.j: 0.5\n    test 68 pygeodesy.clipy.ClipLB6Tuple._validated: True\n    test 69 pygeodesy.clipy.ClipLB6Tuple._validated: True\n    test 70 pygeodesy.clipy: ClipSH3Tuple(start=0.5, end=0.5, original=True)\n    test 71 pygeodesy.clipy: ClipSH3Tuple(start=_Pass, end=_Pass, original=Bool)\n    test 72 pygeodesy.clipy.ClipSH3Tuple.start: 0.5\n    test 73 pygeodesy.clipy.ClipSH3Tuple.end: 0.5\n    test 74 pygeodesy.clipy.ClipSH3Tuple.original: 0.5\n    test 75 pygeodesy.clipy.ClipSH3Tuple._validated: True\n    test 76 pygeodesy.clipy.ClipSH3Tuple._validated: True\n    test 77 pygeodesy.css: EasNorAziRk4Tuple(easting=0.5, northing=0.5, azimuth=0.5, reciprocal=0.5)\n    test 78 pygeodesy.css: EasNorAziRk4Tuple(easting=Easting, northing=Northing, azimuth=Azimuth, reciprocal=Scalar)\n    test 79 pygeodesy.css.EasNorAziRk4Tuple.easting: 0.5\n    test 80 pygeodesy.css.EasNorAziRk4Tuple.northing: 0.5\n    test 81 pygeodesy.css.EasNorAziRk4Tuple.azimuth: 0.5\n    test 82 pygeodesy.css.EasNorAziRk4Tuple.reciprocal: 0.5\n    test 83 pygeodesy.css.EasNorAziRk4Tuple._validated: True\n    test 84 pygeodesy.css.EasNorAziRk4Tuple._validated: True\n    test 85 pygeodesy.css: EasNorAziRkEqu6Tuple(easting=0.5, northing=0.5, azimuth=0.5, reciprocal=0.5, equatorarc=0.5, equatorazimuth=0.5)\n    test 86 pygeodesy.css: EasNorAziRkEqu6Tuple(easting=Easting, northing=Northing, azimuth=Azimuth, reciprocal=Scalar, equatorarc=Degrees, equatorazimuth=Azimuth)\n    test 87 pygeodesy.css.EasNorAziRkEqu6Tuple.easting: 0.5\n    test 88 pygeodesy.css.EasNorAziRkEqu6Tuple.northing: 0.5\n    test 89 pygeodesy.css.EasNorAziRkEqu6Tuple.azimuth: 0.5\n    test 90 pygeodesy.css.EasNorAziRkEqu6Tuple.reciprocal: 0.5\n    test 91 pygeodesy.css.EasNorAziRkEqu6Tuple.equatorarc: 0.5\n    test 92 pygeodesy.css.EasNorAziRkEqu6Tuple.equatorazimuth: 0.5\n    test 93 pygeodesy.css.EasNorAziRkEqu6Tuple._validated: True\n    test 94 pygeodesy.css.EasNorAziRkEqu6Tuple._validated: True\n    test 95 pygeodesy.css: LatLonAziRk4Tuple(lat=0.5, lon=0.5, azimuth=0.5, reciprocal=0.5)\n    test 96 pygeodesy.css: LatLonAziRk4Tuple(lat=Lat_, lon=Lon_, azimuth=Azimuth, reciprocal=Scalar)\n    test 97 pygeodesy.css.LatLonAziRk4Tuple.lat: 0.5\n    test 98 pygeodesy.css.LatLonAziRk4Tuple.lon: 0.5\n    test 99 pygeodesy.css.LatLonAziRk4Tuple.azimuth: 0.5\n    test 100 pygeodesy.css.LatLonAziRk4Tuple.reciprocal: 0.5\n    test 101 pygeodesy.css.LatLonAziRk4Tuple._validated: True\n    test 102 pygeodesy.css.LatLonAziRk4Tuple._validated: True\n    test 103 pygeodesy.ecef: Ecef9Tuple(x=0.5, y=0.5, z=0.5, lat=0.5, lon=0.5, height=0.5, C=0, M=0.5, datum=0.5)\n    test 104 pygeodesy.ecef: Ecef9Tuple(x=Meter, y=Meter, z=Meter, lat=Lat, lon=Lon, height=Height, C=Int, M=_Pass, datum=_Pass)\n    test 105 pygeodesy.ecef.Ecef9Tuple.x: 0.5\n    test 106 pygeodesy.ecef.Ecef9Tuple.y: 0.5\n    test 107 pygeodesy.ecef.Ecef9Tuple.z: 0.5\n    test 108 pygeodesy.ecef.Ecef9Tuple.lat: 0.5\n    test 109 pygeodesy.ecef.Ecef9Tuple.lon: 0.5\n    test 110 pygeodesy.ecef.Ecef9Tuple.height: 0.5\n    test 111 pygeodesy.ecef.Ecef9Tuple.C: 0.5\n    test 112 pygeodesy.ecef.Ecef9Tuple.M: 0.5\n    test 113 pygeodesy.ecef.Ecef9Tuple.datum: 0.5\n    test 114 pygeodesy.ecef.Ecef9Tuple._validated: True\n    test 115 pygeodesy.ecef.Ecef9Tuple._validated: True\n    test 116 pygeodesy.ecef: EcefMatrix(_0_0_=0.5, _0_1_=0.5, _0_2_=0.5, _1_0_=0.5, _1_1_=0.5, _1_2_=0.5, _2_0_=0.5, _2_1_=0.5, _2_2_=0.5)\n    test 117 pygeodesy.ecef: EcefMatrix(_0_0_=Scalar, _0_1_=Scalar, _0_2_=Scalar, _1_0_=Scalar, _1_1_=Scalar, _1_2_=Scalar, _2_0_=Scalar, _2_1_=Scalar, _2_2_=Scalar)\n    test 118 pygeodesy.ecef.EcefMatrix._0_0_: 0.5\n    test 119 pygeodesy.ecef.EcefMatrix._0_1_: 0.5\n    test 120 pygeodesy.ecef.EcefMatrix._0_2_: 0.5\n    test 121 pygeodesy.ecef.EcefMatrix._1_0_: 0.5\n    test 122 pygeodesy.ecef.EcefMatrix._1_1_: 0.5\n    test 123 pygeodesy.ecef.EcefMatrix._1_2_: 0.5\n    test 124 pygeodesy.ecef.EcefMatrix._2_0_: 0.5\n    test 125 pygeodesy.ecef.EcefMatrix._2_1_: 0.5\n    test 126 pygeodesy.ecef.EcefMatrix._2_2_: 0.5\n    test 127 pygeodesy.ecef.EcefMatrix._validated: True\n    test 128 pygeodesy.ecef.EcefMatrix._validated: True\n    test 129 pygeodesy.elevations: Elevation2Tuple(elevation=0.5, data_source='0.5')\n    test 130 pygeodesy.elevations: Elevation2Tuple(elevation=Meter, data_source=Str)\n    test 131 pygeodesy.elevations.Elevation2Tuple.elevation: 0.5\n    test 132 pygeodesy.elevations.Elevation2Tuple.data_source: 0.5\n    test 133 pygeodesy.elevations.Elevation2Tuple._validated: True\n    test 134 pygeodesy.elevations.Elevation2Tuple._validated: True\n    test 135 pygeodesy.elevations: GeoidHeight2Tuple(height=0.5, model_name='0.5')\n    test 136 pygeodesy.elevations: GeoidHeight2Tuple(height=Meter, model_name=Str)\n    test 137 pygeodesy.elevations.GeoidHeight2Tuple.height: 0.5\n    test 138 pygeodesy.elevations.GeoidHeight2Tuple.model_name: 0.5\n    test 139 pygeodesy.elevations.GeoidHeight2Tuple._validated: True\n    test 140 pygeodesy.elevations.GeoidHeight2Tuple._validated: True\n    test 141 pygeodesy.ellipsoids: Curvature2Tuple(meridional=0.5, prime_vertical=0.5)\n    test 142 pygeodesy.ellipsoids: Curvature2Tuple(meridional=Meter, prime_vertical=Meter)\n    test 143 pygeodesy.ellipsoids.Curvature2Tuple.meridional: 0.5\n    test 144 pygeodesy.ellipsoids.Curvature2Tuple.prime_vertical: 0.5\n    test 145 pygeodesy.ellipsoids.Curvature2Tuple._validated: True\n    test 146 pygeodesy.ellipsoids.Curvature2Tuple._validated: True\n    test 147 pygeodesy.ellipsoids: a_f2Tuple(a=0.5, f=0.5)\n    test 148 pygeodesy.ellipsoids: a_f2Tuple(a=_Pass, f=_Pass)\n    test 149 pygeodesy.ellipsoids.a_f2Tuple.a: 0.5\n    test 150 pygeodesy.ellipsoids.a_f2Tuple.f: 0.5\n    test 151 pygeodesy.ellipsoids.a_f2Tuple._validated: True\n    test 152 pygeodesy.ellipsoids.a_f2Tuple._validated: True\n    test 153 pygeodesy.elliptic: Elliptic3Tuple(sn=0.5, cn=0.5, dn=0.5)\n    test 154 pygeodesy.elliptic: Elliptic3Tuple(sn=Scalar, cn=Scalar, dn=Scalar)\n    test 155 pygeodesy.elliptic.Elliptic3Tuple.sn: 0.5\n    test 156 pygeodesy.elliptic.Elliptic3Tuple.cn: 0.5\n    test 157 pygeodesy.elliptic.Elliptic3Tuple.dn: 0.5\n    test 158 pygeodesy.elliptic.Elliptic3Tuple._validated: True\n    test 159 pygeodesy.elliptic.Elliptic3Tuple._validated: True\n    test 160 pygeodesy.formy: Radical2Tuple(ratio=0.5, xline=0.5)\n    test 161 pygeodesy.formy: Radical2Tuple(ratio=Scalar, xline=Scalar)\n    test 162 pygeodesy.formy.Radical2Tuple.ratio: 0.5\n    test 163 pygeodesy.formy.Radical2Tuple.xline: 0.5\n    test 164 pygeodesy.formy.Radical2Tuple._validated: True\n    test 165 pygeodesy.formy.Radical2Tuple._validated: True\n    test 166 pygeodesy.frechet: Frechet6Tuple(fd=0.5, fi1=0.5, fi2=0.5, r=0, n=0, units='test')\n    test 167 pygeodesy.frechet: Frechet6Tuple(fd=_Pass, fi1=FIx, fi2=FIx, r=Number_, n=Number_, units=_Pass)\n    test 168 pygeodesy.frechet.Frechet6Tuple.fd: 0.5\n    test 169 pygeodesy.frechet.Frechet6Tuple.fi1: 0.5\n    test 170 pygeodesy.frechet.Frechet6Tuple.fi2: 0.5\n    test 171 pygeodesy.frechet.Frechet6Tuple.r: 0.5\n    test 172 pygeodesy.frechet.Frechet6Tuple.n: 0.5\n    test 173 pygeodesy.frechet.Frechet6Tuple.units: <bound method Frechet6Tuple.units of Frechet6Tuple(fd=0.5, fi1=0.5, fi2=0.5, r=0.5, n=0.5, units='test')>\n    test 174 pygeodesy.frechet.Frechet6Tuple._validated: True\n    test 175 pygeodesy.frechet.Frechet6Tuple._validated: True\n    test 176 pygeodesy.fsums: Fsum2Tuple(fsum=0.5, residual=0.5)\n    test 177 pygeodesy.fsums: Fsum2Tuple(fsum=_Float_Int, residual=_Float_Int)\n    test 178 pygeodesy.fsums.Fsum2Tuple.fsum: 0.5\n    test 179 pygeodesy.fsums.Fsum2Tuple.residual: 0.5\n    test 180 pygeodesy.fsums.Fsum2Tuple._validated: True\n    test 181 pygeodesy.fsums.Fsum2Tuple._validated: True\n    test 182 pygeodesy.geod3solve: Geod3Solve8Tuple(bet1=Deg, omg1=Deg, alp1=Deg, bet2=Deg, omg2=Deg, alp2=Deg, s12=Meter, a12=Deg)\n    test 183 pygeodesy.geod3solve.Geod3Solve8Tuple.bet1: 0.5\n    test 184 pygeodesy.geod3solve.Geod3Solve8Tuple.omg1: 0.5\n    test 185 pygeodesy.geod3solve.Geod3Solve8Tuple.alp1: 0.5\n    test 186 pygeodesy.geod3solve.Geod3Solve8Tuple.bet2: 0.5\n    test 187 pygeodesy.geod3solve.Geod3Solve8Tuple.omg2: 0.5\n    test 188 pygeodesy.geod3solve.Geod3Solve8Tuple.alp2: 0.5\n    test 189 pygeodesy.geod3solve.Geod3Solve8Tuple.s12: 0.5\n    test 190 pygeodesy.geod3solve.Geod3Solve8Tuple.a12: 0.5\n    test 191 pygeodesy.geod3solve.Geod3Solve8Tuple._validated: True\n    test 192 pygeodesy.geod3solve.Geod3Solve8Tuple._validated: True\n    test 193 pygeodesy.geodesici: Intersect7Tuple(A=0.5, B=0.5, sAB=0.5, aAB=0.5, c=0, kA=0, kB=0)\n    test 194 pygeodesy.geodesici: Intersect7Tuple(A=_Pass, B=_Pass, sAB=Meter, aAB=Degrees, c=Int, kA=Int, kB=Int)\n    test 195 pygeodesy.geodesici.Intersect7Tuple.A: 0.5\n    test 196 pygeodesy.geodesici.Intersect7Tuple.B: 0.5\n    test 197 pygeodesy.geodesici.Intersect7Tuple.sAB: 0.5\n    test 198 pygeodesy.geodesici.Intersect7Tuple.aAB: 0.5\n    test 199 pygeodesy.geodesici.Intersect7Tuple.c: 0.5\n    test 200 pygeodesy.geodesici.Intersect7Tuple.kA: 0.5\n    test 201 pygeodesy.geodesici.Intersect7Tuple.kB: 0.5\n    test 202 pygeodesy.geodesici.Intersect7Tuple._validated: True\n    test 203 pygeodesy.geodesici.Intersect7Tuple._validated: True\n    test 204 pygeodesy.geodesici: Intersectool5Tuple(A=0.5, B=0.5, sAB=0.5, aAB=0.5, c=0)\n    test 205 pygeodesy.geodesici: Intersectool5Tuple(A=_Pass, B=_Pass, sAB=Meter, aAB=Degrees, c=Int)\n    test 206 pygeodesy.geodesici.Intersectool5Tuple.A: 0.5\n    test 207 pygeodesy.geodesici.Intersectool5Tuple.B: 0.5\n    test 208 pygeodesy.geodesici.Intersectool5Tuple.sAB: 0.5\n    test 209 pygeodesy.geodesici.Intersectool5Tuple.aAB: 0.5\n    test 210 pygeodesy.geodesici.Intersectool5Tuple.c: 0.5\n    test 211 pygeodesy.geodesici.Intersectool5Tuple._validated: True\n    test 212 pygeodesy.geodesici.Intersectool5Tuple._validated: True\n    test 213 pygeodesy.geodesici: Intersector5Tuple(A=0.5, B=0.5, sAB=0.5, aAB=0.5, c=0)\n    test 214 pygeodesy.geodesici: Intersector5Tuple(A=_Pass, B=_Pass, sAB=Meter, aAB=Degrees, c=Int)\n    test 215 pygeodesy.geodesici.Intersector5Tuple.A: 0.5\n    test 216 pygeodesy.geodesici.Intersector5Tuple.B: 0.5\n    test 217 pygeodesy.geodesici.Intersector5Tuple.sAB: 0.5\n    test 218 pygeodesy.geodesici.Intersector5Tuple.aAB: 0.5\n    test 219 pygeodesy.geodesici.Intersector5Tuple.c: 0.5\n    test 220 pygeodesy.geodesici.Intersector5Tuple._validated: True\n    test 221 pygeodesy.geodesici.Intersector5Tuple._validated: True\n    test 222 pygeodesy.geodesici: Middle5Tuple(A=0.5, B=0.5, sMM=0.5, aMM=0.5, c=0)\n    test 223 pygeodesy.geodesici: Middle5Tuple(A=_Pass, B=_Pass, sMM=Meter, aMM=Degrees, c=Int)\n    test 224 pygeodesy.geodesici.Middle5Tuple.A: 0.5\n    test 225 pygeodesy.geodesici.Middle5Tuple.B: 0.5\n    test 226 pygeodesy.geodesici.Middle5Tuple.sMM: 0.5\n    test 227 pygeodesy.geodesici.Middle5Tuple.aMM: 0.5\n    test 228 pygeodesy.geodesici.Middle5Tuple.c: 0.5\n    test 229 pygeodesy.geodesici.Middle5Tuple._validated: True\n    test 230 pygeodesy.geodesici.Middle5Tuple._validated: True\n    test 231 pygeodesy.geodsolve: GeodSolve12Tuple(lat1=0.5, lon1=0.5, azi1=0.5, lat2=0.5, lon2=0.5, azi2=0.5, s12=0.5, a12=0.5, m12=0.5, M12=0.5, M21=0.5, S12=0.5)\n    test 232 pygeodesy.geodsolve: GeodSolve12Tuple(lat1=_Lat, lon1=_Lon, azi1=Azimuth, lat2=_Lat, lon2=_Lon, azi2=Azimuth, s12=Meter, a12=Degrees, m12=_Pass, M12=_Pass, M21=_Pass, S12=Meter2)\n    test 233 pygeodesy.geodsolve.GeodSolve12Tuple.lat1: 0.5\n    test 234 pygeodesy.geodsolve.GeodSolve12Tuple.lon1: 0.5\n    test 235 pygeodesy.geodsolve.GeodSolve12Tuple.azi1: 0.5\n    test 236 pygeodesy.geodsolve.GeodSolve12Tuple.lat2: 0.5\n    test 237 pygeodesy.geodsolve.GeodSolve12Tuple.lon2: 0.5\n    test 238 pygeodesy.geodsolve.GeodSolve12Tuple.azi2: 0.5\n    test 239 pygeodesy.geodsolve.GeodSolve12Tuple.s12: 0.5\n    test 240 pygeodesy.geodsolve.GeodSolve12Tuple.a12: 0.5\n    test 241 pygeodesy.geodsolve.GeodSolve12Tuple.m12: 0.5\n    test 242 pygeodesy.geodsolve.GeodSolve12Tuple.M12: 0.5\n    test 243 pygeodesy.geodsolve.GeodSolve12Tuple.M21: 0.5\n    test 244 pygeodesy.geodsolve.GeodSolve12Tuple.S12: 0.5\n    test 245 pygeodesy.geodsolve.GeodSolve12Tuple._validated: True\n    test 246 pygeodesy.geodsolve.GeodSolve12Tuple._validated: True\n    test 247 pygeodesy.geohash: Resolutions2Tuple(res1=0.5, res2=0.5)\n    test 248 pygeodesy.geohash: Resolutions2Tuple(res1=Degrees_, res2=Degrees_)\n    test 249 pygeodesy.geohash.Resolutions2Tuple.res1: 0.5\n    test 250 pygeodesy.geohash.Resolutions2Tuple.res2: 0.5\n    test 251 pygeodesy.geohash.Resolutions2Tuple._validated: True\n    test 252 pygeodesy.geohash.Resolutions2Tuple._validated: True\n    test 253 pygeodesy.geohash: Sizes3Tuple(height=0.5, width=0.5, radius=0.5)\n    test 254 pygeodesy.geohash: Sizes3Tuple(height=Meter, width=Meter, radius=Meter)\n    test 255 pygeodesy.geohash.Sizes3Tuple.height: 0.5\n    test 256 pygeodesy.geohash.Sizes3Tuple.width: 0.5\n    test 257 pygeodesy.geohash.Sizes3Tuple.radius: 0.5\n    test 258 pygeodesy.geohash.Sizes3Tuple._validated: True\n    test 259 pygeodesy.geohash.Sizes3Tuple._validated: True\n    test 260 pygeodesy.geoids: GeoidHeight5Tuple(lat=0.5, lon=0.5, egm84=0.5, egm96=0.5, egm2008=0.5)\n    test 261 pygeodesy.geoids: GeoidHeight5Tuple(lat=Lat, lon=Lon, egm84=Height, egm96=Height, egm2008=Height)\n    test 262 pygeodesy.geoids.GeoidHeight5Tuple.lat: 0.5\n    test 263 pygeodesy.geoids.GeoidHeight5Tuple.lon: 0.5\n    test 264 pygeodesy.geoids.GeoidHeight5Tuple.egm84: 0.5\n    test 265 pygeodesy.geoids.GeoidHeight5Tuple.egm96: 0.5\n    test 266 pygeodesy.geoids.GeoidHeight5Tuple.egm2008: 0.5\n    test 267 pygeodesy.geoids.GeoidHeight5Tuple._validated: True\n    test 268 pygeodesy.geoids.GeoidHeight5Tuple._validated: True\n    test 269 pygeodesy.hausdorff: Hausdorff6Tuple(hd=0.5, i=0, j=0, mn=0, md=0.5, units='test')\n    test 270 pygeodesy.hausdorff: Hausdorff6Tuple(hd=_Pass, i=Number_, j=Number_, mn=Number_, md=_Pass, units=_Pass)\n    test 271 pygeodesy.hausdorff.Hausdorff6Tuple.hd: 0.5\n    test 272 pygeodesy.hausdorff.Hausdorff6Tuple.i: 0.5\n    test 273 pygeodesy.hausdorff.Hausdorff6Tuple.j: 0.5\n    test 274 pygeodesy.hausdorff.Hausdorff6Tuple.mn: 0.5\n    test 275 pygeodesy.hausdorff.Hausdorff6Tuple.md: 0.5\n    test 276 pygeodesy.hausdorff.Hausdorff6Tuple.units: <bound method Hausdorff6Tuple.units of Hausdorff6Tuple(hd=0.5, i=0.5, j=0.5, mn=0.5, md=0.5, units='test')>\n    test 277 pygeodesy.hausdorff.Hausdorff6Tuple._validated: True\n    test 278 pygeodesy.hausdorff.Hausdorff6Tuple._validated: True\n    test 279 pygeodesy.karney: Area3Tuple(number=0, perimeter=0.5, area=0.5)\n    test 280 pygeodesy.karney: Area3Tuple(number=Number_, perimeter=Meter, area=Meter2)\n    test 281 pygeodesy.karney.Area3Tuple.number: 0.5\n    test 282 pygeodesy.karney.Area3Tuple.perimeter: 0.5\n    test 283 pygeodesy.karney.Area3Tuple.area: 0.5\n    test 284 pygeodesy.karney.Area3Tuple._validated: True\n    test 285 pygeodesy.karney.Area3Tuple._validated: True\n    test 286 pygeodesy.karney: Direct9Tuple(a12=0.5, lat2=0.5, lon2=0.5, azi2=0.5, s12=0.5, m12=0.5, M12=0.5, M21=0.5, S12=0.5)\n    test 287 pygeodesy.karney: Direct9Tuple(a12=Azimuth, lat2=_Lat, lon2=_Lon, azi2=Azimuth, s12=Meter, m12=_Pass, M12=_Pass, M21=_Pass, S12=Meter2)\n    test 288 pygeodesy.karney.Direct9Tuple.a12: 0.5\n    test 289 pygeodesy.karney.Direct9Tuple.lat2: 0.5\n    test 290 pygeodesy.karney.Direct9Tuple.lon2: 0.5\n    test 291 pygeodesy.karney.Direct9Tuple.azi2: 0.5\n    test 292 pygeodesy.karney.Direct9Tuple.s12: 0.5\n    test 293 pygeodesy.karney.Direct9Tuple.m12: 0.5\n    test 294 pygeodesy.karney.Direct9Tuple.M12: 0.5\n    test 295 pygeodesy.karney.Direct9Tuple.M21: 0.5\n    test 296 pygeodesy.karney.Direct9Tuple.S12: 0.5\n    test 297 pygeodesy.karney.Direct9Tuple._validated: True\n    test 298 pygeodesy.karney.Direct9Tuple._validated: True\n    test 299 pygeodesy.karney: Inverse10Tuple(a12=0.5, s12=0.5, salp1=0.5, calp1=0.5, salp2=0.5, calp2=0.5, m12=0.5, M12=0.5, M21=0.5, S12=0.5)\n    test 300 pygeodesy.karney: Inverse10Tuple(a12=Azimuth, s12=Meter, salp1=_Pass, calp1=_Pass, salp2=_Pass, calp2=_Pass, m12=_Pass, M12=_Pass, M21=_Pass, S12=Meter2)\n    test 301 pygeodesy.karney.Inverse10Tuple.a12: 0.5\n    test 302 pygeodesy.karney.Inverse10Tuple.s12: 0.5\n    test 303 pygeodesy.karney.Inverse10Tuple.salp1: 0.5\n    test 304 pygeodesy.karney.Inverse10Tuple.calp1: 0.5\n    test 305 pygeodesy.karney.Inverse10Tuple.salp2: 0.5\n    test 306 pygeodesy.karney.Inverse10Tuple.calp2: 0.5\n    test 307 pygeodesy.karney.Inverse10Tuple.m12: 0.5\n    test 308 pygeodesy.karney.Inverse10Tuple.M12: 0.5\n    test 309 pygeodesy.karney.Inverse10Tuple.M21: 0.5\n    test 310 pygeodesy.karney.Inverse10Tuple.S12: 0.5\n    test 311 pygeodesy.karney.Inverse10Tuple._validated: True\n    test 312 pygeodesy.karney.Inverse10Tuple._validated: True\n    test 313 pygeodesy.karney: Rhumb8Tuple(lat1=0.5, lon1=0.5, lat2=0.5, lon2=0.5, azi12=0.5, s12=0.5, S12=0.5, a12=0.5)\n    test 314 pygeodesy.karney: Rhumb8Tuple(lat1=Lat, lon1=Lon, lat2=Lat, lon2=Lon, azi12=Azimuth, s12=Meter, S12=Meter2, a12=Degrees)\n    test 315 pygeodesy.karney.Rhumb8Tuple.lat1: 0.5\n    test 316 pygeodesy.karney.Rhumb8Tuple.lon1: 0.5\n    test 317 pygeodesy.karney.Rhumb8Tuple.lat2: 0.5\n    test 318 pygeodesy.karney.Rhumb8Tuple.lon2: 0.5\n    test 319 pygeodesy.karney.Rhumb8Tuple.azi12: 0.5\n    test 320 pygeodesy.karney.Rhumb8Tuple.s12: 0.5\n    test 321 pygeodesy.karney.Rhumb8Tuple.S12: 0.5\n    test 322 pygeodesy.karney.Rhumb8Tuple.a12: 0.5\n    test 323 pygeodesy.karney.Rhumb8Tuple._validated: True\n    test 324 pygeodesy.karney.Rhumb8Tuple._validated: True\n    test 325 pygeodesy.ltpTuples: Aer4Tuple(azimuth=0.5, elevation=0.5, slantrange=0.5, ltp=0.5)\n    test 326 pygeodesy.ltpTuples: Aer4Tuple(azimuth=Meter, elevation=Meter, slantrange=Meter, ltp=_Pass)\n    test 327 pygeodesy.ltpTuples.Aer4Tuple.azimuth: 0.5\n    test 328 pygeodesy.ltpTuples.Aer4Tuple.elevation: 0.5\n    test 329 pygeodesy.ltpTuples.Aer4Tuple.slantrange: 0.5\n    test 330 pygeodesy.ltpTuples.Aer4Tuple.ltp: 0.5\n    test 331 pygeodesy.ltpTuples.Aer4Tuple._validated: True\n    test 332 pygeodesy.ltpTuples.Aer4Tuple._validated: True\n    test 333 pygeodesy.ltpTuples: Attitude4Tuple(alt=0.5, tilt=0.5, yaw=0.5, roll=0.5)\n    test 334 pygeodesy.ltpTuples: Attitude4Tuple(alt=Meter, tilt=Degrees, yaw=Bearing, roll=Degrees)\n    test 335 pygeodesy.ltpTuples.Attitude4Tuple.alt: 0.5\n    test 336 pygeodesy.ltpTuples.Attitude4Tuple.tilt: 0.5\n    test 337 pygeodesy.ltpTuples.Attitude4Tuple.yaw: 0.5\n    test 338 pygeodesy.ltpTuples.Attitude4Tuple.roll: 0.5\n    test 339 pygeodesy.ltpTuples.Attitude4Tuple._validated: True\n    test 340 pygeodesy.ltpTuples.Attitude4Tuple._validated: True\n    test 341 pygeodesy.ltpTuples: ChLV9Tuple(Y=0.5, X=0.5, h_=0.5, lat=0.5, lon=0.5, height=0.5, ltp=0.5, ecef=0.5, M=0.5)\n    test 342 pygeodesy.ltpTuples: ChLV9Tuple(Y=Meter, X=Meter, h_=Meter, lat=Lat, lon=Lon, height=Height, ltp=_Pass, ecef=_Pass, M=_Pass)\n    test 343 pygeodesy.ltpTuples.ChLV9Tuple.Y: 0.5\n    test 344 pygeodesy.ltpTuples.ChLV9Tuple.X: 0.5\n    test 345 pygeodesy.ltpTuples.ChLV9Tuple.h_: 0.5\n    test 346 pygeodesy.ltpTuples.ChLV9Tuple.lat: 0.5\n    test 347 pygeodesy.ltpTuples.ChLV9Tuple.lon: 0.5\n    test 348 pygeodesy.ltpTuples.ChLV9Tuple.height: 0.5\n    test 349 pygeodesy.ltpTuples.ChLV9Tuple.ltp: 0.5\n    test 350 pygeodesy.ltpTuples.ChLV9Tuple.ecef: 0.5\n    test 351 pygeodesy.ltpTuples.ChLV9Tuple.M: 0.5\n    test 352 pygeodesy.ltpTuples.ChLV9Tuple._validated: True\n    test 353 pygeodesy.ltpTuples.ChLV9Tuple._validated: True\n    test 354 pygeodesy.ltpTuples: ChLVEN2Tuple(E_LV95=0.5, N_LV95=0.5)\n    test 355 pygeodesy.ltpTuples: ChLVEN2Tuple(E_LV95=Meter, N_LV95=Meter)\n    test 356 pygeodesy.ltpTuples.ChLVEN2Tuple.E_LV95: 0.5\n    test 357 pygeodesy.ltpTuples.ChLVEN2Tuple.N_LV95: 0.5\n    test 358 pygeodesy.ltpTuples.ChLVEN2Tuple._validated: True\n    test 359 pygeodesy.ltpTuples.ChLVEN2Tuple._validated: True\n    test 360 pygeodesy.ltpTuples: ChLVYX2Tuple(Y=0.5, X=0.5)\n    test 361 pygeodesy.ltpTuples: ChLVYX2Tuple(Y=Meter, X=Meter)\n    test 362 pygeodesy.ltpTuples.ChLVYX2Tuple.Y: 0.5\n    test 363 pygeodesy.ltpTuples.ChLVYX2Tuple.X: 0.5\n    test 364 pygeodesy.ltpTuples.ChLVYX2Tuple._validated: True\n    test 365 pygeodesy.ltpTuples.ChLVYX2Tuple._validated: True\n    test 366 pygeodesy.ltpTuples: ChLVyx2Tuple(y_LV03=0.5, x_LV03=0.5)\n    test 367 pygeodesy.ltpTuples: ChLVyx2Tuple(y_LV03=Meter, x_LV03=Meter)\n    test 368 pygeodesy.ltpTuples.ChLVyx2Tuple.y_LV03: 0.5\n    test 369 pygeodesy.ltpTuples.ChLVyx2Tuple.x_LV03: 0.5\n    test 370 pygeodesy.ltpTuples.ChLVyx2Tuple._validated: True\n    test 371 pygeodesy.ltpTuples.ChLVyx2Tuple._validated: True\n    test 372 pygeodesy.ltpTuples: Enu4Tuple(east=0.5, north=0.5, up=0.5, ltp=0.5)\n    test 373 pygeodesy.ltpTuples: Enu4Tuple(east=Meter, north=Meter, up=Meter, ltp=_Pass)\n    test 374 pygeodesy.ltpTuples.Enu4Tuple.east: 0.5\n    test 375 pygeodesy.ltpTuples.Enu4Tuple.north: 0.5\n    test 376 pygeodesy.ltpTuples.Enu4Tuple.up: 0.5\n    test 377 pygeodesy.ltpTuples.Enu4Tuple.ltp: 0.5\n    test 378 pygeodesy.ltpTuples.Enu4Tuple._validated: True\n    test 379 pygeodesy.ltpTuples.Enu4Tuple._validated: True\n    test 380 pygeodesy.ltpTuples: Footprint5Tuple(center=0.5, upperleft=0.5, upperight=0.5, loweright=0.5, lowerleft=0.5)\n    test 381 pygeodesy.ltpTuples: Footprint5Tuple(center=_Pass, upperleft=_Pass, upperight=_Pass, loweright=_Pass, lowerleft=_Pass)\n    test 382 pygeodesy.ltpTuples.Footprint5Tuple.center: 0.5\n    test 383 pygeodesy.ltpTuples.Footprint5Tuple.upperleft: 0.5\n    test 384 pygeodesy.ltpTuples.Footprint5Tuple.upperight: 0.5\n    test 385 pygeodesy.ltpTuples.Footprint5Tuple.loweright: 0.5\n    test 386 pygeodesy.ltpTuples.Footprint5Tuple.lowerleft: 0.5\n    test 387 pygeodesy.ltpTuples.Footprint5Tuple._validated: True\n    test 388 pygeodesy.ltpTuples.Footprint5Tuple._validated: True\n    test 389 pygeodesy.ltpTuples: Local9Tuple(x=0.5, y=0.5, z=0.5, lat=0.5, lon=0.5, height=0.5, ltp=0.5, ecef=0.5, M=0.5)\n    test 390 pygeodesy.ltpTuples: Local9Tuple(x=Meter, y=Meter, z=Meter, lat=Lat, lon=Lon, height=Height, ltp=_Pass, ecef=_Pass, M=_Pass)\n    test 391 pygeodesy.ltpTuples.Local9Tuple.x: 0.5\n    test 392 pygeodesy.ltpTuples.Local9Tuple.y: 0.5\n    test 393 pygeodesy.ltpTuples.Local9Tuple.z: 0.5\n    test 394 pygeodesy.ltpTuples.Local9Tuple.lat: 0.5\n    test 395 pygeodesy.ltpTuples.Local9Tuple.lon: 0.5\n    test 396 pygeodesy.ltpTuples.Local9Tuple.height: 0.5\n    test 397 pygeodesy.ltpTuples.Local9Tuple.ltp: 0.5\n    test 398 pygeodesy.ltpTuples.Local9Tuple.ecef: 0.5\n    test 399 pygeodesy.ltpTuples.Local9Tuple.M: 0.5\n    test 400 pygeodesy.ltpTuples.Local9Tuple._validated: True\n    test 401 pygeodesy.ltpTuples.Local9Tuple._validated: True\n    test 402 pygeodesy.ltpTuples: Ned4Tuple(north=0.5, east=0.5, down=0.5, ltp=0.5)\n    test 403 pygeodesy.ltpTuples: Ned4Tuple(north=Meter, east=Meter, down=Meter, ltp=_Pass)\n    test 404 pygeodesy.ltpTuples.Ned4Tuple.north: 0.5\n    test 405 pygeodesy.ltpTuples.Ned4Tuple.east: 0.5\n    test 406 pygeodesy.ltpTuples.Ned4Tuple.down: 0.5\n    test 407 pygeodesy.ltpTuples.Ned4Tuple.ltp: 0.5\n    test 408 pygeodesy.ltpTuples.Ned4Tuple._validated: True\n    test 409 pygeodesy.ltpTuples.Ned4Tuple._validated: True\n    test 410 pygeodesy.ltpTuples: Uvw3Tuple(u=0.5, v=0.5, w=0.5)\n    test 411 pygeodesy.ltpTuples: Uvw3Tuple(u=Meter, v=Meter, w=Meter)\n    test 412 pygeodesy.ltpTuples.Uvw3Tuple.u: 0.5\n    test 413 pygeodesy.ltpTuples.Uvw3Tuple.v: 0.5\n    test 414 pygeodesy.ltpTuples.Uvw3Tuple.w: 0.5\n    test 415 pygeodesy.ltpTuples.Uvw3Tuple._validated: True\n    test 416 pygeodesy.ltpTuples.Uvw3Tuple._validated: True\n    test 417 pygeodesy.ltpTuples: Xyz4Tuple(x=0.5, y=0.5, z=0.5, ltp=0.5)\n    test 418 pygeodesy.ltpTuples: Xyz4Tuple(x=Meter, y=Meter, z=Meter, ltp=_Pass)\n    test 419 pygeodesy.ltpTuples.Xyz4Tuple.x: 0.5\n    test 420 pygeodesy.ltpTuples.Xyz4Tuple.y: 0.5\n    test 421 pygeodesy.ltpTuples.Xyz4Tuple.z: 0.5\n    test 422 pygeodesy.ltpTuples.Xyz4Tuple.ltp: 0.5\n    test 423 pygeodesy.ltpTuples.Xyz4Tuple._validated: True\n    test 424 pygeodesy.ltpTuples.Xyz4Tuple._validated: True\n    test 425 pygeodesy.mgrs: Mgrs4Tuple(zone='0.5', EN='0.5', easting=0.5, northing=0.5)\n    test 426 pygeodesy.mgrs: Mgrs4Tuple(zone=Str, EN=Str, easting=Easting, northing=Northing)\n    test 427 pygeodesy.mgrs.Mgrs4Tuple.zone: 0.5\n    test 428 pygeodesy.mgrs.Mgrs4Tuple.EN: 0.5\n    test 429 pygeodesy.mgrs.Mgrs4Tuple.easting: 0.5\n    test 430 pygeodesy.mgrs.Mgrs4Tuple.northing: 0.5\n    test 431 pygeodesy.mgrs.Mgrs4Tuple._validated: True\n    test 432 pygeodesy.mgrs.Mgrs4Tuple._validated: True\n    test 433 pygeodesy.mgrs: Mgrs6Tuple(zone='0.5', EN='0.5', easting=0.5, northing=0.5, band='0.5', datum=0.5)\n    test 434 pygeodesy.mgrs: Mgrs6Tuple(zone=Str, EN=Str, easting=Easting, northing=Northing, band=Str, datum=_Pass)\n    test 435 pygeodesy.mgrs.Mgrs6Tuple.zone: 0.5\n    test 436 pygeodesy.mgrs.Mgrs6Tuple.EN: 0.5\n    test 437 pygeodesy.mgrs.Mgrs6Tuple.easting: 0.5\n    test 438 pygeodesy.mgrs.Mgrs6Tuple.northing: 0.5\n    test 439 pygeodesy.mgrs.Mgrs6Tuple.band: 0.5\n    test 440 pygeodesy.mgrs.Mgrs6Tuple.datum: 0.5\n    test 441 pygeodesy.mgrs.Mgrs6Tuple._validated: True\n    test 442 pygeodesy.mgrs.Mgrs6Tuple._validated: True\n    test 443 pygeodesy.namedTuples: Bearing2Tuple(initial=0.5, final=0.5)\n    test 444 pygeodesy.namedTuples: Bearing2Tuple(initial=Bearing, final=Bearing)\n    test 445 pygeodesy.namedTuples.Bearing2Tuple.initial: 0.5\n    test 446 pygeodesy.namedTuples.Bearing2Tuple.final: 0.5\n    test 447 pygeodesy.namedTuples.Bearing2Tuple._validated: True\n    test 448 pygeodesy.namedTuples.Bearing2Tuple._validated: True\n    test 449 pygeodesy.namedTuples: Bounds2Tuple(latlonSW=0.5, latlonNE=0.5)\n    test 450 pygeodesy.namedTuples: Bounds2Tuple(latlonSW=_Pass, latlonNE=_Pass)\n    test 451 pygeodesy.namedTuples.Bounds2Tuple.latlonSW: 0.5\n    test 452 pygeodesy.namedTuples.Bounds2Tuple.latlonNE: 0.5\n    test 453 pygeodesy.namedTuples.Bounds2Tuple._validated: True\n    test 454 pygeodesy.namedTuples.Bounds2Tuple._validated: True\n    test 455 pygeodesy.namedTuples: Bounds4Tuple(latS=0.5, lonW=0.5, latN=0.5, lonE=0.5)\n    test 456 pygeodesy.namedTuples: Bounds4Tuple(latS=Lat, lonW=Lon, latN=Lat, lonE=Lon)\n    test 457 pygeodesy.namedTuples.Bounds4Tuple.latS: 0.5\n    test 458 pygeodesy.namedTuples.Bounds4Tuple.lonW: 0.5\n    test 459 pygeodesy.namedTuples.Bounds4Tuple.latN: 0.5\n    test 460 pygeodesy.namedTuples.Bounds4Tuple.lonE: 0.5\n    test 461 pygeodesy.namedTuples.Bounds4Tuple._validated: True\n    test 462 pygeodesy.namedTuples.Bounds4Tuple._validated: True\n    test 463 pygeodesy.namedTuples: Circle4Tuple(radius=0.5, height=0.5, lat=0.5, beta=0.5)\n    test 464 pygeodesy.namedTuples: Circle4Tuple(radius=Radius, height=Height, lat=Lat, beta=Lat)\n    test 465 pygeodesy.namedTuples.Circle4Tuple.radius: 0.5\n    test 466 pygeodesy.namedTuples.Circle4Tuple.height: 0.5\n    test 467 pygeodesy.namedTuples.Circle4Tuple.lat: 0.5\n    test 468 pygeodesy.namedTuples.Circle4Tuple.beta: 0.5\n    test 469 pygeodesy.namedTuples.Circle4Tuple._validated: True\n    test 470 pygeodesy.namedTuples.Circle4Tuple._validated: True\n    test 471 pygeodesy.namedTuples: Destination2Tuple(destination=0.5, final=0.5)\n    test 472 pygeodesy.namedTuples: Destination2Tuple(destination=_Pass, final=Bearing)\n    test 473 pygeodesy.namedTuples.Destination2Tuple.destination: 0.5\n    test 474 pygeodesy.namedTuples.Destination2Tuple.final: 0.5\n    test 475 pygeodesy.namedTuples.Destination2Tuple._validated: True\n    test 476 pygeodesy.namedTuples.Destination2Tuple._validated: True\n    test 477 pygeodesy.namedTuples: Destination3Tuple(lat=0.5, lon=0.5, final=0.5)\n    test 478 pygeodesy.namedTuples: Destination3Tuple(lat=Lat, lon=Lon, final=Bearing)\n    test 479 pygeodesy.namedTuples.Destination3Tuple.lat: 0.5\n    test 480 pygeodesy.namedTuples.Destination3Tuple.lon: 0.5\n    test 481 pygeodesy.namedTuples.Destination3Tuple.final: 0.5\n    test 482 pygeodesy.namedTuples.Destination3Tuple._validated: True\n    test 483 pygeodesy.namedTuples.Destination3Tuple._validated: True\n    test 484 pygeodesy.namedTuples: Distance2Tuple(distance=0.5, initial=0.5)\n    test 485 pygeodesy.namedTuples: Distance2Tuple(distance=Meter, initial=Bearing)\n    test 486 pygeodesy.namedTuples.Distance2Tuple.distance: 0.5\n    test 487 pygeodesy.namedTuples.Distance2Tuple.initial: 0.5\n    test 488 pygeodesy.namedTuples.Distance2Tuple._validated: True\n    test 489 pygeodesy.namedTuples.Distance2Tuple._validated: True\n    test 490 pygeodesy.namedTuples: Distance3Tuple(distance=0.5, initial=0.5, final=0.5)\n    test 491 pygeodesy.namedTuples: Distance3Tuple(distance=Meter, initial=Bearing, final=Bearing)\n    test 492 pygeodesy.namedTuples.Distance3Tuple.distance: 0.5\n    test 493 pygeodesy.namedTuples.Distance3Tuple.initial: 0.5\n    test 494 pygeodesy.namedTuples.Distance3Tuple.final: 0.5\n    test 495 pygeodesy.namedTuples.Distance3Tuple._validated: True\n    test 496 pygeodesy.namedTuples.Distance3Tuple._validated: True\n    test 497 pygeodesy.namedTuples: Distance4Tuple(distance2=0.5, delta_lat=0.5, delta_lon=0.5, unroll_lon2=0.5)\n    test 498 pygeodesy.namedTuples: Distance4Tuple(distance2=Degrees2, delta_lat=Degrees, delta_lon=Degrees, unroll_lon2=Degrees)\n    test 499 pygeodesy.namedTuples.Distance4Tuple.distance2: 0.5\n    test 500 pygeodesy.namedTuples.Distance4Tuple.delta_lat: 0.5\n    test 501 pygeodesy.namedTuples.Distance4Tuple.delta_lon: 0.5\n    test 502 pygeodesy.namedTuples.Distance4Tuple.unroll_lon2: 0.5\n    test 503 pygeodesy.namedTuples.Distance4Tuple._validated: True\n    test 504 pygeodesy.namedTuples.Distance4Tuple._validated: True\n    test 505 pygeodesy.namedTuples: EasNor2Tuple(easting=0.5, northing=0.5)\n    test 506 pygeodesy.namedTuples: EasNor2Tuple(easting=Easting, northing=Northing)\n    test 507 pygeodesy.namedTuples.EasNor2Tuple.easting: 0.5\n    test 508 pygeodesy.namedTuples.EasNor2Tuple.northing: 0.5\n    test 509 pygeodesy.namedTuples.EasNor2Tuple._validated: True\n    test 510 pygeodesy.namedTuples.EasNor2Tuple._validated: True\n    test 511 pygeodesy.namedTuples: EasNor3Tuple(easting=0.5, northing=0.5, height=0.5)\n    test 512 pygeodesy.namedTuples: EasNor3Tuple(easting=Easting, northing=Northing, height=Height)\n    test 513 pygeodesy.namedTuples.EasNor3Tuple.easting: 0.5\n    test 514 pygeodesy.namedTuples.EasNor3Tuple.northing: 0.5\n    test 515 pygeodesy.namedTuples.EasNor3Tuple.height: 0.5\n    test 516 pygeodesy.namedTuples.EasNor3Tuple._validated: True\n    test 517 pygeodesy.namedTuples.EasNor3Tuple._validated: True\n    test 518 pygeodesy.namedTuples: Ellipse5Tuple(a=0.5, b=0.5, height=0.5, lat=0.5, beta=0.5)\n    test 519 pygeodesy.namedTuples: Ellipse5Tuple(a=Radius, b=Radius, height=Height, lat=Lat, beta=Lat)\n    test 520 pygeodesy.namedTuples.Ellipse5Tuple.a: 0.5\n    test 521 pygeodesy.namedTuples.Ellipse5Tuple.b: 0.5\n    test 522 pygeodesy.namedTuples.Ellipse5Tuple.height: 0.5\n    test 523 pygeodesy.namedTuples.Ellipse5Tuple.lat: 0.5\n    test 524 pygeodesy.namedTuples.Ellipse5Tuple.beta: 0.5\n    test 525 pygeodesy.namedTuples.Ellipse5Tuple._validated: True\n    test 526 pygeodesy.namedTuples.Ellipse5Tuple._validated: True\n    test 527 pygeodesy.namedTuples: Forward4Tuple(easting=0.5, northing=0.5, gamma=0.5, scale=0.5)\n    test 528 pygeodesy.namedTuples: Forward4Tuple(easting=Easting, northing=Northing, gamma=Degrees, scale=Scalar)\n    test 529 pygeodesy.namedTuples.Forward4Tuple.easting: 0.5\n    test 530 pygeodesy.namedTuples.Forward4Tuple.northing: 0.5\n    test 531 pygeodesy.namedTuples.Forward4Tuple.gamma: 0.5\n    test 532 pygeodesy.namedTuples.Forward4Tuple.scale: 0.5\n    test 533 pygeodesy.namedTuples.Forward4Tuple._validated: True\n    test 534 pygeodesy.namedTuples.Forward4Tuple._validated: True\n    test 535 pygeodesy.namedTuples: Intersection3Tuple(point=0.5, outside1=0, outside2=0)\n    test 536 pygeodesy.namedTuples: Intersection3Tuple(point=_Pass, outside1=Int, outside2=Int)\n    test 537 pygeodesy.namedTuples.Intersection3Tuple.point: 0.5\n    test 538 pygeodesy.namedTuples.Intersection3Tuple.outside1: 0.5\n    test 539 pygeodesy.namedTuples.Intersection3Tuple.outside2: 0.5\n    test 540 pygeodesy.namedTuples.Intersection3Tuple._validated: True\n    test 541 pygeodesy.namedTuples.Intersection3Tuple._validated: True\n    test 542 pygeodesy.namedTuples: LatLon2Tuple(lat=0.5, lon=0.5)\n    test 543 pygeodesy.namedTuples: LatLon2Tuple(lat=Lat, lon=Lon)\n    test 544 pygeodesy.namedTuples.LatLon2Tuple.lat: 0.5\n    test 545 pygeodesy.namedTuples.LatLon2Tuple.lon: 0.5\n    test 546 pygeodesy.namedTuples.LatLon2Tuple._validated: True\n    test 547 pygeodesy.namedTuples.LatLon2Tuple._validated: True\n    test 548 pygeodesy.namedTuples: LatLon3Tuple(lat=0.5, lon=0.5, height=0.5)\n    test 549 pygeodesy.namedTuples: LatLon3Tuple(lat=Lat, lon=Lon, height=Height)\n    test 550 pygeodesy.namedTuples.LatLon3Tuple.lat: 0.5\n    test 551 pygeodesy.namedTuples.LatLon3Tuple.lon: 0.5\n    test 552 pygeodesy.namedTuples.LatLon3Tuple.height: 0.5\n    test 553 pygeodesy.namedTuples.LatLon3Tuple._validated: True\n    test 554 pygeodesy.namedTuples.LatLon3Tuple._validated: True\n    test 555 pygeodesy.namedTuples: LatLon4Tuple(lat=0.5, lon=0.5, height=0.5, datum=0.5)\n    test 556 pygeodesy.namedTuples: LatLon4Tuple(lat=Lat, lon=Lon, height=Height, datum=_Pass)\n    test 557 pygeodesy.namedTuples.LatLon4Tuple.lat: 0.5\n    test 558 pygeodesy.namedTuples.LatLon4Tuple.lon: 0.5\n    test 559 pygeodesy.namedTuples.LatLon4Tuple.height: 0.5\n    test 560 pygeodesy.namedTuples.LatLon4Tuple.datum: 0.5\n    test 561 pygeodesy.namedTuples.LatLon4Tuple._validated: True\n    test 562 pygeodesy.namedTuples.LatLon4Tuple._validated: True\n    test 563 pygeodesy.namedTuples: LatLonDatum3Tuple(lat=0.5, lon=0.5, datum=0.5)\n    test 564 pygeodesy.namedTuples: LatLonDatum3Tuple(lat=Lat, lon=Lon, datum=_Pass)\n    test 565 pygeodesy.namedTuples.LatLonDatum3Tuple.lat: 0.5\n    test 566 pygeodesy.namedTuples.LatLonDatum3Tuple.lon: 0.5\n    test 567 pygeodesy.namedTuples.LatLonDatum3Tuple.datum: 0.5\n    test 568 pygeodesy.namedTuples.LatLonDatum3Tuple._validated: True\n    test 569 pygeodesy.namedTuples.LatLonDatum3Tuple._validated: True\n    test 570 pygeodesy.namedTuples: LatLonDatum5Tuple(lat=0.5, lon=0.5, datum=0.5, gamma=0.5, scale=0.5)\n    test 571 pygeodesy.namedTuples: LatLonDatum5Tuple(lat=Lat, lon=Lon, datum=_Pass, gamma=Degrees, scale=Scalar)\n    test 572 pygeodesy.namedTuples.LatLonDatum5Tuple.lat: 0.5\n    test 573 pygeodesy.namedTuples.LatLonDatum5Tuple.lon: 0.5\n    test 574 pygeodesy.namedTuples.LatLonDatum5Tuple.datum: 0.5\n    test 575 pygeodesy.namedTuples.LatLonDatum5Tuple.gamma: 0.5\n    test 576 pygeodesy.namedTuples.LatLonDatum5Tuple.scale: 0.5\n    test 577 pygeodesy.namedTuples.LatLonDatum5Tuple._validated: True\n    test 578 pygeodesy.namedTuples.LatLonDatum5Tuple._validated: True\n    test 579 pygeodesy.namedTuples: LatLonPrec3Tuple(lat=0.5, lon=0.5, precision=0)\n    test 580 pygeodesy.namedTuples: LatLonPrec3Tuple(lat=Lat, lon=Lon, precision=Precision_)\n    test 581 pygeodesy.namedTuples.LatLonPrec3Tuple.lat: 0.5\n    test 582 pygeodesy.namedTuples.LatLonPrec3Tuple.lon: 0.5\n    test 583 pygeodesy.namedTuples.LatLonPrec3Tuple.precision: 0.5\n    test 584 pygeodesy.namedTuples.LatLonPrec3Tuple._validated: True\n    test 585 pygeodesy.namedTuples.LatLonPrec3Tuple._validated: True\n    test 586 pygeodesy.namedTuples: LatLonPrec5Tuple(lat=0.5, lon=0.5, precision=0, height=0.5, radius=0.5)\n    test 587 pygeodesy.namedTuples: LatLonPrec5Tuple(lat=Lat, lon=Lon, precision=Precision_, height=Height, radius=Radius)\n    test 588 pygeodesy.namedTuples.LatLonPrec5Tuple.lat: 0.5\n    test 589 pygeodesy.namedTuples.LatLonPrec5Tuple.lon: 0.5\n    test 590 pygeodesy.namedTuples.LatLonPrec5Tuple.precision: 0.5\n    test 591 pygeodesy.namedTuples.LatLonPrec5Tuple.height: 0.5\n    test 592 pygeodesy.namedTuples.LatLonPrec5Tuple.radius: 0.5\n    test 593 pygeodesy.namedTuples.LatLonPrec5Tuple._validated: True\n    test 594 pygeodesy.namedTuples.LatLonPrec5Tuple._validated: True\n    test 595 pygeodesy.namedTuples: NearestOn2Tuple(closest=0.5, fraction=0.5)\n    test 596 pygeodesy.namedTuples: NearestOn2Tuple(closest=_Pass, fraction=_Pass)\n    test 597 pygeodesy.namedTuples.NearestOn2Tuple.closest: 0.5\n    test 598 pygeodesy.namedTuples.NearestOn2Tuple.fraction: 0.5\n    test 599 pygeodesy.namedTuples.NearestOn2Tuple._validated: True\n    test 600 pygeodesy.namedTuples.NearestOn2Tuple._validated: True\n    test 601 pygeodesy.namedTuples: NearestOn3Tuple(closest=0.5, distance=0.5, angle=0.5)\n    test 602 pygeodesy.namedTuples: NearestOn3Tuple(closest=_Pass, distance=Meter, angle=Degrees)\n    test 603 pygeodesy.namedTuples.NearestOn3Tuple.closest: 0.5\n    test 604 pygeodesy.namedTuples.NearestOn3Tuple.distance: 0.5\n    test 605 pygeodesy.namedTuples.NearestOn3Tuple.angle: 0.5\n    test 606 pygeodesy.namedTuples.NearestOn3Tuple._validated: True\n    test 607 pygeodesy.namedTuples.NearestOn3Tuple._validated: True\n    test 608 pygeodesy.namedTuples: NearestOn5Tuple(lat=0.5, lon=0.5, distance=0.5, angle=0.5, height=0.5)\n    test 609 pygeodesy.namedTuples: NearestOn5Tuple(lat=Lat, lon=Lon, distance=Degrees, angle=Degrees, height=Meter)\n    test 610 pygeodesy.namedTuples.NearestOn5Tuple.lat: 0.5\n    test 611 pygeodesy.namedTuples.NearestOn5Tuple.lon: 0.5\n    test 612 pygeodesy.namedTuples.NearestOn5Tuple.distance: 0.5\n    test 613 pygeodesy.namedTuples.NearestOn5Tuple.angle: 0.5\n    test 614 pygeodesy.namedTuples.NearestOn5Tuple.height: 0.5\n    test 615 pygeodesy.namedTuples.NearestOn5Tuple._validated: True\n    test 616 pygeodesy.namedTuples.NearestOn5Tuple._validated: True\n    test 617 pygeodesy.namedTuples: NearestOn6Tuple(closest=0.5, distance=0.5, fi=0.5, j=0, start=0.5, end=0.5)\n    test 618 pygeodesy.namedTuples: NearestOn6Tuple(closest=_Pass, distance=Meter, fi=FIx, j=Number_, start=_Pass, end=_Pass)\n    test 619 pygeodesy.namedTuples.NearestOn6Tuple.closest: 0.5\n    test 620 pygeodesy.namedTuples.NearestOn6Tuple.distance: 0.5\n    test 621 pygeodesy.namedTuples.NearestOn6Tuple.fi: 0.5\n    test 622 pygeodesy.namedTuples.NearestOn6Tuple.j: 0.5\n    test 623 pygeodesy.namedTuples.NearestOn6Tuple.start: 0.5\n    test 624 pygeodesy.namedTuples.NearestOn6Tuple.end: 0.5\n    test 625 pygeodesy.namedTuples.NearestOn6Tuple._validated: True\n    test 626 pygeodesy.namedTuples.NearestOn6Tuple._validated: True\n    test 627 pygeodesy.namedTuples: NearestOn8Tuple(closest=0.5, distance=0.5, fi=0.5, j=0, start=0.5, end=0.5, initial=0.5, final=0.5)\n    test 628 pygeodesy.namedTuples: NearestOn8Tuple(closest=_Pass, distance=Meter, fi=FIx, j=Number_, start=_Pass, end=_Pass, initial=Bearing, final=Bearing)\n    test 629 pygeodesy.namedTuples.NearestOn8Tuple.closest: 0.5\n    test 630 pygeodesy.namedTuples.NearestOn8Tuple.distance: 0.5\n    test 631 pygeodesy.namedTuples.NearestOn8Tuple.fi: 0.5\n    test 632 pygeodesy.namedTuples.NearestOn8Tuple.j: 0.5\n    test 633 pygeodesy.namedTuples.NearestOn8Tuple.start: 0.5\n    test 634 pygeodesy.namedTuples.NearestOn8Tuple.end: 0.5\n    test 635 pygeodesy.namedTuples.NearestOn8Tuple.initial: 0.5\n    test 636 pygeodesy.namedTuples.NearestOn8Tuple.final: 0.5\n    test 637 pygeodesy.namedTuples.NearestOn8Tuple._validated: True\n    test 638 pygeodesy.namedTuples.NearestOn8Tuple._validated: True\n    test 639 pygeodesy.namedTuples: PhiLam2Tuple(phi=0.5, lam=0.5)\n    test 640 pygeodesy.namedTuples: PhiLam2Tuple(phi=Phi, lam=Lam)\n    test 641 pygeodesy.namedTuples.PhiLam2Tuple.phi: 0.5\n    test 642 pygeodesy.namedTuples.PhiLam2Tuple.lam: 0.5\n    test 643 pygeodesy.namedTuples.PhiLam2Tuple._validated: True\n    test 644 pygeodesy.namedTuples.PhiLam2Tuple._validated: True\n    test 645 pygeodesy.namedTuples: PhiLam3Tuple(phi=0.5, lam=0.5, height=0.5)\n    test 646 pygeodesy.namedTuples: PhiLam3Tuple(phi=Phi, lam=Lam, height=Height)\n    test 647 pygeodesy.namedTuples.PhiLam3Tuple.phi: 0.5\n    test 648 pygeodesy.namedTuples.PhiLam3Tuple.lam: 0.5\n    test 649 pygeodesy.namedTuples.PhiLam3Tuple.height: 0.5\n    test 650 pygeodesy.namedTuples.PhiLam3Tuple._validated: True\n    test 651 pygeodesy.namedTuples.PhiLam3Tuple._validated: True\n    test 652 pygeodesy.namedTuples: PhiLam4Tuple(phi=0.5, lam=0.5, height=0.5, datum=0.5)\n    test 653 pygeodesy.namedTuples: PhiLam4Tuple(phi=Phi, lam=Lam, height=Height, datum=_Pass)\n    test 654 pygeodesy.namedTuples.PhiLam4Tuple.phi: 0.5\n    test 655 pygeodesy.namedTuples.PhiLam4Tuple.lam: 0.5\n    test 656 pygeodesy.namedTuples.PhiLam4Tuple.height: 0.5\n    test 657 pygeodesy.namedTuples.PhiLam4Tuple.datum: 0.5\n    test 658 pygeodesy.namedTuples.PhiLam4Tuple._validated: True\n    test 659 pygeodesy.namedTuples.PhiLam4Tuple._validated: True\n    test 660 pygeodesy.namedTuples: Point3Tuple(x=0.5, y=0.5, ll=0.5)\n    test 661 pygeodesy.namedTuples: Point3Tuple(x=Meter, y=Meter, ll=_Pass)\n    test 662 pygeodesy.namedTuples.Point3Tuple.x: 0.5\n    test 663 pygeodesy.namedTuples.Point3Tuple.y: 0.5\n    test 664 pygeodesy.namedTuples.Point3Tuple.ll: 0.5\n    test 665 pygeodesy.namedTuples.Point3Tuple._validated: True\n    test 666 pygeodesy.namedTuples.Point3Tuple._validated: True\n    test 667 pygeodesy.namedTuples: Points2Tuple(number=0, points=0.5)\n    test 668 pygeodesy.namedTuples: Points2Tuple(number=Number_, points=_Pass)\n    test 669 pygeodesy.namedTuples.Points2Tuple.number: 0.5\n    test 670 pygeodesy.namedTuples.Points2Tuple.points: 0.5\n    test 671 pygeodesy.namedTuples.Points2Tuple._validated: True\n    test 672 pygeodesy.namedTuples.Points2Tuple._validated: True\n    test 673 pygeodesy.namedTuples: Reverse4Tuple(lat=0.5, lon=0.5, gamma=0.5, scale=0.5)\n    test 674 pygeodesy.namedTuples: Reverse4Tuple(lat=Lat, lon=Lon, gamma=Degrees, scale=Scalar)\n    test 675 pygeodesy.namedTuples.Reverse4Tuple.lat: 0.5\n    test 676 pygeodesy.namedTuples.Reverse4Tuple.lon: 0.5\n    test 677 pygeodesy.namedTuples.Reverse4Tuple.gamma: 0.5\n    test 678 pygeodesy.namedTuples.Reverse4Tuple.scale: 0.5\n    test 679 pygeodesy.namedTuples.Reverse4Tuple._validated: True\n    test 680 pygeodesy.namedTuples.Reverse4Tuple._validated: True\n    test 681 pygeodesy.namedTuples: Triangle7Tuple(A=0.5, a=0.5, B=0.5, b=0.5, C=0.5, c=0.5, area=0.5)\n    test 682 pygeodesy.namedTuples: Triangle7Tuple(A=Degrees, a=Meter, B=Degrees, b=Meter, C=Degrees, c=Meter, area=Meter2)\n    test 683 pygeodesy.namedTuples.Triangle7Tuple.A: 0.5\n    test 684 pygeodesy.namedTuples.Triangle7Tuple.a: 0.5\n    test 685 pygeodesy.namedTuples.Triangle7Tuple.B: 0.5\n    test 686 pygeodesy.namedTuples.Triangle7Tuple.b: 0.5\n    test 687 pygeodesy.namedTuples.Triangle7Tuple.C: 0.5\n    test 688 pygeodesy.namedTuples.Triangle7Tuple.c: 0.5\n    test 689 pygeodesy.namedTuples.Triangle7Tuple.area: 0.5\n    test 690 pygeodesy.namedTuples.Triangle7Tuple._validated: True\n    test 691 pygeodesy.namedTuples.Triangle7Tuple._validated: True\n    test 692 pygeodesy.namedTuples: Triangle8Tuple(A=0.5, a=0.5, B=0.5, b=0.5, C=0.5, c=0.5, D=0.5, E=0.5)\n    test 693 pygeodesy.namedTuples: Triangle8Tuple(A=Radians, a=Radians, B=Radians, b=Radians, C=Radians, c=Radians, D=Radians, E=Radians)\n    test 694 pygeodesy.namedTuples.Triangle8Tuple.A: 0.5\n    test 695 pygeodesy.namedTuples.Triangle8Tuple.a: 0.5\n    test 696 pygeodesy.namedTuples.Triangle8Tuple.B: 0.5\n    test 697 pygeodesy.namedTuples.Triangle8Tuple.b: 0.5\n    test 698 pygeodesy.namedTuples.Triangle8Tuple.C: 0.5\n    test 699 pygeodesy.namedTuples.Triangle8Tuple.c: 0.5\n    test 700 pygeodesy.namedTuples.Triangle8Tuple.D: 0.5\n    test 701 pygeodesy.namedTuples.Triangle8Tuple.E: 0.5\n    test 702 pygeodesy.namedTuples.Triangle8Tuple._validated: True\n    test 703 pygeodesy.namedTuples.Triangle8Tuple._validated: True\n    test 704 pygeodesy.namedTuples: Trilaterate5Tuple(min=0.5, minPoint=0.5, max=0.5, maxPoint=0.5, n=0)\n    test 705 pygeodesy.namedTuples: Trilaterate5Tuple(min=Meter, minPoint=_Pass, max=Meter, maxPoint=_Pass, n=Number_)\n    test 706 pygeodesy.namedTuples.Trilaterate5Tuple.min: 0.5\n    test 707 pygeodesy.namedTuples.Trilaterate5Tuple.minPoint: 0.5\n    test 708 pygeodesy.namedTuples.Trilaterate5Tuple.max: 0.5\n    test 709 pygeodesy.namedTuples.Trilaterate5Tuple.maxPoint: 0.5\n    test 710 pygeodesy.namedTuples.Trilaterate5Tuple.n: 0.5\n    test 711 pygeodesy.namedTuples.Trilaterate5Tuple._validated: True\n    test 712 pygeodesy.namedTuples.Trilaterate5Tuple._validated: True\n    test 713 pygeodesy.namedTuples: UtmUps2Tuple(zone=0, hemipole='0.5')\n    test 714 pygeodesy.namedTuples: UtmUps2Tuple(zone=Number_, hemipole=Str)\n    test 715 pygeodesy.namedTuples.UtmUps2Tuple.zone: 0.5\n    test 716 pygeodesy.namedTuples.UtmUps2Tuple.hemipole: 0.5\n    test 717 pygeodesy.namedTuples.UtmUps2Tuple._validated: True\n    test 718 pygeodesy.namedTuples.UtmUps2Tuple._validated: True\n    test 719 pygeodesy.namedTuples: UtmUps5Tuple(zone=0, hemipole='0.5', easting=0.5, northing=0.5, band='0.5')\n    test 720 pygeodesy.namedTuples: UtmUps5Tuple(zone=Number_, hemipole=Str, easting=Easting, northing=Northing, band=Band)\n    test 721 pygeodesy.namedTuples.UtmUps5Tuple.zone: 0.5\n    test 722 pygeodesy.namedTuples.UtmUps5Tuple.hemipole: 0.5\n    test 723 pygeodesy.namedTuples.UtmUps5Tuple.easting: 0.5\n    test 724 pygeodesy.namedTuples.UtmUps5Tuple.northing: 0.5\n    test 725 pygeodesy.namedTuples.UtmUps5Tuple.band: 0.5\n    test 726 pygeodesy.namedTuples.UtmUps5Tuple._validated: True\n    test 727 pygeodesy.namedTuples.UtmUps5Tuple._validated: True\n    test 728 pygeodesy.namedTuples: UtmUps8Tuple(zone=0, hemipole='0.5', easting=0.5, northing=0.5, band='0.5', datum=0.5, gamma=0.5, scale=0.5)\n    test 729 pygeodesy.namedTuples: UtmUps8Tuple(zone=Number_, hemipole=Str, easting=Easting, northing=Northing, band=Band, datum=_Pass, gamma=Degrees, scale=Scalar)\n    test 730 pygeodesy.namedTuples.UtmUps8Tuple.zone: 0.5\n    test 731 pygeodesy.namedTuples.UtmUps8Tuple.hemipole: 0.5\n    test 732 pygeodesy.namedTuples.UtmUps8Tuple.easting: 0.5\n    test 733 pygeodesy.namedTuples.UtmUps8Tuple.northing: 0.5\n    test 734 pygeodesy.namedTuples.UtmUps8Tuple.band: 0.5\n    test 735 pygeodesy.namedTuples.UtmUps8Tuple.datum: 0.5\n    test 736 pygeodesy.namedTuples.UtmUps8Tuple.gamma: 0.5\n    test 737 pygeodesy.namedTuples.UtmUps8Tuple.scale: 0.5\n    test 738 pygeodesy.namedTuples.UtmUps8Tuple._validated: True\n    test 739 pygeodesy.namedTuples.UtmUps8Tuple._validated: True\n    test 740 pygeodesy.namedTuples: UtmUpsLatLon5Tuple(zone=0, band='0.5', hemipole='0.5', lat=0.5, lon=0.5)\n    test 741 pygeodesy.namedTuples: UtmUpsLatLon5Tuple(zone=Number_, band=Band, hemipole=Str, lat=Lat, lon=Lon)\n    test 742 pygeodesy.namedTuples.UtmUpsLatLon5Tuple.zone: 0.5\n    test 743 pygeodesy.namedTuples.UtmUpsLatLon5Tuple.band: 0.5\n    test 744 pygeodesy.namedTuples.UtmUpsLatLon5Tuple.hemipole: 0.5\n    test 745 pygeodesy.namedTuples.UtmUpsLatLon5Tuple.lat: 0.5\n    test 746 pygeodesy.namedTuples.UtmUpsLatLon5Tuple.lon: 0.5\n    test 747 pygeodesy.namedTuples.UtmUpsLatLon5Tuple._validated: True\n    test 748 pygeodesy.namedTuples.UtmUpsLatLon5Tuple._validated: True\n    test 749 pygeodesy.namedTuples: Vector2Tuple(x=0.5, y=0.5)\n    test 750 pygeodesy.namedTuples: Vector2Tuple(x=Scalar, y=Scalar)\n    test 751 pygeodesy.namedTuples.Vector2Tuple.x: 0.5\n    test 752 pygeodesy.namedTuples.Vector2Tuple.y: 0.5\n    test 753 pygeodesy.namedTuples.Vector2Tuple._validated: True\n    test 754 pygeodesy.namedTuples.Vector2Tuple._validated: True\n    test 755 pygeodesy.namedTuples: Vector3Tuple(x=0.5, y=0.5, z=0.5)\n    test 756 pygeodesy.namedTuples: Vector3Tuple(x=Scalar, y=Scalar, z=Scalar)\n    test 757 pygeodesy.namedTuples.Vector3Tuple.x: 0.5\n    test 758 pygeodesy.namedTuples.Vector3Tuple.y: 0.5\n    test 759 pygeodesy.namedTuples.Vector3Tuple.z: 0.5\n    test 760 pygeodesy.namedTuples.Vector3Tuple._validated: True\n    test 761 pygeodesy.namedTuples.Vector3Tuple._validated: True\n    test 762 pygeodesy.namedTuples: Vector4Tuple(x=0.5, y=0.5, z=0.5, h=0.5)\n    test 763 pygeodesy.namedTuples: Vector4Tuple(x=Scalar, y=Scalar, z=Scalar, h=Height)\n    test 764 pygeodesy.namedTuples.Vector4Tuple.x: 0.5\n    test 765 pygeodesy.namedTuples.Vector4Tuple.y: 0.5\n    test 766 pygeodesy.namedTuples.Vector4Tuple.z: 0.5\n    test 767 pygeodesy.namedTuples.Vector4Tuple.h: 0.5\n    test 768 pygeodesy.namedTuples.Vector4Tuple._validated: True\n    test 769 pygeodesy.namedTuples.Vector4Tuple._validated: True\n    test 770 pygeodesy.points: Shape2Tuple(nrows=0, ncols=0)\n    test 771 pygeodesy.points: Shape2Tuple(nrows=Number_, ncols=Number_)\n    test 772 pygeodesy.points.Shape2Tuple.nrows: 0.5\n    test 773 pygeodesy.points.Shape2Tuple.ncols: 0.5\n    test 774 pygeodesy.points.Shape2Tuple._validated: True\n    test 775 pygeodesy.points.Shape2Tuple._validated: True\n    test 776 pygeodesy.resections: Collins5Tuple(pointP=0.5, pointH=0.5, a=0.5, b=0.5, c=0.5)\n    test 777 pygeodesy.resections: Collins5Tuple(pointP=_Pass, pointH=_Pass, a=Distance, b=Distance, c=Distance)\n    test 778 pygeodesy.resections.Collins5Tuple.pointP: 0.5\n    test 779 pygeodesy.resections.Collins5Tuple.pointH: 0.5\n    test 780 pygeodesy.resections.Collins5Tuple.a: 0.5\n    test 781 pygeodesy.resections.Collins5Tuple.b: 0.5\n    test 782 pygeodesy.resections.Collins5Tuple.c: 0.5\n    test 783 pygeodesy.resections.Collins5Tuple._validated: True\n    test 784 pygeodesy.resections.Collins5Tuple._validated: True\n    test 785 pygeodesy.resections: Survey3Tuple(PA=0.5, PB=0.5, PC=0.5)\n    test 786 pygeodesy.resections: Survey3Tuple(PA=Distance, PB=Distance, PC=Distance)\n    test 787 pygeodesy.resections.Survey3Tuple.PA: 0.5\n    test 788 pygeodesy.resections.Survey3Tuple.PB: 0.5\n    test 789 pygeodesy.resections.Survey3Tuple.PC: 0.5\n    test 790 pygeodesy.resections.Survey3Tuple._validated: True\n    test 791 pygeodesy.resections.Survey3Tuple._validated: True\n    test 792 pygeodesy.resections: Tienstra7Tuple(pointP=0.5, A=0.5, B=0.5, C=0.5, a=0.5, b=0.5, c=0.5)\n    test 793 pygeodesy.resections: Tienstra7Tuple(pointP=_Pass, A=Degrees, B=Degrees, C=Degrees, a=Distance, b=Distance, c=Distance)\n    test 794 pygeodesy.resections.Tienstra7Tuple.pointP: 0.5\n    test 795 pygeodesy.resections.Tienstra7Tuple.A: 0.5\n    test 796 pygeodesy.resections.Tienstra7Tuple.B: 0.5\n    test 797 pygeodesy.resections.Tienstra7Tuple.C: 0.5\n    test 798 pygeodesy.resections.Tienstra7Tuple.a: 0.5\n    test 799 pygeodesy.resections.Tienstra7Tuple.b: 0.5\n    test 800 pygeodesy.resections.Tienstra7Tuple.c: 0.5\n    test 801 pygeodesy.resections.Tienstra7Tuple._validated: True\n    test 802 pygeodesy.resections.Tienstra7Tuple._validated: True\n    test 803 pygeodesy.resections: TriAngle5Tuple(radA=0.5, radB=0.5, radC=0.5, rIn=0.5, area=0.5)\n    test 804 pygeodesy.resections: TriAngle5Tuple(radA=Radians, radB=Radians, radC=Radians, rIn=Distance, area=_Pass)\n    test 805 pygeodesy.resections.TriAngle5Tuple.radA: 0.5\n    test 806 pygeodesy.resections.TriAngle5Tuple.radB: 0.5\n    test 807 pygeodesy.resections.TriAngle5Tuple.radC: 0.5\n    test 808 pygeodesy.resections.TriAngle5Tuple.rIn: 0.5\n    test 809 pygeodesy.resections.TriAngle5Tuple.area: 0.5\n    test 810 pygeodesy.resections.TriAngle5Tuple._validated: True\n    test 811 pygeodesy.resections.TriAngle5Tuple._validated: True\n    test 812 pygeodesy.resections: TriSide2Tuple(a=0.5, radA=0.5)\n    test 813 pygeodesy.resections: TriSide2Tuple(a=Distance, radA=Radians)\n    test 814 pygeodesy.resections.TriSide2Tuple.a: 0.5\n    test 815 pygeodesy.resections.TriSide2Tuple.radA: 0.5\n    test 816 pygeodesy.resections.TriSide2Tuple._validated: True\n    test 817 pygeodesy.resections.TriSide2Tuple._validated: True\n    test 818 pygeodesy.resections: TriSide4Tuple(a=0.5, b=0.5, radC=0.5, d=0.5)\n    test 819 pygeodesy.resections: TriSide4Tuple(a=Distance, b=Distance, radC=Radians, d=Distance)\n    test 820 pygeodesy.resections.TriSide4Tuple.a: 0.5\n    test 821 pygeodesy.resections.TriSide4Tuple.b: 0.5\n    test 822 pygeodesy.resections.TriSide4Tuple.radC: 0.5\n    test 823 pygeodesy.resections.TriSide4Tuple.d: 0.5\n    test 824 pygeodesy.resections.TriSide4Tuple._validated: True\n    test 825 pygeodesy.resections.TriSide4Tuple._validated: True\n    test 826 pygeodesy.trf: TRFXform7Tuple(tx=0.5, ty=0.5, tz=0.5, s=0.5, sx=0.5, sy=0.5, sz=0.5)\n    test 827 pygeodesy.trf: TRFXform7Tuple(tx=Float, ty=Float, tz=Float, s=Float, sx=Float, sy=Float, sz=Float)\n    test 828 pygeodesy.trf.TRFXform7Tuple.tx: 0.5\n    test 829 pygeodesy.trf.TRFXform7Tuple.ty: 0.5\n    test 830 pygeodesy.trf.TRFXform7Tuple.tz: 0.5\n    test 831 pygeodesy.trf.TRFXform7Tuple.s: 0.5\n    test 832 pygeodesy.trf.TRFXform7Tuple.sx: 0.5\n    test 833 pygeodesy.trf.TRFXform7Tuple.sy: 0.5\n    test 834 pygeodesy.trf.TRFXform7Tuple.sz: 0.5\n    test 835 pygeodesy.trf.TRFXform7Tuple._validated: True\n    test 836 pygeodesy.trf.TRFXform7Tuple._validated: True\n    test 837 pygeodesy.vector2d: Circin6Tuple(radius=0.5, center=0.5, deltas=0.5, cA=0.5, cB=0.5, cC=0.5)\n    test 838 pygeodesy.vector2d: Circin6Tuple(radius=Radius, center=_Pass, deltas=_Pass, cA=_Pass, cB=_Pass, cC=_Pass)\n    test 839 pygeodesy.vector2d.Circin6Tuple.radius: 0.5\n    test 840 pygeodesy.vector2d.Circin6Tuple.center: 0.5\n    test 841 pygeodesy.vector2d.Circin6Tuple.deltas: 0.5\n    test 842 pygeodesy.vector2d.Circin6Tuple.cA: 0.5\n    test 843 pygeodesy.vector2d.Circin6Tuple.cB: 0.5\n    test 844 pygeodesy.vector2d.Circin6Tuple.cC: 0.5\n    test 845 pygeodesy.vector2d.Circin6Tuple._validated: True\n    test 846 pygeodesy.vector2d.Circin6Tuple._validated: True\n    test 847 pygeodesy.vector2d: Circum3Tuple(radius=0.5, center=0.5, deltas=0.5)\n    test 848 pygeodesy.vector2d: Circum3Tuple(radius=Radius, center=_Pass, deltas=_Pass)\n    test 849 pygeodesy.vector2d.Circum3Tuple.radius: 0.5\n    test 850 pygeodesy.vector2d.Circum3Tuple.center: 0.5\n    test 851 pygeodesy.vector2d.Circum3Tuple.deltas: 0.5\n    test 852 pygeodesy.vector2d.Circum3Tuple._validated: True\n    test 853 pygeodesy.vector2d.Circum3Tuple._validated: True\n    test 854 pygeodesy.vector2d: Circum4Tuple(radius=0.5, center=0.5, rank=0, residuals=0.5)\n    test 855 pygeodesy.vector2d: Circum4Tuple(radius=Radius, center=_Pass, rank=Int, residuals=_Pass)\n    test 856 pygeodesy.vector2d.Circum4Tuple.radius: 0.5\n    test 857 pygeodesy.vector2d.Circum4Tuple.center: 0.5\n    test 858 pygeodesy.vector2d.Circum4Tuple.rank: 0.5\n    test 859 pygeodesy.vector2d.Circum4Tuple.residuals: 0.5\n    test 860 pygeodesy.vector2d.Circum4Tuple._validated: True\n    test 861 pygeodesy.vector2d.Circum4Tuple._validated: True\n    test 862 pygeodesy.vector2d: Meeus2Tuple(radius=0.5, Type=0.5)\n    test 863 pygeodesy.vector2d: Meeus2Tuple(radius=Radius, Type=_Pass)\n    test 864 pygeodesy.vector2d.Meeus2Tuple.radius: 0.5\n    test 865 pygeodesy.vector2d.Meeus2Tuple.Type: 0.5\n    test 866 pygeodesy.vector2d.Meeus2Tuple._validated: True\n    test 867 pygeodesy.vector2d.Meeus2Tuple._validated: True\n    test 868 pygeodesy.vector2d: Radii11Tuple(rA=0.5, rB=0.5, rC=0.5, cR=0.5, rIn=0.5, riS=0.5, roS=0.5, a=0.5, b=0.5, c=0.5, s=0.5)\n    test 869 pygeodesy.vector2d: Radii11Tuple(rA=Meter, rB=Meter, rC=Meter, cR=Meter, rIn=Meter, riS=Meter, roS=Meter, a=Meter, b=Meter, c=Meter, s=Meter)\n    test 870 pygeodesy.vector2d.Radii11Tuple.rA: 0.5\n    test 871 pygeodesy.vector2d.Radii11Tuple.rB: 0.5\n    test 872 pygeodesy.vector2d.Radii11Tuple.rC: 0.5\n    test 873 pygeodesy.vector2d.Radii11Tuple.cR: 0.5\n    test 874 pygeodesy.vector2d.Radii11Tuple.rIn: 0.5\n    test 875 pygeodesy.vector2d.Radii11Tuple.riS: 0.5\n    test 876 pygeodesy.vector2d.Radii11Tuple.roS: 0.5\n    test 877 pygeodesy.vector2d.Radii11Tuple.a: 0.5\n    test 878 pygeodesy.vector2d.Radii11Tuple.b: 0.5\n    test 879 pygeodesy.vector2d.Radii11Tuple.c: 0.5\n    test 880 pygeodesy.vector2d.Radii11Tuple.s: 0.5\n    test 881 pygeodesy.vector2d.Radii11Tuple._validated: True\n    test 882 pygeodesy.vector2d.Radii11Tuple._validated: True\n    test 883 pygeodesy.vector2d: Soddy4Tuple(radius=0.5, center=0.5, deltas=0.5, outer=0.5)\n    test 884 pygeodesy.vector2d: Soddy4Tuple(radius=Radius, center=_Pass, deltas=_Pass, outer=Radius)\n    test 885 pygeodesy.vector2d.Soddy4Tuple.radius: 0.5\n    test 886 pygeodesy.vector2d.Soddy4Tuple.center: 0.5\n    test 887 pygeodesy.vector2d.Soddy4Tuple.deltas: 0.5\n    test 888 pygeodesy.vector2d.Soddy4Tuple.outer: 0.5\n    test 889 pygeodesy.vector2d.Soddy4Tuple._validated: True\n    test 890 pygeodesy.vector2d.Soddy4Tuple._validated: True\n    test 891 pygeodesy.vector2d: Triaxum5Tuple(a=0.5, b=0.5, c=0.5, rank=0, residuals=0.5)\n    test 892 pygeodesy.vector2d: Triaxum5Tuple(a=Radius, b=Radius, c=Radius, rank=Int, residuals=_Pass)\n    test 893 pygeodesy.vector2d.Triaxum5Tuple.a: 0.5\n    test 894 pygeodesy.vector2d.Triaxum5Tuple.b: 0.5\n    test 895 pygeodesy.vector2d.Triaxum5Tuple.c: 0.5\n    test 896 pygeodesy.vector2d.Triaxum5Tuple.rank: 0.5\n    test 897 pygeodesy.vector2d.Triaxum5Tuple.residuals: 0.5\n    test 898 pygeodesy.vector2d.Triaxum5Tuple._validated: True\n    test 899 pygeodesy.vector2d.Triaxum5Tuple._validated: True\n    test 900 pygeodesy.webmercator: EasNorRadius3Tuple(easting=0.5, northing=0.5, radius=0.5)\n    test 901 pygeodesy.webmercator: EasNorRadius3Tuple(easting=Easting, northing=Northing, radius=Radius)\n    test 902 pygeodesy.webmercator.EasNorRadius3Tuple.easting: 0.5\n    test 903 pygeodesy.webmercator.EasNorRadius3Tuple.northing: 0.5\n    test 904 pygeodesy.webmercator.EasNorRadius3Tuple.radius: 0.5\n    test 905 pygeodesy.webmercator.EasNorRadius3Tuple._validated: True\n    test 906 pygeodesy.webmercator.EasNorRadius3Tuple._validated: True\n    test 907 pygeodesy.rhumb.solve: RhumbSolve7Tuple(lat1=0.5, lon1=0.5, lat2=0.5, lon2=0.5, azi12=0.5, s12=0.5, S12=0.5)\n    test 908 pygeodesy.rhumb.solve: RhumbSolve7Tuple(lat1=Lat, lon1=Lon, lat2=Lat, lon2=Lon, azi12=Azimuth, s12=Meter, S12=Meter2)\n    test 909 pygeodesy.rhumb.solve.RhumbSolve7Tuple.lat1: 0.5\n    test 910 pygeodesy.rhumb.solve.RhumbSolve7Tuple.lon1: 0.5\n    test 911 pygeodesy.rhumb.solve.RhumbSolve7Tuple.lat2: 0.5\n    test 912 pygeodesy.rhumb.solve.RhumbSolve7Tuple.lon2: 0.5\n    test 913 pygeodesy.rhumb.solve.RhumbSolve7Tuple.azi12: 0.5\n    test 914 pygeodesy.rhumb.solve.RhumbSolve7Tuple.s12: 0.5\n    test 915 pygeodesy.rhumb.solve.RhumbSolve7Tuple.S12: 0.5\n    test 916 pygeodesy.rhumb.solve.RhumbSolve7Tuple._validated: True\n    test 917 pygeodesy.rhumb.solve.RhumbSolve7Tuple._validated: True\n    test 918 pygeodesy.triaxials.bases: Conformal5Tuple(x=0.5, y=0.5, z=0.5, scale=0.5, llk=0.5)\n    test 919 pygeodesy.triaxials.bases: Conformal5Tuple(x=Easting, y=Northing, z=_Pass, scale=Scalar, llk=_Pass)\n    test 920 pygeodesy.triaxials.bases.Conformal5Tuple.x: 0.5\n    test 921 pygeodesy.triaxials.bases.Conformal5Tuple.y: 0.5\n    test 922 pygeodesy.triaxials.bases.Conformal5Tuple.z: 0.5\n    test 923 pygeodesy.triaxials.bases.Conformal5Tuple.scale: 0.5\n    test 924 pygeodesy.triaxials.bases.Conformal5Tuple.llk: 0.5\n    test 925 pygeodesy.triaxials.bases.Conformal5Tuple._validated: True\n    test 926 pygeodesy.triaxials.bases.Conformal5Tuple._validated: True\n    test 927 pygeodesy.triaxials.conformal3: BetOmgGam5Tuple(bet=Ang, omg=Ang, gam=_Pass, scale=Scalar, llk=_Pass)\n    test 928 pygeodesy.triaxials.conformal3.BetOmgGam5Tuple.bet: 0.5\n    test 929 pygeodesy.triaxials.conformal3.BetOmgGam5Tuple.omg: 0.5\n    test 930 pygeodesy.triaxials.conformal3.BetOmgGam5Tuple.gam: 0.5\n    test 931 pygeodesy.triaxials.conformal3.BetOmgGam5Tuple.scale: 0.5\n    test 932 pygeodesy.triaxials.conformal3.BetOmgGam5Tuple.llk: 0.5\n    test 933 pygeodesy.triaxials.conformal3.BetOmgGam5Tuple._validated: True\n    test 934 pygeodesy.triaxials.conformal3.BetOmgGam5Tuple._validated: True\n    test 935 pygeodesy.triaxials.triaxial3: BetOmgAlp5Tuple(bet=Ang, omg=Ang, alp=_Pass, h=_HeightINT0, llk=_Pass)\n    test 936 pygeodesy.triaxials.triaxial3.BetOmgAlp5Tuple.bet: 0.5\n    test 937 pygeodesy.triaxials.triaxial3.BetOmgAlp5Tuple.omg: 0.5\n    test 938 pygeodesy.triaxials.triaxial3.BetOmgAlp5Tuple.alp: 0.5\n    test 939 pygeodesy.triaxials.triaxial3.BetOmgAlp5Tuple.h: 0.5\n    test 940 pygeodesy.triaxials.triaxial3.BetOmgAlp5Tuple.llk: 0.5\n    test 941 pygeodesy.triaxials.triaxial3.BetOmgAlp5Tuple._validated: True\n    test 942 pygeodesy.triaxials.triaxial3.BetOmgAlp5Tuple._validated: True\n    test 943 pygeodesy.triaxials.triaxial3: Cartesian5Tuple(x=0.5, y=0.5, z=0.5, h=0.5, llk=0.5)\n    test 944 pygeodesy.triaxials.triaxial3: Cartesian5Tuple(x=Scalar, y=Scalar, z=Scalar, h=Height, llk=_Pass)\n    test 945 pygeodesy.triaxials.triaxial3.Cartesian5Tuple.x: 0.5\n    test 946 pygeodesy.triaxials.triaxial3.Cartesian5Tuple.y: 0.5\n    test 947 pygeodesy.triaxials.triaxial3.Cartesian5Tuple.z: 0.5\n    test 948 pygeodesy.triaxials.triaxial3.Cartesian5Tuple.h: 0.5\n    test 949 pygeodesy.triaxials.triaxial3.Cartesian5Tuple.llk: 0.5\n    test 950 pygeodesy.triaxials.triaxial3.Cartesian5Tuple._validated: True\n    test 951 pygeodesy.triaxials.triaxial3.Cartesian5Tuple._validated: True\n    test 952 pygeodesy.triaxials.triaxial3: PhiLamZet5Tuple(phi=Ang, lam=Ang, zet=_Pass, h=_HeightINT0, llk=_Pass)\n    test 953 pygeodesy.triaxials.triaxial3.PhiLamZet5Tuple.phi: 0.5\n    test 954 pygeodesy.triaxials.triaxial3.PhiLamZet5Tuple.lam: 0.5\n    test 955 pygeodesy.triaxials.triaxial3.PhiLamZet5Tuple.zet: 0.5\n    test 956 pygeodesy.triaxials.triaxial3.PhiLamZet5Tuple.h: 0.5\n    test 957 pygeodesy.triaxials.triaxial3.PhiLamZet5Tuple.llk: 0.5\n    test 958 pygeodesy.triaxials.triaxial3.PhiLamZet5Tuple._validated: True\n    test 959 pygeodesy.triaxials.triaxial3.PhiLamZet5Tuple._validated: True\n    test 960 pygeodesy.triaxials.triaxial5: BetaOmega2Tuple(beta=0.5, omega=0.5)\n    test 961 pygeodesy.triaxials.triaxial5: BetaOmega2Tuple(beta=_Pass, omega=_Pass)\n    test 962 pygeodesy.triaxials.triaxial5.BetaOmega2Tuple.beta: 0.5\n    test 963 pygeodesy.triaxials.triaxial5.BetaOmega2Tuple.omega: 0.5\n    test 964 pygeodesy.triaxials.triaxial5.BetaOmega2Tuple._validated: True\n    test 965 pygeodesy.triaxials.triaxial5.BetaOmega2Tuple._validated: True\n    test 966 pygeodesy.triaxials.triaxial5: BetaOmega3Tuple(beta=0.5, omega=0.5, height=0.5)\n    test 967 pygeodesy.triaxials.triaxial5: BetaOmega3Tuple(beta=_Pass, omega=_Pass, height=Meter)\n    test 968 pygeodesy.triaxials.triaxial5.BetaOmega3Tuple.beta: 0.5\n    test 969 pygeodesy.triaxials.triaxial5.BetaOmega3Tuple.omega: 0.5\n    test 970 pygeodesy.triaxials.triaxial5.BetaOmega3Tuple.height: 0.5\n    test 971 pygeodesy.triaxials.triaxial5.BetaOmega3Tuple._validated: True\n    test 972 pygeodesy.triaxials.triaxial5.BetaOmega3Tuple._validated: True\n    test 973 pygeodesy.triaxials.triaxial5: Conformal2Tuple(x=0.5, y=0.5)\n    test 974 pygeodesy.triaxials.triaxial5: Conformal2Tuple(x=_Pass, y=_Pass)\n    test 975 pygeodesy.triaxials.triaxial5.Conformal2Tuple.x: 0.5\n    test 976 pygeodesy.triaxials.triaxial5.Conformal2Tuple.y: 0.5\n    test 977 pygeodesy.triaxials.triaxial5.Conformal2Tuple._validated: True\n    test 978 pygeodesy.triaxials.triaxial5.Conformal2Tuple._validated: True\n    test 979 pygeodesy.named._NamedTuple._validated: False\n\n    all 979 testNamedTuples.py tests passed (pygeodesy 26.3.26 Python 2.7.18 64bit arm64_x86_64 geographiclib 1.50 numpy 1.16.6 scipy 1.2.2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 -W  default) 19.313 ms\nrunning /Library/Framewo....ython -W default ~/PyGeodesy/test/testNavlabExamples.py\n./pygeodesy/ellipsoidalNvector.py:61: DeprecationWarning: class L{Ned<pygeodesy.ellipsoidalNvector.Ned>} has been DEPRECATED on 2024.02.04, use class L{pygeodesy.Ned}.\n  deprecated_class(self.__class__)\n./test/testNavlabExamples.py:41: DeprecationWarning: method L{toRepr<pygeodesy.ellipsoidalNvector.Ned.toRepr>} has been DEPRECATED, use class L{pygeodesy.Ned}.\n  t.test(1, 'delta', delta.toRepr(prec=3), '[L:470357.384, B:45.109°, E:-2.12°]')  # DEPRECATED\n./test/testNavlabExamples.py:43: DeprecationWarning: Property_RO L{bearing<pygeodesy.ellipsoidalNvector.Ned.bearing>} has been DEPRECATED, use C{azimuth}.\n  t.test(1, 'bearing', delta.bearing, 45.109, fmt='%.3f')  # 45.109°\n./test/testNavlabExamples.py:44: DeprecationWarning: Property_RO L{length<pygeodesy.ellipsoidalNvector.Ned.length>} has been DEPRECATED, use C{slantrange}.\n  t.test(1, 'length', delta.length, 470357.384, fmt='%.3f')  # 470357.384 m\n./test/testNavlabExamples.py:63: DeprecationWarning: method L{toRepr<pygeodesy.ellipsoidalNvector.Ned.toRepr>} has been DEPRECATED, use class L{pygeodesy.Ned}.\n  t.test(2, 'delta', delta.toRepr(prec=3), '[L:3606.938, B:33.69°, E:-1.589°]')  # DEPRECATED\n./pygeodesy/ellipsoidalNvector.py:247: DeprecationWarning: Property_RO L{ned<pygeodesy.ellipsoidalNvector.Ned.ned>} has been DEPRECATED, use property C{ned4}.\n  dn = delta.ned[:3]  # XXX Ned4Tuple.to3Tuple\n./pygeodesy/deprecated/classes.py:33: DeprecationWarning: class L{Ned3Tuple<pygeodesy.deprecated.classes.Ned3Tuple>} has been DEPRECATED, use class L{Ned4Tuple}, ignoring item C{ltp}.\n  deprecated_class(cls)\n./test/testNavlabExamples.py:71: DeprecationWarning: method L{toRepr<pygeodesy.ellipsoidalNvector.Ned.toRepr>} has been DEPRECATED, use class L{pygeodesy.Ned}.\n  t.test(2, 'delta', delta.toRepr(prec=3), '[L:116807.681, B:222.493°, E:-0.524°]')  # DEPRECATED\n./pygeodesy/ellipsoidalKarney.py:94: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return self.datum.ellipsoid.geodesic\n./test/testNavlabExamples.py:143: DeprecationWarning: function L{toNed<pygeodesy.ellipsoidalNvector.toNed>} has been DEPRECATED, use L{pygeodesy.Aer}C{(bearing, elevation, distance).xyzLocal.toNed(B{Ned}, name=B{name})} or L{XyzLocal}C{(pygeodesy.Aer(bearing, elevation, distance)).toNed(B{Ned}, name=B{name})}.\n  d = ellipsoidalNvector.toNed(116809.178, 222.493, -0.5416)\n./test/testNavlabExamples.py:145: DeprecationWarning: Property_RO L{bearing<pygeodesy.ellipsoidalNvector.Ned.bearing>} has been DEPRECATED, use C{azimuth}.\n  TestsBase.test(t, 'bearing',   d.bearing, '227.507',  fmt='%.3f')  # '222.493'\n./test/testNavlabExamples.py:147: DeprecationWarning: Property_RO L{length<pygeodesy.ellipsoidalNvector.Ned.length>} has been DEPRECATED, use C{slantrange}.\n  TestsBase.test(t, 'length',    d.length, '116809.178',  fmt='%.3f')\n./test/testNavlabExamples.py:148: DeprecationWarning: method L{toVector3d<pygeodesy.ellipsoidalNvector.Ned.toVector3d>} has been DEPRECATED, use property L{xyz}.\n  v = d.toVector3d()\n\n    testing testNavlabExamples.py 23.03.27\n    test 1 Example 1 delta: [331730.863, 332998.501, 17398.304]\n    test 2 Example 1 delta: [L:470357.384, B:45.109°, E:-2.12°]\n    test 3 Example 1 elevation: -2.1198\n    test 4 Example 1 bearing: 45.109\n    test 5 Example 1 length: 470357.384\n\n    test 6 Example 1 delta: [331730.863, 332998.501, 17398.304]\n    test 7 Example 1 delta: <class 'pygeodesy.ltpTuples.Ned'>\n    test 8 Example 1 delta: (331730.863099, 332998.501491, 17398.304211, Ltp(lat0=1.0, lon0=2.0, height0=3.0, M=EcefMatrix(_0_0_=-0.034899, _0_1_=-0.017442, _0_2_=0.999239, _1_0_=0.999391, _1_1_=-0.000609, _1_2_=0.034894, _2_0_=0.0, _2_1_=0.999848, _2_2_=0.017452), ecef=EcefVeness(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name=''))\n    test 9 Example 1 delta: <class 'pygeodesy.ltpTuples.Ned4Tuple'>\n    test 10 Example 1 delta: <class 'pygeodesy.ecef.EcefVeness'>\n\n    test 11 Example 2 LatLon: 53.301°N, 063.435°E, +400.00m\n    test 12 Example 2 toNvector: (0.267, 0.535, 0.802, +400.00)\n    test 13 Example 2 delta: [3000.0, 2000.0, 100.0]\n    test 14 Example 2 delta: [L:3606.938, B:33.69°, E:-1.589°]\n    test 15 Example 2 destinationNed: 53.327702°N, 063.465119°E, +296.01m  FAILED, KNOWN, expected 53.327726°N, 063.464965°E, +299.138m\n    test 16 Example 2 delta: [-86126, -78900, 1069]\n    test 17 Example 2 delta: [L:116807.681, B:222.493°, E:-0.524°]\n    test 18 Example 2 destinationNed: 48.88667°N, 002.37472°E\n\n    test 19 Example 3 toLatLon: 39.379°N, 048.013°W, +4702059.83m\n\n    test 20 Example 4 toCartesian: [6373290.277, 222560.201, 110568.827]\n\n    test 21 Example 5 distanceTo: 332457\n\n    test 22 Example 6 intermediateChordTo: 89.799981°N, 180.0°E\n    test 23 Example 6 intermediateTo: 89.8°N, 180.0°E\n    test 24 Example 6 intermediateChordTo: 51.372294°N, 000.707192°E\n    test 25 Example 6 intermediateTo: 51.372084°N, 000.707337°E\n\n    test 26 Example 7 meanOf: 67.2362°N, 006.9175°W\n\n    test 27 Example 8 destination(pygeodesy.sphericalNvector): 79.991549°N, 090.017698°W\n    test 28 Example 8 destination(pygeodesy.sphericalTrigonometry): 79.991549°N, 090.017698°W\n    test 29 Example 8 destination(pygeodesy.ellipsoidalVincenty): 79.991584°N, 090.017621°W\n    test 30 Example 8 destination(pygeodesy.ellipsoidalKarney): 79.991584°N, 090.017621°W\n    test 31 Example 8 destination(pygeodesy.ellipsoidalExact): 79.991584°N, 090.017621°W\n    test 32 Example 8 destination(pygeodesy.ellipsoidalGeodSolve): 79.991584°N, 090.017621°W\n\n    test 33 Example 9 intersection: 40.318643°N, 055.901868°E\n\n    test 34 Example 10 crossTrackDistance: 11118\n\n    test 35 toNed: [-78901.1, -86126.6, 1104.1]\n    test 36 bearing: 227.507\n    test 37 elevation: -0.5416\n    test 38 length: 116809.178\n    test 39 toVector3d: (-86126.6, -78901.1, -1104.1)\n\n    19 of 39 testNavlabExamples.py tests (48.7%) FAILED, incl. 1 KNOWN plus 18 DeprecationWarnings (pygeodesy 26.3.26 Python 2.7.18 64bit arm64_x86_64 geographiclib 1.50 numpy 1.16.6 scipy 1.2.2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 -W  default) 45.273 ms\nrunning /Library/Framewo....ython -W default ~/PyGeodesy/test/testOsgr.py\n./test/testOsgr.py:25: DeprecationWarning: method L{convertDatum<pygeodesy.ellipsoidalNvector.LatLon.convertDatum>} has been DEPRECATED, use method L{toDatum}.\n  r = p.convertDatum(Datums.OSGB36)\n./test/testOsgr.py:27: DeprecationWarning: method L{convertDatum<pygeodesy.ellipsoidalNvector.LatLon.convertDatum>} has been DEPRECATED, use method L{toDatum}.\n  r = r.convertDatum(Datums.WGS84)\n./test/testOsgr.py:25: DeprecationWarning: method L{convertDatum<pygeodesy.ellipsoidalVincenty.LatLon.convertDatum>} has been DEPRECATED, use method L{toDatum}.\n  r = p.convertDatum(Datums.OSGB36)\n./test/testOsgr.py:27: DeprecationWarning: method L{convertDatum<pygeodesy.ellipsoidalVincenty.LatLon.convertDatum>} has been DEPRECATED, use method L{toDatum}.\n  r = r.convertDatum(Datums.WGS84)\n./test/testOsgr.py:25: DeprecationWarning: method L{convertDatum<pygeodesy.ellipsoidalKarney.LatLon.convertDatum>} has been DEPRECATED, use method L{toDatum}.\n  r = p.convertDatum(Datums.OSGB36)\n./test/testOsgr.py:27: DeprecationWarning: method L{convertDatum<pygeodesy.ellipsoidalKarney.LatLon.convertDatum>} has been DEPRECATED, use method L{toDatum}.\n  r = r.convertDatum(Datums.WGS84)\n./pygeodesy/ellipsoidalKarney.py:94: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return self.datum.ellipsoid.geodesic\n./test/testOsgr.py:25: DeprecationWarning: method L{convertDatum<pygeodesy.ellipsoidalExact.LatLon.convertDatum>} has been DEPRECATED, use method L{toDatum}.\n  r = p.convertDatum(Datums.OSGB36)\n./test/testOsgr.py:27: DeprecationWarning: method L{convertDatum<pygeodesy.ellipsoidalExact.LatLon.convertDatum>} has been DEPRECATED, use method L{toDatum}.\n  r = r.convertDatum(Datums.WGS84)\n\n    testing testOsgr.py 23.03.27 (module pygeodesy.osgr 25.05.12)\n\n    testOSgr(pygeodesy.ellipsoidalNvector, 25.05.12)\n    test 1 WGS84: 51.4778°N, 000.0016°W\n    test 2 OSGB36: 51.477284°N, 000.00002°E\n    test 3 WGS84: 51.4778°N, 000.0016°W\n    test 4 OSgr1: TG 51409 13177\n    test 5 OSgr1: [G:TG, E:51409, N:13177]\n    test 6 iteration: None\n    test 7 toLatLon1: 52°39′28.72″N, 001°42′57.79″E\n    test 8 toLatLon1: 52.657979°N, 001.716052°E\n    test 9 iteration: 4\n    test 10 toOsgr1: 651409.903,313177.270\n    test 11 toOsgr1: 651409.903,313177.270\n    test 12 toOsgr1: TG5140990313177270\n    test 13 toLatLon2: 52°39′27.25″N, 001°43′04.52″E\n    test 14 toLatLon2: 52.65757°N, 001.717922°E  FAILED, KNOWN, expected 52.657570°N, 001.717922°E\n    test 15 iteration: 4\n    test 16 toOsgr2: 651409,313177\n    test 17 toOsgr2: 651409,313177\n    test 18 toOsgr3: TG 51409 13177\n    test 19 toLatLon3: (52.65798, 1.71605, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 20 toOsgr4: TG 51409 13177\n    test 21 toLatLon4: (52.657570000, 1.717910000, Datum(name='OSGB36', ellipsoid=Ellipsoids.Airy1830, transform=Transforms.OSGB36))\n    test 22 toLatLon4: (52.657569999, 1.717910045, Datum(name='OSGB36', ellipsoid=Ellipsoids.Airy1830, transform=Transforms.OSGB36))\n    test 23 toLatLon4: (52.657978296, 1.716040366, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 24 toLatLon4: (52.657978295, 1.716040411, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 25 toOsgr5: 0.001\n    test 26 toOsgr5: TG5140900013177000\n    test 27 toOsgr5: 651409.000,313177.000\n    test 28 toLatLon5: (52.657976595, 1.716038422, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n\n    test 29 OSGR1: TG 48251 11932\n    test 30 OSGR1: [G:TG, E:48251, N:11932]\n    test 31 OSGR2: TG 51409 13177\n    test 32 OSGR2: [G:TG, E:51409, N:13177]\n    test 33 OSGR3: TG 51409 13177\n    test 34 OSGR3: [G:TG, E:51409, N:13177]\n    test 35 OSGR4: TG 51409 13177\n    test 36 OSGR4: [G:TG, E:51409, N:13177]\n    test 37 OSGR5: 651409,313177\n    test 38 OSGR5: TG51409001317700\n    test 39 OSGR5: 651409,313177\n    test 40 OSGR5: 651409.000000,313177.000000\n    test 41 OSGR5: 651409.00,313177.00\n    test 42 OSGR5: [OSGR:651409.000,313177.000]\n    test 43 OSGR5: [OSGR:651409,313177]\n    test 44 OSGR5: [OSGR:651409.000,313177.000]\n    test 45 OSGR5: [OSGR:651,313]\n    test 46 OSGR6: 651409.000,313177.000\n    test 47 OSGR6: 651409,313177\n    test 48 OSGR6: (651409, 313177)\n    test 49 OSGR6: 651409,313177\n    test 50 OSGR6: 651409,313177\n    test 51 OSGR6: (651409, 313177)\n    test 52 OSGR6: 651409 313177\n\n    test 53 issue: 38\n    test 54 toOsgr: [G:TL, E:29158, N:35174]\n    test 55 toOsgr: 529158.072, 235174.785\n    test 56 toOsgr: OSGB36\n    test 57 toLatLonOSGB36: 51°59′58.37″N, 000°07′06.14″W\n    test 58 toLatLonOSGB36: OSGB36\n    test 59 toLatLonWGS84 : 52°00′00.0″N, 000°07′12.0″W\n    test 60 toLatLonWGS84 : WGS84\n\n    test 61 Osgr: [G:TQ, E:32014, N:23971]\n    test 62 Osgr: 532014.0, 123971.0\n    test 63 Osgr: OSGB36\n    test 64 toLatLonOSGB36: 50.999425N, 000.118417W\n    test 65 toLatLonOSGB36: OSGB36\n    test 66 toLatLonWGS84 : 50.999995N, 000.120004W\n    test 67 toLatLonWGS84 : WGS84\n    test 68 parseOSGR: [G:TQ, E:32014, N:23971]\n    test 69 parseOSGR: 532014.0, 123971.0\n    test 70 parseOSGR: OSGB36\n    test 71 toLatLonOSGB36: 50.999425N, 000.118417W\n    test 72 toLatLonOSGB36: OSGB36\n    test 73 toLatLonWGS84: 50.999995N, 000.120004W\n    test 74 toLatLonWGS84: WGS84\n    test 75 toOsgr: [G:TQ, E:32013, N:23971]\n    test 76 toOsgr: 532013.969, 123971.046\n    test 77 toOsgr: OSGB36\n    test 78 toLatLonOSGB36: 50.999426N, 000.118417W\n    test 79 toLatLonOSGB36: OSGB36\n    test 80 toLatLonWGS84 : 50.999995N, 000.120004W\n    test 81 toLatLonWGS84 : WGS84\n    test 82 toOsgr: [G:TQ, E:48853, N:24427]\n    test 83 toOsgr: 548853.602, 124427.985\n    test 84 toOsgr: OSGB36\n    test 85 toLatLonOSGB36: 50.999422N, 000.121618E\n    test 86 toLatLonOSGB36: OSGB36\n    test 87 toLatLonWGS84 : 50.999995N, 000.120004E\n    test 88 toLatLonWGS84 : WGS84\n\n    test 89 LatLon: 49.926244°N, 006.297934°W\n    test 90 datum: WGS84\n    test 91 datum: OSGB36\n    test 92 toOsgr: [G:SV, E:91645, N:11753]\n    test 93 datum: OSGB36\n    test 94 LatLon: 49.926244°N, 006.297934°W\n    test 95 datum: WGS84\n    test 96 distanceTo: 0.0103  FAILED, KNOWN, expected 0.0104\n\n    test 97 prec=-2: [G:SV, E:91600, N:11700]\n\n    test 98 toLatLon: 52.0N, 000.12W\n    test 99 toLatLon: 52.0N, 000.12W\n    test 100 toLatLon: 52.0N, 000.12W\n    test 101 toLatLon: 52.0N, 000.12W\n    test 102 toLatLon: 52.0N, 000.12W\n    test 103 toLatLon: 52.0N, 000.12W\n    test 104 toLatLon: 52.0N, 000.12W\n    test 105 toLatLon: 52.0N, 000.12W\n\n    testOSgr(pygeodesy.ellipsoidalVincenty, 25.05.26)\n    test 106 WGS84: 51.4778°N, 000.0016°W\n    test 107 OSGB36: 51.477284°N, 000.00002°E\n    test 108 WGS84: 51.4778°N, 000.0016°W\n    test 109 OSgr1: TG 51409 13177\n    test 110 OSgr1: [G:TG, E:51409, N:13177]\n    test 111 iteration: None\n    test 112 toLatLon1: 52°39′28.72″N, 001°42′57.79″E\n    test 113 toLatLon1: 52.657979°N, 001.716052°E\n    test 114 iteration: 4\n    test 115 toOsgr1: 651409.903,313177.270\n    test 116 toOsgr1: 651409.903,313177.270\n    test 117 toOsgr1: TG5140990313177270\n    test 118 toLatLon2: 52°39′27.25″N, 001°43′04.52″E\n    test 119 toLatLon2: 52.65757°N, 001.717922°E  FAILED, KNOWN, expected 52.657570°N, 001.717922°E\n    test 120 iteration: 4\n    test 121 toOsgr2: 651409,313177\n    test 122 toOsgr2: 651409,313177\n    test 123 toOsgr3: TG 51409 13177\n    test 124 toLatLon3: (52.65798, 1.71605, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 125 toOsgr4: TG 51409 13177\n    test 126 toLatLon4: (52.657570000, 1.717910000, Datum(name='OSGB36', ellipsoid=Ellipsoids.Airy1830, transform=Transforms.OSGB36))\n    test 127 toLatLon4: (52.657569999, 1.717910045, Datum(name='OSGB36', ellipsoid=Ellipsoids.Airy1830, transform=Transforms.OSGB36))\n    test 128 toLatLon4: (52.657978296, 1.716040366, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 129 toLatLon4: (52.657978295, 1.716040411, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 130 toOsgr5: 0.001\n    test 131 toOsgr5: TG5140900013177000\n    test 132 toOsgr5: 651409.000,313177.000\n    test 133 toLatLon5: (52.657976595, 1.716038422, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n\n    test 134 OSGR1: TG 48251 11932\n    test 135 OSGR1: [G:TG, E:48251, N:11932]\n    test 136 OSGR2: TG 51409 13177\n    test 137 OSGR2: [G:TG, E:51409, N:13177]\n    test 138 OSGR3: TG 51409 13177\n    test 139 OSGR3: [G:TG, E:51409, N:13177]\n    test 140 OSGR4: TG 51409 13177\n    test 141 OSGR4: [G:TG, E:51409, N:13177]\n    test 142 OSGR5: 651409,313177\n    test 143 OSGR5: TG51409001317700\n    test 144 OSGR5: 651409,313177\n    test 145 OSGR5: 651409.000000,313177.000000\n    test 146 OSGR5: 651409.00,313177.00\n    test 147 OSGR5: [OSGR:651409.000,313177.000]\n    test 148 OSGR5: [OSGR:651409,313177]\n    test 149 OSGR5: [OSGR:651409.000,313177.000]\n    test 150 OSGR5: [OSGR:651,313]\n    test 151 OSGR6: 651409.000,313177.000\n    test 152 OSGR6: 651409,313177\n    test 153 OSGR6: (651409, 313177)\n    test 154 OSGR6: 651409,313177\n    test 155 OSGR6: 651409,313177\n    test 156 OSGR6: (651409, 313177)\n    test 157 OSGR6: 651409 313177\n\n    test 158 issue: 38\n    test 159 toOsgr: [G:TL, E:29158, N:35174]\n    test 160 toOsgr: 529158.072, 235174.785\n    test 161 toOsgr: OSGB36\n    test 162 toLatLonOSGB36: 51°59′58.37″N, 000°07′06.14″W\n    test 163 toLatLonOSGB36: OSGB36\n    test 164 toLatLonWGS84 : 52°00′00.0″N, 000°07′12.0″W\n    test 165 toLatLonWGS84 : WGS84\n\n    test 166 Osgr: [G:TQ, E:32014, N:23971]\n    test 167 Osgr: 532014.0, 123971.0\n    test 168 Osgr: OSGB36\n    test 169 toLatLonOSGB36: 50.999425N, 000.118417W\n    test 170 toLatLonOSGB36: OSGB36\n    test 171 toLatLonWGS84 : 50.999995N, 000.120004W\n    test 172 toLatLonWGS84 : WGS84\n    test 173 parseOSGR: [G:TQ, E:32014, N:23971]\n    test 174 parseOSGR: 532014.0, 123971.0\n    test 175 parseOSGR: OSGB36\n    test 176 toLatLonOSGB36: 50.999425N, 000.118417W\n    test 177 toLatLonOSGB36: OSGB36\n    test 178 toLatLonWGS84: 50.999995N, 000.120004W\n    test 179 toLatLonWGS84: WGS84\n    test 180 toOsgr: [G:TQ, E:32013, N:23971]\n    test 181 toOsgr: 532013.969, 123971.046\n    test 182 toOsgr: OSGB36\n    test 183 toLatLonOSGB36: 50.999426N, 000.118417W\n    test 184 toLatLonOSGB36: OSGB36\n    test 185 toLatLonWGS84 : 50.999995N, 000.120004W\n    test 186 toLatLonWGS84 : WGS84\n    test 187 toOsgr: [G:TQ, E:48853, N:24427]\n    test 188 toOsgr: 548853.602, 124427.985\n    test 189 toOsgr: OSGB36\n    test 190 toLatLonOSGB36: 50.999422N, 000.121618E\n    test 191 toLatLonOSGB36: OSGB36\n    test 192 toLatLonWGS84 : 50.999995N, 000.120004E\n    test 193 toLatLonWGS84 : WGS84\n\n    test 194 LatLon: 49.926244°N, 006.297934°W\n    test 195 datum: WGS84\n    test 196 datum: OSGB36\n    test 197 toOsgr: [G:SV, E:91645, N:11753]\n    test 198 datum: OSGB36\n    test 199 LatLon: 49.926244°N, 006.297934°W\n    test 200 datum: WGS84\n    test 201 distanceTo: 0.0104\n\n    test 202 prec=-2: [G:SV, E:91600, N:11700]\n\n    test 203 toLatLon: 52.0N, 000.12W\n    test 204 toLatLon: 52.0N, 000.12W\n    test 205 toLatLon: 52.0N, 000.12W\n    test 206 toLatLon: 52.0N, 000.12W\n    test 207 toLatLon: 52.0N, 000.12W\n    test 208 toLatLon: 52.0N, 000.12W\n    test 209 toLatLon: 52.0N, 000.12W\n    test 210 toLatLon: 52.0N, 000.12W\n\n    testOSgr(pygeodesy.ellipsoidalKarney, 25.05.27)\n    test 211 WGS84: 51.4778°N, 000.0016°W\n    test 212 OSGB36: 51.477284°N, 000.00002°E\n    test 213 WGS84: 51.4778°N, 000.0016°W\n    test 214 OSgr1: TG 51409 13177\n    test 215 OSgr1: [G:TG, E:51409, N:13177]\n    test 216 iteration: None\n    test 217 toLatLon1: 52°39′28.72″N, 001°42′57.79″E\n    test 218 toLatLon1: 52.657979°N, 001.716052°E\n    test 219 iteration: 4\n    test 220 toOsgr1: 651409.903,313177.270\n    test 221 toOsgr1: 651409.903,313177.270\n    test 222 toOsgr1: TG5140990313177270\n    test 223 toLatLon2: 52°39′27.25″N, 001°43′04.52″E\n    test 224 toLatLon2: 52.65757°N, 001.717922°E  FAILED, KNOWN, expected 52.657570°N, 001.717922°E\n    test 225 iteration: 4\n    test 226 toOsgr2: 651409,313177\n    test 227 toOsgr2: 651409,313177\n    test 228 toOsgr3: TG 51409 13177\n    test 229 toLatLon3: (52.65798, 1.71605, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 230 toOsgr4: TG 51409 13177\n    test 231 toLatLon4: (52.657570000, 1.717910000, Datum(name='OSGB36', ellipsoid=Ellipsoids.Airy1830, transform=Transforms.OSGB36))\n    test 232 toLatLon4: (52.657569999, 1.717910045, Datum(name='OSGB36', ellipsoid=Ellipsoids.Airy1830, transform=Transforms.OSGB36))\n    test 233 toLatLon4: (52.657978296, 1.716040366, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 234 toLatLon4: (52.657978295, 1.716040411, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 235 toOsgr5: 0.001\n    test 236 toOsgr5: TG5140900013177000\n    test 237 toOsgr5: 651409.000,313177.000\n    test 238 toLatLon5: (52.657976595, 1.716038422, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n\n    test 239 OSGR1: TG 48251 11932\n    test 240 OSGR1: [G:TG, E:48251, N:11932]\n    test 241 OSGR2: TG 51409 13177\n    test 242 OSGR2: [G:TG, E:51409, N:13177]\n    test 243 OSGR3: TG 51409 13177\n    test 244 OSGR3: [G:TG, E:51409, N:13177]\n    test 245 OSGR4: TG 51409 13177\n    test 246 OSGR4: [G:TG, E:51409, N:13177]\n    test 247 OSGR5: 651409,313177\n    test 248 OSGR5: TG51409001317700\n    test 249 OSGR5: 651409,313177\n    test 250 OSGR5: 651409.000000,313177.000000\n    test 251 OSGR5: 651409.00,313177.00\n    test 252 OSGR5: [OSGR:651409.000,313177.000]\n    test 253 OSGR5: [OSGR:651409,313177]\n    test 254 OSGR5: [OSGR:651409.000,313177.000]\n    test 255 OSGR5: [OSGR:651,313]\n    test 256 OSGR6: 651409.000,313177.000\n    test 257 OSGR6: 651409,313177\n    test 258 OSGR6: (651409, 313177)\n    test 259 OSGR6: 651409,313177\n    test 260 OSGR6: 651409,313177\n    test 261 OSGR6: (651409, 313177)\n    test 262 OSGR6: 651409 313177\n\n    test 263 issue: 38\n    test 264 toOsgr: [G:TL, E:29158, N:35174]\n    test 265 toOsgr: 529158.072, 235174.785\n    test 266 toOsgr: OSGB36\n    test 267 toLatLonOSGB36: 51°59′58.37″N, 000°07′06.14″W\n    test 268 toLatLonOSGB36: OSGB36\n    test 269 toLatLonWGS84 : 52°00′00.0″N, 000°07′12.0″W\n    test 270 toLatLonWGS84 : WGS84\n\n    test 271 Osgr: [G:TQ, E:32014, N:23971]\n    test 272 Osgr: 532014.0, 123971.0\n    test 273 Osgr: OSGB36\n    test 274 toLatLonOSGB36: 50.999425N, 000.118417W\n    test 275 toLatLonOSGB36: OSGB36\n    test 276 toLatLonWGS84 : 50.999995N, 000.120004W\n    test 277 toLatLonWGS84 : WGS84\n    test 278 parseOSGR: [G:TQ, E:32014, N:23971]\n    test 279 parseOSGR: 532014.0, 123971.0\n    test 280 parseOSGR: OSGB36\n    test 281 toLatLonOSGB36: 50.999425N, 000.118417W\n    test 282 toLatLonOSGB36: OSGB36\n    test 283 toLatLonWGS84: 50.999995N, 000.120004W\n    test 284 toLatLonWGS84: WGS84\n    test 285 toOsgr: [G:TQ, E:32013, N:23971]\n    test 286 toOsgr: 532013.969, 123971.046\n    test 287 toOsgr: OSGB36\n    test 288 toLatLonOSGB36: 50.999426N, 000.118417W\n    test 289 toLatLonOSGB36: OSGB36\n    test 290 toLatLonWGS84 : 50.999995N, 000.120004W\n    test 291 toLatLonWGS84 : WGS84\n    test 292 toOsgr: [G:TQ, E:48853, N:24427]\n    test 293 toOsgr: 548853.602, 124427.985\n    test 294 toOsgr: OSGB36\n    test 295 toLatLonOSGB36: 50.999422N, 000.121618E\n    test 296 toLatLonOSGB36: OSGB36\n    test 297 toLatLonWGS84 : 50.999995N, 000.120004E\n    test 298 toLatLonWGS84 : WGS84\n\n    test 299 LatLon: 49.926244°N, 006.297934°W\n    test 300 datum: WGS84\n    test 301 datum: OSGB36\n    test 302 toOsgr: [G:SV, E:91645, N:11753]\n    test 303 datum: OSGB36\n    test 304 LatLon: 49.926244°N, 006.297934°W\n    test 305 datum: WGS84\n    test 306 distanceTo: 0.0104\n\n    test 307 prec=-2: [G:SV, E:91600, N:11700]\n\n    test 308 toLatLon: 52.0N, 000.12W\n    test 309 toLatLon: 52.0N, 000.12W\n    test 310 toLatLon: 52.0N, 000.12W\n    test 311 toLatLon: 52.0N, 000.12W\n    test 312 toLatLon: 52.0N, 000.12W\n    test 313 toLatLon: 52.0N, 000.12W\n    test 314 toLatLon: 52.0N, 000.12W\n    test 315 toLatLon: 52.0N, 000.12W\n\n    testOSgr(pygeodesy.ellipsoidalExact, 25.08.28)\n    test 316 WGS84: 51.4778°N, 000.0016°W\n    test 317 OSGB36: 51.477284°N, 000.00002°E\n    test 318 WGS84: 51.4778°N, 000.0016°W\n    test 319 OSgr1: TG 51409 13177\n    test 320 OSgr1: [G:TG, E:51409, N:13177]\n    test 321 iteration: None\n    test 322 toLatLon1: 52°39′28.72″N, 001°42′57.79″E\n    test 323 toLatLon1: 52.657979°N, 001.716052°E\n    test 324 iteration: 4\n    test 325 toOsgr1: 651409.903,313177.270\n    test 326 toOsgr1: 651409.903,313177.270\n    test 327 toOsgr1: TG5140990313177270\n    test 328 toLatLon2: 52°39′27.25″N, 001°43′04.52″E\n    test 329 toLatLon2: 52.65757°N, 001.717922°E  FAILED, KNOWN, expected 52.657570°N, 001.717922°E\n    test 330 iteration: 4\n    test 331 toOsgr2: 651409,313177\n    test 332 toOsgr2: 651409,313177\n    test 333 toOsgr3: TG 51409 13177\n    test 334 toLatLon3: (52.65798, 1.71605, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 335 toOsgr4: TG 51409 13177\n    test 336 toLatLon4: (52.657570000, 1.717910000, Datum(name='OSGB36', ellipsoid=Ellipsoids.Airy1830, transform=Transforms.OSGB36))\n    test 337 toLatLon4: (52.657569999, 1.717910045, Datum(name='OSGB36', ellipsoid=Ellipsoids.Airy1830, transform=Transforms.OSGB36))\n    test 338 toLatLon4: (52.657978296, 1.716040366, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 339 toLatLon4: (52.657978295, 1.716040411, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 340 toOsgr5: 0.001\n    test 341 toOsgr5: TG5140900013177000\n    test 342 toOsgr5: 651409.000,313177.000\n    test 343 toLatLon5: (52.657./test/testOsgr.py:25: DeprecationWarning: method L{convertDatum<pygeodesy.ellipsoidalGeodSolve.LatLon.convertDatum>} has been DEPRECATED, use method L{toDatum}.\n  r = p.convertDatum(Datums.OSGB36)\n./test/testOsgr.py:27: DeprecationWarning: method L{convertDatum<pygeodesy.ellipsoidalGeodSolve.LatLon.convertDatum>} has been DEPRECATED, use method L{toDatum}.\n  r = r.convertDatum(Datums.WGS84)\n976595, 1.716038422, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n\n    test 344 OSGR1: TG 48251 11932\n    test 345 OSGR1: [G:TG, E:48251, N:11932]\n    test 346 OSGR2: TG 51409 13177\n    test 347 OSGR2: [G:TG, E:51409, N:13177]\n    test 348 OSGR3: TG 51409 13177\n    test 349 OSGR3: [G:TG, E:51409, N:13177]\n    test 350 OSGR4: TG 51409 13177\n    test 351 OSGR4: [G:TG, E:51409, N:13177]\n    test 352 OSGR5: 651409,313177\n    test 353 OSGR5: TG51409001317700\n    test 354 OSGR5: 651409,313177\n    test 355 OSGR5: 651409.000000,313177.000000\n    test 356 OSGR5: 651409.00,313177.00\n    test 357 OSGR5: [OSGR:651409.000,313177.000]\n    test 358 OSGR5: [OSGR:651409,313177]\n    test 359 OSGR5: [OSGR:651409.000,313177.000]\n    test 360 OSGR5: [OSGR:651,313]\n    test 361 OSGR6: 651409.000,313177.000\n    test 362 OSGR6: 651409,313177\n    test 363 OSGR6: (651409, 313177)\n    test 364 OSGR6: 651409,313177\n    test 365 OSGR6: 651409,313177\n    test 366 OSGR6: (651409, 313177)\n    test 367 OSGR6: 651409 313177\n\n    test 368 issue: 38\n    test 369 toOsgr: [G:TL, E:29158, N:35174]\n    test 370 toOsgr: 529158.072, 235174.785\n    test 371 toOsgr: OSGB36\n    test 372 toLatLonOSGB36: 51°59′58.37″N, 000°07′06.14″W\n    test 373 toLatLonOSGB36: OSGB36\n    test 374 toLatLonWGS84 : 52°00′00.0″N, 000°07′12.0″W\n    test 375 toLatLonWGS84 : WGS84\n\n    test 376 Osgr: [G:TQ, E:32014, N:23971]\n    test 377 Osgr: 532014.0, 123971.0\n    test 378 Osgr: OSGB36\n    test 379 toLatLonOSGB36: 50.999425N, 000.118417W\n    test 380 toLatLonOSGB36: OSGB36\n    test 381 toLatLonWGS84 : 50.999995N, 000.120004W\n    test 382 toLatLonWGS84 : WGS84\n    test 383 parseOSGR: [G:TQ, E:32014, N:23971]\n    test 384 parseOSGR: 532014.0, 123971.0\n    test 385 parseOSGR: OSGB36\n    test 386 toLatLonOSGB36: 50.999425N, 000.118417W\n    test 387 toLatLonOSGB36: OSGB36\n    test 388 toLatLonWGS84: 50.999995N, 000.120004W\n    test 389 toLatLonWGS84: WGS84\n    test 390 toOsgr: [G:TQ, E:32013, N:23971]\n    test 391 toOsgr: 532013.969, 123971.046\n    test 392 toOsgr: OSGB36\n    test 393 toLatLonOSGB36: 50.999426N, 000.118417W\n    test 394 toLatLonOSGB36: OSGB36\n    test 395 toLatLonWGS84 : 50.999995N, 000.120004W\n    test 396 toLatLonWGS84 : WGS84\n    test 397 toOsgr: [G:TQ, E:48853, N:24427]\n    test 398 toOsgr: 548853.602, 124427.985\n    test 399 toOsgr: OSGB36\n    test 400 toLatLonOSGB36: 50.999422N, 000.121618E\n    test 401 toLatLonOSGB36: OSGB36\n    test 402 toLatLonWGS84 : 50.999995N, 000.120004E\n    test 403 toLatLonWGS84 : WGS84\n\n    test 404 LatLon: 49.926244°N, 006.297934°W\n    test 405 datum: WGS84\n    test 406 datum: OSGB36\n    test 407 toOsgr: [G:SV, E:91645, N:11753]\n    test 408 datum: OSGB36\n    test 409 LatLon: 49.926244°N, 006.297934°W\n    test 410 datum: WGS84\n    test 411 distanceTo: 0.0104\n\n    test 412 prec=-2: [G:SV, E:91600, N:11700]\n\n    test 413 toLatLon: 52.0N, 000.12W\n    test 414 toLatLon: 52.0N, 000.12W\n    test 415 toLatLon: 52.0N, 000.12W\n    test 416 toLatLon: 52.0N, 000.12W\n    test 417 toLatLon: 52.0N, 000.12W\n    test 418 toLatLon: 52.0N, 000.12W\n    test 419 toLatLon: 52.0N, 000.12W\n    test 420 toLatLon: 52.0N, 000.12W\n\n    testOSgr(pygeodesy.ellipsoidalGeodSolve, 25.08.28)\n    test 421 WGS84: 51.4778°N, 000.0016°W\n    test 422 OSGB36: 51.477284°N, 000.00002°E\n    test 423 WGS84: 51.4778°N, 000.0016°W\n    test 424 OSgr1: TG 51409 13177\n    test 425 OSgr1: [G:TG, E:51409, N:13177]\n    test 426 iteration: None\n    test 427 toLatLon1: 52°39′28.72″N, 001°42′57.79″E\n    test 428 toLatLon1: 52.657979°N, 001.716052°E\n    test 429 iteration: 4\n    test 430 toOsgr1: 651409.903,313177.270\n    test 431 toOsgr1: 651409.903,313177.270\n    test 432 toOsgr1: TG5140990313177270\n    test 433 toLatLon2: 52°39′27.25″N, 001°43′04.52″E\n    test 434 toLatLon2: 52.65757°N, 001.717922°E  FAILED, KNOWN, expected 52.657570°N, 001.717922°E\n    test 435 iteration: 4\n    test 436 toOsgr2: 651409,313177\n    test 437 toOsgr2: 651409,313177\n    test 438 toOsgr3: TG 51409 13177\n    test 439 toLatLon3: (52.65798, 1.71605, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 440 toOsgr4: TG 51409 13177\n    test 441 toLatLon4: (52.657570000, 1.717910000, Datum(name='OSGB36', ellipsoid=Ellipsoids.Airy1830, transform=Transforms.OSGB36))\n    test 442 toLatLon4: (52.657569999, 1.717910045, Datum(name='OSGB36', ellipsoid=Ellipsoids.Airy1830, transform=Transforms.OSGB36))\n    test 443 toLatLon4: (52.657978296, 1.716040366, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 444 toLatLon4: (52.657978295, 1.716040411, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 445 toOsgr5: 0.001\n    test 446 toOsgr5: TG5140900013177000\n    test 447 toOsgr5: 651409.000,313177.000\n    test 448 toLatLon5: (52.657976595, 1.716038422, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n\n    test 449 OSGR1: TG 48251 11932\n    test 450 OSGR1: [G:TG, E:48251, N:11932]\n    test 451 OSGR2: TG 51409 13177\n    test 452 OSGR2: [G:TG, E:51409, N:13177]\n    test 453 OSGR3: TG 51409 13177\n    test 454 OSGR3: [G:TG, E:51409, N:13177]\n    test 455 OSGR4: TG 51409 13177\n    test 456 OSGR4: [G:TG, E:51409, N:13177]\n    test 457 OSGR5: 651409,313177\n    test 458 OSGR5: TG51409001317700\n    test 459 OSGR5: 651409,313177\n    test 460 OSGR5: 651409.000000,313177.000000\n    test 461 OSGR5: 651409.00,313177.00\n    test 462 OSGR5: [OSGR:651409.000,313177.000]\n    test 463 OSGR5: [OSGR:651409,313177]\n    test 464 OSGR5: [OSGR:651409.000,313177.000]\n    test 465 OSGR5: [OSGR:651,313]\n    test 466 OSGR6: 651409.000,313177.000\n    test 467 OSGR6: 651409,313177\n    test 468 OSGR6: (651409, 313177)\n    test 469 OSGR6: 651409,313177\n    test 470 OSGR6: 651409,313177\n    test 471 OSGR6: (651409, 313177)\n    test 472 OSGR6: 651409 313177\n\n    test 473 issue: 38\n    test 474 toOsgr: [G:TL, E:29158, N:35174]\n    test 475 toOsgr: 529158.072, 235174.785\n    test 476 toOsgr: OSGB36\n    test 477 toLatLonOSGB36: 51°59′58.37″N, 000°07′06.14″W\n    test 478 toLatLonOSGB36: OSGB36\n    test 479 toLatLonWGS84 : 52°00′00.0″N, 000°07′12.0″W\n    test 480 toLatLonWGS84 : WGS84\n\n    test 481 Osgr: [G:TQ, E:32014, N:23971]\n    test 482 Osgr: 532014.0, 123971.0\n    test 483 Osgr: OSGB36\n    test 484 toLatLonOSGB36: 50.999425N, 000.118417W\n    test 485 toLatLonOSGB36: OSGB36\n    test 486 toLatLonWGS84 : 50.999995N, 000.120004W\n    test 487 toLatLonWGS84 : WGS84\n    test 488 parseOSGR: [G:TQ, E:32014, N:23971]\n    test 489 parseOSGR: 532014.0, 123971.0\n    test 490 parseOSGR: OSGB36\n    test 491 toLatLonOSGB36: 50.999425N, 000.118417W\n    test 492 toLatLonOSGB36: OSGB36\n    test 493 toLatLonWGS84: 50.999995N, 000.120004W\n    test 494 toLatLonWGS84: WGS84\n    test 495 toOsgr: [G:TQ, E:32013, N:23971]\n    test 496 toOsgr: 532013.969, 123971.046\n    test 497 toOsgr: OSGB36\n    test 498 toLatLonOSGB36: 50.999426N, 000.118417W\n    test 499 toLatLonOSGB36: OSGB36\n    test 500 toLatLonWGS84 : 50.999995N, 000.120004W\n    test 501 toLatLonWGS84 : WGS84\n    test 502 toOsgr: [G:TQ, E:48853, N:24427]\n    test 503 toOsgr: 548853.602, 124427.985\n    test 504 toOsgr: OSGB36\n    test 505 toLatLonOSGB36: 50.999422N, 000.121618E\n    test 506 toLatLonOSGB36: OSGB36\n    test 507 toLatLonWGS84 : 50.999995N, 000.120004E\n    test 508 toLatLonWGS84 : WGS84\n\n    test 509 LatLon: 49.926244°N, 006.297934°W\n    test 510 datum: WGS84\n    test 511 datum: OSGB36\n    test 512 toOsgr: [G:SV, E:91645, N:11753]\n    test 513 datum: OSGB36\n    test 514 LatLon: 49.926244°N, 006.297934°W\n    test 515 datum: WGS84\n    test 516 distanceTo: 0.0104\n\n    test 517 prec=-2: [G:SV, E:91600, N:11700]\n\n    test 518 toLatLon: 52.0N, 000.12W\n    test 519 toLatLon: 52.0N, 000.12W\n    test 520 toLatLon: 52.0N, 000.12W\n    test 521 toLatLon: 52.0N, 000.12W\n    test 522 toLatLon: 52.0N, 000.12W\n    test 523 toLatLon: 52.0N, 000.12W\n    test 524 toLatLon: 52.0N, 000.12W\n    test 525 toLatLon: 52.0N, 000.12W\n\n    17 of 525 testOsgr.py tests (3.2%) FAILED, incl. 6 KNOWN plus 11 DeprecationWarnings (pygeodesy 26.3.26 Python 2.7.18 64bit arm64_x86_64 geographiclib 1.50 numpy 1.16.6 scipy 1.2.2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 -W  default) 146.087 ms\nrunning /Library/Framewo....ython -W default ~/PyGeodesy/test/testPoints.py\n\n    testing testPoints.py 23.12.03 (module pygeodesy.points 25.05.12)\n    test 1 sizeof(LatLon_.__dict__): 64\n    test 2 LatLon2psxy.ABC: True\n    test 3 LatLon2psxy.epsilon: 2.22044604925e-16\n    test 4 LatLon2psxy.epsilon: 0.0\n    test 5 LatLon2psxy.len: 69\n    test 6 LatLon2psxy.iter: 69\n    test 7 LatLon2psxy.slice1: 11\n    test 8 LatLon2psxy.slice2: <class 'pygeodesy.points.LatLon2psxy'>\n    test 9 LatLon2psxy.slice3: (-0.701418, 52.220485, LatLon_(52.220485°N, 000.701418°W))\n    test 10 LatLon2psxy.str/repr: LatLon2psxy('[LatLon_(52.220489\\xc2\\xb0N, 000.701206\\xc2\\xb0W) ... ][69]', closed=False, radius=None, wrap=False)\n    test 11 LatLon2psxy.find LL: 10\n    test 12 LatLon2psxy.find LL: -1\n    test 13 LatLon2psxy.count: 1\n    test 14 LatLon2psxy.index: 10\n    test 15 LatLon2psxy.rfind: 10\n    test 16 LatLon2psxy.in: True\n    test 17 LatLon2psxy.count: 0\n    test 18 LatLon2psxy.find: -1\n    test 19 LatLon2psxy.rfind: -1\n    test 20 LatLon2psxy.not in: True\n    test 21 LatLon2psxy.find LL: 20\n    test 22 LatLon2psxy.find LL: -1\n    test 23 LatLon2psxy.count: 1\n    test 24 LatLon2psxy.index: 20\n    test 25 LatLon2psxy.rfind: 20\n    test 26 LatLon2psxy.in: True\n    test 27 LatLon2psxy.count: 0\n    test 28 LatLon2psxy.find: -1\n    test 29 LatLon2psxy.rfind: -1\n    test 30 LatLon2psxy.not in: True\n    test 31 LatLon2psxy.find LL: 30\n    test 32 LatLon2psxy.find LL: -1\n    test 33 LatLon2psxy.count: 1\n    test 34 LatLon2psxy.index: 30\n    test 35 LatLon2psxy.rfind: 30\n    test 36 LatLon2psxy.in: True\n    test 37 LatLon2psxy.count: 0\n    test 38 LatLon2psxy.find: -1\n    test 39 LatLon2psxy.rfind: -1\n    test 40 LatLon2psxy.not in: True\n    test 41 LatLon2psxy.find LL: 40\n    test 42 LatLon2psxy.find LL: -1\n    test 43 LatLon2psxy.count: 1\n    test 44 LatLon2psxy.index: 40\n    test 45 LatLon2psxy.rfind: 40\n    test 46 LatLon2psxy.in: True\n    test 47 LatLon2psxy.count: 0\n    test 48 LatLon2psxy.find: -1\n    test 49 LatLon2psxy.rfind: -1\n    test 50 LatLon2psxy.not in: True\n    test 51 LatLon2psxy.find LL: 50\n    test 52 LatLon2psxy.find LL: -1\n    test 53 LatLon2psxy.count: 1\n    test 54 LatLon2psxy.index: 50\n    test 55 LatLon2psxy.rfind: 50\n    test 56 LatLon2psxy.in: True\n    test 57 LatLon2psxy.count: 0\n    test 58 LatLon2psxy.find: -1\n    test 59 LatLon2psxy.rfind: -1\n    test 60 LatLon2psxy.not in: True\n    test 61 LatLon2psxy.find LL: 60\n    test 62 LatLon2psxy.find LL: -1\n    test 63 LatLon2psxy.count: 1\n    test 64 LatLon2psxy.index: 60\n    test 65 LatLon2psxy.rfind: 60\n    test 66 LatLon2psxy.in: True\n    test 67 LatLon2psxy.count: 0\n    test 68 LatLon2psxy.find: -1\n    test 69 LatLon2psxy.rfind: -1\n    test 70 LatLon2psxy.not in: True\n    test 71 LatLon2psxy.enumerate[0]: (-0.701206, 52.220489, LatLon_(52.220489°N, 000.701206°W))\n    test 72 LatLon2psxy.enumerate[1]: (-0.705456, 52.221916, LatLon_(52.221916°N, 000.705456°W))\n    test 73 LatLon2psxy.enumerate[2]: (-0.71, 52.225944, LatLon_(52.225944°N, 000.71°W))\n    test 74 LatLon2psxy.enumerate[3]: (-0.71446, 52.232448, LatLon_(52.232448°N, 000.71446°W))\n    test 75 LatLon2psxy.enumerate[4]: (-0.71486, 52.233013, LatLon_(52.233013°N, 000.71486°W))\n    test 76 LatLon2psxy.enumerate[5]: (-0.714348, 52.234375, LatLon_(52.234375°N, 000.714348°W))\n    test 77 LatLon2psxy.enumerate[6]: (-0.713572, 52.235607, LatLon_(52.235607°N, 000.713572°W))\n    test 78 LatLon2psxy.enumerate[7]: (-0.71233, 52.237495, LatLon_(52.237495°N, 000.71233°W))\n    test 79 LatLon2psxy.enumerate[8]: (-0.710784, 52.239315, LatLon_(52.239315°N, 000.710784°W))\n    test 80 LatLon2psxy.enumerate[9]: (-0.708684, 52.240627, LatLon_(52.240627°N, 000.708684°W))\n    test 81 LatLon2psxy.enumerate[10]: (-0.707042, 52.240745, LatLon_(52.240745°N, 000.707042°W))\n    test 82 LatLon2psxy.enumerate[11]: (-0.704945, 52.240863, LatLon_(52.240863°N, 000.704945°W))\n    test 83 LatLon2psxy.enumerate[*]: 11\n    test 84 LatLon2psxy.reversed[11]: (-0.704945, 52.240863, LatLon_(52.240863°N, 000.704945°W))\n    test 85 LatLon2psxy.reversed[10]: (-0.707042, 52.240745, LatLon_(52.240745°N, 000.707042°W))\n    test 86 LatLon2psxy.reversed[9]: (-0.708684, 52.240627, LatLon_(52.240627°N, 000.708684°W))\n    test 87 LatLon2psxy.reversed[8]: (-0.710784, 52.239315, LatLon_(52.239315°N, 000.710784°W))\n    test 88 LatLon2psxy.reversed[7]: (-0.71233, 52.237495, LatLon_(52.237495°N, 000.71233°W))\n    test 89 LatLon2psxy.reversed[6]: (-0.713572, 52.235607, LatLon_(52.235607°N, 000.713572°W))\n    test 90 LatLon2psxy.reversed[5]: (-0.714348, 52.234375, LatLon_(52.234375°N, 000.714348°W))\n    test 91 LatLon2psxy.reversed[4]: (-0.71486, 52.233013, LatLon_(52.233013°N, 000.71486°W))\n    test 92 LatLon2psxy.reversed[3]: (-0.71446, 52.232448, LatLon_(52.232448°N, 000.71446°W))\n    test 93 LatLon2psxy.reversed[2]: (-0.71, 52.225944, LatLon_(52.225944°N, 000.71°W))\n    test 94 LatLon2psxy.reversed[1]: (-0.705456, 52.221916, LatLon_(52.221916°N, 000.705456°W))\n    test 95 LatLon2psxy.reversed[0]: (-0.701206, 52.220489, LatLon_(52.220489°N, 000.701206°W))\n    test 96 LatLon2psxy.findall[0]: (0,)\n    test 97 LatLon2psxy.findall[1]: (1,)\n    test 98 LatLon2psxy.findall[2]: (2,)\n    test 99 LatLon2psxy.findall[3]: (3,)\n    test 100 LatLon2psxy.findall[4]: (4,)\n    test 101 LatLon2psxy.findall[5]: (5,)\n    test 102 LatLon2psxy.findall[6]: (6,)\n    test 103 LatLon2psxy.findall[7]: (7,)\n    test 104 LatLon2psxy.findall[8]: (8,)\n    test 105 LatLon2psxy.findall[9]: (9,)\n    test 106 LatLon2psxy.findall[10]: (10,)\n    test 107 LatLon2psxy.findall[11]: (11,)\n    test 108 LatLon2psxy.findall[*]: 11\n    test 109 LatLon2psxy.isNumpy2: False\n    test 110 LatLon2psxy.isPoints2: True\n    test 111 LatLon2psxy.isTuple2: False\n    test 112 numpy.__version__: 1.16.6\n    test 113 Numpy2LatLon.ABC: True\n    test 114 Numpy2LatLon.epsilon: 2.22044604925e-16\n    test 115 Numpy2LatLon.epsilon: 0.0\n    test 116 Numpy2LatLon.len: 69\n    test 117 Numpy2LatLon.iter: 69\n    test 118 Numpy2LatLon.shape: (69, 4)\n    test 119 Numpy2LatLon.slice1: 11\n    test 120 Numpy2LatLon.slice2: <class 'pygeodesy.points.Numpy2LatLon'>\n    test 121 Numpy2LatLon.slice3: 52.220485°N, 000.701418°W\n    test 122 Numpy2LatLon.str/repr: Numpy2LatLon('array([[-0.701206, 0. , 52.220489, 0. ]] ... )[69]', ilat=2, ilon=0)\n    test 123 Numpy2LatLon.subset: <type 'numpy.ndarray'>\n    test 124 Numpy2LatLon.count: 1\n    test 125 Numpy2LatLon.index: 10\n    test 126 Numpy2LatLon.rfind: 10\n    test 127 Numpy2LatLon.in: True\n    test 128 Numpy2LatLon.count: 0\n    test 129 Numpy2LatLon.find: -1\n    test 130 Numpy2LatLon.rfind: -1\n    test 131 Numpy2LatLon.not in: True\n    test 132 Numpy2LatLon.count: 1\n    test 133 Numpy2LatLon.index: 20\n    test 134 Numpy2LatLon.rfind: 20\n    test 135 Numpy2LatLon.in: True\n    test 136 Numpy2LatLon.count: 0\n    test 137 Numpy2LatLon.find: -1\n    test 138 Numpy2LatLon.rfind: -1\n    test 139 Numpy2LatLon.not in: True\n    test 140 Numpy2LatLon.count: 1\n    test 141 Numpy2LatLon.index: 30\n    test 142 Numpy2LatLon.rfind: 30\n    test 143 Numpy2LatLon.in: True\n    test 144 Numpy2LatLon.count: 0\n    test 145 Numpy2LatLon.find: -1\n    test 146 Numpy2LatLon.rfind: -1\n    test 147 Numpy2LatLon.not in: True\n    test 148 Numpy2LatLon.count: 1\n    test 149 Numpy2LatLon.index: 40\n    test 150 Numpy2LatLon.rfind: 40\n    test 151 Numpy2LatLon.in: True\n    test 152 Numpy2LatLon.count: 0\n    test 153 Numpy2LatLon.find: -1\n    test 154 Numpy2LatLon.rfind: -1\n    test 155 Numpy2LatLon.not in: True\n    test 156 Numpy2LatLon.count: 1\n    test 157 Numpy2LatLon.index: 50\n    test 158 Numpy2LatLon.rfind: 50\n    test 159 Numpy2LatLon.in: True\n    test 160 Numpy2LatLon.count: 0\n    test 161 Numpy2LatLon.find: -1\n    test 162 Numpy2LatLon.rfind: -1\n    test 163 Numpy2LatLon.not in: True\n    test 164 Numpy2LatLon.count: 1\n    test 165 Numpy2LatLon.index: 60\n    test 166 Numpy2LatLon.rfind: 60\n    test 167 Numpy2LatLon.in: True\n    test 168 Numpy2LatLon.count: 0\n    test 169 Numpy2LatLon.find: -1\n    test 170 Numpy2LatLon.rfind: -1\n    test 171 Numpy2LatLon.not in: True\n    test 172 Numpy2LatLon.enumerate[0]: 52.220489°N, 000.701206°W\n    test 173 Numpy2LatLon.enumerate[1]: 52.221916°N, 000.705456°W\n    test 174 Numpy2LatLon.enumerate[2]: 52.225944°N, 000.71°W\n    test 175 Numpy2LatLon.enumerate[3]: 52.232448°N, 000.71446°W\n    test 176 Numpy2LatLon.enumerate[4]: 52.233013°N, 000.71486°W\n    test 177 Numpy2LatLon.enumerate[5]: 52.234375°N, 000.714348°W\n    test 178 Numpy2LatLon.enumerate[6]: 52.235607°N, 000.713572°W\n    test 179 Numpy2LatLon.enumerate[7]: 52.237495°N, 000.71233°W\n    test 180 Numpy2LatLon.enumerate[8]: 52.239315°N, 000.710784°W\n    test 181 Numpy2LatLon.enumerate[9]: 52.240627°N, 000.708684°W\n    test 182 Numpy2LatLon.enumerate[10]: 52.240745°N, 000.707042°W\n    test 183 Numpy2LatLon.enumerate[11]: 52.240863°N, 000.704945°W\n    test 184 Numpy2LatLon.enumerate[*]: 11\n    test 185 Numpy2LatLon.reversed[11]: 52.240863°N, 000.704945°W\n    test 186 Numpy2LatLon.reversed[10]: 52.240745°N, 000.707042°W\n    test 187 Numpy2LatLon.reversed[9]: 52.240627°N, 000.708684°W\n    test 188 Numpy2LatLon.reversed[8]: 52.239315°N, 000.710784°W\n    test 189 Numpy2LatLon.reversed[7]: 52.237495°N, 000.71233°W\n    test 190 Numpy2LatLon.reversed[6]: 52.235607°N, 000.713572°W\n    test 191 Numpy2LatLon.reversed[5]: 52.234375°N, 000.714348°W\n    test 192 Numpy2LatLon.reversed[4]: 52.233013°N, 000.71486°W\n    test 193 Numpy2LatLon.reversed[3]: 52.232448°N, 000.71446°W\n    test 194 Numpy2LatLon.reversed[2]: 52.225944°N, 000.71°W\n    test 195 Numpy2LatLon.reversed[1]: 52.221916°N, 000.705456°W\n    test 196 Numpy2LatLon.reversed[0]: 52.220489°N, 000.701206°W\n    test 197 Numpy2LatLon.findall[0]: (0,)\n    test 198 Numpy2LatLon.findall[1]: (1,)\n    test 199 Numpy2LatLon.findall[2]: (2,)\n    test 200 Numpy2LatLon.findall[3]: (3,)\n    test 201 Numpy2LatLon.findall[4]: (4,)\n    test 202 Numpy2LatLon.findall[5]: (5,)\n    test 203 Numpy2LatLon.findall[6]: (6,)\n    test 204 Numpy2LatLon.findall[7]: (7,)\n    test 205 Numpy2LatLon.findall[8]: (8,)\n    test 206 Numpy2LatLon.findall[9]: (9,)\n    test 207 Numpy2LatLon.findall[10]: (10,)\n    test 208 Numpy2LatLon.findall[11]: (11,)\n    test 209 Numpy2LatLon.findall[*]: 11\n    test 210 Numpy2LatLon.isNumpy2: True\n    test 211 Numpy2LatLon.isPoints2: False\n    test 212 Numpy2LatLon.isTuple2: False\n    test 213 Tuple2LatLon.ABC: True\n    test 214 Tuple2LatLon.epsilon: 2.22044604925e-16\n    test 215 Tuple2LatLon.epsilon: 0.0\n    test 216 Tuple2LatLon.len: 69\n    test 217 Tuple2LatLon.iter: 69\n    test 218 Tuple2LatLon.slice1: 11\n    test 219 Tuple2LatLon.slice2: <class 'pygeodesy.points.Tuple2LatLon'>\n    test 220 Tuple2LatLon.slice3: 52.220485°N, 000.701418°W\n    test 221 Tuple2LatLon.str/repr: Tuple2LatLon('[(0, -0.701206, 0, 52.220489) ... ][69]', ilat=3, ilon=1)\n    test 222 Tuple2LatLon.subset: <type 'list'>\n    test 223 Tuple2LatLon.count: 1\n    test 224 Tuple2LatLon.index: 10\n    test 225 Tuple2LatLon.rfind: 10\n    test 226 Tuple2LatLon.in: True\n    test 227 Tuple2LatLon.count: 0\n    test 228 Tuple2LatLon.find: -1\n    test 229 Tuple2LatLon.rfind: -1\n    test 230 Tuple2LatLon.not in: True\n    test 231 Tuple2LatLon.count: 1\n    test 232 Tuple2LatLon.index: 20\n    test 233 Tuple2LatLon.rfind: 20\n    test 234 Tuple2LatLon.in: True\n    test 235 Tuple2LatLon.count: 0\n    test 236 Tuple2LatLon.find: -1\n    test 237 Tuple2LatLon.rfind: -1\n    test 238 Tuple2LatLon.not in: True\n    test 239 Tuple2LatLon.count: 1\n    test 240 Tuple2LatLon.index: 30\n    test 241 Tuple2LatLon.rfind: 30\n    test 242 Tuple2LatLon.in: True\n    test 243 Tuple2LatLon.count: 0\n    test 244 Tuple2LatLon.find: -1\n    test 245 Tuple2LatLon.rfind: -1\n    test 246 Tuple2LatLon.not in: True\n    test 247 Tuple2LatLon.count: 1\n    test 248 Tuple2LatLon.index: 40\n    test 249 Tuple2LatLon.rfind: 40\n    test 250 Tuple2LatLon.in: True\n    test 251 Tuple2LatLon.count: 0\n    test 252 Tuple2LatLon.find: -1\n    test 253 Tuple2LatLon.rfind: -1\n    test 254 Tuple2LatLon.not in: True\n    test 255 Tuple2LatLon.count: 1\n    test 256 Tuple2LatLon.index: 50\n    test 257 Tuple2LatLon.rfind: 50\n    test 258 Tuple2LatLon.in: True\n    test 259 Tuple2LatLon.count: 0\n    test 260 Tuple2LatLon.find: -1\n    test 261 Tuple2LatLon.rfind: -1\n    test 262 Tuple2LatLon.not in: True\n    test 263 Tuple2LatLon.count: 1\n    test 264 Tuple2LatLon.index: 60\n    test 265 Tuple2LatLon.rfind: 60\n    test 266 Tuple2LatLon.in: True\n    test 267 Tuple2LatLon.count: 0\n    test 268 Tuple2LatLon.find: -1\n    test 269 Tuple2LatLon.rfind: -1\n    test 270 Tuple2LatLon.not in: True\n    test 271 Tuple2LatLon.enumerate[0]: 52.220489°N, 000.701206°W\n    test 272 Tuple2LatLon.enumerate[1]: 52.221916°N, 000.705456°W\n    test 273 Tuple2LatLon.enumerate[2]: 52.225944°N, 000.71°W\n    test 274 Tuple2LatLon.enumerate[3]: 52.232448°N, 000.71446°W\n    test 275 Tuple2LatLon.enumerate[4]: 52.233013°N, 000.71486°W\n    test 276 Tuple2LatLon.enumerate[5]: 52.234375°N, 000.714348°W\n    test 277 Tuple2LatLon.enumerate[6]: 52.235607°N, 000.713572°W\n    test 278 Tuple2LatLon.enumerate[7]: 52.237495°N, 000.71233°W\n    test 279 Tuple2LatLon.enumerate[8]: 52.239315°N, 000.710784°W\n    test 280 Tuple2LatLon.enumerate[9]: 52.240627°N, 000.708684°W\n    test 281 Tuple2LatLon.enumerate[10]: 52.240745°N, 000.707042°W\n    test 282 Tuple2LatLon.enumerate[11]: 52.240863°N, 000.704945°W\n    test 283 Tuple2LatLon.enumerate[*]: 11\n    test 284 Tuple2LatLon.reversed[11]: 52.240863°N, 000.704945°W\n    test 285 Tuple2LatLon.reversed[10]: 52.240745°N, 000.707042°W\n    test 286 Tuple2LatLon.reversed[9]: 52.240627°N, 000.708684°W\n    test 287 Tuple2LatLon.reversed[8]: 52.239315°N, 000.710784°W\n    test 288 Tuple2LatLon.reversed[7]: 52.237495°N, 000.71233°W\n    test 289 Tuple2LatLon.reversed[6]: 52.235607°N, 000.713572°W\n    test 290 Tuple2LatLon.reversed[5]: 52.234375°N, 000.714348°W\n    test 291 Tuple2LatLon.reversed[4]: 52.233013°N, 000.71486°W\n    test 292 Tuple2LatLon.reversed[3]: 52.232448°N, 000.71446°W\n    test 293 Tuple2LatLon.reversed[2]: 52.225944°N, 000.71°W\n    test 294 Tuple2LatLon.reversed[1]: 52.221916°N, 000.705456°W\n    test 295 Tuple2LatLon.reversed[0]: 52.220489°N, 000.701206°W\n    test 296 Tuple2LatLon.findall[0]: (0,)\n    test 297 Tuple2LatLon.findall[1]: (1,)\n    test 298 Tuple2LatLon.findall[2]: (2,)\n    test 299 Tuple2LatLon.findall[3]: (3,)\n    test 300 Tuple2LatLon.findall[4]: (4,)\n    test 301 Tuple2LatLon.findall[5]: (5,)\n    test 302 Tuple2LatLon.findall[6]: (6,)\n    test 303 Tuple2LatLon.findall[7]: (7,)\n    test 304 Tuple2LatLon.findall[8]: (8,)\n    test 305 Tuple2LatLon.findall[9]: (9,)\n    test 306 Tuple2LatLon.findall[10]: (10,)\n    test 307 Tuple2LatLon.findall[11]: (11,)\n    test 308 Tuple2LatLon.findall[*]: 11\n    test 309 Tuple2LatLon.isNumpy2: False\n    test 310 Tuple2LatLon.isPoints2: False\n    test 311 Tuple2LatLon.isTuple2: True\n\n    testing(pygeodesy.points, 25.05.12, LatLon=<class 'pygeodesy.points.LatLon_'>)\n    test 312 areaOf: 8.811228e+09\n    test 313 centroidOf: 45.5, 1.5\n    test 314 perimeterOf: 2.673633e+05\n    test 315 isclockwise: False\n    test 316 isconvex: True\n    test 317 ispolar: False\n    test 318 areaOf: 7.086883e+09\n    test 319 perimeterOf: 2.687460e+05\n    test 320 centroidOf: 0.333333, 0.333333\n    test 321 isclockwise: True\n    test 322 isconvex: True\n    test 323 ispolar: False\n    test 324 areaOf: 2.827856e+10\n    test 325 perimeterOf: 4.717039e+05\n    test 326 centroidOf: 1.0, 1.0\n    test 327 isclockwise: False\n    test 328 isconvex: True\n    test 329 ispolar: False\n    test 330 areaOf: 2.747297e+13\n    test 331 perimeterOf: 2.332643e+07\n    test 332 centroidOf: 52.113, 102.123\n    test 333 isclockwise: False\n    test 334 isconvex: False\n    test 335 ispolar: True\n    test 336 areaOf: 8.482014e+10\n    test 337 perimeterOf: 1.334104e+06\n    test 338 centroidOf: 1.167, 1.667\n    test 339 isclockwise: False\n    test 340 isconvex: False\n    test 341 ispolar: False\n    test 342 areaOf: 5.151974e+13\n    test 343 perimeterOf: 2.638608e+07\n    test 344 centroidOf: -19.444, -133.333\n    test 345 isclockwise: True\n    test 346 isconvex: True\n    test 347 ispolar: False\n    test 348 areaOf: 1.751694e+12  FAILED, KNOWN, expected 4.469277e+12\n    test ./pygeodesy/ellipsoidalKarney.py:94: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return self.datum.ellipsoid.geodesic\n./pygeodesy/ellipsoidalKarney.py:139: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return fabs(_polygon(datum.ellipsoid.geodesic, points, True, False, wrap, polar))\n349 perimeterOf: 1.562029e+07\n    test 350 centroidOf: -72.926, 46.47\n    test 351 isclockwise: True\n    test 352 isconvex: False\n    test 353 ispolar: True\n    test 354 points2: 18\n    test 355 nearestOn5: (-77.455114, -16.67063, 4.134666, 307.988253, 0)\n    test 356 areaCO: 2.83192062868e+11  FAILED, KNOWN, expected 2.69601367661e+11\n    test 357 isclockwise: True\n    test 358 perimeterCO: 2098630.956053  FAILED, KNOWN, expected 2099854.381923\n    test 359 boundsOf: (-77.9, -163.0, -63.1, 172.0)\n    test 360 quadOf: 77.9°S, 163.0°W, 63.1°S, 163.0°W, 63.1°S, 172.0°E, 77.9°S, 172.0°E\n    test 361 intermediateTo: 51.368°N, 000.677°E, 'intermediateTo'\n    test 362 intermediateTo: True\n    test 363 intermediateTo: 51.368°N, 000.677°E\n    test 364 intermediateTo: 52.205°N, 000.119°E\n    test 365 intermediateTo: 48.857°N, 002.351°E\n    test 366 _isLatLon_: _Array2LatLon('[ ... ][1]', ilat=0, ilon=1)\n    test 367 latlon: (-66.6, -88.0)\n    test 368 philam: (-1.162389, -1.53589)\n    test 369 toStr: 66.6°S, 088.0°W\n    test 370 __ne__: False\n    test 371 isequalTo: True\n    test 372 isequalTo: True\n    test 373 latlonheight: (-66.6, -88.0, 0)\n    test 374 philamheight: (-1.162389, -1.53589, 0)\n    test 375 _N_vector: (0.01386, -0.39691, -0.91775)\n    test 376 toNvector: (0.01386, -0.39691, -0.91775, 0)\n    test 377 toNvector: (0.01386, -0.396906, -0.917755, 0)\n    test 378 classof: 66.6°S, 088.0°W\n    test 379 others: 66.6°S, 088.0°W\n    test 380 copy(<type 'type'>): (<class 'pygeodesy.points.LatLon_'>, True)\n    test 381 LatLon_.copy(): (<class 'pygeodesy.points.LatLon_'>, True)\n\n    testing(pygeodesy.points, 25.05.12, LatLon=<class 'pygeodesy.sphericalNvector.LatLon'>)\n    test 382 areaOf: 8.811228e+09\n    test 383 centroidOf: 45.5, 1.5\n    test 384 perimeterOf: 2.673633e+05\n    test 385 isclockwise: False\n    test 386 isconvex: True\n    test 387 ispolar: False\n    test 388 areaOf: 7.086883e+09\n    test 389 perimeterOf: 2.687460e+05\n    test 390 centroidOf: 0.333333, 0.333333\n    test 391 isclockwise: True\n    test 392 isconvex: True\n    test 393 ispolar: False\n    test 394 areaOf: 2.827856e+10\n    test 395 perimeterOf: 4.717039e+05\n    test 396 centroidOf: 1.0, 1.0\n    test 397 isclockwise: False\n    test 398 isconvex: True\n    test 399 ispolar: False\n    test 400 areaOf: 2.747297e+13\n    test 401 perimeterOf: 2.332643e+07\n    test 402 centroidOf: 52.113, 102.123\n    test 403 isclockwise: False\n    test 404 isconvex: False\n    test 405 ispolar: True\n    test 406 areaOf: 8.482014e+10\n    test 407 perimeterOf: 1.334104e+06\n    test 408 centroidOf: 1.167, 1.667\n    test 409 isclockwise: False\n    test 410 isconvex: False\n    test 411 ispolar: False\n    test 412 areaOf: 5.151974e+13\n    test 413 perimeterOf: 2.638608e+07\n    test 414 centroidOf: -19.444, -133.333\n    test 415 isclockwise: True\n    test 416 isconvex: True\n    test 417 ispolar: False\n    test 418 areaOf: 1.751694e+12  FAILED, KNOWN, expected 4.469277e+12\n    test 419 perimeterOf: 1.562029e+07\n    test 420 centroidOf: -72.926, 46.47\n    test 421 isclockwise: True\n    test 422 isconvex: False\n    test 423 ispolar: True\n    test 424 points2: 18\n    test 425 nearestOn5: (-77.455114, -16.67063, 4.134666, 307.988253, 0)\n    test 426 areaCO: 2.83192062868e+11  FAILED, KNOWN, expected 2.69601367661e+11\n    test 427 isclockwise: True\n    test 428 perimeterCO: 2098630.956053  FAILED, KNOWN, expected 2099854.381923\n    test 429 latlon: (-66.6, -88.0)\n    test 430 philam: (-1.162389, -1.53589)\n    test 431 latlonheight: (-66.6, -88.0, 0)\n    test 432 philamheight: (-1.162389, -1.53589, 0)\n    test 433 _N_vector: (0.01386, -0.39691, -0.91775)\n    test 434 toNvector: (0.01386, -0.39691, -0.91775)\n    test 435 toNvector: (0.01386, -0.396906, -0.917755, 0)\n    test 436 classof: 66.6°S, 088.0°W\n    test 437 others: 66.6°S, 088.0°W\n    test 438 copy(<type 'type'>): (<class 'pygeodesy.sphericalNvector.LatLon'>, True)\n    test 439 LatLon.copy(): (<class 'pygeodesy.sphericalNvector.LatLon'>, True)\n\n    testing(pygeodesy.points, 25.05.12, LatLon=<class 'pygeodesy.sphericalTrigonometry.LatLon'>)\n    test 440 areaOf: 8.811228e+09\n    test 441 centroidOf: 45.5, 1.5\n    test 442 perimeterOf: 2.673633e+05\n    test 443 isclockwise: False\n    test 444 isconvex: True\n    test 445 ispolar: False\n    test 446 areaOf: 7.086883e+09\n    test 447 perimeterOf: 2.687460e+05\n    test 448 centroidOf: 0.333333, 0.333333\n    test 449 isclockwise: True\n    test 450 isconvex: True\n    test 451 ispolar: False\n    test 452 areaOf: 2.827856e+10\n    test 453 perimeterOf: 4.717039e+05\n    test 454 centroidOf: 1.0, 1.0\n    test 455 isclockwise: False\n    test 456 isconvex: True\n    test 457 ispolar: False\n    test 458 areaOf: 2.747297e+13\n    test 459 perimeterOf: 2.332643e+07\n    test 460 centroidOf: 52.113, 102.123\n    test 461 isclockwise: False\n    test 462 isconvex: False\n    test 463 ispolar: True\n    test 464 areaOf: 8.482014e+10\n    test 465 perimeterOf: 1.334104e+06\n    test 466 centroidOf: 1.167, 1.667\n    test 467 isclockwise: False\n    test 468 isconvex: False\n    test 469 ispolar: False\n    test 470 areaOf: 5.151974e+13\n    test 471 perimeterOf: 2.638608e+07\n    test 472 centroidOf: -19.444, -133.333\n    test 473 isclockwise: True\n    test 474 isconvex: True\n    test 475 ispolar: False\n    test 476 areaOf: 1.751694e+12  FAILED, KNOWN, expected 4.469277e+12\n    test 477 perimeterOf: 1.562029e+07\n    test 478 centroidOf: -72.926, 46.47\n    test 479 isclockwise: True\n    test 480 isconvex: False\n    test 481 ispolar: True\n    test 482 points2: 18\n    test 483 nearestOn5: (-77.455114, -16.67063, 4.134666, 307.988253, 0)\n    test 484 areaCO: 2.83192062868e+11  FAILED, KNOWN, expected 2.69601367661e+11\n    test 485 isclockwise: True\n    test 486 perimeterCO: 2098630.956053  FAILED, KNOWN, expected 2099854.381923\n    test 487 latlon: (-66.6, -88.0)\n    test 488 philam: (-1.162389, -1.53589)\n    test 489 latlonheight: (-66.6, -88.0, 0)\n    test 490 philamheight: (-1.162389, -1.53589, 0)\n    test 491 _N_vector: (0.01386, -0.39691, -0.91775)\n    test 492 toNvector: (0.01386, -0.39691, -0.91775)\n    test 493 toNvector: (0.01386, -0.396906, -0.917755, 0)\n    test 494 classof: 66.6°S, 088.0°W\n    test 495 others: 66.6°S, 088.0°W\n    test 496 copy(<type 'type'>): (<class 'pygeodesy.sphericalTrigonometry.LatLon'>, True)\n    test 497 LatLon.copy(): (<class 'pygeodesy.sphericalTrigonometry.LatLon'>, True)\n\n    testing(pygeodesy.points, 25.05.12, LatLon=<class 'pygeodesy.ellipsoidalNvector.LatLon'>)\n    test 498 areaOf: 8.811228e+09\n    test 499 centroidOf: 45.5, 1.5\n    test 500 perimeterOf: 2.673633e+05\n    test 501 isclockwise: False\n    test 502 isconvex: True\n    test 503 ispolar: False\n    test 504 areaOf: 7.086883e+09\n    test 505 perimeterOf: 2.687460e+05\n    test 506 centroidOf: 0.333333, 0.333333\n    test 507 isclockwise: True\n    test 508 isconvex: True\n    test 509 ispolar: False\n    test 510 areaOf: 2.827856e+10\n    test 511 perimeterOf: 4.717039e+05\n    test 512 centroidOf: 1.0, 1.0\n    test 513 isclockwise: False\n    test 514 isconvex: True\n    test 515 ispolar: False\n    test 516 areaOf: 2.747297e+13\n    test 517 perimeterOf: 2.332643e+07\n    test 518 centroidOf: 52.113, 102.123\n    test 519 isclockwise: False\n    test 520 isconvex: False\n    test 521 ispolar: True\n    test 522 areaOf: 8.482014e+10\n    test 523 perimeterOf: 1.334104e+06\n    test 524 centroidOf: 1.167, 1.667\n    test 525 isclockwise: False\n    test 526 isconvex: False\n    test 527 ispolar: False\n    test 528 areaOf: 5.151974e+13\n    test 529 perimeterOf: 2.638608e+07\n    test 530 centroidOf: -19.444, -133.333\n    test 531 isclockwise: True\n    test 532 isconvex: True\n    test 533 ispolar: False\n    test 534 areaOf: 1.751694e+12  FAILED, KNOWN, expected 4.469277e+12\n    test 535 perimeterOf: 1.562029e+07\n    test 536 centroidOf: -72.926, 46.47\n    test 537 isclockwise: True\n    test 538 isconvex: False\n    test 539 ispolar: True\n    test 540 points2: 18\n    test 541 nearestOn5: (-77.455114, -16.67063, 4.134666, 307.988253, 0)\n    test 542 areaCO: 2.83192062868e+11  FAILED, KNOWN, expected 2.69601367661e+11\n    test 543 isclockwise: True\n    test 544 perimeterCO: 2098630.956053  FAILED, KNOWN, expected 2099854.381923\n    test 545 latlon: (-66.6, -88.0)\n    test 546 philam: (-1.162389, -1.53589)\n    test 547 latlonheight: (-66.6, -88.0, 0)\n    test 548 philamheight: (-1.162389, -1.53589, 0)\n    test 549 _N_vector: (0.01386, -0.39691, -0.91775)\n    test 550 toNvector: (0.01386, -0.39691, -0.91775)\n    test 551 toNvector: (0.01386, -0.396906, -0.917755, 0)\n    test 552 classof: 66.6°S, 088.0°W\n    test 553 others: 66.6°S, 088.0°W\n    test 554 copy(<type 'type'>): (<class 'pygeodesy.ellipsoidalNvector.LatLon'>, True)\n    test 555 LatLon.copy(): (<class 'pygeodesy.ellipsoidalNvector.LatLon'>, True)\n\n    testing(pygeodesy.points, 25.05.12, LatLon=<class 'pygeodesy.ellipsoidalVincenty.LatLon'>)\n    test 556 areaOf: 8.811228e+09\n    test 557 centroidOf: 45.5, 1.5\n    test 558 perimeterOf: 2.673633e+05\n    test 559 isclockwise: False\n    test 560 isconvex: True\n    test 561 ispolar: False\n    test 562 areaOf: 7.086883e+09\n    test 563 perimeterOf: 2.687460e+05\n    test 564 centroidOf: 0.333333, 0.333333\n    test 565 isclockwise: True\n    test 566 isconvex: True\n    test 567 ispolar: False\n    test 568 areaOf: 2.827856e+10\n    test 569 perimeterOf: 4.717039e+05\n    test 570 centroidOf: 1.0, 1.0\n    test 571 isclockwise: False\n    test 572 isconvex: True\n    test 573 ispolar: False\n    test 574 areaOf: 2.747297e+13\n    test 575 perimeterOf: 2.332643e+07\n    test 576 centroidOf: 52.113, 102.123\n    test 577 isclockwise: False\n    test 578 isconvex: False\n    test 579 ispolar: True\n    test 580 areaOf: 8.482014e+10\n    test 581 perimeterOf: 1.334104e+06\n    test 582 centroidOf: 1.167, 1.667\n    test 583 isclockwise: False\n    test 584 isconvex: False\n    test 585 ispolar: False\n    test 586 areaOf: 5.151974e+13\n    test 587 perimeterOf: 2.638608e+07\n    test 588 centroidOf: -19.444, -133.333\n    test 589 isclockwise: True\n    test 590 isconvex: True\n    test 591 ispolar: False\n    test 592 areaOf: 1.751694e+12  FAILED, KNOWN, expected 4.469277e+12\n    test 593 perimeterOf: 1.562029e+07\n    test 594 centroidOf: -72.926, 46.47\n    test 595 isclockwise: True\n    test 596 isconvex: False\n    test 597 ispolar: True\n    test 598 points2: 18\n    test 599 nearestOn5: (-77.455114, -16.67063, 4.134666, 307.988253, 0)\n    test 600 areaCO: 2.83192062868e+11  FAILED, KNOWN, expected 2.69601367661e+11\n    test 601 isclockwise: True\n    test 602 perimeterCO: 2098630.956053  FAILED, KNOWN, expected 2099854.381923\n    test 603 latlon: (-66.6, -88.0)\n    test 604 philam: (-1.162389, -1.53589)\n    test 605 latlonheight: (-66.6, -88.0, 0)\n    test 606 philamheight: (-1.162389, -1.53589, 0)\n    test 607 _N_vector: (0.01386, -0.39691, -0.91775)\n    test 608 toNvector: (0.01386, -0.39691, -0.91775, 0)\n    test 609 toNvector: (0.01386, -0.396906, -0.917755, 0)\n    test 610 classof: 66.6°S, 088.0°W\n    test 611 others: 66.6°S, 088.0°W\n    test 612 copy(<type 'type'>): (<class 'pygeodesy.ellipsoidalVincenty.LatLon'>, True)\n    test 613 LatLon.copy(): (<class 'pygeodesy.ellipsoidalVincenty.LatLon'>, True)\n\n    testing(pygeodesy.points, 25.05.12, LatLon=<class 'pygeodesy.ellipsoidalKarney.LatLon'>)\n    test 614 areaOf: 8.811228e+09\n    test 615 centroidOf: 45.5, 1.5\n    test 616 perimeterOf: 2.673633e+05\n    test 617 isclockwise: False\n    test 618 isconvex: True\n    test 619 ispolar: False\n    test 620 areaOf: 7.086883e+09\n    test 621 perimeterOf: 2.687460e+05\n    test 622 centroidOf: 0.333333, 0.333333\n    test 623 isclockwise: True\n    test 624 isconvex: True\n    test 625 ispolar: False\n    test 626 areaOf: 2.827856e+10\n    test 627 perimeterOf: 4.717039e+05\n    test 628 centroidOf: 1.0, 1.0\n    test 629 isclockwise: False\n    test 630 isconvex: True\n    test 631 ispolar: False\n    test 632 areaOf: 2.747297e+13\n    test 633 perimeterOf: 2.332643e+07\n    test 634 centroidOf: 52.113, 102.123\n    test 635 isclockwise: False\n    test 636 isconvex: False\n    test 637 ispolar: True\n    test 638 areaOf: 8.482014e+10\n    test 639 perimeterOf: 1.334104e+06\n    test 640 centroidOf: 1.167, 1.667\n    test 641 isclockwise: False\n    test 642 isconvex: False\n    test 643 ispolar: False\n    test 644 areaOf: 5.151974e+13\n    test 645 perimeterOf: 2.638608e+07\n    test 646 centroidOf: -19.444, -133.333\n    test 647 isclockwise: True\n    test 648 isconvex: True\n    test 649 ispolar: False\n    test 650 areaOf: 1.751694e+12  FAILED, KNOWN, expected 4.469277e+12\n    test 651 perimeterOf: 1.562029e+07\n    test 652 centroidOf: -72.926, 46.47\n    test 653 isclockwise: True\n    test 654 isconvex: False\n    test 655 ispolar: True\n    test 656 points2: 18\n    test 657 nearestOn5: (-77.455114, -16.67063, 4.134666, 307.988253, 0)\n    test 658 areaCO: 2.83192062868e+11  FAILED, KNOWN, expected 2.69601367661e+11\n    test 659 isclockwise: True\n    test 660 perimeterCO: 2098630.956053  FAILED, KNOWN, expected 2099854.381923\n    test 661 latlon: (-66.6, -88.0)\n    test 662 philam: (-1.162389, -1.53589)\n    test 663 latlonheight: (-66.6, -88.0, 0)\n    test 664 philamheight: (-1.162389, -1.53589, 0)\n    test 665 _N_vector: (0.01386, -0.39691, -0.91775)\n    test 666 toNvector: (0.01386, -0.39691, -0.91775, 0)\n    test 667 toNvector: (0.01386, -0.396906, -0.917755, 0)\n    test 668 classof: 66.6°S, 088.0°W\n    test 669 others: 66.6°S, 088.0°W\n    test 670 copy(<type 'type'>): (<class 'pygeodesy.ellipsoidalKarney.LatLon'>, True)\n    test 671 LatLon.copy(): (<class 'pygeodesy.ellipsoidalKarney.LatLon'>, True)\n\n    testing(pygeodesy.points, 25.05.12, LatLon=<class 'pygeodesy.ellipsoidalExact.LatLon'>)\n    test 672 areaOf: 8.811228e+09\n    test 673 centroidOf: 45.5, 1.5\n    test 674 perimeterOf: 2.673633e+05\n    test 675 isclockwise: False\n    test 676 isconvex: True\n    test 677 ispolar: False\n    test 678 areaOf: 7.086883e+09\n    test 679 perimeterOf: 2.687460e+05\n    test 680 centroidOf: 0.333333, 0.333333\n    test 681 isclockwise: True\n    test 682 isconvex: True\n    test 683 ispolar: False\n    test 684 areaOf: 2.827856e+10\n    test 685 perimeterOf: 4.717039e+05\n    test 686 centroidOf: 1.0, 1.0\n    test 687 isclockwise: False\n    test 688 isconvex: True\n    test 689 ispolar: False\n    test 690 areaOf: 2.747297e+13\n    test 691 perimeterOf: 2.332643e+07\n    test 692 centroidOf: 52.113, 102.123\n    test 693 isclockwise: False\n    test 694 isconvex: False\n    test 695 ispolar: True\n    test 696 areaOf: 8.482014e+10\n    test 697 perimeterOf: 1.334104e+06\n    test 698 centroidOf: 1.167, 1.667\n    test 699 isclockwise: False\n    test 700 isconvex: False\n    test 701 ispolar: False\n    test 702 areaOf: 5.151974e+13\n    test 703 perimeterOf: 2.638608e+07\n    test 704 centroidOf: -19.444, -133.333\n    test 705 isclockwise: True\n    test 706 isconvex: True\n    test 707 ispolar: False\n    test 708 areaOf: 1.751694e+12  FAILED, KNOWN, expected 4.469277e+12\n    test 709 perimeterOf: 1.562029e+07\n    test 710 centroidOf: -72.926, 46.47\n    test 711 isclockwise: True\n    test 712 isconvex: False\n    test 713 ispolar: True\n    test 714 points2: 18\n    test 715 nearestOn5: (-77.455114, -16.67063, 4.134666, 307.988253, 0)\n    test 716 areaCO: 2.83192062868e+11  FAILED, KNOWN, expected 2.69601367661e+11\n    test 717 isclockwise: True\n    test 718 perimeterCO: 2098630.956053  FAILED, KNOWN, expected 2098430.887891\n    test 719 latlon: (-66.6, -88.0)\n    test 720 philam: (-1.162389, -1.53589)\n    test 721 latlonheight: (-66.6, -88.0, 0)\n    test 722 philamheight: (-1.162389, -1.53589, 0)\n    test 723 _N_vector: (0.01386, -0.39691, -0.91775)\n    test 724 toNvector: (0.01386, -0.39691, -0.91775, 0)\n    test 725 toNvector: (0.01386, -0.396906, -0.917755, 0)\n    test 726 classof: 66.6°S, 088.0°W\n    test 727 others: 66.6°S, 088.0°W\n    test 728 copy(<type 'type'>): (<class 'pygeodesy.ellipsoidalExact.LatLon'>, True)\n    test 729 LatLon.copy(): (<class 'pygeodesy.ellipsoidalExact.LatLon'>, True)\n\n    testArea(pygeodesy.ellipsoidalKarney, 25.05.27)\n    test 730 luneOf: 1.27516405431022e+14\n\n    testArea(pygeodesy.ellipsoidalExact, 25.08.28)\n    test 731 luneOf: 1.27516405431022e+14\n\n    testArea(pygeodesy.ellipsoidalGeodSolve, 25.08.28)\n    test 732 luneOf: 1.27516405431022e+14\n\n    67 of 732 testPoints.py tests (9.2%) FAILED, incl. 21 KNOWN plus 46 DeprecationWarnings (pygeodesy 26.3.26 Python 2.7.18 64bit arm64_x86_64 geographiclib 1.50 numpy 1.16.6 scipy 1.2.2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 -W  default) 3.205 sec\nrunning /Library/Framewo....ython -W default ~/PyGeodesy/test/testProps.py\n\n    testing testProps.py 23.03.27\n\n    test<class 'pygeodesy.named._NamedBase'>(pygeodesy.props, 25.12.31)\n    test 1 P1: 1\n    test 2 p1: 2\n    test 3 P2: 1\n    test 4 p2: 3\n    test 5 q1: 1\n    test 6 q2: 2\n    test 7 q3: True\n    test 8 u1: None\n    test 9 u2: U\n    test 10 P3: 4\n    test 11 p3: 5\n    test 12 q4: False\n    test 13 q5: 2\n    test 14 u3: None\n    test 15 u4: U\n    test 16 X1: immutable Property_RO: X.setter X\n    test 17 X2: invalid Property_RO: X.deleter X\n    test 18 y1: immutable property_RO: y.setter y\n    test 19 y2: invalid property_RO: y.deleter y\n    test 20 Z1: invalid Property: Z.deleter Z\n    test 21 Z2: invalid Property: Z.getter Z\n\n    test<class 'pygeodesy.ellipsoids.Ellipsoid'>(pygeodesy.props, 25.12.31)\n    test 22 P1: 1\n    test 23 p1: 2\n    test 24 P2: 1\n    test 25 p2: 3\n    test 26 q1: 1\n    test 27 q2: 2\n    test 28 q3: True\n    test 29 u1: None\n    test 30 u2: U\n    test 31 P3: 4\n    test 32 p3: 5\n    test 33 q4: False\n    test 34 q5: 2\n    test 35 u3: None\n    test 36 u4: U\n    test 37 X1: immutable Property_RO: X.setter X\n    test 38 X2: invalid Property_RO: X.deleter X\n    test 39 y1: immutable property_RO: y.setter y\n    test 40 y2: invalid property_RO: y.deleter y\n    test 41 Z1: invalid Property: Z.deleter Z\n    test 42 Z2: invalid Property: Z.getter Z\n\n    all 42 testProps.py tests passed (pygeodesy 26.3.26 Python 2.7.18 64bit arm64_x86_64 geographiclib 1.50 numpy 1.16.6 scipy 1.2.2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 -W  default) 531.197 us\nrunning /Library/Framewo....ython -W default ~/PyGeodesy/test/testResections.py\n./test/testResections.py:40: DeprecationWarning: method L{collins<__main__.Cartesian_.collins>} has been DEPRECATED, use method L{collins5}.\n  self.test(collins.__name__, C_(A).collins(C, B, 109.5125, 115.0889), t, nl=1)  # DEPRECATED\n./test/testResections.py:63: DeprecationWarning: method L{tienstra<__main__.Cartesian_.tienstra>} has been DEPRECATED, use method L{tienstra7}.\n  self.test(tienstra.__name__, C_(A).tienstra(B, C, 115.0889, None, 109.5125), t, nl=1)  # DEPRECATED\n./test/testResections.py:72: DeprecationWarning: function L{collins<pygeodesy.deprecated.functions.collins>} has been DEPRECATED, use function L{pygeodesy.collins5}.\n  self.test(collins.__name__, collins(A, C, B, 109.3, 115.1), t, nl=1)  # DEPRECATED\n./test/testResections.py:94: DeprecationWarning: function L{tienstra<pygeodesy.deprecated.functions.tienstra>} has been DEPRECATED, use function L{pygeodesy.tienstra7}.\n  self.test(tienstra.__name__, tienstra(A, B, C, 115.1, beta=135.6, gamma=109.3), t, nl=1)  # DEPRECATED\n./test/testResections.py:100: DeprecationWarning: function L{triAngle4<pygeodesy.deprecated.functions.triAngle4>} has been DEPRECATED on 2023.09.14, use function L{pygeodesy.triAngle5}.\n  rA, rB, rC, _ = triAngle4(10, 30, c)\n./pygeodesy/deprecated/classes.py:33: DeprecationWarning: class L{TriAngle4Tuple<pygeodesy.deprecated.classes.TriAngle4Tuple>} has been DEPRECATED on 2023.09.14, use class L{TriAngle5Tuple}, ignoring item C{area}.\n  deprecated_class(cls)\n./test/testResections.py:107: DeprecationWarning: function L{triAngle4<pygeodesy.deprecated.functions.triAngle4>} has been DEPRECATED on 2023.09.14, use function L{pygeodesy.triAngle5}.\n  rA, rB, rC, _ = triAngle4(320, 435, 598)\n./test/testResections.py:111: DeprecationWarning: function L{triAngle4<pygeodesy.deprecated.functions.triAngle4>} has been DEPRECATED on 2023.09.14, use function L{pygeodesy.triAngle5}.\n  rA, rB, rC, _ = triAngle4(100, 100, 100)\n./test/testResections.py:115: DeprecationWarning: function L{triAngle4<pygeodesy.deprecated.functions.triAngle4>} has been DEPRECATED on 2023.09.14, use function L{pygeodesy.triAngle5}.\n  rA, rB, rC, _ = triAngle4(435, 320, 600)\n./test/testResections.py:119: DeprecationWarning: function L{triAngle4<pygeodesy.deprecated.functions.triAngle4>} has been DEPRECATED on 2023.09.14, use function L{pygeodesy.triAngle5}.\n  rA, rB, rC, _ = triAngle4(1716, 924, 1056)\n./test/testResections.py:126: DeprecationWarning: function L{triAngle4<pygeodesy.deprecated.functions.triAngle4>} has been DEPRECATED on 2023.09.14, use function L{pygeodesy.triAngle5}.\n  t = triAngle4(1, 2, EPS0 / 2)  # DEPRECATED\n\n    testing testResections.py 25.05.04\n    test 1 cassini: (2128.3903, 5578.1443, 0)\n    test 2 cassini: Cartesian_(2128.3903, 5578.1443, 0)\n\n    test 3 collins5: (2128.3903, 5578.1443, 0)\n    test 4 collins5: (1830.5948, 2576.2429, 0)\n    test 5 collins5: 1581.1388, 1562.0499, 2121.3203\n    test 6 collins5: Cartesian_(2128.3903, 5578.1443, 0)\n    test 7 collins5: Cartesian_(1830.5948, 2576.2429, 0)\n    test 8 collins5: 1581.1388, 1562.0499, 2121.3203\n    test 9 collins5: 1581.1388, 1562.0499, 2121.3203\n\n    test 10 collins: (Cartesian_(2128.39, 5578.144, 0), Cartesian_(1830.595, 2576.243, 0), 1581.13883, 1562.049935, 2121.320344)\n\n    test 11 pierlot: (2128.3903, 5578.1443, 0)\n    test 12 pierlot: Cartesian_(2128.3903, 5578.1443, 0)\n    test 13 pierlot: Cartesian_(2128.3903, 5578.1443, 0.0)\n\n    test 14 pierlotx: (2128.3903, 5578.1443, 0)\n    test 15 pierlotx: Cartesian_(2128.3903, 5578.1443, 0)\n    test 16 pierlotx: Cartesian_(2128.3903, 5578.1443, 0.0)\n\n    test 17 tienstra7: (2128.3903, 5578.1443, 0)\n    test 18 tienstra7: 47.9357, 84.8896, 47.1747, 1581.1388, 2121.3203, 1562.0499\n    test 19 tienstra7: Cartesian_(2128.3903, 5578.1443, 0)\n    test 20 tienstra7: 47.9357, 84.8896, 47.1747, 1581.1388, 2121.3203, 1562.0499\n\n    test 21 tienstra: (Cartesian_(2128.39, 5578.144, 0), 47.935673, 84.889582, 47.174744, 1581.13883, 2121.320344, 1562.049935)\n\n    test 22 cassini: (2129.3018, 5575.8016, 0)\n\n    test 23 collins5: (2129.3018, 5575.8016, 0)\n    test 24 collins5: (1835.1911, 2563.0708, 0)\n    test 25 collins5: 1581.1388, 1562.0499, 2121.3203\n\n    test 26 collins: (Vector3d(2129.30185, 5575.80164, 0), Vector3d(1835.19112, 2563.07083, 0), 1581.13883, 1562.049935, 2121.320344)\n\n    test 27 pierlot: (2129.3018, 5575.8016, 0)\n    test 28 pierlot: alpha12 (115.1), alpha23 (109.3), eps (0), point1 (Vector3d(3100.0, 5000.0, 0)), point2 (Vector3d(2200.0, 6300.0, 0)) or point3 (Vector3d(1000.0, 5300.0, 0)): eps (0) invalid\n\n    test 29 pierlotx: (2129.3018, 5575.8016, 0)\n    test 30 pierlotx: (2128.2026, 4708.1218, 0)\n    test 31 pierlotx: (1969.0673, 6633.5695, 0)\n    test 32 pierlotx: (2438.0239, 5094.568, 0)\n\n    test 33 tienstra7: (2129.3018, 5575.8016, 0)\n    test 34 tienstra7: 47.9357, 84.8896, 47.1747, 1581.1388, 2121.3203, 1562.0499\n\n    test 35 tienstra: (Vector3d(2129.30185, 5575.80164, 0), 47.935673, 84.889582, 47.174744, 1581.13883, 2121.320344, 1562.049935)\n\n    test 36 triSide4: (10.0, 30.0, 0.785398, 8.840862)\n\n    test 37 snellius3: (17.54582, 38.564239, 46.317675)\n    test 38 snellius3: (844.880591, 571.107418, 835.462796)\n    test 39 snellius3: (128.557522, 100.0, 187.938524)\n    test 40 snellius3: (567.480866, 847.344375, 832.446688)\n    test 41 snellius3: (4064.197388, 3652.539386, 4988.197388)\n\n    test 42 wildberger3: (17.54582, 38.56424, 46.317675)\n    test 43 wildberger3: (844.880591, 571.107418, 835.462796)\n    test 44 wildberger3: (128.557522, 100.0, 187.938524)\n    test 45 wildberger3: (567.480866, 847.344375, 832.446688)\n    test 46 wildberger3: (4064.197346, 3652.539342, 4988.197355)  FAILED, KNOWN, expected (4064.197343, 3652.539342, 4988.197355)\n\n    test 47 triAngle: 3.141592654\n    test 48 triAngle4: (1.570796, 1.570796, 0.0, 0.0)\n    test 49 triAngle5: (1.570796, 1.570796, 0.0, 0.0, 0.0)\n    test 50 triAngle5: (0.24871, 0.927295, 1.965587, 1.5, 24.0)\n    test 51 triArea: 24.0\n    test 52 triSide2: (2.0, 0.0)\n    test 53 triSide2: (2.0, 3.141593)\n\n    17 of 53 testResections.py tests (32.1%) FAILED, incl. 1 KNOWN plus 16 DeprecationWarnings (pygeodesy 26.3.26 Python 2.7.18 64bit arm64_x86_64 geographiclib 1.50 numpy 1.16.6 scipy 1.2.2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 -W  default) 16.970 ms\nrunning /Library/Framewo....ython -W default ~/PyGeodesy/test/testRhumb_aux_.py\n\n    testing testRhumb_aux_.py 24.08.30 (module pygeodesy.rhumb.aux_ 25.08.31)\n\n    testDirectX vs ...(pygeodesy.rhumb.aux_, 25.08.31)\n    test 1 Direct.azi12: -92.38889\n    test 2 Direct.lat1: 40.6\n    test 3 Direct.lat2: 21.3781208262067  FAILED, KNOWN (0.402846), expected 35.79999595\n    test 4 Direct.lon1: -73.8\n    test 5 Direct.lon2: -102.999609498889  FAILED, KNOWN (1.73414), expected 140.3000041\n    test 6 Direct.s12: 12782581.068\n\n    test 7 GDict.azi12: 51\n    test 8 GDict.lat1: 40.6\n    test 9 GDict.lat2: 71.688899882813\n    test 10 GDict.lon1: -73.8\n    test 11 GDict.lon2: 0.255519824423416  FAILED, KNOWN (2.23983e-13), expected 0.255519824423359\n    test 12 GDict.S12: 44095641862956.1\n    test 13 GDict.s12: 5500000\n\n    test 14 RhumbLineAux: TMorder=6, azi12=51.0, exact=True, lat1=40.6, lon1=-73.8, rhumb=RhumbAux(RAorder=None, TMorder=6, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), exact=True), xTM=ExactTransverseMercator(datum='WGS84', extendp=False, k0=0.9996, lon0=0.0)\n    test 15 RhumbAux: RhumbAux(RAorder=None, TMorder=6, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), exact=True)\n    test 16 isLoxodrome: True\n\n    test 17 ArcPosition.a12: 51\n    test 18 ArcPosition.azi12: 51\n    test 19 ArcPosition.lat1: 40.6\n    test 20 ArcPosition.lat2: 72.6351275818438  FAILED, KNOWN (5.75694e-09), expected 72.635128\n    test 21 ArcPosition.lon1: -73.8\n    test 22 ArcPosition.lon2: 4.06852757947446  FAILED, KNOWN (1.03361e-07), expected 4.068528\n    test 23 ArcPosition.S12: 46665957571716.4\n    test 24 ArcPosition.s12: 5667780.57994388  FAILED, KNOWN (2.16901e-14), expected 5667780.579944\n\n    test 25 Position.a12: 51\n    test 26 Position.azi12: 51\n    test 27 Position.lat1: 40.6\n    test 28 Position.lat2: 72.6351275818438  FAILED, KNOWN (5.75694e-09), expected 72.635128\n    test 29 Position.lon1: -73.8\n    test 30 Position.lon2: 4.06852757947446  FAILED, KNOWN (1.03361e-07), expected 4.068528\n    test 31 Position.S12: 46665957571716.4\n    test 32 Position.s12: 5667780.57994388\n\n    test 33 Direct.a12: 115.020619671634  FAILED, KNOWN (2.85484e-09), expected 115.02062\n    test 34 Direct.azi12: -92.38889\n    test 35 Direct.lat1: 40.6\n    test 36 Direct.lat2: 35.799995945206  FAILED, KNOWN (1.13262e-07), expected 35.8\n    test 37 Direct.lon1: -73.8\n    test 38 Direct.lon2: 140.300004102052  FAILED, KNOWN (2.92377e-08), expected 140.3\n    test 39 Direct.s12: 12782581.068\n\n    test 40 ArcDirect.a12: 115.020619671634\n    test 41 ArcDirect.azi12: -92.38889\n    test 42 ArcDirect.lat1: 40.6\n    test 43 ArcDirect.lat2: 35.799995945206  FAILED, KNOWN (1.13262e-07), expected 35.8\n    test 44 ArcDirect.lon1: -73.8\n    test 45 ArcDirect.lon2: 140.300004102052  FAILED, KNOWN (2.92377e-08), expected 140.3\n    test 46 ArcDirect.s12: 12782581.068\n\n    test 47 Direct8: (40.6, -73.8, 35.799996, 140.300004, -92.38889, 12782581.068, -63760638302268.734375, 115.02062)\n    test 48 toDirect9Tuple: (115.02062, 35.799996, 140.300004, -92.38889, 12782581.068, 12782581.068, 1.0, 1.0, -63760638302268.734375)\n    test 49 DirectLine: (40.6, -73.8, 35.799996, 140.300004, -92.38889, 12782581.068, -63760638302268.734375, 115.02062)\n\n    test 50 RhumbLineAux: TMorder=6, azi12=51.0, exact=True, lat1=40.6, lon1=-73.8, rhumb=RhumbAux(RAorder=None, TMorder=6, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), exact=True), xTM=ExactTransverseMercator(datum='WGS84', extendp=False, k0=0.9996, lon0=0.0)\n    test 51 DirectLine: TMorder=6, azi12=-51.0, exact=True, lat1=35.8, lon1=140.3, rhumb=RhumbAux(RAorder=None, TMorder=6, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), exact=True), xTM=ExactTransverseMercator(datum='WGS84', extendp=False, k0=0.9996, lon0=0.0)\n    test 52 Direct3: (71.6889, 0.25552, 231.0)\n    test 53 Direct3: (71.6889, 0.25552, 51.0)\n\n    test 54 RhumbSolve.azi12: 51\n    test 55 RhumbSolve.lat1: 40.6\n    test 56 RhumbSolve.lat2: 71.688899882813\n    test 57 RhumbSolve.lon1: -73.8\n    test 58 RhumbSolve.lon2: 0.255519824423359  FAILED, KNOWN (3.36517e-13), expected 0.255519824423445\n    test 59 RhumbSolve.s12: 5500000\n    test 60 RhumbSolve.S12: 44095641862956.1\n    test 61 iteration: None\n\n    test 62 f(-0.7)proLate.azi12: 51\n    test 63 f(-0.7)proLate.lat1: 40.6\n    test 64 f(-0.7)proLate.lat2: 78.6870542863008  FAILED, KNOWN (0.000114902), expected 78.696096602308\n    test 65 f(-0.7)proLate.lon1: -73.8\n    test 66 f(-0.7)proLate.lon2: 132.44205049586  FAILED, KNOWN (1.44112), expected 54.2545319022978\n    test 67 f(-0.7)proLate.S12: 209315447531516  FAILED, KNOWN (0.610789), expected 129945920715013\n    test 68 f(-0.7)proLate.s12: 5500000\n\n    test 69 f(-0.6)proLate.azi12: 51\n    test 70 f(-0.6)proLate.lat1: 40.6\n    test 71 f(-0.6)proLate.lat2: 77.0737375316749  FAILED, KNOWN (2.70291e-05), expected 77.0758208198502\n    test 72 f(-0.6)proLate.lon1: -73.8\n    test 73 f(-0.6)proLate.lon2: 108.996612444383  FAILED, KNOWN (1.53686), expected 42.9652115291808\n    test 74 f(-0.6)proLate.S12: 174817851524521  FAILED, KNOWN (0.565321), expected 111681786580088\n    test 75 f(-0.6)proLate.s12: 5500000\n\n    test 76 f(-0.5)proLate.azi12: 51\n    test 77 f(-0.5)proLate.lat1: 40.6\n    test 78 f(-0.5)proLate.lat2: 75.63654242861  FAILED, KNOWN (3.03146e-06), expected 75.6363131401036\n    test 79 f(-0.5)proLate.lon1: -73.8\n    test 80 f(-0.5)proLate.lon2: 90.0115417970506  FAILED, KNOWN (1.70185), expected 33.3148081627488\n    test 81 f(-0.5)proLate.S12: 147005574087074  FAILED, KNOWN (0.52915), expected 96135478582826.5\n    test 82 f(-0.5)proLate.s12: 5500000\n\n    test 83 f(-0.4)proLate.azi12: 51\n    test 84 f(-0.4)proLate.lat1: 40.6\n    test 85 f(-0.4)proLate.lat2: 74.3898318477814  FAILED, KNOWN (5.38096e-06), expected 74.3894315611718\n    test 86 f(-0.4)proLate.lon1: -73.8\n    test 87 f(-0.4)proLate.lon2: 74.4254114298033  FAILED, KNOWN (1.98405), expected 24.9411017728723\n    test 88 f(-0.4)proLate.S12: 124219462485918  FAILED, KNOWN (0.501104), expected 82752093205157.9\n    test 89 f(-0.4)proLate.s12: 5500000\n\n    test 90 f(-0.3)proLate.azi12: 51\n    test 91 f(-0.3)proLate.lat1: 40.6\n    test 92 f(-0.3)proLate.lat2: 73.3500188213461  FAILED, KNOWN (1.7981e-06), expected 73.3498869306659\n    test 93 f(-0.3)proLate.lon1: -73.8\n    test 94 f(-0.3)proLate.lon2: 61.5442409361243  FAILED, KNOWN (2.4944), expected 17.6122521235805\n    test 95 f(-0.3)proLate.S12: 105334974210801  FAILED, KNOWN (0.480588), expected 71144036920514.8\n    test 96 f(-0.3)proLate.s12: 5500000\n\n    test 97 f(-0.2)proLate.azi12: 51\n    test 98 f(-0.2)proLate.lat1: 40.6\n    test 99 f(-0.2)proLate.lat2: 72.5367798354746  FAILED, KNOWN (1.88667e-07), expected 72.5367661501826\n    test 100 f(-0.2)proLate.lon1: -73.8\n    test 101 f(-0.2)proLate.lon2: 50.9090128514195  FAILED, KNOWN (3.56215), expected 11.158986522496\n    test 102 f(-0.2)proLate.S12: 89560298510403.5  FAILED, KNOWN (0.467873), expected 61013644644445.4\n    test 103 f(-0.2)proLate.s12: 5500000\n\n    test 104 f(-0.1)proLate.azi12: 51\n    test 105 f(-0.1)proLate.lat1: 40.6\n    test 106 f(-0.1)proLate.lat2: 71.9743861286059  FAILED, KNOWN (1.96334e-09), expected 71.9743859872954\n    test 107 f(-0.1)proLate.lon1: -73.8\n    test 108 f(-0.1)proLate.lon2: 42.2282694141303  FAILED, KNOWN (6.74025), expected 5.45567570418933\n    test 109 f(-0.1)proLate.S12: 76324373625473  FAILED, KNOWN (0.463974), expected 52135051380432.5\n    test 110 f(-0.1)proLate.s12: 5500000\n\n    test 111 f(0.0)sphere.azi12: 51\n    test 112 f(0.0)sphere.lat1: 40.6\n    test 113 f(0.0)sphere.lat2: 71.6930469238479\n    test 114 f(0.0)sphere.lon1: -73.8\n    test 115 f(0.0)sphere.lon2: 0.413867159480986\n    test 116 f(0.0)sphere.S12: 44339815922640.7\n    test 117 f(0.0)sphere.s12: 5500000\n\n    test 118 f(0.1)obLate.azi12: 51\n    test 119 f(0.1)obLate.lat1: 40.6\n    test 120 f(0.1)obLate.lat2: 71.729987765115  FAILED, KNOWN (1.75062e-09), expected 71.7299876395427\n    test 121 f(0.1)obLate.lon1: -73.8\n    test 122 f(0.1)obLate.lon2: -4.02572626073508  FAILED, KNOWN (7.9475e-08), expected -4.0257265806798\n    test 123 f(0.1)obLate.S12: 37501325846672.1  FAILED, KNOWN (2.71713e-09), expected 37501325744776.3\n    test 124 f(0.1)obLate.s12: 5500000\n\n    test 125 f(0.2)obLate.azi12: 51\n    test 126 f(0.2)obLate.lat1: 40.6\n    test 127 f(0.2)obLate.lat2: 72.1296406403857  FAILED, KNOWN (1.232e-06), expected 72.129551777134\n    test 128 f(0.2)obLate.lon1: -73.8\n    test 129 f(0.2)obLate.lon2: -7.8995986572729  FAILED, KNOWN (1.33451e-05), expected -7.89970407960843\n    test 130 f(0.2)obLate.S12: 31524351627370.3  FAILED, KNOWN (1.66893e-06), expected 31524299015475.5\n    test 131 f(0.2)obLate.s12: 5500000\n\n    test 132 f(0.3)obLate.azi12: 51\n    test 133 f(0.3)obLate.lat1: 40.6\n    test 134 f(0.3)obLate.lat2: 72.9417108424475  FAILED, KNOWN (5.10483e-05), expected 72.9379874834441\n    test 135 f(0.3)obLate.lon1: -73.8\n    test 136 f(0.3)obLate.lon2: -11.2251277212334  FAILED, KNOWN (0.000280182), expected -11.2282736868989\n    test 137 f(0.3)obLate.S12: 26338446304263  FAILED, KNOWN (9.11203e-05), expected 26336046555855\n    test 138 f(0.3)obLate.s12: 5500000\n\n    test 139 f(0.4)obLate.azi12: 51\n    test 140 f(0.4)obLate.lat1: 40.6\n    test 141 f(0.4)obLate.lat2: 74.2150181648285  FAILED, KNOWN (0.000669614), expected 74.1653559732625\n    test 142 f(0.4)obLate.lon1: -73.8\n    test 143 f(0.4)obLate.lon2: -14.0025161670195  FAILED, KNOWN (0.0022368), expected -14.0339071426255\n    test 144 f(0.4)obLate.S12: 21893453097833.2  FAILED, KNOWN (0.00179024), expected 21854328668749.7\n    test 145 f(0.4)obLate.s12: 5500000\n\n    test 146 f(0.5)obLate.azi12: 51\n    test 147 f(0.5)obLate.lat1: 40.6\n    test 148 f(0.5)obLate.lat2: 75.9843423530564  FAILED, KNOWN (0.00435925), expected 75.6545456515098\n    test 149 f(0.5)obLate.lon1: -73.8\n    test 150 f(0.5)obLate.lon2: -16.2158875285256  FAILED, KNOWN (0.00971109), expected -16.3749056931627\n    test 151 f(0.5)obLate.S12: 18156125381149.1  FAILED, KNOWN (0.0170267), expected 17852162633650.3\n    test 152 f(0.5)obLate.s12: 5500000\n\n    test 153 f(0.6)obLate.azi12: 51\n    test 154 f(0.6)obLate.lat1: 40.6\n    test 155 f(0.6)obLate.lat2: 78.2485809971866  FAILED, KNOWN (0.0166816), expected 76.9646871723422\n    test 156 f(0.6)obLate.lon1: -73.8\n    test 157 f(0.6)obLate.lon2: -17.8350956076784  FAILED, KNOWN (0.027693), expected -18.3430698506249\n    test 158 f(0.6)obLate.S12: 15107154263233.1  FAILED, KNOWN (0.018399), expected 14834219095347.8\n    test 159 f(0.6)obLate.s12: 5500000\n\n    test 160 f(0.7)obLate.azi12: 51\n    test 161 f(0.7)obLate.lat1: 40.6\n    test 162 f(0.7)obLate.lat2: 80.9441758588144  FAILED, KNOWN (0.0375368), expected 78.0157145651534\n    test 163 f(0.7)obLate.lon1: -73.8\n    test 164 f(0.7)obLate.lon2: -18.8222432743228  FAILED, KNOWN (0.114723), expected -21.2614142472982\n    test 165 f(0.7)obLate.S12: 12738166063845.6  FAILED, KNOWN (0.461584), expected 8715315180697.08\n    test 166 f(0.7)obLate.s12: 5500000\n\n    test 167 f(0.8)obLate.azi12: 51\n    test 168 f(0.8)obLate.lat1: 40.6\n    test 169 f(0.8)obLate.lat2: 83.929256887239  FAILED, KNOWN (0.0240398), expected 81.9589810957133\n    test 170 f(0.8)obLate.lon1: -73.8\n    test 171 f(0.8)obLate.lon2: -19.1538144966026  FAILED, KNOWN (1.2482), expected 77.1693745258283\n    test 172 f(0.8)obLate.S12: 11048687499494.5  FAILED, KNOWN (0.56772), expected 25559099120347.3\n    test 173 f(0.8)obLate.s12: 5500000\n\n    test 174 f(0.9)obLate.azi12: 51\n    test 175 f(0.9)obLate.lat1: 40.6\n    test 176 f(0.9)obLate.lat2: 87.0045804494549  FAILED, KNOWN (0.120324), expected 98.9052225246142\n    test 177 f(0.9)obLate.lon1: -73.8\n    test 178 f(0.9)obLate.lon2: -18.8902657154806  FAILED, KNOWN (0.231307), expected -15.3416430304294\n    test 179 f(0.9)obLate.S12: 10042890721594  FAILED, KNOWN (1.9161), expected -10962672407243.4\n    test 180 f(0.9)obLate.s12: 5500000\n\n    testInverseX vs ...(pygeodesy.rhumb.aux_, 25.08.31)\n    test 181 Inverse.azi12: -92.3888879816996  FAILED, KNOWN (2.18457e-08), expected -92.38889\n    test 182 Inverse.lat1: 40.6\n    test 183 Inverse.lat2: 35.8\n    test 184 Inverse.lon1: -73.8\n    test 185 Inverse.lon2: 140.3\n    test 186 Inverse.s12: 1282.19384243156  FAILED, KNOWN (1.8964e-09), expected 1282.19384\n    test 187 Inverse.S12: 21234695071407.8  FAILED, KNOWN (0.00128112), expected 21207525604650.8\n\n    test 188 GDict.azi12: 77.7683897102557\n    test 189 GDict.lat1: 40.6\n    test 190 GDict.lat2: 51.6\n    test 191 GDict.lon1: -73.8\n    test 192 GDict.lon2: -0.5\n    test 193 GDict.s12: 5771083.38332803\n    test 194 GDict.S12: 37395209100030.4\n\n    test 195 Inverse.azi12: 103.582833003411  FAILED, KNOWN (3.18511e-09), expected 103.582833333333\n    test 196 Inverse.lat1: 40.6397222222222  FAILED, KNOWN (5.4681e-09), expected 40.639722\n    test 197 Inverse.lat2: 1.35916666666667  FAILED, KNOWN (2.45248e-07), expected 1.359167\n    test 198 Inverse.lon2: 103.989444444444  FAILED, KNOWN (4.27394e-09), expected 103.989444\n    test 199 Inverse.s12: 18523563.0423774  FAILED, KNOWN (2.28776e-09), expected 18523563\n\n    test 200 0,000 Km lat2: 40:38:23.0N\n    test 201 0,000 Km lon2: 073:46:44.0W\n    test 202 0,000 Km S12 : 0\n    test 203 1,000 Km lat2: 36:24:30.3N\n    test 204 1,000 Km lon2: 051:28:26.4W\n    test 205 1,000 Km S12 : 9817078307820  FAILED, KNOWN, expected 9817078307821\n    test 206 2,000 Km lat2: 32:10:26.8N\n    test 207 2,000 Km lon2: 030:20:57.3W\n    test 208 2,000 Km S12 : 18224745682004  FAILED, KNOWN, expected 18224745682005\n    test 209 3,000 Km lat2: 27:56:13.2N\n    test 210 3,000 Km lon2: 010:10:54.2W\n    test 211 3,000 Km S12 : 25358020327741\n    test 212 4,000 Km lat2: 23:41:50.1N\n    test 213 4,000 Km lon2: 009:12:45.5E\n    test 214 4,000 Km S12 : 31321269267101  FAILED, KNOWN, expected 31321269267102\n    test 215 5,000 Km lat2: 19:27:18.7N\n    test 216 5,000 Km lon2: 027:59:22.1E\n    test 217 5,000 Km S12 : 36195163180159\n    test 218 6,000 Km lat2: 15:12:40.2N\n    test 219 6,000 Km lon2: 046:17:01.1E\n    test 220 6,000 Km S12 : 40041499143669\n    test 221 7,000 Km lat2: 10:57:55.9N\n    test 222 7,000 Km lon2: 064:12:52.8E\n    test 223 7,000 Km S12 : 42906570007050\n    test 224 8,000 Km lat2: 06:43:07.3N\n    test 225 8,000 Km lon2: 081:53:28.8E\n    test 226 8,000 Km S12 : 44823504180199  FAILED, KNOWN, expected 44823504180200\n    test 227 9,000 Km lat2: 02:28:16.2N\n    test 228 9,000 Km lon2: 099:24:54.5E\n    test 229 9,000 Km S12 : 45813843358737\n    test 230 10,000 Km lat2: 01:46:36.0S\n    test 231 10,000 Km lon2: 116:52:59.7E\n    test 232 10,000 Km S12 : 45888525219677\n\n    test 233 Inverse: {a12: 49.663661, azi12: 77.692032, azi21: -102.307968, lat1: 40.6, lat2: 51.6, lon1: -73.8, lon2: -0.5, name: '_Prolate', s12: 5519269.307383}\n    test 234 Inverse8: (40.6, -73.8, 51.6, -0.5, 77.692032, 5519269.307383, 37469093881942.289062, 49.663661)\n    test 235 toInverse10Tuple: (49.663661, 5519269.307383, 0.977016, 0.213166, 0.977016, 0.213166, 5519269.307383, 1.0, 1.0, 37469093881942.289062)\n    test 236 InverseLine: -102.23161029\n\n    test 237 Inverse1: 51.9295425\n    test 238 Inverse3: (5771083.383328, 77.76839, 77.76839)\n\n    test 239 RhumbSolve.azi12: 77.7683897102557\n    test 240 RhumbSolve.lat1: 40.6\n    test 241 RhumbSolve.lat2: 51.6\n    test 242 RhumbSolve.lon1: -73.8\n    test 243 RhumbSolve.lon2: -0.5\n    test 244 RhumbSolve.s12: 5771083.38332803\n    test 245 RhumbSolve.S12: 37395209100030.4\n    test 246 iteration: None\n\n    test 247 f(-0.7)proLate.a12: 19.4691438255745  FAILED, KNOWN (0.273006), expected 26.7803214175776\n    test 248 f(-0.7)proLate.azi12: 72.245160090458  FAILED, KNOWN (0.00216383), expected 72.4018253121172\n    test 249 f(-0.7)proLate.lat1: 40.6\n    test 250 f(-0.7)proLate.lat2: 51.6\n    test 251 f(-0.7)proLate.lon1: -73.8\n    test 252 f(-0.7)proLate.lon2: -0.5\n    test 253 f(-0.7)proLate.s12: 4227905.47113213  FAILED, KNOWN (0.0330864), expected 4092499.29481447\n    test 254 f(-0.7)proLate.S12: 69930230457646.9  FAILED, KNOWN (0.000156019), expected 69941142612586.3\n\n    test 255 f(-0.6)proLate.a12: 21.6957794143251  FAILED, KNOWN (0.25395), expected 29.0808745598975\n    test 256 f(-0.6)proLate.azi12: 72.8447176862056  FAILED, KNOWN (0.000864542), expected 72.90774./test/testRhumb_aux_.py:267: DeprecationWarning: method L{distance2<pygeodesy.rhumb.aux_.RhumbLineAux.distance2>} has been DEPRECATED on 23.09.23, use method L{RhumbLineAux.Inverse} or L{RhumbLine.Inverse}.\n  t = r.distance2(p.lat2, p.lon2)\n94979405\n    test 257 f(-0.6)proLate.lat1: 40.6\n    test 258 f(-0.6)proLate.lat2: 51.6\n    test 259 f(-0.6)proLate.lon1: -73.8\n    test 260 f(-0.6)proLate.lon2: -0.5\n    test 261 f(-0.6)proLate.s12: 4398629.48315431  FAILED, KNOWN (0.0314121), expected 4264667.25827322\n    test 262 f(-0.6)proLate.S12: 65532336784621.8  FAILED, KNOWN (0.00049044), expected 65500212889173.7\n\n    test 263 f(-0.5)proLate.a12: 24.3873218521504  FAILED, KNOWN (0.229466), expected 31.6499102327978\n    test 264 f(-0.5)proLate.azi12: 73.45973097209  FAILED, KNOWN (0.000287211), expected 73.4808354630839\n    test 265 f(-0.5)proLate.lat1: 40.6\n    test 266 f(-0.5)proLate.lat2: 51.6\n    test 267 f(-0.5)proLate.lon1: -73.8\n    test 268 f(-0.5)proLate.lon2: -0.5\n    test 269 f(-0.5)proLate.s12: 4589390.62703027  FAILED, KNOWN (0.0317372), expected 4448216.73228058\n    test 270 f(-0.5)proLate.S12: 61028486473535.8  FAILED, KNOWN (0.000367922), expected 61006040985934.3\n\n    test 271 f(-0.4)proLate.a12: 27.648678517054  FAILED, KNOWN (0.199104), expected 34.5221772753245\n    test 272 f(-0.4)proLate.azi12: 74.1256528590435  FAILED, KNOWN (7.26714e-05), expected 74.1310400671426\n    test 273 f(-0.4)proLate.lat1: 40.6\n    test 274 f(-0.4)proLate.lat2: 51.6\n    test 275 f(-0.4)proLate.lon1: -73.8\n    test 276 f(-0.4)proLate.lon2: -0.5\n    test 277 f(-0.4)proLate.s12: 4795999.00733361  FAILED, KNOWN (0.0328035), expected 4643670.35024648\n    test 278 f(-0.4)proLate.S12: 56459162579463.4  FAILED, KNOWN (0.000117641), expected 56452521439924.1\n\n    test 279 f(-0.3)proLate.a12: 31.644951499171  FAILED, KNOWN (0.161403), expected 37.7355934079112\n    test 280 f(-0.3)proLate.azi12: 74.8684851385499  FAILED, KNOWN (1.18735e-05), expected 74.8693740965484\n    test 281 f(-0.3)proLate.lat1: 40.6\n    test 282 f(-0.3)proLate.lat2: 51.6\n    test 283 f(-0.3)proLate.lon1: -73.8\n    test 284 f(-0.3)proLate.lon2: -0.5\n    test 285 f(-0.3)proLate.s12: 5016163.41790208  FAILED, KNOWN (0.0339659), expected 4851381.97767909\n    test 286 f(-0.3)proLate.S12: 51834653769507.8  FAILED, KNOWN (1.38889e-05), expected 51833933851469.2\n\n    test 287 f(-0.2)proLate.a12: 36.6456555579816  FAILED, KNOWN (0.113347), expected 41.3303335380468\n    test 288 f(-0.2)proLate.azi12: 75.707541532189  FAILED, KNOWN (8.63785e-07), expected 75.7076069272899\n    test 289 f(-0.2)proLate.lat1: 40.6\n    test 290 f(-0.2)proLate.lat2: 51.6\n    test 291 f(-0.2)proLate.lon1: -73.8\n    test 292 f(-0.2)proLate.lon2: -0.5\n    test 293 f(-0.2)proLate.s12: 5250114.26186747  FAILED, KNOWN (0.0352354), expected 5071420.7909966\n    test 294 f(-0.2)proLate.S12: 47145799674098  FAILED, KNOWN (1.47731e-07), expected 47145792709215\n\n    test 295 f(-0.1)proLate.a12: 43.0921529976013  FAILED, KNOWN (0.0497211), expected 45.3468481547494\n    test 296 f(-0.1)proLate.azi12: 76.657619712308  FAILED, KNOWN (8.52686e-09), expected 76.6576203659566\n    test 297 f(-0.1)proLate.lat1: 40.6\n    test 298 f(-0.1)proLate.lat2: 51.6\n    test 299 f(-0.1)proLate.lon1: -73.8\n    test 300 f(-0.1)proLate.lon2: -0.5\n    test 301 f(-0.1)proLate.s12: 5498686.10901062  FAILED, KNOWN (0.0368243), expected 5303392.62882457\n    test 302 f(-0.1)proLate.S12: 42386228150766.8  FAILED, KNOWN (3.28252e-09), expected 42386228289900.3\n\n    test 303 f(0.0)sphere.a12: 51.7609673604566\n    test 304 f(0.0)sphere.azi12: 77.7302010637481\n    test 305 f(0.0)sphere.lat1: 40.6\n    test 306 f(0.0)sphere.lat2: 51.6\n    test 307 f(0.0)sphere.lon1: -73.8\n    test 308 f(0.0)sphere.lon2: -0.5\n    test 309 f(0.0)sphere.s12: 5762004.52953328\n    test 310 f(0.0)sphere.S12: 37558171832842.8  FAILED, KNOWN (1.04005e-15), expected 37558171832842.7\n\n    test 311 f(0.1)obLate.a12: 57.0691016382906  FAILED, KNOWN (4.0732e-08), expected 57.0691039628295\n    test 312 f(0.1)obLate.azi12: 78.9329887995079  FAILED, KNOWN (1.43563e-08), expected 78.93298766632\n    test 313 f(0.1)obLate.lat1: 40.6\n    test 314 f(0.1)obLate.lat2: 51.6\n    test 315 f(0.1)obLate.lon1: -73.8\n    test 316 f(0.1)obLate.lon2: -0.5\n    test 317 f(0.1)obLate.s12: 6039438.43345776  FAILED, KNOWN (4.0732e-08), expected 6039438.67945619\n    test 318 f(0.1)obLate.S12: 32672705345900.1  FAILED, KNOWN (2.74923e-10), expected 32672705354882.6\n\n    test 319 f(0.2)obLate.a12: 62.9812798810273  FAILED, KNOWN (2.12874e-06), expected 62.9814139522912\n    test 320 f(0.2)obLate.azi12: 80.2674399313414  FAILED, KNOWN (2.45267e-06), expected 80.2672430625978\n    test 321 f(0.2)obLate.lat1: 40.6\n    test 322 f(0.2)obLate.lat2: 51.6\n    test 323 f(0.2)obLate.lon1: -73.8\n    test 324 f(0.2)obLate.lon2: -0.5\n    test 325 f(0.2)obLate.s12: 6329429.80122212  FAILED, KNOWN (2.12874e-06), expected 6329443.27498218\n    test 326 f(0.2)obLate.S12: 27754099677104.7  FAILED, KNOWN (3.67056e-06), expected 27753997804515.6\n\n    test 327 f(0.3)obLate.a12: 69.5187833694955  FAILED, KNOWN (2.87423e-05), expected 69.5167852965365\n    test 328 f(0.3)obLate.azi12: 81.727845079412  FAILED, KNOWN (5.70433e-05), expected 81.723183320486\n    test 329 f(0.3)obLate.lat1: 40.6\n    test 330 f(0.3)obLate.lat2: 51.6\n    test 331 f(0.3)obLate.lon1: -73.8\n    test 332 f(0.3)obLate.lon2: -0.5\n    test 333 f(0.3)obLate.s12: 6629289.31235135  FAILED, KNOWN (2.87423e-05), expected 6629098.77674255\n    test 334 f(0.3)obLate.S12: 22849066200619.3  FAILED, KNOWN (0.000125134), expected 22846207364622.2\n\n    test 335 f(0.4)obLate.a12: 76.6668761893773  FAILED, KNOWN (0.000184585), expected 76.6527272755987\n    test 336 f(0.4)obLate.azi12: 83.3233422838214  FAILED, KNOWN (0.000593611), expected 83.2739099818904\n    test 337 f(0.4)obLate.lat1: 40.6\n    test 338 f(0.4)obLate.lat2: 51.6\n    test 339 f(0.4)obLate.lon1: -73.8\n    test 340 f(0.4)obLate.lon2: -0.5\n    test 341 f(0.4)obLate.s12: 6934718.96454384  FAILED, KNOWN (0.000184585), expected 6933439.15838002\n    test 342 f(0.4)obLate.S12: 18021142604226.8  FAILED, KNOWN (6.99801e-05), expected 18022403814356\n\n    test 343 f(0.5)obLate.a12: 84.1879143342343  FAILED, KNOWN (0.00125982), expected 84.2941094970901\n    test 344 f(0.5)obLate.azi12: 85.209638808327  FAILED, KNOWN (0.00401656), expected 84.8687585722893\n    test 345 f(0.5)obLate.lat1: 40.6\n    test 346 f(0.5)obLate.lat2: 51.6\n    test 347 f(0.5)obLate.lon1: -73.8\n    test 348 f(0.5)obLate.lon2: -0.5\n    test 349 f(0.5)obLate.s12: 7225456.98760837  FAILED, KNOWN (0.00125982), expected 7234571.22434383\n    test 350 f(0.5)obLate.S12: 13330376215278.6  FAILED, KNOWN (0.00479727), expected 13394633943853.9\n\n    test 351 f(0.6)obLate.a12: 91.2748602594912  FAILED, KNOWN (0.010337), expected 92.2282212329557\n    test 352 f(0.6)obLate.azi12: 88.2352064317911  FAILED, KNOWN (0.0209076), expected 86.428203134645\n    test 353 f(0.6)obLate.lat1: 40.6\n    test 354 f(0.6)obLate.lat2: 51.6\n    test 355 f(0.6)obLate.lon1: -73.8\n    test 356 f(0.6)obLate.lon2: -0.5\n    test 357 f(0.6)obLate.s12: 7442997.57411557  FAILED, KNOWN (0.010337), expected 7520739.28078682\n    test 358 f(0.6)obLate.S12: 9465183863577.65  FAILED, KNOWN (0.0376023), expected 9122169096644.63\n\n    test 359 f(0.7)obLate.a12: 96.2356480551612  FAILED, KNOWN (0.0382968), expected 100.067930534571\n    test 360 f(0.7)obLate.azi12: 95.8849205715045  FAILED, KNOWN (0.0915361), expected 87.8440216245934\n    test 361 f(0.7)obLate.lat1: 40.6\n    test 362 f(0.7)obLate.lat2: 51.6\n    test 363 f(0.7)obLate.lon1: -73.8\n    test 364 f(0.7)obLate.lon2: -0.5\n    test 365 f(0.7)obLate.s12: 7478027.19892371  FAILED, KNOWN (0.0382968), expected 7775816.14921536\n    test 366 f(0.7)obLate.S12: 6562901235483.6  FAILED, KNOWN (0.212668), expected 5411952373368.14\n\n    test 367 f(0.8)obLate.a12: 102.64879564776  FAILED, KNOWN (0.0423786), expected 107.191415254441\n    test 368 f(0.8)obLate.azi12: 119.3880292385  FAILED, KNOWN (0.341604), expected 88.9890486193666\n    test 369 f(0.8)obLate.lat1: 40.6\n    test 370 f(0.8)obLate.lat2: 51.6\n    test 371 f(0.8)obLate.lon1: -73.8\n    test 372 f(0.8)obLate.lon2: -0.5\n    test 373 f(0.8)obLate.s12: 7641914.41853579  FAILED, KNOWN (0.0423786), expected 7980099.68462833\n    test 374 f(0.8)obLate.S12: 4756594610716.28  FAILED, KNOWN (0.897727), expected 2506469143363.47\n\n    test 375 f(0.9)obLate.a12: 63.2182522839011  FAILED, KNOWN (0.43897), expected 112.682385936063\n    test 376 f(0.9)obLate.azi12: 58.1823785248744  FAILED, KNOWN (0.351646), expected 89.7386359477264\n    test 377 f(0.9)obLate.lat1: 40.6\n    test 378 f(0.9)obLate.lat2: 51.6\n    test 379 f(0.9)obLate.lon1: -73.8\n    test 380 f(0.9)obLate.lon2: -0.5\n    test 381 f(0.9)obLate.s12: 4551816.73344679  FAILED, KNOWN (0.43897), expected 8113314.60991836\n    test 382 f(0.9)obLate.S12: -15708333250087.5  FAILED, KNOWN (25.1264), expected 651083632161.435\n\n    test 383 R.exact: True\n    test 384 R.exact: False\n    test 385 R: RhumbAux(RAorder=None, TMorder=6, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), exact=False)\n\n    test 386 R.exact: True\n    test 387 R.Line.exact: True\n    test 388 R.Line: RhumbLineAux(TMorder=6, azi12=3.0, exact=True, lat1=1.0, lon1=2.0, rhumb=RhumbAux(RAorder=None, TMorder=6, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), exact=True), xTM=ExactTransverseMercator(datum='WGS84', extendp=False, k0=0.9996, lon0=0.0))\n\n    test 389 PlumbTo(exact=False, est=1000000.0): PlumbTo(a02=17.967658, a12=27.74256, at=90.0, azi0=113.73626, azi12=45.0, lat0=60, lat1=30.0, lat2=49.634582, lon0=0, lon1=0.0, lon2=25.767876, name='PlumbTo', s02=1997960.116871, s12=3083112.636236)\n    test 390 a02: 17.967658\n    test 391 s02: 1997960.116871\n    test 392 s12: 3083112.636236\n    test 393 azi0: 113.736\n    test 394 azi2: 135.000\n    test 395 iteration: 7\n\n    test 396 PlumbTo(exact=False, est=None): PlumbTo(a02=17.967658, a12=27.74256, at=90.0, azi0=113.73626, azi12=45.0, lat0=60, lat1=30.0, lat2=49.634582, lon0=0, lon1=0.0, lon2=25.767876, name='PlumbTo', s02=1997960.116871, s12=3083112.636236)\n    test 397 a02: 17.967658\n    test 398 s02: 1997960.116871\n    test 399 s12: 3083112.636236\n    test 400 azi0: 113.736\n    test 401 azi2: 135.000\n    test 402 iteration: 5\n\n    test 403 Intersecant2: (Intersecant2(a03=17.798332, a12=44.076956, azi03=135.0, azi12=45.0, lat0=30.0, lat1=30.0, lat2=61.164348, lat3=45.0, lon0=0.0, lon1=0.0, lon2=46.209348, lon3=15.830286, name='Intersecant2', s03=1977981.142985, s12=4898402.305119), Intersecant2(a03=17.798332, a12=-5.034244, azi03=135.0, azi12=45.0, lat0=30.0, lat1=30.0, lat2=26.4303, lat3=45.0, lon0=0.0, lon1=0.0, lon2=-4.030999, lon3=15.830286, name='Intersecant2', s03=1977981.142985, s12=-559470.390057))\n    test 404 azi0*=-90.000: exact=False, iteration=5, max=0.0, mean=0.0, min=-0.0, stdev=0.0\n\n    test 405 PlumbTo(exact=True, est=1000000.0): PlumbTo(a02=17.967658, a12=27.74256, at=90.0, azi0=113.73626, azi12=45.0, lat0=60, lat1=30.0, lat2=49.634582, lon0=0, lon1=0.0, lon2=25.767876, name='PlumbTo', s02=1997960.116871, s12=3083112.636236)\n    test 406 a02: 17.967658\n    test 407 s02: 1997960.116871\n    test 408 s12: 3083112.636236\n    test 409 azi0: 113.736\n    test 410 azi2: 135.000\n    test 411 iteration: 7\n\n    test 412 PlumbTo(exact=True, est=None): PlumbTo(a02=17.967658, a12=27.74256, at=90.0, azi0=113.73626, azi12=45.0, lat0=60, lat1=30.0, lat2=49.634582, lon0=0, lon1=0.0, lon2=25.767876, name='PlumbTo', s02=1997960.116871, s12=3083112.636236)\n    test 413 a02: 17.967658\n    test 414 s02: 1997960.116871\n    test 415 s12: 3083112.636236\n    test 416 azi0: 113.736\n    test 417 azi2: 135.000\n    test 418 iteration: 5\n\n    test 419 Intersecant2: (Intersecant2(a03=17.798332, a12=44.076956, azi03=135.0, azi12=45.0, lat0=30.0, lat1=30.0, lat2=61.164348, lat3=45.0, lon0=0.0, lon1=0.0, lon2=46.209348, lon3=15.830286, name='Intersecant2', s03=1977981.142985, s12=4898402.305119), Intersecant2(a03=17.798332, a12=-5.034244, azi03=135.0, azi12=45.0, lat0=30.0, lat1=30.0, lat2=26.4303, lat3=45.0, lon0=0.0, lon1=0.0, lon2=-4.030999, lon3=15.830286, name='Intersecant2', s03=1977981.142985, s12=-559470.390057))\n    test 420 azi0*=-90.000: exact=True, iteration=5, max=0.0, mean=0.0, min=-0.0, stdev=0.0\n\n    test 421 PlumbTo(exact=None, est=None): Intersection(a02=17.798332, a12=19.521356, at=90.0, azi02=135.0, azi12=45.0, lat0=60.0, lat1=30.0, lat2=45.0, lon0=0.0, lon1=0.0, lon2=15.830286, name='Intersection', s02=1977981.142985, s12=2169465.957531)\n    test 422 a02: 17.798332\n    test 423 s02: 1977981.142985\n    test 424 s12: 2169465.957531\n    test 425 azi02: 135.000\n    test 426 iteration: 9\n\n    test 427 Intersecant2: (Intersecant2(a03=17.798332, a12=44.076956, azi03=135.0, azi12=45.0, lat0=30.0, lat1=30.0, lat2=61.164348, lat3=45.0, lon0=0.0, lon1=0.0, lon2=46.209348, lon3=15.830286, name='Intersecant2', s03=1977981.142985, s12=4898402.305119), Intersecant2(a03=17.798332, a12=-5.034244, azi03=135.0, azi12=45.0, lat0=30.0, lat1=30.0, lat2=26.4303, lat3=45.0, lon0=0.0, lon1=0.0, lon2=-4.030999, lon3=15.830286, name='Intersecant2', s03=1977981.142985, s12=-559470.390057))\n    test 428 azi0*=90.000: exact=None, iteration=20, max=0.507468, mean=-2.015217, min=-6.079451, stdev=2.057451\n\n    test 429 xTM: ExactTransverseMercator(datum='WGS84', extendp=False, k0=0.9996, lon0=0.0)\n\n    test 430 Intersection: Intersection(a02=42.220588, a12=16.98358, at=-85.0, azi02=-50.0, azi12=35.0, lat0=0.0, lat1=10.0, lat2=23.944114, lon0=-10.0, lon1=-56.0, lon2=-45.833131, name='Intersection', s02=4694721.624938, s12=1888490.587742)  FAILED, KNOWN, expected (26.9774, -43.4088)\n    test 431 PlumbTo: Intersection(a02=0.0, a12=16.98358, at=90.0, azi02=125.0, azi12=35.0, lat0=23.944114, lat1=10.0, lat2=23.944114, lon0=-45.833131, lon1=-56.0, lon2=-45.833131, name='Intersection', s02=0.000044, s12=1888490.587743)\n    test 432 PlumbTo: Intersection(a02=0.0, a12=42.220588, at=90.0, azi02=40.0, azi12=-50.0, lat0=23.944114, lat1=0.0, lat2=23.944114, lon0=-45.833131, lon1=-10.0, lon2=-45.833131, name='Intersection', s02=0.00026, s12=4694721.624901)\n    test 433 xTM: KTransverseMercator(ellipsoid=Ellipsoid(name='Sphere', a=6371008.771415, f=0, f_=0, b=6371008.771415), k0=0.9996, TMorder=6)\n\n    test 434 Intersection: Intersection(a02=31.539478, a12=26.853309, at=-135.0, azi02=-45.0, azi12=90.0, lat0=15.0, lat1=37.0, lat2=37.0, lon0=-17.0, lon1=-76.0, lon2=-42.376015, name='Intersection', s02=3507034.715572, s12=2985955.796006)  FAILED, KNOWN, expected (37.0, -41.7028)\n    test 435 PlumbTo: Intersection(a02=0.0, a12=26.853309, at=90.0, azi02=180.0, azi12=90.0, lat0=37.0, lat1=37.0, lat2=37.0, lon0=-42.376015, lon1=-76.0, lon2=-42.376015, name='Intersection', s02=0.000162, s12=2985955.795978)\n    test 436 PlumbTo: Intersection(a02=0.0, a12=31.539478, at=90.0, azi02=45.0, azi12=-45.0, lat0=37.0, lat1=15.0, lat2=37.0, lon0=-42.376015, lon1=-17.0, lon2=-42.376015, name='Intersection', s02=0.000092, s12=3507034.71557)\n    test 437 xTM: KTransverseMercator(ellipsoid=Ellipsoid(name='Sphere', a=6371008.771415, f=0, f_=0, b=6371008.771415), k0=0.9996, TMorder=6)\n\n    test 438 toStr: invokation=1, rhumb=RhumbSolve(ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), invokation=0, RhumbSolve='/opt/local/bin/RhumbSolve', status=None), status=0\n    test 439 lat1: 1\n    test 440 lon1: 2\n    test 441 a: 6378137.0\n    test 442 f: 0.00335281066475\n    test 443 Position: {azi12: 3, lat1: 1, lat2: 10.030279, lon1: 2, lon2: 2.472809, S12: 32084050047.178001, s12: 1000000.0}\n    test 444 prec: 9\n    test 445 reverse2: True\n    test 446 unroll: True\n    test 447 verbose: True\n\n    test 448 toStr: invokation=1, rhumb=RhumbSolve(ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), invokation=0, RhumbSolve='/opt/local/bin/RhumbSolve', status=None), status=0\n    test 449 lat1: 1\n    test 450 lon1: 2\n    test 451 a: 6378137.0\n    test 452 f: 0.00335281066475\n    test 453 Position: {azi12: 3, lat1: 1, lat2: 10.030279, lon1: 2, lon2: 2.472809, S12: 32084050047.178001, s12: 1000000.0}\n    test 454 prec: 9\n    test 455 reverse2: True\n    test 456 unroll: True\n    test 457 verbose: True\n\n    324 of 457 testRhumb_aux_.py tests (70.9%) FAILED, incl. 141 KNOWN plus 183 DeprecationWarnings (pygeodesy 26.3.26 Python 2.7.18 64bit arm64_x86_64 geographiclib 1.50 numpy 1.16.6 scipy 1.2.2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 -W  default) 57.522 sec\nrunning /Library/Framewo....ython -W default ~/PyGeodesy/test/testRhumb_ekx.py\n./test/testRhumb_ekx.py:37: DeprecationWarning: property_RO L{rhumbx<pygeodesy.ellipsoids.Ellipsoid.rhumbx>} has been DEPRECATED on 2023.11.28, use property C{rhumbekx}.\n  R = E.rhumbx\n./test/testRhumb_ekx.py:129: DeprecationWarning: property_RO L{rhumbx<pygeodesy.ellipsoids.Ellipsoid.rhumbx>} has been DEPRECATED on 2023.11.28, use property C{rhumbekx}.\n  R = E.rhumbx\n./test/testRhumb_ekx.py:184: DeprecationWarning: property_RO L{rhumbx<pygeodesy.ellipsoids.Ellipsoid.rhumbx>} has been DEPRECATED on 2023.11.28, use property C{rhumbekx}.\n  P = Ellipsoid(E.b, E.a, name='_Prolate').rhumbx  # '_...' for iOS\n\n    testing testRhumb_ekx.py 23.11.30 (module pygeodesy.rhumb.ekx 25.08.31)\n\n    testDirectX vs ...(pygeodesy.rhumb.ekx, 25.08.31)\n    test 1 Direct.azi12: -92.38889\n    test 2 Direct.lat1: 40.6\n    test 3 Direct.lat2: 35.799995945206  FAILED, KNOWN, expected 35.79999\n    test 4 Direct.lon1: -73.8\n    test 5 Direct.lon2: 140.300004102052  FAILED, KNOWN, expected 140.23651\n    test 6 Direct.s12: 12782581.068\n\n    test 7 GDict.azi12: 51\n    test 8 GDict.lat1: 40.6\n    test 9 GDict.lat2: 71.688899882813\n    test 10 GDict.lon1: -73.8\n    test 11 GDict.lon2: 0.255519824423416  FAILED, KNOWN, expected 0.255519824423359\n    test 12 GDict.S12: 44095641862956.1\n    test 13 GDict.s12: 5500000\n\n    test 14 RhumbLine: TMorder=6, azi12=51.0, exact=True, lat1=40.6, lon1=-73.8, rhumb=Rhumb(RAorder=6, TMorder=6, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), exact=True), xTM=ExactTransverseMercator(datum='WGS84', extendp=False, k0=0.9996, lon0=0.0)\n    test 15 Rhumb: Rhumb(RAorder=6, TMorder=6, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), exact=True)\n    test 16 isLoxodrome: True\n\n    test 17 ArcPosition.a12: 51\n    test 18 ArcPosition.azi12: 51\n    test 19 ArcPosition.lat1: 40.6\n    test 20 ArcPosition.lat2: 72.6351275818438  FAILED, KNOWN, expected 72.635128\n    test 21 ArcPosition.lon1: -73.8\n    test 22 ArcPosition.lon2: 4.06852757947452  FAILED, KNOWN, expected 4.068528\n    test 23 ArcPosition.S12: 46665957571716.4\n    test 24 ArcPosition.s12: 5667780.57994388  FAILED, KNOWN, expected 5667780.579944\n\n    test 25 Position.a12: 51\n    test 26 Position.azi12: 51\n    test 27 Position.lat1: 40.6\n    test 28 Position.lat2: 72.6351275818438  FAILED, KNOWN, expected 72.635128\n    test 29 Position.lon1: -73.8\n    test 30 Position.lon2: 4.06852757947452  FAILED, KNOWN, expected 4.068528\n    test 31 Position.S12: 46665957571716.4\n    test 32 Position.s12: 5667780.57994388\n\n    test 33 Direct.a12: 115.020619671634  FAILED, KNOWN, expected 115.02062\n    test 34 Direct.azi12: -92.38889\n    test 35 Direct.lat1: 40.6\n    test 36 Direct.lat2: 35.799995945206  FAILED, KNOWN, expected 35.8\n    test 37 Direct.lon1: -73.8\n    test 38 Direct.lon2: 140.300004102052  FAILED, KNOWN, expected 140.3\n    test 39 Direct.s12: 12782581.068\n\n    test 40 ArcDirect.a12: 115.020619671634\n    test 41 ArcDirect.azi12: -92.38889\n    test 42 ArcDirect.lat1: 40.6\n    test 43 ArcDirect.lat2: 35.799995945206  FAILED, KNOWN, expected 35.8\n    test 44 ArcDirect.lon1: -73.8\n    test 45 ArcDirect.lon2: 140.300004102052  FAILED, KNOWN, expected 140.3\n    test 46 ArcDirect.s12: 12782581.068\n\n    test 47 Direct8: (40.6, -73.8, 35.799996, 140.300004, -92.38889, 12782581.068, -63760638302268.796875, 115.02062)\n    test 48 toDirect9Tuple: (115.02062, 35.799996, 140.300004, -92.38889, 12782581.068, 12782581.068, 1.0, 1.0, -63760638302268.796875)\n    test 49 DirectLine: (40.6, -73.8, 35.799996, 140.300004, -92.38889, 12782581.068, -63760638302268.796875, 115.02062)\n\n    test 50 RhumbLine: TMorder=6, azi12=51.0, exact=True, lat1=40.6, lon1=-73.8, rhumb=Rhumb(RAorder=6, TMorder=6, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), exact=True), xTM=ExactTransverseMercator(datum='WGS84', extendp=False, k0=0.9996, lon0=0.0)\n    test 51 DirectLine: TMorder=6, azi12=-51.0, exact=True, lat1=35.8, lon1=140.3, rhumb=Rhumb(RAorder=6, TMorder=6, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), exact=True), xTM=ExactTransverseMercator(datum='WGS84', extendp=False, k0=0.9996, lon0=0.0)\n    test 52 Direct3: (71.6889, 0.25552, 231.0)\n    test 53 Direct3: (71.6889, 0.25552, 51.0)\n\n    test 54 RhumbSolve.azi12: 51\n    test 55 RhumbSolve.lat1: 40.6\n    test 56 RhumbSolve.lat2: 71.688899882813\n    test 57 RhumbSolve.lon1: -73.8\n    test 58 RhumbSolve.lon2: 0.255519824423359  FAILED, KNOWN, expected 0.255519824423445\n    test 59 RhumbSolve.s12: 5500000\n    test 60 RhumbSolve.S12: 44095641862956.1\n    test 61 iteration: None\n\n    test 62 f(-0.7)proLate.azi12: 51\n    test 63 f(-0.7)proLate.lat1: 40.6\n    test 64 f(-0.7)proLate.lat2: 58.7982808854283  FAILED, KNOWN, expected 78.696096602308\n    test 65 f(-0.7)proLate.lon1: -73.8\n    test 66 f(-0.7)proLate.lon2: 12.2959716649128  FAILED, KNOWN, expected 54.2545319022978\n    test 67 f(-0.7)proLate.S12: 85955048077081.7  FAILED, KNOWN, expected 129945920715013\n    test 68 f(-0.7)proLate.s12: 5500000\n\n    test 69 f(-0.6)proLate.azi12: 51\n    test 70 f(-0.6)proLate.lat1: 40.6\n    test 71 f(-0.6)proLate.lat2: 59.6758767683446  FAILED, KNOWN, expected 77.0758208198502\n    test 72 f(-0.6)proLate.lon1: -73.8\n    test 73 f(-0.6)proLate.lon2: 9.48880576416991  FAILED, KNOWN, expected 42.9652115291808\n    test 74 f(-0.6)proLate.S12: 78359763655379.8  FAILED, KNOWN, expected 111681786580088\n    test 75 f(-0.6)proLate.s12: 5500000\n\n    test 76 f(-0.5)proLate.azi12: 51\n    test 77 f(-0.5)proLate.lat1: 40.6\n    test 78 f(-0.5)proLate.lat2: 60.7320576076725  FAILED, KNOWN, expected 75.6363131401036\n    test 79 f(-0.5)proLate.lon1: -73.8\n    test 80 f(-0.5)proLate.lon2: 6.8551359325909  FAILED, KNOWN, expected 33.3148081627488\n    test 81 f(-0.5)proLate.S12: 71227659550846.7  FAILED, KNOWN, expected 96135478582826.5\n    test 82 f(-0.5)proLate.s12: 5500000\n\n    test 83 f(-0.4)proLate.azi12: 51\n    test 84 f(-0.4)proLate.lat1: 40.6\n    test 85 f(-0.4)proLate.lat2: 62.0190418933995  FAILED, KNOWN, expected 74.3894315611718\n    test 86 f(-0.4)proLate.lon1: -73.8\n    test 87 f(-0.4)proLate.lon2: 4.44846787150585  FAILED, KNOWN, expected 24.9411017728723\n    test 88 f(-0.4)proLate.S12: 64573794048270.9  FAILED, KNOWN, expected 82752093205157.9\n    test 89 f(-0.4)proLate.s12: 5500000\n\n    test 90 f(-0.3)proLate.azi12: 51\n    test 91 f(-0.3)proLate.lat1: 40.6\n    test 92 f(-0.3)proLate.lat2: 63.6106723951872  FAILED, KNOWN, expected 73.3498869306659\n    test 93 f(-0.3)proLate.lon1: -73.8\n    test 94 f(-0.3)proLate.lon2: 2.35374337182193  FAILED, KNOWN, expected 17.6122521235805\n    test 95 f(-0.3)proLate.S12: 58433524691072.3  FAILED, KNOWN, expected 71144036920514.8\n    test 96 f(-0.3)proLate.s12: 5500000\n\n    test 97 f(-0.2)proLate.azi12: 51\n    test 98 f(-0.2)proLate.lat1: 40.6\n    test 99 f(-0.2)proLate.lat2: 65.6160222842253  FAILED, KNOWN, expected 72.5367661501826\n    test 100 f(-0.2)proLate.lon1: -73.8\n    test 101 f(-0.2)proLate.lon2: 0.718817308756968  FAILED, KNOWN, expected 11.158986522496\n    test 102 f(-0.2)proLate.S12: 52877638949075.4  FAILED, KNOWN, expected 61013644644445.4\n    test 103 f(-0.2)proLate.s12: 5500000\n\n    test 104 f(-0.1)proLate.azi12: 51\n    test 105 f(-0.1)proLate.lat1: 40.6\n    test 106 f(-0.1)proLate.lat2: 68.2076549239682  FAILED, KNOWN, expected 71.9743859872954\n    test 107 f(-0.1)proLate.lon1: -73.8\n    test 108 f(-0.1)proLate.lon2: -0.163380731512021  FAILED, KNOWN, expected 5.45567570418933\n    test 109 f(-0.1)proLate.S12: 48054974256549.6  FAILED, KNOWN, expected 52135051380432.5\n    test 110 f(-0.1)proLate.s12: 5500000\n\n    test 111 f(0.0)sphere.azi12: 51\n    test 112 f(0.0)sphere.lat1: 40.6\n    test 113 f(0.0)sphere.lat2: 71.6930469238479\n    test 114 f(0.0)sphere.lon1: -73.8\n    test 115 f(0.0)sphere.lon2: 0.413867159480944  FAILED, KNOWN, expected 0.413867159480986\n    test 116 f(0.0)sphere.S12: 43262138303107.9  FAILED, KNOWN, expected 44339815922640.7\n    test 117 f(0.0)sphere.s12: 5500000\n\n    test 118 f(0.1)obLate.azi12: 51\n    test 119 f(0.1)obLate.lat1: 40.6\n    test 120 f(0.1)obLate.lat2: 71.729987765115  FAILED, KNOWN, expected 71.7299876395427\n    test 121 f(0.1)obLate.lon1: -73.8\n    test 122 f(0.1)obLate.lon2: -4.025726260735  FAILED, KNOWN, expected -4.0257265806798\n    test 123 f(0.1)obLate.S12: 37501325852980.9  FAILED, KNOWN, expected 37501325744776.3\n    test 124 f(0.1)obLate.s12: 5500000\n\n    test 125 f(0.2)obLate.azi12: 51\n    test 126 f(0.2)obLate.lat1: 40.6\n    test 127 f(0.2)obLate.lat2: 72.1296406403857  FAILED, KNOWN, expected 72.129551777134\n    test 128 f(0.2)obLate.lon1: -73.8\n    test 129 f(0.2)obLate.lon2: -7.89959865727289  FAILED, KNOWN, expected -7.89970407960843\n    test 130 f(0.2)obLate.S12: 31524344809128.8  FAILED, KNOWN, expected 31524299015475.5\n    test 131 f(0.2)obLate.s12: 5500000\n\n    test 132 f(0.3)obLate.azi12: 51\n    test 133 f(0.3)obLate.lat1: 40.6\n    test 134 f(0.3)obLate.lat2: 72.9417108424475  FAILED, KNOWN, expected 72.9379874834441\n    test 135 f(0.3)obLate.lon1: -73.8\n    test 136 f(0.3)obLate.lon2: -11.2251277212334  FAILED, KNOWN, expected -11.2282736868989\n    test 137 f(0.3)obLate.S12: 26338142645683.4  FAILED, KNOWN, expected 26336046555855\n    test 138 f(0.3)obLate.s12: 5500000\n\n    test 139 f(0.4)obLate.azi12: 51\n    test 140 f(0.4)obLate.lat1: 40.6\n    test 141 f(0.4)obLate.lat2: 74.2150181648285  FAILED, KNOWN, expected 74.1653559732625\n    test 142 f(0.4)obLate.lon1: -73.8\n    test 143 f(0.4)obLate.lon2: -14.0025161670195  FAILED, KNOWN, expected -14.0339071426255\n    test 144 f(0.4)obLate.S12: 21889987441293.2  FAILED, KNOWN, expected 21854328668749.7\n    test 145 f(0.4)obLate.s12: 5500000\n\n    test 146 f(0.5)obLate.azi12: 51\n    test 147 f(0.5)obLate.lat1: 40.6\n    test 148 f(0.5)obLate.lat2: 75.9843423530564  FAILED, KNOWN, expected 75.6545456515098\n    test 149 f(0.5)obLate.lon1: -73.8\n    test 150 f(0.5)obLate.lon2: -16.2158875285255  FAILED, KNOWN, expected -16.3749056931627\n    test 151 f(0.5)obLate.S12: 18138546882520.4  FAILED, KNOWN, expected 17852162633650.3\n    test 152 f(0.5)obLate.s12: 5500000\n\n    test 153 f(0.6)obLate.azi12: 51\n    test 154 f(0.6)obLate.lat1: 40.6\n    test 155 f(0.6)obLate.lat2: 78.2485809971865  FAILED, KNOWN, expected 76.9646871723422\n    test 156 f(0.6)obLate.lon1: -73.8\n    test 157 f(0.6)obLate.lon2: -17.8350956076784  FAILED, KNOWN, expected -18.3430698506249\n    test 158 f(0.6)obLate.S12: 15058514719182.2  FAILED, KNOWN, expected 14834219095347.8\n    test 159 f(0.6)obLate.s12: 5500000\n\n    test 160 f(0.7)obLate.azi12: 51\n    test 161 f(0.7)obLate.lat1: 40.6\n    test 162 f(0.7)obLate.lat2: 80.9441758588144  FAILED, KNOWN, expected 78.0157145651534\n    test 163 f(0.7)obLate.lon1: -73.8\n    test 164 f(0.7)obLate.lon2: -18.8222432743227  FAILED, KNOWN, expected -21.2614142472982\n    test 165 f(0.7)obLate.S12: 12662980433240.4  FAILED, KNOWN, expected 8715315180697.08\n    test 166 f(0.7)obLate.s12: 5500000\n\n    test 167 f(0.8)obLate.azi12: 51\n    test 168 f(0.8)obLate.lat1: 40.6\n    test 169 f(0.8)obLate.lat2: 83.929256887239  FAILED, KNOWN, expected 81.9589810957133\n    test 170 f(0.8)obLate.lon1: -73.8\n    test 171 f(0.8)obLate.lon2: -19.1538144966024  FAILED, KNOWN, expected 77.1693745258283\n    test 172 f(0.8)obLate.S12: 11016227806772.5  FAILED, KNOWN, expected 25559099120347.3\n    test 173 f(0.8)obLate.s12: 5500000\n\n    test 174 f(0.9)obLate.azi12: 51\n    test 175 f(0.9)obLate.lat1: 40.6\n    test 176 f(0.9)obLate.lat2: 87.0045804494549  FAILED, KNOWN, expected 98.9052225246142\n    test 177 f(0.9)obLate.lon1: -73.8\n    test 178 f(0.9)obLate.lon2: -18.8902657154815  FAILED, KNOWN, expected -15.3416430304294\n    test 179 f(0.9)obLate.S12: 10140058806389.6  FAILED, KNOWN, expected -10962672407243.4\n    test 180 f(0.9)obLate.s12: 5500000\n\n    testInverseX vs ...(pygeodesy.rhumb.ekx, 25.08.31)\n    test 181 Inverse.azi12: -92.3888879816997  FAILED, KNOWN, expected -92.38889\n    test 182 Inverse.lat1: 40.6\n    test 183 Inverse.lat2: 35.8\n    test 184 Inverse.lon1: -73.8\n    test 185 Inverse.lon2: 140.3\n    test 186 Inverse.s12: 12782581.0676842\n    test 187 Inverse.S12: -63760642939072.5  FAILED, KNOWN, expected -63760642939073\n\n    test 188 GDict.azi12: 77.7683897102557\n    test 189 GDict.lat1: 40.6\n    test 190 GDict.lat2: 51.6\n    test 191 GDict.lon1: -73.8\n    test 192 GDict.lon2: -0.5\n    test 193 GDict.s12: 5771083.38332803\n    test 194 GDict.S12: 37395209100030.4\n\n    test 195 Inverse.azi12: 103.582833003411  FAILED, KNOWN, expected 103.582833333333\n    test 196 Inverse.lat1: 40.6397222222222  FAILED, KNOWN, expected 40.639722\n    test 197 Inverse.lat2: 1.35916666666667  FAILED, KNOWN, expected 1.359167\n    test 198 Inverse.lon2: 103.989444444444  FAILED, KNOWN, expected 103.989444\n    test 199 Inverse.s12: 18523563.0423774  FAILED, KNOWN, expected 18523563\n\n    test 200 0,000 Km lat2: 40:38:23.0N\n    test 201 0,000 Km lon2: 073:46:44.0W\n    test 202 0,000 Km S12 : 0\n    test 203 1,000 Km lat2: 36:24:30.3N\n    test 204 1,000 Km lon2: 051:28:26.4W\n    test 205 1,000 Km S12 : 9817078307820  FAILED, KNOWN, expected 9817078307821\n    test 206 2,000 Km lat2: 32:10:26.8N\n    test 207 2,000 Km lon2: 030:20:57.3W\n    test 208 2,000 Km S12 : 18224745682004  FAILED, KNOWN, expected 18224745682005\n    test 209 3,000 Km lat2: 27:56:13.2N\n    test 210 3,000 Km lon2: 010:10:54.2W\n    test 211 3,000 Km S12 : 25358020327741\n    test 212 4,000 Km lat2: 23:41:50.1N\n    test 213 4,000 Km lon2: 009:12:45.5E\n    test 214 4,000 Km S12 : 31321269267101  FAILED, KNOWN, expected 31321269267102\n    test 215 5,000 Km lat2: 19:27:18.7N\n    test 216 5,000 Km lon2: 027:59:22.1E\n    test 217 5,000 Km S12 : 36195163180159\n    test 218 6,000 Km lat2: 15:12:40.2N\n    test 219 6,000 Km lon2: 046:17:01.1E\n    test 220 6,000 Km S12 : 40041499143669\n    test 221 7,000 Km lat2: 10:57:55.9N\n    test 222 7,000 Km lon2: 064:12:52.8E\n    test 223 7,000 Km S12 : 42906570007050\n    test 224 8,000 Km lat2: 06:43:07.3N\n    test 225 8,000 Km lon2: 081:53:28.8E\n    test 226 8,000 Km S12 : 44823504180199  FAILED, KNOWN, expected 44823504180200\n    test 227 9,000 Km lat2: 02:28:16.2N\n    test 228 9,000 Km lon2: 099:24:54.5E\n    test 229 9,000 Km S12 : 45813843358737\n    test 230 10,000 Km lat2: 01:46:36.0S\n    test 231 10,000 Km lon2: 116:52:59.7E\n    test 232 10,000 Km S12 : 45888525219677\n\n    test 233 Inverse: {a12: 51.420061, azi12: 77.692032, azi21: -102.307968, lat1: 40.6, lat2: 51.6, lon1: -73.8, lon2: -0.5, name: '_Prolate', s12: 5733622.743165}\n    test 234 Inverse8: (40.6, -73.8, 51.6, -0.5, 77.692032, 5733622.743165, 37469093881942.273438, 51.420061)\n    test 235 toInverse10Tuple: (51.420061, 5733622.743165, 0.977016, 0.213166, 0.977016, 0.213166, 5733622.743165, 1.0, 1.0, 37469093881942.273438)\n    test 236 InverseLine: -102.23161029\n\n    test 237 Inverse1: 51.9295425\n    test 238 Inverse3: (5771083.383328, 77.76839, 77.76839)\n\n    test 239 RhumbSolve.azi12: 77.7683897102557\n    test 240 RhumbSolve.lat1: 40.6\n    test 241 RhumbSolve.lat2: 51.6\n    test 242 RhumbSolve.lon1: -73.8\n    test 243 RhumbSolve.lon2: -0.5\n    test 244 RhumbSolve.s12: 5771083.38332803\n    test 245 RhumbSolve.S12: 37395209100030.4\n    test 246 iteration: None\n\n    test 247 f(-0.7)proLate.a12: 19.4691438255745  FAILED, KNOWN, expected 19.4316661725214\n    test 248 f(-0.7)proLate.azi12: 72.245160090458  FAILED, KNOWN, expected 72.4018253121172\n    test 249 f(-0.7)proLate.lat1: 40.6\n    test 250 f(-0.7)proLate.lat2: 51.6\n    test 251 f(-0.7)proLate.lon1: -73.8\n    test 252 f(-0.7)proLate.lon2: -0.5\n    test 253 f(-0.7)proLate.s12: 4227905.47113213  FAILED, KNOWN, expected 4219766.85056372\n    test 254 f(-0.7)proLate.S12: 69930230457646.9  FAILED, KNOWN, expected 69908513962657.7\n\n    test 255 f(-0.6)proLate.a12: 21.6957794143251  FAILED, KNOWN, expected 21.7001783174047\n    test 256 f(-0.6)proLate.azi12: 72.8447176862056  FAILED, KNOWN, expected 72.9077494979405\n    test 257 f(-0.6)proLate.lat1: 40.6\n    test 258 f(-0.6)proLate.lat2: 51.6\n    test 259 f(-0.6)proLate.lon1: -73.8\n    test 260 f(-0.6)proLate.lon2: -0.5\n    test 261 f(-0.6)proLate.s12: 4398629.48315431  FAILED, KNOWN, expected 4399521.32227242\n    test 262 f(-0.6)proLate.S12: 65532336784621.8  FAILED, KNOWN, expected 65479293553218.2\n\n    test 263 f(-0.5)proLate.a12: 24.3873218521504  FAILED, KNOWN, expected 24.3995870573009\n    test 264 f(-0.5)proLate.azi12: 73.45973097209  FAILED, KNOWN, expected 73.4808354630839\n    test 265 f(-0.5)proLate.lat1: 40.6\n    test 266 f(-0.5)proLate.lat2: 51.6\n    test 267 f(-0.5)proLate.lon1: -73.8\n    test 268 f(-0.5)proLate.lon2: -0.5\n    test 269 f(-0.5)proLate.s12: 4589390.62703027  FAILED, KNOWN, expected 4591698.78607691\n    test 270 f(-0.5)proLate.S12: 61028486473535.8  FAILED, KNOWN, expected 60997593633709.1\n\n    test 271 f(-0.4)proLate.a12: 27.64867851705./test/testRhumb_ekx.py:218: DeprecationWarning: property_RO L{rhumbx<pygeodesy.ellipsoids.Ellipsoid.rhumbx>} has been DEPRECATED on 2023.11.28, use property C{rhumbekx}.\n  R = E.rhumbx\n./test/testRhumb_ekx.py:228: DeprecationWarning: method L{orders<pygeodesy.rhumb.ekx.Rhumb.orders>} has been DEPRECATED, use properties C{RAorder} and/or C{TMorder}.\n  t = R.orders(4, 8)\n./pygeodesy/deprecated/classes.py:33: DeprecationWarning: class L{RhumbOrder2Tuple<pygeodesy.deprecated.classes.RhumbOrder2Tuple>} has been DEPRECATED, see deprecated method L{Rhumb.orders}.\n  deprecated_class(cls)\n./test/testRhumb_ekx.py:230: DeprecationWarning: method L{orders<pygeodesy.rhumb.ekx.Rhumb.orders>} has been DEPRECATED, use properties C{RAorder} and/or C{TMorder}.\n  t = R.orders(6, 6)\n./test/testRhumb_ekx.py:269: DeprecationWarning: method L{distance2<pygeodesy.rhumb.ekx.RhumbLine.distance2>} has been DEPRECATED on 23.09.23, use method L{RhumbLineAux.Inverse} or L{RhumbLine.Inverse}.\n  t = r.distance2(p.lat2, p.lon2)\n4  FAILED, KNOWN, expected 27.6548959759731\n    test 272 f(-0.4)proLate.azi12: 74.1256528590435  FAILED, KNOWN, expected 74.1310400671426\n    test 273 f(-0.4)proLate.lat1: 40.6\n    test 274 f(-0.4)proLate.lat2: 51.6\n    test 275 f(-0.4)proLate.lon1: -73.8\n    test 276 f(-0.4)proLate.lon2: -0.5\n    test 277 f(-0.4)proLate.s12: 4795999.00733361  FAILED, KNOWN, expected 4797077.50107739\n    test 278 f(-0.4)proLate.S12: 56459162579463.4  FAILED, KNOWN, expected 56450667480819.8\n\n    test 279 f(-0.3)proLate.a12: 31.644951499171  FAILED, KNOWN, expected 31.6462120754834\n    test 280 f(-0.3)proLate.azi12: 74.8684851385499  FAILED, KNOWN, expected 74.8693740965484\n    test 281 f(-0.3)proLate.lat1: 40.6\n    test 282 f(-0.3)proLate.lat2: 51.6\n    test 283 f(-0.3)proLate.lon1: -73.8\n    test 284 f(-0.3)proLate.lon2: -0.5\n    test 285 f(-0.3)proLate.s12: 5016163.41790208  FAILED, KNOWN, expected 5016363.23671944\n    test 286 f(-0.3)proLate.S12: 51834653769507.8  FAILED, KNOWN, expected 51833817791680\n\n    test 287 f(-0.2)proLate.a12: 36.6456555579816  FAILED, KNOWN, expected 36.6457142472518\n    test 288 f(-0.2)proLate.azi12: 75.707541532189  FAILED, KNOWN, expected 75.7076069272899\n    test 289 f(-0.2)proLate.lat1: 40.6\n    test 290 f(-0.2)proLate.lat2: 51.6\n    test 291 f(-0.2)proLate.lon1: -73.8\n    test 292 f(-0.2)proLate.lon2: -0.5\n    test 293 f(-0.2)proLate.s12: 5250114.26186747  FAILED, KNOWN, expected 5250122.67010496\n    test 294 f(-0.2)proLate.S12: 47145799674098  FAILED, KNOWN, expected 47145803785208.4\n\n    test 295 f(-0.1)proLate.a12: 43.0921529976013  FAILED, KNOWN, expected 43.0921526610931\n    test 296 f(-0.1)proLate.azi12: 76.657619712308  FAILED, KNOWN, expected 76.6576203659566\n    test 297 f(-0.1)proLate.lat1: 40.6\n    test 298 f(-0.1)proLate.lat2: 51.6\n    test 299 f(-0.1)proLate.lon1: -73.8\n    test 300 f(-0.1)proLate.lon2: -0.5\n    test 301 f(-0.1)proLate.s12: 5498686.10901062  FAILED, KNOWN, expected 5498686.06607118\n    test 302 f(-0.1)proLate.S12: 42386228150766.8  FAILED, KNOWN, expected 42386228533605.6\n\n    test 303 f(0.0)sphere.a12: 51.7609673604566  FAILED, KNOWN, expected 51.1449856169523\n    test 304 f(0.0)sphere.azi12: 77.7302010637481  FAILED, KNOWN, expected 81.4654121232455\n    test 305 f(0.0)sphere.lat1: 40.6\n    test 306 f(0.0)sphere.lat2: 51.6\n    test 307 f(0.0)sphere.lon1: -73.8\n    test 308 f(0.0)sphere.lon2: -0.5\n    test 309 f(0.0)sphere.s12: 5762004.52953328  FAILED, KNOWN, expected 5693433.75550843\n    test 310 f(0.0)sphere.S12: 37558171832842.8  FAILED, KNOWN, expected 34633199829004.9\n\n    test 311 f(0.1)obLate.a12: 57.0691016382906  FAILED, KNOWN, expected 57.0691039628294\n    test 312 f(0.1)obLate.azi12: 78.9329887995079  FAILED, KNOWN, expected 78.93298766632\n    test 313 f(0.1)obLate.lat1: 40.6\n    test 314 f(0.1)obLate.lat2: 51.6\n    test 315 f(0.1)obLate.lon1: -73.8\n    test 316 f(0.1)obLate.lon2: -0.5\n    test 317 f(0.1)obLate.s12: 6039438.43345776  FAILED, KNOWN, expected 6039438.67945619\n    test 318 f(0.1)obLate.S12: 32672705345900.1  FAILED, KNOWN, expected 32672705271834.1\n\n    test 319 f(0.2)obLate.a12: 62.9812798810273  FAILED, KNOWN, expected 62.9814139522913\n    test 320 f(0.2)obLate.azi12: 80.2674399313414  FAILED, KNOWN, expected 80.2672430625978\n    test 321 f(0.2)obLate.lat1: 40.6\n    test 322 f(0.2)obLate.lat2: 51.6\n    test 323 f(0.2)obLate.lon1: -73.8\n    test 324 f(0.2)obLate.lon2: -0.5\n    test 325 f(0.2)obLate.s12: 6329429.80122212  FAILED, KNOWN, expected 6329443.27498219\n    test 326 f(0.2)obLate.S12: 27754099677104.7  FAILED, KNOWN, expected 27754021074333.5\n\n    test 327 f(0.3)obLate.a12: 69.5187833694955  FAILED, KNOWN, expected 69.5167852965364\n    test 328 f(0.3)obLate.azi12: 81.727845079412  FAILED, KNOWN, expected 81.723183320486\n    test 329 f(0.3)obLate.lat1: 40.6\n    test 330 f(0.3)obLate.lat2: 51.6\n    test 331 f(0.3)obLate.lon1: -73.8\n    test 332 f(0.3)obLate.lon2: -0.5\n    test 333 f(0.3)obLate.s12: 6629289.31235135  FAILED, KNOWN, expected 6629098.77674254\n    test 334 f(0.3)obLate.S12: 22849066200619.3  FAILED, KNOWN, expected 22846728659359.5\n\n    test 335 f(0.4)obLate.a12: 76.6668761893773  FAILED, KNOWN, expected 76.6527272755987\n    test 336 f(0.4)obLate.azi12: 83.3233422838214  FAILED, KNOWN, expected 83.2739099818904\n    test 337 f(0.4)obLate.lat1: 40.6\n    test 338 f(0.4)obLate.lat2: 51.6\n    test 339 f(0.4)obLate.lon1: -73.8\n    test 340 f(0.4)obLate.lon2: -0.5\n    test 341 f(0.4)obLate.s12: 6934718.96454384  FAILED, KNOWN, expected 6933439.15838001\n    test 342 f(0.4)obLate.S12: 18021142604226.8  FAILED, KNOWN, expected 18023503773553\n\n    test 343 f(0.5)obLate.a12: 84.1879143342343  FAILED, KNOWN, expected 84.2941094970901\n    test 344 f(0.5)obLate.azi12: 85.209638808327  FAILED, KNOWN, expected 84.8687585722893\n    test 345 f(0.5)obLate.lat1: 40.6\n    test 346 f(0.5)obLate.lat2: 51.6\n    test 347 f(0.5)obLate.lon1: -73.8\n    test 348 f(0.5)obLate.lon2: -0.5\n    test 349 f(0.5)obLate.s12: 7225456.98760837  FAILED, KNOWN, expected 7234571.22434383\n    test 350 f(0.5)obLate.S12: 13330376215278.6  FAILED, KNOWN, expected 13389555976791.8\n\n    test 351 f(0.6)obLate.a12: 91.2748602594912  FAILED, KNOWN, expected 92.2282212329554\n    test 352 f(0.6)obLate.azi12: 88.2352064317911  FAILED, KNOWN, expected 86.428203134645\n    test 353 f(0.6)obLate.lat1: 40.6\n    test 354 f(0.6)obLate.lat2: 51.6\n    test 355 f(0.6)obLate.lon1: -73.8\n    test 356 f(0.6)obLate.lon2: -0.5\n    test 357 f(0.6)obLate.s12: 7442997.57411557  FAILED, KNOWN, expected 7520739.2807868\n    test 358 f(0.6)obLate.S12: 9465183863577.65  FAILED, KNOWN, expected 9108118533020.06\n\n    test 359 f(0.7)obLate.a12: 96.2356480551612  FAILED, KNOWN, expected 100.06793053457\n    test 360 f(0.7)obLate.azi12: 95.8849205715045  FAILED, KNOWN, expected 87.8440216245934\n    test 361 f(0.7)obLate.lat1: 40.6\n    test 362 f(0.7)obLate.lat2: 51.6\n    test 363 f(0.7)obLate.lon1: -73.8\n    test 364 f(0.7)obLate.lon2: -0.5\n    test 365 f(0.7)obLate.s12: 7478027.19892371  FAILED, KNOWN, expected 7775816.14921534\n    test 366 f(0.7)obLate.S12: 6562901235483.6  FAILED, KNOWN, expected 5406604570185.04\n\n    test 367 f(0.8)obLate.a12: 102.64879564776  FAILED, KNOWN, expected 107.191415254441\n    test 368 f(0.8)obLate.azi12: 119.3880292385  FAILED, KNOWN, expected 88.9890486193666\n    test 369 f(0.8)obLate.lat1: 40.6\n    test 370 f(0.8)obLate.lat2: 51.6\n    test 371 f(0.8)obLate.lon1: -73.8\n    test 372 f(0.8)obLate.lon2: -0.5\n    test 373 f(0.8)obLate.s12: 7641914.41853579  FAILED, KNOWN, expected 7980099.68462832\n    test 374 f(0.8)obLate.S12: 4756594610716.28  FAILED, KNOWN, expected 2511038845917.84\n\n    test 375 f(0.9)obLate.a12: 63.2182522839011  FAILED, KNOWN, expected 112.682385936076\n    test 376 f(0.9)obLate.azi12: 58.1823785248744  FAILED, KNOWN, expected 89.7386359477264\n    test 377 f(0.9)obLate.lat1: 40.6\n    test 378 f(0.9)obLate.lat2: 51.6\n    test 379 f(0.9)obLate.lon1: -73.8\n    test 380 f(0.9)obLate.lon2: -0.5\n    test 381 f(0.9)obLate.s12: 4551816.73344679  FAILED, KNOWN, expected 8113314.60991931\n    test 382 f(0.9)obLate.S12: -15708333250087.5  FAILED, KNOWN, expected 643969911402.414\n\n    test 383 R.exact: True\n    test 384 R.exact: False\n    test 385 R: Rhumb(RAorder=6, TMorder=6, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), exact=False)\n\n    test 386 R.exact: True\n    test 387 R.Line.exact: True\n    test 388 R.Line: RhumbLine(TMorder=6, azi12=3.0, exact=True, lat1=1.0, lon1=2.0, rhumb=Rhumb(RAorder=6, TMorder=6, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), exact=True), xTM=ExactTransverseMercator(datum='WGS84', extendp=False, k0=0.9996, lon0=0.0))\n    test 389 orders: (6, 6)\n    test 390 orders: (4, 8)\n\n\n    test 391 PlumbTo(exact=False, est=1000000.0): PlumbTo(a02=17.967658, a12=27.74256, at=90.0, azi0=113.73626, azi12=45.0, lat0=60, lat1=30.0, lat2=49.634582, lon0=0, lon1=0.0, lon2=25.767876, name='PlumbTo', s02=1997960.116871, s12=3083112.636236)\n    test 392 a02: 17.967658\n    test 393 s02: 1997960.116871\n    test 394 s12: 3083112.636236\n    test 395 azi0: 113.736\n    test 396 azi2: 135.000\n    test 397 iteration: 7\n\n    test 398 PlumbTo(exact=False, est=None): PlumbTo(a02=17.967658, a12=27.74256, at=90.0, azi0=113.73626, azi12=45.0, lat0=60, lat1=30.0, lat2=49.634582, lon0=0, lon1=0.0, lon2=25.767876, name='PlumbTo', s02=1997960.116871, s12=3083112.636236)\n    test 399 a02: 17.967658\n    test 400 s02: 1997960.116871\n    test 401 s12: 3083112.636236\n    test 402 azi0: 113.736\n    test 403 azi2: 135.000\n    test 404 iteration: 5\n\n    test 405 Intersecant2: (Intersecant2(a03=17.798332, a12=44.076956, azi03=135.0, azi12=45.0, lat0=30.0, lat1=30.0, lat2=61.164348, lat3=45.0, lon0=0.0, lon1=0.0, lon2=46.209348, lon3=15.830286, name='Intersecant2', s03=1977981.142985, s12=4898402.305119), Intersecant2(a03=17.798332, a12=-5.034244, azi03=135.0, azi12=45.0, lat0=30.0, lat1=30.0, lat2=26.4303, lat3=45.0, lon0=0.0, lon1=0.0, lon2=-4.030999, lon3=15.830286, name='Intersecant2', s03=1977981.142985, s12=-559470.390057))\n    test 406 azi0*=-90.000: exact=False, iteration=128, max=0.0, mean=0.0, min=-0.0, stdev=0.0\n\n    test 407 PlumbTo(exact=True, est=1000000.0): PlumbTo(a02=17.967658, a12=27.74256, at=90.0, azi0=113.73626, azi12=45.0, lat0=60, lat1=30.0, lat2=49.634582, lon0=0, lon1=0.0, lon2=25.767876, name='PlumbTo', s02=1997960.116871, s12=3083112.636236)\n    test 408 a02: 17.967658\n    test 409 s02: 1997960.116871\n    test 410 s12: 3083112.636236\n    test 411 azi0: 113.736\n    test 412 azi2: 135.000\n    test 413 iteration: 7\n\n    test 414 PlumbTo(exact=True, est=None): PlumbTo(a02=17.967658, a12=27.74256, at=90.0, azi0=113.73626, azi12=45.0, lat0=60, lat1=30.0, lat2=49.634582, lon0=0, lon1=0.0, lon2=25.767876, name='PlumbTo', s02=1997960.116871, s12=3083112.636236)\n    test 415 a02: 17.967658\n    test 416 s02: 1997960.116871\n    test 417 s12: 3083112.636236\n    test 418 azi0: 113.736\n    test 419 azi2: 135.000\n    test 420 iteration: 5\n\n    test 421 Intersecant2: (Intersecant2(a03=17.798332, a12=44.076956, azi03=135.0, azi12=45.0, lat0=30.0, lat1=30.0, lat2=61.164348, lat3=45.0, lon0=0.0, lon1=0.0, lon2=46.209348, lon3=15.830286, name='Intersecant2', s03=1977981.142985, s12=4898402.305119), Intersecant2(a03=17.798332, a12=-5.034244, azi03=135.0, azi12=45.0, lat0=30.0, lat1=30.0, lat2=26.4303, lat3=45.0, lon0=0.0, lon1=0.0, lon2=-4.030999, lon3=15.830286, name='Intersecant2', s03=1977981.142985, s12=-559470.390057))\n    test 422 azi0*=-90.000: exact=True, iteration=128, max=0.0, mean=0.0, min=-0.0, stdev=0.0\n\n    test 423 PlumbTo(exact=None, est=None): Intersection(a02=17.798332, a12=19.521356, at=90.0, azi02=135.0, azi12=45.0, lat0=60.0, lat1=30.0, lat2=45.0, lon0=0.0, lon1=0.0, lon2=15.830286, name='Intersection', s02=1977981.142985, s12=2169465.957531)\n    test 424 a02: 17.798332\n    test 425 s02: 1977981.142985\n    test 426 s12: 2169465.957531\n    test 427 azi02: 135.000\n    test 428 iteration: 9\n\n    test 429 Intersecant2: (Intersecant2(a03=17.798332, a12=44.076956, azi03=135.0, azi12=45.0, lat0=30.0, lat1=30.0, lat2=61.164348, lat3=45.0, lon0=0.0, lon1=0.0, lon2=46.209348, lon3=15.830286, name='Intersecant2', s03=1977981.142985, s12=4898402.305119), Intersecant2(a03=17.798332, a12=-5.034244, azi03=135.0, azi12=45.0, lat0=30.0, lat1=30.0, lat2=26.4303, lat3=45.0, lon0=0.0, lon1=0.0, lon2=-4.030999, lon3=15.830286, name='Intersecant2', s03=1977981.142985, s12=-559470.390057))\n    test 430 azi0*=90.000: exact=None, iteration=20, max=0.507468, mean=-2.015217, min=-6.079451, stdev=2.057451\n\n    test 431 xTM: KTransverseMercator(ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), k0=0.9996, TMorder=7)\n\n    test 432 Intersection: Intersection(a02=41.823427, a12=16.45698, at=-85.0, azi02=-50.0, azi12=35.0, lat0=0.0, lat1=10.0, lat2=23.944114, lon0=-10.0, lon1=-56.0, lon2=-45.833131, name='Intersection', s02=4650559.291378, s12=1829935.168035)  FAILED, KNOWN, expected (26.9774, -43.4088)\n    test 433 PlumbTo: Intersection(a02=0.0, a12=16.45698, at=90.0, azi02=125.0, azi12=35.0, lat0=23.944114, lat1=10.0, lat2=23.944114, lon0=-45.833131, lon1=-56.0, lon2=-45.833131, name='Intersection', s02=0.000043, s12=1829935.168032)\n    test 434 PlumbTo: Intersection(a02=0.0, a12=41.823427, at=90.0, azi02=40.0, azi12=-50.0, lat0=23.944114, lat1=0.0, lat2=23.944114, lon0=-45.833131, lon1=-10.0, lon2=-45.833131, name='Intersection', s02=0.000246, s12=4650559.291327)\n    test 435 xTM: KTransverseMercator(ellipsoid=Ellipsoid(name='Sphere', a=6371008.771415, f=0, f_=0, b=6371008.771415), k0=0.9996, TMorder=6)\n\n    test 436 Intersection: Intersection(a02=29.910202, a12=26.853309, at=-135.0, azi02=-45.0, azi12=90.0, lat0=15.0, lat1=37.0, lat2=37.0, lon0=-17.0, lon1=-76.0, lon2=-42.376015, name='Intersection', s02=3325867.316604, s12=2985955.796006)  FAILED, KNOWN, expected (37.0, -41.7028)\n    test 437 PlumbTo: Intersection(a02=0.0, a12=26.853309, at=90.0, azi02=180.0, azi12=90.0, lat0=37.0, lat1=37.0, lat2=37.0, lon0=-42.376015, lon1=-76.0, lon2=-42.376015, name='Intersection', s02=0.000129, s12=2985955.795978)\n    test 438 PlumbTo: Intersection(a02=0.0, a12=29.910202, at=90.0, azi02=45.0, azi12=-45.0, lat0=37.0, lat1=15.0, lat2=37.0, lon0=-42.376015, lon1=-17.0, lon2=-42.376015, name='Intersection', s02=0.000081, s12=3325867.316586)\n    test 439 xTM: KTransverseMercator(ellipsoid=Ellipsoid(name='Sphere', a=6371008.771415, f=0, f_=0, b=6371008.771415), k0=0.9996, TMorder=6)\n\n    test 440 toStr: invokation=1, rhumb=RhumbSolve(ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), invokation=0, RhumbSolve='/opt/local/bin/RhumbSolve', status=None), status=0\n    test 441 lat1: 1\n    test 442 lon1: 2\n    test 443 a: 6378137.0\n    test 444 f: 0.00335281066475\n    test 445 Position: {azi12: 3, lat1: 1, lat2: 10.030279, lon1: 2, lon2: 2.472809, S12: 32084050047.178001, s12: 1000000.0}\n    test 446 prec: 9\n    test 447 reverse2: True\n    test 448 unroll: True\n    test 449 verbose: True\n\n    test 450 toStr: invokation=1, rhumb=RhumbSolve(ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), invokation=0, RhumbSolve='/opt/local/bin/RhumbSolve', status=None), status=0\n    test 451 lat1: 1\n    test 452 lon1: 2\n    test 453 a: 6378137.0\n    test 454 f: 0.00335281066475\n    test 455 Position: {azi12: 3, lat1: 1, lat2: 10.030279, lon1: 2, lon2: 2.472809, S12: 32084050047.178001, s12: 1000000.0}\n    test 456 prec: 9\n    test 457 reverse2: True\n    test 458 unroll: True\n    test 459 verbose: True\n\n    336 of 459 testRhumb_ekx.py tests (73.2%) FAILED, incl. 145 KNOWN plus 191 DeprecationWarnings (pygeodesy 26.3.26 Python 2.7.18 64bit arm64_x86_64 geographiclib 1.50 numpy 1.16.6 scipy 1.2.2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 -W  default) 71.707 sec\nrunning /Library/Framewo....ython -W default ~/PyGeodesy/test/testRoutes.py\n./test/testRoutes.py:17103: DeprecationWarning: function L{areaOf<pygeodesy.ellipsoidalVincenty.areaOf>} has been DEPRECATED, use function L{ellipsoidalExact.areaOf} or L{ellipsoidalKarney.areaOf}.\n  r = f(pts, wrap=True, **kwds)\n./pygeodesy/ellipsoidalKarney.py:139: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return fabs(_polygon(datum.ellipsoid.geodesic, points, True, False, wrap, polar))\n./test/testRoutes.py:17103: DeprecationWarning: function L{perimeterOf<pygeodesy.ellipsoidalVincenty.perimeterOf>} has been DEPRECATED, use function L{ellipsoidalExact.perimeterOf} or L{ellipsoidalKarney.perimeterOf}.\n  r = f(pts, wrap=True, **kwds)\n./pygeodesy/ellipsoidalKarney.py:347: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return _polygon(datum.ellipsoid.geodesic, points, closed, True, wrap, False)\n\n    testing testRoutes.py 23.08.23\n    test 1 points.areaOf('Antarctica', adjust=True, radius=6371.01, wrap=True): 1751693.701  FAILED, KNOWN, expected 13552524.800\n    test 2 points.areaOf('PtsFFI', adjust=True, radius=6371.01, wrap=True): 1.288\n    test 3 points.areaOf('RdpFFI', adjust=True, radius=6371.01, wrap=True): 1.241\n    test 4 points.areaOf('Pts', adjust=True, radius=6371.01, wrap=True): 131184.240\n    test 5 points.areaOf('VwPts', adjust=True, radius=6371.01, wrap=True): 140310.144\n    test 6 points.areaOf('_JFK_LHR1', adjust=True, radius=6371.01, wrap=True): 41383852.921  FAILED, KNOWN, expected 40041368.849\n    test 7 points.areaOf('_JFK_LHR2', adjust=True, radius=6371.01, wrap=True): 82767705.842  FAILED, KNOWN, expected 80082737.697\n    test 8 points.areaOf('Antarctica', adjust=False, radius=6371.01, wrap=True): 10446635.730  FAILED, KNOWN, expected 13552524.800\n    test 9 points.areaOf('PtsFFI', adjust=False, radius=6371.01, wrap=True): 2.185  FAILED, KNOWN, expected 1.288\n    test 10 points.areaOf('RdpFFI', adjust=False, radius=6371.01, wrap=True): 2.105  FAILED, KNOWN, expected 1.241\n    test 11 points.areaOf('Pts', adjust=False, radius=6371.01, wrap=True): 233595.011  FAILED, KNOWN, expected 131184.240\n    test 12 points.areaOf('VwPts', adjust=False, radius=6371.01, wrap=True): 258465.911  FAILED, KNOWN, expected 140310.144\n    test 13 points.areaOf('_JFK_LHR1', adjust=False, radius=6371.01, wrap=True): 41780731.678  FAILED, KNOWN, expected 40041368.849\n    test 14 points.areaOf('_JFK_LHR2', adjust=False, radius=6371.01, wrap=True): 83561463.357  FAILED, KNOWN, expected 80082737.697\n    test 15 sphericalTrigonometry.areaOf('Antarctica', radius=6371.01, wrap=True): 241480413.388\n    test 16 sphericalTrigonometry.areaOf('PtsFFI', radius=6371.01, wrap=True): 1.338\n    test 17 sphericalTrigonometry.areaOf('RdpFFI', radius=6371.01, wrap=True): 1.289\n    test 18 sphericalTrigonometry.areaOf('Pts', radius=6371.01, wrap=True): 125942.444\n    test 19 sphericalTrigonometry.areaOf('VwPts', radius=6371.01, wrap=True): 118897.757\n    test 20 sphericalTrigonometry.areaOf('_JFK_LHR1', radius=6371.01, wrap=True): 40105639.197\n    test 21 sphericalTrigonometry.areaOf('_JFK_LHR2', radius=6371.01, wrap=True): 80211278.393\n    test 22 ellipsoidalVincenty.areaOf('Antarctica', wrap=True): 1.366270e+13\n    test 23 ellipsoidalVincenty.areaOf('PtsFFI', wrap=True): 1.343272e+06\n    test 24 ellipsoidalVincenty.areaOf('RdpFFI', wrap=True): 1.294375e+06\n    test 25 ellipsoidalVincenty.areaOf('Pts', wrap=True): 1.271286e+11\n    test 26 ellipsoidalVincenty.areaOf('VwPts', wrap=True): 1.200540e+11\n    test 27 ellipsoidalVincenty.areaOf('_JFK_LHR1', wrap=True): 4.004137e+13\n    test 28 ellipsoidalVincenty.areaOf('_JFK_LHR2', wrap=True): 8.008274e+13\n    test 29 ellipsoidalVincenty.areaOf('Antarctica', wrap=True): 1.366270e+13\n    test 30 ellipsoidalVincenty.areaOf('PtsFFI', wrap=True): 1.343272e+06\n    test 31 ellipsoidalVincenty.areaOf('RdpFFI', wrap=True): 1.294375e+06\n    test 32 ellipsoidalVincenty.areaOf('Pts', wrap=True): 1.271286e+11\n    test 33 ellipsoidalVincenty.areaOf('VwPts', wrap=True): 1.200540e+11\n    test 34 ellipsoidalVincenty.areaOf('_JFK_LHR1', wrap=True): 4.004137e+13\n    test 35 ellipsoidalVincenty.areaOf('_JFK_LHR2', wrap=True): 8.008274e+13\n    test 36 points.perimeterOf('Antarctica', closed=False, radius=6.37101e+06, wrap=True): 15620294.792  FAILED, KNOWN, expected 16765661.499\n    test 37 points.perimeterOf('PtsFFI', closed=False, radius=6.37101e+06, wrap=True): 3224.123\n    test 38 points.perimeterOf('RdpFFI', closed=False, radius=6.37101e+06, wrap=True): 3185.467\n    test 39 points.perimeterOf('Pts', closed=False, radius=6.37101e+06, wrap=True): 2762313.129\n    test 40 points.perimeterOf('VwPts', closed=False, radius=6.37101e+06, wrap=True): 2672557.850\n    test 41 points.perimeterOf('_JFK_LHR1', closed=False, radius=6.37101e+06, wrap=True): 16034670.768  FAILED, KNOWN, expected 15766750.804\n    test 42 points.perimeterOf('_JFK_LHR2', closed=False, radius=6.37101e+06, wrap=True): 26286857.120  FAILED, KNOWN, expected 25981742.208\n    test 43 sphericalTrigonometry.perimeterOf('Antarctica', closed=False, radius=6.37101e+06, wrap=True): 15470624.834\n    test 44 sphericalTrigonometry.perimeterOf('PtsFFI', closed=False, radius=6.37101e+06, wrap=True): 3224.123\n    test 45 sphericalTrigonometry.perimeterOf('RdpFFI', closed=False, radius=6.37101e+06, wrap=True): 3185.467\n    test 46 sphericalTrigonometry.perimeterOf('Pts', closed=False, radius=6.37101e+06, wrap=True): 2762313.116\n    test 47 sphericalTrigonometry.perimeterOf('VwPts', closed=False, radius=6.37101e+06, wrap=True): 2672556.441\n    test 48 sphericalTrigonometry.perimeterOf('_JFK_LHR1', closed=False, radius=6.37101e+06, wrap=True): 15789078.314\n    test 49 sphericalTrigonometry.perimeterOf('_JFK_LHR2', closed=False, radius=6.37101e+06, wrap=True): 26041264.665\n    test 50 ellipsoidalVincenty.perimeterOf('Antarctica', closed=False, wrap=True): 15531947.149  FAILED, KNOWN, expected 15531770.613\n    test 51 ellipsoidalVincenty.perimeterOf('PtsFFI', closed=False, wrap=True): 3229.337\n    test 52 ellipsoidalVincenty.perimeterOf('RdpFFI', closed=False, wrap=True): 3190.602\n    test 53 ellipsoidalVincenty.perimeterOf('Pts', closed=False, wrap=True): 2769709.679  FAILED, KNOWN, expected 2769709.412\n    test 54 ellipsoidalVincenty.perimeterOf('VwPts', closed=False, wrap=True): 2679915.858\n    test 55 ellipsoidalVincenty.perimeterOf('_JFK_LHR1', closed=False, wrap=True): 15766750.804  FAILED, KNOWN, expected 15763434.962\n    test 56 ellipsoidalVincenty.perimeterOf('_JFK_LHR2', closed=False, wrap=True): 25981742.208  FAILED, KNOWN, expected 25972353.155\n    test 57 ellipsoidalVincenty.perimeterOf('Antarctica', closed=True, wrap=True): 16831067.893  FAILED, KNOWN, expected 16830891.356\n    test 58 ellipsoidalVincenty.perimeterOf('PtsFFI', closed=True, wrap=True): 5491.045\n    test 59 ellipsoidalVincenty.perimeterOf('RdpFFI', closed=True, wrap=True): 5452.310\n    test 60 ellipsoidalVincenty.perimeterOf('Pts', closed=True, wrap=True): 5259077.510  FAILED, KNOWN, expected 5259077.242\n    test 61 ellipsoidalVincenty.perimeterOf('VwPts', closed=True, wrap=True): 5171947.931\n    test 62 ellipsoidalVincenty.perimeterOf('_JFK_LHR1', closed=True, wrap=True): 23926469.479  FAILED, KNOWN, expected 23921931.540\n    test 63 ellipsoidalVincenty.perimeterOf('_JFK_LHR2', closed=True, wrap=True): 31533501.608  FAILED, KNOWN, expected 31524112.555\n    test 64 geographiclib.WNZ-SAL(WGS84): 19959679.267\n    test 65 geographiclib.WNZ-SAL(WGS84): 354.50\n    test 66 geographiclib.WNZ-SAL(Sphere): 19967403.498\n    test 67 geographiclib.WNZ-SAL(Sphere): 354.50\n    test 68 geographiclib.BJS-SFO(WGS84): 9513998.0\n    test 69 geographiclib.BJS-SFO(WGS84): 237.6\n    test 70 geographiclib.BJS-SFO(Sphere): 9491734.6\n    test 71 geographiclib.BJS-SFO(Sphere): 237.6\n    test 72 geographiclib.SW-Perth(WGS84): 32.11195529\n    test 73 geographiclib.SW-Perth(WGS84): -63.95925278\n    test 74 geographiclib.SW-Perth(Sphere): 31.96383509\n    test 75 geographiclib.SW-Perth(Sphere): -64.14670854\n    test 76 geographiclib.JFK-LHR(WGS84): 40041368848742.5\n    test 77 geographiclib.JFK-LHR(WGS84): 5551759.4\n    test 78 geographiclib.JFK-LHR(Sphere): 40105639196534.8\n    test 79 geographiclib.JFK-LHR(Sphere): 5536892.0\n    test 80 geographiclib.Antarctica Peri(WGS84): 16831067.893\n    test 81 geographiclib.Antarctica Area(WGS84): 13662703680020.1\n    test 82 geographiclib.Antarctica Peri(Sphere): 16765661.499\n    test 83 geographiclib.Antarctica Area(Sphere): 13552524809674.8\n    test 84 isclockwise('Antarctica', adjust=False, wrap=True): 1.000\n    test 85 isclockwise('PtsFFI', adjust=False, wrap=True): 1.000\n    test 86 isclockwise('RdpFFI', adjust=False, wrap=True): 1.000\n    test 87 isclockwise('Pts', adjust=False, wrap=True): 1.000\n    test 88 isclockwise('VwPts', adjust=False, wrap=True): 1.000\n    test 89 isclockwise('_JFK_LHR1', adjust=False, wrap=True): 0.000\n    test 90 isclockwise('_JFK_LHR2', adjust=False, wrap=True): 0.000\n\n    77 of 90 testRoutes.py tests (85.6%) FAILED, incl. 21 KNOWN plus 56 DeprecationWarnings (pygeodesy 26.3.26 Python 2.7.18 64bit arm64_x86_64 geographiclib 1.50 numpy 1.16.6 scipy 1.2.2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 -W  default) 6.443 sec\nrunning /Library/Framewo....ython -W default ~/PyGeodesy/test/testSimplify.py\n./test/testSimplify.py:37: DeprecationWarning: function L{simplifyVWm<pygeodesy.deprecated.functions.simplifyVWm>} has been DEPRECATED on 2024.11.28, use function L{pygeodesy.simplifyVW}C{(points, modified=True, ...)}.\n  r = function(points, m, **kwds)\n./test/testSimplify.py:37: DeprecationWarning: function L{simplifyRDPm<pygeodesy.deprecated.functions.simplifyRDPm>} has been DEPRECATED on 2024.11.28, use function L{pygeodesy.simplifyRDP}C{(points, modified=True, ...)}.\n  r = function(points, m, **kwds)\n\n    testing testSimplify.py 23.03.27 (module pygeodesy.simplify 25.05.12)\n    test 1 simplify1(16614, adjust=True) 1m (102.933 ms): 16597\n    test 2 simplifyRW(16614, indices=True, adjust=True, shortest=False) 1m (818.112 ms): 7095\n    test 3 simplifyRW(16614, adjust=True, shortest=False) 1m (807.150 ms): 7095\n    test 4 simplifyRW(16614, adjust=True, shortest=True) 1m (848.312 ms): 8302\n    test 5 simplifyVWm(16614, indices=True, adjust=True) 1m (934.624 ms): 16328\n    test 6 simplifyVWm(16614, adjust=True) 1m (940.096 ms): 16328\n    test 7 simplifyVWm(16614, adjust=False) 1m (919.440 ms): 16373\n    test 8 simplifyRDPm(16614, adjust=True, shortest=False) 1m (1.607 sec): 15864\n    test 9 simplifyRDPm(16614, adjust=True, shortest=True) 1m (2.367 sec): 15867\n    test 10 simplifyRDPgr(16614, adjust=True, modified=True, shortest=True) 1m (772.716 ms): 15867\n    test 11 simplifyRDPm(16614, adjust=False, shortest=False) 1m (1.647 sec): 15869\n    test 12 simplifyRDPfw(16614, adjust=False, modified=True, shortest=False) 1m (936.989 ms): 15869\n    test 13 simplifyRDP(16614, indices=True, adjust=True, shortest=True) 1m (24.375 sec): 10960\n    test 14 simplifyRDP(16614, adjust=True, shortest=True) 1m (24.373 sec): 10960\n    test 15 simplifyRDPgr(16614, adjust=True, modified=False, shortest=True) 1m (694.640 ms): 10960\n    test 16 simplifyRDP(16614, indices=True, adjust=False, shortest=False) 1m (12.613 sec): 11248\n    test 17 simplifyRDP(16614, adjust=False, shortest=False) 1m (12.575 sec): 11248\n    test 18 simplifyRDPfw(16614, adjust=False, modified=False, shortest=False) 1m (274.704 ms): 11248\n    test 19 simplifyVW(1661, adjust=True) 1m (93.185 ms): 1641\n    test 20 simplifyVW(1661, adjust=False) 1m (90.249 ms): 1646\n    test 21 simplifyRDP(1661, adjust=True, shortest=False) 1m (952.707 ms): 1231\n    test 22 simplifyRDP(1661, adjust=True, shortest=True) 1m (1.823 sec): 1231\n    test 23 simplifyRDPgr(1661, adjust=True, shortest=True) 1m (52.957 ms): 1231\n    test 24 simplifyRDP(1661, adjust=False, shortest=False) 1m (942.841 ms): 1267\n    test 25 simplifyRDPfw(1661, adjust=False, shortest=False) 1m (21.420 ms): 1267\n    test 26 simplifyRDPgr(1661, adjust=False, shortest=True) 1m (38.156 ms): 1267\n    test 27 simplifyVW(69, adjust=False) 1m (3.971 ms): 69\n    test 28 simplifyRDP(69, adjust=False, shortest=False) 1m (19.787 ms): 50\n    test 29 simplifyRDPfw(69, adjust=False, shortest=False) 1m (487.804 us): 50\n    test 30 simplifyRDPgr(69, adjust=False, shortest=True) 1m (832.081 us): 50\n    test 31 simplifyRDPgr(69, adjust=True, shortest=True) 1m (1.127 ms): 45\n    test 32 simplifyRDP(5, adjust=False, shortest=True) 1m (369.072 us): 5\n    test 33 simplifyVW(5, adjust=False, attr='name') 30m (251.055 us): 5\n    test 34 numpy.__version__: 1.16.6\n    test 35 simplify1(69, adjust=False) 1m (910.044 us): 69\n    test 36 simplify1(69, adjust=False) result: <type 'numpy.ndarray'>\n    test 37 simplifyRW(69, adjust=False) 1m (2.626 ms): 33\n    test 38 simplifyRW(69, adjust=False) result: <type 'numpy.ndarray'>\n    test 39 simplifyRDP(69, adjust=False) 1m (23.801 ms): 50\n    test 40 simplifyRDP(69, adjust=False) result: <type 'numpy.ndarray'>\n    test 41 simplifyRDPm(69, adjust=False) 1m (4.968 ms): 67\n    test 42 simplifyRDPm(69, adjust=False) result: <type 'numpy.ndarray'>\n    test 43 simplifyRDPfw(69, adjust=False) 1m (3.956 ms): 50\n    test 44 simplifyRDPgr(69, adjust=False) 1m (7.216 ms): 50\n    test 45 simplifyVW(69, adjust=False) 1m (4.878 ms): 69\n    test 46 simplifyVW(69, adjust=False) result: <type 'numpy.ndarray'>\n    test 47 simplifyVWm(69, adjust=False) 1m (4.844 ms): 69\n    test 48 simplifyVWm(69, adjust=False) result: <type 'numpy.ndarray'>\n    test 49 simplify1(69, adjust=True) 1m (797.033 us): 69\n    test 50 simplify1(69, adjust=True) result: <type 'numpy.ndarray'>\n    test 51 simplifyRW(69, adjust=True) 1m (2.705 ms): 31\n    test 52 simplifyRW(69, adjust=True) result: <type 'numpy.ndarray'>\n    test 53 simplifyRDP(69, adjust=True) 1m (23.672 ms): 45\n    test 54 simplifyRDP(69, adjust=True) result: <type 'numpy.ndarray'>\n    test 55 simplifyRDPm(69, adjust=True) 1m (4.955 ms): 67\n    test 56 simplifyRDPm(69, adjust=True) result: <type 'numpy.ndarray'>\n    test 57 simplifyRDPfw(69, adjust=True) 1m (4.060 ms): 45\n    test 58 simplifyRDPgr(69, adjust=True) 1m (7.442 ms): 45\n    test 59 simplifyVW(69, adjust=True) 1m (4.882 ms): 69\n    test 60 simplifyVW(69, adjust=True) result: <type 'numpy.ndarray'>\n    test 61 simplifyVWm(69, adjust=True) 1m (4.875 ms): 69\n    test 62 simplifyVWm(69, adjust=True) result: <type 'numpy.ndarray'>\n    test 63 simplify1(69, indices=True, adjust=False) 1m (728.846 us): 69\n    test 64 simplify1(69, indices=True, adjust=False) result: <type 'list'>\n    test 65 simplifyRW(69, indices=True, adjust=False) 1m (2.561 ms): 33\n    test 66 simplifyRW(69, indices=True, adjust=False) result: <type 'list'>\n    test 67 simplifyRDP(69, indices=True, adjust=False) 1m (23.557 ms): 50\n    test 68 simplifyRDP(69, indices=True, adjust=False) result: <type 'list'>\n    test 69 simplifyRDPm(69, indices=True, adjust=False) 1m (4.860 ms): 67\n    test 70 simplifyRDPm(69, indices=True, adjust=False) result: <type 'list'>\n    test 71 simplifyRDPfw(69, indices=True, adjust=True) 1m (4.056 ms): 45\n    test 72 simplifyRDPgr(69, indices=True, adjust=True) 1m (7.427 ms): 45\n    test 73 simplifyVW(69, indices=True, adjust=False) 1m (4.792 ms): 69\n    test 74 simplifyVW(69, indices=True, adjust=False) result: <type 'list'>\n    test 75 simplifyVWm(69, indices=True, adjust=False) 1m (4.781 ms): 69\n    test 76 simplifyVWm(69, indices=True, adjust=False) result: <type 'list'>\n\n    12 of 76 testSimplify.py tests (15.8%) FAILED, incl. 12 DeprecationWarnings (pygeodesy 26.3.26 Python 2.7.18 64bit arm64_x86_64 geographiclib 1.50 numpy 1.16.6 scipy 1.2.2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 -W  default) 91.810 sec\nrunning /Library/Framewo....ython -W default ~/PyGeodesy/test/testSpherical.py\n./test/testLatLon.py:276: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.sphericalNvector.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', p.cosineAndoyerLambertTo(q), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:277: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.sphericalNvector.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', q.cosineAndoyerLambertTo(p), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:279: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.sphericalNvector.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', p.cosineForsytheAndoyerLambertTo(q), '124801.098' if Sph else '125205.965', fmt='%.3f')\n./test/testLatLon.py:280: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.sphericalNvector.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', q.cosineForsytheAndoyerLambertTo(p), '124801.098' if Sph else '125205.965', fmt='%.3f')\n./test/testVectorial.py:128: DeprecationWarning: function L{nearestOn<pygeodesy.vector2d.nearestOn>} has been DEPRECATED on 2025.05.06, use L{pygeodesy.nearestOn<pygeodesy.vector3d.nearestOn>}.\n  t = vector2d.nearestOn(Nvector(0, 0, 0), p1, p2)\n\n    testing testSpherical.py 23.10.23\n\n    testLatLon(pygeodesy.sphericalNvector, 25.05.27)\n    test 1 isEllipsoidal: False\n    test 2 isSpherical: True\n    test 3 lat/lonDMS: 52.20472°N, 000.14056°E\n    test 4 lat/lonDMS F_DM: 52°12.283′N, 000°08.434′E\n    test 5 lat/lonDMS F_DM: 52°12.2832′N, 000°08.4336′E\n    test 6 lat/lonDMS F_DMS: 52°12′17″N, 000°08′26″E\n    test 7 lat/lonDMS F_DMS: 52°12′17.0″N, 000°08′26.0″E\n    test 8 lat/lonDMS F_RAD: 0.911144N, 0.002453E\n    test 9 isequalTo: True\n    test 10 isequalTo: True\n    test 11 latlon2: 52.20472, 0.14056\n    test 12 latlon2: 52.2047, 0.1406\n    test 13 latlon2: 52.205, 0.141\n    test 14 latlon2: 52.2, 0.14\n    test 15 latlon2: 52.2, 0.1\n    test 16 latlon2: 52.0, 0.0\n    test 17 chordTo: 12036677.26\n    test 18 chordTo: 12036463.78\n    test 19 initialBearingTo: 156.1666\n    test 20 initialBearingTo: 65.8921\n    test 21 initialBearingTo: 0.0\n    test 22 initialBearingTo: 180.0\n    test 23 finalBearingTo: 157.8904\n    test 24 finalBearingTo: 93.8581\n    test 25 bearingTo2: 156.1666, 157.8904\n    test 26 ispolar: True\n    test 27 copy: True\n    test 28 __eq__: True\n    test 29 __ne__: False\n    test 30 equirectangularTo: 404329.56\n    test 31 distanceTo: 404279.720589\n    test 32 distanceTo: 404279.720589\n    test 33 distanceTo: 2145\n    test 34 distanceTo: 18013602.92\n    test 35 distanceTo: 20015114.35\n    test 36 intermediateTo: 51.372084°N, 000.707337°E\n    test 37 intermediateTo: True\n    test 38 intermediateTo: 404279.721\n    test 39 intermediateTo+5: 35.160975°N, 008.989542°E\n    test 40 intermediateTo+5: 5.000\n    test 41 intermediateTo-4: 64.911647°N, 013.726301°W\n    test 42 intermediateTo-4: 4.000\n    test 43 intermediateTo-h: 125.000\n    test 44 intermediateChordTo: 51.372294°N, 000.707192°E\n    test 45 intermediateChordTo: True\n    test 46 intermediateChordTo-h: 125.000\n    test 47 midpointTo: 50.536327°N, 001.274614°E\n    test 48 destination: 51.513546°N, 000.098345°W\n    test 49 destination: 51°30′49″N, 000°05′54″W\n    test 50 destination: 34°37′N, 116°33′W\n    test 51 destination: 34.613647°N, 116.55116°W\n    test 52 destination: 0.604122N, 2.034201W\n    test 53 destination: 31.96383509°N, 064.37329146°E\n    test 54 alongTrackDistanceTo: 62331.59\n    test 55 alongTrackDistanceTo: 62331.58\n    test 56 alongTrackDistanceTo: 99.588\n    test 57 alongTrackDistanceTo: -7702.7\n    test 58 alongTrackDistanceTo: 7587.6\n    test 59 crossTrackDistanceTo: -305.665281606  FAILED, KNOWN, expected TypeError\n    test 60 crossTrackDistanceTo: -307.55\n    test 61 crossTrackDistanceTo: 7.4524\n    test 62 greatCircle: (-0.79408, 0.12856, 0.59406)\n    test 63 neareston6: (LatLon(45°00′00.0″N, 001°00′00.0″E), 4773243.784965, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E))  FAILED, KNOWN, expected (LatLon(45°00′00.0″N, 001°00′00.0″E), 4755443.4294, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E))\n    test 64 neareston6: (LatLon(45°30′03.93″N, 002°00′00.0″E), 38968.531578, 1.501091, 2, LatLon(45°00′00.0″N, 002°00′00.0″E), LatLon(46°00′00.0″N, 002°00′00.0″E))  FAILED, KNOWN, expected (LatLon(45°30′03.94″N, 002°00′00.0″E), 39078.729285, 1.501072, 2, LatLon(45°00′00.0″N, 002°00′00.0″E), LatLon(46°00′00.0″N, 002°00′00.0″E))\n    test 65 chordTo: 124799.103\n    test 66 cosineAndoyerLambertTo: 124801.098\n    test 67 cosineAndoyerLambertTo: 124801.098\n    test 68 cosineForsyheAndoyerLambertTo: 124801.098\n    test 69 cosineForsyheAndoyerLambertTo: 124801.098\n    test 70 cosineLawTo: 124801.098\n    test 71 cosineLawTo: 124801.098\n    test 72 equirectangularTo: 124804.754\n    test 73 equirectangularTo: 124804.754\n    test 74 euclideanTo: 130015.089\n    test 75 euclideanTo: 130015.089\n    test 76 flatLocalTo: 124804.754\n    test 77 flatLocalTo: 124804.754\n    test 78 flatPolarTo: 133663.257\n    test 79 flatPolarTo: 133663.257\n    test 80 hartzell: 53.3206°N, 001.7297°W\n    test 81 hartzell: 53.3206°N, 001.7297°W\n    test 82 height4: 0.0\n    test 83 height4: (3803904.2, -114870.8, 5109488.3, 0.0)\n    test 84 height4: 53°19′14.2″N, 001°43′46.9″W\n    test 85 height4: 53°19′14.2″N, 001°43′46.9″W\n    test 86 haversineTo: 124801.098\n    test 87 haversineTo: 124801.098\n    test 88 hubenyTo: <bound method LatLon.flatLocalTo of LatLon(53°19′14.16″N, 001°43′46.92″W)>\n    test 89 hubenyTo: <bound method LatLon.flatLocalTo of LatLon(53°11′19.32″N, 000°08′00.24″E)>\n    test 90 thomasTo: 124801.098\n    test 91 thomasTo: 124801.098\n    test 92 vincentysTo: 124801.098\n    test 93 vincentysTo: 124801.098\n    test 94 greatCircleTo: (-0.79408, 0.12859, 0.59406)\n    test 95 isclockwise: False\n    test 96 isclockwise*: False\n    test 97 isclockwise: True\n    test 98 isclockwise*: True\n    test 99 isclockwise: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 100 isclockwise*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 101 isclockwise: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 102 isclockwise*: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 103 isconvex: False\n    test 104 isconvex*: False\n    test 105 isconvex: True\n    test 106 isconvex*: True\n    test 107 isconvex: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 108 isconvex*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 109 isenclosedBy1: True\n    test 110 isenclosedBy1*: True\n    test 111 isenclosedBy2: False\n    test 112 isenclosedBy2*: False\n    test 113 isenclosedBy3: False\n    test 114 isenclosedBy3*: False\n    test 115 isenclosedBy4: False\n    test 116 isenclosedBy4*: False\n    test 117 isenclosedBy5: False\n    test 118 isenclosedBy5*: False\n    test 119 isenclosedBy6: True\n    test 120 isenclosedBy6*: True\n    test 121 isenclosedBy7: True\n    test 122 isenclosedBy7*: True\n    test 123 isenclosedBy-CCW: True\n    test 124 isenclosedBy-CW : True\n    test 125 isenclosedBy-CCW: True\n    test 126 initialBearingTo: 102.432182\n    test 127 compassAngleTo: 100.017\n    test 128 compassAngleTo: 105.599\n    test 129 initialBearingTo: 288.715918\n    test 130 compassAngleTo: 280.017\n    test 131 compassAngleTo: 285.599\n    test 132 equirectangularTo: 592.185\n    test 133 distanceTo: 591.831\n    test 134 compassAngleTo: 0.0\n    test 135 compassAngleTo: 45.0\n    test 136 compassAngleTo: 90.0\n    test 137 compassAngleTo: 180.0\n    test 138 compassAngleTo: 225.0\n    test 139 compassAngleTo: 315.0\n    test 140 compassAngleTo: 270.0\n    test 141 compassAngleTo: 359.4\n    test 142 latlon2: (53.0, 1.0)\n    test 143 philam2: (0.93, 0.02)\n    test 144 compassAngleTo: 31\n    test 145 compassAngleTo: 45\n\n    test 146 boundsOf: <class 'pygeodesy.namedTuples.Bounds2Tuple'>\n    test 147 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 148 latlon2: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 149 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 150 isequalTo: <type 'bool'>\n    test 151 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 152 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 153 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 154 xyz3: <type 'tuple'>\n    test 155 xyzh: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 156 compassAngleTo: <type 'float'>\n    test 157 cosineLawTo: <type 'float'>\n    test 158 euclideanTo: <type 'float'>\n    test 159 flatLocalTo: <type 'float'>\n    test 160 flatPolarTo: <type 'float'>\n    test 161 haversineTo: <type 'float'>\n    test 162 hubenyTo: <type 'float'>\n    test 163 vincentysTo: <type 'float'>\n    test 164 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 165 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 166 toLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 167 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 168 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 169 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 170 toVector: (3922384.659522, 0.0, 5020423.423198)\n    test 171 toVector3d: (0.61566, 0.0, 0.78801)\n    test 172 trilaterate5 (pygeodesy.sphericalNvector) .min: 223.305\n    test 173 trilaterate5 (pygeodesy.sphericalNvector) .point: 42.67456065°N, 002.49539502°E\n    test 174 trilaterate5 (pygeodesy.sphericalNvector) .min- is .maxPoint: True\n    test 175 trilaterate5 (pygeodesy.sphericalNvector) .n: 1\n    test 176 trilaterate5 (pygeodesy.sphericalNvector) .error: sphericalNvector.LatLon.trilaterate5(area=True), MRO(nvectorBase.LatLonNvectorBase, sphericalBase.LatLonSphericalBase, latlonBase.LatLonBase, named._NamedBase, ecefLocals._EcefLocal, named._Named): not implemented\n\n    test 177 radii11: Radii11Tuple(rA=7701.409157, rB=1361.530045, rC=499.257353, cR=4886.694635, rIn=739.915482, riS=179.523525, roS=6087.250896, a=1860.787398, b=8200.666509, c=9062.939201, s=9562.196554)\n    test 178 circum4 (pygeodesy.sphericalNvector) .radius: 3185505.323  FAILED, KNOWN, expected 3184256.748\n    test 179 circum4 (pygeodesy.sphericalNvector) .center: 42.674561°N, 002.495395°E, -3185503.45m  FAILED, KNOWN, expected 43.054367°N, 002.942573°E, -3183993.92m\n    test 180 circum4 (pygeodesy.sphericalNvector) .rank: 3\n    test 181 circum4 (pygeodesy.sphericalNvector) .residuals: ()\n    test 182 circum4 (pygeodesy.sphericalNvector) .d1: 4886.695  FAILED, KNOWN, expected 57818.033\n    test 183 circum4 (pygeodesy.sphericalNvector) .d2: 4886.695  FAILED, KNOWN, expected 57834.176\n    test 184 circum4 (pygeodesy.sphericalNvector) .d3: 4886.695  FAILED, KNOWN, expected 57830.992\n    test 185 circum4 (pygeodesy.sphericalNvector) .datum: name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84\n    test 186 circum4 (pygeodesy.sphericalNvector) .Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 187 radii11: Radii11Tuple(rA=328257.82694, rB=782282.176109, rC=782282.176109, cR=782304.746354, rIn=325773.738834, riS=85162.638484, roS=INF, a=1564564.352218, b=1110540.003049, c=1110540.003049, s=1892822.179158)\n    test 188 circin6 (pygeodesy.sphericalNvector) .rB+rC: 1564564.352\n    test 189 circin6 (pygeodesy.sphericalNvector) .rC+pA: 1110540.003\n    test 190 circin6 (pygeodesy.sphericalNvector) .rA+rB: 1110540.003\n    test 191 circin6 (pygeodesy.sphericalNvector) .radius: 325773.739  FAILED, KNOWN, expected 325058.721\n    test 192 circin6 (pygeodesy.sphericalNvector) .center: 02.938473°N, 002.942346°E, -40128.57m  FAILED, KNOWN, expected 02.948531°N, 002.932537°E, -40041.19m\n    test 193 circin6 (pygeodesy.sphericalNvector) .deltas: (0.0, 0.0, 0.094337)  FAILED, KNOWN, expected (0.0, 0.0, 0.090491)\n    test 194 circin6 (pygeodesy.sphericalNvector) .cA: 05.019001°N, 005.038369°E, -48209.76m  FAILED, KNOWN, expected 05.04314°N, 005.014578°E, -48104.09m\n    test 195 circin6 (pygeodesy.sphericalNvector) .cB: 00.0°N, 002.951508°E, -20185.00m  FAILED, KNOWN, expected 00.0°N, 002.941713°E, -20168.62m\n    test 196 circin6 (pygeodesy.sphericalNvector) .cC: 02.951508°N, 000.0°E, -20185.00m  FAILED, KNOWN, expected 02.961566°N, 000.0°E, -20113.46m\n    test 197 circin6 (pygeodesy.sphericalNvector) .dA: 327983.380  FAILED, KNOWN, expected 327263.596\n    test 198 circin6 (pygeodesy.sphericalNvector) .dB: 326745.373  FAILED, KNOWN, expected 326036.153\n    test 199 circin6 (pygeodesy.sphericalNvector) .dC: 326745.373  FAILED, KNOWN, expected 326020.432\n\n    test 200 area cw/ccw: 1.0\n\n    testVectorial(pygeodesy.sphericalNvector, 25.05.27)\n    test 201 crossTrackDistanceTo: -305.67\n    test 202 crossTrackDistanceTo: -307.55\n\n    test 203 toLatLon: 44.995674°N, 045.0°E\n    test 204 toNvector: (0.50004, 0.50004, 0.70705)\n    test 205 isequalTo: False\n    test 206 isequalTo: True\n    test 207 length: 0.99992449715\n    test 208 euclid: 0.99995577\n    test 209 length: 1.00\n    test 210 euclid: 1.0000\n    test 211 meanOf: 44.995674°N, 045.0°E\n    test 212 meanOf: LatLon\n    test 213 apply: (0.5, 0.5, 0.707)\n    test 214 init: (0.5, 0.5, 0.707)\n    test 215 i***: (0.5, 0.5, 0.707)\n    test 216 abs: 0.99992449715\n    test 217 sumOf: (52.70504, 0.61904, 0.70705)\n    test 218 sumOf: Nv\n    test 219 sumOf: sumOf\n    test 220 length: 52.7134151513\n    test 221 sizeof: 205  FAILED, KNOWN, expected 128\n    test 222 length: 52.2051356286\n    test 223 sizeof: 320  FAILED, KNOWN, expected 247\n    test 224 copy: True\n    test 225 length: 52.2051356286\n    test 226 sizeof: 320\n\n    test 227 toCartesian: [3185744.919, 3185744.919, 4504643.315]\n    test 228 toLatLon: 44.995674°N, 045.0°E, -0.00m  FAILED, KNOWN, expected 44.995674°N, 045.0°E\n    test 229 toNvector: (0.50004, 0.50004, 0.70705)  FAILED, KNOWN, expected (0.50004, 0.50004, 0.70705, -0.00)\n\n    test 230 intersection: 02.499372°N, 002.5°E\n\n    test 231 intersection1: 02.499372°N, 002.5°E\n    test 232 intersection2: 02.499372°S, 177.5°W\n\n    test 233 isenclosedBy: True\n    test 234 isenclosedBy*: True\n    test 235 isenclosedBy: True\n    test 236 isenclosedBy*: True\n\n    test 237 iswithin: False\n    test 238 iswithin: True\n\n    test 239 nearestOn: 51.0°N, 001.0°E\n    test 240 nearestOn: 50.987°N, 000.298°W\n    test 241 nearestOn: 51.0°N, 002.0°E\n    test 242 nearestOn: 50.995°N, 002.655°E\n    test 243 nearestOn: 51.0°N, 001.9°E\n    test 244 nearestOn: True\n    test 245 distanceTo: 42.712\n    test 246 nearestOn: 51.0°N, 002.0°E\n    test 247 nearestOn: True\n    test 248 nearestOn: 00.0°N, 000.0°E\n    test 249 nearestOn: True\n    test 250 nearestOn: 00.0°N, 020.0°E\n    test 251 nearestOn: True\n    test 252 nearestOn: 02.0°N, 002.0°E\n    test 253 nearestOn: 02.0°N, 002.0°E\n\n    test 254 neareston6: (LatLon(45°00′00.0″N, 001°00′00.0″E), 4773243.784965, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E))\n    test 255 neareston6: (LatLon(45°30′03.93″N, 002°00′00.0″E), 38968.531578, 1.501091, 2, LatLon(45°00′00.0″N, 002°00′00.0″E), LatLon(46°00′00.0″N, 002°00′00.0″E))\n\n    test 256 BasseC: 47.3038°N, 002.5721°W\n    test 257 BasseH: 47.311067°N, 002.528617°W\n    test 258 triangulate: 47.323667°N, 002.568501°W\n    test 259 triangulate: True\n\n    test 260 trilaterate: 37.419078°N, 121.960579°W\n    test 261 trilaterate: True\n    test 262 trilaterate: 08.068912°S, 034.888699°W\n    test 263 trilaterate: True\n    test 264 trilaterate: 08.068912°S, 034.888695°W  FAILED, KNOWN, expected 08.068912°S, 034.888699°W\n    test 265 trilaterate: True\n    test 266 trilaterate: 42.67456065°N, 002.49539502°E\n    test 267 trilaterate: distance1 (5110), distance2 (5110), distance3 (5110), point1 (LatLon(42°41′19.82″N, 002°26′19.89″E)), point2 (LatLon(42°38′07.52″N, 002°31′21.25″E)) or point3 (LatLon(42°38′43.44″N, 002°30′17.32″E)): no intersection (useZ=False, wrap=False, z=-8.13526e-05)\n\n    testNvector(pygeodesy.sphericalNvector, 25.05.27)\n    test 268 sumOf: Nvector\n    test 269 ecef.x, .y, .z: 3185744.91853, 3185744.91853, 4504643.3148\n    test 270 ecef.lat, .lon: 44.995674, 45.0\n    test 271 ecef.height: -0.0\n    test 272 ecef.M: -0.707106781, -0.499962243, 0.500037754, 0.707106781, -0.499962243, 0.500037754, 0.0, 0.707160174, 0.707053385\n    test 273 nearestOn: (0.0, 0.0, 0.0)\n    test 274 nearestOn: True\n    test 275 nearestOn: (100.0, 100.0, 100.0)\n    test 276 nearestOn: True\n    test 277 iscolinearWith: False\n    test 278 iscolinearWith: True\n    test 279 nearestOn: (0.0, 0.0, 0.0)\n    test 280 nearestOn: True\n    test 281 nearestOn: (100.0, 100.0, 100.0)\n    test 282 nearestOn: True\n    test 283 iscolinearWith: False\n    test 284 iscolinearWith: True\n\n    testSpherical(pygeodesy.sphericalNvector, 25.05.27)\n    test 285 isSpherical: True\n    test 286 isEllipsoidal: False\n    test 287 datum: name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms../test/testSpherical.py:318: DeprecationWarning: method L{rhumbBearingTo<pygeodesy.sphericalNvector.LatLon.rhumbBearingTo>} has been DEPRECATED, use method C{.rhumbAzimuthTo}.\n  b = p.rhumbBearingTo(q)  # rhumbAzimuthTo\n./test/testLatLon.py:276: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.sphericalTrigonometry.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', p.cosineAndoyerLambertTo(q), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:277: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.sphericalTrigonometry.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', q.cosineAndoyerLambertTo(p), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:279: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.sphericalTrigonometry.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', p.cosineForsytheAndoyerLambertTo(q), '124801.098' if Sph else '125205.965', fmt='%.3f')\n./test/testLatLon.py:280: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.sphericalTrigonometry.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', q.cosineForsytheAndoyerLambertTo(p), '124801.098' if Sph else '125205.965', fmt='%.3f')\nWGS84\n    test 288 ellipsoid: name='SphereAuthalic', a=6371000, f=0, f_=0, b=6371000\n    test 289 datum: name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84\n    test 290 isSpherical: True\n    test 291 isEllipsoidal: False\n    test 292 intersection1: 50.907608°N, 004.508575°E\n    test 293 intersection1: 50°54′27.39″N, 004°30′30.87″E\n    test 294 intersection1: True\n    test 295 intersection2: True\n    test 296 intersection2: 43.5719°N, 116.188757°W\n    test 297 intersection2: 43°34′18.84″N, 116°11′19.53″W\n    test 298 intersection3: 51.882166°N, 000.267801°E\n    test 299 intersection4: 00.0°S, 026.565051°E  FAILED, KNOWN, expected 00.0°N, 026.565051°E\n    test 300 intersection5: 26.565051°N, 000.0°E  FAILED, KNOWN, expected 26.565051°N, 000.0°W\n    test 301 intersection6: 50.907809°N, 004.50841°E\n    test 302 intersection7: 01°52′46.41″S, 005°39′06.87″E\n    test 303 intersection8: 28°15′40.35″S, 032°14′33.2″E\n    test 304 toward 1,1 N,E nearest: 00.999848°N, 001.0°E\n    test 305 toward 1,1 E,N nearest: 00.999848°N, 001.0°E\n    test 306 toward 1,1 N,E antipodal: 00.999848°S, 179.0°W\n    test 307 toward/away 1,1 N,W antipodal: 00.999848°N, 001.0°E\n    test 308 toward/away 1,1 W,N antipodal: 00.999848°S, 179.0°W\n    test 309 toward/away 1,1 S,E antipodal: 00.999848°S, 179.0°W\n    test 310 toward/away 1,1 E,S antipodal: 00.999848°N, 001.0°E\n    test 311 away 1,1 S,W antipodal: 00.999848°S, 179.0°W\n    test 312 away 1,1 W,S antipodal: 00.999848°S, 179.0°W\n    test 313 1E/90E N,E antipodal: 00.017454°N, 001.0°E\n    test 314 1E/90E N,E nearest: 00.017454°N, 179.0°W\n    test 315 brng+end 1a: 01.000305°N, 002.0°E\n    test 316 brng+end 1b: 01.000305°N, 002.0°E\n    test 317 brng+end 2a: 01.000305°S, 178.0°W\n    test 318 brng+end 2b: 01.000305°S, 178.0°W\n    test 319 intersection7: 02.499372°N, 002.5°E\n    test 320 maxLat0: 90.0\n    test 321 maxLat1: 89.0\n    test 322 maxLat90: 0.0\n    test 323 minLat0: -90.0\n    test 324 minLat1: -89.0\n    test 325 minLat90: -0.0\n    test 326 parse: 00.0°N, 000.0°E\n\n    test 327 intersecant2: 04.260346°N, 006.272173°E and 01.250608°S, 000.749094°E\n    test 328 intersecant2: 700000\n    test 329 intersecant2: 699999  FAILED, KNOWN, expected 700000\n    test 330 intersecant2: 45.014  FAILED, KNOWN, expected 45.000\n\n    test 331 intersecant2: 04.261539°N, 006.265474°E and 00.0°N, 002.0°E\n    test 332 intersecant2: 699248  FAILED, KNOWN, expected 700000\n    test 333 intersecant2: 598698  FAILED, KNOWN, expected 700000\n    test 334 intersecant2: 45.000\n\n    test 335 intersecant2: 04.262363°N, 006.2663°E and 01.258709°S, 000.74119°E\n    test 336 intersecant2: 699302  FAILED, KNOWN, expected 700000\n    test 337 intersecant2: 700080  FAILED, KNOWN, expected 700000\n    test 338 intersecant2: 45.021  FAILED, KNOWN, expected 45.000\n\n    test 339 intersecant4: 02.375133°N, 024.894142°E and 25.0°S, 000.0°E  FAILED, KNOWN, expected 00.0°N, 025.0°E and 25.0°S, 000.0°E\n    test 340 intersecant4: 00.0°N, 025.0°E and 25.0°S, 000.0°E\n    test 341 intersecant4: 02.375133°N, 024.894142°E and 25.0°S, 000.0°E  FAILED, KNOWN, expected 00.0°N, 025.0°E and 25.0°S, 000.0°E\n    test 342 intersecant4: 00.0°N, 025.0°E and 25.0°S, 000.0°E\n\n    test 343 intersecant4: 00.725365°N, 026.558638°E and 25.747°S, 000.826763°W  FAILED, KNOWN, expected 00.0°N, 025.0°E and 25.0°S, 000.0°E\n    test 344 intersecant4: 00.725365°N, 026.558638°E and 25.747°S, 000.826763°W  FAILED, KNOWN, expected 00.0°N, 025.0°E and 25.0°S, 000.0°E\n    test 345 intersecant4: 00.021635°S, 025.811619°E and 25.0°S, 000.0°E  FAILED, KNOWN, expected 00.0°N, 025.0°E and 25.0°S, 000.0°E\n    test 346 intersecant4: 00.021635°S, 025.811619°E and 25.0°S, 000.0°E  FAILED, KNOWN, expected 00.0°N, 025.0°E and 25.0°S, 000.0°E\n\n    test 347 intersecant4: 00.807845°N, 026.641126°E and 25.0°S, 000.0°E  FAILED, KNOWN, expected 00.0°N, 025.0°E and 25.0°S, 000.0°E\n    test 348 intersecant4: 01.624807°N, 026.572609°E and 25.0°S, 000.0°E  FAILED, KNOWN, expected 00.0°N, 025.0°E and 25.0°S, 000.0°E\n    test 349 intersecant4: 00.807845°N, 026.641126°E and 25.0°S, 000.0°E  FAILED, KNOWN, expected 00.0°N, 025.0°E and 25.0°S, 000.0°E\n    test 350 intersecant4: 01.624807°N, 026.572609°E and 25.0°S, 000.0°E  FAILED, KNOWN, expected 00.0°N, 025.0°E and 25.0°S, 000.0°E\n\n    test 351 intersecant2.1: LatLon(04°04′02.63″S, 029°43′21.16″W) Napier: 3333000.000\n    test 352 intersecant2.1: LatLon(29°58′27.6″N, 000°01′46.65″W) Napier: 3333000.000\n    test 353 intersecant2.1: LatLon(29°58′27.6″N, 000°01′46.65″W) : 3332999.886  FAILED, KNOWN, expected 3333000.000\n    test 354 intersecant2.1: LatLon(02°29′47.81″S, 028°30′01.84″W) : 3180236.460  FAILED, KNOWN, expected 3333000.000\n\n    test 355 intersecant2.2: LatLon(04°04′02.63″S, 029°43′21.16″E) Napier: 3333000.000\n    test 356 intersecant2.2: LatLon(29°58′27.6″N, 000°01′46.65″E) Napier: 3333000.000\n    test 357 intersecant2.2: LatLon(02°29′47.81″S, 028°30′01.84″E) : 3180236.460  FAILED, KNOWN, expected 3333000.000\n    test 358 intersecant2.2: LatLon(29°58′27.6″N, 000°01′46.65″E) : 3332999.886  FAILED, KNOWN, expected 3333000.000\n\n    test 359 intersecant2.3: LatLon(04°04′02.63″N, 029°43′21.16″W) Napier: 3333000.000\n    test 360 intersecant2.3: LatLon(29°58′27.6″S, 000°01′46.65″W) Napier: 3333000.000\n    test 361 intersecant2.3: LatLon(29°58′27.6″S, 000°01′46.65″W) : 3332999.886  FAILED, KNOWN, expected 3333000.000\n    test 362 intersecant2.3: LatLon(02°29′47.81″N, 028°30′01.84″W) : 3180236.460  FAILED, KNOWN, expected 3333000.000\n\n    test 363 intersecant2.4: LatLon(29°50′37.22″S, 002°56′03.42″W) Napier: 3333000.000\n    test 364 intersecant2.4: LatLon(00°29′30.34″N, 029°58′14.48″E) Napier: 3333000.000\n    test 365 intersecant2.4: LatLon(00°08′01.47″N, 029°38′09.18″E) : 3295394.784  FAILED, KNOWN, expected 3333000.000\n    test 366 intersecant2.4: LatLon(29°31′09.01″S, 002°27′32.93″W) : 3292733.874  FAILED, KNOWN, expected 3333000.000\n\n    test 367 intersecant2.5: LatLon(00°01′46.69″S, 029°58′27.6″E) Napier: 3333000.000\n    test 368 intersecant2.5: LatLon(29°58′27.59″S, 000°02′03.16″E) Napier: 3333000.000\n    test 369 intersecant2.5: LatLon(01°38′23.65″S, 028°34′45.37″E) : 3182660.966  FAILED, KNOWN, expected 3333000.000\n    test 370 intersecant2.5: LatLon(29°58′27.58″S, 000°02′03.17″E) : 3332999.848  FAILED, KNOWN, expected 3333000.000\n\n    test 371 intersecant2.6: LatLon(05°08′54.91″S, 029°34′09.94″E) Napier: 3333000.000\n    test 372 intersecant2.6: LatLon(28°36′28.71″S, 009°21′04.99″E) Napier: 3333000.000\n    test 373 intersecant2.6: LatLon(11°51′13.84″S, 024°23′59.0″E) : 2998636.503  FAILED, KNOWN, expected 3333000.000\n    test 374 intersecant2.6: LatLon(26°53′11.53″S, 011°08′26.36″E) : 3218384.739  FAILED, KNOWN, expected 3333000.000\n    test 375 isenclosedBy: True\n    test 376 isenclosedBy*: True\n    test 377 isenclosedBy: True\n    test 378 isenclosedBy*: True\n    test 379 rhumbBearingTo: 116.722\n    test 380 rhumbDestination: 50.964155°N, 001.853°E\n    test 381 rhumbDestination: True\n    test 382 rhumbDistanceTo: 40307.8\n    test 383 rhumbMidpointo-0.5: 51.0455°N, 001.595727°E\n    test 384 rhumbMidpointo: True\n    test 385 rhumbMidpointo-0.0: 51.127°N, 001.338°E\n    test 386 rhumbMidpointo-0.25: 51.08625°N, 001.46692°E\n    test 387 rhumbMidpointo-0.75: 51.00475°N, 001.72442°E\n    test 388 rhumbMidpointo-1.0: 50.964°N, 001.853°E\n    test 389 rhumbMidpointo-2.0: 50.801°N, 002.366196°E\n    test 390 areaOf: 8.66605875e+09\n    test 391 perimeterOf: 3.78258541e+05\n    test 392 perimeterOf: 2.67063461e+05\n    test 393 areaOf: 6.18e+09\n    test 394 perimeterOf: 3.79639757e+05\n    test 395 perimeterOf: 2.68444678e+05\n    test 396 nearestOn3: 46.000996°N, 001.353049°E\n    test 397 nearestOn3: 569987.49\n    test 398 distanceTo: 569987.49\n    test 399 nearestOn3: 46.0°N, 002.0°E\n    test 400 nearestOn3: 134989.80\n    test 401 distanceTo: 134989.80\n    test 402 nearestOn3: 45.330691°N, 001.318551°E\n    test 403 distance: 64856.28\n    test 404 distanceTo: 64856.28\n    test 405 compassAngleTo: 304.54\n    test 406 difference: 1000.53\n    test 407 ispolar: True\n    test 408 ispolar*: True\n    test 409 ispolar: False  FAILED, KNOWN, expected True\n    test 410 ispolar*: False  FAILED, KNOWN, expected True\n    test 411 ispolar: True\n    test 412 ispolar*: True\n    test 413 nearestOn: 01.5°N, 001.5°E, +149.99m\n    test 414 nearestOn3: 01.5°N, 001.5°E, +149.99m\n    test 415 midpointTo: 50.5363°N, 001.2746°E, +150.00m\n    test 416 intermediateTo: 50.5363°N, 001.2746°E, +150.00m\n\n    testLatLon(pygeodesy.sphericalTrigonometry, 25.08.31)\n    test 417 isEllipsoidal: False\n    test 418 isSpherical: True\n    test 419 lat/lonDMS: 52.20472°N, 000.14056°E\n    test 420 lat/lonDMS F_DM: 52°12.283′N, 000°08.434′E\n    test 421 lat/lonDMS F_DM: 52°12.2832′N, 000°08.4336′E\n    test 422 lat/lonDMS F_DMS: 52°12′17″N, 000°08′26″E\n    test 423 lat/lonDMS F_DMS: 52°12′17.0″N, 000°08′26.0″E\n    test 424 lat/lonDMS F_RAD: 0.911144N, 0.002453E\n    test 425 isequalTo: True\n    test 426 isequalTo: True\n    test 427 latlon2: 52.20472, 0.14056\n    test 428 latlon2: 52.2047, 0.1406\n    test 429 latlon2: 52.205, 0.141\n    test 430 latlon2: 52.2, 0.14\n    test 431 latlon2: 52.2, 0.1\n    test 432 latlon2: 52.0, 0.0\n    test 433 chordTo: 12036677.26\n    test 434 chordTo: 12036463.78\n    test 435 initialBearingTo: 156.1666\n    test 436 initialBearingTo: 65.8921\n    test 437 initialBearingTo: 0.0\n    test 438 initialBearingTo: 180.0\n    test 439 finalBearingTo: 157.8904\n    test 440 finalBearingTo: 93.8581\n    test 441 bearingTo2: 156.1666, 157.8904\n    test 442 ispolar: True\n    test 443 copy: True\n    test 444 __eq__: True\n    test 445 __ne__: False\n    test 446 equirectangularTo: 404329.56\n    test 447 distanceTo: 404279.720589\n    test 448 distanceTo: 404279.720589\n    test 449 distanceTo: 2145\n    test 450 antipodal: False\n    test 451 distanceTo dateline: 19967403.498  FAILED, KNOWN, expected 19119590.551\n    test 452 distanceTo unrolled: 19967403.498  FAILED, KNOWN, expected 19119590.551\n    test 453 antipodal: False\n    test 454 distanceTo dateline: 9491735\n    test 455 distanceTo unrolled: 9491735\n    test 456 distanceTo: 18013602.92\n    test 457 distanceTo: 20015114.35\n    test 458 intermediateTo: 51.372084°N, 000.707337°E\n    test 459 intermediateTo: True\n    test 460 intermediateTo: 404279.721\n    test 461 intermediateTo+5: 35.160975°N, 008.989542°E\n    test 462 intermediateTo+5: 5.000\n    test 463 intermediateTo-4: 64.911647°N, 013.726301°W\n    test 464 intermediateTo-4: 4.000\n    test 465 intermediateTo-h: 125.000\n    test 466 midpointTo: 50.536327°N, 001.274614°E\n    test 467 destination: 51.513546°N, 000.098345°W\n    test 468 destination: 51°30′49″N, 000°05′54″W\n    test 469 destination: 34°37′N, 116°33′W\n    test 470 destination: 34.613647°N, 116.55116°W\n    test 471 destination: 0.604122N, 2.034201W\n    test 472 destination: 31.96383509°N, 064.37329146°E\n    test 473 alongTrackDistanceTo: type(end) (96): incompatible with sphericalTrigonometry.LatLon.alongTrackDistanceTo(end)  FAILED, KNOWN, expected incompatible ...\n    test 474 alongTrackDistanceTo: 62331.58\n    test 475 alongTrackDistanceTo: 99.588\n    test 476 alongTrackDistanceTo: -7702.7\n    test 477 alongTrackDistanceTo: 7587.6\n    test 478 crossTrackDistanceTo: type(end) (96): incompatible with sphericalTrigonometry.LatLon.crossTrackDistanceTo(end)  FAILED, KNOWN, expected incompatible ...\n    test 479 crossTrackDistanceTo: -307.55\n    test 480 crossTrackDistanceTo: 7.4524\n    test 481 greatCircle: (-0.79408, 0.12856, 0.59406)\n    test 482 neareston6: (LatLon(45°00′00.0″N, 001°00′00.0″E), 4773243.784965, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E))  FAILED, KNOWN, expected (LatLon(45°00′00.0″N, 001°00′00.0″E), 4755443.4294, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E))\n    test 483 neareston6: (LatLon(45°30′03.93″N, 002°00′00.0″E), 38968.531578, 1.501091, 2, LatLon(45°00′00.0″N, 002°00′00.0″E), LatLon(46°00′00.0″N, 002°00′00.0″E))  FAILED, KNOWN, expected (LatLon(45°30′03.94″N, 002°00′00.0″E), 39078.729285, 1.501072, 2, LatLon(45°00′00.0″N, 002°00′00.0″E), LatLon(46°00′00.0″N, 002°00′00.0″E))\n    test 484 chordTo: 124799.103\n    test 485 cosineAndoyerLambertTo: 124801.098\n    test 486 cosineAndoyerLambertTo: 124801.098\n    test 487 cosineForsyheAndoyerLambertTo: 124801.098\n    test 488 cosineForsyheAndoyerLambertTo: 124801.098\n    test 489 cosineLawTo: 124801.098\n    test 490 cosineLawTo: 124801.098\n    test 491 equirectangularTo: 124804.754\n    test 492 equirectangularTo: 124804.754\n    test 493 euclideanTo: 130015.089\n    test 494 euclideanTo: 130015.089\n    test 495 flatLocalTo: 124804.754\n    test 496 flatLocalTo: 124804.754\n    test 497 flatPolarTo: 133663.257\n    test 498 flatPolarTo: 133663.257\n    test 499 hartzell: 53.3206°N, 001.7297°W\n    test 500 hartzell: 53.3206°N, 001.7297°W\n    test 501 height4: 0.0\n    test 502 height4: (3803904.2, -114870.8, 5109488.3, 0.0)\n    test 503 height4: 53°19′14.2″N, 001°43′46.9″W\n    test 504 height4: 53°19′14.2″N, 001°43′46.9″W\n    test 505 haversineTo: 124801.098\n    test 506 haversineTo: 124801.098\n    test 507 hubenyTo: <bound method LatLon.flatLocalTo of LatLon(53°19′14.16″N, 001°43′46.92″W)>\n    test 508 hubenyTo: <bound method LatLon.flatLocalTo of LatLon(53°11′19.32″N, 000°08′00.24″E)>\n    test 509 thomasTo: 124801.098\n    test 510 thomasTo: 124801.098\n    test 511 vincentysTo: 124801.098\n    test 512 vincentysTo: 124801.098\n    test 513 isclockwise: False\n    test 514 isclockwise*: False\n    test 515 isclockwise: True\n    test 516 isclockwise*: True\n    test 517 isclockwise: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 518 isclockwise*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 519 isclockwise: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 520 isclockwise*: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 521 isconvex: False\n    test 522 isconvex*: False\n    test 523 isconvex: True\n    test 524 isconvex*: True\n    test 525 isconvex: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 526 isconvex*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 527 isenclosedBy1: True\n    test 528 isenclosedBy1*: True\n    test 529 isenclosedBy2: False\n    test 530 isenclosedBy2*: False\n    test 531 isenclosedBy3: False\n    test 532 isenclosedBy3*: False\n    test 533 isenclosedBy4: False\n    test 534 isenclosedBy4*: False\n    test 535 isenclosedBy5: False\n    test 536 isenclosedBy5*: False\n    test 537 isenclosedBy6: True\n    test 538 isenclosedBy6*: True\n    test 539 isenclosedBy7: True\n    test 540 isenclosedBy7*: True\n    test 541 isenclosedBy-CCW: True\n    test 542 isenclosedBy-CW : True\n    test 543 isenclosedBy-CCW: True\n    test 544 initialBearingTo: 102.432182\n    test 545 compassAngleTo: 100.017\n    test 546 compassAngleTo: 105.599\n    test 547 initialBearingTo: 288.715918\n    test 548 compassAngleTo: 280.017\n    test 549 compassAngleTo: 285.599\n    test 550 equirectangularTo: 592.185\n    test 551 distanceTo: 591.831\n    test 552 bearingTo: 0.0\n    test 553 compassAngleTo: 0.0\n    test 554 bearingTo: 45.0\n    test 555 compassAngleTo: 45.0\n    test 556 bearingTo: 90.0\n    test 557 compassAngleTo: 90.0\n    test 558 bearingTo: 180.0\n    test 559 compassAngleTo: 180.0\n    test 560 bearingTo: 225.0\n    test 561 compassAngleTo: 225.0\n    test 562 bearingTo: 315.0\n    test 563 compassAngleTo: 315.0\n    test 564 bearingTo: 270.0\n    test 565 compassAngleTo: 270.0\n    test 566 bearingTo: 0.0  FAILED, KNOWN, expected 359.4\n    test 567 compassAngleTo: 359.4\n    test 568 latlon2: (53.0, 1.0)\n    test 569 philam2: (0.93, 0.02)\n    test 570 bearingTo: 31\n    test 571 compassAngleTo: 31\n    test 572 compassAngleTo: 45\n\n    test 573 boundsOf: <class 'pygeodesy.namedTuples.Bounds2Tuple'>\n    test 574 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 575 latlon2: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 576 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 577 isequalTo: <type 'bool'>\n    test 578 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 579 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 580 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 581 xyz3: <type 'tuple'>\n    test 582 xyzh: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 583 compassAngleTo: <type 'float'>\n    test 584 cosineLawTo: <type 'float'>\n    test 585 euclideanTo: <type 'float'>\n    test 586 flatLocalTo: <type 'float'>\n    test 587 flatPolarTo: <type 'float'>\n    test 588 haversineTo: <type 'float'>\n    test 589 hubenyTo: <type 'float'>\n    test 590 vincentysTo: <type 'float'>\n    test 591 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 592 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 593 toLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 594 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 595 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 596 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 597 toNvector: (0.61566, 0.0, 0.78801)\n    test 598 toVector: (3922384.659522, 0.0, 5020423.423198)\n    test 599 toVector3d: (0.61566, 0.0, 0.78801)\n\n    test 600 trilaterate5 (pygeodesy.sphericalTrigonometry) .min: 313.671\n    test 601 trilaterate5 (pygeodesy.sphericalTrigonometry) .point: 42.66937229°N, 002.48639477°E\n    test 602 trilaterate5 (pygeodesy.sphericalTrigonometry) .max: 1591.044\n    test 603 trilaterate5 (pygeodesy.sphericalTrigonometry) .point: 42.65153054°N, 002.46822157°E\n    test 604 trilaterate5 (pygeodesy.sphericalTrigonometry) .n: 3\n    test 605 trilaterate5 (pygeodesy.sphericalTrigonometry) .min: 133.815\n    test 606 trilaterate5 (pygeodesy.sphericalTrigonometry) .max: 160.242\n    test 607 trilaterate5 (pygeodesy.sphericalTrigonometry) .point: 42.67817811°N, 002.49966641°E\n    test 608 trilaterate5 (pygeodesy.sphericalTrigonometry) .n: 2\n    test 609 trilaterate5 (pygeodesy.sphericalTrigonometry) .min: 2403.293\n    test 610 trilaterate5 (pygeodesy.sphericalTrigonometry) .max: 2403.293\n    test 611 trilaterate5 (pygeodesy.sphericalTrigonometry) .point: 42.66135649°N, 002.47981645°E\n    test 612 trilaterate5 (pygeodesy.sphericalTrigonometry) .min- is .maxPoint: True\n    test 613 trilaterate5 (pygeodesy.sphericalTrigonometry) .n: 1\n    test 614 trilaterate5 (pygeodesy.sphericalTrigonometry) .min: 1340.608\n    test 615 trilaterate5 (pygeodesy.sphericalTrigonometry) .point: 42.69128229°N, 002.50129001°E\n    test 616 trilaterate5 (pygeodesy.sphericalTrigonometry) .max: 1499.220\n    test 617 trilaterate5 (pygeodesy.sphericalTrigonometry) .point: 42.64295864°N, 002.44242391°E\n    test 618 trilaterate5 (pygeodesy.sphericalTrigonometry) .n: 3\n    test 619 radii11: Radii11Tuple(rA=7237.243793, rB=1825.695409, rC=2.255158, cR=57690.493993, rIn=57.33247, riS=2.087691, roS=2.443616, a=1827.950567, b=7239.49895, c=9062.939201, s=9065.194359)\n    test 620 circum3 (pygeodesy.sphericalTrigonometry) .radius: 57690.494  FAILED, KNOWN, expected 57792.067\n    test 621 circum3 (pygeodesy.sphericalTrigonometry) .center: 43.051859°N, 002.94463°E, -261.20m  FAILED, KNOWN, expected 43.053532°N, 002.943255°E, -261.66m\n    test 622 circum3 (pygeodesy.sphericalTrigonometry) .deltas: (0.0, 0.0, 29.896)  FAILED, KNOWN, expected (0.0, 0.0, 11.383)\n    test 623 circum3 (pygeodesy.sphericalTrigonometry) .d1: 57691.282  FAILED, KNOWN, expected 57792.858\n    test 624 circum3 (pygeodesy.sphericalTrigonometry) .d2: 57691.282  FAILED, KNOWN, expected 57792.859\n    test 625 circum3 (pygeodesy.sphericalTrigonometry) .d3: 57691.282  FAILED, KNOWN, expected 57792.859\n    test 626 circum3 (pygeodesy.sphericalTrigonometry) .datum: name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84\n    test 627 circum3 (pygeodesy.sphericalTrigonometry) .Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n\n    test 628 radii11: Radii11Tuple(rA=7237.243793, rB=1825.695409, rC=2.255158, cR=57690.493993, rIn=57.33247, riS=2.087691, roS=2.443616, a=1827.950567, b=7239.49895, c=9062.939201, s=9065.194359)\n    test 629 circum4 (pygeodesy.sphericalTrigonometry) .radius: 3185634.993  FAILED, KNOWN, expected 3184256.748\n    test 630 circum4 (pygeodesy.sphericalTrigonometry) .center: 43.051859°N, 002.94463°E, -3185373.78m  FAILED, KNOWN, expected 43.054367°N, 002.942573°E, -3183993.92m\n    test 631 circum4 (pygeodesy.sphericalTrigonometry) .rank: 3\n    test 632 circum4 (pygeodesy.sphericalTrigonometry) .residuals: ()\n    test 633 circum4 (pygeodesy.sphericalTrigonometry) .d1: 57691.283  FAILED, KNOWN, expected 57818.033\n    test 634 circum4 (pygeodesy.sphericalTrigonometry) .d2: 57691.283  FAILED, KNOWN, expected 57834.176\n    test 635 circum4 (pygeodesy.sphericalTrigonometry) .d3: 57691.283  FAILED, KNOWN, expected 57830.992\n    test 636 circum4 (pygeodesy.sphericalTrigonometry) .datum: name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84\n    test 637 circum4 (pygeodesy.sphericalTrigonometry) .Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 638 radii11: Radii11Tuple(rA=328257.82694, rB=782282.176109, rC=782282.176109, cR=782304.746354, rIn=325773.738834, riS=85162.638484, roS=INF, a=1564564.352218, b=1110540.003049, c=1110540.003049, s=1892822.179158)\n    test 639 circin6 (pygeodesy.sphericalTrigonometry) .rB+rC: 1564564.352\n    test 640 circin6 (pygeodesy.sphericalTrigonometry) .rC+pA: 1110540.003\n    test 641 circin6 (pygeodesy.sphericalTrigonometry) .rA+rB: 1110540.003\n    test 642 circin6 (pygeodesy.sphericalTrigonometry) .radius: 325773.739  FAILED, KNOWN, expected 325058.721\n    test 643 circin6 (pygeodesy.sphericalTrigonometry) .center: 02.938473°N, 002.942346°E, -40128.57m  FAILED, KNOWN, expected 02.948531°N, 002.932537°E, -40041.19m\n    test 644 circin6 (pygeodesy.sphericalTrigonometry) .deltas: (0.0, 0.0, 0.094337)  FAILED, KNOWN, expected (0.0, 0.0, 0.090491)\n    test 645 circin6 (pygeodesy.sphericalTrigonometry) .cA: 05.019001°N, 005.038369°E, -48209.76m  FAILED, KNOWN, expected 05.04314°N, 005.014578°E, -48104.09m\n    test 646 circin6 (pygeodesy.sphericalTrigonometry) .cB: 00.0°N, 002.951508°E, -20185.00m  FAILED, KNOWN, expected 00.0°N, 002.941713°E, -20168.62m\n    test 647 circin6 (pygeodesy.sphericalTrigonometry) .cC: 02.951508°N, 000.0°E, -20185.00m  FAILED, KNOWN, expected 02.961566°N, 000.0°E, -20113.46m\n    test 648 circin6 (pygeodesy.sphericalTrigonometry) .dA: 327983.380  FAILED, KNOWN, expected 327263.596\n    test 649 circin6 (pygeodesy.sphericalTrigonometry) .dB: 326745.373  FAILED, KNOWN, expected 326036.153\n    test 650 circin6 (pygeodesy.sphericalTrigonometry) .dC: 326745.373  FAILED, KNOWN, expected 326020.432\n\n    test 651 area cw/ccw: 1.0\n\n    testSpherical(pygeodesy.sphericalTrigonometry, 25.08.31)\n    test 652 isSpherical: True\n    test 653 isEllipsoidal: False\n    test 654 datum: name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84\n    test 655 ellipsoid: name='SphereAuthalic', a=6371000, f=0, f_=0, b=6371000\n    test 656 datum: name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84\n    test 657 isSpherical: True\n    test 658 isEllipsoidal: False\n    test 659 intersection1: 50.907608°N, 004.508575°E\n    test 660 intersection1: 50°54′27.39″N, 004°30′30.87″E\n    test 661 intersection1: True\n    test 662 intersection2: True\n    test 663 intersection2: 43.5719°N, 116.188757°W\n    test 664 intersection2: 43°34′18.84″N, 116°11′19.53″W\n    test 665 intersection3: 51.882166°N, 000.267801°E\n    test 666 intersection4: 00.0°N, 026.565051°E\n    test 667 intersection5: 26.565051°N, 000.0°E  FAILED, KNOWN, expected 26.565051°N, 000.0°W\n    test 668 intersection6: 50.907809°N, 004.50841°E\n    test 669 intersection7: 01°52′46.41″S, 005°39′06.87″E\n    test 670 intersection8: 28°15′40.35″S, 032°14′33.2″E\n    test 671 toward 1,1 N,E nearest: 00.999848°N, 001.0°E\n    test 672 toward 1,1 E,N nearest: 00.999848°N, 001.0°E\n    test 673 toward 1,1 N,E antipodal: 00.999848°S, 179.0°W\n    test 674 toward/away 1,1 N,W antipodal: 00.999848°N, 001.0°E\n    test 675 toward/away 1,1 W,N antipodal: 00.999848°S, 179.0°W\n    test 676 toward/away 1,1 S,E antipodal: 00.999848°S, 179.0°W\n    test 677 toward/away 1,1 E,S antipodal: 00.999848°N, 001.0°E\n    test 678 away 1,1 S,W antipodal: 00.999848°S, 179.0°W\n    test 679 away 1,1 W,S antipodal: 00.999848°S, 179.0°W\n    test 680 1E/90E N,E antipodal: 00.017454°N, 001.0°E\n    test 681 1E/90E N,E nearest: 00.017454°N, 179.0°W\n    test 682 brng+end 1a: 01.000305°N, 002.0°E\n    test 683 brng+end 1b: 01.000305°N, 002.0°E\n    test 684 brng+end 2a: 01.000305°S, 178.0°W\n    test 685 brng+end 2b: 01.000305°S, 178.0°W\n    test 686 intersection7: 02.499372°N, 002.5°E\n    test 687 maxLat0: 90.0\n    test 688 maxLat1: 89.0\n    test 689 maxLat90: 0.0\n    test 690 minLat0: -90.0\n    test 691 minLat1: -89.0\n    test 692 minLat90: -0.0\n    test 693 parse: 00.0°N, 000.0°E\n    test 694 crossingParallels: 009°35′38.65″E, 170°24′21.35″E\n\n    test 695 intersecant2: 04.260346°N, 006.272173°E and 01.250608°S, 000.749094°E\n    test 696 intersecant2: 700000\n    test 697 intersecant2: 699999  FAILED, KNOWN, expected 700000\n    test 698 intersecant2: 45.014  FAILED, KNOWN, expected 45.000\n\n    test 699 intersecant2: 04.261539°N, 006.265474°E and 00.0°N, 002.0°E\n    test 700 intersecant2: 699248  FAILED, KNOWN, expected 700000\n    test 701 intersecant2: 598698  FAILED, KNOWN, expected 700000\n    test 702 intersecant2: 45.000\n\n    test 703 intersecant2: 04.262363°N, 006.2663°E and 01.258709°S, 000.74119°E\n    test 704 intersecant2: 699302  FAILED, KNOWN, expected 700000\n    test 705 intersecant2: 700080  FAILED, KNOWN, expected 700000\n    test 706 intersecant2: 45.021  FAILED, KNOWN, expected 45.000\n\n    test 707 intersecant4: 02.375133°N, 024.894142°E and 25.0°S, 000.0°E  FAILED, KNOWN, expected 00.0°N, 025.0°E and 25.0°S, 000.0°E\n    test 708 intersecant4: 00.0°N, 025.0°E and 25.0°S, 000.0°E\n    test 709 intersecant4: 02.375133°N, 024.894142°E and 25.0°S, 000.0°E  FAILED, KNOWN, expected 00.0°N, 025.0°E and 25.0°S, 000.0°E\n    test 710 intersecant4: 00.0°N, 025.0°E and 25.0°S, 000.0°E\n\n    test 711 intersecant4: 00.725365°N, 026.558638°E and 25.747°S, 000.826763°W  FAILED, KNOWN, expected 00.0°N, 025.0°E and 25.0°S, 000.0°E\n    test 712 intersecant4: 00.725365°N, 026.558638°E and 25.747°S, 000.826763°W  FAILED, KNOWN, expected 00.0°N, 025.0°E and 25.0°S, 000.0°E\n    test 713 intersecant4: 00.021635°S, 025.811619°E and 25.0°S, 000.0°E  FAILED, KNOWN, expected 00.0°N, 025.0°E and 25.0°S, 000.0°E\n    test 714 intersecant4: 00.021635°S, 025.811619°E and 25.0°S, 000.0°E  FAILED, KNOWN, expected 00.0°N, 025.0°E and 25.0°S, 000.0°E\n\n    test 715 intersecant4: 00.807845°N, 026.641126°E and 25.0°S, 000.0°E  FAILED, KNOWN, expected 00.0°N, 025.0°E and 25.0°S, 000.0°E\n    test 716 intersecant4: 01.624807°N, 026.572609°E and 25.0°S, 000.0°E  FAILED, KNOWN, expected 00.0°N, 025.0°E and 25.0°S, 000.0°E\n    test 717 intersecant4: 00.807845°N, 026.641126°E and 25.0°S, 000.0°E  FAILED, KNOWN, expected 00.0°N, 025.0°E and 25.0°S, 000.0°E\n    test 718 intersecant4: 01.624807°N, 026.572609°E and 25.0°S, 000.0°E  FAILED, KNOWN, expected 00.0°N, 025.0°E and 25.0°S, 000.0°E\n\n    test 719 intersecant2.1: LatLon(04°04′02.63″S, 029°43′21.16″W) Napier: 3333000.000\n    test 720 intersecant2.1: LatLon(29°58′27.6″N, 000°01′46.65″W) Napier: 3333000.000\n    test 721 intersecant2.1: LatLon(29°58′27.6″N, 000°01′46.65″W) : 3332999.886  FAILED, KNOWN, expected 3333000.000\n    test 722 intersecant2.1: LatLon(02°29′47.81″S, 028°30′01.84″W) : 3180236.460  FAILED, KNOWN, expected 3333000.000\n\n    test 723 intersecant2.2: LatLon(04°04′02.63″S, 029°43′21.16″E) Napier: 3333000.000\n    test 724 intersecant2.2: LatLon(29°58′27.6″N, 000°01′46.65″E) Napier: 3333000.000\n    test 725 intersecant2.2: LatLon(02°29′47.81″S, 028°30′01.84″E) : 3180236.460  FAILED, KNOWN, expected 3333000.000\n    test 726 intersecant2.2: LatLon(29°58′27.6″N, 000°01′46.65″E) : 3332999.886  FAILED, KNOWN, expected 3333000.000\n\n    test 727 intersecant2.3: LatLon(04°04′02.63″N, 029°43′21.16″W) Napier: 3333000.000\n    test 728 intersecant2.3: LatLon(29°58′27.6″S, 000°01′46.65″W) Napier: 3333000.000\n    test 729 intersecant2.3: LatLon(29°58′27.6″S, 000°01′46.65″W) : 3332999.886  FAILED, KNOWN, expected 3333000.000\n    test 730 intersecant2.3: LatLon(02°29′47.81″N, 028°30′01.84″W) : 3180236.460  FAILED, KNOWN, expected 3333000.000\n\n    test 731 intersecant2.4: LatLon(29°50′37.22″S, 002°56′03.42″W) Napier: 3333000.000\n    test 732 intersecant2.4: LatLon(00°29′30.34″N, 029°58′14.48″E) Napier: 3333000.000\n    test 733 intersecant2.4: LatLon(00°08′01.47″N, 029°38′09.18″E) : 3295394.784  FAILED, KNOWN, expected 3333000.000\n    test 734 intersecant2.4: LatLon(29°31′09.01″S, 002°27′32.93″W) : 3292733.874  FAILED, KNOWN, expected 3333000.000\n\n    test 735 intersecant2.5: LatLon(00°01′46.69″S, 029°58′27.6″E) Napier: 3333000.000\n    test 736 intersecant2.5: LatLon(29°58′27.59″S, 000°02′03.16″E) Napier: 3333000.000\n    test 737 intersecant2.5: LatLon(01°38′23.65″S, 028°34′45.37″E) : 3182660.966  FAILED, KNOWN, expected 3333000.000\n    test 738 intersecant2.5: LatLon(29°58′27.58″S, 000°02′03.17″E) : 3332999.848  FAILED, KNOWN, expected 3333000.000\n\n    test 739 intersecant2.6: LatLon(05°08′54.91″S, 029°34′09.94″E) Napier: 3333000.000\n    test 740 intersecant2.6: LatLon(28°36′28.71″S, 009°21′04.99″E) Napier: 3333000.000\n    test 741 intersecant2.6: LatLon(11°51′13.84″S, 024°23′59.0″E) : 2998636.503  FAILED, KNOWN, expected 3333000.000\n    test 742 intersecant2.6: LatLon(26°53′11.53″S, 011°08′26.36″E) : 3218384.739  FAILED, KNOWN, expected 3333000.000\n\n    test 743 intersections2 (pygeodesy.sphericalTrigonometry): 36.98931°N, 088.151425°W, 38.23838°N, 092.390487°W\n    test 744 intersections2 (pygeodesy.sphericalTrigonometry): 36.989310429, -088.151425243, 38.238379679, -092.390486808\n    test 745 intersections2 (pygeodesy.sphericalTrigonometry): 00.0°N, 035.26439°W, 00.0°N, 035.26439°E\n    test 746 intersections2 (pygeodesy.sphericalTrigonometry): 22.622036°N, 000.0°E, 22.622036°S, 000.0°E\n    test 747 intersections2 (pygeodesy.sphericalTrigonometry): 14.612841°N, 026.110934°W, 14.612841°S, 026.110934°E\n    test 748 intersections2 (pygeodesy.sphericalTrigonometry): 00.000001°S, 045.0°E, 00.000001°N, 045.0°E\n    test 749 intersections2 (pygeodesy.sphericalTrigonometry) 5: 04.999927°S, 005.038296°W, 04.999927°N, 005.038296°E\n    test 750 intersections2 (pygeodesy.sphericalTrigonometry) 5: 1.67511e-15 (% of radius)\n    test 751 intersections2 (pygeodesy.sphericalTrigonometry) 10: 09.997596°S, 010.311703°W, 09.997596°N, 010.311703°E\n    test 752 intersections2 (pygeodesy.sphericalTrigonometry) 10: 3.14084e-15 (% of radius)\n    test 753 intersections2 (pygeodesy.sphericalTrigonometry) 15: 14.98089°S, 016.083107°W, 14.98089°N, 016.083107°E\n    test 754 intersections2 (pygeodesy.sphericalTrigonometry) 15: 6.97964e-16 (% of radius)\n    test 755 intersections2 (pygeodesy.sphericalTrigonometry) 20: 19.914036°S, 022.676142°W, 19.914036°N, 022.676142°E\n    test 756 intersections2 (pygeodesy.sphericalTri./test/testSpherical.py:318: DeprecationWarning: method L{rhumbBearingTo<pygeodesy.sphericalTrigonometry.LatLon.rhumbBearingTo>} has been DEPRECATED, use method C{.rhumbAzimuthTo}.\n  b = p.rhumbBearingTo(q)  # rhumbAzimuthTo\ngonometry) 20: 1.46573e-15 (% of radius)\n    test 757 intersections2 (pygeodesy.sphericalTrigonometry) 25: 24.713956°S, 030.518915°W, 24.713956°N, 030.518915°E\n    test 758 intersections2 (pygeodesy.sphericalTrigonometry) 25: 8.37557e-16 (% of radius)\n    test 759 intersections2 (pygeodesy.sphericalTrigonometry) 30: 29.205932°S, 040.202966°W, 29.205932°N, 040.202966°E\n    test 760 intersections2 (pygeodesy.sphericalTrigonometry) 30: 8.37557e-16 (% of radius)\n    test 761 intersections2 (pygeodesy.sphericalTrigonometry) 35: 33.037697°S, 052.55362°W, 33.037697°N, 052.55362°E\n    test 762 intersections2 (pygeodesy.sphericalTrigonometry) 35: 7.17906e-16 (% of radius)\n    test 763 intersections2 (pygeodesy.sphericalTrigonometry) 40: 35.512876°S, 068.682565°W, 35.512876°N, 068.682565°E\n    test 764 intersections2 (pygeodesy.sphericalTrigonometry) 40: 4.18779e-16 (% of radius)\n    test 765 intersections2 (pygeodesy.sphericalTrigonometry) 45: 35.26439°S, 090.0°W, 35.26439°N, 090.0°E\n    test 766 intersections2 (pygeodesy.sphericalTrigonometry) 45: 1.86124e-16 (% of radius)\n    test 767 intersections2 (pygeodesy.sphericalTrigonometry) 50: 29.382901°S, 118.837195°W, 29.382901°N, 118.837195°E\n    test 768 intersections2 (pygeodesy.sphericalTrigonometry) 50: 1.67511e-16 (% of radius)\n    test 769 intersections2 (pygeodesy.sphericalTrigonometry) 55: 00.687458°S, 179.605668°E abutting\n    test 770 intersections2 (pygeodesy.sphericalTrigonometry) 55: 0.0144095 (% of radius)\n    test 771 intersections2 (pygeodesy.sphericalTrigonometry) 60: 13.848979°S, 172.919423°E abutting\n    test 772 intersections2 (pygeodesy.sphericalTrigonometry) 60: 0.258708 (% of radius)\n    test 773 intersections2 (pygeodesy.sphericalTrigonometry) 65: 27.163786°S, 167.475402°E abutting\n    test 774 intersections2 (pygeodesy.sphericalTrigonometry) 65: 0.457099 (% of radius)\n    test 775 intersections2 (pygeodesy.sphericalTrigonometry): 41.212541°N, 073.702999°E Random +/- 89\n    test 776 intersections2 (pygeodesy.sphericalTrigonometry): 41.212541°N, 073.702999°E, 42.652043°N, 130.245275°E  d 1.70272e-08 meter\n    test 777 intersections2 (pygeodesy.sphericalTrigonometry): 41.212541°N, 073.702999°E, 49.563295°N, 057.220788°E  d 6.84831e-09 meter\n    test 778 intersections2 (pygeodesy.sphericalTrigonometry): 41.212541°N, 073.702999°E, 29.348825°S, 027.178886°W  d 0 meter\n    test 779 intersections2 (pygeodesy.sphericalTrigonometry): 41.212541°N, 073.702999°E, 00.919397°S, 022.582538°E  d 0 meter\n    test 780 intersections2 (pygeodesy.sphericalTrigonometry): 41.212541°N, 073.702999°E, 37.789721°N, 113.551077°E  d 3.1926e-09 meter\n    test 781 intersections2 (pygeodesy.sphericalTrigonometry): 41.212541°N, 073.702999°E, 45.8391°N, 062.488233°W  d 2.64407e-09 meter\n    test 782 intersections2 (pygeodesy.sphericalTrigonometry): 41.212541°N, 073.702999°E, 42.836396°N, 147.679061°W  d 7.94221e-09 meter\n    test 783 intersections2 (pygeodesy.sphericalTrigonometry): 41.212541°N, 073.702999°E, 76.602903°N, 073.829073°W  d 5.32099e-09 meter\n    test 784 intersections2 (pygeodesy.sphericalTrigonometry): 41.212541°N, 073.702999°E, 46.089655°N, 103.356557°E  d 2.64407e-09 meter\n    test 785 intersections2 (pygeodesy.sphericalTrigonometry): 41.212541°N, 073.702999°E, 04.154973°N, 044.386256°E  d 2.47563e-09 meter\n    test 786 intersections2 (pygeodesy.sphericalTrigonometry): 41.212541°N, 073.702999°E, 02.95074°N, 159.308477°W  d 2.99873e-09 meter\n    test 787 intersections2 (pygeodesy.sphericalTrigonometry): 41.212541°N, 073.702999°E, 33.791406°N, 143.40539°W  d 1.12416e-08 meter\n    test 788 trilaterate5 (pygeodesy.sphericalTrigonometry) .min: 313.671\n    test 789 trilaterate5 (pygeodesy.sphericalTrigonometry) .point: 42.66937229°N, 002.48639477°E\n    test 790 trilaterate5 (pygeodesy.sphericalTrigonometry) .max: 1591.044\n    test 791 trilaterate5 (pygeodesy.sphericalTrigonometry) .point: 42.65153054°N, 002.46822157°E\n    test 792 trilaterate5 (pygeodesy.sphericalTrigonometry) .n: 3\n    test 793 trilaterate5 (pygeodesy.sphericalTrigonometry) .min: 133.815\n    test 794 trilaterate5 (pygeodesy.sphericalTrigonometry) .inter: 42.6767291°N, 002.49916157°E\n    test 795 trilaterate5 (pygeodesy.sphericalTrigonometry) .n: 2\n    test 796 trilaterate5 (pygeodesy.sphericalTrigonometry) .min: 2403.293\n    test 797 trilaterate5 (pygeodesy.sphericalTrigonometry) .max: 2403.293\n    test 798 trilaterate5 (pygeodesy.sphericalTrigonometry) .point: 42.66135649°N, 002.47981645°E\n    test 799 trilaterate5 (pygeodesy.sphericalTrigonometry) .min- is .maxPoint: True\n    test 800 trilaterate5 (pygeodesy.sphericalTrigonometry) .n: 1\n    test 801 trilaterate5 (pygeodesy.sphericalTrigonometry) .inter: area (False), eps (1000) or wrap (False): no intersection, min 1.34e+03\n    test 802 isenclosedBy: True\n    test 803 isenclosedBy*: True\n    test 804 isenclosedBy: points[3] (LatLon(47°00′00.0″N, 003°00′00.0″E)) or wrap (False): not convex\n    test 805 isenclosedBy*: points[3] (LatLon(47°00′00.0″N, 003°00′00.0″E)) or wrap (False): not convex\n    test 806 rhumbBearingTo: 116.722\n    test 807 rhumbDestination: 50.964155°N, 001.853°E\n    test 808 rhumbDestination: True\n    test 809 rhumbDistanceTo: 40307.8\n    test 810 rhumbMidpointo-0.5: 51.0455°N, 001.595727°E\n    test 811 rhumbMidpointo: True\n    test 812 rhumbMidpointo-0.0: 51.127°N, 001.338°E\n    test 813 rhumbMidpointo-0.25: 51.08625°N, 001.46692°E\n    test 814 rhumbMidpointo-0.75: 51.00475°N, 001.72442°E\n    test 815 rhumbMidpointo-1.0: 50.964°N, 001.853°E\n    test 816 rhumbMidpointo-2.0: 50.801°N, 002.366196°E\n    test 817 areaOf: 8.66605875e+09\n    test 818 perimeterOf: 3.78258541e+05\n    test 819 perimeterOf: 2.67063461e+05\n    test 820 areaOf: 6.18e+09\n    test 821 perimeterOf: 3.79639757e+05\n    test 822 perimeterOf: 2.68444678e+05\n    test 823 nearestOn3: 46.0°N, 001.369324°E\n    test 824 nearestOn3: 570101.83\n    test 825 distanceTo: 570101.82\n    test 826 nearestOn3: 46.0°N, 002.0°E\n    test 827 nearestOn3: 134992.48\n    test 828 distanceTo: 134989.80\n    test 829 nearestOn3: 45.5°N, 001.5°E\n    test 830 distance: 78626.79\n    test 831 angle: 315.00\n    test 832 compassAngleTo: 315.00\n    test 833 nearestOn3: 45.331319°N, 001.331319°E\n    test 834 distance: 64074.48\n    test 835 angle: 305.10\n    test 836 distanceTo: 64074.12\n    test 837 compassAngleTo: 305.10\n    test 838 difference: 1000.53\n    test 839 nearestOn3: 00.5°N, 001.5°E\n    test 840 distance: 235880.385\n    test 841 angle: 135.00\n    test 842 nearestOn3: 01.5°N, 002.5°E\n    test 843 distance: 235880.385\n    test 844 angle: 135.00\n    test 845 nearestOn3: 02.5°N, 003.5°E\n    test 846 distance: 235880.385\n    test 847 angle: 135.00\n    test 848 nearestOn3: 03.5°N, 004.5°E\n    test 849 distance: 235880.385\n    test 850 angle: 135.00\n    test 851 nearestOn3: 04.5°N, 005.5°E\n    test 852 distance: 235880.385\n    test 853 angle: 135.00\n    test 854 nearestOn3: 05.5°N, 006.5°E\n    test 855 distance: 235880.385\n    test 856 angle: 135.00\n    test 857 nearestOn3: 06.5°N, 007.5°E\n    test 858 distance: 235880.385\n    test 859 angle: 135.00\n    test 860 nearestOn3: 07.5°N, 008.5°E\n    test 861 distance: 235880.385\n    test 862 angle: 135.00\n    test 863 meanOf: 04.004858°N, 004.990226°E\n    test 864 nearestOn3: 07.5°N, 008.5°E\n    test 865 toCartesian: [6245667.211, 766871.506, 996645.349]\n    test 866 ispolar: True\n    test 867 ispolar*: True\n    test 868 ispolar: False  FAILED, KNOWN, expected True\n    test 869 ispolar*: False  FAILED, KNOWN, expected True\n    test 870 ispolar: True\n    test 871 ispolar*: True\n    test 872 triangle7: (22.142114, 2189776.256122, 84.91384, 6998970.168483, 84.91384, 6998970.168483, 8479698853790.72168)\n    test 873 triangle7: Triangle8Tuple(A=0.38645, a=0.34371, B=1.48203, b=1.09857, C=1.48203, c=1.09857, D=3.74234, E=0.20891)\n    test 874 nearestOn: 01.5°N, 001.5°E, +149.99m\n    test 875 nearestOn3: 01.5°N, 001.5°E, +149.99m\n    test 876 midpointTo: 50.5363°N, 001.2746°E, +150.00m\n    test 877 intermediateTo: 50.5363°N, 001.2746°E, +150.00m\n\n    137 of 877 testSpherical.py tests (15.6%) FAILED, incl. 126 KNOWN plus 11 DeprecationWarnings (pygeodesy 26.3.26 Python 2.7.18 64bit arm64_x86_64 geographiclib 1.50 numpy 1.16.6 scipy 1.2.2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 -W  default) 391.145 ms\nrunning /Library/Framewo....ython -W default ~/PyGeodesy/test/testStreprs.py\n\n    testing testStreprs.py 23.03.27 (module pygeodesy.streprs 25.11.24)\n    test 1 anstr: a-b__\n    test 2 fstr: 0.123000\n    test 3 fstr: 0.123\n    test 4 fstr: 0.123, 456.789\n    test 5 fstr: 1.23000e-01\n    test 6 fstr: 1.23e-01\n    test 7 fstr: fmt ('X'): not '[%[<flags>][<width>].*]F|f|E|e|G|g'\n    test 8 fstr(1.000000): 1.0\n    test 9 fstr(1.000000): 1.0\n    test 10 fstr(-1.000000): -1.0\n    test 11 fstr(INF): INF\n    test 12 fstr(INF): INF\n    test 13 fstr(NAN): NAN\n    test 14 fstr(-0.000000): -0.0\n    test 15 fstr(0.000000): 0.0\n    test 16 fstrzs(0.0): 0.0\n    test 17 fstrzs(0.00): 0.0\n    test 18 fstrzs(0.000): 0.0\n    test 19 fstrzs(00.0): 00.0\n    test 20 fstrzs(000.00): 000.0\n    test 21 fstrzs(0.000): 0.0\n    test 22 fstrzs(0.010): 0.01\n    test 23 fstrzs(0.0200): 0.02\n    test 24 fstrzs(0.0e+01): 0.0e+01\n    test 25 fstrzs(0.00e+02): 0.0e+02\n    test 26 fstrzs(0.000e+03): 0.0e+03\n    test 27 fstrzs(00.0e+00): 00.0e+00\n    test 28 fstrzs(000.00e+01): 000.0e+01\n    test 29 fstrzs(0.000e+02): 0.0e+02\n    test 30 fstrzs(0.010e+03): 0.01e+03\n    test 31 fstrzs(0.0200e+00): 0.02e+00\n    test 32 fstrzs(0, ap1z=True): 0.0\n    test 33 fstrzs(0.0, ap1z=True): 0.0\n    test 34 fstrzs(0., ap1z=True): 0.\n    test 35 fstrzs(1e10, ap1z=True): 1.0e10\n    test 36 fstrzs(2E+2, ap1z=True): 2.0E+2\n    test 37 fstrzs(3.E3, ap1z=True): 3.E3\n    test 38 instr: LatLon_(45.0°N, 090.0°E, +1.20)\n    test 39 instr: LatLon_(45, 90, h=1.2)\n    test 40 unstr: f(1.1, 2.2)\n    test 41 unstr: f(x=1.1, y=2.2)\n    test 42 F: 0.001\n    test 43 F: 0.001\n    test 44 F: 0.001\n    test 45 F: 0.001\n    test 46 f: 0.001\n    test 47 f: 0.001\n    test 48 f: 0.001\n    test 49 f: 0.001\n    test 50 E: 1.0E-03\n    test 51 E: 1.0E-03\n    test 52 E: 1.0E-03\n    test 53 E: 1.0E-03\n    test 54 e: 1.0e-03\n    test 55 e: 1.0e-03\n    test 56 e: 1.0e-03\n    test 57 e: 1.0e-03\n    test 58 G: 0.001\n    test 59 G: 0.001\n    test 60 G: 0.001\n    test 61 G: 0.001\n    test 62 g: 0.001\n    test 63 g: 0.001\n    test 64 g: 0.001\n    test 65 g: 0.001\n\n    all 65 testStreprs.py tests passed (pygeodesy 26.3.26 Python 2.7.18 64bit arm64_x86_64 geographiclib 1.50 numpy 1.16.6 scipy 1.2.2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 -W  default) 699.997 us\nrunning /Library/Framewo....ython -W default ~/PyGeodesy/test/testTMcoords.py\n\n    testing testTMcoords.py 24.03.22\n    test 1 TMcoords: 258\n\n    all 1 testTMcoords.py tests passed (pygeodesy 26.3.26 Python 2.7.18 64bit arm64_x86_64 geographiclib 1.50 numpy 1.16.6 scipy 1.2.2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 -W  default) 174.046 us\nrunning /Library/Framewo....ython -W default ~/PyGeodesy/test/testTrf.py\n./test/testTrf.py:29: DeprecationWarning: method L{convertRefFrame<pygeodesy.ellipsoidalNvector.LatLon.convertRefFrame>} has been DEPRECATED, use method L{toRefFrame}.\n  x = p.convertRefFrame(RefFrames.ETRF2000)\n./test/testTrf.py:136: DeprecationWarning: method L{convertRefFrame<pygeodesy.ellipsoidalNvector.LatLon.convertRefFrame>} has been DEPRECATED, use method L{toRefFrame}.\n  t = LatLon(0, 0, reframe=RefFrames.ITRF2000).convertRefFrame('ITRF2000')\n\n    testing testTrf.py 24.10.14 (module pygeodesy.trf 25.09.11)\n\n    testTrf(pygeodesy.ellipsoidalNvector, 25.05.12)\n    test 1 convertRefFrame: 51.47787826°N, 000.00147125°W, -0.00m  FAILED, KNOWN, expected 51.47787826°N, 000.00147125°W\n    test 2 copy(<type 'type'>): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 3 RefFrame.copy(): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 4 toLatLon: 50.7978°N, 004.3592°E, +148.96m\n    test 5 convertRefFrame: [3980574.395, -102.214, 4966829.941]\n    test 6 Nil: True\n    test 7 copy(<type 'type'>): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 8 RefFrame.copy(): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 9 Nil: True\n    test 10 reframe: True\n    test 11 Roundtrip: True\n    test 12 reframe: True\n    test 13 copy(<type 'type'>): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 14 RefFrame.copy(): (<class 'pygeodesy.trf.RefFrame'>, True)\n\n    test 15 Geodetic: 23°40′12.44582″S, 133°53′07.84795″E, +603.34m\n    test 16 Cartesian: [-4052051.7614, 4212836.1945, -2545106.0147]\n    test 17 Geodetic: 23°40′12.44582″S, 133°53′07.84795″E, +603.34m\n    test 18 Cartesian: [-4052051.7614, 4212836.1945, -2545106.0147]\n    test 19 Roundtrip: 23°40′12.41482″S, 133°53′07.86712″E, +603.26m\n    test 20 GNSStrans: [3370658.18892, 711877.42369, 5349787.1243]\n    test 21 Cartesian: [-734972.563, 4893188.492, 4011982.811]\n\n    test 22 EUREF EX1: [4027893.9676, 307045.5791, 4919474.9587]  FAILED, KNOWN, expected [4027894.0444, 307045.6209, 4919474.8613]\n    test 23 transform0: ITRF2005@2015xETRF2020-ITRF91@2015xETRF2020@2007 max 0.097331, epoched 8.0\n    test 24 transform1: ITRF2005@2015xETRF2000-ITRF91@2015xETRF2000@2007 max 0.048666, epoched 8.0\n    test 25 transform2: ITRF2005@2015xETRF2014-ITRF91@2015xETRF2014@2007 max 4.6566e-10, epoched 8.0\n    test 26 transform3: ITRF2005@2000xITRF2000+ITRF2000@1988xITRF91@2000@2007 max 0.048666, epoched 19.0\n    test 27 transform4: -ITRF2020@2015xITRF2005+ITRF2020@2015xITRF91@2007 max 0.097331, epoched 8.0\n    test 28 transform5: -ITRF2014@2010xITRF2005+ITRF2014@2010xITRF91@2007 max 0.146, epoched 3.0\n    test 29 transform6: -ITRF2008@2005xITRF2005+ITRF2008@2000xITRF91@2005@2007 max 0.19466, epoched 7.0\n    test 30 transform7: ITRF2000@1988xITRF91+ITRF2005@2000xITRF2000@1988@2007 max 0.24333, epoched 31.0\n    test 31 transform8: ITRF2014@2010xITRF91-ITRF2014@2020xGDA2020@2010+ITRF2005@2020xGDA2020@2010@2007 max 0.90432, epoched 23.0\n    test 32 transform9: ITRF2008@2000xITRF91-ITRF2008@1997xNAD83@2000+ITRF2005@1997xNAD83@2000@2007 max 0.94279, epoched 13.0\n    test 33 transform10: ITRF2008@2000xITRF91-ITRF2008@1994xGDA94@2000+ITRF2005@1994xGDA94@2000@2007 max 0.31072, epoched 19.0\n    test 34 EUREF EX2: [4027893.9292, 307045.5582, 4919475.0073]  FAILED, KNOWN, expected [4027894.0060, 307045.6000, 4919474.9100]\n    test 35 transform0: ITRF91@2015xETRF2000-ITRF2005@2015xETRF2000@2007 max 0.146, epoched 8.0\n    test 36 transform1: ITRF91@2015xETRF2014-ITRF2005@2015xETRF2014@2007 max 0.19466, epoched 8.0\n    test 37 transform2: ITRF91@2015xETRF2020-ITRF2005@2015xETRF2020@2007 max 0.146, epoched 8.0\n    test 38 transform3: -ITRF2005@2000xITRF2000-ITRF2000@1988xITRF91@2000@2007 max 0.19466, epoched 19.0\n    test 39 EUREF EX4: [4027894.3559, 307045.2508, 4919474.6447]\n    test 40 transform0: -ITRF2000@2015xETRF2000@2012 max 4.5169e-08, epoched 3.0\n    test 41 transform1: -ITRF2000@1988xITRF89@2015-ITRF89@2015xETRF2000@2012 max 0.37894, epoched 30.0\n    test 42 transform2: -ITRF2000@1988xITRF88@2015-ITRF88@2015xETRF2000@2012 max 0.72548, epoched 30.0\n    test 43 transform3: -ITRF2000@1997xITRF96@2015-ITRF96@2015xETRF2000@2012 max 1.072, epoched 21.0\n    test 44 transform4: -ITRF2000@1997xITRF97@2015-ITRF97@2015xETRF2000@2012 max 1.4303, epoched 21.0\n    test 45 transform5: -ITRF2000@1988xITRF92@2015-ITRF92@2015xETRF2000@2012 max 1.7786, epoched 30.0\n    test 46 transform6: -ITRF2000@1988xITRF93@2015-ITRF93@2015xETRF2000@2012 max 2.1278, epoched 30.0\n    test 47 transform7: -ITRF2000@1988xITRF90@2015-ITRF90@2015xETRF2000@2012 max 2.4851, epoched 30.0\n    test 48 transform8: -ITRF2000@1988xITRF91@2015-ITRF91@2015xETRF2000@2012 max 2.8343, epoched 30.0\n    test 49 EUREF EX5: [4027893.6458, 307045.9470, 4919475.1937]  FAILED, KNOWN, expected [4027894.3662, 307045.2530, 4919474.6263]\n    test 50 transform0: ITRF2014@2015xETRF2000@2012 max 4.5635e-08, epoched 3.0\n    test 51 transform1: ITRF2014@2010xITRF2008@2015+ITRF2008@2015xETRF2000@2012 max 0.36023, epoched 8.0\n    test 52 transform2: ITRF2014@2010xITRF89@2015+ITRF89@2015xETRF2000@2012 max 0.72047, epoched 8.0\n    test 53 transform3: ITRF2014@2010xITRF88@2015+ITRF88@2015xETRF2000@2012 max 1.0807, epoched 8.0\n    test 54 transform4: ITRF2014@2010xITRF96@2015+ITRF96@2015xETRF2000@2012 max 1.4409, epoched 8.0\n    test 55 transform5: ITRF2014@2010xITRF93@2015+ITRF93@2015xETRF2000@2012 max 1.8012, epoched 8.0\n    test 56 transform6: ITRF2014@2010xITRF90@2015+ITRF90@2015xETRF2000@2012 max 2.1614, epoched 8.0\n    test 57 transform7: ITRF2014@2010xITRF92@2015+ITRF92@2015xETRF2000@2012 max 2.5216, epoched 8.0\n    test 58 transform8: ITRF2014@2010xITRF91@2015+ITRF91@2015xETRF2000@2012 max 2.8819, epoched 8.0\n\n    test 59 Case 1A: [4027893.9619, 307045.5481, 4919474.9553]\n    test 60 Case 1B: [4027894.0054, 307045.5938, 4919474.9083]\n    test 61 Case 2A: [4027893.9639, 307045.545, 4919474.9573]\n    test 62 Case 2B: [4027894.0033, 307045.5889, 4919474.9041]\n\n    test 63 TypeError: type(reframe) ('ITRF2000'): not a RefFrame\n    test 64 TRFError: epoch (1899): below 1900.0 limit\n    test 65 TypeError: type(reframe2) ('ITRF2000'): not a RefFrame\n    test 66 TRFError: no conversion: LatLon(00°00′00.0″N, 000°00′00.0″E).reframe MISSING\n    test 67 TypeError: type(reframe2) ('ITRF2000'): not a RefFrame\n    test 68 TypeError: type(reframe) ('ITRF2000'): not a RefFrame\n\n    test 69 ETRF89@1989: [4160476.944000, 653192.600000, 4774604.455000]\n    test 70 ITRF2014@2018.8: [4160476.415, 653193.057, 4774604.903]  FAILED, KNOWN, expected [4160476.485, 653193.021, 4774604.78]\n    test 71 TransformXform: -ITRF2014@2010xITRF89-ITRF89@1989xETRF89@2010@2018.8\n    test 72 Delta (m): [-0.06956, 0.035714, 0.122931]  FAILED, KNOWN, expected [0.01, 0.01, 0.01]\n    test 73 Error (m): 0.145692  FAILED, KNOWN, expected 0.01\n    test 74 Epoch range: 29.800  FAILED, KNOWN, expected 14.0\n    test 75 ETRF89@1989: [4160476.467836, 653193.103190, 4774604.868503]  FAILED, KNOWN, expected [4160476.944000, 653192.600000, 4774604.455000]\n    test 76 TransformXform: ITRF2014@2010xITRF89+ITRF89@1989xETRF89@2010@1989\n\n    test 77 inverse: -ITRF2014@2010xITRF89-ITRF89@1989xETRF89@2010@1989\n    test 78 inverse: ITRF2014@2010xITRF89+ITRF89@1989xETRF89@2010@1989\n    test 79 inverse: name='ITRF2014@2010xITRF89+ITRF89@1989xETRF89@2010@1989', tx=0.0283, ty=0.046, tz=-0.0615, s1=1.0, rx=0.0, ry=0.0, rz=-7.757e-10, s=0.00567, sx=0.0, sy=0.0, sz=-0.00016\n\n    test 80 ETRF2000@2000: [4160476.952000, 653192.582000, 4774604.441000]\n    test 81 ITRF2014@2018.8: [4160476.471, 653193.059, 4774604.804]  FAILED, KNOWN, expected [4160476.485, 653193.021, 4774604.78]\n    test 82 TransformXform: -ITRF2014@2015xETRF2000@2018.8\n    test 83 Delta (m): [-0.014174, 0.037835, 0.023963]  FAILED, KNOWN, expected [0.01, 0.01, 0.01]\n    test 84 Error (m): 0.046975  FAILED, KNOWN, expected 0.01\n    test 85 Epoch range: 18.800  FAILED, KNOWN, expected 14.0\n    test 86 ETRF2000@2000: [4160476.681125, 653192.914350, 4774604.647835]  FAILED, KNOWN, expected [4160476.952000, 653192.582000, 4774604.441000]\n    test 87 TransformXform: ITRF2014@2015xETRF2000@2000\n\n    test 88 inverse: -ITRF2014@2015xETRF2000@2000\n    test 89 inverse: ITRF2014@2015xETRF2000@2000\n    test 90 inverse: name='ITRF2014@2015xETRF2000@2000', tx=0.0537, ty=0.0512, tz=-0.0551, s1=1.0, rx=4.3197e-09, ry=2.6131e-08, rz=-4.2237e-08, s=0.00102, sx=0.000891, sy=0.00539, sz=-0.008712\n\n    test 91 ITRF2008@2005: [4160476.674000, 653192.806000, 4774604.648000]\n    test 92 ITRF2014@2018.8: [4160476.671, 653192.804, 4774604.645]  FAILED, KNOWN, expected [4160476.485, 653193.021, 4774604.78]\n    test 93 TransformXform: -ITRF2014@2010xITRF2008@2018.8\n    test 94 Delta (m): [0.186385, -0.217059, -0.134685]  FAILED, KNOWN, expected [0.01, 0.01, 0.01]\n    test 95 Error (m): 0.316218  FAILED, KNOWN, expected 0.01\n    test 96 Epoch range: 13.800  FAILED, KNOWN, expected 14.0\n    test 97 ITRF2008@2005: [4160476.672278, 653192.805730, 4774604.647403]  FAILED, KNOWN, expected [4160476.674000, 653192.806000, 4774604.648000]\n    test 98 TransformXform: ITRF2014@2010xITRF2008@2005\n\n    test 99 inverse: -ITRF2014@2010xITRF2008@2005\n    test 100 inverse: ITRF2014@2010xITRF2008@2005\n    test 101 inverse: name='ITRF2014@2010xITRF2008@2005', tx=0.0016, ty=0.0019, tz=0.0029, s1=1.0, rx=0.0, ry=0.0, rz=0.0, s=-0.00017, sx=0.0, sy=0.0, sz=0.0\n\n    test 102 toRefFrame1: ITRF2020@2015 2024.31 [0.0031474, 0.00210534, -0.00125667]\n    test 103 toRefFrame2: ITRF2014@2010 2024.32 [0.0031474, 0.00210634, -0.00125867]\n    test 104 transform0: -ITRF2020@2015xITRF2014@2010\n    test 105 transform0X: TRFXform(epoch=2010.0, name='-ITRF2020@2015xITRF2014@2010')\n    test 106 toRefFrame3: ITRF2020@2015 2010 [0.0031474, 0.00067434, 0.00160533]\n    test 107 transform2x: (4160476.488147, 653193.021674, 4774604.781605)\n    test 108 transform2v: (0.000, 0.000, 0.000)  FAILED, KNOWN, expected (0.004, 0.003, 0.004)\n\n    test 109 transform0: name='ITRF2020@2015xETRF2020@2010', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=8.75573508e-09, ry=5.28398431e-08, rz=-7.66635874e-08, s=0.0, sx=0.001806, sy=0.010899, sz=-0.015813\n    test 110 transform2c: (4027893.9585, 307045.5550, 4919474.9620)  FAILED, KNOWN, expected (4027893.9585, 307045.5550, 4919474.9619)\n    test 111     Error2c: (-0.000016463, 0.0000336, 0.000055143) max 5.514e-05, epoched 5.0\n    test 112 transform2v: (-0.00011, 0.00010, 0.00023)  FAILED, KNOWN, expected (0.00011, 0.00011, 0.00024)\n    test 113     Error2v: (-0.000220786, -0.000005544, -0.000006899) max 0.0002208\n    test 114 transform0v: (0.00009, 0.00052, -0.00075)  FAILED, KNOWN, expected (0.00011, 0.00011, 0.00024)\n    test 115     Error0v: (-0.000024, 0.000409, -0.000993) max 0.000993\n\n    test 116 transform0: name='-ITRF2014@2015xETRF2020@2010', tx=-0.0014, ty=-0.0004, tz=0.0004, s1=1.0, rx=-8.75573508e-09, ry=-5.28398431e-08, rz=7.66635874e-08, s=-0.00042, sx=-0.001806, sy=-0.010899, sz=0.015813\n    test 117 transform2c: (4027893.6719, 307045.9063, 4919475.1704)  FAILED, KNOWN, expected (4027893.6719, 307045.9064, 4919475.1704)\n    test 118     Error2c: (0.000024786, -0.000062539, -0.000021305) max 6.254e-05, epoched 5.0\n    test 119 transform2v: (-0.01339, 0.01677, 0.01045)  FAILED, KNOWN, expected (-0.01361, 0.01676, 0.01044)\n    test 120     Error2v: (0.000220784, 0.000005543, 0.000006898) max 0.0002208\n    test 121 transform0v: (-0.00009, -0.00052, 0.00075)  FAILED, KNOWN, expected (-0.01361, 0.01676, 0.01044)\n    test 122     Error0v: (0.013524, -0.017279, -0.009687) max 0.01728\n\n    test 123 transform0: name='ITRF2014@2015xETRF2014@2010', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=8.65392421e-09, ry=5.40615736e-08, rz=-7.83943722e-08, s=0.0, sx=0.001785, sy=0.011151, sz=-0.01617\n    test 124 transform2c: (4027893.9619, 307045.5481, 4919474.9553)  FAILED, KNOWN, expected (4027893.9620, 307045.5480, 4919474.9553)\n    test 125     Error2c: (-0.00007476, 0.000063039, 0.000002882) max 7.476e-05, epoched 5.0\n    test 126 transform2v: (0.00020, -0.00030, 0.00020)\n    test 127     Error2v: (0.000000724, -0.000003666, -0.000002721) max 3.666e-06\n    test 128 transform0v: (0.00009, 0.00053, -0.00077)  FAILED, KNOWN, expected (0.00020, -0.00030, 0.00020)\n    test 129     Error0v: (-0.000115, 0.000831, -0.00097) max 0.00097\n\n    test 130 transform0: name='-ITRF2000@2015xETRF2014@2010', tx=0.0007, ty=0.0012, tz=-0.0261, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 131 transform2c: (4027893.6812, 307045.9082, 4919475.1547)\n    test 132     Error2c: (0.000013934, -0.000012081, 0.000026423) max 2.642e-05, epoched 5.0\n    test 133 transform2v: (-0.01351, 0.01686, 0.00854)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 134     Error2v: (-0.000440726, -0.000036335, -0.00053728) max 0.0005373\n    test 135 transform0v: (-0.00008, -0.00053, 0.00077)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 136     Error0v: (0.012985, -0.017431, -0.00831) max 0.01743\n\n    test 137 transform0: name='ITRF2000@2015xETRF2000@2010', tx=0.054, ty=0.051, tz=-0.048, s1=1.0, rx=8.24668072e-09, ry=4.98873278e-08, rz=-8.06342114e-08, s=0.0, sx=0.001701, sy=0.01029, sz=-0.016632\n    test 138 transform2c: (4027894.0054, 307045.5938, 4919474.9083)  FAILED, KNOWN, expected (4027894.0053, 307045.5939, 4919474.9083)\n    test 139     Error2c: (0.000077874, -0.000055372, -0.000008743) max 7.787e-05, epoched 5.0\n    test 140 transform2v: (-0.00020, -0.00050, -0.00037)  FAILED, KNOWN, expected (-0.00020, -0.00050, -0.00036)\n    test 141     Error2v: (-0.000004389, 0.000002124, -0.000008036) max 8.036e-06\n    test 142 transform0v: (0.00008, 0.00049, -0.00079)  FAILED, KNOWN, expected (-0.00020, -0.00050, -0.00036)\n    test 143     Error0v: (0.000281, 0.00099, -0.000432) max 0.00099\n\n    test 144 transform0/: name='-ITRF2000@2015xETRF2014@2010', tx=0.0007, ty=0.0012, tz=-0.0261, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 145 transform2c: (4027893.6812, 307045.9082, 4919475.1547)\n    test 146     Error2c: (0.000013934, -0.000012081, 0.000026423) max 2.642e-05, epoched 5.0\n    test 147 transform2v: (-0.01351, 0.01686, 0.00854)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 148     Error2v: (-0.000440726, -0.000036335, -0.00053728) max 0.0005373\n\n    test 149 transform1/: name='-ITRF2000@1988xITRF89@2015-ITRF89@2015xETRF2014@2010', tx=0.02743, ty=0.03207, tz=-0.12033, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 150 transform2c: (4027893.7079, 307045.9391, 4919475.0605)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 151     Error2c: (0.026743934, 0.030857919, -0.094203577) max 0.0942, epoched 32.0\n    test 152 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 153     Error2v: (-0.000440726, -0.000576335, -0.00179728) max 0.001797\n\n    test 154 transform2/: name='-ITRF2000@1988xITRF88@2015-ITRF88@2015xETRF2014@2010', tx=0.02293, ty=-0.00033, tz=-0.14193, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 155 transform2c: (4027893.7034, 307045.9067, 4919475.0389)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 156     Error2c: (0.022243935, -0.001542081, -0.115803577) max 0.1158, epoched 32.0\n    test 157 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 158     Error2v: (-0.000440725, -0.000576335, -0.00179728) max 0.001797\n\n    test 159 transform3/: name='-ITRF2000@1997xITRF96@2015-ITRF96@2015xETRF2014@2010', tx=0.00673, ty=-0.00033, tz=-0.05913, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 160 transform2c: (4027893.6872, 307045.9067, 4919475.1217)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 161     Error2c: (0.006043935, -0.001542081, -0.033003577) max 0.033, epoched 23.0\n    test 162 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 163     Error2v: (-0.000440726, -0.000576335, -0.00179728) max 0.001797\n\n    test 164 transform4/: name='-ITRF2000@1997xITRF97@2015-ITRF97@2015xETRF2014@2010', tx=0.00673, ty=-0.00033, tz=-0.05913, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=8.09154034e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01669\n    test 165 transform2c: (4027893.6865, 307045.9168, 4919475.1217)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 166     Error2c: (0.005269863, 0.008612365, -0.0330./test/testTrf.py:29: DeprecationWarning: method L{convertRefFrame<pygeodesy.ellipsoidalVincenty.LatLon.convertRefFrame>} has been DEPRECATED, use method L{toRefFrame}.\n  x = p.convertRefFrame(RefFrames.ETRF2000)\n03577) max 0.033, epoched 23.0\n    test 167 transform2v: (-0.01357, 0.01710, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 168     Error2v: (-0.00050027, 0.000204776, -0.00179728) max 0.001797\n\n    test 169 transform5/: name='-ITRF2000@1988xITRF92@2015-ITRF92@2015xETRF2014@2010', tx=0.01393, ty=0.00147, tz=-0.06633, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 170 transform2c: (4027893.6944, 307045.9085, 4919475.1145)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 171     Error2c: (0.013243935, 0.000257919, -0.040203577) max 0.0402, epoched 32.0\n    test 172 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 173     Error2v: (-0.000440726, -0.000576335, -0.00179728) max 0.001797\n\n    test 174 transform6/: name='-ITRF2000@1988xITRF93@2015-ITRF93@2015xETRF2014@2010', tx=0.0007, ty=0.0012, tz=-0.0261, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 175 transform2c: (4027893.6812, 307045.9082, 4919475.1547)\n    test 176     Error2c: (0.000013934, -0.000012081, 0.000026423) max 2.642e-05, epoched 32.0\n    test 177 transform2v: (-0.01351, 0.01686, 0.00854)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 178     Error2v: (-0.000440726, -0.000036335, -0.00053728) max 0.0005373\n\n    test 179 transform7/: name='-ITRF2000@1988xITRF90@2015-ITRF90@2015xETRF2014@2010', tx=0.02293, ty=0.01047, tz=-0.08613, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 180 transform2c: (4027893.7034, 307045.9175, 4919475.0947)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 181     Error2c: (0.022243935, 0.009257919, -0.060003577) max 0.06, epoched 32.0\n    test 182 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 183     Error2v: (-0.000440726, -0.000576335, -0.00179728) max 0.001797\n\n    test 184 transform8/: name='-ITRF2000@1988xITRF91@2015-ITRF91@2015xETRF2014@2010', tx=0.0007, ty=0.0012, tz=-0.0261, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 185 transform2c: (4027893.6812, 307045.9082, 4919475.1547)\n    test 186     Error2c: (0.000013934, -0.000012081, 0.000026423) max 2.642e-05, epoched 32.0\n    test 187 transform2v: (-0.01351, 0.01686, 0.00854)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 188     Error2v: (-0.000440726, -0.000036335, -0.00053728) max 0.0005373\n\n    test 189 transform0: name='ITRF2020@2015xETRF2020@2020', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=1.29251327e-08, ry=7.80016732e-08, rz=-1.13170058e-07, s=0.0, sx=0.002666, sy=0.016089, sz=-0.023343\n    test 190 transform2c: (4027893.9574, 307045.5561, 4919474.9643)\n    test 191     Error2c: (-0.000024276, -0.000021815, -0.000013824) max 2.428e-05, epoched 5.0\n    test 192 transform2v: (0.01350, -0.01676, -0.01001)\n\n    test 193 transform0: name='-ITRF2014@2015xETRF2020@2020', tx=-0.0014, ty=-0.0014, tz=0.0024, s1=1.0, rx=-1.29251327e-08, ry=-7.80016732e-08, rz=1.13170058e-07, s=-0.00042, sx=-0.002666, sy=-0.016089, sz=0.023343\n    test 194 transform2c: (4027893.5358, 307046.0740, 4919475.2748)\n    test 195     Error2c: (0.000032643, -0.000007101, 0.000047684) max 4.768e-05, epoched 5.0\n    test 196 transform2v: (-0.01350, 0.01666, 0.01021)\n\n    test 197 transform0: name='ITRF2014@2015xETRF2014@2020', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=1.27748405e-08, ry=7.980518e-08, rz=-1.15725026e-07, s=0.0, sx=0.002635, sy=0.016461, sz=-0.02387\n    test 198 transform2c: (4027893.9639, 307045.5450, 4919474.9573)\n    test 199     Error2c: (0.000032525, 0.000026405, -0.000024305) max 3.253e-05, epoched 5.0\n    test 200 transform2v: (0.01381, -0.01706, -0.01024)\n\n    test 201 transform0: name='-ITRF2000@2015xETRF2014@2020', tx=0.0017, ty=0.0022, tz=-0.0451, s1=1.0, rx=-1.27748405e-08, ry=-7.980518e-08, rz=1.15725026e-07, s=0.00322, sx=-0.002635, sy=-0.016461, sz=0.02387\n    test 202 transform2c: (4027893.5504, 307046.0772, 4919475.2456)  FAILED, KNOWN, expected (4027893.5505, 307046.0772, 4919475.2456)\n    test 203     Error2c: (-0.000062619, -0.000037673, -0.000034946) max 6.262e-05, epoched 5.0\n    test 204 transform2v: (-0.01371, 0.01716, 0.00834)\n\n    test 205 transform0: name='ITRF2000@2015xETRF2000@2020', tx=0.054, ty=0.051, tz=-0.048, s1=1.0, rx=1.21736715e-08, ry=7.36431982e-08, rz=-1.19031455e-07, s=0.0, sx=0.002511, sy=0.01519, sz=-0.024552\n    test 206 transform2c: (4027894.0033, 307045.5889, 4919474.9047)\n    test 207     Error2c: (0.000034031, -0.000034106, 0.000010915) max 3.411e-05, epoched 5.0\n    test 208 transform2v: (0.01287, -0.01740, -0.00945)\n\n    test 209 transform0*: name='-ITRF2014@2010xITRF89-ITRF89@1989xETRF89@2010@2018.8', tx=-0.03128, ty=-0.0311, tz=0.15984, s1=0.999999991, rx=-1.58921925e-08, ry=-8.23504519e-08, rz=1.00463091e-07, s=-0.009246, sx=-0.003278, sy=-0.016986, sz=0.020722\n    test 210 transform2c: (4160476.4154, 653193.0567, 4774604.9029)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 211     Error2c: (-0.069560351, 0.035713888, 0.122930501) max 0.1229, epoched 29.8\n    test 212 transform2v: (-0.01148, 0.01996, 0.01845)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 213     Error2v: (-0.015479395, 0.016963959, 0.014448874) max 0.01696\n\n    test 214 transform0*: name='-ITRF2014@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 215 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 216     Error2c: (-0.014174475, 0.037834952, 0.023962618) max 0.03783, epoched 3.8\n    test 217 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 218     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 219 transform1*: name='-ITRF2014@2010xITRF2008@2015-ITRF2008@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 220 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 221     Error2c: (-0.014174475, 0.037834952, 0.023962618) max 0.03783, epoched 8.8\n    test 222 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 223     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 224 transform2*: name='-ITRF2014@2010xITRF89@2015-ITRF89@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 225 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 226     Error2c: (-0.014174475, 0.037834952, 0.023962618) max 0.03783, epoched 8.8\n    test 227 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 228     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 229 transform3*: name='-ITRF2014@2010xITRF88@2015-ITRF88@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 230 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 231     Error2c: (-0.014174475, 0.037834952, 0.023962618) max 0.03783, epoched 8.8\n    test 232 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 233     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 234 transform4*: name='-ITRF2014@2010xITRF96@2015-ITRF96@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 235 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 236     Error2c: (-0.014174475, 0.037834952, 0.023962618) max 0.03783, epoched 8.8\n    test 237 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 238     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 239 transform5*: name='-ITRF2014@2010xITRF93@2015-ITRF93@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 240 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 241     Error2c: (-0.014174475, 0.037834952, 0.023962618) max 0.03783, epoched 8.8\n    test 242 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 243     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 244 transform6*: name='-ITRF2014@2010xITRF90@2015-ITRF90@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 245 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 246     Error2c: (-0.014174475, 0.037834952, 0.023962618) max 0.03783, epoched 8.8\n    test 247 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 248     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 249 transform7*: name='-ITRF2014@2010xITRF92@2015-ITRF92@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 250 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 251     Error2c: (-0.014174475, 0.037834952, 0.023962618) max 0.03783, epoched 8.8\n    test 252 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 253     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 254 transform8*: name='-ITRF2014@2010xITRF91@2015-ITRF91@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 255 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 256     Error2c: (-0.014174475, 0.037834952, 0.023962618) max 0.03783, epoched 8.8\n    test 257 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 258     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 259 toTransform: name='-ITRF2014@2010xITRF91@2015-ITRF91@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=1.0, rx=-1.1702e-08, ry=-7.0792e-08, rz=1.1442e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.023602\n    test 260 toTransform: name='-ITRF2014@2010xITRF91@2015-ITRF91@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=1.0, rx=-1.1702e-08, ry=-7.0792e-08, rz=1.1442e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.023602\n\n    test 261 Issue80: 48.77691577°N, 008.92257142°E, +476.05m\n    test 262 Issue80: 48.77692147°N, 008.92257868°E, +476.09m\n    test 263 Issue80: 48°46′36.915134″N, 008°55′21.285094″E, +476.10m  FAILED, KNOWN, expected 48°46′36.915134″N, 008°55′21.285094″E, +476.10\n    test 264 Issue80: 0.804  FAILED, KNOWN, expected 0.01\n    test 265 Issue80: [4160476.944064, 653192.600457, 4774604.455385]\n    test 266 Issue80: [4160476.415504, 653193.057171, 4774604.903316]\n    test 267 Issue80: [4160476.467901, 653193.103647, 4774604.868888]\n    test 268 Issue80: 48°46′36.915133″N, 008°55′21.285094″E, +476.10m\n\n    test 269 Issue80: 48.77692032°N, 008.92257804°E, +476.05m\n    test 270 Issue80: 48.77691971°N, 008.92257856°E, +476.06m\n    test 271 Issue80: 48°46′36.9315″N, 008°55′21.3089″E, +476.10m  FAILED, KNOWN, expected 48°46′36.9131″N, 008°55′21.28095″E, +476.05m\n    test 272 Issue80: 0.804  FAILED, KNOWN, expected 0.01\n    test 273 Issue80: [4160476.492633, 653193.021888, 4774604.78885]\n    test 274 Issue80: [4160476.54503, 653193.068365, 4774604.754422]\n    test 275 Issue80: [4160476.016469, 653193.525079, 4774605.202353]\n    test 276 Issue80: 48°46′36.9315″N, 008°55′21.3089″E, +476.10m\n\n    test 277 ITRF96@1997xNAD83: TRFXform(epoch=1997.0, name='ITRF96@1997xNAD83')\n    test 278 ITRF96@1997xNAD83: name='ITRF96@1997xNAD83', tx=0.991, ty=-0.19072, tz=-0.5129, s1=1.0, rx=1.2503e-07, ry=4.6785e-08, rz=5.6529e-08, s=0.0, sx=0.02579, sy=0.00965, sz=0.01166\n    test 279 ITRF96@1997xNAD83: name='ITRF96@1997xNAD83@2007', tx=0.991, ty=-0.19072, tz=-0.5129, s1=1.0, rx=1.2761e-07, ry=1.0797e-08, rz=5.4997e-08, s=0.0, sx=0.026322, sy=0.002227, sz=0.011344\n    test 280 ITRF96@1997xNAD83: rx=-2.5792e-10, ry=3.5988e-09, rz=1.532e-10\n\n    testTrf(pygeodesy.ellipsoidalVincenty, 25.05.26)\n    test 281 convertRefFrame: 51.47787826°N, 000.00147125°W, -0.00m  FAILED, KNOWN, expected 51.47787826°N, 000.00147125°W\n    test 282 copy(<type 'type'>): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 283 RefFrame.copy(): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 284 toLatLon: 50.7978°N, 004.3592°E, +148.96m\n    test 285 convertRefFrame: [3980574.395, -102.214, 4966829.941]\n    test 286 Nil: True\n    test 287 copy(<type 'type'>): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 288 RefFrame.copy(): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 289 Nil: True\n    test 290 reframe: True\n    test 291 Roundtrip: True\n    test 292 reframe: True\n    test 293 copy(<type 'type'>): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 294 RefFrame.copy(): (<class 'pygeodesy.trf.RefFrame'>, True)\n\n    test 295 Geodetic: 23°40′12.44582″S, 133°53′07.84795″E, +603.34m\n    test 296 Cartesian: [-4052051.7614, 4212836.1945, -2545106.0147]\n    test 297 Geodetic: 23°40′12.44582″S, 133°53′07.84795″E, +603.34m\n    test 298 Cartesian: [-4052051.7614, 4212836.1945, -2545106.0147]\n    test 299 Roundtrip: 23°40′12.41482″S, 133°53′07.86712″E, +603.26m\n    test 300 GNSStrans: [3370658.18892, 711877.42369, 5349787.1243]\n    test 301 Cartesian: [-734972.563, 4893188.492, 4011982.811]\n\n    test 302 EUREF EX1: [4027893.9676, 307045.5791, 4919474.9587]  FAILED, KNOWN, expected [4027894.0444, 307045.6209, 4919474.8613]\n    test 303 transform0: ITRF2005@2015xETRF2020-ITRF91@2015xETRF2020@2007 max 0.097331, epoched 8.0\n    test 304 transform1: ITRF2005@2015xETRF2000-ITRF91@2015xETRF2000@2007 max 0.048666, epoched 8.0\n    test 305 transform2: ITRF2005@2015xETRF2014-ITRF91@2015xETRF2014@2007 max 4.6566e-10, epoched 8.0\n    test 306 transform3: ITRF2005@2000xITRF2000+ITRF2000@1988xITRF91@2000@2007 max 0.048666, epoched 19.0\n    test 307 transform4: -ITRF2020@2015xITRF2005+ITRF2020@2015xITRF91@2007 max 0.097331, epoched 8.0\n    test 308 transform5: -ITRF2014@2010xITRF2005+ITRF2014@2010xITRF91@2007 max 0.146, epoched 3.0\n    test 309 transform6: -ITRF2008@2005xITRF2005+ITRF2008@2000xITRF91@2005@2007 max 0.19466, epoched 7.0\n    test 310 transform7: ITRF2000@1988xITRF91+ITRF2005@2000xITRF2000@1988@2007 max 0.24333, epoched 31.0\n    test 311 transform8: ITRF2014@2010xITRF91-ITRF2014@2020xGDA2020@2010+ITRF2005@2020xGDA2020@2010@2007 max 0.90432, epoched 23.0\n    test 312 transform9: ITRF2008@2000x./test/testTrf.py:136: DeprecationWarning: method L{convertRefFrame<pygeodesy.ellipsoidalVincenty.LatLon.convertRefFrame>} has been DEPRECATED, use method L{toRefFrame}.\n  t = LatLon(0, 0, reframe=RefFrames.ITRF2000).convertRefFrame('ITRF2000')\nITRF91-ITRF2008@1997xNAD83@2000+ITRF2005@1997xNAD83@2000@2007 max 0.94279, epoched 13.0\n    test 313 transform10: ITRF2008@2000xITRF91-ITRF2008@1994xGDA94@2000+ITRF2005@1994xGDA94@2000@2007 max 0.31072, epoched 19.0\n    test 314 EUREF EX2: [4027893.9292, 307045.5582, 4919475.0073]  FAILED, KNOWN, expected [4027894.0060, 307045.6000, 4919474.9100]\n    test 315 transform0: ITRF91@2015xETRF2000-ITRF2005@2015xETRF2000@2007 max 0.146, epoched 8.0\n    test 316 transform1: ITRF91@2015xETRF2014-ITRF2005@2015xETRF2014@2007 max 0.19466, epoched 8.0\n    test 317 transform2: ITRF91@2015xETRF2020-ITRF2005@2015xETRF2020@2007 max 0.146, epoched 8.0\n    test 318 transform3: -ITRF2005@2000xITRF2000-ITRF2000@1988xITRF91@2000@2007 max 0.19466, epoched 19.0\n    test 319 EUREF EX4: [4027894.3559, 307045.2508, 4919474.6447]\n    test 320 transform0: -ITRF2000@2015xETRF2000@2012 max 4.5169e-08, epoched 3.0\n    test 321 transform1: -ITRF2000@1988xITRF89@2015-ITRF89@2015xETRF2000@2012 max 0.37894, epoched 30.0\n    test 322 transform2: -ITRF2000@1988xITRF88@2015-ITRF88@2015xETRF2000@2012 max 0.72548, epoched 30.0\n    test 323 transform3: -ITRF2000@1997xITRF96@2015-ITRF96@2015xETRF2000@2012 max 1.072, epoched 21.0\n    test 324 transform4: -ITRF2000@1997xITRF97@2015-ITRF97@2015xETRF2000@2012 max 1.4303, epoched 21.0\n    test 325 transform5: -ITRF2000@1988xITRF92@2015-ITRF92@2015xETRF2000@2012 max 1.7786, epoched 30.0\n    test 326 transform6: -ITRF2000@1988xITRF93@2015-ITRF93@2015xETRF2000@2012 max 2.1278, epoched 30.0\n    test 327 transform7: -ITRF2000@1988xITRF90@2015-ITRF90@2015xETRF2000@2012 max 2.4851, epoched 30.0\n    test 328 transform8: -ITRF2000@1988xITRF91@2015-ITRF91@2015xETRF2000@2012 max 2.8343, epoched 30.0\n    test 329 EUREF EX5: [4027893.6458, 307045.9470, 4919475.1937]  FAILED, KNOWN, expected [4027894.3662, 307045.2530, 4919474.6263]\n    test 330 transform0: ITRF2014@2015xETRF2000@2012 max 4.5635e-08, epoched 3.0\n    test 331 transform1: ITRF2014@2010xITRF2008@2015+ITRF2008@2015xETRF2000@2012 max 0.36023, epoched 8.0\n    test 332 transform2: ITRF2014@2010xITRF89@2015+ITRF89@2015xETRF2000@2012 max 0.72047, epoched 8.0\n    test 333 transform3: ITRF2014@2010xITRF88@2015+ITRF88@2015xETRF2000@2012 max 1.0807, epoched 8.0\n    test 334 transform4: ITRF2014@2010xITRF96@2015+ITRF96@2015xETRF2000@2012 max 1.4409, epoched 8.0\n    test 335 transform5: ITRF2014@2010xITRF93@2015+ITRF93@2015xETRF2000@2012 max 1.8012, epoched 8.0\n    test 336 transform6: ITRF2014@2010xITRF90@2015+ITRF90@2015xETRF2000@2012 max 2.1614, epoched 8.0\n    test 337 transform7: ITRF2014@2010xITRF92@2015+ITRF92@2015xETRF2000@2012 max 2.5216, epoched 8.0\n    test 338 transform8: ITRF2014@2010xITRF91@2015+ITRF91@2015xETRF2000@2012 max 2.8819, epoched 8.0\n\n    test 339 Case 1A: [4027893.9619, 307045.5481, 4919474.9553]\n    test 340 Case 1B: [4027894.0054, 307045.5938, 4919474.9083]\n    test 341 Case 2A: [4027893.9639, 307045.545, 4919474.9573]\n    test 342 Case 2B: [4027894.0033, 307045.5889, 4919474.9041]\n\n    test 343 TypeError: type(reframe) ('ITRF2000'): not a RefFrame\n    test 344 TRFError: epoch (1899): below 1900.0 limit\n    test 345 TypeError: type(reframe2) ('ITRF2000'): not a RefFrame\n    test 346 TRFError: no conversion: LatLon(00°00′00.0″N, 000°00′00.0″E).reframe MISSING\n    test 347 TypeError: type(reframe2) ('ITRF2000'): not a RefFrame\n    test 348 TypeError: type(reframe) ('ITRF2000'): not a RefFrame\n\n    test 349 ETRF89@1989: [4160476.944000, 653192.600000, 4774604.455000]\n    test 350 ITRF2014@2018.8: [4160476.415, 653193.057, 4774604.903]  FAILED, KNOWN, expected [4160476.485, 653193.021, 4774604.78]\n    test 351 TransformXform: -ITRF2014@2010xITRF89-ITRF89@1989xETRF89@2010@2018.8\n    test 352 Delta (m): [-0.06956, 0.035714, 0.122931]  FAILED, KNOWN, expected [0.01, 0.01, 0.01]\n    test 353 Error (m): 0.145692  FAILED, KNOWN, expected 0.01\n    test 354 Epoch range: 29.800  FAILED, KNOWN, expected 14.0\n    test 355 ETRF89@1989: [4160476.467836, 653193.103190, 4774604.868503]  FAILED, KNOWN, expected [4160476.944000, 653192.600000, 4774604.455000]\n    test 356 TransformXform: ITRF2014@2010xITRF89+ITRF89@1989xETRF89@2010@1989\n\n    test 357 inverse: -ITRF2014@2010xITRF89-ITRF89@1989xETRF89@2010@1989\n    test 358 inverse: ITRF2014@2010xITRF89+ITRF89@1989xETRF89@2010@1989\n    test 359 inverse: name='ITRF2014@2010xITRF89+ITRF89@1989xETRF89@2010@1989', tx=0.0283, ty=0.046, tz=-0.0615, s1=1.0, rx=0.0, ry=0.0, rz=-7.757e-10, s=0.00567, sx=0.0, sy=0.0, sz=-0.00016\n\n    test 360 ETRF2000@2000: [4160476.952000, 653192.582000, 4774604.441000]\n    test 361 ITRF2014@2018.8: [4160476.471, 653193.059, 4774604.804]  FAILED, KNOWN, expected [4160476.485, 653193.021, 4774604.78]\n    test 362 TransformXform: -ITRF2014@2015xETRF2000@2018.8\n    test 363 Delta (m): [-0.014174, 0.037835, 0.023963]  FAILED, KNOWN, expected [0.01, 0.01, 0.01]\n    test 364 Error (m): 0.046975  FAILED, KNOWN, expected 0.01\n    test 365 Epoch range: 18.800  FAILED, KNOWN, expected 14.0\n    test 366 ETRF2000@2000: [4160476.681125, 653192.914350, 4774604.647835]  FAILED, KNOWN, expected [4160476.952000, 653192.582000, 4774604.441000]\n    test 367 TransformXform: ITRF2014@2015xETRF2000@2000\n\n    test 368 inverse: -ITRF2014@2015xETRF2000@2000\n    test 369 inverse: ITRF2014@2015xETRF2000@2000\n    test 370 inverse: name='ITRF2014@2015xETRF2000@2000', tx=0.0537, ty=0.0512, tz=-0.0551, s1=1.0, rx=4.3197e-09, ry=2.6131e-08, rz=-4.2237e-08, s=0.00102, sx=0.000891, sy=0.00539, sz=-0.008712\n\n    test 371 ITRF2008@2005: [4160476.674000, 653192.806000, 4774604.648000]\n    test 372 ITRF2014@2018.8: [4160476.671, 653192.804, 4774604.645]  FAILED, KNOWN, expected [4160476.485, 653193.021, 4774604.78]\n    test 373 TransformXform: -ITRF2014@2010xITRF2008@2018.8\n    test 374 Delta (m): [0.186385, -0.217059, -0.134685]  FAILED, KNOWN, expected [0.01, 0.01, 0.01]\n    test 375 Error (m): 0.316218  FAILED, KNOWN, expected 0.01\n    test 376 Epoch range: 13.800  FAILED, KNOWN, expected 14.0\n    test 377 ITRF2008@2005: [4160476.672278, 653192.805730, 4774604.647403]  FAILED, KNOWN, expected [4160476.674000, 653192.806000, 4774604.648000]\n    test 378 TransformXform: ITRF2014@2010xITRF2008@2005\n\n    test 379 inverse: -ITRF2014@2010xITRF2008@2005\n    test 380 inverse: ITRF2014@2010xITRF2008@2005\n    test 381 inverse: name='ITRF2014@2010xITRF2008@2005', tx=0.0016, ty=0.0019, tz=0.0029, s1=1.0, rx=0.0, ry=0.0, rz=0.0, s=-0.00017, sx=0.0, sy=0.0, sz=0.0\n\n    test 382 toRefFrame1: ITRF2020@2015 2024.31 [0.0031474, 0.00210534, -0.00125667]\n    test 383 toRefFrame2: ITRF2014@2010 2024.32 [0.0031474, 0.00210634, -0.00125867]\n    test 384 transform0: -ITRF2020@2015xITRF2014@2010\n    test 385 transform0X: TRFXform(epoch=2010.0, name='-ITRF2020@2015xITRF2014@2010')\n    test 386 toRefFrame3: ITRF2020@2015 2010 [0.0031474, 0.00067434, 0.00160533]\n    test 387 transform2x: (4160476.488147, 653193.021674, 4774604.781605)\n    test 388 transform2v: (0.000, 0.000, 0.000)  FAILED, KNOWN, expected (0.004, 0.003, 0.004)\n\n    test 389 transform0: name='ITRF2020@2015xETRF2020@2010', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=8.75573508e-09, ry=5.28398431e-08, rz=-7.66635874e-08, s=0.0, sx=0.001806, sy=0.010899, sz=-0.015813\n    test 390 transform2c: (4027893.9585, 307045.5550, 4919474.9620)  FAILED, KNOWN, expected (4027893.9585, 307045.5550, 4919474.9619)\n    test 391     Error2c: (-0.000016463, 0.0000336, 0.000055143) max 5.514e-05, epoched 5.0\n    test 392 transform2v: (-0.00011, 0.00010, 0.00023)  FAILED, KNOWN, expected (0.00011, 0.00011, 0.00024)\n    test 393     Error2v: (-0.000220786, -0.000005544, -0.000006899) max 0.0002208\n    test 394 transform0v: (0.00009, 0.00052, -0.00075)  FAILED, KNOWN, expected (0.00011, 0.00011, 0.00024)\n    test 395     Error0v: (-0.000024, 0.000409, -0.000993) max 0.000993\n\n    test 396 transform0: name='-ITRF2014@2015xETRF2020@2010', tx=-0.0014, ty=-0.0004, tz=0.0004, s1=1.0, rx=-8.75573508e-09, ry=-5.28398431e-08, rz=7.66635874e-08, s=-0.00042, sx=-0.001806, sy=-0.010899, sz=0.015813\n    test 397 transform2c: (4027893.6719, 307045.9063, 4919475.1704)  FAILED, KNOWN, expected (4027893.6719, 307045.9064, 4919475.1704)\n    test 398     Error2c: (0.000024786, -0.000062539, -0.000021305) max 6.254e-05, epoched 5.0\n    test 399 transform2v: (-0.01339, 0.01677, 0.01045)  FAILED, KNOWN, expected (-0.01361, 0.01676, 0.01044)\n    test 400     Error2v: (0.000220784, 0.000005543, 0.000006898) max 0.0002208\n    test 401 transform0v: (-0.00009, -0.00052, 0.00075)  FAILED, KNOWN, expected (-0.01361, 0.01676, 0.01044)\n    test 402     Error0v: (0.013524, -0.017279, -0.009687) max 0.01728\n\n    test 403 transform0: name='ITRF2014@2015xETRF2014@2010', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=8.65392421e-09, ry=5.40615736e-08, rz=-7.83943722e-08, s=0.0, sx=0.001785, sy=0.011151, sz=-0.01617\n    test 404 transform2c: (4027893.9619, 307045.5481, 4919474.9553)  FAILED, KNOWN, expected (4027893.9620, 307045.5480, 4919474.9553)\n    test 405     Error2c: (-0.00007476, 0.000063039, 0.000002882) max 7.476e-05, epoched 5.0\n    test 406 transform2v: (0.00020, -0.00030, 0.00020)\n    test 407     Error2v: (0.000000724, -0.000003666, -0.000002721) max 3.666e-06\n    test 408 transform0v: (0.00009, 0.00053, -0.00077)  FAILED, KNOWN, expected (0.00020, -0.00030, 0.00020)\n    test 409     Error0v: (-0.000115, 0.000831, -0.00097) max 0.00097\n\n    test 410 transform0: name='-ITRF2000@2015xETRF2014@2010', tx=0.0007, ty=0.0012, tz=-0.0261, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 411 transform2c: (4027893.6812, 307045.9082, 4919475.1547)\n    test 412     Error2c: (0.000013934, -0.000012081, 0.000026423) max 2.642e-05, epoched 5.0\n    test 413 transform2v: (-0.01351, 0.01686, 0.00854)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 414     Error2v: (-0.000440726, -0.000036335, -0.00053728) max 0.0005373\n    test 415 transform0v: (-0.00008, -0.00053, 0.00077)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 416     Error0v: (0.012985, -0.017431, -0.00831) max 0.01743\n\n    test 417 transform0: name='ITRF2000@2015xETRF2000@2010', tx=0.054, ty=0.051, tz=-0.048, s1=1.0, rx=8.24668072e-09, ry=4.98873278e-08, rz=-8.06342114e-08, s=0.0, sx=0.001701, sy=0.01029, sz=-0.016632\n    test 418 transform2c: (4027894.0054, 307045.5938, 4919474.9083)  FAILED, KNOWN, expected (4027894.0053, 307045.5939, 4919474.9083)\n    test 419     Error2c: (0.000077874, -0.000055372, -0.000008743) max 7.787e-05, epoched 5.0\n    test 420 transform2v: (-0.00020, -0.00050, -0.00037)  FAILED, KNOWN, expected (-0.00020, -0.00050, -0.00036)\n    test 421     Error2v: (-0.000004389, 0.000002124, -0.000008036) max 8.036e-06\n    test 422 transform0v: (0.00008, 0.00049, -0.00079)  FAILED, KNOWN, expected (-0.00020, -0.00050, -0.00036)\n    test 423     Error0v: (0.000281, 0.00099, -0.000432) max 0.00099\n\n    test 424 transform0/: name='-ITRF2000@2015xETRF2014@2010', tx=0.0007, ty=0.0012, tz=-0.0261, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 425 transform2c: (4027893.6812, 307045.9082, 4919475.1547)\n    test 426     Error2c: (0.000013934, -0.000012081, 0.000026423) max 2.642e-05, epoched 5.0\n    test 427 transform2v: (-0.01351, 0.01686, 0.00854)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 428     Error2v: (-0.000440726, -0.000036335, -0.00053728) max 0.0005373\n\n    test 429 transform1/: name='-ITRF2000@1988xITRF89@2015-ITRF89@2015xETRF2014@2010', tx=0.02743, ty=0.03207, tz=-0.12033, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 430 transform2c: (4027893.7079, 307045.9391, 4919475.0605)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 431     Error2c: (0.026743934, 0.030857919, -0.094203577) max 0.0942, epoched 32.0\n    test 432 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 433     Error2v: (-0.000440726, -0.000576335, -0.00179728) max 0.001797\n\n    test 434 transform2/: name='-ITRF2000@1988xITRF88@2015-ITRF88@2015xETRF2014@2010', tx=0.02293, ty=-0.00033, tz=-0.14193, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 435 transform2c: (4027893.7034, 307045.9067, 4919475.0389)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 436     Error2c: (0.022243935, -0.001542081, -0.115803577) max 0.1158, epoched 32.0\n    test 437 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 438     Error2v: (-0.000440725, -0.000576335, -0.00179728) max 0.001797\n\n    test 439 transform3/: name='-ITRF2000@1997xITRF96@2015-ITRF96@2015xETRF2014@2010', tx=0.00673, ty=-0.00033, tz=-0.05913, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 440 transform2c: (4027893.6872, 307045.9067, 4919475.1217)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 441     Error2c: (0.006043935, -0.001542081, -0.033003577) max 0.033, epoched 23.0\n    test 442 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 443     Error2v: (-0.000440726, -0.000576335, -0.00179728) max 0.001797\n\n    test 444 transform4/: name='-ITRF2000@1997xITRF97@2015-ITRF97@2015xETRF2014@2010', tx=0.00673, ty=-0.00033, tz=-0.05913, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=8.09154034e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01669\n    test 445 transform2c: (4027893.6865, 307045.9168, 4919475.1217)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 446     Error2c: (0.005269863, 0.008612365, -0.033003577) max 0.033, epoched 23.0\n    test 447 transform2v: (-0.01357, 0.01710, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 448     Error2v: (-0.00050027, 0.000204776, -0.00179728) max 0.001797\n\n    test 449 transform5/: name='-ITRF2000@1988xITRF92@2015-ITRF92@2015xETRF2014@2010', tx=0.01393, ty=0.00147, tz=-0.06633, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 450 transform2c: (4027893.6944, 307045.9085, 4919475.1145)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 451     Error2c: (0.013243935, 0.000257919, -0.040203577) max 0.0402, epoched 32.0\n    test 452 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 453     Error2v: (-0.000440726, -0.000576335, -0.00179728) max 0.001797\n\n    test 454 transform6/: name='-ITRF2000@1988xITRF93@2015-ITRF93@2015xETRF2014@2010', tx=0.0007, ty=0.0012, tz=-0.0261, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 455 transform2c: (4027893.6812, 307045.9082, 4919475.1547)\n    test 456     Error2c: (0.000013934, -0.000012081, 0.000026423) max 2.642e-05, epoched 32.0\n    test 457 transform2v: (-0.01351, 0.01686, 0.00854)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 458     Error2v: (-0.000440726, -0.000036335, -0.00053728) max 0.0005373\n\n    test 459 transform7/: name='-ITRF2000@1988xITRF90@2015-ITRF90@2015xETRF2014@2010', tx=0.02293, ty=0.01047, tz=-0.08613, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 460 transform2c: (4027893.7034, 307045.9175, 4919475.0947)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 461     Error2c: (0.022243935, 0.009257919, -0.060003577) max 0.06, epoched 32.0\n    test 462 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 463     Error2v: (-0.000440726, -0.000576335, -0.00179728) max 0.001797\n\n    test 464 transform8/: name='-ITRF2000@1988xITRF91@2015-ITRF91@2015xETRF2014@2010', tx=0.0007, ty=0.0012, tz=-0.0261, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 465 transform2c: (4027893.6812, 307045.9082, 4919475.1547)\n    test 466     Error2./test/testTrf.py:29: DeprecationWarning: method L{convertRefFrame<pygeodesy.ellipsoidalKarney.LatLon.convertRefFrame>} has been DEPRECATED, use method L{toRefFrame}.\n  x = p.convertRefFrame(RefFrames.ETRF2000)\nc: (0.000013934, -0.000012081, 0.000026423) max 2.642e-05, epoched 32.0\n    test 467 transform2v: (-0.01351, 0.01686, 0.00854)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 468     Error2v: (-0.000440726, -0.000036335, -0.00053728) max 0.0005373\n\n    test 469 transform0: name='ITRF2020@2015xETRF2020@2020', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=1.29251327e-08, ry=7.80016732e-08, rz=-1.13170058e-07, s=0.0, sx=0.002666, sy=0.016089, sz=-0.023343\n    test 470 transform2c: (4027893.9574, 307045.5561, 4919474.9643)\n    test 471     Error2c: (-0.000024276, -0.000021815, -0.000013824) max 2.428e-05, epoched 5.0\n    test 472 transform2v: (0.01350, -0.01676, -0.01001)\n\n    test 473 transform0: name='-ITRF2014@2015xETRF2020@2020', tx=-0.0014, ty=-0.0014, tz=0.0024, s1=1.0, rx=-1.29251327e-08, ry=-7.80016732e-08, rz=1.13170058e-07, s=-0.00042, sx=-0.002666, sy=-0.016089, sz=0.023343\n    test 474 transform2c: (4027893.5358, 307046.0740, 4919475.2748)\n    test 475     Error2c: (0.000032643, -0.000007101, 0.000047684) max 4.768e-05, epoched 5.0\n    test 476 transform2v: (-0.01350, 0.01666, 0.01021)\n\n    test 477 transform0: name='ITRF2014@2015xETRF2014@2020', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=1.27748405e-08, ry=7.980518e-08, rz=-1.15725026e-07, s=0.0, sx=0.002635, sy=0.016461, sz=-0.02387\n    test 478 transform2c: (4027893.9639, 307045.5450, 4919474.9573)\n    test 479     Error2c: (0.000032525, 0.000026405, -0.000024305) max 3.253e-05, epoched 5.0\n    test 480 transform2v: (0.01381, -0.01706, -0.01024)\n\n    test 481 transform0: name='-ITRF2000@2015xETRF2014@2020', tx=0.0017, ty=0.0022, tz=-0.0451, s1=1.0, rx=-1.27748405e-08, ry=-7.980518e-08, rz=1.15725026e-07, s=0.00322, sx=-0.002635, sy=-0.016461, sz=0.02387\n    test 482 transform2c: (4027893.5504, 307046.0772, 4919475.2456)  FAILED, KNOWN, expected (4027893.5505, 307046.0772, 4919475.2456)\n    test 483     Error2c: (-0.000062619, -0.000037673, -0.000034946) max 6.262e-05, epoched 5.0\n    test 484 transform2v: (-0.01371, 0.01716, 0.00834)\n\n    test 485 transform0: name='ITRF2000@2015xETRF2000@2020', tx=0.054, ty=0.051, tz=-0.048, s1=1.0, rx=1.21736715e-08, ry=7.36431982e-08, rz=-1.19031455e-07, s=0.0, sx=0.002511, sy=0.01519, sz=-0.024552\n    test 486 transform2c: (4027894.0033, 307045.5889, 4919474.9047)\n    test 487     Error2c: (0.000034031, -0.000034106, 0.000010915) max 3.411e-05, epoched 5.0\n    test 488 transform2v: (0.01287, -0.01740, -0.00945)\n\n    test 489 transform0*: name='-ITRF2014@2010xITRF89-ITRF89@1989xETRF89@2010@2018.8', tx=-0.03128, ty=-0.0311, tz=0.15984, s1=0.999999991, rx=-1.58921925e-08, ry=-8.23504519e-08, rz=1.00463091e-07, s=-0.009246, sx=-0.003278, sy=-0.016986, sz=0.020722\n    test 490 transform2c: (4160476.4154, 653193.0567, 4774604.9029)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 491     Error2c: (-0.069560351, 0.035713888, 0.122930501) max 0.1229, epoched 29.8\n    test 492 transform2v: (-0.01148, 0.01996, 0.01845)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 493     Error2v: (-0.015479395, 0.016963959, 0.014448874) max 0.01696\n\n    test 494 transform0*: name='-ITRF2014@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 495 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 496     Error2c: (-0.014174475, 0.037834952, 0.023962618) max 0.03783, epoched 3.8\n    test 497 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 498     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 499 transform1*: name='-ITRF2014@2010xITRF2008@2015-ITRF2008@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 500 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 501     Error2c: (-0.014174475, 0.037834952, 0.023962618) max 0.03783, epoched 8.8\n    test 502 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 503     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 504 transform2*: name='-ITRF2014@2010xITRF89@2015-ITRF89@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 505 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 506     Error2c: (-0.014174475, 0.037834952, 0.023962618) max 0.03783, epoched 8.8\n    test 507 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 508     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 509 transform3*: name='-ITRF2014@2010xITRF88@2015-ITRF88@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 510 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 511     Error2c: (-0.014174475, 0.037834952, 0.023962618) max 0.03783, epoched 8.8\n    test 512 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 513     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 514 transform4*: name='-ITRF2014@2010xITRF96@2015-ITRF96@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 515 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 516     Error2c: (-0.014174475, 0.037834952, 0.023962618) max 0.03783, epoched 8.8\n    test 517 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 518     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 519 transform5*: name='-ITRF2014@2010xITRF93@2015-ITRF93@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 520 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 521     Error2c: (-0.014174475, 0.037834952, 0.023962618) max 0.03783, epoched 8.8\n    test 522 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 523     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 524 transform6*: name='-ITRF2014@2010xITRF90@2015-ITRF90@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 525 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 526     Error2c: (-0.014174475, 0.037834952, 0.023962618) max 0.03783, epoched 8.8\n    test 527 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 528     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 529 transform7*: name='-ITRF2014@2010xITRF92@2015-ITRF92@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 530 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 531     Error2c: (-0.014174475, 0.037834952, 0.023962618) max 0.03783, epoched 8.8\n    test 532 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 533     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 534 transform8*: name='-ITRF2014@2010xITRF91@2015-ITRF91@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 535 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 536     Error2c: (-0.014174475, 0.037834952, 0.023962618) max 0.03783, epoched 8.8\n    test 537 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 538     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 539 toTransform: name='-ITRF2014@2010xITRF91@2015-ITRF91@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=1.0, rx=-1.1702e-08, ry=-7.0792e-08, rz=1.1442e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.023602\n    test 540 toTransform: name='-ITRF2014@2010xITRF91@2015-ITRF91@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=1.0, rx=-1.1702e-08, ry=-7.0792e-08, rz=1.1442e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.023602\n\n    test 541 Issue80: 48.77691577°N, 008.92257142°E, +476.05m\n    test 542 Issue80: 48.77692147°N, 008.92257868°E, +476.09m\n    test 543 Issue80: 48°46′36.915134″N, 008°55′21.285094″E, +476.10m  FAILED, KNOWN, expected 48°46′36.915134″N, 008°55′21.285094″E, +476.10\n    test 544 Issue80: 0.804  FAILED, KNOWN, expected 0.01\n    test 545 Issue80: [4160476.944064, 653192.600457, 4774604.455385]\n    test 546 Issue80: [4160476.415504, 653193.057171, 4774604.903316]\n    test 547 Issue80: [4160476.467901, 653193.103647, 4774604.868888]\n    test 548 Issue80: 48°46′36.915133″N, 008°55′21.285094″E, +476.10m\n\n    test 549 Issue80: 48.77692032°N, 008.92257804°E, +476.05m\n    test 550 Issue80: 48.77691971°N, 008.92257856°E, +476.06m\n    test 551 Issue80: 48°46′36.9315″N, 008°55′21.3089″E, +476.10m  FAILED, KNOWN, expected 48°46′36.9131″N, 008°55′21.28095″E, +476.05m\n    test 552 Issue80: 0.804  FAILED, KNOWN, expected 0.01\n    test 553 Issue80: [4160476.492633, 653193.021888, 4774604.78885]\n    test 554 Issue80: [4160476.54503, 653193.068365, 4774604.754422]\n    test 555 Issue80: [4160476.016469, 653193.525079, 4774605.202353]\n    test 556 Issue80: 48°46′36.9315″N, 008°55′21.3089″E, +476.10m\n\n    test 557 ITRF96@1997xNAD83: TRFXform(epoch=1997.0, name='ITRF96@1997xNAD83')\n    test 558 ITRF96@1997xNAD83: name='ITRF96@1997xNAD83', tx=0.991, ty=-0.19072, tz=-0.5129, s1=1.0, rx=1.2503e-07, ry=4.6785e-08, rz=5.6529e-08, s=0.0, sx=0.02579, sy=0.00965, sz=0.01166\n    test 559 ITRF96@1997xNAD83: name='ITRF96@1997xNAD83@2007', tx=0.991, ty=-0.19072, tz=-0.5129, s1=1.0, rx=1.2761e-07, ry=1.0797e-08, rz=5.4997e-08, s=0.0, sx=0.026322, sy=0.002227, sz=0.011344\n    test 560 ITRF96@1997xNAD83: rx=-2.5792e-10, ry=3.5988e-09, rz=1.532e-10\n\n    testTrf(pygeodesy.ellipsoidalKarney, 25.05.27)\n    test 561 convertRefFrame: 51.47787826°N, 000.00147125°W, -0.00m  FAILED, KNOWN, expected 51.47787826°N, 000.00147125°W\n    test 562 copy(<type 'type'>): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 563 RefFrame.copy(): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 564 toLatLon: 50.7978°N, 004.3592°E, +148.96m\n    test 565 convertRefFrame: [3980574.395, -102.214, 4966829.941]\n    test 566 Nil: True\n    test 567 copy(<type 'type'>): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 568 RefFrame.copy(): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 569 Nil: True\n    test 570 reframe: True\n    test 571 Roundtrip: True\n    test 572 reframe: True\n    test 573 copy(<type 'type'>): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 574 RefFrame.copy(): (<class 'pygeodesy.trf.RefFrame'>, True)\n\n    test 575 Geodetic: 23°40′12.44582″S, 133°53′07.84795″E, +603.34m\n    test 576 Cartesian: [-4052051.7614, 4212836.1945, -2545106.0147]\n    test 577 Geodetic: 23°40′12.44582″S, 133°53′07.84795″E, +603.34m\n    test 578 Cartesian: [-4052051.7614, 4212836.1945, -2545106.0147]\n    test 579 Roundtrip: 23°40′12.41482″S, 133°53′07.86712″E, +603.26m\n    test 580 GNSStrans: [3370658.18892, 711877.42369, 5349787.1243]\n    test 581 Cartesian: [-734972.563, 4893188.492, 4011982.811]\n\n    test 582 EUREF EX1: [4027893.9676, 307045.5791, 4919474.9587]  FAILED, KNOWN, expected [4027894.0444, 307045.6209, 4919474.8613]\n    test 583 transform0: ITRF2005@2015xETRF2020-ITRF91@2015xETRF2020@2007 max 0.097331, epoched 8.0\n    test 584 transform1: ITRF2005@2015xETRF2000-ITRF91@2015xETRF2000@2007 max 0.048666, epoched 8.0\n    test 585 transform2: ITRF2005@2015xETRF2014-ITRF91@2015xETRF2014@2007 max 4.6566e-10, epoched 8.0\n    test 586 transform3: ITRF2005@2000xITRF2000+ITRF2000@1988xITRF91@2000@2007 max 0.048666, epoched 19.0\n    test 587 transform4: -ITRF2020@2015xITRF2005+ITRF2020@2015xITRF91@2007 max 0.097331, epoched 8.0\n    test 588 transform5: -ITRF2014@2010xITRF2005+ITRF2014@2010xITRF91@2007 max 0.146, epoched 3.0\n    test 589 transform6: -ITRF2008@2005xITRF2005+ITRF2008@2000xITRF91@2005@2007 max 0.19466, epoched 7.0\n    test 590 transform7: ITRF2000@1988xITRF91+ITRF2005@2000xITRF2000@1988@2007 max 0.24333, epoched 31.0\n    test 591 transform8: ITRF2014@2010xITRF91-ITRF2014@2020xGDA2020@2010+ITRF2005@2020xGDA2020@2010@2007 max 0.90432, epoched 23.0\n    test 592 transform9: ITRF2008@2000xITRF91-ITRF2008@1997xNAD83@2000+ITRF2005@1997xNAD83@2000@2007 max 0.94279, epoched 13.0\n    test 593 transform10: ITRF2008@2000xITRF91-ITRF2008@1994xGDA94@2000+ITRF2005@1994xGDA94@2000@2007 max 0.31072, epoched 19.0\n    test 594 EUREF EX2: [4027893.9292, 307045.5582, 4919475.0073]  FAILED, KNOWN, expected [4027894.0060, 307045.6000, 4919474.9100]\n    test 595 transform0: ITRF91@2015xETRF2000-ITRF2005@2015xETRF2000@2007 max 0.146, epoched 8.0\n    test 596 transform1: ITRF91@2015xETRF2014-ITRF2005@2015xETRF2014@2007 max 0.19466, epoched 8.0\n    test 597 transform2: ITRF91@2015xETRF2020-ITRF2005@2015xETRF2020@2007 max 0.146, epoched 8.0\n    test 598 transform3: -ITRF2005@2000xITRF2000-ITRF2000@1988xITRF91@2000@2007 max 0.19466, epoched 19.0\n    test 599 EUREF EX4: [4027894.3559, 307045.2508, 4919474.6447]\n    test 600 transform0: -ITRF2000@2015xETRF2000@2012 max 4.5169e-08, epoched 3.0\n    test 601 transform1: -ITRF2000@1988xITRF89@2015-ITRF89@2015xETRF2000@2012 max 0.37894, epoched 30.0\n    test 602 transform2: -ITRF2000@1988xITRF88@2015-ITRF88@2015xETRF2000@2012 max 0.72548, epoched 30.0\n    test 603 transform3: -ITRF2000@1997xITRF96@2015-ITRF96@2015xETRF2000@2012 max 1.072, epoched 21.0\n    test 604 transform4: -ITRF2000@1997xITRF97@2015-ITRF97@2015xETRF2000@2012 max 1.4303, epoched 21.0\n    test 605 transform5: -ITRF2000@1988xITRF92@2015-ITRF92@2015xETRF2000@2012 max 1.7786, epoched 30.0\n    test 606 transform6: -ITRF2000@1988xITRF93@2015-ITRF93@2015xETRF2000@2012 max 2.1278, epoched 30.0\n    test 607 transform7: -ITRF2000@1988xITRF90@2015-ITRF90@2015xETRF2000@2012 max 2.4851, epoched 30.0\n    test 608 transform8: -ITRF2000@1988xITRF91@2015-ITRF91@2015xETRF2000@2012 max 2.8343, epoched 30.0\n    test 609 EUREF EX5: [4027893.6458, 307045.9470, 4919475.1937]  FAILED, KNOWN, expected [4027894.3662, 307045.2530, 4919474.6263]\n    test 610 transform0: ITRF2014@2015xETRF2000@2012 max 4.5635e-08, epoched 3.0\n    test 611 transform1: ITRF2014@2010xITRF2008@2015+ITRF2008@2015xETRF2000@2012 max 0.36023, epoched 8.0\n    test 612 transform2: ITRF2014@2010xITRF89@2015+ITRF89@2015xETRF2000@2012 max 0.72047, epoched 8.0\n    test 613 transform3: ITRF2014@2010xITRF88@2015+ITRF88@2015xETRF2000@2012 max 1.0807, epoched 8.0\n    test 614 transform4: ITRF2014@2010xITRF96@2015+ITRF96@2015xETRF2000@2012 max 1.4409, epoched 8.0\n    test 615 transform5: ITRF2014@2010xITRF93@2015+ITRF93@2015xETRF2000@2012 max 1.8012, epoched 8.0\n    test 616 t./test/testTrf.py:136: DeprecationWarning: method L{convertRefFrame<pygeodesy.ellipsoidalKarney.LatLon.convertRefFrame>} has been DEPRECATED, use method L{toRefFrame}.\n  t = LatLon(0, 0, reframe=RefFrames.ITRF2000).convertRefFrame('ITRF2000')\nransform6: ITRF2014@2010xITRF90@2015+ITRF90@2015xETRF2000@2012 max 2.1614, epoched 8.0\n    test 617 transform7: ITRF2014@2010xITRF92@2015+ITRF92@2015xETRF2000@2012 max 2.5216, epoched 8.0\n    test 618 transform8: ITRF2014@2010xITRF91@2015+ITRF91@2015xETRF2000@2012 max 2.8819, epoched 8.0\n\n    test 619 Case 1A: [4027893.9619, 307045.5481, 4919474.9553]\n    test 620 Case 1B: [4027894.0054, 307045.5938, 4919474.9083]\n    test 621 Case 2A: [4027893.9639, 307045.545, 4919474.9573]\n    test 622 Case 2B: [4027894.0033, 307045.5889, 4919474.9041]\n\n    test 623 TypeError: type(reframe) ('ITRF2000'): not a RefFrame\n    test 624 TRFError: epoch (1899): below 1900.0 limit\n    test 625 TypeError: type(reframe2) ('ITRF2000'): not a RefFrame\n    test 626 TRFError: no conversion: LatLon(00°00′00.0″N, 000°00′00.0″E).reframe MISSING\n    test 627 TypeError: type(reframe2) ('ITRF2000'): not a RefFrame\n    test 628 TypeError: type(reframe) ('ITRF2000'): not a RefFrame\n\n    test 629 ETRF89@1989: [4160476.944000, 653192.600000, 4774604.455000]\n    test 630 ITRF2014@2018.8: [4160476.415, 653193.057, 4774604.903]  FAILED, KNOWN, expected [4160476.485, 653193.021, 4774604.78]\n    test 631 TransformXform: -ITRF2014@2010xITRF89-ITRF89@1989xETRF89@2010@2018.8\n    test 632 Delta (m): [-0.06956, 0.035714, 0.122931]  FAILED, KNOWN, expected [0.01, 0.01, 0.01]\n    test 633 Error (m): 0.145692  FAILED, KNOWN, expected 0.01\n    test 634 Epoch range: 29.800  FAILED, KNOWN, expected 14.0\n    test 635 ETRF89@1989: [4160476.467836, 653193.103190, 4774604.868503]  FAILED, KNOWN, expected [4160476.944000, 653192.600000, 4774604.455000]\n    test 636 TransformXform: ITRF2014@2010xITRF89+ITRF89@1989xETRF89@2010@1989\n\n    test 637 inverse: -ITRF2014@2010xITRF89-ITRF89@1989xETRF89@2010@1989\n    test 638 inverse: ITRF2014@2010xITRF89+ITRF89@1989xETRF89@2010@1989\n    test 639 inverse: name='ITRF2014@2010xITRF89+ITRF89@1989xETRF89@2010@1989', tx=0.0283, ty=0.046, tz=-0.0615, s1=1.0, rx=0.0, ry=0.0, rz=-7.757e-10, s=0.00567, sx=0.0, sy=0.0, sz=-0.00016\n\n    test 640 ETRF2000@2000: [4160476.952000, 653192.582000, 4774604.441000]\n    test 641 ITRF2014@2018.8: [4160476.471, 653193.059, 4774604.804]  FAILED, KNOWN, expected [4160476.485, 653193.021, 4774604.78]\n    test 642 TransformXform: -ITRF2014@2015xETRF2000@2018.8\n    test 643 Delta (m): [-0.014174, 0.037835, 0.023963]  FAILED, KNOWN, expected [0.01, 0.01, 0.01]\n    test 644 Error (m): 0.046975  FAILED, KNOWN, expected 0.01\n    test 645 Epoch range: 18.800  FAILED, KNOWN, expected 14.0\n    test 646 ETRF2000@2000: [4160476.681125, 653192.914350, 4774604.647835]  FAILED, KNOWN, expected [4160476.952000, 653192.582000, 4774604.441000]\n    test 647 TransformXform: ITRF2014@2015xETRF2000@2000\n\n    test 648 inverse: -ITRF2014@2015xETRF2000@2000\n    test 649 inverse: ITRF2014@2015xETRF2000@2000\n    test 650 inverse: name='ITRF2014@2015xETRF2000@2000', tx=0.0537, ty=0.0512, tz=-0.0551, s1=1.0, rx=4.3197e-09, ry=2.6131e-08, rz=-4.2237e-08, s=0.00102, sx=0.000891, sy=0.00539, sz=-0.008712\n\n    test 651 ITRF2008@2005: [4160476.674000, 653192.806000, 4774604.648000]\n    test 652 ITRF2014@2018.8: [4160476.671, 653192.804, 4774604.645]  FAILED, KNOWN, expected [4160476.485, 653193.021, 4774604.78]\n    test 653 TransformXform: -ITRF2014@2010xITRF2008@2018.8\n    test 654 Delta (m): [0.186385, -0.217059, -0.134685]  FAILED, KNOWN, expected [0.01, 0.01, 0.01]\n    test 655 Error (m): 0.316218  FAILED, KNOWN, expected 0.01\n    test 656 Epoch range: 13.800  FAILED, KNOWN, expected 14.0\n    test 657 ITRF2008@2005: [4160476.672278, 653192.805730, 4774604.647403]  FAILED, KNOWN, expected [4160476.674000, 653192.806000, 4774604.648000]\n    test 658 TransformXform: ITRF2014@2010xITRF2008@2005\n\n    test 659 inverse: -ITRF2014@2010xITRF2008@2005\n    test 660 inverse: ITRF2014@2010xITRF2008@2005\n    test 661 inverse: name='ITRF2014@2010xITRF2008@2005', tx=0.0016, ty=0.0019, tz=0.0029, s1=1.0, rx=0.0, ry=0.0, rz=0.0, s=-0.00017, sx=0.0, sy=0.0, sz=0.0\n\n    test 662 toRefFrame1: ITRF2020@2015 2024.31 [0.0031474, 0.00210534, -0.00125667]\n    test 663 toRefFrame2: ITRF2014@2010 2024.32 [0.0031474, 0.00210634, -0.00125867]\n    test 664 transform0: -ITRF2020@2015xITRF2014@2010\n    test 665 transform0X: TRFXform(epoch=2010.0, name='-ITRF2020@2015xITRF2014@2010')\n    test 666 toRefFrame3: ITRF2020@2015 2010 [0.0031474, 0.00067434, 0.00160533]\n    test 667 transform2x: (4160476.488147, 653193.021674, 4774604.781605)\n    test 668 transform2v: (0.000, 0.000, 0.000)  FAILED, KNOWN, expected (0.004, 0.003, 0.004)\n\n    test 669 transform0: name='ITRF2020@2015xETRF2020@2010', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=8.75573508e-09, ry=5.28398431e-08, rz=-7.66635874e-08, s=0.0, sx=0.001806, sy=0.010899, sz=-0.015813\n    test 670 transform2c: (4027893.9585, 307045.5550, 4919474.9620)  FAILED, KNOWN, expected (4027893.9585, 307045.5550, 4919474.9619)\n    test 671     Error2c: (-0.000016463, 0.0000336, 0.000055143) max 5.514e-05, epoched 5.0\n    test 672 transform2v: (-0.00011, 0.00010, 0.00023)  FAILED, KNOWN, expected (0.00011, 0.00011, 0.00024)\n    test 673     Error2v: (-0.000220786, -0.000005544, -0.000006899) max 0.0002208\n    test 674 transform0v: (0.00009, 0.00052, -0.00075)  FAILED, KNOWN, expected (0.00011, 0.00011, 0.00024)\n    test 675     Error0v: (-0.000024, 0.000409, -0.000993) max 0.000993\n\n    test 676 transform0: name='-ITRF2014@2015xETRF2020@2010', tx=-0.0014, ty=-0.0004, tz=0.0004, s1=1.0, rx=-8.75573508e-09, ry=-5.28398431e-08, rz=7.66635874e-08, s=-0.00042, sx=-0.001806, sy=-0.010899, sz=0.015813\n    test 677 transform2c: (4027893.6719, 307045.9063, 4919475.1704)  FAILED, KNOWN, expected (4027893.6719, 307045.9064, 4919475.1704)\n    test 678     Error2c: (0.000024786, -0.000062539, -0.000021305) max 6.254e-05, epoched 5.0\n    test 679 transform2v: (-0.01339, 0.01677, 0.01045)  FAILED, KNOWN, expected (-0.01361, 0.01676, 0.01044)\n    test 680     Error2v: (0.000220784, 0.000005543, 0.000006898) max 0.0002208\n    test 681 transform0v: (-0.00009, -0.00052, 0.00075)  FAILED, KNOWN, expected (-0.01361, 0.01676, 0.01044)\n    test 682     Error0v: (0.013524, -0.017279, -0.009687) max 0.01728\n\n    test 683 transform0: name='ITRF2014@2015xETRF2014@2010', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=8.65392421e-09, ry=5.40615736e-08, rz=-7.83943722e-08, s=0.0, sx=0.001785, sy=0.011151, sz=-0.01617\n    test 684 transform2c: (4027893.9619, 307045.5481, 4919474.9553)  FAILED, KNOWN, expected (4027893.9620, 307045.5480, 4919474.9553)\n    test 685     Error2c: (-0.00007476, 0.000063039, 0.000002882) max 7.476e-05, epoched 5.0\n    test 686 transform2v: (0.00020, -0.00030, 0.00020)\n    test 687     Error2v: (0.000000724, -0.000003666, -0.000002721) max 3.666e-06\n    test 688 transform0v: (0.00009, 0.00053, -0.00077)  FAILED, KNOWN, expected (0.00020, -0.00030, 0.00020)\n    test 689     Error0v: (-0.000115, 0.000831, -0.00097) max 0.00097\n\n    test 690 transform0: name='-ITRF2000@2015xETRF2014@2010', tx=0.0007, ty=0.0012, tz=-0.0261, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 691 transform2c: (4027893.6812, 307045.9082, 4919475.1547)\n    test 692     Error2c: (0.000013934, -0.000012081, 0.000026423) max 2.642e-05, epoched 5.0\n    test 693 transform2v: (-0.01351, 0.01686, 0.00854)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 694     Error2v: (-0.000440726, -0.000036335, -0.00053728) max 0.0005373\n    test 695 transform0v: (-0.00008, -0.00053, 0.00077)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 696     Error0v: (0.012985, -0.017431, -0.00831) max 0.01743\n\n    test 697 transform0: name='ITRF2000@2015xETRF2000@2010', tx=0.054, ty=0.051, tz=-0.048, s1=1.0, rx=8.24668072e-09, ry=4.98873278e-08, rz=-8.06342114e-08, s=0.0, sx=0.001701, sy=0.01029, sz=-0.016632\n    test 698 transform2c: (4027894.0054, 307045.5938, 4919474.9083)  FAILED, KNOWN, expected (4027894.0053, 307045.5939, 4919474.9083)\n    test 699     Error2c: (0.000077874, -0.000055372, -0.000008743) max 7.787e-05, epoched 5.0\n    test 700 transform2v: (-0.00020, -0.00050, -0.00037)  FAILED, KNOWN, expected (-0.00020, -0.00050, -0.00036)\n    test 701     Error2v: (-0.000004389, 0.000002124, -0.000008036) max 8.036e-06\n    test 702 transform0v: (0.00008, 0.00049, -0.00079)  FAILED, KNOWN, expected (-0.00020, -0.00050, -0.00036)\n    test 703     Error0v: (0.000281, 0.00099, -0.000432) max 0.00099\n\n    test 704 transform0/: name='-ITRF2000@2015xETRF2014@2010', tx=0.0007, ty=0.0012, tz=-0.0261, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 705 transform2c: (4027893.6812, 307045.9082, 4919475.1547)\n    test 706     Error2c: (0.000013934, -0.000012081, 0.000026423) max 2.642e-05, epoched 5.0\n    test 707 transform2v: (-0.01351, 0.01686, 0.00854)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 708     Error2v: (-0.000440726, -0.000036335, -0.00053728) max 0.0005373\n\n    test 709 transform1/: name='-ITRF2000@1988xITRF89@2015-ITRF89@2015xETRF2014@2010', tx=0.02743, ty=0.03207, tz=-0.12033, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 710 transform2c: (4027893.7079, 307045.9391, 4919475.0605)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 711     Error2c: (0.026743934, 0.030857919, -0.094203577) max 0.0942, epoched 32.0\n    test 712 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 713     Error2v: (-0.000440726, -0.000576335, -0.00179728) max 0.001797\n\n    test 714 transform2/: name='-ITRF2000@1988xITRF88@2015-ITRF88@2015xETRF2014@2010', tx=0.02293, ty=-0.00033, tz=-0.14193, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 715 transform2c: (4027893.7034, 307045.9067, 4919475.0389)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 716     Error2c: (0.022243935, -0.001542081, -0.115803577) max 0.1158, epoched 32.0\n    test 717 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 718     Error2v: (-0.000440725, -0.000576335, -0.00179728) max 0.001797\n\n    test 719 transform3/: name='-ITRF2000@1997xITRF96@2015-ITRF96@2015xETRF2014@2010', tx=0.00673, ty=-0.00033, tz=-0.05913, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 720 transform2c: (4027893.6872, 307045.9067, 4919475.1217)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 721     Error2c: (0.006043935, -0.001542081, -0.033003577) max 0.033, epoched 23.0\n    test 722 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 723     Error2v: (-0.000440726, -0.000576335, -0.00179728) max 0.001797\n\n    test 724 transform4/: name='-ITRF2000@1997xITRF97@2015-ITRF97@2015xETRF2014@2010', tx=0.00673, ty=-0.00033, tz=-0.05913, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=8.09154034e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01669\n    test 725 transform2c: (4027893.6865, 307045.9168, 4919475.1217)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 726     Error2c: (0.005269863, 0.008612365, -0.033003577) max 0.033, epoched 23.0\n    test 727 transform2v: (-0.01357, 0.01710, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 728     Error2v: (-0.00050027, 0.000204776, -0.00179728) max 0.001797\n\n    test 729 transform5/: name='-ITRF2000@1988xITRF92@2015-ITRF92@2015xETRF2014@2010', tx=0.01393, ty=0.00147, tz=-0.06633, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 730 transform2c: (4027893.6944, 307045.9085, 4919475.1145)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 731     Error2c: (0.013243935, 0.000257919, -0.040203577) max 0.0402, epoched 32.0\n    test 732 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 733     Error2v: (-0.000440726, -0.000576335, -0.00179728) max 0.001797\n\n    test 734 transform6/: name='-ITRF2000@1988xITRF93@2015-ITRF93@2015xETRF2014@2010', tx=0.0007, ty=0.0012, tz=-0.0261, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 735 transform2c: (4027893.6812, 307045.9082, 4919475.1547)\n    test 736     Error2c: (0.000013934, -0.000012081, 0.000026423) max 2.642e-05, epoched 32.0\n    test 737 transform2v: (-0.01351, 0.01686, 0.00854)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 738     Error2v: (-0.000440726, -0.000036335, -0.00053728) max 0.0005373\n\n    test 739 transform7/: name='-ITRF2000@1988xITRF90@2015-ITRF90@2015xETRF2014@2010', tx=0.02293, ty=0.01047, tz=-0.08613, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 740 transform2c: (4027893.7034, 307045.9175, 4919475.0947)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 741     Error2c: (0.022243935, 0.009257919, -0.060003577) max 0.06, epoched 32.0\n    test 742 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 743     Error2v: (-0.000440726, -0.000576335, -0.00179728) max 0.001797\n\n    test 744 transform8/: name='-ITRF2000@1988xITRF91@2015-ITRF91@2015xETRF2014@2010', tx=0.0007, ty=0.0012, tz=-0.0261, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 745 transform2c: (4027893.6812, 307045.9082, 4919475.1547)\n    test 746     Error2c: (0.000013934, -0.000012081, 0.000026423) max 2.642e-05, epoched 32.0\n    test 747 transform2v: (-0.01351, 0.01686, 0.00854)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 748     Error2v: (-0.000440726, -0.000036335, -0.00053728) max 0.0005373\n\n    test 749 transform0: name='ITRF2020@2015xETRF2020@2020', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=1.29251327e-08, ry=7.80016732e-08, rz=-1.13170058e-07, s=0.0, sx=0.002666, sy=0.016089, sz=-0.023343\n    test 750 transform2c: (4027893.9574, 307045.5561, 4919474.9643)\n    test 751     Error2c: (-0.000024276, -0.000021815, -0.000013824) max 2.428e-05, epoched 5.0\n    test 752 transform2v: (0.01350, -0.01676, -0.01001)\n\n    test 753 transform0: name='-ITRF2014@2015xETRF2020@2020', tx=-0.0014, ty=-0.0014, tz=0.0024, s1=1.0, rx=-1.29251327e-08, ry=-7.80016732e-08, rz=1.13170058e-07, s=-0.00042, sx=-0.002666, sy=-0.016089, sz=0.023343\n    test 754 transform2c: (4027893.5358, 307046.0740, 4919475.2748)\n    test 755     Error2c: (0.000032643, -0.000007101, 0.000047684) max 4.768e-05, epoched 5.0\n    test 756 transform2v: (-0.01350, 0.01666, 0.01021)\n\n    test 757 transform0: name='ITRF2014@2015xETRF2014@2020', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=1.27748405e-08, ry=7.980518e-08, rz=-1.15725026e-07, s=0.0, sx=0.002635, sy=0.016461, sz=-0.02387\n    test 758 transform2c: (4027893.9639, 307045.5450, 4919474.9573)\n    test 759     Error2c: (0.000032525, 0.000026405, -0.000024305) max 3.253e-05, epoched 5.0\n    test 760 transform2v: (0.01381, -0.01706, -0.01024)\n\n    test 761 transform0: name='-ITRF2000@2015xETRF2014@2020', tx=0.0017, ty=0.0022, tz=-0.0451, s1=1.0, rx=-1.27748405e-08, ry=-7.980518e-08, rz=1.15725026e-07, s=0.00322, sx=-0.002635, sy=-0.016461, sz=0.02387\n    test 762 transform2c: (4027893.5504, 307046.0772, 4919475.2456)  FAILED, KNOWN, expected (4027893.5505, 307046.0772, 4919475.2456)\n    test 763     Error2c: (-0.000062619, -0.000037673, -0.000034946) max 6.262e-05, epoched 5.0\n    test 764 transform2v: (-0.01371, 0.01716, 0.00834)\n\n    test 765 transform0: name='ITRF2000@2015xETRF2000@2020', tx=0.054, ty=0.051, tz=-0.048, s1=1.0, rx=1.21736715e-08, ry=7.36431982e-08, rz=-1.19031455e-07, s=0.0, sx=0.002511, sy=0.01519, sz=-0.024552\n    test 766 transform2c: (4027894.0033, 307045.5889, 4919474.9047)\n    test 767     Error2c: (0.000034031, -0.000034106, 0.000010915) max 3.411e-05, epoched 5.0\n    test 768 transform2v: (0.01287, -0.01740, -0.00945)\n\n    test 76./test/testTrf.py:29: DeprecationWarning: method L{convertRefFrame<pygeodesy.ellipsoidalExact.LatLon.convertRefFrame>} has been DEPRECATED, use method L{toRefFrame}.\n  x = p.convertRefFrame(RefFrames.ETRF2000)\n./test/testTrf.py:136: DeprecationWarning: method L{convertRefFrame<pygeodesy.ellipsoidalExact.LatLon.convertRefFrame>} has been DEPRECATED, use method L{toRefFrame}.\n  t = LatLon(0, 0, reframe=RefFrames.ITRF2000).convertRefFrame('ITRF2000')\n9 transform0*: name='-ITRF2014@2010xITRF89-ITRF89@1989xETRF89@2010@2018.8', tx=-0.03128, ty=-0.0311, tz=0.15984, s1=0.999999991, rx=-1.58921925e-08, ry=-8.23504519e-08, rz=1.00463091e-07, s=-0.009246, sx=-0.003278, sy=-0.016986, sz=0.020722\n    test 770 transform2c: (4160476.4154, 653193.0567, 4774604.9029)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 771     Error2c: (-0.069560351, 0.035713888, 0.122930501) max 0.1229, epoched 29.8\n    test 772 transform2v: (-0.01148, 0.01996, 0.01845)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 773     Error2v: (-0.015479395, 0.016963959, 0.014448874) max 0.01696\n\n    test 774 transform0*: name='-ITRF2014@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 775 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 776     Error2c: (-0.014174475, 0.037834952, 0.023962618) max 0.03783, epoched 3.8\n    test 777 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 778     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 779 transform1*: name='-ITRF2014@2010xITRF2008@2015-ITRF2008@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 780 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 781     Error2c: (-0.014174475, 0.037834952, 0.023962618) max 0.03783, epoched 8.8\n    test 782 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 783     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 784 transform2*: name='-ITRF2014@2010xITRF89@2015-ITRF89@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 785 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 786     Error2c: (-0.014174475, 0.037834952, 0.023962618) max 0.03783, epoched 8.8\n    test 787 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 788     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 789 transform3*: name='-ITRF2014@2010xITRF88@2015-ITRF88@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 790 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 791     Error2c: (-0.014174475, 0.037834952, 0.023962618) max 0.03783, epoched 8.8\n    test 792 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 793     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 794 transform4*: name='-ITRF2014@2010xITRF96@2015-ITRF96@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 795 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 796     Error2c: (-0.014174475, 0.037834952, 0.023962618) max 0.03783, epoched 8.8\n    test 797 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 798     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 799 transform5*: name='-ITRF2014@2010xITRF93@2015-ITRF93@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 800 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 801     Error2c: (-0.014174475, 0.037834952, 0.023962618) max 0.03783, epoched 8.8\n    test 802 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 803     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 804 transform6*: name='-ITRF2014@2010xITRF90@2015-ITRF90@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 805 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 806     Error2c: (-0.014174475, 0.037834952, 0.023962618) max 0.03783, epoched 8.8\n    test 807 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 808     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 809 transform7*: name='-ITRF2014@2010xITRF92@2015-ITRF92@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 810 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 811     Error2c: (-0.014174475, 0.037834952, 0.023962618) max 0.03783, epoched 8.8\n    test 812 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 813     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 814 transform8*: name='-ITRF2014@2010xITRF91@2015-ITRF91@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 815 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 816     Error2c: (-0.014174475, 0.037834952, 0.023962618) max 0.03783, epoched 8.8\n    test 817 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 818     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 819 toTransform: name='-ITRF2014@2010xITRF91@2015-ITRF91@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=1.0, rx=-1.1702e-08, ry=-7.0792e-08, rz=1.1442e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.023602\n    test 820 toTransform: name='-ITRF2014@2010xITRF91@2015-ITRF91@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=1.0, rx=-1.1702e-08, ry=-7.0792e-08, rz=1.1442e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.023602\n\n    test 821 Issue80: 48.77691577°N, 008.92257142°E, +476.05m\n    test 822 Issue80: 48.77692147°N, 008.92257868°E, +476.09m\n    test 823 Issue80: 48°46′36.915133″N, 008°55′21.285094″E, +476.10m  FAILED, KNOWN, expected 48°46′36.915134″N, 008°55′21.285094″E, +476.10\n    test 824 Issue80: 0.804  FAILED, KNOWN, expected 0.01\n    test 825 Issue80: [4160476.944064, 653192.600457, 4774604.455385]\n    test 826 Issue80: [4160476.415504, 653193.057171, 4774604.903316]\n    test 827 Issue80: [4160476.467901, 653193.103647, 4774604.868888]\n    test 828 Issue80: 48°46′36.915133″N, 008°55′21.285094″E, +476.10m\n\n    test 829 Issue80: 48.77692032°N, 008.92257804°E, +476.05m\n    test 830 Issue80: 48.77691971°N, 008.92257856°E, +476.06m\n    test 831 Issue80: 48°46′36.9315″N, 008°55′21.3089″E, +476.10m  FAILED, KNOWN, expected 48°46′36.9131″N, 008°55′21.28095″E, +476.05m\n    test 832 Issue80: 0.804  FAILED, KNOWN, expected 0.01\n    test 833 Issue80: [4160476.492633, 653193.021888, 4774604.78885]\n    test 834 Issue80: [4160476.54503, 653193.068365, 4774604.754422]\n    test 835 Issue80: [4160476.016469, 653193.525079, 4774605.202353]\n    test 836 Issue80: 48°46′36.9315″N, 008°55′21.3089″E, +476.10m\n\n    test 837 ITRF96@1997xNAD83: TRFXform(epoch=1997.0, name='ITRF96@1997xNAD83')\n    test 838 ITRF96@1997xNAD83: name='ITRF96@1997xNAD83', tx=0.991, ty=-0.19072, tz=-0.5129, s1=1.0, rx=1.2503e-07, ry=4.6785e-08, rz=5.6529e-08, s=0.0, sx=0.02579, sy=0.00965, sz=0.01166\n    test 839 ITRF96@1997xNAD83: name='ITRF96@1997xNAD83@2007', tx=0.991, ty=-0.19072, tz=-0.5129, s1=1.0, rx=1.2761e-07, ry=1.0797e-08, rz=5.4997e-08, s=0.0, sx=0.026322, sy=0.002227, sz=0.011344\n    test 840 ITRF96@1997xNAD83: rx=-2.5792e-10, ry=3.5988e-09, rz=1.532e-10\n\n    testTrf(pygeodesy.ellipsoidalExact, 25.08.28)\n    test 841 convertRefFrame: 51.47787826°N, 000.00147125°W, -0.00m  FAILED, KNOWN, expected 51.47787826°N, 000.00147125°W\n    test 842 copy(<type 'type'>): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 843 RefFrame.copy(): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 844 toLatLon: 50.7978°N, 004.3592°E, +148.96m\n    test 845 convertRefFrame: [3980574.395, -102.214, 4966829.941]\n    test 846 Nil: True\n    test 847 copy(<type 'type'>): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 848 RefFrame.copy(): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 849 Nil: True\n    test 850 reframe: True\n    test 851 Roundtrip: True\n    test 852 reframe: True\n    test 853 copy(<type 'type'>): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 854 RefFrame.copy(): (<class 'pygeodesy.trf.RefFrame'>, True)\n\n    test 855 Geodetic: 23°40′12.44582″S, 133°53′07.84795″E, +603.34m\n    test 856 Cartesian: [-4052051.7614, 4212836.1945, -2545106.0147]\n    test 857 Geodetic: 23°40′12.44582″S, 133°53′07.84795″E, +603.34m\n    test 858 Cartesian: [-4052051.7614, 4212836.1945, -2545106.0147]\n    test 859 Roundtrip: 23°40′12.41482″S, 133°53′07.86712″E, +603.26m\n    test 860 GNSStrans: [3370658.18892, 711877.42369, 5349787.1243]\n    test 861 Cartesian: [-734972.563, 4893188.492, 4011982.811]\n\n    test 862 EUREF EX1: [4027893.9676, 307045.5791, 4919474.9587]  FAILED, KNOWN, expected [4027894.0444, 307045.6209, 4919474.8613]\n    test 863 transform0: ITRF2005@2015xETRF2020-ITRF91@2015xETRF2020@2007 max 0.097331, epoched 8.0\n    test 864 transform1: ITRF2005@2015xETRF2000-ITRF91@2015xETRF2000@2007 max 0.048666, epoched 8.0\n    test 865 transform2: ITRF2005@2015xETRF2014-ITRF91@2015xETRF2014@2007 max 4.6566e-10, epoched 8.0\n    test 866 transform3: ITRF2005@2000xITRF2000+ITRF2000@1988xITRF91@2000@2007 max 0.048666, epoched 19.0\n    test 867 transform4: -ITRF2020@2015xITRF2005+ITRF2020@2015xITRF91@2007 max 0.097331, epoched 8.0\n    test 868 transform5: -ITRF2014@2010xITRF2005+ITRF2014@2010xITRF91@2007 max 0.146, epoched 3.0\n    test 869 transform6: -ITRF2008@2005xITRF2005+ITRF2008@2000xITRF91@2005@2007 max 0.19466, epoched 7.0\n    test 870 transform7: ITRF2000@1988xITRF91+ITRF2005@2000xITRF2000@1988@2007 max 0.24333, epoched 31.0\n    test 871 transform8: ITRF2014@2010xITRF91-ITRF2014@2020xGDA2020@2010+ITRF2005@2020xGDA2020@2010@2007 max 0.90432, epoched 23.0\n    test 872 transform9: ITRF2008@2000xITRF91-ITRF2008@1997xNAD83@2000+ITRF2005@1997xNAD83@2000@2007 max 0.94279, epoched 13.0\n    test 873 transform10: ITRF2008@2000xITRF91-ITRF2008@1994xGDA94@2000+ITRF2005@1994xGDA94@2000@2007 max 0.31072, epoched 19.0\n    test 874 EUREF EX2: [4027893.9292, 307045.5582, 4919475.0073]  FAILED, KNOWN, expected [4027894.0060, 307045.6000, 4919474.9100]\n    test 875 transform0: ITRF91@2015xETRF2000-ITRF2005@2015xETRF2000@2007 max 0.146, epoched 8.0\n    test 876 transform1: ITRF91@2015xETRF2014-ITRF2005@2015xETRF2014@2007 max 0.19466, epoched 8.0\n    test 877 transform2: ITRF91@2015xETRF2020-ITRF2005@2015xETRF2020@2007 max 0.146, epoched 8.0\n    test 878 transform3: -ITRF2005@2000xITRF2000-ITRF2000@1988xITRF91@2000@2007 max 0.19466, epoched 19.0\n    test 879 EUREF EX4: [4027894.3559, 307045.2508, 4919474.6447]\n    test 880 transform0: -ITRF2000@2015xETRF2000@2012 max 4.5169e-08, epoched 3.0\n    test 881 transform1: -ITRF2000@1988xITRF89@2015-ITRF89@2015xETRF2000@2012 max 0.37894, epoched 30.0\n    test 882 transform2: -ITRF2000@1988xITRF88@2015-ITRF88@2015xETRF2000@2012 max 0.72548, epoched 30.0\n    test 883 transform3: -ITRF2000@1997xITRF96@2015-ITRF96@2015xETRF2000@2012 max 1.072, epoched 21.0\n    test 884 transform4: -ITRF2000@1997xITRF97@2015-ITRF97@2015xETRF2000@2012 max 1.4303, epoched 21.0\n    test 885 transform5: -ITRF2000@1988xITRF92@2015-ITRF92@2015xETRF2000@2012 max 1.7786, epoched 30.0\n    test 886 transform6: -ITRF2000@1988xITRF93@2015-ITRF93@2015xETRF2000@2012 max 2.1278, epoched 30.0\n    test 887 transform7: -ITRF2000@1988xITRF90@2015-ITRF90@2015xETRF2000@2012 max 2.4851, epoched 30.0\n    test 888 transform8: -ITRF2000@1988xITRF91@2015-ITRF91@2015xETRF2000@2012 max 2.8343, epoched 30.0\n    test 889 EUREF EX5: [4027893.6458, 307045.9470, 4919475.1937]  FAILED, KNOWN, expected [4027894.3662, 307045.2530, 4919474.6263]\n    test 890 transform0: ITRF2014@2015xETRF2000@2012 max 4.5635e-08, epoched 3.0\n    test 891 transform1: ITRF2014@2010xITRF2008@2015+ITRF2008@2015xETRF2000@2012 max 0.36023, epoched 8.0\n    test 892 transform2: ITRF2014@2010xITRF89@2015+ITRF89@2015xETRF2000@2012 max 0.72047, epoched 8.0\n    test 893 transform3: ITRF2014@2010xITRF88@2015+ITRF88@2015xETRF2000@2012 max 1.0807, epoched 8.0\n    test 894 transform4: ITRF2014@2010xITRF96@2015+ITRF96@2015xETRF2000@2012 max 1.4409, epoched 8.0\n    test 895 transform5: ITRF2014@2010xITRF93@2015+ITRF93@2015xETRF2000@2012 max 1.8012, epoched 8.0\n    test 896 transform6: ITRF2014@2010xITRF90@2015+ITRF90@2015xETRF2000@2012 max 2.1614, epoched 8.0\n    test 897 transform7: ITRF2014@2010xITRF92@2015+ITRF92@2015xETRF2000@2012 max 2.5216, epoched 8.0\n    test 898 transform8: ITRF2014@2010xITRF91@2015+ITRF91@2015xETRF2000@2012 max 2.8819, epoched 8.0\n\n    test 899 Case 1A: [4027893.9619, 307045.5481, 4919474.9553]\n    test 900 Case 1B: [4027894.0054, 307045.5938, 4919474.9083]\n    test 901 Case 2A: [4027893.9639, 307045.545, 4919474.9573]\n    test 902 Case 2B: [4027894.0033, 307045.5889, 4919474.9041]\n\n    test 903 TypeError: type(reframe) ('ITRF2000'): not a RefFrame\n    test 904 TRFError: epoch (1899): below 1900.0 limit\n    test 905 TypeError: type(reframe2) ('ITRF2000'): not a RefFrame\n    test 906 TRFError: no conversion: LatLon(00°00′00.0″N, 000°00′00.0″E).reframe MISSING\n    test 907 TypeError: type(reframe2) ('ITRF2000'): not a RefFrame\n    test 908 TypeError: type(reframe) ('ITRF2000'): not a RefFrame\n\n    test 909 ETRF89@1989: [4160476.944000, 653192.600000, 4774604.455000]\n    test 910 ITRF2014@2018.8: [4160476.415, 653193.057, 4774604.903]  FAILED, KNOWN, expected [4160476.485, 653193.021, 4774604.78]\n    test 911 TransformXform: -ITRF2014@2010xITRF89-ITRF89@1989xETRF89@2010@2018.8\n    test 912 Delta (m): [-0.06956, 0.035714, 0.122931]  FAILED, KNOWN, expected [0.01, 0.01, 0.01]\n    test 913 Error (m): 0.145692  FAILED, KNOWN, expected 0.01\n    test 914 Epoch range: 29.800  FAILED, KNOWN, expected 14.0\n    test 915 ETRF89@1989: [4160476.467836, 653193.103190, 4774604.868503]  FAILED, KNOWN, expected [4160476.944000, 653192.600000, 4774604.455000]\n    test 916 TransformXform: ITRF2014@2010xITRF89+ITRF89@1989xETRF89@2010@1989\n\n    test 917 inverse: -ITRF2014@2010xITRF89-ITRF89@1989xETRF89@2010@1989\n    test 918 inverse: ITRF2014@2010xITRF89+ITRF89@1989xETRF89@2010@1989\n    test 919 inverse: name='ITRF2014@2010xITRF89+ITRF89@1989xETRF89@2010@1989', tx=0.0283, ty=0.046, tz=-0.0615, s1=1.0, rx=0.0, ry=0.0, rz=-7.757e-10, s=0.00567, sx=0.0, sy=0.0, sz=-0.00016\n\n    test 920 ETRF2000@2000: [4160476.952000, 653192.582000, 4774604.441000]\n    test 921 ITRF2014@2018.8: [4160476.471, 653193.059, 4774604.804]  FAILED, KNOWN, expected [4160476.485, 653193.021, 4774604.78]\n    test 922 TransformXform: -ITRF2014@2015xETRF2000@2018.8\n    test 923 Delta (m): [-0.014174, 0.037835, 0.023963]  FAILED, KNOWN, expected [0.01, 0.01, 0.01]\n    test 924 Error (m): 0.046975  FAILED, KNOWN, expected 0.01\n    test 925 Epoch range: 18.800  FAILED, KNOWN, expected 14.0\n    test 926 ETRF2000@2000: [4160476.681125, 653192.914350, 4774604.647835]  FAILED, KNOWN, expected [4160476.952000, 653192.582000, 4774604.441000]\n    test 927 TransformXform: ITRF2014@2015xETRF2000@2000\n\n    test 928 inverse: -ITRF2014@2015xETRF2000@2000\n    test 929 inverse: ITRF2014@2015xETRF2000@2000\n    test 930 inverse: name='ITRF2014@2015xETRF2000@2000', tx=0.0537, ty=0.0512, tz=-0.0551, s1=1.0, rx=4.3197e-09, ry=2.6131e-08, rz=-4.2237e-08, s=0.00102, sx=0.000891, sy=0.00539, sz=-0.008712\n\n    test 931 ITRF2008@2005: [4160476.674000, 653192.806000, 4774604.648000]\n    test 932 ITRF2014@2018.8: [4160476.671, 653192.804, 4774604.645]  FAILED, KNOWN, expected [4160476.485, 653193.021, 4774604.78]\n    test 933 TransformXform: -ITRF2014@2010xITRF2008@2018.8\n    test 934 Delta (m): [0.186385, -0.217059, -0.134685]  FAILED, KNOWN, expected [0.01, 0.01, 0.01]\n    test 935 Error (m): 0.316218  FAILED, KNOWN, expected 0.01\n    test 936 Epoch range: 13.800  FAILED, KNOWN, expected 14.0\n    test 937 ITRF2008@2005: [4160476.672278, 653192.805730, 4774604.647403]  FAILED, KNOWN, expected [4160476.674000, 653192.806000, 4774604.648000]\n    test 938 TransformXform: ITRF2014@2010xITRF2008@2005\n\n    test 939 inverse: -ITRF2014@2010xITRF2008@2005\n    test 940 inverse: ITRF2014@2010xITRF2008@2005\n    test 941 inverse: name='ITRF2014@2010xITRF2008@2005', tx=0.0016, ty=0.0019, tz=0.0029, s1=1.0, rx=0.0, ry=0.0, rz=0.0, s=-0.00017, sx=0.0, sy=0.0, sz=0.0\n\n    test 942 toRefFrame1: ITRF2020@2015 2024.31 [0.0031474, 0.00210534, -0.00125667]\n    test 943 toRefFrame2: ITRF2014@2010 2024.32 [0.0031474, 0.00210634, -0.00125867]\n    test 944 transform0: -ITRF2020@2015xITRF2014@2010\n    test 945 transform0X: TRFXform(epoch=2010.0, name='-ITRF2020@2015xITRF2014@2010')\n    test 946 toRefFrame3: ITRF2020@2015 2010 [0.0031474, 0.00067434, 0.00160533]\n    test 947 transform2x: (4160476.488147, 653193.021674, 4774604.781605)\n    test 948 transform2v: (0.000, 0.000, 0.000)  FAILED, KNOWN, expected (0.004, 0.003, 0.004)\n\n    test 949 transform0: name='ITRF2020@2015xETRF2020@2010', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=8.75573508e-09, ry=5.28398431e-08, rz=-7.66635874e-08, s=0.0, sx=0.001806, sy=0.010899, sz=-0.015813\n    test 950 transform2c: (4027893.9585, 307045.5550, 4919474.9620)  FAILED, KNOWN, expected (4027893.9585, 307045.5550, 4919474.9619)\n    test 951     Error2c: (-0.000016463, 0.0000336, 0.000055143) max 5.514e-05, epoched 5.0\n    test 952 transform2v: (-0.00011, 0.00010, 0.00023)  FAILED, KNOWN, expected (0.00011, 0.00011, 0.00024)\n    test 953     Error2v: (-0.000220786, -0.000005544, -0.000006899) max 0.0002208\n    test 954 transform0v: (0.00009, 0.00052, -0.00075)  FAILED, KNOWN, expected (0.00011, 0.00011, 0.00024)\n    test 955     Error0v: (-0.000024, 0.000409, -0.000993) max 0.000993\n\n    test 956 transform0: name='-ITRF2014@2015xETRF2020@2010', tx=-0.0014, ty=-0.0004, tz=0.0004, s1=1.0, rx=-8.75573508e-09, ry=-5.28398431e-08, rz=7.66635874e-08, s=-0.00042, sx=-0.001806, sy=-0.010899, sz=0.015813\n    test 957 transform2c: (4027893.6719, 307045.9063, 4919475.1704)  FAILED, KNOWN, expected (4027893.6719, 307045.9064, 4919475.1704)\n    test 958     Error2c: (0.000024786, -0.000062539, -0.000021305) max 6.254e-05, epoched 5.0\n    test 959 transform2v: (-0.01339, 0.01677, 0.01045)  FAILED, KNOWN, expected (-0.01361, 0.01676, 0.01044)\n    test 960     Error2v: (0.000220784, 0.000005543, 0.000006898) max 0.0002208\n    test 961 transform0v: (-0.00009, -0.00052, 0.00075)  FAILED, KNOWN, expected (-0.01361, 0.01676, 0.01044)\n    test 962     Error0v: (0.013524, -0.017279, -0.009687) max 0.01728\n\n    test 963 transform0: name='ITRF2014@2015xETRF2014@2010', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=8.65392421e-09, ry=5.40615736e-08, rz=-7.83943722e-08, s=0.0, sx=0.001785, sy=0.011151, sz=-0.01617\n    test 964 transform2c: (4027893.9619, 307045.5481, 4919474.9553)  FAILED, KNOWN, expected (4027893.9620, 307045.5480, 4919474.9553)\n    test 965     Error2c: (-0.00007476, 0.000063039, 0.000002882) max 7.476e-05, epoched 5.0\n    test 966 transform2v: (0.00020, -0.00030, 0.00020)\n    test 967     Error2v: (0.000000724, -0.000003666, -0.000002721) max 3.666e-06\n    test 968 transform0v: (0.00009, 0.00053, -0.00077)  FAILED, KNOWN, expected (0.00020, -0.00030, 0.00020)\n    test 969     Error0v: (-0.000115, 0.000831, -0.00097) max 0.00097\n\n    test 970 transform0: name='-ITRF2000@2015xETRF2014@2010', tx=0.0007, ty=0.0012, tz=-0.0261, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 971 transform2c: (4027893.6812, 307045.9082, 4919475.1547)\n    test 972     Error2c: (0.000013934, -0.000012081, 0.000026423) max 2.642e-05, epoched 5.0\n    test 973 transform2v: (-0.01351, 0.01686, 0.00854)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 974     Error2v: (-0.000440726, -0.000036335, -0.00053728) max 0.0005373\n    test 975 transform0v: (-0.00008, -0.00053, 0.00077)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 976     Error0v: (0.012985, -0.017431, -0.00831) max 0.01743\n\n    test 977 transform0: name='ITRF2000@2015xETRF2000@2010', tx=0.054, ty=0.051, tz=-0.048, s1=1.0, rx=8.24668072e-09, ry=4.98873278e-08, rz=-8.06342114e-08, s=0.0, sx=0.001701, sy=0.01029, sz=-0.016632\n    test 978 transform2c: (4027894.0054, 307045.5938, 4919474.9083)  FAILED, KNOWN, expected (4027894.0053, 307045.5939, 4919474.9083)\n    test 979     Error2c: (0.000077874, -0.000055372, -0.000008743) max 7.787e-05, epoched 5.0\n    test 980 transform2v: (-0.00020, -0.00050, -0.00037)  FAILED, KNOWN, expected (-0.00020, -0.00050, -0.00036)\n    test 981     Error2v: (-0.000004389, 0.000002124, -0.000008036) max 8.036e-06\n    test 982 transform0v: (0.00008, 0.00049, -0.00079)  FAILED, KNOWN, expected (-0.00020, -0.00050, -0.00036)\n    test 983     Error0v: (0.000281, 0.00099, -0.000432) max 0.00099\n\n    test 984 transform0/: name='-ITRF2000@2015xETRF2014@2010', tx=0.0007, ty=0.0012, tz=-0.0261, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 985 transform2c: (4027893.6812, 307045.9082, 4919475.1547)\n    test 986     Error2c: (0.000013934, -0.000012081, 0.000026423) max 2.642e-05, epoched 5.0\n    test 987 transform2v: (-0.01351, 0.01686, 0.00854)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 988     Error2v: (-0.000440726, -0.000036335, -0.00053728) max 0.0005373\n\n    test 989 transform1/: name='-ITRF2000@1988xITRF89@2015-ITRF89@2015xETRF2014@2010', tx=0.02743, ty=0.03207, tz=-0.12033, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 990 transform2c: (4027893.7079, 307045.9391, 4919475.0605)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 991     Error2c: (0.026743934, 0.030857919, -0.094203577) max 0.0942, epoched 32.0\n    test 992 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 993     Error2v: (-0.000440726, -0.000576335, -0.00179728) max 0.001797\n\n    test 994 transform2/: name='-ITRF2000@1988xITRF88@2015-ITRF88@2015xETRF2014@2010', tx=0.02293, ty=-0.00033, tz=-0.14193, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 995 transform2c: (4027893.7034, 307045.9067, 4919475.0389)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 996     Error2c: (0.022243935, -0.001542081, -0.115803577) max 0.1158, epoched 32.0\n    test 997 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 998     Error2v: (-0.000440725, -0.000576335, -0.00179728) max 0.001797\n\n    test 999 transform3/: name='-ITRF2000@1997xITRF96@2015-ITRF96@2015xETRF2014@2010', tx=0.00673, ty=-0.00033, tz=-0.05913, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 1000 transform2c: (4027893.6872, 307045.9067, 4919475.1217)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 1001     Error2c: (0.006043935, -0.001542081, -0.033003577) max 0.033, epoched 23.0\n    test 1002 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 1003     Error2v: (-0.000440726, -0.000576335, -0.00179728) max 0.001797\n\n    test 1004 transform4/: name='-ITRF2000@1997xITRF97@2015-ITRF97@2015xETRF2014@2010', tx=0.00673, ty=-0.00033, tz=-0.05913, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=8.09154034e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01669\n    test 1005 transform2c: (4027893.6865, 307045.9168, 4919475.1217)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 1006     Error2c: (0.005269863, 0.008612365, -0.033003577) max 0.033, epoched 23.0\n    test 1007 transform2v: (-0.01357, 0.01710, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 1008     Error2v: (-0.00050027, 0.000204776, -0.00179728) max 0.001797\n\n    test 1009 transform5/: name='-ITRF2000@1988xITRF92@2015-ITRF92@2015xETRF2014@2010', tx=0.01393, ty=0.00147, tz=-0.06633, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 1010 transform2c: (4027893.6944, 307045.9085, 4919475.1145)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 1011     Error2c: (0.013243935, 0.000257919, -0.040203577) max 0.0402, epoched 32.0\n    test 1012 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 1013     Error2v: (-0.000440726, -0.000576335, -0.00179728) max 0.001797\n\n    test 1014 transform6/: name='-ITRF2000@1988xITRF93@2015-ITRF93@2015xETRF2014@2010', tx=0.0007, ty=0.0012, tz=-0.0261, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 1015 transform2c: (4027893.6812, 307045.9082, 4919475.1547)\n    test 1016     Error2c: (0.000013934, -0.000012081, 0.000026423) max 2.642e-05, epoched 32.0\n    test 1017 transform2v: (-0.01351, 0.01686, 0.00854)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 1018     Error2v: (-0.000440726, -0.000036335, -0.00053728) max 0.0005373\n\n    test 1019 transform7/: name='-ITRF2000@1988xITRF90@2015-ITRF90@2015xETRF2014@2010', tx=0.02293, ty=0.01047, tz=-0.08613, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 1020 transform2c: (4027893.7034, 307045.9175, 4919475.0947)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 1021     Error2c: (0.022243935, 0.009257919, -0.060003577) max 0.06, epoched 32.0\n    test 1022 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 1023     Error2v: (-0.000440726, -0.000576335, -0.00179728) max 0.001797\n\n    test 1024 transform8/: name='-ITRF2000@1988xITRF91@2015-ITRF91@2015xETRF2014@2010', tx=0.0007, ty=0.0012, tz=-0.0261, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 1025 transform2c: (4027893.6812, 307045.9082, 4919475.1547)\n    test 1026     Error2c: (0.000013934, -0.000012081, 0.000026423) max 2.642e-05, epoched 32.0\n    test 1027 transform2v: (-0.01351, 0.01686, 0.00854)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 1028     Error2v: (-0.000440726, -0.000036335, -0.00053728) max 0.0005373\n\n    test 1029 transform0: name='ITRF2020@2015xETRF2020@2020', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=1.29251327e-08, ry=7.80016732e-08, rz=-1.13170058e-07, s=0.0, sx=0.002666, sy=0.016089, sz=-0.023343\n    test 1030 transform2c: (4027893.9574, 307045.5561, 4919474.9643)\n    test 1031     Error2c: (-0.000024276, -0.000021815, -0.000013824) max 2.428e-05, epoched 5.0\n    test 1032 transform2v: (0.01350, -0.01676, -0.01001)\n\n    test 1033 transform0: name='-ITRF2014@2015xETRF2020@2020', tx=-0.0014, ty=-0.0014, tz=0.0024, s1=1.0, rx=-1.29251327e-08, ry=-7.80016732e-08, rz=1.13170058e-07, s=-0.00042, sx=-0.002666, sy=-0.016089, sz=0.023343\n    test 1034 transform2c: (4027893.5358, 307046.0740, 4919475.2748)\n    test 1035     Error2c: (0.000032643, -0.000007101, 0.000047684) max 4.768e-05, epoched 5.0\n    test 1036 transform2v: (-0.01350, 0.01666, 0.01021)\n\n    test 1037 transform0: name='ITRF2014@2015xETRF2014@2020', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=1.27748405e-08, ry=7.980518e-08, rz=-1.15725026e-07, s=0.0, sx=0.002635, sy=0.016461, sz=-0.02387\n    test 1038 transform2c: (4027893.9639, 307045.5450, 4919474.9573)\n    test 1039     Error2c: (0.000032525, 0.000026405, -0.000024305) max 3.253e-05, epoched 5.0\n    test 1040 transform2v: (0.01381, -0.01706, -0.01024)\n\n    test 1041 transform0: name='-ITRF2000@2015xETRF2014@2020', tx=0.0017, ty=0.0022, tz=-0.0451, s1=1.0, rx=-1.27748405e-08, ry=-7.980518e-08, rz=1.15725026e-07, s=0.00322, sx=-0.002635, sy=-0.016461, sz=0.02387\n    test 1042 transform2c: (4027893.5504, 307046.0772, 4919475.2456)  FAILED, KNOWN, expected (4027893.5505, 307046.0772, 4919475.2456)\n    test 1043     Error2c: (-0.000062619, -0.000037673, -0.000034946) max 6.262e-05, epoched 5.0\n    test 1044 transform2v: (-0.01371, 0.01716, 0.00834)\n\n    test 1045 transform0: name='ITRF2000@2015xETRF2000@2020', tx=0.054, ty=0.051, tz=-0.048, s1=1.0, rx=1.21736715e-08, ry=7.36431982e-08, rz=-1.19031455e-07, s=0.0, sx=0.002511, sy=0.01519, sz=-0.024552\n    test 1046 transform2c: (4027894.0033, 307045.5889, 4919474.9047)\n    test 1047     Error2c: (0.000034031, -0.000034106, 0.000010915) max 3.411e-05, epoched 5.0\n    test 1048 transform2v: (0.01287, -0.01740, -0.00945)\n\n    test 1049 transform0*: name='-ITRF2014@2010xITRF89-ITRF89@1989xETRF89@2010@2018.8', tx=-0.03128, ty=-0.0311, tz=0.15984, s1=0.999999991, rx=-1.58921925e-08, ry=-8.23504519e-08, rz=1.00463091e-07, s=-0.009246, sx=-0.003278, sy=-0.016986, sz=0.020722\n    test 1050 transform2c: (4160476.4154, 653193.0567, 4774604.9029)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 1051     Error2c: (-0.069560351, 0.035713888, 0.122930501) max 0.1229, epoched 29.8\n    test 1052 transform2v: (-0.01148, 0.01996, 0.01845)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 1053     Error2v: (-0.015479395, 0.016963959, 0.014448874) max 0.01696\n\n    test 1054 transform0*: name='-ITRF2014@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 1055 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 1056     Error2c: (-0.014174475, 0.037834952, 0.023962618) max 0.03783, epoched 3.8\n    test 1057 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 1058     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 1059 transform1*: name='-ITRF2014@2010xITRF2008@2015-ITRF2008@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 1060 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 1061     Error2c: (-0.014174475, 0.037834952, 0.023962618) max 0.03783, epoched 8.8\n    test 1062 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 1063     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 1064 transform2*: name='-ITRF2014@2010xITRF89@2015-ITRF89@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 1065 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 1066     Error./test/testTrf.py:29: DeprecationWarning: method L{convertRefFrame<pygeodesy.ellipsoidalGeodSolve.LatLon.convertRefFrame>} has been DEPRECATED, use method L{toRefFrame}.\n  x = p.convertRefFrame(RefFrames.ETRF2000)\n./test/testTrf.py:136: DeprecationWarning: method L{convertRefFrame<pygeodesy.ellipsoidalGeodSolve.LatLon.convertRefFrame>} has been DEPRECATED, use method L{toRefFrame}.\n  t = LatLon(0, 0, reframe=RefFrames.ITRF2000).convertRefFrame('ITRF2000')\n2c: (-0.014174475, 0.037834952, 0.023962618) max 0.03783, epoched 8.8\n    test 1067 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 1068     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 1069 transform3*: name='-ITRF2014@2010xITRF88@2015-ITRF88@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 1070 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 1071     Error2c: (-0.014174475, 0.037834952, 0.023962618) max 0.03783, epoched 8.8\n    test 1072 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 1073     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 1074 transform4*: name='-ITRF2014@2010xITRF96@2015-ITRF96@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 1075 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 1076     Error2c: (-0.014174475, 0.037834952, 0.023962618) max 0.03783, epoched 8.8\n    test 1077 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 1078     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 1079 transform5*: name='-ITRF2014@2010xITRF93@2015-ITRF93@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 1080 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 1081     Error2c: (-0.014174475, 0.037834952, 0.023962618) max 0.03783, epoched 8.8\n    test 1082 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 1083     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 1084 transform6*: name='-ITRF2014@2010xITRF90@2015-ITRF90@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 1085 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 1086     Error2c: (-0.014174475, 0.037834952, 0.023962618) max 0.03783, epoched 8.8\n    test 1087 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 1088     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 1089 transform7*: name='-ITRF2014@2010xITRF92@2015-ITRF92@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 1090 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 1091     Error2c: (-0.014174475, 0.037834952, 0.023962618) max 0.03783, epoched 8.8\n    test 1092 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 1093     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 1094 transform8*: name='-ITRF2014@2010xITRF91@2015-ITRF91@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 1095 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 1096     Error2c: (-0.014174475, 0.037834952, 0.023962618) max 0.03783, epoched 8.8\n    test 1097 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 1098     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 1099 toTransform: name='-ITRF2014@2010xITRF91@2015-ITRF91@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=1.0, rx=-1.1702e-08, ry=-7.0792e-08, rz=1.1442e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.023602\n    test 1100 toTransform: name='-ITRF2014@2010xITRF91@2015-ITRF91@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=1.0, rx=-1.1702e-08, ry=-7.0792e-08, rz=1.1442e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.023602\n\n    test 1101 Issue80: 48.77691577°N, 008.92257142°E, +476.05m\n    test 1102 Issue80: 48.77692147°N, 008.92257868°E, +476.09m\n    test 1103 Issue80: 48°46′36.915133″N, 008°55′21.285094″E, +476.10m  FAILED, KNOWN, expected 48°46′36.915134″N, 008°55′21.285094″E, +476.10\n    test 1104 Issue80: 0.804  FAILED, KNOWN, expected 0.01\n    test 1105 Issue80: [4160476.944064, 653192.600457, 4774604.455385]\n    test 1106 Issue80: [4160476.415504, 653193.057171, 4774604.903316]\n    test 1107 Issue80: [4160476.467901, 653193.103647, 4774604.868888]\n    test 1108 Issue80: 48°46′36.915133″N, 008°55′21.285094″E, +476.10m\n\n    test 1109 Issue80: 48.77692032°N, 008.92257804°E, +476.05m\n    test 1110 Issue80: 48.77691971°N, 008.92257856°E, +476.06m\n    test 1111 Issue80: 48°46′36.9315″N, 008°55′21.3089″E, +476.10m  FAILED, KNOWN, expected 48°46′36.9131″N, 008°55′21.28095″E, +476.05m\n    test 1112 Issue80: 0.804  FAILED, KNOWN, expected 0.01\n    test 1113 Issue80: [4160476.492633, 653193.021888, 4774604.78885]\n    test 1114 Issue80: [4160476.54503, 653193.068365, 4774604.754422]\n    test 1115 Issue80: [4160476.016469, 653193.525079, 4774605.202353]\n    test 1116 Issue80: 48°46′36.9315″N, 008°55′21.3089″E, +476.10m\n\n    test 1117 ITRF96@1997xNAD83: TRFXform(epoch=1997.0, name='ITRF96@1997xNAD83')\n    test 1118 ITRF96@1997xNAD83: name='ITRF96@1997xNAD83', tx=0.991, ty=-0.19072, tz=-0.5129, s1=1.0, rx=1.2503e-07, ry=4.6785e-08, rz=5.6529e-08, s=0.0, sx=0.02579, sy=0.00965, sz=0.01166\n    test 1119 ITRF96@1997xNAD83: name='ITRF96@1997xNAD83@2007', tx=0.991, ty=-0.19072, tz=-0.5129, s1=1.0, rx=1.2761e-07, ry=1.0797e-08, rz=5.4997e-08, s=0.0, sx=0.026322, sy=0.002227, sz=0.011344\n    test 1120 ITRF96@1997xNAD83: rx=-2.5792e-10, ry=3.5988e-09, rz=1.532e-10\n\n    testTrf(pygeodesy.ellipsoidalGeodSolve, 25.08.28)\n    test 1121 convertRefFrame: 51.47787826°N, 000.00147125°W, -0.00m  FAILED, KNOWN, expected 51.47787826°N, 000.00147125°W\n    test 1122 copy(<type 'type'>): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 1123 RefFrame.copy(): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 1124 toLatLon: 50.7978°N, 004.3592°E, +148.96m\n    test 1125 convertRefFrame: [3980574.395, -102.214, 4966829.941]\n    test 1126 Nil: True\n    test 1127 copy(<type 'type'>): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 1128 RefFrame.copy(): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 1129 Nil: True\n    test 1130 reframe: True\n    test 1131 Roundtrip: True\n    test 1132 reframe: True\n    test 1133 copy(<type 'type'>): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 1134 RefFrame.copy(): (<class 'pygeodesy.trf.RefFrame'>, True)\n\n    test 1135 Geodetic: 23°40′12.44582″S, 133°53′07.84795″E, +603.34m\n    test 1136 Cartesian: [-4052051.7614, 4212836.1945, -2545106.0147]\n    test 1137 Geodetic: 23°40′12.44582″S, 133°53′07.84795″E, +603.34m\n    test 1138 Cartesian: [-4052051.7614, 4212836.1945, -2545106.0147]\n    test 1139 Roundtrip: 23°40′12.41482″S, 133°53′07.86712″E, +603.26m\n    test 1140 GNSStrans: [3370658.18892, 711877.42369, 5349787.1243]\n    test 1141 Cartesian: [-734972.563, 4893188.492, 4011982.811]\n\n    test 1142 EUREF EX1: [4027893.9676, 307045.5791, 4919474.9587]  FAILED, KNOWN, expected [4027894.0444, 307045.6209, 4919474.8613]\n    test 1143 transform0: ITRF2005@2015xETRF2020-ITRF91@2015xETRF2020@2007 max 0.097331, epoched 8.0\n    test 1144 transform1: ITRF2005@2015xETRF2000-ITRF91@2015xETRF2000@2007 max 0.048666, epoched 8.0\n    test 1145 transform2: ITRF2005@2015xETRF2014-ITRF91@2015xETRF2014@2007 max 4.6566e-10, epoched 8.0\n    test 1146 transform3: ITRF2005@2000xITRF2000+ITRF2000@1988xITRF91@2000@2007 max 0.048666, epoched 19.0\n    test 1147 transform4: -ITRF2020@2015xITRF2005+ITRF2020@2015xITRF91@2007 max 0.097331, epoched 8.0\n    test 1148 transform5: -ITRF2014@2010xITRF2005+ITRF2014@2010xITRF91@2007 max 0.146, epoched 3.0\n    test 1149 transform6: -ITRF2008@2005xITRF2005+ITRF2008@2000xITRF91@2005@2007 max 0.19466, epoched 7.0\n    test 1150 transform7: ITRF2000@1988xITRF91+ITRF2005@2000xITRF2000@1988@2007 max 0.24333, epoched 31.0\n    test 1151 transform8: ITRF2014@2010xITRF91-ITRF2014@2020xGDA2020@2010+ITRF2005@2020xGDA2020@2010@2007 max 0.90432, epoched 23.0\n    test 1152 transform9: ITRF2008@2000xITRF91-ITRF2008@1997xNAD83@2000+ITRF2005@1997xNAD83@2000@2007 max 0.94279, epoched 13.0\n    test 1153 transform10: ITRF2008@2000xITRF91-ITRF2008@1994xGDA94@2000+ITRF2005@1994xGDA94@2000@2007 max 0.31072, epoched 19.0\n    test 1154 EUREF EX2: [4027893.9292, 307045.5582, 4919475.0073]  FAILED, KNOWN, expected [4027894.0060, 307045.6000, 4919474.9100]\n    test 1155 transform0: ITRF91@2015xETRF2000-ITRF2005@2015xETRF2000@2007 max 0.146, epoched 8.0\n    test 1156 transform1: ITRF91@2015xETRF2014-ITRF2005@2015xETRF2014@2007 max 0.19466, epoched 8.0\n    test 1157 transform2: ITRF91@2015xETRF2020-ITRF2005@2015xETRF2020@2007 max 0.146, epoched 8.0\n    test 1158 transform3: -ITRF2005@2000xITRF2000-ITRF2000@1988xITRF91@2000@2007 max 0.19466, epoched 19.0\n    test 1159 EUREF EX4: [4027894.3559, 307045.2508, 4919474.6447]\n    test 1160 transform0: -ITRF2000@2015xETRF2000@2012 max 4.5169e-08, epoched 3.0\n    test 1161 transform1: -ITRF2000@1988xITRF89@2015-ITRF89@2015xETRF2000@2012 max 0.37894, epoched 30.0\n    test 1162 transform2: -ITRF2000@1988xITRF88@2015-ITRF88@2015xETRF2000@2012 max 0.72548, epoched 30.0\n    test 1163 transform3: -ITRF2000@1997xITRF96@2015-ITRF96@2015xETRF2000@2012 max 1.072, epoched 21.0\n    test 1164 transform4: -ITRF2000@1997xITRF97@2015-ITRF97@2015xETRF2000@2012 max 1.4303, epoched 21.0\n    test 1165 transform5: -ITRF2000@1988xITRF92@2015-ITRF92@2015xETRF2000@2012 max 1.7786, epoched 30.0\n    test 1166 transform6: -ITRF2000@1988xITRF93@2015-ITRF93@2015xETRF2000@2012 max 2.1278, epoched 30.0\n    test 1167 transform7: -ITRF2000@1988xITRF90@2015-ITRF90@2015xETRF2000@2012 max 2.4851, epoched 30.0\n    test 1168 transform8: -ITRF2000@1988xITRF91@2015-ITRF91@2015xETRF2000@2012 max 2.8343, epoched 30.0\n    test 1169 EUREF EX5: [4027893.6458, 307045.9470, 4919475.1937]  FAILED, KNOWN, expected [4027894.3662, 307045.2530, 4919474.6263]\n    test 1170 transform0: ITRF2014@2015xETRF2000@2012 max 4.5635e-08, epoched 3.0\n    test 1171 transform1: ITRF2014@2010xITRF2008@2015+ITRF2008@2015xETRF2000@2012 max 0.36023, epoched 8.0\n    test 1172 transform2: ITRF2014@2010xITRF89@2015+ITRF89@2015xETRF2000@2012 max 0.72047, epoched 8.0\n    test 1173 transform3: ITRF2014@2010xITRF88@2015+ITRF88@2015xETRF2000@2012 max 1.0807, epoched 8.0\n    test 1174 transform4: ITRF2014@2010xITRF96@2015+ITRF96@2015xETRF2000@2012 max 1.4409, epoched 8.0\n    test 1175 transform5: ITRF2014@2010xITRF93@2015+ITRF93@2015xETRF2000@2012 max 1.8012, epoched 8.0\n    test 1176 transform6: ITRF2014@2010xITRF90@2015+ITRF90@2015xETRF2000@2012 max 2.1614, epoched 8.0\n    test 1177 transform7: ITRF2014@2010xITRF92@2015+ITRF92@2015xETRF2000@2012 max 2.5216, epoched 8.0\n    test 1178 transform8: ITRF2014@2010xITRF91@2015+ITRF91@2015xETRF2000@2012 max 2.8819, epoched 8.0\n\n    test 1179 Case 1A: [4027893.9619, 307045.5481, 4919474.9553]\n    test 1180 Case 1B: [4027894.0054, 307045.5938, 4919474.9083]\n    test 1181 Case 2A: [4027893.9639, 307045.545, 4919474.9573]\n    test 1182 Case 2B: [4027894.0033, 307045.5889, 4919474.9041]\n\n    test 1183 TypeError: type(reframe) ('ITRF2000'): not a RefFrame\n    test 1184 TRFError: epoch (1899): below 1900.0 limit\n    test 1185 TypeError: type(reframe2) ('ITRF2000'): not a RefFrame\n    test 1186 TRFError: no conversion: LatLon(00°00′00.0″N, 000°00′00.0″E).reframe MISSING\n    test 1187 TypeError: type(reframe2) ('ITRF2000'): not a RefFrame\n    test 1188 TypeError: type(reframe) ('ITRF2000'): not a RefFrame\n\n    test 1189 ETRF89@1989: [4160476.944000, 653192.600000, 4774604.455000]\n    test 1190 ITRF2014@2018.8: [4160476.415, 653193.057, 4774604.903]  FAILED, KNOWN, expected [4160476.485, 653193.021, 4774604.78]\n    test 1191 TransformXform: -ITRF2014@2010xITRF89-ITRF89@1989xETRF89@2010@2018.8\n    test 1192 Delta (m): [-0.06956, 0.035714, 0.122931]  FAILED, KNOWN, expected [0.01, 0.01, 0.01]\n    test 1193 Error (m): 0.145692  FAILED, KNOWN, expected 0.01\n    test 1194 Epoch range: 29.800  FAILED, KNOWN, expected 14.0\n    test 1195 ETRF89@1989: [4160476.467836, 653193.103190, 4774604.868503]  FAILED, KNOWN, expected [4160476.944000, 653192.600000, 4774604.455000]\n    test 1196 TransformXform: ITRF2014@2010xITRF89+ITRF89@1989xETRF89@2010@1989\n\n    test 1197 inverse: -ITRF2014@2010xITRF89-ITRF89@1989xETRF89@2010@1989\n    test 1198 inverse: ITRF2014@2010xITRF89+ITRF89@1989xETRF89@2010@1989\n    test 1199 inverse: name='ITRF2014@2010xITRF89+ITRF89@1989xETRF89@2010@1989', tx=0.0283, ty=0.046, tz=-0.0615, s1=1.0, rx=0.0, ry=0.0, rz=-7.757e-10, s=0.00567, sx=0.0, sy=0.0, sz=-0.00016\n\n    test 1200 ETRF2000@2000: [4160476.952000, 653192.582000, 4774604.441000]\n    test 1201 ITRF2014@2018.8: [4160476.471, 653193.059, 4774604.804]  FAILED, KNOWN, expected [4160476.485, 653193.021, 4774604.78]\n    test 1202 TransformXform: -ITRF2014@2015xETRF2000@2018.8\n    test 1203 Delta (m): [-0.014174, 0.037835, 0.023963]  FAILED, KNOWN, expected [0.01, 0.01, 0.01]\n    test 1204 Error (m): 0.046975  FAILED, KNOWN, expected 0.01\n    test 1205 Epoch range: 18.800  FAILED, KNOWN, expected 14.0\n    test 1206 ETRF2000@2000: [4160476.681125, 653192.914350, 4774604.647835]  FAILED, KNOWN, expected [4160476.952000, 653192.582000, 4774604.441000]\n    test 1207 TransformXform: ITRF2014@2015xETRF2000@2000\n\n    test 1208 inverse: -ITRF2014@2015xETRF2000@2000\n    test 1209 inverse: ITRF2014@2015xETRF2000@2000\n    test 1210 inverse: name='ITRF2014@2015xETRF2000@2000', tx=0.0537, ty=0.0512, tz=-0.0551, s1=1.0, rx=4.3197e-09, ry=2.6131e-08, rz=-4.2237e-08, s=0.00102, sx=0.000891, sy=0.00539, sz=-0.008712\n\n    test 1211 ITRF2008@2005: [4160476.674000, 653192.806000, 4774604.648000]\n    test 1212 ITRF2014@2018.8: [4160476.671, 653192.804, 4774604.645]  FAILED, KNOWN, expected [4160476.485, 653193.021, 4774604.78]\n    test 1213 TransformXform: -ITRF2014@2010xITRF2008@2018.8\n    test 1214 Delta (m): [0.186385, -0.217059, -0.134685]  FAILED, KNOWN, expected [0.01, 0.01, 0.01]\n    test 1215 Error (m): 0.316218  FAILED, KNOWN, expected 0.01\n    test 1216 Epoch range: 13.800  FAILED, KNOWN, expected 14.0\n    test 1217 ITRF2008@2005: [4160476.672278, 653192.805730, 4774604.647403]  FAILED, KNOWN, expected [4160476.674000, 653192.806000, 4774604.648000]\n    test 1218 TransformXform: ITRF2014@2010xITRF2008@2005\n\n    test 1219 inverse: -ITRF2014@2010xITRF2008@2005\n    test 1220 inverse: ITRF2014@2010xITRF2008@2005\n    test 1221 inverse: name='ITRF2014@2010xITRF2008@2005', tx=0.0016, ty=0.0019, tz=0.0029, s1=1.0, rx=0.0, ry=0.0, rz=0.0, s=-0.00017, sx=0.0, sy=0.0, sz=0.0\n\n    test 1222 toRefFrame1: ITRF2020@2015 2024.31 [0.0031474, 0.00210534, -0.00125667]\n    test 1223 toRefFrame2: ITRF2014@2010 2024.32 [0.0031474, 0.00210634, -0.00125867]\n    test 1224 transform0: -ITRF2020@2015xITRF2014@2010\n    test 1225 transform0X: TRFXform(epoch=2010.0, name='-ITRF2020@2015xITRF2014@2010')\n    test 1226 toRefFrame3: ITRF2020@2015 2010 [0.0031474, 0.00067434, 0.00160533]\n    test 1227 transform2x: (4160476.488147, 653193.021674, 4774604.781605)\n    test 1228 transform2v: (0.000, 0.000, 0.000)  FAILED, KNOWN, expected (0.004, 0.003, 0.004)\n\n    test 1229 transform0: name='ITRF2020@2015xETRF2020@2010', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=8.75573508e-09, ry=5.28398431e-08, rz=-7.66635874e-08, s=0.0, sx=0.001806, sy=0.010899, sz=-0.015813\n    test 1230 transform2c: (4027893.9585, 307045.5550, 4919474.9620)  FAILED, KNOWN, expected (4027893.9585, 307045.5550, 4919474.9619)\n    test 1231     Error2c: (-0.000016463, 0.0000336, 0.000055143) max 5.514e-05, epoched 5.0\n    test 1232 transform2v: (-0.00011, 0.00010, 0.00023)  FAILED, KNOWN, expected (0.00011, 0.00011, 0.00024)\n    test 1233     Error2v: (-0.000220786, -0.000005544, -0.000006899) max 0.0002208\n    test 1234 transform0v: (0.00009, 0.00052, -0.00075)  FAILED, KNOWN, expected (0.00011, 0.00011, 0.00024)\n    test 1235     Error0v: (-0.000024, 0.000409, -0.000993) max 0.000993\n\n    test 1236 transform0: name='-ITRF2014@2015xETRF2020@2010', tx=-0.0014, ty=-0.0004, tz=0.0004, s1=1.0, rx=-8.75573508e-09, ry=-5.28398431e-08, rz=7.66635874e-08, s=-0.00042, sx=-0.001806, sy=-0.010899, sz=0.015813\n    test 1237 transform2c: (4027893.6719, 307045.9063, 4919475.1704)  FAILED, KNOWN, expected (4027893.6719, 307045.9064, 4919475.1704)\n    test 1238     Error2c: (0.000024786, -0.000062539, -0.000021305) max 6.254e-05, epoched 5.0\n    test 1239 transform2v: (-0.01339, 0.01677, 0.01045)  FAILED, KNOWN, expected (-0.01361, 0.01676, 0.01044)\n    test 1240     Error2v: (0.000220784, 0.000005543, 0.000006898) max 0.0002208\n    test 1241 transform0v: (-0.00009, -0.00052, 0.00075)  FAILED, KNOWN, expected (-0.01361, 0.01676, 0.01044)\n    test 1242     Error0v: (0.013524, -0.017279, -0.009687) max 0.01728\n\n    test 1243 transform0: name='ITRF2014@2015xETRF2014@2010', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=8.65392421e-09, ry=5.40615736e-08, rz=-7.83943722e-08, s=0.0, sx=0.001785, sy=0.011151, sz=-0.01617\n    test 1244 transform2c: (4027893.9619, 307045.5481, 4919474.9553)  FAILED, KNOWN, expected (4027893.9620, 307045.5480, 4919474.9553)\n    test 1245     Error2c: (-0.00007476, 0.000063039, 0.000002882) max 7.476e-05, epoched 5.0\n    test 1246 transform2v: (0.00020, -0.00030, 0.00020)\n    test 1247     Error2v: (0.000000724, -0.000003666, -0.000002721) max 3.666e-06\n    test 1248 transform0v: (0.00009, 0.00053, -0.00077)  FAILED, KNOWN, expected (0.00020, -0.00030, 0.00020)\n    test 1249     Error0v: (-0.000115, 0.000831, -0.00097) max 0.00097\n\n    test 1250 transform0: name='-ITRF2000@2015xETRF2014@2010', tx=0.0007, ty=0.0012, tz=-0.0261, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 1251 transform2c: (4027893.6812, 307045.9082, 4919475.1547)\n    test 1252     Error2c: (0.000013934, -0.000012081, 0.000026423) max 2.642e-05, epoched 5.0\n    test 1253 transform2v: (-0.01351, 0.01686, 0.00854)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 1254     Error2v: (-0.000440726, -0.000036335, -0.00053728) max 0.0005373\n    test 1255 transform0v: (-0.00008, -0.00053, 0.00077)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 1256     Error0v: (0.012985, -0.017431, -0.00831) max 0.01743\n\n    test 1257 transform0: name='ITRF2000@2015xETRF2000@2010', tx=0.054, ty=0.051, tz=-0.048, s1=1.0, rx=8.24668072e-09, ry=4.98873278e-08, rz=-8.06342114e-08, s=0.0, sx=0.001701, sy=0.01029, sz=-0.016632\n    test 1258 transform2c: (4027894.0054, 307045.5938, 4919474.9083)  FAILED, KNOWN, expected (4027894.0053, 307045.5939, 4919474.9083)\n    test 1259     Error2c: (0.000077874, -0.000055372, -0.000008743) max 7.787e-05, epoched 5.0\n    test 1260 transform2v: (-0.00020, -0.00050, -0.00037)  FAILED, KNOWN, expected (-0.00020, -0.00050, -0.00036)\n    test 1261     Error2v: (-0.000004389, 0.000002124, -0.000008036) max 8.036e-06\n    test 1262 transform0v: (0.00008, 0.00049, -0.00079)  FAILED, KNOWN, expected (-0.00020, -0.00050, -0.00036)\n    test 1263     Error0v: (0.000281, 0.00099, -0.000432) max 0.00099\n\n    test 1264 transform0/: name='-ITRF2000@2015xETRF2014@2010', tx=0.0007, ty=0.0012, tz=-0.0261, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 1265 transform2c: (4027893.6812, 307045.9082, 4919475.1547)\n    test 1266     Error2c: (0.000013934, -0.000012081, 0.000026423) max 2.642e-05, epoched 5.0\n    test 1267 transform2v: (-0.01351, 0.01686, 0.00854)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 1268     Error2v: (-0.000440726, -0.000036335, -0.00053728) max 0.0005373\n\n    test 1269 transform1/: name='-ITRF2000@1988xITRF89@2015-ITRF89@2015xETRF2014@2010', tx=0.02743, ty=0.03207, tz=-0.12033, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 1270 transform2c: (4027893.7079, 307045.9391, 4919475.0605)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 1271     Error2c: (0.026743934, 0.030857919, -0.094203577) max 0.0942, epoched 32.0\n    test 1272 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 1273     Error2v: (-0.000440726, -0.000576335, -0.00179728) max 0.001797\n\n    test 1274 transform2/: name='-ITRF2000@1988xITRF88@2015-ITRF88@2015xETRF2014@2010', tx=0.02293, ty=-0.00033, tz=-0.14193, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 1275 transform2c: (4027893.7034, 307045.9067, 4919475.0389)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 1276     Error2c: (0.022243935, -0.001542081, -0.115803577) max 0.1158, epoched 32.0\n    test 1277 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 1278     Error2v: (-0.000440725, -0.000576335, -0.00179728) max 0.001797\n\n    test 1279 transform3/: name='-ITRF2000@1997xITRF96@2015-ITRF96@2015xETRF2014@2010', tx=0.00673, ty=-0.00033, tz=-0.05913, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 1280 transform2c: (4027893.6872, 307045.9067, 4919475.1217)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 1281     Error2c: (0.006043935, -0.001542081, -0.033003577) max 0.033, epoched 23.0\n    test 1282 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 1283     Error2v: (-0.000440726, -0.000576335, -0.00179728) max 0.001797\n\n    test 1284 transform4/: name='-ITRF2000@1997xITRF97@2015-ITRF97@2015xETRF2014@2010', tx=0.00673, ty=-0.00033, tz=-0.05913, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=8.09154034e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01669\n    test 1285 transform2c: (4027893.6865, 307045.9168, 4919475.1217)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 1286     Error2c: (0.005269863, 0.008612365, -0.033003577) max 0.033, epoched 23.0\n    test 1287 transform2v: (-0.01357, 0.01710, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 1288     Error2v: (-0.00050027, 0.000204776, -0.00179728) max 0.001797\n\n    test 1289 transform5/: name='-ITRF2000@1988xITRF92@2015-ITRF92@2015xETRF2014@2010', tx=0.01393, ty=0.00147, tz=-0.06633, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 1290 transform2c: (4027893.6944, 307045.9085, 4919475.1145)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 1291     Error2c: (0.013243935, 0.000257919, -0.040203577) max 0.0402, epoched 32.0\n    test 1292 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 1293     Error2v: (-0.000440726, -0.000576335, -0.00179728) max 0.001797\n\n    test 1294 transform6/: name='-ITRF2000@1988xITRF93@2015-ITRF93@2015xETRF2014@2010', tx=0.0007, ty=0.0012, tz=-0.0261, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 1295 transform2c: (4027893.6812, 307045.9082, 4919475.1547)\n    test 1296     Error2c: (0.000013934, -0.000012081, 0.000026423) max 2.642e-05, epoched 32.0\n    test 1297 transform2v: (-0.01351, 0.01686, 0.00854)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 1298     Error2v: (-0.000440726, -0.000036335, -0.00053728) max 0.0005373\n\n    test 1299 transform7/: name='-ITRF2000@1988xITRF90@2015-ITRF90@2015xETRF2014@2010', tx=0.02293, ty=0.01047, tz=-0.08613, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 1300 transform2c: (4027893.7034, 307045.9175, 4919475.0947)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 1301     Error2c: (0.022243935, 0.009257919, -0.060003577) max 0.06, epoched 32.0\n    test 1302 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 1303     Error2v: (-0.000440726, -0.000576335, -0.00179728) max 0.001797\n\n    test 1304 transform8/: name='-ITRF2000@1988xITRF91@2015-ITRF91@2015xETRF2014@2010', tx=0.0007, ty=0.0012, tz=-0.0261, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 1305 transform2c: (4027893.6812, 307045.9082, 4919475.1547)\n    test 1306     Error2c: (0.000013934, -0.000012081, 0.000026423) max 2.642e-05, epoched 32.0\n    test 1307 transform2v: (-0.01351, 0.01686, 0.00854)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 1308     Error2v: (-0.000440726, -0.000036335, -0.00053728) max 0.0005373\n\n    test 1309 transform0: name='ITRF2020@2015xETRF2020@2020', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=1.29251327e-08, ry=7.80016732e-08, rz=-1.13170058e-07, s=0.0, sx=0.002666, sy=0.016089, sz=-0.023343\n    test 1310 transform2c: (4027893.9574, 307045.5561, 4919474.9643)\n    test 1311     Error2c: (-0.000024276, -0.000021815, -0.000013824) max 2.428e-05, epoched 5.0\n    test 1312 transform2v: (0.01350, -0.01676, -0.01001)\n\n    test 1313 transform0: name='-ITRF2014@2015xETRF2020@2020', tx=-0.0014, ty=-0.0014, tz=0.0024, s1=1.0, rx=-1.29251327e-08, ry=-7.80016732e-08, rz=1.13170058e-07, s=-0.00042, sx=-0.002666, sy=-0.016089, sz=0.023343\n    test 1314 transform2c: (4027893.5358, 307046.0740, 4919475.2748)\n    test 1315     Error2c: (0.000032643, -0.000007101, 0.000047684) max 4.768e-05, epoched 5.0\n    test 1316 transform2v: (-0.01350, 0.01666, 0.01021)\n\n    test 1317 transform0: name='ITRF2014@2015xETRF2014@2020', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=1.27748405e-08, ry=7.980518e-08, rz=-1.15725026e-07, s=0.0, sx=0.002635, sy=0.016461, sz=-0.02387\n    test 1318 transform2c: (4027893.9639, 307045.5450, 4919474.9573)\n    test 1319     Error2c: (0.000032525, 0.000026405, -0.000024305) max 3.253e-05, epoched 5.0\n    test 1320 transform2v: (0.01381, -0.01706, -0.01024)\n\n    test 1321 transform0: name='-ITRF2000@2015xETRF2014@2020', tx=0.0017, ty=0.0022, tz=-0.0451, s1=1.0, rx=-1.27748405e-08, ry=-7.980518e-08, rz=1.15725026e-07, s=0.00322, sx=-0.002635, sy=-0.016461, sz=0.02387\n    test 1322 transform2c: (4027893.5504, 307046.0772, 4919475.2456)  FAILED, KNOWN, expected (4027893.5505, 307046.0772, 4919475.2456)\n    test 1323     Error2c: (-0.000062619, -0.000037673, -0.000034946) max 6.262e-05, epoched 5.0\n    test 1324 transform2v: (-0.01371, 0.01716, 0.00834)\n\n    test 1325 transform0: name='ITRF2000@2015xETRF2000@2020', tx=0.054, ty=0.051, tz=-0.048, s1=1.0, rx=1.21736715e-08, ry=7.36431982e-08, rz=-1.19031455e-07, s=0.0, sx=0.002511, sy=0.01519, sz=-0.024552\n    test 1326 transform2c: (4027894.0033, 307045.5889, 4919474.9047)\n    test 1327     Error2c: (0.000034031, -0.000034106, 0.000010915) max 3.411e-05, epoched 5.0\n    test 1328 transform2v: (0.01287, -0.01740, -0.00945)\n\n    test 1329 transform0*: name='-ITRF2014@2010xITRF89-ITRF89@1989xETRF89@2010@2018.8', tx=-0.03128, ty=-0.0311, tz=0.15984, s1=0.999999991, rx=-1.58921925e-08, ry=-8.23504519e-08, rz=1.00463091e-07, s=-0.009246, sx=-0.003278, sy=-0.016986, sz=0.020722\n    test 1330 transform2c: (4160476.4154, 653193.0567, 4774604.9029)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 1331     Error2c: (-0.069560351, 0.035713888, 0.122930501) max 0.1229, epoched 29.8\n    test 1332 transform2v: (-0.01148, 0.01996, 0.01845)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 1333     Error2v: (-0.015479395, 0.016963959, 0.014448874) max 0.01696\n\n    test 1334 transform0*: name='-ITRF2014@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 1335 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 1336     Error2c: (-0.014174475, 0.037834952, 0.023962618) max 0.03783, epoched 3.8\n    test 1337 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 1338     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 1339 transform1*: name='-ITRF2014@2010xITRF2008@2015-ITRF2008@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 1340 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 1341     Error2c: (-0.014174475, 0.037834952, 0.023962618) max 0.03783, epoched 8.8\n    test 1342 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 1343     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 1344 transform2*: name='-ITRF2014@2010xITRF89@2015-ITRF89@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 1345 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 1346     Error2c: (-0.014174475, 0.037834952, 0.023962618) max 0.03783, epoched 8.8\n    test 1347 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 1348     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 1349 transform3*: name='-ITRF2014@2010xITRF88@2015-ITRF88@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 1350 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 1351     Error2c: (-0.014174475, 0.037834952, 0.023962618) max 0.03783, epoched 8.8\n    test 1352 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 1353     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 1354 transform4*: name='-ITRF2014@2010xITRF96@2015-ITRF96@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 1355 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 1356     Error2c: (-0.014174475, 0.037834952, 0.023962618) max 0.03783, epoched 8.8\n    test 1357 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 1358     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 1359 transform5*: name='-ITRF2014@2010xITRF93@2015-ITRF93@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 1360 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 1361     Error2c: (-0.014174475, 0.037834952, 0.023962618) max 0.03783, epoched 8.8\n    test 1362 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 1363     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 1364 transform6*: name='-ITRF2014@2010xITRF90@2015-ITRF90@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 1365 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 1366     Error2c: (-0.014174475, 0.037834952, 0.023962618) max 0.03783, epoched 8.8\n    test 1367 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 1368     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 1369 transform7*: name='-ITRF2014@2010xITRF92@2015-ITRF92@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 1370 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 1371     Error2c: (-0.014174475, 0.037834952, 0.023962618) max 0.03783, epoched 8.8\n    test 1372 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 1373     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 1374 transform8*: name='-ITRF2014@2010xITRF91@2015-ITRF91@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 1375 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 1376     Error2c: (-0.014174475, 0.037834952, 0.023962618) max 0.03783, epoched 8.8\n    test 1377 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 1378     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 1379 toTransform: name='-ITRF2014@2010xITRF91@2015-ITRF91@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=1.0, rx=-1.1702e-08, ry=-7.0792e-08, rz=1.1442e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.023602\n    test 1380 toTransform: name='-ITRF2014@2010xITRF91@2015-ITRF91@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=1.0, rx=-1.1702e-08, ry=-7.0792e-08, rz=1.1442e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.023602\n\n    test 1381 Issue80: 48.77691577°N, 008.92257142°E, +476.05m\n    test 1382 Issue80: 48.77692147°N, 008.92257868°E, +476.09m\n    test 1383 Issue80: 48°46′36.915133″N, 008°55′21.285094″E, +476.10m  FAILED, KNOWN, expected 48°46′36.915134″N, 008°55′21.285094″E, +476.10\n    test 1384 Issue80: 0.804  FAILED, KNOWN, expected 0.01\n    test 1385 Issue80: [4160476.944064, 653192.600457, 4774604.455385]\n    test 1386 Issue80: [4160476.415504, 653193.057171, 4774604.903316]\n    test 1387 Issue80: [4160476.467901, 653193.103647, 4774604.868888]\n    test 1388 Issue80: 48°46′36.915133″N, 008°55′21.285094″E, +476.10m\n\n    test 1389 Issue80: 48.77692032°N, 008.92257804°E, +476.05m\n    test 1390 Issue80: 48.77691971°N, 008.92257856°E, +476.06m\n    test 1391 Issue80: 48°46′36.9315″N, 008°55′21.3089″E, +476.10m  FAILED, KNOWN, expected 48°46′36.9131″N, 008°55′21.28095″E, +476.05m\n    test 1392 Issue80: 0.804  FAILED, KNOWN, expected 0.01\n    test 1393 Issue80: [4160476.492633, 653193.021888, 4774604.78885]\n    test 1394 Issue80: [4160476.54503, 653193.068365, 4774604.754422]\n    test 1395 Issue80: [4160476.016469, 653193.525079, 4774605.202353]\n    test 1396 Issue80: 48°46′36.9315″N, 008°55′21.3089″E, +476.10m\n\n    test 1397 ITRF96@1997xNAD83: TRFXform(epoch=1997.0, name='ITRF96@1997xNAD83')\n    test 1398 ITRF96@1997xNAD83: name='ITRF96@1997xNAD83', tx=0.991, ty=-0.19072, tz=-0.5129, s1=1.0, rx=1.2503e-07, ry=4.6785e-08, rz=5.6529e-08, s=0.0, sx=0.02579, sy=0.00965, sz=0.01166\n    test 1399 ITRF96@1997xNAD83: name='ITRF96@1997xNAD83@2007', tx=0.991, ty=-0.19072, tz=-0.5129, s1=1.0, rx=1.2761e-07, ry=1.0797e-08, rz=5.4997e-08, s=0.0, sx=0.026322, sy=0.002227, sz=0.011344\n    test 1400 ITRF96@1997xNAD83: rx=-2.5792e-10, ry=3.5988e-09, rz=1.532e-10\n\n    test 1401 TRFError: day (2), month (1) or year (None): int() argument must be a string or a number, not 'NoneType'\n    test 1402 toStr: name='GDA94', epoch=1994, datum=Datums.GRS80\n    test 1403 str: name='GDA94', epoch=1994, datum=Datums.GRS80\n    test 1404 toStr2: RefFrame(name='GDA94', epoch=1994, datum=Datums.GRS80)\n    test 1405 repr: RefFrame(name='GDA94', epoch=1994, datum=Datums.GRS80)\n\n    test 1406 epoch: 2020.003\n    test 1407 y-m-d: (2020, 1, 1)\n    test 1408 epoch: 2020.251\n    test 1409 y-m-d: (2020, 4, 1)\n    test 1410 epoch: 2020.500\n    test 1411 y-m-d: (2020, 7, 1)\n    test 1412 epoch: 2020.751\n    test 1413 y-m-d: (2020, 10, 1)\n    test 1414 epoch: 2021.000\n    test 1415 y-m-d: (2021, 1, 1)  FAILED, KNOWN, expected (2020, 12, 31)\n\n    test 1416 Epoch (2020).std_repr: False\n    test 1417 Epoch (2020.001): (2020, 1, 1)\n    test 1418 Epoch (2020.086): (2020, 2, 1)\n    test 1419 Epoch (2020.165): (2020, 3, 1)\n    test 1420 Epoch (2020.25): (2020, 4, 1)\n    test 1421 Epoch (2020.332): (2020, 5, 1)\n    test 1422 Epoch (2020.416): (2020, 6, 1)\n    test 1423 Epoch (2020.498): (2020, 7, 1)\n    test 1424 Epoch (2020.583): (2020, 8, 1)\n    test 1425 Epoch (2020.668): (2020, 9, 1)\n    test 1426 Epoch (2020.75): (2020, 10, 1)\n    test 1427 Epoch (2020.834): (2020, 11, 1)\n    test 1428 Epoch (2020.916): (2020, 12, 1)\n    test 1429 Epoch (2021.001): (2021, 1, 1)  FAILED, KNOWN, expected (2020, 13, 1)\n\n    377 of 1429 testTrf.py tests (26.4%) FAILED, incl. 367 KNOWN plus 10 DeprecationWarnings (pygeodesy 26.3.26 Python 2.7.18 64bit arm64_x86_64 geographiclib 1.50 numpy 1.16.6 scipy 1.2.2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 -W  default) 421.531 ms\nrunning /Library/Framewo....ython -W default ~/PyGeodesy/test/testTriaxials.py\n./test/testTriaxials.py:134: DeprecationWarning: method L{area_p<pygeodesy.triaxials.triaxial5.Conformal.area_p>} has been DEPRECATED on 2026-02-15, use method L{areaKT<Triaxial_.areaKT>}.\n  p = J.area_p()\n./test/testTriaxials.py:192: DeprecationWarning: method L{area_p<pygeodesy.triaxials.triaxial5.ConformalSphere.area_p>} has been DEPRECATED on 2026-02-15, use method L{areaKT<Triaxial_.areaKT>}.\n  p = J.area_p()\n\n    testing testTriaxials.py 26.03.12\n\n    testHartzell(pygeodesy.triaxials.triaxial5, 26.03.09)\n    test 1 hartzell4: (884268.349816, 5592134.174908, 2927668.068131, 12669388.912805)\n    test 2 hartzell4: 0\n    test 3 hartzell4: (3642143.609933, 3678204.437754, 3714265.265575, 11296443.179278)\n    test 4 hartzell4: 0\n\n    test 5 hartzell4: (888679.181482, 5594339.590741, 2931196.612187, 12663325.092381)\n    test 6 hartzell4: 0\n    test 7 hartzell4: (3642304.092727, 3678366.509487, 3714428.926247, 11296162.453809)\n    test 8 hartzell4: 0\n\n    test 9 hartzell4: (884080.396945, 5592040.198472, 2927517.711001, 12669647.302276)\n    test 10 hartzell4: 0\n    test 11 hartzell4: (3642031.283571, 3678090.99925, 3714150.714929, 11296639.666827)\n    test 12 hartzell4: 0\n\n    test 13 hartzell: 30°38′27.119″N, 060°44′36.777″E, +142549.69m\n    test 14 hartzell: 30.640866, 060.743549, +142549.69m\n    test 15 hartzell: [2807429.59, 4862610.688, 3220373.735]\n    test 16 hartzell: [2684238.298, 4791786.806, 3231700.636]\n    test 17 hartzell: 142549.694385  FAILED, KNOWN, expected 142549.6943849337\n\n    test 18 hartzell: 30°00′00.0″N, 060°00′00.0″E, +100000.00m\n    test 19 hartzell: 30.0, 060.0, +100000.00m\n    test 20 hartzell: [2807429.59, 4862610.688, 3220373.735]\n    test 21 hartzell: [2764128.32, 4787610.688, 3170373.735]\n    test 22 hartzell: 100000.0\n\n    testConformal(pygeodesy.triaxials.triaxial5, 26.03.09)\n    test 23 Conformal: Conformal(name='Test', a=6378172, b=6378102, c=6356752, e2ab=0.00002195, e2bc=0.006683577, e2ac=0.00670538, xyQ2=xyQ2(x=10026968.259439, y=27085126.866409), volume=1083207266220584468480, area=510065604942135.875, R2=6371007.076110449)\n    test 24 xR: 1.57209280432  FAILED, KNOWN, expected 1.572092804\n    test 25 yR: 4.24658101523  FAILED, KNOWN, expected 4.246581015\n    test 26 xyR2.toDegrees: (90.074283, 243.31117)\n    test 27 xyR2.toDegrees: (90.074283, 243.311169)  FAILED, KNOWN, expected ('90°04′27.42″N', '243°18′40.21″E')\n    test 28 areaRG: 510065604942135\n    test 29 area_p: 510065609807745\n    test 30 error: 9.54e-09\n    test 31 volume: 1.083207e+21\n\n    test 32 Conformal: Conformal(name='Itokawa25134', a=267.5, b=147, c=104.5, e2ab=0.6980138, e2bc=0.494643436, e2ac=0.847389292, xyQ2=xyQ2(x=460.426025, y=209.544083), volume=17212581.945495993, area=359464.659686278, R2=169.130980982)\n    test 33 xyR2: (0.0, 0.61539)\n    test 34 toDegrees: (0.0, 35.259243)\n    test 35 toDegrees: (0.0, 35.259242)  FAILED, KNOWN, expected ('00°00′00.0″N', '035°15′33.27″E')\n    test 36 xyQR2: (3.13215, 1.42547)\n    test 37 toDegrees: (179.458966, 81.673412)  FAILED, KNOWN, expected (179.4589659, 81.673412)\n    test 38 toDegrees: (179.458967, 81.673411)  FAILED, KNOWN, expected ('179°27′32.28″N', '081°40′24.28″E')\n\n    testConformalSphere(pygeodesy.triaxials.triaxial5, 26.03.09)\n    test 39 ConformalSphere: ConformalSphere(name='Test', a=6378172, ab=1, bc=2, e2ab=0, e2bc=0, e2ac=0, xyQ2=xyQ2(x=11059220.127879, y=12941050.138298), volume=1086869218894412120064, area=511213503913540.8125, R2=6378172)\n    test 40 xR: 1.73391688526\n    test 41 yR: 2.02895910275\n    test 42 xyR2.toDegrees: (99.34612, 116.250793)\n    test 43 xyR2.toDegrees: (99.346119, 116.250794)  FAILED, KNOWN, expected ('99°20′46.03″N', '116°15′02.86″E')\n    test 44 areax: 511213503913540\n    test 45 area_p: 511213503913539  FAILED, KNOWN, expected 511213503913540\n    test 46 volume: 1.086869e+21\n\n    test 47 ConformalSphere: ConformalSphere(name='Itokawa25134', a=267.5, ab=147, bc=104.5, e2ab=0, e2bc=0, e2ac=0, xyQ2=xyQ2(x=517.119524, y=478.404858), volume=80178876.856908351, area=899202.357273738, R2=267.5)\n    test 48 xyR2: (0.0, 0.818354)\n    test 49 toDegrees: (0.0, 46.888217)\n    test 50 toDegrees: (0.0, 46.888217)  FAILED, KNOWN, expected ('00°00′00.0″N', '046°53′17.58″E')\n    test 51 xyQR2: (1.933157, 1.788429)\n    test 52 toDegrees: (110.761743, 102.469455)  FAILED, KNOWN, expected (179.4589659, 81.673412)\n    test 53 toDegrees: (110.761742, 102.469456)  FAILED, KNOWN, expected ('110°45′42.27″N', '102°28′10.04″E')\n\n    testTriaxial(pygeodesy.triaxials.triaxial5, 26.03.09)\n    test 54 Triaxial: Triaxial(name='Test', a=6378388, b=6378318, c=6356911.9461, e2ab=0.000021949, e2bc=0.006700868, e2ac=0.00672267, volume=1083307891664673177600, area=510097198412933.0625, R2=6371204.383189477)\n    test 55 Triaxial: Triaxial_(name='Un', a=6356911.9461, b=6378388, c=6378318, e2ab=-0.00676817, e2bc=0.000021949, e2ac=-0.006746073, volume=1083307891664673308672, area=510097198412933.125, R2=6371204.383189478)\n\n    test 56 forwardBetaOmega: (4234607.381429, 3551286.590486, 3176009.080037)\n    test 57 forwardBetaOmega: (4233813.533025, 3550620.827453, 3175409.655093)\n    test 58 length: 1196.973671\n\n    test 59 forwardCartesian: (4233813.533151, 3550620.827558, 3175409.654809, 1196.973671)\n    test 60 forwardCartesian: (4239665.951888, 3553574.566129, 3164352.410834, 12911.309173)\n\n    test 61 reverseCartesian: (4234607.381429, 3551286.590486, 3176009.080037)\n    test 62 reverseCartesian: (4248255.186992, 3560773.833183, 3170763.143924)  FAILED, KNOWN, expected (4234607.381429, 3551286.590486, 3176009.080037)\n\n    test 63 forwardBetaOmega_: (4233813.533025, 3550620.827453, 3175409.655093)\n\n    test 64 reverseLatLon: (30.051881, 39.984967, 0.0)\n    test 65 forwardLatLon: (4233813.533025, 3550620.827453, 3175409.655093)\n\n    test 66 reverseBetaOmega: (0.520687, 0.698121, 12892.55755)\n    test 67 reverseBetaOmega: (0.521162, 0.698437, 12918.032538)\n    test 68 toDegrees: (29.860398, 40.017494, 12918.032538)\n    test 69 toDegrees: (29.860397, 40.017494, 12918.032538)  FAILED, KNOWN, expected ('29°51′37.43″', '40°01′02.98″', 12918.032538)\n\n    test 70 height4: (3909251.554667, 3909165.750567, 3170432.501602, 999.999996)\n\n    test 71 height4: (1.206423, 1.61288, 0.433517, 3.593736)\n    test 72 height4: 52\n    test 73 height4: 0\n    test 74 height4: (-1.206423, -1.61288, -0.433517, 3.593736)\n    test 75 height4: (0.0, 1.746769, 0.487031, 3.375213)\n    test 76 height4: (1.563196, 0.0, 0.853517, 2.190477)\n    test 77 height4: (1.297504, 1.803267, 0.0, 2.306326)\n\n    test 78 height4(-2, -4, -3): (-1.206423, -1.61288, -0.433517, 3.593736) 52\n    test 79 signBit(-2, -4, -3): (True, True, True)\n\n    test 80 height4(-2, -4, 0): (-1.297504, -1.803267, 0.0, 2.306326) 52\n    test 81 signBit(-2, -4, 0): (True, True, False)\n\n    test 82 height4(-2, -4, 3): (-1.206423, -1.61288, 0.433517, 3.593736) 52\n    test 83 signBit(-2, -4, 3): (True, True, False)\n\n    test 84 height4(-2, 0, -3): (-1.563196, 0.0, -0.853517, 2.190477) 53\n    test 85 signBit(-2, 0, -3): (True, False, True)\n\n    test 86 height4(-2, 0, 0): (-3.0, 0.0, 0.0, -1.0) None\n    test 87 signBit(-2, 0, 0): (True, False, False)\n\n    test 88 height4(-2, 0, 3): (-1.563196, 0.0, 0.853517, 2.190477) 53\n    test 89 signBit(-2, 0, 3): (True, False, False)\n\n    test 90 height4(-2, 4, -3): (-1.206423, 1.61288, -0.433517, 3.593736) 52\n    test 91 signBit(-2, 4, -3): (True, False, True)\n\n    test 92 height4(-2, 4, 0): (-1.297504, 1.803267, 0.0, 2.306326) 52\n    test 93 signBit(-2, 4, 0): (True, False, False)\n\n    test 94 height4(-2, 4, 3): (-1.206423, 1.61288, 0.433517, 3.593736) 52\n    test 95 signBit(-2, 4, 3): (True, False, False)\n\n    test 96 height4(0, -4, -3): (0.0, -1.746769, -0.487031, 3.375213) 54\n    test 97 signBit(0, -4, -3): (False, True, True)\n\n    test 98 height4(0, -4, 0): (0.0, -2.0, 0.0, 2.0) None\n    test 99 signBit(0, -4, 0): (False, True, False)\n\n    test 100 height4(0, -4, 3): (0.0, -1.746769, 0.487031, 3.375213) 54\n    test 101 signBit(0, -4, 3): (False, True, False)\n\n    test 102 height4(0, 0, -3): (0.0, 0.0, -1.0, 2.0) None\n    test 103 signBit(0, 0, -3): (False, False, True)\n\n    test 104 height4(0, 0, 0): (0.0, 0.0, 0.0, -1.0) None\n    test 105 signBit(0, 0, 0): (False, False, False)\n\n    test 106 height4(0, 0, 3): (0.0, 0.0, 1.0, 2.0) None\n    test 107 signBit(0, 0, 3): (False, False, False)\n\n    test 108 height4(0, 4, -3): (0.0, 1.746769, -0.487031, 3.375213) 54\n    test 109 signBit(0, 4, -3): (False, False, True)\n\n    test 110 height4(0, 4, 0): (0.0, 2.0, 0.0, 2.0) None\n    test 111 signBit(0, 4, 0): (False, False, False)\n\n    test 112 height4(0, 4, 3): (0.0, 1.746769, 0.487031, 3.375213) 54\n    test 113 signBit(0, 4, 3): (False, False, False)\n\n    test 114 height4(2, -4, -3): (1.206423, -1.61288, -0.433517, 3.593736) 52\n    test 115 signBit(2, -4, -3): (False, True, True)\n\n    test 116 height4(2, -4, 0): (1.297504, -1.803267, 0.0, 2.306326) 52\n    test 117 signBit(2, -4, 0): (False, True, False)\n\n    test 118 height4(2, -4, 3): (1.206423, -1.61288, 0.433517, 3.593736) 52\n    test 119 signBit(2, -4, 3): (False, True, False)\n\n    test 120 height4(2, 0, -3): (1.563196, 0.0, -0.853517, 2.190477) 53\n    test 121 signBit(2, 0, -3): (False, False, True)\n\n    test 122 height4(2, 0, 0): (3.0, 0.0, 0.0, -1.0) None\n    test 123 signBit(2, 0, 0): (False, False, False)\n\n    test 124 height4(2, 0, 3): (1.563196, 0.0, 0.853517, 2.190477) 53\n    test 125 signBit(2, 0, 3): (False, False, False)\n\n    test 126 height4(2, 4, -3): (1.206423, 1.61288, -0.433517, 3.593736) 52\n    test 127 signBit(2, 4, -3): (False, False, True)\n\n    test 128 height4(2, 4, 0): (1.297504, 1.803267, 0.0, 2.306326) 52\n    test 129 signBit(2, 4, 0): (False, False, False)\n\n    test 130 height4(2, 4, 3): (1.206423, 1.61288, 0.433517, 3.593736) 52\n    test 131 signBit(2, 4, 3): (False, False, False)\n\n    test 132 _plumbTo5: 2.356, 1.116, 0.268, 6.503, 54\n    test 133 _plumbTo5: 2.356, 0.268, 1.116, 6.503, 54\n    test 134 _plumbTo5: 1.116, 2.356, 0.268, 6.503, 54\n    test 135 _plumbTo5: 1.116, 0.268, 2.356, 6.503, 54\n    test 136 _plumbTo5: 0.268, 2.356, 1.116, 6.503, 54\n    test 137 _plumbTo5: 0.268, 1.116, 2.356, 6.503, 54\n\n    test 138 _plumbTo5(-9300557.963570276, -11660481.511793813, 0.0): (-3962700.829072, -4987439.729515, 0.0, 8545303.120214) 53\n    test 139 _plumbTo5(0.0, -12673220.90213298, 4063222.7994714356): (0.0, -6073846.031207, 1947342.96726, 6930273.887183) 53\n    test 140 _plumbTo5(2499951.171555953, 6362115.170256343, -7034566.006072541): (1621709.788784, 4136852.378785, -4574066.473867, 3431786.759912) 54\n    test 141 _plumbTo5(-9399021.583039021, -7763804.562755707, -6951119.751015274): (-4256878.854533, -3529258.643752, -3159791.771735, 7664670.823131) 53\n    test 142 _plumbTo5(-9612922.39422538, 3333663.5145574105, 5962187.189486663): (-5182331.629107, 1802765.616547, 3224175.948651, 5428672.808065) 53\n    test 143 _plumbTo5(-11328035.20390406, -9256612.246624056, -7692781.497645869): (-4355036.26798, -3573470.200045, -2969720.914727, 10160123.963414) 53\n    test 144 _plumbTo5(1598946.114177574, -11973388.958217159, 0.0): (841594.384072, -6322243.162372, 0.0, 5701669.093257) 55\n    test 145 _plumbTo5(-10308543.102586422, 1905777.409769761, 6374385.685515664): (-5341300.900271, 990674.649223, 3313543.184377, 5905900.86063) 52\n    test 146 _plumbTo5(-8735659.812590662, -6834366.166941474, 0.0): (-5007671.762691, -3929037.172672, 0.0, 4726397.30293) 49\n    test 147 _plumbTo5(2573537.1013443363, 5389514.603678346, 3732045.3303140495): (2328470.382191, 4879418.28281, 3378814.925965, 667103.943892) 56\n    test 148 _plumbTo5(1431210.08717349, 1543852.068510235, -9327538.892237142): (952507.562384, 1029789.273711, -6221664.3004, 3184316.825389) 54\n    test 149 _plumbTo5(-6918305.550287351, 5935533.8579224525, 0.0): (-4827349.027207, 4150037.850017, 0.0, 2749562.724445) 53\n    test 150 _plumbTo5(-9690082.180926248, -12628809.340338562, -9286452.325150812): (-3340011.67621, -4372204.152622, -3215004.809673, 12056425.654973) 54\n    test 151 _plumbTo5(6115158.880607812, -9076497.651064131, -8024493.905200128): (2863993.849608, -4266165.0229, -3771654.917276, 7196944.734371) 53\n    test 152 _plumbTo5(1724581.719029579, -6998172.662048493, -7855478.093763296): (1028985.282031, -4186867.746033, -4699735.122818, 4283223.48619) 55\n    test 153 _plumbTo5(2415660.719960912, 3370437.398145044, 4064858.8972798586): (2653346.350446, 3699619.79338, 4461873.310774, -567869.661801) 57\n    test 154 _plumbTo5(4680172.356713349, 3934108.248885277, -12216049.126176806): (2177456.956147, 1836953.284537, -5703973.450785, 7284831.701745) 54\n    test 155 _plumbTo5(-11233201.5712916, 6234031.774633325, 2200909.912500357): (-5478411.907088, 3050833.099543, 1077077.210703, 6671833.168324) 51\n    test 156 _plumbTo5(-11715241.42141346, -10821620.410300551, 0.0): (-4668119.327083, -4329550.547309, 0.0, 9581696.139952) 53\n    test 157 _plumbTo5(-10345293.423252314, 0.0, -10870372.84072365): (-4381253.482469, 0.0, -4621478.658329, 8638197.203006) 53\n    test 158 _plumbTo5(-7557919.112373196, -11824465.154778786, -8112109.980877586): (-2962336.280569, -4653637.304907, -3192560.055644, 9835757.473797) 53\n    test 159 _plumbTo5(1838805.8848315026, -6725371.874146875, -11338156.124049723): (878072.411204, -3222840.9156, -5433254.316061, 6932430.835206) 53\n    test 160 _plumbTo5(4963022.036653666, -7903436.513628428, 4517677.539411903): (3044634.97533, -4861105.025942, 2778629.195588, 3995031.782124) 54\n    test 161 _plumbTo5(-8457240.198937353, 4465676.5419738265, 3454646.1876322697): (-5288403.367483, 2799487.292288, 2165664.890427, 3805152.59414) 52\n    test 162 _plumbTo5(0.0, -11746093.313145366, -7753017.004196427): (0.0, -5323340.222224, -3513632.219973, 7695722.228332) 53\n    test 163 _plumbTo5(-11330258.40928789, -8840032.800537905, 3934021.6803214545): (-4833061.479002, -3785417.937653, 1684578.516197, 8533621.383191) 52\n    test 164 _plumbTo5(896051.3721805144, -12424974.283212215, -11664464.01489593): (333488.669933, -4643875.404912, -4359572.240515, 10687535.748865) 55\n    test 165 _plumbTo5(-11487978.414727544, 4802532.579191126, -7527288.768773187): (-5018370.895409, 2105895.452992, -3300651.805118, 8184872.220563) 52\n    test 166 _plumbTo5(-9546307.350822354, 4184538.924485122, 3361649.2321092547): (-5541804.863402, 2436070.68603, 1956999.371538, 4589795.483837) 52\n    test 167 _plumbTo5(3304719.1006247634, 6368069.492745702, 5147486.989470732): (2382176.324136, 4598995.150383, 3717472.520953, 2454720.062131) 52\n    test 168 _plumbTo5(-11018841.687343763, -10458281.327678155, 1715534.1896014542): (-4580406.544453, -4364532.4739, 715931.106356, 8921122.603472) 52\n    test 169 _plumbTo5(3689058.5582935237, 5794731.588921194, -12171672.035017816): (1677443.495773, 2644603.971725, -5554850.5793, 7599488.492078) 54\n    test 170 _plumbTo5(-10633023.927465683, 5600503.720165909, -10521933.62404787): (-4230098.528732, 2237084.904542, -4202862.773683, 9604202.007609) 53\n    test 171 _plumbTo5(1581203.1457984832, 972784.2195132434, -11582061.407866646): (857161.119854, 528969.075136, -6297893.034445, 5351975.722701) 54\n    test 172 _plumbTo5(2258768.8877436225, -10545885.529490544, -11638568.100146323): (904335.151273, -4239307.382901, -4678490.005432, 9489473.417954) 54\n    test 173 _plumbTo5(5449452.583609067, 4374805.24215859, 0.0): (4962521.845408, 3986293.169835, 0.0, 622931.115089) 55\n    test 174 _plumbTo5(0.0, -12044606.76119266, -11107727.393653879): (0.0, -4688878.45938, -4324100.12185, 10006214.959356) 53\n    test 175 _plumbTo5(1391615.2762485908, 4643471.617773707, -8524542.497803029): (902989.115857, 3020177.55943, -5544436.689757, 3428537.552897) 55\n    test 176 _plumbTo5(4553332.79516834, 0.0, -11948204.910893947): (2263714.441299, 0.0, -5960198.641149, 6410816.741483) 46\n    test 177 _plumbTo5(-6991240.9522123765, 3573758.163707412, -11499098.86986609): (-3191114.176552, 1637205.196693, -5267888.77311, 7551104.566556) 54\n    test 178 _plumbTo5(4346071.768838822, -12676369.788059339, -8625714.865661299): (1732485.105983, -5073723.993416, -3452401.680407, 9560032.826084) 54\n    test 179 _plumbTo5(-11796704.490959167, 4693605.909583221, -7755512.678621262): (-5039630.336279, 2012890.588977, -3325972.201965, 8512644.395034) 52\n    test 180 _plumbTo5(-9857935.929440495, -7083469.29429921, -7597293.530919445): (-4375144.938277, -3155581.107273, -3384441.033989, 7952196.477921) 53\n    test 181 _plumbTo5(-7849265.43363731, -12296239.547632324, -11695203.666485839): (-2666327.692743, -4195550.606205, -3990415.860312, 12322652.315549) 54\n    test 182 _plumbTo5(5782789.149559475, 4230398.681706039, -10100876.341130221): (2968611.562144, 2178815.561377, -5202278.543157, 6010395.093456) 54\n    test 183 _plumbTo5(-6721627.728424339, 3921334.050215278, 4341917.669793846): (-4797940.587727, 2804468.92205, 3105243.492973, 2545058.535557) 54\n    test 184 _plumbTo5(3103613.487675563, 3353974.9701309437, 6140525.238593257): (2582394.320743, 2793864.508925, 5115044.92371, 1279454.190248) 56\n    test 185 _plumbTo5(4871989.8030514065, 1511221.8994557532, -11374991.639695557): (2484500.466358, 773203.931791, -5819856.095636, 6091330.459456) 55\n    test 186 _plumbTo5(3983476.357183724, -11896358.651329251, -8874776.080755137): (1646939.314496, -4937934.337559, -3683690.128022, 8990353.032611) 53\n    test 187 _plumbTo5(-12232241.75844025, -8896123.163864251, -12061095.74698321): (-4016778.735414, -2934526.024306, -3978483.447105, 12975480.52009) 51\n    test 188 _plumbTo5(6051890.922149057, -9138866.342165468, -7899662.153607158): (2846953.972979, -4314501.247901, -3729423.981743, 7137016.591055) 53\n    test 189 _plumbTo5(0.0, -12018001.797308534, -9669847.362812674): (0.0, -4969484.39998, -3998463.12413, 9046888.784727) 53\n    test 190 _plumbTo5(1104159.7450067785, -8933322.846628752, -8232288.85554826): (575505.363003, -4671223.175101, -4304608.312774, 5819935.009237) 55\n    test 191 _plumbTo5(-12285698.649100646, -6468839.019335532, 1111825.1234923722): (-5606534.170441, -2962859.976193, 509232.485363, 7567446.403608) 51\n    test 192 _plumbTo5(6164586.315447328, -6570993.547312566, -7009338.728096933): (3433836.285126, -3671148.330678, -3916009.463584, 5043290.983795) 54\n    test 193 _plumbTo5(5810856.18558647, 0.0, 5443736.935053998): (4643539.338101, 0.0, 4356032.71558, 1595534.108531) 53\n    test 194 _plumbTo5(3045291.2748601795, -12047166.523940891, 4145312.0264436): (1477707.357284, -5866107.404541, 2018447.381737, 6722080.361991) 53\n    test 195 _plumbTo5(-12310686.861604113, 4490997.749010969, 4706333.140706941): (-5620100.827678, 2057758.070922, 2156398.283032, 7562193.106949) 51\n    test 196 _plumbTo5(0.0, -10417005.95004532, 1096043.9416744518): (0.0, -6343372.094827, 667423.529425, 4096121.121766) 55\n    test 197 _plumbTo5(-9328658.157408016, -8727445.91510853, -7164361.624406569): (-4047787.679128, -3801383.053863, -3120517.243101, 8276857.235783) 53\n    test 198 _plumbTo5(4004540.7175387996, -11570302.120248156, -9648174.197345335): (1632110.000481, -4734504.672948, -3947929.189058, 9211370.549612) 54\n    test 199 _plumbTo5(4951059.590957711, -10579905.153037313, 0.0): (2695071.612036, -5776786.518702, 0.0, 5306545.993067) 54\n    test 200 _plumbTo5(-9817215.707186649, 1404424.6605718988, -7635711.877316512): (-4986241.366763, 715685.986293, -3891068.931154, 6151018.194862) 52\n    test 201 _plumbTo5(-9226958.012842577, -11904773.189821461, 1232606.3717949751): (-3879997.259142, -5025614.86624, 520339.719152, 8741860.918991) 53\n    test 202 _plumbTo5(-9294215.903196817, -9475838.607438505, -7258008.370200141): (-3904243.12217, -3996117.310094, -3060782.896861, 8757616.899067) 53\n    test 203 _plumbTo5(1813071.5166954175, -11870699.784259336, 0.0): (959984.408777, -6305237.986816, 0.0, 5630463.802609) 55\n    test 204 _plumbTo5(-8070414.213571079, 2121751.216468508, -11940859.681137668): (-3520659.244601, 929119.789927, -5228865.699716, 8195944.314347) 53\n    test 205 _plumbTo5(1983182.8093028092, -7201637.66773865, 3707586.824689597): (1514301.762836, -5507719.018525, 2835499.643779, 1962076.929429) 55\n    test 206 _plumbTo5(5748153.737118241, -6882237.916418789, 2587629.85032861): (3918240.471327, -4701352.809943, 1767633.784285, 2962640.031508) 54\n    test 207 _plumbTo5(3599567.4561901274, 3568156.378792255, 5087296.333534707): (3192628.239273, 3167175.349451, 4515586.787491, 808230.856373) 55\n    test 208 _plumbTo5(6332182.791791897, 650768.1906614412, 5229220.500981262): (4889934.279374, 503316.759349, 4044360.595285, 1872355.65326) 53\n    test 209 _plumbTo5(-7686777.522571826, 5938745.815625527, 3226655.8410251727): (-4775676.603719, 3699069.150747, 2009771.869735, 3869297.96249) 52\n    test 210 _plumbTo5(-11334586.650609732, 3226213.631890666, -9803475.289560119): (-4699110.593827, 1342813.41715, -4080346.4914, 8962753.042975) 53\n    test 211 _plumbTo5(1209250.1021613986, -7927451.295950009, -9884218.82879363): (603947.984131, -3972655.39577, -4953189.093461, 6349949.253097) 54\n    test 212 _plumbTo5(-9468560.73748405, -7719648.903467059, 5285089.176401713): (-4521609.402029, -3699428.974742, 2532704.373933, 6943350.624269) 53\n    test 213 _plumbTo5(-11609395.379492946, -12479358.161318503, -8004658.667638679): (-3916521.929023, -4228849.152327, -2712479.469611, 12460271.325154) 53\n    test 214 _plumbTo5(-7482168.509654696, -10663969.206387935, -6775795.621459396): (-3238104.211183, -4632777.701726, -2943591.132153, 8311025.447159) 54\n    test 215 _plumbTo5(-12051586.67131921, -7937133.918586954, 6171101.6767646205): (-4880071.659805, -3226907.639097, 2508879.900608, 9328918.881743) 51\n    test 216 _plumbTo5(2693704.1644080514, 5886511.878573126, -7713610.831206213): (1701853.791801, 3728264.716598, -4885431.688261, 3693290.570535) 54\n    test 217 _plumbTo5(4191881.2603775556, 5756491.153644105, 3844435.861708639): (3297512.922422, 4534806.33283, 3028527.346869, 1719917.216012) 55\n    test 218 _plumbTo5(-7620050.690786623, 6233697.178296718, -11376300.748524757): (-3218491.145035, 2643199.220824, -4823694.2317, 8671911.795086) 53\n    test 219 _plumbTo5(-10402923.998065077, -9278259.065432366, -10991960.007401204): (-3722932.992823, -3334840.833801, -3950732.720985, 11380921.834595) 53\n    test 220 _plumbTo5(1664289.6338429423, -10314363.339718409, -11403226.716545999): (683673.150532, -4253884.829219, -4702896.915317, 9087652.497142) 54\n    test 221 _plumbTo5(-7218119.32792659, 1021119.5917858669, 2969411.4999289806): (-5831133.043799, 825974.955578, 2401921.639022, 1511243.568599) 52\n    test 222 _plumbTo5(2362590.260898539, -11179920.812016979, 4029496.2855799953): (1239737.875911, -5885318.850543, 2121179.956116, 5738926.608889) 54\n    test 223 _plumbTo5(-6425902.437780579, 0.0, -7204483.762955237): (-4233887.154159, 0.0, -4757752.759748, 3285030.229037) 53\n    test 224 _plumbTo5(-7027549.803612396, 1892547.8059282005, 2643227.812884008): (-5771696.602951, 1556211.005249, 2173474.378512, 1382374.0428) 53\n    test 225 _plumbTo5(2231918.1899190005, 1142355.6533181877, -8953604.648739627): (1527716.907525, 783588.596899, -6141602.328426, 2920953.662136) 55\n    test 226 _plumbTo5(-6712867.954197352, -10099305.754589057, -6972710.889221444): (-3049882.60141, -4605349.612886, -3179563.898031, 7615049.56507) 53\n    test 227 _plumbTo5(-11544512.912700232, 5172690.252464141, -6575481.046907441): (-5146737.608908, 2314695.737583, -2942386.38478, 7892973.983796) 52\n    test 228 _plumbTo5(-7231418.854726524, -6931901.764431111, 5928608.696365689): (-3949987.12744, -3797969.170954, 3248235.531947, 5270078.555566) 53\n    test 229 _plumbTo5(2641171.1753598885, -8793189.37091239, -6725045.423073929): (1475827.679651, -4928056.107131, -3768948.901374, 5003577.445727) 55\n    test 230 _plumbTo5(0.0, -9577834.41768268, 888799.0753286064): (0.0, -6351100.567623, 589361.88746, 3240597.779516) 54\n    test 231 _plumbTo5(4002145.9929036815, 2688128.1429674844, 4846498.54240657): (3728737.130986, 2505637.898739, 4517475.240442, 465092.924316) 56\n    test 232 _plumbTo5(3585868.545969172, 1409502.4515369476, 2541452.690286451): (4950202.413631, 1940818.862431, 3499490.281395, -1749725.70905) 53\n    test 233 _plumbTo5(-8384452.668034479, 1341358.3925355002, 5593378.076872706): (-5243384.864758, 840963.227664, 3506733.764323, 3804048.731667) 52\n    test 234 _plumbTo5(-11127395.128320502, -7531662.078340402, -11376309.34465787): (-4015505.65089, -2729654.017282, -4122988.207916, 11236054.506381) 53\n    test 235 _plumbTo5(3643497.5895474995, -7089488.769009512, -10173411.609088594): (1792017.513542, -3498846.225523, -5020786.16202, 6547537.044166) 54\n    test 236 _plumbTo5(5284647.583569344, 3370368.361303387, 2734738.991192815): (4918192.413272, 3138118.630801, 2546286.185455, 473015.633089) 48\n    test 237 _plumbTo5(2165182.6086123274, -11519500.837459859, -9758941.874604877): (901938.174806, -4817510.368655, -4081184.069338, 8874085.667761) 54\n    test 238 _plumbTo5(-12600826.927904561, -9290879.419657387, -12241523.357668605): (-4027695.375886, -2983357.849127, -3930768.977006, 13503779.150543) 50\n    test 239 _plumbTo5(5612095.245443665, -10677594.811703626, -11820492.387762226): (2110828.183871, -4032984.994641, -4464602.574506, 10512793.425261) 54\n    test 240 _plumbTo5(4915145.849724457, -10885520.301474974, -6803086.4809331875): (2272648.496157, -5051467.360276, -3156961.182649, 7369748.684664) 53\n    test 241 _plumbTo5(-6728975.719938926, 3345234.81829062, -12683648.048361583): (-2900434.964377, 1447455.164183, -5488040.230257, 8368755.212366) 53\n    test 242 _plumbTo5(4910584.480358762, -12653948.216023926, 3085021.47222811): (2242049.885102, -5798659.883821, 1413691.381391, 7543831.869565) 54\n    test 243 _plumbTo5(-8976906.995057743, -9619108.708378227, 5341574.496066876): (-4017806.465846, -4321285.931711, 2399618.549335, 7830370.93785) 53\n    test 244 _plumbTo5(-8463830.60810678, -7621108.048355309, -12579467.635422356): (-3168636.328414, -2865193.748246, -4729249.094881, 10596401.956511) 53\n    test 245 _plumbTo5(1096467.0995059202, -11549861.822415227, 0.0): (600978.394585, -6349819.993803, 0.0, 5223594.937973) 54\n    test 246 _plumbTo5(-10948589.651644278, 4096868.3982894733, -9856144.814623823): (-4550546.687626, 1709491.36288, -4112599.499603, 8923162.873349) 52\n    test 247 _plumbTo5(4619417.249218382, 5237425.25954452, 3282666.6246967996): (3810828.926746, 4325750.377186, 2711244.825867, 1345915.687753) 55\n    test 248 _plumbTo5(-10352564.08620045, 2632384.685482822, -12615030.119492823): (-3979375.679008, 1016055.563474, -4869120.711095, 10160175.336446) 53\n    test 249 _plumbTo5(-6374498.1621567765, 5714309.31746465, -12658681.207655726): (-2650451.17611, 2385319.632571, -5284035.74732, 8907081.112355) 54\n    test 250 _plumbTo5(-9547671.32285483, 5249547.247491227, -10732297.281332353): (-3967173.537695, 2189855.357686, -4476934.281938, 8923745.63986) 53\n    test 251 _plumbTo5(-11972987.62530657, -12507480.894571241, 1919466.9395276478): (-4366969.326822, -4581483.837835, 703089.976087, 11052262.963641) 53\n    test 252 _plumbTo5(1652783.0323908583, 2840836.833053788, 0.0): (3220011.208786, 5499562.319795, 0.0, -3086263.982672) 52\n    test 253 _plumbTo5(6115935.680307476, 5225325.066884209, 4422997.138710556): (4238219.612231, 3628533.76556, 3071366.203986, 2811132.561087) 49\n    test 254 _plumbTo5(4786881.182332999, 5664841.95346354, -8266982.897206812): (2740994.147522, 3253066.066256, -4747315.184507, 4731847.15488) 54\n    test 255 _plumbTo5(-6496617.750344593, 5554441.1092062695, 1471685.403438614): (-4764933.099421, 4081208.542633, 1081336.529752, 2306841.60025) 54\n    test 256 _plumbTo5(-12176778.11646319, -9682834.344611239, 4347916.439438347): (-4790470.31358, -3824924.736874, 1717496.315524, 9787326.394866) 52\n    test 257 _plumbTo5(-9365644.216718012, 4733451.038753265, -11073116.001735907): (-3901241.006007, 1979474.085869, -4630588.989784, 8885395.084405) 52\n    test 258 _plumbTo5(4450309.889617256, 645982.6533403223, 3807808.3053228823): (4809066.396238, 697679.685853, 4112548.773739, -473545.7394) 56\n    test 259 _plumbTo5(-10897654.174125204, 3427500.0593593866, 4452955.484309489): (-5650155.448166, 1782842.575288, 2316217.322187, 5899728.052404) 52\n    test 260 _plumbTo5(-10300722.762891443, 4646709.354523863, 0.0): (-5795024.708596, 2621875.532137, 0.0, 4939763.857186) 52\n    test 261 _plumbTo5(-6407802.803643308, -11779837.799284488, 6016502.484862392): (-2770429.304206, -5112551.894435, 2611181.883109, 8323424.518318) 49\n    test 262 _plumbTo5(-9312220.916544143, 0.0, 2930677.098050242): (-6064270.366404, 0.0, 1912975.713433, 3403659.631104) 50\n    test 263 _plumbTo5(4223812.965309883, 4281649.191668366, 2485617.640313916): (4133584.137102, 4190786.705375, 2432868.281192, 138490.89408) 58\n    test 264 _plumbTo5(2997827.5860604886, 2363371.7748296508, 3693859.292852399): (3599054.380706, 2833535.475957, 4428726.434305, -1059508.036801) 55\n    test 265 _plumbTo5(-12671667.096779136, -8014332.614031527, -12514806.489256885): (-4121763.16835, -2618732.065372, -4089228.926937, 13160688.421384) 52\n    test 266 _plumbTo5(843842.4429774315, 5991376.498376857, 5431653.017581945): (660983.193097, 4699901.98138, 4260809.849692, 1752774.274433) 55\n    test 267 _plumbTo5(6048815.4644721355, -6531440.6165109, 2680947.655849851): (4138881.420978, -4478622.839951, 1838318.875985, 2927786.21742) 54\n    test 268 _plumbTo5(4879174.123259943, 6178552.909205879, -9312714.500258692): (2543785.883293, 3231623.200863, -4870860.478112, 5819664.946658) 54\n    test 269 _plumbTo5(5004240.984960998, 5008152.657427486, -7621306.588594056): (3059892.632886, 3070304.181009, -4672287.837379, 4028952.571922) 54\n    test 270 _plumbTo5(1028902.8176837482, 1463749.009664159, -11899885.427998018): (543636.004436, 775853.372204, -6307414.004629, 5655477.071767) 55\n    test 271 _plumbTo5(-7824340.925363246, 0.0, 6317410.509504235): (-4947745.089333, 0.0, 4004698.984614, 3690994.202275) 50\n    test 272 _plumbTo5(2676863.5805767775, -11327824.769266207, 4593035.990907264): (1359964.170989, -5774128.632267, 2341181.627765, 6135846.552017) 55\n    test 273 _plumbTo5(2249619.3764058473, 0.0, 2000528.005466659): (4772982.699562, 0.0, 4212824.696466, -3355833.593856) 53\n    test 274 _plumbTo5(4956193.912239468, -6662625.684179544, -12509472.725925844): (2097393.079693, -2830507.469295, -5314377.642959, 8638707.395552) 54\n    test 275 _plumbTo5(-7710884.382492995, -8115183.079708684, -10228275.549669709): (-3231300.879861, -3414058.684292, -4302982.275302, 8790696.179798) 51\n    test 276 _plumbTo5(-11910621.648411252, 1849226.3777106311, -11164643.952148305): (-4606783.054862, 718203.441796, -4336071.648631, 10062537.989322) 53\n    test 277 _plumbTo5(-8963429.03901859, -12098854.85488883, -12528055.925180355): (-2906246.229705, -3940759.795174, -4080495.9656, 13213827.903356) 53\n    test 278 _plumbTo5(927303.6460785953, -8533293.54233783, 4443040.206372032): (610541.887073, -5631299.878717, 2932033.79078, 3287102.922578) 55\n    test 279 _plumbTo5(-6431337.940867692, -7913672.569001737, 5828173.463683117): (-3481478.58698, -4297161.58015, 3164693.971997, 5373541.192067) 53\n    test 280 _plumbTo5(-8448735.745283416, 5129243.357844096, -10571551.163388707): (-3710087.82749, 2260926.228049, -4659791.368339, 8101291.941429) 51\n    test 281 _plumbTo5(5393086.038674854, -8494853.68575136, 5585824.584238706): (2979754.3005, -4707685.779418, 3095527.08197, 5135016.307574) 54\n    test 282 _plumbTo5(-11205486.606434723, -7011822.282899194, -10835770.19866757): (-4165498.890505, -2617612.609663, -4045090.906694, 10723051.381917) 52\n    test 283 _plumbTo5(6275896.587395679, -10723555.081638275, 3233841.235540427): (3107296.274643, -5327485.16049, 1606561.516206, 6465727.942069) 53\n    test 284 _plumbTo5(3125485.316489174, -10929776.597293055, -12044882.966157196): (1198721.510979, -4209356.554006, -4638751.976627, 10184657.115216) 54\n    test 285 _plumbTo5(1128407.9171078762, -11414403.065658463, 1389920.7991218064): (621055.484164, -6301329.382455, 767299.227734, 5175769.179769) 55\n    test 286 _plumbTo5(3289455.1444503507, -10532590.717592202, 768720.1252257226): (1891368.133389, -6073373.389023, 443260.456245, 4684569.400707) 54\n    test 287 _plumbTo5(-8273239.3690780625, 4551919.260081756, 2824563.0226685693): (-5337507.566666, 2943707.935669, 1826619.417213, 3492958.104434) 52\n    test 288 _plumbTo5(-12133632.704022642, 2746254.8093428193, 2446007.3482782515): (-6083621.960558, 1381562.116047, 1230502.798798, 6320005.336468) 51\n    test 289 _plumbTo5(4775429.171595646, -9671093.87977823, -12524798.659580927): (1835296.133104, -3732249.080536, -4833479.934748, 10152371.32696) 54\n    test 290 _plumbTo5(-10435782.82633078, -7925112.822431733, -8403700.54123353): (-4260067.658051, -3248090.663106, -3444194.209003, 9198407.317465) 53\n    test 291 _plumbTo5(3603584.0845118295, 0.0, -10120993.933385288): (2133439.195914, 0.0, -6008383.520808, 4367481.013023) 54\n    test 292 _plumbTo5(-9664916.035389349, -7917807.310617949, -12320730.836396314): (-3499114.577165, -2878933.301722, -4479784.042203, 11175321.271853) 52\n    test 293 _plumbTo5(-11223451.251595035, -11348169.077705335, -12213872.07898085): (-3546933.966741, -3602915.002067, -3877707.797474, 13726234.489077) 52\n    test 294 _plumbTo5(-6811282.166974648, -12177324.354896916, -8996003.148229187): (-2606422.576339, -4679225.458155, -3456732.925814, 10226722.1454) 54\n    test 295 _plumbTo5(-11154863.461440096, -8947080.852138057, -11618316.715300346): (-3846146.833057, -3098561.610353, -4023608.842631, 12054132.22703) 51\n    test 296 _plumbTo5(4191966.3726614984, 3123849.0923887882, 2947354.2394098826): (4448807.200943, 3313881.641178, 3126654.283481, -366371.514279) 46\n    test 297 _plumbTo5(5665049.081532614, 2566892.2880729376, -9480432.800548682): (3177104.472307, 1443841.706181, -5332562.213074, 4965474.941886) 54\n    test 298 _plumbTo5(5556124.743367095, 1168361.8576344524, 1187537.9875167399): (6091100.197387, 1280029.85706, 1301041.50474, -558168.009583) 54\n    test 299 _plumbTo5(2276563.482327411, -8689794.726123603, -7465168.684773928): (1239389.701005, -4745367.133163, -4076576.523879, 5302527.257983) 55\n    test 300 _plumbTo5(-8734090.01152988, 0.0, 4418867.843251729): (-5673436.483401, 0.0, 2877136.978074, 3427029.921067) 52\n    test 301 _plumbTo5(1444387.4150171918, 0.0, 4211625.268281281): (2073822.401778, 0.0, 6029360.501319, -1923629.324996) 55\n    test 302 _plumbTo5(-11133071.204268023, -11781972.996607397, -11485371.789095623): (-3559439.343785, -3784211.083498, -3688891.806325, 13494784.003409) 53\n    test 303 _plumbTo5(-9128602.027238317, -8530971.77034427, 3486461.3258541655): (-4473434.198708, -4194949.275765, 1714384.438693, 6603933.303668) 53\n    test 304 _plumbTo5(-9720915.901739083, 3730342.60333391, 4413725.624805318): (-5464855.737041, 2103296.034562, 2488587.166636, 4946462.04328) 52\n    test 305 _plumbTo5(-10972481.63377289, -7697329.818069239, 6184679.253598231): (-4724306.631505, -3326894.662448, 2673072.410756, 8394746.984105) 52\n    test 306 _plumbTo5(-12027956.281505307, 1110329.7659182232, -9924933.257068772): (-4889552.230375, 453174.480113, -4050749.766503, 9267939.207164) 52\n    test 307 _plumbTo5(-8103963.2829771275, -10799194.916861724, -11397381.355404545): (-2913442.831149, -3899190.416976, -4115115.734203, 11295262.601508) 54\n    test 308 _plumbTo5(937760.1549680583, 4827669.481438421, -8889403.069840351): (587287.716319, 3031022.799018, -5581111.835477, 3780947.119846) 55\n    test 309 _plumbTo5(-11922254.151162934, -11747879.35310438, -7441515.373637279): (-4135065.269048, -4092556.279272, -2592330.408245, 11948174.625401) 48\n    test 310 _plumbTo5(-7450856.414664825, -9366628.03196191, -11030656.150018612): (-2908303.9347, -3671136.457607, -4323274.43127, 9902644.941014) 50\n    test 311 _plumbTo5(1098222.4362153925, -8032723.312762036, 0.0): (862730.359678, -6319374.354403, 0.0, 1729456.900655) 56\n    test 312 _plumbTo5(1299127.4897925493, 2885681.3581270934, -12324231.3438349): (649043.363274, 1446551.021563, -6177894.257751, 6345956.592424) 53\n    test 313 _plumbTo5(4456791.842035057, -9415133.72987674, -12287162.106862785): (1757647.802402, -3728273.817222, -4865496.206044, 9731745.93566) 53\n    test 314 _plumbTo5(2071973.9900840144, -7049913.407619529, -7891732.311576463): (1222207.569923, -4170071.603383, -4667971.341485, 4405476.88435) 55\n    test 315 _plumbTo5(2046982.703788181, 6049444.90896574, 926986.7966164164): (2022381.277479, 5977223.284321, 915919.674686, 77095.229623) 59\n    test 316 _plumbTo5(5396414.831406125, -12570693.831675846, 764714.9246019324): (2503220.741109, -5852227.502514, 356005.267035, 7326350.076566) 54\n    test 317 _plumbTo5(-9197102.75829913, 4846690.558383889, 2564943.113154864): (-5460989.53354, 2885713.750285, 1527150.493499, 4345225.608819) 52\n    test 318 _plumbTo5(0.0, 2318329.077963764, 3188269.6439349214): (0.0, 3751090.547009, 5158737.156961, -2436297.938897) 51\n    test 319 _plumbTo5(-12684552.315130716, 5543633.716783456, -11039834.326458577): (-4551950.193988, 1997987.751458, -3978824.221966, 11338813.265417) 53\n    test 320 _plumbTo5(-6981850.679551049, -10229708.153014995, -12072336.553961737): (-2564251.063275, -3773153.649096, -4452732.082674, 10920652.669628) 54\n    test 321 _plumbTo5(4717153.364383534, -11550204.852326058, -9687614.149053277): (1897251.699922, -4664268.017528, -3912055.079591, 9419397.754364) 54\n    test 322 _plumbTo5(0.0, -9149649.80780371, -12025931.976038957): (0.0, -3862119.471301, -5076150.223256, 8732550.799781) 52\n    test 323 _plumbTo5(-10400971.886727747, -6619927.338470895, -9929357.98233453): (-4175137.323295, -2668094.583735, -4001874.608708, 9461134.03759) 53\n    test 324 _plumbTo5(-11028176.160065496, -9020134.774358388, -12389868.361876594): (-3710317.814977, -3048330.981378, -4187062.798472, 12509976.435296) 53\n    test 325 _plumbTo5(2160858.3727727593, -12142093.540891415, 1538265.3958220098): (1105327.992916, -6231419.001309, 789441.603717, 6050698.71728) 54\n    test 326 _plumbTo5(-11778932.210256143, 2715666.6502514402, 3389402.4416597723): (-5964418.038968, 1379692.296524, 1721964.639273, 6194655.062775) 51\n    test 327 _plumbTo5(6242300.4629256865, -11609606.987093499, -11621007.296069987): (2256327.514534, -4214473.248211, -4218552.76137, 11196978.007461) 53\n    test 328 _plumbTo5(5053610.033101153, 5726798.200078992, 1099811.8257685653): (4168403.736804, 4729243.125054, 908231.344581, 1347371.290878) 55\n    test 329 _plumbTo5(5294780.00028327, 6375398.744487379, 3043351.136814746): (3816120.677121, 4603600.762269, 2197554.80587, 2457859.417706) 51\n    test 330 _plumbTo5(2365954.408033079, 2905572.0641120616, 4151171.3655798878): (2699030.899007, 3311481.322775, 4731105.714541, -782320.98541) 57\n    test 331 _plumbTo5(-8069919.063106484, -11908872.159137841, -9885496.27648023): (-2936911.077608, -4352645.583092, -3613059.39678, 11080965.456924) 54\n    test 332 _plumbTo5(5850495.9458770165, 5722036.744563128, 5843952.116368118): (3700618.844724, 3628327.771535, 3705604.212589, 3684850.142326) 53\n    test 333 _plumbTo5(-10331153.415166039, -6434233.675718262, 0.0): (-5396216.804492, -3371586.314296, 0.0, 5808046.850001) 52\n    test 334 _plumbTo5(3164853.877214977, 4939341.954363132, 1068091.655227124): (3383371.408421, 5277929.282849, 1141310.068827, -409575.666448) 56\n    test 335 _plumbTo5(5498517.17816853, -8925354.25639353, 2445953.3664836087): (3248545.573968, -5287680.224561, 1449052.124429, 4391908.089656) 54\n    test 336 _plumbTo5(-8710547.801684523, -10332953.497187626, -8930947.738230154): (-3416510.721256, -4069489.151947, -3517282.003837, 9826779.273841) 54\n    test 337 _plumbTo5(0.0, -11550920.057393795, -7768721.120777687): (0.0, -5292693.766022, -3559627.516598, 7542006.714579) 53\n    test 338 _plumbTo5(0.0, -9803080.937976882, 4458103.176905968): (0.0, -5806187.167737, 2640430.082921, 4390796.657461) 54\n    test 339 _plumbTo5(-7276509.183351506, -8917367.667206984, 6249199.0544481715): (-3531706.297866, -4343135.080566, 3043589.887632, 6724810.966727) 50\n    test 340 _plumbTo5(2823245.411586701, 4582795.479539332, 5350381.393488043): (2369418.395217, 3850287.623379, 4495167.868088, 1214049.790639) 56\n    test 341 _plumbTo5(-12528344.906528033, -12365699.29317108, -12617957.75277874): (-3673786.830107, -3643403.961568, -3717671.312057, 15287142.745043) 51\n    test 342 _plumbTo5(0.0, -7535383.558510379, 1584260.232439418): (0.0, -6241924.809388, 1312314.882847, 1321737.420536) 56\n    test 343 _plumbTo5(5681134.892072343, 0.0, 6021997.242841809): (4366420.627852, 0.0, 4635589.853592, 1910654.088398) 53\n    test 344 _plumbTo5(-9036049.386057062, -6596315.918400789, 3304156.40609904): (-4924735.110083, -3606086.672545, 1806304.605855, 5299805.282658) 53\n    test 345 _plumbTo5(-7336909.023578265, 6090889.994283991, 4150459.4186733067): (-4486421.146722, 3734250.570018, 2544574.576346, 4032108.2127) 53\n    test 346 _plumbTo5(4362760.760163215, 5289584.135459404, -11656574.830657663): (2050393.728071, 2494868.309682, -5497838.988507, 7147552.379056) 52\n    test 347 _plumbTo5(-12461395.797481904, -7119758.596486539, -6921685.5837864615): (-4970253.759135, -2851253.421807, -2771894.543209, 9568600.270959) 53\n    test 348 _plumbTo5(-7566143.677164096, 4543104.188867149, -9082596.857817126): (-3797966.248649, 2288156.447948, -4574444.100018, 6293440.373492) 54\n    test 349 _plumbTo5(4842339.5176830925, -8813228.308928099, -6767263.109535832): (2539964.542317, -4637648.671583, -3560995.05181, 5746003.018881) 52\n    test 350 _plumbTo5(-9972761.31748726, 4662530.453764608, 4256112.435655717): (-5371604.589518, 2519181.262485, 2299569.004666, 5439912.792356) 52\n    test 351 _plumbTo5(3016605.4966718997, 1304241.0110947676, -11385253.216890456): (1618619.36137, 702003.401772, -6128012.702643, 5473173.960073) 54\n    test 352 _plumbTo5(-11724918.431583608, -9261068.189347908, -7807596.816657645): (-4419360.915762, -3505368.646064, -2955180.890694, 10490242.521891) 53\n    test 353 _plumbTo5(-12134588.631240936, 4242014.558076039, 2342159.198180888): (-5903546.269141, 2070913.070057, 1143408.0531, 6706457.701156) 50\n    test 354 _plumbTo5(0.0, 0.0, 3985743.815150218): (0.0, 0.0, 6378318.0, -2392574.18485) None\n    test 355 _plumbTo5(-7921057.044654415, -10864037.640105005, 2687706.006705687): (-3671872.603697, -5054343.586541, 1250403.451862, 7339887.740521) 53\n    test 356 _plumbTo5(-10775405.47248439, -9368474.21826664, 5537083.69858114): (-4471463.249369, -3902980.164961, 2306763.151984, 8946858.869618) 53\n    test 357 _plumbTo5(-8604739.504291004, -10561886.97668027, -7556399.07722975): (-3509688.285391, -4325183.658557, -3094370.379341, 9206829.818254) 52\n    test 358 _plumbTo5(3925721.009644486, 1893536.4839279293, 1316232.4249157286): (5489642.130955, 2640807.359749, 1835690.209158, -1809447.270617) 54\n    test 359 _plumbTo5(-10543317.047290618, 4176583.939927537, -10467484.347941227): (-4341506.282918, 1726653.407504, -4327336.664623, 9064547.97239) 53\n    test 360 _plumbTo5(5504910.383288863, 0.0, 3941980.7186291814): (5173606.529546, 0.0, 3706233.833182, 406618.786461) 55\n    test 361 _plumbTo5(-11576418.057469497, 5150121.48029749, -7199784.914373723): (-5048956.293486, 2254728.540757, -3152034.42804, 8208248.373083) 52\n    test 362 _plumbTo5(5747634.1165411, 3019800.754534434, -12588014.348788455): (2578891.377618, 1359987.253552, -5669027.170724, 7788985.490662) 53\n    test 363 _plumbTo5(-10699975.163764765, -12469268.54123148, 5851074.412260858): (-3897604.102395, -4561587.603006, 2140447.685329, 11071242.955692) 51\n    test 364 _plumbTo5(-10008114.974938048, -11305255.24208844, -10856545.703370556): (-3418502.004548, -3878738.917149, -3724736.705294, 12224518.125847) 52\n    test 365 _plumbTo5(-11339708.501863228, 3353573.953624922, -11220486.396653067): (-4420373.384937, 1312653.581403, -4391856.30456, 9933415.493209) 53\n    test 366 _plumbTo5(-11806013.5893758, 1206482.9786856282, -9638751.028646413): (-4907741.129485, 503510.885612, -4022563.173067, 8923110.372717) 52\n    test 367 _plumbTo5(-11812031.773843225, -6532810.614432961, 1153162.7559880565): (-5542356.608309, -3076255.443169, 543010.078875, 7185324.392308) 51\n    test 368 _plumbTo5(5552167.813835973, -8437735.788774159, -12516869.811745383): (2193043.778965, -3346421.513004, -4964147.812881, 9708182.369962) 54\n    test 369 _plumbTo5(4323988.540673599, -10272313.882541187, 2984426.303452739): (2383050.041963, -5678445.211525, 1649748.547077, 5162580.395082) 54\n    test 370 _plumbTo5(-12000563.945659896, -11375329.638874426, 0.0): (-4611901.004216, -4389788.847301, 0.0, 10168093.243721) 53\n    test 371 _plumbTo5(-7084905.644767572, -9716801.529767435, -6734404.088522686): (-3267099.540117, -4497050.494859, -3116724.990249, 7410063.857837) 53\n    test 372 _plumbTo5(-9299492.807924783, 0.0, -10038494.747635415): (-4319543.019846, 0.0, -4679595.851858, 7315579.0794) 52\n    test 373 _plumbTo5(5100849.267087828, -11657175.221031226, 4787967.534215877): (2384620.222134, -5469247.26915, 2246365.243671, 7219978.861854) 53\n    test 374 _plumbTo5(4665159.392919396, 5463633.976949447, 1299180.9722421006): (4068010.18408, 4768381.775495, 1133855.890443, 931286.842985) 55\n    test 375 _plumbTo5(-8064858.445005396, -9388146.191553729, 1896093.2198699364): (-4094680.727043, -4782365.842125, 965868.406734, 6151491.034079) 53\n    test 376 _plumbTo5(-10676921.034412017, 4434243.542993603, 0.0): (-5871035.613149, 2445706.819791, 0.0, 5201039.605871) 51\n    test 377 _plumbTo5(-9023055.192998646, 3544143.0538191493, -8462620.315925544): (-4457300.455779, 1756747.779582, -4194674.045764, 6500481.793821) 53\n    test 378 _plumbTo5(3476291.033153091, -7950656.589750505, 6016638.684900147): (2094107.737736, -4802288.995187, 3634088.113927, 4183204.082504) 54\n    test 379 _plumbTo5(0.0, 3559646.7792214956, 0.0): (0.0, 6378388.0, 0.0, -2818741.220779) None\n    test 380 _plumbTo5(3095613.853824863, 3997508.4430838083, 2736568.083855892): (3432883.607156, 4429795.814097, 3032505.56924, -623058.78768) 56\n    test 381 _plumbTo5(2835926.5021857405, -9045140.68774168, 2002398.4306926245): (1862547.444274, -5954303.424435, 1318144.053108, 3311939.889531) 55\n    test 382 _plumbTo5(2312432.2162906793, -9929107.155342186, -9788039.941453634): (1039780.026627, -4481180.685756, -4417461.370345, 7755169.927366) 54\n    test 383 _plumbTo5(2677701.474612112, 3278501.0486438787, -12067198.879795307): (1331054.876184, 1635234.070052, -6018749.836018, 6410734.6895) 54\n    test 384 _plumbTo5(-9173069.786116466, 2033137.2534150574, 1300061.1115269251): (-6148182.751552, 1365722.936214, 873286.091431, 3126902.678444) 51\n    test 385 _plumbTo5(-11242456.19353453, 1362723.5105300057, 4101669.110195199): (-5933679.471218, 721525.172334, 2171700.219653, 5684982.455098) 51\n    test 386 _plumbTo5(-12251486.837373294, 1314865.8046799877, -10257127.474041311): (-4856380.179641, 523324.665104, -4082345.783758, 9666543.786563) 53\n    test 387 _plumbTo5(-6729347.354649825, -12449399.222153336, -6859252.117053115): (-2718698.294944, -5049868.071154, -2782292.201528, 9352003.490564) 54\n    test 388 _plumbTo5(-11135625.716704542, -8627513.879856825, -8846859.068641137): (-4253677.71168, -3309357.919956, -3393448.844403, 10265655.080486) 53\n    test 389 _plumbTo5(-7911438.471988227, 3565866.392270913, 697649.5073143232): (-5778364.042342, 2609170.203206, 510472.179023, 2345273.858808) 52\n    test 390 _plumbTo5(1149029.6659410016, -7426070.196785206, 1807972.6442612736): (947089.604808, -6128191.102689, 1491981.502415, 1350970.145084) 56\n    test 391 _plumbTo5(3455972.2292246306, 4869644.106263283, 0.0): (3688469.895537, 5194895.921711, 0.0, -399804.837755) 56\n    test 392 _plumbTo5(-12623751.72037495, -8608825.23727696, 3430978.0105257914): (-5123195.52213, -3507798.019804, 1397986.486447, 9295798.862573) 52\n    test 393 _plumbTo5(0.0, 4168993.1829979364, 3993212.66081889): (0.0, 4606235.374963, 4412029.224784, -605465.150678) 52\n\n    test 394 _plumbTo5: (0.545455, 1.090909, 0.818182, 3.916483)\n    test 395 _plumbTo5: None\n    test 396 _plumbTo5: 0\n\n    test 397 _plumbTo5: (1.090909, 0.545455, 0.818182, 3.916483)\n    test 398 _plumbTo5: None\n    test 399 _plumbTo5: 0\n\n    test 400 _plumbTo5: (0.742781, 1.114172, 1.485563, 3.385165)\n    test 401 _plumbTo5: None\n    test 402 _plumbTo5: 0\n\n    test 403 toTriaxial: name='WGS84', a=6378137, b=6378137, c=6356752.314245179, e2ab=0, e2bc=0.00669438, e2ac=0.00669438\n    test 404 toEllipsoid: name='', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518\n    test 405 toEllipsoid: name='', a=2, f=-0.5, f_=-2, b=3\n\n    test 406 Triaxials: 14\n    test 407 Amalthea: name='Amalthea', a=125000, b=73000, c=64000, e2ab=0.658944, e2bc=0.231375493, e2ac=0.737856\n    test 408 Ariel: name='Ariel', a=581100, b=577900, c=577700, e2ab=0.01098327, e2bc=0.000692042, e2ac=0.011667711\n    test 409 Earth: name='Earth', a=6378173.435, b=6378103.9, c=6356754.399999999, e2ab=0.000021804, e2bc=0.006683418, e2ac=0.006705077\n    test 410 Enceladus: name='Enceladus', a=256600, b=251400, c=248300, e2ab=0.040119337, e2bc=0.024509841, e2ac=0.06364586\n    test 411 Europa: name='Europa', a=1564130, b=1561230, c=1560930, e2ab=0.003704694, e2bc=0.000384275, e2ac=0.004087546\n    test 412 Io: name='Io', a=1829400, b=1819300, c=1815700, e2ab=0.011011391, e2bc=0.003953651, e2ac=0.014921506\n    test 413 Mars: name='Mars', a=3394600, b=3393300, c=3376300, e2ab=0.000765776, e2bc=0.009994646, e2ac=0.010752768\n    test 414 Mimas: name='Mimas', a=207400, b=196800, c=190600, e2ab=0.09960581, e2bc=0.062015624, e2ac=0.155444317\n    test 415 Miranda: name='Miranda', a=240400, b=234200, c=232900, e2ab=0.050915557, e2bc=0.011070811, e2ac=0.061422691\n    test 416 Moon: name='Moon', a=1735550, b=1735324, c=1734898, e2ab=0.000260419, e2bc=0.000490914, e2ac=0.000751206\n    test 417 Tethys: name='Tethys', a=535600, b=528200, c=525800, e2ab=0.027441672, e2bc=0.009066821, e2ac=0.036259685\n    test 418 WGS84_3: name='WGS84_3', a=6378171.36, b=6378101.609999999, c=6356751.84, e2ab=0.000021871, e2bc=0.006683505, e2ac=0.00670523\n    test 419 WGS84_35: name='WGS84_35', a=6378172, b=6378102, c=6356752.314245179, e2ab=0.00002195, e2bc=0.006683478, e2ac=0.006705281\n    test 420 WGS84_3r: name='WGS84_3r', a=6378172, b=6378102, c=6356752, e2ab=0.00002195, e2bc=0.006683577, e2ac=0.00670538\n\n    testTriaxial3(pygeodesy.triaxials.triaxial3, 26.02.20)\n    test 421 Triaxial3: Triaxial3(name='', a=3, b=2, c=1, k2=0.375, kp2=0.625, volume=25.132741229, area=48.882146303, R2=1.972287405)\n    test 422 reverseLatLon: (Degrees(58.69140449), Degrees(75.11263103), None, 2.586065, 'ELLIPSOIDAL')\n    test 423 forwardLatLon: (1.0, 2.0, 3.0, 2.586065, 'ELLIPSOIDAL')\n\n    test 424 ELLIPSOIDAL: (58.691404, 75.112631, None, 2.586065, 'ELLIPSOIDAL')\n    test 425 ELLIPSOIDAL: (1.0, 2.0, 3.0, 2.586065, 'ELLIPSOIDAL')\n\n    test 426 GEOCENTRIC: (29.12663, 56.916602, None, 2.391078, 'GEOCENTRIC')\n    test 427 GEOCENTRIC: (1.0, 2.0, 3.0, 2.391078, 'GEOCENTRIC')\n\n    test 428 GEOCENTRIC_X: (28.478775, 123.624552, None, 2.391078, 'GEOCENTRIC_X')\n    test 429 GEOCENTRIC_X: (1.0, 2.0, 3.0, 2.391078, 'GEOCENTRIC_X')\n\n    test 430 GEODETIC: (68.626017, 73.851827, None, 2.391078, 'GEODETIC')\n    test 431 GEODETIC: (1.0, 2.0, 3.0, 2.391078, 'GEODETIC')\n\n    test 432 GEODETIC_X: (5.817652, 159.397221, None, 2.391078, 'GEODETIC_X')\n    test 433 GEODETIC_X: (1.0, 2.0, 3.0, 2.391078, 'GEODETIC_X')\n\n    test 434 PARAMETRIC: (50.658091, 66.523762, None, 2.391078, 'PARAMETRIC')\n    test 435 PARAMETRIC: (1.0, 2.0, 3.0, 2.391078, 'PARAMETRIC')\n\n    test 436 PARAMETRIC_X: (14.628136, 143.06191, None, 2.391078, 'PARAMETRIC_X')\n    test 437 PARAMETRIC_X: (1.0, 2.0, 3.0, 2.391078, 'PARAMETRIC_X')\n\n    test 438 Triaxial3: Triaxial3(name='Bektas', a=6378388, b=6378318, c=6356911.9461, k2=0.996735077, kp2=0.003264923, volume=1083307891664673177600, area=510097198412933.0625, R2=6371204.383189477)\n    test 439 forwardBetOmg: (4234607.381429, 3551286.590486, 3176009.080037, 1200.0, 'ELLIPSOIDAL')\n    test 440 forwardBetOmg: (4233813.533025, 3550620.827453, 3175409.655093, 0, 'ELLIPSOIDAL')\n    test 441 length: 1196.973671\n    test 442 reverseBetOmg: (Degrees(30.0), Degrees(40.0), None, 1200.0, 'ELLIPSOIDAL')\n    test 443 reverseBetOmg: (Degrees(30.0), Degrees(40.0), None, 0.0, 'ELLIPSOIDAL')\n\n    test 444 forwardCartesian: (4233813.533151, 3550620.827558, 3175409.654809, 1196.973671, 'ELLIPSOIDAL')\n    test 445 forwardCartesian: (4239665.951888, 3553574.566129, 3164352.410834, 12911.309173, 'ELLIPSOIDAL')\n\n    test 446 reverseCartesian: (4234607.381429, 3551286.590486, 3176009.080037, 1196.973671, 'ELLIPSOIDAL')\n    test 447 reverseCartesian: (4248255.186992, 3560773.833183, 3170763.143924, 12911.309173, 'ELLIPSOIDAL')  FAILED, KNOWN, expected (4234607.381429, 3551286.590486, 3176009.080037, 1200.0, 'ELLIPSOIDAL')\n\n    test 448 forwardBetaOmega_: (4233813.533025, 3550620.827453, 3175409.655093, 0, 'ELLIPSOIDAL')\n    test 449 reverseLatLon: (Degrees(30.0), Degrees(40.0), None, 0, 'ELLIPSOIDAL')\n    test 450 forwardLatLon: (4233813.533025, 3550620.827453, 3175409.655093, 0, 'ELLIPSOIDAL')\n\n    test 451 reverseBetOmg: (Degrees(29.94812666), Degrees(40.01497072), None, 1203.037176, 'ELLIPSOIDAL')\n    test 452 reverseBetOmg: (29°56′53.26″, 40°00′53.89″, None, 1203.037176, 'ELLIPSOIDAL')\n    test 453 reverseBetOmg: (Degrees(29.97539672), Degrees(40.03311872), None, 1387.637345, 'ELLIPSOIDAL')\n    test 454 reverseBetOmg: (29°58′31.43″, 40°01′59.23″, None, 1387.637345, 'ELLIPSOIDAL')\n\n    test 455 height4: (3909251.554667, 3909165.750567, 3170432.501602, 999.999996)\n    test 456 height4: (3909251.554667, 3909165.750567, 3170432.501602, 0, None)\n    test 457 height4: (3909251.554667, 3909165.750567, 3170432.501602, 0, None)\n\n    test 458 JFK-SIN: Triaxial3(name='WGS84_35', a=6378172, b=6378102, c=6356752.314245179, k2=0.996726499, kp2=0.003273501, volume=1083207319768789942272, area=510065621722018.25, R2=6371007.180905545)\n    test 459 JFK-SIN: -54.34889\n    test 460 JFK-SIN: (2824949.36608, -3938333.736799, 4132149.896611, 0, 'GEODETIC')\n    test 461 JFK-SIN: (40°38′23.0″, 54°20′56.0″, None, 0, 'GEODETIC')\n    test 462 JFK-SIN: (Degrees(40.57193395), Degrees(-54.38110954), None, 0, 'ELLIPSOIDAL')\n\n    test 463 JFK-SIN: 123.42\n    test 464 JFK-SIN: (-3511912.82574, 5322047.492059, 150275.382099, 0, 'GEODETIC')\n    test 465 JFK-SIN: (1°21′33.0″, 123°25′10.0″, None, 0, 'GEODETIC')\n    test 466 JFK-SIN: (1.355287, 123.419709, None, 0, 'ELLIPSOIDAL')\n    test 467 JFK-SIN: (2507237.249613, -4147833.171672, 4132151.785141, 0, 'GEODETIC_LON0')\n    test 468 JFK-SIN: (Degrees(40.56616585), Degrees(-58.87899203), None, 0, 'ELLIPSOIDAL')\n    test 469 JFK-SIN: (-3083516.921703, 5581181.10656, 150275.496647, 0, 'GEODETIC_LON0')\n    test 470 JFK-SIN: (Degrees(1.35513418), Degrees(118.9196884), None, 0.0, 'ELLIPSOIDAL')\n\n    test 471 ELLIPSOIDAL: (3339312.988437, 4478220.864583, 3067838.142785, 0, 'ELLIPSOIDAL')\n    test 472 ELLIPSOIDAL: (0.44727, 0.46133, -0.76624)\n    test 473 ELLIPSOIDAL: (Radians(6.78714104), Radians(7.21349568), Radians(3.22695739), 0, 'ELLIPSOIDAL')\n    test 474 ELLIPSOIDAL: (3339312.988437, 4478220.864583, 3067838.142785, 0, 'ELLIPSOIDAL')\n    test 475 ELLIPSOIDAL: (0.35577, 0.33613, -0.87203)  FAILED, KNOWN, expected (0.44727, 0.46133, -0.76624)\n\n    test 476 GEOCENTRIC: (3775053.602526, 4836453.809766, 1737203.829149, 0, 'GEOCENTRIC')\n    test 477 GEOCENTRIC: (0.06074, 0.18165, -0.98149)\n    test 478 GEOCENTRIC: (Radians(6.55911022), Radians(7.19121867), Radians(9.36055352), -0.0, 'GEOCENTRIC')\n    test 479 GEOCENTRIC: (3775053.602526, 4836453.809766, 1737203.829149, 0, 'GEOCENTRIC')\n    test 480 GEOCENTRIC: (0.11773, 0.25514, -0.95971)  FAILED, KNOWN, expected (0.06074, 0.18165, -0.98149)\n\n    test 481 GEOCENTRIC_X: (5353065.611375, 2253062.100284, 2627312.107704, 0, 'GEOCENTRIC_X')\n    test 482 GEOCENTRIC_X: (0.37533, 0.39753, -0.83732)\n    test 483 GEOCENTRIC_X: (Radians(7.28002857), Radians(8.7159147), Radians(4.84070319), 0.0, 'GEOCENTRIC_X')\n    test 484 GEOCENTRIC_X: (5353065.611375, 2253062.100284, 2627312.107704, 0, 'GEOCENTRIC_X')\n    test 485 GEOCENTRIC_X: (0.07117, 0.68362, -0.72636)  FAILED, KNOWN, expected (0.37533, 0.39753, -0.83732)\n\n    test 486 GEODETIC: (4614879.82592, 981039.629187, 4277613.939628, 0, 'GEODETIC')\n    test 487 GEODETIC: (0.24631, 0.35287, -0.90267)\n    test 488 GEODETIC: (Radians(7.02301499), Radians(6.49265346), Radians(9.10148726), -0.0, 'GEODETIC')\n    test 489 GEODETIC: (4614879.82592, 981039.629187, 4277613.939628, 0, 'GEODETIC')\n    test 490 GEODETIC: (0.55921, 0.44366, -0.70032)  FAILED, KNOWN, expected (0.24631, 0.35287, -0.90267)\n\n    test 491 GEODETIC_LON0: (1527233.792948, 1162869.651044, 6062035.023615, 0, 'GEODETIC_LON0')\n    test 492 GEODETIC_LON0: (0.24352, 0.24941, -0.93728)\n    test 493 GEODETIC_LON0: (Radians(7.54924666), Radians(6.67338953), Radians(9.34132632), -0.0, 'GEODETIC_LON0')\n    test 494 GEODETIC_LON0: (1527233.792948, 1162869.651044, 6062035.023615, 0, 'GEODETIC_LON0')\n    test 495 GEODETIC_LON0: (0.70582, 0.6422, -0.299)  FAILED, KNOWN, expected (0.24352, 0.24941, -0.93728)\n\n    test 496 GEODETIC_X: (5508220.332714, 315937.896032, 3189373.081358, 0, 'GEODETIC_X')\n    test 497 GEODETIC_X: (0.40682, 0.33156, -0.85121)\n    test 498 GEODETIC_X: (Radians(7.32411007), Radians(9.32669619), Radians(4.54631059), 0, 'GEODETIC_X')\n    test 499 GEODETIC_X: (5508220.332714, 315937.896032, 3189373.081358, 0, 'GEODETIC_X')\n    test 500 GEODETIC_X: (-0.08327, 0.99551, 0.0449)  FAILED, KNOWN, expected (0.40682, 0.33156, -0.85121)\n\n    test 501 GEOGRAPHIC: (3465116.507243, 5223158.607824, 1175894.05015, 0, 'GEODETIC')\n    test 502 GEOGRAPHIC: (0.11315, 0.09188, -0.98932)\n    test 503 GEOGRAPHIC: (Radians(6.46985144), Radians(7.26824437), Radians(3.18515516), -0.0, 'GEODETIC')\n    test 504 GEOGRAPHIC: (3465116.507243, 5223158.607824, 1175894.05015, 0, 'GEODETIC')\n    test 505 GEOGRAPHIC: (0.13879, 0.13043, -0.9817)  FAILED, KNOWN, expected (0.11315, 0.09188, -0.98932)\n\n    test 506 PARAMETRIC: (1264892.90797, 2527765.29909, 5698436.749422, 0, 'PARAMETRIC')\n    test 507 PARAMETRIC: (0.13554, 0.82486, -0.54885)\n    test 508 PARAMETRIC: (Radians(7.39485161), Radians(7.39001874), Radians(9.17168302), 0.0, 'PARAMETRIC')\n    test 509 PARAMETRIC: (1264892.90797, 2527765.29909, 5698436.749422, 0, 'PARAMETRIC')\n    test 510 PARAMETRIC: (0.1647, 0.8887, -0.42789)  FAILED, KNOWN, expected (0.13554, 0.82486, -0.54885)\n\n    test 511 PARAMETRIC_X: (3357601.186402, 4513866.391703, 2995261.616924, 0, 'PARAMETRIC_X')\n    test 512 PARAMETRIC_X: (0.22351, 0.72002, -0.65697)\n    test 513 PARAMETRIC_X: (Radians(6.83757042), Radians(8.44138234), Radians(5.00139262), 0.0, 'PARAMETRIC_X')\n    test 514 PARAMETRIC_X: (3357601.186402, 4513866.391703, 2995261.616924, 0, 'PARAMETRIC_X')\n    test 515 PARAMETRIC_X: (0.24371, 0.40685, -0.88039)  FAILED, KNOWN, expected (0.22351, 0.72002, -0.65697)\n\n    test 516 PLANETOCENTRIC: (948465.932689, 3598948.847101, 5162255.209493, 0, 'GEOCENTRIC')\n    test 517 PLANETOCENTRIC: (0.1521, 0.65147, -0.74328)\n    test 518 PLANETOCENTRIC: (Radians(7.22932016), Radians(7.59630087), Radians(9.40537788), -0.0, 'GEOCENTRIC')\n    test 519 PLANETOCENTRIC: (948465.932689, 3598948.847101, 5162255.209493, 0, 'GEOCENTRIC')\n    test 520 PLANETOCENTRIC: (0.18839, 0.79097, -0.58213)  FAILED, KNOWN, expected (0.1521, 0.65147, -0.74328)\n\n    test 521 PLANETODETIC: (6109868.111296, 1803588.145775, 311341.87994, 0, 'GEODETIC')\n    test 522 PLANETODETIC: (0.23071, 0.27671, -0.93285)\n    test 523 PLANETODETIC: (Radians(6.33234784), Radians(6.57023183), Radians(9.21647244), 0.0, 'GEODETIC')\n    test 524 PLANETODETIC: (6109868.111296, 1803588.145775, 311341.87994, 0, 'GEODETIC')\n    test 525 PLANETODETIC: (-0.01244, 0.21195, -0.9772)  FAILED, KNOWN, expected (0.23071, 0.27671, -0.93285)\n\n    test 526 Lon0: -14.93\n    test 527 forwardLatLon: (6162853.284268, -1643246.23441, 0.0, 0, 'ELLIPSOIDAL')\n    test 528 reverseLatLon: (Degrees(0.0), Degrees(-14.93), None, 0, 'ELLIPSOIDAL')\n    test 529 reverseLatLon: 1.59027734073e-15  FAILED, KNOWN, expected 0\n\n    testConformal3(pygeodesy.triaxials.conformal3, 26.02.15)\n    test 530 Conformal3: name='WGS84_3', a=6378171.36, b=6378101.609999999, c=6356751.84, k2=0.996738165, kp2=0.003261835, xyQ2=xyQ2(x=10026938.243505, y=27096412.501236)\n    test 531 forwardBetOmg: (-5077726.43188, 3922574.86203, 0, 1.19703, 'CONFORMAL')\n    test 532 reverseBetOmg: (Degrees(33.3), Degrees(44.4), None, 1.197032, 'CONFORMAL')\n\n    test 533 Conformal3: name='WGS84_3r', a=6378172, b=6378102, c=6356752, k2=0.996726547, kp2=0.003273453, xyQ2=xyQ2(x=10026968.259439, y=27085126.866409)\n    test 534 forwardBetOmg: (-5077732.396, 3922571.859, 0, 1.197, 'CONFORMAL')\n    test 535 reverseBetOmg: (Degrees(33.3), Degrees(44.4), None, 1.197034, 'CONFORMAL')\n    test 536 forwardOther: (33.299887, 44.399927, 0.000263, 1.000046, 'CONFORMAL')\n    test 537 reverseOther: (Degrees(33.3), Degrees(44.4), Degrees(0.00026262), 0.999954, 'CONFORMAL')\n\n    test 538 Conformal3: name='WGS84+/-35', a=6378172, b=6378102, c=6356752.314245179, k2=0.996726499, kp2=0.003273501, xyQ2=xyQ2(x=10026968.379966, y=27085080.683786)\n    test 539 forwardBetOmg: (-5077732.419, 3922572.019, 0, 1.197, 'CONFORMAL')\n    test 540 reverseBetOmg: (Degrees(33.3), Degrees(44.4), None, 1.197034, 'CONFORMAL')\n\n    test 541 triaxum5: (1.2, 0.2, 0.9, 3, (4.916899148020613e-31,))\n    test 542 triaxum5: (1.244625, 0.145582, 0.0, 2, ())\n\n    test 543 Geodesic3Solve: Geod3Solve='/opt/local/bin/Geod3Solve', invokation=0, status=None\n    test 544 Direct: {a12: 137.869863, alp1: 3.20824, alp2: 177.483198, bet1: 40.57193, bet2: 1.355292, omg1: -54.38111, omg2: 123.419711, s12: 15347602.0}\n    test 545 Direct: (40.57193, -54.38111, 3.20824, 1.355292, 123.419711, 177.483198, 15347602.0, 137.869863)\n    test 546 Inverse: {a12: 137.869863, alp1: 3.20824, alp2: 177.483197, bet1: 40.57193, bet2: 1.355292, omg1: -54.38111, omg2: 123.419711, s12: 15347601.953655}\n    test 547 Inverse: (40.57193, -54.38111, 3.20824, 1.355292, 123.419711, 177.483197, 15347601.953655, 137.869863)\n    test 548 GeodesicLine3Solve: alp1=3.20824, bet1=40.57193, geodesic3=Geodesic3Solve(Geod3Solve='/opt/local/bin/Geod3Solve', invokation=2, status=0), invokation=1, omg1=-54.38111, status=0\n    test 549 Position: {a12: 137.869863, alp1: 3.20824, alp2: 177.483198, bet1: 40.57193, bet2: 1.355292, omg1: -54.38111, omg2: 123.419711, s12: 15347602.0}\n    test 550 Position: (40.57193, -54.38111, 3.20824, 1.355292, 123.419711, 177.483198, 15347602.0, 137.869863)\n    test 551 GeodesicLine3Solve: alp1=3.20824, bet1=40.57193, geodesic3=Geodesic3Solve(Geod3Solve='/opt/local/bin/Geod3Solve', invokation=3, status=0), invokation=1, omg1=-54.38111, status=0\n    test 552 Position: {a12: 137.869863, alp1: 3.20824, alp2: 177.483197, bet1: 40.57193, bet2: 1.355292, omg1: -54.38111, omg2: 123.419711, s12: 15347602.0}\n    test 553 Position: (40.57193, -54.38111, 3.20824, 1.355292, 123.419711, 177.483197, 15347602.0, 137.869863)\n\n    test 554 Amalthea: name='Amalthea', a=125000, b=73000, c=64000, e2ab=0.658944, e2bc=0.231375493, e2ac=0.737856\n    test 555 Amalthea.area    : 93239507787.5\n    test 556 Amalthea.areaKT  : 93212299402.7\n    test 557 Amalthea.areaRG  : 93239507787.5\n    test 558 Amalthea.area21k : 93239507787.5\n    test 559 Amalthea.ellipse5: Ellipse5Tuple(a=111264.228133, b=64978.30923, height=29167.24982, lat=45.0, beta=27.112446)\n    test 560 Amalthea.toTriaxial_: name='NN', a=111264.22813306, b=64978.309229707, c=29167.249819713, e2ab=0.658944, e2bc=0.798509697, e2ac=0.931280523\n    test 561 Amalthea.toTriaxial : name='NN', a=111264.22813306, b=64978.309229707, c=29167.249819713, e2ab=0.658944, e2bc=0.798509697, e2ac=0.931280523\n\n    test 562 Ariel: name='Ariel', a=581100, b=577900, c=577700, e2ab=0.01098327, e2bc=0.000692042, e2ac=0.011667711\n    test 563 Ariel.area    : 4.21130146277e+12\n    test 564 Ariel.areaKT  : 4.21130157407e+12\n    test 565 Ariel.areaRG  : 4.21130146277e+12\n    test 566 Ariel.area21k : 4.21130146277e+12\n    test 567 Ariel.ellipse5: Ellipse5Tuple(a=412103.585219, b=409834.214245, height=407295.279804, lat=45.0, beta=44.831891)\n    test 568 Ariel.toTriaxial_: name='NN', a=412103.585218864, b=409834.214245365, c=407295.279803537, e2ab=0.01098327, e2bc=0.012351678, e2ac=0.023199286\n    test 569 Ariel.toTriaxial : name='NN', a=412103.585218864, b=409834.214245365, c=407295.279803537, e2ab=0.01098327, e2bc=0.012351678, e2ac=0.023199286\n\n    test 570 Earth: name='Earth', a=6378173.435, b=6378103.9, c=6356754.399999999, e2ab=0.000021804, e2bc=0.006683418, e2ac=0.006705077\n    test 571 Earth.area    : 5.10065911057e+14\n    test 572 Earth.areaKT  : 5.10065915923e+14\n    test 573 Earth.areaRG  : 5.10065911057e+14\n    test 574 Earth.area21k : 5.10065911057e+14\n    test 575 Earth.ellipse5: Ellipse5Tuple(a=4517628.806864, b=4517579.555566, height=4487337.759918, lat=45.0, beta=44.903634)\n    test 576 Earth.toTriaxial_: name='NN', a=4517628.806863861, b=4517579.55556609, c=4487337.759917997, e2ab=0.000021804, e2bc=0.013343682, e2ac=0.013365195\n    test 577 Earth.toTriaxial : name='NN', a=4517628.806863861, b=4517579.55556609, c=4487337.759917997, e2ab=0.000021804, e2bc=0.013343682, e2ac=0.013365195\n\n    test 578 Enceladus: name='Enceladus', a=256600, b=251400, c=248300, e2ab=0.040119337, e2bc=0.024509841, e2ac=0.06364586\n    test 579 Enceladus.area    : 7.98618496279e+11\n    test 580 Enceladus.areaKT  : 7.98619018175e+11\n    test 581 Enceladus.areaRG  : 7.98618496279e+11\n    test 582 Enceladus.area21k : 7.98618496279e+11\n    test 583 Enceladus.ellipse5: Ellipse5Tuple(a=184401.418634, b=180664.523167, height=172665.031764, lat=45.0, beta=44.058205)\n    test 584 Enceladus.toTriaxial_: name='NN', a=184401.418633881, b=180664.523166631, c=172665.031764361, e2ab=0.040119337, e2bc=0.086595751, e2ac=0.123240924\n    test 585 Enceladus.toTriaxial : name='NN', a=184401.418633881, b=180664.523166631, c=172665.031764361, e2ab=0.040119337, e2bc=0.086595751, e2ac=0.123240924\n\n    test 586 Europa: name='Europa', a=1564130, b=1561230, c=1560930, e2ab=0.003704694, e2bc=0.000384275, e2ac=0.004087546\n    test 587 Europa.area    : 3.06637736973e+13\n    test 588 Europa.areaKT  : 3.06637737946e+13\n    test 589 Europa.areaRG  : 3.06637736973e+13\n    test 590 Europa.area21k : 3.06637736973e+13\n    test 591 Europa.ellipse5: Ellipse5Tuple(a=1107138.878572, b=1105086.170198, height=1102613.397545, lat=45.0, beta=44.94133)\n    test 592 Europa.toTriaxial_: name='NN', a=1107138.878571533, b=1105086.170198279, c=1102613.397544503, e2ab=0.003704694, e2bc=0.004470251, e2ac=0.008158384\n    test 593 Europa.toTriaxial : name='NN', a=1107138.878571533, b=1105086.170198279, c=1102613.397544503, e2ab=0.003704694, e2bc=0.004470251, e2ac=0.008158384\n\n    test 594 Io: name='Io', a=1829400, b=1819300, c=1815700, e2ab=0.011011391, e2bc=0.003953651, e2ac=0.014921506\n    test 595 Io.area    : 4.16918758491e+13\n    test 596 Io.areaKT  : 4.16918773974e+13\n    test 597 Io.areaRG  : 4.16918758491e+13\n    test 598 Io.area21k : 4.16918758491e+13\n    test 599 Io.ellipse5: Ellipse5Tuple(a=1298433.860916, b=1291265.290896, height=1279059.271955, lat=45.0, beta=44.784657)\n    test 600 Io.toTriaxial_: name='NN', a=1298433.860916433, b=1291265.290896068, c=1279059.271955118, e2ab=0.011011391, e2bc=0.018816162, e2ac=0.029620361\n    test 601 Io.toTriaxial : name='NN', a=1298433.860916433, b=1291265.290896068, c=1279059.271955118, e2ab=0.011011391, e2bc=0.018816162, e2ac=0.029620361\n\n    test 602 Mars: name='Mars', a=3394600, b=3393300, c=3376300, e2ab=0.000765776, e2bc=0.009994646, e2ac=0.010752768\n    test 603 Mars.area    : 1.44249140795e+14\n    test 604 Mars.areaKT  : 1.44249144151e+14\n    test 605 Mars.areaRG  : 1.44249140795e+14\n    test 606 Mars.area21k : 1.44249140795e+14\n    test 607 Mars.ellipse5: Ellipse5Tuple(a=2406823.402595, b=2405901.68268, height=2380943.388927, lat=45.0, beta=44.845145)\n    test 608 Mars.toTriaxial_: name='NN', a=2406823.40259456, b=2405901.682679585, c=2380943.38892735, e2ab=0.000765776, e2bc=0.020639944, e2ac=0.021389914\n    test 609 Mars.toTriaxial : name='NN', a=2406823.40259456, b=2405901.682679585, c=2380943.38892735, e2ab=0.000765776, e2bc=0.020639944, e2ac=0.021389914\n\n    test 610 Mimas: name='Mimas', a=207400, b=196800, c=190600, e2ab=0.09960581, e2bc=0.062015624, e2ac=0.155444317\n    test 611 Mimas.area    : 4.93855762248e+11\n    test 612 Mimas.areaKT  : 4.93857714108e+11\n    test 613 Mimas.areaRG  : 4.93855762248e+11\n    test 614 Mimas.area21k : 4.93855762248e+11\n    test 615 Mimas.ellipse5: Ellipse5Tuple(a=152708.378956, b=144903.611276, height=128970.72925, lat=45.0, beta=42.58292)\n    test 616 Mimas.toTriaxial_: name='NN', a=152708.378956057, b=144903.611275565, c=128970.729250426, e2ab=0.09960581, e2bc=0.207819965, e2ac=0.286725699\n    test 617 Mimas.toTriaxial : name='NN', a=152708.378956057, b=144903.611275565, c=128970.729250426, e2ab=0.09960581, e2bc=0.207819965, e2ac=0.286725699\n\n    test 618 Miranda: name='Miranda', a=240400, b=234200, c=232900, e2ab=0.050915557, e2bc=0.011070811, e2ac=0.061422691\n    test 619 Miranda.area    : 6.98880863326e+11\n    test 620 Miranda.areaKT  : 6.98881306768e+11\n    test 621 Miranda.areaRG  : 6.98880863326e+11\n    test 622 Miranda.area21k : 6.98880863326e+11\n    test 623 Miranda.ellipse5: Ellipse5Tuple(a=172660.462873, b=168207.489205, height=162055.192572, lat=45.0, beta=44.092156)\n    test 624 Miranda.toTriaxial_: name='NN', a=172660.462873061, b=168207.489204954, c=162055.192571975, e2ab=0.050915557, e2bc=0.071813503, e2ac=0.119072635\n    test 625 Miranda.toTriaxial : name='NN', a=172660.462873061, b=168207.489204954, c=162055.192571975, e2ab=0.050915557, e2bc=0.071813503, e2ac=0.119072635\n\n    test 626 Moon: name='Moon', a=1735550, b=1735324, c=1734898, e2ab=0.000260419, e2bc=0.000490914, e2ac=0.000751206\n    test 627 Moon.area    : 3.78388247299e+13\n    test 628 Moon.areaKT  : 3.78388247333e+13\n    test 629 Moon.areaRG  : 3.78388247299e+13\n    test 630 Moon.area21k : 3.78388247299e+13\n    test 631 Moon.ellipse5: Ellipse5Tuple(a=1227449.712545, b=1227289.876392, height=1226527.645318, lat=45.0, beta=44.989236)\n    test 632 Moon.toTriaxial_: name='NN', a=1227449.71254467, b=1227289.876391845, c=1226527.645318275, e2ab=0.000260419, e2bc=0.001241751, e2ac=0.001501847\n    test 633 Moon.toTriaxial : name='NN', a=1227449.71254467, b=1227289.876391845, c=1226527.645318275, e2ab=0.000260419, e2bc=0.001241751, e2ac=0.001501847\n\n    test 634 Tethys: name='Tethys', a=535600, b=528200, c=525800, e2ab=0.027441672, e2bc=0.009066821, e2ac=0.036259685\n    test 635 Tethys.area    : 3.52807349077e+12\n    test 636 Tethys.areaKT  : 3.52807426183e+12\n    test 637 Tethys.areaRG  : 3.52807349077e+12\n    test 638 Tethys.area21k : 3.52807349077e+12\n    test 639 Tethys.ellipse5: Ellipse5Tuple(a=382206.915043, b=376926.236979, height=368348.212846, lat=45.0, beta=44.470998)\n    test 640 Tethys.toTriaxial_: name='NN', a=382206.915042949, b=376926.236978502, c=368348.212845736, e2ab=0.027441672, e2bc=0.044997746, e2ac=0.071204605\n    test 641 Tethys.toTriaxial : name='NN', a=382206.915042949, b=376926.236978502, c=368348.212845736, e2ab=0.027441672, e2bc=0.044997746, e2ac=0.071204605\n\n    test 642 WGS84_3: name='WGS84_3', a=6378171.36, b=6378101.609999999, c=6356751.84, e2ab=0.000021871, e2bc=0.006683505, e2ac=0.00670523\n    test 643 WGS84_3.area    : 5.10065541436e+14\n    test 644 WGS84_3.areaKT  : 5.10065546301e+14\n    test 645 WGS84_3.areaRG  : 5.10065541436e+14\n    test 646 WGS84_3.area21k : 5.10065541436e+14\n    test 647 WGS84_3.ellipse5: Ellipse5Tuple(a=4517627.51138, b=4517578.107797, height=4487335.778543, lat=45.0, beta=44.903631)\n    test 648 WGS84_3.toTriaxial_: name='NN', a=4517627.51137994, b=4517578.107796822, c=4487335.778543438, e2ab=0.000021871, e2bc=0.013343921, e2ac=0.0133655\n    test 649 WGS84_3.toTriaxial : name='NN', a=4517627.51137994, b=4517578.107796822, c=4487335.778543438, e2ab=0.000021871, e2bc=0.013343921, e2ac=0.0133655\n\n    test 650 WGS84_35: name='WGS84_35', a=6378172, b=6378102, c=6356752.314245179, e2ab=0.00002195, e2bc=0.006683478, e2ac=0.006705281\n    test 651 WGS84_35.area    : 5.10065621722e+14\n    test 652 WGS84_35.areaKT  : 5.10065626587e+14\n    test 653 WGS84_35.areaRG  : 5.10065621722e+14\n    test 654 WGS84_35.area21k : 5.10065621722e+14\n    test 655 WGS84_35.ellipse5: Ellipse5Tuple(a=4517628.022629, b=4517578.441971, height=4487336.055381, lat=45.0, beta=44.903631)\n    test 656 WGS84_35.toTriaxial_: name='NN', a=4517628.022628974, b=4517578.441971447, c=4487336.055380745, e2ab=0.00002195, e2bc=0.013343945, e2ac=0.013365602\n    test 657 WGS84_35.toTriaxial : name='NN', a=4517628.022628974, b=4517578.441971447, c=4487336.055380745, e2ab=0.00002195, e2bc=0.013343945, e2ac=0.013365602\n\n    test 658 WGS84_3r: name='WGS84_3r', a=6378172, b=6378102, c=6356752, e2ab=0.00002195, e2bc=0.006683577, e2ac=0.00670538\n    test 659 WGS84_3r.area    : 5.10065604942e+14\n    test 660 WGS84_3r.areaKT  : 5.10065609808e+14\n    test 661 WGS84_3r.areaRG  : 5.10065604942e+14\n    test 662 WGS84_3r.area21k : 5.10065604942e+14\n    test 663 WGS84_3r.ellipse5: Ellipse5Tuple(a=4517628.133918, b=4517578.553259, height=4487335.722261, lat=45.0, beta=44.903629)\n    test 664 WGS84_3r.toTriaxial_: name='NN', a=4517628.133917508, b=4517578.553258759, c=4487335.722261372, e2ab=0.00002195, e2bc=0.01334414, e2ac=0.013365797\n    test 665 WGS84_3r.toTriaxial : name='NN', a=4517628.133917508, b=4517578.553258759, c=4487335.722261372, e2ab=0.00002195, e2bc=0.01334414, e2ac=0.013365797\n\n    29 of 665 testTriaxials.py tests (4.4%) FAILED, incl. 27 KNOWN plus 2 DeprecationWarnings (pygeodesy 26.3.26 Python 2.7.18 64bit arm64_x86_64 geographiclib 1.50 numpy 1.16.6 scipy 1.2.2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 -W  default) 837.768 ms\nrunning /Library/Framewo....ython -W default ~/PyGeodesy/test/testUnits.py\n\n    testing testUnits.py 24.07.25\n\n    testing Lambertian(1.0,) (pygeodesy.units, 26.03.12)\n    test 1 .classname: Lambertian\n    test 2 isinstance: True\n    test 3 .name: lambertian\n    test 4 .named: lambertian\n    test 5 .named2: Lambertian 'lambertian'\n    test 6 .str: 1.0\n    test 7 .toStr: 1.0\n    test 8 .std_repr: True\n    test 9 .repr: 1.0\n    test 10 .toRepr: lambertian (1.0)\n    test 11 .units: lambertian\n    test 12 lambertian: psi ('X'): strRad ('X') or suffix ('NSEW'): could not convert string to float: X\n    test 13 lambertian: U ('X'): strRad ('X') or suffix ('NSEW'): could not convert string to float: X\n    test 14 lambertian: TypeError\n    test 15 lambertian: psi ('X'): strRad ('X') or suffix ('NSEW'): could not convert string to float: X  FAILED, KNOWN, expected 'X'\n    test 16 .named: Test\n    test 17 .named2: Lambertian 'Test'\n    test 18 .str: 1.0\n    test 19 .toStr: 1.0\n    test 20 .repr: 1.0\n    test 21 .toRepr: Test (1.0)\n    test 22 .units: lambertian\n    test 23 .name: Test\n    test 24 ._name: Test\n    test 25 .str: 1.0\n    test 26 .repr: 1.0\n    test 27 delattr: ''\n\n    testing _Lat(1.0,) (pygeodesy.units, 26.03.12)\n    test 28 .classname: _Lat\n    test 29 isinstance: True\n    test 30 .name: _lat\n    test 31 .named: _lat\n    test 32 .named2: _Lat '_lat'\n    test 33 .str: 1.0\n    test 34 .toStr: 1.0\n    test 35 .std_repr: True\n    test 36 .repr: 1.0\n    test 37 .toRepr: _lat (1.0)\n    test 38 .units: _lat\n    test 39 _lat: lat ('X'): strDMS ('X') or suffix ('NS'): could not convert string to float: X\n    test 40 _lat: U ('X'): strDMS ('X') or suffix ('NS'): could not convert string to float: X\n    test 41 _lat: TypeError\n    test 42 _lat: lat ('X'): strDMS ('X') or suffix ('NS'): could not convert string to float: X  FAILED, KNOWN, expected 'X'\n    test 43 .named: Test\n    test 44 .named2: _Lat 'Test'\n    test 45 .str: 1.0\n    test 46 .toStr: 1.0\n    test 47 .repr: 1.0\n    test 48 .toRepr: Test (1.0)\n    test 49 .units: _lat\n    test 50 .name: Test\n    test 51 ._name: Test\n    test 52 .str: 1.0\n    test 53 .repr: 1.0\n    test 54 delattr: ''\n\n    testing _Lon(1.0,) (pygeodesy.units, 26.03.12)\n    test 55 .classname: _Lon\n    test 56 isinstance: True\n    test 57 .name: _lon\n    test 58 .named: _lon\n    test 59 .named2: _Lon '_lon'\n    test 60 .str: 1.0\n    test 61 .toStr: 1.0\n    test 62 .std_repr: True\n    test 63 .repr: 1.0\n    test 64 .toRepr: _lon (1.0)\n    test 65 .units: _lon\n    test 66 _lon: lon ('X'): strDMS ('X') or suffix ('EW'): could not convert string to float: X\n    test 67 _lon: U ('X'): strDMS ('X') or suffix ('EW'): could not convert string to float: X\n    test 68 _lon: TypeError\n    test 69 _lon: lon ('X'): strDMS ('X') or suffix ('EW'): could not convert string to float: X  FAILED, KNOWN, expected 'X'\n    test 70 .named: Test\n    test 71 .named2: _Lon 'Test'\n    test 72 .str: 1.0\n    test 73 .toStr: 1.0\n    test 74 .repr: 1.0\n    test 75 .toRepr: Test (1.0)\n    test 76 .units: _lon\n    test 77 .name: Test\n    test 78 ._name: Test\n    test 79 .str: 1.0\n    test 80 .repr: 1.0\n    test 81 delattr: ''\n\n    testing Bearing(1.0,) (pygeodesy.units, 26.03.12)\n    test 82 .classname: Bearing\n    test 83 isinstance: True\n    test 84 .name: bearing\n    test 85 .named: bearing\n    test 86 .named2: Bearing 'bearing'\n    test 87 .str: 1.0\n    test 88 .toStr: 1.0\n    test 89 .std_repr: True\n    test 90 .repr: 1.0\n    test 91 .toRepr: bearing (1.0)\n    test 92 .units: bearing\n    test 93 bearing: bearing ('X'): strDMS ('X') or suffix ('N'): could not convert string to float: X\n    test 94 bearing: U ('X'): strDMS ('X') or suffix ('N'): could not convert string to float: X\n    test 95 bearing: TypeError\n    test 96 bearing: bearing ('X'): strDMS ('X') or suffix ('N'): could not convert string to float: X  FAILED, KNOWN, expected 'X'\n    test 97 .named: Test\n    test 98 .named2: Bearing 'Test'\n    test 99 .str: 1.0\n    test 100 .toStr: 1.0\n    test 101 .repr: 1.0\n    test 102 .toRepr: Test (1.0)\n    test 103 .units: bearing\n    test 104 .name: Test\n    test 105 ._name: Test\n    test 106 .str: 1.0\n    test 107 .repr: 1.0\n    test 108 delattr: ''\n\n    testing Degrees(1.0,) (pygeodesy.units, 26.03.12)\n    test 109 .classname: Degrees\n    test 110 isinstance: True\n    test 111 .name: degrees\n    test 112 .named: degrees\n    test 113 .named2: Degrees 'degrees'\n    test 114 .str: 1.0\n    test 115 .toStr: 1.0\n    test 116 .std_repr: True\n    test 117 .repr: 1.0\n    test 118 .toRepr: degrees (1.0)\n    test 119 .units: degrees\n    test 120 degrees: degrees ('X'): strDMS ('X') or suffix ('NSEW'): could not convert string to float: X\n    test 121 degrees: U ('X'): strDMS ('X') or suffix ('NSEW'): could not convert string to float: X\n    test 122 degrees: TypeError\n    test 123 degrees: degrees ('X'): strDMS ('X') or suffix ('NSEW'): could not convert string to float: X  FAILED, KNOWN, expected 'X'\n    test 124 .named: Test\n    test 125 .named2: Degrees 'Test'\n    test 126 .str: 1.0\n    test 127 .toStr: 1.0\n    test 128 .repr: 1.0\n    test 129 .toRepr: Test (1.0)\n    test 130 .units: degrees\n    test 131 .name: Test\n    test 132 ._name: Test\n    test 133 .str: 1.0\n    test 134 .repr: 1.0\n    test 135 delattr: ''\n\n    testing Degrees2(1.0,) (pygeodesy.units, 26.03.12)\n    test 136 .classname: Degrees2\n    test 137 isinstance: True\n    test 138 .name: degrees2\n    test 139 .named: degrees2\n    test 140 .named2: Degrees2 'degrees2'\n    test 141 .str: 1.0\n    test 142 .toStr: 1.0\n    test 143 .std_repr: True\n    test 144 .repr: 1.0\n    test 145 .toRepr: degrees2 (1.0)\n    test 146 .units: degrees2\n    test 147 degrees2: degrees2 ('X'): could not convert string to float: X\n    test 148 degrees2: U ('X'): could not convert string to float: X\n    test 149 degrees2: TypeError\n    test 150 degrees2: degrees2 ('X'): could not convert string to float: X  FAILED, KNOWN, expected 'X'\n    test 151 .named: Test\n    test 152 .named2: Degrees2 'Test'\n    test 153 .str: 1.0\n    test 154 .toStr: 1.0\n    test 155 .repr: 1.0\n    test 156 .toRepr: Test (1.0)\n    test 157 .units: degrees2\n    test 158 .name: Test\n    test 159 ._name: Test\n    test 160 .str: 1.0\n    test 161 .repr: 1.0\n    test 162 delattr: ''\n\n    testing Degrees_(1.0,) (pygeodesy.units, 26.03.12)\n    test 163 .classname: Degrees_\n    test 164 isinstance: True\n    test 165 .name: degrees_\n    test 166 .named: degrees_\n    test 167 .named2: Degrees_ 'degrees_'\n    test 168 .str: 1.0\n    test 169 .toStr: 1.0\n    test 170 .std_repr: True\n    test 171 .repr: 1.0\n    test 172 .toRepr: degrees_ (1.0)\n    test 173 .units: degrees_\n    test 174 degrees_: degrees ('X'): strDMS ('X') or suffix ('NSEW'): could not convert string to float: X\n    test 175 degrees_: U ('X'): strDMS ('X') or suffix ('NSEW'): could not convert string to float: X\n    test 176 degrees_: TypeError\n    test 177 degrees_: degrees ('X'): strDMS ('X') or suffix ('NSEW'): could not convert string to float: X  FAILED, KNOWN, expected 'X'\n    test 178 .named: Test\n    test 179 .named2: Degrees_ 'Test'\n    test 180 .str: 1.0\n    test 181 .toStr: 1.0\n    test 182 .repr: 1.0\n    test 183 .toRepr: Test (1.0)\n    test 184 .units: degrees_\n    test 185 .name: Test\n    test 186 ._name: Test\n    test 187 .str: 1.0\n    test 188 .repr: 1.0\n    test 189 delattr: ''\n\n    testing Distance(1.0,) (pygeodesy.units, 26.03.12)\n    test 190 .classname: Distance\n    test 191 isinstance: True\n    test 192 .name: distance\n    test 193 .named: distance\n    test 194 .named2: Distance 'distance'\n    test 195 .str: 1.0\n    test 196 .toStr: 1.0\n    test 197 .std_repr: True\n    test 198 .repr: 1.0\n    test 199 .toRepr: distance (1.0)\n    test 200 .units: distance\n    test 201 distance: distance ('X'): could not convert string to float: X\n    test 202 distance: U ('X'): could not convert string to float: X\n    test 203 distance: TypeError\n    test 204 distance: distance ('X'): could not convert string to float: X  FAILED, KNOWN, expected 'X'\n    test 205 .named: Test\n    test 206 .named2: Distance 'Test'\n    test 207 .str: 1.0\n    test 208 .toStr: 1.0\n    test 209 .repr: 1.0\n    test 210 .toRepr: Test (1.0)\n    test 211 .units: distance\n    test 212 .name: Test\n    test 213 ._name: Test\n    test 214 .str: 1.0\n    test 215 .repr: 1.0\n    test 216 delattr: ''\n\n    testing Distance_(1.0,) (pygeodesy.units, 26.03.12)\n    test 217 .classname: Distance_\n    test 218 isinstance: True\n    test 219 .name: distance_\n    test 220 .named: distance_\n    test 221 .named2: Distance_ 'distance_'\n    test 222 .str: 1.0\n    test 223 .toStr: 1.0\n    test 224 .std_repr: True\n    test 225 .repr: 1.0\n    test 226 .toRepr: distance_ (1.0)\n    test 227 .units: distance_\n    test 228 distance_: distance ('X'): could not convert string to float: X\n    test 229 distance_: U ('X'): could not convert string to float: X\n    test 230 distance_: TypeError\n    test 231 distance_: distance ('X'): could not convert string to float: X  FAILED, KNOWN, expected 'X'\n    test 232 .named: Test\n    test 233 .named2: Distance_ 'Test'\n    test 234 .str: 1.0\n    test 235 .toStr: 1.0\n    test 236 .repr: 1.0\n    test 237 .toRepr: Test (1.0)\n    test 238 .units: distance_\n    test 239 .name: Test\n    test 240 ._name: Test\n    test 241 .str: 1.0\n    test 242 .repr: 1.0\n    test 243 delattr: ''\n\n    testing Easting(1.0,) (pygeodesy.units, 26.03.12)\n    test 244 .classname: Easting\n    test 245 isinstance: True\n    test 246 .name: easting\n    test 247 .named: easting\n    test 248 .named2: Easting 'easting'\n    test 249 .str: 1.0\n    test 250 .toStr: 1.0\n    test 251 .std_repr: True\n    test 252 .repr: 1.0\n    test 253 .toRepr: easting (1.0)\n    test 254 .units: easting\n    test 255 easting: easting ('X'): could not convert string to float: X\n    test 256 easting: U ('X'): could not convert string to float: X\n    test 257 easting: TypeError\n    test 258 easting: easting ('X'): could not convert string to float: X  FAILED, KNOWN, expected 'X'\n    test 259 .named: Test\n    test 260 .named2: Easting 'Test'\n    test 261 .str: 1.0\n    test 262 .toStr: 1.0\n    test 263 .repr: 1.0\n    test 264 .toRepr: Test (1.0)\n    test 265 .units: easting\n    test 266 .name: Test\n    test 267 ._name: Test\n    test 268 .str: 1.0\n    test 269 .repr: 1.0\n    test 270 delattr: ''\n\n    testing Feet(1.0,) (pygeodesy.units, 26.03.12)\n    test 271 .classname: Feet\n    test 272 isinstance: True\n    test 273 .name: feet\n    test 274 .named: feet\n    test 275 .named2: Feet 'feet'\n    test 276 .str: 1.0\n    test 277 .toStr: 1.0\n    test 278 .std_repr: True\n    test 279 .repr: 1.0\n    test 280 .toRepr: feet (1.0)\n    test 281 .units: feet\n    test 282 feet: feet ('X'): could not convert string to float: X\n    test 283 feet: U ('X'): could not convert string to float: X\n    test 284 feet: TypeError\n    test 285 feet: feet ('X'): could not convert string to float: X  FAILED, KNOWN, expected 'X'\n    test 286 .named: Test\n    test 287 .named2: Feet 'Test'\n    test 288 .str: 1.0\n    test 289 .toStr: 1.0\n    test 290 .repr: 1.0\n    test 291 .toRepr: Test (1.0)\n    test 292 .units: feet\n    test 293 .name: Test\n    test 294 ._name: Test\n    test 295 .str: 1.0\n    test 296 .repr: 1.0\n    test 297 delattr: ''\n\n    testing Float_(1.0,) (pygeodesy.units, 26.03.12)\n    test 298 .classname: Float_\n    test 299 isinstance: True\n    test 300 .name: float_\n    test 301 .named: float_\n    test 302 .named2: Float_ 'float_'\n    test 303 .str: 1.0\n    test 304 .toStr: 1.0\n    test 305 .std_repr: True\n    test 306 .repr: 1.0\n    test 307 .toRepr: float_ (1.0)\n    test 308 .units: float_\n    test 309 float_: Float_ ('X'): could not convert string to float: X\n    test 310 float_: U ('X'): could not convert string to float: X\n    test 311 float_: TypeError\n    test 312 float_: Float_ ('X'): could not convert string to float: X  FAILED, KNOWN, expected 'X'\n    test 313 .named: Test\n    test 314 .named2: Float_ 'Test'\n    test 315 .str: 1.0\n    test 316 .toStr: 1.0\n    test 317 .repr: 1.0\n    test 318 .toRepr: Test (1.0)\n    test 319 .units: float_\n    test 320 .name: Test\n    test 321 ._name: Test\n    test 322 .str: 1.0\n    test 323 .repr: 1.0\n    test 324 delattr: ''\n\n    testing Height(1.0,) (pygeodesy.units, 26.03.12)\n    test 325 .classname: Height\n    test 326 isinstance: True\n    test 327 .name: height\n    test 328 .named: height\n    test 329 .named2: Height 'height'\n    test 330 .str: 1.0\n    test 331 .toStr: 1.0\n    test 332 .std_repr: True\n    test 333 .repr: 1.0\n    test 334 .toRepr: height (1.0)\n    test 335 .units: height\n    test 336 height: height ('X'): could not convert string to float: X\n    test 337 height: U ('X'): could not convert string to float: X\n    test 338 height: TypeError\n    test 339 height: height ('X'): could not convert string to float: X  FAILED, KNOWN, expected 'X'\n    test 340 .named: Test\n    test 341 .named2: Height 'Test'\n    test 342 .str: 1.0\n    test 343 .toStr: 1.0\n    test 344 .repr: 1.0\n    test 345 .toRepr: Test (1.0)\n    test 346 .units: height\n    test 347 .name: Test\n    test 348 ._name: Test\n    test 349 .str: 1.0\n    test 350 .repr: 1.0\n    test 351 delattr: ''\n\n    testing HeightX(1.0,) (pygeodesy.units, 26.03.12)\n    test 352 .classname: HeightX\n    test 353 isinstance: True\n    test 354 .name: heightx\n    test 355 .named: heightx\n    test 356 .named2: HeightX 'heightx'\n    test 357 .str: 1.0\n    test 358 .toStr: 1.0\n    test 359 .std_repr: True\n    test 360 .repr: 1.0\n    test 361 .toRepr: heightx (1.0)\n    test 362 .units: heightx\n    test 363 heightx: height ('X'): could not convert string to float: X\n    test 364 heightx: U ('X'): could not convert string to float: X\n    test 365 heightx: TypeError\n    test 366 heightx: height ('X'): could not convert string to float: X  FAILED, KNOWN, expected 'X'\n    test 367 .named: Test\n    test 368 .named2: HeightX 'Test'\n    test 369 .str: 1.0\n    test 370 .toStr: 1.0\n    test 371 .repr: 1.0\n    test 372 .toRepr: Test (1.0)\n    test 373 .units: heightx\n    test 374 .name: Test\n    test 375 ._name: Test\n    test 376 .str: 1.0\n    test 377 .repr: 1.0\n    test 378 delattr: ''\n\n    testing Height_(1.0,) (pygeodesy.units, 26.03.12)\n    test 379 .classname: Height_\n    test 380 isinstance: True\n    test 381 .name: height_\n    test 382 .named: height_\n    test 383 .named2: Height_ 'height_'\n    test 384 .str: 1.0\n    test 385 .toStr: 1.0\n    test 386 .std_repr: True\n    test 387 .repr: 1.0\n    test 388 .toRepr: height_ (1.0)\n    test 389 .units: height_\n    test 390 height_: height ('X'): could not convert string to float: X\n    test 391 height_: U ('X'): could not convert string to float: X\n    test 392 height_: TypeError\n    test 393 height_: height ('X'): could not convert string to float: X  FAILED, KNOWN, expected 'X'\n    test 394 .named: Test\n    test 395 .named2: Height_ 'Test'\n    test 396 .str: 1.0\n    test 397 .toStr: 1.0\n    test 398 .repr: 1.0\n    test 399 .toRepr: Test (1.0)\n    test 400 .units: height_\n    test 401 .name: Test\n    test 402 ._name: Test\n    test 403 .str: 1.0\n    test 404 .repr: 1.0\n    test 405 delattr: ''\n\n    testing Lam(1.0,) (pygeodesy.units, 26.03.12)\n    test 406 .classname: Lam\n    test 407 isinstance: True\n    test 408 .name: lam\n    test 409 .named: lam\n    test 410 .named2: Lam 'lam'\n    test 411 .str: 1.0\n    test 412 .toStr: 1.0\n    test 413 .std_repr: True\n    test 414 .repr: 1.0\n    test 415 .toRepr: lam (1.0)\n    test 416 .units: lam\n    test 417 lam: lam ('X'): strRad ('X') or suffix ('EW'): could not convert string to float: X\n    test 418 lam: U ('X'): strRad ('X') or suffix ('EW'): could not convert string to float: X\n    test 419 lam: TypeError\n    test 420 lam: lam ('X'): strRad ('X') or suffix ('EW'): could not convert string to float: X  FAILED, KNOWN, expected 'X'\n    test 421 .named: Test\n    test 422 .named2: Lam 'Test'\n    test 423 .str: 1.0\n    test 424 .toStr: 1.0\n    test 425 .repr: 1.0\n    test 426 .toRepr: Test (1.0)\n    test 427 .units: lam\n    test 428 .name: Test\n    test 429 ._name: Test\n    test 430 .str: 1.0\n    test 431 .repr: 1.0\n    test 432 delattr: ''\n\n    testing Lat(1.0,) (pygeodesy.units, 26.03.12)\n    test 433 .classname: Lat\n    test 434 isinstance: True\n    test 435 .name: lat\n    test 436 .named: lat\n    test 437 .named2: Lat 'lat'\n    test 438 .str: 1.0\n    test 439 .toStr: 1.0\n    test 440 .std_repr: True\n    test 441 .repr: 1.0\n    test 442 .toRepr: lat (1.0)\n    test 443 .units: lat\n    test 444 lat: lat ('X'): strDMS ('X') or suffix ('NS'): could not convert string to float: X\n    test 445 lat: U ('X'): strDMS ('X') or suffix ('NS'): could not convert string to float: X\n    test 446 lat: TypeError\n    test 447 lat: lat ('X'): strDMS ('X') or suffix ('NS'): could not convert string to float: X  FAILED, KNOWN, expected 'X'\n    test 448 .named: Test\n    test 449 .named2: Lat 'Test'\n    test 450 .str: 1.0\n    test 451 .toStr: 1.0\n    test 452 .repr: 1.0\n    test 453 .toRepr: Test (1.0)\n    test 454 .units: lat\n    test 455 .name: Test\n    test 456 ._name: Test\n    test 457 .str: 1.0\n    test 458 .repr: 1.0\n    test 459 delattr: ''\n\n    testing Lat_(1.0,) (pygeodesy.units, 26.03.12)\n    test 460 .classname: Lat_\n    test 461 isinstance: True\n    test 462 .name: lat_\n    test 463 .named: lat_\n    test 464 .named2: Lat_ 'lat_'\n    test 465 .str: 1.0\n    test 466 .toStr: 1.0\n    test 467 .std_repr: True\n    test 468 .repr: 1.0\n    test 469 .toRepr: lat_ (1.0)\n    test 470 .units: lat_\n    test 471 lat_: lat ('X'): strDMS ('X') or suffix ('NS'): could not convert string to float: X\n    test 472 lat_: U ('X'): strDMS ('X') or suffix ('NS'): could not convert string to float: X\n    test 473 lat_: TypeError\n    test 474 lat_: lat ('X'): strDMS ('X') or suffix ('NS'): could not convert string to float: X  FAILED, KNOWN, expected 'X'\n    test 475 .named: Test\n    test 476 .named2: Lat_ 'Test'\n    test 477 .str: 1.0\n    test 478 .toStr: 1.0\n    test 479 .repr: 1.0\n    test 480 .toRepr: Test (1.0)\n    test 481 .units: lat_\n    test 482 .name: Test\n    test 483 ._name: Test\n    test 484 .str: 1.0\n    test 485 .repr: 1.0\n    test 486 delattr: ''\n\n    testing Lon(1.0,) (pygeodesy.units, 26.03.12)\n    test 487 .classname: Lon\n    test 488 isinstance: True\n    test 489 .name: lon\n    test 490 .named: lon\n    test 491 .named2: Lon 'lon'\n    test 492 .str: 1.0\n    test 493 .toStr: 1.0\n    test 494 .std_repr: True\n    test 495 .repr: 1.0\n    test 496 .toRepr: lon (1.0)\n    test 497 .units: lon\n    test 498 lon: lon ('X'): strDMS ('X') or suffix ('EW'): could not convert string to float: X\n    test 499 lon: U ('X'): strDMS ('X') or suffix ('EW'): could not convert string to float: X\n    test 500 lon: TypeError\n    test 501 lon: lon ('X'): strDMS ('X') or suffix ('EW'): could not convert string to float: X  FAILED, KNOWN, expected 'X'\n    test 502 .named: Test\n    test 503 .named2: Lon 'Test'\n    test 504 .str: 1.0\n    test 505 .toStr: 1.0\n    test 506 .repr: 1.0\n    test 507 .toRepr: Test (1.0)\n    test 508 .units: lon\n    test 509 .name: Test\n    test 510 ._name: Test\n    test 511 .str: 1.0\n    test 512 .repr: 1.0\n    test 513 delattr: ''\n\n    testing Lon_(1.0,) (pygeodesy.units, 26.03.12)\n    test 514 .classname: Lon_\n    test 515 isinstance: True\n    test 516 .name: lon_\n    test 517 .named: lon_\n    test 518 .named2: Lon_ 'lon_'\n    test 519 .str: 1.0\n    test 520 .toStr: 1.0\n    test 521 .std_repr: True\n    test 522 .repr: 1.0\n    test 523 .toRepr: lon_ (1.0)\n    test 524 .units: lon_\n    test 525 lon_: lon ('X'): strDMS ('X') or suffix ('EW'): could not convert string to float: X\n    test 526 lon_: U ('X'): strDMS ('X') or suffix ('EW'): could not convert string to float: X\n    test 527 lon_: TypeError\n    test 528 lon_: lon ('X'): strDMS ('X') or suffix ('EW'): could not convert string to float: X  FAILED, KNOWN, expected 'X'\n    test 529 .named: Test\n    test 530 .named2: Lon_ 'Test'\n    test 531 .str: 1.0\n    test 532 .toStr: 1.0\n    test 533 .repr: 1.0\n    test 534 .toRepr: Test (1.0)\n    test 535 .units: lon_\n    test 536 .name: Test\n    test 537 ._name: Test\n    test 538 .str: 1.0\n    test 539 .repr: 1.0\n    test 540 delattr: ''\n\n    testing Meter(1.0,) (pygeodesy.units, 26.03.12)\n    test 541 .classname: Meter\n    test 542 isinstance: True\n    test 543 .name: meter\n    test 544 .named: meter\n    test 545 .named2: Meter 'meter'\n    test 546 .str: 1.0\n    test 547 .toStr: 1.0\n    test 548 .std_repr: True\n    test 549 .repr: 1.0\n    test 550 .toRepr: meter (1.0)\n    test 551 .units: meter\n    test 552 meter: meter ('X'): could not convert string to float: X\n    test 553 meter: U ('X'): could not convert string to float: X\n    test 554 meter: TypeError\n    test 555 meter: meter ('X'): could not convert string to float: X  FAILED, KNOWN, expected 'X'\n    test 556 .named: Test\n    test 557 .named2: Meter 'Test'\n    test 558 .str: 1.0\n    test 559 .toStr: 1.0\n    test 560 .repr: 1.0\n    test 561 .toRepr: Test (1.0)\n    test 562 .units: meter\n    test 563 .name: Test\n    test 564 ._name: Test\n    test 565 .str: 1.0\n    test 566 .repr: 1.0\n    test 567 delattr: ''\n\n    testing Meter2(1.0,) (pygeodesy.units, 26.03.12)\n    test 568 .classname: Meter2\n    test 569 isinstance: True\n    test 570 .name: meter2\n    test 571 .named: meter2\n    test 572 .named2: Meter2 'meter2'\n    test 573 .str: 1.0\n    test 574 .toStr: 1.0\n    test 575 .std_repr: True\n    test 576 .repr: 1.0\n    test 577 .toRepr: meter2 (1.0)\n    test 578 .units: meter2\n    test 579 meter2: meter2 ('X'): could not convert string to float: X\n    test 580 meter2: U ('X'): could not convert string to float: X\n    test 581 meter2: TypeError\n    test 582 meter2: meter2 ('X'): could not convert string to float: X  FAILED, KNOWN, expected 'X'\n    test 583 .named: Test\n    test 584 .named2: Meter2 'Test'\n    test 585 .str: 1.0\n    test 586 .toStr: 1.0\n    test 587 .repr: 1.0\n    test 588 .toRepr: Test (1.0)\n    test 589 .units: meter2\n    test 590 .name: Test\n    test 591 ._name: Test\n    test 592 .str: 1.0\n    test 593 .repr: 1.0\n    test 594 delattr: ''\n\n    testing Meter3(1.0,) (pygeodesy.units, 26.03.12)\n    test 595 .classname: Meter3\n    test 596 isinstance: True\n    test 597 .name: meter3\n    test 598 .named: meter3\n    test 599 .named2: Meter3 'meter3'\n    test 600 .str: 1.0\n    test 601 .toStr: 1.0\n    test 602 .std_repr: True\n    test 603 .repr: 1.0\n    test 604 .toRepr: meter3 (1.0)\n    test 605 .units: meter3\n    test 606 meter3: meter3 ('X'): could not convert string to float: X\n    test 607 meter3: U ('X'): could not convert string to float: X\n    test 608 meter3: TypeError\n    test 609 meter3: meter3 ('X'): could not convert string to float: X  FAILED, KNOWN, expected 'X'\n    test 610 .named: Test\n    test 611 .named2: Meter3 'Test'\n    test 612 .str: 1.0\n    test 613 .toStr: 1.0\n    test 614 .repr: 1.0\n    test 615 .toRepr: Test (1.0)\n    test 616 .units: meter3\n    test 617 .name: Test\n    test 618 ._name: Test\n    test 619 .str: 1.0\n    test 620 .repr: 1.0\n    test 621 delattr: ''\n\n    testing Meter_(1.0,) (pygeodesy.units, 26.03.12)\n    test 622 .classname: Meter_\n    test 623 isinstance: True\n    test 624 .name: meter_\n    test 625 .named: meter_\n    test 626 .named2: Meter_ 'meter_'\n    test 627 .str: 1.0\n    test 628 .toStr: 1.0\n    test 629 .std_repr: True\n    test 630 .repr: 1.0\n    test 631 .toRepr: meter_ (1.0)\n    test 632 .units: meter_\n    test 633 meter_: meter ('X'): could not convert string to float: X\n    test 634 meter_: U ('X'): could not convert string to float: X\n    test 635 meter_: TypeError\n    test 636 meter_: meter ('X'): could not convert string to float: X  FAILED, KNOWN, expected 'X'\n    test 637 .named: Test\n    test 638 .named2: Meter_ 'Test'\n    test 639 .str: 1.0\n    test 640 .toStr: 1.0\n    test 641 .repr: 1.0\n    test 642 .toRepr: Test (1.0)\n    test 643 .units: meter_\n    test 644 .name: Test\n    test 645 ._name: Test\n    test 646 .str: 1.0\n    test 647 .repr: 1.0\n    test 648 delattr: ''\n\n    testing Northing(1.0,) (pygeodesy.units, 26.03.12)\n    test 649 .classname: Northing\n    test 650 isinstance: True\n    test 651 .name: northing\n    test 652 .named: northing\n    test 653 .named2: Northing 'northing'\n    test 654 .str: 1.0\n    test 655 .toStr: 1.0\n    test 656 .std_repr: True\n    test 657 .repr: 1.0\n    test 658 .toRepr: northing (1.0)\n    test 659 .units: northing\n    test 660 northing: northing ('X'): could not convert string to float: X\n    test 661 northing: U ('X'): could not convert string to float: X\n    test 662 northing: TypeError\n    test 663 northing: northing ('X'): could not convert string to float: X  FAILED, KNOWN, expected 'X'\n    test 664 .named: Test\n    test 665 .named2: Northing 'Test'\n    test 666 .str: 1.0\n    test 667 .toStr: 1.0\n    test 668 .repr: 1.0\n    test 669 .toRepr: Test (1.0)\n    test 670 .units: northing\n    test 671 .name: Test\n    test 672 ._name: Test\n    test 673 .str: 1.0\n    test 674 .repr: 1.0\n    test 675 delattr: ''\n\n    testing Phi(1.0,) (pygeodesy.units, 26.03.12)\n    test 676 .classname: Phi\n    test 677 isinstance: True\n    test 678 .name: phi\n    test 679 .named: phi\n    test 680 .named2: Phi 'phi'\n    test 681 .str: 1.0\n    test 682 .toStr: 1.0\n    test 683 .std_repr: True\n    test 684 .repr: 1.0\n    test 685 .toRepr: phi (1.0)\n    test 686 .units: phi\n    test 687 phi: phi ('X'): strRad ('X') or suffix ('NS'): could not convert string to float: X\n    test 688 phi: U ('X'): strRad ('X') or suffix ('NS'): could not convert string to float: X\n    test 689 phi: TypeError\n    test 690 phi: phi ('X'): strRad ('X') or suffix ('NS'): could not convert string to float: X  FAILED, KNOWN, expected 'X'\n    test 691 .named: Test\n    test 692 .named2: Phi 'Test'\n    test 693 .str: 1.0\n    test 694 .toStr: 1.0\n    test 695 .repr: 1.0\n    test 696 .toRepr: Test (1.0)\n    test 697 .units: phi\n    test 698 .name: Test\n    test 699 ._name: Test\n    test 700 .str: 1.0\n    test 701 .repr: 1.0\n    test 702 delattr: ''\n\n    testing Radians(1.0,) (pygeodesy.units, 26.03.12)\n    test 703 .classname: Radians\n    test 704 isinstance: True\n    test 705 .name: radians\n    test 706 .named: radians\n    test 707 .named2: Radians 'radians'\n    test 708 .str: 1.0\n    test 709 .toStr: 1.0\n    test 710 .std_repr: True\n    test 711 .repr: 1.0\n    test 712 .toRepr: radians (1.0)\n    test 713 .units: radians\n    test 714 radians: radians ('X'): strRad ('X') or suffix ('NSEW'): could not convert string to float: X\n    test 715 radians: U ('X'): strRad ('X') or suffix ('NSEW'): could not convert string to float: X\n    test 716 radians: TypeError\n    test 717 radians: radians ('X'): strRad ('X') or suffix ('NSEW'): could not convert string to float: X  FAILED, KNOWN, expected 'X'\n    test 718 .named: Test\n    test 719 .named2: Radians 'Test'\n    test 720 .str: 1.0\n    test 721 .toStr: 1.0\n    test 722 .repr: 1.0\n    test 723 .toRepr: Test (1.0)\n    test 724 .units: radians\n    test 725 .name: Test\n    test 726 ._name: Test\n    test 727 .str: 1.0\n    test 728 .repr: 1.0\n    test 729 delattr: ''\n\n    testing Radians2(1.0,) (pygeodesy.units, 26.03.12)\n    test 730 .classname: Radians2\n    test 731 isinstance: True\n    test 732 .name: radians2\n    test 733 .named: radians2\n    test 734 .named2: Radians2 'radians2'\n    test 735 .str: 1.0\n    test 736 .toStr: 1.0\n    test 737 .std_repr: True\n    test 738 .repr: 1.0\n    test 739 .toRepr: radians2 (1.0)\n    test 740 .units: radians2\n    test 741 radians2: radians2 ('X'): could not convert string to float: X\n    test 742 radians2: U ('X'): could not convert string to float: X\n    test 743 radians2: TypeError\n    test 744 radians2: radians2 ('X'): could not convert string to float: X  FAILED, KNOWN, expected 'X'\n    test 745 .named: Test\n    test 746 .named2: Radians2 'Test'\n    test 747 .str: 1.0\n    test 748 .toStr: 1.0\n    test 749 .repr: 1.0\n    test 750 .toRepr: Test (1.0)\n    test 751 .units: radians2\n    test 752 .name: Test\n    test 753 ._name: Test\n    test 754 .str: 1.0\n    test 755 .repr: 1.0\n    test 756 delattr: ''\n\n    testing Radians_(1.0,) (pygeodesy.units, 26.03.12)\n    test 757 .classname: Radians_\n    test 758 isinstance: True\n    test 759 .name: radians_\n    test 760 .named: radians_\n    test 761 .named2: Radians_ 'radians_'\n    test 762 .str: 1.0\n    test 763 .toStr: 1.0\n    test 764 .std_repr: True\n    test 765 .repr: 1.0\n    test 766 .toRepr: radians_ (1.0)\n    test 767 .units: radians_\n    test 768 radians_: radians ('X'): strRad ('X') or suffix ('NSEW'): could not convert string to float: X\n    test 769 radians_: U ('X'): strRad ('X') or suffix ('NSEW'): could not convert string to float: X\n    test 770 radians_: TypeError\n    test 771 radians_: radians ('X'): strRad ('X') or suffix ('NSEW'): could not convert string to float: X  FAILED, KNOWN, expected 'X'\n    test 772 .named: Test\n    test 773 .named2: Radians_ 'Test'\n    test 774 .str: 1.0\n    test 775 .toStr: 1.0\n    test 776 .repr: 1.0\n    test 777 .toRepr: Test (1.0)\n    test 778 .units: radians_\n    test 779 .name: Test\n    test 780 ._name: Test\n    test 781 .str: 1.0\n    test 782 .repr: 1.0\n    test 783 delattr: ''\n\n    testing Radius_(1.0,) (pygeodesy.units, 26.03.12)\n    test 784 .classname: Radius_\n    test 785 isinstance: True\n    test 786 .name: radius_\n    test 787 .named: radius_\n    test 788 .named2: Radius_ 'radius_'\n    test 789 .str: 1.0\n    test 790 .toStr: 1.0\n    test 791 .std_repr: True\n    test 792 .repr: 1.0\n    test 793 .toRepr: radius_ (1.0)\n    test 794 .units: radius_\n    test 795 radius_: radius ('X'): could not convert string to float: X\n    test 796 radius_: U ('X'): could not convert string to float: X\n    test 797 radius_: TypeError\n    test 798 radius_: radius ('X'): could not convert string to float: X  FAILED, KNOWN, expected 'X'\n    test 799 .named: Test\n    test 800 .named2: Radius_ 'Test'\n    test 801 .str: 1.0\n    test 802 .toStr: 1.0\n    test 803 .repr: 1.0\n    test 804 .toRepr: Test (1.0)\n    test 805 .units: radius_\n    test 806 .name: Test\n    test 807 ._name: Test\n    test 808 .str: 1.0\n    test 809 .repr: 1.0\n    test 810 delattr: ''\n\n    testing Scalar(1.0,) (pygeodesy.units, 26.03.12)\n    test 811 .classname: Scalar\n    test 812 isinstance: True\n    test 813 .name: scalar\n    test 814 .named: scalar\n    test 815 .named2: Scalar 'scalar'\n    test 816 .str: 1.0\n    test 817 .toStr: 1.0\n    test 818 .std_repr: True\n    test 819 .repr: 1.0\n    test 820 .toRepr: scalar (1.0)\n    test 821 .units: scalar\n    test 822 scalar: scalar ('X'): could not convert string to float: X\n    test 823 scalar: U ('X'): could not convert string to float: X\n    test 824 scalar: TypeError\n    test 825 scalar: scalar ('X'): could not convert string to float: X  FAILED, KNOWN, expected 'X'\n    test 826 .named: Test\n    test 827 .named2: Scalar 'Test'\n    test 828 .str: 1.0\n    test 829 .toStr: 1.0\n    test 830 .repr: 1.0\n    test 831 .toRepr: Test (1.0)\n    test 832 .units: scalar\n    test 833 .name: Test\n    test 834 ._name: Test\n    test 835 .str: 1.0\n    test 836 .repr: 1.0\n    test 837 delattr: ''\n\n    testing Scalar_(1.0,) (pygeodesy.units, 26.03.12)\n    test 838 .classname: Scalar_\n    test 839 isinstance: True\n    test 840 .name: scalar_\n    test 841 .named: scalar_\n    test 842 .named2: Scalar_ 'scalar_'\n    test 843 .str: 1.0\n    test 844 .toStr: 1.0\n    test 845 .std_repr: True\n    test 846 .repr: 1.0\n    test 847 .toRepr: scalar_ (1.0)\n    test 848 .units: scalar_\n    test 849 scalar_: scalar ('X'): could not convert string to float: X\n    test 850 scalar_: U ('X'): could not convert string to float: X\n    test 851 scalar_: TypeError\n    test 852 scalar_: scalar ('X'): could not convert string to float: X  FAILED, KNOWN, expected 'X'\n    test 853 .named: Test\n    test 854 .named2: Scalar_ 'Test'\n    test 855 .str: 1.0\n    test 856 .toStr: 1.0\n    test 857 .repr: 1.0\n    test 858 .toRepr: Test (1.0)\n    test 859 .units: scalar_\n    test 860 .name: Test\n    test 861 ._name: Test\n    test 862 .str: 1.0\n    test 863 .repr: 1.0\n    test 864 delattr: ''\n\n    testing Float(1.0,) (pygeodesy.units, 26.03.12)\n    test 865 .classname: Float\n    test 866 isinstance: True\n    test 867 .name: float\n    test 868 .named: float\n    test 869 .named2: Float 'float'\n    test 870 .str: 1.0\n    test 871 .toStr: 1.0\n    test 872 .std_repr: True\n    test 873 .repr: 1.0\n    test 874 .toRepr: float (1.0)\n    test 875 .units: float\n    test 876 float: Float ('X'): could not convert string to float: X\n    test 877 float: U ('X'): could not convert string to float: X\n    test 878 float: TypeError\n    test 879 float: Float ('X'): could not convert string to float: X  FAILED, KNOWN, expected 'X'\n    test 880 .named: Test\n    test 881 .named2: Float 'Test'\n    test 882 .str: 1.0\n    test 883 .toStr: 1.0\n    test 884 .repr: 1.0\n    test 885 .toRepr: Test (1.0)\n    test 886 .units: float\n    test 887 .name: Test\n    test 888 ._name: Test\n    test 889 .str: 1.0\n    test 890 .repr: 1.0\n    test 891 delattr: ''\n\n    testing Radius(1.0,) (pygeodesy.units, 26.03.12)\n    test 892 .classname: Radius\n    test 893 isinstance: True\n    test 894 .name: radius\n    test 895 .named: radius\n    test 896 .named2: Radius 'radius'\n    test 897 .str: 1.0\n    test 898 .toStr: 1.0\n    test 899 .std_repr: True\n    test 900 .repr: 1.0\n    test 901 .toRepr: radius (1.0)\n    test 902 .units: radius\n    test 903 radius: radius ('X'): could not convert string to float: X\n    test 904 radius: U ('X'): could not convert string to float: X\n    test 905 radius: TypeError\n    test 906 radius: radius ('X'): could not convert string to float: X  FAILED, KNOWN, expected 'X'\n    test 907 .named: Test\n    test 908 .named2: Radius 'Test'\n    test 909 .str: 1.0\n    test 910 .toStr: 1.0\n    test 911 .repr: 1.0\n    test 912 .toRepr: Test (1.0)\n    test 913 .units: radius\n    test 914 .name: Test\n    test 915 ._name: Test\n    test 916 .str: 1.0\n    test 917 .repr: 1.0\n    test 918 delattr: ''\n\n    testing _Lat(1.0,) (pygeodesy.units, 26.03.12)\n    test 919 .classname: _Lat\n    test 920 isinstance: True\n    test 921 .name: _lat\n    test 922 .named: _lat\n    test 923 .named2: _Lat '_lat'\n    test 924 .str: 1.0\n    test 925 .toStr: 1.0\n    test 926 .std_repr: True\n    test 927 .repr: 1.0\n    test 928 .toRepr: _lat (1.0)\n    test 929 .units: _lat\n    test 930 _lat: lat ('X'): strDMS ('X') or suffix ('NS'): could not convert string to float: X\n    test 931 _lat: U ('X'): strDMS ('X') or suffix ('NS'): could not convert string to float: X\n    test 932 _lat: TypeError\n    test 933 _lat: lat ('X'): strDMS ('X') or suffix ('NS'): could not convert string to float: X  FAILED, KNOWN, expected 'X'\n    test 934 .named: Test\n    test 935 .named2: _Lat 'Test'\n    test 936 .str: 1.0\n    test 937 .toStr: 1.0\n    test 938 .repr: 1.0\n    test 939 .toRepr: Test (1.0)\n    test 940 .units: _lat\n    test 941 .name: Test\n    test 942 ._name: Test\n    test 943 .str: 1.0\n    test 944 .repr: 1.0\n    test 945 delattr: ''\n\n    testing _Lon(1.0,) (pygeodesy.units, 26.03.12)\n    test 946 .classname: _Lon\n    test 947 isinstance: True\n    test 948 .name: _lon\n    test 949 .named: _lon\n    test 950 .named2: _Lon '_lon'\n    test 951 .str: 1.0\n    test 952 .toStr: 1.0\n    test 953 .std_repr: True\n    test 954 .repr: 1.0\n    test 955 .toRepr: _lon (1.0)\n    test 956 .units: _lon\n    test 957 _lon: lon ('X'): strDMS ('X') or suffix ('EW'): could not convert string to float: X\n    test 958 _lon: U ('X'): strDMS ('X') or suffix ('EW'): could not convert string to float: X\n    test 959 _lon: TypeError\n    test 960 _lon: lon ('X'): strDMS ('X') or suffix ('EW'): could not convert string to float: X  FAILED, KNOWN, expected 'X'\n    test 961 .named: Test\n    test 962 .named2: _Lon 'Test'\n    test 963 .str: 1.0\n    test 964 .toStr: 1.0\n    test 965 .repr: 1.0\n    test 966 .toRepr: Test (1.0)\n    test 967 .units: _lon\n    test 968 .name: Test\n    test 969 ._name: Test\n    test 970 .str: 1.0\n    test 971 .repr: 1.0\n    test 972 delattr: ''\n\n    testing Band('U',) (pygeodesy.units, 26.03.12)\n    test 973 .classname: Band\n    test 974 isinstance: True\n    test 975 .name: band\n    test 976 .named: band\n    test 977 .named2: Band 'band'\n    test 978 .str: U\n    test 979 .toStr: U\n    test 980 .std_repr: True\n    test 981 .repr: 'U'\n    test 982 .toRepr: band ('U')\n    test 983 .units: band\n    test 984 error: X  FAILED, KNOWN, expected <type 'exceptions.ValueError'>\n    test 985 error: X  FAILED, KNOWN, expected <type 'exceptions.ValueError'>\n    test 986 Error: X  FAILED, KNOWN, expected <type 'exceptions.TypeError'>\n    test 987 .named: Test\n    test 988 .named2: Band 'Test'\n    test 989 .str: U\n    test 990 .toStr: U\n    test 991 .repr: 'U'\n    test 992 .toRepr: Test ('U')\n    test 993 .units: band\n    test 994 .name: Test\n    test 995 ._name: Test\n    test 996 .str: U\n    test 997 .repr: 'U'\n    test 998 delattr: ''\n\n    testing Str('U',) (pygeodesy.units, 26.03.12)\n    test 999 .classname: Str\n    test 1000 isinstance: True\n    test 1001 .name: str\n    test 1002 .named: str\n    test 1003 .named2: Str 'str'\n    test 1004 .str: U\n    test 1005 .toStr: U\n    test 1006 .std_repr: True\n    test 1007 .repr: 'U'\n    test 1008 .toRepr: str ('U')\n    test 1009 .units: str\n    test 1010 error: X  FAILED, KNOWN, expected <type 'exceptions.ValueError'>\n    test 1011 error: X  FAILED, KNOWN, expected <type 'exceptions.ValueError'>\n    test 1012 Error: X  FAILED, KNOWN, expected <type 'exceptions.TypeError'>\n    test 1013 .named: Test\n    test 1014 .named2: Str 'Test'\n    test 1015 .str: U\n    test 1016 .toStr: U\n    test 1017 .repr: 'U'\n    test 1018 .toRepr: Test ('U')\n    test 1019 .units: str\n    test 1020 .name: Test\n    test 1021 ._name: Test\n    test 1022 .str: U\n    test 1023 .repr: 'U'\n    test 1024 delattr: ''\n\n    testing Bool(True,) (pygeodesy.units, 26.03.12)\n    test 1025 .classname: Bool\n    test 1026 isinstance: True\n    test 1027 .name: bool\n    test 1028 .named: bool\n    test 1029 .named2: Bool 'bool'\n    test 1030 .str: True\n    test 1031 .toStr: True\n    test 1032 .std_repr: True\n    test 1033 .repr: True\n    test 1034 .toRepr: bool (True)\n    test 1035 .units: bool\n    test 1036 error: True  FAILED, KNOWN, expected <type 'exceptions.ValueError'>\n    test 1037 error: True  FAILED, KNOWN, expected <type 'exceptions.ValueError'>\n    test 1038 Error: True  FAILED, KNOWN, expected <type 'exceptions.TypeError'>\n    test 1039 .named: Test\n    test 1040 .named2: Bool 'Test'\n    test 1041 .str: True\n    test 1042 .toStr: True\n    test 1043 .repr: True\n    test 1044 .toRepr: Test (True)\n    test 1045 .units: bool\n    test 1046 .name: Test\n    test 1047 ._name: Test\n    test 1048 .str: True\n    test 1049 .repr: True\n    test 1050 delattr: ''\n\n    testing Int(2,) (pygeodesy.units, 26.03.12)\n    test 1051 .classname: Int\n    test 1052 isinstance: True\n    test 1053 .name: int\n    test 1054 .named: int\n    test 1055 .named2: Int 'int'\n    test 1056 .str: 2\n    test 1057 .toStr: 2\n    test 1058 .std_repr: True\n    test 1059 .repr: 2\n    test 1060 .toRepr: int (2)\n    test 1061 .units: int\n    test 1062 int: Int ('X'): invalid literal for int() with base 10: 'X'\n    test 1063 int: U ('X'): invalid literal for int() with base 10: 'X'\n    test 1064 int: TypeError\n    test 1065 int: Int ('X'): invalid literal for int() with base 10: 'X'  FAILED, KNOWN, expected 'X'\n    test 1066 .named: Test\n    test 1067 .named2: Int 'Test'\n    test 1068 .str: 2\n    test 1069 .toStr: 2\n    test 1070 .repr: 2\n    test 1071 .toRepr: Test (2)\n    test 1072 .units: int\n    test 1073 .name: Test\n    test 1074 ._name: Test\n    test 1075 .str: 2\n    test 1076 .repr: 2\n    test 1077 delattr: ''\n\n    testing Int_(2,) (pygeodesy.units, 26.03.12)\n    test 1078 .classname: Int_\n    test 1079 isinstance: True\n    test 1080 .name: int_\n    test 1081 .named: int_\n    test 1082 .named2: Int_ 'int_'\n    test 1083 .str: 2\n    test 1084 .toStr: 2\n    test 1085 .std_repr: True\n    test 1086 .repr: 2\n    test 1087 .toRepr: int_ (2)\n    test 1088 .units: int_\n    test 1089 int_: Int_ ('X'): invalid literal for int() with base 10: 'X'\n    test 1090 int_: U ('X'): invalid literal for int() with base 10: 'X'\n    test 1091 int_: TypeError\n    test 1092 int_: Int_ ('X'): invalid literal for int() with base 10: 'X'  FAILED, KNOWN, expected 'X'\n    test 1093 .named: Test\n    test 1094 .named2: Int_ 'Test'\n    test 1095 .str: 2\n    test 1096 .toStr: 2\n    test 1097 .repr: 2\n    test 1098 .toRepr: Test (2)\n    test 1099 .units: int_\n    test 1100 .name: Test\n    test 1101 ._name: Test\n    test 1102 .str: 2\n    test 1103 .repr: 2\n    test 1104 delattr: ''\n\n    testing Number_(2,) (pygeodesy.units, 26.03.12)\n    test 1105 .classname: Number_\n    test 1106 isinstance: True\n    test 1107 .name: number_\n    test 1108 .named: number_\n    test 1109 .named2: Number_ 'number_'\n    test 1110 .str: 2\n    test 1111 .toStr: 2\n    test 1112 .std_repr: True\n    test 1113 .repr: 2\n    test 1114 .toRepr: number_ (2)\n    test 1115 .units: number_\n    test 1116 number_: number ('X'): invalid literal for int() with base 10: 'X'\n    test 1117 number_: U ('X'): invalid literal for int() with base 10: 'X'\n    test 1118 number_: TypeError\n    test 1119 number_: number ('X'): invalid literal for int() with base 10: 'X'  FAILED, KNOWN, expected 'X'\n    test 1120 .named: Test\n    test 1121 .named2: Number_ 'Test'\n    test 1122 .str: 2\n    test 1123 .toStr: 2\n    test 1124 .repr: 2\n    test 1125 .toRepr: Test (2)\n    test 1126 .units: number_\n    test 1127 .name: Test\n    test 1128 ._name: Test\n    test 1129 .str: 2\n    test 1130 .repr: 2\n    test 1131 delattr: ''\n\n    testing Precision_(2,) (pygeodesy.units, 26.03.12)\n    test 1132 .classname: Precision_\n    test 1133 isinstance: True\n    test 1134 .name: precision_\n    test 1135 .named: precision_\n    test 1136 .named2: Precision_ 'precision_'\n    test 1137 .str: 2\n    test 1138 .toStr: 2\n    test 1139 .std_repr: True\n    test 1140 .repr: 2\n    test 1141 .toRepr: precision_ (2)\n    test 1142 .units: precision_\n    test 1143 precision_: precision ('X'): invalid literal for int() with base 10: 'X'\n    test 1144 precision_: U ('X'): invalid literal for int() with base 10: 'X'\n    test 1145 precision_: TypeError\n    test 1146 precision_: precision ('X'): invalid literal for int() with base 10: 'X'  FAILED, KNOWN, expected 'X'\n    test 1147 .named: Test\n    test 1148 .named2: Precision_ 'Test'\n    test 1149 .str: 2\n    test 1150 .toStr: 2\n    test 1151 .repr: 2\n    test 1152 .toRepr: Test (2)\n    test 1153 .units: precision_\n    test 1154 .name: Test\n    test 1155 ._name: Test\n    test 1156 .str: 2\n    test 1157 .repr: 2\n    test 1158 delattr: ''\n\n    testing Zone(2,) (pygeodesy.units, 26.03.12)\n    test 1159 .classname: Zone\n    test 1160 isinstance: True\n    test 1161 .name: zone\n    test 1162 .named: zone\n    test 1163 .named2: Zone 'zone'\n    test 1164 .str: 2\n    test 1165 .toStr: 2\n    test 1166 .std_repr: True\n    test 1167 .repr: 2\n    test 1168 .toRepr: zone (2)\n    test 1169 .units: zone\n    test 1170 zone: zone ('X'): invalid literal for int() with base 10: 'X'\n    test 1171 zone: U ('X'): invalid literal for int() with base 10: 'X'\n    test 1172 zone: TypeError\n    test 1173 zone: zone ('X'): invalid literal for int() with base 10: 'X'  FAILED, KNOWN, expected 'X'\n    test 1174 .named: Test\n    test 1175 .named2: Zone 'Test'\n    test 1176 .str: 2\n    test 1177 .toStr: 2\n    test 1178 .repr: 2\n    test 1179 .toRepr: Test (2)\n    test 1180 .units: zone\n    test 1181 .name: Test\n    test 1182 ._name: Test\n    test 1183 .str: 2\n    test 1184 .repr: 2\n    test 1185 delattr: ''\n\n    testing Epoch(1901,) (pygeodesy.units, 26.03.12)\n    test 1186 .classname: Epoch\n    test 1187 isinstance: True\n    test 1188 .name: epoch\n    test 1189 .named: epoch\n    test 1190 .named2: Epoch 'epoch'\n    test 1191 .str: 1901\n    test 1192 .toStr: 1901\n    test 1193 .std_repr: False\n    test 1194 .repr: epoch (1901)\n    test 1195 .toRepr: epoch (1901)\n    test 1196 .units: epoch\n    test 1197 epoch: epoch ('X'): could not convert string to float: X\n    test 1198 epoch: U ('X'): could not convert string to float: X\n    test 1199 epoch: TypeError\n    test 1200 epoch: epoch ('X'): could not convert string to float: X  FAILED, KNOWN, expected 'X'\n    test 1201 .named: Test\n    test 1202 .named2: Epoch 'Test'\n    test 1203 .str: 1901\n    test 1204 .toStr: 1901\n    test 1205 .repr: Test (1901)\n    test 1206 .toRepr: Test (1901)\n    test 1207 .units: epoch\n    test 1208 .name: Test\n    test 1209 ._name: Test\n    test 1210 .str: 1901\n    test 1211 .repr: Test (1901)\n    test 1212 delattr: ''\n\n    testing(pygeodesy.units, 26.03.12)\n\n    test 1213 Azimuth: 1.0\n\n    test 1214 Bearing: 1.0\n    test 1215 Bearing_: 0.01745\n\n    test 1216 Lamd: 6.30\n    test 1217 Phid: 6.30\n\n    test 1218 FIx: 1.0  FAILED, KNOWN, expected 1\n    test 1219 FIx: 1.5\n\n    test 1220 Dash: -\n    test 1221 Dash: -\n\n    test 1222 Dash: '-'\n    test 1223 Dash: Dash ('-')\n\n    test 1224 Join_d: c-a-l-l\n    test 1225 Join_d: c-a-l-l\n\n    test 1226 Join_d: 'c-a-l-l'\n    test 1227 Join_d: Join_d ('c-a-l-l')\n\n    52 of 1227 testUnits.py tests (4.2%) FAILED, ALL KNOWN (pygeodesy 26.3.26 Python 2.7.18 64bit arm64_x86_64 geographiclib 1.50 numpy 1.16.6 scipy 1.2.2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 -W  default) 15.201 ms\nrunning /Library/Framewo....ython -W default ~/PyGeodesy/test/testUps.py\n\n    testing testUps.py 23.03.27 (module pygeodesy.ups 25.04.14)\n    test 1 Ups: 00 N 448251.0 5411932.0001\n    test 2 Ups: 00 N 448252 5411933\n    test 3 Ups: 00 N 448251.795 5411932.678\n    test 4 Ups: 00Z N 448251.8 5411932.7 n/a n/a\n    test 5 Ups2: [Z:00, H:N, E:448252, N:5411933]\n    test 6 UtmUps.toLatLon: 43.610051°N, 004.46308°E\n    test 7 UtmUps.toLatLon: 43°36′36.18″N, 004°27′47.09″E\n    test 8 UtmUps.toMgrs: 60T UP 60176 38249\n    test 9 toUps: lat ('43.684097\\xc2\\xb0'): inside UTM range [-79.5, 83.5]\n    test 10 UtmUps.toUtm: 60 N 360177 4838249\n    test 11 toUpsID1: 00 N 1530125.78 2426773.6 -132.24798917° 0.99647445\n    test 12 toUtmUps8ID2: 38 N 467367.68 8100752.13 -57.37878422′ 0.99961302  FAILED, KNOWN, expected 38 N 3320416.75 632668.43 +44.0° 1.01619505\n    test 13 toUtmUps8ID2: 00 N 3320416.75 632668.43 +44.0° 1.01619505\n    test 14 toUpsID3: 00 S 2222979.47 1797474.9 -132.24786194° 0.99455723\n    test 15 Ups.toLatLonID4: 84°17′14.04″N, 132°14′52.76″W\n    test 16 Ups.toLatLonID4: 84.287234°N, 132.247989°W\n    test 17 Ups.toLatLonID5: 73°00′00.0″N, 044°00′00.0″E\n    test 18 Ups.toLatLonID5: 73.0°N, 044.0°E\n    test 19 Ups.toLatLonID6: 87°17′14.4″S, 132°14′52.3″E\n    test 20 Ups.toLatLonID6: 87.287333°S, 132.247861°E\n    test 21 latlon: 84.0°N, 084.0°E\n    test 22 toUps: 00 N 2663075 1930308\n    test 23 toUps: 00 N 2663075.299562 1930307.977716 +84.0° 0.99673\n    test 24 toUps(None): (0, 'N', 2663075.299562, 1930307.977716, 'Z', ...)\n    test 25 .scale0: 0.994000\n    test 26 rescale0: 0.997261\n    test 27 NGA-10.2-1: 00 N 2000000.0 2000000.0 +0.0″ 0.994\n    test 28 NGA-10.2-2: 00 N 1998062.320046 2111009.610243 -179.0° 0.994076\n    test 29 NGA-10.2-3: 00 N 1777930.731071 2000000.0 -90.0° 0.994303\n    test 30 NGA-10.2-4: 00 N 1994185.827038 1666906.254073 -1.0° 0.994682\n    test 31 NGA-10.2-5: 00 N 2000000.0 1555731.570643 +0.0″ 0.995212\n    test 32 NGA-10.2-6: 00 N 2009694.068153 1444627.207468 +1.0° 0.995895\n    test 33 NGA-10.2-7: 00 N 2666626.157825 1988363.997132 +89.0° 0.996730\n    test 34 NGA-10.2-8: 46 N 459200.256323 9217519.441609 -2.97767886° 0.997718\n    test 35 NGA-10.2-9: 46 N 468930.934996 9105366.008486 -1.98055172° 0.998860\n    test 36 NGA-10.2-10: 60 N 534921.971582 8993806.415149 +1.97539632° 1.000156\n    test 37 NGA-10.2-11: 01 N 441867.784867 8883084.955948 -2.95450468° 1.001608\n    test 38 NGA-10.2-12: 31 N 243900.35203 4432069.056899 -1.92940969° 1.0004075\n    test 39 NGA-10.2-13: 01 N 277707.830749 331796.291679 -6.28291137′ 1.00021172\n    test 40 NGA-10.2-14: 16 N 166223.907623 221366.16603 -6.28776606′ 1.00097936\n    test 41 NGA-10.2-15: 30 N 722561.736479 110597.972524 +2.09515682′ 1.00021322\n    test 42 NGA-10.2-16: 31 N 166021.443081 0.0 +0.0″ 1.00098106\n    test 43 NGA-10.2-17: 31 S 277438.263521 9889402.027476 +2.09515682′ 1.00021322\n    test 44 NGA-10.2-18: 46 S 166223.907623 9778633.83397 +6.28776606′ 1.00097936\n    test 45 NGA-10.2-19: 60 S 722292.169251 9668203.708321 -6.28291137′ 1.00021172\n    test 46 NGA-10.2-20: 01 S 166831.065275 9557263.747314 +12.56782777′ 1.00097428\n    test 47 NGA-10.3-1: -64.9164123332 -135.0\n    test 48 NGA-10.3-2: -70.0552944014 -153.4349488229\n    test 49 NGA-10.3-3: -72.1263610163 180.0  FAILED, KNOWN, expected -72.1263610163 -180.0\n    test 50 NGA-10.3-4: -70.0552944014 153.4349488229\n    test 51 NGA-10.3-5: -64.9164123332 135.0\n    test 52 NGA-10.3-6: -70.0552944014 -116.5650511771\n    test 53 NGA-10.3-7: -77.3120791908 -135.0\n    test 54 NGA-10.3-8: -81.0106632645 180.0\n    test 55 NGA-10.3-9: -77.3120791908 135.0\n    test 56 NGA-10.3-10: -70.0552944014 116.5650511771\n    test 57 NGA-10.3-11: -72.1263610163 -90.0\n    test 58 NGA-10.3-12: -81.0106632645 -90.0\n    test 59 NGA-10.3-13: -90.0 0.0\n    test 60 NGA-10.3-14: -81.0106632645 90.0\n    test 61 NGA-10.3-15: -72.1263610163 90.0\n    test 62 NGA-10.3-16: -70.0552944014 -63.4349488229\n    test 63 NGA-10.3-17: -77.3120791908 -45.0\n    test 64 NGA-10.3-18: -81.0106632645 0.0\n    test 65 NGA-10.3-19: -77.3120791908 45.0\n    test 66 NGA-10.3-20: -70.0552944014 63.4349488229\n    test 67 NGA-10.3-21: -64.9164123332 -45.0\n    test 68 NGA-10.3-22: -70.0552944014 -26.5650511771\n    test 69 NGA-10.3-23: -72.1263610163 0.0\n    test 70 NGA-10.3-24: -70.0552944014 26.5650511771\n    test 71 NGA-10.3-25: -64.9164123332 45.0\n    test 72 toUps: 00 N 2000000 1288738\n    test 73 toUtm: 02 N 611555 10703765\n    test 74 toUtm: [Z:00Z, H:N, E:2000000, N:2000000]\n\n    2 of 74 testUps.py tests (2.7%) FAILED, ALL KNOWN (pygeodesy 26.3.26 Python 2.7.18 64bit arm64_x86_64 geographiclib 1.50 numpy 1.16.6 scipy 1.2.2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 -W  default) 23.053 ms\nrunning /Library/Framewo....ython -W default ~/PyGeodesy/test/testUtily.py\n\n    testing testUtily.py 24.12.24 (module pygeodesy.utily 26.03.20)\n\n    test 1 degrees90(PI_2): 90.0\n    test 2 degrees90(PI): 0.0\n    test 3 degrees90(PI2): 0.0\n    test 4 degrees90(-PI_2): -90.0\n    test 5 degrees90(-PI): 0.0\n    test 6 degrees90(-PI2): 0.0\n\n    test 7 degrees180(PI_2): 90.0\n    test 8 degrees180(PI): 180.0\n    test 9 degrees180(PI2): 0.0\n    test 10 degrees180(-PI_2): -90.0\n    test 11 degrees180(-PI): -180.0\n    test 12 degrees180(-PI2): 0.0\n\n    test 13 degrees360(PI_2): 90.0\n    test 14 degrees360(PI): 180.0\n    test 15 degrees360(PI2): 0.0\n    test 16 degrees360(-PI_2): 270.0\n    test 17 degrees360(-PI): 180.0\n    test 18 degrees360(-PI2): 0.0\n\n    test 19 degrees2grades(90): 100.0\n    test 20 degrees2grades(180): 200.0\n    test 21 degrees2grades(360): 400.0\n    test 22 degrees2grades(-90): -100.0\n    test 23 degrees2grades(-180): -200.0\n    test 24 degrees2grades(-360): -400.0\n\n    test 25 grades400(PI_2): 100.0\n    test 26 grades400(PI): 200.0\n    test 27 grades400(PI2): 0.0\n    test 28 grades400(-PI_2): 300.0\n    test 29 grades400(-PI): 200.0\n    test 30 grades400(-PI2): 0.0\n\n    test 31 grades2degrees(100): 90.0\n    test 32 grades2degrees(200): 180.0\n    test 33 grades2degrees(400): 360.0\n    test 34 grades2degrees(-100): -90.0\n    test 35 grades2degrees(-200): -180.0\n    test 36 grades2degrees(-400): -360.0\n\n    test 37 grades2radians(100): 1.57079632679\n    test 38 grades2radians(200): 3.14159265359\n    test 39 grades2radians(400): 6.28318530718\n    test 40 grades2radians(-100): -1.57079632679\n    test 41 grades2radians(-200): -3.14159265359\n    test 42 grades2radians(-400): -6.28318530718\n\n    test 43 radiansPI_2(90): 1.57079632679\n    test 44 radiansPI_2(180): 0.0\n    test 45 radiansPI_2(360): 0.0\n    test 46 radiansPI_2(-90): -1.57079632679\n    test 47 radiansPI_2(-180): 0.0\n    test 48 radiansPI_2(-360): 0.0\n\n    test 49 radiansPI(90): 1.57079632679\n    test 50 radiansPI(180): 3.14159265359\n    test 51 radiansPI(360): 0.0\n    test 52 radiansPI(-90): -1.57079632679\n    test 53 radiansPI(-180): -3.14159265359\n    test 54 radiansPI(-360): 0.0\n\n    test 55 radiansPI2(90): 1.57079632679\n    test 56 radiansPI2(180): 3.14159265359\n    test 57 radiansPI2(360): 0.0\n    test 58 radiansPI2(-90): 4.71238898038\n    test 59 radiansPI2(-180): 3.14159265359\n    test 60 radiansPI2(-360): 0.0\n\n    test 61 wrap90(90): 90.0\n    test 62 wrap90(180): 0.0\n    test 63 wrap90(360): 0.0\n    test 64 wrap90(-90): -90.0\n    test 65 wrap90(-180): 0.0\n    test 66 wrap90(-360): 0.0\n\n    test 67 wrap180(90): 90.0\n    test 68 wrap180(180): 180.0\n    test 69 wrap180(360): 0.0\n    test 70 wrap180(-90): -90.0\n    test 71 wrap180(-180): -180.0\n    test 72 wrap180(-360): 0.0\n\n    test 73 wrap360(90): 90.0\n    test 74 wrap360(180): 180.0\n    test 75 wrap360(360): 0.0\n    test 76 wrap360(-90): 270.0\n    test 77 wrap360(-180): 180.0\n    test 78 wrap360(-360): 0.0\n\n    test 79 wrapPI_2(PI_2): 1.57079632679\n    test 80 wrapPI_2(PI): 0.0\n    test 81 wrapPI_2(PI2): 0.0\n    test 82 wrapPI_2(-PI_2): -1.57079632679\n    test 83 wrapPI_2(-PI): 0.0\n    test 84 wrapPI_2(-PI2): 0.0\n\n    test 85 wrapPI(PI_2): 1.57079632679\n    test 86 wrapPI(PI): 3.14159265359\n    test 87 wrapPI(PI2): 0.0\n    test 88 wrapPI(-PI_2): -1.57079632679\n    test 89 wrapPI(-PI): -3.14159265359\n    test 90 wrapPI(-PI2): 0.0\n\n    test 91 wrapPI2(PI_2): 1.57079632679\n    test 92 wrapPI2(PI): 3.14159265359\n    test 93 wrapPI2(PI2): 0.0\n    test 94 wrapPI2(-PI_2): 4.71238898038\n    test 95 wrapPI2(-PI): 3.14159265359\n    test 96 wrapPI2(-PI2): 0.0\n\n    test 97 unroll180: -160.0, -250.0\n    test 98 unroll180: 200.0, 110.0\n\n    test 99 unroll180: -160.0, -250.0\n    test 100 unroll180: 920.0, 830.0\n\n    test 101 unroll180: -160.0, -270.0\n    test 102 unroll180: 200.0, 90.0\n\n    test 103 unroll180: -160.0, -990.0\n    test 104 unroll180: 920.0, 90.0\n\n    test 105 atan1: 0.0\n    test 106 atan1: 0.0\n\n    test 107 cot  : -0.354707939906\n    test 108 cot_ : -0.354707939906\n\n    test 109 cotd : -0.354707939906\n    test 110 cotd_: -0.354707939906\n\n    test 111 sincos2: 3.88578058619e-16  FAILED, KNOWN, expected 1.7763568394e-15\n    test 112 sincos2d: 9.99200722163e-16  FAILED, KNOWN, expected 1.7763568394e-15\n\n    test 113 Matan2d : 2.84217094304e-14  FAILED, KNOWN, expected 1.7763568394e-15\n    test 114 Msincosd: 9.15933995316e-16  FAILED, KNOWN, expected 1.7763568394e-15\n    test 115 sincos*d: 2.22044604925e-16  FAILED, KNOWN, expected 1.7763568394e-15\n\n    test 116 tan  : -2.819220794060\n    test 117 tan_ : -2.819220794060\n\n    test 118 tand : -2.819220794060\n    test 119 tand_: -2.819220794060\n\n    test 120 iFt2m: 187441\n    test 121 iFt2m: 757050\n    test 122 sFt2m: 187441\n    test 123 sFt2m: 757050\n\n    test 124 m2iFt: 614963.91\n    test 125 m2iFt: 2483759.84\n    test 126 m2sFt: 614962.68\n    test 127 m2sFt: 2483754.88\n\n    test 128 acre2ha: 0.404686\n    test 129 acre2m2: 4046.856422\n    test 130 chain2m: 20.116800\n    test 131 fathom2m: 1.828800\n    test 132 furlong2m: 201.168000\n    test 133 ha2acre: 2.471054\n    test 134 toise2m: 1.949044\n    test 135 yard2m: 0.914400\n    test 136 m2chain: 0.049710\n    test 137 m2fathom: 0.546807\n    test 138 m2furlong: 0.004971\n    test 139 m2ha: 0.000100\n    test 140 m2toise: 0.513072\n    test 141 m2yard: 1.093613\n\n    test 142 degrees2m: 10007557.1761\n    test 143 degrees2m: 8666798.7443\n    test 144 m2degrees: 90.0\n\n    test 145 degrees2m: 20015114.3522\n    test 146 degrees2m: 19987684.3336\n    test 147 m2degrees: 180.0\n\n    test 148 m2degrees2m(45, lat=0): 45.00\n    test 149 m2degrees2m(45, lat=7): 45.00\n    test 150 m2degrees2m(45, lat=14): 45.00\n    test 151 m2degrees2m(45, lat=21): 45.00\n    test 152 m2degrees2m(45, lat=28): 45.00\n    test 153 m2degrees2m(45, lat=35): 45.00\n    test 154 m2degrees2m(45, lat=42): 45.00\n    test 155 m2degrees2m(45, lat=49): 45.00\n    test 156 m2degrees2m(45, lat=56): 45.00\n    test 157 m2degrees2m(45, lat=63): 45.00\n    test 158 m2degrees2m(45, lat=70): 45.00\n    test 159 m2degrees2m(45, lat=77): 45.00\n    test 160 m2degrees2m(45, lat=84): 45.00\n\n    test 161 isPoints2: False\n\n    test 162 tan_2_semi: PI[1] edge (3.141592): semi-circular\n    test 163 sincostan3(+0.0000): (0.0, 1.0, 0.0)\n    test 164 sincostan3(-0.0000): (-0.0, 1.0, -0.0)  FAILED, KNOWN, expected (0.0, 1.0, 0.0)\n    test 165 sincostan3(+1.5708): (1.0, 0.0, inf)\n    test 166 sincostan3(-1.5708): (-1.0, 0.0, -inf)\n    test 167 sincostan3(+3.1416): (0.0, -1.0, -0.0)\n    test 168 sincostan3(-3.1416): (-0.0, -1.0, 0.0)\n    test 169 sincostan3(+4.7124): (-1.0, 0.0, -inf)  FAILED, KNOWN, expected (-1.0, -0.0, inf)\n    test 170 sincostan3(-1.5708): (-1.0, 0.0, -inf)\n    test 171 sincostan3(+6.2832): (0.0, 1.0, 0.0)  FAILED, KNOWN, expected (-0.0, 1.0, -0.0)\n    test 172 sincostan3(-6.2832): (-0.0, 1.0, -0.0)  FAILED, KNOWN, expected (0.0, 1.0, 0.0)\n\n    9 of 172 testUtily.py tests (5.2%) FAILED, ALL KNOWN (pygeodesy 26.3.26 Python 2.7.18 64bit arm64_x86_64 geographiclib 1.50 numpy 1.16.6 scipy 1.2.2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 -W  default) 9.890 ms\nrunning /Library/Framewo....ython -W default ~/PyGeodesy/test/testUtm.py\n\n    testing testUtm.py 25.04.25 (module pygeodesy.utm 24.11.26)\n    test 1 Utm1: 03 N 448251.0 5411932.0001\n    test 2 Utm2: 31 N 448252 5411933\n    test 3 Utm2: 31 N 448251.795 5411932.678\n    test 4 Utm2: 31 N 448251.8 5411932.7 n/a n/a\n    test 5 Utm.toLatLon1: 48.8582°N, 002.2945°E\n    test 6 Utm.toLatLon1: 48°51′29.52″N, 002°17′40.2″E\n    test 7 toUtm1: 31 N 448252 5411933\n    test 8 toUtm1: 31 N 448251.795 5411932.678\n    test 9 toUtm2: [Z:31U, H:N, E:448252, N:5411933, C:-31.87873265′, S:0.9996329]\n    test 10 toUtm4: 48 N 377302 1483035\n    test 11 toUtm5: 48P N 377302.354183 1483034.777084 -15.77480856′ 0.99978623\n    test 12 toUtm6: 13 S 622698 8516965\n    test 13 toUtm7: 13L S 622697.645817 8516965.222916 -15.77480856′ 0.99978623\n    test 14 toEtm: 13 S 622698 8516965\n    test 15 toMgrs1: 13L FF 22697 16965\n    test 16 toMgrs2: 31U DQ 48251 11932\n    test 17 toUtm14: 14 S -27436 8512042\n    test 18 Utm8: 18 N 516620 4574500\n    test 19 Utm8.toLatLon: 41.321801°N, 074.801413°W\n    test 20 Utm8.toLatLon: 41.321801N, 074.801413W\n    test 21 toUtm(61.44°N, 025.4°E): 35V N 414668 6812845\n    test 22 toUtm(47.04°S, 073.48°W): 18G S 615472 4789270\n    test 23 toUtm(40.4°N, 074.7°W): 18T N 525458 4472198\n    test 24 toUtm(44.5°N, 088.5°W): 16T N 380753 4928503\n    test 25 toUtm(50.8694°N, 115.6508°W): 11U N 594937 5636169\n    test 26 toUtm(00.0°N, 000.0°E): 31N N 166021 0\n    test 27 toUtm(00.13°N, 000.2324°W): 30N N 808084 14386\n    test 28 toUtm(45.6456°S, 023.3545°E): 34G S 683474 4942631\n    test 29 toUtm(12.765°S, 033.8765°W): 25L S 404859 8588691\n    test 30 toUtm(80.5434°S, 170.654°W): lat ('-80.5434\\xc2\\xb0'): outside UTM range [-80, 84)\n    test 31 toUtm(90.0°N, 177.0°E): lat ('90.0\\xc2\\xb0'): outside UTM range [-80, 84)\n    test 32 toUtm(90.0°S, 177.0°W): lat ('-90.0\\xc2\\xb0'): outside UTM range [-80, 84)\n    test 33 toUtm(90.0°N, 003.0°E): lat ('90.0\\xc2\\xb0'): outside UTM range [-80, 84)\n    test 34 toUtm(23.4578°N, 135.4545°W): 08Q N 453580 2594273\n    test 35 toUtm(77.345°N, 156.9876°E): 57X N 450794 8586116\n    test 36 toUtm(89.3454°S, 048.9306°W): lat ('-89.3454\\xc2\\xb0'): outside UTM range [-80, 84)\n    test 37 toUtm(60.0°N, 001.0°E): 31V N 388456 6653097\n    test 38 toUtm(60.0°N, 003.0°E): 32V N 165640 6666594\n    test 39 toUtm(60.0°N, 006.0°E): 32V N 332705 6655205\n    test 40 toUtm(60.0°N, 009.0°E): 32V N 500000 6651411\n    test 41 toUtm(60.0°N, 012.0°E): 33V N 332705 6655205\n    test 42 toUtm(76.0°N, 001.0°E): 31X N 446000 8436100\n    test 43 toUtm(76.0°N, 007.0°E): 31X N 607943 8438843\n    test 44 toUtm(76.0°N, 013.0°E): 33X N 446000 8436100\n    test 45 toUtm(76.0°N, 019.0°E): 33X N 607943 8438843\n    test 46 toUtm(76.0°N, 025.0°E): 35X N 446000 8436100\n    test 47 toUtm(76.0°N, 031.0°E): 35X N 607943 8438843\n    test 48 toUtm(76.0°N, 037.0°E): 37X N 446000 8436100\n    test 49 toUtm(50.77535°N, 006.08389°E): 32U N 294409 5628898\n    test 50 toUtm(40.71435°N, 074.00597°W): 18T N 583960 4507523\n    test 51 toUtm(41.28646°S, 174.77624°E): 60G S 313784 5427057\n    test 52 toUtm(33.92487°S, 018.42406°E): 34H S 261878 6243186\n    test 53 toUtm(32.89018°S, 068.84405°W): 19H S 514586 6360877\n    test 54 toUtm(64.83778°N, 147.71639°W): 06W N 466013 7190568\n    test 55 toUtm(56.7968°N, 005.00601°W): 30V N 377486 6296562\n    test 56 toUtm(84.0°N, 005.00601°W): lat ('84.0\\xc2\\xb0'): outside UTM range [-80, 84)\n    test 57 toUtm('Mt Assiniboine'): [Z:11U, H:N, E:594934, N:5636174]\n    test 58 Utm9: 55 S 321441 5810117\n    test 59 Utm9.toLatLon(eps=2.2204e-12): -37.83891644, 144.97077387\n    test 60 Utm9.toLatLon(eps=2.2204e-13): -37.83891644, 144.97077387\n    test 61 Utm9.toLatLon(eps=2.2204e-14): -37.83891644, 144.97077387\n    test 62 Utm9.toLatLon(eps=2.2204e-15): -37.83891644, 144.97077387\n    test 63 Utm9.toLatLon(eps=2.2204e-16): -37.83891644, 144.97077387\n    test 64 Utm9.toLatLon(eps=2.2204e-17): -37.83891644, 144.97077387\n    test 65 Utm9.toLatLon(eps=2.2204e-18): -37.83891644, 144.97077387\n    test 66 Utm9.toLatLon(eps=2.2204e-19): -37.83891644, 144.97077387\n    test 67 Utm9.toLatLon(eps=2.2204e-20): -37.83891644, 144.97077387\n    test 68 Utm10: 31 N 400000 5000000\n    test 69 Utm10.toLatLon(eps=2.2204e-12): 45.14639288, 1.72796704\n    test 70 Utm10.toLatLon(eps=2.2204e-13): 45.14639288, 1.72796704\n    test 71 Utm10.toLatLon(eps=2.2204e-14): 45.14639288, 1.72796704\n    test 72 Utm10.toLatLon(eps=2.2204e-15): 45.14639288, 1.72796704\n    test 73 Utm10.toLatLon(eps=2.2204e-16): 45.14639288, 1.72796704\n    test 74 Utm10.toLatLon(eps=2.2204e-17): 45.14639288, 1.72796704\n    test 75 Utm10.toLatLon(eps=2.2204e-18): 45.14639288, 1.72796704\n    test 76 Utm10.toLatLon(eps=2.2204e-19): 45.14639288, 1.72796704\n    test 77 Utm10.toLatLon(eps=2.2204e-20): 45.14639288, 1.72796704\n    test 78 Utm111: 37 N 1399093 8314607\n    test 79 Utm111.toLatLon(eps=2.2204e-12): 70.54298527, 40.28205459\n    test 80 Utm111.toLatLon(eps=2.2204e-13): 70.54298527, 40.28205459\n    test 81 Utm111.toLatLon(eps=2.2204e-14): 70.54298527, 40.28205459\n    test 82 Utm111.toLatLon(eps=2.2204e-15): 70.54298527, 40.28205459\n    test 83 Utm111.toLatLon(eps=2.2204e-16): 70.54298527, 40.28205459\n    test 84 Utm111.toLatLon(eps=2.2204e-17): 70.54298527, 40.28205459\n    test 85 Utm111.toLatLon(eps=2.2204e-18): 70.54298527, 40.28205459\n    test 86 Utm111.toLatLon(eps=2.2204e-19): 70.54298527, 40.28205459\n    test 87 Utm111.toLatLon(eps=2.2204e-20): 70.54298527, 40.28205459\n    test 88 CV#86: [Z:01, H:N, E:100000, N:0, C:n/a, S:n/a]\n    test 89 CV#86: 00.0°N, 179.407673°E\n    test 90 CV#86: [Z:60, H:N, E:767993, N:0, C:+0.0″, S:1.000489]  FAILED, KNOWN, expected [Z:01, H:N, E:100000, N:0, ...]\n    test 91 #63: 32 N 280000 5653000\n    test 92 toMgrs: 32U KB 80000 53000\n    test 93 toLatLon: (50.986484, 5.865326, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), -2.436605, 1.000194)\n    test 94 band: U\n    test 95 band: band ('?'): not 'C', 'D', 'E', 'F', 'G', 'H', 'J', 'K', 'L', 'M', 'N', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W' or 'X'\n    test 96 datum: Datum(name='_Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.Identity)  FAILED, KNOWN, expected same\n    test 97 repr: [Z:32U, H:N, E:280000, N:5653000]\n    test 98 E.N.: (280000.0, 5653000.0)\n\n    test 99 latFootPoint: 59.97989371\n    test 100 latFootPoint: -59.97989371\n    test 101 latFootPoint: 59.97988614\n    test 102 latFootPoint: -59.97988614\n    test 103 phiFootPoint: 1.04407841\n    test 104 phiFootPoint: -1.04407841\n\n    2 of 104 testUtm.py tests (1.9%) FAILED, ALL KNOWN (pygeodesy 26.3.26 Python 2.7.18 64bit arm64_x86_64 geographiclib 1.50 numpy 1.16.6 scipy 1.2.2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 -W  default) 51.123 ms\nrunning /Library/Framewo....ython -W default ~/PyGeodesy/test/testUtmTMcoords.py\n\n    testing testUtmTMcoords.py 24.03.22 (module pygeodesy.utm 24.11.26)\n    test 1 line 1 toUtm8.easting: 1548706.791619\n    test 2 line 1 toUtm8.northing: 8451449.198772\n    test 3 line 1 toUtm8.gamma: 43.922790\n    test 4 line 1 toUtm8.scale: 1.029060\n    test 5 line 1 toUtm8.lat: 70.579277\n    test 6 line 1 toUtm8.lon: 45.599420\n    test 7 line 2 toUtm8.easting: 2624150.740929\n    test 8 line 2 toUtm8.northing: 1204434.041605\n    test 9 line 2 toUtm8.gamma: 4.292619\n    test 10 line 2 toUtm8.scale: 1.086051\n    test 11 line 2 toUtm8.lat: 10.018894\n    test 12 line 2 toUtm8.lon: 23.313324\n    test 13 line 3 toUtm8.easting: 9855841.232935\n    test 14 line 3 toUtm8.northing: 6145496.115157  FAILED, KNOWN, expected 6145496.115155\n    test 15 line 3 toUtm8.gamma: 53.348315\n    test 16 line 3 toUtm8.scale: 2.445098\n    test 17 line 3 toUtm8.lat: 19.479896\n    test 18 line 3 toUtm8.lon: 75.662049\n    test 19 line 4 toUtm8.easting: 3206390.691996\n    test 20 line 4 toUtm8.northing: 2650745.400406\n    test 21 line 4 toUtm8.gamma: 11.666950\n    test 22 line 4 toUtm8.scale: 1.129359\n    test 23 line 4 toUtm8.lat: 21.072465\n    test 24 line 4 toUtm8.lon: 29.828684\n    test 25 line 5 toUtm8.easting: 4328154.083501\n    test 26 line 5 toUtm8.northing: 749647.623690\n    test 27 line 5 toUtm8.gamma: 4.024317\n    test 28 line 5 toUtm8.scale: 1.240829\n    test 29 line 5 toUtm8.lat: 5.458957\n    test 30 line 5 toUtm8.lon: 36.385237\n    test 31 line 6 toUtm8.easting: 847598.266514\n    test 32 line 6 toUtm8.northing: 7947180.962440\n    test 33 line 6 toUtm8.gamma: 21.639091\n    test 34 line 6 toUtm8.scale: 1.008399\n    test 35 line 6 toUtm8.lat: 70.175454\n    test 36 line 6 toUtm8.lon: 22.865350\n    test 37 line 7 toUtm8.easting: 2727657.337974\n    test 38 line 7 toUtm8.northing: 8283916.696410\n    test 39 line 7 toUtm8.gamma: 55.690909\n    test 40 line 7 toUtm8.scale: 1.091942\n    test 41 line 7 toUtm8.lat: 61.965605\n    test 42 line 7 toUtm8.lon: 58.931371\n    test 43 line 8 toUtm8.easting: 2331001.751890\n    test 44 line 8 toUtm8.northing: 1313608.224751\n    test 45 line 8 toUtm8.gamma: 4.214690\n    test 46 line 8 toUtm8.scale: 1.067599\n    test 47 line 8 toUtm8.lat: 11.116050\n    test 48 line 8 toUtm8.lon: 20.901069\n    test 49 line 9 toUtm8.easting: 6035557.239480\n    test 50 line 9 toUtm8.northing: 5791770.791879\n    test 51 line 9 toUtm8.gamma: 43.698170\n    test 52 line 9 toUtm8.scale: 1.481260\n    test 53 line 9 toUtm8.lat: 32.210543\n    test 54 line 9 toUtm8.lon: 60.705849\n    test 55 line 10 toUtm8.easting: 1064553.125852\n    test 56 line 10 toUtm8.northing: 9417273.737208\n    test 57 line 10 toUtm8.gamma: 61.100380\n    test 58 line 10 toUtm8.scale: 1.013475\n    test 59 line 10 toUtm8.lat: 79.187451\n    test 60 line 10 toUtm8.lon: 61.532382\n    test 61 line 11 toUtm8.easting: 1400137.116164\n    test 62 line 11 toUtm8.northing: 9616907.017686\n    test 63 line 11 toUtm8.gamma: 74.527087\n    test 64 line 11 toUtm8.scale: 1.023640\n    test 65 line 11 toUtm8.lat: 77.103759\n    test 66 line 11 toUtm8.lon: 74.899105\n\n    test skipped (1): line 12 toUtm8.'21.889514024862 80.019885892785 9860691.0166261508479 7433039.1433282732643 65.357693372142649007 2.43897318400097845293'\n\n    test skipped (2): line 13 toUtm8.'30.53629567699 82.186177919416 8076501.8336948099169 8561614.1747819103782 75.073393190238557702 1.90620203595203984732'\n    test 67 line 14 toUtm8.easting: 3335099.866623\n    test 68 line 14 toUtm8.northing: 6740519.084015\n    test 69 line 14 toUtm8.gamma: 40.611821\n    test 70 line 14 toUtm8.scale: 1.139021\n    test 71 line 14 toUtm8.lat: 49.990485\n    test 72 line 14 toUtm8.lon: 48.203179\n\n    test skipped (3): line 15 toUtm8.'14.486311853451 80.905136710227 12051574.9284996192629 6587213.0519512810474 59.033236797073779959 3.3574686117030164354'\n    test 73 line 16 toUtm8.easting: 5387578.735298\n    test 74 line 16 toUtm8.northing: 4111216.907168\n    test 75 line 16 toUtm8.gamma: 27.574337\n    test 76 line 16 toUtm8.scale: 1.379357\n    test 77 line 16 toUtm8.lat: 25.936824\n    test 78 line 16 toUtm8.lon: 49.913598\n    test 79 line 17 toUtm8.easting: 2622214.380233\n    test 80 line 17 toUtm8.northing: 8678923.984567\n    test 81 line 17 toUtm8.gamma: 61.697275\n    test 82 line 17 toUtm8.scale: 1.084810\n    test 83 line 17 toUtm8.lat: 64.402196\n    test 84 line 17 toUtm8.lon: 64.091395\n\n    test skipped (4): line 18 toUtm8.'48.451353594584 84.856197560189 5068474.169632778036 9492066.9937094951003 83.156739839119105102 1.3299901985118008373'\n    test 85 line 19 toUtm8.easting: 738062.047779\n    test 86 line 19 toUtm8.northing: 3031007.074116\n    test 87 line 19 toUtm8.gamma: 3.416802\n    test 88 line 19 toUtm8.scale: 1.006332\n    test 89 line 19 toUtm8.lat: 27.203895\n    test 90 line 19 toUtm8.lon: 7.440229\n    test 91 line 20 toUtm8.easting: 1944413.834565\n    test 92 line 20 toUtm8.northing: 9613299.224493\n    test 93 line 20 toUtm8.gamma: 78.462831\n    test 94 line 20 toUtm8.scale: 1.046134\n    test 95 line 20 toUtm8.lat: 72.509000\n    test 96 line 20 toUtm8.lon: 78.982283\n    test 97 line 21 toUtm8.easting: 2114521.418406\n    test 98 line 21 toUtm8.northing: 4954077.440098\n    test 99 line 21 toUtm8.gamma: 17.571878\n    test 100 line 21 toUtm8.scale: 1.055093\n    test 101 line 21 toUtm8.lat: 41.824954\n    test 102 line 21 toUtm8.lon: 25.392744\n    test 103 line 22 toUtm8.easting: 620365.905090\n    test 104 line 22 toUtm8.northing: 4755542.026562\n    test 105 line 22 toUtm8.gamma: 5.152022\n    test 106 line 22 toUtm8.scale: 1.004338\n    test 107 line 22 toUtm8.lat: 42.701376\n    test 108 line 22 toUtm8.lon: 7.572738\n    test 109 line 23 toUtm8.easting: 263004.770989\n    test 110 line 23 toUtm8.northing: 4493669.762451\n    test 111 line 23 toUtm8.gamma: 2.020523\n    test 112 line 23 toUtm8.scale: 1.000452\n    test 113 line 23 toUtm8.lat: 40.552052\n    test 114 line 23 toUtm8.lon: 3.106056\n    test 115 line 24 toUtm8.easting: 3217221.739462\n    test 116 line 24 toUtm8.northing: 437776.119161\n    test 117 line 24 toUtm8.gamma: 1.848169\n    test 118 line 24 toUtm8.scale: 1.130558\n    test 119 line 24 toUtm8.lat: 3.501242\n    test 120 line 24 toUtm8.lon: 27.806507\n\n    test skipped (5): line 25 toUtm8.'10.148714782203 85.373767569431 14661142.4449607145297 7476100.8241849819567 68.376669038799719822 4.89664968310721668858'\n    test 121 line 26 toUtm8.easting: 967777.158554\n    test 122 line 26 toUtm8.northing: 6615684.266592\n    test 123 line 26 toUtm8.gamma: 14.410044\n    test 124 line 26 toUtm8.scale: 1.011100\n    test 125 line 26 toUtm8.lat: 58.582623\n    test 126 line 26 toUtm8.lon: 16.755558\n    test 127 line 27 toUtm8.easting: 7558840.728461\n    test 128 line 27 toUtm8.northing: 4144728.130764\n    test 129 line 27 toUtm8.gamma: 32.557264\n    test 130 line 27 toUtm8.scale: 1.791490\n    test 131 line 27 toUtm8.lat: 19.793004\n    test 132 line 27 toUtm8.lon: 61.746763\n    test 133 line 28 toUtm8.easting: 1056008.314161\n    test 134 line 28 toUtm8.northing: 9290799.692669\n    test 135 line 28 toUtm8.gamma: 55.843278\n    test 136 line 28 toUtm8.scale: 1.013253\n    test 137 line 28 toUtm8.lat: 78.666776\n    test 138 line 28 toUtm8.lon: 56.365355\n    test 139 line 29 toUtm8.easting: 1943965.134687\n    test 140 line 29 toUtm8.northing: 1389972.228690\n    test 141 line 29 toUtm8.gamma: 3.774869\n    test 142 line 29 toUtm8.scale: 1.046724\n    test 143 line 29 toUtm8.lat: 11.998788\n    test 144 line 29 toUtm8.lon: 17.597873\n    test 145 line 30 toUtm8.easting: 5803077.072902\n    test 146 line 30 toUtm8.northing: 5649957.943659\n    test 147 line 30 toUtm8.gamma: 41.717943\n    test 148 line 30 toUtm8.scale: 1.442572\n    test 149 line 30 toUtm8.lat: 32.540378\n    test 150 line 30 toUtm8.lon: 58.764613\n    test 151 line 31 toUtm8.easting: 2928716.986009\n    test 152 line 31 toUtm8.northing: 5731835.058317\n    test 153 line 31 toUtm8.gamma: 28.538550\n    test 154 line 31 toUtm8.scale: 1.106780\n    test 155 line 31 toUtm8.lat: 45.160356\n    test 156 line 31 toUtm8.lon: 37.465285\n    test 157 line 32 toUtm8.easting: 326141.975756\n    test 158 line 32 toUtm8.northing: 8881325.164543\n    test 159 line 32 toUtm8.gamma: 16.111415\n    test 160 line 32 toUtm8.scale: 1.000900\n    test 161 line 32 toUtm8.lat: 79.584190\n    test 162 line 32 toUtm8.lon: 16.367006\n    test 163 line 33 toUtm8.easting: 3933015.267450\n    test 164 line 33 toUtm8.northing: 7932373.909512\n    test 165 line 33 toUtm8.gamma: 58.577424\n    test 166 line 33 toUtm8.scale: 1.194811\n    test 167 line 33 toUtm8.lat: 52.470664\n    test 168 line 33 toUtm8.lon: 64.125580\n    test 169 line 34 toUtm8.easting: 8598926.983213\n    test 170 line 34 toUtm8.northing: 6214135.167503\n    test 171 line 34 toUtm8.gamma: 52.612878\n    test 172 line 34 toUtm8.scale: 2.051367\n    test 173 line 34 toUtm8.lat: 23.702673\n    test 174 line 34 toUtm8.lon: 72.630363\n    test 175 line 35 toUtm8.easting: 6620553.333772\n    test 176 line 35 toUtm8.northing: 6540527.122948\n    test 177 line 35 toUtm8.gamma: 52.350140\n    test 178 line 35 toUtm8.scale: 1.586614\n    test 179 line 35 toUtm8.lat: 32.603520\n    test 180 line 35 toUtm8.lon: 67.280123\n    test 181 line 36 toUtm8.easting: 1515136.758292\n    test 182 line 36 toUtm8.northing: 3858996.087537\n    test 183 line 36 toUtm8.gamma: 9.225127\n    test 184 line 36 toUtm8.scale: 1.028029\n    test 185 line 36 toUtm8.lat: 33.776224\n    test 186 line 36 toUtm8.lon: 16.280993\n    test 187 line 37 toUtm8.easting: 479854.373445\n    test 188 line 37 toUtm8.northing: 8980501.389896\n    test 189 line 37 toUtm8.gamma: 25.021222\n    test 190 line 37 toUtm8.scale: 1.002415\n    test 191 line 37 toUtm8.lat: 79.932747\n    test 192 line 37 toUtm8.lon: 25.363622\n    test 193 line 38 toUtm8.easting: 5243446.564940\n    test 194 line 38 toUtm8.northing: 140657.213960\n    test 195 line 38 toUtm8.gamma: 0.862817\n    test 196 line 38 toUtm8.scale: 1.360358\n    test 197 line 38 toUtm8.lat: 0.935056\n    test 198 line 38 toUtm8.lon: 42.538824\n\n    test skipped (6): line 39 toUtm8.'13.490862440668 83.178380075606 12806457.9232176809509 7170118.6846750266674 64.708921319446620085 3.7405880916836789809'\n    test 199 line 40 toUtm8.easting: 1202993.459158\n    test 200 line 40 toUtm8.northing: 5557316.053599\n    test 201 line 40 toUtm8.gamma: 12.579061\n    test 202 line 40 toUtm8.scale: 1.017426\n    test 203 line 40 toUtm8.lat: 48.979057\n    test 204 line 40 toUtm8.lon: 16.474542\n    test 205 line 41 toUtm8.easting: 1729088.710196\n    test 206 line 41 toUtm8.northing: 7770874.289954\n    test 207 line 41 toUtm8.gamma: 36.021783\n    test 208 line 41 toUtm8.scale: 1.036397\n    test 209 line 41 toUtm8.lat: 65.036016\n    test 210 line 41 toUtm8.lon: 38.729091\n    test 211 line 42 toUtm8.easting: 2437301.517425\n    test 212 line 42 toUtm8.northing: 5539327.748318\n    test 213 line 42 toUtm8.gamma: 23.461879\n    test 214 line 42 toUtm8.scale: 1.073459\n    test 215 line 42 toUtm8.lat: 45.510091\n    test 216 line 42 toUtm8.lon: 31.303729\n    test 217 line 43 toUtm8.easting: 3647186.135066\n    test 218 line 43 toUtm8.northing: 2086412.330983\n    test 219 line 43 toUtm8.gamma: 10.023991\n    test 220 line 43 toUtm8.scale: 1.168707\n    test 221 line 43 toUtm8.lat: 16.058010\n    test 222 line 43 toUtm8.lon: 32.520026\n    test 223 line 44 toUtm8.easting: 1818497.243556\n    test 224 line 44 toUtm8.northing: 4275471.745057\n    test 225 line 44 toUtm8.gamma: 12.499656\n    test 226 line 44 toUtm8.scale: 1.040604\n    test 227 line 44 toUtm8.lat: 36.845200\n    test 228 line 44 toUtm8.lon: 20.282283\n    test 229 line 45 toUtm8.easting: 3751304.113783\n    test 230 line 45 toUtm8.northing: 5130454.001592\n    test 231 line 45 toUtm8.gamma: 28.959707\n    test 232 line 45 toUtm8.scale: 1.177681\n    test 233 line 45 toUtm8.lat: 37.865481\n    test 234 line 45 toUtm8.lon: 41.990402\n    test 235 line 46 toUtm8.easting: 2616733.138544\n    test 236 line 46 toUtm8.northing: 394644.463815\n    test 237 line 46 toUtm8.gamma: 1.390425\n    test 238 line 46 toUtm8.scale: 1.085595\n    test 239 line 46 toUtm8.lat: 3.287272\n    test 240 line 46 toUtm8.lon: 22.917604\n    test 241 line 47 toUtm8.easting: 1756506.573942\n    test 242 line 47 toUtm8.northing: 5570393.986394\n    test 243 line 47 toUtm8.gamma: 17.897894\n    test 244 line 47 toUtm8.scale: 1.037732\n    test 245 line 47 toUtm8.lat: 47.813686\n    test 246 line 47 toUtm8.lon: 23.545092\n    test 247 line 48 toUtm8.easting: 8752461.894711\n    test 248 line 48 toUtm8.northing: 6087728.152284\n    test 249 line 48 toUtm8.gamma: 51.628465\n    test 250 line 48 toUtm8.scale: 2.095465\n    test 251 line 48 toUtm8.lat: 22.836853\n    test 252 line 48 toUtm8.lon: 72.604385\n    test 253 line 49 toUtm8.easting: 1309272.216432\n    test 254 line 49 toUtm8.northing: 59520.028899\n    test 255 line 49 toUtm8.gamma: 0.109069\n    test 256 line 49 toUtm8.scale: 1.020897\n    test 257 line 49 toUtm8.lat: 0.527262\n    test 258 line 49 toUtm8.lon: 11.684209\n    test 259 line 50 toUtm8.easting: 328652.277129\n    test 260 line 50 toUtm8.northing: 2233043.958874\n    test 261 line 50 toUtm8.gamma: 1.084863\n    test 262 line 50 toUtm8.scale: 1.000935\n    test 263 line 50 toUtm8.lat: 20.166742\n    test 264 line 50 toUtm8.lon: 3.143948\n\n    test skipped (7): line 51 toUtm8.'28.604629015528 85.988721094779 8637959.7164470998207 9190635.1560309800028 81.802562643198123218 2.05432863342852874819'\n\n    test skipped (8): line 52 toUtm8.'28.984047991106 85.833447775172 8548521.4551470334531 9172410.9432821880799 81.583928102890161419 2.02964145862183583179'\n    test 265 line 53 toUtm8.easting: 796987.281104\n    test 266 line 53 toUtm8.northing: 7677446.357675\n    test 267 line 53 toUtm8.gamma: 18.084472\n    test 268 line 53 toUtm8.scale: 1.007381\n    test 269 line 53 toUtm8.lat: 68.071020\n    test 270 line 53 toUtm8.lon: 19.392823\n\n    test skipped (9): line 54 toUtm8.'61.416576191872 81.981611413918 3291036.4967623295988 9513199.6006662170596 80.890253980644739593 1.13482563910814382209'\n    test 271 line 55 toUtm8.easting: 7087225.330906\n    test 272 line 55 toUtm8.northing: 8382823.855822\n    test 273 line 55 toUtm8.gamma: 72.253756\n    test 274 line 55 toUtm8.scale: 1.678070\n    test 275 line 55 toUtm8.lat: 35.074753\n    test 276 line 55 toUtm8.lon: 79.496003\n    test 277 line 56 toUtm8.easting: 5090358.125724\n    test 278 line 56 toUtm8.northing: 4318294.133489\n    test 279 line 56 toUtm8.gamma: 28.266280\n    test 280 line 56 toUtm8.scale: 1.336264\n    test 281 line 56 toUtm8.lat: 28.078790\n    test 282 line 56 toUtm8.lon: 48.684350\n\n    test skipped (10): line 57 toUtm8.'84.986930137199 2.067177857261 20163.0752214330146 9438635.9888499043815 2.059277291707588222 .99960496589466017622'\n    test 283 line 58 toUtm8.easting: 3447670.550785\n    test 284 line 58 toUtm8.northing: 3680238.888223\n    test 285 line 58 toUtm8.gamma: 17.934948\n    test 286 line 58 toUtm8.scale: 1.149831\n    test 287 line 58 toUtm8.lat: 28.473948\n    test 288 line 58 toUtm8.lon: 34.127306\n    test 289 line 59 toUtm8.easting: 3396522.906798\n    test 290 line 59 toUtm8.northing: 8093659.687593\n    test 291 line 59 toUtm8.gamma: 57.747117\n    test 292 line 59 toUtm8.scale: 1.144006\n    test 293 line 59 toUtm8.lat: 56.629354\n    test 294 line 59 toUtm8.lon: 62.196474\n    test 295 line 60 toUtm8.easting: 11249894.100794  FAILED, KNOWN, expected 11249894.100784\n    test 296 line 60 toUtm8.northing: 1619226.506360  FAILED, KNOWN, expected 1619226.506299\n    test 297 line 60 toUtm8.gamma: 14.210358\n    test 298 line 60 toUtm8.scale: 3.048347\n    test 299 line 60 toUtm8.lat: 4.747762\n    test 300 line 60 toUtm8.lon: 70.932555\n    test 301 line 61 toUtm8.easting: 6808805.230950\n    test 302 line 61 toUtm8.northing: 8044779.777369\n    test 303 line 61 toUtm8.gamma: 68.242008\n    test 304 line 61 toUtm8.scale: 1.621464\n    test 305 line 61 toUtm8.lat: 35.882113\n    test 306 line 61 toUtm8.lon: 76.741849\n    test 307 line 62 toUtm8.easting: 2306021.556506\n    test 308 line 62 toUtm8.northing: 757191.592866\n    test 309 line 62 toUtm8.gamma: 2.385686\n    test 310 line 62 toUtm8.scale: 1.066159\n    test 311 line 62 toUtm8.lat: 6.420705\n    test 312 line 62 toUtm8.lon: 20.416028\n    test 313 line 63 toUtm8.easting: 1547406.313862\n    test 314 line 63 toUtm8.northing: 6048712.751824\n    test 315 line 63 toUtm8.gamma: 18.474372\n    test 316 line 63 toUtm8.scale: 1.029123\n    test 317 line 63 toUtm8.lat: 52.335248\n    test 318 line 63 toUtm8.lon: 22.879294\n    test 319 line 64 toUtm8.easting: 2430467.650383\n    test 320 line 64 toUtm8.northing: 7557167.613972\n    test 321 line 64 toUtm8.gamma: 42.110021\n    test 322 line 64 toUtm8.scale: 1.072759\n    test 323 line 64 toUtm8.lat: 59.846391\n    test 324 line 64 toUtm8.lon: 46.262536\n    test 325 line 65 toUtm8.easting: 2334053.905830\n    test 326 line 65 toUtm8.northing: 1948076.966582\n    test 327 line 65 toUtm8.gamma: 6.353185\n    test 328 line 65 toUtm8.scale: 1.067733\n    test 329 line 65 toUtm8.lat: 16.461790\n    test 330 line 65 toUtm8.lon: 21.433269\n    test 331 line 66 toUtm8.easting: 5564175.186737\n    test 332 line 66 toUtm8.northing: 1836851.660412\n    test 333 line 66 toUtm8.gamma: 11.870682\n    test 334 line 66 toUtm8.scale: 1.408265\n    test 335 line 66 toUtm8.lat: 11.707905\n    test 336 line 66 toUtm8.lon: 45.827075\n    test 337 line 67 toUtm8.easting: 6118505.590359\n    test 338 line 67 toUtm8.northing: 7631684.552421\n    test 339 line 67 toUtm8.gamma: 62.477323\n    test 340 line 67 toUtm8.scale: 1.493420\n    test 341 line 67 toUtm8.lat: 38.519075\n    test 342 line 67 toUtm8.lon: 71.935918\n\n    test skipped (11): line 68 toUtm8.'34.264007222954 82.647878110272 7365359.2946646287171 8818194.4515306837741 77.207042218974141605 1.73763853091849729372'\n    test 343 line 69 toUtm8.easting: 36187.342415\n    test 344 line 69 toUtm8.northing: 2142565.324802\n    test 345 line 69 toUtm8.gamma: 0.114334\n    test 346 line 69 toUtm8.scale: 0.999616\n    test 347 line 69 toUtm8.lat: 19.376880\n    test 348 line 69 toUtm8.lon: 0.344605\n    test 349 line 70 toUtm8.easting: 2380328.546851\n    test 350 line 70 toUtm8.northing: 8440109.872384\n    test 351 line 70 toUtm8.gamma: 55.076067\n    test 352 line 70 toUtm8.scale: 1.069658\n    test 353 line 70 toUtm8.lat: 65.075805\n    test 354 line 70 toUtm8.lon: 57.653438\n    test 355 line 71 toUtm8.easting: 582511.608826\n    test 356 line 71 toUtm8.northing: 8876047.217071\n    test 357 line 71 toUtm8.gamma: 27.133300\n    test 358 line 71 toUtm8.scale: 1.003749\n    test 359 line 71 toUtm8.lat: 78.691870\n    test 360 line 71 toUtm8.lon: 27.591736\n    test 361 line 72 toUtm8.easting: 899441.350477\n    test 362 line 72 toUtm8.northing: 4582046.430516\n    test 363 line 72 toUtm8.gamma: 7.031211\n    test 364 line 72 toUtm8.scale: 1.009573\n    test 365 line 72 toUtm8.lat: 40.893022\n    test 366 line 72 toUtm8.lon: 10.668804\n\n    test skipped (12): line 73 toUtm8.'48.914278679322 87.35926802682 5022485.1243369246483 9741774.9337207800497 86.505947369926030588 1.32369954850478170836'\n    test 367 line 74 toUtm8.easting: 6701004.587204\n    test 368 line 74 toUtm8.northing: 2954368.258231\n    test 369 line 74 toUtm8.gamma: 21.560153\n    test 370 line 74 toUtm8.scale: 1.608554\n    test 371 line 74 toUtm8.lat: 16.208377\n    test 372 line 74 toUtm8.lon: 54.494282\n    test 373 line 75 toUtm8.easting: 454986.218897\n    test 374 line 75 toUtm8.northing: 4885087.887884\n    test 375 line 75 toUtm8.gamma: 3.945648\n    test 376 line 75 toUtm8.scale: 1.002147\n    test 377 line 75 toUtm8.lat: 43.977936\n    test 378 line 75 toUtm8.lon: 5.672541\n\n    test skipped (13): line 76 toUtm8.'26.850860749352 82.834479937822 8903956.1403106503714 8470608.5774824981183 74.723116471645531699 2.13131124920824155268'\n    test 379 line 77 toUtm8.easting: 1547627.594741\n    test 380 line 77 toUtm8.northing: 6036584.538347\n    test 381 line 77 toUtm8.gamma: 18.407629\n    test 382 line 77 toUtm8.scale: 1.029132\n    test 383 line 77 toUtm8.lat: 52.234165\n    test 384 line 77 toUtm8.lon: 22.827655\n    test 385 line 78 toUtm8.easting: 5221488.778597\n    test 386 line 78 toUtm8.northing: 1762592.044392\n    test 387 line 78 toUtm8.gamma: 10.927880\n    test 388 line 78 toUtm8.scale: 1.356721\n    test 389 line 78 toUtm8.lat: 11.674646\n    test 390 line 78 toUtm8.lon: 43.500147\n    test 391 line 79 toUtm8.easting: 4880570.297161\n    test 392 line 79 toUtm8.northing: 3325433.988867\n    test 393 line 79 toUtm8.gamma: 20.469862\n    test 394 line 79 toUtm8.scale: 1.308476\n    test 395 line 79 toUtm8.lat: 22.492753\n    test 396 line 79 toUtm8.lon: 44.179153\n\n    test skipped (14): line 80 toUtm8.'.910999463005 88.548822916123 23930680.0826936110445 7491462.0990379651261 75.937628056628715446 15.55636485152285563369'\n    test 397 line 81 toUtm8.easting: 71519.450458\n    test 398 line 81 toUtm8.northing: 3654740.444852\n    test 399 line 81 toUtm8.gamma: 0.417448\n    test 400 line 81 toUtm8.scale: 0.999663\n    test 401 line 81 toUtm8.lat: 33.028802\n    test 402 line 81 toUtm8.lon: 0.765843\n    test 403 line 82 toUtm8.easting: 4152797.795220\n    test 404 line 82 toUtm8.northing: 7823098.502751\n    test 405 line 82 toUtm8.gamma: 58.238901\n    test 406 line 82 toUtm8.scale: 1.218052\n    test 407 line 82 toUtm8.lat: 50.649195\n    test 408 line 82 toUtm8.lon: 64.389076\n    test 409 line 83 toUtm8.easting: 2926725.707639\n    test 410 line 83 toUtm8.northing: 7904918.072844\n    test 411 line 83 toUtm8.gamma: 51.592748\n    test 412 line 83 toUtm8.scale: 1.106206\n    test 413 line 83 toUtm8.lat: 58.820640\n    test 414 line 83 toUtm8.lon: 55.841048\n    test 415 line 84 toUtm8.easting: 1325509.113869\n    test 416 line 84 toUtm8.northing: 9675214.948213\n    test 417 line 84 toUtm8.gamma: 76.116213\n    test 418 line 84 toUtm8.scale: 1.021136\n    test 419 line 84 toUtm8.lat: 77.865762\n    test 420 line 84 toUtm8.lon: 76.414618\n    test 421 line 85 toUtm8.easting: 3045296.448926\n    test 422 line 85 toUtm8.northing: 542153.443280\n    test 423 line 85 toUtm8.gamma: 2.185095\n    test 424 line 85 toUtm8.scale: 1.116664\n    test 425 line 85 toUtm8.lat: 4.389639\n    test 426 line 85 toUtm8.lon: 26.458976\n    test 427 line 86 toUtm8.easting: 11843870.887791  FAILED, KNOWN, expected 11843870.887518\n    test 428 line 86 toUtm8.northing: 5912803.073690  FAILED, KNOWN, expected 5912803.073343\n    test 429 line 86 toUtm8.gamma: 52.814260  FAILED, KNOWN, expected 52.814259\n    test 430 line 86 toUtm8.scale: 3.267256\n    test 431 line 86 toUtm8.lat: 13.924448\n    test 432 line 86 toUtm8.lon: 79.017873\n    test 433 line 87 toUtm8.easting: 8891099.704936\n    test 434 line 87 toUtm8.northing: 162160.142227\n    test 435 line 87 toUtm8.gamma: 1.312094\n    test 436 line 87 toUtm8.scale: 2.157363\n    test 437 line 87 toUtm8.lat: 0.679713\n    test 438 line 87 toUtm8.lon: 62.036792\n    test 439 line 88 toUtm8.easting: 4784814.214449\n    test 440 line 88 toUtm8.northing: 2984497.432580\n    test 441 line 88 toUtm8.gamma: 17.946545\n    test 442 line 88 toUtm8.scale: 1.296116\n    test 443 line 88 toUtm8.lat: 20.478281\n    test 444 line 88 toUtm8.lon: 42.678234\n    test 445 line 89 toUtm8.easting: 1772074.682154\n    test 446 line 89 toUtm8.northing: 9491552.560143\n    test 447 line 89 toUtm8.gamma: 73.634830\n    test 448 line 89 toUtm8.scale: 1.038202\n    test 449 line 89 toUtm8.lat: 73.695703\n    test 450 line 89 toUtm8.lon: 74.259097\n    test 451 line 90 toUtm8.easting: 1907649.782106\n    test 452 line 90 toUtm8.northing: 6994232.429379\n    test 453 line 90 toUtm8.gamma: 29.718929\n    test 454 line 90 toUtm8.scale: 1.044503\n    test 455 line 90 toUtm8.lat: 58.569370\n    test 456 line 90 toUtm8.lon: 33.777549\n    test 457 line 91 toUtm8.easting: 2084423.818962\n    test 458 line 91 toUtm8.northing: 2211816.035619\n    test 459 line 91 toUtm8.gamma: 6.556448\n    test 460 line 91 toUtm8.scale: 1.053793\n    test 461 line 91 toUtm8.lat: 18.933881\n    test 462 line 91 toUtm8.lon: 19.492695\n    test 463 line 92 toUtm8.easting: 1064373.671729\n    test 464 line 92 toUtm8.northing: 7812482.547461\n    test 465 line 92 toUtm8.gamma: 24.874124\n    test 466 line 92 toUtm8.scale: 1.013490\n    test 467 line 92 toUtm8.lat: 68.317934\n    test 468 line 92 toUtm8.lon: 26.515687\n\n    test skipped (15): line 93 toUtm8.'50.641941364984 87.111556505544 4770385.4792965339274 9734318.9029801439364 86.27311877223132818 1.29055338238288419467'\n    test 469 line 94 toUtm8.easting: 6398096.677297\n    test 470 line 94 toUtm8.northing: 4410894.752104\n    test 471 line 94 toUtm8.gamma: 32.558023\n    test 472 line 94 toUtm8.scale: 1.548004\n    test 473 line 94 toUtm8.lat: 24.411298\n    test 474 line 94 toUtm8.lon: 56.881823\n    test 475 line 95 toUtm8.easting: 3138623.300415\n    test 476 line 95 toUtm8.northing: 3082960.600798\n    test 477 line 95 toUtm8.gamma: 13.557672\n    test 478 line 95 toUtm8.scale: 1.123724\n    test 479 line 95 toUtm8.lat: 24.571871\n    test 480 line 95 toUtm8.lon: 30.073097\n    test 481 line 96 toUtm8.easting: 2748325.794651\n    test 482 line 96 toUtm8.northing: 4202811.912668\n    test 483 line 96 toUtm8.gamma: 17.578706\n    test 484 line 96 toUtm8.scale: 1.094102\n    test 485 line 96 toUtm8.lat: 34.202576\n    test 486 line 96 toUtm8.lon: 29.383166\n    test 487 line 97 toUtm8.easting: 6677830.630367\n    test 488 line 97 toUtm8.northing: 5350071.837395\n    test 489 line 97 toUtm8.gamma: 41.306641\n    test 490 line 97 toUtm8.scale: 1.599774\n    test 491 line 97 toUtm8.lat: 27.756285\n    test 492 line 97 toUtm8.lon: 61.881905\n    test 493 line 98 toUtm8.easting: 5941536.667431\n    test 494 line 98 toUtm8.northing: 3293112.175140\n    test 495 line 98 toUtm8.gamma: 22.752845\n    test 496 line 98 toUtm8.scale: 1.468473\n    test 497 line 98 toUtm8.lat: 19.742270\n    test 498 line 98 toUtm8.lon: 50.957821\n    test 499 line 99 toUtm8.easting: 3152481.792567\n    test 500 line 99 toUtm8.northing: 5903048.837978\n    test 501 line 99 toUtm8.gamma: 31.494606\n    test 502 line 99 toUtm8.scale: 1.124085\n    test 503 line 99 toUtm8.lat: 45.453582\n    test 504 line 99 toUtm8.lon: 40.659833\n    test 505 line 100 toUtm8.easting: 10460475.897726  FAILED, KNOWN, expected 10460475.897730\n    test 506 line 100 toUtm8.northing: 2553463.624385  FAILED, KNOWN, expected 2553463.624391\n    test 507 line 100 toUtm8.gamma: 21.965869\n    test 508 line 100 toUtm8.scale: 2.700296\n    test 509 line 100 toUtm8.lat: 8.322144\n    test 510 line 100 toUtm8.lon: 69.488157\n    test 511 line 101 toUtm8.easting: 1964010.778021\n    test 512 line 101 toUtm8.northing: 5634042.923056\n    test 513 line 101 toUtm8.gamma: 20.117800\n    test 514 line 101 toUtm8.scale: 1.047344\n    test 515 line 101 toUtm8.lat: 47.749831\n    test 516 line 101 toUtm8.lon: 26.322002\n    test 517 line 102 toUtm8.easting: 2065306.424934\n    test 518 line 102 toUtm8.northing: 2135008.468651\n    test 519 line 102 toUtm8.gamma: 6.258981\n    test 520 line 102 toUtm8.scale: 1.052800\n    test 521 line 102 toUtm8.lat: 18.297493\n    test 522 line 102 toUtm8.lon: 19.244669\n    test 523 line 103 toUtm8.easting: 5127738.132976\n    test 524 line 103 toUtm8.northing: 6793804.304411\n    test 525 line 103 toUtm8.gamma: 50.557915\n    test 526 line 103 toUtm8.scale: 1.339412\n    test 527 line 103 toUtm8.lat: 40.834541\n    test 528 line 103 toUtm8.lon: 61.650750\n    test 529 line 104 toUtm8.easting: 8385525.148166\n    test 530 line 104 toUtm8.northing: 6924932.344306\n    test 531 line 104 toUtm8.gamma: 59.087561\n    test 532 line 104 toUtm8.scale: 1.990364\n    test 533 line 104 toUtm8.lat: 26.273247\n    test 534 line 104 toUtm8.lon: 74.926694\n    test 535 line 105 toUtm8.easting: 2297510.791909\n    test 536 line 105 toUtm8.northing: 2805666.962834\n    test 537 line 105 toUtm8.gamma: 9.301553\n    test 538 line 105 toUtm8.scale: 1.065508\n    test 539 line 105 toUtm8.lat: 23.698347\n    test 540 line 105 toUtm8.lon: 22.155657\n\n    test skipped (16): line 106 toUtm8.'12.364112546807 86.348578425071 13749544.9176345767153 8288728.3846500523233 75.033969786420407131 4.27058754359004466627'\n    test 541 line 107 toUtm8.easting: 317518.455546\n    test 542 line 107 toUtm8.northing: 1097517.583745\n    test 543 line 107 toUtm8.gamma: 0.499004\n    test 544 line 107 toUtm8.scale: 1.000848\n    test 545 line 107 toUtm8.lat: 9.916091\n    test 546 line 107 toUtm8.lon: 2.895277\n    test 547 line 108 toUtm8.easting: 3856035.184888\n    test 548 line 108 toUtm8.northing: 9141364.450290\n    test 549 line 108 toUtm8.gamma: 75.972763\n    test 550 line 108 toUtm8.scale: 1.186786\n    test 551 line 108 toUtm8.lat: 56.553876\n    test 552 line 108 toUtm8.lon: 78.215077\n    test 553 line 109 toUtm8.easting: 1457484.942823\n    test 554 line 109 toUtm8.northing: 9385297.101973\n    test 555 line 109 toUtm8.gamma: 66.784662\n    test 556 line 109 toUtm8.scale: 1.025660\n    test 557 line 109 toUtm8.lat: 75.957631\n    test 558 line 109 toUtm8.lon: 67.407383\n    test 559 line 110 toUtm8.easting: 1304934.901841\n    test 560 line 110 toUtm8.northing: 3604655.155715\n    test 561 line 110 toUtm8.gamma: 7.343989\n    test 562 line 110 toUtm8.scale: 1.020672\n    test 563 line 110 toUtm8.lat: 31.826531\n    test 564 line 110 toUtm8.lon: 13.731050\n    test 565 line 111 toUtm8.easting: 1399093.491792\n    test 566 line 111 toUtm8.northing: 8314607.120342\n    test 567 line 111 toUtm8.gamma: 38.630161\n    test 568 line 111 toUtm8.scale: 1.023625\n    test 569 line 111 toUtm8.lat: 70.542985\n    test 570 line 111 toUtm8.lon: 40.282055\n    test 571 line 112 toUtm8.easting: 356983.618540\n    test 572 line 112 toUtm8.northing: 4282309.048994\n    test 573 line 112 toUtm8.gamma: 2.561485\n    test 574 line 112 toUtm8.scale: 1.001170\n    test 575 line 112 toUtm8.lat: 38.617487\n    test 576 line 112 toUtm8.lon: 4.099838\n    test 577 line 113 toUtm8.easting: 9952911.325092  FAILED, KNOWN, expected 9952911.325091\n    test 578 line 113 toUtm8.northing: 1510288.212230  FAILED, KNOWN, expected 1510288.212229\n    test 579 line 113 toUtm8.gamma: 12.752154\n    test 580 line 113 toUtm8.scale: 2.511357\n    test 581 line 113 toUtm8.lat: 5.389447\n    test 582 line 113 toUtm8.lon: 66.729612\n    test 583 line 114 toUtm8.easting: 6367592.504007\n    test 584 line 114 toUtm8.northing: 1200437.077672\n    test 585 line 114 toUtm8.gamma: 8.338041\n    test 586 line 114 toUtm8.scale: 1.546210\n    test 587 line 114 toUtm8.lat: 6.995168\n    test 588 line 114 toUtm8.lon: 50.014763\n    test 589 line 115 toUtm8.easting: 4391263.676460\n    test 590 line 115 toUtm8.northing: 6325455.989408\n    test 591 line 115 toUtm8.gamma: 42.653541\n    test 592 line 115 toUtm8.scale: 1.245560\n    test 593 line 115 toUtm8.lat: 42.321894\n    test 594 line 115 toUtm8.lon: 53.784040\n    test 595 line 116 toUtm8.easting: 6209880.527527\n    test 596 line 116 toUtm8.northing: 2154754.449747\n    test 597 line 116 toUtm8.gamma: 14.919512\n    test 598 line 116 toUtm8.scale: 1.516560\n    test 599 line 116 toUtm8.lat: 12.698515\n    test 600 line 116 toUtm8.lon: 50.242047\n    test 601 line 117 toUtm8.easting: 1507053.688772\n    test 602 line 117 toUtm8.northing: 6261383.513280\n    test 603 line 117 toUtm8.gamma: 19.280373\n    test 604 line 117 toUtm8.scale: 1.027584\n    test 605 line 117 toUtm8.lat: 54.207636\n    test 606 line 117 toUtm8.lon: 23.325731\n    test 607 line 118 toUtm8.easting: 8332725.003777\n    test 608 line 118 toUtm8.northing: 3002712.329753\n    test 609 line 118 toUtm8.gamma: 24.059212\n    test 610 line 118 toUtm8.scale: 1.990450\n    test 611 line 118 toUtm8.lat: 13.224787\n    test 612 line 118 toUtm8.lon: 62.426698\n    test 613 line 119 toUtm8.easting: 3958910.085235\n    test 614 line 119 toUtm8.northing: 3462284.926102\n    test 615 line 119 toUtm8.gamma: 18.546398\n    test 616 line 119 toUtm8.scale: 1.199351\n    test 617 line 119 toUtm8.lat: 25.650282\n    test 618 line 119 toUtm8.lon: 37.710391\n\n    test skipped (17): line 120 toUtm8.'20.684773383075 82.849734261238 10452892.2820830090734 8000059.6051139389546 71.07524025411428855 2.6501109339363854772'\n    test 619 line 121 toUtm8.easting: 496148.253731\n    test 620 line 121 toUtm8.northing: 6388503.365043\n    test 621 line 121 toUtm8.gamma: 6.970955\n    test 622 line 121 toUtm8.scale: 1.002620\n    test 623 line 121 toUtm8.lat: 57.367533\n    test 624 line 121 toUtm8.lon: 8.260866\n    test 625 line 122 toUtm8.easting: 7375792.085850\n    test 626 line 122 toUtm8.northing: 5544624.072155\n    test 627 line 122 toUtm8.gamma: 44.510851\n    test 628 line 122 toUtm8.scale: 1.745898\n    test 629 line 122 toUtm8.lat: 25.958757\n    test 630 line 122 toUtm8.lon: 65.760477\n    test 631 line 123 toUtm8.easting: 2826258.041979\n    test 632 line 123 toUtm8.northing: 5167759.816959\n    test 633 line 123 toUtm8.gamma: 23.783897\n    test 634 line 123 toUtm8.scale: 1.099415\n    test 635 line 123 toUtm8.lat: 41.395848\n    test 636 line 123 toUtm8.lon: 33.661790\n    test 637 line 124 toUtm8.easting: 3958563.378851\n    test 638 line 124 toUtm8.northing: 8499923.231243\n    test 639 line 124 toUtm8.gamma: 66.570945\n    test 640 line 124 toUtm8.scale: 1.197296\n    test 641 line 124 toUtm8.lat: 54.266617\n    test 642 line 124 toUtm8.lon: 70.602199\n    test 643 line 125 toUtm8.easting: 4408189.533462\n    test 644 line 125 toUtm8.northing: 8046312.003642\n    test 645 line 125 toUtm8.gamma: 62.216959\n    test 646 line 125 toUtm8.scale: 1.246750\n    test 647 line 125 toUtm8.lat: 49.840393\n    test 648 line 125 toUtm8.lon: 68.036728\n    test 649 line 126 toUtm8.easting: 3629225.627512\n    test 650 line 126 toUtm8.northing: 6371258.454645\n    test 651 line 126 toUtm8.gamma: 38.881675\n    test 652 line 126 toUtm8.scale: 1.165511\n    test 653 line 126 toUtm8.lat: 46.306035\n    test 654 line 126 toUtm8.lon: 48.085828\n    test 655 line 127 toUtm8.easting: 602838.450710\n    test 656 line 127 toUtm8.northing: 4851370.637205\n    test 657 line 127 toUtm8.gamma: 5.160395\n    test 658 line 127 toUtm8.scale: 1.004073\n    test 659 line 127 toUtm8.lat: 43.570988\n    test 660 line 127 toUtm8.lon: 7.464494\n    test 661 line 128 toUtm8.easting: 764616.665051\n    test 662 line 128 toUtm8.northing: 2164299.337945\n    test 663 line 128 toUtm8.gamma: 2.429300\n    test 664 line 128 toUtm8.scale: 1.006835\n    test 665 line 128 toUtm8.lat: 19.427290\n    test 666 line 128 toUtm8.lon: 7.268247\n    test 667 line 129 toUtm8.easting: 5048953.021931\n    test 668 line 129 toUtm8.northing: 1885974.057398\n    test 669 line 129 toUtm8.gamma: 11.459804\n    test 670 line 129 toUtm8.scale: 1.332207\n    test 671 line 129 toUtm8.lat: 12.713794\n    test 672 line 129 toUtm8.lon: 42.507018\n    test 673 line 130 toUtm8.easting: 2293996.601155\n    test 674 line 130 toUtm8.northing: 2392408.644221\n    test 675 line 130 toUtm8.gamma: 7.791838\n    test 676 line 130 toUtm8.scale: 1.065348\n    test 677 line 130 toUtm8.lat: 20.238782\n    test 678 line 130 toUtm8.lon: 21.566068\n    test 679 line 131 toUtm8.easting: 1530603.839418\n    test 680 line 131 toUtm8.northing: 7287841.459898\n    test 681 line 131 toUtm8.gamma: 27.502921\n    test 682 line 131 toUtm8.scale: 1.028416\n    test 683 line 131 toUtm8.lat: 62.367847\n    test 684 line 131 toUtm8.lon: 30.438849\n    test 685 line 132 toUtm8.easting: 2660000.093152\n    test 686 line 132 toUtm8.northing: 5161982.213248\n    test 687 line 132 toUtm8.gamma: 22.629836\n    test 688 line 132 toUtm8.scale: 1.087851\n    test 689 line 132 toUtm8.lat: 41.891569\n    test 690 line 132 toUtm8.lon: 31.959547\n    test 691 line 133 toUtm8.easting: 5037478.329414\n    test 692 line 133 toUtm8.northing: 8768172.379908\n    test 693 line 133 toUtm8.gamma: 73.511182\n    test 694 line 133 toUtm8.scale: 1.325919\n    test 695 line 133 toUtm8.lat: 47.664248\n    test 696 line 133 toUtm8.lon: 77.630062\n    test 697 line 134 toUtm8.easting: 2289650.957799\n    test 698 line 134 toUtm8.northing: 8784328.593607\n    test 699 line 134 toUtm8.gamma: 60.786067\n    test 700 line 134 toUtm8.scale: 1.064346\n    test 701 line 134 toUtm8.lat: 67.259559\n    test 702 line 134 toUtm8.lon: 62.715293\n    test 703 line 135 toUtm8.easting: 647913.889744\n    test 704 line 135 toUtm8.northing: 6742382.228217\n    test 705 line 135 toUtm8.gamma: 10.252667\n    test 706 line 135 toUtm8.scale: 1.004748\n    test 707 line 135 toUtm8.lat: 60.295381\n    test 708 line 135 toUtm8.lon: 11.763097\n    test 709 line 136 toUtm8.easting: 1118372.698566\n    test 710 line 136 toUtm8.northing: 9040627.942263\n    test 711 line 136 toUtm8.gamma: 48.936803\n    test 712 line 136 toUtm8.scale: 1.014920\n    test 713 line 136 toUtm8.lat: 76.878914\n    test 714 line 136 toUtm8.lon: 49.685773\n    test 715 line 137 toUtm8.easting: 440696.510070\n    test 716 line 137 toUtm8.northing: 5500355.826297\n    test 717 line 137 toUtm8.gamma: 4.636104\n    test 718 line 137 toUtm8.scale: 1.001986\n    test 719 line 137 toUtm8.lat: 49.495349\n    test 720 line 137 toUtm8.lon: 6.087551\n    test 721 line 138 toUtm8.easting: 601728.149727\n    test 722 line 138 toUtm8.northing: 9095352.048149\n    test 723 line 138 toUtm8.gamma: 33.435771\n    test 724 line 138 toUtm8.scale: 1.004027\n    test 725 line 138 toUtm8.lat: 80.297265\n    test 726 line 138 toUtm8.lon: 33.816372\n    test 727 line 139 toUtm8.easting: 3481444.777827\n    test 728 line 139 toUtm8.northing: 291665.708749\n    test 729 line 139 toUtm8.gamma: 1.314726\n    test 730 line 139 toUtm8.scale: 1.153534\n    test 731 line 139 toUtm8.lat: 2.286437\n    test 732 line 139 toUtm8.lon: 29.855149\n    test 733 line 140 toUtm8.easting: 3515304.901524\n    test 734 line 140 toUtm8.northing: 1443981.882918\n    test 735 line 140 toUtm8.gamma: 6.641638\n    test 736 line 140 toUtm8.scale: 1.156509\n    test 737 line 140 toUtm8.lat: 11.264457\n    test 738 line 140 toUtm8.lon: 30.743907\n    test 739 line 141 toUtm8.easting: 160012.186959\n    test 740 line 141 toUtm8.northing: 3922609.253231\n    test 741 line 141 toUtm8.gamma: 1.022225\n    test 742 line 141 toUtm8.scale: 0.999916\n    test 743 line 141 toUtm8.lat: 35.434073\n    test 744 line 141 toUtm8.lon: 1.762795\n    test 745 line 142 toUtm8.easting: 4163744.245622\n    test 746 line 142 toUtm8.northing: 936884.674804\n    test 747 line 142 toUtm8.gamma: 4.892559\n    test 748 line 142 toUtm8.scale: 1.222164\n    test 749 line 142 toUtm8.lat: 6.923695\n    test 750 line 142 toUtm8.lon: 35.289456\n    test 751 line 143 toUtm8.easting: 6155200.017926\n    test 752 line 143 toUtm8.northing: 6926306.628390\n    test 753 line 143 toUtm8.gamma: 55.103258\n    test 754 line 143 toUtm8.scale: 1.500556\n    test 755 line 143 toUtm8.lat: 36.129672\n    test 756 line 143 toUtm8.lon: 67.533176\n\n    test skipped (18): line 144 toUtm8.'4.406528980638 81.965734206053 16263383.2854400911299 3591296.7313406507021 36.040254103487111035 6.58928781751888396522'\n\n    test skipped (19): line 145 toUtm8.'8.474589009114 81.129945130597 14220995.5153984992101 5100587.4575033509156 47.314258427760984573 4.69320221531225352172'\n    test 757 line 146 toUtm8.easting: 3173034.802372\n    test 758 line 146 toUtm8.northing: 7263421.942957\n    test 759 line 146 toUtm8.gamma: 45.215808\n    test 760 line 146 toUtm8.scale: 1.125410\n    test 761 line 146 toUtm8.lat: 53.907276\n    test 762 line 146 toUtm8.lon: 51.252904\n\n    test skipped (20): line 147 toUtm8.'22.120544817855 85.756781608119 10253274.0922039670098 8867574.2997916978265 79.198250285604314115 2.57237240666878171579'\n    test 763 line 148 toUtm8.easting: 2415561.483230\n    test 764 line 148 toUtm8.northing: 8813225.217097\n    test 765 line 148 toUtm8.gamma: 62.548978\n    test 766 line 148 toUtm8.scale: 1.071748\n    test 767 line 148 toUtm8.lat: 66.444100\n    test 768 line 148 toUtm8.lon: 64.532960\n    test 769 line 149 toUtm8.easting: 9589179.293294  FAILED, KNOWN, expected 9589179.293295\n    test 770 line 149 toUtm8.northing: 1777680.784144  FAILED, KNOWN, expected 1777680.784143\n    test 771 line 149 toUtm8.gamma: 14.838483\n    test 772 line 149 toUtm8.scale: 2.380716\n    test 773 line 149 toUtm8.lat: 6.670965\n    test 774 line 149 toUtm8.lon: 65.660408\n    test 775 line 150 toUtm8.easting: 727939.438391\n    test 776 line 150 toUtm8.northing: 3684363.236810\n    test 777 line 150 toUtm8.gamma: 4.266227\n    test 778 line 150 toUtm8.scale: 1.006140\n    test 779 line 150 toUtm8.lat: 33.054057\n    test 780 line 150 toUtm8.lon: 7.787458\n    test 781 line 151 toUtm8.easting: 1250765.991085\n    test 782 line 151 toUtm8.northing: 792869.242719\n    test 783 line 151 toUtm8.gamma: 1.396497\n    test 784 line 151 toUtm8.scale: 1.019026\n    test 785 line 151 toUtm8.lat: 7.035525\n    test 786 line 151 toUtm8.lon: 11.253707\n    test 787 line 152 toUtm8.easting: 710421.705887\n    test 788 line 152 toUtm8.northing: 5019406.075928\n    test 789 line 152 toUtm8.gamma: 6.393949\n    test 790 line 152 toUtm8.scale: 1.005812\n    test 791 line 152 toUtm8.lat: 44.971340\n    test 792 line 152 toUtm8.lon: 9.009304\n    test 793 line 153 toUtm8.easting: 4600995.074643\n    test 794 line 153 toUtm8.northing: 4505712.084593\n    test 795 line 153 toUtm8.gamma: 27.997458\n    test 796 line 153 toUtm8.scale: 1.271841\n    test 797 line 153 toUtm8.lat: 30.821397\n    test 798 line 153 toUtm8.lon: 45.970577\n    test 799 line 154 toUtm8.easting: 557642.627782\n    test 800 line 154 toUtm8.northing: 7006911.251644\n    test 801 line 154 toUtm8.gamma: 9.769903\n    test 802 line 154 toUtm8.scale: 1.003411\n    test 803 line 154 toUtm8.lat: 62.763886\n    test 804 line 154 toUtm8.lon: 10.960144\n    test 805 line 155 toUtm8.easting: 4635062.294291\n    test 806 line 155 toUtm8.northing: 2702556.153311\n    test 807 line 155 toUtm8.gamma: 15.779547\n    test 808 line 155 toUtm8.scale: 1.277178\n    test 809 line 155 toUtm8.lat: 18.888611\n    test 810 line 155 toUtm8.lon: 41.009871\n\n    test skipped (21): line 156 toUtm8.'7.524119461376 81.050715469439 14554962.2559189870471 4716639.9085720199214 44.192751352918149954 4.96001986321419027847'\n    test 811 line 157 toUtm8.easting: 882126.661736\n    test 812 line 157 toUtm8.northing: 7947612.369506\n    test 813 line 157 toUtm8.gamma: 22.429487\n    test 814 line 157 toUtm8.scale: 1.009132\n    test 815 line 157 toUtm8.lat: 70.063902\n    test 816 line 157 toUtm8.lon: 23.705255\n\n    test skipped (22): line 158 toUtm8.'3.556525834215 88.363529198819 20262021.6459832969292 8113827.8207957955275 76.936057264555500879 10.34909168211805703369'\n    test 817 line 159 toUtm8.easting: 6500508.399850\n    test 818 line 159 toUtm8.northing: 6956476.342368\n    test 819 line 159 toUtm8.gamma: 56.237116\n    test 820 line 159 toUtm8.scale: 1.563162\n    test 821 line 159 toUtm8.lat: 34.551257\n    test 822 line 159 toUtm8.lon: 69.111091\n    test 823 line 160 toUtm8.easting: 3884036.641314\n    test 824 line 160 toUtm8.northing: 6890167.411733\n    test 825 line 160 toUtm8.gamma: 45.760130\n    test 826 line 160 toUtm8.scale: 1.190167\n    test 827 line 160 toUtm8.lat: 47.929051\n    test 828 line 160 toUtm8.lon: 54.103418\n    test 829 line 161 toUtm8.easting: 217855.546078\n    test 830 line 161 toUtm8.northing: 6184108.122568\n    test 831 line 161 toUtm8.gamma: 2.870993\n    test 832 line 161 toUtm8.scale: 1.000182\n    test 833 line 161 toUtm8.lat: 55.753536\n    test 834 line 161 toUtm8.lon: 3.471798\n\n    test skipped (23): line 162 toUtm8.'18.530847071862 86.555312055898 11384139.290401676268 8893889.9495562311576 79.77485364572019046 3.02467156922968230025'\n    test 835 line 163 toUtm8.easting: 3469855.989805\n    test 836 line 163 toUtm8.northing: 7723193.799228\n    test 837 line 163 toUtm8.gamma: 53.114700\n    test 838 line 163 toUtm8.scale: 1.150540\n    test 839 line 163 toUtm8.lat: 54.510125\n    test 840 line 163 toUtm8.lon: 58.556056\n\n    test skipped (24): line 164 toUtm8.'42.864161881687 84.866325602975 5926165.994939154109 9385463.7327467371322 82.506981261616342016 1.45975761947329382411'\n    test 841 line 165 toUtm8.easting: 5798639.662224\n    test 842 line 165 toUtm8.northing: 5305387.640916\n    test 843 line 165 toUtm8.gamma: 38.617257\n    test 844 line 165 toUtm8.scale: 1.442263\n    test 845 line 165 toUtm8.lat: 30.911943\n    test 846 line 165 toUtm8.lon: 57.114102\n    test 847 line 166 toUtm8.easting: 9464.934388\n    test 848 line 166 toUtm8.northing: 6489121.624944\n    test 849 line 166 toUtm8.gamma: 0.138696\n    test 850 line 166 toUtm8.scale: 0.999601\n    test 851 line 166 toUtm8.lat: 58.542493\n    test 852 line 166 toUtm8.lon: 0.162593\n\n    test skipped (25): line 167 toUtm8.'15.022689088683 85.792615487152 12575834.2756139069875 8356610.8954857643175 75.235223160840771295 3.59944161831319404851'\n    test 853 line 168 toUtm8.easting: 2719653.543469\n    test 854 line 168 toUtm8.northing: 9362389.163495\n    test 855 line 168 toUtm8.gamma: 76.049670\n    test 856 line 168 toUtm8.scale: 1.091315\n    test 857 line 168 toUtm8.lat: 65.692275\n    test 858 line 168 toUtm8.lon: 77.241377\n    test 859 line 169 toUtm8.easting: 4845341.924698\n    test 860 line 169 toUtm8.northing: 8710522.326901\n    test 861 line 169 toUtm8.gamma: 72.320942\n    test 862 line 169 toUtm8.scale: 1.300382\n    test 863 line 169 toUtm8.lat: 48.806211\n    test 864 line 169 toUtm8.lon: 76.486365\n\n    test skipped (26): line 170 toUtm8.'56.436024794624 82.61156798689 3935261.5227628794258 9454271.6490618694486 81.162334302626197333 1.19476734082123451158'\n    test 865 line 171 toUtm8.easting: 7074299.823000\n    test 866 line 171 toUtm8.northing: 1648736.065055\n    test 867 line 171 toUtm8.gamma: 12.145925\n    test 868 line 171 toUtm8.scale: 1.687551\n    test 869 line 171 toUtm8.lat: 8.766053\n    test 870 line 171 toUtm8.lon: 54.367539\n    test 871 line 172 toUtm8.easting: 3689072.579308\n    test 872 line 172 toUtm8.northing: 2230802.665211\n    test 873 line 172 toUtm8.gamma: 10.856248\n    test 874 line 172 toUtm8.scale: 1.172689\n    test 875 line 172 toUtm8.lat: 17.095495\n    test 876 line 172 toUtm8.lon: 33.059128\n    test 877 line 173 toUtm8.easting: 8102565.885587\n    test 878 line 173 toUtm8.northing: 5167396.617580\n    test 879 line 173 toUtm8.gamma: 42.324886\n    test 880 line 173 toUtm8.scale: 1.921927\n    test 881 line 173 toUtm8.lat: 22.142861\n    test 882 line 173 toUtm8.lon: 67.200684\n    test 883 line 174 toUtm8.easting: 8181271.353564\n    test 884 line 174 toUtm8.northing: 4425436.547185\n    test 885 line 174 toUtm8.gamma: 35.900845\n    test 886 line 174 toUtm8.scale: 1.945017\n    test 887 line 174 toUtm8.lat: 19.222623\n    test 888 line 174 toUtm8.lon: 65.180785\n    test 889 line 175 toUtm8.easting: 767067.394003\n    test 890 line 175 toUtm8.northing: 3701745.857296\n    test 891 line 175 toUtm8.gamma: 4.519201\n    test 892 line 175 toUtm8.scale: 1.006863\n    test 893 line 175 toUtm8.lat: 33.182474\n    test 894 line 175 toUtm8.lon: 8.216952\n    test 895 line 176 toUtm8.easting: 6688114.168572\n    test 896 line 176 toUtm8.northing: 2052857.299639\n    test 897 line 176 toUtm8.gamma: 14.766191\n    test 898 line 176 toUtm8.scale: 1.607200\n    test 899 line 176 toUtm8.lat: 11.417963\n    test 900 line 176 toUtm8.lon: 52.808691\n    test 901 line 177 toUtm8.easting: 5608408.773761\n    test 902 line 177 toUtm8.northing: 3859055.659110\n    test 903 line 177 toUtm8.gamma: 26.244151\n    test 904 line 177 toUtm8.scale: 1.413463\n    test 905 line 177 toUtm8.lat: 23.836688\n    test 906 line 177 toUtm8.lon: 50.500180\n    test 907 line 178 toUtm8.easting: 3836942.765275\n    test 908 line 178 toUtm8.northing: 6415467.634326\n    test 909 line 178 toUtm8.gamma: 40.575885\n    test 910 line 178 toUtm8.scale: 1.185615\n    test 911 line 178 toUtm8.lat: 45.550020\n    test 912 line 178 toUtm8.lon: 50.148036\n    test 913 line 179 toUtm8.easting: 1298730.366025\n    test 914 line 179 toUtm8.northing: 6021453.000792\n    test 915 line 179 toUtm8.gamma: 15.613320\n    test 916 line 179 toUtm8.scale: 1.020367\n    test 917 line 179 toUtm8.lat: 52.746079\n    test 918 line 179 toUtm8.lon: 19.343926\n    test 919 line 180 toUtm8.easting: 416934.289208\n    test 920 line 180 toUtm8.northing: 7295683.451705\n    test 921 line 180 toUtm8.gamma: 8.238232\n    test 922 line 180 toUtm8.scale: 1.001729\n    test 923 line 180 toUtm8.lat: 65.513348\n    test 924 line 180 toUtm8.lon: 9.039529\n    test 925 line 181 toUtm8.easting: 4336076.850889\n    test 926 line 181 toUtm8.northing: 7617975.722779\n    test 927 line 181 toUtm8.gamma: 56.537088\n    test 928 line 181 toUtm8.scale: 1.238582\n    test 929 line 181 toUtm8.lat: 48.709795\n    test 930 line 181 toUtm8.lon: 63.554005\n    test 931 line 182 toUtm8.easting: 168047.336980\n    test 932 line 182 toUtm8.northing: 2185000.046530\n    test 933 line 182 toUtm8.gamma: 0.542187\n    test 934 line 182 toUtm8.scale: 0.999949\n    test 935 line 182 toUtm8.lat: 19.753509\n    test 936 line 182 toUtm8.lon: 1.603846\n    test 937 line 183 toUtm8.easting: 8276281.328790\n    test 938 line 183 toUtm8.northing: 263444.350545\n    test 939 line 183 toUtm8.gamma: 2.071435\n    test 940 line 183 toUtm8.scale: 1.980314\n    test 941 line 183 toUtm8.lat: 1.202816\n    test 942 line 183 toUtm8.lon: 59.377276\n    test 943 line 184 toUtm8.easting: 4772573.810710\n    test 944 line 184 toUtm8.northing: 6765710.336002\n    test 945 line 184 toUtm8.gamma: 48.857561\n    test 946 line 184 toUtm8.scale: 1.291911\n    test 947 line 184 toUtm8.lat: 42.564975\n    test 948 line 184 toUtm8.lon: 59.356947\n    test 949 line 185 toUtm8.easting: 5427755.074639\n    test 950 line 185 toUtm8.northing: 1556055.820924\n    test 951 line 185 toUtm8.gamma: 9.862178\n    test 952 line 185 toUtm8.scale: 1.387394\n    test 953 line 185 toUtm8.lat: 10.090572\n    test 954 line 185 toUtm8.lon: 44.604132\n    test 955 line 186 toUtm8.easting: 11588458.616240  FAILED, KNOWN, expected 11588458.616041\n    test 956 line 186 toUtm8.northing: 5707993.922683  FAILED, KNOWN, expected 5707993.922613\n    test 957 line 186 toUtm8.gamma: 50.784827\n    test 958 line 186 toUtm8.scale: 3.149567\n    test 959 line 186 toUtm8.lat: 14.133028\n    test 960 line 186 toUtm8.lon: 78.097533\n    test 961 line 187 toUtm8.easting: 7152433.802688\n    test 962 line 187 toUtm8.northing: 761390.695844\n    test 963 line 187 toUtm8.gamma: 5.607350\n    test 964 line 187 toUtm8.scale: 1.705261\n    test 965 line 187 toUtm8.lat: 4.031123\n    test 966 line 187 toUtm8.lon: 54.048782\n    test 967 line 188 toUtm8.easting: 3105651.390901\n    test 968 line 188 toUtm8.northing: 9426026.169064\n    test 969 line 188 toUtm8.gamma: 78.750206\n    test 970 line 188 toUtm8.scale: 1.119737\n    test 971 line 188 toUtm8.lat: 62.746603\n    test 972 line 188 toUtm8.lon: 79.968641\n    test 973 line 189 toUtm8.easting: 2959009.639022\n    test 974 line 189 toUtm8.northing: 8339242.269282\n    test 975 line 189 toUtm8.gamma: 58.460865\n    test 976 line 189 toUtm8.scale: 1.108554\n    test 977 line 189 toUtm8.lat: 60.626429\n    test 978 line 189 toUtm8.lon: 61.851551\n    test 979 line 190 toUtm8.easting: 8640472.267145\n    test 980 line 190 toUtm8.northing: 6230320.417931\n    test 981 line 190 toUtm8.gamma: 52.816810\n    test 982 line 190 toUtm8.scale: 2.062973\n    test 983 line 190 toUtm8.lat: 23.600626\n    test 984 line 190 toUtm8.lon: 72.811634\n    test 985 line 191 toUtm8.easting: 811352.108932\n    test 986 line 191 toUtm8.northing: 9816129.813481\n    test 987 line 191 toUtm8.gamma: 77.299184\n    test 988 line 191 toUtm8.scale: 1.007651\n    test 989 line 191 toUtm8.lat: 82.572236\n    test 990 line 191 toUtm8.lon: 77.402323\n    test 991 line 192 toUtm8.easting: 6521874.973458\n    test 992 line 192 toUtm8.northing: 1053612.479744\n    test 993 line 192 toUtm8.gamma: 7.407328\n    test 994 line 192 toUtm8.scale: 1.575529\n    test 995 line 192 toUtm8.lat: 6.030051\n    test 996 line 192 toUtm8.lon: 50.783505\n    test 997 line 193 toUtm8.easting: 3477983.997875\n    test 998 line 193 toUtm8.northing: 5651613.325947\n    test 999 line 193 toUtm8.gamma: 31.530673\n    test 1000 line 193 toUtm8.scale: 1.151875\n    test 1001 line 193 toUtm8.lat: 42.411523\n    test 1002 line 193 toUtm8.lon: 42.258009\n    test 1003 line 194 toUtm8.easting: 629892.822243\n    test 1004 line 194 toUtm8.northing: 3283914.910451\n    test 1005 line 194 toUtm8.gamma: 3.210482\n    test 1006 line 194 toUtm8.scale: 1.004499\n    test 1007 line 194 toUtm8.lat: 29.526120\n    test 1008 line 194 toUtm8.lon: 6.493069\n    test 1009 line 195 toUtm8.easting: 3381879.687227\n    test 1010 line 195 toUtm8.northing: 5103629.325665\n    test 1011 line 195 toUtm8.gamma: 26.748108\n    test 1012 line 195 toUtm8.scale: 1.143559\n    test 1013 line 195 toUtm8.lat: 39.021853\n    test 1014 line 195 toUtm8.lon: 38.641779\n    test 1015 line 196 toUtm8.easting: 2815986.534177\n    test 1016 line 196 toUtm8.northing: 9387029.120718\n    test 1017 line 196 toUtm8.gamma: 76.967262\n    test 1018 line 196 toUtm8.scale: 1.098032\n    test 1019 line 196 toUtm8.lat: 64.971850\n    test 1020 line 196 toUtm8.lon: 78.151893\n    test 1021 line 197 toUtm8.easting: 3398195.889603\n    test 1022 line 197 toUtm8.northing: 9138936.031490\n    test 1023 line 197 toUtm8.gamma: 74.477499\n    test 1024 line 197 toUtm8.scale: 1.144009\n    test 1025 line 197 toUtm8.lat: 59.961819\n    test 1026 line 197 toUtm8.lon: 76.473422\n    test 1027 line 198 toUtm8.easting: 2421734.754637\n    test 1028 line 198 toUtm8.northing: 5002372.094991\n    test 1029 line 198 toUtm8.gamma: 20.017082\n    test 1030 line 198 toUtm8.scale: 1.072592\n    test 1031 line 198 toUtm8.lat: 41.374040\n    test 1032 line 198 toUtm8.lon: 28.848343\n    test 1033 line 199 toUtm8.easting: 2360869.895525\n    test 1034 line 199 toUtm8.northing: 9553298.449536\n    test 1035 line 199 toUtm8.gamma: 78.848205\n    test 1036 line 199 toUtm8.scale: 1.068453\n    test 1037 line 199 toUtm8.lat: 68.946087\n    test 1038 line 199 toUtm8.lon: 79.574523\n\n    test skipped (27): line 200 toUtm8.'79.275096210569 83.551272329394 1196539.9721941076965 9861920.8362302532842 83.437668440198132309 1.01713723718699411107'\n    test 1039 line 201 toUtm8.easting: 1327758.704795\n    test 1040 line 201 toUtm8.northing: 2375509.241683\n    test 1041 line 201 toUtm8.gamma: 4.617572\n    test 1042 line 201 toUtm8.scale: 1.021465\n    test 1043 line 201 toUtm8.lat: 21.000252\n    test 1044 line 201 toUtm8.lon: 12.697444\n    test 1045 line 202 toUtm8.easting: 2070860.327644\n    test 1046 line 202 toUtm8.northing: 8604500.719581\n    test 1047 line 202 toUtm8.gamma: 54.722761\n    test 1048 line 202 toUtm8.scale: 1.052469\n    test 1049 line 202 toUtm8.lat: 68.015227\n    test 1050 line 202 toUtm8.lon: 56.732419\n    test 1051 line 203 toUtm8.easting: 6564776.654864\n    test 1052 line 203 toUtm8.northing: 8171207.177379\n    test 1053 line 203 toUtm8.gamma: 69.237523\n    test 1054 line 203 toUtm8.scale: 1.573894\n    test 1055 line 203 toUtm8.lat: 37.423675\n    test 1056 line 203 toUtm8.lon: 76.947359\n    test 1057 line 204 toUtm8.easting: 592653.553821\n    test 1058 line 204 toUtm8.northing: 6125529.810052\n    test 1059 line 204 toUtm8.gamma: 7.600785\n    test 1060 line 204 toUtm8.scale: 1.003912\n    test 1061 line 204 toUtm8.lat: 54.922707\n    test 1062 line 204 toUtm8.lon: 9.260818\n    test 1063 line 205 toUtm8.easting: 693459.671821\n    test 1064 line 205 toUtm8.northing: 6943779.991032\n    test 1065 line 205 toUtm8.gamma: 11.787587\n    test 1066 line 205 toUtm8.scale: 1.005496\n    test 1067 line 205 toUtm8.lat: 61.982810\n    test 1068 line 205 toUtm8.lon: 13.299659\n    test 1069 line 206 toUtm8.easting: 1838956.187625\n    test 1070 line 206 toUtm8.northing: 3511959.612381\n    test 1071 line 206 toUtm8.gamma: 9.844313\n    test 1072 line 206 toUtm8.scale: 1.041603\n    test 1073 line 206 toUtm8.lat: 30.324214\n    test 1074 line 206 toUtm8.lon: 18.959769\n    test 1075 line 207 toUtm8.easting: 4460690.884597\n    test 1076 line 207 toUtm8.northing: 5541873.235403\n    test 1077 line 207 toUtm8.gamma: 35.768613\n    test 1078 line 207 toUtm8.scale: 1.254179\n    test 1079 line 207 toUtm8.lat: 37.629667\n    test 1080 line 207 toUtm8.lon: 49.649131\n    test 1081 line 208 toUtm8.easting: 2311168.998941\n    test 1082 line 208 toUtm8.northing: 9480561.869119\n    test 1083 line 208 toUtm8.gamma: 76.828257\n    test 1084 line 208 toUtm8.scale: 1.065556\n    test 1085 line 208 toUtm8.lat: 69.225574\n    test 1086 line 208 toUtm8.lon: 77.656135\n    test 1087 line 209 toUtm8.easting: 4111775.114451\n    test 1088 line 209 toUtm8.northing: 6509014.348792\n    test 1089 line 209 toUtm8.gamma: 43.052130\n    test 1090 line 209 toUtm8.scale: 1.214125\n    test 1091 line 209 toUtm8.lat: 44.698478\n    test 1092 line 209 toUtm8.lon: 52.979304\n    test 1093 line 210 toUtm8.easting: 75358.261962\n    test 1094 line 210 toUtm8.northing: 7711258.662251\n    test 1095 line 210 toUtm8.gamma: 1.806297\n    test 1096 line 210 toUtm8.scale: 0.999669\n    test 1097 line 210 toUtm8.lat: 69.499594\n    test 1098 line 210 toUtm8.lon: 1.928336\n\n    test skipped (28): line 211 toUtm8.'27.981363604998 86.061112755721 8781885.2291162503299 9184776.4522114918448 81.795538514711932534 2.09490761781464961377'\n    test 1099 line 212 toUtm8.easting: 954378.415174\n    test 1100 line 212 toUtm8.northing: 7449110.669807\n    test 1101 line 212 toUtm8.gamma: 19.380657\n    test 1102 line 212 toUtm8.scale: 1.010768\n    test 1103 line 212 toUtm8.lat: 65.699839\n    test 1104 line 212 toUtm8.lon: 21.104725\n    test 1105 line 213 toUtm8.easting: 720971.793706\n    test 1106 line 213 toUtm8.northing: 5265195.121555\n    test 1107 line 213 toUtm8.gamma: 7.002995\n    test 1108 line 213 toUtm8.scale: 1.005995\n    test 1109 line 213 toUtm8.lat: 47.143648\n    test 1110 line 213 toUtm8.lon: 9.512189\n    test 1111 line 214 toUtm8.easting: 561561.493937\n    test 1112 line 214 toUtm8.northing: 989910.236221\n    test 1113 line 214 toUtm8.gamma: 0.793118\n    test 1114 line 214 toUtm8.scale: 1.003505\n    test 1115 line 214 toUtm8.lat: 8.920167\n    test 1116 line 214 toUtm8.lon: 5.101513\n    test 1117 line 215 toUtm8.easting: 3446829.634468\n    test 1118 line 215 toUtm8.northing: 9232868.155664\n    test 1119 line 215 toUtm8.gamma: 76.279075\n    test 1120 line 215 toUtm8.scale: 1.148263\n    test 1121 line 215 toUtm8.lat: 59.778971\n    test 1122 line 215 toUtm8.lon: 78.080322\n\n    test skipped (29): line 216 toUtm8.'55.865310107291 87.384288430943 4048307.5459092527942 9800416.4229977935137 86.843918034217523739 1.20649504624906774925'\n    test 1123 line 217 toUtm8.easting: 8973188.480293\n    test 1124 line 217 toUtm8.northing: 7042230.087021\n    test 1125 line 217 toUtm8.gamma: 60.872456\n    test 1126 line 217 toUtm8.scale: 2.156098\n    test 1127 line 217 toUtm8.lat: 24.310973\n    test 1128 line 217 toUtm8.lon: 76.823777\n    test 1129 line 218 toUtm8.easting: 126314.191618\n    test 1130 line 218 toUtm8.northing: 396006.687921\n    test 1131 line 218 toUtm8.gamma: 0.071065\n    test 1132 line 218 toUtm8.scale: 0.999798\n    test 1133 line 218 toUtm8.lat: 3.582041\n    test 1134 line 218 toUtm8.lon: 1.137286\n    test 1135 line 219 toUtm8.easting: 5247652.345647\n    test 1136 line 219 toUtm8.northing: 8670513.359752\n    test 1137 line 219 toUtm8.gamma: 72.700498\n    test 1138 line 219 toUtm8.scale: 1.355272\n    test 1139 line 219 toUtm8.lat: 46.124233\n    test 1140 line 219 toUtm8.lon: 77.313118\n\n    test skipped (30): line 220 toUtm8.'31.17139056295 87.104503768139 8103656.8381187232079 9469794.014736839373 84.490673011906282841 1.91216400164486142107'\n    test 1141 line 221 toUtm8.easting: 6300112.758236\n    test 1142 line 221 toUtm8.northing: 93835.917364\n    test 1143 line 221 toUtm8.gamma: 0.644805\n    test 1144 line 221 toUtm8.scale: 1.534073\n    test 1145 line 221 toUtm8.lat: 0.553171\n    test 1146 line 221 toUtm8.lon: 49.117104\n    test 1147 line 222 toUtm8.easting: 3894813.593782\n    test 1148 line 222 toUtm8.northing: 4833832.341027\n    test 1149 line 222 toUtm8.gamma: 27.453298\n    test 1150 line 222 toUtm8.scale: 1.192135\n    test 1151 line 222 toUtm8.lat: 35.361587\n    test 1152 line 222 toUtm8.lon: 41.860599\n    test 1153 line 223 toUtm8.easting: 402511.346712\n    test 1154 line 223 toUtm8.northing: 3520621.561911\n    test 1155 line 223 toUtm8.gamma: 2.238474\n    test 1156 line 223 toUtm8.scale: 1.001599\n    test 1157 line 223 toUtm8.lat: 31.750314\n    test 1158 line 223 toUtm8.lon: 4.248167\n    test 1159 line 224 toUtm8.easting: 5357378.503148\n    test 1160 line 224 toUtm8.northing: 2772997.602234\n    test 1161 line 224 toUtm8.gamma: 17.823560\n    test 1162 line 224 toUtm8.scale: 1.376031\n    test 1163 line 224 toUtm8.lat: 17.924336\n    test 1164 line 224 toUtm8.lon: 46.096402\n    test 1165 line 225 toUtm8.easting: 2807553.985866\n    test 1166 line 225 toUtm8.northing: 8177847.980275\n    test 1167 line 225 toUtm8.gamma: 54.680045\n    test 1168 line 225 toUtm8.scale: 1.097531\n    test 1169 line 225 toUtm8.lat: 60.931488\n    test 1170 line 225 toUtm8.lon: 58.221214\n\n    test skipped (31): line 226 toUtm8.'5.358150979521 87.556213284144 18289045.16650076146 7792942.3396035398889 73.216494415207315628 8.09800850850277481729'\n\n    test skipped (32): line 227 toUtm8.'28.616673489124 80.452426461437 8376822.4595378634541 8128174.6238782329989 70.920116640676321501 1.98487312027093768388'\n    test 1171 line 228 toUtm8.easting: 11898068.352950  FAILED, KNOWN, expected 11898068.353272\n    test 1172 line 228 toUtm8.northing: 4772439.493355  FAILED, KNOWN, expected 4772439.493697\n    test 1173 line 228 toUtm8.gamma: 42.613968\n    test 1174 line 228 toUtm8.scale: 3.314412\n    test 1175 line 228 toUtm8.lat: 11.709763\n    test 1176 line 228 toUtm8.lon: 76.760295\n    test 1177 line 229 toUtm8.easting: 10550946.939052  FAILED, KNOWN, expected 10550946.939050\n    test 1178 line 229 toUtm8.northing: 3851968.815305  FAILED, KNOWN, expected 3851968.815295\n    test 1179 line 229 toUtm8.gamma: 33.383025\n    test 1180 line 229 toUtm8.scale: 2.724754\n    test 1181 line 229 toUtm8.lat: 12.009498\n    test 1182 line 229 toUtm8.lon: 71.782351\n\n    test skipped (33): line 230 toUtm8.'37.62978386356 85.795687334213 6828299.1236065501034 9394803.2274626281036 83.181386462369626591 1.62435875189611017521'\n    test 1183 line 231 toUtm8.easting: 11162550.334001  FAILED, KNOWN, expected 11162550.334022\n    test 1184 line 231 toUtm8.northing: 2640267.279546  FAILED, KNOWN, expected 2640267.279593\n    test 1185 line 231 toUtm8.gamma: 23.145404\n    test 1186 line 231 toUtm8.scale: 2.998408\n    test 1187 line 231 toUtm8.lat: 7.721128\n    test 1188 line 231 toUtm8.lon: 71.662731\n    test 1189 line 232 toUtm8.easting: 4411584.447941\n    test 1190 line 232 toUtm8.northing: 4956173.694407\n    test 1191 line 232 toUtm8.gamma: 30.713919\n    test 1192 line 232 toUtm8.scale: 1.248736\n    test 1193 line 232 toUtm8.lat: 34.295026\n    test 1194 line 232 toUtm8.lon: 46.442191\n    test 1195 line 233 toUtm8.easting: 672108.897905\n    test 1196 line 233 toUtm8.northing: 4751554.657054\n    test 1197 line 233 toUtm8.gamma: 5.569178\n    test 1198 line 233 toUtm8.scale: 1.005162\n    test 1199 line 233 toUtm8.lat: 42.622496\n    test 1200 line 233 toUtm8.lon: 8.193605\n    test 1201 line 234 toUtm8.easting: 5022964.290579\n    test 1202 line 234 toUtm8.northing: 6860418.199502\n    test 1203 line 234 toUtm8.gamma: 50.862230\n    test 1204 line 234 toUtm8.scale: 1.324925\n    test 1205 line 234 toUtm8.lat: 41.667780\n    test 1206 line 234 toUtm8.lon: 61.518288\n    test 1207 line 235 toUtm8.easting: 1669655.595207\n    test 1208 line 235 toUtm8.northing: 4152086.537021\n    test 1209 line 235 toUtm8.gamma: 11.110237\n    test 1210 line 235 toUtm8.scale: 1.034138\n    test 1211 line 235 toUtm8.lat: 36.060369\n    test 1212 line 235 toUtm8.lon: 18.444112\n    test 1213 line 236 toUtm8.easting: 6055876.729655\n    test 1214 line 236 toUtm8.northing: 4896837.552619\n    test 1215 line 236 toUtm8.gamma: 35.799747\n    test 1216 line 236 toUtm8.scale: 1.485967\n    test 1217 line 236 toUtm8.lat: 27.948091\n    test 1218 line 236 toUtm8.lon: 56.816429\n    test 1219 line 237 toUtm8.easting: 1209214.164379\n    test 1220 line 237 toUtm8.northing: 7266409.859178\n    test 1221 line 237 toUtm8.gamma: 22.319633\n    test 1222 line 237 toUtm8.scale: 1.017554\n    test 1223 line 237 toUtm8.lat: 63.386030\n    test 1224 line 237 toUtm8.lon: 24.662716\n    test 1225 line 238 toUtm8.easting: 5154564.559584\n    test 1226 line 238 toUtm8.northing: 698118.349975\n    test 1227 line 238 toUtm8.gamma: 4.242360\n    test 1228 line 238 toUtm8.scale: 1.347481\n    test 1229 line 238 toUtm8.lat: 4.680922\n    test 1230 line 238 toUtm8.lon: 42.114426\n    test 1231 line 239 toUtm8.easting: 2695149.806543\n    test 1232 line 239 toUtm8.northing: 8208197.765605\n    test 1233 line 239 toUtm8.gamma: 54.178615\n    test 1234 line 239 toUtm8.scale: 1.089730\n    test 1235 line 239 toUtm8.lat: 61.826625\n    test 1236 line 239 toUtm8.lon: 57.525096\n    test 1237 line 240 toUtm8.easting: 3394792.327820\n    test 1238 line 240 toUtm8.northing: 3217583.415552\n    test 1239 line 240 toUtm8.gamma: 15.165863\n    test 1240 line 240 toUtm8.scale: 1.145285\n    test 1241 line 240 toUtm8.lat: 25.104353\n    test 1242 line 240 toUtm8.lon: 32.528660\n    test 1243 line 241 toUtm8.easting: 1429160.966985\n    test 1244 line 241 toUtm8.northing: 8212685.362032\n    test 1245 line 241 toUtm8.gamma: 37.484904\n    test 1246 line 241 toUtm8.scale: 1.024676\n    test 1247 line 241 toUtm8.lat: 69.678351\n    test 1248 line 241 toUtm8.lon: 39.275513\n\n    test skipped (34): line 242 toUtm8.'29.671383681805 84.19659549085 8343387.9980651104898 8885196.9545780118644 78.561937382568633298 1.97473261886829061763'\n    test 1249 line 243 toUtm8.easting: 1990722.928606\n    test 1250 line 243 toUtm8.northing: 7569202.065162\n    test 1251 line 243 toUtm8.gamma: 37.075276\n    test 1252 line 243 toUtm8.scale: 1.048486\n    test 1253 line 243 toUtm8.lat: 62.300208\n    test 1254 line 243 toUtm8.lon: 40.474051\n    test 1255 line 244 toUtm8.easting: 1554980.099559\n    test 1256 line 244 toUtm8.northing: 1449423.919586\n    test 1257 line 244 toUtm8.gamma: 3.188328\n    test 1258 line 244 toUtm8.scale: 1.029664\n    test 1259 line 244 toUtm8.lat: 12.721776\n    test 1260 line 244 toUtm8.lon: 14.190003\n    test 1261 line 245 toUtm8.easting: 785205.450196\n    test 1262 line 245 toUtm8.northing: 5575158.423096\n    test 1263 line 245 toUtm8.gamma: 8.388417\n    test 1264 line 245 toUtm8.scale: 1.007181\n    test 1265 line 245 toUtm8.lat: 49.811296\n    test 1266 line 245 toUtm8.lon: 10.925011\n    test 1267 line 246 toUtm8.easting: 3310405.988313\n    test 1268 line 246 toUtm8.northing: 5955022.233881\n    test 1269 line 246 toUtm8.gamma: 33.007587\n    test 1270 line 246 toUtm8.scale: 1.137141\n    test 1271 line 246 toUtm8.lat: 45.132680\n    test 1272 line 246 toUtm8.lon: 42.478624\n    test 1273 line 247 toUtm8.easting: 4733460.960666\n    test 1274 line 247 toUtm8.northing: 129034.889816\n    test 1275 line 247 toUtm8.gamma: 0.737551\n    test 1276 line 247 toUtm8.scale: 1.290439\n    test 1277 line 247 toUtm8.lat: 0.904279\n    test 1278 line 247 toUtm8.lon: 39.078412\n    test 1279 line 248 toUtm8.easting: 3322708.343909\n    test 1280 line 248 toUtm8.northing: 3864738.078742\n    test 1281 line 248 toUtm8.gamma: 18.472566\n    test 1282 line 248 toUtm8.scale: 1.138838\n    test 1283 line 248 toUtm8.lat: 30.163605\n    test 1284 line 248 toUtm8.lon: 33.577996\n\n    test skipped (35): line 249 toUtm8.'27.643243707755 81.892859091432 8672864.4172042475623 8333465.9834441061554 73.206272638168122883 2.06544053870286774312'\n\n    test skipped (36): line 250 toUtm8.'18.201207657521 82.434617649311 11126818.23119627031 7618712.1749910723126 67.88717347393512063 2.92241673495261070414'\n\n    test skipped (37): line 251 toUtm8.'28.804576432117 89.886072420251 8650100.9817967479337 9975084.1689971279206 89.767446308690086924 2.05728879562910108817'\n    test 1285 line 252 toUtm8.easting: 2212701.180192\n    test 1286 line 252 toUtm8.northing: 650348.100229\n    test 1287 line 252 toUtm8.gamma: 1.970441\n    test 1288 line 252 toUtm8.scale: 1.060830\n    test 1289 line 252 toUtm8.lat: 5.542998\n    test 1290 line 252 toUtm8.lon: 19.589578\n    test 1291 line 253 toUtm8.easting: 6890222.326618\n    test 1292 line 253 toUtm8.northing: 7506813.499547\n    test 1293 line 253 toUtm8.gamma: 62.684825\n    test 1294 line 253 toUtm8.scale: 1.638488\n    test 1295 line 253 toUtm8.lat: 34.237147\n    test 1296 line 253 toUtm8.lon: 73.678164\n    test 1297 line 254 toUtm8.easting: 6692260.067325\n    test 1298 line 254 toUtm8.northing: 4244174.008110\n    test 1299 line 254 toUtm8.gamma: 31.812920\n    test 1300 line 254 toUtm8.scale: 1.604640\n    test 1301 line 254 toUtm8.lat: 22.704949\n    test 1302 line 254 toUtm8.lon: 57.877010\n    test 1303 line 255 toUtm8.easting: 1225564.137190\n    test 1304 line 255 toUtm8.northing: 4778923.924144\n    test 1305 line 255 toUtm8.gamma: 10.083419\n    test 1306 line 255 toUtm8.scale: 1.018134\n    test 1307 line 255 toUtm8.lat: 42.192424\n    test 1308 line 255 toUtm8.lon: 14.828196\n    test 1309 line 256 toUtm8.easting: 12341116.155088  FAILED, KNOWN, expected 12341116.154950\n    test 1310 line 256 toUtm8.northing: 5081855.520287  FAILED, KNOWN, expected 5081855.521966\n    test 1311 line 256 toUtm8.gamma: 45.712545  FAILED, KNOWN, expected 45.712546\n    test 1312 line 256 toUtm8.scale: 3.535170\n    test 1313 line 256 toUtm8.lat: 11.481151\n    test 1314 line 256 toUtm8.lon: 78.189236\n    test 1315 line 257 toUtm8.easting: 6673845.021771\n    test 1316 line 257 toUtm8.northing: 1177587.190565\n    test 1317 line 257 toUtm8.gamma: 8.389141\n    test 1318 line 257 toUtm8.scale: 1.605171\n    test 1319 line 257 toUtm8.lat: 6.609626\n    test 1320 line 257 toUtm8.lon: 51.735783\n    test 1321 line 258 toUtm8.easting: 6966354.690417\n    test 1322 line 258 toUtm8.northing: 3641802.005093\n    test 1323 line 258 toUtm8.gamma: 27.409636\n    test 1324 line 258 toUtm8.scale: 1.661469\n    test 1325 line 258 toUtm8.lat: 19.059369\n    test 1326 line 258 toUtm8.lon: 57.526439\n    test 1327 max forward error: 1.678809e-03\n    test 1328 max reverse error: 3.170456e-09\n    test 1329 Utm.scale0: 0.9996\n    test 1330 Utm.datum: WGS84\n    test 1331 Utm.datum.ellipsoid.KsOrder: 8\n    test 1332 WGS84.KsOrder: 8\n\n    23 of 1332 testUtmTMcoords.py tests (1.7%) FAILED, ALL KNOWN, 37 skipped (pygeodesy 26.3.26 Python 2.7.18 64bit arm64_x86_64 geographiclib 1.50 numpy 1.16.6 scipy 1.2.2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 -W  default) 335.589 ms\nrunning /Library/Framewo....ython -W default ~/PyGeodesy/test/testUtmUps.py\n\n    testing testUtmUps.py 23.03.27 (module pygeodesy.utmups 25.04.14)\n    test 1 UtmUps: 00 N 448251.0 5411932.0001\n    test 2 UtmUps.ValidateOK: True\n    test 3 UtmUps: 00 N 448252 5411933\n    test 4 UtmUps: 00 N 448251.795 5411932.678\n    test 5 UtmUps: 00Z N 448251.8 5411932.7 n/a n/a\n    test 6 UtmUps.ValidateOK: True\n    test 7 UtmUps.toLatLon: 43.684097°N, 175.265195°E\n    test 8 UtmUps.toLatLon: 43°41′02.75″N, 175°15′54.7″E\n    test 9 LL.toUtmUps: 60 N 360177 4838249\n    test 10 LL.toUtmUps: 60 N 360176.686 4838249.416\n    test 11 LL.toUtmUps: [Z:60T, H:N, E:360177, N:4838249, C:-1.19839167°, S:0.99984048]\n    test 12 LL.toUtmUps.ValidateOK: True\n    test 13 toUtmUps8ID1: 00Y N 1530125.78 2426773.6 -132.24798917° 0.99647445\n    test 14 toUtmUps8ID1.ValidateOK: True\n    test 15 toUtmUps8ID1.ValidateOK: True\n    test 16 toUtmUps8ID2: 38 N 467367.68 8100752.13 -57.37878422′ 0.99961302  FAILED, KNOWN, expected 38 N 3320416.75 632668.43 +44.0° 1.01619505\n    test 17 toUtmUps8ID2.ValidateOK: True\n    test 18 toUtmUps8ID2.ValidateOK: True\n    test 19 toUtmUps8ID2: 00 N 3320416.75 632668.43 +44.0° 1.01619505\n    test 20 toUtmUps8ID2.ValidateOK: easting (3320416.7473598532): outside UPS range [1300000, 2700000]  FAILED, KNOWN, expected True\n    test 21 toUtmUps8ID3: 00B S 2222979.47 1797474.9 -132.24786194° 0.99455723\n    test 22 toUtmUps8ID3.ValidateOK: True\n    test 23 toUtmUps8ID3.ValidateOK: True\n    test 24 UtmUps.toLatLonID4.ValidateOK: True\n    test 25 UtmUps.toLatLonID4: 84°17′14.04″N, 132°14′52.76″W\n    test 26 UtmUps.toLatLonID4: 84.287234°N, 132.247989°W\n    test 27 UtmUps.ValidateOK: easting (3320416.75): outside UPS range [1300000, 2700000]  FAILED, KNOWN, expected True\n    test 28 UtmUps.toLatLonID5: 73°00′00.0″N, 044°00′00.0″E\n    test 29 UtmUps.toLatLonID5: 73.0°N, 044.0°E\n    test 30 UtmUps.ValidateOK: True\n    test 31 UtmUps.toLatLonID6: 87°17′14.4″S, 132°14′52.3″E\n    test 32 UtmUps.toLatLonID6: 87.287333°S, 132.247861°E\n    test 33 latlon1: 61.2°N, 149.9°W\n    test 34 toUtmUps8: 06 N 344174 6788521\n    test 35 toUtmUps8: 06V N 344173.864114 6788521.418164 -2.54179531° 0.99989751\n    test 36 toUtmUps8.ValidateOK: True\n    test 37 toMgrs: 06V UN 44173 88521\n    test 38 latlon2: LatLon(83°37′37.2″N, 032°39′50.4″W)\n    test 39 toUtmUps8: 25 N 504164 9286466\n    test 40 toUtmUps8: [Z:25X, H:N, E:504164, N:9286466]\n    test 41 toUtmUps8: 25X N 504163.899383 9286465.664902 +20.03542083′ 0.99960021\n    test 42 toUtmUps8.ValidateOK: True\n    test 43 toMgrs: 25X EN 04163 86465\n    test 44 latlon3: 33.33°N, 044.44°E\n    test 45 toUtmUps8: 38 N 447882 3688012\n    test 46 toUtmUps8: 38S N 447882.413169 3688011.692733 -18.46228466′ 0.99963349\n    test 47 toUtmUps8.ValidateOK: True\n    test 48 toMgrs: 38S MB 47882 88011\n    test 49 latlon4: 79.0°S, 079.0°W\n    test 50 toUtmUps8: 17 S 542594 1229296\n    test 51 toUtmUps8: 17C S 542594.134555 1229296.157301 -1.96328341° 0.99962217\n    test 52 toUtmUps8.ValidateOK: True\n    test 53 toMgrs: 17C NN 42594 29296\n    test 54 latlon5: 84.0°N, 084.0°E\n    test 55 toUtmUps8: 00 N 2663075 1930308\n    test 56 toUtmUps8: 00Z N 2663075.299562 1930307.977716 +84.0° 0.99673\n    test 57 toUtmUps8.ValidateOK: True\n    test 58 latlon6: 13.4125°N, 103.8667°E\n    test 59 toUtmUps8: 48 N 377302 1483035\n    test 60 toUtmUps8: 48P N 377302.354183 1483034.777084 -15.77480856′ 0.99978623\n    test 61 toUtmUps8.ValidateOK: True\n    test 62 toMgrs: 48P UV 77302 83034\n    test 63 latlon7: 13.4125°S, 103.8667°W\n    test 64 LL.toUtmUps: 13 S 622698 8516965\n    test 65 LL.toUtmUps: 13L S 622697.645817 8516965.222916 -15.77480856′ 0.99978623\n    test 66 LL.toUtmUps.ValidateOK: True\n    test 67 toMgrs: 13L FF 22697 16965\n    test 68 latlon8: 43.684097°N, 175.265195°E\n    test 69 LL.toUtmUps: 60 N 360177 4838249\n    test 70 LL.toUtmUps: 60 N 360176.691 4838249.422\n    test 71 LL.toUtmUps: [Z:60T, H:N, E:360177, N:4838249, C:-1.19839163°, S:0.99984048]\n    test 72 LL.toUtmUps.ValidateOK: True\n    test 73 toMgrs: 60T UP 60176 38249\n    test 74 UtmUps.toLatLon: 43.684097°N, 175.265195°E\n    test 75 UtmUps.toLatLon: 43°41′02.75″N, 175°15′54.7″E\n    test 76 latlon9: 41.321801°N, 074.801413°W\n    test 77 LL.toUtmUps: 18 N 516620 4574500\n    test 78 LL.toUtmUps: [Z:18T, H:N, E:516620, N:4574500, C:+7.86748851′, S:0.9996034]\n    test 79 LL.toUtmUps.ValidateOK: True\n    test 80 toMgrs: 18T WL 16619 74500\n    test 81 UtmUps.toLatLon: 41.321801°N, 074.801413°W\n    test 82 UtmUps.toLatLon: 41°19′18.48″N, 074°48′05.09″W\n    test 83 parseUTMUPS5: 18 N 516620 4574500\n    test 84 parseUTMUPS5.ValidateOK: True\n    test 85 UtmUps.toLatLon: 41.321801°N, 074.801413°W\n    test 86 UtmUps: 00A S 321441 5810117\n    test 87 UtmUps.ValidateOK: easting (321441.0425108216): outside UPS range [800000, 3200000]  FAILED, KNOWN, expected True\n    test 88 UtmUps.toLatLon: 53.713776°S, 023.77604°W\n    test 89 UtmUps.toLatLon: 53°42′49.59″S, 023°46′33.74″W\n    test 90 LL.toUtmUps: 27 S 316807 4044745\n    test 91 LL.toUtmUps.ValidateOK: True\n    test 92 LL.toUtmUps: 27 S 316807.326 4044744.532\n    test 93 LL.toUtmUps: [Z:27F, H:S, E:316807, N:4044745, C:+2.23830171°, S:1.00001184]\n    test 94 UtmUps: 00Z N 400000 5000000\n    test 95 UtmUps.ValidateOK: True\n    test 96 parseUTMUPS5: (31, 'N', 446000.0, 8436100.0, 'X')\n    test 97 parseUTMUPS5: (0, 'S', 506346.0, 1057743.0, 'A')\n\n    4 of 97 testUtmUps.py tests (4.1%) FAILED, ALL KNOWN (pygeodesy 26.3.26 Python 2.7.18 64bit arm64_x86_64 geographiclib 1.50 numpy 1.16.6 scipy 1.2.2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 -W  default) 17.455 ms\nrunning /Library/Framewo....ython -W default ~/PyGeodesy/test/testUtmUpsTMcoords.py\n\n    testing testUtmUpsTMcoords.py 24.03.22 (module pygeodesy.utmups 25.04.14)\n    test 1 line 1 toUtmUps8.easting: 1548706.791619\n    test 2 line 1 toUtmUps8.northing: 8451449.198772\n    test 3 line 1 toUtmUps8.gamma: 43.922790\n    test 4 line 1 toUtmUps8.scale: 1.029060\n    test 5 line 1 toUtmUps8.lat: 70.579277\n    test 6 line 1 toUtmUps8.lon: 45.599420\n    test 7 line 2 toUtmUps8.easting: 2624150.740929\n    test 8 line 2 toUtmUps8.northing: 1204434.041605\n    test 9 line 2 toUtmUps8.gamma: 4.292619\n    test 10 line 2 toUtmUps8.scale: 1.086051\n    test 11 line 2 toUtmUps8.lat: 10.018894\n    test 12 line 2 toUtmUps8.lon: 23.313324\n    test 13 line 3 toUtmUps8.easting: 9855841.232935\n    test 14 line 3 toUtmUps8.northing: 6145496.115157  FAILED, KNOWN, expected 6145496.115155\n    test 15 line 3 toUtmUps8.gamma: 53.348315\n    test 16 line 3 toUtmUps8.scale: 2.445098\n    test 17 line 3 toUtmUps8.lat: 19.479896\n    test 18 line 3 toUtmUps8.lon: 75.662049\n    test 19 line 4 toUtmUps8.easting: 3206390.691996\n    test 20 line 4 toUtmUps8.northing: 2650745.400406\n    test 21 line 4 toUtmUps8.gamma: 11.666950\n    test 22 line 4 toUtmUps8.scale: 1.129359\n    test 23 line 4 toUtmUps8.lat: 21.072465\n    test 24 line 4 toUtmUps8.lon: 29.828684\n    test 25 line 5 toUtmUps8.easting: 4328154.083501\n    test 26 line 5 toUtmUps8.northing: 749647.623690\n    test 27 line 5 toUtmUps8.gamma: 4.024317\n    test 28 line 5 toUtmUps8.scale: 1.240829\n    test 29 line 5 toUtmUps8.lat: 5.458957\n    test 30 line 5 toUtmUps8.lon: 36.385237\n    test 31 line 6 toUtmUps8.easting: 847598.266514\n    test 32 line 6 toUtmUps8.northing: 7947180.962440\n    test 33 line 6 toUtmUps8.gamma: 21.639091\n    test 34 line 6 toUtmUps8.scale: 1.008399\n    test 35 line 6 toUtmUps8.lat: 70.175454\n    test 36 line 6 toUtmUps8.lon: 22.865350\n    test 37 line 7 toUtmUps8.easting: 2727657.337974\n    test 38 line 7 toUtmUps8.northing: 8283916.696410\n    test 39 line 7 toUtmUps8.gamma: 55.690909\n    test 40 line 7 toUtmUps8.scale: 1.091942\n    test 41 line 7 toUtmUps8.lat: 61.965605\n    test 42 line 7 toUtmUps8.lon: 58.931371\n    test 43 line 8 toUtmUps8.easting: 2331001.751890\n    test 44 line 8 toUtmUps8.northing: 1313608.224751\n    test 45 line 8 toUtmUps8.gamma: 4.214690\n    test 46 line 8 toUtmUps8.scale: 1.067599\n    test 47 line 8 toUtmUps8.lat: 11.116050\n    test 48 line 8 toUtmUps8.lon: 20.901069\n    test 49 line 9 toUtmUps8.easting: 6035557.239480\n    test 50 line 9 toUtmUps8.northing: 5791770.791879\n    test 51 line 9 toUtmUps8.gamma: 43.698170\n    test 52 line 9 toUtmUps8.scale: 1.481260\n    test 53 line 9 toUtmUps8.lat: 32.210543\n    test 54 line 9 toUtmUps8.lon: 60.705849\n    test 55 line 10 toUtmUps8.easting: 1064553.125852\n    test 56 line 10 toUtmUps8.northing: 9417273.737208\n    test 57 line 10 toUtmUps8.gamma: 61.100380\n    test 58 line 10 toUtmUps8.scale: 1.013475\n    test 59 line 10 toUtmUps8.lat: 79.187451\n    test 60 line 10 toUtmUps8.lon: 61.532382\n    test 61 line 11 toUtmUps8.easting: 1400137.116164\n    test 62 line 11 toUtmUps8.northing: 9616907.017686\n    test 63 line 11 toUtmUps8.gamma: 74.527087\n    test 64 line 11 toUtmUps8.scale: 1.023640\n    test 65 line 11 toUtmUps8.lat: 77.103759\n    test 66 line 11 toUtmUps8.lon: 74.899105\n\n    test skipped (1): line 12 toUtmUps8.'21.889514024862 80.019885892785 9860691.0166261508479 7433039.1433282732643 65.357693372142649007 2.43897318400097845293'\n\n    test skipped (2): line 13 toUtmUps8.'30.53629567699 82.186177919416 8076501.8336948099169 8561614.1747819103782 75.073393190238557702 1.90620203595203984732'\n    test 67 line 14 toUtmUps8.easting: 3335099.866623\n    test 68 line 14 toUtmUps8.northing: 6740519.084015\n    test 69 line 14 toUtmUps8.gamma: 40.611821\n    test 70 line 14 toUtmUps8.scale: 1.139021\n    test 71 line 14 toUtmUps8.lat: 49.990485\n    test 72 line 14 toUtmUps8.lon: 48.203179\n\n    test skipped (3): line 15 toUtmUps8.'14.486311853451 80.905136710227 12051574.9284996192629 6587213.0519512810474 59.033236797073779959 3.3574686117030164354'\n    test 73 line 16 toUtmUps8.easting: 5387578.735298\n    test 74 line 16 toUtmUps8.northing: 4111216.907168\n    test 75 line 16 toUtmUps8.gamma: 27.574337\n    test 76 line 16 toUtmUps8.scale: 1.379357\n    test 77 line 16 toUtmUps8.lat: 25.936824\n    test 78 line 16 toUtmUps8.lon: 49.913598\n    test 79 line 17 toUtmUps8.easting: 2622214.380233\n    test 80 line 17 toUtmUps8.northing: 8678923.984567\n    test 81 line 17 toUtmUps8.gamma: 61.697275\n    test 82 line 17 toUtmUps8.scale: 1.084810\n    test 83 line 17 toUtmUps8.lat: 64.402196\n    test 84 line 17 toUtmUps8.lon: 64.091395\n\n    test skipped (4): line 18 toUtmUps8.'48.451353594584 84.856197560189 5068474.169632778036 9492066.9937094951003 83.156739839119105102 1.3299901985118008373'\n    test 85 line 19 toUtmUps8.easting: 738062.047779\n    test 86 line 19 toUtmUps8.northing: 3031007.074116\n    test 87 line 19 toUtmUps8.gamma: 3.416802\n    test 88 line 19 toUtmUps8.scale: 1.006332\n    test 89 line 19 toUtmUps8.lat: 27.203895\n    test 90 line 19 toUtmUps8.lon: 7.440229\n    test 91 line 20 toUtmUps8.easting: 1944413.834565\n    test 92 line 20 toUtmUps8.northing: 9613299.224493\n    test 93 line 20 toUtmUps8.gamma: 78.462831\n    test 94 line 20 toUtmUps8.scale: 1.046134\n    test 95 line 20 toUtmUps8.lat: 72.509000\n    test 96 line 20 toUtmUps8.lon: 78.982283\n    test 97 line 21 toUtmUps8.easting: 2114521.418406\n    test 98 line 21 toUtmUps8.northing: 4954077.440098\n    test 99 line 21 toUtmUps8.gamma: 17.571878\n    test 100 line 21 toUtmUps8.scale: 1.055093\n    test 101 line 21 toUtmUps8.lat: 41.824954\n    test 102 line 21 toUtmUps8.lon: 25.392744\n    test 103 line 22 toUtmUps8.easting: 620365.905090\n    test 104 line 22 toUtmUps8.northing: 4755542.026562\n    test 105 line 22 toUtmUps8.gamma: 5.152022\n    test 106 line 22 toUtmUps8.scale: 1.004338\n    test 107 line 22 toUtmUps8.lat: 42.701376\n    test 108 line 22 toUtmUps8.lon: 7.572738\n    test 109 line 23 toUtmUps8.easting: 263004.770989\n    test 110 line 23 toUtmUps8.northing: 4493669.762451\n    test 111 line 23 toUtmUps8.gamma: 2.020523\n    test 112 line 23 toUtmUps8.scale: 1.000452\n    test 113 line 23 toUtmUps8.lat: 40.552052\n    test 114 line 23 toUtmUps8.lon: 3.106056\n    test 115 line 24 toUtmUps8.easting: 3217221.739462\n    test 116 line 24 toUtmUps8.northing: 437776.119161\n    test 117 line 24 toUtmUps8.gamma: 1.848169\n    test 118 line 24 toUtmUps8.scale: 1.130558\n    test 119 line 24 toUtmUps8.lat: 3.501242\n    test 120 line 24 toUtmUps8.lon: 27.806507\n\n    test skipped (5): line 25 toUtmUps8.'10.148714782203 85.373767569431 14661142.4449607145297 7476100.8241849819567 68.376669038799719822 4.89664968310721668858'\n    test 121 line 26 toUtmUps8.easting: 967777.158554\n    test 122 line 26 toUtmUps8.northing: 6615684.266592\n    test 123 line 26 toUtmUps8.gamma: 14.410044\n    test 124 line 26 toUtmUps8.scale: 1.011100\n    test 125 line 26 toUtmUps8.lat: 58.582623\n    test 126 line 26 toUtmUps8.lon: 16.755558\n    test 127 line 27 toUtmUps8.easting: 7558840.728461\n    test 128 line 27 toUtmUps8.northing: 4144728.130764\n    test 129 line 27 toUtmUps8.gamma: 32.557264\n    test 130 line 27 toUtmUps8.scale: 1.791490\n    test 131 line 27 toUtmUps8.lat: 19.793004\n    test 132 line 27 toUtmUps8.lon: 61.746763\n    test 133 line 28 toUtmUps8.easting: 1056008.314161\n    test 134 line 28 toUtmUps8.northing: 9290799.692669\n    test 135 line 28 toUtmUps8.gamma: 55.843278\n    test 136 line 28 toUtmUps8.scale: 1.013253\n    test 137 line 28 toUtmUps8.lat: 78.666776\n    test 138 line 28 toUtmUps8.lon: 56.365355\n    test 139 line 29 toUtmUps8.easting: 1943965.134687\n    test 140 line 29 toUtmUps8.northing: 1389972.228690\n    test 141 line 29 toUtmUps8.gamma: 3.774869\n    test 142 line 29 toUtmUps8.scale: 1.046724\n    test 143 line 29 toUtmUps8.lat: 11.998788\n    test 144 line 29 toUtmUps8.lon: 17.597873\n    test 145 line 30 toUtmUps8.easting: 5803077.072902\n    test 146 line 30 toUtmUps8.northing: 5649957.943659\n    test 147 line 30 toUtmUps8.gamma: 41.717943\n    test 148 line 30 toUtmUps8.scale: 1.442572\n    test 149 line 30 toUtmUps8.lat: 32.540378\n    test 150 line 30 toUtmUps8.lon: 58.764613\n    test 151 line 31 toUtmUps8.easting: 2928716.986009\n    test 152 line 31 toUtmUps8.northing: 5731835.058317\n    test 153 line 31 toUtmUps8.gamma: 28.538550\n    test 154 line 31 toUtmUps8.scale: 1.106780\n    test 155 line 31 toUtmUps8.lat: 45.160356\n    test 156 line 31 toUtmUps8.lon: 37.465285\n    test 157 line 32 toUtmUps8.easting: 326141.975756\n    test 158 line 32 toUtmUps8.northing: 8881325.164543\n    test 159 line 32 toUtmUps8.gamma: 16.111415\n    test 160 line 32 toUtmUps8.scale: 1.000900\n    test 161 line 32 toUtmUps8.lat: 79.584190\n    test 162 line 32 toUtmUps8.lon: 16.367006\n    test 163 line 33 toUtmUps8.easting: 3933015.267450\n    test 164 line 33 toUtmUps8.northing: 7932373.909512\n    test 165 line 33 toUtmUps8.gamma: 58.577424\n    test 166 line 33 toUtmUps8.scale: 1.194811\n    test 167 line 33 toUtmUps8.lat: 52.470664\n    test 168 line 33 toUtmUps8.lon: 64.125580\n    test 169 line 34 toUtmUps8.easting: 8598926.983213\n    test 170 line 34 toUtmUps8.northing: 6214135.167503\n    test 171 line 34 toUtmUps8.gamma: 52.612878\n    test 172 line 34 toUtmUps8.scale: 2.051367\n    test 173 line 34 toUtmUps8.lat: 23.702673\n    test 174 line 34 toUtmUps8.lon: 72.630363\n    test 175 line 35 toUtmUps8.easting: 6620553.333772\n    test 176 line 35 toUtmUps8.northing: 6540527.122948\n    test 177 line 35 toUtmUps8.gamma: 52.350140\n    test 178 line 35 toUtmUps8.scale: 1.586614\n    test 179 line 35 toUtmUps8.lat: 32.603520\n    test 180 line 35 toUtmUps8.lon: 67.280123\n    test 181 line 36 toUtmUps8.easting: 1515136.758292\n    test 182 line 36 toUtmUps8.northing: 3858996.087537\n    test 183 line 36 toUtmUps8.gamma: 9.225127\n    test 184 line 36 toUtmUps8.scale: 1.028029\n    test 185 line 36 toUtmUps8.lat: 33.776224\n    test 186 line 36 toUtmUps8.lon: 16.280993\n    test 187 line 37 toUtmUps8.easting: 479854.373445\n    test 188 line 37 toUtmUps8.northing: 8980501.389896\n    test 189 line 37 toUtmUps8.gamma: 25.021222\n    test 190 line 37 toUtmUps8.scale: 1.002415\n    test 191 line 37 toUtmUps8.lat: 79.932747\n    test 192 line 37 toUtmUps8.lon: 25.363622\n    test 193 line 38 toUtmUps8.easting: 5243446.564940\n    test 194 line 38 toUtmUps8.northing: 140657.213960\n    test 195 line 38 toUtmUps8.gamma: 0.862817\n    test 196 line 38 toUtmUps8.scale: 1.360358\n    test 197 line 38 toUtmUps8.lat: 0.935056\n    test 198 line 38 toUtmUps8.lon: 42.538824\n\n    test skipped (6): line 39 toUtmUps8.'13.490862440668 83.178380075606 12806457.9232176809509 7170118.6846750266674 64.708921319446620085 3.7405880916836789809'\n    test 199 line 40 toUtmUps8.easting: 1202993.459158\n    test 200 line 40 toUtmUps8.northing: 5557316.053599\n    test 201 line 40 toUtmUps8.gamma: 12.579061\n    test 202 line 40 toUtmUps8.scale: 1.017426\n    test 203 line 40 toUtmUps8.lat: 48.979057\n    test 204 line 40 toUtmUps8.lon: 16.474542\n    test 205 line 41 toUtmUps8.easting: 1729088.710196\n    test 206 line 41 toUtmUps8.northing: 7770874.289954\n    test 207 line 41 toUtmUps8.gamma: 36.021783\n    test 208 line 41 toUtmUps8.scale: 1.036397\n    test 209 line 41 toUtmUps8.lat: 65.036016\n    test 210 line 41 toUtmUps8.lon: 38.729091\n    test 211 line 42 toUtmUps8.easting: 2437301.517425\n    test 212 line 42 toUtmUps8.northing: 5539327.748318\n    test 213 line 42 toUtmUps8.gamma: 23.461879\n    test 214 line 42 toUtmUps8.scale: 1.073459\n    test 215 line 42 toUtmUps8.lat: 45.510091\n    test 216 line 42 toUtmUps8.lon: 31.303729\n    test 217 line 43 toUtmUps8.easting: 3647186.135066\n    test 218 line 43 toUtmUps8.northing: 2086412.330983\n    test 219 line 43 toUtmUps8.gamma: 10.023991\n    test 220 line 43 toUtmUps8.scale: 1.168707\n    test 221 line 43 toUtmUps8.lat: 16.058010\n    test 222 line 43 toUtmUps8.lon: 32.520026\n    test 223 line 44 toUtmUps8.easting: 1818497.243556\n    test 224 line 44 toUtmUps8.northing: 4275471.745057\n    test 225 line 44 toUtmUps8.gamma: 12.499656\n    test 226 line 44 toUtmUps8.scale: 1.040604\n    test 227 line 44 toUtmUps8.lat: 36.845200\n    test 228 line 44 toUtmUps8.lon: 20.282283\n    test 229 line 45 toUtmUps8.easting: 3751304.113783\n    test 230 line 45 toUtmUps8.northing: 5130454.001592\n    test 231 line 45 toUtmUps8.gamma: 28.959707\n    test 232 line 45 toUtmUps8.scale: 1.177681\n    test 233 line 45 toUtmUps8.lat: 37.865481\n    test 234 line 45 toUtmUps8.lon: 41.990402\n    test 235 line 46 toUtmUps8.easting: 2616733.138544\n    test 236 line 46 toUtmUps8.northing: 394644.463815\n    test 237 line 46 toUtmUps8.gamma: 1.390425\n    test 238 line 46 toUtmUps8.scale: 1.085595\n    test 239 line 46 toUtmUps8.lat: 3.287272\n    test 240 line 46 toUtmUps8.lon: 22.917604\n    test 241 line 47 toUtmUps8.easting: 1756506.573942\n    test 242 line 47 toUtmUps8.northing: 5570393.986394\n    test 243 line 47 toUtmUps8.gamma: 17.897894\n    test 244 line 47 toUtmUps8.scale: 1.037732\n    test 245 line 47 toUtmUps8.lat: 47.813686\n    test 246 line 47 toUtmUps8.lon: 23.545092\n    test 247 line 48 toUtmUps8.easting: 8752461.894711\n    test 248 line 48 toUtmUps8.northing: 6087728.152284\n    test 249 line 48 toUtmUps8.gamma: 51.628465\n    test 250 line 48 toUtmUps8.scale: 2.095465\n    test 251 line 48 toUtmUps8.lat: 22.836853\n    test 252 line 48 toUtmUps8.lon: 72.604385\n    test 253 line 49 toUtmUps8.easting: 1309272.216432\n    test 254 line 49 toUtmUps8.northing: 59520.028899\n    test 255 line 49 toUtmUps8.gamma: 0.109069\n    test 256 line 49 toUtmUps8.scale: 1.020897\n    test 257 line 49 toUtmUps8.lat: 0.527262\n    test 258 line 49 toUtmUps8.lon: 11.684209\n    test 259 line 50 toUtmUps8.easting: 328652.277129\n    test 260 line 50 toUtmUps8.northing: 2233043.958874\n    test 261 line 50 toUtmUps8.gamma: 1.084863\n    test 262 line 50 toUtmUps8.scale: 1.000935\n    test 263 line 50 toUtmUps8.lat: 20.166742\n    test 264 line 50 toUtmUps8.lon: 3.143948\n\n    test skipped (7): line 51 toUtmUps8.'28.604629015528 85.988721094779 8637959.7164470998207 9190635.1560309800028 81.802562643198123218 2.05432863342852874819'\n\n    test skipped (8): line 52 toUtmUps8.'28.984047991106 85.833447775172 8548521.4551470334531 9172410.9432821880799 81.583928102890161419 2.02964145862183583179'\n    test 265 line 53 toUtmUps8.easting: 796987.281104\n    test 266 line 53 toUtmUps8.northing: 7677446.357675\n    test 267 line 53 toUtmUps8.gamma: 18.084472\n    test 268 line 53 toUtmUps8.scale: 1.007381\n    test 269 line 53 toUtmUps8.lat: 68.071020\n    test 270 line 53 toUtmUps8.lon: 19.392823\n\n    test skipped (9): line 54 toUtmUps8.'61.416576191872 81.981611413918 3291036.4967623295988 9513199.6006662170596 80.890253980644739593 1.13482563910814382209'\n    test 271 line 55 toUtmUps8.easting: 7087225.330906\n    test 272 line 55 toUtmUps8.northing: 8382823.855822\n    test 273 line 55 toUtmUps8.gamma: 72.253756\n    test 274 line 55 toUtmUps8.scale: 1.678070\n    test 275 line 55 toUtmUps8.lat: 35.074753\n    test 276 line 55 toUtmUps8.lon: 79.496003\n    test 277 line 56 toUtmUps8.easting: 5090358.125724\n    test 278 line 56 toUtmUps8.northing: 4318294.133489\n    test 279 line 56 toUtmUps8.gamma: 28.266280\n    test 280 line 56 toUtmUps8.scale: 1.336264\n    test 281 line 56 toUtmUps8.lat: 28.078790\n    test 282 line 56 toUtmUps8.lon: 48.684350\n\n    test skipped (10): line 57 toUtmUps8.'84.986930137199 2.067177857261 20163.0752214330146 9438635.9888499043815 2.059277291707588222 .99960496589466017622'\n    test 283 line 58 toUtmUps8.easting: 3447670.550785\n    test 284 line 58 toUtmUps8.northing: 3680238.888223\n    test 285 line 58 toUtmUps8.gamma: 17.934948\n    test 286 line 58 toUtmUps8.scale: 1.149831\n    test 287 line 58 toUtmUps8.lat: 28.473948\n    test 288 line 58 toUtmUps8.lon: 34.127306\n    test 289 line 59 toUtmUps8.easting: 3396522.906798\n    test 290 line 59 toUtmUps8.northing: 8093659.687593\n    test 291 line 59 toUtmUps8.gamma: 57.747117\n    test 292 line 59 toUtmUps8.scale: 1.144006\n    test 293 line 59 toUtmUps8.lat: 56.629354\n    test 294 line 59 toUtmUps8.lon: 62.196474\n    test 295 line 60 toUtmUps8.easting: 11249894.100794  FAILED, KNOWN, expected 11249894.100784\n    test 296 line 60 toUtmUps8.northing: 1619226.506360  FAILED, KNOWN, expected 1619226.506299\n    test 297 line 60 toUtmUps8.gamma: 14.210358\n    test 298 line 60 toUtmUps8.scale: 3.048347\n    test 299 line 60 toUtmUps8.lat: 4.747762\n    test 300 line 60 toUtmUps8.lon: 70.932555\n    test 301 line 61 toUtmUps8.easting: 6808805.230950\n    test 302 line 61 toUtmUps8.northing: 8044779.777369\n    test 303 line 61 toUtmUps8.gamma: 68.242008\n    test 304 line 61 toUtmUps8.scale: 1.621464\n    test 305 line 61 toUtmUps8.lat: 35.882113\n    test 306 line 61 toUtmUps8.lon: 76.741849\n    test 307 line 62 toUtmUps8.easting: 2306021.556506\n    test 308 line 62 toUtmUps8.northing: 757191.592866\n    test 309 line 62 toUtmUps8.gamma: 2.385686\n    test 310 line 62 toUtmUps8.scale: 1.066159\n    test 311 line 62 toUtmUps8.lat: 6.420705\n    test 312 line 62 toUtmUps8.lon: 20.416028\n    test 313 line 63 toUtmUps8.easting: 1547406.313862\n    test 314 line 63 toUtmUps8.northing: 6048712.751824\n    test 315 line 63 toUtmUps8.gamma: 18.474372\n    test 316 line 63 toUtmUps8.scale: 1.029123\n    test 317 line 63 toUtmUps8.lat: 52.335248\n    test 318 line 63 toUtmUps8.lon: 22.879294\n    test 319 line 64 toUtmUps8.easting: 2430467.650383\n    test 320 line 64 toUtmUps8.northing: 7557167.613972\n    test 321 line 64 toUtmUps8.gamma: 42.110021\n    test 322 line 64 toUtmUps8.scale: 1.072759\n    test 323 line 64 toUtmUps8.lat: 59.846391\n    test 324 line 64 toUtmUps8.lon: 46.262536\n    test 325 line 65 toUtmUps8.easting: 2334053.905830\n    test 326 line 65 toUtmUps8.northing: 1948076.966582\n    test 327 line 65 toUtmUps8.gamma: 6.353185\n    test 328 line 65 toUtmUps8.scale: 1.067733\n    test 329 line 65 toUtmUps8.lat: 16.461790\n    test 330 line 65 toUtmUps8.lon: 21.433269\n    test 331 line 66 toUtmUps8.easting: 5564175.186737\n    test 332 line 66 toUtmUps8.northing: 1836851.660412\n    test 333 line 66 toUtmUps8.gamma: 11.870682\n    test 334 line 66 toUtmUps8.scale: 1.408265\n    test 335 line 66 toUtmUps8.lat: 11.707905\n    test 336 line 66 toUtmUps8.lon: 45.827075\n    test 337 line 67 toUtmUps8.easting: 6118505.590359\n    test 338 line 67 toUtmUps8.northing: 7631684.552421\n    test 339 line 67 toUtmUps8.gamma: 62.477323\n    test 340 line 67 toUtmUps8.scale: 1.493420\n    test 341 line 67 toUtmUps8.lat: 38.519075\n    test 342 line 67 toUtmUps8.lon: 71.935918\n\n    test skipped (11): line 68 toUtmUps8.'34.264007222954 82.647878110272 7365359.2946646287171 8818194.4515306837741 77.207042218974141605 1.73763853091849729372'\n    test 343 line 69 toUtmUps8.easting: 36187.342415\n    test 344 line 69 toUtmUps8.northing: 2142565.324802\n    test 345 line 69 toUtmUps8.gamma: 0.114334\n    test 346 line 69 toUtmUps8.scale: 0.999616\n    test 347 line 69 toUtmUps8.lat: 19.376880\n    test 348 line 69 toUtmUps8.lon: 0.344605\n    test 349 line 70 toUtmUps8.easting: 2380328.546851\n    test 350 line 70 toUtmUps8.northing: 8440109.872384\n    test 351 line 70 toUtmUps8.gamma: 55.076067\n    test 352 line 70 toUtmUps8.scale: 1.069658\n    test 353 line 70 toUtmUps8.lat: 65.075805\n    test 354 line 70 toUtmUps8.lon: 57.653438\n    test 355 line 71 toUtmUps8.easting: 582511.608826\n    test 356 line 71 toUtmUps8.northing: 8876047.217071\n    test 357 line 71 toUtmUps8.gamma: 27.133300\n    test 358 line 71 toUtmUps8.scale: 1.003749\n    test 359 line 71 toUtmUps8.lat: 78.691870\n    test 360 line 71 toUtmUps8.lon: 27.591736\n    test 361 line 72 toUtmUps8.easting: 899441.350477\n    test 362 line 72 toUtmUps8.northing: 4582046.430516\n    test 363 line 72 toUtmUps8.gamma: 7.031211\n    test 364 line 72 toUtmUps8.scale: 1.009573\n    test 365 line 72 toUtmUps8.lat: 40.893022\n    test 366 line 72 toUtmUps8.lon: 10.668804\n\n    test skipped (12): line 73 toUtmUps8.'48.914278679322 87.35926802682 5022485.1243369246483 9741774.9337207800497 86.505947369926030588 1.32369954850478170836'\n    test 367 line 74 toUtmUps8.easting: 6701004.587204\n    test 368 line 74 toUtmUps8.northing: 2954368.258231\n    test 369 line 74 toUtmUps8.gamma: 21.560153\n    test 370 line 74 toUtmUps8.scale: 1.608554\n    test 371 line 74 toUtmUps8.lat: 16.208377\n    test 372 line 74 toUtmUps8.lon: 54.494282\n    test 373 line 75 toUtmUps8.easting: 454986.218897\n    test 374 line 75 toUtmUps8.northing: 4885087.887884\n    test 375 line 75 toUtmUps8.gamma: 3.945648\n    test 376 line 75 toUtmUps8.scale: 1.002147\n    test 377 line 75 toUtmUps8.lat: 43.977936\n    test 378 line 75 toUtmUps8.lon: 5.672541\n\n    test skipped (13): line 76 toUtmUps8.'26.850860749352 82.834479937822 8903956.1403106503714 8470608.5774824981183 74.723116471645531699 2.13131124920824155268'\n    test 379 line 77 toUtmUps8.easting: 1547627.594741\n    test 380 line 77 toUtmUps8.northing: 6036584.538347\n    test 381 line 77 toUtmUps8.gamma: 18.407629\n    test 382 line 77 toUtmUps8.scale: 1.029132\n    test 383 line 77 toUtmUps8.lat: 52.234165\n    test 384 line 77 toUtmUps8.lon: 22.827655\n    test 385 line 78 toUtmUps8.easting: 5221488.778597\n    test 386 line 78 toUtmUps8.northing: 1762592.044392\n    test 387 line 78 toUtmUps8.gamma: 10.927880\n    test 388 line 78 toUtmUps8.scale: 1.356721\n    test 389 line 78 toUtmUps8.lat: 11.674646\n    test 390 line 78 toUtmUps8.lon: 43.500147\n    test 391 line 79 toUtmUps8.easting: 4880570.297161\n    test 392 line 79 toUtmUps8.northing: 3325433.988867\n    test 393 line 79 toUtmUps8.gamma: 20.469862\n    test 394 line 79 toUtmUps8.scale: 1.308476\n    test 395 line 79 toUtmUps8.lat: 22.492753\n    test 396 line 79 toUtmUps8.lon: 44.179153\n\n    test skipped (14): line 80 toUtmUps8.'.910999463005 88.548822916123 23930680.0826936110445 7491462.0990379651261 75.937628056628715446 15.55636485152285563369'\n    test 397 line 81 toUtmUps8.easting: 71519.450458\n    test 398 line 81 toUtmUps8.northing: 3654740.444852\n    test 399 line 81 toUtmUps8.gamma: 0.417448\n    test 400 line 81 toUtmUps8.scale: 0.999663\n    test 401 line 81 toUtmUps8.lat: 33.028802\n    test 402 line 81 toUtmUps8.lon: 0.765843\n    test 403 line 82 toUtmUps8.easting: 4152797.795220\n    test 404 line 82 toUtmUps8.northing: 7823098.502751\n    test 405 line 82 toUtmUps8.gamma: 58.238901\n    test 406 line 82 toUtmUps8.scale: 1.218052\n    test 407 line 82 toUtmUps8.lat: 50.649195\n    test 408 line 82 toUtmUps8.lon: 64.389076\n    test 409 line 83 toUtmUps8.easting: 2926725.707639\n    test 410 line 83 toUtmUps8.northing: 7904918.072844\n    test 411 line 83 toUtmUps8.gamma: 51.592748\n    test 412 line 83 toUtmUps8.scale: 1.106206\n    test 413 line 83 toUtmUps8.lat: 58.820640\n    test 414 line 83 toUtmUps8.lon: 55.841048\n    test 415 line 84 toUtmUps8.easting: 1325509.113869\n    test 416 line 84 toUtmUps8.northing: 9675214.948213\n    test 417 line 84 toUtmUps8.gamma: 76.116213\n    test 418 line 84 toUtmUps8.scale: 1.021136\n    test 419 line 84 toUtmUps8.lat: 77.865762\n    test 420 line 84 toUtmUps8.lon: 76.414618\n    test 421 line 85 toUtmUps8.easting: 3045296.448926\n    test 422 line 85 toUtmUps8.northing: 542153.443280\n    test 423 line 85 toUtmUps8.gamma: 2.185095\n    test 424 line 85 toUtmUps8.scale: 1.116664\n    test 425 line 85 toUtmUps8.lat: 4.389639\n    test 426 line 85 toUtmUps8.lon: 26.458976\n    test 427 line 86 toUtmUps8.easting: 11843870.887791  FAILED, KNOWN, expected 11843870.887518\n    test 428 line 86 toUtmUps8.northing: 5912803.073690  FAILED, KNOWN, expected 5912803.073343\n    test 429 line 86 toUtmUps8.gamma: 52.814260  FAILED, KNOWN, expected 52.814259\n    test 430 line 86 toUtmUps8.scale: 3.267256\n    test 431 line 86 toUtmUps8.lat: 13.924448\n    test 432 line 86 toUtmUps8.lon: 79.017873\n    test 433 line 87 toUtmUps8.easting: 8891099.704936\n    test 434 line 87 toUtmUps8.northing: 162160.142227\n    test 435 line 87 toUtmUps8.gamma: 1.312094\n    test 436 line 87 toUtmUps8.scale: 2.157363\n    test 437 line 87 toUtmUps8.lat: 0.679713\n    test 438 line 87 toUtmUps8.lon: 62.036792\n    test 439 line 88 toUtmUps8.easting: 4784814.214449\n    test 440 line 88 toUtmUps8.northing: 2984497.432580\n    test 441 line 88 toUtmUps8.gamma: 17.946545\n    test 442 line 88 toUtmUps8.scale: 1.296116\n    test 443 line 88 toUtmUps8.lat: 20.478281\n    test 444 line 88 toUtmUps8.lon: 42.678234\n    test 445 line 89 toUtmUps8.easting: 1772074.682154\n    test 446 line 89 toUtmUps8.northing: 9491552.560143\n    test 447 line 89 toUtmUps8.gamma: 73.634830\n    test 448 line 89 toUtmUps8.scale: 1.038202\n    test 449 line 89 toUtmUps8.lat: 73.695703\n    test 450 line 89 toUtmUps8.lon: 74.259097\n    test 451 line 90 toUtmUps8.easting: 1907649.782106\n    test 452 line 90 toUtmUps8.northing: 6994232.429379\n    test 453 line 90 toUtmUps8.gamma: 29.718929\n    test 454 line 90 toUtmUps8.scale: 1.044503\n    test 455 line 90 toUtmUps8.lat: 58.569370\n    test 456 line 90 toUtmUps8.lon: 33.777549\n    test 457 line 91 toUtmUps8.easting: 2084423.818962\n    test 458 line 91 toUtmUps8.northing: 2211816.035619\n    test 459 line 91 toUtmUps8.gamma: 6.556448\n    test 460 line 91 toUtmUps8.scale: 1.053793\n    test 461 line 91 toUtmUps8.lat: 18.933881\n    test 462 line 91 toUtmUps8.lon: 19.492695\n    test 463 line 92 toUtmUps8.easting: 1064373.671729\n    test 464 line 92 toUtmUps8.northing: 7812482.547461\n    test 465 line 92 toUtmUps8.gamma: 24.874124\n    test 466 line 92 toUtmUps8.scale: 1.013490\n    test 467 line 92 toUtmUps8.lat: 68.317934\n    test 468 line 92 toUtmUps8.lon: 26.515687\n\n    test skipped (15): line 93 toUtmUps8.'50.641941364984 87.111556505544 4770385.4792965339274 9734318.9029801439364 86.27311877223132818 1.29055338238288419467'\n    test 469 line 94 toUtmUps8.easting: 6398096.677297\n    test 470 line 94 toUtmUps8.northing: 4410894.752104\n    test 471 line 94 toUtmUps8.gamma: 32.558023\n    test 472 line 94 toUtmUps8.scale: 1.548004\n    test 473 line 94 toUtmUps8.lat: 24.411298\n    test 474 line 94 toUtmUps8.lon: 56.881823\n    test 475 line 95 toUtmUps8.easting: 3138623.300415\n    test 476 line 95 toUtmUps8.northing: 3082960.600798\n    test 477 line 95 toUtmUps8.gamma: 13.557672\n    test 478 line 95 toUtmUps8.scale: 1.123724\n    test 479 line 95 toUtmUps8.lat: 24.571871\n    test 480 line 95 toUtmUps8.lon: 30.073097\n    test 481 line 96 toUtmUps8.easting: 2748325.794651\n    test 482 line 96 toUtmUps8.northing: 4202811.912668\n    test 483 line 96 toUtmUps8.gamma: 17.578706\n    test 484 line 96 toUtmUps8.scale: 1.094102\n    test 485 line 96 toUtmUps8.lat: 34.202576\n    test 486 line 96 toUtmUps8.lon: 29.383166\n    test 487 line 97 toUtmUps8.easting: 6677830.630367\n    test 488 line 97 toUtmUps8.northing: 5350071.837395\n    test 489 line 97 toUtmUps8.gamma: 41.306641\n    test 490 line 97 toUtmUps8.scale: 1.599774\n    test 491 line 97 toUtmUps8.lat: 27.756285\n    test 492 line 97 toUtmUps8.lon: 61.881905\n    test 493 line 98 toUtmUps8.easting: 5941536.667431\n    test 494 line 98 toUtmUps8.northing: 3293112.175140\n    test 495 line 98 toUtmUps8.gamma: 22.752845\n    test 496 line 98 toUtmUps8.scale: 1.468473\n    test 497 line 98 toUtmUps8.lat: 19.742270\n    test 498 line 98 toUtmUps8.lon: 50.957821\n    test 499 line 99 toUtmUps8.easting: 3152481.792567\n    test 500 line 99 toUtmUps8.northing: 5903048.837978\n    test 501 line 99 toUtmUps8.gamma: 31.494606\n    test 502 line 99 toUtmUps8.scale: 1.124085\n    test 503 line 99 toUtmUps8.lat: 45.453582\n    test 504 line 99 toUtmUps8.lon: 40.659833\n    test 505 line 100 toUtmUps8.easting: 10460475.897726  FAILED, KNOWN, expected 10460475.897730\n    test 506 line 100 toUtmUps8.northing: 2553463.624385  FAILED, KNOWN, expected 2553463.624391\n    test 507 line 100 toUtmUps8.gamma: 21.965869\n    test 508 line 100 toUtmUps8.scale: 2.700296\n    test 509 line 100 toUtmUps8.lat: 8.322144\n    test 510 line 100 toUtmUps8.lon: 69.488157\n    test 511 line 101 toUtmUps8.easting: 1964010.778021\n    test 512 line 101 toUtmUps8.northing: 5634042.923056\n    test 513 line 101 toUtmUps8.gamma: 20.117800\n    test 514 line 101 toUtmUps8.scale: 1.047344\n    test 515 line 101 toUtmUps8.lat: 47.749831\n    test 516 line 101 toUtmUps8.lon: 26.322002\n    test 517 line 102 toUtmUps8.easting: 2065306.424934\n    test 518 line 102 toUtmUps8.northing: 2135008.468651\n    test 519 line 102 toUtmUps8.gamma: 6.258981\n    test 520 line 102 toUtmUps8.scale: 1.052800\n    test 521 line 102 toUtmUps8.lat: 18.297493\n    test 522 line 102 toUtmUps8.lon: 19.244669\n    test 523 line 103 toUtmUps8.easting: 5127738.132976\n    test 524 line 103 toUtmUps8.northing: 6793804.304411\n    test 525 line 103 toUtmUps8.gamma: 50.557915\n    test 526 line 103 toUtmUps8.scale: 1.339412\n    test 527 line 103 toUtmUps8.lat: 40.834541\n    test 528 line 103 toUtmUps8.lon: 61.650750\n    test 529 line 104 toUtmUps8.easting: 8385525.148166\n    test 530 line 104 toUtmUps8.northing: 6924932.344306\n    test 531 line 104 toUtmUps8.gamma: 59.087561\n    test 532 line 104 toUtmUps8.scale: 1.990364\n    test 533 line 104 toUtmUps8.lat: 26.273247\n    test 534 line 104 toUtmUps8.lon: 74.926694\n    test 535 line 105 toUtmUps8.easting: 2297510.791909\n    test 536 line 105 toUtmUps8.northing: 2805666.962834\n    test 537 line 105 toUtmUps8.gamma: 9.301553\n    test 538 line 105 toUtmUps8.scale: 1.065508\n    test 539 line 105 toUtmUps8.lat: 23.698347\n    test 540 line 105 toUtmUps8.lon: 22.155657\n\n    test skipped (16): line 106 toUtmUps8.'12.364112546807 86.348578425071 13749544.9176345767153 8288728.3846500523233 75.033969786420407131 4.27058754359004466627'\n    test 541 line 107 toUtmUps8.easting: 317518.455546\n    test 542 line 107 toUtmUps8.northing: 1097517.583745\n    test 543 line 107 toUtmUps8.gamma: 0.499004\n    test 544 line 107 toUtmUps8.scale: 1.000848\n    test 545 line 107 toUtmUps8.lat: 9.916091\n    test 546 line 107 toUtmUps8.lon: 2.895277\n    test 547 line 108 toUtmUps8.easting: 3856035.184888\n    test 548 line 108 toUtmUps8.northing: 9141364.450290\n    test 549 line 108 toUtmUps8.gamma: 75.972763\n    test 550 line 108 toUtmUps8.scale: 1.186786\n    test 551 line 108 toUtmUps8.lat: 56.553876\n    test 552 line 108 toUtmUps8.lon: 78.215077\n    test 553 line 109 toUtmUps8.easting: 1457484.942823\n    test 554 line 109 toUtmUps8.northing: 9385297.101973\n    test 555 line 109 toUtmUps8.gamma: 66.784662\n    test 556 line 109 toUtmUps8.scale: 1.025660\n    test 557 line 109 toUtmUps8.lat: 75.957631\n    test 558 line 109 toUtmUps8.lon: 67.407383\n    test 559 line 110 toUtmUps8.easting: 1304934.901841\n    test 560 line 110 toUtmUps8.northing: 3604655.155715\n    test 561 line 110 toUtmUps8.gamma: 7.343989\n    test 562 line 110 toUtmUps8.scale: 1.020672\n    test 563 line 110 toUtmUps8.lat: 31.826531\n    test 564 line 110 toUtmUps8.lon: 13.731050\n    test 565 line 111 toUtmUps8.easting: 1399093.491792\n    test 566 line 111 toUtmUps8.northing: 8314607.120342\n    test 567 line 111 toUtmUps8.gamma: 38.630161\n    test 568 line 111 toUtmUps8.scale: 1.023625\n    test 569 line 111 toUtmUps8.lat: 70.542985\n    test 570 line 111 toUtmUps8.lon: 40.282055\n    test 571 line 112 toUtmUps8.easting: 356983.618540\n    test 572 line 112 toUtmUps8.northing: 4282309.048994\n    test 573 line 112 toUtmUps8.gamma: 2.561485\n    test 574 line 112 toUtmUps8.scale: 1.001170\n    test 575 line 112 toUtmUps8.lat: 38.617487\n    test 576 line 112 toUtmUps8.lon: 4.099838\n    test 577 line 113 toUtmUps8.easting: 9952911.325092  FAILED, KNOWN, expected 9952911.325091\n    test 578 line 113 toUtmUps8.northing: 1510288.212230  FAILED, KNOWN, expected 1510288.212229\n    test 579 line 113 toUtmUps8.gamma: 12.752154\n    test 580 line 113 toUtmUps8.scale: 2.511357\n    test 581 line 113 toUtmUps8.lat: 5.389447\n    test 582 line 113 toUtmUps8.lon: 66.729612\n    test 583 line 114 toUtmUps8.easting: 6367592.504007\n    test 584 line 114 toUtmUps8.northing: 1200437.077672\n    test 585 line 114 toUtmUps8.gamma: 8.338041\n    test 586 line 114 toUtmUps8.scale: 1.546210\n    test 587 line 114 toUtmUps8.lat: 6.995168\n    test 588 line 114 toUtmUps8.lon: 50.014763\n    test 589 line 115 toUtmUps8.easting: 4391263.676460\n    test 590 line 115 toUtmUps8.northing: 6325455.989408\n    test 591 line 115 toUtmUps8.gamma: 42.653541\n    test 592 line 115 toUtmUps8.scale: 1.245560\n    test 593 line 115 toUtmUps8.lat: 42.321894\n    test 594 line 115 toUtmUps8.lon: 53.784040\n    test 595 line 116 toUtmUps8.easting: 6209880.527527\n    test 596 line 116 toUtmUps8.northing: 2154754.449747\n    test 597 line 116 toUtmUps8.gamma: 14.919512\n    test 598 line 116 toUtmUps8.scale: 1.516560\n    test 599 line 116 toUtmUps8.lat: 12.698515\n    test 600 line 116 toUtmUps8.lon: 50.242047\n    test 601 line 117 toUtmUps8.easting: 1507053.688772\n    test 602 line 117 toUtmUps8.northing: 6261383.513280\n    test 603 line 117 toUtmUps8.gamma: 19.280373\n    test 604 line 117 toUtmUps8.scale: 1.027584\n    test 605 line 117 toUtmUps8.lat: 54.207636\n    test 606 line 117 toUtmUps8.lon: 23.325731\n    test 607 line 118 toUtmUps8.easting: 8332725.003777\n    test 608 line 118 toUtmUps8.northing: 3002712.329753\n    test 609 line 118 toUtmUps8.gamma: 24.059212\n    test 610 line 118 toUtmUps8.scale: 1.990450\n    test 611 line 118 toUtmUps8.lat: 13.224787\n    test 612 line 118 toUtmUps8.lon: 62.426698\n    test 613 line 119 toUtmUps8.easting: 3958910.085235\n    test 614 line 119 toUtmUps8.northing: 3462284.926102\n    test 615 line 119 toUtmUps8.gamma: 18.546398\n    test 616 line 119 toUtmUps8.scale: 1.199351\n    test 617 line 119 toUtmUps8.lat: 25.650282\n    test 618 line 119 toUtmUps8.lon: 37.710391\n\n    test skipped (17): line 120 toUtmUps8.'20.684773383075 82.849734261238 10452892.2820830090734 8000059.6051139389546 71.07524025411428855 2.6501109339363854772'\n    test 619 line 121 toUtmUps8.easting: 496148.253731\n    test 620 line 121 toUtmUps8.northing: 6388503.365043\n    test 621 line 121 toUtmUps8.gamma: 6.970955\n    test 622 line 121 toUtmUps8.scale: 1.002620\n    test 623 line 121 toUtmUps8.lat: 57.367533\n    test 624 line 121 toUtmUps8.lon: 8.260866\n    test 625 line 122 toUtmUps8.easting: 7375792.085850\n    test 626 line 122 toUtmUps8.northing: 5544624.072155\n    test 627 line 122 toUtmUps8.gamma: 44.510851\n    test 628 line 122 toUtmUps8.scale: 1.745898\n    test 629 line 122 toUtmUps8.lat: 25.958757\n    test 630 line 122 toUtmUps8.lon: 65.760477\n    test 631 line 123 toUtmUps8.easting: 2826258.041979\n    test 632 line 123 toUtmUps8.northing: 5167759.816959\n    test 633 line 123 toUtmUps8.gamma: 23.783897\n    test 634 line 123 toUtmUps8.scale: 1.099415\n    test 635 line 123 toUtmUps8.lat: 41.395848\n    test 636 line 123 toUtmUps8.lon: 33.661790\n    test 637 line 124 toUtmUps8.easting: 3958563.378851\n    test 638 line 124 toUtmUps8.northing: 8499923.231243\n    test 639 line 124 toUtmUps8.gamma: 66.570945\n    test 640 line 124 toUtmUps8.scale: 1.197296\n    test 641 line 124 toUtmUps8.lat: 54.266617\n    test 642 line 124 toUtmUps8.lon: 70.602199\n    test 643 line 125 toUtmUps8.easting: 4408189.533462\n    test 644 line 125 toUtmUps8.northing: 8046312.003642\n    test 645 line 125 toUtmUps8.gamma: 62.216959\n    test 646 line 125 toUtmUps8.scale: 1.246750\n    test 647 line 125 toUtmUps8.lat: 49.840393\n    test 648 line 125 toUtmUps8.lon: 68.036728\n    test 649 line 126 toUtmUps8.easting: 3629225.627512\n    test 650 line 126 toUtmUps8.northing: 6371258.454645\n    test 651 line 126 toUtmUps8.gamma: 38.881675\n    test 652 line 126 toUtmUps8.scale: 1.165511\n    test 653 line 126 toUtmUps8.lat: 46.306035\n    test 654 line 126 toUtmUps8.lon: 48.085828\n    test 655 line 127 toUtmUps8.easting: 602838.450710\n    test 656 line 127 toUtmUps8.northing: 4851370.637205\n    test 657 line 127 toUtmUps8.gamma: 5.160395\n    test 658 line 127 toUtmUps8.scale: 1.004073\n    test 659 line 127 toUtmUps8.lat: 43.570988\n    test 660 line 127 toUtmUps8.lon: 7.464494\n    test 661 line 128 toUtmUps8.easting: 764616.665051\n    test 662 line 128 toUtmUps8.northing: 2164299.337945\n    test 663 line 128 toUtmUps8.gamma: 2.429300\n    test 664 line 128 toUtmUps8.scale: 1.006835\n    test 665 line 128 toUtmUps8.lat: 19.427290\n    test 666 line 128 toUtmUps8.lon: 7.268247\n    test 667 line 129 toUtmUps8.easting: 5048953.021931\n    test 668 line 129 toUtmUps8.northing: 1885974.057398\n    test 669 line 129 toUtmUps8.gamma: 11.459804\n    test 670 line 129 toUtmUps8.scale: 1.332207\n    test 671 line 129 toUtmUps8.lat: 12.713794\n    test 672 line 129 toUtmUps8.lon: 42.507018\n    test 673 line 130 toUtmUps8.easting: 2293996.601155\n    test 674 line 130 toUtmUps8.northing: 2392408.644221\n    test 675 line 130 toUtmUps8.gamma: 7.791838\n    test 676 line 130 toUtmUps8.scale: 1.065348\n    test 677 line 130 toUtmUps8.lat: 20.238782\n    test 678 line 130 toUtmUps8.lon: 21.566068\n    test 679 line 131 toUtmUps8.easting: 1530603.839418\n    test 680 line 131 toUtmUps8.northing: 7287841.459898\n    test 681 line 131 toUtmUps8.gamma: 27.502921\n    test 682 line 131 toUtmUps8.scale: 1.028416\n    test 683 line 131 toUtmUps8.lat: 62.367847\n    test 684 line 131 toUtmUps8.lon: 30.438849\n    test 685 line 132 toUtmUps8.easting: 2660000.093152\n    test 686 line 132 toUtmUps8.northing: 5161982.213248\n    test 687 line 132 toUtmUps8.gamma: 22.629836\n    test 688 line 132 toUtmUps8.scale: 1.087851\n    test 689 line 132 toUtmUps8.lat: 41.891569\n    test 690 line 132 toUtmUps8.lon: 31.959547\n    test 691 line 133 toUtmUps8.easting: 5037478.329414\n    test 692 line 133 toUtmUps8.northing: 8768172.379908\n    test 693 line 133 toUtmUps8.gamma: 73.511182\n    test 694 line 133 toUtmUps8.scale: 1.325919\n    test 695 line 133 toUtmUps8.lat: 47.664248\n    test 696 line 133 toUtmUps8.lon: 77.630062\n    test 697 line 134 toUtmUps8.easting: 2289650.957799\n    test 698 line 134 toUtmUps8.northing: 8784328.593607\n    test 699 line 134 toUtmUps8.gamma: 60.786067\n    test 700 line 134 toUtmUps8.scale: 1.064346\n    test 701 line 134 toUtmUps8.lat: 67.259559\n    test 702 line 134 toUtmUps8.lon: 62.715293\n    test 703 line 135 toUtmUps8.easting: 647913.889744\n    test 704 line 135 toUtmUps8.northing: 6742382.228217\n    test 705 line 135 toUtmUps8.gamma: 10.252667\n    test 706 line 135 toUtmUps8.scale: 1.004748\n    test 707 line 135 toUtmUps8.lat: 60.295381\n    test 708 line 135 toUtmUps8.lon: 11.763097\n    test 709 line 136 toUtmUps8.easting: 1118372.698566\n    test 710 line 136 toUtmUps8.northing: 9040627.942263\n    test 711 line 136 toUtmUps8.gamma: 48.936803\n    test 712 line 136 toUtmUps8.scale: 1.014920\n    test 713 line 136 toUtmUps8.lat: 76.878914\n    test 714 line 136 toUtmUps8.lon: 49.685773\n    test 715 line 137 toUtmUps8.easting: 440696.510070\n    test 716 line 137 toUtmUps8.northing: 5500355.826297\n    test 717 line 137 toUtmUps8.gamma: 4.636104\n    test 718 line 137 toUtmUps8.scale: 1.001986\n    test 719 line 137 toUtmUps8.lat: 49.495349\n    test 720 line 137 toUtmUps8.lon: 6.087551\n    test 721 line 138 toUtmUps8.easting: 601728.149727\n    test 722 line 138 toUtmUps8.northing: 9095352.048149\n    test 723 line 138 toUtmUps8.gamma: 33.435771\n    test 724 line 138 toUtmUps8.scale: 1.004027\n    test 725 line 138 toUtmUps8.lat: 80.297265\n    test 726 line 138 toUtmUps8.lon: 33.816372\n    test 727 line 139 toUtmUps8.easting: 3481444.777827\n    test 728 line 139 toUtmUps8.northing: 291665.708749\n    test 729 line 139 toUtmUps8.gamma: 1.314726\n    test 730 line 139 toUtmUps8.scale: 1.153534\n    test 731 line 139 toUtmUps8.lat: 2.286437\n    test 732 line 139 toUtmUps8.lon: 29.855149\n    test 733 line 140 toUtmUps8.easting: 3515304.901524\n    test 734 line 140 toUtmUps8.northing: 1443981.882918\n    test 735 line 140 toUtmUps8.gamma: 6.641638\n    test 736 line 140 toUtmUps8.scale: 1.156509\n    test 737 line 140 toUtmUps8.lat: 11.264457\n    test 738 line 140 toUtmUps8.lon: 30.743907\n    test 739 line 141 toUtmUps8.easting: 160012.186959\n    test 740 line 141 toUtmUps8.northing: 3922609.253231\n    test 741 line 141 toUtmUps8.gamma: 1.022225\n    test 742 line 141 toUtmUps8.scale: 0.999916\n    test 743 line 141 toUtmUps8.lat: 35.434073\n    test 744 line 141 toUtmUps8.lon: 1.762795\n    test 745 line 142 toUtmUps8.easting: 4163744.245622\n    test 746 line 142 toUtmUps8.northing: 936884.674804\n    test 747 line 142 toUtmUps8.gamma: 4.892559\n    test 748 line 142 toUtmUps8.scale: 1.222164\n    test 749 line 142 toUtmUps8.lat: 6.923695\n    test 750 line 142 toUtmUps8.lon: 35.289456\n    test 751 line 143 toUtmUps8.easting: 6155200.017926\n    test 752 line 143 toUtmUps8.northing: 6926306.628390\n    test 753 line 143 toUtmUps8.gamma: 55.103258\n    test 754 line 143 toUtmUps8.scale: 1.500556\n    test 755 line 143 toUtmUps8.lat: 36.129672\n    test 756 line 143 toUtmUps8.lon: 67.533176\n\n    test skipped (18): line 144 toUtmUps8.'4.406528980638 81.965734206053 16263383.2854400911299 3591296.7313406507021 36.040254103487111035 6.58928781751888396522'\n\n    test skipped (19): line 145 toUtmUps8.'8.474589009114 81.129945130597 14220995.5153984992101 5100587.4575033509156 47.314258427760984573 4.69320221531225352172'\n    test 757 line 146 toUtmUps8.easting: 3173034.802372\n    test 758 line 146 toUtmUps8.northing: 7263421.942957\n    test 759 line 146 toUtmUps8.gamma: 45.215808\n    test 760 line 146 toUtmUps8.scale: 1.125410\n    test 761 line 146 toUtmUps8.lat: 53.907276\n    test 762 line 146 toUtmUps8.lon: 51.252904\n\n    test skipped (20): line 147 toUtmUps8.'22.120544817855 85.756781608119 10253274.0922039670098 8867574.2997916978265 79.198250285604314115 2.57237240666878171579'\n    test 763 line 148 toUtmUps8.easting: 2415561.483230\n    test 764 line 148 toUtmUps8.northing: 8813225.217097\n    test 765 line 148 toUtmUps8.gamma: 62.548978\n    test 766 line 148 toUtmUps8.scale: 1.071748\n    test 767 line 148 toUtmUps8.lat: 66.444100\n    test 768 line 148 toUtmUps8.lon: 64.532960\n    test 769 line 149 toUtmUps8.easting: 9589179.293294  FAILED, KNOWN, expected 9589179.293295\n    test 770 line 149 toUtmUps8.northing: 1777680.784144  FAILED, KNOWN, expected 1777680.784143\n    test 771 line 149 toUtmUps8.gamma: 14.838483\n    test 772 line 149 toUtmUps8.scale: 2.380716\n    test 773 line 149 toUtmUps8.lat: 6.670965\n    test 774 line 149 toUtmUps8.lon: 65.660408\n    test 775 line 150 toUtmUps8.easting: 727939.438391\n    test 776 line 150 toUtmUps8.northing: 3684363.236810\n    test 777 line 150 toUtmUps8.gamma: 4.266227\n    test 778 line 150 toUtmUps8.scale: 1.006140\n    test 779 line 150 toUtmUps8.lat: 33.054057\n    test 780 line 150 toUtmUps8.lon: 7.787458\n    test 781 line 151 toUtmUps8.easting: 1250765.991085\n    test 782 line 151 toUtmUps8.northing: 792869.242719\n    test 783 line 151 toUtmUps8.gamma: 1.396497\n    test 784 line 151 toUtmUps8.scale: 1.019026\n    test 785 line 151 toUtmUps8.lat: 7.035525\n    test 786 line 151 toUtmUps8.lon: 11.253707\n    test 787 line 152 toUtmUps8.easting: 710421.705887\n    test 788 line 152 toUtmUps8.northing: 5019406.075928\n    test 789 line 152 toUtmUps8.gamma: 6.393949\n    test 790 line 152 toUtmUps8.scale: 1.005812\n    test 791 line 152 toUtmUps8.lat: 44.971340\n    test 792 line 152 toUtmUps8.lon: 9.009304\n    test 793 line 153 toUtmUps8.easting: 4600995.074643\n    test 794 line 153 toUtmUps8.northing: 4505712.084593\n    test 795 line 153 toUtmUps8.gamma: 27.997458\n    test 796 line 153 toUtmUps8.scale: 1.271841\n    test 797 line 153 toUtmUps8.lat: 30.821397\n    test 798 line 153 toUtmUps8.lon: 45.970577\n    test 799 line 154 toUtmUps8.easting: 557642.627782\n    test 800 line 154 toUtmUps8.northing: 7006911.251644\n    test 801 line 154 toUtmUps8.gamma: 9.769903\n    test 802 line 154 toUtmUps8.scale: 1.003411\n    test 803 line 154 toUtmUps8.lat: 62.763886\n    test 804 line 154 toUtmUps8.lon: 10.960144\n    test 805 line 155 toUtmUps8.easting: 4635062.294291\n    test 806 line 155 toUtmUps8.northing: 2702556.153311\n    test 807 line 155 toUtmUps8.gamma: 15.779547\n    test 808 line 155 toUtmUps8.scale: 1.277178\n    test 809 line 155 toUtmUps8.lat: 18.888611\n    test 810 line 155 toUtmUps8.lon: 41.009871\n\n    test skipped (21): line 156 toUtmUps8.'7.524119461376 81.050715469439 14554962.2559189870471 4716639.9085720199214 44.192751352918149954 4.96001986321419027847'\n    test 811 line 157 toUtmUps8.easting: 882126.661736\n    test 812 line 157 toUtmUps8.northing: 7947612.369506\n    test 813 line 157 toUtmUps8.gamma: 22.429487\n    test 814 line 157 toUtmUps8.scale: 1.009132\n    test 815 line 157 toUtmUps8.lat: 70.063902\n    test 816 line 157 toUtmUps8.lon: 23.705255\n\n    test skipped (22): line 158 toUtmUps8.'3.556525834215 88.363529198819 20262021.6459832969292 8113827.8207957955275 76.936057264555500879 10.34909168211805703369'\n    test 817 line 159 toUtmUps8.easting: 6500508.399850\n    test 818 line 159 toUtmUps8.northing: 6956476.342368\n    test 819 line 159 toUtmUps8.gamma: 56.237116\n    test 820 line 159 toUtmUps8.scale: 1.563162\n    test 821 line 159 toUtmUps8.lat: 34.551257\n    test 822 line 159 toUtmUps8.lon: 69.111091\n    test 823 line 160 toUtmUps8.easting: 3884036.641314\n    test 824 line 160 toUtmUps8.northing: 6890167.411733\n    test 825 line 160 toUtmUps8.gamma: 45.760130\n    test 826 line 160 toUtmUps8.scale: 1.190167\n    test 827 line 160 toUtmUps8.lat: 47.929051\n    test 828 line 160 toUtmUps8.lon: 54.103418\n    test 829 line 161 toUtmUps8.easting: 217855.546078\n    test 830 line 161 toUtmUps8.northing: 6184108.122568\n    test 831 line 161 toUtmUps8.gamma: 2.870993\n    test 832 line 161 toUtmUps8.scale: 1.000182\n    test 833 line 161 toUtmUps8.lat: 55.753536\n    test 834 line 161 toUtmUps8.lon: 3.471798\n\n    test skipped (23): line 162 toUtmUps8.'18.530847071862 86.555312055898 11384139.290401676268 8893889.9495562311576 79.77485364572019046 3.02467156922968230025'\n    test 835 line 163 toUtmUps8.easting: 3469855.989805\n    test 836 line 163 toUtmUps8.northing: 7723193.799228\n    test 837 line 163 toUtmUps8.gamma: 53.114700\n    test 838 line 163 toUtmUps8.scale: 1.150540\n    test 839 line 163 toUtmUps8.lat: 54.510125\n    test 840 line 163 toUtmUps8.lon: 58.556056\n\n    test skipped (24): line 164 toUtmUps8.'42.864161881687 84.866325602975 5926165.994939154109 9385463.7327467371322 82.506981261616342016 1.45975761947329382411'\n    test 841 line 165 toUtmUps8.easting: 5798639.662224\n    test 842 line 165 toUtmUps8.northing: 5305387.640916\n    test 843 line 165 toUtmUps8.gamma: 38.617257\n    test 844 line 165 toUtmUps8.scale: 1.442263\n    test 845 line 165 toUtmUps8.lat: 30.911943\n    test 846 line 165 toUtmUps8.lon: 57.114102\n    test 847 line 166 toUtmUps8.easting: 9464.934388\n    test 848 line 166 toUtmUps8.northing: 6489121.624944\n    test 849 line 166 toUtmUps8.gamma: 0.138696\n    test 850 line 166 toUtmUps8.scale: 0.999601\n    test 851 line 166 toUtmUps8.lat: 58.542493\n    test 852 line 166 toUtmUps8.lon: 0.162593\n\n    test skipped (25): line 167 toUtmUps8.'15.022689088683 85.792615487152 12575834.2756139069875 8356610.8954857643175 75.235223160840771295 3.59944161831319404851'\n    test 853 line 168 toUtmUps8.easting: 2719653.543469\n    test 854 line 168 toUtmUps8.northing: 9362389.163495\n    test 855 line 168 toUtmUps8.gamma: 76.049670\n    test 856 line 168 toUtmUps8.scale: 1.091315\n    test 857 line 168 toUtmUps8.lat: 65.692275\n    test 858 line 168 toUtmUps8.lon: 77.241377\n    test 859 line 169 toUtmUps8.easting: 4845341.924698\n    test 860 line 169 toUtmUps8.northing: 8710522.326901\n    test 861 line 169 toUtmUps8.gamma: 72.320942\n    test 862 line 169 toUtmUps8.scale: 1.300382\n    test 863 line 169 toUtmUps8.lat: 48.806211\n    test 864 line 169 toUtmUps8.lon: 76.486365\n\n    test skipped (26): line 170 toUtmUps8.'56.436024794624 82.61156798689 3935261.5227628794258 9454271.6490618694486 81.162334302626197333 1.19476734082123451158'\n    test 865 line 171 toUtmUps8.easting: 7074299.823000\n    test 866 line 171 toUtmUps8.northing: 1648736.065055\n    test 867 line 171 toUtmUps8.gamma: 12.145925\n    test 868 line 171 toUtmUps8.scale: 1.687551\n    test 869 line 171 toUtmUps8.lat: 8.766053\n    test 870 line 171 toUtmUps8.lon: 54.367539\n    test 871 line 172 toUtmUps8.easting: 3689072.579308\n    test 872 line 172 toUtmUps8.northing: 2230802.665211\n    test 873 line 172 toUtmUps8.gamma: 10.856248\n    test 874 line 172 toUtmUps8.scale: 1.172689\n    test 875 line 172 toUtmUps8.lat: 17.095495\n    test 876 line 172 toUtmUps8.lon: 33.059128\n    test 877 line 173 toUtmUps8.easting: 8102565.885587\n    test 878 line 173 toUtmUps8.northing: 5167396.617580\n    test 879 line 173 toUtmUps8.gamma: 42.324886\n    test 880 line 173 toUtmUps8.scale: 1.921927\n    test 881 line 173 toUtmUps8.lat: 22.142861\n    test 882 line 173 toUtmUps8.lon: 67.200684\n    test 883 line 174 toUtmUps8.easting: 8181271.353564\n    test 884 line 174 toUtmUps8.northing: 4425436.547185\n    test 885 line 174 toUtmUps8.gamma: 35.900845\n    test 886 line 174 toUtmUps8.scale: 1.945017\n    test 887 line 174 toUtmUps8.lat: 19.222623\n    test 888 line 174 toUtmUps8.lon: 65.180785\n    test 889 line 175 toUtmUps8.easting: 767067.394003\n    test 890 line 175 toUtmUps8.northing: 3701745.857296\n    test 891 line 175 toUtmUps8.gamma: 4.519201\n    test 892 line 175 toUtmUps8.scale: 1.006863\n    test 893 line 175 toUtmUps8.lat: 33.182474\n    test 894 line 175 toUtmUps8.lon: 8.216952\n    test 895 line 176 toUtmUps8.easting: 6688114.168572\n    test 896 line 176 toUtmUps8.northing: 2052857.299639\n    test 897 line 176 toUtmUps8.gamma: 14.766191\n    test 898 line 176 toUtmUps8.scale: 1.607200\n    test 899 line 176 toUtmUps8.lat: 11.417963\n    test 900 line 176 toUtmUps8.lon: 52.808691\n    test 901 line 177 toUtmUps8.easting: 5608408.773761\n    test 902 line 177 toUtmUps8.northing: 3859055.659110\n    test 903 line 177 toUtmUps8.gamma: 26.244151\n    test 904 line 177 toUtmUps8.scale: 1.413463\n    test 905 line 177 toUtmUps8.lat: 23.836688\n    test 906 line 177 toUtmUps8.lon: 50.500180\n    test 907 line 178 toUtmUps8.easting: 3836942.765275\n    test 908 line 178 toUtmUps8.northing: 6415467.634326\n    test 909 line 178 toUtmUps8.gamma: 40.575885\n    test 910 line 178 toUtmUps8.scale: 1.185615\n    test 911 line 178 toUtmUps8.lat: 45.550020\n    test 912 line 178 toUtmUps8.lon: 50.148036\n    test 913 line 179 toUtmUps8.easting: 1298730.366025\n    test 914 line 179 toUtmUps8.northing: 6021453.000792\n    test 915 line 179 toUtmUps8.gamma: 15.613320\n    test 916 line 179 toUtmUps8.scale: 1.020367\n    test 917 line 179 toUtmUps8.lat: 52.746079\n    test 918 line 179 toUtmUps8.lon: 19.343926\n    test 919 line 180 toUtmUps8.easting: 416934.289208\n    test 920 line 180 toUtmUps8.northing: 7295683.451705\n    test 921 line 180 toUtmUps8.gamma: 8.238232\n    test 922 line 180 toUtmUps8.scale: 1.001729\n    test 923 line 180 toUtmUps8.lat: 65.513348\n    test 924 line 180 toUtmUps8.lon: 9.039529\n    test 925 line 181 toUtmUps8.easting: 4336076.850889\n    test 926 line 181 toUtmUps8.northing: 7617975.722779\n    test 927 line 181 toUtmUps8.gamma: 56.537088\n    test 928 line 181 toUtmUps8.scale: 1.238582\n    test 929 line 181 toUtmUps8.lat: 48.709795\n    test 930 line 181 toUtmUps8.lon: 63.554005\n    test 931 line 182 toUtmUps8.easting: 168047.336980\n    test 932 line 182 toUtmUps8.northing: 2185000.046530\n    test 933 line 182 toUtmUps8.gamma: 0.542187\n    test 934 line 182 toUtmUps8.scale: 0.999949\n    test 935 line 182 toUtmUps8.lat: 19.753509\n    test 936 line 182 toUtmUps8.lon: 1.603846\n    test 937 line 183 toUtmUps8.easting: 8276281.328790\n    test 938 line 183 toUtmUps8.northing: 263444.350545\n    test 939 line 183 toUtmUps8.gamma: 2.071435\n    test 940 line 183 toUtmUps8.scale: 1.980314\n    test 941 line 183 toUtmUps8.lat: 1.202816\n    test 942 line 183 toUtmUps8.lon: 59.377276\n    test 943 line 184 toUtmUps8.easting: 4772573.810710\n    test 944 line 184 toUtmUps8.northing: 6765710.336002\n    test 945 line 184 toUtmUps8.gamma: 48.857561\n    test 946 line 184 toUtmUps8.scale: 1.291911\n    test 947 line 184 toUtmUps8.lat: 42.564975\n    test 948 line 184 toUtmUps8.lon: 59.356947\n    test 949 line 185 toUtmUps8.easting: 5427755.074639\n    test 950 line 185 toUtmUps8.northing: 1556055.820924\n    test 951 line 185 toUtmUps8.gamma: 9.862178\n    test 952 line 185 toUtmUps8.scale: 1.387394\n    test 953 line 185 toUtmUps8.lat: 10.090572\n    test 954 line 185 toUtmUps8.lon: 44.604132\n    test 955 line 186 toUtmUps8.easting: 11588458.616240  FAILED, KNOWN, expected 11588458.616041\n    test 956 line 186 toUtmUps8.northing: 5707993.922683  FAILED, KNOWN, expected 5707993.922613\n    test 957 line 186 toUtmUps8.gamma: 50.784827\n    test 958 line 186 toUtmUps8.scale: 3.149567\n    test 959 line 186 toUtmUps8.lat: 14.133028\n    test 960 line 186 toUtmUps8.lon: 78.097533\n    test 961 line 187 toUtmUps8.easting: 7152433.802688\n    test 962 line 187 toUtmUps8.northing: 761390.695844\n    test 963 line 187 toUtmUps8.gamma: 5.607350\n    test 964 line 187 toUtmUps8.scale: 1.705261\n    test 965 line 187 toUtmUps8.lat: 4.031123\n    test 966 line 187 toUtmUps8.lon: 54.048782\n    test 967 line 188 toUtmUps8.easting: 3105651.390901\n    test 968 line 188 toUtmUps8.northing: 9426026.169064\n    test 969 line 188 toUtmUps8.gamma: 78.750206\n    test 970 line 188 toUtmUps8.scale: 1.119737\n    test 971 line 188 toUtmUps8.lat: 62.746603\n    test 972 line 188 toUtmUps8.lon: 79.968641\n    test 973 line 189 toUtmUps8.easting: 2959009.639022\n    test 974 line 189 toUtmUps8.northing: 8339242.269282\n    test 975 line 189 toUtmUps8.gamma: 58.460865\n    test 976 line 189 toUtmUps8.scale: 1.108554\n    test 977 line 189 toUtmUps8.lat: 60.626429\n    test 978 line 189 toUtmUps8.lon: 61.851551\n    test 979 line 190 toUtmUps8.easting: 8640472.267145\n    test 980 line 190 toUtmUps8.northing: 6230320.417931\n    test 981 line 190 toUtmUps8.gamma: 52.816810\n    test 982 line 190 toUtmUps8.scale: 2.062973\n    test 983 line 190 toUtmUps8.lat: 23.600626\n    test 984 line 190 toUtmUps8.lon: 72.811634\n    test 985 line 191 toUtmUps8.easting: 811352.108932\n    test 986 line 191 toUtmUps8.northing: 9816129.813481\n    test 987 line 191 toUtmUps8.gamma: 77.299184\n    test 988 line 191 toUtmUps8.scale: 1.007651\n    test 989 line 191 toUtmUps8.lat: 82.572236\n    test 990 line 191 toUtmUps8.lon: 77.402323\n    test 991 line 192 toUtmUps8.easting: 6521874.973458\n    test 992 line 192 toUtmUps8.northing: 1053612.479744\n    test 993 line 192 toUtmUps8.gamma: 7.407328\n    test 994 line 192 toUtmUps8.scale: 1.575529\n    test 995 line 192 toUtmUps8.lat: 6.030051\n    test 996 line 192 toUtmUps8.lon: 50.783505\n    test 997 line 193 toUtmUps8.easting: 3477983.997875\n    test 998 line 193 toUtmUps8.northing: 5651613.325947\n    test 999 line 193 toUtmUps8.gamma: 31.530673\n    test 1000 line 193 toUtmUps8.scale: 1.151875\n    test 1001 line 193 toUtmUps8.lat: 42.411523\n    test 1002 line 193 toUtmUps8.lon: 42.258009\n    test 1003 line 194 toUtmUps8.easting: 629892.822243\n    test 1004 line 194 toUtmUps8.northing: 3283914.910451\n    test 1005 line 194 toUtmUps8.gamma: 3.210482\n    test 1006 line 194 toUtmUps8.scale: 1.004499\n    test 1007 line 194 toUtmUps8.lat: 29.526120\n    test 1008 line 194 toUtmUps8.lon: 6.493069\n    test 1009 line 195 toUtmUps8.easting: 3381879.687227\n    test 1010 line 195 toUtmUps8.northing: 5103629.325665\n    test 1011 line 195 toUtmUps8.gamma: 26.748108\n    test 1012 line 195 toUtmUps8.scale: 1.143559\n    test 1013 line 195 toUtmUps8.lat: 39.021853\n    test 1014 line 195 toUtmUps8.lon: 38.641779\n    test 1015 line 196 toUtmUps8.easting: 2815986.534177\n    test 1016 line 196 toUtmUps8.northing: 9387029.120718\n    test 1017 line 196 toUtmUps8.gamma: 76.967262\n    test 1018 line 196 toUtmUps8.scale: 1.098032\n    test 1019 line 196 toUtmUps8.lat: 64.971850\n    test 1020 line 196 toUtmUps8.lon: 78.151893\n    test 1021 line 197 toUtmUps8.easting: 3398195.889603\n    test 1022 line 197 toUtmUps8.northing: 9138936.031490\n    test 1023 line 197 toUtmUps8.gamma: 74.477499\n    test 1024 line 197 toUtmUps8.scale: 1.144009\n    test 1025 line 197 toUtmUps8.lat: 59.961819\n    test 1026 line 197 toUtmUps8.lon: 76.473422\n    test 1027 line 198 toUtmUps8.easting: 2421734.754637\n    test 1028 line 198 toUtmUps8.northing: 5002372.094991\n    test 1029 line 198 toUtmUps8.gamma: 20.017082\n    test 1030 line 198 toUtmUps8.scale: 1.072592\n    test 1031 line 198 toUtmUps8.lat: 41.374040\n    test 1032 line 198 toUtmUps8.lon: 28.848343\n    test 1033 line 199 toUtmUps8.easting: 2360869.895525\n    test 1034 line 199 toUtmUps8.northing: 9553298.449536\n    test 1035 line 199 toUtmUps8.gamma: 78.848205\n    test 1036 line 199 toUtmUps8.scale: 1.068453\n    test 1037 line 199 toUtmUps8.lat: 68.946087\n    test 1038 line 199 toUtmUps8.lon: 79.574523\n\n    test skipped (27): line 200 toUtmUps8.'79.275096210569 83.551272329394 1196539.9721941076965 9861920.8362302532842 83.437668440198132309 1.01713723718699411107'\n    test 1039 line 201 toUtmUps8.easting: 1327758.704795\n    test 1040 line 201 toUtmUps8.northing: 2375509.241683\n    test 1041 line 201 toUtmUps8.gamma: 4.617572\n    test 1042 line 201 toUtmUps8.scale: 1.021465\n    test 1043 line 201 toUtmUps8.lat: 21.000252\n    test 1044 line 201 toUtmUps8.lon: 12.697444\n    test 1045 line 202 toUtmUps8.easting: 2070860.327644\n    test 1046 line 202 toUtmUps8.northing: 8604500.719581\n    test 1047 line 202 toUtmUps8.gamma: 54.722761\n    test 1048 line 202 toUtmUps8.scale: 1.052469\n    test 1049 line 202 toUtmUps8.lat: 68.015227\n    test 1050 line 202 toUtmUps8.lon: 56.732419\n    test 1051 line 203 toUtmUps8.easting: 6564776.654864\n    test 1052 line 203 toUtmUps8.northing: 8171207.177379\n    test 1053 line 203 toUtmUps8.gamma: 69.237523\n    test 1054 line 203 toUtmUps8.scale: 1.573894\n    test 1055 line 203 toUtmUps8.lat: 37.423675\n    test 1056 line 203 toUtmUps8.lon: 76.947359\n    test 1057 line 204 toUtmUps8.easting: 592653.553821\n    test 1058 line 204 toUtmUps8.northing: 6125529.810052\n    test 1059 line 204 toUtmUps8.gamma: 7.600785\n    test 1060 line 204 toUtmUps8.scale: 1.003912\n    test 1061 line 204 toUtmUps8.lat: 54.922707\n    test 1062 line 204 toUtmUps8.lon: 9.260818\n    test 1063 line 205 toUtmUps8.easting: 693459.671821\n    test 1064 line 205 toUtmUps8.northing: 6943779.991032\n    test 1065 line 205 toUtmUps8.gamma: 11.787587\n    test 1066 line 205 toUtmUps8.scale: 1.005496\n    test 1067 line 205 toUtmUps8.lat: 61.982810\n    test 1068 line 205 toUtmUps8.lon: 13.299659\n    test 1069 line 206 toUtmUps8.easting: 1838956.187625\n    test 1070 line 206 toUtmUps8.northing: 3511959.612381\n    test 1071 line 206 toUtmUps8.gamma: 9.844313\n    test 1072 line 206 toUtmUps8.scale: 1.041603\n    test 1073 line 206 toUtmUps8.lat: 30.324214\n    test 1074 line 206 toUtmUps8.lon: 18.959769\n    test 1075 line 207 toUtmUps8.easting: 4460690.884597\n    test 1076 line 207 toUtmUps8.northing: 5541873.235403\n    test 1077 line 207 toUtmUps8.gamma: 35.768613\n    test 1078 line 207 toUtmUps8.scale: 1.254179\n    test 1079 line 207 toUtmUps8.lat: 37.629667\n    test 1080 line 207 toUtmUps8.lon: 49.649131\n    test 1081 line 208 toUtmUps8.easting: 2311168.998941\n    test 1082 line 208 toUtmUps8.northing: 9480561.869119\n    test 1083 line 208 toUtmUps8.gamma: 76.828257\n    test 1084 line 208 toUtmUps8.scale: 1.065556\n    test 1085 line 208 toUtmUps8.lat: 69.225574\n    test 1086 line 208 toUtmUps8.lon: 77.656135\n    test 1087 line 209 toUtmUps8.easting: 4111775.114451\n    test 1088 line 209 toUtmUps8.northing: 6509014.348792\n    test 1089 line 209 toUtmUps8.gamma: 43.052130\n    test 1090 line 209 toUtmUps8.scale: 1.214125\n    test 1091 line 209 toUtmUps8.lat: 44.698478\n    test 1092 line 209 toUtmUps8.lon: 52.979304\n    test 1093 line 210 toUtmUps8.easting: 75358.261962\n    test 1094 line 210 toUtmUps8.northing: 7711258.662251\n    test 1095 line 210 toUtmUps8.gamma: 1.806297\n    test 1096 line 210 toUtmUps8.scale: 0.999669\n    test 1097 line 210 toUtmUps8.lat: 69.499594\n    test 1098 line 210 toUtmUps8.lon: 1.928336\n\n    test skipped (28): line 211 toUtmUps8.'27.981363604998 86.061112755721 8781885.2291162503299 9184776.4522114918448 81.795538514711932534 2.09490761781464961377'\n    test 1099 line 212 toUtmUps8.easting: 954378.415174\n    test 1100 line 212 toUtmUps8.northing: 7449110.669807\n    test 1101 line 212 toUtmUps8.gamma: 19.380657\n    test 1102 line 212 toUtmUps8.scale: 1.010768\n    test 1103 line 212 toUtmUps8.lat: 65.699839\n    test 1104 line 212 toUtmUps8.lon: 21.104725\n    test 1105 line 213 toUtmUps8.easting: 720971.793706\n    test 1106 line 213 toUtmUps8.northing: 5265195.121555\n    test 1107 line 213 toUtmUps8.gamma: 7.002995\n    test 1108 line 213 toUtmUps8.scale: 1.005995\n    test 1109 line 213 toUtmUps8.lat: 47.143648\n    test 1110 line 213 toUtmUps8.lon: 9.512189\n    test 1111 line 214 toUtmUps8.easting: 561561.493937\n    test 1112 line 214 toUtmUps8.northing: 989910.236221\n    test 1113 line 214 toUtmUps8.gamma: 0.793118\n    test 1114 line 214 toUtmUps8.scale: 1.003505\n    test 1115 line 214 toUtmUps8.lat: 8.920167\n    test 1116 line 214 toUtmUps8.lon: 5.101513\n    test 1117 line 215 toUtmUps8.easting: 3446829.634468\n    test 1118 line 215 toUtmUps8.northing: 9232868.155664\n    test 1119 line 215 toUtmUps8.gamma: 76.279075\n    test 1120 line 215 toUtmUps8.scale: 1.148263\n    test 1121 line 215 toUtmUps8.lat: 59.778971\n    test 1122 line 215 toUtmUps8.lon: 78.080322\n\n    test skipped (29): line 216 toUtmUps8.'55.865310107291 87.384288430943 4048307.5459092527942 9800416.4229977935137 86.843918034217523739 1.20649504624906774925'\n    test 1123 line 217 toUtmUps8.easting: 8973188.480293\n    test 1124 line 217 toUtmUps8.northing: 7042230.087021\n    test 1125 line 217 toUtmUps8.gamma: 60.872456\n    test 1126 line 217 toUtmUps8.scale: 2.156098\n    test 1127 line 217 toUtmUps8.lat: 24.310973\n    test 1128 line 217 toUtmUps8.lon: 76.823777\n    test 1129 line 218 toUtmUps8.easting: 126314.191618\n    test 1130 line 218 toUtmUps8.northing: 396006.687921\n    test 1131 line 218 toUtmUps8.gamma: 0.071065\n    test 1132 line 218 toUtmUps8.scale: 0.999798\n    test 1133 line 218 toUtmUps8.lat: 3.582041\n    test 1134 line 218 toUtmUps8.lon: 1.137286\n    test 1135 line 219 toUtmUps8.easting: 5247652.345647\n    test 1136 line 219 toUtmUps8.northing: 8670513.359752\n    test 1137 line 219 toUtmUps8.gamma: 72.700498\n    test 1138 line 219 toUtmUps8.scale: 1.355272\n    test 1139 line 219 toUtmUps8.lat: 46.124233\n    test 1140 line 219 toUtmUps8.lon: 77.313118\n\n    test skipped (30): line 220 toUtmUps8.'31.17139056295 87.104503768139 8103656.8381187232079 9469794.014736839373 84.490673011906282841 1.91216400164486142107'\n    test 1141 line 221 toUtmUps8.easting: 6300112.758236\n    test 1142 line 221 toUtmUps8.northing: 93835.917364\n    test 1143 line 221 toUtmUps8.gamma: 0.644805\n    test 1144 line 221 toUtmUps8.scale: 1.534073\n    test 1145 line 221 toUtmUps8.lat: 0.553171\n    test 1146 line 221 toUtmUps8.lon: 49.117104\n    test 1147 line 222 toUtmUps8.easting: 3894813.593782\n    test 1148 line 222 toUtmUps8.northing: 4833832.341027\n    test 1149 line 222 toUtmUps8.gamma: 27.453298\n    test 1150 line 222 toUtmUps8.scale: 1.192135\n    test 1151 line 222 toUtmUps8.lat: 35.361587\n    test 1152 line 222 toUtmUps8.lon: 41.860599\n    test 1153 line 223 toUtmUps8.easting: 402511.346712\n    test 1154 line 223 toUtmUps8.northing: 3520621.561911\n    test 1155 line 223 toUtmUps8.gamma: 2.238474\n    test 1156 line 223 toUtmUps8.scale: 1.001599\n    test 1157 line 223 toUtmUps8.lat: 31.750314\n    test 1158 line 223 toUtmUps8.lon: 4.248167\n    test 1159 line 224 toUtmUps8.easting: 5357378.503148\n    test 1160 line 224 toUtmUps8.northing: 2772997.602234\n    test 1161 line 224 toUtmUps8.gamma: 17.823560\n    test 1162 line 224 toUtmUps8.scale: 1.376031\n    test 1163 line 224 toUtmUps8.lat: 17.924336\n    test 1164 line 224 toUtmUps8.lon: 46.096402\n    test 1165 line 225 toUtmUps8.easting: 2807553.985866\n    test 1166 line 225 toUtmUps8.northing: 8177847.980275\n    test 1167 line 225 toUtmUps8.gamma: 54.680045\n    test 1168 line 225 toUtmUps8.scale: 1.097531\n    test 1169 line 225 toUtmUps8.lat: 60.931488\n    test 1170 line 225 toUtmUps8.lon: 58.221214\n\n    test skipped (31): line 226 toUtmUps8.'5.358150979521 87.556213284144 18289045.16650076146 7792942.3396035398889 73.216494415207315628 8.09800850850277481729'\n\n    test skipped (32): line 227 toUtmUps8.'28.616673489124 80.452426461437 8376822.4595378634541 8128174.6238782329989 70.920116640676321501 1.98487312027093768388'\n    test 1171 line 228 toUtmUps8.easting: 11898068.352950  FAILED, KNOWN, expected 11898068.353272\n    test 1172 line 228 toUtmUps8.northing: 4772439.493355  FAILED, KNOWN, expected 4772439.493697\n    test 1173 line 228 toUtmUps8.gamma: 42.613968\n    test 1174 line 228 toUtmUps8.scale: 3.314412\n    test 1175 line 228 toUtmUps8.lat: 11.709763\n    test 1176 line 228 toUtmUps8.lon: 76.760295\n    test 1177 line 229 toUtmUps8.easting: 10550946.939052  FAILED, KNOWN, expected 10550946.939050\n    test 1178 line 229 toUtmUps8.northing: 3851968.815305  FAILED, KNOWN, expected 3851968.815295\n    test 1179 line 229 toUtmUps8.gamma: 33.383025\n    test 1180 line 229 toUtmUps8.scale: 2.724754\n    test 1181 line 229 toUtmUps8.lat: 12.009498\n    test 1182 line 229 toUtmUps8.lon: 71.782351\n\n    test skipped (33): line 230 toUtmUps8.'37.62978386356 85.795687334213 6828299.1236065501034 9394803.2274626281036 83.181386462369626591 1.62435875189611017521'\n    test 1183 line 231 toUtmUps8.easting: 11162550.334001  FAILED, KNOWN, expected 11162550.334022\n    test 1184 line 231 toUtmUps8.northing: 2640267.279546  FAILED, KNOWN, expected 2640267.279593\n    test 1185 line 231 toUtmUps8.gamma: 23.145404\n    test 1186 line 231 toUtmUps8.scale: 2.998408\n    test 1187 line 231 toUtmUps8.lat: 7.721128\n    test 1188 line 231 toUtmUps8.lon: 71.662731\n    test 1189 line 232 toUtmUps8.easting: 4411584.447941\n    test 1190 line 232 toUtmUps8.northing: 4956173.694407\n    test 1191 line 232 toUtmUps8.gamma: 30.713919\n    test 1192 line 232 toUtmUps8.scale: 1.248736\n    test 1193 line 232 toUtmUps8.lat: 34.295026\n    test 1194 line 232 toUtmUps8.lon: 46.442191\n    test 1195 line 233 toUtmUps8.easting: 672108.897905\n    test 1196 line 233 toUtmUps8.northing: 4751554.657054\n    test 1197 line 233 toUtmUps8.gamma: 5.569178\n    test 1198 line 233 toUtmUps8.scale: 1.005162\n    test 1199 line 233 toUtmUps8.lat: 42.622496\n    test 1200 line 233 toUtmUps8.lon: 8.193605\n    test 1201 line 234 toUtmUps8.easting: 5022964.290579\n    test 1202 line 234 toUtmUps8.northing: 6860418.199502\n    test 1203 line 234 toUtmUps8.gamma: 50.862230\n    test 1204 line 234 toUtmUps8.scale: 1.324925\n    test 1205 line 234 toUtmUps8.lat: 41.667780\n    test 1206 line 234 toUtmUps8.lon: 61.518288\n    test 1207 line 235 toUtmUps8.easting: 1669655.595207\n    test 1208 line 235 toUtmUps8.northing: 4152086.537021\n    test 1209 line 235 toUtmUps8.gamma: 11.110237\n    test 1210 line 235 toUtmUps8.scale: 1.034138\n    test 1211 line 235 toUtmUps8.lat: 36.060369\n    test 1212 line 235 toUtmUps8.lon: 18.444112\n    test 1213 line 236 toUtmUps8.easting: 6055876.729655\n    test 1214 line 236 toUtmUps8.northing: 4896837.552619\n    test 1215 line 236 toUtmUps8.gamma: 35.799747\n    test 1216 line 236 toUtmUps8.scale: 1.485967\n    test 1217 line 236 toUtmUps8.lat: 27.948091\n    test 1218 line 236 toUtmUps8.lon: 56.816429\n    test 1219 line 237 toUtmUps8.easting: 1209214.164379\n    test 1220 line 237 toUtmUps8.northing: 7266409.859178\n    test 1221 line 237 toUtmUps8.gamma: 22.319633\n    test 1222 line 237 toUtmUps8.scale: 1.017554\n    test 1223 line 237 toUtmUps8.lat: 63.386030\n    test 1224 line 237 toUtmUps8.lon: 24.662716\n    test 1225 line 238 toUtmUps8.easting: 5154564.559584\n    test 1226 line 238 toUtmUps8.northing: 698118.349975\n    test 1227 line 238 toUtmUps8.gamma: 4.242360\n    test 1228 line 238 toUtmUps8.scale: 1.347481\n    test 1229 line 238 toUtmUps8.lat: 4.680922\n    test 1230 line 238 toUtmUps8.lon: 42.114426\n    test 1231 line 239 toUtmUps8.easting: 2695149.806543\n    test 1232 line 239 toUtmUps8.northing: 8208197.765605\n    test 1233 line 239 toUtmUps8.gamma: 54.178615\n    test 1234 line 239 toUtmUps8.scale: 1.089730\n    test 1235 line 239 toUtmUps8.lat: 61.826625\n    test 1236 line 239 toUtmUps8.lon: 57.525096\n    test 1237 line 240 toUtmUps8.easting: 3394792.327820\n    test 1238 line 240 toUtmUps8.northing: 3217583.415552\n    test 1239 line 240 toUtmUps8.gamma: 15.165863\n    test 1240 line 240 toUtmUps8.scale: 1.145285\n    test 1241 line 240 toUtmUps8.lat: 25.104353\n    test 1242 line 240 toUtmUps8.lon: 32.528660\n    test 1243 line 241 toUtmUps8.easting: 1429160.966985\n    test 1244 line 241 toUtmUps8.northing: 8212685.362032\n    test 1245 line 241 toUtmUps8.gamma: 37.484904\n    test 1246 line 241 toUtmUps8.scale: 1.024676\n    test 1247 line 241 toUtmUps8.lat: 69.678351\n    test 1248 line 241 toUtmUps8.lon: 39.275513\n\n    test skipped (34): line 242 toUtmUps8.'29.671383681805 84.19659549085 8343387.9980651104898 8885196.9545780118644 78.561937382568633298 1.97473261886829061763'\n    test 1249 line 243 toUtmUps8.easting: 1990722.928606\n    test 1250 line 243 toUtmUps8.northing: 7569202.065162\n    test 1251 line 243 toUtmUps8.gamma: 37.075276\n    test 1252 line 243 toUtmUps8.scale: 1.048486\n    test 1253 line 243 toUtmUps8.lat: 62.300208\n    test 1254 line 243 toUtmUps8.lon: 40.474051\n    test 1255 line 244 toUtmUps8.easting: 1554980.099559\n    test 1256 line 244 toUtmUps8.northing: 1449423.919586\n    test 1257 line 244 toUtmUps8.gamma: 3.188328\n    test 1258 line 244 toUtmUps8.scale: 1.029664\n    test 1259 line 244 toUtmUps8.lat: 12.721776\n    test 1260 line 244 toUtmUps8.lon: 14.190003\n    test 1261 line 245 toUtmUps8.easting: 785205.450196\n    test 1262 line 245 toUtmUps8.northing: 5575158.423096\n    test 1263 line 245 toUtmUps8.gamma: 8.388417\n    test 1264 line 245 toUtmUps8.scale: 1.007181\n    test 1265 line 245 toUtmUps8.lat: 49.811296\n    test 1266 line 245 toUtmUps8.lon: 10.925011\n    test 1267 line 246 toUtmUps8.easting: 3310405.988313\n    test 1268 line 246 toUtmUps8.northing: 5955022.233881\n    test 1269 line 246 toUtmUps8.gamma: 33.007587\n    test 1270 line 246 toUtmUps8.scale: 1.137141\n    test 1271 line 246 toUtmUps8.lat: 45.132680\n    test 1272 line 246 toUtmUps8.lon: 42.478624\n    test 1273 line 247 toUtmUps8.easting: 4733460.960666\n    test 1274 line 247 toUtmUps8.northing: 129034.889816\n    test 1275 line 247 toUtmUps8.gamma: 0.737551\n    test 1276 line 247 toUtmUps8.scale: 1.290439\n    test 1277 line 247 toUtmUps8.lat: 0.904279\n    test 1278 line 247 toUtmUps8.lon: 39.078412\n    test 1279 line 248 toUtmUps8.easting: 3322708.343909\n    test 1280 line 248 toUtmUps8.northing: 3864738.078742\n    test 1281 line 248 toUtmUps8.gamma: 18.472566\n    test 1282 line 248 toUtmUps8.scale: 1.138838\n    test 1283 line 248 toUtmUps8.lat: 30.163605\n    test 1284 line 248 toUtmUps8.lon: 33.577996\n\n    test skipped (35): line 249 toUtmUps8.'27.643243707755 81.892859091432 8672864.4172042475623 8333465.9834441061554 73.206272638168122883 2.06544053870286774312'\n\n    test skipped (36): line 250 toUtmUps8.'18.201207657521 82.434617649311 11126818.23119627031 7618712.1749910723126 67.88717347393512063 2.92241673495261070414'\n\n    test skipped (37): line 251 toUtmUps8.'28.804576432117 89.886072420251 8650100.9817967479337 9975084.1689971279206 89.767446308690086924 2.05728879562910108817'\n    test 1285 line 252 toUtmUps8.easting: 2212701.180192\n    test 1286 line 252 toUtmUps8.northing: 650348.100229\n    test 1287 line 252 toUtmUps8.gamma: 1.970441\n    test 1288 line 252 toUtmUps8.scale: 1.060830\n    test 1289 line 252 toUtmUps8.lat: 5.542998\n    test 1290 line 252 toUtmUps8.lon: 19.589578\n    test 1291 line 253 toUtmUps8.easting: 6890222.326618\n    test 1292 line 253 toUtmUps8.northing: 7506813.499547\n    test 1293 line 253 toUtmUps8.gamma: 62.684825\n    test 1294 line 253 toUtmUps8.scale: 1.638488\n    test 1295 line 253 toUtmUps8.lat: 34.237147\n    test 1296 line 253 toUtmUps8.lon: 73.678164\n    test 1297 line 254 toUtmUps8.easting: 6692260.067325\n    test 1298 line 254 toUtmUps8.northing: 4244174.008110\n    test 1299 line 254 toUtmUps8.gamma: 31.812920\n    test 1300 line 254 toUtmUps8.scale: 1.604640\n    test 1301 line 254 toUtmUps8.lat: 22.704949\n    test 1302 line 254 toUtmUps8.lon: 57.877010\n    test 1303 line 255 toUtmUps8.easting: 1225564.137190\n    test 1304 line 255 toUtmUps8.northing: 4778923.924144\n    test 1305 line 255 toUtmUps8.gamma: 10.083419\n    test 1306 line 255 toUtmUps8.scale: 1.018134\n    test 1307 line 255 toUtmUps8.lat: 42.192424\n    test 1308 line 255 toUtmUps8.lon: 14.828196\n    test 1309 line 256 toUtmUps8.easting: 12341116.155088  FAILED, KNOWN, expected 12341116.154950\n    test 1310 line 256 toUtmUps8.northing: 5081855.520287  FAILED, KNOWN, expected 5081855.521966\n    test 1311 line 256 toUtmUps8.gamma: 45.712545  FAILED, KNOWN, expected 45.712546\n    test 1312 line 256 toUtmUps8.scale: 3.535170\n    test 1313 line 256 toUtmUps8.lat: 11.481151\n    test 1314 line 256 toUtmUps8.lon: 78.189236\n    test 1315 line 257 toUtmUps8.easting: 6673845.021771\n    test 1316 line 257 toUtmUps8.northing: 1177587.190565\n    test 1317 line 257 toUtmUps8.gamma: 8.389141\n    test 1318 line 257 toUtmUps8.scale: 1.605171\n    test 1319 line 257 toUtmUps8.lat: 6.609626\n    test 1320 line 257 toUtmUps8.lon: 51.735783\n    test 1321 line 258 toUtmUps8.easting: 6966354.690417\n    test 1322 line 258 toUtmUps8.northing: 3641802.005093\n    test 1323 line 258 toUtmUps8.gamma: 27.409636\n    test 1324 line 258 toUtmUps8.scale: 1.661469\n    test 1325 line 258 toUtmUps8.lat: 19.059369\n    test 1326 line 258 toUtmUps8.lon: 57.526439\n    test 1327 max forward error: 1.678809e-03\n    test 1328 max reverse error: 3.170456e-09\n    test 1329 Utm.scale0: 0.9996\n    test 1330 Utm.datum: WGS84\n    test 1331 Utm.datum.ellipsoid.KsOrder: 8\n    test 1332 Ups.scale0: 0.994  FAILED, KNOWN, expected 0.9996\n    test 1333 Ups.datum: WGS84\n    test 1334 Ups.datum.ellipsoid.KsOrder: 8\n    test 1335 WGS84.KsOrder: 8\n\n    24 of 1335 testUtmUpsTMcoords.py tests (1.8%) FAILED, ALL KNOWN, 37 skipped (pygeodesy 26.3.26 Python 2.7.18 64bit arm64_x86_64 geographiclib 1.50 numpy 1.16.6 scipy 1.2.2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 -W  default) 348.418 ms\nrunning /Library/Framewo....ython -W default ~/PyGeodesy/test/testVectorial.py\n./pygeodesy/ellipsoidalBase.py:443: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  _ = self.datum.ellipsoid.geodesic\n./pygeodesy/azimuthal.py:636: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return self.datum.ellipsoid.geodesic\n./pygeodesy/ellipsoidalNvector.py:247: DeprecationWarning: Property_RO L{ned<pygeodesy.ltpTuples.Ned.ned>} has been DEPRECATED, use property C{ned4}.\n  dn = delta.ned[:3]  # XXX Ned4Tuple.to3Tuple\n./pygeodesy/deprecated/classes.py:33: DeprecationWarning: class L{Ned3Tuple<pygeodesy.deprecated.classes.Ned3Tuple>} has been DEPRECATED, use class L{Ned4Tuple}, ignoring item C{ltp}.\n  deprecated_class(cls)\n./test/testVectorial.py:128: DeprecationWarning: function L{nearestOn<pygeodesy.vector2d.nearestOn>} has been DEPRECATED on 2025.05.06, use L{pygeodesy.nearestOn<pygeodesy.vector3d.nearestOn>}.\n  t = vector2d.nearestOn(Nvector(0, 0, 0), p1, p2)\n\n    testing testVectorial.py 25.10.07\n\n    testVectorial(pygeodesy.ellipsoidalNvector, 25.05.12)\n\n    test 1 toLatLon: 44.995674°N, 045.0°E\n    test 2 toNvector: (0.50004, 0.50004, 0.70705)\n    test 3 isequalTo: False\n    test 4 isequalTo: True\n    test 5 length: 0.99992449715\n    test 6 euclid: 0.99995577\n    test 7 length: 1.00\n    test 8 euclid: 1.0000\n    test 9 meanOf: 44.995674°N, 045.0°E\n    test 10 meanOf: LatLon\n    test 11 apply: (0.5, 0.5, 0.707)\n    test 12 init: (0.5, 0.5, 0.707)\n    test 13 i***: (0.5, 0.5, 0.707)\n    test 14 abs: 0.99992449715\n    test 15 sumOf: (52.70504, 0.61904, 0.70705)\n    test 16 sumOf: Nv\n    test 17 sumOf: sumOf\n    test 18 length: 52.7134151513\n    test 19 sizeof: 205  FAILED, KNOWN, expected 128\n    test 20 length: 52.2051356286\n    test 21 sizeof: 320  FAILED, KNOWN, expected 247\n    test 22 copy: True\n    test 23 length: 52.2051356286\n    test 24 sizeof: 320\n    test 25 isenclosedBy: True\n    test 26 isenclosedBy*: True\n    test 27 isenclosedBy: True\n    test 28 isenclosedBy*: True\n\n    test 29 nearestOn: 51.0°N, 001.0°E\n    test 30 nearestOn: 50.987°N, 000.298°W\n    test 31 nearestOn: 51.0°N, 002.0°E\n    test 32 nearestOn: 50.995°N, 002.655°E\n    test 33 nearestOn: 51.0°N, 001.9°E\n    test 34 nearestOn: True\n    test 35 distanceTo: 42.826\n    test 36 nearestOn: 51.0°N, 002.0°E\n    test 37 nearestOn: True\n    test 38 nearestOn: 00.0°N, 000.0°E\n    test 39 nearestOn: True\n    test 40 nearestOn: 00.0°N, 020.0°E\n    test 41 nearestOn: True\n    test 42 nearestOn: 02.0°N, 002.0°E\n    test 43 nearestOn: 02.0°N, 002.0°E\n\n    test 44 neareston6: (LatLon(45°00′00.0″N, 001°00′00.0″E), 4755443.4294, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E))\n    test 45 neareston6: (LatLon(45°30′03.94″N, 002°00′00.0″E), 39078.729285, 1.501072, 2, LatLon(45°00′00.0″N, 002°00′00.0″E), LatLon(46°00′00.0″N, 002°00′00.0″E))\n\n    test 46 BasseC: 47.3038°N, 002.5721°W\n    test 47 BasseH: 47.311067°N, 002.528617°W\n    test 48 triangulate: 47.323667°N, 002.568501°W\n    test 49 triangulate: True\n\n    test 50 trilaterate: 37.419078°N, 121.960579°W\n    test 51 trilaterate: True\n    test 52 trilaterate: 08.068912°S, 034.888699°W\n    test 53 trilaterate: True\n    test 54 trilaterate: 08.068912°S, 034.888695°W  FAILED, KNOWN, expected 08.068912°S, 034.888699°W\n    test 55 trilaterate: True\n    test 56 trilaterate: 42.67456065°N, 002.49539502°E\n    test 57 trilaterate: distance1 (5110), distance2 (5110), distance3 (5110), point1 (LatLon(42°41′19.82″N, 002°26′19.89″E)), point2 (LatLon(42°38′07.52″N, 002°31′21.25″E)) or point3 (LatLon(42°38′43.44″N, 002°30′17.32″E)): no intersection (useZ=False, wrap=False, z=-8.13526e-05)\n\n    test 58 destinationNed: 48°53′12.01″N, 002°22′29.0″E, +0.20m\n\n    testNvector(pygeodesy.ellipsoidalNvector, 25.05.12)\n    test 59 sumOf: Nvector\n    test 60 ecef.x, .y, .z: 3194659.54086, 3194659.54086, 4487008.4122\n    test 61 ecef.lat, .lon: 44.995674, 45.0\n    test 62 ecef.height: -0.0\n    test 63 ecef.M: -0.707106781, -0.499962243, 0.500037754, 0.707106781, -0.499962243, 0.500037754, 0.0, 0.707160174, 0.707053385\n    test 64 nearestOn: (0.0, 0.0, 0.0)\n    test 65 nearestOn: True\n    test 66 nearestOn: (100.0, 100.0, 100.0)\n    test 67 nearestOn: True\n    test 68 iscolinearWith: False\n    test 69 iscolinearWith: True\n    test 70 nearestOn: (0.0, 0.0, 0.0)\n    test 71 nearestOn: True\n    test 72 nearestOn: (100.0, 100.0, 100.0)\n    test 73 nearestOn: True\n    test 74 iscolinearWith: False\n    test 75 iscolinearWith: True\n\n    testVectorial(pygeodesy.sphericalNvector, 25.05.27)\n    test 76 crossTrackDistanceTo: -305.67\n    test 77 crossTrackDistanceTo: -307.55\n\n    test 78 toLatLon: 44.995674°N, 045.0°E\n    test 79 toNvector: (0.50004, 0.50004, 0.70705)\n    test 80 isequalTo: False\n    test 81 isequalTo: True\n    test 82 length: 0.99992449715\n    test 83 euclid: 0.99995577\n    test 84 length: 1.00\n    test 85 euclid: 1.0000\n    test 86 meanOf: 44.995674°N, 045.0°E\n    test 87 meanOf: LatLon\n    test 88 apply: (0.5, 0.5, 0.707)\n    test 89 init: (0.5, 0.5, 0.707)\n    test 90 i***: (0.5, 0.5, 0.707)\n    test 91 abs: 0.99992449715\n    test 92 sumOf: (52.70504, 0.61904, 0.70705)\n    test 93 sumOf: Nv\n    test 94 sumOf: sumOf\n    test 95 length: 52.7134151513\n    test 96 sizeof: 205  FAILED, KNOWN, expected 128\n    test 97 length: 52.2051356286\n    test 98 sizeof: 320  FAILED, KNOWN, expected 247\n    test 99 copy: True\n    test 100 length: 52.2051356286\n    test 101 sizeof: 320\n\n    test 102 toCartesian: [3185744.919, 3185744.919, 4504643.315]\n    test 103 toLatLon: 44.995674°N, 045.0°E, -0.00m  FAILED, KNOWN, expected 44.995674°N, 045.0°E\n    test 104 toNvector: (0.50004, 0.50004, 0.70705)  FAILED, KNOWN, expected (0.50004, 0.50004, 0.70705, -0.00)\n\n    test 105 intersection: 02.499372°N, 002.5°E\n\n    test 106 intersection1: 02.499372°N, 002.5°E\n    test 107 intersection2: 02.499372°S, 177.5°W\n\n    test 108 isenclosedBy: True\n    test 109 isenclosedBy*: True\n    test 110 isenclosedBy: True\n    test 111 isenclosedBy*: True\n\n    test 112 iswithin: False\n    test 113 iswithin: True\n\n    test 114 nearestOn: 51.0°N, 001.0°E\n    test 115 nearestOn: 50.987°N, 000.298°W\n    test 116 nearestOn: 51.0°N, 002.0°E\n    test 117 nearestOn: 50.995°N, 002.655°E\n    test 118 nearestOn: 51.0°N, 001.9°E\n    test 119 nearestOn: True\n    test 120 distanceTo: 42.712\n    test 121 nearestOn: 51.0°N, 002.0°E\n    test 122 nearestOn: True\n    test 123 nearestOn: 00.0°N, 000.0°E\n    test 124 nearestOn: True\n    test 125 nearestOn: 00.0°N, 020.0°E\n    test 126 nearestOn: True\n    test 127 nearestOn: 02.0°N, 002.0°E\n    test 128 nearestOn: 02.0°N, 002.0°E\n\n    test 129 neareston6: (LatLon(45°00′00.0″N, 001°00′00.0″E), 4773243.784965, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E))\n    test 130 neareston6: (LatLon(45°30′03.93″N, 002°00′00.0″E), 38968.531578, 1.501091, 2, LatLon(45°00′00.0″N, 002°00′00.0″E), LatLon(46°00′00.0″N, 002°00′00.0″E))\n\n    test 131 BasseC: 47.3038°N, 002.5721°W\n    test 132 BasseH: 47.311067°N, 002.528617°W\n    test 133 triangulate: 47.323667°N, 002.568501°W\n    test 134 triangulate: True\n\n    test 135 trilaterate: 37.419078°N, 121.960579°W\n    test 136 trilaterate: True\n    test 137 trilaterate: 08.068912°S, 034.888699°W\n    test 138 trilaterate: True\n    test 139 trilaterate: 08.068912°S, 034.888695°W  FAILED, KNOWN, expected 08.068912°S, 034.888699°W\n    test 140 trilaterate: True\n    test 141 trilaterate: 42.67456065°N, 002.49539502°E\n    test 142 trilaterate: distance1 (5110), distance2 (5110), distance3 (5110), point1 (LatLon(42°41′19.82″N, 002°26′19.89″E)), point2 (LatLon(42°38′07.52″N, 002°31′21.25″E)) or point3 (LatLon(42°38′43.44″N, 002°30′17.32″E)): no intersection (useZ=False, wrap=False, z=-8.13526e-05)\n\n    testNvector(pygeodesy.sphericalNvector, 25.05.27)\n    test 143 sumOf: Nvector\n    test 144 ecef.x, .y, .z: 3185744.91853, 3185744.91853, 4504643.3148\n    test 145 ecef.lat, .lon: 44.995674, 45.0\n    test 146 ecef.height: -0.0\n    test 147 ecef.M: -0.707106781, -0.499962243, 0.500037754, 0.707106781, -0.499962243, 0.500037754, 0.0, 0.707160174, 0.707053385\n    test 148 nearestOn: (0.0, 0.0, 0.0)\n    test 149 nearestOn: True\n    test 150 nearestOn: (100.0, 100.0, 100.0)\n    test 151 nearestOn: True\n    test 152 iscolinearWith: False\n    test 153 iscolinearWith: True\n    test 154 nearestOn: (0.0, 0.0, 0.0)\n    test 155 nearestOn: True\n    test 156 nearestOn: (100.0, 100.0, 100.0)\n    test 157 nearestOn: True\n    test 158 iscolinearWith: False\n    test 159 iscolinearWith: True\n\n    testNvectorBase(pygeodesy.nvectorBase, 25.08.18)\n    test 160 sumOf: Vector4Tuple\n    test 161 ecef.x, .y, .z: 3185744.91853, 3185744.91853, 4504643.3148\n    test 162 ecef.lat, .lon: 44.995674, 45.0\n    test 163 ecef.height: -0.0\n    test 164 ecef.M: -0.707106781, -0.499962243, 0.500037754, 0.707106781, -0.499962243, 0.500037754, 0.0, 0.707160174, 0.707053385\n    test 165 nearestOn: (0.0, 0.0, 0.0)\n    test 166 nearestOn: True\n    test 167 nearestOn: (100.0, 100.0, 100.0)\n    test 168 nearestOn: True\n    test 169 iscolinearWith: False\n    test 170 iscolinearWith: True\n    test 171 nearestOn: (0.0, 0.0, 0.0)\n    test 172 nearestOn: True\n    test 173 nearestOn: (100.0, 100.0, 100.0)\n    test 174 nearestOn: True\n    test 175 iscolinearWith: False\n    test 176 iscolinearWith: True\n\n    testNvectorBase(pygeodesy.nvectorBase, 25.08.18)\n    test 177 sumOf: Vector4Tuple\n    test 178 ecef.x, .y, .z: 3194659.54086, 3194659.54086, 4487008.4122\n    test 179 ecef.lat, .lon: 44.995674, 45.0\n    test 180 ecef.height: -0.0\n    test 181 ecef.M: -0.707106781, -0.499962243, 0.500037754, 0.707106781, -0.499962243, 0.500037754, 0.0, 0.707160174, 0.707053385\n    test 182 nearestOn: (0.0, 0.0, 0.0)\n    test 183 nearestOn: True\n    test 184 nearestOn: (100.0, 100.0, 100.0)\n    test 185 nearestOn: True\n    test 186 iscolinearWith: False\n    test 187 iscolinearWith: True\n    test 188 nearestOn: (0.0, 0.0, 0.0)\n    test 189 nearestOn: True\n    test 190 nearestOn: (100.0, 100.0, 100.0)\n    test 191 nearestOn: True\n    test 192 iscolinearWith: False\n    test 193 iscolinearWith: True\n\n    testCartesian(pygeodesy.sphericalNvector, 25.05.27)\n    test 194 sphericalNvector.Cartesian.trilaterate3d2: 2\n    test 195 sphericalNvector.Cartesian 'trilaterate3d2': 119.8958, 130.6508, -5.1451\n    test 196 sphericalNvector.Cartesian 'trilaterate3d2': 119.9999, 129.9999, 30.0019\n    test 197 pygeodesy.vector3d.trilaterate3d2: 2\n    test 198 sphericalNvector.Cartesian 'trilaterate3d2': 24.31229, -2.52045, 1.53649\n    test 199 sphericalNvector.Cartesian 'trilaterate3d2': 24.35062, -2.48109, 1.66673\n    test 200 pygeodesy.vector3d.trilaterate3d2: center1 (Cartesian(22.59, 0.524, 1.2)), center2 (Cartesian(25.475, -6.124, 2.36)), center3 (Cartesian(22.59, 0.524, 1.2)), radius1 (3.851), radius2 (3.875) or radius3 (3.514): 'center1 and center3 near-concentric'\n    test 201 pygeodesy.vector3d.trilaterate3d2: center1 (Cartesian(27.297, -4.953, 1.47)), center2 (Cartesian(25.475, -6.124, 2.36)), center3 (Cartesian(22.59, 0.524, 1.2)), radius1 (0.3851), radius2 (0.3875) or radius3 (3.514): 'center1 and center2 too distant (2.34)'\n    test 202 pygeodesy.vector3d.trilaterate3d2: center1 (Cartesian(0.0, 0.0, 0.0)), center2 (Cartesian(0.0, 9.0, 0.0)), center3 (Cartesian(0.0, -9.0, 0.0)), radius1 (10), radius2 (10) or radius3 (10): 'colinear'\n    test 203 Cartesian.trilaterate3d2: 2\n    test 204 sphericalNvector.Cartesian 'trilaterate3d2': 24.31229, -2.52045, 1.53649\n    test 205 sphericalNvector.Cartesian 'trilaterate3d2': 24.35062, -2.48109, 1.66673\n    test 206 Cartesian.trilaterate3d2: center (Cartesian(22.59, 0.524, 1.2)), center2 (Cartesian(25.475, -6.124, 2.36)), center3 (Cartesian(22.59, 0.524, 1.2)), radius (3.851), radius2 (3.875) or radius3 (3.514): 'center and center3 near-concentric'\n    test 207 Cartesian.trilaterate3d2: center (Cartesian(27.297, -4.953, 1.47)), center2 (Cartesian(25.475, -6.124, 2.36)), center3 (Cartesian(22.59, 0.524, 1.2)), radius (0.3851), radius2 (0.3875) or radius3 (3.514): 'center and center2 too distant (2.34)'\n    test 208 Cartesian.trilaterate3d2: center (Cartesian(0.0, 0.0, 0.0)), center2 (Cartesian(0.0, 9.0, 0.0)), center3 (Cartesian(0.0, -9.0, 0.0)), radius (10), radius2 (10) or radius3 (10): 'colinear'\n\n    testCartesian(pygeodesy.sphericalTrigonometry, 25.08.31)\n    test 209 sphericalTrigonometry.Cartesian.trilaterate3d2: 2\n    test 210 sphericalTrigonometry.Cartesian 'trilaterate3d2': 119.8958, 130.6508, -5.1451\n    test 211 sphericalTrigonometry.Cartesian 'trilaterate3d2': 119.9999, 129.9999, 30.0019\n    test 212 pygeodesy.vector3d.trilaterate3d2: 2\n    test 213 sphericalTrigonometry.Cartesian 'trilaterate3d2': 24.31229, -2.52045, 1.53649\n    test 214 sphericalTrigonometry.Cartesian 'trilaterate3d2': 24.35062, -2.48109, 1.66673\n    test 215 pygeodesy.vector3d.trilaterate3d2: center1 (Cartesian(22.59, 0.524, 1.2)), center2 (Cartesian(25.475, -6.124, 2.36)), center3 (Cartesian(22.59, 0.524, 1.2)), radius1 (3.851), radius2 (3.875) or radius3 (3.514): 'center1 and center3 near-concentric'\n    test 216 pygeodesy.vector3d.trilaterate3d2: center1 (Cartesian(27.297, -4.953, 1.47)), center2 (Cartesian(25.475, -6.124, 2.36)), center3 (Cartesian(22.59, 0.524, 1.2)), radius1 (0.3851), radius2 (0.3875) or radius3 (3.514): 'center1 and center2 too distant (2.34)'\n    test 217 pygeodesy.vector3d.trilaterate3d2: center1 (Cartesian(0.0, 0.0, 0.0)), center2 (Cartesian(0.0, 9.0, 0.0)), center3 (Cartesian(0.0, -9.0, 0.0)), radius1 (10), radius2 (10) or radius3 (10): 'colinear'\n    test 218 Cartesian.trilaterate3d2: 2\n    test 219 sphericalTrigonometry.Cartesian 'trilaterate3d2': 24.31229, -2.52045, 1.53649\n    test 220 sphericalTrigonometry.Cartesian 'trilaterate3d2': 24.35062, -2.48109, 1.66673\n    test 221 Cartesian.trilaterate3d2: center (Cartesian(22.59, 0.524, 1.2)), center2 (Cartesian(25.475, -6.124, 2.36)), center3 (Cartesian(22.59, 0.524, 1.2)), radius (3.851), radius2 (3.875) or radius3 (3.514): 'center and center3 near-concentric'\n    test 222 Cartesian.trilaterate3d2: center (Cartesian(27.297, -4.953, 1.47)), center2 (Cartesian(25.475, -6.124, 2.36)), center3 (Cartesian(22.59, 0.524, 1.2)), radius (0.3851), radius2 (0.3875) or radius3 (3.514): 'center and center2 too distant (2.34)'\n    test 223 Cartesian.trilaterate3d2: center (Cartesian(0.0, 0.0, 0.0)), center2 (Cartesian(0.0, 9.0, 0.0)), center3 (Cartesian(0.0, -9.0, 0.0)), radius (10), radius2 (10) or radius3 (10): 'colinear'\n\n    testCartesian(pygeodesy.ellipsoidalNvector, 25.05.12)\n    test 224 ellipsoidalNvector.Cartesian.trilaterate3d2: 2\n    test 225 ellipsoidalNvector.Cartesian 'trilaterate3d2': 119.8958, 130.6508, -5.1451\n    test 226 ellipsoidalNvector.Cartesian 'trilaterate3d2': 119.9999, 129.9999, 30.0019\n    test 227 pygeodesy.vector3d.trilaterate3d2: 2\n    test 228 ellipsoidalNvector.Cartesian 'trilaterate3d2': 24.31229, -2.52045, 1.53649\n    test 229 ellipsoidalNvector.Cartesian 'trilaterate3d2': 24.35062, -2.48109, 1.66673\n    test 230 pygeodesy.vector3d.trilaterate3d2: center1 (Cartesian(22.59, 0.524, 1.2)), center2 (Cartesian(25.475, -6.124, 2.36)), center3 (Cartesian(22.59, 0.524, 1.2)), radius1 (3.851), radius2 (3.875) or radius3 (3.514): 'center1 and center3 near-concentric'\n    test 231 pygeodesy.vector3d.trilaterate3d2: center1 (Cartesian(27.297, -4.953, 1.47)), center2 (Cartesian(25.475, -6.124, 2.36)), center3 (Cartesian(22.59, 0.524, 1.2)), radius1 (0.3851), radius2 (0.3875) or radius3 (3.514): 'center1 and center2 too distant (2.34)'\n    test 232 pygeodesy.vector3d.trilaterate3d2: center1 (Cartesian(0.0, 0.0, 0.0)), center2 (Cartesian(0.0, 9.0, 0.0)), center3 (Cartesian(0.0, -9.0, 0.0)), radius1 (10), radius2 (10) or radius3 (10): 'colinear'\n    test 233 Cartesian.trilaterate3d2: 2\n    test 234 ellipsoidalNvector.Cartesian 'trilaterate3d2': 24.31229, -2.52045, 1.53649\n    test 235 ellipsoidalNvector.Cartesian 'trilaterate3d2': 24.35062, -2.48109, 1.66673\n    test 236 Cartesian.trilaterate3d2: center (Cartesian(22.59, 0.524, 1.2)), center2 (Cartesian(25.475, -6.124, 2.36)), center3 (Cartesian(22.59, 0.524, 1.2)), radius (3.851), radius2 (3.875) or radius3 (3.514): 'center and center3 near-concentric'\n    test 237 Cartesian.trilaterate3d2: center (Cartesian(27.297, -4.953, 1.47)), center2 (Cartesian(25.475, -6.124, 2.36)), center3 (Cartesian(22.59, 0.524, 1.2)), radius (0.3851), radius2 (0.3875) or radius3 (3.514): 'center and center2 too distant (2.34)'\n    test 238 Cartesian.trilaterate3d2: center (Cartesian(0.0, 0.0, 0.0)), center2 (Cartesian(0.0, 9.0, 0.0)), center3 (Cartesian(0.0, -9.0, 0.0)), radius (10), radius2 (10) or radius3 (10): 'colinear'\n\n    testCartesian(pygeodesy.ellipsoidalVincenty, 25.05.26)\n    test 239 ellipsoidalVincenty.Cartesian.trilaterate3d2: 2\n    test 240 ellipsoidalVincenty.Cartesian 'trilaterate3d2': 119.8958, 130.6508, -5.1451\n    test 241 ellipsoidalVincenty.Cartesian 'trilaterate3d2': 119.9999, 129.9999, 30.0019\n    test 242 pygeodesy.vector3d.trilaterate3d2: 2\n    test 243 ellipsoidalVincenty.Cartesian 'trilaterate3d2': 24.31229, -2.52045, 1.53649\n    test 244 ellipsoidalVincenty.Cartesian 'trilaterate3d2': 24.35062, -2.48109, 1.66673\n    test 245 pygeodesy.vector3d.trilaterate3d2: center1 (Cartesian(22.59, 0.524, 1.2)), center2 (Cartesian(25.475, -6.124, 2.36)), center3 (Cartesian(22.59, 0.524, 1.2)), radius1 (3.851), radius2 (3.875) or radius3 (3.514): 'center1 and center3 near-concentric'\n    test 246 pygeodesy.vector3d.trilaterate3d2: center1 (Cartesian(27.297, -4.953, 1.47)), center2 (Cartesian(25.475, -6.124, 2.36)), center3 (Cartesian(22.59, 0.524, 1.2)), radius1 (0.3851), radius2 (0.3875) or radius3 (3.514): 'center1 and center2 too distant (2.34)'\n    test 247 pygeodesy.vector3d.trilaterate3d2: center1 (Cartesian(0.0, 0.0, 0.0)), center2 (Cartesian(0.0, 9.0, 0.0)), center3 (Cartesian(0.0, -9.0, 0.0)), radius1 (10), radius2 (10) or radius3 (10): 'colinear'\n    test 248 Cartesian.trilaterate3d2: 2\n    test 249 ellipsoidalVincenty.Cartesian 'trilaterate3d2': 24.31229, -2.52045, 1.53649\n    test 250 ellipsoidalVincenty.Cartesian 'trilaterate3d2': 24.35062, -2.48109, 1.66673\n    test 251 Cartesian.trilaterate3d2: center (Cartesian(22.59, 0.524, 1.2)), center2 (Cartesian(25.475, -6.124, 2.36)), center3 (Cartesian(22.59, 0.524, 1.2)), radius (3.851), radius2 (3.875) or radius3 (3.514): 'center and center3 near-concentric'\n    test 252 Cartesian.trilaterate3d2: center (Cartesian(27.297, -4.953, 1.47)), center2 (Cartesian(25.475, -6.124, 2.36)), center3 (Cartesian(22.59, 0.524, 1.2)), radius (0.3851), radius2 (0.3875) or radius3 (3.514): 'center and center2 too distant (2.34)'\n    test 253 Cartesian.trilaterate3d2: center (Cartesian(0.0, 0.0, 0.0)), center2 (Cartesian(0.0, 9.0, 0.0)), center3 (Cartesian(0.0, -9.0, 0.0)), radius (10), radius2 (10) or radius3 (10): 'colinear'\n\n    testCartesian(pygeodesy.ellipsoidalKarney, 25.05.27)\n    test 254 ellipsoidalKarney.Cartesian.trilaterate3d2: 2\n    test 255 ellipsoidalKarney.Cartesian 'trilaterate3d2': 119.8958, 130.6508, -5.1451\n    test 256 ellipsoidalKarney.Cartesian 'trilaterate3d2': 119.9999, 129.9999, 30.0019\n    test 257 pygeodesy.vector3d.trilaterate3d2: 2\n    test 258 ellipsoidalKarney.Cartesian 'trilaterate3d2': 24.31229, -2.52045, 1.53649\n    test 259 ellipsoidalKarney.Cartesian 'trilaterate3d2': 24.35062, -2.48109, 1.66673\n    test 260 pygeodesy.vector3d.trilaterate3d2: center1 (Cartesian(22.59, 0.524, 1.2)), center2 (Cartesian(25.475, -6.124, 2.36)), center3 (Cartesian(22.59, 0.524, 1.2)), radius1 (3.851), radius2 (3.875) or radius3 (3.514): 'center1 and center3 near-concentric'\n    test 261 pygeodesy.vector3d.trilaterate3d2: center1 (Cartesian(27.297, -4.953, 1.47)), center2 (Cartesian(25.475, -6.124, 2.36)), center3 (Cartesian(22.59, 0.524, 1.2)), radius1 (0.3851), radius2 (0.3875) or radius3 (3.514): 'center1 and center2 too distant (2.34)'\n    test 262 pygeodesy.vector3d.trilaterate3d2: center1 (Cartesian(0.0, 0.0, 0.0)), center2 (Cartesian(0.0, 9.0, 0.0)), center3 (Cartesian(0.0, -9.0, 0.0)), radius1 (10), radius2 (10) or radius3 (10): 'colinear'\n    test 263 Cartesian.trilaterate3d2: 2\n    test 264 ellipsoidalKarney.Cartesian 'trilaterate3d2': 24.31229, -2.52045, 1.53649\n    test 265 ellipsoidalKarney.Cartesian 'trilaterate3d2': 24.35062, -2.48109, 1.66673\n    test 266 Cartesian.trilaterate3d2: center (Cartesian(22.59, 0.524, 1.2)), center2 (Cartesian(25.475, -6.124, 2.36)), center3 (Cartesian(22.59, 0.524, 1.2)), radius (3.851), radius2 (3.875) or radius3 (3.514): 'center and center3 near-concentric'\n    test 267 Cartesian.trilaterate3d2: center (Cartesian(27.297, -4.953, 1.47)), center2 (Cartesian(25.475, -6.124, 2.36)), center3 (Cartesian(22.59, 0.524, 1.2)), radius (0.3851), radius2 (0.3875) or radius3 (3.514): 'center and center2 too distant (2.34)'\n    test 268 Cartesian.trilaterate3d2: center (Cartesian(0.0, 0.0, 0.0)), center2 (Cartesian(0.0, 9.0, 0.0)), center3 (Cartesian(0.0, -9.0, 0.0)), radius (10), radius2 (10) or radius3 (10): 'colinear'\n\n    testCartesian(pygeodesy.ellipsoidalExact, 25.08.28)\n    test 269 ellipsoidalExact.Cartesian.trilaterate3d2: 2\n    test 270 ellipsoidalExact.Cartesian 'trilaterate3d2': 119.8958, 130.6508, -5.1451\n    test 271 ellipsoidalExact.Cartesian 'trilaterate3d2': 119.9999, 129.9999, 30.0019\n    test 272 pygeodesy.vector3d.trilaterate3d2: 2\n    test 273 ellipsoidalExact.Cartesian 'trilaterate3d2': 24.31229, -2.52045, 1.53649\n    test 274 ellipsoidalExact.Cartesian 'trilaterate3d2': 24.35062, -2.48109, 1.66673\n    test 275 pygeodesy.vector3d.trilaterate3d2: center1 (Cartesian(22.59, 0.524, 1.2)), center2 (Cartesian(25.475, -6.124, 2.36)), center3 (Cartesian(22.59, 0.524, 1.2)), radius1 (3.851), radius2 (3.875) or radius3 (3.514): 'center1 and center3 near-concentric'\n    test 276 pygeodesy.vector3d.trilaterate3d2: center1 (Cartesian(27.297, -4.953, 1.47)), center2 (Cartesian(25.475, -6.124, 2.36)), center3 (Cartesian(22.59, 0.524, 1.2)), radius1 (0.3851), radius2 (0.3875) or radius3 (3.514): 'center1 and center2 too distant (2.34)'\n    test 277 pygeodesy.vector3d.trilaterate3d2: center1 (Cartesian(0.0, 0.0, 0.0)), center2 (Cartesian(0.0, 9.0, 0.0)), center3 (Cartesian(0.0, -9.0, 0.0)), radius1 (10), radius2 (10) or radius3 (10): 'colinear'\n    test 278 Cartesian.trilaterate3d2: 2\n    test 279 ellipsoidalExact.Cartesian 'trilaterate3d2': 24.31229, -2.52045, 1.53649\n    test 280 ellipsoidalExact.Cartesian 'trilaterate3d2': 24.35062, -2.48109, 1.66673\n    test 281 Cartesian.trilaterate3d2: center (Cartesian(22.59, 0.524, 1.2)), center2 (Cartesian(25.475, -6.124, 2.36)), center3 (Cartesian(22.59, 0.524, 1.2)), radius (3.851), radius2 (3.875) or radius3 (3.514): 'center and center3 near-concentric'\n    test 282 Cartesian.trilaterate3d2: center (Cartesian(27.297, -4.953, 1.47)), center2 (Cartesian(25.475, -6.124, 2.36)), center3 (Cartesian(22.59, 0.524, 1.2)), radius (0.3851), radius2 (0.3875) or radius3 (3.514): 'center and center2 too distant (2.34)'\n    test 283 Cartesian.trilaterate3d2: center (Cartesian(0.0, 0.0, 0.0)), center2 (Cartesian(0.0, 9.0, 0.0)), center3 (Cartesian(0.0, -9.0, 0.0)), radius (10), radius2 (10) or radius3 (10): 'colinear'\n\n    testCartesian(pygeodesy.ellipsoidalGeodSolve, 25.08.28)\n    test 284 ellipsoidalGeodSolve.Cartesian.trilaterate3d2: 2\n    test 285 ellipsoidalGeodSolve.Cartesian 'trilaterate3d2': 119.8958, 130.6508, -5.1451\n    test 286 ellipsoidalGeodSolve.Cartesian 'trilaterate3d2': 119.9999, 129.9999, 30.0019\n    test 287 pygeodesy.vector3d.trilaterate3d2: 2\n    test 288 ellipsoidalGeodSolve.Cartesian 'trilaterate3d2': 24.31229, -2.52045, 1.53649\n    test 289 ellipsoidalGeodSolve.Cartesian 'trilaterate3d2': 24.35062, -2.48109, 1.66673\n    test 290 pygeodesy.vector3d.trilaterate3d2: center1 (Cartesian(22.59, 0.524, 1.2)), center2 (Cartesian(25.475, -6.124, 2.36)), center3 (Cartesian(22.59, 0.524, 1.2)), radius1 (3.851), radius2 (3.875) or radius3 (3.514): 'center1 and center3 near-concentric'\n    test 291 pygeodesy.vector3d.trilaterate3d2: center1 (Cartesian(27.297, -4.953, 1.47)), center2 (Cartesian(25.475, -6.124, 2.36)), center3 (Cartesian(22.59, 0.524, 1.2)), radius1 (0.3851), radius2 (0.3875) or radius3 (3.514): 'center1 and center2 too distant (2.34)'\n    test 292 pygeodesy.vector3d.trilaterate3d2: center1 (Cartesian(0.0, 0.0, 0.0)), center2 (Cartesian(0.0, 9.0, 0.0)), center3 (Cartesian(0.0, -9.0, 0.0)), radius1 (10), radius2 (10) or radius3 (10): 'colinear'\n    test 293 Cartesian.trilaterate3d2: 2\n    test 294 ellipsoidalGeodSolve.Cartesian 'trilaterate3d2': 24.31229, -2.52045, 1.53649\n    test 295 ellipsoidalGeodSolve.Cartesian 'trilaterate3d2': 24.35062, -2.48109, 1.66673\n    test 296 Cartesian.trilaterate3d2: center (Cartesian(22.59, 0.524, 1.2)), center2 (Cartesian(25.475, -6.124, 2.36)), center3 (Cartesian(22.59, 0.524, 1.2)), radius (3.851), radius2 (3.875) or radius3 (3.514): 'center and center3 near-concentric'\n    test 297 Cartesian.trilaterate3d2: center (Cartesian(27.297, -4.953, 1.47)), center2 (Cartesian(25.475, -6.124, 2.36)), center3 (Cartesian(22.59, 0.524, 1.2)), radius (0.3851), radius2 (0.3875) or radius3 (3.514): 'center and center2 too distant (2.34)'\n    test 298 Cartesian.trilaterate3d2: center (Cartesian(0.0, 0.0, 0.0)), center2 (Cartesian(0.0, 9.0, 0.0)), center3 (Cartesian(0.0, -9.0, 0.0)), radius (10), radius2 (10) or radius3 (10): 'colinear'\n\n    testCartesianBase(pygeodesy.cartesianBase, 26.01.06)\n    test 299 cartesianBase.CartesianBase.trilaterate3d2: 2\n    test 300 cartesianBase.CartesianBase 'trilaterate3d2': 119.8958, 130.6508, -5.1451\n    test 301 cartesianBase.CartesianBase 'trilaterate3d2': 119.9999, 129.9999, 30.0019\n    test 302 pygeodesy.vector3d.trilaterate3d2: 2\n    test 303 cartesianBase.CartesianBase 'trilaterate3d2': 24.31229, -2.52045, 1.53649\n    test 304 cartesianBase.CartesianBase 'trilaterate3d2': 24.35062, -2.48109, 1.66673\n    test 305 pygeodesy.vector3d.trilaterate3d2: center1 (CartesianBase(22.59, 0.524, 1.2)), center2 (CartesianBase(25.475, -6.124, 2.36)), center3 (CartesianBase(22.59, 0.524, 1.2)), radius1 (3.851), radius2 (3.875) or radius3 (3.514): 'center1 and center3 near-concentric'\n    test 306 pygeodesy.vector3d.trilaterate3d2: center1 (CartesianBase(27.297, -4.953, 1.47)), center2 (CartesianBase(25.475, -6.124, 2.36)), center3 (CartesianBase(22.59, 0.524, 1.2)), radius1 (0.3851), radius2 (0.3875) or radius3 (3.514): 'center1 and center2 too distant (2.34)'\n    test 307 pygeodesy.vector3d.trilaterate3d2: center1 (CartesianBase(0.0, 0.0, 0.0)), center2 (CartesianBase(0.0, 9.0, 0.0)), center3 (CartesianBase(0.0, -9.0, 0.0)), radius1 (10), radius2 (10) or radius3 (10): 'colinear'\n    test 308 CartesianBase.trilaterate3d2: 2\n    test 309 cartesianBase.CartesianBase 'trilaterate3d2': 24.31229, -2.52045, 1.53649\n    test 310 cartesianBase.CartesianBase 'trilaterate3d2': 24.35062, -2.48109, 1.66673\n    test 311 CartesianBase.trilaterate3d2: center (CartesianBase(22.59, 0.524, 1.2)), center2 (CartesianBase(25.475, -6.124, 2.36)), center3 (CartesianBase(22.59, 0.524, 1.2)), radius (3.851), radius2 (3.875) or radius3 (3.514): 'center and center3 near-concentric'\n    test 312 CartesianBase.trilaterate3d2: center (CartesianBase(27.297, -4.953, 1.47)), center2 (CartesianBase(25.475, -6.124, 2.36)), center3 (CartesianBase(22.59, 0.524, 1.2)), radius (0.3851), radius2 (0.3875) or radius3 (3.514): 'center and center2 too distant (2.34)'\n    test 313 CartesianBase.trilaterate3d2: center (CartesianBase(0.0, 0.0, 0.0)), center2 (CartesianBase(0.0, 9.0, 0.0)), center3 (CartesianBase(0.0, -9.0, 0.0)), radius (10), radius2 (10) or radius3 (10): 'colinear'\n\n    testNvectorBase(pygeodesy.nvectorBase, 25.08.18)\n    test 314 nvectorBase.NvectorBase.trilaterate3d2: 2\n    test 315 nvectorBase.NvectorBase 'trilaterate3d2': 119.8958, 130.6508, -5.1451\n    test 316 nvectorBase.NvectorBase 'trilaterate3d2': 119.9999, 129.9999, 30.0019\n    test 317 pygeodesy.vector3d.trilaterate3d2: 2\n    test 318 nvectorBase.NvectorBase 'trilaterate3d2': 24.31229, -2.52045, 1.53649\n    test 319 nvectorBase.NvectorBase 'trilaterate3d2': 24.35062, -2.48109, 1.66673\n    test 320 pygeodesy.vector3d.trilaterate3d2: center1 (NvectorBase(22.59, 0.524, 1.2)), center2 (NvectorBase(25.475, -6.124, 2.36)), center3 (NvectorBase(22.59, 0.524, 1.2)), radius1 (3.851), radius2 (3.875) or radius3 (3.514): 'center1 and center3 near-concentric'\n    test 321 pygeodesy.vector3d.trilaterate3d2: center1 (NvectorBase(27.297, -4.953, 1.47)), center2 (NvectorBase(25.475, -6.124, 2.36)), center3 (NvectorBase(22.59, 0.524, 1.2)), radius1 (0.3851), radius2 (0.3875) or radius3 (3.514): 'center1 and center2 too distant (2.34)'\n    test 322 pygeodesy.vector3d.trilaterate3d2: center1 (NvectorBase(0.0, 0.0, 0.0)), center2 (NvectorBase(0.0, 9.0, 0.0)), center3 (NvectorBase(0.0, -9.0, 0.0)), radius1 (10), radius2 (10) or radius3 (10): 'colinear'\n    test 323 NvectorBase.trilaterate3d2: 2\n    test 324 nvectorBase.NvectorBase 'trilaterate3d2': 24.31229, -2.52045, 1.53649\n    test 325 nvectorBase.NvectorBase 'trilaterate3d2': 24.35062, -2.48109, 1.66673\n    test 326 NvectorBase.trilaterate3d2: center (NvectorBase(22.59, 0.524, 1.2)), center2 (NvectorBase(25.475, -6.124, 2.36)), center3 (NvectorBase(22.59, 0.524, 1.2)), radius (3.851), radius2 (3.875) or radius3 (3.514): 'center and center3 near-concentric'\n    test 327 NvectorBase.trilaterate3d2: center (NvectorBase(27.297, -4.953, 1.47)), center2 (NvectorBase(25.475, -6.124, 2.36)), center3 (NvectorBase(22.59, 0.524, 1.2)), radius (0.3851), radius2 (0.3875) or radius3 (3.514): 'center and center2 too distant (2.34)'\n    test 328 NvectorBase.trilaterate3d2: center (NvectorBase(0.0, 0.0, 0.0)), center2 (NvectorBase(0.0, 9.0, 0.0)), center3 (NvectorBase(0.0, -9.0, 0.0)), radius (10), radius2 (10) or radius3 (10): 'colinear'\n\n    testVector3d(pygeodesy.vector2d, 26.02.27)\n    test 329 vector3d.Vector3d.trilaterate3d2: 2\n    test 330 vector3d.Vector3d 'trilaterate3d2': 119.8958, 130.6508, -5.1451\n    test 331 vector3d.Vector3d 'trilaterate3d2': 119.9999, 129.9999, 30.0019\n    test 332 pygeodesy.vector3d.trilaterate3d2: 2\n    test 333 vector3d.Vector3d 'trilaterate3d2': 24.31229, -2.52045, 1.53649\n    test 334 vector3d.Vector3d 'trilaterate3d2': 24.35062, -2.48109, 1.66673\n    test 335 pygeodesy.vector3d.trilaterate3d2: center1 (Vector3d(22.59, 0.524, 1.2)), center2 (Vector3d(25.475, -6.124, 2.36)), center3 (Vector3d(22.59, 0.524, 1.2)), radius1 (3.851), radius2 (3.875) or radius3 (3.514): 'center1 and center3 near-concentric'\n    test 336 pygeodesy.vector3d.trilaterate3d2: center1 (Vector3d(27.297, -4.953, 1.47)), center2 (Vector3d(25.475, -6.124, 2.36)), center3 (Vector3d(22.59, 0.524, 1.2)), radius1 (0.3851), radius2 (0.3875) or radius3 (3.514): 'center1 and center2 too distant (2.34)'\n    test 337 pygeodesy.vector3d.trilaterate3d2: center1 (Vector3d(0.0, 0.0, 0.0)), center2 (Vector3d(0.0, 9.0, 0.0)), center3 (Vector3d(0.0, -9.0, 0.0)), radius1 (10), radius2 (10) or radius3 (10): 'colinear'\n    test 338 Vector3d.trilaterate3d2: 2\n    test 339 vector3d.Vector3d 'trilaterate3d2': 24.31229, -2.52045, 1.53649\n    test 340 vector3d.Vector3d 'trilaterate3d2': 24.35062, -2.48109, 1.66673\n    test 341 Vector3d.trilaterate3d2: center (Vector3d(22.59, 0.524, 1.2)), center2 (Vector3d(25.475, -6.124, 2.36)), center3 (Vector3d(22.59, 0.524, 1.2)), radius (3.851), radius2 (3.875) or radius3 (3.514): 'center and center3 near-concentric'\n    test 342 Vector3d.trilaterate3d2: center (Vector3d(27.297, -4.953, 1.47)), center2 (Vector3d(25.475, -6.124, 2.36)), center3 (Vector3d(22.59, 0.524, 1.2)), radius (0.3851), radius2 (0.3875) or radius3 (3.514): 'center and center2 too distant (2.34)'\n    test 343 Vector3d.trilaterate3d2: center (Vector3d(0.0, 0.0, 0.0)), center2 (Vector3d(0.0, 9.0, 0.0)), center3 (Vector3d(0.0, -9.0, 0.0)), radius (10), radius2 (10) or radius3 (10): 'colinear'\n\n    testTrilaterate2d2(pygeodesy.vector2d, 26.02.27)\n    test 344 trilaterate2d2: (2.0, 3.0)\n    test 345 trilaterate2d2: 'delta (6.39335377017e-06), radius1 (1.0), distance (1.00000639335) and trilaterate2d2(x=1.999994, y=3.000006)': exceeds eps (2.22045e-16)\n    test 346 trilaterate2d2: (-500.0, 250.0)\n    test 347 meeus2: 2.236, 3.0, 2.0, 0.0\n    test 348 meeus2: (3.0, 2.0, 0)\n    test 349 circum3: 2.2361\n    test 350 circum3: (3.0, 2.0, 0)\n    test 351 circum3: None\n    test 352 circum4_: 2.2361\n    test 353 circum4_: (3.0, 2.0, 0.0)  FAILED, KNOWN, expected (3.0, 2.0, 0)\n    test 354 circum4_: 3\n    test 355 circum4_: ()\n    test 356 radii11: Radii11Tuple(rA=2.236068, rB=0.92621, rC=2.236068, cR=2.236068, rIn=0.92621, riS=0.24193, roS=INF, a=3.162278, b=4.472136, c=3.162278, s=5.398346)\n    test 357 circin6: Circin6Tuple(radius=0.92621, center=Vector3d(2.58579, 2.82843, 0.0), deltas=None, cA=Vector3d(2.87868, 3.70711, 0.0), cB=Vector3d(3.0, 2.0, 0.0), cC=Vector3d(1.70711, 3.12132, 0.0))\n    test 358 soddy4: Soddy4Tuple(radius=0.24193, center=Vector3d(2.52241, 2.95518, 0), deltas=None, outer=INF)\n\n    testTrilaterate3d2(pygeodesy.vector2d, 26.02.27)\n    test 359 pygeodesy.vector2d.trilaterate3d2: center1 (Vector3d(-500.0, -200.0, 0.0)), center2 (Vector3d(100.0, -100.0, 0.0)), center3 (Vector3d(500.0, 100.0, 0.0)), radius1 (450.0), radius2 (694.6221994724903) or radius3 (1011.1874208078342): 'no intersection'\n    test 360 pygeodesy.vector2d.trilaterate3d2: 2\n    test 361 vector3d.Vector3d 'trilaterate3d2': -500.0, 250.0, -0.0131  FAILED, KNOWN, expected -500.0, 250.0, 0.0\n    test 362 vector3d.Vector3d 'trilaterate3d2': -500.0, 250.0, 0.0131  FAILED, KNOWN, expected -500.0, 250.0, 0.0\n    test 363 meeus2: 1.50\n    test 364 meeus2: None\n    test 365 meeus2: -0.000000037, 0.5, 0.000000037  FAILED, KNOWN, expected 0.0, 0.5, 0.0\n    test 366 meeus2: 0.000000037, 0.5, -0.000000037  FAILED, KNOWN, expected 0.0, 0.5, 0.0\n    test 367 circum3: 1.50\n    test 368 circum3: 0.0, 0.5, -0.0  FAILED, KNOWN, expected 0.0, 0.5, 0.0\n    test 369 circum3: None\n    test 370 circum4_: 1.50\n    test 371 circum4_: 0.0, 0.5, -0.0  FAILED, KNOWN, expected 0.0, 0.5, 0.0\n    test 372 circum4_: 3\n    test 373 circum4_: ()\n    test 374 radii11: Radii11Tuple(rA=1.414214, rB=1.035276, rC=1.414214, cR=1.5, rIn=0.732051, riS=0.195611, roS=INF, a=2.44949, b=2.828427, c=2.44949, s=3.863703)\n    test 375 circin6: Circin6Tuple(radius=0.732051, center=Vector3d(-0.0, 0.73205, -0.0), deltas=None, cA=Vector3d(0.42265, 1.1547, 0.42265), cB=Vector3d(0.0, 0.0, 0.0), cC=Vector3d(-0.42265, 1.1547, -0.42265))\n    test 376 soddy4: Soddy4Tuple(radius=0.195611, center=Vector3d(0.0, 0.76911, -0.0), deltas=None, outer=INF)\n\n    testIntersection3d3(pygeodesy.vector3d, 25.05.07)\n    test 377 (30, 17): (Vector3d(30.30584, 16.75258, 0.0), 0, 0)\n    test 378 (-1,  3): (Vector3d(-1.0429, 2.92225, 0.0), -1, -2)\n    test 379 (65, 32): (Vector3d(64.86667, 32.0, 0.0), 1, -2)\n    test 380 (-2, 17): <class 'pygeodesy.errors.IntersectionError'>\n    test 381 (49, 25): (Vector3d(49.0, 25.0, 0.0), 0, 0)\n\n    test 382 at 0: (0.0, 50.0, 0.0)\n    test 383 at 3: (2.6168, 49.93148, 0.0)\n    test 384 at 6: (5.22642, 49.72609, 0.0)\n    test 385 at 9: (7.82172, 49.38442, 0.0)\n    test 386 at 12: (10.39558, 48.90738, 0.0)\n    test 387 at 15: (12.94095, 48.29629, 0.0)\n    test 388 at 18: (15.45085, 47.55283, 0.0)\n    test 389 at 21: (17.9184, 46.67902, 0.0)\n    test 390 at 24: (20.33683, 45.67727, 0.0)\n    test 391 at 27: (22.69952, 44.55033, 0.0)\n    test 392 at 30: (25.0, 43.30127, 0.0)\n    test 393 at 33: (27.23195, 41.93353, 0.0)\n    test 394 at 36: (29.38926, 40.45085, 0.0)\n    test 395 at 39: (31.46602, 38.8573, 0.0)\n    test 396 at 42: (33.45653, 37.15724, 0.0)\n    test 397 at 45: (35.35534, 35.35534, 0.0)\n    test 398 at 48: (37.15724, 33.45653, 0.0)\n    test 399 at 51: (38.8573, 31.46602, 0.0)\n    test 400 at 54: (40.45085, 29.38926, 0.0)\n    test 401 at 57: (41.93353, 27.23195, 0.0)\n    test 402 at 60: (43.30127, 25.0, 0.0)\n    test 403 at 63: (44.55033, 22.69952, 0.0)\n    test 404 at 66: (45.67727, 20.33683, 0.0)\n    test 405 at 69: (46.67902, 17.9184, 0.0)\n    test 406 at 72: (47.55283, 15.45085, 0.0)\n    test 407 at 75: (48.29629, 12.94095, 0.0)\n    test 408 at 78: (48.90738, 10.39558, 0.0)\n    test 409 at 81: (49.38442, 7.82172, 0.0)\n    test 410 at 84: (49.72609, 5.22642, 0.0)\n    test 411 at 87: (49.93148, 2.6168, 0.0)\n    test 412 at 90: (50.0, 0.0, 0.0)\n    test 413 at 93: (49.93148, -2.6168, 0.0)\n    test 414 at 96: (49.72609, -5.22642, 0.0)\n    test 415 at 99: (49.38442, -7.82172, 0.0)\n    test 416 at 102: (48.90738, -10.39558, 0.0)\n    test 417 at 105: (48.29629, -12.94095, 0.0)\n    test 418 at 108: (47.55283, -15.45085, 0.0)\n    test 419 at 111: (46.67902, -17.9184, 0.0)\n    test 420 at 114: (45.67727, -20.33683, 0.0)\n    test 421 at 117: (44.55033, -22.69952, 0.0)\n    test 422 at 120: (43.30127, -25.0, 0.0)\n    test 423 at 123: (41.93353, -27.23195, 0.0)\n    test 424 at 126: (40.45085, -29.38926, 0.0)\n    test 425 at 129: (38.8573, -31.46602, 0.0)\n    test 426 at 132: (37.15724, -33.45653, 0.0)\n    test 427 at 135: (35.35534, -35.35534, 0.0)\n    test 428 at 138: (33.45653, -37.15724, 0.0)\n    test 429 at 141: (31.46602, -38.8573, 0.0)\n    test 430 at 144: (29.38926, -40.45085, 0.0)\n    test 431 at 147: (27.23195, -41.93353, 0.0)\n    test 432 at 150: (25.0, -43.30127, 0.0)\n    test 433 at 153: (22.69952, -44.55033, 0.0)\n    test 434 at 156: (20.33683, -45.67727, 0.0)\n    test 435 at 159: (17.9184, -46.67902, 0.0)\n    test 436 at 162: (15.45085, -47.55283, 0.0)\n    test 437 at 165: (12.94095, -48.29629, 0.0)\n    test 438 at 168: (10.39558, -48.90738, 0.0)\n    test 439 at 171: (7.82172, -49.38442, 0.0)\n    test 440 at 174: (5.22642, -49.72609, 0.0)\n    test 441 at 177: (2.6168, -49.93148, 0.0)\n    test 442 at 180: (0.0, -50.0, 0.0)\n    test 443 at 183: (-2.6168, -49.93148, 0.0)\n    test 444 at 186: (-5.22642, -49.72609, 0.0)\n    test 445 at 189: (-7.82172, -49.38442, 0.0)\n    test 446 at 192: (-10.39558, -48.90738, 0.0)\n    test 447 at 195: (-12.94095, -48.29629, 0.0)\n    test 448 at 198: (-15.45085, -47.55283, 0.0)\n    test 449 at 201: (-17.9184, -46.67902, 0.0)\n    test 450 at 204: (-20.33683, -45.67727, 0.0)\n    test 451 at 207: (-22.69952, -44.55033, 0.0)\n    test 452 at 210: (-25.0, -43.30127, 0.0)\n    test 453 at 213: (-27.23195, -41.93353, 0.0)\n    test 454 at 216: (-29.38926, -40.45085, 0.0)\n    test 455 at 219: (-31.46602, -38.8573, 0.0)\n    test 456 at 222: (-33.45653, -37.15724, 0.0)\n    test 457 at 225: (-35.35534, -35.35534, 0.0)\n    test 458 at 228: (-37.15724, -33.45653, 0.0)\n    test 459 at 231: (-38.8573, -31.46602, 0.0)\n    test 460 at 234: (-40.45085, -29.38926, 0.0)\n    test 461 at 237: (-41.93353, -27.23195, 0.0)\n    test 462 at 240: (-43.30127, -25.0, 0.0)\n    test 463 at 243: (-44.55033, -22.69952, 0.0)\n    test 464 at 246: (-45.67727, -20.33683, 0.0)\n    test 465 at 249: (-46.67902, -17.9184, 0.0)\n    test 466 at 252: (-47.55283, -15.45085, 0.0)\n    test 467 at 255: (-48.29629, -12.94095, 0.0)\n    test 468 at 258: (-48.90738, -10.39558, 0.0)\n    test 469 at 261: (-49.38442, -7.82172, 0.0)\n    test 470 at 264: (-49.72609, -5.22642, 0.0)\n    test 471 at 267: (-49.93148, -2.6168, 0.0)\n    test 472 at 270: (-50.0, 0.0, 0.0)\n    test 473 at 273: (-49.93148, 2.6168, 0.0)\n    test 474 at 276: (-49.72609, 5.22642, 0.0)\n    test 475 at 279: (-49.38442, 7.82172, 0.0)\n    test 476 at 282: (-48.90738, 10.39558, 0.0)\n    test 477 at 285: (-48.29629, 12.94095, 0.0)\n    test 478 at 288: (-47.55283, 15.45085, 0.0)\n    test 479 at 291: (-46.67902, 17.9184, 0.0)\n    test 480 at 294: (-45.67727, 20.33683, 0.0)\n    test 481 at 297: (-44.55033, 22.69952, 0.0)\n    test 482 at 300: (-43.30127, 25.0, 0.0)\n    test 483 at 303: (-41.93353, 27.23195, 0.0)\n    test 484 at 306: (-40.45085, 29.38926, 0.0)\n    test 485 at 309: (-38.8573, 31.46602, 0.0)\n    test 486 at 312: (-37.15724, 33.45653, 0.0)\n    test 487 at 315: (-35.35534, 35.35534, 0.0)\n    test 488 at 318: (-33.45653, 37.15724, 0.0)\n    test 489 at 321: (-31.46602, 38.8573, 0.0)\n    test 490 at 324: (-29.38926, 40.45085, 0.0)\n    test 491 at 327: (-27.23195, 41.93353, 0.0)\n    test 492 at 330: (-25.0, 43.30127, 0.0)\n    test 493 at 333: (-22.69952, 44.55033, 0.0)\n    test 494 at 336: (-20.33683, 45.67727, 0.0)\n    test 495 at 339: (-17.9184, 46.67902, 0.0)\n    test 496 at 342: (-15.45085, 47.55283, 0.0)\n    test 497 at 345: (-12.94095, 48.29629, 0.0)\n    test 498 at 348: (-10.39558, 48.90738, 0.0)\n    test 499 at 351: (-7.82172, 49.38442, 0.0)\n    test 500 at 354: (-5.22642, 49.72609, 0.0)\n    test 501 at 357: (-2.6168, 49.93148, 0.0)\n    test 502 at 360: (0.0, 50.0, 0.0)\n    test 503 max error: 2.3317285650e-13\n\n    52 of 503 testVectorial.py tests (10.3%) FAILED, incl. 15 KNOWN plus 37 DeprecationWarnings (pygeodesy 26.3.26 Python 2.7.18 64bit arm64_x86_64 geographiclib 1.50 numpy 1.16.6 scipy 1.2.2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 -W  default) 260.597 ms\nrunning /Library/Framewo....ython -W default ~/PyGeodesy/test/testWebMercator.py\n\n    testing testWebMercator.py 23.06.12 (module pygeodesy.webmercator 25.05.12)\n    test 1 toWm1: -626172.13571216 6887893.4928338\n    test 2 Wm1.y: 6887893.49283380\n    test 3 copy(<type 'type'>): (<class 'pygeodesy.webmercator.Wm'>, True)\n    test 4 Wm.copy(): (<class 'pygeodesy.webmercator.Wm'>, True)\n    test 5 Wm2: 448251.795 5411932.678\n    test 6 Wm2: 448252 5411933\n    test 7 Wm2: 448251.8 5411932.7\n    test 8 copy(<type 'type'>): (<class 'pygeodesy.webmercator.Wm'>, True)\n    test 9 Wm.copy(): (<class 'pygeodesy.webmercator.Wm'>, True)\n    test 10 Wm2.to2ll: 43.65321741, 4.02671439\n    test 11 Wm2.toLatLon: (43.653217, 4.026714, Datum(name='_Wm', ellipsoid=Ellipsoids._Wm, transform=Transforms.Identity))\n    test 12 Wm2.toLatLon: 43.653217°N, 004.026714°E\n    test 13 Wm2.toLatLon: 43°39′11.58″N, 004°01′36.17″E\n    test 14 toWm1: 448251.795 5411932.678\n    test 15 toWm2: 448252 5411933\n    test 16 toWm3: [x:448252, y:5411933, radius:6378137]\n    test 17 copy: 448251.795 5411932.678\n    test 18 parse: 448251.795 5411932.678\n    test 19 parse: 448251.795 5411932.678\n    test 20 parse: [x:448251.795, y:5411932.678, radius:6378137.0]\n    test 21 toWm4: 11549466 1505215\n    test 22 toWm4: 11549465.988273 1505214.929251\n    test 23 toWm4E: 11562388 1496994\n    test 24 toWm4E: 11562388.154378 1496993.698095\n    test 25 toWm: -11169056 2800000\n    test 26 toWm: -11169055.576258 2800000.003136\n    test 27 toWm5E: -11169056 2782367\n    test 28 toWm5E: -11169055.576258 2782367.05923\n    test 29 toWm5: -11156573 2796871\n    test 30 toWm5: -11156573.000041 2796870.713179\n    test 31 Wm6.toLatLon: 24.46358°N, 100.333333°W\n    test 32 Wm6.toLatLon: 24°27′48.89″N, 100°20′00.0″W\n    test 33 Wm6.toLatLonE: 24.299812°N, 100.333333°W\n    test 34 Wm6.toLatLonE: 24°17′59.32″N, 100°20′00.0″W\n    test 35 Wm7.toLatLon: 24.381787°N, 100.333333°W\n    test 36 Wm7.toLatLon: 24°22′54.43″N, 100°20′00.0″W\n    test 37 Wm7.toLatLonE: 24.218566°N, 100.333333°W\n    test 38 Wm7.toLatLonE: 24°13′06.84″N, 100°20′00.0″W\n    test 39 Wm8.toWm: -33878.893, 6693890.382, 6378137.0\n    test 40 Wm8.toWm: [x:-33878.893, y:6693890.382]\n    test 41 Wm8.toWm: -33878.893 6693890.382 6371008.771\n    test 42 Wm8.toWm.x: -33878.893\n    test 43 Wm8.toWm.y: 6693890.382\n    test 44 Wm8.toWm.latlon: 51.408596, -0.304339\n    test 45 Wm8.toWm.philam: 0.897249, -0.005312\n    test 46 Wm8.toLatLon: 51.408596053784°N, 000.304339270785°W\n    test 47 Wm8.toLatLon: 51°24′30.945794″N, 000°18′15.621375″W\n    test 48 Wm9.toLatLon: TypeError\n\n    test 49 toWm(10.0000, 0, earth=R_MA).y: 1118889.97\n    test 50 toWm(20.0000, 0, earth=R_MA).y: 2273030.93\n    test 51 toWm(30.0000, 0, earth=R_MA).y: 3503549.84\n    test 52 toWm(40.0000, 0, earth=R_MA).y: 4865942.28\n    test 53 toWm(50.0000, 0, earth=R_MA).y: 6446275.84\n    test 54 toWm(60.0000, 0, earth=R_MA).y: 8399737.89\n\n    test 55 toWm(10.0003, 0, earth=R_MA).y: 1118921.37\n    test 56 toWm(20.0003, 0, earth=R_MA).y: 2273063.83\n    test 57 toWm(30.0003, 0, earth=R_MA).y: 3503585.55\n    test 58 toWm(40.0003, 0, earth=R_MA).y: 4865982.65\n    test 59 toWm(50.0003, 0, earth=R_MA).y: 6446323.95\n    test 60 toWm(60.0003, 0, earth=R_MA).y: 8399799.73\n\n    test 61 toWm(10.0000, 0, earth=WGS84).y: 1111475.10\n    test 62 toWm(20.0000, 0, earth=WGS84).y: 2258423.65\n    test 63 toWm(30.0000, 0, earth=WGS84).y: 3482189.09\n    test 64 toWm(40.0000, 0, earth=WGS84).y: 4838471.40\n    test 65 toWm(50.0000, 0, earth=WGS84).y: 6413524.59\n    test 66 toWm(60.0000, 0, earth=WGS84).y: 8362698.55\n\n    test 67 toWm(10.0003, 0, earth=WGS84).y: 1111506.30\n    test 68 toWm(20.0003, 0, earth=WGS84).y: 2258456.36\n    test 69 toWm(30.0003, 0, earth=WGS84).y: 3482224.61\n    test 70 toWm(40.0003, 0, earth=WGS84).y: 4838511.61\n    test 71 toWm(50.0003, 0, earth=WGS84).y: 6413572.57\n    test 72 toWm(60.0003, 0, earth=WGS84).y: 8362760.29\n\n    all 72 testWebMercator.py tests passed (pygeodesy 26.3.26 Python 2.7.18 64bit arm64_x86_64 geographiclib 1.50 numpy 1.16.6 scipy 1.2.2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 -W  default) 2.561 ms\nrunning /Library/Framewo....ython -W default ~/PyGeodesy/test/testWgrs.py\n\n    testing testWgrs.py 23.03.27 (module pygeodesy.wgrs 25.04.14)\n    test 1 Georef: 'NKLN2444638946'\n    test 2 Georef: Georef('NKLN2444638946')\n    test 3 Georef: NKLN2444638946\n    test 4 Georef.latlon: 57.64911, 10.40744\n    test 5 Georef.toLatLon: LatLon(57°38′56.8″N, 010°24′26.78″E)\n    test 6 codec3: NKLN2444638946\n    test 7 decode3: 57.64911, 10.40744, 6.0\n    test 8 encode: NKLN2444638946\n    test 9 Georef: 'NKLN2444638946H0'\n    test 10 Georef: Georef('NKLN2444638946H0')\n    test 11 Georef: NKLN2444638946H0\n    test 12 Georef.latlon: 57.64911, 10.40744\n    test 13 Georef.precision: 6\n    test 14 Georef.radius: None\n    test 15 Georef: 'GJPJ3424917166'\n    test 16 Georef: Georef('GJPJ3424917166')\n    test 17 Georef: GJPJ3424917166\n    test 18 Georef.latlon: 38.286108, -76.42917\n    test 19 Georef.toLatLon: LatLon(38°17′09.99″N, 076°25′45.01″W)\n    test 20 codec3: GJPJ3424917166\n    test 21 decode3: 38.286108, -76.429175, 6.0\n    test 22 encode: GJPJ3424917166\n    test 23 Georef: 'GJPJ3424917166H0'\n    test 24 Georef: Georef('GJPJ3424917166H0')\n    test 25 Georef: GJPJ3424917166H0\n    test 26 Georef.latlon: 38.286108, -76.42917\n    test 27 Georef.precision: 6\n    test 28 Georef.radius: None\n    test 29 Georef.3Tuple: 38.286108, -76.42917, 0.0\n    test 30 codec3: MKPG1204\n    test 31 decode3: 51.075, -1.7917, 3.0\n    test 32 encode: MKPG1204\n    test 33 codec3: WJKG1503\n    test 34 decode3: 36.0583, 129.2583, 3.0\n    test 35 encode: WJKG1503\n    test 36 codec5: GJPJ4103R5\n    test 37 decode5: 38.0583, -76.3083, 3.0, None, 9260.0\n    test 38 encode: GJPJ4103R5\n    test 39 codec5: GJPJ4103H17\n    test 40 decode5: 38.0583, -76.3083, 3.0, 5181.6, None\n    test 41 encode: GJPJ4103H17\n    test 42 codec5: GJPJ4103R5H17\n    test 43 decode5: 38.0583, -76.3083, 3.0, 5181.6, 9260.0\n    test 44 encode: GJPJ4103R5H17\n    test 45 precision: -1  FAILED, KNOWN, expected 0\n    test 46 resolution: 15°\n    test 47 precision: 0\n    test 48 resolution: 15°\n    test 49 precision: 1\n    test 50 resolution: 1°\n    test 51 precision: 2\n    test 52 resolution: 0.1′\n    test 53 precision: 3\n    test 54 resolution: 0.01′\n    test 55 precision: 4\n    test 56 resolution: 0.001′\n    test 57 precision: 5\n    test 58 resolution: 0.0001′\n    test 59 precision: 6\n    test 60 resolution: 0.00001′\n    test 61 precision: 7\n    test 62 resolution: 0.000001′\n    test 63 precision: 8\n    test 64 resolution: 0.0000001′\n    test 65 precision: 9\n    test 66 resolution: 0.00000001′\n    test 67 precision: 10\n    test 68 resolution: 0.000000001′\n    test 69 precision: 11\n    test 70 resolution: 0.0000000001′\n    test 71 precision: 12  FAILED, KNOWN, expected 11\n    test 72 resolution: 0.0000000001′\n\n    2 of 72 testWgrs.py tests (2.8%) FAILED, ALL KNOWN (pygeodesy 26.3.26 Python 2.7.18 64bit arm64_x86_64 geographiclib 1.50 numpy 1.16.6 scipy 1.2.2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 -W  default) 1.883 ms\n\ntest/run.py /Library/Framewo....ython -W default: all 52551 tests OK (pygeodesy 26.3.26 Python 2.7.18 64bit arm64_x86_64 geographiclib 1.50 numpy 1.16.6 scipy 1.2.2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 -W default) 13:56.763 (62.803 tps)\n"
  },
  {
    "path": "testresults/testresults-pygeodesy-26.3.26-Python-3.11.9-64bit-arm64-coverage-7.10.7-geographiclib-2.0-numpy-1.24.2-scipy-1.10.1-Math-2-macOS-26.3.1-isLazy-0--W-default.txt",
    "content": "test/run.py typical test results (pygeodesy 26.3.26 Python 3.11.9 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 1.24.2 scipy 1.10.1 Math 2 macOS 26.3.1 isLazy 0 -W default)\nrunning /usr/local/bin/p....n3.11 -W default ~/PyGeodesy/test/testAlbers.py\n\n    testing testAlbers.py 24.12.31 (module pygeodesy.albers 26.02.27)\n    test 1 name: Karney_example\n    test 2 datum: WGS84\n    test 3 ellipsoid: WGS84\n    test 4 lat0: 40.451991337063\n    test 5 scale0: 0.999959500363\n    test 6 equatoradius: 6378137.000000000000\n    test 7 flattening: 0.003352810665\n    test 8 _sign: 1.000000000000\n    test 9 _m02: 0.580681094922\n    test 10 _n0: 0.648810669236\n    test 11 _txi0: 0.848822476849\n    test 12 iteration: 3\n    test 13 ispolar: False\n    test 14 forward: -5675721.76113533, 2516917.91242155, 39.95, -75.17, 311.23285234, 0.99999745  FAILED, KNOWN, expected -5675721.76113534, 2516917.91242155, 39.95, -75.17, 311.23285234, 0.99999745\n    test 15 reverse: -5675721.76113533, 2516917.91242155, 39.95, -75.17, 311.23285234, 0.99999745  FAILED, KNOWN, expected -5675721.76113534, 2516917.91242155, 39.95, -75.17, 311.23285234, 0.99999745\n    test 16 forward: 199089.12574012, -53115.52801838, 39.95, 2.33, 1.51160641, 0.99999745\n    test 17 reverse: 199089.12574012, -53115.52801838, 39.95, -75.17, 1.51160641, 0.99999745  FAILED, KNOWN, expected 199089.12574012, -53115.52801838, 39.95, 2.33, 1.51160641, 0.99999745\n    test 18 reverse: 220000.0, -53000.0, 39.94581132, 2.57463362, 1.67031446, 0.99999808\n    test 19 forward: 220000.0, -53000.0, 39.94581132, 2.57463362, 1.67031446, 0.99999808\n    test 20 reverse: 220000.0, -53000.0, 39.94581132, -74.92536638, 1.67031446, 0.99999808\n    test 21 forward: 220000.0, -53000.0, 39.94581132, 2.57463362, 1.67031446, 0.99999808  FAILED, KNOWN, expected 220000.0, -53000.0, 39.94581132, -74.92536638, 1.67031446, 0.99999808\n\n    testPage292(pygeodesy.albers, 26.02.27)\n    test 22 name: Snyder_p292\n    test 23 datum: NAD27\n    test 24 ellipsoid: Clarke1866\n    test 25 lat0: 37.934543880726\n    test 26 scale0: 0.990309187872\n    test 27 equatoradius: 6378206.400000000373\n    test 28 flattening: 0.003390075304\n    test 29 _sign: 1.000000000000\n    test 30 _m02: 0.623664507732\n    test 31 _n0: 0.614760830736\n    test 32 _txi0: 0.775925617021\n    test 33 iteration: 4\n    test 34 ispolar: False\n    test 35 forward: -6105839.22928149, 2214046.74930275, 35.0, -75.0, 314.78223745, 0.99155461  FAILED, KNOWN, expected -6105839.22928148, 2214046.74930274, 35.0, -75.0, 314.78223745, 0.99155461\n    test 36 reverse: -6105839.22928149, 2214046.74930275, 35.0, -75.0, 314.78223745, 0.99155461  FAILED, KNOWN, expected -6105839.22928148, 2214046.74930274, 35.0, -75.0, 314.78223745, 0.99155461\n    test 37 forward: 1885472.72581347, -119505.66687765, 35.0, 21.0, 12.66097351, 0.99155461  FAILED, KNOWN, expected 1885472.72581347, -119505.66687766, 35.0, 21.0, 12.66097351, 0.99155461\n    test 38 reverse: 1885472.72581347, -119505.66687765, 35.0, -75.0, 12.66097351, 0.99155461  FAILED, KNOWN, expected 1885472.72581347, -119505.66687766, 35.0, 21.0, 12.66097351, 0.99155461\n    test 39 reverse: 1885427.7, 1535925.0, 49.40436665, 25.93001383, 15.63329611, 1.01436109\n    test 40 forward: 1885427.7, 1535925.0, 49.40436665, 25.93001383, 15.63329611, 1.01436109\n    test 41 reverse: 1885427.7, 1535925.0, 49.40436665, -70.06998617, 15.63329611, 1.01436109\n    test 42 forward: 1885427.7, 1535925.0, 49.40436665, 25.93001383, 15.63329611, 1.01436109  FAILED, KNOWN, expected 1885427.7, 1535925.0, 49.40436665, -70.06998617, 15.63329611, 1.01436109\n\n    testTable15(pygeodesy.albers, 26.02.27)\n    test 43 52 k: 1.02863\n    test 44 50 k: 1.01727\n    test 45 45.5 k: 1.00000\n    test 46 45 k: 0.99869\n    test 47 40 k: 0.99097\n    test 48 35 k: 0.99155\n    test 49 30 k: 0.99893\n    test 50 29.5 k: 1.00000\n    test 51 25 k: 1.01222\n    test 52 22 k: 1.02283\n\n    testLats(pygeodesy.albers, 26.02.27)\n    test 53 AlbersEqualArea.toRepr: AlbersEqualArea(45.0, k0=1.0)\n    test 54 AlbersEqualArea.lat0: 45.0\n    test 55 AlbersEqualArea.lat1: 45.0\n    test 56 AlbersEqualArea.lat2: 45.0\n\n    test 57 AlbersEqualArea2.toRepr: AlbersEqualArea2(40.0, 40.0, k1=1.0)\n    test 58 AlbersEqualArea2.lat0: 40.0\n    test 59 AlbersEqualArea2.lat1: 40.0\n    test 60 AlbersEqualArea2.lat2: 40.0\n\n    test 61 AlbersEqualArea4.toRepr: AlbersEqualArea4(30.0, 30.0, k1=1.0)\n    test 62 AlbersEqualArea4.lat0: 30.0\n    test 63 AlbersEqualArea4.lat1: 30.0\n    test 64 AlbersEqualArea4.lat2: 30.0\n\n    test 65 AlbersEqualArea4.toRepr: AlbersEqualArea4(-30.0, -30.0, k1=1.0)\n    test 66 AlbersEqualArea4.lat0: -30.0\n    test 67 AlbersEqualArea4.lat1: -30.0\n    test 68 AlbersEqualArea4.lat2: -30.0\n\n    test 69 AlbersEqualAreaCylindrical.toRepr: AlbersEqualAreaCylindrical(0.0)\n    test 70 AlbersEqualAreaCylindrical.lat0: 0.0\n    test 71 AlbersEqualAreaCylindrical.lat1: 0.0\n    test 72 AlbersEqualAreaCylindrical.lat2: 0.0\n\n    test 73 AlbersEqualAreaNorth.toRepr: AlbersEqualAreaNorth(90.0)\n    test 74 AlbersEqualAreaNorth.lat0: 90.0\n    test 75 AlbersEqualAreaNorth.lat1: 90.0\n    test 76 AlbersEqualAreaNorth.lat2: 90.0\n\n    test 77 AlbersEqualAreaSouth.toRepr: AlbersEqualAreaSouth(-90.0)\n    test 78 AlbersEqualAreaSouth.lat0: -90.0\n    test 79 AlbersEqualAreaSouth.lat1: -90.0\n    test 80 AlbersEqualAreaSouth.lat2: -90.0\n\n    test 81 error: clat1 (-0.8660254037844386) or clat2 (1.0): negative\n    test 82 error: slat1 (-0.5) or slat2 (0.5): negative\n\n    9 of 82 testAlbers.py tests (11.0%) FAILED, ALL KNOWN (pygeodesy 26.3.26 Python 3.11.9 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 1.24.2 scipy 1.10.1 Math 2 macOS 26.3.1 isLazy 0 -W  default) 94.647 ms\nrunning /usr/local/bin/p....n3.11 -W default ~/PyGeodesy/test/testAngles.py\n\n    testing testAngles.py 25.12.01 (module pygeodesy.angles 25.12.02)\n    test 1 D: -716.000000\n    test 2 r: -12.496557\n    test 3 n: -2.0\n    test 4 R: -7.160000\n    test 5 d: -410.237781\n    test 6 n: -1.0\n    test 7 D: -713.000000\n    test 8 r: -12.444198\n    test 9 n: -2.0\n    test 10 R: -7.130000\n    test 11 d: -408.518908\n    test 12 n: -1.0\n    test 13 D: -710.000000\n    test 14 r: -12.391838\n    test 15 n: -2.0\n    test 16 R: -7.100000\n    test 17 d: -406.800035\n    test 18 n: -1.0\n    test 19 D: -707.000000\n    test 20 r: -12.339478\n    test 21 n: -2.0\n    test 22 R: -7.070000\n    test 23 d: -405.081161\n    test 24 n: -1.0\n    test 25 D: -704.000000\n    test 26 r: -12.287118\n    test 27 n: -2.0\n    test 28 R: -7.040000\n    test 29 d: -403.362288\n    test 30 n: -1.0\n    test 31 D: -701.000000\n    test 32 r: -12.234758\n    test 33 n: -2.0\n    test 34 R: -7.010000\n    test 35 d: -401.643414\n    test 36 n: -1.0\n    test 37 D: -698.000000\n    test 38 r: -12.182398\n    test 39 n: -2.0\n    test 40 R: -6.980000\n    test 41 d: -399.924541\n    test 42 n: -1.0\n    test 43 D: -695.000000\n    test 44 r: -12.130038\n    test 45 n: -2.0\n    test 46 R: -6.950000\n    test 47 d: -398.205668\n    test 48 n: -1.0\n    test 49 D: -692.000000\n    test 50 r: -12.077678\n    test 51 n: -2.0\n    test 52 R: -6.920000\n    test 53 d: -396.486794\n    test 54 n: -1.0\n    test 55 D: -689.000000\n    test 56 r: -12.025319\n    test 57 n: -2.0\n    test 58 R: -6.890000\n    test 59 d: -394.767921\n    test 60 n: -1.0\n    test 61 D: -686.000000\n    test 62 r: -11.972959\n    test 63 n: -2.0\n    test 64 R: -6.860000\n    test 65 d: -393.049047\n    test 66 n: -1.0\n    test 67 D: -683.000000\n    test 68 r: -11.920599\n    test 69 n: -2.0\n    test 70 R: -6.830000\n    test 71 d: -391.330174\n    test 72 n: -1.0\n    test 73 D: -680.000000\n    test 74 r: -11.868239\n    test 75 n: -2.0\n    test 76 R: -6.800000\n    test 77 d: -389.611301\n    test 78 n: -1.0\n    test 79 D: -677.000000\n    test 80 r: -11.815879\n    test 81 n: -2.0\n    test 82 R: -6.770000\n    test 83 d: -387.892427\n    test 84 n: -1.0\n    test 85 D: -674.000000\n    test 86 r: -11.763519\n    test 87 n: -2.0\n    test 88 R: -6.740000\n    test 89 d: -386.173554\n    test 90 n: -1.0\n    test 91 D: -671.000000\n    test 92 r: -11.711159\n    test 93 n: -2.0\n    test 94 R: -6.710000\n    test 95 d: -384.454681\n    test 96 n: -1.0\n    test 97 D: -668.000000\n    test 98 r: -11.658799\n    test 99 n: -2.0\n    test 100 R: -6.680000\n    test 101 d: -382.735807\n    test 102 n: -1.0\n    test 103 D: -665.000000\n    test 104 r: -11.606440\n    test 105 n: -2.0\n    test 106 R: -6.650000\n    test 107 d: -381.016934\n    test 108 n: -1.0\n    test 109 D: -662.000000\n    test 110 r: -11.554080\n    test 111 n: -2.0\n    test 112 R: -6.620000\n    test 113 d: -379.298060\n    test 114 n: -1.0\n    test 115 D: -659.000000\n    test 116 r: -11.501720\n    test 117 n: -2.0\n    test 118 R: -6.590000\n    test 119 d: -377.579187\n    test 120 n: -1.0\n    test 121 D: -656.000000\n    test 122 r: -11.449360\n    test 123 n: -2.0\n    test 124 R: -6.560000\n    test 125 d: -375.860314\n    test 126 n: -1.0\n    test 127 D: -653.000000\n    test 128 r: -11.397000\n    test 129 n: -2.0\n    test 130 R: -6.530000\n    test 131 d: -374.141440\n    test 132 n: -1.0\n    test 133 D: -650.000000\n    test 134 r: -11.344640\n    test 135 n: -2.0\n    test 136 R: -6.500000\n    test 137 d: -372.422567\n    test 138 n: -1.0\n    test 139 D: -647.000000\n    test 140 r: -11.292280\n    test 141 n: -2.0\n    test 142 R: -6.470000\n    test 143 d: -370.703693\n    test 144 n: -1.0\n    test 145 D: -644.000000\n    test 146 r: -11.239920\n    test 147 n: -2.0\n    test 148 R: -6.440000\n    test 149 d: -368.984820\n    test 150 n: -1.0\n    test 151 D: -641.000000\n    test 152 r: -11.187561\n    test 153 n: -2.0\n    test 154 R: -6.410000\n    test 155 d: -367.265947\n    test 156 n: -1.0\n    test 157 D: -638.000000\n    test 158 r: -11.135201\n    test 159 n: -2.0\n    test 160 R: -6.380000\n    test 161 d: -365.547073\n    test 162 n: -1.0\n    test 163 D: -635.000000\n    test 164 r: -11.082841\n    test 165 n: -2.0\n    test 166 R: -6.350000\n    test 167 d: -363.828200\n    test 168 n: -1.0\n    test 169 D: -632.000000\n    test 170 r: -11.030481\n    test 171 n: -2.0\n    test 172 R: -6.320000\n    test 173 d: -362.109327\n    test 174 n: -1.0\n    test 175 D: -629.000000\n    test 176 r: -10.978121\n    test 177 n: -2.0\n    test 178 R: -6.290000\n    test 179 d: -360.390453\n    test 180 n: -1.0\n    test 181 D: -626.000000\n    test 182 r: -10.925761\n    test 183 n: -2.0\n    test 184 R: -6.260000\n    test 185 d: -358.671580\n    test 186 n: -1.0\n    test 187 D: -623.000000\n    test 188 r: -10.873401\n    test 189 n: -2.0\n    test 190 R: -6.230000\n    test 191 d: -356.952706\n    test 192 n: -1.0\n    test 193 D: -620.000000\n    test 194 r: -10.821041\n    test 195 n: -2.0\n    test 196 R: -6.200000\n    test 197 d: -355.233833\n    test 198 n: -1.0\n    test 199 D: -617.000000\n    test 200 r: -10.768681\n    test 201 n: -2.0\n    test 202 R: -6.170000\n    test 203 d: -353.514960\n    test 204 n: -1.0\n    test 205 D: -614.000000\n    test 206 r: -10.716322\n    test 207 n: -2.0\n    test 208 R: -6.140000\n    test 209 d: -351.796086\n    test 210 n: -1.0\n    test 211 D: -611.000000\n    test 212 r: -10.663962\n    test 213 n: -2.0\n    test 214 R: -6.110000\n    test 215 d: -350.077213\n    test 216 n: -1.0\n    test 217 D: -608.000000\n    test 218 r: -10.611602\n    test 219 n: -2.0\n    test 220 R: -6.080000\n    test 221 d: -348.358339\n    test 222 n: -1.0\n    test 223 D: -605.000000\n    test 224 r: -10.559242\n    test 225 n: -2.0\n    test 226 R: -6.050000\n    test 227 d: -346.639466\n    test 228 n: -1.0\n    test 229 D: -602.000000\n    test 230 r: -10.506882\n    test 231 n: -2.0\n    test 232 R: -6.020000\n    test 233 d: -344.920593\n    test 234 n: -1.0\n    test 235 D: -599.000000\n    test 236 r: -10.454522\n    test 237 n: -2.0\n    test 238 R: -5.990000\n    test 239 d: -343.201719\n    test 240 n: -1.0\n    test 241 D: -596.000000\n    test 242 r: -10.402162\n    test 243 n: -2.0\n    test 244 R: -5.960000\n    test 245 d: -341.482846\n    test 246 n: -1.0\n    test 247 D: -593.000000\n    test 248 r: -10.349802\n    test 249 n: -2.0\n    test 250 R: -5.930000\n    test 251 d: -339.763973\n    test 252 n: -1.0\n    test 253 D: -590.000000\n    test 254 r: -10.297443\n    test 255 n: -2.0\n    test 256 R: -5.900000\n    test 257 d: -338.045099\n    test 258 n: -1.0\n    test 259 D: -587.000000\n    test 260 r: -10.245083\n    test 261 n: -2.0\n    test 262 R: -5.870000\n    test 263 d: -336.326226\n    test 264 n: -1.0\n    test 265 D: -584.000000\n    test 266 r: -10.192723\n    test 267 n: -2.0\n    test 268 R: -5.840000\n    test 269 d: -334.607352\n    test 270 n: -1.0\n    test 271 D: -581.000000\n    test 272 r: -10.140363\n    test 273 n: -2.0\n    test 274 R: -5.810000\n    test 275 d: -332.888479\n    test 276 n: -1.0\n    test 277 D: -578.000000\n    test 278 r: -10.088003\n    test 279 n: -2.0\n    test 280 R: -5.780000\n    test 281 d: -331.169606\n    test 282 n: -1.0\n    test 283 D: -575.000000\n    test 284 r: -10.035643\n    test 285 n: -2.0\n    test 286 R: -5.750000\n    test 287 d: -329.450732\n    test 288 n: -1.0\n    test 289 D: -572.000000\n    test 290 r: -9.983283\n    test 291 n: -2.0\n    test 292 R: -5.720000\n    test 293 d: -327.731859\n    test 294 n: -1.0\n    test 295 D: -569.000000\n    test 296 r: -9.930923\n    test 297 n: -2.0\n    test 298 R: -5.690000\n    test 299 d: -326.012985\n    test 300 n: -1.0\n    test 301 D: -566.000000\n    test 302 r: -9.878564\n    test 303 n: -2.0\n    test 304 R: -5.660000\n    test 305 d: -324.294112\n    test 306 n: -1.0\n    test 307 D: -563.000000\n    test 308 r: -9.826204\n    test 309 n: -2.0\n    test 310 R: -5.630000\n    test 311 d: -322.575239\n    test 312 n: -1.0\n    test 313 D: -560.000000\n    test 314 r: -9.773844\n    test 315 n: -2.0\n    test 316 R: -5.600000\n    test 317 d: -320.856365\n    test 318 n: -1.0\n    test 319 D: -557.000000\n    test 320 r: -9.721484\n    test 321 n: -2.0\n    test 322 R: -5.570000\n    test 323 d: -319.137492\n    test 324 n: -1.0\n    test 325 D: -554.000000\n    test 326 r: -9.669124\n    test 327 n: -2.0\n    test 328 R: -5.540000\n    test 329 d: -317.418619\n    test 330 n: -1.0\n    test 331 D: -551.000000\n    test 332 r: -9.616764\n    test 333 n: -2.0\n    test 334 R: -5.510000\n    test 335 d: -315.699745\n    test 336 n: -1.0\n    test 337 D: -548.000000\n    test 338 r: -9.564404\n    test 339 n: -2.0\n    test 340 R: -5.480000\n    test 341 d: -313.980872\n    test 342 n: -1.0\n    test 343 D: -545.000000\n    test 344 r: -9.512044\n    test 345 n: -2.0\n    test 346 R: -5.450000\n    test 347 d: -312.261998\n    test 348 n: -1.0\n    test 349 D: -542.000000\n    test 350 r: -9.459685\n    test 351 n: -2.0\n    test 352 R: -5.420000\n    test 353 d: -310.543125\n    test 354 n: -1.0\n    test 355 D: -539.000000\n    test 356 r: -9.407325\n    test 357 n: -1.0\n    test 358 R: -5.390000\n    test 359 d: -308.824252\n    test 360 n: -1.0\n    test 361 D: -536.000000\n    test 362 r: -9.354965\n    test 363 n: -1.0\n    test 364 R: -5.360000\n    test 365 d: -307.105378\n    test 366 n: -1.0\n    test 367 D: -533.000000\n    test 368 r: -9.302605\n    test 369 n: -1.0\n    test 370 R: -5.330000\n    test 371 d: -305.386505\n    test 372 n: -1.0\n    test 373 D: -530.000000\n    test 374 r: -9.250245\n    test 375 n: -1.0\n    test 376 R: -5.300000\n    test 377 d: -303.667631\n    test 378 n: -1.0\n    test 379 D: -527.000000\n    test 380 r: -9.197885\n    test 381 n: -1.0\n    test 382 R: -5.270000\n    test 383 d: -301.948758\n    test 384 n: -1.0\n    test 385 D: -524.000000\n    test 386 r: -9.145525\n    test 387 n: -1.0\n    test 388 R: -5.240000\n    test 389 d: -300.229885\n    test 390 n: -1.0\n    test 391 D: -521.000000\n    test 392 r: -9.093165\n    test 393 n: -1.0\n    test 394 R: -5.210000\n    test 395 d: -298.511011\n    test 396 n: -1.0\n    test 397 D: -518.000000\n    test 398 r: -9.040806\n    test 399 n: -1.0\n    test 400 R: -5.180000\n    test 401 d: -296.792138\n    test 402 n: -1.0\n    test 403 D: -515.000000\n    test 404 r: -8.988446\n    test 405 n: -1.0\n    test 406 R: -5.150000\n    test 407 d: -295.073264\n    test 408 n: -1.0\n    test 409 D: -512.000000\n    test 410 r: -8.936086\n    test 411 n: -1.0\n    test 412 R: -5.120000\n    test 413 d: -293.354391\n    test 414 n: -1.0\n    test 415 D: -509.000000\n    test 416 r: -8.883726\n    test 417 n: -1.0\n    test 418 R: -5.090000\n    test 419 d: -291.635518\n    test 420 n: -1.0\n    test 421 D: -506.000000\n    test 422 r: -8.831366\n    test 423 n: -1.0\n    test 424 R: -5.060000\n    test 425 d: -289.916644\n    test 426 n: -1.0\n    test 427 D: -503.000000\n    test 428 r: -8.779006\n    test 429 n: -1.0\n    test 430 R: -5.030000\n    test 431 d: -288.197771\n    test 432 n: -1.0\n    test 433 D: -500.000000\n    test 434 r: -8.726646\n    test 435 n: -1.0\n    test 436 R: -5.000000\n    test 437 d: -286.478898\n    test 438 n: -1.0\n    test 439 D: -497.000000\n    test 440 r: -8.674286\n    test 441 n: -1.0\n    test 442 R: -4.970000\n    test 443 d: -284.760024\n    test 444 n: -1.0\n    test 445 D: -494.000000\n    test 446 r: -8.621927\n    test 447 n: -1.0\n    test 448 R: -4.940000\n    test 449 d: -283.041151\n    test 450 n: -1.0\n    test 451 D: -491.000000\n    test 452 r: -8.569567\n    test 453 n: -1.0\n    test 454 R: -4.910000\n    test 455 d: -281.322277\n    test 456 n: -1.0\n    test 457 D: -488.000000\n    test 458 r: -8.517207\n    test 459 n: -1.0\n    test 460 R: -4.880000\n    test 461 d: -279.603404\n    test 462 n: -1.0\n    test 463 D: -485.000000\n    test 464 r: -8.464847\n    test 465 n: -1.0\n    test 466 R: -4.850000\n    test 467 d: -277.884531\n    test 468 n: -1.0\n    test 469 D: -482.000000\n    test 470 r: -8.412487\n    test 471 n: -1.0\n    test 472 R: -4.820000\n    test 473 d: -276.165657\n    test 474 n: -1.0\n    test 475 D: -479.000000\n    test 476 r: -8.360127\n    test 477 n: -1.0\n    test 478 R: -4.790000\n    test 479 d: -274.446784\n    test 480 n: -1.0\n    test 481 D: -476.000000\n    test 482 r: -8.307767\n    test 483 n: -1.0\n    test 484 R: -4.760000\n    test 485 d: -272.727910\n    test 486 n: -1.0\n    test 487 D: -473.000000\n    test 488 r: -8.255407\n    test 489 n: -1.0\n    test 490 R: -4.730000\n    test 491 d: -271.009037\n    test 492 n: -1.0\n    test 493 D: -470.000000\n    test 494 r: -8.203047\n    test 495 n: -1.0\n    test 496 R: -4.700000\n    test 497 d: -269.290164\n    test 498 n: -1.0\n    test 499 D: -467.000000\n    test 500 r: -8.150688\n    test 501 n: -1.0\n    test 502 R: -4.670000\n    test 503 d: -267.571290\n    test 504 n: -1.0\n    test 505 D: -464.000000\n    test 506 r: -8.098328\n    test 507 n: -1.0\n    test 508 R: -4.640000\n    test 509 d: -265.852417\n    test 510 n: -1.0\n    test 511 D: -461.000000\n    test 512 r: -8.045968\n    test 513 n: -1.0\n    test 514 R: -4.610000\n    test 515 d: -264.133544\n    test 516 n: -1.0\n    test 517 D: -458.000000\n    test 518 r: -7.993608\n    test 519 n: -1.0\n    test 520 R: -4.580000\n    test 521 d: -262.414670\n    test 522 n: -1.0\n    test 523 D: -455.000000\n    test 524 r: -7.941248\n    test 525 n: -1.0\n    test 526 R: -4.550000\n    test 527 d: -260.695797\n    test 528 n: -1.0\n    test 529 D: -452.000000\n    test 530 r: -7.888888\n    test 531 n: -1.0\n    test 532 R: -4.520000\n    test 533 d: -258.976923\n    test 534 n: -1.0\n    test 535 D: -449.000000\n    test 536 r: -7.836528\n    test 537 n: -1.0\n    test 538 R: -4.490000\n    test 539 d: -257.258050\n    test 540 n: -1.0\n    test 541 D: -446.000000\n    test 542 r: -7.784168\n    test 543 n: -1.0\n    test 544 R: -4.460000\n    test 545 d: -255.539177\n    test 546 n: -1.0\n    test 547 D: -443.000000\n    test 548 r: -7.731809\n    test 549 n: -1.0\n    test 550 R: -4.430000\n    test 551 d: -253.820303\n    test 552 n: -1.0\n    test 553 D: -440.000000\n    test 554 r: -7.679449\n    test 555 n: -1.0\n    test 556 R: -4.400000\n    test 557 d: -252.101430\n    test 558 n: -1.0\n    test 559 D: -437.000000\n    test 560 r: -7.627089\n    test 561 n: -1.0\n    test 562 R: -4.370000\n    test 563 d: -250.382556\n    test 564 n: -1.0\n    test 565 D: -434.000000\n    test 566 r: -7.574729\n    test 567 n: -1.0\n    test 568 R: -4.340000\n    test 569 d: -248.663683\n    test 570 n: -1.0\n    test 571 D: -431.000000\n    test 572 r: -7.522369\n    test 573 n: -1.0\n    test 574 R: -4.310000\n    test 575 d: -246.944810\n    test 576 n: -1.0\n    test 577 D: -428.000000\n    test 578 r: -7.470009\n    test 579 n: -1.0\n    test 580 R: -4.280000\n    test 581 d: -245.225936\n    test 582 n: -1.0\n    test 583 D: -425.000000\n    test 584 r: -7.417649\n    test 585 n: -1.0\n    test 586 R: -4.250000\n    test 587 d: -243.507063\n    test 588 n: -1.0\n    test 589 D: -422.000000\n    test 590 r: -7.365289\n    test 591 n: -1.0\n    test 592 R: -4.220000\n    test 593 d: -241.788190\n    test 594 n: -1.0\n    test 595 D: -419.000000\n    test 596 r: -7.312930\n    test 597 n: -1.0\n    test 598 R: -4.190000\n    test 599 d: -240.069316\n    test 600 n: -1.0\n    test 601 D: -416.000000\n    test 602 r: -7.260570\n    test 603 n: -1.0\n    test 604 R: -4.160000\n    test 605 d: -238.350443\n    test 606 n: -1.0\n    test 607 D: -413.000000\n    test 608 r: -7.208210\n    test 609 n: -1.0\n    test 610 R: -4.130000\n    test 611 d: -236.631569\n    test 612 n: -1.0\n    test 613 D: -410.000000\n    test 614 r: -7.155850\n    test 615 n: -1.0\n    test 616 R: -4.100000\n    test 617 d: -234.912696\n    test 618 n: -1.0\n    test 619 D: -407.000000\n    test 620 r: -7.103490\n    test 621 n: -1.0\n    test 622 R: -4.070000\n    test 623 d: -233.193823\n    test 624 n: -1.0\n    test 625 D: -404.000000\n    test 626 r: -7.051130\n    test 627 n: -1.0\n    test 628 R: -4.040000\n    test 629 d: -231.474949\n    test 630 n: -1.0\n    test 631 D: -401.000000\n    test 632 r: -6.998770\n    test 633 n: -1.0\n    test 634 R: -4.010000\n    test 635 d: -229.756076\n    test 636 n: -1.0\n    test 637 D: -398.000000\n    test 638 r: -6.946410\n    test 639 n: -1.0\n    test 640 R: -3.980000\n    test 641 d: -228.037202\n    test 642 n: -1.0\n    test 643 D: -395.000000\n    test 644 r: -6.894051\n    test 645 n: -1.0\n    test 646 R: -3.950000\n    test 647 d: -226.318329\n    test 648 n: -1.0\n    test 649 D: -392.000000\n    test 650 r: -6.841691\n    test 651 n: -1.0\n    test 652 R: -3.920000\n    test 653 d: -224.599456\n    test 654 n: -1.0\n    test 655 D: -389.000000\n    test 656 r: -6.789331\n    test 657 n: -1.0\n    test 658 R: -3.890000\n    test 659 d: -222.880582\n    test 660 n: -1.0\n    test 661 D: -386.000000\n    test 662 r: -6.736971\n    test 663 n: -1.0\n    test 664 R: -3.860000\n    test 665 d: -221.161709\n    test 666 n: -1.0\n    test 667 D: -383.000000\n    test 668 r: -6.684611\n    test 669 n: -1.0\n    test 670 R: -3.830000\n    test 671 d: -219.442836\n    test 672 n: -1.0\n    test 673 D: -380.000000\n    test 674 r: -6.632251\n    test 675 n: -1.0\n    test 676 R: -3.800000\n    test 677 d: -217.723962\n    test 678 n: -1.0\n    test 679 D: -377.000000\n    test 680 r: -6.579891\n    test 681 n: -1.0\n    test 682 R: -3.770000\n    test 683 d: -216.005089\n    test 684 n: -1.0\n    test 685 D: -374.000000\n    test 686 r: -6.527531\n    test 687 n: -1.0\n    test 688 R: -3.740000\n    test 689 d: -214.286215\n    test 690 n: -1.0\n    test 691 D: -371.000000\n    test 692 r: -6.475172\n    test 693 n: -1.0\n    test 694 R: -3.710000\n    test 695 d: -212.567342\n    test 696 n: -1.0\n    test 697 D: -368.000000\n    test 698 r: -6.422812\n    test 699 n: -1.0\n    test 700 R: -3.680000\n    test 701 d: -210.848469\n    test 702 n: -1.0\n    test 703 D: -365.000000\n    test 704 r: -6.370452\n    test 705 n: -1.0\n    test 706 R: -3.650000\n    test 707 d: -209.129595\n    test 708 n: -1.0\n    test 709 D: -362.000000\n    test 710 r: -6.318092\n    test 711 n: -1.0\n    test 712 R: -3.620000\n    test 713 d: -207.410722\n    test 714 n: -1.0\n    test 715 D: -359.000000\n    test 716 r: -6.265732\n    test 717 n: -1.0\n    test 718 R: -3.590000\n    test 719 d: -205.691848\n    test 720 n: -1.0\n    test 721 D: -356.000000\n    test 722 r: -6.213372\n    test 723 n: -1.0\n    test 724 R: -3.560000\n    test 725 d: -203.972975\n    test 726 n: -1.0\n    test 727 D: -353.000000\n    test 728 r: -6.161012\n    test 729 n: -1.0\n    test 730 R: -3.530000\n    test 731 d: -202.254102\n    test 732 n: -1.0\n    test 733 D: -350.000000\n    test 734 r: -6.108652\n    test 735 n: -1.0\n    test 736 R: -3.500000\n    test 737 d: -200.535228\n    test 738 n: -1.0\n    test 739 D: -347.000000\n    test 740 r: -6.056293\n    test 741 n: -1.0\n    test 742 R: -3.470000\n    test 743 d: -198.816355\n    test 744 n: -1.0\n    test 745 D: -344.000000\n    test 746 r: -6.003933\n    test 747 n: -1.0\n    test 748 R: -3.440000\n    test 749 d: -197.097482\n    test 750 n: -1.0\n    test 751 D: -341.000000\n    test 752 r: -5.951573\n    test 753 n: -1.0\n    test 754 R: -3.410000\n    test 755 d: -195.378608\n    test 756 n: -1.0\n    test 757 D: -338.000000\n    test 758 r: -5.899213\n    test 759 n: -1.0\n    test 760 R: -3.380000\n    test 761 d: -193.659735\n    test 762 n: -1.0\n    test 763 D: -335.000000\n    test 764 r: -5.846853\n    test 765 n: -1.0\n    test 766 R: -3.350000\n    test 767 d: -191.940861\n    test 768 n: -1.0\n    test 769 D: -332.000000\n    test 770 r: -5.794493\n    test 771 n: -1.0\n    test 772 R: -3.320000\n    test 773 d: -190.221988\n    test 774 n: -1.0\n    test 775 D: -329.000000\n    test 776 r: -5.742133\n    test 777 n: -1.0\n    test 778 R: -3.290000\n    test 779 d: -188.503115\n    test 780 n: -1.0\n    test 781 D: -326.000000\n    test 782 r: -5.689773\n    test 783 n: -1.0\n    test 784 R: -3.260000\n    test 785 d: -186.784241\n    test 786 n: -1.0\n    test 787 D: -323.000000\n    test 788 r: -5.637413\n    test 789 n: -1.0\n    test 790 R: -3.230000\n    test 791 d: -185.065368\n    test 792 n: -1.0\n    test 793 D: -320.000000\n    test 794 r: -5.585054\n    test 795 n: -1.0\n    test 796 R: -3.200000\n    test 797 d: -183.346494\n    test 798 n: -1.0\n    test 799 D: -317.000000\n    test 800 r: -5.532694\n    test 801 n: -1.0\n    test 802 R: -3.170000\n    test 803 d: -181.627621\n    test 804 n: -1.0\n    test 805 D: -314.000000\n    test 806 r: -5.480334\n    test 807 n: -1.0\n    test 808 R: -3.140000\n    test 809 d: -179.908748\n    test 810 n: 0.0\n    test 811 D: -311.000000\n    test 812 r: -5.427974\n    test 813 n: -1.0\n    test 814 R: -3.110000\n    test 815 d: -178.189874\n    test 816 n: 0.0\n    test 817 D: -308.000000\n    test 818 r: -5.375614\n    test 819 n: -1.0\n    test 820 R: -3.080000\n    test 821 d: -176.471001\n    test 822 n: 0.0\n    test 823 D: -305.000000\n    test 824 r: -5.323254\n    test 825 n: -1.0\n    test 826 R: -3.050000\n    test 827 d: -174.752128\n    test 828 n: 0.0\n    test 829 D: -302.000000\n    test 830 r: -5.270894\n    test 831 n: -1.0\n    test 832 R: -3.020000\n    test 833 d: -173.033254\n    test 834 n: 0.0\n    test 835 D: -299.000000\n    test 836 r: -5.218534\n    test 837 n: -1.0\n    test 838 R: -2.990000\n    test 839 d: -171.314381\n    test 840 n: 0.0\n    test 841 D: -296.000000\n    test 842 r: -5.166175\n    test 843 n: -1.0\n    test 844 R: -2.960000\n    test 845 d: -169.595507\n    test 846 n: 0.0\n    test 847 D: -293.000000\n    test 848 r: -5.113815\n    test 849 n: -1.0\n    test 850 R: -2.930000\n    test 851 d: -167.876634\n    test 852 n: 0.0\n    test 853 D: -290.000000\n    test 854 r: -5.061455\n    test 855 n: -1.0\n    test 856 R: -2.900000\n    test 857 d: -166.157761\n    test 858 n: 0.0\n    test 859 D: -287.000000\n    test 860 r: -5.009095\n    test 861 n: -1.0\n    test 862 R: -2.870000\n    test 863 d: -164.438887\n    test 864 n: 0.0\n    test 865 D: -284.000000\n    test 866 r: -4.956735\n    test 867 n: -1.0\n    test 868 R: -2.840000\n    test 869 d: -162.720014\n    test 870 n: 0.0\n    test 871 D: -281.000000\n    test 872 r: -4.904375\n    test 873 n: -1.0\n    test 874 R: -2.810000\n    test 875 d: -161.001140\n    test 876 n: 0.0\n    test 877 D: -278.000000\n    test 878 r: -4.852015\n    test 879 n: -1.0\n    test 880 R: -2.780000\n    test 881 d: -159.282267\n    test 882 n: 0.0\n    test 883 D: -275.000000\n    test 884 r: -4.799655\n    test 885 n: -1.0\n    test 886 R: -2.750000\n    test 887 d: -157.563394\n    test 888 n: 0.0\n    test 889 D: -272.000000\n    test 890 r: -4.747296\n    test 891 n: -1.0\n    test 892 R: -2.720000\n    test 893 d: -155.844520\n    test 894 n: 0.0\n    test 895 D: -269.000000\n    test 896 r: -4.694936\n    test 897 n: -1.0\n    test 898 R: -2.690000\n    test 899 d: -154.125647\n    test 900 n: 0.0\n    test 901 D: -266.000000\n    test 902 r: -4.642576\n    test 903 n: -1.0\n    test 904 R: -2.660000\n    test 905 d: -152.406774\n    test 906 n: 0.0\n    test 907 D: -263.000000\n    test 908 r: -4.590216\n    test 909 n: -1.0\n    test 910 R: -2.630000\n    test 911 d: -150.687900\n    test 912 n: 0.0\n    test 913 D: -260.000000\n    test 914 r: -4.537856\n    test 915 n: -1.0\n    test 916 R: -2.600000\n    test 917 d: -148.969027\n    test 918 n: 0.0\n    test 919 D: -257.000000\n    test 920 r: -4.485496\n    test 921 n: -1.0\n    test 922 R: -2.570000\n    test 923 d: -147.250153\n    test 924 n: 0.0\n    test 925 D: -254.000000\n    test 926 r: -4.433136\n    test 927 n: -1.0\n    test 928 R: -2.540000\n    test 929 d: -145.531280\n    test 930 n: 0.0\n    test 931 D: -251.000000\n    test 932 r: -4.380776\n    test 933 n: -1.0\n    test 934 R: -2.510000\n    test 935 d: -143.812407\n    test 936 n: 0.0\n    test 937 D: -248.000000\n    test 938 r: -4.328417\n    test 939 n: -1.0\n    test 940 R: -2.480000\n    test 941 d: -142.093533\n    test 942 n: 0.0\n    test 943 D: -245.000000\n    test 944 r: -4.276057\n    test 945 n: -1.0\n    test 946 R: -2.450000\n    test 947 d: -140.374660\n    test 948 n: 0.0\n    test 949 D: -242.000000\n    test 950 r: -4.223697\n    test 951 n: -1.0\n    test 952 R: -2.420000\n    test 953 d: -138.655786\n    test 954 n: 0.0\n    test 955 D: -239.000000\n    test 956 r: -4.171337\n    test 957 n: -1.0\n    test 958 R: -2.390000\n    test 959 d: -136.936913\n    test 960 n: 0.0\n    test 961 D: -236.000000\n    test 962 r: -4.118977\n    test 963 n: -1.0\n    test 964 R: -2.360000\n    test 965 d: -135.218040\n    test 966 n: 0.0\n    test 967 D: -233.000000\n    test 968 r: -4.066617\n    test 969 n: -1.0\n    test 970 R: -2.330000\n    test 971 d: -133.499166\n    test 972 n: 0.0\n    test 973 D: -230.000000\n    test 974 r: -4.014257\n    test 975 n: -1.0\n    test 976 R: -2.300000\n    test 977 d: -131.780293\n    test 978 n: 0.0\n    test 979 D: -227.000000\n    test 980 r: -3.961897\n    test 981 n: -1.0\n    test 982 R: -2.270000\n    test 983 d: -130.061419\n    test 984 n: 0.0\n    test 985 D: -224.000000\n    test 986 r: -3.909538\n    test 987 n: -1.0\n    test 988 R: -2.240000\n    test 989 d: -128.342546\n    test 990 n: 0.0\n    test 991 D: -221.000000\n    test 992 r: -3.857178\n    test 993 n: -1.0\n    test 994 R: -2.210000\n    test 995 d: -126.623673\n    test 996 n: 0.0\n    test 997 D: -218.000000\n    test 998 r: -3.804818\n    test 999 n: -1.0\n    test 1000 R: -2.180000\n    test 1001 d: -124.904799\n    test 1002 n: 0.0\n    test 1003 D: -215.000000\n    test 1004 r: -3.752458\n    test 1005 n: -1.0\n    test 1006 R: -2.150000\n    test 1007 d: -123.185926\n    test 1008 n: 0.0\n    test 1009 D: -212.000000\n    test 1010 r: -3.700098\n    test 1011 n: -1.0\n    test 1012 R: -2.120000\n    test 1013 d: -121.467053\n    test 1014 n: 0.0\n    test 1015 D: -209.000000\n    test 1016 r: -3.647738\n    test 1017 n: -1.0\n    test 1018 R: -2.090000\n    test 1019 d: -119.748179\n    test 1020 n: 0.0\n    test 1021 D: -206.000000\n    test 1022 r: -3.595378\n    test 1023 n: -1.0\n    test 1024 R: -2.060000\n    test 1025 d: -118.029306\n    test 1026 n: 0.0\n    test 1027 D: -203.000000\n    test 1028 r: -3.543018\n    test 1029 n: -1.0\n    test 1030 R: -2.030000\n    test 1031 d: -116.310432\n    test 1032 n: 0.0\n    test 1033 D: -200.000000\n    test 1034 r: -3.490659\n    test 1035 n: -1.0\n    test 1036 R: -2.000000\n    test 1037 d: -114.591559\n    test 1038 n: 0.0\n    test 1039 D: -197.000000\n    test 1040 r: -3.438299\n    test 1041 n: -1.0\n    test 1042 R: -1.970000\n    test 1043 d: -112.872686\n    test 1044 n: 0.0\n    test 1045 D: -194.000000\n    test 1046 r: -3.385939\n    test 1047 n: -1.0\n    test 1048 R: -1.940000\n    test 1049 d: -111.153812\n    test 1050 n: 0.0\n    test 1051 D: -191.000000\n    test 1052 r: -3.333579\n    test 1053 n: -1.0\n    test 1054 R: -1.910000\n    test 1055 d: -109.434939\n    test 1056 n: 0.0\n    test 1057 D: -188.000000\n    test 1058 r: -3.281219\n    test 1059 n: -1.0\n    test 1060 R: -1.880000\n    test 1061 d: -107.716065\n    test 1062 n: 0.0\n    test 1063 D: -185.000000\n    test 1064 r: -3.228859\n    test 1065 n: -1.0\n    test 1066 R: -1.850000\n    test 1067 d: -105.997192\n    test 1068 n: 0.0\n    test 1069 D: -182.000000\n    test 1070 r: -3.176499\n    test 1071 n: -1.0\n    test 1072 R: -1.820000\n    test 1073 d: -104.278319\n    test 1074 n: 0.0\n    test 1075 D: -179.000000\n    test 1076 r: -3.124139\n    test 1077 n: 0.0\n    test 1078 R: -1.790000\n    test 1079 d: -102.559445\n    test 1080 n: 0.0\n    test 1081 D: -176.000000\n    test 1082 r: -3.071779\n    test 1083 n: 0.0\n    test 1084 R: -1.760000\n    test 1085 d: -100.840572\n    test 1086 n: 0.0\n    test 1087 D: -173.000000\n    test 1088 r: -3.019420\n    test 1089 n: 0.0\n    test 1090 R: -1.730000\n    test 1091 d: -99.121699\n    test 1092 n: 0.0\n    test 1093 D: -170.000000\n    test 1094 r: -2.967060\n    test 1095 n: 0.0\n    test 1096 R: -1.700000\n    test 1097 d: -97.402825\n    test 1098 n: 0.0\n    test 1099 D: -167.000000\n    test 1100 r: -2.914700\n    test 1101 n: 0.0\n    test 1102 R: -1.670000\n    test 1103 d: -95.683952\n    test 1104 n: 0.0\n    test 1105 D: -164.000000\n    test 1106 r: -2.862340\n    test 1107 n: 0.0\n    test 1108 R: -1.640000\n    test 1109 d: -93.965078\n    test 1110 n: 0.0\n    test 1111 D: -161.000000\n    test 1112 r: -2.809980\n    test 1113 n: 0.0\n    test 1114 R: -1.610000\n    test 1115 d: -92.246205\n    test 1116 n: 0.0\n    test 1117 D: -158.000000\n    test 1118 r: -2.757620\n    test 1119 n: 0.0\n    test 1120 R: -1.580000\n    test 1121 d: -90.527332\n    test 1122 n: 0.0\n    test 1123 D: -155.000000\n    test 1124 r: -2.705260\n    test 1125 n: 0.0\n    test 1126 R: -1.550000\n    test 1127 d: -88.808458\n    test 1128 n: 0.0\n    test 1129 D: -152.000000\n    test 1130 r: -2.652900\n    test 1131 n: 0.0\n    test 1132 R: -1.520000\n    test 1133 d: -87.089585\n    test 1134 n: 0.0\n    test 1135 D: -149.000000\n    test 1136 r: -2.600541\n    test 1137 n: 0.0\n    test 1138 R: -1.490000\n    test 1139 d: -85.370711\n    test 1140 n: 0.0\n    test 1141 D: -146.000000\n    test 1142 r: -2.548181\n    test 1143 n: 0.0\n    test 1144 R: -1.460000\n    test 1145 d: -83.651838\n    test 1146 n: 0.0\n    test 1147 D: -143.000000\n    test 1148 r: -2.495821\n    test 1149 n: 0.0\n    test 1150 R: -1.430000\n    test 1151 d: -81.932965\n    test 1152 n: 0.0\n    test 1153 D: -140.000000\n    test 1154 r: -2.443461\n    test 1155 n: 0.0\n    test 1156 R: -1.400000\n    test 1157 d: -80.214091\n    test 1158 n: 0.0\n    test 1159 D: -137.000000\n    test 1160 r: -2.391101\n    test 1161 n: 0.0\n    test 1162 R: -1.370000\n    test 1163 d: -78.495218\n    test 1164 n: 0.0\n    test 1165 D: -134.000000\n    test 1166 r: -2.338741\n    test 1167 n: 0.0\n    test 1168 R: -1.340000\n    test 1169 d: -76.776345\n    test 1170 n: 0.0\n    test 1171 D: -131.000000\n    test 1172 r: -2.286381\n    test 1173 n: 0.0\n    test 1174 R: -1.310000\n    test 1175 d: -75.057471\n    test 1176 n: 0.0\n    test 1177 D: -128.000000\n    test 1178 r: -2.234021\n    test 1179 n: 0.0\n    test 1180 R: -1.280000\n    test 1181 d: -73.338598\n    test 1182 n: 0.0\n    test 1183 D: -125.000000\n    test 1184 r: -2.181662\n    test 1185 n: 0.0\n    test 1186 R: -1.250000\n    test 1187 d: -71.619724\n    test 1188 n: 0.0\n    test 1189 D: -122.000000\n    test 1190 r: -2.129302\n    test 1191 n: 0.0\n    test 1192 R: -1.220000\n    test 1193 d: -69.900851\n    test 1194 n: 0.0\n    test 1195 D: -119.000000\n    test 1196 r: -2.076942\n    test 1197 n: 0.0\n    test 1198 R: -1.190000\n    test 1199 d: -68.181978\n    test 1200 n: 0.0\n    test 1201 D: -116.000000\n    test 1202 r: -2.024582\n    test 1203 n: 0.0\n    test 1204 R: -1.160000\n    test 1205 d: -66.463104\n    test 1206 n: 0.0\n    test 1207 D: -113.000000\n    test 1208 r: -1.972222\n    test 1209 n: 0.0\n    test 1210 R: -1.130000\n    test 1211 d: -64.744231\n    test 1212 n: 0.0\n    test 1213 D: -110.000000\n    test 1214 r: -1.919862\n    test 1215 n: 0.0\n    test 1216 R: -1.100000\n    test 1217 d: -63.025357\n    test 1218 n: 0.0\n    test 1219 D: -107.000000\n    test 1220 r: -1.867502\n    test 1221 n: 0.0\n    test 1222 R: -1.070000\n    test 1223 d: -61.306484\n    test 1224 n: 0.0\n    test 1225 D: -104.000000\n    test 1226 r: -1.815142\n    test 1227 n: 0.0\n    test 1228 R: -1.040000\n    test 1229 d: -59.587611\n    test 1230 n: 0.0\n    test 1231 D: -101.000000\n    test 1232 r: -1.762783\n    test 1233 n: 0.0\n    test 1234 R: -1.010000\n    test 1235 d: -57.868737\n    test 1236 n: 0.0\n    test 1237 D: -98.000000\n    test 1238 r: -1.710423\n    test 1239 n: 0.0\n    test 1240 R: -0.980000\n    test 1241 d: -56.149864\n    test 1242 n: 0.0\n    test 1243 D: -95.000000\n    test 1244 r: -1.658063\n    test 1245 n: 0.0\n    test 1246 R: -0.950000\n    test 1247 d: -54.430991\n    test 1248 n: 0.0\n    test 1249 D: -92.000000\n    test 1250 r: -1.605703\n    test 1251 n: 0.0\n    test 1252 R: -0.920000\n    test 1253 d: -52.712117\n    test 1254 n: 0.0\n    test 1255 D: -89.000000\n    test 1256 r: -1.553343\n    test 1257 n: 0.0\n    test 1258 R: -0.890000\n    test 1259 d: -50.993244\n    test 1260 n: 0.0\n    test 1261 D: -86.000000\n    test 1262 r: -1.500983\n    test 1263 n: 0.0\n    test 1264 R: -0.860000\n    test 1265 d: -49.274370\n    test 1266 n: 0.0\n    test 1267 D: -83.000000\n    test 1268 r: -1.448623\n    test 1269 n: 0.0\n    test 1270 R: -0.830000\n    test 1271 d: -47.555497\n    test 1272 n: 0.0\n    test 1273 D: -80.000000\n    test 1274 r: -1.396263\n    test 1275 n: 0.0\n    test 1276 R: -0.800000\n    test 1277 d: -45.836624\n    test 1278 n: 0.0\n    test 1279 D: -77.000000\n    test 1280 r: -1.343904\n    test 1281 n: 0.0\n    test 1282 R: -0.770000\n    test 1283 d: -44.117750\n    test 1284 n: 0.0\n    test 1285 D: -74.000000\n    test 1286 r: -1.291544\n    test 1287 n: 0.0\n    test 1288 R: -0.740000\n    test 1289 d: -42.398877\n    test 1290 n: 0.0\n    test 1291 D: -71.000000\n    test 1292 r: -1.239184\n    test 1293 n: 0.0\n    test 1294 R: -0.710000\n    test 1295 d: -40.680003\n    test 1296 n: 0.0\n    test 1297 D: -68.000000\n    test 1298 r: -1.186824\n    test 1299 n: 0.0\n    test 1300 R: -0.680000\n    test 1301 d: -38.961130\n    test 1302 n: 0.0\n    test 1303 D: -65.000000\n    test 1304 r: -1.134464\n    test 1305 n: 0.0\n    test 1306 R: -0.650000\n    test 1307 d: -37.242257\n    test 1308 n: 0.0\n    test 1309 D: -62.000000\n    test 1310 r: -1.082104\n    test 1311 n: 0.0\n    test 1312 R: -0.620000\n    test 1313 d: -35.523383\n    test 1314 n: 0.0\n    test 1315 D: -59.000000\n    test 1316 r: -1.029744\n    test 1317 n: 0.0\n    test 1318 R: -0.590000\n    test 1319 d: -33.804510\n    test 1320 n: 0.0\n    test 1321 D: -56.000000\n    test 1322 r: -0.977384\n    test 1323 n: 0.0\n    test 1324 R: -0.560000\n    test 1325 d: -32.085637\n    test 1326 n: 0.0\n    test 1327 D: -53.000000\n    test 1328 r: -0.925025\n    test 1329 n: 0.0\n    test 1330 R: -0.530000\n    test 1331 d: -30.366763\n    test 1332 n: 0.0\n    test 1333 D: -50.000000\n    test 1334 r: -0.872665\n    test 1335 n: 0.0\n    test 1336 R: -0.500000\n    test 1337 d: -28.647890\n    test 1338 n: 0.0\n    test 1339 D: -47.000000\n    test 1340 r: -0.820305\n    test 1341 n: 0.0\n    test 1342 R: -0.470000\n    test 1343 d: -26.929016\n    test 1344 n: 0.0\n    test 1345 D: -44.000000\n    test 1346 r: -0.767945\n    test 1347 n: 0.0\n    test 1348 R: -0.440000\n    test 1349 d: -25.210143\n    test 1350 n: 0.0\n    test 1351 D: -41.000000\n    test 1352 r: -0.715585\n    test 1353 n: 0.0\n    test 1354 R: -0.410000\n    test 1355 d: -23.491270\n    test 1356 n: 0.0\n    test 1357 D: -38.000000\n    test 1358 r: -0.663225\n    test 1359 n: 0.0\n    test 1360 R: -0.380000\n    test 1361 d: -21.772396\n    test 1362 n: 0.0\n    test 1363 D: -35.000000\n    test 1364 r: -0.610865\n    test 1365 n: 0.0\n    test 1366 R: -0.350000\n    test 1367 d: -20.053523\n    test 1368 n: 0.0\n    test 1369 D: -32.000000\n    test 1370 r: -0.558505\n    test 1371 n: 0.0\n    test 1372 R: -0.320000\n    test 1373 d: -18.334649\n    test 1374 n: 0.0\n    test 1375 D: -29.000000\n    test 1376 r: -0.506145\n    test 1377 n: 0.0\n    test 1378 R: -0.290000\n    test 1379 d: -16.615776\n    test 1380 n: 0.0\n    test 1381 D: -26.000000\n    test 1382 r: -0.453786\n    test 1383 n: 0.0\n    test 1384 R: -0.260000\n    test 1385 d: -14.896903\n    test 1386 n: 0.0\n    test 1387 D: -23.000000\n    test 1388 r: -0.401426\n    test 1389 n: 0.0\n    test 1390 R: -0.230000\n    test 1391 d: -13.178029\n    test 1392 n: 0.0\n    test 1393 D: -20.000000\n    test 1394 r: -0.349066\n    test 1395 n: 0.0\n    test 1396 R: -0.200000\n    test 1397 d: -11.459156\n    test 1398 n: 0.0\n    test 1399 D: -17.000000\n    test 1400 r: -0.296706\n    test 1401 n: 0.0\n    test 1402 R: -0.170000\n    test 1403 d: -9.740283\n    test 1404 n: 0.0\n    test 1405 D: -14.000000\n    test 1406 r: -0.244346\n    test 1407 n: 0.0\n    test 1408 R: -0.140000\n    test 1409 d: -8.021409\n    test 1410 n: 0.0\n    test 1411 D: -11.000000\n    test 1412 r: -0.191986\n    test 1413 n: 0.0\n    test 1414 R: -0.110000\n    test 1415 d: -6.302536\n    test 1416 n: 0.0\n    test 1417 D: -8.000000\n    test 1418 r: -0.139626\n    test 1419 n: 0.0\n    test 1420 R: -0.080000\n    test 1421 d: -4.583662\n    test 1422 n: 0.0\n    test 1423 D: -5.000000\n    test 1424 r: -0.087266\n    test 1425 n: 0.0\n    test 1426 R: -0.050000\n    test 1427 d: -2.864789\n    test 1428 n: 0.0\n    test 1429 D: -2.000000\n    test 1430 r: -0.034907\n    test 1431 n: 0.0\n    test 1432 R: -0.020000\n    test 1433 d: -1.145916\n    test 1434 n: 0.0\n    test 1435 D: 1.000000\n    test 1436 r: 0.017453\n    test 1437 n: 0.0\n    test 1438 R: 0.010000\n    test 1439 d: 0.572958\n    test 1440 n: 0.0\n    test 1441 D: 4.000000\n    test 1442 r: 0.069813\n    test 1443 n: 0.0\n    test 1444 R: 0.040000\n    test 1445 d: 2.291831\n    test 1446 n: 0.0\n    test 1447 D: 7.000000\n    test 1448 r: 0.122173\n    test 1449 n: 0.0\n    test 1450 R: 0.070000\n    test 1451 d: 4.010705\n    test 1452 n: 0.0\n    test 1453 D: 10.000000\n    test 1454 r: 0.174533\n    test 1455 n: 0.0\n    test 1456 R: 0.100000\n    test 1457 d: 5.729578\n    test 1458 n: 0.0\n    test 1459 D: 13.000000\n    test 1460 r: 0.226893\n    test 1461 n: 0.0\n    test 1462 R: 0.130000\n    test 1463 d: 7.448451\n    test 1464 n: 0.0\n    test 1465 D: 16.000000\n    test 1466 r: 0.279253\n    test 1467 n: 0.0\n    test 1468 R: 0.160000\n    test 1469 d: 9.167325\n    test 1470 n: 0.0\n    test 1471 D: 19.000000\n    test 1472 r: 0.331613\n    test 1473 n: 0.0\n    test 1474 R: 0.190000\n    test 1475 d: 10.886198\n    test 1476 n: 0.0\n    test 1477 D: 22.000000\n    test 1478 r: 0.383972\n    test 1479 n: 0.0\n    test 1480 R: 0.220000\n    test 1481 d: 12.605071\n    test 1482 n: 0.0\n    test 1483 D: 25.000000\n    test 1484 r: 0.436332\n    test 1485 n: 0.0\n    test 1486 R: 0.250000\n    test 1487 d: 14.323945\n    test 1488 n: 0.0\n    test 1489 D: 28.000000\n    test 1490 r: 0.488692\n    test 1491 n: 0.0\n    test 1492 R: 0.280000\n    test 1493 d: 16.042818\n    test 1494 n: 0.0\n    test 1495 D: 31.000000\n    test 1496 r: 0.541052\n    test 1497 n: 0.0\n    test 1498 R: 0.310000\n    test 1499 d: 17.761692\n    test 1500 n: 0.0\n    test 1501 D: 34.000000\n    test 1502 r: 0.593412\n    test 1503 n: 0.0\n    test 1504 R: 0.340000\n    test 1505 d: 19.480565\n    test 1506 n: 0.0\n    test 1507 D: 37.000000\n    test 1508 r: 0.645772\n    test 1509 n: 0.0\n    test 1510 R: 0.370000\n    test 1511 d: 21.199438\n    test 1512 n: 0.0\n    test 1513 D: 40.000000\n    test 1514 r: 0.698132\n    test 1515 n: 0.0\n    test 1516 R: 0.400000\n    test 1517 d: 22.918312\n    test 1518 n: 0.0\n    test 1519 D: 43.000000\n    test 1520 r: 0.750492\n    test 1521 n: 0.0\n    test 1522 R: 0.430000\n    test 1523 d: 24.637185\n    test 1524 n: 0.0\n    test 1525 D: 46.000000\n    test 1526 r: 0.802851\n    test 1527 n: 0.0\n    test 1528 R: 0.460000\n    test 1529 d: 26.356059\n    test 1530 n: 0.0\n    test 1531 D: 49.000000\n    test 1532 r: 0.855211\n    test 1533 n: 0.0\n    test 1534 R: 0.490000\n    test 1535 d: 28.074932\n    test 1536 n: 0.0\n    test 1537 D: 52.000000\n    test 1538 r: 0.907571\n    test 1539 n: 0.0\n    test 1540 R: 0.520000\n    test 1541 d: 29.793805\n    test 1542 n: 0.0\n    test 1543 D: 55.000000\n    test 1544 r: 0.959931\n    test 1545 n: 0.0\n    test 1546 R: 0.550000\n    test 1547 d: 31.512679\n    test 1548 n: 0.0\n    test 1549 D: 58.000000\n    test 1550 r: 1.012291\n    test 1551 n: 0.0\n    test 1552 R: 0.580000\n    test 1553 d: 33.231552\n    test 1554 n: 0.0\n    test 1555 D: 61.000000\n    test 1556 r: 1.064651\n    test 1557 n: 0.0\n    test 1558 R: 0.610000\n    test 1559 d: 34.950426\n    test 1560 n: 0.0\n    test 1561 D: 64.000000\n    test 1562 r: 1.117011\n    test 1563 n: 0.0\n    test 1564 R: 0.640000\n    test 1565 d: 36.669299\n    test 1566 n: 0.0\n    test 1567 D: 67.000000\n    test 1568 r: 1.169371\n    test 1569 n: 0.0\n    test 1570 R: 0.670000\n    test 1571 d: 38.388172\n    test 1572 n: 0.0\n    test 1573 D: 70.000000\n    test 1574 r: 1.221730\n    test 1575 n: 0.0\n    test 1576 R: 0.700000\n    test 1577 d: 40.107046\n    test 1578 n: 0.0\n    test 1579 D: 73.000000\n    test 1580 r: 1.274090\n    test 1581 n: 0.0\n    test 1582 R: 0.730000\n    test 1583 d: 41.825919\n    test 1584 n: 0.0\n    test 1585 D: 76.000000\n    test 1586 r: 1.326450\n    test 1587 n: 0.0\n    test 1588 R: 0.760000\n    test 1589 d: 43.544792\n    test 1590 n: 0.0\n    test 1591 D: 79.000000\n    test 1592 r: 1.378810\n    test 1593 n: 0.0\n    test 1594 R: 0.790000\n    test 1595 d: 45.263666\n    test 1596 n: 0.0\n    test 1597 D: 82.000000\n    test 1598 r: 1.431170\n    test 1599 n: 0.0\n    test 1600 R: 0.820000\n    test 1601 d: 46.982539\n    test 1602 n: 0.0\n    test 1603 D: 85.000000\n    test 1604 r: 1.483530\n    test 1605 n: 0.0\n    test 1606 R: 0.850000\n    test 1607 d: 48.701413\n    test 1608 n: 0.0\n    test 1609 D: 88.000000\n    test 1610 r: 1.535890\n    test 1611 n: 0.0\n    test 1612 R: 0.880000\n    test 1613 d: 50.420286\n    test 1614 n: 0.0\n    test 1615 D: 91.000000\n    test 1616 r: 1.588250\n    test 1617 n: 0.0\n    test 1618 R: 0.910000\n    test 1619 d: 52.139159\n    test 1620 n: 0.0\n    test 1621 D: 94.000000\n    test 1622 r: 1.640609\n    test 1623 n: 0.0\n    test 1624 R: 0.940000\n    test 1625 d: 53.858033\n    test 1626 n: 0.0\n    test 1627 D: 97.000000\n    test 1628 r: 1.692969\n    test 1629 n: 0.0\n    test 1630 R: 0.970000\n    test 1631 d: 55.576906\n    test 1632 n: 0.0\n    test 1633 D: 100.000000\n    test 1634 r: 1.745329\n    test 1635 n: 0.0\n    test 1636 R: 1.000000\n    test 1637 d: 57.295780\n    test 1638 n: 0.0\n    test 1639 D: 103.000000\n    test 1640 r: 1.797689\n    test 1641 n: 0.0\n    test 1642 R: 1.030000\n    test 1643 d: 59.014653\n    test 1644 n: 0.0\n    test 1645 D: 106.000000\n    test 1646 r: 1.850049\n    test 1647 n: 0.0\n    test 1648 R: 1.060000\n    test 1649 d: 60.733526\n    test 1650 n: 0.0\n    test 1651 D: 109.000000\n    test 1652 r: 1.902409\n    test 1653 n: 0.0\n    test 1654 R: 1.090000\n    test 1655 d: 62.452400\n    test 1656 n: 0.0\n    test 1657 D: 112.000000\n    test 1658 r: 1.954769\n    test 1659 n: 0.0\n    test 1660 R: 1.120000\n    test 1661 d: 64.171273\n    test 1662 n: 0.0\n    test 1663 D: 115.000000\n    test 1664 r: 2.007129\n    test 1665 n: 0.0\n    test 1666 R: 1.150000\n    test 1667 d: 65.890146\n    test 1668 n: 0.0\n    test 1669 D: 118.000000\n    test 1670 r: 2.059489\n    test 1671 n: 0.0\n    test 1672 R: 1.180000\n    test 1673 d: 67.609020\n    test 1674 n: 0.0\n    test 1675 D: 121.000000\n    test 1676 r: 2.111848\n    test 1677 n: 0.0\n    test 1678 R: 1.210000\n    test 1679 d: 69.327893\n    test 1680 n: 0.0\n    test 1681 D: 124.000000\n    test 1682 r: 2.164208\n    test 1683 n: 0.0\n    test 1684 R: 1.240000\n    test 1685 d: 71.046767\n    test 1686 n: 0.0\n    test 1687 D: 127.000000\n    test 1688 r: 2.216568\n    test 1689 n: 0.0\n    test 1690 R: 1.270000\n    test 1691 d: 72.765640\n    test 1692 n: 0.0\n    test 1693 D: 130.000000\n    test 1694 r: 2.268928\n    test 1695 n: 0.0\n    test 1696 R: 1.300000\n    test 1697 d: 74.484513\n    test 1698 n: 0.0\n    test 1699 D: 133.000000\n    test 1700 r: 2.321288\n    test 1701 n: 0.0\n    test 1702 R: 1.330000\n    test 1703 d: 76.203387\n    test 1704 n: 0.0\n    test 1705 D: 136.000000\n    test 1706 r: 2.373648\n    test 1707 n: 0.0\n    test 1708 R: 1.360000\n    test 1709 d: 77.922260\n    test 1710 n: 0.0\n    test 1711 D: 139.000000\n    test 1712 r: 2.426008\n    test 1713 n: 0.0\n    test 1714 R: 1.390000\n    test 1715 d: 79.641134\n    test 1716 n: 0.0\n    test 1717 D: 142.000000\n    test 1718 r: 2.478368\n    test 1719 n: 0.0\n    test 1720 R: 1.420000\n    test 1721 d: 81.360007\n    test 1722 n: 0.0\n    test 1723 D: 145.000000\n    test 1724 r: 2.530727\n    test 1725 n: 0.0\n    test 1726 R: 1.450000\n    test 1727 d: 83.078880\n    test 1728 n: 0.0\n    test 1729 D: 148.000000\n    test 1730 r: 2.583087\n    test 1731 n: 0.0\n    test 1732 R: 1.480000\n    test 1733 d: 84.797754\n    test 1734 n: 0.0\n    test 1735 D: 151.000000\n    test 1736 r: 2.635447\n    test 1737 n: 0.0\n    test 1738 R: 1.510000\n    test 1739 d: 86.516627\n    test 1740 n: 0.0\n    test 1741 D: 154.000000\n    test 1742 r: 2.687807\n    test 1743 n: 0.0\n    test 1744 R: 1.540000\n    test 1745 d: 88.235500\n    test 1746 n: 0.0\n    test 1747 D: 157.000000\n    test 1748 r: 2.740167\n    test 1749 n: 0.0\n    test 1750 R: 1.570000\n    test 1751 d: 89.954374\n    test 1752 n: 0.0\n    test 1753 D: 160.000000\n    test 1754 r: 2.792527\n    test 1755 n: 0.0\n    test 1756 R: 1.600000\n    test 1757 d: 91.673247\n    test 1758 n: 0.0\n    test 1759 D: 163.000000\n    test 1760 r: 2.844887\n    test 1761 n: 0.0\n    test 1762 R: 1.630000\n    test 1763 d: 93.392121\n    test 1764 n: 0.0\n    test 1765 D: 166.000000\n    test 1766 r: 2.897247\n    test 1767 n: 0.0\n    test 1768 R: 1.660000\n    test 1769 d: 95.110994\n    test 1770 n: 0.0\n    test 1771 D: 169.000000\n    test 1772 r: 2.949606\n    test 1773 n: 0.0\n    test 1774 R: 1.690000\n    test 1775 d: 96.829867\n    test 1776 n: 0.0\n    test 1777 D: 172.000000\n    test 1778 r: 3.001966\n    test 1779 n: 0.0\n    test 1780 R: 1.720000\n    test 1781 d: 98.548741\n    test 1782 n: 0.0\n    test 1783 D: 175.000000\n    test 1784 r: 3.054326\n    test 1785 n: 0.0\n    test 1786 R: 1.750000\n    test 1787 d: 100.267614\n    test 1788 n: 0.0\n    test 1789 D: 178.000000\n    test 1790 r: 3.106686\n    test 1791 n: 0.0\n    test 1792 R: 1.780000\n    test 1793 d: 101.986488\n    test 1794 n: 0.0\n    test 1795 D: 181.000000\n    test 1796 r: 3.159046\n    test 1797 n: 1.0\n    test 1798 R: 1.810000\n    test 1799 d: 103.705361\n    test 1800 n: 0.0\n    test 1801 D: 184.000000\n    test 1802 r: 3.211406\n    test 1803 n: 1.0\n    test 1804 R: 1.840000\n    test 1805 d: 105.424234\n    test 1806 n: 0.0\n    test 1807 D: 187.000000\n    test 1808 r: 3.263766\n    test 1809 n: 1.0\n    test 1810 R: 1.870000\n    test 1811 d: 107.143108\n    test 1812 n: 0.0\n    test 1813 D: 190.000000\n    test 1814 r: 3.316126\n    test 1815 n: 1.0\n    test 1816 R: 1.900000\n    test 1817 d: 108.861981\n    test 1818 n: 0.0\n    test 1819 D: 193.000000\n    test 1820 r: 3.368485\n    test 1821 n: 1.0\n    test 1822 R: 1.930000\n    test 1823 d: 110.580854\n    test 1824 n: 0.0\n    test 1825 D: 196.000000\n    test 1826 r: 3.420845\n    test 1827 n: 1.0\n    test 1828 R: 1.960000\n    test 1829 d: 112.299728\n    test 1830 n: 0.0\n    test 1831 D: 199.000000\n    test 1832 r: 3.473205\n    test 1833 n: 1.0\n    test 1834 R: 1.990000\n    test 1835 d: 114.018601\n    test 1836 n: 0.0\n    test 1837 D: 202.000000\n    test 1838 r: 3.525565\n    test 1839 n: 1.0\n    test 1840 R: 2.020000\n    test 1841 d: 115.737475\n    test 1842 n: 0.0\n    test 1843 D: 205.000000\n    test 1844 r: 3.577925\n    test 1845 n: 1.0\n    test 1846 R: 2.050000\n    test 1847 d: 117.456348\n    test 1848 n: 0.0\n    test 1849 D: 208.000000\n    test 1850 r: 3.630285\n    test 1851 n: 1.0\n    test 1852 R: 2.080000\n    test 1853 d: 119.175221\n    test 1854 n: 0.0\n    test 1855 D: 211.000000\n    test 1856 r: 3.682645\n    test 1857 n: 1.0\n    test 1858 R: 2.110000\n    test 1859 d: 120.894095\n    test 1860 n: 0.0\n    test 1861 D: 214.000000\n    test 1862 r: 3.735005\n    test 1863 n: 1.0\n    test 1864 R: 2.140000\n    test 1865 d: 122.612968\n    test 1866 n: 0.0\n    test 1867 D: 217.000000\n    test 1868 r: 3.787364\n    test 1869 n: 1.0\n    test 1870 R: 2.170000\n    test 1871 d: 124.331842\n    test 1872 n: 0.0\n    test 1873 D: 220.000000\n    test 1874 r: 3.839724\n    test 1875 n: 1.0\n    test 1876 R: 2.200000\n    test 1877 d: 126.050715\n    test 1878 n: 0.0\n    test 1879 D: 223.000000\n    test 1880 r: 3.892084\n    test 1881 n: 1.0\n    test 1882 R: 2.230000\n    test 1883 d: 127.769588\n    test 1884 n: 0.0\n    test 1885 D: 226.000000\n    test 1886 r: 3.944444\n    test 1887 n: 1.0\n    test 1888 R: 2.260000\n    test 1889 d: 129.488462\n    test 1890 n: 0.0\n    test 1891 D: 229.000000\n    test 1892 r: 3.996804\n    test 1893 n: 1.0\n    test 1894 R: 2.290000\n    test 1895 d: 131.207335\n    test 1896 n: 0.0\n    test 1897 D: 232.000000\n    test 1898 r: 4.049164\n    test 1899 n: 1.0\n    test 1900 R: 2.320000\n    test 1901 d: 132.926208\n    test 1902 n: 0.0\n    test 1903 D: 235.000000\n    test 1904 r: 4.101524\n    test 1905 n: 1.0\n    test 1906 R: 2.350000\n    test 1907 d: 134.645082\n    test 1908 n: 0.0\n    test 1909 D: 238.000000\n    test 1910 r: 4.153884\n    test 1911 n: 1.0\n    test 1912 R: 2.380000\n    test 1913 d: 136.363955\n    test 1914 n: 0.0\n    test 1915 D: 241.000000\n    test 1916 r: 4.206243\n    test 1917 n: 1.0\n    test 1918 R: 2.410000\n    test 1919 d: 138.082829\n    test 1920 n: 0.0\n    test 1921 D: 244.000000\n    test 1922 r: 4.258603\n    test 1923 n: 1.0\n    test 1924 R: 2.440000\n    test 1925 d: 139.801702\n    test 1926 n: 0.0\n    test 1927 D: 247.000000\n    test 1928 r: 4.310963\n    test 1929 n: 1.0\n    test 1930 R: 2.470000\n    test 1931 d: 141.520575\n    test 1932 n: 0.0\n    test 1933 D: 250.000000\n    test 1934 r: 4.363323\n    test 1935 n: 1.0\n    test 1936 R: 2.500000\n    test 1937 d: 143.239449\n    test 1938 n: 0.0\n    test 1939 D: 253.000000\n    test 1940 r: 4.415683\n    test 1941 n: 1.0\n    test 1942 R: 2.530000\n    test 1943 d: 144.958322\n    test 1944 n: 0.0\n    test 1945 D: 256.000000\n    test 1946 r: 4.468043\n    test 1947 n: 1.0\n    test 1948 R: 2.560000\n    test 1949 d: 146.677196\n    test 1950 n: 0.0\n    test 1951 D: 259.000000\n    test 1952 r: 4.520403\n    test 1953 n: 1.0\n    test 1954 R: 2.590000\n    test 1955 d: 148.396069\n    test 1956 n: 0.0\n    test 1957 D: 262.000000\n    test 1958 r: 4.572763\n    test 1959 n: 1.0\n    test 1960 R: 2.620000\n    test 1961 d: 150.114942\n    test 1962 n: 0.0\n    test 1963 D: 265.000000\n    test 1964 r: 4.625123\n    test 1965 n: 1.0\n    test 1966 R: 2.650000\n    test 1967 d: 151.833816\n    test 1968 n: 0.0\n    test 1969 D: 268.000000\n    test 1970 r: 4.677482\n    test 1971 n: 1.0\n    test 1972 R: 2.680000\n    test 1973 d: 153.552689\n    test 1974 n: 0.0\n    test 1975 D: 271.000000\n    test 1976 r: 4.729842\n    test 1977 n: 1.0\n    test 1978 R: 2.710000\n    test 1979 d: 155.271562\n    test 1980 n: 0.0\n    test 1981 D: 274.000000\n    test 1982 r: 4.782202\n    test 1983 n: 1.0\n    test 1984 R: 2.740000\n    test 1985 d: 156.990436\n    test 1986 n: 0.0\n    test 1987 D: 277.000000\n    test 1988 r: 4.834562\n    test 1989 n: 1.0\n    test 1990 R: 2.770000\n    test 1991 d: 158.709309\n    test 1992 n: 0.0\n    test 1993 D: 280.000000\n    test 1994 r: 4.886922\n    test 1995 n: 1.0\n    test 1996 R: 2.800000\n    test 1997 d: 160.428183\n    test 1998 n: 0.0\n    test 1999 D: 283.000000\n    test 2000 r: 4.939282\n    test 2001 n: 1.0\n    test 2002 R: 2.830000\n    test 2003 d: 162.147056\n    test 2004 n: 0.0\n    test 2005 D: 286.000000\n    test 2006 r: 4.991642\n    test 2007 n: 1.0\n    test 2008 R: 2.860000\n    test 2009 d: 163.865929\n    test 2010 n: 0.0\n    test 2011 D: 289.000000\n    test 2012 r: 5.044002\n    test 2013 n: 1.0\n    test 2014 R: 2.890000\n    test 2015 d: 165.584803\n    test 2016 n: 0.0\n    test 2017 D: 292.000000\n    test 2018 r: 5.096361\n    test 2019 n: 1.0\n    test 2020 R: 2.920000\n    test 2021 d: 167.303676\n    test 2022 n: 0.0\n    test 2023 D: 295.000000\n    test 2024 r: 5.148721\n    test 2025 n: 1.0\n    test 2026 R: 2.950000\n    test 2027 d: 169.022550\n    test 2028 n: 0.0\n    test 2029 D: 298.000000\n    test 2030 r: 5.201081\n    test 2031 n: 1.0\n    test 2032 R: 2.980000\n    test 2033 d: 170.741423\n    test 2034 n: 0.0\n    test 2035 D: 301.000000\n    test 2036 r: 5.253441\n    test 2037 n: 1.0\n    test 2038 R: 3.010000\n    test 2039 d: 172.460296\n    test 2040 n: 0.0\n    test 2041 D: 304.000000\n    test 2042 r: 5.305801\n    test 2043 n: 1.0\n    test 2044 R: 3.040000\n    test 2045 d: 174.179170\n    test 2046 n: 0.0\n    test 2047 D: 307.000000\n    test 2048 r: 5.358161\n    test 2049 n: 1.0\n    test 2050 R: 3.070000\n    test 2051 d: 175.898043\n    test 2052 n: 0.0\n    test 2053 D: 310.000000\n    test 2054 r: 5.410521\n    test 2055 n: 1.0\n    test 2056 R: 3.100000\n    test 2057 d: 177.616916\n    test 2058 n: 0.0\n    test 2059 D: 313.000000\n    test 2060 r: 5.462881\n    test 2061 n: 1.0\n    test 2062 R: 3.130000\n    test 2063 d: 179.335790\n    test 2064 n: 0.0\n    test 2065 D: 316.000000\n    test 2066 r: 5.515240\n    test 2067 n: 1.0\n    test 2068 R: 3.160000\n    test 2069 d: 181.054663\n    test 2070 n: 1.0\n    test 2071 D: 319.000000\n    test 2072 r: 5.567600\n    test 2073 n: 1.0\n    test 2074 R: 3.190000\n    test 2075 d: 182.773537\n    test 2076 n: 1.0\n    test 2077 D: 322.000000\n    test 2078 r: 5.619960\n    test 2079 n: 1.0\n    test 2080 R: 3.220000\n    test 2081 d: 184.492410\n    test 2082 n: 1.0\n    test 2083 D: 325.000000\n    test 2084 r: 5.672320\n    test 2085 n: 1.0\n    test 2086 R: 3.250000\n    test 2087 d: 186.211283\n    test 2088 n: 1.0\n    test 2089 D: 328.000000\n    test 2090 r: 5.724680\n    test 2091 n: 1.0\n    test 2092 R: 3.280000\n    test 2093 d: 187.930157\n    test 2094 n: 1.0\n    test 2095 D: 331.000000\n    test 2096 r: 5.777040\n    test 2097 n: 1.0\n    test 2098 R: 3.310000\n    test 2099 d: 189.649030\n    test 2100 n: 1.0\n    test 2101 D: 334.000000\n    test 2102 r: 5.829400\n    test 2103 n: 1.0\n    test 2104 R: 3.340000\n    test 2105 d: 191.367904\n    test 2106 n: 1.0\n    test 2107 D: 337.000000\n    test 2108 r: 5.881760\n    test 2109 n: 1.0\n    test 2110 R: 3.370000\n    test 2111 d: 193.086777\n    test 2112 n: 1.0\n    test 2113 D: 340.000000\n    test 2114 r: 5.934119\n    test 2115 n: 1.0\n    test 2116 R: 3.400000\n    test 2117 d: 194.805650\n    test 2118 n: 1.0\n    test 2119 D: 343.000000\n    test 2120 r: 5.986479\n    test 2121 n: 1.0\n    test 2122 R: 3.430000\n    test 2123 d: 196.524524\n    test 2124 n: 1.0\n    test 2125 D: 346.000000\n    test 2126 r: 6.038839\n    test 2127 n: 1.0\n    test 2128 R: 3.460000\n    test 2129 d: 198.243397\n    test 2130 n: 1.0\n    test 2131 D: 349.000000\n    test 2132 r: 6.091199\n    test 2133 n: 1.0\n    test 2134 R: 3.490000\n    test 2135 d: 199.962271\n    test 2136 n: 1.0\n    test 2137 D: 352.000000\n    test 2138 r: 6.143559\n    test 2139 n: 1.0\n    test 2140 R: 3.520000\n    test 2141 d: 201.681144\n    test 2142 n: 1.0\n    test 2143 D: 355.000000\n    test 2144 r: 6.195919\n    test 2145 n: 1.0\n    test 2146 R: 3.550000\n    test 2147 d: 203.400017\n    test 2148 n: 1.0\n    test 2149 D: 358.000000\n    test 2150 r: 6.248279\n    test 2151 n: 1.0\n    test 2152 R: 3.580000\n    test 2153 d: 205.118891\n    test 2154 n: 1.0\n    test 2155 D: 361.000000\n    test 2156 r: 6.300639\n    test 2157 n: 1.0\n    test 2158 R: 3.610000\n    test 2159 d: 206.837764\n    test 2160 n: 1.0\n    test 2161 D: 364.000000\n    test 2162 r: 6.352998\n    test 2163 n: 1.0\n    test 2164 R: 3.640000\n    test 2165 d: 208.556637\n    test 2166 n: 1.0\n    test 2167 D: 367.000000\n    test 2168 r: 6.405358\n    test 2169 n: 1.0\n    test 2170 R: 3.670000\n    test 2171 d: 210.275511\n    test 2172 n: 1.0\n    test 2173 D: 370.000000\n    test 2174 r: 6.457718\n    test 2175 n: 1.0\n    test 2176 R: 3.700000\n    test 2177 d: 211.994384\n    test 2178 n: 1.0\n    test 2179 D: 373.000000\n    test 2180 r: 6.510078\n    test 2181 n: 1.0\n    test 2182 R: 3.730000\n    test 2183 d: 213.713258\n    test 2184 n: 1.0\n    test 2185 D: 376.000000\n    test 2186 r: 6.562438\n    test 2187 n: 1.0\n    test 2188 R: 3.760000\n    test 2189 d: 215.432131\n    test 2190 n: 1.0\n    test 2191 D: 379.000000\n    test 2192 r: 6.614798\n    test 2193 n: 1.0\n    test 2194 R: 3.790000\n    test 2195 d: 217.151004\n    test 2196 n: 1.0\n    test 2197 D: 382.000000\n    test 2198 r: 6.667158\n    test 2199 n: 1.0\n    test 2200 R: 3.820000\n    test 2201 d: 218.869878\n    test 2202 n: 1.0\n    test 2203 D: 385.000000\n    test 2204 r: 6.719518\n    test 2205 n: 1.0\n    test 2206 R: 3.850000\n    test 2207 d: 220.588751\n    test 2208 n: 1.0\n    test 2209 D: 388.000000\n    test 2210 r: 6.771877\n    test 2211 n: 1.0\n    test 2212 R: 3.880000\n    test 2213 d: 222.307625\n    test 2214 n: 1.0\n    test 2215 D: 391.000000\n    test 2216 r: 6.824237\n    test 2217 n: 1.0\n    test 2218 R: 3.910000\n    test 2219 d: 224.026498\n    test 2220 n: 1.0\n    test 2221 D: 394.000000\n    test 2222 r: 6.876597\n    test 2223 n: 1.0\n    test 2224 R: 3.940000\n    test 2225 d: 225.745371\n    test 2226 n: 1.0\n    test 2227 D: 397.000000\n    test 2228 r: 6.928957\n    test 2229 n: 1.0\n    test 2230 R: 3.970000\n    test 2231 d: 227.464245\n    test 2232 n: 1.0\n    test 2233 D: 400.000000\n    test 2234 r: 6.981317\n    test 2235 n: 1.0\n    test 2236 R: 4.000000\n    test 2237 d: 229.183118\n    test 2238 n: 1.0\n    test 2239 D: 403.000000\n    test 2240 r: 7.033677\n    test 2241 n: 1.0\n    test 2242 R: 4.030000\n    test 2243 d: 230.901991\n    test 2244 n: 1.0\n    test 2245 D: 406.000000\n    test 2246 r: 7.086037\n    test 2247 n: 1.0\n    test 2248 R: 4.060000\n    test 2249 d: 232.620865\n    test 2250 n: 1.0\n    test 2251 D: 409.000000\n    test 2252 r: 7.138397\n    test 2253 n: 1.0\n    test 2254 R: 4.090000\n    test 2255 d: 234.339738\n    test 2256 n: 1.0\n    test 2257 D: 412.000000\n    test 2258 r: 7.190757\n    test 2259 n: 1.0\n    test 2260 R: 4.120000\n    test 2261 d: 236.058612\n    test 2262 n: 1.0\n    test 2263 D: 415.000000\n    test 2264 r: 7.243116\n    test 2265 n: 1.0\n    test 2266 R: 4.150000\n    test 2267 d: 237.777485\n    test 2268 n: 1.0\n    test 2269 D: 418.000000\n    test 2270 r: 7.295476\n    test 2271 n: 1.0\n    test 2272 R: 4.180000\n    test 2273 d: 239.496358\n    test 2274 n: 1.0\n    test 2275 D: 421.000000\n    test 2276 r: 7.347836\n    test 2277 n: 1.0\n    test 2278 R: 4.210000\n    test 2279 d: 241.215232\n    test 2280 n: 1.0\n    test 2281 D: 424.000000\n    test 2282 r: 7.400196\n    test 2283 n: 1.0\n    test 2284 R: 4.240000\n    test 2285 d: 242.934105\n    test 2286 n: 1.0\n    test 2287 D: 427.000000\n    test 2288 r: 7.452556\n    test 2289 n: 1.0\n    test 2290 R: 4.270000\n    test 2291 d: 244.652979\n    test 2292 n: 1.0\n    test 2293 D: 430.000000\n    test 2294 r: 7.504916\n    test 2295 n: 1.0\n    test 2296 R: 4.300000\n    test 2297 d: 246.371852\n    test 2298 n: 1.0\n    test 2299 D: 433.000000\n    test 2300 r: 7.557276\n    test 2301 n: 1.0\n    test 2302 R: 4.330000\n    test 2303 d: 248.090725\n    test 2304 n: 1.0\n    test 2305 D: 436.000000\n    test 2306 r: 7.609636\n    test 2307 n: 1.0\n    test 2308 R: 4.360000\n    test 2309 d: 249.809599\n    test 2310 n: 1.0\n    test 2311 D: 439.000000\n    test 2312 r: 7.661995\n    test 2313 n: 1.0\n    test 2314 R: 4.390000\n    test 2315 d: 251.528472\n    test 2316 n: 1.0\n    test 2317 D: 442.000000\n    test 2318 r: 7.714355\n    test 2319 n: 1.0\n    test 2320 R: 4.420000\n    test 2321 d: 253.247345\n    test 2322 n: 1.0\n    test 2323 D: 445.000000\n    test 2324 r: 7.766715\n    test 2325 n: 1.0\n    test 2326 R: 4.450000\n    test 2327 d: 254.966219\n    test 2328 n: 1.0\n    test 2329 D: 448.000000\n    test 2330 r: 7.819075\n    test 2331 n: 1.0\n    test 2332 R: 4.480000\n    test 2333 d: 256.685092\n    test 2334 n: 1.0\n    test 2335 D: 451.000000\n    test 2336 r: 7.871435\n    test 2337 n: 1.0\n    test 2338 R: 4.510000\n    test 2339 d: 258.403966\n    test 2340 n: 1.0\n    test 2341 D: 454.000000\n    test 2342 r: 7.923795\n    test 2343 n: 1.0\n    test 2344 R: 4.540000\n    test 2345 d: 260.122839\n    test 2346 n: 1.0\n    test 2347 D: 457.000000\n    test 2348 r: 7.976155\n    test 2349 n: 1.0\n    test 2350 R: 4.570000\n    test 2351 d: 261.841712\n    test 2352 n: 1.0\n    test 2353 D: 460.000000\n    test 2354 r: 8.028515\n    test 2355 n: 1.0\n    test 2356 R: 4.600000\n    test 2357 d: 263.560586\n    test 2358 n: 1.0\n    test 2359 D: 463.000000\n    test 2360 r: 8.080874\n    test 2361 n: 1.0\n    test 2362 R: 4.630000\n    test 2363 d: 265.279459\n    test 2364 n: 1.0\n    test 2365 D: 466.000000\n    test 2366 r: 8.133234\n    test 2367 n: 1.0\n    test 2368 R: 4.660000\n    test 2369 d: 266.998333\n    test 2370 n: 1.0\n    test 2371 D: 469.000000\n    test 2372 r: 8.185594\n    test 2373 n: 1.0\n    test 2374 R: 4.690000\n    test 2375 d: 268.717206\n    test 2376 n: 1.0\n    test 2377 D: 472.000000\n    test 2378 r: 8.237954\n    test 2379 n: 1.0\n    test 2380 R: 4.720000\n    test 2381 d: 270.436079\n    test 2382 n: 1.0\n    test 2383 D: 475.000000\n    test 2384 r: 8.290314\n    test 2385 n: 1.0\n    test 2386 R: 4.750000\n    test 2387 d: 272.154953\n    test 2388 n: 1.0\n    test 2389 D: 478.000000\n    test 2390 r: 8.342674\n    test 2391 n: 1.0\n    test 2392 R: 4.780000\n    test 2393 d: 273.873826\n    test 2394 n: 1.0\n    test 2395 D: 481.000000\n    test 2396 r: 8.395034\n    test 2397 n: 1.0\n    test 2398 R: 4.810000\n    test 2399 d: 275.592699\n    test 2400 n: 1.0\n    test 2401 D: 484.000000\n    test 2402 r: 8.447394\n    test 2403 n: 1.0\n    test 2404 R: 4.840000\n    test 2405 d: 277.311573\n    test 2406 n: 1.0\n    test 2407 D: 487.000000\n    test 2408 r: 8.499753\n    test 2409 n: 1.0\n    test 2410 R: 4.870000\n    test 2411 d: 279.030446\n    test 2412 n: 1.0\n    test 2413 D: 490.000000\n    test 2414 r: 8.552113\n    test 2415 n: 1.0\n    test 2416 R: 4.900000\n    test 2417 d: 280.749320\n    test 2418 n: 1.0\n    test 2419 D: 493.000000\n    test 2420 r: 8.604473\n    test 2421 n: 1.0\n    test 2422 R: 4.930000\n    test 2423 d: 282.468193\n    test 2424 n: 1.0\n    test 2425 D: 496.000000\n    test 2426 r: 8.656833\n    test 2427 n: 1.0\n    test 2428 R: 4.960000\n    test 2429 d: 284.187066\n    test 2430 n: 1.0\n    test 2431 D: 499.000000\n    test 2432 r: 8.709193\n    test 2433 n: 1.0\n    test 2434 R: 4.990000\n    test 2435 d: 285.905940\n    test 2436 n: 1.0\n    test 2437 D: 502.000000\n    test 2438 r: 8.761553\n    test 2439 n: 1.0\n    test 2440 R: 5.020000\n    test 2441 d: 287.624813\n    test 2442 n: 1.0\n    test 2443 D: 505.000000\n    test 2444 r: 8.813913\n    test 2445 n: 1.0\n    test 2446 R: 5.050000\n    test 2447 d: 289.343687\n    test 2448 n: 1.0\n    test 2449 D: 508.000000\n    test 2450 r: 8.866273\n    test 2451 n: 1.0\n    test 2452 R: 5.080000\n    test 2453 d: 291.062560\n    test 2454 n: 1.0\n    test 2455 D: 511.000000\n    test 2456 r: 8.918632\n    test 2457 n: 1.0\n    test 2458 R: 5.110000\n    test 2459 d: 292.781433\n    test 2460 n: 1.0\n    test 2461 D: 514.000000\n    test 2462 r: 8.970992\n    test 2463 n: 1.0\n    test 2464 R: 5.140000\n    test 2465 d: 294.500307\n    test 2466 n: 1.0\n    test 2467 D: 517.000000\n    test 2468 r: 9.023352\n    test 2469 n: 1.0\n    test 2470 R: 5.170000\n    test 2471 d: 296.219180\n    test 2472 n: 1.0\n    test 2473 D: 520.000000\n    test 2474 r: 9.075712\n    test 2475 n: 1.0\n    test 2476 R: 5.200000\n    test 2477 d: 297.938053\n    test 2478 n: 1.0\n    test 2479 D: 523.000000\n    test 2480 r: 9.128072\n    test 2481 n: 1.0\n    test 2482 R: 5.230000\n    test 2483 d: 299.656927\n    test 2484 n: 1.0\n    test 2485 D: 526.000000\n    test 2486 r: 9.180432\n    test 2487 n: 1.0\n    test 2488 R: 5.260000\n    test 2489 d: 301.375800\n    test 2490 n: 1.0\n    test 2491 D: 529.000000\n    test 2492 r: 9.232792\n    test 2493 n: 1.0\n    test 2494 R: 5.290000\n    test 2495 d: 303.094674\n    test 2496 n: 1.0\n    test 2497 D: 532.000000\n    test 2498 r: 9.285152\n    test 2499 n: 1.0\n    test 2500 R: 5.320000\n    test 2501 d: 304.813547\n    test 2502 n: 1.0\n    test 2503 D: 535.000000\n    test 2504 r: 9.337511\n    test 2505 n: 1.0\n    test 2506 R: 5.350000\n    test 2507 d: 306.532420\n    test 2508 n: 1.0\n    test 2509 D: 538.000000\n    test 2510 r: 9.389871\n    test 2511 n: 1.0\n    test 2512 R: 5.380000\n    test 2513 d: 308.251294\n    test 2514 n: 1.0\n    test 2515 D: 541.000000\n    test 2516 r: 9.442231\n    test 2517 n: 2.0\n    test 2518 R: 5.410000\n    test 2519 d: 309.970167\n    test 2520 n: 1.0\n    test 2521 D: 544.000000\n    test 2522 r: 9.494591\n    test 2523 n: 2.0\n    test 2524 R: 5.440000\n    test 2525 d: 311.689041\n    test 2526 n: 1.0\n    test 2527 D: 547.000000\n    test 2528 r: 9.546951\n    test 2529 n: 2.0\n    test 2530 R: 5.470000\n    test 2531 d: 313.407914\n    test 2532 n: 1.0\n    test 2533 D: 550.000000\n    test 2534 r: 9.599311\n    test 2535 n: 2.0\n    test 2536 R: 5.500000\n    test 2537 d: 315.126787\n    test 2538 n: 1.0\n    test 2539 D: 553.000000\n    test 2540 r: 9.651671\n    test 2541 n: 2.0\n    test 2542 R: 5.530000\n    test 2543 d: 316.845661\n    test 2544 n: 1.0\n    test 2545 D: 556.000000\n    test 2546 r: 9.704031\n    test 2547 n: 2.0\n    test 2548 R: 5.560000\n    test 2549 d: 318.564534\n    test 2550 n: 1.0\n    test 2551 D: 559.000000\n    test 2552 r: 9.756391\n    test 2553 n: 2.0\n    test 2554 R: 5.590000\n    test 2555 d: 320.283407\n    test 2556 n: 1.0\n    test 2557 D: 562.000000\n    test 2558 r: 9.808750\n    test 2559 n: 2.0\n    test 2560 R: 5.620000\n    test 2561 d: 322.002281\n    test 2562 n: 1.0\n    test 2563 D: 565.000000\n    test 2564 r: 9.861110\n    test 2565 n: 2.0\n    test 2566 R: 5.650000\n    test 2567 d: 323.721154\n    test 2568 n: 1.0\n    test 2569 D: 568.000000\n    test 2570 r: 9.913470\n    test 2571 n: 2.0\n    test 2572 R: 5.680000\n    test 2573 d: 325.440028\n    test 2574 n: 1.0\n    test 2575 D: 571.000000\n    test 2576 r: 9.965830\n    test 2577 n: 2.0\n    test 2578 R: 5.710000\n    test 2579 d: 327.158901\n    test 2580 n: 1.0\n    test 2581 D: 574.000000\n    test 2582 r: 10.018190\n    test 2583 n: 2.0\n    test 2584 R: 5.740000\n    test 2585 d: 328.877774\n    test 2586 n: 1.0\n    test 2587 D: 577.000000\n    test 2588 r: 10.070550\n    test 2589 n: 2.0\n    test 2590 R: 5.770000\n    test 2591 d: 330.596648\n    test 2592 n: 1.0\n    test 2593 D: 580.000000\n    test 2594 r: 10.122910\n    test 2595 n: 2.0\n    test 2596 R: 5.800000\n    test 2597 d: 332.315521\n    test 2598 n: 1.0\n    test 2599 D: 583.000000\n    test 2600 r: 10.175270\n    test 2601 n: 2.0\n    test 2602 R: 5.830000\n    test 2603 d: 334.034395\n    test 2604 n: 1.0\n    test 2605 D: 586.000000\n    test 2606 r: 10.227629\n    test 2607 n: 2.0\n    test 2608 R: 5.860000\n    test 2609 d: 335.753268\n    test 2610 n: 1.0\n    test 2611 D: 589.000000\n    test 2612 r: 10.279989\n    test 2613 n: 2.0\n    test 2614 R: 5.890000\n    test 2615 d: 337.472141\n    test 2616 n: 1.0\n    test 2617 D: 592.000000\n    test 2618 r: 10.332349\n    test 2619 n: 2.0\n    test 2620 R: 5.920000\n    test 2621 d: 339.191015\n    test 2622 n: 1.0\n    test 2623 D: 595.000000\n    test 2624 r: 10.384709\n    test 2625 n: 2.0\n    test 2626 R: 5.950000\n    test 2627 d: 340.909888\n    test 2628 n: 1.0\n    test 2629 D: 598.000000\n    test 2630 r: 10.437069\n    test 2631 n: 2.0\n    test 2632 R: 5.980000\n    test 2633 d: 342.628761\n    test 2634 n: 1.0\n    test 2635 D: 601.000000\n    test 2636 r: 10.489429\n    test 2637 n: 2.0\n    test 2638 R: 6.010000\n    test 2639 d: 344.347635\n    test 2640 n: 1.0\n    test 2641 D: 604.000000\n    test 2642 r: 10.541789\n    test 2643 n: 2.0\n    test 2644 R: 6.040000\n    test 2645 d: 346.066508\n    test 2646 n: 1.0\n    test 2647 D: 607.000000\n    test 2648 r: 10.594149\n    test 2649 n: 2.0\n    test 2650 R: 6.070000\n    test 2651 d: 347.785382\n    test 2652 n: 1.0\n    test 2653 D: 610.000000\n    test 2654 r: 10.646508\n    test 2655 n: 2.0\n    test 2656 R: 6.100000\n    test 2657 d: 349.504255\n    test 2658 n: 1.0\n    test 2659 D: 613.000000\n    test 2660 r: 10.698868\n    test 2661 n: 2.0\n    test 2662 R: 6.130000\n    test 2663 d: 351.223128\n    test 2664 n: 1.0\n    test 2665 D: 616.000000\n    test 2666 r: 10.751228\n    test 2667 n: 2.0\n    test 2668 R: 6.160000\n    test 2669 d: 352.942002\n    test 2670 n: 1.0\n    test 2671 D: 619.000000\n    test 2672 r: 10.803588\n    test 2673 n: 2.0\n    test 2674 R: 6.190000\n    test 2675 d: 354.660875\n    test 2676 n: 1.0\n    test 2677 D: 622.000000\n    test 2678 r: 10.855948\n    test 2679 n: 2.0\n    test 2680 R: 6.220000\n    test 2681 d: 356.379749\n    test 2682 n: 1.0\n    test 2683 D: 625.000000\n    test 2684 r: 10.908308\n    test 2685 n: 2.0\n    test 2686 R: 6.250000\n    test 2687 d: 358.098622\n    test 2688 n: 1.0\n    test 2689 D: 628.000000\n    test 2690 r: 10.960668\n    test 2691 n: 2.0\n    test 2692 R: 6.280000\n    test 2693 d: 359.817495\n    test 2694 n: 1.0\n    test 2695 D: 631.000000\n    test 2696 r: 11.013028\n    test 2697 n: 2.0\n    test 2698 R: 6.310000\n    test 2699 d: 361.536369\n    test 2700 n: 1.0\n    test 2701 D: 634.000000\n    test 2702 r: 11.065387\n    test 2703 n: 2.0\n    test 2704 R: 6.340000\n    test 2705 d: 363.255242\n    test 2706 n: 1.0\n    test 2707 D: 637.000000\n    test 2708 r: 11.117747\n    test 2709 n: 2.0\n    test 2710 R: 6.370000\n    test 2711 d: 364.974115\n    test 2712 n: 1.0\n    test 2713 D: 640.000000\n    test 2714 r: 11.170107\n    test 2715 n: 2.0\n    test 2716 R: 6.400000\n    test 2717 d: 366.692989\n    test 2718 n: 1.0\n    test 2719 D: 643.000000\n    test 2720 r: 11.222467\n    test 2721 n: 2.0\n    test 2722 R: 6.430000\n    test 2723 d: 368.411862\n    test 2724 n: 1.0\n    test 2725 D: 646.000000\n    test 2726 r: 11.274827\n    test 2727 n: 2.0\n    test 2728 R: 6.460000\n    test 2729 d: 370.130736\n    test 2730 n: 1.0\n    test 2731 D: 649.000000\n    test 2732 r: 11.327187\n    test 2733 n: 2.0\n    test 2734 R: 6.490000\n    test 2735 d: 371.849609\n    test 2736 n: 1.0\n    test 2737 D: 652.000000\n    test 2738 r: 11.379547\n    test 2739 n: 2.0\n    test 2740 R: 6.520000\n    test 2741 d: 373.568482\n    test 2742 n: 1.0\n    test 2743 D: 655.000000\n    test 2744 r: 11.431907\n    test 2745 n: 2.0\n    test 2746 R: 6.550000\n    test 2747 d: 375.287356\n    test 2748 n: 1.0\n    test 2749 D: 658.000000\n    test 2750 r: 11.484266\n    test 2751 n: 2.0\n    test 2752 R: 6.580000\n    test 2753 d: 377.006229\n    test 2754 n: 1.0\n    test 2755 D: 661.000000\n    test 2756 r: 11.536626\n    test 2757 n: 2.0\n    test 2758 R: 6.610000\n    test 2759 d: 378.725103\n    test 2760 n: 1.0\n    test 2761 D: 664.000000\n    test 2762 r: 11.588986\n    test 2763 n: 2.0\n    test 2764 R: 6.640000\n    test 2765 d: 380.443976\n    test 2766 n: 1.0\n    test 2767 D: 667.000000\n    test 2768 r: 11.641346\n    test 2769 n: 2.0\n    test 2770 R: 6.670000\n    test 2771 d: 382.162849\n    test 2772 n: 1.0\n    test 2773 D: 670.000000\n    test 2774 r: 11.693706\n    test 2775 n: 2.0\n    test 2776 R: 6.700000\n    test 2777 d: 383.881723\n    test 2778 n: 1.0\n    test 2779 D: 673.000000\n    test 2780 r: 11.746066\n    test 2781 n: 2.0\n    test 2782 R: 6.730000\n    test 2783 d: 385.600596\n    test 2784 n: 1.0\n    test 2785 D: 676.000000\n    test 2786 r: 11.798426\n    test 2787 n: 2.0\n    test 2788 R: 6.760000\n    test 2789 d: 387.319470\n    test 2790 n: 1.0\n    test 2791 D: 679.000000\n    test 2792 r: 11.850786\n    test 2793 n: 2.0\n    test 2794 R: 6.790000\n    test 2795 d: 389.038343\n    test 2796 n: 1.0\n    test 2797 D: 682.000000\n    test 2798 r: 11.903145\n    test 2799 n: 2.0\n    test 2800 R: 6.820000\n    test 2801 d: 390.757216\n    test 2802 n: 1.0\n    test 2803 D: 685.000000\n    test 2804 r: 11.955505\n    test 2805 n: 2.0\n    test 2806 R: 6.850000\n    test 2807 d: 392.476090\n    test 2808 n: 1.0\n    test 2809 D: 688.000000\n    test 2810 r: 12.007865\n    test 2811 n: 2.0\n    test 2812 R: 6.880000\n    test 2813 d: 394.194963\n    test 2814 n: 1.0\n    test 2815 D: 691.000000\n    test 2816 r: 12.060225\n    test 2817 n: 2.0\n    test 2818 R: 6.910000\n    test 2819 d: 395.913836\n    test 2820 n: 1.0\n    test 2821 D: 694.000000\n    test 2822 r: 12.112585\n    test 2823 n: 2.0\n    test 2824 R: 6.940000\n    test 2825 d: 397.632710\n    test 2826 n: 1.0\n    test 2827 D: 697.000000\n    test 2828 r: 12.164945\n    test 2829 n: 2.0\n    test 2830 R: 6.970000\n    test 2831 d: 399.351583\n    test 2832 n: 1.0\n    test 2833 D: 700.000000\n    test 2834 r: 12.217305\n    test 2835 n: 2.0\n    test 2836 R: 7.000000\n    test 2837 d: 401.070457\n    test 2838 n: 1.0\n    test 2839 D: 703.000000\n    test 2840 r: 12.269665\n    test 2841 n: 2.0\n    test 2842 R: 7.030000\n    test 2843 d: 402.789330\n    test 2844 n: 1.0\n    test 2845 D: 706.000000\n    test 2846 r: 12.322025\n    test 2847 n: 2.0\n    test 2848 R: 7.060000\n    test 2849 d: 404.508203\n    test 2850 n: 1.0\n    test 2851 D: 709.000000\n    test 2852 r: 12.374384\n    test 2853 n: 2.0\n    test 2854 R: 7.090000\n    test 2855 d: 406.227077\n    test 2856 n: 1.0\n    test 2857 D: 712.000000\n    test 2858 r: 12.426744\n    test 2859 n: 2.0\n    test 2860 R: 7.120000\n    test 2861 d: 407.945950\n    test 2862 n: 1.0\n    test 2863 D: 715.000000\n    test 2864 r: 12.479104\n    test 2865 n: 2.0\n    test 2866 R: 7.150000\n    test 2867 d: 409.664824\n    test 2868 n: 1.0\n\n    test 2869 radd: 32.0\n    test 2870 rdiv: 6.67e-02\n    test 2871 rmul: 60.0\n    test 2872 rpow: 1073741824.0\n    test 2873 rsub: -28.0\n\n    test 2874 R * 2: 4.0000\n    test 2875 R / 2: 2.0000\n    test 2876 R / R: True\n    test 2877 R / R: 1.0\n    test 2878 R / R: 2.0\n    test 2879 abs  : 2.0\n    test 2880 int  : 2\n    test 2881 eq R: True\n    test 2882 ge R: True\n    test 2883 gt R: False\n    test 2884 le R: True\n    test 2885 lt R: False\n    test 2886 ne R: False\n    test 2887 if R: True\n    test 2888 gt 0: True\n    test 2889 lt 0: False\n    test 2890 eq 0: False\n    test 2891 lt 0: True\n    test 2892 gt 0: True\n    test 2893 gt 0: False\n    test 2894 signOf: 1\n    test 2895 signOf: -1\n    test 2896 ceil : 3.0\n    test 2897 floor: 2.0\n\n    test 2898 divmod : (2.0, Radians(0.0))\n    test 2899 divmod : (2.0, Radians(0.0))\n    test 2900 rdivmod : (0.0, Radians(2.0))\n    test 2901 divmod : (-2.0, Radians(1.0))\n    test 2902 imod: 0.0\n    test 2903 mod : 0.0\n    test 2904 rmod: 2.0\n    test 2905 neg : -2.0\n    test 2906 pos : 2.0\n    test 2907 is_int: False\n    test 2908 float: 9e-102\n    test 2909 is_int: False\n    test 2910 round1: 0.0\n    test 2911 R //: -2.0\n    test 2912 // R: -2.0\n    test 2913 R //=: -2.0\n    test 2914 R / 0: ZeroDivisionError('float division by zero')\n\n    test 2915 pow(R, +): 0.0\n    test 2916 pow(R, -): 0.4767037\n    test 2917 pow(-R, R): TypeError('fromDegrees((1+2.8274333882308138e-101j))')  FAILED, KNOWN, expected TypeError\n    test 2918 pow(R, R): 1.0\n    test 2919 pow(R, f, i): TypeError('pow() 3rd argument not allowed unless all arguments are integers')\n    test 2920 pow(R, R, i): TypeError('fromDegrees(<Fsum[1] (2.1, 0) at 0x108acff50>)')\n    test 2921 pow(R, i, None): 4.0\n    test 2922 Z**-2: ZeroDivisionError('0.0 ** -2: 0.0 cannot be raised to a negative power')\n    test 2923 pow(0): 1.000\n    test 2924 pow(1): -3.000\n    test 2925 pow(2): 9.000\n    test 2926 pow(21): -10460353203.000\n    test 2927 pow(-5): -0.004\n    test 2928 **= 2: 9.000\n\n    test 2929 F0**0: 1.0\n    test 2930 F0**0.: 1.0\n    test 2931 0**F0: 1.0\n    test 2932 0.**F0: 1.0\n    test 2933 F0**0: 1.0\n    test 2934 F0**2: 0.0\n    test 2935 F0**0.: 1.0\n    test 2936 F0**3.: 0.0\n    test 2937 F0**0.: 1.0\n\n    test 2938 R**2: 3125.000\n    test 2939 R**-1: 0.200\n    test 2940 R**-2: 0.040\n    test 2941 R**-2.5: 0.018\n    test 2942 R** 2.5: 55.902\n    test 2943 pow(2): 25.000\n    test 2944 pow(2.5): 55.902\n    test 2945 pow(R): 3125.000\n    test 2946 3pow(2, None): 25.0\n    test 2947 3pow(2.5, None): 55.9017\n    test 2948 3pow(2, 20): 5\n    test 2949 x * x: 25.0\n    test 2950 x * R: 12.5\n    test 2951 x + R: 7.5\n    test 2952 x - R: 2.5\n\n    test 2953 abs(T): 0.0\n    test 2954 bool(T): True\n    test 2955 float(T): 2.220446049250313e-16\n    test 2956 int(T): 0\n    test 2957 -T: -0.0\n    test 2958 +T: 0.0\n\n    test 2959 R==T: False\n    test 2960 R>=T: True\n    test 2961 R> T: True\n    test 2962 R<=T: False\n    test 2963 R< T: False\n    test 2964 R!=T: True\n\n    test 2965 base: 61.0\n    test 2966 flipsign: -61.0\n    test 2967 lambertian: 1.3524048166735199\n    test 2968 fromScalar: 1.35240482\n    test 2969 n0: 61.0\n    test 2970 nearest: 90.0\n    test 2971 normalize: 61.0\n    test 2972 quadrant: 0\n    test 2973 reflect: 61.0\n    test 2974 round: 61.0\n    test 2975 shift: nan\n    test 2976 t: 1.8040477552714236\n    test 2977 toLambertian: 1.3524048166735199\n    test 2978 toTuple: 0.87462, 0.48481, 0.0\n\n    1 of 2978 testAngles.py tests (0.0%) FAILED, ALL KNOWN (pygeodesy 26.3.26 Python 3.11.9 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 1.24.2 scipy 1.10.1 Math 2 macOS 26.3.1 isLazy 0 -W  default) 41.303 ms\nrunning /usr/local/bin/p....n3.11 -W default ~/PyGeodesy/test/testAuxilats.py\n\n    testing testAuxilats.py 25.09.09 (module pygeodesy.auxilats 25.12.02)\n\n    test 1 Aux: 6\n\n    test 2 aout: 0\n    test 3 before: None\n    test 4 before: _Rtuple\n    test 5 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 6 before: _Rtuple\n    test 7 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 8 before: _Rtuple\n    test 9 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 10 before: _Rtuple\n    test 11 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 12 before: _Rtuple\n    test 13 after: tuple  FAILED, KNOWN, expected _Rtuple\n\n    test 14 aout: 1\n    test 15 before: _Rtuple\n    test 16 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 17 before: None\n    test 18 before: _Rtuple\n    test 19 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 20 before: _Rtuple\n    test 21 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 22 before: _Rtuple\n    test 23 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 24 before: _Rtuple\n    test 25 after: tuple  FAILED, KNOWN, expected _Rtuple\n\n    test 26 aout: 2\n    test 27 before: _Rtuple\n    test 28 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 29 before: _Rtuple\n    test 30 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 31 before: None\n    test 32 before: _Rtuple\n    test 33 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 34 before: _Rtuple\n    test 35 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 36 before: _Rtuple\n    test 37 after: tuple  FAILED, KNOWN, expected _Rtuple\n\n    test 38 aout: 3\n    test 39 before: _Rtuple\n    test 40 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 41 before: _Rtuple\n    test 42 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 43 before: _Rtuple\n    test 44 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 45 before: None\n    test 46 before: _Rtuple\n    test 47 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 48 before: _Rtuple\n    test 49 after: tuple  FAILED, KNOWN, expected _Rtuple\n\n    test 50 aout: 4\n    test 51 before: _Rtuple\n    test 52 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 53 before: _Rtuple\n    test 54 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 55 before: _Rtuple\n    test 56 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 57 before: _Rtuple\n    test 58 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 59 before: None\n    test 60 before: _Rtuple\n    test 61 after: tuple  FAILED, KNOWN, expected _Rtuple\n\n    test 62 aout: 5\n    test 63 before: _Rtuple\n    test 64 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 65 before: _Rtuple\n    test 66 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 67 before: _Rtuple\n    test 68 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 69 before: _Rtuple\n    test 70 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 71 before: _Rtuple\n    test 72 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 73 before: None\n\n    test 74 Aux: 4\n\n    test 75 aout: 0\n    test 76 Aux: 4\n    test 77 Aux: 4\n    test 78 Aux: 4\n    test 79 Aux: 4\n    test 80 Aux: 4\n    test 81 Aux: 4\n\n    test 82 aout: 1\n    test 83 Aux: 4\n    test 84 Aux: 4\n    test 85 Aux: 4\n    test 86 Aux: 4\n    test 87 Aux: 4\n    test 88 Aux: 4\n\n    test 89 aout: 2\n    test 90 Aux: 4\n    test 91 Aux: 4\n    test 92 Aux: 4\n    test 93 Aux: 4\n    test 94 Aux: 4\n    test 95 Aux: 4\n\n    test 96 aout: 3\n    test 97 Aux: 4\n    test 98 Aux: 4\n    test 99 Aux: 4\n    test 100 Aux: 4\n    test 101 Aux: 4\n    test 102 Aux: 4\n\n    test 103 aout: 4\n    test 104 Aux: 4\n    test 105 Aux: 4\n    test 106 Aux: 4\n    test 107 Aux: 4\n    test 108 Aux: 4\n    test 109 Aux: 4\n\n    test 110 aout: 5\n    test 111 Aux: 4\n    test 112 Aux: 4\n    test 113 Aux: 4\n    test 114 Aux: 4\n    test 115 Aux: 4\n    test 116 Aux: 4\n\n    test 117 Aux: 6\n\n    test 118 aout: 0\n    test 119 Aux: 6\n    test 120 Aux: 6\n    test 121 Aux: 6\n    test 122 Aux: 6\n    test 123 Aux: 6\n    test 124 Aux: 6\n\n    test 125 aout: 1\n    test 126 Aux: 6\n    test 127 Aux: 6\n    test 128 Aux: 6\n    test 129 Aux: 6\n    test 130 Aux: 6\n    test 131 Aux: 6\n\n    test 132 aout: 2\n    test 133 Aux: 6\n    test 134 Aux: 6\n    test 135 Aux: 6\n    test 136 Aux: 6\n    test 137 Aux: 6\n    test 138 Aux: 6\n\n    test 139 aout: 3\n    test 140 Aux: 6\n    test 141 Aux: 6\n    test 142 Aux: 6\n    test 143 Aux: 6\n    test 144 Aux: 6\n    test 145 Aux: 6\n\n    test 146 aout: 4\n    test 147 Aux: 6\n    test 148 Aux: 6\n    test 149 Aux: 6\n    test 150 Aux: 6\n    test 151 Aux: 6\n    test 152 Aux: 6\n\n    test 153 aout: 5\n    test 154 Aux: 6\n    test 155 Aux: 6\n    test 156 Aux: 6\n    test 157 Aux: 6\n    test 158 Aux: 6\n    test 159 Aux: 6\n\n    test 160 Aux: 8\n\n    test 161 aout: 0\n    test 162 Aux: 8\n    test 163 Aux: 8\n    test 164 Aux: 8\n    test 165 Aux: 8\n    test 166 Aux: 8\n    test 167 Aux: 8\n\n    test 168 aout: 1\n    test 169 Aux: 8\n    test 170 Aux: 8\n    test 171 Aux: 8\n    test 172 Aux: 8\n    test 173 Aux: 8\n    test 174 Aux: 8\n\n    test 175 aout: 2\n    test 176 Aux: 8\n    test 177 Aux: 8\n    test 178 Aux: 8\n    test 179 Aux: 8\n    test 180 Aux: 8\n    test 181 Aux: 8\n\n    test 182 aout: 3\n    test 183 Aux: 8\n    test 184 Aux: 8\n    test 185 Aux: 8\n    test 186 Aux: 8\n    test 187 Aux: 8\n    test 188 Aux: 8\n\n    test 189 aout: 4\n    test 190 Aux: 8\n    test 191 Aux: 8\n    test 192 Aux: 8\n    test 193 Aux: 8\n    test 194 Aux: 8\n    test 195 Aux: 8\n\n    test 196 aout: 5\n    test 197 Aux: 8\n    test 198 Aux: 8\n    test 199 Aux: 8\n    test 200 Aux: 8\n    test 201 Aux: 8\n    test 202 Aux: 8\n\n    test 203  0 0.000000000000 Phi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 204  0 0.000000000000 Beta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 205  0 0.000000000000 Theta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 206  0 0.000000000000 Mu(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 207  0 0.000000000000 Chi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 208  0 0.000000000000 Xi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n\n    test 209  0 0.000000000000 Phi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 210  0 0.000000000000 Beta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 211  0 0.000000000000 Theta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 212  0 0.000000000000 Mu(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 213  0 0.000000000000 Chi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 214  0 0.000000000000 Xi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n\n    test 215  7 7.023313832609 Phi(tan=0.123198, x=0.992546, y=0.122279): 0.122784560903\n    test 216  7 7.000000000000 Beta(tan=0.122785, x=0.992546, y=0.121869): 0.122784560903\n    test 217  7 6.976762016136 Theta(tan=0.122373, x=0.992546, y=0.121461): 0.122784560903\n    test 218  7 6.988357344130 Mu(tan=0.122578, x=0.992571, y=0.121668), iteration=2: 0.122784560903\n    test 219  7 6.976762787606 Chi(tan=0.122373, x=1.0, y=0.122373), iteration=3: 0.122784560903\n    test 220  7 6.992232010256 Xi(tan=0.122647, x=1.99404, y=0.244563), iteration=2: 0.122784560903\n\n    test 221  7 7.023313832609 Phi(tan=0.123198, x=0.992496, y=0.122273): 0.122784560903\n    test 222  7 7.000000000000 Beta(tan=0.122785, x=0.992546, y=0.121869): 0.122784560903\n    test 223  7 6.976762016136 Theta(tan=0.122373, x=0.992595, y=0.121467): 0.122784560903\n    test 224  7 6.988357344130 Mu(tan=0.122578, x=0.992571, y=0.121668): 0.122784560903\n    test 225  7 6.976762787606 Chi(tan=0.122373, x=0.992595, y=0.121467): 0.122784560903\n    test 226  7 6.992232010256 Xi(tan=0.122647, x=0.992563, y=0.121735): 0.122784560903\n\n    test 227 14 14.045235971490 Phi(tan=0.250167, x=0.970296, y=0.242736): 0.249328002843\n    test 228 14 14.000000000000 Beta(tan=0.249328, x=0.970296, y=0.241922): 0.249328002843\n    test 229 14 13.954897969322 Theta(tan=0.248492, x=0.970296, y=0.241111): 0.249328002843\n    test 230 14 13.977407191407 Mu(tan=0.248909, x=0.970391, y=0.241539), iteration=3: 0.249328002843\n    test 231 14 13.954903870195 Chi(tan=0.248492, x=1.0, y=0.248492), iteration=3: 0.249328002843\n    test 232 14 13.984926538790 Xi(tan=0.249049, x=1.94943, y=0.485503), iteration=3: 0.249328002843\n\n    test 233 14 14.045235971490 Phi(tan=0.250167, x=0.970104, y=0.242688): 0.249328002843\n    test 234 14 14.000000000000 Beta(tan=0.249328, x=0.970296, y=0.241922): 0.249328002843\n    test 235 14 13.954897969322 Theta(tan=0.248492, x=0.970486, y=0.241158): 0.249328002843\n    test 236 14 13.977407191407 Mu(tan=0.248909, x=0.970391, y=0.241539): 0.249328002843\n    test 237 14 13.954903870195 Chi(tan=0.248492, x=0.970486, y=0.241158): 0.249328002843\n    test 238 14 13.984926538790 Xi(tan=0.249049, x=0.970359, y=0.241667): 0.249328002843\n\n    test 239 21 21.064458966605 Phi(tan=0.385155, x=0.93358, y=0.359574): 0.383864035035\n    test 240 21 21.000000000000 Beta(tan=0.383864, x=0.93358, y=0.358368): 0.383864035035\n    test 241 21 20.935701709947 Theta(tan=0.382577, x=0.93358, y=0.357166): 0.383864035035\n    test 242 21 20.967800709613 Mu(tan=0.383219, x=0.933782, y=0.357843), iteration=2: 0.383864035035\n    test 243 21 20.935720172355 Chi(tan=0.382577, x=1.0, y=0.382577), iteration=3: 0.383864035035\n    test 244 21 20.978518383767 Xi(tan=0.383434, x=1.87581, y=0.719251), iteration=2: 0.383864035035\n\n    test 245 21 21.064458966605 Phi(tan=0.385155, x=0.933177, y=0.359418): 0.383864035035\n    test 246 21 21.000000000000 Beta(tan=0.383864, x=0.93358, y=0.358368): 0.383864035035\n    test 247 21 20.935701709947 Theta(tan=0.382577, x=0.933982, y=0.35732): 0.383864035035\n    test 248 21 20.967800709613 Mu(tan=0.383219, x=0.933782, y=0.357843): 0.383864035035\n    test 249 21 20.935720172355 Chi(tan=0.382577, x=0.933982, y=0.35732): 0.383864035035\n    test 250 21 20.978518383767 Xi(tan=0.383434, x=0.933715, y=0.358018): 0.383864035035\n\n    test 251 28 28.079838480095 Phi(tan=0.533498, x=0.882948, y=0.471051): 0.531709431661\n    test 252 28 28.000000000000 Beta(tan=0.531709, x=0.882948, y=0.469472): 0.531709431661\n    test 253 28 27.920311317014 Theta(tan=0.529927, x=0.882948, y=0.467898): 0.531709431661\n    test 254 28 27.960108897314 Mu(tan=0.530817, x=0.883274, y=0.468857), iteration=3: 0.531709431661\n    test 255 28 27.920350592883 Chi(tan=0.529928, x=1.0, y=0.529928), iteration=3: 0.531709431661\n    test 256 28 27.973388607066 Xi(tan=0.531114, x=1.77426, y=0.942335), iteration=2: 0.531709431661\n\n    test 257 28 28.079838480095 Phi(tan=0.533498, x=0.882293, y=0.470701): 0.531709431661\n    test 258 28 28.000000000000 Beta(tan=0.531709, x=0.882948, y=0.469472): 0.531709431661\n    test 259 28 27.920311317014 Theta(tan=0.529927, x=0.8836, y=0.468243): 0.531709431661\n    test 260 28 27.960108897314 Mu(tan=0.530817, x=0.883274, y=0.468857): 0.531709431661\n    test 261 28 27.920350592883 Chi(tan=0.529928, x=0.883599, y=0.468244): 0.531709431661\n    test 262 28 27.973388607066 Xi(tan=0.531114, x=0.883166, y=0.469061): 0.531709431661\n\n    test 263 35 35.090461812463 Phi(tan=0.702563, x=0.819152, y=0.575506): 0.700207538210\n    test 264 35 35.000000000000 Beta(tan=0.700208, x=0.819152, y=0.573576): 0.700207538210\n    test 265 35 34.909642037079 Theta(tan=0.69786, x=0.819152, y=0.571653): 0.700207538210\n    test 266 35 34.954788593575 Mu(tan=0.699032, x=0.819604, y=0.57293), iteration=3: 0.700207538210\n    test 267 35 34.909708526741 Chi(tan=0.697862, x=1.0, y=0.697862), iteration=3: 0.700207538210\n    test 268 35 34.969841811236 Xi(tan=0.699423, x=1.64627, y=1.15144), iteration=3: 0.700207538210\n\n    test 269 35 35.090461812463 Phi(tan=0.702563, x=0.818245, y=0.574869): 0.700207538210\n    test 270 35 35.000000000000 Beta(tan=0.700208, x=0.819152, y=0.573576): 0.700207538210\n    test 271 35 34.909642037079 Theta(tan=0.69786, x=0.820056, y=0.572284): 0.700207538210\n    test 272 35 34.954788593575 Mu(tan=0.699032, x=0.819604, y=0.57293): 0.700207538210\n    test 273 35 34.909708526741 Chi(tan=0.697862, x=0.820055, y=0.572285): 0.700207538210\n    test 274 35 34.969841811236 Xi(tan=0.699423, x=0.819454, y=0.573145): 0.700207538210\n\n    test 275 42 42.095701889505 Phi(tan=0.903433, x=0.743145, y=0.671382): 0.900404044298\n    test 276 42 42.000000000000 Beta(tan=0.900404, x=0.743145, y=0.669131): 0.900404044298\n    test 277 42 41.904331700939 Theta(tan=0.897385, x=0.743145, y=0.666887): 0.900404044298\n    test 278 42 41.952155366417 Mu(tan=0.898893, x=0.743703, y=0.66851), iteration=2: 0.900404044298\n    test 279 42 41.904427530254 Chi(tan=0.897388, x=1.0, y=0.897388), iteration=3: 0.900404044298\n    test 280 42 41.968088079226 Xi(tan=0.899396, x=1.49371, y=1.34344), iteration=2: 0.900404044298\n\n    test 281 42 42.095701889505 Phi(tan=0.903433, x=0.742026, y=0.670371): 0.900404044298\n    test 282 42 42.000000000000 Beta(tan=0.900404, x=0.743145, y=0.669131): 0.900404044298\n    test 283 42 41.904331700939 Theta(tan=0.897385, x=0.744261, y=0.667889): 0.900404044298\n    test 284 42 41.952155366417 Mu(tan=0.898893, x=0.743703, y=0.66851): 0.900404044298\n    test 285 42 41.904427530254 Chi(tan=0.897388, x=0.74426, y=0.66789): 0.900404044298\n    test 286 42 41.968088079226 Xi(tan=0.899396, x=0.743517, y=0.668717): 0.900404044298\n\n    test 287 49 49.095253561343 Phi(tan=1.15424, x=0.656059, y=0.757248): 1.150368407221\n    test 288 49 49.000000000000 Beta(tan=1.15037, x=0.656059, y=0.75471): 1.150368407221\n    test 289 49 48.904701906378 Theta(tan=1.14651, x=0.656059, y=0.752179): 1.150368407221\n    test 290 49 48.952364883757 Mu(tan=1.14844, x=0.656686, y=0.754164), iteration=3: 1.150368407221\n    test 291 49 48.904823373499 Chi(tan=1.14652, x=1.0, y=1.14652), iteration=3: 1.150368407221\n    test 292 49 48.968230641178 Xi(tan=1.14908, x=1.31885, y=1.51547), iteration=3: 1.150368407221\n\n    test 293 49 49.095253561343 Phi(tan=1.15424, x=0.654803, y=0.755799): 1.150368407221\n    test 294 49 49.000000000000 Beta(tan=1.15037, x=0.656059, y=0.75471): 1.150368407221\n    test 295 49 48.904701906378 Theta(tan=1.14651, x=0.657313, y=0.753617): 1.150368407221\n    test 296 49 48.952364883757 Mu(tan=1.14844, x=0.656686, y=0.754164): 1.150368407221\n    test 297 49 48.904823373499 Chi(tan=1.14652, x=0.657312, y=0.753619): 1.150368407221\n    test 298 49 48.968230641178 Xi(tan=1.14908, x=0.656477, y=0.754346): 1.150368407221\n\n    test 299 56 56.089150284766 Phi(tan=1.48755, x=0.559193, y=0.831827): 1.482560968513\n    test 300 56 56.000000000000 Beta(tan=1.48256, x=0.559193, y=0.829038): 1.482560968513\n    test 301 56 55.910737485374 Theta(tan=1.47759, x=0.559193, y=0.826258): 1.482560968513\n    test 302 56 55.955403845590 Mu(tan=1.48007, x=0.559838, y=0.828602), iteration=3: 1.482560968513\n    test 303 56 55.910874805786 Chi(tan=1.4776, x=1.0, y=1.4776), iteration=3: 1.482560968513\n    test 304 56 55.970259966049 Xi(tan=1.4809, x=1.12427, y=1.66494), iteration=3: 1.482560968513\n\n    test 305 56 56.089150284766 Phi(tan=1.48755, x=0.557902, y=0.829907): 1.482560968513\n    test 306 56 56.000000000000 Beta(tan=1.48256, x=0.559193, y=0.829038): 1.482560968513\n    test 307 56 55.910737485374 Theta(tan=1.47759, x=0.560484, y=0.828165): 1.482560968513\n    test 308 56 55.955403845590 Mu(tan=1.48007, x=0.559838, y=0.828602): 1.482560968513\n    test 309 56 55.910874805786 Chi(tan=1.4776, x=0.560482, y=0.828167): 1.482560968513\n    test 310 56 55.970259966049 Xi(tan=1.4809, x=0.559623, y=0.828747): 1.482560968513\n\n    test 311 63 63.077760538972 Phi(tan=1.96921, x=0.45399, y=0.894004): 1.962610505505\n    test 312 63 63.000000000000 Beta(tan=1.96261, x=0.45399, y=0.891007): 1.962610505505\n    test 313 63 62.922085806991 Theta(tan=1.95603, x=0.45399, y=0.888019): 1.962610505505\n    test 314 63 62.961090973753 Mu(tan=1.95932, x=0.454595, y=0.890698), iteration=2: 1.962610505505\n    test 315 63 62.922224287619 Chi(tan=1.95604, x=1.0, y=1.95604), iteration=3: 1.962610505505\n    test 316 63 62.974054576334 Xi(tan=1.96042, x=0.912868, y=1.7896), iteration=3: 1.962610505505\n\n    test 317 63 63.077760538972 Phi(tan=1.96921, x=0.452781, y=0.891622): 1.962610505505\n    test 318 63 63.000000000000 Beta(tan=1.96261, x=0.45399, y=0.891007): 1.962610505505\n    test 319 63 62.922085806991 Theta(tan=1.95603, x=0.455202, y=0.890388): 1.962610505505\n    test 320 63 62.961090973753 Mu(tan=1.95932, x=0.454595, y=0.890698): 1.962610505505\n    test 321 63 62.922224287619 Chi(tan=1.95604, x=0.4552, y=0.890389): 1.962610505505\n    test 322 63 62.974054576334 Xi(tan=1.96042, x=0.454394, y=0.890801): 1.962610505505\n\n    test 323 70 70.061764561164 Phi(tan=2.75672, x=0.34202, y=0.942854): 2.747477419455\n    test 324 70 70.000000000000 Beta(tan=2.74748, x=0.34202, y=0.939693): 2.747477419455\n    test 325 70 69.938076331685 Theta(tan=2.73827, x=0.34202, y=0.936542): 2.747477419455\n    test 326 70 69.969087953771 Mu(tan=2.74287, x=0.342527, y=0.939508), iteration=3: 2.747477419455\n    test 327 70 69.938198769881 Chi(tan=2.73828, x=1.0, y=2.73828), iteration=3: 2.747477419455\n    test 328 70 69.979388479327 Xi(tan=2.74441, x=0.687791, y=1.88758), iteration=3: 2.747477419455\n\n    test 329 70 70.061764561164 Phi(tan=2.75672, x=0.341007, y=0.940061): 2.747477419455\n    test 330 70 70.000000000000 Beta(tan=2.74748, x=0.34202, y=0.939693): 2.747477419455\n    test 331 70 69.938076331685 Theta(tan=2.73827, x=0.343036, y=0.939322): 2.747477419455\n    test 332 70 69.969087953771 Mu(tan=2.74287, x=0.342527, y=0.939508): 2.747477419455\n    test 333 70 69.938198769881 Chi(tan=2.73828, x=0.343034, y=0.939323): 2.747477419455\n    test 334 70 69.979388479327 Xi(tan=2.74441, x=0.342358, y=0.93957): 2.747477419455\n\n    test 335 77 77.042113102652 Phi(tan=4.34605, x=0.224951, y=0.977648): 4.331475874284\n    test 336 77 77.000000000000 Beta(tan=4.33148, x=0.224951, y=0.97437): 4.331475874284\n    test 337 77 76.957759584883 Theta(tan=4.31695, x=0.224951, y=0.971103): 4.331475874284\n    test 338 77 76.978919638565 Mu(tan=4.32422, x=0.22531, y=0.974287), iteration=3: 4.331475874284\n    test 339 77 76.957849394477 Chi(tan=4.31698, x=1.0, y=4.31698), iteration=3: 4.331475874284\n    test 340 77 76.985944723491 Xi(tan=4.32663, x=0.452402, y=1.95738), iteration=3: 4.331475874284\n\n    test 341 77 77.042113102652 Phi(tan=4.34605, x=0.224235, y=0.974535): 4.331475874284\n    test 342 77 77.000000000000 Beta(tan=4.33148, x=0.224951, y=0.97437): 4.331475874284\n    test 343 77 76.957759584883 Theta(tan=4.31695, x=0.225669, y=0.974204): 4.331475874284\n    test 344 77 76.978919638565 Mu(tan=4.32422, x=0.22531, y=0.974287): 4.331475874284\n    test 345 77 76.957849394477 Chi(tan=4.31698, x=0.225668, y=0.974204): 4.331475874284\n    test 346 77 76.985944723491 Xi(tan=4.32663, x=0.22519, y=0.974315): 4.331475874284\n\n    test 347 84 84.019970846274 Phi(tan=9.54637, x=0.104528, y=0.997868): 9.514364454223\n    test 348 84 84.000000000000 Beta(tan=9.51436, x=0.104528, y=0.994522): 9.514364454223\n    test 349 84 83.979963440552 Theta(tan=9.48246, x=0.104528, y=0.991187): 9.514364454223\n    test 350 84 83.990002289461 Mu(tan=9.49842, x=0.104702, y=0.994504), iteration=3: 9.514364454223\n    test 351 84 83.980007825249 Chi(tan=9.48254, x=1.0, y=9.48254), iteration=3: 9.514364454223\n    test 352 84 83.993334244416 Xi(tan=9.50373, x=0.210228, y=1.99795), iteration=3: 9.514364454223\n\n    test 353 84 84.019970846274 Phi(tan=9.54637, x=0.104182, y=0.994558): 9.514364454223\n    test 354 84 84.000000000000 Beta(tan=9.51436, x=0.104528, y=0.994522): 9.514364454223\n    test 355 84 83.979963440552 Theta(tan=9.48246, x=0.104876, y=0.994485): 9.514364454223\n    test 356 84 83.990002289461 Mu(tan=9.49842, x=0.104702, y=0.994504): 9.514364454223\n    test 357 84 83.980007825249 Chi(tan=9.48254, x=0.104875, y=0.994485): 9.514364454223\n    test 358 84 83.993334244416 Xi(tan=9.50373, x=0.104644, y=0.99451): 9.514364454223\n\n    test 359 91 90.996647866757 Phi(tan=-57.4827, x=-0.0174524, y=1.00321): -57.289961630759\n    test 360 91 91.000000000000 Beta(tan=-57.29, x=-0.0174524, y=0.999848): -57.289961630759\n    test 361 91 91.003363403239 Theta(tan=-57.0979, x=-0.0174524, y=0.996495): -57.289961630759\n    test 362 91 91.001678173837 Mu(tan=-57.194, x=-0.0174817, y=0.999847), iteration=3: -57.289961630759\n    test 363 91 91.003355872504 Chi(tan=-57.0983, x=-1, y=57.0983), iteration=3: -57.289961630759\n    test 364 91 91.001118877197 Xi(tan=-57.2259, x=-0.0351008, y=2.00867), iteration=3: -57.289961630759\n\n    test 365 91 90.996647866757 Phi(tan=-57.4827, x=-0.0173939, y=0.999849): -57.289961630759\n    test 366 91 91.000000000000 Beta(tan=-57.29, x=-0.0174524, y=0.999848): -57.289961630759\n    test 367 91 91.003363403239 Theta(tan=-57.0979, x=-0.0175111, y=0.999847): -57.289961630760  FAILED, KNOWN (6.07726e-15), expected -57.289961630759\n    test 368 91 91.001678173837 Mu(tan=-57.194, x=-0.0174817, y=0.999847): -57.289961630760  FAILED, KNOWN (6.44934e-15), expected -57.289961630759\n    test 369 91 91.003355872504 Chi(tan=-57.0983, x=-0.017511, y=0.999847): -57.289961630760  FAILED, KNOWN (4.21687e-15), expected -57.289961630759\n    test 370 91 91.001118877197 Xi(tan=-57.2259, x=-0.0174719, y=0.999847): -57.289961630760  FAILED, KNOWN (5.08505e-15), expected -57.289961630759\n\n    test 371 98 97.973523052479 Phi(tan=-7.13931, x=-0.139173, y=0.993599): -7.115369722384\n    test 372 98 98.000000000000 Beta(tan=-7.11537, x=-0.139173, y=0.990268): -7.115369722384\n    test 373 98 98.026562562307 Theta(tan=-7.09151, x=-0.139173, y=0.986948): -7.115369722384\n    test 374 98 98.013254483126 Mu(tan=-7.10345, x=-0.139402, y=0.990236), iteration=3: -7.115369722384\n    test 375 98 98.026504224575 Chi(tan=-7.09157, x=-1, y=7.09157), iteration=3: -7.115369722384\n    test 376 98 98.008837191904 Xi(tan=-7.10742, x=-0.279903, y=1.98939), iteration=3: -7.115369722384\n\n    test 377 98 97.973523052479 Phi(tan=-7.13931, x=-0.138715, y=0.990332): -7.115369722384\n    test 378 98 98.000000000000 Beta(tan=-7.11537, x=-0.139173, y=0.990268): -7.115369722384\n    test 379 98 98.026562562307 Theta(tan=-7.09151, x=-0.139632, y=0.990203): -7.115369722384\n    test 380 98 98.013254483126 Mu(tan=-7.10345, x=-0.139402, y=0.990236): -7.115369722384\n    test 381 98 98.026504224575 Chi(tan=-7.09157, x=-0.139631, y=0.990204): -7.115369722384\n    test 382 98 98.008837191904 Xi(tan=-7.10742, x=-0.139326, y=0.990247): -7.115369722384\n\n    test 383 105 104.951963747366 Phi(tan=-3.74461, x=-0.258819, y=0.969175): -3.732050807569\n    test 384 105 105.000000000000 Beta(tan=-3.73205, x=-0.258819, y=0.965926): -3.732050807569\n    test 385 105 105.048176169243 Theta(tan=-3.71954, x=-0.258819, y=0.962687): -3.732050807569\n    test 386 105 105.024044295704 Mu(tan=-3.7258, x=-0.259224, y=0.965817), iteration=3: -3.732050807569\n    test 387 105 105.048075510346 Chi(tan=-3.71956, x=-1, y=3.71956), iteration=3: -3.732050807569\n    test 388 105 105.016031662804 Xi(tan=-3.72788, x=-0.520505, y=1.94038), iteration=3: -3.732050807569\n\n    test 389 105 104.951963747366 Phi(tan=-3.74461, x=-0.258009, y=0.966142): -3.732050807569\n    test 390 105 105.000000000000 Beta(tan=-3.73205, x=-0.258819, y=0.965926): -3.732050807569\n    test 391 105 105.048176169243 Theta(tan=-3.71954, x=-0.259631, y=0.965708): -3.732050807569\n    test 392 105 105.024044295704 Mu(tan=-3.7258, x=-0.259224, y=0.965817): -3.732050807569\n    test 393 105 105.048075510346 Chi(tan=-3.71956, x=-0.259629, y=0.965708): -3.732050807569\n    test 394 105 105.016031662804 Xi(tan=-3.72788, x=-0.259089, y=0.965853): -3.732050807569\n\n    test 395 112 111.933246025813 Phi(tan=-2.48341, x=-0.374607, y=0.930303): -2.475086853416\n    test 396 112 112.000000000000 Beta(tan=-2.47509, x=-0.374607, y=0.927184): -2.475086853416\n    test 397 112 112.066915437341 Theta(tan=-2.46679, x=-0.374607, y=0.924075): -2.475086853416\n    test 398 112 112.033407196712 Mu(tan=-2.47094, x=-0.375147, y=0.926965), iteration=3: -2.475086853416\n    test 399 112 112.066786634266 Chi(tan=-2.4668, x=-1, y=2.4668), iteration=3: -2.475086853416\n    test 400 112 112.022275613932 Xi(tan=-2.47232, x=-0.753301, y=1.8624), iteration=3: -2.475086853416\n\n    test 401 112 111.933246025813 Phi(tan=-2.48341, x=-0.373526, y=0.92762): -2.475086853416\n    test 402 112 112.000000000000 Beta(tan=-2.47509, x=-0.374607, y=0.927184): -2.475086853416\n    test 403 112 112.066915437341 Theta(tan=-2.46679, x=-0.375689, y=0.926746): -2.475086853416\n    test 404 112 112.033407196712 Mu(tan=-2.47094, x=-0.375147, y=0.926965): -2.475086853416\n    test 405 112 112.066786634266 Chi(tan=-2.4668, x=-0.375687, y=0.926747): -2.475086853416\n    test 406 112 112.022275613932 Xi(tan=-2.47232, x=-0.374967, y=0.927038): -2.475086853416\n\n    test 407 119 118.918479987923 Phi(tan=-1.81012, x=-0.48481, y=0.877562): -1.804047755271\n    test 408 119 119.000000000000 Beta(tan=-1.80405, x=-0.48481, y=0.87462): -1.804047755271\n    test 409 119 119.081665222463 Theta(tan=-1.798, x=-0.48481, y=0.871687): -1.804047755271\n    test 410 119 119.040787185717 Mu(tan=-1.80102, x=-0.485432, y=0.874274), iteration=3: -1.804047755271\n    test 411 119 119.081525372917 Chi(tan=-1.79801, x=-1, y=1.79801), iteration=3: -1.804047755271\n    test 412 119 119.027198394988 Xi(tan=-1.80203, x=-0.974807, y=1.75663), iteration=3: -1.804047755271\n\n    test 413 119 118.918479987923 Phi(tan=-1.81012, x=-0.483565, y=0.875309): -1.804047755271\n    test 414 119 119.000000000000 Beta(tan=-1.80405, x=-0.48481, y=0.87462): -1.804047755271\n    test 415 119 119.081665222463 Theta(tan=-1.798, x=-0.486056, y=0.873928): -1.804047755271\n    test 416 119 119.040787185717 Mu(tan=-1.80102, x=-0.485432, y=0.874274): -1.804047755271\n    test 417 119 119.081525372917 Chi(tan=-1.79801, x=-0.486054, y=0.873929): -1.804047755271\n    test 418 119 119.027198394988 Xi(tan=-1.80203, x=-0.485225, y=0.874389): -1.804047755271\n\n    test 419 126 125.908544256035 Phi(tan=-1.38101, x=-0.587785, y=0.811739): -1.376381920471\n    test 420 126 126.000000000000 Beta(tan=-1.37638, x=-0.587785, y=0.809017): -1.376381920471\n    test 421 126 126.091550707249 Theta(tan=-1.37177, x=-0.587785, y=0.806305): -1.376381920471\n    test 422 126 126.045745652474 Mu(tan=-1.37407, x=-0.588431, y=0.808547), iteration=3: -1.376381920471\n    test 423 126 126.091416595783 Chi(tan=-1.37177, x=-1, y=1.37177), iteration=3: -1.376381920471\n    test 424 126 126.030507332108 Xi(tan=-1.37484, x=-1.18171, y=1.62467), iteration=2: -1.376381920471\n\n    test 425 126 125.908544256035 Phi(tan=-1.38101, x=-0.586493, y=0.809954): -1.376381920471\n    test 426 126 126.000000000000 Beta(tan=-1.37638, x=-0.587785, y=0.809017): -1.376381920471\n    test 427 126 126.091550707249 Theta(tan=-1.37177, x=-0.589077, y=0.808077): -1.376381920471\n    test 428 126 126.045745652474 Mu(tan=-1.37407, x=-0.588431, y=0.808547): -1.376381920471\n    test 429 126 126.091416595783 Chi(tan=-1.37177, x=-0.589075, y=0.808078): -1.376381920471\n    test 430 126 126.030507332108 Xi(tan=-1.37484, x=-0.588216, y=0.808704): -1.376381920471\n\n    test 431 133 132.904033458108 Phi(tan=-1.07598, x=-0.681998, y=0.733814): -1.072368710025\n    test 432 133 133.000000000000 Beta(tan=-1.07237, x=-0.681998, y=0.731354): -1.072368710025\n    test 433 133 133.095989026852 Theta(tan=-1.06877, x=-0.681998, y=0.728902): -1.072368710025\n    test 434 133 133.047987474831 Mu(tan=-1.07057, x=-0.682611, y=0.730782), iteration=3: -1.072368710025\n    test 435 133 133.095874142459 Chi(tan=-1.06878, x=-1, y=1.06878), iteration=2: -1.072368710025\n    test 436 133 133.032005165725 Xi(tan=-1.07117, x=-1.37094, y=1.46851), iteration=3: -1.072368710025\n\n    test 437 133 132.904033458108 Phi(tan=-1.07598, x=-0.680772, y=0.732495): -1.072368710025\n    test 438 133 133.000000000000 Beta(tan=-1.07237, x=-0.681998, y=0.731354): -1.072368710025\n    test 439 133 133.095989026852 Theta(tan=-1.06877, x=-0.683223, y=0.73021): -1.072368710025\n    test 440 133 133.047987474831 Mu(tan=-1.07057, x=-0.682611, y=0.730782): -1.072368710025\n    test 441 133 133.095874142459 Chi(tan=-1.06878, x=-0.683221, y=0.730211): -1.072368710025\n    test 442 133 133.032005165725 Xi(tan=-1.07117, x=-0.682407, y=0.730973): -1.072368710025\n\n    test 443 140 139.905221888853 Phi(tan=-0.841922, x=-0.766044, y=0.64495): -0.839099631177\n    test 444 140 140.000000000000 Beta(tan=-0.8391, x=-0.766044, y=0.642788): -0.839099631177\n    test 445 140 140.094722853987 Theta(tan=-0.836286, x=-0.766044, y=0.640632): -0.839099631177\n    test 446 140 140.047378679025 Mu(tan=-0.837691, x=-0.766576, y=0.642154), iteration=2: -0.839099631177\n    test 447 140 140.094635301560 Chi(tan=-0.836289, x=-1, y=0.836289), iteration=3: -0.839099631177\n    test 448 140 140.031601928062 Xi(tan=-0.83816, x=-1.53968, y=1.2905), iteration=3: -0.839099631177\n\n    test 449 140 139.905221888853 Phi(tan=-0.841922, x=-0.76498, y=0.644054): -0.839099631177\n    test 450 140 140.000000000000 Beta(tan=-0.8391, x=-0.766044, y=0.642788): -0.839099631177\n    test 451 140 140.094722853987 Theta(tan=-0.836286, x=-0.767106, y=0.64152): -0.839099631177\n    test 452 140 140.047378679025 Mu(tan=-0.837691, x=-0.766576, y=0.642154): -0.839099631177\n    test 453 140 140.094635301560 Chi(tan=-0.836289, x=-0.767105, y=0.641521): -0.839099631177\n    test 454 140 140.031601928062 Xi(tan=-0.83816, x=-0.766399, y=0.642365): -0.839099631177\n\n    test 455 147 146.912045740495 Phi(tan=-0.651592, x=-0.838671, y=0.546471): -0.649407593198\n    test 456 147 147.000000000000 Beta(tan=-0.649408, x=-0.838671, y=0.544639): -0.649407593198\n    test 457 147 147.087834196097 Theta(tan=-0.64723, x=-0.838671, y=0.542813): -0.649407593198\n    test 458 147 147.043954583618 Mu(tan=-0.648317, x=-0.839088, y=0.543995), iteration=3: -0.649407593198\n    test 459 147 147.087775924345 Chi(tan=-0.647232, x=-1, y=0.647232), iteration=3: -0.649407593198\n    test 460 147 147.029320517871 Xi(tan=-0.64868, x=-1.68543, y=1.09331), iteration=3: -0.649407593198\n\n    test 461 147 146.912045740495 Phi(tan=-0.651592, x=-0.837834, y=0.545926): -0.649407593198\n    test 462 147 147.000000000000 Beta(tan=-0.649408, x=-0.838671, y=0.544639): -0.649407593198\n    test 463 147 147.087834196097 Theta(tan=-0.64723, x=-0.839505, y=0.543353): -0.649407593198\n    test 464 147 147.043954583618 Mu(tan=-0.648317, x=-0.839088, y=0.543995): -0.649407593198\n    test 465 147 147.087775924345 Chi(tan=-0.647232, x=-0.839504, y=0.543354): -0.649407593198\n    test 466 147 147.029320517871 Xi(tan=-0.64868, x=-0.838949, y=0.54421): -0.649407593198\n\n    test 467 154 153.924105301481 Phi(tan=-0.489373, x=-0.898794, y=0.439846): -0.487732588566\n    test 468 154 154.000000000000 Beta(tan=-0.487733, x=-0.898794, y=0.438371): -0.487732588566\n    test 469 154 154.075737936138 Theta(tan=-0.486097, x=-0.898794, y=0.436901): -0.487732588566\n    test 470 154 154.037917900127 Mu(tan=-0.486914, x=-0.899084, y=0.437776), iteration=3: -0.487732588566\n    test 471 154 154.075705391203 Chi(tan=-0.486098, x=-1, y=0.486098), iteration=3: -0.487732588566\n    test 472 154 154.025295587615 Xi(tan=-0.487186, x=-1.80605, y=0.879882), iteration=3: -0.487732588566\n\n    test 473 154 153.924105301481 Phi(tan=-0.489373, x=-0.898213, y=0.439561): -0.487732588566\n    test 474 154 154.000000000000 Beta(tan=-0.487733, x=-0.898794, y=0.438371): -0.487732588566\n    test 475 154 154.075737936138 Theta(tan=-0.486097, x=-0.899373, y=0.437183): -0.487732588566\n    test 476 154 154.037917900127 Mu(tan=-0.486914, x=-0.899084, y=0.437776): -0.487732588566\n    test 477 154 154.075705391203 Chi(tan=-0.486098, x=-0.899372, y=0.437183): -0.487732588566\n    test 478 154 154.025295587615 Xi(tan=-0.487186, x=-0.898987, y=0.437974): -0.487732588566\n\n    test 479 161 160.940687365843 Phi(tan=-0.345486, x=-0.945519, y=0.326663): -0.344327613290\n    test 480 161 161.000000000000 Beta(tan=-0.344328, x=-0.945519, y=0.325568): -0.344327613290\n    test 481 161 161.059155871563 Theta(tan=-0.343173, x=-0.945519, y=0.324477): -0.344327613290\n    test 482 161 161.029626856612 Mu(tan=-0.343749, x=-0.945687, y=0.325079), iteration=3: -0.344327613290\n    test 483 161 161.059141853346 Chi(tan=-0.343173, x=-1, y=0.343173), iteration=3: -0.344327613290\n    test 484 161 161.019765751188 Xi(tan=-0.343942, x=-1.89975, y=0.653405), iteration=3: -0.344327613290\n\n    test 485 161 160.940687365843 Phi(tan=-0.345486, x=-0.945181, y=0.326547): -0.344327613290\n    test 486 161 161.000000000000 Beta(tan=-0.344328, x=-0.945519, y=0.325568): -0.344327613290\n    test 487 161 161.059155871563 Theta(tan=-0.343173, x=-0.945854, y=0.324592): -0.344327613290\n    test 488 161 161.029626856612 Mu(tan=-0.343749, x=-0.945687, y=0.325079): -0.344327613290\n    test 489 161 161.059141853346 Chi(tan=-0.343173, x=-0.945854, y=0.324592): -0.344327613290\n    test 490 161 161.019765751188 Xi(tan=-0.343942, x=-0.945631, y=0.325242): -0.344327613290\n\n    test 491 168 167.960806838131 Phi(tan=-0.213272, x=-0.978148, y=0.208611): -0.212556561670\n    test 492 168 168.000000000000 Beta(tan=-0.212557, x=-0.978148, y=0.207912): -0.212556561670\n    test 493 168 168.039073098008 Theta(tan=-0.211844, x=-0.978148, y=0.207215): -0.212556561670\n    test 494 168 168.019574010622 Mu(tan=-0.2122, x=-0.978219, y=0.207578), iteration=2: -0.212556561670\n    test 495 168 168.039069322354 Chi(tan=-0.211844, x=-1, y=0.211844), iteration=2: -0.212556561670\n    test 496 168 168.013059526305 Xi(tan=-0.212318, x=-1.96517, y=0.417243), iteration=3: -0.212556561670\n\n    test 497 168 167.960806838131 Phi(tan=-0.213272, x=-0.978005, y=0.208581): -0.212556561670\n    test 498 168 168.000000000000 Beta(tan=-0.212557, x=-0.978148, y=0.207912): -0.212556561670\n    test 499 168 168.039073098008 Theta(tan=-0.211844, x=-0.978289, y=0.207245): -0.212556561670\n    test 500 168 168.019574010622 Mu(tan=-0.2122, x=-0.978219, y=0.207578): -0.212556561670\n    test 501 168 168.039069322354 Chi(tan=-0.211844, x=-0.978289, y=0.207245): -0.212556561670\n    test 502 168 168.013059526305 Xi(tan=-0.212318, x=-0.978195, y=0.207689): -0.212556561670\n\n    test 503 175 174.983265245736 Phi(tan=-0.087783, x=-0.996195, y=0.0874489): -0.087488663526\n    test 504 175 175.000000000000 Beta(tan=-0.0874887, x=-0.996195, y=0.0871557): -0.087488663526\n    test 505 175 175.016679496811 Theta(tan=-0.0871953, x=-0.996195, y=0.0868635): -0.087488663526\n    test 506 175 175.008356987733 Mu(tan=-0.0873417, x=-0.996207, y=0.0870104), iteration=3: -0.087488663526\n    test 507 175 175.016679213606 Chi(tan=-0.0871953, x=-1, y=0.0871953), iteration=2: -0.087488663526\n    test 508 175 175.005575818689 Xi(tan=-0.0873906, x=-2.00135, y=0.174899), iteration=2: -0.087488663526\n\n    test 509 175 174.983265245736 Phi(tan=-0.087783, x=-0.996169, y=0.0874467): -0.087488663526\n    test 510 175 175.000000000000 Beta(tan=-0.0874887, x=-0.996195, y=0.0871557): -0.087488663526\n    test 511 175 175.016679496811 Theta(tan=-0.0871953, x=-0.99622, y=0.0868657): -0.087488663526\n    test 512 175 175.008356987733 Mu(tan=-0.0873417, x=-0.996207, y=0.0870104): -0.087488663526\n    test 513 175 175.016679213606 Chi(tan=-0.0871953, x=-0.99622, y=0.0868657): -0.087488663526\n    test 514 175 175.005575818689 Xi(tan=-0.0873906, x=-0.996203, y=0.0870588): -0.087488663526\n\n    test 515 182 182.006722688009 Phi(tan=0.0350382, x=-0.999391, y=-0.0350169): 0.034920769492\n    test 516 182 182.000000000000 Beta(tan=0.0349208, x=-0.999391, y=-0.0348995): 0.034920769492\n    test 517 182 181.993299797077 Theta(tan=0.0348037, x=-0.999391, y=-0.0347825): 0.034920769492\n    test 518 182 181.996642883728 Mu(tan=0.0348621, x=-0.999393, y=-0.0348409), iteration=3: 0.034920769492\n    test 519 182 181.993299815318 Chi(tan=0.0348037, x=-1, y=-0.0348037), iteration=2: 0.034920769492\n    test 520 182 181.997760106963 Xi(tan=0.0348816, x=-2.00776, y=-0.0700339), iteration=3: 0.034920769492\n\n    test 521 182 182.006722688009 Phi(tan=0.0350382, x=-0.999387, y=-0.0350168): 0.034920769492\n    test 522 182 182.000000000000 Beta(tan=0.0349208, x=-0.999391, y=-0.0348995): 0.034920769492\n    test 523 182 181.993299797077 Theta(tan=0.0348037, x=-0.999395, y=-0.0347826): 0.034920769492\n    test 524 182 181.996642883728 Mu(tan=0.0348621, x=-0.999393, y=-0.0348409): 0.034920769492\n    test 525 182 181.993299815318 Chi(tan=0.0348037, x=-0.999395, y=-0.0347826): 0.034920769492\n    test 526 182 181.997760106963 Xi(tan=0.0348816, x=-0.999392, y=-0.0348604): 0.034920769492\n\n    test 527 189 189.029778772560 Phi(tan=0.158917, x=-0.987688, y=-0.156961): 0.158384440325\n    test 528 189 189.000000000000 Beta(tan=0.158384, x=-0.987688, y=-0.156434): 0.158384440325\n    test 529 189 188.970316191157 Theta(tan=0.157853, x=-0.987688, y=-0.15591): 0.158384440325\n    test 530 189 188.985128467162 Mu(tan=0.158118, x=-0.987729, y=-0.156178), iteration=3: 0.158384440325\n    test 531 189 188.970317814928 Chi(tan=0.157853, x=-1, y=-0.157853), iteration=2: 0.158384440325\n    test 532 189 188.990077770379 Xi(tan=0.158207, x=-1.9843, y=-0.31393), iteration=3: 0.158384440325\n\n    test 533 189 189.029778772560 Phi(tan=0.158917, x=-0.987607, y=-0.156948): 0.158384440325\n    test 534 189 189.000000000000 Beta(tan=0.158384, x=-0.987688, y=-0.156434): 0.158384440325\n    test 535 189 188.970316191157 Theta(tan=0.157853, x=-0.987769, y=-0.155923): 0.158384440325\n    test 536 189 188.985128467162 Mu(tan=0.158118, x=-0.987729, y=-0.156178): 0.158384440325\n    test 537 189 188.970317814928 Chi(tan=0.157853, x=-0.987769, y=-0.155923): 0.158384440325\n    test 538 189 188.990077770379 Xi(tan=0.158207, x=-0.987715, y=-0.156263): 0.158384440325\n\n    test 539 196 196.051057415277 Phi(tan=0.28771, x=-0.961262, y=-0.276565): 0.286745385759\n    test 540 196 196.000000000000 Beta(tan=0.286745, x=-0.961262, y=-0.275637): 0.286745385759\n    test 541 196 195.949087795468 Theta(tan=0.285784, x=-0.961262, y=-0.274713): 0.286745385759\n    test 542 196 195.974498585700 Mu(tan=0.286264, x=-0.961384, y=-0.275209), iteration=2: 0.286745385759\n    test 543 196 195.949096442818 Chi(tan=0.285784, x=-1, y=-0.285784), iteration=3: 0.286745385759\n    test 544 196 195.982986192635 Xi(tan=0.286424, x=-1.93132, y=-0.553176), iteration=3: 0.286745385759\n\n    test 545 196 196.051057415277 Phi(tan=0.28771, x=-0.961016, y=-0.276494): 0.286745385759\n    test 546 196 196.000000000000 Beta(tan=0.286745, x=-0.961262, y=-0.275637): 0.286745385759\n    test 547 196 195.949087795468 Theta(tan=0.285784, x=-0.961506, y=-0.274783): 0.286745385759\n    test 548 196 195.974498585700 Mu(tan=0.286264, x=-0.961384, y=-0.275209): 0.286745385759\n    test 549 196 195.949096442818 Chi(tan=0.285784, x=-0.961506, y=-0.274783): 0.286745385759\n    test 550 196 195.982986192635 Xi(tan=0.286424, x=-0.961344, y=-0.275352): 0.286745385759\n\n    test 551 203 203.069290086312 Phi(tan=0.425903, x=-0.920505, y=-0.392046): 0.424474816210\n    test 552 203 203.000000000000 Beta(tan=0.424475, x=-0.920505, y=-0.390731): 0.424474816210\n    test 553 203 202.930871376810 Theta(tan=0.423052, x=-0.920505, y=-0.389421): 0.424474816210\n    test 554 203 202.965385294258 Mu(tan=0.423762, x=-0.920741, y=-0.390175), iteration=3: 0.424474816210\n    test 555 203 202.930894974288 Chi(tan=0.423052, x=-1, y=-0.423052), iteration=3: 0.424474816210\n    test 556 203 202.976907357652 Xi(tan=0.423999, x=-1.84959, y=-0.784226), iteration=3: 0.424474816210\n\n    test 557 203 203.069290086312 Phi(tan=0.425903, x=-0.920032, y=-0.391844): 0.424474816210\n    test 558 203 203.000000000000 Beta(tan=0.424475, x=-0.920505, y=-0.390731): 0.424474816210\n    test 559 203 202.930871376810 Theta(tan=0.423052, x=-0.920976, y=-0.38962): 0.424474816210\n    test 560 203 202.965385294258 Mu(tan=0.423762, x=-0.920741, y=-0.390175): 0.424474816210\n    test 561 203 202.930894974288 Chi(tan=0.423052, x=-0.920975, y=-0.389621): 0.424474816210\n    test 562 203 202.976907357652 Xi(tan=0.423999, x=-0.920662, y=-0.39036): 0.424474816210\n\n    test 563 210 210.083392202979 Phi(tan=0.579293, x=-0.866025, y=-0.501682): 0.577350269190\n    test 564 210 210.000000000000 Beta(tan=0.57735, x=-0.866025, y=-0.5): 0.577350269190\n    test 565 210 209.916747713236 Theta(tan=0.575415, x=-0.866025, y=-0.498324): 0.577350269190\n    test 566 210 209.958330176858 Mu(tan=0.576381, x=-0.866389, y=-0.49937), iteration=2: 0.577350269190\n    test 567 210 209.916794258180 Chi(tan=0.575416, x=-1, y=-0.575416), iteration=2: 0.577350269190\n    test 568 210 209.972202619898 Xi(tan=0.576704, x=-1.74031, y=-1.00365), iteration=2: 0.577350269190\n\n    test 569 210 210.083392202979 Phi(tan=0.579293, x=-0.865297, y=-0.50126): 0.577350269190\n    test 570 210 210.000000000000 Beta(tan=0.57735, x=-0.866025, y=-0.5): 0.577350269190\n    test 571 210 209.916747713236 Theta(tan=0.575415, x=-0.866751, y=-0.498741): 0.577350269190\n    test 572 210 209.958330176858 Mu(tan=0.576381, x=-0.866389, y=-0.49937): 0.577350269190\n    test 573 210 209.916794258180 Chi(tan=0.575416, x=-0.866751, y=-0.498742): 0.577350269190\n    test 574 210 209.972202619898 Xi(tan=0.576704, x=-0.866268, y=-0.49958): 0.577350269190\n\n    test 575 217 217.092527888642 Phi(tan=0.756089, x=-0.798636, y=-0.60384): 0.753554050103\n    test 576 217 217.000000000000 Beta(tan=0.753554, x=-0.798636, y=-0.601815): 0.753554050103\n    test 577 217 216.907557725734 Theta(tan=0.751028, x=-0.798636, y=-0.599797): 0.753554050103\n    test 578 217 216.953752130797 Mu(tan=0.752289, x=-0.799121, y=-0.60117), iteration=2: 0.753554050103\n    test 579 217 216.907632616913 Chi(tan=0.75103, x=-1, y=-0.75103), iteration=3: 0.753554050103\n    test 580 217 216.969151185746 Xi(tan=0.75271, x=-1.60509, y=-1.20817), iteration=2: 0.753554050103\n\n    test 581 217 217.092527888642 Phi(tan=0.756089, x=-0.797663, y=-0.603104): 0.753554050103\n    test 582 217 217.000000000000 Beta(tan=0.753554, x=-0.798636, y=-0.601815): 0.753554050103\n    test 583 217 216.907557725734 Theta(tan=0.751028, x=-0.799605, y=-0.600526): 0.753554050103\n    test 584 217 216.953752130797 Mu(tan=0.752289, x=-0.799121, y=-0.60117): 0.753554050103\n    test 585 217 216.907632616913 Chi(tan=0.75103, x=-0.799605, y=-0.600527): 0.753554050103\n    test 586 217 216.969151185746 Xi(tan=0.75271, x=-0.798959, y=-0.601385): 0.753554050103\n\n    test 587 224 224.096159176144 Phi(tan=0.968937, x=-0.71934, y=-0.696995): 0.965688774807\n    test 588 224 224.000000000000 Beta(tan=0.965689, x=-0.71934, y=-0.694658): 0.965688774807\n    test 589 224 223.903852093789 Theta(tan=0.962451, x=-0.71934, y=-0.692329): 0.965688774807\n    test 590 224 223.951922536530 Mu(tan=0.964068, x=-0.719922, y=-0.694055), iteration=2: 0.965688774807\n    test 591 224 223.903955899504 Chi(tan=0.962454, x=-1, y=-0.962454), iteration=3: 0.965688774807\n    test 592 224 223.967933596024 Xi(tan=0.964608, x=-1.44592, y=-1.39475), iteration=3: 0.965688774807\n\n    test 593 224 224.096159176144 Phi(tan=0.968937, x=-0.718173, y=-0.695865): 0.965688774807\n    test 594 224 224.000000000000 Beta(tan=0.965689, x=-0.71934, y=-0.694658): 0.965688774807\n    test 595 224 223.903852093789 Theta(tan=0.962451, x=-0.720504, y=-0.69345): 0.965688774807\n    test 596 224 223.951922536530 Mu(tan=0.964068, x=-0.719922, y=-0.694055): 0.965688774807\n    test 597 224 223.903955899504 Chi(tan=0.962454, x=-0.720503, y=-0.693452): 0.965688774807\n    test 598 224 223.967933596024 Xi(tan=0.964608, x=-0.719728, y=-0.694256): 0.965688774807\n\n    test 599 231 231.094076843128 Phi(tan=1.23905, x=-0.62932, y=-0.77976): 1.234897156535\n    test 600 231 231.000000000000 Beta(tan=1.2349, x=-0.62932, y=-0.777146): 1.234897156535\n    test 601 231 230.905857444036 Theta(tan=1.23076, x=-0.62932, y=-0.77454): 1.234897156535\n    test 602 231 230.952949275029 Mu(tan=1.23283, x=-0.629958, y=-0.776629), iteration=3: 1.234897156535\n    test 603 231 230.905984687641 Chi(tan=1.23076, x=-1, y=-1.23076), iteration=3: 1.234897156535\n    test 604 231 230.968621174367 Xi(tan=1.23352, x=-1.26515, y=-1.56058), iteration=3: 1.234897156535\n\n    test 605 231 231.094076843128 Phi(tan=1.23905, x=-0.628044, y=-0.778178): 1.234897156535\n    test 606 231 231.000000000000 Beta(tan=1.2349, x=-0.62932, y=-0.777146): 1.234897156535\n    test 607 231 230.905857444036 Theta(tan=1.23076, x=-0.630596, y=-0.776111): 1.234897156535\n    test 608 231 230.952949275029 Mu(tan=1.23283, x=-0.629958, y=-0.776629): 1.234897156535\n    test 609 231 230.905984687641 Chi(tan=1.23076, x=-0.630595, y=-0.776112): 1.234897156535\n    test 610 231 230.968621174367 Xi(tan=1.23352, x=-0.629746, y=-0.776801): 1.234897156535\n\n    test 611 238 238.086411314589 Phi(tan=1.60572, x=-0.529919, y=-0.850901): 1.600334529041\n    test 612 238 238.000000000000 Beta(tan=1.60033, x=-0.529919, y=-0.848048): 1.600334529041\n    test 613 238 237.913461373388 Theta(tan=1.59497, x=-0.529919, y=-0.845205): 1.600334529041\n    test 614 238 237.956770509194 Mu(tan=1.59765, x=-0.530559, y=-0.847648), iteration=3: 1.600334529041\n    test 615 238 237.913600687903 Chi(tan=1.59498, x=-1, y=-1.59498), iteration=2: 1.600334529041\n    test 616 238 237.971172027129 Xi(tan=1.59854, x=-1.06545, y=-1.70318), iteration=3: 1.600334529041\n\n    test 617 238 238.086411314589 Phi(tan=1.60572, x=-0.52864, y=-0.848846): 1.600334529041\n    test 618 238 238.000000000000 Beta(tan=1.60033, x=-0.529919, y=-0.848048): 1.600334529041\n    test 619 238 237.913461373388 Theta(tan=1.59497, x=-0.5312, y=-0.847247): 1.600334529041\n    test 620 238 237.956770509194 Mu(tan=1.59765, x=-0.530559, y=-0.847648): 1.600334529041\n    test 621 238 237.913600687903 Chi(tan=1.59498, x=-0.531197, y=-0.847248): 1.600334529041\n    test 622 238 237.971172027129 Xi(tan=1.59854, x=-0.530346, y=-0.847781): 1.600334529041\n\n    test 623 245 245.073623344306 Phi(tan=2.15172, x=-0.422618, y=-0.909357): 2.144506920510\n    test 624 245 245.000000000000 Beta(tan=2.14451, x=-0.422618, y=-0.906308): 2.144506920510\n    test 625 245 244.926217548699 Theta(tan=2.13732, x=-0.422618, y=-0.903269): 2.144506920510\n    test 626 245 244.963158554024 Mu(tan=2.14091, x=-0.423201, y=-0.906036), iteration=2: 2.144506920510\n    test 627 245 244.926353236006 Chi(tan=2.13733, x=-1, y=-2.13733), iteration=3: 2.144506920510\n    test 628 245 244.975433776813 Xi(tan=2.14211, x=-0.849812, y=-1.82039), iteration=3: 2.144506920510\n\n    test 629 245 245.073623344306 Phi(tan=2.15172, x=-0.421453, y=-0.90685): 2.144506920510\n    test 630 245 245.000000000000 Beta(tan=2.14451, x=-0.422618, y=-0.906308): 2.144506920510\n    test 631 245 244.926217548699 Theta(tan=2.13732, x=-0.423785, y=-0.905763): 2.144506920510\n    test 632 245 244.963158554024 Mu(tan=2.14091, x=-0.423201, y=-0.906036): 2.144506920510\n    test 633 245 244.926353236006 Chi(tan=2.13733, x=-0.423783, y=-0.905764): 2.144506920510\n    test 634 245 244.975433776813 Xi(tan=2.14211, x=-0.423007, y=-0.906127): 2.144506920510\n\n    test 635 252 252.056475395211 Phi(tan=3.08804, x=-0.309017, y=-0.954256): 3.077683537175\n    test 636 252 252.000000000000 Beta(tan=3.07768, x=-0.309017, y=-0.951057): 3.077683537175\n    test 637 252 251.943370950484 Theta(tan=3.06736, x=-0.309017, y=-0.947868): 3.077683537175\n    test 638 252 251.971733559721 Mu(tan=3.07253, x=-0.309486, y=-0.950904), iteration=2: 3.077683537175\n    test 639 252 251.943485649406 Chi(tan=3.06739, x=-1, y=-3.06739), iteration=2: 3.077683537175\n    test 640 252 251.981152809484 Xi(tan=3.07424, x=-0.621437, y=-1.91045), iteration=3: 3.077683537175\n\n    test 641 252 252.056475395211 Phi(tan=3.08804, x=-0.308079, y=-0.951361): 3.077683537175\n    test 642 252 252.000000000000 Beta(tan=3.07768, x=-0.309017, y=-0.951057): 3.077683537175\n    test 643 252 251.943370950484 Theta(tan=3.06736, x=-0.309957, y=-0.950751): 3.077683537175\n    test 644 252 251.971733559721 Mu(tan=3.07253, x=-0.309486, y=-0.950904): 3.077683537175\n    test 645 252 251.943485649406 Chi(tan=3.06739, x=-0.309955, y=-0.950751): 3.077683537175\n    test 646 252 251.981152809484 Xi(tan=3.07424, x=-0.30933, y=-0.950955): 3.077683537175\n\n    test 647 259 259.035985707307 Phi(tan=5.16186, x=-0.190809, y=-0.984929): 5.144554015970\n    test 648 259 259.000000000000 Beta(tan=5.14455, x=-0.190809, y=-0.981627): 5.144554015970\n    test 649 259 258.963902062378 Theta(tan=5.12731, x=-0.190809, y=-0.978336): 5.144554015970\n    test 650 259 258.981986158342 Mu(tan=5.13593, x=-0.191118, y=-0.981567), iteration=3: 5.144554015970\n    test 651 259 258.963979961875 Chi(tan=5.12734, x=-1, y=-5.12734), iteration=3: 5.144554015970\n    test 652 259 258.987989441453 Xi(tan=5.1388, x=-0.383745, y=-1.97199), iteration=3: 5.144554015970\n\n    test 653 259 259.035985707307 Phi(tan=5.16186, x=-0.190192, y=-0.981747): 5.144554015970\n    test 654 259 259.000000000000 Beta(tan=5.14455, x=-0.190809, y=-0.981627): 5.144554015970\n    test 655 259 258.963902062378 Theta(tan=5.12731, x=-0.191427, y=-0.981507): 5.144554015970\n    test 656 259 258.981986158342 Mu(tan=5.13593, x=-0.191118, y=-0.981567): 5.144554015970\n    test 657 259 258.963979961875 Chi(tan=5.12734, x=-0.191426, y=-0.981507): 5.144554015970\n    test 658 259 258.987989441453 Xi(tan=5.1388, x=-0.191015, y=-0.981587): 5.144554015970\n\n    test 659 266 266.013367926454 Phi(tan=14.3488, x=-0.0697565, y=-1.00092): 14.300666256712\n    test 660 266 266.000000000000 Beta(tan=14.3007, x=-0.0697565, y=-0.997564): 14.300666256712\n    test 661 266 265.986587541025 Theta(tan=14.2527, x=-0.0697565, y=-0.994219): 14.300666256712\n    test 662 266 265.993307710088 Mu(tan=14.2767, x=-0.069873, y=-0.997556), iteration=3: 14.300666256712\n    test 663 266 265.986617434521 Chi(tan=14.2528, x=-1, y=-14.2528), iteration=3: 14.300666256712\n    test 664 266 265.995538081208 Xi(tan=14.2847, x=-0.140295, y=-2.00408), iteration=3: 14.300666256712\n\n    test 665 266 266.013367926454 Phi(tan=14.3488, x=-0.0695237, y=-0.99758): 14.300666256712\n    test 666 266 266.000000000000 Beta(tan=14.3007, x=-0.0697565, y=-0.997564): 14.300666256712\n    test 667 266 265.986587541025 Theta(tan=14.2527, x=-0.06999, y=-0.997548): 14.300666256712\n    test 668 266 265.993307710088 Mu(tan=14.2767, x=-0.069873, y=-0.997556): 14.300666256712\n    test 669 266 265.986617434521 Chi(tan=14.2528, x=-0.0699895, y=-0.997548): 14.300666256712\n    test 670 266 265.995538081208 Xi(tan=14.2847, x=-0.0698342, y=-0.997559): 14.300666256712\n\n    test 671 273 272.989959849669 Phi(tan=-19.1453, x=0.052336, y=-1.00199): -19.081136687728\n    test 672 273 273.000000000000 Beta(tan=-19.0811, x=0.052336, y=-0.99863): -19.081136687728\n    test 673 273 273.010073740960 Theta(tan=-19.0172, x=0.052336, y=-0.995281): -19.081136687728\n    test 674 273 273.005026355872 Mu(tan=-19.0492, x=0.0524236, y=-0.998625), iteration=2: -19.081136687728\n    test 675 273 273.010051240667 Chi(tan=-19.0173, x=1.0, y=-19.0173), iteration=3: -19.081136687728\n    test 676 273 273.003351193295 Xi(tan=-19.0598, x=0.105259, y=-2.00622), iteration=3: -19.081136687728\n\n    test 677 273 272.989959849669 Phi(tan=-19.1453, x=0.052161, y=-0.998639): -19.081136687728\n    test 678 273 273.000000000000 Beta(tan=-19.0811, x=0.052336, y=-0.99863): -19.081136687728\n    test 679 273 273.010073740960 Theta(tan=-19.0172, x=0.0525115, y=-0.99862): -19.081136687728\n    test 680 273 273.005026355872 Mu(tan=-19.0492, x=0.0524236, y=-0.998625): -19.081136687728\n    test 681 273 273.010051240667 Chi(tan=-19.0173, x=0.0525111, y=-0.99862): -19.081136687728\n    test 682 273 273.003351193295 Xi(tan=-19.0598, x=0.0523944, y=-0.998626): -19.081136687728\n\n    test 683 280 279.967145322218 Phi(tan=-5.69036, x=0.173648, y=-0.988121): -5.671281819618\n    test 684 280 280.000000000000 Beta(tan=-5.67128, x=0.173648, y=-0.984808): -5.671281819618\n    test 685 280 280.032958527773 Theta(tan=-5.65227, x=0.173648, y=-0.981506): -5.671281819618\n    test 686 280 280.016446759121 Mu(tan=-5.66178, x=0.173931, y=-0.984758), iteration=3: -5.671281819618\n    test 687 280 280.032886940584 Chi(tan=-5.65231, x=1.0, y=-5.65231), iteration=3: -5.671281819618\n    test 688 280 280.010965671278 Xi(tan=-5.66494, x=0.349234, y=-1.97839), iteration=3: -5.671281819618\n\n    test 689 280 279.967145322218 Phi(tan=-5.69036, x=0.173083, y=-0.984907): -5.671281819618\n    test 690 280 280.000000000000 Beta(tan=-5.67128, x=0.173648, y=-0.984808): -5.671281819618\n    test 691 280 280.032958527773 Theta(tan=-5.65227, x=0.174215, y=-0.984708): -5.671281819618\n    test 692 280 280.016446759121 Mu(tan=-5.66178, x=0.173931, y=-0.984758): -5.671281819618\n    test 693 280 280.032886940584 Chi(tan=-5.65231, x=0.174213, y=-0.984708): -5.671281819618\n    test 694 280 280.010965671278 Xi(tan=-5.66494, x=0.173837, y=-0.984775): -5.671281819618\n\n    test 695 287 286.946273607855 Phi(tan=-3.28186, x=0.292372, y=-0.959522): -3.270852618484\n    test 696 287 287.000000000000 Beta(tan=-3.27085, x=0.292372, y=-0.956305): -3.270852618484\n    test 697 287 287.053876189570 Theta(tan=-3.25989, x=0.292372, y=-0.953098): -3.270852618484\n    test 698 287 287.026891215965 Mu(tan=-3.26537, x=0.292821, y=-0.956167), iteration=3: -3.270852618484\n    test 699 287 287.053765856507 Chi(tan=-3.25991, x=1.0, y=-3.25991), iteration=3: -3.270852618484\n    test 700 287 287.017930102981 Xi(tan=-3.2672, x=0.58797, y=-1.92101), iteration=2: -3.270852618484\n\n    test 701 287 286.946273607855 Phi(tan=-3.28186, x=0.291475, y=-0.956578): -3.270852618484\n    test 702 287 287.000000000000 Beta(tan=-3.27085, x=0.292372, y=-0.956305): -3.270852618484\n    test 703 287 287.053876189570 Theta(tan=-3.25989, x=0.293271, y=-0.956029): -3.270852618484\n    test 704 287 287.026891215965 Mu(tan=-3.26537, x=0.292821, y=-0.956167): -3.270852618484\n    test 705 287 287.053765856507 Chi(tan=-3.25991, x=0.293269, y=-0.95603): -3.270852618484\n    test 706 287 287.017930102981 Xi(tan=-3.2672, x=0.292671, y=-0.956213): -3.270852618484\n\n    test 707 294 293.928580656019 Phi(tan=-2.25359, x=0.406737, y=-0.916619): -2.246036773904\n    test 708 294 294.000000000000 Beta(tan=-2.24604, x=0.406737, y=-0.913545): -2.246036773904\n    test 709 294 294.071580020440 Theta(tan=-2.23851, x=0.406737, y=-0.910483): -2.246036773904\n    test 710 294 294.035739737781 Mu(tan=-2.24227, x=0.407306, y=-0.913292), iteration=2: -2.246036773904\n    test 711 294 294.071446269026 Chi(tan=-2.23852, x=1.0, y=-2.23852), iteration=3: -2.246036773904\n    test 712 294 294.023831365709 Xi(tan=-2.24352, x=0.817889, y=-1.83495), iteration=3: -2.246036773904\n\n    test 713 294 293.928580656019 Phi(tan=-2.25359, x=0.405598, y=-0.914052): -2.246036773904\n    test 714 294 294.000000000000 Beta(tan=-2.24604, x=0.406737, y=-0.913545): -2.246036773904\n    test 715 294 294.071580020440 Theta(tan=-2.23851, x=0.407878, y=-0.913037): -2.246036773904\n    test 716 294 294.035739737781 Mu(tan=-2.24227, x=0.407306, y=-0.913292): -2.246036773904\n    test 717 294 294.071446269026 Chi(tan=-2.23852, x=0.407875, y=-0.913038): -2.246036773904\n    test 718 294 294.023831365709 Xi(tan=-2.24352, x=0.407117, y=-0.913376): -2.246036773904\n\n    test 719 301 300.915116613042 Phi(tan=-1.66988, x=0.515038, y=-0.860051): -1.664279482351\n    test 720 301 301.000000000000 Beta(tan=-1.66428, x=0.515038, y=-0.857167): -1.664279482351\n    test 721 301 301.085017327347 Theta(tan=-1.6587, x=0.515038, y=-0.854293): -1.664279482351\n    test 722 301 301.042466766526 Mu(tan=-1.66149, x=0.515673, y=-0.856785), iteration=2: -1.664279482351\n    test 723 301 301.084877498227 Chi(tan=-1.65871, x=1.0, y=-1.65871), iteration=3: -1.664279482351\n    test 724 301 301.028319023279 Xi(tan=-1.66242, x=1.03555, y=-1.72152), iteration=2: -1.664279482351\n\n    test 725 301 300.915116613042 Phi(tan=-1.66988, x=0.513768, y=-0.857929): -1.664279482351\n    test 726 301 301.000000000000 Beta(tan=-1.66428, x=0.515038, y=-0.857167): -1.664279482351\n    test 727 301 301.085017327347 Theta(tan=-1.6587, x=0.516309, y=-0.856402): -1.664279482351\n    test 728 301 301.042466766526 Mu(tan=-1.66149, x=0.515673, y=-0.856785): -1.664279482351\n    test 729 301 301.084877498227 Chi(tan=-1.65871, x=0.516307, y=-0.856403): -1.664279482351\n    test 730 301 301.028319023279 Xi(tan=-1.66242, x=0.515462, y=-0.856913): -1.664279482351\n\n    test 731 308 307.906683665119 Phi(tan=-1.28425, x=0.615661, y=-0.790662): -1.279941632193\n    test 732 308 308.000000000000 Beta(tan=-1.27994, x=0.615661, y=-0.788011): -1.279941632193\n    test 733 308 308.093392183249 Theta(tan=-1.27565, x=0.615661, y=-0.785369): -1.279941632193\n    test 734 308 308.046672369053 Mu(tan=-1.27779, x=0.616303, y=-0.787509), iteration=3: -1.279941632193\n    test 735 308 308.093262395276 Chi(tan=-1.27566, x=1.0, y=-1.27566), iteration=3: -1.279941632193\n    test 736 308 308.031126109597 Xi(tan=-1.27851, x=1.23771, y=-1.58243), iteration=2: -1.279941632193\n\n    test 737 308 307.906683665119 Phi(tan=-1.28425, x=0.614377, y=-0.789012): -1.279941632193\n    test 738 308 308.000000000000 Beta(tan=-1.27994, x=0.615661, y=-0.788011): -1.279941632193\n    test 739 308 308.093392183249 Theta(tan=-1.27565, x=0.616945, y=-0.787006): -1.279941632193\n    test 740 308 308.046672369053 Mu(tan=-1.27779, x=0.616303, y=-0.787509): -1.279941632193\n    test 741 308 308.093262395276 Chi(tan=-1.27566, x=0.616943, y=-0.787008): -1.279941632193\n    test 742 308 308.031126109597 Xi(tan=-1.27851, x=0.616089, y=-0.787676): -1.279941632193\n\n    test 743 315 314.903787849420 Phi(tan=-1.00336, x=0.707107, y=-0.709486): -1.000000000000\n    test 744 315 315.000000000000 Beta(tan=-1, x=0.707107, y=-0.707107): -1.000000000000\n    test 745 315 315.096212150580 Theta(tan=-0.996647, x=0.707107, y=-0.704736): -1.000000000000\n    test 746 315 315.048106063986 Mu(tan=-0.998322, x=0.7077, y=-0.706513), iteration=2: -1.000000000000\n    test 747 315 315.096104515452 Chi(tan=-0.996651, x=1.0, y=-0.996651), iteration=2: -1.000000000000\n    test 748 315 315.032085072505 Xi(tan=-0.998881, x=1.42136, y=-1.41977), iteration=3: -1.000000000000\n\n    test 749 315 314.903787849420 Phi(tan=-1.00336, x=0.705918, y=-0.708293): -1.000000000000\n    test 750 315 315.000000000000 Beta(tan=-1, x=0.707107, y=-0.707107): -1.000000000000\n    test 751 315 315.096212150580 Theta(tan=-0.996647, x=0.708293, y=-0.705918): -1.000000000000\n    test 752 315 315.048106063986 Mu(tan=-0.998322, x=0.7077, y=-0.706513): -1.000000000000\n    test 753 315 315.096104515452 Chi(tan=-0.996651, x=0.708292, y=-0.70592): -1.000000000000\n    test 754 315 315.032085072505 Xi(tan=-0.998881, x=0.707503, y=-0.706711): -1.000000000000\n\n    test 755 322 321.906607816751 Phi(tan=-0.783914, x=0.788011, y=-0.617733): -0.781285626507\n    test 756 322 322.000000000000 Beta(tan=-0.781286, x=0.788011, y=-0.615661): -0.781285626507\n    test 757 322 322.093316334881 Theta(tan=-0.778666, x=0.788011, y=-0.613597): -0.781285626507\n    test 758 322 322.046681850102 Mu(tan=-0.779974, x=0.788512, y=-0.615019), iteration=3: -0.781285626507\n    test 759 322 322.093237214147 Chi(tan=-0.778668, x=1.0, y=-0.778668), iteration=3: -0.781285626507\n    test 760 322 322.031137911470 Xi(tan=-0.780411, x=1.58377, y=-1.23599), iteration=2: -0.781285626507\n\n    test 761 322 321.906607816751 Phi(tan=-0.783914, x=0.787006, y=-0.616945): -0.781285626507\n    test 762 322 322.000000000000 Beta(tan=-0.781286, x=0.788011, y=-0.615661): -0.781285626507\n    test 763 322 322.093316334881 Theta(tan=-0.778666, x=0.789012, y=-0.614377): -0.781285626507\n    test 764 322 322.046681850102 Mu(tan=-0.779974, x=0.788512, y=-0.615019): -0.781285626507\n    test 765 322 322.093237214147 Chi(tan=-0.778668, x=0.789012, y=-0.614378): -0.781285626507\n    test 766 322 322.031137911470 Xi(tan=-0.780411, x=0.788345, y=-0.615233): -0.781285626507\n\n    test 767 329 328.914982672653 Phi(tan=-0.602882, x=0.857167, y=-0.516771): -0.600860619028\n    test 768 329 329.000000000000 Beta(tan=-0.600861, x=0.857167, y=-0.515038): -0.600860619028\n    test 769 329 329.084883386958 Theta(tan=-0.598846, x=0.857167, y=-0.513311): -0.600860619028\n    test 770 329 329.042483509069 Mu(tan=-0.599852, x=0.857549, y=-0.514402), iteration=3: -0.600860619028\n    test 771 329 329.084833030986 Chi(tan=-0.598847, x=1.0, y=-0.598847), iteration=3: -0.600860619028\n    test 772 329 329.028339864157 Xi(tan=-0.600188, x=1.72254, y=-1.03385), iteration=2: -0.600860619028\n\n    test 773 329 328.914982672653 Phi(tan=-0.602882, x=0.856402, y=-0.516309): -0.600860619028\n    test 774 329 329.000000000000 Beta(tan=-0.600861, x=0.857167, y=-0.515038): -0.600860619028\n    test 775 329 329.084883386958 Theta(tan=-0.598846, x=0.857929, y=-0.513768): -0.600860619028\n    test 776 329 329.042483509069 Mu(tan=-0.599852, x=0.857549, y=-0.514402): -0.600860619028\n    test 777 329 329.084833030986 Chi(tan=-0.598847, x=0.857929, y=-0.513768): -0.600860619028\n    test 778 329 329.028339864157 Xi(tan=-0.600188, x=0.857422, y=-0.514614): -0.600860619028\n\n    test 779 336 335.928419979560 Phi(tan=-0.446726, x=0.913545, y=-0.408105): -0.445228685309\n    test 780 336 336.000000000000 Beta(tan=-0.445229, x=0.913545, y=-0.406737): -0.445228685309\n    test 781 336 336.071419343981 Theta(tan=-0.443736, x=0.913545, y=-0.405373): -0.445228685309\n    test 782 336 336.035759822314 Mu(tan=-0.444481, x=0.913799, y=-0.406166), iteration=3: -0.445228685309\n    test 783 336 336.071392925660 Chi(tan=-0.443736, x=1.0, y=-0.443736), iteration=2: -0.445228685309\n    test 784 336 336.023856366648 Xi(tan=-0.44473, x=1.83563, y=-0.816362), iteration=3: -0.445228685309\n\n    test 785 336 335.928419979560 Phi(tan=-0.446726, x=0.913037, y=-0.407878): -0.445228685309\n    test 786 336 336.000000000000 Beta(tan=-0.445229, x=0.913545, y=-0.406737): -0.445228685309\n    test 787 336 336.071419343981 Theta(tan=-0.443736, x=0.914052, y=-0.405598): -0.445228685309\n    test 788 336 336.035759822314 Mu(tan=-0.444481, x=0.913799, y=-0.406166): -0.445228685309\n    test 789 336 336.071392925660 Chi(tan=-0.443736, x=0.914052, y=-0.405598): -0.445228685309\n    test 790 336 336.023856366648 Xi(tan=-0.44473, x=0.913715, y=-0.406356): -0.445228685309\n\n    test 791 343 342.946123810430 Phi(tan=-0.306759, x=0.956305, y=-0.293355): -0.305730681459\n    test 792 343 343.000000000000 Beta(tan=-0.305731, x=0.956305, y=-0.292372): -0.305730681459\n    test 793 343 343.053726392145 Theta(tan=-0.304706, x=0.956305, y=-0.291391): -0.305730681459\n    test 794 343 343.026909940603 Mu(tan=-0.305217, x=0.956442, y=-0.291923), iteration=3: -0.305730681459\n    test 795 343 343.053716124954 Chi(tan=-0.304706, x=1.0, y=-0.304706), iteration=3: -0.305730681459\n    test 796 343 343.017953411145 Xi(tan=-0.305388, x=1.92138, y=-0.586767), iteration=2: -0.305730681459\n\n    test 797 343 342.946123810430 Phi(tan=-0.306759, x=0.956029, y=-0.293271): -0.305730681459\n    test 798 343 343.000000000000 Beta(tan=-0.305731, x=0.956305, y=-0.292372): -0.305730681459\n    test 799 343 343.053726392145 Theta(tan=-0.304706, x=0.956578, y=-0.291475): -0.305730681459\n    test 800 343 343.026909940603 Mu(tan=-0.305217, x=0.956442, y=-0.291923): -0.305730681459\n    test 801 343 343.053716124955 Chi(tan=-0.304706, x=0.956578, y=-0.291475): -0.305730681459\n    test 802 343 343.017953411145 Xi(tan=-0.305388, x=0.956396, y=-0.292072): -0.305730681459\n\n    test 803 350 349.967041472227 Phi(tan=-0.17692, x=0.984808, y=-0.174232): -0.176326980708\n    test 804 350 350.000000000000 Beta(tan=-0.176327, x=0.984808, y=-0.173648): -0.176326980708\n    test 805 350 350.032854677782 Theta(tan=-0.175736, x=0.984808, y=-0.173066): -0.176326980708\n    test 806 350 350.016459740333 Mu(tan=-0.176031, x=0.984858, y=-0.173365), iteration=3: -0.176326980708\n    test 807 350 350.032852463246 Chi(tan=-0.175736, x=1.0, y=-0.175736), iteration=3: -0.176326980708\n    test 808 350 350.010981830106 Xi(tan=-0.176129, x=1.97853, y=-0.348476), iteration=3: -0.176326980708\n\n    test 809 350 349.967041472227 Phi(tan=-0.17692, x=0.984708, y=-0.174215): -0.176326980708\n    test 810 350 350.000000000000 Beta(tan=-0.176327, x=0.984808, y=-0.173648): -0.176326980708\n    test 811 350 350.032854677782 Theta(tan=-0.175736, x=0.984907, y=-0.173083): -0.176326980708\n    test 812 350 350.016459740333 Mu(tan=-0.176031, x=0.984858, y=-0.173365): -0.176326980708\n    test 813 350 350.032852463246 Chi(tan=-0.175736, x=0.984907, y=-0.173083): -0.176326980708\n    test 814 350 350.010981830106 Xi(tan=-0.176129, x=0.984841, y=-0.173459): -0.176326980708\n\n    test 815 357 356.989926259040 Phi(tan=-0.0525841, x=0.99863, y=-0.052512): -0.052407779283\n    test 816 357 357.000000000000 Beta(tan=-0.0524078, x=0.99863, y=-0.052336): -0.052407779283\n    test 817 357 357.010040150331 Theta(tan=-0.0522321, x=0.99863, y=-0.0521605): -0.052407779283\n    test 818 357 357.005030554687 Mu(tan=-0.0523197, x=0.998634, y=-0.0522483), iteration=2: -0.052407779283\n    test 819 357 357.010040088861 Chi(tan=-0.0522321, x=1.0, y=-0.0522321), iteration=2: -0.052407779283\n    test 820 357 357.003356419920 Xi(tan=-0.052349, x=2.00623, y=-0.105024), iteration=3: -0.052407779283\n\n    test 821 357 356.989926259040 Phi(tan=-0.0525841, x=0.99862, y=-0.0525115): -0.052407779283\n    test 822 357 357.000000000000 Beta(tan=-0.0524078, x=0.99863, y=-0.052336): -0.052407779283\n    test 823 357 357.010040150331 Theta(tan=-0.0522321, x=0.998639, y=-0.052161): -0.052407779283\n    test 824 357 357.005030554687 Mu(tan=-0.0523197, x=0.998634, y=-0.0522483): -0.052407779283\n    test 825 357 357.010040088861 Chi(tan=-0.0522321, x=0.998639, y=-0.052161): -0.052407779283\n    test 826 357 357.003356419920 Xi(tan=-0.052349, x=0.998633, y=-0.0522775): -0.052407779283\n\n    test 827  0 0.000000000000 Phi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 828  0 0.000000000000 Beta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 829  0 0.000000000000 Theta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 830  0 0.000000000000 Mu(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 831  0 0.000000000000 Chi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 832  0 0.000000000000 Xi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n\n    test 833  0 0.000000000000 Phi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 834  0 0.000000000000 Beta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 835  0 0.000000000000 Theta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 836  0 0.000000000000 Mu(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 837  0 0.000000000000 Chi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 838  0 0.000000000000 Xi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n\n    test 839  7 7.046702961824 Phi(tan=0.123612, x=1.0, y=0.123612): 0.122784560903\n    test 840  7 7.023313050940 Beta(tan=0.123198, x=1.0, y=0.123198): 0.122784560903\n    test 841  7 6.999999220873 Theta(tan=0.122785, x=1.0, y=0.122785): 0.122784560903\n    test 842  7 7.011632399558 Mu(tan=0.122991, x=0.992521, y=0.122071), iteration=3: 0.122784560903\n    test 843  7 7.000000000000 Chi(tan=0.122785, x=0.992546, y=0.121869): 0.122784560903\n    test 844  7 7.015519711118 Xi(tan=0.12306, x=1.99394, y=0.245373), iteration=3: 0.122784560903\n\n    test 845  7 7.046702961824 Phi(tan=0.123612, x=0.992446, y=0.122678): 0.122784560903\n    test 846  7 7.023313050940 Beta(tan=0.123198, x=0.992496, y=0.122273): 0.122784560903\n    test 847  7 6.999999220873 Theta(tan=0.122785, x=0.992546, y=0.121869): 0.122784560903\n    test 848  7 7.011632399558 Mu(tan=0.122991, x=0.992521, y=0.122071): 0.122784560903\n    test 849  7 7.000000000000 Chi(tan=0.122785, x=0.992546, y=0.121869): 0.122784560903\n    test 850  7 7.015519711118 Xi(tan=0.12306, x=0.992513, y=0.122138): 0.122784560903\n\n    test 851 14 14.090600177106 Phi(tan=0.251008, x=1.0, y=0.251008): 0.249328002843\n    test 852 14 14.045229997878 Beta(tan=0.250167, x=1.0, y=0.250167): 0.249328002843\n    test 853 14 13.999994044068 Theta(tan=0.249328, x=1.0, y=0.249328): 0.249328002843\n    test 854 14 14.022570138869 Mu(tan=0.249746, x=0.9702, y=0.242304), iteration=2: 0.249328002843\n    test 855 14 14.000000000000 Chi(tan=0.249328, x=0.970296, y=0.241922): 0.249328002843\n    test 856 14 14.030111806086 Xi(tan=0.249886, x=1.94905, y=0.487041), iteration=3: 0.249328002843\n\n    test 857 14 14.090600177106 Phi(tan=0.251008, x=0.969912, y=0.243456): 0.249328002843\n    test 858 14 14.045229997878 Beta(tan=0.250167, x=0.970104, y=0.242688): 0.249328002843\n    test 859 14 13.999994044068 Theta(tan=0.249328, x=0.970296, y=0.241922): 0.249328002843\n    test 860 14 14.022570138869 Mu(tan=0.249746, x=0.9702, y=0.242304): 0.249328002843\n    test 861 14 14.000000000000 Chi(tan=0.249328, x=0.970296, y=0.241922): 0.249328002843\n    test 862 14 14.030111806086 Xi(tan=0.249886, x=0.970168, y=0.242432): 0.249328002843\n\n    test 863 21 21.129059974007 Phi(tan=0.386451, x=1.0, y=0.386451): 0.383864035035\n    test 864 21 21.064440302978 Beta(tan=0.385155, x=1.0, y=0.385155): 0.383864035035\n    test 865 21 20.999981382849 Theta(tan=0.383864, x=1.0, y=0.383864): 0.383864035035\n    test 866 21 21.032160674247 Mu(tan=0.384508, x=0.933379, y=0.358892), iteration=3: 0.383864035035\n    test 867 21 21.000000000000 Chi(tan=0.383864, x=0.93358, y=0.358368): 0.383864035035\n    test 868 21 21.042905101186 Xi(tan=0.384723, x=1.875, y=0.721358), iteration=2: 0.383864035035\n\n    test 869 21 21.129059974007 Phi(tan=0.386451, x=0.932771, y=0.36047): 0.383864035035\n    test 870 21 21.064440302978 Beta(tan=0.385155, x=0.933177, y=0.359418): 0.383864035035\n    test 871 21 20.999981382849 Theta(tan=0.383864, x=0.933581, y=0.358368): 0.383864035035\n    test 872 21 21.032160674247 Mu(tan=0.384508, x=0.933379, y=0.358892): 0.383864035035\n    test 873 21 21.000000000000 Chi(tan=0.383864, x=0.93358, y=0.358368): 0.383864035035\n    test 874 21 21.042905101186 Xi(tan=0.384723, x=0.933312, y=0.359067): 0.383864035035\n\n    test 875 28 28.159786713307 Phi(tan=0.535292, x=1.0, y=0.535292): 0.531709431661\n    test 876 28 28.079798849800 Beta(tan=0.533497, x=1.0, y=0.533497): 0.531709431661\n    test 877 28 27.999960443908 Theta(tan=0.531709, x=1.0, y=0.531709): 0.531709431661\n    test 878 28 28.039832991509 Mu(tan=0.532602, x=0.882621, y=0.470085), iteration=3: 0.531709431661\n    test 879 28 28.000000000000 Chi(tan=0.531709, x=0.882948, y=0.469472): 0.531709431661\n    test 880 28 28.053137609764 Xi(tan=0.5329, x=1.77295, y=0.944804), iteration=2: 0.531709431661\n\n    test 881 28 28.159786713307 Phi(tan=0.535292, x=0.881635, y=0.471932): 0.531709431661\n    test 882 28 28.079798849800 Beta(tan=0.533497, x=0.882293, y=0.470701): 0.531709431661\n    test 883 28 27.999960443908 Theta(tan=0.531709, x=0.882948, y=0.469471): 0.531709431661\n    test 884 28 28.039832991509 Mu(tan=0.532602, x=0.882621, y=0.470085): 0.531709431661\n    test 885 28 28.000000000000 Chi(tan=0.531709, x=0.882948, y=0.469472): 0.531709431661\n    test 886 28 28.053137609764 Xi(tan=0.5329, x=0.882512, y=0.47029): 0.531709431661\n\n    test 887 35 35.180959671970 Phi(tan=0.704925, x=1.0, y=0.704925): 0.700207538210\n    test 888 35 35.090394869583 Beta(tan=0.702561, x=1.0, y=0.702561): 0.700207538210\n    test 889 35 34.999933133637 Theta(tan=0.700206, x=1.0, y=0.700206): 0.700207538210\n    test 890 35 35.045131821097 Mu(tan=0.701382, x=0.8187, y=0.574222), iteration=3: 0.700207538210\n    test 891 35 35.000000000000 Chi(tan=0.700208, x=0.819152, y=0.573576): 0.700207538210\n    test 892 35 35.060202265669 Xi(tan=0.701775, x=1.64445, y=1.15403), iteration=2: 0.700207538210\n\n    test 893 35 35.180959671970 Phi(tan=0.704925, x=0.817336, y=0.576161): 0.700207538210\n    test 894 35 35.090394869583 Beta(tan=0.702561, x=0.818246, y=0.574868): 0.700207538210\n    test 895 35 34.999933133637 Theta(tan=0.700206, x=0.819153, y=0.573575): 0.700207538210\n    test 896 35 35.045131821097 Mu(tan=0.701382, x=0.8187, y=0.574222): 0.700207538210\n    test 897 35 35.000000000000 Chi(tan=0.700208, x=0.819152, y=0.573576): 0.700207538210\n    test 898 35 35.060202265669 Xi(tan=0.701775, x=0.818549, y=0.574437): 0.700207538210\n\n    test 899 42 42.191340028820 Phi(tan=0.906469, x=1.0, y=0.906469): 0.900404044298\n    test 900 42 42.095605637640 Beta(tan=0.90343, x=1.0, y=0.90343): 0.900404044298\n    test 901 42 41.999903781382 Theta(tan=0.900401, x=1.0, y=0.900401): 0.900404044298\n    test 902 42 42.047744555205 Mu(tan=0.901914, x=0.742587, y=0.66975), iteration=2: 0.900404044298\n    test 903 42 42.000000000000 Chi(tan=0.900404, x=0.743145, y=0.669131): 0.900404044298\n    test 904 42 42.063682784184 Xi(tan=0.902419, x=1.49147, y=1.34593), iteration=2: 0.900404044298\n\n    test 905 42 42.191340028820 Phi(tan=0.906469, x=0.740906, y=0.671609): 0.900404044298\n    test 906 42 42.095605637640 Beta(tan=0.90343, x=0.742027, y=0.67037): 0.900404044298\n    test 907 42 41.999903781382 Theta(tan=0.900401, x=0.743146, y=0.669129): 0.900404044298\n    test 908 42 42.047744555205 Mu(tan=0.901914, x=0.742587, y=0.66975): 0.900404044298\n    test 909 42 42.000000000000 Chi(tan=0.900404, x=0.743145, y=0.669131): 0.900404044298\n    test 910 42 42.063682784184 Xi(tan=0.902419, x=0.742401, y=0.669956): 0.900404044298\n\n    test 911 49 49.190339913877 Phi(tan=1.15812, x=1.0, y=1.15812): 1.150368407221\n    test 912 49 49.095131857689 Beta(tan=1.15423, x=1.0, y=1.15423): 1.150368407221\n    test 913 49 48.999878238776 Theta(tan=1.15036, x=1.0, y=1.15036): 1.150368407221\n    test 914 49 49.047519300953 Mu(tan=1.1523, x=0.655433, y=0.755253), iteration=2: 1.150368407221\n    test 915 49 49.000000000000 Chi(tan=1.15037, x=0.656059, y=0.75471): 1.150368407221\n    test 916 49 49.063377582472 Xi(tan=1.15294, x=1.31633, y=1.51765), iteration=3: 1.150368407221\n\n    test 917 49 49.190339913877 Phi(tan=1.15812, x=0.653548, y=0.756885): 1.150368407221\n    test 918 49 49.095131857689 Beta(tan=1.15423, x=0.654805, y=0.755798): 1.150368407221\n    test 919 49 48.999878238776 Theta(tan=1.15036, x=0.656061, y=0.754708): 1.150368407221\n    test 920 49 49.047519300953 Mu(tan=1.1523, x=0.655433, y=0.755253): 1.150368407221\n    test 921 49 49.000000000000 Chi(tan=1.15037, x=0.656059, y=0.75471): 1.150368407221\n    test 922 49 49.063377582472 Xi(tan=1.15294, x=0.655224, y=0.755435): 1.150368407221\n\n    test 923 56 56.178050530882 Phi(tan=1.49254, x=1.0, y=1.49254): 1.482560968513\n    test 924 56 56.089013022552 Beta(tan=1.48754, x=1.0, y=1.48754): 1.482560968513\n    test 925 56 55.999862564323 Theta(tan=1.48255, x=1.0, y=1.48255): 1.482560968513\n    test 926 56 56.044473121630 Mu(tan=1.48505, x=0.558549, y=0.829471), iteration=2: 1.482560968513\n    test 927 56 56.000000000000 Chi(tan=1.48256, x=0.559193, y=0.829038): 1.482560968513\n    test 928 56 56.059310533694 Xi(tan=1.48588, x=1.12168, y=1.66668), iteration=2: 1.482560968513\n\n    test 929 56 56.178050530882 Phi(tan=1.49254, x=0.556614, y=0.830771): 1.482560968513\n    test 930 56 56.089013022552 Beta(tan=1.48754, x=0.557904, y=0.829905): 1.482560968513\n    test 931 56 55.999862564323 Theta(tan=1.48255, x=0.559195, y=0.829036): 1.482560968513\n    test 932 56 56.044473121630 Mu(tan=1.48505, x=0.558549, y=0.829471): 1.482560968513\n    test 933 56 56.000000000000 Chi(tan=1.48256, x=0.559193, y=0.829038): 1.482560968513\n    test 934 56 56.059310533694 Xi(tan=1.48588, x=0.558334, y=0.829616): 1.482560968513\n\n    test 935 63 63.155229303561 Phi(tan=1.97583, x=1.0, y=1.97583): 1.962610505505\n    test 936 63 63.077622413475 Beta(tan=1.9692, x=1.0, y=1.9692): 1.962610505505\n    test 937 63 62.999861601059 Theta(tan=1.9626, x=1.0, y=1.9626): 1.962610505505\n    test 938 63 63.038790161591 Mu(tan=1.9659, x=0.453387, y=0.891314), iteration=2: 1.962610505505\n    test 939 63 63.000000000000 Chi(tan=1.96261, x=0.45399, y=0.891007): 1.962610505505\n    test 940 63 63.051728205304 Xi(tan=1.967, x=0.910441, y=1.79084), iteration=3: 1.962610505505\n\n    test 941 63 63.155229303561 Phi(tan=1.97583, x=0.451575, y=0.892233): 1.962610505505\n    test 942 63 63.077622413475 Beta(tan=1.9692, x=0.452783, y=0.891621): 1.962610505505\n    test 943 63 62.999861601059 Theta(tan=1.9626, x=0.453993, y=0.891005): 1.962610505505\n    test 944 63 63.038790161591 Mu(tan=1.9659, x=0.453387, y=0.891314): 1.962610505505\n    test 945 63 63.000000000000 Chi(tan=1.96261, x=0.45399, y=0.891007): 1.962610505505\n    test 946 63 63.051728205304 Xi(tan=1.967, x=0.453186, y=0.891416): 1.962610505505\n\n    test 947 70 70.123248546098 Phi(tan=2.76598, x=1.0, y=2.76598): 2.747477419455\n    test 948 70 70.061642655565 Beta(tan=2.7567, x=1.0, y=2.7567): 2.747477419455\n    test 949 70 69.999877780085 Theta(tan=2.74746, x=1.0, y=2.74746): 2.747477419455\n    test 950 70 70.030809967607 Mu(tan=2.75208, x=0.341515, y=0.939876), iteration=3: 2.747477419455\n    test 951 70 70.000000000000 Chi(tan=2.74748, x=0.34202, y=0.939693): 2.747477419455\n    test 952 70 70.041084059681 Xi(tan=2.75362, x=0.685758, y=1.88832), iteration=3: 2.747477419455\n\n    test 953 70 70.123248546098 Phi(tan=2.76598, x=0.339998, y=0.940426): 2.747477419455\n    test 954 70 70.061642655565 Beta(tan=2.7567, x=0.341009, y=0.94006): 2.747477419455\n    test 955 70 69.999877780085 Theta(tan=2.74746, x=0.342022, y=0.939692): 2.747477419455\n    test 956 70 70.030809967607 Mu(tan=2.75208, x=0.341515, y=0.939876): 2.747477419455\n    test 957 70 70.000000000000 Chi(tan=2.74748, x=0.34202, y=0.939693): 2.747477419455\n    test 958 70 70.041084059681 Xi(tan=2.75362, x=0.341346, y=0.939938): 2.747477419455\n\n    test 959 77 77.084010155505 Phi(tan=4.36064, x=1.0, y=4.36064): 4.331475874284\n    test 960 77 77.042023802893 Beta(tan=4.34602, x=1.0, y=4.34602): 4.331475874284\n    test 961 77 76.999910430182 Theta(tan=4.33144, x=1.0, y=4.33144): 4.331475874284\n    test 962 77 77.021006871193 Mu(tan=4.33873, x=0.224594, y=0.974452), iteration=2: 4.331475874284\n    test 963 77 77.000000000000 Chi(tan=4.33148, x=0.224951, y=0.97437): 4.331475874284\n    test 964 77 77.028010821264 Xi(tan=4.34116, x=0.450965, y=1.95771), iteration=2: 4.331475874284\n\n    test 965 77 77.084010155505 Phi(tan=4.36064, x=0.223522, y=0.974699): 4.331475874284\n    test 966 77 77.042023802893 Beta(tan=4.34602, x=0.224236, y=0.974535): 4.331475874284\n    test 967 77 76.999910430182 Theta(tan=4.33144, x=0.224953, y=0.97437): 4.331475874284\n    test 968 77 77.021006871193 Mu(tan=4.33873, x=0.224594, y=0.974452): 4.331475874284\n    test 969 77 77.000000000000 Chi(tan=4.33148, x=0.224951, y=0.97437): 4.331475874284\n    test 970 77 77.028010821264 Xi(tan=4.34116, x=0.224475, y=0.97448): 4.331475874284\n\n    test 971 84 84.039832232299 Phi(tan=9.57842, x=1.0, y=9.57842): 9.514364454223\n    test 972 84 84.019926748698 Beta(tan=9.5463, x=1.0, y=9.5463): 9.514364454223\n    test 973 84 83.999955757312 Theta(tan=9.51429, x=1.0, y=9.51429): 9.514364454223\n    test 974 84 84.009961757905 Mu(tan=9.5303, x=0.104356, y=0.99454), iteration=3: 9.514364454223\n    test 975 84 84.000000000000 Chi(tan=9.51436, x=0.104528, y=0.994522): 9.514364454223\n    test 976 84 84.013282808640 Xi(tan=9.53563, x=0.209532, y=1.99802), iteration=2: 9.514364454223\n\n    test 977 84 84.039832232299 Phi(tan=9.57842, x=0.103837, y=0.994594): 9.514364454223\n    test 978 84 84.019926748698 Beta(tan=9.5463, x=0.104183, y=0.994558): 9.514364454223\n    test 979 84 83.999955757312 Theta(tan=9.51429, x=0.104529, y=0.994522): 9.514364454223\n    test 980 84 84.009961757905 Mu(tan=9.5303, x=0.104356, y=0.99454): 9.514364454223\n    test 981 84 84.000000000000 Chi(tan=9.51436, x=0.104528, y=0.994522): 9.514364454223\n    test 982 84 84.013282808640 Xi(tan=9.53563, x=0.104298, y=0.994546): 9.514364454223\n\n    test 983 91 90.993314421151 Phi(tan=-57.6756, x=-1, y=57.6756): -57.289961630759\n    test 984 91 90.996655347181 Beta(tan=-57.4823, x=-1, y=57.4823): -57.289961630759\n    test 985 91 91.000007505573 Theta(tan=-57.2895, x=-1, y=57.2895): -57.289961630759\n    test 986 91 90.998327910374 Mu(tan=-57.3859, x=-0.0174232, y=0.999848), iteration=3: -57.289961630759\n    test 987 91 91.000000000000 Chi(tan=-57.29, x=-0.0174524, y=0.999848): -57.289961630759\n    test 988 91 90.997770483630 Xi(tan=-57.418, x=-0.0349834, y=2.00868), iteration=2: -57.289961630759\n\n    test 989 91 90.993314421151 Phi(tan=-57.6756, x=-0.0173357, y=0.99985): -57.289961630760  FAILED, KNOWN (8.1857e-15), expected -57.289961630759\n    test 990 91 90.996655347181 Beta(tan=-57.4823, x=-0.017394, y=0.999849): -57.289961630760  FAILED, KNOWN (3.72077e-15), expected -57.289961630759\n    test 991 91 91.000007505573 Theta(tan=-57.2895, x=-0.0174525, y=0.999848): -57.289961630759\n    test 992 91 90.998327910374 Mu(tan=-57.3859, x=-0.0174232, y=0.999848): -57.289961630759\n    test 993 91 91.000000000000 Chi(tan=-57.29, x=-0.0174524, y=0.999848): -57.289961630759\n    test 994 91 90.997770483630 Xi(tan=-57.418, x=-0.0174135, y=0.999848): -57.289961630760  FAILED, KNOWN (3.8448e-15), expected -57.289961630759\n\n    test 995 98 97.947189249597 Phi(tan=-7.16327, x=-1, y=7.16327): -7.115369722384\n    test 996 98 97.973581022657 Beta(tan=-7.13925, x=-1, y=7.13925): -7.115369722384\n    test 997 98 98.000058157653 Theta(tan=-7.11532, x=-1, y=7.11532): -7.115369722384\n    test 998 98 97.986792871261 Mu(tan=-7.12729, x=-0.138945, y=0.9903), iteration=3: -7.115369722384\n    test 999 98 98.000000000000 Chi(tan=-7.11537, x=-0.139173, y=0.990268): -7.115369722384\n    test 1000 98 97.982389787937 Xi(tan=-7.13127, x=-0.278984, y=1.98951), iteration=3: -7.115369722384\n\n    test 1001 98 97.947189249597 Phi(tan=-7.16327, x=-0.13826, y=0.990396): -7.115369722384\n    test 1002 98 97.973581022657 Beta(tan=-7.13925, x=-0.138716, y=0.990332): -7.115369722384\n    test 1003 98 98.000058157653 Theta(tan=-7.11532, x=-0.139174, y=0.990268): -7.115369722384\n    test 1004 98 97.986792871261 Mu(tan=-7.12729, x=-0.138945, y=0.9903): -7.115369722384\n    test 1005 98 98.000000000000 Chi(tan=-7.11537, x=-0.139173, y=0.990268): -7.115369722384\n    test 1006 98 97.982389787937 Xi(tan=-7.13127, x=-0.138869, y=0.990311): -7.115369722384\n\n    test 1007 105 104.904166968877 Phi(tan=-3.75718, x=-1, y=3.75718): -3.732050807569\n    test 1008 105 104.952063867788 Beta(tan=-3.74458, x=-1, y=3.74458): -3.732050807569\n    test 1009 105 105.000100412186 Theta(tan=-3.73202, x=-1, y=3.73202): -3.732050807569\n    test 1010 105 104.976038435868 Mu(tan=-3.7383, x=-0.258415, y=0.966034), iteration=2: -3.732050807569\n    test 1011 105 105.000000000000 Chi(tan=-3.73205, x=-0.258819, y=0.965926): -3.732050807569\n    test 1012 105 104.968049034476 Xi(tan=-3.74039, x=-0.51888, y=1.94082), iteration=2: -3.732050807569\n\n    test 1013 105 104.904166968877 Phi(tan=-3.75718, x=-0.257203, y=0.966357): -3.732050807569\n    test 1014 105 104.952063867788 Beta(tan=-3.74458, x=-0.258011, y=0.966142): -3.732050807569\n    test 1015 105 105.000100412186 Theta(tan=-3.73202, x=-0.258821, y=0.965925): -3.732050807569\n    test 1016 105 104.976038435868 Mu(tan=-3.7383, x=-0.258415, y=0.966034): -3.732050807569\n    test 1017 105 105.000000000000 Chi(tan=-3.73205, x=-0.258819, y=0.965926): -3.732050807569\n    test 1018 105 104.968049034476 Xi(tan=-3.74039, x=-0.25828, y=0.96607): -3.732050807569\n\n    test 1019 112 111.866781479115 Phi(tan=-2.49175, x=-1, y=2.49175): -2.475086853416\n    test 1020 112 111.933374328805 Beta(tan=-2.4834, x=-1, y=2.4834): -2.475086853416\n    test 1021 112 112.000128613678 Theta(tan=-2.47507, x=-1, y=2.47507): -2.475086853416\n    test 1022 112 111.966700957925 Mu(tan=-2.47923, x=-0.374068, y=0.927401), iteration=2: -2.475086853416\n    test 1023 112 112.000000000000 Chi(tan=-2.47509, x=-0.374607, y=0.927184): -2.475086853416\n    test 1024 112 111.955596207977 Xi(tan=-2.48062, x=-0.751133, y=1.86328), iteration=3: -2.475086853416\n\n    test 1025 112 111.866781479115 Phi(tan=-2.49175, x=-0.37245, y=0.928052): -2.475086853416\n    test 1026 112 111.933374328805 Beta(tan=-2.4834, x=-0.373528, y=0.927619): -2.475086853416\n    test 1027 112 112.000128613678 Theta(tan=-2.47507, x=-0.374609, y=0.927183): -2.475086853416\n    test 1028 112 111.966700957925 Mu(tan=-2.47923, x=-0.374068, y=0.927401): -2.475086853416\n    test 1029 112 112.000000000000 Chi(tan=-2.47509, x=-0.374607, y=0.927184): -2.475086853416\n    test 1030 112 111.955596207977 Xi(tan=-2.48062, x=-0.373888, y=0.927474): -2.475086853416\n\n    test 1031 119 118.837244909169 Phi(tan=-1.8162, x=-1, y=1.8162): -1.804047755271\n    test 1032 119 118.918619560007 Beta(tan=-1.81011, x=-1, y=1.81011): -1.804047755271\n    test 1033 119 119.000139821268 Theta(tan=-1.80404, x=-1, y=1.80404): -1.804047755271\n    test 1034 119 118.959334139853 Mu(tan=-1.80707, x=-0.484189, y=0.874964), iteration=3: -1.804047755271\n    test 1035 119 119.000000000000 Chi(tan=-1.80405, x=-0.48481, y=0.87462): -1.804047755271\n    test 1036 119 118.945769514985 Xi(tan=-1.80808, x=-0.972309, y=1.75801), iteration=3: -1.804047755271\n\n    test 1037 119 118.837244909169 Phi(tan=-1.8162, x=-0.482323, y=0.875993): -1.804047755271\n    test 1038 119 118.918619560007 Beta(tan=-1.81011, x=-0.483567, y=0.875307): -1.804047755271\n    test 1039 119 119.000139821268 Theta(tan=-1.80404, x=-0.484812, y=0.874619): -1.804047755271\n    test 1040 119 118.959334139853 Mu(tan=-1.80707, x=-0.484189, y=0.874964): -1.804047755271\n    test 1041 119 119.000000000000 Chi(tan=-1.80405, x=-0.48481, y=0.87462): -1.804047755271\n    test 1042 119 118.945769514985 Xi(tan=-1.80808, x=-0.483982, y=0.875078): -1.804047755271\n\n    test 1043 126 125.817318309875 Phi(tan=-1.38565, x=-1, y=1.38565): -1.376381920471\n    test 1044 126 125.908678399154 Beta(tan=-1.38101, x=-1, y=1.38101): -1.376381920471\n    test 1045 126 126.000134283091 Theta(tan=-1.37638, x=-1, y=1.37638): -1.376381920471\n    test 1046 126 125.954376379912 Mu(tan=-1.37869, x=-0.587141, y=0.809485), iteration=3: -1.376381920471\n    test 1047 126 126.000000000000 Chi(tan=-1.37638, x=-0.587785, y=0.809017): -1.376381920471\n    test 1048 126 125.939153905889 Xi(tan=-1.37946, x=-1.17912, y=1.62655), iteration=2: -1.376381920471\n\n    test 1049 126 125.817318309875 Phi(tan=-1.38565, x=-0.585203, y=0.810887): -1.376381920471\n    test 1050 126 125.908678399154 Beta(tan=-1.38101, x=-0.586495, y=0.809953): -1.376381920471\n    test 1051 126 126.000134283091 Theta(tan=-1.37638, x=-0.587787, y=0.809016): -1.376381920471\n    test 1052 126 125.954376379912 Mu(tan=-1.37869, x=-0.587141, y=0.809485): -1.376381920471\n    test 1053 126 126.000000000000 Chi(tan=-1.37638, x=-0.587785, y=0.809017): -1.376381920471\n    test 1054 126 125.939153905889 Xi(tan=-1.37946, x=-0.586926, y=0.809641): -1.376381920471\n\n    test 1055 133 132.808205632210 Phi(tan=-1.07959, x=-1, y=1.07959): -1.072368710025\n    test 1056 133 132.904148646694 Beta(tan=-1.07597, x=-1, y=1.07597): -1.072368710025\n    test 1057 133 133.000115216221 Theta(tan=-1.07236, x=-1, y=1.07236): -1.072368710025\n    test 1058 133 132.952124558388 Mu(tan=-1.07417, x=-0.681387, y=0.731923), iteration=2: -1.072368710025\n    test 1059 133 133.000000000000 Chi(tan=-1.07237, x=-0.681998, y=0.731354): -1.072368710025\n    test 1060 133 132.936146061572 Xi(tan=-1.07477, x=-1.36848, y=1.4708), iteration=3: -1.072368710025\n\n    test 1061 133 132.808205632210 Phi(tan=-1.07959, x=-0.679546, y=0.733633): -1.072368710025\n    test 1062 133 132.904148646694 Beta(tan=-1.07597, x=-0.680774, y=0.732494): -1.072368710025\n    test 1063 133 133.000115216221 Theta(tan=-1.07236, x=-0.682, y=0.731352): -1.072368710025\n    test 1064 133 132.952124558388 Mu(tan=-1.07417, x=-0.681387, y=0.731923): -1.072368710025\n    test 1065 133 133.000000000000 Chi(tan=-1.07237, x=-0.681998, y=0.731354): -1.072368710025\n    test 1066 133 132.936146061572 Xi(tan=-1.07477, x=-0.681183, y=0.732113): -1.072368710025\n\n    test 1067 140 139.810477575926 Phi(tan=-0.844752, x=-1, y=0.844752): -0.839099631177\n    test 1068 140 139.905309888599 Beta(tan=-0.84192, x=-1, y=0.84192): -0.839099631177\n    test 1069 140 140.000087948921 Theta(tan=-0.839097, x=-1, y=0.839097): -0.839099631177\n    test 1070 140 139.952715856955 Mu(tan=-0.840507, x=-0.765514, y=0.64342), iteration=2: -0.839099631177\n    test 1071 140 140.000000000000 Chi(tan=-0.8391, x=-0.766044, y=0.642788): -0.839099631177\n    test 1072 140 139.936929981390 Xi(tan=-0.840977, x=-1.53755, y=1.29304), iteration=2: -0.839099631177\n\n    test 1073 140 139.810477575926 Phi(tan=-0.844752, x=-0.763914, y=0.645318): -0.839099631177\n    test 1074 140 139.905309888599 Beta(tan=-0.84192, x=-0.764981, y=0.644053): -0.839099631177\n    test 1075 140 140.000087948921 Theta(tan=-0.839097, x=-0.766045, y=0.642786): -0.839099631177\n    test 1076 140 139.952715856955 Mu(tan=-0.840507, x=-0.765514, y=0.64342): -0.839099631177\n    test 1077 140 140.000000000000 Chi(tan=-0.8391, x=-0.766044, y=0.642788): -0.839099631177\n    test 1078 140 139.936929981390 Xi(tan=-0.840977, x=-0.765336, y=0.64363): -0.839099631177\n\n    test 1079 147 146.824030870318 Phi(tan=-0.653783, x=-1, y=0.653783): -0.649407593198\n    test 1080 147 146.912104447745 Beta(tan=-0.651591, x=-1, y=0.651591): -0.649407593198\n    test 1081 147 147.000058627387 Theta(tan=-0.649406, x=-1, y=0.649406): -0.649407593198\n    test 1082 147 146.956118815411 Mu(tan=-0.650497, x=-0.838253, y=0.545281), iteration=2: -0.649407593198\n    test 1083 147 147.000000000000 Chi(tan=-0.649408, x=-0.838671, y=0.544639): -0.649407593198\n    test 1084 147 146.941464815429 Xi(tan=-0.650861, x=-1.68375, y=1.09589), iteration=2: -0.649407593198\n\n    test 1085 147 146.824030870318 Phi(tan=-0.653783, x=-0.836994, y=0.547212): -0.649407593198\n    test 1086 147 146.912104447745 Beta(tan=-0.651591, x=-0.837834, y=0.545925): -0.649407593198\n    test 1087 147 147.000058627387 Theta(tan=-0.649406, x=-0.838671, y=0.544638): -0.649407593198\n    test 1088 147 146.956118815411 Mu(tan=-0.650497, x=-0.838253, y=0.545281): -0.649407593198\n    test 1089 147 147.000000000000 Chi(tan=-0.649408, x=-0.838671, y=0.544639): -0.649407593198\n    test 1090 147 146.941464815429 Xi(tan=-0.650861, x=-0.838114, y=0.545496): -0.649407593198\n\n    test 1091 154 153.848086974871 Phi(tan=-0.491019, x=-1, y=0.491019): -0.487732588566\n    test 1092 154 153.924138158817 Beta(tan=-0.489373, x=-1, y=0.489373): -0.487732588566\n    test 1093 154 154.000032789582 Theta(tan=-0.487732, x=-1, y=0.487732): -0.487732588566\n    test 1094 154 153.962134341087 Mu(tan=-0.488551, x=-0.898504, y=0.438965), iteration=2: -0.487732588566\n    test 1095 154 154.000000000000 Chi(tan=-0.487733, x=-0.898794, y=0.438371): -0.487732588566\n    test 1096 154 153.949485950322 Xi(tan=-0.488824, x=-1.80488, y=0.88227), iteration=2: -0.487732588566\n\n    test 1097 154 153.848086974871 Phi(tan=-0.491019, x=-0.897629, y=0.440753): -0.487732588566\n    test 1098 154 153.924138158817 Beta(tan=-0.489373, x=-0.898213, y=0.439561): -0.487732588566\n    test 1099 154 154.000032789582 Theta(tan=-0.487732, x=-0.898794, y=0.438371): -0.487732588566\n    test 1100 154 153.962134341087 Mu(tan=-0.488551, x=-0.898504, y=0.438965): -0.487732588566\n    test 1101 154 154.000000000000 Chi(tan=-0.487733, x=-0.898794, y=0.438371): -0.487732588566\n    test 1102 154 153.949485950322 Xi(tan=-0.488824, x=-0.898407, y=0.439163): -0.487732588566\n\n    test 1103 161 160.881232023490 Phi(tan=-0.346648, x=-1, y=0.346648): -0.344327613290\n    test 1104 161 160.940701543262 Beta(tan=-0.345486, x=-1, y=0.345486): -0.344327613290\n    test 1105 161 161.000014139979 Theta(tan=-0.344327, x=-1, y=0.344327): -0.344327613290\n    test 1106 161 160.970406812614 Mu(tan=-0.344905, x=-0.94535, y=0.326056), iteration=3: -0.344327613290\n    test 1107 161 161.000000000000 Chi(tan=-0.344328, x=-0.945519, y=0.325568): -0.344327613290\n    test 1108 161 160.960519598812 Xi(tan=-0.345099, x=-1.89908, y=0.655369), iteration=3: -0.344327613290\n\n    test 1109 161 160.881232023490 Phi(tan=-0.346648, x=-0.944842, y=0.327527): -0.344327613290\n    test 1110 161 160.940701543262 Beta(tan=-0.345486, x=-0.945181, y=0.326547): -0.344327613290\n    test 1111 161 161.000014139979 Theta(tan=-0.344327, x=-0.945519, y=0.325568): -0.344327613290\n    test 1112 161 160.970406812614 Mu(tan=-0.344905, x=-0.94535, y=0.326056): -0.344327613290\n    test 1113 161 161.000000000000 Chi(tan=-0.344328, x=-0.945519, y=0.325568): -0.344327613290\n    test 1114 161 160.960519598812 Xi(tan=-0.345099, x=-0.945294, y=0.32622): -0.344327613290\n\n    test 1115 168 167.921497152166 Phi(tan=-0.213989, x=-1, y=0.213989): -0.212556561670\n    test 1116 168 167.960810661508 Beta(tan=-0.213272, x=-1, y=0.213272): -0.212556561670\n    test 1117 168 168.000003811668 Theta(tan=-0.212556, x=-1, y=0.212556): -0.212556561670\n    test 1118 168 167.980444790381 Mu(tan=-0.212913, x=-0.978077, y=0.208246), iteration=2: -0.212556561670\n    test 1119 168 168.000000000000 Chi(tan=-0.212557, x=-0.978148, y=0.207912): -0.212556561670\n    test 1120 168 167.973910295272 Xi(tan=-0.213033, x=-1.96489, y=0.418585), iteration=3: -0.212556561670\n\n    test 1121 168 167.921497152166 Phi(tan=-0.213989, x=-0.977862, y=0.209252): -0.212556561670\n    test 1122 168 167.960810661508 Beta(tan=-0.213272, x=-0.978005, y=0.208581): -0.212556561670\n    test 1123 168 168.000003811668 Theta(tan=-0.212556, x=-0.978148, y=0.207912): -0.212556561670\n    test 1124 168 167.980444790381 Mu(tan=-0.212913, x=-0.978077, y=0.208246): -0.212556561670\n    test 1125 168 168.000000000000 Chi(tan=-0.212557, x=-0.978148, y=0.207912): -0.212556561670\n    test 1126 168 167.973910295272 Xi(tan=-0.213033, x=-0.978053, y=0.208357): -0.212556561670\n\n    test 1127 175 174.966475344628 Phi(tan=-0.0880783, x=-1, y=0.0880783): -0.087488663526\n    test 1128 175 174.983265532727 Beta(tan=-0.087783, x=-1, y=0.087783): -0.087488663526\n    test 1129 175 175.000000286043 Theta(tan=-0.0874887, x=-1, y=0.0874887): -0.087488663526\n    test 1130 175 174.991650204039 Mu(tan=-0.0876355, x=-0.996182, y=0.0873009), iteration=3: -0.087488663526\n    test 1131 175 175.000000000000 Chi(tan=-0.0874887, x=-0.996195, y=0.0871557): -0.087488663526\n    test 1132 175 174.988859821813 Xi(tan=-0.0876846, x=-2.0013, y=0.175483), iteration=3: -0.087488663526\n\n    test 1133 175 174.966475344628 Phi(tan=-0.0880783, x=-0.996144, y=0.0877386): -0.087488663526\n    test 1134 175 174.983265532727 Beta(tan=-0.087783, x=-0.996169, y=0.0874467): -0.087488663526\n    test 1135 175 175.000000286043 Theta(tan=-0.0874887, x=-0.996195, y=0.0871557): -0.087488663526\n    test 1136 175 174.991650204039 Mu(tan=-0.0876355, x=-0.996182, y=0.0873009): -0.087488663526\n    test 1137 175 175.000000000000 Chi(tan=-0.0874887, x=-0.996195, y=0.0871557): -0.087488663526\n    test 1138 175 174.988859821813 Xi(tan=-0.0876846, x=-0.996178, y=0.0873494): -0.087488663526\n\n    test 1139 182 182.013467917640 Phi(tan=0.0351561, x=-1, y=-0.0351561): 0.034920769492\n    test 1140 182 182.006722669522 Beta(tan=0.0350382, x=-1, y=-0.0350382): 0.034920769492\n    test 1141 182 181.999999981575 Theta(tan=0.0349208, x=-1, y=-0.0349208): 0.034920769492\n    test 1142 182 182.003354287313 Mu(tan=0.0349794, x=-0.999389, y=-0.034958), iteration=3: 0.034920769492\n    test 1143 182 182.000000000000 Chi(tan=0.0349208, x=-0.999391, y=-0.0348995): 0.034920769492\n    test 1144 182 182.004475259781 Xi(tan=0.034999, x=-2.00775, y=-0.0702692), iteration=2: 0.034920769492\n\n    test 1145 182 182.013467917640 Phi(tan=0.0351561, x=-0.999383, y=-0.0351344): 0.034920769492\n    test 1146 182 182.006722669522 Beta(tan=0.0350382, x=-0.999387, y=-0.0350168): 0.034920769492\n    test 1147 182 181.999999981575 Theta(tan=0.0349208, x=-0.999391, y=-0.0348995): 0.034920769492\n    test 1148 182 182.003354287313 Mu(tan=0.0349794, x=-0.999389, y=-0.034958): 0.034920769492\n    test 1149 182 182.000000000000 Chi(tan=0.0349208, x=-0.999391, y=-0.0348995): 0.034920769492\n    test 1150 182 182.004475259781 Xi(tan=0.034999, x=-0.999388, y=-0.0349776): 0.034920769492\n\n    test 1151 189 189.059651130185 Phi(tan=0.159452, x=-1, y=-0.159452): 0.158384440325\n    test 1152 189 189.029777127642 Beta(tan=0.158917, x=-1, y=-0.158917): 0.158384440325\n    test 1153 189 188.999998360327 Theta(tan=0.158384, x=-1, y=-0.158384): 0.158384440325\n    test 1154 189 189.014858030843 Mu(tan=0.15865, x=-0.987648, y=-0.156691), iteration=3: 0.158384440325\n    test 1155 189 189.000000000000 Chi(tan=0.158384, x=-0.987688, y=-0.156434): 0.158384440325\n    test 1156 189 189.019823164695 Xi(tan=0.158739, x=-1.98414, y=-0.31496), iteration=3: 0.158384440325\n\n    test 1157 189 189.059651130185 Phi(tan=0.159452, x=-0.987525, y=-0.157463): 0.158384440325\n    test 1158 189 189.029777127642 Beta(tan=0.158917, x=-0.987607, y=-0.156948): 0.158384440325\n    test 1159 189 188.999998360327 Theta(tan=0.158384, x=-0.987688, y=-0.156434): 0.158384440325\n    test 1160 189 189.014858030843 Mu(tan=0.15865, x=-0.987648, y=-0.156691): 0.158384440325\n    test 1161 189 189.000000000000 Chi(tan=0.158384, x=-0.987688, y=-0.156434): 0.158384440325\n    test 1162 189 189.019823164695 Xi(tan=0.158739, x=-0.987634, y=-0.156776): 0.158384440325\n\n    test 1163 196 196.102251517048 Phi(tan=0.288678, x=-1, y=-0.288678): 0.286745385759\n    test 1164 196 196.051048664417 Beta(tan=0.28771, x=-1, y=-0.28771): 0.286745385759\n    test 1165 196 195.999991274014 Theta(tan=0.286745, x=-1, y=-0.286745): 0.286745385759\n    test 1166 196 196.025474578648 Mu(tan=0.287227, x=-0.961139, y=-0.276065), iteration=3: 0.286745385759\n    test 1167 196 196.000000000000 Chi(tan=0.286745, x=-0.961262, y=-0.275637): 0.286745385759\n    test 1168 196 196.033986378622 Xi(tan=0.287387, x=-1.93083, y=-0.554895), iteration=3: 0.286745385759\n\n    test 1169 196 196.102251517048 Phi(tan=0.288678, x=-0.960768, y=-0.277352): 0.286745385759\n    test 1170 196 196.051048664417 Beta(tan=0.28771, x=-0.961016, y=-0.276494): 0.286745385759\n    test 1171 196 195.999991274014 Theta(tan=0.286745, x=-0.961262, y=-0.275637): 0.286745385759\n    test 1172 196 196.025474578648 Mu(tan=0.287227, x=-0.961139, y=-0.276065): 0.286745385759\n    test 1173 196 196.000000000000 Chi(tan=0.286745, x=-0.961262, y=-0.275637): 0.286745385759\n    test 1174 196 196.033986378622 Xi(tan=0.287387, x=-0.961098, y=-0.276208): 0.286745385759\n\n    test 1175 203 203.138717708106 Phi(tan=0.427335, x=-1, y=-0.427335): 0.424474816210\n    test 1176 203 203.069266243319 Beta(tan=0.425902, x=-1, y=-0.425902): 0.424474816210\n    test 1177 203 202.999976212498 Theta(tan=0.424474, x=-1, y=-0.424474): 0.424474816210\n    test 1178 203 203.034570842744 Mu(tan=0.425187, x=-0.920269, y=-0.391286), iteration=3: 0.424474816210\n    test 1179 203 203.000000000000 Chi(tan=0.424475, x=-0.920505, y=-0.390731): 0.424474816210\n    test 1180 203 203.046119781391 Xi(tan=0.425425, x=-1.84864, y=-0.786459), iteration=3: 0.424474816210\n\n    test 1181 203 203.138717708106 Phi(tan=0.427335, x=-0.919556, y=-0.392959): 0.424474816210\n    test 1182 203 203.069266243319 Beta(tan=0.425902, x=-0.920032, y=-0.391844): 0.424474816210\n    test 1183 203 202.999976212498 Theta(tan=0.424474, x=-0.920505, y=-0.390731): 0.424474816210\n    test 1184 203 203.034570842744 Mu(tan=0.425187, x=-0.920269, y=-0.391286): 0.424474816210\n    test 1185 203 203.000000000000 Chi(tan=0.424475, x=-0.920505, y=-0.390731): 0.424474816210\n    test 1186 203 203.046119781391 Xi(tan=0.425425, x=-0.92019, y=-0.391472): 0.424474816210\n\n    test 1187 210 210.166876834292 Phi(tan=0.58124, x=-1, y=-0.58124): 0.577350269190\n    test 1188 210 210.083345266050 Beta(tan=0.579291, x=-1, y=-0.579291): 0.577350269190\n    test 1189 210 209.999953141624 Theta(tan=0.577349, x=-1, y=-0.577349): 0.577350269190\n    test 1190 210 210.041605671429 Mu(tan=0.578319, x=-0.865662, y=-0.500629), iteration=2: 0.577350269190\n    test 1191 210 210.000000000000 Chi(tan=0.57735, x=-0.866025, y=-0.5): 0.577350269190\n    test 1192 210 210.055501367888 Xi(tan=0.578643, x=-1.73885, y=-1.00617), iteration=2: 0.577350269190\n\n    test 1193 210 210.166876834292 Phi(tan=0.58124, x=-0.864565, y=-0.50252): 0.577350269190\n    test 1194 210 210.083345266050 Beta(tan=0.579291, x=-0.865297, y=-0.501259): 0.577350269190\n    test 1195 210 209.999953141624 Theta(tan=0.577349, x=-0.866026, y=-0.499999): 0.577350269190\n    test 1196 210 210.041605671429 Mu(tan=0.578319, x=-0.865662, y=-0.500629): 0.577350269190\n    test 1197 210 210.000000000000 Chi(tan=0.57735, x=-0.866025, y=-0.5): 0.577350269190\n    test 1198 210 210.055501367888 Xi(tan=0.578643, x=-0.865541, y=-0.500839): 0.577350269190\n\n    test 1199 217 217.185065085003 Phi(tan=0.758631, x=-1, y=-0.758631): 0.753554050103\n    test 1200 217 217.092452537420 Beta(tan=0.756087, x=-1, y=-0.756087): 0.753554050103\n    test 1201 217 216.999924718107 Theta(tan=0.753552, x=-1, y=-0.753552): 0.753554050103\n    test 1202 217 217.046162172363 Mu(tan=0.754818, x=-0.79815, y=-0.602458), iteration=2: 0.753554050103\n    test 1203 217 217.000000000000 Chi(tan=0.753554, x=-0.798636, y=-0.601815): 0.753554050103\n    test 1204 217 217.061575411936 Xi(tan=0.75524, x=-1.60314, y=-1.21076), iteration=3: 0.753554050103\n\n    test 1205 217 217.185065085003 Phi(tan=0.758631, x=-0.796687, y=-0.604391): 0.753554050103\n    test 1206 217 217.092452537420 Beta(tan=0.756087, x=-0.797663, y=-0.603103): 0.753554050103\n    test 1207 217 216.999924718107 Theta(tan=0.753552, x=-0.798636, y=-0.601814): 0.753554050103\n    test 1208 217 217.046162172363 Mu(tan=0.754818, x=-0.79815, y=-0.602458): 0.753554050103\n    test 1209 217 217.000000000000 Chi(tan=0.753554, x=-0.798636, y=-0.601815): 0.753554050103\n    test 1210 217 217.061575411936 Xi(tan=0.75524, x=-0.797988, y=-0.602673): 0.753554050103\n\n    test 1211 224 224.192224339246 Phi(tan=0.972193, x=-1, y=-0.972193): 0.965688774807\n    test 1212 224 224.096054985813 Beta(tan=0.968934, x=-1, y=-0.968934): 0.965688774807\n    test 1213 224 223.999895821294 Theta(tan=0.965685, x=-1, y=-0.965685): 0.965688774807\n    test 1214 224 224.047972230974 Mu(tan=0.967308, x=-0.718758, y=-0.69526), iteration=2: 0.965688774807\n    test 1215 224 224.000000000000 Chi(tan=0.965689, x=-0.71934, y=-0.694658): 0.965688774807\n    test 1216 224 224.063985091722 Xi(tan=0.967849, x=-1.44358, y=-1.39717), iteration=3: 0.965688774807\n\n    test 1217 224 224.192224339246 Phi(tan=0.972193, x=-0.717005, y=-0.697068): 0.965688774807\n    test 1218 224 224.096054985813 Beta(tan=0.968934, x=-0.718174, y=-0.695863): 0.965688774807\n    test 1219 224 223.999895821294 Theta(tan=0.965685, x=-0.719341, y=-0.694657): 0.965688774807\n    test 1220 224 224.047972230974 Mu(tan=0.967308, x=-0.718758, y=-0.69526): 0.965688774807\n    test 1221 224 224.000000000000 Chi(tan=0.965689, x=-0.71934, y=-0.694658): 0.965688774807\n    test 1222 224 224.063985091722 Xi(tan=0.967849, x=-0.718564, y=-0.695461): 0.965688774807\n\n    test 1223 231 231.187959693265 Phi(tan=1.24321, x=-1, y=-1.24321): 1.234897156535\n    test 1224 231 231.093949439927 Beta(tan=1.23905, x=-1, y=-1.23905): 1.234897156535\n    test 1225 231 230.999872507121 Theta(tan=1.23489, x=-1, y=-1.23489): 1.234897156535\n    test 1226 231 231.046931828803 Mu(tan=1.23697, x=-0.628684, y=-0.777661), iteration=3: 1.234897156535\n    test 1227 231 231.000000000000 Chi(tan=1.2349, x=-0.62932, y=-0.777146): 1.234897156535\n    test 1228 231 231.062592734966 Xi(tan=1.23766, x=-1.26259, y=-1.56265), iteration=2: 1.234897156535\n\n    test 1229 231 231.187959693265 Phi(tan=1.24321, x=-0.626768, y=-0.779206): 1.234897156535\n    test 1230 231 231.093949439927 Beta(tan=1.23905, x=-0.628045, y=-0.778177): 1.234897156535\n    test 1231 231 230.999872507121 Theta(tan=1.23489, x=-0.629322, y=-0.777145): 1.234897156535\n    test 1232 231 231.046931828803 Mu(tan=1.23697, x=-0.628684, y=-0.777661): 1.234897156535\n    test 1233 231 231.000000000000 Chi(tan=1.2349, x=-0.62932, y=-0.777146): 1.234897156535\n    test 1234 231 231.062592734966 Xi(tan=1.23766, x=-0.628471, y=-0.777833): 1.234897156535\n\n    test 1235 238 238.172555759873 Phi(tan=1.61111, x=-1, y=-1.61111): 1.600334529041\n    test 1236 238 238.086272148408 Beta(tan=1.60571, x=-1, y=-1.60571): 1.600334529041\n    test 1237 238 237.999860628148 Theta(tan=1.60033, x=-1, y=-1.60033): 1.600334529041\n    test 1238 238 238.043106397552 Mu(tan=1.60302, x=-0.529281, y=-0.848447), iteration=2: 1.600334529041\n    test 1239 238 238.000000000000 Chi(tan=1.60033, x=-0.529919, y=-0.848048): 1.600334529041\n    test 1240 238 238.057486709388 Xi(tan=1.60391, x=-1.06289, y=-1.70478), iteration=3: 1.600334529041\n\n    test 1241 238 238.172555759873 Phi(tan=1.61111, x=-0.527363, y=-0.84964): 1.600334529041\n    test 1242 238 238.086272148408 Beta(tan=1.60571, x=-0.528642, y=-0.848845): 1.600334529041\n    test 1243 238 237.999860628148 Theta(tan=1.60033, x=-0.529921, y=-0.848047): 1.600334529041\n    test 1244 238 238.043106397552 Mu(tan=1.60302, x=-0.529281, y=-0.848447): 1.600334529041\n    test 1245 238 238.000000000000 Chi(tan=1.60033, x=-0.529919, y=-0.848048): 1.600334529041\n    test 1246 238 238.057486709388 Xi(tan=1.60391, x=-0.529068, y=-0.848579): 1.600334529041\n\n    test 1247 245 245.146952468013 Phi(tan=2.15895, x=-1, y=-2.15895): 2.144506920510\n    test 1248 245 245.073488079777 Beta(tan=2.15171, x=-1, y=-2.15171): 2.144506920510\n    test 1249 245 244.999864442704 Theta(tan=2.14449, x=-1, y=-2.14449): 2.144506920510\n    test 1250 245 245.036726085420 Mu(tan=2.1481, x=-0.422037, y=-0.906578), iteration=3: 2.144506920510\n    test 1251 245 245.000000000000 Chi(tan=2.14451, x=-0.422618, y=-0.906308): 2.144506920510\n    test 1252 245 245.048974853160 Xi(tan=2.1493, x=-0.847475, y=-1.82148), iteration=3: 2.144506920510\n\n    test 1253 245 245.146952468013 Phi(tan=2.15895, x=-0.420292, y=-0.907389): 2.144506920510\n    test 1254 245 245.073488079777 Beta(tan=2.15171, x=-0.421455, y=-0.906849): 2.144506920510\n    test 1255 245 244.999864442704 Theta(tan=2.14449, x=-0.42262, y=-0.906307): 2.144506920510\n    test 1256 245 245.036726085420 Mu(tan=2.1481, x=-0.422037, y=-0.906578): 2.144506920510\n    test 1257 245 245.000000000000 Chi(tan=2.14451, x=-0.422618, y=-0.906308): 2.144506920510\n    test 1258 245 245.048974853160 Xi(tan=2.1493, x=-0.421843, y=-0.906669): 2.144506920510\n\n    test 1259 252 252.112683493851 Phi(tan=3.0984, x=-1, y=-3.0984): 3.077683537175\n    test 1260 252 252.056361244518 Beta(tan=3.08802, x=-1, y=-3.08802): 3.077683537175\n    test 1261 252 251.999885538511 Theta(tan=3.07766, x=-1, y=-3.07766): 3.077683537175\n    test 1262 252 252.028171414224 Mu(tan=3.08284, x=-0.308549, y=-0.951208), iteration=3: 3.077683537175\n    test 1263 252 252.000000000000 Chi(tan=3.07768, x=-0.309017, y=-0.951057): 3.077683537175\n    test 1264 252 252.037565143061 Xi(tan=3.08456, x=-0.619556, y=-1.91106), iteration=3: 3.077683537175\n\n    test 1265 252 252.112683493851 Phi(tan=3.0984, x=-0.307146, y=-0.951662): 3.077683537175\n    test 1266 252 252.056361244518 Beta(tan=3.08802, x=-0.308081, y=-0.95136): 3.077683537175\n    test 1267 252 251.999885538511 Theta(tan=3.07766, x=-0.309019, y=-0.951056): 3.077683537175\n    test 1268 252 252.028171414224 Mu(tan=3.08284, x=-0.308549, y=-0.951208): 3.077683537175\n    test 1269 252 252.000000000000 Chi(tan=3.07768, x=-0.309017, y=-0.951057): 3.077683537175\n    test 1270 252 252.037565143061 Xi(tan=3.08456, x=-0.308393, y=-0.951259): 3.077683537175\n\n    test 1271 259 259.071782282365 Phi(tan=5.17919, x=-1, y=-5.17919): 5.144554015970\n    test 1272 259 259.035908272116 Beta(tan=5.16182, x=-1, y=-5.16182): 5.144554015970\n    test 1273 259 258.999922323247 Theta(tan=5.14452, x=-1, y=-5.14452): 5.144554015970\n    test 1274 259 259.017950333560 Mu(tan=5.15317, x=-0.190501, y=-0.981687), iteration=3: 5.144554015970\n    test 1275 259 259.000000000000 Chi(tan=5.14455, x=-0.190809, y=-0.981627): 5.144554015970\n    test 1276 259 259.023934988471 Xi(tan=5.15605, x=-0.382508, y=-1.97223), iteration=2: 5.144554015970\n\n    test 1277 259 259.071782282365 Phi(tan=5.17919, x=-0.189579, y=-0.981865): 5.144554015970\n    test 1278 259 259.035908272116 Beta(tan=5.16182, x=-0.190194, y=-0.981747): 5.144554015970\n    test 1279 259 258.999922323247 Theta(tan=5.14452, x=-0.19081, y=-0.981627): 5.144554015970\n    test 1280 259 259.017950333560 Mu(tan=5.15317, x=-0.190501, y=-0.981687): 5.144554015970\n    test 1281 259 259.000000000000 Chi(tan=5.14455, x=-0.190809, y=-0.981627): 5.144554015970\n    test 1282 259 259.023934988471 Xi(tan=5.15605, x=-0.190399, y=-0.981707): 5.144554015970\n\n    test 1283 266 266.026661867451 Phi(tan=14.3969, x=-1, y=-14.3969): 14.300666256712\n    test 1284 266 266.013338229951 Beta(tan=14.3487, x=-1, y=-14.3487): 14.300666256712\n    test 1285 266 265.999970204566 Theta(tan=14.3006, x=-1, y=-14.3006): 14.300666256712\n    test 1286 266 266.006668111562 Mu(tan=14.3246, x=-0.0696404, y=-0.997572), iteration=2: 14.300666256712\n    test 1287 266 266.000000000000 Chi(tan=14.3007, x=-0.0697565, y=-0.997564): 14.300666256712\n    test 1288 266 266.008891093578 Xi(tan=14.3326, x=-0.139828, y=-2.00411), iteration=3: 14.300666256712\n\n    test 1289 266 266.026661867451 Phi(tan=14.3969, x=-0.0692923, y=-0.997596): 14.300666256712\n    test 1290 266 266.013338229951 Beta(tan=14.3487, x=-0.0695242, y=-0.99758): 14.300666256712\n    test 1291 266 265.999970204566 Theta(tan=14.3006, x=-0.069757, y=-0.997564): 14.300666256712\n    test 1292 266 266.006668111562 Mu(tan=14.3246, x=-0.0696404, y=-0.997572): 14.300666256712\n    test 1293 266 266.000000000000 Chi(tan=14.3007, x=-0.0697565, y=-0.997564): 14.300666256712\n    test 1294 266 266.008891093578 Xi(tan=14.3326, x=-0.0696017, y=-0.997575): 14.300666256712\n\n    test 1295 273 272.979975455720 Phi(tan=-19.2096, x=1.0, y=-19.2096): -19.081136687728\n    test 1296 273 272.989982200734 Beta(tan=-19.1452, x=1.0, y=-19.1452): -19.081136687728\n    test 1297 273 273.000022425845 Theta(tan=-19.081, x=1.0, y=-19.081): -19.081136687728\n    test 1298 273 272.994991833280 Mu(tan=-19.1131, x=0.0522487, y=-0.998634), iteration=3: -19.081136687728\n    test 1299 273 273.000000000000 Chi(tan=-19.0811, x=0.052336, y=-0.99863): -19.081136687728\n    test 1300 273 272.993322244137 Xi(tan=-19.1238, x=0.104908, y=-2.00624), iteration=2: -19.081136687728\n\n    test 1301 273 272.979975455720 Phi(tan=-19.2096, x=0.0519869, y=-0.998648): -19.081136687728\n    test 1302 273 272.989982200734 Beta(tan=-19.1452, x=0.0521614, y=-0.998639): -19.081136687728\n    test 1303 273 273.000022425845 Theta(tan=-19.081, x=0.0523363, y=-0.99863): -19.081136687728\n    test 1304 273 272.994991833280 Mu(tan=-19.1131, x=0.0522487, y=-0.998634): -19.081136687728\n    test 1305 273 273.000000000000 Chi(tan=-19.0811, x=0.052336, y=-0.99863): -19.081136687728\n    test 1306 273 272.993322244137 Xi(tan=-19.1238, x=0.0522196, y=-0.998636): -19.081136687728\n\n    test 1307 280 279.934465137513 Phi(tan=-5.70946, x=1.0, y=-5.70946): -5.671281819618\n    test 1308 280 279.967216473785 Beta(tan=-5.69032, x=1.0, y=-5.69032): -5.671281819618\n    test 1309 280 280.000071376516 Theta(tan=-5.67124, x=1.0, y=-5.67124): -5.671281819618\n    test 1310 280 279.983611509112 Mu(tan=-5.68078, x=0.173366, y=-0.984857), iteration=3: -5.671281819618\n    test 1311 280 280.000000000000 Chi(tan=-5.67128, x=0.173648, y=-0.984808): -5.671281819618\n    test 1312 280 279.978147657318 Xi(tan=-5.68396, x=0.348101, y=-1.97859), iteration=3: -5.671281819618\n\n    test 1313 280 279.934465137513 Phi(tan=-5.70946, x=0.172522, y=-0.985006): -5.671281819618\n    test 1314 280 279.967216473785 Beta(tan=-5.69032, x=0.173085, y=-0.984907): -5.671281819618\n    test 1315 280 280.000071376516 Theta(tan=-5.67124, x=0.173649, y=-0.984808): -5.671281819618\n    test 1316 280 279.983611509112 Mu(tan=-5.68078, x=0.173366, y=-0.984857): -5.671281819618\n    test 1317 280 280.000000000000 Chi(tan=-5.67128, x=0.173648, y=-0.984808): -5.671281819618\n    test 1318 280 279.978147657318 Xi(tan=-5.68396, x=0.173273, y=-0.984874): -5.671281819618\n\n    test 1319 287 286.892806262875 Phi(tan=-3.29287, x=1.0, y=-3.29287): -3.270852618484\n    test 1320 287 286.946383391473 Beta(tan=-3.28183, x=1.0, y=-3.28183): -3.270852618484\n    test 1321 287 287.000110089905 Theta(tan=-3.27083, x=1.0, y=-3.27083): -3.270852618484\n    test 1322 287 286.973199933024 Mu(tan=-3.27633, x=0.291924, y=-0.956441), iteration=2: -3.270852618484\n    test 1323 287 287.000000000000 Chi(tan=-3.27085, x=0.292372, y=-0.956305): -3.270852618484\n    test 1324 287 286.964263697434 Xi(tan=-3.27816, x=0.586171, y=-1.92156), iteration=2: -3.270852618484\n\n    test 1325 287 286.892806262875 Phi(tan=-3.29287, x=0.290582, y=-0.95685): -3.270852618484\n    test 1326 287 286.946383391473 Beta(tan=-3.28183, x=0.291477, y=-0.956578): -3.270852618484\n    test 1327 287 287.000110089905 Theta(tan=-3.27083, x=0.292374, y=-0.956304): -3.270852618484\n    test 1328 287 286.973199933024 Mu(tan=-3.27633, x=0.291924, y=-0.956441): -3.270852618484\n    test 1329 287 287.000000000000 Chi(tan=-3.27085, x=0.292372, y=-0.956305): -3.270852618484\n    test 1330 287 286.964263697434 Xi(tan=-3.27816, x=0.291775, y=-0.956487): -3.270852618484\n\n    test 1331 294 293.857455069612 Phi(tan=-2.26116, x=1.0, y=-2.26116): -2.246036773904\n    test 1332 294 293.928713955385 Beta(tan=-2.25358, x=1.0, y=-2.25358): -2.246036773904\n    test 1333 294 294.000133599673 Theta(tan=-2.24602, x=1.0, y=-2.24602): -2.246036773904\n    test 1334 294 293.964373479294 Mu(tan=-2.2498, x=0.406169, y=-0.913798), iteration=2: -2.246036773904\n    test 1335 294 294.000000000000 Chi(tan=-2.24604, x=0.406737, y=-0.913545): -2.246036773904\n    test 1336 294 293.952491818284 Xi(tan=-2.25106, x=0.815604, y=-1.83597), iteration=3: -2.246036773904\n\n    test 1337 294 293.857455069612 Phi(tan=-2.26116, x=0.404463, y=-0.914555): -2.246036773904\n    test 1338 294 293.928713955385 Beta(tan=-2.25358, x=0.4056, y=-0.914051): -2.246036773904\n    test 1339 294 294.000133599673 Theta(tan=-2.24602, x=0.406739, y=-0.913545): -2.246036773904\n    test 1340 294 293.964373479294 Mu(tan=-2.2498, x=0.406169, y=-0.913798): -2.246036773904\n    test 1341 294 294.000000000000 Chi(tan=-2.24604, x=0.406737, y=-0.913545): -2.246036773904\n    test 1342 294 293.952491818284 Xi(tan=-2.25106, x=0.405979, y=-0.913882): -2.246036773904\n\n    test 1343 301 300.830507114227 Phi(tan=-1.67549, x=1.0, y=-1.67549): -1.664279482351\n    test 1344 301 300.915256249596 Beta(tan=-1.66987, x=1.0, y=-1.66987): -1.664279482351\n    test 1345 301 301.000139857505 Theta(tan=-1.66427, x=1.0, y=-1.66427): -1.664279482351\n    test 1346 301 300.957655989828 Mu(tan=-1.66707, x=0.514404, y=-0.857548), iteration=2: -1.664279482351\n    test 1347 301 301.000000000000 Chi(tan=-1.66428, x=0.515038, y=-0.857167): -1.664279482351\n    test 1348 301 300.943530549480 Xi(tan=-1.668, x=1.033, y=-1.72305), iteration=3: -1.664279482351\n\n    test 1349 301 300.830507114227 Phi(tan=-1.67549, x=0.5125, y=-0.858687): -1.664279482351\n    test 1350 301 300.915256249596 Beta(tan=-1.66987, x=0.51377, y=-0.857928): -1.664279482351\n    test 1351 301 301.000139857505 Theta(tan=-1.66427, x=0.51504, y=-0.857166): -1.664279482351\n    test 1352 301 300.957655989828 Mu(tan=-1.66707, x=0.514404, y=-0.857548): -1.664279482351\n    test 1353 301 301.000000000000 Chi(tan=-1.66428, x=0.515038, y=-0.857167): -1.664279482351\n    test 1354 301 300.943530549480 Xi(tan=-1.668, x=0.514193, y=-0.857674): -1.664279482351\n\n    test 1355 308 307.813573905031 Phi(tan=-1.28856, x=1.0, y=-1.28856): -1.279941632193\n    test 1356 308 307.906813571405 Beta(tan=-1.28424, x=1.0, y=-1.28424): -1.279941632193\n    test 1357 308 308.000130012564 Theta(tan=-1.27994, x=1.0, y=-1.27994): -1.279941632193\n    test 1358 308 307.953447779688 Mu(tan=-1.28209, x=0.615021, y=-0.788511), iteration=3: -1.279941632193\n    test 1359 308 308.000000000000 Chi(tan=-1.27994, x=0.615661, y=-0.788011): -1.279941632193\n    test 1360 308 307.937914195662 Xi(tan=-1.2828, x=1.23514, y=-1.58444), iteration=3: -1.279941632193\n\n    test 1361 308 307.813573905031 Phi(tan=-1.28856, x=0.613094, y=-0.79001): -1.279941632193\n    test 1362 308 307.906813571405 Beta(tan=-1.28424, x=0.614379, y=-0.789011): -1.279941632193\n    test 1363 308 308.000130012564 Theta(tan=-1.27994, x=0.615663, y=-0.788009): -1.279941632193\n    test 1364 308 307.953447779688 Mu(tan=-1.28209, x=0.615021, y=-0.788511): -1.279941632193\n    test 1365 308 308.000000000000 Chi(tan=-1.27994, x=0.615661, y=-0.788011): -1.279941632193\n    test 1366 308 307.937914195662 Xi(tan=-1.2828, x=0.614807, y=-0.788677): -1.279941632193\n\n    test 1367 315 314.807684778155 Phi(tan=-1.00674, x=1.0, y=-1.00674): -1.000000000000\n    test 1368 315 314.903895845383 Beta(tan=-1.00336, x=1.0, y=-1.00336): -1.000000000000\n    test 1369 315 315.000107996571 Theta(tan=-0.999996, x=1.0, y=-0.999996): -1.000000000000\n    test 1370 315 314.952001570934 Mu(tan=-1.00168, x=0.706514, y=-0.707699), iteration=2: -1.000000000000\n    test 1371 315 315.000000000000 Chi(tan=-1, x=0.707107, y=-0.707107): -1.000000000000\n    test 1372 315 314.935980653019 Xi(tan=-1.00224, x=1.41898, y=-1.42215), iteration=3: -1.000000000000\n\n    test 1373 315 314.807684778155 Phi(tan=-1.00674, x=0.704729, y=-0.709476): -1.000000000000\n    test 1374 315 314.903895845383 Beta(tan=-1.00336, x=0.70592, y=-0.708292): -1.000000000000\n    test 1375 315 315.000107996571 Theta(tan=-0.999996, x=0.707108, y=-0.707105): -1.000000000000\n    test 1376 315 314.952001570934 Mu(tan=-1.00168, x=0.706514, y=-0.707699): -1.000000000000\n    test 1377 315 315.000000000000 Chi(tan=-1, x=0.707107, y=-0.707107): -1.000000000000\n    test 1378 315 314.935980653019 Xi(tan=-1.00224, x=0.706316, y=-0.707896): -1.000000000000\n\n    test 1379 322 321.813220359944 Phi(tan=-0.786549, x=1.0, y=-0.786549): -0.781285626507\n    test 1380 322 321.906687396462 Beta(tan=-0.783912, x=1.0, y=-0.783912): -0.781285626507\n    test 1381 322 322.000079515502 Theta(tan=-0.781283, x=1.0, y=-0.781283): -0.781285626507\n    test 1382 322 321.953406847958 Mu(tan=-0.782596, x=0.78751, y=-0.616302), iteration=2: -0.781285626507\n    test 1383 322 322.000000000000 Chi(tan=-0.781286, x=0.788011, y=-0.615661): -0.781285626507\n    test 1384 322 321.937850353113 Xi(tan=-0.783034, x=1.58176, y=-1.23857), iteration=3: -0.781285626507\n\n    test 1385 322 321.813220359944 Phi(tan=-0.786549, x=0.786, y=-0.618227): -0.781285626507\n    test 1386 322 321.906687396462 Beta(tan=-0.783912, x=0.787007, y=-0.616944): -0.781285626507\n    test 1387 322 322.000079515502 Theta(tan=-0.781283, x=0.788012, y=-0.61566): -0.781285626507\n    test 1388 322 321.953406847958 Mu(tan=-0.782596, x=0.78751, y=-0.616302): -0.781285626507\n    test 1389 322 322.000000000000 Chi(tan=-0.781286, x=0.788011, y=-0.615661): -0.781285626507\n    test 1390 322 321.937850353113 Xi(tan=-0.783034, x=0.787342, y=-0.616516): -0.781285626507\n\n    test 1391 329 328.829882787345 Phi(tan=-0.604909, x=1.0, y=-0.604909): -0.600860619028\n    test 1392 329 328.915033437072 Beta(tan=-0.602881, x=1.0, y=-0.602881): -0.600860619028\n    test 1393 329 329.000050684665 Theta(tan=-0.600859, x=1.0, y=-0.600859): -0.600860619028\n    test 1394 329 328.957583708533 Mu(tan=-0.601869, x=0.856786, y=-0.515672), iteration=3: -0.600860619028\n    test 1395 329 329.000000000000 Chi(tan=-0.600861, x=0.857167, y=-0.515038): -0.600860619028\n    test 1396 329 328.943417809954 Xi(tan=-0.602205, x=1.72101, y=-1.0364), iteration=3: -0.600860619028\n\n    test 1397 329 328.829882787345 Phi(tan=-0.604909, x=0.855634, y=-0.517581): -0.600860619028\n    test 1398 329 328.915033437072 Beta(tan=-0.602881, x=0.856403, y=-0.516309): -0.600860619028\n    test 1399 329 329.000050684665 Theta(tan=-0.600859, x=0.857168, y=-0.515037): -0.600860619028\n    test 1400 329 328.957583708533 Mu(tan=-0.601869, x=0.856786, y=-0.515672): -0.600860619028\n    test 1401 329 329.000000000000 Chi(tan=-0.600861, x=0.857167, y=-0.515038): -0.600860619028\n    test 1402 329 328.943417809954 Xi(tan=-0.602205, x=0.856658, y=-0.515884): -0.600860619028\n\n    test 1403 336 335.856706115158 Phi(tan=-0.448229, x=1.0, y=-0.448229): -0.445228685309\n    test 1404 336 335.928446665868 Beta(tan=-0.446726, x=1.0, y=-0.446726): -0.445228685309\n    test 1405 336 336.000026626488 Theta(tan=-0.445228, x=1.0, y=-0.445228): -0.445228685309\n    test 1406 336 335.964286769667 Mu(tan=-0.445976, x=0.913292, y=-0.407306), iteration=2: -0.445228685309\n    test 1407 336 336.000000000000 Chi(tan=-0.445229, x=0.913545, y=-0.406737): -0.445228685309\n    test 1408 336 335.952356574339 Xi(tan=-0.446225, x=1.83461, y=-0.818652), iteration=2: -0.445228685309\n\n    test 1409 336 335.856706115158 Phi(tan=-0.448229, x=0.912525, y=-0.40902): -0.445228685309\n    test 1410 336 335.928446665868 Beta(tan=-0.446726, x=0.913037, y=-0.407877): -0.445228685309\n    test 1411 336 336.000026626488 Theta(tan=-0.445228, x=0.913546, y=-0.406736): -0.445228685309\n    test 1412 336 335.964286769667 Mu(tan=-0.445976, x=0.913292, y=-0.407306): -0.445228685309\n    test 1413 336 336.000000000000 Chi(tan=-0.445229, x=0.913545, y=-0.406737): -0.445228685309\n    test 1414 336 335.952356574339 Xi(tan=-0.446225, x=0.913207, y=-0.407496): -0.445228685309\n\n    test 1415 343 342.892108013861 Phi(tan=-0.307791, x=1.0, y=-0.307791): -0.305730681459\n    test 1416 343 342.946134198526 Beta(tan=-0.306759, x=1.0, y=-0.306759): -0.305730681459\n    test 1417 343 343.000010359231 Theta(tan=-0.30573, x=1.0, y=-0.30573): -0.305730681459\n    test 1418 343 342.973119094169 Mu(tan=-0.306244, x=0.956167, y=-0.29282), iteration=3: -0.305730681459\n    test 1419 343 343.000000000000 Chi(tan=-0.305731, x=0.956305, y=-0.292372): -0.305730681459\n    test 1420 343 342.964137610259 Xi(tan=-0.306415, x=1.92083, y=-0.588571), iteration=2: -0.305730681459\n\n    test 1421 343 342.892108013861 Phi(tan=-0.307791, x=0.955753, y=-0.294172): -0.305730681459\n    test 1422 343 342.946134198526 Beta(tan=-0.306759, x=0.956029, y=-0.293271): -0.305730681459\n    test 1423 343 343.000010359231 Theta(tan=-0.30573, x=0.956305, y=-0.292372): -0.305730681459\n    test 1424 343 342.973119094169 Mu(tan=-0.306244, x=0.956167, y=-0.29282): -0.305730681459\n    test 1425 343 343.000000000000 Chi(tan=-0.305731, x=0.956305, y=-0.292372): -0.305730681459\n    test 1426 343 342.964137610259 Xi(tan=-0.306415, x=0.956122, y=-0.29297): -0.305730681459\n\n    test 1427 350 349.933981060171 Phi(tan=-0.177515, x=1.0, y=-0.177515): -0.176326980708\n    test 1428 350 349.967043715347 Beta(tan=-0.17692, x=1.0, y=-0.17692): -0.176326980708\n    test 1429 350 350.000002236053 Theta(tan=-0.176327, x=1.0, y=-0.176327): -0.176326980708\n    test 1430 350 349.983555465918 Mu(tan=-0.176623, x=0.984758, y=-0.173931), iteration=3: -0.176326980708\n    test 1431 350 350.000000000000 Chi(tan=-0.176327, x=0.984808, y=-0.173648): -0.176326980708\n    test 1432 350 349.978060244759 Xi(tan=-0.176722, x=1.97833, y=-0.349613), iteration=3: -0.176326980708\n\n    test 1433 350 349.933981060171 Phi(tan=-0.177515, x=0.984607, y=-0.174783): -0.176326980708\n    test 1434 350 349.967043715347 Beta(tan=-0.17692, x=0.984708, y=-0.174215): -0.176326980708\n    test 1435 350 350.000002236053 Theta(tan=-0.176327, x=0.984808, y=-0.173648): -0.176326980708\n    test 1436 350 349.983555465918 Mu(tan=-0.176623, x=0.984758, y=-0.173931): -0.176326980708\n    test 1437 350 350.000000000000 Chi(tan=-0.176327, x=0.984808, y=-0.173648): -0.176326980708\n    test 1438 350 349.978060244759 Xi(tan=-0.176722, x=0.984741, y=-0.174025): -0.176326980708\n\n    test 1439 357 356.979818878824 Phi(tan=-0.052761, x=1.0, y=-0.052761): -0.052407779283\n    test 1440 357 356.989926321337 Beta(tan=-0.0525841, x=1.0, y=-0.0525841): -0.052407779283\n    test 1441 357 357.000000062090 Theta(tan=-0.0524078, x=1.0, y=-0.0524078): -0.052407779283\n    test 1442 357 356.994973705906 Mu(tan=-0.0524957, x=0.998625, y=-0.0524236), iteration=3: -0.052407779283\n    test 1443 357 357.000000000000 Chi(tan=-0.0524078, x=0.99863, y=-0.052336): -0.052407779283\n    test 1444 357 356.993293970223 Xi(tan=-0.0525251, x=2.00621, y=-0.105377), iteration=2: -0.052407779283\n\n    test 1445 357 356.979818878824 Phi(tan=-0.052761, x=0.998611, y=-0.0526877): -0.052407779283\n    test 1446 357 356.989926321337 Beta(tan=-0.0525841, x=0.99862, y=-0.0525115): -0.052407779283\n    test 1447 357 357.000000062090 Theta(tan=-0.0524078, x=0.99863, y=-0.052336): -0.052407779283\n    test 1448 357 356.994973705906 Mu(tan=-0.0524957, x=0.998625, y=-0.0524236): -0.052407779283\n    test 1449 357 357.000000000000 Chi(tan=-0.0524078, x=0.99863, y=-0.052336): -0.052407779283\n    test 1450 357 356.993293970223 Xi(tan=-0.0525251, x=0.998623, y=-0.0524528): -0.052407779283\n\n    test 1451  0 0.000000000000 Phi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 1452  0 0.000000000000 Beta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 1453  0 0.000000000000 Theta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 1454  0 0.000000000000 Mu(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 1455  0 0.000000000000 Chi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 1456  0 0.000000000000 Xi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n\n    test 1457  0 0.000000000000 Phi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 1458  0 0.000000000000 Beta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 1459  0 0.000000000000 Theta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 1460  0 0.000000000000 Mu(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 1461  0 0.000000000000 Chi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 1462  0 0.000000000000 Xi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n\n    test 1463  7 7.035013553420 Phi(tan=0.123405, x=1.0, y=0.123405): 0.122784560903\n    test 1464  7 7.011661662966 Beta(tan=0.122991, x=1.0, y=0.122991): 0.122784560903\n    test 1465  7 6.988385737369 Theta(tan=0.122579, x=1.0, y=0.122579): 0.122784560903\n    test 1466  7 7.000000000000 Mu(tan=0.122785, x=0.992546, y=0.121869): 0.122784560903\n    test 1467  7 6.988386512663 Chi(tan=0.122579, x=1.0, y=0.122579), iteration=3: 0.122784560903\n    test 1468  7 7.003880991951 Xi(tan=0.122853, x=1.99399, y=0.244968), iteration=3: 0.122784560903\n\n    test 1469  7 7.035013553420 Phi(tan=0.123405, x=0.992471, y=0.122476): 0.122784560903\n    test 1470  7 7.011661662966 Beta(tan=0.122991, x=0.992521, y=0.122071): 0.122784560903\n    test 1471  7 6.988385737369 Theta(tan=0.122579, x=0.992571, y=0.121668): 0.122784560903\n    test 1472  7 7.000000000000 Mu(tan=0.122785, x=0.992546, y=0.121869): 0.122784560903\n    test 1473  7 6.988386512663 Chi(tan=0.122579, x=0.992571, y=0.121668): 0.122784560903\n    test 1474  7 7.003880991951 Xi(tan=0.122853, x=0.992538, y=0.121937): 0.122784560903\n\n    test 1475 14 14.067929480939 Phi(tan=0.250588, x=1.0, y=0.250588): 0.249328002843\n    test 1476 14 14.022626357697 Beta(tan=0.249747, x=1.0, y=0.249747): 0.249328002843\n    test 1477 14 13.977457317809 Theta(tan=0.24891, x=1.0, y=0.24891): 0.249328002843\n    test 1478 14 14.000000000000 Mu(tan=0.249328, x=0.970296, y=0.241922): 0.249328002843\n    test 1479 14 13.977463246186 Chi(tan=0.24891, x=1.0, y=0.24891), iteration=3: 0.249328002843\n    test 1480 14 14.007530515250 Xi(tan=0.249468, x=1.94924, y=0.486272), iteration=2: 0.249328002843\n\n    test 1481 14 14.067929480939 Phi(tan=0.250588, x=0.970008, y=0.243072): 0.249328002843\n    test 1482 14 14.022626357697 Beta(tan=0.249747, x=0.9702, y=0.242305): 0.249328002843\n    test 1483 14 13.977457317809 Theta(tan=0.24891, x=0.970391, y=0.24154): 0.249328002843\n    test 1484 14 14.000000000000 Mu(tan=0.249328, x=0.970296, y=0.241922): 0.249328002843\n    test 1485 14 13.977463246186 Chi(tan=0.24891, x=0.970391, y=0.24154): 0.249328002843\n    test 1486 14 14.007530515250 Xi(tan=0.249468, x=0.970264, y=0.242049): 0.249328002843\n\n    test 1487 21 21.096778912148 Phi(tan=0.385803, x=1.0, y=0.385803): 0.383864035035\n    test 1488 21 21.032239504096 Beta(tan=0.38451, x=1.0, y=0.38451): 0.383864035035\n    test 1489 21 20.967860810199 Theta(tan=0.383221, x=1.0, y=0.383221): 0.383864035035\n    test 1490 21 21.000000000000 Mu(tan=0.383864, x=0.93358, y=0.358368): 0.383864035035\n    test 1491 21 20.967879349935 Chi(tan=0.383221, x=1.0, y=0.383221), iteration=3: 0.383864035035\n    test 1492 21 21.010731065364 Xi(tan=0.384079, x=1.87541, y=0.720305), iteration=3: 0.383864035035\n\n    test 1493 21 21.096778912148 Phi(tan=0.385803, x=0.932974, y=0.359944): 0.383864035035\n    test 1494 21 21.032239504096 Beta(tan=0.38451, x=0.933379, y=0.358893): 0.383864035035\n    test 1495 21 20.967860810199 Theta(tan=0.383221, x=0.933781, y=0.357844): 0.383864035035\n    test 1496 21 21.000000000000 Mu(tan=0.383864, x=0.93358, y=0.358368): 0.383864035035\n    test 1497 21 20.967879349935 Chi(tan=0.383221, x=0.933781, y=0.357845): 0.383864035035\n    test 1498 21 21.010731065364 Xi(tan=0.384079, x=0.933513, y=0.358543): 0.383864035035\n\n    test 1499 28 28.119841850563 Phi(tan=0.534395, x=1.0, y=0.534395): 0.531709431661\n    test 1500 28 28.039928546523 Beta(tan=0.532604, x=1.0, y=0.532604): 0.531709431661\n    test 1501 28 27.960164870301 Theta(tan=0.530818, x=1.0, y=0.530818): 0.531709431661\n    test 1502 28 28.000000000000 Mu(tan=0.531709, x=0.882948, y=0.469472): 0.531709431661\n    test 1503 28 27.960204286276 Chi(tan=0.530819, x=1.0, y=0.530819), iteration=3: 0.531709431661\n    test 1504 28 28.013292185978 Xi(tan=0.532007, x=1.77361, y=0.94357), iteration=2: 0.531709431661\n\n    test 1505 28 28.119841850563 Phi(tan=0.534395, x=0.881964, y=0.471317): 0.531709431661\n    test 1506 28 28.039928546523 Beta(tan=0.532604, x=0.88262, y=0.470087): 0.531709431661\n    test 1507 28 27.960164870301 Theta(tan=0.530818, x=0.883274, y=0.468858): 0.531709431661\n    test 1508 28 28.000000000000 Mu(tan=0.531709, x=0.882948, y=0.469472): 0.531709431661\n    test 1509 28 27.960204286276 Chi(tan=0.530819, x=0.883273, y=0.468858): 0.531709431661\n    test 1510 28 28.013292185978 Xi(tan=0.532007, x=0.882839, y=0.469676): 0.531709431661\n\n    test 1511 35 35.135750772251 Phi(tan=0.703744, x=1.0, y=0.703744): 0.700207538210\n    test 1512 35 35.045237306558 Beta(tan=0.701385, x=1.0, y=0.701385): 0.700207538210\n    test 1513 35 34.954827299026 Theta(tan=0.699033, x=1.0, y=0.699033): 0.700207538210\n    test 1514 35 35.000000000000 Mu(tan=0.700208, x=0.819152, y=0.573576): 0.700207538210\n    test 1515 35 34.954893977158 Chi(tan=0.699035, x=1.0, y=0.699035), iteration=3: 0.700207538210\n    test 1516 35 35.015061857454 Xi(tan=0.700599, x=1.64536, y=1.15274), iteration=3: 0.700207538210\n\n    test 1517 35 35.135750772251 Phi(tan=0.703744, x=0.817791, y=0.575516): 0.700207538210\n    test 1518 35 35.045237306558 Beta(tan=0.701385, x=0.818699, y=0.574223): 0.700207538210\n    test 1519 35 34.954827299026 Theta(tan=0.699033, x=0.819604, y=0.57293): 0.700207538210\n    test 1520 35 35.000000000000 Mu(tan=0.700208, x=0.819152, y=0.573576): 0.700207538210\n    test 1521 35 34.954893977158 Chi(tan=0.699035, x=0.819603, y=0.572931): 0.700207538210\n    test 1522 35 35.015061857454 Xi(tan=0.700599, x=0.819001, y=0.573792): 0.700207538210\n\n    test 1523 42 42.143571223962 Phi(tan=0.904952, x=1.0, y=0.904952): 0.900404044298\n    test 1524 42 42.047852933259 Beta(tan=0.901917, x=1.0, y=0.901917): 0.900404044298\n    test 1525 42 41.952167704870 Theta(tan=0.898894, x=1.0, y=0.898894): 0.900404044298\n    test 1526 42 42.000000000000 Mu(tan=0.900404, x=0.743145, y=0.669131): 0.900404044298\n    test 1527 42 41.952263729127 Chi(tan=0.898897, x=1.0, y=0.898897), iteration=3: 0.900404044298\n    test 1528 42 42.015935495968 Xi(tan=0.900908, x=1.49259, y=1.34469), iteration=2: 0.900404044298\n\n    test 1529 42 42.143571223962 Phi(tan=0.904952, x=0.741466, y=0.670991): 0.900404044298\n    test 1530 42 42.047852933259 Beta(tan=0.901917, x=0.742586, y=0.669751): 0.900404044298\n    test 1531 42 41.952167704870 Theta(tan=0.898894, x=0.743703, y=0.66851): 0.900404044298\n    test 1532 42 42.000000000000 Mu(tan=0.900404, x=0.743145, y=0.669131): 0.900404044298\n    test 1533 42 41.952263729127 Chi(tan=0.898897, x=0.743702, y=0.668511): 0.900404044298\n    test 1534 42 42.015935495968 Xi(tan=0.900908, x=0.742959, y=0.669337): 0.900404044298\n\n    test 1535 49 49.142854800592 Phi(tan=1.15618, x=1.0, y=1.15618): 1.150368407221\n    test 1536 49 49.047623888378 Beta(tan=1.1523, x=1.0, y=1.1523): 1.150368407221\n    test 1537 49 48.952347927786 Theta(tan=1.14844, x=1.0, y=1.14844): 1.150368407221\n    test 1538 49 49.000000000000 Mu(tan=1.15037, x=0.656059, y=0.75471): 1.150368407221\n    test 1539 49 48.952469542367 Chi(tan=1.14844, x=1.0, y=1.14844), iteration=3: 1.150368407221\n    test 1540 49 49.015862036782 Xi(tan=1.15101, x=1.31759, y=1.51656), iteration=2: 1.150368407221\n\n    test 1541 49 49.142854800592 Phi(tan=1.15618, x=0.654175, y=0.756343): 1.150368407221\n    test 1542 49 49.047623888378 Beta(tan=1.1523, x=0.655431, y=0.755255): 1.150368407221\n    test 1543 49 48.952347927786 Theta(tan=1.14844, x=0.656686, y=0.754164): 1.150368407221\n    test 1544 49 49.000000000000 Mu(tan=1.15037, x=0.656059, y=0.75471): 1.150368407221\n    test 1545 49 48.952469542367 Chi(tan=1.14844, x=0.656685, y=0.754165): 1.150368407221\n    test 1546 49 49.015862036782 Xi(tan=1.15101, x=0.65585, y=0.754891): 1.150368407221\n\n    test 1547 56 56.133661968442 Phi(tan=1.49005, x=1.0, y=1.49005): 1.482560968513\n    test 1548 56 56.044568042538 Beta(tan=1.48505, x=1.0, y=1.48505): 1.482560968513\n    test 1549 56 55.955361525715 Theta(tan=1.48007, x=1.0, y=1.48007): 1.482560968513\n    test 1550 56 56.000000000000 Mu(tan=1.48256, x=0.559193, y=0.829038): 1.482560968513\n    test 1551 56 55.955498904140 Chi(tan=1.48008, x=1.0, y=1.48008), iteration=3: 1.482560968513\n    test 1552 56 56.014846771252 Xi(tan=1.48339, x=1.12298, y=1.66581), iteration=2: 1.482560968513\n\n    test 1553 56 56.133661968442 Phi(tan=1.49005, x=0.557257, y=0.83034): 1.482560968513\n    test 1554 56 56.044568042538 Beta(tan=1.48505, x=0.558548, y=0.829472): 1.482560968513\n    test 1555 56 55.955361525715 Theta(tan=1.48007, x=0.559839, y=0.828602): 1.482560968513\n    test 1556 56 56.000000000000 Mu(tan=1.48256, x=0.559193, y=0.829038): 1.482560968513\n    test 1557 56 55.955498904140 Chi(tan=1.48008, x=0.559837, y=0.828603): 1.482560968513\n    test 1558 56 56.014846771252 Xi(tan=1.48339, x=0.558978, y=0.829182): 1.482560968513\n\n    test 1559 63 63.116554283961 Phi(tan=1.97252, x=1.0, y=1.97252): 1.962610505505\n    test 1560 63 63.038870615950 Beta(tan=1.96591, x=1.0, y=1.96591): 1.962610505505\n    test 1561 63 62.961033158986 Theta(tan=1.95932, x=1.0, y=1.95932): 1.962610505505\n    test 1562 63 63.000000000000 Mu(tan=1.96261, x=0.45399, y=0.891007): 1.962610505505\n    test 1563 63 62.961171598977 Chi(tan=1.95933, x=1.0, y=1.95933), iteration=3: 1.962610505505\n    test 1564 63 63.012950815476 Xi(tan=1.96371, x=0.911653, y=1.79022), iteration=2: 1.962610505505\n\n    test 1565 63 63.116554283961 Phi(tan=1.97252, x=0.452177, y=0.891928): 1.962610505505\n    test 1566 63 63.038870615950 Beta(tan=1.96591, x=0.453386, y=0.891314): 1.962610505505\n    test 1567 63 62.961033158986 Theta(tan=1.95932, x=0.454596, y=0.890698): 1.962610505505\n    test 1568 63 63.000000000000 Mu(tan=1.96261, x=0.45399, y=0.891007): 1.962610505505\n    test 1569 63 62.961171598977 Chi(tan=1.95933, x=0.454594, y=0.890699): 1.962610505505\n    test 1570 63 63.012950815476 Xi(tan=1.96371, x=0.453789, y=0.891109): 1.962610505505\n\n    test 1571 70 70.092557449454 Phi(tan=2.76135, x=1.0, y=2.76135): 2.747477419455\n    test 1572 70 70.030872319297 Beta(tan=2.75209, x=1.0, y=2.75209): 2.747477419455\n    test 1573 70 69.969028142824 Theta(tan=2.74286, x=1.0, y=2.74286): 2.747477419455\n    test 1574 70 70.000000000000 Mu(tan=2.74748, x=0.34202, y=0.939693): 2.747477419455\n    test 1575 70 69.969150471863 Chi(tan=2.74288, x=1.0, y=2.74288), iteration=2: 2.747477419455\n    test 1576 70 70.010287292906 Xi(tan=2.74901, x=0.686773, y=1.88795), iteration=3: 2.747477419455\n\n    test 1577 70 70.092557449454 Phi(tan=2.76135, x=0.340502, y=0.940244): 2.747477419455\n    test 1578 70 70.030872319297 Beta(tan=2.75209, x=0.341514, y=0.939877): 2.747477419455\n    test 1579 70 69.969028142824 Theta(tan=2.74286, x=0.342528, y=0.939508): 2.747477419455\n    test 1580 70 70.000000000000 Mu(tan=2.74748, x=0.34202, y=0.939693): 2.747477419455\n    test 1581 70 69.969150471863 Chi(tan=2.74288, x=0.342526, y=0.939508): 2.747477419455\n    test 1582 70 70.010287292906 Xi(tan=2.74901, x=0.341851, y=0.939754): 2.747477419455\n\n    test 1583 77 77.063098225048 Phi(tan=4.35334, x=1.0, y=4.35334): 4.331475874284\n    test 1584 77 77.021048596835 Beta(tan=4.33875, x=1.0, y=4.33875): 4.331475874284\n    test 1585 77 76.978871802460 Theta(tan=4.3242, x=1.0, y=4.3242): 4.331475874284\n    test 1586 77 77.000000000000 Mu(tan=4.33148, x=0.224951, y=0.97437): 4.331475874284\n    test 1587 77 76.978961492015 Chi(tan=4.32423, x=1.0, y=4.32423), iteration=3: 4.331475874284\n    test 1588 77 77.007014500932 Xi(tan=4.3339, x=0.451683, y=1.95755), iteration=3: 4.331475874284\n\n    test 1589 77 77.063098225048 Phi(tan=4.35334, x=0.223878, y=0.974617): 4.331475874284\n    test 1590 77 77.021048596835 Beta(tan=4.33875, x=0.224593, y=0.974453): 4.331475874284\n    test 1591 77 76.978871802460 Theta(tan=4.3242, x=0.22531, y=0.974287): 4.331475874284\n    test 1592 77 77.000000000000 Mu(tan=4.33148, x=0.224951, y=0.97437): 4.331475874284\n    test 1593 77 76.978961492015 Chi(tan=4.32423, x=0.225309, y=0.974287): 4.331475874284\n    test 1594 77 77.007014500932 Xi(tan=4.3339, x=0.224832, y=0.974398): 4.331475874284\n\n    test 1595 84 84.029919429066 Phi(tan=9.5624, x=1.0, y=9.5624): 9.514364454223\n    test 1596 84 84.009981321799 Beta(tan=9.53033, x=1.0, y=9.53033): 9.514364454223\n    test 1597 84 83.989977604221 Theta(tan=9.49838, x=1.0, y=9.49838): 9.514364454223\n    test 1598 84 84.000000000000 Mu(tan=9.51436, x=0.104528, y=0.994522): 9.514364454223\n    test 1599 84 83.990021917793 Chi(tan=9.49845, x=1.0, y=9.49845), iteration=3: 9.514364454223\n    test 1600 84 84.003326493225 Xi(tan=9.51968, x=0.20988, y=1.99799), iteration=2: 9.514364454223\n\n    test 1601 84 84.029919429066 Phi(tan=9.5624, x=0.104009, y=0.994576): 9.514364454223\n    test 1602 84 84.009981321799 Beta(tan=9.53033, x=0.104355, y=0.99454): 9.514364454223\n    test 1603 84 83.989977604221 Theta(tan=9.49838, x=0.104702, y=0.994504): 9.514364454223\n    test 1604 84 84.000000000000 Mu(tan=9.51436, x=0.104528, y=0.994522): 9.514364454223\n    test 1605 84 83.990021917793 Chi(tan=9.49845, x=0.104702, y=0.994504): 9.514364454223\n    test 1606 84 84.003326493225 Xi(tan=9.51968, x=0.104471, y=0.994528): 9.514364454223\n\n    test 1607 91 90.994978117111 Phi(tan=-57.5792, x=-1, y=57.5792): -57.289961630759\n    test 1608 91 90.998324636576 Beta(tan=-57.3861, x=-1, y=57.3861): -57.289961630759\n    test 1609 91 91.001682407187 Theta(tan=-57.1937, x=-1, y=57.1937): -57.289961630759\n    test 1610 91 91.000000000000 Mu(tan=-57.29, x=-0.0174524, y=0.999848): -57.289961630759\n    test 1611 91 91.001674889056 Chi(tan=-57.1941, x=-1, y=57.1941), iteration=3: -57.289961630759\n    test 1612 91 90.999441640005 Xi(tan=-57.322, x=-0.035042, y=2.00867), iteration=3: -57.289961630759\n\n    test 1613 91 90.994978117111 Phi(tan=-57.5792, x=-0.0173648, y=0.999849): -57.289961630759\n    test 1614 91 90.998324636576 Beta(tan=-57.3861, x=-0.0174232, y=0.999848): -57.289961630760  FAILED, KNOWN (5.95323e-15), expected -57.289961630759\n    test 1615 91 91.001682407187 Theta(tan=-57.1937, x=-0.0174818, y=0.999847): -57.289961630760  FAILED, KNOWN (5.82921e-15), expected -57.289961630759\n    test 1616 91 91.000000000000 Mu(tan=-57.29, x=-0.0174524, y=0.999848): -57.289961630759\n    test 1617 91 91.001674889056 Chi(tan=-57.1941, x=-0.0174816, y=0.999847): -57.289961630760  FAILED, KNOWN (9.30193e-15), expected -57.289961630759\n    test 1618 91 90.999441640005 Xi(tan=-57.322, x=-0.0174427, y=0.999848): -57.289961630759\n\n    test 1619 98 97.960332584009 Phi(tan=-7.15129, x=-1, y=7.15129): -7.115369722384\n    test 1620 98 97.986766870880 Beta(tan=-7.12731, x=-1, y=7.12731): -7.115369722384\n    test 1621 98 98.013286645922 Theta(tan=-7.10342, x=-1, y=7.10342): -7.115369722384\n    test 1622 98 98.000000000000 Mu(tan=-7.11537, x=-0.139173, y=0.990268): -7.115369722384\n    test 1623 98 98.013228398375 Chi(tan=-7.10347, x=-1, y=7.10347), iteration=3: -7.115369722384\n    test 1624 98 97.995589824971 Xi(tan=-7.11935, x=-0.279443, y=1.98945), iteration=3: -7.115369722384\n\n    test 1625 98 97.960332584009 Phi(tan=-7.15129, x=-0.138487, y=0.990364): -7.115369722384\n    test 1626 98 97.986766870880 Beta(tan=-7.12731, x=-0.138944, y=0.9903): -7.115369722384\n    test 1627 98 98.013286645922 Theta(tan=-7.10342, x=-0.139403, y=0.990236): -7.115369722384\n    test 1628 98 98.000000000000 Mu(tan=-7.11537, x=-0.139173, y=0.990268): -7.115369722384\n    test 1629 98 98.013228398375 Chi(tan=-7.10347, x=-0.139402, y=0.990236): -7.115369722384\n    test 1630 98 97.995589824971 Xi(tan=-7.11935, x=-0.139097, y=0.990279): -7.115369722384\n\n    test 1631 105 104.928024147426 Phi(tan=-3.75089, x=-1, y=3.75089): -3.732050807569\n    test 1632 105 104.975990619809 Beta(tan=-3.73832, x=-1, y=3.73832): -3.732050807569\n    test 1633 105 105.024096873204 Theta(tan=-3.72578, x=-1, y=3.72578): -3.732050807569\n    test 1634 105 105.000000000000 Mu(tan=-3.73205, x=-0.258819, y=0.965926): -3.732050807569\n    test 1635 105 105.023996337790 Chi(tan=-3.72581, x=-1, y=3.72581), iteration=3: -3.732050807569\n    test 1636 105 104.991999000074 Xi(tan=-3.73414, x=-0.519691, y=1.9406), iteration=3: -3.732050807569\n\n    test 1637 105 104.928024147426 Phi(tan=-3.75089, x=-0.257605, y=0.96625): -3.732050807569\n    test 1638 105 104.975990619809 Beta(tan=-3.73832, x=-0.258414, y=0.966034): -3.732050807569\n    test 1639 105 105.024096873204 Theta(tan=-3.72578, x=-0.259225, y=0.965817): -3.732050807569\n    test 1640 105 105.000000000000 Mu(tan=-3.73205, x=-0.258819, y=0.965926): -3.732050807569\n    test 1641 105 105.023996337790 Chi(tan=-3.72581, x=-0.259224, y=0.965817): -3.732050807569\n    test 1642 105 104.991999000074 Xi(tan=-3.73414, x=-0.258684, y=0.965962): -3.732050807569\n\n    test 1643 112 111.899959803709 Phi(tan=-2.48758, x=-1, y=2.48758): -2.475086853416\n    test 1644 112 111.966633129887 Beta(tan=-2.47924, x=-1, y=2.47924): -2.475086853416\n    test 1645 112 112.033467905647 Theta(tan=-2.47093, x=-1, y=2.47093): -2.475086853416\n    test 1646 112 112.000000000000 Mu(tan=-2.47509, x=-0.374607, y=0.927184): -2.475086853416\n    test 1647 112 112.033339197227 Chi(tan=-2.47095, x=-1, y=2.47095), iteration=3: -2.475086853416\n    test 1648 112 111.988881847875 Xi(tan=-2.47647, x=-0.752216, y=1.86284), iteration=3: -2.475086853416\n\n    test 1649 112 111.899959803709 Phi(tan=-2.48758, x=-0.372987, y=0.927837): -2.475086853416\n    test 1650 112 111.966633129887 Beta(tan=-2.47924, x=-0.374067, y=0.927402): -2.475086853416\n    test 1651 112 112.033467905647 Theta(tan=-2.47093, x=-0.375148, y=0.926965): -2.475086853416\n    test 1652 112 112.000000000000 Mu(tan=-2.47509, x=-0.374607, y=0.927184): -2.475086853416\n    test 1653 112 112.033339197227 Chi(tan=-2.47095, x=-0.375146, y=0.926966): -2.475086853416\n    test 1654 112 111.988881847875 Xi(tan=-2.47647, x=-0.374427, y=0.927257): -2.475086853416\n\n    test 1655 119 118.877801825189 Phi(tan=-1.81316, x=-1, y=1.81316): -1.804047755271\n    test 1656 119 118.959249130251 Beta(tan=-1.80708, x=-1, y=1.80708): -1.804047755271\n    test 1657 119 119.040841846602 Theta(tan=-1.80102, x=-1, y=1.80102): -1.804047755271\n    test 1658 119 119.000000000000 Mu(tan=-1.80405, x=-0.48481, y=0.87462): -1.804047755271\n    test 1659 119 119.040702010928 Chi(tan=-1.80103, x=-1, y=1.80103), iteration=3: -1.804047755271\n    test 1660 119 118.986423296510 Xi(tan=-1.80506, x=-0.973556, y=1.75732), iteration=2: -1.804047755271\n\n    test 1661 119 118.877801825189 Phi(tan=-1.81316, x=-0.482943, y=0.875652): -1.804047755271\n    test 1662 119 118.959249130251 Beta(tan=-1.80708, x=-0.484187, y=0.874964): -1.804047755271\n    test 1663 119 119.040841846602 Theta(tan=-1.80102, x=-0.485433, y=0.874274): -1.804047755271\n    test 1664 119 119.000000000000 Mu(tan=-1.80405, x=-0.48481, y=0.87462): -1.804047755271\n    test 1665 119 119.040702010928 Chi(tan=-1.80103, x=-0.485431, y=0.874275): -1.804047755271\n    test 1666 119 118.986423296510 Xi(tan=-1.80506, x=-0.484602, y=0.874735): -1.804047755271\n\n    test 1667 126 125.862870188589 Phi(tan=-1.38333, x=-1, y=1.38333): -1.376381920471\n    test 1668 126 125.954278157197 Beta(tan=-1.37869, x=-1, y=1.37869): -1.376381920471\n    test 1669 126 126.045781505815 Theta(tan=-1.37407, x=-1, y=1.37407): -1.376381920471\n    test 1670 126 126.000000000000 Mu(tan=-1.37638, x=-0.587785, y=0.809017): -1.376381920471\n    test 1671 126 126.045647308130 Chi(tan=-1.37408, x=-1, y=1.37408), iteration=3: -1.376381920471\n    test 1672 126 125.984769594047 Xi(tan=-1.37715, x=-1.18042, y=1.62561), iteration=2: -1.376381920471\n\n    test 1673 126 125.862870188589 Phi(tan=-1.38333, x=-0.585847, y=0.810421): -1.376381920471\n    test 1674 126 125.954278157197 Beta(tan=-1.37869, x=-0.587139, y=0.809486): -1.376381920471\n    test 1675 126 126.045781505815 Theta(tan=-1.37407, x=-0.588431, y=0.808547): -1.376381920471\n    test 1676 126 126.000000000000 Mu(tan=-1.37638, x=-0.587785, y=0.809017): -1.376381920471\n    test 1677 126 126.045647308130 Chi(tan=-1.37408, x=-0.58843, y=0.808548): -1.376381920471\n    test 1678 126 125.984769594047 Xi(tan=-1.37715, x=-0.58757, y=0.809173): -1.376381920471\n\n    test 1679 133 132.856063347719 Phi(tan=-1.07778, x=-1, y=1.07778): -1.072368710025\n    test 1680 133 132.952018246366 Beta(tan=-1.07417, x=-1, y=1.07417): -1.072368710025\n    test 1681 133 133.047996165770 Theta(tan=-1.07057, x=-1, y=1.07057): -1.072368710025\n    test 1682 133 133.000000000000 Mu(tan=-1.07237, x=-0.681998, y=0.731354): -1.072368710025\n    test 1683 133 133.047881115076 Chi(tan=-1.07057, x=-1, y=1.07057), iteration=3: -1.072368710025\n    test 1684 133 132.984019576906 Xi(tan=-1.07297, x=-1.36971, y=1.46966), iteration=2: -1.072368710025\n\n    test 1685 133 132.856063347719 Phi(tan=-1.07778, x=-0.680159, y=0.733065): -1.072368710025\n    test 1686 133 132.952018246366 Beta(tan=-1.07417, x=-0.681386, y=0.731925): -1.072368710025\n    test 1687 133 133.047996165770 Theta(tan=-1.07057, x=-0.682611, y=0.730782): -1.072368710025\n    test 1688 133 133.000000000000 Mu(tan=-1.07237, x=-0.681998, y=0.731354): -1.072368710025\n    test 1689 133 133.047881115076 Chi(tan=-1.07057, x=-0.682609, y=0.730784): -1.072368710025\n    test 1690 133 132.984019576906 Xi(tan=-1.07297, x=-0.681794, y=0.731544): -1.072368710025\n\n    test 1691 140 139.857802229338 Phi(tan=-0.843338, x=-1, y=0.843338): -0.839099631177\n    test 1692 140 139.952607597930 Beta(tan=-0.84051, x=-1, y=0.84051): -0.839099631177\n    test 1693 140 140.047358211970 Theta(tan=-0.837692, x=-1, y=0.837692): -0.839099631177\n    test 1694 140 140.000000000000 Mu(tan=-0.8391, x=-0.766044, y=0.642788): -0.839099631177\n    test 1695 140 140.047270461053 Chi(tan=-0.837695, x=-1, y=0.837695), iteration=3: -0.839099631177\n    test 1696 140 139.984218660625 Xi(tan=-0.839569, x=-1.53861, y=1.29177), iteration=3: -0.839099631177\n\n    test 1697 140 139.857802229338 Phi(tan=-0.843338, x=-0.764447, y=0.644687): -0.839099631177\n    test 1698 140 139.952607597930 Beta(tan=-0.84051, x=-0.765512, y=0.643421): -0.839099631177\n    test 1699 140 140.047358211970 Theta(tan=-0.837692, x=-0.766575, y=0.642154): -0.839099631177\n    test 1700 140 140.000000000000 Mu(tan=-0.8391, x=-0.766044, y=0.642788): -0.839099631177\n    test 1701 140 140.047270461053 Chi(tan=-0.837695, x=-0.766574, y=0.642155): -0.839099631177\n    test 1702 140 139.984218660625 Xi(tan=-0.839569, x=-0.765867, y=0.642999): -0.839099631177\n\n    test 1703 147 146.868001375396 Phi(tan=-0.652688, x=-1, y=0.652688): -0.649407593198\n    test 1704 147 146.956015447561 Beta(tan=-0.6505, x=-1, y=0.6505): -0.649407593198\n    test 1705 147 147.043909788845 Theta(tan=-0.648319, x=-1, y=0.648319): -0.649407593198\n    test 1706 147 147.000000000000 Mu(tan=-0.649408, x=-0.838671, y=0.544639): -0.649407593198\n    test 1707 147 147.043851339199 Chi(tan=-0.64832, x=-1, y=0.64832), iteration=3: -0.649407593198\n    test 1708 147 146.985355941570 Xi(tan=-0.649771, x=-1.68459, y=1.0946), iteration=3: -0.649407593198\n\n    test 1709 147 146.868001375396 Phi(tan=-0.652688, x=-0.837414, y=0.54657): -0.649407593198\n    test 1710 147 146.956015447561 Beta(tan=-0.6505, x=-0.838252, y=0.545283): -0.649407593198\n    test 1711 147 147.043909788845 Theta(tan=-0.648319, x=-0.839088, y=0.543996): -0.649407593198\n    test 1712 147 147.000000000000 Mu(tan=-0.649408, x=-0.838671, y=0.544639): -0.649407593198\n    test 1713 147 147.043851339199 Chi(tan=-0.64832, x=-0.839087, y=0.543997): -0.649407593198\n    test 1714 147 146.985355941570 Xi(tan=-0.649771, x=-0.838531, y=0.544853): -0.649407593198\n\n    test 1715 154 153.886069836452 Phi(tan=-0.490196, x=-1, y=0.490196): -0.487732588566\n    test 1716 154 153.962042898489 Beta(tan=-0.488553, x=-1, y=0.488553): -0.487732588566\n    test 1717 154 154.037859302268 Theta(tan=-0.486915, x=-1, y=0.486915): -0.487732588566\n    test 1718 154 154.000000000000 Mu(tan=-0.487733, x=-0.898794, y=0.438371): -0.487732588566\n    test 1719 154 154.037826635034 Chi(tan=-0.486916, x=-1, y=0.486916), iteration=3: -0.487732588566\n    test 1720 154 153.987364628293 Xi(tan=-0.488006, x=-1.80546, y=0.881077), iteration=3: -0.487732588566\n\n    test 1721 154 153.886069836452 Phi(tan=-0.490196, x=-0.897921, y=0.440157): -0.487732588566\n    test 1722 154 153.962042898489 Beta(tan=-0.488553, x=-0.898503, y=0.438966): -0.487732588566\n    test 1723 154 154.037859302268 Theta(tan=-0.486915, x=-0.899084, y=0.437777): -0.487732588566\n    test 1724 154 154.000000000000 Mu(tan=-0.487733, x=-0.898794, y=0.438371): -0.487732588566\n    test 1725 154 154.037826635034 Chi(tan=-0.486916, x=-0.899083, y=0.437778): -0.487732588566\n    test 1726 154 153.987364628293 Xi(tan=-0.488006, x=-0.898697, y=0.438569): -0.487732588566\n\n    test 1727 161 160.910942745263 Phi(tan=-0.346067, x=-1, y=0.346067): -0.344327613290\n    test 1728 161 160.970333898803 Beta(tan=-0.344907, x=-1, y=0.344907): -0.344327613290\n    test 1729 161 161.029568209135 Theta(tan=-0.34375, x=-1, y=0.34375): -0.344327613290\n    test 1730 161 161.000000000000 Mu(tan=-0.344328, x=-0.945519, y=0.325568): -0.344327613290\n    test 1731 161 161.029554130079 Chi(tan=-0.343751, x=-1, y=0.343751), iteration=2: -0.344327613290\n    test 1732 161 160.990125827674 Xi(tan=-0.34452, x=-1.89942, y=0.654387), iteration=3: -0.344327613290\n\n    test 1733 161 160.910942745263 Phi(tan=-0.346067, x=-0.945011, y=0.327037): -0.344327613290\n    test 1734 161 160.970333898803 Beta(tan=-0.344907, x=-0.94535, y=0.326058): -0.344327613290\n    test 1735 161 161.029568209135 Theta(tan=-0.34375, x=-0.945686, y=0.32508): -0.344327613290\n    test 1736 161 161.000000000000 Mu(tan=-0.344328, x=-0.945519, y=0.325568): -0.344327613290\n    test 1737 161 161.029554130079 Chi(tan=-0.343751, x=-0.945686, y=0.32508): -0.344327613290\n    test 1738 161 160.990125827674 Xi(tan=-0.34452, x=-0.945462, y=0.325731): -0.344327613290\n\n    test 1739 168 167.941142537455 Phi(tan=-0.21363, x=-1, y=0.21363): -0.212556561670\n    test 1740 168 167.980395911211 Beta(tan=-0.212914, x=-1, y=0.212914): -0.212556561670\n    test 1741 168 168.019529073263 Theta(tan=-0.2122, x=-1, y=0.2122): -0.212556561670\n    test 1742 168 168.000000000000 Mu(tan=-0.212557, x=-0.978148, y=0.207912): -0.212556561670\n    test 1743 168 168.019525279620 Chi(tan=-0.2122, x=-1, y=0.2122), iteration=3: -0.212556561670\n    test 1744 168 167.993475503952 Xi(tan=-0.212676, x=-1.96503, y=0.417914), iteration=2: -0.212556561670\n\n    test 1745 168 167.941142537455 Phi(tan=-0.21363, x=-0.977934, y=0.208916): -0.212556561670\n    test 1746 168 167.980395911211 Beta(tan=-0.212914, x=-0.978076, y=0.208246): -0.212556561670\n    test 1747 168 168.019529073263 Theta(tan=-0.2122, x=-0.978218, y=0.207578): -0.212556561670\n    test 1748 168 168.000000000000 Mu(tan=-0.212557, x=-0.978148, y=0.207912): -0.212556561670\n    test 1749 168 168.019525279620 Chi(tan=-0.2122, x=-0.978218, y=0.207578): -0.212556561670\n    test 1750 168 167.993475503952 Xi(tan=-0.212676, x=-0.978124, y=0.208023): -0.212556561670\n\n    test 1751 175 174.974866680328 Phi(tan=-0.0879307, x=-1, y=0.0879307): -0.087488663526\n    test 1752 175 174.991629164161 Beta(tan=-0.0876359, x=-1, y=0.0876359): -0.087488663526\n    test 1753 175 175.008336301828 Theta(tan=-0.0873421, x=-1, y=0.0873421): -0.087488663526\n    test 1754 175 175.000000000000 Mu(tan=-0.0874887, x=-0.996195, y=0.0871557): -0.087488663526\n    test 1755 175 175.008336017206 Chi(tan=-0.0873421, x=-1, y=0.0873421), iteration=2: -0.087488663526\n    test 1756 175 174.997214222263 Xi(tan=-0.0875377, x=-2.00133, y=0.175191), iteration=2: -0.087488663526\n\n    test 1757 175 174.974866680328 Phi(tan=-0.0879307, x=-0.996156, y=0.0875927): -0.087488663526\n    test 1758 175 174.991629164161 Beta(tan=-0.0876359, x=-0.996182, y=0.0873013): -0.087488663526\n    test 1759 175 175.008336301828 Theta(tan=-0.0873421, x=-0.996207, y=0.0870108): -0.087488663526\n    test 1760 175 175.000000000000 Mu(tan=-0.0874887, x=-0.996195, y=0.0871557): -0.087488663526\n    test 1761 175 175.008336017206 Chi(tan=-0.0873421, x=-0.996207, y=0.0870108): -0.087488663526\n    test 1762 175 174.997214222263 Xi(tan=-0.0875377, x=-0.99619, y=0.0872042): -0.087488663526\n\n    test 1763 182 182.010096724503 Phi(tan=0.0350972, x=-1, y=-0.0350972): 0.034920769492\n    test 1764 182 182.003362751638 Beta(tan=0.0349795, x=-1, y=-0.0349795): 0.034920769492\n    test 1765 182 181.996651301418 Theta(tan=0.0348623, x=-1, y=-0.0348623): 0.034920769492\n    test 1766 182 182.000000000000 Mu(tan=0.0349208, x=-0.999391, y=-0.0348995): 0.034920769492\n    test 1767 182 181.996651319751 Chi(tan=0.0348623, x=-1, y=-0.0348623), iteration=2: 0.034920769492\n    test 1768 182 182.001119098649 Xi(tan=0.0349403, x=-2.00775, y=-0.0701516), iteration=2: 0.034920769492\n\n    test 1769 182 182.010096724503 Phi(tan=0.0350972, x=-0.999385, y=-0.0350756): 0.034920769492\n    test 1770 182 182.003362751638 Beta(tan=0.0349795, x=-0.999389, y=-0.0349582): 0.034920769492\n    test 1771 182 181.996651301418 Theta(tan=0.0348623, x=-0.999393, y=-0.0348411): 0.034920769492\n    test 1772 182 182.000000000000 Mu(tan=0.0349208, x=-0.999391, y=-0.0348995): 0.034920769492\n    test 1773 182 181.996651319751 Chi(tan=0.0348623, x=-0.999393, y=-0.0348411): 0.034920769492\n    test 1774 182 182.001119098649 Xi(tan=0.0349403, x=-0.99939, y=-0.034919): 0.034920769492\n\n    test 1775 189 189.044721740866 Phi(tan=0.159185, x=-1, y=-0.159185): 0.158384440325\n    test 1776 189 189.014895327636 Beta(tan=0.158651, x=-1, y=-0.158651): 0.158384440325\n    test 1777 189 188.985164013992 Theta(tan=0.158119, x=-1, y=-0.158119): 0.158384440325\n    test 1778 189 189.000000000000 Mu(tan=0.158384, x=-0.987688, y=-0.156434): 0.158384440325\n    test 1779 189 188.985165645705 Chi(tan=0.158119, x=-1, y=-0.158119), iteration=3: 0.158384440325\n    test 1780 189 189.004957222799 Xi(tan=0.158473, x=-1.98422, y=-0.314445), iteration=3: 0.158384440325\n\n    test 1781 189 189.044721740866 Phi(tan=0.159185, x=-0.987566, y=-0.157205): 0.158384440325\n    test 1782 189 189.014895327636 Beta(tan=0.158651, x=-0.987648, y=-0.156691): 0.158384440325\n    test 1783 189 188.985164013992 Theta(tan=0.158119, x=-0.987729, y=-0.156179): 0.158384440325\n    test 1784 189 189.000000000000 Mu(tan=0.158384, x=-0.987688, y=-0.156434): 0.158384440325\n    test 1785 189 188.985165645705 Chi(tan=0.158119, x=-0.987729, y=-0.156179): 0.158384440325\n    test 1786 189 189.004957222799 Xi(tan=0.158473, x=-0.987675, y=-0.15652): 0.158384440325\n\n    test 1787 196 196.076667971970 Phi(tan=0.288194, x=-1, y=-0.288194): 0.286745385759\n    test 1788 196 196.025537779325 Beta(tan=0.287228, x=-1, y=-0.287228): 0.286745385759\n    test 1789 196 195.974552923462 Theta(tan=0.286265, x=-1, y=-0.286265): 0.286745385759\n    test 1790 196 196.000000000000 Mu(tan=0.286745, x=-0.961262, y=-0.275637): 0.286745385759\n    test 1791 196 195.974561610097 Chi(tan=0.286265, x=-1, y=-0.286265), iteration=2: 0.286745385759\n    test 1792 196 196.008499713199 Xi(tan=0.286906, x=-1.93107, y=-0.554036), iteration=3: 0.286745385759\n\n    test 1793 196 196.076667971970 Phi(tan=0.288194, x=-0.960892, y=-0.276923): 0.286745385759\n    test 1794 196 196.025537779325 Beta(tan=0.287228, x=-0.961139, y=-0.276066): 0.286745385759\n    test 1795 196 195.974552923462 Theta(tan=0.286265, x=-0.961384, y=-0.27521): 0.286745385759\n    test 1796 196 196.000000000000 Mu(tan=0.286745, x=-0.961262, y=-0.275637): 0.286745385759\n    test 1797 196 195.974561610097 Chi(tan=0.286265, x=-0.961384, y=-0.275211): 0.286745385759\n    test 1798 196 196.008499713199 Xi(tan=0.286906, x=-0.961221, y=-0.27578): 0.286745385759\n\n    test 1799 203 203.104025981749 Phi(tan=0.426619, x=-1, y=-0.426619): 0.424474816210\n    test 1800 203 203.034655104114 Beta(tan=0.425189, x=-1, y=-0.425189): 0.424474816210\n    test 1801 203 202.965445675486 Theta(tan=0.423763, x=-1, y=-0.423763): 0.424474816210\n    test 1802 203 203.000000000000 Mu(tan=0.424475, x=-0.920505, y=-0.390731): 0.424474816210\n    test 1803 203 202.965469367936 Chi(tan=0.423764, x=-1, y=-0.423764), iteration=3: 0.424474816210\n    test 1804 203 203.011535517974 Xi(tan=0.424712, x=-1.84912, y=-0.785343), iteration=2: 0.424474816210\n\n    test 1805 203 203.104025981749 Phi(tan=0.426619, x=-0.919794, y=-0.392402): 0.424474816210\n    test 1806 203 203.034655104114 Beta(tan=0.425189, x=-0.920268, y=-0.391288): 0.424474816210\n    test 1807 203 202.965445675486 Theta(tan=0.423763, x=-0.92074, y=-0.390176): 0.424474816210\n    test 1808 203 203.000000000000 Mu(tan=0.424475, x=-0.920505, y=-0.390731): 0.424474816210\n    test 1809 203 202.965469367936 Chi(tan=0.423764, x=-0.92074, y=-0.390176): 0.424474816210\n    test 1810 203 203.011535517974 Xi(tan=0.424712, x=-0.920426, y=-0.390916): 0.424474816210\n\n    test 1811 210 210.125166807834 Phi(tan=0.580267, x=-1, y=-0.580267): 0.577350269190\n    test 1812 210 210.041704779944 Beta(tan=0.578321, x=-1, y=-0.578321): 0.577350269190\n    test 1813 210 209.958382432479 Theta(tan=0.576382, x=-1, y=-0.576382): 0.577350269190\n    test 1814 210 210.000000000000 Mu(tan=0.57735, x=-0.866025, y=-0.5): 0.577350269190\n    test 1815 210 209.958429134161 Chi(tan=0.576383, x=-1, y=-0.576383), iteration=2: 0.577350269190\n    test 1816 210 210.013884093401 Xi(tan=0.577673, x=-1.73958, y=-1.00491), iteration=2: 0.577350269190\n\n    test 1817 210 210.125166807834 Phi(tan=0.580267, x=-0.864931, y=-0.501891): 0.577350269190\n    test 1818 210 210.041704779944 Beta(tan=0.578321, x=-0.865661, y=-0.50063): 0.577350269190\n    test 1819 210 209.958382432479 Theta(tan=0.576382, x=-0.866388, y=-0.499371): 0.577350269190\n    test 1820 210 210.000000000000 Mu(tan=0.57735, x=-0.866025, y=-0.5): 0.577350269190\n    test 1821 210 209.958429134161 Chi(tan=0.576383, x=-0.866388, y=-0.499372): 0.577350269190\n    test 1822 210 210.013884093401 Xi(tan=0.577673, x=-0.865904, y=-0.50021): 0.577350269190\n\n    test 1823 217 217.138839575219 Phi(tan=0.75736, x=-1, y=-0.75736): 0.753554050103\n    test 1824 217 217.046269197118 Beta(tan=0.754821, x=-1, y=-0.754821): 0.753554050103\n    test 1825 217 216.953783990372 Theta(tan=0.75229, x=-1, y=-0.75229): 0.753554050103\n    test 1826 217 217.000000000000 Mu(tan=0.753554, x=-0.798636, y=-0.601815): 0.753554050103\n    test 1827 217 216.953859077076 Chi(tan=0.752292, x=-1, y=-0.752292), iteration=3: 0.753554050103\n    test 1828 217 217.015406173898 Xi(tan=0.753976, x=-1.60412, y=-1.20947), iteration=3: 0.753554050103\n\n    test 1829 217 217.138839575219 Phi(tan=0.75736, x=-0.797175, y=-0.603749): 0.753554050103\n    test 1830 217 217.046269197118 Beta(tan=0.754821, x=-0.798149, y=-0.60246): 0.753554050103\n    test 1831 217 216.953783990372 Theta(tan=0.75229, x=-0.799121, y=-0.601171): 0.753554050103\n    test 1832 217 217.000000000000 Mu(tan=0.753554, x=-0.798636, y=-0.601815): 0.753554050103\n    test 1833 217 216.953859077076 Chi(tan=0.752292, x=-0.79912, y=-0.601172): 0.753554050103\n    test 1834 217 217.015406173898 Xi(tan=0.753976, x=-0.798474, y=-0.60203): 0.753554050103\n\n    test 1835 224 224.144244585156 Phi(tan=0.970566, x=-1, y=-0.970566): 0.965688774807\n    test 1836 224 224.048080179626 Beta(tan=0.967312, x=-1, y=-0.967312): 0.965688774807\n    test 1837 224 223.951926502986 Theta(tan=0.964069, x=-1, y=-0.964069): 0.965688774807\n    test 1838 224 224.000000000000 Mu(tan=0.965689, x=-0.71934, y=-0.694658): 0.965688774807\n    test 1839 224 223.952030495532 Chi(tan=0.964072, x=-1, y=-0.964072), iteration=2: 0.965688774807\n    test 1840 224 224.016011983610 Xi(tan=0.966229, x=-1.44475, y=-1.39596), iteration=2: 0.965688774807\n\n    test 1841 224 224.144244585156 Phi(tan=0.970566, x=-0.717589, y=-0.696467): 0.965688774807\n    test 1842 224 224.048080179626 Beta(tan=0.967312, x=-0.718757, y=-0.695262): 0.965688774807\n    test 1843 224 223.951926502986 Theta(tan=0.964069, x=-0.719922, y=-0.694055): 0.965688774807\n    test 1844 224 224.000000000000 Mu(tan=0.965689, x=-0.71934, y=-0.694658): 0.965688774807\n    test 1845 224 223.952030495532 Chi(tan=0.964072, x=-0.719921, y=-0.694056): 0.965688774807\n    test 1846 224 224.016011983610 Xi(tan=0.966229, x=-0.719146, y=-0.694859): 0.965688774807\n\n    test 1847 231 231.141077842653 Phi(tan=1.24113, x=-1, y=-1.24113): 1.234897156535\n    test 1848 231 231.047034210293 Beta(tan=1.23697, x=-1, y=-1.23697): 1.234897156535\n    test 1849 231 230.952924380812 Theta(tan=1.23282, x=-1, y=-1.23282): 1.234897156535\n    test 1850 231 231.000000000000 Mu(tan=1.2349, x=-0.62932, y=-0.777146): 1.234897156535\n    test 1851 231 230.953051749472 Chi(tan=1.23283, x=-1, y=-1.23283), iteration=3: 1.234897156535\n    test 1852 231 231.015666416855 Xi(tan=1.23559, x=-1.26387, y=-1.56162), iteration=3: 1.234897156535\n\n    test 1853 231 231.141077842654 Phi(tan=1.24113, x=-0.627405, y=-0.778693): 1.234897156535\n    test 1854 231 231.047034210293 Beta(tan=1.23697, x=-0.628682, y=-0.777662): 1.234897156535\n    test 1855 231 230.952924380812 Theta(tan=1.23282, x=-0.629959, y=-0.776629): 1.234897156535\n    test 1856 231 231.000000000000 Mu(tan=1.2349, x=-0.62932, y=-0.777146): 1.234897156535\n    test 1857 231 230.953051749472 Chi(tan=1.23283, x=-0.629957, y=-0.77663): 1.234897156535\n    test 1858 231 231.015666416855 Xi(tan=1.23559, x=-0.629108, y=-0.777318): 1.234897156535\n\n    test 1859 238 238.129545093885 Phi(tan=1.60842, x=-1, y=-1.60842): 1.600334529041\n    test 1860 238 238.043197624299 Beta(tan=1.60302, x=-1, y=-1.60302): 1.600334529041\n    test 1861 238 237.956722543300 Theta(tan=1.59765, x=-1, y=-1.59765): 1.600334529041\n    test 1862 238 238.000000000000 Mu(tan=1.60033, x=-0.529919, y=-0.848048): 1.600334529041\n    test 1863 238 237.956861886827 Chi(tan=1.59766, x=-1, y=-1.59766), iteration=3: 1.600334529041\n    test 1864 238 238.014390916077 Xi(tan=1.60123, x=-1.06417, y=-1.70398), iteration=3: 1.600334529041\n\n    test 1865 238 238.129545093885 Phi(tan=1.60842, x=-0.528, y=-0.849244): 1.600334529041\n    test 1866 238 238.043197624299 Beta(tan=1.60302, x=-0.52928, y=-0.848447): 1.600334529041\n    test 1867 238 237.956722543300 Theta(tan=1.59765, x=-0.53056, y=-0.847648): 1.600334529041\n    test 1868 238 238.000000000000 Mu(tan=1.60033, x=-0.529919, y=-0.848048): 1.600334529041\n    test 1869 238 237.956861886827 Chi(tan=1.59766, x=-0.530558, y=-0.847649): 1.600334529041\n    test 1870 238 238.014390916077 Xi(tan=1.60123, x=-0.529706, y=-0.848181): 1.600334529041\n\n    test 1871 245 245.110345489960 Phi(tan=2.15533, x=-1, y=-2.15533): 2.144506920510\n    test 1872 245 245.036801688087 Beta(tan=2.14811, x=-1, y=-2.14811): 2.144506920510\n    test 1873 245 244.963098707662 Theta(tan=2.14091, x=-1, y=-2.14091): 2.144506920510\n    test 1874 245 245.000000000000 Mu(tan=2.14451, x=-0.422618, y=-0.906308): 2.144506920510\n    test 1875 245 244.963234330104 Chi(tan=2.14092, x=-1, y=-2.14092), iteration=2: 2.144506920510\n    test 1876 245 245.012261984604 Xi(tan=2.14571, x=-0.848642, y=-1.82094), iteration=3: 2.144506920510\n\n    test 1877 245 245.110345489960 Phi(tan=2.15533, x=-0.420872, y=-0.90712): 2.144506920510\n    test 1878 245 245.036801688087 Beta(tan=2.14811, x=-0.422036, y=-0.906579): 2.144506920510\n    test 1879 245 244.963098707662 Theta(tan=2.14091, x=-0.423202, y=-0.906035): 2.144506920510\n    test 1880 245 245.000000000000 Mu(tan=2.14451, x=-0.422618, y=-0.906308): 2.144506920510\n    test 1881 245 244.963234330104 Chi(tan=2.14092, x=-0.4232, y=-0.906036): 2.144506920510\n    test 1882 245 245.012261984604 Xi(tan=2.14571, x=-0.422424, y=-0.906398): 2.144506920510\n\n    test 1883 252 252.084626804899 Phi(tan=3.09322, x=-1, y=-3.09322): 3.077683537175\n    test 1884 252 252.028228084417 Beta(tan=3.08285, x=-1, y=-3.08285): 3.077683537175\n    test 1885 252 251.971675808314 Theta(tan=3.07251, x=-1, y=-3.07251): 3.077683537175\n    test 1886 252 252.000000000000 Mu(tan=3.07768, x=-0.309017, y=-0.951057): 3.077683537175\n    test 1887 252 251.971790388449 Chi(tan=3.07254, x=-1, y=-3.07254), iteration=3: 3.077683537175\n    test 1888 252 252.009406472364 Xi(tan=3.0794, x=-0.620495, y=-1.91076), iteration=3: 3.077683537175\n\n    test 1889 252 252.084626804899 Phi(tan=3.09322, x=-0.307612, y=-0.951512): 3.077683537175\n    test 1890 252 252.028228084417 Beta(tan=3.08285, x=-0.308548, y=-0.951209): 3.077683537175\n    test 1891 252 251.971675808314 Theta(tan=3.07251, x=-0.309487, y=-0.950904): 3.077683537175\n    test 1892 252 252.000000000000 Mu(tan=3.07768, x=-0.309017, y=-0.951057): 3.077683537175\n    test 1893 252 251.971790388449 Chi(tan=3.07254, x=-0.309485, y=-0.950904): 3.077683537175\n    test 1894 252 252.009406472364 Xi(tan=3.0794, x=-0.308861, y=-0.951107): 3.077683537175\n\n    test 1895 259 259.053915611440 Phi(tan=5.17053, x=-1, y=-5.17053): 5.144554015970\n    test 1896 259 259.017985844271 Beta(tan=5.15319, x=-1, y=-5.15319): 5.144554015970\n    test 1897 259 258.981943992803 Theta(tan=5.13591, x=-1, y=-5.13591): 5.144554015970\n    test 1898 259 259.000000000000 Mu(tan=5.14455, x=-0.190809, y=-0.981627): 5.144554015970\n    test 1899 259 258.982021780770 Chi(tan=5.13595, x=-1, y=-5.13595), iteration=2: 5.144554015970\n    test 1900 259 259.005993953740 Xi(tan=5.14743, x=-0.383125, y=-1.97211), iteration=3: 5.144554015970\n\n    test 1901 259 259.053915611440 Phi(tan=5.17053, x=-0.189885, y=-0.981806): 5.144554015970\n    test 1902 259 259.017985844271 Beta(tan=5.15319, x=-0.190501, y=-0.981687): 5.144554015970\n    test 1903 259 258.981943992803 Theta(tan=5.13591, x=-0.191118, y=-0.981567): 5.144554015970\n    test 1904 259 259.000000000000 Mu(tan=5.14455, x=-0.190809, y=-0.981627): 5.144554015970\n    test 1905 259 258.982021780770 Chi(tan=5.13595, x=-0.191117, y=-0.981567): 5.144554015970\n    test 1906 259 259.005993953740 Xi(tan=5.14743, x=-0.190706, y=-0.981647): 5.144554015970\n\n    test 1907 266 266.020026926530 Phi(tan=14.3729, x=-1, y=-14.3729): 14.300666256712\n    test 1908 266 266.006681184269 Beta(tan=14.3247, x=-1, y=-14.3247): 14.300666256712\n    test 1909 266 265.993290981931 Theta(tan=14.2766, x=-1, y=-14.2766): 14.300666256712\n    test 1910 266 266.000000000000 Mu(tan=14.3007, x=-0.0697565, y=-0.997564): 14.300666256712\n    test 1911 266 265.993320826309 Chi(tan=14.2767, x=-1, y=-14.2767), iteration=3: 14.300666256712\n    test 1912 266 266.002226669943 Xi(tan=14.3087, x=-0.140061, y=-2.00409), iteration=3: 14.300666256712\n\n    test 1913 266 266.020026926530 Phi(tan=14.3729, x=-0.0694078, y=-0.997588): 14.300666256712\n    test 1914 266 266.006681184269 Beta(tan=14.3247, x=-0.0696401, y=-0.997572): 14.300666256712\n    test 1915 266 265.993290981931 Theta(tan=14.2766, x=-0.0698733, y=-0.997556): 14.300666256712\n    test 1916 266 266.000000000000 Mu(tan=14.3007, x=-0.0697565, y=-0.997564): 14.300666256712\n    test 1917 266 265.993320826309 Chi(tan=14.2767, x=-0.0698728, y=-0.997556): 14.300666256712\n    test 1918 266 266.002226669943 Xi(tan=14.3087, x=-0.0697177, y=-0.997567): 14.300666256712\n\n    test 1919 273 272.984958603323 Phi(tan=-19.1775, x=1.0, y=-19.1775): -19.081136687728\n    test 1920 273 272.994982020871 Beta(tan=-19.1132, x=1.0, y=-19.1132): -19.081136687728\n    test 1921 273 273.005038973685 Theta(tan=-19.0491, x=1.0, y=-19.0491): -19.081136687728\n    test 1922 273 273.000000000000 Mu(tan=-19.0811, x=0.052336, y=-0.99863): -19.081136687728\n    test 1923 273 273.005016510682 Chi(tan=-19.0492, x=1.0, y=-19.0492), iteration=3: -19.081136687728\n    test 1924 273 272.998327629166 Xi(tan=-19.0918, x=0.105083, y=-2.00623), iteration=3: -19.081136687728\n\n    test 1925 273 272.984958603323 Phi(tan=-19.1775, x=0.0520738, y=-0.998643): -19.081136687728\n    test 1926 273 272.994982020871 Beta(tan=-19.1132, x=0.0522485, y=-0.998634): -19.081136687728\n    test 1927 273 273.005038973685 Theta(tan=-19.0491, x=0.0524238, y=-0.998625): -19.081136687728\n    test 1928 273 273.000000000000 Mu(tan=-19.0811, x=0.052336, y=-0.99863): -19.081136687728\n    test 1929 273 273.005016510682 Chi(tan=-19.0492, x=0.0524234, y=-0.998625): -19.081136687728\n    test 1930 273 272.998327629166 Xi(tan=-19.0918, x=0.0523068, y=-0.998631): -19.081136687728\n\n    test 1931 280 279.950776225319 Phi(tan=-5.69991, x=1.0, y=-5.69991): -5.671281819618\n    test 1932 280 279.983579145989 Beta(tan=-5.6808, x=1.0, y=-5.6808): -5.671281819618\n    test 1933 280 280.016485774700 Theta(tan=-5.66176, x=1.0, y=-5.66176): -5.671281819618\n    test 1934 280 280.000000000000 Mu(tan=-5.67128, x=0.173648, y=-0.984808): -5.671281819618\n    test 1935 280 280.016414293005 Chi(tan=-5.6618, x=1.0, y=-5.6618), iteration=3: -5.671281819618\n    test 1936 280 279.994527544579 Xi(tan=-5.67445, x=0.348667, y=-1.97849), iteration=3: -5.671281819618\n\n    test 1937 280 279.950776225319 Phi(tan=-5.69991, x=0.172802, y=-0.984957): -5.671281819618\n    test 1938 280 279.983579145989 Beta(tan=-5.6808, x=0.173366, y=-0.984857): -5.671281819618\n    test 1939 280 280.016485774700 Theta(tan=-5.66176, x=0.173932, y=-0.984758): -5.671281819618\n    test 1940 280 280.000000000000 Mu(tan=-5.67128, x=0.173648, y=-0.984808): -5.671281819618\n    test 1941 280 280.016414293005 Chi(tan=-5.6618, x=0.17393, y=-0.984758): -5.671281819618\n    test 1942 280 279.994527544579 Xi(tan=-5.67445, x=0.173554, y=-0.984824): -5.671281819618\n\n    test 1943 287 286.919494515865 Phi(tan=-3.28737, x=1.0, y=-3.28737): -3.270852618484\n    test 1944 287 286.973146172898 Beta(tan=-3.27634, x=1.0, y=-3.27634): -3.270852618484\n    test 1945 287 287.026947513630 Theta(tan=-3.26536, x=1.0, y=-3.26536): -3.270852618484\n    test 1946 287 287.000000000000 Mu(tan=-3.27085, x=0.292372, y=-0.956305): -3.270852618484\n    test 1947 287 287.026837302239 Chi(tan=-3.26538, x=1.0, y=-3.26538), iteration=3: -3.270852618484\n    test 1948 287 286.991051342914 Xi(tan=-3.27268, x=0.587069, y=-1.92129), iteration=3: -3.270852618484\n\n    test 1949 287 286.919494515865 Phi(tan=-3.28737, x=0.291028, y=-0.956715): -3.270852618484\n    test 1950 287 286.973146172898 Beta(tan=-3.27634, x=0.291923, y=-0.956442): -3.270852618484\n    test 1951 287 287.026947513630 Theta(tan=-3.26536, x=0.292821, y=-0.956167): -3.270852618484\n    test 1952 287 287.000000000000 Mu(tan=-3.27085, x=0.292372, y=-0.956305): -3.270852618484\n    test 1953 287 287.026837302239 Chi(tan=-3.26538, x=0.29282, y=-0.956168): -3.270852618484\n    test 1954 287 286.991051342914 Xi(tan=-3.27268, x=0.292222, y=-0.95635): -3.270852618484\n\n    test 1955 294 293.892961362638 Phi(tan=-2.25738, x=1.0, y=-2.25738): -2.246036773904\n    test 1956 294 293.964300405205 Beta(tan=-2.24981, x=1.0, y=-2.24981): -2.246036773904\n    test 1957 294 294.035800165821 Theta(tan=-2.24227, x=1.0, y=-2.24227): -2.246036773904\n    test 1958 294 294.000000000000 Mu(tan=-2.24604, x=0.406737, y=-0.913545): -2.246036773904\n    test 1959 294 294.035666490170 Chi(tan=-2.24228, x=1.0, y=-2.24228), iteration=3: -2.246036773904\n    test 1960 294 293.988104995444 Xi(tan=-2.24729, x=0.816745, y=-1.83546), iteration=3: -2.246036773904\n\n    test 1961 294 293.892961362638 Phi(tan=-2.25738, x=0.405029, y=-0.914304): -2.246036773904\n    test 1962 294 293.964300405205 Beta(tan=-2.24981, x=0.406167, y=-0.913799): -2.246036773904\n    test 1963 294 294.035800165821 Theta(tan=-2.24227, x=0.407307, y=-0.913291): -2.246036773904\n    test 1964 294 294.000000000000 Mu(tan=-2.24604, x=0.406737, y=-0.913545): -2.246036773904\n    test 1965 294 294.035666490170 Chi(tan=-2.24228, x=0.407305, y=-0.913292): -2.246036773904\n    test 1966 294 293.988104995444 Xi(tan=-2.24729, x=0.406547, y=-0.91363): -2.246036773904\n\n    test 1967 301 300.872750492296 Phi(tan=-1.67268, x=1.0, y=-1.67268): -1.664279482351\n    test 1968 301 300.957566748779 Beta(tan=-1.66707, x=1.0, y=-1.66707): -1.664279482351\n    test 1969 301 301.042517212699 Theta(tan=-1.66149, x=1.0, y=-1.66149): -1.664279482351\n    test 1970 301 301.000000000000 Mu(tan=-1.66428, x=0.515038, y=-0.857167): -1.664279482351\n    test 1971 301 301.042377369066 Chi(tan=-1.66149, x=1.0, y=-1.66149), iteration=3: -1.664279482351\n    test 1972 301 300.985863408886 Xi(tan=-1.66521, x=1.03428, y=-1.72229), iteration=2: -1.664279482351\n\n    test 1973 301 300.872750492296 Phi(tan=-1.67268, x=0.513133, y=-0.858309): -1.664279482351\n    test 1974 301 300.957566748779 Beta(tan=-1.66707, x=0.514403, y=-0.857549): -1.664279482351\n    test 1975 301 301.042517212699 Theta(tan=-1.66149, x=0.515674, y=-0.856785): -1.664279482351\n    test 1976 301 301.000000000000 Mu(tan=-1.66428, x=0.515038, y=-0.857167): -1.664279482351\n    test 1977 301 301.042377369066 Chi(tan=-1.66149, x=0.515672, y=-0.856786): -1.664279482351\n    test 1978 301 300.985863408886 Xi(tan=-1.66521, x=0.514827, y=-0.857294): -1.664279482351\n\n    test 1979 308 307.860068599875 Phi(tan=-1.28641, x=1.0, y=-1.28641): -1.279941632193\n    test 1980 308 307.953346674264 Beta(tan=-1.28209, x=1.0, y=-1.28209): -1.279941632193\n    test 1981 308 308.046701061231 Theta(tan=-1.27779, x=1.0, y=-1.27779): -1.279941632193\n    test 1982 308 308.000000000000 Mu(tan=-1.27994, x=0.615661, y=-0.788011): -1.279941632193\n    test 1983 308 308.046571160545 Chi(tan=-1.2778, x=1.0, y=-1.2778), iteration=3: -1.279941632193\n    test 1984 308 307.984460065878 Xi(tan=-1.28066, x=1.23642, y=-1.58343), iteration=3: -1.279941632193\n\n    test 1985 308 307.860068599875 Phi(tan=-1.28641, x=0.613735, y=-0.789512): -1.279941632193\n    test 1986 308 307.953346674264 Beta(tan=-1.28209, x=0.61502, y=-0.788512): -1.279941632193\n    test 1987 308 308.046701061231 Theta(tan=-1.27779, x=0.616304, y=-0.787509): -1.279941632193\n    test 1988 308 308.000000000000 Mu(tan=-1.27994, x=0.615661, y=-0.788011): -1.279941632193\n    test 1989 308 308.046571160545 Chi(tan=-1.2778, x=0.616302, y=-0.78751): -1.279941632193\n    test 1990 308 307.984460065878 Xi(tan=-1.28066, x=0.615448, y=-0.788178): -1.279941632193\n\n    test 1991 315 314.855682294112 Phi(tan=-1.00505, x=1.0, y=-1.00505): -1.000000000000\n    test 1992 315 314.951894037750 Beta(tan=-1.00168, x=1.0, y=-1.00168): -1.000000000000\n    test 1993 315 315.048106323978 Theta(tan=-0.998322, x=1.0, y=-0.998322): -1.000000000000\n    test 1994 315 315.000000000000 Mu(tan=-1, x=0.707107, y=-0.707107): -1.000000000000\n    test 1995 315 315.047998507775 Chi(tan=-0.998326, x=1.0, y=-0.998326), iteration=3: -1.000000000000\n    test 1996 315 314.983979022806 Xi(tan=-1.00056, x=1.42017, y=-1.42096), iteration=2: -1.000000000000\n\n    test 1997 315 314.855682294112 Phi(tan=-1.00505, x=0.705323, y=-0.708886): -1.000000000000\n    test 1998 315 314.951894037750 Beta(tan=-1.00168, x=0.706513, y=-0.7077): -1.000000000000\n    test 1999 315 315.048106323978 Theta(tan=-0.998322, x=0.7077, y=-0.706513): -1.000000000000\n    test 2000 315 315.000000000000 Mu(tan=-1, x=0.707107, y=-0.707107): -1.000000000000\n    test 2001 315 315.047998507775 Chi(tan=-0.998326, x=0.707699, y=-0.706514): -1.000000000000\n    test 2002 315 314.983979022806 Xi(tan=-1.00056, x=0.706909, y=-0.707304): -1.000000000000\n\n    test 2003 322 321.859869499768 Phi(tan=-0.785232, x=1.0, y=-0.785232): -0.781285626507\n    test 2004 322 321.953299269346 Beta(tan=-0.782599, x=1.0, y=-0.782599): -0.781285626507\n    test 2005 322 322.046653656044 Theta(tan=-0.779975, x=1.0, y=-0.779975): -0.781285626507\n    test 2006 322 322.000000000000 Mu(tan=-0.781286, x=0.788011, y=-0.615661): -0.781285626507\n    test 2007 322 322.046574337734 Chi(tan=-0.779977, x=1.0, y=-0.779977), iteration=2: -0.781285626507\n    test 2008 322 321.984449756665 Xi(tan=-0.781723, x=1.58276, y=-1.23728), iteration=3: -0.781285626507\n\n    test 2009 322 321.859869499768 Phi(tan=-0.785232, x=0.786503, y=-0.617587): -0.781285626507\n    test 2010 322 321.953299269346 Beta(tan=-0.782599, x=0.787509, y=-0.616304): -0.781285626507\n    test 2011 322 322.046653656044 Theta(tan=-0.779975, x=0.788512, y=-0.61502): -0.781285626507\n    test 2012 322 322.000000000000 Mu(tan=-0.781286, x=0.788011, y=-0.615661): -0.781285626507\n    test 2013 322 322.046574337734 Chi(tan=-0.779977, x=0.788511, y=-0.615021): -0.781285626507\n    test 2014 322 321.984449756665 Xi(tan=-0.781723, x=0.787844, y=-0.615875): -0.781285626507\n\n    test 2015 329 328.872398901328 Phi(tan=-0.603896, x=1.0, y=-0.603896): -0.600860619028\n    test 2016 329 328.957483036491 Beta(tan=-0.601871, x=1.0, y=-0.601871): -0.600860619028\n    test 2017 329 329.042433500019 Theta(tan=-0.599853, x=1.0, y=-0.599853): -0.600860619028\n    test 2018 329 329.000000000000 Mu(tan=-0.600861, x=0.857167, y=-0.515038): -0.600860619028\n    test 2019 329 329.042382979662 Chi(tan=-0.599854, x=1.0, y=-0.599854), iteration=3: -0.600860619028\n    test 2020 329 328.985845203875 Xi(tan=-0.601197, x=1.72178, y=-1.03513), iteration=2: -0.600860619028\n\n    test 2021 329 328.872398901328 Phi(tan=-0.603896, x=0.856018, y=-0.516946): -0.600860619028\n    test 2022 329 328.957483036491 Beta(tan=-0.601871, x=0.856785, y=-0.515674): -0.600860619028\n    test 2023 329 329.042433500019 Theta(tan=-0.599853, x=0.857549, y=-0.514403): -0.600860619028\n    test 2024 329 329.000000000000 Mu(tan=-0.600861, x=0.857167, y=-0.515038): -0.600860619028\n    test 2025 329 329.042382979662 Chi(tan=-0.599854, x=0.857548, y=-0.514404): -0.600860619028\n    test 2026 329 328.985845203875 Xi(tan=-0.601197, x=0.85704, y=-0.51525): -0.600860619028\n\n    test 2027 336 335.892539588775 Phi(tan=-0.447478, x=1.0, y=-0.447478): -0.445228685309\n    test 2028 336 335.964199982805 Beta(tan=-0.445978, x=1.0, y=-0.445978): -0.445228685309\n    test 2029 336 336.035699743087 Theta(tan=-0.444482, x=1.0, y=-0.444482): -0.445228685309\n    test 2030 336 336.000000000000 Mu(tan=-0.445229, x=0.913545, y=-0.406737): -0.445228685309\n    test 2031 336 336.035673220720 Chi(tan=-0.444483, x=1.0, y=-0.444483), iteration=2: -0.445228685309\n    test 2032 336 335.988083156490 Xi(tan=-0.445478, x=1.83512, y=-0.817507), iteration=3: -0.445228685309\n\n    test 2033 336 335.892539588775 Phi(tan=-0.447478, x=0.912781, y=-0.408449): -0.445228685309\n    test 2034 336 335.964199982805 Beta(tan=-0.445978, x=0.913291, y=-0.407307): -0.445228685309\n    test 2035 336 336.035699743087 Theta(tan=-0.444482, x=0.913799, y=-0.406167): -0.445228685309\n    test 2036 336 336.000000000000 Mu(tan=-0.445229, x=0.913545, y=-0.406737): -0.445228685309\n    test 2037 336 336.035673220720 Chi(tan=-0.444483, x=0.913799, y=-0.406168): -0.445228685309\n    test 2038 336 335.988083156490 Xi(tan=-0.445478, x=0.913461, y=-0.406927): -0.445228685309\n\n    test 2039 343 342.919101298136 Phi(tan=-0.307275, x=1.0, y=-0.307275): -0.305730681459\n    test 2040 343 342.973052549710 Beta(tan=-0.306245, x=1.0, y=-0.306245): -0.305730681459\n    test 2041 343 343.026853890266 Theta(tan=-0.305218, x=1.0, y=-0.305218): -0.305730681459\n    test 2042 343 343.000000000000 Mu(tan=-0.305731, x=0.956305, y=-0.292372): -0.305730681459\n    test 2043 343 343.026843577092 Chi(tan=-0.305218, x=1.0, y=-0.305218), iteration=3: -0.305730681459\n    test 2044 343 342.991030982615 Xi(tan=-0.305902, x=1.92111, y=-0.58767), iteration=3: -0.305730681459\n\n    test 2045 343 342.919101298136 Phi(tan=-0.307275, x=0.955891, y=-0.293722): -0.305730681459\n    test 2046 343 342.973052549710 Beta(tan=-0.306245, x=0.956167, y=-0.292821): -0.305730681459\n    test 2047 343 343.026853890266 Theta(tan=-0.305218, x=0.956442, y=-0.291923): -0.305730681459\n    test 2048 343 343.000000000000 Mu(tan=-0.305731, x=0.956305, y=-0.292372): -0.305730681459\n    test 2049 343 343.026843577092 Chi(tan=-0.305218, x=0.956442, y=-0.291924): -0.305730681459\n    test 2050 343 342.991030982615 Xi(tan=-0.305902, x=0.956259, y=-0.292521): -0.305730681459\n\n    test 2051 350 349.950503618765 Phi(tan=-0.177218, x=1.0, y=-0.177218): -0.176326980708\n    test 2052 350 349.983514239795 Beta(tan=-0.176624, x=1.0, y=-0.176624): -0.176326980708\n    test 2053 350 350.016420868461 Theta(tan=-0.176031, x=1.0, y=-0.176031): -0.176326980708\n    test 2054 350 350.000000000000 Mu(tan=-0.176327, x=0.984808, y=-0.173648): -0.176326980708\n    test 2055 350 350.016418643178 Chi(tan=-0.176032, x=1.0, y=-0.176032), iteration=3: -0.176326980708\n    test 2056 350 349.994513429399 Xi(tan=-0.176426, x=1.97843, y=-0.349045), iteration=3: -0.176326980708\n\n    test 2057 350 349.950503618765 Phi(tan=-0.177218, x=0.984657, y=-0.174499): -0.176326980708\n    test 2058 350 349.983514239795 Beta(tan=-0.176624, x=0.984758, y=-0.173932): -0.176326980708\n    test 2059 350 350.016420868461 Theta(tan=-0.176031, x=0.984857, y=-0.173366): -0.176326980708\n    test 2060 350 350.000000000000 Mu(tan=-0.176327, x=0.984808, y=-0.173648): -0.176326980708\n    test 2061 350 350.016418643178 Chi(tan=-0.176032, x=0.984857, y=-0.173366): -0.176326980708\n    test 2062 350 349.994513429399 Xi(tan=-0.176426, x=0.984791, y=-0.173742): -0.176326980708\n\n    test 2063 357 356.984870427697 Phi(tan=-0.0526726, x=1.0, y=-0.0526726): -0.052407779283\n    test 2064 357 356.994961026729 Beta(tan=-0.052496, x=1.0, y=-0.052496): -0.052407779283\n    test 2065 357 357.005017979541 Theta(tan=-0.05232, x=1.0, y=-0.05232): -0.052407779283\n    test 2066 357 357.000000000000 Mu(tan=-0.0524078, x=0.99863, y=-0.052336): -0.052407779283\n    test 2067 357 357.005017917762 Chi(tan=-0.05232, x=1.0, y=-0.05232), iteration=3: -0.052407779283\n    test 2068 357 356.998323063562 Xi(tan=-0.0524371, x=2.00622, y=-0.105201), iteration=3: -0.052407779283\n\n    test 2069 357 356.984870427697 Phi(tan=-0.0526726, x=0.998616, y=-0.0525997): -0.052407779283\n    test 2070 357 356.994961026729 Beta(tan=-0.052496, x=0.998625, y=-0.0524238): -0.052407779283\n    test 2071 357 357.005017979541 Theta(tan=-0.05232, x=0.998634, y=-0.0522485): -0.052407779283\n    test 2072 357 357.000000000000 Mu(tan=-0.0524078, x=0.99863, y=-0.052336): -0.052407779283\n    test 2073 357 357.005017917762 Chi(tan=-0.05232, x=0.998634, y=-0.0522485): -0.052407779283\n    test 2074 357 356.998323063562 Xi(tan=-0.0524371, x=0.998628, y=-0.0523652): -0.052407779283\n\n    test 2075  0 0.000000000000 Phi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 2076  0 0.000000000000 Beta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 2077  0 0.000000000000 Theta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 2078  0 0.000000000000 Mu(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 2079  0 0.000000000000 Chi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 2080  0 0.000000000000 Xi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n\n    test 2081  0 0.000000000000 Phi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 2082  0 0.000000000000 Beta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 2083  0 0.000000000000 Theta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 2084  0 0.000000000000 Mu(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 2085  0 0.000000000000 Chi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 2086  0 0.000000000000 Xi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n\n    test 2087  7 7.000000000000 Phi(tan=0.122785, x=0.992546, y=0.121869): 0.122784560903\n    test 2088  7 6.976762016136 Beta(tan=0.122373, x=0.992546, y=0.121461): 0.122784560903\n    test 2089  7 6.953599649493 Theta(tan=0.121963, x=0.992546, y=0.121054): 0.122784560903\n    test 2090  7 6.965157241116 Mu(tan=0.122167, x=0.99262, y=0.121266), iteration=3: 0.122784560903\n    test 2091  7 6.953600413381 Chi(tan=0.121963, x=1.0, y=0.121963), iteration=2: 0.122784560903\n    test 2092  7 6.969019299974 Xi(tan=0.122236, x=1.99414, y=0.243755), iteration=3: 0.122784560903\n\n    test 2093  7 7.000000000000 Phi(tan=0.122785, x=0.992546, y=0.121869): 0.122784560903\n    test 2094  7 6.976762016136 Beta(tan=0.122373, x=0.992595, y=0.121467): 0.122784560903\n    test 2095  7 6.953599649493 Theta(tan=0.121963, x=0.992645, y=0.121066): 0.122784560903\n    test 2096  7 6.965157241116 Mu(tan=0.122167, x=0.99262, y=0.121266): 0.122784560903\n    test 2097  7 6.953600413381 Chi(tan=0.121963, x=0.992645, y=0.121066): 0.122784560903\n    test 2098  7 6.969019299974 Xi(tan=0.122236, x=0.992612, y=0.121333): 0.122784560903\n\n    test 2099 14 14.000000000000 Phi(tan=0.249328, x=0.970296, y=0.241922): 0.249328002843\n    test 2100 14 13.954897969322 Beta(tan=0.248492, x=0.970296, y=0.241111): 0.249328002843\n    test 2101 14 13.909929594324 Theta(tan=0.247659, x=0.970296, y=0.240302): 0.249328002843\n    test 2102 14 13.932372077582 Mu(tan=0.248075, x=0.970581, y=0.240776), iteration=3: 0.249328002843\n    test 2103 14 13.909935440611 Chi(tan=0.247659, x=1.0, y=0.247659), iteration=3: 0.249328002843\n    test 2104 14 13.939869149632 Xi(tan=0.248214, x=1.94981, y=0.48397), iteration=3: 0.249328002843\n\n    test 2105 14 14.000000000000 Phi(tan=0.249328, x=0.970296, y=0.241922): 0.249328002843\n    test 2106 14 13.954897969322 Beta(tan=0.248492, x=0.970486, y=0.241158): 0.249328002843\n    test 2107 14 13.909929594324 Theta(tan=0.247659, x=0.970675, y=0.240396): 0.249328002843\n    test 2108 14 13.932372077582 Mu(tan=0.248075, x=0.970581, y=0.240776): 0.249328002843\n    test 2109 14 13.909935440611 Chi(tan=0.247659, x=0.970675, y=0.240396): 0.249328002843\n    test 2110 14 13.939869149632 Xi(tan=0.248214, x=0.970549, y=0.240903): 0.249328002843\n\n    test 2111 21 21.000000000000 Phi(tan=0.383864, x=0.93358, y=0.358368): 0.383864035035\n    test 2112 21 20.935701709947 Beta(tan=0.382577, x=0.93358, y=0.357166): 0.383864035035\n    test 2113 21 20.871564019024 Theta(tan=0.381294, x=0.93358, y=0.355969): 0.383864035035\n    test 2114 21 20.903582743391 Mu(tan=0.381935, x=0.934182, y=0.356796), iteration=3: 0.383864035035\n    test 2115 21 20.871582327745 Chi(tan=0.381295, x=1.0, y=0.381295), iteration=2: 0.383864035035\n    test 2116 21 20.914273669704 Xi(tan=0.382148, x=1.87662, y=0.717147), iteration=3: 0.383864035035\n\n    test 2117 21 21.000000000000 Phi(tan=0.383864, x=0.93358, y=0.358368): 0.383864035035\n    test 2118 21 20.935701709947 Beta(tan=0.382577, x=0.933982, y=0.35732): 0.383864035035\n    test 2119 21 20.871564019024 Theta(tan=0.381294, x=0.934381, y=0.356274): 0.383864035035\n    test 2120 21 20.903582743391 Mu(tan=0.381935, x=0.934182, y=0.356796): 0.383864035035\n    test 2121 21 20.871582327745 Chi(tan=0.381295, x=0.934381, y=0.356275): 0.383864035035\n    test 2122 21 20.914273669703 Xi(tan=0.382148, x=0.934116, y=0.356971): 0.383864035035\n\n    test 2123 28 28.000000000000 Phi(tan=0.531709, x=0.882948, y=0.469472): 0.531709431661\n    test 2124 28 27.920311317014 Beta(tan=0.529927, x=0.882948, y=0.467898): 0.531709431661\n    test 2125 28 27.840772765521 Theta(tan=0.52815, x=0.882948, y=0.466329): 0.531709431661\n    test 2126 28 27.880495175823 Mu(tan=0.529037, x=0.883925, y=0.467629), iteration=3: 0.531709431661\n    test 2127 28 27.840811762412 Chi(tan=0.528151, x=1.0, y=0.528151), iteration=2: 0.531709431661\n    test 2128 28 27.893749908688 Xi(tan=0.529333, x=1.77557, y=0.939868), iteration=2: 0.531709431661\n\n    test 2129 28 28.000000000000 Phi(tan=0.531709, x=0.882948, y=0.469472): 0.531709431661\n    test 2130 28 27.920311317014 Beta(tan=0.529927, x=0.8836, y=0.468243): 0.531709431661\n    test 2131 28 27.840772765521 Theta(tan=0.52815, x=0.884249, y=0.467016): 0.531709431661\n    test 2132 28 27.880495175823 Mu(tan=0.529037, x=0.883925, y=0.467629): 0.531709431661\n    test 2133 28 27.840811762412 Chi(tan=0.528151, x=0.884249, y=0.467017): 0.531709431661\n    test 2134 28 27.893749908688 Xi(tan=0.529333, x=0.883817, y=0.467833): 0.531709431661\n\n    test 2135 35 35.000000000000 Phi(tan=0.700208, x=0.819152, y=0.573576): 0.700207538210\n    test 2136 35 34.909642037079 Beta(tan=0.69786, x=0.819152, y=0.571653): 0.700207538210\n    test 2137 35 34.819388702350 Theta(tan=0.69552, x=0.819152, y=0.569737): 0.700207538210\n    test 2138 35 34.864482701692 Mu(tan=0.696688, x=0.820506, y=0.571637), iteration=3: 0.700207538210\n    test 2139 35 34.819454815840 Chi(tan=0.695522, x=1.0, y=0.695522), iteration=3: 0.700207538210\n    test 2140 35 34.879518549737 Xi(tan=0.697078, x=1.64808, y=1.14884), iteration=3: 0.700207538210\n\n    test 2141 35 35.000000000000 Phi(tan=0.700208, x=0.819152, y=0.573576): 0.700207538210\n    test 2142 35 34.909642037079 Beta(tan=0.69786, x=0.820056, y=0.572284): 0.700207538210\n    test 2143 35 34.819388702350 Theta(tan=0.69552, x=0.820956, y=0.570991): 0.700207538210\n    test 2144 35 34.864482701692 Mu(tan=0.696688, x=0.820506, y=0.571637): 0.700207538210\n    test 2145 35 34.819454815840 Chi(tan=0.695522, x=0.820955, y=0.570992): 0.700207538210\n    test 2146 35 34.879518549737 Xi(tan=0.697078, x=0.820356, y=0.571853): 0.700207538210\n\n    test 2147 42 42.000000000000 Phi(tan=0.900404, x=0.743145, y=0.669131): 0.900404044298\n    test 2148 42 41.904331700939 Beta(tan=0.897385, x=0.743145, y=0.666887): 0.900404044298\n    test 2149 42 41.808698047037 Theta(tan=0.894376, x=0.743145, y=0.664651): 0.900404044298\n    test 2150 42 41.856504060443 Mu(tan=0.895879, x=0.744818, y=0.667267), iteration=2: 0.900404044298\n    test 2151 42 41.808793486106 Chi(tan=0.894379, x=1.0, y=0.894379), iteration=3: 0.900404044298\n    test 2152 42 41.872431075863 Xi(tan=0.896381, x=1.49595, y=1.34094), iteration=3: 0.900404044298\n\n    test 2153 42 42.000000000000 Phi(tan=0.900404, x=0.743145, y=0.669131): 0.900404044298\n    test 2154 42 41.904331700939 Beta(tan=0.897385, x=0.744261, y=0.667889): 0.900404044298\n    test 2155 42 41.808698047037 Theta(tan=0.894376, x=0.745375, y=0.666646): 0.900404044298\n    test 2156 42 41.856504060443 Mu(tan=0.895879, x=0.744818, y=0.667267): 0.900404044298\n    test 2157 42 41.808793486106 Chi(tan=0.894379, x=0.745374, y=0.666647): 0.900404044298\n    test 2158 42 41.872431075863 Xi(tan=0.896381, x=0.744633, y=0.667474): 0.900404044298\n\n    test 2159 49 49.000000000000 Phi(tan=1.15037, x=0.656059, y=0.75471): 1.150368407221\n    test 2160 49 48.904701906378 Beta(tan=1.14651, x=0.656059, y=0.752179): 1.150368407221\n    test 2161 49 48.809360314692 Theta(tan=1.14267, x=0.656059, y=0.749657): 1.150368407221\n    test 2162 49 48.857044717775 Mu(tan=1.14459, x=0.65794, y=0.75307), iteration=3: 1.150368407221\n    test 2163 49 48.809481485365 Chi(tan=1.14267, x=1.0, y=1.14267), iteration=2: 1.150368407221\n    test 2164 49 48.872917788725 Xi(tan=1.14523, x=1.32137, y=1.51327), iteration=2: 1.150368407221\n\n    test 2165 49 49.000000000000 Phi(tan=1.15037, x=0.656059, y=0.75471): 1.150368407221\n    test 2166 49 48.904701906378 Beta(tan=1.14651, x=0.657313, y=0.753617): 1.150368407221\n    test 2167 49 48.809360314692 Theta(tan=1.14267, x=0.658567, y=0.752523): 1.150368407221\n    test 2168 49 48.857044717775 Mu(tan=1.14459, x=0.65794, y=0.75307): 1.150368407221\n    test 2169 49 48.809481485365 Chi(tan=1.14267, x=0.658565, y=0.752524): 1.150368407221\n    test 2170 49 48.872917788725 Xi(tan=1.14523, x=0.657731, y=0.753253): 1.150368407221\n\n    test 2171 56 56.000000000000 Phi(tan=1.48256, x=0.559193, y=0.829038): 1.482560968513\n    test 2172 56 55.910737485374 Beta(tan=1.47759, x=0.559193, y=0.826258): 1.482560968513\n    test 2173 56 55.821363467296 Theta(tan=1.47264, x=0.559193, y=0.823488): 1.482560968513\n    test 2174 56 55.866085351958 Mu(tan=1.47511, x=0.561129, y=0.827728), iteration=3: 1.482560968513\n    test 2175 56 55.821500669702 Chi(tan=1.47264, x=1.0, y=1.47264), iteration=3: 1.482560968513\n    test 2176 56 55.880960089169 Xi(tan=1.47594, x=1.12687, y=1.66318), iteration=3: 1.482560968513\n\n    test 2177 56 56.000000000000 Phi(tan=1.48256, x=0.559193, y=0.829038): 1.482560968513\n    test 2178 56 55.910737485374 Beta(tan=1.47759, x=0.560484, y=0.828165): 1.482560968513\n    test 2179 56 55.821363467296 Theta(tan=1.47264, x=0.561775, y=0.82729): 1.482560968513\n    test 2180 56 55.866085351958 Mu(tan=1.47511, x=0.561129, y=0.827728): 1.482560968513\n    test 2181 56 55.821500669702 Chi(tan=1.47264, x=0.561773, y=0.827291): 1.482560968513\n    test 2182 56 55.880960089169 Xi(tan=1.47594, x=0.560914, y=0.827874): 1.482560968513\n\n    test 2183 63 63.000000000000 Phi(tan=1.96261, x=0.45399, y=0.891007): 1.962610505505\n    test 2184 63 62.922085806991 Beta(tan=1.95603, x=0.45399, y=0.888019): 1.962610505505\n    test 2185 63 62.844018233783 Theta(tan=1.94947, x=0.45399, y=0.885042): 1.962610505505\n    test 2186 63 62.883100004844 Mu(tan=1.95275, x=0.455807, y=0.890078), iteration=3: 1.962610505505\n    test 2187 63 62.844156794245 Chi(tan=1.94948, x=1.0, y=1.94948), iteration=3: 1.962610505505\n    test 2188 63 62.896089166605 Xi(tan=1.95384, x=0.915303, y=1.78836), iteration=3: 1.962610505505\n\n    test 2189 63 63.000000000000 Phi(tan=1.96261, x=0.45399, y=0.891007): 1.962610505505\n    test 2190 63 62.922085806991 Beta(tan=1.95603, x=0.455202, y=0.890388): 1.962610505505\n    test 2191 63 62.844018233783 Theta(tan=1.94947, x=0.456414, y=0.889767): 1.962610505505\n    test 2192 63 62.883100004844 Mu(tan=1.95275, x=0.455807, y=0.890078): 1.962610505505\n    test 2193 63 62.844156794245 Chi(tan=1.94948, x=0.456412, y=0.889768): 1.962610505505\n    test 2194 63 62.896089166605 Xi(tan=1.95384, x=0.455606, y=0.890182): 1.962610505505\n\n    test 2195 70 70.000000000000 Phi(tan=2.74748, x=0.34202, y=0.939693): 2.747477419455\n    test 2196 70 69.938076331685 Beta(tan=2.73827, x=0.34202, y=0.936542): 2.747477419455\n    test 2197 70 69.875993436424 Theta(tan=2.72908, x=0.34202, y=0.933402): 2.747477419455\n    test 2198 70 69.907084709374 Mu(tan=2.73368, x=0.343544, y=0.939137), iteration=2: 2.747477419455\n    test 2199 70 69.876116092580 Chi(tan=2.7291, x=1.0, y=2.7291), iteration=3: 2.747477419455\n    test 2200 70 69.917411740864 Xi(tan=2.7352, x=0.689832, y=1.88683), iteration=3: 2.747477419455\n\n    test 2201 70 70.000000000000 Phi(tan=2.74748, x=0.34202, y=0.939693): 2.747477419455\n    test 2202 70 69.938076331685 Beta(tan=2.73827, x=0.343036, y=0.939322): 2.747477419455\n    test 2203 70 69.875993436424 Theta(tan=2.72908, x=0.344053, y=0.93895): 2.747477419455\n    test 2204 70 69.907084709374 Mu(tan=2.73368, x=0.343544, y=0.939137): 2.747477419455\n    test 2205 70 69.876116092580 Chi(tan=2.7291, x=0.344051, y=0.938951): 2.747477419455\n    test 2206 70 69.917411740864 Xi(tan=2.7352, x=0.343374, y=0.939199): 2.747477419455\n\n    test 2207 77 77.000000000000 Phi(tan=4.33148, x=0.224951, y=0.97437): 4.331475874284\n    test 2208 77 76.957759584883 Beta(tan=4.31695, x=0.224951, y=0.971103): 4.331475874284\n    test 2209 77 76.915391564534 Theta(tan=4.30248, x=0.224951, y=0.967847): 4.331475874284\n    test 2210 77 76.936615512426 Mu(tan=4.30972, x=0.226029, y=0.974121), iteration=3: 4.331475874284\n    test 2211 77 76.915481614667 Chi(tan=4.30251, x=1.0, y=4.30251), iteration=3: 4.331475874284\n    test 2212 77 76.943661825901 Xi(tan=4.31213, x=0.453847, y=1.95704), iteration=3: 4.331475874284\n\n    test 2213 77 77.000000000000 Phi(tan=4.33148, x=0.224951, y=0.97437): 4.331475874284\n    test 2214 77 76.957759584883 Beta(tan=4.31695, x=0.225669, y=0.974204): 4.331475874284\n    test 2215 77 76.915391564534 Theta(tan=4.30248, x=0.22639, y=0.974037): 4.331475874284\n    test 2216 77 76.936615512426 Mu(tan=4.30972, x=0.226029, y=0.974121): 4.331475874284\n    test 2217 77 76.915481614667 Chi(tan=4.30251, x=0.226388, y=0.974037): 4.331475874284\n    test 2218 77 76.943661825901 Xi(tan=4.31213, x=0.225909, y=0.974148): 4.331475874284\n\n    test 2219 84 84.000000000000 Phi(tan=9.51436, x=0.104528, y=0.994522): 9.514364454223\n    test 2220 84 83.979963440552 Beta(tan=9.48246, x=0.104528, y=0.991187): 9.514364454223\n    test 2221 84 83.959860961536 Theta(tan=9.45067, x=0.104528, y=0.987864): 9.514364454223\n    test 2222 84 83.969932834829 Mu(tan=9.46657, x=0.10505, y=0.994467), iteration=3: 9.514364454223\n    test 2223 84 83.959905488972 Chi(tan=9.45074, x=1.0, y=9.45074), iteration=3: 9.514364454223\n    test 2224 84 83.973275752467 Xi(tan=9.47186, x=0.210927, y=1.99788), iteration=3: 9.514364454223\n\n    test 2225 84 84.000000000000 Phi(tan=9.51436, x=0.104528, y=0.994522): 9.514364454223\n    test 2226 84 83.979963440552 Beta(tan=9.48246, x=0.104876, y=0.994485): 9.514364454223\n    test 2227 84 83.959860961536 Theta(tan=9.45067, x=0.105225, y=0.994448): 9.514364454223\n    test 2228 84 83.969932834829 Mu(tan=9.46657, x=0.10505, y=0.994467): 9.514364454223\n    test 2229 84 83.959905488972 Chi(tan=9.45074, x=0.105224, y=0.994449): 9.514364454223\n    test 2230 84 83.973275752467 Xi(tan=9.47186, x=0.104992, y=0.994473): 9.514364454223\n\n    test 2231 91 91.000000000000 Phi(tan=-57.29, x=-0.0174524, y=0.999848): -57.289961630759\n    test 2232 91 91.003363403239 Beta(tan=-57.0979, x=-0.0174524, y=0.996495): -57.289961630759\n    test 2233 91 91.006738114317 Theta(tan=-56.9064, x=-0.0174524, y=0.993154): -57.289961630759\n    test 2234 91 91.005047219150 Mu(tan=-57.0022, x=-0.0175405, y=0.999846), iteration=2: -57.289961630759\n    test 2235 91 91.006730558280 Chi(tan=-56.9069, x=-1, y=56.9069), iteration=3: -57.289961630759\n    test 2236 91 91.004486042138 Xi(tan=-57.0341, x=-0.0352188, y=2.00867), iteration=3: -57.289961630759\n\n    test 2237 91 91.000000000000 Phi(tan=-57.29, x=-0.0174524, y=0.999848): -57.289961630759\n    test 2238 91 91.003363403239 Beta(tan=-57.0979, x=-0.0175111, y=0.999847): -57.289961630760  FAILED, KNOWN (6.07726e-15), expected -57.289961630759\n    test 2239 91 91.006738114317 Theta(tan=-56.9064, x=-0.01757, y=0.999846): -57.289961630760  FAILED, KNOWN (2.48051e-15), expected -57.289961630759\n    test 2240 91 91.005047219150 Mu(tan=-57.0022, x=-0.0175405, y=0.999846): -57.289961630760  FAILED, KNOWN (8.6818e-15), expected -57.289961630759\n    test 2241 91 91.006730558280 Chi(tan=-56.9069, x=-0.0175699, y=0.999846): -57.289961630759\n    test 2242 91 91.004486042138 Xi(tan=-57.0341, x=-0.0175307, y=0.999846): -57.289961630759\n\n    test 2243 98 98.000000000000 Phi(tan=-7.11537, x=-0.139173, y=0.990268): -7.115369722384\n    test 2244 98 98.026562562307 Beta(tan=-7.09151, x=-0.139173, y=0.986948): -7.115369722384\n    test 2245 98 98.053210993331 Theta(tan=-7.06774, x=-0.139173, y=0.983639): -7.115369722384\n    test 2246 98 98.039859900320 Mu(tan=-7.07963, x=-0.139862, y=0.990171), iteration=3: -7.115369722384\n    test 2247 98 98.053152474664 Chi(tan=-7.06779, x=-1, y=7.06779), iteration=3: -7.115369722384\n    test 2248 98 98.035428327772 Xi(tan=-7.08359, x=-0.280826, y=1.98926), iteration=2: -7.115369722384\n\n    test 2249 98 98.000000000000 Phi(tan=-7.11537, x=-0.139173, y=0.990268): -7.115369722384\n    test 2250 98 98.026562562307 Beta(tan=-7.09151, x=-0.139632, y=0.990203): -7.115369722384\n    test 2251 98 98.053210993331 Theta(tan=-7.06774, x=-0.140093, y=0.990138): -7.115369722384\n    test 2252 98 98.039859900320 Mu(tan=-7.07963, x=-0.139862, y=0.990171): -7.115369722384\n    test 2253 98 98.053152474664 Chi(tan=-7.06779, x=-0.140092, y=0.990139): -7.115369722384\n    test 2254 98 98.035428327772 Xi(tan=-7.08359, x=-0.139785, y=0.990182): -7.115369722384\n\n    test 2255 105 105.000000000000 Phi(tan=-3.73205, x=-0.258819, y=0.965926): -3.732050807569\n    test 2256 105 105.048176169243 Beta(tan=-3.71954, x=-0.258819, y=0.962687): -3.732050807569\n    test 2257 105 105.096492525996 Theta(tan=-3.70707, x=-0.258819, y=0.95946): -3.732050807569\n    test 2258 105 105.072290473972 Mu(tan=-3.7133, x=-0.260038, y=0.965599), iteration=3: -3.732050807569\n    test 2259 105 105.096391619832 Chi(tan=-3.70709, x=-1, y=3.70709), iteration=2: -3.732050807569\n    test 2260 105 105.064254515857 Xi(tan=-3.71538, x=-0.522138, y=1.93994), iteration=2: -3.732050807569\n\n    test 2261 105 105.000000000000 Phi(tan=-3.73205, x=-0.258819, y=0.965926): -3.732050807569\n    test 2262 105 105.048176169243 Beta(tan=-3.71954, x=-0.259631, y=0.965708): -3.732050807569\n    test 2263 105 105.096492525996 Theta(tan=-3.70707, x=-0.260445, y=0.965489): -3.732050807569\n    test 2264 105 105.072290473972 Mu(tan=-3.7133, x=-0.260038, y=0.965599): -3.732050807569\n    test 2265 105 105.096391619832 Chi(tan=-3.70709, x=-0.260444, y=0.965489): -3.732050807569\n    test 2266 105 105.064254515857 Xi(tan=-3.71538, x=-0.259902, y=0.965635): -3.732050807569\n\n    test 2267 112 112.000000000000 Phi(tan=-2.47509, x=-0.374607, y=0.927184): -2.475086853416\n    test 2268 112 112.066915437341 Beta(tan=-2.46679, x=-0.374607, y=0.924075): -2.475086853416\n    test 2269 112 112.133992362411 Theta(tan=-2.45852, x=-0.374607, y=0.920977): -2.475086853416\n    test 2270 112 112.100403370338 Mu(tan=-2.46265, x=-0.376231, y=0.926526), iteration=3: -2.475086853416\n    test 2271 112 112.133863370700 Chi(tan=-2.45853, x=-1, y=2.45853), iteration=3: -2.475086853416\n    test 2272 112 112.089244898668 Xi(tan=-2.46403, x=-0.755478, y=1.86152), iteration=3: -2.475086853416\n\n    test 2273 112 112.000000000000 Phi(tan=-2.47509, x=-0.374607, y=0.927184): -2.475086853416\n    test 2274 112 112.066915437341 Beta(tan=-2.46679, x=-0.375689, y=0.926746): -2.475086853416\n    test 2275 112 112.133992362411 Theta(tan=-2.45852, x=-0.376774, y=0.926305): -2.475086853416\n    test 2276 112 112.100403370338 Mu(tan=-2.46265, x=-0.376231, y=0.926526): -2.475086853416\n    test 2277 112 112.133863370700 Chi(tan=-2.45853, x=-0.376772, y=0.926306): -2.475086853416\n    test 2278 112 112.089244898668 Xi(tan=-2.46403, x=-0.37605, y=0.926599): -2.475086853416\n\n    test 2279 119 119.000000000000 Phi(tan=-1.80405, x=-0.48481, y=0.87462): -1.804047755271\n    test 2280 119 119.081665222463 Beta(tan=-1.798, x=-0.48481, y=0.871687): -1.804047755271\n    test 2281 119 119.163475249163 Theta(tan=-1.79197, x=-0.48481, y=0.868765): -1.804047755271\n    test 2282 119 119.122524937479 Mu(tan=-1.79498, x=-0.486679, y=0.873581), iteration=3: -1.804047755271\n    test 2283 119 119.163335373555 Chi(tan=-1.79198, x=-1, y=1.79198), iteration=3: -1.804047755271\n    test 2284 119 119.108912006611 Xi(tan=-1.79599, x=-0.977311, y=1.75524), iteration=3: -1.804047755271\n\n    test 2285 119 119.000000000000 Phi(tan=-1.80405, x=-0.48481, y=0.87462): -1.804047755271\n    test 2286 119 119.081665222463 Beta(tan=-1.798, x=-0.486056, y=0.873928): -1.804047755271\n    test 2287 119 119.163475249163 Theta(tan=-1.79197, x=-0.487303, y=0.873233): -1.804047755271\n    test 2288 119 119.122524937479 Mu(tan=-1.79498, x=-0.486679, y=0.873581): -1.804047755271\n    test 2289 119 119.163335373555 Chi(tan=-1.79198, x=-0.487301, y=0.873234): -1.804047755271\n    test 2290 119 119.108912006611 Xi(tan=-1.79599, x=-0.486471, y=0.873697): -1.804047755271\n\n    test 2291 126 126.000000000000 Phi(tan=-1.37638, x=-0.587785, y=0.809017): -1.376381920471\n    test 2292 126 126.091550707249 Beta(tan=-1.37177, x=-0.587785, y=0.806305): -1.376381920471\n    test 2293 126 126.183195540448 Theta(tan=-1.36717, x=-0.587785, y=0.803601): -1.376381920471\n    test 2294 126 126.137343684620 Mu(tan=-1.36947, x=-0.589723, y=0.807606), iteration=3: -1.376381920471\n    test 2295 126 126.183061603372 Chi(tan=-1.36717, x=-1, y=1.36717), iteration=3: -1.376381920471\n    test 2296 126 126.122089633630 Xi(tan=-1.37023, x=-1.18431, y=1.62278), iteration=2: -1.376381920471\n\n    test 2297 126 126.000000000000 Phi(tan=-1.37638, x=-0.587785, y=0.809017): -1.376381920471\n    test 2298 126 126.091550707249 Beta(tan=-1.37177, x=-0.589077, y=0.808077): -1.376381920471\n    test 2299 126 126.183195540448 Theta(tan=-1.36717, x=-0.590369, y=0.807133): -1.376381920471\n    test 2300 126 126.137343684620 Mu(tan=-1.36947, x=-0.589723, y=0.807606): -1.376381920471\n    test 2301 126 126.183061603372 Chi(tan=-1.36717, x=-0.590367, y=0.807135): -1.376381920471\n    test 2302 126 126.122089633630 Xi(tan=-1.37023, x=-0.589508, y=0.807763): -1.376381920471\n\n    test 2303 133 133.000000000000 Phi(tan=-1.07237, x=-0.681998, y=0.731354): -1.072368710025\n    test 2304 133 133.095989026852 Beta(tan=-1.06877, x=-0.681998, y=0.728902): -1.072368710025\n    test 2305 133 133.191999466035 Theta(tan=-1.06519, x=-0.681998, y=0.726458): -1.072368710025\n    test 2306 133 133.143987543114 Mu(tan=-1.06698, x=-0.683834, y=0.729637), iteration=2: -1.072368710025\n    test 2307 133 133.191884915480 Chi(tan=-1.06519, x=-1, y=1.06519), iteration=3: -1.072368710025\n    test 2308 133 133.128001595557 Xi(tan=-1.06758, x=-1.3734, y=1.46621), iteration=3: -1.072368710025\n\n    test 2309 133 133.000000000000 Phi(tan=-1.07237, x=-0.681998, y=0.731354): -1.072368710025\n    test 2310 133 133.095989026852 Beta(tan=-1.06877, x=-0.683223, y=0.73021): -1.072368710025\n    test 2311 133 133.191999466035 Theta(tan=-1.06519, x=-0.684445, y=0.729064): -1.072368710025\n    test 2312 133 133.143987543114 Mu(tan=-1.06698, x=-0.683834, y=0.729637): -1.072368710025\n    test 2313 133 133.191884915480 Chi(tan=-1.06519, x=-0.684444, y=0.729066): -1.072368710025\n    test 2314 133 133.128001595557 Xi(tan=-1.06758, x=-0.683631, y=0.729828): -1.072368710025\n\n    test 2315 140 140.000000000000 Phi(tan=-0.8391, x=-0.766044, y=0.642788): -0.839099631177\n    test 2316 140 140.094722853987 Beta(tan=-0.836286, x=-0.766044, y=0.640632): -0.839099631177\n    test 2317 140 140.189389448072 Theta(tan=-0.833482, x=-0.766044, y=0.638485): -0.839099631177\n    test 2318 140 140.142073716249 Mu(tan=-0.834883, x=-0.767636, y=0.640886), iteration=2: -0.839099631177\n    test 2319 140 140.189302292623 Chi(tan=-0.833485, x=-1, y=0.833485), iteration=2: -0.839099631177\n    test 2320 140 140.126306265466 Xi(tan=-0.83535, x=-1.54181, y=1.28795), iteration=2: -0.839099631177\n\n    test 2321 140 140.000000000000 Phi(tan=-0.8391, x=-0.766044, y=0.642788): -0.839099631177\n    test 2322 140 140.094722853987 Beta(tan=-0.836286, x=-0.767106, y=0.64152): -0.839099631177\n    test 2323 140 140.189389448072 Theta(tan=-0.833482, x=-0.768165, y=0.640252): -0.839099631177\n    test 2324 140 140.142073716249 Mu(tan=-0.834883, x=-0.767636, y=0.640886): -0.839099631177\n    test 2325 140 140.189302292623 Chi(tan=-0.833485, x=-0.768164, y=0.640253): -0.839099631177\n    test 2326 140 140.126306265466 Xi(tan=-0.83535, x=-0.76746, y=0.641097): -0.839099631177\n\n    test 2327 147 147.000000000000 Phi(tan=-0.649408, x=-0.838671, y=0.544639): -0.649407593198\n    test 2328 147 147.087834196097 Beta(tan=-0.64723, x=-0.838671, y=0.542813): -0.649407593198\n    test 2329 147 147.175547668144 Theta(tan=-0.64506, x=-0.838671, y=0.540993): -0.649407593198\n    test 2330 147 147.131728623858 Mu(tan=-0.646144, x=-0.839921, y=0.542709), iteration=2: -0.649407593198\n    test 2331 147 147.175489751194 Chi(tan=-0.645062, x=-1, y=0.645062), iteration=3: -0.649407593198\n    test 2332 147 147.117114615992 Xi(tan=-0.646505, x=-1.68711, y=1.09072), iteration=3: -0.649407593198\n\n    test 2333 147 147.000000000000 Phi(tan=-0.649408, x=-0.838671, y=0.544639): -0.649407593198\n    test 2334 147 147.087834196097 Beta(tan=-0.64723, x=-0.839505, y=0.543353): -0.649407593198\n    test 2335 147 147.175547668144 Theta(tan=-0.64506, x=-0.840335, y=0.542067): -0.649407593198\n    test 2336 147 147.131728623858 Mu(tan=-0.646144, x=-0.839921, y=0.542709): -0.649407593198\n    test 2337 147 147.175489751194 Chi(tan=-0.645062, x=-0.840335, y=0.542068): -0.649407593198\n    test 2338 147 147.117114615992 Xi(tan=-0.646505, x=-0.839782, y=0.542924): -0.649407593198\n\n    test 2339 154 154.000000000000 Phi(tan=-0.487733, x=-0.898794, y=0.438371): -0.487732588566\n    test 2340 154 154.075737936138 Beta(tan=-0.486097, x=-0.898794, y=0.436901): -0.487732588566\n    test 2341 154 154.151318905421 Theta(tan=-0.484468, x=-0.898794, y=0.435437): -0.487732588566\n    test 2342 154 154.113577416532 Mu(tan=-0.485281, x=-0.899661, y=0.436589), iteration=2: -0.487732588566\n    test 2343 154 154.151286603865 Chi(tan=-0.484468, x=-1, y=0.484468), iteration=2: -0.487732588566\n    test 2344 154 154.100981227925 Xi(tan=-0.485553, x=-1.80721, y=0.877495), iteration=3: -0.487732588566\n\n    test 2345 154 154.000000000000 Phi(tan=-0.487733, x=-0.898794, y=0.438371): -0.487732588566\n    test 2346 154 154.075737936138 Beta(tan=-0.486097, x=-0.899373, y=0.437183): -0.487732588566\n    test 2347 154 154.151318905421 Theta(tan=-0.484468, x=-0.899949, y=0.435996): -0.487732588566\n    test 2348 154 154.113577416532 Mu(tan=-0.485281, x=-0.899661, y=0.436589): -0.487732588566\n    test 2349 154 154.151286603865 Chi(tan=-0.484468, x=-0.899948, y=0.435996): -0.487732588566\n    test 2350 154 154.100981227925 Xi(tan=-0.485553, x=-0.899565, y=0.436786): -0.487732588566\n\n    test 2351 161 161.000000000000 Phi(tan=-0.344328, x=-0.945519, y=0.325568): -0.344327613290\n    test 2352 161 161.059155871563 Beta(tan=-0.343173, x=-0.945519, y=0.324477): -0.344327613290\n    test 2353 161 161.118155143282 Theta(tan=-0.342023, x=-0.945519, y=0.323389): -0.344327613290\n    test 2354 161 161.088704377377 Mu(tan=-0.342597, x=-0.946021, y=0.324104), iteration=2: -0.344327613290\n    test 2355 161 161.118141245926 Chi(tan=-0.342023, x=-1, y=0.342023), iteration=3: -0.344327613290\n    test 2356 161 161.078869359618 Xi(tan=-0.342789, x=-1.90043, y=0.651445), iteration=3: -0.344327613290\n\n    test 2357 161 161.000000000000 Phi(tan=-0.344328, x=-0.945519, y=0.325568): -0.344327613290\n    test 2358 161 161.059155871563 Beta(tan=-0.343173, x=-0.945854, y=0.324592): -0.344327613290\n    test 2359 161 161.118155143282 Theta(tan=-0.342023, x=-0.946188, y=0.323618): -0.344327613290\n    test 2360 161 161.088704377377 Mu(tan=-0.342597, x=-0.946021, y=0.324104): -0.344327613290\n    test 2361 161 161.118141245926 Chi(tan=-0.342023, x=-0.946188, y=0.323618): -0.344327613290\n    test 2362 161 161.078869359618 Xi(tan=-0.342789, x=-0.945966, y=0.324266): -0.344327613290\n\n    test 2363 168 168.000000000000 Phi(tan=-0.212557, x=-0.978148, y=0.207912): -0.212556561670\n    test 2364 168 168.039073098008 Beta(tan=-0.211844, x=-0.978148, y=0.207215): -0.212556561670\n    test 2365 168 168.078026427494 Theta(tan=-0.211134, x=-0.978148, y=0.20652): -0.212556561670\n    test 2366 168 168.058587132190 Mu(tan=-0.211488, x=-0.97836, y=0.206911), iteration=3: -0.212556561670\n    test 2367 168 168.078022687531 Chi(tan=-0.211134, x=-1, y=0.211134), iteration=3: -0.212556561670\n    test 2368 168 168.052092611435 Xi(tan=-0.211606, x=-1.96546, y=0.415904), iteration=3: -0.212556561670\n\n    test 2369 168 168.000000000000 Phi(tan=-0.212557, x=-0.978148, y=0.207912): -0.212556561670\n    test 2370 168 168.039073098008 Beta(tan=-0.211844, x=-0.978289, y=0.207245): -0.212556561670\n    test 2371 168 168.078026427494 Theta(tan=-0.211134, x=-0.97843, y=0.206579): -0.212556561670\n    test 2372 168 168.058587132190 Mu(tan=-0.211488, x=-0.97836, y=0.206911): -0.212556561670\n    test 2373 168 168.078022687531 Chi(tan=-0.211134, x=-0.97843, y=0.20658): -0.212556561670\n    test 2374 168 168.052092611435 Xi(tan=-0.211606, x=-0.978336, y=0.207022): -0.212556561670\n\n    test 2375 175 175.000000000000 Phi(tan=-0.0874887, x=-0.996195, y=0.0871557): -0.087488663526\n    test 2376 175 175.016679496811 Beta(tan=-0.0871953, x=-0.996195, y=0.0868635): -0.087488663526\n    test 2377 175 175.033303912991 Theta(tan=-0.086903, x=-0.996195, y=0.0865723): -0.087488663526\n    test 2378 175 175.025008889061 Mu(tan=-0.0870489, x=-0.996233, y=0.0867209), iteration=3: -0.087488663526\n    test 2379 175 175.033303632597 Chi(tan=-0.086903, x=-1, y=0.086903), iteration=2: -0.087488663526\n    test 2380 175 175.022236903877 Xi(tan=-0.0870976, x=-2.0014, y=0.174317), iteration=2: -0.087488663526\n\n    test 2381 175 175.000000000000 Phi(tan=-0.0874887, x=-0.996195, y=0.0871557): -0.087488663526\n    test 2382 175 175.016679496811 Beta(tan=-0.0871953, x=-0.99622, y=0.0868657): -0.087488663526\n    test 2383 175 175.033303912991 Theta(tan=-0.086903, x=-0.996245, y=0.0865767): -0.087488663526\n    test 2384 175 175.025008889061 Mu(tan=-0.0870489, x=-0.996233, y=0.0867209): -0.087488663526\n    test 2385 175 175.033303632597 Chi(tan=-0.086903, x=-0.996245, y=0.0865767): -0.087488663526\n    test 2386 175 175.022236903877 Xi(tan=-0.0870976, x=-0.996228, y=0.0867691): -0.087488663526\n\n    test 2387 182 182.000000000000 Phi(tan=0.0349208, x=-0.999391, y=-0.0348995): 0.034920769492\n    test 2388 182 181.993299797077 Beta(tan=0.0348037, x=-0.999391, y=-0.0347825): 0.034920769492\n    test 2389 182 181.986622004399 Theta(tan=0.034687, x=-0.999391, y=-0.0346659): 0.034920769492\n    test 2390 182 181.989953909276 Mu(tan=0.0347452, x=-0.999397, y=-0.0347243), iteration=3: 0.034920769492\n    test 2391 182 181.986622022458 Chi(tan=0.034687, x=-1, y=-0.034687), iteration=2: 0.034920769492\n    test 2392 182 181.991067395746 Xi(tan=0.0347647, x=-2.00777, y=-0.0697994), iteration=3: 0.034920769492\n\n    test 2393 182 182.000000000000 Phi(tan=0.0349208, x=-0.999391, y=-0.0348995): 0.034920769492\n    test 2394 182 181.993299797077 Beta(tan=0.0348037, x=-0.999395, y=-0.0347826): 0.034920769492\n    test 2395 182 181.986622004399 Theta(tan=0.034687, x=-0.999399, y=-0.0346661): 0.034920769492\n    test 2396 182 181.989953909276 Mu(tan=0.0347452, x=-0.999397, y=-0.0347243): 0.034920769492\n    test 2397 182 181.986622022458 Chi(tan=0.034687, x=-0.999399, y=-0.0346661): 0.034920769492\n    test 2398 182 181.991067395746 Xi(tan=0.0347647, x=-0.999396, y=-0.0347437): 0.034920769492\n\n    test 2399 189 189.000000000000 Phi(tan=0.158384, x=-0.987688, y=-0.156434): 0.158384440325\n    test 2400 189 188.970316191157 Beta(tan=0.157853, x=-0.987688, y=-0.15591): 0.158384440325\n    test 2401 189 188.940727074962 Theta(tan=0.157324, x=-0.987688, y=-0.155387): 0.158384440325\n    test 2402 189 188.955492089230 Mu(tan=0.157588, x=-0.98781, y=-0.155667), iteration=3: 0.158384440325\n    test 2403 189 188.940728682981 Chi(tan=0.157324, x=-1, y=-0.157324), iteration=3: 0.158384440325\n    test 2404 189 188.960425606105 Xi(tan=0.157676, x=-1.98446, y=-0.312903), iteration=2: 0.158384440325\n\n    test 2405 189 189.000000000000 Phi(tan=0.158384, x=-0.987688, y=-0.156434): 0.158384440325\n    test 2406 189 188.970316191157 Beta(tan=0.157853, x=-0.987769, y=-0.155923): 0.158384440325\n    test 2407 189 188.940727074962 Theta(tan=0.157324, x=-0.98785, y=-0.155413): 0.158384440325\n    test 2408 189 188.955492089230 Mu(tan=0.157588, x=-0.98781, y=-0.155667): 0.158384440325\n    test 2409 189 188.940728682981 Chi(tan=0.157324, x=-0.98785, y=-0.155413): 0.158384440325\n    test 2410 189 188.960425606105 Xi(tan=0.157676, x=-0.987796, y=-0.155752): 0.158384440325\n\n    test 2411 196 196.000000000000 Phi(tan=0.286745, x=-0.961262, y=-0.275637): 0.286745385759\n    test 2412 196 195.949087795468 Beta(tan=0.285784, x=-0.961262, y=-0.274713): 0.286745385759\n    test 2413 196 195.898320549032 Theta(tan=0.284826, x=-0.961262, y=-0.273792): 0.286745385759\n    test 2414 196 195.923658939114 Mu(tan=0.285304, x=-0.961628, y=-0.274356), iteration=3: 0.286745385759\n    test 2415 196 195.898329118388 Chi(tan=0.284826, x=-1, y=-0.284826), iteration=3: 0.286745385759\n    test 2416 196 195.932122390859 Xi(tan=0.285464, x=-1.93181, y=-0.551462), iteration=2: 0.286745385759\n\n    test 2417 196 196.000000000000 Phi(tan=0.286745, x=-0.961262, y=-0.275637): 0.286745385759\n    test 2418 196 195.949087795468 Beta(tan=0.285784, x=-0.961506, y=-0.274783): 0.286745385759\n    test 2419 196 195.898320549032 Theta(tan=0.284826, x=-0.961749, y=-0.273931): 0.286745385759\n    test 2420 196 195.923658939114 Mu(tan=0.285304, x=-0.961628, y=-0.274356): 0.286745385759\n    test 2421 196 195.898329118388 Chi(tan=0.284826, x=-0.961749, y=-0.273931): 0.286745385759\n    test 2422 196 195.932122390859 Xi(tan=0.285464, x=-0.961588, y=-0.274498): 0.286745385759\n\n    test 2423 203 203.000000000000 Phi(tan=0.424475, x=-0.920505, y=-0.390731): 0.424474816210\n    test 2424 203 202.930871376810 Beta(tan=0.423052, x=-0.920505, y=-0.389421): 0.424474816210\n    test 2425 203 202.861904242075 Theta(tan=0.421633, x=-0.920505, y=-0.388115): 0.424474816210\n    test 2426 203 202.896337407506 Mu(tan=0.422341, x=-0.92121, y=-0.389065), iteration=3: 0.424474816210\n    test 2427 203 202.861927650711 Chi(tan=0.421634, x=-1, y=-0.421634), iteration=3: 0.424474816210\n    test 2428 203 202.907832581930 Xi(tan=0.422578, x=-1.85054, y=-0.781995), iteration=3: 0.424474816210\n\n    test 2429 203 203.000000000000 Phi(tan=0.424475, x=-0.920505, y=-0.390731): 0.424474816210\n    test 2430 203 202.930871376810 Beta(tan=0.423052, x=-0.920976, y=-0.38962): 0.424474816210\n    test 2431 203 202.861904242075 Theta(tan=0.421633, x=-0.921444, y=-0.388511): 0.424474816210\n    test 2432 203 202.896337407506 Mu(tan=0.422341, x=-0.92121, y=-0.389065): 0.424474816210\n    test 2433 203 202.861927650711 Chi(tan=0.421634, x=-0.921444, y=-0.388512): 0.424474816210\n    test 2434 203 202.907832581930 Xi(tan=0.422578, x=-0.921132, y=-0.38925): 0.424474816210\n\n    test 2435 210 210.000000000000 Phi(tan=0.57735, x=-0.866025, y=-0.5): 0.577350269190\n    test 2436 210 209.916747713236 Beta(tan=0.575415, x=-0.866025, y=-0.498324): 0.577350269190\n    test 2437 210 209.833635809829 Theta(tan=0.573485, x=-0.866025, y=-0.496653): 0.577350269190\n    test 2438 210 209.875147936061 Mu(tan=0.574448, x=-0.867113, y=-0.498112), iteration=2: 0.577350269190\n    test 2439 210 209.833682042481 Chi(tan=0.573486, x=-1, y=-0.573486), iteration=2: 0.577350269190\n    test 2440 210 209.888997034460 Xi(tan=0.57477, x=-1.74177, y=-1.00112), iteration=3: 0.577350269190\n\n    test 2441 210 210.000000000000 Phi(tan=0.57735, x=-0.866025, y=-0.5): 0.577350269190\n    test 2442 210 209.916747713236 Beta(tan=0.575415, x=-0.866751, y=-0.498741): 0.577350269190\n    test 2443 210 209.833635809829 Theta(tan=0.573485, x=-0.867474, y=-0.497483): 0.577350269190\n    test 2444 210 209.875147936061 Mu(tan=0.574448, x=-0.867113, y=-0.498112): 0.577350269190\n    test 2445 210 209.833682042481 Chi(tan=0.573486, x=-0.867473, y=-0.497484): 0.577350269190\n    test 2446 210 209.888997034460 Xi(tan=0.57477, x=-0.866992, y=-0.498321): 0.577350269190\n\n    test 2447 217 217.000000000000 Phi(tan=0.753554, x=-0.798636, y=-0.601815): 0.753554050103\n    test 2448 217 216.907557725734 Beta(tan=0.751028, x=-0.798636, y=-0.599797): 0.753554050103\n    test 2449 217 216.815201948287 Theta(tan=0.748509, x=-0.798636, y=-0.597786): 0.753554050103\n    test 2450 217 216.861352829418 Mu(tan=0.749767, x=-0.800089, y=-0.599881), iteration=2: 0.753554050103\n    test 2451 217 216.815276448911 Chi(tan=0.748512, x=-1, y=-0.748512), iteration=2: 0.753554050103\n    test 2452 217 216.876737541007 Xi(tan=0.750187, x=-1.60704, y=-1.20558), iteration=3: 0.753554050103\n\n    test 2453 217 217.000000000000 Phi(tan=0.753554, x=-0.798636, y=-0.601815): 0.753554050103\n    test 2454 217 216.907557725734 Beta(tan=0.751028, x=-0.799605, y=-0.600526): 0.753554050103\n    test 2455 217 216.815201948287 Theta(tan=0.748509, x=-0.800572, y=-0.599236): 0.753554050103\n    test 2456 217 216.861352829418 Mu(tan=0.749767, x=-0.800089, y=-0.599881): 0.753554050103\n    test 2457 217 216.815276448911 Chi(tan=0.748512, x=-0.800572, y=-0.599237): 0.753554050103\n    test 2458 217 216.876737541007 Xi(tan=0.750187, x=-0.799928, y=-0.600095): 0.753554050103\n\n    test 2459 224 224.000000000000 Phi(tan=0.965689, x=-0.71934, y=-0.694658): 0.965688774807\n    test 2460 224 223.903852093789 Beta(tan=0.962451, x=-0.71934, y=-0.692329): 0.965688774807\n    test 2461 224 223.807716539068 Theta(tan=0.959224, x=-0.71934, y=-0.690008): 0.965688774807\n    test 2462 224 223.855780468115 Mu(tan=0.960836, x=-0.721086, y=-0.692846), iteration=3: 0.965688774807\n    test 2463 224 223.807819970397 Chi(tan=0.959228, x=-1, y=-0.959228), iteration=3: 0.965688774807\n    test 2464 224 223.871789544357 Xi(tan=0.961374, x=-1.44826, y=-1.39232), iteration=3: 0.965688774807\n\n    test 2465 224 224.000000000000 Phi(tan=0.965689, x=-0.71934, y=-0.694658): 0.965688774807\n    test 2466 224 223.903852093789 Beta(tan=0.962451, x=-0.720504, y=-0.69345): 0.965688774807\n    test 2467 224 223.807716539068 Theta(tan=0.959224, x=-0.721667, y=-0.69224): 0.965688774807\n    test 2468 224 223.855780468115 Mu(tan=0.960836, x=-0.721086, y=-0.692846): 0.965688774807\n    test 2469 224 223.807819970397 Chi(tan=0.959228, x=-0.721666, y=-0.692242): 0.965688774807\n    test 2470 224 223.871789544357 Xi(tan=0.961374, x=-0.720892, y=-0.693047): 0.965688774807\n\n    test 2471 231 231.000000000000 Phi(tan=1.2349, x=-0.62932, y=-0.777146): 1.234897156535\n    test 2472 231 230.905857444036 Beta(tan=1.23076, x=-0.62932, y=-0.77454): 1.234897156535\n    test 2473 231 230.811650146691 Theta(tan=1.22663, x=-0.62932, y=-0.771943): 1.234897156535\n    test 2474 231 230.858774044602 Mu(tan=1.22869, x=-0.631234, y=-0.775592), iteration=2: 1.234897156535\n    test 2475 231 230.811777138431 Chi(tan=1.22664, x=-1, y=-1.22664), iteration=3: 1.234897156535\n    test 2476 231 230.874456790611 Xi(tan=1.22938, x=-1.26771, y=-1.5585), iteration=2: 1.234897156535\n\n    test 2477 231 231.000000000000 Phi(tan=1.2349, x=-0.62932, y=-0.777146): 1.234897156535\n    test 2478 231 230.905857444036 Beta(tan=1.23076, x=-0.630596, y=-0.776111): 1.234897156535\n    test 2479 231 230.811650146691 Theta(tan=1.22663, x=-0.631872, y=-0.775073): 1.234897156535\n    test 2480 231 230.858774044602 Mu(tan=1.22869, x=-0.631234, y=-0.775592): 1.234897156535\n    test 2481 231 230.811777138431 Chi(tan=1.22664, x=-0.63187, y=-0.775074): 1.234897156535\n    test 2482 231 230.874456790611 Xi(tan=1.22938, x=-0.631022, y=-0.775765): 1.234897156535\n\n    test 2483 238 238.000000000000 Phi(tan=1.60033, x=-0.529919, y=-0.848048): 1.600334529041\n    test 2484 238 237.913461373388 Beta(tan=1.59497, x=-0.529919, y=-0.845205): 1.600334529041\n    test 2485 238 237.826796038008 Theta(tan=1.58962, x=-0.529919, y=-0.842371): 1.600334529041\n    test 2486 238 237.870168339397 Mu(tan=1.59229, x=-0.53184, y=-0.846845), iteration=2: 1.600334529041\n    test 2487 238 237.826935292578 Chi(tan=1.58963, x=-1, y=-1.58963), iteration=2: 1.600334529041\n    test 2488 238 237.884590997667 Xi(tan=1.59318, x=-1.06803, y=-1.70156), iteration=3: 1.600334529041\n\n    test 2489 238 238.000000000000 Phi(tan=1.60033, x=-0.529919, y=-0.848048): 1.600334529041\n    test 2490 238 237.913461373388 Beta(tan=1.59497, x=-0.5312, y=-0.847247): 1.600334529041\n    test 2491 238 237.826796038008 Theta(tan=1.58962, x=-0.53248, y=-0.846442): 1.600334529041\n    test 2492 238 237.870168339397 Mu(tan=1.59229, x=-0.53184, y=-0.846845): 1.600334529041\n    test 2493 238 237.826935292578 Chi(tan=1.58963, x=-0.532478, y=-0.846444): 1.600334529041\n    test 2494 238 237.884590997667 Xi(tan=1.59318, x=-0.531626, y=-0.846979): 1.600334529041\n\n    test 2495 245 245.000000000000 Phi(tan=2.14451, x=-0.422618, y=-0.906308): 2.144506920510\n    test 2496 245 244.926217548699 Beta(tan=2.13732, x=-0.422618, y=-0.903269): 2.144506920510\n    test 2497 245 244.852276137025 Theta(tan=2.13015, x=-0.422618, y=-0.900241): 2.144506920510\n    test 2498 245 244.889296576536 Mu(tan=2.13373, x=-0.424369, y=-0.90549), iteration=2: 2.144506920510\n    test 2499 245 244.852411952909 Chi(tan=2.13016, x=-1, y=-2.13016), iteration=3: 2.144506920510\n    test 2500 245 244.901598279036 Xi(tan=2.13493, x=-0.852157, y=-1.81929), iteration=2: 2.144506920510\n\n    test 2501 245 245.000000000000 Phi(tan=2.14451, x=-0.422618, y=-0.906308): 2.144506920510\n    test 2502 245 244.926217548699 Beta(tan=2.13732, x=-0.423785, y=-0.905763): 2.144506920510\n    test 2503 245 244.852276137025 Theta(tan=2.13015, x=-0.424954, y=-0.905215): 2.144506920510\n    test 2504 245 244.889296576536 Mu(tan=2.13373, x=-0.424369, y=-0.90549): 2.144506920510\n    test 2505 245 244.852411952909 Chi(tan=2.13016, x=-0.424951, y=-0.905216): 2.144506920510\n    test 2506 245 244.901598279036 Xi(tan=2.13493, x=-0.424174, y=-0.905581): 2.144506920510\n\n    test 2507 252 252.000000000000 Phi(tan=3.07768, x=-0.309017, y=-0.951057): 3.077683537175\n    test 2508 252 251.943370950484 Beta(tan=3.06736, x=-0.309017, y=-0.947868): 3.077683537175\n    test 2509 252 251.886588050489 Theta(tan=3.05708, x=-0.309017, y=-0.94469): 3.077683537175\n    test 2510 252 251.915027646278 Mu(tan=3.06222, x=-0.310427, y=-0.950597), iteration=3: 3.077683537175\n    test 2511 252 251.886702986922 Chi(tan=3.0571, x=-1, y=-3.0571), iteration=3: 3.077683537175\n    test 2512 252 251.924472501487 Xi(tan=3.06393, x=-0.623327, y=-1.90983), iteration=3: 3.077683537175\n\n    test 2513 252 252.000000000000 Phi(tan=3.07768, x=-0.309017, y=-0.951057): 3.077683537175\n    test 2514 252 251.943370950484 Beta(tan=3.06736, x=-0.309957, y=-0.950751): 3.077683537175\n    test 2515 252 251.886588050489 Theta(tan=3.05708, x=-0.310899, y=-0.950443): 3.077683537175\n    test 2516 252 251.915027646278 Mu(tan=3.06222, x=-0.310427, y=-0.950597): 3.077683537175\n    test 2517 252 251.886702986922 Chi(tan=3.0571, x=-0.310897, y=-0.950444): 3.077683537175\n    test 2518 252 251.924472501487 Xi(tan=3.06393, x=-0.31027, y=-0.950648): 3.077683537175\n\n    test 2519 259 259.000000000000 Phi(tan=5.14455, x=-0.190809, y=-0.981627): 5.144554015970\n    test 2520 259 258.963902062378 Beta(tan=5.12731, x=-0.190809, y=-0.978336): 5.144554015970\n    test 2521 259 258.927691601915 Theta(tan=5.11011, x=-0.190809, y=-0.975056): 5.144554015970\n    test 2522 259 258.945832050834 Mu(tan=5.11871, x=-0.191737, y=-0.981446), iteration=3: 5.144554015970\n    test 2523 259 258.927769725031 Chi(tan=5.11015, x=-1, y=-5.11015), iteration=3: 5.144554015970\n    test 2524 259 258.951854051022 Xi(tan=5.12157, x=-0.384988, y=-1.97175), iteration=3: 5.144554015970\n\n    test 2525 259 259.000000000000 Phi(tan=5.14455, x=-0.190809, y=-0.981627): 5.144554015970\n    test 2526 259 258.963902062378 Beta(tan=5.12731, x=-0.191427, y=-0.981507): 5.144554015970\n    test 2527 259 258.927691601915 Theta(tan=5.11011, x=-0.192048, y=-0.981386): 5.144554015970\n    test 2528 259 258.945832050834 Mu(tan=5.11871, x=-0.191737, y=-0.981446): 5.144554015970\n    test 2529 259 258.927769725031 Chi(tan=5.11015, x=-0.192046, y=-0.981386): 5.144554015970\n    test 2530 259 258.951854051022 Xi(tan=5.12157, x=-0.191634, y=-0.981466): 5.144554015970\n\n    test 2531 266 266.000000000000 Phi(tan=14.3007, x=-0.0697565, y=-0.997564): 14.300666256712\n    test 2532 266 265.986587541025 Beta(tan=14.2527, x=-0.0697565, y=-0.994219): 14.300666256712\n    test 2533 266 265.973130404128 Theta(tan=14.2049, x=-0.0697565, y=-0.990886): 14.300666256712\n    test 2534 266 265.979872957664 Mu(tan=14.2288, x=-0.0701069, y=-0.997539), iteration=3: 14.300666256712\n    test 2535 266 265.973160396216 Chi(tan=14.205, x=-1, y=-14.205), iteration=3: 14.300666256712\n    test 2536 266 265.982110758522 Xi(tan=14.2368, x=-0.140765, y=-2.00404), iteration=2: 14.300666256712\n\n    test 2537 266 266.000000000000 Phi(tan=14.3007, x=-0.0697565, y=-0.997564): 14.300666256712\n    test 2538 266 265.986587541025 Beta(tan=14.2527, x=-0.06999, y=-0.997548): 14.300666256712\n    test 2539 266 265.973130404128 Theta(tan=14.2049, x=-0.0702243, y=-0.997531): 14.300666256712\n    test 2540 266 265.979872957664 Mu(tan=14.2288, x=-0.0701069, y=-0.997539): 14.300666256712\n    test 2541 266 265.973160396216 Chi(tan=14.205, x=-0.0702238, y=-0.997531): 14.300666256712\n    test 2542 266 265.982110758522 Xi(tan=14.2368, x=-0.0700679, y=-0.997542): 14.300666256712\n\n    test 2543 273 273.000000000000 Phi(tan=-19.0811, x=0.052336, y=-0.99863): -19.081136687728\n    test 2544 273 273.010073740960 Beta(tan=-19.0172, x=0.052336, y=-0.995281): -19.081136687728\n    test 2545 273 273.020181183682 Theta(tan=-18.9534, x=0.052336, y=-0.991944): -19.081136687728\n    test 2546 273 273.015116912927 Mu(tan=-18.9853, x=0.0525994, y=-0.998616), iteration=3: -19.081136687728\n    test 2547 273 273.020158608531 Chi(tan=-18.9535, x=1.0, y=-18.9535), iteration=2: -19.081136687728\n    test 2548 273 273.013436145998 Xi(tan=-18.9959, x=0.105612, y=-2.0062), iteration=2: -19.081136687728\n\n    test 2549 273 273.000000000000 Phi(tan=-19.0811, x=0.052336, y=-0.99863): -19.081136687728\n    test 2550 273 273.010073740960 Beta(tan=-19.0172, x=0.0525115, y=-0.99862): -19.081136687728\n    test 2551 273 273.020181183682 Theta(tan=-18.9534, x=0.0526877, y=-0.998611): -19.081136687728\n    test 2552 273 273.015116912927 Mu(tan=-18.9853, x=0.0525994, y=-0.998616): -19.081136687728\n    test 2553 273 273.020158608531 Chi(tan=-18.9535, x=0.0526873, y=-0.998611): -19.081136687728\n    test 2554 273 273.013436145998 Xi(tan=-18.9959, x=0.0525701, y=-0.998617): -19.081136687728\n\n    test 2555 280 280.000000000000 Phi(tan=-5.67128, x=0.173648, y=-0.984808): -5.671281819618\n    test 2556 280 280.032958527773 Beta(tan=-5.65227, x=0.173648, y=-0.981506): -5.671281819618\n    test 2557 280 280.066021190034 Theta(tan=-5.63332, x=0.173648, y=-0.978215): -5.671281819618\n    test 2558 280 280.049457265110 Mu(tan=-5.64279, x=0.174498, y=-0.984657), iteration=3: -5.671281819618\n    test 2559 280 280.065949391281 Chi(tan=-5.63336, x=1.0, y=-5.63336), iteration=2: -5.671281819618\n    test 2560 280 280.043958856452 Xi(tan=-5.64595, x=0.350374, y=-1.97819), iteration=3: -5.671281819618\n\n    test 2561 280 280.000000000000 Phi(tan=-5.67128, x=0.173648, y=-0.984808): -5.671281819618\n    test 2562 280 280.032958527773 Beta(tan=-5.65227, x=0.174215, y=-0.984708): -5.671281819618\n    test 2563 280 280.066021190034 Theta(tan=-5.63332, x=0.174783, y=-0.984607): -5.671281819618\n    test 2564 280 280.049457265110 Mu(tan=-5.64279, x=0.174498, y=-0.984657): -5.671281819618\n    test 2565 280 280.065949391281 Chi(tan=-5.63336, x=0.174782, y=-0.984607): -5.671281819618\n    test 2566 280 280.043958856452 Xi(tan=-5.64595, x=0.174404, y=-0.984674): -5.671281819618\n\n    test 2567 287 287.000000000000 Phi(tan=-3.27085, x=0.292372, y=-0.956305): -3.270852618484\n    test 2568 287 287.053876189570 Beta(tan=-3.25989, x=0.292372, y=-0.953098): -3.270852618484\n    test 2569 287 287.107902403143 Theta(tan=-3.24896, x=0.292372, y=-0.949903): -3.270852618484\n    test 2570 287 287.080842346698 Mu(tan=-3.25442, x=0.293721, y=-0.955891), iteration=3: -3.270852618484\n    test 2571 287 287.107791826667 Chi(tan=-3.24898, x=1.0, y=-3.24898), iteration=2: -3.270852618484\n    test 2572 287 287.071856267521 Xi(tan=-3.25624, x=0.589778, y=-1.92046), iteration=3: -3.270852618484\n\n    test 2573 287 287.000000000000 Phi(tan=-3.27085, x=0.292372, y=-0.956305): -3.270852618484\n    test 2574 287 287.053876189570 Beta(tan=-3.25989, x=0.293271, y=-0.956029): -3.270852618484\n    test 2575 287 287.107902403143 Theta(tan=-3.24896, x=0.294172, y=-0.955752): -3.270852618484\n    test 2576 287 287.080842346698 Mu(tan=-3.25442, x=0.293721, y=-0.955891): -3.270852618484\n    test 2577 287 287.107791826667 Chi(tan=-3.24898, x=0.29417, y=-0.955753): -3.270852618484\n    test 2578 287 287.071856267521 Xi(tan=-3.25624, x=0.293571, y=-0.955937): -3.270852618484\n\n    test 2579 294 294.000000000000 Phi(tan=-2.24604, x=0.406737, y=-0.913545): -2.246036773904\n    test 2580 294 294.071580020440 Beta(tan=-2.23851, x=0.406737, y=-0.910483): -2.246036773904\n    test 2581 294 294.143320630937 Theta(tan=-2.231, x=0.406737, y=-0.90743): -2.246036773904\n    test 2582 294 294.107400080405 Mu(tan=-2.23475, x=0.408448, y=-0.912781), iteration=3: -2.246036773904\n    test 2583 294 294.143186728996 Chi(tan=-2.23101, x=1.0, y=-2.23101), iteration=3: -2.246036773904\n    test 2584 294 294.095464961355 Xi(tan=-2.236, x=0.820183, y=-1.83393), iteration=3: -2.246036773904\n\n    test 2585 294 294.000000000000 Phi(tan=-2.24604, x=0.406737, y=-0.913545): -2.246036773904\n    test 2586 294 294.071580020440 Beta(tan=-2.23851, x=0.407878, y=-0.913037): -2.246036773904\n    test 2587 294 294.143320630937 Theta(tan=-2.231, x=0.409021, y=-0.912525): -2.246036773904\n    test 2588 294 294.107400080405 Mu(tan=-2.23475, x=0.408448, y=-0.912781): -2.246036773904\n    test 2589 294 294.143186728996 Chi(tan=-2.23101, x=0.409018, y=-0.912526): -2.246036773904\n    test 2590 294 294.095464961355 Xi(tan=-2.236, x=0.408258, y=-0.912866): -2.246036773904\n\n    test 2591 301 301.000000000000 Phi(tan=-1.66428, x=0.515038, y=-0.857167): -1.664279482351\n    test 2592 301 301.085017327347 Beta(tan=-1.6587, x=0.515038, y=-0.854293): -1.664279482351\n    test 2593 301 301.170168056505 Theta(tan=-1.65314, x=0.515038, y=-0.851429): -1.664279482351\n    test 2594 301 301.127550963364 Mu(tan=-1.65592, x=0.516945, y=-0.856019), iteration=3: -1.664279482351\n    test 2595 301 301.170028258270 Chi(tan=-1.65315, x=1.0, y=-1.65315), iteration=3: -1.664279482351\n    test 2596 301 301.113380969671 Xi(tan=-1.65684, x=1.03811, y=-1.71998), iteration=3: -1.664279482351\n\n    test 2597 301 301.000000000000 Phi(tan=-1.66428, x=0.515038, y=-0.857167): -1.664279482351\n    test 2598 301 301.085017327347 Beta(tan=-1.6587, x=0.516309, y=-0.856402): -1.664279482351\n    test 2599 301 301.170168056505 Theta(tan=-1.65314, x=0.517582, y=-0.855634): -1.664279482351\n    test 2600 301 301.127550963364 Mu(tan=-1.65592, x=0.516945, y=-0.856019): -1.664279482351\n    test 2601 301 301.170028258270 Chi(tan=-1.65315, x=0.517579, y=-0.855635): -1.664279482351\n    test 2602 301 301.113380969671 Xi(tan=-1.65684, x=0.516733, y=-0.856146): -1.664279482351\n\n    test 2603 308 308.000000000000 Phi(tan=-1.27994, x=0.615661, y=-0.788011): -1.279941632193\n    test 2604 308 308.093392183249 Beta(tan=-1.27565, x=0.615661, y=-0.785369): -1.279941632193\n    test 2605 308 308.186859283180 Theta(tan=-1.27137, x=0.615661, y=-0.782736): -1.279941632193\n    test 2606 308 308.140102302012 Mu(tan=-1.27351, x=0.617587, y=-0.786503), iteration=2: -1.279941632193\n    test 2607 308 308.186729722475 Chi(tan=-1.27138, x=1.0, y=-1.27138), iteration=3: -1.279941632193\n    test 2608 308 308.124543504213 Xi(tan=-1.27422, x=1.24029, y=-1.58041), iteration=2: -1.279941632193\n\n    test 2609 308 308.000000000000 Phi(tan=-1.27994, x=0.615661, y=-0.788011): -1.279941632193\n    test 2610 308 308.093392183249 Beta(tan=-1.27565, x=0.616945, y=-0.787006): -1.279941632193\n    test 2611 308 308.186859283180 Theta(tan=-1.27137, x=0.618228, y=-0.785999): -1.279941632193\n    test 2612 308 308.140102302012 Mu(tan=-1.27351, x=0.617587, y=-0.786503): -1.279941632193\n    test 2613 308 308.186729722475 Chi(tan=-1.27138, x=0.618226, y=-0.786): -1.279941632193\n    test 2614 308 308.124543504213 Xi(tan=-1.27422, x=0.617373, y=-0.786671): -1.279941632193\n\n    test 2615 315 315.000000000000 Phi(tan=-1, x=0.707107, y=-0.707107): -1.000000000000\n    test 2616 315 315.096212150580 Beta(tan=-0.996647, x=0.707107, y=-0.704736): -1.000000000000\n    test 2617 315 315.192423215982 Theta(tan=-0.993306, x=0.707107, y=-0.702373): -1.000000000000\n    test 2618 315 315.144318011093 Mu(tan=-0.994975, x=0.708886, y=-0.705323), iteration=2: -1.000000000000\n    test 2619 315 315.192315943911 Chi(tan=-0.993309, x=1.0, y=-0.993309), iteration=3: -1.000000000000\n    test 2620 315 315.128297126566 Xi(tan=-0.995532, x=1.42374, y=-1.41738), iteration=3: -1.000000000000\n\n    test 2621 315 315.000000000000 Phi(tan=-1, x=0.707107, y=-0.707107): -1.000000000000\n    test 2622 315 315.096212150580 Beta(tan=-0.996647, x=0.708293, y=-0.705918): -1.000000000000\n    test 2623 315 315.192423215982 Theta(tan=-0.993306, x=0.709478, y=-0.704728): -1.000000000000\n    test 2624 315 315.144318011093 Mu(tan=-0.994975, x=0.708886, y=-0.705323): -1.000000000000\n    test 2625 315 315.192315943911 Chi(tan=-0.993309, x=0.709476, y=-0.704729): -1.000000000000\n    test 2626 315 315.128297126566 Xi(tan=-0.995532, x=0.708688, y=-0.705522): -1.000000000000\n\n    test 2627 322 322.000000000000 Phi(tan=-0.781286, x=0.788011, y=-0.615661): -0.781285626507\n    test 2628 322 322.093316334881 Beta(tan=-0.778666, x=0.788011, y=-0.613597): -0.781285626507\n    test 2629 322 322.186555893687 Theta(tan=-0.776055, x=0.788011, y=-0.61154): -0.781285626507\n    test 2630 322 322.139960086634 Mu(tan=-0.777359, x=0.789512, y=-0.613735), iteration=3: -0.781285626507\n    test 2631 322 322.186477167765 Chi(tan=-0.776058, x=1.0, y=-0.776058), iteration=3: -0.781285626507\n    test 2632 322 322.124428869604 Xi(tan=-0.777794, x=1.58578, y=-1.23341), iteration=2: -0.781285626507\n\n    test 2633 322 322.000000000000 Phi(tan=-0.781286, x=0.788011, y=-0.615661): -0.781285626507\n    test 2634 322 322.093316334881 Beta(tan=-0.778666, x=0.789012, y=-0.614377): -0.781285626507\n    test 2635 322 322.186555893687 Theta(tan=-0.776055, x=0.790011, y=-0.613092): -0.781285626507\n    test 2636 322 322.139960086634 Mu(tan=-0.777359, x=0.789512, y=-0.613735): -0.781285626507\n    test 2637 322 322.186477167765 Chi(tan=-0.776058, x=0.79001, y=-0.613094): -0.781285626507\n    test 2638 322 322.124428869604 Xi(tan=-0.777794, x=0.789346, y=-0.613949): -0.781285626507\n\n    test 2639 329 329.000000000000 Phi(tan=-0.600861, x=0.857167, y=-0.515038): -0.600860619028\n    test 2640 329 329.084883386958 Beta(tan=-0.598846, x=0.857167, y=-0.513311): -0.600860619028\n    test 2641 329 329.169632300503 Theta(tan=-0.596838, x=0.857167, y=-0.51159): -0.600860619028\n    test 2642 329 329.127299825611 Mu(tan=-0.597841, x=0.858309, y=-0.513132), iteration=2: -0.600860619028\n    test 2643 329 329.169582272165 Chi(tan=-0.596839, x=1.0, y=-0.596839), iteration=3: -0.600860619028\n    test 2644 329 329.113178536759 Xi(tan=-0.598175, x=1.72407, y=-1.0313), iteration=3: -0.600860619028\n\n    test 2645 329 329.000000000000 Phi(tan=-0.600861, x=0.857167, y=-0.515038): -0.600860619028\n    test 2646 329 329.084883386958 Beta(tan=-0.598846, x=0.857929, y=-0.513768): -0.600860619028\n    test 2647 329 329.169632300503 Theta(tan=-0.596838, x=0.858688, y=-0.512498): -0.600860619028\n    test 2648 329 329.127299825611 Mu(tan=-0.597841, x=0.858309, y=-0.513132): -0.600860619028\n    test 2649 329 329.169582272165 Chi(tan=-0.596839, x=0.858688, y=-0.512499): -0.600860619028\n    test 2650 329 329.113178536759 Xi(tan=-0.598175, x=0.858183, y=-0.513344): -0.600860619028\n\n    test 2651 336 336.000000000000 Phi(tan=-0.445229, x=0.913545, y=-0.406737): -0.445228685309\n    test 2652 336 336.071419343981 Beta(tan=-0.443736, x=0.913545, y=-0.405373): -0.445228685309\n    test 2653 336 336.142677929298 Theta(tan=-0.442248, x=0.913545, y=-0.404014): -0.445228685309\n    test 2654 336 336.107098812499 Mu(tan=-0.442991, x=0.914304, y=-0.405028), iteration=3: -0.445228685309\n    test 2655 336 336.142651717918 Chi(tan=-0.442249, x=1.0, y=-0.442249), iteration=3: -0.445228685309\n    test 2656 336 336.095222120427 Xi(tan=-0.443239, x=1.83665, y=-0.814074), iteration=3: -0.445228685309\n\n    test 2657 336 336.000000000000 Phi(tan=-0.445229, x=0.913545, y=-0.406737): -0.445228685309\n    test 2658 336 336.071419343981 Beta(tan=-0.443736, x=0.914052, y=-0.405598): -0.445228685309\n    test 2659 336 336.142677929298 Theta(tan=-0.442248, x=0.914555, y=-0.40446): -0.445228685309\n    test 2660 336 336.107098812499 Mu(tan=-0.442991, x=0.914304, y=-0.405028): -0.445228685309\n    test 2661 336 336.142651717918 Chi(tan=-0.442249, x=0.914555, y=-0.404461): -0.445228685309\n    test 2662 336 336.095222120427 Xi(tan=-0.443239, x=0.91422, y=-0.405218): -0.445228685309\n\n    test 2663 343 343.000000000000 Phi(tan=-0.305731, x=0.956305, y=-0.292372): -0.305730681459\n    test 2664 343 343.053726392145 Beta(tan=-0.304706, x=0.956305, y=-0.291391): -0.305730681459\n    test 2665 343 343.107303214923 Theta(tan=-0.303684, x=0.956305, y=-0.290414): -0.305730681459\n    test 2666 343 343.080561476830 Mu(tan=-0.304194, x=0.956715, y=-0.291027), iteration=3: -0.305730681459\n    test 2667 343 343.107293039045 Chi(tan=-0.303684, x=1.0, y=-0.303684), iteration=2: -0.305730681459\n    test 2668 343 343.071629868756 Xi(tan=-0.304364, x=1.92193, y=-0.584967), iteration=2: -0.305730681459\n\n    test 2669 343 343.000000000000 Phi(tan=-0.305731, x=0.956305, y=-0.292372): -0.305730681459\n    test 2670 343 343.053726392145 Beta(tan=-0.304706, x=0.956578, y=-0.291475): -0.305730681459\n    test 2671 343 343.107303214923 Theta(tan=-0.303684, x=0.956851, y=-0.29058): -0.305730681459\n    test 2672 343 343.080561476830 Mu(tan=-0.304194, x=0.956715, y=-0.291027): -0.305730681459\n    test 2673 343 343.107293039045 Chi(tan=-0.303684, x=0.956851, y=-0.29058): -0.305730681459\n    test 2674 343 343.071629868756 Xi(tan=-0.304364, x=0.95667, y=-0.291176): -0.305730681459\n\n    test 2675 350 350.000000000000 Phi(tan=-0.176327, x=0.984808, y=-0.173648): -0.176326980708\n    test 2676 350 350.032854677782 Beta(tan=-0.175736, x=0.984808, y=-0.173066): -0.176326980708\n    test 2677 350 350.065605789721 Theta(tan=-0.175147, x=0.984808, y=-0.172486): -0.176326980708\n    test 2678 350 350.049262546520 Mu(tan=-0.175441, x=0.984957, y=-0.172801), iteration=3: -0.176326980708\n    test 2679 350 350.065603596501 Chi(tan=-0.175147, x=1.0, y=-0.175147), iteration=2: -0.176326980708\n    test 2680 350 350.043801901064 Xi(tan=-0.175539, x=1.97873, y=-0.347343), iteration=3: -0.176326980708\n\n    test 2681 350 350.000000000000 Phi(tan=-0.176327, x=0.984808, y=-0.173648): -0.176326980708\n    test 2682 350 350.032854677782 Beta(tan=-0.175736, x=0.984907, y=-0.173083): -0.176326980708\n    test 2683 350 350.065605789721 Theta(tan=-0.175147, x=0.985006, y=-0.17252): -0.176326980708\n    test 2684 350 350.049262546520 Mu(tan=-0.175441, x=0.984957, y=-0.172801): -0.176326980708\n    test 2685 350 350.065603596501 Chi(tan=-0.175147, x=0.985006, y=-0.17252): -0.176326980708\n    test 2686 350 350.043801901064 Xi(tan=-0.175539, x=0.98494, y=-0.172895): -0.176326980708\n\n    test 2687 357 357.000000000000 Phi(tan=-0.0524078, x=0.99863, y=-0.052336): -0.052407779283\n    test 2688 357 357.010040150331 Beta(tan=-0.0522321, x=0.99863, y=-0.0521605): -0.052407779283\n    test 2689 357 357.020046820811 Theta(tan=-0.0520569, x=0.99863, y=-0.0519856): -0.052407779283\n    test 2690 357 357.015053930532 Mu(tan=-0.0521443, x=0.998643, y=-0.0520736), iteration=3: -0.052407779283\n    test 2691 357 357.020046759956 Chi(tan=-0.0520569, x=1.0, y=-0.0520569), iteration=3: -0.052407779283\n    test 2692 357 357.013385378246 Xi(tan=-0.0521735, x=2.00625, y=-0.104673), iteration=3: -0.052407779283\n\n    test 2693 357 357.000000000000 Phi(tan=-0.0524078, x=0.99863, y=-0.052336): -0.052407779283\n    test 2694 357 357.010040150331 Beta(tan=-0.0522321, x=0.998639, y=-0.052161): -0.052407779283\n    test 2695 357 357.020046820811 Theta(tan=-0.0520569, x=0.998648, y=-0.0519865): -0.052407779283\n    test 2696 357 357.015053930532 Mu(tan=-0.0521443, x=0.998643, y=-0.0520736): -0.052407779283\n    test 2697 357 357.020046759956 Chi(tan=-0.0520569, x=0.998648, y=-0.0519866): -0.052407779283\n    test 2698 357 357.013385378246 Xi(tan=-0.0521735, x=0.998642, y=-0.0521027): -0.052407779283\n\n    test 2699  0 0.000000000000 Phi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 2700  0 0.000000000000 Beta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 2701  0 0.000000000000 Theta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 2702  0 0.000000000000 Mu(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 2703  0 0.000000000000 Chi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 2704  0 0.000000000000 Xi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n\n    test 2705  0 0.000000000000 Phi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 2706  0 0.000000000000 Beta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 2707  0 0.000000000000 Theta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 2708  0 0.000000000000 Mu(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 2709  0 0.000000000000 Chi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 2710  0 0.000000000000 Xi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n\n    test 2711  7 7.046703746044 Phi(tan=0.123612, x=0.992546, y=0.122691): 0.122784560903\n    test 2712  7 7.023313832609 Beta(tan=0.123198, x=0.992546, y=0.122279): 0.122784560903\n    test 2713  7 7.000000000000 Theta(tan=0.122785, x=0.992546, y=0.121869): 0.122784560903\n    test 2714  7 7.011633179954 Mu(tan=0.122991, x=0.992521, y=0.122071), iteration=3: 0.122784560903\n    test 2715  7 7.000000779127 Chi(tan=0.122785, x=1.0, y=0.122785), iteration=2: 0.122784560903\n    test 2716  7 7.015520491938 Xi(tan=0.12306, x=1.99394, y=0.245373), iteration=2: 0.122784560903\n\n    test 2717  7 7.046703746044 Phi(tan=0.123612, x=0.992446, y=0.122678): 0.122784560903\n    test 2718  7 7.023313832609 Beta(tan=0.123198, x=0.992496, y=0.122273): 0.122784560903\n    test 2719  7 7.000000000000 Theta(tan=0.122785, x=0.992546, y=0.121869): 0.122784560903\n    test 2720  7 7.011633179954 Mu(tan=0.122991, x=0.992521, y=0.122071): 0.122784560903\n    test 2721  7 7.000000779127 Chi(tan=0.122785, x=0.992546, y=0.121869): 0.122784560903\n    test 2722  7 7.015520491938 Xi(tan=0.12306, x=0.992513, y=0.122138): 0.122784560903\n\n    test 2723 14 14.090606168436 Phi(tan=0.251008, x=0.970296, y=0.243552): 0.249328002843\n    test 2724 14 14.045235971490 Beta(tan=0.250167, x=0.970296, y=0.242736): 0.249328002843\n    test 2725 14 14.000000000000 Theta(tan=0.249328, x=0.970296, y=0.241922): 0.249328002843\n    test 2726 14 14.022576103630 Mu(tan=0.249747, x=0.9702, y=0.242304), iteration=3: 0.249328002843\n    test 2727 14 14.000005955939 Chi(tan=0.249328, x=1.0, y=0.249328), iteration=2: 0.249328002843\n    test 2728 14 14.030117773793 Xi(tan=0.249886, x=1.94905, y=0.487041), iteration=3: 0.249328002843\n\n    test 2729 14 14.090606168436 Phi(tan=0.251008, x=0.969912, y=0.243456): 0.249328002843\n    test 2730 14 14.045235971490 Beta(tan=0.250167, x=0.970104, y=0.242688): 0.249328002843\n    test 2731 14 14.000000000000 Theta(tan=0.249328, x=0.970296, y=0.241922): 0.249328002843\n    test 2732 14 14.022576103630 Mu(tan=0.249747, x=0.9702, y=0.242304): 0.249328002843\n    test 2733 14 14.000005955939 Chi(tan=0.249328, x=0.970296, y=0.241922): 0.249328002843\n    test 2734 14 14.030117773793 Xi(tan=0.249886, x=0.970168, y=0.242432): 0.249328002843\n\n    test 2735 21 21.129078684131 Phi(tan=0.386451, x=0.93358, y=0.360783): 0.383864035035\n    test 2736 21 21.064458966605 Beta(tan=0.385155, x=0.93358, y=0.359574): 0.383864035035\n    test 2737 21 21.000000000000 Theta(tan=0.383864, x=0.93358, y=0.358368): 0.383864035035\n    test 2738 21 21.032179314629 Mu(tan=0.384509, x=0.933379, y=0.358892), iteration=3: 0.383864035035\n    test 2739 21 21.000018617196 Chi(tan=0.383864, x=1.0, y=0.383864), iteration=3: 0.383864035035\n    test 2740 21 21.042923749309 Xi(tan=0.384724, x=1.875, y=0.721359), iteration=3: 0.383864035035\n\n    test 2741 21 21.129078684131 Phi(tan=0.386451, x=0.932771, y=0.36047): 0.383864035035\n    test 2742 21 21.064458966605 Beta(tan=0.385155, x=0.933177, y=0.359418): 0.383864035035\n    test 2743 21 21.000000000000 Theta(tan=0.383864, x=0.93358, y=0.358368): 0.383864035035\n    test 2744 21 21.032179314629 Mu(tan=0.384509, x=0.933379, y=0.358892): 0.383864035035\n    test 2745 21 21.000018617196 Chi(tan=0.383864, x=0.93358, y=0.358368): 0.383864035035\n    test 2746 21 21.042923749309 Xi(tan=0.384724, x=0.933312, y=0.359067): 0.383864035035\n\n    test 2747 28 28.159826417635 Phi(tan=0.535293, x=0.882948, y=0.472636): 0.531709431661\n    test 2748 28 28.079838480095 Beta(tan=0.533498, x=0.882948, y=0.471051): 0.531709431661\n    test 2749 28 28.000000000000 Theta(tan=0.531709, x=0.882948, y=0.469472): 0.531709431661\n    test 2750 28 28.039872584755 Mu(tan=0.532602, x=0.882621, y=0.470086), iteration=2: 0.531709431661\n    test 2751 28 28.000039556231 Chi(tan=0.53171, x=1.0, y=0.53171), iteration=3: 0.531709431661\n    test 2752 28 28.053177215354 Xi(tan=0.532901, x=1.77295, y=0.944805), iteration=3: 0.531709431661\n\n    test 2753 28 28.159826417635 Phi(tan=0.535293, x=0.881635, y=0.471933): 0.531709431661\n    test 2754 28 28.079838480095 Beta(tan=0.533498, x=0.882293, y=0.470701): 0.531709431661\n    test 2755 28 28.000000000000 Theta(tan=0.531709, x=0.882948, y=0.469472): 0.531709431661\n    test 2756 28 28.039872584755 Mu(tan=0.532602, x=0.882621, y=0.470086): 0.531709431661\n    test 2757 28 28.000039556231 Chi(tan=0.53171, x=0.882947, y=0.469472): 0.531709431661\n    test 2758 28 28.053177215354 Xi(tan=0.532901, x=0.882511, y=0.470291): 0.531709431661\n\n    test 2759 35 35.181026690786 Phi(tan=0.704927, x=0.819152, y=0.577442): 0.700207538210\n    test 2760 35 35.090461812463 Beta(tan=0.702563, x=0.819152, y=0.575506): 0.700207538210\n    test 2761 35 35.000000000000 Theta(tan=0.700208, x=0.819152, y=0.573576): 0.700207538210\n    test 2762 35 35.045198725900 Mu(tan=0.701384, x=0.818699, y=0.574222), iteration=3: 0.700207538210\n    test 2763 35 35.000066866642 Chi(tan=0.700209, x=1.0, y=0.700209), iteration=2: 0.700207538210\n    test 2764 35 35.060269183174 Xi(tan=0.701776, x=1.64445, y=1.15403), iteration=3: 0.700207538210\n\n    test 2765 35 35.181026690786 Phi(tan=0.704927, x=0.817336, y=0.576162): 0.700207538210\n    test 2766 35 35.090461812463 Beta(tan=0.702563, x=0.818245, y=0.574869): 0.700207538210\n    test 2767 35 35.000000000000 Theta(tan=0.700208, x=0.819152, y=0.573576): 0.700207538210\n    test 2768 35 35.045198725900 Mu(tan=0.701384, x=0.818699, y=0.574222): 0.700207538210\n    test 2769 35 35.000066866642 Chi(tan=0.700209, x=0.819151, y=0.573577): 0.700207538210\n    test 2770 35 35.060269183174 Xi(tan=0.701776, x=0.818548, y=0.574438): 0.700207538210\n\n    test 2771 42 42.191436312869 Phi(tan=0.906472, x=0.743145, y=0.67364): 0.900404044298\n    test 2772 42 42.095701889505 Beta(tan=0.903433, x=0.743145, y=0.671382): 0.900404044298\n    test 2773 42 42.000000000000 Theta(tan=0.900404, x=0.743145, y=0.669131): 0.900404044298\n    test 2774 42 42.047840790779 Mu(tan=0.901917, x=0.742586, y=0.669751), iteration=3: 0.900404044298\n    test 2775 42 42.000096219009 Chi(tan=0.900407, x=1.0, y=0.900407), iteration=2: 0.900404044298\n    test 2776 42 42.063779025222 Xi(tan=0.902422, x=1.49147, y=1.34593), iteration=2: 0.900404044298\n\n    test 2777 42 42.191436312869 Phi(tan=0.906472, x=0.740905, y=0.67161): 0.900404044298\n    test 2778 42 42.095701889505 Beta(tan=0.903433, x=0.742026, y=0.670371): 0.900404044298\n    test 2779 42 42.000000000000 Theta(tan=0.900404, x=0.743145, y=0.669131): 0.900404044298\n    test 2780 42 42.047840790779 Mu(tan=0.901917, x=0.742586, y=0.669751): 0.900404044298\n    test 2781 42 42.000096219009 Chi(tan=0.900407, x=0.743144, y=0.669132): 0.900404044298\n    test 2782 42 42.063779025222 Xi(tan=0.902422, x=0.7424, y=0.669957): 0.900404044298\n\n    test 2783 49 49.190461558643 Phi(tan=1.15812, x=0.656059, y=0.759796): 1.150368407221\n    test 2784 49 49.095253561343 Beta(tan=1.15424, x=0.656059, y=0.757248): 1.150368407221\n    test 2785 49 49.000000000000 Theta(tan=1.15037, x=0.656059, y=0.75471): 1.150368407221\n    test 2786 49 49.047641033804 Mu(tan=1.1523, x=0.655431, y=0.755255), iteration=3: 1.150368407221\n    test 2787 49 49.000121761599 Chi(tan=1.15037, x=1.0, y=1.15037), iteration=3: 1.150368407221\n    test 2788 49 49.063499305647 Xi(tan=1.15295, x=1.31633, y=1.51766), iteration=3: 1.150368407221\n\n    test 2789 49 49.190461558643 Phi(tan=1.15812, x=0.653547, y=0.756886): 1.150368407221\n    test 2790 49 49.095253561343 Beta(tan=1.15424, x=0.654803, y=0.755799): 1.150368407221\n    test 2791 49 49.000000000000 Theta(tan=1.15037, x=0.656059, y=0.75471): 1.150368407221\n    test 2792 49 49.047641033804 Mu(tan=1.1523, x=0.655431, y=0.755255): 1.150368407221\n    test 2793 49 49.000121761599 Chi(tan=1.15037, x=0.656057, y=0.754711): 1.150368407221\n    test 2794 49 49.063499305647 Xi(tan=1.15295, x=0.655222, y=0.755436): 1.150368407221\n\n    test 2795 56 56.178187618527 Phi(tan=1.49255, x=0.559193, y=0.834625): 1.482560968513\n    test 2796 56 56.089150284766 Beta(tan=1.48755, x=0.559193, y=0.831827): 1.482560968513\n    test 2797 56 56.000000000000 Theta(tan=1.48256, x=0.559193, y=0.829038): 1.482560968513\n    test 2798 56 56.044610470922 Mu(tan=1.48505, x=0.558547, y=0.829473), iteration=3: 1.482560968513\n    test 2799 56 56.000137435853 Chi(tan=1.48257, x=1.0, y=1.48257), iteration=3: 1.482560968513\n    test 2800 56 56.059447854026 Xi(tan=1.48588, x=1.12168, y=1.66668), iteration=2: 1.482560968513\n\n    test 2801 56 56.178187618527 Phi(tan=1.49255, x=0.556612, y=0.830773): 1.482560968513\n    test 2802 56 56.089150284766 Beta(tan=1.48755, x=0.557902, y=0.829907): 1.482560968513\n    test 2803 56 56.000000000000 Theta(tan=1.48256, x=0.559193, y=0.829038): 1.482560968513\n    test 2804 56 56.044610470922 Mu(tan=1.48505, x=0.558547, y=0.829473): 1.482560968513\n    test 2805 56 56.000137435853 Chi(tan=1.48257, x=0.559191, y=0.829039): 1.482560968513\n    test 2806 56 56.059447854026 Xi(tan=1.48588, x=0.558332, y=0.829617): 1.482560968513\n\n    test 2807 63 63.155367155141 Phi(tan=1.97584, x=0.45399, y=0.897011): 1.962610505505\n    test 2808 63 63.077760538972 Beta(tan=1.96921, x=0.45399, y=0.894004): 1.962610505505\n    test 2809 63 63.000000000000 Theta(tan=1.96261, x=0.45399, y=0.891007): 1.962610505505\n    test 2810 63 63.038928423958 Mu(tan=1.96591, x=0.453385, y=0.891315), iteration=3: 1.962610505505\n    test 2811 63 63.000138398794 Chi(tan=1.96262, x=1.0, y=1.96262), iteration=3: 1.962610505505\n    test 2812 63 63.051866422105 Xi(tan=1.96701, x=0.910437, y=1.79084), iteration=3: 1.962610505505\n\n    test 2813 63 63.155367155141 Phi(tan=1.97584, x=0.451573, y=0.892234): 1.962610505505\n    test 2814 63 63.077760538972 Beta(tan=1.96921, x=0.452781, y=0.891622): 1.962610505505\n    test 2815 63 63.000000000000 Theta(tan=1.96261, x=0.45399, y=0.891007): 1.962610505505\n    test 2816 63 63.038928423958 Mu(tan=1.96591, x=0.453385, y=0.891315): 1.962610505505\n    test 2817 63 63.000138398794 Chi(tan=1.96262, x=0.453988, y=0.891008): 1.962610505505\n    test 2818 63 63.051866422105 Xi(tan=1.96701, x=0.453184, y=0.891417): 1.962610505505\n\n    test 2819 70 70.123370137625 Phi(tan=2.76599, x=0.34202, y=0.946026): 2.747477419455\n    test 2820 70 70.061764561164 Beta(tan=2.75672, x=0.34202, y=0.942854): 2.747477419455\n    test 2821 70 70.000000000000 Theta(tan=2.74748, x=0.34202, y=0.939693): 2.747477419455\n    test 2822 70 70.030932030288 Mu(tan=2.7521, x=0.341513, y=0.939877), iteration=3: 2.747477419455\n    test 2823 70 70.000122219482 Chi(tan=2.7475, x=1.0, y=2.7475), iteration=3: 2.747477419455\n    test 2824 70 70.041206070039 Xi(tan=2.75364, x=0.685754, y=1.88832), iteration=2: 2.747477419455\n\n    test 2825 70 70.123370137625 Phi(tan=2.76599, x=0.339996, y=0.940427): 2.747477419455\n    test 2826 70 70.061764561164 Beta(tan=2.75672, x=0.341007, y=0.940061): 2.747477419455\n    test 2827 70 70.000000000000 Theta(tan=2.74748, x=0.34202, y=0.939693): 2.747477419455\n    test 2828 70 70.030932030288 Mu(tan=2.7521, x=0.341513, y=0.939877): 2.747477419455\n    test 2829 70 70.000122219482 Chi(tan=2.7475, x=0.342018, y=0.939693): 2.747477419455\n    test 2830 70 70.041206070039 Xi(tan=2.75364, x=0.341344, y=0.939938): 2.747477419455\n\n    test 2831 77 77.084099185826 Phi(tan=4.36067, x=0.224951, y=0.980937): 4.331475874284\n    test 2832 77 77.042113102652 Beta(tan=4.34605, x=0.224951, y=0.977648): 4.331475874284\n    test 2833 77 77.000000000000 Theta(tan=4.33148, x=0.224951, y=0.97437): 4.331475874284\n    test 2834 77 77.021096305787 Mu(tan=4.33876, x=0.224592, y=0.974453), iteration=3: 4.331475874284\n    test 2835 77 77.000089569308 Chi(tan=4.33151, x=1.0, y=4.33151), iteration=2: 4.331475874284\n    test 2836 77 77.028100210930 Xi(tan=4.34119, x=0.450962, y=1.95771), iteration=3: 4.331475874284\n\n    test 2837 77 77.084099185826 Phi(tan=4.36067, x=0.223521, y=0.974699): 4.331475874284\n    test 2838 77 77.042113102652 Beta(tan=4.34605, x=0.224235, y=0.974535): 4.331475874284\n    test 2839 77 77.000000000000 Theta(tan=4.33148, x=0.224951, y=0.97437): 4.331475874284\n    test 2840 77 77.021096305787 Mu(tan=4.33876, x=0.224592, y=0.974453): 4.331475874284\n    test 2841 77 77.000089569308 Chi(tan=4.33151, x=0.22495, y=0.97437): 4.331475874284\n    test 2842 77 77.028100210930 Xi(tan=4.34119, x=0.224473, y=0.97448): 4.331475874284\n\n    test 2843 84 84.039876185217 Phi(tan=9.57849, x=0.104528, y=1.00122): 9.514364454223\n    test 2844 84 84.019970846274 Beta(tan=9.54637, x=0.104528, y=0.997868): 9.514364454223\n    test 2845 84 84.000000000000 Theta(tan=9.51436, x=0.104528, y=0.994522): 9.514364454223\n    test 2846 84 84.010005927895 Mu(tan=9.53037, x=0.104355, y=0.99454), iteration=3: 9.514364454223\n    test 2847 84 84.000044242373 Chi(tan=9.51444, x=1.0, y=9.51444), iteration=2: 9.514364454223\n    test 2848 84 84.013326954497 Xi(tan=9.5357, x=0.209531, y=1.99802), iteration=3: 9.514364454223\n\n    test 2849 84 84.039876185217 Phi(tan=9.57849, x=0.103836, y=0.994594): 9.514364454223\n    test 2850 84 84.019970846274 Beta(tan=9.54637, x=0.104182, y=0.994558): 9.514364454223\n    test 2851 84 84.000000000000 Theta(tan=9.51436, x=0.104528, y=0.994522): 9.514364454223\n    test 2852 84 84.010005927895 Mu(tan=9.53037, x=0.104355, y=0.99454): 9.514364454223\n    test 2853 84 84.000044242373 Chi(tan=9.51444, x=0.104528, y=0.994522): 9.514364454223\n    test 2854 84 84.013326954497 Xi(tan=9.5357, x=0.104297, y=0.994546): 9.514364454223\n\n    test 2855 91 90.993306965793 Phi(tan=-57.6761, x=-0.0174524, y=1.00659): -57.289961630759\n    test 2856 91 90.996647866757 Beta(tan=-57.4827, x=-0.0174524, y=1.00321): -57.289961630759\n    test 2857 91 91.000000000000 Theta(tan=-57.29, x=-0.0174524, y=0.999848): -57.289961630759\n    test 2858 91 90.998320417403 Mu(tan=-57.3864, x=-0.0174231, y=0.999848), iteration=3: -57.289961630759\n    test 2859 91 90.999992494484 Chi(tan=-57.2904, x=-1, y=57.2904), iteration=3: -57.289961630759\n    test 2860 91 90.997762994841 Xi(tan=-57.4184, x=-0.0349831, y=2.00868), iteration=3: -57.289961630759\n\n    test 2861 91 90.993306965793 Phi(tan=-57.6761, x=-0.0173356, y=0.99985): -57.289961630760  FAILED, KNOWN (4.3409e-15), expected -57.289961630759\n    test 2862 91 90.996647866757 Beta(tan=-57.4827, x=-0.0173939, y=0.999849): -57.289961630759\n    test 2863 91 91.000000000000 Theta(tan=-57.29, x=-0.0174524, y=0.999848): -57.289961630759\n    test 2864 91 90.998320417403 Mu(tan=-57.3864, x=-0.0174231, y=0.999848): -57.289961630760  FAILED, KNOWN (4.3409e-15), expected -57.289961630759\n    test 2865 91 90.999992494484 Chi(tan=-57.2904, x=-0.0174523, y=0.999848): -57.289961630760  FAILED, KNOWN (3.72077e-15), expected -57.289961630759\n    test 2866 91 90.997762994841 Xi(tan=-57.4184, x=-0.0174134, y=0.999848): -57.289961630760  FAILED, KNOWN (2.85259e-15), expected -57.289961630759\n\n    test 2867 98 97.947131466338 Phi(tan=-7.16332, x=-0.139173, y=0.996942): -7.115369722384\n    test 2868 98 97.973523052479 Beta(tan=-7.13931, x=-0.139173, y=0.993599): -7.115369722384\n    test 2869 98 98.000000000000 Theta(tan=-7.11537, x=-0.139173, y=0.990268): -7.115369722384\n    test 2870 98 97.986734807520 Mu(tan=-7.12734, x=-0.138944, y=0.9903), iteration=3: -7.115369722384\n    test 2871 98 97.999941842742 Chi(tan=-7.11542, x=-1, y=7.11542), iteration=3: -7.115369722384\n    test 2872 98 97.982331755375 Xi(tan=-7.13133, x=-0.278982, y=1.98951), iteration=3: -7.115369722384\n\n    test 2873 98 97.947131466338 Phi(tan=-7.16332, x=-0.138259, y=0.990396): -7.115369722384\n    test 2874 98 97.973523052479 Beta(tan=-7.13931, x=-0.138715, y=0.990332): -7.115369722384\n    test 2875 98 98.000000000000 Theta(tan=-7.11537, x=-0.139173, y=0.990268): -7.115369722384\n    test 2876 98 97.986734807520 Mu(tan=-7.12734, x=-0.138944, y=0.9903): -7.115369722384\n    test 2877 98 97.999941842742 Chi(tan=-7.11542, x=-0.139172, y=0.990268): -7.115369722384\n    test 2878 98 97.982331755375 Xi(tan=-7.13133, x=-0.138868, y=0.990311): -7.115369722384\n\n    test 2879 105 104.904067139653 Phi(tan=-3.7572, x=-0.258819, y=0.972436): -3.732050807569\n    test 2880 105 104.951963747366 Beta(tan=-3.74461, x=-0.258819, y=0.969175): -3.732050807569\n    test 2881 105 105.000000000000 Theta(tan=-3.73205, x=-0.258819, y=0.965926): -3.732050807569\n    test 2882 105 104.975938169742 Mu(tan=-3.73833, x=-0.258413, y=0.966034), iteration=3: -3.732050807569\n    test 2883 105 104.999899588330 Chi(tan=-3.73208, x=-1, y=3.73208), iteration=3: -3.732050807569\n    test 2884 105 104.967948816895 Xi(tan=-3.74042, x=-0.518877, y=1.94082), iteration=2: -3.732050807569\n\n    test 2885 105 104.904067139653 Phi(tan=-3.7572, x=-0.257201, y=0.966358): -3.732050807569\n    test 2886 105 104.951963747366 Beta(tan=-3.74461, x=-0.258009, y=0.966142): -3.732050807569\n    test 2887 105 105.000000000000 Theta(tan=-3.73205, x=-0.258819, y=0.965926): -3.732050807569\n    test 2888 105 104.975938169742 Mu(tan=-3.73833, x=-0.258413, y=0.966034): -3.732050807569\n    test 2889 105 104.999899588330 Chi(tan=-3.73208, x=-0.258817, y=0.965926): -3.732050807569\n    test 2890 105 104.967948816895 Xi(tan=-3.74042, x=-0.258279, y=0.96607): -3.732050807569\n\n    test 2891 112 111.866653486751 Phi(tan=-2.49177, x=-0.374607, y=0.933433): -2.475086853416\n    test 2892 112 111.933246025813 Beta(tan=-2.48341, x=-0.374607, y=0.930303): -2.475086853416\n    test 2893 112 112.000000000000 Theta(tan=-2.47509, x=-0.374607, y=0.927184): -2.475086853416\n    test 2894 112 111.966572499608 Mu(tan=-2.47925, x=-0.374066, y=0.927402), iteration=3: -2.475086853416\n    test 2895 112 111.999871386688 Chi(tan=-2.4751, x=-1, y=2.4751), iteration=3: -2.475086853416\n    test 2896 112 111.955467801390 Xi(tan=-2.48064, x=-0.751129, y=1.86328), iteration=2: -2.475086853416\n\n    test 2897 112 111.866653486751 Phi(tan=-2.49177, x=-0.372448, y=0.928053): -2.475086853416\n    test 2898 112 111.933246025813 Beta(tan=-2.48341, x=-0.373526, y=0.92762): -2.475086853416\n    test 2899 112 112.000000000000 Theta(tan=-2.47509, x=-0.374607, y=0.927184): -2.475086853416\n    test 2900 112 111.966572499608 Mu(tan=-2.47925, x=-0.374066, y=0.927402): -2.475086853416\n    test 2901 112 111.999871386688 Chi(tan=-2.4751, x=-0.374605, y=0.927185): -2.475086853416\n    test 2902 112 111.955467801390 Xi(tan=-2.48064, x=-0.373886, y=0.927475): -2.475086853416\n\n    test 2903 119 118.837105586950 Phi(tan=-1.81621, x=-0.48481, y=0.880514): -1.804047755271\n    test 2904 119 118.918479987923 Beta(tan=-1.81012, x=-0.48481, y=0.877562): -1.804047755271\n    test 2905 119 119.000000000000 Theta(tan=-1.80405, x=-0.48481, y=0.87462): -1.804047755271\n    test 2906 119 118.959194442963 Mu(tan=-1.80708, x=-0.484187, y=0.874965), iteration=3: -1.804047755271\n    test 2907 119 118.999860178783 Chi(tan=-1.80406, x=-1, y=1.80406), iteration=3: -1.804047755271\n    test 2908 119 118.945629859635 Xi(tan=-1.80809, x=-0.972305, y=1.75802), iteration=3: -1.804047755271\n\n    test 2909 119 118.837105586950 Phi(tan=-1.81621, x=-0.482321, y=0.875995): -1.804047755271\n    test 2910 119 118.918479987923 Beta(tan=-1.81012, x=-0.483565, y=0.875309): -1.804047755271\n    test 2911 119 119.000000000000 Theta(tan=-1.80405, x=-0.48481, y=0.87462): -1.804047755271\n    test 2912 119 118.959194442963 Mu(tan=-1.80708, x=-0.484187, y=0.874965): -1.804047755271\n    test 2913 119 118.999860178783 Chi(tan=-1.80406, x=-0.484807, y=0.874621): -1.804047755271\n    test 2914 119 118.945629859635 Xi(tan=-1.80809, x=-0.483979, y=0.875079): -1.804047755271\n\n    test 2915 126 125.817184307945 Phi(tan=-1.38566, x=-0.587785, y=0.814469): -1.376381920471\n    test 2916 126 125.908544256035 Beta(tan=-1.38101, x=-0.587785, y=0.811739): -1.376381920471\n    test 2917 126 126.000000000000 Theta(tan=-1.37638, x=-0.587785, y=0.809017): -1.376381920471\n    test 2918 126 125.954242166425 Mu(tan=-1.3787, x=-0.587139, y=0.809486), iteration=2: -1.376381920471\n    test 2919 126 125.999865716658 Chi(tan=-1.37639, x=-1, y=1.37639), iteration=3: -1.376381920471\n    test 2920 126 125.939019715793 Xi(tan=-1.37947, x=-1.17912, y=1.62655), iteration=2: -1.376381920471\n\n    test 2921 126 125.817184307945 Phi(tan=-1.38566, x=-0.585201, y=0.810888): -1.376381920471\n    test 2922 126 125.908544256035 Beta(tan=-1.38101, x=-0.586493, y=0.809954): -1.376381920471\n    test 2923 126 126.000000000000 Theta(tan=-1.37638, x=-0.587785, y=0.809017): -1.376381920471\n    test 2924 126 125.954242166425 Mu(tan=-1.3787, x=-0.587139, y=0.809486): -1.376381920471\n    test 2925 126 125.999865716658 Chi(tan=-1.37639, x=-0.587783, y=0.809018): -1.376381920471\n    test 2926 126 125.939019715793 Xi(tan=-1.37947, x=-0.586924, y=0.809642): -1.376381920471\n\n    test 2927 133 132.808090472544 Phi(tan=-1.0796, x=-0.681998, y=0.736283): -1.072368710025\n    test 2928 133 132.904033458108 Beta(tan=-1.07598, x=-0.681998, y=0.733814): -1.072368710025\n    test 2929 133 133.000000000000 Theta(tan=-1.07237, x=-0.681998, y=0.731354): -1.072368710025\n    test 2930 133 132.952009355583 Mu(tan=-1.07417, x=-0.681386, y=0.731925), iteration=2: -1.072368710025\n    test 2931 133 132.999884783382 Chi(tan=-1.07237, x=-1, y=1.07237), iteration=2: -1.072368710025\n    test 2932 133 132.936030863456 Xi(tan=-1.07477, x=-1.36848, y=1.4708), iteration=3: -1.072368710025\n\n    test 2933 133 132.808090472544 Phi(tan=-1.0796, x=-0.679545, y=0.733634): -1.072368710025\n    test 2934 133 132.904033458108 Beta(tan=-1.07598, x=-0.680772, y=0.732495): -1.072368710025\n    test 2935 133 133.000000000000 Theta(tan=-1.07237, x=-0.681998, y=0.731354): -1.072368710025\n    test 2936 133 132.952009355583 Mu(tan=-1.07417, x=-0.681386, y=0.731925): -1.072368710025\n    test 2937 133 132.999884783382 Chi(tan=-1.07237, x=-0.681997, y=0.731355): -1.072368710025\n    test 2938 133 132.936030863456 Xi(tan=-1.07477, x=-0.681181, y=0.732115): -1.072368710025\n\n    test 2939 140 139.810389526291 Phi(tan=-0.844755, x=-0.766044, y=0.64712): -0.839099631177\n    test 2940 140 139.905221888853 Beta(tan=-0.841922, x=-0.766044, y=0.64495): -0.839099631177\n    test 2941 140 140.000000000000 Theta(tan=-0.8391, x=-0.766044, y=0.642788): -0.839099631177\n    test 2942 140 139.952627882329 Mu(tan=-0.84051, x=-0.765513, y=0.643421), iteration=3: -0.839099631177\n    test 2943 140 139.999912050710 Chi(tan=-0.839102, x=-1, y=0.839102), iteration=3: -0.839099631177\n    test 2944 140 139.936841998365 Xi(tan=-0.84098, x=-1.53754, y=1.29304), iteration=2: -0.839099631177\n\n    test 2945 140 139.810389526291 Phi(tan=-0.844755, x=-0.763913, y=0.645319): -0.839099631177\n    test 2946 140 139.905221888853 Beta(tan=-0.841922, x=-0.76498, y=0.644054): -0.839099631177\n    test 2947 140 140.000000000000 Theta(tan=-0.8391, x=-0.766044, y=0.642788): -0.839099631177\n    test 2948 140 139.952627882329 Mu(tan=-0.84051, x=-0.765513, y=0.643421): -0.839099631177\n    test 2949 140 139.999912050710 Chi(tan=-0.839102, x=-0.766043, y=0.642789): -0.839099631177\n    test 2950 140 139.936841998365 Xi(tan=-0.84098, x=-0.765335, y=0.643632): -0.839099631177\n\n    test 2951 147 146.823972083650 Phi(tan=-0.653784, x=-0.838671, y=0.54831): -0.649407593198\n    test 2952 147 146.912045740495 Beta(tan=-0.651592, x=-0.838671, y=0.546471): -0.649407593198\n    test 2953 147 147.000000000000 Theta(tan=-0.649408, x=-0.838671, y=0.544639): -0.649407593198\n    test 2954 147 146.956060147954 Mu(tan=-0.650498, x=-0.838253, y=0.545282), iteration=2: -0.649407593198\n    test 2955 147 146.999941372376 Chi(tan=-0.649409, x=-1, y=0.649409), iteration=2: -0.649407593198\n    test 2956 147 146.941406134703 Xi(tan=-0.650863, x=-1.68375, y=1.09589), iteration=3: -0.649407593198\n\n    test 2957 147 146.823972083650 Phi(tan=-0.653784, x=-0.836993, y=0.547213): -0.649407593198\n    test 2958 147 146.912045740495 Beta(tan=-0.651592, x=-0.837834, y=0.545926): -0.649407593198\n    test 2959 147 147.000000000000 Theta(tan=-0.649408, x=-0.838671, y=0.544639): -0.649407593198\n    test 2960 147 146.956060147954 Mu(tan=-0.650498, x=-0.838253, y=0.545282): -0.649407593198\n    test 2961 147 146.999941372376 Chi(tan=-0.649409, x=-0.83867, y=0.54464): -0.649407593198\n    test 2962 147 146.941406134703 Xi(tan=-0.650863, x=-0.838113, y=0.545496): -0.649407593198\n\n    test 2963 154 153.848054049875 Phi(tan=-0.49102, x=-0.898794, y=0.441326): -0.487732588566\n    test 2964 154 153.924105301481 Beta(tan=-0.489373, x=-0.898794, y=0.439846): -0.487732588566\n    test 2965 154 154.000000000000 Theta(tan=-0.487733, x=-0.898794, y=0.438371): -0.487732588566\n    test 2966 154 153.962101517600 Mu(tan=-0.488552, x=-0.898504, y=0.438966), iteration=3: -0.487732588566\n    test 2967 154 153.999967210311 Chi(tan=-0.487733, x=-1, y=0.487733), iteration=3: -0.487732588566\n    test 2968 154 153.949453115559 Xi(tan=-0.488825, x=-1.80488, y=0.882271), iteration=3: -0.487732588566\n\n    test 2969 154 153.848054049875 Phi(tan=-0.49102, x=-0.897628, y=0.440753): -0.487732588566\n    test 2970 154 153.924105301481 Beta(tan=-0.489373, x=-0.898213, y=0.439561): -0.487732588566\n    test 2971 154 154.000000000000 Theta(tan=-0.487733, x=-0.898794, y=0.438371): -0.487732588566\n    test 2972 154 153.962101517600 Mu(tan=-0.488552, x=-0.898504, y=0.438966): -0.487732588566\n    test 2973 154 153.999967210311 Chi(tan=-0.487733, x=-0.898794, y=0.438372): -0.487732588566\n    test 2974 154 153.949453115559 Xi(tan=-0.488825, x=-0.898407, y=0.439164): -0.487732588566\n\n    test 2975 161 160.881217808592 Phi(tan=-0.346648, x=-0.945519, y=0.327762): -0.344327613290\n    test 2976 161 160.940687365843 Beta(tan=-0.345486, x=-0.945519, y=0.326663): -0.344327613290\n    test 2977 161 161.000000000000 Theta(tan=-0.344328, x=-0.945519, y=0.325568): -0.344327613290\n    test 2978 161 160.970392653926 Mu(tan=-0.344906, x=-0.94535, y=0.326057), iteration=3: -0.344327613290\n    test 2979 161 160.999985859992 Chi(tan=-0.344328, x=-1, y=0.344328), iteration=3: -0.344327613290\n    test 2980 161 160.960505433888 Xi(tan=-0.345099, x=-1.89908, y=0.655369), iteration=3: -0.344327613290\n\n    test 2981 161 160.881217808592 Phi(tan=-0.346648, x=-0.944842, y=0.327528): -0.344327613290\n    test 2982 161 160.940687365843 Beta(tan=-0.345486, x=-0.945181, y=0.326547): -0.344327613290\n    test 2983 161 161.000000000000 Theta(tan=-0.344328, x=-0.945519, y=0.325568): -0.344327613290\n    test 2984 161 160.970392653926 Mu(tan=-0.344906, x=-0.94535, y=0.326057): -0.344327613290\n    test 2985 161 160.999985859992 Chi(tan=-0.344328, x=-0.945518, y=0.325568): -0.344327613290\n    test 2986 161 160.960505433888 Xi(tan=-0.345099, x=-0.945294, y=0.32622): -0.344327613290\n\n    test 2987 168 167.921493317051 Phi(tan=-0.213989, x=-0.978148, y=0.209313): -0.212556561670\n    test 2988 168 167.960806838131 Beta(tan=-0.213272, x=-0.978148, y=0.208611): -0.212556561670\n    test 2989 168 168.000000000000 Theta(tan=-0.212557, x=-0.978148, y=0.207912): -0.212556561670\n    test 2990 168 167.980440972867 Mu(tan=-0.212913, x=-0.978077, y=0.208246), iteration=3: -0.212556561670\n    test 2991 168 167.999996188328 Chi(tan=-0.212557, x=-1, y=0.212557), iteration=3: -0.212556561670\n    test 2992 168 167.973906475806 Xi(tan=-0.213033, x=-1.96489, y=0.418585), iteration=3: -0.212556561670\n\n    test 2993 168 167.921493317051 Phi(tan=-0.213989, x=-0.977862, y=0.209252): -0.212556561670\n    test 2994 168 167.960806838131 Beta(tan=-0.213272, x=-0.978005, y=0.208581): -0.212556561670\n    test 2995 168 168.000000000000 Theta(tan=-0.212557, x=-0.978148, y=0.207912): -0.212556561670\n    test 2996 168 167.980440972867 Mu(tan=-0.212913, x=-0.978077, y=0.208246): -0.212556561670\n    test 2997 168 167.999996188328 Chi(tan=-0.212557, x=-0.978148, y=0.207912): -0.212556561670\n    test 2998 168 167.973906475806 Xi(tan=-0.213033, x=-0.978053, y=0.208357): -0.212556561670\n\n    test 2999 175 174.966475056686 Phi(tan=-0.0880783, x=-0.996195, y=0.0877431): -0.087488663526\n    test 3000 175 174.983265245736 Beta(tan=-0.087783, x=-0.996195, y=0.0874489): -0.087488663526\n    test 3001 175 175.000000000000 Theta(tan=-0.0874887, x=-0.996195, y=0.0871557): -0.087488663526\n    test 3002 175 174.991649917523 Mu(tan=-0.0876355, x=-0.996182, y=0.0873009), iteration=3: -0.087488663526\n    test 3003 175 174.999999713957 Chi(tan=-0.0874887, x=-1, y=0.0874887), iteration=3: -0.087488663526\n    test 3004 175 174.988859535139 Xi(tan=-0.0876846, x=-2.0013, y=0.175483), iteration=2: -0.087488663526\n\n    test 3005 175 174.966475056686 Phi(tan=-0.0880783, x=-0.996144, y=0.0877386): -0.087488663526\n    test 3006 175 174.983265245736 Beta(tan=-0.087783, x=-0.996169, y=0.0874467): -0.087488663526\n    test 3007 175 175.000000000000 Theta(tan=-0.0874887, x=-0.996195, y=0.0871557): -0.087488663526\n    test 3008 175 174.991649917523 Mu(tan=-0.0876355, x=-0.996182, y=0.0873009): -0.087488663526\n    test 3009 175 174.999999713957 Chi(tan=-0.0874887, x=-0.996195, y=0.0871557): -0.087488663526\n    test 3010 175 174.988859535139 Xi(tan=-0.0876846, x=-0.996178, y=0.0873494): -0.087488663526\n\n    test 3011 182 182.013467936189 Phi(tan=0.0351561, x=-0.999391, y=-0.0351347): 0.034920769492\n    test 3012 182 182.006722688009 Beta(tan=0.0350382, x=-0.999391, y=-0.0350169): 0.034920769492\n    test 3013 182 182.000000000000 Theta(tan=0.0349208, x=-0.999391, y=-0.0348995): 0.034920769492\n    test 3014 182 182.003354305769 Mu(tan=0.0349794, x=-0.999389, y=-0.034958), iteration=3: 0.034920769492\n    test 3015 182 182.000000018425 Chi(tan=0.0349208, x=-1, y=-0.0349208), iteration=2: 0.034920769492\n    test 3016 182 182.004475278247 Xi(tan=0.034999, x=-2.00775, y=-0.0702692), iteration=3: 0.034920769492\n\n    test 3017 182 182.013467936189 Phi(tan=0.0351561, x=-0.999383, y=-0.0351344): 0.034920769492\n    test 3018 182 182.006722688009 Beta(tan=0.0350382, x=-0.999387, y=-0.0350168): 0.034920769492\n    test 3019 182 182.000000000000 Theta(tan=0.0349208, x=-0.999391, y=-0.0348995): 0.034920769492\n    test 3020 182 182.003354305769 Mu(tan=0.0349794, x=-0.999389, y=-0.034958): 0.034920769492\n    test 3021 182 182.000000018425 Chi(tan=0.0349208, x=-0.999391, y=-0.0348995): 0.034920769492\n    test 3022 182 182.004475278247 Xi(tan=0.034999, x=-0.999388, y=-0.0349776): 0.034920769492\n\n    test 3023 189 189.059652780362 Phi(tan=0.159452, x=-0.987688, y=-0.157489): 0.158384440325\n    test 3024 189 189.029778772560 Beta(tan=0.158917, x=-0.987688, y=-0.156961): 0.158384440325\n    test 3025 189 189.000000000000 Theta(tan=0.158384, x=-0.987688, y=-0.156434): 0.158384440325\n    test 3026 189 189.014859673134 Mu(tan=0.15865, x=-0.987648, y=-0.156691), iteration=2: 0.158384440325\n    test 3027 189 189.000001639674 Chi(tan=0.158384, x=-1, y=-0.158384), iteration=3: 0.158384440325\n    test 3028 189 189.019824807860 Xi(tan=0.158739, x=-1.98414, y=-0.31496), iteration=3: 0.158384440325\n\n    test 3029 189 189.059652780362 Phi(tan=0.159452, x=-0.987525, y=-0.157463): 0.158384440325\n    test 3030 189 189.029778772560 Beta(tan=0.158917, x=-0.987607, y=-0.156948): 0.158384440325\n    test 3031 189 189.000000000000 Theta(tan=0.158384, x=-0.987688, y=-0.156434): 0.158384440325\n    test 3032 189 189.014859673134 Mu(tan=0.15865, x=-0.987648, y=-0.156691): 0.158384440325\n    test 3033 189 189.000001639674 Chi(tan=0.158384, x=-0.987688, y=-0.156434): 0.158384440325\n    test 3034 189 189.019824807860 Xi(tan=0.158739, x=-0.987634, y=-0.156776): 0.158384440325\n\n    test 3035 196 196.102260292825 Phi(tan=0.288678, x=-0.961262, y=-0.277495): 0.286745385759\n    test 3036 196 196.051057415277 Beta(tan=0.28771, x=-0.961262, y=-0.276565): 0.286745385759\n    test 3037 196 196.000000000000 Theta(tan=0.286745, x=-0.961262, y=-0.275637): 0.286745385759\n    test 3038 196 196.025483317057 Mu(tan=0.287227, x=-0.961139, y=-0.276065), iteration=2: 0.286745385759\n    test 3039 196 196.000008725999 Chi(tan=0.286746, x=-1, y=-0.286746), iteration=2: 0.286745385759\n    test 3040 196 196.033995121177 Xi(tan=0.287388, x=-1.93083, y=-0.554896), iteration=2: 0.286745385759\n\n    test 3041 196 196.102260292825 Phi(tan=0.288678, x=-0.960768, y=-0.277353): 0.286745385759\n    test 3042 196 196.051057415277 Beta(tan=0.28771, x=-0.961016, y=-0.276494): 0.286745385759\n    test 3043 196 196.000000000000 Theta(tan=0.286745, x=-0.961262, y=-0.275637): 0.286745385759\n    test 3044 196 196.025483317057 Mu(tan=0.287227, x=-0.961139, y=-0.276065): 0.286745385759\n    test 3045 196 196.000008725999 Chi(tan=0.286746, x=-0.961262, y=-0.275638): 0.286745385759\n    test 3046 196 196.033995121177 Xi(tan=0.287388, x=-0.961098, y=-0.276208): 0.286745385759\n\n    test 3047 203 203.138741606579 Phi(tan=0.427336, x=-0.920505, y=-0.393364): 0.424474816210\n    test 3048 203 203.069290086312 Beta(tan=0.425903, x=-0.920505, y=-0.392046): 0.424474816210\n    test 3049 203 203.000000000000 Theta(tan=0.424475, x=-0.920505, y=-0.390731): 0.424474816210\n    test 3050 203 203.034594657995 Mu(tan=0.425188, x=-0.920269, y=-0.391287), iteration=2: 0.424474816210\n    test 3051 203 203.000023787567 Chi(tan=0.424475, x=-1, y=-0.424475), iteration=2: 0.424474816210\n    test 3052 203 203.046143605881 Xi(tan=0.425426, x=-1.84864, y=-0.78646), iteration=2: 0.424474816210\n\n    test 3053 203 203.138741606579 Phi(tan=0.427336, x=-0.919556, y=-0.392959): 0.424474816210\n    test 3054 203 203.069290086312 Beta(tan=0.425903, x=-0.920032, y=-0.391844): 0.424474816210\n    test 3055 203 203.000000000000 Theta(tan=0.424475, x=-0.920505, y=-0.390731): 0.424474816210\n    test 3056 203 203.034594657995 Mu(tan=0.425188, x=-0.920269, y=-0.391287): 0.424474816210\n    test 3057 203 203.000023787567 Chi(tan=0.424475, x=-0.920505, y=-0.390732): 0.424474816210\n    test 3058 203 203.046143605881 Xi(tan=0.425426, x=-0.92019, y=-0.391472): 0.424474816210\n\n    test 3059 210 210.166923849507 Phi(tan=0.581241, x=-0.866025, y=-0.50337): 0.577350269190\n    test 3060 210 210.083392202979 Beta(tan=0.579293, x=-0.866025, y=-0.501682): 0.577350269190\n    test 3061 210 210.000000000000 Theta(tan=0.57735, x=-0.866025, y=-0.5): 0.577350269190\n    test 3062 210 210.041652569165 Mu(tan=0.57832, x=-0.865662, y=-0.500629), iteration=3: 0.577350269190\n    test 3063 210 210.000046858553 Chi(tan=0.577351, x=-1, y=-0.577351), iteration=2: 0.577350269190\n    test 3064 210 210.055548278686 Xi(tan=0.578644, x=-1.73885, y=-1.00618), iteration=3: 0.577350269190\n\n    test 3065 210 210.166923849507 Phi(tan=0.581241, x=-0.864565, y=-0.502521): 0.577350269190\n    test 3066 210 210.083392202979 Beta(tan=0.579293, x=-0.865297, y=-0.50126): 0.577350269190\n    test 3067 210 210.000000000000 Theta(tan=0.57735, x=-0.866025, y=-0.5): 0.577350269190\n    test 3068 210 210.041652569165 Mu(tan=0.57832, x=-0.865662, y=-0.500629): 0.577350269190\n    test 3069 210 210.000046858553 Chi(tan=0.577351, x=-0.866025, y=-0.500001): 0.577350269190\n    test 3070 210 210.055548278686 Xi(tan=0.578644, x=-0.86554, y=-0.500839): 0.577350269190\n\n    test 3071 217 217.185140504831 Phi(tan=0.758633, x=-0.798636, y=-0.605871): 0.753554050103\n    test 3072 217 217.092527888642 Beta(tan=0.756089, x=-0.798636, y=-0.60384): 0.753554050103\n    test 3073 217 217.000000000000 Theta(tan=0.753554, x=-0.798636, y=-0.601815): 0.753554050103\n    test 3074 217 217.046237489147 Mu(tan=0.75482, x=-0.79815, y=-0.602459), iteration=2: 0.753554050103\n    test 3075 217 217.000075282212 Chi(tan=0.753556, x=-1, y=-0.753556), iteration=3: 0.753554050103\n    test 3076 217 217.061650740215 Xi(tan=0.755242, x=-1.60314, y=-1.21076), iteration=2: 0.753554050103\n\n    test 3077 217 217.185140504831 Phi(tan=0.758633, x=-0.796687, y=-0.604393): 0.753554050103\n    test 3078 217 217.092527888642 Beta(tan=0.756089, x=-0.797663, y=-0.603104): 0.753554050103\n    test 3079 217 217.000000000000 Theta(tan=0.753554, x=-0.798636, y=-0.601815): 0.753554050103\n    test 3080 217 217.046237489147 Mu(tan=0.75482, x=-0.79815, y=-0.602459): 0.753554050103\n    test 3081 217 217.000075282212 Chi(tan=0.753556, x=-0.798635, y=-0.601816): 0.753554050103\n    test 3082 217 217.061650740215 Xi(tan=0.755242, x=-0.797987, y=-0.602674): 0.753554050103\n\n    test 3083 224 224.192328540028 Phi(tan=0.972197, x=-0.71934, y=-0.69934): 0.965688774807\n    test 3084 224 224.096159176144 Beta(tan=0.968937, x=-0.71934, y=-0.696995): 0.965688774807\n    test 3085 224 224.000000000000 Theta(tan=0.965689, x=-0.71934, y=-0.694658): 0.965688774807\n    test 3086 224 224.048076415859 Mu(tan=0.967312, x=-0.718757, y=-0.695262), iteration=3: 0.965688774807\n    test 3087 224 224.000104179110 Chi(tan=0.965692, x=-1, y=-0.965692), iteration=3: 0.965688774807\n    test 3088 224 224.064089278462 Xi(tan=0.967853, x=-1.44358, y=-1.39717), iteration=3: 0.965688774807\n\n    test 3089 224 224.192328540028 Phi(tan=0.972197, x=-0.717004, y=-0.697069): 0.965688774807\n    test 3090 224 224.096159176144 Beta(tan=0.968937, x=-0.718173, y=-0.695865): 0.965688774807\n    test 3091 224 224.000000000000 Theta(tan=0.965689, x=-0.71934, y=-0.694658): 0.965688774807\n    test 3092 224 224.048076415859 Mu(tan=0.967312, x=-0.718757, y=-0.695262): 0.965688774807\n    test 3093 224 224.000104179110 Chi(tan=0.965692, x=-0.719339, y=-0.69466): 0.965688774807\n    test 3094 224 224.064089278462 Xi(tan=0.967853, x=-0.718562, y=-0.695463): 0.965688774807\n\n    test 3095 231 231.188087005479 Phi(tan=1.24322, x=-0.62932, y=-0.782384): 1.234897156535\n    test 3096 231 231.094076843128 Beta(tan=1.23905, x=-0.62932, y=-0.77976): 1.234897156535\n    test 3097 231 231.000000000000 Theta(tan=1.2349, x=-0.62932, y=-0.777146): 1.234897156535\n    test 3098 231 231.047059277252 Mu(tan=1.23697, x=-0.628682, y=-0.777663), iteration=3: 1.234897156535\n    test 3099 231 231.000127493216 Chi(tan=1.2349, x=-1, y=-1.2349), iteration=3: 1.234897156535\n    test 3100 231 231.062720168394 Xi(tan=1.23766, x=-1.26258, y=-1.56265), iteration=3: 1.234897156535\n\n    test 3101 231 231.188087005479 Phi(tan=1.24322, x=-0.626766, y=-0.779208): 1.234897156535\n    test 3102 231 231.094076843128 Beta(tan=1.23905, x=-0.628044, y=-0.778178): 1.234897156535\n    test 3103 231 231.000000000000 Theta(tan=1.2349, x=-0.62932, y=-0.777146): 1.234897156535\n    test 3104 231 231.047059277252 Mu(tan=1.23697, x=-0.628682, y=-0.777663): 1.234897156535\n    test 3105 231 231.000127493216 Chi(tan=1.2349, x=-0.629319, y=-0.777147): 1.234897156535\n    test 3106 231 231.062720168394 Xi(tan=1.23766, x=-0.628469, y=-0.777834): 1.234897156535\n\n    test 3107 238 238.172694719424 Phi(tan=1.61112, x=-0.529919, y=-0.853764): 1.600334529041\n    test 3108 238 238.086411314589 Beta(tan=1.60572, x=-0.529919, y=-0.850901): 1.600334529041\n    test 3109 238 238.000000000000 Theta(tan=1.60033, x=-0.529919, y=-0.848048): 1.600334529041\n    test 3110 238 238.043245666868 Mu(tan=1.60303, x=-0.529279, y=-0.848448), iteration=3: 1.600334529041\n    test 3111 238 238.000139371942 Chi(tan=1.60034, x=-1, y=-1.60034), iteration=3: 1.600334529041\n    test 3112 238 238.057625944391 Xi(tan=1.60392, x=-1.06288, y=-1.70478), iteration=3: 1.600334529041\n\n    test 3113 238 238.172694719424 Phi(tan=1.61112, x=-0.527361, y=-0.849641): 1.600334529041\n    test 3114 238 238.086411314589 Beta(tan=1.60572, x=-0.52864, y=-0.848846): 1.600334529041\n    test 3115 238 238.000000000000 Theta(tan=1.60033, x=-0.529919, y=-0.848048): 1.600334529041\n    test 3116 238 238.043245666868 Mu(tan=1.60303, x=-0.529279, y=-0.848448): 1.600334529041\n    test 3117 238 238.000139371942 Chi(tan=1.60034, x=-0.529917, y=-0.848049): 1.600334529041\n    test 3118 238 238.057625944391 Xi(tan=1.60392, x=-0.529066, y=-0.848581): 1.600334529041\n\n    test 3119 245 245.147087439517 Phi(tan=2.15896, x=-0.422618, y=-0.912416): 2.144506920510\n    test 3120 245 245.073623344306 Beta(tan=2.15172, x=-0.422618, y=-0.909357): 2.144506920510\n    test 3121 245 245.000000000000 Theta(tan=2.14451, x=-0.422618, y=-0.906308): 2.144506920510\n    test 3122 245 245.036861496413 Mu(tan=2.14811, x=-0.422035, y=-0.906579), iteration=3: 2.144506920510\n    test 3123 245 245.000135557054 Chi(tan=2.14452, x=-1, y=-2.14452), iteration=3: 2.144506920510\n    test 3124 245 245.049110215384 Xi(tan=2.14931, x=-0.847471, y=-1.82148), iteration=3: 2.144506920510\n\n    test 3125 245 245.147087439517 Phi(tan=2.15896, x=-0.42029, y=-0.90739): 2.144506920510\n    test 3126 245 245.073623344306 Beta(tan=2.15172, x=-0.421453, y=-0.90685): 2.144506920510\n    test 3127 245 245.000000000000 Theta(tan=2.14451, x=-0.422618, y=-0.906308): 2.144506920510\n    test 3128 245 245.036861496413 Mu(tan=2.14811, x=-0.422035, y=-0.906579): 2.144506920510\n    test 3129 245 245.000135557054 Chi(tan=2.14452, x=-0.422616, y=-0.906309): 2.144506920510\n    test 3130 245 245.049110215384 Xi(tan=2.14931, x=-0.421841, y=-0.90667): 2.144506920510\n\n    test 3131 252 252.112797334151 Phi(tan=3.09843, x=-0.309017, y=-0.957466): 3.077683537175\n    test 3132 252 252.056475395211 Beta(tan=3.08804, x=-0.309017, y=-0.954256): 3.077683537175\n    test 3133 252 252.000000000000 Theta(tan=3.07768, x=-0.309017, y=-0.951057): 3.077683537175\n    test 3134 252 252.028285720189 Mu(tan=3.08286, x=-0.308547, y=-0.951209), iteration=3: 3.077683537175\n    test 3135 252 252.000114461007 Chi(tan=3.0777, x=-1, y=-3.0777), iteration=3: 3.077683537175\n    test 3136 252 252.037679397301 Xi(tan=3.08458, x=-0.619552, y=-1.91106), iteration=3: 3.077683537175\n\n    test 3137 252 252.112797334151 Phi(tan=3.09843, x=-0.307144, y=-0.951663): 3.077683537175\n    test 3138 252 252.056475395211 Beta(tan=3.08804, x=-0.308079, y=-0.951361): 3.077683537175\n    test 3139 252 252.000000000000 Theta(tan=3.07768, x=-0.309017, y=-0.951057): 3.077683537175\n    test 3140 252 252.028285720189 Mu(tan=3.08286, x=-0.308547, y=-0.951209): 3.077683537175\n    test 3141 252 252.000114461007 Chi(tan=3.0777, x=-0.309015, y=-0.951057): 3.077683537175\n    test 3142 252 252.037679397301 Xi(tan=3.08458, x=-0.308391, y=-0.95126): 3.077683537175\n\n    test 3143 259 259.071859476624 Phi(tan=5.17923, x=-0.190809, y=-0.988243): 5.144554015970\n    test 3144 259 259.035985707307 Beta(tan=5.16186, x=-0.190809, y=-0.984929): 5.144554015970\n    test 3145 259 259.000000000000 Theta(tan=5.14455, x=-0.190809, y=-0.981627): 5.144554015970\n    test 3146 259 259.018027889335 Mu(tan=5.15321, x=-0.1905, y=-0.981687), iteration=3: 5.144554015970\n    test 3147 259 259.000077676273 Chi(tan=5.14459, x=-1, y=-5.14459), iteration=3: 5.144554015970\n    test 3148 259 259.024012504065 Xi(tan=5.15609, x=-0.382505, y=-1.97223), iteration=2: 5.144554015970\n\n    test 3149 259 259.071859476624 Phi(tan=5.17923, x=-0.189578, y=-0.981866): 5.144554015970\n    test 3150 259 259.035985707307 Beta(tan=5.16186, x=-0.190192, y=-0.981747): 5.144554015970\n    test 3151 259 259.000000000000 Theta(tan=5.14455, x=-0.190809, y=-0.981627): 5.144554015970\n    test 3152 259 259.018027889335 Mu(tan=5.15321, x=-0.1905, y=-0.981687): 5.144554015970\n    test 3153 259 259.000077676273 Chi(tan=5.14459, x=-0.190808, y=-0.981627): 5.144554015970\n    test 3154 259 259.024012504065 Xi(tan=5.15609, x=-0.190398, y=-0.981707): 5.144554015970\n\n    test 3155 266 266.026691465344 Phi(tan=14.397, x=-0.0697565, y=-1.00429): 14.300666256712\n    test 3156 266 266.013367926454 Beta(tan=14.3488, x=-0.0697565, y=-1.00092): 14.300666256712\n    test 3157 266 266.000000000000 Theta(tan=14.3007, x=-0.0697565, y=-0.997564): 14.300666256712\n    test 3158 266 266.006697857429 Mu(tan=14.3247, x=-0.0696399, y=-0.997572), iteration=2: 14.300666256712\n    test 3159 266 266.000029795215 Chi(tan=14.3008, x=-1, y=-14.3008), iteration=3: 14.300666256712\n    test 3160 266 266.008920822994 Xi(tan=14.3327, x=-0.139827, y=-2.00411), iteration=3: 14.300666256712\n\n    test 3161 266 266.026691465344 Phi(tan=14.397, x=-0.0692917, y=-0.997596): 14.300666256712\n    test 3162 266 266.013367926454 Beta(tan=14.3488, x=-0.0695237, y=-0.99758): 14.300666256712\n    test 3163 266 266.000000000000 Theta(tan=14.3007, x=-0.0697565, y=-0.997564): 14.300666256712\n    test 3164 266 266.006697857429 Mu(tan=14.3247, x=-0.0696399, y=-0.997572): 14.300666256712\n    test 3165 266 266.000029795215 Chi(tan=14.3008, x=-0.069756, y=-0.997564): 14.300666256712\n    test 3166 266 266.008920822994 Xi(tan=14.3327, x=-0.0696012, y=-0.997575): 14.300666256712\n\n    test 3167 273 272.979953179188 Phi(tan=-19.2097, x=0.052336, y=-1.00536): -19.081136687728\n    test 3168 273 272.989959849669 Beta(tan=-19.1453, x=0.052336, y=-1.00199): -19.081136687728\n    test 3169 273 273.000000000000 Theta(tan=-19.0811, x=0.052336, y=-0.99863): -19.081136687728\n    test 3170 273 272.994969444902 Mu(tan=-19.1132, x=0.0522483, y=-0.998634), iteration=3: -19.081136687728\n    test 3171 273 272.999977574321 Chi(tan=-19.0813, x=1.0, y=-19.0813), iteration=3: -19.081136687728\n    test 3172 273 272.993299868195 Xi(tan=-19.1239, x=0.104907, y=-2.00624), iteration=3: -19.081136687728\n\n    test 3173 273 272.979953179188 Phi(tan=-19.2097, x=0.0519865, y=-0.998648): -19.081136687728\n    test 3174 273 272.989959849669 Beta(tan=-19.1453, x=0.052161, y=-0.998639): -19.081136687728\n    test 3175 273 273.000000000000 Theta(tan=-19.0811, x=0.052336, y=-0.99863): -19.081136687728\n    test 3176 273 272.994969444902 Mu(tan=-19.1132, x=0.0522483, y=-0.998634): -19.081136687728\n    test 3177 273 272.999977574321 Chi(tan=-19.0813, x=0.0523356, y=-0.99863): -19.081136687728\n    test 3178 273 272.993299868195 Xi(tan=-19.1239, x=0.0522192, y=-0.998636): -19.081136687728\n\n    test 3179 280 279.934394210279 Phi(tan=-5.7095, x=0.173648, y=-0.991445): -5.671281819618\n    test 3180 280 279.967145322218 Beta(tan=-5.69036, x=0.173648, y=-0.988121): -5.671281819618\n    test 3181 280 280.000000000000 Theta(tan=-5.67128, x=0.173648, y=-0.984808): -5.671281819618\n    test 3182 280 279.983540245263 Mu(tan=-5.68082, x=0.173365, y=-0.984858), iteration=3: -5.671281819618\n    test 3183 280 279.999928623941 Chi(tan=-5.67132, x=1.0, y=-5.67132), iteration=3: -5.671281819618\n    test 3184 280 279.978076430885 Xi(tan=-5.684, x=0.348099, y=-1.97859), iteration=2: -5.671281819618\n\n    test 3185 280 279.934394210279 Phi(tan=-5.7095, x=0.17252, y=-0.985006): -5.671281819618\n    test 3186 280 279.967145322218 Beta(tan=-5.69036, x=0.173083, y=-0.984907): -5.671281819618\n    test 3187 280 280.000000000000 Theta(tan=-5.67128, x=0.173648, y=-0.984808): -5.671281819618\n    test 3188 280 279.983540245263 Mu(tan=-5.68082, x=0.173365, y=-0.984858): -5.671281819618\n    test 3189 280 279.999928623941 Chi(tan=-5.67132, x=0.173647, y=-0.984808): -5.671281819618\n    test 3190 280 279.978076430885 Xi(tan=-5.684, x=0.173271, y=-0.984874): -5.671281819618\n\n    test 3191 287 286.892696785077 Phi(tan=-3.2929, x=0.292372, y=-0.96275): -3.270852618484\n    test 3192 287 286.946273607855 Beta(tan=-3.28186, x=0.292372, y=-0.959522): -3.270852618484\n    test 3193 287 287.000000000000 Theta(tan=-3.27085, x=0.292372, y=-0.956305): -3.270852618484\n    test 3194 287 286.973089996409 Mu(tan=-3.27636, x=0.291923, y=-0.956442), iteration=3: -3.270852618484\n    test 3195 287 286.999889910594 Chi(tan=-3.27088, x=1.0, y=-3.27088), iteration=3: -3.270852618484\n    test 3196 287 286.964153811789 Xi(tan=-3.27819, x=0.586167, y=-1.92156), iteration=3: -3.270852618484\n\n    test 3197 287 286.892696785077 Phi(tan=-3.2929, x=0.29058, y=-0.956851): -3.270852618484\n    test 3198 287 286.946273607855 Beta(tan=-3.28186, x=0.291475, y=-0.956578): -3.270852618484\n    test 3199 287 287.000000000000 Theta(tan=-3.27085, x=0.292372, y=-0.956305): -3.270852618484\n    test 3200 287 286.973089996409 Mu(tan=-3.27636, x=0.291923, y=-0.956442): -3.270852618484\n    test 3201 287 286.999889910594 Chi(tan=-3.27088, x=0.29237, y=-0.956305): -3.270852618484\n    test 3202 287 286.964153811789 Xi(tan=-3.27819, x=0.291773, y=-0.956487): -3.270852618484\n\n    test 3203 294 293.857322070702 Phi(tan=-2.26117, x=0.406737, y=-0.919702): -2.246036773904\n    test 3204 294 293.928580656019 Beta(tan=-2.25359, x=0.406737, y=-0.916619): -2.246036773904\n    test 3205 294 294.000000000000 Theta(tan=-2.24604, x=0.406737, y=-0.913545): -2.246036773904\n    test 3206 294 293.964240029727 Mu(tan=-2.24981, x=0.406166, y=-0.913799), iteration=2: -2.246036773904\n    test 3207 294 293.999866400612 Chi(tan=-2.24605, x=1.0, y=-2.24605), iteration=3: -2.246036773904\n    test 3208 294 293.952358418734 Xi(tan=-2.25107, x=0.815599, y=-1.83597), iteration=2: -2.246036773904\n\n    test 3209 294 293.857322070702 Phi(tan=-2.26117, x=0.40446, y=-0.914555): -2.246036773904\n    test 3210 294 293.928580656019 Beta(tan=-2.25359, x=0.405598, y=-0.914052): -2.246036773904\n    test 3211 294 294.000000000000 Theta(tan=-2.24604, x=0.406737, y=-0.913545): -2.246036773904\n    test 3212 294 293.964240029727 Mu(tan=-2.24981, x=0.406166, y=-0.913799): -2.246036773904\n    test 3213 294 293.999866400612 Chi(tan=-2.24605, x=0.406735, y=-0.913546): -2.246036773904\n    test 3214 294 293.952358418734 Xi(tan=-2.25107, x=0.405977, y=-0.913883): -2.246036773904\n\n    test 3215 301 300.830367699497 Phi(tan=-1.6755, x=0.515038, y=-0.862944): -1.664279482351\n    test 3216 301 300.915116613042 Beta(tan=-1.66988, x=0.515038, y=-0.860051): -1.664279482351\n    test 3217 301 301.000000000000 Theta(tan=-1.66428, x=0.515038, y=-0.857167): -1.664279482351\n    test 3218 301 300.957516242525 Mu(tan=-1.66708, x=0.514402, y=-0.857549), iteration=3: -1.664279482351\n    test 3219 301 300.999860142450 Chi(tan=-1.66429, x=1.0, y=-1.66429), iteration=3: -1.664279482351\n    test 3220 301 300.943390839029 Xi(tan=-1.66801, x=1.033, y=-1.72305), iteration=2: -1.664279482351\n\n    test 3221 301 300.830367699497 Phi(tan=-1.6755, x=0.512498, y=-0.858688): -1.664279482351\n    test 3222 301 300.915116613042 Beta(tan=-1.66988, x=0.513768, y=-0.857929): -1.664279482351\n    test 3223 301 301.000000000000 Theta(tan=-1.66428, x=0.515038, y=-0.857167): -1.664279482351\n    test 3224 301 300.957516242525 Mu(tan=-1.66708, x=0.514402, y=-0.857549): -1.664279482351\n    test 3225 301 300.999860142450 Chi(tan=-1.66429, x=0.515036, y=-0.857169): -1.664279482351\n    test 3226 301 300.943390839029 Xi(tan=-1.66801, x=0.514191, y=-0.857676): -1.664279482351\n\n    test 3227 308 307.813444106313 Phi(tan=-1.28857, x=0.615661, y=-0.793322): -1.279941632193\n    test 3228 308 307.906683665119 Beta(tan=-1.28425, x=0.615661, y=-0.790662): -1.279941632193\n    test 3229 308 308.000000000000 Theta(tan=-1.27994, x=0.615661, y=-0.788011): -1.279941632193\n    test 3230 308 307.953317819859 Mu(tan=-1.28209, x=0.615019, y=-0.788512), iteration=3: -1.279941632193\n    test 3231 308 307.999869987124 Chi(tan=-1.27995, x=1.0, y=-1.27995), iteration=2: -1.279941632193\n    test 3232 308 307.937784253619 Xi(tan=-1.28281, x=1.23513, y=-1.58444), iteration=3: -1.279941632193\n\n    test 3233 308 307.813444106313 Phi(tan=-1.28857, x=0.613092, y=-0.790011): -1.279941632193\n    test 3234 308 307.906683665119 Beta(tan=-1.28425, x=0.614377, y=-0.789012): -1.279941632193\n    test 3235 308 308.000000000000 Theta(tan=-1.27994, x=0.615661, y=-0.788011): -1.279941632193\n    test 3236 308 307.953317819859 Mu(tan=-1.28209, x=0.615019, y=-0.788512): -1.279941632193\n    test 3237 308 307.999869987124 Chi(tan=-1.27995, x=0.61566, y=-0.788012): -1.279941632193\n    test 3238 308 307.937784253619 Xi(tan=-1.28281, x=0.614805, y=-0.788679): -1.279941632193\n\n    test 3239 315 314.807576784018 Phi(tan=-1.00674, x=0.707107, y=-0.711872): -1.000000000000\n    test 3240 315 314.903787849420 Beta(tan=-1.00336, x=0.707107, y=-0.709486): -1.000000000000\n    test 3241 315 315.000000000000 Theta(tan=-1, x=0.707107, y=-0.707107): -1.000000000000\n    test 3242 315 314.951893574286 Mu(tan=-1.00168, x=0.706513, y=-0.7077), iteration=2: -1.000000000000\n    test 3243 315 314.999892003023 Chi(tan=-1, x=1.0, y=-1), iteration=3: -1.000000000000\n    test 3244 315 314.935872656555 Xi(tan=-1.00224, x=1.41897, y=-1.42215), iteration=3: -1.000000000000\n\n    test 3245 315 314.807576784018 Phi(tan=-1.00674, x=0.704728, y=-0.709478): -1.000000000000\n    test 3246 315 314.903787849420 Beta(tan=-1.00336, x=0.705918, y=-0.708293): -1.000000000000\n    test 3247 315 315.000000000000 Theta(tan=-1, x=0.707107, y=-0.707107): -1.000000000000\n    test 3248 315 314.951893574286 Mu(tan=-1.00168, x=0.706513, y=-0.7077): -1.000000000000\n    test 3249 315 314.999892003023 Chi(tan=-1, x=0.707105, y=-0.707108): -1.000000000000\n    test 3250 315 314.935872656555 Xi(tan=-1.00224, x=0.706315, y=-0.707898): -1.000000000000\n\n    test 3251 322 321.813140716820 Phi(tan=-0.786551, x=0.788011, y=-0.619811): -0.781285626507\n    test 3252 322 321.906607816751 Beta(tan=-0.783914, x=0.788011, y=-0.617733): -0.781285626507\n    test 3253 322 322.000000000000 Theta(tan=-0.781286, x=0.788011, y=-0.615661): -0.781285626507\n    test 3254 322 321.953327300103 Mu(tan=-0.782598, x=0.787509, y=-0.616303), iteration=2: -0.781285626507\n    test 3255 322 321.999920484161 Chi(tan=-0.781288, x=1.0, y=-0.781288), iteration=2: -0.781285626507\n    test 3256 322 321.937770794620 Xi(tan=-0.783036, x=1.58175, y=-1.23857), iteration=3: -0.781285626507\n\n    test 3257 322 321.813140716820 Phi(tan=-0.786551, x=0.785999, y=-0.618228): -0.781285626507\n    test 3258 322 321.906607816751 Beta(tan=-0.783914, x=0.787006, y=-0.616945): -0.781285626507\n    test 3259 322 322.000000000000 Theta(tan=-0.781286, x=0.788011, y=-0.615661): -0.781285626507\n    test 3260 322 321.953327300103 Mu(tan=-0.782598, x=0.787509, y=-0.616303): -0.781285626507\n    test 3261 322 321.999920484161 Chi(tan=-0.781288, x=0.78801, y=-0.615663): -0.781285626507\n    test 3262 322 321.937770794620 Xi(tan=-0.783036, x=0.787342, y=-0.616517): -0.781285626507\n\n    test 3263 329 328.829831943495 Phi(tan=-0.60491, x=0.857167, y=-0.518509): -0.600860619028\n    test 3264 329 328.914982672653 Beta(tan=-0.602882, x=0.857167, y=-0.516771): -0.600860619028\n    test 3265 329 329.000000000000 Theta(tan=-0.600861, x=0.857167, y=-0.515038): -0.600860619028\n    test 3266 329 328.957532983891 Mu(tan=-0.60187, x=0.856785, y=-0.515673), iteration=2: -0.600860619028\n    test 3267 329 328.999949315138 Chi(tan=-0.600862, x=1.0, y=-0.600862), iteration=3: -0.600860619028\n    test 3268 329 328.943367072053 Xi(tan=-0.602207, x=1.72101, y=-1.0364), iteration=2: -0.600860619028\n\n    test 3269 329 328.829831943495 Phi(tan=-0.60491, x=0.855634, y=-0.517582): -0.600860619028\n    test 3270 329 328.914982672653 Beta(tan=-0.602882, x=0.856402, y=-0.516309): -0.600860619028\n    test 3271 329 329.000000000000 Theta(tan=-0.600861, x=0.857167, y=-0.515038): -0.600860619028\n    test 3272 329 328.957532983891 Mu(tan=-0.60187, x=0.856785, y=-0.515673): -0.600860619028\n    test 3273 329 328.999949315138 Chi(tan=-0.600862, x=0.857167, y=-0.515039): -0.600860619028\n    test 3274 329 328.943367072053 Xi(tan=-0.602207, x=0.856658, y=-0.515885): -0.600860619028\n\n    test 3275 336 335.856679369063 Phi(tan=-0.448229, x=0.913545, y=-0.409478): -0.445228685309\n    test 3276 336 335.928419979560 Beta(tan=-0.446726, x=0.913545, y=-0.408105): -0.445228685309\n    test 3277 336 336.000000000000 Theta(tan=-0.445229, x=0.913545, y=-0.406737): -0.445228685309\n    test 3278 336 335.964260113259 Mu(tan=-0.445976, x=0.913292, y=-0.407306), iteration=3: -0.445228685309\n    test 3279 336 335.999973373434 Chi(tan=-0.445229, x=1.0, y=-0.445229), iteration=3: -0.445228685309\n    test 3280 336 335.952329907972 Xi(tan=-0.446226, x=1.83461, y=-0.818652), iteration=3: -0.445228685309\n\n    test 3281 336 335.856679369063 Phi(tan=-0.448229, x=0.912525, y=-0.409021): -0.445228685309\n    test 3282 336 335.928419979560 Beta(tan=-0.446726, x=0.913037, y=-0.407878): -0.445228685309\n    test 3283 336 336.000000000000 Theta(tan=-0.445229, x=0.913545, y=-0.406737): -0.445228685309\n    test 3284 336 335.964260113259 Mu(tan=-0.445976, x=0.913292, y=-0.407306): -0.445228685309\n    test 3285 336 335.999973373434 Chi(tan=-0.445229, x=0.913545, y=-0.406737): -0.445228685309\n    test 3286 336 335.952329907972 Xi(tan=-0.446226, x=0.913207, y=-0.407497): -0.445228685309\n\n    test 3287 343 342.892097596857 Phi(tan=-0.307791, x=0.956305, y=-0.294342): -0.305730681459\n    test 3288 343 342.946123810430 Beta(tan=-0.306759, x=0.956305, y=-0.293355): -0.305730681459\n    test 3289 343 343.000000000000 Theta(tan=-0.305731, x=0.956305, y=-0.292372): -0.305730681459\n    test 3290 343 342.973108720519 Mu(tan=-0.306244, x=0.956167, y=-0.292821), iteration=2: -0.305730681459\n    test 3291 343 342.999989640752 Chi(tan=-0.305731, x=1.0, y=-0.305731), iteration=3: -0.305730681459\n    test 3292 343 342.964127231800 Xi(tan=-0.306415, x=1.92083, y=-0.588572), iteration=2: -0.305730681459\n\n    test 3293 343 342.892097596857 Phi(tan=-0.307791, x=0.955752, y=-0.294172): -0.305730681459\n    test 3294 343 342.946123810430 Beta(tan=-0.306759, x=0.956029, y=-0.293271): -0.305730681459\n    test 3295 343 343.000000000000 Theta(tan=-0.305731, x=0.956305, y=-0.292372): -0.305730681459\n    test 3296 343 342.973108720519 Mu(tan=-0.306244, x=0.956167, y=-0.292821): -0.305730681459\n    test 3297 343 342.999989640752 Chi(tan=-0.305731, x=0.956305, y=-0.292372): -0.305730681459\n    test 3298 343 342.964127231800 Xi(tan=-0.306415, x=0.956122, y=-0.29297): -0.305730681459\n\n    test 3299 350 349.933978809966 Phi(tan=-0.177515, x=0.984808, y=-0.174818): -0.176326980708\n    test 3300 350 349.967041472227 Beta(tan=-0.17692, x=0.984808, y=-0.174232): -0.176326980708\n    test 3301 350 350.000000000000 Theta(tan=-0.176327, x=0.984808, y=-0.173648): -0.176326980708\n    test 3302 350 349.983553226337 Mu(tan=-0.176623, x=0.984758, y=-0.173931), iteration=3: -0.176326980708\n    test 3303 350 349.999997763945 Chi(tan=-0.176327, x=1.0, y=-0.176327), iteration=2: -0.176326980708\n    test 3304 350 349.978058004001 Xi(tan=-0.176722, x=1.97833, y=-0.349613), iteration=3: -0.176326980708\n\n    test 3305 350 349.933978809966 Phi(tan=-0.177515, x=0.984607, y=-0.174783): -0.176326980708\n    test 3306 350 349.967041472227 Beta(tan=-0.17692, x=0.984708, y=-0.174215): -0.176326980708\n    test 3307 350 350.000000000000 Theta(tan=-0.176327, x=0.984808, y=-0.173648): -0.176326980708\n    test 3308 350 349.983553226337 Mu(tan=-0.176623, x=0.984758, y=-0.173931): -0.176326980708\n    test 3309 350 349.999997763945 Chi(tan=-0.176327, x=0.984808, y=-0.173648): -0.176326980708\n    test 3310 350 349.978058004001 Xi(tan=-0.176722, x=0.984741, y=-0.174025): -0.176326980708\n\n    test 3311 357 356.979818816318 Phi(tan=-0.052761, x=0.99863, y=-0.0526887): -0.052407779283\n    test 3312 357 356.989926259040 Beta(tan=-0.0525841, x=0.99863, y=-0.052512): -0.052407779283\n    test 3313 357 357.000000000000 Theta(tan=-0.0524078, x=0.99863, y=-0.052336): -0.052407779283\n    test 3314 357 356.994973643713 Mu(tan=-0.0524957, x=0.998625, y=-0.0524236), iteration=3: -0.052407779283\n    test 3315 357 356.999999937910 Chi(tan=-0.0524078, x=1.0, y=-0.0524078), iteration=3: -0.052407779283\n    test 3316 357 356.993293907994 Xi(tan=-0.0525251, x=2.00621, y=-0.105377), iteration=3: -0.052407779283\n\n    test 3317 357 356.979818816318 Phi(tan=-0.052761, x=0.998611, y=-0.0526877): -0.052407779283\n    test 3318 357 356.989926259040 Beta(tan=-0.0525841, x=0.99862, y=-0.0525115): -0.052407779283\n    test 3319 357 357.000000000000 Theta(tan=-0.0524078, x=0.99863, y=-0.052336): -0.052407779283\n    test 3320 357 356.994973643713 Mu(tan=-0.0524957, x=0.998625, y=-0.0524236): -0.052407779283\n    test 3321 357 356.999999937910 Chi(tan=-0.0524078, x=0.99863, y=-0.052336): -0.052407779283\n    test 3322 357 356.993293907994 Xi(tan=-0.0525251, x=0.998623, y=-0.0524528): -0.052407779283\n\n    test 3323  0 0.000000000000 Phi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 3324  0 0.000000000000 Beta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 3325  0 0.000000000000 Theta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 3326  0 0.000000000000 Mu(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 3327  0 0.000000000000 Chi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 3328  0 0.000000000000 Xi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n\n    test 3329  0 0.000000000000 Phi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 3330  0 0.000000000000 Beta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 3331  0 0.000000000000 Theta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 3332  0 0.000000000000 Mu(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 3333  0 0.000000000000 Chi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 3334  0 0.000000000000 Xi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n\n    test 3335  7 7.031115657726 Phi(tan=0.123336, x=1.0, y=0.123336): 0.122784560903\n    test 3336  7 7.007776446248 Beta(tan=0.122922, x=1.0, y=0.122922): 0.122784560903\n    test 3337  7 6.984513160948 Theta(tan=0.12251, x=1.0, y=0.12251): 0.122784560903\n    test 3338  7 6.996121115499 Mu(tan=0.122716, x=0.992554, y=0.121802), iteration=2: 0.122784560903\n    test 3339  7 6.984513934967 Chi(tan=0.12251, x=1.0, y=0.12251), iteration=3: 0.122784560903\n    test 3340  7 7.000000000000 Xi(tan=0.122785, x=0.992546, y=0.121869): 0.122784560903\n\n    test 3341  7 7.031115657726 Phi(tan=0.123336, x=0.99248, y=0.122408): 0.122784560903\n    test 3342  7 7.007776446248 Beta(tan=0.122922, x=0.99253, y=0.122004): 0.122784560903\n    test 3343  7 6.984513160948 Theta(tan=0.12251, x=0.992579, y=0.121601): 0.122784560903\n    test 3344  7 6.996121115499 Mu(tan=0.122716, x=0.992554, y=0.121802): 0.122784560903\n    test 3345  7 6.984513934967 Chi(tan=0.12251, x=0.992579, y=0.121601): 0.122784560903\n    test 3346  7 7.000000000000 Xi(tan=0.122785, x=0.992546, y=0.121869): 0.122784560903\n\n    test 3347 14 14.060369141975 Phi(tan=0.250447, x=1.0, y=0.250447): 0.249328002843\n    test 3348 14 14.015088387186 Beta(tan=0.249608, x=1.0, y=0.249608): 0.249328002843\n    test 3349 14 13.969941668301 Theta(tan=0.248771, x=1.0, y=0.248771): 0.249328002843\n    test 3350 14 13.992473204804 Mu(tan=0.249188, x=0.970327, y=0.241794), iteration=3: 0.249328002843\n    test 3351 14 13.969947587506 Chi(tan=0.248771, x=1.0, y=0.248771), iteration=3: 0.249328002843\n    test 3352 14 14.000000000000 Xi(tan=0.249328, x=0.970296, y=0.241922): 0.249328002843\n\n    test 3353 14 14.060369141975 Phi(tan=0.250447, x=0.97004, y=0.242944): 0.249328002843\n    test 3354 14 14.015088387186 Beta(tan=0.249608, x=0.970232, y=0.242177): 0.249328002843\n    test 3355 14 13.969941668301 Theta(tan=0.248771, x=0.970423, y=0.241413): 0.249328002843\n    test 3356 14 13.992473204803 Mu(tan=0.249188, x=0.970327, y=0.241794): 0.249328002843\n    test 3357 14 13.969947587506 Chi(tan=0.248771, x=0.970422, y=0.241413): 0.249328002843\n    test 3358 14 14.000000000000 Xi(tan=0.249328, x=0.970296, y=0.241922): 0.249328002843\n\n    test 3359 21 21.086012125911 Phi(tan=0.385587, x=1.0, y=0.385587): 0.383864035035\n    test 3360 21 21.021499506340 Beta(tan=0.384295, x=1.0, y=0.384295): 0.383864035035\n    test 3361 21 20.957147588487 Theta(tan=0.383006, x=1.0, y=0.383006): 0.383864035035\n    test 3362 21 20.989273394164 Mu(tan=0.383649, x=0.933648, y=0.358193), iteration=3: 0.383864035035\n    test 3363 21 20.957166102443 Chi(tan=0.383007, x=1.0, y=0.383007), iteration=2: 0.383864035035\n    test 3364 21 21.000000000000 Xi(tan=0.383864, x=0.93358, y=0.358368): 0.383864035035\n\n    test 3365 21 21.086012125911 Phi(tan=0.385587, x=0.933041, y=0.359769): 0.383864035035\n    test 3366 21 21.021499506340 Beta(tan=0.384295, x=0.933446, y=0.358718): 0.383864035035\n    test 3367 21 20.957147588487 Theta(tan=0.383006, x=0.933848, y=0.35767): 0.383864035035\n    test 3368 21 20.989273394164 Mu(tan=0.383649, x=0.933648, y=0.358193): 0.383864035035\n    test 3369 21 20.957166102443 Chi(tan=0.383007, x=0.933848, y=0.35767): 0.383864035035\n    test 3370 21 21.000000000000 Xi(tan=0.383864, x=0.93358, y=0.358368): 0.383864035035\n\n    test 3371 28 28.106516446309 Phi(tan=0.534096, x=1.0, y=0.534096): 0.531709431661\n    test 3372 28 28.026628049399 Beta(tan=0.532306, x=1.0, y=0.532306): 0.531709431661\n    test 3373 28 27.946889336829 Theta(tan=0.530521, x=1.0, y=0.530521): 0.531709431661\n    test 3374 28 27.986711967080 Mu(tan=0.531412, x=0.883056, y=0.469267), iteration=3: 0.531709431661\n    test 3375 28 27.946928706111 Chi(tan=0.530522, x=1.0, y=0.530522), iteration=2: 0.531709431661\n    test 3376 28 28.000000000000 Xi(tan=0.531709, x=0.882948, y=0.469472): 0.531709431661\n\n    test 3377 28 28.106516446309 Phi(tan=0.534096, x=0.882073, y=0.471112): 0.531709431661\n    test 3378 28 28.026628049399 Beta(tan=0.532306, x=0.882729, y=0.469882): 0.531709431661\n    test 3379 28 27.946889336829 Theta(tan=0.530521, x=0.883382, y=0.468653): 0.531709431661\n    test 3380 28 27.986711967080 Mu(tan=0.531412, x=0.883056, y=0.469267): 0.531709431661\n    test 3381 28 27.946928706111 Chi(tan=0.530522, x=0.883382, y=0.468654): 0.531709431661\n    test 3382 28 28.000000000000 Xi(tan=0.531709, x=0.882948, y=0.469472): 0.531709431661\n\n    test 3383 35 35.120665994598 Phi(tan=0.703351, x=1.0, y=0.703351): 0.700207538210\n    test 3384 35 35.030169708409 Beta(tan=0.700993, x=1.0, y=0.700993): 0.700207538210\n    test 3385 35 34.939777010856 Theta(tan=0.698642, x=1.0, y=0.698642): 0.700207538210\n    test 3386 35 34.984941016111 Mu(tan=0.699816, x=0.819303, y=0.573361), iteration=3: 0.700207538210\n    test 3387 35 34.939843626202 Chi(tan=0.698644, x=1.0, y=0.698644), iteration=3: 0.700207538210\n    test 3388 35 35.000000000000 Xi(tan=0.700208, x=0.819152, y=0.573576): 0.700207538210\n\n    test 3389 35 35.120665994598 Phi(tan=0.703351, x=0.817942, y=0.5753): 0.700207538210\n    test 3390 35 35.030169708409 Beta(tan=0.700993, x=0.81885, y=0.574008): 0.700207538210\n    test 3391 35 34.939777010856 Theta(tan=0.698642, x=0.819754, y=0.572715): 0.700207538210\n    test 3392 35 34.984941016111 Mu(tan=0.699816, x=0.819303, y=0.573361): 0.700207538210\n    test 3393 35 34.939843626202 Chi(tan=0.698644, x=0.819754, y=0.572716): 0.700207538210\n    test 3394 35 35.000000000000 Xi(tan=0.700208, x=0.819152, y=0.573576): 0.700207538210\n\n    test 3395 42 42.127628467909 Phi(tan=0.904446, x=1.0, y=0.904446): 0.900404044298\n    test 3396 42 42.031915609918 Beta(tan=0.901413, x=1.0, y=0.901413): 0.900404044298\n    test 3397 42 41.936235990174 Theta(tan=0.898391, x=1.0, y=0.898391): 0.900404044298\n    test 3398 42 41.984065426020 Mu(tan=0.899901, x=0.743331, y=0.668924), iteration=3: 0.900404044298\n    test 3399 42 41.936331949525 Chi(tan=0.898394, x=1.0, y=0.898394), iteration=3: 0.900404044298\n    test 3400 42 42.000000000000 Xi(tan=0.900404, x=0.743145, y=0.669131): 0.900404044298\n\n    test 3401 42 42.127628467909 Phi(tan=0.904446, x=0.741652, y=0.670784): 0.900404044298\n    test 3402 42 42.031915609918 Beta(tan=0.901413, x=0.742772, y=0.669544): 0.900404044298\n    test 3403 42 41.936235990174 Theta(tan=0.898391, x=0.743889, y=0.668303): 0.900404044298\n    test 3404 42 41.984065426020 Mu(tan=0.899901, x=0.743331, y=0.668924): 0.900404044298\n    test 3405 42 41.936331949525 Chi(tan=0.898394, x=0.743888, y=0.668304): 0.900404044298\n    test 3406 42 42.000000000000 Xi(tan=0.900404, x=0.743145, y=0.669131): 0.900404044298\n\n    test 3407 49 49.127002845320 Phi(tan=1.15553, x=1.0, y=1.15553): 1.150368407221\n    test 3408 49 49.031764361370 Beta(tan=1.15166, x=1.0, y=1.15166): 1.150368407221\n    test 3409 49 48.936481000855 Theta(tan=1.1478, x=1.0, y=1.1478): 1.150368407221\n    test 3410 49 48.984136719315 Mu(tan=1.14973, x=0.656268, y=0.754528), iteration=2: 1.150368407221\n    test 3411 49 48.936602566380 Chi(tan=1.1478, x=1.0, y=1.1478), iteration=2: 1.150368407221\n    test 3412 49 49.000000000000 Xi(tan=1.15037, x=0.656059, y=0.75471): 1.150368407221\n\n    test 3413 49 49.127002845320 Phi(tan=1.15553, x=0.654385, y=0.756162): 1.150368407221\n    test 3414 49 49.031764361370 Beta(tan=1.15166, x=0.655641, y=0.755073): 1.150368407221\n    test 3415 49 48.936481000855 Theta(tan=1.1478, x=0.656895, y=0.753982): 1.150368407221\n    test 3416 49 48.984136719315 Mu(tan=1.14973, x=0.656268, y=0.754528): 1.150368407221\n    test 3417 49 48.936602566380 Chi(tan=1.1478, x=0.656894, y=0.753983): 1.150368407221\n    test 3418 49 49.000000000000 Xi(tan=1.15037, x=0.656059, y=0.75471): 1.150368407221\n\n    test 3419 56 56.118840243467 Phi(tan=1.48921, x=1.0, y=1.48921): 1.482560968513\n    test 3420 56 56.029727526967 Beta(tan=1.48422, x=1.0, y=1.48422): 1.482560968513\n    test 3421 56 55.940502339654 Theta(tan=1.47925, x=1.0, y=1.47925): 1.482560968513\n    test 3422 56 55.985150111604 Mu(tan=1.48173, x=0.559408, y=0.828893), iteration=3: 1.482560968513\n    test 3423 56 55.940639698829 Chi(tan=1.47925, x=1.0, y=1.47925), iteration=3: 1.482560968513\n    test 3424 56 56.000000000000 Xi(tan=1.48256, x=0.559193, y=0.829038): 1.482560968513\n\n    test 3425 56 56.118840243467 Phi(tan=1.48921, x=0.557472, y=0.830196): 1.482560968513\n    test 3426 56 56.029727526967 Beta(tan=1.48422, x=0.558763, y=0.829328): 1.482560968513\n    test 3427 56 55.940502339654 Theta(tan=1.47925, x=0.560053, y=0.828456): 1.482560968513\n    test 3428 56 55.985150111604 Mu(tan=1.48173, x=0.559408, y=0.828893): 1.482560968513\n    test 3429 56 55.940639698829 Chi(tan=1.47925, x=0.560052, y=0.828458): 1.482560968513\n    test 3430 56 56.000000000000 Xi(tan=1.48256, x=0.559193, y=0.829038): 1.482560968513\n\n    test 3431 63 63.103637615859 Phi(tan=1.97142, x=1.0, y=1.97142): 1.962610505505\n    test 3432 63 63.025928337212 Beta(tan=1.96481, x=1.0, y=1.96481): 1.962610505505\n    test 3433 63 62.948065314408 Theta(tan=1.95822, x=1.0, y=1.95822): 1.962610505505\n    test 3434 63 62.987044924306 Mu(tan=1.96151, x=0.454192, y=0.890904), iteration=3: 1.962610505505\n    test 3435 63 62.948203767989 Chi(tan=1.95823, x=1.0, y=1.95823), iteration=3: 1.962610505505\n    test 3436 63 63.000000000000 Xi(tan=1.96261, x=0.45399, y=0.891007): 1.962610505505\n\n    test 3437 63 63.103637615859 Phi(tan=1.97142, x=0.452378, y=0.891826): 1.962610505505\n    test 3438 63 63.025928337212 Beta(tan=1.96481, x=0.453587, y=0.891212): 1.962610505505\n    test 3439 63 62.948065314408 Theta(tan=1.95822, x=0.454798, y=0.890595): 1.962610505505\n    test 3440 63 62.987044924306 Mu(tan=1.96151, x=0.454192, y=0.890904): 1.962610505505\n    test 3441 63 62.948203767989 Chi(tan=1.95823, x=0.454796, y=0.890596): 1.962610505505\n    test 3442 63 63.000000000000 Xi(tan=1.96261, x=0.45399, y=0.891007): 1.962610505505\n\n    test 3443 70 70.082305433342 Phi(tan=2.75981, x=1.0, y=2.75981): 2.747477419455\n    test 3444 70 70.020593849911 Beta(tan=2.75055, x=1.0, y=2.75055): 2.747477419455\n    test 3445 70 69.958723199827 Theta(tan=2.74133, x=1.0, y=2.74133): 2.747477419455\n    test 3446 70 69.989708300156 Mu(tan=2.74594, x=0.342189, y=0.939631), iteration=3: 2.747477419455\n    test 3447 70 69.958845565244 Chi(tan=2.74135, x=1.0, y=2.74135), iteration=3: 2.747477419455\n    test 3448 70 70.000000000000 Xi(tan=2.74748, x=0.34202, y=0.939693): 2.747477419455\n\n    test 3449 70 70.082305433342 Phi(tan=2.75981, x=0.34067, y=0.940183): 2.747477419455\n    test 3450 70 70.020593849911 Beta(tan=2.75055, x=0.341682, y=0.939815): 2.747477419455\n    test 3451 70 69.958723199827 Theta(tan=2.74133, x=0.342697, y=0.939446): 2.747477419455\n    test 3452 70 69.989708300156 Mu(tan=2.74594, x=0.342189, y=0.939631): 2.747477419455\n    test 3453 70 69.958845565244 Chi(tan=2.74135, x=0.342695, y=0.939447): 2.747477419455\n    test 3454 70 70.000000000000 Xi(tan=2.74748, x=0.34202, y=0.939693): 2.747477419455\n\n    test 3455 77 77.056111910623 Phi(tan=4.35091, x=1.0, y=4.35091): 4.331475874284\n    test 3456 77 77.014041148140 Beta(tan=4.33632, x=1.0, y=4.33632): 4.331475874284\n    test 3457 77 76.971843170758 Theta(tan=4.32179, x=1.0, y=4.32179): 4.331475874284\n    test 3458 77 76.992981975049 Mu(tan=4.32906, x=0.22507, y=0.974343), iteration=3: 4.331475874284\n    test 3459 77 76.971932900289 Chi(tan=4.32182, x=1.0, y=4.32182), iteration=3: 4.331475874284\n    test 3460 77 77.000000000000 Xi(tan=4.33148, x=0.224951, y=0.97437): 4.331475874284\n\n    test 3461 77 77.056111910623 Phi(tan=4.35091, x=0.223997, y=0.97459): 4.331475874284\n    test 3462 77 77.014041148140 Beta(tan=4.33632, x=0.224712, y=0.974425): 4.331475874284\n    test 3463 77 76.971843170758 Theta(tan=4.32179, x=0.22543, y=0.974259): 4.331475874284\n    test 3464 77 76.992981975049 Mu(tan=4.32906, x=0.22507, y=0.974343): 4.331475874284\n    test 3465 77 76.971932900289 Chi(tan=4.32182, x=0.225428, y=0.97426): 4.331475874284\n    test 3466 77 77.000000000000 Xi(tan=4.33148, x=0.224951, y=0.97437): 4.331475874284\n\n    test 3467 84 84.026607472936 Phi(tan=9.55706, x=1.0, y=9.55706): 9.514364454223\n    test 3468 84 84.006658466345 Beta(tan=9.52501, x=1.0, y=9.52501): 9.514364454223\n    test 3469 84 83.986643815196 Theta(tan=9.49308, x=1.0, y=9.49308): 9.514364454223\n    test 3470 84 83.996671688480 Mu(tan=9.50905, x=0.104586, y=0.994516), iteration=3: 9.514364454223\n    test 3471 84 83.986688152448 Chi(tan=9.49315, x=1.0, y=9.49315), iteration=3: 9.514364454223\n    test 3472 84 84.000000000000 Xi(tan=9.51436, x=0.104528, y=0.994522): 9.514364454223\n\n    test 3473 84 84.026607472936 Phi(tan=9.55706, x=0.104067, y=0.99457): 9.514364454223\n    test 3474 84 84.006658466345 Beta(tan=9.52501, x=0.104413, y=0.994534): 9.514364454223\n    test 3475 84 83.986643815196 Theta(tan=9.49308, x=0.10476, y=0.994498): 9.514364454223\n    test 3476 84 83.996671688480 Mu(tan=9.50905, x=0.104586, y=0.994516): 9.514364454223\n    test 3477 84 83.986688152448 Chi(tan=9.49315, x=0.10476, y=0.994498): 9.514364454223\n    test 3478 84 84.000000000000 Xi(tan=9.51436, x=0.104528, y=0.994522): 9.514364454223\n\n    test 3479 91 90.995533984466 Phi(tan=-57.547, x=-1, y=57.547): -57.289961630759\n    test 3480 91 90.998882372785 Beta(tan=-57.3541, x=-1, y=57.3541): -57.289961630759\n    test 3481 91 91.002242018525 Theta(tan=-57.1618, x=-1, y=57.1618): -57.289961630759\n    test 3482 91 91.000558671809 Mu(tan=-57.258, x=-0.0174622, y=0.999848), iteration=3: -57.289961630759\n    test 3483 91 91.002234496198 Chi(tan=-57.1622, x=-1, y=57.1622), iteration=3: -57.289961630759\n    test 3484 91 91.000000000000 Xi(tan=-57.29, x=-0.0174524, y=0.999848): -57.289961630759\n\n    test 3485 91 90.995533984466 Phi(tan=-57.547, x=-0.0173745, y=0.999849): -57.289961630760  FAILED, KNOWN (9.42595e-15), expected -57.289961630759\n    test 3486 91 90.998882372785 Beta(tan=-57.3541, x=-0.0174329, y=0.999848): -57.289961630759\n    test 3487 91 91.002242018525 Theta(tan=-57.1618, x=-0.0174915, y=0.999847): -57.289961630760  FAILED, KNOWN (5.82921e-15), expected -57.289961630759\n    test 3488 91 91.000558671809 Mu(tan=-57.258, x=-0.0174622, y=0.999848): -57.289961630759\n    test 3489 91 91.002234496198 Chi(tan=-57.1622, x=-0.0174914, y=0.999847): -57.289961630760  FAILED, KNOWN (9.54998e-15), expected -57.289961630759\n    test 3490 91 91.000000000000 Xi(tan=-57.29, x=-0.0174524, y=0.999848): -57.289961630759\n\n    test 3491 98 97.964723816165 Phi(tan=-7.1473, x=-1, y=7.1473): -7.115369722384\n    test 3492 98 97.991172305797 Beta(tan=-7.12333, x=-1, y=7.12333): -7.115369722384\n    test 3493 98 98.017706325759 Theta(tan=-7.09945, x=-1, y=7.09945): -7.115369722384\n    test 3494 98 98.004412544182 Mu(tan=-7.1114, x=-0.139249, y=0.990257), iteration=3: -7.115369722384\n    test 3495 98 98.017648048185 Chi(tan=-7.0995, x=-1, y=7.0995), iteration=3: -7.115369722384\n    test 3496 98 98.000000000000 Xi(tan=-7.11537, x=-0.139173, y=0.990268): -7.115369722384\n\n    test 3497 98 97.964723816165 Phi(tan=-7.1473, x=-0.138563, y=0.990354): -7.115369722384\n    test 3498 98 97.991172305797 Beta(tan=-7.12333, x=-0.139021, y=0.990289): -7.115369722384\n    test 3499 98 98.017706325759 Theta(tan=-7.09945, x=-0.139479, y=0.990225): -7.115369722384\n    test 3500 98 98.004412544182 Mu(tan=-7.1114, x=-0.139249, y=0.990257): -7.115369722384\n    test 3501 98 98.017648048185 Chi(tan=-7.0995, x=-0.139478, y=0.990225): -7.115369722384\n    test 3502 98 98.000000000000 Xi(tan=-7.11537, x=-0.139173, y=0.990268): -7.115369722384\n\n    test 3503 105 104.935994159741 Phi(tan=-3.7488, x=-1, y=3.7488): -3.732050807569\n    test 3504 105 104.983983867222 Beta(tan=-3.73623, x=-1, y=3.73623): -3.732050807569\n    test 3505 105 105.032113400902 Theta(tan=-3.7237, x=-1, y=3.7237): -3.732050807569\n    test 3506 105 105.008004873422 Mu(tan=-3.72997, x=-0.258954, y=0.96589), iteration=2: -3.732050807569\n    test 3507 105 105.032012824358 Chi(tan=-3.72373, x=-1, y=3.72373), iteration=3: -3.732050807569\n    test 3508 105 105.000000000000 Xi(tan=-3.73205, x=-0.258819, y=0.965926): -3.732050807569\n\n    test 3509 105 104.935994159741 Phi(tan=-3.7488, x=-0.25774, y=0.966214): -3.732050807569\n    test 3510 105 104.983983867222 Beta(tan=-3.73623, x=-0.258549, y=0.965998): -3.732050807569\n    test 3511 105 105.032113400902 Theta(tan=-3.7237, x=-0.25936, y=0.965781): -3.732050807569\n    test 3512 105 105.008004873422 Mu(tan=-3.72997, x=-0.258954, y=0.96589): -3.732050807569\n    test 3513 105 105.032012824358 Chi(tan=-3.72373, x=-0.259359, y=0.965781): -3.732050807569\n    test 3514 105 105.000000000000 Xi(tan=-3.73205, x=-0.258819, y=0.965926): -3.732050807569\n\n    test 3515 112 111.911042136698 Phi(tan=-2.48619, x=-1, y=2.48619): -2.475086853416\n    test 3516 112 111.977742323906 Beta(tan=-2.47786, x=-1, y=2.47786): -2.475086853416\n    test 3517 112 112.044603965311 Theta(tan=-2.46955, x=-1, y=2.46955): -2.475086853416\n    test 3518 112 112.011122625415 Mu(tan=-2.4737, x=-0.374787, y=0.927111), iteration=3: -2.475086853416\n    test 3519 112 112.044475225333 Chi(tan=-2.46957, x=-1, y=2.46957), iteration=3: -2.475086853416\n    test 3520 112 112.000000000000 Xi(tan=-2.47509, x=-0.374607, y=0.927184): -2.475086853416\n\n    test 3521 112 111.911042136698 Phi(tan=-2.48619, x=-0.373167, y=0.927764): -2.475086853416\n    test 3522 112 111.977742323906 Beta(tan=-2.47786, x=-0.374246, y=0.927329): -2.475086853416\n    test 3523 112 112.044603965311 Theta(tan=-2.46955, x=-0.375328, y=0.926892): -2.475086853416\n    test 3524 112 112.011122625415 Mu(tan=-2.4737, x=-0.374787, y=0.927111): -2.475086853416\n    test 3525 112 112.044475225333 Chi(tan=-2.46957, x=-0.375326, y=0.926893): -2.475086853416\n    test 3526 112 112.000000000000 Xi(tan=-2.47509, x=-0.374607, y=0.927184): -2.475086853416\n\n    test 3527 119 118.891346228069 Phi(tan=-1.81214, x=-1, y=1.81214): -1.804047755271\n    test 3528 119 118.972817760312 Beta(tan=-1.80607, x=-1, y=1.80607): -1.804047755271\n    test 3529 119 119.054434637080 Theta(tan=-1.80001, x=-1, y=1.80001): -1.804047755271\n    test 3530 119 119.013580731176 Mu(tan=-1.80304, x=-0.485017, y=0.874505), iteration=3: -1.804047755271\n    test 3531 119 119.054294796723 Chi(tan=-1.80002, x=-1, y=1.80002), iteration=3: -1.804047755271\n    test 3532 119 119.000000000000 Xi(tan=-1.80405, x=-0.48481, y=0.87462): -1.804047755271\n\n    test 3533 119 118.891346228069 Phi(tan=-1.81214, x=-0.48315, y=0.875538): -1.804047755271\n    test 3534 119 118.972817760312 Beta(tan=-1.80607, x=-0.484395, y=0.87485): -1.804047755271\n    test 3535 119 119.054434637080 Theta(tan=-1.80001, x=-0.48564, y=0.874159): -1.804047755271\n    test 3536 119 119.013580731176 Mu(tan=-1.80304, x=-0.485017, y=0.874505): -1.804047755271\n    test 3537 119 119.054294796723 Chi(tan=-1.80002, x=-0.485638, y=0.87416): -1.804047755271\n    test 3538 119 119.000000000000 Xi(tan=-1.80405, x=-0.48481, y=0.87462): -1.804047755271\n\n    test 3539 126 125.878079358159 Phi(tan=-1.38256, x=-1, y=1.38256): -1.376381920471\n    test 3540 126 125.969503261502 Beta(tan=-1.37792, x=-1, y=1.37792): -1.376381920471\n    test 3541 126 126.061022406195 Theta(tan=-1.3733, x=-1, y=1.3733): -1.376381920471\n    test 3542 126 126.015233045717 Mu(tan=-1.37561, x=-0.588, y=0.808861), iteration=2: -1.376381920471\n    test 3543 126 126.060888237156 Chi(tan=-1.37331, x=-1, y=1.37331), iteration=2: -1.376381920471\n    test 3544 126 126.000000000000 Xi(tan=-1.37638, x=-0.587785, y=0.809017): -1.376381920471\n\n    test 3545 126 125.878079358159 Phi(tan=-1.38256, x=-0.586062, y=0.810266): -1.376381920471\n    test 3546 126 125.969503261502 Beta(tan=-1.37792, x=-0.587355, y=0.80933): -1.376381920471\n    test 3547 126 126.061022406195 Theta(tan=-1.3733, x=-0.588647, y=0.808391): -1.376381920471\n    test 3548 126 126.015233045717 Mu(tan=-1.37561, x=-0.588, y=0.808861): -1.376381920471\n    test 3549 126 126.060888237156 Chi(tan=-1.37331, x=-0.588645, y=0.808392): -1.376381920471\n    test 3550 126 126.000000000000 Xi(tan=-1.37638, x=-0.587785, y=0.809017): -1.376381920471\n\n    test 3551 133 132.872038576251 Phi(tan=-1.07718, x=-1, y=1.07718): -1.072368710025\n    test 3552 133 132.967997382278 Beta(tan=-1.07357, x=-1, y=1.07357): -1.072368710025\n    test 3553 133 133.063979030656 Theta(tan=-1.06997, x=-1, y=1.06997): -1.072368710025\n    test 3554 133 133.015981056163 Mu(tan=-1.07177, x=-0.682202, y=0.731163), iteration=2: -1.072368710025\n    test 3555 133 133.063864035301 Chi(tan=-1.06998, x=-1, y=1.06998), iteration=3: -1.072368710025\n    test 3556 133 133.000000000000 Xi(tan=-1.07237, x=-0.681998, y=0.731354): -1.072368710025\n\n    test 3557 133 132.872038576251 Phi(tan=-1.07718, x=-0.680363, y=0.732875): -1.072368710025\n    test 3558 133 132.967997382278 Beta(tan=-1.07357, x=-0.68159, y=0.731735): -1.072368710025\n    test 3559 133 133.063979030656 Theta(tan=-1.06997, x=-0.682815, y=0.730592): -1.072368710025\n    test 3560 133 133.015981056163 Mu(tan=-1.07177, x=-0.682202, y=0.731163): -1.072368710025\n    test 3561 133 133.063864035301 Chi(tan=-1.06998, x=-0.682813, y=0.730593): -1.072368710025\n    test 3562 133 133.000000000000 Xi(tan=-1.07237, x=-0.681998, y=0.731354): -1.072368710025\n\n    test 3563 140 139.873595650901 Phi(tan=-0.842866, x=-1, y=0.842866): -0.839099631177\n    test 3564 140 139.968391970048 Beta(tan=-0.84004, x=-1, y=0.84004): -0.839099631177\n    test 3565 140 140.063133367178 Theta(tan=-0.837224, x=-1, y=0.837224): -0.839099631177\n    test 3566 140 140.015779815968 Mu(tan=-0.83863, x=-0.766221, y=0.642577), iteration=3: -0.839099631177\n    test 3567 140 140.063045682360 Chi(tan=-0.837226, x=-1, y=0.837226), iteration=2: -0.839099631177\n    test 3568 140 140.000000000000 Xi(tan=-0.8391, x=-0.766044, y=0.642788): -0.839099631177\n\n    test 3569 140 139.873595650901 Phi(tan=-0.842866, x=-0.764624, y=0.644476): -0.839099631177\n    test 3570 140 139.968391970048 Beta(tan=-0.84004, x=-0.76569, y=0.64321): -0.839099631177\n    test 3571 140 140.063133367178 Theta(tan=-0.837224, x=-0.766752, y=0.641943): -0.839099631177\n    test 3572 140 140.015779815968 Mu(tan=-0.83863, x=-0.766221, y=0.642577): -0.839099631177\n    test 3573 140 140.063045682360 Chi(tan=-0.837226, x=-0.766751, y=0.641944): -0.839099631177\n    test 3574 140 140.000000000000 Xi(tan=-0.8391, x=-0.766044, y=0.642788): -0.839099631177\n\n    test 3575 147 146.882671979706 Phi(tan=-0.652323, x=-1, y=0.652323): -0.649407593198\n    test 3576 147 146.970666152106 Beta(tan=-0.650136, x=-1, y=0.650136): -0.649407593198\n    test 3577 147 147.058540482739 Theta(tan=-0.647956, x=-1, y=0.647956): -0.649407593198\n    test 3578 147 147.014640733824 Mu(tan=-0.649044, x=-0.83881, y=0.544425), iteration=2: -0.649407593198\n    test 3579 147 147.058482092364 Chi(tan=-0.647957, x=-1, y=0.647957), iteration=3: -0.649407593198\n    test 3580 147 147.000000000000 Xi(tan=-0.649408, x=-0.838671, y=0.544639): -0.649407593198\n\n    test 3581 147 146.882671979706 Phi(tan=-0.652323, x=-0.837554, y=0.546355): -0.649407593198\n    test 3582 147 146.970666152106 Beta(tan=-0.650136, x=-0.838392, y=0.545068): -0.649407593198\n    test 3583 147 147.058540482739 Theta(tan=-0.647956, x=-0.839227, y=0.543782): -0.649407593198\n    test 3584 147 147.014640733824 Mu(tan=-0.649044, x=-0.83881, y=0.544425): -0.649407593198\n    test 3585 147 147.058482092364 Chi(tan=-0.647957, x=-0.839226, y=0.543783): -0.649407593198\n    test 3586 147 147.000000000000 Xi(tan=-0.649408, x=-0.838671, y=0.544639): -0.649407593198\n\n    test 3587 154 153.898740000769 Phi(tan=-0.489922, x=-1, y=0.489922): -0.487732588566\n    test 3588 154 153.974686973605 Beta(tan=-0.48828, x=-1, y=0.48828): -0.487732588566\n    test 3589 154 154.050477253377 Theta(tan=-0.486642, x=-1, y=0.486642): -0.487732588566\n    test 3590 154 154.012631023956 Mu(tan=-0.48746, x=-0.898891, y=0.438173), iteration=3: -0.487732588566\n    test 3591 154 154.050444626907 Chi(tan=-0.486643, x=-1, y=0.486643), iteration=2: -0.487732588566\n    test 3592 154 154.000000000000 Xi(tan=-0.487733, x=-0.898794, y=0.438371): -0.487732588566\n\n    test 3593 154 153.898740000769 Phi(tan=-0.489922, x=-0.898018, y=0.439959): -0.487732588566\n    test 3594 154 153.974686973605 Beta(tan=-0.48828, x=-0.8986, y=0.438768): -0.487732588566\n    test 3595 154 154.050477253377 Theta(tan=-0.486642, x=-0.89918, y=0.437579): -0.487732588566\n    test 3596 154 154.012631023956 Mu(tan=-0.48746, x=-0.898891, y=0.438173): -0.487732588566\n    test 3597 154 154.050444626907 Chi(tan=-0.486643, x=-0.89918, y=0.43758): -0.487732588566\n    test 3598 154 154.000000000000 Xi(tan=-0.487733, x=-0.898794, y=0.438371): -0.487732588566\n\n    test 3599 161 160.920851786649 Phi(tan=-0.345874, x=-1, y=0.345874): -0.344327613290\n    test 3600 161 160.980216789536 Beta(tan=-0.344714, x=-1, y=0.344714): -0.344327613290\n    test 3601 161 161.039424975997 Theta(tan=-0.343558, x=-1, y=0.343558): -0.344327613290\n    test 3602 161 161.009869820426 Mu(tan=-0.344135, x=-0.945575, y=0.325405), iteration=3: -0.344327613290\n    test 3603 161 161.039410917225 Chi(tan=-0.343558, x=-1, y=0.343558), iteration=3: -0.344327613290\n    test 3604 161 161.000000000000 Xi(tan=-0.344328, x=-0.945519, y=0.325568): -0.344327613290\n\n    test 3605 161 160.920851786649 Phi(tan=-0.345874, x=-0.945068, y=0.326874): -0.344327613290\n    test 3606 161 160.980216789536 Beta(tan=-0.344714, x=-0.945406, y=0.325895): -0.344327613290\n    test 3607 161 161.039424975997 Theta(tan=-0.343558, x=-0.945742, y=0.324917): -0.344327613290\n    test 3608 161 161.009869820426 Mu(tan=-0.344135, x=-0.945575, y=0.325405): -0.344327613290\n    test 3609 161 161.039410917225 Chi(tan=-0.343558, x=-0.945742, y=0.324918): -0.344327613290\n    test 3610 161 161.000000000000 Xi(tan=-0.344328, x=-0.945519, y=0.325568): -0.344327613290\n\n    test 3611 168 167.947693775816 Phi(tan=-0.213511, x=-1, y=0.213511): -0.212556561670\n    test 3612 168 167.986927091791 Beta(tan=-0.212795, x=-1, y=0.212795): -0.212556561670\n    test 3613 168 168.026040245291 Theta(tan=-0.212082, x=-1, y=0.212082): -0.212556561670\n    test 3614 168 168.006521160939 Mu(tan=-0.212438, x=-0.978171, y=0.2078), iteration=3: -0.212556561670\n    test 3615 168 168.026036457648 Chi(tan=-0.212082, x=-1, y=0.212082), iteration=3: -0.212556561670\n    test 3616 168 168.000000000000 Xi(tan=-0.212557, x=-0.978148, y=0.207912): -0.212556561670\n\n    test 3617 168 167.947693775816 Phi(tan=-0.213511, x=-0.977957, y=0.208805): -0.212556561670\n    test 3618 168 167.986927091791 Beta(tan=-0.212795, x=-0.9781, y=0.208135): -0.212556561670\n    test 3619 168 168.026040245291 Theta(tan=-0.212082, x=-0.978242, y=0.207467): -0.212556561670\n    test 3620 168 168.006521160939 Mu(tan=-0.212438, x=-0.978171, y=0.2078): -0.212556561670\n    test 3621 168 168.026036457648 Chi(tan=-0.212082, x=-0.978242, y=0.207467): -0.212556561670\n    test 3622 168 168.000000000000 Xi(tan=-0.212557, x=-0.978148, y=0.207912): -0.212556561670\n\n    test 3623 175 174.977664774563 Phi(tan=-0.0878815, x=-1, y=0.0878815): -0.087488663526\n    test 3624 175 174.994418020079 Beta(tan=-0.0875868, x=-1, y=0.0875868): -0.087488663526\n    test 3625 175 175.011115948983 Theta(tan=-0.0872932, x=-1, y=0.0872932): -0.087488663526\n    test 3626 175 175.002784242316 Mu(tan=-0.0874397, x=-0.996199, y=0.0871073), iteration=2: -0.087488663526\n    test 3627 175 175.011115664833 Chi(tan=-0.0872932, x=-1, y=0.0872932), iteration=2: -0.087488663526\n    test 3628 175 175.000000000000 Xi(tan=-0.0874887, x=-0.996195, y=0.0871557): -0.087488663526\n\n    test 3629 175 174.977664774563 Phi(tan=-0.0878815, x=-0.996161, y=0.0875441): -0.087488663526\n    test 3630 175 174.994418020079 Beta(tan=-0.0875868, x=-0.996186, y=0.0872528): -0.087488663526\n    test 3631 175 175.011115948983 Theta(tan=-0.0872932, x=-0.996212, y=0.0869625): -0.087488663526\n    test 3632 175 175.002784242316 Mu(tan=-0.0874397, x=-0.996199, y=0.0871073): -0.087488663526\n    test 3633 175 175.011115664833 Chi(tan=-0.0872932, x=-0.996212, y=0.0869625): -0.087488663526\n    test 3634 175 175.000000000000 Xi(tan=-0.0874887, x=-0.996195, y=0.0871557): -0.087488663526\n\n    test 3635 182 182.008972613463 Phi(tan=0.0350776, x=-1, y=-0.0350776): 0.034920769492\n    test 3636 182 182.002242400308 Beta(tan=0.03496, x=-1, y=-0.03496): 0.034920769492\n    test 3637 182 181.995534697284 Theta(tan=0.0348427, x=-1, y=-0.0348427): 0.034920769492\n    test 3638 182 181.998881526172 Mu(tan=0.0349012, x=-0.999392, y=-0.03488), iteration=3: 0.034920769492\n    test 3639 182 181.995534715586 Chi(tan=0.0348427, x=-1, y=-0.0348427), iteration=2: 0.034920769492\n    test 3640 182 182.000000000000 Xi(tan=0.0349208, x=-0.999391, y=-0.0348995): 0.034920769492\n\n    test 3641 182 182.008972613463 Phi(tan=0.0350776, x=-0.999385, y=-0.035056): 0.034920769492\n    test 3642 182 182.002242400308 Beta(tan=0.03496, x=-0.999389, y=-0.0349386): 0.034920769492\n    test 3643 182 181.995534697284 Theta(tan=0.0348427, x=-0.999394, y=-0.0348216): 0.034920769492\n    test 3644 182 181.998881526172 Mu(tan=0.0349012, x=-0.999392, y=-0.03488): 0.034920769492\n    test 3645 182 181.995534715586 Chi(tan=0.0348427, x=-0.999394, y=-0.0348216): 0.034920769492\n    test 3646 182 182.000000000000 Xi(tan=0.0349208, x=-0.999391, y=-0.0348995): 0.034920769492\n\n    test 3647 189 189.039743358381 Phi(tan=0.159096, x=-1, y=-0.159096): 0.158384440325\n    test 3648 189 189.009932816166 Beta(tan=0.158562, x=-1, y=-0.158562): 0.158384440325\n    test 3649 189 188.980217328283 Theta(tan=0.158031, x=-1, y=-0.158031): 0.158384440325\n    test 3650 189 188.995045415532 Mu(tan=0.158296, x=-0.987702, y=-0.156349), iteration=3: 0.158384440325\n    test 3651 189 188.980218957347 Chi(tan=0.158031, x=-1, y=-0.158031), iteration=3: 0.158384440325\n    test 3652 189 189.000000000000 Xi(tan=0.158384, x=-0.987688, y=-0.156434): 0.158384440325\n\n    test 3653 189 189.039743358381 Phi(tan=0.159096, x=-0.98758, y=-0.15712): 0.158384440325\n    test 3654 189 189.009932816166 Beta(tan=0.158562, x=-0.987661, y=-0.156606): 0.158384440325\n    test 3655 189 188.980217328283 Theta(tan=0.158031, x=-0.987742, y=-0.156093): 0.158384440325\n    test 3656 189 188.995045415532 Mu(tan=0.158296, x=-0.987702, y=-0.156349): 0.158384440325\n    test 3657 189 188.980218957347 Chi(tan=0.158031, x=-0.987742, y=-0.156093): 0.158384440325\n    test 3658 189 189.000000000000 Xi(tan=0.158384, x=-0.987688, y=-0.156434): 0.158384440325\n\n    test 3659 196 196.068135937668 Phi(tan=0.288033, x=-1, y=-0.288033): 0.286745385759\n    test 3660 196 196.017029985937 Beta(tan=0.287067, x=-1, y=-0.287067): 0.286745385759\n    test 3661 196 195.966069329052 Theta(tan=0.286105, x=-1, y=-0.286105): 0.286745385759\n    test 3662 196 195.991504319198 Mu(tan=0.286585, x=-0.961303, y=-0.275495), iteration=3: 0.286745385759\n    test 3663 196 195.966078002587 Chi(tan=0.286105, x=-1, y=-0.286105), iteration=3: 0.286745385759\n    test 3664 196 196.000000000000 Xi(tan=0.286745, x=-0.961262, y=-0.275637): 0.286745385759\n\n    test 3665 196 196.068135937668 Phi(tan=0.288033, x=-0.960933, y=-0.27678): 0.286745385759\n    test 3666 196 196.017029985937 Beta(tan=0.287067, x=-0.96118, y=-0.275923): 0.286745385759\n    test 3667 196 195.966069329052 Theta(tan=0.286105, x=-0.961425, y=-0.275068): 0.286745385759\n    test 3668 196 195.991504319198 Mu(tan=0.286585, x=-0.961303, y=-0.275495): 0.286745385759\n    test 3669 196 195.966078002587 Chi(tan=0.286105, x=-0.961425, y=-0.275068): 0.286745385759\n    test 3670 196 196.000000000000 Xi(tan=0.286745, x=-0.961262, y=-0.275637): 0.286745385759\n\n    test 3671 203 203.092454589560 Phi(tan=0.426381, x=-1, y=-0.426381): 0.424474816210\n    test 3672 203 203.023110614245 Beta(tan=0.424951, x=-1, y=-0.424951): 0.424474816210\n    test 3673 203 202.953928092744 Theta(tan=0.423526, x=-1, y=-0.423526): 0.424474816210\n    test 3674 203 202.988468962214 Mu(tan=0.424237, x=-0.920583, y=-0.390546), iteration=2: 0.424474816210\n    test 3675 203 202.953951753533 Chi(tan=0.423527, x=-1, y=-0.423527), iteration=2: 0.424474816210\n    test 3676 203 203.000000000000 Xi(tan=0.424475, x=-0.920505, y=-0.390731): 0.424474816210\n\n    test 3677 203 203.092454589560 Phi(tan=0.426381, x=-0.919873, y=-0.392216): 0.424474816210\n    test 3678 203 203.023110614245 Beta(tan=0.424951, x=-0.920347, y=-0.391102): 0.424474816210\n    test 3679 203 202.953928092744 Theta(tan=0.423526, x=-0.920819, y=-0.389991): 0.424474816210\n    test 3680 203 202.988468962214 Mu(tan=0.424237, x=-0.920583, y=-0.390546): 0.424474816210\n    test 3681 203 202.953951753533 Chi(tan=0.423527, x=-0.920819, y=-0.389991): 0.424474816210\n    test 3682 203 203.000000000000 Xi(tan=0.424475, x=-0.920505, y=-0.390731): 0.424474816210\n\n    test 3683 210 210.111251718648 Phi(tan=0.579942, x=-1, y=-0.579942): 0.577350269190\n    test 3684 210 210.027812929728 Beta(tan=0.577998, x=-1, y=-0.577998): 0.577350269190\n    test 3685 210 209.944513899906 Theta(tan=0.57606, x=-1, y=-0.57606): 0.577350269190\n    test 3686 210 209.986119784065 Mu(tan=0.577027, x=-0.866147, y=-0.49979), iteration=3: 0.577350269190\n    test 3687 210 209.944560549356 Chi(tan=0.576061, x=-1, y=-0.576061), iteration=3: 0.577350269190\n    test 3688 210 210.000000000000 Xi(tan=0.57735, x=-0.866025, y=-0.5): 0.577350269190\n\n    test 3689 210 210.111251718648 Phi(tan=0.579942, x=-0.865053, y=-0.501681): 0.577350269190\n    test 3690 210 210.027812929728 Beta(tan=0.577998, x=-0.865783, y=-0.50042): 0.577350269190\n    test 3691 210 209.944513899906 Theta(tan=0.57606, x=-0.866509, y=-0.499161): 0.577350269190\n    test 3692 210 209.986119784065 Mu(tan=0.577027, x=-0.866147, y=-0.49979): 0.577350269190\n    test 3693 210 209.944560549356 Chi(tan=0.576061, x=-0.866509, y=-0.499162): 0.577350269190\n    test 3694 210 210.000000000000 Xi(tan=0.57735, x=-0.866025, y=-0.5): 0.577350269190\n\n    test 3695 217 217.123414552554 Phi(tan=0.756937, x=-1, y=-0.756937): 0.753554050103\n    test 3696 217 217.030858299580 Beta(tan=0.754399, x=-1, y=-0.754399): 0.753554050103\n    test 3697 217 216.938387365618 Theta(tan=0.751869, x=-1, y=-0.751869): 0.753554050103\n    test 3698 217 216.984596192751 Mu(tan=0.753133, x=-0.798797, y=-0.6016), iteration=3: 0.753554050103\n    test 3699 217 216.938462387195 Chi(tan=0.751871, x=-1, y=-0.751871), iteration=3: 0.753554050103\n    test 3700 217 217.000000000000 Xi(tan=0.753554, x=-0.798636, y=-0.601815): 0.753554050103\n\n    test 3701 217 217.123414552554 Phi(tan=0.756937, x=-0.797337, y=-0.603534): 0.753554050103\n    test 3702 217 217.030858299580 Beta(tan=0.754399, x=-0.798311, y=-0.602245): 0.753554050103\n    test 3703 217 216.938387365618 Theta(tan=0.751869, x=-0.799282, y=-0.600956): 0.753554050103\n    test 3704 217 216.984596192751 Mu(tan=0.753133, x=-0.798797, y=-0.6016): 0.753554050103\n    test 3705 217 216.938462387195 Chi(tan=0.751871, x=-0.799281, y=-0.600957): 0.753554050103\n    test 3706 217 217.000000000000 Xi(tan=0.753554, x=-0.798636, y=-0.601815): 0.753554050103\n\n    test 3707 224 224.128230303258 Phi(tan=0.970023, x=-1, y=-0.970023): 0.965688774807\n    test 3708 224 224.032067609230 Beta(tan=0.966771, x=-1, y=-0.966771): 0.965688774807\n    test 3709 224 223.935915824293 Theta(tan=0.96353, x=-1, y=-0.96353): 0.965688774807\n    test 3710 224 223.983988319148 Mu(tan=0.965149, x=-0.719534, y=-0.694457), iteration=3: 0.965688774807\n    test 3711 224 223.936019754646 Chi(tan=0.963533, x=-1, y=-0.963533), iteration=3: 0.965688774807\n    test 3712 224 224.000000000000 Xi(tan=0.965689, x=-0.71934, y=-0.694658): 0.965688774807\n\n    test 3713 224 224.128230303258 Phi(tan=0.970023, x=-0.717783, y=-0.696267): 0.965688774807\n    test 3714 224 224.032067609230 Beta(tan=0.966771, x=-0.718951, y=-0.695061): 0.965688774807\n    test 3715 224 223.935915824293 Theta(tan=0.96353, x=-0.720116, y=-0.693853): 0.965688774807\n    test 3716 224 223.983988319148 Mu(tan=0.965149, x=-0.719534, y=-0.694457): 0.965688774807\n    test 3717 224 223.936019754646 Chi(tan=0.963533, x=-0.720115, y=-0.693855): 0.965688774807\n    test 3718 224 224.000000000000 Xi(tan=0.965689, x=-0.71934, y=-0.694658): 0.965688774807\n\n    test 3719 231 231.125426196540 Phi(tan=1.24044, x=-1, y=-1.24044): 1.234897156535\n    test 3720 231 231.031371476626 Beta(tan=1.23628, x=-1, y=-1.23628): 1.234897156535\n    test 3721 231 230.937250720782 Theta(tan=1.23214, x=-1, y=-1.23214): 1.234897156535\n    test 3722 231 230.984331752747 Mu(tan=1.23421, x=-0.629533, y=-0.776974), iteration=3: 1.234897156535\n    test 3723 231 230.937378047856 Chi(tan=1.23214, x=-1, y=-1.23214), iteration=2: 1.234897156535\n    test 3724 231 231.000000000000 Xi(tan=1.2349, x=-0.62932, y=-0.777146): 1.234897156535\n\n    test 3725 231 231.125426196540 Phi(tan=1.24044, x=-0.627618, y=-0.778522): 1.234897156535\n    test 3726 231 231.031371476626 Beta(tan=1.23628, x=-0.628895, y=-0.77749): 1.234897156535\n    test 3727 231 230.937250720782 Theta(tan=1.23214, x=-0.630171, y=-0.776456): 1.234897156535\n    test 3728 231 230.984331752747 Mu(tan=1.23421, x=-0.629533, y=-0.776974): 1.234897156535\n    test 3729 231 230.937378047856 Chi(tan=1.23214, x=-0.630169, y=-0.776458): 1.234897156535\n    test 3730 231 231.000000000000 Xi(tan=1.2349, x=-0.62932, y=-0.777146): 1.234897156535\n\n    test 3731 238 238.115182546420 Phi(tan=1.60752, x=-1, y=-1.60752): 1.600334529041\n    test 3732 238 238.028813796136 Beta(tan=1.60213, x=-1, y=-1.60213): 1.600334529041\n    test 3733 238 237.942317534000 Theta(tan=1.59676, x=-1, y=-1.59676): 1.600334529041\n    test 3734 238 237.985605550109 Mu(tan=1.59944, x=-0.530132, y=-0.847915), iteration=3: 1.600334529041\n    test 3735 238 237.942456867934 Chi(tan=1.59676, x=-1, y=-1.59676), iteration=3: 1.600334529041\n    test 3736 238 238.000000000000 Xi(tan=1.60033, x=-0.529919, y=-0.848048): 1.600334529041\n\n    test 3737 238 238.115182546420 Phi(tan=1.60752, x=-0.528213, y=-0.849112): 1.600334529041\n    test 3738 238 238.028813796136 Beta(tan=1.60213, x=-0.529493, y=-0.848314): 1.600334529041\n    test 3739 238 237.942317534000 Theta(tan=1.59676, x=-0.530773, y=-0.847514): 1.600334529041\n    test 3740 238 237.985605550109 Mu(tan=1.59944, x=-0.530132, y=-0.847915): 1.600334529041\n    test 3741 238 237.942456867934 Chi(tan=1.59676, x=-0.530771, y=-0.847515): 1.600334529041\n    test 3742 238 238.000000000000 Xi(tan=1.60033, x=-0.529919, y=-0.848048): 1.600334529041\n\n    test 3743 245 245.098118836759 Phi(tan=2.15413, x=-1, y=-2.15413): 2.144506920510\n    test 3744 245 245.024548537731 Beta(tan=2.14691, x=-1, y=-2.14691): 2.144506920510\n    test 3745 245 244.950819083860 Theta(tan=2.13971, x=-1, y=-2.13971): 2.144506920510\n    test 3746 245 244.987733605483 Mu(tan=2.14331, x=-0.422812, y=-0.906217), iteration=3: 2.144506920510\n    test 3747 245 244.950954727954 Chi(tan=2.13972, x=-1, y=-2.13972), iteration=2: 2.144506920510\n    test 3748 245 245.000000000000 Xi(tan=2.14451, x=-0.422618, y=-0.906308): 2.144506920510\n\n    test 3749 245 245.098118836759 Phi(tan=2.15413, x=-0.421066, y=-0.90703): 2.144506920510\n    test 3750 245 245.024548537731 Beta(tan=2.14691, x=-0.42223, y=-0.906489): 2.144506920510\n    test 3751 245 244.950819083860 Theta(tan=2.13971, x=-0.423396, y=-0.905945): 2.144506920510\n    test 3752 245 244.987733605483 Mu(tan=2.14331, x=-0.422812, y=-0.906217): 2.144506920510\n    test 3753 245 244.950954727954 Chi(tan=2.13972, x=-0.423394, y=-0.905946): 2.144506920510\n    test 3754 245 245.000000000000 Xi(tan=2.14451, x=-0.422618, y=-0.906308): 2.144506920510\n\n    test 3755 252 252.075254383698 Phi(tan=3.09149, x=-1, y=-3.09149): 3.077683537175\n    test 3756 252 252.018830129897 Beta(tan=3.08113, x=-1, y=-3.08113): 3.077683537175\n    test 3757 252 251.962252287555 Theta(tan=3.0708, x=-1, y=-3.0708): 3.077683537175\n    test 3758 252 251.990589272651 Mu(tan=3.07596, x=-0.309173, y=-0.951006), iteration=2: 3.077683537175\n    test 3759 252 251.962366907267 Chi(tan=3.07082, x=-1, y=-3.07082), iteration=3: 3.077683537175\n    test 3760 252 252.000000000000 Xi(tan=3.07768, x=-0.309017, y=-0.951057): 3.077683537175\n\n    test 3761 252 252.075254383698 Phi(tan=3.09149, x=-0.307768, y=-0.951462): 3.077683537175\n    test 3762 252 252.018830129897 Beta(tan=3.08113, x=-0.308704, y=-0.951158): 3.077683537175\n    test 3763 252 251.962252287555 Theta(tan=3.0708, x=-0.309644, y=-0.950853): 3.077683537175\n    test 3764 252 251.990589272651 Mu(tan=3.07596, x=-0.309173, y=-0.951006): 3.077683537175\n    test 3765 252 251.962366907267 Chi(tan=3.07082, x=-0.309642, y=-0.950853): 3.077683537175\n    test 3766 252 252.000000000000 Xi(tan=3.07768, x=-0.309017, y=-0.951057): 3.077683537175\n\n    test 3767 259 259.047946497885 Phi(tan=5.16764, x=-1, y=-5.16764): 5.144554015970\n    test 3768 259 259.011998105898 Beta(tan=5.15031, x=-1, y=-5.15031): 5.144554015970\n    test 3769 259 258.975937580981 Theta(tan=5.13304, x=-1, y=-5.13304): 5.144554015970\n    test 3770 259 258.994002940120 Mu(tan=5.14168, x=-0.190912, y=-0.981607), iteration=3: 5.144554015970\n    test 3771 259 258.976015406086 Chi(tan=5.13308, x=-1, y=-5.13308), iteration=3: 5.144554015970\n    test 3772 259 259.000000000000 Xi(tan=5.14455, x=-0.190809, y=-0.981627): 5.144554015970\n\n    test 3773 259 259.047946497885 Phi(tan=5.16764, x=-0.189987, y=-0.981787): 5.144554015970\n    test 3774 259 259.011998105898 Beta(tan=5.15031, x=-0.190603, y=-0.981667): 5.144554015970\n    test 3775 259 258.975937580981 Theta(tan=5.13304, x=-0.191221, y=-0.981547): 5.144554015970\n    test 3776 259 258.994002940120 Mu(tan=5.14168, x=-0.190912, y=-0.981607): 5.144554015970\n    test 3777 259 258.976015406086 Chi(tan=5.13308, x=-0.19122, y=-0.981547): 5.144554015970\n    test 3778 259 259.000000000000 Xi(tan=5.14455, x=-0.190809, y=-0.981627): 5.144554015970\n\n    test 3779 266 266.017810106930 Phi(tan=14.3648, x=-1, y=-14.3648): 14.300666256712\n    test 3780 266 266.004456979343 Beta(tan=14.3167, x=-1, y=-14.3167): 14.300666256712\n    test 3781 266 265.991059367560 Theta(tan=14.2687, x=-1, y=-14.2687): 14.300666256712\n    test 3782 266 265.997772097900 Mu(tan=14.2927, x=-0.0697953, y=-0.997561), iteration=2: 14.300666256712\n    test 3783 266 265.991089228290 Chi(tan=14.2688, x=-1, y=-14.2688), iteration=3: 14.300666256712\n    test 3784 266 266.000000000000 Xi(tan=14.3007, x=-0.0697565, y=-0.997564): 14.300666256712\n\n    test 3785 266 266.017810106930 Phi(tan=14.3648, x=-0.0694464, y=-0.997586): 14.300666256712\n    test 3786 266 266.004456979343 Beta(tan=14.3167, x=-0.0696789, y=-0.997569): 14.300666256712\n    test 3787 266 265.991059367560 Theta(tan=14.2687, x=-0.0699121, y=-0.997553): 14.300666256712\n    test 3788 266 265.997772097900 Mu(tan=14.2927, x=-0.0697953, y=-0.997561): 14.300666256712\n    test 3789 266 265.991089228290 Chi(tan=14.2688, x=-0.0699116, y=-0.997553): 14.300666256712\n    test 3790 266 266.000000000000 Xi(tan=14.3007, x=-0.0697565, y=-0.997564): 14.300666256712\n\n    test 3791 273 272.986623544405 Phi(tan=-19.1668, x=1.0, y=-19.1668): -19.081136687728\n    test 3792 273 272.996652532418 Beta(tan=-19.1025, x=1.0, y=-19.1025): -19.081136687728\n    test 3793 273 273.006715074128 Theta(tan=-19.0384, x=1.0, y=-19.0384): -19.081136687728\n    test 3794 273 273.001673300226 Mu(tan=-19.0705, x=0.0523651, y=-0.998628), iteration=2: -19.081136687728\n    test 3795 273 273.006692598711 Chi(tan=-19.0386, x=1.0, y=-19.0386), iteration=3: -19.081136687728\n    test 3796 273 273.000000000000 Xi(tan=-19.0811, x=0.052336, y=-0.99863): -19.081136687728\n\n    test 3797 273 272.986623544405 Phi(tan=-19.1668, x=0.0521028, y=-0.998642): -19.081136687728\n    test 3798 273 272.996652532418 Beta(tan=-19.1025, x=0.0522776, y=-0.998633): -19.081136687728\n    test 3799 273 273.006715074128 Theta(tan=-19.0384, x=0.052453, y=-0.998623): -19.081136687728\n    test 3800 273 273.001673300226 Mu(tan=-19.0705, x=0.0523651, y=-0.998628): -19.081136687728\n    test 3801 273 273.006692598711 Chi(tan=-19.0386, x=0.0524526, y=-0.998623): -19.081136687728\n    test 3802 273 273.000000000000 Xi(tan=-19.0811, x=0.052336, y=-0.99863): -19.081136687728\n\n    test 3803 280 279.956225698278 Phi(tan=-5.69673, x=1.0, y=-5.69673): -5.671281819618\n    test 3804 280 279.989045850720 Beta(tan=-5.67763, x=1.0, y=-5.67763): -5.671281819618\n    test 3805 280 280.021969758476 Theta(tan=-5.65859, x=1.0, y=-5.65859): -5.671281819618\n    test 3806 280 280.005475329461 Mu(tan=-5.66811, x=0.173742, y=-0.984791), iteration=3: -5.671281819618\n    test 3807 280 280.021898241655 Chi(tan=-5.65863, x=1.0, y=-5.65863), iteration=3: -5.671281819618\n    test 3808 280 280.000000000000 Xi(tan=-5.67128, x=0.173648, y=-0.984808): -5.671281819618\n\n    test 3809 280 279.956225698278 Phi(tan=-5.69673, x=0.172896, y=-0.98494): -5.671281819618\n    test 3810 280 279.989045850720 Beta(tan=-5.67763, x=0.17346, y=-0.984841): -5.671281819618\n    test 3811 280 280.021969758476 Theta(tan=-5.65859, x=0.174026, y=-0.984741): -5.671281819618\n    test 3812 280 280.005475329461 Mu(tan=-5.66811, x=0.173742, y=-0.984791): -5.671281819618\n    test 3813 280 280.021898241655 Chi(tan=-5.65863, x=0.174025, y=-0.984741): -5.671281819618\n    test 3814 280 280.000000000000 Xi(tan=-5.67128, x=0.173648, y=-0.984808): -5.671281819618\n\n    test 3815 287 286.928409983832 Phi(tan=-3.28553, x=1.0, y=-3.28553): -3.270852618484\n    test 3816 287 286.982086527391 Beta(tan=-3.27451, x=1.0, y=-3.27451): -3.270852618484\n    test 3817 287 287.035912792570 Theta(tan=-3.26354, x=1.0, y=-3.26354): -3.270852618484\n    test 3818 287 287.008952804861 Mu(tan=-3.26903, x=0.292521, y=-0.956259), iteration=3: -3.270852618484\n    test 3819 287 287.035802540646 Chi(tan=-3.26356, x=1.0, y=-3.26356), iteration=3: -3.270852618484\n    test 3820 287 287.000000000000 Xi(tan=-3.27085, x=0.292372, y=-0.956305): -3.270852618484\n\n    test 3821 287 286.928409983832 Phi(tan=-3.28553, x=0.291177, y=-0.956669): -3.270852618484\n    test 3822 287 286.982086527391 Beta(tan=-3.27451, x=0.292073, y=-0.956396): -3.270852618484\n    test 3823 287 287.035912792570 Theta(tan=-3.26354, x=0.292971, y=-0.956121): -3.270852618484\n    test 3824 287 287.008952804861 Mu(tan=-3.26903, x=0.292521, y=-0.956259): -3.270852618484\n    test 3825 287 287.035802540646 Chi(tan=-3.26356, x=0.292969, y=-0.956122): -3.270852618484\n    test 3826 287 287.000000000000 Xi(tan=-3.27085, x=0.292372, y=-0.956305): -3.270852618484\n\n    test 3827 294 293.904820699861 Phi(tan=-2.25612, x=1.0, y=-2.25612): -2.246036773904\n    test 3828 294 293.976186490838 Beta(tan=-2.24855, x=1.0, y=-2.24855): -2.246036773904\n    test 3829 294 294.047712986128 Theta(tan=-2.24101, x=1.0, y=-2.24101): -2.246036773904\n    test 3830 294 294.011899457288 Mu(tan=-2.24478, x=0.406926, y=-0.913461), iteration=3: -2.246036773904\n    test 3831 294 294.047579285201 Chi(tan=-2.24103, x=1.0, y=-2.24103), iteration=3: -2.246036773904\n    test 3832 294 294.000000000000 Xi(tan=-2.24604, x=0.406737, y=-0.913545): -2.246036773904\n\n    test 3833 294 293.904820699861 Phi(tan=-2.25612, x=0.405219, y=-0.91422): -2.246036773904\n    test 3834 294 293.976186490838 Beta(tan=-2.24855, x=0.406357, y=-0.913714): -2.246036773904\n    test 3835 294 294.047712986128 Theta(tan=-2.24101, x=0.407497, y=-0.913206): -2.246036773904\n    test 3836 294 294.011899457288 Mu(tan=-2.24478, x=0.406926, y=-0.913461): -2.246036773904\n    test 3837 294 294.047579285201 Chi(tan=-2.24103, x=0.407495, y=-0.913207): -2.246036773904\n    test 3838 294 294.000000000000 Xi(tan=-2.24604, x=0.406737, y=-0.913545): -2.246036773904\n\n    test 3839 301 300.886857256907 Phi(tan=-1.67175, x=1.0, y=-1.67175): -1.664279482351\n    test 3840 301 300.971695886665 Beta(tan=-1.66614, x=1.0, y=-1.66614): -1.664279482351\n    test 3841 301 301.056668635072 Theta(tan=-1.66056, x=1.0, y=-1.66056): -1.664279482351\n    test 3842 301 301.014140307923 Mu(tan=-1.66335, x=0.51525, y=-0.85704), iteration=3: -1.664279482351\n    test 3843 301 301.056528796205 Chi(tan=-1.66057, x=1.0, y=-1.66057), iteration=3: -1.664279482351\n    test 3844 301 301.000000000000 Xi(tan=-1.66428, x=0.515038, y=-0.857167): -1.664279482351\n\n    test 3845 301 300.886857256907 Phi(tan=-1.67175, x=0.513344, y=-0.858183): -1.664279482351\n    test 3846 301 300.971695886665 Beta(tan=-1.66614, x=0.514615, y=-0.857422): -1.664279482351\n    test 3847 301 301.056668635072 Theta(tan=-1.66056, x=0.515886, y=-0.856657): -1.664279482351\n    test 3848 301 301.014140307923 Mu(tan=-1.66335, x=0.51525, y=-0.85704): -1.664279482351\n    test 3849 301 301.056528796205 Chi(tan=-1.66057, x=0.515884, y=-0.856659): -1.664279482351\n    test 3850 301 301.000000000000 Xi(tan=-1.66428, x=0.515038, y=-0.857167): -1.664279482351\n\n    test 3851 308 307.875591521416 Phi(tan=-1.28569, x=1.0, y=-1.28569): -1.279941632193\n    test 3852 308 307.968882364101 Beta(tan=-1.28138, x=1.0, y=-1.28138): -1.279941632193\n    test 3853 308 308.062249364871 Theta(tan=-1.27708, x=1.0, y=-1.27708): -1.279941632193\n    test 3854 308 308.015542045055 Mu(tan=-1.27923, x=0.615875, y=-0.787844), iteration=3: -1.279941632193\n    test 3855 308 308.062119501658 Chi(tan=-1.27709, x=1.0, y=-1.27709), iteration=3: -1.279941632193\n    test 3856 308 308.000000000000 Xi(tan=-1.27994, x=0.615661, y=-0.788011): -1.279941632193\n\n    test 3857 308 307.875591521416 Phi(tan=-1.28569, x=0.613949, y=-0.789346): -1.279941632193\n    test 3858 308 307.968882364101 Beta(tan=-1.28138, x=0.615233, y=-0.788345): -1.279941632193\n    test 3859 308 308.062249364871 Theta(tan=-1.27708, x=0.616517, y=-0.787341): -1.279941632193\n    test 3860 308 308.015542045055 Mu(tan=-1.27923, x=0.615875, y=-0.787844): -1.279941632193\n    test 3861 308 308.062119501659 Chi(tan=-1.27709, x=0.616515, y=-0.787343): -1.279941632193\n    test 3862 308 308.000000000000 Xi(tan=-1.27994, x=0.615661, y=-0.788011): -1.279941632193\n\n    test 3863 315 314.871703066479 Phi(tan=-1.00449, x=1.0, y=-1.00449): -1.000000000000\n    test 3864 315 314.967914975772 Beta(tan=-1.00112, x=1.0, y=-1.00112): -1.000000000000\n    test 3865 315 315.064127246955 Theta(tan=-0.997764, x=1.0, y=-0.997764): -1.000000000000\n    test 3866 315 315.016020986969 Mu(tan=-0.999441, x=0.707304, y=-0.706909), iteration=2: -1.000000000000\n    test 3867 315 315.064019491023 Chi(tan=-0.997768, x=1.0, y=-0.997768), iteration=3: -1.000000000000\n    test 3868 315 315.000000000000 Xi(tan=-1, x=0.707107, y=-0.707107): -1.000000000000\n\n    test 3869 315 314.871703066479 Phi(tan=-1.00449, x=0.705522, y=-0.708688): -1.000000000000\n    test 3870 315 314.967914975772 Beta(tan=-1.00112, x=0.706711, y=-0.707503): -1.000000000000\n    test 3871 315 315.064127246955 Theta(tan=-0.997764, x=0.707898, y=-0.706315): -1.000000000000\n    test 3872 315 315.016020986969 Mu(tan=-0.999441, x=0.707304, y=-0.706909): -1.000000000000\n    test 3873 315 315.064019491023 Chi(tan=-0.997768, x=0.707896, y=-0.706316): -1.000000000000\n    test 3874 315 315.000000000000 Xi(tan=-1, x=0.707107, y=-0.707107): -1.000000000000\n\n    test 3875 322 321.875436413614 Phi(tan=-0.784793, x=1.0, y=-0.784793): -0.781285626507\n    test 3876 322 321.968853692070 Beta(tan=-0.782161, x=1.0, y=-0.782161): -0.781285626507\n    test 3877 322 322.062195432519 Theta(tan=-0.779539, x=1.0, y=-0.779539): -0.781285626507\n    test 3878 322 322.015548148041 Mu(tan=-0.780849, x=0.788178, y=-0.615448), iteration=2: -0.781285626507\n    test 3879 322 322.062116180014 Chi(tan=-0.779541, x=1.0, y=-0.779541), iteration=3: -0.781285626507\n    test 3880 322 322.000000000000 Xi(tan=-0.781286, x=0.788011, y=-0.615661): -0.781285626507\n\n    test 3881 322 321.875436413614 Phi(tan=-0.784793, x=0.78667, y=-0.617373): -0.781285626507\n    test 3882 322 321.968853692070 Beta(tan=-0.782161, x=0.787676, y=-0.61609): -0.781285626507\n    test 3883 322 322.062195432519 Theta(tan=-0.779539, x=0.788679, y=-0.614806): -0.781285626507\n    test 3884 322 322.015548148041 Mu(tan=-0.780849, x=0.788178, y=-0.615448): -0.781285626507\n    test 3885 322 322.062116180014 Chi(tan=-0.779541, x=0.788678, y=-0.614807): -0.781285626507\n    test 3886 322 322.000000000000 Xi(tan=-0.781286, x=0.788011, y=-0.615661): -0.781285626507\n\n    test 3887 329 328.886583352158 Phi(tan=-0.603558, x=1.0, y=-0.603558): -0.600860619028\n    test 3888 329 328.971645254782 Beta(tan=-0.601534, x=1.0, y=-0.601534): -0.600860619028\n    test 3889 329 329.056573396118 Theta(tan=-0.599518, x=1.0, y=-0.599518): -0.600860619028\n    test 3890 329 329.014151085164 Mu(tan=-0.600525, x=0.857294, y=-0.514826), iteration=3: -0.600860619028\n    test 3891 329 329.056522930537 Chi(tan=-0.599519, x=1.0, y=-0.599519), iteration=3: -0.600860619028\n    test 3892 329 329.000000000000 Xi(tan=-0.600861, x=0.857167, y=-0.515038): -0.600860619028\n\n    test 3893 329 328.886583352158 Phi(tan=-0.603558, x=0.856146, y=-0.516734): -0.600860619028\n    test 3894 329 328.971645254782 Beta(tan=-0.601534, x=0.856912, y=-0.515462): -0.600860619028\n    test 3895 329 329.056573396118 Theta(tan=-0.599518, x=0.857675, y=-0.514191): -0.600860619028\n    test 3896 329 329.014151085164 Mu(tan=-0.600525, x=0.857294, y=-0.514826): -0.600860619028\n    test 3897 329 329.056522930537 Chi(tan=-0.599519, x=0.857675, y=-0.514192): -0.600860619028\n    test 3898 329 329.000000000000 Xi(tan=-0.600861, x=0.857167, y=-0.515038): -0.600860619028\n\n    test 3899 336 335.904492119885 Phi(tan=-0.447228, x=1.0, y=-0.447228): -0.445228685309\n    test 3900 336 335.976125752178 Beta(tan=-0.445728, x=1.0, y=-0.445728): -0.445228685309\n    test 3901 336 336.047598736385 Theta(tan=-0.444234, x=1.0, y=-0.444234): -0.445228685309\n    test 3902 336 336.011912385791 Mu(tan=-0.44498, x=0.91363, y=-0.406547), iteration=2: -0.445228685309\n    test 3903 336 336.047572248701 Chi(tan=-0.444234, x=1.0, y=-0.444234), iteration=3: -0.445228685309\n    test 3904 336 336.000000000000 Xi(tan=-0.445229, x=0.913545, y=-0.406737): -0.445228685309\n\n    test 3905 336 335.904492119885 Phi(tan=-0.447228, x=0.912866, y=-0.408259): -0.445228685309\n    test 3906 336 335.976125752178 Beta(tan=-0.445728, x=0.913376, y=-0.407117): -0.445228685309\n    test 3907 336 336.047598736385 Theta(tan=-0.444234, x=0.913883, y=-0.405978): -0.445228685309\n    test 3908 336 336.011912385791 Mu(tan=-0.44498, x=0.91363, y=-0.406547): -0.445228685309\n    test 3909 336 336.047572248701 Chi(tan=-0.444234, x=0.913883, y=-0.405978): -0.445228685309\n    test 3910 336 336.000000000000 Xi(tan=-0.445229, x=0.913545, y=-0.406737): -0.445228685309\n\n    test 3911 343 342.928103650624 Phi(tan=-0.307103, x=1.0, y=-0.307103): -0.305730681459\n    test 3912 343 342.982029901147 Beta(tan=-0.306074, x=1.0, y=-0.306074): -0.305730681459\n    test 3913 343 343.035806278435 Theta(tan=-0.305047, x=1.0, y=-0.305047): -0.305730681459\n    test 3914 343 343.008964858001 Mu(tan=-0.30556, x=0.95635, y=-0.292222), iteration=3: -0.305730681459\n    test 3915 343 343.035795980594 Chi(tan=-0.305048, x=1.0, y=-0.305048), iteration=3: -0.305730681459\n    test 3916 343 343.000000000000 Xi(tan=-0.305731, x=0.956305, y=-0.292372): -0.305730681459\n\n    test 3917 343 342.928103650624 Phi(tan=-0.307103, x=0.955937, y=-0.293571): -0.305730681459\n    test 3918 343 342.982029901147 Beta(tan=-0.306074, x=0.956213, y=-0.292672): -0.305730681459\n    test 3919 343 343.035806278435 Theta(tan=-0.305047, x=0.956487, y=-0.291774): -0.305730681459\n    test 3920 343 343.008964858001 Mu(tan=-0.30556, x=0.95635, y=-0.292222): -0.305730681459\n    test 3921 343 343.035795980594 Chi(tan=-0.305048, x=0.956487, y=-0.291774): -0.305730681459\n    test 3922 343 343.000000000000 Xi(tan=-0.305731, x=0.956305, y=-0.292372): -0.305730681459\n\n    test 3923 350 349.956013326444 Phi(tan=-0.177119, x=1.0, y=-0.177119): -0.176326980708\n    test 3924 350 349.989006593437 Beta(tan=-0.176525, x=1.0, y=-0.176525): -0.176326980708\n    test 3925 350 350.021895915483 Theta(tan=-0.175933, x=1.0, y=-0.175933): -0.176326980708\n    test 3926 350 350.005483685534 Mu(tan=-0.176228, x=0.984824, y=-0.173554), iteration=3: -0.176326980708\n    test 3927 350 350.021893693784 Chi(tan=-0.175933, x=1.0, y=-0.175933), iteration=3: -0.176326980708\n    test 3928 350 350.000000000000 Xi(tan=-0.176327, x=0.984808, y=-0.173648): -0.176326980708\n\n    test 3929 350 349.956013326444 Phi(tan=-0.177119, x=0.984674, y=-0.174404): -0.176326980708\n    test 3930 350 349.989006593437 Beta(tan=-0.176525, x=0.984774, y=-0.173837): -0.176326980708\n    test 3931 350 350.021895915483 Theta(tan=-0.175933, x=0.984874, y=-0.173272): -0.176326980708\n    test 3932 350 350.005483685534 Mu(tan=-0.176228, x=0.984824, y=-0.173554): -0.176326980708\n    test 3933 350 350.021893693784 Chi(tan=-0.175933, x=0.984874, y=-0.173272): -0.176326980708\n    test 3934 350 350.000000000000 Xi(tan=-0.176327, x=0.984808, y=-0.173648): -0.176326980708\n\n    test 3935 357 356.986554851958 Phi(tan=-0.0526431, x=1.0, y=-0.0526431): -0.052407779283\n    test 3936 357 356.996639834512 Beta(tan=-0.0524666, x=1.0, y=-0.0524666): -0.052407779283\n    test 3937 357 357.006691189366 Theta(tan=-0.0522907, x=1.0, y=-0.0522907): -0.052407779283\n    test 3938 357 357.001676003026 Mu(tan=-0.0523784, x=0.998631, y=-0.0523067), iteration=3: -0.052407779283\n    test 3939 357 357.006691127690 Chi(tan=-0.0522907, x=1.0, y=-0.0522907), iteration=3: -0.052407779283\n    test 3940 357 357.000000000000 Xi(tan=-0.0524078, x=0.99863, y=-0.052336): -0.052407779283\n\n    test 3941 357 356.986554851958 Phi(tan=-0.0526431, x=0.998617, y=-0.0525703): -0.052407779283\n    test 3942 357 356.996639834512 Beta(tan=-0.0524666, x=0.998626, y=-0.0523945): -0.052407779283\n    test 3943 357 357.006691189366 Theta(tan=-0.0522907, x=0.998636, y=-0.0522193): -0.052407779283\n    test 3944 357 357.001676003026 Mu(tan=-0.0523784, x=0.998631, y=-0.0523067): -0.052407779283\n    test 3945 357 357.006691127690 Chi(tan=-0.0522907, x=0.998636, y=-0.0522193): -0.052407779283\n    test 3946 357 357.000000000000 Xi(tan=-0.0524078, x=0.99863, y=-0.052336): -0.052407779283\n\n    test 3947 abs: AuxAngle(tan=2.0, x=1.0, y=2.0)\n    test 3948 add: AuxAngle(tan=-1.33333, x=-3, y=4.0)\n    test 3949 eq : True\n    test 3950 float: 2.0\n    test 3951 sub: AuxAngle(tan=0.0, x=1.0, y=0.0)\n    test 3952 neg: AuxAngle(tan=-2, x=1.0, y=-2)\n    test 3953 ne : False\n    test 3954 pos: AuxAngle(tan=2.0, x=1.0, y=2.0)\n    test 3955 iadd: AuxAngle(tan=-1.33333, x=-3, y=4.0)\n    test 3956 isub: AuxAngle(tan=0.0, x=1.0, y=0.0)\n    test 3957 radd: AuxAngle(tan=0.0, x=1.0, y=0.0)\n    test 3958 rsub: AuxAngle(tan=0.0, x=1.0, y=0.0)\n\n    test 3959 N: 5\n    test 3960 N /sum: 2.748844788926\n    test 3961 +N/sum: 3.071245975238\n    test 3962 2N/sum: 3.071245975238\n    test 3963 Te/sum: 57.582664067074\n    test 3964 Tg/sum: -182.807444594653\n\n    50 of 3964 testAuxilats.py tests (1.3%) FAILED, ALL KNOWN (pygeodesy 26.3.26 Python 3.11.9 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 1.24.2 scipy 1.10.1 Math 2 macOS 26.3.1 isLazy 0 -W  default) 13.158 sec\nrunning /usr/local/bin/p....n3.11 -W default ~/PyGeodesy/test/testAzimuthal.py\n./pygeodesy/azimuthal.py:636: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return self.datum.ellipsoid.geodesic\n./pygeodesy/azimuthal.py:937: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return self.datum.ellipsoid.geodesic\n\n    testing testAzimuthal.py 25.05.09 (module pygeodesy.azimuthal 25.11.29)\n    test 1 Equidistant(48.833333, 2.333333, name='Paris'): 48.833333 2.333333\n    test 2 forward: -37467.812512, 230294.518853, 50.9, 1.8, 350.759218, 1.000223\n    test 3 reverse: -37467.812512, 230294.518853, 50.9, 1.8, 350.759218, 1.000223\n    test 4 iteration: None\n    test 5 copy(<class 'type'>): (<class 'pygeodesy.azimuthal.Equidistant'>, True)\n    test 6 Equidistant.copy(): (<class 'pygeodesy.azimuthal.Equidistant'>, True)\n    test 7 reverse: -38000.0, 230000.0, 50.897321, 1.792455, 350.61849, 1.000222\n    test 8 forward: -38000.0, 230000.0, 50.897321, 1.792455, 350.61849, 1.000222\n    test 9 reverse: LatLon(50°53′50.36″N, 001°47′32.84″E)\n    test 10 reverse: LatLon(50°53′50.36″N, 001°47′32.84″E)\n    test 11 reverse: LatLon(50°53′50.36″N, 001°47′32.84″E)\n    test 12 reverse: LatLon(50°53′50.36″N, 001°47′32.84″E)\n    test 13 Equidistant(51.4934, 0.0098, name='Greenwich'): 51.4934 0.0098\n    test 14 forward: 170420.92566, -293667.828613, 48.833333, 2.333333, 149.872606, 1.000472\n    test 15 reverse: 170420.92566, -293667.828613, 48.833333, 2.333333, 149.872606, 1.000472\n    test 16 iteration: None\n    test 17 hypot: 339535.102  FAILED, KNOWN, expected 338901.865\n    test 18 antipodal: (170420.92566, -293667.828613, -48.833333, -177.666667, 0.0, 1.000472, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n\n    test 19 Gnomonic(48.833333, 2.333333, name='Paris'): 48.833333 2.333333\n    test 20 forward: -37484.520018, 230397.210923, 50.9, 1.8, 350.759218, 1.000669\n    test 21 reverse: -37484.520018, 230397.210923, 50.9, 1.8, 350.759218, 1.000223\n    test 22 iteration: None\n    test 23 copy(<class 'type'>): (<class 'pygeodesy.azimuthal.Gnomonic'>, True)\n    test 24 Gnomonic.copy(): (<class 'pygeodesy.azimuthal.Gnomonic'>, True)\n    test 25 reverse: -38000.0, 230000.0, 50.896405, 1.792706, 350.61849, 1.000222\n    test 26 forward: -38000.0, 230000.0, 50.896405, 1.792706, 350.61849, 1.000667\n    test 27 reverse: LatLon(50°53′47.06″N, 001°47′33.74″E)\n    test 28 reverse: LatLon(50°53′47.06″N, 001°47′33.74″E)\n    test 29 reverse: LatLon(50°53′47.06″N, 001°47′33.74″E)\n    test 30 reverse: LatLon(50°53′47.06″N, 001°47′33.74″E)\n    test 31 Gnomonic(51.4934, 0.0098, name='Greenwich'): 51.4934 0.0098\n    test 32 forward: 170581.851218, -293945.134107, 48.833333, 2.333333, 149.872606, 1.001416\n    test 33 reverse: 170581.851218, -293945.134107, 48.833333, 2.333333, 149.872606, 1.000472\n    test 34 iteration: None\n    test 35 hypot: 339855.719  FAILED, KNOWN, expected 338901.865\n    test 36 antipodal: (170581.851218, -293945.134107, -48.833333, -177.666667, 0.0, 1.000472, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n\n    test 37 EquidistantExact(48.833333, 2.333333, name='Paris'): 48.833333 2.333333\n    test 38 forward: -37526.978232, 230000.911579, 50.9, 1.8, 350.325442, 0.999778\n    test 39 reverse: -37526.978232, 230000.911579, 50.9, 1.8, 350.325442, 0.999778\n    test 40 iteration: None\n    test 41 copy(<class 'type'>): (<class 'pygeodesy.azimuthal.EquidistantExact'>, True)\n    test 42 EquidistantExact.copy(): (<class 'pygeodesy.azimuthal.EquidistantExact'>, True)\n    test 43 reverse: -38000.0, 230000.0, 50.899962, 1.793278, 350.205524, 0.999778\n    test 44 forward: -38000.0, 230000.0, 50.899962, 1.793278, 350.205524, 0.999778\n    test 45 reverse: LatLon(50°53′59.86″N, 001°47′35.8″E)\n    test 46 reverse: LatLon(50°53′59.86″N, 001°47′35.8″E)\n    test 47 reverse: LatLon(50°53′59.86″N, 001°47′35.8″E)\n    test 48 reverse: LatLon(50°53′59.86″N, 001°47′35.8″E)\n    test 49 EquidistantExact(51.4934, 0.0098, name='Greenwich'): 51.4934 0.0098\n    test 50 forward: 170617.186469, -293210.754313, 48.833333, 2.333333, 151.589952, 0.999529\n    test 51 reverse: 170617.186469, -293210.754313, 48.833333, 2.333333, 151.589952, 0.999529\n    test 52 iteration: None\n    test 53 hypot: 339238.516  FAILED, KNOWN, expected 338901.865\n    test 54 antipodal: (170617.186469, -293210.754313, -48.833333, -177.666667, 0.0, 0.999529, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n\n    test 55 GnomonicExact(48.833333, 2.333333, name='Paris'): 48.833333 2.333333\n    test 56 forward: -37543.665895, 230103.189403, 50.9, 1.8, 350.325442, 0.999333\n    test 57 reverse: -37543.665895, 230103.189403, 50.9, 1.8, 350.325442, 0.999333\n    test 58 iteration: 3\n    test 59 copy(<class 'type'>): (<class 'pygeodesy.azimuthal.GnomonicExact'>, True)\n    test 60 GnomonicExact.copy(): (<class 'pygeodesy.azimuthal.GnomonicExact'>, True)\n    test 61 reverse: -38000.0, 230000.0, 50.899044, 1.793528, 350.205718, 0.999333\n    test 62 forward: -37999.995965, 229999.975581, 50.899044, 1.793528, 350.205718, 0.999334\n    test 63 reverse: LatLon(50°53′56.56″N, 001°47′36.7″E)\n    test 64 reverse: LatLon(50°53′56.56″N, 001°47′36.7″E)\n    test 65 reverse: LatLon(50°53′56.56″N, 001°47′36.7″E)\n    test 66 reverse: LatLon(50°53′56.56″N, 001°47′36.7″E)\n    test 67 GnomonicExact(51.4934, 0.0098, name='Greenwich'): 51.4934 0.0098\n    test 68 forward: 170778.089295, -293487.270649, 48.833333, 2.333333, 151.589952, 0.998587\n    test 69 reverse: 170778.089295, -293487.270649, 48.833333, 2.333334, 151.589953, 0.998588\n    test 70 iteration: 3\n    test 71 hypot: 339558.439  FAILED, KNOWN, expected 338901.963\n    test 72 antipodal: (170778.089295, -293487.270649, -48.833333, -177.666666, 0.0, 0.998588, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n\n    test 73 EquidistantKarney(48.833333, 2.333333, name='Paris'): 48.833333 2.333333\n    test 74 forward: -37526.978232, 230000.911579, 50.9, 1.8, 350.325442, 0.999778\n    test 75 reverse: -37526.978232, 230000.911579, 50.9, 1.8, 350.325442, 0.999778\n    test 76 iteration: None\n    test 77 copy(<class 'type'>): (<class 'pygeodesy.azimuthal.EquidistantKarney'>, True)\n    test 78 EquidistantKarney.copy(): (<class 'pygeodesy.azimuthal.EquidistantKarney'>, True)\n    test 79 reverse: -38000.0, 230000.0, 50.899962, 1.793278, 350.205524, 0.999778\n    test 80 forward: -38000.0, 230000.0, 50.899962, 1.793278, 350.205524, 0.999778\n    test 81 reverse: LatLon(50°53′59.86″N, 001°47′35.8″E)\n    test 82 reverse: LatLon(50°53′59.86″N, 001°47′35.8″E)\n    test 83 reverse: LatLon(50°53′59.86″N, 001°47′35.8″E)\n    test 84 reverse: LatLon(50°53′59.86″N, 001°47′35.8″E)\n    test 85 EquidistantKarney(51.4934, 0.0098, name='Greenwich'): 51.4934 0.0098\n    test 86 forward: 170617.186469, -293210.754313, 48.833333, 2.333333, 151.589952, 0.999529\n    test 87 reverse: 170617.186469, -293210.754313, 48.833333, 2.333333, 151.589952, 0.999529\n    test 88 iteration: None\n    test 89 hypot: 339238.516  FAILED, KNOWN, expected 338901.865\n    test 90 antipodal: (170617.186469, -293210.754313, -48.833333, -177.666667, 0.0, 0.999529, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n\n    test 91 GnomonicKarney(48.833333, 2.333333, name='Paris'): 48.833333 2.333333\n    test 92 forward: -37543.665895, 230103.189403, 50.9, 1.8, 350.325442, 0.999333\n    test 93 reverse: -37543.665895, 230103.189403, 50.9, 1.8, 350.325442, 0.999333\n    test 94 iteration: 3\n    test 95 copy(<class 'type'>): (<class 'pygeodesy.azimuthal.GnomonicKarney'>, True)\n    test 96 GnomonicKarney.copy(): (<class 'pygeodesy.azimuthal.GnomonicKarney'>, True)\n    test 97 reverse: -38000.0, 230000.0, 50.899044, 1.793528, 350.205718, 0.999333\n    test 98 forward: -37999.995965, 229999.975581, 50.899044, 1.793528, 350.205718, 0.999334\n    test 99 reverse: LatLon(50°53′56.56″N, 001°47′36.7″E)\n    test 100 reverse: LatLon(50°53′56.56″N, 001°47′36.7″E)\n    test 101 reverse: LatLon(50°53′56.56″N, 001°47′36.7″E)\n    test 102 reverse: LatLon(50°53′56.56″N, 001°47′36.7″E)\n    test 103 GnomonicKarney(51.4934, 0.0098, name='Greenwich'): 51.4934 0.0098\n    test 104 forward: 170778.089295, -293487.270649, 48.833333, 2.333333, 151.589952, 0.998587\n    test 105 reverse: 170778.089295, -293487.270649, 48.833333, 2.333334, 151.589953, 0.998588\n    test 106 iteration: 3\n    test 107 hypot: 339558.439  FAILED, KNOWN, expected 338901.963\n    test 108 antipodal: (170778.089295, -293487.270649, -48.833333, -177.666666, 0.0, 0.998588, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n\n    test 109 pygeodesy.ellipsoidalExact: 20.837802°N, 037.265561°E Random +/- 45\n    test 110 pygeodesy.ellipsoidalExact: 20.731625°N, 037.239134°E, 47.241037°N, 090.706953°W  d 12073 meter  Spherical\n    test 111 pygeodesy.ellipsoidalExact: 20.837802°N, 037.265561°E, 47.570386°N, 090.710621°W  d 6.17408e-09 meter  EquidistantExact\n    test 112 pygeodesy.ellipsoidalExact: 20.782926°N, 037.386689°E, 47.157338°N, 090.535988°W  d 13996.9 meter  Equidistant\n    test 113 pygeodesy.ellipsoidalExact: 00.054876°N, 000.121128°W  00.263%, 000.325% of Random\n    test 114 pygeodesy.ellipsoidalExact: 20.178788°N, 037.863183°E, 25.430614°N, 029.712824°E  d 95962.9 meter  Spherical\n    test 115 pygeodesy.ellipsoidalExact: 20.837802°N, 037.265561°E, 25.165736°N, 030.636290°E  d 4.44746e-09 meter  EquidistantExact\n    test 116 pygeodesy.ellipsoidalExact: 20.476289°N, 037.616298°E, 25.350745°N, 029.993058°E  d 54200.8 meter  Equidistant\n    test 117 pygeodesy.ellipsoidalExact: 00.361512°N, 000.350737°W  01.735%, 000.941% of Random\n    test 118 pygeodesy.ellipsoidalExact: 20.709830°N, 037.325305°E, 23.986765°S, 006.357154°E  d 15473.9 meter  Spherical\n    test 119 pygeodesy.ellipsoidalExact: 20.837802°N, 037.265561°E, 24.154986°S, 006.451641°E  d 2.4412e-08 meter  EquidistantExact\n    test 120 pygeodesy.ellipsoidalExact: 20.649633°N, 037.393582°E, 24.020776°S, 006.424760°E  d 24734.1 meter  Equidistant\n    test 121 pygeodesy.ellipsoidalExact: 00.188169°N, 000.128021°W  00.903%, 000.344% of Random\n    test 122 pygeodesy.ellipsoidalExact: 20.711361°N, 037.299061°E, 05.817097°S, 011.555753°E  d 14426.8 meter  Spherical\n    test 123 pygeodesy.ellipsoidalExact: 20.837802°N, 037.265561°E, 05.951600°S, 011.594991°E  d 3.44478e-09 meter  EquidistantExact\n    test 124 pygeodesy.ellipsoidalExact: 20.741251°N, 037.340858°E, 05.878220°S, 011.509974°E  d 13256.2 meter  Equidistant\n    test 125 pygeodesy.ellipsoidalExact: 00.096551°N, 000.075297°W  00.463%, 000.202% of Random\n    test 126 pygeodesy.ellipsoidalExact: 20.575926°N, 037.192481°E, 24.714874°S, 101.748846°E  d 29975.9 meter  Spherical\n    test 127 pygeodesy.ellipsoidalExact: 20.837802°N, 037.265561°E, 24.833538°S, 101.692379°E  d 8.88161e-09 meter  EquidistantExact\n    test 128 pygeodesy.ellipsoidalExact: 20.655364°N, 037.264116°E, 24.641480°S, 101.782492°E  d 20198.9 meter  Equidistant\n    test 129 pygeodesy.ellipsoidalExact: 00.182438°N, 000.001445°E  00.876%, 000.004% of Random\n    test 130 pygeodesy.ellipsoidalExact: 20.580088°N, 037.318129°E, 24.532151°N, 030.587744°W  d 29053.1 meter  Spherical\n    test 131 pygeodesy.ellipsoidalExact: 20.837802°N, 037.265561°E, 24.827619°N, 030.502704°W  d 1.05898e-09 meter  EquidistantExact\n    test 132 pygeodesy.ellipsoidalExact: 20.657872°N, 037.365880°E, 24.595305°N, 030.618001°W  d 22494.2 meter  Equidistant\n    test 133 pygeodesy.ellipsoidalExact: 00.179930°N, 000.100319°W  00.863%, 000.269% of Random\n    test 134 pygeodesy.ellipsoidalExact: 20.563907°N, 037.369395°E, 35.558645°N, 066.016542°W  d 32195.3 meter  Spherical\n    test 135 pygeodesy.ellipsoidalExact: 20.837802°N, 037.265561°E, 35.944754°N, 065.829690°W  d 6.13477e-09 meter  EquidistantExact\n    test 136 pygeodesy.ellipsoidalExact: 20.685070°N, 037.419860°E, 35.556493°N, 066.016170°W  d 23326.1 meter  Equidistant\n    test 137 pygeodesy.ellipsoidalExact: 00.152732°N, 000.154299°W  00.733%, 000.414% of Random\n    test 138 pygeodesy.ellipsoidalExact: 20.653766°N, 037.295820°E, 49.956972°N, 009.743883°W  d 20617.5 meter  Spherical\n    test 139 pygeodesy.ellipsoidalExact: 20.837802°N, 037.265561°E, 50.163866°N, 009.239277°W  d 8.19485e-10 meter  EquidistantExact\n    test 140 pygeodesy.ellipsoidalExact: 20.778102°N, 037.357245°E, 49.843129°N, 009.925447°W  d 11609.8 meter  Equidistant\n    test 141 pygeodesy.ellipsoidalExact: 00.059700°N, 000.091684°W  00.286%, 000.246% of Random\n    test 142 pygeodesy.ellipsoidalExact: 20.669139°N, 037.346294°E, 25.229903°N, 036.730998°E  d 20478.8 meter  Spherical\n    test 143 pygeodesy.ellipsoidalExact: 20.837802°N, 037.265561°E, 25.068982°N, 036.706044°E  d 1.02643e-08 meter  EquidistantExact\n    test 144 pygeodesy.ellipsoidalExact: 20.355166°N, 037.510605°E, 25.474475°N, 036.786569°E  d 59225.7 meter  Equidistant\n    test 145 pygeodesy.ellipsoidalExact: 00.482636°N, 000.245043°W  02.316%, 000.658% of Random\n    test 146 pygeodesy.ellipsoidalExact: 20.651840°N, 037.302123°E, 07.288325°N, 033.384623°E  d 20937.7 meter  Spherical\n    test 147 pygeodesy.ellipsoidalExact: 20.837802°N, 037.265561°E, 07.108581°N, 033.280790°E  d 6.38364e-09 meter  EquidistantExact\n    test 148 pygeodesy.ellipsoidalExact: 20.486897°N, 037.336334°E, 07.474387°N, 033.557659°E  d 39543.3 meter  Equidistant\n    test 149 pygeodesy.ellipsoidalExact: 00.350904°N, 000.070773°W  01.684%, 000.190% of Random\n    test 150 pygeodesy.ellipsoidalExact: 20.563067°N, 037.338802°E, 36.599711°S, 073.027235°W  d 31359.2 meter  Spherical\n    test 151 pygeodesy.ellipsoidalExact: 20.837802°N, 037.265561°E, 36.849146°S, 072.969640°W  d 6.73055e-09 meter  EquidistantExact\n    test 152 pygeodesy.ellipsoidalExact: 20.610465°N, 037.435977°E, 36.598020°S, 073.014794°W  d 30799 meter  Equidistant\n    test 153 pygeodesy.ellipsoidalExact: 00.227337°N, 000.170416°W  01.091%, 000.457% of Random\n    test 154 pygeodesy.ellipsoidalExact: 20.537724°N, 037.383819°E, 11.911851°N, 075.711324°W  d 35433.5 meter  Spherical\n    test 155 pygeodesy.ellipsoidalExact: 20.837802°N, 037.265561°E, 12.125687°N, 075.616731°W  d 2.24656e-09 meter  EquidistantExact\n    test 156 pygeodesy.ellipsoidalExact: 20.617723°N, 037.447504°E, 12.013413°N, 075.806826°W  d 30867.7 meter  Equidistant\n    test 157 pygeodesy.ellipsoidalExact: 00.220078°N, 000.181943°W  01.056%, 000.488% of Random\n    test 158 pygeodesy.ellipsoidalExact: 00.482636°N, 000.350737°E  02.316%, 000.941% of Random, max\n\n    test 159 pygeodesy.ellipsoidalVincenty: 41.186078°N, 034.518810°E Random +/- 45\n    test 160 pygeodesy.ellipsoidalVincenty: 41.216002°N, 034.466444°E, 36.757969°N, 036.250386°E  d 5507.89 meter  Spherical\n    test 161 pygeodesy.ellipsoidalVincenty: 41.186078°N, 034.518810°E, 36.788859°N, 036.252161°E  d 3.31575e-05 meter  EquidistantExact\n    test 162 pygeodesy.ellipsoidalVincenty: 41.261815°N, 034.378326°E, 36.740313°N, 036.242240°E  d 14474.3 meter  Equidistant\n    test 163 pygeodesy.ellipsoidalVincenty: 00.075738°S, 000.140484°E  00.184%, 000.407% of Random\n    test 164 pygeodesy.ellipsoidalVincenty: 40.851194°N, 034.534088°E, 50.241748°S, 131.016402°W  d 37212.5 meter  Spherical\n    test 165 pygeodesy.ellipsoidalVincenty: 41.186078°N, 034.518810°E, 50.477317°S, 130.978321°W  d 1.93863e-06 meter  EquidistantExact\n    test 166 pygeodesy.ellipsoidalVincenty: 40.798654°N, 034.533581°E, 50.386452°S, 130.973130°W  d 43042.9 meter  Equidistant\n    test 167 pygeodesy.ellipsoidalVincenty: 00.387424°N, 000.014771°W  00.941%, 000.043% of Random\n    test 168 pygeodesy.ellipsoidalVincenty: 41.074804°N, 034.598238°E, 21.089845°S, 024.140244°E  d 14042.6 meter  Spherical\n    test 169 pygeodesy.ellipsoidalVincenty: 41.186078°N, 034.518810°E, 21.224760°S, 024.109286°E  d 2.64958e-05 meter  EquidistantExact\n    test 170 pygeodesy.ellipsoidalVincenty: 41.048538°N, 034.546214°E, 21.170019°S, 024.203830°E  d 15447.1 meter  Equidistant\n    test 171 pygeodesy.ellipsoidalVincenty: 00.137540°N, 000.027405°W  00.334%, 000.079% of Random\n    test 172 pygeodesy.ellipsoidalVincenty: 41.032073°N, 034.369399°E, 19.422826°S, 067.358116°E  d 21213.6 meter  Spherical\n    test 173 pygeodesy.ellipsoidalVincenty: 41.186078°N, 034.518810°E, 19.600494°S, 067.286307°E  d 4.13943e-06 meter  EquidistantExact\n    test 174 pygeodesy.ellipsoidalVincenty: 41.006716°N, 034.332358°E, 19.395639°S, 067.447246°E  d 25340.6 meter  Equidistant\n    test 175 pygeodesy.ellipsoidalVincenty: 00.179362°N, 000.186452°E  00.435%, 000.540% of Random\n    test 176 pygeodesy.ellipsoidalVincenty: 40.945458°N, 034.537613°E, 58.224252°S, 061.713015°E  d 26768.7 meter  Spherical\n    test 177 pygeodesy.ellipsoidalVincenty: 41.186078°N, 034.518810°E, 58.347421°S, 061.621933°E  d 1.06295e-05 meter  EquidistantExact\n    test 178 pygeodesy.ellipsoidalVincenty: 40.924263°N, 034.481009°E, 58.252605°S, 061.344166°E  d 29248.9 meter  Equidistant\n    test 179 pygeodesy.ellipsoidalVincenty: 00.261815°N, 000.037800°E  00.636%, 000.110% of Random\n    test 180 pygeodesy.ellipsoidalVincenty: 40.897988°N, 039.011844°E, 40.464581°N, 028.238987°E  d 379091 meter  Spherical\n    test 181 pygeodesy.ellipsoidalVincenty: 41.186078°N, 034.518810°E, 41.110091°N, 032.648742°E  d 0.000119804 meter  EquidistantExact\n    test 182 pygeodesy.ellipsoidalVincenty: 40.839819°N, 039.393167°E, 40.383760°N, 027.900519°E  d 411769 meter  Equidistant\n    test 183 pygeodesy.ellipsoidalVincenty: 00.346258°N, 004.874358°W  00.841%, 014.121% of Random\n    test 184 pygeodesy.ellipsoidalVincenty: 40.870493°N, 034.662375°E, 20.549400°S, 050.731096°W  d 37068.5 meter  Spherical\n    test 185 pygeodesy.ellipsoidalVincenty: 41.186078°N, 034.518810°E, 20.738461°S, 050.709252°W  d 2.02862e-05 meter  EquidistantExact\n    test 186 pygeodesy.ellipsoidalVincenty: 40.818186°N, 034.634875°E, 20.527794°S, 050.866478°W  d 42006.6 meter  Equidistant\n    test 187 pygeodesy.ellipsoidalVincenty: 00.367892°N, 000.116065°W  00.893%, 000.336% of Random\n    test 188 pygeodesy.ellipsoidalVincenty: 41.093896°N, 034.232689°E, 37.091356°N, 041.500904°E  d 26112.3 meter  Spherical\n    test 189 pygeodesy.ellipsoidalVincenty: 41.186078°N, 034.518810°E, 37.299306°N, 041.502155°E  d 3.95026e-06 meter  EquidistantExact\n    test 190 pygeodesy.ellipsoidalVincenty: 41.073515°N, 034.180923°E, 37.078362°N, 041.498623°E  d 31004.2 meter  Equidistant\n    test 191 pygeodesy.ellipsoidalVincenty: 00.112563°N, 000.337887°E  00.273%, 000.979% of Random\n    test 192 pygeodesy.ellipsoidalVincenty: 40.781100°N, 034.669980°E, 52.089480°N, 061.225269°W  d 46738.9 meter  Spherical\n    test 193 pygeodesy.ellipsoidalVincenty: 41.186078°N, 034.518810°E, 52.535730°N, 060.874484°W  d 3.27214e-05 meter  EquidistantExact\n    test 194 pygeodesy.ellipsoidalVincenty: 40.727656°N, 034.642283°E, 51.911337°N, 061.190728°W  d 51959.6 meter  Equidistant\n    test 195 pygeodesy.ellipsoidalVincenty: 00.458422°N, 000.123473°W  01.113%, 000.358% of Random\n    test 196 pygeodesy.ellipsoidalVincenty: 41.264357°N, 034.318737°E, 33.708712°N, 039.965866°E  d 18894.5 meter  Spherical\n    test 197 pygeodesy.ellipsoidalVincenty: 41.186078°N, 034.518810°E, 33.842045°N, 039.937641°E  d 1.60286e-05 meter  EquidistantExact\n    test 198 pygeodesy.ellipsoidalVincenty: 41.296883°N, 034.225283°E, 33.729060°N, 039.967302°E  d 27511.2 meter  Equidistant\n    test 199 pygeodesy.ellipsoidalVincenty: 00.110805°S, 000.293526°E  00.269%, 000.850% of Random\n    test 200 pygeodesy.ellipsoidalVincenty: 40.981210°N, 034.381310°E, 21.581340°S, 084.205539°E  d 25517.2 meter  Spherical\n    test 201 pygeodesy.ellipsoidalVincenty: 41.186078°N, 034.518810°E, 21.747177°S, 084.134687°E  d 6.23905e-06 meter  EquidistantExact\n    test 202 pygeodesy.ellipsoidalVincenty: 40.944802°N, 034.323160°E, 21.498714°S, 084.299938°E  d 31438.7 meter  Equidistant\n    test 203 pygeodesy.ellipsoidalVincenty: 00.241275°N, 000.195650°E  00.586%, 000.567% of Random\n    test 204 pygeodesy.ellipsoidalVincenty: 41.004915°N, 034.623936°E, 06.517706°N, 020.398169°E  d 21972.4 meter  Spherical\n    test 205 pygeodesy.ellipsoidalVincenty: 41.186078°N, 034.518810°E, 06.309051°N, 020.241933°E  d 5.18488e-05 meter  EquidistantExact\n    test 206 pygeodesy.ellipsoidalVincenty: 41.055640°N, 034.588070°E, 06.583593°N, 020.579717°E  d 15610.1 meter  Equidistant\n    test 207 pygeodesy.ellipsoidalVincenty: 00.130438°N, 000.069260°W  00.317%, 000.201% of Random\n    test 208 pygeodesy.ellipsoidalVincenty: 00.458422°N, 004.874358°E  01.113%, 014.121% of Random, max\n\n    test 209 Equidistant(10, 80): 1.37704, 0.24656\n    test 210 Equidistant(10, 80): 10.0, 80.0\n    test 211 Gnomonic(10, 80): 5.67128, 1.01543\n    test 212 Gnomonic(10, 80): 10.0, 80.0\n    test 213 LambertEqualArea(10, 80): 1.26747, 0.22694\n    test 214 LambertEqualArea(10, 80): 10.0, 80.0\n    test 215 Orthographic(10, 80): 0.96985, 0.17365\n    test 216 Orthographic(10, 80): 10.0, 80.0\n    test 217 Stereographic(10, 80): 1.65643, 0.29658\n    test 218 Stereographic(10, 80): 10.0, 80.0\n    test 219 Equidistant(20, 20): 0.33454, 0.35601\n    test 220 Equidistant(20, 20): 20.0, 20.0\n    test 221 Gnomonic(20, 20): 0.36397, 0.38733\n    test 222 Gnomonic(20, 20): 20.0, 20.0\n    test 223 LambertEqualArea(20, 20): 0.33123, 0.35248\n    test 224 LambertEqualArea(20, 20): 20.0, 20.0\n    test 225 Orthographic(20, 20): 0.32139, 0.34202\n    test 226 Orthographic(20, 20): 20.0, 20.0\n    test 227 Stereographic(20, 20): 0.34136, 0.36327\n    test 228 Stereographic(20, 20): 20.0, 20.0\n    test 229 Equidistant(40, 40): 0.57386, 0.74912\n    test 230 Equidistant(40, 40): 40.0, 40.0\n    test 231 Gnomonic(40, 40): 0.8391, 1.09537\n    test 232 Gnomonic(40, 40): 40.0, 40.0\n    test 233 LambertEqualArea(40, 40): 0.55281, 0.72164\n    test 234 LambertEqualArea(40, 40): 40.0, 40.0\n    test 235 Orthographic(40, 40): 0.4924, 0.64279\n    test 236 Orthographic(40, 40): 40.0, 40.0\n    test 237 Stereographic(40, 40): 0.62062, 0.81016\n    test 238 Stereographic(40, 40): 40.0, 40.0\n    test 239 Equidistant(60, 60): 0.58948, 1.17896\n    test 240 Equidistant(60, 60): 60.0, 60.0\n    test 241 Gnomonic(60, 60): 1.73205, 3.4641\n    test 242 Gnomonic(60, 60): 60.0, 60.0\n    test 243 LambertEqualArea(60, 60): 0.54772, 1.09545\n    test 244 LambertEqualArea(60, 60): 60.0, 60.0\n    test 245 Orthographic(60, 60): 0.43301, 0.86603\n    test 246 Orthographic(60, 60): 60.0, 60.0\n    test 247 Stereographic(60, 60): 0.69282, 1.38564\n    test 248 Stereographic(60, 60): 60.0, 60.0\n    test 249 Equidistant(70, 80): 0.50997, 1.42273\n    test 250 Equidistant(70, 80): 70.0, 80.0\n    test 251 Gnomonic(70, 80): 5.67128, 15.82209\n    test 252 Gnomonic(70, 80): 70.0, 80.0\n    test 253 LambertEqualArea(70, 80): 0.4628, 1.29114\n    test 254 LambertEqualArea(70, 80): 70.0, 80.0\n    test 255 Orthographic(70, 80): 0.33682, 0.93969\n    test 256 Orthographic(70, 80): 70.0, 80.0\n    test 257 Stereographic(70, 80): 0.63588, 1.77402\n    test 258 Stereographic(70, 80): 70.0, 80.0\n    test 259 Equidistant(80, 80): 0.26358, 1.51792\n    test 260 Equidistant(80, 80): 80.0, 80.0\n    test 261 Gnomonic(80, 80): 5.67128, 32.65961\n    test 262 Gnomonic(80, 80): 80.0, 80.0\n    test 263 LambertEqualArea(80, 80): 0.23828, 1.37219\n    test 264 LambertEqualArea(80, 80): 80.0, 80.0\n    test 265 Orthographic(80, 80): 0.17101, 0.98481\n    test 266 Orthographic(80, 80): 80.0, 80.0\n    test 267 Stereographic(80, 80): 0.33201, 1.91196\n    test 268 Stereographic(80, 80): 80.0, 80.0\n    test 269 Equidistant(80, 10): 0.04281, 1.39829\n    test 270 Equidistant(80, 10): 80.0, 10.0\n    test 271 Gnomonic(80, 10): 0.17633, 5.75877\n    test 272 Gnomonic(80, 10): 80.0, 10.0\n    test 273 LambertEqualArea(80, 10): 0.03941, 1.28702\n    test 274 LambertEqualArea(80, 10): 80.0, 10.0\n    test 275 Orthographic(80, 10): 0.03015, 0.98481\n    test 276 Orthographic(80, 10): 80.0, 10.0\n    test 277 Stereographic(80, 10): 0.0515, 1.68198\n    test 278 Stereographic(80, 10): 80.0, 10.0\n\n    test 279 function: equidistant\n    test 280 equatoradius: 1.0\n    test 281 flattening: 0.0\n    test 282 iteration: None\n    test 283 latlon0: (0.0, 0.0)\n    test 284 latlon0: (1.0, 2.0)\n    test 285 name: coverage\n    test 286 radius: 1.0\n\n    test 287 function: gnomonic\n    test 288 equatoradius: 1.0\n    test 289 flattening: 0.0\n    test 290 iteration: None\n    test 291 latlon0: (0.0, 0.0)\n    test 292 latlon0: (1.0, 2.0)\n    test 293 name: coverage\n    test 294 radius: 1.0\n    test 295 NANing: (NAN, NAN, 0.0, 0.0, 0.0, 1.0, None)\n\n    12 of 295 testAzimuthal.py tests (4.1%) FAILED, incl. 6 KNOWN plus 6 DeprecationWarnings (pygeodesy 26.3.26 Python 3.11.9 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 1.24.2 scipy 1.10.1 Math 2 macOS 26.3.1 isLazy 0 -W  default) 85.741 sec\nrunning /usr/local/bin/p....n3.11 -W default ~/PyGeodesy/test/testBasics.py\n\n    testing testBasics.py 24.09.29 (module pygeodesy.basics 26.02.22)\n    test 1 clips: test/t....ics.py\n    test 2 halfs2: ('test/test', 'Basics.py')\n\n    test 3 isfinite(0): True\n    test 4 isint(0): True\n    test 5 isint(0+0.5): False\n    test 6 isninf(0): False\n    test 7 isscalar(0): True\n\n    test 8 isfinite(0.0): True\n    test 9 isint(0.0): True\n    test 10 isint(0.0+0.5): False\n    test 11 isninf(0.0): False\n    test 12 isscalar(0.0): True\n\n    test 13 isfinite(1): True\n    test 14 isint(1): True\n    test 15 isint(1+0.5): False\n    test 16 isninf(1): False\n    test 17 isscalar(1): True\n\n    test 18 isfinite(1.0): True\n    test 19 isint(1.0): True\n    test 20 isint(1.0+0.5): False\n    test 21 isninf(1.0): False\n    test 22 isscalar(1.0): True\n\n    test 23 isfinite(1e+300): True\n    test 24 isint(1e+300): True\n    test 25 isint(1e+300+0.5): True\n    test 26 isninf(1e+300): False\n    test 27 isscalar(1e+300): True\n\n    test 28 isfinite(-1e+300): True\n    test 29 isint(-1e+300): True\n    test 30 isint(-1e+300+0.5): True\n    test 31 isninf(-1e+300): False\n    test 32 isscalar(-1e+300): True\n\n    test 33 isfinite(inf): False\n    test 34 isint(inf): False\n    test 35 isint(inf+0.5): False\n    test 36 isninf(inf): False\n    test 37 isscalar(inf): True\n\n    test 38 isfinite(inf): False\n    test 39 isint(inf): False\n    test 40 isint(inf+0.5): False\n    test 41 isninf(inf): False\n    test 42 isscalar(inf): True\n\n    test 43 isfinite(nan): False\n    test 44 isint(nan): False\n    test 45 isint(nan+0.5): False\n    test 46 isninf(nan): False\n    test 47 isscalar(nan): True\n\n    test 48 isfinite(-0.0): True\n    test 49 isint(-0.0): True\n    test 50 isint(-0.0+0.5): False\n    test 51 isninf(-0.0): False\n    test 52 isscalar(-0.0): True\n\n    test 53 isfinite(-inf): False\n    test 54 isint(-inf): False\n    test 55 isint(-inf+0.5): False\n    test 56 isninf(-inf): True\n    test 57 isscalar(-inf): True\n\n    test 58 isfinite(complex): True\n    test 59 isfinite(complex): False\n\n    test 60 isint0(INT0): True\n    test 61 isint0(False): False\n    test 62 isint0(None): False\n    test 63 isint0(0): True\n    test 64 isint0(0.): False\n    test 65 isint0(0.0): True\n\n    test 66 isneg0(NEG0): True\n    test 67 isneg0(0.0): False\n    test 68 isneg0(INF): False\n    test 69 isneg0(NAN): False\n\n    test 70 type(C.r_o): property_RO\n    test 71 type(c.r_o): <class 'bool'>\n    test 72 c.r_o: True\n    test 73 c.r_o = False: immutable property_RO: C.r_o = False\n    test 74 c.a, c.b: (None, None)\n    test 75 d.a, d.b: (True, False)\n    test 76 c.a, c.b: (None, None)\n    test 77 splice: ((0, 2, 4, 6, 8), (1, 3, 5, 7, 9))\n    test 78 splice: ((0, 3, 6, 9), (1, 4, 7), (2, 5, 8))\n    test 79 splice: ((0, 3, 6, 9), (1, 4, 7, -1), (2, 5, 8, -1))\n    test 80 splice: ((0, 5, 10), (1, 6, 11), (2, 7), (3, 8), (4, 9))\n\n    test 81 remainder(181, 360): -179.0\n    test 82 remainder(181, -360): -179.0\n    test 83 remainder(181, inf): 181.0\n    test 84 remainder(181, nan): nan\n    test 85 remainder(181, -inf): 181.0\n    test 86 remainder(-181, 360): 179.0\n    test 87 remainder(-181, -360): 179.0\n    test 88 remainder(-181, inf): -181.0\n    test 89 remainder(-181, nan): nan\n    test 90 remainder(-181, -inf): -181.0\n    test 91 remainder(179, 360): 179.0\n    test 92 remainder(179, -360): 179.0\n    test 93 remainder(179, inf): 179.0\n    test 94 remainder(179, nan): nan\n    test 95 remainder(179, -inf): 179.0\n    test 96 remainder(-179, 360): -179.0\n    test 97 remainder(-179, -360): -179.0\n    test 98 remainder(-179, inf): -179.0\n    test 99 remainder(-179, nan): nan\n    test 100 remainder(-179, -inf): -179.0\n    test 101 remainder(inf, 360): math domain error\n    test 102 remainder(inf, -360): math domain error\n    test 103 remainder(inf, inf): math domain error\n    test 104 remainder(inf, nan): nan\n    test 105 remainder(inf, -inf): math domain error\n    test 106 remainder(nan, 360): nan\n    test 107 remainder(nan, -360): nan\n    test 108 remainder(nan, inf): nan\n    test 109 remainder(nan, nan): nan\n    test 110 remainder(nan, -inf): nan\n    test 111 remainder(-inf, 360): math domain error\n    test 112 remainder(-inf, -360): math domain error\n    test 113 remainder(-inf, inf): math domain error\n    test 114 remainder(-inf, nan): nan\n    test 115 remainder(-inf, -inf): math domain error\n    test 116 isclose: True\n    test 117 isclose: False\n\n    test 118 isiterable(dict): True\n    test 119 isiterablen(dict): True\n    test 120 isiterable(map): True\n    test 121 isiterablen(map): False\n    test 122 isiterable(list): True\n    test 123 isiterablen(list): True\n    test 124 isiterable(range): True\n    test 125 isiterablen(range): True\n    test 126 isiterable(tuple): True\n    test 127 isiterablen(tuple): True\n    test 128 isiterable(set): True\n    test 129 isiterablen(set): False\n\n    all 129 testBasics.py tests passed (pygeodesy 26.3.26 Python 3.11.9 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 1.24.2 scipy 1.10.1 Math 2 macOS 26.3.1 isLazy 0 -W  default) 838.995 us\nrunning /usr/local/bin/p....n3.11 -W default ~/PyGeodesy/test/testBooleans.py\n./test/testBooleans.py:50: DeprecationWarning: function L{areaOf<pygeodesy.ellipsoidalVincenty.areaOf>} has been DEPRECATED, use function L{ellipsoidalExact.areaOf} or L{ellipsoidalKarney.areaOf}.\n  self.test(areaOf.__name__, areaOf(b) == areaOf(t), True)\n./pygeodesy/ellipsoidalKarney.py:139: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return fabs(_polygon(datum.ellipsoid.geodesic, points, True, False, wrap, polar))\n./test/testBooleans.py:53: DeprecationWarning: function L{perimeterOf<pygeodesy.ellipsoidalVincenty.perimeterOf>} has been DEPRECATED, use function L{ellipsoidalExact.perimeterOf} or L{ellipsoidalKarney.perimeterOf}.\n  self.test(periOf.__name__, periOf(b, closed=True) == periOf(t, closed=True), True)\n./pygeodesy/ellipsoidalKarney.py:347: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return _polygon(datum.ellipsoid.geodesic, points, closed, True, wrap, False)\n./test/testBooleans.py:82: DeprecationWarning: function L{areaOf<pygeodesy.ellipsoidalVincenty.areaOf>} has been DEPRECATED, use function L{ellipsoidalExact.areaOf} or L{ellipsoidalKarney.areaOf}.\n  self.test(areaOf.__name__, areaOf(b) == areaOf(t), True)\n./test/testBooleans.py:85: DeprecationWarning: function L{perimeterOf<pygeodesy.ellipsoidalVincenty.perimeterOf>} has been DEPRECATED, use function L{ellipsoidalExact.perimeterOf} or L{ellipsoidalKarney.perimeterOf}.\n  self.test(periOf.__name__, periOf(b, closed=True) == periOf(t, closed=True), True)\n\n    testing testBooleans.py 23.03.31\n\n    testing(pygeodesy.ellipsoidalExact, 25.08.28)\n    test 1 and: BooleanGH[4]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=7.0, lon=5.0, height=2.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=3.0, lon=5.0, height=2.0))\n    test 2 or: BooleanGH[6]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=0.0, lon=0.0, height=1.0), (lat=0.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=10.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0))\n    test 3 minus: BooleanGH[5]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=0.0, lon=0.0, height=1.0), (lat=0.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=3.0, lon=5.0, height=2.0))\n    test 4 rev_d: BooleanGH[5]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=10.0, lon=0.0, height=1.0), (lat=10.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=7.0, lon=5.0, height=2.0))\n    test 5 iand: BooleanGH[4]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=7.0, lon=5.0, height=2.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=3.0, lon=5.0, height=2.0))\n    test 6 ior: BooleanGH[6]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=0.0, lon=0.0, height=1.0), (lat=0.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=10.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0))\n    test 7 sum: BooleanGH[2][6]((lat=0.0, lon=0.0, height=1.0), (lat=7.0, lon=5.0, height=2.0), (lat=0.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0, clipid=1), (lat=3.0, lon=5.0, height=2.0, clipid=1), (lat=10.0, lon=10.0, height=3.0, clipid=1))\n\n    test 8 GH ==: True\n    test 9 equalTo: True\n    test 10 areaOf: True\n    test 11 enclosed: True\n    test 12 enclosed: False\n    test 13 perimeterOf: True\n\n    test 14 toLatLon[0:3]: (LatLon(00°00′00.0″N, 000°00′00.0″E, +1.00m), LatLon(07°00′00.0″N, 005°00′00.0″E, +2.00m), LatLon(00°00′00.0″N, 010°00′00.0″E, +3.00m))\n    test 15 toLatLon[-3:]: ((lat=10.0, lon=0.0, height=1.0, clipid=1), (lat=3.0, lon=5.0, height=2.0, clipid=1), (lat=10.0, lon=10.0, height=3.0, clipid=1))\n\n    test 16 and: BooleanFHP[4]((lat=7.0, lon=5.0, height=2.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=3.0, lon=5.0, height=2.0), (lat=5.0, lon=3.5714286, height=1.7142857))\n    test 17 or: BooleanFHP[6]((lat=0.0, lon=0.0, height=1.0), (lat=0.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=10.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0), (lat=5.0, lon=3.5714286, height=1.7142857))\n    test 18 iand: BooleanFHP[4]((lat=7.0, lon=5.0, height=2.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=3.0, lon=5.0, height=2.0), (lat=5.0, lon=3.5714286, height=1.7142857))\n    test 19 ior: BooleanFHP[6]((lat=0.0, lon=0.0, height=1.0), (lat=0.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=10.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0), (lat=5.0, lon=3.5714286, height=1.7142857))\n    test 20 sum: BooleanFHP[2][6]((lat=0.0, lon=0.0, height=1.0), (lat=7.0, lon=5.0, height=2.0), (lat=0.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0, clipid=1), (lat=3.0, lon=5.0, height=2.0, clipid=1), (lat=10.0, lon=10.0, height=3.0, clipid=1))\n\n    test 21 FHP ==: True\n    test 22 equalTo: True\n    test 23 areaOf: True\n    test 24 enclosed: True\n    test 25 enclosed: False\n    test 26 perimeterOf: True\n\n    test 27 toLatLon[0:3]: (LatLon(00°00′00.0″N, 000°00′00.0″E, +1.00m), LatLon(07°00′00.0″N, 005°00′00.0″E, +2.00m), LatLon(00°00′00.0″N, 010°00′00.0″E, +3.00m))\n    test 28 toLatLon[-3:]: ((lat=10.0, lon=0.0, height=1.0, clipid=1), (lat=3.0, lon=5.0, height=2.0, clipid=1), (lat=10.0, lon=10.0, height=3.0, clipid=1))\n\n    testing(pygeodesy.ellipsoidalVincenty, 25.05.26)\n    test 29 and: BooleanGH[4]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=7.0, lon=5.0, height=2.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=3.0, lon=5.0, height=2.0))\n    test 30 or: BooleanGH[6]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=0.0, lon=0.0, height=1.0), (lat=0.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=10.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0))\n    test 31 minus: BooleanGH[5]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=0.0, lon=0.0, height=1.0), (lat=0.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=3.0, lon=5.0, height=2.0))\n    test 32 rev_d: BooleanGH[5]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=10.0, lon=0.0, height=1.0), (lat=10.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=7.0, lon=5.0, height=2.0))\n    test 33 iand: BooleanGH[4]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=7.0, lon=5.0, height=2.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=3.0, lon=5.0, height=2.0))\n    test 34 ior: BooleanGH[6]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=0.0, lon=0.0, height=1.0), (lat=0.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=10.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0))\n    test 35 sum: BooleanGH[2][6]((lat=0.0, lon=0.0, height=1.0), (lat=7.0, lon=5.0, height=2.0), (lat=0.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0, clipid=1), (lat=3.0, lon=5.0, height=2.0, clipid=1), (lat=10.0, lon=10.0, height=3.0, clipid=1))\n\n    test 36 GH ==: True\n    test 37 equalTo: True\n    test 38 areaOf: True\n    test 39 enclosed: True\n    test 40 enclosed: False\n    test 41 perimeterOf: True\n\n    test 42 toLatLon[0:3]: (LatLon(00°00′00.0″N, 000°00′00.0″E, +1.00m), LatLon(07°00′00.0″N, 005°00′00.0″E, +2.00m), LatLon(00°00′00.0″N, 010°00′00.0″E, +3.00m))\n    test 43 toLatLon[-3:]: ((lat=10.0, lon=0.0, height=1.0, clipid=1), (lat=3.0, lon=5.0, height=2.0, clipid=1), (lat=10.0, lon=10.0, height=3.0, clipid=1))\n\n    test 44 and: BooleanFHP[4]((lat=7.0, lon=5.0, height=2.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=3.0, lon=5.0, height=2.0), (lat=5.0, lon=3.5714286, height=1.7142857))\n    test 45 or: BooleanFHP[6]((lat=0.0, lon=0.0, height=1.0), (lat=0.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=10.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0), (lat=5.0, lon=3.5714286, height=1.7142857))\n    test 46 iand: BooleanFHP[4]((lat=7.0, lon=5.0, height=2.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=3.0, lon=5.0, height=2.0), (lat=5.0, lon=3.5714286, height=1.7142857))\n    test 47 ior: BooleanFHP[6]((lat=0.0, lon=0.0, height=1.0), (lat=0.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=10.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0), (lat=5.0, lon=3.5714286, height=1.7142857))\n    test 48 sum: BooleanFHP[2][6]((lat=0.0, lon=0.0, height=1.0), (lat=7.0, lon=5.0, height=2.0), (lat=0.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0, clipid=1), (lat=3.0, lon=5.0, height=2.0, clipid=1), (lat=10.0, lon=10.0, height=3.0, clipid=1))\n\n    test 49 FHP ==: True\n    test 50 equalTo: True\n    test 51 areaOf: True\n    test 52 enclosed: True\n    test 53 enclosed: False\n    test 54 perimeterOf: True\n\n    test 55 toLatLon[0:3]: (LatLon(00°00′00.0″N, 000°00′00.0″E, +1.00m), LatLon(07°00′00.0″N, 005°00′00.0″E, +2.00m), LatLon(00°00′00.0″N, 010°00′00.0″E, +3.00m))\n    test 56 toLatLon[-3:]: ((lat=10.0, lon=0.0, height=1.0, clipid=1), (lat=3.0, lon=5.0, height=2.0, clipid=1), (lat=10.0, lon=10.0, height=3.0, clipid=1))\n\n    testing(pygeodesy.sphericalNvector, 25.05.27)\n    test 57 and: BooleanGH[4]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=7.0, lon=5.0, height=2.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=3.0, lon=5.0, height=2.0))\n    test 58 or: BooleanGH[6]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=0.0, lon=0.0, height=1.0), (lat=0.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=10.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0))\n    test 59 minus: BooleanGH[5]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=0.0, lon=0.0, height=1.0), (lat=0.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=3.0, lon=5.0, height=2.0))\n    test 60 rev_d: BooleanGH[5]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=10.0, lon=0.0, height=1.0), (lat=10.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=7.0, lon=5.0, height=2.0))\n    test 61 iand: BooleanGH[4]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=7.0, lon=5.0, height=2.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=3.0, lon=5.0, height=2.0))\n    test 62 ior: BooleanGH[6]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=0.0, lon=0.0, height=1.0), (lat=0.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=10.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0))\n    test 63 sum: BooleanGH[2][6]((lat=0.0, lon=0.0, height=1.0), (lat=7.0, lon=5.0, height=2.0), (lat=0.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0, clipid=1), (lat=3.0, lon=5.0, height=2.0, clipid=1), (lat=10.0, lon=10.0, height=3.0, clipid=1))\n\n    test 64 GH ==: True\n    test 65 equalTo: True\n    test 66 areaOf: True\n    test 67 enclosed: True\n    test 68 enclosed: False\n    test 69 perimeterOf: True\n\n    test 70 toLatLon[0:3]: (LatLon(00°00′00.0″N, 000°00′00.0″E, +1.00m), LatLon(07°00′00.0″N, 005°00′00.0″E, +2.00m), LatLon(00°00′00.0″N, 010°00′00.0″E, +3.00m))\n    test 71 toLatLon[-3:]: ((lat=10.0, lon=0.0, height=1.0, clipid=1), (lat=3.0, lon=5.0, height=2.0, clipid=1), (lat=10.0, lon=10.0, height=3.0, clipid=1))\n\n    test 72 and: BooleanFHP[4]((lat=7.0, lon=5.0, height=2.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=3.0, lon=5.0, height=2.0), (lat=5.0, lon=3.5714286, height=1.7142857))\n    test 73 or: BooleanFHP[6]((lat=0.0, lon=0.0, height=1.0), (lat=0.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=10.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0), (lat=5.0, lon=3.5714286, height=1.7142857))\n    test 74 iand: BooleanFHP[4]((lat=7.0, lon=5.0, height=2.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=3.0, lon=5.0, height=2.0), (lat=5.0, lon=3.5714286, height=1.7142857))\n    test 75 ior: BooleanFHP[6]((lat=0.0, lon=0.0, height=1.0), (lat=0.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=10.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0), (lat=5.0, lon=3.5714286, height=1.7142857))\n    test 76 sum: BooleanFHP[2][6]((lat=0.0, lon=0.0, height=1.0), (lat=7.0, lon=5.0, height=2.0), (lat=0.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0, clipid=1), (lat=3.0, lon=5.0, height=2.0, clipid=1), (lat=10.0, lon=10.0, height=3.0, clipid=1))\n\n    test 77 FHP ==: True\n    test 78 equalTo: True\n    test 79 areaOf: True\n    test 80 enclosed: True\n    test 81 enclosed: False\n    test 82 perimeterOf: True\n\n    test 83 toLatLon[0:3]: (LatLon(00°00′00.0″N, 000°00′00.0″E, +1.00m), LatLon(07°00′00.0″N, 005°00′00.0″E, +2.00m), LatLon(00°00′00.0″N, 010°00′00.0″E, +3.00m))\n    test 84 toLatLon[-3:]: ((lat=10.0, lon=0.0, height=1.0, clipid=1), (lat=3.0, lon=5.0, height=2.0, clipid=1), (lat=10.0, lon=10.0, height=3.0, clipid=1))\n\n    testing(pygeodesy.sphericalTrigonometry, 25.08.31)\n    test 85 and: BooleanGH[4]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=7.0, lon=5.0, height=2.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=3.0, lon=5.0, height=2.0))\n    test 86 or: BooleanGH[6]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=0.0, lon=0.0, height=1.0), (lat=0.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=10.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0))\n    test 87 minus: BooleanGH[5]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=0.0, lon=0.0, height=1.0), (lat=0.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=3.0, lon=5.0, height=2.0))\n    test 88 rev_d: BooleanGH[5]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=10.0, lon=0.0, height=1.0), (lat=10.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=7.0, lon=5.0, height=2.0))\n    test 89 iand: BooleanGH[4]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=7.0, lon=5.0, height=2.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=3.0, lon=5.0, height=2.0))\n    test 90 ior: BooleanGH[6]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=0.0, lon=0.0, height=1.0), (lat=0.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=10.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0))\n    test 91 sum: BooleanGH[2][6]((lat=0.0, lon=0.0, height=1.0), (lat=7.0, lon=5.0, height=2.0), (lat=0.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0, clipid=1), (lat=3.0, lon=5.0, height=2.0, clipid=1), (lat=10.0, lon=10.0, height=3.0, clipid=1))\n\n    test 92 GH ==: True\n    test 93 equalTo: True\n    test 94 areaOf: True\n    test 95 enclosed: True\n    test 96 enclosed: False\n    test 97 perimeterOf: True\n\n    test 98 toLatLon[0:3]: (LatLon(00°00′00.0″N, 000°00′00.0″E, +1.00m), LatLon(07°00′00.0″N, 005°00′00.0″E, +2.00m), LatLon(00°00′00.0″N, 010°00′00.0″E, +3.00m))\n    test 99 toLatLon[-3:]: ((lat=10.0, lon=0.0, height=1.0, clipid=1), (lat=3.0, lon=5.0, height=2.0, clipid=1), (lat=10.0, lon=10.0, height=3.0, clipid=1))\n\n    test 100 and: BooleanFHP[4]((lat=7.0, lon=5.0, height=2.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=3.0, lon=5.0, height=2.0), (lat=5.0, lon=3.5714286, height=1.7142857))\n    test 101 or: BooleanFHP[6]((lat=0.0, lon=0.0, height=1.0), (lat=0.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=10.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0), (lat=5.0, lon=3.5714286, height=1.7142857))\n    test 102 iand: BooleanFHP[4]((lat=7.0, lon=5.0, height=2.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=3.0, lon=5.0, height=2.0), (lat=5.0, lon=3.5714286, height=1.7142857))\n    test 103 ior: BooleanFHP[6]((lat=0.0, lon=0.0, height=1.0), (lat=0.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=10.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0), (lat=5.0, lon=3.5714286, height=1.7142857))\n    test 104 sum: BooleanFHP[2][6]((lat=0.0, lon=0.0, height=1.0), (lat=7.0, lon=5.0, height=2.0), (lat=0.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0, clipid=1), (lat=3.0, lon=5.0, height=2.0, clipid=1), (lat=10.0, lon=10.0, height=3.0, clipid=1))\n\n    test 105 FHP ==: True\n    test 106 equalTo: True\n    test 107 areaOf: True\n    test 108 enclosed: True\n    test 109 enclosed: False\n    test 110 perimeterOf: True\n\n    test 111 toLatLon[0:3]: (LatLon(00°00′00.0″N, 000°00′00.0″E, +1.00m), LatLon(07°00′00.0″N, 005°00′00.0″E, +2.00m), LatLon(00°00′00.0″N, 010°00′00.0″E, +3.00m))\n    test 112 toLatLon[-3:]: ((lat=10.0, lon=0.0, height=1.0, clipid=1), (lat=3.0, lon=5.0, height=2.0, clipid=1), (lat=10.0, lon=10.0, height=3.0, clipid=1))\n\n    16 of 112 testBooleans.py tests (14.3%) FAILED, incl. 16 DeprecationWarnings (pygeodesy 26.3.26 Python 3.11.9 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 1.24.2 scipy 1.10.1 Math 2 macOS 26.3.1 isLazy 0 -W  default) 4.878 sec\nrunning /usr/local/bin/p....n3.11 -W default ~/PyGeodesy/test/testCartesian.py\n./test/testCartesian.py:44: DeprecationWarning: method L{convertDatum<pygeodesy.ellipsoidalNvector.Cartesian.convertDatum>} has been DEPRECATED, use method L{toDatum}.\n  d = c.convertDatum(datum2)\n./test/testCartesian.py:45: DeprecationWarning: method L{convertDatum<pygeodesy.ellipsoidalNvector.Cartesian.convertDatum>} has been DEPRECATED, use method L{toDatum}.\n  t = d.convertDatum(datum)\n<string>:1: DeprecationWarning: method L{__matmul__<pygeodesy.trf.RefFrame.__matmul__>} has been DEPRECATED on 2024.02.16, use method C{B{point}.toRefFrame}.\n./test/testCartesian.py:44: DeprecationWarning: method L{convertDatum<pygeodesy.ellipsoidalVincenty.Cartesian.convertDatum>} has been DEPRECATED, use method L{toDatum}.\n  d = c.convertDatum(datum2)\n./test/testCartesian.py:45: DeprecationWarning: method L{convertDatum<pygeodesy.ellipsoidalVincenty.Cartesian.convertDatum>} has been DEPRECATED, use method L{toDatum}.\n  t = d.convertDatum(datum)\n./test/testCartesian.py:44: DeprecationWarning: method L{convertDatum<pygeodesy.ellipsoidalKarney.Cartesian.convertDatum>} has been DEPRECATED, use method L{toDatum}.\n  d = c.convertDatum(datum2)\n./test/testCartesian.py:45: DeprecationWarning: method L{convertDatum<pygeodesy.ellipsoidalKarney.Cartesian.convertDatum>} has been DEPRECATED, use method L{toDatum}.\n  t = d.convertDatum(datum)\n\n    testing testCartesian.py 25.05.12\n\n    testCartesian(pygeodesy.sphericalNvector, 25.05.27)\n    test 1 Cartesian0: [3980581, 97, 4966825]\n    test 2 Cartesian4: [3980581.0, 97.0, 4966825.0]\n    test 3 isEllipsoidal: False\n    test 4 isSpherical: True\n    test 5 copy(<class 'type'>): (<class 'pygeodesy.sphericalNvector.Cartesian'>, True)\n    test 6 Cartesian.copy(): (<class 'pygeodesy.sphericalNvector.Cartesian'>, True)\n    test 7 height: -5918.380258\n    test 8 height4: (3984282.2, 97.1, 4971443.2, -5918.4)\n    test 9 height4: [3984282.2, 97.1, 4971443.2]\n    test 10 height3: (3980581.0, 97.0, 4966825.0)\n    test 11 Nvector: Nvector(0.62538, 0.00002, 0.78032, -5918.38)\n    test 12 Nvector3: (0.625, 0.0, 0.78, -5918.38)\n    test 13 Nvector6: (0.625377, 0.000015, 0.780323, -5918.38)\n    test 14 LatLon: 50.0379°N, 008.5622°E\n    test 15 LatLon: 51.47°N, 000.4543°E\n    test 16 LatLon: 40.633365°N, 073.783328°W\n    test 17 LatLon: 33.95°N, 118.4°W\n    test 18 LatLon: 41.32°S, 174.81°E, +0.00m  FAILED, KNOWN, expected 41.32°S, 174.81°E\n    test 19 LatLon: 40.96°N, 005.5°E\n    test 20 LatLon: 40.1°N, 116.6°E\n    test 21 LatLon: 37.6°N, 122.4°W, -0.00m  FAILED, KNOWN, expected 37.6°N, 122.4°W\n    test 22 copy: True\n    test 23 __eq__: True\n    test 24 __ne__: False\n    test 25 Cartesian: <class 'pygeodesy.sphericalNvector.Cartesian'>\n    test 26 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 27 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 28 latlonheightdatum: <class 'pygeodesy.namedTuples.LatLon4Tuple'>\n    test 29 height4: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 30 isequalTo: <class 'bool'>\n    test 31 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 32 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 33 philamheightdatum: <class 'pygeodesy.namedTuples.PhiLam4Tuple'>\n    test 34 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 35 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 36 toEcef: <class 'pygeodesy.ecef.Ecef9Tuple'>\n    test 37 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 38 toLatLon: <class 'pygeodesy.sphericalNvector.LatLon'>\n    test 39 toLLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 40 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 41 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 42 toNvector: <class 'pygeodesy.sphericalNvector.Nvector'>\n    test 43 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 44 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 45 xyz3: <class 'tuple'>\n    test 46 Cartesian: <class 'pygeodesy.cartesianBase.CartesianBase'>\n    test 47 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 48 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 49 latlonheightdatum: <class 'pygeodesy.namedTuples.LatLon4Tuple'>\n    test 50 height4: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 51 isequalTo: <class 'bool'>\n    test 52 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 53 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 54 philamheightdatum: <class 'pygeodesy.namedTuples.PhiLam4Tuple'>\n    test 55 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 56 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 57 toEcef: <class 'pygeodesy.ecef.Ecef9Tuple'>\n    test 58 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 59 toLatLon: <class 'pygeodesy.ecef.Ecef9Tuple'>\n    test 60 toLLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 61 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 62 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 63 toNvector: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 64 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 65 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 66 xyz3: <class 'tuple'>\n    test 67 sphericalNvector.Cartesian.intersections2: 37.673442°N, 090.234036°W\n    test 68 sphericalNvector.Cartesian.intersections2: 36.109987°N, 090.95367°W\n    test 69 sphericalNvector.Cartesian.intersections2: [-0.032779, -0.784769, 0.61892]\n    test 70 sphericalNvector.Cartesian.intersections2: 38.237342°N, 092.391779°W\n    test 71 sphericalNvector.Cartesian.intersections2: [0.025768, -0.798347, 0.601646]\n    test 72 sphericalNvector.Cartesian.intersections2: 36.987868°N, 088.151309°W\n    test 73 vector3d.trilaterate3d2: [-0.032761, -0.784757, 0.618937]\n    test 74 vector3d.trilaterate3d2: [0.025768, -0.798331, 0.601668]\n    test 75 vector3d.intersections2: (-0.0035, -0.791926, 0.610589)\n    test 76 vector3d.intersections2: 0.0312613\n    test 77 vector3d.intersections2: (-0.021973, -0.766467, 0.0)\n    test 78 vector3d.intersections2: (0.027459, -0.797488, 0.0)\n\n    test 79 xyz2rtp: 37.417, 36.699, 63.435\n    test 80 xyz2rtp: <class 'pygeodesy.cartesianBase.RadiusThetaPhi3Tuple'>\n    test 81 rtp2xyz: 10.0, 20.0, 30.0\n    test 82 rtp2xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 83 toCartesian: Cartesian(10.0, 20.0, 30.0)\n    test 84 toRtp: Test(r=37.416574, theta=36.699225, phi=63.434949)\n\n    test 85 destinationXyz: Tuple(x=10.175954, y=20.351908, z=32.201182, lat=54.754059, lon=63.434949, height=-6370969.342158, C=2, M=None, datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84))\n    test 86 destinationXyz: Cartesian(10.176, 20.352, 32.201)\n\n    testCartesian(pygeodesy.sphericalTrigonometry, 25.08.31)\n    test 87 Cartesian0: [3980581, 97, 4966825]\n    test 88 Cartesian4: [3980581.0, 97.0, 4966825.0]\n    test 89 isEllipsoidal: False\n    test 90 isSpherical: True\n    test 91 copy(<class 'type'>): (<class 'pygeodesy.sphericalTrigonometry.Cartesian'>, True)\n    test 92 Cartesian.copy(): (<class 'pygeodesy.sphericalTrigonometry.Cartesian'>, True)\n    test 93 height: -5918.380258\n    test 94 height4: (3984282.2, 97.1, 4971443.2, -5918.4)\n    test 95 height4: [3984282.2, 97.1, 4971443.2]\n    test 96 height3: (3980581.0, 97.0, 4966825.0)\n    test 97 Vector4Tuple: 0.625376979, 1.52393751e-05, 0.780322775, -5918.38026\n    test 98 LatLon: 50.0379°N, 008.5622°E\n    test 99 LatLon: 51.47°N, 000.4543°E\n    test 100 LatLon: 40.633365°N, 073.783328°W\n    test 101 LatLon: 33.95°N, 118.4°W\n    test 102 LatLon: 41.32°S, 174.81°E, +0.00m  FAILED, KNOWN, expected 41.32°S, 174.81°E\n    test 103 LatLon: 40.96°N, 005.5°E\n    test 104 LatLon: 40.1°N, 116.6°E\n    test 105 LatLon: 37.6°N, 122.4°W, -0.00m  FAILED, KNOWN, expected 37.6°N, 122.4°W\n    test 106 copy: True\n    test 107 __eq__: True\n    test 108 __ne__: False\n    test 109 Cartesian: <class 'pygeodesy.sphericalTrigonometry.Cartesian'>\n    test 110 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 111 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 112 latlonheightdatum: <class 'pygeodesy.namedTuples.LatLon4Tuple'>\n    test 113 height4: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 114 isequalTo: <class 'bool'>\n    test 115 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 116 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 117 philamheightdatum: <class 'pygeodesy.namedTuples.PhiLam4Tuple'>\n    test 118 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 119 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 120 toEcef: <class 'pygeodesy.ecef.Ecef9Tuple'>\n    test 121 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 122 toLatLon: <class 'pygeodesy.sphericalTrigonometry.LatLon'>\n    test 123 toLLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 124 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 125 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 126 toNvector: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 127 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 128 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 129 xyz3: <class 'tuple'>\n    test 130 Cartesian: <class 'pygeodesy.cartesianBase.CartesianBase'>\n    test 131 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 132 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 133 latlonheightdatum: <class 'pygeodesy.namedTuples.LatLon4Tuple'>\n    test 134 height4: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 135 isequalTo: <class 'bool'>\n    test 136 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 137 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 138 philamheightdatum: <class 'pygeodesy.namedTuples.PhiLam4Tuple'>\n    test 139 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 140 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 141 toEcef: <class 'pygeodesy.ecef.Ecef9Tuple'>\n    test 142 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 143 toLatLon: <class 'pygeodesy.ecef.Ecef9Tuple'>\n    test 144 toLLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 145 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 146 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 147 toNvector: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 148 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 149 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 150 xyz3: <class 'tuple'>\n    test 151 sphericalTrigonometry.Cartesian.intersections2: 37.673442°N, 090.234036°W\n    test 152 sphericalTrigonometry.Cartesian.intersections2: 36.109987°N, 090.95367°W\n    test 153 sphericalTrigonometry.Cartesian.intersections2: [-0.032779, -0.784769, 0.61892]\n    test 154 sphericalTrigonometry.Cartesian.intersections2: 38.237342°N, 092.391779°W\n    test 155 sphericalTrigonometry.Cartesian.intersections2: [0.025768, -0.798347, 0.601646]\n    test 156 sphericalTrigonometry.Cartesian.intersections2: 36.987868°N, 088.151309°W\n    test 157 vector3d.trilaterate3d2: [-0.032761, -0.784757, 0.618937]\n    test 158 vector3d.trilaterate3d2: [0.025768, -0.798331, 0.601668]\n    test 159 vector3d.intersections2: (-0.0035, -0.791926, 0.610589)\n    test 160 vector3d.intersections2: 0.0312613\n    test 161 vector3d.intersections2: (-0.021973, -0.766467, 0.0)\n    test 162 vector3d.intersections2: (0.027459, -0.797488, 0.0)\n\n    test 163 xyz2rtp: 37.417, 36.699, 63.435\n    test 164 xyz2rtp: <class 'pygeodesy.cartesianBase.RadiusThetaPhi3Tuple'>\n    test 165 rtp2xyz: 10.0, 20.0, 30.0\n    test 166 rtp2xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 167 toCartesian: Cartesian(10.0, 20.0, 30.0)\n    test 168 toRtp: Test(r=37.416574, theta=36.699225, phi=63.434949)\n\n    test 169 destinationXyz: Tuple(x=10.175954, y=20.351908, z=32.201182, lat=54.754059, lon=63.434949, height=-6370969.342158, C=2, M=None, datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84))\n    test 170 destinationXyz: Cartesian(10.176, 20.352, 32.201)\n\n    testCartesian(pygeodesy.ellipsoidalNvector, 25.05.12)\n    test 171 Cartesian0: [3980581, 97, 4966825]\n    test 172 Cartesian4: [3980581.0, 97.0, 4966825.0]\n    test 173 isEllipsoidal: True\n    test 174 isSpherical: False\n    test 175 copy(<class 'type'>): (<class 'pygeodesy.ellipsoidalNvector.Cartesian'>, True)\n    test 176 Cartesian.copy(): (<class 'pygeodesy.ellipsoidalNvector.Cartesian'>, True)\n    test 177 convertDatum: [3980581.0, 97.0, 4966825.0]\n    test 178 __matmul__: [3980580.124, 107.691, 4966819.407]\n    test 179 __matmul__: [3980580.124, 107.691, 4966819.407]\n    test 180 __matmul__: [3980580.998, 97.0, 4966824.998]\n    test 181 height: 0.242887\n    test 182 height4: (3980580.8, 97.0, 4966824.8, 0.2)\n    test 183 height4: [3980580.8, 97.0, 4966824.8]\n    test 184 height3: (3980581.0, 97.0, 4966825.0)\n    test 185 Nvector: Nvector(0.62282, 0.00002, 0.78237, +0.24)\n    test 186 Nvector3: (0.623, 0.0, 0.782, +0.24)\n    test 187 Nvector6: (0.622818, 0.000015, 0.782367, +0.24)\n    test 188 LatLon: 50.0379°N, 008.5622°E, +0.00m  FAILED, KNOWN, expected 50.0379°N, 008.5622°E\n    test 189 LatLon: 51.47°N, 000.4543°E, -0.00m  FAILED, KNOWN, expected 51.47°N, 000.4543°E\n    test 190 LatLon: 40.633365°N, 073.783328°W\n    test 191 LatLon: 33.95°N, 118.4°W\n    test 192 LatLon: 41.32°S, 174.81°E, +0.00m  FAILED, KNOWN, expected 41.32°S, 174.81°E\n    test 193 LatLon: 40.96°N, 005.5°E, -0.00m  FAILED, KNOWN, expected 40.96°N, 005.5°E\n    test 194 LatLon: 40.1°N, 116.6°E, -0.00m  FAILED, KNOWN, expected 40.1°N, 116.6°E\n    test 195 LatLon: 37.6°N, 122.4°W\n    test 196 copy: True\n    test 197 __eq__: True\n    test 198 __ne__: False\n    test 199 Cartesian: <class 'pygeodesy.ellipsoidalNvector.Cartesian'>\n    test 200 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 201 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 202 latlonheightdatum: <class 'pygeodesy.namedTuples.LatLon4Tuple'>\n    test 203 height4: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 204 isequalTo: <class 'bool'>\n    test 205 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 206 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 207 philamheightdatum: <class 'pygeodesy.namedTuples.PhiLam4Tuple'>\n    test 208 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 209 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 210 toEcef: <class 'pygeodesy.ecef.Ecef9Tuple'>\n    test 211 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 212 toLatLon: <class 'pygeodesy.ellipsoidalNvector.LatLon'>\n    test 213 toLLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 214 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 215 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 216 toNvector: <class 'pygeodesy.ellipsoidalNvector.Nvector'>\n    test 217 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 218 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 219 xyz3: <class 'tuple'>\n    test 220 Cartesian: <class 'pygeodesy.cartesianBase.CartesianBase'>\n    test 221 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 222 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 223 latlonheightdatum: <class 'pygeodesy.namedTuples.LatLon4Tuple'>\n    test 224 height4: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 225 isequalTo: <class 'bool'>\n    test 226 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 227 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 228 philamheightdatum: <class 'pygeodesy.namedTuples.PhiLam4Tuple'>\n    test 229 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 230 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 231 toEcef: <class 'pygeodesy.ecef.Ecef9Tuple'>\n    test 232 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 233 toLatLon: <class 'pygeodesy.ecef.Ecef9Tuple'>\n    test 234 toLLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 235 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 236 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 237 toNvector: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 238 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 239 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 240 xyz3: <class 'tuple'>\n    test 241 ellipsoidalNvector.Cartesian.intersections2: 89.998941°N, 090.234036°W\n    test 242 ellipsoidalNvector.Cartesian.intersections2: 89.99892°N, 090.95367°W\n    test 243 ellipsoidalNvector.Cartesian.intersections2: [-0.0035, -0.791926, 0.610589]\n    test 244 ellipsoidalNvector.Cartesian.intersections2: 89.998941°N, 090.253237°W\n    test 245 ellipsoidalNvector.Cartesian.intersections2: 0.0312613\n    test 246 vector3d.intersections2: (-0.0035, -0.791926, 0.610589)\n    test 247 vector3d.intersections2: 0.0312613\n    test 248 vector3d.intersections2: (-0.021973, -0.766467, 0.0)\n    test 249 vector3d.intersections2: (0.027459, -0.797488, 0.0)\n\n    test 250 xyz2rtp: 37.417, 36.699, 63.435\n    test 251 xyz2rtp: <class 'pygeodesy.cartesianBase.RadiusThetaPhi3Tuple'>\n    test 252 rtp2xyz: 10.0, 20.0, 30.0\n    test 253 rtp2xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 254 toCartesian: Cartesian(10.0, 20.0, 30.0)\n    test 255 toRtp: Test(r=37.416574, theta=36.699225, phi=63.434949)\n\n    test 256 destinationXyz: Tuple(x=9.553253, y=19.106505, z=32.000521, lat=89.971452, lon=63.434949, height=-6356720.308402, C=1, M=None, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 257 destinationXyz: Cartesian(9.553, 19.107, 32.001)\n./test/testCartesian.py:44: DeprecationWarning: method L{convertDatum<pygeodesy.ellipsoidalExact.Cartesian.convertDatum>} has been DEPRECATED, use method L{toDatum}.\n  d = c.convertDatum(datum2)\n./test/testCartesian.py:45: DeprecationWarning: method L{convertDatum<pygeodesy.ellipsoidalExact.Cartesian.convertDatum>} has been DEPRECATED, use method L{toDatum}.\n  t = d.convertDatum(datum)\n\n    test 258 c.toEnu: [-17553188.505, -3108016.462, 7452592.104]\n    test 259 e.toEnu: [-17553188.505, -3108016.462, 7452592.104]\n\n    testCartesian(pygeodesy.ellipsoidalVincenty, 25.05.26)\n    test 260 Cartesian0: [3980581, 97, 4966825]\n    test 261 Cartesian4: [3980581.0, 97.0, 4966825.0]\n    test 262 isEllipsoidal: True\n    test 263 isSpherical: False\n    test 264 copy(<class 'type'>): (<class 'pygeodesy.ellipsoidalVincenty.Cartesian'>, True)\n    test 265 Cartesian.copy(): (<class 'pygeodesy.ellipsoidalVincenty.Cartesian'>, True)\n    test 266 convertDatum: [3980581.0, 97.0, 4966825.0]\n    test 267 __matmul__: [3980580.124, 107.691, 4966819.407]\n    test 268 __matmul__: [3980580.124, 107.691, 4966819.407]\n    test 269 __matmul__: [3980580.998, 97.0, 4966824.998]\n    test 270 height: 0.242887\n    test 271 height4: (3980580.8, 97.0, 4966824.8, 0.2)\n    test 272 height4: [3980580.8, 97.0, 4966824.8]\n    test 273 height3: (3980581.0, 97.0, 4966825.0)\n    test 274 Vector4Tuple: 0.622817765, 1.51770114e-05, 0.782366942, 0.242886808\n    test 275 LatLon: 50.0379°N, 008.5622°E, +0.00m  FAILED, KNOWN, expected 50.0379°N, 008.5622°E\n    test 276 LatLon: 51.47°N, 000.4543°E, -0.00m  FAILED, KNOWN, expected 51.47°N, 000.4543°E\n    test 277 LatLon: 40.633365°N, 073.783328°W\n    test 278 LatLon: 33.95°N, 118.4°W\n    test 279 LatLon: 41.32°S, 174.81°E, +0.00m  FAILED, KNOWN, expected 41.32°S, 174.81°E\n    test 280 LatLon: 40.96°N, 005.5°E, -0.00m  FAILED, KNOWN, expected 40.96°N, 005.5°E\n    test 281 LatLon: 40.1°N, 116.6°E, -0.00m  FAILED, KNOWN, expected 40.1°N, 116.6°E\n    test 282 LatLon: 37.6°N, 122.4°W\n    test 283 copy: True\n    test 284 __eq__: True\n    test 285 __ne__: False\n    test 286 Cartesian: <class 'pygeodesy.ellipsoidalVincenty.Cartesian'>\n    test 287 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 288 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 289 latlonheightdatum: <class 'pygeodesy.namedTuples.LatLon4Tuple'>\n    test 290 height4: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 291 isequalTo: <class 'bool'>\n    test 292 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 293 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 294 philamheightdatum: <class 'pygeodesy.namedTuples.PhiLam4Tuple'>\n    test 295 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 296 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 297 toEcef: <class 'pygeodesy.ecef.Ecef9Tuple'>\n    test 298 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 299 toLatLon: <class 'pygeodesy.ellipsoidalVincenty.LatLon'>\n    test 300 toLLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 301 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 302 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 303 toNvector: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 304 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 305 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 306 xyz3: <class 'tuple'>\n    test 307 Cartesian: <class 'pygeodesy.cartesianBase.CartesianBase'>\n    test 308 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 309 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 310 latlonheightdatum: <class 'pygeodesy.namedTuples.LatLon4Tuple'>\n    test 311 height4: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 312 isequalTo: <class 'bool'>\n    test 313 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 314 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 315 philamheightdatum: <class 'pygeodesy.namedTuples.PhiLam4Tuple'>\n    test 316 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 317 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 318 toEcef: <class 'pygeodesy.ecef.Ecef9Tuple'>\n    test 319 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 320 toLatLon: <class 'pygeodesy.ecef.Ecef9Tuple'>\n    test 321 toLLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 322 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 323 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 324 toNvector: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 325 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 326 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 327 xyz3: <class 'tuple'>\n    test 328 ellipsoidalVincenty.Cartesian.intersections2: 89.998941°N, 090.234036°W\n    test 329 ellipsoidalVincenty.Cartesian.intersections2: 89.99892°N, 090.95367°W\n    test 330 ellipsoidalVincenty.Cartesian.intersections2: [-0.0035, -0.791926, 0.610589]\n    test 331 ellipsoidalVincenty.Cartesian.intersections2: 89.998941°N, 090.253237°W\n    test 332 ellipsoidalVincenty.Cartesian.intersections2: 0.0312613\n    test 333 vector3d.intersections2: (-0.0035, -0.791926, 0.610589)\n    test 334 vector3d.intersections2: 0.0312613\n    test 335 vector3d.intersections2: (-0.021973, -0.766467, 0.0)\n    test 336 vector3d.intersections2: (0.027459, -0.797488, 0.0)\n\n    test 337 xyz2rtp: 37.417, 36.699, 63.435\n    test 338 xyz2rtp: <class 'pygeodesy.cartesianBase.RadiusThetaPhi3Tuple'>\n    test 339 rtp2xyz: 10.0, 20.0, 30.0\n    test 340 rtp2xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 341 toCartesian: Cartesian(10.0, 20.0, 30.0)\n    test 342 toRtp: Test(r=37.416574, theta=36.699225, phi=63.434949)\n\n    test 343 destinationXyz: Tuple(x=9.553253, y=19.106505, z=32.000521, lat=89.971452, lon=63.434949, height=-6356720.308402, C=1, M=None, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 344 destinationXyz: Cartesian(9.553, 19.107, 32.001)\n\n    test 345 c.toEnu: [-17553188.505, -3108016.462, 7452592.104]\n    test 346 e.toEnu: [-17553188.505, -3108016.462, 7452592.104]\n\n    testCartesian(pygeodesy.ellipsoidalKarney, 25.05.27)\n    test 347 Cartesian0: [3980581, 97, 4966825]\n    test 348 Cartesian4: [3980581.0, 97.0, 4966825.0]\n    test 349 isEllipsoidal: True\n    test 350 isSpherical: False\n    test 351 copy(<class 'type'>): (<class 'pygeodesy.ellipsoidalKarney.Cartesian'>, True)\n    test 352 Cartesian.copy(): (<class 'pygeodesy.ellipsoidalKarney.Cartesian'>, True)\n    test 353 convertDatum: [3980581.0, 97.0, 4966825.0]\n    test 354 __matmul__: [3980580.124, 107.691, 4966819.407]\n    test 355 __matmul__: [3980580.124, 107.691, 4966819.407]\n    test 356 __matmul__: [3980580.998, 97.0, 4966824.998]\n    test 357 height: 0.242887\n    test 358 height4: (3980580.8, 97.0, 4966824.8, 0.2)\n    test 359 height4: [3980580.8, 97.0, 4966824.8]\n    test 360 height3: (3980581.0, 97.0, 4966825.0)\n    test 361 Vector4Tuple: 0.622817765, 1.51770114e-05, 0.782366942, 0.242886808\n    test 362 LatLon: 50.0379°N, 008.5622°E, +0.00m  FAILED, KNOWN, expected 50.0379°N, 008.5622°E\n    test 363 LatLon: 51.47°N, 000.4543°E\n    test 364 LatLon: 40.633365°N, 073.783328°W\n    test 365 LatLon: 33.95°N, 118.4°W, +0.00m  FAILED, KNOWN, expected 33.95°N, 118.4°W\n    test 366 LatLon: 41.32°S, 174.81°E\n    test 367 LatLon: 40.96°N, 005.5°E\n    test 368 LatLon: 40.1°N, 116.6°E\n    test 369 LatLon: 37.6°N, 122.4°W\n    test 370 copy: True\n    test 371 __eq__: True\n    test 372 __ne__: False\n    test 373 Cartesian: <class 'pygeodesy.ellipsoidalKarney.Cartesian'>\n    test 374 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 375 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 376 latlonheightdatum: <class 'pygeodesy.namedTuples.LatLon4Tuple'>\n    test 377 height4: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 378 isequalTo: <class 'bool'>\n    test 379 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 380 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 381 philamheightdatum: <class 'pygeodesy.namedTuples.PhiLam4Tuple'>\n    test 382 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 383 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 384 toEcef: <class 'pygeodesy.ecef.Ecef9Tuple'>\n    test 385 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 386 toLatLon: <class 'pygeodesy.ellipsoidalKarney.LatLon'>\n    test 387 toLLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 388 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 389 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 390 toNvector: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 391 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 392 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 393 xyz3: <class 'tuple'>\n    test 394 Cartesian: <class 'pygeodesy.cartesianBase.CartesianBase'>\n    test 395 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 396 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 397 latlonheightdatum: <class 'pygeodesy.namedTuples.LatLon4Tuple'>\n    test 398 height4: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 399 isequalTo: <class 'bool'>\n    test 400 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 401 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 402 philamheightdatum: <class 'pygeodesy.namedTuples.PhiLam4Tuple'>\n    test 403 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 404 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 405 toEcef: <class 'pygeodesy.ecef.Ecef9Tuple'>\n    test 406 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 407 toLatLon: <class 'pygeodesy.ecef.Ecef9Tuple'>\n    test 408 toLLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 409 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 410 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 411 toNvector: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 412 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 413 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 414 xyz3: <class 'tuple'>\n    test 415 ellipsoidalKarney.Cartesian.intersections2: 89.998941°N, 090.234036°W\n    test 416 ellipsoidalKarney.Cartesian.intersections2: 89.99892°N, 090.95367°W\n    test 417 ellipsoidalKarney.Cartesian.intersections2: [-0.0035, -0.791926, 0.610589]\n    test 418 ellipsoidalKarney.Cartesian.intersections2: 89.998941°N, 090.253237°W\n    test 419 ellipsoidalKarney.Cartesian.intersections2: 0.0312613\n    test 420 vector3d.intersections2: (-0.0035, -0.791926, 0.610589)\n    test 421 vector3d.intersections2: 0.0312613\n    test 422 vector3d.intersections2: (-0.021973, -0.766467, 0.0)\n    test 423 vector3d.intersections2: (0.027459, -0.797488, 0.0)\n\n    test 424 xyz2rtp: 37.417, 36.699, 63.435\n    test 425 xyz2rtp: <class 'pygeodesy.cartesianBase.RadiusThetaPhi3Tuple'>\n    test 426 rtp2xyz: 10.0, 20.0, 30.0\n    test 427 rtp2xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 428 toCartesian: Cartesian(10.0, 20.0, 30.0)\n    test 429 toRtp: Test(r=37.416574, theta=36.699225, phi=63.434949)\n\n    test 430 destinationXyz: Tuple(x=9.553253, y=19.106506, z=32.000521, lat=89.971452, lon=63.434949, height=-6356720.308402, C=1, M=None, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 431 destinationXyz: Cartesian(9.553, 19.107, 32.001)\n\n    test 432 c.toEnu: [-17553188.505, -3108016.462, 7452592.104]\n    test 433 e.toEnu: [-17553188.505, -3108016.462, 7452592.104]\n\n    testCartesian(pygeodesy.ellipsoidalExact, 25.08.28)\n    test 434 Cartesian0: [3980581, 97, 4966825]\n    test 435 Cartesian4: [3980581.0, 97.0, 4966825.0]\n    test 436 isEllipsoidal: True\n    test 437 isSpherical: False\n    test 438 copy(<class 'type'>): (<class 'pygeodesy.ellipsoidalExact.Cartesian'>, True)\n    test 439 Cartesian.copy(): (<class 'pygeodesy.ellipsoidalExact.Cartesian'>, True)\n    test 440 convertDatum: [3980581.0, 97.0, 4966825.0]\n    test 441 __matmul__: [3980580.124, 107.691, 4966819.407]\n    test 442 __matmul__: [3980580.124, 107.691, 4966819.407]\n    test 443 __matmul__: [3980580.998, 97.0, 4966824.998]\n    test 444 height: 0.242887\n    test 445 height4: (3980580.8, 97.0, 4966824.8, 0.2)\n    test 446 height4: [3980580.8, 97.0, 4966824.8]\n    test 447 height3: (3980581.0, 97.0, 4966825.0)\n    test 448 Vector4Tuple: 0.622817765, 1.51770114e-05, 0.782366942, 0.242886808\n    test 449 LatLon: 50.0379°N, 008.5622°E, +0.00m  FAILED, KNOWN, expected 50.0379°N, 008.5622°E\n    test 450 LatLon: 51.47°N, 000.4543°E\n    test 451 LatLon: 40.633365°N, 073.783328°W\n    test 452 LatLon: 33.95°N, 118.4°W, +0.00m  FAILED, KNOWN, expected 33.95°N, 118.4°W\n    test 453 LatLon: 41.32°S, 174.81°E\n    test 454 LatLon: 40.96°N, 005.5°E\n    test 455 LatLon: 40.1°N, 116.6°E\n    test 456 LatLon: 37.6°N, 122.4°W\n    test 457 copy: True\n    test 458 __eq__: True\n    test 459 __ne__: False\n    test 460 Cartesian: <class 'pygeodesy.ellipsoidalExact.Cartesian'>\n    test 461 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 462 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 463 latlonheightdatum: <class 'pygeodesy.namedTuples.LatLon4Tuple'>\n    test 464 height4: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 465 isequalTo: <class 'bool'>\n    test 466 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 467 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 468 philamheightdatum: <class 'pygeodesy.namedTuples.PhiLam4Tuple'>\n    test 469 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 470 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 471 toEcef: <class 'pygeodesy.ecef.Ecef9Tuple'>\n    test 472 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 473 toLatLon: <class 'pygeodesy.ellipsoidalExact.LatLon'>\n    test 474 toLLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 475 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 476 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 477 toNvector: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 478 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 479 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 480 xyz3: <class 'tuple'>\n    test 481 Cartesian: <class 'pygeodesy.cartesianBase.CartesianBase'>\n    test 482 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 483 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 484 latlonheightdatum: <class 'pygeodesy.namedTuples.LatLon4Tuple'>\n    test 485 height4: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 486 isequalTo: <class 'bool'>\n    test 487 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 488 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 489 philamheightdatum: <class 'pygeodesy.namedTuples.PhiLam4Tuple'>\n    test 490 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 491 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 492 toEcef: <class 'pygeodesy.ecef.Ecef9Tuple'>\n    test 493 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 494 toLatLon: <class 'pygeodesy.ecef.Ecef9Tuple'>\n    test 495 toLLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 496 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 497 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 498 toNvector: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 499 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 500 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 501 xyz3: <class 'tuple'>\n    test 502 ellipsoidalExact.Cartesian.intersections2: 89.998941°N, 090.234036°W\n    test 503 ellipsoidalExact.Cartesian.intersections2: 89.99892°N, 090.95367°W\n    test 504 ellipsoidalExact.Cartesian.intersections2: [-0.0035, -0.791926, 0.610589]\n    test 505 ellipsoidalExact.Cartesian.intersections2: 89.998941°N, 090.253237°W\n    test 506 ellipsoidalExact.Cartesian.intersections2: 0.0312613\n    test 507 vector3d.intersections2: (-0.0035, -0.791926, 0.610589)\n    test 508 vector3d.intersections2: 0.0312613\n    test 509 vector3d.intersections2: (-0.021973, -0.766467, 0.0)\n    test 510 vector3d.intersections2: (0.027459, -0.797488, 0.0)\n\n    test 511 xyz2rtp: 37.417, 36.699, 63.435\n    test 512 xyz2rtp: <class 'pygeodesy.cartesianBase.RadiusThetaPhi3Tuple'>\n    test 513 rtp2xyz: 10.0, 20.0, 30.0\n    test 514 rtp2xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 515 toCartesian: Cartesian(10.0, 20.0, 30.0)\n    test 516 toRtp: Test(r=37.416574, theta=36.699225, phi=63.434949)\n\n    test 517 destinationXyz: Tuple(x=9.553253, y=19.106506, z=32.000521, lat=89.971452, lon=63.434949, height=-6356720.308402, C=1, M=None, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 518 destinationXyz: Cartesian(9.553, 19.107, 32.001)\n\n    test 519 c.toEnu: [-17553188.505, -3108016.462, 7452592.104]\n    test 520 e.toEnu: [-17553188.505, -3108016.462, 7452592.104]\n\n    30 of 520 testCartesian.py tests (5.8%) FAILED, incl. 18 KNOWN plus 12 DeprecationWarnings (pygeodesy 26.3.26 Python 3.11.9 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 1.24.2 scipy 1.10.1 Math 2 macOS 26.3.1 isLazy 0 -W  default) 89.220 ms\nrunning /usr/local/bin/p....n3.11 -W default ~/PyGeodesy/test/testClasses.py\n\n    testing testClasses.py 24.07.29\n\n    testCartesianAttrs(24.07.29)\n    test 1 angleTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 2 apply() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 3 attrs() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 4 bearing() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 5 bools() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 6 cassini() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 7 circin6() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 8 circum3() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 9 circum4_() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 10 classname Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 11 classnaming _NamedProperty: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 12 classof() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 13 cmp() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 14 collins() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 15 collins5() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 16 convertDatum() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 17 convertRefFrame() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 18 copy() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 19 cross() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 20 crosserrors _NamedProperty: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 21 datum _NamedProperty: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 22 destinationXyz() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 23 dividedBy() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 24 dividedBy_() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 25 dot() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 26 dup() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 27 Ecef property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 28 Ecef property_ROver: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 29 ellipsoidalCartesian property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 30 epoch _NamedProperty: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 31 equals() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 32 equirectangular() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 33 euclid Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 34 fabs() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 35 floats() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 36 floorDividedBy() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 37 floorDividedBy_() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 38 hartzell() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 39 height Property: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 40 height3() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 41 height4() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 42 homogeneous property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 43 intermediateTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 44 intersections2() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 45 ints() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 46 iscolinearWith() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 47 isconjugateTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 48 isEllipsoidal Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 49 isequalTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 50 isSpherical Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 51 iteration property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 52 latlon Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 53 latlonheight Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 54 latlonheightdatum Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 55 length Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 56 length2 Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 57 meeus2() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 58 methodname() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 59 minus() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 60 minus_() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 61 name _NamedProperty: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 62 named Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 63 named2 Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 64 named3 Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 65 named4 Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 66 nearestOn() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 67 nearestOn6() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 68 negate() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 69 others() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 70 parse() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 71 philam Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 72 philamheight Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 73 philamheightdatum Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 74 pierlot() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 75 pierlotx() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 76 plus() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 77 plus_() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 78 pow() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 79 radii11() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 80 reframe _NamedProperty: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 81 rename() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 82 renamed() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 83 Roc2() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 84 rotate() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 85 rotateAround() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 86 sizeof property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 87 soddy4() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 88 sphericalCartesian property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 89 sum() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 90 tienstra() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 91 tienstra7() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 92 times() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 93 times_() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 94 to2ab() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 95 to2ll() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 96 to3llh() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 97 to3xyz() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 98 toAer() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 99 toCartesian() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 100 toDatum() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 101 toEcef() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 102 toEnu() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 103 toLatLon() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 104 toLocal() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 105 toLtp() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 106 toNed() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 107 toNvector() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 108 toRefFrame() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 109 toRepr() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 110 toRtp() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 111 toStr() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 112 toStr2() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 113 toTransform() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 114 toTransforms_() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 115 toVector() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 116 toXyz() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 117 trilaterate2d2() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 118 trilaterate3d2() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 119 typename property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 120 unit() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 121 x Property: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 122 x2y2z2 Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 123 x2y2z23 property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 124 xyz Property: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 125 xyz3 property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 126 y Property: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 127 z Property: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n\n    testCartesianMro(24.07.29)\n    test 128 pygeodesy.sphericalNvector: pygeodesy.sphericalNvector.Cartesian, pygeodesy.sphericalBase.CartesianSphericalBase, pygeodesy.cartesianBase.CartesianBase, pygeodesy.vector3d.Vector3d, pygeodesy.vector3dBase.Vector3dBase, pygeodesy.named._NamedBase, pygeodesy.ecefLocals._EcefLocal, pygeodesy.named._Named\n    test 129 pygeodesy.sphericalTrigonometry: pygeodesy.sphericalTrigonometry.Cartesian, pygeodesy.sphericalBase.CartesianSphericalBase, pygeodesy.cartesianBase.CartesianBase, pygeodesy.vector3d.Vector3d, pygeodesy.vector3dBase.Vector3dBase, pygeodesy.named._NamedBase, pygeodesy.ecefLocals._EcefLocal, pygeodesy.named._Named\n    test 130 pygeodesy.ellipsoidalNvector: pygeodesy.ellipsoidalNvector.Cartesian, pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase, pygeodesy.cartesianBase.CartesianBase, pygeodesy.vector3d.Vector3d, pygeodesy.vector3dBase.Vector3dBase, pygeodesy.named._NamedBase, pygeodesy.ecefLocals._EcefLocal, pygeodesy.named._Named\n    test 131 pygeodesy.ellipsoidalVincenty: pygeodesy.ellipsoidalVincenty.Cartesian, pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase, pygeodesy.cartesianBase.CartesianBase, pygeodesy.vector3d.Vector3d, pygeodesy.vector3dBase.Vector3dBase, pygeodesy.named._NamedBase, pygeodesy.ecefLocals._EcefLocal, pygeodesy.named._Named\n    test 132 pygeodesy.ellipsoidalKarney: pygeodesy.ellipsoidalKarney.Cartesian, pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase, pygeodesy.cartesianBase.CartesianBase, pygeodesy.vector3d.Vector3d, pygeodesy.vector3dBase.Vector3dBase, pygeodesy.named._NamedBase, pygeodesy.ecefLocals._EcefLocal, pygeodesy.named._Named\n    test 133 pygeodesy.ellipsoidalExact: pygeodesy.ellipsoidalExact.Cartesian, pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase, pygeodesy.cartesianBase.CartesianBase, pygeodesy.vector3d.Vector3d, pygeodesy.vector3dBase.Vector3dBase, pygeodesy.named._NamedBase, pygeodesy.ecefLocals._EcefLocal, pygeodesy.named._Named\n\n    testLatLonAttrs(24.07.29)\n    test 134 alongTrackDistanceTo() method: pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 135 antipode() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 136 attrs() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 137 bearingTo() method: pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 138 bearingTo2() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 139 bounds() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 140 boundsOf() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 141 chordTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 142 circin6() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 143 circum3() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 144 circum4_() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 145 classname Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 146 classnaming _NamedProperty: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 147 classof() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 148 clipid property: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 149 compassAngle() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 150 compassAngleTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 151 convergence _Deprecated_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 152 convertDatum() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 153 convertRefFrame() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 154 copy() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 155 cosineAndoyerLambertTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 156 cosineForsytheAndoyerLambertTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 157 cosineLawTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 158 crossingParallels() method: pygeodesy.sphericalTrigonometry\n    test 159 crossTrackDistanceTo() method: pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 160 datum _NamedProperty: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 161 deltaTo() method: pygeodesy.ellipsoidalNvector\n    test 162 destination() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 163 destination2() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalVincenty\n    test 164 destinationNed() method: pygeodesy.ellipsoidalNvector\n    test 165 destinationXyz() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 166 distanceTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 167 distanceTo2() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 168 distanceTo3() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalVincenty\n    test 169 dup() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 170 Ecef property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 171 Ecef property_ROver: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 172 elevation2() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 173 ellipsoid() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 174 ellipsoidalLatLon property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 175 ellipsoids() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 176 epoch _NamedProperty: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 177 epsilon _NamedProperty: pygeodesy.ellipsoidalVincenty\n    test 178 equals() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 179 equals3() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 180 Equidistant Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 181 equirectangularTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 182 euclideanTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 183 finalBearingOn() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalVincenty\n    test 184 finalBearingTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 185 flatLocalTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 186 flatPolarTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 187 gamma property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 188 geodesic property_RO: pygeodesy.ellipsoidalVincenty\n    test 189 geodesic Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney\n    test 190 geodesicx Property_RO: pygeodesy.ellipsoidalExact\n    test 191 geoidHeight2() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 192 greatCircle() method: pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 193 greatCircleTo() method: pygeodesy.sphericalNvector\n    test 194 hartzell() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 195 haversineTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 196 height Property: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 197 height4() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 198 heightStr() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 199 hubenyTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 200 initialBearingTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 201 intermediateChordTo() method: pygeodesy.sphericalNvector\n    test 202 intermediateTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 203 intersecant2() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 204 intersection() method: pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 205 intersection2() method: pygeodesy.sphericalNvector\n    test 206 intersection3() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 207 intersections2() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 208 isantipode() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 209 isantipodeTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 210 isEllipsoidal Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 211 isEnclosedBy() method: pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 212 isenclosedBy() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 213 isequalTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 214 isequalTo3() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 215 isnormal Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 216 isSpherical Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 217 isWithin() method: pygeodesy.sphericalNvector\n    test 218 iswithin() method: pygeodesy.sphericalNvector\n    test 219 iteration property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 220 iterations _NamedProperty: pygeodesy.ellipsoidalVincenty\n    test 221 lam Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 222 lat Property: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 223 latlon Property: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 224 latlon2() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 225 latlon2round() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 226 latlon_() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 227 latlonheight Property: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 228 lon Property: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 229 maxLat() method: pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 230 methodname() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 231 midpointTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 232 minLat() method: pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 233 name _NamedProperty: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 234 named Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 235 named2 Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 236 named3 Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 237 named4 Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 238 napieradius _NamedProperty: pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 239 nearestOn() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 240 nearestOn2() method: pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 241 nearestOn3() method: pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 242 nearestOn6() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 243 nearestOn8() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalVincenty\n    test 244 nearestTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 245 normal() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 246 others() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 247 parse() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 248 phi Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 249 philam Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 250 philam2() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 251 philamheight Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 252 plumbTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalVincenty\n    test 253 points() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 254 points2() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 255 PointsIter() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 256 radii11() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 257 reframe _NamedProperty: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 258 rename() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 259 renamed() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 260 rhumbAzimuthTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 261 rhumbBearingTo() method: pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 262 rhumbDestination() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 263 rhumbDistanceTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 264 rhumbIntersecant2() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 265 rhumbLine() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 266 rhumbMidpointTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 267 scale Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 268 sizeof property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 269 sphericalLatLon property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 270 thomasTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 271 to2ab() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 272 to3llh() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 273 to3xyz() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 274 toAer() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 275 toCartesian() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 276 toCss() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 277 toDatum() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 278 toEcef() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 279 toEnu() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 280 toEtm() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 281 toLcc() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 282 toLocal() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 283 toLtp() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 284 toMgrs() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 285 toNed() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 286 toNormal() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 287 toNvector() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 288 toOsgr() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 289 toRefFrame() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 290 toRepr() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 291 toStr() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 292 toStr2() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 293 toTransform() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 294 toUps() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 295 toUtm() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 296 toUtmUps() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 297 toVector() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 298 toVector3d() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 299 toWm() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 300 toXyz() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 301 triangle7() method: pygeodesy.sphericalTrigonometry\n    test 302 triangulate() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 303 trilaterate() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 304 trilaterate5() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 305 typename property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 306 vincentysTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 307 xyz property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 308 xyz3 property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 309 xyzh Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n\n    testLatLonMro(24.07.29)\n    test 310 pygeodesy.sphericalNvector: pygeodesy.sphericalNvector.LatLon, pygeodesy.nvectorBase.LatLonNvectorBase, pygeodesy.sphericalBase.LatLonSphericalBase, pygeodesy.latlonBase.LatLonBase, pygeodesy.named._NamedBase, pygeodesy.ecefLocals._EcefLocal, pygeodesy.named._Named\n    test 311 pygeodesy.sphericalTrigonometry: pygeodesy.sphericalTrigonometry.LatLon, pygeodesy.sphericalBase.LatLonSphericalBase, pygeodesy.latlonBase.LatLonBase, pygeodesy.named._NamedBase, pygeodesy.ecefLocals._EcefLocal, pygeodesy.named._Named\n    test 312 pygeodesy.ellipsoidalNvector: pygeodesy.ellipsoidalNvector.LatLon, pygeodesy.nvectorBase.LatLonNvectorBase, pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase, pygeodesy.latlonBase.LatLonBase, pygeodesy.named._NamedBase, pygeodesy.ecefLocals._EcefLocal, pygeodesy.named._Named\n    test 313 pygeodesy.ellipsoidalVincenty: pygeodesy.ellipsoidalVincenty.LatLon, pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI, pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase, pygeodesy.latlonBase.LatLonBase, pygeodesy.named._NamedBase, pygeodesy.ecefLocals._EcefLocal, pygeodesy.named._Named\n    test 314 pygeodesy.ellipsoidalKarney: pygeodesy.ellipsoidalKarney.LatLon, pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI, pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase, pygeodesy.latlonBase.LatLonBase, pygeodesy.named._NamedBase, pygeodesy.ecefLocals._EcefLocal, pygeodesy.named._Named\n    test 315 pygeodesy.ellipsoidalExact: pygeodesy.ellipsoidalExact.LatLon, pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI, pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase, pygeodesy.latlonBase.LatLonBase, pygeodesy.named._NamedBase, pygeodesy.ecefLocals._EcefLocal, pygeodesy.named._Named\n\n    testNvectorAttrs(24.07.29)\n    test 316 angleTo() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 317 apply() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 318 attrs() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 319 bearing() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 320 bools() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 321 circin6() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 322 circum3() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 323 circum4_() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 324 classname Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 325 classnaming _NamedProperty: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 326 classof() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 327 cmp() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 328 copy() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 329 cross() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 330 crosserrors _NamedProperty: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 331 datum Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 332 dividedBy() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 333 dividedBy_() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 334 dot() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 335 dup() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 336 Ecef property_ROnce: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 337 ellipsoidalNvector property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 338 equals() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 339 equirectangular() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 340 euclid Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 341 fabs() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 342 floats() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 343 floorDividedBy() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 344 floorDividedBy_() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 345 greatCircle() method: pygeodesy.sphericalNvector\n    test 346 H _NamedProperty: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 347 h _NamedProperty: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 348 homogeneous property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 349 hStr() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 350 intermediateTo() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 351 ints() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 352 iscolinearWith() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 353 isconjugateTo() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 354 isEllipsoidal Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 355 isequalTo() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 356 isSpherical Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 357 iteration property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 358 lam Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 359 lat Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 360 latlon Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 361 latlonheight Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 362 latlonheightdatum Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 363 length Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 364 length2 Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 365 lon Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 366 meeus2() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 367 methodname() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 368 minus() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 369 minus_() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 370 name _NamedProperty: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 371 named Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 372 named2 Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 373 named3 Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 374 named4 Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 375 nearestOn() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 376 nearestOn6() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 377 negate() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 378 others() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 379 parse() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 380 phi Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 381 philam Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 382 philamheight Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 383 philamheightdatum Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 384 plus() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 385 plus_() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 386 pow() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 387 radii11() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 388 rename() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 389 renamed() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 390 rotate() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 391 rotateAround() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 392 sizeof property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 393 soddy4() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 394 sphericalNvector property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 395 sum() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 396 times() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 397 times_() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 398 to2ab() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 399 to2ll() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 400 to3abh() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 401 to3llh() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 402 to3xyz() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 403 to4xyzh() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 404 toCartesian() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 405 toLatLon() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 406 toRepr() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 407 toStr() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 408 toStr2() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 409 toVector3d() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 410 trilaterate2d2() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 411 trilaterate3d2() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 412 typename property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 413 unit() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 414 x Property: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 415 x2y2z2 Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 416 x2y2z23 property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 417 xyz Property: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 418 xyz3 property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 419 xyzh Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 420 y Property: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 421 z Property: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n\n    testNvectorMro(24.07.29)\n    test 422 pygeodesy.sphericalNvector: pygeodesy.sphericalNvector.Nvector, pygeodesy.nvectorBase.NvectorBase, pygeodesy.vector3d.Vector3d, pygeodesy.vector3dBase.Vector3dBase, pygeodesy.named._NamedBase, pygeodesy.named._Named\n    test 423 pygeodesy.ellipsoidalNvector: pygeodesy.ellipsoidalNvector.Nvector, pygeodesy.nvectorBase.NvectorBase, pygeodesy.vector3d.Vector3d, pygeodesy.vector3dBase.Vector3dBase, pygeodesy.named._NamedBase, pygeodesy.named._Named\n\n    testVector3dAttrs(24.07.29)\n    test 424 angleTo() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 425 apply() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 426 attrs() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 427 bearing() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 428 bools() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 429 circin6() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 430 circum3() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 431 circum4_() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 432 classname Property_RO: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 433 classnaming _NamedProperty: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 434 classof() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 435 cmp() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 436 copy() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 437 cross() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 438 crosserrors _NamedProperty: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 439 dividedBy() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 440 dividedBy_() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 441 dot() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 442 dup() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 443 equals() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 444 equirectangular() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 445 euclid Property_RO: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 446 fabs() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 447 floats() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 448 floorDividedBy() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 449 floorDividedBy_() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 450 homogeneous property_RO: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 451 intermediateTo() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 452 ints() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 453 iscolinearWith() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 454 isconjugateTo() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 455 isequalTo() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 456 iteration property_RO: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 457 length Property_RO: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 458 length2 Property_RO: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 459 meeus2() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 460 methodname() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 461 minus() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 462 minus_() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 463 name _NamedProperty: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 464 named Property_RO: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 465 named2 Property_RO: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 466 named3 Property_RO: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 467 named4 Property_RO: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 468 nearestOn() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 469 nearestOn6() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 470 negate() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 471 others() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 472 parse() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 473 plus() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 474 plus_() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 475 pow() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 476 radii11() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 477 rename() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 478 renamed() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 479 rotate() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 480 rotateAround() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 481 sizeof property_RO: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 482 soddy4() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 483 sum() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 484 times() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 485 times_() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 486 to3xyz() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 487 toCartesian() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 488 toRepr() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 489 toStr() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 490 toStr2() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 491 trilaterate2d2() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 492 trilaterate3d2() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 493 typename property_RO: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 494 unit() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 495 x Property: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 496 x2y2z2 Property_RO: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 497 x2y2z23 property_RO: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 498 xyz Property: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 499 xyz3 property_RO: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 500 y Property: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 501 z Property: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n\n    testVector3dMro(24.07.29)\n    test 502 pygeodesy.nvectorBase: pygeodesy.vector3d.Vector3d, pygeodesy.vector3dBase.Vector3dBase, pygeodesy.named._NamedBase, pygeodesy.named._Named\n    test 503 pygeodesy.vector3d: pygeodesy.vector3d.Vector3d, pygeodesy.vector3dBase.Vector3dBase, pygeodesy.named._NamedBase, pygeodesy.named._Named\n    test 504 pygeodesy.sphericalTrigonometry: pygeodesy.vector3d.Vector3d, pygeodesy.vector3dBase.Vector3dBase, pygeodesy.named._NamedBase, pygeodesy.named._Named\n\n    testCopyAttr(24.07.29)\n    test 505 ADict: copy\n    test 506 Aer: copy\n    test 507 Aer4Tuple: copy\n    test 508 Albers7Tuple: copy\n    test 509 AlbersEqualArea: copy\n    test 510 AlbersEqualArea2: copy\n    test 511 AlbersEqualArea4: copy\n    test 512 AlbersEqualAreaCylindrical: copy\n    test 513 AlbersEqualAreaNorth: copy\n    test 514 AlbersEqualAreaSouth: copy\n    test 515 Ang: copy\n    test 516 Area3Tuple: copy\n    test 517 Attitude: copy\n    test 518 Attitude4Tuple: copy\n    test 519 Azimuth: copy\n    test 520 Azimuthal7Tuple: copy\n    test 521 Band: copy\n    test 522 Bearing: copy\n    test 523 Bearing2Tuple: copy\n    test 524 Bearing_: copy\n    test 525 BetOmgAlp5Tuple: copy\n    test 526 BetOmgGam5Tuple: copy\n    test 527 BetaOmega2Tuple: copy\n    test 528 BetaOmega3Tuple: copy\n    test 529 Bool: copy\n    test 530 BooleanFHP: copy\n    test 531 BooleanGH: copy\n    test 532 Bounds2Tuple: copy\n    test 533 Bounds4Tuple: copy\n    test 534 Cartesian5Tuple: copy\n    test 535 CassiniSoldner: copy\n    test 536 ChLV: copy\n    test 537 ChLV9Tuple: copy\n    test 538 ChLVEN2Tuple: copy\n    test 539 ChLVYX2Tuple: copy\n    test 540 ChLVa: copy\n    test 541 ChLVe: copy\n    test 542 ChLVyx2Tuple: copy\n    test 543 Circin6Tuple: copy\n    test 544 Circle4Tuple: copy\n    test 545 Circum3Tuple: copy\n    test 546 Circum4Tuple: copy\n    test 547 ClipCS4Tuple: copy\n    test 548 ClipFHP4Tuple: copy\n    test 549 ClipGH4Tuple: copy\n    test 550 ClipLB6Tuple: copy\n    test 551 ClipSH3Tuple: copy\n    test 552 Collins5Tuple: copy\n    test 553 Conformal: copy\n    test 554 Conformal2Tuple: copy\n    test 555 Conformal3: copy\n    test 556 Conformal3B: copy\n    test 557 Conformal3Sphere: copy\n    test 558 Conformal5Tuple: copy\n    test 559 ConformalSphere: copy\n    test 560 Conic: copy\n    test 561 Css: copy\n    test 562 Curvature2Tuple: copy\n    test 563 Datum: copy\n    test 564 Degrees: copy\n    test 565 Degrees2: copy\n    test 566 Degrees_: copy\n    test 567 Destination2Tuple: copy\n    test 568 Destination3Tuple: copy\n    test 569 Direct9Tuple: copy\n    test 570 Distance: copy\n    test 571 Distance2Tuple: copy\n    test 572 Distance3Tuple: copy\n    test 573 Distance4Tuple: copy\n    test 574 Distance_: copy\n    test 575 DivMod2Tuple: copy\n    test 576 EasNor2Tuple: copy\n    test 577 EasNor3Tuple: copy\n    test 578 EasNorAziRk4Tuple: copy\n    test 579 EasNorAziRkEqu6Tuple: copy\n    test 580 EasNorRadius3Tuple: copy\n    test 581 Easting: copy\n    test 582 Ecef9Tuple: copy\n    test 583 EcefFarrell21: copy\n    test 584 EcefFarrell22: copy\n    test 585 EcefKarney: copy\n    test 586 EcefMatrix: copy\n    test 587 EcefSudano: copy\n    test 588 EcefUPC: copy\n    test 589 EcefVeness: copy\n    test 590 EcefYou: copy\n    test 591 Elevation2Tuple: copy\n    test 592 Ellipse: copy\n    test 593 Ellipse5Tuple: copy\n    test 594 Ellipsoid: copy\n    test 595 Ellipsoid2: copy\n    test 596 Elliptic: copy\n    test 597 Elliptic3Tuple: copy\n    test 598 Enu: copy\n    test 599 Enu4Tuple: copy\n    test 600 Epoch: copy\n    test 601 Epsg: copy\n    test 602 Equidistant: copy\n    test 603 EquidistantExact: copy\n    test 604 EquidistantGeodSolve: copy\n    test 605 EquidistantKarney: copy\n    test 606 Etm: copy\n    test 607 ExactTransverseMercator: copy\n    test 608 FIx: copy\n    test 609 Fcbrt: copy\n    test 610 Fcook: copy\n    test 611 Fdot: copy\n    test 612 Fdot_: copy\n    test 613 Feet: copy\n    test 614 Fhorner: copy\n    test 615 Fhypot: copy\n    test 616 Flinear: copy\n    test 617 Float: copy\n    test 618 Float_: copy\n    test 619 Footprint5Tuple: copy\n    test 620 Forward4Tuple: copy\n    test 621 Fpolynomial: copy\n    test 622 Fpowers: copy\n    test 623 Frechet: copy\n    test 624 Frechet6Tuple: copy\n    test 625 FrechetCosineLaw: copy\n    test 626 FrechetDegrees: copy\n    test 627 FrechetDistanceTo: copy\n    test 628 FrechetEquirectangular: copy\n    test 629 FrechetEuclidean: copy\n    test 630 FrechetExact: copy\n    test 631 FrechetFlatLocal: copy\n    test 632 FrechetFlatPolar: copy\n    test 633 FrechetHaversine: copy\n    test 634 FrechetHubeny: copy\n    test 635 FrechetKarney: copy\n    test 636 FrechetRadians: copy\n    test 637 FrechetThomas: copy\n    test 638 FrechetVincentys: copy\n    test 639 Froot: copy\n    test 640 Frustum: copy\n    test 641 Fsqrt: copy\n    test 642 Fsum: copy\n    test 643 Fsum2Tuple: copy\n    test 644 Fwelford: copy\n    test 645 GDict: copy\n    test 646 Garef: copy\n    test 647 Geod3Solve8Tuple: copy\n    test 648 GeodSolve12Tuple: copy\n    test 649 Geodesic3Solve: copy\n    test 650 GeodesicAreaExact: copy\n    test 651 GeodesicExact: copy\n    test 652 GeodesicLine3Solve: copy\n    test 653 GeodesicLineExact: copy\n    test 654 GeodesicLineSolve: copy\n    test 655 GeodesicSolve: copy\n    test 656 Geohash: copy\n    test 657 GeoidEGM96: copy\n    test 658 GeoidG2012B: copy\n    test 659 GeoidHeight2Tuple: copy\n    test 660 GeoidHeight5Tuple: copy\n    test 661 GeoidKarney: copy\n    test 662 GeoidPGM: copy\n    test 663 Georef: copy\n    test 664 Gnomonic: copy\n    test 665 GnomonicExact: copy\n    test 666 GnomonicGeodSolve: copy\n    test 667 GnomonicKarney: copy\n    test 668 Hausdorff: copy\n    test 669 Hausdorff6Tuple: copy\n    test 670 HausdorffCosineLaw: copy\n    test 671 HausdorffDegrees: copy\n    test 672 HausdorffDistanceTo: copy\n    test 673 HausdorffEquirectangular: copy\n    test 674 HausdorffEuclidean: copy\n    test 675 HausdorffExact: copy\n    test 676 HausdorffFlatLocal: copy\n    test 677 HausdorffFlatPolar: copy\n    test 678 HausdorffHaversine: copy\n    test 679 HausdorffHubeny: copy\n    test 680 HausdorffKarney: copy\n    test 681 HausdorffRadians: copy\n    test 682 HausdorffThomas: copy\n    test 683 HausdorffVincentys: copy\n    test 684 Height: copy\n    test 685 HeightCubic: copy\n    test 686 HeightIDWcosineLaw: copy\n    test 687 HeightIDWdistanceTo: copy\n    test 688 HeightIDWequirectangular: copy\n    test 689 HeightIDWeuclidean: copy\n    test 690 HeightIDWexact: copy\n    test 691 HeightIDWflatLocal: copy\n    test 692 HeightIDWflatPolar: copy\n    test 693 HeightIDWhaversine: copy\n    test 694 HeightIDWhubeny: copy\n    test 695 HeightIDWkarney: copy\n    test 696 HeightIDWthomas: copy\n    test 697 HeightIDWvincentys: copy\n    test 698 HeightLSQBiSpline: copy\n    test 699 HeightLinear: copy\n    test 700 HeightSmoothBiSpline: copy\n    test 701 HeightX: copy\n    test 702 Height_: copy\n    test 703 Int: copy\n    test 704 Int_: copy\n    test 705 Intersect7Tuple: copy\n    test 706 Intersection3Tuple: copy\n    test 707 Intersectool: copy\n    test 708 Intersectool5Tuple: copy\n    test 709 Intersector: copy\n    test 710 Intersector5Tuple: copy\n    test 711 Inverse10Tuple: copy\n    test 712 KTransverseMercator: copy\n    test 713 Lam: copy\n    test 714 LambertEqualArea: copy\n    test 715 Lambertian: copy\n    test 716 Lamd: copy\n    test 717 Lat: copy\n    test 718 LatLon2PsxyIter: copy\n    test 719 LatLon2Tuple: copy\n    test 720 LatLon2psxy: copy\n    test 721 LatLon3Tuple: copy\n    test 722 LatLon4Tuple: copy\n    test 723 LatLonAziRk4Tuple: copy\n    test 724 LatLonDatum3Tuple: copy\n    test 725 LatLonDatum5Tuple: copy\n    test 726 LatLonFHP: copy\n    test 727 LatLonGH: copy\n    test 728 LatLonPrec3Tuple: copy\n    test 729 LatLonPrec5Tuple: copy\n    test 730 LatLon_: copy\n    test 731 Lat_: copy\n    test 732 Lcc: copy\n    test 733 Local9Tuple: copy\n    test 734 LocalCartesian: copy\n    test 735 Lon: copy\n    test 736 Lon_: copy\n    test 737 Los: copy\n    test 738 Ltp: copy\n    test 739 Meeus2Tuple: copy\n    test 740 Meter: copy\n    test 741 Meter2: copy\n    test 742 Meter3: copy\n    test 743 Meter_: copy\n    test 744 Mgrs: copy\n    test 745 Mgrs4Tuple: copy\n    test 746 Mgrs6Tuple: copy\n    test 747 Middle5Tuple: copy\n    test 748 NearestOn2Tuple: copy\n    test 749 NearestOn3Tuple: copy\n    test 750 NearestOn6Tuple: copy\n    test 751 NearestOn8Tuple: copy\n    test 752 Ned: copy\n    test 753 Ned4Tuple: copy\n    test 754 Neighbors8Dict: copy\n    test 755 Northing: copy\n    test 756 Number_: copy\n    test 757 Numpy2LatLon: copy\n    test 758 Orthographic: copy\n    test 759 Osgr: copy\n    test 760 Phi: copy\n    test 761 PhiLam2Tuple: copy\n    test 762 PhiLam3Tuple: copy\n    test 763 PhiLam4Tuple: copy\n    test 764 PhiLamZet5Tuple: copy\n    test 765 Phid: copy\n    test 766 Point3Tuple: copy\n    test 767 Points2Tuple: copy\n    test 768 PointsIter: copy\n    test 769 PolygonArea: copy\n    test 770 Precision_: copy\n    test 771 Radians: copy\n    test 772 Radians2: copy\n    test 773 Radians_: copy\n    test 774 Radical2Tuple: copy\n    test 775 Radii11Tuple: copy\n    test 776 Radius: copy\n    test 777 RadiusThetaPhi3Tuple: copy\n    test 778 Radius_: copy\n    test 779 RefFrame: copy\n    test 780 Resolutions2Tuple: copy\n    test 781 Reverse4Tuple: copy\n    test 782 Rhumb: copy\n    test 783 Rhumb8Tuple: copy\n    test 784 RhumbAux: copy\n    test 785 RhumbLine: copy\n    test 786 RhumbLineAux: copy\n    test 787 RhumbLineSolve: copy\n    test 788 RhumbSolve: copy\n    test 789 RhumbSolve7Tuple: copy\n    test 790 Scalar: copy\n    test 791 Scalar_: copy\n    test 792 Shape2Tuple: copy\n    test 793 Sizes3Tuple: copy\n    test 794 Soddy4Tuple: copy\n    test 795 Stereographic: copy\n    test 796 Str: copy\n    test 797 Survey3Tuple: copy\n    test 798 TRFXform: copy\n    test 799 TRFXform7Tuple: copy\n    test 800 Tienstra7Tuple: copy\n    test 801 Transform: copy\n    test 802 TransformXform: copy\n    test 803 TriAngle5Tuple: copy\n    test 804 TriSide2Tuple: copy\n    test 805 TriSide4Tuple: copy\n    test 806 Triangle7Tuple: copy\n    test 807 Triangle8Tuple: copy\n    test 808 Triaxial: copy\n    test 809 Triaxial3: copy\n    test 810 Triaxial3B: copy\n    test 811 Triaxial_: copy\n    test 812 Triaxum5Tuple: copy\n    test 813 Trilaterate5Tuple: copy\n    test 814 Tuple2LatLon: copy\n    test 815 Ups: copy\n    test 816 Utm: copy\n    test 817 UtmUps2Tuple: copy\n    test 818 UtmUps5Tuple: copy\n    test 819 UtmUps8Tuple: copy\n    test 820 UtmUpsLatLon5Tuple: copy\n    test 821 Uvw: copy\n    test 822 Uvw3Tuple: copy\n    test 823 Vector2Tuple: copy\n    test 824 Vector3Tuple: copy\n    test 825 Vector3d: copy\n    test 826 Vector4Tuple: copy\n    test 827 Wm: copy\n    test 828 XDict: copy\n    test 829 Xyz4Tuple: copy\n    test 830 XyzLocal: copy\n    test 831 Zone: copy\n    test 832 a_f2Tuple: copy\n\n    all 832 testClasses.py tests passed (pygeodesy 26.3.26 Python 3.11.9 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 1.24.2 scipy 1.10.1 Math 2 macOS 26.3.1 isLazy 0 -W  default) 8.580 ms\nrunning /usr/local/bin/p....n3.11 -W default ~/PyGeodesy/test/testClipy.py\n\n    testing testClipy.py 23.03.27\n\n    testing(pygeodesy.ellipsoidalNvector, 25.05.12)\n    test 1 clipCS4.p1: 07.5°N, 010.0°E\n    test 2 clipCS4.p2: 04.5°N, 000.0°E\n    test 3 clipCS4.i: 3\n    test 4 clipCS4.j: 0\n    test 5 clipCS4.p1: 05.0°N, 005.0°E\n    test 6 clipCS4.p2: 05.0°N, 005.0°E\n    test 7 clipCS4.i: 1\n    test 8 clipCS4.j: 2\n    test 9 clipLB6.p1: 07.5°N, 010.0°E\n    test 10 clipLB6.p2: 04.5°N, 000.0°E\n    test 11 clipLB6.i: 3\n    test 12 clipLB6.fi: 3.25\n    test 13 clipLB6.fi: 07.5°N, 010.0°E\n    test 14 clipLB6.fj: 3.75\n    test 15 clipLB6.fj: 04.5°N, 000.0°E\n    test 16 clipLB6.j: 0\n    test 17 clipLB6.fin: 4\n    test 18 clipLB6.p1: 05.0°N, 005.0°E\n    test 19 clipLB6.p2: 05.0°N, 005.0°E\n    test 20 clipLB6.i: 1\n    test 21 clipLB6.fi: 1.00\n    test 22 clipLB6.fi: 05.0°N, 005.0°E\n    test 23 clipLB6.fj: 2.00\n    test 24 clipLB6.fj: 05.0°N, 005.0°E\n    test 25 clipLB6.j: 2\n    test 26 clipLB6.fin: 4\n    test 27 clipCS4.p1: 60.0°N, 123.333333°E\n    test 28 clipCS4.p2: 62.857143°N, 130.0°E\n    test 29 clipCS4.i: 0\n    test 30 clipCS4.j: 1\n    test 31 clipLB6.p1: 60.0°N, 123.333333°E\n    test 32 clipLB6.p2: 62.857143°N, 130.0°E\n    test 33 clipLB6.i: 0\n    test 34 clipLB6.fi: 0.666667\n    test 35 clipLB6.fi: 60.0°N, 123.333333°E\n    test 36 clipLB6.fj: 0.714286\n    test 37 clipLB6.fj: 62.857143°N, 130.0°E\n    test 38 clipLB6.j: 1\n    test 39 clipLB6.fin: 0\n    test 40 clipCS4.p1: 17.5°N, 020.0°E\n    test 41 clipCS4.p2: 16.25°N, 015.0°E\n    test 42 clipCS4.i: 2\n    test 43 clipCS4.j: 0\n    test 44 clipLB6.p1: 17.5°N, 020.0°E\n    test 45 clipLB6.p2: 16.25°N, 015.0°E\n    test 46 clipLB6.i: 2\n    test 47 clipLB6.fi: 2.500\n    test 48 clipLB6.fi: 17.5°N, 020.0°E\n    test 49 clipLB6.fj: 2.750\n    test 50 clipLB6.fj: 16.25°N, 015.0°E\n    test 51 clipLB6.j: 0\n    test 52 clipLB6.fin: 3\n    test 53 clipSH1.len: 4\n    test 54 clipSH1.0: 20.0°N, 020.0°E\n    test 55 clipSH1.LL: True\n    test 56 clipSH1.1: 17.5°N, 020.0°E\n    test 57 clipSH1.LL: True\n    test 58 clipSH1.2: 16.25°N, 015.0°E\n    test 59 clipSH1.LL: True\n    test 60 clipSH1.3: 20.0°N, 015.0°E\n    test 61 clipSH1.LL: True\n    test 62 clipSH2.len: 5\n    test 63 clipSH2.0: 18.571°N, 024.286°E\n    test 64 clipSH2.LL: True\n    test 65 clipSH2.1: 16.667°N, 016.667°E\n    test 66 clipSH2.LL: True\n    test 67 clipSH2.2: 20.0°N, 015.0°E\n    test 68 clipSH2.LL: True\n    test 69 clipSH2.3: 25.0°N, 020.0°E\n    test 70 clipSH2.LL: True\n    test 71 clipSH2.4: 22.0°N, 026.0°E\n    test 72 clipSH2.LL: True\n    test 73 clipSH3.len: 2\n    test 74 clipSH3.0: 18.571°N, 024.286°E\n    test 75 clipSH3.LL: True\n    test 76 clipSH3.1: 16.667°N, 016.667°E\n    test 77 clipSH3.LL: True\n    test 78 clipSH3.edge.: True\n    test 79 clipSH3.len: 2\n    test 80 clipSH3.0: 16.667°N, 016.667°E\n    test 81 clipSH3.LL: True\n    test 82 clipSH3.1: 20.0°N, 015.0°E\n    test 83 clipSH3.LL: True\n    test 84 clipSH3.edge.: False\n    test 85 clipSH3.len: 2\n    test 86 clipSH3.0: 20.0°N, 015.0°E\n    test 87 clipSH3.LL: True\n    test 88 clipSH3.1: 25.0°N, 020.0°E\n    test 89 clipSH3.LL: True\n    test 90 clipSH3.edge.: True\n    test 91 clipSH3.len: 2\n    test 92 clipSH3.0: 25.0°N, 020.0°E\n    test 93 clipSH3.LL: True\n    test 94 clipSH3.1: 22.0°N, 026.0°E\n    test 95 clipSH3.LL: True\n    test 96 clipSH3.edge.: True\n    test 97 clipSH3.len: 2\n    test 98 clipSH3.0: 22.0°N, 026.0°E\n    test 99 clipSH3.LL: True\n    test 100 clipSH3.1: 18.571°N, 024.286°E\n    test 101 clipSH3.LL: True\n    test 102 clipSH3.edge.: False\n    test 103 clipSH2.reversed.len: 5\n    test 104 clipSH2.reversed.0: 18.571°N, 024.286°E\n    test 105 clipSH2.reversed.LL: True\n    test 106 clipSH2.reversed.1: 16.667°N, 016.667°E\n    test 107 clipSH2.reversed.LL: True\n    test 108 clipSH2.reversed.2: 20.0°N, 015.0°E\n    test 109 clipSH2.reversed.LL: True\n    test 110 clipSH2.reversed.3: 25.0°N, 020.0°E\n    test 111 clipSH2.reversed.LL: True\n    test 112 clipSH2.reversed.4: 22.0°N, 026.0°E\n    test 113 clipSH2.reversed.LL: True\n    test 114 clipSH3.reversed.len: 2\n    test 115 clipSH3.reversed.0: 18.571°N, 024.286°E\n    test 116 clipSH3.reversed.LL: True\n    test 117 clipSH3.reversed.1: 16.667°N, 016.667°E\n    test 118 clipSH3.reversed.LL: True\n    test 119 clipSH3.edge.reversed.: True\n    test 120 clipSH3.reversed.len: 2\n    test 121 clipSH3.reversed.0: 16.667°N, 016.667°E\n    test 122 clipSH3.reversed.LL: True\n    test 123 clipSH3.reversed.1: 20.0°N, 015.0°E\n    test 124 clipSH3.reversed.LL: True\n    test 125 clipSH3.edge.reversed.: False\n    test 126 clipSH3.reversed.len: 2\n    test 127 clipSH3.reversed.0: 20.0°N, 015.0°E\n    test 128 clipSH3.reversed.LL: True\n    test 129 clipSH3.reversed.1: 25.0°N, 020.0°E\n    test 130 clipSH3.reversed.LL: True\n    test 131 clipSH3.edge.reversed.: True\n    test 132 clipSH3.reversed.len: 2\n    test 133 clipSH3.reversed.0: 25.0°N, 020.0°E\n    test 134 clipSH3.reversed.LL: True\n    test 135 clipSH3.reversed.1: 22.0°N, 026.0°E\n    test 136 clipSH3.reversed.LL: True\n    test 137 clipSH3.edge.reversed.: True\n    test 138 clipSH3.reversed.len: 2\n    test 139 clipSH3.reversed.0: 22.0°N, 026.0°E\n    test 140 clipSH3.reversed.LL: True\n    test 141 clipSH3.reversed.1: 18.571°N, 024.286°E\n    test 142 clipSH3.reversed.LL: True\n    test 143 clipSH3.edge.reversed.: False\n    test 144 clipSH.allout: ()\n    test 145 clipSH3.allout: ()\n    test 146 clipSH.allout.reversed: ()\n    test 147 clipSH3.allout.reversed: ()\n    test 148 clipSH.allin.len: 4\n    test 149 clipSH.allin.0: 20.0°N, 030.0°E\n    test 150 clipSH.allin.LL: True\n    test 151 clipSH.allin.1: 15.0°N, 010.0°E\n    test 152 clipSH.allin.LL: True\n    test 153 clipSH.allin.2: 25.0°N, 020.0°E\n    test 154 clipSH.allin.LL: True\n    test 155 clipSH.allin.3: 20.0°N, 030.0°E\n    test 156 clipSH.allin.LL: True\n    test 157 clipSH3.allin.len: 2\n    test 158 clipSH3.allin.0: 20.0°N, 030.0°E\n    test 159 clipSH3.allin.LL: True\n    test 160 clipSH3.allin.1: 15.0°N, 010.0°E\n    test 161 clipSH3.allin.LL: True\n    test 162 clipSH3.edge.: True\n    test 163 clipSH3.allin.len: 2\n    test 164 clipSH3.allin.0: 15.0°N, 010.0°E\n    test 165 clipSH3.allin.LL: True\n    test 166 clipSH3.allin.1: 25.0°N, 020.0°E\n    test 167 clipSH3.allin.LL: True\n    test 168 clipSH3.edge.: True\n    test 169 clipSH.allin.reversed.len: 4\n    test 170 clipSH.allin.reversed.0: 20.0°N, 030.0°E\n    test 171 clipSH.allin.reversed.LL: True\n    test 172 clipSH.allin.reversed.1: 15.0°N, 010.0°E\n    test 173 clipSH.allin.reversed.LL: True\n    test 174 clipSH.allin.reversed.2: 25.0°N, 020.0°E\n    test 175 clipSH.allin.reversed.LL: True\n    test 176 clipSH.allin.reversed.3: 20.0°N, 030.0°E\n    test 177 clipSH.allin.reversed.LL: True\n    test 178 clipSH3.allin.reversed.len: 2\n    test 179 clipSH3.allin.reversed.0: 20.0°N, 030.0°E\n    test 180 clipSH3.allin.reversed.LL: True\n    test 181 clipSH3.allin.reversed.1: 15.0°N, 010.0°E\n    test 182 clipSH3.allin.reversed.LL: True\n    test 183 clipSH3.edge.reversed.: True\n    test 184 clipSH3.allin.reversed.len: 2\n    test 185 clipSH3.allin.reversed.0: 15.0°N, 010.0°E\n    test 186 clipSH3.allin.reversed.LL: True\n    test 187 clipSH3.allin.reversed.1: 25.0°N, 020.0°E\n    test 188 clipSH3.allin.reversed.LL: True\n    test 189 clipSH3.edge.reversed.: True\n    test 190 clipSH.warped: clipSH clip region ((LatLon(10°00′00.0″N, 010°00′00.0″E), LatLon(20°00′00.0″N, 020°00′00.0″E), LatLon(10°00′00.0″N, 020°00′00.0″E), LatLon(20°00′00.0″N, 010°00′00.0″E))): not convex\n    test 191 clipSH3.warped: clipSH3 clip region ((LatLon(10°00′00.0″N, 010°00′00.0″E), LatLon(20°00′00.0″N, 020°00′00.0″E), LatLon(10°00′00.0″N, 020°00′00.0″E), LatLon(20°00′00.0″N, 010°00′00.0″E))): not convex\n    test 192 clipSH.warpedreversed.: clipSH clip region ((LatLon(20°00′00.0″N, 010°00′00.0″E), LatLon(10°00′00.0″N, 020°00′00.0″E), LatLon(20°00′00.0″N, 020°00′00.0″E), LatLon(10°00′00.0″N, 010°00′00.0″E))): not convex\n    test 193 clipSH3.warpedreversed.: clipSH3 clip region ((LatLon(20°00′00.0″N, 010°00′00.0″E), LatLon(10°00′00.0″N, 020°00′00.0″E), LatLon(20°00′00.0″N, 020°00′00.0″E), LatLon(10°00′00.0″N, 010°00′00.0″E))): not convex\n    test 194 boundsOf: (10.0, 10.0, 20.0, 20.0)\n    test 195 boundsOf: (15.0, 10.0, 25.0, 30.0)\n    test 196 enclosures: (5.0, 0.0, -5.0, -10.0)\n    test 197 overlap: (15.0, 10.0, 20.0, 20.0)\n    test 198 clipSH4: 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 0.0\n    test 199 clipSH5: 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 0.0\n    test 200 clipSH6: 1.0, 0.5, 2.0, 1.0, 2.0, 0.5\n    test 201 clipSH7: -0.2, 2.0, 0.2, 2.0, 0.5, 0.5, 2.0, 0.2, 2.0, -0.2, 0.5, -0.5, 0.2, -2.0, -0.2, -2.0, -0.5, -0.5, -2.0, -0.2, -2.0, 0.2, -0.5, 0.5\n    test 202 clipSH8: -0.33, 1.33, 0.0, 2.0, 0.33, 1.33, 0.5, 0.5, 0.78, 0.44, 1.18, -0.36, 0.5, -0.5, 0.2, -2.0, -0.2, -2.0, -0.5, -0.5, -1.18, -0.36, -0.78, 0.44, -0.5, 0.5\n    test 203 clipSH9: None\n    test 204 clipSH10: None\n    test 205 clipSH11: None\n    test 206 clipSH12: None\n\n    test 207 clipGH4: (ClipGH4Tuple(lat=5.0, lon=3.571429, height=1.714286, clipid=0), ClipGH4Tuple(lat=7.0, lon=5.0, height=2.0, clipid=0), ClipGH4Tuple(lat=5.0, lon=6.428571, height=2.285714, clipid=0), ClipGH4Tuple(lat=3.0, lon=5.0, height=2.0, clipid=0))\n\n    test 208 clipFHP4: (ClipFHP4Tuple(lat=7.0, lon=5.0, height=2.0, clipid=0), ClipFHP4Tuple(lat=5.0, lon=6.428571, height=2.285714, clipid=0), ClipFHP4Tuple(lat=3.0, lon=5.0, height=2.0, clipid=0), ClipFHP4Tuple(lat=5.0, lon=3.571429, height=1.714286, clipid=0))\n\n    test 209 Fig 8: (ClipFHP4Tuple(lat=4.0, lon=12.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=-1.0, lon=12.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=3.0, lon=8.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=5.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=3.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=2.0, lon=1.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=6.0, lon=3.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=6.0, lon=11.0, height=0.0, clipid=0))\n    test 210 Fig 14: (ClipFHP4Tuple(lat=3.0, lon=3.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=0.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=6.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=6.0, lon=6.0, height=0.0, clipid=1), ClipFHP4Tuple(lat=9.0, lon=3.0, height=0.0, clipid=1), ClipFHP4Tuple(lat=6.0, lon=0.0, height=0.0, clipid=1), ClipFHP4Tuple(lat=3.0, lon=3.0, height=0.0, clipid=1))\n    test 211 Fig 15: (ClipFHP4Tuple(lat=1.0, lon=3.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=4.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=2.0, lon=4.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=2.0, lon=0.0, height=0.0, clipid=1), ClipFHP4Tuple(lat=0.0, lon=0.0, height=0.0, clipid=1), ClipFHP4Tuple(lat=1.0, lon=1.0, height=0.0, clipid=1))\n    test 212 Fig 16: (ClipFHP4Tuple(lat=0.0, lon=0.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=1.0, lon=0.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=2.0, lon=2.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=2.0, height=0.0, clipid=0))\n    test 213 Fig 18: ((-10, -10, 0), (-10, -2, 0), (-8, -2, 0), (-8, -8, 0), (-2, -8, 0), (-2, -10, 0), (2, -10, 1), (2, -8, 1), (0, -8, 1), (0, -10, 1), (10, -6, 2), (8, -6, 2), (8, -8, 2), (10, -8, 2), (10, 8, 3), (8, 8, 3), (8, 6, 3), (10, 6, 3), (-6, 10, 4), (-6, 8, 4), (-4, 8, 4), (-4, 10, 4), (-10, 10, 5), (-10, 8, 5), (-8, 8, 5), (-8, 10, 5), (-10, 4, 6), (-8, 4, 6), (-8, 6, 6), (-10, 6, 6), (-10, 0, 7), (-8, 0, 7), (-8, 2, 7), (-10, 2, 7), (-6, 6, 8), (-4, 6, 8), (-4, 4, 8), (-6, 4, 8), (-6, 0, 9), (-4, 0, 9), (-4, 2, 9), (-6, 2, 9), (-6, -6, 10), (-2, -6, 10), (-2, -4, 10), (-4, -4, 10), (-4, -2, 10), (-6, -2, 10), (2, -6, 11), (2, -4, 11), (0, -4, 11), (0, -6, 11), (12, 8, 12), (20, 8, 12), (20, -8, 12), (12, -8, 12), (12, -6, 12), (18, -6, 12), (18, 6, 12), (12, 6, 12), (12, -4, 13), (14, -4, 13), (14, 4, 13), (12, 4, 13))\n\n    testing(pygeodesy.ellipsoidalVincenty, 25.05.26)\n    test 214 clipCS4.p1: 07.5°N, 010.0°E\n    test 215 clipCS4.p2: 04.5°N, 000.0°E\n    test 216 clipCS4.i: 3\n    test 217 clipCS4.j: 0\n    test 218 clipCS4.p1: 05.0°N, 005.0°E\n    test 219 clipCS4.p2: 05.0°N, 005.0°E\n    test 220 clipCS4.i: 1\n    test 221 clipCS4.j: 2\n    test 222 clipLB6.p1: 07.5°N, 010.0°E\n    test 223 clipLB6.p2: 04.5°N, 000.0°E\n    test 224 clipLB6.i: 3\n    test 225 clipLB6.fi: 3.25\n    test 226 clipLB6.fi: 07.5°N, 010.0°E\n    test 227 clipLB6.fj: 3.75\n    test 228 clipLB6.fj: 04.5°N, 000.0°E\n    test 229 clipLB6.j: 0\n    test 230 clipLB6.fin: 4\n    test 231 clipLB6.p1: 05.0°N, 005.0°E\n    test 232 clipLB6.p2: 05.0°N, 005.0°E\n    test 233 clipLB6.i: 1\n    test 234 clipLB6.fi: 1.00\n    test 235 clipLB6.fi: 05.0°N, 005.0°E\n    test 236 clipLB6.fj: 2.00\n    test 237 clipLB6.fj: 05.0°N, 005.0°E\n    test 238 clipLB6.j: 2\n    test 239 clipLB6.fin: 4\n    test 240 clipCS4.p1: 60.0°N, 123.333333°E\n    test 241 clipCS4.p2: 62.857143°N, 130.0°E\n    test 242 clipCS4.i: 0\n    test 243 clipCS4.j: 1\n    test 244 clipLB6.p1: 60.0°N, 123.333333°E\n    test 245 clipLB6.p2: 62.857143°N, 130.0°E\n    test 246 clipLB6.i: 0\n    test 247 clipLB6.fi: 0.666667\n    test 248 clipLB6.fi: 60.0°N, 123.333333°E\n    test 249 clipLB6.fj: 0.714286\n    test 250 clipLB6.fj: 62.857143°N, 130.0°E\n    test 251 clipLB6.j: 1\n    test 252 clipLB6.fin: 0\n    test 253 clipCS4.p1: 17.5°N, 020.0°E\n    test 254 clipCS4.p2: 16.25°N, 015.0°E\n    test 255 clipCS4.i: 2\n    test 256 clipCS4.j: 0\n    test 257 clipLB6.p1: 17.5°N, 020.0°E\n    test 258 clipLB6.p2: 16.25°N, 015.0°E\n    test 259 clipLB6.i: 2\n    test 260 clipLB6.fi: 2.500\n    test 261 clipLB6.fi: 17.5°N, 020.0°E\n    test 262 clipLB6.fj: 2.750\n    test 263 clipLB6.fj: 16.25°N, 015.0°E\n    test 264 clipLB6.j: 0\n    test 265 clipLB6.fin: 3\n    test 266 clipSH1.len: 4\n    test 267 clipSH1.0: 20.0°N, 020.0°E\n    test 268 clipSH1.LL: True\n    test 269 clipSH1.1: 17.5°N, 020.0°E\n    test 270 clipSH1.LL: True\n    test 271 clipSH1.2: 16.25°N, 015.0°E\n    test 272 clipSH1.LL: True\n    test 273 clipSH1.3: 20.0°N, 015.0°E\n    test 274 clipSH1.LL: True\n    test 275 clipSH2.len: 5\n    test 276 clipSH2.0: 18.571°N, 024.286°E\n    test 277 clipSH2.LL: True\n    test 278 clipSH2.1: 16.667°N, 016.667°E\n    test 279 clipSH2.LL: True\n    test 280 clipSH2.2: 20.0°N, 015.0°E\n    test 281 clipSH2.LL: True\n    test 282 clipSH2.3: 25.0°N, 020.0°E\n    test 283 clipSH2.LL: True\n    test 284 clipSH2.4: 22.0°N, 026.0°E\n    test 285 clipSH2.LL: True\n    test 286 clipSH3.len: 2\n    test 287 clipSH3.0: 18.571°N, 024.286°E\n    test 288 clipSH3.LL: True\n    test 289 clipSH3.1: 16.667°N, 016.667°E\n    test 290 clipSH3.LL: True\n    test 291 clipSH3.edge.: True\n    test 292 clipSH3.len: 2\n    test 293 clipSH3.0: 16.667°N, 016.667°E\n    test 294 clipSH3.LL: True\n    test 295 clipSH3.1: 20.0°N, 015.0°E\n    test 296 clipSH3.LL: True\n    test 297 clipSH3.edge.: False\n    test 298 clipSH3.len: 2\n    test 299 clipSH3.0: 20.0°N, 015.0°E\n    test 300 clipSH3.LL: True\n    test 301 clipSH3.1: 25.0°N, 020.0°E\n    test 302 clipSH3.LL: True\n    test 303 clipSH3.edge.: True\n    test 304 clipSH3.len: 2\n    test 305 clipSH3.0: 25.0°N, 020.0°E\n    test 306 clipSH3.LL: True\n    test 307 clipSH3.1: 22.0°N, 026.0°E\n    test 308 clipSH3.LL: True\n    test 309 clipSH3.edge.: True\n    test 310 clipSH3.len: 2\n    test 311 clipSH3.0: 22.0°N, 026.0°E\n    test 312 clipSH3.LL: True\n    test 313 clipSH3.1: 18.571°N, 024.286°E\n    test 314 clipSH3.LL: True\n    test 315 clipSH3.edge.: False\n    test 316 clipSH2.reversed.len: 5\n    test 317 clipSH2.reversed.0: 18.571°N, 024.286°E\n    test 318 clipSH2.reversed.LL: True\n    test 319 clipSH2.reversed.1: 16.667°N, 016.667°E\n    test 320 clipSH2.reversed.LL: True\n    test 321 clipSH2.reversed.2: 20.0°N, 015.0°E\n    test 322 clipSH2.reversed.LL: True\n    test 323 clipSH2.reversed.3: 25.0°N, 020.0°E\n    test 324 clipSH2.reversed.LL: True\n    test 325 clipSH2.reversed.4: 22.0°N, 026.0°E\n    test 326 clipSH2.reversed.LL: True\n    test 327 clipSH3.reversed.len: 2\n    test 328 clipSH3.reversed.0: 18.571°N, 024.286°E\n    test 329 clipSH3.reversed.LL: True\n    test 330 clipSH3.reversed.1: 16.667°N, 016.667°E\n    test 331 clipSH3.reversed.LL: True\n    test 332 clipSH3.edge.reversed.: True\n    test 333 clipSH3.reversed.len: 2\n    test 334 clipSH3.reversed.0: 16.667°N, 016.667°E\n    test 335 clipSH3.reversed.LL: True\n    test 336 clipSH3.reversed.1: 20.0°N, 015.0°E\n    test 337 clipSH3.reversed.LL: True\n    test 338 clipSH3.edge.reversed.: False\n    test 339 clipSH3.reversed.len: 2\n    test 340 clipSH3.reversed.0: 20.0°N, 015.0°E\n    test 341 clipSH3.reversed.LL: True\n    test 342 clipSH3.reversed.1: 25.0°N, 020.0°E\n    test 343 clipSH3.reversed.LL: True\n    test 344 clipSH3.edge.reversed.: True\n    test 345 clipSH3.reversed.len: 2\n    test 346 clipSH3.reversed.0: 25.0°N, 020.0°E\n    test 347 clipSH3.reversed.LL: True\n    test 348 clipSH3.reversed.1: 22.0°N, 026.0°E\n    test 349 clipSH3.reversed.LL: True\n    test 350 clipSH3.edge.reversed.: True\n    test 351 clipSH3.reversed.len: 2\n    test 352 clipSH3.reversed.0: 22.0°N, 026.0°E\n    test 353 clipSH3.reversed.LL: True\n    test 354 clipSH3.reversed.1: 18.571°N, 024.286°E\n    test 355 clipSH3.reversed.LL: True\n    test 356 clipSH3.edge.reversed.: False\n    test 357 clipSH.allout: ()\n    test 358 clipSH3.allout: ()\n    test 359 clipSH.allout.reversed: ()\n    test 360 clipSH3.allout.reversed: ()\n    test 361 clipSH.allin.len: 4\n    test 362 clipSH.allin.0: 20.0°N, 030.0°E\n    test 363 clipSH.allin.LL: True\n    test 364 clipSH.allin.1: 15.0°N, 010.0°E\n    test 365 clipSH.allin.LL: True\n    test 366 clipSH.allin.2: 25.0°N, 020.0°E\n    test 367 clipSH.allin.LL: True\n    test 368 clipSH.allin.3: 20.0°N, 030.0°E\n    test 369 clipSH.allin.LL: True\n    test 370 clipSH3.allin.len: 2\n    test 371 clipSH3.allin.0: 20.0°N, 030.0°E\n    test 372 clipSH3.allin.LL: True\n    test 373 clipSH3.allin.1: 15.0°N, 010.0°E\n    test 374 clipSH3.allin.LL: True\n    test 375 clipSH3.edge.: True\n    test 376 clipSH3.allin.len: 2\n    test 377 clipSH3.allin.0: 15.0°N, 010.0°E\n    test 378 clipSH3.allin.LL: True\n    test 379 clipSH3.allin.1: 25.0°N, 020.0°E\n    test 380 clipSH3.allin.LL: True\n    test 381 clipSH3.edge.: True\n    test 382 clipSH.allin.reversed.len: 4\n    test 383 clipSH.allin.reversed.0: 20.0°N, 030.0°E\n    test 384 clipSH.allin.reversed.LL: True\n    test 385 clipSH.allin.reversed.1: 15.0°N, 010.0°E\n    test 386 clipSH.allin.reversed.LL: True\n    test 387 clipSH.allin.reversed.2: 25.0°N, 020.0°E\n    test 388 clipSH.allin.reversed.LL: True\n    test 389 clipSH.allin.reversed.3: 20.0°N, 030.0°E\n    test 390 clipSH.allin.reversed.LL: True\n    test 391 clipSH3.allin.reversed.len: 2\n    test 392 clipSH3.allin.reversed.0: 20.0°N, 030.0°E\n    test 393 clipSH3.allin.reversed.LL: True\n    test 394 clipSH3.allin.reversed.1: 15.0°N, 010.0°E\n    test 395 clipSH3.allin.reversed.LL: True\n    test 396 clipSH3.edge.reversed.: True\n    test 397 clipSH3.allin.reversed.len: 2\n    test 398 clipSH3.allin.reversed.0: 15.0°N, 010.0°E\n    test 399 clipSH3.allin.reversed.LL: True\n    test 400 clipSH3.allin.reversed.1: 25.0°N, 020.0°E\n    test 401 clipSH3.allin.reversed.LL: True\n    test 402 clipSH3.edge.reversed.: True\n    test 403 clipSH.warped: clipSH clip region ((LatLon(10°00′00.0″N, 010°00′00.0″E), LatLon(20°00′00.0″N, 020°00′00.0″E), LatLon(10°00′00.0″N, 020°00′00.0″E), LatLon(20°00′00.0″N, 010°00′00.0″E))): not convex\n    test 404 clipSH3.warped: clipSH3 clip region ((LatLon(10°00′00.0″N, 010°00′00.0″E), LatLon(20°00′00.0″N, 020°00′00.0″E), LatLon(10°00′00.0″N, 020°00′00.0″E), LatLon(20°00′00.0″N, 010°00′00.0″E))): not convex\n    test 405 clipSH.warpedreversed.: clipSH clip region ((LatLon(20°00′00.0″N, 010°00′00.0″E), LatLon(10°00′00.0″N, 020°00′00.0″E), LatLon(20°00′00.0″N, 020°00′00.0″E), LatLon(10°00′00.0″N, 010°00′00.0″E))): not convex\n    test 406 clipSH3.warpedreversed.: clipSH3 clip region ((LatLon(20°00′00.0″N, 010°00′00.0″E), LatLon(10°00′00.0″N, 020°00′00.0″E), LatLon(20°00′00.0″N, 020°00′00.0″E), LatLon(10°00′00.0″N, 010°00′00.0″E))): not convex\n    test 407 boundsOf: (10.0, 10.0, 20.0, 20.0)\n    test 408 boundsOf: (15.0, 10.0, 25.0, 30.0)\n    test 409 enclosures: (5.0, 0.0, -5.0, -10.0)\n    test 410 overlap: (15.0, 10.0, 20.0, 20.0)\n    test 411 clipSH4: 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 0.0\n    test 412 clipSH5: 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 0.0\n    test 413 clipSH6: 1.0, 0.5, 2.0, 1.0, 2.0, 0.5\n    test 414 clipSH7: -0.2, 2.0, 0.2, 2.0, 0.5, 0.5, 2.0, 0.2, 2.0, -0.2, 0.5, -0.5, 0.2, -2.0, -0.2, -2.0, -0.5, -0.5, -2.0, -0.2, -2.0, 0.2, -0.5, 0.5\n    test 415 clipSH8: -0.33, 1.33, 0.0, 2.0, 0.33, 1.33, 0.5, 0.5, 0.78, 0.44, 1.18, -0.36, 0.5, -0.5, 0.2, -2.0, -0.2, -2.0, -0.5, -0.5, -1.18, -0.36, -0.78, 0.44, -0.5, 0.5\n    test 416 clipSH9: None\n    test 417 clipSH10: None\n    test 418 clipSH11: None\n    test 419 clipSH12: None\n\n    test 420 clipGH4: (ClipGH4Tuple(lat=5.0, lon=3.571429, height=1.714286, clipid=0), ClipGH4Tuple(lat=7.0, lon=5.0, height=2.0, clipid=0), ClipGH4Tuple(lat=5.0, lon=6.428571, height=2.285714, clipid=0), ClipGH4Tuple(lat=3.0, lon=5.0, height=2.0, clipid=0))\n\n    test 421 clipFHP4: (ClipFHP4Tuple(lat=7.0, lon=5.0, height=2.0, clipid=0), ClipFHP4Tuple(lat=5.0, lon=6.428571, height=2.285714, clipid=0), ClipFHP4Tuple(lat=3.0, lon=5.0, height=2.0, clipid=0), ClipFHP4Tuple(lat=5.0, lon=3.571429, height=1.714286, clipid=0))\n\n    test 422 Fig 8: (ClipFHP4Tuple(lat=4.0, lon=12.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=-1.0, lon=12.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=3.0, lon=8.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=5.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=3.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=2.0, lon=1.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=6.0, lon=3.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=6.0, lon=11.0, height=0.0, clipid=0))\n    test 423 Fig 14: (ClipFHP4Tuple(lat=3.0, lon=3.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=0.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=6.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=6.0, lon=6.0, height=0.0, clipid=1), ClipFHP4Tuple(lat=9.0, lon=3.0, height=0.0, clipid=1), ClipFHP4Tuple(lat=6.0, lon=0.0, height=0.0, clipid=1), ClipFHP4Tuple(lat=3.0, lon=3.0, height=0.0, clipid=1))\n    test 424 Fig 15: (ClipFHP4Tuple(lat=1.0, lon=3.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=4.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=2.0, lon=4.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=2.0, lon=0.0, height=0.0, clipid=1), ClipFHP4Tuple(lat=0.0, lon=0.0, height=0.0, clipid=1), ClipFHP4Tuple(lat=1.0, lon=1.0, height=0.0, clipid=1))\n    test 425 Fig 16: (ClipFHP4Tuple(lat=0.0, lon=0.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=1.0, lon=0.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=2.0, lon=2.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=2.0, height=0.0, clipid=0))\n    test 426 Fig 18: ((-10, -10, 0), (-10, -2, 0), (-8, -2, 0), (-8, -8, 0), (-2, -8, 0), (-2, -10, 0), (2, -10, 1), (2, -8, 1), (0, -8, 1), (0, -10, 1), (10, -6, 2), (8, -6, 2), (8, -8, 2), (10, -8, 2), (10, 8, 3), (8, 8, 3), (8, 6, 3), (10, 6, 3), (-6, 10, 4), (-6, 8, 4), (-4, 8, 4), (-4, 10, 4), (-10, 10, 5), (-10, 8, 5), (-8, 8, 5), (-8, 10, 5), (-10, 4, 6), (-8, 4, 6), (-8, 6, 6), (-10, 6, 6), (-10, 0, 7), (-8, 0, 7), (-8, 2, 7), (-10, 2, 7), (-6, 6, 8), (-4, 6, 8), (-4, 4, 8), (-6, 4, 8), (-6, 0, 9), (-4, 0, 9), (-4, 2, 9), (-6, 2, 9), (-6, -6, 10), (-2, -6, 10), (-2, -4, 10), (-4, -4, 10), (-4, -2, 10), (-6, -2, 10), (2, -6, 11), (2, -4, 11), (0, -4, 11), (0, -6, 11), (12, 8, 12), (20, 8, 12), (20, -8, 12), (12, -8, 12), (12, -6, 12), (18, -6, 12), (18, 6, 12), (12, 6, 12), (12, -4, 13), (14, -4, 13), (14, 4, 13), (12, 4, 13))\n\n    testing(pygeodesy.sphericalNvector, 25.05.27)\n    test 427 clipCS4.p1: 07.5°N, 010.0°E\n    test 428 clipCS4.p2: 04.5°N, 000.0°E\n    test 429 clipCS4.i: 3\n    test 430 clipCS4.j: 0\n    test 431 clipCS4.p1: 05.0°N, 005.0°E\n    test 432 clipCS4.p2: 05.0°N, 005.0°E\n    test 433 clipCS4.i: 1\n    test 434 clipCS4.j: 2\n    test 435 clipLB6.p1: 07.5°N, 010.0°E\n    test 436 clipLB6.p2: 04.5°N, 000.0°E\n    test 437 clipLB6.i: 3\n    test 438 clipLB6.fi: 3.25\n    test 439 clipLB6.fi: 07.5°N, 010.0°E\n    test 440 clipLB6.fj: 3.75\n    test 441 clipLB6.fj: 04.5°N, 000.0°E\n    test 442 clipLB6.j: 0\n    test 443 clipLB6.fin: 4\n    test 444 clipLB6.p1: 05.0°N, 005.0°E\n    test 445 clipLB6.p2: 05.0°N, 005.0°E\n    test 446 clipLB6.i: 1\n    test 447 clipLB6.fi: 1.00\n    test 448 clipLB6.fi: 05.0°N, 005.0°E\n    test 449 clipLB6.fj: 2.00\n    test 450 clipLB6.fj: 05.0°N, 005.0°E\n    test 451 clipLB6.j: 2\n    test 452 clipLB6.fin: 4\n    test 453 clipCS4.p1: 60.0°N, 123.333333°E\n    test 454 clipCS4.p2: 62.857143°N, 130.0°E\n    test 455 clipCS4.i: 0\n    test 456 clipCS4.j: 1\n    test 457 clipLB6.p1: 60.0°N, 123.333333°E\n    test 458 clipLB6.p2: 62.857143°N, 130.0°E\n    test 459 clipLB6.i: 0\n    test 460 clipLB6.fi: 0.666667\n    test 461 clipLB6.fi: 60.0°N, 123.333333°E\n    test 462 clipLB6.fj: 0.714286\n    test 463 clipLB6.fj: 62.857143°N, 130.0°E\n    test 464 clipLB6.j: 1\n    test 465 clipLB6.fin: 0\n    test 466 clipCS4.p1: 17.5°N, 020.0°E\n    test 467 clipCS4.p2: 16.25°N, 015.0°E\n    test 468 clipCS4.i: 2\n    test 469 clipCS4.j: 0\n    test 470 clipLB6.p1: 17.5°N, 020.0°E\n    test 471 clipLB6.p2: 16.25°N, 015.0°E\n    test 472 clipLB6.i: 2\n    test 473 clipLB6.fi: 2.500\n    test 474 clipLB6.fi: 17.5°N, 020.0°E\n    test 475 clipLB6.fj: 2.750\n    test 476 clipLB6.fj: 16.25°N, 015.0°E\n    test 477 clipLB6.j: 0\n    test 478 clipLB6.fin: 3\n    test 479 clipSH1.len: 4\n    test 480 clipSH1.0: 20.0°N, 020.0°E\n    test 481 clipSH1.LL: True\n    test 482 clipSH1.1: 17.5°N, 020.0°E\n    test 483 clipSH1.LL: True\n    test 484 clipSH1.2: 16.25°N, 015.0°E\n    test 485 clipSH1.LL: True\n    test 486 clipSH1.3: 20.0°N, 015.0°E\n    test 487 clipSH1.LL: True\n    test 488 clipSH2.len: 5\n    test 489 clipSH2.0: 18.571°N, 024.286°E\n    test 490 clipSH2.LL: True\n    test 491 clipSH2.1: 16.667°N, 016.667°E\n    test 492 clipSH2.LL: True\n    test 493 clipSH2.2: 20.0°N, 015.0°E\n    test 494 clipSH2.LL: True\n    test 495 clipSH2.3: 25.0°N, 020.0°E\n    test 496 clipSH2.LL: True\n    test 497 clipSH2.4: 22.0°N, 026.0°E\n    test 498 clipSH2.LL: True\n    test 499 clipSH3.len: 2\n    test 500 clipSH3.0: 18.571°N, 024.286°E\n    test 501 clipSH3.LL: True\n    test 502 clipSH3.1: 16.667°N, 016.667°E\n    test 503 clipSH3.LL: True\n    test 504 clipSH3.edge.: True\n    test 505 clipSH3.len: 2\n    test 506 clipSH3.0: 16.667°N, 016.667°E\n    test 507 clipSH3.LL: True\n    test 508 clipSH3.1: 20.0°N, 015.0°E\n    test 509 clipSH3.LL: True\n    test 510 clipSH3.edge.: False\n    test 511 clipSH3.len: 2\n    test 512 clipSH3.0: 20.0°N, 015.0°E\n    test 513 clipSH3.LL: True\n    test 514 clipSH3.1: 25.0°N, 020.0°E\n    test 515 clipSH3.LL: True\n    test 516 clipSH3.edge.: True\n    test 517 clipSH3.len: 2\n    test 518 clipSH3.0: 25.0°N, 020.0°E\n    test 519 clipSH3.LL: True\n    test 520 clipSH3.1: 22.0°N, 026.0°E\n    test 521 clipSH3.LL: True\n    test 522 clipSH3.edge.: True\n    test 523 clipSH3.len: 2\n    test 524 clipSH3.0: 22.0°N, 026.0°E\n    test 525 clipSH3.LL: True\n    test 526 clipSH3.1: 18.571°N, 024.286°E\n    test 527 clipSH3.LL: True\n    test 528 clipSH3.edge.: False\n    test 529 clipSH2.reversed.len: 5\n    test 530 clipSH2.reversed.0: 18.571°N, 024.286°E\n    test 531 clipSH2.reversed.LL: True\n    test 532 clipSH2.reversed.1: 16.667°N, 016.667°E\n    test 533 clipSH2.reversed.LL: True\n    test 534 clipSH2.reversed.2: 20.0°N, 015.0°E\n    test 535 clipSH2.reversed.LL: True\n    test 536 clipSH2.reversed.3: 25.0°N, 020.0°E\n    test 537 clipSH2.reversed.LL: True\n    test 538 clipSH2.reversed.4: 22.0°N, 026.0°E\n    test 539 clipSH2.reversed.LL: True\n    test 540 clipSH3.reversed.len: 2\n    test 541 clipSH3.reversed.0: 18.571°N, 024.286°E\n    test 542 clipSH3.reversed.LL: True\n    test 543 clipSH3.reversed.1: 16.667°N, 016.667°E\n    test 544 clipSH3.reversed.LL: True\n    test 545 clipSH3.edge.reversed.: True\n    test 546 clipSH3.reversed.len: 2\n    test 547 clipSH3.reversed.0: 16.667°N, 016.667°E\n    test 548 clipSH3.reversed.LL: True\n    test 549 clipSH3.reversed.1: 20.0°N, 015.0°E\n    test 550 clipSH3.reversed.LL: True\n    test 551 clipSH3.edge.reversed.: False\n    test 552 clipSH3.reversed.len: 2\n    test 553 clipSH3.reversed.0: 20.0°N, 015.0°E\n    test 554 clipSH3.reversed.LL: True\n    test 555 clipSH3.reversed.1: 25.0°N, 020.0°E\n    test 556 clipSH3.reversed.LL: True\n    test 557 clipSH3.edge.reversed.: True\n    test 558 clipSH3.reversed.len: 2\n    test 559 clipSH3.reversed.0: 25.0°N, 020.0°E\n    test 560 clipSH3.reversed.LL: True\n    test 561 clipSH3.reversed.1: 22.0°N, 026.0°E\n    test 562 clipSH3.reversed.LL: True\n    test 563 clipSH3.edge.reversed.: True\n    test 564 clipSH3.reversed.len: 2\n    test 565 clipSH3.reversed.0: 22.0°N, 026.0°E\n    test 566 clipSH3.reversed.LL: True\n    test 567 clipSH3.reversed.1: 18.571°N, 024.286°E\n    test 568 clipSH3.reversed.LL: True\n    test 569 clipSH3.edge.reversed.: False\n    test 570 clipSH.allout: ()\n    test 571 clipSH3.allout: ()\n    test 572 clipSH.allout.reversed: ()\n    test 573 clipSH3.allout.reversed: ()\n    test 574 clipSH.allin.len: 4\n    test 575 clipSH.allin.0: 20.0°N, 030.0°E\n    test 576 clipSH.allin.LL: True\n    test 577 clipSH.allin.1: 15.0°N, 010.0°E\n    test 578 clipSH.allin.LL: True\n    test 579 clipSH.allin.2: 25.0°N, 020.0°E\n    test 580 clipSH.allin.LL: True\n    test 581 clipSH.allin.3: 20.0°N, 030.0°E\n    test 582 clipSH.allin.LL: True\n    test 583 clipSH3.allin.len: 2\n    test 584 clipSH3.allin.0: 20.0°N, 030.0°E\n    test 585 clipSH3.allin.LL: True\n    test 586 clipSH3.allin.1: 15.0°N, 010.0°E\n    test 587 clipSH3.allin.LL: True\n    test 588 clipSH3.edge.: True\n    test 589 clipSH3.allin.len: 2\n    test 590 clipSH3.allin.0: 15.0°N, 010.0°E\n    test 591 clipSH3.allin.LL: True\n    test 592 clipSH3.allin.1: 25.0°N, 020.0°E\n    test 593 clipSH3.allin.LL: True\n    test 594 clipSH3.edge.: True\n    test 595 clipSH.allin.reversed.len: 4\n    test 596 clipSH.allin.reversed.0: 20.0°N, 030.0°E\n    test 597 clipSH.allin.reversed.LL: True\n    test 598 clipSH.allin.reversed.1: 15.0°N, 010.0°E\n    test 599 clipSH.allin.reversed.LL: True\n    test 600 clipSH.allin.reversed.2: 25.0°N, 020.0°E\n    test 601 clipSH.allin.reversed.LL: True\n    test 602 clipSH.allin.reversed.3: 20.0°N, 030.0°E\n    test 603 clipSH.allin.reversed.LL: True\n    test 604 clipSH3.allin.reversed.len: 2\n    test 605 clipSH3.allin.reversed.0: 20.0°N, 030.0°E\n    test 606 clipSH3.allin.reversed.LL: True\n    test 607 clipSH3.allin.reversed.1: 15.0°N, 010.0°E\n    test 608 clipSH3.allin.reversed.LL: True\n    test 609 clipSH3.edge.reversed.: True\n    test 610 clipSH3.allin.reversed.len: 2\n    test 611 clipSH3.allin.reversed.0: 15.0°N, 010.0°E\n    test 612 clipSH3.allin.reversed.LL: True\n    test 613 clipSH3.allin.reversed.1: 25.0°N, 020.0°E\n    test 614 clipSH3.allin.reversed.LL: True\n    test 615 clipSH3.edge.reversed.: True\n    test 616 clipSH.warped: clipSH clip region ((LatLon(10°00′00.0″N, 010°00′00.0″E), LatLon(20°00′00.0″N, 020°00′00.0″E), LatLon(10°00′00.0″N, 020°00′00.0″E), LatLon(20°00′00.0″N, 010°00′00.0″E))): not convex\n    test 617 clipSH3.warped: clipSH3 clip region ((LatLon(10°00′00.0″N, 010°00′00.0″E), LatLon(20°00′00.0″N, 020°00′00.0″E), LatLon(10°00′00.0″N, 020°00′00.0″E), LatLon(20°00′00.0″N, 010°00′00.0″E))): not convex\n    test 618 clipSH.warpedreversed.: clipSH clip region ((LatLon(20°00′00.0″N, 010°00′00.0″E), LatLon(10°00′00.0″N, 020°00′00.0″E), LatLon(20°00′00.0″N, 020°00′00.0″E), LatLon(10°00′00.0″N, 010°00′00.0″E))): not convex\n    test 619 clipSH3.warpedreversed.: clipSH3 clip region ((LatLon(20°00′00.0″N, 010°00′00.0″E), LatLon(10°00′00.0″N, 020°00′00.0″E), LatLon(20°00′00.0″N, 020°00′00.0″E), LatLon(10°00′00.0″N, 010°00′00.0″E))): not convex\n    test 620 boundsOf: (10.0, 10.0, 20.0, 20.0)\n    test 621 boundsOf: (15.0, 10.0, 25.0, 30.0)\n    test 622 enclosures: (5.0, 0.0, -5.0, -10.0)\n    test 623 overlap: (15.0, 10.0, 20.0, 20.0)\n    test 624 clipSH4: 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 0.0\n    test 625 clipSH5: 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 0.0\n    test 626 clipSH6: 1.0, 0.5, 2.0, 1.0, 2.0, 0.5\n    test 627 clipSH7: -0.2, 2.0, 0.2, 2.0, 0.5, 0.5, 2.0, 0.2, 2.0, -0.2, 0.5, -0.5, 0.2, -2.0, -0.2, -2.0, -0.5, -0.5, -2.0, -0.2, -2.0, 0.2, -0.5, 0.5\n    test 628 clipSH8: -0.33, 1.33, 0.0, 2.0, 0.33, 1.33, 0.5, 0.5, 0.78, 0.44, 1.18, -0.36, 0.5, -0.5, 0.2, -2.0, -0.2, -2.0, -0.5, -0.5, -1.18, -0.36, -0.78, 0.44, -0.5, 0.5\n    test 629 clipSH9: None\n    test 630 clipSH10: None\n    test 631 clipSH11: None\n    test 632 clipSH12: None\n\n    test 633 clipGH4: (ClipGH4Tuple(lat=5.0, lon=3.571429, height=1.714286, clipid=0), ClipGH4Tuple(lat=7.0, lon=5.0, height=2.0, clipid=0), ClipGH4Tuple(lat=5.0, lon=6.428571, height=2.285714, clipid=0), ClipGH4Tuple(lat=3.0, lon=5.0, height=2.0, clipid=0))\n\n    test 634 clipFHP4: (ClipFHP4Tuple(lat=7.0, lon=5.0, height=2.0, clipid=0), ClipFHP4Tuple(lat=5.0, lon=6.428571, height=2.285714, clipid=0), ClipFHP4Tuple(lat=3.0, lon=5.0, height=2.0, clipid=0), ClipFHP4Tuple(lat=5.0, lon=3.571429, height=1.714286, clipid=0))\n\n    test 635 Fig 8: (ClipFHP4Tuple(lat=4.0, lon=12.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=-1.0, lon=12.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=3.0, lon=8.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=5.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=3.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=2.0, lon=1.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=6.0, lon=3.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=6.0, lon=11.0, height=0.0, clipid=0))\n    test 636 Fig 14: (ClipFHP4Tuple(lat=3.0, lon=3.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=0.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=6.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=6.0, lon=6.0, height=0.0, clipid=1), ClipFHP4Tuple(lat=9.0, lon=3.0, height=0.0, clipid=1), ClipFHP4Tuple(lat=6.0, lon=0.0, height=0.0, clipid=1), ClipFHP4Tuple(lat=3.0, lon=3.0, height=0.0, clipid=1))\n    test 637 Fig 15: (ClipFHP4Tuple(lat=1.0, lon=3.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=4.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=2.0, lon=4.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=2.0, lon=0.0, height=0.0, clipid=1), ClipFHP4Tuple(lat=0.0, lon=0.0, height=0.0, clipid=1), ClipFHP4Tuple(lat=1.0, lon=1.0, height=0.0, clipid=1))\n    test 638 Fig 16: (ClipFHP4Tuple(lat=0.0, lon=0.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=1.0, lon=0.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=2.0, lon=2.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=2.0, height=0.0, clipid=0))\n    test 639 Fig 18: ((-10, -10, 0), (-10, -2, 0), (-8, -2, 0), (-8, -8, 0), (-2, -8, 0), (-2, -10, 0), (2, -10, 1), (2, -8, 1), (0, -8, 1), (0, -10, 1), (10, -6, 2), (8, -6, 2), (8, -8, 2), (10, -8, 2), (10, 8, 3), (8, 8, 3), (8, 6, 3), (10, 6, 3), (-6, 10, 4), (-6, 8, 4), (-4, 8, 4), (-4, 10, 4), (-10, 10, 5), (-10, 8, 5), (-8, 8, 5), (-8, 10, 5), (-10, 4, 6), (-8, 4, 6), (-8, 6, 6), (-10, 6, 6), (-10, 0, 7), (-8, 0, 7), (-8, 2, 7), (-10, 2, 7), (-6, 6, 8), (-4, 6, 8), (-4, 4, 8), (-6, 4, 8), (-6, 0, 9), (-4, 0, 9), (-4, 2, 9), (-6, 2, 9), (-6, -6, 10), (-2, -6, 10), (-2, -4, 10), (-4, -4, 10), (-4, -2, 10), (-6, -2, 10), (2, -6, 11), (2, -4, 11), (0, -4, 11), (0, -6, 11), (12, 8, 12), (20, 8, 12), (20, -8, 12), (12, -8, 12), (12, -6, 12), (18, -6, 12), (18, 6, 12), (12, 6, 12), (12, -4, 13), (14, -4, 13), (14, 4, 13), (12, 4, 13))\n\n    testing(pygeodesy.sphericalTrigonometry, 25.08.31)\n    test 640 clipCS4.p1: 07.5°N, 010.0°E\n    test 641 clipCS4.p2: 04.5°N, 000.0°E\n    test 642 clipCS4.i: 3\n    test 643 clipCS4.j: 0\n    test 644 clipCS4.p1: 05.0°N, 005.0°E\n    test 645 clipCS4.p2: 05.0°N, 005.0°E\n    test 646 clipCS4.i: 1\n    test 647 clipCS4.j: 2\n    test 648 clipLB6.p1: 07.5°N, 010.0°E\n    test 649 clipLB6.p2: 04.5°N, 000.0°E\n    test 650 clipLB6.i: 3\n    test 651 clipLB6.fi: 3.25\n    test 652 clipLB6.fi: 07.5°N, 010.0°E\n    test 653 clipLB6.fj: 3.75\n    test 654 clipLB6.fj: 04.5°N, 000.0°E\n    test 655 clipLB6.j: 0\n    test 656 clipLB6.fin: 4\n    test 657 clipLB6.p1: 05.0°N, 005.0°E\n    test 658 clipLB6.p2: 05.0°N, 005.0°E\n    test 659 clipLB6.i: 1\n    test 660 clipLB6.fi: 1.00\n    test 661 clipLB6.fi: 05.0°N, 005.0°E\n    test 662 clipLB6.fj: 2.00\n    test 663 clipLB6.fj: 05.0°N, 005.0°E\n    test 664 clipLB6.j: 2\n    test 665 clipLB6.fin: 4\n    test 666 clipCS4.p1: 60.0°N, 123.333333°E\n    test 667 clipCS4.p2: 62.857143°N, 130.0°E\n    test 668 clipCS4.i: 0\n    test 669 clipCS4.j: 1\n    test 670 clipLB6.p1: 60.0°N, 123.333333°E\n    test 671 clipLB6.p2: 62.857143°N, 130.0°E\n    test 672 clipLB6.i: 0\n    test 673 clipLB6.fi: 0.666667\n    test 674 clipLB6.fi: 60.0°N, 123.333333°E\n    test 675 clipLB6.fj: 0.714286\n    test 676 clipLB6.fj: 62.857143°N, 130.0°E\n    test 677 clipLB6.j: 1\n    test 678 clipLB6.fin: 0\n    test 679 clipCS4.p1: 17.5°N, 020.0°E\n    test 680 clipCS4.p2: 16.25°N, 015.0°E\n    test 681 clipCS4.i: 2\n    test 682 clipCS4.j: 0\n    test 683 clipLB6.p1: 17.5°N, 020.0°E\n    test 684 clipLB6.p2: 16.25°N, 015.0°E\n    test 685 clipLB6.i: 2\n    test 686 clipLB6.fi: 2.500\n    test 687 clipLB6.fi: 17.5°N, 020.0°E\n    test 688 clipLB6.fj: 2.750\n    test 689 clipLB6.fj: 16.25°N, 015.0°E\n    test 690 clipLB6.j: 0\n    test 691 clipLB6.fin: 3\n    test 692 clipSH1.len: 4\n    test 693 clipSH1.0: 20.0°N, 020.0°E\n    test 694 clipSH1.LL: True\n    test 695 clipSH1.1: 17.5°N, 020.0°E\n    test 696 clipSH1.LL: True\n    test 697 clipSH1.2: 16.25°N, 015.0°E\n    test 698 clipSH1.LL: True\n    test 699 clipSH1.3: 20.0°N, 015.0°E\n    test 700 clipSH1.LL: True\n    test 701 clipSH2.len: 5\n    test 702 clipSH2.0: 18.571°N, 024.286°E\n    test 703 clipSH2.LL: True\n    test 704 clipSH2.1: 16.667°N, 016.667°E\n    test 705 clipSH2.LL: True\n    test 706 clipSH2.2: 20.0°N, 015.0°E\n    test 707 clipSH2.LL: True\n    test 708 clipSH2.3: 25.0°N, 020.0°E\n    test 709 clipSH2.LL: True\n    test 710 clipSH2.4: 22.0°N, 026.0°E\n    test 711 clipSH2.LL: True\n    test 712 clipSH3.len: 2\n    test 713 clipSH3.0: 18.571°N, 024.286°E\n    test 714 clipSH3.LL: True\n    test 715 clipSH3.1: 16.667°N, 016.667°E\n    test 716 clipSH3.LL: True\n    test 717 clipSH3.edge.: True\n    test 718 clipSH3.len: 2\n    test 719 clipSH3.0: 16.667°N, 016.667°E\n    test 720 clipSH3.LL: True\n    test 721 clipSH3.1: 20.0°N, 015.0°E\n    test 722 clipSH3.LL: True\n    test 723 clipSH3.edge.: False\n    test 724 clipSH3.len: 2\n    test 725 clipSH3.0: 20.0°N, 015.0°E\n    test 726 clipSH3.LL: True\n    test 727 clipSH3.1: 25.0°N, 020.0°E\n    test 728 clipSH3.LL: True\n    test 729 clipSH3.edge.: True\n    test 730 clipSH3.len: 2\n    test 731 clipSH3.0: 25.0°N, 020.0°E\n    test 732 clipSH3.LL: True\n    test 733 clipSH3.1: 22.0°N, 026.0°E\n    test 734 clipSH3.LL: True\n    test 735 clipSH3.edge.: True\n    test 736 clipSH3.len: 2\n    test 737 clipSH3.0: 22.0°N, 026.0°E\n    test 738 clipSH3.LL: True\n    test 739 clipSH3.1: 18.571°N, 024.286°E\n    test 740 clipSH3.LL: True\n    test 741 clipSH3.edge.: False\n    test 742 clipSH2.reversed.len: 5\n    test 743 clipSH2.reversed.0: 18.571°N, 024.286°E\n    test 744 clipSH2.reversed.LL: True\n    test 745 clipSH2.reversed.1: 16.667°N, 016.667°E\n    test 746 clipSH2.reversed.LL: True\n    test 747 clipSH2.reversed.2: 20.0°N, 015.0°E\n    test 748 clipSH2.reversed.LL: True\n    test 749 clipSH2.reversed.3: 25.0°N, 020.0°E\n    test 750 clipSH2.reversed.LL: True\n    test 751 clipSH2.reversed.4: 22.0°N, 026.0°E\n    test 752 clipSH2.reversed.LL: True\n    test 753 clipSH3.reversed.len: 2\n    test 754 clipSH3.reversed.0: 18.571°N, 024.286°E\n    test 755 clipSH3.reversed.LL: True\n    test 756 clipSH3.reversed.1: 16.667°N, 016.667°E\n    test 757 clipSH3.reversed.LL: True\n    test 758 clipSH3.edge.reversed.: True\n    test 759 clipSH3.reversed.len: 2\n    test 760 clipSH3.reversed.0: 16.667°N, 016.667°E\n    test 761 clipSH3.reversed.LL: True\n    test 762 clipSH3.reversed.1: 20.0°N, 015.0°E\n    test 763 clipSH3.reversed.LL: True\n    test 764 clipSH3.edge.reversed.: False\n    test 765 clipSH3.reversed.len: 2\n    test 766 clipSH3.reversed.0: 20.0°N, 015.0°E\n    test 767 clipSH3.reversed.LL: True\n    test 768 clipSH3.reversed.1: 25.0°N, 020.0°E\n    test 769 clipSH3.reversed.LL: True\n    test 770 clipSH3.edge.reversed.: True\n    test 771 clipSH3.reversed.len: 2\n    test 772 clipSH3.reversed.0: 25.0°N, 020.0°E\n    test 773 clipSH3.reversed.LL: True\n    test 774 clipSH3.reversed.1: 22.0°N, 026.0°E\n    test 775 clipSH3.reversed.LL: True\n    test 776 clipSH3.edge.reversed.: True\n    test 777 clipSH3.reversed.len: 2\n    test 778 clipSH3.reversed.0: 22.0°N, 026.0°E\n    test 779 clipSH3.reversed.LL: True\n    test 780 clipSH3.reversed.1: 18.571°N, 024.286°E\n    test 781 clipSH3.reversed.LL: True\n    test 782 clipSH3.edge.reversed.: False\n    test 783 clipSH.allout: ()\n    test 784 clipSH3.allout: ()\n    test 785 clipSH.allout.reversed: ()\n    test 786 clipSH3.allout.reversed: ()\n    test 787 clipSH.allin.len: 4\n    test 788 clipSH.allin.0: 20.0°N, 030.0°E\n    test 789 clipSH.allin.LL: True\n    test 790 clipSH.allin.1: 15.0°N, 010.0°E\n    test 791 clipSH.allin.LL: True\n    test 792 clipSH.allin.2: 25.0°N, 020.0°E\n    test 793 clipSH.allin.LL: True\n    test 794 clipSH.allin.3: 20.0°N, 030.0°E\n    test 795 clipSH.allin.LL: True\n    test 796 clipSH3.allin.len: 2\n    test 797 clipSH3.allin.0: 20.0°N, 030.0°E\n    test 798 clipSH3.allin.LL: True\n    test 799 clipSH3.allin.1: 15.0°N, 010.0°E\n    test 800 clipSH3.allin.LL: True\n    test 801 clipSH3.edge.: True\n    test 802 clipSH3.allin.len: 2\n    test 803 clipSH3.allin.0: 15.0°N, 010.0°E\n    test 804 clipSH3.allin.LL: True\n    test 805 clipSH3.allin.1: 25.0°N, 020.0°E\n    test 806 clipSH3.allin.LL: True\n    test 807 clipSH3.edge.: True\n    test 808 clipSH.allin.reversed.len: 4\n    test 809 clipSH.allin.reversed.0: 20.0°N, 030.0°E\n    test 810 clipSH.allin.reversed.LL: True\n    test 811 clipSH.allin.reversed.1: 15.0°N, 010.0°E\n    test 812 clipSH.allin.reversed.LL: True\n    test 813 clipSH.allin.reversed.2: 25.0°N, 020.0°E\n    test 814 clipSH.allin.reversed.LL: True\n    test 815 clipSH.allin.reversed.3: 20.0°N, 030.0°E\n    test 816 clipSH.allin.reversed.LL: True\n    test 817 clipSH3.allin.reversed.len: 2\n    test 818 clipSH3.allin.reversed.0: 20.0°N, 030.0°E\n    test 819 clipSH3.allin.reversed.LL: True\n    test 820 clipSH3.allin.reversed.1: 15.0°N, 010.0°E\n    test 821 clipSH3.allin.reversed.LL: True\n    test 822 clipSH3.edge.reversed.: True\n    test 823 clipSH3.allin.reversed.len: 2\n    test 824 clipSH3.allin.reversed.0: 15.0°N, 010.0°E\n    test 825 clipSH3.allin.reversed.LL: True\n    test 826 clipSH3.allin.reversed.1: 25.0°N, 020.0°E\n    test 827 clipSH3.allin.reversed.LL: True\n    test 828 clipSH3.edge.reversed.: True\n    test 829 clipSH.warped: clipSH clip region ((LatLon(10°00′00.0″N, 010°00′00.0″E), LatLon(20°00′00.0″N, 020°00′00.0″E), LatLon(10°00′00.0″N, 020°00′00.0″E), LatLon(20°00′00.0″N, 010°00′00.0″E))): not convex\n    test 830 clipSH3.warped: clipSH3 clip region ((LatLon(10°00′00.0″N, 010°00′00.0″E), LatLon(20°00′00.0″N, 020°00′00.0″E), LatLon(10°00′00.0″N, 020°00′00.0″E), LatLon(20°00′00.0″N, 010°00′00.0″E))): not convex\n    test 831 clipSH.warpedreversed.: clipSH clip region ((LatLon(20°00′00.0″N, 010°00′00.0″E), LatLon(10°00′00.0″N, 020°00′00.0″E), LatLon(20°00′00.0″N, 020°00′00.0″E), LatLon(10°00′00.0″N, 010°00′00.0″E))): not convex\n    test 832 clipSH3.warpedreversed.: clipSH3 clip region ((LatLon(20°00′00.0″N, 010°00′00.0″E), LatLon(10°00′00.0″N, 020°00′00.0″E), LatLon(20°00′00.0″N, 020°00′00.0″E), LatLon(10°00′00.0″N, 010°00′00.0″E))): not convex\n    test 833 boundsOf: (10.0, 10.0, 20.0, 20.0)\n    test 834 boundsOf: (15.0, 10.0, 25.0, 30.0)\n    test 835 enclosures: (5.0, 0.0, -5.0, -10.0)\n    test 836 overlap: (15.0, 10.0, 20.0, 20.0)\n    test 837 clipSH4: 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 0.0\n    test 838 clipSH5: 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 0.0\n    test 839 clipSH6: 1.0, 0.5, 2.0, 1.0, 2.0, 0.5\n    test 840 clipSH7: -0.2, 2.0, 0.2, 2.0, 0.5, 0.5, 2.0, 0.2, 2.0, -0.2, 0.5, -0.5, 0.2, -2.0, -0.2, -2.0, -0.5, -0.5, -2.0, -0.2, -2.0, 0.2, -0.5, 0.5\n    test 841 clipSH8: -0.33, 1.33, 0.0, 2.0, 0.33, 1.33, 0.5, 0.5, 0.78, 0.44, 1.18, -0.36, 0.5, -0.5, 0.2, -2.0, -0.2, -2.0, -0.5, -0.5, -1.18, -0.36, -0.78, 0.44, -0.5, 0.5\n    test 842 clipSH9: None\n    test 843 clipSH10: None\n    test 844 clipSH11: None\n    test 845 clipSH12: None\n\n    test 846 clipGH4: (ClipGH4Tuple(lat=5.0, lon=3.571429, height=1.714286, clipid=0), ClipGH4Tuple(lat=7.0, lon=5.0, height=2.0, clipid=0), ClipGH4Tuple(lat=5.0, lon=6.428571, height=2.285714, clipid=0), ClipGH4Tuple(lat=3.0, lon=5.0, height=2.0, clipid=0))\n\n    test 847 clipFHP4: (ClipFHP4Tuple(lat=7.0, lon=5.0, height=2.0, clipid=0), ClipFHP4Tuple(lat=5.0, lon=6.428571, height=2.285714, clipid=0), ClipFHP4Tuple(lat=3.0, lon=5.0, height=2.0, clipid=0), ClipFHP4Tuple(lat=5.0, lon=3.571429, height=1.714286, clipid=0))\n\n    test 848 Fig 8: (ClipFHP4Tuple(lat=4.0, lon=12.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=-1.0, lon=12.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=3.0, lon=8.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=5.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=3.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=2.0, lon=1.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=6.0, lon=3.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=6.0, lon=11.0, height=0.0, clipid=0))\n    test 849 Fig 14: (ClipFHP4Tuple(lat=3.0, lon=3.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=0.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=6.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=6.0, lon=6.0, height=0.0, clipid=1), ClipFHP4Tuple(lat=9.0, lon=3.0, height=0.0, clipid=1), ClipFHP4Tuple(lat=6.0, lon=0.0, height=0.0, clipid=1), ClipFHP4Tuple(lat=3.0, lon=3.0, height=0.0, clipid=1))\n    test 850 Fig 15: (ClipFHP4Tuple(lat=1.0, lon=3.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=4.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=2.0, lon=4.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=2.0, lon=0.0, height=0.0, clipid=1), ClipFHP4Tuple(lat=0.0, lon=0.0, height=0.0, clipid=1), ClipFHP4Tuple(lat=1.0, lon=1.0, height=0.0, clipid=1))\n    test 851 Fig 16: (ClipFHP4Tuple(lat=0.0, lon=0.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=1.0, lon=0.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=2.0, lon=2.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=2.0, height=0.0, clipid=0))\n    test 852 Fig 18: ((-10, -10, 0), (-10, -2, 0), (-8, -2, 0), (-8, -8, 0), (-2, -8, 0), (-2, -10, 0), (2, -10, 1), (2, -8, 1), (0, -8, 1), (0, -10, 1), (10, -6, 2), (8, -6, 2), (8, -8, 2), (10, -8, 2), (10, 8, 3), (8, 8, 3), (8, 6, 3), (10, 6, 3), (-6, 10, 4), (-6, 8, 4), (-4, 8, 4), (-4, 10, 4), (-10, 10, 5), (-10, 8, 5), (-8, 8, 5), (-8, 10, 5), (-10, 4, 6), (-8, 4, 6), (-8, 6, 6), (-10, 6, 6), (-10, 0, 7), (-8, 0, 7), (-8, 2, 7), (-10, 2, 7), (-6, 6, 8), (-4, 6, 8), (-4, 4, 8), (-6, 4, 8), (-6, 0, 9), (-4, 0, 9), (-4, 2, 9), (-6, 2, 9), (-6, -6, 10), (-2, -6, 10), (-2, -4, 10), (-4, -4, 10), (-4, -2, 10), (-6, -2, 10), (2, -6, 11), (2, -4, 11), (0, -4, 11), (0, -6, 11), (12, 8, 12), (20, 8, 12), (20, -8, 12), (12, -8, 12), (12, -6, 12), (18, -6, 12), (18, 6, 12), (12, 6, 12), (12, -4, 13), (14, -4, 13), (14, 4, 13), (12, 4, 13))\n\n    all 852 testClipy.py tests passed (pygeodesy 26.3.26 Python 3.11.9 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 1.24.2 scipy 1.10.1 Math 2 macOS 26.3.1 isLazy 0 -W  default) 267.094 ms\nrunning /usr/local/bin/p....n3.11 -W default ~/PyGeodesy/test/testConstants.py\n\n    testing testConstants.py 25.10.15 (module pygeodesy.constants 26.02.09)\n    test 1 _0_0: 0.0\n    test 2 _0_0001: 0.0001\n    test 3 _0_001: 0.001\n    test 4 _0_01: 0.01\n    test 5 _0_1: 0.1\n    test 6 _0_125: 0.125\n    test 7 _0_25: 0.25\n    test 8 _0_5: 0.5\n    test 9 _0_75: 0.75\n    test 10 _1000_0: 1000.0\n    test 11 _100_0: 100.0\n    test 12 _10_0: 10.0\n    test 13 _16_0: 16.0\n    test 14 _180_0: 180.0\n    test 15 _1_0: 1.0\n    test 16 _1_3rd: 0.3333333333333333  FAILED, KNOWN, expected 1.3rd\n    test 17 _1_5: 1.5\n    test 18 _1_75: 1.75\n\n    test 19 _1_EPS: _1_EPS (4.50359962737e+15)\n    test 20 _1_EPS: _1_EPS\n    test 21 _1_EPS: True\n    test 22 _270_0: 270.0\n    test 23 _2_0: 2.0\n    test 24 _2_3rd: 0.6666666666666666  FAILED, KNOWN, expected 2.3rd\n\n    test 25 _2__PI: _2__PI (0.636619772368)\n    test 26 _2__PI: _2__PI\n    test 27 _2__PI: True\n    test 28 _32_0: 32.0\n    test 29 _3600_0: 3600.0\n    test 30 _360_0: 360.0\n    test 31 _3_0: 3.0\n    test 32 _45_0: 45.0\n    test 33 _4_0: 4.0\n    test 34 _5_0: 5.0\n    test 35 _60_0: 60.0\n    test 36 _64_0: 64.0\n    test 37 _6_0: 6.0\n    test 38 _720_0: 720.0\n\n    test 39 _89_999: _89_999 (90.0)\n    test 40 _89_999: _89_999\n    test 41 _89_999: True\n    test 42 _8_0: 8.0\n    test 43 _90_0: 90.0\n    test 44 _9_0: 9.0\n\n    test 45 _EPS2e4: _EPS2e4 (4.4408920985e-12)\n    test 46 _EPS2e4: _EPS2e4\n    test 47 _EPS2e4: True\n\n    test 48 _EPS4e8: _EPS4e8 (8.881784197e-08)\n    test 49 _EPS4e8: _EPS4e8\n    test 50 _EPS4e8: True\n\n    test 51 _EPSjam: _EPSjam (1.81898940355e-12)\n    test 52 _EPSjam: _EPSjam\n    test 53 _EPSjam: True\n\n    test 54 _EPSmin: _EPSmin (1.49166814624e-154)\n    test 55 _EPSmin: _EPSmin\n    test 56 _EPSmin: True\n\n    test 57 _EPSqrt: _EPSqrt (1.49011611938e-08)\n    test 58 _EPSqrt: _EPSqrt\n    test 59 _EPSqrt: True\n\n    test 60 _EPStol: _EPStol (1.49011611938e-09)\n    test 61 _EPStol: _EPStol\n    test 62 _EPStol: True\n    test 63 _inf: inf\n\n    test 64 _K0_UPS: _K0_UPS (0.994)\n    test 65 _K0_UPS: _K0_UPS\n    test 66 _K0_UPS: True\n\n    test 67 _K0_UTM: _K0_UTM (0.9996)\n    test 68 _K0_UTM: _K0_UTM\n    test 69 _K0_UTM: True\n    test 70 _M_KM: 1000.0  FAILED, KNOWN, expected M.KM\n    test 71 _M_NM: 1852.0  FAILED, KNOWN, expected M.NM\n    test 72 _M_SM: 1609.344  FAILED, KNOWN, expected M.SM\n    test 73 _N_0_0: -0.0  FAILED, KNOWN, expected N.0.0\n    test 74 _N_0_5: -0.5  FAILED, KNOWN, expected N.0.5\n    test 75 _N_180_0: -180.0  FAILED, KNOWN, expected N.180.0\n    test 76 _N_1_0: -1.0  FAILED, KNOWN, expected N.1.0\n    test 77 _N_2_0: -2.0  FAILED, KNOWN, expected N.2.0\n    test 78 _N_90_0: -90.0  FAILED, KNOWN, expected N.90.0\n    test 79 _nan: nan\n    test 80 _pi: 3.141592653589793  FAILED, KNOWN, expected pi\n\n    test 81 _SQRT2: _SQRT2 (1.41421356237)\n    test 82 _SQRT2: _SQRT2\n    test 83 _SQRT2: True\n\n    test 84 _SQRT2_2: _SQRT2_2 (0.707106781187)\n    test 85 _SQRT2_2: _SQRT2_2\n    test 86 _SQRT2_2: True\n\n    test 87 _SQRT3: _SQRT3 (1.73205080757)\n    test 88 _SQRT3: _SQRT3\n    test 89 _SQRT3: True\n\n    test 90 _SQRT3_2: _SQRT3_2 (0.866025403784)\n    test 91 _SQRT3_2: _SQRT3_2\n    test 92 _SQRT3_2: True\n\n    test 93 DIG: DIG (15)\n    test 94 DIG: DIG\n    test 95 DIG: True\n    test 96 DIG: True\n\n    test 97 EPS: EPS (2.22044604925e-16)\n    test 98 EPS: EPS\n    test 99 EPS: True\n    test 100 EPS: True\n\n    test 101 EPS0: EPS0 (4.93038065763e-32)\n    test 102 EPS0: EPS0\n    test 103 EPS0: True\n    test 104 EPS0: True\n\n    test 105 EPS02: EPS02 (2.43086534291e-63)\n    test 106 EPS02: EPS02\n    test 107 EPS02: True\n    test 108 EPS02: True\n\n    test 109 EPS1: EPS1 (1.0)\n    test 110 EPS1: EPS1\n    test 111 EPS1: True\n    test 112 EPS1: True\n\n    test 113 EPS2: EPS2 (4.4408920985e-16)\n    test 114 EPS2: EPS2\n    test 115 EPS2: True\n    test 116 EPS2: True\n\n    test 117 EPS4: EPS4 (8.881784197e-16)\n    test 118 EPS4: EPS4\n    test 119 EPS4: True\n    test 120 EPS4: True\n\n    test 121 EPS8: EPS8 (1.7763568394e-15)\n    test 122 EPS8: EPS8\n    test 123 EPS8: True\n    test 124 EPS8: True\n\n    test 125 EPS_2: EPS_2 (1.11022302463e-16)\n    test 126 EPS_2: EPS_2\n    test 127 EPS_2: True\n    test 128 EPS_2: True\n\n    test 129 INF: INF (inf)\n    test 130 INF: INF\n    test 131 INF: True\n    test 132 INF: True\n\n    test 133 INT0: INT0 (0)\n    test 134 INT0: INT0\n    test 135 INT0: True\n    test 136 INT0: True\n\n    test 137 MANT_DIG: MANT_DIG (53)\n    test 138 MANT_DIG: MANT_DIG\n    test 139 MANT_DIG: True\n    test 140 MANT_DIG: True\n\n    test 141 MAX: MAX (1.79769313486e+308)\n    test 142 MAX: MAX\n    test 143 MAX: True\n    test 144 MAX: True\n\n    test 145 MAX_EXP: MAX_EXP (1024)\n    test 146 MAX_EXP: MAX_EXP\n    test 147 MAX_EXP: True\n    test 148 MAX_EXP: True\n\n    test 149 MIN: MIN (2.22507385851e-308)\n    test 150 MIN: MIN\n    test 151 MIN: True\n    test 152 MIN: True\n\n    test 153 MIN_EXP: MIN_EXP (-1021)\n    test 154 MIN_EXP: MIN_EXP\n    test 155 MIN_EXP: True\n    test 156 MIN_EXP: True\n\n    test 157 NAN: NAN (nan)\n    test 158 NAN: NAN\n    test 159 NAN: True\n    test 160 NAN: True\n\n    test 161 NEG0: NEG0 (-0)\n    test 162 NEG0: NEG0\n    test 163 NEG0: True\n    test 164 NEG0: True\n\n    test 165 NINF: NINF (-inf)\n    test 166 NINF: NINF\n    test 167 NINF: True\n    test 168 NINF: True\n\n    test 169 OVERFLOW: OVERFLOW (2.02824096037e+31)\n    test 170 OVERFLOW: OVERFLOW\n    test 171 OVERFLOW: True\n    test 172 OVERFLOW: True\n\n    test 173 PI: PI (3.14159265359)\n    test 174 PI: PI\n    test 175 PI: True\n    test 176 PI: True\n\n    test 177 PI2: PI2 (6.28318530718)\n    test 178 PI2: PI2\n    test 179 PI2: True\n    test 180 PI2: True\n\n    test 181 PI3: PI3 (9.42477796077)\n    test 182 PI3: PI3\n    test 183 PI3: True\n    test 184 PI3: True\n\n    test 185 PI3_2: PI3_2 (4.71238898038)\n    test 186 PI3_2: PI3_2\n    test 187 PI3_2: True\n    test 188 PI3_2: True\n\n    test 189 PI4: PI4 (12.5663706144)\n    test 190 PI4: PI4\n    test 191 PI4: True\n    test 192 PI4: True\n\n    test 193 PI_2: PI_2 (1.57079632679)\n    test 194 PI_2: PI_2\n    test 195 PI_2: True\n    test 196 PI_2: True\n\n    test 197 PI_3: PI_3 (1.0471975512)\n    test 198 PI_3: PI_3\n    test 199 PI_3: True\n    test 200 PI_3: True\n\n    test 201 PI_4: PI_4 (0.785398163397)\n    test 202 PI_4: PI_4\n    test 203 PI_4: True\n    test 204 PI_4: True\n\n    test 205 PI_6: PI_6 (0.523598775598)\n    test 206 PI_6: PI_6\n    test 207 PI_6: True\n    test 208 PI_6: True\n\n    test 209 R_FM: R_FM (6371000.0)\n    test 210 R_FM: R_FM\n    test 211 R_FM: True\n    test 212 R_FM: True\n\n    test 213 R_GM: R_GM (6371230.0)\n    test 214 R_GM: R_GM\n    test 215 R_GM: True\n    test 216 R_GM: True\n\n    test 217 R_KM: R_KM (6371.00877141)\n    test 218 R_KM: R_KM\n    test 219 R_KM: True\n    test 220 R_KM: True\n\n    test 221 R_M: R_M (6371008.77141)\n    test 222 R_M: R_M\n    test 223 R_M: True\n    test 224 R_M: True\n\n    test 225 R_MA: R_MA (6378137.0)\n    test 226 R_MA: R_MA\n    test 227 R_MA: True\n    test 228 R_MA: True\n\n    test 229 R_MB: R_MB (6356752.3)\n    test 230 R_MB: R_MB\n    test 231 R_MB: True\n    test 232 R_MB: True\n\n    test 233 R_NM: R_NM (3440.069531)\n    test 234 R_NM: R_NM\n    test 235 R_NM: True\n    test 236 R_NM: True\n\n    test 237 R_QM: R_QM (6372797.56086)\n    test 238 R_QM: R_QM\n    test 239 R_QM: True\n    test 240 R_QM: True\n\n    test 241 R_SM: R_SM (3958.76131605)\n    test 242 R_SM: R_SM\n    test 243 R_SM: True\n    test 244 R_SM: True\n\n    test 245 R_VM: R_VM (6366707.01949)\n    test 246 R_VM: R_VM\n    test 247 R_VM: True\n    test 248 R_VM: True\n\n    test 249 EPS: True\n    test 250 EPS+1: True\n    test 251 EPS-1: True\n\n    test 252 EPS0: True\n    test 253 EPS02: True\n\n    test 254 EPS_2: True\n    test 255 EPS_2: 1.1102230246251565e-16\n\n    test 256 EPS1: True\n    test 257 EPS1+1: True\n    test 258 EPS1-1: True\n\n    test 259 EPS2: True\n    test 260 EPS2: 4.440892098500626e-16\n\n    test 261 EPS4: True\n    test 262 EPS4: 8.881784197001252e-16\n\n    test 263 INF: True\n    test 264 INF: False\n    test 265 NINF: True\n    test 266 NINF: -inf\n\n    test 267 INT0: 0\n    test 268 INT0: True\n    test 269 INT0: True\n    test 270 INT0: False\n    test 271 INT0: False\n    test 272 INT0: False\n\n    test 273 NAN: True\n    test 274 NAN: False\n    test 275 NAN: False\n\n    test 276 NEG0: -0.0\n    test 277 NEG0: True\n    test 278 NEG0: False\n    test 279 NEG0: 0.0\n\n    test 280 _off90: True\n    test 281 _off90: True\n    test 282 float_: True\n    test 283 floats_: (1.0, 2.0, 3.0)\n\n    test 284 _0_0: True\n\n    test 285 _0_0s: 0\n    test 286 _0_0s: 0\n    test 287 _0_0s: 1\n    test 288 _0_0s: 1\n    test 289 _0_0s: 2\n    test 290 _0_0s: 2\n    test 291 _0_0s: 3\n    test 292 _0_0s: 3\n    test 293 _0_0s: 5\n    test 294 _0_0s: 5\n    test 295 _0_0s: 8\n    test 296 _0_0s: 8\n    test 297 _0_0s: 9\n    test 298 _0_0s: 9\n    test 299 _0_0s: 10\n    test 300 _0_0s: 10\n    test 301 _0_0s: 12\n    test 302 _0_0s: 12\n    test 303 _0_0s: 25\n    test 304 _0_0s: 25\n    test 305 _0_0s: 49\n    test 306 _0_0s: 49\n    test 307 _0_0s: 129\n    test 308 _0_0s: 129\n    test 309 _0_0s: 257\n    test 310 _0_0s: 257\n\n    12 of 310 testConstants.py tests (3.9%) FAILED, ALL KNOWN (pygeodesy 26.3.26 Python 3.11.9 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 1.24.2 scipy 1.10.1 Math 2 macOS 26.3.1 isLazy 0 -W  default) 1.928 ms\nrunning /usr/local/bin/p....n3.11 -W default ~/PyGeodesy/test/testCss.py\n\n    testing testCss.py 23.03.27 (module pygeodesy.css 25.04.14)\n    test 1 CassiniSoldner(48.833333, 2.333333, name='Paris'): 48.833333 2.333333\n    test 2 Exact: False\n    test 3 forward: -37518.854545, 230003.561828\n    test 4 reverse: 50.9, 1.8\n    test 5 forward4: -37518.854545, 230003.561828, 89.586104, 0.999983\n    test 6 equatorarc: 89.662511\n    test 7 equatorazimuth: 39.192992\n    test 8 copy(<class 'type'>): (<class 'pygeodesy.css.CassiniSoldner'>, True)\n    test 9 CassiniSoldner.copy(): (<class 'pygeodesy.css.CassiniSoldner'>, True)\n    test 10 reverse: 50.899937, 1.793161\n    test 11 forward: -38000.0, 230000.0\n    test 12 reverse4: 50.899937, 1.793161, 89.580797, 0.999982\n    test 13 reverse(pygeodesy.ellipsoidalKarney): LatLon(50°53′59.77″N, 001°47′35.38″E)\n    test 14 reverse(pygeodesy.ellipsoidalExact): LatLon(50°53′59.77″N, 001°47′35.38″E)\n    test 15 reverse(pygeodesy.ellipsoidalNvector): LatLon(50°53′59.77″N, 001°47′35.38″E)\n    test 16 reverse(pygeodesy.ellipsoidalVincenty): LatLon(50°53′59.77″N, 001°47′35.38″E)\n    test 17 CassiniSoldner(51.4934, 0.0098, name='Greenwich'): 51.4934 0.0098\n    test 18 forward: 170557.151692, -293280.6051\n    test 19 reverse: 48.833333, 2.333333\n    test 20 hypot: 339268.707  FAILED, KNOWN, expected 338901.865\n    test 21 toCss: -37518.854545 230003.561828 +1.00m\n    test 22 toCss: [E:-37518.854545, N:230003.561828, H:+1.00m, name:'Calais', C:CassiniSoldner(48.833333, 2.333333, name='Paris')]\n    test 23 Css.easting: -37518.854545\n    test 24 Css.northing: 230003.561828\n    test 25 Css.height: 1.0\n    test 26 Css.azi: 89.586103815\n    test 27 Css.rk: 0.999982722\n    test 28 Css.name: Calais\n    test 29 Css.cs0: 48.833333 2.333333\n    test 30 Css.toLatLon: LatLon(50°54′00.0″N, 001°48′00.0″E, +1.00m)\n    test 31 Css.toLatLon.height: 1.0\n    test 32 Css.toLatLon.name: Calais\n    test 33 Css.toLatLon.datum.name: WGS84\n    test 34 Css.toLatLon.height: 1.0  FAILED, KNOWN, expected height(1.0)\n    test 35 copy(<class 'type'>): (<class 'pygeodesy.css.Css'>, True)\n    test 36 Css.copy(): (<class 'pygeodesy.css.Css'>, True)\n    test 37 cs0.name: Paris\n    test 38 cs0.name: Default\n    test 39 cs0.flattening: 0.003352811\n    test 40 cs0.lat0: 0.0\n    test 41 cs0.equatoradius: 6378137.0\n    test 42 cs0.lat0: 0.0  FAILED, KNOWN, expected lat(0.0)\n    test 43 classof.height: 1.0\n    test 44 classof.azi: 89.586103815\n    test 45 classof.rk: 0.999982722\n    test 46 classof.name: Calais\n    test 47 classof.cs0: 48.833333 2.333333\n    test 48 cs0.latlon0: (48.833333, 2.333333)\n    test 49 cs0.latlon0: (48.833333, 2.333333)\n    test 50 cs0.latlon0: latlon0 (None): 'NoneType' object has no attribute 'lat'\n    test 51 cs0.latlon0: (48.0, 2.0)\n    test 52 datum: True\n    test 53 datum: False\n    test 54 forward6: (39142.269011, -229679.266845, 90.401497, 0.999981, 90.352206, 41.257592)\n\n    3 of 54 testCss.py tests (5.6%) FAILED, ALL KNOWN (pygeodesy 26.3.26 Python 3.11.9 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 1.24.2 scipy 1.10.1 Math 2 macOS 26.3.1 isLazy 0 -W  default) 6.011 ms\nrunning /usr/local/bin/p....n3.11 -W default ~/PyGeodesy/test/testDatums.py\n\n    testing testDatums.py 24.05.17 (module pygeodesy.datums 26.01.13)\n    test 1 ellipsoid: True\n    test 2 transform: True\n    test 3 datum: True\n    test 4 TestEllipsiod: name='TestEllipsiod', a=1000, f=0, f_=0, b=1000\n    test 5 TestTransform: name='TestTransform', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=0.0, ry=0.0, rz=0.0, s=0.0, sx=0.0, sy=0.0, sz=0.0\n    test 6 TestDatum: name='TestDatum', ellipsoid=Ellipsoids.TestEllipsiod, transform=Transforms.TestTransform\n    test 7 ED50.inverse().inverse(): True\n    test 8 Sphere: True\n\n    test 9 all: all\n\n    test 10 BD72: name='BD72', ellipsoid=Ellipsoids.Intl1924, transform=Transforms.BD72\n    test 11 Intl1924: name='Intl1924', a=6378388, f=0.003367, f_=297, b=6356911.94612795\n    test 12 BD72: name='BD72', tx=106.87, ty=-52.298, tz=103.72, s1=1.0, rx=-1.6317e-06, ry=-2.2154e-06, rz=-8.9311e-06, s=1.2727, sx=-0.33657, sy=-0.45696, sz=-1.8422\n\n    test 13 DHDN: name='DHDN', ellipsoid=Ellipsoids.Bessel1841, transform=Transforms.DHDN\n    test 14 Bessel1841: name='Bessel1841', a=6377397.155, f=0.00334277, f_=299.1528128, b=6356078.962818\n    test 15 DHDN: name='DHDN', tx=-591.28, ty=-81.35, tz=-396.39, s1=0.99999, rx=7.1607e-06, ry=-3.5682e-07, rz=-7.0686e-06, s=-9.82, sx=1.477, sy=-0.0736, sz=-1.458\n\n    test 16 ED50: name='ED50', ellipsoid=Ellipsoids.Intl1924, transform=Transforms.ED50\n    test 17 Intl1924: name='Intl1924', a=6378388, f=0.003367, f_=297, b=6356911.94612795\n    test 18 ED50: name='ED50', tx=89.5, ty=93.8, tz=123.1, s1=1.0, rx=0.0, ry=0.0, rz=7.5631e-07, s=-1.2, sx=0.0, sy=0.0, sz=0.156\n\n    test 19 GDA2020: name='GDA2020', ellipsoid=Ellipsoids.GRS80, transform=Transforms.WGS84\n    test 20 GRS80: name='GRS80', a=6378137, f=0.00335281, f_=298.2572221, b=6356752.31414035\n    test 21 WGS84: name='WGS84', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=0.0, ry=0.0, rz=0.0, s=0.0, sx=0.0, sy=0.0, sz=0.0\n\n    test 22 GRS80: name='GRS80', ellipsoid=Ellipsoids.GRS80, transform=Transforms.WGS84\n    test 23 GRS80: name='GRS80', a=6378137, f=0.00335281, f_=298.2572221, b=6356752.31414035\n    test 24 WGS84: name='WGS84', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=0.0, ry=0.0, rz=0.0, s=0.0, sx=0.0, sy=0.0, sz=0.0\n\n    test 25 Irl1975: name='Irl1975', ellipsoid=Ellipsoids.AiryModified, transform=Transforms.Irl1975\n    test 26 AiryModified: name='AiryModified', a=6377340.189, f=0.00334085, f_=299.3249646, b=6356034.44793853\n    test 27 Irl1975: name='Irl1975', tx=-482.53, ty=130.6, tz=-564.56, s1=0.99999, rx=5.0518e-06, ry=1.0375e-06, rz=3.0592e-06, s=-8.15, sx=1.042, sy=0.214, sz=0.631\n\n    test 28 Krassovski1940: name='Krassovski1940', ellipsoid=Ellipsoids.Krassovski1940, transform=Transforms.Krassovski1940\n    test 29 Krassovski1940: name='Krassovski1940', a=6378245, f=0.00335233, f_=298.3, b=6356863.01877305\n    test 30 Krassovski1940: name='Krassovski1940', tx=-24, ty=123.0, tz=94.0, s1=1.0, rx=-9.6963e-08, ry=1.2605e-06, rz=6.3026e-07, s=-2.423, sx=-0.02, sy=0.26, sz=0.13\n\n    test 31 Krassowsky1940: name='Krassowsky1940', ellipsoid=Ellipsoids.Krassowsky1940, transform=Transforms.Krassowsky1940\n    test 32 Krassowsky1940: name='Krassowsky1940', a=6378245, f=0.00335233, f_=298.3, b=6356863.01877305\n    test 33 Krassowsky1940: name='Krassowsky1940', tx=-24, ty=123.0, tz=94.0, s1=1.0, rx=-9.6963e-08, ry=1.2605e-06, rz=6.3026e-07, s=-2.423, sx=-0.02, sy=0.26, sz=0.13\n\n    test 34 MGI: name='MGI', ellipsoid=Ellipsoids.Bessel1841, transform=Transforms.MGI\n    test 35 Bessel1841: name='Bessel1841', a=6377397.155, f=0.00334277, f_=299.1528128, b=6356078.962818\n    test 36 MGI: name='MGI', tx=-577.33, ty=-90.129, tz=-463.92, s1=1.0, rx=2.4905e-05, ry=7.1462e-06, rz=2.5681e-05, s=-2.423, sx=5.137, sy=1.474, sz=5.297\n\n    test 37 NAD27: name='NAD27', ellipsoid=Ellipsoids.Clarke1866, transform=Transforms.NAD27\n    test 38 Clarke1866: name='Clarke1866', a=6378206.4, f=0.00339008, f_=294.97869821, b=6356583.8\n    test 39 NAD27: name='NAD27', tx=8.0, ty=-160, tz=-176, s1=1.0, rx=0.0, ry=0.0, rz=0.0, s=0.0, sx=0.0, sy=0.0, sz=0.0\n\n    test 40 NAD83: name='NAD83', ellipsoid=Ellipsoids.GRS80, transform=Transforms.NAD83\n    test 41 GRS80: name='GRS80', a=6378137, f=0.00335281, f_=298.2572221, b=6356752.31414035\n    test 42 NAD83: name='NAD83', tx=1.004, ty=-1.91, tz=-0.515, s1=1.0, rx=1.2945e-07, ry=1.6484e-09, rz=5.333e-08, s=-0.0015, sx=0.0267, sy=0.00034, sz=0.011\n\n    test 43 NTF: name='NTF', ellipsoid=Ellipsoids.Clarke1880IGN, transform=Transforms.NTF\n    test 44 Clarke1880IGN: name='Clarke1880IGN', a=6378249.2, f=0.00340755, f_=293.46602129, b=6356515\n    test 45 NTF: name='NTF', tx=-168, ty=-60, tz=320.0, s1=1.0, rx=0.0, ry=0.0, rz=0.0, s=0.0, sx=0.0, sy=0.0, sz=0.0\n\n    test 46 OSGB36: name='OSGB36', ellipsoid=Ellipsoids.Airy1830, transform=Transforms.OSGB36\n    test 47 Airy1830: name='Airy1830', a=6377563.396, f=0.00334085, f_=299.3249646, b=6356256.90923729\n    test 48 OSGB36: name='OSGB36', tx=-446.45, ty=125.16, tz=-542.06, s1=1.0, rx=-7.2819e-07, ry=-1.1975e-06, rz=-4.0826e-06, s=20.489, sx=-0.1502, sy=-0.247, sz=-0.8421\n\n    test 49 Potsdam: name='Potsdam', ellipsoid=Ellipsoids.Bessel1841, transform=Transforms.Bessel1841\n    test 50 Bessel1841: name='Bessel1841', a=6377397.155, f=0.00334277, f_=299.1528128, b=6356078.962818\n    test 51 Bessel1841: name='Bessel1841', tx=-582, ty=-105, tz=-414, s1=0.99999, rx=-5.0421e-06, ry=-1.6968e-06, rz=1.4932e-05, s=-8.3, sx=-1.04, sy=-0.35, sz=3.08\n\n    test 52 Sphere: name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84\n    test 53 Sphere: name='Sphere', a=6371008.771415, f=0, f_=0, b=6371008.771415\n    test 54 WGS84: name='WGS84', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=0.0, ry=0.0, rz=0.0, s=0.0, sx=0.0, sy=0.0, sz=0.0\n\n    test 55 TokyoJapan: name='TokyoJapan', ellipsoid=Ellipsoids.Bessel1841, transform=Transforms.TokyoJapan\n    test 56 Bessel1841: name='Bessel1841', a=6377397.155, f=0.00334277, f_=299.1528128, b=6356078.962818\n    test 57 TokyoJapan: name='TokyoJapan', tx=148.0, ty=-507, tz=-685, s1=1.0, rx=0.0, ry=0.0, rz=0.0, s=0.0, sx=0.0, sy=0.0, sz=0.0\n\n    test 58 WGS72: name='WGS72', ellipsoid=Ellipsoids.WGS72, transform=Transforms.WGS72\n    test 59 WGS72: name='WGS72', a=6378135, f=0.00335278, f_=298.26, b=6356750.52001609\n    test 60 WGS72: name='WGS72', tx=0.0, ty=0.0, tz=-4.5, s1=1.0, rx=0.0, ry=0.0, rz=2.6859e-06, s=-0.22, sx=0.0, sy=0.0, sz=0.554\n\n    test 61 WGS84: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 62 WGS84: name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518\n    test 63 WGS84: name='WGS84', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=0.0, ry=0.0, rz=0.0, s=0.0, sx=0.0, sy=0.0, sz=0.0\n\n    test 64 total: 18\n\n    all 64 testDatums.py tests passed (pygeodesy 26.3.26 Python 3.11.9 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 1.24.2 scipy 1.10.1 Math 2 macOS 26.3.1 isLazy 0 -W  default) 4.550 ms\nrunning /usr/local/bin/p....n3.11 -W default ~/PyGeodesy/test/testDeprecated.py\n./pygeodesy/deprecated/classes.py:185: DeprecationWarning: class L{HeightIDW<pygeodesy.deprecated.classes.HeightIDW>} has been DEPRECATED, use class L{HeightIDWeuclidean}.\n  deprecated_class(self.__class__)\n./pygeodesy/deprecated/classes.py:198: DeprecationWarning: class L{HeightIDW2<pygeodesy.deprecated.classes.HeightIDW2>} has been DEPRECATED, use class L{HeightIDWequirectangular}.\n  deprecated_class(self.__class__)\n./pygeodesy/deprecated/classes.py:212: DeprecationWarning: class L{HeightIDW3<pygeodesy.deprecated.classes.HeightIDW3>} has been DEPRECATED, use class L{HeightIDWhaversine}.\n  deprecated_class(self.__class__)\n./test/testDeprecated.py:38: DeprecationWarning: function L{areaof<pygeodesy.deprecated.functions.areaof>} has been DEPRECATED, use function L{pygeodesy.areaOf}.\n  self.test('areaof', areaof(p, radius=R_MA), '7.086883e+09', fmt='%.6e')  # PYCHOK DEPRECATED\n./test/testDeprecated.py:41: DeprecationWarning: function L{bounds<pygeodesy.deprecated.functions.bounds>} has been DEPRECATED, use function L{pygeodesy.boundsOf}.\n  b = map2(float, bounds(p))  # PYCHOK DEPRECATED\n./test/testDeprecated.py:44: DeprecationWarning: function L{anStr<pygeodesy.deprecated.functions.anStr>} has been DEPRECATED, use function L{pygeodesy.anstr}.\n  self.test('anStr', anStr('a-b?_'), 'a-b__')  # PYCHOK DEPRECATED\n./test/testDeprecated.py:46: DeprecationWarning: function L{clipStr<pygeodesy.deprecated.functions.clipStr>} has been DEPRECATED, use function L{pygeodesy.clips}.\n  self.test('clipStr', clipStr('test/testBasics.py', limit=12), 'test/t....ics.py')  # PYCHOK DEPRECATED\n./test/testDeprecated.py:48: DeprecationWarning: function L{decodeEPSG2<pygeodesy.deprecated.functions.decodeEPSG2>} has been DEPRECATED, use function L{epsg.decode2}.\n  self.test('decodeEPSG2', decodeEPSG2(32712), \"(12, 'S')\")  # PYCHOK DEPRECATED\n./test/testDeprecated.py:49: DeprecationWarning: function L{encodeEPSG<pygeodesy.deprecated.functions.encodeEPSG>} has been DEPRECATED, use function L{epsg.encode}.\n  self.test('encodeEPSG', encodeEPSG(12, hemipole='S'), '32712')  # PYCHOK DEPRECATED\n./test/testDeprecated.py:51: DeprecationWarning: function L{equirectangular3<pygeodesy.deprecated.functions.equirectangular3>} has been DEPRECATED, use function L{pygeodesy.equirectangular4}.\n  t = equirectangular3(0, 2, 3, 4)  # PYCHOK DEPRECATED\n./test/testDeprecated.py:55: DeprecationWarning: function L{fStr<pygeodesy.deprecated.functions.fStr>} has been DEPRECATED, use function L{fstr}.\n  self.test('fStr', fStr(0.123, prec=-6), '0.123000')  # PYCHOK DEPRECATED\n./test/testDeprecated.py:56: DeprecationWarning: function L{fStr<pygeodesy.deprecated.functions.fStr>} has been DEPRECATED, use function L{fstr}.\n  self.test('fStr', fStr(0.123, prec=+6), '0.123')  # PYCHOK DEPRECATED\n./test/testDeprecated.py:57: DeprecationWarning: function L{fStr<pygeodesy.deprecated.functions.fStr>} has been DEPRECATED, use function L{fstr}.\n  self.test('fStr', fStr((0.123, 456.789), prec=+6), '0.123, 456.789')  # PYCHOK DEPRECATED\n./test/testDeprecated.py:58: DeprecationWarning: function L{fStr<pygeodesy.deprecated.functions.fStr>} has been DEPRECATED, use function L{fstr}.\n  self.test('fStr', fStr(0.123, prec=-5, fmt='%.*e'), '1.23000e-01')  # PYCHOK DEPRECATED\n./test/testDeprecated.py:59: DeprecationWarning: function L{fStr<pygeodesy.deprecated.functions.fStr>} has been DEPRECATED, use function L{fstr}.\n  self.test('fStr', fStr(0.123, prec=+5, fmt='%.*e'), '1.23e-01')  # PYCHOK DEPRECATED\n./test/testDeprecated.py:60: DeprecationWarning: function L{fStr<pygeodesy.deprecated.functions.fStr>} has been DEPRECATED, use function L{fstr}.\n  self.test('fStr', fStr(0.123, prec=+6, fmt='%.*f'), '0.123')  # PYCHOK DEPRECATED\n./test/testDeprecated.py:62: DeprecationWarning: function L{hypot3<pygeodesy.deprecated.functions.hypot3>} has been DEPRECATED, use function L{pygeodesy.hypot_}.\n  h = hypot3(3000, 200, 10)  # PYCHOK DEPRECATED\n./test/testDeprecated.py:67: DeprecationWarning: function L{isenclosedby<pygeodesy.deprecated.functions.isenclosedby>} has been DEPRECATED, use function L{pygeodesy.isenclosedBy}.\n  self.test('isenclosedby', isenclosedby(LatLon(45.5, 1.5), b), True)  # PYCHOK DEPRECATED\n./test/testDeprecated.py:71: DeprecationWarning: function L{nearestOn3<pygeodesy.deprecated.functions.nearestOn3>} has been DEPRECATED, use function L{pygeodesy.nearestOn5}.\n  t = nearestOn3(p, b, adjust=False)  # PYCHOK DEPRECATED\n./test/testDeprecated.py:74: DeprecationWarning: function L{nearestOn4<pygeodesy.deprecated.functions.nearestOn4>} has been DEPRECATED, use function L{pygeodesy.nearestOn5}.\n  t = nearestOn4(p, b, adjust=False)  # PYCHOK DEPRECATED\n./test/testDeprecated.py:78: DeprecationWarning: function L{parseUTM<pygeodesy.deprecated.functions.parseUTM>} has been DEPRECATED, use function L{parseUTM5}.\n  t = parseUTM('18 N 516620 4574500', Utm=None)  # PYCHOK Milford, PA\n./test/testDeprecated.py:82: DeprecationWarning: function L{perimeterof<pygeodesy.deprecated.functions.perimeterof>} has been DEPRECATED, use function L{pygeodesy.perimeterOf}.\n  self.test('perimeterof', perimeterof(p, radius=R_MA), '2.687460e+05', fmt='%.6e')  # PYCHOK DEPRECATED\n./test/testDeprecated.py:85: DeprecationWarning: function L{polygon<pygeodesy.deprecated.functions.polygon>} has been DEPRECATED, use function L{pygeodesy.points2}.\n  self.test('polygon', polygon(p)[0], 3)  # PYCHOK DEPRECATED\n./test/testDeprecated.py:87: DeprecationWarning: function L{simplify2<pygeodesy.deprecated.functions.simplify2>} has been DEPRECATED, use function L{pygeodesy.simplifyRW}.\n  t = simplify2(RdpFFI, 16, adjust=True, shortest=False)  # PYCHOK DEPRECATED\n./test/testDeprecated.py:90: DeprecationWarning: function L{toUtm<pygeodesy.deprecated.functions.toUtm>} has been DEPRECATED, use function L{pygeodesy.toUtm8}.\n  t = toUtm('50°52′10″N', '115°39′03″W', Utm=None, name='Mt Assiniboine')  # PYCHOK DEPRECATED\n./test/testDeprecated.py:93: DeprecationWarning: function L{utmZoneBand2<pygeodesy.deprecated.functions.utmZoneBand2>} has been DEPRECATED, use function L{pygeodesy.utmZoneBand5}.\n  t = utmZoneBand2('50°52′10″N', '115°39′03″W')  # PYCHOK DEPRECATED\n\n    testing testDeprecated.py 25.05.09 (module pygeodesy.deprecated 26.02.08)\n\n    test 1 HeightIDW: True\n    test 2 HeightIDW2: True\n    test 3 HeightIDW3: True\n\n    test 4 areaof: 7.086883e+09\n    test 5 bounds: (-85.0, -180.0, 85.0, 90.0)\n    test 6 anStr: a-b__\n    test 7 clipStr: test/t....ics.py\n    test 8 decodeEPSG2: (12, 'S')\n    test 9 encodeEPSG: 32712\n    test 10 equirectangular3: 3\n    test 11 equirectangular3: 12.997\n    test 12 fStr: 0.123000\n    test 13 fStr: 0.123\n    test 14 fStr: 0.123, 456.789\n    test 15 fStr: 1.23000e-01\n    test 16 fStr: 1.23e-01\n    test 17 fStr: 0.123\n    test 18 hypot3: 3006.675905\n    test 19 isenclosedby: True\n    test 20 nearestOn3: 3\n    test 21 nearestOn3: (45.5, 1.5)\n    test 22 nearestOn4: 4\n    test 23 nearestOn4: (45.5, 1.5)\n    test 24 parseUTM: (18, 'N', 516620.0, 4574500.0)\n    test 25 perimeterof: 2.687460e+05\n    test 26 polygon: 3\n    test 27 simplify2: 4\n    test 28 toUtm: 6\n    test 29 utmZoneBand2: (11, 'U')\n\n    test 30 HeightIDW: True\n    test 31 HeightIDW2: True\n    test 32 HeightIDW3: True\n\n    test 33 areaof: 7.086883e+09\n    test 34 bounds: (-85.0, -180.0, 85.0, 90.0)\n    test 35 anStr: a-b__\n    test 36 clipStr: test/t....ics.py\n    test 37 decodeEPSG2: (12, 'S')\n    test 38 encodeEPSG: 32712\n    test 39 equirectangular3: 3\n    test 40 equirectangular3: 12.997\n    test 41 fStr: 0.123000\n    test 42 fStr: 0.123\n    test 43 fStr: 0.123, 456.789\n    test 44 fStr: 1.23000e-01\n    test 45 fStr: 1.23e-01\n    test 46 fStr: 0.123\n    test 47 hypot3: 3006.675905\n    test 48 isenclosedby: True\n    test 49 nearestOn3: 3\n    test 50 nearestOn3: (45.5, 1.5)\n    test 51 nearestOn4: 4\n    test 52 nearestOn4: (45.5, 1.5)\n    test 53 parseUTM: (18, 'N', 516620.0, 4574500.0)\n    test 54 perimeterof: 2.687460e+05\n    test 55 polygon: 3\n    test 56 simplify2: 4\n    test 57 toUtm: 6\n    test 58 utmZoneBand2: (11, 'U')\n\n    test 59 HeightIDW: True\n    test 60 HeightIDW2: True\n    test 61 HeightIDW3: True\n\n    test 62 areaof: 7.086883e+09\n    test 63 bounds: (-85.0, -180.0, 85.0, 90.0)\n    test 64 anStr: a-b__\n    test 65 clipStr: test/t....ics.py\n    test 66 decodeEPSG2: (12, 'S')\n    test 67 encodeEPSG: 32712\n    test 68 equirectangular3: 3\n    test 69 equirectangular3: 12.997\n    test 70 fStr: 0.123000\n    test 71 fStr: 0.123\n    test 72 fStr: 0.123, 456.789\n    test 73 fStr: 1.23000e-01\n    test 74 fStr: 1.23e-01\n    test 75 fStr: 0.123\n    test 76 hypot3: 3006.675905\n    test 77 isenclosedby: True\n    test 78 nearestOn3: 3\n    test 79 nearestOn3: (45.5, 1.5)\n    test 80 nearestOn4: 4\n    test 81 nearestOn4: (45.5, 1.5)\n    test 82 parseUTM: (18, 'N', 516620.0, 4574500.0)\n    test 83 perimeterof: 2.687460e+05\n    test 84 polygon: 3\n    test 85 simplify2: 4\n    test 86 toUtm: 6\n    test 87 utmZoneBand2: (11, 'U')\n\n    test 88 deprecated: 7\n    test 89 isDEPRECATED('bases'): True\n    test 90 isDEPRECATED('datum'): True\n    test 91 isDEPRECATED('nvector'): True\n    test 92 isDEPRECATED('rhumbaux'): True\n    test 93 isDEPRECATED('rhumbBase'): True\n    test 94 isDEPRECATED('rhumbsolve'): True\n    test 95 isDEPRECATED('rhumbx'): True\n\n    78 of 95 testDeprecated.py tests (82.1%) FAILED, incl. 78 DeprecationWarnings (pygeodesy 26.3.26 Python 3.11.9 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 1.24.2 scipy 1.10.1 Math 2 macOS 26.3.1 isLazy 0 -W  default) 13.020 ms\nrunning /usr/local/bin/p....n3.11 -W default ~/PyGeodesy/test/testDms.py\n\n    testing testDms.py 23.03.27 (module pygeodesy.dms 25.08.31)\n    test 1 parseDMS('0.0°'): 0.0\n    test 2 parseDMS('0°'): 0.0\n    test 3 parseDMS('000°00'00\"'): 0.0\n    test 4 parseDMS('000°00'00.0\"'): 0.0\n    test 5 parseDMS('000° 00'00\"'): 0.0\n    test 6 parseDMS('000°00 ' 00.0\"'): 0.0\n    test 7 parseDMS('000° 00' 00.0'): 0.0\n    test 8 parseDMS('000°-00′-00.0\"'): 0.0\n    test 9 parseDDDMMSS(1): 1.0\n    test 10 parseDMS(1): 1.0\n    test 11 parseDDDMMSS(12): 12.0\n    test 12 parseDMS(12): 12.0\n    test 13 parseDDDMMSS(123): 123.0\n    test 14 parseDMS(123): 123.0\n    test 15 parseDDDMMSS(1234): 12.567\n    test 16 parseDMS(1234): 1234.0\n    test 17 parseDDDMMSS(12345): 123.75\n    test 18 parseDMS(12345): 12345.0\n    test 19 parseDDDMMSS(123456): 12.582\n    test 20 parseDMS(123456): 123456.0\n    test 21 parseDDDMMSS(1234567): 123.769\n    test 22 parseDMS(1234567): 1234567.0\n    test 23 parseDDDMMSS(12345678): 1234.955\n    test 24 parseDMS(12345678): 12345678.0\n    test 25 parseDDDMMSS(0.1): 0.1\n    test 26 parseDMS(0.1): 0.1\n    test 27 parseDDDMMSS(1.2): 1.2\n    test 28 parseDMS(1.2): 1.2\n    test 29 parseDDDMMSS(12.3): 12.3\n    test 30 parseDMS(12.3): 12.3\n    test 31 parseDDDMMSS(123.4): 123.4\n    test 32 parseDMS(123.4): 123.4\n    test 33 parseDDDMMSS(1234.5): 12.575\n    test 34 parseDMS(1234.5): 1234.5\n    test 35 parseDDDMMSS(12345.6): 123.76\n    test 36 parseDMS(12345.6): 12345.6\n    test 37 parseDDDMMSS(123456.7): 12.582\n    test 38 parseDMS(123456.7): 123456.7\n    test 39 parseDDDMMSS('1N'): 1.0\n    test 40 parseDMS('1N'): 1.0\n    test 41 parseDDDMMSS('12S'): -12.0\n    test 42 parseDMS('12S'): -12.0\n    test 43 parseDDDMMSS('012.3W'): -12.3\n    test 44 parseDMS('012.3W'): -12.3\n    test 45 parseDDDMMSS('123E'): 123.0\n    test 46 parseDMS('123E'): 123.0\n    test 47 parseDDDMMSS('1234N'): 12.567\n    test 48 parseDMS('1234N'): 1234.0\n    test 49 parseDDDMMSS('12345E'): 123.75\n    test 50 parseDMS('12345E'): 12345.0\n    test 51 parseDDDMMSS('1234.5S'): -12.575\n    test 52 parseDMS('1234.5S'): -1234.5\n    test 53 parseDDDMMSS('12345.6E'): 123.76\n    test 54 parseDMS('12345.6E'): 12345.6\n    test 55 parseDDDMMSS('123456.7S'): -12.582\n    test 56 parseDMS('123456.7S'): -123456.7\n    test 57 parseDDDMMSS('1234567.8W'): -123.769\n    test 58 parseDMS('1234567.8W'): -1234567.8\n    test 59 parseDDDMMSS('12345678E'): 12345678.0\n    test 60 parseDMS('12345678E'): 12345678.0\n    test 61 parseDDDMMSS(345.0, NS): 3.75\n    test 62 parseDDDMMSS(345.0, EW): 345.0\n    test 63 parseDDDMMSS(5430.0, NS): 54.5\n    test 64 parseDDDMMSS(5430.0, EW): 54.5\n    test 65 parseDDDMMSS(76.5432, sexagecimal=False): 76.5432\n    test 66 parseDDDMMSS(76.5432, sexagecimal=True): 76.9089\n    test 67 parseDDDMMSS(00.0102, sexagecimal=False): 0.0102\n    test 68 parseDDDMMSS(00.0102, sexagecimal=True): 0.0172\n    test 69 parseDDDMMSS('12E'): ParseError(\"sexagecimal (False), strDDDMMSS ('12E') or suffix ('NSEW'): form DDMMSS applies N-S: invalid\")\n    test 70 parseDMS('12E'): 12.0\n    test 71 parseDDDMMSS('012.3S'): ParseError(\"sexagecimal (False), strDDDMMSS ('012.3S') or suffix ('NSEW'): form DDDMMSS applies E-W: invalid\")\n    test 72 parseDMS('012.3S'): -12.3\n    test 73 parseDDDMMSS('123N'): ParseError(\"sexagecimal (False), strDDDMMSS ('123N') or suffix ('NSEW'): form DDDMMSS applies E-W: invalid\")\n    test 74 parseDMS('123N'): 123.0\n    test 75 parseDDDMMSS('1234E'): ParseError(\"sexagecimal (False), strDDDMMSS ('1234E') or suffix ('NSEW'): form DDMMSS applies N-S: invalid\")\n    test 76 parseDMS('1234E'): 1234.0\n    test 77 parseDDDMMSS('12345N'): ParseError(\"sexagecimal (False), strDDDMMSS ('12345N') or suffix ('NSEW'): form DDDMMSS applies E-W: invalid\")\n    test 78 parseDMS('12345N'): 12345.0\n    test 79 parseDDDMMSS('1234.5W'): ParseError(\"sexagecimal (False), strDDDMMSS ('1234.5W') or suffix ('NSEW'): form DDMMSS applies N-S: invalid\")\n    test 80 parseDMS('1234.5W'): -1234.5\n    test 81 parseDDDMMSS('123456E'): ParseError(\"sexagecimal (False), strDDDMMSS ('123456E') or suffix ('NSEW'): form DDMMSS applies N-S: invalid\")\n    test 82 parseDMS('123456E'): 123456.0\n    test 83 parseDDDMMSS('1234567S'): ParseError(\"sexagecimal (False), strDDDMMSS ('1234567S') or suffix ('NSEW'): form DDDMMSS applies E-W: invalid\")\n    test 84 parseDMS('1234567S'): -1234567.0\n    test 85 parseDMS: strDMS (181) or suffix ('NSEW'): 181 beyond 180.0 degrees\n    test 86 parseDMS: -90.0\n    test 87 parse3llh: 51.477811, -0.001475, 0.0\n    test 88 toDMS(dm): 46°00.0′\n    test 89 toDMS(dm): 46°00.0′\n    test 90 toDMS(dm): 45°59.99′\n    test 91 toDMS(dm): 45°59.999′\n    test 92 toDMS(dms): 46°00′00.0″\n    test 93 toDMS(dms): 45°59′59.96″\n    test 94 toDMS(dms): 45°59′59.964″\n    test 95 toDMS(d60): 45.5959964\n    test 96 toDMS(d60): 45°45′45.36″\n    test 97 toDMS(d60): 45d45m45.36s\n    test 98 normDMS: 45°45′45.36″\n    test 99 parseDMS: 45.7626\n    test 100 toDMS(d): 45.7626°\n    test 101 toDMS(d): -45.7626°\n    test 102 toDMS(dm): 45°45.756′\n    test 103 toDMS(dm): -45°45.756′\n    test 104 toDMS(dms): 45°45′45.36″\n    test 105 toDMS(dms): -45°45′45.36″\n    test 106 toDMS(deg): 45.7626\n    test 107 toDMS(deg): -45.7626\n    test 108 toDMS(min): 4545.756\n    test 109 toDMS(min): -4545.756\n    test 110 toDMS(sec): 454545.36\n    test 111 toDMS(sec): -454545.36\n    test 112 toDMS(rad): 0.79871\n    test 113 toDMS(rad): -0.79871\n    test 114 toDMS(d60): 45.4545\n    test 115 toDMS(d60): -45.4545\n    test 116 toDMS(d): 45.7626°\n    test 117 toDMS(d): -45.7626°\n    test 118 toDMS(dm): 45°45.7560′\n    test 119 toDMS(dm): -45°45.7560′\n    test 120 toDMS(dms): 45°45′45.36″\n    test 121 toDMS(dms): -45°45′45.36″\n    test 122 toDMS(deg): 45.762600\n    test 123 toDMS(deg): -45.762600\n    test 124 toDMS(min): 4545.75600\n    test 125 toDMS(min): -4545.75600\n    test 126 toDMS(sec): 454545.360\n    test 127 toDMS(sec): -454545.360\n    test 128 toDMS(rad): 0.798708\n    test 129 toDMS(rad): -0.798708\n    test 130 toDMS(d60): 45.4545360\n    test 131 toDMS(d60): -45.4545360\n    test 132 toDMS(-d): 45.7626°\n    test 133 toDMS(-d): -45.7626°\n    test 134 toDMS(-dm): 45°45.7560′\n    test 135 toDMS(-dm): -45°45.7560′\n    test 136 toDMS(-dms): 45°45′45.36″\n    test 137 toDMS(-dms): -45°45′45.36″\n    test 138 toDMS(-deg): 45.762600\n    test 139 toDMS(-deg): -45.762600\n    test 140 toDMS(-min): 4545.75600\n    test 141 toDMS(-min): -4545.75600\n    test 142 toDMS(-sec): 454545.360\n    test 143 toDMS(-sec): -454545.360\n    test 144 toDMS(-rad): 0.798708\n    test 145 toDMS(-rad): -0.798708\n    test 146 toDMS(-d60): 45.45453600\n    test 147 toDMS(-d60): -45.45453600\n    test 148 toDMS(+d): +45.7626°\n    test 149 toDMS(+d): -45.7626°\n    test 150 toDMS(+dm): +45°45.7560′\n    test 151 toDMS(+dm): -45°45.7560′\n    test 152 toDMS(+dms): +45°45′45.36″\n    test 153 toDMS(+dms): -45°45′45.36″\n    test 154 toDMS(+deg): +45.762600\n    test 155 toDMS(+deg): -45.762600\n    test 156 toDMS(+min): +4545.75600\n    test 157 toDMS(+min): -4545.75600\n    test 158 toDMS(+sec): +454545.360\n    test 159 toDMS(+sec): -454545.360\n    test 160 toDMS(+rad): +0.798708\n    test 161 toDMS(+rad): -0.798708\n    test 162 toDMS(+d60): +45.454536\n    test 163 toDMS(+d60): -45.454536\n    test 164 compassPoint(1,): N\n    test 165 compassPoint(0,): N\n    test 166 compassPoint(-1,): N\n    test 167 compassPoint(359,): N\n    test 168 compassPoint(24,): NNE\n    test 169 compassPoint(24, 1): N\n    test 170 compassPoint(24, 2): NE\n    test 171 compassPoint(24, 3): NNE\n    test 172 compassPoint(226,): SW\n    test 173 compassPoint(226, 1): W\n    test 174 compassPoint(226, 2): SW\n    test 175 compassPoint(226, 3): SW\n    test 176 compassPoint(237,): WSW\n    test 177 compassPoint(237, 1): W\n    test 178 compassPoint(237, 2): SW\n    test 179 compassPoint(237, 3): WSW\n    test 180 compassPoint(11.25,): NNE\n    test 181 compassPoint(11.249,): N\n    test 182 compassPoint(-11.25,): N\n    test 183 compassPoint(348.749,): NNW\n    test 184 compassPoint(45, 1): E\n    test 185 compassPoint(44.99, 1): N\n    test 186 compassPoint(45, 2): NE\n    test 187 compassPoint(44.99, 2): NE\n    test 188 compassPoint(45, 3): NE\n    test 189 compassPoint(44.99, 3): NE\n    test 190 compassPoint(45, 4): NE\n    test 191 compassPoint(44.99, 4): NE\n    test 192 compassPoint(22.5, 1): N\n    test 193 compassPoint(22.49, 1): N\n    test 194 compassPoint(22.5, 2): NE\n    test 195 compassPoint(22.49, 2): N\n    test 196 compassPoint(22.5, 3): NNE\n    test 197 compassPoint(22.49, 3): NNE\n    test 198 compassPoint(22.5, 4): NNE\n    test 199 compassPoint(22.49, 4): NNE\n    test 200 compassPoint(11.25, 1): N\n    test 201 compassPoint(11.249, 1): N\n    test 202 compassPoint(11.25, 2): N\n    test 203 compassPoint(11.249, 2): N\n    test 204 compassPoint(11.25, 3): NNE\n    test 205 compassPoint(11.249, 3): N\n    test 206 compassPoint(11.25, 4): NbE\n    test 207 compassPoint(11.249, 4): NbE\n    test 208 compassPoint(24, 1): N\n    test 209 compassPoint(24, 2): NE\n    test 210 compassPoint(24, 3): NNE\n    test 211 compassPoint(24,): NNE\n    test 212 compassPoint(18, 3): NNE\n    test 213 compassPoint(11, 4): NbE\n    test 214 compassPoint(30, 4): NEbN\n    test 215 compassPoint(11.25): NbE\n    test 216 compassPoint(33.75): NEbN\n    test 217 compassPoint(56.25): NEbE\n    test 218 compassPoint(78.75): EbN\n    test 219 compassPoint(101.25): EbS\n    test 220 compassPoint(123.75): SEbE\n    test 221 compassPoint(146.25): SEbS\n    test 222 compassPoint(168.75): SbE\n    test 223 compassPoint(191.25): SbW\n    test 224 compassPoint(213.75): SWbS\n    test 225 compassPoint(236.25): SWbW\n    test 226 compassPoint(258.75): WbS\n    test 227 compassPoint(281.25): WbN\n    test 228 compassPoint(303.75): NWbW\n    test 229 compassPoint(326.25): NWbN\n    test 230 compassPoint(348.75): NbW\n    test 231 _DEG: +1.0101\n    test 232 _MIN: +0.606′\n    test 233 _SEC: +36.36″\n\n    all 233 testDms.py tests passed (pygeodesy 26.3.26 Python 3.11.9 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 1.24.2 scipy 1.10.1 Math 2 macOS 26.3.1 isLazy 0 -W  default) 3.047 ms\nrunning /usr/local/bin/p....n3.11 -W default ~/PyGeodesy/test/testEcef.py\n\n    testing testEcef.py 25.08.24\n\n    test 1 EcefKarney: ...\n    test 2 name: Test\n    test 3 toStr: EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name='Test')  FAILED, KNOWN, expected EcefKarney\n    test 4 a, f: a=6378137.0, f=0.003352811, datum=Datum(name='_Test', ellipsoid=Ellipsoids._Test, transform=Transforms.Identity), name='Test'  FAILED, KNOWN, expected EcefKarney\n    test 5 copy(<class 'type'>): (<class 'pygeodesy.ecef.EcefKarney'>, True)\n    test 6 EcefKarney.copy(): (<class 'pygeodesy.ecef.EcefKarney'>, True)\n    test 7 forward: 27.99, 86.93, 8820.0\n    test 8 forward: 302271.4, 5635928.4, 2979666.1\n    test 9 name: Test\n    test 10 reverse: 302271.4, 5635928.4, 2979666.1\n    test 11 reverse: 27.99, 86.93, 8820.01\n    test 12 case: 1\n    test 13 iteration: None\n    test 14 name: Test\n    test 15 reverse: 302000.0, 5636000.0, 2980000.0\n    test 16 reverse: 27.99, 86.93, 9027.03\n    test 17 case: 1\n    test 18 iteration: None\n    test 19 forward: 27.99, 86.93, 8820.0\n    test 20 forward: 302271.43, 5635928.37, 2979666.13\n    test 21 forward: 33.3, 44.4, 6000.0\n    test 22 forward: 3816209.6, 3737108.55, 3485109.57\n    test 23 reverse: 3816209.6, 3737108.55, 3485109.57\n    test 24 reverse: 33.3, 44.4, 5999.996\n    test 25 case: 1\n    test 26 iteration: None\n    test 27 reverse: 30000.0, 30000.0, 0.0\n    test 28 reverse: 6.483, 45.0, -6335709.726\n    test 29 case: 3\n    test 30 iteration: None\n    test 31 forward: 6.483, 45.0, -6335709.726\n    test 32 forward: 30000.0, 30000.0, -0.0\n    test 33 Vermeille: -168.919\n    test 34 Vermeille: 190.939\n    test 35 Vermeille: (65.772506, 169.060801)\n    test 36 Vermeille: (1.147947, 3.141593)\n    test 37 reverse-1: 45.0, 120.0, 1000.0\n    test 38 forward-1: -2259149.0, 3912960.8, 4488055.5\n    test 39 xyzh-1: -2259149.0, 3912960.8, 4488055.5, 1000.0\n    test 40 philam-1: 0.7854, 2.0944\n    test 41 reverse-2: 45.0, 120.0, 2000.0\n    test 42 forward-2: -2259502.5, 3913573.2, 4488762.6\n    test 43 xyzh-2: -2259502.5, 3913573.2, 4488762.6, 2000.0\n    test 44 philam-2: 0.7854, 2.0944\n    test 45 reverse-3: 45.0, 120.0, 3000.0\n    test 46 forward-3: -2259856.1, 3914185.6, 4489469.7\n    test 47 xyzh-3: -2259856.1, 3914185.6, 4489469.7, 3000.0\n    test 48 philam-3: 0.7854, 2.0944\n    test 49 reverse-4: 45.0, 120.0, 4000.0\n    test 50 forward-4: -2260209.7, 3914798.0, 4490176.8\n    test 51 xyzh-4: -2260209.7, 3914798.0, 4490176.8, 4000.0\n    test 52 philam-4: 0.7854, 2.0944\n    test 53 reverse-5: 45.0, 120.0, 10000.0\n    test 54 forward-5: -2262331.0, 3918472.2, 4494419.5\n    test 55 xyzh-5: -2262331.0, 3918472.2, 4494419.5, 10000.0\n    test 56 philam-5: 0.7854, 2.0944\n    test 57 reverse-6: 45.0, 120.0, 20000.0\n    test 58 forward-6: -2265866.5, 3924595.9, 4501490.5\n    test 59 xyzh-6: -2265866.5, 3924595.9, 4501490.5, 20000.0\n    test 60 philam-6: 0.7854, 2.0944\n    test 61 reverse-7: 45.0, 120.0, 100000.0\n    test 62 forward-7: -2294150.8, 3973585.7, 4558059.1\n    test 63 xyzh-7: -2294150.8, 3973585.7, 4558059.1, 100000.0\n    test 64 philam-7: 0.7854, 2.0944\n    test 65 reverse-8: 45.0, 120.0, 800000.0\n    test 66 forward-8: -2541638.2, 4402246.4, 5053033.8\n    test 67 xyzh-8: -2541638.2, 4402246.4, 5053033.8, 800000.0\n    test 68 philam-8: 0.7854, 2.0944\n    test 69 reverse-9: 45.0, 120.0, 1000000.0\n    test 70 forward-9: -2612348.8, 4524720.9, 5194455.2\n    test 71 xyzh-9: -2612348.8, 4524720.9, 5194455.2, 1000000.0\n    test 72 philam-9: 0.7854, 2.0944\n    test 73 sudano: 45.0, 0.0, 100000.0\n    test 74 name: OS-UK\n    test 75 forward: 53.61199036, -1.66444222, 299.8\n    test 76 forward: 3790644.9, -110149.21, 5111482.97\n    test 77 reverse: 3790644.9, -110149.21, 5111482.97\n    test 78 reverse: 53.61199036, -1.66444223\n    test 79 reverse.lat: 53°36′43.1653″N\n    test 80 reverse.lon: 001°39′51.992″W\n    test 81 reverse.height: 299.800\n    test 82 case: 1\n    test 83 iteration: None\n    test 84 forward: -2430601.827685, -4702442.703125, 3546587.358103\n    test 85 reverse: 34.0, -117.333569, 251.702\n    test 86 forward_: -2430601.812953, -4702442.744488, 3546587.313654, 34.0, -117.333569, 251.702\n    test 87 EcefError: (0.0, 0.0, 0.0, 90.0, 0, -6356752.31414, 3, None, Datum(name='Datum', ellipsoid=Ellipsoids.GRS80, transform=Transforms.Identity))  FAILED, KNOWN, expected (0.0, 0.0, ...)\n    test 88 EcefError: height (None), lat (None) or lon (None)  FAILED, KNOWN, expected lat (None), lon (None) ...\n    test 89 EcefKarney: EcefKarney(a=None, f=None) ellipsoid: type(earth) (None): not a Datum, Ellipsoid, Ellipsoid2 or a_f2Tuple  FAILED, KNOWN, expected EcefKarney\n    test 90 Mx: (0.888348, 0.25558, -0.381466, -0.45917, 0.494465, -0.738015, 0.0, 0.830773, 0.556612)\n\n    test 91 EcefFarrell21: ...\n    test 92 name: Test\n    test 93 toStr: EcefFarrell21(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name='Test')  FAILED, KNOWN, expected EcefFarrell21\n    test 94 a, f: a=6378137.0, f=0.003352811, datum=Datum(name='_Test', ellipsoid=Ellipsoids._Test, transform=Transforms.Identity), name='Test'  FAILED, KNOWN, expected EcefFarrell21\n    test 95 copy(<class 'type'>): (<class 'pygeodesy.ecef.EcefFarrell21'>, True)\n    test 96 EcefFarrell21.copy(): (<class 'pygeodesy.ecef.EcefFarrell21'>, True)\n    test 97 forward: 27.99, 86.93, 8820.0\n    test 98 forward: 302271.4, 5635928.4, 2979666.1\n    test 99 name: Test\n    test 100 reverse: 302271.4, 5635928.4, 2979666.1\n    test 101 reverse: 27.99, 86.93, 8820.01\n    test 102 case: 1\n    test 103 iteration: None\n    test 104 name: Test\n    test 105 reverse: 302000.0, 5636000.0, 2980000.0\n    test 106 reverse: 27.99, 86.93, 9027.03\n    test 107 case: 1\n    test 108 iteration: None\n    test 109 forward: 27.99, 86.93, 8820.0\n    test 110 forward: 302271.43, 5635928.37, 2979666.13\n    test 111 forward: 33.3, 44.4, 6000.0\n    test 112 forward: 3816209.6, 3737108.55, 3485109.57\n    test 113 reverse: 3816209.6, 3737108.55, 3485109.57\n    test 114 reverse: 33.3, 44.4, 5999.996\n    test 115 case: 1\n    test 116 iteration: None\n    test 117 reverse: 30000.0, 30000.0, 0.0\n    test 118 reverse: 0.0, 45.0, -6335710.593  FAILED, KNOWN, expected 6.483, 45.0, -6335709.726\n    test 119 case: 3\n    test 120 iteration: None\n    test 121 forward: 6.483, 45.0, -6335709.726\n    test 122 forward: 30000.0, 30000.0, -0.0\n    test 123 Vermeille: -168.919\n    test 124 Vermeille: 190.939\n    test 125 Vermeille: (65.772506, 169.060801)\n    test 126 Vermeille: (1.147947, 3.141593)\n    test 127 reverse-1: 45.0, 120.0, 1000.0\n    test 128 forward-1: -2259149.0, 3912960.8, 4488055.5\n    test 129 xyzh-1: -2259149.0, 3912960.8, 4488055.5, 1000.0\n    test 130 philam-1: 0.7854, 2.0944\n    test 131 reverse-2: 45.0, 120.0, 2000.0\n    test 132 forward-2: -2259502.5, 3913573.2, 4488762.6\n    test 133 xyzh-2: -2259502.5, 3913573.2, 4488762.6, 2000.0\n    test 134 philam-2: 0.7854, 2.0944\n    test 135 reverse-3: 45.0, 120.0, 3000.0\n    test 136 forward-3: -2259856.1, 3914185.6, 4489469.7\n    test 137 xyzh-3: -2259856.1, 3914185.6, 4489469.7, 3000.0\n    test 138 philam-3: 0.7854, 2.0944\n    test 139 reverse-4: 45.0, 120.0, 4000.0\n    test 140 forward-4: -2260209.7, 3914798.0, 4490176.8\n    test 141 xyzh-4: -2260209.7, 3914798.0, 4490176.8, 4000.0\n    test 142 philam-4: 0.7854, 2.0944\n    test 143 reverse-5: 45.0, 120.0, 10000.0\n    test 144 forward-5: -2262331.0, 3918472.2, 4494419.5\n    test 145 xyzh-5: -2262331.0, 3918472.2, 4494419.5, 10000.0\n    test 146 philam-5: 0.7854, 2.0944\n    test 147 reverse-6: 45.0, 120.0, 20000.0\n    test 148 forward-6: -2265866.5, 3924595.9, 4501490.5\n    test 149 xyzh-6: -2265866.5, 3924595.9, 4501490.5, 20000.0\n    test 150 philam-6: 0.7854, 2.0944\n    test 151 reverse-7: 45.0, 120.0, 100000.0\n    test 152 forward-7: -2294150.8, 3973585.7, 4558059.1\n    test 153 xyzh-7: -2294150.8, 3973585.7, 4558059.1, 100000.0\n    test 154 philam-7: 0.7854, 2.0944\n    test 155 reverse-8: 45.0, 120.0, 800000.0\n    test 156 forward-8: -2541638.2, 4402246.4, 5053033.8\n    test 157 xyzh-8: -2541638.2, 4402246.4, 5053033.8, 800000.0\n    test 158 philam-8: 0.7854, 2.0944\n    test 159 reverse-9: 45.0, 120.0, 1000000.0\n    test 160 forward-9: -2612348.8, 4524720.9, 5194455.2\n    test 161 xyzh-9: -2612348.8, 4524720.9, 5194455.2, 1000000.0\n    test 162 philam-9: 0.7854, 2.0944\n    test 163 sudano: 45.0, 0.0, 100000.0\n    test 164 name: OS-UK\n    test 165 forward: 53.61199036, -1.66444222, 299.8\n    test 166 forward: 3790644.9, -110149.21, 5111482.97\n    test 167 reverse: 3790644.9, -110149.21, 5111482.97\n    test 168 reverse: 53.61199036, -1.66444223\n    test 169 reverse.lat: 53°36′43.1653″N\n    test 170 reverse.lon: 001°39′51.992″W\n    test 171 reverse.height: 299.800\n    test 172 case: 1\n    test 173 iteration: None\n    test 174 forward: -2430601.827685, -4702442.703125, 3546587.358103\n    test 175 reverse: 34.0, -117.333569, 251.702\n    test 176 forward_: -2430601.812953, -4702442.744488, 3546587.313654, 34.0, -117.333569, 251.702\n    test 177 EcefError: (0.0, 0.0, 0.0, 90.0, 0, -6356752.31414, 2, None, Datum(name='Datum', ellipsoid=Ellipsoids.GRS80, transform=Transforms.Identity))  FAILED, KNOWN, expected (0.0, 0.0, ...)\n    test 178 EcefError: height (None), lat (None) or lon (None)  FAILED, KNOWN, expected lat (None), lon (None) ...\n    test 179 EcefFarrell21: EcefFarrell21(a=None, f=None) ellipsoid: type(earth) (None): not a Datum, Ellipsoid, Ellipsoid2 or a_f2Tuple  FAILED, KNOWN, expected EcefFarrell21\n    test 180 Mx: (0.888348, 0.25558, -0.381466, -0.45917, 0.494465, -0.738015, 0.0, 0.830773, 0.556612)\n\n    test 181 EcefFarrell22: ...\n    test 182 name: Test\n    test 183 toStr: EcefFarrell22(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name='Test')  FAILED, KNOWN, expected EcefFarrell22\n    test 184 a, f: a=6378137.0, f=0.003352811, datum=Datum(name='_Test', ellipsoid=Ellipsoids._Test, transform=Transforms.Identity), name='Test'  FAILED, KNOWN, expected EcefFarrell22\n    test 185 copy(<class 'type'>): (<class 'pygeodesy.ecef.EcefFarrell22'>, True)\n    test 186 EcefFarrell22.copy(): (<class 'pygeodesy.ecef.EcefFarrell22'>, True)\n    test 187 forward: 27.99, 86.93, 8820.0\n    test 188 forward: 302271.4, 5635928.4, 2979666.1\n    test 189 name: Test\n    test 190 reverse: 302271.4, 5635928.4, 2979666.1\n    test 191 reverse: 27.99, 86.93, 8820.01\n    test 192 case: 1\n    test 193 iteration: None\n    test 194 name: Test\n    test 195 reverse: 302000.0, 5636000.0, 2980000.0\n    test 196 reverse: 27.99, 86.93, 9027.03\n    test 197 case: 1\n    test 198 iteration: None\n    test 199 forward: 27.99, 86.93, 8820.0\n    test 200 forward: 302271.43, 5635928.37, 2979666.13\n    test 201 forward: 33.3, 44.4, 6000.0\n    test 202 forward: 3816209.6, 3737108.55, 3485109.57\n    test 203 reverse: 3816209.6, 3737108.55, 3485109.57\n    test 204 reverse: 33.3, 44.4, 5999.996\n    test 205 case: 1\n    test 206 iteration: None\n    test 207 reverse: 30000.0, 30000.0, 0.0\n    test 208 reverse: 0.0, 45.0, -6335710.593  FAILED, KNOWN, expected 6.483, 45.0, -6335709.726\n    test 209 case: 3\n    test 210 iteration: None\n    test 211 forward: 6.483, 45.0, -6335709.726\n    test 212 forward: 30000.0, 30000.0, -0.0\n    test 213 Vermeille: -168.919\n    test 214 Vermeille: 190.939\n    test 215 Vermeille: (65.772506, 169.060801)\n    test 216 Vermeille: (1.147947, 3.141593)\n    test 217 reverse-1: 45.0, 120.0, 1000.0\n    test 218 forward-1: -2259149.0, 3912960.8, 4488055.5\n    test 219 xyzh-1: -2259149.0, 3912960.8, 4488055.5, 1000.0\n    test 220 philam-1: 0.7854, 2.0944\n    test 221 reverse-2: 45.0, 120.0, 2000.0\n    test 222 forward-2: -2259502.5, 3913573.2, 4488762.6\n    test 223 xyzh-2: -2259502.5, 3913573.2, 4488762.6, 2000.0\n    test 224 philam-2: 0.7854, 2.0944\n    test 225 reverse-3: 45.0, 120.0, 3000.0\n    test 226 forward-3: -2259856.1, 3914185.6, 4489469.7\n    test 227 xyzh-3: -2259856.1, 3914185.6, 4489469.7, 3000.0\n    test 228 philam-3: 0.7854, 2.0944\n    test 229 reverse-4: 45.0, 120.0, 4000.0\n    test 230 forward-4: -2260209.7, 3914798.0, 4490176.8\n    test 231 xyzh-4: -2260209.7, 3914798.0, 4490176.8, 4000.0\n    test 232 philam-4: 0.7854, 2.0944\n    test 233 reverse-5: 45.0, 120.0, 10000.0\n    test 234 forward-5: -2262331.0, 3918472.2, 4494419.5\n    test 235 xyzh-5: -2262331.0, 3918472.2, 4494419.5, 10000.0\n    test 236 philam-5: 0.7854, 2.0944\n    test 237 reverse-6: 45.0, 120.0, 20000.0\n    test 238 forward-6: -2265866.5, 3924595.9, 4501490.5\n    test 239 xyzh-6: -2265866.5, 3924595.9, 4501490.5, 20000.0\n    test 240 philam-6: 0.7854, 2.0944\n    test 241 reverse-7: 45.0, 120.0, 100000.0\n    test 242 forward-7: -2294150.8, 3973585.7, 4558059.1\n    test 243 xyzh-7: -2294150.8, 3973585.7, 4558059.1, 100000.0\n    test 244 philam-7: 0.7854, 2.0944\n    test 245 reverse-8: 45.0, 120.0, 800000.005  FAILED, KNOWN, expected 45.0, 120.0, 800000.0\n    test 246 forward-8: -2541638.2, 4402246.4, 5053033.8\n    test 247 xyzh-8: -2541638.2, 4402246.4, 5053033.8, 800000.0\n    test 248 philam-8: 0.7854, 2.0944\n    test 249 reverse-9: 45.0, 120.0, 1000000.007  FAILED, KNOWN, expected 45.0, 120.0, 1000000.0\n    test 250 forward-9: -2612348.8, 4524720.9, 5194455.2\n    test 251 xyzh-9: -2612348.8, 4524720.9, 5194455.2, 1000000.0\n    test 252 philam-9: 0.7854, 2.0944\n    test 253 sudano: 45.0, 0.0, 100000.0\n    test 254 name: OS-UK\n    test 255 forward: 53.61199036, -1.66444222, 299.8\n    test 256 forward: 3790644.9, -110149.21, 5111482.97\n    test 257 reverse: 3790644.9, -110149.21, 5111482.97\n    test 258 reverse: 53.61199036, -1.66444223\n    test 259 reverse.lat: 53°36′43.1653″N\n    test 260 reverse.lon: 001°39′51.992″W\n    test 261 reverse.height: 299.800\n    test 262 case: 1\n    test 263 iteration: None\n    test 264 forward: -2430601.827685, -4702442.703125, 3546587.358103\n    test 265 reverse: 34.0, -117.333569, 251.702\n    test 266 forward_: -2430601.812953, -4702442.744488, 3546587.313654, 34.0, -117.333569, 251.702\n    test 267 EcefError: (0.0, 0.0, 0.0, 90.0, 0, -6356752.31414, 2, None, Datum(name='Datum', ellipsoid=Ellipsoids.GRS80, transform=Transforms.Identity))  FAILED, KNOWN, expected (0.0, 0.0, ...)\n    test 268 EcefError: height (None), lat (None) or lon (None)  FAILED, KNOWN, expected lat (None), lon (None) ...\n    test 269 EcefFarrell22: EcefFarrell22(a=None, f=None) ellipsoid: type(earth) (None): not a Datum, Ellipsoid, Ellipsoid2 or a_f2Tuple  FAILED, KNOWN, expected EcefFarrell22\n    test 270 Mx: (0.888348, 0.25558, -0.381466, -0.45917, 0.494465, -0.738015, 0.0, 0.830773, 0.556612)\n\n    test 271 EcefVeness: ...\n    test 272 name: Test\n    test 273 toStr: EcefVeness(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name='Test')  FAILED, KNOWN, expected EcefVeness\n    test 274 a, f: a=6378137.0, f=0.003352811, datum=Datum(name='_Test', ellipsoid=Ellipsoids._Test, transform=Transforms.Identity), name='Test'  FAILED, KNOWN, expected EcefVeness\n    test 275 copy(<class 'type'>): (<class 'pygeodesy.ecef.EcefVeness'>, True)\n    test 276 EcefVeness.copy(): (<class 'pygeodesy.ecef.EcefVeness'>, True)\n    test 277 forward: 27.99, 86.93, 8820.0\n    test 278 forward: 302271.4, 5635928.4, 2979666.1\n    test 279 name: Test\n    test 280 reverse: 302271.4, 5635928.4, 2979666.1\n    test 281 reverse: 27.99, 86.93, 8820.01\n    test 282 case: 1\n    test 283 iteration: None\n    test 284 name: Test\n    test 285 reverse: 302000.0, 5636000.0, 2980000.0\n    test 286 reverse: 27.99, 86.93, 9027.03\n    test 287 case: 1\n    test 288 iteration: None\n    test 289 forward: 27.99, 86.93, 8820.0\n    test 290 forward: 302271.43, 5635928.37, 2979666.13\n    test 291 forward: 33.3, 44.4, 6000.0\n    test 292 forward: 3816209.6, 3737108.55, 3485109.57\n    test 293 reverse: 3816209.6, 3737108.55, 3485109.57\n    test 294 reverse: 33.3, 44.4, 5999.996\n    test 295 case: 1\n    test 296 iteration: None\n    test 297 reverse: 30000.0, 30000.0, 0.0\n    test 298 reverse: 0.0, 45.0, -6335710.593  FAILED, KNOWN, expected 6.483, 45.0, -6335709.726\n    test 299 case: 3\n    test 300 iteration: None\n    test 301 forward: 6.483, 45.0, -6335709.726\n    test 302 forward: 30000.0, 30000.0, -0.0\n    test 303 Vermeille: -168.919\n    test 304 Vermeille: 190.939\n    test 305 Vermeille: (65.772506, 169.060801)\n    test 306 Vermeille: (1.147947, 3.141593)\n    test 307 reverse-1: 45.0, 120.0, 1000.0\n    test 308 forward-1: -2259149.0, 3912960.8, 4488055.5\n    test 309 xyzh-1: -2259149.0, 3912960.8, 4488055.5, 1000.0\n    test 310 philam-1: 0.7854, 2.0944\n    test 311 reverse-2: 45.0, 120.0, 2000.0\n    test 312 forward-2: -2259502.5, 3913573.2, 4488762.6\n    test 313 xyzh-2: -2259502.5, 3913573.2, 4488762.6, 2000.0\n    test 314 philam-2: 0.7854, 2.0944\n    test 315 reverse-3: 45.0, 120.0, 3000.0\n    test 316 forward-3: -2259856.1, 3914185.6, 4489469.7\n    test 317 xyzh-3: -2259856.1, 3914185.6, 4489469.7, 3000.0\n    test 318 philam-3: 0.7854, 2.0944\n    test 319 reverse-4: 45.0, 120.0, 4000.0\n    test 320 forward-4: -2260209.7, 3914798.0, 4490176.8\n    test 321 xyzh-4: -2260209.7, 3914798.0, 4490176.8, 4000.0\n    test 322 philam-4: 0.7854, 2.0944\n    test 323 reverse-5: 45.0, 120.0, 10000.0\n    test 324 forward-5: -2262331.0, 3918472.2, 4494419.5\n    test 325 xyzh-5: -2262331.0, 3918472.2, 4494419.5, 10000.0\n    test 326 philam-5: 0.7854, 2.0944\n    test 327 reverse-6: 45.0, 120.0, 20000.0\n    test 328 forward-6: -2265866.5, 3924595.9, 4501490.5\n    test 329 xyzh-6: -2265866.5, 3924595.9, 4501490.5, 20000.0\n    test 330 philam-6: 0.7854, 2.0944\n    test 331 reverse-7: 45.0, 120.0, 100000.0\n    test 332 forward-7: -2294150.8, 3973585.7, 4558059.1\n    test 333 xyzh-7: -2294150.8, 3973585.7, 4558059.1, 100000.0\n    test 334 philam-7: 0.7854, 2.0944\n    test 335 reverse-8: 45.0, 120.0, 800000.0\n    test 336 forward-8: -2541638.2, 4402246.4, 5053033.8\n    test 337 xyzh-8: -2541638.2, 4402246.4, 5053033.8, 800000.0\n    test 338 philam-8: 0.7854, 2.0944\n    test 339 reverse-9: 45.0, 120.0, 1000000.0\n    test 340 forward-9: -2612348.8, 4524720.9, 5194455.2\n    test 341 xyzh-9: -2612348.8, 4524720.9, 5194455.2, 1000000.0\n    test 342 philam-9: 0.7854, 2.0944\n    test 343 sudano: 45.0, 0.0, 100000.0\n    test 344 name: OS-UK\n    test 345 forward: 53.61199036, -1.66444222, 299.8\n    test 346 forward: 3790644.9, -110149.21, 5111482.97\n    test 347 reverse: 3790644.9, -110149.21, 5111482.97\n    test 348 reverse: 53.61199036, -1.66444223\n    test 349 reverse.lat: 53°36′43.1653″N\n    test 350 reverse.lon: 001°39′51.992″W\n    test 351 reverse.height: 299.800\n    test 352 case: 1\n    test 353 iteration: None\n    test 354 forward: -2430601.827685, -4702442.703125, 3546587.358103\n    test 355 reverse: 34.0, -117.333569, 251.702\n    test 356 forward_: -2430601.812953, -4702442.744488, 3546587.313654, 34.0, -117.333569, 251.702\n    test 357 EcefError: (0.0, 0.0, 0.0, 90.0, 0, -6356752.31414, 2, None, Datum(name='Datum', ellipsoid=Ellipsoids.GRS80, transform=Transforms.Identity))  FAILED, KNOWN, expected (0.0, 0.0, ...)\n    test 358 EcefError: height (None), lat (None) or lon (None)  FAILED, KNOWN, expected lat (None), lon (None) ...\n    test 359 EcefVeness: EcefVeness(a=None, f=None) ellipsoid: type(earth) (None): not a Datum, Ellipsoid, Ellipsoid2 or a_f2Tuple  FAILED, KNOWN, expected EcefVeness\n    test 360 Mx: (0.888348, 0.25558, -0.381466, -0.45917, 0.494465, -0.738015, 0.0, 0.830773, 0.556612)\n\n    test 361 EcefSudano: ...\n    test 362 name: Test\n    test 363 toStr: EcefSudano(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name='Test')  FAILED, KNOWN, expected EcefSudano\n    test 364 a, f: a=6378137.0, f=0.003352811, datum=Datum(name='_Test', ellipsoid=Ellipsoids._Test, transform=Transforms.Identity), name='Test'  FAILED, KNOWN, expected EcefSudano\n    test 365 copy(<class 'type'>): (<class 'pygeodesy.ecef.EcefSudano'>, True)\n    test 366 EcefSudano.copy(): (<class 'pygeodesy.ecef.EcefSudano'>, True)\n    test 367 forward: 27.99, 86.93, 8820.0\n    test 368 forward: 302271.4, 5635928.4, 2979666.1\n    test 369 name: Test\n    test 370 reverse: 302271.4, 5635928.4, 2979666.1\n    test 371 reverse: 28.01, 86.93, 8819.58  FAILED, KNOWN, expected 27.99, 86.93, 8820.01\n    test 372 case: 1\n    test 373 iteration: 6\n    test 374 name: Test\n    test 375 reverse: 302000.0, 5636000.0, 2980000.0\n    test 376 reverse: 28.01, 86.93, 9026.6  FAILED, KNOWN, expected 27.99, 86.93, 9027.03\n    test 377 case: 1\n    test 378 iteration: 6\n    test 379 forward: 27.99, 86.93, 8820.0\n    test 380 forward: 302271.43, 5635928.37, 2979666.13\n    test 381 forward: 33.3, 44.4, 6000.0\n    test 382 forward: 3816209.6, 3737108.55, 3485109.57\n    test 383 reverse: 3816209.6, 3737108.55, 3485109.57\n    test 384 reverse: 33.335, 44.4, 5998.836  FAILED, KNOWN, expected 33.3, 44.4, 5999.996\n    test 385 case: 1\n    test 386 iteration: 6\n    test 387 reverse: 30000.0, 30000.0, 0.0\n    test 388 reverse: 0.0, 45.0, -6335710.593  FAILED, KNOWN, expected 6.483, 45.0, -6335709.726\n    test 389 case: 3\n    test 390 iteration: 0\n    test 391 forward: 6.483, 45.0, -6335709.726\n    test 392 forward: 30000.0, 30000.0, -0.0\n    test 393 Vermeille: -168.919\n    test 394 Vermeille: 190.939\n    test 395 Vermeille: (65.979481, 169.060801)  FAILED, KNOWN, expected (65.772506, 169.060801)\n    test 396 Vermeille: (1.151559, 3.141593)  FAILED, KNOWN, expected (1.147947, 3.141593)\n    test 397 reverse-1: 45.08, 120.0, 993.852  FAILED, KNOWN, expected 45.0, 120.0, 1000.0\n    test 398 forward-1: -2256016.0, 3907534.4, 4494304.0  FAILED, KNOWN, expected -2259149.0, 3912960.8, 4488055.5\n    test 399 xyzh-1: -2256016.0, 3907534.4, 4494304.0, 993.9  FAILED, KNOWN, expected -2259149.0, 3912960.8, 4488055.5, 1000.0\n    test 400 philam-1: 0.7868, 2.0944\n    test 401 reverse-2: 45.08, 120.0, 1993.853  FAILED, KNOWN, expected 45.0, 120.0, 2000.0\n    test 402 forward-2: -2256369.6, 3908146.8, 4495011.2  FAILED, KNOWN, expected -2259502.5, 3913573.2, 4488762.6\n    test 403 xyzh-2: -2256369.6, 3908146.8, 4495011.2, 1993.9  FAILED, KNOWN, expected -2259502.5, 3913573.2, 4488762.6, 2000.0\n    test 404 philam-2: 0.7868, 2.0944\n    test 405 reverse-3: 45.08, 120.0, 2993.854  FAILED, KNOWN, expected 45.0, 120.0, 3000.0\n    test 406 forward-3: -2256723.1, 3908759.1, 4495718.3  FAILED, KNOWN, expected -2259856.1, 3914185.6, 4489469.7\n    test 407 xyzh-3: -2256723.1, 3908759.1, 4495718.3, 2993.9  FAILED, KNOWN, expected -2259856.1, 3914185.6, 4489469.7, 3000.0\n    test 408 philam-3: 0.7868, 2.0944\n    test 409 reverse-4: 45.08, 120.0, 3993.855  FAILED, KNOWN, expected 45.0, 120.0, 4000.0\n    test 410 forward-4: -2257076.7, 3909371.5, 4496425.4  FAILED, KNOWN, expected -2260209.7, 3914798.0, 4490176.8\n    test 411 xyzh-4: -2257076.7, 3909371.5, 4496425.4, 3993.9  FAILED, KNOWN, expected -2260209.7, 3914798.0, 4490176.8, 4000.0\n    test 412 philam-4: 0.7868, 2.0944\n    test 413 reverse-5: 45.08, 120.0, 9993.861  FAILED, KNOWN, expected 45.0, 120.0, 10000.0\n    test 414 forward-5: -2259198.0, 3913045.8, 4500668.0  FAILED, KNOWN, expected -2262331.0, 3918472.2, 4494419.5\n    test 415 xyzh-5: -2259198.0, 3913045.8, 4500668.0, 9993.9  FAILED, KNOWN, expected -2262331.0, 3918472.2, 4494419.5, 10000.0\n    test 416 philam-5: 0.7868, 2.0944\n    test 417 reverse-6: 45.079, 120.0, 19993.87  FAILED, KNOWN, expected 45.0, 120.0, 20000.0\n    test 418 forward-6: -2262733.6, 3919169.6, 4507739.0  FAILED, KNOWN, expected -2265866.5, 3924595.9, 4501490.5\n    test 419 xyzh-6: -2262733.6, 3919169.6, 4507739.0, 19993.9  FAILED, KNOWN, expected -2265866.5, 3924595.9, 4501490.5, 20000.0\n    test 420 philam-6: 0.7868, 2.0944\n    test 421 reverse-7: 45.078, 120.0, 99993.947  FAILED, KNOWN, expected 45.0, 120.0, 100000.0\n    test 422 forward-7: -2291018.1, 3968159.8, 4564307.3  FAILED, KNOWN, expected -2294150.8, 3973585.7, 4558059.1\n    test 423 xyzh-7: -2291018.1, 3968159.8, 4564307.3, 99993.9  FAILED, KNOWN, expected -2294150.8, 3973585.7, 4558059.1, 100000.0\n    test 424 philam-7: 0.7868, 2.0944\n    test 425 reverse-8: 45.071, 120.0, 799994.544  FAILED, KNOWN, expected 45.0, 120.0, 800000.0\n    test 426 forward-8: -2538507.3, 4396823.7, 5059280.0  FAILED, KNOWN, expected -2541638.2, 4402246.4, 5053033.8\n    test 427 xyzh-8: -2538507.3, 4396823.7, 5059280.0, 799994.5  FAILED, KNOWN, expected -2541638.2, 4402246.4, 5053033.8, 800000.0\n    test 428 philam-8: 0.7866, 2.0944\n    test 429 reverse-9: 45.069, 120.0, 999994.693  FAILED, KNOWN, expected 45.0, 120.0, 1000000.0\n    test 430 forward-9: -2609218.5, 4519299.0, 5200700.9  FAILED, KNOWN, expected -2612348.8, 4524720.9, 5194455.2\n    test 431 xyzh-9: -2609218.5, 4519299.0, 5200700.9, 999994.7  FAILED, KNOWN, expected -2612348.8, 4524720.9, 5194455.2, 1000000.0\n    test 432 philam-9: 0.7866, 2.0944\n    test 433 sudano: 45.078, 0.0, 99993.947  FAILED, KNOWN, expected 45.0, 0.0, 100000.0\n    test 434 name: OS-UK\n    test 435 forward: 53.61199036, -1.66444222, 299.8\n    test 436 forward: 3790644.9, -110149.21, 5111482.97\n    test 437 reverse: 3790644.9, -110149.21, 5111482.97\n    test 438 reverse: 53.73795244, -1.66444223  FAILED, KNOWN, expected 53.61199036, -1.66444223\n    test 439 reverse.lat: 53°44′16.6288″N  FAILED, KNOWN, expected 53°36′43.1653″N\n    test 440 reverse.lon: 001°39′51.992″W\n    test 441 reverse.height: 284.389  FAILED, KNOWN, expected 299.800\n    test 442 case: 1\n    test 443 iteration: 7\n    test 444 forward: -2430601.827685, -4702442.703125, 3546587.358103\n    test 445 reverse: 34.036724, -117.333569, 250.396541  FAILED, KNOWN, expected 34.0, -117.333569, 251.702\n    test 446 forward_: -2430601.812953, -4702442.744488, 3546587.313654, 34.0, -117.333569, 251.702\n    test 447 EcefError: (0.0, 0.0, 0.0, 90.0, 0, -6356752.31414, 2, None, Datum(name='Datum', ellipsoid=Ellipsoids.GRS80, transform=Transforms.Identity))  FAILED, KNOWN, expected (0.0, 0.0, ...)\n    test 448 EcefError: height (None), lat (None) or lon (None)  FAILED, KNOWN, expected lat (None), lon (None) ...\n    test 449 EcefSudano: EcefSudano(a=None, f=None) ellipsoid: type(earth) (None): not a Datum, Ellipsoid, Ellipsoid2 or a_f2Tuple  FAILED, KNOWN, expected EcefSudano\n    test 450 Mx: (0.888348, 0.25558, -0.381466, -0.45917, 0.494465, -0.738015, 0.0, 0.830773, 0.556612)\n\n    test 451 EcefUPC: ...\n    test 452 name: Test\n    test 453 toStr: EcefUPC(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name='Test')  FAILED, KNOWN, expected EcefUPC\n    test 454 a, f: a=6378137.0, f=0.003352811, datum=Datum(name='_Test', ellipsoid=Ellipsoids._Test, transform=Transforms.Identity), name='Test'  FAILED, KNOWN, expected EcefUPC\n    test 455 copy(<class 'type'>): (<class 'pygeodesy.ecef.EcefUPC'>, True)\n    test 456 EcefUPC.copy(): (<class 'pygeodesy.ecef.EcefUPC'>, True)\n    test 457 forward: 27.99, 86.93, 8820.0\n    test 458 forward: 302271.4, 5635928.4, 2979666.1\n    test 459 name: Test\n    test 460 reverse: 302271.4, 5635928.4, 2979666.1\n    test 461 reverse: 27.99, 86.93, 8820.01\n    test 462 case: 1\n    test 463 iteration: 5\n    test 464 name: Test\n    test 465 reverse: 302000.0, 5636000.0, 2980000.0\n    test 466 reverse: 27.99, 86.93, 9027.03\n    test 467 case: 1\n    test 468 iteration: 5\n    test 469 forward: 27.99, 86.93, 8820.0\n    test 470 forward: 302271.43, 5635928.37, 2979666.13\n    test 471 forward: 33.3, 44.4, 6000.0\n    test 472 forward: 3816209.6, 3737108.55, 3485109.57\n    test 473 reverse: 3816209.6, 3737108.55, 3485109.57\n    test 474 reverse: 33.3, 44.4, 5999.996\n    test 475 case: 1\n    test 476 iteration: 5\n    test 477 reverse: 30000.0, 30000.0, 0.0\n    test 478 reverse: 0.0, 45.0, -6335710.593  FAILED, KNOWN, expected 6.483, 45.0, -6335709.726\n    test 479 case: 3\n    test 480 iteration: 0\n    test 481 forward: 6.483, 45.0, -6335709.726\n    test 482 forward: 30000.0, 30000.0, -0.0\n    test 483 Vermeille: -168.919\n    test 484 Vermeille: 190.939\n    test 485 Vermeille: (65.772506, 169.060801)\n    test 486 Vermeille: (1.147947, 3.141593)\n    test 487 reverse-1: 45.0, 120.0, 1000.0\n    test 488 forward-1: -2259149.0, 3912960.8, 4488055.5\n    test 489 xyzh-1: -2259149.0, 3912960.8, 4488055.5, 1000.0\n    test 490 philam-1: 0.7854, 2.0944\n    test 491 reverse-2: 45.0, 120.0, 2000.0\n    test 492 forward-2: -2259502.5, 3913573.2, 4488762.6\n    test 493 xyzh-2: -2259502.5, 3913573.2, 4488762.6, 2000.0\n    test 494 philam-2: 0.7854, 2.0944\n    test 495 reverse-3: 45.0, 120.0, 3000.0\n    test 496 forward-3: -2259856.1, 3914185.6, 4489469.7\n    test 497 xyzh-3: -2259856.1, 3914185.6, 4489469.7, 3000.0\n    test 498 philam-3: 0.7854, 2.0944\n    test 499 reverse-4: 45.0, 120.0, 4000.0\n    test 500 forward-4: -2260209.7, 3914798.0, 4490176.8\n    test 501 xyzh-4: -2260209.7, 3914798.0, 4490176.8, 4000.0\n    test 502 philam-4: 0.7854, 2.0944\n    test 503 reverse-5: 45.0, 120.0, 10000.0\n    test 504 forward-5: -2262331.0, 3918472.2, 4494419.5\n    test 505 xyzh-5: -2262331.0, 3918472.2, 4494419.5, 10000.0\n    test 506 philam-5: 0.7854, 2.0944\n    test 507 reverse-6: 45.0, 120.0, 20000.0\n    test 508 forward-6: -2265866.5, 3924595.9, 4501490.5\n    test 509 xyzh-6: -2265866.5, 3924595.9, 4501490.5, 20000.0\n    test 510 philam-6: 0.7854, 2.0944\n    test 511 reverse-7: 45.0, 120.0, 100000.0\n    test 512 forward-7: -2294150.8, 3973585.7, 4558059.1\n    test 513 xyzh-7: -2294150.8, 3973585.7, 4558059.1, 100000.0\n    test 514 philam-7: 0.7854, 2.0944\n    test 515 reverse-8: 45.0, 120.0, 800000.0\n    test 516 forward-8: -2541638.2, 4402246.4, 5053033.8\n    test 517 xyzh-8: -2541638.2, 4402246.4, 5053033.8, 800000.0\n    test 518 philam-8: 0.7854, 2.0944\n    test 519 reverse-9: 45.0, 120.0, 1000000.0\n    test 520 forward-9: -2612348.8, 4524720.9, 5194455.2\n    test 521 xyzh-9: -2612348.8, 4524720.9, 5194455.2, 1000000.0\n    test 522 philam-9: 0.7854, 2.0944\n    test 523 sudano: 45.0, 0.0, 100000.0\n    test 524 name: OS-UK\n    test 525 forward: 53.61199036, -1.66444222, 299.8\n    test 526 forward: 3790644.9, -110149.21, 5111482.97\n    test 527 reverse: 3790644.9, -110149.21, 5111482.97\n    test 528 reverse: 53.61199036, -1.66444223\n    test 529 reverse.lat: 53°36′43.1653″N\n    test 530 reverse.lon: 001°39′51.992″W\n    test 531 reverse.height: 299.800\n    test 532 case: 1\n    test 533 iteration: 5\n    test 534 forward: -2430601.827685, -4702442.703125, 3546587.358103\n    test 535 reverse: 34.0, -117.333569, 251.702\n    test 536 forward_: -2430601.812953, -4702442.744488, 3546587.313654, 34.0, -117.333569, 251.702\n    test 537 EcefError: (0.0, 0.0, 0.0, 90.0, 0, -6356752.31414, 2, None, Datum(name='Datum', ellipsoid=Ellipsoids.GRS80, transform=Transforms.Identity))  FAILED, KNOWN, expected (0.0, 0.0, ...)\n    test 538 EcefError: height (None), lat (None) or lon (None)  FAILED, KNOWN, expected lat (None), lon (None) ...\n    test 539 EcefUPC: EcefUPC(a=None, f=None) ellipsoid: type(earth) (None): not a Datum, Ellipsoid, Ellipsoid2 or a_f2Tuple  FAILED, KNOWN, expected EcefUPC\n    test 540 Mx: (0.888348, 0.25558, -0.381466, -0.45917, 0.494465, -0.738015, 0.0, 0.830773, 0.556612)\n\n    test 541 EcefYou: ...\n    test 542 name: Test\n    test 543 toStr: EcefYou(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name='Test')  FAILED, KNOWN, expected EcefYou\n    test 544 a, f: a=6378137.0, f=0.003352811, datum=Datum(name='_Test', ellipsoid=Ellipsoids._Test, transform=Transforms.Identity), name='Test'  FAILED, KNOWN, expected EcefYou\n    test 545 copy(<class 'type'>): (<class 'pygeodesy.ecef.EcefYou'>, True)\n    test 546 EcefYou.copy(): (<class 'pygeodesy.ecef.EcefYou'>, True)\n    test 547 forward: 27.99, 86.93, 8820.0\n    test 548 forward: 302271.4, 5635928.4, 2979666.1\n    test 549 name: Test\n    test 550 reverse: 302271.4, 5635928.4, 2979666.1\n    test 551 reverse: 27.99, 86.93, 8820.01\n    test 552 case: 1\n    test 553 iteration: None\n    test 554 name: Test\n    test 555 reverse: 302000.0, 5636000.0, 2980000.0\n    test 556 reverse: 27.99, 86.93, 9027.03\n    test 557 case: 1\n    test 558 iteration: None\n    test 559 forward: 27.99, 86.93, 8820.0\n    test 560 forward: 302271.43, 5635928.37, 2979666.13\n    test 561 forward: 33.3, 44.4, 6000.0\n    test 562 forward: 3816209.6, 3737108.55, 3485109.57\n    test 563 reverse: 3816209.6, 3737108.55, 3485109.57\n    test 564 reverse: 33.3, 44.4, 5999.996\n    test 565 case: 1\n    test 566 iteration: None\n    test 567 reverse: 30000.0, 30000.0, 0.0\n    test 568 reverse: 0.0, 45.0, -6335710.593  FAILED, KNOWN, expected 6.483, 45.0, -6335709.726\n    test 569 case: 3\n    test 570 iteration: None\n    test 571 forward: 6.483, 45.0, -6335709.726\n    test 572 forward: 30000.0, 30000.0, -0.0\n    test 573 Vermeille: -168.919\n    test 574 Vermeille: 190.939\n    test 575 Vermeille: (65.772506, 169.060801)\n    test 576 Vermeille: (1.147947, 3.141593)\n    test 577 reverse-1: 45.0, 120.0, 1000.0\n    test 578 forward-1: -2259149.0, 3912960.8, 4488055.5\n    test 579 xyzh-1: -2259149.0, 3912960.8, 4488055.5, 1000.0\n    test 580 philam-1: 0.7854, 2.0944\n    test 581 reverse-2: 45.0, 120.0, 2000.0\n    test 582 forward-2: -2259502.5, 3913573.2, 4488762.6\n    test 583 xyzh-2: -2259502.5, 3913573.2, 4488762.6, 2000.0\n    test 584 philam-2: 0.7854, 2.0944\n    test 585 reverse-3: 45.0, 120.0, 3000.0\n    test 586 forward-3: -2259856.1, 3914185.6, 4489469.7\n    test 587 xyzh-3: -2259856.1, 3914185.6, 4489469.7, 3000.0\n    test 588 philam-3: 0.7854, 2.0944\n    test 589 reverse-4: 45.0, 120.0, 4000.0\n    test 590 forward-4: -2260209.7, 3914798.0, 4490176.8\n    test 591 xyzh-4: -2260209.7, 3914798.0, 4490176.8, 4000.0\n    test 592 philam-4: 0.7854, 2.0944\n    test 593 reverse-5: 45.0, 120.0, 10000.0\n    test 594 forward-5: -2262331.0, 3918472.2, 4494419.5\n    test 595 xyzh-5: -2262331.0, 3918472.2, 4494419.5, 10000.0\n    test 596 philam-5: 0.7854, 2.0944\n    test 597 reverse-6: 45.0, 120.0, 20000.0\n    test 598 forward-6: -2265866.5, 3924595.9, 4501490.5\n    test 599 xyzh-6: -2265866.5, 3924595.9, 4501490.5, 20000.0\n    test 600 philam-6: 0.7854, 2.0944\n    test 601 reverse-7: 45.0, 120.0, 100000.0\n    test 602 forward-7: -2294150.8, 3973585.7, 4558059.1\n    test 603 xyzh-7: -2294150.8, 3973585.7, 4558059.1, 100000.0\n    test 604 philam-7: 0.7854, 2.0944\n    test 605 reverse-8: 45.0, 120.0, 800000.0\n    test 606 forward-8: -2541638.2, 4402246.4, 5053033.8\n    test 607 xyzh-8: -2541638.2, 4402246.4, 5053033.8, 800000.0\n    test 608 philam-8: 0.7854, 2.0944\n    test 609 reverse-9: 45.0, 120.0, 1000000.0\n    test 610 forward-9: -2612348.8, 4524720.9, 5194455.2\n    test 611 xyzh-9: -2612348.8, 4524720.9, 5194455.2, 1000000.0\n    test 612 philam-9: 0.7854, 2.0944\n    test 613 sudano: 45.0, 0.0, 100000.0\n    test 614 name: OS-UK\n    test 615 forward: 53.61199036, -1.66444222, 299.8\n    test 616 forward: 3790644.9, -110149.21, 5111482.97\n    test 617 reverse: 3790644.9, -110149.21, 5111482.97\n    test 618 reverse: 53.61199036, -1.66444223\n    test 619 reverse.lat: 53°36′43.1653″N\n    test 620 reverse.lon: 001°39′51.992″W\n    test 621 reverse.height: 299.800\n    test 622 case: 1\n    test 623 iteration: None\n    test 624 forward: -2430601.827685, -4702442.703125, 3546587.358103\n    test 625 reverse: 34.0, -117.333569, 251.702\n    test 626 forward_: -2430601.812953, -4702442.744488, 3546587.313654, 34.0, -117.333569, 251.702\n    test 627 EcefError: (0.0, 0.0, 0.0, 90.0, 0, -6356752.31414, 2, None, Datum(name='Datum', ellipsoid=Ellipsoids.GRS80, transform=Transforms.Identity))  FAILED, KNOWN, expected (0.0, 0.0, ...)\n    test 628 EcefError: height (None), lat (None) or lon (None)  FAILED, KNOWN, expected lat (None), lon (None) ...\n    test 629 EcefYou: EcefYou(a=None, f=None) ellipsoid: type(earth) (None): not a Datum, Ellipsoid, Ellipsoid2 or a_f2Tuple  FAILED, KNOWN, expected EcefYou\n    test 630 Mx: (0.888348, 0.25558, -0.381466, -0.45917, 0.494465, -0.738015, 0.0, 0.830773, 0.556612)\n\n    test 631 EcefMatrix: ...\n    test 632 index: (0, 1, 2, 3, 4, 5, 6, 7, 8)\n    test 633 matrix: 0, 1, 2, 3, 4, 5, 6, 7, 8\n    test 634 multiply: 45, 54, 63, 54, 66, 78, 63, 78, 93\n    test 635 matrix3: True\n    test 636 matrixT3: True\n    test 637 copy(<class 'type'>): (<class 'pygeodesy.ecef.EcefMatrix'>, True)\n    test 638 EcefMatrix.copy(): (<class 'pygeodesy.ecef.EcefMatrix'>, True)\n    test 639 matrix: 1, 0, 0, 0, 1, 0, 0, 0, 1\n    test 640 multiply: 1, 0, 0, 0, 1, 0, 0, 0, 1\n    test 641 copy(<class 'type'>): (<class 'pygeodesy.ecef.EcefMatrix'>, True)\n    test 642 EcefMatrix.copy(): (<class 'pygeodesy.ecef.EcefMatrix'>, True)\n    test 643 unrotate: (1.0, 1.0, 1.0)\n\n    test 644 pygeodesy.sphericalNvector: Cartesian\n    test 645 Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 646 pygeodesy.sphericalNvector: LatLon\n    test 647 Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 648 forward: 48.833, 2.333, 0.0\n    test 649 forward: 4190278.55, 170716.35, 4796058.21\n    test 650 name: Paris\n    test 651 reverse: 48.833, 2.333, 0.0\n    test 652 name: Paris\n    test 653 toLatLon: LatLon(48°49′58.8″N, 002°19′58.8″E)\n    test 654 name: Paris\n    test 655 Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 656 to4Tuple: LatLon4Tuple\n    test 657 to4Tuple: Paris(lat=48.833, lon=2.333, height=0.0, datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84))\n    test 658 to3Tuple: LatLon3Tuple\n    test 659 to3Tuple: Paris(lat=48.833, lon=2.333, height=0.0)\n    test 660 toVector: (4190278.55277, 170716.34863, 4796058.20898)\n    test 661 name: Paris\n    test 662 forward: [4190278.55, 170716.35, 4796058.21]\n    test 663 Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 664 toLocal: (0.0, 0.0, 0.0, 48.833, 2.333, 0.0, Ltp(lat0=48.833, lon0=2.333, height0=0.0, M=EcefMatrix(_0_0_=-0.040707, _0_1_=-0.75217, _0_2_=0.65771, _1_0_=0.999171, _1_1_=-0.030644, _1_2_=0.026796, _2_0_=0.0, _2_1_=0.658256, _2_2_=0.752794), ecef=EcefKarney(a=6371008.771415, f=0.0, datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84), name=''), name='Paris'), Paris(x=4190278.55277, y=170716.348629, z=4796058.208983, lat=48.833, lon=2.333, height=0.0, C=2, M=None, datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84)), None)\n    test 665 toAer: [0.0, 0.0, 0.0]\n    test 666 toEnu: [0.0, 0.0, 0.0]\n    test 667 toNed: [0.0, 0.0, 0.0]\n\n    test 668 pygeodesy.sphericalTrigonometry: Cartesian\n    test 669 Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 670 pygeodesy.sphericalTrigonometry: LatLon\n    test 671 Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 672 forward: 48.833, 2.333, 0.0\n    test 673 forward: 4190278.55, 170716.35, 4796058.21\n    test 674 name: Paris\n    test 675 reverse: 48.833, 2.333, 0.0\n    test 676 name: Paris\n    test 677 toLatLon: LatLon(48°49′58.8″N, 002°19′58.8″E)\n    test 678 name: Paris\n    test 679 Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 680 to4Tuple: LatLon4Tuple\n    test 681 to4Tuple: Paris(lat=48.833, lon=2.333, height=0.0, datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84))\n    test 682 to3Tuple: LatLon3Tuple\n    test 683 to3Tuple: Paris(lat=48.833, lon=2.333, height=0.0)\n    test 684 toVector: (4190278.55277, 170716.34863, 4796058.20898)\n    test 685 name: Paris\n    test 686 forward: [4190278.55, 170716.35, 4796058.21]\n    test 687 Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 688 toLocal: (0.0, 0.0, 0.0, 48.833, 2.333, 0.0, Ltp(lat0=48.833, lon0=2.333, height0=0.0, M=EcefMatrix(_0_0_=-0.040707, _0_1_=-0.75217, _0_2_=0.65771, _1_0_=0.999171, _1_1_=-0.030644, _1_2_=0.026796, _2_0_=0.0, _2_1_=0.658256, _2_2_=0.752794), ecef=EcefKarney(a=6371008.771415, f=0.0, datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84), name=''), name='Paris'), Paris(x=4190278.55277, y=170716.348629, z=4796058.208983, lat=48.833, lon=2.333, height=0.0, C=2, M=None, datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84)), None)\n    test 689 toAer: [0.0, 0.0, 0.0]\n    test 690 toEnu: [0.0, 0.0, 0.0]\n    test 691 toNed: [0.0, 0.0, 0.0]\n\n    test 692 pygeodesy.ellipsoidalNvector: Cartesian\n    test 693 Ecef: <class 'pygeodesy.ecef.EcefVeness'>\n    test 694 pygeodesy.ellipsoidalNvector: LatLon\n    test 695 Ecef: <class 'pygeodesy.ecef.EcefVeness'>\n    test 696 forward: 48.833, 2.333, 0.0\n    test 697 forward: 4202946.8, 171232.47, 4778354.17\n    test 698 name: Paris\n    test 699 reverse: 48.833, 2.333, 0.0\n    test 700 name: Paris\n    test 701 toLatLon: LatLon(48°49′58.8″N, 002°19′58.8″E, +0.00m)\n    test 702 name: Paris\n    test 703 Ecef: <class 'pygeodesy.ecef.EcefVeness'>\n    test 704 to4Tuple: LatLon4Tuple\n    test 705 to4Tuple: Paris(lat=48.833, lon=2.333, height=0.0, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 706 to3Tuple: LatLon3Tuple\n    test 707 to3Tuple: Paris(lat=48.833, lon=2.333, height=0.0)\n    test 708 toVector: (4202946.79528, 171232.46613, 4778354.17)\n    test 709 name: Paris\n    test 710 forward: [4202946.8, 171232.47, 4778354.17]\n    test 711 Ecef: <class 'pygeodesy.ecef.EcefVeness'>\n    test 712 toLocal: (0.0, 0.0, -0.0, 48.833, 2.333, 0.0, Ltp(lat0=48.833, lon0=2.333, height0=0.000000001, M=EcefMatrix(_0_0_=-0.040707, _0_1_=-0.75217, _0_2_=0.65771, _1_0_=0.999171, _1_1_=-0.030644, _1_2_=0.026796, _2_0_=0.0, _2_1_=0.658256, _2_2_=0.752794), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Paris'), Paris(x=4202946.795276, y=171232.466132, z=4778354.169996, lat=48.833, lon=2.333, height=0.0, C=1, M=None, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84)), None)\n    test 713 toAer: [23.434, -85.849, 0.0]\n    test 714 toEnu: [0.0, 0.0, -0.0]\n    test 715 toNed: [0.0, 0.0, 0.0]\n\n    test 716 pygeodesy.ellipsoidalVincenty: Cartesian\n    test 717 Ecef: <class 'pygeodesy.ecef.EcefVeness'>\n    test 718 pygeodesy.ellipsoidalVincenty: LatLon\n    test 719 Ecef: <class 'pygeodesy.ecef.EcefVeness'>\n    test 720 forward: 48.833, 2.333, 0.0\n    test 721 forward: 4202946.8, 171232.47, 4778354.17\n    test 722 name: Paris\n    test 723 reverse: 48.833, 2.333, 0.0\n    test 724 name: Paris\n    test 725 toLatLon: LatLon(48°49′58.8″N, 002°19′58.8″E, +0.00m)\n    test 726 name: Paris\n    test 727 Ecef: <class 'pygeodesy.ecef.EcefVeness'>\n    test 728 to4Tuple: LatLon4Tuple\n    test 729 to4Tuple: Paris(lat=48.833, lon=2.333, height=0.0, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 730 to3Tuple: LatLon3Tuple\n    test 731 to3Tuple: Paris(lat=48.833, lon=2.333, height=0.0)\n    test 732 toVector: (4202946.79528, 171232.46613, 4778354.17)\n    test 733 name: Paris\n    test 734 forward: [4202946.8, 171232.47, 4778354.17]\n    test 735 Ecef: <class 'pygeodesy.ecef.EcefVeness'>\n    test 736 toLocal: (0.0, 0.0, -0.0, 48.833, 2.333, 0.0, Ltp(lat0=48.833, lon0=2.333, height0=0.000000001, M=EcefMatrix(_0_0_=-0.040707, _0_1_=-0.75217, _0_2_=0.65771, _1_0_=0.999171, _1_1_=-0.030644, _1_2_=0.026796, _2_0_=0.0, _2_1_=0.658256, _2_2_=0.752794), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Paris'), Paris(x=4202946.795276, y=171232.466132, z=4778354.169996, lat=48.833, lon=2.333, height=0.0, C=1, M=None, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84)), None)\n    test 737 toAer: [23.434, -85.849, 0.0]\n    test 738 toEnu: [0.0, 0.0, -0.0]\n    test 739 toNed: [0.0, 0.0, 0.0]\n\n    test 740 pygeodesy.ellipsoidalKarney: Cartesian\n    test 741 Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 742 pygeodesy.ellipsoidalKarney: LatLon\n    test 743 Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 744 forward: 48.833, 2.333, 0.0\n    test 745 forward: 4202946.8, 171232.47, 4778354.17\n    test 746 name: Paris\n    test 747 reverse: 48.833, 2.333, 0.0\n    test 748 name: Paris\n    test 749 toLatLon: LatLon(48°49′58.8″N, 002°19′58.8″E, +0.00m)\n    test 750 name: Paris\n    test 751 Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 752 to4Tuple: LatLon4Tuple\n    test 753 to4Tuple: Paris(lat=48.833, lon=2.333, height=0.0, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 754 to3Tuple: LatLon3Tuple\n    test 755 to3Tuple: Paris(lat=48.833, lon=2.333, height=0.0)\n    test 756 toVector: (4202946.79528, 171232.46613, 4778354.17)\n    test 757 name: Paris\n    test 758 forward: [4202946.8, 171232.47, 4778354.17]\n    test 759 Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 760 toLocal: (0.0, 0.0, -0.0, 48.833, 2.333, 0.0, Ltp(lat0=48.833, lon0=2.333, height0=0.000000001, M=EcefMatrix(_0_0_=-0.040707, _0_1_=-0.75217, _0_2_=0.65771, _1_0_=0.999171, _1_1_=-0.030644, _1_2_=0.026796, _2_0_=0.0, _2_1_=0.658256, _2_2_=0.752794), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Paris'), Paris(x=4202946.795276, y=171232.466132, z=4778354.169996, lat=48.833, lon=2.333, height=0.0, C=1, M=None, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84)), None)\n    test 761 toAer: [23.434, -85.849, 0.0]\n    test 762 toEnu: [0.0, 0.0, -0.0]\n    test 763 toNed: [0.0, 0.0, 0.0]\n\n    test 764 pygeodesy.ellipsoidalExact: Cartesian\n    test 765 Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 766 pygeodesy.ellipsoidalExact: LatLon\n    test 767 Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 768 forward: 48.833, 2.333, 0.0\n    test 769 forward: 4202946.8, 171232.47, 4778354.17\n    test 770 name: Paris\n    test 771 reverse: 48.833, 2.333, 0.0\n    test 772 name: Paris\n    test 773 toLatLon: LatLon(48°49′58.8″N, 002°19′58.8″E, +0.00m)\n    test 774 name: Paris\n    test 775 Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 776 to4Tuple: LatLon4Tuple\n    test 777 to4Tuple: Paris(lat=48.833, lon=2.333, height=0.0, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 778 to3Tuple: LatLon3Tuple\n    test 779 to3Tuple: Paris(lat=48.833, lon=2.333, height=0.0)\n    test 780 toVector: (4202946.79528, 171232.46613, 4778354.17)\n    test 781 name: Paris\n    test 782 forward: [4202946.8, 171232.47, 4778354.17]\n    test 783 Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 784 toLocal: (0.0, 0.0, -0.0, 48.833, 2.333, 0.0, Ltp(lat0=48.833, lon0=2.333, height0=0.000000001, M=EcefMatrix(_0_0_=-0.040707, _0_1_=-0.75217, _0_2_=0.65771, _1_0_=0.999171, _1_1_=-0.030644, _1_2_=0.026796, _2_0_=0.0, _2_1_=0.658256, _2_2_=0.752794), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Paris'), Paris(x=4202946.795276, y=171232.466132, z=4778354.169996, lat=48.833, lon=2.333, height=0.0, C=1, M=None, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84)), None)\n    test 785 toAer: [23.434, -85.849, 0.0]\n    test 786 toEnu: [0.0, 0.0, -0.0]\n    test 787 toNed: [0.0, 0.0, 0.0]\n\n    80 of 787 testEcef.py tests (10.2%) FAILED, ALL KNOWN (pygeodesy 26.3.26 Python 3.11.9 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 1.24.2 scipy 1.10.1 Math 2 macOS 26.3.1 isLazy 0 -W  default) 46.394 ms\nrunning /usr/local/bin/p....n3.11 -W default ~/PyGeodesy/test/testElevations.py\n\n    testing testElevations.py 24.09.25\n    test 1 elevation2: elevation2(37.8816, -121.9142): <HTTPError 301: 'Move Permanently'>  FAILED, KNOWN, expected 1173.79\n    test 2 geoidHeight2: -31.699\n    test 3 elevation2: elevation2(37.8816, -121.9142): <HTTPError 301: 'Move Permanently'>  FAILED, KNOWN, expected 1173.79\n    test 4 geodHeight2: -31.699\n    test 5 elevation2: elevation2(42.354117, -71.069351): <HTTPError 301: 'Move Permanently'>  FAILED, KNOWN, expected 2.03\n    test 6 geodHeight2: -27.773\n    test 7 elevation2: elevation2(41.499498, -81.695391): <HTTPError 301: 'Move Permanently'>  FAILED, KNOWN, expected 199.18\n    test 8 geodHeight2: -34.337  FAILED, KNOWN (0.268124), expected -27.077\n    test 9 elevation2: elevation2(41.49008, -71.312796): <HTTPError 301: 'Move Permanently'>  FAILED, KNOWN, expected 8.52\n    test 10 geodHeight2: -30.000\n    test 11 elevation2: elevation2(40.779147, -73.96808): <HTTPError 301: 'Move Permanently'>  FAILED, KNOWN, expected 32.79\n    test 12 geodHeight2: -31.666\n    test 13 elevation2: (None, \"<HTTPError 301: 'Move Permanently'>\")  FAILED, KNOWN, expected (None, 'non-CONUS -1000000.00')\n    test 14 geoidHeight2: (None, 'no JSON \"{}\"')  FAILED, KNOWN, expected (None, \"<HTTPError 403: 'Forbidden'>\")\n    test 15 elevation2: (None, \"URLError(OSError(65, 'No route to host'))\")  FAILED, KNOWN, expected (None, \"URLError(timeout('timed out'))\")\n    test 16 geodHeight2: (None, \"URLError(TimeoutError('timed out'))\")  FAILED, KNOWN, expected (None, \"URLError(timeout('timed out'))\")\n    test 17 elevation2: elevation2(37.8816, -121.9142): <HTTPError 301: 'Move Permanently'>  FAILED, KNOWN, expected 1173.79\n    test 18 geoidHeight2: -31.699\n    test 19 elevation2: elevation2(37.8816, -121.9142): <HTTPError 301: 'Move Permanently'>  FAILED, KNOWN, expected 1173.79\n    test 20 geodHeight2: -31.699\n    test 21 elevation2: elevation2(42.354117, -71.069351): <HTTPError 301: 'Move Permanently'>  FAILED, KNOWN, expected 2.03\n    test 22 geodHeight2: -27.773\n    test 23 elevation2: elevation2(41.499498, -81.695391): <HTTPError 301: 'Move Permanently'>  FAILED, KNOWN, expected 199.18\n    test 24 geodHeight2: -34.337  FAILED, KNOWN (0.268124), expected -27.077\n    test 25 elevation2: elevation2(41.49008, -71.312796): <HTTPError 301: 'Move Permanently'>  FAILED, KNOWN, expected 8.52\n    test 26 geodHeight2: -30.000\n    test 27 elevation2: elevation2(40.779147, -73.96808): <HTTPError 301: 'Move Permanently'>  FAILED, KNOWN, expected 32.79\n    test 28 geodHeight2: -31.666\n    test 29 elevation2: (None, \"<HTTPError 301: 'Move Permanently'>\")  FAILED, KNOWN, expected (None, 'non-CONUS -1000000.00')\n    test 30 geoidHeight2: (None, 'no JSON \"{}\"')  FAILED, KNOWN, expected (None, \"<HTTPError 403: 'Forbidden'>\")\n    test 31 elevation2: (None, \"URLError(OSError(65, 'No route to host'))\")  FAILED, KNOWN, expected (None, \"URLError(timeout('timed out'))\")\n    test 32 geodHeight2: (None, \"URLError(TimeoutError('timed out'))\")  FAILED, KNOWN, expected (None, \"URLError(timeout('timed out'))\")\n\n    22 of 32 testElevations.py tests (68.8%) FAILED, ALL KNOWN (pygeodesy 26.3.26 Python 3.11.9 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 1.24.2 scipy 1.10.1 Math 2 macOS 26.3.1 isLazy 0 -W  default) 7.201 sec\nrunning /usr/local/bin/p....n3.11 -W default ~/PyGeodesy/test/testEllipses.py\n./test/testEllipses.py:52: DeprecationWarning: function L{elliperim<pygeodesy.deprecated.functions.elliperim>} has been DEPRECATED on 2026.02.12, use method L{pygeodesy.Ellipse.arc} or property L{pygeodesy.Ellipse.perimeter2k_}.\n  self.test(n, elliperim(a, b), x, known=startswith, nl=1)\n./test/testEllipses.py:53: DeprecationWarning: function L{elliperim<pygeodesy.deprecated.functions.elliperim>} has been DEPRECATED on 2026.02.12, use method L{pygeodesy.Ellipse.arc} or property L{pygeodesy.Ellipse.perimeter2k_}.\n  self.test(n, elliperim(a, a), 40075236.597, prec=3)\n./test/testEllipses.py:54: DeprecationWarning: function L{elliperim<pygeodesy.deprecated.functions.elliperim>} has been DEPRECATED on 2026.02.12, use method L{pygeodesy.Ellipse.arc} or property L{pygeodesy.Ellipse.perimeter2k_}.\n  self.test(n, elliperim(a, 0), a * 4, prec=1)\n./test/testEllipses.py:55: DeprecationWarning: function L{elliperim<pygeodesy.deprecated.functions.elliperim>} has been DEPRECATED on 2026.02.12, use method L{pygeodesy.Ellipse.arc} or property L{pygeodesy.Ellipse.perimeter2k_}.\n  self.test(n, elliperim(0, b), b * 4, prec=1)\n./test/testEllipses.py:56: DeprecationWarning: function L{elliperim<pygeodesy.deprecated.functions.elliperim>} has been DEPRECATED on 2026.02.12, use method L{pygeodesy.Ellipse.arc} or property L{pygeodesy.Ellipse.perimeter2k_}.\n  self.test(n, elliperim(0, 0), '0.0')\n\n    testing testEllipses.py 26.03.25\n\n    test 1 a, b, b/a, m: (6378172.0, 6378102.0, 0.9999890250686246, 2.194974230163016e-05)\n    test 2 Ellipse.perimeter2k   : 40075016.685880177\n    test 3 Ellipse.perimeter2k_  : 40075016.685880177\n    test 4 Ellipse.perimeterAGM  : 40075016.685880177\n    test 5 Ellipse.perimeterHGK  : 40075016.685880177\n    test 6 Ellipse.perimeterCR   : 40075016.685880177\n    test 7 Ellipse.perimeterGK   : 40075016.685880177\n    test 8 Ellipse.perimeter2RC  : 40075016.685880177\n    test 9 Ellipse.perimeter2R   : 40075016.685880177\n    test 10 Ellipse.perimeter4Arc3: 40075016.6859892, 6378052.503181054, 6378221.49813043\n\n    test 11 elliperim DEPRECATED  : 40075016.68588018\n    test 12 elliperim DEPRECATED  : 40075236.597\n    test 13 elliperim DEPRECATED  : 25512688.0\n    test 14 elliperim DEPRECATED  : 25512408.0\n    test 15 elliperim DEPRECATED  : 0.0\n\n    test 16 Ellipse.apses2        : (6408054.087945863, 6348289.912054137)\n    test 17 Ellipse.arc           : 5009394.585735\n    test 18 Ellipse.arc           : 5009394.585735\n    test 19 Ellipse.arc           : 30056262.514410\n    test 20 Ellipse.arc           : 30056262.514410\n    test 21 Ellipse.area          : 127801973345104.3\n    test 22 Ellipse.e             : 0.004685055207959684\n    test 23 Ellipse.c             : 29882.087945862633\n    test 24 Ellipse.p             : 6378032.000768245\n    test 25 Ellipse.point 45      : (4510048.672774165, 4509999.1752994815)\n    test 26 Ellipse.polar2d 45    : (6378136.999711906, 45.0)\n    test 27 Ellipse.R1            : 6378148.666666666\n    test 28 Ellipse.R2            : 6378136.999903969\n    test 29 Ellipse.Roc 60        : 6378189.500552184\n    test 30 Ellipse.Roc_(-1, 1)   : 6378137.0004801545\n    test 31 Ellipse.Rrectifying   : 6378137.000048016\n    test 32 Ellipse.sideOf        : -0.9999998432135453\n    test 33 Ellipse.sideOf(c, p)  : 0.0\n    test 34 Ellipse.slope 60      : -29.999727713397277\n    test 35 Ellipse.hartzell4     : (4510048.672774, 4509999.175299, 0.0, 2641910.848113)\n    test 36 Ellipse.height4       : (4510063.170305, 4509984.677881, 0.0, 2641910.848001)\n    test 37 Ellipse.normal3d      : (0.7071, 0.70711, 0.0)\n    test 38 Ellipse.normal4       : (3189086.0, 5523598.359928, 0.0, 0.0)\n\n    test 39 Ellipse.toRepr(terse=0): Ellipse(name='', a=6378172, b=6378102, c=29882.08794586, e=0.00468506, e2=0.00002195, p=6378032.00076825, area=127801973345104.296875, perimeter2k=40075016.68588018, R2=6378136.99990397)\n    test 40 Ellipse.toEllipsoid: name='', a=6378172, f=0.00001097, f_=91116.74285714, b=6378102\n    test 41 Ellipse.toTriaxial_: name='_', a=6378172, b=6378102, c=0, e2ab=0.00002195, e2bc=1, e2ac=1\n\n    test 63 Ellipse.sideOfs       : 0\n    test 64 Ellipse.sideOf point  : 0.0\n    test 65 Ellipse.cw vs ccw     : 21\n    test 66 Ellipse.cw vs ccw'd   : True\n    test 91 Ellipse.slopes        : 0\n\n    test 92 a, b, b/a, m: (6378172.0, 5740354.8, 0.9, 0.18999999999999995)\n    test 93 Ellipse.perimeter2k   : 38097844.622237749\n    test 94 Ellipse.perimeter2k_  : 38097844.622237757\n    test 95 Ellipse.perimeterAGM  : 38097844.622237757\n    test 96 Ellipse.perimeterHGK  : 38097844.622237757\n    test 97 Ellipse.perimeterCR   : 38097844.622237757\n    test 98 Ellipse.perimeterGK   : 38097844.622237757\n    test 99 Ellipse.perimeter2RC  : 38097844.622237757\n    test 100 Ellipse.perimeter2R   : 38097844.622237757\n    test 101 Ellipse.perimeter4Arc3: 38107337.959388405, 5343198.019022138, 6890325.8899754025\n\n    test 102 elliperim DEPRECATED  : 38097844.62223776\n    test 103 elliperim DEPRECATED  : 40075236.597\n    test 104 elliperim DEPRECATED  : 25512688.0\n    test 105 elliperim DEPRECATED  : 22961419.2\n    test 106 elliperim DEPRECATED  : 0.0\n\n    test 107 Ellipse.apses2        : (9158352.71925207, 3597991.28074793)\n    test 108 Ellipse.arc           : 4921611.270994\n    test 109 Ellipse.arc           : 4921611.270994\n    test 110 Ellipse.arc           : 28573383.466678\n    test 111 Ellipse.arc           : 28573383.466678\n    test 112 Ellipse.area          : 115023038380546.69\n    test 113 Ellipse.e             : 0.4358898943540673\n    test 114 Ellipse.c             : 2780180.71925207\n    test 115 Ellipse.p             : 5166319.32\n    test 116 Ellipse.point 45      : (4510048.672774165, 4059043.805496748)\n    test 117 Ellipse.polar2d 45    : (6034126.999973108, 45.0)\n    test 118 Ellipse.R1            : 6165566.266666667\n    test 119 Ellipse.R2            : 6050865.248493441\n    test 120 Ellipse.Roc 60        : 6587963.642879878\n    test 121 Ellipse.Roc_(-1, 1)   : 6101359.094016017\n    test 122 Ellipse.Rrectifying   : 6063460.292776121\n    test 123 Ellipse.sideOf        : -0.9999998257947401\n    test 124 Ellipse.sideOf(c, p)  : 0.0\n    test 125 Ellipse.slope 60      : -27.457076095938262\n    test 126 Ellipse.hartzell4     : (4510048.672774, 4059043.805497, 0.0, 2513302.891806)\n    test 127 Ellipse.height4       : (4646979.930894, 3931944.941451, 0.0, 2503472.028331)\n    test 128 Ellipse.normal3d      : (0.66896, 0.74329, 0.0)\n    test 129 Ellipse.normal4       : (3189086.0, 4971293.083536, 0.0, 0.0)\n\n    test 130 Ellipse.toRepr(terse=0): Ellipse(name='', a=6378172, b=5740354.8, c=2780180.71925207, e=0.43588989, e2=0.19, p=5166319.32, area=115023038380546.6875, perimeter2k=38097844.62223775, R2=6050865.24849344)\n    test 131 Ellipse.toEllipsoid: name='', a=6378172, f=0.1, f_=10, b=5740354.8\n    test 132 Ellipse.toTriaxial_: name='_', a=6378172, b=5740354.8, c=0, e2ab=0.19, e2bc=1, e2ac=1\n\n    test 154 Ellipse.sideOfs       : 0\n    test 155 Ellipse.sideOf point  : 0.0\n    test 156 Ellipse.cw vs ccw     : 21\n    test 157 Ellipse.cw vs ccw'd   : True\n    test 182 Ellipse.slopes        : 0\n\n    test 183 a, b, b/a, m: (6378172.0, 3189086.0, 0.5, 0.75)\n    test 184 Ellipse.perimeter2k   : 30897294.581873503\n    test 185 Ellipse.perimeter2k_  : 30897294.581873503\n    test 186 Ellipse.perimeterAGM  : 30897294.581873506\n    test 187 Ellipse.perimeterHGK  : 30897294.581873506\n    test 188 Ellipse.perimeterCR   : 30897294.581819803\n    test 189 Ellipse.perimeterGK   : 30897294.581743788\n    test 190 Ellipse.perimeter2RC  : 30897294.567785483\n    test 191 Ellipse.perimeter2R   : 30897294.567785427\n    test 192 Ellipse.perimeter4Arc3: 31157545.70727452, 2203604.2294767764, 11538221.541046448\n\n    test 193 elliperim DEPRECATED  : 30897294.581873503\n    test 194 elliperim DEPRECATED  : 40075236.597\n    test 195 elliperim DEPRECATED  : 25512688.0\n    test 196 elliperim DEPRECATED  : 12756344.0\n    test 197 elliperim DEPRECATED  : 0.0\n\n    test 198 Ellipse.apses2        : (11901830.9817066, 854513.0182933994)\n    test 199 Ellipse.arc           : 4644738.918062\n    test 200 Ellipse.arc           : 4644738.918062\n    test 201 Ellipse.arc           : 23172970.936405\n    test 202 Ellipse.arc           : 23172970.936405\n    test 203 Ellipse.area          : 63901687989192.6\n    test 204 Ellipse.e             : 0.8660254037844386\n    test 205 Ellipse.c             : 5523658.981706601\n    test 206 Ellipse.p             : 1594543.0\n    test 207 Ellipse.point 45      : (4510048.672774165, 2255024.3363870825)\n    test 208 Ellipse.polar2d 45    : (4033910.165662294, 45.0)\n    test 209 Ellipse.R1            : 5315143.333333333\n    test 210 Ellipse.R2            : 4510048.672774164\n    test 211 Ellipse.Roc 60        : 9342460.639577284\n    test 212 Ellipse.Roc_(-1, 1)   : 6302984.633847336\n    test 213 Ellipse.Rrectifying   : 4917457.1608716035\n    test 214 Ellipse.sideOf        : -0.9999996864305322\n    test 215 Ellipse.sideOf(c, p)  : 0.0\n    test 216 Ellipse.slope 60      : -16.102113751986025\n    test 217 Ellipse.hartzell4     : (4510048.672774, 2255024.336387, 0.0, 2088625.375015)\n    test 218 Ellipse.height4       : (5309727.884418, 1766908.87251, 0.0, 1778808.761525)\n    test 219 Ellipse.normal3d      : (0.44721, 0.89443, 0.0)\n    test 220 Ellipse.normal4       : (3189086.0, 2761829.490853, 0.0, 0.0)\n\n    test 221 Ellipse.toRepr(terse=0): Ellipse(name='', a=6378172, b=3189086, c=5523658.9817066, e=0.8660254, e2=0.75, p=1594543, area=63901687989192.6015625, perimeter2k=30897294.5818735, R2=4510048.67277416)\n    test 222 Ellipse.toEllipsoid: name='', a=6378172, f=0.5, f_=2, b=3189086\n    test 223 Ellipse.toTriaxial_: name='_', a=6378172, b=3189086, c=0, e2ab=0.75, e2bc=1, e2ac=1\n\n    test 245 Ellipse.sideOfs       : 0\n    test 246 Ellipse.sideOf point  : 0.0\n    test 247 Ellipse.cw vs ccw     : 21\n    test 248 Ellipse.cw vs ccw'd   : True\n    test 273 Ellipse.slopes        : 0\n\n    test 274 a, b, b/a, m: (6378172.0, 1594543.0, 0.25, 0.9375)\n    test 275 Ellipse.perimeter2k   : 27357324.785247806\n    test 276 Ellipse.perimeter2k_  : 27357324.785247806\n    test 277 Ellipse.perimeterAGM  : 27357324.785247806\n    test 278 Ellipse.perimeterHGK  : 27357324.785247806\n    test 279 Ellipse.perimeterCR   : 27357324.462550402\n    test 280 Ellipse.perimeterGK   : 27357323.163297798\n    test 281 Ellipse.perimeter2RC  : 27357318.008817654\n    test 282 Ellipse.perimeter2R   : 27357317.948020011\n    test 283 Ellipse.perimeter4Arc3: 27839816.212722465, 922977.919904027, 23415319.320383895\n\n    test 284 elliperim DEPRECATED  : 27357324.785247806\n    test 285 elliperim DEPRECATED  : 40075236.597\n    test 286 elliperim DEPRECATED  : 25512688.0\n    test 287 elliperim DEPRECATED  : 6378172.0\n    test 288 elliperim DEPRECATED  : 0.0\n\n    test 289 Ellipse.apses2        : (12553810.483811613, 202533.51618838683)\n    test 290 Ellipse.arc           : 4544501.990341\n    test 291 Ellipse.arc           : 4544501.990341\n    test 292 Ellipse.arc           : 20517993.588936\n    test 293 Ellipse.arc           : 20517993.588936\n    test 294 Ellipse.area          : 31950843994596.3\n    test 295 Ellipse.e             : 0.9682458365518543\n    test 296 Ellipse.c             : 6175638.483811613\n    test 297 Ellipse.p             : 398635.75\n    test 298 Ellipse.point 45      : (4510048.672774165, 1127512.1681935412)\n    test 299 Ellipse.polar2d 45    : (2187694.9475911316, 45.0)\n    test 300 Ellipse.R1            : 4783629.0\n    test 301 Ellipse.R2            : 3189086.0\n    test 302 Ellipse.Roc 60        : 17091507.78125\n    test 303 Ellipse.Roc_(-1, 1)   : 9878809.997716203\n    test 304 Ellipse.Rrectifying   : 4354053.469342613\n    test 305 Ellipse.sideOf        : -0.9999993728610642\n    test 306 Ellipse.sideOf(c, p)  : 0.0\n    test 307 Ellipse.slope 60      : -8.213210701738216\n    test 308 Ellipse.hartzell4     : (4510048.672774, 1127512.168194, 0.0, 1925617.449958)\n    test 309 Ellipse.height4       : (5837520.368165, 642477.334856, 0.0, 1094866.757991)\n    test 310 Ellipse.normal3d      : (0.24254, 0.97014, 0.0)\n    test 311 Ellipse.normal4       : (3189086.0, 1380914.745427, 0.0, 0.0)\n\n    test 312 Ellipse.toRepr(terse=0): Ellipse(name='', a=6378172, b=1594543, c=6175638.48381161, e=0.96824584, e2=0.9375, p=398635.75, area=31950843994596.30078125, perimeter2k=27357324.78524781, R2=3189086)\n    test 313 Ellipse.toEllipsoid: name='', a=6378172, f=0.75, f_=1.33333333, b=1594543\n    test 314 Ellipse.toTriaxial_: name='_', a=6378172, b=1594543, c=0, e2ab=0.9375, e2bc=1, e2ac=1\n\n    test 336 Ellipse.sideOfs       : 0\n    test 337 Ellipse.sideOf point  : 0.0\n    test 338 Ellipse.cw vs ccw     : 21\n    test 339 Ellipse.cw vs ccw'd   : True\n    test 364 Ellipse.slopes        : 0\n\n    test 365 a, b, b/a, m: (6378172.0, 797271.5, 0.125, 0.984375)\n    test 366 Ellipse.perimeter2k   : 26106620.666072767\n    test 367 Ellipse.perimeter2k_  : 26106620.666072767\n    test 368 Ellipse.perimeterAGM  : 26106620.666072764\n    test 369 Ellipse.perimeterHGK  : 26106620.666072760\n    test 370 Ellipse.perimeterCR   : 26106596.269819759\n    test 371 Ellipse.perimeterGK   : 26106498.674043797\n    test 372 Ellipse.perimeter2RC  : 26106496.429202825\n    test 373 Ellipse.perimeter2R   : 26106468.693959467\n    test 374 Ellipse.perimeter4Arc3: 26548502.51849537, 426749.3250869843, 48408652.89930413\n\n    test 375 elliperim DEPRECATED  : 26106620.666072767\n    test 376 elliperim DEPRECATED  : 40075236.597\n    test 377 elliperim DEPRECATED  : 25512688.0\n    test 378 elliperim DEPRECATED  : 3189086.0\n    test 379 elliperim DEPRECATED  : 0.0\n\n    test 380 Ellipse.apses2        : (12706318.349198299, 50025.65080170147)\n    test 381 Ellipse.arc           : 4518714.450822\n    test 382 Ellipse.arc           : 4518714.450822\n    test 383 Ellipse.arc           : 19579965.499555\n    test 384 Ellipse.arc           : 19579965.499555\n    test 385 Ellipse.area          : 15975421997298.15\n    test 386 Ellipse.e             : 0.9921567416492215\n    test 387 Ellipse.c             : 6328146.3491982985\n    test 388 Ellipse.p             : 99658.9375\n    test 389 Ellipse.point 45      : (4510048.672774165, 563756.0840967706)\n    test 390 Ellipse.polar2d 45    : (1118805.3802239103, 45.0)\n    test 391 Ellipse.R1            : 4517871.833333333\n    test 392 Ellipse.R2            : 2255024.336387082\n    test 393 Ellipse.Roc 60        : 33401212.250312246\n    test 394 Ellipse.Roc_(-1, 1)   : 18464659.107211024\n    test 395 Ellipse.Rrectifying   : 4154997.72643051\n    test 396 Ellipse.sideOf        : -0.9999987457221285\n    test 397 Ellipse.sideOf(c, p)  : 0.0\n    test 398 Ellipse.slope 60      : -4.127810304512707\n    test 399 Ellipse.hartzell4     : (4510048.672774, 563756.084097, 0.0, 1882661.471213)\n    test 400 Ellipse.height4       : (6128382.04862, 220935.918585, 0.0, 628138.298638)\n    test 401 Ellipse.normal3d      : (0.12403, 0.99228, 0.0)\n    test 402 Ellipse.normal4       : (3189086.0, 690457.372713, 0.0, 0.0)\n\n    test 403 Ellipse.toRepr(terse=0): Ellipse(name='', a=6378172, b=797271.5, c=6328146.3491983, e=0.99215674, e2=0.984375, p=99658.9375, area=15975421997298.15039062, perimeter2k=26106620.66607277, R2=2255024.33638708)\n    test 404 Ellipse.toEllipsoid: name='', a=6378172, f=0.875, f_=1.14285714, b=797271.5\n    test 405 Ellipse.toTriaxial_: name='_', a=6378172, b=797271.5, c=0, e2ab=0.984375, e2bc=1, e2ac=1\n\n    test 427 Ellipse.sideOfs       : 0\n    test 428 Ellipse.sideOf point  : 0.0\n    test 429 Ellipse.cw vs ccw     : 21\n    test 430 Ellipse.cw vs ccw'd   : True\n    test 455 Ellipse.slopes        : 0\n\n    test 456 a, b, b/a, m: (6378172.0, 2.220446049250313e-16, 3.4813204304467065e-23, 1.0)\n    test 457 Ellipse.perimeter2k   : 25512688.000000000\n    test 458 Ellipse.perimeter2k_  : 25512688.000000000\n    test 459 Ellipse.perimeterAGM  : 25512688.000000000\n    test 460 Ellipse.perimeterHGK  : 25512688.000000000\n    test 461 Ellipse.perimeterCR   : 25512688.000000000\n    test 462 Ellipse.perimeterGK   : 25512688.000000000\n    test 463 Ellipse.perimeter2RC  : 25512688.000000000\n    test 464 Ellipse.perimeter2R   : 25512688.000000000\n    test 465 Ellipse.perimeter4Arc3: 25512688.0, 0.0, 4503599627370496.0\n\n    test 466 elliperim DEPRECATED  : 25512688.0\n    test 467 elliperim DEPRECATED  : 40075236.597\n    test 468 elliperim DEPRECATED  : 25512688.0\n    test 469 elliperim DEPRECATED  : 0.0\n    test 470 elliperim DEPRECATED  : 0.0\n\n    test 471 Ellipse.apses2        : (12756344.0, 0.0)\n    test 472 Ellipse.arc           : 3189086.000000\n    test 473 Ellipse.arc           : 3189086.000000\n    test 474 Ellipse.arc           : 19134516.000000\n    test 475 Ellipse.arc           : 19134516.000000\n    test 476 Ellipse.area          : 4.449245038736142e-09\n    test 477 Ellipse.e             : 1.0\n    test 478 Ellipse.c             : 6378172.0\n    test 479 Ellipse.p             : 7.730084195959789e-39\n    test 480 Ellipse.point 45      : (4510048.672774165, 1.5700924586837752e-16)\n    test 481 Ellipse.polar2d 45    : (3.14018491736755e-16, 45.0)\n    test 482 Ellipse.R1            : 4252114.666666666\n    test 483 Ellipse.R2            : 3.763294676057001e-05\n    test 484 Ellipse.Roc 60        : 1.1899922225051757e+29\n    test 485 Ellipse.Roc_(-1, 1)   : 6.477497206707077e+28\n    test 486 Ellipse.Rrectifying   : 4060470.406761281\n    test 487 Ellipse.sideOf        : 4503599627370494.5\n    test 488 Ellipse.sideOf(c, p)  : 0.0\n    test 489 Ellipse.slope 60      : 0.0\n    test 490 Ellipse.hartzell4     : (4510048.672774, 0.0, 0.0, 1868123.327226)\n    test 491 Ellipse.height4       : (6378172.0, 0.0, 0.0, 0.0)\n    test 492 Ellipse.normal3d      : (0.0, 1.0, 0.0)\n    test 493 Ellipse.normal4       : (3189086.0, 0.0, 0.0, 0.0)\n\n    test 494 Ellipse.toRepr(terse=0): Ellipse(name='', a=6378172, b=0, c=6378172, e=1, e2=1, p=0, area=0, perimeter2k=25512688, R2=0.00003763)\n    test 495 Ellipse.toEllipsoid: name='', a=6378172, f=0, f_=0, b=6378172\n    test 496 Ellipse.toTriaxial_: name='_', a=6378172, b=0, c=0, e2ab=1, e2bc=0, e2ac=1\n\n    test 497 Ellipse.isCircular    : False\n    test 498 Ellipse.isFlat        : True\n    test 499 Ellipse.isOblate      : True\n    test 500 Ellipse.isProlate     : False\n\n    test 501 Airy1830.polarimeter/2k: 40004504.322866\n    test 502 AiryModified.polarimeter/2k: 40003104.213633\n    test 503 ATS1977.polarimeter/2k: 40007850.321623\n    test 504 Australia1966.polarimeter/2k: 40008005.562578\n    test 505 Bessel1841.polarimeter/2k: 40003423.057729\n    test 506 BesselModified.polarimeter/2k: 40004018.103739\n    test 507 CGCS2000.polarimeter/2k: 40007862.916922\n    test 508 Clarke1866.polarimeter/2k: 40007552.171931\n    test 509 Clarke1880.polarimeter/2k: 40007470.206590\n    test 510 Clarke1880IGN.polarimeter/2k: 40007470.788996\n    test 511 Clarke1880Mod.polarimeter/2k: 40007470.510580\n    test 512 CPM1799.polarimeter/2k: 40000070.108863\n    test 513 Delambre1810.polarimeter/2k: 39999995.935832\n    test 514 Engelis1985.polarimeter/2k: 40007856.817888\n    test 515 Everest1969.polarimeter/2k: 40003153.246198\n    test 516 Everest1975.polarimeter/2k: 40003175.124904\n    test 517 Fisher1968.polarimeter/2k: 40007954.087654\n    test 518 GEM10C.polarimeter/2k: 40007862.917259\n    test 519 GPES.polarimeter/2k: 40075004.119208\n    test 520 GRS67.polarimeter/2k: 40008004.925042\n    test 521 GRS80.polarimeter/2k: 40007862.916922\n    test 522 Helmert1906.polarimeter/2k: 40008267.720558\n    test 523 IAU76.polarimeter/2k: 40007881.684906\n    test 524 IERS1989.polarimeter/2k: 40007856.594279\n    test 525 IERS1992TOPEX.polarimeter/2k: 40007858.526391\n    test 526 IERS2003.polarimeter/2k: 40007860.227339\n    test 527 Intl1924.polarimeter/2k: 40009153.195958\n    test 528 Intl1967.polarimeter/2k: 40007989.794372\n    test 529 Krassovski1940.polarimeter/2k: 40008549.990171\n    test 530 Krassowsky1940.polarimeter/2k: 40008549.990171\n    test 531 Maupertuis1738.polarimeter/2k: 40090266.793877\n    test 532 Mercury1960.polarimeter/2k: 40008054.450184\n    test 533 Mercury1968Mod.polarimeter/2k: 40007954.087654\n    test 534 NWL1965.polarimeter/2k: 40007911.472733\n    test 535 OSU86F.polarimeter/2k: 40007857.899134\n    test 536 OSU91A.polarimeter/2k: 40007858.526400\n    test 537 Plessis1817.polarimeter/2k: 39999996.440146\n    test 538 PZ90.polarimeter/2k: 40007856.783172\n    test 539 SGS85.polarimeter/2k: 40007856.594279\n    test 540 SoAmerican1969.polarimeter/2k: 40008005.562578\n    test 541 Sphere.polarimeter/2k: 40030228.704467\n    test 542 SphereAuthalic.polarimeter/2k: 40030173.592041\n    test 543 SpherePopular.polarimeter/2k: 40075016.685578\n    test 544 Struve1860.polarimeter/2k: 40008071.346229\n    test 545 WGS60.polarimeter/2k: 40008048.177526\n    test 546 WGS66.polarimeter/2k: 40007911.472733\n    test 547 WGS72.polarimeter/2k: 40007850.996794\n    test 548 WGS84.polarimeter/2k: 40007862.917251\n    test 549 WGS84_NGS.polarimeter/2k: 40007862.916922\n\n    30 of 549 testEllipses.py tests (5.5%) FAILED, incl. 30 DeprecationWarnings (pygeodesy 26.3.26 Python 3.11.9 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 1.24.2 scipy 1.10.1 Math 2 macOS 26.3.1 isLazy 0 -W  default) 295.646 ms\nrunning /usr/local/bin/p....n3.11 -W default ~/PyGeodesy/test/testEllipsoidal.py\n<string>:1: DeprecationWarning: method L{__matmul__<pygeodesy.trf.RefFrame.__matmul__>} has been DEPRECATED on 2024.02.16, use method C{B{point}.toRefFrame}.\n./pygeodesy/ellipsoidalBase.py:443: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  _ = self.datum.ellipsoid.geodesic\n./pygeodesy/azimuthal.py:636: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return self.datum.ellipsoid.geodesic\n./test/testLatLon.py:276: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.ellipsoidalNvector.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', p.cosineAndoyerLambertTo(q), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:277: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.ellipsoidalNvector.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', q.cosineAndoyerLambertTo(p), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:279: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.ellipsoidalNvector.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', p.cosineForsytheAndoyerLambertTo(q), '124801.098' if Sph else '125205.965', fmt='%.3f')\n./test/testLatLon.py:280: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.ellipsoidalNvector.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', q.cosineForsytheAndoyerLambertTo(p), '124801.098' if Sph else '125205.965', fmt='%.3f')\n./pygeodesy/ellipsoidalNvector.py:247: DeprecationWarning: Property_RO L{ned<pygeodesy.ltpTuples.Ned.ned>} has been DEPRECATED, use property C{ned4}.\n  dn = delta.ned[:3]  # XXX Ned4Tuple.to3Tuple\n./pygeodesy/deprecated/classes.py:33: DeprecationWarning: class L{Ned3Tuple<pygeodesy.deprecated.classes.Ned3Tuple>} has been DEPRECATED, use class L{Ned4Tuple}, ignoring item C{ltp}.\n  deprecated_class(cls)\n./test/testVectorial.py:128: DeprecationWarning: function L{nearestOn<pygeodesy.vector2d.nearestOn>} has been DEPRECATED on 2025.05.06, use L{pygeodesy.nearestOn<pygeodesy.vector3d.nearestOn>}.\n  t = vector2d.nearestOn(Nvector(0, 0, 0), p1, p2)\n\n    testing testEllipsoidal.py 24.11.02\n\n    testEllipsoidal(pygeodesy.ellipsoidalNvector, 25.05.12)\n    test 1 isEllipsoidal: True\n    test 2 isSpherical: False\n    test 3 isEllipsoidal: True\n    test 4 isSpherical: False\n    test 5 toDatum: 51.477284°N, 000.00002°E, -45.91m\n    test 6 toDatum: 51.4773°N, 000.0°E, -45.91m\n    test 7 toDatum: 51.4778°N, 000.0016°W\n    test 8 __matmul__: 51.477284°N, 000.00002°E, -45.91m\n    test 9 __matmul__: 51.477284°N, 000.00002°E, -45.90m\n    test 10 parse: 51.477284°N, 000.00002°E, -45.91m\n    test 11 reframe: None\n    test 12 toCartesian: [3980581.21, -111.159, 4966824.522]\n    test 13 toCss: -111.158797 5705242.333679\n    test 14 toCss: -111.158797 5705242.333679\n    test 15 toEcef: 3980581.21, -111.159, 4966824.522\n    test 16 toEtm: 30 N 916396 5720041\n    test 17 toEtm: 30 N 916396 5720041\n    test 18 toLcc: 5639901 4612638\n    test 19 toLcc: 5639901 4612638\n    test 20 toOsgr: TQ 38876 77320\n    test 21 toOsgr: TQ 38876 77320\n    test 22 toOsgrTM: TQ 38876 77320\n    test 23 toUtmUps: 30 N 708207 5707224\n    test 24 toUtm: 30 N 708207 5707224\n    test 25 toUtm: 30 N 708207 5707224\n    test 26 toWm: -178.111 6672799.209\n    test 27 toWm: -178.111 6672799.209\n    test 28 elevation2: None\n    test 29 geoidHeight2: None\n    test 30 toUtmUps: 30 N 708207 5707224\n    test 31 toUtm: 30 N 708207 5707224\n    test 32 toUtm: 30 N 708207 5707224\n    test 33 toUtmUps: 00 N 2000000 1333272\n    test 34 toUps: 00 N 2000000 1333272\n    test 35 toUps: 00 N 0 -666728\n    test 36 toUps: 00 N 2000000 1555732\n    test 37 toUtm: 31 N 459200 9217519\n    test 38 nearestOn: 32.81°N, 031.42°E\n    test 39 toNVector: (0.6228, 0.0, 0.7824, +0.24)\n    test 40 toNvector: True\n    test 41 toCartesian: [3980581, 97, 4966825]\n    test 42 toCartesian: True\n    test 43 toVector3D: (0.6228, 0.0, 0.7824)\n    test 44 Nvector: (0.5, 0.5, 0.7071)\n    test 45 toVector3D: (0.5, 0.5, 0.7071)\n    test 46 philamheight: 0.7854, 0.7854, 0.0\n    test 47 latlonheight: 45.0, 45.0, 0.0\n    test 48 xyzh: 0.5, 0.5, 0.7, 0.0\n    test 49 toCartesian: [3194434.411, 3194434.411, 4487326.82]\n    test 50 toCartesian: True\n    test 51 toLatLon: 45.0°N, 045.0°E\n    test 52 toLatLon: True\n    test 53 Nvector: (0.51, 0.512, 0.707, +1.00)\n    test 54 sat: 82.545852°N, 059.719736°E, -6353121.71m\n    test 55 dop: 51.998889°N, 004.373333°E, +134.64m\n    test 56 distance: 3806542.943645768  FAILED, KNOWN, expected 3806542.943647\n\n    32 tests skipped (32): insersecant2\n\n    testLatLon(pygeodesy.ellipsoidalNvector, 25.05.12)\n    test 57 isEllipsoidal: True\n    test 58 isSpherical: False\n    test 59 lat/lonDMS: 52.20472°N, 000.14056°E\n    test 60 lat/lonDMS F_DM: 52°12.283′N, 000°08.434′E\n    test 61 lat/lonDMS F_DM: 52°12.2832′N, 000°08.4336′E\n    test 62 lat/lonDMS F_DMS: 52°12′17″N, 000°08′26″E\n    test 63 lat/lonDMS F_DMS: 52°12′17.0″N, 000°08′26.0″E\n    test 64 lat/lonDMS F_RAD: 0.911144N, 0.002453E\n    test 65 isequalTo: True\n    test 66 isequalTo: True\n    test 67 latlon2: 52.20472, 0.14056\n    test 68 latlon2: 52.2047, 0.1406\n    test 69 latlon2: 52.205, 0.141\n    test 70 latlon2: 52.2, 0.14\n    test 71 latlon2: 52.2, 0.1\n    test 72 latlon2: 52.0, 0.0\n    test 73 chordTo: 12029263.15\n    test 74 chordTo: 12029049.69\n    test 75 copy: True\n    test 76 __eq__: True\n    test 77 __ne__: False\n    test 78 equirectangularTo: 404329.56\n    test 79 distanceTo: 404279.720589\n    test 80 distanceTo: 404279.720589\n    test 81 distanceTo: 3972863\n    test 82 distanceTo: 18013602.92\n    test 83 distanceTo: 20015114.35  FAILED, KNOWN, expected 20003931.46\n    test 84 intermediateTo: 51.372294°N, 000.707192°E\n    test 85 intermediateTo: True\n    test 86 intermediateTo: 404279.721\n    test 87 intermediateTo+5: 35.560239°N, 008.833512°E\n    test 88 intermediateTo+5: 4.885\n    test 89 intermediateTo-4: 64.570387°N, 013.156352°W\n    test 90 intermediateTo-4: 3.885\n    test 91 intermediateTo-h: 125.000\n    test 92 midpointTo: 50.536327°N, 001.274614°E\n    test 93 neareston6: (LatLon(45°00′00.0″N, 001°00′00.0″E), 4755443.4294, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E))\n    test 94 neareston6: (LatLon(45°30′03.94″N, 002°00′00.0″E), 39078.729285, 1.501072, 2, LatLon(45°00′00.0″N, 002°00′00.0″E), LatLon(46°00′00.0″N, 002°00′00.0″E))\n    test 95 chordTo: 125203.963\n    test 96 cosineAndoyerLambertTo: 125205.962\n    test 97 cosineAndoyerLambertTo: 125205.962\n    test 98 cosineForsyheAndoyerLambertTo: 125205.965\n    test 99 cosineForsyheAndoyerLambertTo: 125205.965\n    test 100 cosineLawTo: 124801.098\n    test 101 cosineLawTo: 124801.098\n    test 102 equirectangularTo: 124804.754\n    test 103 equirectangularTo: 124804.754\n    test 104 euclideanTo: 130015.089\n    test 105 euclideanTo: 130015.089\n    test 106 flatLocalTo: 125209.633\n    test 107 flatLocalTo: 125209.633\n    test 108 flatPolarTo: 133663.257\n    test 109 flatPolarTo: 133663.257\n    test 110 hartzell: 53.3206°N, 001.7297°W\n    test 111 hartzell: 53.349541°N, 001.7297°W\n    test 112 height4: 0.0\n    test 113 height4: (3820333.9, -115367.0, 5097204.4, -6584.9)\n    test 114 height4: 53°19′14.2″N, 001°43′46.9″W\n    test 115 height4: 53°19′14.2″N, 001°43′46.9″W\n    test 116 haversineTo: 124801.098\n    test 117 haversineTo: 124801.098\n    test 118 hubenyTo: <bound method LatLonBase.flatLocalTo of LatLon(53°19′14.16″N, 001°43′46.92″W)>\n    test 119 hubenyTo: <bound method LatLonBase.flatLocalTo of LatLon(53°11′19.32″N, 000°08′00.24″E)>\n    test 120 thomasTo: 125206.188\n    test 121 thomasTo: 125206.188\n    test 122 vincentysTo: 124801.098\n    test 123 vincentysTo: 124801.098\n    test 124 isclockwise: False\n    test 125 isclockwise*: False\n    test 126 isclockwise: True\n    test 127 isclockwise*: True\n    test 128 isclockwise: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 129 isclockwise*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 130 isclockwise: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 131 isclockwise*: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 132 isconvex: False\n    test 133 isconvex*: False\n    test 134 isconvex: True\n    test 135 isconvex*: True\n    test 136 isconvex: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 137 isconvex*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 138 isenclosedBy1: True\n    test 139 isenclosedBy1*: True\n    test 140 isenclosedBy2: False\n    test 141 isenclosedBy2*: False\n    test 142 isenclosedBy3: False\n    test 143 isenclosedBy3*: False\n    test 144 isenclosedBy4: False\n    test 145 isenclosedBy4*: False\n    test 146 isenclosedBy5: False\n    test 147 isenclosedBy5*: False\n    test 148 isenclosedBy6: True\n    test 149 isenclosedBy6*: True\n    test 150 isenclosedBy7: True\n    test 151 isenclosedBy7*: True\n    test 152 isenclosedBy-CCW: True\n    test 153 isenclosedBy-CW : True\n    test 154 isenclosedBy-CCW: True\n    test 155 compassAngleTo: 100.017\n    test 156 compassAngleTo: 105.599\n    test 157 compassAngleTo: 280.017\n    test 158 compassAngleTo: 285.599\n    test 159 equirectangularTo: 592.185\n    test 160 distanceTo: 591.831\n    test 161 compassAngleTo: 0.0\n    test 162 compassAngleTo: 45.0\n    test 163 compassAngleTo: 90.0\n    test 164 compassAngleTo: 180.0\n    test 165 compassAngleTo: 225.0\n    test 166 compassAngleTo: 315.0\n    test 167 compassAngleTo: 270.0\n    test 168 compassAngleTo: 359.4\n    test 169 latlon2: (53.0, 1.0)\n    test 170 philam2: (0.93, 0.02)\n    test 171 compassAngleTo: 31\n    test 172 compassAngleTo: 45\n\n    test 173 boundsOf: <class 'pygeodesy.namedTuples.Bounds2Tuple'>\n    test 174 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 175 latlon2: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 176 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 177 isequalTo: <class 'bool'>\n    test 178 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 179 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 180 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 181 xyz3: <class 'tuple'>\n    test 182 xyzh: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 183 compassAngleTo: <class 'float'>\n    test 184 cosineLawTo: <class 'float'>\n    test 185 euclideanTo: <class 'float'>\n    test 186 flatLocalTo: <class 'float'>\n    test 187 flatPolarTo: <class 'float'>\n    test 188 haversineTo: <class 'float'>\n    test 189 hubenyTo: <class 'float'>\n    test 190 vincentysTo: <class 'float'>\n    test 191 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 192 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 193 toLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 194 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 195 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 196 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 197 toVector: (3934960.466675, 0.0, 5002803.345483)\n    test 198 toVector3d: (0.61823, 0.0, 0.786)\n    test 199 trilaterate5 (pygeodesy.ellipsoidalNvector) .min: 223.305\n    test 200 trilaterate5 (pygeodesy.ellipsoidalNvector) .point: 42.67456065°N, 002.49539502°E\n    test 201 trilaterate5 (pygeodesy.ellipsoidalNvector) .min- is .maxPoint: True\n    test 202 trilaterate5 (pygeodesy.ellipsoidalNvector) .n: 1\n    test 203 trilaterate5 (pygeodesy.ellipsoidalNvector) .error: ellipsoidalNvector.LatLon.trilaterate5(area=True), MRO(nvectorBase.LatLonNvectorBase, ellipsoidalBase.LatLonEllipsoidalBase, latlonBase.LatLonBase, named._NamedBase, ecefLocals._EcefLocal, named._Named): not implemented\n\n    test 204 radii11: Radii11Tuple(rA=7705.84217, rB=1367.057272, rC=498.160185, cR=4897.488519, rIn=740.470746, riS=179.544791, roS=5964.029657, a=1865.217457, b=8204.002354, c=9072.899442, s=9571.059626)\n    test 205 circum4 (pygeodesy.ellipsoidalNvector) .radius: 3184196.839  FAILED, KNOWN, expected 3184256.748\n    test 206 circum4 (pygeodesy.ellipsoidalNvector) .center: 42.674776°N, 002.495488°E, -3184194.95m  FAILED, KNOWN, expected 43.054367°N, 002.942573°E, -3183993.92m\n    test 207 circum4 (pygeodesy.ellipsoidalNvector) .rank: 3\n    test 208 circum4 (pygeodesy.ellipsoidalNvector) .residuals: ()\n    test 209 circum4 (pygeodesy.ellipsoidalNvector) .d1: 4886.122  FAILED, KNOWN, expected 57818.033\n    test 210 circum4 (pygeodesy.ellipsoidalNvector) .d2: 4904.641  FAILED, KNOWN, expected 57834.176\n    test 211 circum4 (pygeodesy.ellipsoidalNvector) .d3: 4909.920  FAILED, KNOWN, expected 57830.992\n    test 212 circum4 (pygeodesy.ellipsoidalNvector) .datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 213 circum4 (pygeodesy.ellipsoidalNvector) .Ecef: <class 'pygeodesy.ecef.EcefVeness'>\n    test 214 radii11: Radii11Tuple(rA=327537.482637, rB=776914.262482, rC=784245.052526, cR=780602.180901, rIn=325058.721103, riS=84975.664195, roS=INF, a=1561159.315008, b=1111782.535163, c=1104451.745119, s=1888696.797645)\n    test 215 circin6 (pygeodesy.ellipsoidalNvector) .rB+rC: 1561159.315\n    test 216 circin6 (pygeodesy.ellipsoidalNvector) .rC+pA: 1111782.535\n    test 217 circin6 (pygeodesy.ellipsoidalNvector) .rA+rB: 1104451.745\n    test 218 circin6 (pygeodesy.ellipsoidalNvector) .radius: 325058.721\n    test 219 circin6 (pygeodesy.ellipsoidalNvector) .center: 02.948531°N, 002.932537°E, -40041.19m\n    test 220 circin6 (pygeodesy.ellipsoidalNvector) .deltas: (0.0, 0.0, 0.417795)  FAILED, KNOWN, expected (0.0, 0.0, 0.090491)\n    test 221 circin6 (pygeodesy.ellipsoidalNvector) .cA: 05.04314°N, 005.014578°E, -48104.09m\n    test 222 circin6 (pygeodesy.ellipsoidalNvector) .cB: 00.0°N, 002.941713°E, -20168.62m\n    test 223 circin6 (pygeodesy.ellipsoidalNvector) .cC: 02.961566°N, 000.0°E, -20113.46m\n    test 224 circin6 (pygeodesy.ellipsoidalNvector) .dA: 327992.318  FAILED, KNOWN, expected 327263.596\n    test 225 circin6 (pygeodesy.ellipsoidalNvector) .dB: 327863.711  FAILED, KNOWN, expected 326036.153\n    test 226 circin6 (pygeodesy.ellipsoidalNvector) .dC: 325653.216  FAILED, KNOWN, expected 326020.432\n\n    testVectorial(pygeodesy.ellipsoidalNvector, 25.05.12)\n\n    test 227 toLatLon: 44.995674°N, 045.0°E\n    test 228 toNvector: (0.50004, 0.50004, 0.70705)\n    test 229 isequalTo: False\n    test 230 isequalTo: True\n    test 231 length: 0.99992449715\n    test 232 euclid: 0.99995577\n    test 233 length: 1.00\n    test 234 euclid: 1.0000\n    test 235 meanOf: 44.995674°N, 045.0°E\n    test 236 meanOf: LatLon\n    test 237 apply: (0.5, 0.5, 0.707)\n    test 238 init: (0.5, 0.5, 0.707)\n    test 239 i***: (0.5, 0.5, 0.707)\n    test 240 abs: 0.99992449715\n    test 241 sumOf: (52.70504, 0.61904, 0.70705)\n    test 242 sumOf: Nv\n    test 243 sumOf: sumOf\n    test 244 length: 52.7134151513\n    test 245 sizeof: 241  FAILED, KNOWN, expected 128\n    test 246 length: 52.2051356286\n    test 247 sizeof: 360  FAILED, KNOWN, expected 247\n    test 248 copy: True\n    test 249 length: 52.2051356286\n    test 250 sizeof: 360\n    test 251 isenclosedBy: True\n    test 252 isenclosedBy*: True\n    test 253 isenclosedBy: True\n    test 254 isenclosedBy*: True\n\n    test 255 nearestOn: 51.0°N, 001.0°E\n    test 256 nearestOn: 50.987°N, 000.298°W\n    test 257 nearestOn: 51.0°N, 002.0°E\n    test 258 nearestOn: 50.995°N, 002.655°E\n    test 259 nearestOn: 51.0°N, 001.9°E\n    test 260 nearestOn: True\n    test 261 distanceTo: 42.826\n    test 262 nearestOn: 51.0°N, 002.0°E\n    test 263 nearestOn: True\n    test 264 nearestOn: 00.0°N, 000.0°E\n    test 265 nearestOn: True\n    test 266 nearestOn: 00.0°N, 020.0°E\n    test 267 nearestOn: True\n    test 268 nearestOn: 02.0°N, 002.0°E\n    test 269 nearestOn: 02.0°N, 002.0°E\n\n    test 270 neareston6: (LatLon(45°00′00.0″N, 001°00′00.0″E), 4755443.4294, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E))\n    test 271 neareston6: (LatLon(45°30′03.94″N, 002°00′00.0″E), 39078.729285, 1.501072, 2, LatLon(45°00′00.0″N, 002°00′00.0″E), LatLon(46°00′00.0″N, 002°00′00.0″E))\n\n    test 272 BasseC: 47.3038°N, 002.5721°W\n    test 273 BasseH: 47.311067°N, 002.528617°W\n    test 274 triangulate: 47.323667°N, 002.568501°W\n    test 275 triangulate: True\n\n    test 276 trilaterate: 37.419078°N, 121.960579°W\n    test 277 trilaterate: True\n    test 278 trilaterate: 08.068912°S, 034.888699°W\n    test 279 trilaterate: True\n    test 280 trilaterate: 08.068912°S, 034.888695°W  FAILED, KNOWN, expected 08.068912°S, 034.888699°W\n    test 281 trilaterate: True\n    test 282 trilaterate: 42.67456065°N, 002.49539502°E\n    test 283 trilaterate: distance1 (5110), distance2 (5110), distance3 (5110), point1 (LatLon(42°41′19.82″N, 002°26′19.89″E)), point2 (LatLon(42°38′07.52″N, 002°31′21.25″E)) or point3 (LatLon(42°38′43.44″N, 002°30′17.32″E)): no intersection (useZ=False, wrap=False, z=-8.13526e-05)\n\n    test 284 destinationNed: 48°53′12.01″N, 002°22′29.0″E, +0.20m\n\n    testNvector(pygeodesy.ellipsoidalNvector, 25.05.12)\n    test 285 sumOf: Nvector\n    test 286 ecef.x, .y, .z: 3194659.54086, 3194659.54086, 4487008.4122\n    test 287 ecef.lat, .lon: 44.995674, 45.0\n    test 288 ecef.height: -0.0\n    test 289 ecef.M: -0.707106781, -0.499962243, 0.500037754, 0.707106781, -0.499962243, 0.500037754, 0.0, 0.707160174, 0.707053385\n    test 290 .isEllipsoidal: True\n    test 291 .isSpherical: False\n    test 292 .latlon: (44.995674, 45.0)\n    test 293 .philam: (0.785323, 0.785398)\n    test 294 .latlonheight: (44.995674, 45.0, 0.0)\n    test 295 .philamheight: (0.785323, 0.785398, 0.0)\n    test 296 parse: (0.5, 0.5, 0.707)\n    test 297 cmp: 0\n    test 298 eq: True\n    test 299 ge: True\n    test 300 gt: False\n    test 301 le: True\n    test 302 lt: False\n    test 303 ne: False\n    test 304 *: (1.0, 1.0, 1.414)\n./test/testLatLon.py:276: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.ellipsoidalVincenty.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', p.cosineAndoyerLambertTo(q), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:277: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.ellipsoidalVincenty.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', q.cosineAndoyerLambertTo(p), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:279: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.ellipsoidalVincenty.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', p.cosineForsytheAndoyerLambertTo(q), '124801.098' if Sph else '125205.965', fmt='%.3f')\n./test/testLatLon.py:280: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.ellipsoidalVincenty.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', q.cosineForsytheAndoyerLambertTo(p), '124801.098' if Sph else '125205.965', fmt='%.3f')\n./test/testLatLon.py:627: DeprecationWarning: function L{areaOf<pygeodesy.ellipsoidalVincenty.areaOf>} has been DEPRECATED, use function L{ellipsoidalExact.areaOf} or L{ellipsoidalKarney.areaOf}.\n  r = a(reversed(b))\n./pygeodesy/ellipsoidalKarney.py:139: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return fabs(_polygon(datum.ellipsoid.geodesic, points, True, False, wrap, polar))\n./test/testLatLon.py:628: DeprecationWarning: function L{areaOf<pygeodesy.ellipsoidalVincenty.areaOf>} has been DEPRECATED, use function L{ellipsoidalExact.areaOf} or L{ellipsoidalKarney.areaOf}.\n  f = a(b)  # ccw\n    test 305 +: (1.0, 1.0, 1.414)\n    test 306 /: (0.5, 0.5, 0.707)\n    test 307 -: (0.5, 0.5, 0.707)\n    test 308 @: (0.0, 0.0, 0.0)\n    test 309 @: (0.0, 0.0, 0.0)\n    test 310 rotate: (0.26268, 0.26268, 0.37143)\n    test 311 crosserrors: True\n    test 312 0: divisor (0): float division by zero\n    test 313 intersections2: (500.0, 0.0, 0.0)\n    test 314 nearestOn: (0.0, 0.0, 0.0)\n    test 315 nearestOn: True\n    test 316 nearestOn: (100.0, 100.0, 100.0)\n    test 317 nearestOn: True\n    test 318 iscolinearWith: False\n    test 319 iscolinearWith: True\n    test 320 nearestOn: (0.0, 0.0, 0.0)\n    test 321 nearestOn: True\n    test 322 nearestOn: (100.0, 100.0, 100.0)\n    test 323 nearestOn: True\n    test 324 iscolinearWith: False\n    test 325 iscolinearWith: True\n\n    testEllipsoidal(pygeodesy.ellipsoidalVincenty, 25.05.26)\n    test 326 isEllipsoidal: True\n    test 327 isSpherical: False\n    test 328 isEllipsoidal: True\n    test 329 isSpherical: False\n    test 330 toDatum: 51.477284°N, 000.00002°E, -45.91m\n    test 331 toDatum: 51.4773°N, 000.0°E, -45.91m\n    test 332 toDatum: 51.4778°N, 000.0016°W\n    test 333 __matmul__: 51.477284°N, 000.00002°E, -45.91m\n    test 334 __matmul__: 51.477284°N, 000.00002°E, -45.90m\n    test 335 parse: 51.477284°N, 000.00002°E, -45.91m\n    test 336 reframe: None\n    test 337 toCartesian: [3980581.21, -111.159, 4966824.522]\n    test 338 toCss: -111.158797 5705242.333679\n    test 339 toCss: -111.158797 5705242.333679\n    test 340 toEcef: 3980581.21, -111.159, 4966824.522\n    test 341 toEtm: 30 N 916396 5720041\n    test 342 toEtm: 30 N 916396 5720041\n    test 343 toLcc: 5639901 4612638\n    test 344 toLcc: 5639901 4612638\n    test 345 toOsgr: TQ 38876 77320\n    test 346 toOsgr: TQ 38876 77320\n    test 347 toOsgrTM: TQ 38876 77320\n    test 348 toUtmUps: 30 N 708207 5707224\n    test 349 toUtm: 30 N 708207 5707224\n    test 350 toUtm: 30 N 708207 5707224\n    test 351 toWm: -178.111 6672799.209\n    test 352 toWm: -178.111 6672799.209\n    test 353 elevation2: None\n    test 354 geoidHeight2: None\n    test 355 toUtmUps: 30 N 708207 5707224\n    test 356 toUtm: 30 N 708207 5707224\n    test 357 toUtm: 30 N 708207 5707224\n    test 358 toUtmUps: 00 N 2000000 1333272\n    test 359 toUps: 00 N 2000000 1333272\n    test 360 toUps: 00 N 0 -666728\n    test 361 toUps: 00 N 2000000 1555732\n    test 362 toUtm: 31 N 459200 9217519\n    test 363 nearestOn: 32.81°N, 031.42°E\n    test 364 sat: 82.545852°N, 059.719736°E, -6353121.71m\n    test 365 dop: 51.998889°N, 004.373333°E, +134.64m\n    test 366 distance: 3817991.0740122627  FAILED, KNOWN, expected 3817991.074015\n    test 367 neareston8: (LatLon(45°00′00.0″N, 001°00′00.0″E), 4874369.98942, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E), 0.0, 0.0)\n    test 368 iteration: 0\n    test 369 neareston8: (LatLon(45°30′03.93″N, 020°00′00.0″E), 39078.779519, 1.501069, 2, LatLon(45°00′00.0″N, 020°00′00.0″E), LatLon(46°00′00.0″N, 020°00′00.0″E), 270.356041, 269.999412)\n    test 370 iteration: 1\n    test 371 intersecant2: 2.851e-11% 5 LatLon(03°18′54.69″S, 023°52′08.48″E)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 372 intersecant2: 2.948e-11% 5 LatLon(22°22′23.65″S, 007°55′54.49″E)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 373 intersecant2: 7.380e-11% 5 LatLon(10°39′24.95″N, 034°45′48.18″W)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 374 intersecant2: 6.491e-11% 4 LatLon(25°11′09.14″S, 005°10′35.44″W)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 375 intersecant2: 6.581e-12% 5 LatLon(10°14′21.91″S, 021°00′17.05″E)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 376 intersecant2: 1.993e-11% 5 LatLon(20°55′17.31″S, 010°40′21.43″E)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 377 intersecant2: center (LatLon(05°00′00.0″N, 005°00′00.0″W)), circle (3339584), end (LatLon(15°00′00.0″N, 045°00′00.0″E)), exact (False), start (LatLon(45°00′00.0″S, 015°00′00.0″W)) or wrap (False): 'too distant (3.69e+06) plumb to (16°56′45.9″S, 020°17′02.98″E)'\n    test 378 intersecant2: 4.822e-11% 5 LatLon(30°19′11.9″N, 022°18′22.76″W)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 379 intersecant2: 2.138e-11% 5 LatLon(00°59′41.3″N, 034°46′57.09″W)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 380 intersecant2: center (LatLon(05°00′00.0″N, 005°00′00.0″W)), circle (3339584), end (261.75669472183114), exact (False), start (LatLon(00°59′41.3″N, 034°46′57.09″W)) or wrap (False): 'too distant (1.87e+07) plumb to (06°53′46.55″N, 173°59′26.08″E)'\n    test 381 intersecant2: center (LatLon(05°00′00.0″N, 005°00′00.0″W)), circle (3339584), end (LatLon(35°08′52.15″N, 004°02′04.68″W)), exact (False), start (LatLon(34°12′31.53″N, 003°04′01.61″E)) or wrap (False): 'no convergence (2.36323e-08), tolerance (1.49012e-08) plumb to (34°43′48.27″N, 000°27′49.31″W)'\n    test 382 intersecant2: center (LatLon(05°00′00.0″N, 005°00′00.0″W)), circle (3339584), end (16.240301461238964), exact (False), start (LatLon(34°12′31.53″N, 003°04′01.61″E)) or wrap (False): 'too distant (1.47e+07) plumb to (22°42′26.37″S, 138°32′28.16″W)'\n    test 383 intersecant2: 1.610e-11% 5 LatLon(07°41′21.22″S, 022°17′12.7″E)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 384 intersecant2: 5.550e-12% 5 LatLon(35°07′53.48″N, 006°26′21.82″W)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 385 intersecant2: center (LatLon(05°00′00.0″N, 005°00′00.0″W)), circle (3339584), end (357.1305274303066), exact (False), start (LatLon(35°07′53.48″N, 006°26′21.82″W)) or wrap (False): 'too distant (3.82e+06) plumb to (04°26′36.43″N, 029°25′15.75″E)'\n\n    testLatLon(pygeodesy.ellipsoidalVincenty, 25.05.26)\n    test 386 isEllipsoidal: True\n    test 387 isSpherical: False\n    test 388 lat/lonDMS: 52.20472°N, 000.14056°E\n    test 389 lat/lonDMS F_DM: 52°12.283′N, 000°08.434′E\n    test 390 lat/lonDMS F_DM: 52°12.2832′N, 000°08.4336′E\n    test 391 lat/lonDMS F_DMS: 52°12′17″N, 000°08′26″E\n    test 392 lat/lonDMS F_DMS: 52°12′17.0″N, 000°08′26.0″E\n    test 393 lat/lonDMS F_RAD: 0.911144N, 0.002453E\n    test 394 isequalTo: True\n    test 395 isequalTo: True\n    test 396 latlon2: 52.20472, 0.14056\n    test 397 latlon2: 52.2047, 0.1406\n    test 398 latlon2: 52.205, 0.141\n    test 399 latlon2: 52.2, 0.14\n    test 400 latlon2: 52.2, 0.1\n    test 401 latlon2: 52.0, 0.0\n    test 402 chordTo: 12029263.15\n    test 403 chordTo: 12029049.69\n    test 404 initialBearingTo: 156.1106\n    test 405 initialBearingTo: 65.9335\n    test 406 initialBearingTo: 0.0\n    test 407 initialBearingTo: 180.0\n    test 408 finalBearingTo: 157.8345\n    test 409 finalBearingTo: 93.9034\n    test 410 bearingTo2: 156.1106, 157.8345\n    test 411 ispolar: True\n    test 412 copy: True\n    test 413 __eq__: True\n    test 414 __ne__: False\n    test 415 equirectangularTo: 404329.56\n    test 416 distanceTo: 404607.805988\n    test 417 distanceTo: 404607.805988\n    test 418 distanceTo: 3981601\n    test 419 antipodal: False\n    test 420 distanceTo dateline: 19959679.267\n    test 421 distanceTo unrolled: 19959679.267\n    test 422 antipodal: False\n    test 423 distanceTo dateline: 9513998\n    test 424 distanceTo unrolled: 9513998\n    test 425 distanceTo: 18012714.66\n    test 426 distanceTo: ambiguous: LatLon(00°00′00.0″N, 000°00′00.0″E) antipodal to LatLon(00°00′00.0″N, 180°00′00.0″E)  FAILED, KNOWN, expected ambiguous, antipodal ...\n    test 427 distanceTo3 dateline: 19959679.2674, 161.0677, 18.8252\n    test 428 distanceTo3 dateline: 9513997.9901, 42.9164, 138.8903\n    test 429 distanceTo3 dateline: 19959679.2674, 161.0677, 18.8252\n    test 430 distanceTo3 dateline: 9513997.9901, 42.9164, 138.8903\n    test 431 intermediateTo: 51.372275°N, 000.707253°E\n    test 432 intermediateTo: True\n    test 433 intermediateTo: 404607.806\n    test 434 intermediateTo+5: 35.139582°N, 008.994368°E\n    test 435 intermediateTo+5: 5.000\n    test 436 intermediateTo-4: 64.894124°N, 013.705689°W\n    test 437 intermediateTo-4: 4.000\n    test 438 intermediateTo-h: 125.000\n    test 439 midpointTo: 50.536583°N, 001.274507°E\n    test 440 destination: 51.513526°N, 000.098038°W\n    test 441 destination: 51°30′49″N, 000°05′53″W\n    test 442 destination: 33°57′N, 118°24′W\n    test 443 destination: 33.950367°N, 118.399012°W\n    test 444 destination: 0.592546N, 2.066453W\n    test 445 destination: 32.11195529°N, 064.56074722°E  FAILED, KNOWN, expected 32.11195529°N, 063.95925278°E\n    test 446 neareston6: (LatLon(45°00′00.0″N, 001°00′00.0″E), 4755443.4294, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E))\n    test 447 neareston6: (LatLon(45°30′03.94″N, 002°00′00.0″E), 39078.729285, 1.501072, 2, LatLon(45°00′00.0″N, 002°00′00.0″E), LatLon(46°00′00.0″N, 002°00′00.0″E))\n    test 448 chordTo: 125203.963\n    test 449 cosineAndoyerLambertTo: 125205.962\n    test 450 cosineAndoyerLambertTo: 125205.962\n    test 451 cosineForsyheAndoyerLambertTo: 125205.965\n    test 452 cosineForsyheAndoyerLambertTo: 125205.965\n    test 453 cosineLawTo: 124801.098\n    test 454 cosineLawTo: 124801.098\n    test 455 equirectangularTo: 124804.754\n    test 456 equirectangularTo: 124804.754\n    test 457 euclideanTo: 130015.089\n    test 458 euclideanTo: 130015.089\n    test 459 flatLocalTo: 125209.633\n    test 460 flatLocalTo: 125209.633\n    test 461 flatPolarTo: 133663.257\n    test 462 flatPolarTo: 133663.257\n    test 463 hartzell: 53.3206°N, 001.7297°W\n    test 464 hartzell: 53.349541°N, 001.7297°W\n    test 465 height4: 0.0\n    test 466 height4: (3820333.9, -115367.0, 5097204.4, -6584.9)\n    test 467 height4: 53°19′14.2″N, 001°43′46.9″W\n    test 468 height4: 53°19′14.2″N, 001°43′46.9″W\n    test 469 haversineTo: 124801.098\n    test 470 haversineTo: 124801.098\n    test 471 hubenyTo: <bound method LatLonBase.flatLocalTo of LatLon(53°19′14.16″N, 001°43′46.92″W)>\n    test 472 hubenyTo: <bound method LatLonBase.flatLocalTo of LatLon(53°11′19.32″N, 000°08′00.24″E)>\n    test 473 thomasTo: 125206.188\n    test 474 thomasTo: 125206.188\n    test 475 vincentysTo: 124801.098\n    test 476 vincentysTo: 124801.098\n    test 477 isclockwise: False\n    test 478 isclockwise*: False\n    test 479 isclockwise: True\n    test 480 isclockwise*: True\n    test 481 isclockwise: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 482 isclockwise*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 483 isclockwise: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 484 isclockwise*: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 485 isconvex: False\n    test 486 isconvex*: False\n    test 487 isconvex: True\n    test 488 isconvex*: True\n    test 489 isconvex: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 490 isconvex*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 491 isenclosedBy1: True\n    test 492 isenclosedBy1*: True\n    test 493 isenclosedBy2: False\n    test 494 isenclosedBy2*: False\n    test 495 isenclosedBy3: False\n    test 496 isenclosedBy3*: False\n    test 497 isenclosedBy4: False\n    test 498 isenclosedBy4*: False\n    test 499 isenclosedBy5: False\n    test 500 isenclosedBy5*: False\n    test 501 isenclosedBy6: True\n    test 502 isenclosedBy6*: True\n    test 503 isenclosedBy7: True\n    test 504 isenclosedBy7*: True\n    test 505 isenclosedBy-CCW: True\n    test 506 isenclosedBy-CW : True\n    test 507 isenclosedBy-CCW: True\n    test 508 initialBearingTo: 102.392291\n    test 509 compassAngleTo: 100.017\n    test 510 compassAngleTo: 105.599\n    test 511 initialBearingTo: 288.676039\n    test 512 compassAngleTo: 280.017\n    test 513 compassAngleTo: 285.599\n    test 514 equirectangularTo: 592.185\n    test 515 distanceTo: 593.571\n    test 516 bearingTo: 0.0\n    test 517 compassAngleTo: 0.0\n    test 518 bearingTo: 45.2  FAILED, KNOWN, expected 45.0\n    test 519 compassAngleTo: 45.0\n    test 520 bearingTo: 90.0\n    test 521 compassAngleTo: 90.0\n    test 522 bearingTo: 180.0\n    test 523 compassAngleTo: 180.0\n    test 524 bearingTo: 225.2  FAILED, KNOWN, expected 225.0\n    test 525 compassAngleTo: 225.0\n    test 526 bearingTo: 314.8  FAILED, KNOWN, expected 315.0\n    test 527 compassAngleTo: 315.0\n    test 528 bearingTo: 270.0\n    test 529 compassAngleTo: 270.0\n    test 530 bearingTo: 360.0  FAILED, KNOWN, expected 359.4\n    test 531 compassAngleTo: 359.4\n    test 532 latlon2: (53.0, 1.0)\n    test 533 philam2: (0.93, 0.02)\n    test 534 bearingTo: 31\n    test 535 compassAngleTo: 31\n    test 536 compassAngleTo: 45\n\n    test 537 boundsOf: <class 'pygeodesy.namedTuples.Bounds2Tuple'>\n    test 538 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 539 latlon2: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 540 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 541 isequalTo: <class 'bool'>\n    test 542 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 543 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 544 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 545 xyz3: <class 'tuple'>\n    test 546 xyzh: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 547 compassAngleTo: <class 'float'>\n    test 548 cosineLawTo: <class 'float'>\n    test 549 euclideanTo: <class 'float'>\n    test 550 flatLocalTo: <class 'float'>\n    test 551 flatPolarTo: <class 'float'>\n    test 552 haversineTo: <class 'float'>\n    test 553 hubenyTo: <class 'float'>\n    test 554 vincentysTo: <class 'float'>\n    test 555 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 556 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 557 toLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 558 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 559 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 560 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 561 toNvector: (0.615661, 0.0, 0.788011, 0)\n    test 562 toVector: (3934960.466675, 0.0, 5002803.345483)\n    test 563 toVector3d: (0.61823, 0.0, 0.786)\n\n    test 564 trilaterate5 (pygeodesy.ellipsoidalVincenty) .min: 305.091\n    test 565 trilaterate5 (pygeodesy.ellipsoidalVincenty) .point: 42.66933643°N, 002.48620262°E\n    test 566 trilaterate5 (pygeodesy.ellipsoidalVincenty) .max: 1592.545\n    test 567 trilaterate5 (pygeodesy.ellipsoidalVincenty) .point: 42.65141232°N, 002.46816989°E\n    test 568 trilaterate5 (pygeodesy.ellipsoidalVincenty) .n: 3\n    test 569 trilaterate5 (pygeodesy.ellipsoidalVincenty) .min: 127.229\n    test 570 trilaterate5 (pygeodesy.ellipsoidalVincenty) .max: 152.612\n    test 571 trilaterate5 (pygeodesy.ellipsoidalVincenty) .point: 42.67815375°N, 002.49950041°E\n    test 572 trilaterate5 (pygeodesy.ellipsoidalVincenty) .n: 2\n    test 573 trilaterate5 (pygeodesy.ellipsoidalVincenty) .min: 2400.293\n    test 574 trilaterate5 (pygeodesy.ellipsoidalVincenty) .max: 2400.293\n    test 575 trilaterate5 (pygeodesy.ellipsoidalVincenty) .point: 42.66128984°N, 002.47973818°E\n    test 576 trilaterate5 (pygeodesy.ellipsoidalVincenty) .min- is .maxPoint: True\n    test 577 trilaterate5 (pygeodesy.ellipsoidalVincenty) .n: 1\n    test 578 trilaterate5 (pygeodesy.ellipsoidalVincenty) .min: 1343.743\n    test 579 trilaterate5 (pygeodesy.ellipsoidalVincenty) .point: 42.69131964°N, 002.50112167°E\n    test 580 trilaterate5 (pygeodesy.ellipsoidalVincenty) .max: 1445.554\n    test 581 trilaterate5 (pygeodesy.ellipsoidalVincenty) .point: 42.67815375°N, 002.49950041°E\n    test 582 trilaterate5 (pygeodesy.ellipsoidalVincenty) .n: 2\n./pygeodesy/ellipsoidalKarney.py:94: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return self.datum.ellipsoid.geodesic\n./test/testLatLon.py:276: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.ellipsoidalKarney.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', p.cosineAndoyerLambertTo(q), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:277: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.ellipsoidalKarney.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', q.cosineAndoyerLambertTo(p), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:279: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.ellipsoidalKarney.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', p.cosineForsytheAndoyerLambertTo(q), '124801.098' if Sph else '125205.965', fmt='%.3f')\n./test/testLatLon.py:280: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.ellipsoidalKarney.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', q.cosineForsytheAndoyerLambertTo(p), '124801.098' if Sph else '125205.965', fmt='%.3f')\n    test 583 radii11: Radii11Tuple(rA=7244.792747, rB=1828.106695, rC=2.25502, cR=57792.067128, rIn=57.366968, riS=2.087668, roS=2.443334, a=1830.361715, b=7247.047766, c=9072.899442, s=9075.154461)\n    test 584 circum3 (pygeodesy.ellipsoidalVincenty) .radius: 57792.067\n    test 585 circum3 (pygeodesy.ellipsoidalVincenty) .center: 43.053532°N, 002.943255°E, -261.66m\n    test 586 circum3 (pygeodesy.ellipsoidalVincenty) .deltas: (-0.0, 0.0, 13.509)  FAILED, KNOWN, expected (0.0, 0.0, 11.383)\n    test 587 circum3 (pygeodesy.ellipsoidalVincenty) .d1: 57792.858\n    test 588 circum3 (pygeodesy.ellipsoidalVincenty) .d2: 57792.859\n    test 589 circum3 (pygeodesy.ellipsoidalVincenty) .d3: 57792.859\n    test 590 circum3 (pygeodesy.ellipsoidalVincenty) .datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 591 circum3 (pygeodesy.ellipsoidalVincenty) .Ecef: <class 'pygeodesy.ecef.EcefVeness'>\n\n    test 592 radii11: Radii11Tuple(rA=7244.792747, rB=1828.106695, rC=2.25502, cR=57792.067128, rIn=57.366968, riS=2.087668, roS=2.443334, a=1830.361715, b=7247.047766, c=9072.899442, s=9075.154461)\n    test 593 circum4 (pygeodesy.ellipsoidalVincenty) .radius: 3184256.748\n    test 594 circum4 (pygeodesy.ellipsoidalVincenty) .center: 43.054367°N, 002.942573°E, -3183993.92m\n    test 595 circum4 (pygeodesy.ellipsoidalVincenty) .rank: 3\n    test 596 circum4 (pygeodesy.ellipsoidalVincenty) .residuals: ()\n    test 597 circum4 (pygeodesy.ellipsoidalVincenty) .d1: 57818.033\n    test 598 circum4 (pygeodesy.ellipsoidalVincenty) .d2: 57834.176\n    test 599 circum4 (pygeodesy.ellipsoidalVincenty) .d3: 57830.992\n    test 600 circum4 (pygeodesy.ellipsoidalVincenty) .datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 601 circum4 (pygeodesy.ellipsoidalVincenty) .Ecef: <class 'pygeodesy.ecef.EcefVeness'>\n    test 602 radii11: Radii11Tuple(rA=327537.482637, rB=776914.262482, rC=784245.052526, cR=780602.180901, rIn=325058.721103, riS=84975.664195, roS=INF, a=1561159.315008, b=1111782.535163, c=1104451.745119, s=1888696.797645)\n    test 603 circin6 (pygeodesy.ellipsoidalVincenty) .rB+rC: 1561159.315\n    test 604 circin6 (pygeodesy.ellipsoidalVincenty) .rC+pA: 1111782.535\n    test 605 circin6 (pygeodesy.ellipsoidalVincenty) .rA+rB: 1104451.745\n    test 606 circin6 (pygeodesy.ellipsoidalVincenty) .radius: 325058.721\n    test 607 circin6 (pygeodesy.ellipsoidalVincenty) .center: 02.948531°N, 002.932537°E, -40041.19m\n    test 608 circin6 (pygeodesy.ellipsoidalVincenty) .deltas: (0.0, 0.0, 0.417795)  FAILED, KNOWN, expected (0.0, 0.0, 0.090491)\n    test 609 circin6 (pygeodesy.ellipsoidalVincenty) .cA: 05.04314°N, 005.014578°E, -48104.09m\n    test 610 circin6 (pygeodesy.ellipsoidalVincenty) .cB: 00.0°N, 002.941713°E, -20168.62m\n    test 611 circin6 (pygeodesy.ellipsoidalVincenty) .cC: 02.961566°N, 000.0°E, -20113.46m\n    test 612 circin6 (pygeodesy.ellipsoidalVincenty) .dA: 327263.596\n    test 613 circin6 (pygeodesy.ellipsoidalVincenty) .dB: 326036.153\n    test 614 circin6 (pygeodesy.ellipsoidalVincenty) .dC: 326020.432\n\n    test 615 area cw/ccw: 1.0\n\n    testNOAA(pygeodesy.ellipsoidalVincenty, 25.05.26)\n    test 616 NOAAexample1: 191872.1190, 249 03 16.4237, 67 59 11.1619\n    test 617 NOAAexample2: 182009.1679, 254 42 44.6439, 73 09 21.3315\n    test 618 NOAAexample3: 123456.7891, 245 00 34.7001, 64 20 24.6864\n    test 619 NOAAexample4: 145239.0603, 114 29 26.9586, 295 21 32.6566\n\n    testIntersection3(pygeodesy.ellipsoidalVincenty, 25.05.26)\n    test 620 (30, 17): (LatLon(30°52′03.1″N, 015°30′38.41″E), 0, 0)\n    test 621 (30, 17): (LatLon(30°52′03.1″N, 015°30′38.41″E), -1, 0)\n    test 622 (-1,  3): (LatLon(01°34′52.49″N, 006°00′51.83″E), -1, -2)\n    test 623 (-1,  3): (LatLon(01°34′52.49″N, 006°00′51.83″E), -1, 2)\n    test 624 (65, 32): (LatLon(56°58′26.51″N, 032°00′00.0″E), 1, 0)\n    test 625 (65, 32): (LatLon(56°58′26.51″N, 032°00′00.0″E), 1, 2)\n    test 626 (-2, 17): <class 'pygeodesy.errors.IntersectionError'>\n    test 627 (49, 25): (LatLon(49°00′00.0″N, 025°00′00.0″E), 1, -2)  FAILED, KNOWN, expected (LatLon(49°00′00.0″N, 025°00′00.0″E), 0, 0)\n    test 628 #58: (LatLon(01°54′25.65″S, 005°37′48.76″E), 1, -2)\n    test 629 #58: <class 'pygeodesy.errors.IntersectionError'>\n\n    testIntersections2(pygeodesy.ellipsoidalVincenty, 25.05.26)\n    test 630 Equidistant: 36.9879°N, 088.1564°W, 38.2441°N, 092.3835°W  FAILED, KNOWN, expected 36.9892°N, 088.152°W, 38.2377°N, 092.39°W\n    test 631 Equidistant: 36.9892°N, 088.152°W, 38.2377°N, 092.39°W\n    test 632 Equidistant: 00.0°S, 035.4073°W, 00.0°S, 035.4073°E\n    test 633 Equidistant: 1.63814 (% of radius)\n    test 634 Equidistant: 22.756°N, 000.0°W, 22.756°S, 000.0°W\n    test 635 Equidistant: 1.30784 (% of radius)\n    test 636 Equidistant: 29.2359°N, 040.2625°W, 29.2359°S, 040.2625°E\n    test 637 Equidistant: 1.31348 (% of radius)\n    test 638 Equidistant: 01.1557°S, 045.0894°E, 01.1557°N, 045.0894°E\n    test 639 Equidistant: 1.81093 (% of radius)\n    test 640 Equidistant 5: 05.0218°S, 005.0605°W, 05.0218°N, 005.0605°E\n    test 641 Equidistant 5: 0.00337268 (% of radius)\n    test 642 Equidistant 10: 10.0378°S, 010.3545°W, 10.0378°N, 010.3545°E\n    test 643 Equidistant 10: 0.00344677 (% of radius)\n    test 644 Equidistant: 27.303074°S, 000.114806°W Random +/- 45\n    test 645 Equidistant: 27.139544°S, 000.202037°W, 42.598888°N, 023.760304°E  d 20075.1 meter (iteration 4)\n    test 646 Equidistant: 27.152964°S, 000.217004°W, 38.368233°N, 040.200784°E  d 19471.6 meter (iteration 5)\n\n    testVincenty(pygeodesy.ellipsoidalVincenty, 25.05.26, datum='WGS84')\n    test 647 distanceTo: 866455.43292\n    test 648 toDatum: OSGB36\n    test 649 ValueError2: Ellipsoid 'Airy1830': incompatible with Ellipsoid 'WGS84'\n    test 650 isEllipsoidal: True\n    test 651 isSpherical: False\n    test 652 epsilon: 1e-12\n    test 653 iterations: 200\n    test 654 copy: True\n    test 655 isEllipsoidal: True\n    test 656 isSpherical: False\n    test 657 copy: 37°57′03.7203″S, 144°25′29.5244″E\n    test 658 epsilon: 2.220446049250e-16\n    test 659 iterations: 400\n    test 660 iteration: None\n\n    testKarneyVincenty(pygeodesy.ellipsoidalVincenty, 25.05.26, datum='WGS84')\n    test 661 coincident: 0.0\n    test 662 coincident: 0.0, 0.0, 0.0\n    test 663 destination: 37.6528°S, 143.9265°E\n    test 664 destination: True\n    test 665 destination2: 37.652821°S, 143.926496°E, 307.1736°NW\n    test 666 destination2: True\n    test 667 finalBearingOn: 307.1736°, 307°10′25.07″NW\n    test 668 distanceTo: 969954.166\n    test 669 distanceTo3: 969954.166314, 9.141877, 11.29722\n    test 670 distanceTo2: 972708.16174, 11.22502\n    test 671 initialBearingTo: 9.1419°, 9°08′30.76″N\n    test 672 destination: 58.64402°N, 003.07009°W\n    test 673 finalBearingTo: 11.2972°, 11°17′49.99″NNE\n    test 674 finalBearingOn: 11.2972°, 11°17′49.99″NNE\n    test 675 distanceTo: 404607.806\n    test 676 distanceTo3: 404607.805988, 156.11064, 157.8345\n    test 677 distanceTo2: 402574.597287, 157.726344\n    test 678 initialBearingTo: 156.1106°, 156°06′38.31″SSE\n    test 679 destination: 48.857°N, 002.351°E\n    test 680 finalBearingTo: 157.8345°, 157°50′04.2″SSE\n    test 681 finalBearingOn: 157.8345°, 157°50′04.2″SSE\n    test 682 distanceTo: 54973.295\n    test 683 distanceTo3: 54973.29527, 233.13008, 232.82461\n    test 684 distanceTo2: 54903.41209, 232.9209\n    test 685 initialBearingTo: 233.1301°, 233°07′48.28″SW\n    test 686 destination: 37.6528°N, 143.9265°E\n    test 687 finalBearingTo: 232.8246°, 232°49′28.59″SW\n    test 688 finalBearingOn: 232.8246°, 232°49′28.59″SW\n    test 689 distanceToMP: 298396.057\n    test 690 distanceToSM: 185.415\n    test 691 distanceToMP: 111319.491\n    test 692 distanceToMP: 110574.389  FAILED, KNOWN, expected 110574.361\n    test 693 distanceToKW: 222638.982\n    test 694 distanceToKW: 111319.491\n    test 695 distanceTo3: 54972.271\n    test 696 distanceTo3: 306°52′05.37″\n    test 697 distanceTo3: 307°10′25.07″\n    test 698 distanceTo2: 54902.390\n    test 699 distanceTo2: 307°04′38.41″\n\n    testKarneyVincentyError(pygeodesy.ellipsoidalVincenty, 25.05.26, datum='WGS84')\n    test 700 distanceTo/antipodal (182): 19936288.579\n    test 701 distanceTo/VincentyError (182): no convergence (0.00746541): epsilon (1e-12) and iterations (200), LatLon(00°00′00.0″N, 000°00′00.0″E) to LatLon(00°30′00.0″N, 179°42′00.0″E)  FAILED, KNOWN, expected no convergence: ...\n    test 702 initialBearingTo/VincentyError (182): no convergence (0.00746541): epsilon (1e-12) and iterations (200), LatLon(00°00′00.0″N, 000°00′00.0″E) to LatLon(00°30′00.0″N, 179°42′00.0″E)  FAILED, KNOWN, expected no convergence: ...\n    test 703 finalBearingTo/VincentyError (182): no convergence (0.00746541): epsilon (1e-12) and iterations (200), LatLon(00°00′00.0″N, 000°00′00.0″E) to LatLon(00°30′00.0″N, 179°42′00.0″E)  FAILED, KNOWN, expected no convergence: ...\n    test 704 distanceTo/equatorial (182): ambiguous: LatLon(00°00′00.0″N, 000°00′00.0″E) antipodal to LatLon(00°00′00.0″N, 180°00′00.0″E)  FAILED, KNOWN, expected ambiguous, ...\n    test 705 initialBearingTo/equatorial (182): ambiguous: LatLon(00°00′00.0″N, 000°00′00.0″E) antipodal to LatLon(00°00′00.0″N, 180°00′00.0″E)  FAILED, KNOWN, expected ambiguous, ...\n    test 706 distanceTo/coincident (5): 111319.491\n    test 707 distanceTo/meridional (1): 10001965.729\n    test 708 initialBearingTo/meridional (1): 180.0\n    test 709 distanceTo/coincident (1): 0.0\n    test 710 initialBearingTo/coincident (1): 0.0\n    test 711 finalBearingTo/coincident (1): 0.0\n    test 712 destination/coincident (1): 50.06632°N, 005.71475°W\n    test 713 distanceTo/anti-meridian (4): 10825924.1\n    test 714 distanceTo/quadrants (5): 4015703.02\n    test 715 distanceTo/quadrants (5): 4015703.02\n    test 716 distanceTo/quadrants (5): 4015703.02\n    test 717 distanceTo/quadrants (5): 4015703.02\n    test 718 distanceTo/quadrants (5): 4015703.02\n    test 719 distanceTo/quadrants (5): 4015703.02\n    test 720 distanceTo/quadrants (5): 4015703.02\n    test 721 distanceTo/quadrants (5): 4015703.02\n    test 722 distanceTo/quadrants (5): 4015703.02\n    test 723 distanceTo/quadrants (5): 4015703.02\n    test 724 distanceTo/quadrants (5): 4015703.02\n    test 725 distanceTo/quadrants (5): 4015703.02\n    test 726 distanceTo/quadrants (5): 4015703.02\n    test 727 distanceTo/quadrants (5): 4015703.02\n    test 728 distanceTo/quadrants (5): 4015703.02\n    test 729 distanceTo/quadrants (5): 4015703.02\n\n    testVincenty(pygeodesy.ellipsoidalVincenty, 25.05.26, datum='NAD83')\n    test 730 distanceTo: 866455.43292\n    test 731 toDatum: OSGB36\n    test 732 ValueError2: Ellipsoid 'Airy1830': incompatible with Ellipsoid 'GRS80'\n    test 733 isEllipsoidal: True\n    test 734 isSpherical: False\n    test 735 epsilon: 1e-12\n    test 736 iterations: 200\n    test 737 copy: True\n    test 738 isEllipsoidal: True\n    test 739 isSpherical: False\n    test 740 copy: 37°57′03.7203″S, 144°25′29.5244″E\n    test 741 epsilon: 2.220446049250e-16\n    test 742 iterations: 400\n    test 743 iteration: None\n\n    testKarneyVincenty(pygeodesy.ellipsoidalVincenty, 25.05.26, datum='NAD83')\n    test 744 coincident: 0.0\n    test 745 coincident: 0.0, 0.0, 0.0\n    test 746 destination: 37.6528°S, 143.9265°E\n    test 747 destination: True\n    test 748 destination2: 37.652821°S, 143.926496°E, 307.1736°NW\n    test 749 destination2: True\n    test 750 finalBearingOn: 307.1736°, 307°10′25.07″NW\n    test 751 distanceTo: 969954.166\n    test 752 distanceTo3: 969954.166314, 9.141877, 11.29722\n    test 753 distanceTo2: 972708.16174, 11.22502\n    test 754 initialBearingTo: 9.1419°, 9°08′30.76″N\n    test 755 destination: 58.64402°N, 003.07009°W\n    test 756 finalBearingTo: 11.2972°, 11°17′49.99″NNE\n    test 757 finalBearingOn: 11.2972°, 11°17′49.99″NNE\n    test 758 distanceTo: 404607.806\n    test 759 distanceTo3: 404607.805988, 156.11064, 157.8345\n    test 760 distanceTo2: 402574.597287, 157.726344\n    test 761 initialBearingTo: 156.1106°, 156°06′38.31″SSE\n    test 762 destination: 48.857°N, 002.351°E\n    test 763 finalBearingTo: 157.8345°, 157°50′04.2″SSE\n    test 764 finalBearingOn: 157.8345°, 157°50′04.2″SSE\n    test 765 distanceTo: 54973.295\n    test 766 distanceTo3: 54973.29527, 233.13008, 232.82461\n    test 767 distanceTo2: 54903.41209, 232.9209\n    test 768 initialBearingTo: 233.1301°, 233°07′48.28″SW\n    test 769 destination: 37.6528°N, 143.9265°E\n    test 770 finalBearingTo: 232.8246°, 232°49′28.59″SW\n    test 771 finalBearingOn: 232.8246°, 232°49′28.59″SW\n    test 772 distanceToMP: 298396.057\n    test 773 distanceToSM: 185.415\n    test 774 distanceToMP: 111319.491\n    test 775 distanceToMP: 110574.389  FAILED, KNOWN, expected 110574.361\n    test 776 distanceToKW: 222638.982\n    test 777 distanceToKW: 111319.491\n    test 778 distanceTo3: 54972.271\n    test 779 distanceTo3: 306°52′05.37″\n    test 780 distanceTo3: 307°10′25.07″\n    test 781 distanceTo2: 54902.390\n    test 782 distanceTo2: 307°04′38.41″\n\n    testKarneyVincentyError(pygeodesy.ellipsoidalVincenty, 25.05.26, datum='NAD83')\n    test 783 distanceTo/antipodal (182): 19936288.579\n    test 784 distanceTo/VincentyError (182): no convergence (0.00746541): epsilon (1e-12) and iterations (200), LatLon(00°00′00.0″N, 000°00′00.0″E) to LatLon(00°30′00.0″N, 179°42′00.0″E)  FAILED, KNOWN, expected no convergence: ...\n    test 785 initialBearingTo/VincentyError (182): no convergence (0.00746541): epsilon (1e-12) and iterations (200), LatLon(00°00′00.0″N, 000°00′00.0″E) to LatLon(00°30′00.0″N, 179°42′00.0″E)  FAILED, KNOWN, expected no convergence: ...\n    test 786 finalBearingTo/VincentyError (182): no convergence (0.00746541): epsilon (1e-12) and iterations (200), LatLon(00°00′00.0″N, 000°00′00.0″E) to LatLon(00°30′00.0″N, 179°42′00.0″E)  FAILED, KNOWN, expected no convergence: ...\n    test 787 distanceTo/equatorial (182): ambiguous: LatLon(00°00′00.0″N, 000°00′00.0″E) antipodal to LatLon(00°00′00.0″N, 180°00′00.0″E)  FAILED, KNOWN, expected ambiguous, ...\n    test 788 initialBearingTo/equatorial (182): ambiguous: LatLon(00°00′00.0″N, 000°00′00.0″E) antipodal to LatLon(00°00′00.0″N, 180°00′00.0″E)  FAILED, KNOWN, expected ambiguous, ...\n    test 789 distanceTo/coincident (5): 111319.491\n    test 790 distanceTo/meridional (1): 10001965.729\n    test 791 initialBearingTo/meridional (1): 180.0\n    test 792 distanceTo/coincident (1): 0.0\n    test 793 initialBearingTo/coincident (1): 0.0\n    test 794 finalBearingTo/coincident (1): 0.0\n    test 795 destination/coincident (1): 50.06632°N, 005.71475°W\n    test 796 distanceTo/anti-meridian (4): 10825924.1\n    test 797 distanceTo/quadrants (5): 4015703.02\n    test 798 distanceTo/quadrants (5): 4015703.02\n    test 799 distanceTo/quadrants (5): 4015703.02\n    test 800 distanceTo/quadrants (5): 4015703.02\n    test 801 distanceTo/quadrants (5): 4015703.02\n    test 802 distanceTo/quadrants (5): 4015703.02\n    test 803 distanceTo/quadrants (5): 4015703.02\n    test 804 distanceTo/quadrants (5): 4015703.02\n    test 805 distanceTo/quadrants (5): 4015703.02\n    test 806 distanceTo/quadrants (5): 4015703.02\n    test 807 distanceTo/quadrants (5): 4015703.02\n    test 808 distanceTo/quadrants (5): 4015703.02\n    test 809 distanceTo/quadrants (5): 4015703.02\n    test 810 distanceTo/quadrants (5): 4015703.02\n    test 811 distanceTo/quadrants (5): 4015703.02\n    test 812 distanceTo/quadrants (5): 4015703.02\n\n    testEllipsoidal(pygeodesy.ellipsoidalKarney, 25.05.27)\n    test 813 isEllipsoidal: True\n    test 814 isSpherical: False\n    test 815 isEllipsoidal: True\n    test 816 isSpherical: False\n    test 817 toDatum: 51.477284°N, 000.00002°E, -45.91m\n    test 818 toDatum: 51.4773°N, 000.0°E, -45.91m\n    test 819 toDatum: 51.4778°N, 000.0016°W\n    test 820 __matmul__: 51.477284°N, 000.00002°E, -45.91m\n    test 821 __matmul__: 51.477284°N, 000.00002°E, -45.90m\n    test 822 parse: 51.477284°N, 000.00002°E, -45.91m\n    test 823 reframe: None\n    test 824 toCartesian: [3980581.21, -111.159, 4966824.522]\n    test 825 toCss: -111.158797 5705242.333679\n    test 826 toCss: -111.158797 5705242.333679\n    test 827 toEcef: 3980581.21, -111.159, 4966824.522\n    test 828 toEtm: 30 N 916396 5720041\n    test 829 toEtm: 30 N 916396 5720041\n    test 830 toLcc: 5639901 4612638\n    test 831 toLcc: 5639901 4612638\n    test 832 toOsgr: TQ 38876 77320\n    test 833 toOsgr: TQ 38876 77320\n    test 834 toOsgrTM: TQ 38876 77320\n    test 835 toUtmUps: 30 N 708207 5707224\n    test 836 toUtm: 30 N 708207 5707224\n    test 837 toUtm: 30 N 708207 5707224\n    test 838 toWm: -178.111 6672799.209\n    test 839 toWm: -178.111 6672799.209\n    test 840 elevation2: None\n    test 841 geoidHeight2: None\n    test 842 toUtmUps: 30 N 708207 5707224\n    test 843 toUtm: 30 N 708207 5707224\n    test 844 toUtm: 30 N 708207 5707224\n    test 845 toUtmUps: 00 N 2000000 1333272\n    test 846 toUps: 00 N 2000000 1333272\n    test 847 toUps: 00 N 0 -666728\n    test 848 toUps: 00 N 2000000 1555732\n    test 849 toUtm: 31 N 459200 9217519\n    test 850 nearestOn: 32.81°N, 031.42°E\n    test 851 sat: 82.219069°N, 059.719736°E, -6353120.97m\n    test 852 dop: 51.998889°N, 004.373333°E, +134.64m\n    test 853 distance: 3802238.5049886242  FAILED, KNOWN, expected 3802238.504989\n    test 854 neareston8: (LatLon(45°00′00.0″N, 001°00′00.0″E), 4874369.98942, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E), 0.0, 0.0)\n    test 855 iteration: 0\n    test 856 neareston8: (LatLon(45°30′03.93″N, 020°00′00.0″E), 39078.779519, 1.501069, 2, LatLon(45°00′00.0″N, 020°00′00.0″E), LatLon(46°00′00.0″N, 020°00′00.0″E), 270.356041, 269.999412)\n    test 857 iteration: 1\n    test 858 intersecant2: 5.577e-14% 60 LatLon(03°18′54.69″S, 023°52′08.48″E)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 859 intersecant2: 1.394e-14% 60 LatLon(22°22′23.65″S, 007°55′54.49″E)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 860 intersecant2: 1.394e-13% 57 LatLon(10°39′24.95″N, 034°45′48.18″W)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 861 intersecant2: 1.673e-13% 57 LatLon(25°11′09.14″S, 005°10′35.44″W)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 862 intersecant2: 1.394e-14% 61 LatLon(10°14′21.91″S, 021°00′17.05″E)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 863 intersecant2: 8.366e-14% 61 LatLon(20°55′17.31″S, 010°40′21.43″E)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 864 intersecant2: center (LatLon(05°00′00.0″N, 005°00′00.0″W)), circle (3339584), end (LatLon(15°00′00.0″N, 045°00′00.0″E)), exact (False), start (LatLon(45°00′00.0″S, 015°00′00.0″W)) or wrap (False): 'too distant (3.69e+06) plumb to (16°56′45.9″S, 020°17′02.98″E)'\n    test 865 intersecant2: 9.761e-14% 57 LatLon(18°55′25.02″S, 023°34′47.88″W)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 866 intersecant2: 4.183e-14% 57 LatLon(00°03′42.32″S, 034°36′47.67″W)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 867 intersecant2: center (LatLon(05°00′00.0″N, 005°00′00.0″W)), circle (3339584), end (259.91797021566776), exact (False), start (LatLon(00°03′42.32″S, 034°36′47.67″W)) or wrap (False): 'too distant (1.9e+07) plumb to (03°55′20.22″N, 176°35′32.37″E)'\n    test 868 intersecant2: 1.813e-13% 68 LatLon(32°37′38.26″N, 017°53′42.75″W)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 869 intersecant2: 1.813e-13% 68 LatLon(25°19′49.07″N, 018°07′32.9″E)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 870 intersecant2: center (LatLon(05°00′00.0″N, 005°00′00.0″W)), circle (3339584), end (51.50099582921059), exact (False), start (LatLon(25°19′49.07″N, 018°07′32.9″E)) or wrap (False): 'too distant (5.04e+06) plumb to (36°14′36.93″S, 025°31′49.6″W)'\n    test 871 intersecant2: 1.394e-14% 65 LatLon(15°12′13.41″N, 033°43′39.28″W)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 872 intersecant2: 1.673e-13% 65 LatLon(33°51′15.76″N, 004°24′24.64″E)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 873 intersecant2: center (LatLon(05°00′00.0″N, 005°00′00.0″W)), circle (3339584), end (19.009326893417438), exact (False), start (LatLon(33°51′15.76″N, 004°24′24.64″E)) or wrap (False): 'no convergence (524288), tolerance (1.49012e-08) plumb to (02°15′15.46″S, 007°18′47.14″E)'\n\n    testLatLon(pygeodesy.ellipsoidalKarney, 25.05.27)\n    test 874 isEllipsoidal: True\n    test 875 isSpherical: False\n    test 876 lat/lonDMS: 52.20472°N, 000.14056°E\n    test 877 lat/lonDMS F_DM: 52°12.283′N, 000°08.434′E\n    test 878 lat/lonDMS F_DM: 52°12.2832′N, 000°08.4336′E\n    test 879 lat/lonDMS F_DMS: 52°12′17″N, 000°08′26″E\n    test 880 lat/lonDMS F_DMS: 52°12′17.0″N, 000°08′26.0″E\n    test 881 lat/lonDMS F_RAD: 0.911144N, 0.002453E\n    test 882 isequalTo: True\n    test 883 isequalTo: True\n    test 884 latlon2: 52.20472, 0.14056\n    test 885 latlon2: 52.2047, 0.1406\n    test 886 latlon2: 52.205, 0.141\n    test 887 latlon2: 52.2, 0.14\n    test 888 latlon2: 52.2, 0.1\n    test 889 latlon2: 52.0, 0.0\n    test 890 chordTo: 12029263.15\n    test 891 chordTo: 12029049.69\n    test 892 initialBearingTo: 156.1106\n    test 893 initialBearingTo: 65.9335\n    test 894 initialBearingTo: 0.0\n    test 895 initialBearingTo: 180.0\n    test 896 finalBearingTo: 157.8345\n    test 897 finalBearingTo: 93.9034\n    test 898 bearingTo2: 156.1106, 157.8345\n    test 899 ispolar: True\n    test 900 copy: True\n    test 901 __eq__: True\n    test 902 __ne__: False\n    test 903 equirectangularTo: 404329.56\n    test 904 distanceTo: 404607.805988\n    test 905 distanceTo: 404607.805988\n    test 906 distanceTo: 3981601\n    test 907 antipodal: False\n    test 908 distanceTo dateline: 19959679.267\n    test 909 distanceTo unrolled: 19959679.267\n    test 910 antipodal: False\n    test 911 distanceTo dateline: 9513998\n    test 912 distanceTo unrolled: 9513998\n    test 913 distanceTo: 18012714.66\n    test 914 distanceTo: 20003931.46\n    test 915 distanceTo3 dateline: 19959679.2674, 161.0677, 18.8252\n    test 916 distanceTo3 dateline: 9513997.9901, 42.9164, 138.8903\n    test 917 distanceTo3 dateline: 19959679.2674, 161.0677, 18.8252\n    test 918 distanceTo3 dateline: 9513997.9901, 42.9164, 138.8903\n    test 919 intermediateTo: 51.372275°N, 000.707253°E\n    test 920 intermediateTo: True\n    test 921 intermediateTo: 404607.806\n    test 922 intermediateTo+5: 35.139582°N, 008.994368°E\n    test 923 intermediateTo+5: 5.000\n    test 924 intermediateTo-4: 64.894124°N, 013.705689°W\n    test 925 intermediateTo-4: 4.000\n    test 926 intermediateTo-h: 125.000\n    test 927 midpointTo: 50.536583°N, 001.274507°E\n    test 928 destination: 51.513526°N, 000.098038°W\n    test 929 destination: 51°30′49″N, 000°05′53″W\n    test 930 destination: 33°57′N, 118°24′W\n    test 931 destination: 33.950367°N, 118.399012°W\n    test 932 destination: 0.592546N, 2.066453W\n    test 933 destination: 32.11195529°N, 064.56074722°E  FAILED, KNOWN, expected 32.11195529°N, 063.95925278°E\n    test 934 neareston6: (LatLon(45°00′00.0″N, 001°00′00.0″E), 4755443.4294, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E))\n    test 935 neareston6: (LatLon(45°30′03.94″N, 002°00′00.0″E), 39078.729285, 1.501072, 2, LatLon(45°00′00.0″N, 002°00′00.0″E), LatLon(46°00′00.0″N, 002°00′00.0″E))\n    test 936 chordTo: 125203.963\n    test 937 cosineAndoyerLambertTo: 125205.962\n    test 938 cosineAndoyerLambertTo: 125205.962\n    test 939 cosineForsyheAndoyerLambertTo: 125205.965\n    test 940 cosineForsyheAndoyerLambertTo: 125205.965\n    test 941 cosineLawTo: 124801.098\n    test 942 cosineLawTo: 124801.098\n    test 943 equirectangularTo: 124804.754\n    test 944 equirectangularTo: 124804.754\n    test 945 euclideanTo: 130015.089\n    test 946 euclideanTo: 130015.089\n    test 947 flatLocalTo: 125209.633\n    test 948 flatLocalTo: 125209.633\n    test 949 flatPolarTo: 133663.257\n    test 950 flatPolarTo: 133663.257\n    test 951 hartzell: 53.3206°N, 001.7297°W\n    test 952 hartzell: 53.349541°N, 001.7297°W\n    test 953 height4: 0.0\n    test 954 height4: (3820333.9, -115367.0, 5097204.4, -6584.9)\n    test 955 height4: 53°19′14.2″N, 001°43′46.9″W\n    test 956 height4: 53°19′14.2″N, 001°43′46.9″W\n    test 957 haversineTo: 124801.098\n    test 958 haversineTo: 124801.098\n    test 959 hubenyTo: <bound method LatLonBase.flatLocalTo of LatLon(53°19′14.16″N, 001°43′46.92″W)>\n    test 960 hubenyTo: <bound method LatLonBase.flatLocalTo of LatLon(53°11′19.32″N, 000°08′00.24″E)>\n    test 961 thomasTo: 125206.188\n    test 962 thomasTo: 125206.188\n    test 963 vincentysTo: 124801.098\n    test 964 vincentysTo: 124801.098\n    test 965 isclockwise: False\n    test 966 isclockwise*: False\n    test 967 isclockwise: True\n    test 968 isclockwise*: True\n    test 969 isclockwise: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 970 isclockwise*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 971 isclockwise: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 972 isclockwise*: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 973 isconvex: False\n    test 974 isconvex*: False\n    test 975 isconvex: True\n    test 976 isconvex*: True\n    test 977 isconvex: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 978 isconvex*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 979 isenclosedBy1: True\n    test 980 isenclosedBy1*: True\n    test 981 isenclosedBy2: False\n    test 982 isenclosedBy2*: False\n    test 983 isenclosedBy3: False\n    test 984 isenclosedBy3*: False\n    test 985 isenclosedBy4: False\n    test 986 isenclosedBy4*: False\n    test 987 isenclosedBy5: False\n    test 988 isenclosedBy5*: False\n    test 989 isenclosedBy6: True\n    test 990 isenclosedBy6*: True\n    test 991 isenclosedBy7: True\n    test 992 isenclosedBy7*: True\n    test 993 isenclosedBy-CCW: True\n    test 994 isenclosedBy-CW : True\n    test 995 isenclosedBy-CCW: True\n    test 996 initialBearingTo: 102.392291\n    test 997 compassAngleTo: 100.017\n    test 998 compassAngleTo: 105.599\n    test 999 initialBearingTo: 288.676039\n    test 1000 compassAngleTo: 280.017\n    test 1001 compassAngleTo: 285.599\n    test 1002 equirectangularTo: 592.185\n    test 1003 distanceTo: 593.571\n    test 1004 bearingTo: 0.0\n    test 1005 compassAngleTo: 0.0\n    test 1006 bearingTo: 45.2  FAILED, KNOWN, expected 45.0\n    test 1007 compassAngleTo: 45.0\n    test 1008 bearingTo: 90.0\n    test 1009 compassAngleTo: 90.0\n    test 1010 bearingTo: 180.0\n    test 1011 compassAngleTo: 180.0\n    test 1012 bearingTo: 225.2  FAILED, KNOWN, expected 225.0\n    test 1013 compassAngleTo: 225.0\n    test 1014 bearingTo: 314.8  FAILED, KNOWN, expected 315.0\n    test 1015 compassAngleTo: 315.0\n    test 1016 bearingTo: 270.0\n    test 1017 compassAngleTo: 270.0\n    test 1018 bearingTo: 0.0  FAILED, KNOWN, expected 359.4\n    test 1019 compassAngleTo: 359.4\n    test 1020 latlon2: (53.0, 1.0)\n    test 1021 philam2: (0.93, 0.02)\n    test 1022 bearingTo: 31\n    test 1023 compassAngleTo: 31\n    test 1024 compassAngleTo: 45\n\n    test 1025 boundsOf: <class 'pygeodesy.namedTuples.Bounds2Tuple'>\n    test 1026 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 1027 latlon2: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 1028 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 1029 isequalTo: <class 'bool'>\n    test 1030 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 1031 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 1032 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 1033 xyz3: <class 'tuple'>\n    test 1034 xyzh: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 1035 compassAngleTo: <class 'float'>\n    test 1036 cosineLawTo: <class 'float'>\n    test 1037 euclideanTo: <class 'float'>\n    test 1038 flatLocalTo: <class 'float'>\n    test 1039 flatPolarTo: <class 'float'>\n    test 1040 haversineTo: <class 'float'>\n    test 1041 hubenyTo: <class 'float'>\n    test 1042 vincentysTo: <class 'float'>\n    test 1043 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 1044 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 1045 toLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 1046 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 1047 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 1048 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 1049 toNvector: (0.615661, 0.0, 0.788011, 0)\n    test 1050 toVector: (3934960.466675, 0.0, 5002803.345483)\n    test 1051 toVector3d: (0.61823, 0.0, 0.786)\n\n    test 1052 trilaterate5 (pygeodesy.ellipsoidalKarney) .min: 305.091\n    test 1053 trilaterate5 (pygeodesy.ellipsoidalKarney) .point: 42.66933643°N, 002.48620262°E\n    test 1054 trilaterate5 (pygeodesy.ellipsoidalKarney) .max: 1592.545\n    test 1055 trilaterate5 (pygeodesy.ellipsoidalKarney) .point: 42.65141232°N, 002.46816989°E\n    test 1056 trilaterate5 (pygeodesy.ellipsoidalKarney) .n: 3\n    test 1057 trilaterate5 (pygeodesy.ellipsoidalKarney) .min: 127.229\n    test 1058 trilaterate5 (pygeodesy.ellipsoidalKarney) .max: 152.612\n    test 1059 trilaterate5 (pygeodesy.ellipsoidalKarney) .point: 42.67815375°N, 002.49950041°E\n    test 1060 trilaterate5 (pygeodesy.ellipsoidalKarney) .n: 2\n    test 1061 trilaterate5 (pygeodesy.ellipsoidalKarney) .min: 2400.293\n    test 1062 trilaterate5 (pygeodesy.ellipsoidalKarney) .max: 2400.293\n    test 1063 trilaterate5 (pygeodesy.ellipsoidalKarney) .point: 42.66128984°N, 002.47973818°E\n    test 1064 trilaterate5 (pygeodesy.ellipsoidalKarney) .min- is .maxPoint: True\n    test 1065 trilaterate5 (pygeodesy.ellipsoidalKarney) .n: 1\n    test 1066 trilaterate5 (pygeodesy.ellipsoidalKarney) .min: 1343.743\n    test 1067 trilaterate5 (pygeodesy.ellipsoidalKarney) .point: 42.69131964°N, 002.50112167°E\n    test 1068 trilaterate5 (pygeodesy.ellipsoidalKarney) .max: 1445.554\n    test 1069 trilaterate5 (pygeodesy.ellipsoidalKarney) .point: 42.67815375°N, 002.49950041°E\n    test 1070 trilaterate5 (pygeodesy.ellipsoidalKarney) .n: 2\n    test 1071 radii11: Radii11Tuple(rA=7244.792747, rB=1828.106695, rC=2.25502, cR=57792.067128, rIn=57.366968, riS=2.087668, roS=2.443334, a=1830.361715, b=7247.047766, c=9072.899442, s=9075.154461)\n    test 1072 circum3 (pygeodesy.ellipsoidalKarney) .radius: 57792.067\n    test 1073 circum3 (pygeodesy.ellipsoidalKarney) .center: 43.053532°N, 002.943255°E, -261.66m\n    test 1074 circum3 (pygeodesy.ellipsoidalKarney) .deltas: (-0.0, 0.0, 13.509)  FAILED, KNOWN, expected (0.0, 0.0, 11.383)\n    test 1075 circum3 (pygeodesy.ellipsoidalKarney) .d1: 57792.858\n    test 1076 circum3 (pygeodesy.ellipsoidalKarney) .d2: 57792.859\n    test 1077 circum3 (pygeodesy.ellipsoidalKarney) .d3: 57792.859\n    test 1078 circum3 (pygeodesy.ellipsoidalKarney) .datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 1079 circum3 (pygeodesy.ellipsoidalKarney) .Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n\n    test 1080 radii11: Radii11Tuple(rA=7244.792747, rB=1828.106695, rC=2.25502, cR=57792.067128, rIn=57.366968, riS=2.087668, roS=2.443334, a=1830.361715, b=7247.047766, c=9072.899442, s=9075.154461)\n    test 1081 circum4 (pygeodesy.ellipsoidalKarney) .radius: 3184256.748\n    test 1082 circum4 (pygeodesy.ellipsoidalKarney) .center: 43.054367°N, 002.942573°E, -3183993.92m\n    test 1083 circum4 (pygeodesy.ellipsoidalKarney) .rank: 3\n    test 1084 circum4 (pygeodesy.ellipsoidalKarney) .residuals: ()\n./pygeodesy/ellipsoidalKarney.py:347: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return _polygon(datum.ellipsoid.geodesic, points, closed, True, wrap, False)\n./pygeodesy/ellipsoidalKarney.py:266: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  a = _polygon(datum.ellipsoid.geodesic, points, True, False, wrap, polar)\n./test/testLatLon.py:276: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.ellipsoidalExact.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', p.cosineAndoyerLambertTo(q), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:277: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.ellipsoidalExact.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', q.cosineAndoyerLambertTo(p), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:279: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.ellipsoidalExact.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', p.cosineForsytheAndoyerLambertTo(q), '124801.098' if Sph else '125205.965', fmt='%.3f')\n./test/testLatLon.py:280: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.ellipsoidalExact.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', q.cosineForsytheAndoyerLambertTo(p), '124801.098' if Sph else '125205.965', fmt='%.3f')\n    test 1085 circum4 (pygeodesy.ellipsoidalKarney) .d1: 57818.033\n    test 1086 circum4 (pygeodesy.ellipsoidalKarney) .d2: 57834.176\n    test 1087 circum4 (pygeodesy.ellipsoidalKarney) .d3: 57830.992\n    test 1088 circum4 (pygeodesy.ellipsoidalKarney) .datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 1089 circum4 (pygeodesy.ellipsoidalKarney) .Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 1090 radii11: Radii11Tuple(rA=327537.482637, rB=776914.262482, rC=784245.052526, cR=780602.180901, rIn=325058.721103, riS=84975.664195, roS=INF, a=1561159.315008, b=1111782.535163, c=1104451.745119, s=1888696.797645)\n    test 1091 circin6 (pygeodesy.ellipsoidalKarney) .rB+rC: 1561159.315\n    test 1092 circin6 (pygeodesy.ellipsoidalKarney) .rC+pA: 1111782.535\n    test 1093 circin6 (pygeodesy.ellipsoidalKarney) .rA+rB: 1104451.745\n    test 1094 circin6 (pygeodesy.ellipsoidalKarney) .radius: 325058.721\n    test 1095 circin6 (pygeodesy.ellipsoidalKarney) .center: 02.948531°N, 002.932537°E, -40041.19m\n    test 1096 circin6 (pygeodesy.ellipsoidalKarney) .deltas: (0.0, 0.0, 0.417795)  FAILED, KNOWN, expected (0.0, 0.0, 0.090491)\n    test 1097 circin6 (pygeodesy.ellipsoidalKarney) .cA: 05.04314°N, 005.014578°E, -48104.09m\n    test 1098 circin6 (pygeodesy.ellipsoidalKarney) .cB: 00.0°N, 002.941713°E, -20168.62m\n    test 1099 circin6 (pygeodesy.ellipsoidalKarney) .cC: 02.961566°N, 000.0°E, -20113.46m\n    test 1100 circin6 (pygeodesy.ellipsoidalKarney) .dA: 327263.596\n    test 1101 circin6 (pygeodesy.ellipsoidalKarney) .dB: 326036.153\n    test 1102 circin6 (pygeodesy.ellipsoidalKarney) .dC: 326020.432\n\n    test 1103 area cw/ccw: 1.0\n\n    testNOAA(pygeodesy.ellipsoidalKarney, 25.05.27)\n    test 1104 NOAAexample1: 191872.1190, 249 03 16.4237, 67 59 11.1619\n    test 1105 NOAAexample2: 182009.1679, 254 42 44.6439, 73 09 21.3315\n    test 1106 NOAAexample3: 123456.7891, 245 00 34.7001, 64 20 24.6864\n    test 1107 NOAAexample4: 145239.0603, 114 29 26.9586, 295 21 32.6566\n\n    testIntersection3(pygeodesy.ellipsoidalKarney, 25.05.27)\n    test 1108 (30, 17): (LatLon(30°52′03.1″N, 015°30′38.41″E), 0, 0)\n    test 1109 (30, 17): (LatLon(30°52′03.1″N, 015°30′38.41″E), -1, 0)\n    test 1110 (-1,  3): (LatLon(01°34′52.49″N, 006°00′51.83″E), -1, -2)\n    test 1111 (-1,  3): (LatLon(01°34′52.49″N, 006°00′51.83″E), -1, 2)\n    test 1112 (65, 32): (LatLon(56°58′26.51″N, 032°00′00.0″E), 1, 0)\n    test 1113 (65, 32): (LatLon(56°58′26.51″N, 032°00′00.0″E), 1, 2)\n    test 1114 (-2, 17): <class 'pygeodesy.errors.IntersectionError'>\n    test 1115 (49, 25): (LatLon(49°00′00.0″N, 025°00′00.0″E), 1, -2)  FAILED, KNOWN, expected (LatLon(49°00′00.0″N, 025°00′00.0″E), 0, 0)\n    test 1116 #58: (LatLon(01°54′25.65″S, 005°37′48.76″E), 1, -2)\n    test 1117 #58: <class 'pygeodesy.errors.IntersectionError'>\n\n    testIntersections2(pygeodesy.ellipsoidalKarney, 25.05.27)\n    test 1118 EquidistantKarney: 36.9879°N, 088.1564°W, 38.2441°N, 092.3835°W\n    test 1119 EquidistantKarney: 36.9879°N, 088.1564°W, 38.2441°N, 092.3835°W\n    test 1120 EquidistantKarney: 00.0°N, 035.3478°W, 00.0°S, 035.3478°E\n    test 1121 EquidistantKarney: 1.63715 (% of radius)\n    test 1122 EquidistantKarney: 22.657°N, 000.0°E, 22.657°S, 000.0°E\n    test 1123 EquidistantKarney: 1.30663 (% of radius)\n    test 1124 EquidistantKarney: 29.4898°N, 040.1785°W, 29.4898°S, 040.1785°E\n    test 1125 EquidistantKarney: 1.31396 (% of radius)\n    test 1126 EquidistantKarney: 02.7402°S, 044.885°E, 02.7402°N, 044.885°E\n    test 1127 EquidistantKarney: 1.83268 (% of radius)\n    test 1128 EquidistantKarney 5: 05.0558°S, 005.0271°W, 05.0558°N, 005.0271°E\n    test 1129 EquidistantKarney 5: 4.18779e-16 (% of radius)\n    test 1130 EquidistantKarney 10: 10.1081°S, 010.2901°W, 10.1081°N, 010.2901°E\n    test 1131 EquidistantKarney 10: 8.37557e-16 (% of radius)\n    test 1132 EquidistantKarney: 31.554599°S, 000.027743°W Random +/- 45\n    test 1133 EquidistantKarney: 31.554599°S, 000.027743°W, 19.574927°S, 029.199121°W  d 2.97326e-09 meter (iteration 3)\n    test 1134 EquidistantKarney: 31.554599°S, 000.027743°W, 09.540929°S, 048.892091°W  d 1.11299e-09 meter (iteration 3)\n\n    testKarney(pygeodesy.ellipsoidalKarney, 25.05.27, datum='WGS84')\n    test 1135 distanceTo: 866455.4329\n    test 1136 coincident: 0.0\n    test 1137 toDatum: OSGB36\n    test 1138 ValueError2: Ellipsoid 'Airy1830': incompatible with Ellipsoid 'WGS84'\n    test 1139 isEllipsoidal: True\n    test 1140 copy: True\n    test 1141 isEllipsoidal: True\n    test 1142 isSpherical: False\n    test 1143 copy: 37°57′03.7203″S, 144°25′29.5244″E\n\n    testKarneyVincenty(pygeodesy.ellipsoidalKarney, 25.05.27, datum='WGS84')\n    test 1144 coincident: 0.0\n    test 1145 coincident: 0.0, 0.0, 0.0\n    test 1146 destination: 37.6528°S, 143.9265°E\n    test 1147 destination: True\n    test 1148 destination2: 37.652821°S, 143.926496°E, 307.1736°NW\n    test 1149 destination2: True\n    test 1150 finalBearingOn: 307.1736°, 307°10′25.07″NW\n    test 1151 distanceTo: 969954.166\n    test 1152 distanceTo3: 969954.166314, 9.141877, 11.29722\n    test 1153 distanceTo2: 972708.16174, 11.22502\n    test 1154 initialBearingTo: 9.1419°, 9°08′30.76″N\n    test 1155 destination: 58.64402°N, 003.07009°W\n    test 1156 finalBearingTo: 11.2972°, 11°17′49.99″NNE\n    test 1157 finalBearingOn: 11.2972°, 11°17′49.99″NNE\n    test 1158 distanceTo: 404607.806\n    test 1159 distanceTo3: 404607.805988, 156.11064, 157.8345\n    test 1160 distanceTo2: 402574.597287, 157.726344\n    test 1161 initialBearingTo: 156.1106°, 156°06′38.31″SSE\n    test 1162 destination: 48.857°N, 002.351°E\n    test 1163 finalBearingTo: 157.8345°, 157°50′04.2″SSE\n    test 1164 finalBearingOn: 157.8345°, 157°50′04.2″SSE\n    test 1165 distanceTo: 54973.295\n    test 1166 distanceTo3: 54973.29527, 233.13008, 232.82461\n    test 1167 distanceTo2: 54903.41209, 232.9209\n    test 1168 initialBearingTo: 233.1301°, 233°07′48.28″SW\n    test 1169 destination: 37.6528°N, 143.9265°E\n    test 1170 finalBearingTo: 232.8246°, 232°49′28.59″SW\n    test 1171 finalBearingOn: 232.8246°, 232°49′28.59″SW\n    test 1172 distanceToMP: 298396.057\n    test 1173 distanceToSM: 185.415\n    test 1174 distanceToMP: 111319.491\n    test 1175 distanceToMP: 110574.389  FAILED, KNOWN, expected 110574.361\n    test 1176 distanceToKW: 222638.982\n    test 1177 distanceToKW: 111319.491\n    test 1178 distanceTo3: 54972.271\n    test 1179 distanceTo3: 306°52′05.37″\n    test 1180 distanceTo3: 307°10′25.07″\n    test 1181 distanceTo2: 54902.390\n    test 1182 distanceTo2: 307°04′38.41″\n\n    testKarneyVincentyError(pygeodesy.ellipsoidalKarney, 25.05.27, datum='WGS84')\n    test 1183 distanceTo/antipodal (None): 19936288.579\n    test 1184 distanceTo/VincentyError (None): 19944127.421\n    test 1185 initialBearingTo/VincentyError (None): 15.556883\n    test 1186 finalBearingTo/VincentyError (None): 164.442514\n    test 1187 distanceTo/equatorial (None): 20003931.46\n    test 1188 initialBearingTo/equatorial (None): 0.0\n    test 1189 distanceTo/coincident (None): 111319.491\n    test 1190 distanceTo/meridional (None): 10001965.729\n    test 1191 initialBearingTo/meridional (None): 180.0\n    test 1192 distanceTo/coincident (None): 0.0\n    test 1193 initialBearingTo/coincident (None): 180.0\n    test 1194 finalBearingTo/coincident (None): 180.0\n    test 1195 destination/coincident (None): 50.06632°N, 005.71475°W\n    test 1196 distanceTo/anti-meridian (None): 10825924.1\n    test 1197 distanceTo/quadrants (None): 4015703.02\n    test 1198 distanceTo/quadrants (None): 4015703.02\n    test 1199 distanceTo/quadrants (None): 4015703.02\n    test 1200 distanceTo/quadrants (None): 4015703.02\n    test 1201 distanceTo/quadrants (None): 4015703.02\n    test 1202 distanceTo/quadrants (None): 4015703.02\n    test 1203 distanceTo/quadrants (None): 4015703.02\n    test 1204 distanceTo/quadrants (None): 4015703.02\n    test 1205 distanceTo/quadrants (None): 4015703.02\n    test 1206 distanceTo/quadrants (None): 4015703.02\n    test 1207 distanceTo/quadrants (None): 4015703.02\n    test 1208 distanceTo/quadrants (None): 4015703.02\n    test 1209 distanceTo/quadrants (None): 4015703.02\n    test 1210 distanceTo/quadrants (None): 4015703.02\n    test 1211 distanceTo/quadrants (None): 4015703.02\n    test 1212 distanceTo/quadrants (None): 4015703.02\n\n    testKarney(pygeodesy.ellipsoidalKarney, 25.05.27, datum='NAD83')\n    test 1213 distanceTo: 866455.4329\n    test 1214 coincident: 0.0\n    test 1215 toDatum: OSGB36\n    test 1216 ValueError2: Ellipsoid 'Airy1830': incompatible with Ellipsoid 'GRS80'\n    test 1217 isEllipsoidal: True\n    test 1218 copy: True\n    test 1219 isEllipsoidal: True\n    test 1220 isSpherical: False\n    test 1221 copy: 37°57′03.7203″S, 144°25′29.5244″E\n\n    testKarneyVincenty(pygeodesy.ellipsoidalKarney, 25.05.27, datum='NAD83')\n    test 1222 coincident: 0.0\n    test 1223 coincident: 0.0, 0.0, 0.0\n    test 1224 destination: 37.6528°S, 143.9265°E\n    test 1225 destination: True\n    test 1226 destination2: 37.652821°S, 143.926496°E, 307.1736°NW\n    test 1227 destination2: True\n    test 1228 finalBearingOn: 307.1736°, 307°10′25.07″NW\n    test 1229 distanceTo: 969954.166\n    test 1230 distanceTo3: 969954.166314, 9.141877, 11.29722\n    test 1231 distanceTo2: 972708.16174, 11.22502\n    test 1232 initialBearingTo: 9.1419°, 9°08′30.76″N\n    test 1233 destination: 58.64402°N, 003.07009°W\n    test 1234 finalBearingTo: 11.2972°, 11°17′49.99″NNE\n    test 1235 finalBearingOn: 11.2972°, 11°17′49.99″NNE\n    test 1236 distanceTo: 404607.806\n    test 1237 distanceTo3: 404607.805988, 156.11064, 157.8345\n    test 1238 distanceTo2: 402574.597287, 157.726344\n    test 1239 initialBearingTo: 156.1106°, 156°06′38.31″SSE\n    test 1240 destination: 48.857°N, 002.351°E\n    test 1241 finalBearingTo: 157.8345°, 157°50′04.2″SSE\n    test 1242 finalBearingOn: 157.8345°, 157°50′04.2″SSE\n    test 1243 distanceTo: 54973.295\n    test 1244 distanceTo3: 54973.29527, 233.13008, 232.82461\n    test 1245 distanceTo2: 54903.41209, 232.9209\n    test 1246 initialBearingTo: 233.1301°, 233°07′48.28″SW\n    test 1247 destination: 37.6528°N, 143.9265°E\n    test 1248 finalBearingTo: 232.8246°, 232°49′28.59″SW\n    test 1249 finalBearingOn: 232.8246°, 232°49′28.59″SW\n    test 1250 distanceToMP: 298396.057\n    test 1251 distanceToSM: 185.415\n    test 1252 distanceToMP: 111319.491\n    test 1253 distanceToMP: 110574.389  FAILED, KNOWN, expected 110574.361\n    test 1254 distanceToKW: 222638.982\n    test 1255 distanceToKW: 111319.491\n    test 1256 distanceTo3: 54972.271\n    test 1257 distanceTo3: 306°52′05.37″\n    test 1258 distanceTo3: 307°10′25.07″\n    test 1259 distanceTo2: 54902.390\n    test 1260 distanceTo2: 307°04′38.41″\n\n    testKarneyVincentyError(pygeodesy.ellipsoidalKarney, 25.05.27, datum='NAD83')\n    test 1261 distanceTo/antipodal (None): 19936288.579\n    test 1262 distanceTo/VincentyError (None): 19944127.421\n    test 1263 initialBearingTo/VincentyError (None): 15.556883\n    test 1264 finalBearingTo/VincentyError (None): 164.442514\n    test 1265 distanceTo/equatorial (None): 20003931.46\n    test 1266 initialBearingTo/equatorial (None): 0.0\n    test 1267 distanceTo/coincident (None): 111319.491\n    test 1268 distanceTo/meridional (None): 10001965.729\n    test 1269 initialBearingTo/meridional (None): 180.0\n    test 1270 distanceTo/coincident (None): 0.0\n    test 1271 initialBearingTo/coincident (None): 180.0\n    test 1272 finalBearingTo/coincident (None): 180.0\n    test 1273 destination/coincident (None): 50.06632°N, 005.71475°W\n    test 1274 distanceTo/anti-meridian (None): 10825924.1\n    test 1275 distanceTo/quadrants (None): 4015703.02\n    test 1276 distanceTo/quadrants (None): 4015703.02\n    test 1277 distanceTo/quadrants (None): 4015703.02\n    test 1278 distanceTo/quadrants (None): 4015703.02\n    test 1279 distanceTo/quadrants (None): 4015703.02\n    test 1280 distanceTo/quadrants (None): 4015703.02\n    test 1281 distanceTo/quadrants (None): 4015703.02\n    test 1282 distanceTo/quadrants (None): 4015703.02\n    test 1283 distanceTo/quadrants (None): 4015703.02\n    test 1284 distanceTo/quadrants (None): 4015703.02\n    test 1285 distanceTo/quadrants (None): 4015703.02\n    test 1286 distanceTo/quadrants (None): 4015703.02\n    test 1287 distanceTo/quadrants (None): 4015703.02\n    test 1288 distanceTo/quadrants (None): 4015703.02\n    test 1289 distanceTo/quadrants (None): 4015703.02\n    test 1290 distanceTo/quadrants (None): 4015703.02\n\n    testKarney_s(pygeodesy.ellipsoidalKarney, 25.05.27)\n    test 1291 .lat1: -41.320\n    test 1292 .lon1: 174.810\n    test 1293 .azi1: 161.067669986160\n    test 1294 .lat2: 40.960\n    test 1295 .lon2: -5.500\n    test 1296 .azi2: 18.825195123247\n    test 1297 .s12: 19959679.267353821546\n    test 1298 distanceTo3: 19959679.267354, 161.067670, 18.825195\n    test 1299 destination2: 40.96, -5.5, 18.825195123247\n    test 1300 areaOf: 1.366270368e+13\n    test 1301 perimeterOf: 1.683106789e+07\n    test 1302 isclockwise: False\n    test 1303 isclockwise: True\n    test 1304 areaCO: 2.69154549884e+11\n    test 1305 isclockwise: True\n    test 1306 perimeterCO: 2099854.381923\n\n    testEllipsoidal(pygeodesy.ellipsoidalExact, 25.08.28)\n    test 1307 isEllipsoidal: True\n    test 1308 isSpherical: False\n    test 1309 isEllipsoidal: True\n    test 1310 isSpherical: False\n    test 1311 toDatum: 51.477284°N, 000.00002°E, -45.91m\n    test 1312 toDatum: 51.4773°N, 000.0°E, -45.91m\n    test 1313 toDatum: 51.4778°N, 000.0016°W\n    test 1314 __matmul__: 51.477284°N, 000.00002°E, -45.91m\n    test 1315 __matmul__: 51.477284°N, 000.00002°E, -45.90m\n    test 1316 parse: 51.477284°N, 000.00002°E, -45.91m\n    test 1317 reframe: None\n    test 1318 toCartesian: [3980581.21, -111.159, 4966824.522]\n    test 1319 toCss: -111.158797 5705242.333679\n    test 1320 toCss: -111.158797 5705242.333679\n    test 1321 toEcef: 3980581.21, -111.159, 4966824.522\n    test 1322 toEtm: 30 N 916396 5720041\n    test 1323 toEtm: 30 N 916396 5720041\n    test 1324 toLcc: 5639901 4612638\n    test 1325 toLcc: 5639901 4612638\n    test 1326 toOsgr: TQ 38876 77320\n    test 1327 toOsgr: TQ 38876 77320\n    test 1328 toOsgrTM: TQ 38876 77320\n    test 1329 toUtmUps: 30 N 708207 5707224\n    test 1330 toUtm: 30 N 708207 5707224\n    test 1331 toUtm: 30 N 708207 5707224\n    test 1332 toWm: -178.111 6672799.209\n    test 1333 toWm: -178.111 6672799.209\n    test 1334 elevation2: None\n    test 1335 geoidHeight2: None\n    test 1336 toUtmUps: 30 N 708207 5707224\n    test 1337 toUtm: 30 N 708207 5707224\n    test 1338 toUtm: 30 N 708207 5707224\n    test 1339 toUtmUps: 00 N 2000000 1333272\n    test 1340 toUps: 00 N 2000000 1333272\n    test 1341 toUps: 00 N 0 -666728\n    test 1342 toUps: 00 N 2000000 1555732\n    test 1343 toUtm: 31 N 459200 9217519\n    test 1344 nearestOn: 32.81°N, 031.42°E\n    test 1345 sat: 82.219069°N, 059.719736°E, -6353120.97m\n    test 1346 dop: 51.998889°N, 004.373333°E, +134.64m\n    test 1347 distance: 3802238.5049886215  FAILED, KNOWN, expected 3802238.504989\n    test 1348 neareston8: (LatLon(45°00′00.0″N, 001°00′00.0″E), 4874369.98942, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E), 0.0, 0.0)\n    test 1349 iteration: 0\n    test 1350 neareston8: (LatLon(45°30′03.93″N, 020°00′00.0″E), 39078.779519, 1.501069, 2, LatLon(45°00′00.0″N, 020°00′00.0″E), LatLon(46°00′00.0″N, 020°00′00.0″E), 270.356041, 269.999412)\n    test 1351 iteration: 1\n    test 1352 nearestOn: 54.928536°N, 021.934843°W\n    test 1353 intersecant2: 2.789e-14% 60 LatLon(03°18′54.69″S, 023°52′08.48″E)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 1354 intersecant2: 1.394e-14% 60 LatLon(22°22′23.65″S, 007°55′54.49″E)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 1355 intersecant2: 1.255e-13% 57 LatLon(10°39′24.95″N, 034°45′48.18″W)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 1356 intersecant2: 1.673e-13% 57 LatLon(25°11′09.14″S, 005°10′35.44″W)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 1357 intersecant2: 1.394e-14% 61 LatLon(10°14′21.91″S, 021°00′17.05″E)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 1358 intersecant2: 5.577e-14% 61 LatLon(20°55′17.31″S, 010°40′21.43″E)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 1359 intersecant2: center (LatLon(05°00′00.0″N, 005°00′00.0″W)), circle (3339584), end (LatLon(15°00′00.0″N, 045°00′00.0″E)), exact (False), start (LatLon(45°00′00.0″S, 015°00′00.0″W)) or wrap (False): 'too distant (3.69e+06) plumb to (16°56′45.9″S, 020°17′02.98″E)'\n    test 1360 intersecant2: 1.673e-13% 59 LatLon(23°58′52.45″S, 013°36′47.6″W)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 1361 intersecant2: 9.761e-14% 59 LatLon(00°56′01.88″N, 034°46′25.3″W)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 1362 intersecant2: center (LatLon(05°00′00.0″N, 005°00′00.0″W)), circle (3339584), end (261.6509443327789), exact (False), start (LatLon(00°56′01.88″N, 034°46′25.3″W)) or wrap (False): 'no convergence (16384), tolerance (1.49012e-08) plumb to (06°36′51.3″N, 005°05′40.18″W)'\n    test 1363 intersecant2: 2.231e-13% 51 LatLon(34°34′03.9″N, 001°23′49.11″E)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 1364 intersecant2: 1.813e-13% 51 LatLon(24°26′17.94″S, 001°49′10.93″E)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 1365 intersecant2: center (LatLon(05°00′00.0″N, 005°00′00.0″W)), circle (3339584), end (166.3106279890565), exact (False), start (LatLon(24°26′17.94″S, 001°49′10.93″E)) or wrap (False): 'too distant (6.54e+06) plumb to (10°53′22.04″S, 051°49′07.42″E)'\n    test 1366 intersecant2: 2.789e-14% 62 LatLon(35°05′30.14″N, 007°12′10.33″W)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 1367 intersecant2: 2.231e-13% 62 LatLon(06°31′41.39″N, 035°07′02.34″W)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 1368 intersecant2: center (LatLon(05°00′00.0″N, 005°00′00.0″W)), circle (3339584), end (271.28443767376325), exact (False), start (LatLon(06°31′41.39″N, 035°07′02.34″W)) or wrap (False): 'too distant (1.91e+07) plumb to (03°26′03.82″N, 174°14′03.28″E)'\n\n    testLatLon(pygeodesy.ellipsoidalExact, 25.08.28)\n    test 1369 isEllipsoidal: True\n    test 1370 isSpherical: False\n    test 1371 lat/lonDMS: 52.20472°N, 000.14056°E\n    test 1372 lat/lonDMS F_DM: 52°12.283′N, 000°08.434′E\n    test 1373 lat/lonDMS F_DM: 52°12.2832′N, 000°08.4336′E\n    test 1374 lat/lonDMS F_DMS: 52°12′17″N, 000°08′26″E\n    test 1375 lat/lonDMS F_DMS: 52°12′17.0″N, 000°08′26.0″E\n    test 1376 lat/lonDMS F_RAD: 0.911144N, 0.002453E\n    test 1377 isequalTo: True\n    test 1378 isequalTo: True\n    test 1379 latlon2: 52.20472, 0.14056\n    test 1380 latlon2: 52.2047, 0.1406\n    test 1381 latlon2: 52.205, 0.141\n    test 1382 latlon2: 52.2, 0.14\n    test 1383 latlon2: 52.2, 0.1\n    test 1384 latlon2: 52.0, 0.0\n    test 1385 chordTo: 12029263.15\n    test 1386 chordTo: 12029049.69\n    test 1387 initialBearingTo: 156.1106\n    test 1388 initialBearingTo: 65.9335\n    test 1389 initialBearingTo: 0.0\n    test 1390 initialBearingTo: 180.0\n    test 1391 finalBearingTo: 157.8345\n    test 1392 finalBearingTo: 93.9034\n    test 1393 bearingTo2: 156.1106, 157.8345\n    test 1394 ispolar: True\n    test 1395 copy: True\n    test 1396 __eq__: True\n    test 1397 __ne__: False\n    test 1398 equirectangularTo: 404329.56\n    test 1399 distanceTo: 404607.805988\n    test 1400 distanceTo: 404607.805988\n    test 1401 distanceTo: 3981601\n    test 1402 antipodal: False\n    test 1403 distanceTo dateline: 19959679.267\n    test 1404 distanceTo unrolled: 19959679.267\n    test 1405 antipodal: False\n    test 1406 distanceTo dateline: 9513998\n    test 1407 distanceTo unrolled: 9513998\n    test 1408 distanceTo: 18012714.66\n    test 1409 distanceTo: 20003931.46\n    test 1410 distanceTo3 dateline: 19959679.2674, 161.0677, 18.8252\n    test 1411 distanceTo3 dateline: 9513997.9901, 42.9164, 138.8903\n    test 1412 distanceTo3 dateline: 19959679.2674, 161.0677, 18.8252\n    test 1413 distanceTo3 dateline: 9513997.9901, 42.9164, 138.8903\n    test 1414 intermediateTo: 51.372275°N, 000.707253°E\n    test 1415 intermediateTo: True\n    test 1416 intermediateTo: 404607.806\n    test 1417 intermediateTo+5: 35.139582°N, 008.994368°E\n    test 1418 intermediateTo+5: 5.000\n    test 1419 intermediateTo-4: 64.894124°N, 013.705689°W\n    test 1420 intermediateTo-4: 4.000\n    test 1421 intermediateTo-h: 125.000\n    test 1422 midpointTo: 50.536583°N, 001.274507°E\n    test 1423 destination: 51.513526°N, 000.098038°W\n    test 1424 destination: 51°30′49″N, 000°05′53″W\n    test 1425 destination: 33°57′N, 118°24′W\n    test 1426 destination: 33.950367°N, 118.399012°W\n    test 1427 destination: 0.592546N, 2.066453W\n    test 1428 destination: 32.11195529°N, 064.56074722°E  FAILED, KNOWN, expected 32.11195529°N, 063.95925278°E\n    test 1429 neareston6: (LatLon(45°00′00.0″N, 001°00′00.0″E), 4755443.4294, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E))\n    test 1430 neareston6: (LatLon(45°30′03.94″N, 002°00′00.0″E), 39078.729285, 1.501072, 2, LatLon(45°00′00.0″N, 002°00′00.0″E), LatLon(46°00′00.0″N, 002°00′00.0″E))\n    test 1431 chordTo: 125203.963\n    test 1432 cosineAndoyerLambertTo: 125205.962\n    test 1433 cosineAndoyerLambertTo: 125205.962\n    test 1434 cosineForsyheAndoyerLambertTo: 125205.965\n    test 1435 cosineForsyheAndoyerLambertTo: 125205.965\n    test 1436 cosineLawTo: 124801.098\n    test 1437 cosineLawTo: 124801.098\n    test 1438 equirectangularTo: 124804.754\n    test 1439 equirectangularTo: 124804.754\n    test 1440 euclideanTo: 130015.089\n    test 1441 euclideanTo: 130015.089\n    test 1442 flatLocalTo: 125209.633\n    test 1443 flatLocalTo: 125209.633\n    test 1444 flatPolarTo: 133663.257\n    test 1445 flatPolarTo: 133663.257\n    test 1446 hartzell: 53.3206°N, 001.7297°W\n    test 1447 hartzell: 53.349541°N, 001.7297°W\n    test 1448 height4: 0.0\n    test 1449 height4: (3820333.9, -115367.0, 5097204.4, -6584.9)\n    test 1450 height4: 53°19′14.2″N, 001°43′46.9″W\n    test 1451 height4: 53°19′14.2″N, 001°43′46.9″W\n    test 1452 haversineTo: 124801.098\n    test 1453 haversineTo: 124801.098\n    test 1454 hubenyTo: <bound method LatLonBase.flatLocalTo of LatLon(53°19′14.16″N, 001°43′46.92″W)>\n    test 1455 hubenyTo: <bound method LatLonBase.flatLocalTo of LatLon(53°11′19.32″N, 000°08′00.24″E)>\n    test 1456 thomasTo: 125206.188\n    test 1457 thomasTo: 125206.188\n    test 1458 vincentysTo: 124801.098\n    test 1459 vincentysTo: 124801.098\n    test 1460 isclockwise: False\n    test 1461 isclockwise*: False\n    test 1462 isclockwise: True\n    test 1463 isclockwise*: True\n    test 1464 isclockwise: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 1465 isclockwise*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 1466 isclockwise: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 1467 isclockwise*: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 1468 isconvex: False\n    test 1469 isconvex*: False\n    test 1470 isconvex: True\n    test 1471 isconvex*: True\n    test 1472 isconvex: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 1473 isconvex*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 1474 isenclosedBy1: True\n    test 1475 isenclosedBy1*: True\n    test 1476 isenclosedBy2: False\n    test 1477 isenclosedBy2*: False\n    test 1478 isenclosedBy3: False\n    test 1479 isenclosedBy3*: False\n    test 1480 isenclosedBy4: False\n    test 1481 isenclosedBy4*: False\n    test 1482 isenclosedBy5: False\n    test 1483 isenclosedBy5*: False\n    test 1484 isenclosedBy6: True\n    test 1485 isenclosedBy6*: True\n    test 1486 isenclosedBy7: True\n    test 1487 isenclosedBy7*: True\n    test 1488 isenclosedBy-CCW: True\n    test 1489 isenclosedBy-CW : True\n    test 1490 isenclosedBy-CCW: True\n    test 1491 initialBearingTo: 102.392291\n    test 1492 compassAngleTo: 100.017\n    test 1493 compassAngleTo: 105.599\n    test 1494 initialBearingTo: 288.676039\n    test 1495 compassAngleTo: 280.017\n    test 1496 compassAngleTo: 285.599\n    test 1497 equirectangularTo: 592.185\n    test 1498 distanceTo: 593.571\n    test 1499 bearingTo: 0.0\n    test 1500 compassAngleTo: 0.0\n    test 1501 bearingTo: 45.2  FAILED, KNOWN, expected 45.0\n    test 1502 compassAngleTo: 45.0\n    test 1503 bearingTo: 90.0\n    test 1504 compassAngleTo: 90.0\n    test 1505 bearingTo: 180.0\n    test 1506 compassAngleTo: 180.0\n    test 1507 bearingTo: 225.2  FAILED, KNOWN, expected 225.0\n    test 1508 compassAngleTo: 225.0\n    test 1509 bearingTo: 314.8  FAILED, KNOWN, expected 315.0\n    test 1510 compassAngleTo: 315.0\n    test 1511 bearingTo: 270.0\n    test 1512 compassAngleTo: 270.0\n    test 1513 bearingTo: 0.0  FAILED, KNOWN, expected 359.4\n    test 1514 compassAngleTo: 359.4\n    test 1515 latlon2: (53.0, 1.0)\n    test 1516 philam2: (0.93, 0.02)\n    test 1517 bearingTo: 31\n    test 1518 compassAngleTo: 31\n    test 1519 compassAngleTo: 45\n\n    test 1520 boundsOf: <class 'pygeodesy.namedTuples.Bounds2Tuple'>\n    test 1521 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 1522 latlon2: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 1523 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 1524 isequalTo: <class 'bool'>\n    test 1525 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 1526 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 1527 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 1528 xyz3: <class 'tuple'>\n    test 1529 xyzh: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 1530 compassAngleTo: <class 'float'>\n    test 1531 cosineLawTo: <class 'float'>\n    test 1532 euclideanTo: <class 'float'>\n    test 1533 flatLocalTo: <class 'float'>\n    test 1534 flatPolarTo: <class 'float'>\n    test 1535 haversineTo: <class 'float'>\n    test 1536 hubenyTo: <class 'float'>\n    test 1537 vincentysTo: <class 'float'>\n    test 1538 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 1539 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 1540 toLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 1541 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 1542 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 1543 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 1544 toNvector: (0.615661, 0.0, 0.788011, 0)\n    test 1545 toVector: (3934960.466675, 0.0, 5002803.345483)\n    test 1546 toVector3d: (0.61823, 0.0, 0.786)\n\n    test 1547 trilaterate5 (pygeodesy.ellipsoidalExact) .min: 305.091\n    test 1548 trilaterate5 (pygeodesy.ellipsoidalExact) .point: 42.66933643°N, 002.48620262°E\n    test 1549 trilaterate5 (pygeodesy.ellipsoidalExact) .max: 1592.545\n    test 1550 trilaterate5 (pygeodesy.ellipsoidalExact) .point: 42.65141232°N, 002.46816989°E\n    test 1551 trilaterate5 (pygeodesy.ellipsoidalExact) .n: 3\n    test 1552 trilaterate5 (pygeodesy.ellipsoidalExact) .min: 127.229\n    test 1553 trilaterate5 (pygeodesy.ellipsoidalExact) .max: 152.612\n    test 1554 trilaterate5 (pygeodesy.ellipsoidalExact) .point: 42.67815375°N, 002.49950041°E\n    test 1555 trilaterate5 (pygeodesy.ellipsoidalExact) .n: 2\n    test 1556 trilaterate5 (pygeodesy.ellipsoidalExact) .min: 2400.293\n    test 1557 trilaterate5 (pygeodesy.ellipsoidalExact) .max: 2400.293\n    test 1558 trilaterate5 (pygeodesy.ellipsoidalExact) .point: 42.66128984°N, 002.47973818°E\n    test 1559 trilaterate5 (pygeodesy.ellipsoidalExact) .min- is .maxPoint: True\n    test 1560 trilaterate5 (pygeodesy.ellipsoidalExact) .n: 1\n    test 1561 trilaterate5 (pygeodesy.ellipsoidalExact) .min: 1343.743\n    test 1562 trilaterate5 (pygeodesy.ellipsoidalExact) .point: 42.69131964°N, 002.50112167°E\n    test 1563 trilaterate5 (pygeodesy.ellipsoidalExact) .max: 1445.554\n    test 1564 trilaterate5 (pygeodesy.ellipsoidalExact) .point: 42.67815375°N, 002.49950041°E\n    test 1565 trilaterate5 (pygeodesy.ellipsoidalExact) .n: 2\n    test 1566 radii11: Radii11Tuple(rA=7244.792747, rB=1828.106695, rC=2.25502, cR=57792.067128, rIn=57.366968, riS=2.087668, roS=2.443334, a=1830.361715, b=7247.047766, c=9072.899442, s=9075.154461)\n    test 1567 circum3 (pygeodesy.ellipsoidalExact) .radius: 57792.067\n    test 1568 circum3 (pygeodesy.ellipsoidalExact) .center: 43.053532°N, 002.943255°E, -261.66m\n    test 1569 circum3 (pygeodesy.ellipsoidalExact) .deltas: (-0.0, 0.0, 13.509)  FAILED, KNOWN, expected (0.0, 0.0, 11.383)\n    test 1570 circum3 (pygeodesy.ellipsoidalExact) .d1: 57792.858\n    test 1571 circum3 (pygeodesy.ellipsoidalExact) .d2: 57792.859\n    test 1572 circum3 (pygeodesy.ellipsoidalExact) .d3: 57792.859\n    test 1573 circum3 (pygeodesy.ellipsoidalExact) .datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 1574 circum3 (pygeodesy.ellipsoidalExact) .Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n\n    test 1575 radii11: Radii11Tuple(rA=7244.792747, rB=1828.106695, rC=2.25502, cR=57792.067128, rIn=57.366968, riS=2.087668, roS=2.443334, a=1830.361715, b=7247.047766, c=9072.899442, s=9075.154461)\n    test 1576 circum4 (pygeodesy.ellipsoidalExact) .radius: 3184256.748\n    test 1577 circum4 (pygeodesy.ellipsoidalExact) .center: 43.054367°N, 002.942573°E, -3183993.92m\n    test 1578 circum4 (pygeodesy.ellipsoidalExact) .rank: 3\n    test 1579 circum4 (pygeodesy.ellipsoidalExact) .residuals: ()\n    test 1580 circum4 (pygeodesy.ellipsoidalExact) .d1: 57818.033\n    test 1581 circum4 (pygeodesy.ellipsoidalExact) .d2: 57834.176\n    test 1582 circum4 (pygeodesy.ellipsoidalExact) .d3: 57830.992\n    test 1583 circum4 (pygeodesy.ellipsoidalExact) .datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 1584 circum4 (pygeodesy.ellipsoidalExact) .Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 1585 radii11: Radii11Tuple(rA=327537.482637, rB=776914.262482, rC=784245.052526, cR=780602.180901, rIn=325058.721103, riS=84975.664195, roS=INF, a=1561159.315008, b=1111782.535163, c=1104451.745119, s=1888696.797645)\n    test 1586 circin6 (pygeodesy.ellipsoidalExact) .rB+rC: 1561159.315\n    test 1587 circin6 (pygeodesy.ellipsoidalExact) .rC+pA: 1111782.535\n    test 1588 circin6 (pygeodesy.ellipsoidalExact) .rA+rB: 1104451.745\n    test 1589 circin6 (pygeodesy.ellipsoidalExact) .radius: 325058.721\n    test 1590 circin6 (pygeodesy.ellipsoidalExact) .center: 02.948531°N, 002.932537°E, -40041.19m\n    test 1591 circin6 (pygeodesy.ellipsoidalExact) .deltas: (0.0, 0.0, 0.417795)  FAILED, KNOWN, expected (0.0, 0.0, 0.090491)\n    test 1592 circin6 (pygeodesy.ellipsoidalExact) .cA: 05.04314°N, 005.014578°E, -48104.09m\n    test 1593 circin6 (pygeodesy.ellipsoidalExact) .cB: 00.0°N, 002.941713°E, -20168.62m\n    test 1594 circin6 (pygeodesy.ellipsoidalExact) .cC: 02.961566°N, 000.0°E, -20113.46m\n    test 1595 circin6 (pygeodesy.ellipsoidalExact) .dA: 327263.596\n    test 1596 circin6 (pygeodesy.ellipsoidalExact) .dB: 326036.153\n    test 1597 circin6 (pygeodesy.ellipsoidalExact) .dC: 326020.432\n\n    test 1598 area cw/ccw: 1.0\n\n    testNOAA(pygeodesy.ellipsoidalExact, 25.08.28)\n    test 1599 NOAAexample1: 191872.1190, 249 03 16.4237, 67 59 11.1619\n    test 1600 NOAAexample2: 182009.1679, 254 42 44.6439, 73 09 21.3315\n    test 1601 NOAAexample3: 123456.7891, 245 00 34.7001, 64 20 24.6864\n    test 1602 NOAAexample4: 145239.0603, 114 29 26.9586, 295 21 32.6566\n\n    testIntersection3(pygeodesy.ellipsoidalExact, 25.08.28)\n    test 1603 (30, 17): (LatLon(30°52′03.1″N, 015°30′38.41″E), 0, 0)\n    test 1604 (30, 17): (LatLon(30°52′03.1″N, 015°30′38.41″E), -1, 0)\n    test 1605 (-1,  3): (LatLon(01°34′52.49″N, 006°00′51.83″E), -1, -2)\n    test 1606 (-1,  3): (LatLon(01°34′52.49″N, 006°00′51.83″E), -1, 2)\n    test 1607 (65, 32): (LatLon(56°58′26.51″N, 032°00′00.0″E), 1, 0)\n    test 1608 (65, 32): (LatLon(56°58′26.51″N, 032°00′00.0″E), 1, 2)\n    test 1609 (-2, 17): <class 'pygeodesy.errors.IntersectionError'>\n    test 1610 (49, 25): (LatLon(49°00′00.0″N, 025°00′00.0″E), 1, -2)  FAILED, KNOWN, expected (LatLon(49°00′00.0″N, 025°00′00.0″E), 0, 0)\n    test 1611 #58: (LatLon(01°54′25.65″S, 005°37′48.76″E), 1, -2)\n    test 1612 #58: <class 'pygeodesy.errors.IntersectionError'>\n    test 1613 intersection3: (LatLon(54°43′01.31″N, 014°33′49.88″W), 0, 0)\n    test 1614 intersection3: 54.71703°N, 014.563856°W\n\n    testIntersections2(pygeodesy.ellipsoidalExact, 25.08.28)\n    test 1615 EquidistantExact: 36.9879°N, 088.1564°W, 38.2441°N, 092.3835°W\n    test 1616 EquidistantExact: 36.9879°N, 088.1564°W, 38.2441°N, 092.3835°W\n    test 1617 EquidistantExact: 00.0°N, 035.3478°W, 00.0°N, 035.3478°E  FAILED, KNOWN, expected 00.0°N, 035.3478°W, 00.0°S, 035.3478°E\n    test 1618 EquidistantExact: 1.63715 (% of radius)\n    test 1619 EquidistantExact: 22.657°N, 000.0°W, 22.657°S, 000.0°E  FAILED, KNOWN, expected 22.657°N, 000.0°E, 22.657°S, 000.0°E\n    test 1620 EquidistantExact: 1.30663 (% of radius)\n    test 1621 EquidistantExact: 29.4898°N, 040.1785°W, 29.4898°S, 040.1785°E\n    test 1622 EquidistantExact: 1.31396 (% of radius)\n    test 1623 EquidistantExact: 02.7402°S, 044.885°E, 02.7402°N, 044.885°E\n    test 1624 EquidistantExact: 1.83268 (% of radius)\n    test 1625 EquidistantExact 5: 05.0558°S, 005.0271°W, 05.0558°N, 005.0271°E\n    test 1626 EquidistantExact 5: 4.39718e-15 (% of radius)\n    test 1627 EquidistantExact 10: 10.1081°S, 010.2901°W, 10.1081°N, 010.2901°E\n    test 1628 EquidistantExact 10: 1.25634e-15 (% of radius)\n    test 1629 EquidistantExact: 20.517328°N, 001.711348°W Random +/- 45\n    test 1630 EquidistantExact: 20.517328°N, 001.711348°W, 17.127481°N, 024.745384°E  d 4.77593e-09 meter (iteration 3)\n    test 1631 EquidistantExact: 20.517328°N, 001.711348°W, 02.590659°N, 054.06608°W  d 8.98568e-10 meter (iteration 3)\n\n    testKarney(pygeodesy.ellipsoidalExact, 25.08.28, datum='WGS84')\n    test 1632 distanceTo: 866455.4329\n    test 1633 coincident: 0.0\n    test 1634 toDatum: OSGB36\n    test 1635 ValueError2: Ellipsoid 'Airy1830': incompatible with Ellipsoid 'WGS84'\n    test 1636 isEllipsoidal: True\n    test 1637 copy: True\n    test 1638 isEllipsoidal: True\n    test 1639 isSpherical: False\n    test 1640 copy: 37°57′03.7203″S, 144°25′29.5244″E\n\n    testKarneyVincenty(pygeodesy.ellipsoidalExact, 25.08.28, datum='WGS84')\n    test 1641 coincident: 0.0\n    test 1642 coincident: 0.0, 0.0, 0.0\n    test 1643 destination: 37.6528°S, 143.9265°E\n    test 1644 destination: True\n    test 1645 destination2: 37.652821°S, 143.926496°E, 307.1736°NW\n    test 1646 destination2: True\n    test 1647 finalBearingOn: 307.1736°, 307°10′25.07″NW\n    test 1648 distanceTo: 969954.166\n    test 1649 distanceTo3: 969954.166314, 9.141877, 11.29722\n    test 1650 distanceTo2: 972708.16174, 11.22502\n    test 1651 initialBearingTo: 9.1419°, 9°08′30.76″N\n    test 1652 destination: 58.64402°N, 003.07009°W\n    test 1653 finalBearingTo: 11.2972°, 11°17′49.99″NNE\n    test 1654 finalBearingOn: 11.2972°, 11°17′49.99″NNE\n    test 1655 distanceTo: 404607.806\n    test 1656 distanceTo3: 404607.805988, 156.11064, 157.8345\n    test 1657 distanceTo2: 402574.597287, 157.726344\n    test 1658 initialBearingTo: 156.1106°, 156°06′38.31″SSE\n    test 1659 destination: 48.857°N, 002.351°E\n    test 1660 finalBearingTo: 157.8345°, 157°50′04.2″SSE\n    test 1661 finalBearingOn: 157.8345°, 157°50′04.2″SSE\n    test 1662 distanceTo: 54973.295\n    test 1663 distanceTo3: 54973.29527, 233.13008, 232.82461\n    test 1664 distanceTo2: 54903.41209, 232.9209\n    test 1665 initialBearingTo: 233.1301°, 233°07′48.28″SW\n    test 1666 destination: 37.6528°N, 143.9265°E\n    test 1667 finalBearingTo: 232.8246°, 232°49′28.59″SW\n    test 1668 finalBearingOn: 232.8246°, 232°49′28.59″SW\n    test 1669 distanceToMP: 298396.057\n    test 1670 distanceToSM: 185.415\n    test 1671 distanceToMP: 111319.491\n    test 1672 distanceToMP: 110574.389  FAILED, KNOWN, expected 110574.361\n    test 1673 distanceToKW: 222638.982\n    test 1674 distanceToKW: 111319.491\n    test 1675 distanceTo3: 54972.271\n    test 1676 distanceTo3: 306°52′05.37″\n    test 1677 distanceTo3: 307°10′25.07″\n    test 1678 distanceTo2: 54902.390\n    test 1679 distanceTo2: 307°04′38.41″\n\n    testKarneyVincentyError(pygeodesy.ellipsoidalExact, 25.08.28, datum='WGS84')\n    test 1680 distanceTo/antipodal (None): 19936288.579\n    test 1681 distanceTo/VincentyError (None): 19944127.421\n    test 1682 initialBearingTo/VincentyError (None): 15.556883\n    test 1683 finalBearingTo/VincentyError (None): 164.442514\n    test 1684 distanceTo/equatorial (None): 20001517.12  FAILED, KNOWN, expected 20003931.46\n    test 1685 initialBearingTo/equatorial (None): 0.0\n    test 1686 distanceTo/coincident (None): 111319.491\n    test 1687 distanceTo/meridional (None): 9999551.606\n    test 1688 initialBearingTo/meridional (None): 180.0\n    test 1689 distanceTo/coincident (None): 0.0\n    test 1690 initialBearingTo/coincident (None): 180.0\n    test 1691 finalBearingTo/coincident (None): 180.0\n    test 1692 destination/coincident (None): 50.06632°N, 005.71475°W\n    test 1693 distanceTo/anti-meridian (None): 10825924.1\n    test 1694 distanceTo/quadrants (None): 4015703.02\n    test 1695 distanceTo/quadrants (None): 4015703.02\n    test 1696 distanceTo/quadrants (None): 4015703.02\n    test 1697 distanceTo/quadrants (None): 4015703.02\n    test 1698 distanceTo/quadrants (None): 4015703.02\n    test 1699 distanceTo/quadrants (None): 4015703.02\n    test 1700 distanceTo/quadrants (None): 4015703.02\n    test 1701 distanceTo/quadrants (None): 4015703.02\n    test 1702 distanceTo/quadrants (None): 4015703.02\n    test 1703 distanceTo/quadrants (None): 4015703.02\n    test 1704 distanceTo/quadrants (None): 4015703.02\n    test 1705 distanceTo/quadrants (None): 4015703.02\n    test 1706 distanceTo/quadrants (None): 4015703.02\n    test 1707 distanceTo/quadrants (None): 4015703.02\n    test 1708 distanceTo/quadrants (None): 4015703.02\n    test 1709 distanceTo/quadrants (None): 4015703.02\n\n    testKarney(pygeodesy.ellipsoidalExact, 25.08.28, datum='NAD83')\n    test 1710 distanceTo: 866455.4329\n    test 1711 coincident: 0.0\n    test 1712 toDatum: OSGB36\n    test 1713 ValueError2: Ellipsoid 'Airy1830': incompatible with Ellipsoid 'GRS80'\n    test 1714 isEllipsoidal: True\n    test 1715 copy: True\n    test 1716 isEllipsoidal: True\n    test 1717 isSpherical: False\n    test 1718 copy: 37°57′03.7203″S, 144°25′29.5244″E\n\n    testKarneyVincenty(pygeodesy.ellipsoidalExact, 25.08.28, datum='NAD83')\n    test 1719 coincident: 0.0\n    test 1720 coincident: 0.0, 0.0, 0.0\n    test 1721 destination: 37.6528°S, 143.9265°E\n    test 1722 destination: True\n    test 1723 destination2: 37.652821°S, 143.926496°E, 307.1736°NW\n    test 1724 destination2: True\n    test 1725 finalBearingOn: 307.1736°, 307°10′25.07″NW\n    test 1726 distanceTo: 969954.166\n    test 1727 distanceTo3: 969954.166314, 9.141877, 11.29722\n    test 1728 distanceTo2: 972708.16174, 11.22502\n    test 1729 initialBearingTo: 9.1419°, 9°08′30.76″N\n    test 1730 destination: 58.64402°N, 003.07009°W\n    test 1731 finalBearingTo: 11.2972°, 11°17′49.99″NNE\n    test 1732 finalBearingOn: 11.2972°, 11°17′49.99″NNE\n    test 1733 distanceTo: 404607.806\n    test 1734 distanceTo3: 404607.805988, 156.11064, 157.8345\n    test 1735 distanceTo2: 402574.597287, 157.726344\n    test 1736 initialBearingTo: 156.1106°, 156°06′38.31″SSE\n    test 1737 destination: 48.857°N, 002.351°E\n    test 1738 finalBearingTo: 157.8345°, 157°50′04.2″SSE\n    test 1739 finalBearingOn: 157.8345°, 157°50′04.2″SSE\n    test 1740 distanceTo: 54973.295\n    test 1741 distanceTo3: 54973.29527, 233.13008, 232.82461\n    test 1742 distanceTo2: 54903.41209, 232.9209\n    test 1743 initialBearingTo: 233.1301°, 233°07′48.28″SW\n    test 1744 destination: 37.6528°N, 143.9265°E\n    test 1745 finalBearingTo: 232.8246°, 232°49′28.59″SW\n    test 1746 finalBearingOn: 232.8246°, 232°49′28.59″SW\n    test 1747 distanceToMP: 298396.057\n    test 1748 distanceToSM: 185.415\n    test 1749 distanceToMP: 111319.491\n    test 1750 distanceToMP: 110574.389  FAILED, KNOWN, expected 110574.361\n    test 1751 distanceToKW: 222638.982\n    test 1752 distanceToKW: 111319.491\n    test 1753 distanceTo3: 54972.271\n    test 1754 distanceTo3: 306°52′05.37″\n    test 1755 distanceTo3: 307°10′25.07″\n    test 1756 distanceTo2: 54902.390\n    test 1757 distanceTo2: 307°04′38.41″\n\n    testKarneyVincentyError(pygeodesy.ellipsoidalExact, 25.08.28, datum='NAD83')\n    test 1758 distanceTo/antipodal (None): 19936288.579\n    test 1759 distanceTo/VincentyError (None): 19944127.421\n    test 1760 initialBearingTo/VincentyError (None): 15.556883\n    test 1761 finalBearingTo/VincentyError (None): 164.442514\n    test 1762 distanceTo/equatorial (None): 20001517.12  FAILED, KNOWN, expected 20003931.46\n    test 1763 initialBearingTo/equatorial (None): 0.0\n    test 1764 distanceTo/coincident (None): 111319.491\n    test 1765 distanceTo/meridional (None): 9999551.606\n    test 1766 initialBearingTo/meridional (None): 180.0\n    test 1767 distanceTo/coincident (None): 0.0\n    test 1768 initialBearingTo/coincident (None): 180.0\n    test 1769 finalBearingTo/coincident (None): 180.0\n    test 1770 destination/coincident (None): 50.06632°N, 005.71475°W\n    test 1771 distanceTo/anti-meridian (None): 10825924.1\n    test 1772 distanceTo/quadrants (None): 4015703.02\n    test 1773 distanceTo/quadrants (None): 4015703.02\n    test 1774 distanceTo/quadrants (None): 4015703.02\n    test 1775 distanceTo/quadrants (None): 4015703.02\n    test 1776 distanceTo/quadrants (None): 4015703.02\n    test 1777 distanceTo/quadrants (None): 4015703.02\n    test 1778 distanceTo/quadrants (None): 4015703.02\n    test 1779 distanceTo/quadrants (None): 4015703.02\n    test 1780 distanceTo/quadrants (None): 4015703.02\n    test 1781 distanceTo/quadrants (None): 4015703.02\n    test 1782 distanceTo/quadrants (None): 4015703.02\n    test 1783 distanceTo/quadrants (None): 4015703.02\n    test 1784 distanceTo/quadrants (None): 4015703.02\n    test 1785 distanceTo/quadrants (None): 4015703.02\n    test 1786 distanceTo/quadrants (None): 4015703.02\n    test 1787 distanceTo/quadrants (None): 4015703.02\n\n    testKarney_s(pygeodesy.ellipsoidalExact, 25.08.28)\n    test 1788 .lat1: -41.320\n    test 1789 .lon1: 174.810\n    test 1790 .azi1: 161.067669986160\n    test 1791 .lat2: 40.960\n    test 1792 .lon2: -5.500\n    test 1793 .azi2: 18.825195123247\n    test 1794 .s12: 19959679.267353817821  FAILED, KNOWN, expected 19959679.267353821546\n    test 1795 distanceTo3: 19959679.267354, 161.067670, 18.825195\n    test 1796 destination2: 40.96, -5.5, 18.825195123247\n    test 1797 areaOf: 1.366270368e+13\n    test 1798 perimeterOf: 1.683089136e+07\n    test 1799 isclockwise: False\n    test 1800 isclockwise: True\n    test 1801 areaCO: 2.69154549884e+11\n    test 1802 isclockwise: True\n    test 1803 perimeterCO: 2099102.485159  FAILED, KNOWN, expected 2098430.887891\n\n    891 of 1803 testEllipsoidal.py tests (49.4%) FAILED, incl. 123 KNOWN plus 768 DeprecationWarnings, 32 skipped (pygeodesy 26.3.26 Python 3.11.9 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 1.24.2 scipy 1.10.1 Math 2 macOS 26.3.1 isLazy 0 -W  default) 14:30.409\nrunning /usr/local/bin/p....n3.11 -W default ~/PyGeodesy/test/testEllipsoidalGeodTest.py\n./pygeodesy/ellipsoidalKarney.py:94: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return self.datum.ellipsoid.geodesic\n\n    testing testEllipsoidalGeodTest.py 23.12.18 (module pygeodesy.ellipsoidalKarney 25.05.27)\n    test 1 line 1 lat: -48.164271\n    test 2 line 1 lon: 5.762345\n    test 3 line 1 fb: 175.334308\n    test 4 line 1 lat2: -48.164270779098\n    test 5 line 1 lon2: 5.762344694676  FAILED, KNOWN, expected 5.762344694677\n    test 6 line 1 azi2: 175.334308316285\n    test 7 line 1 lat2: -48.164270779098\n    test 8 line 1 lon2: 5.762344694676  FAILED, KNOWN, expected 5.762344694677\n    test 9 line 1 azi2: 175.334308316285\n    test 10 line 2 lat: -23.186513\n    test 11 line 2 lon: 68.567247\n    test 12 line 2 fb: 154.287114\n    test 13 line 2 lat2: -23.186512533703\n    test 14 line 2 lon2: 68.567247430960\n    test 15 line 2 azi2: 154.287114123872\n    test 16 line 2 lat2: -23.186512533703\n    test 17 line 2 lon2: 68.567247430960\n    test 18 line 2 azi2: 154.287114123872\n    test 19 line 3 lat: 53.997072\n    test 20 line 3 lon: 44.520619\n    test 21 line 3 fb: 52.159487\n    test 22 line 3 lat2: 53.997072295385\n    test 23 line 3 lon2: 44.520619105668\n    test 24 line 3 azi2: 52.159486739948\n    test 25 line 3 lat2: 53.997072295385\n    test 26 line 3 lon2: 44.520619105668\n    test 27 line 3 azi2: 52.159486739948\n    test 28 line 4 lat: -49.416672\n    test 29 line 4 lon: 166.828083\n    test 30 line 4 fb: 22.033031\n    test 31 line 4 lat2: -49.416672064706\n    test 32 line 4 lon2: 166.828083210689\n    test 33 line 4 azi2: 22.033030848249\n    test 34 line 4 lat2: -49.416672064706\n    test 35 line 4 lon2: 166.828083210689\n    test 36 line 4 azi2: 22.033030848249\n    test 37 line 5 lat: -60.405136\n    test 38 line 5 lon: 110.581140\n    test 39 line 5 fb: 75.518296\n    test 40 line 5 lat2: -60.405136414530\n    test 41 line 5 lon2: 110.581139538777\n    test 42 line 5 azi2: 75.518295964649\n    test 43 line 5 lat2: -60.405136414530\n    test 44 line 5 lon2: 110.581139538777\n    test 45 line 5 azi2: 75.518295964649\n    test 46 line 6 lat: -11.212600\n    test 47 line 6 lon: 144.177077\n    test 48 line 6 fb: 133.027766\n    test 49 line 6 lat2: -11.212600121556\n    test 50 line 6 lon2: 144.177076511360\n    test 51 line 6 azi2: 133.027766301029\n    test 52 line 6 lat2: -11.212600121556\n    test 53 line 6 lon2: 144.177076511360\n    test 54 line 6 azi2: 133.027766301029\n    test 55 line 7 lat: -6.529067\n    test 56 line 7 lon: 2.895924\n    test 57 line 7 fb: 178.740350\n    test 58 line 7 lat2: -6.529066987956\n    test 59 line 7 lon2: 2.895923948125\n    test 60 line 7 azi2: 178.740350145954\n    test 61 line 7 lat2: -6.529066987956\n    test 62 line 7 lon2: 2.895923948125\n    test 63 line 7 azi2: 178.740350145954\n    test 64 line 8 lat: -8.855512\n    test 65 line 8 lon: 112.749196\n    test 66 line 8 fb: 119.512004\n    test 67 line 8 lat2: -8.855512357257\n    test 68 line 8 lon2: 112.749196494485\n    test 69 line 8 azi2: 119.512003891282\n    test 70 line 8 lat2: -8.855512357257\n    test 71 line 8 lon2: 112.749196494485\n    test 72 line 8 azi2: 119.512003891282\n    test 73 line 9 lat: 29.866967\n    test 74 line 9 lon: 171.726893\n    test 75 line 9 fb: 171.662245\n    test 76 line 9 lat2: 29.866967483293\n    test 77 line 9 lon2: 171.726892560963\n    test 78 line 9 azi2: 171.662244609397\n    test 79 line 9 lat2: 29.866967483293\n    test 80 line 9 lon2: 171.726892560963\n    test 81 line 9 azi2: 171.662244609397\n    test 82 line 10 lat: -29.238404\n    test 83 line 10 lon: 133.459814\n    test 84 line 10 fb: 69.814124\n    test 85 line 10 lat2: -29.238404337998\n    test 86 line 10 lon2: 133.459813533284\n    test 87 line 10 azi2: 69.814124320813\n    test 88 line 10 lat2: -29.238404337998\n    test 89 line 10 lon2: 133.459813533284\n    test 90 line 10 azi2: 69.814124320813\n    test 91 line 11 lat: 55.600487\n    test 92 line 11 lon: 75.128743\n    test 93 line 11 fb: 153.896689\n    test 94 line 11 lat2: 55.600487151983\n    test 95 line 11 lon2: 75.128743229496  FAILED, KNOWN, expected 75.128743229495\n    test 96 line 11 azi2: 153.896688535572\n    test 97 line 11 lat2: 55.600487151983\n    test 98 line 11 lon2: 75.128743229496  FAILED, KNOWN, expected 75.128743229495\n    test 99 line 11 azi2: 153.896688535572\n    test 100 line 12 lat: -22.858435\n    test 101 line 12 lon: 67.207513\n    test 102 line 12 fb: 142.939529\n    test 103 line 12 lat2: -22.858434825399\n    test 104 line 12 lon2: 67.207513019332\n    test 105 line 12 azi2: 142.939529056687\n    test 106 line 12 lat2: -22.858434825399\n    test 107 line 12 lon2: 67.207513019332\n    test 108 line 12 azi2: 142.939529056687\n    test 109 line 13 lat: -32.634475\n    test 110 line 13 lon: 22.238523\n    test 111 line 13 fb: 172.112993\n    test 112 line 13 lat2: -32.634475461067\n    test 113 line 13 lon2: 22.238523021935\n    test 114 line 13 azi2: 172.112992582333\n    test 115 line 13 lat2: -32.634475461067\n    test 116 line 13 lon2: 22.238523021935\n    test 117 line 13 azi2: 172.112992582333\n    test 118 line 14 lat: 62.224985\n    test 119 line 14 lon: 47.119133\n    test 120 line 14 fb: 54.318105\n    test 121 line 14 lat2: 62.224984867045\n    test 122 line 14 lon2: 47.119133304525\n    test 123 line 14 azi2: 54.318105291965\n    test 124 line 14 lat2: 62.224984867045\n    test 125 line 14 lon2: 47.119133304525\n    test 126 line 14 azi2: 54.318105291965\n    test 127 line 15 lat: 33.069613\n    test 128 line 15 lon: 5.796996\n    test 129 line 15 fb: 17.403845\n    test 130 line 15 lat2: 33.069613195450\n    test 131 line 15 lon2: 5.796995960186\n    test 132 line 15 azi2: 17.403844642346\n    test 133 line 15 lat2: 33.069613195450\n    test 134 line 15 lon2: 5.796995960186\n    test 135 line 15 azi2: 17.403844642346\n    test 136 line 16 lat: 53.760900\n    test 137 line 16 lon: 119.204306\n    test 138 line 16 fb: 141.069793\n    test 139 line 16 lat2: 53.760899500985\n    test 140 line 16 lon2: 119.204305898518\n    test 141 line 16 azi2: 141.069793254983\n    test 142 line 16 lat2: 53.760899500985\n    test 143 line 16 lon2: 119.204305898518\n    test 144 line 16 azi2: 141.069793254983\n    test 145 line 17 lat: -3.225632\n    test 146 line 17 lon: 103.742354\n    test 147 line 17 fb: 127.880328\n    test 148 line 17 lat2: -3.225632004245\n    test 149 line 17 lon2: 103.742354347526\n    test 150 line 17 azi2: 127.880328388524\n    test 151 line 17 lat2: -3.225632004245\n    test 152 line 17 lon2: 103.742354347526\n    test 153 line 17 azi2: 127.880328388524\n    test 154 line 18 lat: 47.108712\n    test 155 line 18 lon: 99.934107\n    test 156 line 18 fb: 104.103491\n    test 157 line 18 lat2: 47.108712008353\n    test 158 line 18 lon2: 99.934107358387\n    test 159 line 18 azi2: 104.103491123038\n    test 160 line 18 lat2: 47.108712008353\n    test 161 line 18 lon2: 99.934107358387\n    test 162 line 18 azi2: 104.103491123038\n    test 163 line 19 lat: 5.399363\n    test 164 line 19 lon: 135.250064\n    test 165 line 19 fb: 102.177018\n    test 166 line 19 lat2: 5.399363208349\n    test 167 line 19 lon2: 135.250063670790\n    test 168 line 19 azi2: 102.177017677370\n    test 169 line 19 lat2: 5.399363208349\n    test 170 line 19 lon2: 135.250063670790\n    test 171 line 19 azi2: 102.177017677370\n    test 172 line 20 lat: -58.669225\n    test 173 line 20 lon: 54.875015\n    test 174 line 20 fb: 131.345308\n    test 175 line 20 lat2: -58.669224697403\n    test 176 line 20 lon2: 54.875014559502\n    test 177 line 20 azi2: 131.345308028428\n    test 178 line 20 lat2: -58.669224697403\n    test 179 line 20 lon2: 54.875014559502\n    test 180 line 20 azi2: 131.345308028428\n    test 181 line 21 lat: 9.184229\n    test 182 line 21 lon: 151.302637\n    test 183 line 21 fb: 128.175105\n    test 184 line 21 lat2: 9.184228666560\n    test 185 line 21 lon2: 151.302636871911\n    test 186 line 21 azi2: 128.175105446048\n    test 187 line 21 lat2: 9.184228666560\n    test 188 line 21 lon2: 151.302636871911\n    test 189 line 21 azi2: 128.175105446048\n    test 190 line 22 lat: 53.467940\n    test 191 line 22 lon: 67.724192\n    test 192 line 22 fb: 78.863492\n    test 193 line 22 lat2: 53.467939714247\n    test 194 line 22 lon2: 67.724192258333\n    test 195 line 22 azi2: 78.863492168727\n    test 196 line 22 lat2: 53.467939714247\n    test 197 line 22 lon2: 67.724192258333\n    test 198 line 22 azi2: 78.863492168727\n    test 199 line 23 lat: 39.699456\n    test 200 line 23 lon: 67.156325\n    test 201 line 23 fb: 85.276830\n    test 202 line 23 lat2: 39.699455912449\n    test 203 line 23 lon2: 67.156324625647\n    test 204 line 23 azi2: 85.276829539878\n    test 205 line 23 lat2: 39.699455912449\n    test 206 line 23 lon2: 67.156324625647\n    test 207 line 23 azi2: 85.276829539878\n    test 208 line 24 lat: 70.942602\n    test 209 line 24 lon: 17.379214\n    test 210 line 24 fb: 21.869008\n    test 211 line 24 lat2: 70.942602144324\n    test 212 line 24 lon2: 17.379213644124\n    test 213 line 24 azi2: 21.869008256312\n    test 214 line 24 lat2: 70.942602144324\n    test 215 line 24 lon2: 17.379213644124\n    test 216 line 24 azi2: 21.869008256312\n    test 217 line 25 lat: 69.633349\n    test 218 line 25 lon: 110.601933\n    test 219 line 25 fb: 138.575193\n    test 220 line 25 lat2: 69.633349004538\n    test 221 line 25 lon2: 110.601933261211\n    test 222 line 25 azi2: 138.575192608514\n    test 223 line 25 lat2: 69.633349004538\n    test 224 line 25 lon2: 110.601933261211\n    test 225 line 25 azi2: 138.575192608515  FAILED, KNOWN, expected 138.575192608514\n    test 226 line 26 lat: 16.190815\n    test 227 line 26 lon: 87.606993\n    test 228 line 26 fb: 131.929410\n    test 229 line 26 lat2: 16.190814826165\n    test 230 line 26 lon2: 87.606993293114\n    test 231 line 26 azi2: 131.929409507039\n    test 232 line 26 lat2: 16.190814826165\n    test 233 line 26 lon2: 87.606993293114\n    test 234 line 26 azi2: 131.929409507039\n    test 235 line 27 lat: 54.774905\n    test 236 line 27 lon: 52.952507\n    test 237 line 27 fb: 85.904051\n    test 238 line 27 lat2: 54.774904542264\n    test 239 line 27 lon2: 52.952506835523\n    test 240 line 27 azi2: 85.904050867676\n    test 241 line 27 lat2: 54.774904542264\n    test 242 line 27 lon2: 52.952506835523\n    test 243 line 27 azi2: 85.904050867676\n    test 244 line 28 lat: -62.008569\n    test 245 line 28 lon: 172.274877\n    test 246 line 28 fb: 21.992601\n    test 247 line 28 lat2: -62.008568677307\n    test 248 line 28 lon2: 172.274876714260\n    test 249 line 28 azi2: 21.992601380429\n    test 250 line 28 lat2: -62.008568677307\n    test 251 line 28 lon2: 172.274876714260\n    test 252 line 28 azi2: 21.992601380429\n    test 253 line 29 lat: 27.303730\n    test 254 line 29 lon: 159.184451\n    test 255 line 29 fb: 150.697920\n    test 256 line 29 lat2: 27.303729660018\n    test 257 line 29 lon2: 159.184451093393\n    test 258 line 29 azi2: 150.697920369703\n    test 259 line 29 lat2: 27.303729660018\n    test 260 line 29 lon2: 159.184451093393\n    test 261 line 29 azi2: 150.697920369703\n    test 262 line 30 lat: 31.979897\n    test 263 line 30 lon: 55.946759\n    test 264 line 30 fb: 87.398293\n    test 265 line 30 lat2: 31.979897342658\n    test 266 line 30 lon2: 55.946758945497\n    test 267 line 30 azi2: 87.398292964767\n    test 268 line 30 lat2: 31.979897342658\n    test 269 line 30 lon2: 55.946758945497\n    test 270 line 30 azi2: 87.398292964767\n    test 271 line 31 lat: 49.991468\n    test 272 line 31 lon: 133.962411\n    test 273 line 31 fb: 142.016540\n    test 274 line 31 lat2: 49.991467522545\n    test 275 line 31 lon2: 133.962411191467\n    test 276 line 31 azi2: 142.016540226251\n    test 277 line 31 lat2: 49.991467522545\n    test 278 line 31 lon2: 133.962411191467\n    test 279 line 31 azi2: 142.016540226251\n    test 280 line 32 lat: 2.818559\n    test 281 line 32 lon: 7.234774\n    test 282 line 32 fb: 168.804029\n    test 283 line 32 lat2: 2.818558842278\n    test 284 line 32 lon2: 7.234774421859\n    test 285 line 32 azi2: 168.804029404993\n    test 286 line 32 lat2: 2.818558842278\n    test 287 line 32 lon2: 7.234774421859\n    test 288 line 32 azi2: 168.804029404993\n    test 289 line 33 lat: -38.118071\n    test 290 line 33 lon: 93.395971\n    test 291 line 33 fb: 117.017377\n    test 292 line 33 lat2: -38.118070550305\n    test 293 line 33 lon2: 93.395971367720\n    test 294 line 33 azi2: 117.017376985228\n    test 295 line 33 lat2: -38.118070550305\n    test 296 line 33 lon2: 93.395971367720\n    test 297 line 33 azi2: 117.017376985228\n    test 298 line 34 lat: 3.377824\n    test 299 line 34 lon: 65.294746\n    test 300 line 34 fb: 138.982544\n    test 301 line 34 lat2: 3.377824468035\n    test 302 line 34 lon2: 65.294745963255\n    test 303 line 34 azi2: 138.982543784560\n    test 304 line 34 lat2: 3.377824468035\n    test 305 line 34 lon2: 65.294745963255\n    test 306 line 34 azi2: 138.982543784560\n    test 307 line 35 lat: 4.631157\n    test 308 line 35 lon: 84.335045\n    test 309 line 35 fb: 132.120804\n    test 310 line 35 lat2: 4.631157299024\n    test 311 line 35 lon2: 84.335044694540\n    test 312 line 35 azi2: 132.120804319474\n    test 313 line 35 lat2: 4.631157299024\n    test 314 line 35 lon2: 84.335044694540\n    test 315 line 35 azi2: 132.120804319474\n    test 316 line 36 lat: 38.952215\n    test 317 line 36 lon: 133.416463\n    test 318 line 36 fb: 160.690586\n    test 319 line 36 lat2: 38.952215219507\n    test 320 line 36 lon2: 133.416463103113\n    test 321 line 36 azi2: 160.690585690749\n    test 322 line 36 lat2: 38.952215219507\n    test 323 line 36 lon2: 133.416463103113\n    test 324 line 36 azi2: 160.690585690749\n    test 325 line 37 lat: -39.013297\n    test 326 line 37 lon: 160.302849\n    test 327 line 37 fb: 115.363715\n    test 328 line 37 lat2: -39.013296805131\n    test 329 line 37 lon2: 160.302849365986\n    test 330 line 37 azi2: 115.363714797610\n    test 331 line 37 lat2: -39.013296805131\n    test 332 line 37 lon2: 160.302849365986\n    test 333 line 37 azi2: 115.363714797610\n    test 334 line 38 lat: -48.456093\n    test 335 line 38 lon: 38.613822\n    test 336 line 38 fb: 137.651668\n    test 337 line 38 lat2: -48.456093143589\n    test 338 line 38 lon2: 38.613821719886\n    test 339 line 38 azi2: 137.651668464815\n    test 340 line 38 lat2: -48.456093143589\n    test 341 line 38 lon2: 38.613821719886\n    test 342 line 38 azi2: 137.651668464815\n    test 343 line 39 lat: -13.861956\n    test 344 line 39 lon: 74.250572\n    test 345 line 39 fb: 143.968262\n    test 346 line 39 lat2: -13.861956131519\n    test 347 line 39 lon2: 74.250571564776\n    test 348 line 39 azi2: 143.968262419705\n    test 349 line 39 lat2: -13.861956131519\n    test 350 line 39 lon2: 74.250571564776\n    test 351 line 39 azi2: 143.968262419705\n    test 352 line 40 lat: 25.289202\n    test 353 line 40 lon: 47.063579\n    test 354 line 40 fb: 78.672533\n    test 355 line 40 lat2: 25.289201968371\n    test 356 line 40 lon2: 47.063578519727\n    test 357 line 40 azi2: 78.672532588106\n    test 358 line 40 lat2: 25.289201968371\n    test 359 line 40 lon2: 47.063578519727\n    test 360 line 40 azi2: 78.672532588106\n    test 361 line 41 lat: 49.498121\n    test 362 line 41 lon: 131.993365\n    test 363 line 41 fb: 157.425605\n    test 364 line 41 lat2: 49.498121110507\n    test 365 line 41 lon2: 131.993365399320\n    test 366 line 41 azi2: 157.425605424890\n    test 367 line 41 lat2: 49.498121110507\n    test 368 line 41 lon2: 131.993365399320\n    test 369 line 41 azi2: 157.425605424890\n    test 370 line 42 lat: -2.104242\n    test 371 line 42 lon: 56.532079\n    test 372 line 42 fb: 129.406955\n    test 373 line 42 lat2: -2.104241718494\n    test 374 line 42 lon2: 56.532079408825\n    test 375 line 42 azi2: 129.406954892035\n    test 376 line 42 lat2: -2.104241718494\n    test 377 line 42 lon2: 56.532079408825\n    test 378 line 42 azi2: 129.406954892035\n    test 379 line 43 lat: -39.997315\n    test 380 line 43 lon: 49.004259\n    test 381 line 43 fb: 135.432995\n    test 382 line 43 lat2: -39.997315471629\n    test 383 line 43 lon2: 49.004258662721\n    test 384 line 43 azi2: 135.432994751523\n    test 385 line 43 lat2: -39.997315471629\n    test 386 line 43 lon2: 49.004258662721\n    test 387 line 43 azi2: 135.432994751523\n    test 388 line 44 lat: 9.333272\n    test 389 line 44 lon: 98.670857\n    test 390 line 44 fb: 120.694280\n    test 391 line 44 lat2: 9.333271992381\n    test 392 line 44 lon2: 98.670857333200\n    test 393 line 44 azi2: 120.694280236304\n    test 394 line 44 lat2: 9.333271992381\n    test 395 line 44 lon2: 98.670857333200\n    test 396 line 44 azi2: 120.694280236304\n    test 397 line 45 lat: 38.653646\n    test 398 line 45 lon: 136.060468\n    test 399 line 45 fb: 152.489416\n    test 400 line 45 lat2: 38.653646179484\n    test 401 line 45 lon2: 136.060467518677\n    test 402 line 45 azi2: 152.489415748331\n    test 403 line 45 lat2: 38.653646179484\n    test 404 line 45 lon2: 136.060467518677\n    test 405 line 45 azi2: 152.489415748331\n    test 406 line 46 lat: -4.564995\n    test 407 line 46 lon: 166.894968\n    test 408 line 46 fb: 127.520036\n    test 409 line 46 lat2: -4.564994956240\n    test 410 line 46 lon2: 166.894968092836\n    test 411 line 46 azi2: 127.520036113641\n    test 412 line 46 lat2: -4.564994956240\n    test 413 line 46 lon2: 166.894968092836\n    test 414 line 46 azi2: 127.520036113641\n    test 415 line 47 lat: -38.522500\n    test 416 line 47 lon: 178.679307\n    test 417 line 47 fb: 176.468685\n    test 418 line 47 lat2: -38.522500159620\n    test 419 line 47 lon2: 178.679306959466\n    test 420 line 47 azi2: 176.468684587438\n    test 421 line 47 lat2: -38.522500159620\n    test 422 line 47 lon2: 178.679306959466\n    test 423 line 47 azi2: 176.468684587438\n    test 424 line 48 lat: 45.529796\n    test 425 line 48 lon: 145.048738\n    test 426 line 48 fb: 160.706227\n    test 427 line 48 lat2: 45.529795503687  FAILED, KNOWN, expected 45.529795503688\n    test 428 line 48 lon2: 145.048737846273\n    test 429 line 48 azi2: 160.706226714169\n    test 430 line 48 lat2: 45.529795503688\n    test 431 line 48 lon2: 145.048737846273\n    test 432 line 48 azi2: 160.706226714169\n    test 433 line 49 lat: -2.968925\n    test 434 line 49 lon: 5.044083\n    test 435 line 49 fb: 174.913528\n    test 436 line 49 lat2: -2.968924563433\n    test 437 line 49 lon2: 5.044082955485\n    test 438 line 49 azi2: 174.913527615338\n    test 439 line 49 lat2: -2.968924563433\n    test 440 line 49 lon2: 5.044082955485\n    test 441 line 49 azi2: 174.913527615338\n    test 442 line 50 lat: 1.618184\n    test 443 line 50 lon: 163.262955\n    test 444 line 50 fb: 161.097730\n    test 445 line 50 lat2: 1.618184178387\n    test 446 line 50 lon2: 163.262955108028\n    test 447 line 50 azi2: 161.097729713868\n    test 448 line 50 lat2: 1.618184178387\n    test 449 line 50 lon2: 163.262955108028\n    test 450 line 50 azi2: 161.097729713868\n    test 451 line 51 lat: 25.179740\n    test 452 line 51 lon: 107.504992\n    test 453 line 51 fb: 154.055552\n    test 454 line 51 lat2: 25.179740339437\n    test 455 line 51 lon2: 107.504991932892\n    test 456 line 51 azi2: 154.055552232572\n    test 457 line 51 lat2: 25.179740339437\n    test 458 line 51 lon2: 107.504991932892\n    test 459 line 51 azi2: 154.055552232572\n    test 460 line 52 lat: 57.391251\n    test 461 line 52 lon: 89.082271\n    test 462 line 52 fb: 101.276115\n    test 463 line 52 lat2: 57.391251345244\n    test 464 line 52 lon2: 89.082271206722\n    test 465 line 52 azi2: 101.276114553753\n    test 466 line 52 lat2: 57.391251345244\n    test 467 line 52 lon2: 89.082271206722\n    test 468 line 52 azi2: 101.276114553753\n    test 469 line 53 lat: -11.470673\n    test 470 line 53 lon: 48.285095\n    test 471 line 53 fb: 148.389696\n    test 472 line 53 lat2: -11.470672507979\n    test 473 line 53 lon2: 48.285094684225\n    test 474 line 53 azi2: 148.389695684750\n    test 475 line 53 lat2: -11.470672507979\n    test 476 line 53 lon2: 48.285094684225\n    test 477 line 53 azi2: 148.389695684750\n    test 478 line 54 lat: 27.356639\n    test 479 line 54 lon: 84.391682\n    test 480 line 54 fb: 104.661818\n    test 481 line 54 lat2: 27.356639349123\n    test 482 line 54 lon2: 84.391681754671\n    test 483 line 54 azi2: 104.661818309238\n    test 484 line 54 lat2: 27.356639349123\n    test 485 line 54 lon2: 84.391681754671\n    test 486 line 54 azi2: 104.661818309238\n    test 487 line 55 lat: -40.533598\n    test 488 line 55 lon: 103.488381\n    test 489 line 55 fb: 132.398259\n    test 490 line 55 lat2: -40.533597900971\n    test 491 line 55 lon2: 103.488381204009\n    test 492 line 55 azi2: 132.398259207371\n    test 493 line 55 lat2: -40.533597900971\n    test 494 line 55 lon2: 103.488381204009\n    test 495 line 55 azi2: 132.398259207371\n    test 496 line 56 lat: 52.337949\n    test 497 line 56 lon: 149.908279\n    test 498 line 56 fb: 162.333474\n    test 499 line 56 lat2: 52.337949466457\n    test 500 line 56 lon2: 149.908278798430\n    test 501 line 56 azi2: 162.333474334205\n    test 502 line 56 lat2: 52.337949466457\n    test 503 line 56 lon2: 149.908278798430\n    test 504 line 56 azi2: 162.333474334205\n    test 505 line 57 lat: -58.474076\n    test 506 line 57 lon: 78.718606\n    test 507 line 57 fb: 117.457565\n    test 508 line 57 lat2: -58.474075605820\n    test 509 line 57 lon2: 78.718605560533\n    test 510 line 57 azi2: 117.457565115569\n    test 511 line 57 lat2: -58.474075605820\n    test 512 line 57 lon2: 78.718605560533\n    test 513 line 57 azi2: 117.457565115569\n    test 514 line 58 lat: -35.840568\n    test 515 line 58 lon: 4.157534\n    test 516 line 58 fb: 174.451067\n    test 517 line 58 lat2: -35.840568348239\n    test 518 line 58 lon2: 4.157534199470\n    test 519 line 58 azi2: 174.451066901814\n    test 520 line 58 lat2: -35.840568348239\n    test 521 line 58 lon2: 4.157534199470\n    test 522 line 58 azi2: 174.451066901814\n    test 523 line 59 lat: 15.629163\n    test 524 line 59 lon: 102.677417\n    test 525 line 59 fb: 103.482103\n    test 526 line 59 lat2: 15.629163409998\n    test 527 line 59 lon2: 102.677417064290  FAILED, KNOWN, expected 102.677417064289\n    test 528 line 59 azi2: 103.482102722183\n    test 529 line 59 lat2: 15.629163409998\n    test 530 line 59 lon2: 102.677417064290  FAILED, KNOWN, expected 102.677417064289\n    test 531 line 59 azi2: 103.482102722183\n    test 532 line 60 lat: -1.256180\n    test 533 line 60 lon: 133.625255\n    test 534 line 60 fb: 104.470489\n    test 535 line 60 lat2: -1.256179633151\n    test 536 line 60 lon2: 133.625254783633\n    test 537 line 60 azi2: 104.470489013739\n    test 538 line 60 lat2: -1.256179633151\n    test 539 line 60 lon2: 133.625254783633\n    test 540 line 60 azi2: 104.470489013739\n    test 541 line 61 lat: -40.558253\n    test 542 line 61 lon: 112.897054\n    test 543 line 61 fb: 90.226134\n    test 544 line 61 lat2: -40.558252601871\n    test 545 line 61 lon2: 112.897053867085\n    test 546 line 61 azi2: 90.226134266467\n    test 547 line 61 lat2: -40.558252601871\n    test 548 line 61 lon2: 112.897053867085\n    test 549 line 61 azi2: 90.226134266467\n    test 550 line 62 lat: 86.193596\n    test 551 line 62 lon: 116.956880\n    test 552 line 62 fb: 117.618329\n    test 553 line 62 lat2: 86.193595821107\n    test 554 line 62 lon2: 116.956880430711\n    test 555 line 62 azi2: 117.618329340274\n    test 556 line 62 lat2: 86.193595821107\n    test 557 line 62 lon2: 116.956880430711\n    test 558 line 62 azi2: 117.618329340274\n    test 559 line 63 lat: 6.874181\n    test 560 line 63 lon: 54.891199\n    test 561 line 63 fb: 90.820790\n    test 562 line 63 lat2: 6.874181093562\n    test 563 line 63 lon2: 54.891198619261\n    test 564 line 63 azi2: 90.820789878786\n    test 565 line 63 lat2: 6.874181093562\n    test 566 line 63 lon2: 54.891198619261\n    test 567 line 63 azi2: 90.820789878786\n    test 568 line 64 lat: -2.554657\n    test 569 line 64 lon: 71.539549\n    test 570 line 64 fb: 105.722921\n    test 571 line 64 lat2: -2.554657243385\n    test 572 line 64 lon2: 71.539549368441\n    test 573 line 64 azi2: 105.722921401613\n    test 574 line 64 lat2: -2.554657243385\n    test 575 line 64 lon2: 71.539549368441\n    test 576 line 64 azi2: 105.722921401613\n    test 577 line 65 lat: 1.329645\n    test 578 line 65 lon: 138.134969\n    test 579 line 65 fb: 150.465118\n    test 580 line 65 lat2: 1.329645321136\n    test 581 line 65 lon2: 138.134968538140\n    test 582 line 65 azi2: 150.465118219879\n    test 583 line 65 lat2: 1.329645321136\n    test 584 line 65 lon2: 138.134968538140\n    test 585 line 65 azi2: 150.465118219879\n    test 586 line 66 lat: -44.026427\n    test 587 line 66 lon: 121.367591\n    test 588 line 66 fb: 123.975227\n    test 589 line 66 lat2: -44.026426573446\n    test 590 line 66 lon2: 121.367591215510\n    test 591 line 66 azi2: 123.975227063718\n    test 592 line 66 lat2: -44.026426573446\n    test 593 line 66 lon2: 121.367591215510\n    test 594 line 66 azi2: 123.975227063718\n    test 595 line 67 lat: -3.399081\n    test 596 line 67 lon: 138.655764\n    test 597 line 67 fb: 98.994343\n    test 598 line 67 lat2: -3.399080708673\n    test 599 line 67 lon2: 138.655764270175\n    test 600 line 67 azi2: 98.994343217447\n    test 601 line 67 lat2: -3.399080708673\n    test 602 line 67 lon2: 138.655764270175\n    test 603 line 67 azi2: 98.994343217447\n    test 604 line 68 lat: -26.776985\n    test 605 line 68 lon: 67.020055\n    test 606 line 68 fb: 119.394665\n    test 607 line 68 lat2: -26.776984673364\n    test 608 line 68 lon2: 67.020054548341\n    test 609 line 68 azi2: 119.394664651636\n    test 610 line 68 lat2: -26.776984673364\n    test 611 line 68 lon2: 67.020054548341\n    test 612 line 68 azi2: 119.394664651636\n    test 613 line 69 lat: 52.057239\n    test 614 line 69 lon: 151.887270\n    test 615 line 69 fb: 161.537826\n    test 616 line 69 lat2: 52.057239269050\n    test 617 line 69 lon2: 151.887270484247\n    test 618 line 69 azi2: 161.537826425477\n    test 619 line 69 lat2: 52.057239269050\n    test 620 line 69 lon2: 151.887270484247\n    test 621 line 69 azi2: 161.537826425477\n    test 622 line 70 lat: 3.784724\n    test 623 line 70 lon: 102.727745\n    test 624 line 70 fb: 116.453155\n    test 625 line 70 lat2: 3.784724165483\n    test 626 line 70 lon2: 102.727744934481\n    test 627 line 70 azi2: 116.453155405439\n    test 628 line 70 lat2: 3.784724165483\n    test 629 line 70 lon2: 102.727744934481\n    test 630 line 70 azi2: 116.453155405439\n    test 631 line 71 lat: -40.409299\n    test 632 line 71 lon: 86.033195\n    test 633 line 71 fb: 121.080298\n    test 634 line 71 lat2: -40.409298772797\n    test 635 line 71 lon2: 86.033195335657\n    test 636 line 71 azi2: 121.080297615268\n    test 637 line 71 lat2: -40.409298772797\n    test 638 line 71 lon2: 86.033195335657\n    test 639 line 71 azi2: 121.080297615268\n    test 640 line 72 lat: 73.013460\n    test 641 line 72 lon: 76.188125\n    test 642 line 72 fb: 78.877769\n    test 643 line 72 lat2: 73.013460186926\n    test 644 line 72 lon2: 76.188125151657\n    test 645 line 72 azi2: 78.877769459629\n    test 646 line 72 lat2: 73.013460186926\n    test 647 line 72 lon2: 76.188125151657\n    test 648 line 72 azi2: 78.877769459629\n    test 649 line 73 lat: 52.870132\n    test 650 line 73 lon: 51.020900\n    test 651 line 73 fb: 102.113351\n    test 652 line 73 lat2: 52.870131799667\n    test 653 line 73 lon2: 51.020900069545\n    test 654 line 73 azi2: 102.113351369331\n    test 655 line 73 lat2: 52.870131799667\n    test 656 line 73 lon2: 51.020900069545\n    test 657 line 73 azi2: 102.113351369331\n    test 658 line 74 lat: 28.909632\n    test 659 line 74 lon: 17.071526\n    test 660 line 74 fb: 103.660711\n    test 661 line 74 lat2: 28.909631785857\n    test 662 line 74 lon2: 17.071526465331\n    test 663 line 74 azi2: 103.660711362255\n    test 664 line 74 lat2: 28.909631785857\n    test 665 line 74 lon2: 17.071526465331\n    test 666 line 74 azi2: 103.660711362255\n    test 667 line 75 lat: -58.257855\n    test 668 line 75 lon: 15.812862\n    test 669 line 75 fb: 169.606337\n    test 670 line 75 lat2: -58.257854831091\n    test 671 line 75 lon2: 15.812862089412\n    test 672 line 75 azi2: 169.606337169070\n    test 673 line 75 lat2: -58.257854831091\n    test 674 line 75 lon2: 15.812862089412\n    test 675 line 75 azi2: 169.606337169070\n    test 676 line 76 lat: -58.869445\n    test 677 line 76 lon: 132.036795\n    test 678 line 76 fb: 53.946549\n    test 679 line 76 lat2: -58.869445004289\n    test 680 line 76 lon2: 132.036794965086\n    test 681 line 76 azi2: 53.946549037654\n    test 682 line 76 lat2: -58.869445004289\n    test 683 line 76 lon2: 132.036794965086\n    test 684 line 76 azi2: 53.946549037654\n    test 685 line 77 lat: -45.547043\n    test 686 line 77 lon: 77.540664\n    test 687 line 77 fb: 126.917177\n    test 688 line 77 lat2: -45.547042598505\n    test 689 line 77 lon2: 77.540663933413\n    test 690 line 77 azi2: 126.917177154676\n    test 691 line 77 lat2: -45.547042598505\n    test 692 line 77 lon2: 77.540663933413\n    test 693 line 77 azi2: 126.917177154676\n    test 694 line 78 lat: 45.046385\n    test 695 line 78 lon: 149.382429\n    test 696 line 78 fb: 162.117474\n    test 697 line 78 lat2: 45.046384823604\n    test 698 line 78 lon2: 149.382428769460\n    test 699 line 78 azi2: 162.117474447248\n    test 700 line 78 lat2: 45.046384823604\n    test 701 line 78 lon2: 149.382428769460\n    test 702 line 78 azi2: 162.117474447248\n    test 703 line 79 lat: -74.853338\n    test 704 line 79 lon: 96.072097\n    test 705 line 79 fb: 85.425493\n    test 706 line 79 lat2: -74.853338324199\n    test 707 line 79 lon2: 96.072096720955\n    test 708 line 79 azi2: 85.425493305289\n    test 709 line 79 lat2: -74.853338324199\n    test 710 line 79 lon2: 96.072096720956  FAILED, KNOWN, expected 96.072096720955\n    test 711 line 79 azi2: 85.425493305289\n    test 712 line 80 lat: -13.205775\n    test 713 line 80 lon: 57.532285\n    test 714 line 80 fb: 122.358040\n    test 715 line 80 lat2: -13.205775181752\n    test 716 line 80 lon2: 57.532285422140\n    test 717 line 80 azi2: 122.358040028964\n    test 718 line 80 lat2: -13.205775181752\n    test 719 line 80 lon2: 57.532285422140\n    test 720 line 80 azi2: 122.358040028964\n    test 721 line 81 lat: -5.135864\n    test 722 line 81 lon: 115.048833\n    test 723 line 81 fb: 93.168400\n    test 724 line 81 lat2: -5.135863872649\n    test 725 line 81 lon2: 115.048832990097\n    test 726 line 81 azi2: 93.168399576996\n    test 727 line 81 lat2: -5.135863872649\n    test 728 line 81 lon2: 115.048832990097\n    test 729 line 81 azi2: 93.168399576996\n    test 730 line 82 lat: 13.355453\n    test 731 line 82 lon: 19.253946\n    test 732 line 82 fb: 143.568719\n    test 733 line 82 lat2: 13.355452912310\n    test 734 line 82 lon2: 19.253945880531\n    test 735 line 82 azi2: 143.568718864193\n    test 736 line 82 lat2: 13.355452912310\n    test 737 line 82 lon2: 19.253945880531\n    test 738 line 82 azi2: 143.568718864193\n    test 739 line 83 lat: 0.766426\n    test 740 line 83 lon: 147.485817\n    test 741 line 83 fb: 144.982274\n    test 742 line 83 lat2: 0.766426443892\n    test 743 line 83 lon2: 147.485816830606\n    test 744 line 83 azi2: 144.982273873382\n    test 745 line 83 lat2: 0.766426443892\n    test 746 line 83 lon2: 147.485816830606\n    test 747 line 83 azi2: 144.982273873382\n    test 748 line 84 lat: 10.228416\n    test 749 line 84 lon: 159.204118\n    test 750 line 84 fb: 173.111973\n    test 751 line 84 lat2: 10.228416314659\n    test 752 line 84 lon2: 159.204118025562\n    test 753 line 84 azi2: 173.111973027488\n    test 754 line 84 lat2: 10.228416314659\n    test 755 line 84 lon2: 159.204118025562\n    test 756 line 84 azi2: 173.111973027488\n    test 757 line 85 lat: 73.178089\n    test 758 line 85 lon: 131.762700\n    test 759 line 85 fb: 135.271161\n    test 760 line 85 lat2: 73.178089048974\n    test 761 line 85 lon2: 131.762699581940\n    test 762 line 85 azi2: 135.271161440271\n    test 763 line 85 lat2: 73.178089048974\n    test 764 line 85 lon2: 131.762699581941  FAILED, KNOWN, expected 131.762699581940\n    test 765 line 85 azi2: 135.271161440271\n    test 766 line 86 lat: -16.908717\n    test 767 line 86 lon: 149.240494\n    test 768 line 86 fb: 90.725082\n    test 769 line 86 lat2: -16.908717231321\n    test 770 line 86 lon2: 149.240493850337\n    test 771 line 86 azi2: 90.725082091932\n    test 772 line 86 lat2: -16.908717231321\n    test 773 line 86 lon2: 149.240493850337\n    test 774 line 86 azi2: 90.725082091932\n    test 775 line 87 lat: -23.440025\n    test 776 line 87 lon: 98.819595\n    test 777 line 87 fb: 154.388320\n    test 778 line 87 lat2: -23.440025289757\n    test 779 line 87 lon2: 98.819595131759\n    test 780 line 87 azi2: 154.388319751570\n    test 781 line 87 lat2: -23.440025289757\n    test 782 line 87 lon2: 98.819595131759\n    test 783 line 87 azi2: 154.388319751570\n    test 784 line 88 lat: -51.344465\n    test 785 line 88 lon: 54.299399\n    test 786 line 88 fb: 139.903236\n    test 787 line 88 lat2: -51.344465279371\n    test 788 line 88 lon2: 54.299399477396\n    test 789 line 88 azi2: 139.903236261795\n    test 790 line 88 lat2: -51.344465279371\n    test 791 line 88 lon2: 54.299399477396\n    test 792 line 88 azi2: 139.903236261795\n    test 793 line 89 lat: 33.922320\n    test 794 line 89 lon: 143.463070\n    test 795 line 89 fb: 132.788230\n    test 796 line 89 lat2: 33.922319712554\n    test 797 line 89 lon2: 143.463070326988\n    test 798 line 89 azi2: 132.788229856713\n    test 799 line 89 lat2: 33.922319712554\n    test 800 line 89 lon2: 143.463070326988\n    test 801 line 89 azi2: 132.788229856713\n    test 802 line 90 lat: -83.333068\n    test 803 line 90 lon: 177.611925\n    test 804 line 90 fb: 2.633769\n    test 805 line 90 lat2: -83.333068057524\n    test 806 line 90 lon2: 177.611924577958\n    test 807 line 90 azi2: 2.633768744582\n    test 808 line 90 lat2: -83.333068057524\n    test 809 line 90 lon2: 177.611924577958\n    test 810 line 90 azi2: 2.633768744582\n    test 811 line 91 lat: 20.587333\n    test 812 line 91 lon: 164.201962\n    test 813 line 91 fb: 166.991083\n    test 814 line 91 lat2: 20.587333492522\n    test 815 line 91 lon2: 164.201962479604\n    test 816 line 91 azi2: 166.991083245940\n    test 817 line 91 lat2: 20.587333492522\n    test 818 line 91 lon2: 164.201962479604\n    test 819 line 91 azi2: 166.991083245940\n    test 820 line 92 lat: 52.612815\n    test 821 line 92 lon: 110.766184\n    test 822 line 92 fb: 168.281486\n    test 823 line 92 lat2: 52.612815386144\n    test 824 line 92 lon2: 110.766184475279\n    test 825 line 92 azi2: 168.281485715811\n    test 826 line 92 lat2: 52.612815386144\n    test 827 line 92 lon2: 110.766184475279\n    test 828 line 92 azi2: 168.281485715811\n    test 829 line 93 lat: -41.681373\n    test 830 line 93 lon: 82.150183\n    test 831 line 93 fb: 107.012959\n    test 832 line 93 lat2: -41.681372899642\n    test 833 line 93 lon2: 82.150183233451\n    test 834 line 93 azi2: 107.012959072514\n    test 835 line 93 lat2: -41.681372899642\n    test 836 line 93 lon2: 82.150183233451\n    test 837 line 93 azi2: 107.012959072514\n    test 838 line 94 lat: 27.082807\n    test 839 line 94 lon: 171.332531\n    test 840 line 94 fb: 174.934340\n    test 841 line 94 lat2: 27.082807052702\n    test 842 line 94 lon2: 171.332530862401\n    test 843 line 94 azi2: 174.934339881142\n    test 844 line 94 lat2: 27.082807052702\n    test 845 line 94 lon2: 171.332530862401\n    test 846 line 94 azi2: 174.934339881142\n    test 847 line 95 lat: 57.992299\n    test 848 line 95 lon: 15.128357\n    test 849 line 95 fb: 62.342982\n    test 850 line 95 lat2: 57.992299464191\n    test 851 line 95 lon2: 15.128356773547\n    test 852 line 95 azi2: 62.342982084737\n    test 853 line 95 lat2: 57.992299464191\n    test 854 line 95 lon2: 15.128356773547\n    test 855 line 95 azi2: 62.342982084737\n    test 856 line 96 lat: -10.526000\n    test 857 line 96 lon: 33.778702\n    test 858 line 96 fb: 165.687804\n    test 859 line 96 lat2: -10.526000344959\n    test 860 line 96 lon2: 33.778701722506\n    test 861 line 96 azi2: 165.687803859941\n    test 862 line 96 lat2: -10.526000344959\n    test 863 line 96 lon2: 33.778701722506\n    test 864 line 96 azi2: 165.687803859941\n    test 865 line 97 lat: 25.802395\n    test 866 line 97 lon: 98.502531\n    test 867 line 97 fb: 97.837271\n    test 868 line 97 lat2: 25.802394934787\n    test 869 line 97 lon2: 98.502531199301\n    test 870 line 97 azi2: 97.837270592496\n    test 871 line 97 lat2: 25.802394934787\n    test 872 line 97 lon2: 98.502531199301\n    test 873 line 97 azi2: 97.837270592496\n    test 874 line 98 lat: 47.163255\n    test 875 line 98 lon: 156.720176\n    test 876 line 98 fb: 160.291022\n    test 877 line 98 lat2: 47.163255465769\n    test 878 line 98 lon2: 156.720176105542\n    test 879 line 98 azi2: 160.291021678921\n    test 880 line 98 lat2: 47.163255465769\n    test 881 line 98 lon2: 156.720176105542\n    test 882 line 98 azi2: 160.291021678921\n    test 883 line 99 lat: 47.932063\n    test 884 line 99 lon: 35.094714\n    test 885 line 99 fb: 137.545065\n    test 886 line 99 lat2: 47.932062978964\n    test 887 line 99 lon2: 35.094714092217\n    test 888 line 99 azi2: 137.545065115425\n    test 889 line 99 lat2: 47.932062978964\n    test 890 line 99 lon2: 35.094714092217\n    test 891 line 99 azi2: 137.545065115425\n    test 892 line 100 lat: -60.204340\n    test 893 line 100 lon: 117.726218\n    test 894 line 100 fb: 72.585011\n    test 895 line 100 lat2: -60.204339807984\n    test 896 line 100 lon2: 117.726217548610\n    test 897 line 100 azi2: 72.585010656772\n    test 898 line 100 lat2: -60.204339807984\n    test 899 line 100 lon2: 117.726217548610\n    test 900 line 100 azi2: 72.585010656772\n    test 901 line 101 lat: 35.247411\n    test 902 line 101 lon: 59.471562\n    test 903 line 101 fb: 81.179468\n    test 904 line 101 lat2: 35.247410984329\n    test 905 line 101 lon2: 59.471562388985\n    test 906 line 101 azi2: 81.179468094302\n    test 907 line 101 lat2: 35.247410984329\n    test 908 line 101 lon2: 59.471562388985\n    test 909 line 101 azi2: 81.179468094302\n    test 910 line 102 lat: 19.218268\n    test 911 line 102 lon: 165.507915\n    test 912 line 102 fb: 167.452074\n    test 913 line 102 lat2: 19.218268047706\n    test 914 line 102 lon2: 165.507915017643\n    test 915 line 102 azi2: 167.452074301867\n    test 916 line 102 lat2: 19.218268047706\n    test 917 line 102 lon2: 165.507915017643\n    test 918 line 102 azi2: 167.452074301867\n    test 919 line 103 lat: 55.428809\n    test 920 line 103 lon: 121.956541\n    test 921 line 103 fb: 154.501481\n    test 922 line 103 lat2: 55.428809300888\n    test 923 line 103 lon2: 121.956541206929\n    test 924 line 103 azi2: 154.501481394521\n    test 925 line 103 lat2: 55.428809300888\n    test 926 line 103 lon2: 121.956541206929\n    test 927 line 103 azi2: 154.501481394521\n    test 928 line 104 lat: 49.294374\n    test 929 line 104 lon: 119.661420\n    test 930 line 104 fb: 157.209489\n    test 931 line 104 lat2: 49.294374468687\n    test 932 line 104 lon2: 119.661419832789\n    test 933 line 104 azi2: 157.209488754087\n    test 934 line 104 lat2: 49.294374468687\n    test 935 line 104 lon2: 119.661419832789\n    test 936 line 104 azi2: 157.209488754087\n    test 937 line 105 lat: -32.534872\n    test 938 line 105 lon: 152.280610\n    test 939 line 105 fb: 45.281812\n    test 940 line 105 lat2: -32.534872085863\n    test 941 line 105 lon2: 152.280609797481\n    test 942 line 105 azi2: 45.281812386148\n    test 943 line 105 lat2: -32.534872085863\n    test 944 line 105 lon2: 152.280609797481\n    test 945 line 105 azi2: 45.281812386148\n    test 946 line 106 lat: -1.097899\n    test 947 line 106 lon: 104.697360\n    test 948 line 106 fb: 126.298489\n    test 949 line 106 lat2: -1.097899218947\n    test 950 line 106 lon2: 104.697359959629\n    test 951 line 106 azi2: 126.298488917783\n    test 952 line 106 lat2: -1.097899218947\n    test 953 line 106 lon2: 104.697359959629\n    test 954 line 106 azi2: 126.298488917783\n    test 955 line 107 lat: -18.034366\n    test 956 line 107 lon: 28.460388\n    test 957 line 107 fb: 129.520364\n    test 958 line 107 lat2: -18.034366293950\n    test 959 line 107 lon2: 28.460387638999\n    test 960 line 107 azi2: 129.520363751001\n    test 961 line 107 lat2: -18.034366293950\n    test 962 line 107 lon2: 28.460387638999\n    test 963 line 107 azi2: 129.520363751001\n    test 964 line 108 lat: 76.310833\n    test 965 line 108 lon: 80.110525\n    test 966 line 108 fb: 106.655922\n    test 967 line 108 lat2: 76.310832995825\n    test 968 line 108 lon2: 80.110524683625\n    test 969 line 108 azi2: 106.655921818336\n    test 970 line 108 lat2: 76.310832995825\n    test 971 line 108 lon2: 80.110524683625\n    test 972 line 108 azi2: 106.655921818336\n    test 973 line 109 lat: 39.838034\n    test 974 line 109 lon: 42.989610\n    test 975 line 109 fb: 69.695281\n    test 976 line 109 lat2: 39.838033717901\n    test 977 line 109 lon2: 42.989610477861\n    test 978 line 109 azi2: 69.695281464222\n    test 979 line 109 lat2: 39.838033717901\n    test 980 line 109 lon2: 42.989610477861\n    test 981 line 109 azi2: 69.695281464222\n    test 982 line 110 lat: -56.710166\n    test 983 line 110 lon: 125.242287\n    test 984 line 110 fb: 60.118756\n    test 985 line 110 lat2: -56.710165877845\n    test 986 line 110 lon2: 125.242287231675\n    test 987 line 110 azi2: 60.118756013168\n    test 988 line 110 lat2: -56.710165877845\n    test 989 line 110 lon2: 125.242287231675\n    test 990 line 110 azi2: 60.118756013168\n    test 991 line 111 lat: 55.796062\n    test 992 line 111 lon: 59.736599\n    test 993 line 111 fb: 73.536728\n    test 994 line 111 lat2: 55.796061639165\n    test 995 line 111 lon2: 59.736598787303\n    test 996 line 111 azi2: 73.536727826063\n    test 997 line 111 lat2: 55.796061639165\n    test 998 line 111 lon2: 59.736598787303\n    test 999 line 111 azi2: 73.536727826063\n    test 1000 line 112 lat: -36.553675\n    test 1001 line 112 lon: 38.656806\n    test 1002 line 112 fb: 134.414837\n    test 1003 line 112 lat2: -36.553675319553\n    test 1004 line 112 lon2: 38.656806212281\n    test 1005 line 112 azi2: 134.414836606696\n    test 1006 line 112 lat2: -36.553675319553\n    test 1007 line 112 lon2: 38.656806212281\n    test 1008 line 112 azi2: 134.414836606696\n    test 1009 line 113 lat: -36.798456\n    test 1010 line 113 lon: 163.588375\n    test 1011 line 113 fb: 147.324204\n    test 1012 line 113 lat2: -36.798455994877\n    test 1013 line 113 lon2: 163.588375017283\n    test 1014 line 113 azi2: 147.324204021436\n    test 1015 line 113 lat2: -36.798455994877\n    test 1016 line 113 lon2: 163.588375017283\n    test 1017 line 113 azi2: 147.324204021436\n    test 1018 line 114 lat: -15.952937\n    test 1019 line 114 lon: 55.126807\n    test 1020 line 114 fb: 134.743426\n    test 1021 line 114 lat2: -15.952937085211\n    test 1022 line 114 lon2: 55.126807113658\n    test 1023 line 114 azi2: 134.743426025963\n    test 1024 line 114 lat2: -15.952937085211\n    test 1025 line 114 lon2: 55.126807113658\n    test 1026 line 114 azi2: 134.743426025963\n    test 1027 line 115 lat: -34.573087\n    test 1028 line 115 lon: 69.304064\n    test 1029 line 115 fb: 111.515973\n    test 1030 line 115 lat2: -34.573086586710\n    test 1031 line 115 lon2: 69.304064202466\n    test 1032 line 115 azi2: 111.515973223076\n    test 1033 line 115 lat2: -34.573086586710\n    test 1034 line 115 lon2: 69.304064202466\n    test 1035 line 115 azi2: 111.515973223076\n    test 1036 line 116 lat: 26.643499\n    test 1037 line 116 lon: 1.500481\n    test 1038 line 116 fb: 7.958966\n    test 1039 line 116 lat2: 26.643498959841\n    test 1040 line 116 lon2: 1.500480924882\n    test 1041 line 116 azi2: 7.958966071178\n    test 1042 line 116 lat2: 26.643498959841\n    test 1043 line 116 lon2: 1.500480924882\n    test 1044 line 116 azi2: 7.958966071178\n    test 1045 line 117 lat: 60.891878\n    test 1046 line 117 lon: 91.543410\n    test 1047 line 117 fb: 92.273095\n    test 1048 line 117 lat2: 60.891878271763\n    test 1049 line 117 lon2: 91.543409983653\n    test 1050 line 117 azi2: 92.273095036246\n    test 1051 line 117 lat2: 60.891878271763\n    test 1052 line 117 lon2: 91.543409983653\n    test 1053 line 117 azi2: 92.273095036246\n    test 1054 line 118 lat: 64.148187\n    test 1055 line 118 lon: 136.552579\n    test 1056 line 118 fb: 147.193229\n    test 1057 line 118 lat2: 64.148186913822\n    test 1058 line 118 lon2: 136.552579389353\n    test 1059 line 118 azi2: 147.193228706030\n    test 1060 line 118 lat2: 64.148186913822\n    test 1061 line 118 lon2: 136.552579389353\n    test 1062 line 118 azi2: 147.193228706030\n    test 1063 line 119 lat: 62.311678\n    test 1064 line 119 lon: 39.238630\n    test 1065 line 119 fb: 53.785893\n    test 1066 line 119 lat2: 62.311677748693\n    test 1067 line 119 lon2: 39.238629619778\n    test 1068 line 119 azi2: 53.785893324444\n    test 1069 line 119 lat2: 62.311677748693\n    test 1070 line 119 lon2: 39.238629619778\n    test 1071 line 119 azi2: 53.785893324444\n    test 1072 line 120 lat: 27.239733\n    test 1073 line 120 lon: 136.649227\n    test 1074 line 120 fb: 162.935700\n    test 1075 line 120 lat2: 27.239733033115\n    test 1076 line 120 lon2: 136.649227320518\n    test 1077 line 120 azi2: 162.935700444146\n    test 1078 line 120 lat2: 27.239733033115\n    test 1079 line 120 lon2: 136.649227320518\n    test 1080 line 120 azi2: 162.935700444146\n    test 1081 line 121 lat: 6.562844\n    test 1082 line 121 lon: 170.159007\n    test 1083 line 121 fb: 174.851345\n    test 1084 line 121 lat2: 6.562844367534\n    test 1085 line 121 lon2: 170.159007094343\n    test 1086 line 121 azi2: 174.851345174583\n    test 1087 line 121 lat2: 6.562844367534\n    test 1088 line 121 lon2: 170.159007094343\n    test 1089 line 121 azi2: 174.851345174583\n    test 1090 line 122 lat: -29.537259\n    test 1091 line 122 lon: 105.350044\n    test 1092 line 122 fb: 141.393876\n    test 1093 line 122 lat2: -29.537259231420\n    test 1094 line 122 lon2: 105.350044044462\n    test 1095 line 122 azi2: 141.393876478962\n    test 1096 line 122 lat2: -29.537259231420\n    test 1097 line 122 lon2: 105.350044044462\n    test 1098 line 122 azi2: 141.393876478962\n    test 1099 line 123 lat: -66.447700\n    test 1100 line 123 lon: 83.741961\n    test 1101 line 123 fb: 129.422490\n    test 1102 line 123 lat2: -66.447699831143\n    test 1103 line 123 lon2: 83.741960628420\n    test 1104 line 123 azi2: 129.422490051758\n    test 1105 line 123 lat2: -66.447699831143\n    test 1106 line 123 lon2: 83.741960628420\n    test 1107 line 123 azi2: 129.422490051758\n    test 1108 line 124 lat: 56.926818\n    test 1109 line 124 lon: 20.197117\n    test 1110 line 124 fb: 37.960006\n    test 1111 line 124 lat2: 56.926817599968\n    test 1112 line 124 lon2: 20.197117058896\n    test 1113 line 124 azi2: 37.960006049295\n    test 1114 line 124 lat2: 56.926817599968\n    test 1115 line 124 lon2: 20.197117058896\n    test 1116 line 124 azi2: 37.960006049295\n    test 1117 line 125 lat: 55.018266\n    test 1118 line 125 lon: 83.735441\n    test 1119 line 125 fb: 130.766515\n    test 1120 line 125 lat2: 55.018265995959\n    test 1121 line 125 lon2: 83.735441278691\n    test 1122 line 125 azi2: 130.766514657995\n    test 1123 line 125 lat2: 55.018265995959\n    test 1124 line 125 lon2: 83.735441278691\n    test 1125 line 125 azi2: 130.766514657995\n    test 1126 line 126 lat: -78.131054\n    test 1127 line 126 lon: 56.098176\n    test 1128 line 126 fb: 127.132203\n    test 1129 line 126 lat2: -78.131053729786\n    test 1130 line 126 lon2: 56.098176359327  FAILED, KNOWN, expected 56.098176359326\n    test 1131 line 126 azi2: 127.132203471256  FAILED, KNOWN, expected 127.132203471257\n    test 1132 line 126 lat2: -78.131053729786\n    test 1133 line 126 lon2: 56.098176359326\n    test 1134 line 126 azi2: 127.132203471257\n    test 1135 line 127 lat: -18.223027\n    test 1136 line 127 lon: 86.221345\n    test 1137 line 127 fb: 114.875019\n    test 1138 line 127 lat2: -18.223027345294\n    test 1139 line 127 lon2: 86.221345156045\n    test 1140 line 127 azi2: 114.875019395396\n    test 1141 line 127 lat2: -18.223027345294\n    test 1142 line 127 lon2: 86.221345156045\n    test 1143 line 127 azi2: 114.875019395396\n    test 1144 line 128 lat: -16.100413\n    test 1145 line 128 lon: 54.195260\n    test 1146 line 128 fb: 126.748474\n    test 1147 line 128 lat2: -16.100412777565\n    test 1148 line 128 lon2: 54.195259657284\n    test 1149 line 128 azi2: 126.748473963924\n    test 1150 line 128 lat2: -16.100412777565\n    test 1151 line 128 lon2: 54.195259657284\n    test 1152 line 128 azi2: 126.748473963924\n    test 1153 line 129 lat: -15.192944\n    test 1154 line 129 lon: 85.057605\n    test 1155 line 129 fb: 133.468781\n    test 1156 line 129 lat2: -15.192944143354\n    test 1157 line 129 lon2: 85.057605312625\n    test 1158 line 129 azi2: 133.468780913302\n    test 1159 line 129 lat2: -15.192944143354\n    test 1160 line 129 lon2: 85.057605312625\n    test 1161 line 129 azi2: 133.468780913302\n    test 1162 line 130 lat: -1.279757\n    test 1163 line 130 lon: 93.430943\n    test 1164 line 130 fb: 128.545662\n    test 1165 line 130 lat2: -1.279756550061\n    test 1166 line 130 lon2: 93.430943123745\n    test 1167 line 130 azi2: 128.545661704820\n    test 1168 line 130 lat2: -1.279756550061\n    test 1169 line 130 lon2: 93.430943123745\n    test 1170 line 130 azi2: 128.545661704820\n    test 1171 line 131 lat: -29.465713\n    test 1172 line 131 lon: 79.050046\n    test 1173 line 131 fb: 109.482097\n    test 1174 line 131 lat2: -29.465712645249\n    test 1175 line 131 lon2: 79.050045796725\n    test 1176 line 131 azi2: 109.482097420926\n    test 1177 line 131 lat2: -29.465712645249\n    test 1178 line 131 lon2: 79.050045796725\n    test 1179 line 131 azi2: 109.482097420926\n    test 1180 line 132 lat: 31.819596\n    test 1181 line 132 lon: 88.251997\n    test 1182 line 132 fb: 91.173935\n    test 1183 line 132 lat2: 31.819596255581\n    test 1184 line 132 lon2: 88.251997328019\n    test 1185 line 132 azi2: 91.173935030538\n    test 1186 line 132 lat2: 31.819596255581\n    test 1187 line 132 lon2: 88.251997328019\n    test 1188 line 132 azi2: 91.173935030538\n    test 1189 line 133 lat: -63.260477\n    test 1190 line 133 lon: 96.535465\n    test 1191 line 133 fb: 84.208873\n    test 1192 line 133 lat2: -63.260477387265\n    test 1193 line 133 lon2: 96.535465277415\n    test 1194 line 133 azi2: 84.208873088521\n    test 1195 line 133 lat2: -63.260477387265\n    test 1196 line 133 lon2: 96.535465277415\n    test 1197 line 133 azi2: 84.208873088521\n    test 1198 line 134 lat: 12.908849\n    test 1199 line 134 lon: 116.734308\n    test 1200 line 134 fb: 110.313866\n    test 1201 line 134 lat2: 12.908849199388\n    test 1202 line 134 lon2: 116.734308245854\n    test 1203 line 134 azi2: 110.313865884978\n    test 1204 line 134 lat2: 12.908849199388\n    test 1205 line 134 lon2: 116.734308245854\n    test 1206 line 134 azi2: 110.313865884978\n    test 1207 line 135 lat: -73.345839\n    test 1208 line 135 lon: 99.753937\n    test 1209 line 135 fb: 89.074642\n    test 1210 line 135 lat2: -73.345839080078\n    test 1211 line 135 lon2: 99.753937450114\n    test 1212 line 135 azi2: 89.074641755279\n    test 1213 line 135 lat2: -73.345839080078\n    test 1214 line 135 lon2: 99.753937450114\n    test 1215 line 135 azi2: 89.074641755279\n    test 1216 line 136 lat: -58.777033\n    test 1217 line 136 lon: 161.963990\n    test 1218 line 136 fb: 21.998889\n    test 1219 line 136 lat2: -58.777033293076\n    test 1220 line 136 lon2: 161.963989905489\n    test 1221 line 136 azi2: 21.998888971548\n    test 1222 line 136 lat2: -58.777033293076\n    test 1223 line 136 lon2: 161.963989905489\n    test 1224 line 136 azi2: 21.998888971548\n    test 1225 line 137 lat: 5.093069\n    test 1226 line 137 lon: 53.687921\n    test 1227 line 137 fb: 124.015842\n    test 1228 line 137 lat2: 5.093068996651\n    test 1229 line 137 lon2: 53.687921438754\n    test 1230 line 137 azi2: 124.015842231205\n    test 1231 line 137 lat2: 5.093068996651\n    test 1232 line 137 lon2: 53.687921438754\n    test 1233 line 137 azi2: 124.015842231205\n    test 1234 line 138 lat: 35.659489\n    test 1235 line 138 lon: 111.729315\n    test 1236 line 138 fb: 133.697281\n    test 1237 line 138 lat2: 35.659488664161\n    test 1238 line 138 lon2: 111.729315023485\n    test 1239 line 138 azi2: 133.697281357224\n    test 1240 line 138 lat2: 35.659488664161\n    test 1241 line 138 lon2: 111.729315023485\n    test 1242 line 138 azi2: 133.697281357224\n    test 1243 line 139 lat: -24.330784\n    test 1244 line 139 lon: 71.666568\n    test 1245 line 139 fb: 106.278062\n    test 1246 line 139 lat2: -24.330783755994\n    test 1247 line 139 lon2: 71.666567863169  FAILED, KNOWN, expected 71.666567863170\n    test 1248 line 139 azi2: 106.278062394907\n    test 1249 line 139 lat2: -24.330783755994\n    test 1250 line 139 lon2: 71.666567863170\n    test 1251 line 139 azi2: 106.278062394907\n    test 1252 line 140 lat: -46.218742\n    test 1253 line 140 lon: 91.580078\n    test 1254 line 140 fb: 106.279111\n    test 1255 line 140 lat2: -46.218742288678\n    test 1256 line 140 lon2: 91.580077788700\n    test 1257 line 140 azi2: 106.279110700398\n    test 1258 line 140 lat2: -46.218742288678\n    test 1259 line 140 lon2: 91.580077788700\n    test 1260 line 140 azi2: 106.279110700399  FAILED, KNOWN, expected 106.279110700398\n    test 1261 line 141 lat: 50.143353\n    test 1262 line 141 lon: 101.322503\n    test 1263 line 141 fb: 154.314496\n    test 1264 line 141 lat2: 50.143352562968\n    test 1265 line 141 lon2: 101.322502529615\n    test 1266 line 141 azi2: 154.314496467352\n    test 1267 line 141 lat2: 50.143352562968\n    test 1268 line 141 lon2: 101.322502529615\n    test 1269 line 141 azi2: 154.314496467352\n    test 1270 line 142 lat: -16.604376\n    test 1271 line 142 lon: 134.279201\n    test 1272 line 142 fb: 106.895990\n    test 1273 line 142 lat2: -16.604375537699\n    test 1274 line 142 lon2: 134.279201209117\n    test 1275 line 142 azi2: 106.895989785632\n    test 1276 line 142 lat2: -16.604375537699\n    test 1277 line 142 lon2: 134.279201209117\n    test 1278 line 142 azi2: 106.895989785632\n    test 1279 line 143 lat: 54.031290\n    test 1280 line 143 lon: 144.862702\n    test 1281 line 143 fb: 152.937010\n    test 1282 line 143 lat2: 54.031289901242\n    test 1283 line 143 lon2: 144.862701667601\n    test 1284 line 143 azi2: 152.937009701639\n    test 1285 line 143 lat2: 54.031289901242\n    test 1286 line 143 lon2: 144.862701667601\n    test 1287 line 143 azi2: 152.937009701639\n    test 1288 line 144 lat: 0.616911\n    test 1289 line 144 lon: 110.974662\n    test 1290 line 144 fb: 115.206118\n    test 1291 line 144 lat2: 0.616910921892\n    test 1292 line 144 lon2: 110.974662272005\n    test 1293 line 144 azi2: 115.206118431862\n    test 1294 line 144 lat2: 0.616910921892\n    test 1295 line 144 lon2: 110.974662272005\n    test 1296 line 144 azi2: 115.206118431862\n    test 1297 line 145 lat: -6.243779\n    test 1298 line 145 lon: 175.658895\n    test 1299 line 145 fb: 177.520147\n    test 1300 line 145 lat2: -6.243779047728\n    test 1301 line 145 lon2: 175.658894820006\n    test 1302 line 145 azi2: 177.520147377315\n    test 1303 line 145 lat2: -6.243779047728\n    test 1304 line 145 lon2: 175.658894820006\n    test 1305 line 145 azi2: 177.520147377315\n    test 1306 line 146 lat: -70.416699\n    test 1307 line 146 lon: 169.642468\n    test 1308 line 146 fb: 11.978943\n    test 1309 line 146 lat2: -70.416698815769\n    test 1310 line 146 lon2: 169.642468357274\n    test 1311 line 146 azi2: 11.978943348082\n    test 1312 line 146 lat2: -70.416698815769\n    test 1313 line 146 lon2: 169.642468357274\n    test 1314 line 146 azi2: 11.978943348082\n    test 1315 line 147 lat: 19.558617\n    test 1316 line 147 lon: 88.645709\n    test 1317 line 147 fb: 113.578814\n    test 1318 line 147 lat2: 19.558616692495\n    test 1319 line 147 lon2: 88.645708539223\n    test 1320 line 147 azi2: 113.578814362497\n    test 1321 line 147 lat2: 19.558616692495\n    test 1322 line 147 lon2: 88.645708539223\n    test 1323 line 147 azi2: 113.578814362497\n    test 1324 line 148 lat: -23.555114\n    test 1325 line 148 lon: 162.457529\n    test 1326 line 148 fb: 147.104331\n    test 1327 line 148 lat2: -23.555114207892\n    test 1328 line 148 lon2: 162.457529431664\n    test 1329 line 148 azi2: 147.104330772141\n    test 1330 line 148 lat2: -23.555114207892\n    test 1331 line 148 lon2: 162.457529431664\n    test 1332 line 148 azi2: 147.104330772141\n    test 1333 line 149 lat: -51.275738\n    test 1334 line 149 lon: 103.747943\n    test 1335 line 149 fb: 115.235374\n    test 1336 line 149 lat2: -51.275737933996\n    test 1337 line 149 lon2: 103.747943009536\n    test 1338 line 149 azi2: 115.235373813929\n    test 1339 line 149 lat2: -51.275737933996\n    test 1340 line 149 lon2: 103.747943009536\n    test 1341 line 149 azi2: 115.235373813929\n    test 1342 line 150 lat: 25.374602\n    test 1343 line 150 lon: 143.135783\n    test 1344 line 150 fb: 126.548735\n    test 1345 line 150 lat2: 25.374601552526\n    test 1346 line 150 lon2: 143.135783283239\n    test 1347 line 150 azi2: 126.548735117003\n    test 1348 line 150 lat2: 25.374601552526\n    test 1349 line 150 lon2: 143.135783283239\n    test 1350 line 150 azi2: 126.548735117003\n    test 1351 line 151 lat: 23.967825\n    test 1352 line 151 lon: 153.611116\n    test 1353 line 151 fb: 149.714116\n    test 1354 line 151 lat2: 23.967824782385\n    test 1355 line 151 lon2: 153.611115762587\n    test 1356 line 151 azi2: 149.714116426025\n    test 1357 line 151 lat2: 23.967824782385\n    test 1358 line 151 lon2: 153.611115762587\n    test 1359 line 151 azi2: 149.714116426025\n    test 1360 line 152 lat: -22.787507\n    test 1361 line 152 lon: 111.258647\n    test 1362 line 152 fb: 86.335100\n    test 1363 line 152 lat2: -22.787506689568\n    test 1364 line 152 lon2: 111.258646767306\n    test 1365 line 152 azi2: 86.335099650483\n    test 1366 line 152 lat2: -22.787506689568\n    test 1367 line 152 lon2: 111.258646767306\n    test 1368 line 152 azi2: 86.335099650483\n    test 1369 line 153 lat: -59.789842\n    test 1370 line 153 lon: 114.054983\n    test 1371 line 153 fb: 75.612605\n    test 1372 line 153 lat2: -59.789841532294\n    test 1373 line 153 lon2: 114.054983422255\n    test 1374 line 153 azi2: 75.612605242726\n    test 1375 line 153 lat2: -59.789841532294\n    test 1376 line 153 lon2: 114.054983422255\n    test 1377 line 153 azi2: 75.612605242726\n    test 1378 line 154 lat: -2.802505\n    test 1379 line 154 lon: 126.245955\n    test 1380 line 154 fb: 150.100576\n    test 1381 line 154 lat2: -2.802505438545\n    test 1382 line 154 lon2: 126.245955176418\n    test 1383 line 154 azi2: 150.100575968176\n    test 1384 line 154 lat2: -2.802505438545\n    test 1385 line 154 lon2: 126.245955176418\n    test 1386 line 154 azi2: 150.100575968176\n    test 1387 line 155 lat: 35.735653\n    test 1388 line 155 lon: 102.768725\n    test 1389 line 155 fb: 99.024702\n    test 1390 line 155 lat2: 35.735653026165\n    test 1391 line 155 lon2: 102.768725495110\n    test 1392 line 155 azi2: 99.024701978369\n    test 1393 line 155 lat2: 35.735653026165\n    test 1394 line 155 lon2: 102.768725495110\n    test 1395 line 155 azi2: 99.024701978369\n    test 1396 line 156 lat: 15.906682\n    test 1397 line 156 lon: 117.446654\n    test 1398 line 156 fb: 130.449965\n    test 1399 line 156 lat2: 15.906681603252\n    test 1400 line 156 lon2: 117.446653873860\n    test 1401 line 156 azi2: 130.449965412147\n    test 1402 line 156 lat2: 15.906681603252\n    test 1403 line 156 lon2: 117.446653873860\n    test 1404 line 156 azi2: 130.449965412147\n    test 1405 line 157 lat: -54.375988\n    test 1406 line 157 lon: 33.243363\n    test 1407 line 157 fb: 144.361175\n    test 1408 line 157 lat2: -54.375987804166\n    test 1409 line 157 lon2: 33.243362594038\n    test 1410 line 157 azi2: 144.361175098783\n    test 1411 line 157 lat2: -54.375987804166\n    test 1412 line 157 lon2: 33.243362594038\n    test 1413 line 157 azi2: 144.361175098783\n    test 1414 line 158 lat: 3.588251\n    test 1415 line 158 lon: 156.659583\n    test 1416 line 158 fb: 112.153293\n    test 1417 line 158 lat2: 3.588250783960\n    test 1418 line 158 lon2: 156.659583234995\n    test 1419 line 158 azi2: 112.153293017228\n    test 1420 line 158 lat2: 3.588250783960\n    test 1421 line 158 lon2: 156.659583234995\n    test 1422 line 158 azi2: 112.153293017228\n    test 1423 line 159 lat: -51.719977\n    test 1424 line 159 lon: 134.141061\n    test 1425 line 159 fb: 129.170451\n    test 1426 line 159 lat2: -51.719977004790\n    test 1427 line 159 lon2: 134.141060992499\n    test 1428 line 159 azi2: 129.170451102958\n    test 1429 line 159 lat2: -51.719977004790\n    test 1430 line 159 lon2: 134.141060992499\n    test 1431 line 159 azi2: 129.170451102958\n    test 1432 line 160 lat: 22.935153\n    test 1433 line 160 lon: 109.461291\n    test 1434 line 160 fb: 120.676556\n    test 1435 line 160 lat2: 22.935153219965\n    test 1436 line 160 lon2: 109.461291078917\n    test 1437 line 160 azi2: 120.676555897336\n    test 1438 line 160 lat2: 22.935153219965\n    test 1439 line 160 lon2: 109.461291078917\n    test 1440 line 160 azi2: 120.676555897336\n    test 1441 line 161 lat: -5.314690\n    test 1442 line 161 lon: 70.995225\n    test 1443 line 161 fb: 129.681273\n    test 1444 line 161 lat2: -5.314689990173\n    test 1445 line 161 lon2: 70.995224692450\n    test 1446 line 161 azi2: 129.681272635794\n    test 1447 line 161 lat2: -5.314689990173\n    test 1448 line 161 lon2: 70.995224692450\n    test 1449 line 161 azi2: 129.681272635794\n    test 1450 line 162 lat: 49.147134\n    test 1451 line 162 lon: 16.182514\n    test 1452 line 162 fb: 38.926644\n    test 1453 line 162 lat2: 49.147133873971\n    test 1454 line 162 lon2: 16.182514450690\n    test 1455 line 162 azi2: 38.926644196248\n    test 1456 line 162 lat2: 49.147133873971\n    test 1457 line 162 lon2: 16.182514450690\n    test 1458 line 162 azi2: 38.926644196248\n    test 1459 line 163 lat: -55.079363\n    test 1460 line 163 lon: 93.170898\n    test 1461 line 163 fb: 97.017492\n    test 1462 line 163 lat2: -55.079363368717\n    test 1463 line 163 lon2: 93.170898482121\n    test 1464 line 163 azi2: 97.017491592293\n    test 1465 line 163 lat2: -55.079363368717\n    test 1466 line 163 lon2: 93.170898482121\n    test 1467 line 163 azi2: 97.017491592293\n    test 1468 line 164 lat: 26.410771\n    test 1469 line 164 lon: 109.934003\n    test 1470 line 164 fb: 103.660846\n    test 1471 line 164 lat2: 26.410770923895\n    test 1472 line 164 lon2: 109.934003168641\n    test 1473 line 164 azi2: 103.660846029906\n    test 1474 line 164 lat2: 26.410770923895\n    test 1475 line 164 lon2: 109.934003168641\n    test 1476 line 164 azi2: 103.660846029906\n    test 1477 line 165 lat: -2.539670\n    test 1478 line 165 lon: 138.682325\n    test 1479 line 165 fb: 100.016568\n    test 1480 line 165 lat2: -2.539669792389\n    test 1481 line 165 lon2: 138.682325493918\n    test 1482 line 165 azi2: 100.016568432752\n    test 1483 line 165 lat2: -2.539669792389\n    test 1484 line 165 lon2: 138.682325493918\n    test 1485 line 165 azi2: 100.016568432752\n    test 1486 line 166 lat: 10.563299\n    test 1487 line 166 lon: 50.532119\n    test 1488 line 166 fb: 126.356066\n    test 1489 line 166 lat2: 10.563299452649\n    test 1490 line 166 lon2: 50.532119480076\n    test 1491 line 166 azi2: 126.356065708364\n    test 1492 line 166 lat2: 10.563299452649\n    test 1493 line 166 lon2: 50.532119480076\n    test 1494 line 166 azi2: 126.356065708364\n    test 1495 line 167 lat: 51.443871\n    test 1496 line 167 lon: 88.799162\n    test 1497 line 167 fb: 145.239198\n    test 1498 line 167 lat2: 51.443871023711\n    test 1499 line 167 lon2: 88.799161779253\n    test 1500 line 167 azi2: 145.239198135633\n    test 1501 line 167 lat2: 51.443871023711\n    test 1502 line 167 lon2: 88.799161779253\n    test 1503 line 167 azi2: 145.239198135632  FAILED, KNOWN, expected 145.239198135633\n    test 1504 line 168 lat: -80.240756\n    test 1505 line 168 lon: 170.591261\n    test 1506 line 168 fb: 19.402427\n    test 1507 line 168 lat2: -80.240756380896\n    test 1508 line 168 lon2: 170.591260542730\n    test 1509 line 168 azi2: 19.402427357239\n    test 1510 line 168 lat2: -80.240756380896\n    test 1511 line 168 lon2: 170.591260542730\n    test 1512 line 168 azi2: 19.402427357239\n    test 1513 line 169 lat: 51.976040\n    test 1514 line 169 lon: 165.045244\n    test 1515 line 169 fb: 167.962110\n    test 1516 line 169 lat2: 51.976039799074\n    test 1517 line 169 lon2: 165.045244285456\n    test 1518 line 169 azi2: 167.962110268433\n    test 1519 line 169 lat2: 51.976039799074\n    test 1520 line 169 lon2: 165.045244285456\n    test 1521 line 169 azi2: 167.962110268433\n    test 1522 line 170 lat: 29.365655\n    test 1523 line 170 lon: 91.354349\n    test 1524 line 170 fb: 135.101279\n    test 1525 line 170 lat2: 29.365654873524\n    test 1526 line 170 lon2: 91.354349089561\n    test 1527 line 170 azi2: 135.101278715212\n    test 1528 line 170 lat2: 29.365654873524\n    test 1529 line 170 lon2: 91.354349089561\n    test 1530 line 170 azi2: 135.101278715212\n    test 1531 line 171 lat: 61.745486\n    test 1532 line 171 lon: 142.333199\n    test 1533 line 171 fb: 139.666209\n    test 1534 line 171 lat2: 61.745485817368\n    test 1535 line 171 lon2: 142.333198773096\n    test 1536 line 171 azi2: 139.666208757008\n    test 1537 line 171 lat2: 61.745485817368\n    test 1538 line 171 lon2: 142.333198773096\n    test 1539 line 171 azi2: 139.666208757008\n    test 1540 line 172 lat: 13.414523\n    test 1541 line 172 lon: 39.322993\n    test 1542 line 172 fb: 144.276516\n    test 1543 line 172 lat2: 13.414522997032\n    test 1544 line 172 lon2: 39.322992706733\n    test 1545 line 172 azi2: 144.276515542083\n    test 1546 line 172 lat2: 13.414522997032\n    test 1547 line 172 lon2: 39.322992706733\n    test 1548 line 172 azi2: 144.276515542083\n    test 1549 line 173 lat: -49.831353\n    test 1550 line 173 lon: 72.426738\n    test 1551 line 173 fb: 126.251620\n    test 1552 line 173 lat2: -49.831353332108\n    test 1553 line 173 lon2: 72.426737728887\n    test 1554 line 173 azi2: 126.251620412456\n    test 1555 line 173 lat2: -49.831353332108\n    test 1556 line 173 lon2: 72.426737728887\n    test 1557 line 173 azi2: 126.251620412456\n    test 1558 line 174 lat: 1.822589\n    test 1559 line 174 lon: 53.589208\n    test 1560 line 174 fb: 97.925176\n    test 1561 line 174 lat2: 1.822589208021\n    test 1562 line 174 lon2: 53.589207810481\n    test 1563 line 174 azi2: 97.925176229124\n    test 1564 line 174 lat2: 1.822589208021\n    test 1565 line 174 lon2: 53.589207810481\n    test 1566 line 174 azi2: 97.925176229124\n    test 1567 line 175 lat: -7.987194\n    test 1568 line 175 lon: 49.318809\n    test 1569 line 175 fb: 128.386595\n    test 1570 line 175 lat2: -7.987193900849\n    test 1571 line 175 lon2: 49.318809304076\n    test 1572 line 175 azi2: 128.386594768748\n    test 1573 line 175 lat2: -7.987193900849\n    test 1574 line 175 lon2: 49.318809304075  FAILED, KNOWN, expected 49.318809304076\n    test 1575 line 175 azi2: 128.386594768748\n    test 1576 line 176 lat: -56.807375\n    test 1577 line 176 lon: 4.521802\n    test 1578 line 176 fb: 176.806063\n    test 1579 line 176 lat2: -56.807375049864\n    test 1580 line 176 lon2: 4.521801986353\n    test 1581 line 176 azi2: 176.806062785470\n    test 1582 line 176 lat2: -56.807375049864\n    test 1583 line 176 lon2: 4.521801986353\n    test 1584 line 176 azi2: 176.806062785470\n    test 1585 line 177 lat: -25.969834\n    test 1586 line 177 lon: 64.903749\n    test 1587 line 177 fb: 124.103844\n    test 1588 line 177 lat2: -25.969833883721\n    test 1589 line 177 lon2: 64.903749477059\n    test 1590 line 177 azi2: 124.103844353942\n    test 1591 line 177 lat2: -25.969833883721\n    test 1592 line 177 lon2: 64.903749477059\n    test 1593 line 177 azi2: 124.103844353942\n    test 1594 line 178 lat: 32.807360\n    test 1595 line 178 lon: 65.107962\n    test 1596 line 178 fb: 124.577990\n    test 1597 line 178 lat2: 32.807359742667\n    test 1598 line 178 lon2: 65.107961864983\n    test 1599 line 178 azi2: 124.577990419073\n    test 1600 line 178 lat2: 32.807359742667\n    test 1601 line 178 lon2: 65.107961864983\n    test 1602 line 178 azi2: 124.577990419073\n    test 1603 line 179 lat: -21.552138\n    test 1604 line 179 lon: 102.466022\n    test 1605 line 179 fb: 109.640197\n    test 1606 line 179 lat2: -21.552137872353\n    test 1607 line 179 lon2: 102.466021945025\n    test 1608 line 179 azi2: 109.640197455958\n    test 1609 line 179 lat2: -21.552137872353\n    test 1610 line 179 lon2: 102.466021945025\n    test 1611 line 179 azi2: 109.640197455958\n    test 1612 line 180 lat: -26.271741\n    test 1613 line 180 lon: 158.321581\n    test 1614 line 180 fb: 165.993649\n    test 1615 line 180 lat2: -26.271741383677\n    test 1616 line 180 lon2: 158.321581345077\n    test 1617 line 180 azi2: 165.993649158304  FAILED, KNOWN, expected 165.993649158305\n    test 1618 line 180 lat2: -26.271741383677\n    test 1619 line 180 lon2: 158.321581345077\n    test 1620 line 180 azi2: 165.993649158305\n    test 1621 line 181 lat: 41.023069\n    test 1622 line 181 lon: 155.562542\n    test 1623 line 181 fb: 153.407414\n    test 1624 line 181 lat2: 41.023069113496\n    test 1625 line 181 lon2: 155.562542134179\n    test 1626 line 181 azi2: 153.407413608014\n    test 1627 line 181 lat2: 41.023069113496\n    test 1628 line 181 lon2: 155.562542134179\n    test 1629 line 181 azi2: 153.407413608014\n    test 1630 line 182 lat: 16.445471\n    test 1631 line 182 lon: 165.261461\n    test 1632 line 182 fb: 165.424806\n    test 1633 line 182 lat2: 16.445470954340\n    test 1634 line 182 lon2: 165.261461448873\n    test 1635 line 182 azi2: 165.424806257119\n    test 1636 line 182 lat2: 16.445470954340\n    test 1637 line 182 lon2: 165.261461448873\n    test 1638 line 182 azi2: 165.424806257119\n    test 1639 line 183 lat: -3.222107\n    test 1640 line 183 lon: 84.129727\n    test 1641 line 183 fb: 154.083851\n    test 1642 line 183 lat2: -3.222107095788\n    test 1643 line 183 lon2: 84.129726900596\n    test 1644 line 183 azi2: 154.083851495688\n    test 1645 line 183 lat2: -3.222107095788\n    test 1646 line 183 lon2: 84.129726900596\n    test 1647 line 183 azi2: 154.083851495688\n    test 1648 line 184 lat: 7.811710\n    test 1649 line 184 lon: 123.143308\n    test 1650 line 184 fb: 123.998106\n    test 1651 line 184 lat2: 7.811709739638\n    test 1652 line 184 lon2: 123.143308309660\n    test 1653 line 184 azi2: 123.998105582525\n    test 1654 line 184 lat2: 7.811709739638\n    test 1655 line 184 lon2: 123.143308309660\n    test 1656 line 184 azi2: 123.998105582525\n    test 1657 line 185 lat: -45.235922\n    test 1658 line 185 lon: 129.419283\n    test 1659 line 185 fb: 91.493406\n    test 1660 line 185 lat2: -45.235922276879\n    test 1661 line 185 lon2: 129.419282696458\n    test 1662 line 185 azi2: 91.493405946969  FAILED, KNOWN, expected 91.493405946970\n    test 1663 line 185 lat2: -45.235922276879\n    test 1664 line 185 lon2: 129.419282696458\n    test 1665 line 185 azi2: 91.493405946970\n    test 1666 line 186 lat: -43.047563\n    test 1667 line 186 lon: 121.565541\n    test 1668 line 186 fb: 99.850543\n    test 1669 line 186 lat2: -43.047563118772\n    test 1670 line 186 lon2: 121.565540573788\n    test 1671 line 186 azi2: 99.850542926816\n    test 1672 line 186 lat2: -43.047563118772\n    test 1673 line 186 lon2: 121.565540573788\n    test 1674 line 186 azi2: 99.850542926816\n    test 1675 line 187 lat: -22.881002\n    test 1676 line 187 lon: 159.765030\n    test 1677 line 187 fb: 60.474878\n    test 1678 line 187 lat2: -22.881001889671\n    test 1679 line 187 lon2: 159.765030106650\n    test 1680 line 187 azi2: 60.474878214384\n    test 1681 line 187 lat2: -22.881001889671\n    test 1682 line 187 lon2: 159.765030106650\n    test 1683 line 187 azi2: 60.474878214384\n    test 1684 line 188 lat: -15.011946\n    test 1685 line 188 lon: 55.594746\n    test 1686 line 188 fb: 121.838839\n    test 1687 line 188 lat2: -15.011946251300\n    test 1688 line 188 lon2: 55.594746074667\n    test 1689 line 188 azi2: 121.838839080255\n    test 1690 line 188 lat2: -15.011946251300\n    test 1691 line 188 lon2: 55.594746074667\n    test 1692 line 188 azi2: 121.838839080255\n    test 1693 line 189 lat: -29.011142\n    test 1694 line 189 lon: 0.856639\n    test 1695 line 189 fb: 178.744943\n    test 1696 line 189 lat2: -29.011142183887\n    test 1697 line 189 lon2: 0.856639457160\n    test 1698 line 189 azi2: 178.744943180805\n    test 1699 line 189 lat2: -29.011142183887\n    test 1700 line 189 lon2: 0.856639457160\n    test 1701 line 189 azi2: 178.744943180805\n    test 1702 line 190 lat: -0.353001\n    test 1703 line 190 lon: 48.401255\n    test 1704 line 190 fb: 95.612551\n    test 1705 line 190 lat2: -0.353000909367\n    test 1706 line 190 lon2: 48.401254652488  FAILED, KNOWN, expected 48.401254652487\n    test 1707 line 190 azi2: 95.612551044908\n    test 1708 line 190 lat2: -0.353000909367\n    test 1709 line 190 lon2: 48.401254652487\n    test 1710 line 190 azi2: 95.612551044908\n    test 1711 line 191 lat: 18.843341\n    test 1712 line 191 lon: 105.405456\n    test 1713 line 191 fb: 145.215722\n    test 1714 line 191 lat2: 18.843340962664\n    test 1715 line 191 lon2: 105.405456105476\n    test 1716 line 191 azi2: 145.215722323742\n    test 1717 line 191 lat2: 18.843340962664\n    test 1718 line 191 lon2: 105.405456105476\n    test 1719 line 191 azi2: 145.215722323742\n    test 1720 line 192 lat: 19.672225\n    test 1721 line 192 lon: 64.132980\n    test 1722 line 192 fb: 131.894863\n    test 1723 line 192 lat2: 19.672224913225\n    test 1724 line 192 lon2: 64.132979510420\n    test 1725 line 192 azi2: 131.894863434272\n    test 1726 line 192 lat2: 19.672224913225\n    test 1727 line 192 lon2: 64.132979510420\n    test 1728 line 192 azi2: 131.894863434272\n    test 1729 line 193 lat: -44.315074\n    test 1730 line 193 lon: 132.711860\n    test 1731 line 193 fb: 57.236875\n    test 1732 line 193 lat2: -44.315073617889\n    test 1733 line 193 lon2: 132.711860436437\n    test 1734 line 193 azi2: 57.236875169148\n    test 1735 line 193 lat2: -44.315073617889\n    test 1736 line 193 lon2: 132.711860436437\n    test 1737 line 193 azi2: 57.236875169148\n    test 1738 line 194 lat: 71.956294\n    test 1739 line 194 lon: 23.707587\n    test 1740 line 194 fb: 28.235947\n    test 1741 line 194 lat2: 71.956293555096\n    test 1742 line 194 lon2: 23.707587498943\n    test 1743 line 194 azi2: 28.235946630177\n    test 1744 line 194 lat2: 71.956293555096\n    test 1745 line 194 lon2: 23.707587498943\n    test 1746 line 194 azi2: 28.235946630177\n    test 1747 line 195 lat: -1.372652\n    test 1748 line 195 lon: 37.704231\n    test 1749 line 195 fb: 92.737862\n    test 1750 line 195 lat2: -1.372652195171\n    test 1751 line 195 lon2: 37.704230798676\n    test 1752 line 195 azi2: 92.737862264368\n    test 1753 line 195 lat2: -1.372652195171\n    test 1754 line 195 lon2: 37.704230798676\n    test 1755 line 195 azi2: 92.737862264368\n    test 1756 line 196 lat: 32.377148\n    test 1757 line 196 lon: 148.638709\n    test 1758 line 196 fb: 164.415210\n    test 1759 line 196 lat2: 32.377147634362\n    test 1760 line 196 lon2: 148.638709383249\n    test 1761 line 196 azi2: 164.415210005459\n    test 1762 line 196 lat2: 32.377147634362\n    test 1763 line 196 lon2: 148.638709383249\n    test 1764 line 196 azi2: 164.415210005459\n    test 1765 line 197 lat: 77.876832\n    test 1766 line 197 lon: 86.074591\n    test 1767 line 197 fb: 93.017705\n    test 1768 line 197 lat2: 77.876831887051\n    test 1769 line 197 lon2: 86.074590642864\n    test 1770 line 197 azi2: 93.017704501543\n    test 1771 line 197 lat2: 77.876831887051\n    test 1772 line 197 lon2: 86.074590642864\n    test 1773 line 197 azi2: 93.017704501543\n    test 1774 line 198 lat: -7.405195\n    test 1775 line 198 lon: 11.962469\n    test 1776 line 198 fb: 123.788484\n    test 1777 line 198 lat2: -7.405194804958\n    test 1778 line 198 lon2: 11.962468510681\n    test 1779 line 198 azi2: 123.788484407208\n    test 1780 line 198 lat2: -7.405194804958\n    test 1781 line 198 lon2: 11.962468510681\n    test 1782 line 198 azi2: 123.788484407208\n    test 1783 line 199 lat: -75.001311\n    test 1784 line 199 lon: 173.334144\n    test 1785 line 199 fb: 8.916523\n    test 1786 line 199 lat2: -75.001310556015\n    test 1787 line 199 lon2: 173.334144385512\n    test 1788 line 199 azi2: 8.916523271572\n    test 1789 line 199 lat2: -75.001310556015\n    test 1790 line 199 lon2: 173.334144385512\n    test 1791 line 199 azi2: 8.916523271572\n    test 1792 line 200 lat: -33.145967\n    test 1793 line 200 lon: 32.349241\n    test 1794 line 200 fb: 154.035798\n    test 1795 line 200 lat2: -33.145966631435\n    test 1796 line 200 lon2: 32.349240627001\n    test 1797 line 200 azi2: 154.035798269631\n    test 1798 line 200 lat2: -33.145966631435\n    test 1799 line 200 lon2: 32.349240627001\n    test 1800 line 200 azi2: 154.035798269631\n    test 1801 line 201 lat: 32.938605\n    test 1802 line 201 lon: 98.042857\n    test 1803 line 201 fb: 124.954750\n    test 1804 line 201 lat2: 32.938605083648\n    test 1805 line 201 lon2: 98.042857137838\n    test 1806 line 201 azi2: 124.954750401990\n    test 1807 line 201 lat2: 32.938605083648\n    test 1808 line 201 lon2: 98.042857137838\n    test 1809 line 201 azi2: 124.954750401990\n    test 1810 line 202 lat: 18.924315\n    test 1811 line 202 lon: 20.712136\n    test 1812 line 202 fb: 118.058457\n    test 1813 line 202 lat2: 18.924314631117\n    test 1814 line 202 lon2: 20.712135699713\n    test 1815 line 202 azi2: 118.058457437327\n    test 1816 line 202 lat2: 18.924314631117\n    test 1817 line 202 lon2: 20.712135699713\n    test 1818 line 202 azi2: 118.058457437327\n    test 1819 line 203 lat: 34.281652\n    test 1820 line 203 lon: 66.815398\n    test 1821 line 203 fb: 147.693080\n    test 1822 line 203 lat2: 34.281652047931\n    test 1823 line 203 lon2: 66.815398066147\n    test 1824 line 203 azi2: 147.693079659533\n    test 1825 line 203 lat2: 34.281652047931\n    test 1826 line 203 lon2: 66.815398066147\n    test 1827 line 203 azi2: 147.693079659533\n    test 1828 line 204 lat: -56.830635\n    test 1829 line 204 lon: 2.137046\n    test 1830 line 204 fb: 178.041562\n    test 1831 line 204 lat2: -56.830634769513\n    test 1832 line 204 lon2: 2.137046322217\n    test 1833 line 204 azi2: 178.041562126305\n    test 1834 line 204 lat2: -56.830634769513\n    test 1835 line 204 lon2: 2.137046322217\n    test 1836 line 204 azi2: 178.041562126305\n    test 1837 line 205 lat: -68.481893\n    test 1838 line 205 lon: 107.036720\n    test 1839 line 205 fb: 152.384477\n    test 1840 line 205 lat2: -68.481892540174\n    test 1841 line 205 lon2: 107.036720123074\n    test 1842 line 205 azi2: 152.384476595412\n    test 1843 line 205 lat2: -68.481892540174\n    test 1844 line 205 lon2: 107.036720123074\n    test 1845 line 205 azi2: 152.384476595412\n    test 1846 line 206 lat: -22.502042\n    test 1847 line 206 lon: 171.827566\n    test 1848 line 206 fb: 158.834328\n    test 1849 line 206 lat2: -22.502042312255\n    test 1850 line 206 lon2: 171.827566033608\n    test 1851 line 206 azi2: 158.834327972407\n    test 1852 line 206 lat2: -22.502042312255\n    test 1853 line 206 lon2: 171.827566033608\n    test 1854 line 206 azi2: 158.834327972407\n    test 1855 line 207 lat: -4.504199\n    test 1856 line 207 lon: 138.544338\n    test 1857 line 207 fb: 123.633526\n    test 1858 line 207 lat2: -4.504199404775\n    test 1859 line 207 lon2: 138.544338028736\n    test 1860 line 207 azi2: 123.633526406205\n    test 1861 line 207 lat2: -4.504199404775\n    test 1862 line 207 lon2: 138.544338028736\n    test 1863 line 207 azi2: 123.633526406205\n    test 1864 line 208 lat: -9.226343\n    test 1865 line 208 lon: 120.310050\n    test 1866 line 208 fb: 142.789186\n    test 1867 line 208 lat2: -9.226343110712\n    test 1868 line 208 lon2: 120.310050148004\n    test 1869 line 208 azi2: 142.789186422068\n    test 1870 line 208 lat2: -9.226343110712\n    test 1871 line 208 lon2: 120.310050148004\n    test 1872 line 208 azi2: 142.789186422068\n    test 1873 line 209 lat: -51.684044\n    test 1874 line 209 lon: 137.764140\n    test 1875 line 209 fb: 56.844891\n    test 1876 line 209 lat2: -51.684044075582\n    test 1877 line 209 lon2: 137.764139808689\n    test 1878 line 209 azi2: 56.844890846790\n    test 1879 line 209 lat2: -51.684044075582\n    test 1880 line 209 lon2: 137.764139808689\n    test 1881 line 209 azi2: 56.844890846790\n    test 1882 line 210 lat: 19.467357\n    test 1883 line 210 lon: 93.870087\n    test 1884 line 210 fb: 129.125491\n    test 1885 line 210 lat2: 19.467357090193\n    test 1886 line 210 lon2: 93.870087361293\n    test 1887 line 210 azi2: 129.125490840370\n    test 1888 line 210 lat2: 19.467357090193\n    test 1889 line 210 lon2: 93.870087361293\n    test 1890 line 210 azi2: 129.125490840370\n    test 1891 line 211 lat: 33.594608\n    test 1892 line 211 lon: 58.324143\n    test 1893 line 211 fb: 101.975372\n    test 1894 line 211 lat2: 33.594607695347\n    test 1895 line 211 lon2: 58.324143410893\n    test 1896 line 211 azi2: 101.975372004111\n    test 1897 line 211 lat2: 33.594607695347\n    test 1898 line 211 lon2: 58.324143410893\n    test 1899 line 211 azi2: 101.975372004111\n    test 1900 line 212 lat: -1.184701\n    test 1901 line 212 lon: 92.834285\n    test 1902 line 212 fb: 134.201097\n    test 1903 line 212 lat2: -1.184701423910\n    test 1904 line 212 lon2: 92.834285031504\n    test 1905 line 212 azi2: 134.201097217000\n    test 1906 line 212 lat2: -1.184701423910\n    test 1907 line 212 lon2: 92.834285031504\n    test 1908 line 212 azi2: 134.201097217000\n    test 1909 line 213 lat: 5.878639\n    test 1910 line 213 lon: 90.756173\n    test 1911 line 213 fb: 156.936699\n    test 1912 line 213 lat2: 5.878638801092\n    test 1913 line 213 lon2: 90.756172727682\n    test 1914 line 213 azi2: 156.936698928215\n    test 1915 line 213 lat2: 5.878638801092\n    test 1916 line 213 lon2: 90.756172727682\n    test 1917 line 213 azi2: 156.936698928215\n    test 1918 line 214 lat: 47.611646\n    test 1919 line 214 lon: 131.482218\n    test 1920 line 214 fb: 152.077667\n    test 1921 line 214 lat2: 47.611646039058\n    test 1922 line 214 lon2: 131.482217984255\n    test 1923 line 214 azi2: 152.077667341138\n    test 1924 line 214 lat2: 47.611646039058\n    test 1925 line 214 lon2: 131.482217984255\n    test 1926 line 214 azi2: 152.077667341138\n    test 1927 line 215 lat: 13.906234\n    test 1928 line 215 lon: 115.526238\n    test 1929 line 215 fb: 130.769627\n    test 1930 line 215 lat2: 13.906233945801\n    test 1931 line 215 lon2: 115.526238064488\n    test 1932 line 215 azi2: 130.769627488545\n    test 1933 line 215 lat2: 13.906233945801\n    test 1934 line 215 lon2: 115.526238064488\n    test 1935 line 215 azi2: 130.769627488545\n    test 1936 line 216 lat: 3.675485\n    test 1937 line 216 lon: 80.781862\n    test 1938 line 216 fb: 94.188426\n    test 1939 line 216 lat2: 3.675485213596\n    test 1940 line 216 lon2: 80.781861923838\n    test 1941 line 216 azi2: 94.188426367881\n    test 1942 line 216 lat2: 3.675485213596\n    test 1943 line 216 lon2: 80.781861923838\n    test 1944 line 216 azi2: 94.188426367881\n    test 1945 line 217 lat: 68.665600\n    test 1946 line 217 lon: 21.503123\n    test 1947 line 217 fb: 107.667810\n    test 1948 line 217 lat2: 68.665599857810\n    test 1949 line 217 lon2: 21.503123449290\n    test 1950 line 217 azi2: 107.667809564608\n    test 1951 line 217 lat2: 68.665599857810\n    test 1952 line 217 lon2: 21.503123449290\n    test 1953 line 217 azi2: 107.667809564608\n    test 1954 line 218 lat: -60.791732\n    test 1955 line 218 lon: 82.476063\n    test 1956 line 218 fb: 117.665953\n    test 1957 line 218 lat2: -60.791732218314\n    test 1958 line 218 lon2: 82.476062801971\n    test 1959 line 218 azi2: 117.665952598924\n    test 1960 line 218 lat2: -60.791732218314\n    test 1961 line 218 lon2: 82.476062801971\n    test 1962 line 218 azi2: 117.665952598924\n    test 1963 line 219 lat: -33.122376\n    test 1964 line 219 lon: 89.871476\n    test 1965 line 219 fb: 124.068098\n    test 1966 line 219 lat2: -33.122375734012\n    test 1967 line 219 lon2: 89.871476211443\n    test 1968 line 219 azi2: 124.068098444465\n    test 1969 line 219 lat2: -33.122375734012\n    test 1970 line 219 lon2: 89.871476211443\n    test 1971 line 219 azi2: 124.068098444465\n    test 1972 line 220 lat: -34.085934\n    test 1973 line 220 lon: 117.886549\n    test 1974 line 220 fb: 93.366647\n    test 1975 line 220 lat2: -34.085934037207\n    test 1976 line 220 lon2: 117.886548615401\n    test 1977 line 220 azi2: 93.366647127153\n    test 1978 line 220 lat2: -34.085934037207\n    test 1979 line 220 lon2: 117.886548615401\n    test 1980 line 220 azi2: 93.366647127153\n    test 1981 line 221 lat: -43.746811\n    test 1982 line 221 lon: 107.199939\n    test 1983 line 221 fb: 101.218435\n    test 1984 line 221 lat2: -43.746811413059\n    test 1985 line 221 lon2: 107.199938541143\n    test 1986 line 221 azi2: 101.218434581373\n    test 1987 line 221 lat2: -43.746811413059\n    test 1988 line 221 lon2: 107.199938541143\n    test 1989 line 221 azi2: 101.218434581373\n    test 1990 line 222 lat: -44.514857\n    test 1991 line 222 lon: 19.560361\n    test 1992 line 222 fb: 166.449925\n    test 1993 line 222 lat2: -44.514857277517\n    test 1994 line 222 lon2: 19.560360617266\n    test 1995 line 222 azi2: 166.449925135617\n    test 1996 line 222 lat2: -44.514857277517\n    test 1997 line 222 lon2: 19.560360617266\n    test 1998 line 222 azi2: 166.449925135617\n    test 1999 line 223 lat: -18.049262\n    test 2000 line 223 lon: 42.099193\n    test 2001 line 223 fb: 158.127141\n    test 2002 line 223 lat2: -18.049261796697\n    test 2003 line 223 lon2: 42.099193394607\n    test 2004 line 223 azi2: 158.127140901909\n    test 2005 line 223 lat2: -18.049261796697\n    test 2006 line 223 lon2: 42.099193394607\n    test 2007 line 223 azi2: 158.127140901909\n    test 2008 line 224 lat: 9.832902\n    test 2009 line 224 lon: 51.448057\n    test 2010 line 224 fb: 114.348703\n    test 2011 line 224 lat2: 9.832901687662\n    test 2012 line 224 lon2: 51.448057387281\n    test 2013 line 224 azi2: 114.348702917675\n    test 2014 line 224 lat2: 9.832901687662\n    test 2015 line 224 lon2: 51.448057387281\n    test 2016 line 224 azi2: 114.348702917675\n    test 2017 line 225 lat: -57.516443\n    test 2018 line 225 lon: 64.700933\n    test 2019 line 225 fb: 137.459801\n    test 2020 line 225 lat2: -57.516443280706\n    test 2021 line 225 lon2: 64.700933124813\n    test 2022 line 225 azi2: 137.459801078685\n    test 2023 line 225 lat2: -57.516443280706\n    test 2024 line 225 lon2: 64.700933124813\n    test 2025 line 225 azi2: 137.459801078685\n    test 2026 line 226 lat: -23.072600\n    test 2027 line 226 lon: 95.392602\n    test 2028 line 226 fb: 140.119143\n    test 2029 line 226 lat2: -23.072599811854\n    test 2030 line 226 lon2: 95.392601883769\n    test 2031 line 226 azi2: 140.119143469104\n    test 2032 line 226 lat2: -23.072599811854\n    test 2033 line 226 lon2: 95.392601883769\n    test 2034 line 226 azi2: 140.119143469104\n    test 2035 line 227 lat: -45.117254\n    test 2036 line 227 lon: 97.361647\n    test 2037 line 227 fb: 97.339041\n    test 2038 line 227 lat2: -45.117253614100\n    test 2039 line 227 lon2: 97.361647352714\n    test 2040 line 227 azi2: 97.339040559115\n    test 2041 line 227 lat2: -45.117253614100\n    test 2042 line 227 lon2: 97.361647352714\n    test 2043 line 227 azi2: 97.339040559115\n    test 2044 line 228 lat: -11.277328\n    test 2045 line 228 lon: 19.602358\n    test 2046 line 228 fb: 156.779730\n    test 2047 line 228 lat2: -11.277328262947\n    test 2048 line 228 lon2: 19.602358024471\n    test 2049 line 228 azi2: 156.779729902321\n    test 2050 line 228 lat2: -11.277328262947\n    test 2051 line 228 lon2: 19.602358024471\n    test 2052 line 228 azi2: 156.779729902321\n    test 2053 line 229 lat: -4.823524\n    test 2054 line 229 lon: 164.626842\n    test 2055 line 229 fb: 151.314797\n    test 2056 line 229 lat2: -4.823524348693\n    test 2057 line 229 lon2: 164.626841855534\n    test 2058 line 229 azi2: 151.314796841238\n    test 2059 line 229 lat2: -4.823524348693\n    test 2060 line 229 lon2: 164.626841855534\n    test 2061 line 229 azi2: 151.314796841238\n    test 2062 line 230 lat: 36.317088\n    test 2063 line 230 lon: 89.326155\n    test 2064 line 230 fb: 94.589052\n    test 2065 line 230 lat2: 36.317087922282\n    test 2066 line 230 lon2: 89.326155365943\n    test 2067 line 230 azi2: 94.589051951235\n    test 2068 line 230 lat2: 36.317087922282\n    test 2069 line 230 lon2: 89.326155365943\n    test 2070 line 230 azi2: 94.589051951235\n    test 2071 line 231 lat: 3.975433\n    test 2072 line 231 lon: 105.460359\n    test 2073 line 231 fb: 126.257925\n    test 2074 line 231 lat2: 3.975432760073\n    test 2075 line 231 lon2: 105.460358584149\n    test 2076 line 231 azi2: 126.257925455058\n    test 2077 line 231 lat2: 3.975432760073\n    test 2078 line 231 lon2: 105.460358584149\n    test 2079 line 231 azi2: 126.257925455058\n    test 2080 line 232 lat: 28.815984\n    test 2081 line 232 lon: 89.807394\n    test 2082 line 232 fb: 116.984375\n    test 2083 line 232 lat2: 28.815983592511\n    test 2084 line 232 lon2: 89.807393686834\n    test 2085 line 232 azi2: 116.984374981602\n    test 2086 line 232 lat2: 28.815983592511\n    test 2087 line 232 lon2: 89.807393686834\n    test 2088 line 232 azi2: 116.984374981602\n    test 2089 line 233 lat: 66.161717\n    test 2090 line 233 lon: 63.218655\n    test 2091 line 233 fb: 88.869959\n    test 2092 line 233 lat2: 66.161716765270\n    test 2093 line 233 lon2: 63.218655052918\n    test 2094 line 233 azi2: 88.869959091488\n    test 2095 line 233 lat2: 66.161716765270\n    test 2096 line 233 lon2: 63.218655052918\n    test 2097 line 233 azi2: 88.869959091488\n    test 2098 line 234 lat: 74.859972\n    test 2099 line 234 lon: 53.523361\n    test 2100 line 234 fb: 58.125008\n    test 2101 line 234 lat2: 74.859971601090\n    test 2102 line 234 lon2: 53.523360738831\n    test 2103 line 234 azi2: 58.125008091802\n    test 2104 line 234 lat2: 74.859971601090\n    test 2105 line 234 lon2: 53.523360738831\n    test 2106 line 234 azi2: 58.125008091802\n    test 2107 line 235 lat: -0.265481\n    test 2108 line 235 lon: 79.537677\n    test 2109 line 235 fb: 112.945830\n    test 2110 line 235 lat2: -0.265481234322\n    test 2111 line 235 lon2: 79.537677388981\n    test 2112 line 235 azi2: 112.945829781102\n    test 2113 line 235 lat2: -0.265481234322\n    test 2114 line 235 lon2: 79.537677388981\n    test 2115 line 235 azi2: 112.945829781102\n    test 2116 line 236 lat: -12.099598\n    test 2117 line 236 lon: 155.371356\n    test 2118 line 236 fb: 76.454292\n    test 2119 line 236 lat2: -12.099598021004\n    test 2120 line 236 lon2: 155.371356164845\n    test 2121 line 236 azi2: 76.454291606612\n    test 2122 line 236 lat2: -12.099598021004\n    test 2123 line 236 lon2: 155.371356164845\n    test 2124 line 236 azi2: 76.454291606612\n    test 2125 line 237 lat: -6.746465\n    test 2126 line 237 lon: 19.102484\n    test 2127 line 237 fb: 149.342236\n    test 2128 line 237 lat2: -6.746464854112\n    test 2129 line 237 lon2: 19.102484309526\n    test 2130 line 237 azi2: 149.342236428405\n    test 2131 line 237 lat2: -6.746464854112\n    test 2132 line 237 lon2: 19.102484309526\n    test 2133 line 237 azi2: 149.342236428405\n    test 2134 line 238 lat: 0.663830\n    test 2135 line 238 lon: 101.295721\n    test 2136 line 238 fb: 133.862626\n    test 2137 line 238 lat2: 0.663830251510\n    test 2138 line 238 lon2: 101.295720736944\n    test 2139 line 238 azi2: 133.862626019473\n    test 2140 line 238 lat2: 0.663830251510\n    test 2141 line 238 lon2: 101.295720736944\n    test 2142 line 238 azi2: 133.862626019473\n    test 2143 line 239 lat: -61.764624\n    test 2144 line 239 lon: 148.537522\n    test 2145 line 239 fb: 149.298772\n    test 2146 line 239 lat2: -61.764623993813\n    test 2147 line 239 lon2: 148.537521922087\n    test 2148 line 239 azi2: 149.298771734214\n    test 2149 line 239 lat2: -61.764623993813\n    test 2150 line 239 lon2: 148.537521922087\n    test 2151 line 239 azi2: 149.298771734214\n    test 2152 line 240 lat: 14.505122\n    test 2153 line 240 lon: 111.665519\n    test 2154 line 240 fb: 97.740222\n    test 2155 line 240 lat2: 14.505121777043\n    test 2156 line 240 lon2: 111.665518774379\n    test 2157 line 240 azi2: 97.740221959573\n    test 2158 line 240 lat2: 14.505121777043\n    test 2159 line 240 lon2: 111.665518774379\n    test 2160 line 240 azi2: 97.740221959573\n    test 2161 line 241 lat: -24.713205\n    test 2162 line 241 lon: 34.159384\n    test 2163 line 241 fb: 125.866132\n    test 2164 line 241 lat2: -24.713205327375\n    test 2165 line 241 lon2: 34.159384140577\n    test 2166 line 241 azi2: 125.866132443875\n    test 2167 line 241 lat2: -24.713205327375\n    test 2168 line 241 lon2: 34.159384140577\n    test 2169 line 241 azi2: 125.866132443875\n    test 2170 line 242 lat: 50.480262\n    test 2171 line 242 lon: 42.263850\n    test 2172 line 242 fb: 153.395659\n    test 2173 line 242 lat2: 50.480261762893\n    test 2174 line 242 lon2: 42.263849601327\n    test 2175 line 242 azi2: 153.395658919028\n    test 2176 line 242 lat2: 50.480261762893\n    test 2177 line 242 lon2: 42.263849601327\n    test 2178 line 242 azi2: 153.395658919028\n    test 2179 line 243 lat: 11.787247\n    test 2180 line 243 lon: 49.506460\n    test 2181 line 243 fb: 120.836778\n    test 2182 line 243 lat2: 11.787247309610\n    test 2183 line 243 lon2: 49.506459509702\n    test 2184 line 243 azi2: 120.836778496206\n    test 2185 line 243 lat2: 11.787247309610\n    test 2186 line 243 lon2: 49.506459509702\n    test 2187 line 243 azi2: 120.836778496206\n    test 2188 line 244 lat: -19.956674\n    test 2189 line 244 lon: 14.599479\n    test 2190 line 244 fb: 177.883855\n    test 2191 line 244 lat2: -19.956673621927\n    test 2192 line 244 lon2: 14.599479227718\n    test 2193 line 244 azi2: 177.883855088778\n    test 2194 line 244 lat2: -19.956673621927\n    test 2195 line 244 lon2: 14.599479227718\n    test 2196 line 244 azi2: 177.883855088778\n    test 2197 line 245 lat: 0.738566\n    test 2198 line 245 lon: 12.600972\n    test 2199 line 245 fb: 176.085445\n    test 2200 line 245 lat2: 0.738565517815\n    test 2201 line 245 lon2: 12.600972006927\n    test 2202 line 245 azi2: 176.085445031797\n    test 2203 line 245 lat2: 0.738565517815\n    test 2204 line 245 lon2: 12.600972006927\n    test 2205 line 245 azi2: 176.085445031797\n    test 2206 line 246 lat: 25.799128\n    test 2207 line 246 lon: 9.800259\n    test 2208 line 246 fb: 166.282764\n    test 2209 line 246 lat2: 25.799128425384\n    test 2210 line 246 lon2: 9.800259258495\n    test 2211 line 246 azi2: 166.282764024264\n    test 2212 line 246 lat2: 25.799128425384\n    test 2213 line 246 lon2: 9.800259258495\n    test 2214 line 246 azi2: 166.282764024264\n    test 2215 line 247 lat: -3.897277\n    test 2216 line 247 lon: 16.693319\n    test 2217 line 247 fb: 168.780736\n    test 2218 line 247 lat2: -3.897277132184\n    test 2219 line 247 lon2: 16.693318601970\n    test 2220 line 247 azi2: 168.780736094343\n    test 2221 line 247 lat2: -3.897277132184\n    test 2222 line 247 lon2: 16.693318601970\n    test 2223 line 247 azi2: 168.780736094343\n    test 2224 line 248 lat: 2.479585\n    test 2225 line 248 lon: 72.317321\n    test 2226 line 248 fb: 126.935932\n    test 2227 line 248 lat2: 2.479585385319\n    test 2228 line 248 lon2: 72.317321261259\n    test 2229 line 248 azi2: 126.935932221711\n    test 2230 line 248 lat2: 2.479585385319\n    test 2231 line 248 lon2: 72.317321261259\n    test 2232 line 248 azi2: 126.935932221711\n    test 2233 line 249 lat: -0.836621\n    test 2234 line 249 lon: 2.490193\n    test 2235 line 249 fb: 150.640498\n    test 2236 line 249 lat2: -0.836621274662\n    test 2237 line 249 lon2: 2.490192836679\n    test 2238 line 249 azi2: 150.640498065221\n    test 2239 line 249 lat2: -0.836621274662\n    test 2240 line 249 lon2: 2.490192836679\n    test 2241 line 249 azi2: 150.640498065221\n    test 2242 line 250 lat: -69.098227\n    test 2243 line 250 lon: 43.929874\n    test 2244 line 250 fb: 143.378404\n    test 2245 line 250 lat2: -69.098226894675\n    test 2246 line 250 lon2: 43.929873562507\n    test 2247 line 250 azi2: 143.378403982035\n    test 2248 line 250 lat2: -69.098226894675\n    test 2249 line 250 lon2: 43.929873562507\n    test 2250 line 250 azi2: 143.378403982035\n    test 2251 line 251 lat: 19.156121\n    test 2252 line 251 lon: 130.658473\n    test 2253 line 251 fb: 136.204475\n    test 2254 line 251 lat2: 19.156121137418\n    test 2255 line 251 lon2: 130.658473280949\n    test 2256 line 251 azi2: 136.204475163250\n    test 2257 line 251 lat2: 19.156121137418\n    test 2258 line 251 lon2: 130.658473280949\n    test 2259 line 251 azi2: 136.204475163250\n    test 2260 line 252 lat: 68.881949\n    test 2261 line 252 lon: 79.375865\n    test 2262 line 252 fb: 99.052732\n    test 2263 line 252 lat2: 68.881948915820\n    test 2264 line 252 lon2: 79.375865154434  FAILED, KNOWN, expected 79.375865154433\n    test 2265 line 252 azi2: 99.052731550675\n    test 2266 line 252 lat2: 68.881948915820\n    test 2267 line 252 lon2: 79.375865154434  FAILED, KNOWN, expected 79.375865154433\n    test 2268 line 252 azi2: 99.052731550675\n    test 2269 line 253 lat: -23.509016\n    test 2270 line 253 lon: 122.232226\n    test 2271 line 253 fb: 90.354604\n    test 2272 line 253 lat2: -23.509015988874\n    test 2273 line 253 lon2: 122.232226283491\n    test 2274 line 253 azi2: 90.354603607380\n    test 2275 line 253 lat2: -23.509015988874\n    test 2276 line 253 lon2: 122.232226283491\n    test 2277 line 253 azi2: 90.354603607380\n    test 2278 line 254 lat: -64.950636\n    test 2279 line 254 lon: 70.184354\n    test 2280 line 254 fb: 122.478937\n    test 2281 line 254 lat2: -64.950635804577\n    test 2282 line 254 lon2: 70.184354384370\n    test 2283 line 254 azi2: 122.478937039089\n    test 2284 line 254 lat2: -64.950635804577\n    test 2285 line 254 lon2: 70.184354384370\n    test 2286 line 254 azi2: 122.478937039089\n    test 2287 line 255 lat: 4.931109\n    test 2288 line 255 lon: 176.100221\n    test 2289 line 255 fb: 175.754221\n    test 2290 line 255 lat2: 4.931108669549\n    test 2291 line 255 lon2: 176.100220910178\n    test 2292 line 255 azi2: 175.754221027085\n    test 2293 line 255 lat2: 4.931108669549\n    test 2294 line 255 lon2: 176.100220910178\n    test 2295 line 255 azi2: 175.754221027085\n    test 2296 line 256 lat: -35.503236\n    test 2297 line 256 lon: 122.767107\n    test 2298 line 256 fb: 94.201020\n    test 2299 line 256 lat2: -35.503236005727\n    test 2300 line 256 lon2: 122.767107174014\n    test 2301 line 256 azi2: 94.201020059324\n    test 2302 line 256 lat2: -35.503236005727\n    test 2303 line 256 lon2: 122.767107174014\n    test 2304 line 256 azi2: 94.201020059324\n    test 2305 line 257 lat: 58.728016\n    test 2306 line 257 lon: 76.607531\n    test 2307 line 257 fb: 114.353509\n    test 2308 line 257 lat2: 58.728016150448\n    test 2309 line 257 lon2: 76.607530844045\n    test 2310 line 257 azi2: 114.353508957613\n    test 2311 line 257 lat2: 58.728016150448\n    test 2312 line 257 lon2: 76.607530844045\n    test 2313 line 257 azi2: 114.353508957613\n    test 2314 line 258 lat: 13.725793\n    test 2315 line 258 lon: 60.384503\n    test 2316 line 258 fb: 102.783242\n    test 2317 line 258 lat2: 13.725792757601\n    test 2318 line 258 lon2: 60.384502867486\n    test 2319 line 258 azi2: 102.783241874789\n    test 2320 line 258 lat2: 13.725792757601\n    test 2321 line 258 lon2: 60.384502867486\n    test 2322 line 258 azi2: 102.783241874789\n    test 2323 line 259 lat: 40.298524\n    test 2324 line 259 lon: 59.957993\n    test 2325 line 259 fb: 90.056366\n    test 2326 line 259 lat2: 40.298523592677\n    test 2327 line 259 lon2: 59.957993458231\n    test 2328 line 259 azi2: 90.056365696933\n    test 2329 line 259 lat2: 40.298523592677\n    test 2330 line 259 lon2: 59.957993458231\n    test 2331 line 259 azi2: 90.056365696933\n    test 2332 line 260 lat: 21.526222\n    test 2333 line 260 lon: 19.836420\n    test 2334 line 260 fb: 89.081274\n    test 2335 line 260 lat2: 21.526221960544\n    test 2336 line 260 lon2: 19.836419824899\n    test 2337 line 260 azi2: 89.081274273400\n    test 2338 line 260 lat2: 21.526221960544\n    test 2339 line 260 lon2: 19.836419824899\n    test 2340 line 260 azi2: 89.081274273400\n    test 2341 line 261 lat: -65.269872\n    test 2342 line 261 lon: 134.049515\n    test 2343 line 261 fb: 54.613515\n    test 2344 line 261 lat2: -65.269872123888\n    test 2345 line 261 lon2: 134.049514626723\n    test 2346 line 261 azi2: 54.613514542799\n    test 2347 line 261 lat2: -65.269872123888\n    test 2348 line 261 lon2: 134.049514626723\n    test 2349 line 261 azi2: 54.613514542799\n    test 2350 line 262 lat: -47.687068\n    test 2351 line 262 lon: 86.855941\n    test 2352 line 262 fb: 115.133532\n    test 2353 line 262 lat2: -47.687068378110\n    test 2354 line 262 lon2: 86.855941174728\n    test 2355 line 262 azi2: 115.133531572693\n    test 2356 line 262 lat2: -47.687068378110\n    test 2357 line 262 lon2: 86.855941174728\n    test 2358 line 262 azi2: 115.133531572693\n    test 2359 line 263 lat: -56.637273\n    test 2360 line 263 lon: 158.001121\n    test 2361 line 263 fb: 35.013276\n    test 2362 line 263 lat2: -56.637272907294\n    test 2363 line 263 lon2: 158.001120751267\n    test 2364 line 263 azi2: 35.013276119319\n    test 2365 line 263 lat2: -56.637272907294\n    test 2366 line 263 lon2: 158.001120751267\n    test 2367 line 263 azi2: 35.013276119319\n    test 2368 line 264 lat: 6.880772\n    test 2369 line 264 lon: 36.289125\n    test 2370 line 264 fb: 144.499557\n    test 2371 line 264 lat2: 6.880771895178\n    test 2372 line 264 lon2: 36.289124705135\n    test 2373 line 264 azi2: 144.499557452454\n    test 2374 line 264 lat2: 6.880771895178\n    test 2375 line 264 lon2: 36.289124705135\n    test 2376 line 264 azi2: 144.499557452454\n    test 2377 line 265 lat: 59.205527\n    test 2378 line 265 lon: 115.787268\n    test 2379 line 265 fb: 116.793619\n    test 2380 line 265 lat2: 59.205526512430\n    test 2381 line 265 lon2: 115.787267608171\n    test 2382 line 265 azi2: 116.793618855456\n    test 2383 line 265 lat2: 59.205526512430\n    test 2384 line 265 lon2: 115.787267608171\n    test 2385 line 265 azi2: 116.793618855456\n    test 2386 line 266 lat: 29.463206\n    test 2387 line 266 lon: 68.742710\n    test 2388 line 266 fb: 113.906069\n    test 2389 line 266 lat2: 29.463206450868\n    test 2390 line 266 lon2: 68.742710218988\n    test 2391 line 266 azi2: 113.906069374400\n    test 2392 line 266 lat2: 29.463206450868\n    test 2393 line 266 lon2: 68.742710218988\n    test 2394 line 266 azi2: 113.906069374400\n    test 2395 line 267 lat: 5.507960\n    test 2396 line 267 lon: 2.913367\n    test 2397 line 267 fb: 175.225892\n    test 2398 line 267 lat2: 5.507959555355\n    test 2399 line 267 lon2: 2.913367209347\n    test 2400 line 267 azi2: 175.225891805562\n    test 2401 line 267 lat2: 5.507959555355\n    test 2402 line 267 lon2: 2.913367209347\n    test 2403 line 267 azi2: 175.225891805562\n    test 2404 line 268 lat: 32.568215\n    test 2405 line 268 lon: 107.814340\n    test 2406 line 268 fb: 126.321687\n    test 2407 line 268 lat2: 32.568215067951\n    test 2408 line 268 lon2: 107.814340389788\n    test 2409 line 268 azi2: 126.321687264203\n    test 2410 line 268 lat2: 32.568215067951\n    test 2411 line 268 lon2: 107.814340389788\n    test 2412 line 268 azi2: 126.321687264203\n    test 2413 line 269 lat: 48.941036\n    test 2414 line 269 lon: 170.309380\n    test 2415 line 269 fb: 170.816057\n    test 2416 line 269 lat2: 48.941036400994\n    test 2417 line 269 lon2: 170.309379989564\n    test 2418 line 269 azi2: 170.816056872564\n    test 2419 line 269 lat2: 48.941036400994\n    test 2420 line 269 lon2: 170.309379989564\n    test 2421 line 269 azi2: 170.816056872564\n    test 2422 line 270 lat: 32.657811\n    test 2423 line 270 lon: 174.401372\n    test 2424 line 270 fb: 173.967029\n    test 2425 line 270 lat2: 32.657810935795\n    test 2426 line 270 lon2: 174.401372292954\n    test 2427 line 270 azi2: 173.967029189838\n    test 2428 line 270 lat2: 32.657810935795\n    test 2429 line 270 lon2: 174.401372292954\n    test 2430 line 270 azi2: 173.967029189838\n    test 2431 line 271 lat: -30.959342\n    test 2432 line 271 lon: 144.596945\n    test 2433 line 271 fb: 157.635539\n    test 2434 line 271 lat2: -30.959341511189\n    test 2435 line 271 lon2: 144.596944855700\n    test 2436 line 271 azi2: 157.635538872114\n    test 2437 line 271 lat2: -30.959341511189\n    test 2438 line 271 lon2: 144.596944855700\n    test 2439 line 271 azi2: 157.635538872114\n    test 2440 line 272 lat: 52.180060\n    test 2441 line 272 lon: 68.363538\n    test 2442 line 272 fb: 82.619820\n    test 2443 line 272 lat2: 52.180060488771\n    test 2444 line 272 lon2: 68.363538073511\n    test 2445 line 272 azi2: 82.619819936898\n    test 2446 line 272 lat2: 52.180060488771\n    test 2447 line 272 lon2: 68.363538073511\n    test 2448 line 272 azi2: 82.619819936898\n    test 2449 line 273 lat: -49.230655\n    test 2450 line 273 lon: 119.085123\n    test 2451 line 273 fb: 81.553785\n    test 2452 line 273 lat2: -49.230654785601\n    test 2453 line 273 lon2: 119.085122995371\n    test 2454 line 273 azi2: 81.553785297210\n    test 2455 line 273 lat2: -49.230654785601\n    test 2456 line 273 lon2: 119.085122995371\n    test 2457 line 273 azi2: 81.553785297210\n    test 2458 line 274 lat: 12.315309\n    test 2459 line 274 lon: 21.800337\n    test 2460 line 274 fb: 86.572317\n    test 2461 line 274 lat2: 12.315308710130\n    test 2462 line 274 lon2: 21.800336803956\n    test 2463 line 274 azi2: 86.572316548512\n    test 2464 line 274 lat2: 12.315308710130\n    test 2465 line 274 lon2: 21.800336803956\n    test 2466 line 274 azi2: 86.572316548512\n    test 2467 line 275 lat: 0.074875\n    test 2468 line 275 lon: 122.092567\n    test 2469 line 275 fb: 93.940324\n    test 2470 line 275 lat2: 0.074874782626\n    test 2471 line 275 lon2: 122.092567299352\n    test 2472 line 275 azi2: 93.940323652996\n    test 2473 line 275 lat2: 0.074874782626\n    test 2474 line 275 lon2: 122.092567299352\n    test 2475 line 275 azi2: 93.940323652996\n    test 2476 line 276 lat: -32.420609\n    test 2477 line 276 lon: 80.147417\n    test 2478 line 276 fb: 123.183256\n    test 2479 line 276 lat2: -32.420609134175\n    test 2480 line 276 lon2: 80.147416945184\n    test 2481 line 276 azi2: 123.183256201588\n    test 2482 line 276 lat2: -32.420609134175\n    test 2483 line 276 lon2: 80.147416945184\n    test 2484 line 276 azi2: 123.183256201588\n    test 2485 line 277 lat: 82.600418\n    test 2486 line 277 lon: 34.418367\n    test 2487 line 277 fb: 35.057122\n    test 2488 line 277 lat2: 82.600418456713\n    test 2489 line 277 lon2: 34.418367124569\n    test 2490 line 277 azi2: 35.057122384192\n    test 2491 line 277 lat2: 82.600418456713\n    test 2492 line 277 lon2: 34.418367124569\n    test 2493 line 277 azi2: 35.057122384192\n    test 2494 line 278 lat: 26.274633\n    test 2495 line 278 lon: 93.043032\n    test 2496 line 278 fb: 114.480069\n    test 2497 line 278 lat2: 26.274632977288\n    test 2498 line 278 lon2: 93.043031668414\n    test 2499 line 278 azi2: 114.480069066657\n    test 2500 line 278 lat2: 26.274632977288\n    test 2501 line 278 lon2: 93.043031668414\n    test 2502 line 278 azi2: 114.480069066657\n    test 2503 line 279 lat: 28.433986\n    test 2504 line 279 lon: 132.962042\n    test 2505 line 279 fb: 118.817242\n    test 2506 line 279 lat2: 28.433985598740\n    test 2507 line 279 lon2: 132.962041543078\n    test 2508 line 279 azi2: 118.817241997246\n    test 2509 line 279 lat2: 28.433985598740\n    test 2510 line 279 lon2: 132.962041543078\n    test 2511 line 279 azi2: 118.817241997246\n    test 2512 line 280 lat: 32.426459\n    test 2513 line 280 lon: 65.171889\n    test 2514 line 280 fb: 113.230923\n    test 2515 line 280 lat2: 32.426458512822\n    test 2516 line 280 lon2: 65.171889395963\n    test 2517 line 280 azi2: 113.230923394172\n    test 2518 line 280 lat2: 32.426458512822\n    test 2519 line 280 lon2: 65.171889395963\n    test 2520 line 280 azi2: 113.230923394172\n    test 2521 line 281 lat: 8.427284\n    test 2522 line 281 lon: 20.342496\n    test 2523 line 281 fb: 140.993359\n    test 2524 line 281 lat2: 8.427284359102\n    test 2525 line 281 lon2: 20.342496251702\n    test 2526 line 281 azi2: 140.993359066103\n    test 2527 line 281 lat2: 8.427284359102\n    test 2528 line 281 lon2: 20.342496251702\n    test 2529 line 281 azi2: 140.993359066103\n    test 2530 line 282 lat: -16.412702\n    test 2531 line 282 lon: 47.392542\n    test 2532 line 282 fb: 167.389705\n    test 2533 line 282 lat2: -16.412702228950\n    test 2534 line 282 lon2: 47.392541669265\n    test 2535 line 282 azi2: 167.389704666322\n    test 2536 line 282 lat2: -16.412702228950\n    test 2537 line 282 lon2: 47.392541669265\n    test 2538 line 282 azi2: 167.389704666322\n    test 2539 line 283 lat: -54.082376\n    test 2540 line 283 lon: 159.985466\n    test 2541 line 283 fb: 56.023710\n    test 2542 line 283 lat2: -54.082375801659\n    test 2543 line 283 lon2: 159.985465829683\n    test 2544 line 283 azi2: 56.023710499162\n    test 2545 line 283 lat2: -54.082375801659\n    test 2546 line 283 lon2: 159.985465829683\n    test 2547 line 283 azi2: 56.023710499162\n    test 2548 line 284 lat: 38.704319\n    test 2549 line 284 lon: 78.307551\n    test 2550 line 284 fb: 106.582126\n    test 2551 line 284 lat2: 38.704318557557\n    test 2552 line 284 lon2: 78.307550831333\n    test 2553 line 284 azi2: 106.582125725743\n    test 2554 line 284 lat2: 38.704318557557\n    test 2555 line 284 lon2: 78.307550831333\n    test 2556 line 284 azi2: 106.582125725743\n    test 2557 line 285 lat: 15.206275\n    test 2558 line 285 lon: 59.878378\n    test 2559 line 285 fb: 114.460428\n    test 2560 line 285 lat2: 15.206274688849\n    test 2561 line 285 lon2: 59.878378252292\n    test 2562 line 285 azi2: 114.460428216582\n    test 2563 line 285 lat2: 15.206274688849\n    test 2564 line 285 lon2: 59.878378252292\n    test 2565 line 285 azi2: 114.460428216582\n    test 2566 line 286 lat: -62.789550\n    test 2567 line 286 lon: 66.649185\n    test 2568 line 286 fb: 119.232672\n    test 2569 line 286 lat2: -62.789549909136\n    test 2570 line 286 lon2: 66.649184622337\n    test 2571 line 286 azi2: 119.232671643971\n    test 2572 line 286 lat2: -62.789549909136\n    test 2573 line 286 lon2: 66.649184622337\n    test 2574 line 286 azi2: 119.232671643971\n    test 2575 line 287 lat: 31.235252\n    test 2576 line 287 lon: 19.933468\n    test 2577 line 287 fb: 145.488470\n    test 2578 line 287 lat2: 31.235252170087\n    test 2579 line 287 lon2: 19.933467970517\n    test 2580 line 287 azi2: 145.488469796544\n    test 2581 line 287 lat2: 31.235252170087\n    test 2582 line 287 lon2: 19.933467970517\n    test 2583 line 287 azi2: 145.488469796544\n    test 2584 line 288 lat: 11.983236\n    test 2585 line 288 lon: 145.307369\n    test 2586 line 288 fb: 151.192641\n    test 2587 line 288 lat2: 11.983236088753\n    test 2588 line 288 lon2: 145.307368849730\n    test 2589 line 288 azi2: 151.192640854621\n    test 2590 line 288 lat2: 11.983236088753\n    test 2591 line 288 lon2: 145.307368849730\n    test 2592 line 288 azi2: 151.192640854621\n    test 2593 line 289 lat: 27.629694\n    test 2594 line 289 lon: 16.148459\n    test 2595 line 289 fb: 63.008012\n    test 2596 line 289 lat2: 27.629693628283\n    test 2597 line 289 lon2: 16.148459400244\n    test 2598 line 289 azi2: 63.008012267521\n    test 2599 line 289 lat2: 27.629693628283\n    test 2600 line 289 lon2: 16.148459400244\n    test 2601 line 289 azi2: 63.008012267521\n    test 2602 line 290 lat: 34.077784\n    test 2603 line 290 lon: 115.693210\n    test 2604 line 290 fb: 112.252264\n    test 2605 line 290 lat2: 34.077783768135\n    test 2606 line 290 lon2: 115.693209573427\n    test 2607 line 290 azi2: 112.252263721679\n    test 2608 line 290 lat2: 34.077783768135\n    test 2609 line 290 lon2: 115.693209573427\n    test 2610 line 290 azi2: 112.252263721679\n    test 2611 line 291 lat: 17.100340\n    test 2612 line 291 lon: 26.538643\n    test 2613 line 291 fb: 131.391925\n    test 2614 line 291 lat2: 17.100339523444\n    test 2615 line 291 lon2: 26.538642768875\n    test 2616 line 291 azi2: 131.391925094902\n    test 2617 line 291 lat2: 17.100339523444\n    test 2618 line 291 lon2: 26.538642768875\n    test 2619 line 291 azi2: 131.391925094902\n    test 2620 line 292 lat: -8.128040\n    test 2621 line 292 lon: 28.609615\n    test 2622 line 292 fb: 144.189095\n    test 2623 line 292 lat2: -8.128039572354\n    test 2624 line 292 lon2: 28.609615412806\n    test 2625 line 292 azi2: 144.189095481788\n    test 2626 line 292 lat2: -8.128039572354\n    test 2627 line 292 lon2: 28.609615412806\n    test 2628 line 292 azi2: 144.189095481788\n    test 2629 line 293 lat: 17.307082\n    test 2630 line 293 lon: 150.748550\n    test 2631 line 293 fb: 172.334611\n    test 2632 line 293 lat2: 17.307081581668\n    test 2633 line 293 lon2: 150.748549863580\n    test 2634 line 293 azi2: 172.334611079260\n    test 2635 line 293 lat2: 17.307081581668\n    test 2636 line 293 lon2: 150.748549863580\n    test 2637 line 293 azi2: 172.334611079260\n    test 2638 line 294 lat: 4.135230\n    test 2639 line 294 lon: 142.094814\n    test 2640 line 294 fb: 170.513214\n    test 2641 line 294 lat2: 4.135229575811\n    test 2642 line 294 lon2: 142.094814225629\n    test 2643 line 294 azi2: 170.513213518678\n    test 2644 line 294 lat2: 4.135229575811\n    test 2645 line 294 lon2: 142.094814225629\n    test 2646 line 294 azi2: 170.513213518678\n    test 2647 line 295 lat: -61.544041\n    test 2648 line 295 lon: 167.154866\n    test 2649 line 295 fb: 51.415676\n    test 2650 line 295 lat2: -61.544040804472\n    test 2651 line 295 lon2: 167.154866481811\n    test 2652 line 295 azi2: 51.415675504866\n    test 2653 line 295 lat2: -61.544040804472\n    test 2654 line 295 lon2: 167.154866481811\n    test 2655 line 295 azi2: 51.415675504866\n    test 2656 line 296 lat: 27.782466\n    test 2657 line 296 lon: 53.844550\n    test 2658 line 296 fb: 78.357665\n    test 2659 line 296 lat2: 27.782465760718\n    test 2660 line 296 lon2: 53.844549799795\n    test 2661 line 296 azi2: 78.357665271795\n    test 2662 line 296 lat2: 27.782465760718\n    test 2663 line 296 lon2: 53.844549799795\n    test 2664 line 296 azi2: 78.357665271795\n    test 2665 line 297 lat: -30.157337\n    test 2666 line 297 lon: 14.759636\n    test 2667 line 297 fb: 157.487063\n    test 2668 line 297 lat2: -30.157336788088\n    test 2669 line 297 lon2: 14.759635614931\n    test 2670 line 297 azi2: 157.487063280783\n    test 2671 line 297 lat2: -30.157336788088\n    test 2672 line 297 lon2: 14.759635614931\n    test 2673 line 297 azi2: 157.487063280783\n    test 2674 line 298 lat: -16.819268\n    test 2675 line 298 lon: 22.734618\n    test 2676 line 298 fb: 167.761663\n    test 2677 line 298 lat2: -16.819268371139\n    test 2678 line 298 lon2: 22.734618221531\n    test 2679 line 298 azi2: 167.761663436059\n    test 2680 line 298 lat2: -16.819268371139\n    test 2681 line 298 lon2: 22.734618221531\n    test 2682 line 298 azi2: 167.761663436059\n    test 2683 line 299 lat: 58.190743\n    test 2684 line 299 lon: 15.576363\n    test 2685 line 299 fb: 71.213972\n    test 2686 line 299 lat2: 58.190742593673\n    test 2687 line 299 lon2: 15.576363250416\n    test 2688 line 299 azi2: 71.213972172079\n    test 2689 line 299 lat2: 58.190742593673\n    test 2690 line 299 lon2: 15.576363250416\n    test 2691 line 299 azi2: 71.213972172079\n    test 2692 line 300 lat: 57.214981\n    test 2693 line 300 lon: 163.530752\n    test 2694 line 300 fb: 162.056064\n    test 2695 line 300 lat2: 57.214981133823\n    test 2696 line 300 lon2: 163.530751680014\n    test 2697 line 300 azi2: 162.056064225923\n    test 2698 line 300 lat2: 57.214981133823\n    test 2699 line 300 lon2: 163.530751680014\n    test 2700 line 300 azi2: 162.056064225923\n    test 2701 line 301 lat: 31.811818\n    test 2702 line 301 lon: 81.663494\n    test 2703 line 301 fb: 112.546404\n    test 2704 line 301 lat2: 31.811817748936\n    test 2705 line 301 lon2: 81.663494432962\n    test 2706 line 301 azi2: 112.546403824977\n    test 2707 line 301 lat2: 31.811817748936\n    test 2708 line 301 lon2: 81.663494432962\n    test 2709 line 301 azi2: 112.546403824977\n    test 2710 line 302 lat: -11.315727\n    test 2711 line 302 lon: 48.409490\n    test 2712 line 302 fb: 121.434574\n    test 2713 line 302 lat2: -11.315726799012\n    test 2714 line 302 lon2: 48.409489590525\n    test 2715 line 302 azi2: 121.434573764585\n    test 2716 line 302 lat2: -11.315726799012\n    test 2717 line 302 lon2: 48.409489590525\n    test 2718 line 302 azi2: 121.434573764585\n    test 2719 line 303 lat: 6.119956\n    test 2720 line 303 lon: 5.687908\n    test 2721 line 303 fb: 94.977171\n    test 2722 line 303 lat2: 6.119956010623\n    test 2723 line 303 lon2: 5.687908365969\n    test 2724 line 303 azi2: 94.977170961146\n    test 2725 line 303 lat2: 6.119956010623\n    test 2726 line 303 lon2: 5.687908365969\n    test 2727 line 303 azi2: 94.977170961146\n    test 2728 line 304 lat: -13.455263\n    test 2729 line 304 lon: 92.797729\n    test 2730 line 304 fb: 125.067595\n    test 2731 line 304 lat2: -13.455262906771\n    test 2732 line 304 lon2: 92.797729354548\n    test 2733 line 304 azi2: 125.067595131171\n    test 2734 line 304 lat2: -13.455262906771\n    test 2735 line 304 lon2: 92.797729354548\n    test 2736 line 304 azi2: 125.067595131171\n    test 2737 line 305 lat: -61.258454\n    test 2738 line 305 lon: 32.464613\n    test 2739 line 305 fb: 153.578300\n    test 2740 line 305 lat2: -61.258454070259\n    test 2741 line 305 lon2: 32.464613321886\n    test 2742 line 305 azi2: 153.578299580216\n    test 2743 line 305 lat2: -61.258454070259\n    test 2744 line 305 lon2: 32.464613321886\n    test 2745 line 305 azi2: 153.578299580216\n    test 2746 line 306 lat: 76.656194\n    test 2747 line 306 lon: 147.658262\n    test 2748 line 306 fb: 154.870277\n    test 2749 line 306 lat2: 76.656194303754\n    test 2750 line 306 lon2: 147.658261698859\n    test 2751 line 306 azi2: 154.870276891567\n    test 2752 line 306 lat2: 76.656194303754\n    test 2753 line 306 lon2: 147.658261698859\n    test 2754 line 306 azi2: 154.870276891567\n    test 2755 line 307 lat: 38.020470\n    test 2756 line 307 lon: 22.502210\n    test 2757 line 307 fb: 164.603876\n    test 2758 line 307 lat2: 38.020470355438\n    test 2759 line 307 lon2: 22.502210018002\n    test 2760 line 307 azi2: 164.603876406614\n    test 2761 line 307 lat2: 38.020470355438\n    test 2762 line 307 lon2: 22.502210018002\n    test 2763 line 307 azi2: 164.603876406614\n    test 2764 line 308 lat: -28.475186\n    test 2765 line 308 lon: 125.031589\n    test 2766 line 308 fb: 71.946314\n    test 2767 line 308 lat2: -28.475185707347\n    test 2768 line 308 lon2: 125.031589334958\n    test 2769 line 308 azi2: 71.946313988393\n    test 2770 line 308 lat2: -28.475185707347\n    test 2771 line 308 lon2: 125.031589334958\n    test 2772 line 308 azi2: 71.946313988393\n    test 2773 line 309 lat: 33.123700\n    test 2774 line 309 lon: 47.796870\n    test 2775 line 309 fb: 66.233041\n    test 2776 line 309 lat2: 33.123699771125\n    test 2777 line 309 lon2: 47.796870281285\n    test 2778 line 309 azi2: 66.233040505915\n    test 2779 line 309 lat2: 33.123699771125\n    test 2780 line 309 lon2: 47.796870281285\n    test 2781 line 309 azi2: 66.233040505915\n    test 2782 line 310 lat: 36.967606\n    test 2783 line 310 lon: 91.462107\n    test 2784 line 310 fb: 113.555931\n    test 2785 line 310 lat2: 36.967605507925\n    test 2786 line 310 lon2: 91.462107367844\n    test 2787 line 310 azi2: 113.555931272414\n    test 2788 line 310 lat2: 36.967605507925\n    test 2789 line 310 lon2: 91.462107367844\n    test 2790 line 310 azi2: 113.555931272414\n    test 2791 line 311 lat: -3.784112\n    test 2792 line 311 lon: 75.465096\n    test 2793 line 311 fb: 146.940895\n    test 2794 line 311 lat2: -3.784112064078\n    test 2795 line 311 lon2: 75.465096433718\n    test 2796 line 311 azi2: 146.940895363525\n    test 2797 line 311 lat2: -3.784112064078\n    test 2798 line 311 lon2: 75.465096433718\n    test 2799 line 311 azi2: 146.940895363525\n    test 2800 line 312 lat: 10.772454\n    test 2801 line 312 lon: 162.137695\n    test 2802 line 312 fb: 176.774643\n    test 2803 line 312 lat2: 10.772454234710\n    test 2804 line 312 lon2: 162.137694811372\n    test 2805 line 312 azi2: 176.774642770857\n    test 2806 line 312 lat2: 10.772454234711  FAILED, KNOWN, expected 10.772454234710\n    test 2807 line 312 lon2: 162.137694811372\n    test 2808 line 312 azi2: 176.774642770857\n    test 2809 line 313 lat: 23.928740\n    test 2810 line 313 lon: 28.953169\n    test 2811 line 313 fb: 143.614710\n    test 2812 line 313 lat2: 23.928739648982\n    test 2813 line 313 lon2: 28.953169497861\n    test 2814 line 313 azi2: 143.614709768381\n    test 2815 line 313 lat2: 23.928739648982\n    test 2816 line 313 lon2: 28.953169497861\n    test 2817 line 313 azi2: 143.614709768381\n    test 2818 line 314 lat: 5.199377\n    test 2819 line 314 lon: 162.802668\n    test 2820 line 314 fb: 146.857520\n    test 2821 line 314 lat2: 5.199376594428\n    test 2822 line 314 lon2: 162.802668362269\n    test 2823 line 314 azi2: 146.857519761344\n    test 2824 line 314 lat2: 5.199376594428\n    test 2825 line 314 lon2: 162.802668362269\n    test 2826 line 314 azi2: 146.857519761344\n    test 2827 line 315 lat: 6.285334\n    test 2828 line 315 lon: 164.204548\n    test 2829 line 315 fb: 159.451359\n    test 2830 line 315 lat2: 6.285334322282\n    test 2831 line 315 lon2: 164.204548022855\n    test 2832 line 315 azi2: 159.451359223111\n    test 2833 line 315 lat2: 6.285334322282\n    test 2834 line 315 lon2: 164.204548022855\n    test 2835 line 315 azi2: 159.451359223111\n    test 2836 line 316 lat: -8.151874\n    test 2837 line 316 lon: 43.923539\n    test 2838 line 316 fb: 121.501273\n    test 2839 line 316 lat2: -8.151873580306\n    test 2840 line 316 lon2: 43.923539410568\n    test 2841 line 316 azi2: 121.501272690158\n    test 2842 line 316 lat2: -8.151873580306\n    test 2843 line 316 lon2: 43.923539410568\n    test 2844 line 316 azi2: 121.501272690158\n    test 2845 line 317 lat: 20.145480\n    test 2846 line 317 lon: 92.310645\n    test 2847 line 317 fb: 97.369333\n    test 2848 line 317 lat2: 20.145480383316\n    test 2849 line 317 lon2: 92.310644735772\n    test 2850 line 317 azi2: 97.369333245027\n    test 2851 line 317 lat2: 20.145480383316\n    test 2852 line 317 lon2: 92.310644735772\n    test 2853 line 317 azi2: 97.369333245027\n    test 2854 line 318 lat: 38.715579\n    test 2855 line 318 lon: 89.141427\n    test 2856 line 318 fb: 100.831087\n    test 2857 line 318 lat2: 38.715578802658\n    test 2858 line 318 lon2: 89.141426830360\n    test 2859 line 318 azi2: 100.831086703170\n    test 2860 line 318 lat2: 38.715578802658\n    test 2861 line 318 lon2: 89.141426830360\n    test 2862 line 318 azi2: 100.831086703170\n    test 2863 line 319 lat: -25.760685\n    test 2864 line 319 lon: 145.864001\n    test 2865 line 319 fb: 142.714674\n    test 2866 line 319 lat2: -25.760685020607\n    test 2867 line 319 lon2: 145.864001048187\n    test 2868 line 319 azi2: 142.714673928912\n    test 2869 line 319 lat2: -25.760685020607\n    test 2870 line 319 lon2: 145.864001048187\n    test 2871 line 319 azi2: 142.714673928912\n    test 2872 line 320 lat: 49.387283\n    test 2873 line 320 lon: 28.917044\n    test 2874 line 320 fb: 61.545235\n    test 2875 line 320 lat2: 49.387283074155\n    test 2876 line 320 lon2: 28.917043656754\n    test 2877 line 320 azi2: 61.545235148403\n    test 2878 line 320 lat2: 49.387283074155\n    test 2879 line 320 lon2: 28.917043656754\n    test 2880 line 320 azi2: 61.545235148403\n    test 2881 line 321 lat: 10.120685\n    test 2882 line 321 lon: 2.869738\n    test 2883 line 321 fb: 176.526916\n    test 2884 line 321 lat2: 10.120685293027\n    test 2885 line 321 lon2: 2.869737593886\n    test 2886 line 321 azi2: 176.526915822865\n    test 2887 line 321 lat2: 10.120685293027\n    test 2888 line 321 lon2: 2.869737593886\n    test 2889 line 321 azi2: 176.526915822865\n    test 2890 line 322 lat: 2.463216\n    test 2891 line 322 lon: 102.917600\n    test 2892 line 322 fb: 170.609004\n    test 2893 line 322 lat2: 2.463216066166\n    test 2894 line 322 lon2: 102.917599852201\n    test 2895 line 322 azi2: 170.609003610639\n    test 2896 line 322 lat2: 2.463216066166\n    test 2897 line 322 lon2: 102.917599852201\n    test 2898 line 322 azi2: 170.609003610639\n    test 2899 line 323 lat: 58.201294\n    test 2900 line 323 lon: 155.022079\n    test 2901 line 323 fb: 153.181269\n    test 2902 line 323 lat2: 58.201293688923\n    test 2903 line 323 lon2: 155.022079105501\n    test 2904 line 323 azi2: 153.181268692773\n    test 2905 line 323 lat2: 58.201293688923\n    test 2906 line 323 lon2: 155.022079105501\n    test 2907 line 323 azi2: 153.181268692773\n    test 2908 line 324 lat: 3.089608\n    test 2909 line 324 lon: 20.686800\n    test 2910 line 324 fb: 144.857820\n    test 2911 line 324 lat2: 3.089607756265\n    test 2912 line 324 lon2: 20.686800266169\n    test 2913 line 324 azi2: 144.857820265585\n    test 2914 line 324 lat2: 3.089607756265\n    test 2915 line 324 lon2: 20.686800266169\n    test 2916 line 324 azi2: 144.857820265585\n    test 2917 line 325 lat: 48.232274\n    test 2918 line 325 lon: 18.567244\n    test 2919 line 325 fb: 24.556438\n    test 2920 line 325 lat2: 48.232274219515\n    test 2921 line 325 lon2: 18.567244222293\n    test 2922 line 325 azi2: 24.556437713520\n    test 2923 line 325 lat2: 48.232274219515\n    test 2924 line 325 lon2: 18.567244222293\n    test 2925 line 325 azi2: 24.556437713520\n    test 2926 line 326 lat: 30.265261\n    test 2927 line 326 lon: 7.440738\n    test 2928 line 326 fb: 142.022972\n    test 2929 line 326 lat2: 30.265261486767\n    test 2930 line 326 lon2: 7.440737656545\n    test 2931 line 326 azi2: 142.022971576270\n    test 2932 line 326 lat2: 30.265261486767\n    test 2933 line 326 lon2: 7.440737656545\n    test 2934 line 326 azi2: 142.022971576270\n    test 2935 line 327 lat: -11.166197\n    test 2936 line 327 lon: 176.728934\n    test 2937 line 327 fb: 24.287273\n    test 2938 line 327 lat2: -11.166197413148\n    test 2939 line 327 lon2: 176.728933575636\n    test 2940 line 327 azi2: 24.287272842989\n    test 2941 line 327 lat2: -11.166197413148\n    test 2942 line 327 lon2: 176.728933575636\n    test 2943 line 327 azi2: 24.287272842989\n    test 2944 line 328 lat: 84.645539\n    test 2945 line 328 lon: 90.023922\n    test 2946 line 328 fb: 92.786262\n    test 2947 line 328 lat2: 84.645539196082\n    test 2948 line 328 lon2: 90.023922499395\n    test 2949 line 328 azi2: 92.786261566827\n    test 2950 line 328 lat2: 84.645539196082\n    test 2951 line 328 lon2: 90.023922499396  FAILED, KNOWN, expected 90.023922499395\n    test 2952 line 328 azi2: 92.786261566828  FAILED, KNOWN, expected 92.786261566827\n    test 2953 line 329 lat: 61.618717\n    test 2954 line 329 lon: 162.510959\n    test 2955 line 329 fb: 160.923940\n    test 2956 line 329 lat2: 61.618716728051\n    test 2957 line 329 lon2: 162.510958917359\n    test 2958 line 329 azi2: 160.923939760553\n    test 2959 line 329 lat2: 61.618716728051\n    test 2960 line 329 lon2: 162.510958917359\n    test 2961 line 329 azi2: 160.923939760553\n    test 2962 line 330 lat: 27.643242\n    test 2963 line 330 lon: 45.376215\n    test 2964 line 330 fb: 147.964522\n    test 2965 line 330 lat2: 27.643242341173\n    test 2966 line 330 lon2: 45.376215094118\n    test 2967 line 330 azi2: 147.964522484664\n    test 2968 line 330 lat2: 27.643242341173\n    test 2969 line 330 lon2: 45.376215094118\n    test 2970 line 330 azi2: 147.964522484664\n    test 2971 line 331 lat: 2.218750\n    test 2972 line 331 lon: 170.358342\n    test 2973 line 331 fb: 141.658474\n    test 2974 line 331 lat2: 2.218749985364\n    test 2975 line 331 lon2: 170.358342078292\n    test 2976 line 331 azi2: 141.658474129787\n    test 2977 line 331 lat2: 2.218749985364\n    test 2978 line 331 lon2: 170.358342078292\n    test 2979 line 331 azi2: 141.658474129787\n    test 2980 line 332 lat: 26.019142\n    test 2981 line 332 lon: 32.534760\n    test 2982 line 332 fb: 128.159784\n    test 2983 line 332 lat2: 26.019142329663\n    test 2984 line 332 lon2: 32.534760195963\n    test 2985 line 332 azi2: 128.159784291645\n    test 2986 line 332 lat2: 26.019142329663\n    test 2987 line 332 lon2: 32.534760195963\n    test 2988 line 332 azi2: 128.159784291645\n    test 2989 line 333 lat: 10.049636\n    test 2990 line 333 lon: 72.205347\n    test 2991 line 333 fb: 143.602160\n    test 2992 line 333 lat2: 10.049636247749\n    test 2993 line 333 lon2: 72.205346955818\n    test 2994 line 333 azi2: 143.602159725306\n    test 2995 line 333 lat2: 10.049636247749\n    test 2996 line 333 lon2: 72.205346955818\n    test 2997 line 333 azi2: 143.602159725306\n    test 2998 line 334 lat: -31.030497\n    test 2999 line 334 lon: 91.539195\n    test 3000 line 334 fb: 109.891398\n    test 3001 line 334 lat2: -31.030496743715\n    test 3002 line 334 lon2: 91.539195292896\n    test 3003 line 334 azi2: 109.891398221790\n    test 3004 line 334 lat2: -31.030496743715\n    test 3005 line 334 lon2: 91.539195292896\n    test 3006 line 334 azi2: 109.891398221790\n    test 3007 line 335 lat: 30.113796\n    test 3008 line 335 lon: 109.096982\n    test 3009 line 335 fb: 146.779343\n    test 3010 line 335 lat2: 30.113795853671\n    test 3011 line 335 lon2: 109.096981631502\n    test 3012 line 335 azi2: 146.779343066541\n    test 3013 line 335 lat2: 30.113795853670  FAILED, KNOWN, expected 30.113795853671\n    test 3014 line 335 lon2: 109.096981631502\n    test 3015 line 335 azi2: 146.779343066541\n    test 3016 line 336 lat: -73.967996\n    test 3017 line 336 lon: 65.944243\n    test 3018 line 336 fb: 120.592999\n    test 3019 line 336 lat2: -73.967996185770\n    test 3020 line 336 lon2: 65.944242524678\n    test 3021 line 336 azi2: 120.592998665529\n    test 3022 line 336 lat2: -73.967996185770\n    test 3023 line 336 lon2: 65.944242524678\n    test 3024 line 336 azi2: 120.592998665529\n    test 3025 line 337 lat: 52.211150\n    test 3026 line 337 lon: 168.054185\n    test 3027 line 337 fb: 172.425992\n    test 3028 line 337 lat2: 52.211149755494\n    test 3029 line 337 lon2: 168.054184827868\n    test 3030 line 337 azi2: 172.425991612467\n    test 3031 line 337 lat2: 52.211149755494\n    test 3032 line 337 lon2: 168.054184827868\n    test 3033 line 337 azi2: 172.425991612467\n    test 3034 line 338 lat: -64.497146\n    test 3035 line 338 lon: 72.073419\n    test 3036 line 338 fb: 114.249129\n    test 3037 line 338 lat2: -64.497146189688\n    test 3038 line 338 lon2: 72.073418936581\n    test 3039 line 338 azi2: 114.249128850219\n    test 3040 line 338 lat2: -64.497146189688\n    test 3041 line 338 lon2: 72.073418936581\n    test 3042 line 338 azi2: 114.249128850219\n    test 3043 line 339 lat: -25.711399\n    test 3044 line 339 lon: 6.036423\n    test 3045 line 339 fb: 169.464098\n    test 3046 line 339 lat2: -25.711398997503\n    test 3047 line 339 lon2: 6.036423474639\n    test 3048 line 339 azi2: 169.464098294263\n    test 3049 line 339 lat2: -25.711398997503\n    test 3050 line 339 lon2: 6.036423474639\n    test 3051 line 339 azi2: 169.464098294263\n    test 3052 line 340 lat: 33.904613\n    test 3053 line 340 lon: 30.989094\n    test 3054 line 340 fb: 124.896016\n    test 3055 line 340 lat2: 33.904613360449\n    test 3056 line 340 lon2: 30.989094387217\n    test 3057 line 340 azi2: 124.896016003640\n    test 3058 line 340 lat2: 33.904613360449\n    test 3059 line 340 lon2: 30.989094387217\n    test 3060 line 340 azi2: 124.896016003640\n    test 3061 line 341 lat: -25.053080\n    test 3062 line 341 lon: 137.078639\n    test 3063 line 341 fb: 115.960750\n    test 3064 line 341 lat2: -25.053079543516\n    test 3065 line 341 lon2: 137.078638665495\n    test 3066 line 341 azi2: 115.960750169086\n    test 3067 line 341 lat2: -25.053079543516\n    test 3068 line 341 lon2: 137.078638665495\n    test 3069 line 341 azi2: 115.960750169086\n    test 3070 line 342 lat: 10.298031\n    test 3071 line 342 lon: 27.737374\n    test 3072 line 342 fb: 142.265457\n    test 3073 line 342 lat2: 10.298031202629\n    test 3074 line 342 lon2: 27.737373649973\n    test 3075 line 342 azi2: 142.265457288483\n    test 3076 line 342 lat2: 10.298031202629\n    test 3077 line 342 lon2: 27.737373649973\n    test 3078 line 342 azi2: 142.265457288483\n    test 3079 line 343 lat: -0.738692\n    test 3080 line 343 lon: 150.933627\n    test 3081 line 343 fb: 174.004688\n    test 3082 line 343 lat2: -0.738692377457\n    test 3083 line 343 lon2: 150.933627031610\n    test 3084 line 343 azi2: 174.004687728765\n    test 3085 line 343 lat2: -0.738692377457\n    test 3086 line 343 lon2: 150.933627031610\n    test 3087 line 343 azi2: 174.004687728765\n    test 3088 line 344 lat: 50.619289\n    test 3089 line 344 lon: 67.178203\n    test 3090 line 344 fb: 105.177353\n    test 3091 line 344 lat2: 50.619289349009\n    test 3092 line 344 lon2: 67.178203328135\n    test 3093 line 344 azi2: 105.177353051107\n    test 3094 line 344 lat2: 50.619289349009\n    test 3095 line 344 lon2: 67.178203328135\n    test 3096 line 344 azi2: 105.177353051107\n    test 3097 line 345 lat: -2.127739\n    test 3098 line 345 lon: 38.604245\n    test 3099 line 345 fb: 118.657849\n    test 3100 line 345 lat2: -2.127739360728\n    test 3101 line 345 lon2: 38.604245449983\n    test 3102 line 345 azi2: 118.657849063154\n    test 3103 line 345 lat2: -2.127739360728\n    test 3104 line 345 lon2: 38.604245449983\n    test 3105 line 345 azi2: 118.657849063154\n    test 3106 line 346 lat: 37.188367\n    test 3107 line 346 lon: 90.865255\n    test 3108 line 346 fb: 104.826548\n    test 3109 line 346 lat2: 37.188366752551\n    test 3110 line 346 lon2: 90.865255121714\n    test 3111 line 346 azi2: 104.826548310924\n    test 3112 line 346 lat2: 37.188366752551\n    test 3113 line 346 lon2: 90.865255121714\n    test 3114 line 346 azi2: 104.826548310924\n    test 3115 line 347 lat: 46.019257\n    test 3116 line 347 lon: 20.402591\n    test 3117 line 347 fb: 31.068588\n    test 3118 line 347 lat2: 46.019256998097\n    test 3119 line 347 lon2: 20.402590686048\n    test 3120 line 347 azi2: 31.068587858373\n    test 3121 line 347 lat2: 46.019256998097\n    test 3122 line 347 lon2: 20.402590686048\n    test 3123 line 347 azi2: 31.068587858373\n    test 3124 line 348 lat: 9.023356\n    test 3125 line 348 lon: 106.678645\n    test 3126 line 348 fb: 141.375490\n    test 3127 line 348 lat2: 9.023355647006\n    test 3128 line 348 lon2: 106.678645473545\n    test 3129 line 348 azi2: 141.375490245645\n    test 3130 line 348 lat2: 9.023355647006\n    test 3131 line 348 lon2: 106.678645473545\n    test 3132 line 348 azi2: 141.375490245645\n    test 3133 line 349 lat: -1.321473\n    test 3134 line 349 lon: 67.418879\n    test 3135 line 349 fb: 105.590913\n    test 3136 line 349 lat2: -1.321473235187\n    test 3137 line 349 lon2: 67.418878731595\n    test 3138 line 349 azi2: 105.590912857546\n    test 3139 line 349 lat2: -1.321473235187\n    test 3140 line 349 lon2: 67.418878731595\n    test 3141 line 349 azi2: 105.590912857546\n    test 3142 line 350 lat: 7.459339\n    test 3143 line 350 lon: 30.150648\n    test 3144 line 350 fb: 109.667752\n    test 3145 line 350 lat2: 7.459338626177\n    test 3146 line 350 lon2: 30.150648477470\n    test 3147 line 350 azi2: 109.667751753912\n    test 3148 line 350 lat2: 7.459338626177\n    test 3149 line 350 lon2: 30.150648477470\n    test 3150 line 350 azi2: 109.667751753912\n    test 3151 line 351 lat: 16.344755\n    test 3152 line 351 lon: 146.829160\n    test 3153 line 351 fb: 128.666192\n    test 3154 line 351 lat2: 16.344755038185\n    test 3155 line 351 lon2: 146.829159972334\n    test 3156 line 351 azi2: 128.666191953616\n    test 3157 line 351 lat2: 16.344755038185\n    test 3158 line 351 lon2: 146.829159972334\n    test 3159 line 351 azi2: 128.666191953616\n    test 3160 line 352 lat: -55.785670\n    test 3161 line 352 lon: 158.086173\n    test 3162 line 352 fb: 33.903277\n    test 3163 line 352 lat2: -55.785670347270\n    test 3164 line 352 lon2: 158.086173376809\n    test 3165 line 352 azi2: 33.903276835071\n    test 3166 line 352 lat2: -55.785670347270\n    test 3167 line 352 lon2: 158.086173376809\n    test 3168 line 352 azi2: 33.903276835071\n    test 3169 line 353 lat: -74.409604\n    test 3170 line 353 lon: 111.280935\n    test 3171 line 353 fb: 78.510830\n    test 3172 line 353 lat2: -74.409603561050\n    test 3173 line 353 lon2: 111.280934985965\n    test 3174 line 353 azi2: 78.510830028461\n    test 3175 line 353 lat2: -74.409603561050\n    test 3176 line 353 lon2: 111.280934985965\n    test 3177 line 353 azi2: 78.510830028461\n    test 3178 line 354 lat: 9.922204\n    test 3179 line 354 lon: 138.538334\n    test 3180 line 354 fb: 125.268473\n    test 3181 line 354 lat2: 9.922203731557\n    test 3182 line 354 lon2: 138.538333703571\n    test 3183 line 354 azi2: 125.268473410634\n    test 3184 line 354 lat2: 9.922203731557\n    test 3185 line 354 lon2: 138.538333703571\n    test 3186 line 354 azi2: 125.268473410634\n    test 3187 line 355 lat: -27.082389\n    test 3188 line 355 lon: 91.425844\n    test 3189 line 355 fb: 153.267616\n    test 3190 line 355 lat2: -27.082389068807\n    test 3191 line 355 lon2: 91.425843733185\n    test 3192 line 355 azi2: 153.267616113653\n    test 3193 line 355 lat2: -27.082389068808  FAILED, KNOWN, expected -27.082389068807\n    test 3194 line 355 lon2: 91.425843733185\n    test 3195 line 355 azi2: 153.267616113653\n    test 3196 line 356 lat: 14.627508\n    test 3197 line 356 lon: 74.629605\n    test 3198 line 356 fb: 159.825211\n    test 3199 line 356 lat2: 14.627507744773\n    test 3200 line 356 lon2: 74.629604673488\n    test 3201 line 356 azi2: 159.825210987464\n    test 3202 line 356 lat2: 14.627507744773\n    test 3203 line 356 lon2: 74.629604673488\n    test 3204 line 356 azi2: 159.825210987464\n    test 3205 line 357 lat: 46.941087\n    test 3206 line 357 lon: 18.833436\n    test 3207 line 357 fb: 63.924917\n    test 3208 line 357 lat2: 46.941086934169\n    test 3209 line 357 lon2: 18.833435620675\n    test 3210 line 357 azi2: 63.924916745148\n    test 3211 line 357 lat2: 46.941086934169\n    test 3212 line 357 lon2: 18.833435620675\n    test 3213 line 357 azi2: 63.924916745148\n    test 3214 line 358 lat: 42.371666\n    test 3215 line 358 lon: 126.270074\n    test 3216 line 358 fb: 117.352107\n    test 3217 line 358 lat2: 42.371665615782\n    test 3218 line 358 lon2: 126.270074354353\n    test 3219 line 358 azi2: 117.352106840236\n    test 3220 line 358 lat2: 42.371665615782\n    test 3221 line 358 lon2: 126.270074354353\n    test 3222 line 358 azi2: 117.352106840236\n    test 3223 line 359 lat: 60.888684\n    test 3224 line 359 lon: 106.363657\n    test 3225 line 359 fb: 108.973271\n    test 3226 line 359 lat2: 60.888683732870\n    test 3227 line 359 lon2: 106.363656697522\n    test 3228 line 359 azi2: 108.973271101790\n    test 3229 line 359 lat2: 60.888683732870\n    test 3230 line 359 lon2: 106.363656697522\n    test 3231 line 359 azi2: 108.973271101790\n    test 3232 line 360 lat: 53.972090\n    test 3233 line 360 lon: 136.000658\n    test 3234 line 360 fb: 138.361589\n    test 3235 line 360 lat2: 53.972089572795\n    test 3236 line 360 lon2: 136.000657911062\n    test 3237 line 360 azi2: 138.361588598638\n    test 3238 line 360 lat2: 53.972089572795\n    test 3239 line 360 lon2: 136.000657911062\n    test 3240 line 360 azi2: 138.361588598638\n    test 3241 line 361 lat: 47.850867\n    test 3242 line 361 lon: 25.277934\n    test 3243 line 361 fb: 71.284668\n    test 3244 line 361 lat2: 47.850866585267\n    test 3245 line 361 lon2: 25.277933660114\n    test 3246 line 361 azi2: 71.284667717290\n    test 3247 line 361 lat2: 47.850866585267\n    test 3248 line 361 lon2: 25.277933660114\n    test 3249 line 361 azi2: 71.284667717290\n    test 3250 line 362 lat: 64.280614\n    test 3251 line 362 lon: 16.447697\n    test 3252 line 362 fb: 35.692750\n    test 3253 line 362 lat2: 64.280614171157\n    test 3254 line 362 lon2: 16.447696559380\n    test 3255 line 362 azi2: 35.692750218622\n    test 3256 line 362 lat2: 64.280614171157\n    test 3257 line 362 lon2: 16.447696559380\n    test 3258 line 362 azi2: 35.692750218622\n    test 3259 line 363 lat: -3.339044\n    test 3260 line 363 lon: 91.646260\n    test 3261 line 363 fb: 95.928001\n    test 3262 line 363 lat2: -3.339044133285\n    test 3263 line 363 lon2: 91.646260438368\n    test 3264 line 363 azi2: 95.928000721064\n    test 3265 line 363 lat2: -3.339044133285\n    test 3266 line 363 lon2: 91.646260438368\n    test 3267 line 363 azi2: 95.928000721064\n    test 3268 line 364 lat: -46.029875\n    test 3269 line 364 lon: 30.599197\n    test 3270 line 364 fb: 146.810525\n    test 3271 line 364 lat2: -46.029874698950\n    test 3272 line 364 lon2: 30.599196661458\n    test 3273 line 364 azi2: 146.810525207719\n    test 3274 line 364 lat2: -46.029874698950\n    test 3275 line 364 lon2: 30.599196661458\n    test 3276 line 364 azi2: 146.810525207719\n    test 3277 line 365 lat: 25.605076\n    test 3278 line 365 lon: 14.382003\n    test 3279 line 365 fb: 116.566847\n    test 3280 line 365 lat2: 25.605076391429\n    test 3281 line 365 lon2: 14.382002787798\n    test 3282 line 365 azi2: 116.566847403824\n    test 3283 line 365 lat2: 25.605076391429\n    test 3284 line 365 lon2: 14.382002787798\n    test 3285 line 365 azi2: 116.566847403824\n    test 3286 line 366 lat: -15.052413\n    test 3287 line 366 lon: 150.673460\n    test 3288 line 366 fb: 64.906721\n    test 3289 line 366 lat2: -15.052412502534\n    test 3290 line 366 lon2: 150.673460237577\n    test 3291 line 366 azi2: 64.906720897603\n    test 3292 line 366 lat2: -15.052412502534\n    test 3293 line 366 lon2: 150.673460237577\n    test 3294 line 366 azi2: 64.906720897603\n    test 3295 line 367 lat: -24.631882\n    test 3296 line 367 lon: 170.403348\n    test 3297 line 367 fb: 38.497784\n    test 3298 line 367 lat2: -24.631881773331\n    test 3299 line 367 lon2: 170.403348095216\n    test 3300 line 367 azi2: 38.497783925432\n    test 3301 line 367 lat2: -24.631881773331\n    test 3302 line 367 lon2: 170.403348095216\n    test 3303 line 367 azi2: 38.497783925432\n    test 3304 line 368 lat: 84.347730\n    test 3305 line 368 lon: 37.352130\n    test 3306 line 368 fb: 38.599794\n    test 3307 line 368 lat2: 84.347730272741\n    test 3308 line 368 lon2: 37.352130023033\n    test 3309 line 368 azi2: 38.599794179850\n    test 3310 line 368 lat2: 84.347730272741\n    test 3311 line 368 lon2: 37.352130023033\n    test 3312 line 368 azi2: 38.599794179850\n    test 3313 line 369 lat: 11.680773\n    test 3314 line 369 lon: 170.552617\n    test 3315 line 369 fb: 174.460436\n    test 3316 line 369 lat2: 11.680772997529\n    test 3317 line 369 lon2: 170.552617119135\n    test 3318 line 369 azi2: 174.460435573783\n    test 3319 line 369 lat2: 11.680772997529\n    test 3320 line 369 lon2: 170.552617119135\n    test 3321 line 369 azi2: 174.460435573783\n    test 3322 line 370 lat: -4.129058\n    test 3323 line 370 lon: 136.743627\n    test 3324 line 370 fb: 142.147604\n    test 3325 line 370 lat2: -4.129057873299\n    test 3326 line 370 lon2: 136.743626644380\n    test 3327 line 370 azi2: 142.147603954035\n    test 3328 line 370 lat2: -4.129057873299\n    test 3329 line 370 lon2: 136.743626644380\n    test 3330 line 370 azi2: 142.147603954035\n    test 3331 line 371 lat: 22.191782\n    test 3332 line 371 lon: 164.962392\n    test 3333 line 371 fb: 163.266967\n    test 3334 line 371 lat2: 22.191782097783\n    test 3335 line 371 lon2: 164.962391587580\n    test 3336 line 371 azi2: 163.266967353376\n    test 3337 line 371 lat2: 22.191782097783\n    test 3338 line 371 lon2: 164.962391587580\n    test 3339 line 371 azi2: 163.266967353376\n    test 3340 line 372 lat: -20.517212\n    test 3341 line 372 lon: 128.116444\n    test 3342 line 372 fb: 110.769757\n    test 3343 line 372 lat2: -20.517212185628\n    test 3344 line 372 lon2: 128.116443546305\n    test 3345 line 372 azi2: 110.769757212730\n    test 3346 line 372 lat2: -20.517212185628\n    test 3347 line 372 lon2: 128.116443546305\n    test 3348 line 372 azi2: 110.769757212730\n    test 3349 line 373 lat: -71.269219\n    test 3350 line 373 lon: 117.744329\n    test 3351 line 373 fb: 81.341006\n    test 3352 line 373 lat2: -71.269218648518\n    test 3353 line 373 lon2: 117.744328537214\n    test 3354 line 373 azi2: 81.341005509003\n    test 3355 line 373 lat2: -71.269218648518\n    test 3356 line 373 lon2: 117.744328537214\n    test 3357 line 373 azi2: 81.341005509003\n    test 3358 line 374 lat: -28.381893\n    test 3359 line 374 lon: 4.526029\n    test 3360 line 374 fb: 176.348678\n    test 3361 line 374 lat2: -28.381892766057\n    test 3362 line 374 lon2: 4.526028955177\n    test 3363 line 374 azi2: 176.348678015377\n    test 3364 line 374 lat2: -28.381892766057\n    test 3365 line 374 lon2: 4.526028955177\n    test 3366 line 374 azi2: 176.348678015377\n    test 3367 line 375 lat: -28.786090\n    test 3368 line 375 lon: 25.937634\n    test 3369 line 375 fb: 147.973102\n    test 3370 line 375 lat2: -28.786089606638\n    test 3371 line 375 lon2: 25.937634058027\n    test 3372 line 375 azi2: 147.973102126478\n    test 3373 line 375 lat2: -28.786089606638\n    test 3374 line 375 lon2: 25.937634058027\n    test 3375 line 375 azi2: 147.973102126478\n    test 3376 line 376 lat: -37.872672\n    test 3377 line 376 lon: 116.904193\n    test 3378 line 376 fb: 88.568636\n    test 3379 line 376 lat2: -37.872671755645\n    test 3380 line 376 lon2: 116.904192578457\n    test 3381 line 376 azi2: 88.568636418662\n    test 3382 line 376 lat2: -37.872671755645\n    test 3383 line 376 lon2: 116.904192578457\n    test 3384 line 376 azi2: 88.568636418662\n    test 3385 line 377 lat: -26.321447\n    test 3386 line 377 lon: 85.206987\n    test 3387 line 377 fb: 112.408109\n    test 3388 line 377 lat2: -26.321446841940\n    test 3389 line 377 lon2: 85.206986852002  FAILED, KNOWN, expected 85.206986852001\n    test 3390 line 377 azi2: 112.408108683681\n    test 3391 line 377 lat2: -26.321446841940\n    test 3392 line 377 lon2: 85.206986852001\n    test 3393 line 377 azi2: 112.408108683681\n    test 3394 line 378 lat: -54.824260\n    test 3395 line 378 lon: 156.561574\n    test 3396 line 378 fb: 45.534810\n    test 3397 line 378 lat2: -54.824260467184\n    test 3398 line 378 lon2: 156.561573965853\n    test 3399 line 378 azi2: 45.534810497878\n    test 3400 line 378 lat2: -54.824260467184\n    test 3401 line 378 lon2: 156.561573965853\n    test 3402 line 378 azi2: 45.534810497878\n    test 3403 line 379 lat: -16.423550\n    test 3404 line 379 lon: 36.685134\n    test 3405 line 379 fb: 149.426790\n    test 3406 line 379 lat2: -16.423550298805\n    test 3407 line 379 lon2: 36.685133578511\n    test 3408 line 379 azi2: 149.426789575292\n    test 3409 line 379 lat2: -16.423550298805\n    test 3410 line 379 lon2: 36.685133578511\n    test 3411 line 379 azi2: 149.426789575292\n    test 3412 line 380 lat: -16.806591\n    test 3413 line 380 lon: 149.738610\n    test 3414 line 380 fb: 108.898472\n    test 3415 line 380 lat2: -16.806590952462\n    test 3416 line 380 lon2: 149.738610286185\n    test 3417 line 380 azi2: 108.898472198507\n    test 3418 line 380 lat2: -16.806590952462\n    test 3419 line 380 lon2: 149.738610286185\n    test 3420 line 380 azi2: 108.898472198507\n    test 3421 line 381 lat: 61.200095\n    test 3422 line 381 lon: 179.666196\n    test 3423 line 381 fb: 179.746894\n    test 3424 line 381 lat2: 61.200095175201\n    test 3425 line 381 lon2: 179.666196014679\n    test 3426 line 381 azi2: 179.746893753530\n    test 3427 line 381 lat2: 61.200095175201\n    test 3428 line 381 lon2: 179.666196014679\n    test 3429 line 381 azi2: 179.746893753530\n    test 3430 line 382 lat: 66.474418\n    test 3431 line 382 lon: 1.552183\n    test 3432 line 382 fb: 2.088868\n    test 3433 line 382 lat2: 66.474418401288\n    test 3434 line 382 lon2: 1.552183188407\n    test 3435 line 382 azi2: 2.088868324926\n    test 3436 line 382 lat2: 66.474418401288\n    test 3437 line 382 lon2: 1.552183188407\n    test 3438 line 382 azi2: 2.088868324926\n    test 3439 line 383 lat: -75.177220\n    test 3440 line 383 lon: 158.741597\n    test 3441 line 383 fb: 24.127094\n    test 3442 line 383 lat2: -75.177219719926\n    test 3443 line 383 lon2: 158.741596988185\n    test 3444 line 383 azi2: 24.127093846134\n    test 3445 line 383 lat2: -75.177219719926\n    test 3446 line 383 lon2: 158.741596988185\n    test 3447 line 383 azi2: 24.127093846134\n    test 3448 line 384 lat: 43.592977\n    test 3449 line 384 lon: 90.684526\n    test 3450 line 384 fb: 91.539242\n    test 3451 line 384 lat2: 43.592976578444\n    test 3452 line 384 lon2: 90.684525887486\n    test 3453 line 384 azi2: 91.539242394540\n    test 3454 line 384 lat2: 43.592976578444\n    test 3455 line 384 lon2: 90.684525887486\n    test 3456 line 384 azi2: 91.539242394541  FAILED, KNOWN, expected 91.539242394540\n    test 3457 line 385 lat: -5.075415\n    test 3458 line 385 lon: 101.127103\n    test 3459 line 385 fb: 107.948022\n    test 3460 line 385 lat2: -5.075415464229\n    test 3461 line 385 lon2: 101.127103351067\n    test 3462 line 385 azi2: 107.948021613622\n    test 3463 line 385 lat2: -5.075415464229\n    test 3464 line 385 lon2: 101.127103351067\n    test 3465 line 385 azi2: 107.948021613622\n    test 3466 line 386 lat: 50.406166\n    test 3467 line 386 lon: 135.501939\n    test 3468 line 386 fb: 162.003144\n    test 3469 line 386 lat2: 50.406165949083\n    test 3470 line 386 lon2: 135.501938931444\n    test 3471 line 386 azi2: 162.003144394969\n    test 3472 line 386 lat2: 50.406165949083\n    test 3473 line 386 lon2: 135.501938931444\n    test 3474 line 386 azi2: 162.003144394969\n    test 3475 line 387 lat: -17.207733\n    test 3476 line 387 lon: 43.634692\n    test 3477 line 387 fb: 136.506793\n    test 3478 line 387 lat2: -17.207732564306\n    test 3479 line 387 lon2: 43.634692466982\n    test 3480 line 387 azi2: 136.506792603897\n    test 3481 line 387 lat2: -17.207732564306\n    test 3482 line 387 lon2: 43.634692466982\n    test 3483 line 387 azi2: 136.506792603897\n    test 3484 line 388 lat: -28.917723\n    test 3485 line 388 lon: 163.486470\n    test 3486 line 388 fb: 38.990274\n    test 3487 line 388 lat2: -28.917723347931\n    test 3488 line 388 lon2: 163.486470248682\n    test 3489 line 388 azi2: 38.990273918754\n    test 3490 line 388 lat2: -28.917723347931\n    test 3491 line 388 lon2: 163.486470248682\n    test 3492 line 388 azi2: 38.990273918754\n    test 3493 line 389 lat: -32.592414\n    test 3494 line 389 lon: 76.048812\n    test 3495 line 389 fb: 98.024249\n    test 3496 line 389 lat2: -32.592414472935\n    test 3497 line 389 lon2: 76.048812057267\n    test 3498 line 389 azi2: 98.024248734062\n    test 3499 line 389 lat2: -32.592414472935\n    test 3500 line 389 lon2: 76.048812057267\n    test 3501 line 389 azi2: 98.024248734062\n    test 3502 line 390 lat: 50.602735\n    test 3503 line 390 lon: 49.792893\n    test 3504 line 390 fb: 110.500761\n    test 3505 line 390 lat2: 50.602735331532\n    test 3506 line 390 lon2: 49.792893095354\n    test 3507 line 390 azi2: 110.500760610103\n    test 3508 line 390 lat2: 50.602735331532\n    test 3509 line 390 lon2: 49.792893095354\n    test 3510 line 390 azi2: 110.500760610103\n    test 3511 line 391 lat: -4.912232\n    test 3512 line 391 lon: 142.681744\n    test 3513 line 391 fb: 119.428358\n    test 3514 line 391 lat2: -4.912231564840\n    test 3515 line 391 lon2: 142.681743549937\n    test 3516 line 391 azi2: 119.428358444443\n    test 3517 line 391 lat2: -4.912231564840\n    test 3518 line 391 lon2: 142.681743549937\n    test 3519 line 391 azi2: 119.428358444443\n    test 3520 line 392 lat: -45.213515\n    test 3521 line 392 lon: 131.987859\n    test 3522 line 392 fb: 96.014100\n    test 3523 line 392 lat2: -45.213514932524\n    test 3524 line 392 lon2: 131.987859404857\n    test 3525 line 392 azi2: 96.014100177112\n    test 3526 line 392 lat2: -45.213514932524\n    test 3527 line 392 lon2: 131.987859404857\n    test 3528 line 392 azi2: 96.014100177112\n    test 3529 line 393 lat: -27.151096\n    test 3530 line 393 lon: 127.729463\n    test 3531 line 393 fb: 85.960623\n    test 3532 line 393 lat2: -27.151095883523\n    test 3533 line 393 lon2: 127.729463064736\n    test 3534 line 393 azi2: 85.960623495334\n    test 3535 line 393 lat2: -27.151095883523\n    test 3536 line 393 lon2: 127.729463064736\n    test 3537 line 393 azi2: 85.960623495334\n    test 3538 line 394 lat: 8.000358\n    test 3539 line 394 lon: 144.233747\n    test 3540 line 394 fb: 142.364017\n    test 3541 line 394 lat2: 8.000357843774\n    test 3542 line 394 lon2: 144.233746766535\n    test 3543 line 394 azi2: 142.364016793767\n    test 3544 line 394 lat2: 8.000357843774\n    test 3545 line 394 lon2: 144.233746766535\n    test 3546 line 394 azi2: 142.364016793767\n    test 3547 line 395 lat: -6.431774\n    test 3548 line 395 lon: 170.549196\n    test 3549 line 395 fb: 122.180851\n    test 3550 line 395 lat2: -6.431773707290\n    test 3551 line 395 lon2: 170.549196384306\n    test 3552 line 395 azi2: 122.180850600243\n    test 3553 line 395 lat2: -6.431773707290\n    test 3554 line 395 lon2: 170.549196384306\n    test 3555 line 395 azi2: 122.180850600243\n    test 3556 line 396 lat: 62.834146\n    test 3557 line 396 lon: 171.218298\n    test 3558 line 396 fb: 175.117433\n    test 3559 line 396 lat2: 62.834146216572\n    test 3560 line 396 lon2: 171.218297548713\n    test 3561 line 396 azi2: 175.117432600362\n    test 3562 line 396 lat2: 62.834146216572\n    test 3563 line 396 lon2: 171.218297548713\n    test 3564 line 396 azi2: 175.117432600362\n    test 3565 line 397 lat: 22.902814\n    test 3566 line 397 lon: 70.233438\n    test 3567 line 397 fb: 120.935912\n    test 3568 line 397 lat2: 22.902813652262\n    test 3569 line 397 lon2: 70.233438162142\n    test 3570 line 397 azi2: 120.935911762169\n    test 3571 line 397 lat2: 22.902813652262\n    test 3572 line 397 lon2: 70.233438162142\n    test 3573 line 397 azi2: 120.935911762169\n    test 3574 line 398 lat: 22.584853\n    test 3575 line 398 lon: 31.616865\n    test 3576 line 398 fb: 107.124038\n    test 3577 line 398 lat2: 22.584853282541\n    test 3578 line 398 lon2: 31.616864803984\n    test 3579 line 398 azi2: 107.124038156545\n    test 3580 line 398 lat2: 22.584853282541\n    test 3581 line 398 lon2: 31.616864803984\n    test 3582 line 398 azi2: 107.124038156545\n    test 3583 line 399 lat: 31.269173\n    test 3584 line 399 lon: 65.399306\n    test 3585 line 399 fb: 151.892600\n    test 3586 line 399 lat2: 31.269173344204\n    test 3587 line 399 lon2: 65.399305777763\n    test 3588 line 399 azi2: 151.892599739667\n    test 3589 line 399 lat2: 31.269173344204\n    test 3590 line 399 lon2: 65.399305777763\n    test 3591 line 399 azi2: 151.892599739668  FAILED, KNOWN, expected 151.892599739667\n    test 3592 line 400 lat: 35.519614\n    test 3593 line 400 lon: 143.165122\n    test 3594 line 400 fb: 161.479891\n    test 3595 line 400 lat2: 35.519613515115\n    test 3596 line 400 lon2: 143.165121509798\n    test 3597 line 400 azi2: 161.479891246031\n    test 3598 line 400 lat2: 35.519613515115\n    test 3599 line 400 lon2: 143.165121509798\n    test 3600 line 400 azi2: 161.479891246031\n    test 3601 line 401 lat: -53.741922\n    test 3602 line 401 lon: 67.121402\n    test 3603 line 401 fb: 130.871188\n    test 3604 line 401 lat2: -53.741921506580\n    test 3605 line 401 lon2: 67.121402135047\n    test 3606 line 401 azi2: 130.871188003209\n    test 3607 line 401 lat2: -53.741921506580\n    test 3608 line 401 lon2: 67.121402135047\n    test 3609 line 401 azi2: 130.871188003209\n    test 3610 line 402 lat: 9.046227\n    test 3611 line 402 lon: 35.933737\n    test 3612 line 402 fb: 175.770789\n    test 3613 line 402 lat2: 9.046227267580\n    test 3614 line 402 lon2: 35.933736921417\n    test 3615 line 402 azi2: 175.770788535406\n    test 3616 line 402 lat2: 9.046227267580\n    test 3617 line 402 lon2: 35.933736921417\n    test 3618 line 402 azi2: 175.770788535406\n    test 3619 line 403 lat: 75.917034\n    test 3620 line 403 lon: 125.150808\n    test 3621 line 403 fb: 135.354467\n    test 3622 line 403 lat2: 75.917034235438\n    test 3623 line 403 lon2: 125.150808062636\n    test 3624 line 403 azi2: 135.354466840051\n    test 3625 line 403 lat2: 75.917034235438\n    test 3626 line 403 lon2: 125.150808062636\n    test 3627 line 403 azi2: 135.354466840051\n    test 3628 line 404 lat: -39.724826\n    test 3629 line 404 lon: 77.372087\n    test 3630 line 404 fb: 111.852577\n    test 3631 line 404 lat2: -39.724825618504  FAILED, KNOWN, expected -39.724825618503\n    test 3632 line 404 lon2: 77.372086855267\n    test 3633 line 404 azi2: 111.852577362108\n    test 3634 line 404 lat2: -39.724825618504  FAILED, KNOWN, expected -39.724825618503\n    test 3635 line 404 lon2: 77.372086855267\n    test 3636 line 404 azi2: 111.852577362108\n    test 3637 line 405 lat: 3.917212\n    test 3638 line 405 lon: 142.621752\n    test 3639 line 405 fb: 124.176952\n    test 3640 line 405 lat2: 3.917212154431\n    test 3641 line 405 lon2: 142.621751764236\n    test 3642 line 405 azi2: 124.176952499321\n    test 3643 line 405 lat2: 3.917212154431\n    test 3644 line 405 lon2: 142.621751764236\n    test 3645 line 405 azi2: 124.176952499321\n    test 3646 line 406 lat: 60.230364\n    test 3647 line 406 lon: 26.245689\n    test 3648 line 406 fb: 48.509486\n    test 3649 line 406 lat2: 60.230364486607\n    test 3650 line 406 lon2: 26.245688508507\n    test 3651 line 406 azi2: 48.509486474608\n    test 3652 line 406 lat2: 60.230364486607\n    test 3653 line 406 lon2: 26.245688508507\n    test 3654 line 406 azi2: 48.509486474608\n    test 3655 line 407 lat: 29.597322\n    test 3656 line 407 lon: 29.129808\n    test 3657 line 407 fb: 79.288539\n    test 3658 line 407 lat2: 29.597322070518\n    test 3659 line 407 lon2: 29.129807944898\n    test 3660 line 407 azi2: 79.288538667829\n    test 3661 line 407 lat2: 29.597322070518\n    test 3662 line 407 lon2: 29.129807944898\n    test 3663 line 407 azi2: 79.288538667829\n    test 3664 line 408 lat: -62.913760\n    test 3665 line 408 lon: 14.845859\n    test 3666 line 408 fb: 165.794536\n    test 3667 line 408 lat2: -62.913759669564\n    test 3668 line 408 lon2: 14.845859018930\n    test 3669 line 408 azi2: 165.794535940950\n    test 3670 line 408 lat2: -62.913759669564\n    test 3671 line 408 lon2: 14.845859018930\n    test 3672 line 408 azi2: 165.794535940950\n    test 3673 line 409 lat: 15.360446\n    test 3674 line 409 lon: 161.450680\n    test 3675 line 409 fb: 164.457024\n    test 3676 line 409 lat2: 15.360445685187\n    test 3677 line 409 lon2: 161.450680426049\n    test 3678 line 409 azi2: 164.457024354600\n    test 3679 line 409 lat2: 15.360445685187\n    test 3680 line 409 lon2: 161.450680426049\n    test 3681 line 409 azi2: 164.457024354600\n    test 3682 line 410 lat: -58.330109\n    test 3683 line 410 lon: 17.628134\n    test 3684 line 410 fb: 161.349788\n    test 3685 line 410 lat2: -58.330108507597\n    test 3686 line 410 lon2: 17.628133627705\n    test 3687 line 410 azi2: 161.349788081184\n    test 3688 line 410 lat2: -58.330108507597\n    test 3689 line 410 lon2: 17.628133627705\n    test 3690 line 410 azi2: 161.349788081184\n    test 3691 line 411 lat: -68.514277\n    test 3692 line 411 lon: 19.958792\n    test 3693 line 411 fb: 162.262811\n    test 3694 line 411 lat2: -68.514276940652\n    test 3695 line 411 lon2: 19.958792438281\n    test 3696 line 411 azi2: 162.262811488702\n    test 3697 line 411 lat2: -68.514276940652\n    test 3698 line 411 lon2: 19.958792438281\n    test 3699 line 411 azi2: 162.262811488702\n    test 3700 line 412 lat: -23.686766\n    test 3701 line 412 lon: 77.544158\n    test 3702 line 412 fb: 97.517041\n    test 3703 line 412 lat2: -23.686765736999\n    test 3704 line 412 lon2: 77.544158137101\n    test 3705 line 412 azi2: 97.517041033585\n    test 3706 line 412 lat2: -23.686765736999\n    test 3707 line 412 lon2: 77.544158137101\n    test 3708 line 412 azi2: 97.517041033585\n    test 3709 line 413 lat: -50.843575\n    test 3710 line 413 lon: 118.404202\n    test 3711 line 413 fb: 75.928950\n    test 3712 line 413 lat2: -50.843574559525\n    test 3713 line 413 lon2: 118.404202153051\n    test 3714 line 413 azi2: 75.928950296488\n    test 3715 line 413 lat2: -50.843574559525\n    test 3716 line 413 lon2: 118.404202153051\n    test 3717 line 413 azi2: 75.928950296488\n    test 3718 line 414 lat: 44.438742\n    test 3719 line 414 lon: 152.028260\n    test 3720 line 414 fb: 156.092336\n    test 3721 line 414 lat2: 44.438741945021\n    test 3722 line 414 lon2: 152.028260148130\n    test 3723 line 414 azi2: 156.092336139519\n    test 3724 line 414 lat2: 44.438741945021\n    test 3725 line 414 lon2: 152.028260148130\n    test 3726 line 414 azi2: 156.092336139519\n    test 3727 line 415 lat: 33.820395\n    test 3728 line 415 lon: 178.008342\n    test 3729 line 415 fb: 177.679586\n    test 3730 line 415 lat2: 33.820395378014\n    test 3731 line 415 lon2: 178.008341908011\n    test 3732 line 415 azi2: 177.679585823345\n    test 3733 line 415 lat2: 33.820395378014\n    test 3734 line 415 lon2: 178.008341908011\n    test 3735 line 415 azi2: 177.679585823345\n    test 3736 line 416 lat: 27.506735\n    test 3737 line 416 lon: 153.242452\n    test 3738 line 416 fb: 150.262824\n    test 3739 line 416 lat2: 27.506735286152\n    test 3740 line 416 lon2: 153.242452449881\n    test 3741 line 416 azi2: 150.262824421351\n    test 3742 line 416 lat2: 27.506735286152\n    test 3743 line 416 lon2: 153.242452449881\n    test 3744 line 416 azi2: 150.262824421351\n    test 3745 line 417 lat: -31.250437\n    test 3746 line 417 lon: 179.014499\n    test 3747 line 417 fb: 178.103046\n    test 3748 line 417 lat2: -31.250436707468\n    test 3749 line 417 lon2: 179.014498940190\n    test 3750 line 417 azi2: 178.103045898455\n    test 3751 line 417 lat2: -31.250436707468\n    test 3752 line 417 lon2: 179.014498940190\n    test 3753 line 417 azi2: 178.103045898455\n    test 3754 line 418 lat: 40.341542\n    test 3755 line 418 lon: 109.605984\n    test 3756 line 418 fb: 105.401958\n    test 3757 line 418 lat2: 40.341542234586\n    test 3758 line 418 lon2: 109.605984313079\n    test 3759 line 418 azi2: 105.401958406556\n    test 3760 line 418 lat2: 40.341542234586\n    test 3761 line 418 lon2: 109.605984313079\n    test 3762 line 418 azi2: 105.401958406556\n    test 3763 line 419 lat: 48.318632\n    test 3764 line 419 lon: 92.282799\n    test 3765 line 419 fb: 111.987482\n    test 3766 line 419 lat2: 48.318632112439\n    test 3767 line 419 lon2: 92.282799489208\n    test 3768 line 419 azi2: 111.987482299261\n    test 3769 line 419 lat2: 48.318632112439\n    test 3770 line 419 lon2: 92.282799489208\n    test 3771 line 419 azi2: 111.987482299261\n    test 3772 line 420 lat: 0.675299\n    test 3773 line 420 lon: 6.789301\n    test 3774 line 420 fb: 164.921926\n    test 3775 line 420 lat2: 0.675299289459\n    test 3776 line 420 lon2: 6.789300798072\n    test 3777 line 420 azi2: 164.921926385405\n    test 3778 line 420 lat2: 0.675299289459\n    test 3779 line 420 lon2: 6.789300798072\n    test 3780 line 420 azi2: 164.921926385405\n    test 3781 line 421 lat: 33.232812\n    test 3782 line 421 lon: 170.163205\n    test 3783 line 421 fb: 175.445424\n    test 3784 line 421 lat2: 33.232811536179\n    test 3785 line 421 lon2: 170.163205247232  FAILED, KNOWN, expected 170.163205247231\n    test 3786 line 421 azi2: 175.445424087910\n    test 3787 line 421 lat2: 33.232811536179\n    test 3788 line 421 lon2: 170.163205247232  FAILED, KNOWN, expected 170.163205247231\n    test 3789 line 421 azi2: 175.445424087910\n    test 3790 line 422 lat: 51.425532\n    test 3791 line 422 lon: 167.128188\n    test 3792 line 422 fb: 169.431307\n    test 3793 line 422 lat2: 51.425532151818\n    test 3794 line 422 lon2: 167.128188073883\n    test 3795 line 422 azi2: 169.431306547043\n    test 3796 line 422 lat2: 51.425532151818\n    test 3797 line 422 lon2: 167.128188073883\n    test 3798 line 422 azi2: 169.431306547043\n    test 3799 line 423 lat: 72.043795\n    test 3800 line 423 lon: 23.320161\n    test 3801 line 423 fb: 85.002463\n    test 3802 line 423 lat2: 72.043794732818\n    test 3803 line 423 lon2: 23.320160820556\n    test 3804 line 423 azi2: 85.002463342037\n    test 3805 line 423 lat2: 72.043794732818\n    test 3806 line 423 lon2: 23.320160820556\n    test 3807 line 423 azi2: 85.002463342037\n    test 3808 line 424 lat: 55.279253\n    test 3809 line 424 lon: 148.483684\n    test 3810 line 424 fb: 155.614243\n    test 3811 line 424 lat2: 55.279252586695\n    test 3812 line 424 lon2: 148.483684405588\n    test 3813 line 424 azi2: 155.614243012977\n    test 3814 line 424 lat2: 55.279252586695\n    test 3815 line 424 lon2: 148.483684405588\n    test 3816 line 424 azi2: 155.614243012977\n    test 3817 line 425 lat: 50.054601\n    test 3818 line 425 lon: 43.609545\n    test 3819 line 425 fb: 100.758451\n    test 3820 line 425 lat2: 50.054601019930\n    test 3821 line 425 lon2: 43.609545475731\n    test 3822 line 425 azi2: 100.758450815354\n    test 3823 line 425 lat2: 50.054601019930\n    test 3824 line 425 lon2: 43.609545475731\n    test 3825 line 425 azi2: 100.758450815354\n    test 3826 line 426 lat: 31.194436\n    test 3827 line 426 lon: 31.458476\n    test 3828 line 426 fb: 92.204244\n    test 3829 line 426 lat2: 31.194436445411\n    test 3830 line 426 lon2: 31.458476146984\n    test 3831 line 426 azi2: 92.204244235305\n    test 3832 line 426 lat2: 31.194436445411\n    test 3833 line 426 lon2: 31.458476146984\n    test 3834 line 426 azi2: 92.204244235305\n    test 3835 line 427 lat: 57.758262\n    test 3836 line 427 lon: 164.499274\n    test 3837 line 427 fb: 162.877999\n    test 3838 line 427 lat2: 57.758262113137\n    test 3839 line 427 lon2: 164.499274258053\n    test 3840 line 427 azi2: 162.877999232894\n    test 3841 line 427 lat2: 57.758262113137\n    test 3842 line 427 lon2: 164.499274258053\n    test 3843 line 427 azi2: 162.877999232894\n    test 3844 line 428 lat: 27.006898\n    test 3845 line 428 lon: 173.173812\n    test 3846 line 428 fb: 177.878074\n    test 3847 line 428 lat2: 27.006897756516\n    test 3848 line 428 lon2: 173.173811781657\n    test 3849 line 428 azi2: 177.878073603766\n    test 3850 line 428 lat2: 27.006897756516\n    test 3851 line 428 lon2: 173.173811781657\n    test 3852 line 428 azi2: 177.878073603766\n    test 3853 line 429 lat: -62.917581\n    test 3854 line 429 lon: 18.990464\n    test 3855 line 429 fb: 169.629168\n    test 3856 line 429 lat2: -62.917580953804\n    test 3857 line 429 lon2: 18.990464058493\n    test 3858 line 429 azi2: 169.629168390979\n    test 3859 line 429 lat2: -62.917580953804\n    test 3860 line 429 lon2: 18.990464058493\n    test 3861 line 429 azi2: 169.629168390979\n    test 3862 line 430 lat: -43.128167\n    test 3863 line 430 lon: 61.680974\n    test 3864 line 430 fb: 135.269008\n    test 3865 line 430 lat2: -43.128166633902\n    test 3866 line 430 lon2: 61.680974170546\n    test 3867 line 430 azi2: 135.269008366092\n    test 3868 line 430 lat2: -43.128166633902\n    test 3869 line 430 lon2: 61.680974170546\n    test 3870 line 430 azi2: 135.269008366092\n    test 3871 line 431 lat: -49.314417\n    test 3872 line 431 lon: 55.826072\n    test 3873 line 431 fb: 131.974574\n    test 3874 line 431 lat2: -49.314417365795\n    test 3875 line 431 lon2: 55.826071541563\n    test 3876 line 431 azi2: 131.974573587520\n    test 3877 line 431 lat2: -49.314417365795\n    test 3878 line 431 lon2: 55.826071541563\n    test 3879 line 431 azi2: 131.974573587520\n    test 3880 line 432 lat: -24.322411\n    test 3881 line 432 lon: 103.867391\n    test 3882 line 432 fb: 139.458674\n    test 3883 line 432 lat2: -24.322411486444\n    test 3884 line 432 lon2: 103.867391100271\n    test 3885 line 432 azi2: 139.458674175181\n    test 3886 line 432 lat2: -24.322411486444\n    test 3887 line 432 lon2: 103.867391100271\n    test 3888 line 432 azi2: 139.458674175181\n    test 3889 line 433 lat: -19.557319\n    test 3890 line 433 lon: 81.358495\n    test 3891 line 433 fb: 134.029610\n    test 3892 line 433 lat2: -19.557318635270\n    test 3893 line 433 lon2: 81.358494523202\n    test 3894 line 433 azi2: 134.029609915778\n    test 3895 line 433 lat2: -19.557318635270\n    test 3896 line 433 lon2: 81.358494523202\n    test 3897 line 433 azi2: 134.029609915778\n    test 3898 line 434 lat: 7.830115\n    test 3899 line 434 lon: 5.114172\n    test 3900 line 434 fb: 175.025641\n    test 3901 line 434 lat2: 7.830115253087\n    test 3902 line 434 lon2: 5.114172330857\n    test 3903 line 434 azi2: 175.025640902819\n    test 3904 line 434 lat2: 7.830115253087\n    test 3905 line 434 lon2: 5.114172330857\n    test 3906 line 434 azi2: 175.025640902819\n    test 3907 line 435 lat: -65.834623\n    test 3908 line 435 lon: 41.772796\n    test 3909 line 435 fb: 143.178050\n    test 3910 line 435 lat2: -65.834622858584\n    test 3911 line 435 lon2: 41.772796000787\n    test 3912 line 435 azi2: 143.178050120951\n    test 3913 line 435 lat2: -65.834622858584\n    test 3914 line 435 lon2: 41.772796000787\n    test 3915 line 435 azi2: 143.178050120951\n    test 3916 line 436 lat: -7.997604\n    test 3917 line 436 lon: 31.723397\n    test 3918 line 436 fb: 153.896388\n    test 3919 line 436 lat2: -7.997604143032\n    test 3920 line 436 lon2: 31.723396618974\n    test 3921 line 436 azi2: 153.896387549518\n    test 3922 line 436 lat2: -7.997604143032\n    test 3923 line 436 lon2: 31.723396618974\n    test 3924 line 436 azi2: 153.896387549518\n    test 3925 line 437 lat: -22.173130\n    test 3926 line 437 lon: 164.896770\n    test 3927 line 437 fb: 152.675597\n    test 3928 line 437 lat2: -22.173129586699\n    test 3929 line 437 lon2: 164.896770399383\n    test 3930 line 437 azi2: 152.675596916021\n    test 3931 line 437 lat2: -22.173129586699\n    test 3932 line 437 lon2: 164.896770399383\n    test 3933 line 437 azi2: 152.675596916021\n    test 3934 line 438 lat: 35.085786\n    test 3935 line 438 lon: 173.892271\n    test 3936 line 438 fb: 171.931231\n    test 3937 line 438 lat2: 35.085785799083\n    test 3938 line 438 lon2: 173.892270533009\n    test 3939 line 438 azi2: 171.931230872910\n    test 3940 line 438 lat2: 35.085785799083\n    test 3941 line 438 lon2: 173.892270533009\n    test 3942 line 438 azi2: 171.931230872910\n    test 3943 line 439 lat: -25.378865\n    test 3944 line 439 lon: 2.197740\n    test 3945 line 439 fb: 178.756775\n    test 3946 line 439 lat2: -25.378865450268\n    test 3947 line 439 lon2: 2.197739985587\n    test 3948 line 439 azi2: 178.756775063163\n    test 3949 line 439 lat2: -25.378865450269  FAILED, KNOWN, expected -25.378865450268\n    test 3950 line 439 lon2: 2.197739985587\n    test 3951 line 439 azi2: 178.756775063163\n    test 3952 line 440 lat: -13.782608\n    test 3953 line 440 lon: 143.084799\n    test 3954 line 440 fb: 141.818572\n    test 3955 line 440 lat2: -13.782608118540\n    test 3956 line 440 lon2: 143.084798779239\n    test 3957 line 440 azi2: 141.818572490275\n    test 3958 line 440 lat2: -13.782608118540\n    test 3959 line 440 lon2: 143.084798779239\n    test 3960 line 440 azi2: 141.818572490275\n    test 3961 line 441 lat: -16.657589\n    test 3962 line 441 lon: 100.829440\n    test 3963 line 441 fb: 94.804409\n    test 3964 line 441 lat2: -16.657588778768\n    test 3965 line 441 lon2: 100.829440071396\n    test 3966 line 441 azi2: 94.804408628371\n    test 3967 line 441 lat2: -16.657588778768\n    test 3968 line 441 lon2: 100.829440071396\n    test 3969 line 441 azi2: 94.804408628371\n    test 3970 line 442 lat: 23.629666\n    test 3971 line 442 lon: 148.675531\n    test 3972 line 442 fb: 169.091767\n    test 3973 line 442 lat2: 23.629665922502\n    test 3974 line 442 lon2: 148.675530832608\n    test 3975 line 442 azi2: 169.091766635020\n    test 3976 line 442 lat2: 23.629665922502\n    test 3977 line 442 lon2: 148.675530832608\n    test 3978 line 442 azi2: 169.091766635020\n    test 3979 line 443 lat: 4.022724\n    test 3980 line 443 lon: 161.803702\n    test 3981 line 443 fb: 141.272785\n    test 3982 line 443 lat2: 4.022724409294\n    test 3983 line 443 lon2: 161.803702045621\n    test 3984 line 443 azi2: 141.272784545678\n    test 3985 line 443 lat2: 4.022724409294\n    test 3986 line 443 lon2: 161.803702045621\n    test 3987 line 443 azi2: 141.272784545678\n    test 3988 line 444 lat: 13.280168\n    test 3989 line 444 lon: 20.120413\n    test 3990 line 444 fb: 158.170551\n    test 3991 line 444 lat2: 13.280167579164\n    test 3992 line 444 lon2: 20.120413486875\n    test 3993 line 444 azi2: 158.170551379189\n    test 3994 line 444 lat2: 13.280167579164\n    test 3995 line 444 lon2: 20.120413486875\n    test 3996 line 444 azi2: 158.170551379189\n    test 3997 line 445 lat: -47.521450\n    test 3998 line 445 lon: 150.549196\n    test 3999 line 445 fb: 44.718791\n    test 4000 line 445 lat2: -47.521449956879\n    test 4001 line 445 lon2: 150.549196046351\n    test 4002 line 445 azi2: 44.718791294775\n    test 4003 line 445 lat2: -47.521449956879\n    test 4004 line 445 lon2: 150.549196046351\n    test 4005 line 445 azi2: 44.718791294775\n    test 4006 line 446 lat: 17.790615\n    test 4007 line 446 lon: 141.461006\n    test 4008 line 446 fb: 115.746784\n    test 4009 line 446 lat2: 17.790615163216\n    test 4010 line 446 lon2: 141.461005551791\n    test 4011 line 446 azi2: 115.746784352318\n    test 4012 line 446 lat2: 17.790615163216\n    test 4013 line 446 lon2: 141.461005551791\n    test 4014 line 446 azi2: 115.746784352318\n    test 4015 line 447 lat: -26.519374\n    test 4016 line 447 lon: 98.067906\n    test 4017 line 447 fb: 113.253929\n    test 4018 line 447 lat2: -26.519374288386\n    test 4019 line 447 lon2: 98.067906321718\n    test 4020 line 447 azi2: 113.253928642653\n    test 4021 line 447 lat2: -26.519374288386\n    test 4022 line 447 lon2: 98.067906321718\n    test 4023 line 447 azi2: 113.253928642653\n    test 4024 line 448 lat: -12.401139\n    test 4025 line 448 lon: 73.327970\n    test 4026 line 448 fb: 124.879499\n    test 4027 line 448 lat2: -12.401138571717\n    test 4028 line 448 lon2: 73.327969848986\n    test 4029 line 448 azi2: 124.879499241464\n    test 4030 line 448 lat2: -12.401138571717\n    test 4031 line 448 lon2: 73.327969848986\n    test 4032 line 448 azi2: 124.879499241464\n    test 4033 line 449 lat: 61.619396\n    test 4034 line 449 lon: 99.785406\n    test 4035 line 449 fb: 107.998380\n    test 4036 line 449 lat2: 61.619396375102\n    test 4037 line 449 lon2: 99.785406498835\n    test 4038 line 449 azi2: 107.998379654880\n    test 4039 line 449 lat2: 61.619396375102\n    test 4040 line 449 lon2: 99.785406498835\n    test 4041 line 449 azi2: 107.998379654880\n    test 4042 line 450 lat: 36.997252\n    test 4043 line 450 lon: 56.015643\n    test 4044 line 450 fb: 103.921663\n    test 4045 line 450 lat2: 36.997252125041\n    test 4046 line 450 lon2: 56.015642631106\n    test 4047 line 450 azi2: 103.921662760483\n    test 4048 line 450 lat2: 36.997252125041\n    test 4049 line 450 lon2: 56.015642631106\n    test 4050 line 450 azi2: 103.921662760483\n    test 4051 line 451 lat: 37.824447\n    test 4052 line 451 lon: 83.438440\n    test 4053 line 451 fb: 89.229164\n    test 4054 line 451 lat2: 37.824446788544\n    test 4055 line 451 lon2: 83.438439603294\n    test 4056 line 451 azi2: 89.229164462127\n    test 4057 line 451 lat2: 37.824446788544\n    test 4058 line 451 lon2: 83.438439603294\n    test 4059 line 451 azi2: 89.229164462127\n    test 4060 line 452 lat: 78.387864\n    test 4061 line 452 lon: 118.814812\n    test 4062 line 452 fb: 133.706108\n    test 4063 line 452 lat2: 78.387863550790\n    test 4064 line 452 lon2: 118.814812128945\n    test 4065 line 452 azi2: 133.706108131229\n    test 4066 line 452 lat2: 78.387863550790\n    test 4067 line 452 lon2: 118.814812128944  FAILED, KNOWN, expected 118.814812128945\n    test 4068 line 452 azi2: 133.706108131229\n    test 4069 line 453 lat: -21.219381\n    test 4070 line 453 lon: 53.544400\n    test 4071 line 453 fb: 108.462517\n    test 4072 line 453 lat2: -21.219381398156\n    test 4073 line 453 lon2: 53.544399883561\n    test 4074 line 453 azi2: 108.462517491505\n    test 4075 line 453 lat2: -21.219381398156\n    test 4076 line 453 lon2: 53.544399883561\n    test 4077 line 453 azi2: 108.462517491505\n    test 4078 line 454 lat: 63.304502\n    test 4079 line 454 lon: 132.034926\n    test 4080 line 454 fb: 139.912627\n    test 4081 line 454 lat2: 63.304502042590\n    test 4082 line 454 lon2: 132.034925840674\n    test 4083 line 454 azi2: 139.912627269623\n    test 4084 line 454 lat2: 63.304502042590\n    test 4085 line 454 lon2: 132.034925840674\n    test 4086 line 454 azi2: 139.912627269623\n    test 4087 line 455 lat: 13.515663\n    test 4088 line 455 lon: 8.989766\n    test 4089 line 455 fb: 35.949535\n    test 4090 line 455 lat2: 13.515662875313\n    test 4091 line 455 lon2: 8.989765670730\n    test 4092 line 455 azi2: 35.949534634702\n    test 4093 line 455 lat2: 13.515662875313\n    test 4094 line 455 lon2: 8.989765670730\n    test 4095 line 455 azi2: 35.949534634702\n    test 4096 line 456 lat: -6.742624\n    test 4097 line 456 lon: 4.531931\n    test 4098 line 456 fb: 171.306863\n    test 4099 line 456 lat2: -6.742624347861\n    test 4100 line 456 lon2: 4.531931315168\n    test 4101 line 456 azi2: 171.306863155411\n    test 4102 line 456 lat2: -6.742624347861\n    test 4103 line 456 lon2: 4.531931315168\n    test 4104 line 456 azi2: 171.306863155411\n    test 4105 line 457 lat: -24.910509\n    test 4106 line 457 lon: 128.137682\n    test 4107 line 457 fb: 121.711631\n    test 4108 line 457 lat2: -24.910509138681\n    test 4109 line 457 lon2: 128.137681811633\n    test 4110 line 457 azi2: 121.711631340407\n    test 4111 line 457 lat2: -24.910509138681\n    test 4112 line 457 lon2: 128.137681811633\n    test 4113 line 457 azi2: 121.711631340407\n    test 4114 line 458 lat: -40.687591\n    test 4115 line 458 lon: 76.389897\n    test 4116 line 458 fb: 116.394433\n    test 4117 line 458 lat2: -40.687590598372\n    test 4118 line 458 lon2: 76.389897347637\n    test 4119 line 458 azi2: 116.394432846311\n    test 4120 line 458 lat2: -40.687590598372\n    test 4121 line 458 lon2: 76.389897347637\n    test 4122 line 458 azi2: 116.394432846311\n    test 4123 line 459 lat: 50.593808\n    test 4124 line 459 lon: 155.175630\n    test 4125 line 459 fb: 149.533910\n    test 4126 line 459 lat2: 50.593807692461\n    test 4127 line 459 lon2: 155.175629862288\n    test 4128 line 459 azi2: 149.533910451363\n    test 4129 line 459 lat2: 50.593807692461\n    test 4130 line 459 lon2: 155.175629862288\n    test 4131 line 459 azi2: 149.533910451363\n    test 4132 line 460 lat: 12.198222\n    test 4133 line 460 lon: 165.839456\n    test 4134 line 460 fb: 172.783459\n    test 4135 line 460 lat2: 12.198221826512\n    test 4136 line 460 lon2: 165.839456381799\n    test 4137 line 460 azi2: 172.783459292833\n    test 4138 line 460 lat2: 12.198221826512\n    test 4139 line 460 lon2: 165.839456381799\n    test 4140 line 460 azi2: 172.783459292833\n    test 4141 line 461 lat: 34.436568\n    test 4142 line 461 lon: 7.117338\n    test 4143 line 461 fb: 169.786492\n    test 4144 line 461 lat2: 34.436568298724\n    test 4145 line 461 lon2: 7.117337693395\n    test 4146 line 461 azi2: 169.786491850891\n    test 4147 line 461 lat2: 34.436568298724\n    test 4148 line 461 lon2: 7.117337693395\n    test 4149 line 461 azi2: 169.786491850891\n    test 4150 line 462 lat: -3.145255\n    test 4151 line 462 lon: 30.502293\n    test 4152 line 462 fb: 103.563749\n    test 4153 line 462 lat2: -3.145254788627\n    test 4154 line 462 lon2: 30.502293345016\n    test 4155 line 462 azi2: 103.563748974525\n    test 4156 line 462 lat2: -3.145254788627\n    test 4157 line 462 lon2: 30.502293345016\n    test 4158 line 462 azi2: 103.563748974525\n    test 4159 line 463 lat: 16.264722\n    test 4160 line 463 lon: 85.497207\n    test 4161 line 463 fb: 116.933863\n    test 4162 line 463 lat2: 16.264722156696\n    test 4163 line 463 lon2: 85.497207496626\n    test 4164 line 463 azi2: 116.933862512764  FAILED, KNOWN, expected 116.933862512763\n    test 4165 line 463 lat2: 16.264722156696\n    test 4166 line 463 lon2: 85.497207496627  FAILED, KNOWN, expected 85.497207496626\n    test 4167 line 463 azi2: 116.933862512764  FAILED, KNOWN, expected 116.933862512763\n    test 4168 line 464 lat: 1.433605\n    test 4169 line 464 lon: 4.165940\n    test 4170 line 464 fb: 170.272462\n    test 4171 line 464 lat2: 1.433605151882\n    test 4172 line 464 lon2: 4.165940219923\n    test 4173 line 464 azi2: 170.272462365963\n    test 4174 line 464 lat2: 1.433605151882\n    test 4175 line 464 lon2: 4.165940219923\n    test 4176 line 464 azi2: 170.272462365963\n    test 4177 line 465 lat: -43.326676\n    test 4178 line 465 lon: 153.148367\n    test 4179 line 465 fb: 42.921394\n    test 4180 line 465 lat2: -43.326676023438\n    test 4181 line 465 lon2: 153.148366512832\n    test 4182 line 465 azi2: 42.921393854868\n    test 4183 line 465 lat2: -43.326676023438\n    test 4184 line 465 lon2: 153.148366512832\n    test 4185 line 465 azi2: 42.921393854868\n    test 4186 line 466 lat: 20.405242\n    test 4187 line 466 lon: 178.247549\n    test 4188 line 466 fb: 178.801033\n    test 4189 line 466 lat2: 20.405242225208\n    test 4190 line 466 lon2: 178.247549230810\n    test 4191 line 466 azi2: 178.801032702563\n    test 4192 line 466 lat2: 20.405242225208\n    test 4193 line 466 lon2: 178.247549230810\n    test 4194 line 466 azi2: 178.801032702563\n    test 4195 line 467 lat: -22.482832\n    test 4196 line 467 lon: 140.761211\n    test 4197 line 467 fb: 82.371737\n    test 4198 line 467 lat2: -22.482831544520\n    test 4199 line 467 lon2: 140.761210729739\n    test 4200 line 467 azi2: 82.371736722715\n    test 4201 line 467 lat2: -22.482831544520\n    test 4202 line 467 lon2: 140.761210729739\n    test 4203 line 467 azi2: 82.371736722715\n    test 4204 line 468 lat: -41.151672\n    test 4205 line 468 lon: 38.419124\n    test 4206 line 468 fb: 148.221356\n    test 4207 line 468 lat2: -41.151672070525\n    test 4208 line 468 lon2: 38.419124284860\n    test 4209 line 468 azi2: 148.221356053664\n    test 4210 line 468 lat2: -41.151672070525\n    test 4211 line 468 lon2: 38.419124284860\n    test 4212 line 468 azi2: 148.221356053664\n    test 4213 line 469 lat: -63.212817\n    test 4214 line 469 lon: 15.714998\n    test 4215 line 469 fb: 166.777356\n    test 4216 line 469 lat2: -63.212816746477\n    test 4217 line 469 lon2: 15.714998156904\n    test 4218 line 469 azi2: 166.777356149473\n    test 4219 line 469 lat2: -63.212816746477\n    test 4220 line 469 lon2: 15.714998156904\n    test 4221 line 469 azi2: 166.777356149473\n    test 4222 line 470 lat: -33.892681\n    test 4223 line 470 lon: 120.971496\n    test 4224 line 470 fb: 170.404814\n    test 4225 line 470 lat2: -33.892680517408\n    test 4226 line 470 lon2: 120.971495805190\n    test 4227 line 470 azi2: 170.404813772447\n    test 4228 line 470 lat2: -33.892680517408\n    test 4229 line 470 lon2: 120.971495805190\n    test 4230 line 470 azi2: 170.404813772447\n    test 4231 line 471 lat: -17.570093\n    test 4232 line 471 lon: 137.259693\n    test 4233 line 471 fb: 175.973637\n    test 4234 line 471 lat2: -17.570092516031\n    test 4235 line 471 lon2: 137.259693182063\n    test 4236 line 471 azi2: 175.973637230107\n    test 4237 line 471 lat2: -17.570092516031\n    test 4238 line 471 lon2: 137.259693182063\n    test 4239 line 471 azi2: 175.973637230107\n    test 4240 line 472 lat: -24.221028\n    test 4241 line 472 lon: 33.960052\n    test 4242 line 472 fb: 130.753279\n    test 4243 line 472 lat2: -24.221027716301  FAILED, KNOWN, expected -24.221027716300\n    test 4244 line 472 lon2: 33.960051796001\n    test 4245 line 472 azi2: 130.753279335550\n    test 4246 line 472 lat2: -24.221027716301  FAILED, KNOWN, expected -24.221027716300\n    test 4247 line 472 lon2: 33.960051796001\n    test 4248 line 472 azi2: 130.753279335550\n    test 4249 line 473 lat: -48.849133\n    test 4250 line 473 lon: 176.601435\n    test 4251 line 473 fb: 5.037779\n    test 4252 line 473 lat2: -48.849132604777\n    test 4253 line 473 lon2: 176.601435366477\n    test 4254 line 473 azi2: 5.037779120578\n    test 4255 line 473 lat2: -48.849132604777\n    test 4256 line 473 lon2: 176.601435366477\n    test 4257 line 473 azi2: 5.037779120578\n    test 4258 line 474 lat: -50.620233\n    test 4259 line 474 lon: 22.061011\n    test 4260 line 474 fb: 159.730881\n    test 4261 line 474 lat2: -50.620232529081\n    test 4262 line 474 lon2: 22.061010504617\n    test 4263 line 474 azi2: 159.730880799186\n    test 4264 line 474 lat2: -50.620232529081\n    test 4265 line 474 lon2: 22.061010504617\n    test 4266 line 474 azi2: 159.730880799186\n    test 4267 line 475 lat: -11.354875\n    test 4268 line 475 lon: 76.258812\n    test 4269 line 475 fb: 104.014357\n    test 4270 line 475 lat2: -11.354875472483\n    test 4271 line 475 lon2: 76.258812283705\n    test 4272 line 475 azi2: 104.014356938495\n    test 4273 line 475 lat2: -11.354875472483\n    test 4274 line 475 lon2: 76.258812283705\n    test 4275 line 475 azi2: 104.014356938495\n    test 4276 line 476 lat: -19.640051\n    test 4277 line 476 lon: 105.698979\n    test 4278 line 476 fb: 156.650619\n    test 4279 line 476 lat2: -19.640050782646\n    test 4280 line 476 lon2: 105.698978700604\n    test 4281 line 476 azi2: 156.650619021389\n    test 4282 line 476 lat2: -19.640050782646\n    test 4283 line 476 lon2: 105.698978700604\n    test 4284 line 476 azi2: 156.650619021389\n    test 4285 line 477 lat: 83.855267\n    test 4286 line 477 lon: 112.674858\n    test 4287 line 477 fb: 122.383784\n    test 4288 line 477 lat2: 83.855266840098\n    test 4289 line 477 lon2: 112.674858066810\n    test 4290 line 477 azi2: 122.383784147681\n    test 4291 line 477 lat2: 83.855266840098\n    test 4292 line 477 lon2: 112.674858066811  FAILED, KNOWN, expected 112.674858066810\n    test 4293 line 477 azi2: 122.383784147681\n    test 4294 line 478 lat: 48.296558\n    test 4295 line 478 lon: 34.072463\n    test 4296 line 478 fb: 61.415867\n    test 4297 line 478 lat2: 48.296557545891\n    test 4298 line 478 lon2: 34.072462542900\n    test 4299 line 478 azi2: 61.415867309157\n    test 4300 line 478 lat2: 48.296557545891\n    test 4301 line 478 lon2: 34.072462542900\n    test 4302 line 478 azi2: 61.415867309157\n    test 4303 line 479 lat: 20.173772\n    test 4304 line 479 lon: 12.682422\n    test 4305 line 479 fb: 165.220898\n    test 4306 line 479 lat2: 20.173772376863\n    test 4307 line 479 lon2: 12.682422408956\n    test 4308 line 479 azi2: 165.220897942891\n    test 4309 line 479 lat2: 20.173772376863\n    test 4310 line 479 lon2: 12.682422408956\n    test 4311 line 479 azi2: 165.220897942891\n    test 4312 line 480 lat: 47.501521\n    test 4313 line 480 lon: 54.338775\n    test 4314 line 480 fb: 80.572388\n    test 4315 line 480 lat2: 47.501521345953\n    test 4316 line 480 lon2: 54.338775236773\n    test 4317 line 480 azi2: 80.572387690286\n    test 4318 line 480 lat2: 47.501521345953\n    test 4319 line 480 lon2: 54.338775236773\n    test 4320 line 480 azi2: 80.572387690286\n    test 4321 line 481 lat: -34.023172\n    test 4322 line 481 lon: 174.310259\n    test 4323 line 481 fb: 123.138509\n    test 4324 line 481 lat2: -34.023171607796\n    test 4325 line 481 lon2: 174.310258612178\n    test 4326 line 481 azi2: 123.138509441522\n    test 4327 line 481 lat2: -34.023171607796\n    test 4328 line 481 lon2: 174.310258612178\n    test 4329 line 481 azi2: 123.138509441522\n    test 4330 line 482 lat: -31.540913\n    test 4331 line 482 lon: 52.441924\n    test 4332 line 482 fb: 155.194513\n    test 4333 line 482 lat2: -31.540912691186\n    test 4334 line 482 lon2: 52.441923606881  FAILED, KNOWN, expected 52.441923606882\n    test 4335 line 482 azi2: 155.194512958367\n    test 4336 line 482 lat2: -31.540912691186\n    test 4337 line 482 lon2: 52.441923606881  FAILED, KNOWN, expected 52.441923606882\n    test 4338 line 482 azi2: 155.194512958367\n    test 4339 line 483 lat: 64.121649\n    test 4340 line 483 lon: 21.295234\n    test 4341 line 483 fb: 51.966943\n    test 4342 line 483 lat2: 64.121648788158\n    test 4343 line 483 lon2: 21.295234110583\n    test 4344 line 483 azi2: 51.966943039534\n    test 4345 line 483 lat2: 64.121648788158\n    test 4346 line 483 lon2: 21.295234110583\n    test 4347 line 483 azi2: 51.966943039534\n    test 4348 line 484 lat: -4.599613\n    test 4349 line 484 lon: 107.727091\n    test 4350 line 484 fb: 109.270070\n    test 4351 line 484 lat2: -4.599612537190\n    test 4352 line 484 lon2: 107.727090701893\n    test 4353 line 484 azi2: 109.270070124629\n    test 4354 line 484 lat2: -4.599612537190\n    test 4355 line 484 lon2: 107.727090701893\n    test 4356 line 484 azi2: 109.270070124629\n    test 4357 line 485 lat: -16.799515\n    test 4358 line 485 lon: 43.675397\n    test 4359 line 485 fb: 144.940350\n    test 4360 line 485 lat2: -16.799514501718\n    test 4361 line 485 lon2: 43.675397103786  FAILED, KNOWN, expected 43.675397103785\n    test 4362 line 485 azi2: 144.940350340820\n    test 4363 line 485 lat2: -16.799514501718\n    test 4364 line 485 lon2: 43.675397103786  FAILED, KNOWN, expected 43.675397103785\n    test 4365 line 485 azi2: 144.940350340820\n    test 4366 line 486 lat: -16.337411\n    test 4367 line 486 lon: 13.110283\n    test 4368 line 486 fb: 167.467077\n    test 4369 line 486 lat2: -16.337410785184\n    test 4370 line 486 lon2: 13.110282576579\n    test 4371 line 486 azi2: 167.467077049713\n    test 4372 line 486 lat2: -16.337410785184\n    test 4373 line 486 lon2: 13.110282576579\n    test 4374 line 486 azi2: 167.467077049713\n    test 4375 line 487 lat: -26.145379\n    test 4376 line 487 lon: 9.977868\n    test 4377 line 487 fb: 171.929335\n    test 4378 line 487 lat2: -26.145378737931\n    test 4379 line 487 lon2: 9.977868070750\n    test 4380 line 487 azi2: 171.929335050809\n    test 4381 line 487 lat2: -26.145378737931\n    test 4382 line 487 lon2: 9.977868070750\n    test 4383 line 487 azi2: 171.929335050809\n    test 4384 line 488 lat: -3.245748\n    test 4385 line 488 lon: 71.931981\n    test 4386 line 488 fb: 124.120047\n    test 4387 line 488 lat2: -3.245748416402\n    test 4388 line 488 lon2: 71.931980979620\n    test 4389 line 488 azi2: 124.120046609527\n    test 4390 line 488 lat2: -3.245748416402\n    test 4391 line 488 lon2: 71.931980979620\n    test 4392 line 488 azi2: 124.120046609527\n    test 4393 line 489 lat: 72.975644\n    test 4394 line 489 lon: 36.459313\n    test 4395 line 489 fb: 49.411324\n    test 4396 line 489 lat2: 72.975644407376\n    test 4397 line 489 lon2: 36.459312843012\n    test 4398 line 489 azi2: 49.411324496539\n    test 4399 line 489 lat2: 72.975644407376\n    test 4400 line 489 lon2: 36.459312843012\n    test 4401 line 489 azi2: 49.411324496539\n    test 4402 line 490 lat: 50.342418\n    test 4403 line 490 lon: 35.445910\n    test 4404 line 490 fb: 43.087650\n    test 4405 line 490 lat2: 50.342417843481\n    test 4406 line 490 lon2: 35.445910446930\n    test 4407 line 490 azi2: 43.087650398316\n    test 4408 line 490 lat2: 50.342417843481\n    test 4409 line 490 lon2: 35.445910446930\n    test 4410 line 490 azi2: 43.087650398316\n    test 4411 line 491 lat: -22.878804\n    test 4412 line 491 lon: 69.376306\n    test 4413 line 491 fb: 102.211558\n    test 4414 line 491 lat2: -22.878804028267\n    test 4415 line 491 lon2: 69.376306288000\n    test 4416 line 491 azi2: 102.211557813582\n    test 4417 line 491 lat2: -22.878804028267\n    test 4418 line 491 lon2: 69.376306288000\n    test 4419 line 491 azi2: 102.211557813582\n    test 4420 line 492 lat: 21.254912\n    test 4421 line 492 lon: 21.899215\n    test 4422 line 492 fb: 92.966926\n    test 4423 line 492 lat2: 21.254912121078\n    test 4424 line 492 lon2: 21.899214754868\n    test 4425 line 492 azi2: 92.966926161390\n    test 4426 line 492 lat2: 21.254912121078\n    test 4427 line 492 lon2: 21.899214754868\n    test 4428 line 492 azi2: 92.966926161390\n    test 4429 line 493 lat: 26.486641\n    test 4430 line 493 lon: 19.097603\n    test 4431 line 493 fb: 158.053447\n    test 4432 line 493 lat2: 26.486640906235\n    test 4433 line 493 lon2: 19.097602913800\n    test 4434 line 493 azi2: 158.053446850267\n    test 4435 line 493 lat2: 26.486640906235\n    test 4436 line 493 lon2: 19.097602913800\n    test 4437 line 493 azi2: 158.053446850267\n    test 4438 line 494 lat: 43.041538\n    test 4439 line 494 lon: 114.186950\n    test 4440 line 494 fb: 155.795323\n    test 4441 line 494 lat2: 43.041538374784\n    test 4442 line 494 lon2: 114.186949886941\n    test 4443 line 494 azi2: 155.795322500736\n    test 4444 line 494 lat2: 43.041538374784\n    test 4445 line 494 lon2: 114.186949886941\n    test 4446 line 494 azi2: 155.795322500736\n    test 4447 line 495 lat: -10.570764\n    test 4448 line 495 lon: 107.625834\n    test 4449 line 495 fb: 98.142401\n    test 4450 line 495 lat2: -10.570763915882\n    test 4451 line 495 lon2: 107.625834147204\n    test 4452 line 495 azi2: 98.142400502747\n    test 4453 line 495 lat2: -10.570763915882\n    test 4454 line 495 lon2: 107.625834147204\n    test 4455 line 495 azi2: 98.142400502747\n    test 4456 line 496 lat: 12.624313\n    test 4457 line 496 lon: 139.841077\n    test 4458 line 496 fb: 148.385662\n    test 4459 line 496 lat2: 12.624313141297\n    test 4460 line 496 lon2: 139.841076840613\n    test 4461 line 496 azi2: 148.385661923898\n    test 4462 line 496 lat2: 12.624313141297\n    test 4463 line 496 lon2: 139.841076840613\n    test 4464 line 496 azi2: 148.385661923898\n    test 4465 line 497 lat: -25.169999\n    test 4466 line 497 lon: 33.175749\n    test 4467 line 497 fb: 169.905377\n    test 4468 line 497 lat2: -25.169998746665\n    test 4469 line 497 lon2: 33.175749310362\n    test 4470 line 497 azi2: 169.905376778384\n    test 4471 line 497 lat2: -25.169998746665\n    test 4472 line 497 lon2: 33.175749310362\n    test 4473 line 497 azi2: 169.905376778384\n    test 4474 line 498 lat: -41.360282\n    test 4475 line 498 lon: 147.341948\n    test 4476 line 498 fb: 136.551910\n    test 4477 line 498 lat2: -41.360281944908\n    test 4478 line 498 lon2: 147.341948469937\n    test 4479 line 498 azi2: 136.551910060918\n    test 4480 line 498 lat2: -41.360281944908\n    test 4481 line 498 lon2: 147.341948469937\n    test 4482 line 498 azi2: 136.551910060918\n    test 4483 line 499 lat: 39.182099\n    test 4484 line 499 lon: 150.590705\n    test 4485 line 499 fb: 165.522951\n    test 4486 line 499 lat2: 39.182099298590\n    test 4487 line 499 lon2: 150.590705311219\n    test 4488 line 499 azi2: 165.522950851635\n    test 4489 line 499 lat2: 39.182099298590\n    test 4490 line 499 lon2: 150.590705311219\n    test 4491 line 499 azi2: 165.522950851635\n    test 4492 line 500 lat: -57.494441\n    test 4493 line 500 lon: 113.054057\n    test 4494 line 500 fb: 130.988277\n    test 4495 line 500 lat2: -57.494440629886\n    test 4496 line 500 lon2: 113.054056725195\n    test 4497 line 500 azi2: 130.988276746436\n    test 4498 line 500 lat2: -57.494440629886\n    test 4499 line 500 lon2: 113.054056725195\n    test 4500 line 500 azi2: 130.988276746436\n    test 4501 WGS84.KsOrder: 8\n\n    545 of 4501 testEllipsoidalGeodTest.py tests (12.1%) FAILED, incl. 45 KNOWN plus 500 DeprecationWarnings (pygeodesy 26.3.26 Python 3.11.9 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 1.24.2 scipy 1.10.1 Math 2 macOS 26.3.1 isLazy 0 -W  default) 22.692 sec\nrunning /usr/local/bin/p....n3.11 -W default ~/PyGeodesy/test/testEllipsoids.py\n\n    testing testEllipsoids.py 25.08.28 (module pygeodesy.ellipsoids 26.03.25)\n    test 1 ellipsoid: True\n    test 2 TestEllipsoid: name='TestEllipsoid', a=1000, f=0, f_=0, b=1000\n\n    testWGS84(pygeodesy.ellipsoids, 26.03.25)\n    test 3 R1: 6371008.7714\n    test 4 R2: 6371007.2\n    test 5 R3: 6371000.8\n    test 6 A: 6367449.1\n    test 7 L: 10001965.7\n    test 8 Rrectifying: 6367449.1\n    test 9 Rgeometric: 6367435.7\n    test 10 Rgeocentric: 6378137.000\n    test 11 Rgeocentric: 6367489.544\n    test 12 Rgeocentric: 6356752.314\n    test 13 Rlat: 6378137.000\n    test 14 Rlat: 6367444.657\n    test 15 Rlat: 6356752.314\n    test 16 circle4.radius: 6378137.000\n    test 17 circle4.radius: 4517590.879\n    test 18 circle4.radius: 0.000\n    test 19 distance2: 156903.472, 45.192\n    test 20 distance2: 1569034.719, 45.192\n    test 21 distance2: 1400742.676, 37.563\n    test 22 distance2: 1179164.848, 18.896\n    test 23 roc2: 6335439.327, 6378137.0\n    test 24 roc2: 6367381.816, 6388838.29\n    test 25 roc2: 6399593.626, 6399593.626\n    test 26 rocBearing: 6335439.327\n    test 27 rocBearing: 6378092.008\n    test 28 rocBearing: 6399593.626\n    test 29 rocGauss: 6356752.314\n    test 30 rocGauss: 6378101.030\n    test 31 rocGauss: 6399593.626\n    test 32 rocMean: 6356716.465\n    test 33 rocMean: 6378092.008\n    test 34 rocMean: 6399593.626\n    test 35 rocMeridional: 6335439.327\n    test 36 rocMeridional: 6367381.816\n    test 37 rocMeridional: 6399593.626\n    test 38 rocPrimeVertical: 6378137.0\n    test 39 rocPrimeVertical: 6388838.29\n    test 40 rocPrimeVertical: 6399593.626\n\n    testGRS80(pygeodesy.ellipsoids, 26.03.25)\n    test 41 R1: 6371008.7714\n    test 42 R2: 6371007.2\n    test 43 R3: 6371000.8\n    test 44 A: 6367449.1\n    test 45 L: 10001965.7\n    test 46 Rrectifying: 6367449.1\n    test 47 Rgeometric: 6367435.7\n    test 48 Rgeocentric: 6378137.000\n    test 49 Rgeocentric: 6367489.544\n    test 50 Rgeocentric: 6356752.314\n    test 51 Rlat: 6378137.000\n    test 52 Rlat: 6367444.657\n    test 53 Rlat: 6356752.314\n    test 54 circle4.radius: 6378137.000\n    test 55 circle4.radius: 4517590.879\n    test 56 circle4.radius: 0.000\n    test 57 distance2: 156903.472, 45.192\n    test 58 distance2: 1569034.719, 45.192\n    test 59 distance2: 1400742.676, 37.563\n    test 60 distance2: 1179164.848, 18.896\n    test 61 roc2: 6335439.327, 6378137.0\n    test 62 roc2: 6367381.816, 6388838.29\n    test 63 roc2: 6399593.626, 6399593.626\n    test 64 rocBearing: 6335439.327\n    test 65 rocBearing: 6378092.008\n    test 66 rocBearing: 6399593.626\n    test 67 rocGauss: 6356752.314\n    test 68 rocGauss: 6378101.030\n    test 69 rocGauss: 6399593.626\n    test 70 rocMean: 6356716.465\n    test 71 rocMean: 6378092.008\n    test 72 rocMean: 6399593.626\n    test 73 rocMeridional: 6335439.327\n    test 74 rocMeridional: 6367381.816\n    test 75 rocMeridional: 6399593.626\n    test 76 rocPrimeVertical: 6378137.0\n    test 77 rocPrimeVertical: 6388838.29\n    test 78 rocPrimeVertical: 6399593.626\n\n    test<function Ellipsoid.__init__ at 0x1022cc720>(pygeodesy.ellipsoids, 26.03.25)\n    test 79 a, b, None: 2.0\n    test 80 a, None, f_: 500.0\n\n    testWGS84(pygeodesy.ellipsoids, 26.03.25)\n    test 81 WGS84.copy: True\n    test 82 WGS84.copy: True\n    test 83 WGS84.find: None\n    test 84 WGS84.a2_b: 6399593.625758\n    test 85 WGS84.b2_a: 6335439.327293\n    test 86 WGS84.R2: 6371007.180918\n    test 87 WGS84.c2: 40589732499315\n    test 88 WGS84.es: 0.081819\n    test 89 WGS84.e22: 0.006739\n    test 90 WGS84.f2: 0.003364\n    test 91 WGS84.m2degrees: 90\n    test 92 WGS84.degrees2m: 10018754\n    test 93 WGS84.area: 5.101e+14\n    test 94 WGS84.volume: 1.083e+21\n    test 95 WGS84.ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 96 WGS84.ecef: WGS84\n    test 97 WGS84: name='WGS84', a=6378137, f=0.0033528107, f_=298.257223563, b=6356752.3142451793, f2=0.0033640898, n=0.0016792204, e=0.0818191908, e2=0.00669438, e21=0.99330562, e22=0.0067394967, e32=0.0033584313, A=6367449.1458234144, L=10001965.7293127235, R1=6371008.7714150595, R2=6371007.1809184738, R3=6371000.7900091587, Rbiaxial=6367453.6345163295, Rtriaxial=6372797.5559594007\n    test 98 WGS84.: A=6367449.1458234144, e=0.0818191908, f_=298.2572235630, n=0.0016792204 (1.5612511284e-17)\n\n    testKruegers(pygeodesy.ellipsoids, 26.03.25)\n    test 99 WGS84.AlphaKs: 8.377318206245e-04, 7.608527773572e-07, 1.197645503242e-09, 2.429170680397e-12, 5.711818370428e-15, 1.47999793138e-17, 4.107624109371e-20, 1.210785038923e-22\n    test 100 WGS84.BetaKs : 8.377321640579e-04, 5.90587015222e-08, 1.673482665344e-10, 2.164798110491e-13, 3.787930968626e-16, 7.236769021816e-19, 1.493479824778e-21, 3.259522545838e-24\n    test 101 WGS84.AlphaKs: 8.377318206245e-04, 7.608527773572e-07, 1.197645503329e-09, 2.429170607201e-12, 5.711757677866e-15, 1.491117731258e-17\n    test 102 WGS84.BetaKs : 8.377321640579e-04, 5.90587015222e-08, 1.673482665284e-10, 2.164798040063e-13, 3.787978046169e-16, 7.248748890694e-19\n    test 103 WGS84.AlphaKs: 8.377318206304e-04, 7.608527714249e-07, 1.197638001561e-09, 2.443376194522e-12\n    test 104 WGS84.BetaKs : 8.377321640601e-04, 5.905869567934e-08, 1.673488880355e-10, 2.167737763022e-13\n\n    testProlate(pygeodesy.ellipsoids, 26.03.25)\n    test 105 a [Radius_]: 6356752.314\n    test 106 b [Radius_]: 6378137.000\n    test 107 n [Float]: -0.002\n    test 108 R1 [Radius]: 6363880.543\n    test 109 R2 [Radius]: 6363878.941\n    test 110 R3 [Radius]: 6363872.564\n    test 111 Rbiaxial [Radius]: 6367453.635\n    test 112 Rgeometric [Radius]: 6367435.680\n    test 113 c2 [Meter2]: 40498955180263.188\n    test 114 area [Meter2]: 508924880289508.500\n    test 115 volume [Meter3]: 1079575530747445379072.000\n\n    testauxLats WGS84(pygeodesy.ellipsoids, 26.03.25)\n    test 116 isEllipsoidal: True\n    test 117 isOblate: True\n    test 118 isProlate: False\n    test 119 isSpherical: False\n    test 120 auxAuthalic(-90): -90.0\n    test 121 name: auxAuthalic\n    test 122 inverse: lat (-90.0)\n    test 123 auxConformal(-90): -90.0\n    test 124 name: auxConformal\n    test 125 inverse: lat (-90.0)\n    test 126 auxRectifying(-90): -90.0\n    test 127 name: auxRectifying\n    test 128 inverse: lat (-90.0)\n    test 129 auxIsometric(-90): -2178.287790219\n    test 130 name: auxIsometric\n    test 131 inverse: lat (-90.0)\n    test 132 auxParametric(-90): -90.0\n    test 133 name: auxParametric\n    test 134 inverse: lat (-90.0)\n    test 135 auxGeocentric(-90): -90.0\n    test 136 name: auxGeocentric\n    test 137 inverse: lat (-90.0)\n    test 138 auxGeocentric(-90, height=1.0e+06): -90.0\n    test 139 name: auxGeocentric\n    test 140 inverse: lat (-90.0)\n    test 141 auxAuthalic(-61): -60.891087993\n    test 142 name: auxAuthalic\n    test 143 inverse: lat (-61.0)\n    test 144 auxConformal(-61): -60.836664626\n    test 145 name: auxConformal\n    test 146 inverse: lat (-61.0)\n    test 147 auxRectifying(-61): -60.877475063\n    test 148 name: auxRectifying\n    test 149 inverse: lat (-61.0)\n    test 150 auxIsometric(-61): -77.151044895\n    test 151 name: auxIsometric\n    test 152 inverse: lat (-61.0)\n    test 153 auxParametric(-61): -60.918334778\n    test 154 name: auxParametric\n    test 155 inverse: lat (-61.0)\n    test 156 auxGeocentric(-61): -60.836524751\n    test 157 name: auxGeocentric\n    test 158 inverse: lat (-61.0)\n    test 159 auxGeocentric(-61, height=1.0e+06): -60.858730579\n    test 160 name: auxGeocentric\n    test 161 inverse: lat (-61.0)\n    test 162 auxAuthalic(-32): -31.884783413\n    test 163 name: auxAuthalic\n    test 164 inverse: lat (-32.0)\n    test 165 auxConformal(-32): -31.827359208\n    test 166 name: auxConformal\n    test 167 inverse: lat (-32.0)\n    test 168 auxRectifying(-32): -31.870407049\n    test 169 name: auxRectifying\n    test 170 inverse: lat (-32.0)\n    test 171 auxIsometric(-32): -33.603011359\n    test 172 name: auxIsometric\n    test 173 inverse: lat (-32.0)\n    test 174 auxParametric(-32): -31.913588685\n    test 175 name: auxParametric\n    test 176 inverse: lat (-32.0)\n    test 177 auxGeocentric(-32): -31.827305281\n    test 178 name: auxGeocentric\n    test 179 inverse: lat (-32.0)\n    test 180 auxGeocentric(-32, height=1.0e+06): -31.850730486\n    test 181 name: auxGeocentric\n    test 182 inverse: lat (-32.0)\n    test 183 auxAuthalic(-3): -2.986614622\n    test 184 name: auxAuthalic\n    test 185 inverse: lat (-3.0)\n    test 186 auxConformal(-3): -2.97995324\n    test 187 name: auxConformal\n    test 188 inverse: lat (-3.0)\n    test 189 auxRectifying(-3): -2.984946069\n    test 190 name: auxRectifying\n    test 191 inverse: lat (-3.0)\n    test 192 auxIsometric(-3): -2.981297631\n    test 193 name: auxIsometric\n    test 194 inverse: lat (-3.0)\n    test 195 auxParametric(-3): -2.98995985\n    test 196 name: auxParametric\n    test 197 inverse: lat (-3.0)\n    test 198 auxGeocentric(-3): -2.979953179\n    test 199 name: auxGeocentric\n    test 200 inverse: lat (-3.0)\n    test 201 auxGeocentric(-3, height=1.0e+06): -2.982670258\n    test 202 name: auxGeocentric\n    test 203 inverse: lat (-3.0)\n    test 204 auxAuthalic(26): 25.899018772\n    test 205 name: auxAuthalic\n    test 206 inverse: lat (26.0)\n    test 207 auxConformal(26): 25.848713396\n    test 208 name: auxConformal\n    test 209 inverse: lat (26.0)\n    test 210 auxRectifying(26): 25.886422583\n    test 211 name: auxRectifying\n    test 212 inverse: lat (26.0)\n    test 213 auxIsometric(26): 26.772988826\n    test 214 name: auxIsometric\n    test 215 inverse: lat (26.0)\n    test 216 auxParametric(26): 25.924262064\n    test 217 name: auxParametric\n    test 218 inverse: lat (26.0)\n    test 219 auxGeocentric(26): 25.848681095\n    test 220 name: auxGeocentric\n    test 221 inverse: lat (26.0)\n    test 222 auxGeocentric(26, height=1.0e+06): 25.869201526\n    test 223 name: auxGeocentric\n    test 224 inverse: lat (26.0)\n    test 225 auxAuthalic(55): 54.879361595\n    test 226 name: auxAuthalic\n    test 227 inverse: lat (55.0)\n    test 228 auxConformal(55): 54.819109025\n    test 229 name: auxConformal\n    test 230 inverse: lat (55.0)\n    test 231 auxRectifying(55): 54.864287984\n    test 232 name: auxRectifying\n    test 233 inverse: lat (55.0)\n    test 234 auxIsometric(55): 65.818103037\n    test 235 name: auxIsometric\n    test 236 inverse: lat (55.0)\n    test 237 auxParametric(55): 54.909538188\n    test 238 name: auxParametric\n    test 239 inverse: lat (55.0)\n    test 240 auxGeocentric(55): 54.818973309\n    test 241 name: auxGeocentric\n    test 242 inverse: lat (55.0)\n    test 243 auxGeocentric(55, height=1.0e+06): 54.843556517\n    test 244 name: auxGeocentric\n    test 245 inverse: lat (55.0)\n    test 246 auxAuthalic(84): 83.973275752\n    test 247 name: auxAuthalic\n    test 248 inverse: lat (84.0)\n    test 249 auxConformal(84): 83.959905489\n    test 250 name: auxConformal\n    test 251 inverse: lat (84.0)\n    test 252 auxRectifying(84): 83.969932835\n    test 253 name: auxRectifying\n    test 254 inverse: lat (84.0)\n    test 255 auxIsometric(84): 168.565774939\n    test 256 name: auxIsometric\n    test 257 inverse: lat (84.0)\n    test 258 auxParametric(84): 83.979963441\n    test 259 name: auxParametric\n    test 260 inverse: lat (84.0)\n    test 261 auxGeocentric(84): 83.959860962\n    test 262 name: auxGeocentric\n    test 263 inverse: lat (84.0)\n    test 264 auxGeocentric(84, height=1.0e+06): 83.965316868\n    test 265 name: auxGeocentric\n    test 266 inverse: lat (84.0)\n\n    testauxLats Prolate(pygeodesy.ellipsoids, 26.03.25)\n    test 267 isEllipsoidal: True\n    test 268 isOblate: False\n    test 269 isProlate: True\n    test 270 isSpherical: False\n    test 271 auxAuthalic(-90): -90.0\n    test 272 name: auxAuthalic\n    test 273 inverse: lat (-90.0)\n    test 274 auxConformal(-90): -90.0\n    test 275 name: auxConformal\n    test 276 inverse: lat (-90.0)\n    test 277 auxRectifying(-90): -90.0\n    test 278 name: auxRectifying\n    test 279 inverse: lat (-90.0)\n    test 280 auxIsometric(-90): -2179.057490028\n    test 281 name: auxIsometric\n    test 282 inverse: lat (-90.0)\n    test 283 auxParametric(-90): -90.0\n    test 284 name: auxParametric\n    test 285 inverse: lat (-90.0)\n    test 286 auxGeocentric(-90): -90.0\n    test 287 name: auxGeocentric\n    test 288 inverse: lat (-90.0)\n    test 289 auxGeocentric(-90, height=1.0e+06): -90.0\n    test 290 name: auxGeocentric\n    test 291 inverse: lat (-90.0)\n    test 292 auxAuthalic(-61): -61.10866822\n    test 293 name: auxAuthalic\n    test 294 inverse: lat (-61.0)\n    test 295 auxConformal(-61): -61.163034022\n    test 296 name: auxConformal\n    test 297 inverse: lat (-61.0)\n    test 298 auxRectifying(-61): -61.041077146\n    test 299 name: auxRectifying\n    test 300 inverse: lat (-61.0)\n    test 301 auxIsometric(-61): -77.824239376\n    test 302 name: auxIsometric\n    test 303 inverse: lat (-61.0)\n    test 304 auxParametric(-61): -61.081520012\n    test 305 name: auxParametric\n    test 306 inverse: lat (-61.0)\n    test 307 auxGeocentric(-61): -61.162894413\n    test 308 name: auxGeocentric\n    test 309 inverse: lat (-61.0)\n    test 310 auxGeocentric(-61, height=1.0e+06): -61.140801491\n    test 311 name: auxGeocentric\n    test 312 inverse: lat (-61.0)\n    test 313 auxAuthalic(-32): -32.115383155\n    test 314 name: auxAuthalic\n    test 315 inverse: lat (-32.0)\n    test 316 auxConformal(-32): -32.173258776\n    test 317 name: auxConformal\n    test 318 inverse: lat (-32.0)\n    test 319 auxRectifying(-32): -32.043518766\n    test 320 name: auxRectifying\n    test 321 inverse: lat (-32.0)\n    test 322 auxIsometric(-32): -34.010891137\n    test 323 name: auxIsometric\n    test 324 inverse: lat (-32.0)\n    test 325 auxParametric(-32): -32.086538627\n    test 326 name: auxParametric\n    test 327 inverse: lat (-32.0)\n    test 328 auxGeocentric(-32): -32.173203962\n    test 329 name: auxGeocentric\n    test 330 inverse: lat (-32.0)\n    test 331 auxGeocentric(-32, height=1.0e+06): -32.149679767\n    test 332 name: auxGeocentric\n    test 333 inverse: lat (-32.0)\n    test 334 auxAuthalic(-3): -3.013433135\n    test 335 name: auxAuthalic\n    test 336 inverse: lat (-3.0)\n    test 337 auxConformal(-3): -3.020181246\n    test 338 name: auxConformal\n    test 339 inverse: lat (-3.0)\n    test 340 auxRectifying(-3): -3.005060047\n    test 341 name: auxRectifying\n    test 342 inverse: lat (-3.0)\n    test 343 auxIsometric(-3): -3.021580847\n    test 344 name: auxIsometric\n    test 345 inverse: lat (-3.0)\n    test 346 auxParametric(-3): -3.010073741\n    test 347 name: auxParametric\n    test 348 inverse: lat (-3.0)\n    test 349 auxGeocentric(-3): -3.020181184\n    test 350 name: auxGeocentric\n    test 351 inverse: lat (-3.0)\n    test 352 auxGeocentric(-3, height=1.0e+06): -3.017437987\n    test 353 name: auxGeocentric\n    test 354 inverse: lat (-3.0)\n    test 355 auxAuthalic(26): 26.10119548\n    test 356 name: auxAuthalic\n    test 357 inverse: lat (26.0)\n    test 358 auxConformal(26): 26.151978892\n    test 359 name: auxConformal\n    test 360 inverse: lat (26.0)\n    test 361 auxRectifying(26): 26.038152061\n    test 362 name: auxRectifying\n    test 363 inverse: lat (26.0)\n    test 364 auxIsometric(26): 27.110404181\n    test 365 name: auxIsometric\n    test 366 inverse: lat (26.0)\n    test 367 auxParametric(26): 26.075894699\n    test 368 name: auxParametric\n    test 369 inverse: lat (26.0)\n    test 370 auxGeocentric(26): 26.15194595\n    test 371 name: auxGeocentric\n    test 372 inverse: lat (26.0)\n    test 373 auxGeocentric(26, height=1.0e+06): 26.131303631\n    test 374 name: auxGeocentric\n    test 375 inverse: lat (26.0)\n    test 376 auxAuthalic(55): 55.120454487\n    test 377 name: auxAuthalic\n    test 378 inverse: lat (55.0)\n    test 379 auxConformal(55): 55.180747234\n    test 380 name: auxConformal\n    test 381 inverse: lat (55.0)\n    test 382 auxRectifying(55): 55.045512882\n    test 383 name: auxRectifying\n    test 384 inverse: lat (55.0)\n    test 385 auxIsometric(55): 66.448604201\n    test 386 name: auxIsometric\n    test 387 inverse: lat (55.0)\n    test 388 auxParametric(55): 55.090357963\n    test 389 name: auxParametric\n    test 390 inverse: lat (55.0)\n    test 391 auxGeocentric(55): 55.180611298\n    test 392 name: auxGeocentric\n    test 393 inverse: lat (55.0)\n    test 394 auxGeocentric(55, height=1.0e+06): 55.156108835\n    test 395 name: auxGeocentric\n    test 396 inverse: lat (55.0)\n    test 397 auxAuthalic(84): 84.026618976\n    test 398 name: auxAuthalic\n    test 399 inverse: lat (84.0)\n    test 400 auxConformal(84): 84.039920255\n    test 401 name: auxConformal\n    test 402 inverse: lat (84.0)\n    test 403 auxRectifying(84): 84.010072387\n    test 404 name: auxRectifying\n    test 405 inverse: lat (84.0)\n    test 406 auxIsometric(84): 169.331258228\n    test 407 name: auxIsometric\n    test 408 inverse: lat (84.0)\n    test 409 auxParametric(84): 84.019970846\n    test 410 name: auxParametric\n    test 411 inverse: lat (84.0)\n    test 412 auxGeocentric(84): 84.039876185\n    test 413 name: auxGeocentric\n    test 414 inverse: lat (84.0)\n    test 415 auxGeocentric(84, height=1.0e+06): 84.034471374\n    test 416 name: auxGeocentric\n    test 417 inverse: lat (84.0)\n\n    testauxLats Sphere(pygeodesy.ellipsoids, 26.03.25)\n    test 418 isEllipsoidal: False\n    test 419 isOblate: False\n    test 420 isProlate: False\n    test 421 isSpherical: True\n    test 422 auxAuthalic(-90): -90.0\n    test 423 name: auxAuthalic\n    test 424 inverse: lat (-90.0)\n    test 425 auxConformal(-90): -90.0\n    test 426 name: auxConformal\n    test 427 inverse: lat (-90.0)\n    test 428 auxRectifying(-90): -90.0\n    test 429 name: auxRectifying\n    test 430 inverse: lat (-90.0)\n    test 431 auxIsometric(-90): -90.0\n    test 432 name: auxIsometric\n    test 433 inverse: lat (-90.0)\n    test 434 auxParametric(-90): -90.0\n    test 435 name: auxParametric\n    test 436 inverse: lat (-90.0)\n    test 437 auxGeocentric(-90): -90.0\n    test 438 name: auxGeocentric\n    test 439 inverse: lat (-90.0)\n    test 440 auxGeocentric(-90, height=1.0e+06): -90.0\n    test 441 name: auxGeocentric\n    test 442 inverse: lat (-90.0)\n    test 443 auxAuthalic(-61): -61.0\n    test 444 name: auxAuthalic\n    test 445 inverse: lat (-61.0)\n    test 446 auxConformal(-61): -61.0\n    test 447 name: auxConformal\n    test 448 inverse: lat (-61.0)\n    test 449 auxRectifying(-61): -61.0\n    test 450 name: auxRectifying\n    test 451 inverse: lat (-61.0)\n    test 452 auxIsometric(-61): -61.0\n    test 453 name: auxIsometric\n    test 454 inverse: lat (-61.0)\n    test 455 auxParametric(-61): -61.0\n    test 456 name: auxParametric\n    test 457 inverse: lat (-61.0)\n    test 458 auxGeocentric(-61): -61.0\n    test 459 name: auxGeocentric\n    test 460 inverse: lat (-61.0)\n    test 461 auxGeocentric(-61, height=1.0e+06): -61.0\n    test 462 name: auxGeocentric\n    test 463 inverse: lat (-61.0)\n    test 464 auxAuthalic(-32): -32.0\n    test 465 name: auxAuthalic\n    test 466 inverse: lat (-32.0)\n    test 467 auxConformal(-32): -32.0\n    test 468 name: auxConformal\n    test 469 inverse: lat (-32.0)\n    test 470 auxRectifying(-32): -32.0\n    test 471 name: auxRectifying\n    test 472 inverse: lat (-32.0)\n    test 473 auxIsometric(-32): -32.0\n    test 474 name: auxIsometric\n    test 475 inverse: lat (-32.0)\n    test 476 auxParametric(-32): -32.0\n    test 477 name: auxParametric\n    test 478 inverse: lat (-32.0)\n    test 479 auxGeocentric(-32): -32.0\n    test 480 name: auxGeocentric\n    test 481 inverse: lat (-32.0)\n    test 482 auxGeocentric(-32, height=1.0e+06): -32.0\n    test 483 name: auxGeocentric\n    test 484 inverse: lat (-32.0)\n    test 485 auxAuthalic(-3): -3.0\n    test 486 name: auxAuthalic\n    test 487 inverse: lat (-3.0)\n    test 488 auxConformal(-3): -3.0\n    test 489 name: auxConformal\n    test 490 inverse: lat (-3.0)\n    test 491 auxRectifying(-3): -3.0\n    test 492 name: auxRectifying\n    test 493 inverse: lat (-3.0)\n    test 494 auxIsometric(-3): -3.0\n    test 495 name: auxIsometric\n    test 496 inverse: lat (-3.0)\n    test 497 auxParametric(-3): -3.0\n    test 498 name: auxParametric\n    test 499 inverse: lat (-3.0)\n    test 500 auxGeocentric(-3): -3.0\n    test 501 name: auxGeocentric\n    test 502 inverse: lat (-3.0)\n    test 503 auxGeocentric(-3, height=1.0e+06): -3.0\n    test 504 name: auxGeocentric\n    test 505 inverse: lat (-3.0)\n    test 506 auxAuthalic(26): 26.0\n    test 507 name: auxAuthalic\n    test 508 inverse: lat (26.0)\n    test 509 auxConformal(26): 26.0\n    test 510 name: auxConformal\n    test 511 inverse: lat (26.0)\n    test 512 auxRectifying(26): 26.0\n    test 513 name: auxRectifying\n    test 514 inverse: lat (26.0)\n    test 515 auxIsometric(26): 26.0\n    test 516 name: auxIsometric\n    test 517 inverse: lat (26.0)\n    test 518 auxParametric(26): 26.0\n    test 519 name: auxParametric\n    test 520 inverse: lat (26.0)\n    test 521 auxGeocentric(26): 26.0\n    test 522 name: auxGeocentric\n    test 523 inverse: lat (26.0)\n    test 524 auxGeocentric(26, height=1.0e+06): 26.0\n    test 525 name: auxGeocentric\n    test 526 inverse: lat (26.0)\n    test 527 auxAuthalic(55): 55.0\n    test 528 name: auxAuthalic\n    test 529 inverse: lat (55.0)\n    test 530 auxConformal(55): 55.0\n    test 531 name: auxConformal\n    test 532 inverse: lat (55.0)\n    test 533 auxRectifying(55): 55.0\n    test 534 name: auxRectifying\n    test 535 inverse: lat (55.0)\n    test 536 auxIsometric(55): 55.0\n    test 537 name: auxIsometric\n    test 538 inverse: lat (55.0)\n    test 539 auxParametric(55): 55.0\n    test 540 name: auxParametric\n    test 541 inverse: lat (55.0)\n    test 542 auxGeocentric(55): 55.0\n    test 543 name: auxGeocentric\n    test 544 inverse: lat (55.0)\n    test 545 auxGeocentric(55, height=1.0e+06): 55.0\n    test 546 name: auxGeocentric\n    test 547 inverse: lat (55.0)\n    test 548 auxAuthalic(84): 84.0\n    test 549 name: auxAuthalic\n    test 550 inverse: lat (84.0)\n    test 551 auxConformal(84): 84.0\n    test 552 name: auxConformal\n    test 553 inverse: lat (84.0)\n    test 554 auxRectifying(84): 84.0\n    test 555 name: auxRectifying\n    test 556 inverse: lat (84.0)\n    test 557 auxIsometric(84): 84.0\n    test 558 name: auxIsometric\n    test 559 inverse: lat (84.0)\n    test 560 auxParametric(84): 84.0\n    test 561 name: auxParametric\n    test 562 inverse: lat (84.0)\n    test 563 auxGeocentric(84): 84.0\n    test 564 name: auxGeocentric\n    test 565 inverse: lat (84.0)\n    test 566 auxGeocentric(84, height=1.0e+06): 84.0\n    test 567 name: auxGeocentric\n    test 568 inverse: lat (84.0)\n\n    testFlattenings(pygeodesy.ellipsoids, 26.03.25)\n    test 569 all: all\n    test 570 _TOL: 1.4901161193847657e-09\n\n    test 571 Airy1830.f_ - 1 / .f: 0.0\n    test 572 Airy1830.f - 1 / .f_: 0.0\n\n    test 573 AiryModified.f_ - 1 / .f: 0.0\n    test 574 AiryModified.f - 1 / .f_: 0.0\n\n    test 575 ATS1977.f_ - 1 / .f: 0.0\n    test 576 ATS1977.f - 1 / .f_: 0.0\n\n    test 577 Australia1966.f_ - 1 / .f: 0.0\n    test 578 Australia1966.f - 1 / .f_: 0.0\n\n    test 579 Bessel1841.f_ - 1 / .f: -3.6334313335828483e-10\n    test 580 Bessel1841.f - 1 / .f_: -4.060120295523717e-15\n\n    test 581 BesselModified.f_ - 1 / .f: 0.0\n    test 582 BesselModified.f - 1 / .f_: 0.0\n\n    test 583 CGCS2000.f_ - 1 / .f: 0.0\n    test 584 CGCS2000.f - 1 / .f_: 0.0\n\n    test 585 Clarke1866.f_ - 1 / .f: 1.0180656317970715e-10\n    test 586 Clarke1866.f - 1 / .f_: 1.1700709845463564e-15\n\n    test 587 Clarke1880.f_ - 1 / .f: -6.275513442233205e-11\n    test 588 Clarke1880.f - 1 / .f_: -7.28583859910259e-16\n\n    test 589 Clarke1880IGN.f_ - 1 / .f: 3.73063357983483e-10\n    test 590 Clarke1880IGN.f - 1 / .f_: 4.3320382003830815e-15\n\n    test 591 Clarke1880Mod.f_ - 1 / .f: 6.866684998385608e-11\n    test 592 Clarke1880Mod.f - 1 / .f_: 7.971054372113429e-16\n\n    test 593 CPM1799.f_ - 1 / .f: -4.774847184307873e-11\n    test 594 CPM1799.f - 1 / .f_: -4.2674197509029455e-16\n\n    test 595 Delambre1810.f_ - 1 / .f: 6.008349373587407e-11\n    test 596 Delambre1810.f - 1 / .f_: 6.192962809237201e-16\n\n    test 597 Engelis1985.f_ - 1 / .f: 3.171862772433087e-11\n    test 598 Engelis1985.f - 1 / .f_: 3.5691935518222806e-16\n\n    test 599 Everest1969.f_ - 1 / .f: -1.0334133548894897e-10\n    test 600 Everest1969.f - 1 / .f_: -1.1418817280617333e-15\n\n    test 601 Everest1975.f_ - 1 / .f: 2.1088908397359774e-11\n    test 602 Everest1975.f - 1 / .f_: 2.3288662664988635e-16\n\n    test 603 Fisher1968.f_ - 1 / .f: 6.394884621840902e-11\n    test 604 Fisher1968.f - 1 / .f_: 7.186091999233923e-16\n\n    test 605 GEM10C.f_ - 1 / .f: 3.501554601825774e-11\n    test 606 GEM10C.f - 1 / .f_: 3.937822290467352e-16\n\n    test 607 GRS67.f_ - 1 / .f: 0.0\n    test 608 GRS67.f - 1 / .f_: 0.0\n\n    test 609 GRS80.f_ - 1 / .f: 5.7980287238024175e-12\n    test 610 GRS80.f - 1 / .f_: 6.505213034913027e-17\n\n    test 611 Helmert1906.f_ - 1 / .f: 1.944044925039634e-11\n    test 612 Helmert1906.f - 1 / .f_: 2.185751579730777e-16\n\n    test 613 IAU76.f_ - 1 / .f: 0.0\n    test 614 IAU76.f - 1 / .f_: 0.0\n\n    test 615 IERS1989.f_ - 1 / .f: 0.0\n    test 616 IERS1989.f - 1 / .f_: 0.0\n\n    test 617 IERS1992TOPEX.f_ - 1 / .f: -4.746425474877469e-11\n    test 618 IERS1992TOPEX.f - 1 / .f_: -5.334274688628682e-16\n\n    test 619 IERS2003.f_ - 1 / .f: -3.6777692002942786e-11\n    test 620 IERS2003.f - 1 / .f_: -4.137315490204685e-16\n\n    test 621 Intl1924.f_ - 1 / .f: 0.0\n    test 622 Intl1924.f - 1 / .f_: 0.0\n\n    test 623 Intl1967.f_ - 1 / .f: -1.3528733688872308e-11\n    test 624 Intl1967.f - 1 / .f_: -1.5222198501696482e-16\n\n    test 625 Krassovski1940.f_ - 1 / .f: -3.8767211663071066e-11\n    test 626 Krassovski1940.f - 1 / .f_: -4.358492733391728e-16\n\n    test 627 Krassowsky1940.f_ - 1 / .f: -3.8767211663071066e-11\n    test 628 Krassowsky1940.f - 1 / .f_: -4.358492733391728e-16\n\n    test 629 Maupertuis1738.f_ - 1 / .f: 1.5347723092418164e-11\n    test 630 Maupertuis1738.f - 1 / .f_: 4.206704429243757e-16\n\n    test 631 Mercury1960.f_ - 1 / .f: -4.803268893738277e-11\n    test 632 Mercury1960.f - 1 / .f_: -5.39499001028787e-16\n\n    test 633 Mercury1968Mod.f_ - 1 / .f: 6.394884621840902e-11\n    test 634 Mercury1968Mod.f - 1 / .f_: 7.186091999233923e-16\n\n    test 635 NWL1965.f_ - 1 / .f: 5.32054400537163e-11\n    test 636 NWL1965.f - 1 / .f_: 5.980459183430042e-16\n\n    test 637 OSU86F.f_ - 1 / .f: 1.460875864722766e-11\n    test 638 OSU86F.f - 1 / .f_: 1.6436504934880247e-16\n\n    test 639 OSU91A.f_ - 1 / .f: -2.2737367544323206e-12\n    test 640 OSU91A.f - 1 / .f_: -2.5587171270657905e-17\n\n    test 641 Plessis1817.f_ - 1 / .f: 4.2234660213580355e-11\n    test 642 Plessis1817.f - 1 / .f_: 4.432218481120742e-16\n\n    test 643 Prolate.f_ - 1 / .f: 0.0\n    test 644 Prolate.f - 1 / .f_: 0.0\n\n    test 645 PZ90.f_ - 1 / .f: 0.0\n    test 646 PZ90.f - 1 / .f_: 0.0\n\n    test 647 SGS85.f_ - 1 / .f: 1.659827830735594e-11\n    test 648 SGS85.f - 1 / .f_: 1.8691645453650096e-16\n\n    test 649 SoAmerican1969.f_ - 1 / .f: -5.6843418860808015e-11\n    test 650 SoAmerican1969.f - 1 / .f_: -6.388119200284592e-16\n\n    test 651 Struve1860.f_ - 1 / .f: 1.9042545318370685e-11\n    test 652 Struve1860.f - 1 / .f_: 2.194425197110661e-16\n\n    test 653 WGS60.f_ - 1 / .f: -5.076117304270156e-11\n    test 654 WGS60.f - 1 / .f_: -5.702903427273753e-16\n\n    test 655 WGS66.f_ - 1 / .f: 5.32054400537163e-11\n    test 656 WGS66.f - 1 / .f_: 5.980459183430042e-16\n\n    test 657 WGS72.f_ - 1 / .f: 0.0\n    test 658 WGS72.f - 1 / .f_: 0.0\n\n    test 659 WGS84.f_ - 1 / .f: 0.0\n    test 660 WGS84.f - 1 / .f_: 0.0\n\n    test 661 WGS84_NGS.f_ - 1 / .f: 0.0\n    test 662 WGS84_NGS.f - 1 / .f_: 0.0\n\n    testEllipsoid2(pygeodesy.ellipsoids, 26.03.25)\n    test 663 _2_Airy1830: a=6377563.396, f=0.0033409, f_=299.3249646, b=6356256.9092373\n    test 664 _2_AiryModified: a=6377340.189, f=0.0033409, f_=299.3249646, b=6356034.4479385\n    test 665 _2_ATS1977: a=6378135, f=0.0033528, f_=298.257, b=6356750.3049216\n    test 666 _2_Australia1966: a=6378160, f=0.0033529, f_=298.25, b=6356774.7191953\n    test 667 _2_Bessel1841: a=6377397.155, f=0.0033428, f_=299.1528128, b=6356078.962818\n    test 668 _2_BesselModified: a=6377492.018, f=0.0033428, f_=299.1528128, b=6356173.5087127\n    test 669 _2_CGCS2000: a=6378137, f=0.0033528, f_=298.2572221, b=6356752.3141404\n    test 670 _2_Clarke1866: a=6378206.4, f=0.0033901, f_=294.9786982, b=6356583.8\n    test 671 _2_Clarke1880: a=6378249.145, f=0.0034076, f_=293.465, b=6356514.8695498\n    test 672 _2_Clarke1880IGN: a=6378249.2, f=0.0034075, f_=293.4660213, b=6356515\n    test 673 _2_Clarke1880Mod: a=6378249.145, f=0.0034075, f_=293.4663077, b=6356514.9663955\n    test 674 _2_CPM1799: a=6375738.7, f=0.0029905, f_=334.39, b=6356671.9255749\n    test 675 _2_Delambre1810: a=6376428, f=0.0032103, f_=311.5, b=6355957.9261637\n    test 676 _2_Engelis1985: a=6378136.05, f=0.0033528, f_=298.2566, b=6356751.3227215\n    test 677 _2_Everest1969: a=6377295.664, f=0.0033244, f_=300.8017, b=6356094.667915\n    test 678 _2_Everest1975: a=6377299.151, f=0.0033244, f_=300.8017255, b=6356098.1451201\n    test 679 _2_Fisher1968: a=6378150, f=0.0033523, f_=298.3, b=6356768.3372444\n    test 680 _2_GEM10C: a=6378137, f=0.0033528, f_=298.2572236, b=6356752.3142478\n    test 681 _2_GPES: a=6378135, f=0, f_=0, b=6378135\n    test 682 _2_GRS67: a=6378160, f=0.0033529, f_=298.2471674, b=6356774.5160907\n    test 683 _2_GRS80: a=6378137, f=0.0033528, f_=298.2572221, b=6356752.3141403\n    test 684 _2_Helmert1906: a=6378200, f=0.0033523, f_=298.3, b=6356818.1696279\n    test 685 _2_IAU76: a=6378140, f=0.0033528, f_=298.257, b=6356755.2881575\n    test 686 _2_IERS1989: a=6378136, f=0.0033528, f_=298.257, b=6356751.3015688\n    test 687 _2_IERS1992TOPEX: a=6378136.3, f=0.0033528, f_=298.2572236, b=6356751.6165922\n    test 688 _2_IERS2003: a=6378136.6, f=0.0033528, f_=298.25642, b=6356751.8579716\n    test 689 _2_Intl1924: a=6378388, f=0.003367, f_=297, b=6356911.9461279\n    test 690 _2_Intl1967: a=6378157.5, f=0.0033529, f_=298.2496154, b=6356772.2\n    test 691 _2_Krassovski1940: a=6378245, f=0.0033523, f_=298.3, b=6356863.0187731\n    test 692 _2_Krassowsky1940: a=6378245, f=0.0033523, f_=298.3, b=6356863.0187731\n    test 693 _2_Maupertuis1738: a=6397300, f=0.0052356, f_=191, b=6363806.2827225\n    test 694 _2_Mercury1960: a=6378166, f=0.0033523, f_=298.3, b=6356784.2836071\n    test 695 _2_Mercury1968Mod: a=6378150, f=0.0033523, f_=298.3, b=6356768.3372444\n    test 696 _2_NWL1965: a=6378145, f=0.0033529, f_=298.25, b=6356759.7694887\n    test 697 _2_OSU86F: a=6378136.2, f=0.0033528, f_=298.2572236, b=6356751.5169301\n    test 698 _2_OSU91A: a=6378136.3, f=0.0033528, f_=298.2572236, b=6356751.6165948\n    test 699 _2_Plessis1817: a=6376523, f=0.00324, f_=308.64, b=6355862.9332556\n    test 700 _2_Prolate: a=6356752.3142452, f=-0.0033641, f_=-297.2572236, b=6378137\n    test 701 _2_PZ90: a=6378136, f=0.0033528, f_=298.2578393, b=6356751.3617457\n    test 702 _2_SGS85: a=6378136, f=0.0033528, f_=298.257, b=6356751.3015688\n    test 703 _2_SoAmerican1969: a=6378160, f=0.0033529, f_=298.25, b=6356774.7191953\n    test 704 _2_Sphere: a=6371008.771415, f=0, f_=0, b=6371008.771415\n    test 705 _2_SphereAuthalic: a=6371000, f=0, f_=0, b=6371000\n    test 706 _2_SpherePopular: a=6378137, f=0, f_=0, b=6378137\n    test 707 _2_Struve1860: a=6378298.3, f=0.0033929, f_=294.73, b=6356657.1426696\n    test 708 _2_WGS60: a=6378165, f=0.0033523, f_=298.3, b=6356783.2869594\n    test 709 _2_WGS66: a=6378145, f=0.0033529, f_=298.25, b=6356759.7694887\n    test 710 _2_WGS72: a=6378135, f=0.0033528, f_=298.26, b=6356750.5200161\n    test 711 _2_WGS84: a=6378137, f=0.0033528, f_=298.2572236, b=6356752.3142452\n    test 712 _2_WGS84_NGS: a=6378137, f=0.0033528, f_=298.2572221, b=6356752.3141403\n\n    testa_f2Tuple(pygeodesy.ellipsoids, 26.03.25)\n    test 713 a_b_Airy1830: a=6377563.396, f=0.0033409, f_=299.3249646, b=6356256.9092373\n    test 714 a_b_AiryModified: a=6377340.189, f=0.0033409, f_=299.3249646, b=6356034.4479385\n    test 715 a_b_ATS1977: a=6378135, f=0.0033528, f_=298.257, b=6356750.3049216\n    test 716 a_b_Australia1966: a=6378160, f=0.0033529, f_=298.25, b=6356774.7191953\n    test 717 a_b_Bessel1841: a=6377397.155, f=0.0033428, f_=299.1528128, b=6356078.962818\n    test 718 a_b_BesselModified: a=6377492.018, f=0.0033428, f_=299.1528128, b=6356173.5087127\n    test 719 a_b_CGCS2000: a=6378137, f=0.0033528, f_=298.2572221, b=6356752.3141404\n    test 720 a_b_Clarke1866: a=6378206.4, f=0.0033901, f_=294.9786982, b=6356583.8\n    test 721 a_b_Clarke1880: a=6378249.145, f=0.0034076, f_=293.465, b=6356514.8695498\n    test 722 a_b_Clarke1880IGN: a=6378249.2, f=0.0034075, f_=293.4660213, b=6356515\n    test 723 a_b_Clarke1880Mod: a=6378249.145, f=0.0034075, f_=293.4663077, b=6356514.9663955\n    test 724 a_b_CPM1799: a=6375738.7, f=0.0029905, f_=334.39, b=6356671.9255749\n    test 725 a_b_Delambre1810: a=6376428, f=0.0032103, f_=311.5, b=6355957.9261637\n    test 726 a_b_Engelis1985: a=6378136.05, f=0.0033528, f_=298.2566, b=6356751.3227215\n    test 727 a_b_Everest1969: a=6377295.664, f=0.0033244, f_=300.8017, b=6356094.667915\n    test 728 a_b_Everest1975: a=6377299.151, f=0.0033244, f_=300.8017255, b=6356098.1451201\n    test 729 a_b_Fisher1968: a=6378150, f=0.0033523, f_=298.3, b=6356768.3372444\n    test 730 a_b_GEM10C: a=6378137, f=0.0033528, f_=298.2572236, b=6356752.3142478\n    test 731 a_b_GPES: a=6378135, f=0, f_=0, b=6378135\n    test 732 a_b_GRS67: a=6378160, f=0.0033529, f_=298.2471674, b=6356774.5160907\n    test 733 a_b_GRS80: a=6378137, f=0.0033528, f_=298.2572221, b=6356752.3141403\n    test 734 a_b_Helmert1906: a=6378200, f=0.0033523, f_=298.3, b=6356818.1696279\n    test 735 a_b_IAU76: a=6378140, f=0.0033528, f_=298.257, b=6356755.2881575\n    test 736 a_b_IERS1989: a=6378136, f=0.0033528, f_=298.257, b=6356751.3015688\n    test 737 a_b_IERS1992TOPEX: a=6378136.3, f=0.0033528, f_=298.2572236, b=6356751.6165922\n    test 738 a_b_IERS2003: a=6378136.6, f=0.0033528, f_=298.25642, b=6356751.8579716\n    test 739 a_b_Intl1924: a=6378388, f=0.003367, f_=297, b=6356911.9461279\n    test 740 a_b_Intl1967: a=6378157.5, f=0.0033529, f_=298.2496154, b=6356772.2\n    test 741 a_b_Krassovski1940: a=6378245, f=0.0033523, f_=298.3, b=6356863.0187731\n    test 742 a_b_Krassowsky1940: a=6378245, f=0.0033523, f_=298.3, b=6356863.0187731\n    test 743 a_b_Maupertuis1738: a=6397300, f=0.0052356, f_=191, b=6363806.2827225\n    test 744 a_b_Mercury1960: a=6378166, f=0.0033523, f_=298.3, b=6356784.2836071\n    test 745 a_b_Mercury1968Mod: a=6378150, f=0.0033523, f_=298.3, b=6356768.3372444\n    test 746 a_b_NWL1965: a=6378145, f=0.0033529, f_=298.25, b=6356759.7694887\n    test 747 a_b_OSU86F: a=6378136.2, f=0.0033528, f_=298.2572236, b=6356751.5169301\n    test 748 a_b_OSU91A: a=6378136.3, f=0.0033528, f_=298.2572236, b=6356751.6165948\n    test 749 a_b_Plessis1817: a=6376523, f=0.00324, f_=308.64, b=6355862.9332556\n    test 750 a_b_Prolate: a=6356752.3142452, f=-0.0033641, f_=-297.2572236, b=6378137\n    test 751 a_b_PZ90: a=6378136, f=0.0033528, f_=298.2578393, b=6356751.3617457\n    test 752 a_b_SGS85: a=6378136, f=0.0033528, f_=298.257, b=6356751.3015688\n    test 753 a_b_SoAmerican1969: a=6378160, f=0.0033529, f_=298.25, b=6356774.7191953\n    test 754 a_b_Sphere: a=6371008.771415, f=0, f_=0, b=6371008.771415\n    test 755 a_b_SphereAuthalic: a=6371000, f=0, f_=0, b=6371000\n    test 756 a_b_SpherePopular: a=6378137, f=0, f_=0, b=6378137\n    test 757 a_b_Struve1860: a=6378298.3, f=0.0033929, f_=294.73, b=6356657.1426696\n    test 758 a_b_WGS60: a=6378165, f=0.0033523, f_=298.3, b=6356783.2869594\n    test 759 a_b_WGS66: a=6378145, f=0.0033529, f_=298.25, b=6356759.7694887\n    test 760 a_b_WGS72: a=6378135, f=0.0033528, f_=298.26, b=6356750.5200161\n    test 761 a_b_WGS84: a=6378137, f=0.0033528, f_=298.2572236, b=6356752.3142452\n    test 762 a_b_WGS84_NGS: a=6378137, f=0.0033528, f_=298.2572221, b=6356752.3141403\n    test 763 _a_f_ellipsoid: a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518\n    test 764 _toEllipsoid2: a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518\n\n    testFunctions(pygeodesy.ellipsoids, 26.03.25)\n\n    test 765 a_b2f_(Airy1830): 299.32496460\n    test 766 a_b2f2(Airy1830): 0.00335205\n    test 767 a_b2n(Airy1830): 0.00167322\n    test 768 b_f2a(Airy1830): 6377563.396\n    test 769 b_f_2a(Airy1830): 6377563.396\n    test 770 f_2f(Airy1830): 0.00334085\n    test 771 e2f(Airy1830): 0.00334085\n    test 772 n2e2(Airy1830): 0.00667054\n    test 773 n2f(Airy1830): 0.00334085\n\n    test 774 a_b2f_(AiryModified): 299.32496460\n    test 775 a_b2f2(AiryModified): 0.00335205\n    test 776 a_b2n(AiryModified): 0.00167322\n    test 777 b_f2a(AiryModified): 6377340.189\n    test 778 b_f_2a(AiryModified): 6377340.189\n    test 779 f_2f(AiryModified): 0.00334085\n    test 780 e2f(AiryModified): 0.00334085\n    test 781 n2e2(AiryModified): 0.00667054\n    test 782 n2f(AiryModified): 0.00334085\n\n    test 783 a_b2f_(ATS1977): 298.25700000\n    test 784 a_b2f2(ATS1977): 0.00336409\n    test 785 a_b2n(ATS1977): 0.00167922\n    test 786 b_f2a(ATS1977): 6378135.000\n    test 787 b_f_2a(ATS1977): 6378135.000\n    test 788 f_2f(ATS1977): 0.00335281\n    test 789 e2f(ATS1977): 0.00335281\n    test 790 n2e2(ATS1977): 0.00669438\n    test 791 n2f(ATS1977): 0.00335281\n\n    test 792 a_b2f_(Australia1966): 298.25000000\n    test 793 a_b2f2(Australia1966): 0.00336417\n    test 794 a_b2n(Australia1966): 0.00167926\n    test 795 b_f2a(Australia1966): 6378160.000\n    test 796 b_f_2a(Australia1966): 6378160.000\n    test 797 f_2f(Australia1966): 0.00335289\n    test 798 e2f(Australia1966): 0.00335289\n    test 799 n2e2(Australia1966): 0.00669454\n    test 800 n2f(Australia1966): 0.00335289\n\n    test 801 a_b2f_(Bessel1841): 299.15281280\n    test 802 a_b2f2(Bessel1841): 0.00335398\n    test 803 a_b2n(Bessel1841): 0.00167418\n    test 804 b_f2a(Bessel1841): 6377397.155\n    test 805 b_f_2a(Bessel1841): 6377397.155\n    test 806 f_2f(Bessel1841): 0.00334277\n    test 807 e2f(Bessel1841): 0.00334277\n    test 808 n2e2(Bessel1841): 0.00667437\n    test 809 n2f(Bessel1841): 0.00334277\n\n    test 810 a_b2f_(BesselModified): 299.15281280\n    test 811 a_b2f2(BesselModified): 0.00335398\n    test 812 a_b2n(BesselModified): 0.00167418\n    test 813 b_f2a(BesselModified): 6377492.018\n    test 814 b_f_2a(BesselModified): 6377492.018\n    test 815 f_2f(BesselModified): 0.00334277\n    test 816 e2f(BesselModified): 0.00334277\n    test 817 n2e2(BesselModified): 0.00667437\n    test 818 n2f(BesselModified): 0.00334277\n\n    test 819 a_b2f_(CGCS2000): 298.25722210\n    test 820 a_b2f2(CGCS2000): 0.00336409\n    test 821 a_b2n(CGCS2000): 0.00167922\n    test 822 b_f2a(CGCS2000): 6378137.000\n    test 823 b_f_2a(CGCS2000): 6378137.000\n    test 824 f_2f(CGCS2000): 0.00335281\n    test 825 e2f(CGCS2000): 0.00335281\n    test 826 n2e2(CGCS2000): 0.00669438\n    test 827 n2f(CGCS2000): 0.00335281\n\n    test 828 a_b2f_(Clarke1866): 294.97869821\n    test 829 a_b2f2(Clarke1866): 0.00340161\n    test 830 a_b2n(Clarke1866): 0.00169792\n    test 831 b_f2a(Clarke1866): 6378206.400\n    test 832 b_f_2a(Clarke1866): 6378206.400\n    test 833 f_2f(Clarke1866): 0.00339008\n    test 834 e2f(Clarke1866): 0.00339008\n    test 835 n2e2(Clarke1866): 0.00676866\n    test 836 n2f(Clarke1866): 0.00339008\n\n    test 837 a_b2f_(Clarke1880): 293.46500000\n    test 838 a_b2f2(Clarke1880): 0.00341921\n    test 839 a_b2n(Clarke1880): 0.00170669\n    test 840 b_f2a(Clarke1880): 6378249.145\n    test 841 b_f_2a(Clarke1880): 6378249.145\n    test 842 f_2f(Clarke1880): 0.00340756\n    test 843 e2f(Clarke1880): 0.00340756\n    test 844 n2e2(Clarke1880): 0.00680351\n    test 845 n2f(Clarke1880): 0.00340756\n\n    test 846 a_b2f_(Clarke1880IGN): 293.46602129\n    test 847 a_b2f2(Clarke1880IGN): 0.00341920\n    test 848 a_b2n(Clarke1880IGN): 0.00170668\n    test 849 b_f2a(Clarke1880IGN): 6378249.200\n    test 850 b_f_2a(Clarke1880IGN): 6378249.200\n    test 851 f_2f(Clarke1880IGN): 0.00340755\n    test 852 e2f(Clarke1880IGN): 0.00340755\n    test 853 n2e2(Clarke1880IGN): 0.00680349\n    test 854 n2f(Clarke1880IGN): 0.00340755\n\n    test 855 a_b2f_(Clarke1880Mod): 293.46630766\n    test 856 a_b2f2(Clarke1880Mod): 0.00341920\n    test 857 a_b2n(Clarke1880Mod): 0.00170668\n    test 858 b_f2a(Clarke1880Mod): 6378249.145\n    test 859 b_f_2a(Clarke1880Mod): 6378249.145\n    test 860 f_2f(Clarke1880Mod): 0.00340755\n    test 861 e2f(Clarke1880Mod): 0.00340755\n    test 862 n2e2(Clarke1880Mod): 0.00680348\n    test 863 n2f(Clarke1880Mod): 0.00340755\n\n    test 864 a_b2f_(CPM1799): 334.39000000\n    test 865 a_b2f2(CPM1799): 0.00299949\n    test 866 a_b2n(CPM1799): 0.00149750\n    test 867 b_f2a(CPM1799): 6375738.700\n    test 868 b_f_2a(CPM1799): 6375738.700\n    test 869 f_2f(CPM1799): 0.00299052\n    test 870 e2f(CPM1799): 0.00299052\n    test 871 n2e2(CPM1799): 0.00597210\n    test 872 n2f(CPM1799): 0.00299052\n\n    test 873 a_b2f_(Delambre1810): 311.50000000\n    test 874 a_b2f2(Delambre1810): 0.00322061\n    test 875 a_b2n(Delambre1810): 0.00160772\n    test 876 b_f2a(Delambre1810): 6376428.000\n    test 877 b_f_2a(Delambre1810): 6376428.000\n    test 878 f_2f(Delambre1810): 0.00321027\n    test 879 e2f(Delambre1810): 0.00321027\n    test 880 n2e2(Delambre1810): 0.00641024\n    test 881 n2f(Delambre1810): 0.00321027\n\n    test 882 a_b2f_(Engelis1985): 298.25660000\n    test 883 a_b2f2(Engelis1985): 0.00336410\n    test 884 a_b2n(Engelis1985): 0.00167922\n    test 885 b_f2a(Engelis1985): 6378136.050\n    test 886 b_f_2a(Engelis1985): 6378136.050\n    test 887 f_2f(Engelis1985): 0.00335282\n    test 888 e2f(Engelis1985): 0.00335282\n    test 889 n2e2(Engelis1985): 0.00669439\n    test 890 n2f(Engelis1985): 0.00335282\n\n    test 891 a_b2f_(Everest1969): 300.80170000\n    test 892 a_b2f2(Everest1969): 0.00333554\n    test 893 a_b2n(Everest1969): 0.00166499\n    test 894 b_f2a(Everest1969): 6377295.664\n    test 895 b_f_2a(Everest1969): 6377295.664\n    test 896 f_2f(Everest1969): 0.00332445\n    test 897 e2f(Everest1969): 0.00332445\n    test 898 n2e2(Everest1969): 0.00663785\n    test 899 n2f(Everest1969): 0.00332445\n\n    test 900 a_b2f_(Everest1975): 300.80172550\n    test 901 a_b2f2(Everest1975): 0.00333554\n    test 902 a_b2n(Everest1975): 0.00166499\n    test 903 b_f2a(Everest1975): 6377299.151\n    test 904 b_f_2a(Everest1975): 6377299.151\n    test 905 f_2f(Everest1975): 0.00332445\n    test 906 e2f(Everest1975): 0.00332445\n    test 907 n2e2(Everest1975): 0.00663785\n    test 908 n2f(Everest1975): 0.00332445\n\n    test 909 a_b2f_(Fisher1968): 298.30000000\n    test 910 a_b2f2(Fisher1968): 0.00336361\n    test 911 a_b2n(Fisher1968): 0.00167898\n    test 912 b_f2a(Fisher1968): 6378150.000\n    test 913 b_f_2a(Fisher1968): 6378150.000\n    test 914 f_2f(Fisher1968): 0.00335233\n    test 915 e2f(Fisher1968): 0.00335233\n    test 916 n2e2(Fisher1968): 0.00669342\n    test 917 n2f(Fisher1968): 0.00335233\n\n    test 918 a_b2f_(GEM10C): 298.25722360\n    test 919 a_b2f2(GEM10C): 0.00336409\n    test 920 a_b2n(GEM10C): 0.00167922\n    test 921 b_f2a(GEM10C): 6378137.000\n    test 922 b_f_2a(GEM10C): 6378137.000\n    test 923 f_2f(GEM10C): 0.00335281\n    test 924 e2f(GEM10C): 0.00335281\n    test 925 n2e2(GEM10C): 0.00669438\n    test 926 n2f(GEM10C): 0.00335281\n\n    test 927 a_b2f_(GPES): 0.00000000\n    test 928 a_b2f2(GPES): 0.00000000\n    test 929 a_b2n(GPES): 0.00000000\n    test 930 b_f2a(GPES): 6378135.000\n    test 931 b_f_2a(GPES): 6378135.000\n    test 932 f_2f(GPES): 0.00000000\n    test 933 e2f(GPES): 0.00000000\n    test 934 n2e2(GPES): 0.00000000\n    test 935 n2f(GPES): 0.00000000\n\n    test 936 a_b2f_(GRS67): 298.24716743\n    test 937 a_b2f2(GRS67): 0.00336420\n    test 938 a_b2n(GRS67): 0.00167928\n    test 939 b_f2a(GRS67): 6378160.000\n    test 940 b_f_2a(GRS67): 6378160.000\n    test 941 f_2f(GRS67): 0.00335292\n    test 942 e2f(GRS67): 0.00335292\n    test 943 n2e2(GRS67): 0.00669461\n    test 944 n2f(GRS67): 0.00335292\n\n    test 945 a_b2f_(GRS80): 298.25722210\n    test 946 a_b2f2(GRS80): 0.00336409\n    test 947 a_b2n(GRS80): 0.00167922\n    test 948 b_f2a(GRS80): 6378137.000\n    test 949 b_f_2a(GRS80): 6378137.000\n    test 950 f_2f(GRS80): 0.00335281\n    test 951 e2f(GRS80): 0.00335281\n    test 952 n2e2(GRS80): 0.00669438\n    test 953 n2f(GRS80): 0.00335281\n\n    test 954 a_b2f_(Helmert1906): 298.30000000\n    test 955 a_b2f2(Helmert1906): 0.00336361\n    test 956 a_b2n(Helmert1906): 0.00167898\n    test 957 b_f2a(Helmert1906): 6378200.000\n    test 958 b_f_2a(Helmert1906): 6378200.000\n    test 959 f_2f(Helmert1906): 0.00335233\n    test 960 e2f(Helmert1906): 0.00335233\n    test 961 n2e2(Helmert1906): 0.00669342\n    test 962 n2f(Helmert1906): 0.00335233\n\n    test 963 a_b2f_(IAU76): 298.25700000\n    test 964 a_b2f2(IAU76): 0.00336409\n    test 965 a_b2n(IAU76): 0.00167922\n    test 966 b_f2a(IAU76): 6378140.000\n    test 967 b_f_2a(IAU76): 6378140.000\n    test 968 f_2f(IAU76): 0.00335281\n    test 969 e2f(IAU76): 0.00335281\n    test 970 n2e2(IAU76): 0.00669438\n    test 971 n2f(IAU76): 0.00335281\n\n    test 972 a_b2f_(IERS1989): 298.25700000\n    test 973 a_b2f2(IERS1989): 0.00336409\n    test 974 a_b2n(IERS1989): 0.00167922\n    test 975 b_f2a(IERS1989): 6378136.000\n    test 976 b_f_2a(IERS1989): 6378136.000\n    test 977 f_2f(IERS1989): 0.00335281\n    test 978 e2f(IERS1989): 0.00335281\n    test 979 n2e2(IERS1989): 0.00669438\n    test 980 n2f(IERS1989): 0.00335281\n\n    test 981 a_b2f_(IERS1992TOPEX): 298.25722356\n    test 982 a_b2f2(IERS1992TOPEX): 0.00336409\n    test 983 a_b2n(IERS1992TOPEX): 0.00167922\n    test 984 b_f2a(IERS1992TOPEX): 6378136.300\n    test 985 b_f_2a(IERS1992TOPEX): 6378136.300\n    test 986 f_2f(IERS1992TOPEX): 0.00335281\n    test 987 e2f(IERS1992TOPEX): 0.00335281\n    test 988 n2e2(IERS1992TOPEX): 0.00669438\n    test 989 n2f(IERS1992TOPEX): 0.00335281\n\n    test 990 a_b2f_(IERS2003): 298.25642000\n    test 991 a_b2f2(IERS2003): 0.00336410\n    test 992 a_b2n(IERS2003): 0.00167922\n    test 993 b_f2a(IERS2003): 6378136.600\n    test 994 b_f_2a(IERS2003): 6378136.600\n    test 995 f_2f(IERS2003): 0.00335282\n    test 996 e2f(IERS2003): 0.00335282\n    test 997 n2e2(IERS2003): 0.00669440\n    test 998 n2f(IERS2003): 0.00335282\n\n    test 999 a_b2f_(Intl1924): 297.00000000\n    test 1000 a_b2f2(Intl1924): 0.00337838\n    test 1001 a_b2n(Intl1924): 0.00168634\n    test 1002 b_f2a(Intl1924): 6378388.000\n    test 1003 b_f_2a(Intl1924): 6378388.000\n    test 1004 f_2f(Intl1924): 0.00336700\n    test 1005 e2f(Intl1924): 0.00336700\n    test 1006 n2e2(Intl1924): 0.00672267\n    test 1007 n2f(Intl1924): 0.00336700\n\n    test 1008 a_b2f_(Intl1967): 298.24961539\n    test 1009 a_b2f2(Intl1967): 0.00336418\n    test 1010 a_b2n(Intl1967): 0.00167926\n    test 1011 b_f2a(Intl1967): 6378157.500\n    test 1012 b_f_2a(Intl1967): 6378157.500\n    test 1013 f_2f(Intl1967): 0.00335290\n    test 1014 e2f(Intl1967): 0.00335290\n    test 1015 n2e2(Intl1967): 0.00669455\n    test 1016 n2f(Intl1967): 0.00335290\n\n    test 1017 a_b2f_(Krassovski1940): 298.30000000\n    test 1018 a_b2f2(Krassovski1940): 0.00336361\n    test 1019 a_b2n(Krassovski1940): 0.00167898\n    test 1020 b_f2a(Krassovski1940): 6378245.000\n    test 1021 b_f_2a(Krassovski1940): 6378245.000\n    test 1022 f_2f(Krassovski1940): 0.00335233\n    test 1023 e2f(Krassovski1940): 0.00335233\n    test 1024 n2e2(Krassovski1940): 0.00669342\n    test 1025 n2f(Krassovski1940): 0.00335233\n\n    test 1026 a_b2f_(Krassowsky1940): 298.30000000\n    test 1027 a_b2f2(Krassowsky1940): 0.00336361\n    test 1028 a_b2n(Krassowsky1940): 0.00167898\n    test 1029 b_f2a(Krassowsky1940): 6378245.000\n    test 1030 b_f_2a(Krassowsky1940): 6378245.000\n    test 1031 f_2f(Krassowsky1940): 0.00335233\n    test 1032 e2f(Krassowsky1940): 0.00335233\n    test 1033 n2e2(Krassowsky1940): 0.00669342\n    test 1034 n2f(Krassowsky1940): 0.00335233\n\n    test 1035 a_b2f_(Maupertuis1738): 191.00000000\n    test 1036 a_b2f2(Maupertuis1738): 0.00526316\n    test 1037 a_b2n(Maupertuis1738): 0.00262467\n    test 1038 b_f2a(Maupertuis1738): 6397300.000\n    test 1039 b_f_2a(Maupertuis1738): 6397300.000\n    test 1040 f_2f(Maupertuis1738): 0.00523560\n    test 1041 e2f(Maupertuis1738): 0.00523560\n    test 1042 n2e2(Maupertuis1738): 0.01044379\n    test 1043 n2f(Maupertuis1738): 0.00523560\n\n    test 1044 a_b2f_(Mercury1960): 298.30000000\n    test 1045 a_b2f2(Mercury1960): 0.00336361\n    test 1046 a_b2n(Mercury1960): 0.00167898\n    test 1047 b_f2a(Mercury1960): 6378166.000\n    test 1048 b_f_2a(Mercury1960): 6378166.000\n    test 1049 f_2f(Mercury1960): 0.00335233\n    test 1050 e2f(Mercury1960): 0.00335233\n    test 1051 n2e2(Mercury1960): 0.00669342\n    test 1052 n2f(Mercury1960): 0.00335233\n\n    test 1053 a_b2f_(Mercury1968Mod): 298.30000000\n    test 1054 a_b2f2(Mercury1968Mod): 0.00336361\n    test 1055 a_b2n(Mercury1968Mod): 0.00167898\n    test 1056 b_f2a(Mercury1968Mod): 6378150.000\n    test 1057 b_f_2a(Mercury1968Mod): 6378150.000\n    test 1058 f_2f(Mercury1968Mod): 0.00335233\n    test 1059 e2f(Mercury1968Mod): 0.00335233\n    test 1060 n2e2(Mercury1968Mod): 0.00669342\n    test 1061 n2f(Mercury1968Mod): 0.00335233\n\n    test 1062 a_b2f_(NWL1965): 298.25000000\n    test 1063 a_b2f2(NWL1965): 0.00336417\n    test 1064 a_b2n(NWL1965): 0.00167926\n    test 1065 b_f2a(NWL1965): 6378145.000\n    test 1066 b_f_2a(NWL1965): 6378145.000\n    test 1067 f_2f(NWL1965): 0.00335289\n    test 1068 e2f(NWL1965): 0.00335289\n    test 1069 n2e2(NWL1965): 0.00669454\n    test 1070 n2f(NWL1965): 0.00335289\n\n    test 1071 a_b2f_(OSU86F): 298.25722360\n    test 1072 a_b2f2(OSU86F): 0.00336409\n    test 1073 a_b2n(OSU86F): 0.00167922\n    test 1074 b_f2a(OSU86F): 6378136.200\n    test 1075 b_f_2a(OSU86F): 6378136.200\n    test 1076 f_2f(OSU86F): 0.00335281\n    test 1077 e2f(OSU86F): 0.00335281\n    test 1078 n2e2(OSU86F): 0.00669438\n    test 1079 n2f(OSU86F): 0.00335281\n\n    test 1080 a_b2f_(OSU91A): 298.25722360\n    test 1081 a_b2f2(OSU91A): 0.00336409\n    test 1082 a_b2n(OSU91A): 0.00167922\n    test 1083 b_f2a(OSU91A): 6378136.300\n    test 1084 b_f_2a(OSU91A): 6378136.300\n    test 1085 f_2f(OSU91A): 0.00335281\n    test 1086 e2f(OSU91A): 0.00335281\n    test 1087 n2e2(OSU91A): 0.00669438\n    test 1088 n2f(OSU91A): 0.00335281\n\n    test 1089 a_b2f_(Plessis1817): 308.64000000\n    test 1090 a_b2f2(Plessis1817): 0.00325055\n    test 1091 a_b2n(Plessis1817): 0.00162264\n    test 1092 b_f2a(Plessis1817): 6376523.000\n    test 1093 b_f_2a(Plessis1817): 6376523.000\n    test 1094 f_2f(Plessis1817): 0.00324002\n    test 1095 e2f(Plessis1817): 0.00324002\n    test 1096 n2e2(Plessis1817): 0.00646954\n    test 1097 n2f(Plessis1817): 0.00324002\n\n    test 1098 a_b2f_(Prolate): -297.25722356\n    test 1099 a_b2f2(Prolate): -0.00335281\n    test 1100 a_b2n(Prolate): -0.00167922\n    test 1101 b_f2a(Prolate): 6356752.314\n    test 1102 b_f_2a(Prolate): 6356752.314\n    test 1103 f_2f(Prolate): -0.00336409\n    test 1104 e2f(Prolate): 0.00337545  FAILED, KNOWN, expected -0.00336409\n    test 1105 n2e2(Prolate): -0.00673950\n    test 1106 n2f(Prolate): -0.00336409\n\n    test 1107 a_b2f_(PZ90): 298.25783930\n    test 1108 a_b2f2(PZ90): 0.00336408\n    test 1109 a_b2n(PZ90): 0.00167922\n    test 1110 b_f2a(PZ90): 6378136.000\n    test 1111 b_f_2a(PZ90): 6378136.000\n    test 1112 f_2f(PZ90): 0.00335280\n    test 1113 e2f(PZ90): 0.00335280\n    test 1114 n2e2(PZ90): 0.00669437\n    test 1115 n2f(PZ90): 0.00335280\n\n    test 1116 a_b2f_(SGS85): 298.25700000\n    test 1117 a_b2f2(SGS85): 0.00336409\n    test 1118 a_b2n(SGS85): 0.00167922\n    test 1119 b_f2a(SGS85): 6378136.000\n    test 1120 b_f_2a(SGS85): 6378136.000\n    test 1121 f_2f(SGS85): 0.00335281\n    test 1122 e2f(SGS85): 0.00335281\n    test 1123 n2e2(SGS85): 0.00669438\n    test 1124 n2f(SGS85): 0.00335281\n\n    test 1125 a_b2f_(SoAmerican1969): 298.25000000\n    test 1126 a_b2f2(SoAmerican1969): 0.00336417\n    test 1127 a_b2n(SoAmerican1969): 0.00167926\n    test 1128 b_f2a(SoAmerican1969): 6378160.000\n    test 1129 b_f_2a(SoAmerican1969): 6378160.000\n    test 1130 f_2f(SoAmerican1969): 0.00335289\n    test 1131 e2f(SoAmerican1969): 0.00335289\n    test 1132 n2e2(SoAmerican1969): 0.00669454\n    test 1133 n2f(SoAmerican1969): 0.00335289\n\n    test 1134 a_b2f_(Sphere): 0.00000000\n    test 1135 a_b2f2(Sphere): 0.00000000\n    test 1136 a_b2n(Sphere): 0.00000000\n    test 1137 b_f2a(Sphere): 6371008.771\n    test 1138 b_f_2a(Sphere): 6371008.771\n    test 1139 f_2f(Sphere): 0.00000000\n    test 1140 e2f(Sphere): 0.00000000\n    test 1141 n2e2(Sphere): 0.00000000\n    test 1142 n2f(Sphere): 0.00000000\n\n    test 1143 a_b2f_(SphereAuthalic): 0.00000000\n    test 1144 a_b2f2(SphereAuthalic): 0.00000000\n    test 1145 a_b2n(SphereAuthalic): 0.00000000\n    test 1146 b_f2a(SphereAuthalic): 6371000.000\n    test 1147 b_f_2a(SphereAuthalic): 6371000.000\n    test 1148 f_2f(SphereAuthalic): 0.00000000\n    test 1149 e2f(SphereAuthalic): 0.00000000\n    test 1150 n2e2(SphereAuthalic): 0.00000000\n    test 1151 n2f(SphereAuthalic): 0.00000000\n\n    test 1152 a_b2f_(SpherePopular): 0.00000000\n    test 1153 a_b2f2(SpherePopular): 0.00000000\n    test 1154 a_b2n(SpherePopular): 0.00000000\n    test 1155 b_f2a(SpherePopular): 6378137.000\n    test 1156 b_f_2a(SpherePopular): 6378137.000\n    test 1157 f_2f(SpherePopular): 0.00000000\n    test 1158 e2f(SpherePopular): 0.00000000\n    test 1159 n2e2(SpherePopular): 0.00000000\n    test 1160 n2f(SpherePopular): 0.00000000\n\n    test 1161 a_b2f_(Struve1860): 294.73000000\n    test 1162 a_b2f2(Struve1860): 0.00340449\n    test 1163 a_b2n(Struve1860): 0.00169935\n    test 1164 b_f2a(Struve1860): 6378298.300\n    test 1165 b_f_2a(Struve1860): 6378298.300\n    test 1166 f_2f(Struve1860): 0.00339294\n    test 1167 e2f(Struve1860): 0.00339294\n    test 1168 n2e2(Struve1860): 0.00677436\n    test 1169 n2f(Struve1860): 0.00339294\n\n    test 1170 a_b2f_(WGS60): 298.30000000\n    test 1171 a_b2f2(WGS60): 0.00336361\n    test 1172 a_b2n(WGS60): 0.00167898\n    test 1173 b_f2a(WGS60): 6378165.000\n    test 1174 b_f_2a(WGS60): 6378165.000\n    test 1175 f_2f(WGS60): 0.00335233\n    test 1176 e2f(WGS60): 0.00335233\n    test 1177 n2e2(WGS60): 0.00669342\n    test 1178 n2f(WGS60): 0.00335233\n\n    test 1179 a_b2f_(WGS66): 298.25000000\n    test 1180 a_b2f2(WGS66): 0.00336417\n    test 1181 a_b2n(WGS66): 0.00167926\n    test 1182 b_f2a(WGS66): 6378145.000\n    test 1183 b_f_2a(WGS66): 6378145.000\n    test 1184 f_2f(WGS66): 0.00335289\n    test 1185 e2f(WGS66): 0.00335289\n    test 1186 n2e2(WGS66): 0.00669454\n    test 1187 n2f(WGS66): 0.00335289\n\n    test 1188 a_b2f_(WGS72): 298.26000000\n    test 1189 a_b2f2(WGS72): 0.00336406\n    test 1190 a_b2n(WGS72): 0.00167920\n    test 1191 b_f2a(WGS72): 6378135.000\n    test 1192 b_f_2a(WGS72): 6378135.000\n    test 1193 f_2f(WGS72): 0.00335278\n    test 1194 e2f(WGS72): 0.00335278\n    test 1195 n2e2(WGS72): 0.00669432\n    test 1196 n2f(WGS72): 0.00335278\n\n    test 1197 a_b2f_(WGS84): 298.25722356\n    test 1198 a_b2f2(WGS84): 0.00336409\n    test 1199 a_b2n(WGS84): 0.00167922\n    test 1200 b_f2a(WGS84): 6378137.000\n    test 1201 b_f_2a(WGS84): 6378137.000\n    test 1202 f_2f(WGS84): 0.00335281\n    test 1203 e2f(WGS84): 0.00335281\n    test 1204 n2e2(WGS84): 0.00669438\n    test 1205 n2f(WGS84): 0.00335281\n\n    test 1206 a_b2f_(WGS84_NGS): 298.25722210\n    test 1207 a_b2f2(WGS84_NGS): 0.00336409\n    test 1208 a_b2n(WGS84_NGS): 0.00167922\n    test 1209 b_f2a(WGS84_NGS): 6378137.000\n    test 1210 b_f_2a(WGS84_NGS): 6378137.000\n    test 1211 f_2f(WGS84_NGS): 0.00335281\n    test 1212 e2f(WGS84_NGS): 0.00335281\n    test 1213 n2e2(WGS84_NGS): 0.00669438\n    test 1214 n2f(WGS84_NGS): 0.00335281\n\n    test 1215 total: 50\n\n    testWGS84(pygeodesy.ellipsoids, 26.03.25)\n    test 1216 roc1_ 0: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1217 roc1_ 0: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1218 roc1_ 5: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1219 roc1_ 5: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1220 roc1_ 10: 9.313225746154785e-10  FAILED, KNOWN, expected 1.863e-09\n    test 1221 roc1_ 10: 9.313225746154785e-10  FAILED, KNOWN, expected 1.863e-09\n    test 1222 roc1_ 15: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1223 roc1_ 15: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1224 roc1_ 20: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1225 roc1_ 20: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1226 roc1_ 25: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1227 roc1_ 25: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1228 roc1_ 30: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1229 roc1_ 30: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1230 roc1_ 35: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1231 roc1_ 35: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1232 roc1_ 40: 9.313225746154785e-10  FAILED, KNOWN, expected 1.863e-09\n    test 1233 roc1_ 40: 9.313225746154785e-10  FAILED, KNOWN, expected 1.863e-09\n    test 1234 roc1_ 45: 9.313225746154785e-10  FAILED, KNOWN, expected 1.863e-09\n    test 1235 roc1_ 45: 9.313225746154785e-10  FAILED, KNOWN, expected 1.863e-09\n    test 1236 roc1_ 50: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1237 roc1_ 50: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1238 roc1_ 55: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1239 roc1_ 55: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1240 roc1_ 60: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1241 roc1_ 60: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1242 roc1_ 65: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1243 roc1_ 65: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1244 roc1_ 70: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1245 roc1_ 70: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1246 roc1_ 75: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1247 roc1_ 75: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1248 roc1_ 80: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1249 roc1_ 80: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1250 roc1_ 85: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1251 roc1_ 85: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1252 roc1_ 90: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1253 roc1_ 90: 0.0  FAILED, KNOWN, expected 1.863e-09\n\n    testProlate(pygeodesy.ellipsoids, 26.03.25)\n    test 1254 roc1_ 0: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1255 roc1_ 0: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1256 roc1_ 5: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1257 roc1_ 5: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1258 roc1_ 10: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1259 roc1_ 10: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1260 roc1_ 15: 9.313225746154785e-10  FAILED, KNOWN, expected 1.863e-09\n    test 1261 roc1_ 15: 9.313225746154785e-10  FAILED, KNOWN, expected 1.863e-09\n    test 1262 roc1_ 20: 9.313225746154785e-10  FAILED, KNOWN, expected 1.863e-09\n    test 1263 roc1_ 20: 9.313225746154785e-10  FAILED, KNOWN, expected 1.863e-09\n    test 1264 roc1_ 25: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1265 roc1_ 25: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1266 roc1_ 30: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1267 roc1_ 30: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1268 roc1_ 35: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1269 roc1_ 35: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1270 roc1_ 40: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1271 roc1_ 40: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1272 roc1_ 45: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1273 roc1_ 45: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1274 roc1_ 50: 9.313225746154785e-10  FAILED, KNOWN, expected 1.863e-09\n    test 1275 roc1_ 50: 9.313225746154785e-10  FAILED, KNOWN, expected 1.863e-09\n    test 1276 roc1_ 55: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1277 roc1_ 55: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1278 roc1_ 60: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1279 roc1_ 60: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1280 roc1_ 65: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1281 roc1_ 65: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1282 roc1_ 70: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1283 roc1_ 70: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1284 roc1_ 75: 9.313225746154785e-10  FAILED, KNOWN, expected 1.863e-09\n    test 1285 roc1_ 75: 9.313225746154785e-10  FAILED, KNOWN, expected 1.863e-09\n    test 1286 roc1_ 80: 9.313225746154785e-10  FAILED, KNOWN, expected 1.863e-09\n    test 1287 roc1_ 80: 9.313225746154785e-10  FAILED, KNOWN, expected 1.863e-09\n    test 1288 roc1_ 85: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1289 roc1_ 85: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1290 roc1_ 90: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1291 roc1_ 90: 0.0  FAILED, KNOWN, expected 1.863e-09\n\n    testSphereAuthalic(pygeodesy.ellipsoids, 26.03.25)\n    test 1292 roc1_ 0: 0.0\n    test 1293 roc1_ 0: 0.0\n    test 1294 roc1_ 5: 0.0\n    test 1295 roc1_ 5: 0.0\n    test 1296 roc1_ 10: 0.0\n    test 1297 roc1_ 10: 0.0\n    test 1298 roc1_ 15: 0.0\n    test 1299 roc1_ 15: 0.0\n    test 1300 roc1_ 20: 0.0\n    test 1301 roc1_ 20: 0.0\n    test 1302 roc1_ 25: 0.0\n    test 1303 roc1_ 25: 0.0\n    test 1304 roc1_ 30: 0.0\n    test 1305 roc1_ 30: 0.0\n    test 1306 roc1_ 35: 0.0\n    test 1307 roc1_ 35: 0.0\n    test 1308 roc1_ 40: 0.0\n    test 1309 roc1_ 40: 0.0\n    test 1310 roc1_ 45: 0.0\n    test 1311 roc1_ 45: 0.0\n    test 1312 roc1_ 50: 0.0\n    test 1313 roc1_ 50: 0.0\n    test 1314 roc1_ 55: 0.0\n    test 1315 roc1_ 55: 0.0\n    test 1316 roc1_ 60: 0.0\n    test 1317 roc1_ 60: 0.0\n    test 1318 roc1_ 65: 0.0\n    test 1319 roc1_ 65: 0.0\n    test 1320 roc1_ 70: 0.0\n    test 1321 roc1_ 70: 0.0\n    test 1322 roc1_ 75: 0.0\n    test 1323 roc1_ 75: 0.0\n    test 1324 roc1_ 80: 0.0\n    test 1325 roc1_ 80: 0.0\n    test 1326 roc1_ 85: 0.0\n    test 1327 roc1_ 85: 0.0\n    test 1328 roc1_ 90: 0.0\n    test 1329 roc1_ 90: 0.0\n\n    testcircle4(pygeodesy.ellipsoids, 26.03.25)\n\n    testWGS84(pygeodesy.ellipsoids, 26.03.25)\n    test 1330 circle4 0: 6378137.000000\n    test 1331 circle4 0: 6378137.000000\n    test 1332 circle4 10: 6377497.402124\n    test 1333 circle4 10: 6377497.402124\n    test 1334 circle4 20: 6375653.951276\n    test 1335 circle4 20: 6375653.951276\n    test 1336 circle4 30: 6372824.420294\n    test 1337 circle4 30: 6372824.420294\n    test 1338 circle4 40: 6369344.863240\n    test 1339 circle4 40: 6369344.863240\n    test 1340 circle4 50: 6365631.517537\n    test 1341 circle4 50: 6365631.517537\n    test 1342 circle4 60: 6362132.224397\n    test 1343 circle4 60: 6362132.224397\n    test 1344 circle4 70: 6359272.455642\n    test 1345 circle4 70: 6359272.455642\n    test 1346 circle4 80: 6357402.413808\n    test 1347 circle4 80: 6357402.413808\n    test 1348 circle4 90: 6356752.314245\n    test 1349 circle4 90: 6356752.314245\n\n    testSphere(pygeodesy.ellipsoids, 26.03.25)\n    test 1350 circle4 0: 6371008.771415\n    test 1351 circle4 0: 6371008.771415\n    test 1352 circle4 10: 6371008.771415\n    test 1353 circle4 10: 6371008.771415\n    test 1354 circle4 20: 6371008.771415\n    test 1355 circle4 20: 6371008.771415\n    test 1356 circle4 30: 6371008.771415\n    test 1357 circle4 30: 6371008.771415\n    test 1358 circle4 40: 6371008.771415\n    test 1359 circle4 40: 6371008.771415\n    test 1360 circle4 50: 6371008.771415\n    test 1361 circle4 50: 6371008.771415\n    test 1362 circle4 60: 6371008.771415\n    test 1363 circle4 60: 6371008.771415\n    test 1364 circle4 70: 6371008.771415\n    test 1365 circle4 70: 6371008.771415\n    test 1366 circle4 80: 6371008.771415\n    test 1367 circle4 80: 6371008.771415\n    test 1368 circle4 90: 6371008.771415\n    test 1369 circle4 90: 6371008.771415\n\n    test 1370 hartzell4: (3642031.283571, 3678090.99925, 3714150.714929, 11296639.666827)\n\n    77 of 1370 testEllipsoids.py tests (5.6%) FAILED, ALL KNOWN (pygeodesy 26.3.26 Python 3.11.9 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 1.24.2 scipy 1.10.1 Math 2 macOS 26.3.1 isLazy 0 -W  default) 169.327 ms\nrunning /usr/local/bin/p....n3.11 -W default ~/PyGeodesy/test/testElliptic.py\n\n    testing testElliptic.py 26.02.12\n    test 1 eps4: 8.881784197e-16\n    test 2 RC, RF(0.020, ...): 3.914361830671\n    test 3 RC, RF(0.030, ...): 6.584789484624\n    test 4 RC, RF(0.040, ...): 5.493061443341\n    test 5 RC, RF(0.050, ...): 4.812118250596\n    test 6 RC, RF(0.060, ...): 4.335073632453\n    test 7 RC, RF(0.070, ...): 3.976827306120\n    test 8 RC, RF(0.080, ...): 3.694989719259\n    test 9 RC, RF(0.090, ...): 3.465735902800\n    test 10 RC, RF(0.100, ...): 3.274501502373\n    test 11 RC, RF(0.110, ...): 3.111812518574\n    test 12 RC, RF(0.120, ...): 2.971203516685\n    test 13 RC, RF(0.130, ...): 2.848090500183\n    test 14 RC, RF(0.140, ...): 2.739120555165\n    test 15 RC, RF(0.150, ...): 2.641776814832\n    test 16 RC, RF(0.160, ...): 2.554128118830\n    test 17 RC, RF(0.170, ...): 2.474664615473\n    test 18 RC, RF(0.180, ...): 2.402186472893\n    test 19 RC, RF(0.190, ...): 2.335726540516\n    test 20 RC, RF(0.200, ...): 2.274495360058\n    test 21 RC, RF(0.210, ...): 2.217841271926\n    test 22 RC, RF(0.220, ...): 2.165220951174\n    test 23 RC, RF(0.230, ...): 2.116177296054\n    test 24 RC, RF(0.240, ...): 2.070322594382\n    test 25 RC, RF(0.250, ...): 2.027325540541\n    test 26 RC, RF(0.260, ...): 1.986901103492\n    test 27 RC, RF(0.270, ...): 1.948802534199\n    test 28 RC, RF(0.280, ...): 1.912814998209\n    test 29 RC, RF(0.290, ...): 1.878750456745\n    test 30 RC, RF(0.300, ...): 1.846443516895\n    test 31 RC, RF(0.310, ...): 1.815748041271\n    test 32 RC, RF(0.320, ...): 1.786534358134\n    test 33 RC, RF(0.330, ...): 1.758686950216\n    test 34 RC, RF(0.340, ...): 1.732102528083\n    test 35 RC, RF(0.350, ...): 1.706688414643\n    test 36 RC, RF(0.360, ...): 1.682361183106\n    test 37 RC, RF(0.370, ...): 1.659045502693\n    test 38 RC, RF(0.380, ...): 1.636673155658\n    test 39 RC, RF(0.390, ...): 1.615182196359\n    test 40 RC, RF(0.400, ...): 1.594516228743\n    test 41 RC, RF(0.410, ...): 1.574623783019\n    test 42 RC, RF(0.420, ...): 1.555457775830\n    test 43 RC, RF(0.430, ...): 1.536975041007\n    test 44 RC, RF(0.440, ...): 1.519135920258\n    test 45 RC, RF(0.450, ...): 1.501903904951\n    test 46 RC, RF(0.460, ...): 1.485245321610\n    test 47 RC, RF(0.470, ...): 1.469129054970\n    test 48 RC, RF(0.480, ...): 1.453526303390\n    test 49 RC, RF(0.490, ...): 1.438410362259\n    test 50 RC, RF(0.500, ...): 1.423756431678\n    test 51 RC, RF(0.510, ...): 1.409541445271\n    test 52 RC, RF(0.520, ...): 1.395743917431\n    test 53 RC, RF(0.530, ...): 1.382343806706\n    test 54 RC, RF(0.540, ...): 1.369322393343\n    test 55 RC, RF(0.550, ...): 1.356662169284\n    test 56 RC, RF(0.560, ...): 1.344346739158\n    test 57 RC, RF(0.570, ...): 1.332360730978\n    test 58 RC, RF(0.580, ...): 1.320689715446\n    test 59 RC, RF(0.590, ...): 1.309320132904\n    test 60 RC, RF(0.600, ...): 1.298239227085\n    test 61 RC, RF(0.610, ...): 1.287434984930\n    test 62 RC, RF(0.620, ...): 1.276896081822\n    test 63 RC, RF(0.630, ...): 1.266611831682\n    test 64 RC, RF(0.640, ...): 1.256572141405\n    test 65 RC, RF(0.650, ...): 1.246767469214\n    test 66 RC, RF(0.660, ...): 1.237188786540\n    test 67 RC, RF(0.670, ...): 1.227827543058\n    test 68 RC, RF(0.680, ...): 1.218675634611\n    test 69 RC, RF(0.690, ...): 1.209725373708\n    test 70 RC, RF(0.700, ...): 1.200969462383\n    test 71 RC, RF(0.710, ...): 1.192400967179\n    test 72 RC, RF(0.720, ...): 1.184013296070\n    test 73 RC, RF(0.730, ...): 1.175800177139\n    test 74 RC, RF(0.740, ...): 1.167755638871\n    test 75 RC, RF(0.750, ...): 1.159873991901\n    test 76 RC, RF(0.760, ...): 1.152149812097\n    test 77 RC, RF(0.770, ...): 1.144577924881\n    test 78 RC, RF(0.780, ...): 1.137153390647\n    test 79 RC, RF(0.790, ...): 1.129871491226\n    test 80 RC, RF(0.800, ...): 1.122727717281\n    test 81 RC, RF(0.810, ...): 1.115717756571\n    test 82 RC, RF(0.820, ...): 1.108837483013\n    test 83 RC, RF(0.830, ...): 1.102082946473\n    test 84 RC, RF(0.840, ...): 1.095450363236\n    test 85 RC, RF(0.850, ...): 1.088936107101\n    test 86 RC, RF(0.860, ...): 1.082536701044\n    test 87 RC, RF(0.870, ...): 1.076248809425\n    test 88 RC, RF(0.880, ...): 1.070069230678\n    test 89 RC, RF(0.890, ...): 1.063994890459\n    test 90 RC, RF(0.900, ...): 1.058022835225\n    test 91 RC, RF(0.910, ...): 1.052150226192\n    test 92 RC, RF(0.920, ...): 1.046374333669\n    test 93 RC, RF(0.930, ...): 1.040692531726\n    test 94 RC, RF(0.940, ...): 1.035102293176\n    test 95 RC, RF(0.950, ...): 1.029601184852\n    test 96 RC, RF(0.960, ...): 1.024186863158\n    test 97 RC, RF(0.970, ...): 1.018857069872\n    test 98 RC, RF(0.980, ...): 1.013609628192\n    test 99 RC, RF(0.990, ...): 1.008442438994\n    test 100 RD, RJ(0.010, ...): 8.120132781711\n    test 101 RD, RJ(0.020, ...): 7.119021204087\n    test 102 RD, RJ(0.030, ...): 6.544107485563\n    test 103 RD, RJ(0.040, ...): 6.142532079666\n    test 104 RD, RJ(0.050, ...): 5.835358486352\n    test 105 RD, RJ(0.060, ...): 5.587552234737\n    test 106 RD, RJ(0.070, ...): 5.380489023690\n    test 107 RD, RJ(0.080, ...): 5.203088814832\n    test 108 RD, RJ(0.090, ...): 5.048227960523\n    test 109 RD, RJ(0.100, ...): 4.911057935480\n    test 110 RD, RJ(0.110, ...): 4.788131254930\n    test 111 RD, RJ(0.120, ...): 4.676910208210\n    test 112 RD, RJ(0.130, ...): 4.575473423301\n    test 113 RD, RJ(0.140, ...): 4.482331804788\n    test 114 RD, RJ(0.150, ...): 4.396308333326\n    test 115 RD, RJ(0.160, ...): 4.316456874863\n    test 116 RD, RJ(0.170, ...): 4.242005741804\n    test 117 RD, RJ(0.180, ...): 4.172317477477\n    test 118 RD, RJ(0.190, ...): 4.106859576449\n    test 119 RD, RJ(0.200, ...): 4.045182759349\n    test 120 RD, RJ(0.210, ...): 3.986904580308\n    test 121 RD, RJ(0.220, ...): 3.931696871490\n    test 122 RD, RJ(0.230, ...): 3.879275996390\n    test 123 RD, RJ(0.240, ...): 3.829395191121\n    test 124 RD, RJ(0.250, ...): 3.781838479725\n    test 125 RD, RJ(0.260, ...): 3.736415791191\n    test 126 RD, RJ(0.270, ...): 3.692959004641\n    test 127 RD, RJ(0.280, ...): 3.651318719062\n    test 128 RD, RJ(0.290, ...): 3.611361594199\n    test 129 RD, RJ(0.300, ...): 3.572968145771\n    test 130 RD, RJ(0.310, ...): 3.536030905108\n    test 131 RD, RJ(0.320, ...): 3.500452873386\n    test 132 RD, RJ(0.330, ...): 3.466146215741\n    test 133 RD, RJ(0.340, ...): 3.433031152013\n    test 134 RD, RJ(0.350, ...): 3.401035009727\n    test 135 RD, RJ(0.360, ...): 3.370091411694\n    test 136 RD, RJ(0.370, ...): 3.340139575961\n    test 137 RD, RJ(0.380, ...): 3.311123710009\n    test 138 RD, RJ(0.390, ...): 3.282992484411\n    test 139 RD, RJ(0.400, ...): 3.255698573796\n    test 140 RD, RJ(0.410, ...): 3.229198255060\n    test 141 RD, RJ(0.420, ...): 3.203451054514\n    test 142 RD, RJ(0.430, ...): 3.178419436977\n    test 143 RD, RJ(0.440, ...): 3.154068531006\n    test 144 RD, RJ(0.450, ...): 3.130365885345\n    test 145 RD, RJ(0.460, ...): 3.107281252437\n    test 146 RD, RJ(0.470, ...): 3.084786395490\n    test 147 RD, RJ(0.480, ...): 3.062854916088\n    test 148 RD, RJ(0.490, ...): 3.041462099793\n    test 149 RD, RJ(0.500, ...): 3.020584777522\n    test 150 RD, RJ(0.510, ...): 3.000201200833\n    test 151 RD, RJ(0.520, ...): 2.980290929460\n    test 152 RD, RJ(0.530, ...): 2.960834729701\n    test 153 RD, RJ(0.540, ...): 2.941814482427\n    test 154 RD, RJ(0.550, ...): 2.923213099639\n    test 155 RD, RJ(0.560, ...): 2.905014448642\n    test 156 RD, RJ(0.570, ...): 2.887203283023\n    test 157 RD, RJ(0.580, ...): 2.869765179714\n    test 158 RD, RJ(0.590, ...): 2.852686481504\n    test 159 RD, RJ(0.600, ...): 2.835954244454\n    test 160 RD, RJ(0.610, ...): 2.819556189720\n    test 161 RD, RJ(0.620, ...): 2.803480659351\n    test 162 RD, RJ(0.630, ...): 2.787716575666\n    test 163 RD, RJ(0.640, ...): 2.772253403892\n    test 164 RD, RJ(0.650, ...): 2.757081117726\n    test 165 RD, RJ(0.660, ...): 2.742190167580\n    test 166 RD, RJ(0.670, ...): 2.727571451237\n    test 167 RD, RJ(0.680, ...): 2.713216286727\n    test 168 RD, RJ(0.690, ...): 2.699116387203\n    test 169 RD, RJ(0.700, ...): 2.685263837661\n    test 170 RD, RJ(0.710, ...): 2.671651073335\n    test 171 RD, RJ(0.720, ...): 2.658270859623\n    test 172 RD, RJ(0.730, ...): 2.645116273430\n    test 173 RD, RJ(0.740, ...): 2.632180685789\n    test 174 RD, RJ(0.750, ...): 2.619457745678\n    test 175 RD, RJ(0.760, ...): 2.606941364924\n    test 176 RD, RJ(0.770, ...): 2.594625704104\n    test 177 RD, RJ(0.780, ...): 2.582505159384\n    test 178 RD, RJ(0.790, ...): 2.570574350197\n    test 179 RD, RJ(0.800, ...): 2.558828107720\n    test 180 RD, RJ(0.810, ...): 2.547261464073\n    test 181 RD, RJ(0.820, ...): 2.535869642198\n    test 182 RD, RJ(0.830, ...): 2.524648046356\n    test 183 RD, RJ(0.840, ...): 2.513592253209\n    test 184 RD, RJ(0.850, ...): 2.502698003435\n    test 185 RD, RJ(0.860, ...): 2.491961193848\n    test 186 RD, RJ(0.870, ...): 2.481377869975\n    test 187 RD, RJ(0.880, ...): 2.470944219069\n    test 188 RD, RJ(0.890, ...): 2.460656563526\n    test 189 RD, RJ(0.900, ...): 2.450511354674\n    test 190 RD, RJ(0.910, ...): 2.440505166909\n    test 191 RD, RJ(0.920, ...): 2.430634692166\n    test 192 RD, RJ(0.930, ...): 2.420896734686\n    test 193 RD, RJ(0.940, ...): 2.411288206073\n    test 194 RD, RJ(0.950, ...): 2.401806120619\n    test 195 RD, RJ(0.960, ...): 2.392447590873\n    test 196 RD, RJ(0.970, ...): 2.383209823448\n    test 197 RD, RJ(0.980, ...): 2.374090115050\n    test 198 RD, RJ(0.990, ...): 2.365085848706\n\n    test 199 eps4: 8.881784197e-16\n    test 200 k2: 0.1000000\n    test 201 kp2: 0.9000000\n    test 202 eps: 0.0263340\n    test 203 cD: 0.816837118\n    test 204 cE: 1.530757637\n    test 205 cG: 1.530757637\n    test 206 cH: 0.795604230\n    test 207 cK: 1.612441349\n    test 208 cKE: 0.081683712\n    test 209 cPi: 1.612441349\n    test 210 fE(phi): 0.348372822\n    test 211 fDelta(sn, cn): 0.994133906\n    test 212 fD(sn, cn, dn): 0.013885234\n    test 213 fE(sn, cn, dn): 0.348372822\n    test 214 fEd(PI_2): 0.027415224\n    test 215 fEinv(PI_2): 1.612999420\n    test 216 fF(sn, cn, dn): 0.349761345\n    test 217 fG(sn, cn, dn): 0.348372822\n    test 218 fH(sn, cn, dn): 0.335876111\n    test 219 fPi(sn, cn, dn): 0.349761345\n    test 220 fPi(sn, None, dn): invokation Elliptic.fPi(0, None, 1): invalid\n    test 221 fPi(sn, dn, None): invokation Elliptic.fH(0, 1, None): invalid\n\n    test 222 deltaD(sn, cn, dn): -0.3223642\n    test 223 deltaE(sn, cn, dn): 0.0084191\n    test 224 deltaEinv(sn, cn): -0.0082518\n    test 225 deltaF(sn, cn, dn): -0.0083379\n    test 226 deltaG(sn, cn, dn): 0.0084191\n    test 227 deltaH(sn, cn, dn): 0.3140691\n    test 228 deltaPi(sn, cn, dn): -0.0083379\n    test 229 deltaPi(sn, None, dn): invokation Elliptic.deltaPi(0, None, 1): invalid\n    test 230 deltaPi(sn, dn, None): invokation Elliptic.deltaPi(0, 1, None): invalid\n\n    test 231 RF(1,   2, 0): 1.3110287771461\n    test 232 RF(0.5, 1, 0): 1.8540746773014\n    test 233 RF(2,   3, 4): 0.58408284167715\n\n    test 234 RC(0,  1/4): 3.1415926535898\n    test 235 RC(9/4,  2): 0.69314718055995\n    test 236 RC(1/4, -2): 0.23104906018665\n\n    test 237 RJ(0, 1, 2, 3): 0.77688623778582\n    test 238 RJ(2, 3, 4, 5): 0.14297579667157\n\n    test 239 RD(0, 2, 1): 1.7972103521034\n    test 240 RD(2, 3, 4): 0.16510527294261\n\n    test 241 RG(0, 16, 16): 3.1415926535898\n    test 242 RG(2,  3,  4): 1.7255030280692\n    test 243 RG(0,  0.0796, 4): 1.0284758090288\n\n    test 244 reset: 5\n\n    test 245 sncndn(x, jam=True): 0.0, 1.0, 1.0\n    test 246 sncndn(x, jam=True): 0.998602459, 0.052850065, 0.948830497\n    test 247 sncndn(x, jam=True): 0.0, 1.0, 1.0\n    test 248 sncndn(x, jam=True): 0.917152336, 0.398536815, 0.398536815\n    test 249 sncndn(x, jam=True): <class 'pygeodesy.elliptic.Elliptic3Tuple'>\n\n    test 250 sncndn(x, jam=False): 0.0, 1.0, 1.0\n    test 251 sncndn(x, jam=False): 0.999219618, 0.0394988, 0.948765522\n    test 252 sncndn(x, jam=False): 0.0, 1.0, 1.0\n    test 253 sncndn(x, jam=False): 0.917152336, 0.398536815, 0.398536815\n    test 254 sncndn(x, jam=False): <class 'pygeodesy.elliptic.Elliptic3Tuple'>\n\n    test 255 copy(<class 'type'>): (<class 'pygeodesy.elliptic.Elliptic'>, True)\n    test 256 Elliptic.copy(): (<class 'pygeodesy.elliptic.Elliptic'>, True)\n    test 257 k2 alpha2 kp2 alphap2: (0.0, 0.0, 0.0, 0.0)\n    test 258 k2 alpha2 kp2 alphap2: (0.25, 0.25, 0.25, 0.25)\n    test 259 k2 alpha2 kp2 alphap2: (0.5, 0.5, 0.5, 0.5)\n    test 260 k2 alpha2 kp2 alphap2: (0.75, 0.75, 0.75, 0.75)\n\n    test 261 ConvergenceError: maxit (9): no convergence (1), tolerance (2)\n\n    test 262 _ellipticError: invokation Elliptic.testElliptic(None): test\n    test 263 _ellipticError: invokation Elliptic._ellipticError(None): invokation Elliptic.testElliptic(None): test\n\n    all 263 testElliptic.py tests passed (pygeodesy 26.3.26 Python 3.11.9 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 1.24.2 scipy 1.10.1 Math 2 macOS 26.3.1 isLazy 0 -W  default) 1.121 sec\nrunning /usr/local/bin/p....n3.11 -W default ~/PyGeodesy/test/testEpsg.py\n\n    testing testEpsg.py 23.03.27\n    test 1 Epsg: Epsg(32661)\n    test 2 0 N: (0, 'N')\n    test 3 1 N: (1, 'N')\n    test 4 2 N: (2, 'N')\n    test 5 3 N: (3, 'N')\n    test 6 4 N: (4, 'N')\n    test 7 5 N: (5, 'N')\n    test 8 6 N: (6, 'N')\n    test 9 7 N: (7, 'N')\n    test 10 8 N: (8, 'N')\n    test 11 9 N: (9, 'N')\n    test 12 10 N: (10, 'N')\n    test 13 11 N: (11, 'N')\n    test 14 12 N: (12, 'N')\n    test 15 13 N: (13, 'N')\n    test 16 14 N: (14, 'N')\n    test 17 15 N: (15, 'N')\n    test 18 16 N: (16, 'N')\n    test 19 17 N: (17, 'N')\n    test 20 18 N: (18, 'N')\n    test 21 19 N: (19, 'N')\n    test 22 20 N: (20, 'N')\n    test 23 21 N: (21, 'N')\n    test 24 22 N: (22, 'N')\n    test 25 23 N: (23, 'N')\n    test 26 24 N: (24, 'N')\n    test 27 25 N: (25, 'N')\n    test 28 26 N: (26, 'N')\n    test 29 27 N: (27, 'N')\n    test 30 28 N: (28, 'N')\n    test 31 29 N: (29, 'N')\n    test 32 30 N: (30, 'N')\n    test 33 31 N: (31, 'N')\n    test 34 32 N: (32, 'N')\n    test 35 33 N: (33, 'N')\n    test 36 34 N: (34, 'N')\n    test 37 35 N: (35, 'N')\n    test 38 36 N: (36, 'N')\n    test 39 37 N: (37, 'N')\n    test 40 38 N: (38, 'N')\n    test 41 39 N: (39, 'N')\n    test 42 40 N: (40, 'N')\n    test 43 41 N: (41, 'N')\n    test 44 42 N: (42, 'N')\n    test 45 43 N: (43, 'N')\n    test 46 44 N: (44, 'N')\n    test 47 45 N: (45, 'N')\n    test 48 46 N: (46, 'N')\n    test 49 47 N: (47, 'N')\n    test 50 48 N: (48, 'N')\n    test 51 49 N: (49, 'N')\n    test 52 50 N: (50, 'N')\n    test 53 51 N: (51, 'N')\n    test 54 52 N: (52, 'N')\n    test 55 53 N: (53, 'N')\n    test 56 54 N: (54, 'N')\n    test 57 55 N: (55, 'N')\n    test 58 56 N: (56, 'N')\n    test 59 57 N: (57, 'N')\n    test 60 58 N: (58, 'N')\n    test 61 59 N: (59, 'N')\n    test 62 60 N: (60, 'N')\n    test 63 Epsg: Epsg(32761)\n    test 64 0 S: (0, 'S')\n    test 65 1 S: (1, 'S')\n    test 66 2 S: (2, 'S')\n    test 67 3 S: (3, 'S')\n    test 68 4 S: (4, 'S')\n    test 69 5 S: (5, 'S')\n    test 70 6 S: (6, 'S')\n    test 71 7 S: (7, 'S')\n    test 72 8 S: (8, 'S')\n    test 73 9 S: (9, 'S')\n    test 74 10 S: (10, 'S')\n    test 75 11 S: (11, 'S')\n    test 76 12 S: (12, 'S')\n    test 77 13 S: (13, 'S')\n    test 78 14 S: (14, 'S')\n    test 79 15 S: (15, 'S')\n    test 80 16 S: (16, 'S')\n    test 81 17 S: (17, 'S')\n    test 82 18 S: (18, 'S')\n    test 83 19 S: (19, 'S')\n    test 84 20 S: (20, 'S')\n    test 85 21 S: (21, 'S')\n    test 86 22 S: (22, 'S')\n    test 87 23 S: (23, 'S')\n    test 88 24 S: (24, 'S')\n    test 89 25 S: (25, 'S')\n    test 90 26 S: (26, 'S')\n    test 91 27 S: (27, 'S')\n    test 92 28 S: (28, 'S')\n    test 93 29 S: (29, 'S')\n    test 94 30 S: (30, 'S')\n    test 95 31 S: (31, 'S')\n    test 96 32 S: (32, 'S')\n    test 97 33 S: (33, 'S')\n    test 98 34 S: (34, 'S')\n    test 99 35 S: (35, 'S')\n    test 100 36 S: (36, 'S')\n    test 101 37 S: (37, 'S')\n    test 102 38 S: (38, 'S')\n    test 103 39 S: (39, 'S')\n    test 104 40 S: (40, 'S')\n    test 105 41 S: (41, 'S')\n    test 106 42 S: (42, 'S')\n    test 107 43 S: (43, 'S')\n    test 108 44 S: (44, 'S')\n    test 109 45 S: (45, 'S')\n    test 110 46 S: (46, 'S')\n    test 111 47 S: (47, 'S')\n    test 112 48 S: (48, 'S')\n    test 113 49 S: (49, 'S')\n    test 114 50 S: (50, 'S')\n    test 115 51 S: (51, 'S')\n    test 116 52 S: (52, 'S')\n    test 117 53 S: (53, 'S')\n    test 118 54 S: (54, 'S')\n    test 119 55 S: (55, 'S')\n    test 120 56 S: (56, 'S')\n    test 121 57 S: (57, 'S')\n    test 122 58 S: (58, 'S')\n    test 123 59 S: (59, 'S')\n    test 124 60 S: (60, 'S')\n    test 125 Ups: Epsg(32761)\n    test 126 Ups: 00A S\n    test 127 copy(<class 'type'>): (<class 'pygeodesy.epsg.Epsg'>, True)\n    test 128 Epsg.copy(): (<class 'pygeodesy.epsg.Epsg'>, True)\n    test 129 Ups: Epsg(32761)\n    test 130 Ups: 00B S\n    test 131 copy(<class 'type'>): (<class 'pygeodesy.epsg.Epsg'>, True)\n    test 132 Epsg.copy(): (<class 'pygeodesy.epsg.Epsg'>, True)\n    test 133 Ups: Epsg(32661)\n    test 134 Ups: 00Y N\n    test 135 copy(<class 'type'>): (<class 'pygeodesy.epsg.Epsg'>, True)\n    test 136 Epsg.copy(): (<class 'pygeodesy.epsg.Epsg'>, True)\n    test 137 Ups: Epsg(32661)\n    test 138 Ups: 00Z N\n    test 139 copy(<class 'type'>): (<class 'pygeodesy.epsg.Epsg'>, True)\n    test 140 Epsg.copy(): (<class 'pygeodesy.epsg.Epsg'>, True)\n    test 141 TMcoord 1: 38W N\n    test 142 TMcoord 2: 34P N\n    test 143 TMcoord 3: 43Q N\n    test 144 TMcoord 4: 35Q N\n    test 145 TMcoord 5: 37N N\n    test 146 TMcoord 6: 34W N\n    test 147 TMcoord 7: 40V N\n    test 148 TMcoord 8: 34P N\n    test 149 TMcoord 9: 41S N\n    test 150 TMcoord 10: 41X N\n    test 151 TMcoord 11: 43X N\n    test 152 TMcoord 12: 44Q N\n    test 153 TMcoord 13: 44R N\n    test 154 TMcoord 14: 39U N\n    test 155 TMcoord 15: 44P N\n    test 156 TMcoord 16: 39R N\n    test 157 TMcoord 17: 41W N\n    test 158 TMcoord 18: 45U N\n    test 159 TMcoord 19: 32R N\n    test 160 TMcoord 20: 44X N\n    test 161 TMcoord 21: 35T N\n    test 162 TMcoord 22: 32T N\n    test 163 TMcoord 23: 31T N\n    test 164 TMcoord 24: 35N N\n    test 165 TMcoord 25: 45P N\n    test 166 TMcoord 26: 33V N\n    test 167 TMcoord 27: 41Q N\n    test 168 TMcoord 28: 40X N\n    test 169 TMcoord 29: 33P N\n    test 170 TMcoord 30: 40S N\n    test 171 TMcoord 31: 37T N\n    test 172 TMcoord 32: 33X N\n    test 173 TMcoord 33: 41U N\n    test 174 TMcoord 34: 43Q N\n    test 175 TMcoord 35: 42S N\n    test 176 TMcoord 36: 33S N\n    test 177 TMcoord 37: 35X N\n    test 178 TMcoord 38: 38N N\n    test 179 TMcoord 39: 44P N\n    test 180 TMcoord 40: 33U N\n    test 181 TMcoord 41: 37W N\n    test 182 TMcoord 42: 36T N\n    test 183 TMcoord 43: 36Q N\n    test 184 TMcoord 44: 34S N\n    test 185 TMcoord 45: 37S N\n    test 186 TMcoord 46: 34N N\n    test 187 TMcoord 47: 34T N\n    test 188 TMcoord 48: 43Q N\n    test 189 TMcoord 49: 32N N\n    test 190 TMcoord 50: 31Q N\n    test 191 TMcoord 51: 45R N\n    test 192 TMcoord 52: 45R N\n    test 193 TMcoord 53: 34W N\n    test 194 TMcoord 54: 44V N\n    test 195 TMcoord 55: 44S N\n    test 196 TMcoord 56: 39R N\n    test 197 TMcoord 57: 00Z N\n    test 198 TMcoord 58: 36R N\n    test 199 TMcoord 59: 41V N\n    test 200 TMcoord 60: 42N N\n    test 201 TMcoord 61: 43S N\n    test 202 TMcoord 62: 34N N\n    test 203 TMcoord 63: 34U N\n    test 204 TMcoord 64: 38V N\n    test 205 TMcoord 65: 34Q N\n    test 206 TMcoord 66: 38P N\n    test 207 TMcoord 67: 42S N\n    test 208 TMcoord 68: 44S N\n    test 209 TMcoord 69: 31Q N\n    test 210 TMcoord 70: 40W N\n    test 211 TMcoord 71: 35X N\n    test 212 TMcoord 72: 32T N\n    test 213 TMcoord 73: 45U N\n    test 214 TMcoord 74: 40Q N\n    test 215 TMcoord 75: 31T N\n    test 216 TMcoord 76: 44R N\n    test 217 TMcoord 77: 34U N\n    test 218 TMcoord 78: 38P N\n    test 219 TMcoord 79: 38Q N\n    test 220 TMcoord 80: 45N N\n    test 221 TMcoord 81: 31S N\n    test 222 TMcoord 82: 41U N\n    test 223 TMcoord 83: 40V N\n    test 224 TMcoord 84: 43X N\n    test 225 TMcoord 85: 35N N\n    test 226 TMcoord 86: 44P N\n    test 227 TMcoord 87: 41N N\n    test 228 TMcoord 88: 38Q N\n    test 229 TMcoord 89: 43X N\n    test 230 TMcoord 90: 36V N\n    test 231 TMcoord 91: 34Q N\n    test 232 TMcoord 92: 35W N\n    test 233 TMcoord 93: 45U N\n    test 234 TMcoord 94: 40R N\n    test 235 TMcoord 95: 36R N\n    test 236 TMcoord 96: 35S N\n    test 237 TMcoord 97: 41R N\n    test 238 TMcoord 98: 39Q N\n    test 239 TMcoord 99: 37T N\n    test 240 TMcoord 100: 42P N\n    test 241 TMcoord 101: 35T N\n    test 242 TMcoord 102: 34Q N\n    test 243 TMcoord 103: 41T N\n    test 244 TMcoord 104: 43R N\n    test 245 TMcoord 105: 34Q N\n    test 246 TMcoord 106: 45P N\n    test 247 TMcoord 107: 31P N\n    test 248 TMcoord 108: 44V N\n    test 249 TMcoord 109: 42X N\n    test 250 TMcoord 110: 33R N\n    test 251 TMcoord 111: 37W N\n    test 252 TMcoord 112: 31S N\n    test 253 TMcoord 113: 42N N\n    test 254 TMcoord 114: 39N N\n    test 255 TMcoord 115: 39T N\n    test 256 TMcoord 116: 39P N\n    test 257 TMcoord 117: 34U N\n    test 258 TMcoord 118: 41P N\n    test 259 TMcoord 119: 37R N\n    test 260 TMcoord 120: 44Q N\n    test 261 TMcoord 121: 32V N\n    test 262 TMcoord 122: 41R N\n    test 263 TMcoord 123: 36T N\n    test 264 TMcoord 124: 42U N\n    test 265 TMcoord 125: 42U N\n    test 266 TMcoord 126: 39T N\n    test 267 TMcoord 127: 32T N\n    test 268 TMcoord 128: 32Q N\n    test 269 TMcoord 129: 38P N\n    test 270 TMcoord 130: 34Q N\n    test 271 TMcoord 131: 36V N\n    test 272 TMcoord 132: 36T N\n    test 273 TMcoord 133: 43T N\n    test 274 TMcoord 134: 41W N\n    test 275 TMcoord 135: 32V N\n    test 276 TMcoord 136: 39X N\n    test 277 TMcoord 137: 32U N\n    test 278 TMcoord 138: 37X N\n    test 279 TMcoord 139: 35N N\n    test 280 TMcoord 140: 36P N\n    test 281 TMcoord 141: 31S N\n    test 282 TMcoord 142: 36N N\n    test 283 TMcoord 143: 42S N\n    test 284 TMcoord 144: 44N N\n    test 285 TMcoord 145: 44P N\n    test 286 TMcoord 146: 39U N\n    test 287 TMcoord 147: 45Q N\n    test 288 TMcoord 148: 41W N\n    test 289 TMcoord 149: 41N N\n    test 290 TMcoord 150: 32S N\n    test 291 TMcoord 151: 32N N\n    test 292 TMcoord 152: 32T N\n    test 293 TMcoord 153: 38R N\n    test 294 TMcoord 154: 32V N\n    test 295 TMcoord 155: 37Q N\n    test 296 TMcoord 156: 44N N\n    test 297 TMcoord 157: 34W N\n    test 298 TMcoord 158: 45N N\n    test 299 TMcoord 159: 42S N\n    test 300 TMcoord 160: 40T N\n    test 301 TMcoord 161: 31U N\n    test 302 TMcoord 162: 45Q N\n    test 303 TMcoord 163: 40U N\n    test 304 TMcoord 164: 45T N\n    test 305 TMcoord 165: 40R N\n    test 306 TMcoord 166: 31V N\n    test 307 TMcoord 167: 45P N\n    test 308 TMcoord 168: 43W N\n    test 309 TMcoord 169: 43U N\n    test 310 TMcoord 170: 44V N\n    test 311 TMcoord 171: 40P N\n    test 312 TMcoord 172: 36Q N\n    test 313 TMcoord 173: 42Q N\n    test 314 TMcoord 174: 41Q N\n    test 315 TMcoord 175: 32S N\n    test 316 TMcoord 176: 39P N\n    test 317 TMcoord 177: 39Q N\n    test 318 TMcoord 178: 39T N\n    test 319 TMcoord 179: 34U N\n    test 320 TMcoord 180: 32W N\n    test 321 TMcoord 181: 41U N\n    test 322 TMcoord 182: 31Q N\n    test 323 TMcoord 183: 40N N\n    test 324 TMcoord 184: 40T N\n    test 325 TMcoord 185: 38P N\n    test 326 TMcoord 186: 44P N\n    test 327 TMcoord 187: 40N N\n    test 328 TMcoord 188: 44V N\n    test 329 TMcoord 189: 41V N\n    test 330 TMcoord 190: 43Q N\n    test 331 TMcoord 191: 43X N\n    test 332 TMcoord 192: 39N N\n    test 333 TMcoord 193: 38T N\n    test 334 TMcoord 194: 32R N\n    test 335 TMcoord 195: 37S N\n    test 336 TMcoord 196: 44W N\n    test 337 TMcoord 197: 43V N\n    test 338 TMcoord 198: 35T N\n    test 339 TMcoord 199: 44W N\n    test 340 TMcoord 200: 44X N\n    test 341 TMcoord 201: 33Q N\n    test 342 TMcoord 202: 40W N\n    test 343 TMcoord 203: 43S N\n    test 344 TMcoord 204: 32U N\n    test 345 TMcoord 205: 33V N\n    test 346 TMcoord 206: 34R N\n    test 347 TMcoord 207: 39S N\n    test 348 TMcoord 208: 43W N\n    test 349 TMcoord 209: 39T N\n    test 350 TMcoord 210: 31W N\n    test 351 TMcoord 211: 45R N\n    test 352 TMcoord 212: 34W N\n    test 353 TMcoord 213: 32T N\n    test 354 TMcoord 214: 31P N\n    test 355 TMcoord 215: 44V N\n    test 356 TMcoord 216: 45U N\n    test 357 TMcoord 217: 43R N\n    test 358 TMcoord 218: 31N N\n    test 359 TMcoord 219: 43T N\n    test 360 TMcoord 220: 45R N\n    test 361 TMcoord 221: 39N N\n    test 362 TMcoord 222: 37S N\n    test 363 TMcoord 223: 31R N\n    test 364 TMcoord 224: 38Q N\n    test 365 TMcoord 225: 40V N\n    test 366 TMcoord 226: 45N N\n    test 367 TMcoord 227: 44R N\n    test 368 TMcoord 228: 43P N\n    test 369 TMcoord 229: 42P N\n    test 370 TMcoord 230: 45S N\n    test 371 TMcoord 231: 42N N\n    test 372 TMcoord 232: 38S N\n    test 373 TMcoord 233: 32T N\n    test 374 TMcoord 234: 41T N\n    test 375 TMcoord 235: 34S N\n    test 376 TMcoord 236: 40R N\n    test 377 TMcoord 237: 35V N\n    test 378 TMcoord 238: 38N N\n    test 379 TMcoord 239: 40V N\n    test 380 TMcoord 240: 36R N\n    test 381 TMcoord 241: 37W N\n    test 382 TMcoord 242: 45R N\n    test 383 TMcoord 243: 37V N\n    test 384 TMcoord 244: 33P N\n    test 385 TMcoord 245: 32U N\n    test 386 TMcoord 246: 38T N\n    test 387 TMcoord 247: 37N N\n    test 388 TMcoord 248: 36R N\n    test 389 TMcoord 249: 44R N\n    test 390 TMcoord 250: 44Q N\n    test 391 TMcoord 251: 45R N\n    test 392 TMcoord 252: 34N N\n    test 393 TMcoord 253: 43S N\n    test 394 TMcoord 254: 40Q N\n    test 395 TMcoord 255: 33T N\n    test 396 TMcoord 256: 44P N\n    test 397 TMcoord 257: 39N N\n    test 398 TMcoord 258: 40Q N\n\n    all 398 testEpsg.py tests passed (pygeodesy 26.3.26 Python 3.11.9 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 1.24.2 scipy 1.10.1 Math 2 macOS 26.3.1 isLazy 0 -W  default) 349.151 ms\nrunning /usr/local/bin/p....n3.11 -W default ~/PyGeodesy/test/testErrors.py\n\n    testing testErrors.py 23.03.27 (module pygeodesy.errors 26.02.12)\n    test 1 AssertionError: name ('value'): test1 txt\n    test 2 AssertionError: 'name=value' MISSING: test2 txt\n    test 3 AttributeError: name ('value'): test1 txt\n    test 4 AttributeError: 'name=value' MISSING: test2 txt\n    test 5 IndexError: name ('value'): test1 txt\n    test 6 IndexError: 'name=value' MISSING: test2 txt\n    test 7 LimitError: name ('value'): test1 txt\n    test 8 LimitError: 'name=value' MISSING: test2 txt\n    test 9 NameError: name ('value'): test1 txt\n    test 10 NameError: 'name=value' MISSING: test2 txt\n    test 11 ParseError: name ('value'): test1 txt\n    test 12 ParseError: 'name=value' MISSING: test2 txt\n    test 13 TypeError: type(name) ('value'): test1 txt\n    test 14 TypeError: 'name=value' MISSING: test2 txt\n    test 15 ClipError: name ('value'): test1 txt\n    test 16 ClipError: 'name=value' MISSING: test2 txt\n    test 17 CrossError: name ('value'): test1 txt\n    test 18 CrossError: 'name=value' MISSING: test2 txt\n    test 19 CSSError: name ('value'): test1 txt\n    test 20 CSSError: 'name=value' MISSING: test2 txt\n    test 21 EcefError: name ('value'): test1 txt\n    test 22 EcefError: 'name=value' MISSING: test2 txt\n    test 23 EllipticError: name ('value'): test1 txt\n    test 24 EllipticError: 'name=value' MISSING: test2 txt\n    test 25 EPSGError: name ('value'): test1 txt\n    test 26 EPSGError: 'name=value' MISSING: test2 txt\n    test 27 ETMError: name ('value'): test1 txt\n    test 28 ETMError: 'name=value' MISSING: test2 txt\n    test 29 FrechetError: name ('value'): test1 txt\n    test 30 FrechetError: 'name=value' MISSING: test2 txt\n    test 31 GARSError: name ('value'): test1 txt\n    test 32 GARSError: 'name=value' MISSING: test2 txt\n    test 33 GeohashError: name ('value'): test1 txt\n    test 34 GeohashError: 'name=value' MISSING: test2 txt\n    test 35 GeoidError: name ('value'): test1 txt\n    test 36 GeoidError: 'name=value' MISSING: test2 txt\n    test 37 HausdorffError: name ('value'): test1 txt\n    test 38 HausdorffError: 'name=value' MISSING: test2 txt\n    test 39 HeightError: name ('value'): test1 txt\n    test 40 HeightError: 'name=value' MISSING: test2 txt\n    test 41 LazyImportError: name ('value'): test1 txt\n    test 42 LazyImportError: 'name=value' MISSING: test2 txt\n    test 43 LCCError: name ('value'): test1 txt\n    test 44 LCCError: 'name=value' MISSING: test2 txt\n    test 45 MGRSError: name ('value'): test1 txt\n    test 46 MGRSError: 'name=value' MISSING: test2 txt\n    test 47 OSGRError: name ('value'): test1 txt\n    test 48 OSGRError: 'name=value' MISSING: test2 txt\n    test 49 PGMError: name ('value'): test1 txt\n    test 50 PGMError: 'name=value' MISSING: test2 txt\n    test 51 PointsError: name ('value'): test1 txt\n    test 52 PointsError: 'name=value' MISSING: test2 txt\n    test 53 SciPyError: name ('value'): test1 txt\n    test 54 SciPyError: 'name=value' MISSING: test2 txt\n    test 55 SciPyWarning: name ('value'): test1 txt\n    test 56 SciPyWarning: 'name=value' MISSING: test2 txt\n    test 57 TRFError: name ('value'): test1 txt\n    test 58 TRFError: 'name=value' MISSING: test2 txt\n    test 59 UnitError: name ('value'): test1 txt\n    test 60 UnitError: 'name=value' MISSING: test2 txt\n    test 61 UPSError: name ('value'): test1 txt\n    test 62 UPSError: 'name=value' MISSING: test2 txt\n    test 63 UTMError: name ('value'): test1 txt\n    test 64 UTMError: 'name=value' MISSING: test2 txt\n    test 65 UTMUPSError: name ('value'): test1 txt\n    test 66 UTMUPSError: 'name=value' MISSING: test2 txt\n    test 67 VectorError: name ('value'): test1 txt\n    test 68 VectorError: 'name=value' MISSING: test2 txt\n    test 69 VincentyError: name ('value'): test1 txt\n    test 70 VincentyError: 'name=value' MISSING: test2 txt\n    test 71 WebMercatorError: name ('value'): test1 txt\n    test 72 WebMercatorError: 'name=value' MISSING: test2 txt\n    test 73 WGRSError: name ('value'): test1 txt\n    test 74 WGRSError: 'name=value' MISSING: test2 txt\n    test 75 _InvalidError: zero (1): invalid\n    test 76 _InvalidError: ValueError('zero (1): invalid')\n    test 77 _InvalidError: one (2) or zero (1): outside\n    test 78 _InvalidError: ValueError('one (2) or zero (1): outside')\n    test 79 _InvalidError: one (2) or zero (1): outside\n    test 80 _InvalidError: RangeError('one (2) or zero (1): outside')\n    test 81 _IsnotError: _None (None): not an int or float\n    test 82 _IsnotError: TypeError('_None (None): not an int or float')\n    test 83 _IsnotError: _None (None): not a scalar\n    test 84 _IsnotError: TypeError('_None (None): not a scalar')\n    test 85 _IsnotError: _None (None): not a scalar\n    test 86 _IsnotError: LimitError('_None (None): not a scalar')\n    test 87 LenError: LenError(a, b, c, d) len 1 vs 2 vs 3 vs 4: invalid\n    test 88 crosserrors: True\n    test 89 crosserrors: False\n    test 90 limiterrors: True\n    test 91 limiterrors: False\n    test 92 rangerrors: True\n    test 93 rangerrors: False\n    test 94 exception_chaining: False\n    test 95 exception_chaining: None\n    test 96 exception_chaining: None\n    test 97 _xkwds_get: test1\n    test 98 _xkwds_get: test2\n    test 99 _xkwds_get: _xkwds_get({})\n    test 100 _xkwds_get: _xkwds_get({}, n1='d1', n2='d2')\n    test 101 _xkwds_pop: test1\n    test 102 _xkwds_pop: test2\n    test 103 _xkwds_pop: _xkwds_pop2({})\n    test 104 _xkwds_pop: _xkwds_pop2({}, n1='d1', n2='d2')\n\n    all 104 testErrors.py tests passed (pygeodesy 26.3.26 Python 3.11.9 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 1.24.2 scipy 1.10.1 Math 2 macOS 26.3.1 isLazy 0 -W  default) 1.031 ms\nrunning /usr/local/bin/p....n3.11 -W default ~/PyGeodesy/test/testEtm.py\n\n    testing testEtm.py 23.08.30 (module pygeodesy.etm 25.09.15)\n\n    testExactTransverseMercator(pygeodesy.etm, 25.09.15)\n    test 1 name: test\n    test 2 toStr: datum='WGS84', extendp=True, k0=0.9996, lon0=0.0, name='test'\n\n    test 3 easting: -59401.921148\n    test 4 northing: 4472390.031129\n    test 5 gamma: -0.453697\n    test 6 scale: 0.999643\n    test 7 lat: 40.400000\n    test 8 lon: -3.700000\n    test 9 gamma: -0.453697\n    test 10 scale: 0.999643\n    test 11 easting: -59401.921148\n    test 12 northing: 4472390.031129\n    test 13 gamma: -0.453697\n    test 14 scale: 0.999643\n\n    test 15 easting: 25495.511523\n    test 16 northing: 4461098.320889\n    test 17 gamma: 0.194038\n    test 18 scale: 0.999608\n    test 19 lat: 40.300000\n    test 20 lon: -74.700000\n    test 21 gamma: 0.194038\n    test 22 scale: 0.999608\n    test 23 easting: 25495.511523\n    test 24 northing: 4461098.320889\n    test 25 gamma: 0.194038\n    test 26 scale: 0.999608\n\n    test 27 lat: -2.00000000\n    test 28 lon: 88.00000000\n    test 29 gamma: 67.63332900\n    test 30 scale: 26.33699547\n    test 31 easting: 29735142.378357\n    test 32 northing: 4235043.607933\n    test 33 gamma: 67.633329\n    test 34 scale: 26.336995\n\n    test 35 copy(<class 'type'>): (<class 'pygeodesy.etm.ExactTransverseMercator'>, True)\n    test 36 ExactTransverseMercator.copy(): (<class 'pygeodesy.etm.ExactTransverseMercator'>, True)\n\n    testExactTransverseMercator(pygeodesy.etm, 25.09.15)\n    test 37 name: test\n    test 38 toStr: datum='WGS84', extendp=False, k0=0.9996, lon0=0.0, name='test'\n\n    test 39 easting: -59401.921148\n    test 40 northing: 4472390.031129\n    test 41 gamma: -0.453697\n    test 42 scale: 0.999643\n    test 43 lat: 40.400000\n    test 44 lon: -3.700000\n    test 45 gamma: -0.453697\n    test 46 scale: 0.999643\n    test 47 easting: -59401.921148\n    test 48 northing: 4472390.031129\n    test 49 gamma: -0.453697\n    test 50 scale: 0.999643\n\n    test 51 easting: 25495.511523\n    test 52 northing: 4461098.320889\n    test 53 gamma: 0.194038\n    test 54 scale: 0.999608\n    test 55 lat: 40.300000\n    test 56 lon: -74.700000\n    test 57 gamma: 0.194038\n    test 58 scale: 0.999608\n    test 59 easting: 25495.511523\n    test 60 northing: 4461098.320889\n    test 61 gamma: 0.194038\n    test 62 scale: 0.999608\n\n    test 63 lat: -2.00000000\n    test 64 lon: 88.00000000\n    test 65 gamma: 67.63332900\n    test 66 scale: 26.33699547\n\n    test 67 easting: 0.000\n    test 68 northing: -9997964.943\n    test 69 gamma: 120.000\n    test 70 scale: 1.000\n    test 71 lat: -90.000\n    test 72 lon: 180.000  FAILED, KNOWN, expected 0.000\n    test 73 gamma: -180.000\n    test 74 scale: 1.000\n\n    test 75 copy(<class 'type'>): (<class 'pygeodesy.etm.ExactTransverseMercator'>, True)\n    test 76 ExactTransverseMercator.copy(): (<class 'pygeodesy.etm.ExactTransverseMercator'>, True)\n\n    testLatLon(pygeodesy.etm, 25.09.15)\n    test 77 toEtm8: 45 S -20297797 5336899\n    test 78 name: test\n    test 79 toUtm: 45 S -20297797 5336899\n    test 80 name: test\n    test 81 toETM5: 45 S -20297797 5336899\n    test 82 copy(<class 'type'>): (<class 'pygeodesy.etm.Etm'>, True)\n    test 83 .name: test\n    test 84 Etm.copy(): (<class 'pygeodesy.etm.Etm'>, True)\n    test 85 .name: test\n    test 86 parse: 31 N 448251 5411932\n    test 87 name: parse\n    test 88 parse: 31 N 448251 5411932\n    test 89 name: parse\n\n    testLatLon(pygeodesy.etm, 25.09.15)\n    test 90 toEtm8: 45 S -20297797 5336899\n    test 91 name: test\n    test 92 toUtm: 45 S -20297797 5336899\n    test 93 name: test\n    test 94 toETM5: 45 S -20297797 5336899\n    test 95 copy(<class 'type'>): (<class 'pygeodesy.etm.Etm'>, True)\n    test 96 .name: test\n    test 97 Etm.copy(): (<class 'pygeodesy.etm.Etm'>, True)\n    test 98 .name: test\n    test 99 parse: 31 N 448251 5411932\n    test 100 name: parse\n    test 101 parse: 31 N 448251 5411932\n    test 102 name: parse\n\n    1 of 102 testEtm.py tests (1.0%) FAILED, ALL KNOWN (pygeodesy 26.3.26 Python 3.11.9 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 1.24.2 scipy 1.10.1 Math 2 macOS 26.3.1 isLazy 0 -W  default) 409.798 ms\nrunning /usr/local/bin/p....n3.11 -W default ~/PyGeodesy/test/testEtmTMcoords.py\n\n    testing testEtmTMcoords.py 24.03.22 (module pygeodesy.etm 25.09.15)\n    test 1 line 1 toEtm8.easting: 1548706.791619\n    test 2 line 1 toEtm8.northing: 8451449.198772\n    test 3 line 1 toEtm8.gamma: 43.922790\n    test 4 line 1 toEtm8.scale: 1.029060\n    test 5 line 1 toEtm8.lat: 70.579277\n    test 6 line 1 toEtm8.lon: 45.599420\n    test 7 line 2 toEtm8.easting: 2624150.740929\n    test 8 line 2 toEtm8.northing: 1204434.041605\n    test 9 line 2 toEtm8.gamma: 4.292619\n    test 10 line 2 toEtm8.scale: 1.086051\n    test 11 line 2 toEtm8.lat: 10.018894\n    test 12 line 2 toEtm8.lon: 23.313324\n    test 13 line 3 toEtm8.easting: 9855841.232935\n    test 14 line 3 toEtm8.northing: 6145496.115155\n    test 15 line 3 toEtm8.gamma: 53.348315\n    test 16 line 3 toEtm8.scale: 2.445098\n    test 17 line 3 toEtm8.lat: 19.479896\n    test 18 line 3 toEtm8.lon: 75.662049\n    test 19 line 4 toEtm8.easting: 3206390.691996\n    test 20 line 4 toEtm8.northing: 2650745.400406\n    test 21 line 4 toEtm8.gamma: 11.666950\n    test 22 line 4 toEtm8.scale: 1.129359\n    test 23 line 4 toEtm8.lat: 21.072465\n    test 24 line 4 toEtm8.lon: 29.828684\n    test 25 line 5 toEtm8.easting: 4328154.083501\n    test 26 line 5 toEtm8.northing: 749647.623690\n    test 27 line 5 toEtm8.gamma: 4.024317\n    test 28 line 5 toEtm8.scale: 1.240829\n    test 29 line 5 toEtm8.lat: 5.458957\n    test 30 line 5 toEtm8.lon: 36.385237\n    test 31 line 6 toEtm8.easting: 847598.266514\n    test 32 line 6 toEtm8.northing: 7947180.962440\n    test 33 line 6 toEtm8.gamma: 21.639091\n    test 34 line 6 toEtm8.scale: 1.008399\n    test 35 line 6 toEtm8.lat: 70.175454\n    test 36 line 6 toEtm8.lon: 22.865350\n    test 37 line 7 toEtm8.easting: 2727657.337974\n    test 38 line 7 toEtm8.northing: 8283916.696410\n    test 39 line 7 toEtm8.gamma: 55.690909\n    test 40 line 7 toEtm8.scale: 1.091942\n    test 41 line 7 toEtm8.lat: 61.965605\n    test 42 line 7 toEtm8.lon: 58.931371\n    test 43 line 8 toEtm8.easting: 2331001.751890\n    test 44 line 8 toEtm8.northing: 1313608.224751\n    test 45 line 8 toEtm8.gamma: 4.214690\n    test 46 line 8 toEtm8.scale: 1.067599\n    test 47 line 8 toEtm8.lat: 11.116050\n    test 48 line 8 toEtm8.lon: 20.901069\n    test 49 line 9 toEtm8.easting: 6035557.239480\n    test 50 line 9 toEtm8.northing: 5791770.791879\n    test 51 line 9 toEtm8.gamma: 43.698170\n    test 52 line 9 toEtm8.scale: 1.481260\n    test 53 line 9 toEtm8.lat: 32.210543\n    test 54 line 9 toEtm8.lon: 60.705849\n    test 55 line 10 toEtm8.easting: 1064553.125852\n    test 56 line 10 toEtm8.northing: 9417273.737208\n    test 57 line 10 toEtm8.gamma: 61.100380\n    test 58 line 10 toEtm8.scale: 1.013475\n    test 59 line 10 toEtm8.lat: 79.187451\n    test 60 line 10 toEtm8.lon: 61.532382\n    test 61 line 11 toEtm8.easting: 1400137.116164\n    test 62 line 11 toEtm8.northing: 9616907.017686\n    test 63 line 11 toEtm8.gamma: 74.527087\n    test 64 line 11 toEtm8.scale: 1.023640\n    test 65 line 11 toEtm8.lat: 77.103759\n    test 66 line 11 toEtm8.lon: 74.899105\n    test 67 line 12 toEtm8.easting: 9860691.016626\n    test 68 line 12 toEtm8.northing: 7433039.143328\n    test 69 line 12 toEtm8.gamma: 65.357693\n    test 70 line 12 toEtm8.scale: 2.438973\n    test 71 line 12 toEtm8.lat: 21.889514\n    test 72 line 12 toEtm8.lon: 80.019886\n    test 73 line 13 toEtm8.easting: 8076501.833695\n    test 74 line 13 toEtm8.northing: 8561614.174782\n    test 75 line 13 toEtm8.gamma: 75.073393\n    test 76 line 13 toEtm8.scale: 1.906202\n    test 77 line 13 toEtm8.lat: 30.536296\n    test 78 line 13 toEtm8.lon: 82.186178\n    test 79 line 14 toEtm8.easting: 3335099.866623\n    test 80 line 14 toEtm8.northing: 6740519.084015\n    test 81 line 14 toEtm8.gamma: 40.611821\n    test 82 line 14 toEtm8.scale: 1.139021\n    test 83 line 14 toEtm8.lat: 49.990485\n    test 84 line 14 toEtm8.lon: 48.203179\n    test 85 line 15 toEtm8.easting: 12051574.928500\n    test 86 line 15 toEtm8.northing: 6587213.051951\n    test 87 line 15 toEtm8.gamma: 59.033237\n    test 88 line 15 toEtm8.scale: 3.357469\n    test 89 line 15 toEtm8.lat: 14.486312\n    test 90 line 15 toEtm8.lon: 80.905137\n    test 91 line 16 toEtm8.easting: 5387578.735298\n    test 92 line 16 toEtm8.northing: 4111216.907168\n    test 93 line 16 toEtm8.gamma: 27.574337\n    test 94 line 16 toEtm8.scale: 1.379357\n    test 95 line 16 toEtm8.lat: 25.936824\n    test 96 line 16 toEtm8.lon: 49.913598\n    test 97 line 17 toEtm8.easting: 2622214.380233\n    test 98 line 17 toEtm8.northing: 8678923.984567\n    test 99 line 17 toEtm8.gamma: 61.697275\n    test 100 line 17 toEtm8.scale: 1.084810\n    test 101 line 17 toEtm8.lat: 64.402196\n    test 102 line 17 toEtm8.lon: 64.091395\n    test 103 line 18 toEtm8.easting: 5068474.169633\n    test 104 line 18 toEtm8.northing: 9492066.993709\n    test 105 line 18 toEtm8.gamma: 83.156740\n    test 106 line 18 toEtm8.scale: 1.329990\n    test 107 line 18 toEtm8.lat: 48.451354\n    test 108 line 18 toEtm8.lon: 84.856198\n    test 109 line 19 toEtm8.easting: 738062.047779\n    test 110 line 19 toEtm8.northing: 3031007.074116\n    test 111 line 19 toEtm8.gamma: 3.416802\n    test 112 line 19 toEtm8.scale: 1.006332\n    test 113 line 19 toEtm8.lat: 27.203895\n    test 114 line 19 toEtm8.lon: 7.440229\n    test 115 line 20 toEtm8.easting: 1944413.834565\n    test 116 line 20 toEtm8.northing: 9613299.224493\n    test 117 line 20 toEtm8.gamma: 78.462831\n    test 118 line 20 toEtm8.scale: 1.046134\n    test 119 line 20 toEtm8.lat: 72.509000\n    test 120 line 20 toEtm8.lon: 78.982283\n    test 121 line 21 toEtm8.easting: 2114521.418406\n    test 122 line 21 toEtm8.northing: 4954077.440098\n    test 123 line 21 toEtm8.gamma: 17.571878\n    test 124 line 21 toEtm8.scale: 1.055093\n    test 125 line 21 toEtm8.lat: 41.824954\n    test 126 line 21 toEtm8.lon: 25.392744\n    test 127 line 22 toEtm8.easting: 620365.905090\n    test 128 line 22 toEtm8.northing: 4755542.026562\n    test 129 line 22 toEtm8.gamma: 5.152022\n    test 130 line 22 toEtm8.scale: 1.004338\n    test 131 line 22 toEtm8.lat: 42.701376\n    test 132 line 22 toEtm8.lon: 7.572738\n    test 133 line 23 toEtm8.easting: 263004.770989\n    test 134 line 23 toEtm8.northing: 4493669.762451\n    test 135 line 23 toEtm8.gamma: 2.020523\n    test 136 line 23 toEtm8.scale: 1.000452\n    test 137 line 23 toEtm8.lat: 40.552052\n    test 138 line 23 toEtm8.lon: 3.106056\n    test 139 line 24 toEtm8.easting: 3217221.739462\n    test 140 line 24 toEtm8.northing: 437776.119161\n    test 141 line 24 toEtm8.gamma: 1.848169\n    test 142 line 24 toEtm8.scale: 1.130558\n    test 143 line 24 toEtm8.lat: 3.501242\n    test 144 line 24 toEtm8.lon: 27.806507\n    test 145 line 25 toEtm8.easting: 14661142.444961\n    test 146 line 25 toEtm8.northing: 7476100.824185\n    test 147 line 25 toEtm8.gamma: 68.376669\n    test 148 line 25 toEtm8.scale: 4.896650\n    test 149 line 25 toEtm8.lat: 10.148715\n    test 150 line 25 toEtm8.lon: 85.373768\n    test 151 line 26 toEtm8.easting: 967777.158554\n    test 152 line 26 toEtm8.northing: 6615684.266592\n    test 153 line 26 toEtm8.gamma: 14.410044\n    test 154 line 26 toEtm8.scale: 1.011100\n    test 155 line 26 toEtm8.lat: 58.582623\n    test 156 line 26 toEtm8.lon: 16.755558\n    test 157 line 27 toEtm8.easting: 7558840.728461\n    test 158 line 27 toEtm8.northing: 4144728.130764\n    test 159 line 27 toEtm8.gamma: 32.557264\n    test 160 line 27 toEtm8.scale: 1.791490\n    test 161 line 27 toEtm8.lat: 19.793004\n    test 162 line 27 toEtm8.lon: 61.746763\n    test 163 line 28 toEtm8.easting: 1056008.314161\n    test 164 line 28 toEtm8.northing: 9290799.692669\n    test 165 line 28 toEtm8.gamma: 55.843278\n    test 166 line 28 toEtm8.scale: 1.013253\n    test 167 line 28 toEtm8.lat: 78.666776\n    test 168 line 28 toEtm8.lon: 56.365355\n    test 169 line 29 toEtm8.easting: 1943965.134687\n    test 170 line 29 toEtm8.northing: 1389972.228690\n    test 171 line 29 toEtm8.gamma: 3.774869\n    test 172 line 29 toEtm8.scale: 1.046724\n    test 173 line 29 toEtm8.lat: 11.998788\n    test 174 line 29 toEtm8.lon: 17.597873\n    test 175 line 30 toEtm8.easting: 5803077.072902\n    test 176 line 30 toEtm8.northing: 5649957.943659\n    test 177 line 30 toEtm8.gamma: 41.717943\n    test 178 line 30 toEtm8.scale: 1.442572\n    test 179 line 30 toEtm8.lat: 32.540378\n    test 180 line 30 toEtm8.lon: 58.764613\n    test 181 line 31 toEtm8.easting: 2928716.986009\n    test 182 line 31 toEtm8.northing: 5731835.058317\n    test 183 line 31 toEtm8.gamma: 28.538550\n    test 184 line 31 toEtm8.scale: 1.106780\n    test 185 line 31 toEtm8.lat: 45.160356\n    test 186 line 31 toEtm8.lon: 37.465285\n    test 187 line 32 toEtm8.easting: 326141.975756\n    test 188 line 32 toEtm8.northing: 8881325.164543\n    test 189 line 32 toEtm8.gamma: 16.111415\n    test 190 line 32 toEtm8.scale: 1.000900\n    test 191 line 32 toEtm8.lat: 79.584190\n    test 192 line 32 toEtm8.lon: 16.367006\n    test 193 line 33 toEtm8.easting: 3933015.267450\n    test 194 line 33 toEtm8.northing: 7932373.909512\n    test 195 line 33 toEtm8.gamma: 58.577424\n    test 196 line 33 toEtm8.scale: 1.194811\n    test 197 line 33 toEtm8.lat: 52.470664\n    test 198 line 33 toEtm8.lon: 64.125580\n    test 199 line 34 toEtm8.easting: 8598926.983213\n    test 200 line 34 toEtm8.northing: 6214135.167503\n    test 201 line 34 toEtm8.gamma: 52.612878\n    test 202 line 34 toEtm8.scale: 2.051367\n    test 203 line 34 toEtm8.lat: 23.702673\n    test 204 line 34 toEtm8.lon: 72.630363\n    test 205 line 35 toEtm8.easting: 6620553.333772\n    test 206 line 35 toEtm8.northing: 6540527.122948\n    test 207 line 35 toEtm8.gamma: 52.350140\n    test 208 line 35 toEtm8.scale: 1.586614\n    test 209 line 35 toEtm8.lat: 32.603520\n    test 210 line 35 toEtm8.lon: 67.280123\n    test 211 line 36 toEtm8.easting: 1515136.758292\n    test 212 line 36 toEtm8.northing: 3858996.087537\n    test 213 line 36 toEtm8.gamma: 9.225127\n    test 214 line 36 toEtm8.scale: 1.028029\n    test 215 line 36 toEtm8.lat: 33.776224\n    test 216 line 36 toEtm8.lon: 16.280993\n    test 217 line 37 toEtm8.easting: 479854.373445\n    test 218 line 37 toEtm8.northing: 8980501.389896\n    test 219 line 37 toEtm8.gamma: 25.021222\n    test 220 line 37 toEtm8.scale: 1.002415\n    test 221 line 37 toEtm8.lat: 79.932747\n    test 222 line 37 toEtm8.lon: 25.363622\n    test 223 line 38 toEtm8.easting: 5243446.564940\n    test 224 line 38 toEtm8.northing: 140657.213960\n    test 225 line 38 toEtm8.gamma: 0.862817\n    test 226 line 38 toEtm8.scale: 1.360358\n    test 227 line 38 toEtm8.lat: 0.935056\n    test 228 line 38 toEtm8.lon: 42.538824\n    test 229 line 39 toEtm8.easting: 12806457.923218\n    test 230 line 39 toEtm8.northing: 7170118.684675\n    test 231 line 39 toEtm8.gamma: 64.708921\n    test 232 line 39 toEtm8.scale: 3.740588\n    test 233 line 39 toEtm8.lat: 13.490862\n    test 234 line 39 toEtm8.lon: 83.178380\n    test 235 line 40 toEtm8.easting: 1202993.459158\n    test 236 line 40 toEtm8.northing: 5557316.053599\n    test 237 line 40 toEtm8.gamma: 12.579061\n    test 238 line 40 toEtm8.scale: 1.017426\n    test 239 line 40 toEtm8.lat: 48.979057\n    test 240 line 40 toEtm8.lon: 16.474542\n    test 241 line 41 toEtm8.easting: 1729088.710196\n    test 242 line 41 toEtm8.northing: 7770874.289954\n    test 243 line 41 toEtm8.gamma: 36.021783\n    test 244 line 41 toEtm8.scale: 1.036397\n    test 245 line 41 toEtm8.lat: 65.036016\n    test 246 line 41 toEtm8.lon: 38.729091\n    test 247 line 42 toEtm8.easting: 2437301.517425\n    test 248 line 42 toEtm8.northing: 5539327.748318\n    test 249 line 42 toEtm8.gamma: 23.461879\n    test 250 line 42 toEtm8.scale: 1.073459\n    test 251 line 42 toEtm8.lat: 45.510091\n    test 252 line 42 toEtm8.lon: 31.303729\n    test 253 line 43 toEtm8.easting: 3647186.135066\n    test 254 line 43 toEtm8.northing: 2086412.330983\n    test 255 line 43 toEtm8.gamma: 10.023991\n    test 256 line 43 toEtm8.scale: 1.168707\n    test 257 line 43 toEtm8.lat: 16.058010\n    test 258 line 43 toEtm8.lon: 32.520026\n    test 259 line 44 toEtm8.easting: 1818497.243556\n    test 260 line 44 toEtm8.northing: 4275471.745057\n    test 261 line 44 toEtm8.gamma: 12.499656\n    test 262 line 44 toEtm8.scale: 1.040604\n    test 263 line 44 toEtm8.lat: 36.845200\n    test 264 line 44 toEtm8.lon: 20.282283\n    test 265 line 45 toEtm8.easting: 3751304.113783\n    test 266 line 45 toEtm8.northing: 5130454.001592\n    test 267 line 45 toEtm8.gamma: 28.959707\n    test 268 line 45 toEtm8.scale: 1.177681\n    test 269 line 45 toEtm8.lat: 37.865481\n    test 270 line 45 toEtm8.lon: 41.990402\n    test 271 line 46 toEtm8.easting: 2616733.138544\n    test 272 line 46 toEtm8.northing: 394644.463815\n    test 273 line 46 toEtm8.gamma: 1.390425\n    test 274 line 46 toEtm8.scale: 1.085595\n    test 275 line 46 toEtm8.lat: 3.287272\n    test 276 line 46 toEtm8.lon: 22.917604\n    test 277 line 47 toEtm8.easting: 1756506.573942\n    test 278 line 47 toEtm8.northing: 5570393.986394\n    test 279 line 47 toEtm8.gamma: 17.897894\n    test 280 line 47 toEtm8.scale: 1.037732\n    test 281 line 47 toEtm8.lat: 47.813686\n    test 282 line 47 toEtm8.lon: 23.545092\n    test 283 line 48 toEtm8.easting: 8752461.894711\n    test 284 line 48 toEtm8.northing: 6087728.152284\n    test 285 line 48 toEtm8.gamma: 51.628465\n    test 286 line 48 toEtm8.scale: 2.095465\n    test 287 line 48 toEtm8.lat: 22.836853\n    test 288 line 48 toEtm8.lon: 72.604385\n    test 289 line 49 toEtm8.easting: 1309272.216432\n    test 290 line 49 toEtm8.northing: 59520.028899\n    test 291 line 49 toEtm8.gamma: 0.109069\n    test 292 line 49 toEtm8.scale: 1.020897\n    test 293 line 49 toEtm8.lat: 0.527262\n    test 294 line 49 toEtm8.lon: 11.684209\n    test 295 line 50 toEtm8.easting: 328652.277129\n    test 296 line 50 toEtm8.northing: 2233043.958874\n    test 297 line 50 toEtm8.gamma: 1.084863\n    test 298 line 50 toEtm8.scale: 1.000935\n    test 299 line 50 toEtm8.lat: 20.166742\n    test 300 line 50 toEtm8.lon: 3.143948\n    test 301 line 51 toEtm8.easting: 8637959.716447\n    test 302 line 51 toEtm8.northing: 9190635.156031\n    test 303 line 51 toEtm8.gamma: 81.802563\n    test 304 line 51 toEtm8.scale: 2.054329\n    test 305 line 51 toEtm8.lat: 28.604629\n    test 306 line 51 toEtm8.lon: 85.988721\n    test 307 line 52 toEtm8.easting: 8548521.455147\n    test 308 line 52 toEtm8.northing: 9172410.943282\n    test 309 line 52 toEtm8.gamma: 81.583928\n    test 310 line 52 toEtm8.scale: 2.029641\n    test 311 line 52 toEtm8.lat: 28.984048\n    test 312 line 52 toEtm8.lon: 85.833448\n    test 313 line 53 toEtm8.easting: 796987.281104\n    test 314 line 53 toEtm8.northing: 7677446.357675\n    test 315 line 53 toEtm8.gamma: 18.084472\n    test 316 line 53 toEtm8.scale: 1.007381\n    test 317 line 53 toEtm8.lat: 68.071020\n    test 318 line 53 toEtm8.lon: 19.392823\n    test 319 line 54 toEtm8.easting: 3291036.496762\n    test 320 line 54 toEtm8.northing: 9513199.600666\n    test 321 line 54 toEtm8.gamma: 80.890254\n    test 322 line 54 toEtm8.scale: 1.134826\n    test 323 line 54 toEtm8.lat: 61.416576\n    test 324 line 54 toEtm8.lon: 81.981611\n    test 325 line 55 toEtm8.easting: 7087225.330906\n    test 326 line 55 toEtm8.northing: 8382823.855822\n    test 327 line 55 toEtm8.gamma: 72.253756\n    test 328 line 55 toEtm8.scale: 1.678070\n    test 329 line 55 toEtm8.lat: 35.074753\n    test 330 line 55 toEtm8.lon: 79.496003\n    test 331 line 56 toEtm8.easting: 5090358.125724\n    test 332 line 56 toEtm8.northing: 4318294.133489\n    test 333 line 56 toEtm8.gamma: 28.266280\n    test 334 line 56 toEtm8.scale: 1.336264\n    test 335 line 56 toEtm8.lat: 28.078790\n    test 336 line 56 toEtm8.lon: 48.684350\n\n    test skipped (1): line 57 toEtm8.'84.986930137199 2.067177857261 20163.0752214330146 9438635.9888499043815 2.059277291707588222 .99960496589466017622'\n    test 337 line 58 toEtm8.easting: 3447670.550785\n    test 338 line 58 toEtm8.northing: 3680238.888223\n    test 339 line 58 toEtm8.gamma: 17.934948\n    test 340 line 58 toEtm8.scale: 1.149831\n    test 341 line 58 toEtm8.lat: 28.473948\n    test 342 line 58 toEtm8.lon: 34.127306\n    test 343 line 59 toEtm8.easting: 3396522.906798\n    test 344 line 59 toEtm8.northing: 8093659.687593\n    test 345 line 59 toEtm8.gamma: 57.747117\n    test 346 line 59 toEtm8.scale: 1.144006\n    test 347 line 59 toEtm8.lat: 56.629354\n    test 348 line 59 toEtm8.lon: 62.196474\n    test 349 line 60 toEtm8.easting: 11249894.100784\n    test 350 line 60 toEtm8.northing: 1619226.506299\n    test 351 line 60 toEtm8.gamma: 14.210358\n    test 352 line 60 toEtm8.scale: 3.048347\n    test 353 line 60 toEtm8.lat: 4.747762\n    test 354 line 60 toEtm8.lon: 70.932555\n    test 355 line 61 toEtm8.easting: 6808805.230950\n    test 356 line 61 toEtm8.northing: 8044779.777369\n    test 357 line 61 toEtm8.gamma: 68.242008\n    test 358 line 61 toEtm8.scale: 1.621464\n    test 359 line 61 toEtm8.lat: 35.882113\n    test 360 line 61 toEtm8.lon: 76.741849\n    test 361 line 62 toEtm8.easting: 2306021.556506\n    test 362 line 62 toEtm8.northing: 757191.592866\n    test 363 line 62 toEtm8.gamma: 2.385686\n    test 364 line 62 toEtm8.scale: 1.066159\n    test 365 line 62 toEtm8.lat: 6.420705\n    test 366 line 62 toEtm8.lon: 20.416028\n    test 367 line 63 toEtm8.easting: 1547406.313862\n    test 368 line 63 toEtm8.northing: 6048712.751824\n    test 369 line 63 toEtm8.gamma: 18.474372\n    test 370 line 63 toEtm8.scale: 1.029123\n    test 371 line 63 toEtm8.lat: 52.335248\n    test 372 line 63 toEtm8.lon: 22.879294\n    test 373 line 64 toEtm8.easting: 2430467.650383\n    test 374 line 64 toEtm8.northing: 7557167.613972\n    test 375 line 64 toEtm8.gamma: 42.110021\n    test 376 line 64 toEtm8.scale: 1.072759\n    test 377 line 64 toEtm8.lat: 59.846391\n    test 378 line 64 toEtm8.lon: 46.262536\n    test 379 line 65 toEtm8.easting: 2334053.905830\n    test 380 line 65 toEtm8.northing: 1948076.966582\n    test 381 line 65 toEtm8.gamma: 6.353185\n    test 382 line 65 toEtm8.scale: 1.067733\n    test 383 line 65 toEtm8.lat: 16.461790\n    test 384 line 65 toEtm8.lon: 21.433269\n    test 385 line 66 toEtm8.easting: 5564175.186737\n    test 386 line 66 toEtm8.northing: 1836851.660412\n    test 387 line 66 toEtm8.gamma: 11.870682\n    test 388 line 66 toEtm8.scale: 1.408265\n    test 389 line 66 toEtm8.lat: 11.707905\n    test 390 line 66 toEtm8.lon: 45.827075\n    test 391 line 67 toEtm8.easting: 6118505.590359\n    test 392 line 67 toEtm8.northing: 7631684.552421\n    test 393 line 67 toEtm8.gamma: 62.477323\n    test 394 line 67 toEtm8.scale: 1.493420\n    test 395 line 67 toEtm8.lat: 38.519075\n    test 396 line 67 toEtm8.lon: 71.935918\n    test 397 line 68 toEtm8.easting: 7365359.294665\n    test 398 line 68 toEtm8.northing: 8818194.451531\n    test 399 line 68 toEtm8.gamma: 77.207042\n    test 400 line 68 toEtm8.scale: 1.737639\n    test 401 line 68 toEtm8.lat: 34.264007\n    test 402 line 68 toEtm8.lon: 82.647878\n    test 403 line 69 toEtm8.easting: 36187.342415\n    test 404 line 69 toEtm8.northing: 2142565.324802\n    test 405 line 69 toEtm8.gamma: 0.114334\n    test 406 line 69 toEtm8.scale: 0.999616\n    test 407 line 69 toEtm8.lat: 19.376880\n    test 408 line 69 toEtm8.lon: 0.344605\n    test 409 line 70 toEtm8.easting: 2380328.546851\n    test 410 line 70 toEtm8.northing: 8440109.872384\n    test 411 line 70 toEtm8.gamma: 55.076067\n    test 412 line 70 toEtm8.scale: 1.069658\n    test 413 line 70 toEtm8.lat: 65.075805\n    test 414 line 70 toEtm8.lon: 57.653438\n    test 415 line 71 toEtm8.easting: 582511.608826\n    test 416 line 71 toEtm8.northing: 8876047.217071\n    test 417 line 71 toEtm8.gamma: 27.133300\n    test 418 line 71 toEtm8.scale: 1.003749\n    test 419 line 71 toEtm8.lat: 78.691870\n    test 420 line 71 toEtm8.lon: 27.591736\n    test 421 line 72 toEtm8.easting: 899441.350477\n    test 422 line 72 toEtm8.northing: 4582046.430516\n    test 423 line 72 toEtm8.gamma: 7.031211\n    test 424 line 72 toEtm8.scale: 1.009573\n    test 425 line 72 toEtm8.lat: 40.893022\n    test 426 line 72 toEtm8.lon: 10.668804\n    test 427 line 73 toEtm8.easting: 5022485.124337\n    test 428 line 73 toEtm8.northing: 9741774.933721\n    test 429 line 73 toEtm8.gamma: 86.505947\n    test 430 line 73 toEtm8.scale: 1.323700\n    test 431 line 73 toEtm8.lat: 48.914279\n    test 432 line 73 toEtm8.lon: 87.359268\n    test 433 line 74 toEtm8.easting: 6701004.587204\n    test 434 line 74 toEtm8.northing: 2954368.258231\n    test 435 line 74 toEtm8.gamma: 21.560153\n    test 436 line 74 toEtm8.scale: 1.608554\n    test 437 line 74 toEtm8.lat: 16.208377\n    test 438 line 74 toEtm8.lon: 54.494282\n    test 439 line 75 toEtm8.easting: 454986.218897\n    test 440 line 75 toEtm8.northing: 4885087.887884\n    test 441 line 75 toEtm8.gamma: 3.945648\n    test 442 line 75 toEtm8.scale: 1.002147\n    test 443 line 75 toEtm8.lat: 43.977936\n    test 444 line 75 toEtm8.lon: 5.672541\n    test 445 line 76 toEtm8.easting: 8903956.140311\n    test 446 line 76 toEtm8.northing: 8470608.577482\n    test 447 line 76 toEtm8.gamma: 74.723116\n    test 448 line 76 toEtm8.scale: 2.131311\n    test 449 line 76 toEtm8.lat: 26.850861\n    test 450 line 76 toEtm8.lon: 82.834480\n    test 451 line 77 toEtm8.easting: 1547627.594741\n    test 452 line 77 toEtm8.northing: 6036584.538347\n    test 453 line 77 toEtm8.gamma: 18.407629\n    test 454 line 77 toEtm8.scale: 1.029132\n    test 455 line 77 toEtm8.lat: 52.234165\n    test 456 line 77 toEtm8.lon: 22.827655\n    test 457 line 78 toEtm8.easting: 5221488.778597\n    test 458 line 78 toEtm8.northing: 1762592.044392\n    test 459 line 78 toEtm8.gamma: 10.927880\n    test 460 line 78 toEtm8.scale: 1.356721\n    test 461 line 78 toEtm8.lat: 11.674646\n    test 462 line 78 toEtm8.lon: 43.500147\n    test 463 line 79 toEtm8.easting: 4880570.297161\n    test 464 line 79 toEtm8.northing: 3325433.988867\n    test 465 line 79 toEtm8.gamma: 20.469862\n    test 466 line 79 toEtm8.scale: 1.308476\n    test 467 line 79 toEtm8.lat: 22.492753\n    test 468 line 79 toEtm8.lon: 44.179153\n    test 469 line 80 toEtm8.easting: 23930680.082694\n    test 470 line 80 toEtm8.northing: 7491462.099038\n    test 471 line 80 toEtm8.gamma: 75.937628\n    test 472 line 80 toEtm8.scale: 15.556365\n    test 473 line 80 toEtm8.lat: 0.910999\n    test 474 line 80 toEtm8.lon: 88.548823\n    test 475 line 81 toEtm8.easting: 71519.450458\n    test 476 line 81 toEtm8.northing: 3654740.444852\n    test 477 line 81 toEtm8.gamma: 0.417448\n    test 478 line 81 toEtm8.scale: 0.999663\n    test 479 line 81 toEtm8.lat: 33.028802\n    test 480 line 81 toEtm8.lon: 0.765843\n    test 481 line 82 toEtm8.easting: 4152797.795220\n    test 482 line 82 toEtm8.northing: 7823098.502751\n    test 483 line 82 toEtm8.gamma: 58.238901\n    test 484 line 82 toEtm8.scale: 1.218052\n    test 485 line 82 toEtm8.lat: 50.649195\n    test 486 line 82 toEtm8.lon: 64.389076\n    test 487 line 83 toEtm8.easting: 2926725.707639\n    test 488 line 83 toEtm8.northing: 7904918.072844\n    test 489 line 83 toEtm8.gamma: 51.592748\n    test 490 line 83 toEtm8.scale: 1.106206\n    test 491 line 83 toEtm8.lat: 58.820640\n    test 492 line 83 toEtm8.lon: 55.841048\n    test 493 line 84 toEtm8.easting: 1325509.113869\n    test 494 line 84 toEtm8.northing: 9675214.948213\n    test 495 line 84 toEtm8.gamma: 76.116213\n    test 496 line 84 toEtm8.scale: 1.021136\n    test 497 line 84 toEtm8.lat: 77.865762\n    test 498 line 84 toEtm8.lon: 76.414618\n    test 499 line 85 toEtm8.easting: 3045296.448926\n    test 500 line 85 toEtm8.northing: 542153.443280\n    test 501 line 85 toEtm8.gamma: 2.185095\n    test 502 line 85 toEtm8.scale: 1.116664\n    test 503 line 85 toEtm8.lat: 4.389639\n    test 504 line 85 toEtm8.lon: 26.458976\n    test 505 line 86 toEtm8.easting: 11843870.887518\n    test 506 line 86 toEtm8.northing: 5912803.073343\n    test 507 line 86 toEtm8.gamma: 52.814259\n    test 508 line 86 toEtm8.scale: 3.267256\n    test 509 line 86 toEtm8.lat: 13.924448\n    test 510 line 86 toEtm8.lon: 79.017873\n    test 511 line 87 toEtm8.easting: 8891099.704936\n    test 512 line 87 toEtm8.northing: 162160.142227\n    test 513 line 87 toEtm8.gamma: 1.312094\n    test 514 line 87 toEtm8.scale: 2.157363\n    test 515 line 87 toEtm8.lat: 0.679713\n    test 516 line 87 toEtm8.lon: 62.036792\n    test 517 line 88 toEtm8.easting: 4784814.214449\n    test 518 line 88 toEtm8.northing: 2984497.432580\n    test 519 line 88 toEtm8.gamma: 17.946545\n    test 520 line 88 toEtm8.scale: 1.296116\n    test 521 line 88 toEtm8.lat: 20.478281\n    test 522 line 88 toEtm8.lon: 42.678234\n    test 523 line 89 toEtm8.easting: 1772074.682154\n    test 524 line 89 toEtm8.northing: 9491552.560143\n    test 525 line 89 toEtm8.gamma: 73.634830\n    test 526 line 89 toEtm8.scale: 1.038202\n    test 527 line 89 toEtm8.lat: 73.695703\n    test 528 line 89 toEtm8.lon: 74.259097\n    test 529 line 90 toEtm8.easting: 1907649.782106\n    test 530 line 90 toEtm8.northing: 6994232.429379\n    test 531 line 90 toEtm8.gamma: 29.718929\n    test 532 line 90 toEtm8.scale: 1.044503\n    test 533 line 90 toEtm8.lat: 58.569370\n    test 534 line 90 toEtm8.lon: 33.777549\n    test 535 line 91 toEtm8.easting: 2084423.818962\n    test 536 line 91 toEtm8.northing: 2211816.035619\n    test 537 line 91 toEtm8.gamma: 6.556448\n    test 538 line 91 toEtm8.scale: 1.053793\n    test 539 line 91 toEtm8.lat: 18.933881\n    test 540 line 91 toEtm8.lon: 19.492695\n    test 541 line 92 toEtm8.easting: 1064373.671729\n    test 542 line 92 toEtm8.northing: 7812482.547461\n    test 543 line 92 toEtm8.gamma: 24.874124\n    test 544 line 92 toEtm8.scale: 1.013490\n    test 545 line 92 toEtm8.lat: 68.317934\n    test 546 line 92 toEtm8.lon: 26.515687\n    test 547 line 93 toEtm8.easting: 4770385.479297\n    test 548 line 93 toEtm8.northing: 9734318.902980\n    test 549 line 93 toEtm8.gamma: 86.273119\n    test 550 line 93 toEtm8.scale: 1.290553\n    test 551 line 93 toEtm8.lat: 50.641941\n    test 552 line 93 toEtm8.lon: 87.111557\n    test 553 line 94 toEtm8.easting: 6398096.677297\n    test 554 line 94 toEtm8.northing: 4410894.752104\n    test 555 line 94 toEtm8.gamma: 32.558023\n    test 556 line 94 toEtm8.scale: 1.548004\n    test 557 line 94 toEtm8.lat: 24.411298\n    test 558 line 94 toEtm8.lon: 56.881823\n    test 559 line 95 toEtm8.easting: 3138623.300415\n    test 560 line 95 toEtm8.northing: 3082960.600798\n    test 561 line 95 toEtm8.gamma: 13.557672\n    test 562 line 95 toEtm8.scale: 1.123724\n    test 563 line 95 toEtm8.lat: 24.571871\n    test 564 line 95 toEtm8.lon: 30.073097\n    test 565 line 96 toEtm8.easting: 2748325.794651\n    test 566 line 96 toEtm8.northing: 4202811.912668\n    test 567 line 96 toEtm8.gamma: 17.578706\n    test 568 line 96 toEtm8.scale: 1.094102\n    test 569 line 96 toEtm8.lat: 34.202576\n    test 570 line 96 toEtm8.lon: 29.383166\n    test 571 line 97 toEtm8.easting: 6677830.630367\n    test 572 line 97 toEtm8.northing: 5350071.837395\n    test 573 line 97 toEtm8.gamma: 41.306641\n    test 574 line 97 toEtm8.scale: 1.599774\n    test 575 line 97 toEtm8.lat: 27.756285\n    test 576 line 97 toEtm8.lon: 61.881905\n    test 577 line 98 toEtm8.easting: 5941536.667431\n    test 578 line 98 toEtm8.northing: 3293112.175140\n    test 579 line 98 toEtm8.gamma: 22.752845\n    test 580 line 98 toEtm8.scale: 1.468473\n    test 581 line 98 toEtm8.lat: 19.742270\n    test 582 line 98 toEtm8.lon: 50.957821\n    test 583 line 99 toEtm8.easting: 3152481.792567\n    test 584 line 99 toEtm8.northing: 5903048.837978\n    test 585 line 99 toEtm8.gamma: 31.494606\n    test 586 line 99 toEtm8.scale: 1.124085\n    test 587 line 99 toEtm8.lat: 45.453582\n    test 588 line 99 toEtm8.lon: 40.659833\n    test 589 line 100 toEtm8.easting: 10460475.897730\n    test 590 line 100 toEtm8.northing: 2553463.624391\n    test 591 line 100 toEtm8.gamma: 21.965869\n    test 592 line 100 toEtm8.scale: 2.700296\n    test 593 line 100 toEtm8.lat: 8.322144\n    test 594 line 100 toEtm8.lon: 69.488157\n    test 595 line 101 toEtm8.easting: 1964010.778021\n    test 596 line 101 toEtm8.northing: 5634042.923056\n    test 597 line 101 toEtm8.gamma: 20.117800\n    test 598 line 101 toEtm8.scale: 1.047344\n    test 599 line 101 toEtm8.lat: 47.749831\n    test 600 line 101 toEtm8.lon: 26.322002\n    test 601 line 102 toEtm8.easting: 2065306.424934\n    test 602 line 102 toEtm8.northing: 2135008.468651\n    test 603 line 102 toEtm8.gamma: 6.258981\n    test 604 line 102 toEtm8.scale: 1.052800\n    test 605 line 102 toEtm8.lat: 18.297493\n    test 606 line 102 toEtm8.lon: 19.244669\n    test 607 line 103 toEtm8.easting: 5127738.132976\n    test 608 line 103 toEtm8.northing: 6793804.304411\n    test 609 line 103 toEtm8.gamma: 50.557915\n    test 610 line 103 toEtm8.scale: 1.339412\n    test 611 line 103 toEtm8.lat: 40.834541\n    test 612 line 103 toEtm8.lon: 61.650750\n    test 613 line 104 toEtm8.easting: 8385525.148166\n    test 614 line 104 toEtm8.northing: 6924932.344306\n    test 615 line 104 toEtm8.gamma: 59.087561\n    test 616 line 104 toEtm8.scale: 1.990364\n    test 617 line 104 toEtm8.lat: 26.273247\n    test 618 line 104 toEtm8.lon: 74.926694\n    test 619 line 105 toEtm8.easting: 2297510.791909\n    test 620 line 105 toEtm8.northing: 2805666.962834\n    test 621 line 105 toEtm8.gamma: 9.301553\n    test 622 line 105 toEtm8.scale: 1.065508\n    test 623 line 105 toEtm8.lat: 23.698347\n    test 624 line 105 toEtm8.lon: 22.155657\n    test 625 line 106 toEtm8.easting: 13749544.917635\n    test 626 line 106 toEtm8.northing: 8288728.384650\n    test 627 line 106 toEtm8.gamma: 75.033970\n    test 628 line 106 toEtm8.scale: 4.270588\n    test 629 line 106 toEtm8.lat: 12.364113\n    test 630 line 106 toEtm8.lon: 86.348578\n    test 631 line 107 toEtm8.easting: 317518.455546\n    test 632 line 107 toEtm8.northing: 1097517.583745\n    test 633 line 107 toEtm8.gamma: 0.499004\n    test 634 line 107 toEtm8.scale: 1.000848\n    test 635 line 107 toEtm8.lat: 9.916091\n    test 636 line 107 toEtm8.lon: 2.895277\n    test 637 line 108 toEtm8.easting: 3856035.184888\n    test 638 line 108 toEtm8.northing: 9141364.450290\n    test 639 line 108 toEtm8.gamma: 75.972763\n    test 640 line 108 toEtm8.scale: 1.186786\n    test 641 line 108 toEtm8.lat: 56.553876\n    test 642 line 108 toEtm8.lon: 78.215077\n    test 643 line 109 toEtm8.easting: 1457484.942823\n    test 644 line 109 toEtm8.northing: 9385297.101973\n    test 645 line 109 toEtm8.gamma: 66.784662\n    test 646 line 109 toEtm8.scale: 1.025660\n    test 647 line 109 toEtm8.lat: 75.957631\n    test 648 line 109 toEtm8.lon: 67.407383\n    test 649 line 110 toEtm8.easting: 1304934.901841\n    test 650 line 110 toEtm8.northing: 3604655.155715\n    test 651 line 110 toEtm8.gamma: 7.343989\n    test 652 line 110 toEtm8.scale: 1.020672\n    test 653 line 110 toEtm8.lat: 31.826531\n    test 654 line 110 toEtm8.lon: 13.731050\n    test 655 line 111 toEtm8.easting: 1399093.491792\n    test 656 line 111 toEtm8.northing: 8314607.120342\n    test 657 line 111 toEtm8.gamma: 38.630161\n    test 658 line 111 toEtm8.scale: 1.023625\n    test 659 line 111 toEtm8.lat: 70.542985\n    test 660 line 111 toEtm8.lon: 40.282055\n    test 661 line 112 toEtm8.easting: 356983.618540\n    test 662 line 112 toEtm8.northing: 4282309.048994\n    test 663 line 112 toEtm8.gamma: 2.561485\n    test 664 line 112 toEtm8.scale: 1.001170\n    test 665 line 112 toEtm8.lat: 38.617487\n    test 666 line 112 toEtm8.lon: 4.099838\n    test 667 line 113 toEtm8.easting: 9952911.325091\n    test 668 line 113 toEtm8.northing: 1510288.212229\n    test 669 line 113 toEtm8.gamma: 12.752154\n    test 670 line 113 toEtm8.scale: 2.511357\n    test 671 line 113 toEtm8.lat: 5.389447\n    test 672 line 113 toEtm8.lon: 66.729612\n    test 673 line 114 toEtm8.easting: 6367592.504007\n    test 674 line 114 toEtm8.northing: 1200437.077672\n    test 675 line 114 toEtm8.gamma: 8.338041\n    test 676 line 114 toEtm8.scale: 1.546210\n    test 677 line 114 toEtm8.lat: 6.995168\n    test 678 line 114 toEtm8.lon: 50.014763\n    test 679 line 115 toEtm8.easting: 4391263.676460\n    test 680 line 115 toEtm8.northing: 6325455.989408\n    test 681 line 115 toEtm8.gamma: 42.653541\n    test 682 line 115 toEtm8.scale: 1.245560\n    test 683 line 115 toEtm8.lat: 42.321894\n    test 684 line 115 toEtm8.lon: 53.784040\n    test 685 line 116 toEtm8.easting: 6209880.527527\n    test 686 line 116 toEtm8.northing: 2154754.449747\n    test 687 line 116 toEtm8.gamma: 14.919512\n    test 688 line 116 toEtm8.scale: 1.516560\n    test 689 line 116 toEtm8.lat: 12.698515\n    test 690 line 116 toEtm8.lon: 50.242047\n    test 691 line 117 toEtm8.easting: 1507053.688772\n    test 692 line 117 toEtm8.northing: 6261383.513280\n    test 693 line 117 toEtm8.gamma: 19.280373\n    test 694 line 117 toEtm8.scale: 1.027584\n    test 695 line 117 toEtm8.lat: 54.207636\n    test 696 line 117 toEtm8.lon: 23.325731\n    test 697 line 118 toEtm8.easting: 8332725.003777\n    test 698 line 118 toEtm8.northing: 3002712.329753\n    test 699 line 118 toEtm8.gamma: 24.059212\n    test 700 line 118 toEtm8.scale: 1.990450\n    test 701 line 118 toEtm8.lat: 13.224787\n    test 702 line 118 toEtm8.lon: 62.426698\n    test 703 line 119 toEtm8.easting: 3958910.085235\n    test 704 line 119 toEtm8.northing: 3462284.926102\n    test 705 line 119 toEtm8.gamma: 18.546398\n    test 706 line 119 toEtm8.scale: 1.199351\n    test 707 line 119 toEtm8.lat: 25.650282\n    test 708 line 119 toEtm8.lon: 37.710391\n    test 709 line 120 toEtm8.easting: 10452892.282083\n    test 710 line 120 toEtm8.northing: 8000059.605114\n    test 711 line 120 toEtm8.gamma: 71.075240\n    test 712 line 120 toEtm8.scale: 2.650111\n    test 713 line 120 toEtm8.lat: 20.684773\n    test 714 line 120 toEtm8.lon: 82.849734\n    test 715 line 121 toEtm8.easting: 496148.253731\n    test 716 line 121 toEtm8.northing: 6388503.365043\n    test 717 line 121 toEtm8.gamma: 6.970955\n    test 718 line 121 toEtm8.scale: 1.002620\n    test 719 line 121 toEtm8.lat: 57.367533\n    test 720 line 121 toEtm8.lon: 8.260866\n    test 721 line 122 toEtm8.easting: 7375792.085850\n    test 722 line 122 toEtm8.northing: 5544624.072155\n    test 723 line 122 toEtm8.gamma: 44.510851\n    test 724 line 122 toEtm8.scale: 1.745898\n    test 725 line 122 toEtm8.lat: 25.958757\n    test 726 line 122 toEtm8.lon: 65.760477\n    test 727 line 123 toEtm8.easting: 2826258.041979\n    test 728 line 123 toEtm8.northing: 5167759.816959\n    test 729 line 123 toEtm8.gamma: 23.783897\n    test 730 line 123 toEtm8.scale: 1.099415\n    test 731 line 123 toEtm8.lat: 41.395848\n    test 732 line 123 toEtm8.lon: 33.661790\n    test 733 line 124 toEtm8.easting: 3958563.378851\n    test 734 line 124 toEtm8.northing: 8499923.231243\n    test 735 line 124 toEtm8.gamma: 66.570945\n    test 736 line 124 toEtm8.scale: 1.197296\n    test 737 line 124 toEtm8.lat: 54.266617\n    test 738 line 124 toEtm8.lon: 70.602199\n    test 739 line 125 toEtm8.easting: 4408189.533462\n    test 740 line 125 toEtm8.northing: 8046312.003642\n    test 741 line 125 toEtm8.gamma: 62.216959\n    test 742 line 125 toEtm8.scale: 1.246750\n    test 743 line 125 toEtm8.lat: 49.840393\n    test 744 line 125 toEtm8.lon: 68.036728\n    test 745 line 126 toEtm8.easting: 3629225.627512\n    test 746 line 126 toEtm8.northing: 6371258.454645\n    test 747 line 126 toEtm8.gamma: 38.881675\n    test 748 line 126 toEtm8.scale: 1.165511\n    test 749 line 126 toEtm8.lat: 46.306035\n    test 750 line 126 toEtm8.lon: 48.085828\n    test 751 line 127 toEtm8.easting: 602838.450710\n    test 752 line 127 toEtm8.northing: 4851370.637205\n    test 753 line 127 toEtm8.gamma: 5.160395\n    test 754 line 127 toEtm8.scale: 1.004073\n    test 755 line 127 toEtm8.lat: 43.570988\n    test 756 line 127 toEtm8.lon: 7.464494\n    test 757 line 128 toEtm8.easting: 764616.665051\n    test 758 line 128 toEtm8.northing: 2164299.337945\n    test 759 line 128 toEtm8.gamma: 2.429300\n    test 760 line 128 toEtm8.scale: 1.006835\n    test 761 line 128 toEtm8.lat: 19.427290\n    test 762 line 128 toEtm8.lon: 7.268247\n    test 763 line 129 toEtm8.easting: 5048953.021931\n    test 764 line 129 toEtm8.northing: 1885974.057398\n    test 765 line 129 toEtm8.gamma: 11.459804\n    test 766 line 129 toEtm8.scale: 1.332207\n    test 767 line 129 toEtm8.lat: 12.713794\n    test 768 line 129 toEtm8.lon: 42.507018\n    test 769 line 130 toEtm8.easting: 2293996.601155\n    test 770 line 130 toEtm8.northing: 2392408.644221\n    test 771 line 130 toEtm8.gamma: 7.791838\n    test 772 line 130 toEtm8.scale: 1.065348\n    test 773 line 130 toEtm8.lat: 20.238782\n    test 774 line 130 toEtm8.lon: 21.566068\n    test 775 line 131 toEtm8.easting: 1530603.839418\n    test 776 line 131 toEtm8.northing: 7287841.459898\n    test 777 line 131 toEtm8.gamma: 27.502921\n    test 778 line 131 toEtm8.scale: 1.028416\n    test 779 line 131 toEtm8.lat: 62.367847\n    test 780 line 131 toEtm8.lon: 30.438849\n    test 781 line 132 toEtm8.easting: 2660000.093152\n    test 782 line 132 toEtm8.northing: 5161982.213248\n    test 783 line 132 toEtm8.gamma: 22.629836\n    test 784 line 132 toEtm8.scale: 1.087851\n    test 785 line 132 toEtm8.lat: 41.891569\n    test 786 line 132 toEtm8.lon: 31.959547\n    test 787 line 133 toEtm8.easting: 5037478.329414\n    test 788 line 133 toEtm8.northing: 8768172.379908\n    test 789 line 133 toEtm8.gamma: 73.511182\n    test 790 line 133 toEtm8.scale: 1.325919\n    test 791 line 133 toEtm8.lat: 47.664248\n    test 792 line 133 toEtm8.lon: 77.630062\n    test 793 line 134 toEtm8.easting: 2289650.957799\n    test 794 line 134 toEtm8.northing: 8784328.593607\n    test 795 line 134 toEtm8.gamma: 60.786067\n    test 796 line 134 toEtm8.scale: 1.064346\n    test 797 line 134 toEtm8.lat: 67.259559\n    test 798 line 134 toEtm8.lon: 62.715293\n    test 799 line 135 toEtm8.easting: 647913.889744\n    test 800 line 135 toEtm8.northing: 6742382.228217\n    test 801 line 135 toEtm8.gamma: 10.252667\n    test 802 line 135 toEtm8.scale: 1.004748\n    test 803 line 135 toEtm8.lat: 60.295381\n    test 804 line 135 toEtm8.lon: 11.763097\n    test 805 line 136 toEtm8.easting: 1118372.698566\n    test 806 line 136 toEtm8.northing: 9040627.942263\n    test 807 line 136 toEtm8.gamma: 48.936803\n    test 808 line 136 toEtm8.scale: 1.014920\n    test 809 line 136 toEtm8.lat: 76.878914\n    test 810 line 136 toEtm8.lon: 49.685773\n    test 811 line 137 toEtm8.easting: 440696.510070\n    test 812 line 137 toEtm8.northing: 5500355.826297\n    test 813 line 137 toEtm8.gamma: 4.636104\n    test 814 line 137 toEtm8.scale: 1.001986\n    test 815 line 137 toEtm8.lat: 49.495349\n    test 816 line 137 toEtm8.lon: 6.087551\n    test 817 line 138 toEtm8.easting: 601728.149727\n    test 818 line 138 toEtm8.northing: 9095352.048149\n    test 819 line 138 toEtm8.gamma: 33.435771\n    test 820 line 138 toEtm8.scale: 1.004027\n    test 821 line 138 toEtm8.lat: 80.297265\n    test 822 line 138 toEtm8.lon: 33.816372\n    test 823 line 139 toEtm8.easting: 3481444.777827\n    test 824 line 139 toEtm8.northing: 291665.708749\n    test 825 line 139 toEtm8.gamma: 1.314726\n    test 826 line 139 toEtm8.scale: 1.153534\n    test 827 line 139 toEtm8.lat: 2.286437\n    test 828 line 139 toEtm8.lon: 29.855149\n    test 829 line 140 toEtm8.easting: 3515304.901524\n    test 830 line 140 toEtm8.northing: 1443981.882918\n    test 831 line 140 toEtm8.gamma: 6.641638\n    test 832 line 140 toEtm8.scale: 1.156509\n    test 833 line 140 toEtm8.lat: 11.264457\n    test 834 line 140 toEtm8.lon: 30.743907\n    test 835 line 141 toEtm8.easting: 160012.186959\n    test 836 line 141 toEtm8.northing: 3922609.253231\n    test 837 line 141 toEtm8.gamma: 1.022225\n    test 838 line 141 toEtm8.scale: 0.999916\n    test 839 line 141 toEtm8.lat: 35.434073\n    test 840 line 141 toEtm8.lon: 1.762795\n    test 841 line 142 toEtm8.easting: 4163744.245622\n    test 842 line 142 toEtm8.northing: 936884.674804\n    test 843 line 142 toEtm8.gamma: 4.892559\n    test 844 line 142 toEtm8.scale: 1.222164\n    test 845 line 142 toEtm8.lat: 6.923695\n    test 846 line 142 toEtm8.lon: 35.289456\n    test 847 line 143 toEtm8.easting: 6155200.017926\n    test 848 line 143 toEtm8.northing: 6926306.628390\n    test 849 line 143 toEtm8.gamma: 55.103258\n    test 850 line 143 toEtm8.scale: 1.500556\n    test 851 line 143 toEtm8.lat: 36.129672\n    test 852 line 143 toEtm8.lon: 67.533176\n    test 853 line 144 toEtm8.easting: 16263383.285440\n    test 854 line 144 toEtm8.northing: 3591296.731341\n    test 855 line 144 toEtm8.gamma: 36.040254\n    test 856 line 144 toEtm8.scale: 6.589288\n    test 857 line 144 toEtm8.lat: 4.406529\n    test 858 line 144 toEtm8.lon: 81.965734\n    test 859 line 145 toEtm8.easting: 14220995.515398\n    test 860 line 145 toEtm8.northing: 5100587.457503\n    test 861 line 145 toEtm8.gamma: 47.314258\n    test 862 line 145 toEtm8.scale: 4.693202\n    test 863 line 145 toEtm8.lat: 8.474589\n    test 864 line 145 toEtm8.lon: 81.129945\n    test 865 line 146 toEtm8.easting: 3173034.802372\n    test 866 line 146 toEtm8.northing: 7263421.942957\n    test 867 line 146 toEtm8.gamma: 45.215808\n    test 868 line 146 toEtm8.scale: 1.125410\n    test 869 line 146 toEtm8.lat: 53.907276\n    test 870 line 146 toEtm8.lon: 51.252904\n    test 871 line 147 toEtm8.easting: 10253274.092204\n    test 872 line 147 toEtm8.northing: 8867574.299792\n    test 873 line 147 toEtm8.gamma: 79.198250\n    test 874 line 147 toEtm8.scale: 2.572372\n    test 875 line 147 toEtm8.lat: 22.120545\n    test 876 line 147 toEtm8.lon: 85.756782\n    test 877 line 148 toEtm8.easting: 2415561.483230\n    test 878 line 148 toEtm8.northing: 8813225.217097\n    test 879 line 148 toEtm8.gamma: 62.548978\n    test 880 line 148 toEtm8.scale: 1.071748\n    test 881 line 148 toEtm8.lat: 66.444100\n    test 882 line 148 toEtm8.lon: 64.532960\n    test 883 line 149 toEtm8.easting: 9589179.293295\n    test 884 line 149 toEtm8.northing: 1777680.784143\n    test 885 line 149 toEtm8.gamma: 14.838483\n    test 886 line 149 toEtm8.scale: 2.380716\n    test 887 line 149 toEtm8.lat: 6.670965\n    test 888 line 149 toEtm8.lon: 65.660408\n    test 889 line 150 toEtm8.easting: 727939.438391\n    test 890 line 150 toEtm8.northing: 3684363.236810\n    test 891 line 150 toEtm8.gamma: 4.266227\n    test 892 line 150 toEtm8.scale: 1.006140\n    test 893 line 150 toEtm8.lat: 33.054057\n    test 894 line 150 toEtm8.lon: 7.787458\n    test 895 line 151 toEtm8.easting: 1250765.991085\n    test 896 line 151 toEtm8.northing: 792869.242719\n    test 897 line 151 toEtm8.gamma: 1.396497\n    test 898 line 151 toEtm8.scale: 1.019026\n    test 899 line 151 toEtm8.lat: 7.035525\n    test 900 line 151 toEtm8.lon: 11.253707\n    test 901 line 152 toEtm8.easting: 710421.705887\n    test 902 line 152 toEtm8.northing: 5019406.075928\n    test 903 line 152 toEtm8.gamma: 6.393949\n    test 904 line 152 toEtm8.scale: 1.005812\n    test 905 line 152 toEtm8.lat: 44.971340\n    test 906 line 152 toEtm8.lon: 9.009304\n    test 907 line 153 toEtm8.easting: 4600995.074643\n    test 908 line 153 toEtm8.northing: 4505712.084593\n    test 909 line 153 toEtm8.gamma: 27.997458\n    test 910 line 153 toEtm8.scale: 1.271841\n    test 911 line 153 toEtm8.lat: 30.821397\n    test 912 line 153 toEtm8.lon: 45.970577\n    test 913 line 154 toEtm8.easting: 557642.627782\n    test 914 line 154 toEtm8.northing: 7006911.251644\n    test 915 line 154 toEtm8.gamma: 9.769903\n    test 916 line 154 toEtm8.scale: 1.003411\n    test 917 line 154 toEtm8.lat: 62.763886\n    test 918 line 154 toEtm8.lon: 10.960144\n    test 919 line 155 toEtm8.easting: 4635062.294291\n    test 920 line 155 toEtm8.northing: 2702556.153311\n    test 921 line 155 toEtm8.gamma: 15.779547\n    test 922 line 155 toEtm8.scale: 1.277178\n    test 923 line 155 toEtm8.lat: 18.888611\n    test 924 line 155 toEtm8.lon: 41.009871\n    test 925 line 156 toEtm8.easting: 14554962.255919\n    test 926 line 156 toEtm8.northing: 4716639.908572\n    test 927 line 156 toEtm8.gamma: 44.192751\n    test 928 line 156 toEtm8.scale: 4.960020\n    test 929 line 156 toEtm8.lat: 7.524119\n    test 930 line 156 toEtm8.lon: 81.050715\n    test 931 line 157 toEtm8.easting: 882126.661736\n    test 932 line 157 toEtm8.northing: 7947612.369506\n    test 933 line 157 toEtm8.gamma: 22.429487\n    test 934 line 157 toEtm8.scale: 1.009132\n    test 935 line 157 toEtm8.lat: 70.063902\n    test 936 line 157 toEtm8.lon: 23.705255\n    test 937 line 158 toEtm8.easting: 20262021.645983\n    test 938 line 158 toEtm8.northing: 8113827.820796\n    test 939 line 158 toEtm8.gamma: 76.936057\n    test 940 line 158 toEtm8.scale: 10.349092\n    test 941 line 158 toEtm8.lat: 3.556526\n    test 942 line 158 toEtm8.lon: 88.363529\n    test 943 line 159 toEtm8.easting: 6500508.399850\n    test 944 line 159 toEtm8.northing: 6956476.342368\n    test 945 line 159 toEtm8.gamma: 56.237116\n    test 946 line 159 toEtm8.scale: 1.563162\n    test 947 line 159 toEtm8.lat: 34.551257\n    test 948 line 159 toEtm8.lon: 69.111091\n    test 949 line 160 toEtm8.easting: 3884036.641314\n    test 950 line 160 toEtm8.northing: 6890167.411733\n    test 951 line 160 toEtm8.gamma: 45.760130\n    test 952 line 160 toEtm8.scale: 1.190167\n    test 953 line 160 toEtm8.lat: 47.929051\n    test 954 line 160 toEtm8.lon: 54.103418\n    test 955 line 161 toEtm8.easting: 217855.546078\n    test 956 line 161 toEtm8.northing: 6184108.122568\n    test 957 line 161 toEtm8.gamma: 2.870993\n    test 958 line 161 toEtm8.scale: 1.000182\n    test 959 line 161 toEtm8.lat: 55.753536\n    test 960 line 161 toEtm8.lon: 3.471798\n    test 961 line 162 toEtm8.easting: 11384139.290402\n    test 962 line 162 toEtm8.northing: 8893889.949556\n    test 963 line 162 toEtm8.gamma: 79.774854\n    test 964 line 162 toEtm8.scale: 3.024672\n    test 965 line 162 toEtm8.lat: 18.530847\n    test 966 line 162 toEtm8.lon: 86.555312\n    test 967 line 163 toEtm8.easting: 3469855.989805\n    test 968 line 163 toEtm8.northing: 7723193.799228\n    test 969 line 163 toEtm8.gamma: 53.114700\n    test 970 line 163 toEtm8.scale: 1.150540\n    test 971 line 163 toEtm8.lat: 54.510125\n    test 972 line 163 toEtm8.lon: 58.556056\n    test 973 line 164 toEtm8.easting: 5926165.994939\n    test 974 line 164 toEtm8.northing: 9385463.732747\n    test 975 line 164 toEtm8.gamma: 82.506981\n    test 976 line 164 toEtm8.scale: 1.459758\n    test 977 line 164 toEtm8.lat: 42.864162\n    test 978 line 164 toEtm8.lon: 84.866326\n    test 979 line 165 toEtm8.easting: 5798639.662224\n    test 980 line 165 toEtm8.northing: 5305387.640916\n    test 981 line 165 toEtm8.gamma: 38.617257\n    test 982 line 165 toEtm8.scale: 1.442263\n    test 983 line 165 toEtm8.lat: 30.911943\n    test 984 line 165 toEtm8.lon: 57.114102\n    test 985 line 166 toEtm8.easting: 9464.934388\n    test 986 line 166 toEtm8.northing: 6489121.624944\n    test 987 line 166 toEtm8.gamma: 0.138696\n    test 988 line 166 toEtm8.scale: 0.999601\n    test 989 line 166 toEtm8.lat: 58.542493\n    test 990 line 166 toEtm8.lon: 0.162593\n    test 991 line 167 toEtm8.easting: 12575834.275614\n    test 992 line 167 toEtm8.northing: 8356610.895486\n    test 993 line 167 toEtm8.gamma: 75.235223\n    test 994 line 167 toEtm8.scale: 3.599442\n    test 995 line 167 toEtm8.lat: 15.022689\n    test 996 line 167 toEtm8.lon: 85.792615\n    test 997 line 168 toEtm8.easting: 2719653.543469\n    test 998 line 168 toEtm8.northing: 9362389.163495\n    test 999 line 168 toEtm8.gamma: 76.049670\n    test 1000 line 168 toEtm8.scale: 1.091315\n    test 1001 line 168 toEtm8.lat: 65.692275\n    test 1002 line 168 toEtm8.lon: 77.241377\n    test 1003 line 169 toEtm8.easting: 4845341.924698\n    test 1004 line 169 toEtm8.northing: 8710522.326901\n    test 1005 line 169 toEtm8.gamma: 72.320942\n    test 1006 line 169 toEtm8.scale: 1.300382\n    test 1007 line 169 toEtm8.lat: 48.806211\n    test 1008 line 169 toEtm8.lon: 76.486365\n    test 1009 line 170 toEtm8.easting: 3935261.522763\n    test 1010 line 170 toEtm8.northing: 9454271.649062\n    test 1011 line 170 toEtm8.gamma: 81.162334\n    test 1012 line 170 toEtm8.scale: 1.194767\n    test 1013 line 170 toEtm8.lat: 56.436025\n    test 1014 line 170 toEtm8.lon: 82.611568\n    test 1015 line 171 toEtm8.easting: 7074299.823000\n    test 1016 line 171 toEtm8.northing: 1648736.065055\n    test 1017 line 171 toEtm8.gamma: 12.145925\n    test 1018 line 171 toEtm8.scale: 1.687551\n    test 1019 line 171 toEtm8.lat: 8.766053\n    test 1020 line 171 toEtm8.lon: 54.367539\n    test 1021 line 172 toEtm8.easting: 3689072.579308\n    test 1022 line 172 toEtm8.northing: 2230802.665211\n    test 1023 line 172 toEtm8.gamma: 10.856248\n    test 1024 line 172 toEtm8.scale: 1.172689\n    test 1025 line 172 toEtm8.lat: 17.095495\n    test 1026 line 172 toEtm8.lon: 33.059128\n    test 1027 line 173 toEtm8.easting: 8102565.885587\n    test 1028 line 173 toEtm8.northing: 5167396.617580\n    test 1029 line 173 toEtm8.gamma: 42.324886\n    test 1030 line 173 toEtm8.scale: 1.921927\n    test 1031 line 173 toEtm8.lat: 22.142861\n    test 1032 line 173 toEtm8.lon: 67.200684\n    test 1033 line 174 toEtm8.easting: 8181271.353564\n    test 1034 line 174 toEtm8.northing: 4425436.547185\n    test 1035 line 174 toEtm8.gamma: 35.900845\n    test 1036 line 174 toEtm8.scale: 1.945017\n    test 1037 line 174 toEtm8.lat: 19.222623\n    test 1038 line 174 toEtm8.lon: 65.180785\n    test 1039 line 175 toEtm8.easting: 767067.394003\n    test 1040 line 175 toEtm8.northing: 3701745.857296\n    test 1041 line 175 toEtm8.gamma: 4.519201\n    test 1042 line 175 toEtm8.scale: 1.006863\n    test 1043 line 175 toEtm8.lat: 33.182474\n    test 1044 line 175 toEtm8.lon: 8.216952\n    test 1045 line 176 toEtm8.easting: 6688114.168572\n    test 1046 line 176 toEtm8.northing: 2052857.299639\n    test 1047 line 176 toEtm8.gamma: 14.766191\n    test 1048 line 176 toEtm8.scale: 1.607200\n    test 1049 line 176 toEtm8.lat: 11.417963\n    test 1050 line 176 toEtm8.lon: 52.808691\n    test 1051 line 177 toEtm8.easting: 5608408.773761\n    test 1052 line 177 toEtm8.northing: 3859055.659110\n    test 1053 line 177 toEtm8.gamma: 26.244151\n    test 1054 line 177 toEtm8.scale: 1.413463\n    test 1055 line 177 toEtm8.lat: 23.836688\n    test 1056 line 177 toEtm8.lon: 50.500180\n    test 1057 line 178 toEtm8.easting: 3836942.765275\n    test 1058 line 178 toEtm8.northing: 6415467.634326\n    test 1059 line 178 toEtm8.gamma: 40.575885\n    test 1060 line 178 toEtm8.scale: 1.185615\n    test 1061 line 178 toEtm8.lat: 45.550020\n    test 1062 line 178 toEtm8.lon: 50.148036\n    test 1063 line 179 toEtm8.easting: 1298730.366025\n    test 1064 line 179 toEtm8.northing: 6021453.000792\n    test 1065 line 179 toEtm8.gamma: 15.613320\n    test 1066 line 179 toEtm8.scale: 1.020367\n    test 1067 line 179 toEtm8.lat: 52.746079\n    test 1068 line 179 toEtm8.lon: 19.343926\n    test 1069 line 180 toEtm8.easting: 416934.289208\n    test 1070 line 180 toEtm8.northing: 7295683.451705\n    test 1071 line 180 toEtm8.gamma: 8.238232\n    test 1072 line 180 toEtm8.scale: 1.001729\n    test 1073 line 180 toEtm8.lat: 65.513348\n    test 1074 line 180 toEtm8.lon: 9.039529\n    test 1075 line 181 toEtm8.easting: 4336076.850889\n    test 1076 line 181 toEtm8.northing: 7617975.722779\n    test 1077 line 181 toEtm8.gamma: 56.537088\n    test 1078 line 181 toEtm8.scale: 1.238582\n    test 1079 line 181 toEtm8.lat: 48.709795\n    test 1080 line 181 toEtm8.lon: 63.554005\n    test 1081 line 182 toEtm8.easting: 168047.336980\n    test 1082 line 182 toEtm8.northing: 2185000.046530\n    test 1083 line 182 toEtm8.gamma: 0.542187\n    test 1084 line 182 toEtm8.scale: 0.999949\n    test 1085 line 182 toEtm8.lat: 19.753509\n    test 1086 line 182 toEtm8.lon: 1.603846\n    test 1087 line 183 toEtm8.easting: 8276281.328790\n    test 1088 line 183 toEtm8.northing: 263444.350545\n    test 1089 line 183 toEtm8.gamma: 2.071435\n    test 1090 line 183 toEtm8.scale: 1.980314\n    test 1091 line 183 toEtm8.lat: 1.202816\n    test 1092 line 183 toEtm8.lon: 59.377276\n    test 1093 line 184 toEtm8.easting: 4772573.810710\n    test 1094 line 184 toEtm8.northing: 6765710.336002\n    test 1095 line 184 toEtm8.gamma: 48.857561\n    test 1096 line 184 toEtm8.scale: 1.291911\n    test 1097 line 184 toEtm8.lat: 42.564975\n    test 1098 line 184 toEtm8.lon: 59.356947\n    test 1099 line 185 toEtm8.easting: 5427755.074639\n    test 1100 line 185 toEtm8.northing: 1556055.820924\n    test 1101 line 185 toEtm8.gamma: 9.862178\n    test 1102 line 185 toEtm8.scale: 1.387394\n    test 1103 line 185 toEtm8.lat: 10.090572\n    test 1104 line 185 toEtm8.lon: 44.604132\n    test 1105 line 186 toEtm8.easting: 11588458.616041\n    test 1106 line 186 toEtm8.northing: 5707993.922613\n    test 1107 line 186 toEtm8.gamma: 50.784827\n    test 1108 line 186 toEtm8.scale: 3.149567\n    test 1109 line 186 toEtm8.lat: 14.133028\n    test 1110 line 186 toEtm8.lon: 78.097533\n    test 1111 line 187 toEtm8.easting: 7152433.802688\n    test 1112 line 187 toEtm8.northing: 761390.695844\n    test 1113 line 187 toEtm8.gamma: 5.607350\n    test 1114 line 187 toEtm8.scale: 1.705261\n    test 1115 line 187 toEtm8.lat: 4.031123\n    test 1116 line 187 toEtm8.lon: 54.048782\n    test 1117 line 188 toEtm8.easting: 3105651.390901\n    test 1118 line 188 toEtm8.northing: 9426026.169064\n    test 1119 line 188 toEtm8.gamma: 78.750206\n    test 1120 line 188 toEtm8.scale: 1.119737\n    test 1121 line 188 toEtm8.lat: 62.746603\n    test 1122 line 188 toEtm8.lon: 79.968641\n    test 1123 line 189 toEtm8.easting: 2959009.639022\n    test 1124 line 189 toEtm8.northing: 8339242.269282\n    test 1125 line 189 toEtm8.gamma: 58.460865\n    test 1126 line 189 toEtm8.scale: 1.108554\n    test 1127 line 189 toEtm8.lat: 60.626429\n    test 1128 line 189 toEtm8.lon: 61.851551\n    test 1129 line 190 toEtm8.easting: 8640472.267145\n    test 1130 line 190 toEtm8.northing: 6230320.417931\n    test 1131 line 190 toEtm8.gamma: 52.816810\n    test 1132 line 190 toEtm8.scale: 2.062973\n    test 1133 line 190 toEtm8.lat: 23.600626\n    test 1134 line 190 toEtm8.lon: 72.811634\n    test 1135 line 191 toEtm8.easting: 811352.108932\n    test 1136 line 191 toEtm8.northing: 9816129.813481\n    test 1137 line 191 toEtm8.gamma: 77.299184\n    test 1138 line 191 toEtm8.scale: 1.007651\n    test 1139 line 191 toEtm8.lat: 82.572236\n    test 1140 line 191 toEtm8.lon: 77.402323\n    test 1141 line 192 toEtm8.easting: 6521874.973458\n    test 1142 line 192 toEtm8.northing: 1053612.479744\n    test 1143 line 192 toEtm8.gamma: 7.407328\n    test 1144 line 192 toEtm8.scale: 1.575529\n    test 1145 line 192 toEtm8.lat: 6.030051\n    test 1146 line 192 toEtm8.lon: 50.783505\n    test 1147 line 193 toEtm8.easting: 3477983.997875\n    test 1148 line 193 toEtm8.northing: 5651613.325947\n    test 1149 line 193 toEtm8.gamma: 31.530673\n    test 1150 line 193 toEtm8.scale: 1.151875\n    test 1151 line 193 toEtm8.lat: 42.411523\n    test 1152 line 193 toEtm8.lon: 42.258009\n    test 1153 line 194 toEtm8.easting: 629892.822243\n    test 1154 line 194 toEtm8.northing: 3283914.910451\n    test 1155 line 194 toEtm8.gamma: 3.210482\n    test 1156 line 194 toEtm8.scale: 1.004499\n    test 1157 line 194 toEtm8.lat: 29.526120\n    test 1158 line 194 toEtm8.lon: 6.493069\n    test 1159 line 195 toEtm8.easting: 3381879.687227\n    test 1160 line 195 toEtm8.northing: 5103629.325665\n    test 1161 line 195 toEtm8.gamma: 26.748108\n    test 1162 line 195 toEtm8.scale: 1.143559\n    test 1163 line 195 toEtm8.lat: 39.021853\n    test 1164 line 195 toEtm8.lon: 38.641779\n    test 1165 line 196 toEtm8.easting: 2815986.534177\n    test 1166 line 196 toEtm8.northing: 9387029.120718\n    test 1167 line 196 toEtm8.gamma: 76.967262\n    test 1168 line 196 toEtm8.scale: 1.098032\n    test 1169 line 196 toEtm8.lat: 64.971850\n    test 1170 line 196 toEtm8.lon: 78.151893\n    test 1171 line 197 toEtm8.easting: 3398195.889603\n    test 1172 line 197 toEtm8.northing: 9138936.031490\n    test 1173 line 197 toEtm8.gamma: 74.477499\n    test 1174 line 197 toEtm8.scale: 1.144009\n    test 1175 line 197 toEtm8.lat: 59.961819\n    test 1176 line 197 toEtm8.lon: 76.473422\n    test 1177 line 198 toEtm8.easting: 2421734.754637\n    test 1178 line 198 toEtm8.northing: 5002372.094991\n    test 1179 line 198 toEtm8.gamma: 20.017082\n    test 1180 line 198 toEtm8.scale: 1.072592\n    test 1181 line 198 toEtm8.lat: 41.374040\n    test 1182 line 198 toEtm8.lon: 28.848343\n    test 1183 line 199 toEtm8.easting: 2360869.895525\n    test 1184 line 199 toEtm8.northing: 9553298.449536\n    test 1185 line 199 toEtm8.gamma: 78.848205\n    test 1186 line 199 toEtm8.scale: 1.068453\n    test 1187 line 199 toEtm8.lat: 68.946087\n    test 1188 line 199 toEtm8.lon: 79.574523\n    test 1189 line 200 toEtm8.easting: 1196539.972194\n    test 1190 line 200 toEtm8.northing: 9861920.836230\n    test 1191 line 200 toEtm8.gamma: 83.437668\n    test 1192 line 200 toEtm8.scale: 1.017137\n    test 1193 line 200 toEtm8.lat: 79.275096\n    test 1194 line 200 toEtm8.lon: 83.551272\n    test 1195 line 201 toEtm8.easting: 1327758.704795\n    test 1196 line 201 toEtm8.northing: 2375509.241683\n    test 1197 line 201 toEtm8.gamma: 4.617572\n    test 1198 line 201 toEtm8.scale: 1.021465\n    test 1199 line 201 toEtm8.lat: 21.000252\n    test 1200 line 201 toEtm8.lon: 12.697444\n    test 1201 line 202 toEtm8.easting: 2070860.327644\n    test 1202 line 202 toEtm8.northing: 8604500.719581\n    test 1203 line 202 toEtm8.gamma: 54.722761\n    test 1204 line 202 toEtm8.scale: 1.052469\n    test 1205 line 202 toEtm8.lat: 68.015227\n    test 1206 line 202 toEtm8.lon: 56.732419\n    test 1207 line 203 toEtm8.easting: 6564776.654864\n    test 1208 line 203 toEtm8.northing: 8171207.177379\n    test 1209 line 203 toEtm8.gamma: 69.237523\n    test 1210 line 203 toEtm8.scale: 1.573894\n    test 1211 line 203 toEtm8.lat: 37.423675\n    test 1212 line 203 toEtm8.lon: 76.947359\n    test 1213 line 204 toEtm8.easting: 592653.553821\n    test 1214 line 204 toEtm8.northing: 6125529.810052\n    test 1215 line 204 toEtm8.gamma: 7.600785\n    test 1216 line 204 toEtm8.scale: 1.003912\n    test 1217 line 204 toEtm8.lat: 54.922707\n    test 1218 line 204 toEtm8.lon: 9.260818\n    test 1219 line 205 toEtm8.easting: 693459.671821\n    test 1220 line 205 toEtm8.northing: 6943779.991032\n    test 1221 line 205 toEtm8.gamma: 11.787587\n    test 1222 line 205 toEtm8.scale: 1.005496\n    test 1223 line 205 toEtm8.lat: 61.982810\n    test 1224 line 205 toEtm8.lon: 13.299659\n    test 1225 line 206 toEtm8.easting: 1838956.187625\n    test 1226 line 206 toEtm8.northing: 3511959.612381\n    test 1227 line 206 toEtm8.gamma: 9.844313\n    test 1228 line 206 toEtm8.scale: 1.041603\n    test 1229 line 206 toEtm8.lat: 30.324214\n    test 1230 line 206 toEtm8.lon: 18.959769\n    test 1231 line 207 toEtm8.easting: 4460690.884597\n    test 1232 line 207 toEtm8.northing: 5541873.235403\n    test 1233 line 207 toEtm8.gamma: 35.768613\n    test 1234 line 207 toEtm8.scale: 1.254179\n    test 1235 line 207 toEtm8.lat: 37.629667\n    test 1236 line 207 toEtm8.lon: 49.649131\n    test 1237 line 208 toEtm8.easting: 2311168.998941\n    test 1238 line 208 toEtm8.northing: 9480561.869119\n    test 1239 line 208 toEtm8.gamma: 76.828257\n    test 1240 line 208 toEtm8.scale: 1.065556\n    test 1241 line 208 toEtm8.lat: 69.225574\n    test 1242 line 208 toEtm8.lon: 77.656135\n    test 1243 line 209 toEtm8.easting: 4111775.114451\n    test 1244 line 209 toEtm8.northing: 6509014.348792\n    test 1245 line 209 toEtm8.gamma: 43.052130\n    test 1246 line 209 toEtm8.scale: 1.214125\n    test 1247 line 209 toEtm8.lat: 44.698478\n    test 1248 line 209 toEtm8.lon: 52.979304\n    test 1249 line 210 toEtm8.easting: 75358.261962\n    test 1250 line 210 toEtm8.northing: 7711258.662251\n    test 1251 line 210 toEtm8.gamma: 1.806297\n    test 1252 line 210 toEtm8.scale: 0.999669\n    test 1253 line 210 toEtm8.lat: 69.499594\n    test 1254 line 210 toEtm8.lon: 1.928336\n    test 1255 line 211 toEtm8.easting: 8781885.229116\n    test 1256 line 211 toEtm8.northing: 9184776.452211\n    test 1257 line 211 toEtm8.gamma: 81.795539\n    test 1258 line 211 toEtm8.scale: 2.094908\n    test 1259 line 211 toEtm8.lat: 27.981364\n    test 1260 line 211 toEtm8.lon: 86.061113\n    test 1261 line 212 toEtm8.easting: 954378.415174\n    test 1262 line 212 toEtm8.northing: 7449110.669807\n    test 1263 line 212 toEtm8.gamma: 19.380657\n    test 1264 line 212 toEtm8.scale: 1.010768\n    test 1265 line 212 toEtm8.lat: 65.699839\n    test 1266 line 212 toEtm8.lon: 21.104725\n    test 1267 line 213 toEtm8.easting: 720971.793706\n    test 1268 line 213 toEtm8.northing: 5265195.121555\n    test 1269 line 213 toEtm8.gamma: 7.002995\n    test 1270 line 213 toEtm8.scale: 1.005995\n    test 1271 line 213 toEtm8.lat: 47.143648\n    test 1272 line 213 toEtm8.lon: 9.512189\n    test 1273 line 214 toEtm8.easting: 561561.493937\n    test 1274 line 214 toEtm8.northing: 989910.236221\n    test 1275 line 214 toEtm8.gamma: 0.793118\n    test 1276 line 214 toEtm8.scale: 1.003505\n    test 1277 line 214 toEtm8.lat: 8.920167\n    test 1278 line 214 toEtm8.lon: 5.101513\n    test 1279 line 215 toEtm8.easting: 3446829.634468\n    test 1280 line 215 toEtm8.northing: 9232868.155664\n    test 1281 line 215 toEtm8.gamma: 76.279075\n    test 1282 line 215 toEtm8.scale: 1.148263\n    test 1283 line 215 toEtm8.lat: 59.778971\n    test 1284 line 215 toEtm8.lon: 78.080322\n    test 1285 line 216 toEtm8.easting: 4048307.545909\n    test 1286 line 216 toEtm8.northing: 9800416.422998\n    test 1287 line 216 toEtm8.gamma: 86.843918\n    test 1288 line 216 toEtm8.scale: 1.206495\n    test 1289 line 216 toEtm8.lat: 55.865310\n    test 1290 line 216 toEtm8.lon: 87.384288\n    test 1291 line 217 toEtm8.easting: 8973188.480293\n    test 1292 line 217 toEtm8.northing: 7042230.087021\n    test 1293 line 217 toEtm8.gamma: 60.872456\n    test 1294 line 217 toEtm8.scale: 2.156098\n    test 1295 line 217 toEtm8.lat: 24.310973\n    test 1296 line 217 toEtm8.lon: 76.823777\n    test 1297 line 218 toEtm8.easting: 126314.191618\n    test 1298 line 218 toEtm8.northing: 396006.687921\n    test 1299 line 218 toEtm8.gamma: 0.071065\n    test 1300 line 218 toEtm8.scale: 0.999798\n    test 1301 line 218 toEtm8.lat: 3.582041\n    test 1302 line 218 toEtm8.lon: 1.137286\n    test 1303 line 219 toEtm8.easting: 5247652.345647\n    test 1304 line 219 toEtm8.northing: 8670513.359752\n    test 1305 line 219 toEtm8.gamma: 72.700498\n    test 1306 line 219 toEtm8.scale: 1.355272\n    test 1307 line 219 toEtm8.lat: 46.124233\n    test 1308 line 219 toEtm8.lon: 77.313118\n    test 1309 line 220 toEtm8.easting: 8103656.838119\n    test 1310 line 220 toEtm8.northing: 9469794.014737\n    test 1311 line 220 toEtm8.gamma: 84.490673\n    test 1312 line 220 toEtm8.scale: 1.912164\n    test 1313 line 220 toEtm8.lat: 31.171391\n    test 1314 line 220 toEtm8.lon: 87.104504\n    test 1315 line 221 toEtm8.easting: 6300112.758236\n    test 1316 line 221 toEtm8.northing: 93835.917364\n    test 1317 line 221 toEtm8.gamma: 0.644805\n    test 1318 line 221 toEtm8.scale: 1.534073\n    test 1319 line 221 toEtm8.lat: 0.553171\n    test 1320 line 221 toEtm8.lon: 49.117104\n    test 1321 line 222 toEtm8.easting: 3894813.593782\n    test 1322 line 222 toEtm8.northing: 4833832.341027\n    test 1323 line 222 toEtm8.gamma: 27.453298\n    test 1324 line 222 toEtm8.scale: 1.192135\n    test 1325 line 222 toEtm8.lat: 35.361587\n    test 1326 line 222 toEtm8.lon: 41.860599\n    test 1327 line 223 toEtm8.easting: 402511.346712\n    test 1328 line 223 toEtm8.northing: 3520621.561911\n    test 1329 line 223 toEtm8.gamma: 2.238474\n    test 1330 line 223 toEtm8.scale: 1.001599\n    test 1331 line 223 toEtm8.lat: 31.750314\n    test 1332 line 223 toEtm8.lon: 4.248167\n    test 1333 line 224 toEtm8.easting: 5357378.503148\n    test 1334 line 224 toEtm8.northing: 2772997.602234\n    test 1335 line 224 toEtm8.gamma: 17.823560\n    test 1336 line 224 toEtm8.scale: 1.376031\n    test 1337 line 224 toEtm8.lat: 17.924336\n    test 1338 line 224 toEtm8.lon: 46.096402\n    test 1339 line 225 toEtm8.easting: 2807553.985866\n    test 1340 line 225 toEtm8.northing: 8177847.980275\n    test 1341 line 225 toEtm8.gamma: 54.680045\n    test 1342 line 225 toEtm8.scale: 1.097531\n    test 1343 line 225 toEtm8.lat: 60.931488\n    test 1344 line 225 toEtm8.lon: 58.221214\n    test 1345 line 226 toEtm8.easting: 18289045.166501\n    test 1346 line 226 toEtm8.northing: 7792942.339604\n    test 1347 line 226 toEtm8.gamma: 73.216494\n    test 1348 line 226 toEtm8.scale: 8.098009\n    test 1349 line 226 toEtm8.lat: 5.358151\n    test 1350 line 226 toEtm8.lon: 87.556213\n    test 1351 line 227 toEtm8.easting: 8376822.459538\n    test 1352 line 227 toEtm8.northing: 8128174.623878\n    test 1353 line 227 toEtm8.gamma: 70.920117\n    test 1354 line 227 toEtm8.scale: 1.984873\n    test 1355 line 227 toEtm8.lat: 28.616673\n    test 1356 line 227 toEtm8.lon: 80.452426\n    test 1357 line 228 toEtm8.easting: 11898068.353272\n    test 1358 line 228 toEtm8.northing: 4772439.493697\n    test 1359 line 228 toEtm8.gamma: 42.613968\n    test 1360 line 228 toEtm8.scale: 3.314412\n    test 1361 line 228 toEtm8.lat: 11.709763\n    test 1362 line 228 toEtm8.lon: 76.760295\n    test 1363 line 229 toEtm8.easting: 10550946.939050\n    test 1364 line 229 toEtm8.northing: 3851968.815295\n    test 1365 line 229 toEtm8.gamma: 33.383025\n    test 1366 line 229 toEtm8.scale: 2.724754\n    test 1367 line 229 toEtm8.lat: 12.009498\n    test 1368 line 229 toEtm8.lon: 71.782351\n    test 1369 line 230 toEtm8.easting: 6828299.123607\n    test 1370 line 230 toEtm8.northing: 9394803.227463\n    test 1371 line 230 toEtm8.gamma: 83.181386\n    test 1372 line 230 toEtm8.scale: 1.624359\n    test 1373 line 230 toEtm8.lat: 37.629784\n    test 1374 line 230 toEtm8.lon: 85.795687\n    test 1375 line 231 toEtm8.easting: 11162550.334022\n    test 1376 line 231 toEtm8.northing: 2640267.279593\n    test 1377 line 231 toEtm8.gamma: 23.145404\n    test 1378 line 231 toEtm8.scale: 2.998408\n    test 1379 line 231 toEtm8.lat: 7.721128\n    test 1380 line 231 toEtm8.lon: 71.662731\n    test 1381 line 232 toEtm8.easting: 4411584.447941\n    test 1382 line 232 toEtm8.northing: 4956173.694407\n    test 1383 line 232 toEtm8.gamma: 30.713919\n    test 1384 line 232 toEtm8.scale: 1.248736\n    test 1385 line 232 toEtm8.lat: 34.295026\n    test 1386 line 232 toEtm8.lon: 46.442191\n    test 1387 line 233 toEtm8.easting: 672108.897905\n    test 1388 line 233 toEtm8.northing: 4751554.657054\n    test 1389 line 233 toEtm8.gamma: 5.569178\n    test 1390 line 233 toEtm8.scale: 1.005162\n    test 1391 line 233 toEtm8.lat: 42.622496\n    test 1392 line 233 toEtm8.lon: 8.193605\n    test 1393 line 234 toEtm8.easting: 5022964.290579\n    test 1394 line 234 toEtm8.northing: 6860418.199502\n    test 1395 line 234 toEtm8.gamma: 50.862230\n    test 1396 line 234 toEtm8.scale: 1.324925\n    test 1397 line 234 toEtm8.lat: 41.667780\n    test 1398 line 234 toEtm8.lon: 61.518288\n    test 1399 line 235 toEtm8.easting: 1669655.595207\n    test 1400 line 235 toEtm8.northing: 4152086.537021\n    test 1401 line 235 toEtm8.gamma: 11.110237\n    test 1402 line 235 toEtm8.scale: 1.034138\n    test 1403 line 235 toEtm8.lat: 36.060369\n    test 1404 line 235 toEtm8.lon: 18.444112\n    test 1405 line 236 toEtm8.easting: 6055876.729655\n    test 1406 line 236 toEtm8.northing: 4896837.552619\n    test 1407 line 236 toEtm8.gamma: 35.799747\n    test 1408 line 236 toEtm8.scale: 1.485967\n    test 1409 line 236 toEtm8.lat: 27.948091\n    test 1410 line 236 toEtm8.lon: 56.816429\n    test 1411 line 237 toEtm8.easting: 1209214.164379\n    test 1412 line 237 toEtm8.northing: 7266409.859178\n    test 1413 line 237 toEtm8.gamma: 22.319633\n    test 1414 line 237 toEtm8.scale: 1.017554\n    test 1415 line 237 toEtm8.lat: 63.386030\n    test 1416 line 237 toEtm8.lon: 24.662716\n    test 1417 line 238 toEtm8.easting: 5154564.559584\n    test 1418 line 238 toEtm8.northing: 698118.349975\n    test 1419 line 238 toEtm8.gamma: 4.242360\n    test 1420 line 238 toEtm8.scale: 1.347481\n    test 1421 line 238 toEtm8.lat: 4.680922\n    test 1422 line 238 toEtm8.lon: 42.114426\n    test 1423 line 239 toEtm8.easting: 2695149.806543\n    test 1424 line 239 toEtm8.northing: 8208197.765605\n    test 1425 line 239 toEtm8.gamma: 54.178615\n    test 1426 line 239 toEtm8.scale: 1.089730\n    test 1427 line 239 toEtm8.lat: 61.826625\n    test 1428 line 239 toEtm8.lon: 57.525096\n    test 1429 line 240 toEtm8.easting: 3394792.327820\n    test 1430 line 240 toEtm8.northing: 3217583.415552\n    test 1431 line 240 toEtm8.gamma: 15.165863\n    test 1432 line 240 toEtm8.scale: 1.145285\n    test 1433 line 240 toEtm8.lat: 25.104353\n    test 1434 line 240 toEtm8.lon: 32.528660\n    test 1435 line 241 toEtm8.easting: 1429160.966985\n    test 1436 line 241 toEtm8.northing: 8212685.362032\n    test 1437 line 241 toEtm8.gamma: 37.484904\n    test 1438 line 241 toEtm8.scale: 1.024676\n    test 1439 line 241 toEtm8.lat: 69.678351\n    test 1440 line 241 toEtm8.lon: 39.275513\n    test 1441 line 242 toEtm8.easting: 8343387.998065\n    test 1442 line 242 toEtm8.northing: 8885196.954578\n    test 1443 line 242 toEtm8.gamma: 78.561937\n    test 1444 line 242 toEtm8.scale: 1.974733\n    test 1445 line 242 toEtm8.lat: 29.671384\n    test 1446 line 242 toEtm8.lon: 84.196595\n    test 1447 line 243 toEtm8.easting: 1990722.928606\n    test 1448 line 243 toEtm8.northing: 7569202.065162\n    test 1449 line 243 toEtm8.gamma: 37.075276\n    test 1450 line 243 toEtm8.scale: 1.048486\n    test 1451 line 243 toEtm8.lat: 62.300208\n    test 1452 line 243 toEtm8.lon: 40.474051\n    test 1453 line 244 toEtm8.easting: 1554980.099559\n    test 1454 line 244 toEtm8.northing: 1449423.919586\n    test 1455 line 244 toEtm8.gamma: 3.188328\n    test 1456 line 244 toEtm8.scale: 1.029664\n    test 1457 line 244 toEtm8.lat: 12.721776\n    test 1458 line 244 toEtm8.lon: 14.190003\n    test 1459 line 245 toEtm8.easting: 785205.450196\n    test 1460 line 245 toEtm8.northing: 5575158.423096\n    test 1461 line 245 toEtm8.gamma: 8.388417\n    test 1462 line 245 toEtm8.scale: 1.007181\n    test 1463 line 245 toEtm8.lat: 49.811296\n    test 1464 line 245 toEtm8.lon: 10.925011\n    test 1465 line 246 toEtm8.easting: 3310405.988313\n    test 1466 line 246 toEtm8.northing: 5955022.233881\n    test 1467 line 246 toEtm8.gamma: 33.007587\n    test 1468 line 246 toEtm8.scale: 1.137141\n    test 1469 line 246 toEtm8.lat: 45.132680\n    test 1470 line 246 toEtm8.lon: 42.478624\n    test 1471 line 247 toEtm8.easting: 4733460.960666\n    test 1472 line 247 toEtm8.northing: 129034.889816\n    test 1473 line 247 toEtm8.gamma: 0.737551\n    test 1474 line 247 toEtm8.scale: 1.290439\n    test 1475 line 247 toEtm8.lat: 0.904279\n    test 1476 line 247 toEtm8.lon: 39.078412\n    test 1477 line 248 toEtm8.easting: 3322708.343909\n    test 1478 line 248 toEtm8.northing: 3864738.078742\n    test 1479 line 248 toEtm8.gamma: 18.472566\n    test 1480 line 248 toEtm8.scale: 1.138838\n    test 1481 line 248 toEtm8.lat: 30.163605\n    test 1482 line 248 toEtm8.lon: 33.577996\n    test 1483 line 249 toEtm8.easting: 8672864.417204\n    test 1484 line 249 toEtm8.northing: 8333465.983444\n    test 1485 line 249 toEtm8.gamma: 73.206273\n    test 1486 line 249 toEtm8.scale: 2.065441\n    test 1487 line 249 toEtm8.lat: 27.643244\n    test 1488 line 249 toEtm8.lon: 81.892859\n    test 1489 line 250 toEtm8.easting: 11126818.231196\n    test 1490 line 250 toEtm8.northing: 7618712.174991\n    test 1491 line 250 toEtm8.gamma: 67.887173\n    test 1492 line 250 toEtm8.scale: 2.922417\n    test 1493 line 250 toEtm8.lat: 18.201208\n    test 1494 line 250 toEtm8.lon: 82.434618\n    test 1495 line 251 toEtm8.easting: 8650100.981797\n    test 1496 line 251 toEtm8.northing: 9975084.168997\n    test 1497 line 251 toEtm8.gamma: 89.767446\n    test 1498 line 251 toEtm8.scale: 2.057289\n    test 1499 line 251 toEtm8.lat: 28.804576\n    test 1500 line 251 toEtm8.lon: 89.886072\n    test 1501 line 252 toEtm8.easting: 2212701.180192\n    test 1502 line 252 toEtm8.northing: 650348.100229\n    test 1503 line 252 toEtm8.gamma: 1.970441\n    test 1504 line 252 toEtm8.scale: 1.060830\n    test 1505 line 252 toEtm8.lat: 5.542998\n    test 1506 line 252 toEtm8.lon: 19.589578\n    test 1507 line 253 toEtm8.easting: 6890222.326618\n    test 1508 line 253 toEtm8.northing: 7506813.499547\n    test 1509 line 253 toEtm8.gamma: 62.684825\n    test 1510 line 253 toEtm8.scale: 1.638488\n    test 1511 line 253 toEtm8.lat: 34.237147\n    test 1512 line 253 toEtm8.lon: 73.678164\n    test 1513 line 254 toEtm8.easting: 6692260.067325\n    test 1514 line 254 toEtm8.northing: 4244174.008110\n    test 1515 line 254 toEtm8.gamma: 31.812920\n    test 1516 line 254 toEtm8.scale: 1.604640\n    test 1517 line 254 toEtm8.lat: 22.704949\n    test 1518 line 254 toEtm8.lon: 57.877010\n    test 1519 line 255 toEtm8.easting: 1225564.137190\n    test 1520 line 255 toEtm8.northing: 4778923.924144\n    test 1521 line 255 toEtm8.gamma: 10.083419\n    test 1522 line 255 toEtm8.scale: 1.018134\n    test 1523 line 255 toEtm8.lat: 42.192424\n    test 1524 line 255 toEtm8.lon: 14.828196\n    test 1525 line 256 toEtm8.easting: 12341116.154950\n    test 1526 line 256 toEtm8.northing: 5081855.521966\n    test 1527 line 256 toEtm8.gamma: 45.712546\n    test 1528 line 256 toEtm8.scale: 3.535170\n    test 1529 line 256 toEtm8.lat: 11.481151\n    test 1530 line 256 toEtm8.lon: 78.189236\n    test 1531 line 257 toEtm8.easting: 6673845.021771\n    test 1532 line 257 toEtm8.northing: 1177587.190565\n    test 1533 line 257 toEtm8.gamma: 8.389141\n    test 1534 line 257 toEtm8.scale: 1.605171\n    test 1535 line 257 toEtm8.lat: 6.609626\n    test 1536 line 257 toEtm8.lon: 51.735783\n    test 1537 line 258 toEtm8.easting: 6966354.690417\n    test 1538 line 258 toEtm8.northing: 3641802.005093\n    test 1539 line 258 toEtm8.gamma: 27.409636\n    test 1540 line 258 toEtm8.scale: 1.661469\n    test 1541 line 258 toEtm8.lat: 19.059369\n    test 1542 line 258 toEtm8.lon: 57.526439\n    test 1543 max forward error: 2.048910e-08\n    test 1544 max reverse error: 1.421085e-13\n    test 1545 Etm.scale0: 0.9996\n    test 1546 Etm.datum: WGS84\n    test 1547 Etm.datum.ellipsoid.KsOrder: 8\n    test 1548 WGS84.KsOrder: 8\n\n    all 1548 testEtmTMcoords.py tests passed, 1 skipped (pygeodesy 26.3.26 Python 3.11.9 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 1.24.2 scipy 1.10.1 Math 2 macOS 26.3.1 isLazy 0 -W  default) 7.918 sec\nrunning /usr/local/bin/p....n3.11 -W default ~/PyGeodesy/test/testExactTMcoords.py\n\n    testing testExactTMcoords.py 24.03.22 (module pygeodesy.etm 25.09.15)\n    test 1 line 1 _ExactTM.easting: 1548706.791619\n    test 2 line 1 _ExactTM.northing: 8451449.198772\n    test 3 line 1 _ExactTM.gamma: 43.922790\n    test 4 line 1 _ExactTM.scale: 1.029060\n    test 5 line 1 _ExactTM.lat: 70.579277\n    test 6 line 1 _ExactTM.lon: 45.599420\n    test 7 line 2 _ExactTM.easting: 2624150.740929\n    test 8 line 2 _ExactTM.northing: 1204434.041605\n    test 9 line 2 _ExactTM.gamma: 4.292619\n    test 10 line 2 _ExactTM.scale: 1.086051\n    test 11 line 2 _ExactTM.lat: 10.018894\n    test 12 line 2 _ExactTM.lon: 23.313324\n    test 13 line 3 _ExactTM.easting: 9855841.232935\n    test 14 line 3 _ExactTM.northing: 6145496.115155\n    test 15 line 3 _ExactTM.gamma: 53.348315\n    test 16 line 3 _ExactTM.scale: 2.445098\n    test 17 line 3 _ExactTM.lat: 19.479896\n    test 18 line 3 _ExactTM.lon: 75.662049\n    test 19 line 4 _ExactTM.easting: 3206390.691996\n    test 20 line 4 _ExactTM.northing: 2650745.400406\n    test 21 line 4 _ExactTM.gamma: 11.666950\n    test 22 line 4 _ExactTM.scale: 1.129359\n    test 23 line 4 _ExactTM.lat: 21.072465\n    test 24 line 4 _ExactTM.lon: 29.828684\n    test 25 line 5 _ExactTM.easting: 4328154.083501\n    test 26 line 5 _ExactTM.northing: 749647.623690\n    test 27 line 5 _ExactTM.gamma: 4.024317\n    test 28 line 5 _ExactTM.scale: 1.240829\n    test 29 line 5 _ExactTM.lat: 5.458957\n    test 30 line 5 _ExactTM.lon: 36.385237\n    test 31 line 6 _ExactTM.easting: 847598.266514\n    test 32 line 6 _ExactTM.northing: 7947180.962440\n    test 33 line 6 _ExactTM.gamma: 21.639091\n    test 34 line 6 _ExactTM.scale: 1.008399\n    test 35 line 6 _ExactTM.lat: 70.175454\n    test 36 line 6 _ExactTM.lon: 22.865350\n    test 37 line 7 _ExactTM.easting: 2727657.337974\n    test 38 line 7 _ExactTM.northing: 8283916.696410\n    test 39 line 7 _ExactTM.gamma: 55.690909\n    test 40 line 7 _ExactTM.scale: 1.091942\n    test 41 line 7 _ExactTM.lat: 61.965605\n    test 42 line 7 _ExactTM.lon: 58.931371\n    test 43 line 8 _ExactTM.easting: 2331001.751890\n    test 44 line 8 _ExactTM.northing: 1313608.224751\n    test 45 line 8 _ExactTM.gamma: 4.214690\n    test 46 line 8 _ExactTM.scale: 1.067599\n    test 47 line 8 _ExactTM.lat: 11.116050\n    test 48 line 8 _ExactTM.lon: 20.901069\n    test 49 line 9 _ExactTM.easting: 6035557.239480\n    test 50 line 9 _ExactTM.northing: 5791770.791879\n    test 51 line 9 _ExactTM.gamma: 43.698170\n    test 52 line 9 _ExactTM.scale: 1.481260\n    test 53 line 9 _ExactTM.lat: 32.210543\n    test 54 line 9 _ExactTM.lon: 60.705849\n    test 55 line 10 _ExactTM.easting: 1064553.125852\n    test 56 line 10 _ExactTM.northing: 9417273.737208\n    test 57 line 10 _ExactTM.gamma: 61.100380\n    test 58 line 10 _ExactTM.scale: 1.013475\n    test 59 line 10 _ExactTM.lat: 79.187451\n    test 60 line 10 _ExactTM.lon: 61.532382\n    test 61 line 11 _ExactTM.easting: 1400137.116164\n    test 62 line 11 _ExactTM.northing: 9616907.017686\n    test 63 line 11 _ExactTM.gamma: 74.527087\n    test 64 line 11 _ExactTM.scale: 1.023640\n    test 65 line 11 _ExactTM.lat: 77.103759\n    test 66 line 11 _ExactTM.lon: 74.899105\n    test 67 line 12 _ExactTM.easting: 9860691.016626\n    test 68 line 12 _ExactTM.northing: 7433039.143328\n    test 69 line 12 _ExactTM.gamma: 65.357693\n    test 70 line 12 _ExactTM.scale: 2.438973\n    test 71 line 12 _ExactTM.lat: 21.889514\n    test 72 line 12 _ExactTM.lon: 80.019886\n    test 73 line 13 _ExactTM.easting: 8076501.833695\n    test 74 line 13 _ExactTM.northing: 8561614.174782\n    test 75 line 13 _ExactTM.gamma: 75.073393\n    test 76 line 13 _ExactTM.scale: 1.906202\n    test 77 line 13 _ExactTM.lat: 30.536296\n    test 78 line 13 _ExactTM.lon: 82.186178\n    test 79 line 14 _ExactTM.easting: 3335099.866623\n    test 80 line 14 _ExactTM.northing: 6740519.084015\n    test 81 line 14 _ExactTM.gamma: 40.611821\n    test 82 line 14 _ExactTM.scale: 1.139021\n    test 83 line 14 _ExactTM.lat: 49.990485\n    test 84 line 14 _ExactTM.lon: 48.203179\n    test 85 line 15 _ExactTM.easting: 12051574.928500\n    test 86 line 15 _ExactTM.northing: 6587213.051951\n    test 87 line 15 _ExactTM.gamma: 59.033237\n    test 88 line 15 _ExactTM.scale: 3.357469\n    test 89 line 15 _ExactTM.lat: 14.486312\n    test 90 line 15 _ExactTM.lon: 80.905137\n    test 91 line 16 _ExactTM.easting: 5387578.735298\n    test 92 line 16 _ExactTM.northing: 4111216.907168\n    test 93 line 16 _ExactTM.gamma: 27.574337\n    test 94 line 16 _ExactTM.scale: 1.379357\n    test 95 line 16 _ExactTM.lat: 25.936824\n    test 96 line 16 _ExactTM.lon: 49.913598\n    test 97 line 17 _ExactTM.easting: 2622214.380233\n    test 98 line 17 _ExactTM.northing: 8678923.984567\n    test 99 line 17 _ExactTM.gamma: 61.697275\n    test 100 line 17 _ExactTM.scale: 1.084810\n    test 101 line 17 _ExactTM.lat: 64.402196\n    test 102 line 17 _ExactTM.lon: 64.091395\n    test 103 line 18 _ExactTM.easting: 5068474.169633\n    test 104 line 18 _ExactTM.northing: 9492066.993709\n    test 105 line 18 _ExactTM.gamma: 83.156740\n    test 106 line 18 _ExactTM.scale: 1.329990\n    test 107 line 18 _ExactTM.lat: 48.451354\n    test 108 line 18 _ExactTM.lon: 84.856198\n    test 109 line 19 _ExactTM.easting: 738062.047779\n    test 110 line 19 _ExactTM.northing: 3031007.074116\n    test 111 line 19 _ExactTM.gamma: 3.416802\n    test 112 line 19 _ExactTM.scale: 1.006332\n    test 113 line 19 _ExactTM.lat: 27.203895\n    test 114 line 19 _ExactTM.lon: 7.440229\n    test 115 line 20 _ExactTM.easting: 1944413.834565\n    test 116 line 20 _ExactTM.northing: 9613299.224493\n    test 117 line 20 _ExactTM.gamma: 78.462831\n    test 118 line 20 _ExactTM.scale: 1.046134\n    test 119 line 20 _ExactTM.lat: 72.509000\n    test 120 line 20 _ExactTM.lon: 78.982283\n    test 121 line 21 _ExactTM.easting: 2114521.418406\n    test 122 line 21 _ExactTM.northing: 4954077.440098\n    test 123 line 21 _ExactTM.gamma: 17.571878\n    test 124 line 21 _ExactTM.scale: 1.055093\n    test 125 line 21 _ExactTM.lat: 41.824954\n    test 126 line 21 _ExactTM.lon: 25.392744\n    test 127 line 22 _ExactTM.easting: 620365.905090\n    test 128 line 22 _ExactTM.northing: 4755542.026562\n    test 129 line 22 _ExactTM.gamma: 5.152022\n    test 130 line 22 _ExactTM.scale: 1.004338\n    test 131 line 22 _ExactTM.lat: 42.701376\n    test 132 line 22 _ExactTM.lon: 7.572738\n    test 133 line 23 _ExactTM.easting: 263004.770989\n    test 134 line 23 _ExactTM.northing: 4493669.762451\n    test 135 line 23 _ExactTM.gamma: 2.020523\n    test 136 line 23 _ExactTM.scale: 1.000452\n    test 137 line 23 _ExactTM.lat: 40.552052\n    test 138 line 23 _ExactTM.lon: 3.106056\n    test 139 line 24 _ExactTM.easting: 3217221.739462\n    test 140 line 24 _ExactTM.northing: 437776.119161\n    test 141 line 24 _ExactTM.gamma: 1.848169\n    test 142 line 24 _ExactTM.scale: 1.130558\n    test 143 line 24 _ExactTM.lat: 3.501242\n    test 144 line 24 _ExactTM.lon: 27.806507\n    test 145 line 25 _ExactTM.easting: 14661142.444961\n    test 146 line 25 _ExactTM.northing: 7476100.824185\n    test 147 line 25 _ExactTM.gamma: 68.376669\n    test 148 line 25 _ExactTM.scale: 4.896650\n    test 149 line 25 _ExactTM.lat: 10.148715\n    test 150 line 25 _ExactTM.lon: 85.373768\n    test 151 line 26 _ExactTM.easting: 967777.158554\n    test 152 line 26 _ExactTM.northing: 6615684.266592\n    test 153 line 26 _ExactTM.gamma: 14.410044\n    test 154 line 26 _ExactTM.scale: 1.011100\n    test 155 line 26 _ExactTM.lat: 58.582623\n    test 156 line 26 _ExactTM.lon: 16.755558\n    test 157 line 27 _ExactTM.easting: 7558840.728461\n    test 158 line 27 _ExactTM.northing: 4144728.130764\n    test 159 line 27 _ExactTM.gamma: 32.557264\n    test 160 line 27 _ExactTM.scale: 1.791490\n    test 161 line 27 _ExactTM.lat: 19.793004\n    test 162 line 27 _ExactTM.lon: 61.746763\n    test 163 line 28 _ExactTM.easting: 1056008.314161\n    test 164 line 28 _ExactTM.northing: 9290799.692669\n    test 165 line 28 _ExactTM.gamma: 55.843278\n    test 166 line 28 _ExactTM.scale: 1.013253\n    test 167 line 28 _ExactTM.lat: 78.666776\n    test 168 line 28 _ExactTM.lon: 56.365355\n    test 169 line 29 _ExactTM.easting: 1943965.134687\n    test 170 line 29 _ExactTM.northing: 1389972.228690\n    test 171 line 29 _ExactTM.gamma: 3.774869\n    test 172 line 29 _ExactTM.scale: 1.046724\n    test 173 line 29 _ExactTM.lat: 11.998788\n    test 174 line 29 _ExactTM.lon: 17.597873\n    test 175 line 30 _ExactTM.easting: 5803077.072902\n    test 176 line 30 _ExactTM.northing: 5649957.943659\n    test 177 line 30 _ExactTM.gamma: 41.717943\n    test 178 line 30 _ExactTM.scale: 1.442572\n    test 179 line 30 _ExactTM.lat: 32.540378\n    test 180 line 30 _ExactTM.lon: 58.764613\n    test 181 line 31 _ExactTM.easting: 2928716.986009\n    test 182 line 31 _ExactTM.northing: 5731835.058317\n    test 183 line 31 _ExactTM.gamma: 28.538550\n    test 184 line 31 _ExactTM.scale: 1.106780\n    test 185 line 31 _ExactTM.lat: 45.160356\n    test 186 line 31 _ExactTM.lon: 37.465285\n    test 187 line 32 _ExactTM.easting: 326141.975756\n    test 188 line 32 _ExactTM.northing: 8881325.164543\n    test 189 line 32 _ExactTM.gamma: 16.111415\n    test 190 line 32 _ExactTM.scale: 1.000900\n    test 191 line 32 _ExactTM.lat: 79.584190\n    test 192 line 32 _ExactTM.lon: 16.367006\n    test 193 line 33 _ExactTM.easting: 3933015.267450\n    test 194 line 33 _ExactTM.northing: 7932373.909512\n    test 195 line 33 _ExactTM.gamma: 58.577424\n    test 196 line 33 _ExactTM.scale: 1.194811\n    test 197 line 33 _ExactTM.lat: 52.470664\n    test 198 line 33 _ExactTM.lon: 64.125580\n    test 199 line 34 _ExactTM.easting: 8598926.983213\n    test 200 line 34 _ExactTM.northing: 6214135.167503\n    test 201 line 34 _ExactTM.gamma: 52.612878\n    test 202 line 34 _ExactTM.scale: 2.051367\n    test 203 line 34 _ExactTM.lat: 23.702673\n    test 204 line 34 _ExactTM.lon: 72.630363\n    test 205 line 35 _ExactTM.easting: 6620553.333772\n    test 206 line 35 _ExactTM.northing: 6540527.122948\n    test 207 line 35 _ExactTM.gamma: 52.350140\n    test 208 line 35 _ExactTM.scale: 1.586614\n    test 209 line 35 _ExactTM.lat: 32.603520\n    test 210 line 35 _ExactTM.lon: 67.280123\n    test 211 line 36 _ExactTM.easting: 1515136.758292\n    test 212 line 36 _ExactTM.northing: 3858996.087537\n    test 213 line 36 _ExactTM.gamma: 9.225127\n    test 214 line 36 _ExactTM.scale: 1.028029\n    test 215 line 36 _ExactTM.lat: 33.776224\n    test 216 line 36 _ExactTM.lon: 16.280993\n    test 217 line 37 _ExactTM.easting: 479854.373445\n    test 218 line 37 _ExactTM.northing: 8980501.389896\n    test 219 line 37 _ExactTM.gamma: 25.021222\n    test 220 line 37 _ExactTM.scale: 1.002415\n    test 221 line 37 _ExactTM.lat: 79.932747\n    test 222 line 37 _ExactTM.lon: 25.363622\n    test 223 line 38 _ExactTM.easting: 5243446.564940\n    test 224 line 38 _ExactTM.northing: 140657.213960\n    test 225 line 38 _ExactTM.gamma: 0.862817\n    test 226 line 38 _ExactTM.scale: 1.360358\n    test 227 line 38 _ExactTM.lat: 0.935056\n    test 228 line 38 _ExactTM.lon: 42.538824\n    test 229 line 39 _ExactTM.easting: 12806457.923218\n    test 230 line 39 _ExactTM.northing: 7170118.684675\n    test 231 line 39 _ExactTM.gamma: 64.708921\n    test 232 line 39 _ExactTM.scale: 3.740588\n    test 233 line 39 _ExactTM.lat: 13.490862\n    test 234 line 39 _ExactTM.lon: 83.178380\n    test 235 line 40 _ExactTM.easting: 1202993.459158\n    test 236 line 40 _ExactTM.northing: 5557316.053599\n    test 237 line 40 _ExactTM.gamma: 12.579061\n    test 238 line 40 _ExactTM.scale: 1.017426\n    test 239 line 40 _ExactTM.lat: 48.979057\n    test 240 line 40 _ExactTM.lon: 16.474542\n    test 241 line 41 _ExactTM.easting: 1729088.710196\n    test 242 line 41 _ExactTM.northing: 7770874.289954\n    test 243 line 41 _ExactTM.gamma: 36.021783\n    test 244 line 41 _ExactTM.scale: 1.036397\n    test 245 line 41 _ExactTM.lat: 65.036016\n    test 246 line 41 _ExactTM.lon: 38.729091\n    test 247 line 42 _ExactTM.easting: 2437301.517425\n    test 248 line 42 _ExactTM.northing: 5539327.748318\n    test 249 line 42 _ExactTM.gamma: 23.461879\n    test 250 line 42 _ExactTM.scale: 1.073459\n    test 251 line 42 _ExactTM.lat: 45.510091\n    test 252 line 42 _ExactTM.lon: 31.303729\n    test 253 line 43 _ExactTM.easting: 3647186.135066\n    test 254 line 43 _ExactTM.northing: 2086412.330983\n    test 255 line 43 _ExactTM.gamma: 10.023991\n    test 256 line 43 _ExactTM.scale: 1.168707\n    test 257 line 43 _ExactTM.lat: 16.058010\n    test 258 line 43 _ExactTM.lon: 32.520026\n    test 259 line 44 _ExactTM.easting: 1818497.243556\n    test 260 line 44 _ExactTM.northing: 4275471.745057\n    test 261 line 44 _ExactTM.gamma: 12.499656\n    test 262 line 44 _ExactTM.scale: 1.040604\n    test 263 line 44 _ExactTM.lat: 36.845200\n    test 264 line 44 _ExactTM.lon: 20.282283\n    test 265 line 45 _ExactTM.easting: 3751304.113783\n    test 266 line 45 _ExactTM.northing: 5130454.001592\n    test 267 line 45 _ExactTM.gamma: 28.959707\n    test 268 line 45 _ExactTM.scale: 1.177681\n    test 269 line 45 _ExactTM.lat: 37.865481\n    test 270 line 45 _ExactTM.lon: 41.990402\n    test 271 line 46 _ExactTM.easting: 2616733.138544\n    test 272 line 46 _ExactTM.northing: 394644.463815\n    test 273 line 46 _ExactTM.gamma: 1.390425\n    test 274 line 46 _ExactTM.scale: 1.085595\n    test 275 line 46 _ExactTM.lat: 3.287272\n    test 276 line 46 _ExactTM.lon: 22.917604\n    test 277 line 47 _ExactTM.easting: 1756506.573942\n    test 278 line 47 _ExactTM.northing: 5570393.986394\n    test 279 line 47 _ExactTM.gamma: 17.897894\n    test 280 line 47 _ExactTM.scale: 1.037732\n    test 281 line 47 _ExactTM.lat: 47.813686\n    test 282 line 47 _ExactTM.lon: 23.545092\n    test 283 line 48 _ExactTM.easting: 8752461.894711\n    test 284 line 48 _ExactTM.northing: 6087728.152284\n    test 285 line 48 _ExactTM.gamma: 51.628465\n    test 286 line 48 _ExactTM.scale: 2.095465\n    test 287 line 48 _ExactTM.lat: 22.836853\n    test 288 line 48 _ExactTM.lon: 72.604385\n    test 289 line 49 _ExactTM.easting: 1309272.216432\n    test 290 line 49 _ExactTM.northing: 59520.028899\n    test 291 line 49 _ExactTM.gamma: 0.109069\n    test 292 line 49 _ExactTM.scale: 1.020897\n    test 293 line 49 _ExactTM.lat: 0.527262\n    test 294 line 49 _ExactTM.lon: 11.684209\n    test 295 line 50 _ExactTM.easting: 328652.277129\n    test 296 line 50 _ExactTM.northing: 2233043.958874\n    test 297 line 50 _ExactTM.gamma: 1.084863\n    test 298 line 50 _ExactTM.scale: 1.000935\n    test 299 line 50 _ExactTM.lat: 20.166742\n    test 300 line 50 _ExactTM.lon: 3.143948\n    test 301 line 51 _ExactTM.easting: 8637959.716447\n    test 302 line 51 _ExactTM.northing: 9190635.156031\n    test 303 line 51 _ExactTM.gamma: 81.802563\n    test 304 line 51 _ExactTM.scale: 2.054329\n    test 305 line 51 _ExactTM.lat: 28.604629\n    test 306 line 51 _ExactTM.lon: 85.988721\n    test 307 line 52 _ExactTM.easting: 8548521.455147\n    test 308 line 52 _ExactTM.northing: 9172410.943282\n    test 309 line 52 _ExactTM.gamma: 81.583928\n    test 310 line 52 _ExactTM.scale: 2.029641\n    test 311 line 52 _ExactTM.lat: 28.984048\n    test 312 line 52 _ExactTM.lon: 85.833448\n    test 313 line 53 _ExactTM.easting: 796987.281104\n    test 314 line 53 _ExactTM.northing: 7677446.357675\n    test 315 line 53 _ExactTM.gamma: 18.084472\n    test 316 line 53 _ExactTM.scale: 1.007381\n    test 317 line 53 _ExactTM.lat: 68.071020\n    test 318 line 53 _ExactTM.lon: 19.392823\n    test 319 line 54 _ExactTM.easting: 3291036.496762\n    test 320 line 54 _ExactTM.northing: 9513199.600666\n    test 321 line 54 _ExactTM.gamma: 80.890254\n    test 322 line 54 _ExactTM.scale: 1.134826\n    test 323 line 54 _ExactTM.lat: 61.416576\n    test 324 line 54 _ExactTM.lon: 81.981611\n    test 325 line 55 _ExactTM.easting: 7087225.330906\n    test 326 line 55 _ExactTM.northing: 8382823.855822\n    test 327 line 55 _ExactTM.gamma: 72.253756\n    test 328 line 55 _ExactTM.scale: 1.678070\n    test 329 line 55 _ExactTM.lat: 35.074753\n    test 330 line 55 _ExactTM.lon: 79.496003\n    test 331 line 56 _ExactTM.easting: 5090358.125724\n    test 332 line 56 _ExactTM.northing: 4318294.133489\n    test 333 line 56 _ExactTM.gamma: 28.266280\n    test 334 line 56 _ExactTM.scale: 1.336264\n    test 335 line 56 _ExactTM.lat: 28.078790\n    test 336 line 56 _ExactTM.lon: 48.684350\n\n    test skipped (1): line 57 _ExactTM.'84.986930137199 2.067177857261 20163.0752214330146 9438635.9888499043815 2.059277291707588222 .99960496589466017622'\n    test 337 line 58 _ExactTM.easting: 3447670.550785\n    test 338 line 58 _ExactTM.northing: 3680238.888223\n    test 339 line 58 _ExactTM.gamma: 17.934948\n    test 340 line 58 _ExactTM.scale: 1.149831\n    test 341 line 58 _ExactTM.lat: 28.473948\n    test 342 line 58 _ExactTM.lon: 34.127306\n    test 343 line 59 _ExactTM.easting: 3396522.906798\n    test 344 line 59 _ExactTM.northing: 8093659.687593\n    test 345 line 59 _ExactTM.gamma: 57.747117\n    test 346 line 59 _ExactTM.scale: 1.144006\n    test 347 line 59 _ExactTM.lat: 56.629354\n    test 348 line 59 _ExactTM.lon: 62.196474\n    test 349 line 60 _ExactTM.easting: 11249894.100784\n    test 350 line 60 _ExactTM.northing: 1619226.506299\n    test 351 line 60 _ExactTM.gamma: 14.210358\n    test 352 line 60 _ExactTM.scale: 3.048347\n    test 353 line 60 _ExactTM.lat: 4.747762\n    test 354 line 60 _ExactTM.lon: 70.932555\n    test 355 line 61 _ExactTM.easting: 6808805.230950\n    test 356 line 61 _ExactTM.northing: 8044779.777369\n    test 357 line 61 _ExactTM.gamma: 68.242008\n    test 358 line 61 _ExactTM.scale: 1.621464\n    test 359 line 61 _ExactTM.lat: 35.882113\n    test 360 line 61 _ExactTM.lon: 76.741849\n    test 361 line 62 _ExactTM.easting: 2306021.556506\n    test 362 line 62 _ExactTM.northing: 757191.592866\n    test 363 line 62 _ExactTM.gamma: 2.385686\n    test 364 line 62 _ExactTM.scale: 1.066159\n    test 365 line 62 _ExactTM.lat: 6.420705\n    test 366 line 62 _ExactTM.lon: 20.416028\n    test 367 line 63 _ExactTM.easting: 1547406.313862\n    test 368 line 63 _ExactTM.northing: 6048712.751824\n    test 369 line 63 _ExactTM.gamma: 18.474372\n    test 370 line 63 _ExactTM.scale: 1.029123\n    test 371 line 63 _ExactTM.lat: 52.335248\n    test 372 line 63 _ExactTM.lon: 22.879294\n    test 373 line 64 _ExactTM.easting: 2430467.650383\n    test 374 line 64 _ExactTM.northing: 7557167.613972\n    test 375 line 64 _ExactTM.gamma: 42.110021\n    test 376 line 64 _ExactTM.scale: 1.072759\n    test 377 line 64 _ExactTM.lat: 59.846391\n    test 378 line 64 _ExactTM.lon: 46.262536\n    test 379 line 65 _ExactTM.easting: 2334053.905830\n    test 380 line 65 _ExactTM.northing: 1948076.966582\n    test 381 line 65 _ExactTM.gamma: 6.353185\n    test 382 line 65 _ExactTM.scale: 1.067733\n    test 383 line 65 _ExactTM.lat: 16.461790\n    test 384 line 65 _ExactTM.lon: 21.433269\n    test 385 line 66 _ExactTM.easting: 5564175.186737\n    test 386 line 66 _ExactTM.northing: 1836851.660412\n    test 387 line 66 _ExactTM.gamma: 11.870682\n    test 388 line 66 _ExactTM.scale: 1.408265\n    test 389 line 66 _ExactTM.lat: 11.707905\n    test 390 line 66 _ExactTM.lon: 45.827075\n    test 391 line 67 _ExactTM.easting: 6118505.590359\n    test 392 line 67 _ExactTM.northing: 7631684.552421\n    test 393 line 67 _ExactTM.gamma: 62.477323\n    test 394 line 67 _ExactTM.scale: 1.493420\n    test 395 line 67 _ExactTM.lat: 38.519075\n    test 396 line 67 _ExactTM.lon: 71.935918\n    test 397 line 68 _ExactTM.easting: 7365359.294665\n    test 398 line 68 _ExactTM.northing: 8818194.451531\n    test 399 line 68 _ExactTM.gamma: 77.207042\n    test 400 line 68 _ExactTM.scale: 1.737639\n    test 401 line 68 _ExactTM.lat: 34.264007\n    test 402 line 68 _ExactTM.lon: 82.647878\n    test 403 line 69 _ExactTM.easting: 36187.342415\n    test 404 line 69 _ExactTM.northing: 2142565.324802\n    test 405 line 69 _ExactTM.gamma: 0.114334\n    test 406 line 69 _ExactTM.scale: 0.999616\n    test 407 line 69 _ExactTM.lat: 19.376880\n    test 408 line 69 _ExactTM.lon: 0.344605\n    test 409 line 70 _ExactTM.easting: 2380328.546851\n    test 410 line 70 _ExactTM.northing: 8440109.872384\n    test 411 line 70 _ExactTM.gamma: 55.076067\n    test 412 line 70 _ExactTM.scale: 1.069658\n    test 413 line 70 _ExactTM.lat: 65.075805\n    test 414 line 70 _ExactTM.lon: 57.653438\n    test 415 line 71 _ExactTM.easting: 582511.608826\n    test 416 line 71 _ExactTM.northing: 8876047.217071\n    test 417 line 71 _ExactTM.gamma: 27.133300\n    test 418 line 71 _ExactTM.scale: 1.003749\n    test 419 line 71 _ExactTM.lat: 78.691870\n    test 420 line 71 _ExactTM.lon: 27.591736\n    test 421 line 72 _ExactTM.easting: 899441.350477\n    test 422 line 72 _ExactTM.northing: 4582046.430516\n    test 423 line 72 _ExactTM.gamma: 7.031211\n    test 424 line 72 _ExactTM.scale: 1.009573\n    test 425 line 72 _ExactTM.lat: 40.893022\n    test 426 line 72 _ExactTM.lon: 10.668804\n    test 427 line 73 _ExactTM.easting: 5022485.124337\n    test 428 line 73 _ExactTM.northing: 9741774.933721\n    test 429 line 73 _ExactTM.gamma: 86.505947\n    test 430 line 73 _ExactTM.scale: 1.323700\n    test 431 line 73 _ExactTM.lat: 48.914279\n    test 432 line 73 _ExactTM.lon: 87.359268\n    test 433 line 74 _ExactTM.easting: 6701004.587204\n    test 434 line 74 _ExactTM.northing: 2954368.258231\n    test 435 line 74 _ExactTM.gamma: 21.560153\n    test 436 line 74 _ExactTM.scale: 1.608554\n    test 437 line 74 _ExactTM.lat: 16.208377\n    test 438 line 74 _ExactTM.lon: 54.494282\n    test 439 line 75 _ExactTM.easting: 454986.218897\n    test 440 line 75 _ExactTM.northing: 4885087.887884\n    test 441 line 75 _ExactTM.gamma: 3.945648\n    test 442 line 75 _ExactTM.scale: 1.002147\n    test 443 line 75 _ExactTM.lat: 43.977936\n    test 444 line 75 _ExactTM.lon: 5.672541\n    test 445 line 76 _ExactTM.easting: 8903956.140311\n    test 446 line 76 _ExactTM.northing: 8470608.577482\n    test 447 line 76 _ExactTM.gamma: 74.723116\n    test 448 line 76 _ExactTM.scale: 2.131311\n    test 449 line 76 _ExactTM.lat: 26.850861\n    test 450 line 76 _ExactTM.lon: 82.834480\n    test 451 line 77 _ExactTM.easting: 1547627.594741\n    test 452 line 77 _ExactTM.northing: 6036584.538347\n    test 453 line 77 _ExactTM.gamma: 18.407629\n    test 454 line 77 _ExactTM.scale: 1.029132\n    test 455 line 77 _ExactTM.lat: 52.234165\n    test 456 line 77 _ExactTM.lon: 22.827655\n    test 457 line 78 _ExactTM.easting: 5221488.778597\n    test 458 line 78 _ExactTM.northing: 1762592.044392\n    test 459 line 78 _ExactTM.gamma: 10.927880\n    test 460 line 78 _ExactTM.scale: 1.356721\n    test 461 line 78 _ExactTM.lat: 11.674646\n    test 462 line 78 _ExactTM.lon: 43.500147\n    test 463 line 79 _ExactTM.easting: 4880570.297161\n    test 464 line 79 _ExactTM.northing: 3325433.988867\n    test 465 line 79 _ExactTM.gamma: 20.469862\n    test 466 line 79 _ExactTM.scale: 1.308476\n    test 467 line 79 _ExactTM.lat: 22.492753\n    test 468 line 79 _ExactTM.lon: 44.179153\n    test 469 line 80 _ExactTM.easting: 23930680.082694\n    test 470 line 80 _ExactTM.northing: 7491462.099038\n    test 471 line 80 _ExactTM.gamma: 75.937628\n    test 472 line 80 _ExactTM.scale: 15.556365\n    test 473 line 80 _ExactTM.lat: 0.910999\n    test 474 line 80 _ExactTM.lon: 88.548823\n    test 475 line 81 _ExactTM.easting: 71519.450458\n    test 476 line 81 _ExactTM.northing: 3654740.444852\n    test 477 line 81 _ExactTM.gamma: 0.417448\n    test 478 line 81 _ExactTM.scale: 0.999663\n    test 479 line 81 _ExactTM.lat: 33.028802\n    test 480 line 81 _ExactTM.lon: 0.765843\n    test 481 line 82 _ExactTM.easting: 4152797.795220\n    test 482 line 82 _ExactTM.northing: 7823098.502751\n    test 483 line 82 _ExactTM.gamma: 58.238901\n    test 484 line 82 _ExactTM.scale: 1.218052\n    test 485 line 82 _ExactTM.lat: 50.649195\n    test 486 line 82 _ExactTM.lon: 64.389076\n    test 487 line 83 _ExactTM.easting: 2926725.707639\n    test 488 line 83 _ExactTM.northing: 7904918.072844\n    test 489 line 83 _ExactTM.gamma: 51.592748\n    test 490 line 83 _ExactTM.scale: 1.106206\n    test 491 line 83 _ExactTM.lat: 58.820640\n    test 492 line 83 _ExactTM.lon: 55.841048\n    test 493 line 84 _ExactTM.easting: 1325509.113869\n    test 494 line 84 _ExactTM.northing: 9675214.948213\n    test 495 line 84 _ExactTM.gamma: 76.116213\n    test 496 line 84 _ExactTM.scale: 1.021136\n    test 497 line 84 _ExactTM.lat: 77.865762\n    test 498 line 84 _ExactTM.lon: 76.414618\n    test 499 line 85 _ExactTM.easting: 3045296.448926\n    test 500 line 85 _ExactTM.northing: 542153.443280\n    test 501 line 85 _ExactTM.gamma: 2.185095\n    test 502 line 85 _ExactTM.scale: 1.116664\n    test 503 line 85 _ExactTM.lat: 4.389639\n    test 504 line 85 _ExactTM.lon: 26.458976\n    test 505 line 86 _ExactTM.easting: 11843870.887518\n    test 506 line 86 _ExactTM.northing: 5912803.073343\n    test 507 line 86 _ExactTM.gamma: 52.814259\n    test 508 line 86 _ExactTM.scale: 3.267256\n    test 509 line 86 _ExactTM.lat: 13.924448\n    test 510 line 86 _ExactTM.lon: 79.017873\n    test 511 line 87 _ExactTM.easting: 8891099.704936\n    test 512 line 87 _ExactTM.northing: 162160.142227\n    test 513 line 87 _ExactTM.gamma: 1.312094\n    test 514 line 87 _ExactTM.scale: 2.157363\n    test 515 line 87 _ExactTM.lat: 0.679713\n    test 516 line 87 _ExactTM.lon: 62.036792\n    test 517 line 88 _ExactTM.easting: 4784814.214449\n    test 518 line 88 _ExactTM.northing: 2984497.432580\n    test 519 line 88 _ExactTM.gamma: 17.946545\n    test 520 line 88 _ExactTM.scale: 1.296116\n    test 521 line 88 _ExactTM.lat: 20.478281\n    test 522 line 88 _ExactTM.lon: 42.678234\n    test 523 line 89 _ExactTM.easting: 1772074.682154\n    test 524 line 89 _ExactTM.northing: 9491552.560143\n    test 525 line 89 _ExactTM.gamma: 73.634830\n    test 526 line 89 _ExactTM.scale: 1.038202\n    test 527 line 89 _ExactTM.lat: 73.695703\n    test 528 line 89 _ExactTM.lon: 74.259097\n    test 529 line 90 _ExactTM.easting: 1907649.782106\n    test 530 line 90 _ExactTM.northing: 6994232.429379\n    test 531 line 90 _ExactTM.gamma: 29.718929\n    test 532 line 90 _ExactTM.scale: 1.044503\n    test 533 line 90 _ExactTM.lat: 58.569370\n    test 534 line 90 _ExactTM.lon: 33.777549\n    test 535 line 91 _ExactTM.easting: 2084423.818962\n    test 536 line 91 _ExactTM.northing: 2211816.035619\n    test 537 line 91 _ExactTM.gamma: 6.556448\n    test 538 line 91 _ExactTM.scale: 1.053793\n    test 539 line 91 _ExactTM.lat: 18.933881\n    test 540 line 91 _ExactTM.lon: 19.492695\n    test 541 line 92 _ExactTM.easting: 1064373.671729\n    test 542 line 92 _ExactTM.northing: 7812482.547461\n    test 543 line 92 _ExactTM.gamma: 24.874124\n    test 544 line 92 _ExactTM.scale: 1.013490\n    test 545 line 92 _ExactTM.lat: 68.317934\n    test 546 line 92 _ExactTM.lon: 26.515687\n    test 547 line 93 _ExactTM.easting: 4770385.479297\n    test 548 line 93 _ExactTM.northing: 9734318.902980\n    test 549 line 93 _ExactTM.gamma: 86.273119\n    test 550 line 93 _ExactTM.scale: 1.290553\n    test 551 line 93 _ExactTM.lat: 50.641941\n    test 552 line 93 _ExactTM.lon: 87.111557\n    test 553 line 94 _ExactTM.easting: 6398096.677297\n    test 554 line 94 _ExactTM.northing: 4410894.752104\n    test 555 line 94 _ExactTM.gamma: 32.558023\n    test 556 line 94 _ExactTM.scale: 1.548004\n    test 557 line 94 _ExactTM.lat: 24.411298\n    test 558 line 94 _ExactTM.lon: 56.881823\n    test 559 line 95 _ExactTM.easting: 3138623.300415\n    test 560 line 95 _ExactTM.northing: 3082960.600798\n    test 561 line 95 _ExactTM.gamma: 13.557672\n    test 562 line 95 _ExactTM.scale: 1.123724\n    test 563 line 95 _ExactTM.lat: 24.571871\n    test 564 line 95 _ExactTM.lon: 30.073097\n    test 565 line 96 _ExactTM.easting: 2748325.794651\n    test 566 line 96 _ExactTM.northing: 4202811.912668\n    test 567 line 96 _ExactTM.gamma: 17.578706\n    test 568 line 96 _ExactTM.scale: 1.094102\n    test 569 line 96 _ExactTM.lat: 34.202576\n    test 570 line 96 _ExactTM.lon: 29.383166\n    test 571 line 97 _ExactTM.easting: 6677830.630367\n    test 572 line 97 _ExactTM.northing: 5350071.837395\n    test 573 line 97 _ExactTM.gamma: 41.306641\n    test 574 line 97 _ExactTM.scale: 1.599774\n    test 575 line 97 _ExactTM.lat: 27.756285\n    test 576 line 97 _ExactTM.lon: 61.881905\n    test 577 line 98 _ExactTM.easting: 5941536.667431\n    test 578 line 98 _ExactTM.northing: 3293112.175140\n    test 579 line 98 _ExactTM.gamma: 22.752845\n    test 580 line 98 _ExactTM.scale: 1.468473\n    test 581 line 98 _ExactTM.lat: 19.742270\n    test 582 line 98 _ExactTM.lon: 50.957821\n    test 583 line 99 _ExactTM.easting: 3152481.792567\n    test 584 line 99 _ExactTM.northing: 5903048.837978\n    test 585 line 99 _ExactTM.gamma: 31.494606\n    test 586 line 99 _ExactTM.scale: 1.124085\n    test 587 line 99 _ExactTM.lat: 45.453582\n    test 588 line 99 _ExactTM.lon: 40.659833\n    test 589 line 100 _ExactTM.easting: 10460475.897730\n    test 590 line 100 _ExactTM.northing: 2553463.624391\n    test 591 line 100 _ExactTM.gamma: 21.965869\n    test 592 line 100 _ExactTM.scale: 2.700296\n    test 593 line 100 _ExactTM.lat: 8.322144\n    test 594 line 100 _ExactTM.lon: 69.488157\n    test 595 line 101 _ExactTM.easting: 1964010.778021\n    test 596 line 101 _ExactTM.northing: 5634042.923056\n    test 597 line 101 _ExactTM.gamma: 20.117800\n    test 598 line 101 _ExactTM.scale: 1.047344\n    test 599 line 101 _ExactTM.lat: 47.749831\n    test 600 line 101 _ExactTM.lon: 26.322002\n    test 601 line 102 _ExactTM.easting: 2065306.424934\n    test 602 line 102 _ExactTM.northing: 2135008.468651\n    test 603 line 102 _ExactTM.gamma: 6.258981\n    test 604 line 102 _ExactTM.scale: 1.052800\n    test 605 line 102 _ExactTM.lat: 18.297493\n    test 606 line 102 _ExactTM.lon: 19.244669\n    test 607 line 103 _ExactTM.easting: 5127738.132976\n    test 608 line 103 _ExactTM.northing: 6793804.304411\n    test 609 line 103 _ExactTM.gamma: 50.557915\n    test 610 line 103 _ExactTM.scale: 1.339412\n    test 611 line 103 _ExactTM.lat: 40.834541\n    test 612 line 103 _ExactTM.lon: 61.650750\n    test 613 line 104 _ExactTM.easting: 8385525.148166\n    test 614 line 104 _ExactTM.northing: 6924932.344306\n    test 615 line 104 _ExactTM.gamma: 59.087561\n    test 616 line 104 _ExactTM.scale: 1.990364\n    test 617 line 104 _ExactTM.lat: 26.273247\n    test 618 line 104 _ExactTM.lon: 74.926694\n    test 619 line 105 _ExactTM.easting: 2297510.791909\n    test 620 line 105 _ExactTM.northing: 2805666.962834\n    test 621 line 105 _ExactTM.gamma: 9.301553\n    test 622 line 105 _ExactTM.scale: 1.065508\n    test 623 line 105 _ExactTM.lat: 23.698347\n    test 624 line 105 _ExactTM.lon: 22.155657\n    test 625 line 106 _ExactTM.easting: 13749544.917635\n    test 626 line 106 _ExactTM.northing: 8288728.384650\n    test 627 line 106 _ExactTM.gamma: 75.033970\n    test 628 line 106 _ExactTM.scale: 4.270588\n    test 629 line 106 _ExactTM.lat: 12.364113\n    test 630 line 106 _ExactTM.lon: 86.348578\n    test 631 line 107 _ExactTM.easting: 317518.455546\n    test 632 line 107 _ExactTM.northing: 1097517.583745\n    test 633 line 107 _ExactTM.gamma: 0.499004\n    test 634 line 107 _ExactTM.scale: 1.000848\n    test 635 line 107 _ExactTM.lat: 9.916091\n    test 636 line 107 _ExactTM.lon: 2.895277\n    test 637 line 108 _ExactTM.easting: 3856035.184888\n    test 638 line 108 _ExactTM.northing: 9141364.450290\n    test 639 line 108 _ExactTM.gamma: 75.972763\n    test 640 line 108 _ExactTM.scale: 1.186786\n    test 641 line 108 _ExactTM.lat: 56.553876\n    test 642 line 108 _ExactTM.lon: 78.215077\n    test 643 line 109 _ExactTM.easting: 1457484.942823\n    test 644 line 109 _ExactTM.northing: 9385297.101973\n    test 645 line 109 _ExactTM.gamma: 66.784662\n    test 646 line 109 _ExactTM.scale: 1.025660\n    test 647 line 109 _ExactTM.lat: 75.957631\n    test 648 line 109 _ExactTM.lon: 67.407383\n    test 649 line 110 _ExactTM.easting: 1304934.901841\n    test 650 line 110 _ExactTM.northing: 3604655.155715\n    test 651 line 110 _ExactTM.gamma: 7.343989\n    test 652 line 110 _ExactTM.scale: 1.020672\n    test 653 line 110 _ExactTM.lat: 31.826531\n    test 654 line 110 _ExactTM.lon: 13.731050\n    test 655 line 111 _ExactTM.easting: 1399093.491792\n    test 656 line 111 _ExactTM.northing: 8314607.120342\n    test 657 line 111 _ExactTM.gamma: 38.630161\n    test 658 line 111 _ExactTM.scale: 1.023625\n    test 659 line 111 _ExactTM.lat: 70.542985\n    test 660 line 111 _ExactTM.lon: 40.282055\n    test 661 line 112 _ExactTM.easting: 356983.618540\n    test 662 line 112 _ExactTM.northing: 4282309.048994\n    test 663 line 112 _ExactTM.gamma: 2.561485\n    test 664 line 112 _ExactTM.scale: 1.001170\n    test 665 line 112 _ExactTM.lat: 38.617487\n    test 666 line 112 _ExactTM.lon: 4.099838\n    test 667 line 113 _ExactTM.easting: 9952911.325091\n    test 668 line 113 _ExactTM.northing: 1510288.212229\n    test 669 line 113 _ExactTM.gamma: 12.752154\n    test 670 line 113 _ExactTM.scale: 2.511357\n    test 671 line 113 _ExactTM.lat: 5.389447\n    test 672 line 113 _ExactTM.lon: 66.729612\n    test 673 line 114 _ExactTM.easting: 6367592.504007\n    test 674 line 114 _ExactTM.northing: 1200437.077672\n    test 675 line 114 _ExactTM.gamma: 8.338041\n    test 676 line 114 _ExactTM.scale: 1.546210\n    test 677 line 114 _ExactTM.lat: 6.995168\n    test 678 line 114 _ExactTM.lon: 50.014763\n    test 679 line 115 _ExactTM.easting: 4391263.676460\n    test 680 line 115 _ExactTM.northing: 6325455.989408\n    test 681 line 115 _ExactTM.gamma: 42.653541\n    test 682 line 115 _ExactTM.scale: 1.245560\n    test 683 line 115 _ExactTM.lat: 42.321894\n    test 684 line 115 _ExactTM.lon: 53.784040\n    test 685 line 116 _ExactTM.easting: 6209880.527527\n    test 686 line 116 _ExactTM.northing: 2154754.449747\n    test 687 line 116 _ExactTM.gamma: 14.919512\n    test 688 line 116 _ExactTM.scale: 1.516560\n    test 689 line 116 _ExactTM.lat: 12.698515\n    test 690 line 116 _ExactTM.lon: 50.242047\n    test 691 line 117 _ExactTM.easting: 1507053.688772\n    test 692 line 117 _ExactTM.northing: 6261383.513280\n    test 693 line 117 _ExactTM.gamma: 19.280373\n    test 694 line 117 _ExactTM.scale: 1.027584\n    test 695 line 117 _ExactTM.lat: 54.207636\n    test 696 line 117 _ExactTM.lon: 23.325731\n    test 697 line 118 _ExactTM.easting: 8332725.003777\n    test 698 line 118 _ExactTM.northing: 3002712.329753\n    test 699 line 118 _ExactTM.gamma: 24.059212\n    test 700 line 118 _ExactTM.scale: 1.990450\n    test 701 line 118 _ExactTM.lat: 13.224787\n    test 702 line 118 _ExactTM.lon: 62.426698\n    test 703 line 119 _ExactTM.easting: 3958910.085235\n    test 704 line 119 _ExactTM.northing: 3462284.926102\n    test 705 line 119 _ExactTM.gamma: 18.546398\n    test 706 line 119 _ExactTM.scale: 1.199351\n    test 707 line 119 _ExactTM.lat: 25.650282\n    test 708 line 119 _ExactTM.lon: 37.710391\n    test 709 line 120 _ExactTM.easting: 10452892.282083\n    test 710 line 120 _ExactTM.northing: 8000059.605114\n    test 711 line 120 _ExactTM.gamma: 71.075240\n    test 712 line 120 _ExactTM.scale: 2.650111\n    test 713 line 120 _ExactTM.lat: 20.684773\n    test 714 line 120 _ExactTM.lon: 82.849734\n    test 715 line 121 _ExactTM.easting: 496148.253731\n    test 716 line 121 _ExactTM.northing: 6388503.365043\n    test 717 line 121 _ExactTM.gamma: 6.970955\n    test 718 line 121 _ExactTM.scale: 1.002620\n    test 719 line 121 _ExactTM.lat: 57.367533\n    test 720 line 121 _ExactTM.lon: 8.260866\n    test 721 line 122 _ExactTM.easting: 7375792.085850\n    test 722 line 122 _ExactTM.northing: 5544624.072155\n    test 723 line 122 _ExactTM.gamma: 44.510851\n    test 724 line 122 _ExactTM.scale: 1.745898\n    test 725 line 122 _ExactTM.lat: 25.958757\n    test 726 line 122 _ExactTM.lon: 65.760477\n    test 727 line 123 _ExactTM.easting: 2826258.041979\n    test 728 line 123 _ExactTM.northing: 5167759.816959\n    test 729 line 123 _ExactTM.gamma: 23.783897\n    test 730 line 123 _ExactTM.scale: 1.099415\n    test 731 line 123 _ExactTM.lat: 41.395848\n    test 732 line 123 _ExactTM.lon: 33.661790\n    test 733 line 124 _ExactTM.easting: 3958563.378851\n    test 734 line 124 _ExactTM.northing: 8499923.231243\n    test 735 line 124 _ExactTM.gamma: 66.570945\n    test 736 line 124 _ExactTM.scale: 1.197296\n    test 737 line 124 _ExactTM.lat: 54.266617\n    test 738 line 124 _ExactTM.lon: 70.602199\n    test 739 line 125 _ExactTM.easting: 4408189.533462\n    test 740 line 125 _ExactTM.northing: 8046312.003642\n    test 741 line 125 _ExactTM.gamma: 62.216959\n    test 742 line 125 _ExactTM.scale: 1.246750\n    test 743 line 125 _ExactTM.lat: 49.840393\n    test 744 line 125 _ExactTM.lon: 68.036728\n    test 745 line 126 _ExactTM.easting: 3629225.627512\n    test 746 line 126 _ExactTM.northing: 6371258.454645\n    test 747 line 126 _ExactTM.gamma: 38.881675\n    test 748 line 126 _ExactTM.scale: 1.165511\n    test 749 line 126 _ExactTM.lat: 46.306035\n    test 750 line 126 _ExactTM.lon: 48.085828\n    test 751 line 127 _ExactTM.easting: 602838.450710\n    test 752 line 127 _ExactTM.northing: 4851370.637205\n    test 753 line 127 _ExactTM.gamma: 5.160395\n    test 754 line 127 _ExactTM.scale: 1.004073\n    test 755 line 127 _ExactTM.lat: 43.570988\n    test 756 line 127 _ExactTM.lon: 7.464494\n    test 757 line 128 _ExactTM.easting: 764616.665051\n    test 758 line 128 _ExactTM.northing: 2164299.337945\n    test 759 line 128 _ExactTM.gamma: 2.429300\n    test 760 line 128 _ExactTM.scale: 1.006835\n    test 761 line 128 _ExactTM.lat: 19.427290\n    test 762 line 128 _ExactTM.lon: 7.268247\n    test 763 line 129 _ExactTM.easting: 5048953.021931\n    test 764 line 129 _ExactTM.northing: 1885974.057398\n    test 765 line 129 _ExactTM.gamma: 11.459804\n    test 766 line 129 _ExactTM.scale: 1.332207\n    test 767 line 129 _ExactTM.lat: 12.713794\n    test 768 line 129 _ExactTM.lon: 42.507018\n    test 769 line 130 _ExactTM.easting: 2293996.601155\n    test 770 line 130 _ExactTM.northing: 2392408.644221\n    test 771 line 130 _ExactTM.gamma: 7.791838\n    test 772 line 130 _ExactTM.scale: 1.065348\n    test 773 line 130 _ExactTM.lat: 20.238782\n    test 774 line 130 _ExactTM.lon: 21.566068\n    test 775 line 131 _ExactTM.easting: 1530603.839418\n    test 776 line 131 _ExactTM.northing: 7287841.459898\n    test 777 line 131 _ExactTM.gamma: 27.502921\n    test 778 line 131 _ExactTM.scale: 1.028416\n    test 779 line 131 _ExactTM.lat: 62.367847\n    test 780 line 131 _ExactTM.lon: 30.438849\n    test 781 line 132 _ExactTM.easting: 2660000.093152\n    test 782 line 132 _ExactTM.northing: 5161982.213248\n    test 783 line 132 _ExactTM.gamma: 22.629836\n    test 784 line 132 _ExactTM.scale: 1.087851\n    test 785 line 132 _ExactTM.lat: 41.891569\n    test 786 line 132 _ExactTM.lon: 31.959547\n    test 787 line 133 _ExactTM.easting: 5037478.329414\n    test 788 line 133 _ExactTM.northing: 8768172.379908\n    test 789 line 133 _ExactTM.gamma: 73.511182\n    test 790 line 133 _ExactTM.scale: 1.325919\n    test 791 line 133 _ExactTM.lat: 47.664248\n    test 792 line 133 _ExactTM.lon: 77.630062\n    test 793 line 134 _ExactTM.easting: 2289650.957799\n    test 794 line 134 _ExactTM.northing: 8784328.593607\n    test 795 line 134 _ExactTM.gamma: 60.786067\n    test 796 line 134 _ExactTM.scale: 1.064346\n    test 797 line 134 _ExactTM.lat: 67.259559\n    test 798 line 134 _ExactTM.lon: 62.715293\n    test 799 line 135 _ExactTM.easting: 647913.889744\n    test 800 line 135 _ExactTM.northing: 6742382.228217\n    test 801 line 135 _ExactTM.gamma: 10.252667\n    test 802 line 135 _ExactTM.scale: 1.004748\n    test 803 line 135 _ExactTM.lat: 60.295381\n    test 804 line 135 _ExactTM.lon: 11.763097\n    test 805 line 136 _ExactTM.easting: 1118372.698566\n    test 806 line 136 _ExactTM.northing: 9040627.942263\n    test 807 line 136 _ExactTM.gamma: 48.936803\n    test 808 line 136 _ExactTM.scale: 1.014920\n    test 809 line 136 _ExactTM.lat: 76.878914\n    test 810 line 136 _ExactTM.lon: 49.685773\n    test 811 line 137 _ExactTM.easting: 440696.510070\n    test 812 line 137 _ExactTM.northing: 5500355.826297\n    test 813 line 137 _ExactTM.gamma: 4.636104\n    test 814 line 137 _ExactTM.scale: 1.001986\n    test 815 line 137 _ExactTM.lat: 49.495349\n    test 816 line 137 _ExactTM.lon: 6.087551\n    test 817 line 138 _ExactTM.easting: 601728.149727\n    test 818 line 138 _ExactTM.northing: 9095352.048149\n    test 819 line 138 _ExactTM.gamma: 33.435771\n    test 820 line 138 _ExactTM.scale: 1.004027\n    test 821 line 138 _ExactTM.lat: 80.297265\n    test 822 line 138 _ExactTM.lon: 33.816372\n    test 823 line 139 _ExactTM.easting: 3481444.777827\n    test 824 line 139 _ExactTM.northing: 291665.708749\n    test 825 line 139 _ExactTM.gamma: 1.314726\n    test 826 line 139 _ExactTM.scale: 1.153534\n    test 827 line 139 _ExactTM.lat: 2.286437\n    test 828 line 139 _ExactTM.lon: 29.855149\n    test 829 line 140 _ExactTM.easting: 3515304.901524\n    test 830 line 140 _ExactTM.northing: 1443981.882918\n    test 831 line 140 _ExactTM.gamma: 6.641638\n    test 832 line 140 _ExactTM.scale: 1.156509\n    test 833 line 140 _ExactTM.lat: 11.264457\n    test 834 line 140 _ExactTM.lon: 30.743907\n    test 835 line 141 _ExactTM.easting: 160012.186959\n    test 836 line 141 _ExactTM.northing: 3922609.253231\n    test 837 line 141 _ExactTM.gamma: 1.022225\n    test 838 line 141 _ExactTM.scale: 0.999916\n    test 839 line 141 _ExactTM.lat: 35.434073\n    test 840 line 141 _ExactTM.lon: 1.762795\n    test 841 line 142 _ExactTM.easting: 4163744.245622\n    test 842 line 142 _ExactTM.northing: 936884.674804\n    test 843 line 142 _ExactTM.gamma: 4.892559\n    test 844 line 142 _ExactTM.scale: 1.222164\n    test 845 line 142 _ExactTM.lat: 6.923695\n    test 846 line 142 _ExactTM.lon: 35.289456\n    test 847 line 143 _ExactTM.easting: 6155200.017926\n    test 848 line 143 _ExactTM.northing: 6926306.628390\n    test 849 line 143 _ExactTM.gamma: 55.103258\n    test 850 line 143 _ExactTM.scale: 1.500556\n    test 851 line 143 _ExactTM.lat: 36.129672\n    test 852 line 143 _ExactTM.lon: 67.533176\n    test 853 line 144 _ExactTM.easting: 16263383.285440\n    test 854 line 144 _ExactTM.northing: 3591296.731341\n    test 855 line 144 _ExactTM.gamma: 36.040254\n    test 856 line 144 _ExactTM.scale: 6.589288\n    test 857 line 144 _ExactTM.lat: 4.406529\n    test 858 line 144 _ExactTM.lon: 81.965734\n    test 859 line 145 _ExactTM.easting: 14220995.515398\n    test 860 line 145 _ExactTM.northing: 5100587.457503\n    test 861 line 145 _ExactTM.gamma: 47.314258\n    test 862 line 145 _ExactTM.scale: 4.693202\n    test 863 line 145 _ExactTM.lat: 8.474589\n    test 864 line 145 _ExactTM.lon: 81.129945\n    test 865 line 146 _ExactTM.easting: 3173034.802372\n    test 866 line 146 _ExactTM.northing: 7263421.942957\n    test 867 line 146 _ExactTM.gamma: 45.215808\n    test 868 line 146 _ExactTM.scale: 1.125410\n    test 869 line 146 _ExactTM.lat: 53.907276\n    test 870 line 146 _ExactTM.lon: 51.252904\n    test 871 line 147 _ExactTM.easting: 10253274.092204\n    test 872 line 147 _ExactTM.northing: 8867574.299792\n    test 873 line 147 _ExactTM.gamma: 79.198250\n    test 874 line 147 _ExactTM.scale: 2.572372\n    test 875 line 147 _ExactTM.lat: 22.120545\n    test 876 line 147 _ExactTM.lon: 85.756782\n    test 877 line 148 _ExactTM.easting: 2415561.483230\n    test 878 line 148 _ExactTM.northing: 8813225.217097\n    test 879 line 148 _ExactTM.gamma: 62.548978\n    test 880 line 148 _ExactTM.scale: 1.071748\n    test 881 line 148 _ExactTM.lat: 66.444100\n    test 882 line 148 _ExactTM.lon: 64.532960\n    test 883 line 149 _ExactTM.easting: 9589179.293295\n    test 884 line 149 _ExactTM.northing: 1777680.784143\n    test 885 line 149 _ExactTM.gamma: 14.838483\n    test 886 line 149 _ExactTM.scale: 2.380716\n    test 887 line 149 _ExactTM.lat: 6.670965\n    test 888 line 149 _ExactTM.lon: 65.660408\n    test 889 line 150 _ExactTM.easting: 727939.438391\n    test 890 line 150 _ExactTM.northing: 3684363.236810\n    test 891 line 150 _ExactTM.gamma: 4.266227\n    test 892 line 150 _ExactTM.scale: 1.006140\n    test 893 line 150 _ExactTM.lat: 33.054057\n    test 894 line 150 _ExactTM.lon: 7.787458\n    test 895 line 151 _ExactTM.easting: 1250765.991085\n    test 896 line 151 _ExactTM.northing: 792869.242719\n    test 897 line 151 _ExactTM.gamma: 1.396497\n    test 898 line 151 _ExactTM.scale: 1.019026\n    test 899 line 151 _ExactTM.lat: 7.035525\n    test 900 line 151 _ExactTM.lon: 11.253707\n    test 901 line 152 _ExactTM.easting: 710421.705887\n    test 902 line 152 _ExactTM.northing: 5019406.075928\n    test 903 line 152 _ExactTM.gamma: 6.393949\n    test 904 line 152 _ExactTM.scale: 1.005812\n    test 905 line 152 _ExactTM.lat: 44.971340\n    test 906 line 152 _ExactTM.lon: 9.009304\n    test 907 line 153 _ExactTM.easting: 4600995.074643\n    test 908 line 153 _ExactTM.northing: 4505712.084593\n    test 909 line 153 _ExactTM.gamma: 27.997458\n    test 910 line 153 _ExactTM.scale: 1.271841\n    test 911 line 153 _ExactTM.lat: 30.821397\n    test 912 line 153 _ExactTM.lon: 45.970577\n    test 913 line 154 _ExactTM.easting: 557642.627782\n    test 914 line 154 _ExactTM.northing: 7006911.251644\n    test 915 line 154 _ExactTM.gamma: 9.769903\n    test 916 line 154 _ExactTM.scale: 1.003411\n    test 917 line 154 _ExactTM.lat: 62.763886\n    test 918 line 154 _ExactTM.lon: 10.960144\n    test 919 line 155 _ExactTM.easting: 4635062.294291\n    test 920 line 155 _ExactTM.northing: 2702556.153311\n    test 921 line 155 _ExactTM.gamma: 15.779547\n    test 922 line 155 _ExactTM.scale: 1.277178\n    test 923 line 155 _ExactTM.lat: 18.888611\n    test 924 line 155 _ExactTM.lon: 41.009871\n    test 925 line 156 _ExactTM.easting: 14554962.255919\n    test 926 line 156 _ExactTM.northing: 4716639.908572\n    test 927 line 156 _ExactTM.gamma: 44.192751\n    test 928 line 156 _ExactTM.scale: 4.960020\n    test 929 line 156 _ExactTM.lat: 7.524119\n    test 930 line 156 _ExactTM.lon: 81.050715\n    test 931 line 157 _ExactTM.easting: 882126.661736\n    test 932 line 157 _ExactTM.northing: 7947612.369506\n    test 933 line 157 _ExactTM.gamma: 22.429487\n    test 934 line 157 _ExactTM.scale: 1.009132\n    test 935 line 157 _ExactTM.lat: 70.063902\n    test 936 line 157 _ExactTM.lon: 23.705255\n    test 937 line 158 _ExactTM.easting: 20262021.645983\n    test 938 line 158 _ExactTM.northing: 8113827.820796\n    test 939 line 158 _ExactTM.gamma: 76.936057\n    test 940 line 158 _ExactTM.scale: 10.349092\n    test 941 line 158 _ExactTM.lat: 3.556526\n    test 942 line 158 _ExactTM.lon: 88.363529\n    test 943 line 159 _ExactTM.easting: 6500508.399850\n    test 944 line 159 _ExactTM.northing: 6956476.342368\n    test 945 line 159 _ExactTM.gamma: 56.237116\n    test 946 line 159 _ExactTM.scale: 1.563162\n    test 947 line 159 _ExactTM.lat: 34.551257\n    test 948 line 159 _ExactTM.lon: 69.111091\n    test 949 line 160 _ExactTM.easting: 3884036.641314\n    test 950 line 160 _ExactTM.northing: 6890167.411733\n    test 951 line 160 _ExactTM.gamma: 45.760130\n    test 952 line 160 _ExactTM.scale: 1.190167\n    test 953 line 160 _ExactTM.lat: 47.929051\n    test 954 line 160 _ExactTM.lon: 54.103418\n    test 955 line 161 _ExactTM.easting: 217855.546078\n    test 956 line 161 _ExactTM.northing: 6184108.122568\n    test 957 line 161 _ExactTM.gamma: 2.870993\n    test 958 line 161 _ExactTM.scale: 1.000182\n    test 959 line 161 _ExactTM.lat: 55.753536\n    test 960 line 161 _ExactTM.lon: 3.471798\n    test 961 line 162 _ExactTM.easting: 11384139.290402\n    test 962 line 162 _ExactTM.northing: 8893889.949556\n    test 963 line 162 _ExactTM.gamma: 79.774854\n    test 964 line 162 _ExactTM.scale: 3.024672\n    test 965 line 162 _ExactTM.lat: 18.530847\n    test 966 line 162 _ExactTM.lon: 86.555312\n    test 967 line 163 _ExactTM.easting: 3469855.989805\n    test 968 line 163 _ExactTM.northing: 7723193.799228\n    test 969 line 163 _ExactTM.gamma: 53.114700\n    test 970 line 163 _ExactTM.scale: 1.150540\n    test 971 line 163 _ExactTM.lat: 54.510125\n    test 972 line 163 _ExactTM.lon: 58.556056\n    test 973 line 164 _ExactTM.easting: 5926165.994939\n    test 974 line 164 _ExactTM.northing: 9385463.732747\n    test 975 line 164 _ExactTM.gamma: 82.506981\n    test 976 line 164 _ExactTM.scale: 1.459758\n    test 977 line 164 _ExactTM.lat: 42.864162\n    test 978 line 164 _ExactTM.lon: 84.866326\n    test 979 line 165 _ExactTM.easting: 5798639.662224\n    test 980 line 165 _ExactTM.northing: 5305387.640916\n    test 981 line 165 _ExactTM.gamma: 38.617257\n    test 982 line 165 _ExactTM.scale: 1.442263\n    test 983 line 165 _ExactTM.lat: 30.911943\n    test 984 line 165 _ExactTM.lon: 57.114102\n    test 985 line 166 _ExactTM.easting: 9464.934388\n    test 986 line 166 _ExactTM.northing: 6489121.624944\n    test 987 line 166 _ExactTM.gamma: 0.138696\n    test 988 line 166 _ExactTM.scale: 0.999601\n    test 989 line 166 _ExactTM.lat: 58.542493\n    test 990 line 166 _ExactTM.lon: 0.162593\n    test 991 line 167 _ExactTM.easting: 12575834.275614\n    test 992 line 167 _ExactTM.northing: 8356610.895486\n    test 993 line 167 _ExactTM.gamma: 75.235223\n    test 994 line 167 _ExactTM.scale: 3.599442\n    test 995 line 167 _ExactTM.lat: 15.022689\n    test 996 line 167 _ExactTM.lon: 85.792615\n    test 997 line 168 _ExactTM.easting: 2719653.543469\n    test 998 line 168 _ExactTM.northing: 9362389.163495\n    test 999 line 168 _ExactTM.gamma: 76.049670\n    test 1000 line 168 _ExactTM.scale: 1.091315\n    test 1001 line 168 _ExactTM.lat: 65.692275\n    test 1002 line 168 _ExactTM.lon: 77.241377\n    test 1003 line 169 _ExactTM.easting: 4845341.924698\n    test 1004 line 169 _ExactTM.northing: 8710522.326901\n    test 1005 line 169 _ExactTM.gamma: 72.320942\n    test 1006 line 169 _ExactTM.scale: 1.300382\n    test 1007 line 169 _ExactTM.lat: 48.806211\n    test 1008 line 169 _ExactTM.lon: 76.486365\n    test 1009 line 170 _ExactTM.easting: 3935261.522763\n    test 1010 line 170 _ExactTM.northing: 9454271.649062\n    test 1011 line 170 _ExactTM.gamma: 81.162334\n    test 1012 line 170 _ExactTM.scale: 1.194767\n    test 1013 line 170 _ExactTM.lat: 56.436025\n    test 1014 line 170 _ExactTM.lon: 82.611568\n    test 1015 line 171 _ExactTM.easting: 7074299.823000\n    test 1016 line 171 _ExactTM.northing: 1648736.065055\n    test 1017 line 171 _ExactTM.gamma: 12.145925\n    test 1018 line 171 _ExactTM.scale: 1.687551\n    test 1019 line 171 _ExactTM.lat: 8.766053\n    test 1020 line 171 _ExactTM.lon: 54.367539\n    test 1021 line 172 _ExactTM.easting: 3689072.579308\n    test 1022 line 172 _ExactTM.northing: 2230802.665211\n    test 1023 line 172 _ExactTM.gamma: 10.856248\n    test 1024 line 172 _ExactTM.scale: 1.172689\n    test 1025 line 172 _ExactTM.lat: 17.095495\n    test 1026 line 172 _ExactTM.lon: 33.059128\n    test 1027 line 173 _ExactTM.easting: 8102565.885587\n    test 1028 line 173 _ExactTM.northing: 5167396.617580\n    test 1029 line 173 _ExactTM.gamma: 42.324886\n    test 1030 line 173 _ExactTM.scale: 1.921927\n    test 1031 line 173 _ExactTM.lat: 22.142861\n    test 1032 line 173 _ExactTM.lon: 67.200684\n    test 1033 line 174 _ExactTM.easting: 8181271.353564\n    test 1034 line 174 _ExactTM.northing: 4425436.547185\n    test 1035 line 174 _ExactTM.gamma: 35.900845\n    test 1036 line 174 _ExactTM.scale: 1.945017\n    test 1037 line 174 _ExactTM.lat: 19.222623\n    test 1038 line 174 _ExactTM.lon: 65.180785\n    test 1039 line 175 _ExactTM.easting: 767067.394003\n    test 1040 line 175 _ExactTM.northing: 3701745.857296\n    test 1041 line 175 _ExactTM.gamma: 4.519201\n    test 1042 line 175 _ExactTM.scale: 1.006863\n    test 1043 line 175 _ExactTM.lat: 33.182474\n    test 1044 line 175 _ExactTM.lon: 8.216952\n    test 1045 line 176 _ExactTM.easting: 6688114.168572\n    test 1046 line 176 _ExactTM.northing: 2052857.299639\n    test 1047 line 176 _ExactTM.gamma: 14.766191\n    test 1048 line 176 _ExactTM.scale: 1.607200\n    test 1049 line 176 _ExactTM.lat: 11.417963\n    test 1050 line 176 _ExactTM.lon: 52.808691\n    test 1051 line 177 _ExactTM.easting: 5608408.773761\n    test 1052 line 177 _ExactTM.northing: 3859055.659110\n    test 1053 line 177 _ExactTM.gamma: 26.244151\n    test 1054 line 177 _ExactTM.scale: 1.413463\n    test 1055 line 177 _ExactTM.lat: 23.836688\n    test 1056 line 177 _ExactTM.lon: 50.500180\n    test 1057 line 178 _ExactTM.easting: 3836942.765275\n    test 1058 line 178 _ExactTM.northing: 6415467.634326\n    test 1059 line 178 _ExactTM.gamma: 40.575885\n    test 1060 line 178 _ExactTM.scale: 1.185615\n    test 1061 line 178 _ExactTM.lat: 45.550020\n    test 1062 line 178 _ExactTM.lon: 50.148036\n    test 1063 line 179 _ExactTM.easting: 1298730.366025\n    test 1064 line 179 _ExactTM.northing: 6021453.000792\n    test 1065 line 179 _ExactTM.gamma: 15.613320\n    test 1066 line 179 _ExactTM.scale: 1.020367\n    test 1067 line 179 _ExactTM.lat: 52.746079\n    test 1068 line 179 _ExactTM.lon: 19.343926\n    test 1069 line 180 _ExactTM.easting: 416934.289208\n    test 1070 line 180 _ExactTM.northing: 7295683.451705\n    test 1071 line 180 _ExactTM.gamma: 8.238232\n    test 1072 line 180 _ExactTM.scale: 1.001729\n    test 1073 line 180 _ExactTM.lat: 65.513348\n    test 1074 line 180 _ExactTM.lon: 9.039529\n    test 1075 line 181 _ExactTM.easting: 4336076.850889\n    test 1076 line 181 _ExactTM.northing: 7617975.722779\n    test 1077 line 181 _ExactTM.gamma: 56.537088\n    test 1078 line 181 _ExactTM.scale: 1.238582\n    test 1079 line 181 _ExactTM.lat: 48.709795\n    test 1080 line 181 _ExactTM.lon: 63.554005\n    test 1081 line 182 _ExactTM.easting: 168047.336980\n    test 1082 line 182 _ExactTM.northing: 2185000.046530\n    test 1083 line 182 _ExactTM.gamma: 0.542187\n    test 1084 line 182 _ExactTM.scale: 0.999949\n    test 1085 line 182 _ExactTM.lat: 19.753509\n    test 1086 line 182 _ExactTM.lon: 1.603846\n    test 1087 line 183 _ExactTM.easting: 8276281.328790\n    test 1088 line 183 _ExactTM.northing: 263444.350545\n    test 1089 line 183 _ExactTM.gamma: 2.071435\n    test 1090 line 183 _ExactTM.scale: 1.980314\n    test 1091 line 183 _ExactTM.lat: 1.202816\n    test 1092 line 183 _ExactTM.lon: 59.377276\n    test 1093 line 184 _ExactTM.easting: 4772573.810710\n    test 1094 line 184 _ExactTM.northing: 6765710.336002\n    test 1095 line 184 _ExactTM.gamma: 48.857561\n    test 1096 line 184 _ExactTM.scale: 1.291911\n    test 1097 line 184 _ExactTM.lat: 42.564975\n    test 1098 line 184 _ExactTM.lon: 59.356947\n    test 1099 line 185 _ExactTM.easting: 5427755.074639\n    test 1100 line 185 _ExactTM.northing: 1556055.820924\n    test 1101 line 185 _ExactTM.gamma: 9.862178\n    test 1102 line 185 _ExactTM.scale: 1.387394\n    test 1103 line 185 _ExactTM.lat: 10.090572\n    test 1104 line 185 _ExactTM.lon: 44.604132\n    test 1105 line 186 _ExactTM.easting: 11588458.616041\n    test 1106 line 186 _ExactTM.northing: 5707993.922613\n    test 1107 line 186 _ExactTM.gamma: 50.784827\n    test 1108 line 186 _ExactTM.scale: 3.149567\n    test 1109 line 186 _ExactTM.lat: 14.133028\n    test 1110 line 186 _ExactTM.lon: 78.097533\n    test 1111 line 187 _ExactTM.easting: 7152433.802688\n    test 1112 line 187 _ExactTM.northing: 761390.695844\n    test 1113 line 187 _ExactTM.gamma: 5.607350\n    test 1114 line 187 _ExactTM.scale: 1.705261\n    test 1115 line 187 _ExactTM.lat: 4.031123\n    test 1116 line 187 _ExactTM.lon: 54.048782\n    test 1117 line 188 _ExactTM.easting: 3105651.390901\n    test 1118 line 188 _ExactTM.northing: 9426026.169064\n    test 1119 line 188 _ExactTM.gamma: 78.750206\n    test 1120 line 188 _ExactTM.scale: 1.119737\n    test 1121 line 188 _ExactTM.lat: 62.746603\n    test 1122 line 188 _ExactTM.lon: 79.968641\n    test 1123 line 189 _ExactTM.easting: 2959009.639022\n    test 1124 line 189 _ExactTM.northing: 8339242.269282\n    test 1125 line 189 _ExactTM.gamma: 58.460865\n    test 1126 line 189 _ExactTM.scale: 1.108554\n    test 1127 line 189 _ExactTM.lat: 60.626429\n    test 1128 line 189 _ExactTM.lon: 61.851551\n    test 1129 line 190 _ExactTM.easting: 8640472.267145\n    test 1130 line 190 _ExactTM.northing: 6230320.417931\n    test 1131 line 190 _ExactTM.gamma: 52.816810\n    test 1132 line 190 _ExactTM.scale: 2.062973\n    test 1133 line 190 _ExactTM.lat: 23.600626\n    test 1134 line 190 _ExactTM.lon: 72.811634\n    test 1135 line 191 _ExactTM.easting: 811352.108932\n    test 1136 line 191 _ExactTM.northing: 9816129.813481\n    test 1137 line 191 _ExactTM.gamma: 77.299184\n    test 1138 line 191 _ExactTM.scale: 1.007651\n    test 1139 line 191 _ExactTM.lat: 82.572236\n    test 1140 line 191 _ExactTM.lon: 77.402323\n    test 1141 line 192 _ExactTM.easting: 6521874.973458\n    test 1142 line 192 _ExactTM.northing: 1053612.479744\n    test 1143 line 192 _ExactTM.gamma: 7.407328\n    test 1144 line 192 _ExactTM.scale: 1.575529\n    test 1145 line 192 _ExactTM.lat: 6.030051\n    test 1146 line 192 _ExactTM.lon: 50.783505\n    test 1147 line 193 _ExactTM.easting: 3477983.997875\n    test 1148 line 193 _ExactTM.northing: 5651613.325947\n    test 1149 line 193 _ExactTM.gamma: 31.530673\n    test 1150 line 193 _ExactTM.scale: 1.151875\n    test 1151 line 193 _ExactTM.lat: 42.411523\n    test 1152 line 193 _ExactTM.lon: 42.258009\n    test 1153 line 194 _ExactTM.easting: 629892.822243\n    test 1154 line 194 _ExactTM.northing: 3283914.910451\n    test 1155 line 194 _ExactTM.gamma: 3.210482\n    test 1156 line 194 _ExactTM.scale: 1.004499\n    test 1157 line 194 _ExactTM.lat: 29.526120\n    test 1158 line 194 _ExactTM.lon: 6.493069\n    test 1159 line 195 _ExactTM.easting: 3381879.687227\n    test 1160 line 195 _ExactTM.northing: 5103629.325665\n    test 1161 line 195 _ExactTM.gamma: 26.748108\n    test 1162 line 195 _ExactTM.scale: 1.143559\n    test 1163 line 195 _ExactTM.lat: 39.021853\n    test 1164 line 195 _ExactTM.lon: 38.641779\n    test 1165 line 196 _ExactTM.easting: 2815986.534177\n    test 1166 line 196 _ExactTM.northing: 9387029.120718\n    test 1167 line 196 _ExactTM.gamma: 76.967262\n    test 1168 line 196 _ExactTM.scale: 1.098032\n    test 1169 line 196 _ExactTM.lat: 64.971850\n    test 1170 line 196 _ExactTM.lon: 78.151893\n    test 1171 line 197 _ExactTM.easting: 3398195.889603\n    test 1172 line 197 _ExactTM.northing: 9138936.031490\n    test 1173 line 197 _ExactTM.gamma: 74.477499\n    test 1174 line 197 _ExactTM.scale: 1.144009\n    test 1175 line 197 _ExactTM.lat: 59.961819\n    test 1176 line 197 _ExactTM.lon: 76.473422\n    test 1177 line 198 _ExactTM.easting: 2421734.754637\n    test 1178 line 198 _ExactTM.northing: 5002372.094991\n    test 1179 line 198 _ExactTM.gamma: 20.017082\n    test 1180 line 198 _ExactTM.scale: 1.072592\n    test 1181 line 198 _ExactTM.lat: 41.374040\n    test 1182 line 198 _ExactTM.lon: 28.848343\n    test 1183 line 199 _ExactTM.easting: 2360869.895525\n    test 1184 line 199 _ExactTM.northing: 9553298.449536\n    test 1185 line 199 _ExactTM.gamma: 78.848205\n    test 1186 line 199 _ExactTM.scale: 1.068453\n    test 1187 line 199 _ExactTM.lat: 68.946087\n    test 1188 line 199 _ExactTM.lon: 79.574523\n    test 1189 line 200 _ExactTM.easting: 1196539.972194\n    test 1190 line 200 _ExactTM.northing: 9861920.836230\n    test 1191 line 200 _ExactTM.gamma: 83.437668\n    test 1192 line 200 _ExactTM.scale: 1.017137\n    test 1193 line 200 _ExactTM.lat: 79.275096\n    test 1194 line 200 _ExactTM.lon: 83.551272\n    test 1195 line 201 _ExactTM.easting: 1327758.704795\n    test 1196 line 201 _ExactTM.northing: 2375509.241683\n    test 1197 line 201 _ExactTM.gamma: 4.617572\n    test 1198 line 201 _ExactTM.scale: 1.021465\n    test 1199 line 201 _ExactTM.lat: 21.000252\n    test 1200 line 201 _ExactTM.lon: 12.697444\n    test 1201 line 202 _ExactTM.easting: 2070860.327644\n    test 1202 line 202 _ExactTM.northing: 8604500.719581\n    test 1203 line 202 _ExactTM.gamma: 54.722761\n    test 1204 line 202 _ExactTM.scale: 1.052469\n    test 1205 line 202 _ExactTM.lat: 68.015227\n    test 1206 line 202 _ExactTM.lon: 56.732419\n    test 1207 line 203 _ExactTM.easting: 6564776.654864\n    test 1208 line 203 _ExactTM.northing: 8171207.177379\n    test 1209 line 203 _ExactTM.gamma: 69.237523\n    test 1210 line 203 _ExactTM.scale: 1.573894\n    test 1211 line 203 _ExactTM.lat: 37.423675\n    test 1212 line 203 _ExactTM.lon: 76.947359\n    test 1213 line 204 _ExactTM.easting: 592653.553821\n    test 1214 line 204 _ExactTM.northing: 6125529.810052\n    test 1215 line 204 _ExactTM.gamma: 7.600785\n    test 1216 line 204 _ExactTM.scale: 1.003912\n    test 1217 line 204 _ExactTM.lat: 54.922707\n    test 1218 line 204 _ExactTM.lon: 9.260818\n    test 1219 line 205 _ExactTM.easting: 693459.671821\n    test 1220 line 205 _ExactTM.northing: 6943779.991032\n    test 1221 line 205 _ExactTM.gamma: 11.787587\n    test 1222 line 205 _ExactTM.scale: 1.005496\n    test 1223 line 205 _ExactTM.lat: 61.982810\n    test 1224 line 205 _ExactTM.lon: 13.299659\n    test 1225 line 206 _ExactTM.easting: 1838956.187625\n    test 1226 line 206 _ExactTM.northing: 3511959.612381\n    test 1227 line 206 _ExactTM.gamma: 9.844313\n    test 1228 line 206 _ExactTM.scale: 1.041603\n    test 1229 line 206 _ExactTM.lat: 30.324214\n    test 1230 line 206 _ExactTM.lon: 18.959769\n    test 1231 line 207 _ExactTM.easting: 4460690.884597\n    test 1232 line 207 _ExactTM.northing: 5541873.235403\n    test 1233 line 207 _ExactTM.gamma: 35.768613\n    test 1234 line 207 _ExactTM.scale: 1.254179\n    test 1235 line 207 _ExactTM.lat: 37.629667\n    test 1236 line 207 _ExactTM.lon: 49.649131\n    test 1237 line 208 _ExactTM.easting: 2311168.998941\n    test 1238 line 208 _ExactTM.northing: 9480561.869119\n    test 1239 line 208 _ExactTM.gamma: 76.828257\n    test 1240 line 208 _ExactTM.scale: 1.065556\n    test 1241 line 208 _ExactTM.lat: 69.225574\n    test 1242 line 208 _ExactTM.lon: 77.656135\n    test 1243 line 209 _ExactTM.easting: 4111775.114451\n    test 1244 line 209 _ExactTM.northing: 6509014.348792\n    test 1245 line 209 _ExactTM.gamma: 43.052130\n    test 1246 line 209 _ExactTM.scale: 1.214125\n    test 1247 line 209 _ExactTM.lat: 44.698478\n    test 1248 line 209 _ExactTM.lon: 52.979304\n    test 1249 line 210 _ExactTM.easting: 75358.261962\n    test 1250 line 210 _ExactTM.northing: 7711258.662251\n    test 1251 line 210 _ExactTM.gamma: 1.806297\n    test 1252 line 210 _ExactTM.scale: 0.999669\n    test 1253 line 210 _ExactTM.lat: 69.499594\n    test 1254 line 210 _ExactTM.lon: 1.928336\n    test 1255 line 211 _ExactTM.easting: 8781885.229116\n    test 1256 line 211 _ExactTM.northing: 9184776.452211\n    test 1257 line 211 _ExactTM.gamma: 81.795539\n    test 1258 line 211 _ExactTM.scale: 2.094908\n    test 1259 line 211 _ExactTM.lat: 27.981364\n    test 1260 line 211 _ExactTM.lon: 86.061113\n    test 1261 line 212 _ExactTM.easting: 954378.415174\n    test 1262 line 212 _ExactTM.northing: 7449110.669807\n    test 1263 line 212 _ExactTM.gamma: 19.380657\n    test 1264 line 212 _ExactTM.scale: 1.010768\n    test 1265 line 212 _ExactTM.lat: 65.699839\n    test 1266 line 212 _ExactTM.lon: 21.104725\n    test 1267 line 213 _ExactTM.easting: 720971.793706\n    test 1268 line 213 _ExactTM.northing: 5265195.121555\n    test 1269 line 213 _ExactTM.gamma: 7.002995\n    test 1270 line 213 _ExactTM.scale: 1.005995\n    test 1271 line 213 _ExactTM.lat: 47.143648\n    test 1272 line 213 _ExactTM.lon: 9.512189\n    test 1273 line 214 _ExactTM.easting: 561561.493937\n    test 1274 line 214 _ExactTM.northing: 989910.236221\n    test 1275 line 214 _ExactTM.gamma: 0.793118\n    test 1276 line 214 _ExactTM.scale: 1.003505\n    test 1277 line 214 _ExactTM.lat: 8.920167\n    test 1278 line 214 _ExactTM.lon: 5.101513\n    test 1279 line 215 _ExactTM.easting: 3446829.634468\n    test 1280 line 215 _ExactTM.northing: 9232868.155664\n    test 1281 line 215 _ExactTM.gamma: 76.279075\n    test 1282 line 215 _ExactTM.scale: 1.148263\n    test 1283 line 215 _ExactTM.lat: 59.778971\n    test 1284 line 215 _ExactTM.lon: 78.080322\n    test 1285 line 216 _ExactTM.easting: 4048307.545909\n    test 1286 line 216 _ExactTM.northing: 9800416.422998\n    test 1287 line 216 _ExactTM.gamma: 86.843918\n    test 1288 line 216 _ExactTM.scale: 1.206495\n    test 1289 line 216 _ExactTM.lat: 55.865310\n    test 1290 line 216 _ExactTM.lon: 87.384288\n    test 1291 line 217 _ExactTM.easting: 8973188.480293\n    test 1292 line 217 _ExactTM.northing: 7042230.087021\n    test 1293 line 217 _ExactTM.gamma: 60.872456\n    test 1294 line 217 _ExactTM.scale: 2.156098\n    test 1295 line 217 _ExactTM.lat: 24.310973\n    test 1296 line 217 _ExactTM.lon: 76.823777\n    test 1297 line 218 _ExactTM.easting: 126314.191618\n    test 1298 line 218 _ExactTM.northing: 396006.687921\n    test 1299 line 218 _ExactTM.gamma: 0.071065\n    test 1300 line 218 _ExactTM.scale: 0.999798\n    test 1301 line 218 _ExactTM.lat: 3.582041\n    test 1302 line 218 _ExactTM.lon: 1.137286\n    test 1303 line 219 _ExactTM.easting: 5247652.345647\n    test 1304 line 219 _ExactTM.northing: 8670513.359752\n    test 1305 line 219 _ExactTM.gamma: 72.700498\n    test 1306 line 219 _ExactTM.scale: 1.355272\n    test 1307 line 219 _ExactTM.lat: 46.124233\n    test 1308 line 219 _ExactTM.lon: 77.313118\n    test 1309 line 220 _ExactTM.easting: 8103656.838119\n    test 1310 line 220 _ExactTM.northing: 9469794.014737\n    test 1311 line 220 _ExactTM.gamma: 84.490673\n    test 1312 line 220 _ExactTM.scale: 1.912164\n    test 1313 line 220 _ExactTM.lat: 31.171391\n    test 1314 line 220 _ExactTM.lon: 87.104504\n    test 1315 line 221 _ExactTM.easting: 6300112.758236\n    test 1316 line 221 _ExactTM.northing: 93835.917364\n    test 1317 line 221 _ExactTM.gamma: 0.644805\n    test 1318 line 221 _ExactTM.scale: 1.534073\n    test 1319 line 221 _ExactTM.lat: 0.553171\n    test 1320 line 221 _ExactTM.lon: 49.117104\n    test 1321 line 222 _ExactTM.easting: 3894813.593782\n    test 1322 line 222 _ExactTM.northing: 4833832.341027\n    test 1323 line 222 _ExactTM.gamma: 27.453298\n    test 1324 line 222 _ExactTM.scale: 1.192135\n    test 1325 line 222 _ExactTM.lat: 35.361587\n    test 1326 line 222 _ExactTM.lon: 41.860599\n    test 1327 line 223 _ExactTM.easting: 402511.346712\n    test 1328 line 223 _ExactTM.northing: 3520621.561911\n    test 1329 line 223 _ExactTM.gamma: 2.238474\n    test 1330 line 223 _ExactTM.scale: 1.001599\n    test 1331 line 223 _ExactTM.lat: 31.750314\n    test 1332 line 223 _ExactTM.lon: 4.248167\n    test 1333 line 224 _ExactTM.easting: 5357378.503148\n    test 1334 line 224 _ExactTM.northing: 2772997.602234\n    test 1335 line 224 _ExactTM.gamma: 17.823560\n    test 1336 line 224 _ExactTM.scale: 1.376031\n    test 1337 line 224 _ExactTM.lat: 17.924336\n    test 1338 line 224 _ExactTM.lon: 46.096402\n    test 1339 line 225 _ExactTM.easting: 2807553.985866\n    test 1340 line 225 _ExactTM.northing: 8177847.980275\n    test 1341 line 225 _ExactTM.gamma: 54.680045\n    test 1342 line 225 _ExactTM.scale: 1.097531\n    test 1343 line 225 _ExactTM.lat: 60.931488\n    test 1344 line 225 _ExactTM.lon: 58.221214\n    test 1345 line 226 _ExactTM.easting: 18289045.166501\n    test 1346 line 226 _ExactTM.northing: 7792942.339604\n    test 1347 line 226 _ExactTM.gamma: 73.216494\n    test 1348 line 226 _ExactTM.scale: 8.098009\n    test 1349 line 226 _ExactTM.lat: 5.358151\n    test 1350 line 226 _ExactTM.lon: 87.556213\n    test 1351 line 227 _ExactTM.easting: 8376822.459538\n    test 1352 line 227 _ExactTM.northing: 8128174.623878\n    test 1353 line 227 _ExactTM.gamma: 70.920117\n    test 1354 line 227 _ExactTM.scale: 1.984873\n    test 1355 line 227 _ExactTM.lat: 28.616673\n    test 1356 line 227 _ExactTM.lon: 80.452426\n    test 1357 line 228 _ExactTM.easting: 11898068.353272\n    test 1358 line 228 _ExactTM.northing: 4772439.493697\n    test 1359 line 228 _ExactTM.gamma: 42.613968\n    test 1360 line 228 _ExactTM.scale: 3.314412\n    test 1361 line 228 _ExactTM.lat: 11.709763\n    test 1362 line 228 _ExactTM.lon: 76.760295\n    test 1363 line 229 _ExactTM.easting: 10550946.939050\n    test 1364 line 229 _ExactTM.northing: 3851968.815295\n    test 1365 line 229 _ExactTM.gamma: 33.383025\n    test 1366 line 229 _ExactTM.scale: 2.724754\n    test 1367 line 229 _ExactTM.lat: 12.009498\n    test 1368 line 229 _ExactTM.lon: 71.782351\n    test 1369 line 230 _ExactTM.easting: 6828299.123607\n    test 1370 line 230 _ExactTM.northing: 9394803.227463\n    test 1371 line 230 _ExactTM.gamma: 83.181386\n    test 1372 line 230 _ExactTM.scale: 1.624359\n    test 1373 line 230 _ExactTM.lat: 37.629784\n    test 1374 line 230 _ExactTM.lon: 85.795687\n    test 1375 line 231 _ExactTM.easting: 11162550.334022\n    test 1376 line 231 _ExactTM.northing: 2640267.279593\n    test 1377 line 231 _ExactTM.gamma: 23.145404\n    test 1378 line 231 _ExactTM.scale: 2.998408\n    test 1379 line 231 _ExactTM.lat: 7.721128\n    test 1380 line 231 _ExactTM.lon: 71.662731\n    test 1381 line 232 _ExactTM.easting: 4411584.447941\n    test 1382 line 232 _ExactTM.northing: 4956173.694407\n    test 1383 line 232 _ExactTM.gamma: 30.713919\n    test 1384 line 232 _ExactTM.scale: 1.248736\n    test 1385 line 232 _ExactTM.lat: 34.295026\n    test 1386 line 232 _ExactTM.lon: 46.442191\n    test 1387 line 233 _ExactTM.easting: 672108.897905\n    test 1388 line 233 _ExactTM.northing: 4751554.657054\n    test 1389 line 233 _ExactTM.gamma: 5.569178\n    test 1390 line 233 _ExactTM.scale: 1.005162\n    test 1391 line 233 _ExactTM.lat: 42.622496\n    test 1392 line 233 _ExactTM.lon: 8.193605\n    test 1393 line 234 _ExactTM.easting: 5022964.290579\n    test 1394 line 234 _ExactTM.northing: 6860418.199502\n    test 1395 line 234 _ExactTM.gamma: 50.862230\n    test 1396 line 234 _ExactTM.scale: 1.324925\n    test 1397 line 234 _ExactTM.lat: 41.667780\n    test 1398 line 234 _ExactTM.lon: 61.518288\n    test 1399 line 235 _ExactTM.easting: 1669655.595207\n    test 1400 line 235 _ExactTM.northing: 4152086.537021\n    test 1401 line 235 _ExactTM.gamma: 11.110237\n    test 1402 line 235 _ExactTM.scale: 1.034138\n    test 1403 line 235 _ExactTM.lat: 36.060369\n    test 1404 line 235 _ExactTM.lon: 18.444112\n    test 1405 line 236 _ExactTM.easting: 6055876.729655\n    test 1406 line 236 _ExactTM.northing: 4896837.552619\n    test 1407 line 236 _ExactTM.gamma: 35.799747\n    test 1408 line 236 _ExactTM.scale: 1.485967\n    test 1409 line 236 _ExactTM.lat: 27.948091\n    test 1410 line 236 _ExactTM.lon: 56.816429\n    test 1411 line 237 _ExactTM.easting: 1209214.164379\n    test 1412 line 237 _ExactTM.northing: 7266409.859178\n    test 1413 line 237 _ExactTM.gamma: 22.319633\n    test 1414 line 237 _ExactTM.scale: 1.017554\n    test 1415 line 237 _ExactTM.lat: 63.386030\n    test 1416 line 237 _ExactTM.lon: 24.662716\n    test 1417 line 238 _ExactTM.easting: 5154564.559584\n    test 1418 line 238 _ExactTM.northing: 698118.349975\n    test 1419 line 238 _ExactTM.gamma: 4.242360\n    test 1420 line 238 _ExactTM.scale: 1.347481\n    test 1421 line 238 _ExactTM.lat: 4.680922\n    test 1422 line 238 _ExactTM.lon: 42.114426\n    test 1423 line 239 _ExactTM.easting: 2695149.806543\n    test 1424 line 239 _ExactTM.northing: 8208197.765605\n    test 1425 line 239 _ExactTM.gamma: 54.178615\n    test 1426 line 239 _ExactTM.scale: 1.089730\n    test 1427 line 239 _ExactTM.lat: 61.826625\n    test 1428 line 239 _ExactTM.lon: 57.525096\n    test 1429 line 240 _ExactTM.easting: 3394792.327820\n    test 1430 line 240 _ExactTM.northing: 3217583.415552\n    test 1431 line 240 _ExactTM.gamma: 15.165863\n    test 1432 line 240 _ExactTM.scale: 1.145285\n    test 1433 line 240 _ExactTM.lat: 25.104353\n    test 1434 line 240 _ExactTM.lon: 32.528660\n    test 1435 line 241 _ExactTM.easting: 1429160.966985\n    test 1436 line 241 _ExactTM.northing: 8212685.362032\n    test 1437 line 241 _ExactTM.gamma: 37.484904\n    test 1438 line 241 _ExactTM.scale: 1.024676\n    test 1439 line 241 _ExactTM.lat: 69.678351\n    test 1440 line 241 _ExactTM.lon: 39.275513\n    test 1441 line 242 _ExactTM.easting: 8343387.998065\n    test 1442 line 242 _ExactTM.northing: 8885196.954578\n    test 1443 line 242 _ExactTM.gamma: 78.561937\n    test 1444 line 242 _ExactTM.scale: 1.974733\n    test 1445 line 242 _ExactTM.lat: 29.671384\n    test 1446 line 242 _ExactTM.lon: 84.196595\n    test 1447 line 243 _ExactTM.easting: 1990722.928606\n    test 1448 line 243 _ExactTM.northing: 7569202.065162\n    test 1449 line 243 _ExactTM.gamma: 37.075276\n    test 1450 line 243 _ExactTM.scale: 1.048486\n    test 1451 line 243 _ExactTM.lat: 62.300208\n    test 1452 line 243 _ExactTM.lon: 40.474051\n    test 1453 line 244 _ExactTM.easting: 1554980.099559\n    test 1454 line 244 _ExactTM.northing: 1449423.919586\n    test 1455 line 244 _ExactTM.gamma: 3.188328\n    test 1456 line 244 _ExactTM.scale: 1.029664\n    test 1457 line 244 _ExactTM.lat: 12.721776\n    test 1458 line 244 _ExactTM.lon: 14.190003\n    test 1459 line 245 _ExactTM.easting: 785205.450196\n    test 1460 line 245 _ExactTM.northing: 5575158.423096\n    test 1461 line 245 _ExactTM.gamma: 8.388417\n    test 1462 line 245 _ExactTM.scale: 1.007181\n    test 1463 line 245 _ExactTM.lat: 49.811296\n    test 1464 line 245 _ExactTM.lon: 10.925011\n    test 1465 line 246 _ExactTM.easting: 3310405.988313\n    test 1466 line 246 _ExactTM.northing: 5955022.233881\n    test 1467 line 246 _ExactTM.gamma: 33.007587\n    test 1468 line 246 _ExactTM.scale: 1.137141\n    test 1469 line 246 _ExactTM.lat: 45.132680\n    test 1470 line 246 _ExactTM.lon: 42.478624\n    test 1471 line 247 _ExactTM.easting: 4733460.960666\n    test 1472 line 247 _ExactTM.northing: 129034.889816\n    test 1473 line 247 _ExactTM.gamma: 0.737551\n    test 1474 line 247 _ExactTM.scale: 1.290439\n    test 1475 line 247 _ExactTM.lat: 0.904279\n    test 1476 line 247 _ExactTM.lon: 39.078412\n    test 1477 line 248 _ExactTM.easting: 3322708.343909\n    test 1478 line 248 _ExactTM.northing: 3864738.078742\n    test 1479 line 248 _ExactTM.gamma: 18.472566\n    test 1480 line 248 _ExactTM.scale: 1.138838\n    test 1481 line 248 _ExactTM.lat: 30.163605\n    test 1482 line 248 _ExactTM.lon: 33.577996\n    test 1483 line 249 _ExactTM.easting: 8672864.417204\n    test 1484 line 249 _ExactTM.northing: 8333465.983444\n    test 1485 line 249 _ExactTM.gamma: 73.206273\n    test 1486 line 249 _ExactTM.scale: 2.065441\n    test 1487 line 249 _ExactTM.lat: 27.643244\n    test 1488 line 249 _ExactTM.lon: 81.892859\n    test 1489 line 250 _ExactTM.easting: 11126818.231196\n    test 1490 line 250 _ExactTM.northing: 7618712.174991\n    test 1491 line 250 _ExactTM.gamma: 67.887173\n    test 1492 line 250 _ExactTM.scale: 2.922417\n    test 1493 line 250 _ExactTM.lat: 18.201208\n    test 1494 line 250 _ExactTM.lon: 82.434618\n    test 1495 line 251 _ExactTM.easting: 8650100.981797\n    test 1496 line 251 _ExactTM.northing: 9975084.168997\n    test 1497 line 251 _ExactTM.gamma: 89.767446\n    test 1498 line 251 _ExactTM.scale: 2.057289\n    test 1499 line 251 _ExactTM.lat: 28.804576\n    test 1500 line 251 _ExactTM.lon: 89.886072\n    test 1501 line 252 _ExactTM.easting: 2212701.180192\n    test 1502 line 252 _ExactTM.northing: 650348.100229\n    test 1503 line 252 _ExactTM.gamma: 1.970441\n    test 1504 line 252 _ExactTM.scale: 1.060830\n    test 1505 line 252 _ExactTM.lat: 5.542998\n    test 1506 line 252 _ExactTM.lon: 19.589578\n    test 1507 line 253 _ExactTM.easting: 6890222.326618\n    test 1508 line 253 _ExactTM.northing: 7506813.499547\n    test 1509 line 253 _ExactTM.gamma: 62.684825\n    test 1510 line 253 _ExactTM.scale: 1.638488\n    test 1511 line 253 _ExactTM.lat: 34.237147\n    test 1512 line 253 _ExactTM.lon: 73.678164\n    test 1513 line 254 _ExactTM.easting: 6692260.067325\n    test 1514 line 254 _ExactTM.northing: 4244174.008110\n    test 1515 line 254 _ExactTM.gamma: 31.812920\n    test 1516 line 254 _ExactTM.scale: 1.604640\n    test 1517 line 254 _ExactTM.lat: 22.704949\n    test 1518 line 254 _ExactTM.lon: 57.877010\n    test 1519 line 255 _ExactTM.easting: 1225564.137190\n    test 1520 line 255 _ExactTM.northing: 4778923.924144\n    test 1521 line 255 _ExactTM.gamma: 10.083419\n    test 1522 line 255 _ExactTM.scale: 1.018134\n    test 1523 line 255 _ExactTM.lat: 42.192424\n    test 1524 line 255 _ExactTM.lon: 14.828196\n    test 1525 line 256 _ExactTM.easting: 12341116.154950\n    test 1526 line 256 _ExactTM.northing: 5081855.521966\n    test 1527 line 256 _ExactTM.gamma: 45.712546\n    test 1528 line 256 _ExactTM.scale: 3.535170\n    test 1529 line 256 _ExactTM.lat: 11.481151\n    test 1530 line 256 _ExactTM.lon: 78.189236\n    test 1531 line 257 _ExactTM.easting: 6673845.021771\n    test 1532 line 257 _ExactTM.northing: 1177587.190565\n    test 1533 line 257 _ExactTM.gamma: 8.389141\n    test 1534 line 257 _ExactTM.scale: 1.605171\n    test 1535 line 257 _ExactTM.lat: 6.609626\n    test 1536 line 257 _ExactTM.lon: 51.735783\n    test 1537 line 258 _ExactTM.easting: 6966354.690417\n    test 1538 line 258 _ExactTM.northing: 3641802.005093\n    test 1539 line 258 _ExactTM.gamma: 27.409636\n    test 1540 line 258 _ExactTM.scale: 1.661469\n    test 1541 line 258 _ExactTM.lat: 19.059369\n    test 1542 line 258 _ExactTM.lon: 57.526439\n    test 1543 max forward error: 2.048910e-08\n    test 1544 max reverse error: 1.421085e-13\n    test 1545 _ExactTM.scale0: 0.9996\n    test 1546 _ExactTM.datum: WGS84\n    test 1547 _ExactTM.datum.ellipsoid.KsOrder: 8\n    test 1548 WGS84.KsOrder: 8\n\n    all 1548 testExactTMcoords.py tests passed, 1 skipped (pygeodesy 26.3.26 Python 3.11.9 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 1.24.2 scipy 1.10.1 Math 2 macOS 26.3.1 isLazy 0 -W  default) 7.957 sec\nrunning /usr/local/bin/p....n3.11 -W default ~/PyGeodesy/test/testFmath.py\n\n    testing testFmath.py 25.09.09 (module pygeodesy.fmath 26.03.25)\n    test 1 fpolynomialA: 1.21197509765625\n    test 2 fhornerA: 1.21197509765625\n    test 3 fpolynomialB: 0.1513671875\n    test 4 fhornerB: 0.1513671875\n\n    test 5 fpolynomialA: 1.21197509765625\n    test 6 fhornerA: 1.21197509765625\n    test 7 fpolynomialB: 0.1513671875\n    test 8 fhornerB: 0.1513671875\n\n    test 9 fpolynomialA: 1.21197509765625\n    test 10 fhornerA: 1.21197509765625\n    test 11 fpolynomialB: 0.1513671875\n    test 12 fhornerB: 0.1513671875\n\n    test 13 fpolynomialA: 1.21197509765625\n    test 14 fhornerA: 1.21197509765625\n    test 15 fpolynomialB: 0.1513671875\n    test 16 fhornerB: 0.1513671875\n\n    test 17 fpolynomialA: 1.21197509765625\n    test 18 fhornerA: 1.21197509765625\n    test 19 fpolynomialB: 0.1513671875\n    test 20 fhornerB: 0.1513671875\n\n    test 21 fpolynomialA: 1.21197509765625\n    test 22 fhornerA: 1.21197509765625\n    test 23 fpolynomialB: 0.1513671875\n    test 24 fhornerB: 0.1513671875\n\n    test 25 fpolynomialA: 1.21197509765625\n    test 26 fhornerA: 1.21197509765625\n    test 27 fpolynomialB: 0.1513671875\n    test 28 fhornerB: 0.1513671875\n\n    test 29 fpolynomialA: 1.21197509765625\n    test 30 fhornerA: 1.21197509765625\n    test 31 fpolynomialB: 0.1513671875\n    test 32 fhornerB: 0.1513671875\n\n    test 33 fpolynomialA: 1.21197509765625\n    test 34 fhornerA: 1.21197509765625\n    test 35 fpolynomialB: 0.1513671875\n    test 36 fhornerB: 0.1513671875\n\n    test 37 fpolynomialA: 1.21197509765625\n    test 38 fhornerA: 1.21197509765625\n    test 39 fpolynomialB: 0.1513671875\n    test 40 fhornerB: 0.1513671875\n\n    test 41 fpolynomialA: 1.21197509765625\n    test 42 fhornerA: 1.21197509765625\n    test 43 fpolynomialB: 0.1513671875\n    test 44 fhornerB: 0.1513671875\n\n    test 45 fpolynomialA: 1.21197509765625\n    test 46 fhornerA: 1.21197509765625\n    test 47 fpolynomialB: 0.1513671875\n    test 48 fhornerB: 0.1513671875\n\n    test 49 fpolynomialA: 1.21197509765625\n    test 50 fhornerA: 1.21197509765625\n    test 51 fpolynomialB: 0.1513671875\n    test 52 fhornerB: 0.1513671875\n\n    test 53 fpolynomialA: 1.21197509765625\n    test 54 fhornerA: 1.21197509765625\n    test 55 fpolynomialB: 0.1513671875\n    test 56 fhornerB: 0.1513671875\n\n    test 57 fpolynomialA: 1.21197509765625\n    test 58 fhornerA: 1.21197509765625\n    test 59 fpolynomialB: 0.1513671875\n    test 60 fhornerB: 0.1513671875\n\n    test 61 fpolynomialA: 1.21197509765625\n    test 62 fhornerA: 1.21197509765625\n    test 63 fpolynomialB: 0.1513671875\n    test 64 fhornerB: 0.1513671875\n\n    test 65 fpolynomialA: 1.21197509765625\n    test 66 fhornerA: 1.21197509765625\n    test 67 fpolynomialB: 0.1513671875\n    test 68 fhornerB: 0.1513671875\n\n    test 69 fpolynomialA: 1.21197509765625\n    test 70 fhornerA: 1.21197509765625\n    test 71 fpolynomialB: 0.1513671875\n    test 72 fhornerB: 0.1513671875\n\n    test 73 fpolynomialA: 1.21197509765625\n    test 74 fhornerA: 1.21197509765625\n    test 75 fpolynomialB: 0.1513671875\n    test 76 fhornerB: 0.1513671875\n\n    test 77 fpolynomialA: 1.21197509765625\n    test 78 fhornerA: 1.21197509765625\n    test 79 fpolynomialB: 0.1513671875\n    test 80 fhornerB: 0.1513671875\n\n    test 81 fpolynomialA: 1.21197509765625\n    test 82 fhornerA: 1.21197509765625\n    test 83 fpolynomialB: 0.1513671875\n    test 84 fhornerB: 0.1513671875\n\n    test 85 fpolynomialA: 1.21197509765625\n    test 86 fhornerA: 1.21197509765625\n    test 87 fpolynomialB: 0.1513671875\n    test 88 fhornerB: 0.1513671875\n\n    test 89 fpolynomialA: 1.21197509765625\n    test 90 fhornerA: 1.21197509765625\n    test 91 fpolynomialB: 0.1513671875\n    test 92 fhornerB: 0.1513671875\n\n    test 93 fpolynomialA: 1.21197509765625\n    test 94 fhornerA: 1.21197509765625\n    test 95 fpolynomialB: 0.1513671875\n    test 96 fhornerB: 0.1513671875\n\n    test 97 fpolynomialA: 1.21197509765625\n    test 98 fhornerA: 1.21197509765625\n    test 99 fpolynomialB: 0.1513671875\n    test 100 fhornerB: 0.1513671875\n\n    test 101 fpolynomialA: 1.21197509765625\n    test 102 fhornerA: 1.21197509765625\n    test 103 fpolynomialB: 0.1513671875\n    test 104 fhornerB: 0.1513671875\n\n    test 105 fpolynomialA: 1.21197509765625\n    test 106 fhornerA: 1.21197509765625\n    test 107 fpolynomialB: 0.1513671875\n    test 108 fhornerB: 0.1513671875\n\n    test 109 fpolynomialA: 1.21197509765625\n    test 110 fhornerA: 1.21197509765625\n    test 111 fpolynomialB: 0.1513671875\n    test 112 fhornerB: 0.1513671875\n\n    test 113 fpolynomialA: 1.21197509765625\n    test 114 fhornerA: 1.21197509765625\n    test 115 fpolynomialB: 0.1513671875\n    test 116 fhornerB: 0.1513671875\n\n    test 117 fpolynomialA: 1.21197509765625\n    test 118 fhornerA: 1.21197509765625\n    test 119 fpolynomialB: 0.1513671875\n    test 120 fhornerB: 0.1513671875\n\n    test 121 fpolynomialA: 1.21197509765625\n    test 122 fhornerA: 1.21197509765625\n    test 123 fpolynomialB: 0.1513671875\n    test 124 fhornerB: 0.1513671875\n\n    test 125 fpolynomialA: 1.21197509765625\n    test 126 fhornerA: 1.21197509765625\n    test 127 fpolynomialB: 0.1513671875\n    test 128 fhornerB: 0.1513671875\n\n    test 129 fpolynomialA: 1.21197509765625\n    test 130 fhornerA: 1.21197509765625\n    test 131 fpolynomialB: 0.1513671875\n    test 132 fhornerB: 0.1513671875\n\n    test 133 fpowers: 10\n    test 134 fpowers: 2\n    test 135 fpowers: 1024\n    test 136 fpowers: 4\n    test 137 fpowers: 16\n    test 138 fpowers: 1024\n    test 139 fpowers: 4\n    test 140 fpowers: 8\n    test 141 fpowers: 512\n\n    test 142 Airy1830: 6366914.608925221\n    test 143 Airy1830: 6366914.608925221\n    test 144 Airy1830: 6366914.608925221\n    test 145 Airy1830: 6366914.608925221\n\n    test 146 AiryModified: 6366691.774619882  FAILED, KNOWN, expected 6366691.774619881\n    test 147 AiryModified: 6366691.774619882  FAILED, KNOWN, expected 6366691.774619881\n    test 148 AiryModified: 6366691.774619882  FAILED, KNOWN, expected 6366691.774619881\n    test 149 AiryModified: 6366691.774619882  FAILED, KNOWN, expected 6366691.774619881\n\n    test 150 ATS1977: 6367447.141166951  FAILED, KNOWN, expected 6367447.141166950\n    test 151 ATS1977: 6367447.141166951  FAILED, KNOWN, expected 6367447.141166950\n    test 152 ATS1977: 6367447.141166951  FAILED, KNOWN, expected 6367447.141166950\n    test 153 ATS1977: 6367447.141166951  FAILED, KNOWN, expected 6367447.141166950\n\n    test 154 Australia1966: 6367471.848532283  FAILED, KNOWN, expected 6367471.848532284\n    test 155 Australia1966: 6367471.848532283  FAILED, KNOWN, expected 6367471.848532284\n    test 156 Australia1966: 6367471.848532283  FAILED, KNOWN, expected 6367471.848532284\n    test 157 Australia1966: 6367471.848532283  FAILED, KNOWN, expected 6367471.848532284\n\n    test 158 Bessel1841: 6366742.520233950\n    test 159 Bessel1841: 6366742.520233950\n    test 160 Bessel1841: 6366742.520233950\n    test 161 Bessel1841: 6366742.520233950\n\n    test 162 BesselModified: 6366837.224747659\n    test 163 BesselModified: 6366837.224747659\n    test 164 BesselModified: 6366837.224747659\n    test 165 BesselModified: 6366837.224747659\n\n    test 166 CGCS2000: 6367449.145771047  FAILED, KNOWN, expected 6367449.145771048\n    test 167 CGCS2000: 6367449.145771047  FAILED, KNOWN, expected 6367449.145771048\n    test 168 CGCS2000: 6367449.145771047  FAILED, KNOWN, expected 6367449.145771048\n    test 169 CGCS2000: 6367449.145771047  FAILED, KNOWN, expected 6367449.145771048\n\n    test 170 Clarke1866: 6367399.689169783\n    test 171 Clarke1866: 6367399.689169783\n    test 172 Clarke1866: 6367399.689169783\n    test 173 Clarke1866: 6367399.689169783\n\n    test 174 Clarke1880: 6367386.643980513  FAILED, KNOWN, expected 6367386.643980514\n    test 175 Clarke1880: 6367386.643980513  FAILED, KNOWN, expected 6367386.643980514\n    test 176 Clarke1880: 6367386.643980513  FAILED, KNOWN, expected 6367386.643980514\n    test 177 Clarke1880: 6367386.643980513  FAILED, KNOWN, expected 6367386.643980514\n\n    test 178 Clarke1880IGN: 6367386.736673363\n    test 179 Clarke1880IGN: 6367386.736673363\n    test 180 Clarke1880IGN: 6367386.736673363\n    test 181 Clarke1880IGN: 6367386.736673363\n\n    test 182 Clarke1880Mod: 6367386.692362010  FAILED, KNOWN, expected 6367386.692362011\n    test 183 Clarke1880Mod: 6367386.692362010  FAILED, KNOWN, expected 6367386.692362011\n    test 184 Clarke1880Mod: 6367386.692362010  FAILED, KNOWN, expected 6367386.692362011\n    test 185 Clarke1880Mod: 6367386.692362010  FAILED, KNOWN, expected 6367386.692362011\n\n    test 186 CPM1799: 6366208.881847842  FAILED, KNOWN, expected 6366208.881847841\n    test 187 CPM1799: 6366208.881847842  FAILED, KNOWN, expected 6366208.881847841\n    test 188 CPM1799: 6366208.881847842  FAILED, KNOWN, expected 6366208.881847841\n    test 189 CPM1799: 6366208.881847842  FAILED, KNOWN, expected 6366208.881847841\n\n    test 190 Delambre1810: 6366197.076843344\n    test 191 Delambre1810: 6366197.076843344\n    test 192 Delambre1810: 6366197.076843344\n    test 193 Delambre1810: 6366197.076843344\n\n    test 194 Engelis1985: 6367448.175079710  FAILED, KNOWN, expected 6367448.175079712\n    test 195 Engelis1985: 6367448.175079710  FAILED, KNOWN, expected 6367448.175079712\n    test 196 Engelis1985: 6367448.175079710  FAILED, KNOWN, expected 6367448.175079712\n    test 197 Engelis1985: 6367448.175079710  FAILED, KNOWN, expected 6367448.175079712\n\n    test 198 Everest1969: 6366699.578395008  FAILED, KNOWN, expected 6366699.578395009\n    test 199 Everest1969: 6366699.578395008  FAILED, KNOWN, expected 6366699.578395009\n    test 200 Everest1969: 6366699.578395008  FAILED, KNOWN, expected 6366699.578395009\n    test 201 Everest1969: 6366699.578395008  FAILED, KNOWN, expected 6366699.578395009\n\n    test 202 Everest1975: 6366703.060499237\n    test 203 Everest1975: 6366703.060499237\n    test 204 Everest1975: 6366703.060499237\n    test 205 Everest1975: 6366703.060499237\n\n    test 206 Fisher1968: 6367463.656043807\n    test 207 Fisher1968: 6367463.656043807\n    test 208 Fisher1968: 6367463.656043807\n    test 209 Fisher1968: 6367463.656043807\n\n    test 210 GEM10C: 6367449.145824739  FAILED, KNOWN, expected 6367449.145824740\n    test 211 GEM10C: 6367449.145824739  FAILED, KNOWN, expected 6367449.145824740\n    test 212 GEM10C: 6367449.145824739  FAILED, KNOWN, expected 6367449.145824740\n    test 213 GEM10C: 6367449.145824739  FAILED, KNOWN, expected 6367449.145824740\n\n    test 214 GPES: 6378135.000000000\n    test 215 GPES: 6378135.000000000\n    test 216 GPES: 6378135.000000000\n    test 217 GPES: 6378135.000000000\n\n    test 218 GRS67: 6367471.747065325\n    test 219 GRS67: 6367471.747065325\n    test 220 GRS67: 6367471.747065325\n    test 221 GRS67: 6367471.747065325\n\n    test 222 GRS80: 6367449.145771043\n    test 223 GRS80: 6367449.145771043\n    test 224 GRS80: 6367449.145771043\n    test 225 GRS80: 6367449.145771043\n\n    test 226 Helmert1906: 6367513.572270742\n    test 227 Helmert1906: 6367513.572270742\n    test 228 Helmert1906: 6367513.572270742\n    test 229 Helmert1906: 6367513.572270742\n\n    test 230 IAU76: 6367452.132788436\n    test 231 IAU76: 6367452.132788436\n    test 232 IAU76: 6367452.132788436\n    test 233 IAU76: 6367452.132788436\n\n    test 234 IERS1989: 6367448.139491247  FAILED, KNOWN, expected 6367448.139491246\n    test 235 IERS1989: 6367448.139491247  FAILED, KNOWN, expected 6367448.139491246\n    test 236 IERS1989: 6367448.139491247  FAILED, KNOWN, expected 6367448.139491246\n    test 237 IERS1989: 6367448.139491247  FAILED, KNOWN, expected 6367448.139491246\n\n    test 238 IERS1992TOPEX: 6367448.446996409\n    test 239 IERS1992TOPEX: 6367448.446996409\n    test 240 IERS1992TOPEX: 6367448.446996409\n    test 241 IERS1992TOPEX: 6367448.446996409\n\n    test 242 IERS2003: 6367448.717710576  FAILED, KNOWN, expected 6367448.717710577\n    test 243 IERS2003: 6367448.717710576  FAILED, KNOWN, expected 6367448.717710577\n    test 244 IERS2003: 6367448.717710576  FAILED, KNOWN, expected 6367448.717710577\n    test 245 IERS2003: 6367448.717710576  FAILED, KNOWN, expected 6367448.717710577\n\n    test 246 Intl1924: 6367654.500057585  FAILED, KNOWN, expected 6367654.500057584\n    test 247 Intl1924: 6367654.500057585  FAILED, KNOWN, expected 6367654.500057584\n    test 248 Intl1924: 6367654.500057585  FAILED, KNOWN, expected 6367654.500057584\n    test 249 Intl1924: 6367654.500057585  FAILED, KNOWN, expected 6367654.500057584\n\n    test 250 Intl1967: 6367469.338944457\n    test 251 Intl1967: 6367469.338944457\n    test 252 Intl1967: 6367469.338944457\n    test 253 Intl1967: 6367469.338944457\n\n    test 254 Krassovski1940: 6367558.496874981\n    test 255 Krassovski1940: 6367558.496874981\n    test 256 Krassovski1940: 6367558.496874981\n    test 257 Krassovski1940: 6367558.496874981\n\n    test 258 Krassowsky1940: 6367558.496874981\n    test 259 Krassowsky1940: 6367558.496874981\n    test 260 Krassowsky1940: 6367558.496874981\n    test 261 Krassowsky1940: 6367558.496874981\n\n    test 262 Maupertuis1738: 6380564.130118373\n    test 263 Maupertuis1738: 6380564.130118373\n    test 264 Maupertuis1738: 6380564.130118373\n    test 265 Maupertuis1738: 6380564.130118373\n\n    test 266 Mercury1960: 6367479.629236430\n    test 267 Mercury1960: 6367479.629236430\n    test 268 Mercury1960: 6367479.629236430\n    test 269 Mercury1960: 6367479.629236430\n\n    test 270 Mercury1968Mod: 6367463.656043807\n    test 271 Mercury1968Mod: 6367463.656043807\n    test 272 Mercury1968Mod: 6367463.656043807\n    test 273 Mercury1968Mod: 6367463.656043807\n\n    test 274 NWL1965: 6367456.873668412\n    test 275 NWL1965: 6367456.873668412\n    test 276 NWL1965: 6367456.873668412\n    test 277 NWL1965: 6367456.873668412\n\n    test 278 OSU86F: 6367448.347165301  FAILED, KNOWN, expected 6367448.347165302\n    test 279 OSU86F: 6367448.347165301  FAILED, KNOWN, expected 6367448.347165302\n    test 280 OSU86F: 6367448.347165301  FAILED, KNOWN, expected 6367448.347165302\n    test 281 OSU86F: 6367448.347165301  FAILED, KNOWN, expected 6367448.347165302\n\n    test 282 OSU91A: 6367448.446997731  FAILED, KNOWN, expected 6367448.446997732\n    test 283 OSU91A: 6367448.446997731  FAILED, KNOWN, expected 6367448.446997732\n    test 284 OSU91A: 6367448.446997731  FAILED, KNOWN, expected 6367448.446997732\n    test 285 OSU91A: 6367448.446997731  FAILED, KNOWN, expected 6367448.446997732\n\n    test 286 Plessis1817: 6366197.157107386\n    test 287 Plessis1817: 6366197.157107386\n    test 288 Plessis1817: 6366197.157107386\n    test 289 Plessis1817: 6366197.157107386\n\n    test 290 PZ90: 6367448.169554430\n    test 291 PZ90: 6367448.169554430\n    test 292 PZ90: 6367448.169554430\n    test 293 PZ90: 6367448.169554430\n\n    test 294 SGS85: 6367448.139491247  FAILED, KNOWN, expected 6367448.139491246\n    test 295 SGS85: 6367448.139491247  FAILED, KNOWN, expected 6367448.139491246\n    test 296 SGS85: 6367448.139491247  FAILED, KNOWN, expected 6367448.139491246\n    test 297 SGS85: 6367448.139491247  FAILED, KNOWN, expected 6367448.139491246\n\n    test 298 SoAmerican1969: 6367471.848532285\n    test 299 SoAmerican1969: 6367471.848532285\n    test 300 SoAmerican1969: 6367471.848532285\n    test 301 SoAmerican1969: 6367471.848532285\n\n    test 302 Sphere: 6371008.771415000\n    test 303 Sphere: 6371008.771415000\n    test 304 Sphere: 6371008.771415000\n    test 305 Sphere: 6371008.771415000\n\n    test 306 SphereAuthalic: 6371000.000000000\n    test 307 SphereAuthalic: 6371000.000000000\n    test 308 SphereAuthalic: 6371000.000000000\n    test 309 SphereAuthalic: 6371000.000000000\n\n    test 310 SpherePopular: 6378137.000000000\n    test 311 SpherePopular: 6378137.000000000\n    test 312 SpherePopular: 6378137.000000000\n    test 313 SpherePopular: 6378137.000000000\n\n    test 314 Struve1860: 6367482.318325493\n    test 315 Struve1860: 6367482.318325493\n    test 316 Struve1860: 6367482.318325493\n    test 317 Struve1860: 6367482.318325493\n\n    test 318 WGS60: 6367478.630911891\n    test 319 WGS60: 6367478.630911891\n    test 320 WGS60: 6367478.630911891\n    test 321 WGS60: 6367478.630911891\n\n    test 322 WGS66: 6367456.873668412\n    test 323 WGS66: 6367456.873668412\n    test 324 WGS66: 6367456.873668412\n    test 325 WGS66: 6367456.873668412\n\n    test 326 WGS72: 6367447.248623827  FAILED, KNOWN, expected 6367447.248623826\n    test 327 WGS72: 6367447.248623827  FAILED, KNOWN, expected 6367447.248623826\n    test 328 WGS72: 6367447.248623827  FAILED, KNOWN, expected 6367447.248623826\n    test 329 WGS72: 6367447.248623827  FAILED, KNOWN, expected 6367447.248623826\n\n    test 330 WGS84: 6367449.145823414\n    test 331 WGS84: 6367449.145823414\n    test 332 WGS84: 6367449.145823414\n    test 333 WGS84: 6367449.145823414\n\n    test 334 WGS84_NGS: 6367449.145771043\n    test 335 WGS84_NGS: 6367449.145771043\n    test 336 WGS84_NGS: 6367449.145771043\n    test 337 WGS84_NGS: 6367449.145771043\n\n    test 338 hypot: 1\n    test 339 sqrt_a: 0.6102683302836\n    test 340 sqrt_a: 0.6102683302836\n    test 341 hypot_ : 1.00001250\n    test 342 euclid_: 1.00207107  FAILED, KNOWN, expected 1.00001250\n    test 343 hypot2_: 1.00002500\n    test 344 norm_  : 1.00000000\n    test 345 hypot_ : 3606.937759\n    test 346 euclid_: 3845.584412  FAILED, KNOWN, expected 3859.423403\n    test 347 hypot2_: 13010000.0\n    test 348 norm_  : 1.0\n    test 349 hypot_ : 40112.842\n    test 350 hypot2_: 1609040100.0\n    test 351 euclid_: 41277.666  FAILED, KNOWN, expected 41316.227\n    test 352 bqrt: 2.00\n    test 353 cbrt: 3.00\n    test 354 cbrt: -3.00\n    test 355 cbrt2: 9.00\n    test 356 cbrt2: 9.00\n    test 357 sqrt3: 27.00\n    test 358 zcrt: 2.00\n    test 359 zqrt: 2.00\n    test 360 facos1: 0.005%\n    test 361 fasin1: 0.439%\n    test 362 fatan : 0.134%\n    test 363 fatan1: 2.834%\n    test 364 fatan2: 0.321%\n\n    test 365 Fhypot: Fhypot[1] (5.0, 0)\n    test 366 Fhypot: Fhypot[1] (9.43398, 0)\n    test 367 Fhypot: Fhypot[1] (5.0, 0)\n    test 368 Fhypot: Fhypot[1] (-2.18182, 0)\n    test 369 Fhypot: Fhypot[1] (-12, 0)\n    test 370 Fhypot: Fhypot[1] (1.41421, 0)\n    test 371 Fhypot: Fhypot[1] (-0.5, 0)\n    test 372 Fhypot: Fhypot[1] (-0.333333, 0)\n    test 373 Fhypot: fmath.Fhypot(<Fsum[1] (-1, 0) at 0x105e827d0>, -1, root=0): 1.0 / 0: float division by zero\n\n    test 374 Fsqrt: Fsqrt[1] (3.0, 0)\n    test 375 Fsqrt: Fcbrt[1] (3.0, 0)\n    test 376 Fsqrt: Fsqrt[1] (1.41421, 0)\n    test 377 Fsqrt: Fsqrt[1] (1.41421, 0)\n    test 378 Froot: Froot[1] (0.5, 0)\n    test 379 Froot: Froot[1] (0.5, 0)\n    test 380 Fsqrt: fmath.Fsqrt(<Fsum[1] (-1, 0) at 0x105e827d0>, -1, root=2): -2.0 root Fsum[1] (0.5, 0): complex (8.659560562354934e-17+1.4142135623730951j) from 2-arg pow(-2, 0.5)\n    test 381 Fsqrt: fmath.Froot(<Fsum[1] (-1, 0) at 0x105e827d0>, -1, root=0): 1.0 / 0: float division by zero\n    test 382 Froot: Froot[1] (-0.25, 0)\n\n    test 383 Fhypot2: 3.74165739e+100\n    test 384 Fpowers2: -1467.89542\n    test 385 Fsqrt2: 0.0541578006\n    test 386 Fcbrt2: 0.143144285\n\n    test 387 Fhypot3: 3.74165739e+100\n    test 388 Fpowers3: -16881.7154\n    test 389 Fsqrt3: 5.36080943e-05\n    test 390 Fcbrt3: 0.00142174021\n\n    test 391 Fhypot4: 3.74165739e+100\n    test 392 Fpowers4: -1723.70141\n    test 393 Fsqrt4: 0.00484039916\n    test 394 Fcbrt4: 0.028614585\n\n    test 395 Fhypot5: 3.74165739e+100\n    test 396 Fpowers5: 365.124737\n    test 397 Fsqrt5: 0.448148418\n    test 398 Fcbrt5: 0.585618218\n\n    test 399 Fhypot6: 3.74165739e+100\n    test 400 Fpowers6: 523.671403\n    test 401 Fsqrt6: 0.0430933845\n    test 402 Fcbrt6: 0.122915618\n\n    test 403 Fhypot8: 3.74165739e+100\n    test 404 Fpowers8: -23525.9173\n    test 405 Fsqrt8: 0.121977256\n    test 406 Fcbrt8: 0.245953254\n\n    test 407 fma: 2.4412441982659e-05\n    test 408 fma: 6.365860485903399\n    test 409 abc: 6.3658604845404625  FAILED, KNOWN, expected 6.365860485903399\n\n    test 410 f2mul_: 24.0\n    test 411 f2mul_: inf\n    test 412 f2mul_: inf\n\n    72 of 412 testFmath.py tests (17.5%) FAILED, ALL KNOWN (pygeodesy 26.3.26 Python 3.11.9 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 1.24.2 scipy 1.10.1 Math 2 macOS 26.3.1 isLazy 0 -W  default) 108.952 ms\nrunning /usr/local/bin/p....n3.11 -W default ~/PyGeodesy/test/testFormy.py\n./test/testFormy.py:28: DeprecationWarning: function L{cosineAndoyerLambert<pygeodesy.deprecated.functions.cosineAndoyerLambert>} has been DEPRECATED on 2024.12.31, use function L{pygeodesy.cosineLaw} with C{B{corr}=1}.\n  d = f(lat1, lon1, lat2, lon2, wrap=True, **kwds)\n./test/testFormy.py:28: DeprecationWarning: function L{cosineForsytheAndoyerLambert<pygeodesy.deprecated.functions.cosineForsytheAndoyerLambert>} has been DEPRECATED on 2024.12.31, use function L{pygeodesy.cosineLaw} with C{B{corr}=2}.\n  d = f(lat1, lon1, lat2, lon2, wrap=True, **kwds)\n./pygeodesy/formy.py:1097: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  if d.ellipsoid.geodesic:\n./pygeodesy/azimuthal.py:636: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return self.datum.ellipsoid.geodesic\n./pygeodesy/ellipsoidalKarney.py:94: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return self.datum.ellipsoid.geodesic\n\n    testing testFormy.py 26.01.05\n    test 1 angle2chord: 9009967.011\n    test 2 chord2angle: 1.570796\n    test 3 antipode1: (-89.0, -1.0)\n    test 4 antipode2: (89.0, 1.0)\n    test 5 bearing1: 251.364\n    test 6 bearing2: 251.364\n    test 7 bearing3: 249.614\n    test 8 excessAbc_: 11.9698\n    test 9 excessAbc_: 11.9698\n    test 10 excessCagnoli_: 11.9698\n    test 11 excessGirard_: 11.9698\n    test 12 excessLHuilier_: 11.9698\n    test 13 excessKarney: 56.9625\n    test 14 excessQuad: 56.9625\n    test 15 excessKarney: 44.0235\n    test 16 excessQuad: 44.0235\n    test 17 excessKarney: -44.0235\n    test 18 excessQuad: -44.0235\n\n    test 19 isantipode1: True\n    test 20 isantipode2: True\n    test 21 isantipode3: False\n    test 22 isantipode4: True\n    test 23 isantipode5: True\n    test 24 isantipode6: True\n    test 25 isantipode7: False\n    test 26 isantipode8: True\n\n    test 27 isnormal1: True\n    test 28 isnormal2: False\n    test 29 isnormal3: True\n    test 30 isnormal4: True\n    test 31 isnormal5: True\n    test 32 isnormal6: False\n    test 33 isnormal7: True\n    test 34 isnormal8: True\n\n    test 35 hartzell: (884080.396945, 5592040.198472, 2927517.711001)\n    test 36 hartzell: 27.500482°N, 081.016111°E, +12669647.30  FAILED, KNOWN, expected 27.500482°N, 081.016111°E, +12669647.30, 'hartzell'\n    test 37 hartzell: (3642031.283571, 3678090.99925, 3714150.714929)\n    test 38 hartzell: 35.843738°N, 045.282243°E, +11296639.67  FAILED, KNOWN, expected 35.843738°N, 045.282243°E, +11296639.67, 'hartzell'\n    test 39 hartzell: (3647362.058328, 3683474.553955, 3703640.299338)\n    test 40 hartzell: 35.726966°N, 045.282243°E, +11296619.03  FAILED, KNOWN, expected 35.726966°N, 045.282243°E, +11296619.03, 'hartzell'\n    test 41 heightOf0: 2638958.23912\n    test 42 heightOf45: 5401080.43931\n    test 43 heightOf90: 6371008.77141\n    test 44 heightOf135: 5401080.43931\n    test 45 horizon0: 0.0\n    test 46 horizon10Km: 357099.672\n    test 47 horizon30Kft: 392310.704\n    test 48 horizon10Kft: 214877.422\n    test 49 normal1: (-89.0, 179.0)\n    test 50 normal2: (81.0, 180.0)\n    test 51 normal3: (81.0, -19.0)\n    test 52 normal4: (-81.0, 0.0)\n\n    test 53 haversine1 (0.00%): 298009.404\n    test 54 vincentys1 (0.00%): 298009.404\n    test 55 vincentys1 (0.00%): 298009.404\n    test 56 cosineAndoyerLambert1 (0.13%): 298395.796  FAILED, KNOWN, expected 298009.404\n    test 57 cosineForsytheAndoyerLambert1 (0.13%): 298396.056  FAILED, KNOWN, expected 298009.404\n    test 58 cosineLaw1 (0.00%): 298009.404\n    test 59 equirectangular1 (0.01%): 298039.206  FAILED, KNOWN, expected 298009.404\n    test 60 euclidean1 (5.26%): 313698.901  FAILED, KNOWN, expected 298009.404\n    test 61 flatLocal1 (0.14%): 298425.999  FAILED, KNOWN, expected 298009.404\n    test 62 flatPolar1 (8.67%): 323841.582  FAILED, KNOWN, expected 298009.404\n    test 63 thomas1 (0.13%): 298396.261  FAILED, KNOWN, expected 298009.404\n    test 64 hubeny1: <function flatLocal at 0x1045382c0>\n\n    test 65 haversine2 (0.00%): 98164.988\n    test 66 vincentys2 (0.00%): 98164.988\n    test 67 vincentys2 (0.00%): 98164.988\n    test 68 cosineAndoyerLambert2 (0.10%): 98071.421  FAILED, KNOWN, expected 98164.988\n    test 69 cosineForsytheAndoyerLambert2 (0.10%): 98071.560  FAILED, KNOWN, expected 98164.988\n    test 70 cosineLaw2 (0.00%): 98164.988\n    test 71 equirectangular2 (0.00%): 98165.123  FAILED, KNOWN, expected 98164.988\n    test 72 euclidean2 (6.37%): 104419.458  FAILED, KNOWN, expected 98164.988\n    test 73 flatLocal2 (0.10%): 98071.693  FAILED, KNOWN, expected 98164.988\n    test 74 flatPolar2 (0.57%): 98725.040  FAILED, KNOWN, expected 98164.988\n    test 75 thomas2 (0.10%): 98071.535  FAILED, KNOWN, expected 98164.988\n    test 76 hubeny2: <function flatLocal at 0x1045382c0>\n\n    test 77 haversine3 (0.00%): 651816.987\n    test 78 vincentys3 (0.00%): 651816.987\n    test 79 vincentys3 (0.00%): 651816.987\n    test 80 cosineAndoyerLambert3 (0.25%): 653456.144  FAILED, KNOWN, expected 651816.987\n    test 81 cosineForsytheAndoyerLambert3 (0.25%): 653456.175  FAILED, KNOWN, expected 651816.987\n    test 82 cosineLaw3 (0.00%): 651816.987\n    test 83 equirectangular3 (0.03%): 652041.760  FAILED, KNOWN, expected 651816.987\n    test 84 euclidean3 (4.37%): 680281.470  FAILED, KNOWN, expected 651816.987\n    test 85 flatLocal3 (0.29%): 653681.559  FAILED, KNOWN, expected 651816.987\n    test 86 flatPolar3 (13.00%): 736534.840  FAILED, KNOWN, expected 651816.987\n    test 87 thomas3 (0.25%): 653456.933  FAILED, KNOWN, expected 651816.987\n    test 88 hubeny3: <function flatLocal at 0x1045382c0>\n\n    test 89 haversine4 (0.00%): 4084985.780\n    test 90 vincentys4 (0.00%): 4084985.780\n    test 91 vincentys4 (0.00%): 4084985.780\n    test 92 cosineAndoyerLambert4 (0.24%): 4094954.008  FAILED, KNOWN, expected 4084985.780\n    test 93 cosineForsytheAndoyerLambert4 (0.24%): 4094953.639  FAILED, KNOWN, expected 4084985.780\n    test 94 cosineLaw4 (0.00%): 4084985.780\n    test 95 equirectangular4 (1.26%): 4136407.022  FAILED, KNOWN, expected 4084985.780\n    test 96 euclidean4 (4.22%): 4257296.511  FAILED, KNOWN, expected 4084985.780\n    test 97 flatLocal4 (1.51%): 4146513.247  FAILED, KNOWN, expected 4084985.780\n    test 98 flatPolar4 (12.31%): 4587896.452  FAILED, KNOWN, expected 4084985.780\n    test 99 thomas4 (0.24%): 4094958.301  FAILED, KNOWN, expected 4084985.780\n    test 100 hubeny4: <function flatLocal at 0x1045382c0>\n\n    test 101 haversine5 (0.00%): 9670051.606\n    test 102 vincentys5 (0.00%): 9670051.606\n    test 103 vincentys5 (0.00%): 9670051.606\n    test 104 cosineAndoyerLambert5 (0.21%): 9690752.610  FAILED, KNOWN, expected 9670051.606\n    test 105 cosineForsytheAndoyerLambert5 (0.21%): 9690746.120  FAILED, KNOWN, expected 9670051.606\n    test 106 cosineLaw5 (0.00%): 9670051.606\n    test 107 equirectangular5 (7.79%): 10423307.214  FAILED, KNOWN, expected 9670051.606\n    test 108 euclidean5 (9.34%): 10573030.726  FAILED, KNOWN, expected 9670051.606\n    test 109 flatLocal5 (8.03%): 10446503.342  FAILED, KNOWN, expected 9670051.606\n    test 110 flatPolar5 (55.59%): 15045906.074  FAILED, KNOWN, expected 9670051.606\n    test 111 thomas5 (0.21%): 9690767.767  FAILED, KNOWN, expected 9670051.606\n    test 112 hubeny5: <function flatLocal at 0x1045382c0>\n\n    test 113 haversine6 (0.00%): 10496496.577\n    test 114 vincentys6 (0.00%): 10496496.577\n    test 115 vincentys6 (0.00%): 10496496.577\n    test 116 cosineAndoyerLambert6 (0.18%): 10477328.664  FAILED, KNOWN, expected 10496496.577\n    test 117 cosineForsytheAndoyerLambert6 (0.18%): 10477342.084  FAILED, KNOWN, expected 10496496.577\n    test 118 cosineLaw6 (0.00%): 10496496.577\n    test 119 equirectangular6 (3.32%): 10844969.236  FAILED, KNOWN, expected 10496496.577\n    test 120 euclidean6 (4.50%): 10968488.107  FAILED, KNOWN, expected 10496496.577\n    test 121 flatLocal6 (3.07%): 10818798.605  FAILED, KNOWN, expected 10496496.577\n    test 122 flatPolar6 (23.87%): 13002288.857  FAILED, KNOWN, expected 10496496.577\n    test 123 thomas6 (0.18%): 10477316.498  FAILED, KNOWN, expected 10496496.577\n    test 124 hubeny6: <function flatLocal at 0x1045382c0>\n\n    test 125 haversine7 (0.00%): 8998396.669\n    test 126 vincentys7 (0.00%): 8998396.669\n    test 127 vincentys7 (0.00%): 8998396.669\n    test 128 cosineAndoyerLambert7 (0.27%): 8974227.489  FAILED, KNOWN, expected 8998396.669\n    test 129 cosineForsytheAndoyerLambert7 (0.27%): 8974238.592  FAILED, KNOWN, expected 8998396.669\n    test 130 cosineLaw7 (0.00%): 8998396.669\n    test 131 equirectangular7 (2.05%): 9182626.289  FAILED, KNOWN, expected 8998396.669\n    test 132 euclidean7 (7.76%): 9696965.812  FAILED, KNOWN, expected 8998396.669\n    test 133 flatLocal7 (1.71%): 9151831.117  FAILED, KNOWN, expected 8998396.669\n    test 134 flatPolar7 (17.56%): 10578638.162  FAILED, KNOWN, expected 8998396.669\n    test 135 thomas7 (0.27%): 8974216.867  FAILED, KNOWN, expected 8998396.669\n    test 136 hubeny7: <function flatLocal at 0x1045382c0>\n\n    test 137 haversine8 (0.00%): 6906867.946\n    test 138 vincentys8 (0.00%): 6906867.946\n    test 139 vincentys8 (0.00%): 6906867.946\n    test 140 cosineAndoyerLambert8 (0.13%): 6916085.969  FAILED, KNOWN, expected 6906867.946\n    test 141 cosineForsytheAndoyerLambert8 (0.13%): 6916085.333  FAILED, KNOWN, expected 6906867.946\n    test 142 cosineLaw8 (0.00%): 6906867.946\n    test 143 equirectangular8 (0.91%): 6969581.760  FAILED, KNOWN, expected 6906867.946\n    test 144 euclidean8 (6.54%): 7358706.022  FAILED, KNOWN, expected 6906867.946\n    test 145 flatLocal8 (1.04%): 6978905.097  FAILED, KNOWN, expected 6906867.946\n    test 146 flatPolar8 (23.23%): 8511564.321  FAILED, KNOWN, expected 6906867.946\n    test 147 thomas8 (0.13%): 6916087.828  FAILED, KNOWN, expected 6906867.946\n    test 148 hubeny8: <function flatLocal at 0x1045382c0>\n\n    test 149 haversine9 (0.01%): 8045325.213  FAILED, KNOWN, expected 8044806.076\n    test 150 vincentys9 (0.01%): 8045325.213  FAILED, KNOWN, expected 8044806.076\n    test 151 cosineAndoyerLambert9 (0.07%): 8050357.566  FAILED, KNOWN, expected 8044806.076\n    test 152 cosineForsytheAndoyerLambert9 (0.07%): 8050363.635  FAILED, KNOWN, expected 8044806.076\n    test 153 cosineLaw9 (0.01%): 8045325.213  FAILED, KNOWN, expected 8044806.076\n    test 154 flatLocal9 (15.21%): 9268128.573  FAILED, KNOWN, expected 8044806.076\n    test 155 thomas9 (0.07%): 8050370.796  FAILED, KNOWN, expected 8044806.076\n    test 156 hubeny9: <function flatLocal at 0x1045382c0>\n\n    test 157 intersection2: pygeodesy.formy\n    test 158 intersection2(None): (25.980762, 15.0)  FAILED, KNOWN, expected (24.284126, 15.0)\n    test 159 intersection2(6371008.771415): (24.146108, 15.0)  FAILED, KNOWN, expected (24.284126, 15.0)\n    test 160 intersection2(-6371008.771415): (24.146108, 15.0)  FAILED, KNOWN, expected (24.284126, 15.0)\n    test 161 intersection2(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84): (24.284126, 15.0)\n\n    test 162 intersections2: pygeodesy.formy\n    test 163 intersections2(None) 1: (1.0003, 1.0003), (-1.0003, -1.0003)\n    test 164 intersections2(None) 2: (2.0024, 2.0024), (-2.0024, -2.0024)\n    test 165 intersections2(None) 5: (5.0381, 5.0381), (-5.0381, -5.0381)\n    test 166 intersections2(None) 10: (10.3062, 10.3062), (-10.3062, -10.3062)\n    test 167 intersections2(None) 20: (-22.494, -22.494), (22.494, 22.494)\n    test 168 intersections2(None) 30: (38.7298, 38.7298), (-38.7298, -38.7298)\n    test 169 intersections2(None) 40: (62.0732, 62.0732), (-62.0732, -62.0732)\n    test 170 intersections2(R_M) 1: (-1.0, -1.0003), (1.0, 1.0003)\n    test 171 intersections2(R_M) 2: (-2.0, -2.0024), (2.0, 2.0024)\n    test 172 intersections2(R_M) 5: (-4.9999, -5.0383), (4.9999, 5.0383)\n    test 173 intersections2(R_M) 10: (-9.9976, -10.3117), (9.9976, 10.3117)\n    test 174 intersections2(R_M) 20: (-19.914, -22.6761), (19.914, 22.6761)\n    test 175 intersections2(R_M) 30: (-29.2059, -40.203), (29.2059, 40.203)\n    test 176 intersections2(R_M) 40: (-35.5129, -68.6826), (35.5129, 68.6826)\n    test 177 intersections2(WGS84) 1: (-1.0112, -0.998), (1.0112, 0.998)\n    test 178 intersections2(WGS84) 2: (-2.0224, -1.9979), (2.0224, 1.9979)\n    test 179 intersections2(WGS84) 5: (-5.0558, -5.0271), (5.0558, 5.0271)\n    test 180 intersections2(WGS84) 10: (-10.1081, -10.2901), (10.1081, 10.2901)\n    test 181 intersections2(WGS84) 20: (-20.1241, -22.6411), (20.1241, 22.6411)\n    test 182 intersections2(WGS84) 30: (-29.4898, -40.1785), (29.4898, 40.1785)\n    test 183 intersections2(WGS84) 40: (-35.8146, -68.7149), (35.8146, 68.7149)\n\n    test 184 radical2: (0.26, 2.6)\n    test 185 radical2: (0.74, 7.4)\n    test 186 radical2: (0.5, 5.0)\n    test 187 radical2: (0.5, 0.0)\n    test 188 IntersectionError: distance (10.0), radius1 (5.0) or radius2 (4.0): too distant  FAILED, KNOWN, expected distance (10.0), ...\n\n    test 189 LimitError: equirectangular4(0.0, 0.0, 60.0, 120.0, limit=45, wrap=False): delta (120) exceeds limit (45)  FAILED, KNOWN, expected delta exceeds ...\n\n    test 190 heightOrthometric: -1.0\n    test 191 heightOrthometric: 1.0\n\n    161 of 191 testFormy.py tests (84.3%) FAILED, incl. 71 KNOWN plus 90 DeprecationWarnings (pygeodesy 26.3.26 Python 3.11.9 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 1.24.2 scipy 1.10.1 Math 2 macOS 26.3.1 isLazy 0 -W  default) 93.433 ms\nrunning /usr/local/bin/p....n3.11 -W default ~/PyGeodesy/test/testFrechet.py\n./pygeodesy/frechet.py:644: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  self._func = self.datum.ellipsoid.geodesic.Inverse1\n./pygeodesy/ellipsoidalKarney.py:94: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return self.datum.ellipsoid.geodesic\n\n    testing testFrechet.py 25.04.21\n\n    test 1 FrechetDegrees_ (degrees): (178.5, 74, 56, 0, 5400)\n    test 2 FrechetDegrees_ (degrees): (175.5, 74, 52.5, 29, 10710)\n    test 3 copy(<class 'type'>): (<class '__main__.FrechetDegrees_'>, True)\n    test 4 FrechetDegrees_.copy(): (<class '__main__.FrechetDegrees_'>, True)\n\n    test 5 FrechetRadians_ (radians): (3.11541, 74, 56, 0, 5400)\n    test 6 FrechetRadians_ (radians): (3.06305, 74, 52.5, 29, 10710)\n    test 7 copy(<class 'type'>): (<class '__main__.FrechetRadians_'>, True)\n    test 8 FrechetRadians_.copy(): (<class '__main__.FrechetRadians_'>, True)\n\n    test 9 FrechetCosineLaw (radians): (2.63867, 0, 13, 0, 5400)\n    test 10 FrechetCosineLaw (radians): (2.63867, 0, 0, 208, 10710)\n    test 11 copy(<class 'type'>): (<class 'pygeodesy.frechet.FrechetCosineLaw'>, True)\n    test 12 FrechetCosineLaw.copy(): (<class 'pygeodesy.frechet.FrechetCosineLaw'>, True)\n\n    test 13 FrechetCosineLaw (radians): (2.6319, 0, 13, 0, 5400)\n    test 14 FrechetCosineLaw (radians): (2.6319, 0, 0, 208, 10710)\n    test 15 copy(<class 'type'>): (<class 'pygeodesy.frechet.FrechetCosineLaw'>, True)\n    test 16 FrechetCosineLaw.copy(): (<class 'pygeodesy.frechet.FrechetCosineLaw'>, True)\n\n    test 17 FrechetCosineLaw (radians): (2.6319, 0, 13, 0, 5400)\n    test 18 FrechetCosineLaw (radians): (2.6319, 0, 0, 208, 10710)\n    test 19 copy(<class 'type'>): (<class 'pygeodesy.frechet.FrechetCosineLaw'>, True)\n    test 20 FrechetCosineLaw.copy(): (<class 'pygeodesy.frechet.FrechetCosineLaw'>, True)\n\n    test 21 FrechetEquirectangular (radians2): (7.1331, 8, 3, 0, 5400)\n    test 22 FrechetEquirectangular (radians2): (7.01295, 0, 0, 208, 10710)\n    test 23 copy(<class 'type'>): (<class 'pygeodesy.frechet.FrechetEquirectangular'>, True)\n    test 24 FrechetEquirectangular.copy(): (<class 'pygeodesy.frechet.FrechetEquirectangular'>, True)\n\n    test 25 FrechetEuclidean (radians): (2.81124, 8, 3, 0, 5400)\n    test 26 FrechetEuclidean (radians): (2.74296, 0, 0, 208, 10710)\n    test 27 copy(<class 'type'>): (<class 'pygeodesy.frechet.FrechetEuclidean'>, True)\n    test 28 FrechetEuclidean.copy(): (<class 'pygeodesy.frechet.FrechetEuclidean'>, True)\n\n    test 29 FrechetFlatLocal (radians2): (7.13778, 8, 3, 0, 5400)\n    test 30 FrechetFlatLocal (radians2): (6.92262, 0, 0, 208, 10710)\n    test 31 copy(<class 'type'>): (<class 'pygeodesy.frechet.FrechetFlatLocal'>, True)\n    test 32 FrechetFlatLocal.copy(): (<class 'pygeodesy.frechet.FrechetFlatLocal'>, True)\n\n    test 33 FrechetFlatPolar (radians): (2.65039, 0, 4, 0, 5400)\n    test 34 FrechetFlatPolar (radians): (2.65039, 0, 0, 208, 10710)\n    test 35 copy(<class 'type'>): (<class 'pygeodesy.frechet.FrechetFlatPolar'>, True)\n    test 36 FrechetFlatPolar.copy(): (<class 'pygeodesy.frechet.FrechetFlatPolar'>, True)\n\n    test 37 FrechetHaversine (radians): (2.63867, 0, 13, 0, 5400)\n    test 38 FrechetHaversine (radians): (2.63867, 0, 0, 208, 10710)\n    test 39 copy(<class 'type'>): (<class 'pygeodesy.frechet.FrechetHaversine'>, True)\n    test 40 FrechetHaversine.copy(): (<class 'pygeodesy.frechet.FrechetHaversine'>, True)\n\n    test 41 FrechetHubeny (radians2): (7.13778, 8, 3, 0, 5400)\n    test 42 FrechetHubeny (radians2): (6.92262, 0, 0, 208, 10710)\n    test 43 copy(<class 'type'>): (<class 'pygeodesy.frechet.FrechetHubeny'>, True)\n    test 44 FrechetHubeny.copy(): (<class 'pygeodesy.frechet.FrechetHubeny'>, True)\n\n    test 45 FrechetThomas (radians): (2.63187, 0, 13, 0, 5400)\n    test 46 FrechetThomas (radians): (2.63187, 0, 0, 208, 10710)\n    test 47 copy(<class 'type'>): (<class 'pygeodesy.frechet.FrechetThomas'>, True)\n    test 48 FrechetThomas.copy(): (<class 'pygeodesy.frechet.FrechetThomas'>, True)\n\n    test 49 FrechetVincentys (radians): (2.63867, 0, 13, 0, 5400)\n    test 50 FrechetVincentys (radians): (2.63867, 0, 0, 208, 10710)\n    test 51 copy(<class 'type'>): (<class 'pygeodesy.frechet.FrechetVincentys'>, True)\n    test 52 FrechetVincentys.copy(): (<class 'pygeodesy.frechet.FrechetVincentys'>, True)\n\n    test 53 FrechetKarney (degrees): (151.09508, 0, 13, 0, 5400)\n    test 54 FrechetKarney (degrees): (151.09508, 0, 0, 208, 10710)\n    test 55 copy(<class 'type'>): (<class 'pygeodesy.frechet.FrechetKarney'>, True)\n    test 56 FrechetKarney.copy(): (<class 'pygeodesy.frechet.FrechetKarney'>, True)\n\n    test 57 FrechetDistanceTo (meter): (16786640.7064, 0, 13, 0, 5400)\n    test 58 FrechetDistanceTo (meter): (16786640.7064, 0, 0, 208, 10710)\n    test 59 copy(<class 'type'>): (<class 'pygeodesy.frechet.FrechetDistanceTo'>, True)\n    test 60 FrechetDistanceTo.copy(): (<class 'pygeodesy.frechet.FrechetDistanceTo'>, True)\n\n    test 61 FrechetDistanceTo (meter): (16786640.7064, 0, 13, 0, 5400)\n    test 62 FrechetDistanceTo (meter): (16786640.7064, 0, 0, 208, 10710)\n    test 63 copy(<class 'type'>): (<class 'pygeodesy.frechet.FrechetDistanceTo'>, True)\n    test 64 FrechetDistanceTo.copy(): (<class 'pygeodesy.frechet.FrechetDistanceTo'>, True)\n\n    test 65 FrechetDistanceTo (meter): (16810959.0015, 0, 13, 0, 5400)\n    test 66 FrechetDistanceTo (meter): (16810959.0015, 0, 0, 208, 10710)\n    test 67 copy(<class 'type'>): (<class 'pygeodesy.frechet.FrechetDistanceTo'>, True)\n    test 68 FrechetDistanceTo.copy(): (<class 'pygeodesy.frechet.FrechetDistanceTo'>, True)\n\n    test 69 FrechetDistanceTo (meter): (16810959.0015, 0, 13, 0, 5400)\n    test 70 FrechetDistanceTo (meter): (16810959.0015, 0, 0, 208, 10710)\n    test 71 copy(<class 'type'>): (<class 'pygeodesy.frechet.FrechetDistanceTo'>, True)\n    test 72 FrechetDistanceTo.copy(): (<class 'pygeodesy.frechet.FrechetDistanceTo'>, True)\n\n    test 73 FrechetDistanceTo (meter): (16810959.0015, 0, 13, 0, 5400)\n    test 74 FrechetDistanceTo (meter): (16810959.0015, 0, 0, 208, 10710)\n    test 75 copy(<class 'type'>): (<class 'pygeodesy.frechet.FrechetDistanceTo'>, True)\n    test 76 FrechetDistanceTo.copy(): (<class 'pygeodesy.frechet.FrechetDistanceTo'>, True)\n\n    test 77 frechet_: (178.5, 74, 56, 19, 5400, 'recursive')\n    test 78 [fi1]: 64.0°S, 096.0°E\n    test 79 [fi2]: 41.0°S, 071.0°W\n    test 80 [fi1]: LatLon_(64.0°S, 096.0°E)\n    test 81 [fi2]: LatLon_(41.0°S, 071.0°W)\n\n    test 82 frechet_: (178.5, 74, 56, 0, 5400, 'non-recursive')\n    test 83 frechet_: (178.5, 15, 3, 0, 5400, 'non-recursive-reversed')\n\n    91 of 83 testFrechet.py tests (109.6%) FAILED, incl. 91 DeprecationWarnings (pygeodesy 26.3.26 Python 3.11.9 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 1.24.2 scipy 1.10.1 Math 2 macOS 26.3.1 isLazy 0 -W  default) 60.242 sec\nrunning /usr/local/bin/p....n3.11 -W default ~/PyGeodesy/test/testFrozen.py\n\n    testing testFrozen.py 24.03.03\n    test 1 cmd: /usr/local/bin/python3.11 -c 'import sys; sys.frozen = True; import pygeodesy; sys.exit(0 if pygeodesy._isfrozen else 1)'\n    test 2 PYGEODESY_LAZY_IMPORT=0: 0\n    test 3 PYGEODESY_LAZY_IMPORT=1: 0\n    test 4 PYGEODESY_LAZY_IMPORT=2: 0\n\n    all 4 testFrozen.py tests passed (pygeodesy 26.3.26 Python 3.11.9 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 1.24.2 scipy 1.10.1 Math 2 macOS 26.3.1 isLazy 0 -W  default) 225.698 ms\nrunning /usr/local/bin/p....n3.11 -W default ~/PyGeodesy/test/testFstats.py\n\n    testing testFstats.py 23.05.08 (module pygeodesy.fstats 25.05.12)\n    test 1 Fcook: 8\n    test 2 Fcook: -0.218750\n    test 3 Fcook: 4.562500\n    test 4 Fcook: 5.0\n    test 5 Fcook: 0.656250\n    test 6 Fcook: 2.0\n    test 7 Fcook: 4.0\n    test 8 Fcook: 1.039635\n\n    test 9 copy: Fcook copy[8]\n    test 10 copy: 5.0\n    test 11 copy: 2.0\n    test 12 Fcook: 8\n\n    test 13 Doubled: 16\n    test 14 Doubled: -0.218750\n    test 15 Doubled: 4.5625\n    test 16 Doubled: 5.0\n    test 17 Doubled: 0.656250\n    test 18 Doubled: 2.0\n    test 19 Doubled: 4.0\n    test 20 Doubled: 1.340453  FAILED, KNOWN, expected 1.039635\n\n    test 21 Empty: Fcook Empty[16]\n    test 22 Empty: 18\n    test 23 Empty: TypeError('Fcook Empty[18] += None: None: not iterable')\n\n    test 24 Excel: 8\n    test 25 Excel: -1.114187\n    test 26 Excel: -0.939792\n    test 27 Excel: 2.735294\n    test 28 Excel: 2.50\n    test 29 Excel: -0.342403\n    test 30 Excel: -0.427052\n    test 31 Excel: 2.061553\n    test 32 Excel: 4.2\n    test 33 Excel: 0.470372\n\n    test 34 Fwelford: 8\n    test 35 Fwelford: 5.0\n    test 36 Fwelford: 2.0\n    test 37 Fwelford: 4.0\n\n    test 38 copy: Fwelford copy[8]\n    test 39 copy: 5.0\n    test 40 copy: 2.0\n    test 41 copy: 4.0\n    test 42 copy: 8\n    test 43 __add__: 18\n    test 44 __add__: TypeError('Fwelford __add__[18] += None: None: not iterable')\n\n    test 45 Flinear: 9\n    test 46 Flinear: 0.988288\n    test 47 Flinear: 167.682949\n    test 48 Flinear: 23.422786\n    test 49 __add__: 10\n    test 50 __add__: 21\n    test 51 __add__: TypeError('Flinear __add__[21] += None: None: not iterable')\n    test 52 __add__: ValueError('Flinear __add__[21] += (1, 2, 3): odd len (3): invalid')\n\n    1 of 52 testFstats.py tests (1.9%) FAILED, ALL KNOWN (pygeodesy 26.3.26 Python 3.11.9 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 1.24.2 scipy 1.10.1 Math 2 macOS 26.3.1 isLazy 0 -W  default) 481.027 ms\nrunning /usr/local/bin/p....n3.11 -W default ~/PyGeodesy/test/testFsums.py\n\n    testing testFsums.py 25.06.02 (module pygeodesy.fsums 26.02.02)\n    test 1 sum1: 0.0  FAILED, KNOWN, expected 2.0\n    test 2 fsum: 2.0\n    test 3 Fsum: 2.0\n    test 4 sum2: 0.0  FAILED, KNOWN, expected 4.0\n    test 5 fsum: 4.0\n    test 6 Fsum: 4.0\n    test 7 sum3: 0.0  FAILED, KNOWN, expected 8.0\n    test 8 fsum: 8.0\n    test 9 Fsum: 8.0\n    test 10 sum4: 0.0  FAILED, KNOWN, expected 16.0\n    test 11 fsum: 16.0\n    test 12 Fsum: 16.0\n    test 13 sum5: 0.0  FAILED, KNOWN, expected 32.0\n    test 14 fsum: 32.0\n    test 15 Fsum: 32.0\n    test 16 sum6: 0.0  FAILED, KNOWN, expected 64.0\n    test 17 fsum: 64.0\n    test 18 Fsum: 64.0\n    test 19 sum7: 0.0  FAILED, KNOWN, expected 128.0\n    test 20 fsum: 128.0\n    test 21 Fsum: 128.0\n    test 22 sum8: 0.0  FAILED, KNOWN, expected 256.0\n    test 23 fsum: 256.0\n    test 24 Fsum: 256.0\n    test 25 sum9: 0.0  FAILED, KNOWN, expected 512.0\n    test 26 fsum: 512.0\n    test 27 Fsum: 512.0\n    test 28 sum10: 0.0  FAILED, KNOWN, expected 1024.0\n    test 29 fsum: 1024.0\n    test 30 Fsum: 1024.0\n    test 31 sum: 1.005000000001\n    test 32 fsum: 1.005000000001\n    test 33 Fsum: 1.005000000001\n    test 34 fsum: 1.0000000000000002e+16\n    test 35 Fsum: 1.0000000000000002e+16\n    test 36 Fsum: 1.0000000000000002e+16\n\n\n    test 37 fsum: 1.4203229439040998e-06\n    test 38 sum1: -10.901592563866116  FAILED, KNOWN, expected 1.4203229439040998e-06\n    test 39 pow(4): Fsum[29] pow(4.06957e-24, -1.6314e-40)  FAILED, KNOWN (1.87595e-40), expected Fsum[29] pow(4.06957e-24, 2.44555e-41)\n    test 40 pow(1): Fsum[842] pow(1.42032e-06, 4.98687e-23)\n    test 41 pow(0): Fsum[1] pow(1.0, 0)\n    test 42 ceil: True\n    test 43 floor: True\n    test 44 divmod: Fsum[847] (0.0, 0)\n    test 45 residual: 0\n    test 46 is_exact: True\n    test 47 Fsum: 1.4203229439040998e-06\n    test 48 Fsum: 1.4203229439040998e-06\n\n    test 49 fsum: 0.017239254941143905\n    test 50 sum2: -3.885337784451458e+84  FAILED, KNOWN, expected 0.017239254941143905\n    test 51 pow(4): Fsum[42] pow(8.8323e-08, 6.29254e-25)  FAILED, KNOWN (1.36733e-24), expected Fsum[42] pow(8.8323e-08, 1.99658e-24)\n    test 52 pow(1): Fsum[842] pow(0.0172393, -6.15105e-19)\n    test 53 pow(0): Fsum[1] pow(1.0, 0)\n    test 54 ceil: True\n    test 55 floor: True\n    test 56 divmod: Fsum[849] (0.0, 0)\n    test 57 residual: 0\n    test 58 is_exact: True\n    test 59 Fsum: 0.017239254941143905\n    test 60 Fsum: 0.017239254941143905\n\n    test 61 fsum: -4.399912565500297\n    test 62 sum3: 18.901967080175687  FAILED, KNOWN, expected -4.399912565500297\n    test 63 pow(4): Fsum[64] pow(374.78, -2.60721e-14)\n    test 64 pow(1): Fsum[842] pow(-4.39991, -9.03137e-17)\n    test 65 pow(0): Fsum[1] pow(1.0, 0)\n    test 66 ceil: True\n    test 67 floor: True\n    test 68 divmod: Fsum[852] (0.0, 0)\n    test 69 residual: 0\n    test 70 is_exact: True\n    test 71 Fsum: -4.399912565500297\n    test 72 Fsum: -4.399912565500297\n\n    test 73 fsum: 4.2324766388316953e-11\n    test 74 sum4: -3.885337784451458e+84  FAILED, KNOWN, expected 4.2324766388316953e-11\n    test 75 pow(4): Fsum[14] pow(3.20906e-42, 8.91042e-59)\n    test 76 pow(1): Fsum[842] pow(4.23248e-11, 2.93802e-28)\n    test 77 pow(0): Fsum[1] pow(1.0, 0)\n    test 78 ceil: True\n    test 79 floor: True\n    test 80 divmod: Fsum[845] (0.0, 0)\n    test 81 residual: 0\n    test 82 is_exact: True\n    test 83 Fsum: 4.2324766388316953e-11\n    test 84 Fsum: 4.2324766388316953e-11\n\n    test 85 fsum: -0.008914133182563242\n    test 86 sum5: 102.99652506714692  FAILED, KNOWN, expected -0.008914133182563242\n    test 87 pow(4): Fsum[93] pow(6.31417e-09, 2.92224e-25)  FAILED, KNOWN (2.49727e-25), expected Fsum[93] pow(6.31417e-09, -2.8523e-25)\n    test 88 pow(1): Fsum[842] pow(-0.00891413, -5.71362e-19)\n    test 89 pow(0): Fsum[1] pow(1.0, 0)\n    test 90 ceil: True\n    test 91 floor: True\n    test 92 divmod: Fsum[854] (0.0, 0)\n    test 93 residual: 0\n    test 94 is_exact: True\n    test 95 Fsum: -0.008914133182563242\n    test 96 Fsum: -0.008914133182563242\n\n    test 97 fsum: 0.2668150469030887\n    test 98 sum6: 103.51756425455667  FAILED, KNOWN, expected 0.2668150469030887\n    test 99 pow(4): Fsum[56] pow(0.00506805, -6.59665e-20)  FAILED, KNOWN (1.20602e-19), expected Fsum[56] pow(0.00506805, 5.46352e-20)\n    test 100 pow(1): Fsum[842] pow(0.266815, 2.51382e-17)\n    test 101 pow(0): Fsum[1] pow(1.0, 0)\n    test 102 ceil: True\n    test 103 floor: True\n    test 104 divmod: Fsum[849] (0.0, 0)\n    test 105 residual: 0\n    test 106 is_exact: True\n    test 107 Fsum: 0.2668150469030887\n    test 108 Fsum: 0.2668150469030887\n\n    test 109 fsum: -1.8483996395074306e-08\n    test 110 sum7: -3.885337784451458e+84  FAILED, KNOWN, expected -1.8483996395074306e-08\n    test 111 pow(4): Fsum[20] pow(1.1673e-31, 2.03536e-48)  FAILED, KNOWN (3.26515e-48), expected Fsum[20] pow(1.1673e-31, 5.30051e-48)\n    test 112 pow(1): Fsum[842] pow(-1.8484e-08, -1.41426e-24)\n    test 113 pow(0): Fsum[1] pow(1.0, 0)\n    test 114 ceil: True\n    test 115 floor: True\n    test 116 divmod: Fsum[847] (0.0, 0)\n    test 117 residual: 0\n    test 118 is_exact: True\n    test 119 Fsum: -1.8483996395074306e-08\n    test 120 Fsum: -1.8483996395074306e-08\n\n    test 121 fsum: -0.0005853306979721807\n    test 122 sum8: -3.885337784451458e+84  FAILED, KNOWN, expected -0.0005853306979721807\n    test 123 pow(4): Fsum[31] pow(1.17383e-13, 3.43209e-30)\n    test 124 pow(1): Fsum[842] pow(-0.000585331, -4.27854e-21)\n    test 125 pow(0): Fsum[1] pow(1.0, 0)\n    test 126 ceil: True\n    test 127 floor: True\n    test 128 divmod: Fsum[848] (0.0, 0)\n    test 129 residual: 0\n    test 130 is_exact: True\n    test 131 Fsum: -0.0005853306979721807\n    test 132 Fsum: -0.0005853306979721807\n\n    test 133 fsum: 0.28395513510726667\n    test 134 sum9: -3.885337784451458e+84  FAILED, KNOWN, expected 0.28395513510726667\n    test 135 pow(4): Fsum[39] pow(0.00650128, 2.3737e-19)\n    test 136 pow(1): Fsum[842] pow(0.283955, 2.59189e-18)\n    test 137 pow(0): Fsum[1] pow(1.0, 0)\n    test 138 ceil: True\n    test 139 floor: True\n    test 140 divmod: Fsum[848] (0.0, 0)\n    test 141 residual: 0\n    test 142 is_exact: True\n    test 143 Fsum: 0.28395513510726667\n    test 144 Fsum: 0.28395513510726667\n\n    test 145 fsum: 0.00019154119665364008\n    test 146 sum10: -3.885337784451458e+84  FAILED, KNOWN, expected 0.00019154119665364008\n    test 147 pow(4): Fsum[33] pow(1.34601e-15, -3.7143e-32)  FAILED, KNOWN (4.55658e-32), expected Fsum[33] pow(1.34601e-15, -8.27088e-32)\n    test 148 pow(1): Fsum[842] pow(0.000191541, -1.15795e-20)\n    test 149 pow(0): Fsum[1] pow(1.0, 0)\n    test 150 ceil: True\n    test 151 floor: True\n    test 152 divmod: Fsum[848] (0.0, 0)\n    test 153 residual: 0\n    test 154 is_exact: True\n    test 155 Fsum: 0.00019154119665364008\n    test 156 Fsum: 0.00019154119665364008\n\n    test 157 fsum: 5.358490922383404e-08\n    test 158 sum11: -3.885337784451458e+84  FAILED, KNOWN, expected 5.358490922383404e-08\n    test 159 pow(4): Fsum[21] pow(8.24461e-30, -6.18094e-46)  FAILED, KNOWN (2.68754e-46), expected Fsum[21] pow(8.24461e-30, 5.14451e-46)\n    test 160 pow(1): Fsum[842] pow(5.35849e-08, 2.67612e-24)\n    test 161 pow(0): Fsum[1] pow(1.0, 0)\n    test 162 ceil: True\n    test 163 floor: True\n    test 164 divmod: Fsum[846] (0.0, 0)\n    test 165 residual: 0\n    test 166 is_exact: True\n    test 167 Fsum: 5.358490922383404e-08\n    test 168 Fsum: 5.358490922383404e-08\n\n    test 169 fsum: -1.9453763248695655\n    test 170 sum12: 141.30380557734009  FAILED, KNOWN, expected -1.9453763248695655\n    test 171 pow(4): Fsum[24] pow(14.3224, 8.07792e-16)  FAILED, KNOWN (9.57061e-17), expected Fsum[24] pow(14.3224, -8.72858e-16)\n    test 172 pow(1): Fsum[842] pow(-1.94538, 8.67095e-17)\n    test 173 pow(0): Fsum[1] pow(1.0, 0)\n    test 174 ceil: True\n    test 175 floor: True\n    test 176 divmod: Fsum[847] (0.0, 0)\n    test 177 residual: 0\n    test 178 is_exact: True\n    test 179 Fsum: -1.9453763248695655\n    test 180 Fsum: -1.9453763248695655\n\n    test 181 fsum: 4.161773385984235e-09\n    test 182 sum13: 3.885337784451458e+84  FAILED, KNOWN, expected 4.161773385984235e-09\n    test 183 pow(4): Fsum[21] pow(2.99995e-34, -1.50934e-50)\n    test 184 pow(1): Fsum[842] pow(4.16177e-09, -5.2347e-26)\n    test 185 pow(0): Fsum[1] pow(1.0, 0)\n    test 186 ceil: True\n    test 187 floor: True\n    test 188 divmod: Fsum[846] (0.0, 0)\n    test 189 residual: 0\n    test 190 is_exact: True\n    test 191 Fsum: 4.161773385984235e-09\n    test 192 Fsum: 4.161773385984235e-09\n\n    test 193 fsum: -5.330669493335932e-08\n    test 194 sum14: 3.885337784451458e+84  FAILED, KNOWN, expected -5.330669493335932e-08\n    test 195 pow(4): Fsum[42] pow(8.07471e-30, 5.69318e-46)\n    test 196 pow(1): Fsum[842] pow(-5.33067e-08, 1.37312e-24)\n    test 197 pow(0): Fsum[1] pow(1.0, 0)\n    test 198 ceil: True\n    test 199 floor: True\n    test 200 divmod: Fsum[851] (0.0, 0)\n    test 201 residual: 0\n    test 202 is_exact: True\n    test 203 Fsum: -5.330669493335932e-08\n    test 204 Fsum: -5.330669493335932e-08\n\n    test 205 fsum: -6.4410389150402375e-09\n    test 206 sum15: -3.885337784451458e+84  FAILED, KNOWN, expected -6.4410389150402375e-09\n    test 207 pow(4): Fsum[12] pow(1.72117e-33, 1.11271e-49)  FAILED, KNOWN (8.64306e-50), expected Fsum[12] pow(1.72117e-33, 2.48406e-50)\n    test 208 pow(1): Fsum[842] pow(-6.44104e-09, -2.62447e-25)\n    test 209 pow(0): Fsum[1] pow(1.0, 0)\n    test 210 ceil: True\n    test 211 floor: True\n    test 212 divmod: Fsum[846] (0.0, 0)\n    test 213 residual: 0\n    test 214 is_exact: True\n    test 215 Fsum: -6.4410389150402375e-09\n    test 216 Fsum: -6.4410389150402375e-09\n\n    test 217 fsum: -100.70449671778515\n    test 218 sum16: -0.4241287148140251  FAILED, KNOWN, expected -100.70449671778515\n    test 219 pow(4): Fsum[56] pow(1.02848e+08, -6.01033e-09)  FAILED, KNOWN (3.54593e-09), expected Fsum[56] pow(1.02848e+08, 5.3449e-09)\n    test 220 pow(1): Fsum[842] pow(-100.704, 6.85494e-15)\n    test 221 pow(0): Fsum[1] pow(1.0, 0)\n    test 222 ceil: True\n    test 223 floor: True\n    test 224 divmod: Fsum[851] (0.0, 0)\n    test 225 residual: 0\n    test 226 is_exact: True\n    test 227 Fsum: -100.70449671778515\n    test 228 Fsum: -100.70449671778515\n\n    test 229 fsum: 0.031430096586523674\n    test 230 sum17: 6.436479712404695  FAILED, KNOWN, expected 0.031430096586523674\n    test 231 pow(4): Fsum[59] pow(9.7585e-07, -4.60045e-23)  FAILED, KNOWN (2.4478e-24), expected Fsum[59] pow(9.7585e-07, -4.35567e-23)\n    test 232 pow(1): Fsum[842] pow(0.0314301, 3.07914e-18)\n    test 233 pow(0): Fsum[1] pow(1.0, 0)\n    test 234 ceil: True\n    test 235 floor: True\n    test 236 divmod: Fsum[853] (0.0, 0)\n    test 237 residual: 0\n    test 238 is_exact: True\n    test 239 Fsum: 0.031430096586523674\n    test 240 Fsum: 0.031430096586523674\n\n    test 241 fsum: 4.749236242624645e-07\n    test 242 sum18: -8.454446517269734  FAILED, KNOWN, expected 4.749236242624645e-07\n    test 243 pow(4): Fsum[34] pow(5.08739e-26, -7.82447e-43)\n    test 244 pow(1): Fsum[842] pow(4.74924e-07, -1.8261e-24)\n    test 245 pow(0): Fsum[1] pow(1.0, 0)\n    test 246 ceil: True\n    test 247 floor: True\n    test 248 divmod: Fsum[848] (0.0, 0)\n    test 249 residual: 0\n    test 250 is_exact: True\n    test 251 Fsum: 4.749236242624645e-07\n    test 252 Fsum: 4.749236242624645e-07\n\n    test 253 fsum: 4.020975754301224e-09\n    test 254 sum19: -3.885337784451458e+84  FAILED, KNOWN, expected 4.020975754301224e-09\n    test 255 pow(4): Fsum[20] pow(2.61412e-34, -1.7606e-50)  FAILED, KNOWN (7.05802e-51), expected Fsum[20] pow(2.61412e-34, -1.0548e-50)\n    test 256 pow(1): Fsum[842] pow(4.02098e-09, 3.15474e-25)\n    test 257 pow(0): Fsum[1] pow(1.0, 0)\n    test 258 ceil: True\n    test 259 floor: True\n    test 260 divmod: Fsum[846] (0.0, 0)\n    test 261 residual: 0\n    test 262 is_exact: True\n    test 263 Fsum: 4.020975754301224e-09\n    test 264 Fsum: 4.020975754301224e-09\n\n    test 265 fsum: 0.048270757278626016\n    test 266 sum20: 49.72569172644126  FAILED, KNOWN, expected 0.048270757278626016\n    test 267 pow(4): Fsum[49] pow(5.42921e-06, -1.26713e-22)  FAILED, KNOWN (1.63472e-22), expected Fsum[49] pow(5.42921e-06, -2.90185e-22)\n    test 268 pow(1): Fsum[842] pow(0.0482708, -2.89109e-18)\n    test 269 pow(0): Fsum[1] pow(1.0, 0)\n    test 270 ceil: True\n    test 271 floor: True\n    test 272 divmod: Fsum[849] (0.0, 0)\n    test 273 residual: 0\n    test 274 is_exact: True\n    test 275 Fsum: 0.048270757278626016\n    test 276 Fsum: 0.048270757278626016\n\n    test 277 fsum: 1.2425017682661341e-09\n    test 278 sum21: 18.85307148542335  FAILED, KNOWN, expected 1.2425017682661341e-09\n    test 279 pow(4): Fsum[23] pow(2.38335e-36, -1.56652e-53)  FAILED, KNOWN (3.67685e-53), expected Fsum[23] pow(2.38335e-36, 2.11032e-53)\n    test 280 pow(1): Fsum[842] pow(1.2425e-09, -7.95438e-26)\n    test 281 pow(0): Fsum[1] pow(1.0, 0)\n    test 282 ceil: True\n    test 283 floor: True\n    test 284 divmod: Fsum[847] (0.0, 0)\n    test 285 residual: 0\n    test 286 is_exact: True\n    test 287 Fsum: 1.2425017682661341e-09\n    test 288 Fsum: 1.2425017682661341e-09\n\n    test 289 fsum: -1.8530858503343324e-06\n    test 290 sum22: -3.7170290449581245  FAILED, KNOWN, expected -1.8530858503343324e-06\n    test 291 pow(4): Fsum[25] pow(1.17919e-23, 2.54808e-40)\n    test 292 pow(1): Fsum[842] pow(-1.85309e-06, -1.00107e-23)\n    test 293 pow(0): Fsum[1] pow(1.0, 0)\n    test 294 ceil: True\n    test 295 floor: True\n    test 296 divmod: Fsum[847] (0.0, 0)\n    test 297 residual: 0\n    test 298 is_exact: True\n    test 299 Fsum: -1.8530858503343324e-06\n    test 300 Fsum: -1.8530858503343324e-06\n\n    test 301 fsum: -4.916695735069353e-09\n    test 302 sum23: 3.885337784451458e+84  FAILED, KNOWN, expected -4.916695735069353e-09\n    test 303 pow(4): Fsum[28] pow(5.84377e-34, -1.50157e-50)  FAILED, KNOWN (1.10369e-50), expected Fsum[28] pow(5.84377e-34, -2.60526e-50)\n    test 304 pow(1): Fsum[842] pow(-4.9167e-09, -2.81786e-25)\n    test 305 pow(0): Fsum[1] pow(1.0, 0)\n    test 306 ceil: True\n    test 307 floor: True\n    test 308 divmod: Fsum[849] (0.0, 0)\n    test 309 residual: 0\n    test 310 is_exact: True\n    test 311 Fsum: -4.916695735069353e-09\n    test 312 Fsum: -4.916695735069353e-09\n\n    test 313 fsum: 0.006121711945771237\n    test 314 sum24: -1.3092057101621226  FAILED, KNOWN, expected 0.006121711945771237\n    test 315 pow(4): Fsum[38] pow(1.4044e-09, -8.69499e-26)  FAILED, KNOWN (1.59647e-25), expected Fsum[38] pow(1.4044e-09, -3.98021e-26)\n    test 316 pow(1): Fsum[842] pow(0.00612171, -4.08653e-19)\n    test 317 pow(0): Fsum[1] pow(1.0, 0)\n    test 318 ceil: True\n    test 319 floor: True\n    test 320 divmod: Fsum[849] (0.0, 0)\n    test 321 residual: 0\n    test 322 is_exact: True\n    test 323 Fsum: 0.006121711945771237\n    test 324 Fsum: 0.006121711945771237\n\n    test 325 fsum: 4.220812132230373e-06\n    test 326 sum25: 3.885337784451458e+84  FAILED, KNOWN, expected 4.220812132230373e-06\n    test 327 pow(4): Fsum[42] pow(3.17383e-22, -9.94406e-39)  FAILED, KNOWN (1.05444e-38), expected Fsum[42] pow(3.17383e-22, 6.00364e-40)\n    test 328 pow(1): Fsum[842] pow(4.22081e-06, 1.93379e-22)\n    test 329 pow(0): Fsum[1] pow(1.0, 0)\n    test 330 ceil: True\n    test 331 floor: True\n    test 332 divmod: Fsum[850] (0.0, 0)\n    test 333 residual: 0\n    test 334 is_exact: True\n    test 335 Fsum: 4.220812132230373e-06\n    test 336 Fsum: 4.220812132230373e-06\n\n    test 337 fsum: 8.867746101512408e-13\n    test 338 sum26: -3.885337784451458e+84  FAILED, KNOWN, expected 8.867746101512408e-13\n    test 339 pow(4): Fsum[11] pow(6.18377e-49, 1.24622e-65)  FAILED, KNOWN (3.74794e-66), expected Fsum[11] pow(6.18377e-49, 1.62101e-65)\n    test 340 pow(1): Fsum[842] pow(8.86775e-13, -4.73128e-29)\n    test 341 pow(0): Fsum[1] pow(1.0, 0)\n    test 342 ceil: True\n    test 343 floor: True\n    test 344 divmod: Fsum[845] (0.0, 0)\n    test 345 residual: 0\n    test 346 is_exact: True\n    test 347 Fsum: 8.867746101512408e-13\n    test 348 Fsum: 8.867746101512408e-13\n\n    test 349 fsum: -6.398629890964825e-08\n    test 350 sum27: -3.885337784451458e+84  FAILED, KNOWN, expected -6.398629890964825e-08\n    test 351 pow(4): Fsum[22] pow(1.67629e-29, -5.76405e-46)  FAILED, KNOWN (2.58143e-45), expected Fsum[22] pow(1.67629e-29, -7.97575e-46)\n    test 352 pow(1): Fsum[842] pow(-6.39863e-08, -6.52054e-24)\n    test 353 pow(0): Fsum[1] pow(1.0, 0)\n    test 354 ceil: True\n    test 355 floor: True\n    test 356 divmod: Fsum[847] (0.0, 0)\n    test 357 residual: 0\n    test 358 is_exact: True\n    test 359 Fsum: -6.398629890964825e-08\n    test 360 Fsum: -6.398629890964825e-08\n\n    test 361 fsum: -0.17897224932807945\n    test 362 sum28: -3.885337784451458e+84  FAILED, KNOWN, expected -0.17897224932807945\n    test 363 pow(4): Fsum[39] pow(0.00102599, -1.26983e-21)  FAILED, KNOWN (5.41973e-21), expected Fsum[39] pow(0.00102599, -6.68956e-21)\n    test 364 pow(1): Fsum[842] pow(-0.178972, 9.98442e-18)\n    test 365 pow(0): Fsum[1] pow(1.0, 0)\n    test 366 ceil: True\n    test 367 floor: True\n    test 368 divmod: Fsum[849] (0.0, 0)\n    test 369 residual: 0\n    test 370 is_exact: True\n    test 371 Fsum: -0.17897224932807945\n    test 372 Fsum: -0.17897224932807945\n\n    test 373 fsum: 5.7855200966644714e-05\n    test 374 sum29: 3.885337784451458e+84  FAILED, KNOWN, expected 5.7855200966644714e-05\n    test 375 pow(4): Fsum[31] pow(1.12039e-17, 5.45609e-34)  FAILED, KNOWN (8.02734e-35), expected Fsum[31] pow(1.12039e-17, 4.65336e-34)\n    test 376 pow(1): Fsum[842] pow(5.78552e-05, -1.28468e-21)\n    test 377 pow(0): Fsum[1] pow(1.0, 0)\n    test 378 ceil: True\n    test 379 floor: True\n    test 380 divmod: Fsum[848] (0.0, 0)\n    test 381 residual: 0\n    test 382 is_exact: True\n    test 383 Fsum: 5.7855200966644714e-05\n    test 384 Fsum: 5.7855200966644714e-05\n\n    test 385 fsum: -0.1696709590636187\n    test 386 sum30: -3.885337784451458e+84  FAILED, KNOWN, expected -0.1696709590636187\n    test 387 pow(4): Fsum[50] pow(0.000828762, 3.5245e-20)  FAILED, KNOWN (8.54097e-21), expected Fsum[50] pow(0.000828762, 4.37859e-20)\n    test 388 pow(1): Fsum[842] pow(-0.169671, 8.42014e-18)\n    test 389 pow(0): Fsum[1] pow(1.0, 0)\n    test 390 ceil: True\n    test 391 floor: True\n    test 392 divmod: Fsum[851] (0.0, 0)\n    test 393 residual: 0\n    test 394 is_exact: True\n    test 395 Fsum: -0.1696709590636187\n    test 396 Fsum: -0.1696709590636187\n\n    test 397 fsum: -0.012598183978412492\n    test 398 sum31: 3.885337784451458e+84  FAILED, KNOWN, expected -0.012598183978412492\n    test 399 pow(4): Fsum[39] pow(2.51902e-08, 1.26473e-26)  FAILED, KNOWN (2.31549e-24), expected Fsum[39] pow(2.51902e-08, 1.00588e-24)\n    test 400 pow(1): Fsum[842] pow(-0.0125982, -6.63642e-19)\n    test 401 pow(0): Fsum[1] pow(1.0, 0)\n    test 402 ceil: True\n    test 403 floor: True\n    test 404 divmod: Fsum[849] (0.0, 0)\n    test 405 residual: 0\n    test 406 is_exact: True\n    test 407 Fsum: -0.012598183978412492\n    test 408 Fsum: -0.012598183978412492\n\n    test 409 fsum: 3.093510407095073e-12\n    test 410 sum32: 3.885337784451458e+84  FAILED, KNOWN, expected 3.093510407095073e-12\n    test 411 pow(4): Fsum[28] pow(9.15812e-47, -8.60328e-63)  FAILED, KNOWN (5.38536e-63), expected Fsum[28] pow(9.15812e-47, -3.21792e-63)\n    test 412 pow(1): Fsum[842] pow(3.09351e-12, -1.4592e-28)\n    test 413 pow(0): Fsum[1] pow(1.0, 0)\n    test 414 ceil: True\n    test 415 floor: True\n    test 416 divmod: Fsum[847] (0.0, 0)\n    test 417 residual: 0\n    test 418 is_exact: True\n    test 419 Fsum: 3.093510407095073e-12\n    test 420 Fsum: 3.093510407095073e-12\n\n    test 421 fsum: 0.0017197856474203425\n    test 422 sum33: -8.706789672694601  FAILED, KNOWN, expected 0.0017197856474203425\n    test 423 pow(4): Fsum[33] pow(8.74777e-12, -5.28028e-28)  FAILED, KNOWN (1.93014e-28), expected Fsum[33] pow(8.74777e-12, -3.35014e-28)\n    test 424 pow(1): Fsum[842] pow(0.00171979, 5.34528e-20)\n    test 425 pow(0): Fsum[1] pow(1.0, 0)\n    test 426 ceil: True\n    test 427 floor: True\n    test 428 divmod: Fsum[848] (0.0, 0)\n    test 429 residual: 0\n    test 430 is_exact: True\n    test 431 Fsum: 0.0017197856474203425\n    test 432 Fsum: 0.0017197856474203425\n\n    test 433 fsum: -0.2959541337937912\n    test 434 sum34: -3.885337784451458e+84  FAILED, KNOWN, expected -0.2959541337937912\n    test 435 pow(4): Fsum[45] pow(0.00767181, 1.98861e-19)\n    test 436 pow(1): Fsum[842] pow(-0.295954, 6.44717e-18)\n    test 437 pow(0): Fsum[1] pow(1.0, 0)\n    test 438 ceil: True\n    test 439 floor: True\n    test 440 divmod: Fsum[851] (0.0, 0)\n    test 441 residual: 0\n    test 442 is_exact: True\n    test 443 Fsum: -0.2959541337937912\n    test 444 Fsum: -0.2959541337937912\n\n    test 445 fsum: 1.1234860549063546e-09\n    test 446 sum35: -3.885337784451458e+84  FAILED, KNOWN, expected 1.1234860549063546e-09\n    test 447 pow(4): Fsum[14] pow(1.5932e-36, 1.24001e-52)\n    test 448 pow(1): Fsum[842] pow(1.12349e-09, 2.18605e-26)\n    test 449 pow(0): Fsum[1] pow(1.0, 0)\n    test 450 ceil: True\n    test 451 floor: True\n    test 452 divmod: Fsum[845] (0.0, 0)\n    test 453 residual: 0\n    test 454 is_exact: True\n    test 455 Fsum: 1.1234860549063546e-09\n    test 456 Fsum: 1.1234860549063546e-09\n\n    test 457 fsum: 3.0216063258744465e-09\n    test 458 sum36: -208.27160004293484  FAILED, KNOWN, expected 3.0216063258744465e-09\n    test 459 pow(4): Fsum[26] pow(8.33588e-35, 1.91616e-51)  FAILED, KNOWN (7.31496e-51), expected Fsum[26] pow(8.33588e-35, -1.45993e-51)\n    test 460 pow(1): Fsum[842] pow(3.02161e-09, 1.76e-25)\n    test 461 pow(0): Fsum[1] pow(1.0, 0)\n    test 462 ceil: True\n    test 463 floor: True\n    test 464 divmod: Fsum[848] (0.0, 0)\n    test 465 residual: 0\n    test 466 is_exact: True\n    test 467 Fsum: 3.0216063258744465e-09\n    test 468 Fsum: 3.0216063258744465e-09\n\n    test 469 fsum: -40.38391063402946\n    test 470 sum37: 1368.190802034354  FAILED, KNOWN, expected -40.38391063402946\n    test 471 pow(4): Fsum[34] pow(2.65971e+06, -2.01207e-10)\n    test 472 pow(1): Fsum[842] pow(-40.3839, -1.00384e-15)\n    test 473 pow(0): Fsum[1] pow(1.0, 0)\n    test 474 ceil: True\n    test 475 floor: True\n    test 476 divmod: Fsum[848] (0.0, 0)\n    test 477 residual: 0\n    test 478 is_exact: True\n    test 479 Fsum: -40.38391063402946\n    test 480 Fsum: -40.38391063402946\n\n    test 481 fsum: -8.315323065039467e-09\n    test 482 sum38: 67.87182036385508  FAILED, KNOWN, expected -8.315323065039467e-09\n    test 483 pow(4): Fsum[26] pow(4.78098e-33, 1.07191e-49)  FAILED, KNOWN (8.86311e-50), expected Fsum[26] pow(4.78098e-33, 1.95822e-49)\n    test 484 pow(1): Fsum[842] pow(-8.31532e-09, -7.87767e-25)\n    test 485 pow(0): Fsum[1] pow(1.0, 0)\n    test 486 ceil: True\n    test 487 floor: True\n    test 488 divmod: Fsum[848] (0.0, 0)\n    test 489 residual: 0\n    test 490 is_exact: True\n    test 491 Fsum: -8.315323065039467e-09\n    test 492 Fsum: -8.315323065039467e-09\n\n    test 493 fsum: 0.00025425233271824874\n    test 494 sum39: 86.2696164228908  FAILED, KNOWN, expected 0.00025425233271824874\n    test 495 pow(4): Fsum[40] pow(4.17888e-15, 4.77807e-32)  FAILED, KNOWN (6.66986e-32), expected Fsum[40] pow(4.17888e-15, -1.89179e-32)\n    test 496 pow(1): Fsum[842] pow(0.000254252, -1.33013e-20)\n    test 497 pow(0): Fsum[1] pow(1.0, 0)\n    test 498 ceil: True\n    test 499 floor: True\n    test 500 divmod: Fsum[848] (0.0, 0)\n    test 501 residual: 0\n    test 502 is_exact: True\n    test 503 Fsum: 0.00025425233271824874\n    test 504 Fsum: 0.00025425233271824874\n\n    test 505 fsum: 0.010596031823027785\n    test 506 sum40: 3.885337784451458e+84  FAILED, KNOWN, expected 0.010596031823027785\n    test 507 pow(4): Fsum[38] pow(1.26059e-08, 7.74002e-25)  FAILED, KNOWN (7.22175e-25), expected Fsum[38] pow(1.26059e-08, 5.18272e-26)\n    test 508 pow(1): Fsum[842] pow(0.010596, 8.02159e-19)\n    test 509 pow(0): Fsum[1] pow(1.0, 0)\n    test 510 ceil: True\n    test 511 floor: True\n    test 512 divmod: Fsum[847] (0.0, 0)\n    test 513 residual: 0\n    test 514 is_exact: True\n    test 515 Fsum: 0.010596031823027785\n    test 516 Fsum: 0.010596031823027785\n\n    test 517 fsum: 7.833592181697467e-09\n    test 518 sum41: -912.1407786864044  FAILED, KNOWN, expected 7.833592181697467e-09\n    test 519 pow(4): Fsum[21] pow(3.76568e-33, -1.42983e-49)\n    test 520 pow(1): Fsum[842] pow(7.83359e-09, -7.43605e-26)\n    test 521 pow(0): Fsum[1] pow(1.0, 0)\n    test 522 ceil: True\n    test 523 floor: True\n    test 524 divmod: Fsum[846] (0.0, 0)\n    test 525 residual: 0\n    test 526 is_exact: True\n    test 527 Fsum: 7.833592181697467e-09\n    test 528 Fsum: 7.833592181697467e-09\n\n    test 529 fsum: 6.610846222782073e-13\n    test 530 sum42: -118.45001432096298  FAILED, KNOWN, expected 6.610846222782073e-13\n    test 531 pow(4): Fsum[6] pow(1.90998e-49, 5.5861e-66)  FAILED, KNOWN (2.15286e-66), expected Fsum[6] pow(1.90998e-49, 7.73896e-66)\n    test 532 pow(1): Fsum[842] pow(6.61085e-13, 4.14257e-29)\n    test 533 pow(0): Fsum[1] pow(1.0, 0)\n    test 534 ceil: True\n    test 535 floor: True\n    test 536 divmod: Fsum[844] (0.0, 0)\n    test 537 residual: 0\n    test 538 is_exact: True\n    test 539 Fsum: 6.610846222782073e-13\n    test 540 Fsum: 6.610846222782073e-13\n\n    test 541 fsum: -0.0061295368005402735\n    test 542 sum43: 3.885337784451458e+84  FAILED, KNOWN, expected -0.0061295368005402735\n    test 543 pow(4): Fsum[15] pow(1.4116e-09, 3.41835e-26)  FAILED, KNOWN (1.58998e-25), expected Fsum[15] pow(1.4116e-09, 8.19808e-26)\n    test 544 pow(1): Fsum[842] pow(-0.00612954, -3.65373e-19)\n    test 545 pow(0): Fsum[1] pow(1.0, 0)\n    test 546 ceil: True\n    test 547 floor: True\n    test 548 divmod: Fsum[846] (0.0, 0)\n    test 549 residual: 0\n    test 550 is_exact: True\n    test 551 Fsum: -0.0061295368005402735\n    test 552 Fsum: -0.0061295368005402735\n\n    test 553 fsum: 7.515207385115806e-05\n    test 554 sum44: 3.885337784451458e+84  FAILED, KNOWN, expected 7.515207385115806e-05\n    test 555 pow(4): Fsum[32] pow(3.1898e-17, 2.99335e-33)  FAILED, KNOWN (2.36877e-33), expected Fsum[32] pow(3.1898e-17, 6.24583e-34)\n    test 556 pow(1): Fsum[842] pow(7.51521e-05, -1.86692e-21)\n    test 557 pow(0): Fsum[1] pow(1.0, 0)\n    test 558 ceil: True\n    test 559 floor: True\n    test 560 divmod: Fsum[849] (0.0, 0)\n    test 561 residual: 0\n    test 562 is_exact: True\n    test 563 Fsum: 7.515207385115806e-05\n    test 564 Fsum: 7.515207385115806e-05\n\n    test 565 fsum: -0.003654295215608957\n    test 566 sum45: -121.19353641969398  FAILED, KNOWN, expected -0.003654295215608957\n    test 567 pow(4): Fsum[39] pow(1.78326e-10, 5.77285e-27)  FAILED, KNOWN (3.22705e-27), expected Fsum[39] pow(1.78326e-10, 2.5458e-27)\n    test 568 pow(1): Fsum[842] pow(-0.0036543, -1.28938e-19)\n    test 569 pow(0): Fsum[1] pow(1.0, 0)\n    test 570 ceil: True\n    test 571 floor: True\n    test 572 divmod: Fsum[850] (0.0, 0)\n    test 573 residual: 0\n    test 574 is_exact: True\n    test 575 Fsum: -0.003654295215608957\n    test 576 Fsum: -0.003654295215608957\n\n    test 577 fsum: -1.5402369794874465e-07\n    test 578 sum46: -302.8270063425635  FAILED, KNOWN, expected -1.5402369794874465e-07\n    test 579 pow(4): Fsum[23] pow(5.62795e-28, 2.62894e-44)  FAILED, KNOWN (7.48575e-44), expected Fsum[23] pow(5.62795e-28, 4.1115e-44)\n    test 580 pow(1): Fsum[842] pow(-1.54024e-07, 8.44467e-24)\n    test 581 pow(0): Fsum[1] pow(1.0, 0)\n    test 582 ceil: True\n    test 583 floor: True\n    test 584 divmod: Fsum[847] (0.0, 0)\n    test 585 residual: 0\n    test 586 is_exact: True\n    test 587 Fsum: -1.5402369794874465e-07\n    test 588 Fsum: -1.5402369794874465e-07\n\n    test 589 fsum: 0.0031351073041314135\n    test 590 sum47: 309.7002775902754  FAILED, KNOWN, expected 0.0031351073041314135\n    test 591 pow(4): Fsum[33] pow(9.66072e-11, 1.49546e-27)  FAILED, KNOWN (1.80277e-26), expected Fsum[33] pow(9.66072e-11, -6.32624e-27)\n    test 592 pow(1): Fsum[842] pow(0.00313511, 1.16991e-19)\n    test 593 pow(0): Fsum[1] pow(1.0, 0)\n    test 594 ceil: True\n    test 595 floor: True\n    test 596 divmod: Fsum[849] (0.0, 0)\n    test 597 residual: 0\n    test 598 is_exact: True\n    test 599 Fsum: 0.0031351073041314135\n    test 600 Fsum: 0.0031351073041314135\n\n    test 601 fsum: -1.0195462358526644e-12\n    test 602 sum48: 3.885337784451458e+84  FAILED, KNOWN, expected -1.0195462358526644e-12\n    test 603 pow(4): Fsum[14] pow(1.08051e-48, -7.16696e-66)  FAILED, KNOWN (1.83839e-65), expected Fsum[14] pow(1.08051e-48, -2.55508e-65)\n    test 604 pow(1): Fsum[842] pow(-1.01955e-12, -3.41487e-29)\n    test 605 pow(0): Fsum[1] pow(1.0, 0)\n    test 606 ceil: True\n    test 607 floor: True\n    test 608 divmod: Fsum[847] (0.0, 0)\n    test 609 residual: 0\n    test 610 is_exact: True\n    test 611 Fsum: -1.0195462358526644e-12\n    test 612 Fsum: -1.0195462358526644e-12\n\n    test 613 fsum: -2.762699041302757\n    test 614 sum49: -3.885337784451458e+84  FAILED, KNOWN, expected -2.762699041302757\n    test 615 pow(4): Fsum[45] pow(58.2551, 2.3755e-15)\n    test 616 pow(1): Fsum[842] pow(-2.7627, -2.8164e-17)\n    test 617 pow(0): Fsum[1] pow(1.0, 0)\n    test 618 ceil: True\n    test 619 floor: True\n    test 620 divmod: Fsum[851] (0.0, 0)\n    test 621 residual: 0\n    test 622 is_exact: True\n    test 623 Fsum: -2.762699041302757\n    test 624 Fsum: -2.762699041302757\n\n    test 625 fsum: -0.004373577971488287\n    test 626 sum50: -3.885337784451458e+84  FAILED, KNOWN, expected -0.004373577971488287\n    test 627 pow(4): Fsum[46] pow(3.65887e-10, 2.28218e-26)\n    test 628 pow(1): Fsum[842] pow(-0.00437358, -6.81992e-20)\n    test 629 pow(0): Fsum[1] pow(1.0, 0)\n    test 630 ceil: True\n    test 631 floor: True\n    test 632 divmod: Fsum[850] (0.0, 0)\n    test 633 residual: 0\n    test 634 is_exact: True\n    test 635 Fsum: -0.004373577971488287\n    test 636 Fsum: -0.004373577971488287\n\n    test 637 fsum: -1.5970499450308288e-05\n    test 638 sum51: -3.885337784451458e+84  FAILED, KNOWN, expected -1.5970499450308288e-05\n    test 639 pow(4): Fsum[39] pow(6.5054e-20, -4.96291e-36)\n    test 640 pow(1): Fsum[842] pow(-1.59705e-05, -4.34169e-22)\n    test 641 pow(0): Fsum[1] pow(1.0, 0)\n    test 642 ceil: True\n    test 643 floor: True\n    test 644 divmod: Fsum[850] (0.0, 0)\n    test 645 residual: 0\n    test 646 is_exact: True\n    test 647 Fsum: -1.5970499450308288e-05\n    test 648 Fsum: -1.5970499450308288e-05\n\n    test 649 fsum: 0.032100297320307135\n    test 650 sum52: -3.885337784451458e+84  FAILED, KNOWN, expected 0.032100297320307135\n    test 651 pow(4): Fsum[43] pow(1.06178e-06, -4.79052e-23)  FAILED, KNOWN (5.76184e-24), expected Fsum[43] pow(1.06178e-06, -5.3667e-23)\n    test 652 pow(1): Fsum[842] pow(0.0321003, 1.23842e-18)\n    test 653 pow(0): Fsum[1] pow(1.0, 0)\n    test 654 ceil: True\n    test 655 floor: True\n    test 656 divmod: Fsum[849] (0.0, 0)\n    test 657 residual: 0\n    test 658 is_exact: True\n    test 659 Fsum: 0.032100297320307135\n    test 660 Fsum: 0.032100297320307135\n\n    test 661 fsum: -0.0014902560786330264\n    test 662 sum53: -3.885337784451458e+84  FAILED, KNOWN, expected -0.0014902560786330264\n    test 663 pow(4): Fsum[38] pow(4.93223e-12, -2.85207e-28)  FAILED, KNOWN (1.32779e-28), expected Fsum[38] pow(4.93223e-12, 3.89808e-28)\n    test 664 pow(1): Fsum[842] pow(-0.00149026, 1.02621e-19)\n    test 665 pow(0): Fsum[1] pow(1.0, 0)\n    test 666 ceil: True\n    test 667 floor: True\n    test 668 divmod: Fsum[848] (0.0, 0)\n    test 669 residual: 0\n    test 670 is_exact: True\n    test 671 Fsum: -0.0014902560786330264\n    test 672 Fsum: -0.0014902560786330264\n\n    test 673 fsum: -6.93260830709721e-07\n    test 674 sum54: 3.885337784451458e+84  FAILED, KNOWN, expected -6.93260830709721e-07\n    test 675 pow(4): Fsum[22] pow(2.30987e-25, -1.43629e-41)\n    test 676 pow(1): Fsum[842] pow(-6.93261e-07, 1.07769e-23)\n    test 677 pow(0): Fsum[1] pow(1.0, 0)\n    test 678 ceil: True\n    test 679 floor: True\n    test 680 divmod: Fsum[847] (0.0, 0)\n    test 681 residual: 0\n    test 682 is_exact: True\n    test 683 Fsum: -6.93260830709721e-07\n    test 684 Fsum: -6.93260830709721e-07\n\n    test 685 fsum: 2.9080913265077775e-14\n    test 686 sum55: 3.885337784451458e+84  FAILED, KNOWN, expected 2.9080913265077775e-14\n    test 687 pow(4): Fsum[21] pow(7.15208e-55, 7.07194e-71)  FAILED, KNOWN (6.79905e-72), expected Fsum[21] pow(7.15208e-55, 6.39203e-71)\n    test 688 pow(1): Fsum[842] pow(2.90809e-14, -2.36504e-30)\n    test 689 pow(0): Fsum[1] pow(1.0, 0)\n    test 690 ceil: True\n    test 691 floor: True\n    test 692 divmod: Fsum[848] (0.0, 0)\n    test 693 residual: 0\n    test 694 is_exact: True\n    test 695 Fsum: 2.9080913265077775e-14\n    test 696 Fsum: 2.9080913265077775e-14\n\n    test 697 fsum: -5.3637224787681174e-08\n    test 698 sum56: 163.74555705580372  FAILED, KNOWN, expected -5.3637224787681174e-08\n    test 699 pow(4): Fsum[27] pow(8.27685e-30, 4.18428e-46)\n    test 700 pow(1): Fsum[842] pow(-5.36372e-08, -6.77893e-25)\n    test 701 pow(0): Fsum[1] pow(1.0, 0)\n    test 702 ceil: True\n    test 703 floor: True\n    test 704 divmod: Fsum[849] (0.0, 0)\n    test 705 residual: 0\n    test 706 is_exact: True\n    test 707 Fsum: -5.3637224787681174e-08\n    test 708 Fsum: -5.3637224787681174e-08\n\n    test 709 fsum: -0.4665950454344666\n    test 710 sum57: 0.10269347943627775  FAILED, KNOWN, expected -0.4665950454344666\n    test 711 pow(4): Fsum[38] pow(0.0473981, 2.80383e-18)  FAILED, KNOWN (8.96202e-19), expected Fsum[38] pow(0.0473981, -3.23886e-18)\n    test 712 pow(1): Fsum[842] pow(-0.466595, 2.28423e-17)\n    test 713 pow(0): Fsum[1] pow(1.0, 0)\n    test 714 ceil: True\n    test 715 floor: True\n    test 716 divmod: Fsum[849] (0.0, 0)\n    test 717 residual: 0\n    test 718 is_exact: True\n    test 719 Fsum: -0.4665950454344666\n    test 720 Fsum: -0.4665950454344666\n\n    test 721 fsum: -1.097912213493587\n    test 722 sum58: -123.11991024878036  FAILED, KNOWN, expected -1.097912213493587\n    test 723 pow(4): Fsum[58] pow(1.45302, -3.15692e-17)\n    test 724 pow(1): Fsum[842] pow(-1.09791, 5.96349e-18)\n    test 725 pow(0): Fsum[1] pow(1.0, 0)\n    test 726 ceil: True\n    test 727 floor: True\n    test 728 divmod: Fsum[851] (0.0, 0)\n    test 729 residual: 0\n    test 730 is_exact: True\n    test 731 Fsum: -1.097912213493587\n    test 732 Fsum: -1.097912213493587\n\n    test 733 fsum: 0.0008318527265511295\n    test 734 sum59: -24.847187959310634  FAILED, KNOWN, expected 0.0008318527265511295\n    test 735 pow(4): Fsum[32] pow(4.78835e-13, -3.8648e-29)  FAILED, KNOWN (1.49626e-29), expected Fsum[32] pow(4.78835e-13, -2.36854e-29)\n    test 736 pow(1): Fsum[842] pow(0.000831853, 2.70689e-20)\n    test 737 pow(0): Fsum[1] pow(1.0, 0)\n    test 738 ceil: True\n    test 739 floor: True\n    test 740 divmod: Fsum[848] (0.0, 0)\n    test 741 residual: 0\n    test 742 is_exact: True\n    test 743 Fsum: 0.0008318527265511295\n    test 744 Fsum: 0.0008318527265511295\n\n    test 745 fsum: 2.0048130696662265\n    test 746 sum60: -30.512248715904317  FAILED, KNOWN, expected 2.0048130696662265\n    test 747 pow(4): Fsum[49] pow(16.1546, -5.72016e-16)\n    test 748 pow(1): Fsum[842] pow(2.00481, -1.77471e-17)\n    test 749 pow(0): Fsum[1] pow(1.0, 0)\n    test 750 ceil: True\n    test 751 floor: True\n    test 752 divmod: Fsum[849] (0.0, 0)\n    test 753 residual: 0\n    test 754 is_exact: True\n    test 755 Fsum: 2.0048130696662265\n    test 756 Fsum: 2.0048130696662265\n\n    test 757 fsum: -8.91303377980622e-08\n    test 758 sum61: 5.627587847686488  FAILED, KNOWN, expected -8.91303377980622e-08\n    test 759 pow(4): Fsum[19] pow(6.31106e-29, -1.10881e-45)  FAILED, KNOWN (8.38178e-45), expected Fsum[19] pow(6.31106e-29, -3.93742e-45)\n    test 760 pow(1): Fsum[842] pow(-8.91303e-08, 4.34956e-24)\n    test 761 pow(0): Fsum[1] pow(1.0, 0)\n    test 762 ceil: True\n    test 763 floor: True\n    test 764 divmod: Fsum[846] (0.0, 0)\n    test 765 residual: 0\n    test 766 is_exact: True\n    test 767 Fsum: -8.91303377980622e-08\n    test 768 Fsum: -8.91303377980622e-08\n\n    test 769 fsum: -1.0430211818701006e-08\n    test 770 sum62: 13.998635724817735  FAILED, KNOWN, expected -1.0430211818701006e-08\n    test 771 pow(4): Fsum[28] pow(1.18351e-32, -1.42451e-50)  FAILED, KNOWN (2.75237e-50), expected Fsum[28] pow(1.18351e-32, 1.32786e-50)\n    test 772 pow(1): Fsum[842] pow(-1.04302e-08, 5.94016e-25)\n    test 773 pow(0): Fsum[1] pow(1.0, 0)\n    test 774 ceil: True\n    test 775 floor: True\n    test 776 divmod: Fsum[848] (0.0, 0)\n    test 777 residual: 0\n    test 778 is_exact: True\n    test 779 Fsum: -1.0430211818701006e-08\n    test 780 Fsum: -1.0430211818701006e-08\n\n    test 781 fsum: 1.2492275836146128e-14\n    test 782 sum63: 61.045913868887546  FAILED, KNOWN, expected 1.2492275836146128e-14\n    test 783 pow(4): Fsum[29] pow(2.43538e-56, 1.09251e-72)  FAILED, KNOWN (3.98027e-72), expected Fsum[29] pow(2.43538e-56, 5.44936e-73)\n    test 784 pow(1): Fsum[842] pow(1.24923e-14, -4.40539e-31)\n    test 785 pow(0): Fsum[1] pow(1.0, 0)\n    test 786 ceil: True\n    test 787 floor: True\n    test 788 divmod: Fsum[850] (0.0, 0)\n    test 789 residual: 0\n    test 790 is_exact: True\n    test 791 Fsum: 1.2492275836146128e-14\n    test 792 Fsum: 1.2492275836146128e-14\n\n    test 793 fsum: 1.2779036473104664e-08\n    test 794 sum64: 0.03920468148277458  FAILED, KNOWN, expected 1.2779036473104664e-08\n    test 795 pow(4): Fsum[26] pow(2.66681e-32, -2.39266e-48)\n    test 796 pow(1): Fsum[842] pow(1.2779e-08, 3.69114e-25)\n    test 797 pow(0): Fsum[1] pow(1.0, 0)\n    test 798 ceil: True\n    test 799 floor: True\n    test 800 divmod: Fsum[848] (0.0, 0)\n    test 801 residual: 0\n    test 802 is_exact: True\n    test 803 Fsum: 1.2779036473104664e-08\n    test 804 Fsum: 1.2779036473104664e-08\n\n    test 805 fsum: 0.04191632620812525\n    test 806 sum65: 3.885337784451458e+84  FAILED, KNOWN, expected 0.04191632620812525\n    test 807 pow(4): Fsum[35] pow(3.08697e-06, -6.16709e-23)\n    test 808 pow(1): Fsum[842] pow(0.0419163, -2.09349e-19)\n    test 809 pow(0): Fsum[1] pow(1.0, 0)\n    test 810 ceil: True\n    test 811 floor: True\n    test 812 divmod: Fsum[848] (0.0, 0)\n    test 813 residual: 0\n    test 814 is_exact: True\n    test 815 Fsum: 0.04191632620812525\n    test 816 Fsum: 0.04191632620812525\n\n    test 817 fsum: 3.5267358478583304e-07\n    test 818 sum66: -3.885337784451458e+84  FAILED, KNOWN, expected 3.5267358478583304e-07\n    test 819 pow(4): Fsum[16] pow(1.54701e-26, -1.01123e-42)  FAILED, KNOWN (7.47282e-43), expected Fsum[16] pow(1.54701e-26, -2.63945e-43)\n    test 820 pow(1): Fsum[842] pow(3.52674e-07, 1.05929e-23)\n    test 821 pow(0): Fsum[1] pow(1.0, 0)\n    test 822 ceil: True\n    test 823 floor: True\n    test 824 divmod: Fsum[845] (0.0, 0)\n    test 825 residual: 0\n    test 826 is_exact: True\n    test 827 Fsum: 3.5267358478583304e-07\n    test 828 Fsum: 3.5267358478583304e-07\n\n    test 829 fsum: -3.252533092497974e-05\n    test 830 sum67: 3.0564877658989804  FAILED, KNOWN, expected -3.252533092497974e-05\n    test 831 pow(4): Fsum[40] pow(1.11915e-18, 7.54085e-35)  FAILED, KNOWN (1.66418e-34), expected Fsum[40] pow(1.11915e-18, -9.10095e-35)\n    test 832 pow(1): Fsum[842] pow(-3.25253e-05, -2.32756e-21)\n    test 833 pow(0): Fsum[1] pow(1.0, 0)\n    test 834 ceil: True\n    test 835 floor: True\n    test 836 divmod: Fsum[850] (0.0, 0)\n    test 837 residual: 0\n    test 838 is_exact: True\n    test 839 Fsum: -3.252533092497974e-05\n    test 840 Fsum: -3.252533092497974e-05\n\n    test 841 fsum: 165.34478448565338\n    test 842 sum68: 3.885337784451458e+84  FAILED, KNOWN, expected 165.34478448565338\n    test 843 pow(4): Fsum[70] pow(7.47415e+08, -3.62883e-08)  FAILED, KNOWN (1.9751e-08), expected Fsum[70] pow(7.47415e+08, -1.65374e-08)\n    test 844 pow(1): Fsum[842] pow(165.345, -6.4152e-15)\n    test 845 pow(0): Fsum[1] pow(1.0, 0)\n    test 846 ceil: True\n    test 847 floor: True\n    test 848 divmod: Fsum[853] (0.0, 0)\n    test 849 residual: 0\n    test 850 is_exact: True\n    test 851 Fsum: 165.34478448565338\n    test 852 Fsum: 165.34478448565338\n\n    test 853 fsum: -0.0001757526565796681\n    test 854 sum69: -3.885337784451458e+84  FAILED, KNOWN, expected -0.0001757526565796681\n    test 855 pow(4): Fsum[38] pow(9.5413e-16, 8.01476e-32)  FAILED, KNOWN (1.41972e-31), expected Fsum[38] pow(9.5413e-16, 2.49042e-32)\n    test 856 pow(1): Fsum[842] pow(-0.000175753, 5.39102e-21)\n    test 857 pow(0): Fsum[1] pow(1.0, 0)\n    test 858 ceil: True\n    test 859 floor: True\n    test 860 divmod: Fsum[850] (0.0, 0)\n    test 861 residual: 0\n    test 862 is_exact: True\n    test 863 Fsum: -0.0001757526565796681\n    test 864 Fsum: -0.0001757526565796681\n\n    test 865 fsum: -0.05553150797701166\n    test 866 sum70: -3.885337784451458e+84  FAILED, KNOWN, expected -0.05553150797701166\n    test 867 pow(4): Fsum[62] pow(9.5095e-06, 4.55715e-22)  FAILED, KNOWN (1.50518e-21), expected Fsum[62] pow(9.5095e-06, 2.66833e-22)\n    test 868 pow(1): Fsum[842] pow(-0.0555315, 1.80786e-18)\n    test 869 pow(0): Fsum[1] pow(1.0, 0)\n    test 870 ceil: True\n    test 871 floor: True\n    test 872 divmod: Fsum[852] (0.0, 0)\n    test 873 residual: 0\n    test 874 is_exact: True\n    test 875 Fsum: -0.05553150797701166\n    test 876 Fsum: -0.05553150797701166\n\n    test 877 fsum: 5.886312795661918e-05\n    test 878 sum71: -36.36754050768254  FAILED, KNOWN, expected 5.886312795661918e-05\n    test 879 pow(4): Fsum[37] pow(1.20053e-17, -3.74505e-34)\n    test 880 pow(1): Fsum[842] pow(5.88631e-05, -4.59058e-22)\n    test 881 pow(0): Fsum[1] pow(1.0, 0)\n    test 882 ceil: True\n    test 883 floor: True\n    test 884 divmod: Fsum[849] (0.0, 0)\n    test 885 residual: 0\n    test 886 is_exact: True\n    test 887 Fsum: 5.886312795661918e-05\n    test 888 Fsum: 5.886312795661918e-05\n\n    test 889 fsum: -0.00016888123419475597\n    test 890 sum72: -24.559228727940422  FAILED, KNOWN, expected -0.00016888123419475597\n    test 891 pow(4): Fsum[29] pow(8.1344e-16, -7.4716e-33)  FAILED, KNOWN (5.23141e-32), expected Fsum[29] pow(8.1344e-16, 4.48425e-32)\n    test 892 pow(1): Fsum[842] pow(-0.000168881, 7.90085e-21)\n    test 893 pow(0): Fsum[1] pow(1.0, 0)\n    test 894 ceil: True\n    test 895 floor: True\n    test 896 divmod: Fsum[848] (0.0, 0)\n    test 897 residual: 0\n    test 898 is_exact: True\n    test 899 Fsum: -0.00016888123419475597\n    test 900 Fsum: -0.00016888123419475597\n\n    test 901 fsum: -1.4062586274292843e-08\n    test 902 sum73: -452.36352560165193  FAILED, KNOWN, expected -1.4062586274292843e-08\n    test 903 pow(4): Fsum[27] pow(3.91076e-32, -1.23421e-48)  FAILED, KNOWN (4.87507e-48), expected Fsum[27] pow(3.91076e-32, -6.35462e-49)\n    test 904 pow(1): Fsum[842] pow(-1.40626e-08, 4.95379e-25)\n    test 905 pow(0): Fsum[1] pow(1.0, 0)\n    test 906 ceil: True\n    test 907 floor: True\n    test 908 divmod: Fsum[848] (0.0, 0)\n    test 909 residual: 0\n    test 910 is_exact: True\n    test 911 Fsum: -1.4062586274292843e-08\n    test 912 Fsum: -1.4062586274292843e-08\n\n    test 913 fsum: -0.01196513456467219\n    test 914 sum74: 446.4663500655666  FAILED, KNOWN, expected -0.01196513456467219\n    test 915 pow(4): Fsum[39] pow(2.04961e-08, 3.37989e-25)\n    test 916 pow(1): Fsum[842] pow(-0.0119651, -4.93275e-20)\n    test 917 pow(0): Fsum[1] pow(1.0, 0)\n    test 918 ceil: True\n    test 919 floor: True\n    test 920 divmod: Fsum[852] (0.0, 0)\n    test 921 residual: 0\n    test 922 is_exact: True\n    test 923 Fsum: -0.01196513456467219\n    test 924 Fsum: -0.01196513456467219\n\n    test 925 fsum: -6.925513760895447e-07\n    test 926 sum75: 3.885337784451458e+84  FAILED, KNOWN, expected -6.925513760895447e-07\n    test 927 pow(4): Fsum[36] pow(2.30042e-25, -1.88191e-41)\n    test 928 pow(1): Fsum[842] pow(-6.92551e-07, 1.41639e-23)\n    test 929 pow(0): Fsum[1] pow(1.0, 0)\n    test 930 ceil: True\n    test 931 floor: True\n    test 932 divmod: Fsum[849] (0.0, 0)\n    test 933 residual: 0\n    test 934 is_exact: True\n    test 935 Fsum: -6.925513760895447e-07\n    test 936 Fsum: -6.925513760895447e-07\n\n    test 937 fsum: 9.957524498585636e-06\n    test 938 sum76: 3.885337784451458e+84  FAILED, KNOWN, expected 9.957524498585636e-06\n    test 939 pow(4): Fsum[37] pow(9.83118e-21, 6.47229e-37)  FAILED, KNOWN (2.23119e-37), expected Fsum[37] pow(9.83118e-21, -6.34284e-37)\n    test 940 pow(1): Fsum[842] pow(9.95752e-06, -4.85105e-22)\n    test 941 pow(0): Fsum[1] pow(1.0, 0)\n    test 942 ceil: True\n    test 943 floor: True\n    test 944 divmod: Fsum[848] (0.0, 0)\n    test 945 residual: 0\n    test 946 is_exact: True\n    test 947 Fsum: 9.957524498585636e-06\n    test 948 Fsum: 9.957524498585636e-06\n\n    test 949 fsum: 0.0014631781981059653\n    test 950 sum77: 106.27597644108033  FAILED, KNOWN, expected 0.0014631781981059653\n    test 951 pow(4): Fsum[34] pow(4.58341e-12, -2.02933e-28)  FAILED, KNOWN (9.89088e-29), expected Fsum[34] pow(4.58341e-12, -3.01842e-28)\n    test 952 pow(1): Fsum[842] pow(0.00146318, -9.64519e-20)\n    test 953 pow(0): Fsum[1] pow(1.0, 0)\n    test 954 ceil: True\n    test 955 floor: True\n    test 956 divmod: Fsum[847] (0.0, 0)\n    test 957 residual: 0\n    test 958 is_exact: True\n    test 959 Fsum: 0.0014631781981059653\n    test 960 Fsum: 0.0014631781981059653\n\n    test 961 fsum: -5.992658029434769e-10\n    test 962 sum78: 3.885337784451458e+84  FAILED, KNOWN, expected -5.992658029434769e-10\n    test 963 pow(4): Fsum[25] pow(1.28967e-37, -8.71247e-54)\n    test 964 pow(1): Fsum[842] pow(-5.99266e-10, 1.0121e-26)\n    test 965 pow(0): Fsum[1] pow(1.0, 0)\n    test 966 ceil: True\n    test 967 floor: True\n    test 968 divmod: Fsum[849] (0.0, 0)\n    test 969 residual: 0\n    test 970 is_exact: True\n    test 971 Fsum: -5.992658029434769e-10\n    test 972 Fsum: -5.992658029434769e-10\n\n    test 973 fsum: 0.016908889311496828\n    test 974 sum79: 3.885337784451458e+84  FAILED, KNOWN, expected 0.016908889311496828\n    test 975 pow(4): Fsum[43] pow(8.17448e-08, -3.77843e-24)\n    test 976 pow(1): Fsum[842] pow(0.0169089, 4.89016e-19)\n    test 977 pow(0): Fsum[1] pow(1.0, 0)\n    test 978 ceil: True\n    test 979 floor: True\n    test 980 divmod: Fsum[851] (0.0, 0)\n    test 981 residual: 0\n    test 982 is_exact: True\n    test 983 Fsum: 0.016908889311496828\n    test 984 Fsum: 0.016908889311496828\n\n    test 985 fsum: -1.708398806013404\n    test 986 sum80: 3.2280116515526434  FAILED, KNOWN, expected -1.708398806013404\n    test 987 pow(4): Fsum[41] pow(8.51838, 3.41418e-16)\n    test 988 pow(1): Fsum[842] pow(-1.7084, -1.71182e-17)\n    test 989 pow(0): Fsum[1] pow(1.0, 0)\n    test 990 ceil: True\n    test 991 floor: True\n    test 992 divmod: Fsum[850] (0.0, 0)\n    test 993 residual: 0\n    test 994 is_exact: True\n    test 995 Fsum: -1.708398806013404\n    test 996 Fsum: -1.708398806013404\n\n    test 997 fsum: 7.930658007200038e-09\n    test 998 sum81: 3.885337784451458e+84  FAILED, KNOWN, expected 7.930658007200038e-09\n    test 999 pow(4): Fsum[25] pow(3.95582e-33, 3.17481e-49)  FAILED, KNOWN (9.10171e-50), expected Fsum[25] pow(3.95582e-33, 2.26464e-49)\n    test 1000 pow(1): Fsum[842] pow(7.93066e-09, -6.17986e-25)\n    test 1001 pow(0): Fsum[1] pow(1.0, 0)\n    test 1002 ceil: True\n    test 1003 floor: True\n    test 1004 divmod: Fsum[847] (0.0, 0)\n    test 1005 residual: 0\n    test 1006 is_exact: True\n    test 1007 Fsum: 7.930658007200038e-09\n    test 1008 Fsum: 7.930658007200038e-09\n\n    test 1009 fsum: 1.849496426352178e-05\n    test 1010 sum82: -671.1348764671183  FAILED, KNOWN, expected 1.849496426352178e-05\n    test 1011 pow(4): Fsum[38] pow(1.17008e-19, -7.93699e-36)\n    test 1012 pow(1): Fsum[842] pow(1.8495e-05, -3.13643e-22)\n    test 1013 pow(0): Fsum[1] pow(1.0, 0)\n    test 1014 ceil: True\n    test 1015 floor: True\n    test 1016 divmod: Fsum[848] (0.0, 0)\n    test 1017 residual: 0\n    test 1018 is_exact: True\n    test 1019 Fsum: 1.849496426352178e-05\n    test 1020 Fsum: 1.849496426352178e-05\n\n    test 1021 fsum: -1.144351548810233e-09\n    test 1022 sum83: -3.885337784451458e+84  FAILED, KNOWN, expected -1.144351548810233e-09\n    test 1023 pow(4): Fsum[19] pow(1.7149e-36, 5.03698e-53)  FAILED, KNOWN (2.52208e-52), expected Fsum[19] pow(1.7149e-36, 1.32257e-52)\n    test 1024 pow(1): Fsum[842] pow(-1.14435e-09, 7.57464e-26)\n    test 1025 pow(0): Fsum[1] pow(1.0, 0)\n    test 1026 ceil: True\n    test 1027 floor: True\n    test 1028 divmod: Fsum[847] (0.0, 0)\n    test 1029 residual: 0\n    test 1030 is_exact: True\n    test 1031 Fsum: -1.144351548810233e-09\n    test 1032 Fsum: -1.144351548810233e-09\n\n    test 1033 fsum: 0.0018078863936274512\n    test 1034 sum84: -3.885337784451458e+84  FAILED, KNOWN, expected 0.0018078863936274512\n    test 1035 pow(4): Fsum[47] pow(1.06828e-11, 4.8131e-28)\n    test 1036 pow(1): Fsum[842] pow(0.00180789, 2.03635e-20)\n    test 1037 pow(0): Fsum[1] pow(1.0, 0)\n    test 1038 ceil: True\n    test 1039 floor: True\n    test 1040 divmod: Fsum[851] (0.0, 0)\n    test 1041 residual: 0\n    test 1042 is_exact: True\n    test 1043 Fsum: 0.0018078863936274512\n    test 1044 Fsum: 0.0018078863936274512\n\n    test 1045 fsum: -0.004949726479280443\n    test 1046 sum85: -3.885337784451458e+84  FAILED, KNOWN, expected -0.004949726479280443\n    test 1047 pow(4): Fsum[39] pow(6.0024e-10, 4.31986e-26)  FAILED, KNOWN (2.03891e-26), expected Fsum[39] pow(6.0024e-10, -3.98099e-26)\n    test 1048 pow(1): Fsum[842] pow(-0.00494973, 2.53198e-19)\n    test 1049 pow(0): Fsum[1] pow(1.0, 0)\n    test 1050 ceil: True\n    test 1051 floor: True\n    test 1052 divmod: Fsum[850] (0.0, 0)\n    test 1053 residual: 0\n    test 1054 is_exact: True\n    test 1055 Fsum: -0.004949726479280443\n    test 1056 Fsum: -0.004949726479280443\n\n    test 1057 fsum: 9.862280823221828e-08\n    test 1058 sum86: -40.13714791943266  FAILED, KNOWN, expected 9.862280823221828e-08\n    test 1059 pow(4): Fsum[32] pow(9.4604e-29, -1.31929e-45)  FAILED, KNOWN (7.07513e-45), expected Fsum[32] pow(9.4604e-29, -5.45455e-45)\n    test 1060 pow(1): Fsum[842] pow(9.86228e-08, -5.42095e-24)\n    test 1061 pow(0): Fsum[1] pow(1.0, 0)\n    test 1062 ceil: True\n    test 1063 floor: True\n    test 1064 divmod: Fsum[848] (0.0, 0)\n    test 1065 residual: 0\n    test 1066 is_exact: True\n    test 1067 Fsum: 9.862280823221828e-08\n    test 1068 Fsum: 9.862280823221828e-08\n\n    test 1069 fsum: 1.746884968367393e-06\n    test 1070 sum87: -79.72637187120154  FAILED, KNOWN, expected 1.746884968367393e-06\n    test 1071 pow(4): Fsum[35] pow(9.31231e-24, 4.7526e-40)  FAILED, KNOWN (1.23253e-39), expected Fsum[35] pow(9.31231e-24, 2.38426e-40)\n    test 1072 pow(1): Fsum[842] pow(1.74688e-06, 6.89839e-23)\n    test 1073 pow(0): Fsum[1] pow(1.0, 0)\n    test 1074 ceil: True\n    test 1075 floor: True\n    test 1076 divmod: Fsum[848] (0.0, 0)\n    test 1077 residual: 0\n    test 1078 is_exact: True\n    test 1079 Fsum: 1.746884968367393e-06\n    test 1080 Fsum: 1.746884968367393e-06\n\n    test 1081 fsum: 1.716932512935431e-05\n    test 1082 sum88: 3.885337784451458e+84  FAILED, KNOWN, expected 1.716932512935431e-05\n    test 1083 pow(4): Fsum[29] pow(8.68986e-20, 2.79871e-36)  FAILED, KNOWN (3.203e-36), expected Fsum[29] pow(8.68986e-20, 6.00171e-36)\n    test 1084 pow(1): Fsum[842] pow(1.71693e-05, 1.04923e-21)\n    test 1085 pow(0): Fsum[1] pow(1.0, 0)\n    test 1086 ceil: True\n    test 1087 floor: True\n    test 1088 divmod: Fsum[847] (0.0, 0)\n    test 1089 residual: 0\n    test 1090 is_exact: True\n    test 1091 Fsum: 1.716932512935431e-05\n    test 1092 Fsum: 1.716932512935431e-05\n\n    test 1093 fsum: 1.3746860967291014e-14\n    test 1094 sum89: -3.885337784451458e+84  FAILED, KNOWN, expected 1.3746860967291014e-14\n    test 1095 pow(4): Fsum[15] pow(3.5712e-56, -1.58306e-72)  FAILED, KNOWN (2.90847e-73), expected Fsum[15] pow(3.5712e-56, -1.29221e-72)\n    test 1096 pow(1): Fsum[842] pow(1.37469e-14, -5.32098e-31)\n    test 1097 pow(0): Fsum[1] pow(1.0, 0)\n    test 1098 ceil: True\n    test 1099 floor: True\n    test 1100 divmod: Fsum[846] (0.0, 0)\n    test 1101 residual: 0\n    test 1102 is_exact: True\n    test 1103 Fsum: 1.3746860967291014e-14\n    test 1104 Fsum: 1.3746860967291014e-14\n\n    test 1105 fsum: 9.398950587440378e-07\n    test 1106 sum90: -3.885337784451458e+84  FAILED, KNOWN, expected 9.398950587440378e-07\n    test 1107 pow(4): Fsum[20] pow(7.804e-25, -4.40641e-41)  FAILED, KNOWN (2.63462e-42), expected Fsum[20] pow(7.804e-25, 4.51368e-41)\n    test 1108 pow(1): Fsum[842] pow(9.39895e-07, 4.04483e-23)\n    test 1109 pow(0): Fsum[1] pow(1.0, 0)\n    test 1110 ceil: True\n    test 1111 floor: True\n    test 1112 divmod: Fsum[846] (0.0, 0)\n    test 1113 residual: 0\n    test 1114 is_exact: True\n    test 1115 Fsum: 9.398950587440378e-07\n    test 1116 Fsum: 9.398950587440378e-07\n\n    test 1117 fsum: -3.845334870378444e-12\n    test 1118 sum91: 2.033622144050961  FAILED, KNOWN, expected -3.845334870378444e-12\n    test 1119 pow(4): Fsum[16] pow(2.18644e-46, 3.90924e-63)\n    test 1120 pow(1): Fsum[842] pow(-3.84533e-12, -1.71882e-29)\n    test 1121 pow(0): Fsum[1] pow(1.0, 0)\n    test 1122 ceil: True\n    test 1123 floor: True\n    test 1124 divmod: Fsum[847] (0.0, 0)\n    test 1125 residual: 0\n    test 1126 is_exact: True\n    test 1127 Fsum: -3.845334870378444e-12\n    test 1128 Fsum: -3.845334870378444e-12\n\n    test 1129 fsum: -0.014953425762466112\n    test 1130 sum92: 3.885337784451458e+84  FAILED, KNOWN, expected -0.014953425762466112\n    test 1131 pow(4): Fsum[45] pow(4.99992e-08, 2.79485e-24)\n    test 1132 pow(1): Fsum[842] pow(-0.0149534, 2.85809e-19)\n    test 1133 pow(0): Fsum[1] pow(1.0, 0)\n    test 1134 ceil: True\n    test 1135 floor: True\n    test 1136 divmod: Fsum[850] (0.0, 0)\n    test 1137 residual: 0\n    test 1138 is_exact: True\n    test 1139 Fsum: -0.014953425762466112\n    test 1140 Fsum: -0.014953425762466112\n\n    test 1141 fsum: -2.181482332993425e-05\n    test 1142 sum93: 3.885337784451458e+84  FAILED, KNOWN, expected -2.181482332993425e-05\n    test 1143 pow(4): Fsum[23] pow(2.26468e-19, 2.05067e-35)\n    test 1144 pow(1): Fsum[842] pow(-2.18148e-05, -4.93833e-22)\n    test 1145 pow(0): Fsum[1] pow(1.0, 0)\n    test 1146 ceil: True\n    test 1147 floor: True\n    test 1148 divmod: Fsum[847] (0.0, 0)\n    test 1149 residual: 0\n    test 1150 is_exact: True\n    test 1151 Fsum: -2.181482332993425e-05\n    test 1152 Fsum: -2.181482332993425e-05\n\n    test 1153 fsum: 0.1796640595568802\n    test 1154 sum94: -3.885337784451458e+84  FAILED, KNOWN, expected 0.1796640595568802\n    test 1155 pow(4): Fsum[41] pow(0.00104195, -1.68599e-21)  FAILED, KNOWN (7.14133e-21), expected Fsum[41] pow(0.00104195, 5.45535e-21)\n    test 1156 pow(1): Fsum[842] pow(0.179664, 9.89054e-18)\n    test 1157 pow(0): Fsum[1] pow(1.0, 0)\n    test 1158 ceil: True\n    test 1159 floor: True\n    test 1160 divmod: Fsum[849] (0.0, 0)\n    test 1161 residual: 0\n    test 1162 is_exact: True\n    test 1163 Fsum: 0.1796640595568802\n    test 1164 Fsum: 0.1796640595568802\n\n    test 1165 fsum: -0.26056206166280493\n    test 1166 sum95: 3.885337784451458e+84  FAILED, KNOWN, expected -0.26056206166280493\n    test 1167 pow(4): Fsum[55] pow(0.0046094, -3.86587e-19)  FAILED, KNOWN (7.48372e-20), expected Fsum[55] pow(0.0046094, -3.1175e-19)\n    test 1168 pow(1): Fsum[842] pow(-0.260562, -2.11672e-17)\n    test 1169 pow(0): Fsum[1] pow(1.0, 0)\n    test 1170 ceil: True\n    test 1171 floor: True\n    test 1172 divmod: Fsum[850] (0.0, 0)\n    test 1173 residual: 0\n    test 1174 is_exact: True\n    test 1175 Fsum: -0.26056206166280493\n    test 1176 Fsum: -0.26056206166280493\n\n    test 1177 fsum: -1.3288325397540682e-10\n    test 1178 sum96: 236.58053951823723  FAILED, KNOWN, expected -1.3288325397540682e-10\n    test 1179 pow(4): Fsum[18] pow(3.11804e-40, -1.2527e-56)\n    test 1180 pow(1): Fsum[842] pow(-1.32883e-10, 1.33468e-27)\n    test 1181 pow(0): Fsum[1] pow(1.0, 0)\n    test 1182 ceil: True\n    test 1183 floor: True\n    test 1184 divmod: Fsum[847] (0.0, 0)\n    test 1185 residual: 0\n    test 1186 is_exact: True\n    test 1187 Fsum: -1.3288325397540682e-10\n    test 1188 Fsum: -1.3288325397540682e-10\n\n    test 1189 fsum: -2.1153789389272494e-05\n    test 1190 sum97: 3.885337784451458e+84  FAILED, KNOWN, expected -2.1153789389272494e-05\n    test 1191 pow(4): Fsum[26] pow(2.00241e-19, -3.77639e-36)  FAILED, KNOWN (9.39805e-37), expected Fsum[26] pow(2.00241e-19, -2.83659e-36)\n    test 1192 pow(1): Fsum[842] pow(-2.11538e-05, 6.85903e-22)\n    test 1193 pow(0): Fsum[1] pow(1.0, 0)\n    test 1194 ceil: True\n    test 1195 floor: True\n    test 1196 divmod: Fsum[847] (0.0, 0)\n    test 1197 residual: 0\n    test 1198 is_exact: True\n    test 1199 Fsum: -2.1153789389272494e-05\n    test 1200 Fsum: -2.1153789389272494e-05\n\n    test 1201 fsum: -7.135903088885889e-05\n    test 1202 sum98: -8.36048418631017  FAILED, KNOWN, expected -7.135903088885889e-05\n    test 1203 pow(4): Fsum[33] pow(2.59296e-17, -8.00357e-34)  FAILED, KNOWN (1.13061e-33), expected Fsum[33] pow(2.59296e-17, 3.30251e-34)\n    test 1204 pow(1): Fsum[842] pow(-7.1359e-05, -5.24526e-21)\n    test 1205 pow(0): Fsum[1] pow(1.0, 0)\n    test 1206 ceil: True\n    test 1207 floor: True\n    test 1208 divmod: Fsum[850] (0.0, 0)\n    test 1209 residual: 0\n    test 1210 is_exact: True\n    test 1211 Fsum: -7.135903088885889e-05\n    test 1212 Fsum: -7.135903088885889e-05\n\n    test 1213 fsum: -0.00039188050506964707\n    test 1214 sum99: -3.885337784451458e+84  FAILED, KNOWN, expected -0.00039188050506964707\n    test 1215 pow(4): Fsum[47] pow(2.35838e-14, -7.32475e-31)  FAILED, KNOWN (9.09529e-31), expected Fsum[47] pow(2.35838e-14, 1.77054e-31)\n    test 1216 pow(1): Fsum[842] pow(-0.000391881, -1.76219e-20)\n    test 1217 pow(0): Fsum[1] pow(1.0, 0)\n    test 1218 ceil: True\n    test 1219 floor: True\n    test 1220 divmod: Fsum[850] (0.0, 0)\n    test 1221 residual: 0\n    test 1222 is_exact: True\n    test 1223 Fsum: -0.00039188050506964707\n    test 1224 Fsum: -0.00039188050506964707\n\n    test 1225 fsum: -2.659736477135389e-11\n    test 1226 sum100: -3.885337784451458e+84  FAILED, KNOWN, expected -2.659736477135389e-11\n    test 1227 pow(4): Fsum[11] pow(5.00443e-43, 3.66427e-59)\n    test 1228 pow(1): Fsum[842] pow(-2.65974e-11, -4.86868e-28)\n    test 1229 pow(0): Fsum[1] pow(1.0, 0)\n    test 1230 ceil: True\n    test 1231 floor: True\n    test 1232 divmod: Fsum[846] (0.0, 0)\n    test 1233 residual: 0\n    test 1234 is_exact: True\n    test 1235 Fsum: -2.659736477135389e-11\n    test 1236 Fsum: -2.659736477135389e-11\n    test 1237 fmul: 0.00000000\n\n    test 1238 len1: 4\n    test 1239 FSum+: 4.0\n    test 1240 FSum-: 2.0\n    test 1241 FSum-: 0.0\n    test 1242 FSum*: 4.0\n    test 1243 copy(<class 'type'>): (<class 'pygeodesy.fsums.Fsum'>, True)\n    test 1244 ._fint2: (4, 0)\n    test 1245 ._fprs: 4.0\n    test 1246 ._fprs2: (4.0, 0)\n    test 1247 ._n: 5\n    test 1248 ._ps: [4.0]\n    test 1249 Fsum.copy(): (<class 'pygeodesy.fsums.Fsum'>, True)\n    test 1250 ._fint2: (4, 0)\n    test 1251 ._fprs: 4.0\n    test 1252 ._fprs2: (4.0, 0)\n    test 1253 ._n: 5\n    test 1254 ._ps: [4.0]\n    test 1255 len2: 8\n    test 1256 FSum+: 8.0\n    test 1257 FSum-: 4.0\n    test 1258 FSum-: 0.0\n    test 1259 FSum*: 8.0\n    test 1260 copy(<class 'type'>): (<class 'pygeodesy.fsums.Fsum'>, True)\n    test 1261 ._fint2: (8, 0)\n    test 1262 ._fprs: 8.0\n    test 1263 ._fprs2: (8.0, 0)\n    test 1264 ._n: 9\n    test 1265 ._ps: [8.0]\n    test 1266 Fsum.copy(): (<class 'pygeodesy.fsums.Fsum'>, True)\n    test 1267 ._fint2: (8, 0)\n    test 1268 ._fprs: 8.0\n    test 1269 ._fprs2: (8.0, 0)\n    test 1270 ._n: 9\n    test 1271 ._ps: [8.0]\n    test 1272 len3: 16\n    test 1273 FSum+: 16.0\n    test 1274 FSum-: 8.0\n    test 1275 FSum-: 0.0\n    test 1276 FSum*: 16.0\n    test 1277 copy(<class 'type'>): (<class 'pygeodesy.fsums.Fsum'>, True)\n    test 1278 ._fint2: (16, 0)\n    test 1279 ._fprs: 16.0\n    test 1280 ._fprs2: (16.0, 0)\n    test 1281 ._n: 17\n    test 1282 ._ps: [16.0]\n    test 1283 Fsum.copy(): (<class 'pygeodesy.fsums.Fsum'>, True)\n    test 1284 ._fint2: (16, 0)\n    test 1285 ._fprs: 16.0\n    test 1286 ._fprs2: (16.0, 0)\n    test 1287 ._n: 17\n    test 1288 ._ps: [16.0]\n    test 1289 len4: 32\n    test 1290 FSum+: 32.0\n    test 1291 FSum-: 16.0\n    test 1292 FSum-: 0.0\n    test 1293 FSum*: 32.0\n    test 1294 copy(<class 'type'>): (<class 'pygeodesy.fsums.Fsum'>, True)\n    test 1295 ._fint2: (32, 0)\n    test 1296 ._fprs: 32.0\n    test 1297 ._fprs2: (32.0, 0)\n    test 1298 ._n: 33\n    test 1299 ._ps: [32.0]\n    test 1300 Fsum.copy(): (<class 'pygeodesy.fsums.Fsum'>, True)\n    test 1301 ._fint2: (32, 0)\n    test 1302 ._fprs: 32.0\n    test 1303 ._fprs2: (32.0, 0)\n    test 1304 ._n: 33\n    test 1305 ._ps: [32.0]\n    test 1306 len5: 64\n    test 1307 FSum+: 64.0\n    test 1308 FSum-: 32.0\n    test 1309 FSum-: 0.0\n    test 1310 FSum*: 64.0\n    test 1311 copy(<class 'type'>): (<class 'pygeodesy.fsums.Fsum'>, True)\n    test 1312 ._fint2: (64, 0)\n    test 1313 ._fprs: 64.0\n    test 1314 ._fprs2: (64.0, 0)\n    test 1315 ._n: 65\n    test 1316 ._ps: [64.0]\n    test 1317 Fsum.copy(): (<class 'pygeodesy.fsums.Fsum'>, True)\n    test 1318 ._fint2: (64, 0)\n    test 1319 ._fprs: 64.0\n    test 1320 ._fprs2: (64.0, 0)\n    test 1321 ._n: 65\n    test 1322 ._ps: [64.0]\n    test 1323 len6: 128\n    test 1324 FSum+: 128.0\n    test 1325 FSum-: 64.0\n    test 1326 FSum-: 0.0\n    test 1327 FSum*: 128.0\n    test 1328 copy(<class 'type'>): (<class 'pygeodesy.fsums.Fsum'>, True)\n    test 1329 ._fint2: (128, 0)\n    test 1330 ._fprs: 128.0\n    test 1331 ._fprs2: (128.0, 0)\n    test 1332 ._n: 129\n    test 1333 ._ps: [128.0]\n    test 1334 Fsum.copy(): (<class 'pygeodesy.fsums.Fsum'>, True)\n    test 1335 ._fint2: (128, 0)\n    test 1336 ._fprs: 128.0\n    test 1337 ._fprs2: (128.0, 0)\n    test 1338 ._n: 129\n    test 1339 ._ps: [128.0]\n    test 1340 len7: 256\n    test 1341 FSum+: 256.0\n    test 1342 FSum-: 128.0\n    test 1343 FSum-: 0.0\n    test 1344 FSum*: 256.0\n    test 1345 copy(<class 'type'>): (<class 'pygeodesy.fsums.Fsum'>, True)\n    test 1346 ._fint2: (256, 0)\n    test 1347 ._fprs: 256.0\n    test 1348 ._fprs2: (256.0, 0)\n    test 1349 ._n: 257\n    test 1350 ._ps: [256.0]\n    test 1351 Fsum.copy(): (<class 'pygeodesy.fsums.Fsum'>, True)\n    test 1352 ._fint2: (256, 0)\n    test 1353 ._fprs: 256.0\n    test 1354 ._fprs2: (256.0, 0)\n    test 1355 ._n: 257\n    test 1356 ._ps: [256.0]\n    test 1357 len8: 512\n    test 1358 FSum+: 512.0\n    test 1359 FSum-: 256.0\n    test 1360 FSum-: 0.0\n    test 1361 FSum*: 512.0\n    test 1362 copy(<class 'type'>): (<class 'pygeodesy.fsums.Fsum'>, True)\n    test 1363 ._fint2: (512, 0)\n    test 1364 ._fprs: 512.0\n    test 1365 ._fprs2: (512.0, 0)\n    test 1366 ._n: 513\n    test 1367 ._ps: [512.0]\n    test 1368 Fsum.copy(): (<class 'pygeodesy.fsums.Fsum'>, True)\n    test 1369 ._fint2: (512, 0)\n    test 1370 ._fprs: 512.0\n    test 1371 ._fprs2: (512.0, 0)\n    test 1372 ._n: 513\n    test 1373 ._ps: [512.0]\n    test 1374 len: 513\n    test 1375 partials: (512.0,)\n\n    test 1376 FSum0: 0.0\n    test 1377 FSum0: 0.0\n    test 1378 FSum0: 0.0\n    test 1379 FSum0: 0.0\n    test 1380 FSum0: 0.0\n    test 1381 sizeof: 413\n    test 1382 FSum0: 0.0\n    test 1383 Fsum#: 514\n    test 1384 Fsum#: 1\n    test 1385 FSum.: Fsum[514] (0.0, 0)\n    test 1386 FsumI: 0.0\n    test 1387 FsumR: 0.0\n    test 1388 radd: 514.0\n    test 1389 rdiv: 3.91e-03\n    test 1390 rmul: 1024.0\n    test 1391 rpow: 1.0\n    test 1392 rsub: -510.0\n    test 1393 _2sum: OverflowError('_2sum(1.0e+308, inf): not finite (inf)')\n    test 1394 F(\"nan\"): TypeError('0.0 + nan: invalid')\n    test 1395 F(None): TypeError('0.0 + None: invalid')\n\n    test 1396 ints: 1\n    test 1397 ints: 1\n    test 1398 fsum : -3.58905099e+19  FAILED, KNOWN, expected 1.0\n    test 1399 fsum_: -3.58905099e+19  FAILED, KNOWN, expected 1.0\n    test 1400 Fsum : -3.58905099e+19  FAILED, KNOWN, expected 1.0\n    test 1401 sum  : -3.68934881e+19  FAILED, KNOWN, expected 1.0\n    test 1402 F * 2: 4.0000\n    test 1403 F / 2: 2.0000\n    test 1404 F / F: True\n    test 1405 F / F: 1.0\n    test 1406 F / F: 2.0\n    test 1407 abs  : Fsum[4] __abs__(2.0, 0)  FAILED, KNOWN, expected Fsum[4] (2.0, 0)\n    test 1408 int  : 2\n    test 1409 eq F: True\n    test 1410 ge F: True\n    test 1411 gt F: False\n    test 1412 le F: True\n    test 1413 lt F: False\n    test 1414 ne F: False\n    test 1415 if F: True\n    test 1416 gt 0: True\n    test 1417 lt 0: False\n    test 1418 eq 0: False\n    test 1419 lt 0: True\n    test 1420 gt 0: True\n    test 1421 gt 0: False\n    test 1422 signOf: 1\n    test 1423 signOf: -1\n    test 1424 ceil : 3\n    test 1425 floor: 2\n\n    test 1426 divmod : (2, <Fsum[2] __divmod__(0.0, 0) at 0x105f841d0>)\n    test 1427 divmod : (2, <Fsum[2] __divmod__(0.0, 0) at 0x105f84510>)\n    test 1428 rdivmod : (0, <Fsum[1] __rdivmod__(2, 0) at 0x105f84510>)\n    test 1429 divmod : (-2, <Fsum[2] __divmod__(1.0, 0) at 0x105f844d0>)\n    test 1430 imod: Fsum[2] __imod__(0.0, 0)\n    test 1431 mod : Fsum[2] __mod__(0.0, 0)\n    test 1432 rmod: Fsum[1] __rmod__(2, 0)\n    test 1433 neg : Fsum[1] __neg__(-2, 0)\n    test 1434 pos : Fsum[4] (2.0, 0)\n    test 1435 is_int: True\n    test 1436 float: 9e-102\n    test 1437 is_int: False\n    test 1438 round1: 0.0\n    test 1439 fset_: Fsum[4] (9.0e-102, 5.9483e-118)\n\n    test 1440 F //: Fsum[1] __floordiv__(-1, 0)\n    test 1441 // F: Fsum[1] __rfloordiv__(-2, 0)\n    test 1442 F //=: Fsum[1] m(-2, 0)\n    test 1443 F / 0: ZeroDivisionError('Fsum[2] __truediv__(9.0e-102, 5.9483e-118) / 0: float division by zero')\n    test 1444 pow(F, +): Fsum[1] __pow__(6.36662e-213, 0)\n    test 1445 pow(F, -): Fsum[1] __pow__(1.11111e+101, 0)\n    test 1446 pow(-F, F): ValueError('-2 ** 9e-102: complex (1+2.8274333882308138e-101j) from 2-arg pow(-2, 9.0e-102)')\n    test 1447 pow(F, F): Fsum[1] __pow__(1.0, 0)\n    test 1448 pow(F, f, i): TypeError('Fsum[2] __pow__(9.0e-102, 5.9483e-118) ** 2.1: mod (2), pow() 3rd argument not allowed unless all arguments are integers')\n    test 1449 pow(F, F, i): TypeError('-2 ** Fsum[1] (2.1, 0): mod (2), pow() 3rd argument not allowed unless all arguments are integers')\n    test 1450 pow(F, i, None): Fsum[1] __pow__(4, 0)\n    test 1451 Z**-2: ZeroDivisionError('0.0 ** -2: 0.0 cannot be raised to a negative power')\n    test 1452 pow(0): 1.000\n    test 1453 pow(1): -3.000\n    test 1454 pow(2): 9.000\n    test 1455 pow(21): -10460353203.000\n    test 1456 pow(-5): -0.004\n    test 1457 **= 2: 9.000\n    test 1458 F0**0: Fsum[1] __pow__(1, 0)\n    test 1459 F0**0.: Fsum[1] __pow__(1.0, 0)\n    test 1460 0**F0: Fsum[1] __rpow__(1.0, 0)\n    test 1461 0.**F0: Fsum[1] __rpow__(1.0, 0)\n    test 1462 F0**0: Fsum[1] pow(1, 0)\n    test 1463 F0**2: Fsum[1] pow(0.0, 0)\n    test 1464 F0**0.: Fsum[1] pow(1.0, 0)\n    test 1465 F0**3.: Fsum[1] pow(0.0, 0)\n    test 1466 F0**0.: Fsum[1] pow(1, 0)\n    test 1467 2**F0: Fsum[1] __rpow__(1.0, 0)\n    test 1468 2.**F0: Fsum[1] __rpow__(1.0, 0)\n    test 1469 F2**0: Fsum[1] __pow__(1, 0)\n    test 1470 F2.**0: Fsum[1] __pow__(1, 0)\n    test 1471 F2**F2: Fsum[1] __pow__(4, 0)\n    test 1472 F2**F2: Fsum[1] __rpow__(4, 0)\n    test 1473 F**2: 3125.000\n    test 1474 F**-1: 0.200\n    test 1475 F**-2: 0.040\n    test 1476 F**-2.5: 0.018\n    test 1477 F** 2.5: 55.902\n    test 1478 pow(2): 25.000\n    test 1479 pow(2.5): 55.902\n    test 1480 pow(F): 3125.000\n    test 1481 3pow(2, None): Fsum[1] pow(25, 0)\n    test 1482 3pow(2.5, None): Fsum[1] pow(55.902, 0)\n    test 1483 3pow(2, 20): Fsum[1] pow(5, 0)\n\n    test 1484 fsum(): 5.0\n    test 1485 fsum(): True\n    test 1486 fsum2(): (5.0, 0)\n    test 1487 fsum2(): True\n    test 1488 fsum2(): Fsum2Tuple(fsum=5.0, residual=0)\n    test 1489 Fsum2Tuple: ('fsum', 5.0, <class 'pygeodesy.unitsBase.Float'>)\n    test 1490 Fsum2Tuple: ('residual', 0, <class 'pygeodesy.unitsBase.Int'>)\n    test 1491 fmul(x): 25.0\n    test 1492 fmul(F): 62.5\n    test 1493 fadd(F): 65.0\n    test 1494 fsub(F): 62.5\n    test 1495 Fsum(F): 125.0\n\n    test 1496 ratio: (-27021597764141911, 9007199254740992)\n    test 1497 ratio: Fsum[1] (-3, 0)  FAILED, KNOWN, expected Fsum[4] (-3, 8.80732e-17)\n    test 1498 int_float: -3.000\n    test 1499 fint: Fsum[1] fint(-2, 0)\n    test 1500 fint2: (-2, -1)\n    test 1501 f2mul_: Fsum[15] f2mul_(12.0, -3.52293e-16)  FAILED, KNOWN, expected (12.0, ...\n    test 1502 f2mul_: Fsum[1] f2mul_(-inf, 0)  FAILED, KNOWN, expected NINF\n    test 1503 f2mul_: Fsum[1] f2mul_(nan, 0)  FAILED, KNOWN, expected NAN\n    test 1504 += NAN: Fsum[5] (nan, 0.0)  FAILED, KNOWN, expected nan\n    test 1505 -= NAN: Fsum[5] (nan, 0.0)  FAILED, KNOWN, expected nan\n    test 1506 pow3: Fsum[1] __pow__(3, 0)\n\n    test 1507 is_math_fsum: True\n\n    test 1508 RESIDUAL: 0.0\n    test 1509 RESIDUAL: 0.0\n    test 1510 RESIDUAL: 1e-32\n    test 1511 RESIDUAL: 9.0\n    test 1512 RESIDUAL: sorted\n\n    test 1513 ResidualError: 1 / Fsum[2] sorted(1.0e+17, 1.0): non-zero residual (1.0), ratio (1.0e-17) exceeds RESIDUAL (-1e-18) threshold\n\n    test 1514 recursive: 8.0\n    test 1515 recursive: 16.0\n\n    test 1516 +=F2T: 17.0\n    test 1517 -=F2T: 16.0\n    test 1518 *=F2T: 16.000000000000004\n    test 1519 /=F2T: 16.0\n    test 1520 **F2T: 16.0\n    test 1521 %=F2T: 16.0\n\n    test 1522 abs(T): Fsum[2] __abs__(1.0, 0)\n    test 1523 bool(T): True\n    test 1524 float(T): 1.0000000000000002\n    test 1525 T.Fsum_: Fsum[2] (2.0, 0)\n    test 1526 int(T): 1\n    test 1527 -T: Fsum[1] __neg__(-1, 0)\n    test 1528 +T: Fsum[2] (1.0, 0)\n    test 1529 as_i_: (4503599627370497, 4503599627370496)\n    test 1530 is_x?: True\n    test 1531 is_i?: False\n\n    test 1532 F==T: False\n    test 1533 F>=T: True\n    test 1534 F> T: True\n    test 1535 F<=T: False\n    test 1536 F< T: False\n    test 1537 F!=T: True\n\n    test 1538 T._fint2: (1, 2.220446049250313e-16)\n    test 1539 T._fprs2: (1.0, 0)\n    test 1540 T._n: 2\n    test 1541 T._ps: [1.0000000000000002]\n    test 1542 T._ps_neg: [-1.0000000000000002]\n    test 1543 T.signOf: 1\n\n    test 1544 f2product: (False, None)\n    test 1545 nonfinite*: (True, None)\n    test 1546 Nones: (None, None)\n\n    test 1547 fma_: Fsum[1] (69.0, 0)\n\n    187 of 1547 testFsums.py tests (12.1%) FAILED, ALL KNOWN (pygeodesy 26.3.26 Python 3.11.9 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 1.24.2 scipy 1.10.1 Math 2 macOS 26.3.1 isLazy 0 -W  default) 2.243 sec\nrunning /usr/local/bin/p....n3.11 -W default ~/PyGeodesy/test/testGars.py\n\n    testing testGars.py 23.03.27 (module pygeodesy.gars 25.05.07)\n    test 1 Garef: 381NH45\n    test 2 Garef: 381NH45\n    test 3 Garef: Garef('381NH45')\n    test 4 Garef: '381NH45'\n    test 5 Garef: '381NH45'  FAILED, KNOWN, expected Garef('381NH45')\n    test 6 Garef.precision: 2\n    test 7 copy(<class 'type'>): (<class 'pygeodesy.gars.Garef'>, True)\n    test 8 Garef.copy(): (<class 'pygeodesy.gars.Garef'>, True)\n    test 9 Garef.latlon: 57.64911, 10.40744\n    test 10 Garef.toLatLon: LatLon(57°38′56.8″N, 010°24′26.78″E)\n    test 11 codec3: 381NH45\n    test 12 decode3: 57.625, 10.375, 2.0\n    test 13 encode: 381NH45\n    test 14 Garef(LatLon): 381NH45\n    test 15 copy(<class 'type'>): (<class 'pygeodesy.gars.Garef'>, True)\n    test 16 Garef.copy(): (<class 'pygeodesy.gars.Garef'>, True)\n    test 17 precision: -1  FAILED, KNOWN, expected 0\n    test 18 resolution: 30′\n    test 19 precision: 0\n    test 20 resolution: 30′\n    test 21 precision: 1\n    test 22 resolution: 15′\n    test 23 precision: 2\n    test 24 resolution: 5′\n    test 25 precision: 3  FAILED, KNOWN, expected 2\n    test 26 resolution: 5′\n\n    3 of 26 testGars.py tests (11.5%) FAILED, ALL KNOWN (pygeodesy 26.3.26 Python 3.11.9 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 1.24.2 scipy 1.10.1 Math 2 macOS 26.3.1 isLazy 0 -W  default) 823.021 us\nrunning /usr/local/bin/p....n3.11 -W default ~/PyGeodesy/test/testGeodesici.py\n\n    testing testGeodesici.py 25.05.09 (module pygeodesy.geodesici 26.02.04)\n\n    testGeodesicExact(pygeodesy.geodesici, 26.02.04)\n    test 1 Intersector: name='', geodesic=GeodesicExact(name='', caps=0, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), C4order=30)\n\n    test 2 Closest.1.sA: 4.2253e+06\n    test 3 Closest.1.sB: 2.70933e+06\n    test 4 Closest.1.c: 0\n    test 5 Closest.1.sX0: 6.93463e+06\n\n    test 6 Closest5.1.A: {a1X: 38.075573, azi1: 45.0, aziX: 51.790249, lat1: 0.0, latX: 25.92918, lon1: 0.0, lonX: 28.89426, m12: 3921213.171755, M12: 0.787198, M21: 0.787384, s1X: 4225301.108897}\n    test 7 Closest5.1.B: {a1X: 24.392077, azi1: 135.0, aziX: 146.182975, lat1: 45.0, latX: 25.92918, lon1: 10.0, lonX: 28.89426, m12: 2628412.372503, M12: 0.911005, M21: 0.910881, s1X: 2709328.885611}\n    test 8 Closest5.1.sAB: 7.94571e-10\n    test 9 Closest5.1.aAB: 7.15718e-15\n    test 10 Closest5.1.c: 0\n\n    test 11 Closest.2.sA: 6.05805e+06\n    test 12 Closest.2.sB: -3.31125e+06\n    test 13 Closest.2.c: 0\n    test 14 Closest.2.sX0: 9.3693e+06\n\n    test 15 Closest5.2.A: {a1X: 54.562637, azi1: -147.7, aziX: -159.869978, lat1: 50.0, latX: 0.0, lon1: -4.0, lonX: -29.745492, m12: 5184118.430287, M12: 0.58097, M21: 0.579813, s1X: 6058048.653081}\n    test 16 Closest5.2.B: {a1X: -29.845558, azi1: 90.0, aziX: 90.0, lat1: 0.0, latX: -0.0, lon1: 0.0, lonX: -29.745492, m12: -3163525.514556, M12: 0.86737, M21: 0.86737, s1X: -3311252.995823}\n    test 17 Closest5.2.sAB: 3.95486e-10\n    test 18 Closest5.2.aAB: 3.56467e-15\n    test 19 Closest5.2.c: 0\n\n    test 20 All[0].sA: -494582\n    test 21 All[0].sB: 1.40522e+07\n    test 22 All[0].c: 0\n    test 23 All[0].sX0: 1.45468e+07\n    test 24 All[0].iteration: 4\n\n    test 25 All[1].sA: 1.95291e+07\n    test 26 All[1].sB: -5.93234e+06\n    test 27 All[1].c: 0\n    test 28 All[1].sX0: 2.54615e+07\n    test 29 All[1].iteration: 4\n\n    test 30 All[2].sA: -494582\n    test 31 All[2].sB: -2.59556e+07\n    test 32 All[2].c: 0\n    test 33 All[2].sX0: 2.64502e+07\n    test 34 All[2].iteration: 4\n\n    test 35 All[3].sA: -2.05181e+07\n    test 36 All[3].sB: -5.97086e+06\n    test 37 All[3].c: 0\n    test 38 All[3].sX0: 2.64889e+07\n    test 39 All[3].iteration: 4\n\n    test 40 All5[0].A: {a1X: -4.448619, azi1: -147.7, aziX: -144.55245, lat1: 50.0, latX: 53.692598, lon1: -4.0, lonX: 0.0, m12: -494087.771694, M12: 0.996999, M21: 0.997, s1X: -494582.492241}\n    test 41 All5[0].B: {a1X: 126.399265, azi1: 0.0, aziX: 180.0, lat1: 0.0, latX: 53.692598, lon1: 180.0, lonX: 0.0, m12: 5161737.753947, M12: -0.593409, M21: -0.586165, s1X: 14052229.965229}\n    test 42 All5[0].sAB: 3.54078e-09\n    test 43 All5[0].aAB: 3.18449e-14\n    test 44 All5[0].c: 0\n    test 45 All5[0].iteration: 4\n\n    test 46 All5[1].A: {a1X: 175.764866, azi1: -147.7, aziX: -35.280487, lat1: 50.0, latX: -53.518675, lon1: -4.0, lonX: 180.0, m12: 488198.978244, M12: -1.001203, M21: -0.992673, s1X: 19529110.042937}\n    test 47 All5[1].B: {a1X: -53.426639, azi1: 0.0, aziX: 0.0, lat1: 0.0, latX: -53.518675, lon1: 180.0, lonX: 180.0, m12: -5110370.613686, M12: 0.595852, M21: 0.597076, s1X: -5932344.259165}\n    test 48 All5[1].sAB: 4.00748e-09\n    test 49 All5[1].aAB: 3.60427e-14\n    test 50 All5[1].c: 0\n    test 51 All5[1].iteration: 4\n\n    test 52 All5[2].A: {a1X: -4.448619, azi1: -147.7, aziX: -144.55245, lat1: 50.0, latX: 53.692598, lon1: -4.0, lonX: -0.0, m12: -494087.771694, M12: 0.996999, M21: 0.997, s1X: -494582.492241}\n    test 53 All5[2].B: {a1X: -233.600735, azi1: 0.0, aziX: 180.0, lat1: 0.0, latX: 53.692598, lon1: 180.0, lonX: 0.0, m12: 5082071.927222, M12: -0.593409, M21: -0.603127, s1X: -25955632.952022}\n    test 54 All5[2].sAB: 1.78008e-09\n    test 55 All5[2].aAB: 1.60097e-14\n    test 56 All5[2].c: 0\n    test 57 All5[2].iteration: 4\n\n    test 58 All5[3].A: {a1X: -184.660358, azi1: -147.7, aziX: -35.614985, lat1: 50.0, latX: -53.864737, lon1: -4.0, lonX: -180.0, m12: 499994.868419, M12: -0.992833, M21: -1.001337, s1X: -20518081.166643}\n    test 59 All5[3].B: {a1X: -53.773048, azi1: 0.0, aziX: 0.0, lat1: 0.0, latX: -53.864737, lon1: 180.0, lonX: 180.0, m12: -5133274.754826, M12: 0.590985, M21: 0.592236, s1X: -5970860.779079}\n    test 60 All5[3].sAB: 1.86981e-09\n    test 61 All5[3].aAB: 1.68165e-14\n    test 62 All5[3].c: 0\n    test 63 All5[3].iteration: 4\n\n    test 64 Middle.sA: 782555\n    test 65 Middle.sB: 5.53684e+06\n    test 66 Middle.c: 0\n    test 67 Middle.sX0: 0\n\n    test 68 Middle5.A: {a12: 14.106434, a1M: 7.053396, azi1: 44.75191, azi2: 45.629037, aziM: 44.969535, lat1: 0.0, lat2: 10.0, latM: 5.019509, lon1: 0.0, lon2: 10.0, lonM: 4.961883, m12: 780579.492953, M12: 0.992432, M21: 0.992432, s12: 1565109.099218, s1M: 782554.549609}\n    test 69 Middle5.B: {a12: 99.810444, a1M: 49.869061, azi1: 180.0, azi2: 180.0, aziM: 180.0, lat1: 50.0, lat2: -50.0, latM: 0.036282, lon1: -4.0, lon2: -4.0, lonM: -4.0, m12: 4864571.105922, M12: 0.645508, M21: 0.644537, s12: 11073670.322999, s1M: 5536835.161499}\n    test 70 Middle5.sMM: 1.13857e+06\n    test 71 Middle5.aMM: 10.2623\n    test 72 Middle5.c: 0\n\n    test 73 Segment.sA: -631414\n    test 74 Segment.sB: 5.98889e+06\n    test 75 Segment.c: 0\n    test 76 Segment.sX0: 1.86602e+06\n    test 77 Segment.kA: -1\n    test 78 Segment.kB: 0\n    test 79 Segment.k: -3\n\n    test 80 Segment5.A: {a1X: -5.691141, azi1: 44.75191, azi2: 45.629037, aziX: 44.893464, k2: -1, lat1: 0.0, lat2: 10.0, latX: -4.051871, lon1: 0.0, lon2: 10.0, lonX: -4.0, m12: -630376.505305, M12: 0.995071, M21: 0.995071, s1X: -631414.26877}\n    test 81 Segment5.B: {a1X: 53.943553, azi1: 180.0, azi2: 180.0, aziX: 180.0, k2: 0, lat1: 50.0, lat2: -50.0, latX: -4.051871, lon1: -4.0, lon2: -4.0, lonX: -4.0, m12: 5143394.782542, M12: 0.589657, M21: 0.588535, s1X: 5988887.278435}\n    test 82 Segment5.sAB: 1.36757e-09\n    test 83 Segment5.aAB: 1.23262e-14\n    test 84 Segment5.c: 0\n\n    test 85 intersect7s[0].A: 04.051871°S, 004.0°W\n    test 86 intersect7s[0].B: 04.051871°S, 004.0°W\n    test 87 intersect7s[0].sAB: 1.4124e-09\n    test 88 intersect7s[0].aAB: 1.27222e-14\n    test 89 intersect7s[0].c: 0\n    test 90 intersect7s[0].kA: 0\n    test 91 intersect7s[0].kB: 0\n    test 92 intersect7s[0].iteration: None\n\n    test 93 intersect7s[1].A: 03.623464°N, 176.0°E\n    test 94 intersect7s[1].B: 03.623464°N, 176.0°E\n    test 95 intersect7s[1].sAB: 1.67723e-09\n    test 96 intersect7s[1].aAB: 1.51076e-14\n    test 97 intersect7s[1].c: 0\n    test 98 intersect7s[1].kA: 0\n    test 99 intersect7s[1].kB: 0\n    test 100 intersect7s[1].iteration: None\n\n    test 101 intersect7s[2].A: 04.051871°S, 004.0°W\n    test 102 intersect7s[2].B: 04.051871°S, 004.0°W\n    test 103 intersect7s[2].sAB: 3.53101e-10\n    test 104 intersect7s[2].aAB: 3.18055e-15\n    test 105 intersect7s[2].c: 0\n    test 106 intersect7s[2].kA: 0\n    test 107 intersect7s[2].kB: 0\n    test 108 intersect7s[2].iteration: None\n\n    test 109 intersect7s[3].A: 04.4796°N, 176.0°E\n    test 110 intersect7s[3].B: 04.4796°N, 176.0°E\n    test 111 intersect7s[3].sAB: 3.19839e-09\n    test 112 intersect7s[3].aAB: 2.88277e-14\n    test 113 intersect7s[3].c: 0\n    test 114 intersect7s[3].kA: 0\n    test 115 intersect7s[3].kB: 0\n    test 116 intersect7s[3].iteration: None\n\n    test 117 Sphere.Closest.sA: 6.07719e+06\n    test 118 Sphere.Closest.sB: -3.31802e+06\n    test 119 Sphere.Closest.c: 0\n    test 120 Sphere.Closest.sX0: 9.39521e+06\n\n    test 121 Sphere.Closest5.A: {a1X: 54.653489, azi1: -147.7, aziX: -159.911264, lat1: 50.0, latX: -0.0, lon1: -4.0, lonX: -29.839663, m12: 5196622.322619, M12: 0.57852, M21: 0.57852, s1X: 6077190.710199}\n    test 122 Sphere.Closest5.B: {a1X: -29.839663, azi1: 90.0, aziX: 90.0, lat1: 0.0, latX: -0.0, lon1: 0.0, lonX: -29.839663, m12: -3170047.454389, M12: 0.867421, M21: 0.867421, s1X: -3318019.115902}\n    test 123 Sphere.Closest5.sAB: 2.06452e-09\n    test 124 Sphere.Closest5.aAB: 1.85667e-14\n    test 125 Sphere.Closest5.c: 0\n\n    test 126 _Xdict2: 124\n\n    testGeodesic(pygeodesy.geodesici, 26.02.04)\n    test 127 Intersector: name='', geodesic=<pygeodesy.geodesicw._gWrapped.Geodesic.<locals>.Geodesic object at 0x105b876d0>\n\n    test 128 Closest.1.sA: 4.2253e+06\n    test 129 Closest.1.sB: 2.70933e+06\n    test 130 Closest.1.c: 0\n    test 131 Closest.1.sX0: 6.93463e+06\n\n    test 132 Closest5.1.A: {a1X: 38.075573, azi1: 45.0, aziX: 51.790249, lat1: 0.0, latX: 25.92918, lon1: 0.0, lonX: 28.89426, s1X: 4225301.108897}  FAILED, KNOWN, expected {a1X: 38.075573, azi1: 45.0, aziX: 51.790249, lat1: 0.0, latX: 25.92918, lon1: 0.0, lonX: 28.89426, m12: 3921213.171755, M12: 0.787198, M21: 0.787384, s1X: 4225301.108897}\n    test 133 Closest5.1.B: {a1X: 24.392077, azi1: 135.0, aziX: 146.182975, lat1: 45.0, latX: 25.92918, lon1: 10.0, lonX: 28.89426, s1X: 2709328.885611}  FAILED, KNOWN, expected {a1X: 24.392077, azi1: 135.0, aziX: 146.182975, lat1: 45.0, latX: 25.92918, lon1: 10.0, lonX: 28.89426, m12: 2628412.372503, M12: 0.911005, M21: 0.910881, s1X: 2709328.885611}\n    test 134 Closest5.1.sAB: 7.11805e-10  FAILED, KNOWN (8.27663e-11), expected 7.94571e-10\n    test 135 Closest5.1.aAB: 6.41166e-15  FAILED, KNOWN (7.45526e-16), expected 7.15718e-15\n    test 136 Closest5.1.c: 0\n\n    test 137 Closest.2.sA: 6.05805e+06\n    test 138 Closest.2.sB: -3.31125e+06\n    test 139 Closest.2.c: 0\n    test 140 Closest.2.sX0: 9.3693e+06\n\n    test 141 Closest5.2.A: {a1X: 54.562637, azi1: -147.7, aziX: -159.869978, lat1: 50.0, latX: -0.0, lon1: -4.0, lonX: -29.745492, s1X: 6058048.653081}  FAILED, KNOWN, expected {a1X: 54.562637, azi1: -147.7, aziX: -159.869978, lat1: 50.0, latX: 0.0, lon1: -4.0, lonX: -29.745492, m12: 5184118.430287, M12: 0.58097, M21: 0.579813, s1X: 6058048.653081}\n    test 142 Closest5.2.B: {a1X: -29.845558, azi1: 90.0, aziX: 90.0, lat1: 0.0, latX: -0.0, lon1: 0.0, lonX: -29.745492, s1X: -3311252.995823}  FAILED, KNOWN, expected {a1X: -29.845558, azi1: 90.0, aziX: 90.0, lat1: 0.0, latX: -0.0, lon1: 0.0, lonX: -29.745492, m12: -3163525.514556, M12: 0.86737, M21: 0.86737, s1X: -3311252.995823}\n    test 143 Closest5.2.sAB: 1.27e-09  FAILED, KNOWN (8.7451e-10), expected 3.95486e-10\n    test 144 Closest5.2.aAB: 1.14469e-14  FAILED, KNOWN (7.88228e-15), expected 3.56467e-15\n    test 145 Closest5.2.c: 0\n\n    test 146 All[0].sA: -494582\n    test 147 All[0].sB: 1.40522e+07\n    test 148 All[0].c: 0\n    test 149 All[0].sX0: 1.45468e+07\n    test 150 All[0].iteration: 4\n\n    test 151 All[1].sA: 1.95291e+07\n    test 152 All[1].sB: -5.93234e+06\n    test 153 All[1].c: 0\n    test 154 All[1].sX0: 2.54615e+07\n    test 155 All[1].iteration: 4\n\n    test 156 All[2].sA: -494582\n    test 157 All[2].sB: -2.59556e+07\n    test 158 All[2].c: 0\n    test 159 All[2].sX0: 2.64502e+07\n    test 160 All[2].iteration: 4\n\n    test 161 All[3].sA: -2.05181e+07\n    test 162 All[3].sB: -5.97086e+06\n    test 163 All[3].c: 0\n    test 164 All[3].sX0: 2.64889e+07\n    test 165 All[3].iteration: 4\n\n    test 166 All5[0].A: {a1X: -4.448619, azi1: -147.7, aziX: -144.55245, lat1: 50.0, latX: 53.692598, lon1: -4.0, lonX: 0.0, s1X: -494582.492241}  FAILED, KNOWN, expected {a1X: -4.448619, azi1: -147.7, aziX: -144.55245, lat1: 50.0, latX: 53.692598, lon1: -4.0, lonX: 0.0, m12: -494087.771694, M12: 0.996999, M21: 0.997, s1X: -494582.492241}\n    test 167 All5[0].B: {a1X: 126.399265, azi1: 0.0, aziX: 180.0, lat1: 0.0, latX: 53.692598, lon1: 180.0, lonX: 0.0, s1X: 14052229.965229}  FAILED, KNOWN, expected {a1X: 126.399265, azi1: 0.0, aziX: 180.0, lat1: 0.0, latX: 53.692598, lon1: 180.0, lonX: 0.0, m12: 5161737.753947, M12: -0.593409, M21: -0.586165, s1X: 14052229.965229}\n    test 168 All5[0].sAB: 1.44466e-09  FAILED, KNOWN (2.09612e-09), expected 3.54078e-09\n    test 169 All5[0].aAB: 1.29929e-14  FAILED, KNOWN (1.8852e-14), expected 3.18449e-14\n    test 170 All5[0].c: 0\n    test 171 All5[0].iteration: 4\n\n    test 172 All5[1].A: {a1X: 175.764866, azi1: -147.7, aziX: -35.280487, lat1: 50.0, latX: -53.518675, lon1: -4.0, lonX: 180.0, s1X: 19529110.042937}  FAILED, KNOWN, expected {a1X: 175.764866, azi1: -147.7, aziX: -35.280487, lat1: 50.0, latX: -53.518675, lon1: -4.0, lonX: 180.0, m12: 488198.978244, M12: -1.001203, M21: -0.992673, s1X: 19529110.042937}\n    test 173 All5[1].B: {a1X: -53.426639, azi1: 0.0, aziX: 0.0, lat1: 0.0, latX: -53.518675, lon1: 180.0, lonX: 180.0, s1X: -5932344.259165}  FAILED, KNOWN, expected {a1X: -53.426639, azi1: 0.0, aziX: 0.0, lat1: 0.0, latX: -53.518675, lon1: 180.0, lonX: 180.0, m12: -5110370.613686, M12: 0.595852, M21: 0.597076, s1X: -5932344.259165}\n    test 174 All5[1].sAB: 4.71379e-09  FAILED, KNOWN (7.06309e-10), expected 4.00748e-09\n    test 175 All5[1].aAB: 4.23951e-14  FAILED, KNOWN (6.35244e-15), expected 3.60427e-14\n    test 176 All5[1].c: 0\n    test 177 All5[1].iteration: 4\n\n    test 178 All5[2].A: {a1X: -4.448619, azi1: -147.7, aziX: -144.55245, lat1: 50.0, latX: 53.692598, lon1: -4.0, lonX: 0.0, s1X: -494582.492241}  FAILED, KNOWN, expected {a1X: -4.448619, azi1: -147.7, aziX: -144.55245, lat1: 50.0, latX: 53.692598, lon1: -4.0, lonX: -0.0, m12: -494087.771694, M12: 0.996999, M21: 0.997, s1X: -494582.492241}\n    test 179 All5[2].B: {a1X: -233.600735, azi1: 0.0, aziX: 180.0, lat1: 0.0, latX: 53.692598, lon1: 180.0, lonX: 0.0, s1X: -25955632.952022}  FAILED, KNOWN, expected {a1X: -233.600735, azi1: 0.0, aziX: 180.0, lat1: 0.0, latX: 53.692598, lon1: 180.0, lonX: 0.0, m12: 5082071.927222, M12: -0.593409, M21: -0.603127, s1X: -25955632.952022}\n    test 180 All5[2].sAB: 1.8823e-09  FAILED, KNOWN (1.02215e-10), expected 1.78008e-09\n    test 181 All5[2].aAB: 1.6929e-14  FAILED, KNOWN (9.19299e-16), expected 1.60097e-14\n    test 182 All5[2].c: 0\n    test 183 All5[2].iteration: 4\n\n    test 184 All5[3].A: {a1X: -184.660358, azi1: -147.7, aziX: -35.614985, lat1: 50.0, latX: -53.864737, lon1: -4.0, lonX: 180.0, s1X: -20518081.166643}  FAILED, KNOWN, expected {a1X: -184.660358, azi1: -147.7, aziX: -35.614985, lat1: 50.0, latX: -53.864737, lon1: -4.0, lonX: -180.0, m12: 499994.868419, M12: -0.992833, M21: -1.001337, s1X: -20518081.166643}\n    test 185 All5[3].A.lonX: 179.99999999999994  FAILED, KNOWN (2), expected -179.99999999999997\n    test 186 All5[3].B: {a1X: -53.773048, azi1: 0.0, aziX: 0.0, lat1: 0.0, latX: -53.864737, lon1: 180.0, lonX: 180.0, s1X: -5970860.779079}  FAILED, KNOWN, expected {a1X: -53.773048, azi1: 0.0, aziX: 0.0, lat1: 0.0, latX: -53.864737, lon1: 180.0, lonX: 180.0, m12: -5133274.754826, M12: 0.590985, M21: 0.592236, s1X: -5970860.779079}\n    test 187 All5[3].sAB: 3.99823e-09  FAILED, KNOWN (2.12841e-09), expected 1.86981e-09\n    test 188 All5[3].aAB: 3.59587e-14  FAILED, KNOWN (1.91423e-14), expected 1.68165e-14\n    test 189 All5[3].c: 0\n    test 190 All5[3].iteration: 4\n\n    test 191 Middle.sA: 782555\n    test 192 Middle.sB: 5.54085e+06  FAILED, KNOWN (0.000724055), expected 5.53684e+06\n    test 193 Middle.c: 0\n    test 194 Middle.sX0: 0\n\n    test 195 Middle5.A: {a12: 14.106434, a1M: 7.053396, azi1: 44.75191, azi2: 45.629037, aziM: 44.969535, lat1: 0.0, lat2: 10.0, latM: 5.019509, lon1: 0.0, lon2: 10.0, lonM: 4.961883, s12: 1565109.099218, s1M: 782554.549609}  FAILED, KNOWN, expected {a12: 14.106434, a1M: 7.053396, azi1: 44.75191, azi2: 45.629037, aziM: 44.969535, lat1: 0.0, lat2: 10.0, latM: 5.019509, lon1: 0.0, lon2: 10.0, lonM: 4.961883, m12: 780579.492953, M12: 0.992432, M21: 0.992432, s12: 1565109.099218, s1M: 782554.549609}\n    test 196 Middle5.B: {a12: 99.810444, a1M: 49.905222, azi1: 180.0, azi2: 180.0, aziM: 180.0, lat1: 50.0, lat2: -50.0, latM: 0.0, lon1: -4.0, lon2: -4.0, lonM: -4.0, s12: 11081694.083368, s1M: 5540847.041684}  FAILED, KNOWN, expected {a12: 99.810444, a1M: 49.869061, azi1: 180.0, azi2: 180.0, aziM: 180.0, lat1: 50.0, lat2: -50.0, latM: 0.036282, lon1: -4.0, lon2: -4.0, lonM: -4.0, m12: 4864571.105922, M12: 0.645508, M21: 0.644537, s12: 11073670.322999, s1M: 5536835.161499}\n    test 197 Middle5.B.latM: 0.0  FAILED, KNOWN (0.0362822), expected 0.03628221979727372\n    test 198 Middle5.B.s1M: 5540847.04168415  FAILED, KNOWN (0.000724055), expected 5536835.161499482\n    test 199 Middle5.B.a1M: 49.905221888853184  FAILED, KNOWN (0.000724585), expected 49.869061316437026\n    test 200 Middle5.B.s12: 11081694.0833683  FAILED, KNOWN (0.000724055), expected 11073670.322998963\n    test 201 Middle5.sMM: 1.14053e+06  FAILED, KNOWN (0.0017142), expected 1.13857e+06\n    test 202 Middle5.aMM: 10.2799  FAILED, KNOWN (0.00171426), expected 10.2623\n    test 203 Middle5.c: 0\n\n    test 204 Segment.sA: -631414\n    test 205 Segment.sB: 5.98889e+06\n    test 206 Segment.c: 0\n    test 207 Segment.sX0: 1.86201e+06  FAILED, KNOWN (0.00214997), expected 1.86602e+06\n    test 208 Segment.kA: -1\n    test 209 Segment.kB: 0\n    test 210 Segment.k: -3\n\n    test 211 Segment5.A: {a1X: -5.691141, azi1: 44.75191, aziX: 44.893464, k2: -1, lat1: 0.0, latX: -4.051871, lon1: 0.0, lonX: -4.0, s1X: -631414.26877}  FAILED, KNOWN, expected {a1X: -5.691141, azi1: 44.75191, azi2: 45.629037, aziX: 44.893464, k2: -1, lat1: 0.0, lat2: 10.0, latX: -4.051871, lon1: 0.0, lon2: 10.0, lonX: -4.0, m12: -630376.505305, M12: 0.995071, M21: 0.995071, s1X: -631414.26877}\n    test 212 Segment5.B: {a1X: 53.943553, azi1: 180.0, aziX: 180.0, k2: 0, lat1: 50.0, latX: -4.051871, lon1: -4.0, lonX: -4.0, s1X: 5988887.278435}  FAILED, KNOWN, expected {a1X: 53.943553, azi1: 180.0, azi2: 180.0, aziX: 180.0, k2: 0, lat1: 50.0, lat2: -50.0, latX: -4.051871, lon1: -4.0, lon2: -4.0, lonX: -4.0, m12: 5143394.782542, M12: 0.589657, M21: 0.588535, s1X: 5988887.278435}\n    test 213 Segment5.sAB: 5.496e-10  FAILED, KNOWN (8.17969e-10), expected 1.36757e-09\n    test 214 Segment5.aAB: 4.95367e-15  FAILED, KNOWN (7.37254e-15), expected 1.23262e-14\n    test 215 Segment5.c: 0\n\n    test 216 intersect7s[0].A: 04.051871°S, 004.0°W\n    test 217 intersect7s[0].B: 04.051871°S, 004.0°W\n    test 218 intersect7s[0].sAB: 2.64649e-10  FAILED, KNOWN (1.14775e-09), expected 1.4124e-09\n    test 219 intersect7s[0].aAB: 2.38534e-15  FAILED, KNOWN (1.03369e-14), expected 1.27222e-14\n    test 220 intersect7s[0].c: 0\n    test 221 intersect7s[0].kA: 0\n    test 222 intersect7s[0].kB: 0\n    test 223 intersect7s[0].iteration: None\n\n    test 224 intersect7s[1].A: 03.623464°N, 176.0°E\n    test 225 intersect7s[1].B: 03.623464°N, 176.0°E\n    test 226 intersect7s[1].sAB: 1.67611e-09  FAILED, KNOWN (1.12026e-12), expected 1.67723e-09\n    test 227 intersect7s[1].aAB: 1.51076e-14\n    test 228 intersect7s[1].c: 0\n    test 229 intersect7s[1].kA: 0\n    test 230 intersect7s[1].kB: 0\n    test 231 intersect7s[1].iteration: None\n\n    test 232 intersect7s[2].A: 04.051871°S, 004.0°W\n    test 233 intersect7s[2].B: 04.051871°S, 004.0°W\n    test 234 intersect7s[2].sAB: 5.83925e-10  FAILED, KNOWN (2.30824e-10), expected 3.53101e-10\n    test 235 intersect7s[2].aAB: 5.26305e-15  FAILED, KNOWN (2.08249e-15), expected 3.18055e-15\n    test 236 intersect7s[2].c: 0\n    test 237 intersect7s[2].kA: 0\n    test 238 intersect7s[2].kB: 0\n    test 239 intersect7s[2].iteration: None\n\n    test 240 intersect7s[3].A: 04.4796°N, 176.0°E\n    test 241 intersect7s[3].B: 04.4796°N, 176.0°E\n    test 242 intersect7s[3].sAB: 3.49267e-09  FAILED, KNOWN (2.94276e-10), expected 3.19839e-09\n    test 243 intersect7s[3].aAB: 3.14801e-14  FAILED, KNOWN (2.65236e-15), expected 2.88277e-14\n    test 244 intersect7s[3].c: 0\n    test 245 intersect7s[3].kA: 0\n    test 246 intersect7s[3].kB: 0\n    test 247 intersect7s[3].iteration: None\n\n    test 248 Sphere.Closest.sA: 6.07719e+06\n    test 249 Sphere.Closest.sB: -3.31802e+06\n    test 250 Sphere.Closest.c: 0\n    test 251 Sphere.Closest.sX0: 9.39521e+06\n\n    test 252 Sphere.Closest5.A: {a1X: 54.653489, azi1: -147.7, aziX: -159.911264, lat1: 50.0, latX: -0.0, lon1: -4.0, lonX: -29.839663, s1X: 6077190.710199}  FAILED, KNOWN, expected {a1X: 54.653489, azi1: -147.7, aziX: -159.911264, lat1: 50.0, latX: -0.0, lon1: -4.0, lonX: -29.839663, m12: 5196622.322619, M12: 0.57852, M21: 0.57852, s1X: 6077190.710199}\n    test 253 Sphere.Closest5.B: {a1X: -29.839663, azi1: 90.0, aziX: 90.0, lat1: 0.0, latX: -0.0, lon1: 0.0, lonX: -29.839663, s1X: -3318019.115902}  FAILED, KNOWN, expected {a1X: -29.839663, azi1: 90.0, aziX: 90.0, lat1: 0.0, latX: -0.0, lon1: 0.0, lonX: -29.839663, m12: -3170047.454389, M12: 0.867421, M21: 0.867421, s1X: -3318019.115902}\n    test 254 Sphere.Closest5.sAB: 8.56921e-10  FAILED, KNOWN (1.2076e-09), expected 2.06452e-09\n    test 255 Sphere.Closest5.aAB: 7.70647e-15  FAILED, KNOWN (1.08602e-14), expected 1.85667e-14\n    test 256 Sphere.Closest5.c: 0\n\n    test 257 _Xdict2: 124\n\n    testGeodesicExact(pygeodesy.geodesici, 26.02.04)\n    test 258 Intersector: name='', geodesic=GeodesicExact(name='', caps=0, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), C4order=30)\n\n    test 259 Closest.1.sA: 4.2253e+06\n    test 260 Closest.1.sB: 2.70933e+06\n    test 261 Closest.1.c: 0\n    test 262 Closest.1.sX0: 6.93463e+06\n\n    test 263 Closest5.1.A: {a1X: 38.075573, azi1: 45.0, aziX: 51.790249, lat1: 0.0, latX: 25.92918, lon1: 0.0, lonX: 28.89426, m12: 3921213.171755, M12: 0.787198, M21: 0.787384, s1X: 4225301.108897}\n    test 264 Closest5.1.B: {a1X: 24.392077, azi1: 135.0, aziX: 146.182975, lat1: 45.0, latX: 25.92918, lon1: 10.0, lonX: 28.89426, m12: 2628412.372503, M12: 0.911005, M21: 0.910881, s1X: 2709328.885611}\n    test 265 Closest5.1.sAB: 7.94571e-10\n    test 266 Closest5.1.aAB: 7.15718e-15\n    test 267 Closest5.1.c: 0\n\n    test 268 Closest.2.sA: 6.05805e+06\n    test 269 Closest.2.sB: -3.31125e+06\n    test 270 Closest.2.c: 0\n    test 271 Closest.2.sX0: 9.3693e+06\n\n    test 272 Closest5.2.A: {a1X: 54.562637, azi1: -147.7, aziX: -159.869978, lat1: 50.0, latX: 0.0, lon1: -4.0, lonX: -29.745492, m12: 5184118.430287, M12: 0.58097, M21: 0.579813, s1X: 6058048.653081}\n    test 273 Closest5.2.B: {a1X: -29.845558, azi1: 90.0, aziX: 90.0, lat1: 0.0, latX: -0.0, lon1: 0.0, lonX: -29.745492, m12: -3163525.514556, M12: 0.86737, M21: 0.86737, s1X: -3311252.995823}\n    test 274 Closest5.2.sAB: 3.95486e-10\n    test 275 Closest5.2.aAB: 3.56467e-15\n    test 276 Closest5.2.c: 0\n\n    test 277 All[0].sA: -494582\n    test 278 All[0].sB: 1.40522e+07\n    test 279 All[0].c: 0\n    test 280 All[0].sX0: 1.45468e+07\n    test 281 All[0].iteration: 4\n\n    test 282 All[1].sA: 1.95291e+07\n    test 283 All[1].sB: -5.93234e+06\n    test 284 All[1].c: 0\n    test 285 All[1].sX0: 2.54615e+07\n    test 286 All[1].iteration: 4\n\n    test 287 All[2].sA: -494582\n    test 288 All[2].sB: -2.59556e+07\n    test 289 All[2].c: 0\n    test 290 All[2].sX0: 2.64502e+07\n    test 291 All[2].iteration: 4\n\n    test 292 All[3].sA: -2.05181e+07\n    test 293 All[3].sB: -5.97086e+06\n    test 294 All[3].c: 0\n    test 295 All[3].sX0: 2.64889e+07\n    test 296 All[3].iteration: 4\n\n    test 297 All5[0].A: {a1X: -4.448619, azi1: -147.7, aziX: -144.55245, lat1: 50.0, latX: 53.692598, lon1: -4.0, lonX: 0.0, m12: -494087.771694, M12: 0.996999, M21: 0.997, s1X: -494582.492241}\n    test 298 All5[0].B: {a1X: 126.399265, azi1: 0.0, aziX: 180.0, lat1: 0.0, latX: 53.692598, lon1: 180.0, lonX: 0.0, m12: 5161737.753947, M12: -0.593409, M21: -0.586165, s1X: 14052229.965229}\n    test 299 All5[0].sAB: 3.54078e-09\n    test 300 All5[0].aAB: 3.18449e-14\n    test 301 All5[0].c: 0\n    test 302 All5[0].iteration: 4\n\n    test 303 All5[1].A: {a1X: 175.764866, azi1: -147.7, aziX: -35.280487, lat1: 50.0, latX: -53.518675, lon1: -4.0, lonX: 180.0, m12: 488198.978244, M12: -1.001203, M21: -0.992673, s1X: 19529110.042937}\n    test 304 All5[1].B: {a1X: -53.426639, azi1: 0.0, aziX: 0.0, lat1: 0.0, latX: -53.518675, lon1: 180.0, lonX: 180.0, m12: -5110370.613686, M12: 0.595852, M21: 0.597076, s1X: -5932344.259165}\n    test 305 All5[1].sAB: 4.00748e-09\n    test 306 All5[1].aAB: 3.60427e-14\n    test 307 All5[1].c: 0\n    test 308 All5[1].iteration: 4\n\n    test 309 All5[2].A: {a1X: -4.448619, azi1: -147.7, aziX: -144.55245, lat1: 50.0, latX: 53.692598, lon1: -4.0, lonX: -0.0, m12: -494087.771694, M12: 0.996999, M21: 0.997, s1X: -494582.492241}\n    test 310 All5[2].B: {a1X: -233.600735, azi1: 0.0, aziX: 180.0, lat1: 0.0, latX: 53.692598, lon1: 180.0, lonX: 0.0, m12: 5082071.927222, M12: -0.593409, M21: -0.603127, s1X: -25955632.952022}\n    test 311 All5[2].sAB: 1.78008e-09\n    test 312 All5[2].aAB: 1.60097e-14\n    test 313 All5[2].c: 0\n    test 314 All5[2].iteration: 4\n\n    test 315 All5[3].A: {a1X: -184.660358, azi1: -147.7, aziX: -35.614985, lat1: 50.0, latX: -53.864737, lon1: -4.0, lonX: -180.0, m12: 499994.868419, M12: -0.992833, M21: -1.001337, s1X: -20518081.166643}\n    test 316 All5[3].B: {a1X: -53.773048, azi1: 0.0, aziX: 0.0, lat1: 0.0, latX: -53.864737, lon1: 180.0, lonX: 180.0, m12: -5133274.754826, M12: 0.590985, M21: 0.592236, s1X: -5970860.779079}\n    test 317 All5[3].sAB: 1.86981e-09\n    test 318 All5[3].aAB: 1.68165e-14\n    test 319 All5[3].c: 0\n    test 320 All5[3].iteration: 4\n\n    test 321 Middle.sA: 782555\n    test 322 Middle.sB: 5.53684e+06\n    test 323 Middle.c: 0\n    test 324 Middle.sX0: 0\n\n    test 325 Middle5.A: {a12: 14.106434, a1M: 7.053396, azi1: 44.75191, azi2: 45.629037, aziM: 44.969535, lat1: 0.0, lat2: 10.0, latM: 5.019509, lon1: 0.0, lon2: 10.0, lonM: 4.961883, m12: 780579.492953, M12: 0.992432, M21: 0.992432, s12: 1565109.099218, s1M: 782554.549609}\n    test 326 Middle5.B: {a12: 99.810444, a1M: 49.869061, azi1: 180.0, azi2: 180.0, aziM: 180.0, lat1: 50.0, lat2: -50.0, latM: 0.036282, lon1: -4.0, lon2: -4.0, lonM: -4.0, m12: 4864571.105922, M12: 0.645508, M21: 0.644537, s12: 11073670.322999, s1M: 5536835.161499}\n    test 327 Middle5.sMM: 1.13857e+06\n    test 328 Middle5.aMM: 10.2623\n    test 329 Middle5.c: 0\n\n    test 330 Segment.sA: -631414\n    test 331 Segment.sB: 5.98889e+06\n    test 332 Segment.c: 0\n    test 333 Segment.sX0: 1.86602e+06\n    test 334 Segment.kA: -1\n    test 335 Segment.kB: 0\n    test 336 Segment.k: -3\n\n    test 337 Segment5.A: {a1X: -5.691141, azi1: 44.75191, azi2: 45.629037, aziX: 44.893464, k2: -1, lat1: 0.0, lat2: 10.0, latX: -4.051871, lon1: 0.0, lon2: 10.0, lonX: -4.0, m12: -630376.505305, M12: 0.995071, M21: 0.995071, s1X: -631414.26877}\n    test 338 Segment5.B: {a1X: 53.943553, azi1: 180.0, azi2: 180.0, aziX: 180.0, k2: 0, lat1: 50.0, lat2: -50.0, latX: -4.051871, lon1: -4.0, lon2: -4.0, lonX: -4.0, m12: 5143394.782542, M12: 0.589657, M21: 0.588535, s1X: 5988887.278435}\n    test 339 Segment5.sAB: 1.36757e-09\n    test 340 Segment5.aAB: 1.23262e-14\n    test 341 Segment5.c: 0\n\n    test 342 intersect7s[0].A: 04.051871°S, 004.0°W\n    test 343 intersect7s[0].B: 04.051871°S, 004.0°W\n    test 344 intersect7s[0].sAB: 1.4124e-09\n    test 345 intersect7s[0].aAB: 1.27222e-14\n    test 346 intersect7s[0].c: 0\n    test 347 intersect7s[0].kA: 0\n    test 348 intersect7s[0].kB: 0\n    test 349 intersect7s[0].iteration: None\n\n    test 350 intersect7s[1].A: 03.623464°N, 176.0°E\n    test 351 intersect7s[1].B: 03.623464°N, 176.0°E\n    test 352 intersect7s[1].sAB: 1.67723e-09\n    test 353 intersect7s[1].aAB: 1.51076e-14\n    test 354 intersect7s[1].c: 0\n    test 355 intersect7s[1].kA: 0\n    test 356 intersect7s[1].kB: 0\n    test 357 intersect7s[1].iteration: None\n\n    test 358 intersect7s[2].A: 04.051871°S, 004.0°W\n    test 359 intersect7s[2].B: 04.051871°S, 004.0°W\n    test 360 intersect7s[2].sAB: 3.53101e-10\n    test 361 intersect7s[2].aAB: 3.18055e-15\n    test 362 intersect7s[2].c: 0\n    test 363 intersect7s[2].kA: 0\n    test 364 intersect7s[2].kB: 0\n    test 365 intersect7s[2].iteration: None\n\n    test 366 intersect7s[3].A: 04.4796°N, 176.0°E\n    test 367 intersect7s[3].B: 04.4796°N, 176.0°E\n    test 368 intersect7s[3].sAB: 3.19839e-09\n    test 369 intersect7s[3].aAB: 2.88277e-14\n    test 370 intersect7s[3].c: 0\n    test 371 intersect7s[3].kA: 0\n    test 372 intersect7s[3].kB: 0\n    test 373 intersect7s[3].iteration: None\n\n    test 374 Sphere.Closest.sA: 6.07719e+06\n    test 375 Sphere.Closest.sB: -3.31802e+06\n    test 376 Sphere.Closest.c: 0\n    test 377 Sphere.Closest.sX0: 9.39521e+06\n\n    test 378 Sphere.Closest5.A: {a1X: 54.653489, azi1: -147.7, aziX: -159.911264, lat1: 50.0, latX: -0.0, lon1: -4.0, lonX: -29.839663, m12: 5196622.322619, M12: 0.57852, M21: 0.57852, s1X: 6077190.710199}\n    test 379 Sphere.Closest5.B: {a1X: -29.839663, azi1: 90.0, aziX: 90.0, lat1: 0.0, latX: -0.0, lon1: 0.0, lonX: -29.839663, m12: -3170047.454389, M12: 0.867421, M21: 0.867421, s1X: -3318019.115902}\n    test 380 Sphere.Closest5.sAB: 2.06452e-09\n    test 381 Sphere.Closest5.aAB: 1.85667e-14\n    test 382 Sphere.Closest5.c: 0\n\n    test 383 _Xdict2: 124\n\n    testGeodesic(pygeodesy.geodesici, 26.02.04)\n    test 384 Intersector: name='', geodesic=<pygeodesy.geodesicw._gWrapped.Geodesic.<locals>.Geodesic object at 0x106a78990>\n\n    test 385 Closest.1.sA: 4.2253e+06\n    test 386 Closest.1.sB: 2.70933e+06\n    test 387 Closest.1.c: 0\n    test 388 Closest.1.sX0: 6.93463e+06\n    test 389 Closest.1.latA: 25.9292\n    test 390 Closest.1.lonA: 28.8943\n    test 391 Closest.1.latB: 25.9292\n    test 392 Closest.1.lonB: 28.8943\n    test 393 Closest.1.sAB: 7.11805e-10\n    test 394 Closest.1.aAB: 6.41166e-15\n\n    test 395 Closest5.1.A: {a1X: 38.075573, azi1: 45.0, aziX: 51.790249, lat1: 0.0, latX: 25.92918, lon1: 0.0, lonX: 28.89426, s1X: 4225301.108897}  FAILED, KNOWN, expected {a1X: 38.075573, azi1: 45.0, aziX: 51.790249, lat1: 0.0, latX: 25.92918, lon1: 0.0, lonX: 28.89426, m12: 3921213.171755, M12: 0.787198, M21: 0.787384, s1X: 4225301.108897}\n    test 396 Closest5.1.B: {a1X: 24.392077, azi1: 135.0, aziX: 146.182975, lat1: 45.0, latX: 25.92918, lon1: 10.0, lonX: 28.89426, s1X: 2709328.885611}  FAILED, KNOWN, expected {a1X: 24.392077, azi1: 135.0, aziX: 146.182975, lat1: 45.0, latX: 25.92918, lon1: 10.0, lonX: 28.89426, m12: 2628412.372503, M12: 0.911005, M21: 0.910881, s1X: 2709328.885611}\n    test 397 Closest5.1.sAB: 7.11805e-10  FAILED, KNOWN (8.27663e-11), expected 7.94571e-10\n    test 398 Closest5.1.aAB: 6.41166e-15  FAILED, KNOWN (7.45526e-16), expected 7.15718e-15\n    test 399 Closest5.1.c: 0\n\n    test 400 Closest.2.sA: 6.05805e+06\n    test 401 Closest.2.sB: -3.31125e+06\n    test 402 Closest.2.c: 0\n    test 403 Closest.2.sX0: 9.3693e+06\n    test 404 Closest.2.latA: -8.98894e-15\n    test 405 Closest.2.lonA: -29.7455\n    test 406 Closest.2.latB: -0\n    test 407 Closest.2.lonB: -29.7455\n    test 408 Closest.2.sAB: 1.27e-09\n    test 409 Closest.2.aAB: 1.14469e-14\n\n    test 410 Closest5.2.A: {a1X: 54.562637, azi1: -147.7, aziX: -159.869978, lat1: 50.0, latX: -0.0, lon1: -4.0, lonX: -29.745492, s1X: 6058048.653081}  FAILED, KNOWN, expected {a1X: 54.562637, azi1: -147.7, aziX: -159.869978, lat1: 50.0, latX: 0.0, lon1: -4.0, lonX: -29.745492, m12: 5184118.430287, M12: 0.58097, M21: 0.579813, s1X: 6058048.653081}\n    test 411 Closest5.2.B: {a1X: -29.845558, azi1: 90.0, aziX: 90.0, lat1: 0.0, latX: -0.0, lon1: 0.0, lonX: -29.745492, s1X: -3311252.995823}  FAILED, KNOWN, expected {a1X: -29.845558, azi1: 90.0, aziX: 90.0, lat1: 0.0, latX: -0.0, lon1: 0.0, lonX: -29.745492, m12: -3163525.514556, M12: 0.86737, M21: 0.86737, s1X: -3311252.995823}\n    test 412 Closest5.2.sAB: 1.27e-09  FAILED, KNOWN (8.7451e-10), expected 3.95486e-10\n    test 413 Closest5.2.aAB: 1.14469e-14  FAILED, KNOWN (7.88228e-15), expected 3.56467e-15\n    test 414 Closest5.2.c: 0\n\n    test 415 All[0].sA: -494582\n    test 416 All[0].sB: 1.40522e+07\n    test 417 All[0].c: 0\n    test 418 All[0].sX0: 1.45468e+07\n    test 419 All[0].latA: 53.6926\n    test 420 All[0].lonA: 4.44089e-15\n    test 421 All[0].latB: 53.6926\n    test 422 All[0].lonB: 0\n    test 423 All[0].sAB: 1.44466e-09\n    test 424 All[0].aAB: 1.29929e-14\n    test 425 All[0].iteration: 4\n\n    test 426 All[1].sA: 1.95291e+07\n    test 427 All[1].sB: -5.93234e+06\n    test 428 All[1].c: 0\n    test 429 All[1].sX0: 2.54615e+07\n    test 430 All[1].latA: -53.5187\n    test 431 All[1].lonA: 180\n    test 432 All[1].latB: -53.5187\n    test 433 All[1].lonB: 180\n    test 434 All[1].sAB: 4.71379e-09\n    test 435 All[1].aAB: 4.23951e-14\n    test 436 All[1].iteration: 4\n\n    test 437 All[2].sA: -494582\n    test 438 All[2].sB: -2.59556e+07\n    test 439 All[2].c: 0\n    test 440 All[2].sX0: 2.64502e+07\n    test 441 All[2].latA: 53.6926\n    test 442 All[2].lonA: 9.76996e-15\n    test 443 All[2].latB: 53.6926\n    test 444 All[2].lonB: 0\n    test 445 All[2].sAB: 1.8823e-09\n    test 446 All[2].aAB: 1.6929e-14\n    test 447 All[2].iteration: 4\n\n    test 448 All[3].sA: -2.05181e+07\n    test 449 All[3].sB: -5.97086e+06\n    test 450 All[3].c: 0\n    test 451 All[3].sX0: 2.64889e+07\n    test 452 All[3].latA: -53.8647\n    test 453 All[3].lonA: 180\n    test 454 All[3].latB: -53.8647\n    test 455 All[3].lonB: 180\n    test 456 All[3].sAB: 3.99823e-09\n    test 457 All[3].aAB: 3.59587e-14\n    test 458 All[3].iteration: 4\n\n    test 459 All5[0].A: {a1X: -4.448619, azi1: -147.7, aziX: -144.55245, lat1: 50.0, latX: 53.692598, lon1: -4.0, lonX: 0.0, s1X: -494582.492241}  FAILED, KNOWN, expected {a1X: -4.448619, azi1: -147.7, aziX: -144.55245, lat1: 50.0, latX: 53.692598, lon1: -4.0, lonX: 0.0, m12: -494087.771694, M12: 0.996999, M21: 0.997, s1X: -494582.492241}\n    test 460 All5[0].B: {a1X: 126.399265, azi1: 0.0, aziX: 180.0, lat1: 0.0, latX: 53.692598, lon1: 180.0, lonX: 0.0, s1X: 14052229.965229}  FAILED, KNOWN, expected {a1X: 126.399265, azi1: 0.0, aziX: 180.0, lat1: 0.0, latX: 53.692598, lon1: 180.0, lonX: 0.0, m12: 5161737.753947, M12: -0.593409, M21: -0.586165, s1X: 14052229.965229}\n    test 461 All5[0].sAB: 1.44466e-09  FAILED, KNOWN (2.09612e-09), expected 3.54078e-09\n    test 462 All5[0].aAB: 1.29929e-14  FAILED, KNOWN (1.8852e-14), expected 3.18449e-14\n    test 463 All5[0].c: 0\n    test 464 All5[0].iteration: 4\n\n    test 465 All5[1].A: {a1X: 175.764866, azi1: -147.7, aziX: -35.280487, lat1: 50.0, latX: -53.518675, lon1: -4.0, lonX: 180.0, s1X: 19529110.042937}  FAILED, KNOWN, expected {a1X: 175.764866, azi1: -147.7, aziX: -35.280487, lat1: 50.0, latX: -53.518675, lon1: -4.0, lonX: 180.0, m12: 488198.978244, M12: -1.001203, M21: -0.992673, s1X: 19529110.042937}\n    test 466 All5[1].B: {a1X: -53.426639, azi1: 0.0, aziX: 0.0, lat1: 0.0, latX: -53.518675, lon1: 180.0, lonX: 180.0, s1X: -5932344.259165}  FAILED, KNOWN, expected {a1X: -53.426639, azi1: 0.0, aziX: 0.0, lat1: 0.0, latX: -53.518675, lon1: 180.0, lonX: 180.0, m12: -5110370.613686, M12: 0.595852, M21: 0.597076, s1X: -5932344.259165}\n    test 467 All5[1].sAB: 4.71379e-09  FAILED, KNOWN (7.06309e-10), expected 4.00748e-09\n    test 468 All5[1].aAB: 4.23951e-14  FAILED, KNOWN (6.35244e-15), expected 3.60427e-14\n    test 469 All5[1].c: 0\n    test 470 All5[1].iteration: 4\n\n    test 471 All5[2].A: {a1X: -4.448619, azi1: -147.7, aziX: -144.55245, lat1: 50.0, latX: 53.692598, lon1: -4.0, lonX: 0.0, s1X: -494582.492241}  FAILED, KNOWN, expected {a1X: -4.448619, azi1: -147.7, aziX: -144.55245, lat1: 50.0, latX: 53.692598, lon1: -4.0, lonX: -0.0, m12: -494087.771694, M12: 0.996999, M21: 0.997, s1X: -494582.492241}\n    test 472 All5[2].B: {a1X: -233.600735, azi1: 0.0, aziX: 180.0, lat1: 0.0, latX: 53.692598, lon1: 180.0, lonX: 0.0, s1X: -25955632.952022}  FAILED, KNOWN, expected {a1X: -233.600735, azi1: 0.0, aziX: 180.0, lat1: 0.0, latX: 53.692598, lon1: 180.0, lonX: 0.0, m12: 5082071.927222, M12: -0.593409, M21: -0.603127, s1X: -25955632.952022}\n    test 473 All5[2].sAB: 1.8823e-09  FAILED, KNOWN (1.02215e-10), expected 1.78008e-09\n    test 474 All5[2].aAB: 1.6929e-14  FAILED, KNOWN (9.19299e-16), expected 1.60097e-14\n    test 475 All5[2].c: 0\n    test 476 All5[2].iteration: 4\n\n    test 477 All5[3].A: {a1X: -184.660358, azi1: -147.7, aziX: -35.614985, lat1: 50.0, latX: -53.864737, lon1: -4.0, lonX: 180.0, s1X: -20518081.166643}  FAILED, KNOWN, expected {a1X: -184.660358, azi1: -147.7, aziX: -35.614985, lat1: 50.0, latX: -53.864737, lon1: -4.0, lonX: -180.0, m12: 499994.868419, M12: -0.992833, M21: -1.001337, s1X: -20518081.166643}\n    test 478 All5[3].A.lonX: 179.99999999999994  FAILED, KNOWN (2), expected -179.99999999999997\n    test 479 All5[3].B: {a1X: -53.773048, azi1: 0.0, aziX: 0.0, lat1: 0.0, latX: -53.864737, lon1: 180.0, lonX: 180.0, s1X: -5970860.779079}  FAILED, KNOWN, expected {a1X: -53.773048, azi1: 0.0, aziX: 0.0, lat1: 0.0, latX: -53.864737, lon1: 180.0, lonX: 180.0, m12: -5133274.754826, M12: 0.590985, M21: 0.592236, s1X: -5970860.779079}\n    test 480 All5[3].sAB: 3.99823e-09  FAILED, KNOWN (2.12841e-09), expected 1.86981e-09\n    test 481 All5[3].aAB: 3.59587e-14  FAILED, KNOWN (1.91423e-14), expected 1.68165e-14\n    test 482 All5[3].c: 0\n    test 483 All5[3].iteration: 4\n\n    test 484 Middle.sA: 782555\n    test 485 Middle.sB: 5.54085e+06  FAILED, KNOWN (0.000724055), expected 5.53684e+06\n    test 486 Middle.c: 0\n    test 487 Middle.sX0: 0\n    test 488 Middle.latA: 5.01951\n    test 489 Middle.lonA: 4.96188\n    test 490 Middle.latB: 0\n    test 491 Middle.lonB: -4\n    test 492 Middle.sAB: 1.14053e+06\n    test 493 Middle.aAB: 10.2799\n\n    test 494 Middle5.A: {a12: 14.106434, a1M: 7.053396, azi1: 44.75191, azi2: 45.629037, aziM: 44.969535, lat1: 0.0, lat2: 10.0, latM: 5.019509, lon1: 0.0, lon2: 10.0, lonM: 4.961883, s12: 1565109.099218, s1M: 782554.549609}  FAILED, KNOWN, expected {a12: 14.106434, a1M: 7.053396, azi1: 44.75191, azi2: 45.629037, aziM: 44.969535, lat1: 0.0, lat2: 10.0, latM: 5.019509, lon1: 0.0, lon2: 10.0, lonM: 4.961883, m12: 780579.492953, M12: 0.992432, M21: 0.992432, s12: 1565109.099218, s1M: 782554.549609}\n    test 495 Middle5.B: {a12: 99.810444, a1M: 49.905222, azi1: 180.0, azi2: 180.0, aziM: 180.0, lat1: 50.0, lat2: -50.0, latM: 0.0, lon1: -4.0, lon2: -4.0, lonM: -4.0, s12: 11081694.083368, s1M: 5540847.041684}  FAILED, KNOWN, expected {a12: 99.810444, a1M: 49.869061, azi1: 180.0, azi2: 180.0, aziM: 180.0, lat1: 50.0, lat2: -50.0, latM: 0.036282, lon1: -4.0, lon2: -4.0, lonM: -4.0, m12: 4864571.105922, M12: 0.645508, M21: 0.644537, s12: 11073670.322999, s1M: 5536835.161499}\n    test 496 Middle5.B.latM: 0.0  FAILED, KNOWN (0.0362822), expected 0.03628221979727372\n    test 497 Middle5.B.s1M: 5540847.04168415  FAILED, KNOWN (0.000724055), expected 5536835.161499482\n    test 498 Middle5.B.a1M: 49.905221888853184  FAILED, KNOWN (0.000724585), expected 49.869061316437026\n    test 499 Middle5.B.s12: 11081694.0833683  FAILED, KNOWN (0.000724055), expected 11073670.322998963\n    test 500 Middle5.sMM: 1.14053e+06  FAILED, KNOWN (0.0017142), expected 1.13857e+06\n    test 501 Middle5.aMM: 10.2799  FAILED, KNOWN (0.00171426), expected 10.2623\n    test 502 Middle5.c: 0\n\n    test 503 Segment.sA: -631414\n    test 504 Segment.sB: 5.98889e+06\n    test 505 Segment.c: 0\n    test 506 Segment.sX0: 1.86201e+06  FAILED, KNOWN (0.00214997), expected 1.86602e+06\n    test 507 Segment.kA: -1\n    test 508 Segment.kB: 0\n    test 509 Segment.k: -3\n    test 510 Segment.latA: -4.05187\n    test 511 Segment.lonA: -4\n    test 512 Segment.latB: -4.05187\n    test 513 Segment.lonB: -4\n    test 514 Segment.sAB: 5.496e-10\n    test 515 Segment.aAB: 4.95367e-15\n\n    test 516 Segment5.A: {a1X: -5.691141, azi1: 44.75191, aziX: 44.893464, k2: -1, lat1: 0.0, latX: -4.051871, lon1: 0.0, lonX: -4.0, s1X: -631414.26877}  FAILED, KNOWN, expected {a1X: -5.691141, azi1: 44.75191, azi2: 45.629037, aziX: 44.893464, k2: -1, lat1: 0.0, lat2: 10.0, latX: -4.051871, lon1: 0.0, lon2: 10.0, lonX: -4.0, m12: -630376.505305, M12: 0.995071, M21: 0.995071, s1X: -631414.26877}\n    test 517 Segment5.B: {a1X: 53.943553, azi1: 180.0, aziX: 180.0, k2: 0, lat1: 50.0, latX: -4.051871, lon1: -4.0, lonX: -4.0, s1X: 5988887.278435}  FAILED, KNOWN, expected {a1X: 53.943553, azi1: 180.0, azi2: 180.0, aziX: 180.0, k2: 0, lat1: 50.0, lat2: -50.0, latX: -4.051871, lon1: -4.0, lon2: -4.0, lonX: -4.0, m12: 5143394.782542, M12: 0.589657, M21: 0.588535, s1X: 5988887.278435}\n    test 518 Segment5.sAB: 5.496e-10  FAILED, KNOWN (8.17969e-10), expected 1.36757e-09\n    test 519 Segment5.aAB: 4.95367e-15  FAILED, KNOWN (7.37254e-15), expected 1.23262e-14\n    test 520 Segment5.c: 0\n\n    test 521 intersect7s[0].A: 04.051871°S, 004.0°W\n    test 522 intersect7s[0].B: 04.051871°S, 004.0°W\n    test 523 intersect7s[0].sAB: 2.64649e-10  FAILED, KNOWN (1.14775e-09), expected 1.4124e-09\n    test 524 intersect7s[0].aAB: 2.38534e-15  FAILED, KNOWN (1.03369e-14), expected 1.27222e-14\n    test 525 intersect7s[0].c: 0\n    test 526 intersect7s[0].kA: 0\n    test 527 intersect7s[0].kB: 0\n    test 528 intersect7s[0].iteration: None\n\n    test 529 intersect7s[1].A: 03.623464°N, 176.0°E\n    test 530 intersect7s[1].B: 03.623464°N, 176.0°E\n    test 531 intersect7s[1].sAB: 1.67611e-09  FAILED, KNOWN (1.12026e-12), expected 1.67723e-09\n    test 532 intersect7s[1].aAB: 1.51076e-14\n    test 533 intersect7s[1].c: 0\n    test 534 intersect7s[1].kA: 0\n    test 535 intersect7s[1].kB: 0\n    test 536 intersect7s[1].iteration: None\n\n    test 537 intersect7s[2].A: 04.051871°S, 004.0°W\n    test 538 intersect7s[2].B: 04.051871°S, 004.0°W\n    test 539 intersect7s[2].sAB: 5.83925e-10  FAILED, KNOWN (2.30824e-10), expected 3.53101e-10\n    test 540 intersect7s[2].aAB: 5.26305e-15  FAILED, KNOWN (2.08249e-15), expected 3.18055e-15\n    test 541 intersect7s[2].c: 0\n    test 542 intersect7s[2].kA: 0\n    test 543 intersect7s[2].kB: 0\n    test 544 intersect7s[2].iteration: None\n\n    test 545 intersect7s[3].A: 04.4796°N, 176.0°E\n    test 546 intersect7s[3].B: 04.4796°N, 176.0°E\n    test 547 intersect7s[3].sAB: 3.49267e-09  FAILED, KNOWN (2.94276e-10), expected 3.19839e-09\n    test 548 intersect7s[3].aAB: 3.14801e-14  FAILED, KNOWN (2.65236e-15), expected 2.88277e-14\n    test 549 intersect7s[3].c: 0\n    test 550 intersect7s[3].kA: 0\n    test 551 intersect7s[3].kB: 0\n    test 552 intersect7s[3].iteration: None\n\n    test 553 Sphere.Closest.sA: 6.07719e+06\n    test 554 Sphere.Closest.sB: -3.31802e+06\n    test 555 Sphere.Closest.c: 0\n    test 556 Sphere.Closest.sX0: 9.39521e+06\n    test 557 Sphere.Closest.latA: -2.98706e-15\n    test 558 Sphere.Closest.lonA: -29.8397\n    test 559 Sphere.Closest.latB: -0\n    test 560 Sphere.Closest.lonB: -29.8397\n    test 561 Sphere.Closest.sAB: 8.56921e-10\n    test 562 Sphere.Closest.aAB: 7.70647e-15\n\n    test 563 Sphere.Closest5.A: {a1X: 54.653489, azi1: -147.7, aziX: -159.911264, lat1: 50.0, latX: -0.0, lon1: -4.0, lonX: -29.839663, s1X: 6077190.710199}  FAILED, KNOWN, expected {a1X: 54.653489, azi1: -147.7, aziX: -159.911264, lat1: 50.0, latX: -0.0, lon1: -4.0, lonX: -29.839663, m12: 5196622.322619, M12: 0.57852, M21: 0.57852, s1X: 6077190.710199}\n    test 564 Sphere.Closest5.B: {a1X: -29.839663, azi1: 90.0, aziX: 90.0, lat1: 0.0, latX: -0.0, lon1: 0.0, lonX: -29.839663, s1X: -3318019.115902}  FAILED, KNOWN, expected {a1X: -29.839663, azi1: 90.0, aziX: 90.0, lat1: 0.0, latX: -0.0, lon1: 0.0, lonX: -29.839663, m12: -3170047.454389, M12: 0.867421, M21: 0.867421, s1X: -3318019.115902}\n    test 565 Sphere.Closest5.sAB: 8.56921e-10  FAILED, KNOWN (1.2076e-09), expected 2.06452e-09\n    test 566 Sphere.Closest5.aAB: 7.70647e-15  FAILED, KNOWN (1.08602e-14), expected 1.85667e-14\n    test 567 Sphere.Closest5.c: 0\n\n    test 568 _Xdict2: 178\n\n    100 of 568 testGeodesici.py tests (17.6%) FAILED, ALL KNOWN (pygeodesy 26.3.26 Python 3.11.9 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 1.24.2 scipy 1.10.1 Math 2 macOS 26.3.1 isLazy 0 -W  default) 19.225 sec\nrunning /usr/local/bin/p....n3.11 -W default ~/PyGeodesy/test/testGeodesicx.py\n./test/testGeodesicx.py:49: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  gP = E.geodesic\n./test/testGeodesicx.py:143: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  gP = E.geodesic\n./test/testGeodesicx.py:284: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  t.testPolygon(geodesicw, E.geodesic, K=True)  # XXX geographiclib 1.49 issue?\n\n    testing testGeodesicx.py 25.09.03 (module pygeodesy.geodesicx 25.12.23)\n\n    testDirectX vs ...(pygeodesy.geodesicx, 25.12.23)\n    test 1 C++X.a12: 49.4755274632515\n    test 2 C++X.azi1: 51\n    test 3 C++X.azi2: 107.189397162606\n    test 4 C++X.lat1: 40.6\n    test 5 C++X.lat2: 51.8845645056068\n    test 6 C++X.lon1: -73.8\n    test 7 C++X.lon2: -1.14117286120084  FAILED, KNOWN, expected -1.14117286120083\n    test 8 C++X.m12: 4844148.70310149\n    test 9 C++X.M12: 0.650910566998086\n    test 10 C++X.M21: 0.651228658921966\n    test 11 C++X.s12: 5500000\n    test 12 C++X.S12: 39735075134877.1\n    test 13 iteration: None\n\n    test 14 Python.a12: 49.4755274632515\n    test 15 Python.azi1: 51\n    test 16 Python.azi2: 107.189397162606\n    test 17 Python.lat1: 40.6\n    test 18 Python.lat2: 51.8845645056068\n    test 19 Python.lon1: -73.8\n    test 20 Python.lon2: -1.14117286120084\n    test 21 Python.m12: 4844148.70310149\n    test 22 Python.M12: 0.650910566998086\n    test 23 Python.M21: 0.651228658921966\n    test 24 Python.s12: 5500000\n    test 25 Python.S12: 39735075134877.1\n    test 26 iteration: None\n\n    test 27 GeodesicLineExact: name='', lat1=40.6, lon1=-73.8, azi1=51, a13=49.475527, s13=5500000, caps=36747, geodesic=GeodesicExact(name='WGS84', caps=0, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), C4order=30)\n    test 28 GeodesicExact: GeodesicExact(name='WGS84', caps=0, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), C4order=30)\n    test 29 GeodesicLineExact: Direct9Tuple(a12=49.475527, lat2=51.884565, lon2=-1.141173, azi2=107.189397, s12=5500000.0, m12=4844148.703101, M12=0.650911, M21=0.651229, S12=NAN)\n\n    test 30 GeodesicExact: {a12: 49.475527, azi1: 51.0, azi2: 107.189397, lat1: 40.6, lat2: 51.884565, lon1: -73.8, lon2: -1.141173, m12: 4844148.703101, M12: 0.650911, M21: 0.651229, s12: 5500000.0}\n    test 31 GeodesicExact: (49.475527, 51.884565, -1.141173, 107.189397, 5500000.0, 4844148.703101, 0.650911, 0.651229, NAN)\n    test 32 GeodesicExact: {a12: 49.475527, azi2: 107.189397, lat2: 51.884565, lon2: -1.141173, m12: 4844148.703101, M12: 0.650911, M21: 0.651229, s12: 5500000.0, S12: NAN}  FAILED, KNOWN, expected {a12: 49.475527, azi1: 51.0, azi2: 107.189397, lat1: 40.6, lat2: 51.884565, lon1: -73.8, lon2: -1.141173, m12: 4844148.703101, M12: 0.650911, M21: 0.651229, s12: 5500000.0}\n\n    test 33 Geodesic: {a12: 49.475527, azi2: 107.189397, lat2: 51.884565, lon2: -1.141173, m12: NAN, M12: NAN, M21: NAN, s12: 5500000.0, S12: NAN}\n    test 34 Geodesic: (49.475527, 51.884565, -1.141173, 107.189397, 5500000.0, NAN, NAN, NAN, NAN)\n    test 35 Geodesic: {a12: 49.475527, azi2: 107.189397, lat2: 51.884565, lon2: -1.141173, m12: NAN, M12: NAN, M21: NAN, s12: 5500000.0, S12: NAN}\n\n    test 36 ArcDirect.a12: 49.8\n    test 37 ArcDirect.azi1: 51\n    test 38 ArcDirect.azi2: 107.582082475406  FAILED, KNOWN, expected 107.5820825\n    test 39 ArcDirect.lat1: 40.6\n    test 40 ArcDirect.lat2: 51.7876866587893  FAILED, KNOWN, expected 51.7876867\n    test 41 ArcDirect.lon1: -73.8\n    test 42 ArcDirect.lon2: -0.641731343091337  FAILED, KNOWN, expected -0.641731\n    test 43 ArcDirect.s12: 5536073.73439267  FAILED, KNOWN, expected 5536073.734393\n    test 44 iteration: None\n\n    test 45 ArcDirectLine: name='', lat1=40.6, lon1=-73.8, azi1=51, a13=49.8, s13=5536073.734393, caps=36747, geodesic=GeodesicExact(name='WGS84', caps=0, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), C4order=30)\n    test 46 iteration: None\n\n    test 47 GeodesicLineExact: name='', lat1=40.6, lon1=-73.8, azi1=51, a13=NAN, s13=NAN, caps=65439, geodesic=GeodesicExact(name='WGS84', caps=0, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), C4order=30)\n    test 48 iteration: None\n\n    testInverseX vs ...(pygeodesy.geodesicx, 25.12.23)\n    test 49 C++X.a12: 49.941310217899\n    test 50 C++X.azi1: 51.1988828455798\n    test 51 C++X.azi2: 107.821776735514\n    test 52 C++X.lat1: 40.6\n    test 53 C++X.lat2: 51.6\n    test 54 C++X.lon1: -73.8\n    test 55 C++X.lon2: -0.5\n    test 56 C++X.m12: 4877684.6027062\n    test 57 C++X.M12: 0.644729692059482\n    test 58 C++X.M21: 0.645045678521344\n    test 59 C++X.s12: 5551759.40031868\n    test 60 C++X.S12: 40041368848742.5\n    test 61 iteration: 3\n\n    test 62 Python.a12: 49.941310217899\n    test 63 Python.azi1: 51.1988828455798\n    test 64 Python.azi2: 107.821776735514\n    test 65 Python.lat1: 40.6\n    test 66 Python.lat2: 51.6\n    test 67 Python.lon1: -73.8\n    test 68 Python.lon2: -0.5\n    test 69 Python.m12: 4877684.6027062\n    test 70 Python.M12: 0.644729692059482\n    test 71 Python.M21: 0.645045678521344\n    test 72 Python.s12: 5551759.40031868\n    test 73 Python.S12: 40041368848742.5\n    test 74 iteration: None\n\n    test 75 GeodesicLineExact: GeodesicLineExact(name='', lat1=40.6, lon1=-73.8, azi1=51.198883, a13=49.94131, s13=5551759.400319, caps=36747, geodesic=GeodesicExact(name='WGS84', caps=0, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), C4order=30))\n    test 76 GeodesicExact: name='WGS84', caps=0, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), C4order=30\n    test 77 GeodesicLineExact: Direct9Tuple(a12=49.94131, lat2=51.6, lon2=-0.5, azi2=107.821777, s12=5551759.400319, m12=4877684.602706, M12=0.64473, M21=0.645046, S12=NAN)\n\n    test 78 GeodesicExact: GDict(a12=49.94131, azi1=51.198883, azi2=107.821777, lat1=40.6, lat2=51.6, lon1=-73.8, lon2=-0.5, m12=4877684.602706, M12=0.64473, M21=0.645046, s12=5551759.400319)\n    test 79 GeodesicExact: Inverse10Tuple(a12=49.94131, s12=5551759.400319, salp1=NAN, calp1=NAN, salp2=NAN, calp2=NAN, m12=4877684.602706, M12=0.64473, M21=0.645046, S12=NAN)\n    test 80 GeodesicExact: {a12: 49.94131, azi1: NAN, azi2: NAN, calp1: NAN, calp2: NAN, m12: 4877684.602706, M12: 0.64473, M21: 0.645046, s12: 5551759.400319, S12: NAN, salp1: NAN, salp2: NAN}  FAILED, KNOWN, expected {a12: 49.94131, azi1: 51.198883, azi2: 107.821777, lat1: 40.6, lat2: 51.6, lon1: -73.8, lon2: -0.5, m12: 4877684.602706, M12: 0.64473, M21: 0.645046, s12: 5551759.400319}\n\n    test 81 Geodesic: GDict(a12=49.94131, azi1=51.198883, azi2=107.821777, calp1=0.626619, calp2=-0.306057, lon1=-73.8, lon2=-0.5, m12=NAN, M12=NAN, M21=NAN, s12=5551759.400319, S12=NAN, salp1=0.779326, salp2=0.952013)\n    test 82 Geodesic: Inverse10Tuple(a12=49.94131, s12=5551759.400319, salp1=0.779326, calp1=0.626619, salp2=0.952013, calp2=-0.306057, m12=NAN, M12=NAN, M21=NAN, S12=NAN)\n    test 83 Geodesic: {a12: 49.94131, azi1: 51.198883, azi2: 107.821777, calp1: 0.626619, calp2: -0.306057, m12: NAN, M12: NAN, M21: NAN, s12: 5551759.400319, S12: NAN, salp1: 0.779326, salp2: 0.952013}  FAILED, KNOWN, expected {a12: 49.94131, azi1: 51.198883, azi2: 107.821777, calp1: 0.626619, calp2: -0.306057, lon1: -73.8, lon2: -0.5, m12: NAN, M12: NAN, M21: NAN, s12: 5551759.400319, S12: NAN, salp1: 0.779326, salp2: 0.952013}\n\n    test 84 Inverse: {a12: 49.647855, azi1: 51.139649, azi2: 107.74164, lat1: 40.6, lat2: 51.6, lon1: -73.8, lon2: -0.5, m12: 4848370.615026, M12: 0.646331, M21: 0.646017, s12: 5515844.227497}\n    test 85 Inverse1: 49.647854761166144\n\n    testPolygon24(pygeodesy.geodesicx, 25.12.23)\n    test 86 Compute: (1, 0, 0)\n    test 87 AddEdges: (4, 4000, 1000000)\n    test 88 TestEdge: (5, 4000, 1000000)\n    test 89 Clear: 0\n    test 90 TestPoint: (1, 0, 0)\n    test 91 AddPoints: (4, 29506941, 65690027591346)\n    test 92 TestPoint: (5, 29506941, 65690027591346)\n    test 93 toStr: area=65690027591345.671875, geodesic=GeodesicExact(name='WGS84', caps=0, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), C4order=24), num=4, perimeter=29506941.155178, polyline=False\n\n    testPolygon27(pygeodesy.geodesicx, 25.12.23)\n    test 94 Compute: (1, 0, 0)\n    test 95 AddEdges: (4, 4000, 1000000)\n    test 96 TestEdge: (5, 4000, 1000000)\n    test 97 Clear: 0\n    test 98 TestPoint: (1, 0, 0)\n    test 99 AddPoints: (4, 29506941, 65690027591346)\n    test 100 TestPoint: (5, 29506941, 65690027591346)\n    test 101 toStr: area=65690027591345.671875, geodesic=GeodesicExact(name='WGS84', caps=0, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), C4order=27), num=4, perimeter=29506941.155178, polyline=False\n\n    testPolygon30(pygeodesy.geodesicx, 25.12.23)\n    test 102 Compute: (1, 0, 0)\n    test 103 AddEdges: (4, 4000, 1000000)\n    test 104 TestEdge: (5, 4000, 1000000)\n    test 105 Clear: 0\n    test 106 TestPoint: (1, 0, 0)\n    test 107 AddPoints: (4, 29506941, 65690027591346)\n    test 108 TestPoint: (5, 29506941, 65690027591346)\n    test 109 toStr: area=65690027591345.671875, geodesic=GeodesicExact(name='WGS84', caps=0, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), C4order=30), num=4, perimeter=29506941.155178, polyline=False\n\n    testPolygon(pygeodesy.geodesicw, 25.05.28)\n    test 110 Compute: (1, 0, 0)\n    test 111 AddEdges: (4, 4000, 1000000)\n    test 112 TestEdge: (5, 4000, 1000000)\n    test 113 Clear: None  FAILED, KNOWN, expected 0\n    test 114 TestPoint: (1, 0, 0)\n    test 115 AddPoints: (4, 29506941, 65690027591346)\n    test 116 TestPoint: (5, 29506941, 65690027591346)\n\n    testPlumbTo ...(pygeodesy.geodesicx, 25.12.23)\n    test 117 lat2: 51.846089\n    test 118 lon2: 5.260428\n    test 119 s12: 24784.288415\n    test 120 at: -270.000000\n    test 121 iteration: 6\n\n    test 122 lat2: 54.928531\n    test 123 lon2: -21.937291\n    test 124 s12: 3928788.572003\n    test 125 at: 270.000000\n    test 126 iteration: 27\n\n    test 127 lat2: 37.976203  FAILED, KNOWN, expected 37.976217\n    test 128 lon2: 18.344788  FAILED, KNOWN, expected 18.344820\n    test 129 s12: 1012793.789771  FAILED, KNOWN, expected 1012790.599291\n    test 130 at: 270.005478  FAILED, KNOWN, expected 270.005437\n    test 131 iteration: 128\n\n    16 of 131 testGeodesicx.py tests (12.2%) FAILED, incl. 13 KNOWN plus 3 DeprecationWarnings (pygeodesy 26.3.26 Python 3.11.9 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 1.24.2 scipy 1.10.1 Math 2 macOS 26.3.1 isLazy 0 -W  default) 41.813 sec\nrunning /usr/local/bin/p....n3.11 -W default ~/PyGeodesy/test/testGeohash.py\n./test/testGeohash.py:38: DeprecationWarning: function L{decode_error<pygeodesy.geohash.decode_error>} has been DEPRECATED on 2024.07.28, use L{geohash.decode_error2}.\n  self.test('decode_error',  fstr(geohash.decode_error( g), fmt='%.*e'), '2.145767e-05, 2.145767e-05')  # DEPRECATED\n./test/testGeohash.py:45: DeprecationWarning: property_RO L{sizes<pygeodesy.geohash.Geohash.sizes>} has been DEPRECATED on 2024.07.28, use property C{Geohash.sizes3}.\n  self.test('sizes', fstr(g.sizes, prec=1), '4.8, 4.8')\n./test/testGeohash.py:87: DeprecationWarning: function L{decode_error<pygeodesy.geohash.decode_error>} has been DEPRECATED on 2024.07.28, use L{geohash.decode_error2}.\n  self.test('decode_error',  fstr(geohash.decode_error( 'u120fxw'), fmt='%.*e'), '6.866455e-04, 6.866455e-04')  # DEPRECATED\n./test/testGeohash.py:94: DeprecationWarning: function L{sizes<pygeodesy.geohash.sizes>} has been DEPRECATED on 2024.07.28, use function L{pygeodesy.geohash.sizes3}.\n  self.test('sizes',  fstr(geohash.sizes( 'u120fxw'), prec=1), '153.0, 153.0')  # DEPRECATED\n./test/testGeohash.py:102: DeprecationWarning: function L{sizes<pygeodesy.geohash.sizes>} has been DEPRECATED on 2024.07.28, use function L{pygeodesy.geohash.sizes3}.\n  self.test('sizes',  fstr(geohash.sizes( g), prec=1), '610.0, 1220.0')  # DEPRECATED\n\n    testing testGeohash.py 24.08.01 (module pygeodesy.geohash 25.09.16)\n    test 1 Geohash: geek\n    test 2 Geohash: geek\n    test 3 Geohash: 'geek'\n    test 4 Geohash: Geohash('geek')\n    test 5 Geohash: geek\n    test 6 bounds: (LatLon(65°23′26.25″N, 017°55′46.88″W), LatLon(65°33′59.06″N, 017°34′41.25″W))\n    test 7 toLatLon: 65.478516°N, 017.753906°W\n    test 8 latlon: 65.4785156, -17.7539062\n    test 9 philam: 1.1428157, -0.3098641\n    test 10 copy(<class 'type'>): (<class 'pygeodesy.geohash.Geohash'>, True)\n    test 11 Geohash.copy(): (<class 'pygeodesy.geohash.Geohash'>, True)\n    test 12 Geohash: geehpbpbp\n    test 13 toLatLon: 65.390625°N, 017.929689°W\n    test 14 latlon: 65.390625, -17.929689\n    test 15 ab: 1.1412817, -0.3129321\n    test 16 decode: ('65.390646', '-17.929709')\n    test 17 decode2: (65.390646, -17.929709)\n    test 18 decode_error: 2.145767e-05, 2.145767e-05\n    test 19 decode_error2: 2.145767e-05, 2.145767e-05\n    test 20 distance1To: 2758.887\n    test 21 distance2To: 682.760\n    test 22 distance3To: 410.732\n    test 23 distance4To: 397.404\n    test 24 distance5To: 397.404\n    test 25 sizes: 4.8, 4.8\n    test 26 copy(<class 'type'>): (<class 'pygeodesy.geohash.Geohash'>, True)\n    test 27 Geohash.copy(): (<class 'pygeodesy.geohash.Geohash'>, True)\n    test 28 N: geehpbpbr\n    test 29 NE: geek00002\n    test 30 E: geek00000\n    test 31 SE: gee7bpbpb\n    test 32 S: gee5zzzzz\n    test 33 SW: gee5zzzzy\n    test 34 W: geehpbpbn\n    test 35 NW: geehpbpbq\n    test 36 N: geehpbpbr\n    test 37 NE: geek00002\n    test 38 E: geek00000\n    test 39 SE: gee7bpbpb\n    test 40 S: gee5zzzzz\n    test 41 SW: gee5zzzzy\n    test 42 W: geehpbpbn\n    test 43 NW: geehpbpbq\n    test 44 N: geehpbpbr\n    test 45 NE: geek00002\n    test 46 E: geek00000\n    test 47 SE: gee7bpbpb\n    test 48 S: gee5zzzzz\n    test 49 SW: gee5zzzzy\n    test 50 W: geehpbpbn\n    test 51 NW: geehpbpbq\n    test 52 N: geehpbpbr\n    test 53 NE: geek00002\n    test 54 E: geek00000\n    test 55 SE: gee7bpbpb\n    test 56 S: gee5zzzzz\n    test 57 SW: gee5zzzzy\n    test 58 W: geehpbpbn\n    test 59 NW: geehpbpbq\n\n    test 60 bounds: 52.20428467, 0.11810303, 52.20565796, 0.11947632\n    test 61 decode: 52.205, 0.1188\n    test 62 encode-decode: u120fxw\n    test 63 encode-decode: geek\n    test 64 encode-decode: fur\n    test 65 encode-decode: geehpbpbp\n    test 66 encode-decode: u4pruydqqvj8\n    test 67 encode-decode: bgr96qxvpd46\n    test 68 encode-decode: 0123456789\n    test 69 encode-decode: zzzzzz\n    test 70 Geohash: u4pruydq\n    test 71 N.E.S.W: True\n    test 72 E.S.W.N: True\n    test 73 S.W.N.E: True\n    test 74 W.N.E.S: True\n    test 75 N.E.S.S.W.W.N.N.E.S: True\n    test 76 Geohash: u4pruydqq\n    test 77 N.E.S.W: True\n    test 78 E.S.W.N: True\n    test 79 S.W.N.E: True\n    test 80 W.N.E.S: True\n    test 81 N.E.S.S.W.W.N.N.E.S: True\n    test 82 Geohash: u4pruydqqv\n    test 83 N.E.S.W: True\n    test 84 E.S.W.N: True\n    test 85 S.W.N.E: True\n    test 86 W.N.E.S: True\n    test 87 N.E.S.S.W.W.N.N.E.S: True\n    test 88 Geohash: u4pruydqqvj\n    test 89 N.E.S.W: True\n    test 90 E.S.W.N: True\n    test 91 S.W.N.E: True\n    test 92 W.N.E.S: True\n    test 93 N.E.S.S.W.W.N.N.E.S: True\n    test 94 Geohash: u4pruydqqvj8\n    test 95 N.E.S.W: True\n    test 96 E.S.W.N: True\n    test 97 S.W.N.E: True\n    test 98 W.N.E.S: True\n    test 99 N.E.S.S.W.W.N.N.E.S: True\n\n    test 100 encode: u120fxw\n    test 101 decode: ('52.205', '0.1188')\n    test 102 decode2: (52.205, 0.1188)\n    test 103 decode_error: 6.866455e-04, 6.866455e-04\n    test 104 decode_error2: 6.866455e-04, 6.866455e-04\n    test 105 distance_: 486.710\n    test 106 distance2: 3.374\n    test 107 distance3: 2.992\n    test 108 distance4: 2.798\n    test 109 distance5: 2.798\n    test 110 sizes: 153.0, 153.0\n    test 111 sizes3: 153.0, 153.0, 86.3\n\n    test 112 Geohash: u336xv\n    test 113 encode: u336xv\n    test 114 equal: True\n    test 115 sizes: 610.0, 1220.0\n    test 116 sizes3: 610.0, 1220.0, 486.7\n    test 117 encode: fur\n    test 118 decode: ('69.6', '-45.7')\n    test 119 decode: ('70.3', '-51')\n    test 120 decode: ('68', '-68')\n    test 121 decode_error2: (0.703125, 0.703125)\n    test 122 decode_error2: (2.8125, 5.625)\n    test 123 decode_error2: (22.5, 22.5)\n    test 124 encode: ezs42e44yx96\n    test 125 decode: ('42.60000003', '-5.59999997')\n    test 126 encode: ezs42\n    test 127 decode: ('42.605', '-5.603')\n    test 128 distance1: 503442.4\n    test 129 distance2: 303317.6\n    test 130 distance3: 185425.4\n    test 131 distance4: 179940.1\n    test 132 distance5: 179940.1\n\n    test 133 precision: 0  FAILED, KNOWN, expected 1\n    test 134 resolution: 360.0, 180.0\n    test 135 inferred: w\n    test 136 precision: 1\n    test 137 resolution: 45.0, 45.0\n    test 138 inferred: wp\n    test 139 precision: 2\n    test 140 resolution: 11.25, 5.625\n    test 141 inferred: wpy\n    test 142 precision: 3\n    test 143 resolution: 1.4062, 1.4062\n    test 144 inferred: wpy6\n    test 145 precision: 4\n    test 146 resolution: 0.35156, 0.17578\n    test 147 inferred: wpy6kc\n    test 148 precision: 5\n    test 149 resolution: 0.043945, 0.043945\n    test 150 inferred: wpy6kcc\n    test 151 precision: 6\n    test 152 resolution: 0.0109863, 0.0054932\n    test 153 inferred: wpy6kccw\n    test 154 precision: 7\n    test 155 resolution: 0.00137329, 0.00137329\n    test 156 inferred: wpy6kccwe4\n    test 157 precision: 8\n    test 158 resolution: 0.000343323, 0.000171661\n    test 159 inferred: wpy6kccwe4q\n    test 160 precision: 9\n    test 161 resolution: 0.0000429153, 0.0000429153\n    test 162 inferred: wpy6kccwe4qr\n    test 163 precision: 10\n    test 164 resolution: 0.00001072884, 0.00000536442\n    test 165 inferred: wpy6kccwe4qr\n    test 166 precision: 11\n    test 167 resolution: 0.000001341105, 0.000001341105\n    test 168 inferred: wpy6kccwe4qr\n    test 169 precision: 12\n    test 170 resolution: 0.0000003352761, 0.0000001676381\n    test 171 inferred: wpy6kccwe4qr\n    test 172 precision: 13  FAILED, KNOWN, expected 12\n    test 173 resolution: 0.00000033527613, 0.00000016763806\n    test 174 inferred: wpy6kccwe4qr\n\n    test 175 precision: 12\n    test 176 ndigits: None\n    test 177 encoded: tuvz4p141zc1\n    test 178 encoded: tuvz4p141zc1\n    test 179 encoded: True\n    test 180 encoded: tuvz4p141zc1\n    test 181 encoded: True\n    test 182 decoded: (27.988056, 86.925278)\n    test 183 decoded: (27.988056, 86.925278)\n    test 184 decoded: True\n    test 185 len: 1\n    test 186 len2: (1, 1)\n\n    test 187 precision: 12\n    test 188 ndigits: 12\n    test 189 encoded: tuvz4p141zc1\n    test 190 encoded: tuvz4p141zc1\n    test 191 encoded: True\n    test 192 encoded: tuvz4p141zc1\n    test 193 encoded: True\n    test 194 decoded: (27.988056, 86.925278)\n    test 195 decoded: (27.988056, 86.925278)\n    test 196 decoded: True\n    test 197 len: 1\n    test 198 len2: (1, 1)\n\n    7 of 198 testGeohash.py tests (3.5%) FAILED, incl. 2 KNOWN plus 5 DeprecationWarnings (pygeodesy 26.3.26 Python 3.11.9 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 1.24.2 scipy 1.10.1 Math 2 macOS 26.3.1 isLazy 0 -W  default) 9.503 ms\nrunning /usr/local/bin/p....n3.11 -W default ~/PyGeodesy/test/testGeoids.py\n\n    testing testGeoids.py 26.01.21\n    test 1 GeoidKarney('egm96-5.pgm').height(-76.981, 34.17) kind 2: 11.422  FAILED, KNOWN, expected 11.423\n    test 2 GeoidKarney('egm96-5.pgm').height(79.695, 88.806) kind 2: 0.887  FAILED, KNOWN, expected 0.892\n    test 3 GeoidKarney('egm96-5.pgm').height(-15.245, 168.748) kind 2: 65.226\n    test 4 GeoidKarney('egm96-5.pgm').height(-19.379, 15.855) kind 2: 24.460  FAILED, KNOWN, expected 24.463\n    test 5 GeoidKarney('egm96-5.pgm').height(43.378, -130.552) kind 2: -29.682\n    test 6 GeoidKarney('egm96-5.pgm').height(-16.075, 21.795) kind 2: 10.503\n    test 7 GeoidKarney('egm96-5.pgm').height(-11.256, -73.75) kind 2: 29.325  FAILED, KNOWN, expected 29.326\n    test 8 GeoidKarney('egm96-5.pgm').height(69.017, -15.921) kind 2: 60.423  FAILED, KNOWN, expected 60.424\n    test 9 GeoidKarney('egm96-5.pgm').height(2.221, 139.739) kind 2: 68.997  FAILED, KNOWN, expected 68.996\n    test 10 GeoidKarney('egm96-5.pgm').height(-9.097, 119.142) kind 2: 36.295  FAILED, KNOWN, expected 36.287\n    test 11 GeoidKarney('egm96-5.pgm').height(-28.524, -22.192) kind 2: 6.627  FAILED, KNOWN, expected 6.626\n    test 12 GeoidKarney('egm96-5.pgm').height(12.272, -136.424) kind 2: -20.860\n    test 13 GeoidKarney('egm96-5.pgm').height(-15.203, -85.604) kind 2: -3.266  FAILED, KNOWN, expected -3.267\n    test 14 GeoidKarney('egm96-5.pgm').height(-63.736, -77.17) kind 2: -1.296  FAILED, KNOWN, expected -1.294\n    test 15 GeoidKarney('egm96-5.pgm').height(-48.771, -90.102) kind 2: -2.322\n    test 16 GeoidKarney('egm96-5.pgm').height(-0.179, -126.368) kind 2: -17.556  FAILED, KNOWN, expected -17.557\n    test 17 GeoidKarney('egm96-5.pgm').height(1.586, -128.887) kind 2: -16.594\n    test 18 GeoidKarney('egm96-5.pgm').height(-48.781, -2.684) kind 2: 24.455  FAILED, KNOWN, expected 24.453\n    test 19 GeoidKarney('egm96-5.pgm').height(-49.092, 136.862) kind 2: -18.591  FAILED, KNOWN, expected -18.592\n    test 20 GeoidKarney('egm96-5.pgm').height(47.732, 17.552) kind 2: 44.051  FAILED, KNOWN, expected 44.049\n    test 21 GeoidKarney('egm96-5.pgm').height(-49.11, 85.706) kind 2: 18.582  FAILED, KNOWN, expected 18.581\n    test 22 GeoidKarney('egm96-5.pgm').height(-49.162, 40.321) kind 2: 44.290  FAILED, KNOWN, expected 44.289\n    test 23 GeoidKarney('egm96-5.pgm').height(3.498, 158.118) kind 2: 49.821  FAILED, KNOWN, expected 49.816\n    test 24 GeoidKarney('egm96-5.pgm').height(-35.616, 122.648) kind 2: -36.108  FAILED, KNOWN, expected -36.114\n    test 25 GeoidKarney('egm96-5.pgm').height(56.598, -96.114) kind 2: -41.046  FAILED, KNOWN, expected -41.048\n    test 26 GeoidKarney('egm96-5.pgm').height(-31.85, 149.121) kind 2: 26.457  FAILED, KNOWN, expected 26.456\n    test 27 GeoidKarney('egm96-5.pgm').height(-26.569, -177.792) kind 2: 49.309  FAILED, KNOWN, expected 49.317\n    test 28 GeoidKarney('egm96-5.pgm').height(76.735, -65.753) kind 2: 20.706  FAILED, KNOWN, expected 20.714\n    test 29 GeoidKarney('egm96-5.pgm').height(-21.404, -122.268) kind 2: -7.363  FAILED, KNOWN, expected -7.362\n    test 30 GeoidKarney('egm96-5.pgm').height(-77.133, -65.474) kind 2: -16.499  FAILED, KNOWN, expected -16.492\n    test 31 GeoidKarney('egm96-5.pgm').height(-58.812, 2.276) kind 2: 18.108  FAILED, KNOWN, expected 18.110\n    test 32 GeoidKarney('egm96-5.pgm').height(4.415, 155.683) kind 2: 51.859  FAILED, KNOWN, expected 51.858\n    test 33 GeoidKarney('egm96-5.pgm').height(-28.146, 107.081) kind 2: -38.979  FAILED, KNOWN, expected -38.981\n    test 34 GeoidKarney('egm96-5.pgm').height(-10.551, -126.69) kind 2: -9.912  FAILED, KNOWN, expected -9.913\n    test 35 GeoidKarney('egm96-5.pgm').height(-25.444, -103.337) kind 2: -2.827  FAILED, KNOWN, expected -2.828\n    test 36 GeoidKarney('egm96-5.pgm').height(24.436, 46.159) kind 2: -5.719\n    test 37 GeoidKarney('egm96-5.pgm').height(-72.889, 37.107) kind 2: 22.420  FAILED, KNOWN, expected 22.426\n    test 38 GeoidKarney('egm96-5.pgm').height(-19.629, 13.245) kind 2: 24.546  FAILED, KNOWN, expected 24.545\n    test 39 GeoidKarney('egm96-5.pgm').height(-7.602, 171.265) kind 2: 40.651  FAILED, KNOWN, expected 40.652\n    test 40 GeoidKarney('egm96-5.pgm').height(-45.364, -1.876) kind 2: 22.380  FAILED, KNOWN, expected 22.383\n    test 41 GeoidKarney('egm96-5.pgm').height(-7.292, -69.18) kind 2: 22.185  FAILED, KNOWN, expected 22.182\n    test 42 GeoidKarney('egm96-5.pgm').height(-31.566, -166.689) kind 2: 14.927  FAILED, KNOWN, expected 14.930\n    test 43 GeoidKarney('egm96-5.pgm').height(-82.751, -162.085) kind 2: -47.093  FAILED, KNOWN, expected -47.094\n    test 44 GeoidKarney('egm96-5.pgm').height(-40.7, 99.466) kind 2: -18.421\n    test 45 GeoidKarney('egm96-5.pgm').height(48.676, 39.69) kind 2: 10.060  FAILED, KNOWN, expected 10.055\n    test 46 GeoidKarney('egm96-5.pgm').height(74.817, -78.404) kind 2: 5.784  FAILED, KNOWN, expected 5.786\n    test 47 GeoidKarney('egm96-5.pgm').height(-81.032, -63.865) kind 2: -22.840  FAILED, KNOWN, expected -22.838\n    test 48 GeoidKarney('egm96-5.pgm').height(74.022, 9.432) kind 2: 42.988  FAILED, KNOWN, expected 42.989\n    test 49 GeoidKarney('egm96-5.pgm').height(-75.071, 17.579) kind 2: 15.351  FAILED, KNOWN, expected 15.353\n    test 50 GeoidKarney('egm96-5.pgm').height(-12.546, -54.851) kind 2: -6.341  FAILED, KNOWN, expected -6.337\n    test 51 GeoidKarney('egm96-5.pgm').height(-13.621, 42.408) kind 2: -25.551  FAILED, KNOWN, expected -25.555\n    test 52 GeoidKarney('egm96-5.pgm').height(-2.266, -91.951) kind 2: -9.921  FAILED, KNOWN, expected -9.923\n    test 53 GeoidKarney('egm96-5.pgm').height(-18.672, 42.547) kind 2: -10.861  FAILED, KNOWN, expected -10.852\n    test 54 GeoidKarney('egm96-5.pgm').height(-41.44, 157.413) kind 2: -0.136  FAILED, KNOWN, expected -0.135\n    test 55 GeoidKarney('egm96-5.pgm').height(53.686, -79.375) kind 2: -43.808  FAILED, KNOWN, expected -43.809\n    test 56 GeoidKarney('egm96-5.pgm').height(39.26, -30.351) kind 2: 57.151  FAILED, KNOWN, expected 57.150\n    test 57 GeoidKarney('egm96-5.pgm').height(-51.699, -141.493) kind 2: -17.660  FAILED, KNOWN, expected -17.657\n    test 58 GeoidKarney('egm96-5.pgm').height(36.585, 4.515) kind 2: 46.356  FAILED, KNOWN, expected 46.358\n    test 59 GeoidKarney('egm96-5.pgm').height(39.642, -54.659) kind 2: -14.404\n    test 60 GeoidKarney('egm96-5.pgm').height(59.761, 166.567) kind 2: 11.239  FAILED, KNOWN, expected 11.242\n    test 61 GeoidKarney('egm96-5.pgm').height(51.83, 13.357) kind 2: 42.236  FAILED, KNOWN, expected 42.237\n    test 62 GeoidKarney('egm96-5.pgm').height(-36.531, -175.431) kind 2: 22.148  FAILED, KNOWN, expected 22.147\n    test 63 GeoidKarney('egm96-5.pgm').height(-37.08, 125.264) kind 2: -33.395  FAILED, KNOWN, expected -33.396\n    test 64 GeoidKarney('egm96-5.pgm').height(-68.651, 92.732) kind 2: 7.965  FAILED, KNOWN, expected 7.961\n    test 65 GeoidKarney('egm96-5.pgm').height(35.087, 45.336) kind 2: 7.228  FAILED, KNOWN, expected 7.229\n    test 66 GeoidKarney('egm96-5.pgm').height(-61.356, -169.379) kind 2: -44.289  FAILED, KNOWN, expected -44.292\n    test 67 GeoidKarney('egm96-5.pgm').height(-36.955, 179.12) kind 2: 21.872  FAILED, KNOWN, expected 21.875\n    test 68 GeoidKarney('egm96-5.pgm').height(10.248, -6.714) kind 2: 28.935  FAILED, KNOWN, expected 28.933\n    test 69 GeoidKarney('egm96-5.pgm').height(36.868, 84.602) kind 2: -41.255  FAILED, KNOWN, expected -41.238\n    test 70 GeoidKarney('egm96-5.pgm').height(28.637, 88.933) kind 2: -31.334  FAILED, KNOWN, expected -31.331\n    test 71 GeoidKarney('egm96-5.pgm').height(54.811, -99.968) kind 2: -32.702\n    test 72 GeoidKarney('egm96-5.pgm').height(7.611, 145.911) kind 2: 60.118  FAILED, KNOWN, expected 60.117\n    test 73 GeoidKarney('egm96-5.pgm').height(59.412, 170.102) kind 2: 6.456  FAILED, KNOWN, expected 6.457\n    test 74 GeoidKarney('egm96-5.pgm').height(-61.469, 126.144) kind 2: -31.959  FAILED, KNOWN, expected -31.961\n    test 75 GeoidKarney('egm96-5.pgm').height(18.514, -137.083) kind 2: -26.572  FAILED, KNOWN, expected -26.571\n    test 76 GeoidKarney('egm96-5.pgm').height(7.854, -126.799) kind 2: -29.761  FAILED, KNOWN, expected -29.760\n    test 77 GeoidKarney('egm96-5.pgm').height(47.489, 134.183) kind 2: 21.980\n    test 78 GeoidKarney('egm96-5.pgm').height(-34.144, -11.922) kind 2: 16.849\n    test 79 GeoidKarney('egm96-5.pgm').height(-58.389, 117.458) kind 2: -20.922  FAILED, KNOWN, expected -20.923\n    test 80 GeoidKarney('egm96-5.pgm').height(9.773, 95.846) kind 2: -42.745  FAILED, KNOWN, expected -42.749\n    test 81 GeoidKarney('egm96-5.pgm').height(-53.12, 136.994) kind 2: -21.839  FAILED, KNOWN, expected -21.841\n    test 82 GeoidKarney('egm96-5.pgm').height(-50.35, 0.075) kind 2: 25.482\n    test 83 GeoidKarney('egm96-5.pgm').height(31.438, -170.879) kind 2: -8.845  FAILED, KNOWN, expected -8.847\n    test 84 GeoidKarney('egm96-5.pgm').height(37.541, -153.024) kind 2: -19.600  FAILED, KNOWN, expected -19.604\n    test 85 GeoidKarney('egm96-5.pgm').height(27.586, 2.444) kind 2: 25.672  FAILED, KNOWN, expected 25.668\n    test 86 GeoidKarney('egm96-5.pgm').height(-26.139, -106.201) kind 2: -3.772\n    test 87 GeoidKarney('egm96-5.pgm').height(-33.426, -14.84) kind 2: 17.747  FAILED, KNOWN, expected 17.748\n    test 88 GeoidKarney('egm96-5.pgm').height(39.586, -153.019) kind 2: -17.838  FAILED, KNOWN, expected -17.839\n    test 89 GeoidKarney('egm96-5.pgm').height(-60.79, -2.578) kind 2: 14.293  FAILED, KNOWN, expected 14.292\n    test 90 GeoidKarney('egm96-5.pgm').height(-20.131, 21.975) kind 2: 16.529\n    test 91 GeoidKarney('egm96-5.pgm').height(75.649, 99.921) kind 2: -8.230  FAILED, KNOWN, expected -8.229\n    test 92 GeoidKarney('egm96-5.pgm').height(-0.385, -23.788) kind 2: 9.828  FAILED, KNOWN, expected 9.830\n    test 93 GeoidKarney('egm96-5.pgm').height(-51.56, -50.327) kind 2: 6.213  FAILED, KNOWN, expected 6.215\n    test 94 GeoidKarney('egm96-5.pgm').height(-43.129, -167.271) kind 2: -2.957  FAILED, KNOWN, expected -2.960\n    test 95 GeoidKarney('egm96-5.pgm').height(46.374, 71.948) kind 2: -42.326  FAILED, KNOWN, expected -42.323\n    test 96 GeoidKarney('egm96-5.pgm').height(-22.783, 140.657) kind 2: 38.352  FAILED, KNOWN, expected 38.356\n    test 97 GeoidKarney('egm96-5.pgm').height(-12.056, 122.804) kind 2: 34.242  FAILED, KNOWN, expected 34.259\n    test 98 GeoidKarney('egm96-5.pgm').height(30.127, 94.738) kind 2: -37.390  FAILED, KNOWN, expected -37.397\n    test 99 GeoidKarney('egm96-5.pgm').height(46.296, -174.479) kind 2: -2.015  FAILED, KNOWN, expected -2.016\n    test 100 GeoidKarney('egm96-5.pgm').height(34.99, 15.052) kind 2: 33.915  FAILED, KNOWN, expected 33.912\n    test 101 GeoidKarney('egm96-5.pgm').height(-51.287, 90.565) kind 2: 12.676\n    test 102 GeoidKarney('egm96-5.pgm').height(34.217, 141.302) kind 2: 15.729  FAILED, KNOWN, expected 15.692\n    test 103 GeoidKarney('egm96-5.pgm').height(-40.423, -142.787) kind 2: -11.117\n    test 104 GeoidKarney('egm96-5.pgm').height(-17.854, -170.216) kind 2: 27.443  FAILED, KNOWN, expected 27.437\n    test 105 GeoidKarney('egm96-5.pgm').height(47.803, 112.701) kind 2: -23.893  FAILED, KNOWN, expected -23.894\n    test 106 GeoidKarney('egm96-5.pgm').height(-23.276, 133.454) kind 2: 18.749  FAILED, KNOWN, expected 18.766\n    test 107 GeoidKarney('egm96-5.pgm').height(-26.884, -36.571) kind 2: -7.452\n    test 108 GeoidKarney('egm96-5.pgm').height(-37.106, 31.128) kind 2: 30.141  FAILED, KNOWN, expected 30.143\n    test 109 GeoidKarney('egm96-5.pgm').height(-75.363, -173.674) kind 2: -61.176  FAILED, KNOWN, expected -61.172\n    test 110 GeoidKarney('egm96-5.pgm').height(-18.305, 69.016) kind 2: -24.892  FAILED, KNOWN, expected -24.890\n    test 111 GeoidKarney('egm96-5.pgm').height(39.527, 23.58) kind 2: 39.523  FAILED, KNOWN, expected 39.519\n    test 112 GeoidKarney('egm96-5.pgm').height(68.903, 30.97) kind 2: 19.417  FAILED, KNOWN, expected 19.419\n    test 113 GeoidKarney('egm96-5.pgm').height(53.937, 168.318) kind 2: 2.069\n    test 114 GeoidKarney('egm96-5.pgm').height(-38.6, 64.812) kind 2: 25.048\n    test 115 GeoidKarney('egm96-5.pgm').height(-41.396, -69.739) kind 2: 22.547\n    test 116 GeoidKarney('egm96-5.pgm').height(50.158, 72.319) kind 2: -34.359\n    test 117 GeoidKarney('egm96-5.pgm').height(27.692, 176.153) kind 2: -5.454  FAILED, KNOWN, expected -5.453\n    test 118 GeoidKarney('egm96-5.pgm').height(-48.419, 170.454) kind 2: -6.802  FAILED, KNOWN, expected -6.804\n    test 119 GeoidKarney('egm96-5.pgm').height(-65.346, -124.976) kind 2: -35.053  FAILED, KNOWN, expected -35.054\n    test 120 GeoidKarney('egm96-5.pgm').height(-51.873, 167.266) kind 2: -15.417  FAILED, KNOWN, expected -15.418\n    test 121 GeoidKarney('egm96-5.pgm').height(-7.263, 84.308) kind 2: -79.556  FAILED, KNOWN, expected -79.557\n    test 122 GeoidKarney('egm96-5.pgm').height(-1.461, -105.458) kind 2: -16.894\n    test 123 GeoidKarney('egm96-5.pgm').height(7.684, 161.873) kind 2: 36.213  FAILED, KNOWN, expected 36.215\n    test 124 GeoidKarney('egm96-5.pgm').height(-31.475, -158.52) kind 2: 3.524  FAILED, KNOWN, expected 3.523\n    test 125 GeoidKarney('egm96-5.pgm').height(-36.187, 62.917) kind 2: 23.796  FAILED, KNOWN, expected 23.797\n    test 126 GeoidKarney('egm96-5.pgm').height(16.003, 141.687) kind 2: 51.587  FAILED, KNOWN, expected 51.586\n    test 127 GeoidKarney('egm96-5.pgm').height(30.182, 86.261) kind 2: -30.131\n    test 128 GeoidKarney('egm96-5.pgm').height(-77.304, 159.498) kind 2: -51.853  FAILED, KNOWN, expected -51.848\n    test 129 GeoidKarney('egm96-5.pgm').height(39.536, 139.795) kind 2: 37.200  FAILED, KNOWN, expected 37.192\n    test 130 GeoidKarney('egm96-5.pgm').height(8.569, 134.618) kind 2: 63.583  FAILED, KNOWN, expected 63.597\n    test 131 GeoidKarney('egm96-5.pgm').height(14.473, 90.596) kind 2: -62.636\n    test 132 GeoidKarney('egm96-5.pgm').height(-13.138, -99.589) kind 2: -8.717\n    test 133 GeoidKarney('egm96-5.pgm').height(34.212, -26.307) kind 2: 40.649  FAILED, KNOWN, expected 40.645\n    test 134 GeoidKarney('egm96-5.pgm').height(21.89, 76.371) kind 2: -60.730  FAILED, KNOWN, expected -60.729\n    test 135 GeoidKarney('egm96-5.pgm').height(29.793, 120.487) kind 2: 8.784  FAILED, KNOWN, expected 8.783\n    test 136 GeoidKarney('egm96-5.pgm').height(15.724, 122.714) kind 2: 31.569  FAILED, KNOWN, expected 31.523\n    test 137 GeoidKarney('egm96-5.pgm').height(-66.208, -78.499) kind 2: -6.249  FAILED, KNOWN, expected -6.250\n    test 138 GeoidKarney('egm96-5.pgm').height(-39.507, 55.809) kind 2: 32.599\n    test 139 GeoidKarney('egm96-5.pgm').height(28.159, 51.476) kind 2: -24.531  FAILED, KNOWN, expected -24.536\n    test 140 GeoidKarney('egm96-5.pgm').height(-36.207, 120.205) kind 2: -38.863  FAILED, KNOWN, expected -38.869\n    test 141 GeoidKarney('egm96-5.pgm').height(30.575, -99.998) kind 2: -23.214  FAILED, KNOWN, expected -23.213\n    test 142 GeoidKarney('egm96-5.pgm').height(-16.993, 37.136) kind 2: -11.824\n    test 143 GeoidKarney('egm96-5.pgm').height(-11.477, 12.039) kind 2: 16.712  FAILED, KNOWN, expected 16.709\n    test 144 GeoidKarney('egm96-5.pgm').height(30.428, -144.765) kind 2: -22.380  FAILED, KNOWN, expected -22.379\n    test 145 GeoidKarney('egm96-5.pgm').height(-17.44, -92.424) kind 2: -4.941\n    test 146 GeoidKarney('egm96-5.pgm').height(40.203, 143.43) kind 2: 19.382  FAILED, KNOWN, expected 19.394\n    test 147 GeoidKarney('egm96-5.pgm').height(-37.098, -106.574) kind 2: -9.381\n    test 148 GeoidKarney('egm96-5.pgm').height(54.62, -68.413) kind 2: -23.319\n    test 149 GeoidKarney('egm96-5.pgm').height(-31.633, 148.182) kind 2: 24.470  FAILED, KNOWN, expected 24.468\n    test 150 GeoidKarney('egm96-5.pgm').height(-56.07, -141.407) kind 2: -21.762  FAILED, KNOWN, expected -21.761\n    test 151 GeoidKarney('egm96-5.pgm').height(-8.195, -52.691) kind 2: -18.798\n    test 152 GeoidKarney('egm96-5.pgm').height(17.851, 24.749) kind 2: 12.611  FAILED, KNOWN, expected 12.612\n    test 153 GeoidKarney('egm96-5.pgm').height(0.349, -108.333) kind 2: -19.708  FAILED, KNOWN, expected -19.706\n    test 154 GeoidKarney('egm96-5.pgm').height(15.038, 126.191) kind 2: 45.794  FAILED, KNOWN, expected 45.792\n    test 155 GeoidKarney('egm96-5.pgm').height(-21.111, -123.696) kind 2: -8.408  FAILED, KNOWN, expected -8.406\n    test 156 GeoidKarney('egm96-5.pgm').height(30.947, 173.002) kind 2: -8.366  FAILED, KNOWN, expected -8.367\n    test 157 GeoidKarney('egm96-5.pgm').height(-10.698, -144.091) kind 2: -2.026  FAILED, KNOWN, expected -2.025\n    test 158 GeoidKarney('egm96-5.pgm').height(-29.412, 124.753) kind 2: -16.569\n    test 159 GeoidKarney('egm96-5.pgm').height(38.224, -137.189) kind 2: -35.434  FAILED, KNOWN, expected -35.435\n    test 160 GeoidKarney('egm96-5.pgm').height(36.064, -132.409) kind 2: -39.009\n    test 161 GeoidKarney('egm96-5.pgm').height(29.975, 178.076) kind 2: -6.921\n    test 162 GeoidKarney('egm96-5.pgm').height(-21.346, 169.26) kind 2: 50.811  FAILED, KNOWN, expected 50.795\n    test 163 GeoidKarney('egm96-5.pgm').height(49.282, -152.934) kind 2: 1.069  FAILED, KNOWN, expected 1.070\n    test 164 GeoidKarney('egm96-5.pgm').height(16.349, -99.962) kind 2: -14.198  FAILED, KNOWN, expected -14.214\n    test 165 GeoidKarney('egm96-5.pgm').height(-14.293, -167.34) kind 2: 17.603  FAILED, KNOWN, expected 17.600\n    test 166 GeoidKarney('egm96-5.pgm').height(47.166, -38.523) kind 2: 44.803  FAILED, KNOWN, expected 44.804\n    test 167 GeoidKarney('egm96-5.pgm').height(-58.911, 114.347) kind 2: -17.924  FAILED, KNOWN, expected -17.922\n    test 168 GeoidKarney('egm96-5.pgm').height(-9.055, 111.294) kind 2: 10.681  FAILED, KNOWN, expected 10.662\n    test 169 GeoidKarney('egm96-5.pgm').height(18.391, 29.692) kind 2: 7.672  FAILED, KNOWN, expected 7.670\n    test 170 GeoidKarney('egm96-5.pgm').height(-15.074, 22.153) kind 2: 8.622  FAILED, KNOWN, expected 8.623\n    test 171 GeoidKarney('egm96-5.pgm').height(-4.235, 62.001) kind 2: -60.723\n    test 172 GeoidKarney('egm96-5.pgm').height(15.171, -86.583) kind 2: 3.818\n    test 173 GeoidKarney('egm96-5.pgm').height(79.254, 112.116) kind 2: -1.870  FAILED, KNOWN, expected -1.871\n    test 174 GeoidKarney('egm96-5.pgm').height(15.947, 156.093) kind 2: 30.642  FAILED, KNOWN, expected 30.633\n    test 175 GeoidKarney('egm96-5.pgm').height(68.371, -177.382) kind 2: 2.801\n    test 176 GeoidKarney('egm96-5.pgm').height(-41.931, -72.093) kind 2: 19.858  FAILED, KNOWN, expected 19.859\n    test 177 GeoidKarney('egm96-5.pgm').height(-1.193, -143.133) kind 2: 5.347  FAILED, KNOWN, expected 5.348\n    test 178 GeoidKarney('egm96-5.pgm').height(-37.006, 154.513) kind 2: 9.940  FAILED, KNOWN, expected 9.941\n    test 179 GeoidKarney('egm96-5.pgm').height(-22.148, 9.938) kind 2: 22.322  FAILED, KNOWN, expected 22.321\n    test 180 GeoidKarney('egm96-5.pgm').height(24.329, 109.044) kind 2: -24.136  FAILED, KNOWN, expected -24.135\n    test 181 GeoidKarney('egm96-5.pgm').height(-54.878, 114.691) kind 2: -17.680  FAILED, KNOWN, expected -17.679\n    test 182 GeoidKarney('egm96-5.pgm').height(45.601, -80.458) kind 2: -37.149  FAILED, KNOWN, expected -37.150\n    test 183 GeoidKarney('egm96-5.pgm').height(2.372, 58.974) kind 2: -61.158\n    test 184 GeoidKarney('egm96-5.pgm').height(15.937, 165.854) kind 2: 20.600  FAILED, KNOWN, expected 20.602\n    test 185 GeoidKarney('egm96-5.pgm').height(4.889, -24.213) kind 2: 13.054  FAILED, KNOWN, expected 13.055\n    test 186 GeoidKarney('egm96-5.pgm').height(-11.392, 179.558) kind 2: 40.138  FAILED, KNOWN, expected 40.132\n    test 187 GeoidKarney('egm96-5.pgm').height(58.246, 4.862) kind 2: 43.263\n    test 188 GeoidKarney('egm96-5.pgm').height(34.302, -109.109) kind 2: -23.129  FAILED, KNOWN, expected -23.126\n    test 189 GeoidKarney('egm96-5.pgm').height(-58.196, 117.306) kind 2: -20.677  FAILED, KNOWN, expected -20.678\n    test 190 GeoidKarney('egm96-5.pgm').height(44.5, 173.769) kind 2: -8.531  FAILED, KNOWN, expected -8.529\n    test 191 GeoidKarney('egm96-5.pgm').height(-28.863, -139.775) kind 2: -8.669  FAILED, KNOWN, expected -8.666\n    test 192 GeoidKarney('egm96-5.pgm').height(19.507, -96.099) kind 2: -12.798  FAILED, KNOWN, expected -12.796\n    test 193 GeoidKarney('egm96-5.pgm').height(-42.488, -73.907) kind 2: 15.770  FAILED, KNOWN, expected 15.773\n    test 194 GeoidKarney('egm96-5.pgm').height(46.138, -141.429) kind 2: -19.955  FAILED, KNOWN, expected -19.954\n    test 195 GeoidKarney('egm96-5.pgm').height(60.507, 93.743) kind 2: -31.479  FAILED, KNOWN, expected -31.480\n    test 196 GeoidKarney('egm96-5.pgm').height(26.219, -145.434) kind 2: -17.428  FAILED, KNOWN, expected -17.429\n    test 197 GeoidKarney('egm96-5.pgm').height(-28.687, 3.37) kind 2: 24.037\n    test 198 GeoidKarney('egm96-5.pgm').height(-15.008, 117.45) kind 2: 4.522  FAILED, KNOWN, expected 4.520\n    test 199 GeoidKarney('egm96-5.pgm').height(40.71, 144.095) kind 2: 11.403  FAILED, KNOWN, expected 11.394\n    test 200 GeoidKarney('egm96-5.pgm').height(20.823, -173.611) kind 2: 5.676  FAILED, KNOWN, expected 5.679\n    test 201 GeoidKarney('egm96-5.pgm').height(16.776, -3.009) kind 2: 28.705  FAILED, KNOWN, expected 28.707\n    test 202 GeoidKarney('egm96-5.pgm').height(41.0, -95.0) kind 2: -30.261  FAILED, KNOWN, expected -30.262\n    test 203 GeoidKarney('egm96-5.pgm').height(49.0, -120.5) kind 2: -15.984\n    test 204 GeoidKarney('egm96-5.pgm').height(49.0, -103.5) kind 2: -18.636  FAILED, KNOWN, expected -18.635\n    test 205 GeoidKarney('egm96-5.pgm').height(49.0, -86.5) kind 2: -37.749\n    test 206 GeoidKarney('egm96-5.pgm').height(49.0, -69.5) kind 2: -26.691\n    test 207 GeoidKarney('egm96-5.pgm').height(33.0, -120.5) kind 2: -39.561\n    test 208 GeoidKarney('egm96-5.pgm').height(33.0, -103.5) kind 2: -22.563  FAILED, KNOWN, expected -22.562\n    test 209 GeoidKarney('egm96-5.pgm').height(33.0, -86.5) kind 2: -30.012\n    test 210 GeoidKarney('egm96-5.pgm').height(33.0, -69.5) kind 2: -48.039\n\n    test 211 GeoidKarney('egm96-5.pgm').height() kind 2, hits 0, eps max (in 0 FAILED): 0.046496\n    test 212 GeoidKarney('egm96-5.pgm').height() kind 2, hits 0, eps mean (of 210 total): 0.002766\n    test 213 GeoidKarney('egm96-5.pgm').height() kind 2, hits 0, eps stdev (of 210 total): 0.005116\n    test 214 GeoidKarney('egm96-5.pgm').highest(): -8.167, 147.25, 85.422\n    test 215 GeoidKarney('egm96-5.pgm').lowerleft(): -90.0, -180.0, -29.535\n    test 216 GeoidKarney('egm96-5.pgm').lowerright(): -90.0, 180.0, -29.535\n    test 217 GeoidKarney('egm96-5.pgm').lowest(): 4.667, 78.833, -107.043\n    test 218 GeoidKarney('egm96-5.pgm').upperleft(): 90.0, -180.0, 13.605\n    test 219 GeoidKarney('egm96-5.pgm').upperright(): 90.0, 180.0, 13.605\n    test 220 GeoidKarney('egm96-5.pgm').dtype: (\"'ushort'\",)\n    test 221 GeoidKarney('egm96-5.pgm').knots: ('9335520',)\n    test 222 GeoidKarney('egm96-5.pgm').mean: ('-1.317',)\n    test 223 GeoidKarney('egm96-5.pgm').nBytes: ('None',)\n    test 224 GeoidKarney('egm96-5.pgm').smooth: ('None',)\n    test 225 GeoidKarney('egm96-5.pgm').stdev: ('29.244',)\n    test 226 GeoidKarney('egm96-5.pgm')._g2ll2(180, 360): (180, 0.0)\n    test 227 GeoidKarney('egm96-5.pgm')._ll2g2(180, 360): (180, 360)\n    test 228 GeoidKarney('egm96-5.pgm')._swne: (-10.0, -100.0, 10.0, 100.0)\n    test 229 GeoidKarney('egm96-5.pgm')._swne: (-10.0, -100.0, 10.0, 100.0)\n    test 230 GeoidKarney('egm96-5.pgm').toStr: GeoidKarney('egm96-5.pgm'): lowerleft(-90.0, -180.0, -29.535), upperright(90.0, 180.0, 13.605), center(0.0, 0.0, 17.163), highest(-8.167, 147.25, 85.422), lowest(4.667, 78.833, -107.043)\n\n    test 231 closed: True\n    test 232 copy(<class 'type'>): (<class 'pygeodesy.geoids.GeoidKarney'>, True)\n    test 233 GeoidKarney.copy(): (<class 'pygeodesy.geoids.GeoidKarney'>, True)\n    test 234 GeoidKarney('egm96-5.pgm').height(-76.981, 34.17) kind 3: 11.424  FAILED, KNOWN, expected 11.423\n    test 235 GeoidKarney('egm96-5.pgm').height(79.695, 88.806) kind 3: 0.892\n    test 236 GeoidKarney('egm96-5.pgm').height(-15.245, 168.748) kind 3: 65.225  FAILED, KNOWN, expected 65.226\n    test 237 GeoidKarney('egm96-5.pgm').height(-19.379, 15.855) kind 3: 24.464  FAILED, KNOWN, expected 24.463\n    test 238 GeoidKarney('egm96-5.pgm').height(43.378, -130.552) kind 3: -29.682\n    test 239 GeoidKarney('egm96-5.pgm').height(-16.075, 21.795) kind 3: 10.503\n    test 240 GeoidKarney('egm96-5.pgm').height(-11.256, -73.75) kind 3: 29.325  FAILED, KNOWN, expected 29.326\n    test 241 GeoidKarney('egm96-5.pgm').height(69.017, -15.921) kind 3: 60.423  FAILED, KNOWN, expected 60.424\n    test 242 GeoidKarney('egm96-5.pgm').height(2.221, 139.739) kind 3: 68.996\n    test 243 GeoidKarney('egm96-5.pgm').height(-9.097, 119.142) kind 3: 36.287\n    test 244 GeoidKarney('egm96-5.pgm').height(-28.524, -22.192) kind 3: 6.626\n    test 245 GeoidKarney('egm96-5.pgm').height(12.272, -136.424) kind 3: -20.861  FAILED, KNOWN, expected -20.860\n    test 246 GeoidKarney('egm96-5.pgm').height(-15.203, -85.604) kind 3: -3.267\n    test 247 GeoidKarney('egm96-5.pgm').height(-63.736, -77.17) kind 3: -1.295  FAILED, KNOWN, expected -1.294\n    test 248 GeoidKarney('egm96-5.pgm').height(-48.771, -90.102) kind 3: -2.323  FAILED, KNOWN, expected -2.322\n    test 249 GeoidKarney('egm96-5.pgm').height(-0.179, -126.368) kind 3: -17.555  FAILED, KNOWN, expected -17.557\n    test 250 GeoidKarney('egm96-5.pgm').height(1.586, -128.887) kind 3: -16.594\n    test 251 GeoidKarney('egm96-5.pgm').height(-48.781, -2.684) kind 3: 24.454  FAILED, KNOWN, expected 24.453\n    test 252 GeoidKarney('egm96-5.pgm').height(-49.092, 136.862) kind 3: -18.592\n    test 253 GeoidKarney('egm96-5.pgm').height(47.732, 17.552) kind 3: 44.048  FAILED, KNOWN, expected 44.049\n    test 254 GeoidKarney('egm96-5.pgm').height(-49.11, 85.706) kind 3: 18.582  FAILED, KNOWN, expected 18.581\n    test 255 GeoidKarney('egm96-5.pgm').height(-49.162, 40.321) kind 3: 44.290  FAILED, KNOWN, expected 44.289\n    test 256 GeoidKarney('egm96-5.pgm').height(3.498, 158.118) kind 3: 49.817  FAILED, KNOWN, expected 49.816\n    test 257 GeoidKarney('egm96-5.pgm').height(-35.616, 122.648) kind 3: -36.114\n    test 258 GeoidKarney('egm96-5.pgm').height(56.598, -96.114) kind 3: -41.047  FAILED, KNOWN, expected -41.048\n    test 259 GeoidKarney('egm96-5.pgm').height(-31.85, 149.121) kind 3: 26.456\n    test 260 GeoidKarney('egm96-5.pgm').height(-26.569, -177.792) kind 3: 49.317\n    test 261 GeoidKarney('egm96-5.pgm').height(76.735, -65.753) kind 3: 20.714\n    test 262 GeoidKarney('egm96-5.pgm').height(-21.404, -122.268) kind 3: -7.362\n    test 263 GeoidKarney('egm96-5.pgm').height(-77.133, -65.474) kind 3: -16.491  FAILED, KNOWN, expected -16.492\n    test 264 GeoidKarney('egm96-5.pgm').height(-58.812, 2.276) kind 3: 18.110\n    test 265 GeoidKarney('egm96-5.pgm').height(4.415, 155.683) kind 3: 51.858\n    test 266 GeoidKarney('egm96-5.pgm').height(-28.146, 107.081) kind 3: -38.979  FAILED, KNOWN, expected -38.981\n    test 267 GeoidKarney('egm96-5.pgm').height(-10.551, -126.69) kind 3: -9.913\n    test 268 GeoidKarney('egm96-5.pgm').height(-25.444, -103.337) kind 3: -2.828\n    test 269 GeoidKarney('egm96-5.pgm').height(24.436, 46.159) kind 3: -5.718  FAILED, KNOWN, expected -5.719\n    test 270 GeoidKarney('egm96-5.pgm').height(-72.889, 37.107) kind 3: 22.427  FAILED, KNOWN, expected 22.426\n    test 271 GeoidKarney('egm96-5.pgm').height(-19.629, 13.245) kind 3: 24.545\n    test 272 GeoidKarney('egm96-5.pgm').height(-7.602, 171.265) kind 3: 40.651  FAILED, KNOWN, expected 40.652\n    test 273 GeoidKarney('egm96-5.pgm').height(-45.364, -1.876) kind 3: 22.383\n    test 274 GeoidKarney('egm96-5.pgm').height(-7.292, -69.18) kind 3: 22.183  FAILED, KNOWN, expected 22.182\n    test 275 GeoidKarney('egm96-5.pgm').height(-31.566, -166.689) kind 3: 14.929  FAILED, KNOWN, expected 14.930\n    test 276 GeoidKarney('egm96-5.pgm').height(-82.751, -162.085) kind 3: -47.094\n    test 277 GeoidKarney('egm96-5.pgm').height(-40.7, 99.466) kind 3: -18.421\n    test 278 GeoidKarney('egm96-5.pgm').height(48.676, 39.69) kind 3: 10.055\n    test 279 GeoidKarney('egm96-5.pgm').height(74.817, -78.404) kind 3: 5.786\n    test 280 GeoidKarney('egm96-5.pgm').height(-81.032, -63.865) kind 3: -22.838\n    test 281 GeoidKarney('egm96-5.pgm').height(74.022, 9.432) kind 3: 42.989\n    test 282 GeoidKarney('egm96-5.pgm').height(-75.071, 17.579) kind 3: 15.352  FAILED, KNOWN, expected 15.353\n    test 283 GeoidKarney('egm96-5.pgm').height(-12.546, -54.851) kind 3: -6.338  FAILED, KNOWN, expected -6.337\n    test 284 GeoidKarney('egm96-5.pgm').height(-13.621, 42.408) kind 3: -25.554  FAILED, KNOWN, expected -25.555\n    test 285 GeoidKarney('egm96-5.pgm').height(-2.266, -91.951) kind 3: -9.922  FAILED, KNOWN, expected -9.923\n    test 286 GeoidKarney('egm96-5.pgm').height(-18.672, 42.547) kind 3: -10.853  FAILED, KNOWN, expected -10.852\n    test 287 GeoidKarney('egm96-5.pgm').height(-41.44, 157.413) kind 3: -0.135\n    test 288 GeoidKarney('egm96-5.pgm').height(53.686, -79.375) kind 3: -43.809\n    test 289 GeoidKarney('egm96-5.pgm').height(39.26, -30.351) kind 3: 57.150\n    test 290 GeoidKarney('egm96-5.pgm').height(-51.699, -141.493) kind 3: -17.656  FAILED, KNOWN, expected -17.657\n    test 291 GeoidKarney('egm96-5.pgm').height(36.585, 4.515) kind 3: 46.359  FAILED, KNOWN, expected 46.358\n    test 292 GeoidKarney('egm96-5.pgm').height(39.642, -54.659) kind 3: -14.404\n    test 293 GeoidKarney('egm96-5.pgm').height(59.761, 166.567) kind 3: 11.242\n    test 294 GeoidKarney('egm96-5.pgm').height(51.83, 13.357) kind 3: 42.237\n    test 295 GeoidKarney('egm96-5.pgm').height(-36.531, -175.431) kind 3: 22.147\n    test 296 GeoidKarney('egm96-5.pgm').height(-37.08, 125.264) kind 3: -33.396\n    test 297 GeoidKarney('egm96-5.pgm').height(-68.651, 92.732) kind 3: 7.961\n    test 298 GeoidKarney('egm96-5.pgm').height(35.087, 45.336) kind 3: 7.228  FAILED, KNOWN, expected 7.229\n    test 299 GeoidKarney('egm96-5.pgm').height(-61.356, -169.379) kind 3: -44.290  FAILED, KNOWN, expected -44.292\n    test 300 GeoidKarney('egm96-5.pgm').height(-36.955, 179.12) kind 3: 21.874  FAILED, KNOWN, expected 21.875\n    test 301 GeoidKarney('egm96-5.pgm').height(10.248, -6.714) kind 3: 28.933\n    test 302 GeoidKarney('egm96-5.pgm').height(36.868, 84.602) kind 3: -41.238\n    test 303 GeoidKarney('egm96-5.pgm').height(28.637, 88.933) kind 3: -31.331\n    test 304 GeoidKarney('egm96-5.pgm').height(54.811, -99.968) kind 3: -32.702\n    test 305 GeoidKarney('egm96-5.pgm').height(7.611, 145.911) kind 3: 60.117\n    test 306 GeoidKarney('egm96-5.pgm').height(59.412, 170.102) kind 3: 6.457\n    test 307 GeoidKarney('egm96-5.pgm').height(-61.469, 126.144) kind 3: -31.961\n    test 308 GeoidKarney('egm96-5.pgm').height(18.514, -137.083) kind 3: -26.572  FAILED, KNOWN, expected -26.571\n    test 309 GeoidKarney('egm96-5.pgm').height(7.854, -126.799) kind 3: -29.761  FAILED, KNOWN, expected -29.760\n    test 310 GeoidKarney('egm96-5.pgm').height(47.489, 134.183) kind 3: 21.981  FAILED, KNOWN, expected 21.980\n    test 311 GeoidKarney('egm96-5.pgm').height(-34.144, -11.922) kind 3: 16.849\n    test 312 GeoidKarney('egm96-5.pgm').height(-58.389, 117.458) kind 3: -20.923\n    test 313 GeoidKarney('egm96-5.pgm').height(9.773, 95.846) kind 3: -42.749\n    test 314 GeoidKarney('egm96-5.pgm').height(-53.12, 136.994) kind 3: -21.840  FAILED, KNOWN, expected -21.841\n    test 315 GeoidKarney('egm96-5.pgm').height(-50.35, 0.075) kind 3: 25.481  FAILED, KNOWN, expected 25.482\n    test 316 GeoidKarney('egm96-5.pgm').height(31.438, -170.879) kind 3: -8.846  FAILED, KNOWN, expected -8.847\n    test 317 GeoidKarney('egm96-5.pgm').height(37.541, -153.024) kind 3: -19.603  FAILED, KNOWN, expected -19.604\n    test 318 GeoidKarney('egm96-5.pgm').height(27.586, 2.444) kind 3: 25.668\n    test 319 GeoidKarney('egm96-5.pgm').height(-26.139, -106.201) kind 3: -3.772\n    test 320 GeoidKarney('egm96-5.pgm').height(-33.426, -14.84) kind 3: 17.747  FAILED, KNOWN, expected 17.748\n    test 321 GeoidKarney('egm96-5.pgm').height(39.586, -153.019) kind 3: -17.838  FAILED, KNOWN, expected -17.839\n    test 322 GeoidKarney('egm96-5.pgm').height(-60.79, -2.578) kind 3: 14.292\n    test 323 GeoidKarney('egm96-5.pgm').height(-20.131, 21.975) kind 3: 16.529\n    test 324 GeoidKarney('egm96-5.pgm').height(75.649, 99.921) kind 3: -8.230  FAILED, KNOWN, expected -8.229\n    test 325 GeoidKarney('egm96-5.pgm').height(-0.385, -23.788) kind 3: 9.831  FAILED, KNOWN, expected 9.830\n    test 326 GeoidKarney('egm96-5.pgm').height(-51.56, -50.327) kind 3: 6.215\n    test 327 GeoidKarney('egm96-5.pgm').height(-43.129, -167.271) kind 3: -2.960\n    test 328 GeoidKarney('egm96-5.pgm').height(46.374, 71.948) kind 3: -42.323\n    test 329 GeoidKarney('egm96-5.pgm').height(-22.783, 140.657) kind 3: 38.356\n    test 330 GeoidKarney('egm96-5.pgm').height(-12.056, 122.804) kind 3: 34.259\n    test 331 GeoidKarney('egm96-5.pgm').height(30.127, 94.738) kind 3: -37.397\n    test 332 GeoidKarney('egm96-5.pgm').height(46.296, -174.479) kind 3: -2.017  FAILED, KNOWN, expected -2.016\n    test 333 GeoidKarney('egm96-5.pgm').height(34.99, 15.052) kind 3: 33.912\n    test 334 GeoidKarney('egm96-5.pgm').height(-51.287, 90.565) kind 3: 12.676\n    test 335 GeoidKarney('egm96-5.pgm').height(34.217, 141.302) kind 3: 15.692\n    test 336 GeoidKarney('egm96-5.pgm').height(-40.423, -142.787) kind 3: -11.117\n    test 337 GeoidKarney('egm96-5.pgm').height(-17.854, -170.216) kind 3: 27.437\n    test 338 GeoidKarney('egm96-5.pgm').height(47.803, 112.701) kind 3: -23.894\n    test 339 GeoidKarney('egm96-5.pgm').height(-23.276, 133.454) kind 3: 18.765  FAILED, KNOWN, expected 18.766\n    test 340 GeoidKarney('egm96-5.pgm').height(-26.884, -36.571) kind 3: -7.452\n    test 341 GeoidKarney('egm96-5.pgm').height(-37.106, 31.128) kind 3: 30.143\n    test 342 GeoidKarney('egm96-5.pgm').height(-75.363, -173.674) kind 3: -61.172\n    test 343 GeoidKarney('egm96-5.pgm').height(-18.305, 69.016) kind 3: -24.890\n    test 344 GeoidKarney('egm96-5.pgm').height(39.527, 23.58) kind 3: 39.519\n    test 345 GeoidKarney('egm96-5.pgm').height(68.903, 30.97) kind 3: 19.420  FAILED, KNOWN, expected 19.419\n    test 346 GeoidKarney('egm96-5.pgm').height(53.937, 168.318) kind 3: 2.067  FAILED, KNOWN, expected 2.069\n    test 347 GeoidKarney('egm96-5.pgm').height(-38.6, 64.812) kind 3: 25.049  FAILED, KNOWN, expected 25.048\n    test 348 GeoidKarney('egm96-5.pgm').height(-41.396, -69.739) kind 3: 22.546  FAILED, KNOWN, expected 22.547\n    test 349 GeoidKarney('egm96-5.pgm').height(50.158, 72.319) kind 3: -34.358  FAILED, KNOWN, expected -34.359\n    test 350 GeoidKarney('egm96-5.pgm').height(27.692, 176.153) kind 3: -5.454  FAILED, KNOWN, expected -5.453\n    test 351 GeoidKarney('egm96-5.pgm').height(-48.419, 170.454) kind 3: -6.804\n    test 352 GeoidKarney('egm96-5.pgm').height(-65.346, -124.976) kind 3: -35.053  FAILED, KNOWN, expected -35.054\n    test 353 GeoidKarney('egm96-5.pgm').height(-51.873, 167.266) kind 3: -15.417  FAILED, KNOWN, expected -15.418\n    test 354 GeoidKarney('egm96-5.pgm').height(-7.263, 84.308) kind 3: -79.557\n    test 355 GeoidKarney('egm96-5.pgm').height(-1.461, -105.458) kind 3: -16.894\n    test 356 GeoidKarney('egm96-5.pgm').height(7.684, 161.873) kind 3: 36.215\n    test 357 GeoidKarney('egm96-5.pgm').height(-31.475, -158.52) kind 3: 3.523\n    test 358 GeoidKarney('egm96-5.pgm').height(-36.187, 62.917) kind 3: 23.797\n    test 359 GeoidKarney('egm96-5.pgm').height(16.003, 141.687) kind 3: 51.587  FAILED, KNOWN, expected 51.586\n    test 360 GeoidKarney('egm96-5.pgm').height(30.182, 86.261) kind 3: -30.131\n    test 361 GeoidKarney('egm96-5.pgm').height(-77.304, 159.498) kind 3: -51.849  FAILED, KNOWN, expected -51.848\n    test 362 GeoidKarney('egm96-5.pgm').height(39.536, 139.795) kind 3: 37.191  FAILED, KNOWN, expected 37.192\n    test 363 GeoidKarney('egm96-5.pgm').height(8.569, 134.618) kind 3: 63.596  FAILED, KNOWN, expected 63.597\n    test 364 GeoidKarney('egm96-5.pgm').height(14.473, 90.596) kind 3: -62.636\n    test 365 GeoidKarney('egm96-5.pgm').height(-13.138, -99.589) kind 3: -8.718  FAILED, KNOWN, expected -8.717\n    test 366 GeoidKarney('egm96-5.pgm').height(34.212, -26.307) kind 3: 40.645\n    test 367 GeoidKarney('egm96-5.pgm').height(21.89, 76.371) kind 3: -60.729\n    test 368 GeoidKarney('egm96-5.pgm').height(29.793, 120.487) kind 3: 8.784  FAILED, KNOWN, expected 8.783\n    test 369 GeoidKarney('egm96-5.pgm').height(15.724, 122.714) kind 3: 31.523\n    test 370 GeoidKarney('egm96-5.pgm').height(-66.208, -78.499) kind 3: -6.251  FAILED, KNOWN, expected -6.250\n    test 371 GeoidKarney('egm96-5.pgm').height(-39.507, 55.809) kind 3: 32.598  FAILED, KNOWN, expected 32.599\n    test 372 GeoidKarney('egm96-5.pgm').height(28.159, 51.476) kind 3: -24.536\n    test 373 GeoidKarney('egm96-5.pgm').height(-36.207, 120.205) kind 3: -38.869\n    test 374 GeoidKarney('egm96-5.pgm').height(30.575, -99.998) kind 3: -23.212  FAILED, KNOWN, expected -23.213\n    test 375 GeoidKarney('egm96-5.pgm').height(-16.993, 37.136) kind 3: -11.824\n    test 376 GeoidKarney('egm96-5.pgm').height(-11.477, 12.039) kind 3: 16.710  FAILED, KNOWN, expected 16.709\n    test 377 GeoidKarney('egm96-5.pgm').height(30.428, -144.765) kind 3: -22.378  FAILED, KNOWN, expected -22.379\n    test 378 GeoidKarney('egm96-5.pgm').height(-17.44, -92.424) kind 3: -4.941\n    test 379 GeoidKarney('egm96-5.pgm').height(40.203, 143.43) kind 3: 19.394\n    test 380 GeoidKarney('egm96-5.pgm').height(-37.098, -106.574) kind 3: -9.381\n    test 381 GeoidKarney('egm96-5.pgm').height(54.62, -68.413) kind 3: -23.318  FAILED, KNOWN, expected -23.319\n    test 382 GeoidKarney('egm96-5.pgm').height(-31.633, 148.182) kind 3: 24.467  FAILED, KNOWN, expected 24.468\n    test 383 GeoidKarney('egm96-5.pgm').height(-56.07, -141.407) kind 3: -21.761\n    test 384 GeoidKarney('egm96-5.pgm').height(-8.195, -52.691) kind 3: -18.798\n    test 385 GeoidKarney('egm96-5.pgm').height(17.851, 24.749) kind 3: 12.612\n    test 386 GeoidKarney('egm96-5.pgm').height(0.349, -108.333) kind 3: -19.708  FAILED, KNOWN, expected -19.706\n    test 387 GeoidKarney('egm96-5.pgm').height(15.038, 126.191) kind 3: 45.792\n    test 388 GeoidKarney('egm96-5.pgm').height(-21.111, -123.696) kind 3: -8.406\n    test 389 GeoidKarney('egm96-5.pgm').height(30.947, 173.002) kind 3: -8.367\n    test 390 GeoidKarney('egm96-5.pgm').height(-10.698, -144.091) kind 3: -2.026  FAILED, KNOWN, expected -2.025\n    test 391 GeoidKarney('egm96-5.pgm').height(-29.412, 124.753) kind 3: -16.567  FAILED, KNOWN, expected -16.569\n    test 392 GeoidKarney('egm96-5.pgm').height(38.224, -137.189) kind 3: -35.435\n    test 393 GeoidKarney('egm96-5.pgm').height(36.064, -132.409) kind 3: -39.008  FAILED, KNOWN, expected -39.009\n    test 394 GeoidKarney('egm96-5.pgm').height(29.975, 178.076) kind 3: -6.921\n    test 395 GeoidKarney('egm96-5.pgm').height(-21.346, 169.26) kind 3: 50.795\n    test 396 GeoidKarney('egm96-5.pgm').height(49.282, -152.934) kind 3: 1.071  FAILED, KNOWN, expected 1.070\n    test 397 GeoidKarney('egm96-5.pgm').height(16.349, -99.962) kind 3: -14.214\n    test 398 GeoidKarney('egm96-5.pgm').height(-14.293, -167.34) kind 3: 17.600\n    test 399 GeoidKarney('egm96-5.pgm').height(47.166, -38.523) kind 3: 44.803  FAILED, KNOWN, expected 44.804\n    test 400 GeoidKarney('egm96-5.pgm').height(-58.911, 114.347) kind 3: -17.923  FAILED, KNOWN, expected -17.922\n    test 401 GeoidKarney('egm96-5.pgm').height(-9.055, 111.294) kind 3: 10.662\n    test 402 GeoidKarney('egm96-5.pgm').height(18.391, 29.692) kind 3: 7.670\n    test 403 GeoidKarney('egm96-5.pgm').height(-15.074, 22.153) kind 3: 8.624  FAILED, KNOWN, expected 8.623\n    test 404 GeoidKarney('egm96-5.pgm').height(-4.235, 62.001) kind 3: -60.722  FAILED, KNOWN, expected -60.723\n    test 405 GeoidKarney('egm96-5.pgm').height(15.171, -86.583) kind 3: 3.820  FAILED, KNOWN, expected 3.818\n    test 406 GeoidKarney('egm96-5.pgm').height(79.254, 112.116) kind 3: -1.871\n    test 407 GeoidKarney('egm96-5.pgm').height(15.947, 156.093) kind 3: 30.634  FAILED, KNOWN, expected 30.633\n    test 408 GeoidKarney('egm96-5.pgm').height(68.371, -177.382) kind 3: 2.800  FAILED, KNOWN, expected 2.801\n    test 409 GeoidKarney('egm96-5.pgm').height(-41.931, -72.093) kind 3: 19.858  FAILED, KNOWN, expected 19.859\n    test 410 GeoidKarney('egm96-5.pgm').height(-1.193, -143.133) kind 3: 5.347  FAILED, KNOWN, expected 5.348\n    test 411 GeoidKarney('egm96-5.pgm').height(-37.006, 154.513) kind 3: 9.941\n    test 412 GeoidKarney('egm96-5.pgm').height(-22.148, 9.938) kind 3: 22.322  FAILED, KNOWN, expected 22.321\n    test 413 GeoidKarney('egm96-5.pgm').height(24.329, 109.044) kind 3: -24.135\n    test 414 GeoidKarney('egm96-5.pgm').height(-54.878, 114.691) kind 3: -17.680  FAILED, KNOWN, expected -17.679\n    test 415 GeoidKarney('egm96-5.pgm').height(45.601, -80.458) kind 3: -37.151  FAILED, KNOWN, expected -37.150\n    test 416 GeoidKarney('egm96-5.pgm').height(2.372, 58.974) kind 3: -61.158\n    test 417 GeoidKarney('egm96-5.pgm').height(15.937, 165.854) kind 3: 20.603  FAILED, KNOWN, expected 20.602\n    test 418 GeoidKarney('egm96-5.pgm').height(4.889, -24.213) kind 3: 13.056  FAILED, KNOWN, expected 13.055\n    test 419 GeoidKarney('egm96-5.pgm').height(-11.392, 179.558) kind 3: 40.133  FAILED, KNOWN, expected 40.132\n    test 420 GeoidKarney('egm96-5.pgm').height(58.246, 4.862) kind 3: 43.263\n    test 421 GeoidKarney('egm96-5.pgm').height(34.302, -109.109) kind 3: -23.126\n    test 422 GeoidKarney('egm96-5.pgm').height(-58.196, 117.306) kind 3: -20.678\n    test 423 GeoidKarney('egm96-5.pgm').height(44.5, 173.769) kind 3: -8.530  FAILED, KNOWN, expected -8.529\n    test 424 GeoidKarney('egm96-5.pgm').height(-28.863, -139.775) kind 3: -8.666\n    test 425 GeoidKarney('egm96-5.pgm').height(19.507, -96.099) kind 3: -12.795  FAILED, KNOWN, expected -12.796\n    test 426 GeoidKarney('egm96-5.pgm').height(-42.488, -73.907) kind 3: 15.774  FAILED, KNOWN, expected 15.773\n    test 427 GeoidKarney('egm96-5.pgm').height(46.138, -141.429) kind 3: -19.955  FAILED, KNOWN, expected -19.954\n    test 428 GeoidKarney('egm96-5.pgm').height(60.507, 93.743) kind 3: -31.480\n    test 429 GeoidKarney('egm96-5.pgm').height(26.219, -145.434) kind 3: -17.428  FAILED, KNOWN, expected -17.429\n    test 430 GeoidKarney('egm96-5.pgm').height(-28.687, 3.37) kind 3: 24.037\n    test 431 GeoidKarney('egm96-5.pgm').height(-15.008, 117.45) kind 3: 4.519  FAILED, KNOWN, expected 4.520\n    test 432 GeoidKarney('egm96-5.pgm').height(40.71, 144.095) kind 3: 11.393  FAILED, KNOWN, expected 11.394\n    test 433 GeoidKarney('egm96-5.pgm').height(20.823, -173.611) kind 3: 5.678  FAILED, KNOWN, expected 5.679\n    test 434 GeoidKarney('egm96-5.pgm').height(16.776, -3.009) kind 3: 28.707\n    test 435 GeoidKarney('egm96-5.pgm').height(41.0, -95.0) kind 3: -30.261  FAILED, KNOWN, expected -30.262\n    test 436 GeoidKarney('egm96-5.pgm').height(49.0, -120.5) kind 3: -15.984\n    test 437 GeoidKarney('egm96-5.pgm').height(49.0, -103.5) kind 3: -18.635\n    test 438 GeoidKarney('egm96-5.pgm').height(49.0, -86.5) kind 3: -37.749\n    test 439 GeoidKarney('egm96-5.pgm').height(49.0, -69.5) kind 3: -26.691\n    test 440 GeoidKarney('egm96-5.pgm').height(33.0, -120.5) kind 3: -39.561\n    test 441 GeoidKarney('egm96-5.pgm').height(33.0, -103.5) kind 3: -22.562\n    test 442 GeoidKarney('egm96-5.pgm').height(33.0, -86.5) kind 3: -30.012\n    test 443 GeoidKarney('egm96-5.pgm').height(33.0, -69.5) kind 3: -48.039\n\n    test 444 GeoidKarney('egm96-5.pgm').height() kind 3, hits 0, eps max (in 0 FAILED): 0.001756\n    test 445 GeoidKarney('egm96-5.pgm').height() kind 3, hits 0, eps mean (of 210 total): 0.000524\n    test 446 GeoidKarney('egm96-5.pgm').height() kind 3, hits 0, eps stdev (of 210 total): 0.000371\n    test 447 GeoidKarney('egm96-5.pgm').highest(): -8.167, 147.25, 85.422\n    test 448 GeoidKarney('egm96-5.pgm').lowerleft(): -90.0, -180.0, -29.535\n    test 449 GeoidKarney('egm96-5.pgm').lowerright(): -90.0, 180.0, -29.535\n    test 450 GeoidKarney('egm96-5.pgm').lowest(): 4.667, 78.833, -107.043\n    test 451 GeoidKarney('egm96-5.pgm').upperleft(): 90.0, -180.0, 13.605\n    test 452 GeoidKarney('egm96-5.pgm').upperright(): 90.0, 180.0, 13.605\n    test 453 GeoidKarney('egm96-5.pgm').dtype: (\"'ushort'\",)\n    test 454 GeoidKarney('egm96-5.pgm').knots: ('9335520',)\n    test 455 GeoidKarney('egm96-5.pgm').mean: ('-1.317',)\n    test 456 GeoidKarney('egm96-5.pgm').nBytes: ('None',)\n    test 457 GeoidKarney('egm96-5.pgm').smooth: ('None',)\n    test 458 GeoidKarney('egm96-5.pgm').stdev: ('29.244',)\n    test 459 GeoidKarney('egm96-5.pgm')._g2ll2(180, 360): (180, 0.0)\n    test 460 GeoidKarney('egm96-5.pgm')._ll2g2(180, 360): (180, 360)\n    test 461 GeoidKarney('egm96-5.pgm')._swne: (-10.0, -100.0, 10.0, 100.0)\n    test 462 GeoidKarney('egm96-5.pgm')._swne: (-10.0, -100.0, 10.0, 100.0)\n    test 463 GeoidKarney('egm96-5.pgm').toStr: GeoidKarney('egm96-5.pgm'): lowerleft(-90.0, -180.0, -29.535), upperright(90.0, 180.0, 13.605), center(0.0, 0.0, 17.163), highest(-8.167, 147.25, 85.422), lowest(4.667, 78.833, -107.043)\n\n    test 464 closed: True\n    test 465 copy(<class 'type'>): (<class 'pygeodesy.geoids.GeoidKarney'>, True)\n    test 466 GeoidKarney.copy(): (<class 'pygeodesy.geoids.GeoidKarney'>, True)\n    test 467 GeoidPGM('egm96-5.pgm').height(-76.981, 34.17) kind 3: lli ('-76.981466, 34.17016'), H (False) or wrap (False): lli ('-76.981466, 34.17016'): outside on SE  FAILED, KNOWN, expected 11.423\n    test 468 GeoidPGM('egm96-5.pgm').height(79.695, 88.806) kind 3: lli ('79.695484, 88.805571'), H (False) or wrap (False): lli ('79.695484, 88.805571'): outside on NE  FAILED, KNOWN, expected 0.892\n    test 469 GeoidPGM('egm96-5.pgm').height(-15.245, 168.748) kind 3: lli ('-15.244804, 168.747961'), H (False) or wrap (False): lli ('-15.244804, 168.747961'): outside on SE  FAILED, KNOWN, expected 65.226\n    test 470 GeoidPGM('egm96-5.pgm').height(-19.379, 15.855) kind 3: lli ('-19.379357, 15.85511'), H (False) or wrap (False): lli ('-19.379357, 15.85511'): outside on SE  FAILED, KNOWN, expected 24.463\n    test 471 GeoidPGM('egm96-5.pgm').height(43.378, -130.552) kind 3: lli ('43.377784, -130.551582'), H (False) or wrap (False): lli ('43.377784, -130.551582'): outside on W  FAILED, KNOWN, expected -29.682\n    test 472 GeoidPGM('egm96-5.pgm').height(-16.075, 21.795) kind 3: lli ('-16.074554, 21.79547'), H (False) or wrap (False): lli ('-16.074554, 21.79547'): outside on SE  FAILED, KNOWN, expected 10.503\n    test 473 GeoidPGM('egm96-5.pgm').height(-11.256, -73.75) kind 3: lli ('-11.256389, -73.750255'), H (False) or wrap (False): lli ('-11.256389, -73.750255'): outside on S  FAILED, KNOWN, expected 29.326\n    test 474 GeoidPGM('egm96-5.pgm').height(69.017, -15.921) kind 3: lli ('69.016564, -15.921115'), H (False) or wrap (False): lli ('69.016564, -15.921115'): outside on NE  FAILED, KNOWN, expected 60.424\n    test 475 GeoidPGM('egm96-5.pgm').height(2.221, 139.739) kind 3: lli ('2.221008, 139.73935'), H (False) or wrap (False): lli ('2.221008, 139.73935'): outside on SE  FAILED, KNOWN, expected 68.996\n    test 476 GeoidPGM('egm96-5.pgm').height(-9.097, 119.142) kind 3: lli ('-9.096878, 119.141551'), H (False) or wrap (False): lli ('-9.096878, 119.141551'): outside on SE  FAILED, KNOWN, expected 36.287\n    test 477 GeoidPGM('egm96-5.pgm').height(-28.524, -22.192) kind 3: lli ('-28.523717, -22.1925'), H (False) or wrap (False): lli ('-28.523717, -22.1925'): outside on SE  FAILED, KNOWN, expected 6.626\n    test 478 GeoidPGM('egm96-5.pgm').height(12.272, -136.424) kind 3: lli ('12.27231, -136.424168'), H (False) or wrap (False): lli ('12.27231, -136.424168'): outside on SW  FAILED, KNOWN, expected -20.860\n    test 479 GeoidPGM('egm96-5.pgm').height(-15.203, -85.604) kind 3: lli ('-15.20317, -85.603753'), H (False) or wrap (False): lli ('-15.20317, -85.603753'): outside on S  FAILED, KNOWN, expected -3.267\n    test 480 GeoidPGM('egm96-5.pgm').height(-63.736, -77.17) kind 3: lli ('-63.735565, -77.169636'), H (False) or wrap (False): lli ('-63.735565, -77.169636'): outside on S  FAILED, KNOWN, expected -1.294\n    test 481 GeoidPGM('egm96-5.pgm').height(-48.771, -90.102) kind 3: lli ('-48.770825, -90.102117'), H (False) or wrap (False): lli ('-48.770825, -90.102117'): outside on S  FAILED, KNOWN, expected -2.322\n    test 482 GeoidPGM('egm96-5.pgm').height(-0.179, -126.368) kind 3: lli ('-0.178524, -126.368279'), H (False) or wrap (False): lli ('-0.178524, -126.368279'): outside on SW  FAILED, KNOWN, expected -17.557\n    test 483 GeoidPGM('egm96-5.pgm').height(1.586, -128.887) kind 3: lli ('1.585536, -128.886967'), H (False) or wrap (False): lli ('1.585536, -128.886967'): outside on SW  FAILED, KNOWN, expected -16.594\n    test 484 GeoidPGM('egm96-5.pgm').height(-48.781, -2.684) kind 3: lli ('-48.780705, -2.684224'), H (False) or wrap (False): lli ('-48.780705, -2.684224'): outside on SE  FAILED, KNOWN, expected 24.453\n    test 485 GeoidPGM('egm96-5.pgm').height(-49.092, 136.862) kind 3: lli ('-49.091632, 136.862256'), H (False) or wrap (False): lli ('-49.091632, 136.862256'): outside on SE  FAILED, KNOWN, expected -18.592\n    test 486 GeoidPGM('egm96-5.pgm').height(47.732, 17.552) kind 3: lli ('47.731727, 17.552416'), H (False) or wrap (False): lli ('47.731727, 17.552416'): outside on E  FAILED, KNOWN, expected 44.049\n    test 487 GeoidPGM('egm96-5.pgm').height(-49.11, 85.706) kind 3: lli ('-49.109549, 85.706437'), H (False) or wrap (False): lli ('-49.109549, 85.706437'): outside on SE  FAILED, KNOWN, expected 18.581\n    test 488 GeoidPGM('egm96-5.pgm').height(-49.162, 40.321) kind 3: lli ('-49.162281, 40.321209'), H (False) or wrap (False): lli ('-49.162281, 40.321209'): outside on SE  FAILED, KNOWN, expected 44.289\n    test 489 GeoidPGM('egm96-5.pgm').height(3.498, 158.118) kind 3: lli ('3.498333, 158.117699'), H (False) or wrap (False): lli ('3.498333, 158.117699'): outside on SE  FAILED, KNOWN, expected 49.816\n    test 490 GeoidPGM('egm96-5.pgm').height(-35.616, 122.648) kind 3: lli ('-35.616495, 122.648407'), H (False) or wrap (False): lli ('-35.616495, 122.648407'): outside on SE  FAILED, KNOWN, expected -36.114\n    test 491 GeoidPGM('egm96-5.pgm').height(56.598, -96.114) kind 3: lli ('56.598256, -96.113696'), H (False) or wrap (False): lli ('56.598256, -96.113696'): outside on N  FAILED, KNOWN, expected -41.048\n    test 492 GeoidPGM('egm96-5.pgm').height(-31.85, 149.121) kind 3: lli ('-31.850231, 149.120596'), H (False) or wrap (False): lli ('-31.850231, 149.120596'): outside on SE  FAILED, KNOWN, expected 26.456\n    test 493 GeoidPGM('egm96-5.pgm').height(-26.569, -177.792) kind 3: lli ('-26.568996, -177.792196'), H (False) or wrap (False): lli ('-26.568996, -177.792196'): outside on SW  FAILED, KNOWN, expected 49.317\n    test 494 GeoidPGM('egm96-5.pgm').height(76.735, -65.753) kind 3: lli ('76.734699, -65.752952'), H (False) or wrap (False): lli ('76.734699, -65.752952'): outside on N  FAILED, KNOWN, expected 20.714\n    test 495 GeoidPGM('egm96-5.pgm').height(-21.404, -122.268) kind 3: lli ('-21.404166, -122.267869'), H (False) or wrap (False): lli ('-21.404166, -122.267869'): outside on S  FAILED, KNOWN, expected -7.362\n    test 496 GeoidPGM('egm96-5.pgm').height(-77.133, -65.474) kind 3: lli ('-77.133426, -65.473819'), H (False) or wrap (False): lli ('-77.133426, -65.473819'): outside on S  FAILED, KNOWN, expected -16.492\n    test 497 GeoidPGM('egm96-5.pgm').height(-58.812, 2.276) kind 3: lli ('-58.811779, 2.276142'), H (False) or wrap (False): lli ('-58.811779, 2.276142'): outside on SE  FAILED, KNOWN, expected 18.110\n    test 498 GeoidPGM('egm96-5.pgm').height(4.415, 155.683) kind 3: lli ('4.415102, 155.683336'), H (False) or wrap (False): lli ('4.415102, 155.683336'): outside on SE  FAILED, KNOWN, expected 51.858\n    test 499 GeoidPGM('egm96-5.pgm').height(-28.146, 107.081) kind 3: lli ('-28.145768, 107.081334'), H (False) or wrap (False): lli ('-28.145768, 107.081334'): outside on SE  FAILED, KNOWN, expected -38.981\n    test 500 GeoidPGM('egm96-5.pgm').height(-10.551, -126.69) kind 3: lli ('-10.551267, -126.690468'), H (False) or wrap (False): lli ('-10.551267, -126.690468'): outside on SW  FAILED, KNOWN, expected -9.913\n    test 501 GeoidPGM('egm96-5.pgm').height(-25.444, -103.337) kind 3: lli ('-25.444344, -103.337184'), H (False) or wrap (False): lli ('-25.444344, -103.337184'): outside on S  FAILED, KNOWN, expected -2.828\n    test 502 GeoidPGM('egm96-5.pgm').height(24.436, 46.159) kind 3: lli ('24.435896, 46.158715'), H (False) or wrap (False): lli ('24.435896, 46.158715'): outside on SE  FAILED, KNOWN, expected -5.719\n    test 503 GeoidPGM('egm96-5.pgm').height(-72.889, 37.107) kind 3: lli ('-72.888898, 37.106907'), H (False) or wrap (False): lli ('-72.888898, 37.106907'): outside on SE  FAILED, KNOWN, expected 22.426\n    test 504 GeoidPGM('egm96-5.pgm').height(-19.629, 13.245) kind 3: lli ('-19.628762, 13.244525'), H (False) or wrap (False): lli ('-19.628762, 13.244525'): outside on SE  FAILED, KNOWN, expected 24.545\n    test 505 GeoidPGM('egm96-5.pgm').height(-7.602, 171.265) kind 3: lli ('-7.602449, 171.264763'), H (False) or wrap (False): lli ('-7.602449, 171.264763'): outside on SE  FAILED, KNOWN, expected 40.652\n    test 506 GeoidPGM('egm96-5.pgm').height(-45.364, -1.876) kind 3: lli ('-45.364396, -1.876412'), H (False) or wrap (False): lli ('-45.364396, -1.876412'): outside on SE  FAILED, KNOWN, expected 22.383\n    test 507 GeoidPGM('egm96-5.pgm').height(-7.292, -69.18) kind 3: lli ('-7.292121, -69.179565'), H (False) or wrap (False): lli ('-7.292121, -69.179565'): outside on S  FAILED, KNOWN, expected 22.182\n    test 508 GeoidPGM('egm96-5.pgm').height(-31.566, -166.689) kind 3: lli ('-31.566264, -166.688985'), H (False) or wrap (False): lli ('-31.566264, -166.688985'): outside on SW  FAILED, KNOWN, expected 14.930\n    test 509 GeoidPGM('egm96-5.pgm').height(-82.751, -162.085) kind 3: lli ('-82.751144, -162.08523'), H (False) or wrap (False): lli ('-82.751144, -162.08523'): outside on SW  FAILED, KNOWN, expected -47.094\n    test 510 GeoidPGM('egm96-5.pgm').height(-40.7, 99.466) kind 3: lli ('-40.699637, 99.465509'), H (False) or wrap (False): lli ('-40.699637, 99.465509'): outside on SE  FAILED, KNOWN, expected -18.421\n    test 511 GeoidPGM('egm96-5.pgm').height(48.676, 39.69) kind 3: lli ('48.675771, 39.690012'), H (False) or wrap (False): lli ('48.675771, 39.690012'): outside on E  FAILED, KNOWN, expected 10.055\n    test 512 GeoidPGM('egm96-5.pgm').height(74.817, -78.404) kind 3: lli ('74.817287, -78.404187'), H (False) or wrap (False): lli ('74.817287, -78.404187'): outside on N  FAILED, KNOWN, expected 5.786\n    test 513 GeoidPGM('egm96-5.pgm').height(-81.032, -63.865) kind 3: lli ('-81.032306, -63.864898'), H (False) or wrap (False): lli ('-81.032306, -63.864898'): outside on SE  FAILED, KNOWN, expected -22.838\n    test 514 GeoidPGM('egm96-5.pgm').height(74.022, 9.432) kind 3: lli ('74.021785, 9.431926'), H (False) or wrap (False): lli ('74.021785, 9.431926'): outside on NE  FAILED, KNOWN, expected 42.989\n    test 515 GeoidPGM('egm96-5.pgm').height(-75.071, 17.579) kind 3: lli ('-75.070563, 17.57935'), H (False) or wrap (False): lli ('-75.070563, 17.57935'): outside on SE  FAILED, KNOWN, expected 15.353\n    test 516 GeoidPGM('egm96-5.pgm').height(-12.546, -54.851) kind 3: lli ('-12.54612, -54.850614'), H (False) or wrap (False): lli ('-12.54612, -54.850614'): outside on SE  FAILED, KNOWN, expected -6.337\n    test 517 GeoidPGM('egm96-5.pgm').height(-13.621, 42.408) kind 3: lli ('-13.621418, 42.407805'), H (False) or wrap (False): lli ('-13.621418, 42.407805'): outside on SE  FAILED, KNOWN, expected -25.555\n    test 518 GeoidPGM('egm96-5.pgm').height(-2.266, -91.951) kind 3: lli ('-2.265774, -91.951437'), H (False) or wrap (False): lli ('-2.265774, -91.951437'): outside on S  FAILED, KNOWN, expected -9.923\n    test 519 GeoidPGM('egm96-5.pgm').height(-18.672, 42.547) kind 3: lli ('-18.672316, 42.547125'), H (False) or wrap (False): lli ('-18.672316, 42.547125'): outside on SE  FAILED, KNOWN, expected -10.852\n    test 520 GeoidPGM('egm96-5.pgm').height(-41.44, 157.413) kind 3: lli ('-41.439867, 157.413161'), H (False) or wrap (False): lli ('-41.439867, 157.413161'): outside on SE  FAILED, KNOWN, expected -0.135\n    test 521 GeoidPGM('egm96-5.pgm').height(53.686, -79.375) kind 3: -43.809\n    test 522 GeoidPGM('egm96-5.pgm').height(39.26, -30.351) kind 3: lli ('39.260397, -30.351359'), H (False) or wrap (False): lli ('39.260397, -30.351359'): outside on E  FAILED, KNOWN, expected 57.150\n    test 523 GeoidPGM('egm96-5.pgm').height(-51.699, -141.493) kind 3: lli ('-51.699195, -141.493082'), H (False) or wrap (False): lli ('-51.699195, -141.493082'): outside on SW  FAILED, KNOWN, expected -17.657\n    test 524 GeoidPGM('egm96-5.pgm').height(36.585, 4.515) kind 3: lli ('36.584861, 4.515157'), H (False) or wrap (False): lli ('36.584861, 4.515157'): outside on E  FAILED, KNOWN, expected 46.358\n    test 525 GeoidPGM('egm96-5.pgm').height(39.642, -54.659) kind 3: lli ('39.641638, -54.658846'), H (False) or wrap (False): lli ('39.641638, -54.658846'): outside on E  FAILED, KNOWN, expected -14.404\n    test 526 GeoidPGM('egm96-5.pgm').height(59.761, 166.567) kind 3: lli ('59.761024, 166.566646'), H (False) or wrap (False): lli ('59.761024, 166.566646'): outside on NE  FAILED, KNOWN, expected 11.242\n    test 527 GeoidPGM('egm96-5.pgm').height(51.83, 13.357) kind 3: lli ('51.830001, 13.357464'), H (False) or wrap (False): lli ('51.830001, 13.357464'): outside on E  FAILED, KNOWN, expected 42.237\n    test 528 GeoidPGM('egm96-5.pgm').height(-36.531, -175.431) kind 3: lli ('-36.530912, -175.430804'), H (False) or wrap (False): lli ('-36.530912, -175.430804'): outside on SW  FAILED, KNOWN, expected 22.147\n    test 529 GeoidPGM('egm96-5.pgm').height(-37.08, 125.264) kind 3: lli ('-37.079518, 125.263901'), H (False) or wrap (False): lli ('-37.079518, 125.263901'): outside on SE  FAILED, KNOWN, expected -33.396\n    test 530 GeoidPGM('egm96-5.pgm').height(-68.651, 92.732) kind 3: lli ('-68.650762, 92.731524'), H (False) or wrap (False): lli ('-68.650762, 92.731524'): outside on SE  FAILED, KNOWN, expected 7.961\n    test 531 GeoidPGM('egm96-5.pgm').height(35.087, 45.336) kind 3: lli ('35.086645, 45.335611'), H (False) or wrap (False): lli ('35.086645, 45.335611'): outside on E  FAILED, KNOWN, expected 7.229\n    test 532 GeoidPGM('egm96-5.pgm').height(-61.356, -169.379) kind 3: lli ('-61.355646, -169.378929'), H (False) or wrap (False): lli ('-61.355646, -169.378929'): outside on SW  FAILED, KNOWN, expected -44.292\n    test 533 GeoidPGM('egm96-5.pgm').height(-36.955, 179.12) kind 3: lli ('-36.954967, 179.11982'), H (False) or wrap (False): lli ('-36.954967, 179.11982'): outside on SE  FAILED, KNOWN, expected 21.875\n    test 534 GeoidPGM('egm96-5.pgm').height(10.248, -6.714) kind 3: lli ('10.248399, -6.713559'), H (False) or wrap (False): lli ('10.248399, -6.713559'): outside on SE  FAILED, KNOWN, expected 28.933\n    test 535 GeoidPGM('egm96-5.pgm').height(36.868, 84.602) kind 3: lli ('36.868193, 84.602243'), H (False) or wrap (False): lli ('36.868193, 84.602243'): outside on E  FAILED, KNOWN, expected -41.238\n    test 536 GeoidPGM('egm96-5.pgm').height(28.637, 88.933) kind 3: lli ('28.636703, 88.932955'), H (False) or wrap (False): lli ('28.636703, 88.932955'): outside on E  FAILED, KNOWN, expected -31.331\n    test 537 GeoidPGM('egm96-5.pgm').height(54.811, -99.968) kind 3: -32.702\n    test 538 GeoidPGM('egm96-5.pgm').height(7.611, 145.911) kind 3: lli ('7.610621, 145.911188'), H (False) or wrap (False): lli ('7.610621, 145.911188'): outside on SE  FAILED, KNOWN, expected 60.117\n    test 539 GeoidPGM('egm96-5.pgm').height(59.412, 170.102) kind 3: lli ('59.411557, 170.102394'), H (False) or wrap (False): lli ('59.411557, 170.102394'): outside on NE  FAILED, KNOWN, expected 6.457\n    test 540 GeoidPGM('egm96-5.pgm').height(-61.469, 126.144) kind 3: lli ('-61.468618, 126.144056'), H (False) or wrap (False): lli ('-61.468618, 126.144056'): outside on SE  FAILED, KNOWN, expected -31.961\n    test 541 GeoidPGM('egm96-5.pgm').height(18.514, -137.083) kind 3: lli ('18.514019, -137.083301'), H (False) or wrap (False): lli ('18.514019, -137.083301'): outside on SW  FAILED, KNOWN, expected -26.571\n    test 542 GeoidPGM('egm96-5.pgm').height(7.854, -126.799) kind 3: lli ('7.854318, -126.799148'), H (False) or wrap (False): lli ('7.854318, -126.799148'): outside on SW  FAILED, KNOWN, expected -29.760\n    test 543 GeoidPGM('egm96-5.pgm').height(47.489, 134.183) kind 3: lli ('47.489222, 134.182527'), H (False) or wrap (False): lli ('47.489222, 134.182527'): outside on E  FAILED, KNOWN, expected 21.980\n    test 544 GeoidPGM('egm96-5.pgm').height(-34.144, -11.922) kind 3: lli ('-34.143602, -11.921567'), H (False) or wrap (False): lli ('-34.143602, -11.921567'): outside on SE  FAILED, KNOWN, expected 16.849\n    test 545 GeoidPGM('egm96-5.pgm').height(-58.389, 117.458) kind 3: lli ('-58.388787, 117.457755'), H (False) or wrap (False): lli ('-58.388787, 117.457755'): outside on SE  FAILED, KNOWN, expected -20.923\n    test 546 GeoidPGM('egm96-5.pgm').height(9.773, 95.846) kind 3: lli ('9.772764, 95.845943'), H (False) or wrap (False): lli ('9.772764, 95.845943'): outside on SE  FAILED, KNOWN, expected -42.749\n    test 547 GeoidPGM('egm96-5.pgm').height(-53.12, 136.994) kind 3: lli ('-53.120381, 136.993994'), H (False) or wrap (False): lli ('-53.120381, 136.993994'): outside on SE  FAILED, KNOWN, expected -21.841\n    test 548 GeoidPGM('egm96-5.pgm').height(-50.35, 0.075) kind 3: lli ('-50.349867, 0.07532'), H (False) or wrap (False): lli ('-50.349867, 0.07532'): outside on SE  FAILED, KNOWN, expected 25.482\n    test 549 GeoidPGM('egm96-5.pgm').height(31.438, -170.879) kind 3: lli ('31.438387, -170.878548'), H (False) or wrap (False): lli ('31.438387, -170.878548'): outside on W  FAILED, KNOWN, expected -8.847\n    test 550 GeoidPGM('egm96-5.pgm').height(37.541, -153.024) kind 3: lli ('37.540689, -153.024228'), H (False) or wrap (False): lli ('37.540689, -153.024228'): outside on W  FAILED, KNOWN, expected -19.604\n    test 551 GeoidPGM('egm96-5.pgm').height(27.586, 2.444) kind 3: lli ('27.586088, 2.443556'), H (False) or wrap (False): lli ('27.586088, 2.443556'): outside on E  FAILED, KNOWN, expected 25.668\n    test 552 GeoidPGM('egm96-5.pgm').height(-26.139, -106.201) kind 3: lli ('-26.139126, -106.20081'), H (False) or wrap (False): lli ('-26.139126, -106.20081'): outside on S  FAILED, KNOWN, expected -3.772\n    test 553 GeoidPGM('egm96-5.pgm').height(-33.426, -14.84) kind 3: lli ('-33.425976, -14.840359'), H (False) or wrap (False): lli ('-33.425976, -14.840359'): outside on SE  FAILED, KNOWN, expected 17.748\n    test 554 GeoidPGM('egm96-5.pgm').height(39.586, -153.019) kind 3: lli ('39.586286, -153.018974'), H (False) or wrap (False): lli ('39.586286, -153.018974'): outside on W  FAILED, KNOWN, expected -17.839\n    test 555 GeoidPGM('egm96-5.pgm').height(-60.79, -2.578) kind 3: lli ('-60.790289, -2.578163'), H (False) or wrap (False): lli ('-60.790289, -2.578163'): outside on SE  FAILED, KNOWN, expected 14.292\n    test 556 GeoidPGM('egm96-5.pgm').height(-20.131, 21.975) kind 3: lli ('-20.130538, 21.974941'), H (False) or wrap (False): lli ('-20.130538, 21.974941'): outside on SE  FAILED, KNOWN, expected 16.529\n    test 557 GeoidPGM('egm96-5.pgm').height(75.649, 99.921) kind 3: lli ('75.64878, 99.920587'), H (False) or wrap (False): lli ('75.64878, 99.920587'): outside on NE  FAILED, KNOWN, expected -8.229\n    test 558 GeoidPGM('egm96-5.pgm').height(-0.385, -23.788) kind 3: lli ('-0.385453, -23.788336'), H (False) or wrap (False): lli ('-0.385453, -23.788336'): outside on SE  FAILED, KNOWN, expected 9.830\n    test 559 GeoidPGM('egm96-5.pgm').height(-51.56, -50.327) kind 3: lli ('-51.559564, -50.32687'), H (False) or wrap (False): lli ('-51.559564, -50.32687'): outside on SE  FAILED, KNOWN, expected 6.215\n    test 560 GeoidPGM('egm96-5.pgm').height(-43.129, -167.271) kind 3: lli ('-43.129209, -167.27147'), H (False) or wrap (False): lli ('-43.129209, -167.27147'): outside on SW  FAILED, KNOWN, expected -2.960\n    test 561 GeoidPGM('egm96-5.pgm').height(46.374, 71.948) kind 3: lli ('46.374177, 71.947616'), H (False) or wrap (False): lli ('46.374177, 71.947616'): outside on E  FAILED, KNOWN, expected -42.323\n    test 562 GeoidPGM('egm96-5.pgm').height(-22.783, 140.657) kind 3: lli ('-22.783085, 140.657444'), H (False) or wrap (False): lli ('-22.783085, 140.657444'): outside on SE  FAILED, KNOWN, expected 38.356\n    test 563 GeoidPGM('egm96-5.pgm').height(-12.056, 122.804) kind 3: lli ('-12.05584, 122.80402'), H (False) or wrap (False): lli ('-12.05584, 122.80402'): outside on SE  FAILED, KNOWN, expected 34.259\n    test 564 GeoidPGM('egm96-5.pgm').height(30.127, 94.738) kind 3: lli ('30.127372, 94.738186'), H (False) or wrap (False): lli ('30.127372, 94.738186'): outside on E  FAILED, KNOWN, expected -37.397\n    test 565 GeoidPGM('egm96-5.pgm').height(46.296, -174.479) kind 3: lli ('46.296018, -174.478616'), H (False) or wrap (False): lli ('46.296018, -174.478616'): outside on W  FAILED, KNOWN, expected -2.016\n    test 566 GeoidPGM('egm96-5.pgm').height(34.99, 15.052) kind 3: lli ('34.989646, 15.051646'), H (False) or wrap (False): lli ('34.989646, 15.051646'): outside on E  FAILED, KNOWN, expected 33.912\n    test 567 GeoidPGM('egm96-5.pgm').height(-51.287, 90.565) kind 3: lli ('-51.287168, 90.564711'), H (False) or wrap (False): lli ('-51.287168, 90.564711'): outside on SE  FAILED, KNOWN, expected 12.676\n    test 568 GeoidPGM('egm96-5.pgm').height(34.217, 141.302) kind 3: lli ('34.217016, 141.301548'), H (False) or wrap (False): lli ('34.217016, 141.301548'): outside on E  FAILED, KNOWN, expected 15.692\n    test 569 GeoidPGM('egm96-5.pgm').height(-40.423, -142.787) kind 3: lli ('-40.423023, -142.786592'), H (False) or wrap (False): lli ('-40.423023, -142.786592'): outside on SW  FAILED, KNOWN, expected -11.117\n    test 570 GeoidPGM('egm96-5.pgm').height(-17.854, -170.216) kind 3: lli ('-17.854486, -170.216354'), H (False) or wrap (False): lli ('-17.854486, -170.216354'): outside on SW  FAILED, KNOWN, expected 27.437\n    test 571 GeoidPGM('egm96-5.pgm').height(47.803, 112.701) kind 3: lli ('47.803271, 112.700942'), H (False) or wrap (False): lli ('47.803271, 112.700942'): outside on E  FAILED, KNOWN, expected -23.894\n    test 572 GeoidPGM('egm96-5.pgm').height(-23.276, 133.454) kind 3: lli ('-23.275962, 133.453821'), H (False) or wrap (False): lli ('-23.275962, 133.453821'): outside on SE  FAILED, KNOWN, expected 18.766\n    test 573 GeoidPGM('egm96-5.pgm').height(-26.884, -36.571) kind 3: lli ('-26.884369, -36.570654'), H (False) or wrap (False): lli ('-26.884369, -36.570654'): outside on SE  FAILED, KNOWN, expected -7.452\n    test 574 GeoidPGM('egm96-5.pgm').height(-37.106, 31.128) kind 3: lli ('-37.106468, 31.127939'), H (False) or wrap (False): lli ('-37.106468, 31.127939'): outside on SE  FAILED, KNOWN, expected 30.143\n    test 575 GeoidPGM('egm96-5.pgm').height(-75.363, -173.674) kind 3: lli ('-75.363185, -173.673649'), H (False) or wrap (False): lli ('-75.363185, -173.673649'): outside on SW  FAILED, KNOWN, expected -61.172\n    test 576 GeoidPGM('egm96-5.pgm').height(-18.305, 69.016) kind 3: lli ('-18.30485, 69.015565'), H (False) or wrap (False): lli ('-18.30485, 69.015565'): outside on SE  FAILED, KNOWN, expected -24.890\n    test 577 GeoidPGM('egm96-5.pgm').height(39.527, 23.58) kind 3: lli ('39.527401, 23.580206'), H (False) or wrap (False): lli ('39.527401, 23.580206'): outside on E  FAILED, KNOWN, expected 39.519\n    test 578 GeoidPGM('egm96-5.pgm').height(68.903, 30.97) kind 3: lli ('68.903148, 30.970247'), H (False) or wrap (False): lli ('68.903148, 30.970247'): outside on NE  FAILED, KNOWN, expected 19.419\n    test 579 GeoidPGM('egm96-5.pgm').height(53.937, 168.318) kind 3: lli ('53.936937, 168.318201'), H (False) or wrap (False): lli ('53.936937, 168.318201'): outside on E  FAILED, KNOWN, expected 2.069\n    test 580 GeoidPGM('egm96-5.pgm').height(-38.6, 64.812) kind 3: lli ('-38.600098, 64.811532'), H (False) or wrap (False): lli ('-38.600098, 64.811532'): outside on SE  FAILED, KNOWN, expected 25.048\n    test 581 GeoidPGM('egm96-5.pgm').height(-41.396, -69.739) kind 3: lli ('-41.395739, -69.739418'), H (False) or wrap (False): lli ('-41.395739, -69.739418'): outside on S  FAILED, KNOWN, expected 22.547\n    test 582 GeoidPGM('egm96-5.pgm').height(50.158, 72.319) kind 3: lli ('50.157749, 72.319017'), H (False) or wrap (False): lli ('50.157749, 72.319017'): outside on E  FAILED, KNOWN, expected -34.359\n    test 583 GeoidPGM('egm96-5.pgm').height(27.692, 176.153) kind 3: lli ('27.691879, 176.152884'), H (False) or wrap (False): lli ('27.691879, 176.152884'): outside on E  FAILED, KNOWN, expected -5.453\n    test 584 GeoidPGM('egm96-5.pgm').height(-48.419, 170.454) kind 3: lli ('-48.419449, 170.454472'), H (False) or wrap (False): lli ('-48.419449, 170.454472'): outside on SE  FAILED, KNOWN, expected -6.804\n    test 585 GeoidPGM('egm96-5.pgm').height(-65.346, -124.976) kind 3: lli ('-65.34567, -124.975961'), H (False) or wrap (False): lli ('-65.34567, -124.975961'): outside on S  FAILED, KNOWN, expected -35.054\n    test 586 GeoidPGM('egm96-5.pgm').height(-51.873, 167.266) kind 3: lli ('-51.873009, 167.265613'), H (False) or wrap (False): lli ('-51.873009, 167.265613'): outside on SE  FAILED, KNOWN, expected -15.418\n    test 587 GeoidPGM('egm96-5.pgm').height(-7.263, 84.308) kind 3: lli ('-7.262544, 84.307626'), H (False) or wrap (False): lli ('-7.262544, 84.307626'): outside on SE  FAILED, KNOWN, expected -79.557\n    test 588 GeoidPGM('egm96-5.pgm').height(-1.461, -105.458) kind 3: lli ('-1.461003, -105.458323'), H (False) or wrap (False): lli ('-1.461003, -105.458323'): outside on S  FAILED, KNOWN, expected -16.894\n    test 589 GeoidPGM('egm96-5.pgm').height(7.684, 161.873) kind 3: lli ('7.684324, 161.87293'), H (False) or wrap (False): lli ('7.684324, 161.87293'): outside on SE  FAILED, KNOWN, expected 36.215\n    test 590 GeoidPGM('egm96-5.pgm').height(-31.475, -158.52) kind 3: lli ('-31.474549, -158.520033'), H (False) or wrap (False): lli ('-31.474549, -158.520033'): outside on SW  FAILED, KNOWN, expected 3.523\n    test 591 GeoidPGM('egm96-5.pgm').height(-36.187, 62.917) kind 3: lli ('-36.187212, 62.917075'), H (False) or wrap (False): lli ('-36.187212, 62.917075'): outside on SE  FAILED, KNOWN, expected 23.797\n    test 592 GeoidPGM('egm96-5.pgm').height(16.003, 141.687) kind 3: lli ('16.002975, 141.686552'), H (False) or wrap (False): lli ('16.002975, 141.686552'): outside on SE  FAILED, KNOWN, expected 51.586\n    test 593 GeoidPGM('egm96-5.pgm').height(30.182, 86.261) kind 3: lli ('30.182218, 86.260576'), H (False) or wrap (False): lli ('30.182218, 86.260576'): outside on E  FAILED, KNOWN, expected -30.131\n    test 594 GeoidPGM('egm96-5.pgm').height(-77.304, 159.498) kind 3: lli ('-77.303842, 159.497665'), H (False) or wrap (False): lli ('-77.303842, 159.497665'): outside on SE  FAILED, KNOWN, expected -51.848\n    test 595 GeoidPGM('egm96-5.pgm').height(39.536, 139.795) kind 3: lli ('39.536, 139.795358'), H (False) or wrap (False): lli ('39.536, 139.795358'): outside on E  FAILED, KNOWN, expected 37.192\n    test 596 GeoidPGM('egm96-5.pgm').height(8.569, 134.618) kind 3: lli ('8.569309, 134.618403'), H (False) or wrap (False): lli ('8.569309, 134.618403'): outside on SE  FAILED, KNOWN, expected 63.597\n    test 597 GeoidPGM('egm96-5.pgm').height(14.473, 90.596) kind 3: lli ('14.473483, 90.595663'), H (False) or wrap (False): lli ('14.473483, 90.595663'): outside on SE  FAILED, KNOWN, expected -62.636\n    test 598 GeoidPGM('egm96-5.pgm').height(-13.138, -99.589) kind 3: lli ('-13.13767, -99.589202'), H (False) or wrap (False): lli ('-13.13767, -99.589202'): outside on S  FAILED, KNOWN, expected -8.717\n    test 599 GeoidPGM('egm96-5.pgm').height(34.212, -26.307) kind 3: lli ('34.211572, -26.307194'), H (False) or wrap (False): lli ('34.211572, -26.307194'): outside on E  FAILED, KNOWN, expected 40.645\n    test 600 GeoidPGM('egm96-5.pgm').height(21.89, 76.371) kind 3: lli ('21.889732, 76.371362'), H (False) or wrap (False): lli ('21.889732, 76.371362'): outside on SE  FAILED, KNOWN, expected -60.729\n    test 601 GeoidPGM('egm96-5.pgm').height(29.793, 120.487) kind 3: lli ('29.792909, 120.48703'), H (False) or wrap (False): lli ('29.792909, 120.48703'): outside on E  FAILED, KNOWN, expected 8.783\n    test 602 GeoidPGM('egm96-5.pgm').height(15.724, 122.714) kind 3: lli ('15.723814, 122.713685'), H (False) or wrap (False): lli ('15.723814, 122.713685'): outside on SE  FAILED, KNOWN, expected 31.523\n    test 603 GeoidPGM('egm96-5.pgm').height(-66.208, -78.499) kind 3: lli ('-66.20776, -78.498807'), H (False) or wrap (False): lli ('-66.20776, -78.498807'): outside on S  FAILED, KNOWN, expected -6.250\n    test 604 GeoidPGM('egm96-5.pgm').height(-39.507, 55.809) kind 3: lli ('-39.507049, 55.808743'), H (False) or wrap (False): lli ('-39.507049, 55.808743'): outside on SE  FAILED, KNOWN, expected 32.599\n    test 605 GeoidPGM('egm96-5.pgm').height(28.159, 51.476) kind 3: lli ('28.159494, 51.476474'), H (False) or wrap (False): lli ('28.159494, 51.476474'): outside on E  FAILED, KNOWN, expected -24.536\n    test 606 GeoidPGM('egm96-5.pgm').height(-36.207, 120.205) kind 3: lli ('-36.206825, 120.205019'), H (False) or wrap (False): lli ('-36.206825, 120.205019'): outside on SE  FAILED, KNOWN, expected -38.869\n    test 607 GeoidPGM('egm96-5.pgm').height(30.575, -99.998) kind 3: -23.213\n    test 608 GeoidPGM('egm96-5.pgm').height(-16.993, 37.136) kind 3: lli ('-16.992515, 37.135881'), H (False) or wrap (False): lli ('-16.992515, 37.135881'): outside on SE  FAILED, KNOWN, expected -11.824\n    test 609 GeoidPGM('egm96-5.pgm').height(-11.477, 12.039) kind 3: lli ('-11.476997, 12.038708'), H (False) or wrap (False): lli ('-11.476997, 12.038708'): outside on SE  FAILED, KNOWN, expected 16.709\n    test 610 GeoidPGM('egm96-5.pgm').height(30.428, -144.765) kind 3: lli ('30.428465, -144.765049'), H (False) or wrap (False): lli ('30.428465, -144.765049'): outside on W  FAILED, KNOWN, expected -22.379\n    test 611 GeoidPGM('egm96-5.pgm').height(-17.44, -92.424) kind 3: lli ('-17.439773, -92.424339'), H (False) or wrap (False): lli ('-17.439773, -92.424339'): outside on S  FAILED, KNOWN, expected -4.941\n    test 612 GeoidPGM('egm96-5.pgm').height(40.203, 143.43) kind 3: lli ('40.203164, 143.429799'), H (False) or wrap (False): lli ('40.203164, 143.429799'): outside on E  FAILED, KNOWN, expected 19.394\n    test 613 GeoidPGM('egm96-5.pgm').height(-37.098, -106.574) kind 3: lli ('-37.098392, -106.573712'), H (False) or wrap (False): lli ('-37.098392, -106.573712'): outside on S  FAILED, KNOWN, expected -9.381\n    test 614 GeoidPGM('egm96-5.pgm').height(54.62, -68.413) kind 3: -23.318  FAILED, KNOWN, expected -23.319\n    test 615 GeoidPGM('egm96-5.pgm').height(-31.633, 148.182) kind 3: lli ('-31.633252, 148.181926'), H (False) or wrap (False): lli ('-31.633252, 148.181926'): outside on SE  FAILED, KNOWN, expected 24.468\n    test 616 GeoidPGM('egm96-5.pgm').height(-56.07, -141.407) kind 3: lli ('-56.069748, -141.406778'), H (False) or wrap (False): lli ('-56.069748, -141.406778'): outside on SW  FAILED, KNOWN, expected -21.761\n    test 617 GeoidPGM('egm96-5.pgm').height(-8.195, -52.691) kind 3: lli ('-8.195214, -52.691177'), H (False) or wrap (False): lli ('-8.195214, -52.691177'): outside on SE  FAILED, KNOWN, expected -18.798\n    test 618 GeoidPGM('egm96-5.pgm').height(17.851, 24.749) kind 3: lli ('17.850526, 24.748606'), H (False) or wrap (False): lli ('17.850526, 24.748606'): outside on SE  FAILED, KNOWN, expected 12.612\n    test 619 GeoidPGM('egm96-5.pgm').height(0.349, -108.333) kind 3: lli ('0.349465, -108.332667'), H (False) or wrap (False): lli ('0.349465, -108.332667'): outside on S  FAILED, KNOWN, expected -19.706\n    test 620 GeoidPGM('egm96-5.pgm').height(15.038, 126.191) kind 3: lli ('15.037932, 126.190545'), H (False) or wrap (False): lli ('15.037932, 126.190545'): outside on SE  FAILED, KNOWN, expected 45.792\n    test 621 GeoidPGM('egm96-5.pgm').height(-21.111, -123.696) kind 3: lli ('-21.111105, -123.695981'), H (False) or wrap (False): lli ('-21.111105, -123.695981'): outside on S  FAILED, KNOWN, expected -8.406\n    test 622 GeoidPGM('egm96-5.pgm').height(30.947, 173.002) kind 3: lli ('30.946618, 173.002137'), H (False) or wrap (False): lli ('30.946618, 173.002137'): outside on E  FAILED, KNOWN, expected -8.367\n    test 623 GeoidPGM('egm96-5.pgm').height(-10.698, -144.091) kind 3: lli ('-10.698334, -144.091109'), H (False) or wrap (False): lli ('-10.698334, -144.091109'): outside on SW  FAILED, KNOWN, expected -2.025\n    test 624 GeoidPGM('egm96-5.pgm').height(-29.412, 124.753) kind 3: lli ('-29.412071, 124.75279'), H (False) or wrap (False): lli ('-29.412071, 124.75279'): outside on SE  FAILED, KNOWN, expected -16.569\n    test 625 GeoidPGM('egm96-5.pgm').height(38.224, -137.189) kind 3: lli ('38.223621, -137.189376'), H (False) or wrap (False): lli ('38.223621, -137.189376'): outside on W  FAILED, KNOWN, expected -35.435\n    test 626 GeoidPGM('egm96-5.pgm').height(36.064, -132.409) kind 3: lli ('36.063775, -132.409284'), H (False) or wrap (False): lli ('36.063775, -132.409284'): outside on W  FAILED, KNOWN, expected -39.009\n    test 627 GeoidPGM('egm96-5.pgm').height(29.975, 178.076) kind 3: lli ('29.974676, 178.075894'), H (False) or wrap (False): lli ('29.974676, 178.075894'): outside on E  FAILED, KNOWN, expected -6.921\n    test 628 GeoidPGM('egm96-5.pgm').height(-21.346, 169.26) kind 3: lli ('-21.346396, 169.259508'), H (False) or wrap (False): lli ('-21.346396, 169.259508'): outside on SE  FAILED, KNOWN, expected 50.795\n    test 629 GeoidPGM('egm96-5.pgm').height(49.282, -152.934) kind 3: lli ('49.282472, -152.934409'), H (False) or wrap (False): lli ('49.282472, -152.934409'): outside on W  FAILED, KNOWN, expected 1.070\n    test 630 GeoidPGM('egm96-5.pgm').height(16.349, -99.962) kind 3: lli ('16.349121, -99.962229'), H (False) or wrap (False): lli ('16.349121, -99.962229'): outside on S  FAILED, KNOWN, expected -14.214\n    test 631 GeoidPGM('egm96-5.pgm').height(-14.293, -167.34) kind 3: lli ('-14.293325, -167.339799'), H (False) or wrap (False): lli ('-14.293325, -167.339799'): outside on SW  FAILED, KNOWN, expected 17.600\n    test 632 GeoidPGM('egm96-5.pgm').height(47.166, -38.523) kind 3: lli ('47.165911, -38.522629'), H (False) or wrap (False): lli ('47.165911, -38.522629'): outside on E  FAILED, KNOWN, expected 44.804\n    test 633 GeoidPGM('egm96-5.pgm').height(-58.911, 114.347) kind 3: lli ('-58.910597, 114.346927'), H (False) or wrap (False): lli ('-58.910597, 114.346927'): outside on SE  FAILED, KNOWN, expected -17.922\n    test 634 GeoidPGM('egm96-5.pgm').height(-9.055, 111.294) kind 3: lli ('-9.055095, 111.294422'), H (False) or wrap (False): lli ('-9.055095, 111.294422'): outside on SE  FAILED, KNOWN, expected 10.662\n    test 635 GeoidPGM('egm96-5.pgm').height(18.391, 29.692) kind 3: lli ('18.390988, 29.691577'), H (False) or wrap (False): lli ('18.390988, 29.691577'): outside on SE  FAILED, KNOWN, expected 7.670\n    test 636 GeoidPGM('egm96-5.pgm').height(-15.074, 22.153) kind 3: lli ('-15.074412, 22.152663'), H (False) or wrap (False): lli ('-15.074412, 22.152663'): outside on SE  FAILED, KNOWN, expected 8.623\n    test 637 GeoidPGM('egm96-5.pgm').height(-4.235, 62.001) kind 3: lli ('-4.234571, 62.001081'), H (False) or wrap (False): lli ('-4.234571, 62.001081'): outside on SE  FAILED, KNOWN, expected -60.723\n    test 638 GeoidPGM('egm96-5.pgm').height(15.171, -86.583) kind 3: lli ('15.170822, -86.582929'), H (False) or wrap (False): lli ('15.170822, -86.582929'): outside on S  FAILED, KNOWN, expected 3.818\n    test 639 GeoidPGM('egm96-5.pgm').height(79.254, 112.116) kind 3: lli ('79.254009, 112.115515'), H (False) or wrap (False): lli ('79.254009, 112.115515'): outside on NE  FAILED, KNOWN, expected -1.871\n    test 640 GeoidPGM('egm96-5.pgm').height(15.947, 156.093) kind 3: lli ('15.947068, 156.092678'), H (False) or wrap (False): lli ('15.947068, 156.092678'): outside on SE  FAILED, KNOWN, expected 30.633\n    test 641 GeoidPGM('egm96-5.pgm').height(68.371, -177.382) kind 3: lli ('68.370605, -177.382127'), H (False) or wrap (False): lli ('68.370605, -177.382127'): outside on NW  FAILED, KNOWN, expected 2.801\n    test 642 GeoidPGM('egm96-5.pgm').height(-41.931, -72.093) kind 3: lli ('-41.931009, -72.093413'), H (False) or wrap (False): lli ('-41.931009, -72.093413'): outside on S  FAILED, KNOWN, expected 19.859\n    test 643 GeoidPGM('egm96-5.pgm').height(-1.193, -143.133) kind 3: lli ('-1.192967, -143.133078'), H (False) or wrap (False): lli ('-1.192967, -143.133078'): outside on SW  FAILED, KNOWN, expected 5.348\n    test 644 GeoidPGM('egm96-5.pgm').height(-37.006, 154.513) kind 3: lli ('-37.006115, 154.512534'), H (False) or wrap (False): lli ('-37.006115, 154.512534'): outside on SE  FAILED, KNOWN, expected 9.941\n    test 645 GeoidPGM('egm96-5.pgm').height(-22.148, 9.938) kind 3: lli ('-22.148493, 9.938408'), H (False) or wrap (False): lli ('-22.148493, 9.938408'): outside on SE  FAILED, KNOWN, expected 22.321\n    test 646 GeoidPGM('egm96-5.pgm').height(24.329, 109.044) kind 3: lli ('24.328746, 109.043774'), H (False) or wrap (False): lli ('24.328746, 109.043774'): outside on SE  FAILED, KNOWN, expected -24.135\n    test 647 GeoidPGM('egm96-5.pgm').height(-54.878, 114.691) kind 3: lli ('-54.877699, 114.691444'), H (False) or wrap (False): lli ('-54.877699, 114.691444'): outside on SE  FAILED, KNOWN, expected -17.679\n    test 648 GeoidPGM('egm96-5.pgm').height(45.601, -80.458) kind 3: -37.151  FAILED, KNOWN, expected -37.150\n    test 649 GeoidPGM('egm96-5.pgm').height(2.372, 58.974) kind 3: lli ('2.371766, 58.974082'), H (False) or wrap (False): lli ('2.371766, 58.974082'): outside on SE  FAILED, KNOWN, expected -61.158\n    test 650 GeoidPGM('egm96-5.pgm').height(15.937, 165.854) kind 3: lli ('15.936522, 165.854035'), H (False) or wrap (False): lli ('15.936522, 165.854035'): outside on SE  FAILED, KNOWN, expected 20.602\n    test 651 GeoidPGM('egm96-5.pgm').height(4.889, -24.213) kind 3: lli ('4.889499, -24.213194'), H (False) or wrap (False): lli ('4.889499, -24.213194'): outside on SE  FAILED, KNOWN, expected 13.055\n    test 652 GeoidPGM('egm96-5.pgm').height(-11.392, 179.558) kind 3: lli ('-11.392365, 179.558198'), H (False) or wrap (False): lli ('-11.392365, 179.558198'): outside on SE  FAILED, KNOWN, expected 40.132\n    test 653 GeoidPGM('egm96-5.pgm').height(58.246, 4.862) kind 3: lli ('58.24629, 4.862128'), H (False) or wrap (False): lli ('58.24629, 4.862128'): outside on NE  FAILED, KNOWN, expected 43.263\n    test 654 GeoidPGM('egm96-5.pgm').height(34.302, -109.109) kind 3: -23.126\n    test 655 GeoidPGM('egm96-5.pgm').height(-58.196, 117.306) kind 3: lli ('-58.195787, 117.305696'), H (False) or wrap (False): lli ('-58.195787, 117.305696'): outside on SE  FAILED, KNOWN, expected -20.678\n    test 656 GeoidPGM('egm96-5.pgm').height(44.5, 173.769) kind 3: lli ('44.499876, 173.768568'), H (False) or wrap (False): lli ('44.499876, 173.768568'): outside on E  FAILED, KNOWN, expected -8.529\n    test 657 GeoidPGM('egm96-5.pgm').height(-28.863, -139.775) kind 3: lli ('-28.862539, -139.774812'), H (False) or wrap (False): lli ('-28.862539, -139.774812'): outside on SW  FAILED, KNOWN, expected -8.666\n    test 658 GeoidPGM('egm96-5.pgm').height(19.507, -96.099) kind 3: lli ('19.507043, -96.099433'), H (False) or wrap (False): lli ('19.507043, -96.099433'): outside on S  FAILED, KNOWN, expected -12.796\n    test 659 GeoidPGM('egm96-5.pgm').height(-42.488, -73.907) kind 3: lli ('-42.487604, -73.906602'), H (False) or wrap (False): lli ('-42.487604, -73.906602'): outside on S  FAILED, KNOWN, expected 15.773\n    test 660 GeoidPGM('egm96-5.pgm').height(46.138, -141.429) kind 3: lli ('46.138437, -141.429193'), H (False) or wrap (False): lli ('46.138437, -141.429193'): outside on W  FAILED, KNOWN, expected -19.954\n    test 661 GeoidPGM('egm96-5.pgm').height(60.507, 93.743) kind 3: lli ('60.506969, 93.74336'), H (False) or wrap (False): lli ('60.506969, 93.74336'): outside on NE  FAILED, KNOWN, expected -31.480\n    test 662 GeoidPGM('egm96-5.pgm').height(26.219, -145.434) kind 3: lli ('26.219081, -145.434391'), H (False) or wrap (False): lli ('26.219081, -145.434391'): outside on W  FAILED, KNOWN, expected -17.429\n    test 663 GeoidPGM('egm96-5.pgm').height(-28.687, 3.37) kind 3: lli ('-28.68714, 3.370196'), H (False) or wrap (False): lli ('-28.68714, 3.370196'): outside on SE  FAILED, KNOWN, expected 24.037\n    test 664 GeoidPGM('egm96-5.pgm').height(-15.008, 117.45) kind 3: lli ('-15.007944, 117.449536'), H (False) or wrap (False): lli ('-15.007944, 117.449536'): outside on SE  FAILED, KNOWN, expected 4.520\n    test 665 GeoidPGM('egm96-5.pgm').height(40.71, 144.095) kind 3: lli ('40.710024, 144.095126'), H (False) or wrap (False): lli ('40.710024, 144.095126'): outside on E  FAILED, KNOWN, expected 11.394\n    test 666 GeoidPGM('egm96-5.pgm').height(20.823, -173.611) kind 3: lli ('20.823096, -173.610797'), H (False) or wrap (False): lli ('20.823096, -173.610797'): outside on SW  FAILED, KNOWN, expected 5.679\n    test 667 GeoidPGM('egm96-5.pgm').height(16.776, -3.009) kind 3: lli ('16.776, -3.009'), H (False) or wrap (False): lli ('16.776, -3.009'): outside on SE  FAILED, KNOWN, expected 28.707\n    test 668 GeoidPGM('egm96-5.pgm').height(41.0, -95.0) kind 3: -30.261  FAILED, KNOWN, expected -30.262\n    test 669 GeoidPGM('egm96-5.pgm').height(49.0, -120.5) kind 3: -15.984\n    test 670 GeoidPGM('egm96-5.pgm').height(49.0, -103.5) kind 3: -18.636  FAILED, KNOWN, expected -18.635\n    test 671 GeoidPGM('egm96-5.pgm').height(49.0, -86.5) kind 3: -37.749\n    test 672 GeoidPGM('egm96-5.pgm').height(49.0, -69.5) kind 3: -26.691\n    test 673 GeoidPGM('egm96-5.pgm').height(33.0, -120.5) kind 3: -39.561\n    test 674 GeoidPGM('egm96-5.pgm').height(33.0, -103.5) kind 3: -22.563  FAILED, KNOWN, expected -22.562\n    test 675 GeoidPGM('egm96-5.pgm').height(33.0, -86.5) kind 3: -30.012\n    test 676 GeoidPGM('egm96-5.pgm').height(33.0, -69.5) kind 3: -48.039\n\n    test 677 GeoidPGM('egm96-5.pgm').height() kind 3, eps max (in 0 FAILED): 0.001116\n    test 678 GeoidPGM('egm96-5.pgm').height() kind 3, eps mean (of 15 total): 0.000383\n    test 679 GeoidPGM('egm96-5.pgm').height() kind 3, eps stdev (of 15 total): 0.000294\n    test 680 GeoidPGM('egm96-5.pgm').highest(): 45.0, -110.083, -7.479\n    test 681 GeoidPGM('egm96-5.pgm').lowerleft(): 25.0, -125.0, -45.543\n    test 682 GeoidPGM('egm96-5.pgm').lowerright(): 25.0, -64.917, -51.106\n    test 683 GeoidPGM('egm96-5.pgm').lowest(): 25.75, -69.583, -52.671\n    test 684 GeoidPGM('egm96-5.pgm').upperleft(): 55.0, -125.0, -10.221\n    test 685 GeoidPGM('egm96-5.pgm').upperright(): 55.0, -64.917, -16.097\n    test 686 GeoidPGM('egm96-5.pgm').dtype: (\"dtype('float64')\",)\n    test 687 GeoidPGM('egm96-5.pgm').knots: ('260281',)\n    test 688 GeoidPGM('egm96-5.pgm').mean: ('-29.816',)\n    test 689 GeoidPGM('egm96-5.pgm').nBytes: ('2082248',)\n    test 690 GeoidPGM('egm96-5.pgm').smooth: ('0',)\n    test 691 GeoidPGM('egm96-5.pgm').stdev: ('9.503',)\n    test 692 GeoidPGM('egm96-5.pgm')._g2ll2(180, 360): (180, 0.0)\n    test 693 GeoidPGM('egm96-5.pgm')._ll2g2(180, 360): (180, 720.0)\n    test 694 GeoidPGM('egm96-5.pgm')._swne: (-10.0, -100.0, 10.0, 100.0)\n    test 695 GeoidPGM('egm96-5.pgm')._swne: (-10.0, -100.0, 10.0, 100.0)\n    test 696 GeoidPGM('egm96-5.pgm').toStr: GeoidPGM('egm96-5.pgm'): lowerleft(25.0, -125.0, -45.543), upperright(55.0, -64.917, -16.097), center(40.0, -94.958, -32.13), highest(45.0, -110.083, -7.479), lowest(25.75, -69.583, -52.671)\n\n    test 697 closed: True\n    test 698 copy(<class 'type'>): (<class 'pygeodesy.geoids.GeoidPGM'>, True)\n    test 699 GeoidPGM.copy(): (<class 'pygeodesy.geoids.GeoidPGM'>, True)\n    test 700 GeoidKarney('egm2008-1.pgm').height(-76.981, 34.17) kind 2: 12.637  FAILED, KNOWN, expected 12.636\n    test 701 GeoidKarney('egm2008-1.pgm').height(79.695, 88.806) kind 2: 0.749\n    test 702 GeoidKarney('egm2008-1.pgm').height(-15.245, 168.748) kind 2: 65.110  FAILED, KNOWN, expected 65.109\n    test 703 GeoidKarney('egm2008-1.pgm').height(-19.379, 15.855) kind 2: 24.889\n    test 704 GeoidKarney('egm2008-1.pgm').height(43.378, -130.552) kind 2: -29.557\n    test 705 GeoidKarney('egm2008-1.pgm').height(-16.075, 21.795) kind 2: 9.741  FAILED, KNOWN, expected 9.742\n    test 706 GeoidKarney('egm2008-1.pgm').height(-11.256, -73.75) kind 2: 30.061  FAILED, KNOWN, expected 30.059\n    test 707 GeoidKarney('egm2008-1.pgm').height(69.017, -15.921) kind 2: 60.691  FAILED, KNOWN, expected 60.690\n    test 708 GeoidKarney('egm2008-1.pgm').height(2.221, 139.739) kind 2: 69.134  FAILED, KNOWN, expected 69.133\n    test 709 GeoidKarney('egm2008-1.pgm').height(-9.097, 119.142) kind 2: 36.522  FAILED, KNOWN, expected 36.520\n    test 710 GeoidKarney('egm2008-1.pgm').height(-28.524, -22.192) kind 2: 6.801\n    test 711 GeoidKarney('egm2008-1.pgm').height(12.272, -136.424) kind 2: -20.652  FAILED, KNOWN, expected -20.651\n    test 712 GeoidKarney('egm2008-1.pgm').height(-15.203, -85.604) kind 2: -3.040\n    test 713 GeoidKarney('egm2008-1.pgm').height(-63.736, -77.17) kind 2: -1.329  FAILED, KNOWN, expected -1.328\n    test 714 GeoidKarney('egm2008-1.pgm').height(-48.771, -90.102) kind 2: -2.171  FAILED, KNOWN, expected -2.172\n    test 715 GeoidKarney('egm2008-1.pgm').height(-0.179, -126.368) kind 2: -17.411\n    test 716 GeoidKarney('egm2008-1.pgm').height(1.586, -128.887) kind 2: -16.426  FAILED, KNOWN, expected -16.425\n    test 717 GeoidKarney('egm2008-1.pgm').height(-48.781, -2.684) kind 2: 24.699  FAILED, KNOWN, expected 24.698\n    test 718 GeoidKarney('egm2008-1.pgm').height(-49.092, 136.862) kind 2: -18.328  FAILED, KNOWN, expected -18.329\n    test 719 GeoidKarney('egm2008-1.pgm').height(47.732, 17.552) kind 2: 43.802\n    test 720 GeoidKarney('egm2008-1.pgm').height(-49.11, 85.706) kind 2: 18.716\n    test 721 GeoidKarney('egm2008-1.pgm').height(-49.162, 40.321) kind 2: 44.468  FAILED, KNOWN, expected 44.469\n    test 722 GeoidKarney('egm2008-1.pgm').height(3.498, 158.118) kind 2: 49.943  FAILED, KNOWN, expected 49.944\n    test 723 GeoidKarney('egm2008-1.pgm').height(-35.616, 122.648) kind 2: -35.878\n    test 724 GeoidKarney('egm2008-1.pgm').height(56.598, -96.114) kind 2: -40.777\n    test 725 GeoidKarney('egm2008-1.pgm').height(-31.85, 149.121) kind 2: 26.560  FAILED, KNOWN, expected 26.559\n    test 726 GeoidKarney('egm2008-1.pgm').height(-26.569, -177.792) kind 2: 49.361\n    test 727 GeoidKarney('egm2008-1.pgm').height(76.735, -65.753) kind 2: 21.106  FAILED, KNOWN, expected 21.107\n    test 728 GeoidKarney('egm2008-1.pgm').height(-21.404, -122.268) kind 2: -7.202\n    test 729 GeoidKarney('egm2008-1.pgm').height(-77.133, -65.474) kind 2: -17.168\n    test 730 GeoidKarney('egm2008-1.pgm').height(-58.812, 2.276) kind 2: 18.359\n    test 731 GeoidKarney('egm2008-1.pgm').height(4.415, 155.683) kind 2: 52.118\n    test 732 GeoidKarney('egm2008-1.pgm').height(-28.146, 107.081) kind 2: -38.949  FAILED, KNOWN, expected -38.950\n    test 733 GeoidKarney('egm2008-1.pgm').height(-10.551, -126.69) kind 2: -9.935  FAILED, KNOWN, expected -9.934\n    test 734 GeoidKarney('egm2008-1.pgm').height(-25.444, -103.337) kind 2: -2.879\n    test 735 GeoidKarney('egm2008-1.pgm').height(24.436, 46.159) kind 2: -5.025\n    test 736 GeoidKarney('egm2008-1.pgm').height(-72.889, 37.107) kind 2: 24.296\n    test 737 GeoidKarney('egm2008-1.pgm').height(-19.629, 13.245) kind 2: 25.131\n    test 738 GeoidKarney('egm2008-1.pgm').height(-7.602, 171.265) kind 2: 40.720  FAILED, KNOWN, expected 40.721\n    test 739 GeoidKarney('egm2008-1.pgm').height(-45.364, -1.876) kind 2: 22.388\n    test 740 GeoidKarney('egm2008-1.pgm').height(-7.292, -69.18) kind 2: 22.485  FAILED, KNOWN, expected 22.486\n    test 741 GeoidKarney('egm2008-1.pgm').height(-31.566, -166.689) kind 2: 14.942  FAILED, KNOWN, expected 14.943\n    test 742 GeoidKarney('egm2008-1.pgm').height(-82.751, -162.085) kind 2: -47.387\n    test 743 GeoidKarney('egm2008-1.pgm').height(-40.7, 99.466) kind 2: -18.404  FAILED, KNOWN, expected -18.403\n    test 744 GeoidKarney('egm2008-1.pgm').height(48.676, 39.69) kind 2: 10.186  FAILED, KNOWN, expected 10.185\n    test 745 GeoidKarney('egm2008-1.pgm').height(74.817, -78.404) kind 2: 5.671\n    test 746 GeoidKarney('egm2008-1.pgm').height(-81.032, -63.865) kind 2: -24.577\n    test 747 GeoidKarney('egm2008-1.pgm').height(74.022, 9.432) kind 2: 43.288\n    test 748 GeoidKarney('egm2008-1.pgm').height(-75.071, 17.579) kind 2: 13.747  FAILED, KNOWN, expected 13.748\n    test 749 GeoidKarney('egm2008-1.pgm').height(-12.546, -54.851) kind 2: -5.342\n    test 750 GeoidKarney('egm2008-1.pgm').height(-13.621, 42.408) kind 2: -25.579\n    test 751 GeoidKarney('egm2008-1.pgm').height(-2.266, -91.951) kind 2: -9.849\n    test 752 GeoidKarney('egm2008-1.pgm').height(-18.672, 42.547) kind 2: -10.491\n    test 753 GeoidKarney('egm2008-1.pgm').height(-41.44, 157.413) kind 2: 0.243  FAILED, KNOWN, expected 0.244\n    test 754 GeoidKarney('egm2008-1.pgm').height(53.686, -79.375) kind 2: -43.820  FAILED, KNOWN, expected -43.821\n    test 755 GeoidKarney('egm2008-1.pgm').height(39.26, -30.351) kind 2: 57.400  FAILED, KNOWN, expected 57.401\n    test 756 GeoidKarney('egm2008-1.pgm').height(-51.699, -141.493) kind 2: -17.889  FAILED, KNOWN, expected -17.890\n    test 757 GeoidKarney('egm2008-1.pgm').height(36.585, 4.515) kind 2: 46.422  FAILED, KNOWN, expected 46.421\n    test 758 GeoidKarney('egm2008-1.pgm').height(39.642, -54.659) kind 2: -14.475\n    test 759 GeoidKarney('egm2008-1.pgm').height(59.761, 166.567) kind 2: 11.119  FAILED, KNOWN, expected 11.118\n    test 760 GeoidKarney('egm2008-1.pgm').height(51.83, 13.357) kind 2: 42.291\n    test 761 GeoidKarney('egm2008-1.pgm').height(-36.531, -175.431) kind 2: 22.327  FAILED, KNOWN, expected 22.326\n    test 762 GeoidKarney('egm2008-1.pgm').height(-37.08, 125.264) kind 2: -33.098\n    test 763 GeoidKarney('egm2008-1.pgm').height(-68.651, 92.732) kind 2: 9.431  FAILED, KNOWN, expected 9.430\n    test 764 GeoidKarney('egm2008-1.pgm').height(35.087, 45.336) kind 2: 6.032\n    test 765 GeoidKarney('egm2008-1.pgm').height(-61.356, -169.379) kind 2: -44.330\n    test 766 GeoidKarney('egm2008-1.pgm').height(-36.955, 179.12) kind 2: 21.775\n    test 767 GeoidKarney('egm2008-1.pgm').height(10.248, -6.714) kind 2: 29.243\n    test 768 GeoidKarney('egm2008-1.pgm').height(36.868, 84.602) kind 2: -40.677  FAILED, KNOWN, expected -40.676\n    test 769 GeoidKarney('egm2008-1.pgm').height(28.637, 88.933) kind 2: -31.353\n    test 770 GeoidKarney('egm2008-1.pgm').height(54.811, -99.968) kind 2: -32.700  FAILED, KNOWN, expected -32.701\n    test 771 GeoidKarney('egm2008-1.pgm').height(7.611, 145.911) kind 2: 60.628  FAILED, KNOWN, expected 60.629\n    test 772 GeoidKarney('egm2008-1.pgm').height(59.412, 170.102) kind 2: 6.617\n    test 773 GeoidKarney('egm2008-1.pgm').height(-61.469, 126.144) kind 2: -31.888  FAILED, KNOWN, expected -31.887\n    test 774 GeoidKarney('egm2008-1.pgm').height(18.514, -137.083) kind 2: -26.536  FAILED, KNOWN, expected -26.535\n    test 775 GeoidKarney('egm2008-1.pgm').height(7.854, -126.799) kind 2: -29.631  FAILED, KNOWN, expected -29.630\n    test 776 GeoidKarney('egm2008-1.pgm').height(47.489, 134.183) kind 2: 22.274  FAILED, KNOWN, expected 22.275\n    test 777 GeoidKarney('egm2008-1.pgm').height(-34.144, -11.922) kind 2: 17.095  FAILED, KNOWN, expected 17.094\n    test 778 GeoidKarney('egm2008-1.pgm').height(-58.389, 117.458) kind 2: -20.940  FAILED, KNOWN, expected -20.941\n    test 779 GeoidKarney('egm2008-1.pgm').height(9.773, 95.846) kind 2: -42.740\n    test 780 GeoidKarney('egm2008-1.pgm').height(-53.12, 136.994) kind 2: -21.651\n    test 781 GeoidKarney('egm2008-1.pgm').height(-50.35, 0.075) kind 2: 25.240\n    test 782 GeoidKarney('egm2008-1.pgm').height(31.438, -170.879) kind 2: -8.758\n    test 783 GeoidKarney('egm2008-1.pgm').height(37.541, -153.024) kind 2: -19.606  FAILED, KNOWN, expected -19.607\n    test 784 GeoidKarney('egm2008-1.pgm').height(27.586, 2.444) kind 2: 26.258\n    test 785 GeoidKarney('egm2008-1.pgm').height(-26.139, -106.201) kind 2: -3.824\n    test 786 GeoidKarney('egm2008-1.pgm').height(-33.426, -14.84) kind 2: 18.194  FAILED, KNOWN, expected 18.195\n    test 787 GeoidKarney('egm2008-1.pgm').height(39.586, -153.019) kind 2: -17.724  FAILED, KNOWN, expected -17.725\n    test 788 GeoidKarney('egm2008-1.pgm').height(-60.79, -2.578) kind 2: 14.511  FAILED, KNOWN, expected 14.513\n    test 789 GeoidKarney('egm2008-1.pgm').height(-20.131, 21.975) kind 2: 16.808  FAILED, KNOWN, expected 16.809\n    test 790 GeoidKarney('egm2008-1.pgm').height(75.649, 99.921) kind 2: -8.025  FAILED, KNOWN, expected -8.026\n    test 791 GeoidKarney('egm2008-1.pgm').height(-0.385, -23.788) kind 2: 9.688\n    test 792 GeoidKarney('egm2008-1.pgm').height(-51.56, -50.327) kind 2: 6.218\n    test 793 GeoidKarney('egm2008-1.pgm').height(-43.129, -167.271) kind 2: -2.725  FAILED, KNOWN, expected -2.724\n    test 794 GeoidKarney('egm2008-1.pgm').height(46.374, 71.948) kind 2: -42.566  FAILED, KNOWN, expected -42.565\n    test 795 GeoidKarney('egm2008-1.pgm').height(-22.783, 140.657) kind 2: 38.341\n    test 796 GeoidKarney('egm2008-1.pgm').height(-12.056, 122.804) kind 2: 33.888  FAILED, KNOWN, expected 33.889\n    test 797 GeoidKarney('egm2008-1.pgm').height(30.127, 94.738) kind 2: -37.382  FAILED, KNOWN, expected -37.380\n    test 798 GeoidKarney('egm2008-1.pgm').height(46.296, -174.479) kind 2: -1.857  FAILED, KNOWN, expected -1.858\n    test 799 GeoidKarney('egm2008-1.pgm').height(34.99, 15.052) kind 2: 34.196  FAILED, KNOWN, expected 34.195\n    test 800 GeoidKarney('egm2008-1.pgm').height(-51.287, 90.565) kind 2: 12.767\n    test 801 GeoidKarney('egm2008-1.pgm').height(34.217, 141.302) kind 2: 15.612\n    test 802 GeoidKarney('egm2008-1.pgm').height(-40.423, -142.787) kind 2: -11.063\n    test 803 GeoidKarney('egm2008-1.pgm').height(-17.854, -170.216) kind 2: 27.387\n    test 804 GeoidKarney('egm2008-1.pgm').height(47.803, 112.701) kind 2: -23.817\n    test 805 GeoidKarney('egm2008-1.pgm').height(-23.276, 133.454) kind 2: 18.713  FAILED, KNOWN, expected 18.712\n    test 806 GeoidKarney('egm2008-1.pgm').height(-26.884, -36.571) kind 2: -7.343  FAILED, KNOWN, expected -7.344\n    test 807 GeoidKarney('egm2008-1.pgm').height(-37.106, 31.128) kind 2: 29.997  FAILED, KNOWN, expected 29.998\n    test 808 GeoidKarney('egm2008-1.pgm').height(-75.363, -173.674) kind 2: -61.869\n    test 809 GeoidKarney('egm2008-1.pgm').height(-18.305, 69.016) kind 2: -24.937\n    test 810 GeoidKarney('egm2008-1.pgm').height(39.527, 23.58) kind 2: 38.558  FAILED, KNOWN, expected 38.556\n    test 811 GeoidKarney('egm2008-1.pgm').height(68.903, 30.97) kind 2: 19.672  FAILED, KNOWN, expected 19.671\n    test 812 GeoidKarney('egm2008-1.pgm').height(53.937, 168.318) kind 2: 2.273  FAILED, KNOWN, expected 2.272\n    test 813 GeoidKarney('egm2008-1.pgm').height(-38.6, 64.812) kind 2: 24.863\n    test 814 GeoidKarney('egm2008-1.pgm').height(-41.396, -69.739) kind 2: 21.637  FAILED, KNOWN, expected 21.636\n    test 815 GeoidKarney('egm2008-1.pgm').height(50.158, 72.319) kind 2: -33.851\n    test 816 GeoidKarney('egm2008-1.pgm').height(27.692, 176.153) kind 2: -5.299\n    test 817 GeoidKarney('egm2008-1.pgm').height(-48.419, 170.454) kind 2: -6.789\n    test 818 GeoidKarney('egm2008-1.pgm').height(-65.346, -124.976) kind 2: -35.030\n    test 819 GeoidKarney('egm2008-1.pgm').height(-51.873, 167.266) kind 2: -15.338\n    test 820 GeoidKarney('egm2008-1.pgm').height(-7.263, 84.308) kind 2: -79.356\n    test 821 GeoidKarney('egm2008-1.pgm').height(-1.461, -105.458) kind 2: -16.650\n    test 822 GeoidKarney('egm2008-1.pgm').height(7.684, 161.873) kind 2: 36.358  FAILED, KNOWN, expected 36.359\n    test 823 GeoidKarney('egm2008-1.pgm').height(-31.475, -158.52) kind 2: 3.614  FAILED, KNOWN, expected 3.615\n    test 824 GeoidKarney('egm2008-1.pgm').height(-36.187, 62.917) kind 2: 23.946  FAILED, KNOWN, expected 23.947\n    test 825 GeoidKarney('egm2008-1.pgm').height(16.003, 141.687) kind 2: 51.495\n    test 826 GeoidKarney('egm2008-1.pgm').height(30.182, 86.261) kind 2: -30.909  FAILED, KNOWN, expected -30.910\n    test 827 GeoidKarney('egm2008-1.pgm').height(-77.304, 159.498) kind 2: -52.131\n    test 828 GeoidKarney('egm2008-1.pgm').height(39.536, 139.795) kind 2: 37.046  FAILED, KNOWN, expected 37.045\n    test 829 GeoidKarney('egm2008-1.pgm').height(8.569, 134.618) kind 2: 64.181  FAILED, KNOWN, expected 64.180\n    test 830 GeoidKarney('egm2008-1.pgm').height(14.473, 90.596) kind 2: -62.475\n    test 831 GeoidKarney('egm2008-1.pgm').height(-13.138, -99.589) kind 2: -8.454\n    test 832 GeoidKarney('egm2008-1.pgm').height(34.212, -26.307) kind 2: 40.834\n    test 833 GeoidKarney('egm2008-1.pgm').height(21.89, 76.371) kind 2: -60.456  FAILED, KNOWN, expected -60.455\n    test 834 GeoidKarney('egm2008-1.pgm').height(29.793, 120.487) kind 2: 9.727\n    test 835 GeoidKarney('egm2008-1.pgm').height(15.724, 122.714) kind 2: 32.143  FAILED, KNOWN, expected 32.142\n    test 836 GeoidKarney('egm2008-1.pgm').height(-66.208, -78.499) kind 2: -6.221  FAILED, KNOWN, expected -6.220\n    test 837 GeoidKarney('egm2008-1.pgm').height(-39.507, 55.809) kind 2: 32.489\n    test 838 GeoidKarney('egm2008-1.pgm').height(28.159, 51.476) kind 2: -24.692\n    test 839 GeoidKarney('egm2008-1.pgm').height(-36.207, 120.205) kind 2: -38.748  FAILED, KNOWN, expected -38.749\n    test 840 GeoidKarney('egm2008-1.pgm').height(30.575, -99.998) kind 2: -23.254  FAILED, KNOWN, expected -23.255\n    test 841 GeoidKarney('egm2008-1.pgm').height(-16.993, 37.136) kind 2: -13.454  FAILED, KNOWN, expected -13.455\n    test 842 GeoidKarney('egm2008-1.pgm').height(-11.477, 12.039) kind 2: 16.627\n    test 843 GeoidKarney('egm2008-1.pgm').height(30.428, -144.765) kind 2: -22.221\n    test 844 GeoidKarney('egm2008-1.pgm').height(-17.44, -92.424) kind 2: -4.836\n    test 845 GeoidKarney('egm2008-1.pgm').height(40.203, 143.43) kind 2: 19.571\n    test 846 GeoidKarney('egm2008-1.pgm').height(-37.098, -106.574) kind 2: -9.227\n    test 847 GeoidKarney('egm2008-1.pgm').height(54.62, -68.413) kind 2: -23.248\n    test 848 GeoidKarney('egm2008-1.pgm').height(-31.633, 148.182) kind 2: 24.829\n    test 849 GeoidKarney('egm2008-1.pgm').height(-56.07, -141.407) kind 2: -21.706  FAILED, KNOWN, expected -21.705\n    test 850 GeoidKarney('egm2008-1.pgm').height(-8.195, -52.691) kind 2: -17.054  FAILED, KNOWN, expected -17.053\n    test 851 GeoidKarney('egm2008-1.pgm').height(17.851, 24.749) kind 2: 11.716\n    test 852 GeoidKarney('egm2008-1.pgm').height(0.349, -108.333) kind 2: -19.529  FAILED, KNOWN, expected -19.530\n    test 853 GeoidKarney('egm2008-1.pgm').height(15.038, 126.191) kind 2: 45.929\n    test 854 GeoidKarney('egm2008-1.pgm').height(-21.111, -123.696) kind 2: -8.283\n    test 855 GeoidKarney('egm2008-1.pgm').height(30.947, 173.002) kind 2: -8.467\n    test 856 GeoidKarney('egm2008-1.pgm').height(-10.698, -144.091) kind 2: -1.829\n    test 857 GeoidKarney('egm2008-1.pgm').height(-29.412, 124.753) kind 2: -16.505  FAILED, KNOWN, expected -16.506\n    test 858 GeoidKarney('egm2008-1.pgm').height(38.224, -137.189) kind 2: -35.384\n    test 859 GeoidKarney('egm2008-1.pgm').height(36.064, -132.409) kind 2: -38.962  FAILED, KNOWN, expected -38.963\n    test 860 GeoidKarney('egm2008-1.pgm').height(29.975, 178.076) kind 2: -6.956\n    test 861 GeoidKarney('egm2008-1.pgm').height(-21.346, 169.26) kind 2: 51.006  FAILED, KNOWN, expected 51.005\n    test 862 GeoidKarney('egm2008-1.pgm').height(49.282, -152.934) kind 2: 1.193  FAILED, KNOWN, expected 1.192\n    test 863 GeoidKarney('egm2008-1.pgm').height(16.349, -99.962) kind 2: -15.038\n    test 864 GeoidKarney('egm2008-1.pgm').height(-14.293, -167.34) kind 2: 17.792  FAILED, KNOWN, expected 17.791\n    test 865 GeoidKarney('egm2008-1.pgm').height(47.166, -38.523) kind 2: 44.653  FAILED, KNOWN, expected 44.652\n    test 866 GeoidKarney('egm2008-1.pgm').height(-58.911, 114.347) kind 2: -17.972  FAILED, KNOWN, expected -17.971\n    test 867 GeoidKarney('egm2008-1.pgm').height(-9.055, 111.294) kind 2: 11.631\n    test 868 GeoidKarney('egm2008-1.pgm').height(18.391, 29.692) kind 2: 7.394\n    test 869 GeoidKarney('egm2008-1.pgm').height(-15.074, 22.153) kind 2: 7.932\n    test 870 GeoidKarney('egm2008-1.pgm').height(-4.235, 62.001) kind 2: -60.594  FAILED, KNOWN, expected -60.593\n    test 871 GeoidKarney('egm2008-1.pgm').height(15.171, -86.583) kind 2: 4.382  FAILED, KNOWN, expected 4.384\n    test 872 GeoidKarney('egm2008-1.pgm').height(79.254, 112.116) kind 2: 1.296  FAILED, KNOWN, expected 1.297\n    test 873 GeoidKarney('egm2008-1.pgm').height(15.947, 156.093) kind 2: 30.852\n    test 874 GeoidKarney('egm2008-1.pgm').height(68.371, -177.382) kind 2: 2.705  FAILED, KNOWN, expected 2.704\n    test 875 GeoidKarney('egm2008-1.pgm').height(-41.931, -72.093) kind 2: 21.263  FAILED, KNOWN, expected 21.264\n    test 876 GeoidKarney('egm2008-1.pgm').height(-1.193, -143.133) kind 2: 5.443\n    test 877 GeoidKarney('egm2008-1.pgm').height(-37.006, 154.513) kind 2: 9.998\n    test 878 GeoidKarney('egm2008-1.pgm').height(-22.148, 9.938) kind 2: 22.428\n    test 879 GeoidKarney('egm2008-1.pgm').height(24.329, 109.044) kind 2: -23.156  FAILED, KNOWN, expected -23.154\n    test 880 GeoidKarney('egm2008-1.pgm').height(-54.878, 114.691) kind 2: -17.662\n    test 881 GeoidKarney('egm2008-1.pgm').height(45.601, -80.458) kind 2: -36.840  FAILED, KNOWN, expected -36.839\n    test 882 GeoidKarney('egm2008-1.pgm').height(2.372, 58.974) kind 2: -61.220  FAILED, KNOWN, expected -61.221\n    test 883 GeoidKarney('egm2008-1.pgm').height(15.937, 165.854) kind 2: 20.355\n    test 884 GeoidKarney('egm2008-1.pgm').height(4.889, -24.213) kind 2: 13.147\n    test 885 GeoidKarney('egm2008-1.pgm').height(-11.392, 179.558) kind 2: 41.072\n    test 886 GeoidKarney('egm2008-1.pgm').height(58.246, 4.862) kind 2: 42.982\n    test 887 GeoidKarney('egm2008-1.pgm').height(34.302, -109.109) kind 2: -22.997  FAILED, KNOWN, expected -22.998\n    test 888 GeoidKarney('egm2008-1.pgm').height(-58.196, 117.306) kind 2: -20.662\n    test 889 GeoidKarney('egm2008-1.pgm').height(44.5, 173.769) kind 2: -8.438\n    test 890 GeoidKarney('egm2008-1.pgm').height(-28.863, -139.775) kind 2: -8.711  FAILED, KNOWN, expected -8.712\n    test 891 GeoidKarney('egm2008-1.pgm').height(19.507, -96.099) kind 2: -12.654  FAILED, KNOWN, expected -12.653\n    test 892 GeoidKarney('egm2008-1.pgm').height(-42.488, -73.907) kind 2: 17.163  FAILED, KNOWN, expected 17.166\n    test 893 GeoidKarney('egm2008-1.pgm').height(46.138, -141.429) kind 2: -19.873  FAILED, KNOWN, expected -19.874\n    test 894 GeoidKarney('egm2008-1.pgm').height(60.507, 93.743) kind 2: -31.124\n    test 895 GeoidKarney('egm2008-1.pgm').height(26.219, -145.434) kind 2: -17.307\n    test 896 GeoidKarney('egm2008-1.pgm').height(-28.687, 3.37) kind 2: 23.437  FAILED, KNOWN, expected 23.434\n    test 897 GeoidKarney('egm2008-1.pgm').height(-15.008, 117.45) kind 2: 4.508\n    test 898 GeoidKarney('egm2008-1.pgm').height(40.71, 144.095) kind 2: 11.550  FAILED, KNOWN, expected 11.549\n    test 899 GeoidKarney('egm2008-1.pgm').height(20.823, -173.611) kind 2: 5.749  FAILED, KNOWN, expected 5.748\n    test 900 GeoidKarney('egm2008-1.pgm').height(16.776, -3.009) kind 2: 28.788\n    test 901 GeoidKarney('egm2008-1.pgm').height(41.0, -95.0) kind 2: -30.588  FAILED, KNOWN, expected -30.589\n    test 902 GeoidKarney('egm2008-1.pgm').height(49.0, -120.5) kind 2: -15.273\n    test 903 GeoidKarney('egm2008-1.pgm').height(49.0, -103.5) kind 2: -18.624\n    test 904 GeoidKarney('egm2008-1.pgm').height(49.0, -86.5) kind 2: -37.872  FAILED, KNOWN, expected -37.873\n    test 905 GeoidKarney('egm2008-1.pgm').height(49.0, -69.5) kind 2: -26.511\n    test 906 GeoidKarney('egm2008-1.pgm').height(33.0, -120.5) kind 2: -39.600\n    test 907 GeoidKarney('egm2008-1.pgm').height(33.0, -103.5) kind 2: -22.689\n    test 908 GeoidKarney('egm2008-1.pgm').height(33.0, -86.5) kind 2: -30.066  FAILED, KNOWN, expected -30.067\n    test 909 GeoidKarney('egm2008-1.pgm').height(33.0, -69.5) kind 2: -48.093\n\n    test 910 GeoidKarney('egm2008-1.pgm').height() kind 2, hits 0, eps max (in 0 FAILED): 0.002537\n    test 911 GeoidKarney('egm2008-1.pgm').height() kind 2, hits 0, eps mean (of 210 total): 0.000543\n    test 912 GeoidKarney('egm2008-1.pgm').height() kind 2, hits 0, eps stdev (of 210 total): 0.000458\n    test 913 GeoidKarney('egm2008-1.pgm').highest(): -8.4, 147.367, 85.839\n    test 914 GeoidKarney('egm2008-1.pgm').lowerleft(): -90.0, -180.0, -30.15\n    test 915 GeoidKarney('egm2008-1.pgm').lowerright(): -90.0, 180.0, -30.15\n    test 916 GeoidKarney('egm2008-1.pgm').lowest(): 4.7, 78.767, -106.911\n    test 917 GeoidKarney('egm2008-1.pgm').upperleft(): 90.0, -180.0, 14.898\n    test 918 GeoidKarney('egm2008-1.pgm').upperright(): 90.0, 180.0, 14.898\n    test 919 GeoidKarney('egm2008-1.pgm').dtype: (\"'ushort'\",)\n    test 920 GeoidKarney('egm2008-1.pgm').knots: ('233301600',)\n    test 921 GeoidKarney('egm2008-1.pgm').mean: ('-1.317',)\n    test 922 GeoidKarney('egm2008-1.pgm').nBytes: ('None',)\n    test 923 GeoidKarney('egm2008-1.pgm').smooth: ('None',)\n    test 924 GeoidKarney('egm2008-1.pgm').stdev: ('29.244',)\n    test 925 GeoidKarney('egm2008-1.pgm')._g2ll2(180, 360): (180, 0.0)\n    test 926 GeoidKarney('egm2008-1.pgm')._ll2g2(180, 360): (180, 360)\n    test 927 GeoidKarney('egm2008-1.pgm')._swne: (-10.0, -100.0, 10.0, 100.0)\n    test 928 GeoidKarney('egm2008-1.pgm')._swne: (-10.0, -100.0, 10.0, 100.0)\n    test 929 GeoidKarney('egm2008-1.pgm').toStr: GeoidKarney('egm2008-1.pgm'): lowerleft(-90.0, -180.0, -30.15), upperright(90.0, 180.0, 14.898), center(0.0, 0.0, 17.226), highest(-8.4, 147.367, 85.839), lowest(4.7, 78.767, -106.911)\n\n    test 930 closed: True\n    test 931 copy(<class 'type'>): (<class 'pygeodesy.geoids.GeoidKarney'>, True)\n    test 932 GeoidKarney.copy(): (<class 'pygeodesy.geoids.GeoidKarney'>, True)\n    test 933 GeoidKarney('egm2008-1.pgm').height(-76.981, 34.17) kind 3: 12.637  FAILED, KNOWN, expected 12.636\n    test 934 GeoidKarney('egm2008-1.pgm').height(79.695, 88.806) kind 3: 0.749\n    test 935 GeoidKarney('egm2008-1.pgm').height(-15.245, 168.748) kind 3: 65.110  FAILED, KNOWN, expected 65.109\n    test 936 GeoidKarney('egm2008-1.pgm').height(-19.379, 15.855) kind 3: 24.889\n    test 937 GeoidKarney('egm2008-1.pgm').height(43.378, -130.552) kind 3: -29.556  FAILED, KNOWN, expected -29.557\n    test 938 GeoidKarney('egm2008-1.pgm').height(-16.075, 21.795) kind 3: 9.741  FAILED, KNOWN, expected 9.742\n    test 939 GeoidKarney('egm2008-1.pgm').height(-11.256, -73.75) kind 3: 30.060  FAILED, KNOWN, expected 30.059\n    test 940 GeoidKarney('egm2008-1.pgm').height(69.017, -15.921) kind 3: 60.690\n    test 941 GeoidKarney('egm2008-1.pgm').height(2.221, 139.739) kind 3: 69.134  FAILED, KNOWN, expected 69.133\n    test 942 GeoidKarney('egm2008-1.pgm').height(-9.097, 119.142) kind 3: 36.521  FAILED, KNOWN, expected 36.520\n    test 943 GeoidKarney('egm2008-1.pgm').height(-28.524, -22.192) kind 3: 6.801\n    test 944 GeoidKarney('egm2008-1.pgm').height(12.272, -136.424) kind 3: -20.652  FAILED, KNOWN, expected -20.651\n    test 945 GeoidKarney('egm2008-1.pgm').height(-15.203, -85.604) kind 3: -3.040\n    test 946 GeoidKarney('egm2008-1.pgm').height(-63.736, -77.17) kind 3: -1.329  FAILED, KNOWN, expected -1.328\n    test 947 GeoidKarney('egm2008-1.pgm').height(-48.771, -90.102) kind 3: -2.171  FAILED, KNOWN, expected -2.172\n    test 948 GeoidKarney('egm2008-1.pgm').height(-0.179, -126.368) kind 3: -17.411\n    test 949 GeoidKarney('egm2008-1.pgm').height(1.586, -128.887) kind 3: -16.426  FAILED, KNOWN, expected -16.425\n    test 950 GeoidKarney('egm2008-1.pgm').height(-48.781, -2.684) kind 3: 24.699  FAILED, KNOWN, expected 24.698\n    test 951 GeoidKarney('egm2008-1.pgm').height(-49.092, 136.862) kind 3: -18.328  FAILED, KNOWN, expected -18.329\n    test 952 GeoidKarney('egm2008-1.pgm').height(47.732, 17.552) kind 3: 43.802\n    test 953 GeoidKarney('egm2008-1.pgm').height(-49.11, 85.706) kind 3: 18.716\n    test 954 GeoidKarney('egm2008-1.pgm').height(-49.162, 40.321) kind 3: 44.468  FAILED, KNOWN, expected 44.469\n    test 955 GeoidKarney('egm2008-1.pgm').height(3.498, 158.118) kind 3: 49.943  FAILED, KNOWN, expected 49.944\n    test 956 GeoidKarney('egm2008-1.pgm').height(-35.616, 122.648) kind 3: -35.878\n    test 957 GeoidKarney('egm2008-1.pgm').height(56.598, -96.114) kind 3: -40.777\n    test 958 GeoidKarney('egm2008-1.pgm').height(-31.85, 149.121) kind 3: 26.559\n    test 959 GeoidKarney('egm2008-1.pgm').height(-26.569, -177.792) kind 3: 49.362  FAILED, KNOWN, expected 49.361\n    test 960 GeoidKarney('egm2008-1.pgm').height(76.735, -65.753) kind 3: 21.106  FAILED, KNOWN, expected 21.107\n    test 961 GeoidKarney('egm2008-1.pgm').height(-21.404, -122.268) kind 3: -7.203  FAILED, KNOWN, expected -7.202\n    test 962 GeoidKarney('egm2008-1.pgm').height(-77.133, -65.474) kind 3: -17.167  FAILED, KNOWN, expected -17.168\n    test 963 GeoidKarney('egm2008-1.pgm').height(-58.812, 2.276) kind 3: 18.359\n    test 964 GeoidKarney('egm2008-1.pgm').height(4.415, 155.683) kind 3: 52.117  FAILED, KNOWN, expected 52.118\n    test 965 GeoidKarney('egm2008-1.pgm').height(-28.146, 107.081) kind 3: -38.950\n    test 966 GeoidKarney('egm2008-1.pgm').height(-10.551, -126.69) kind 3: -9.935  FAILED, KNOWN, expected -9.934\n    test 967 GeoidKarney('egm2008-1.pgm').height(-25.444, -103.337) kind 3: -2.879\n    test 968 GeoidKarney('egm2008-1.pgm').height(24.436, 46.159) kind 3: -5.025\n    test 969 GeoidKarney('egm2008-1.pgm').height(-72.889, 37.107) kind 3: 24.296\n    test 970 GeoidKarney('egm2008-1.pgm').height(-19.629, 13.245) kind 3: 25.131\n    test 971 GeoidKarney('egm2008-1.pgm').height(-7.602, 171.265) kind 3: 40.720  FAILED, KNOWN, expected 40.721\n    test 972 GeoidKarney('egm2008-1.pgm').height(-45.364, -1.876) kind 3: 22.387  FAILED, KNOWN, expected 22.388\n    test 973 GeoidKarney('egm2008-1.pgm').height(-7.292, -69.18) kind 3: 22.485  FAILED, KNOWN, expected 22.486\n    test 974 GeoidKarney('egm2008-1.pgm').height(-31.566, -166.689) kind 3: 14.942  FAILED, KNOWN, expected 14.943\n    test 975 GeoidKarney('egm2008-1.pgm').height(-82.751, -162.085) kind 3: -47.387\n    test 976 GeoidKarney('egm2008-1.pgm').height(-40.7, 99.466) kind 3: -18.404  FAILED, KNOWN, expected -18.403\n    test 977 GeoidKarney('egm2008-1.pgm').height(48.676, 39.69) kind 3: 10.185\n    test 978 GeoidKarney('egm2008-1.pgm').height(74.817, -78.404) kind 3: 5.670  FAILED, KNOWN, expected 5.671\n    test 979 GeoidKarney('egm2008-1.pgm').height(-81.032, -63.865) kind 3: -24.577\n    test 980 GeoidKarney('egm2008-1.pgm').height(74.022, 9.432) kind 3: 43.288\n    test 981 GeoidKarney('egm2008-1.pgm').height(-75.071, 17.579) kind 3: 13.747  FAILED, KNOWN, expected 13.748\n    test 982 GeoidKarney('egm2008-1.pgm').height(-12.546, -54.851) kind 3: -5.342\n    test 983 GeoidKarney('egm2008-1.pgm').height(-13.621, 42.408) kind 3: -25.579\n    test 984 GeoidKarney('egm2008-1.pgm').height(-2.266, -91.951) kind 3: -9.849\n    test 985 GeoidKarney('egm2008-1.pgm').height(-18.672, 42.547) kind 3: -10.490  FAILED, KNOWN, expected -10.491\n    test 986 GeoidKarney('egm2008-1.pgm').height(-41.44, 157.413) kind 3: 0.243  FAILED, KNOWN, expected 0.244\n    test 987 GeoidKarney('egm2008-1.pgm').height(53.686, -79.375) kind 3: -43.820  FAILED, KNOWN, expected -43.821\n    test 988 GeoidKarney('egm2008-1.pgm').height(39.26, -30.351) kind 3: 57.401\n    test 989 GeoidKarney('egm2008-1.pgm').height(-51.699, -141.493) kind 3: -17.889  FAILED, KNOWN, expected -17.890\n    test 990 GeoidKarney('egm2008-1.pgm').height(36.585, 4.515) kind 3: 46.423  FAILED, KNOWN, expected 46.421\n    test 991 GeoidKarney('egm2008-1.pgm').height(39.642, -54.659) kind 3: -14.475\n    test 992 GeoidKarney('egm2008-1.pgm').height(59.761, 166.567) kind 3: 11.118\n    test 993 GeoidKarney('egm2008-1.pgm').height(51.83, 13.357) kind 3: 42.291\n    test 994 GeoidKarney('egm2008-1.pgm').height(-36.531, -175.431) kind 3: 22.327  FAILED, KNOWN, expected 22.326\n    test 995 GeoidKarney('egm2008-1.pgm').height(-37.08, 125.264) kind 3: -33.098\n    test 996 GeoidKarney('egm2008-1.pgm').height(-68.651, 92.732) kind 3: 9.431  FAILED, KNOWN, expected 9.430\n    test 997 GeoidKarney('egm2008-1.pgm').height(35.087, 45.336) kind 3: 6.032\n    test 998 GeoidKarney('egm2008-1.pgm').height(-61.356, -169.379) kind 3: -44.330\n    test 999 GeoidKarney('egm2008-1.pgm').height(-36.955, 179.12) kind 3: 21.775\n    test 1000 GeoidKarney('egm2008-1.pgm').height(10.248, -6.714) kind 3: 29.243\n    test 1001 GeoidKarney('egm2008-1.pgm').height(36.868, 84.602) kind 3: -40.677  FAILED, KNOWN, expected -40.676\n    test 1002 GeoidKarney('egm2008-1.pgm').height(28.637, 88.933) kind 3: -31.352  FAILED, KNOWN, expected -31.353\n    test 1003 GeoidKarney('egm2008-1.pgm').height(54.811, -99.968) kind 3: -32.700  FAILED, KNOWN, expected -32.701\n    test 1004 GeoidKarney('egm2008-1.pgm').height(7.611, 145.911) kind 3: 60.628  FAILED, KNOWN, expected 60.629\n    test 1005 GeoidKarney('egm2008-1.pgm').height(59.412, 170.102) kind 3: 6.617\n    test 1006 GeoidKarney('egm2008-1.pgm').height(-61.469, 126.144) kind 3: -31.887\n    test 1007 GeoidKarney('egm2008-1.pgm').height(18.514, -137.083) kind 3: -26.536  FAILED, KNOWN, expected -26.535\n    test 1008 GeoidKarney('egm2008-1.pgm').height(7.854, -126.799) kind 3: -29.631  FAILED, KNOWN, expected -29.630\n    test 1009 GeoidKarney('egm2008-1.pgm').height(47.489, 134.183) kind 3: 22.274  FAILED, KNOWN, expected 22.275\n    test 1010 GeoidKarney('egm2008-1.pgm').height(-34.144, -11.922) kind 3: 17.095  FAILED, KNOWN, expected 17.094\n    test 1011 GeoidKarney('egm2008-1.pgm').height(-58.389, 117.458) kind 3: -20.940  FAILED, KNOWN, expected -20.941\n    test 1012 GeoidKarney('egm2008-1.pgm').height(9.773, 95.846) kind 3: -42.740\n    test 1013 GeoidKarney('egm2008-1.pgm').height(-53.12, 136.994) kind 3: -21.651\n    test 1014 GeoidKarney('egm2008-1.pgm').height(-50.35, 0.075) kind 3: 25.240\n    test 1015 GeoidKarney('egm2008-1.pgm').height(31.438, -170.879) kind 3: -8.758\n    test 1016 GeoidKarney('egm2008-1.pgm').height(37.541, -153.024) kind 3: -19.606  FAILED, KNOWN, expected -19.607\n    test 1017 GeoidKarney('egm2008-1.pgm').height(27.586, 2.444) kind 3: 26.258\n    test 1018 GeoidKarney('egm2008-1.pgm').height(-26.139, -106.201) kind 3: -3.823  FAILED, KNOWN, expected -3.824\n    test 1019 GeoidKarney('egm2008-1.pgm').height(-33.426, -14.84) kind 3: 18.195\n    test 1020 GeoidKarney('egm2008-1.pgm').height(39.586, -153.019) kind 3: -17.724  FAILED, KNOWN, expected -17.725\n    test 1021 GeoidKarney('egm2008-1.pgm').height(-60.79, -2.578) kind 3: 14.512  FAILED, KNOWN, expected 14.513\n    test 1022 GeoidKarney('egm2008-1.pgm').height(-20.131, 21.975) kind 3: 16.808  FAILED, KNOWN, expected 16.809\n    test 1023 GeoidKarney('egm2008-1.pgm').height(75.649, 99.921) kind 3: -8.025  FAILED, KNOWN, expected -8.026\n    test 1024 GeoidKarney('egm2008-1.pgm').height(-0.385, -23.788) kind 3: 9.689  FAILED, KNOWN, expected 9.688\n    test 1025 GeoidKarney('egm2008-1.pgm').height(-51.56, -50.327) kind 3: 6.218\n    test 1026 GeoidKarney('egm2008-1.pgm').height(-43.129, -167.271) kind 3: -2.725  FAILED, KNOWN, expected -2.724\n    test 1027 GeoidKarney('egm2008-1.pgm').height(46.374, 71.948) kind 3: -42.566  FAILED, KNOWN, expected -42.565\n    test 1028 GeoidKarney('egm2008-1.pgm').height(-22.783, 140.657) kind 3: 38.342  FAILED, KNOWN, expected 38.341\n    test 1029 GeoidKarney('egm2008-1.pgm').height(-12.056, 122.804) kind 3: 33.888  FAILED, KNOWN, expected 33.889\n    test 1030 GeoidKarney('egm2008-1.pgm').height(30.127, 94.738) kind 3: -37.381  FAILED, KNOWN, expected -37.380\n    test 1031 GeoidKarney('egm2008-1.pgm').height(46.296, -174.479) kind 3: -1.857  FAILED, KNOWN, expected -1.858\n    test 1032 GeoidKarney('egm2008-1.pgm').height(34.99, 15.052) kind 3: 34.196  FAILED, KNOWN, expected 34.195\n    test 1033 GeoidKarney('egm2008-1.pgm').height(-51.287, 90.565) kind 3: 12.767\n    test 1034 GeoidKarney('egm2008-1.pgm').height(34.217, 141.302) kind 3: 15.612\n    test 1035 GeoidKarney('egm2008-1.pgm').height(-40.423, -142.787) kind 3: -11.063\n    test 1036 GeoidKarney('egm2008-1.pgm').height(-17.854, -170.216) kind 3: 27.386  FAILED, KNOWN, expected 27.387\n    test 1037 GeoidKarney('egm2008-1.pgm').height(47.803, 112.701) kind 3: -23.817\n    test 1038 GeoidKarney('egm2008-1.pgm').height(-23.276, 133.454) kind 3: 18.713  FAILED, KNOWN, expected 18.712\n    test 1039 GeoidKarney('egm2008-1.pgm').height(-26.884, -36.571) kind 3: -7.343  FAILED, KNOWN, expected -7.344\n    test 1040 GeoidKarney('egm2008-1.pgm').height(-37.106, 31.128) kind 3: 29.997  FAILED, KNOWN, expected 29.998\n    test 1041 GeoidKarney('egm2008-1.pgm').height(-75.363, -173.674) kind 3: -61.869\n    test 1042 GeoidKarney('egm2008-1.pgm').height(-18.305, 69.016) kind 3: -24.938  FAILED, KNOWN, expected -24.937\n    test 1043 GeoidKarney('egm2008-1.pgm').height(39.527, 23.58) kind 3: 38.557  FAILED, KNOWN, expected 38.556\n    test 1044 GeoidKarney('egm2008-1.pgm').height(68.903, 30.97) kind 3: 19.671\n    test 1045 GeoidKarney('egm2008-1.pgm').height(53.937, 168.318) kind 3: 2.273  FAILED, KNOWN, expected 2.272\n    test 1046 GeoidKarney('egm2008-1.pgm').height(-38.6, 64.812) kind 3: 24.863\n    test 1047 GeoidKarney('egm2008-1.pgm').height(-41.396, -69.739) kind 3: 21.636\n    test 1048 GeoidKarney('egm2008-1.pgm').height(50.158, 72.319) kind 3: -33.850  FAILED, KNOWN, expected -33.851\n    test 1049 GeoidKarney('egm2008-1.pgm').height(27.692, 176.153) kind 3: -5.299\n    test 1050 GeoidKarney('egm2008-1.pgm').height(-48.419, 170.454) kind 3: -6.789\n    test 1051 GeoidKarney('egm2008-1.pgm').height(-65.346, -124.976) kind 3: -35.030\n    test 1052 GeoidKarney('egm2008-1.pgm').height(-51.873, 167.266) kind 3: -15.338\n    test 1053 GeoidKarney('egm2008-1.pgm').height(-7.263, 84.308) kind 3: -79.356\n    test 1054 GeoidKarney('egm2008-1.pgm').height(-1.461, -105.458) kind 3: -16.649  FAILED, KNOWN, expected -16.650\n    test 1055 GeoidKarney('egm2008-1.pgm').height(7.684, 161.873) kind 3: 36.359\n    test 1056 GeoidKarney('egm2008-1.pgm').height(-31.475, -158.52) kind 3: 3.614  FAILED, KNOWN, expected 3.615\n    test 1057 GeoidKarney('egm2008-1.pgm').height(-36.187, 62.917) kind 3: 23.946  FAILED, KNOWN, expected 23.947\n    test 1058 GeoidKarney('egm2008-1.pgm').height(16.003, 141.687) kind 3: 51.494  FAILED, KNOWN, expected 51.495\n    test 1059 GeoidKarney('egm2008-1.pgm').height(30.182, 86.261) kind 3: -30.909  FAILED, KNOWN, expected -30.910\n    test 1060 GeoidKarney('egm2008-1.pgm').height(-77.304, 159.498) kind 3: -52.131\n    test 1061 GeoidKarney('egm2008-1.pgm').height(39.536, 139.795) kind 3: 37.046  FAILED, KNOWN, expected 37.045\n    test 1062 GeoidKarney('egm2008-1.pgm').height(8.569, 134.618) kind 3: 64.181  FAILED, KNOWN, expected 64.180\n    test 1063 GeoidKarney('egm2008-1.pgm').height(14.473, 90.596) kind 3: -62.475\n    test 1064 GeoidKarney('egm2008-1.pgm').height(-13.138, -99.589) kind 3: -8.454\n    test 1065 GeoidKarney('egm2008-1.pgm').height(34.212, -26.307) kind 3: 40.834\n    test 1066 GeoidKarney('egm2008-1.pgm').height(21.89, 76.371) kind 3: -60.455\n    test 1067 GeoidKarney('egm2008-1.pgm').height(29.793, 120.487) kind 3: 9.728  FAILED, KNOWN, expected 9.727\n    test 1068 GeoidKarney('egm2008-1.pgm').height(15.724, 122.714) kind 3: 32.141  FAILED, KNOWN, expected 32.142\n    test 1069 GeoidKarney('egm2008-1.pgm').height(-66.208, -78.499) kind 3: -6.221  FAILED, KNOWN, expected -6.220\n    test 1070 GeoidKarney('egm2008-1.pgm').height(-39.507, 55.809) kind 3: 32.488  FAILED, KNOWN, expected 32.489\n    test 1071 GeoidKarney('egm2008-1.pgm').height(28.159, 51.476) kind 3: -24.692\n    test 1072 GeoidKarney('egm2008-1.pgm').height(-36.207, 120.205) kind 3: -38.749\n    test 1073 GeoidKarney('egm2008-1.pgm').height(30.575, -99.998) kind 3: -23.254  FAILED, KNOWN, expected -23.255\n    test 1074 GeoidKarney('egm2008-1.pgm').height(-16.993, 37.136) kind 3: -13.454  FAILED, KNOWN, expected -13.455\n    test 1075 GeoidKarney('egm2008-1.pgm').height(-11.477, 12.039) kind 3: 16.627\n    test 1076 GeoidKarney('egm2008-1.pgm').height(30.428, -144.765) kind 3: -22.221\n    test 1077 GeoidKarney('egm2008-1.pgm').height(-17.44, -92.424) kind 3: -4.836\n    test 1078 GeoidKarney('egm2008-1.pgm').height(40.203, 143.43) kind 3: 19.571\n    test 1079 GeoidKarney('egm2008-1.pgm').height(-37.098, -106.574) kind 3: -9.227\n    test 1080 GeoidKarney('egm2008-1.pgm').height(54.62, -68.413) kind 3: -23.248\n    test 1081 GeoidKarney('egm2008-1.pgm').height(-31.633, 148.182) kind 3: 24.829\n    test 1082 GeoidKarney('egm2008-1.pgm').height(-56.07, -141.407) kind 3: -21.706  FAILED, KNOWN, expected -21.705\n    test 1083 GeoidKarney('egm2008-1.pgm').height(-8.195, -52.691) kind 3: -17.054  FAILED, KNOWN, expected -17.053\n    test 1084 GeoidKarney('egm2008-1.pgm').height(17.851, 24.749) kind 3: 11.715  FAILED, KNOWN, expected 11.716\n    test 1085 GeoidKarney('egm2008-1.pgm').height(0.349, -108.333) kind 3: -19.529  FAILED, KNOWN, expected -19.530\n    test 1086 GeoidKarney('egm2008-1.pgm').height(15.038, 126.191) kind 3: 45.929\n    test 1087 GeoidKarney('egm2008-1.pgm').height(-21.111, -123.696) kind 3: -8.283\n    test 1088 GeoidKarney('egm2008-1.pgm').height(30.947, 173.002) kind 3: -8.467\n    test 1089 GeoidKarney('egm2008-1.pgm').height(-10.698, -144.091) kind 3: -1.829\n    test 1090 GeoidKarney('egm2008-1.pgm').height(-29.412, 124.753) kind 3: -16.505  FAILED, KNOWN, expected -16.506\n    test 1091 GeoidKarney('egm2008-1.pgm').height(38.224, -137.189) kind 3: -35.384\n    test 1092 GeoidKarney('egm2008-1.pgm').height(36.064, -132.409) kind 3: -38.962  FAILED, KNOWN, expected -38.963\n    test 1093 GeoidKarney('egm2008-1.pgm').height(29.975, 178.076) kind 3: -6.956\n    test 1094 GeoidKarney('egm2008-1.pgm').height(-21.346, 169.26) kind 3: 51.006  FAILED, KNOWN, expected 51.005\n    test 1095 GeoidKarney('egm2008-1.pgm').height(49.282, -152.934) kind 3: 1.193  FAILED, KNOWN, expected 1.192\n    test 1096 GeoidKarney('egm2008-1.pgm').height(16.349, -99.962) kind 3: -15.038\n    test 1097 GeoidKarney('egm2008-1.pgm').height(-14.293, -167.34) kind 3: 17.791\n    test 1098 GeoidKarney('egm2008-1.pgm').height(47.166, -38.523) kind 3: 44.653  FAILED, KNOWN, expected 44.652\n    test 1099 GeoidKarney('egm2008-1.pgm').height(-58.911, 114.347) kind 3: -17.972  FAILED, KNOWN, expected -17.971\n    test 1100 GeoidKarney('egm2008-1.pgm').height(-9.055, 111.294) kind 3: 11.630  FAILED, KNOWN, expected 11.631\n    test 1101 GeoidKarney('egm2008-1.pgm').height(18.391, 29.692) kind 3: 7.394\n    test 1102 GeoidKarney('egm2008-1.pgm').height(-15.074, 22.153) kind 3: 7.932\n    test 1103 GeoidKarney('egm2008-1.pgm').height(-4.235, 62.001) kind 3: -60.594  FAILED, KNOWN, expected -60.593\n    test 1104 GeoidKarney('egm2008-1.pgm').height(15.171, -86.583) kind 3: 4.384\n    test 1105 GeoidKarney('egm2008-1.pgm').height(79.254, 112.116) kind 3: 1.296  FAILED, KNOWN, expected 1.297\n    test 1106 GeoidKarney('egm2008-1.pgm').height(15.947, 156.093) kind 3: 30.852\n    test 1107 GeoidKarney('egm2008-1.pgm').height(68.371, -177.382) kind 3: 2.705  FAILED, KNOWN, expected 2.704\n    test 1108 GeoidKarney('egm2008-1.pgm').height(-41.931, -72.093) kind 3: 21.264\n    test 1109 GeoidKarney('egm2008-1.pgm').height(-1.193, -143.133) kind 3: 5.443\n    test 1110 GeoidKarney('egm2008-1.pgm').height(-37.006, 154.513) kind 3: 9.998\n    test 1111 GeoidKarney('egm2008-1.pgm').height(-22.148, 9.938) kind 3: 22.428\n    test 1112 GeoidKarney('egm2008-1.pgm').height(24.329, 109.044) kind 3: -23.155  FAILED, KNOWN, expected -23.154\n    test 1113 GeoidKarney('egm2008-1.pgm').height(-54.878, 114.691) kind 3: -17.662\n    test 1114 GeoidKarney('egm2008-1.pgm').height(45.601, -80.458) kind 3: -36.840  FAILED, KNOWN, expected -36.839\n    test 1115 GeoidKarney('egm2008-1.pgm').height(2.372, 58.974) kind 3: -61.220  FAILED, KNOWN, expected -61.221\n    test 1116 GeoidKarney('egm2008-1.pgm').height(15.937, 165.854) kind 3: 20.355\n    test 1117 GeoidKarney('egm2008-1.pgm').height(4.889, -24.213) kind 3: 13.147\n    test 1118 GeoidKarney('egm2008-1.pgm').height(-11.392, 179.558) kind 3: 41.073  FAILED, KNOWN, expected 41.072\n    test 1119 GeoidKarney('egm2008-1.pgm').height(58.246, 4.862) kind 3: 42.982\n    test 1120 GeoidKarney('egm2008-1.pgm').height(34.302, -109.109) kind 3: -22.997  FAILED, KNOWN, expected -22.998\n    test 1121 GeoidKarney('egm2008-1.pgm').height(-58.196, 117.306) kind 3: -20.662\n    test 1122 GeoidKarney('egm2008-1.pgm').height(44.5, 173.769) kind 3: -8.438\n    test 1123 GeoidKarney('egm2008-1.pgm').height(-28.863, -139.775) kind 3: -8.711  FAILED, KNOWN, expected -8.712\n    test 1124 GeoidKarney('egm2008-1.pgm').height(19.507, -96.099) kind 3: -12.653\n    test 1125 GeoidKarney('egm2008-1.pgm').height(-42.488, -73.907) kind 3: 17.166\n    test 1126 GeoidKarney('egm2008-1.pgm').height(46.138, -141.429) kind 3: -19.873  FAILED, KNOWN, expected -19.874\n    test 1127 GeoidKarney('egm2008-1.pgm').height(60.507, 93.743) kind 3: -31.124\n    test 1128 GeoidKarney('egm2008-1.pgm').height(26.219, -145.434) kind 3: -17.306  FAILED, KNOWN, expected -17.307\n    test 1129 GeoidKarney('egm2008-1.pgm').height(-28.687, 3.37) kind 3: 23.435  FAILED, KNOWN, expected 23.434\n    test 1130 GeoidKarney('egm2008-1.pgm').height(-15.008, 117.45) kind 3: 4.508\n    test 1131 GeoidKarney('egm2008-1.pgm').height(40.71, 144.095) kind 3: 11.550  FAILED, KNOWN, expected 11.549\n    test 1132 GeoidKarney('egm2008-1.pgm').height(20.823, -173.611) kind 3: 5.749  FAILED, KNOWN, expected 5.748\n    test 1133 GeoidKarney('egm2008-1.pgm').height(16.776, -3.009) kind 3: 28.788\n    test 1134 GeoidKarney('egm2008-1.pgm').height(41.0, -95.0) kind 3: -30.589\n    test 1135 GeoidKarney('egm2008-1.pgm').height(49.0, -120.5) kind 3: -15.273\n    test 1136 GeoidKarney('egm2008-1.pgm').height(49.0, -103.5) kind 3: -18.624\n    test 1137 GeoidKarney('egm2008-1.pgm').height(49.0, -86.5) kind 3: -37.872  FAILED, KNOWN, expected -37.873\n    test 1138 GeoidKarney('egm2008-1.pgm').height(49.0, -69.5) kind 3: -26.511\n    test 1139 GeoidKarney('egm2008-1.pgm').height(33.0, -120.5) kind 3: -39.600\n    test 1140 GeoidKarney('egm2008-1.pgm').height(33.0, -103.5) kind 3: -22.689\n    test 1141 GeoidKarney('egm2008-1.pgm').height(33.0, -86.5) kind 3: -30.067\n    test 1142 GeoidKarney('egm2008-1.pgm').height(33.0, -69.5) kind 3: -48.093\n\n    test 1143 GeoidKarney('egm2008-1.pgm').height() kind 3, hits 0, eps max (in 0 FAILED): 0.001323\n    test 1144 GeoidKarney('egm2008-1.pgm').height() kind 3, hits 0, eps mean (of 210 total): 0.000468\n    test 1145 GeoidKarney('egm2008-1.pgm').height() kind 3, hits 0, eps stdev (of 210 total): 0.000333\n    test 1146 GeoidKarney('egm2008-1.pgm').highest(): -8.4, 147.367, 85.839\n    test 1147 GeoidKarney('egm2008-1.pgm').lowerleft(): -90.0, -180.0, -30.15\n    test 1148 GeoidKarney('egm2008-1.pgm').lowerright(): -90.0, 180.0, -30.15\n    test 1149 GeoidKarney('egm2008-1.pgm').lowest(): 4.7, 78.767, -106.911\n    test 1150 GeoidKarney('egm2008-1.pgm').upperleft(): 90.0, -180.0, 14.898\n    test 1151 GeoidKarney('egm2008-1.pgm').upperright(): 90.0, 180.0, 14.898\n    test 1152 GeoidKarney('egm2008-1.pgm').dtype: (\"'ushort'\",)\n    test 1153 GeoidKarney('egm2008-1.pgm').knots: ('233301600',)\n    test 1154 GeoidKarney('egm2008-1.pgm').mean: ('-1.317',)\n    test 1155 GeoidKarney('egm2008-1.pgm').nBytes: ('None',)\n    test 1156 GeoidKarney('egm2008-1.pgm').smooth: ('None',)\n    test 1157 GeoidKarney('egm2008-1.pgm').stdev: ('29.244',)\n    test 1158 GeoidKarney('egm2008-1.pgm')._g2ll2(180, 360): (180, 0.0)\n    test 1159 GeoidKarney('egm2008-1.pgm')._ll2g2(180, 360): (180, 360)\n    test 1160 GeoidKarney('egm2008-1.pgm')._swne: (-10.0, -100.0, 10.0, 100.0)\n    test 1161 GeoidKarney('egm2008-1.pgm')._swne: (-10.0, -100.0, 10.0, 100.0)\n    test 1162 GeoidKarney('egm2008-1.pgm').toStr: GeoidKarney('egm2008-1.pgm'): lowerleft(-90.0, -180.0, -30.15), upperright(90.0, 180.0, 14.898), center(0.0, 0.0, 17.226), highest(-8.4, 147.367, 85.839), lowest(4.7, 78.767, -106.911)\n\n    test 1163 closed: True\n    test 1164 copy(<class 'type'>): (<class 'pygeodesy.geoids.GeoidKarney'>, True)\n    test 1165 GeoidKarney.copy(): (<class 'pygeodesy.geoids.GeoidKarney'>, True)\n    test 1166 GeoidPGM('egm2008-1.pgm').height(-76.981, 34.17) kind 3: lli ('-76.981466, 34.17016'), H (False) or wrap (False): lli ('-76.981466, 34.17016'): outside on SE  FAILED, KNOWN, expected 12.636\n    test 1167 GeoidPGM('egm2008-1.pgm').height(79.695, 88.806) kind 3: lli ('79.695484, 88.805571'), H (False) or wrap (False): lli ('79.695484, 88.805571'): outside on NE  FAILED, KNOWN, expected 0.749\n    test 1168 GeoidPGM('egm2008-1.pgm').height(-15.245, 168.748) kind 3: lli ('-15.244804, 168.747961'), H (False) or wrap (False): lli ('-15.244804, 168.747961'): outside on SE  FAILED, KNOWN, expected 65.109\n    test 1169 GeoidPGM('egm2008-1.pgm').height(-19.379, 15.855) kind 3: lli ('-19.379357, 15.85511'), H (False) or wrap (False): lli ('-19.379357, 15.85511'): outside on SE  FAILED, KNOWN, expected 24.889\n    test 1170 GeoidPGM('egm2008-1.pgm').height(43.378, -130.552) kind 3: lli ('43.377784, -130.551582'), H (False) or wrap (False): lli ('43.377784, -130.551582'): outside on W  FAILED, KNOWN, expected -29.557\n    test 1171 GeoidPGM('egm2008-1.pgm').height(-16.075, 21.795) kind 3: lli ('-16.074554, 21.79547'), H (False) or wrap (False): lli ('-16.074554, 21.79547'): outside on SE  FAILED, KNOWN, expected 9.742\n    test 1172 GeoidPGM('egm2008-1.pgm').height(-11.256, -73.75) kind 3: lli ('-11.256389, -73.750255'), H (False) or wrap (False): lli ('-11.256389, -73.750255'): outside on S  FAILED, KNOWN, expected 30.059\n    test 1173 GeoidPGM('egm2008-1.pgm').height(69.017, -15.921) kind 3: lli ('69.016564, -15.921115'), H (False) or wrap (False): lli ('69.016564, -15.921115'): outside on NE  FAILED, KNOWN, expected 60.690\n    test 1174 GeoidPGM('egm2008-1.pgm').height(2.221, 139.739) kind 3: lli ('2.221008, 139.73935'), H (False) or wrap (False): lli ('2.221008, 139.73935'): outside on SE  FAILED, KNOWN, expected 69.133\n    test 1175 GeoidPGM('egm2008-1.pgm').height(-9.097, 119.142) kind 3: lli ('-9.096878, 119.141551'), H (False) or wrap (False): lli ('-9.096878, 119.141551'): outside on SE  FAILED, KNOWN, expected 36.520\n    test 1176 GeoidPGM('egm2008-1.pgm').height(-28.524, -22.192) kind 3: lli ('-28.523717, -22.1925'), H (False) or wrap (False): lli ('-28.523717, -22.1925'): outside on SE  FAILED, KNOWN, expected 6.801\n    test 1177 GeoidPGM('egm2008-1.pgm').height(12.272, -136.424) kind 3: lli ('12.27231, -136.424168'), H (False) or wrap (False): lli ('12.27231, -136.424168'): outside on SW  FAILED, KNOWN, expected -20.651\n    test 1178 GeoidPGM('egm2008-1.pgm').height(-15.203, -85.604) kind 3: lli ('-15.20317, -85.603753'), H (False) or wrap (False): lli ('-15.20317, -85.603753'): outside on S  FAILED, KNOWN, expected -3.040\n    test 1179 GeoidPGM('egm2008-1.pgm').height(-63.736, -77.17) kind 3: lli ('-63.735565, -77.169636'), H (False) or wrap (False): lli ('-63.735565, -77.169636'): outside on S  FAILED, KNOWN, expected -1.328\n    test 1180 GeoidPGM('egm2008-1.pgm').height(-48.771, -90.102) kind 3: lli ('-48.770825, -90.102117'), H (False) or wrap (False): lli ('-48.770825, -90.102117'): outside on S  FAILED, KNOWN, expected -2.172\n    test 1181 GeoidPGM('egm2008-1.pgm').height(-0.179, -126.368) kind 3: lli ('-0.178524, -126.368279'), H (False) or wrap (False): lli ('-0.178524, -126.368279'): outside on SW  FAILED, KNOWN, expected -17.411\n    test 1182 GeoidPGM('egm2008-1.pgm').height(1.586, -128.887) kind 3: lli ('1.585536, -128.886967'), H (False) or wrap (False): lli ('1.585536, -128.886967'): outside on SW  FAILED, KNOWN, expected -16.425\n    test 1183 GeoidPGM('egm2008-1.pgm').height(-48.781, -2.684) kind 3: lli ('-48.780705, -2.684224'), H (False) or wrap (False): lli ('-48.780705, -2.684224'): outside on SE  FAILED, KNOWN, expected 24.698\n    test 1184 GeoidPGM('egm2008-1.pgm').height(-49.092, 136.862) kind 3: lli ('-49.091632, 136.862256'), H (False) or wrap (False): lli ('-49.091632, 136.862256'): outside on SE  FAILED, KNOWN, expected -18.329\n    test 1185 GeoidPGM('egm2008-1.pgm').height(47.732, 17.552) kind 3: lli ('47.731727, 17.552416'), H (False) or wrap (False): lli ('47.731727, 17.552416'): outside on E  FAILED, KNOWN, expected 43.802\n    test 1186 GeoidPGM('egm2008-1.pgm').height(-49.11, 85.706) kind 3: lli ('-49.109549, 85.706437'), H (False) or wrap (False): lli ('-49.109549, 85.706437'): outside on SE  FAILED, KNOWN, expected 18.716\n    test 1187 GeoidPGM('egm2008-1.pgm').height(-49.162, 40.321) kind 3: lli ('-49.162281, 40.321209'), H (False) or wrap (False): lli ('-49.162281, 40.321209'): outside on SE  FAILED, KNOWN, expected 44.469\n    test 1188 GeoidPGM('egm2008-1.pgm').height(3.498, 158.118) kind 3: lli ('3.498333, 158.117699'), H (False) or wrap (False): lli ('3.498333, 158.117699'): outside on SE  FAILED, KNOWN, expected 49.944\n    test 1189 GeoidPGM('egm2008-1.pgm').height(-35.616, 122.648) kind 3: lli ('-35.616495, 122.648407'), H (False) or wrap (False): lli ('-35.616495, 122.648407'): outside on SE  FAILED, KNOWN, expected -35.878\n    test 1190 GeoidPGM('egm2008-1.pgm').height(56.598, -96.114) kind 3: lli ('56.598256, -96.113696'), H (False) or wrap (False): lli ('56.598256, -96.113696'): outside on N  FAILED, KNOWN, expected -40.777\n    test 1191 GeoidPGM('egm2008-1.pgm').height(-31.85, 149.121) kind 3: lli ('-31.850231, 149.120596'), H (False) or wrap (False): lli ('-31.850231, 149.120596'): outside on SE  FAILED, KNOWN, expected 26.559\n    test 1192 GeoidPGM('egm2008-1.pgm').height(-26.569, -177.792) kind 3: lli ('-26.568996, -177.792196'), H (False) or wrap (False): lli ('-26.568996, -177.792196'): outside on SW  FAILED, KNOWN, expected 49.361\n    test 1193 GeoidPGM('egm2008-1.pgm').height(76.735, -65.753) kind 3: lli ('76.734699, -65.752952'), H (False) or wrap (False): lli ('76.734699, -65.752952'): outside on N  FAILED, KNOWN, expected 21.107\n    test 1194 GeoidPGM('egm2008-1.pgm').height(-21.404, -122.268) kind 3: lli ('-21.404166, -122.267869'), H (False) or wrap (False): lli ('-21.404166, -122.267869'): outside on S  FAILED, KNOWN, expected -7.202\n    test 1195 GeoidPGM('egm2008-1.pgm').height(-77.133, -65.474) kind 3: lli ('-77.133426, -65.473819'), H (False) or wrap (False): lli ('-77.133426, -65.473819'): outside on S  FAILED, KNOWN, expected -17.168\n    test 1196 GeoidPGM('egm2008-1.pgm').height(-58.812, 2.276) kind 3: lli ('-58.811779, 2.276142'), H (False) or wrap (False): lli ('-58.811779, 2.276142'): outside on SE  FAILED, KNOWN, expected 18.359\n    test 1197 GeoidPGM('egm2008-1.pgm').height(4.415, 155.683) kind 3: lli ('4.415102, 155.683336'), H (False) or wrap (False): lli ('4.415102, 155.683336'): outside on SE  FAILED, KNOWN, expected 52.118\n    test 1198 GeoidPGM('egm2008-1.pgm').height(-28.146, 107.081) kind 3: lli ('-28.145768, 107.081334'), H (False) or wrap (False): lli ('-28.145768, 107.081334'): outside on SE  FAILED, KNOWN, expected -38.950\n    test 1199 GeoidPGM('egm2008-1.pgm').height(-10.551, -126.69) kind 3: lli ('-10.551267, -126.690468'), H (False) or wrap (False): lli ('-10.551267, -126.690468'): outside on SW  FAILED, KNOWN, expected -9.934\n    test 1200 GeoidPGM('egm2008-1.pgm').height(-25.444, -103.337) kind 3: lli ('-25.444344, -103.337184'), H (False) or wrap (False): lli ('-25.444344, -103.337184'): outside on S  FAILED, KNOWN, expected -2.879\n    test 1201 GeoidPGM('egm2008-1.pgm').height(24.436, 46.159) kind 3: lli ('24.435896, 46.158715'), H (False) or wrap (False): lli ('24.435896, 46.158715'): outside on SE  FAILED, KNOWN, expected -5.025\n    test 1202 GeoidPGM('egm2008-1.pgm').height(-72.889, 37.107) kind 3: lli ('-72.888898, 37.106907'), H (False) or wrap (False): lli ('-72.888898, 37.106907'): outside on SE  FAILED, KNOWN, expected 24.296\n    test 1203 GeoidPGM('egm2008-1.pgm').height(-19.629, 13.245) kind 3: lli ('-19.628762, 13.244525'), H (False) or wrap (False): lli ('-19.628762, 13.244525'): outside on SE  FAILED, KNOWN, expected 25.131\n    test 1204 GeoidPGM('egm2008-1.pgm').height(-7.602, 171.265) kind 3: lli ('-7.602449, 171.264763'), H (False) or wrap (False): lli ('-7.602449, 171.264763'): outside on SE  FAILED, KNOWN, expected 40.721\n    test 1205 GeoidPGM('egm2008-1.pgm').height(-45.364, -1.876) kind 3: lli ('-45.364396, -1.876412'), H (False) or wrap (False): lli ('-45.364396, -1.876412'): outside on SE  FAILED, KNOWN, expected 22.388\n    test 1206 GeoidPGM('egm2008-1.pgm').height(-7.292, -69.18) kind 3: lli ('-7.292121, -69.179565'), H (False) or wrap (False): lli ('-7.292121, -69.179565'): outside on S  FAILED, KNOWN, expected 22.486\n    test 1207 GeoidPGM('egm2008-1.pgm').height(-31.566, -166.689) kind 3: lli ('-31.566264, -166.688985'), H (False) or wrap (False): lli ('-31.566264, -166.688985'): outside on SW  FAILED, KNOWN, expected 14.943\n    test 1208 GeoidPGM('egm2008-1.pgm').height(-82.751, -162.085) kind 3: lli ('-82.751144, -162.08523'), H (False) or wrap (False): lli ('-82.751144, -162.08523'): outside on SW  FAILED, KNOWN, expected -47.387\n    test 1209 GeoidPGM('egm2008-1.pgm').height(-40.7, 99.466) kind 3: lli ('-40.699637, 99.465509'), H (False) or wrap (False): lli ('-40.699637, 99.465509'): outside on SE  FAILED, KNOWN, expected -18.403\n    test 1210 GeoidPGM('egm2008-1.pgm').height(48.676, 39.69) kind 3: lli ('48.675771, 39.690012'), H (False) or wrap (False): lli ('48.675771, 39.690012'): outside on E  FAILED, KNOWN, expected 10.185\n    test 1211 GeoidPGM('egm2008-1.pgm').height(74.817, -78.404) kind 3: lli ('74.817287, -78.404187'), H (False) or wrap (False): lli ('74.817287, -78.404187'): outside on N  FAILED, KNOWN, expected 5.671\n    test 1212 GeoidPGM('egm2008-1.pgm').height(-81.032, -63.865) kind 3: lli ('-81.032306, -63.864898'), H (False) or wrap (False): lli ('-81.032306, -63.864898'): outside on SE  FAILED, KNOWN, expected -24.577\n    test 1213 GeoidPGM('egm2008-1.pgm').height(74.022, 9.432) kind 3: lli ('74.021785, 9.431926'), H (False) or wrap (False): lli ('74.021785, 9.431926'): outside on NE  FAILED, KNOWN, expected 43.288\n    test 1214 GeoidPGM('egm2008-1.pgm').height(-75.071, 17.579) kind 3: lli ('-75.070563, 17.57935'), H (False) or wrap (False): lli ('-75.070563, 17.57935'): outside on SE  FAILED, KNOWN, expected 13.748\n    test 1215 GeoidPGM('egm2008-1.pgm').height(-12.546, -54.851) kind 3: lli ('-12.54612, -54.850614'), H (False) or wrap (False): lli ('-12.54612, -54.850614'): outside on SE  FAILED, KNOWN, expected -5.342\n    test 1216 GeoidPGM('egm2008-1.pgm').height(-13.621, 42.408) kind 3: lli ('-13.621418, 42.407805'), H (False) or wrap (False): lli ('-13.621418, 42.407805'): outside on SE  FAILED, KNOWN, expected -25.579\n    test 1217 GeoidPGM('egm2008-1.pgm').height(-2.266, -91.951) kind 3: lli ('-2.265774, -91.951437'), H (False) or wrap (False): lli ('-2.265774, -91.951437'): outside on S  FAILED, KNOWN, expected -9.849\n    test 1218 GeoidPGM('egm2008-1.pgm').height(-18.672, 42.547) kind 3: lli ('-18.672316, 42.547125'), H (False) or wrap (False): lli ('-18.672316, 42.547125'): outside on SE  FAILED, KNOWN, expected -10.491\n    test 1219 GeoidPGM('egm2008-1.pgm').height(-41.44, 157.413) kind 3: lli ('-41.439867, 157.413161'), H (False) or wrap (False): lli ('-41.439867, 157.413161'): outside on SE  FAILED, KNOWN, expected 0.244\n    test 1220 GeoidPGM('egm2008-1.pgm').height(53.686, -79.375) kind 3: -43.820  FAILED, KNOWN, expected -43.821\n    test 1221 GeoidPGM('egm2008-1.pgm').height(39.26, -30.351) kind 3: lli ('39.260397, -30.351359'), H (False) or wrap (False): lli ('39.260397, -30.351359'): outside on E  FAILED, KNOWN, expected 57.401\n    test 1222 GeoidPGM('egm2008-1.pgm').height(-51.699, -141.493) kind 3: lli ('-51.699195, -141.493082'), H (False) or wrap (False): lli ('-51.699195, -141.493082'): outside on SW  FAILED, KNOWN, expected -17.890\n    test 1223 GeoidPGM('egm2008-1.pgm').height(36.585, 4.515) kind 3: lli ('36.584861, 4.515157'), H (False) or wrap (False): lli ('36.584861, 4.515157'): outside on E  FAILED, KNOWN, expected 46.421\n    test 1224 GeoidPGM('egm2008-1.pgm').height(39.642, -54.659) kind 3: lli ('39.641638, -54.658846'), H (False) or wrap (False): lli ('39.641638, -54.658846'): outside on E  FAILED, KNOWN, expected -14.475\n    test 1225 GeoidPGM('egm2008-1.pgm').height(59.761, 166.567) kind 3: lli ('59.761024, 166.566646'), H (False) or wrap (False): lli ('59.761024, 166.566646'): outside on NE  FAILED, KNOWN, expected 11.118\n    test 1226 GeoidPGM('egm2008-1.pgm').height(51.83, 13.357) kind 3: lli ('51.830001, 13.357464'), H (False) or wrap (False): lli ('51.830001, 13.357464'): outside on E  FAILED, KNOWN, expected 42.291\n    test 1227 GeoidPGM('egm2008-1.pgm').height(-36.531, -175.431) kind 3: lli ('-36.530912, -175.430804'), H (False) or wrap (False): lli ('-36.530912, -175.430804'): outside on SW  FAILED, KNOWN, expected 22.326\n    test 1228 GeoidPGM('egm2008-1.pgm').height(-37.08, 125.264) kind 3: lli ('-37.079518, 125.263901'), H (False) or wrap (False): lli ('-37.079518, 125.263901'): outside on SE  FAILED, KNOWN, expected -33.098\n    test 1229 GeoidPGM('egm2008-1.pgm').height(-68.651, 92.732) kind 3: lli ('-68.650762, 92.731524'), H (False) or wrap (False): lli ('-68.650762, 92.731524'): outside on SE  FAILED, KNOWN, expected 9.430\n    test 1230 GeoidPGM('egm2008-1.pgm').height(35.087, 45.336) kind 3: lli ('35.086645, 45.335611'), H (False) or wrap (False): lli ('35.086645, 45.335611'): outside on E  FAILED, KNOWN, expected 6.032\n    test 1231 GeoidPGM('egm2008-1.pgm').height(-61.356, -169.379) kind 3: lli ('-61.355646, -169.378929'), H (False) or wrap (False): lli ('-61.355646, -169.378929'): outside on SW  FAILED, KNOWN, expected -44.330\n    test 1232 GeoidPGM('egm2008-1.pgm').height(-36.955, 179.12) kind 3: lli ('-36.954967, 179.11982'), H (False) or wrap (False): lli ('-36.954967, 179.11982'): outside on SE  FAILED, KNOWN, expected 21.775\n    test 1233 GeoidPGM('egm2008-1.pgm').height(10.248, -6.714) kind 3: lli ('10.248399, -6.713559'), H (False) or wrap (False): lli ('10.248399, -6.713559'): outside on SE  FAILED, KNOWN, expected 29.243\n    test 1234 GeoidPGM('egm2008-1.pgm').height(36.868, 84.602) kind 3: lli ('36.868193, 84.602243'), H (False) or wrap (False): lli ('36.868193, 84.602243'): outside on E  FAILED, KNOWN, expected -40.676\n    test 1235 GeoidPGM('egm2008-1.pgm').height(28.637, 88.933) kind 3: lli ('28.636703, 88.932955'), H (False) or wrap (False): lli ('28.636703, 88.932955'): outside on E  FAILED, KNOWN, expected -31.353\n    test 1236 GeoidPGM('egm2008-1.pgm').height(54.811, -99.968) kind 3: -32.700  FAILED, KNOWN, expected -32.701\n    test 1237 GeoidPGM('egm2008-1.pgm').height(7.611, 145.911) kind 3: lli ('7.610621, 145.911188'), H (False) or wrap (False): lli ('7.610621, 145.911188'): outside on SE  FAILED, KNOWN, expected 60.629\n    test 1238 GeoidPGM('egm2008-1.pgm').height(59.412, 170.102) kind 3: lli ('59.411557, 170.102394'), H (False) or wrap (False): lli ('59.411557, 170.102394'): outside on NE  FAILED, KNOWN, expected 6.617\n    test 1239 GeoidPGM('egm2008-1.pgm').height(-61.469, 126.144) kind 3: lli ('-61.468618, 126.144056'), H (False) or wrap (False): lli ('-61.468618, 126.144056'): outside on SE  FAILED, KNOWN, expected -31.887\n    test 1240 GeoidPGM('egm2008-1.pgm').height(18.514, -137.083) kind 3: lli ('18.514019, -137.083301'), H (False) or wrap (False): lli ('18.514019, -137.083301'): outside on SW  FAILED, KNOWN, expected -26.535\n    test 1241 GeoidPGM('egm2008-1.pgm').height(7.854, -126.799) kind 3: lli ('7.854318, -126.799148'), H (False) or wrap (False): lli ('7.854318, -126.799148'): outside on SW  FAILED, KNOWN, expected -29.630\n    test 1242 GeoidPGM('egm2008-1.pgm').height(47.489, 134.183) kind 3: lli ('47.489222, 134.182527'), H (False) or wrap (False): lli ('47.489222, 134.182527'): outside on E  FAILED, KNOWN, expected 22.275\n    test 1243 GeoidPGM('egm2008-1.pgm').height(-34.144, -11.922) kind 3: lli ('-34.143602, -11.921567'), H (False) or wrap (False): lli ('-34.143602, -11.921567'): outside on SE  FAILED, KNOWN, expected 17.094\n    test 1244 GeoidPGM('egm2008-1.pgm').height(-58.389, 117.458) kind 3: lli ('-58.388787, 117.457755'), H (False) or wrap (False): lli ('-58.388787, 117.457755'): outside on SE  FAILED, KNOWN, expected -20.941\n    test 1245 GeoidPGM('egm2008-1.pgm').height(9.773, 95.846) kind 3: lli ('9.772764, 95.845943'), H (False) or wrap (False): lli ('9.772764, 95.845943'): outside on SE  FAILED, KNOWN, expected -42.740\n    test 1246 GeoidPGM('egm2008-1.pgm').height(-53.12, 136.994) kind 3: lli ('-53.120381, 136.993994'), H (False) or wrap (False): lli ('-53.120381, 136.993994'): outside on SE  FAILED, KNOWN, expected -21.651\n    test 1247 GeoidPGM('egm2008-1.pgm').height(-50.35, 0.075) kind 3: lli ('-50.349867, 0.07532'), H (False) or wrap (False): lli ('-50.349867, 0.07532'): outside on SE  FAILED, KNOWN, expected 25.240\n    test 1248 GeoidPGM('egm2008-1.pgm').height(31.438, -170.879) kind 3: lli ('31.438387, -170.878548'), H (False) or wrap (False): lli ('31.438387, -170.878548'): outside on W  FAILED, KNOWN, expected -8.758\n    test 1249 GeoidPGM('egm2008-1.pgm').height(37.541, -153.024) kind 3: lli ('37.540689, -153.024228'), H (False) or wrap (False): lli ('37.540689, -153.024228'): outside on W  FAILED, KNOWN, expected -19.607\n    test 1250 GeoidPGM('egm2008-1.pgm').height(27.586, 2.444) kind 3: lli ('27.586088, 2.443556'), H (False) or wrap (False): lli ('27.586088, 2.443556'): outside on E  FAILED, KNOWN, expected 26.258\n    test 1251 GeoidPGM('egm2008-1.pgm').height(-26.139, -106.201) kind 3: lli ('-26.139126, -106.20081'), H (False) or wrap (False): lli ('-26.139126, -106.20081'): outside on S  FAILED, KNOWN, expected -3.824\n    test 1252 GeoidPGM('egm2008-1.pgm').height(-33.426, -14.84) kind 3: lli ('-33.425976, -14.840359'), H (False) or wrap (False): lli ('-33.425976, -14.840359'): outside on SE  FAILED, KNOWN, expected 18.195\n    test 1253 GeoidPGM('egm2008-1.pgm').height(39.586, -153.019) kind 3: lli ('39.586286, -153.018974'), H (False) or wrap (False): lli ('39.586286, -153.018974'): outside on W  FAILED, KNOWN, expected -17.725\n    test 1254 GeoidPGM('egm2008-1.pgm').height(-60.79, -2.578) kind 3: lli ('-60.790289, -2.578163'), H (False) or wrap (False): lli ('-60.790289, -2.578163'): outside on SE  FAILED, KNOWN, expected 14.513\n    test 1255 GeoidPGM('egm2008-1.pgm').height(-20.131, 21.975) kind 3: lli ('-20.130538, 21.974941'), H (False) or wrap (False): lli ('-20.130538, 21.974941'): outside on SE  FAILED, KNOWN, expected 16.809\n    test 1256 GeoidPGM('egm2008-1.pgm').height(75.649, 99.921) kind 3: lli ('75.64878, 99.920587'), H (False) or wrap (False): lli ('75.64878, 99.920587'): outside on NE  FAILED, KNOWN, expected -8.026\n    test 1257 GeoidPGM('egm2008-1.pgm').height(-0.385, -23.788) kind 3: lli ('-0.385453, -23.788336'), H (False) or wrap (False): lli ('-0.385453, -23.788336'): outside on SE  FAILED, KNOWN, expected 9.688\n    test 1258 GeoidPGM('egm2008-1.pgm').height(-51.56, -50.327) kind 3: lli ('-51.559564, -50.32687'), H (False) or wrap (False): lli ('-51.559564, -50.32687'): outside on SE  FAILED, KNOWN, expected 6.218\n    test 1259 GeoidPGM('egm2008-1.pgm').height(-43.129, -167.271) kind 3: lli ('-43.129209, -167.27147'), H (False) or wrap (False): lli ('-43.129209, -167.27147'): outside on SW  FAILED, KNOWN, expected -2.724\n    test 1260 GeoidPGM('egm2008-1.pgm').height(46.374, 71.948) kind 3: lli ('46.374177, 71.947616'), H (False) or wrap (False): lli ('46.374177, 71.947616'): outside on E  FAILED, KNOWN, expected -42.565\n    test 1261 GeoidPGM('egm2008-1.pgm').height(-22.783, 140.657) kind 3: lli ('-22.783085, 140.657444'), H (False) or wrap (False): lli ('-22.783085, 140.657444'): outside on SE  FAILED, KNOWN, expected 38.341\n    test 1262 GeoidPGM('egm2008-1.pgm').height(-12.056, 122.804) kind 3: lli ('-12.05584, 122.80402'), H (False) or wrap (False): lli ('-12.05584, 122.80402'): outside on SE  FAILED, KNOWN, expected 33.889\n    test 1263 GeoidPGM('egm2008-1.pgm').height(30.127, 94.738) kind 3: lli ('30.127372, 94.738186'), H (False) or wrap (False): lli ('30.127372, 94.738186'): outside on E  FAILED, KNOWN, expected -37.380\n    test 1264 GeoidPGM('egm2008-1.pgm').height(46.296, -174.479) kind 3: lli ('46.296018, -174.478616'), H (False) or wrap (False): lli ('46.296018, -174.478616'): outside on W  FAILED, KNOWN, expected -1.858\n    test 1265 GeoidPGM('egm2008-1.pgm').height(34.99, 15.052) kind 3: lli ('34.989646, 15.051646'), H (False) or wrap (False): lli ('34.989646, 15.051646'): outside on E  FAILED, KNOWN, expected 34.195\n    test 1266 GeoidPGM('egm2008-1.pgm').height(-51.287, 90.565) kind 3: lli ('-51.287168, 90.564711'), H (False) or wrap (False): lli ('-51.287168, 90.564711'): outside on SE  FAILED, KNOWN, expected 12.767\n    test 1267 GeoidPGM('egm2008-1.pgm').height(34.217, 141.302) kind 3: lli ('34.217016, 141.301548'), H (False) or wrap (False): lli ('34.217016, 141.301548'): outside on E  FAILED, KNOWN, expected 15.612\n    test 1268 GeoidPGM('egm2008-1.pgm').height(-40.423, -142.787) kind 3: lli ('-40.423023, -142.786592'), H (False) or wrap (False): lli ('-40.423023, -142.786592'): outside on SW  FAILED, KNOWN, expected -11.063\n    test 1269 GeoidPGM('egm2008-1.pgm').height(-17.854, -170.216) kind 3: lli ('-17.854486, -170.216354'), H (False) or wrap (False): lli ('-17.854486, -170.216354'): outside on SW  FAILED, KNOWN, expected 27.387\n    test 1270 GeoidPGM('egm2008-1.pgm').height(47.803, 112.701) kind 3: lli ('47.803271, 112.700942'), H (False) or wrap (False): lli ('47.803271, 112.700942'): outside on E  FAILED, KNOWN, expected -23.817\n    test 1271 GeoidPGM('egm2008-1.pgm').height(-23.276, 133.454) kind 3: lli ('-23.275962, 133.453821'), H (False) or wrap (False): lli ('-23.275962, 133.453821'): outside on SE  FAILED, KNOWN, expected 18.712\n    test 1272 GeoidPGM('egm2008-1.pgm').height(-26.884, -36.571) kind 3: lli ('-26.884369, -36.570654'), H (False) or wrap (False): lli ('-26.884369, -36.570654'): outside on SE  FAILED, KNOWN, expected -7.344\n    test 1273 GeoidPGM('egm2008-1.pgm').height(-37.106, 31.128) kind 3: lli ('-37.106468, 31.127939'), H (False) or wrap (False): lli ('-37.106468, 31.127939'): outside on SE  FAILED, KNOWN, expected 29.998\n    test 1274 GeoidPGM('egm2008-1.pgm').height(-75.363, -173.674) kind 3: lli ('-75.363185, -173.673649'), H (False) or wrap (False): lli ('-75.363185, -173.673649'): outside on SW  FAILED, KNOWN, expected -61.869\n    test 1275 GeoidPGM('egm2008-1.pgm').height(-18.305, 69.016) kind 3: lli ('-18.30485, 69.015565'), H (False) or wrap (False): lli ('-18.30485, 69.015565'): outside on SE  FAILED, KNOWN, expected -24.937\n    test 1276 GeoidPGM('egm2008-1.pgm').height(39.527, 23.58) kind 3: lli ('39.527401, 23.580206'), H (False) or wrap (False): lli ('39.527401, 23.580206'): outside on E  FAILED, KNOWN, expected 38.556\n    test 1277 GeoidPGM('egm2008-1.pgm').height(68.903, 30.97) kind 3: lli ('68.903148, 30.970247'), H (False) or wrap (False): lli ('68.903148, 30.970247'): outside on NE  FAILED, KNOWN, expected 19.671\n    test 1278 GeoidPGM('egm2008-1.pgm').height(53.937, 168.318) kind 3: lli ('53.936937, 168.318201'), H (False) or wrap (False): lli ('53.936937, 168.318201'): outside on E  FAILED, KNOWN, expected 2.272\n    test 1279 GeoidPGM('egm2008-1.pgm').height(-38.6, 64.812) kind 3: lli ('-38.600098, 64.811532'), H (False) or wrap (False): lli ('-38.600098, 64.811532'): outside on SE  FAILED, KNOWN, expected 24.863\n    test 1280 GeoidPGM('egm2008-1.pgm').height(-41.396, -69.739) kind 3: lli ('-41.395739, -69.739418'), H (False) or wrap (False): lli ('-41.395739, -69.739418'): outside on S  FAILED, KNOWN, expected 21.636\n    test 1281 GeoidPGM('egm2008-1.pgm').height(50.158, 72.319) kind 3: lli ('50.157749, 72.319017'), H (False) or wrap (False): lli ('50.157749, 72.319017'): outside on E  FAILED, KNOWN, expected -33.851\n    test 1282 GeoidPGM('egm2008-1.pgm').height(27.692, 176.153) kind 3: lli ('27.691879, 176.152884'), H (False) or wrap (False): lli ('27.691879, 176.152884'): outside on E  FAILED, KNOWN, expected -5.299\n    test 1283 GeoidPGM('egm2008-1.pgm').height(-48.419, 170.454) kind 3: lli ('-48.419449, 170.454472'), H (False) or wrap (False): lli ('-48.419449, 170.454472'): outside on SE  FAILED, KNOWN, expected -6.789\n    test 1284 GeoidPGM('egm2008-1.pgm').height(-65.346, -124.976) kind 3: lli ('-65.34567, -124.975961'), H (False) or wrap (False): lli ('-65.34567, -124.975961'): outside on S  FAILED, KNOWN, expected -35.030\n    test 1285 GeoidPGM('egm2008-1.pgm').height(-51.873, 167.266) kind 3: lli ('-51.873009, 167.265613'), H (False) or wrap (False): lli ('-51.873009, 167.265613'): outside on SE  FAILED, KNOWN, expected -15.338\n    test 1286 GeoidPGM('egm2008-1.pgm').height(-7.263, 84.308) kind 3: lli ('-7.262544, 84.307626'), H (False) or wrap (False): lli ('-7.262544, 84.307626'): outside on SE  FAILED, KNOWN, expected -79.356\n    test 1287 GeoidPGM('egm2008-1.pgm').height(-1.461, -105.458) kind 3: lli ('-1.461003, -105.458323'), H (False) or wrap (False): lli ('-1.461003, -105.458323'): outside on S  FAILED, KNOWN, expected -16.650\n    test 1288 GeoidPGM('egm2008-1.pgm').height(7.684, 161.873) kind 3: lli ('7.684324, 161.87293'), H (False) or wrap (False): lli ('7.684324, 161.87293'): outside on SE  FAILED, KNOWN, expected 36.359\n    test 1289 GeoidPGM('egm2008-1.pgm').height(-31.475, -158.52) kind 3: lli ('-31.474549, -158.520033'), H (False) or wrap (False): lli ('-31.474549, -158.520033'): outside on SW  FAILED, KNOWN, expected 3.615\n    test 1290 GeoidPGM('egm2008-1.pgm').height(-36.187, 62.917) kind 3: lli ('-36.187212, 62.917075'), H (False) or wrap (False): lli ('-36.187212, 62.917075'): outside on SE  FAILED, KNOWN, expected 23.947\n    test 1291 GeoidPGM('egm2008-1.pgm').height(16.003, 141.687) kind 3: lli ('16.002975, 141.686552'), H (False) or wrap (False): lli ('16.002975, 141.686552'): outside on SE  FAILED, KNOWN, expected 51.495\n    test 1292 GeoidPGM('egm2008-1.pgm').height(30.182, 86.261) kind 3: lli ('30.182218, 86.260576'), H (False) or wrap (False): lli ('30.182218, 86.260576'): outside on E  FAILED, KNOWN, expected -30.910\n    test 1293 GeoidPGM('egm2008-1.pgm').height(-77.304, 159.498) kind 3: lli ('-77.303842, 159.497665'), H (False) or wrap (False): lli ('-77.303842, 159.497665'): outside on SE  FAILED, KNOWN, expected -52.131\n    test 1294 GeoidPGM('egm2008-1.pgm').height(39.536, 139.795) kind 3: lli ('39.536, 139.795358'), H (False) or wrap (False): lli ('39.536, 139.795358'): outside on E  FAILED, KNOWN, expected 37.045\n    test 1295 GeoidPGM('egm2008-1.pgm').height(8.569, 134.618) kind 3: lli ('8.569309, 134.618403'), H (False) or wrap (False): lli ('8.569309, 134.618403'): outside on SE  FAILED, KNOWN, expected 64.180\n    test 1296 GeoidPGM('egm2008-1.pgm').height(14.473, 90.596) kind 3: lli ('14.473483, 90.595663'), H (False) or wrap (False): lli ('14.473483, 90.595663'): outside on SE  FAILED, KNOWN, expected -62.475\n    test 1297 GeoidPGM('egm2008-1.pgm').height(-13.138, -99.589) kind 3: lli ('-13.13767, -99.589202'), H (False) or wrap (False): lli ('-13.13767, -99.589202'): outside on S  FAILED, KNOWN, expected -8.454\n    test 1298 GeoidPGM('egm2008-1.pgm').height(34.212, -26.307) kind 3: lli ('34.211572, -26.307194'), H (False) or wrap (False): lli ('34.211572, -26.307194'): outside on E  FAILED, KNOWN, expected 40.834\n    test 1299 GeoidPGM('egm2008-1.pgm').height(21.89, 76.371) kind 3: lli ('21.889732, 76.371362'), H (False) or wrap (False): lli ('21.889732, 76.371362'): outside on SE  FAILED, KNOWN, expected -60.455\n    test 1300 GeoidPGM('egm2008-1.pgm').height(29.793, 120.487) kind 3: lli ('29.792909, 120.48703'), H (False) or wrap (False): lli ('29.792909, 120.48703'): outside on E  FAILED, KNOWN, expected 9.727\n    test 1301 GeoidPGM('egm2008-1.pgm').height(15.724, 122.714) kind 3: lli ('15.723814, 122.713685'), H (False) or wrap (False): lli ('15.723814, 122.713685'): outside on SE  FAILED, KNOWN, expected 32.142\n    test 1302 GeoidPGM('egm2008-1.pgm').height(-66.208, -78.499) kind 3: lli ('-66.20776, -78.498807'), H (False) or wrap (False): lli ('-66.20776, -78.498807'): outside on S  FAILED, KNOWN, expected -6.220\n    test 1303 GeoidPGM('egm2008-1.pgm').height(-39.507, 55.809) kind 3: lli ('-39.507049, 55.808743'), H (False) or wrap (False): lli ('-39.507049, 55.808743'): outside on SE  FAILED, KNOWN, expected 32.489\n    test 1304 GeoidPGM('egm2008-1.pgm').height(28.159, 51.476) kind 3: lli ('28.159494, 51.476474'), H (False) or wrap (False): lli ('28.159494, 51.476474'): outside on E  FAILED, KNOWN, expected -24.692\n    test 1305 GeoidPGM('egm2008-1.pgm').height(-36.207, 120.205) kind 3: lli ('-36.206825, 120.205019'), H (False) or wrap (False): lli ('-36.206825, 120.205019'): outside on SE  FAILED, KNOWN, expected -38.749\n    test 1306 GeoidPGM('egm2008-1.pgm').height(30.575, -99.998) kind 3: -23.254  FAILED, KNOWN, expected -23.255\n    test 1307 GeoidPGM('egm2008-1.pgm').height(-16.993, 37.136) kind 3: lli ('-16.992515, 37.135881'), H (False) or wrap (False): lli ('-16.992515, 37.135881'): outside on SE  FAILED, KNOWN, expected -13.455\n    test 1308 GeoidPGM('egm2008-1.pgm').height(-11.477, 12.039) kind 3: lli ('-11.476997, 12.038708'), H (False) or wrap (False): lli ('-11.476997, 12.038708'): outside on SE  FAILED, KNOWN, expected 16.627\n    test 1309 GeoidPGM('egm2008-1.pgm').height(30.428, -144.765) kind 3: lli ('30.428465, -144.765049'), H (False) or wrap (False): lli ('30.428465, -144.765049'): outside on W  FAILED, KNOWN, expected -22.221\n    test 1310 GeoidPGM('egm2008-1.pgm').height(-17.44, -92.424) kind 3: lli ('-17.439773, -92.424339'), H (False) or wrap (False): lli ('-17.439773, -92.424339'): outside on S  FAILED, KNOWN, expected -4.836\n    test 1311 GeoidPGM('egm2008-1.pgm').height(40.203, 143.43) kind 3: lli ('40.203164, 143.429799'), H (False) or wrap (False): lli ('40.203164, 143.429799'): outside on E  FAILED, KNOWN, expected 19.571\n    test 1312 GeoidPGM('egm2008-1.pgm').height(-37.098, -106.574) kind 3: lli ('-37.098392, -106.573712'), H (False) or wrap (False): lli ('-37.098392, -106.573712'): outside on S  FAILED, KNOWN, expected -9.227\n    test 1313 GeoidPGM('egm2008-1.pgm').height(54.62, -68.413) kind 3: -23.248\n    test 1314 GeoidPGM('egm2008-1.pgm').height(-31.633, 148.182) kind 3: lli ('-31.633252, 148.181926'), H (False) or wrap (False): lli ('-31.633252, 148.181926'): outside on SE  FAILED, KNOWN, expected 24.829\n    test 1315 GeoidPGM('egm2008-1.pgm').height(-56.07, -141.407) kind 3: lli ('-56.069748, -141.406778'), H (False) or wrap (False): lli ('-56.069748, -141.406778'): outside on SW  FAILED, KNOWN, expected -21.705\n    test 1316 GeoidPGM('egm2008-1.pgm').height(-8.195, -52.691) kind 3: lli ('-8.195214, -52.691177'), H (False) or wrap (False): lli ('-8.195214, -52.691177'): outside on SE  FAILED, KNOWN, expected -17.053\n    test 1317 GeoidPGM('egm2008-1.pgm').height(17.851, 24.749) kind 3: lli ('17.850526, 24.748606'), H (False) or wrap (False): lli ('17.850526, 24.748606'): outside on SE  FAILED, KNOWN, expected 11.716\n    test 1318 GeoidPGM('egm2008-1.pgm').height(0.349, -108.333) kind 3: lli ('0.349465, -108.332667'), H (False) or wrap (False): lli ('0.349465, -108.332667'): outside on S  FAILED, KNOWN, expected -19.530\n    test 1319 GeoidPGM('egm2008-1.pgm').height(15.038, 126.191) kind 3: lli ('15.037932, 126.190545'), H (False) or wrap (False): lli ('15.037932, 126.190545'): outside on SE  FAILED, KNOWN, expected 45.929\n    test 1320 GeoidPGM('egm2008-1.pgm').height(-21.111, -123.696) kind 3: lli ('-21.111105, -123.695981'), H (False) or wrap (False): lli ('-21.111105, -123.695981'): outside on S  FAILED, KNOWN, expected -8.283\n    test 1321 GeoidPGM('egm2008-1.pgm').height(30.947, 173.002) kind 3: lli ('30.946618, 173.002137'), H (False) or wrap (False): lli ('30.946618, 173.002137'): outside on E  FAILED, KNOWN, expected -8.467\n    test 1322 GeoidPGM('egm2008-1.pgm').height(-10.698, -144.091) kind 3: lli ('-10.698334, -144.091109'), H (False) or wrap (False): lli ('-10.698334, -144.091109'): outside on SW  FAILED, KNOWN, expected -1.829\n    test 1323 GeoidPGM('egm2008-1.pgm').height(-29.412, 124.753) kind 3: lli ('-29.412071, 124.75279'), H (False) or wrap (False): lli ('-29.412071, 124.75279'): outside on SE  FAILED, KNOWN, expected -16.506\n    test 1324 GeoidPGM('egm2008-1.pgm').height(38.224, -137.189) kind 3: lli ('38.223621, -137.189376'), H (False) or wrap (False): lli ('38.223621, -137.189376'): outside on W  FAILED, KNOWN, expected -35.384\n    test 1325 GeoidPGM('egm2008-1.pgm').height(36.064, -132.409) kind 3: lli ('36.063775, -132.409284'), H (False) or wrap (False): lli ('36.063775, -132.409284'): outside on W  FAILED, KNOWN, expected -38.963\n    test 1326 GeoidPGM('egm2008-1.pgm').height(29.975, 178.076) kind 3: lli ('29.974676, 178.075894'), H (False) or wrap (False): lli ('29.974676, 178.075894'): outside on E  FAILED, KNOWN, expected -6.956\n    test 1327 GeoidPGM('egm2008-1.pgm').height(-21.346, 169.26) kind 3: lli ('-21.346396, 169.259508'), H (False) or wrap (False): lli ('-21.346396, 169.259508'): outside on SE  FAILED, KNOWN, expected 51.005\n    test 1328 GeoidPGM('egm2008-1.pgm').height(49.282, -152.934) kind 3: lli ('49.282472, -152.934409'), H (False) or wrap (False): lli ('49.282472, -152.934409'): outside on W  FAILED, KNOWN, expected 1.192\n    test 1329 GeoidPGM('egm2008-1.pgm').height(16.349, -99.962) kind 3: lli ('16.349121, -99.962229'), H (False) or wrap (False): lli ('16.349121, -99.962229'): outside on S  FAILED, KNOWN, expected -15.038\n    test 1330 GeoidPGM('egm2008-1.pgm').height(-14.293, -167.34) kind 3: lli ('-14.293325, -167.339799'), H (False) or wrap (False): lli ('-14.293325, -167.339799'): outside on SW  FAILED, KNOWN, expected 17.791\n    test 1331 GeoidPGM('egm2008-1.pgm').height(47.166, -38.523) kind 3: lli ('47.165911, -38.522629'), H (False) or wrap (False): lli ('47.165911, -38.522629'): outside on E  FAILED, KNOWN, expected 44.652\n    test 1332 GeoidPGM('egm2008-1.pgm').height(-58.911, 114.347) kind 3: lli ('-58.910597, 114.346927'), H (False) or wrap (False): lli ('-58.910597, 114.346927'): outside on SE  FAILED, KNOWN, expected -17.971\n    test 1333 GeoidPGM('egm2008-1.pgm').height(-9.055, 111.294) kind 3: lli ('-9.055095, 111.294422'), H (False) or wrap (False): lli ('-9.055095, 111.294422'): outside on SE  FAILED, KNOWN, expected 11.631\n    test 1334 GeoidPGM('egm2008-1.pgm').height(18.391, 29.692) kind 3: lli ('18.390988, 29.691577'), H (False) or wrap (False): lli ('18.390988, 29.691577'): outside on SE  FAILED, KNOWN, expected 7.394\n    test 1335 GeoidPGM('egm2008-1.pgm').height(-15.074, 22.153) kind 3: lli ('-15.074412, 22.152663'), H (False) or wrap (False): lli ('-15.074412, 22.152663'): outside on SE  FAILED, KNOWN, expected 7.932\n    test 1336 GeoidPGM('egm2008-1.pgm').height(-4.235, 62.001) kind 3: lli ('-4.234571, 62.001081'), H (False) or wrap (False): lli ('-4.234571, 62.001081'): outside on SE  FAILED, KNOWN, expected -60.593\n    test 1337 GeoidPGM('egm2008-1.pgm').height(15.171, -86.583) kind 3: lli ('15.170822, -86.582929'), H (False) or wrap (False): lli ('15.170822, -86.582929'): outside on S  FAILED, KNOWN, expected 4.384\n    test 1338 GeoidPGM('egm2008-1.pgm').height(79.254, 112.116) kind 3: lli ('79.254009, 112.115515'), H (False) or wrap (False): lli ('79.254009, 112.115515'): outside on NE  FAILED, KNOWN, expected 1.297\n    test 1339 GeoidPGM('egm2008-1.pgm').height(15.947, 156.093) kind 3: lli ('15.947068, 156.092678'), H (False) or wrap (False): lli ('15.947068, 156.092678'): outside on SE  FAILED, KNOWN, expected 30.852\n    test 1340 GeoidPGM('egm2008-1.pgm').height(68.371, -177.382) kind 3: lli ('68.370605, -177.382127'), H (False) or wrap (False): lli ('68.370605, -177.382127'): outside on NW  FAILED, KNOWN, expected 2.704\n    test 1341 GeoidPGM('egm2008-1.pgm').height(-41.931, -72.093) kind 3: lli ('-41.931009, -72.093413'), H (False) or wrap (False): lli ('-41.931009, -72.093413'): outside on S  FAILED, KNOWN, expected 21.264\n    test 1342 GeoidPGM('egm2008-1.pgm').height(-1.193, -143.133) kind 3: lli ('-1.192967, -143.133078'), H (False) or wrap (False): lli ('-1.192967, -143.133078'): outside on SW  FAILED, KNOWN, expected 5.443\n    test 1343 GeoidPGM('egm2008-1.pgm').height(-37.006, 154.513) kind 3: lli ('-37.006115, 154.512534'), H (False) or wrap (False): lli ('-37.006115, 154.512534'): outside on SE  FAILED, KNOWN, expected 9.998\n    test 1344 GeoidPGM('egm2008-1.pgm').height(-22.148, 9.938) kind 3: lli ('-22.148493, 9.938408'), H (False) or wrap (False): lli ('-22.148493, 9.938408'): outside on SE  FAILED, KNOWN, expected 22.428\n    test 1345 GeoidPGM('egm2008-1.pgm').height(24.329, 109.044) kind 3: lli ('24.328746, 109.043774'), H (False) or wrap (False): lli ('24.328746, 109.043774'): outside on SE  FAILED, KNOWN, expected -23.154\n    test 1346 GeoidPGM('egm2008-1.pgm').height(-54.878, 114.691) kind 3: lli ('-54.877699, 114.691444'), H (False) or wrap (False): lli ('-54.877699, 114.691444'): outside on SE  FAILED, KNOWN, expected -17.662\n    test 1347 GeoidPGM('egm2008-1.pgm').height(45.601, -80.458) kind 3: -36.840  FAILED, KNOWN, expected -36.839\n    test 1348 GeoidPGM('egm2008-1.pgm').height(2.372, 58.974) kind 3: lli ('2.371766, 58.974082'), H (False) or wrap (False): lli ('2.371766, 58.974082'): outside on SE  FAILED, KNOWN, expected -61.221\n    test 1349 GeoidPGM('egm2008-1.pgm').height(15.937, 165.854) kind 3: lli ('15.936522, 165.854035'), H (False) or wrap (False): lli ('15.936522, 165.854035'): outside on SE  FAILED, KNOWN, expected 20.355\n    test 1350 GeoidPGM('egm2008-1.pgm').height(4.889, -24.213) kind 3: lli ('4.889499, -24.213194'), H (False) or wrap (False): lli ('4.889499, -24.213194'): outside on SE  FAILED, KNOWN, expected 13.147\n    test 1351 GeoidPGM('egm2008-1.pgm').height(-11.392, 179.558) kind 3: lli ('-11.392365, 179.558198'), H (False) or wrap (False): lli ('-11.392365, 179.558198'): outside on SE  FAILED, KNOWN, expected 41.072\n    test 1352 GeoidPGM('egm2008-1.pgm').height(58.246, 4.862) kind 3: lli ('58.24629, 4.862128'), H (False) or wrap (False): lli ('58.24629, 4.862128'): outside on NE  FAILED, KNOWN, expected 42.982\n    test 1353 GeoidPGM('egm2008-1.pgm').height(34.302, -109.109) kind 3: -22.997  FAILED, KNOWN, expected -22.998\n    test 1354 GeoidPGM('egm2008-1.pgm').height(-58.196, 117.306) kind 3: lli ('-58.195787, 117.305696'), H (False) or wrap (False): lli ('-58.195787, 117.305696'): outside on SE  FAILED, KNOWN, expected -20.662\n    test 1355 GeoidPGM('egm2008-1.pgm').height(44.5, 173.769) kind 3: lli ('44.499876, 173.768568'), H (False) or wrap (False): lli ('44.499876, 173.768568'): outside on E  FAILED, KNOWN, expected -8.438\n    test 1356 GeoidPGM('egm2008-1.pgm').height(-28.863, -139.775) kind 3: lli ('-28.862539, -139.774812'), H (False) or wrap (False): lli ('-28.862539, -139.774812'): outside on SW  FAILED, KNOWN, expected -8.712\n    test 1357 GeoidPGM('egm2008-1.pgm').height(19.507, -96.099) kind 3: lli ('19.507043, -96.099433'), H (False) or wrap (False): lli ('19.507043, -96.099433'): outside on S  FAILED, KNOWN, expected -12.653\n    test 1358 GeoidPGM('egm2008-1.pgm').height(-42.488, -73.907) kind 3: lli ('-42.487604, -73.906602'), H (False) or wrap (False): lli ('-42.487604, -73.906602'): outside on S  FAILED, KNOWN, expected 17.166\n    test 1359 GeoidPGM('egm2008-1.pgm').height(46.138, -141.429) kind 3: lli ('46.138437, -141.429193'), H (False) or wrap (False): lli ('46.138437, -141.429193'): outside on W  FAILED, KNOWN, expected -19.874\n    test 1360 GeoidPGM('egm2008-1.pgm').height(60.507, 93.743) kind 3: lli ('60.506969, 93.74336'), H (False) or wrap (False): lli ('60.506969, 93.74336'): outside on NE  FAILED, KNOWN, expected -31.124\n    test 1361 GeoidPGM('egm2008-1.pgm').height(26.219, -145.434) kind 3: lli ('26.219081, -145.434391'), H (False) or wrap (False): lli ('26.219081, -145.434391'): outside on W  FAILED, KNOWN, expected -17.307\n    test 1362 GeoidPGM('egm2008-1.pgm').height(-28.687, 3.37) kind 3: lli ('-28.68714, 3.370196'), H (False) or wrap (False): lli ('-28.68714, 3.370196'): outside on SE  FAILED, KNOWN, expected 23.434\n    test 1363 GeoidPGM('egm2008-1.pgm').height(-15.008, 117.45) kind 3: lli ('-15.007944, 117.449536'), H (False) or wrap (False): lli ('-15.007944, 117.449536'): outside on SE  FAILED, KNOWN, expected 4.508\n    test 1364 GeoidPGM('egm2008-1.pgm').height(40.71, 144.095) kind 3: lli ('40.710024, 144.095126'), H (False) or wrap (False): lli ('40.710024, 144.095126'): outside on E  FAILED, KNOWN, expected 11.549\n    test 1365 GeoidPGM('egm2008-1.pgm').height(20.823, -173.611) kind 3: lli ('20.823096, -173.610797'), H (False) or wrap (False): lli ('20.823096, -173.610797'): outside on SW  FAILED, KNOWN, expected 5.748\n    test 1366 GeoidPGM('egm2008-1.pgm').height(16.776, -3.009) kind 3: lli ('16.776, -3.009'), H (False) or wrap (False): lli ('16.776, -3.009'): outside on SE  FAILED, KNOWN, expected 28.788\n    test 1367 GeoidPGM('egm2008-1.pgm').height(41.0, -95.0) kind 3: -30.588  FAILED, KNOWN, expected -30.589\n    test 1368 GeoidPGM('egm2008-1.pgm').height(49.0, -120.5) kind 3: -15.273\n    test 1369 GeoidPGM('egm2008-1.pgm').height(49.0, -103.5) kind 3: -18.624\n    test 1370 GeoidPGM('egm2008-1.pgm').height(49.0, -86.5) kind 3: -37.872  FAILED, KNOWN, expected -37.873\n    test 1371 GeoidPGM('egm2008-1.pgm').height(49.0, -69.5) kind 3: -26.511\n    test 1372 GeoidPGM('egm2008-1.pgm').height(33.0, -120.5) kind 3: -39.600\n    test 1373 GeoidPGM('egm2008-1.pgm').height(33.0, -103.5) kind 3: -22.689\n    test 1374 GeoidPGM('egm2008-1.pgm').height(33.0, -86.5) kind 3: -30.066  FAILED, KNOWN, expected -30.067\n    test 1375 GeoidPGM('egm2008-1.pgm').height(33.0, -69.5) kind 3: -48.093\n\n    test 1376 GeoidPGM('egm2008-1.pgm').height() kind 3, eps max (in 0 FAILED): 0.001386\n    test 1377 GeoidPGM('egm2008-1.pgm').height() kind 3, eps mean (of 15 total): 0.000532\n    test 1378 GeoidPGM('egm2008-1.pgm').height() kind 3, eps stdev (of 15 total): 0.000380\n    test 1379 GeoidPGM('egm2008-1.pgm').highest(): 44.15, -109.817, -7.089\n    test 1380 GeoidPGM('egm2008-1.pgm').lowerleft(): 25.0, -125.0, -45.45\n    test 1381 GeoidPGM('egm2008-1.pgm').lowerright(): 25.0, -64.983, -50.831\n    test 1382 GeoidPGM('egm2008-1.pgm').lowest(): 25.733, -69.767, -52.518\n    test 1383 GeoidPGM('egm2008-1.pgm').upperleft(): 55.0, -125.0, -10.722\n    test 1384 GeoidPGM('egm2008-1.pgm').upperright(): 55.0, -64.983, -16.223\n    test 1385 GeoidPGM('egm2008-1.pgm').dtype: (\"dtype('float64')\",)\n    test 1386 GeoidPGM('egm2008-1.pgm').knots: ('6485401',)\n    test 1387 GeoidPGM('egm2008-1.pgm').mean: ('-29.707',)\n    test 1388 GeoidPGM('egm2008-1.pgm').nBytes: ('51883208',)\n    test 1389 GeoidPGM('egm2008-1.pgm').smooth: ('0',)\n    test 1390 GeoidPGM('egm2008-1.pgm').stdev: ('9.505',)\n    test 1391 GeoidPGM('egm2008-1.pgm')._g2ll2(180, 360): (180, 0.0)\n    test 1392 GeoidPGM('egm2008-1.pgm')._ll2g2(180, 360): (180, 720.0)\n    test 1393 GeoidPGM('egm2008-1.pgm')._swne: (-10.0, -100.0, 10.0, 100.0)\n    test 1394 GeoidPGM('egm2008-1.pgm')._swne: (-10.0, -100.0, 10.0, 100.0)\n    test 1395 GeoidPGM('egm2008-1.pgm').toStr: GeoidPGM('egm2008-1.pgm'): lowerleft(25.0, -125.0, -45.45), upperright(55.0, -64.983, -16.223), center(40.0, -94.992, -31.838), highest(44.15, -109.817, -7.089), lowest(25.733, -69.767, -52.518)\n\n    test 1396 closed: True\n    test 1397 copy(<class 'type'>): (<class 'pygeodesy.geoids.GeoidPGM'>, True)\n    test 1398 GeoidPGM.copy(): (<class 'pygeodesy.geoids.GeoidPGM'>, True)\n    test 1399 GeoidKarney('egm84-15.pgm').height(-76.981, 34.17) kind 2: 11.727  FAILED, KNOWN, expected 11.729\n    test 1400 GeoidKarney('egm84-15.pgm').height(79.695, 88.806) kind 2: 0.280  FAILED, KNOWN, expected 0.270\n    test 1401 GeoidKarney('egm84-15.pgm').height(-15.245, 168.748) kind 2: 67.071  FAILED, KNOWN, expected 67.074\n    test 1402 GeoidKarney('egm84-15.pgm').height(-19.379, 15.855) kind 2: 25.366  FAILED, KNOWN, expected 25.344\n    test 1403 GeoidKarney('egm84-15.pgm').height(43.378, -130.552) kind 2: -28.913  FAILED, KNOWN, expected -28.919\n    test 1404 GeoidKarney('egm84-15.pgm').height(-16.075, 21.795) kind 2: 14.383  FAILED, KNOWN, expected 14.386\n    test 1405 GeoidKarney('egm84-15.pgm').height(-11.256, -73.75) kind 2: 30.701  FAILED, KNOWN, expected 30.700\n    test 1406 GeoidKarney('egm84-15.pgm').height(69.017, -15.921) kind 2: 62.222  FAILED, KNOWN, expected 62.225\n    test 1407 GeoidKarney('egm84-15.pgm').height(2.221, 139.739) kind 2: 70.221  FAILED, KNOWN, expected 70.222\n    test 1408 GeoidKarney('egm84-15.pgm').height(-9.097, 119.142) kind 2: 34.290  FAILED, KNOWN, expected 34.336\n    test 1409 GeoidKarney('egm84-15.pgm').height(-28.524, -22.192) kind 2: 8.205  FAILED, KNOWN, expected 8.206\n    test 1410 GeoidKarney('egm84-15.pgm').height(12.272, -136.424) kind 2: -20.068  FAILED, KNOWN, expected -20.074\n    test 1411 GeoidKarney('egm84-15.pgm').height(-15.203, -85.604) kind 2: -3.129\n    test 1412 GeoidKarney('egm84-15.pgm').height(-63.736, -77.17) kind 2: -3.214  FAILED, KNOWN, expected -3.217\n    test 1413 GeoidKarney('egm84-15.pgm').height(-48.771, -90.102) kind 2: -1.536  FAILED, KNOWN, expected -1.531\n    test 1414 GeoidKarney('egm84-15.pgm').height(-0.179, -126.368) kind 2: -16.742\n    test 1415 GeoidKarney('egm84-15.pgm').height(1.586, -128.887) kind 2: -15.418  FAILED, KNOWN, expected -15.412\n    test 1416 GeoidKarney('egm84-15.pgm').height(-48.781, -2.684) kind 2: 25.077  FAILED, KNOWN, expected 25.078\n    test 1417 GeoidKarney('egm84-15.pgm').height(-49.092, 136.862) kind 2: -18.114  FAILED, KNOWN, expected -18.120\n    test 1418 GeoidKarney('egm84-15.pgm').height(47.732, 17.552) kind 2: 46.230  FAILED, KNOWN, expected 46.224\n    test 1419 GeoidKarney('egm84-15.pgm').height(-49.11, 85.706) kind 2: 18.648  FAILED, KNOWN, expected 18.649\n    test 1420 GeoidKarney('egm84-15.pgm').height(-49.162, 40.321) kind 2: 44.759  FAILED, KNOWN, expected 44.764\n    test 1421 GeoidKarney('egm84-15.pgm').height(3.498, 158.118) kind 2: 51.095  FAILED, KNOWN, expected 51.089\n    test 1422 GeoidKarney('egm84-15.pgm').height(-35.616, 122.648) kind 2: -34.436  FAILED, KNOWN, expected -34.471\n    test 1423 GeoidKarney('egm84-15.pgm').height(56.598, -96.114) kind 2: -39.124\n    test 1424 GeoidKarney('egm84-15.pgm').height(-31.85, 149.121) kind 2: 28.131  FAILED, KNOWN, expected 28.142\n    test 1425 GeoidKarney('egm84-15.pgm').height(-26.569, -177.792) kind 2: 49.606  FAILED, KNOWN, expected 49.619\n    test 1426 GeoidKarney('egm84-15.pgm').height(76.735, -65.753) kind 2: 22.568  FAILED, KNOWN, expected 22.575\n    test 1427 GeoidKarney('egm84-15.pgm').height(-21.404, -122.268) kind 2: -6.894  FAILED, KNOWN, expected -6.893\n    test 1428 GeoidKarney('egm84-15.pgm').height(-77.133, -65.474) kind 2: -15.017  FAILED, KNOWN, expected -15.012\n    test 1429 GeoidKarney('egm84-15.pgm').height(-58.812, 2.276) kind 2: 18.777  FAILED, KNOWN, expected 18.776\n    test 1430 GeoidKarney('egm84-15.pgm').height(4.415, 155.683) kind 2: 53.644  FAILED, KNOWN, expected 53.645\n    test 1431 GeoidKarney('egm84-15.pgm').height(-28.146, 107.081) kind 2: -39.058  FAILED, KNOWN, expected -39.074\n    test 1432 GeoidKarney('egm84-15.pgm').height(-10.551, -126.69) kind 2: -9.643  FAILED, KNOWN, expected -9.645\n    test 1433 GeoidKarney('egm84-15.pgm').height(-25.444, -103.337) kind 2: -2.520  FAILED, KNOWN, expected -2.528\n    test 1434 GeoidKarney('egm84-15.pgm').height(24.436, 46.159) kind 2: -6.918  FAILED, KNOWN, expected -6.907\n    test 1435 GeoidKarney('egm84-15.pgm').height(-72.889, 37.107) kind 2: 21.758  FAILED, KNOWN, expected 21.711\n    test 1436 GeoidKarney('egm84-15.pgm').height(-19.629, 13.245) kind 2: 25.617  FAILED, KNOWN, expected 25.611\n    test 1437 GeoidKarney('egm84-15.pgm').height(-7.602, 171.265) kind 2: 41.585  FAILED, KNOWN, expected 41.569\n    test 1438 GeoidKarney('egm84-15.pgm').height(-45.364, -1.876) kind 2: 23.283  FAILED, KNOWN, expected 23.280\n    test 1439 GeoidKarney('egm84-15.pgm').height(-7.292, -69.18) kind 2: 24.497  FAILED, KNOWN, expected 24.502\n    test 1440 GeoidKarney('egm84-15.pgm').height(-31.566, -166.689) kind 2: 14.825  FAILED, KNOWN, expected 14.826\n    test 1441 GeoidKarney('egm84-15.pgm').height(-82.751, -162.085) kind 2: -45.104\n    test 1442 GeoidKarney('egm84-15.pgm').height(-40.7, 99.466) kind 2: -17.254  FAILED, KNOWN, expected -17.252\n    test 1443 GeoidKarney('egm84-15.pgm').height(48.676, 39.69) kind 2: 12.984  FAILED, KNOWN, expected 12.972\n    test 1444 GeoidKarney('egm84-15.pgm').height(74.817, -78.404) kind 2: 4.773  FAILED, KNOWN, expected 4.776\n    test 1445 GeoidKarney('egm84-15.pgm').height(-81.032, -63.865) kind 2: -23.577\n    test 1446 GeoidKarney('egm84-15.pgm').height(74.022, 9.432) kind 2: 43.884  FAILED, KNOWN, expected 43.885\n    test 1447 GeoidKarney('egm84-15.pgm').height(-75.071, 17.579) kind 2: 17.064  FAILED, KNOWN, expected 17.072\n    test 1448 GeoidKarney('egm84-15.pgm').height(-12.546, -54.851) kind 2: -6.637  FAILED, KNOWN, expected -6.643\n    test 1449 GeoidKarney('egm84-15.pgm').height(-13.621, 42.408) kind 2: -23.332  FAILED, KNOWN, expected -23.325\n    test 1450 GeoidKarney('egm84-15.pgm').height(-2.266, -91.951) kind 2: -10.689  FAILED, KNOWN, expected -10.698\n    test 1451 GeoidKarney('egm84-15.pgm').height(-18.672, 42.547) kind 2: -10.305  FAILED, KNOWN, expected -10.265\n    test 1452 GeoidKarney('egm84-15.pgm').height(-41.44, 157.413) kind 2: 0.692  FAILED, KNOWN, expected 0.689\n    test 1453 GeoidKarney('egm84-15.pgm').height(53.686, -79.375) kind 2: -43.763  FAILED, KNOWN, expected -43.758\n    test 1454 GeoidKarney('egm84-15.pgm').height(39.26, -30.351) kind 2: 57.551  FAILED, KNOWN, expected 57.554\n    test 1455 GeoidKarney('egm84-15.pgm').height(-51.699, -141.493) kind 2: -16.939  FAILED, KNOWN, expected -16.936\n    test 1456 GeoidKarney('egm84-15.pgm').height(36.585, 4.515) kind 2: 45.227  FAILED, KNOWN, expected 45.295\n    test 1457 GeoidKarney('egm84-15.pgm').height(39.642, -54.659) kind 2: -13.585  FAILED, KNOWN, expected -13.586\n    test 1458 GeoidKarney('egm84-15.pgm').height(59.761, 166.567) kind 2: 11.469  FAILED, KNOWN, expected 11.468\n    test 1459 GeoidKarney('egm84-15.pgm').height(51.83, 13.357) kind 2: 42.090  FAILED, KNOWN, expected 42.092\n    test 1460 GeoidKarney('egm84-15.pgm').height(-36.531, -175.431) kind 2: 22.828  FAILED, KNOWN, expected 22.830\n    test 1461 GeoidKarney('egm84-15.pgm').height(-37.08, 125.264) kind 2: -32.300  FAILED, KNOWN, expected -32.302\n    test 1462 GeoidKarney('egm84-15.pgm').height(-68.651, 92.732) kind 2: 9.212  FAILED, KNOWN, expected 9.228\n    test 1463 GeoidKarney('egm84-15.pgm').height(35.087, 45.336) kind 2: 6.000  FAILED, KNOWN, expected 5.965\n    test 1464 GeoidKarney('egm84-15.pgm').height(-61.356, -169.379) kind 2: -45.000  FAILED, KNOWN, expected -45.013\n    test 1465 GeoidKarney('egm84-15.pgm').height(-36.955, 179.12) kind 2: 21.148  FAILED, KNOWN, expected 21.118\n    test 1466 GeoidKarney('egm84-15.pgm').height(10.248, -6.714) kind 2: 30.500  FAILED, KNOWN, expected 30.497\n    test 1467 GeoidKarney('egm84-15.pgm').height(36.868, 84.602) kind 2: -40.416  FAILED, KNOWN, expected -40.396\n    test 1468 GeoidKarney('egm84-15.pgm').height(28.637, 88.933) kind 2: -31.726  FAILED, KNOWN, expected -31.704\n    test 1469 GeoidKarney('egm84-15.pgm').height(54.811, -99.968) kind 2: -32.271  FAILED, KNOWN, expected -32.277\n    test 1470 GeoidKarney('egm84-15.pgm').height(7.611, 145.911) kind 2: 61.016  FAILED, KNOWN, expected 61.024\n    test 1471 GeoidKarney('egm84-15.pgm').height(59.412, 170.102) kind 2: 5.017  FAILED, KNOWN, expected 4.994\n    test 1472 GeoidKarney('egm84-15.pgm').height(-61.469, 126.144) kind 2: -30.240  FAILED, KNOWN, expected -30.237\n    test 1473 GeoidKarney('egm84-15.pgm').height(18.514, -137.083) kind 2: -26.007  FAILED, KNOWN, expected -26.006\n    test 1474 GeoidKarney('egm84-15.pgm').height(7.854, -126.799) kind 2: -29.280  FAILED, KNOWN, expected -29.283\n    test 1475 GeoidKarney('egm84-15.pgm').height(47.489, 134.183) kind 2: 22.400  FAILED, KNOWN, expected 22.394\n    test 1476 GeoidKarney('egm84-15.pgm').height(-34.144, -11.922) kind 2: 17.549  FAILED, KNOWN, expected 17.550\n    test 1477 GeoidKarney('egm84-15.pgm').height(-58.389, 117.458) kind 2: -20.621  FAILED, KNOWN, expected -20.622\n    test 1478 GeoidKarney('egm84-15.pgm').height(9.773, 95.846) kind 2: -41.463  FAILED, KNOWN, expected -41.484\n    test 1479 GeoidKarney('egm84-15.pgm').height(-53.12, 136.994) kind 2: -20.969  FAILED, KNOWN, expected -20.968\n    test 1480 GeoidKarney('egm84-15.pgm').height(-50.35, 0.075) kind 2: 25.561  FAILED, KNOWN, expected 25.568\n    test 1481 GeoidKarney('egm84-15.pgm').height(31.438, -170.879) kind 2: -8.574  FAILED, KNOWN, expected -8.581\n    test 1482 GeoidKarney('egm84-15.pgm').height(37.541, -153.024) kind 2: -18.329\n    test 1483 GeoidKarney('egm84-15.pgm').height(27.586, 2.444) kind 2: 25.003  FAILED, KNOWN, expected 25.001\n    test 1484 GeoidKarney('egm84-15.pgm').height(-26.139, -106.201) kind 2: -2.945  FAILED, KNOWN, expected -2.940\n    test 1485 GeoidKarney('egm84-15.pgm').height(-33.426, -14.84) kind 2: 18.220  FAILED, KNOWN, expected 18.228\n    test 1486 GeoidKarney('egm84-15.pgm').height(39.586, -153.019) kind 2: -16.511  FAILED, KNOWN, expected -16.507\n    test 1487 GeoidKarney('egm84-15.pgm').height(-60.79, -2.578) kind 2: 14.277  FAILED, KNOWN, expected 14.275\n    test 1488 GeoidKarney('egm84-15.pgm').height(-20.131, 21.975) kind 2: 16.866  FAILED, KNOWN, expected 16.852\n    test 1489 GeoidKarney('egm84-15.pgm').height(75.649, 99.921) kind 2: -6.870  FAILED, KNOWN, expected -6.872\n    test 1490 GeoidKarney('egm84-15.pgm').height(-0.385, -23.788) kind 2: 8.987  FAILED, KNOWN, expected 9.006\n    test 1491 GeoidKarney('egm84-15.pgm').height(-51.56, -50.327) kind 2: 6.277  FAILED, KNOWN, expected 6.296\n    test 1492 GeoidKarney('egm84-15.pgm').height(-43.129, -167.271) kind 2: -1.483  FAILED, KNOWN, expected -1.481\n    test 1493 GeoidKarney('egm84-15.pgm').height(46.374, 71.948) kind 2: -40.929  FAILED, KNOWN, expected -40.915\n    test 1494 GeoidKarney('egm84-15.pgm').height(-22.783, 140.657) kind 2: 37.481  FAILED, KNOWN, expected 37.495\n    test 1495 GeoidKarney('egm84-15.pgm').height(-12.056, 122.804) kind 2: 32.222  FAILED, KNOWN, expected 32.258\n    test 1496 GeoidKarney('egm84-15.pgm').height(30.127, 94.738) kind 2: -41.529\n    test 1497 GeoidKarney('egm84-15.pgm').height(46.296, -174.479) kind 2: -1.377\n    test 1498 GeoidKarney('egm84-15.pgm').height(34.99, 15.052) kind 2: 35.263  FAILED, KNOWN, expected 35.280\n    test 1499 GeoidKarney('egm84-15.pgm').height(-51.287, 90.565) kind 2: 12.958\n    test 1500 GeoidKarney('egm84-15.pgm').height(34.217, 141.302) kind 2: 18.423  FAILED, KNOWN, expected 18.307\n    test 1501 GeoidKarney('egm84-15.pgm').height(-40.423, -142.787) kind 2: -10.400\n    test 1502 GeoidKarney('egm84-15.pgm').height(-17.854, -170.216) kind 2: 28.649  FAILED, KNOWN, expected 28.638\n    test 1503 GeoidKarney('egm84-15.pgm').height(47.803, 112.701) kind 2: -24.060  FAILED, KNOWN, expected -24.059\n    test 1504 GeoidKarney('egm84-15.pgm').height(-23.276, 133.454) kind 2: 18.800  FAILED, KNOWN, expected 18.806\n    test 1505 GeoidKarney('egm84-15.pgm').height(-26.884, -36.571) kind 2: -6.808  FAILED, KNOWN, expected -6.820\n    test 1506 GeoidKarney('egm84-15.pgm').height(-37.106, 31.128) kind 2: 31.485  FAILED, KNOWN, expected 31.486\n    test 1507 GeoidKarney('egm84-15.pgm').height(-75.363, -173.674) kind 2: -62.021  FAILED, KNOWN, expected -62.024\n    test 1508 GeoidKarney('egm84-15.pgm').height(-18.305, 69.016) kind 2: -24.246  FAILED, KNOWN, expected -24.248\n    test 1509 GeoidKarney('egm84-15.pgm').height(39.527, 23.58) kind 2: 43.246  FAILED, KNOWN, expected 43.255\n    test 1510 GeoidKarney('egm84-15.pgm').height(68.903, 30.97) kind 2: 18.496  FAILED, KNOWN, expected 18.498\n    test 1511 GeoidKarney('egm84-15.pgm').height(53.937, 168.318) kind 2: 4.100  FAILED, KNOWN, expected 4.067\n    test 1512 GeoidKarney('egm84-15.pgm').height(-38.6, 64.812) kind 2: 25.456  FAILED, KNOWN, expected 25.454\n    test 1513 GeoidKarney('egm84-15.pgm').height(-41.396, -69.739) kind 2: 26.619  FAILED, KNOWN, expected 26.657\n    test 1514 GeoidKarney('egm84-15.pgm').height(50.158, 72.319) kind 2: -32.003  FAILED, KNOWN, expected -31.966\n    test 1515 GeoidKarney('egm84-15.pgm').height(27.692, 176.153) kind 2: -4.422  FAILED, KNOWN, expected -4.415\n    test 1516 GeoidKarney('egm84-15.pgm').height(-48.419, 170.454) kind 2: -6.717  FAILED, KNOWN, expected -6.741\n    test 1517 GeoidKarney('egm84-15.pgm').height(-65.346, -124.976) kind 2: -34.915  FAILED, KNOWN, expected -34.900\n    test 1518 GeoidKarney('egm84-15.pgm').height(-51.873, 167.266) kind 2: -14.214  FAILED, KNOWN, expected -14.223\n    test 1519 GeoidKarney('egm84-15.pgm').height(-7.263, 84.308) kind 2: -79.313  FAILED, KNOWN, expected -79.317\n    test 1520 GeoidKarney('egm84-15.pgm').height(-1.461, -105.458) kind 2: -16.163\n    test 1521 GeoidKarney('egm84-15.pgm').height(7.684, 161.873) kind 2: 36.296  FAILED, KNOWN, expected 36.287\n    test 1522 GeoidKarney('egm84-15.pgm').height(-31.475, -158.52) kind 2: 4.066  FAILED, KNOWN, expected 4.068\n    test 1523 GeoidKarney('egm84-15.pgm').height(-36.187, 62.917) kind 2: 24.401  FAILED, KNOWN, expected 24.407\n    test 1524 GeoidKarney('egm84-15.pgm').height(16.003, 141.687) kind 2: 53.051  FAILED, KNOWN, expected 53.054\n    test 1525 GeoidKarney('egm84-15.pgm').height(30.182, 86.261) kind 2: -30.616  FAILED, KNOWN, expected -30.622\n    test 1526 GeoidKarney('egm84-15.pgm').height(-77.304, 159.498) kind 2: -53.544  FAILED, KNOWN, expected -53.540\n    test 1527 GeoidKarney('egm84-15.pgm').height(39.536, 139.795) kind 2: 36.274  FAILED, KNOWN, expected 36.262\n    test 1528 GeoidKarney('egm84-15.pgm').height(8.569, 134.618) kind 2: 64.339  FAILED, KNOWN, expected 64.369\n    test 1529 GeoidKarney('egm84-15.pgm').height(14.473, 90.596) kind 2: -61.320  FAILED, KNOWN, expected -61.300\n    test 1530 GeoidKarney('egm84-15.pgm').height(-13.138, -99.589) kind 2: -7.996  FAILED, KNOWN, expected -7.999\n    test 1531 GeoidKarney('egm84-15.pgm').height(34.212, -26.307) kind 2: 41.489  FAILED, KNOWN, expected 41.477\n    test 1532 GeoidKarney('egm84-15.pgm').height(21.89, 76.371) kind 2: -59.881  FAILED, KNOWN, expected -59.876\n    test 1533 GeoidKarney('egm84-15.pgm').height(29.793, 120.487) kind 2: 8.422  FAILED, KNOWN, expected 8.404\n    test 1534 GeoidKarney('egm84-15.pgm').height(15.724, 122.714) kind 2: 39.200  FAILED, KNOWN, expected 39.152\n    test 1535 GeoidKarney('egm84-15.pgm').height(-66.208, -78.499) kind 2: -7.068  FAILED, KNOWN, expected -7.076\n    test 1536 GeoidKarney('egm84-15.pgm').height(-39.507, 55.809) kind 2: 33.179  FAILED, KNOWN, expected 33.178\n    test 1537 GeoidKarney('egm84-15.pgm').height(28.159, 51.476) kind 2: -23.801  FAILED, KNOWN, expected -23.832\n    test 1538 GeoidKarney('egm84-15.pgm').height(-36.207, 120.205) kind 2: -38.175  FAILED, KNOWN, expected -38.206\n    test 1539 GeoidKarney('egm84-15.pgm').height(30.575, -99.998) kind 2: -22.171  FAILED, KNOWN, expected -22.142\n    test 1540 GeoidKarney('egm84-15.pgm').height(-16.993, 37.136) kind 2: -13.746  FAILED, KNOWN, expected -13.765\n    test 1541 GeoidKarney('egm84-15.pgm').height(-11.477, 12.039) kind 2: 16.909  FAILED, KNOWN, expected 16.898\n    test 1542 GeoidKarney('egm84-15.pgm').height(30.428, -144.765) kind 2: -22.479  FAILED, KNOWN, expected -22.474\n    test 1543 GeoidKarney('egm84-15.pgm').height(-17.44, -92.424) kind 2: -4.710  FAILED, KNOWN, expected -4.718\n    test 1544 GeoidKarney('egm84-15.pgm').height(40.203, 143.43) kind 2: 16.680  FAILED, KNOWN, expected 16.635\n    test 1545 GeoidKarney('egm84-15.pgm').height(-37.098, -106.574) kind 2: -9.012\n    test 1546 GeoidKarney('egm84-15.pgm').height(54.62, -68.413) kind 2: -23.556  FAILED, KNOWN, expected -23.543\n    test 1547 GeoidKarney('egm84-15.pgm').height(-31.633, 148.182) kind 2: 26.240  FAILED, KNOWN, expected 26.236\n    test 1548 GeoidKarney('egm84-15.pgm').height(-56.07, -141.407) kind 2: -21.963  FAILED, KNOWN, expected -21.953\n    test 1549 GeoidKarney('egm84-15.pgm').height(-8.195, -52.691) kind 2: -17.959\n    test 1550 GeoidKarney('egm84-15.pgm').height(17.851, 24.749) kind 2: 9.072  FAILED, KNOWN, expected 9.078\n    test 1551 GeoidKarney('egm84-15.pgm').height(0.349, -108.333) kind 2: -19.160  FAILED, KNOWN, expected -19.158\n    test 1552 GeoidKarney('egm84-15.pgm').height(15.038, 126.191) kind 2: 46.776\n    test 1553 GeoidKarney('egm84-15.pgm').height(-21.111, -123.696) kind 2: -8.053  FAILED, KNOWN, expected -8.055\n    test 1554 GeoidKarney('egm84-15.pgm').height(30.947, 173.002) kind 2: -7.681  FAILED, KNOWN, expected -7.696\n    test 1555 GeoidKarney('egm84-15.pgm').height(-10.698, -144.091) kind 2: -1.052  FAILED, KNOWN, expected -1.049\n    test 1556 GeoidKarney('egm84-15.pgm').height(-29.412, 124.753) kind 2: -16.081\n    test 1557 GeoidKarney('egm84-15.pgm').height(38.224, -137.189) kind 2: -35.429  FAILED, KNOWN, expected -35.427\n    test 1558 GeoidKarney('egm84-15.pgm').height(36.064, -132.409) kind 2: -38.648\n    test 1559 GeoidKarney('egm84-15.pgm').height(29.975, 178.076) kind 2: -5.524  FAILED, KNOWN, expected -5.519\n    test 1560 GeoidKarney('egm84-15.pgm').height(-21.346, 169.26) kind 2: 53.448  FAILED, KNOWN, expected 53.431\n    test 1561 GeoidKarney('egm84-15.pgm').height(49.282, -152.934) kind 2: 1.977  FAILED, KNOWN, expected 1.979\n    test 1562 GeoidKarney('egm84-15.pgm').height(16.349, -99.962) kind 2: -13.131  FAILED, KNOWN, expected -13.197\n    test 1563 GeoidKarney('egm84-15.pgm').height(-14.293, -167.34) kind 2: 18.953  FAILED, KNOWN, expected 18.945\n    test 1564 GeoidKarney('egm84-15.pgm').height(47.166, -38.523) kind 2: 45.180  FAILED, KNOWN, expected 45.187\n    test 1565 GeoidKarney('egm84-15.pgm').height(-58.911, 114.347) kind 2: -17.155  FAILED, KNOWN, expected -17.145\n    test 1566 GeoidKarney('egm84-15.pgm').height(-9.055, 111.294) kind 2: 13.136  FAILED, KNOWN, expected 13.146\n    test 1567 GeoidKarney('egm84-15.pgm').height(18.391, 29.692) kind 2: 4.933\n    test 1568 GeoidKarney('egm84-15.pgm').height(-15.074, 22.153) kind 2: 12.313  FAILED, KNOWN, expected 12.326\n    test 1569 GeoidKarney('egm84-15.pgm').height(-4.235, 62.001) kind 2: -60.029  FAILED, KNOWN, expected -60.030\n    test 1570 GeoidKarney('egm84-15.pgm').height(15.171, -86.583) kind 2: 3.034  FAILED, KNOWN, expected 3.110\n    test 1571 GeoidKarney('egm84-15.pgm').height(79.254, 112.116) kind 2: -2.741\n    test 1572 GeoidKarney('egm84-15.pgm').height(15.947, 156.093) kind 2: 32.108  FAILED, KNOWN, expected 32.085\n    test 1573 GeoidKarney('egm84-15.pgm').height(68.371, -177.382) kind 2: 2.069  FAILED, KNOWN, expected 2.060\n    test 1574 GeoidKarney('egm84-15.pgm').height(-41.931, -72.093) kind 2: 22.901  FAILED, KNOWN, expected 22.916\n    test 1575 GeoidKarney('egm84-15.pgm').height(-1.193, -143.133) kind 2: 5.526  FAILED, KNOWN, expected 5.519\n    test 1576 GeoidKarney('egm84-15.pgm').height(-37.006, 154.513) kind 2: 11.019  FAILED, KNOWN, expected 11.020\n    test 1577 GeoidKarney('egm84-15.pgm').height(-22.148, 9.938) kind 2: 22.181  FAILED, KNOWN, expected 22.171\n    test 1578 GeoidKarney('egm84-15.pgm').height(24.329, 109.044) kind 2: -22.957  FAILED, KNOWN, expected -22.944\n    test 1579 GeoidKarney('egm84-15.pgm').height(-54.878, 114.691) kind 2: -17.583  FAILED, KNOWN, expected -17.580\n    test 1580 GeoidKarney('egm84-15.pgm').height(45.601, -80.458) kind 2: -35.728  FAILED, KNOWN, expected -35.738\n    test 1581 GeoidKarney('egm84-15.pgm').height(2.372, 58.974) kind 2: -61.036  FAILED, KNOWN, expected -61.040\n    test 1582 GeoidKarney('egm84-15.pgm').height(15.937, 165.854) kind 2: 20.897  FAILED, KNOWN, expected 20.907\n    test 1583 GeoidKarney('egm84-15.pgm').height(4.889, -24.213) kind 2: 13.865  FAILED, KNOWN, expected 13.874\n    test 1584 GeoidKarney('egm84-15.pgm').height(-11.392, 179.558) kind 2: 40.920  FAILED, KNOWN, expected 40.929\n    test 1585 GeoidKarney('egm84-15.pgm').height(58.246, 4.862) kind 2: 43.196  FAILED, KNOWN, expected 43.191\n    test 1586 GeoidKarney('egm84-15.pgm').height(34.302, -109.109) kind 2: -22.016  FAILED, KNOWN, expected -22.006\n    test 1587 GeoidKarney('egm84-15.pgm').height(-58.196, 117.306) kind 2: -20.378  FAILED, KNOWN, expected -20.375\n    test 1588 GeoidKarney('egm84-15.pgm').height(44.5, 173.769) kind 2: -7.856  FAILED, KNOWN, expected -7.852\n    test 1589 GeoidKarney('egm84-15.pgm').height(-28.863, -139.775) kind 2: -8.680  FAILED, KNOWN, expected -8.674\n    test 1590 GeoidKarney('egm84-15.pgm').height(19.507, -96.099) kind 2: -14.089  FAILED, KNOWN, expected -14.117\n    test 1591 GeoidKarney('egm84-15.pgm').height(-42.488, -73.907) kind 2: 17.249  FAILED, KNOWN, expected 17.251\n    test 1592 GeoidKarney('egm84-15.pgm').height(46.138, -141.429) kind 2: -19.434  FAILED, KNOWN, expected -19.436\n    test 1593 GeoidKarney('egm84-15.pgm').height(60.507, 93.743) kind 2: -31.333  FAILED, KNOWN, expected -31.330\n    test 1594 GeoidKarney('egm84-15.pgm').height(26.219, -145.434) kind 2: -17.088  FAILED, KNOWN, expected -17.090\n    test 1595 GeoidKarney('egm84-15.pgm').height(-28.687, 3.37) kind 2: 24.177  FAILED, KNOWN, expected 24.184\n    test 1596 GeoidKarney('egm84-15.pgm').height(-15.008, 117.45) kind 2: 6.146  FAILED, KNOWN, expected 6.142\n    test 1597 GeoidKarney('egm84-15.pgm').height(40.71, 144.095) kind 2: 11.771  FAILED, KNOWN, expected 11.693\n    test 1598 GeoidKarney('egm84-15.pgm').height(20.823, -173.611) kind 2: 6.830  FAILED, KNOWN, expected 6.840\n    test 1599 GeoidKarney('egm84-15.pgm').height(16.776, -3.009) kind 2: 31.293  FAILED, KNOWN, expected 31.298\n    test 1600 GeoidKarney('egm84-15.pgm').height(41.0, -95.0) kind 2: -31.953  FAILED, KNOWN, expected -31.952\n    test 1601 GeoidKarney('egm84-15.pgm').height(49.0, -120.5) kind 2: -14.946\n    test 1602 GeoidKarney('egm84-15.pgm').height(49.0, -103.5) kind 2: -17.031  FAILED, KNOWN, expected -17.032\n    test 1603 GeoidKarney('egm84-15.pgm').height(49.0, -86.5) kind 2: -37.962\n    test 1604 GeoidKarney('egm84-15.pgm').height(49.0, -69.5) kind 2: -26.493  FAILED, KNOWN, expected -26.492\n    test 1605 GeoidKarney('egm84-15.pgm').height(33.0, -120.5) kind 2: -39.543\n    test 1606 GeoidKarney('egm84-15.pgm').height(33.0, -103.5) kind 2: -22.557  FAILED, KNOWN, expected -22.556\n    test 1607 GeoidKarney('egm84-15.pgm').height(33.0, -86.5) kind 2: -28.710\n    test 1608 GeoidKarney('egm84-15.pgm').height(33.0, -69.5) kind 2: -46.590\n\n    test 1609 GeoidKarney('egm84-15.pgm').height() kind 2, hits 0, eps max (in 0 FAILED): 0.115669\n    test 1610 GeoidKarney('egm84-15.pgm').height() kind 2, hits 0, eps mean (of 210 total): 0.010307\n    test 1611 GeoidKarney('egm84-15.pgm').height() kind 2, hits 0, eps stdev (of 210 total): 0.015203\n    test 1612 GeoidKarney('egm84-15.pgm').highest(): -4.5, 148.75, 81.33\n    test 1613 GeoidKarney('egm84-15.pgm').lowerleft(): -90.0, -180.0, -29.712\n    test 1614 GeoidKarney('egm84-15.pgm').lowerright(): -90.0, 180.0, -29.712\n    test 1615 GeoidKarney('egm84-15.pgm').lowest(): 4.75, 79.25, -107.34\n    test 1616 GeoidKarney('egm84-15.pgm').upperleft(): 90.0, -180.0, 13.098\n    test 1617 GeoidKarney('egm84-15.pgm').upperright(): 90.0, 180.0, 13.098\n    test 1618 GeoidKarney('egm84-15.pgm').dtype: (\"'ushort'\",)\n    test 1619 GeoidKarney('egm84-15.pgm').knots: ('1038240',)\n    test 1620 GeoidKarney('egm84-15.pgm').mean: ('-1.317',)\n    test 1621 GeoidKarney('egm84-15.pgm').nBytes: ('None',)\n    test 1622 GeoidKarney('egm84-15.pgm').smooth: ('None',)\n    test 1623 GeoidKarney('egm84-15.pgm').stdev: ('29.244',)\n    test 1624 GeoidKarney('egm84-15.pgm')._g2ll2(180, 360): (180, 0.0)\n    test 1625 GeoidKarney('egm84-15.pgm')._ll2g2(180, 360): (180, 360)\n    test 1626 GeoidKarney('egm84-15.pgm')._swne: (-10.0, -100.0, 10.0, 100.0)\n    test 1627 GeoidKarney('egm84-15.pgm')._swne: (-10.0, -100.0, 10.0, 100.0)\n    test 1628 GeoidKarney('egm84-15.pgm').toStr: GeoidKarney('egm84-15.pgm'): lowerleft(-90.0, -180.0, -29.712), upperright(90.0, 180.0, 13.098), center(0.0, 0.0, 18.33), highest(-4.5, 148.75, 81.33), lowest(4.75, 79.25, -107.34)\n\n    test 1629 closed: True\n    test 1630 copy(<class 'type'>): (<class 'pygeodesy.geoids.GeoidKarney'>, True)\n    test 1631 GeoidKarney.copy(): (<class 'pygeodesy.geoids.GeoidKarney'>, True)\n    test 1632 GeoidKarney('egm84-15.pgm').height(-76.981, 34.17) kind 3: 11.729\n    test 1633 GeoidKarney('egm84-15.pgm').height(79.695, 88.806) kind 3: 0.271  FAILED, KNOWN, expected 0.270\n    test 1634 GeoidKarney('egm84-15.pgm').height(-15.245, 168.748) kind 3: 67.074\n    test 1635 GeoidKarney('egm84-15.pgm').height(-19.379, 15.855) kind 3: 25.345  FAILED, KNOWN, expected 25.344\n    test 1636 GeoidKarney('egm84-15.pgm').height(43.378, -130.552) kind 3: -28.919\n    test 1637 GeoidKarney('egm84-15.pgm').height(-16.075, 21.795) kind 3: 14.386\n    test 1638 GeoidKarney('egm84-15.pgm').height(-11.256, -73.75) kind 3: 30.699  FAILED, KNOWN, expected 30.700\n    test 1639 GeoidKarney('egm84-15.pgm').height(69.017, -15.921) kind 3: 62.226  FAILED, KNOWN, expected 62.225\n    test 1640 GeoidKarney('egm84-15.pgm').height(2.221, 139.739) kind 3: 70.222\n    test 1641 GeoidKarney('egm84-15.pgm').height(-9.097, 119.142) kind 3: 34.334  FAILED, KNOWN, expected 34.336\n    test 1642 GeoidKarney('egm84-15.pgm').height(-28.524, -22.192) kind 3: 8.206\n    test 1643 GeoidKarney('egm84-15.pgm').height(12.272, -136.424) kind 3: -20.073  FAILED, KNOWN, expected -20.074\n    test 1644 GeoidKarney('egm84-15.pgm').height(-15.203, -85.604) kind 3: -3.129\n    test 1645 GeoidKarney('egm84-15.pgm').height(-63.736, -77.17) kind 3: -3.216  FAILED, KNOWN, expected -3.217\n    test 1646 GeoidKarney('egm84-15.pgm').height(-48.771, -90.102) kind 3: -1.532  FAILED, KNOWN, expected -1.531\n    test 1647 GeoidKarney('egm84-15.pgm').height(-0.179, -126.368) kind 3: -16.741  FAILED, KNOWN, expected -16.742\n    test 1648 GeoidKarney('egm84-15.pgm').height(1.586, -128.887) kind 3: -15.413  FAILED, KNOWN, expected -15.412\n    test 1649 GeoidKarney('egm84-15.pgm').height(-48.781, -2.684) kind 3: 25.079  FAILED, KNOWN, expected 25.078\n    test 1650 GeoidKarney('egm84-15.pgm').height(-49.092, 136.862) kind 3: -18.120\n    test 1651 GeoidKarney('egm84-15.pgm').height(47.732, 17.552) kind 3: 46.225  FAILED, KNOWN, expected 46.224\n    test 1652 GeoidKarney('egm84-15.pgm').height(-49.11, 85.706) kind 3: 18.649\n    test 1653 GeoidKarney('egm84-15.pgm').height(-49.162, 40.321) kind 3: 44.763  FAILED, KNOWN, expected 44.764\n    test 1654 GeoidKarney('egm84-15.pgm').height(3.498, 158.118) kind 3: 51.090  FAILED, KNOWN, expected 51.089\n    test 1655 GeoidKarney('egm84-15.pgm').height(-35.616, 122.648) kind 3: -34.470  FAILED, KNOWN, expected -34.471\n    test 1656 GeoidKarney('egm84-15.pgm').height(56.598, -96.114) kind 3: -39.125  FAILED, KNOWN, expected -39.124\n    test 1657 GeoidKarney('egm84-15.pgm').height(-31.85, 149.121) kind 3: 28.142\n    test 1658 GeoidKarney('egm84-15.pgm').height(-26.569, -177.792) kind 3: 49.620  FAILED, KNOWN, expected 49.619\n    test 1659 GeoidKarney('egm84-15.pgm').height(76.735, -65.753) kind 3: 22.576  FAILED, KNOWN, expected 22.575\n    test 1660 GeoidKarney('egm84-15.pgm').height(-21.404, -122.268) kind 3: -6.893\n    test 1661 GeoidKarney('egm84-15.pgm').height(-77.133, -65.474) kind 3: -15.013  FAILED, KNOWN, expected -15.012\n    test 1662 GeoidKarney('egm84-15.pgm').height(-58.812, 2.276) kind 3: 18.777  FAILED, KNOWN, expected 18.776\n    test 1663 GeoidKarney('egm84-15.pgm').height(4.415, 155.683) kind 3: 53.645\n    test 1664 GeoidKarney('egm84-15.pgm').height(-28.146, 107.081) kind 3: -39.073  FAILED, KNOWN, expected -39.074\n    test 1665 GeoidKarney('egm84-15.pgm').height(-10.551, -126.69) kind 3: -9.645\n    test 1666 GeoidKarney('egm84-15.pgm').height(-25.444, -103.337) kind 3: -2.527  FAILED, KNOWN, expected -2.528\n    test 1667 GeoidKarney('egm84-15.pgm').height(24.436, 46.159) kind 3: -6.907\n    test 1668 GeoidKarney('egm84-15.pgm').height(-72.889, 37.107) kind 3: 21.715  FAILED, KNOWN, expected 21.711\n    test 1669 GeoidKarney('egm84-15.pgm').height(-19.629, 13.245) kind 3: 25.612  FAILED, KNOWN, expected 25.611\n    test 1670 GeoidKarney('egm84-15.pgm').height(-7.602, 171.265) kind 3: 41.570  FAILED, KNOWN, expected 41.569\n    test 1671 GeoidKarney('egm84-15.pgm').height(-45.364, -1.876) kind 3: 23.280\n    test 1672 GeoidKarney('egm84-15.pgm').height(-7.292, -69.18) kind 3: 24.502\n    test 1673 GeoidKarney('egm84-15.pgm').height(-31.566, -166.689) kind 3: 14.825  FAILED, KNOWN, expected 14.826\n    test 1674 GeoidKarney('egm84-15.pgm').height(-82.751, -162.085) kind 3: -45.104\n    test 1675 GeoidKarney('egm84-15.pgm').height(-40.7, 99.466) kind 3: -17.252\n    test 1676 GeoidKarney('egm84-15.pgm').height(48.676, 39.69) kind 3: 12.972\n    test 1677 GeoidKarney('egm84-15.pgm').height(74.817, -78.404) kind 3: 4.777  FAILED, KNOWN, expected 4.776\n    test 1678 GeoidKarney('egm84-15.pgm').height(-81.032, -63.865) kind 3: -23.578  FAILED, KNOWN, expected -23.577\n    test 1679 GeoidKarney('egm84-15.pgm').height(74.022, 9.432) kind 3: 43.886  FAILED, KNOWN, expected 43.885\n    test 1680 GeoidKarney('egm84-15.pgm').height(-75.071, 17.579) kind 3: 17.071  FAILED, KNOWN, expected 17.072\n    test 1681 GeoidKarney('egm84-15.pgm').height(-12.546, -54.851) kind 3: -6.643\n    test 1682 GeoidKarney('egm84-15.pgm').height(-13.621, 42.408) kind 3: -23.326  FAILED, KNOWN, expected -23.325\n    test 1683 GeoidKarney('egm84-15.pgm').height(-2.266, -91.951) kind 3: -10.699  FAILED, KNOWN, expected -10.698\n    test 1684 GeoidKarney('egm84-15.pgm').height(-18.672, 42.547) kind 3: -10.268  FAILED, KNOWN, expected -10.265\n    test 1685 GeoidKarney('egm84-15.pgm').height(-41.44, 157.413) kind 3: 0.690  FAILED, KNOWN, expected 0.689\n    test 1686 GeoidKarney('egm84-15.pgm').height(53.686, -79.375) kind 3: -43.759  FAILED, KNOWN, expected -43.758\n    test 1687 GeoidKarney('egm84-15.pgm').height(39.26, -30.351) kind 3: 57.553  FAILED, KNOWN, expected 57.554\n    test 1688 GeoidKarney('egm84-15.pgm').height(-51.699, -141.493) kind 3: -16.937  FAILED, KNOWN, expected -16.936\n    test 1689 GeoidKarney('egm84-15.pgm').height(36.585, 4.515) kind 3: 45.291  FAILED, KNOWN, expected 45.295\n    test 1690 GeoidKarney('egm84-15.pgm').height(39.642, -54.659) kind 3: -13.585  FAILED, KNOWN, expected -13.586\n    test 1691 GeoidKarney('egm84-15.pgm').height(59.761, 166.567) kind 3: 11.467  FAILED, KNOWN, expected 11.468\n    test 1692 GeoidKarney('egm84-15.pgm').height(51.83, 13.357) kind 3: 42.092\n    test 1693 GeoidKarney('egm84-15.pgm').height(-36.531, -175.431) kind 3: 22.830\n    test 1694 GeoidKarney('egm84-15.pgm').height(-37.08, 125.264) kind 3: -32.302\n    test 1695 GeoidKarney('egm84-15.pgm').height(-68.651, 92.732) kind 3: 9.228\n    test 1696 GeoidKarney('egm84-15.pgm').height(35.087, 45.336) kind 3: 5.966  FAILED, KNOWN, expected 5.965\n    test 1697 GeoidKarney('egm84-15.pgm').height(-61.356, -169.379) kind 3: -45.012  FAILED, KNOWN, expected -45.013\n    test 1698 GeoidKarney('egm84-15.pgm').height(-36.955, 179.12) kind 3: 21.118\n    test 1699 GeoidKarney('egm84-15.pgm').height(10.248, -6.714) kind 3: 30.497\n    test 1700 GeoidKarney('egm84-15.pgm').height(36.868, 84.602) kind 3: -40.397  FAILED, KNOWN, expected -40.396\n    test 1701 GeoidKarney('egm84-15.pgm').height(28.637, 88.933) kind 3: -31.701  FAILED, KNOWN, expected -31.704\n    test 1702 GeoidKarney('egm84-15.pgm').height(54.811, -99.968) kind 3: -32.276  FAILED, KNOWN, expected -32.277\n    test 1703 GeoidKarney('egm84-15.pgm').height(7.611, 145.911) kind 3: 61.024\n    test 1704 GeoidKarney('egm84-15.pgm').height(59.412, 170.102) kind 3: 4.996  FAILED, KNOWN, expected 4.994\n    test 1705 GeoidKarney('egm84-15.pgm').height(-61.469, 126.144) kind 3: -30.238  FAILED, KNOWN, expected -30.237\n    test 1706 GeoidKarney('egm84-15.pgm').height(18.514, -137.083) kind 3: -26.006\n    test 1707 GeoidKarney('egm84-15.pgm').height(7.854, -126.799) kind 3: -29.283\n    test 1708 GeoidKarney('egm84-15.pgm').height(47.489, 134.183) kind 3: 22.393  FAILED, KNOWN, expected 22.394\n    test 1709 GeoidKarney('egm84-15.pgm').height(-34.144, -11.922) kind 3: 17.550\n    test 1710 GeoidKarney('egm84-15.pgm').height(-58.389, 117.458) kind 3: -20.623  FAILED, KNOWN, expected -20.622\n    test 1711 GeoidKarney('egm84-15.pgm').height(9.773, 95.846) kind 3: -41.482  FAILED, KNOWN, expected -41.484\n    test 1712 GeoidKarney('egm84-15.pgm').height(-53.12, 136.994) kind 3: -20.968\n    test 1713 GeoidKarney('egm84-15.pgm').height(-50.35, 0.075) kind 3: 25.567  FAILED, KNOWN, expected 25.568\n    test 1714 GeoidKarney('egm84-15.pgm').height(31.438, -170.879) kind 3: -8.581\n    test 1715 GeoidKarney('egm84-15.pgm').height(37.541, -153.024) kind 3: -18.330  FAILED, KNOWN, expected -18.329\n    test 1716 GeoidKarney('egm84-15.pgm').height(27.586, 2.444) kind 3: 25.000  FAILED, KNOWN, expected 25.001\n    test 1717 GeoidKarney('egm84-15.pgm').height(-26.139, -106.201) kind 3: -2.941  FAILED, KNOWN, expected -2.940\n    test 1718 GeoidKarney('egm84-15.pgm').height(-33.426, -14.84) kind 3: 18.229  FAILED, KNOWN, expected 18.228\n    test 1719 GeoidKarney('egm84-15.pgm').height(39.586, -153.019) kind 3: -16.507\n    test 1720 GeoidKarney('egm84-15.pgm').height(-60.79, -2.578) kind 3: 14.275\n    test 1721 GeoidKarney('egm84-15.pgm').height(-20.131, 21.975) kind 3: 16.853  FAILED, KNOWN, expected 16.852\n    test 1722 GeoidKarney('egm84-15.pgm').height(75.649, 99.921) kind 3: -6.872\n    test 1723 GeoidKarney('egm84-15.pgm').height(-0.385, -23.788) kind 3: 9.005  FAILED, KNOWN, expected 9.006\n    test 1724 GeoidKarney('egm84-15.pgm').height(-51.56, -50.327) kind 3: 6.294  FAILED, KNOWN, expected 6.296\n    test 1725 GeoidKarney('egm84-15.pgm').height(-43.129, -167.271) kind 3: -1.482  FAILED, KNOWN, expected -1.481\n    test 1726 GeoidKarney('egm84-15.pgm').height(46.374, 71.948) kind 3: -40.916  FAILED, KNOWN, expected -40.915\n    test 1727 GeoidKarney('egm84-15.pgm').height(-22.783, 140.657) kind 3: 37.495\n    test 1728 GeoidKarney('egm84-15.pgm').height(-12.056, 122.804) kind 3: 32.255  FAILED, KNOWN, expected 32.258\n    test 1729 GeoidKarney('egm84-15.pgm').height(30.127, 94.738) kind 3: -41.528  FAILED, KNOWN, expected -41.529\n    test 1730 GeoidKarney('egm84-15.pgm').height(46.296, -174.479) kind 3: -1.376  FAILED, KNOWN, expected -1.377\n    test 1731 GeoidKarney('egm84-15.pgm').height(34.99, 15.052) kind 3: 35.279  FAILED, KNOWN, expected 35.280\n    test 1732 GeoidKarney('egm84-15.pgm').height(-51.287, 90.565) kind 3: 12.958\n    test 1733 GeoidKarney('egm84-15.pgm').height(34.217, 141.302) kind 3: 18.313  FAILED, KNOWN, expected 18.307\n    test 1734 GeoidKarney('egm84-15.pgm').height(-40.423, -142.787) kind 3: -10.400\n    test 1735 GeoidKarney('egm84-15.pgm').height(-17.854, -170.216) kind 3: 28.640  FAILED, KNOWN, expected 28.638\n    test 1736 GeoidKarney('egm84-15.pgm').height(47.803, 112.701) kind 3: -24.059\n    test 1737 GeoidKarney('egm84-15.pgm').height(-23.276, 133.454) kind 3: 18.806\n    test 1738 GeoidKarney('egm84-15.pgm').height(-26.884, -36.571) kind 3: -6.819  FAILED, KNOWN, expected -6.820\n    test 1739 GeoidKarney('egm84-15.pgm').height(-37.106, 31.128) kind 3: 31.486\n    test 1740 GeoidKarney('egm84-15.pgm').height(-75.363, -173.674) kind 3: -62.024\n    test 1741 GeoidKarney('egm84-15.pgm').height(-18.305, 69.016) kind 3: -24.247  FAILED, KNOWN, expected -24.248\n    test 1742 GeoidKarney('egm84-15.pgm').height(39.527, 23.58) kind 3: 43.255\n    test 1743 GeoidKarney('egm84-15.pgm').height(68.903, 30.97) kind 3: 18.499  FAILED, KNOWN, expected 18.498\n    test 1744 GeoidKarney('egm84-15.pgm').height(53.937, 168.318) kind 3: 4.069  FAILED, KNOWN, expected 4.067\n    test 1745 GeoidKarney('egm84-15.pgm').height(-38.6, 64.812) kind 3: 25.455  FAILED, KNOWN, expected 25.454\n    test 1746 GeoidKarney('egm84-15.pgm').height(-41.396, -69.739) kind 3: 26.655  FAILED, KNOWN, expected 26.657\n    test 1747 GeoidKarney('egm84-15.pgm').height(50.158, 72.319) kind 3: -31.967  FAILED, KNOWN, expected -31.966\n    test 1748 GeoidKarney('egm84-15.pgm').height(27.692, 176.153) kind 3: -4.416  FAILED, KNOWN, expected -4.415\n    test 1749 GeoidKarney('egm84-15.pgm').height(-48.419, 170.454) kind 3: -6.741\n    test 1750 GeoidKarney('egm84-15.pgm').height(-65.346, -124.976) kind 3: -34.902  FAILED, KNOWN, expected -34.900\n    test 1751 GeoidKarney('egm84-15.pgm').height(-51.873, 167.266) kind 3: -14.223\n    test 1752 GeoidKarney('egm84-15.pgm').height(-7.263, 84.308) kind 3: -79.317\n    test 1753 GeoidKarney('egm84-15.pgm').height(-1.461, -105.458) kind 3: -16.162  FAILED, KNOWN, expected -16.163\n    test 1754 GeoidKarney('egm84-15.pgm').height(7.684, 161.873) kind 3: 36.288  FAILED, KNOWN, expected 36.287\n    test 1755 GeoidKarney('egm84-15.pgm').height(-31.475, -158.52) kind 3: 4.067  FAILED, KNOWN, expected 4.068\n    test 1756 GeoidKarney('egm84-15.pgm').height(-36.187, 62.917) kind 3: 24.406  FAILED, KNOWN, expected 24.407\n    test 1757 GeoidKarney('egm84-15.pgm').height(16.003, 141.687) kind 3: 53.053  FAILED, KNOWN, expected 53.054\n    test 1758 GeoidKarney('egm84-15.pgm').height(30.182, 86.261) kind 3: -30.621  FAILED, KNOWN, expected -30.622\n    test 1759 GeoidKarney('egm84-15.pgm').height(-77.304, 159.498) kind 3: -53.540\n    test 1760 GeoidKarney('egm84-15.pgm').height(39.536, 139.795) kind 3: 36.262\n    test 1761 GeoidKarney('egm84-15.pgm').height(8.569, 134.618) kind 3: 64.367  FAILED, KNOWN, expected 64.369\n    test 1762 GeoidKarney('egm84-15.pgm').height(14.473, 90.596) kind 3: -61.301  FAILED, KNOWN, expected -61.300\n    test 1763 GeoidKarney('egm84-15.pgm').height(-13.138, -99.589) kind 3: -8.000  FAILED, KNOWN, expected -7.999\n    test 1764 GeoidKarney('egm84-15.pgm').height(34.212, -26.307) kind 3: 41.479  FAILED, KNOWN, expected 41.477\n    test 1765 GeoidKarney('egm84-15.pgm').height(21.89, 76.371) kind 3: -59.875  FAILED, KNOWN, expected -59.876\n    test 1766 GeoidKarney('egm84-15.pgm').height(29.793, 120.487) kind 3: 8.404\n    test 1767 GeoidKarney('egm84-15.pgm').height(15.724, 122.714) kind 3: 39.154  FAILED, KNOWN, expected 39.152\n    test 1768 GeoidKarney('egm84-15.pgm').height(-66.208, -78.499) kind 3: -7.076\n    test 1769 GeoidKarney('egm84-15.pgm').height(-39.507, 55.809) kind 3: 33.179  FAILED, KNOWN, expected 33.178\n    test 1770 GeoidKarney('egm84-15.pgm').height(28.159, 51.476) kind 3: -23.832\n    test 1771 GeoidKarney('egm84-15.pgm').height(-36.207, 120.205) kind 3: -38.206\n    test 1772 GeoidKarney('egm84-15.pgm').height(30.575, -99.998) kind 3: -22.144  FAILED, KNOWN, expected -22.142\n    test 1773 GeoidKarney('egm84-15.pgm').height(-16.993, 37.136) kind 3: -13.763  FAILED, KNOWN, expected -13.765\n    test 1774 GeoidKarney('egm84-15.pgm').height(-11.477, 12.039) kind 3: 16.899  FAILED, KNOWN, expected 16.898\n    test 1775 GeoidKarney('egm84-15.pgm').height(30.428, -144.765) kind 3: -22.475  FAILED, KNOWN, expected -22.474\n    test 1776 GeoidKarney('egm84-15.pgm').height(-17.44, -92.424) kind 3: -4.717  FAILED, KNOWN, expected -4.718\n    test 1777 GeoidKarney('egm84-15.pgm').height(40.203, 143.43) kind 3: 16.635\n    test 1778 GeoidKarney('egm84-15.pgm').height(-37.098, -106.574) kind 3: -9.011  FAILED, KNOWN, expected -9.012\n    test 1779 GeoidKarney('egm84-15.pgm').height(54.62, -68.413) kind 3: -23.544  FAILED, KNOWN, expected -23.543\n    test 1780 GeoidKarney('egm84-15.pgm').height(-31.633, 148.182) kind 3: 26.236\n    test 1781 GeoidKarney('egm84-15.pgm').height(-56.07, -141.407) kind 3: -21.955  FAILED, KNOWN, expected -21.953\n    test 1782 GeoidKarney('egm84-15.pgm').height(-8.195, -52.691) kind 3: -17.959\n    test 1783 GeoidKarney('egm84-15.pgm').height(17.851, 24.749) kind 3: 9.078\n    test 1784 GeoidKarney('egm84-15.pgm').height(0.349, -108.333) kind 3: -19.157  FAILED, KNOWN, expected -19.158\n    test 1785 GeoidKarney('egm84-15.pgm').height(15.038, 126.191) kind 3: 46.776\n    test 1786 GeoidKarney('egm84-15.pgm').height(-21.111, -123.696) kind 3: -8.055\n    test 1787 GeoidKarney('egm84-15.pgm').height(30.947, 173.002) kind 3: -7.695  FAILED, KNOWN, expected -7.696\n    test 1788 GeoidKarney('egm84-15.pgm').height(-10.698, -144.091) kind 3: -1.048  FAILED, KNOWN, expected -1.049\n    test 1789 GeoidKarney('egm84-15.pgm').height(-29.412, 124.753) kind 3: -16.082  FAILED, KNOWN, expected -16.081\n    test 1790 GeoidKarney('egm84-15.pgm').height(38.224, -137.189) kind 3: -35.426  FAILED, KNOWN, expected -35.427\n    test 1791 GeoidKarney('egm84-15.pgm').height(36.064, -132.409) kind 3: -38.648\n    test 1792 GeoidKarney('egm84-15.pgm').height(29.975, 178.076) kind 3: -5.519\n    test 1793 GeoidKarney('egm84-15.pgm').height(-21.346, 169.26) kind 3: 53.430  FAILED, KNOWN, expected 53.431\n    test 1794 GeoidKarney('egm84-15.pgm').height(49.282, -152.934) kind 3: 1.978  FAILED, KNOWN, expected 1.979\n    test 1795 GeoidKarney('egm84-15.pgm').height(16.349, -99.962) kind 3: -13.194  FAILED, KNOWN, expected -13.197\n    test 1796 GeoidKarney('egm84-15.pgm').height(-14.293, -167.34) kind 3: 18.945\n    test 1797 GeoidKarney('egm84-15.pgm').height(47.166, -38.523) kind 3: 45.185  FAILED, KNOWN, expected 45.187\n    test 1798 GeoidKarney('egm84-15.pgm').height(-58.911, 114.347) kind 3: -17.146  FAILED, KNOWN, expected -17.145\n    test 1799 GeoidKarney('egm84-15.pgm').height(-9.055, 111.294) kind 3: 13.145  FAILED, KNOWN, expected 13.146\n    test 1800 GeoidKarney('egm84-15.pgm').height(18.391, 29.692) kind 3: 4.932  FAILED, KNOWN, expected 4.933\n    test 1801 GeoidKarney('egm84-15.pgm').height(-15.074, 22.153) kind 3: 12.327  FAILED, KNOWN, expected 12.326\n    test 1802 GeoidKarney('egm84-15.pgm').height(-4.235, 62.001) kind 3: -60.029  FAILED, KNOWN, expected -60.030\n    test 1803 GeoidKarney('egm84-15.pgm').height(15.171, -86.583) kind 3: 3.107  FAILED, KNOWN, expected 3.110\n    test 1804 GeoidKarney('egm84-15.pgm').height(79.254, 112.116) kind 3: -2.741\n    test 1805 GeoidKarney('egm84-15.pgm').height(15.947, 156.093) kind 3: 32.086  FAILED, KNOWN, expected 32.085\n    test 1806 GeoidKarney('egm84-15.pgm').height(68.371, -177.382) kind 3: 2.060\n    test 1807 GeoidKarney('egm84-15.pgm').height(-41.931, -72.093) kind 3: 22.916\n    test 1808 GeoidKarney('egm84-15.pgm').height(-1.193, -143.133) kind 3: 5.519\n    test 1809 GeoidKarney('egm84-15.pgm').height(-37.006, 154.513) kind 3: 11.021  FAILED, KNOWN, expected 11.020\n    test 1810 GeoidKarney('egm84-15.pgm').height(-22.148, 9.938) kind 3: 22.171\n    test 1811 GeoidKarney('egm84-15.pgm').height(24.329, 109.044) kind 3: -22.945  FAILED, KNOWN, expected -22.944\n    test 1812 GeoidKarney('egm84-15.pgm').height(-54.878, 114.691) kind 3: -17.579  FAILED, KNOWN, expected -17.580\n    test 1813 GeoidKarney('egm84-15.pgm').height(45.601, -80.458) kind 3: -35.737  FAILED, KNOWN, expected -35.738\n    test 1814 GeoidKarney('egm84-15.pgm').height(2.372, 58.974) kind 3: -61.040\n    test 1815 GeoidKarney('egm84-15.pgm').height(15.937, 165.854) kind 3: 20.906  FAILED, KNOWN, expected 20.907\n    test 1816 GeoidKarney('egm84-15.pgm').height(4.889, -24.213) kind 3: 13.874\n    test 1817 GeoidKarney('egm84-15.pgm').height(-11.392, 179.558) kind 3: 40.928  FAILED, KNOWN, expected 40.929\n    test 1818 GeoidKarney('egm84-15.pgm').height(58.246, 4.862) kind 3: 43.191\n    test 1819 GeoidKarney('egm84-15.pgm').height(34.302, -109.109) kind 3: -22.006\n    test 1820 GeoidKarney('egm84-15.pgm').height(-58.196, 117.306) kind 3: -20.375\n    test 1821 GeoidKarney('egm84-15.pgm').height(44.5, 173.769) kind 3: -7.851  FAILED, KNOWN, expected -7.852\n    test 1822 GeoidKarney('egm84-15.pgm').height(-28.863, -139.775) kind 3: -8.675  FAILED, KNOWN, expected -8.674\n    test 1823 GeoidKarney('egm84-15.pgm').height(19.507, -96.099) kind 3: -14.116  FAILED, KNOWN, expected -14.117\n    test 1824 GeoidKarney('egm84-15.pgm').height(-42.488, -73.907) kind 3: 17.252  FAILED, KNOWN, expected 17.251\n    test 1825 GeoidKarney('egm84-15.pgm').height(46.138, -141.429) kind 3: -19.435  FAILED, KNOWN, expected -19.436\n    test 1826 GeoidKarney('egm84-15.pgm').height(60.507, 93.743) kind 3: -31.331  FAILED, KNOWN, expected -31.330\n    test 1827 GeoidKarney('egm84-15.pgm').height(26.219, -145.434) kind 3: -17.091  FAILED, KNOWN, expected -17.090\n    test 1828 GeoidKarney('egm84-15.pgm').height(-28.687, 3.37) kind 3: 24.184\n    test 1829 GeoidKarney('egm84-15.pgm').height(-15.008, 117.45) kind 3: 6.142\n    test 1830 GeoidKarney('egm84-15.pgm').height(40.71, 144.095) kind 3: 11.693\n    test 1831 GeoidKarney('egm84-15.pgm').height(20.823, -173.611) kind 3: 6.839  FAILED, KNOWN, expected 6.840\n    test 1832 GeoidKarney('egm84-15.pgm').height(16.776, -3.009) kind 3: 31.298\n    test 1833 GeoidKarney('egm84-15.pgm').height(41.0, -95.0) kind 3: -31.952\n    test 1834 GeoidKarney('egm84-15.pgm').height(49.0, -120.5) kind 3: -14.946\n    test 1835 GeoidKarney('egm84-15.pgm').height(49.0, -103.5) kind 3: -17.032\n    test 1836 GeoidKarney('egm84-15.pgm').height(49.0, -86.5) kind 3: -37.962\n    test 1837 GeoidKarney('egm84-15.pgm').height(49.0, -69.5) kind 3: -26.492\n    test 1838 GeoidKarney('egm84-15.pgm').height(33.0, -120.5) kind 3: -39.543\n    test 1839 GeoidKarney('egm84-15.pgm').height(33.0, -103.5) kind 3: -22.556\n    test 1840 GeoidKarney('egm84-15.pgm').height(33.0, -86.5) kind 3: -28.710\n    test 1841 GeoidKarney('egm84-15.pgm').height(33.0, -69.5) kind 3: -46.590\n\n    test 1842 GeoidKarney('egm84-15.pgm').height() kind 3, hits 0, eps max (in 0 FAILED): 0.005459\n    test 1843 GeoidKarney('egm84-15.pgm').height() kind 3, hits 0, eps mean (of 210 total): 0.000736\n    test 1844 GeoidKarney('egm84-15.pgm').height() kind 3, hits 0, eps stdev (of 210 total): 0.000728\n    test 1845 GeoidKarney('egm84-15.pgm').highest(): -4.5, 148.75, 81.33\n    test 1846 GeoidKarney('egm84-15.pgm').lowerleft(): -90.0, -180.0, -29.712\n    test 1847 GeoidKarney('egm84-15.pgm').lowerright(): -90.0, 180.0, -29.712\n    test 1848 GeoidKarney('egm84-15.pgm').lowest(): 4.75, 79.25, -107.34\n    test 1849 GeoidKarney('egm84-15.pgm').upperleft(): 90.0, -180.0, 13.098\n    test 1850 GeoidKarney('egm84-15.pgm').upperright(): 90.0, 180.0, 13.098\n    test 1851 GeoidKarney('egm84-15.pgm').dtype: (\"'ushort'\",)\n    test 1852 GeoidKarney('egm84-15.pgm').knots: ('1038240',)\n    test 1853 GeoidKarney('egm84-15.pgm').mean: ('-1.317',)\n    test 1854 GeoidKarney('egm84-15.pgm').nBytes: ('None',)\n    test 1855 GeoidKarney('egm84-15.pgm').smooth: ('None',)\n    test 1856 GeoidKarney('egm84-15.pgm').stdev: ('29.244',)\n    test 1857 GeoidKarney('egm84-15.pgm')._g2ll2(180, 360): (180, 0.0)\n    test 1858 GeoidKarney('egm84-15.pgm')._ll2g2(180, 360): (180, 360)\n    test 1859 GeoidKarney('egm84-15.pgm')._swne: (-10.0, -100.0, 10.0, 100.0)\n    test 1860 GeoidKarney('egm84-15.pgm')._swne: (-10.0, -100.0, 10.0, 100.0)\n    test 1861 GeoidKarney('egm84-15.pgm').toStr: GeoidKarney('egm84-15.pgm'): lowerleft(-90.0, -180.0, -29.712), upperright(90.0, 180.0, 13.098), center(0.0, 0.0, 18.33), highest(-4.5, 148.75, 81.33), lowest(4.75, 79.25, -107.34)\n\n    test 1862 closed: True\n    test 1863 copy(<class 'type'>): (<class 'pygeodesy.geoids.GeoidKarney'>, True)\n    test 1864 GeoidKarney.copy(): (<class 'pygeodesy.geoids.GeoidKarney'>, True)\n    test 1865 GeoidPGM('egm84-15.pgm').height(-76.981, 34.17) kind 3: lli ('-76.981466, 34.17016'), H (False) or wrap (False): lli ('-76.981466, 34.17016'): outside on SE  FAILED, KNOWN, expected 11.729\n    test 1866 GeoidPGM('egm84-15.pgm').height(79.695, 88.806) kind 3: lli ('79.695484, 88.805571'), H (False) or wrap (False): lli ('79.695484, 88.805571'): outside on NE  FAILED, KNOWN, expected 0.270\n    test 1867 GeoidPGM('egm84-15.pgm').height(-15.245, 168.748) kind 3: lli ('-15.244804, 168.747961'), H (False) or wrap (False): lli ('-15.244804, 168.747961'): outside on SE  FAILED, KNOWN, expected 67.074\n    test 1868 GeoidPGM('egm84-15.pgm').height(-19.379, 15.855) kind 3: lli ('-19.379357, 15.85511'), H (False) or wrap (False): lli ('-19.379357, 15.85511'): outside on SE  FAILED, KNOWN, expected 25.344\n    test 1869 GeoidPGM('egm84-15.pgm').height(43.378, -130.552) kind 3: lli ('43.377784, -130.551582'), H (False) or wrap (False): lli ('43.377784, -130.551582'): outside on W  FAILED, KNOWN, expected -28.919\n    test 1870 GeoidPGM('egm84-15.pgm').height(-16.075, 21.795) kind 3: lli ('-16.074554, 21.79547'), H (False) or wrap (False): lli ('-16.074554, 21.79547'): outside on SE  FAILED, KNOWN, expected 14.386\n    test 1871 GeoidPGM('egm84-15.pgm').height(-11.256, -73.75) kind 3: lli ('-11.256389, -73.750255'), H (False) or wrap (False): lli ('-11.256389, -73.750255'): outside on S  FAILED, KNOWN, expected 30.700\n    test 1872 GeoidPGM('egm84-15.pgm').height(69.017, -15.921) kind 3: lli ('69.016564, -15.921115'), H (False) or wrap (False): lli ('69.016564, -15.921115'): outside on NE  FAILED, KNOWN, expected 62.225\n    test 1873 GeoidPGM('egm84-15.pgm').height(2.221, 139.739) kind 3: lli ('2.221008, 139.73935'), H (False) or wrap (False): lli ('2.221008, 139.73935'): outside on SE  FAILED, KNOWN, expected 70.222\n    test 1874 GeoidPGM('egm84-15.pgm').height(-9.097, 119.142) kind 3: lli ('-9.096878, 119.141551'), H (False) or wrap (False): lli ('-9.096878, 119.141551'): outside on SE  FAILED, KNOWN, expected 34.336\n    test 1875 GeoidPGM('egm84-15.pgm').height(-28.524, -22.192) kind 3: lli ('-28.523717, -22.1925'), H (False) or wrap (False): lli ('-28.523717, -22.1925'): outside on SE  FAILED, KNOWN, expected 8.206\n    test 1876 GeoidPGM('egm84-15.pgm').height(12.272, -136.424) kind 3: lli ('12.27231, -136.424168'), H (False) or wrap (False): lli ('12.27231, -136.424168'): outside on SW  FAILED, KNOWN, expected -20.074\n    test 1877 GeoidPGM('egm84-15.pgm').height(-15.203, -85.604) kind 3: lli ('-15.20317, -85.603753'), H (False) or wrap (False): lli ('-15.20317, -85.603753'): outside on S  FAILED, KNOWN, expected -3.129\n    test 1878 GeoidPGM('egm84-15.pgm').height(-63.736, -77.17) kind 3: lli ('-63.735565, -77.169636'), H (False) or wrap (False): lli ('-63.735565, -77.169636'): outside on S  FAILED, KNOWN, expected -3.217\n    test 1879 GeoidPGM('egm84-15.pgm').height(-48.771, -90.102) kind 3: lli ('-48.770825, -90.102117'), H (False) or wrap (False): lli ('-48.770825, -90.102117'): outside on S  FAILED, KNOWN, expected -1.531\n    test 1880 GeoidPGM('egm84-15.pgm').height(-0.179, -126.368) kind 3: lli ('-0.178524, -126.368279'), H (False) or wrap (False): lli ('-0.178524, -126.368279'): outside on SW  FAILED, KNOWN, expected -16.742\n    test 1881 GeoidPGM('egm84-15.pgm').height(1.586, -128.887) kind 3: lli ('1.585536, -128.886967'), H (False) or wrap (False): lli ('1.585536, -128.886967'): outside on SW  FAILED, KNOWN, expected -15.412\n    test 1882 GeoidPGM('egm84-15.pgm').height(-48.781, -2.684) kind 3: lli ('-48.780705, -2.684224'), H (False) or wrap (False): lli ('-48.780705, -2.684224'): outside on SE  FAILED, KNOWN, expected 25.078\n    test 1883 GeoidPGM('egm84-15.pgm').height(-49.092, 136.862) kind 3: lli ('-49.091632, 136.862256'), H (False) or wrap (False): lli ('-49.091632, 136.862256'): outside on SE  FAILED, KNOWN, expected -18.120\n    test 1884 GeoidPGM('egm84-15.pgm').height(47.732, 17.552) kind 3: lli ('47.731727, 17.552416'), H (False) or wrap (False): lli ('47.731727, 17.552416'): outside on E  FAILED, KNOWN, expected 46.224\n    test 1885 GeoidPGM('egm84-15.pgm').height(-49.11, 85.706) kind 3: lli ('-49.109549, 85.706437'), H (False) or wrap (False): lli ('-49.109549, 85.706437'): outside on SE  FAILED, KNOWN, expected 18.649\n    test 1886 GeoidPGM('egm84-15.pgm').height(-49.162, 40.321) kind 3: lli ('-49.162281, 40.321209'), H (False) or wrap (False): lli ('-49.162281, 40.321209'): outside on SE  FAILED, KNOWN, expected 44.764\n    test 1887 GeoidPGM('egm84-15.pgm').height(3.498, 158.118) kind 3: lli ('3.498333, 158.117699'), H (False) or wrap (False): lli ('3.498333, 158.117699'): outside on SE  FAILED, KNOWN, expected 51.089\n    test 1888 GeoidPGM('egm84-15.pgm').height(-35.616, 122.648) kind 3: lli ('-35.616495, 122.648407'), H (False) or wrap (False): lli ('-35.616495, 122.648407'): outside on SE  FAILED, KNOWN, expected -34.471\n    test 1889 GeoidPGM('egm84-15.pgm').height(56.598, -96.114) kind 3: lli ('56.598256, -96.113696'), H (False) or wrap (False): lli ('56.598256, -96.113696'): outside on N  FAILED, KNOWN, expected -39.124\n    test 1890 GeoidPGM('egm84-15.pgm').height(-31.85, 149.121) kind 3: lli ('-31.850231, 149.120596'), H (False) or wrap (False): lli ('-31.850231, 149.120596'): outside on SE  FAILED, KNOWN, expected 28.142\n    test 1891 GeoidPGM('egm84-15.pgm').height(-26.569, -177.792) kind 3: lli ('-26.568996, -177.792196'), H (False) or wrap (False): lli ('-26.568996, -177.792196'): outside on SW  FAILED, KNOWN, expected 49.619\n    test 1892 GeoidPGM('egm84-15.pgm').height(76.735, -65.753) kind 3: lli ('76.734699, -65.752952'), H (False) or wrap (False): lli ('76.734699, -65.752952'): outside on N  FAILED, KNOWN, expected 22.575\n    test 1893 GeoidPGM('egm84-15.pgm').height(-21.404, -122.268) kind 3: lli ('-21.404166, -122.267869'), H (False) or wrap (False): lli ('-21.404166, -122.267869'): outside on S  FAILED, KNOWN, expected -6.893\n    test 1894 GeoidPGM('egm84-15.pgm').height(-77.133, -65.474) kind 3: lli ('-77.133426, -65.473819'), H (False) or wrap (False): lli ('-77.133426, -65.473819'): outside on S  FAILED, KNOWN, expected -15.012\n    test 1895 GeoidPGM('egm84-15.pgm').height(-58.812, 2.276) kind 3: lli ('-58.811779, 2.276142'), H (False) or wrap (False): lli ('-58.811779, 2.276142'): outside on SE  FAILED, KNOWN, expected 18.776\n    test 1896 GeoidPGM('egm84-15.pgm').height(4.415, 155.683) kind 3: lli ('4.415102, 155.683336'), H (False) or wrap (False): lli ('4.415102, 155.683336'): outside on SE  FAILED, KNOWN, expected 53.645\n    test 1897 GeoidPGM('egm84-15.pgm').height(-28.146, 107.081) kind 3: lli ('-28.145768, 107.081334'), H (False) or wrap (False): lli ('-28.145768, 107.081334'): outside on SE  FAILED, KNOWN, expected -39.074\n    test 1898 GeoidPGM('egm84-15.pgm').height(-10.551, -126.69) kind 3: lli ('-10.551267, -126.690468'), H (False) or wrap (False): lli ('-10.551267, -126.690468'): outside on SW  FAILED, KNOWN, expected -9.645\n    test 1899 GeoidPGM('egm84-15.pgm').height(-25.444, -103.337) kind 3: lli ('-25.444344, -103.337184'), H (False) or wrap (False): lli ('-25.444344, -103.337184'): outside on S  FAILED, KNOWN, expected -2.528\n    test 1900 GeoidPGM('egm84-15.pgm').height(24.436, 46.159) kind 3: lli ('24.435896, 46.158715'), H (False) or wrap (False): lli ('24.435896, 46.158715'): outside on SE  FAILED, KNOWN, expected -6.907\n    test 1901 GeoidPGM('egm84-15.pgm').height(-72.889, 37.107) kind 3: lli ('-72.888898, 37.106907'), H (False) or wrap (False): lli ('-72.888898, 37.106907'): outside on SE  FAILED, KNOWN, expected 21.711\n    test 1902 GeoidPGM('egm84-15.pgm').height(-19.629, 13.245) kind 3: lli ('-19.628762, 13.244525'), H (False) or wrap (False): lli ('-19.628762, 13.244525'): outside on SE  FAILED, KNOWN, expected 25.611\n    test 1903 GeoidPGM('egm84-15.pgm').height(-7.602, 171.265) kind 3: lli ('-7.602449, 171.264763'), H (False) or wrap (False): lli ('-7.602449, 171.264763'): outside on SE  FAILED, KNOWN, expected 41.569\n    test 1904 GeoidPGM('egm84-15.pgm').height(-45.364, -1.876) kind 3: lli ('-45.364396, -1.876412'), H (False) or wrap (False): lli ('-45.364396, -1.876412'): outside on SE  FAILED, KNOWN, expected 23.280\n    test 1905 GeoidPGM('egm84-15.pgm').height(-7.292, -69.18) kind 3: lli ('-7.292121, -69.179565'), H (False) or wrap (False): lli ('-7.292121, -69.179565'): outside on S  FAILED, KNOWN, expected 24.502\n    test 1906 GeoidPGM('egm84-15.pgm').height(-31.566, -166.689) kind 3: lli ('-31.566264, -166.688985'), H (False) or wrap (False): lli ('-31.566264, -166.688985'): outside on SW  FAILED, KNOWN, expected 14.826\n    test 1907 GeoidPGM('egm84-15.pgm').height(-82.751, -162.085) kind 3: lli ('-82.751144, -162.08523'), H (False) or wrap (False): lli ('-82.751144, -162.08523'): outside on SW  FAILED, KNOWN, expected -45.104\n    test 1908 GeoidPGM('egm84-15.pgm').height(-40.7, 99.466) kind 3: lli ('-40.699637, 99.465509'), H (False) or wrap (False): lli ('-40.699637, 99.465509'): outside on SE  FAILED, KNOWN, expected -17.252\n    test 1909 GeoidPGM('egm84-15.pgm').height(48.676, 39.69) kind 3: lli ('48.675771, 39.690012'), H (False) or wrap (False): lli ('48.675771, 39.690012'): outside on E  FAILED, KNOWN, expected 12.972\n    test 1910 GeoidPGM('egm84-15.pgm').height(74.817, -78.404) kind 3: lli ('74.817287, -78.404187'), H (False) or wrap (False): lli ('74.817287, -78.404187'): outside on N  FAILED, KNOWN, expected 4.776\n    test 1911 GeoidPGM('egm84-15.pgm').height(-81.032, -63.865) kind 3: lli ('-81.032306, -63.864898'), H (False) or wrap (False): lli ('-81.032306, -63.864898'): outside on SE  FAILED, KNOWN, expected -23.577\n    test 1912 GeoidPGM('egm84-15.pgm').height(74.022, 9.432) kind 3: lli ('74.021785, 9.431926'), H (False) or wrap (False): lli ('74.021785, 9.431926'): outside on NE  FAILED, KNOWN, expected 43.885\n    test 1913 GeoidPGM('egm84-15.pgm').height(-75.071, 17.579) kind 3: lli ('-75.070563, 17.57935'), H (False) or wrap (False): lli ('-75.070563, 17.57935'): outside on SE  FAILED, KNOWN, expected 17.072\n    test 1914 GeoidPGM('egm84-15.pgm').height(-12.546, -54.851) kind 3: lli ('-12.54612, -54.850614'), H (False) or wrap (False): lli ('-12.54612, -54.850614'): outside on SE  FAILED, KNOWN, expected -6.643\n    test 1915 GeoidPGM('egm84-15.pgm').height(-13.621, 42.408) kind 3: lli ('-13.621418, 42.407805'), H (False) or wrap (False): lli ('-13.621418, 42.407805'): outside on SE  FAILED, KNOWN, expected -23.325\n    test 1916 GeoidPGM('egm84-15.pgm').height(-2.266, -91.951) kind 3: lli ('-2.265774, -91.951437'), H (False) or wrap (False): lli ('-2.265774, -91.951437'): outside on S  FAILED, KNOWN, expected -10.698\n    test 1917 GeoidPGM('egm84-15.pgm').height(-18.672, 42.547) kind 3: lli ('-18.672316, 42.547125'), H (False) or wrap (False): lli ('-18.672316, 42.547125'): outside on SE  FAILED, KNOWN, expected -10.265\n    test 1918 GeoidPGM('egm84-15.pgm').height(-41.44, 157.413) kind 3: lli ('-41.439867, 157.413161'), H (False) or wrap (False): lli ('-41.439867, 157.413161'): outside on SE  FAILED, KNOWN, expected 0.689\n    test 1919 GeoidPGM('egm84-15.pgm').height(53.686, -79.375) kind 3: -43.759  FAILED, KNOWN, expected -43.758\n    test 1920 GeoidPGM('egm84-15.pgm').height(39.26, -30.351) kind 3: lli ('39.260397, -30.351359'), H (False) or wrap (False): lli ('39.260397, -30.351359'): outside on E  FAILED, KNOWN, expected 57.554\n    test 1921 GeoidPGM('egm84-15.pgm').height(-51.699, -141.493) kind 3: lli ('-51.699195, -141.493082'), H (False) or wrap (False): lli ('-51.699195, -141.493082'): outside on SW  FAILED, KNOWN, expected -16.936\n    test 1922 GeoidPGM('egm84-15.pgm').height(36.585, 4.515) kind 3: lli ('36.584861, 4.515157'), H (False) or wrap (False): lli ('36.584861, 4.515157'): outside on E  FAILED, KNOWN, expected 45.295\n    test 1923 GeoidPGM('egm84-15.pgm').height(39.642, -54.659) kind 3: lli ('39.641638, -54.658846'), H (False) or wrap (False): lli ('39.641638, -54.658846'): outside on E  FAILED, KNOWN, expected -13.586\n    test 1924 GeoidPGM('egm84-15.pgm').height(59.761, 166.567) kind 3: lli ('59.761024, 166.566646'), H (False) or wrap (False): lli ('59.761024, 166.566646'): outside on NE  FAILED, KNOWN, expected 11.468\n    test 1925 GeoidPGM('egm84-15.pgm').height(51.83, 13.357) kind 3: lli ('51.830001, 13.357464'), H (False) or wrap (False): lli ('51.830001, 13.357464'): outside on E  FAILED, KNOWN, expected 42.092\n    test 1926 GeoidPGM('egm84-15.pgm').height(-36.531, -175.431) kind 3: lli ('-36.530912, -175.430804'), H (False) or wrap (False): lli ('-36.530912, -175.430804'): outside on SW  FAILED, KNOWN, expected 22.830\n    test 1927 GeoidPGM('egm84-15.pgm').height(-37.08, 125.264) kind 3: lli ('-37.079518, 125.263901'), H (False) or wrap (False): lli ('-37.079518, 125.263901'): outside on SE  FAILED, KNOWN, expected -32.302\n    test 1928 GeoidPGM('egm84-15.pgm').height(-68.651, 92.732) kind 3: lli ('-68.650762, 92.731524'), H (False) or wrap (False): lli ('-68.650762, 92.731524'): outside on SE  FAILED, KNOWN, expected 9.228\n    test 1929 GeoidPGM('egm84-15.pgm').height(35.087, 45.336) kind 3: lli ('35.086645, 45.335611'), H (False) or wrap (False): lli ('35.086645, 45.335611'): outside on E  FAILED, KNOWN, expected 5.965\n    test 1930 GeoidPGM('egm84-15.pgm').height(-61.356, -169.379) kind 3: lli ('-61.355646, -169.378929'), H (False) or wrap (False): lli ('-61.355646, -169.378929'): outside on SW  FAILED, KNOWN, expected -45.013\n    test 1931 GeoidPGM('egm84-15.pgm').height(-36.955, 179.12) kind 3: lli ('-36.954967, 179.11982'), H (False) or wrap (False): lli ('-36.954967, 179.11982'): outside on SE  FAILED, KNOWN, expected 21.118\n    test 1932 GeoidPGM('egm84-15.pgm').height(10.248, -6.714) kind 3: lli ('10.248399, -6.713559'), H (False) or wrap (False): lli ('10.248399, -6.713559'): outside on SE  FAILED, KNOWN, expected 30.497\n    test 1933 GeoidPGM('egm84-15.pgm').height(36.868, 84.602) kind 3: lli ('36.868193, 84.602243'), H (False) or wrap (False): lli ('36.868193, 84.602243'): outside on E  FAILED, KNOWN, expected -40.396\n    test 1934 GeoidPGM('egm84-15.pgm').height(28.637, 88.933) kind 3: lli ('28.636703, 88.932955'), H (False) or wrap (False): lli ('28.636703, 88.932955'): outside on E  FAILED, KNOWN, expected -31.704\n    test 1935 GeoidPGM('egm84-15.pgm').height(54.811, -99.968) kind 3: -32.277\n    test 1936 GeoidPGM('egm84-15.pgm').height(7.611, 145.911) kind 3: lli ('7.610621, 145.911188'), H (False) or wrap (False): lli ('7.610621, 145.911188'): outside on SE  FAILED, KNOWN, expected 61.024\n    test 1937 GeoidPGM('egm84-15.pgm').height(59.412, 170.102) kind 3: lli ('59.411557, 170.102394'), H (False) or wrap (False): lli ('59.411557, 170.102394'): outside on NE  FAILED, KNOWN, expected 4.994\n    test 1938 GeoidPGM('egm84-15.pgm').height(-61.469, 126.144) kind 3: lli ('-61.468618, 126.144056'), H (False) or wrap (False): lli ('-61.468618, 126.144056'): outside on SE  FAILED, KNOWN, expected -30.237\n    test 1939 GeoidPGM('egm84-15.pgm').height(18.514, -137.083) kind 3: lli ('18.514019, -137.083301'), H (False) or wrap (False): lli ('18.514019, -137.083301'): outside on SW  FAILED, KNOWN, expected -26.006\n    test 1940 GeoidPGM('egm84-15.pgm').height(7.854, -126.799) kind 3: lli ('7.854318, -126.799148'), H (False) or wrap (False): lli ('7.854318, -126.799148'): outside on SW  FAILED, KNOWN, expected -29.283\n    test 1941 GeoidPGM('egm84-15.pgm').height(47.489, 134.183) kind 3: lli ('47.489222, 134.182527'), H (False) or wrap (False): lli ('47.489222, 134.182527'): outside on E  FAILED, KNOWN, expected 22.394\n    test 1942 GeoidPGM('egm84-15.pgm').height(-34.144, -11.922) kind 3: lli ('-34.143602, -11.921567'), H (False) or wrap (False): lli ('-34.143602, -11.921567'): outside on SE  FAILED, KNOWN, expected 17.550\n    test 1943 GeoidPGM('egm84-15.pgm').height(-58.389, 117.458) kind 3: lli ('-58.388787, 117.457755'), H (False) or wrap (False): lli ('-58.388787, 117.457755'): outside on SE  FAILED, KNOWN, expected -20.622\n    test 1944 GeoidPGM('egm84-15.pgm').height(9.773, 95.846) kind 3: lli ('9.772764, 95.845943'), H (False) or wrap (False): lli ('9.772764, 95.845943'): outside on SE  FAILED, KNOWN, expected -41.484\n    test 1945 GeoidPGM('egm84-15.pgm').height(-53.12, 136.994) kind 3: lli ('-53.120381, 136.993994'), H (False) or wrap (False): lli ('-53.120381, 136.993994'): outside on SE  FAILED, KNOWN, expected -20.968\n    test 1946 GeoidPGM('egm84-15.pgm').height(-50.35, 0.075) kind 3: lli ('-50.349867, 0.07532'), H (False) or wrap (False): lli ('-50.349867, 0.07532'): outside on SE  FAILED, KNOWN, expected 25.568\n    test 1947 GeoidPGM('egm84-15.pgm').height(31.438, -170.879) kind 3: lli ('31.438387, -170.878548'), H (False) or wrap (False): lli ('31.438387, -170.878548'): outside on W  FAILED, KNOWN, expected -8.581\n    test 1948 GeoidPGM('egm84-15.pgm').height(37.541, -153.024) kind 3: lli ('37.540689, -153.024228'), H (False) or wrap (False): lli ('37.540689, -153.024228'): outside on W  FAILED, KNOWN, expected -18.329\n    test 1949 GeoidPGM('egm84-15.pgm').height(27.586, 2.444) kind 3: lli ('27.586088, 2.443556'), H (False) or wrap (False): lli ('27.586088, 2.443556'): outside on E  FAILED, KNOWN, expected 25.001\n    test 1950 GeoidPGM('egm84-15.pgm').height(-26.139, -106.201) kind 3: lli ('-26.139126, -106.20081'), H (False) or wrap (False): lli ('-26.139126, -106.20081'): outside on S  FAILED, KNOWN, expected -2.940\n    test 1951 GeoidPGM('egm84-15.pgm').height(-33.426, -14.84) kind 3: lli ('-33.425976, -14.840359'), H (False) or wrap (False): lli ('-33.425976, -14.840359'): outside on SE  FAILED, KNOWN, expected 18.228\n    test 1952 GeoidPGM('egm84-15.pgm').height(39.586, -153.019) kind 3: lli ('39.586286, -153.018974'), H (False) or wrap (False): lli ('39.586286, -153.018974'): outside on W  FAILED, KNOWN, expected -16.507\n    test 1953 GeoidPGM('egm84-15.pgm').height(-60.79, -2.578) kind 3: lli ('-60.790289, -2.578163'), H (False) or wrap (False): lli ('-60.790289, -2.578163'): outside on SE  FAILED, KNOWN, expected 14.275\n    test 1954 GeoidPGM('egm84-15.pgm').height(-20.131, 21.975) kind 3: lli ('-20.130538, 21.974941'), H (False) or wrap (False): lli ('-20.130538, 21.974941'): outside on SE  FAILED, KNOWN, expected 16.852\n    test 1955 GeoidPGM('egm84-15.pgm').height(75.649, 99.921) kind 3: lli ('75.64878, 99.920587'), H (False) or wrap (False): lli ('75.64878, 99.920587'): outside on NE  FAILED, KNOWN, expected -6.872\n    test 1956 GeoidPGM('egm84-15.pgm').height(-0.385, -23.788) kind 3: lli ('-0.385453, -23.788336'), H (False) or wrap (False): lli ('-0.385453, -23.788336'): outside on SE  FAILED, KNOWN, expected 9.006\n    test 1957 GeoidPGM('egm84-15.pgm').height(-51.56, -50.327) kind 3: lli ('-51.559564, -50.32687'), H (False) or wrap (False): lli ('-51.559564, -50.32687'): outside on SE  FAILED, KNOWN, expected 6.296\n    test 1958 GeoidPGM('egm84-15.pgm').height(-43.129, -167.271) kind 3: lli ('-43.129209, -167.27147'), H (False) or wrap (False): lli ('-43.129209, -167.27147'): outside on SW  FAILED, KNOWN, expected -1.481\n    test 1959 GeoidPGM('egm84-15.pgm').height(46.374, 71.948) kind 3: lli ('46.374177, 71.947616'), H (False) or wrap (False): lli ('46.374177, 71.947616'): outside on E  FAILED, KNOWN, expected -40.915\n    test 1960 GeoidPGM('egm84-15.pgm').height(-22.783, 140.657) kind 3: lli ('-22.783085, 140.657444'), H (False) or wrap (False): lli ('-22.783085, 140.657444'): outside on SE  FAILED, KNOWN, expected 37.495\n    test 1961 GeoidPGM('egm84-15.pgm').height(-12.056, 122.804) kind 3: lli ('-12.05584, 122.80402'), H (False) or wrap (False): lli ('-12.05584, 122.80402'): outside on SE  FAILED, KNOWN, expected 32.258\n    test 1962 GeoidPGM('egm84-15.pgm').height(30.127, 94.738) kind 3: lli ('30.127372, 94.738186'), H (False) or wrap (False): lli ('30.127372, 94.738186'): outside on E  FAILED, KNOWN, expected -41.529\n    test 1963 GeoidPGM('egm84-15.pgm').height(46.296, -174.479) kind 3: lli ('46.296018, -174.478616'), H (False) or wrap (False): lli ('46.296018, -174.478616'): outside on W  FAILED, KNOWN, expected -1.377\n    test 1964 GeoidPGM('egm84-15.pgm').height(34.99, 15.052) kind 3: lli ('34.989646, 15.051646'), H (False) or wrap (False): lli ('34.989646, 15.051646'): outside on E  FAILED, KNOWN, expected 35.280\n    test 1965 GeoidPGM('egm84-15.pgm').height(-51.287, 90.565) kind 3: lli ('-51.287168, 90.564711'), H (False) or wrap (False): lli ('-51.287168, 90.564711'): outside on SE  FAILED, KNOWN, expected 12.958\n    test 1966 GeoidPGM('egm84-15.pgm').height(34.217, 141.302) kind 3: lli ('34.217016, 141.301548'), H (False) or wrap (False): lli ('34.217016, 141.301548'): outside on E  FAILED, KNOWN, expected 18.307\n    test 1967 GeoidPGM('egm84-15.pgm').height(-40.423, -142.787) kind 3: lli ('-40.423023, -142.786592'), H (False) or wrap (False): lli ('-40.423023, -142.786592'): outside on SW  FAILED, KNOWN, expected -10.400\n    test 1968 GeoidPGM('egm84-15.pgm').height(-17.854, -170.216) kind 3: lli ('-17.854486, -170.216354'), H (False) or wrap (False): lli ('-17.854486, -170.216354'): outside on SW  FAILED, KNOWN, expected 28.638\n    test 1969 GeoidPGM('egm84-15.pgm').height(47.803, 112.701) kind 3: lli ('47.803271, 112.700942'), H (False) or wrap (False): lli ('47.803271, 112.700942'): outside on E  FAILED, KNOWN, expected -24.059\n    test 1970 GeoidPGM('egm84-15.pgm').height(-23.276, 133.454) kind 3: lli ('-23.275962, 133.453821'), H (False) or wrap (False): lli ('-23.275962, 133.453821'): outside on SE  FAILED, KNOWN, expected 18.806\n    test 1971 GeoidPGM('egm84-15.pgm').height(-26.884, -36.571) kind 3: lli ('-26.884369, -36.570654'), H (False) or wrap (False): lli ('-26.884369, -36.570654'): outside on SE  FAILED, KNOWN, expected -6.820\n    test 1972 GeoidPGM('egm84-15.pgm').height(-37.106, 31.128) kind 3: lli ('-37.106468, 31.127939'), H (False) or wrap (False): lli ('-37.106468, 31.127939'): outside on SE  FAILED, KNOWN, expected 31.486\n    test 1973 GeoidPGM('egm84-15.pgm').height(-75.363, -173.674) kind 3: lli ('-75.363185, -173.673649'), H (False) or wrap (False): lli ('-75.363185, -173.673649'): outside on SW  FAILED, KNOWN, expected -62.024\n    test 1974 GeoidPGM('egm84-15.pgm').height(-18.305, 69.016) kind 3: lli ('-18.30485, 69.015565'), H (False) or wrap (False): lli ('-18.30485, 69.015565'): outside on SE  FAILED, KNOWN, expected -24.248\n    test 1975 GeoidPGM('egm84-15.pgm').height(39.527, 23.58) kind 3: lli ('39.527401, 23.580206'), H (False) or wrap (False): lli ('39.527401, 23.580206'): outside on E  FAILED, KNOWN, expected 43.255\n    test 1976 GeoidPGM('egm84-15.pgm').height(68.903, 30.97) kind 3: lli ('68.903148, 30.970247'), H (False) or wrap (False): lli ('68.903148, 30.970247'): outside on NE  FAILED, KNOWN, expected 18.498\n    test 1977 GeoidPGM('egm84-15.pgm').height(53.937, 168.318) kind 3: lli ('53.936937, 168.318201'), H (False) or wrap (False): lli ('53.936937, 168.318201'): outside on E  FAILED, KNOWN, expected 4.067\n    test 1978 GeoidPGM('egm84-15.pgm').height(-38.6, 64.812) kind 3: lli ('-38.600098, 64.811532'), H (False) or wrap (False): lli ('-38.600098, 64.811532'): outside on SE  FAILED, KNOWN, expected 25.454\n    test 1979 GeoidPGM('egm84-15.pgm').height(-41.396, -69.739) kind 3: lli ('-41.395739, -69.739418'), H (False) or wrap (False): lli ('-41.395739, -69.739418'): outside on S  FAILED, KNOWN, expected 26.657\n    test 1980 GeoidPGM('egm84-15.pgm').height(50.158, 72.319) kind 3: lli ('50.157749, 72.319017'), H (False) or wrap (False): lli ('50.157749, 72.319017'): outside on E  FAILED, KNOWN, expected -31.966\n    test 1981 GeoidPGM('egm84-15.pgm').height(27.692, 176.153) kind 3: lli ('27.691879, 176.152884'), H (False) or wrap (False): lli ('27.691879, 176.152884'): outside on E  FAILED, KNOWN, expected -4.415\n    test 1982 GeoidPGM('egm84-15.pgm').height(-48.419, 170.454) kind 3: lli ('-48.419449, 170.454472'), H (False) or wrap (False): lli ('-48.419449, 170.454472'): outside on SE  FAILED, KNOWN, expected -6.741\n    test 1983 GeoidPGM('egm84-15.pgm').height(-65.346, -124.976) kind 3: lli ('-65.34567, -124.975961'), H (False) or wrap (False): lli ('-65.34567, -124.975961'): outside on S  FAILED, KNOWN, expected -34.900\n    test 1984 GeoidPGM('egm84-15.pgm').height(-51.873, 167.266) kind 3: lli ('-51.873009, 167.265613'), H (False) or wrap (False): lli ('-51.873009, 167.265613'): outside on SE  FAILED, KNOWN, expected -14.223\n    test 1985 GeoidPGM('egm84-15.pgm').height(-7.263, 84.308) kind 3: lli ('-7.262544, 84.307626'), H (False) or wrap (False): lli ('-7.262544, 84.307626'): outside on SE  FAILED, KNOWN, expected -79.317\n    test 1986 GeoidPGM('egm84-15.pgm').height(-1.461, -105.458) kind 3: lli ('-1.461003, -105.458323'), H (False) or wrap (False): lli ('-1.461003, -105.458323'): outside on S  FAILED, KNOWN, expected -16.163\n    test 1987 GeoidPGM('egm84-15.pgm').height(7.684, 161.873) kind 3: lli ('7.684324, 161.87293'), H (False) or wrap (False): lli ('7.684324, 161.87293'): outside on SE  FAILED, KNOWN, expected 36.287\n    test 1988 GeoidPGM('egm84-15.pgm').height(-31.475, -158.52) kind 3: lli ('-31.474549, -158.520033'), H (False) or wrap (False): lli ('-31.474549, -158.520033'): outside on SW  FAILED, KNOWN, expected 4.068\n    test 1989 GeoidPGM('egm84-15.pgm').height(-36.187, 62.917) kind 3: lli ('-36.187212, 62.917075'), H (False) or wrap (False): lli ('-36.187212, 62.917075'): outside on SE  FAILED, KNOWN, expected 24.407\n    test 1990 GeoidPGM('egm84-15.pgm').height(16.003, 141.687) kind 3: lli ('16.002975, 141.686552'), H (False) or wrap (False): lli ('16.002975, 141.686552'): outside on SE  FAILED, KNOWN, expected 53.054\n    test 1991 GeoidPGM('egm84-15.pgm').height(30.182, 86.261) kind 3: lli ('30.182218, 86.260576'), H (False) or wrap (False): lli ('30.182218, 86.260576'): outside on E  FAILED, KNOWN, expected -30.622\n    test 1992 GeoidPGM('egm84-15.pgm').height(-77.304, 159.498) kind 3: lli ('-77.303842, 159.497665'), H (False) or wrap (False): lli ('-77.303842, 159.497665'): outside on SE  FAILED, KNOWN, expected -53.540\n    test 1993 GeoidPGM('egm84-15.pgm').height(39.536, 139.795) kind 3: lli ('39.536, 139.795358'), H (False) or wrap (False): lli ('39.536, 139.795358'): outside on E  FAILED, KNOWN, expected 36.262\n    test 1994 GeoidPGM('egm84-15.pgm').height(8.569, 134.618) kind 3: lli ('8.569309, 134.618403'), H (False) or wrap (False): lli ('8.569309, 134.618403'): outside on SE  FAILED, KNOWN, expected 64.369\n    test 1995 GeoidPGM('egm84-15.pgm').height(14.473, 90.596) kind 3: lli ('14.473483, 90.595663'), H (False) or wrap (False): lli ('14.473483, 90.595663'): outside on SE  FAILED, KNOWN, expected -61.300\n    test 1996 GeoidPGM('egm84-15.pgm').height(-13.138, -99.589) kind 3: lli ('-13.13767, -99.589202'), H (False) or wrap (False): lli ('-13.13767, -99.589202'): outside on S  FAILED, KNOWN, expected -7.999\n    test 1997 GeoidPGM('egm84-15.pgm').height(34.212, -26.307) kind 3: lli ('34.211572, -26.307194'), H (False) or wrap (False): lli ('34.211572, -26.307194'): outside on E  FAILED, KNOWN, expected 41.477\n    test 1998 GeoidPGM('egm84-15.pgm').height(21.89, 76.371) kind 3: lli ('21.889732, 76.371362'), H (False) or wrap (False): lli ('21.889732, 76.371362'): outside on SE  FAILED, KNOWN, expected -59.876\n    test 1999 GeoidPGM('egm84-15.pgm').height(29.793, 120.487) kind 3: lli ('29.792909, 120.48703'), H (False) or wrap (False): lli ('29.792909, 120.48703'): outside on E  FAILED, KNOWN, expected 8.404\n    test 2000 GeoidPGM('egm84-15.pgm').height(15.724, 122.714) kind 3: lli ('15.723814, 122.713685'), H (False) or wrap (False): lli ('15.723814, 122.713685'): outside on SE  FAILED, KNOWN, expected 39.152\n    test 2001 GeoidPGM('egm84-15.pgm').height(-66.208, -78.499) kind 3: lli ('-66.20776, -78.498807'), H (False) or wrap (False): lli ('-66.20776, -78.498807'): outside on S  FAILED, KNOWN, expected -7.076\n    test 2002 GeoidPGM('egm84-15.pgm').height(-39.507, 55.809) kind 3: lli ('-39.507049, 55.808743'), H (False) or wrap (False): lli ('-39.507049, 55.808743'): outside on SE  FAILED, KNOWN, expected 33.178\n    test 2003 GeoidPGM('egm84-15.pgm').height(28.159, 51.476) kind 3: lli ('28.159494, 51.476474'), H (False) or wrap (False): lli ('28.159494, 51.476474'): outside on E  FAILED, KNOWN, expected -23.832\n    test 2004 GeoidPGM('egm84-15.pgm').height(-36.207, 120.205) kind 3: lli ('-36.206825, 120.205019'), H (False) or wrap (False): lli ('-36.206825, 120.205019'): outside on SE  FAILED, KNOWN, expected -38.206\n    test 2005 GeoidPGM('egm84-15.pgm').height(30.575, -99.998) kind 3: -22.143  FAILED, KNOWN, expected -22.142\n    test 2006 GeoidPGM('egm84-15.pgm').height(-16.993, 37.136) kind 3: lli ('-16.992515, 37.135881'), H (False) or wrap (False): lli ('-16.992515, 37.135881'): outside on SE  FAILED, KNOWN, expected -13.765\n    test 2007 GeoidPGM('egm84-15.pgm').height(-11.477, 12.039) kind 3: lli ('-11.476997, 12.038708'), H (False) or wrap (False): lli ('-11.476997, 12.038708'): outside on SE  FAILED, KNOWN, expected 16.898\n    test 2008 GeoidPGM('egm84-15.pgm').height(30.428, -144.765) kind 3: lli ('30.428465, -144.765049'), H (False) or wrap (False): lli ('30.428465, -144.765049'): outside on W  FAILED, KNOWN, expected -22.474\n    test 2009 GeoidPGM('egm84-15.pgm').height(-17.44, -92.424) kind 3: lli ('-17.439773, -92.424339'), H (False) or wrap (False): lli ('-17.439773, -92.424339'): outside on S  FAILED, KNOWN, expected -4.718\n    test 2010 GeoidPGM('egm84-15.pgm').height(40.203, 143.43) kind 3: lli ('40.203164, 143.429799'), H (False) or wrap (False): lli ('40.203164, 143.429799'): outside on E  FAILED, KNOWN, expected 16.635\n    test 2011 GeoidPGM('egm84-15.pgm').height(-37.098, -106.574) kind 3: lli ('-37.098392, -106.573712'), H (False) or wrap (False): lli ('-37.098392, -106.573712'): outside on S  FAILED, KNOWN, expected -9.012\n    test 2012 GeoidPGM('egm84-15.pgm').height(54.62, -68.413) kind 3: -23.544  FAILED, KNOWN, expected -23.543\n    test 2013 GeoidPGM('egm84-15.pgm').height(-31.633, 148.182) kind 3: lli ('-31.633252, 148.181926'), H (False) or wrap (False): lli ('-31.633252, 148.181926'): outside on SE  FAILED, KNOWN, expected 26.236\n    test 2014 GeoidPGM('egm84-15.pgm').height(-56.07, -141.407) kind 3: lli ('-56.069748, -141.406778'), H (False) or wrap (False): lli ('-56.069748, -141.406778'): outside on SW  FAILED, KNOWN, expected -21.953\n    test 2015 GeoidPGM('egm84-15.pgm').height(-8.195, -52.691) kind 3: lli ('-8.195214, -52.691177'), H (False) or wrap (False): lli ('-8.195214, -52.691177'): outside on SE  FAILED, KNOWN, expected -17.959\n    test 2016 GeoidPGM('egm84-15.pgm').height(17.851, 24.749) kind 3: lli ('17.850526, 24.748606'), H (False) or wrap (False): lli ('17.850526, 24.748606'): outside on SE  FAILED, KNOWN, expected 9.078\n    test 2017 GeoidPGM('egm84-15.pgm').height(0.349, -108.333) kind 3: lli ('0.349465, -108.332667'), H (False) or wrap (False): lli ('0.349465, -108.332667'): outside on S  FAILED, KNOWN, expected -19.158\n    test 2018 GeoidPGM('egm84-15.pgm').height(15.038, 126.191) kind 3: lli ('15.037932, 126.190545'), H (False) or wrap (False): lli ('15.037932, 126.190545'): outside on SE  FAILED, KNOWN, expected 46.776\n    test 2019 GeoidPGM('egm84-15.pgm').height(-21.111, -123.696) kind 3: lli ('-21.111105, -123.695981'), H (False) or wrap (False): lli ('-21.111105, -123.695981'): outside on S  FAILED, KNOWN, expected -8.055\n    test 2020 GeoidPGM('egm84-15.pgm').height(30.947, 173.002) kind 3: lli ('30.946618, 173.002137'), H (False) or wrap (False): lli ('30.946618, 173.002137'): outside on E  FAILED, KNOWN, expected -7.696\n    test 2021 GeoidPGM('egm84-15.pgm').height(-10.698, -144.091) kind 3: lli ('-10.698334, -144.091109'), H (False) or wrap (False): lli ('-10.698334, -144.091109'): outside on SW  FAILED, KNOWN, expected -1.049\n    test 2022 GeoidPGM('egm84-15.pgm').height(-29.412, 124.753) kind 3: lli ('-29.412071, 124.75279'), H (False) or wrap (False): lli ('-29.412071, 124.75279'): outside on SE  FAILED, KNOWN, expected -16.081\n    test 2023 GeoidPGM('egm84-15.pgm').height(38.224, -137.189) kind 3: lli ('38.223621, -137.189376'), H (False) or wrap (False): lli ('38.223621, -137.189376'): outside on W  FAILED, KNOWN, expected -35.427\n    test 2024 GeoidPGM('egm84-15.pgm').height(36.064, -132.409) kind 3: lli ('36.063775, -132.409284'), H (False) or wrap (False): lli ('36.063775, -132.409284'): outside on W  FAILED, KNOWN, expected -38.648\n    test 2025 GeoidPGM('egm84-15.pgm').height(29.975, 178.076) kind 3: lli ('29.974676, 178.075894'), H (False) or wrap (False): lli ('29.974676, 178.075894'): outside on E  FAILED, KNOWN, expected -5.519\n    test 2026 GeoidPGM('egm84-15.pgm').height(-21.346, 169.26) kind 3: lli ('-21.346396, 169.259508'), H (False) or wrap (False): lli ('-21.346396, 169.259508'): outside on SE  FAILED, KNOWN, expected 53.431\n    test 2027 GeoidPGM('egm84-15.pgm').height(49.282, -152.934) kind 3: lli ('49.282472, -152.934409'), H (False) or wrap (False): lli ('49.282472, -152.934409'): outside on W  FAILED, KNOWN, expected 1.979\n    test 2028 GeoidPGM('egm84-15.pgm').height(16.349, -99.962) kind 3: lli ('16.349121, -99.962229'), H (False) or wrap (False): lli ('16.349121, -99.962229'): outside on S  FAILED, KNOWN, expected -13.197\n    test 2029 GeoidPGM('egm84-15.pgm').height(-14.293, -167.34) kind 3: lli ('-14.293325, -167.339799'), H (False) or wrap (False): lli ('-14.293325, -167.339799'): outside on SW  FAILED, KNOWN, expected 18.945\n    test 2030 GeoidPGM('egm84-15.pgm').height(47.166, -38.523) kind 3: lli ('47.165911, -38.522629'), H (False) or wrap (False): lli ('47.165911, -38.522629'): outside on E  FAILED, KNOWN, expected 45.187\n    test 2031 GeoidPGM('egm84-15.pgm').height(-58.911, 114.347) kind 3: lli ('-58.910597, 114.346927'), H (False) or wrap (False): lli ('-58.910597, 114.346927'): outside on SE  FAILED, KNOWN, expected -17.145\n    test 2032 GeoidPGM('egm84-15.pgm').height(-9.055, 111.294) kind 3: lli ('-9.055095, 111.294422'), H (False) or wrap (False): lli ('-9.055095, 111.294422'): outside on SE  FAILED, KNOWN, expected 13.146\n    test 2033 GeoidPGM('egm84-15.pgm').height(18.391, 29.692) kind 3: lli ('18.390988, 29.691577'), H (False) or wrap (False): lli ('18.390988, 29.691577'): outside on SE  FAILED, KNOWN, expected 4.933\n    test 2034 GeoidPGM('egm84-15.pgm').height(-15.074, 22.153) kind 3: lli ('-15.074412, 22.152663'), H (False) or wrap (False): lli ('-15.074412, 22.152663'): outside on SE  FAILED, KNOWN, expected 12.326\n    test 2035 GeoidPGM('egm84-15.pgm').height(-4.235, 62.001) kind 3: lli ('-4.234571, 62.001081'), H (False) or wrap (False): lli ('-4.234571, 62.001081'): outside on SE  FAILED, KNOWN, expected -60.030\n    test 2036 GeoidPGM('egm84-15.pgm').height(15.171, -86.583) kind 3: lli ('15.170822, -86.582929'), H (False) or wrap (False): lli ('15.170822, -86.582929'): outside on S  FAILED, KNOWN, expected 3.110\n    test 2037 GeoidPGM('egm84-15.pgm').height(79.254, 112.116) kind 3: lli ('79.254009, 112.115515'), H (False) or wrap (False): lli ('79.254009, 112.115515'): outside on NE  FAILED, KNOWN, expected -2.741\n    test 2038 GeoidPGM('egm84-15.pgm').height(15.947, 156.093) kind 3: lli ('15.947068, 156.092678'), H (False) or wrap (False): lli ('15.947068, 156.092678'): outside on SE  FAILED, KNOWN, expected 32.085\n    test 2039 GeoidPGM('egm84-15.pgm').height(68.371, -177.382) kind 3: lli ('68.370605, -177.382127'), H (False) or wrap (False): lli ('68.370605, -177.382127'): outside on NW  FAILED, KNOWN, expected 2.060\n    test 2040 GeoidPGM('egm84-15.pgm').height(-41.931, -72.093) kind 3: lli ('-41.931009, -72.093413'), H (False) or wrap (False): lli ('-41.931009, -72.093413'): outside on S  FAILED, KNOWN, expected 22.916\n    test 2041 GeoidPGM('egm84-15.pgm').height(-1.193, -143.133) kind 3: lli ('-1.192967, -143.133078'), H (False) or wrap (False): lli ('-1.192967, -143.133078'): outside on SW  FAILED, KNOWN, expected 5.519\n    test 2042 GeoidPGM('egm84-15.pgm').height(-37.006, 154.513) kind 3: lli ('-37.006115, 154.512534'), H (False) or wrap (False): lli ('-37.006115, 154.512534'): outside on SE  FAILED, KNOWN, expected 11.020\n    test 2043 GeoidPGM('egm84-15.pgm').height(-22.148, 9.938) kind 3: lli ('-22.148493, 9.938408'), H (False) or wrap (False): lli ('-22.148493, 9.938408'): outside on SE  FAILED, KNOWN, expected 22.171\n    test 2044 GeoidPGM('egm84-15.pgm').height(24.329, 109.044) kind 3: lli ('24.328746, 109.043774'), H (False) or wrap (False): lli ('24.328746, 109.043774'): outside on SE  FAILED, KNOWN, expected -22.944\n    test 2045 GeoidPGM('egm84-15.pgm').height(-54.878, 114.691) kind 3: lli ('-54.877699, 114.691444'), H (False) or wrap (False): lli ('-54.877699, 114.691444'): outside on SE  FAILED, KNOWN, expected -17.580\n    test 2046 GeoidPGM('egm84-15.pgm').height(45.601, -80.458) kind 3: -35.737  FAILED, KNOWN, expected -35.738\n    test 2047 GeoidPGM('egm84-15.pgm').height(2.372, 58.974) kind 3: lli ('2.371766, 58.974082'), H (False) or wrap (False): lli ('2.371766, 58.974082'): outside on SE  FAILED, KNOWN, expected -61.040\n    test 2048 GeoidPGM('egm84-15.pgm').height(15.937, 165.854) kind 3: lli ('15.936522, 165.854035'), H (False) or wrap (False): lli ('15.936522, 165.854035'): outside on SE  FAILED, KNOWN, expected 20.907\n    test 2049 GeoidPGM('egm84-15.pgm').height(4.889, -24.213) kind 3: lli ('4.889499, -24.213194'), H (False) or wrap (False): lli ('4.889499, -24.213194'): outside on SE  FAILED, KNOWN, expected 13.874\n    test 2050 GeoidPGM('egm84-15.pgm').height(-11.392, 179.558) kind 3: lli ('-11.392365, 179.558198'), H (False) or wrap (False): lli ('-11.392365, 179.558198'): outside on SE  FAILED, KNOWN, expected 40.929\n    test 2051 GeoidPGM('egm84-15.pgm').height(58.246, 4.862) kind 3: lli ('58.24629, 4.862128'), H (False) or wrap (False): lli ('58.24629, 4.862128'): outside on NE  FAILED, KNOWN, expected 43.191\n    test 2052 GeoidPGM('egm84-15.pgm').height(34.302, -109.109) kind 3: -22.005  FAILED, KNOWN, expected -22.006\n    test 2053 GeoidPGM('egm84-15.pgm').height(-58.196, 117.306) kind 3: lli ('-58.195787, 117.305696'), H (False) or wrap (False): lli ('-58.195787, 117.305696'): outside on SE  FAILED, KNOWN, expected -20.375\n    test 2054 GeoidPGM('egm84-15.pgm').height(44.5, 173.769) kind 3: lli ('44.499876, 173.768568'), H (False) or wrap (False): lli ('44.499876, 173.768568'): outside on E  FAILED, KNOWN, expected -7.852\n    test 2055 GeoidPGM('egm84-15.pgm').height(-28.863, -139.775) kind 3: lli ('-28.862539, -139.774812'), H (False) or wrap (False): lli ('-28.862539, -139.774812'): outside on SW  FAILED, KNOWN, expected -8.674\n    test 2056 GeoidPGM('egm84-15.pgm').height(19.507, -96.099) kind 3: lli ('19.507043, -96.099433'), H (False) or wrap (False): lli ('19.507043, -96.099433'): outside on S  FAILED, KNOWN, expected -14.117\n    test 2057 GeoidPGM('egm84-15.pgm').height(-42.488, -73.907) kind 3: lli ('-42.487604, -73.906602'), H (False) or wrap (False): lli ('-42.487604, -73.906602'): outside on S  FAILED, KNOWN, expected 17.251\n    test 2058 GeoidPGM('egm84-15.pgm').height(46.138, -141.429) kind 3: lli ('46.138437, -141.429193'), H (False) or wrap (False): lli ('46.138437, -141.429193'): outside on W  FAILED, KNOWN, expected -19.436\n    test 2059 GeoidPGM('egm84-15.pgm').height(60.507, 93.743) kind 3: lli ('60.506969, 93.74336'), H (False) or wrap (False): lli ('60.506969, 93.74336'): outside on NE  FAILED, KNOWN, expected -31.330\n    test 2060 GeoidPGM('egm84-15.pgm').height(26.219, -145.434) kind 3: lli ('26.219081, -145.434391'), H (False) or wrap (False): lli ('26.219081, -145.434391'): outside on W  FAILED, KNOWN, expected -17.090\n    test 2061 GeoidPGM('egm84-15.pgm').height(-28.687, 3.37) kind 3: lli ('-28.68714, 3.370196'), H (False) or wrap (False): lli ('-28.68714, 3.370196'): outside on SE  FAILED, KNOWN, expected 24.184\n    test 2062 GeoidPGM('egm84-15.pgm').height(-15.008, 117.45) kind 3: lli ('-15.007944, 117.449536'), H (False) or wrap (False): lli ('-15.007944, 117.449536'): outside on SE  FAILED, KNOWN, expected 6.142\n    test 2063 GeoidPGM('egm84-15.pgm').height(40.71, 144.095) kind 3: lli ('40.710024, 144.095126'), H (False) or wrap (False): lli ('40.710024, 144.095126'): outside on E  FAILED, KNOWN, expected 11.693\n    test 2064 GeoidPGM('egm84-15.pgm').height(20.823, -173.611) kind 3: lli ('20.823096, -173.610797'), H (False) or wrap (False): lli ('20.823096, -173.610797'): outside on SW  FAILED, KNOWN, expected 6.840\n    test 2065 GeoidPGM('egm84-15.pgm').height(16.776, -3.009) kind 3: lli ('16.776, -3.009'), H (False) or wrap (False): lli ('16.776, -3.009'): outside on SE  FAILED, KNOWN, expected 31.298\n    test 2066 GeoidPGM('egm84-15.pgm').height(41.0, -95.0) kind 3: -31.953  FAILED, KNOWN, expected -31.952\n    test 2067 GeoidPGM('egm84-15.pgm').height(49.0, -120.5) kind 3: -14.946\n    test 2068 GeoidPGM('egm84-15.pgm').height(49.0, -103.5) kind 3: -17.031  FAILED, KNOWN, expected -17.032\n    test 2069 GeoidPGM('egm84-15.pgm').height(49.0, -86.5) kind 3: -37.962\n    test 2070 GeoidPGM('egm84-15.pgm').height(49.0, -69.5) kind 3: -26.493  FAILED, KNOWN, expected -26.492\n    test 2071 GeoidPGM('egm84-15.pgm').height(33.0, -120.5) kind 3: -39.543\n    test 2072 GeoidPGM('egm84-15.pgm').height(33.0, -103.5) kind 3: -22.557  FAILED, KNOWN, expected -22.556\n    test 2073 GeoidPGM('egm84-15.pgm').height(33.0, -86.5) kind 3: -28.710\n    test 2074 GeoidPGM('egm84-15.pgm').height(33.0, -69.5) kind 3: -46.590\n\n    test 2075 GeoidPGM('egm84-15.pgm').height() kind 3, eps max (in 0 FAILED): 0.001055\n    test 2076 GeoidPGM('egm84-15.pgm').height() kind 3, eps mean (of 15 total): 0.000534\n    test 2077 GeoidPGM('egm84-15.pgm').height() kind 3, eps stdev (of 15 total): 0.000293\n    test 2078 GeoidPGM('egm84-15.pgm').highest(): 44.0, -110.25, -6.927\n    test 2079 GeoidPGM('egm84-15.pgm').lowerleft(): 25.0, -125.0, -45.237\n    test 2080 GeoidPGM('egm84-15.pgm').lowerright(): 25.0, -64.75, -49.503\n    test 2081 GeoidPGM('egm84-15.pgm').lowest(): 26.0, -69.5, -52.293\n    test 2082 GeoidPGM('egm84-15.pgm').upperleft(): 55.0, -125.0, -11.157\n    test 2083 GeoidPGM('egm84-15.pgm').upperright(): 55.0, -64.75, -15.43\n    test 2084 GeoidPGM('egm84-15.pgm').dtype: (\"dtype('float64')\",)\n    test 2085 GeoidPGM('egm84-15.pgm').knots: ('29161',)\n    test 2086 GeoidPGM('egm84-15.pgm').mean: ('-29.223',)\n    test 2087 GeoidPGM('egm84-15.pgm').nBytes: ('233288',)\n    test 2088 GeoidPGM('egm84-15.pgm').smooth: ('0',)\n    test 2089 GeoidPGM('egm84-15.pgm').stdev: ('9.692',)\n    test 2090 GeoidPGM('egm84-15.pgm')._g2ll2(180, 360): (180, 0.0)\n    test 2091 GeoidPGM('egm84-15.pgm')._ll2g2(180, 360): (180, 720.0)\n    test 2092 GeoidPGM('egm84-15.pgm')._swne: (-10.0, -100.0, 10.0, 100.0)\n    test 2093 GeoidPGM('egm84-15.pgm')._swne: (-10.0, -100.0, 10.0, 100.0)\n    test 2094 GeoidPGM('egm84-15.pgm').toStr: GeoidPGM('egm84-15.pgm'): lowerleft(25.0, -125.0, -45.237), upperright(55.0, -64.75, -15.43), center(40.0, -94.875, -33.654), highest(44.0, -110.25, -6.927), lowest(26.0, -69.5, -52.293)\n\n    test 2095 closed: True\n    test 2096 copy(<class 'type'>): (<class 'pygeodesy.geoids.GeoidPGM'>, True)\n    test 2097 GeoidPGM.copy(): (<class 'pygeodesy.geoids.GeoidPGM'>, True)\n    test 2098 GeoidG2012B('g2012bu0.bin').height(41.0, -95.0) kind 3: -30.312\n    test 2099 GeoidG2012B('g2012bu0.bin').height(49.0, -120.5) kind 3: -16.112\n    test 2100 GeoidG2012B('g2012bu0.bin').height(49.0, -103.5) kind 3: -18.955\n    test 2101 GeoidG2012B('g2012bu0.bin').height(49.0, -86.5) kind 3: -37.584\n    test 2102 GeoidG2012B('g2012bu0.bin').height(49.0, -69.5) kind 3: -25.867\n    test 2103 GeoidG2012B('g2012bu0.bin').height(33.0, -120.5) kind 3: -39.554\n    test 2104 GeoidG2012B('g2012bu0.bin').height(33.0, -103.5) kind 3: -21.917\n    test 2105 GeoidG2012B('g2012bu0.bin').height(33.0, -86.5) kind 3: -29.001\n    test 2106 GeoidG2012B('g2012bu0.bin').height(33.0, -69.5) kind 3: -46.725\n\n    test 2107 GeoidG2012B('g2012bu0.bin').height() kind 3, eps max (in 0 FAILED): 0.000400\n    test 2108 GeoidG2012B('g2012bu0.bin').height() kind 3, eps mean (of 9 total): 0.000222\n    test 2109 GeoidG2012B('g2012bu0.bin').height() kind 3, eps stdev (of 9 total): 0.000139\n    test 2110 GeoidG2012B('g2012bu0.bin').highest(): 58.0, -60.0, 3.31\n    test 2111 GeoidG2012B('g2012bu0.bin').lowerleft(): 24.0, -130.0, -39.727\n    test 2112 GeoidG2012B('g2012bu0.bin').lowerright(): 24.0, -59.983, -47.981\n    test 2113 GeoidG2012B('g2012bu0.bin').lowest(): 25.9, -69.85, -50.709\n    test 2114 GeoidG2012B('g2012bu0.bin').upperleft(): 58.0, -130.0, -1.095\n    test 2115 GeoidG2012B('g2012bu0.bin').upperright(): 58.0, -59.983, 3.38\n    test 2116 GeoidG2012B('g2012bu0.bin').dtype: (\"dtype('>f4')\",)\n    test 2117 GeoidG2012B('g2012bu0.bin').knots: ('8574241',)\n    test 2118 GeoidG2012B('g2012bu0.bin').mean: ('-29.481',)\n    test 2119 GeoidG2012B('g2012bu0.bin').nBytes: ('34296964',)\n    test 2120 GeoidG2012B('g2012bu0.bin').smooth: ('0',)\n    test 2121 GeoidG2012B('g2012bu0.bin').stdev: ('10.063',)\n    test 2122 GeoidG2012B('g2012bu0.bin')._g2ll2(180, 360): (180, 360)\n    test 2123 GeoidG2012B('g2012bu0.bin')._ll2g2(180, 360): (180, 360)\n    test 2124 GeoidG2012B('g2012bu0.bin')._swne: (-10.0, -100.0, 10.0, 100.0)\n    test 2125 GeoidG2012B('g2012bu0.bin')._swne: (-10.0, -100.0, 10.0, 100.0)\n    test 2126 GeoidG2012B('g2012bu0.bin').toStr: GeoidG2012B('g2012bu0.bin'): lowerleft(24.0, -130.0, -39.727), upperright(58.0, -59.983, 3.38), center(41.0, -94.992, -30.328), highest(58.0, -60.0, 3.31), lowest(25.9, -69.85, -50.709)\n\n    test 2127 closed: True\n    test 2128 copy(<class 'type'>): (<class 'pygeodesy.geoids.GeoidG2012B'>, True)\n    test 2129 GeoidG2012B.copy(): (<class 'pygeodesy.geoids.GeoidG2012B'>, True)\n    test 2130 GeoidEGM96('WW15MGH.GRD').height(41.0, -95.0) kind 3: -30.262  FAILED, KNOWN, expected -30.312\n    test 2131 GeoidEGM96('WW15MGH.GRD').height(49.0, -120.5) kind 3: -15.984  FAILED, KNOWN, expected -16.112\n    test 2132 GeoidEGM96('WW15MGH.GRD').height(49.0, -103.5) kind 3: -18.635  FAILED, KNOWN, expected -18.955\n    test 2133 GeoidEGM96('WW15MGH.GRD').height(49.0, -86.5) kind 3: -37.748  FAILED, KNOWN, expected -37.584\n    test 2134 GeoidEGM96('WW15MGH.GRD').height(49.0, -69.5) kind 3: -26.691  FAILED, KNOWN, expected -25.867\n    test 2135 GeoidEGM96('WW15MGH.GRD').height(33.0, -120.5) kind 3: -39.562  FAILED, KNOWN, expected -39.554\n    test 2136 GeoidEGM96('WW15MGH.GRD').height(33.0, -103.5) kind 3: -22.562  FAILED, KNOWN, expected -21.917\n    test 2137 GeoidEGM96('WW15MGH.GRD').height(33.0, -86.5) kind 3: -30.013  FAILED, KNOWN, expected -29.001\n    test 2138 GeoidEGM96('WW15MGH.GRD').height(33.0, -69.5) kind 3: -48.038  FAILED, KNOWN, expected -46.725\n\n    test 2139 GeoidEGM96('WW15MGH.GRD').height() kind 3, eps max (in 0 FAILED): 1.313000\n    test 2140 GeoidEGM96('WW15MGH.GRD').height() kind 3, eps mean (of 9 total): 0.496000\n    test 2141 GeoidEGM96('WW15MGH.GRD').height() kind 3, eps stdev (of 9 total): 0.444374\n    test 2142 GeoidEGM96('WW15MGH.GRD').highest(): -8.25, -32.75, 85.391\n    test 2143 GeoidEGM96('WW15MGH.GRD').lowerleft(): -90.0, -180.0, -29.534\n    test 2144 GeoidEGM96('WW15MGH.GRD').lowerright(): -90.0, 180.25, -29.534\n    test 2145 GeoidEGM96('WW15MGH.GRD').lowest(): 4.75, -101.25, -106.991\n    test 2146 GeoidEGM96('WW15MGH.GRD').upperleft(): 90.0, -180.0, 13.606\n    test 2147 GeoidEGM96('WW15MGH.GRD').upperright(): 90.0, 180.25, 13.606\n    test 2148 GeoidEGM96('WW15MGH.GRD').dtype: (\"dtype('float64')\",)\n    test 2149 GeoidEGM96('WW15MGH.GRD').knots: ('1038961',)\n    test 2150 GeoidEGM96('WW15MGH.GRD').mean: ('-1.426',)\n    test 2151 GeoidEGM96('WW15MGH.GRD').nBytes: ('8311688',)\n    test 2152 GeoidEGM96('WW15MGH.GRD').smooth: ('0',)\n    test 2153 GeoidEGM96('WW15MGH.GRD').stdev: ('29.223',)\n    test 2154 GeoidEGM96('WW15MGH.GRD')._g2ll2(180, 360): (-180, 0.0)\n    test 2155 GeoidEGM96('WW15MGH.GRD')._ll2g2(180, 360): (-180, 360)\n    test 2156 GeoidEGM96('WW15MGH.GRD')._swne: (-10.0, -100.0, 10.0, 100.0)\n    test 2157 GeoidEGM96('WW15MGH.GRD')._swne: (-10.0, -100.0, 10.0, 100.0)\n    test 2158 GeoidEGM96('WW15MGH.GRD').toStr: GeoidEGM96('WW15MGH.GRD'): lowerleft(-90.0, -180.0, -29.534), upperright(90.0, 180.25, 13.606), center(0.0, 0.125, 17.125), highest(-8.25, -32.75, 85.391), lowest(4.75, -101.25, -106.991)\n\n    test 2159 closed: True\n    test 2160 copy(<class 'type'>): (<class 'pygeodesy.geoids.GeoidEGM96'>, True)\n    test 2161 GeoidEGM96.copy(): (<class 'pygeodesy.geoids.GeoidEGM96'>, True)\n\n    1394 of 2161 testGeoids.py tests (64.5%) FAILED, ALL KNOWN (pygeodesy 26.3.26 Python 3.11.9 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 1.24.2 scipy 1.10.1 Math 2 macOS 26.3.1 isLazy 0 -W  default) 47.554 sec\nrunning /usr/local/bin/p....n3.11 -W default ~/PyGeodesy/test/testGreatCircle.py\n\n    testing testGreatCircle.py 23.05.05\n\n    testGreatCircle(pygeodesy.sphericalNvector, 25.05.27)\n    test 1 InitialBearingSameLocations: 0.0\n    test 2 InitialBearingEqualLocations: 0.0\n    test 3 FinalBearingSameLocations: 180.0\n    test 4 FinalBearingEqualLocations: 180.0\n    test 5 FinalBearingCrossError: point (LatLon(43°55′51.28″N, 072°03′13.72″W)) or other (LatLon(43°55′51.28″N, 072°03′13.72″W)): coincident\n    test 6 DistanceSameLocations: 0.0\n    test 7 DistanceEqualLocations: 0.0\n    test 8 DistanceEiffelToVersailles: 14084.300096  FAILED, KNOWN, expected 14084.280705\n    test 9 DistanceVersaillesToEiffel: 14084.300096  FAILED, KNOWN, expected 14084.280705\n    test 10 InitialBearingEiffelToVersailles: 245.13460297\n    test 11 InitialBearingEiffelToVersailles(DMS): 245°08′04.5707″\n    test 12 InitialBearingVersaillesToEiffel: 65.003253951\n    test 13 InitialBearingVersaillesToEiffel(DMS): 65°00′11.7142″\n    test 14 FinalBearingEiffelToVersailles: 245.00325395\n    test 15 FinalBearingEiffelToVersailles(DMS): 245°00′11.7142″\n    test 16 FinalBearingVersaillesToEiffel: 65.134602969\n    test 17 FinalBearingVersaillesToEiffel(DMS): 65°08′04.5707″\n    test 18 GenerateLocationVersailles: 48.804766°N, 002.120339°E\n    test 19 GenerateLocationEiffel: 48.858158°N, 002.294825°E\n    test 20 MidpointEiffelToVersailles: 48.831495°N, 002.207536°E\n    test 21 MidpointEiffelToVersailles(DMS): 48°49′53.3817″N, 002°12′27.1279″E\n    test 22 MidpointEiffelToVersailles(m): 7042.15004788  FAILED, KNOWN, expected 7042.15974330\n    test 23 MidpointVersaillesToEiffel: 48.831495°N, 002.207536°E  FAILED, KNOWN, expected 48.831495°N, 002.207535°E\n    test 24 MidpointVersaillesToEiffel(DMS): 48°49′53.3817″N, 002°12′27.1279″E\n    test 25 MidpointVersaillesToEiffel(m): 7042.15004788  FAILED, KNOWN, expected 7042.15974330\n    test 26 Intersection: 48.83569095°N, 002.221252031°E\n    test 27 Intersection: 48.8356909498836°N, 002.2212520313074°E\n    test 28 CrossTrackDistance200m+90°: 200.0\n    test 29 CrossTrackDistance200m+270°: -200.0\n    test 30 CrossTrackDistanceCloseToZero: 0.0000000\n\n    testGreatCircle(pygeodesy.sphericalTrigonometry, 25.08.31)\n    test 31 InitialBearingSameLocations: 0.0\n    test 32 InitialBearingEqualLocations: 0.0\n    test 33 FinalBearingSameLocations: 180.0\n    test 34 FinalBearingEqualLocations: 180.0\n    test 35 FinalBearingCrossError: point (LatLon(43°55′51.28″N, 072°03′13.72″W)), other (LatLon(43°55′51.28″N, 072°03′13.72″W)) or wrap (False): coincident\n    test 36 DistanceSameLocations: 0.0\n    test 37 DistanceEqualLocations: 0.0\n    test 38 DistanceEiffelToVersailles: 14084.300096  FAILED, KNOWN, expected 14084.280705\n    test 39 DistanceVersaillesToEiffel: 14084.300096  FAILED, KNOWN, expected 14084.280705\n    test 40 InitialBearingEiffelToVersailles: 245.13460297\n    test 41 InitialBearingEiffelToVersailles(DMS): 245°08′04.5707″\n    test 42 InitialBearingVersaillesToEiffel: 65.003253951\n    test 43 InitialBearingVersaillesToEiffel(DMS): 65°00′11.7142″\n    test 44 FinalBearingEiffelToVersailles: 245.00325395\n    test 45 FinalBearingEiffelToVersailles(DMS): 245°00′11.7142″\n    test 46 FinalBearingVersaillesToEiffel: 65.134602969\n    test 47 FinalBearingVersaillesToEiffel(DMS): 65°08′04.5707″\n    test 48 GenerateLocationVersailles: 48.804766°N, 002.120339°E\n    test 49 GenerateLocationEiffel: 48.858158°N, 002.294825°E\n    test 50 MidpointEiffelToVersailles: 48.831495°N, 002.207536°E\n    test 51 MidpointEiffelToVersailles(DMS): 48°49′53.3817″N, 002°12′27.1279″E\n    test 52 MidpointEiffelToVersailles(m): 7042.15004788  FAILED, KNOWN, expected 7042.15974330\n    test 53 MidpointVersaillesToEiffel: 48.831495°N, 002.207536°E  FAILED, KNOWN, expected 48.831495°N, 002.207535°E\n    test 54 MidpointVersaillesToEiffel(DMS): 48°49′53.3817″N, 002°12′27.1279″E\n    test 55 MidpointVersaillesToEiffel(m): 7042.15004788  FAILED, KNOWN, expected 7042.15974330\n    test 56 Intersection: 48.83569095°N, 002.221252031°E\n    test 57 Intersection: 48.8356909498836°N, 002.2212520313074°E\n    test 58 CrossTrackDistance200m+90°: 200.0\n    test 59 CrossTrackDistance200m+270°: -200.0\n    test 60 CrossTrackDistanceCloseToZero: 0.0000000\n\n    10 of 60 testGreatCircle.py tests (16.7%) FAILED, ALL KNOWN (pygeodesy 26.3.26 Python 3.11.9 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 1.24.2 scipy 1.10.1 Math 2 macOS 26.3.1 isLazy 0 -W  default) 25.285 ms\nrunning /usr/local/bin/p....n3.11 -W default ~/PyGeodesy/test/testHausdorff.py\n./pygeodesy/hausdorff.py:605: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  self._func = self.datum.ellipsoid.geodesic.Inverse1\n./pygeodesy/ellipsoidalKarney.py:94: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return self.datum.ellipsoid.geodesic\n\n    testing testHausdorff.py 24.12.31\n    test 1 randomrange[0]: ()\n    test 2 randomrange[1]: (0,)\n    test 3 randomrange[2]: (0, 1)\n    test 4 randomrange[8]: (1, 4, 2, 6, 0, 3, 5, 7)\n    test 5 randomrange[32]: (11, 6, 30, 28, 21, 9, 13, 26, 4, 29, 8, 27, 31, 15, 1, 24, 0, 25, 22, 2, 20, 17, 3, 23, 12, 19, 18, 14, 7, 10, 16, 5)\n    test 6 randomrange[128]: (122, 62, 14, 24, 65, 57, 75, 84, 42, 32, 82, 43, 13, 34, 53, 104, 71, 22, 76, 15, 108, 113, 52, 79, 112, 54, 90, 106, 10, 87, 115, 123, 119, 120, 48, 61, 39, 19, 31, 94, 124, 98, 96, 3, 101, 25, 118, 30, 99, 105, 92, 66, 126, 114, 23, 117, 72, 67, 73, 64, 68, 50, 5, 74, 51, 9, 17, 21, 80, 95, 41, 37, 2, 11, 55, 127, 38, 85, 81, 109, 36, 121, 6, 102, 12, 1, 93, 91, 83, 16, 116, 103, 70, 56, 89, 35, 88, 86, 27, 20, 44, 110, 63, 28, 8, 4, 18, 45, 78, 100, 60, 125, 58, 33, 0, 7, 40, 59, 46, 69, 26, 77, 107, 47, 49, 97, 111, 29)\n    test 7 HausdorffDegrees_ (degrees): (40.0, 22, 6, 90, 18.16111)\n    test 8 HausdorffDegrees_ (degrees): (48.0, 38, 36, 150, 17.30667)\n    test 9 HausdorffDegrees_ (degrees): (40.0, 22, 6, 90, 18.16111)\n    test 10 HausdorffDegrees_ (degrees): (48.0, 38, 36, 150, 17.30667)\n    test 11 HausdorffDegrees_ (degrees): (40.0, 22, 6, 90, None)\n    test 12 HausdorffDegrees_ (degrees): (48.0, 38, 36, 150, None)\n    test 13 HausdorffDegrees_ (degrees): (40.0, 22, 6, 90, None)\n    test 14 HausdorffDegrees_ (degrees): (48.0, 38, 36, 150, None)\n    test 15 copy(<class 'type'>): (<class '__main__.HausdorffDegrees_'>, True)\n    test 16 HausdorffDegrees_.copy(): (<class '__main__.HausdorffDegrees_'>, True)\n    test 17 HausdorffRadians_ (radians): (0.69813, 22, 6, 90, 0.31697)\n    test 18 HausdorffRadians_ (radians): (0.83776, 38, 36, 150, 0.30206)\n    test 19 HausdorffRadians_ (radians): (0.69813, 22, 6, 90, 0.31697)\n    test 20 HausdorffRadians_ (radians): (0.83776, 38, 36, 150, 0.30206)\n    test 21 HausdorffRadians_ (radians): (0.69813, 22, 6, 90, None)\n    test 22 HausdorffRadians_ (radians): (0.83776, 38, 36, 150, None)\n    test 23 HausdorffRadians_ (radians): (0.69813, 22, 6, 90, None)\n    test 24 HausdorffRadians_ (radians): (0.83776, 38, 36, 150, None)\n    test 25 copy(<class 'type'>): (<class '__main__.HausdorffRadians_'>, True)\n    test 26 HausdorffRadians_.copy(): (<class '__main__.HausdorffRadians_'>, True)\n    test 27 HausdorffCosineLaw (meter): (0.50097, 35, 3, 90, 0.212)\n    test 28 HausdorffCosineLaw (meter): (0.50097, 35, 3, 150, 0.20099)\n    test 29 HausdorffCosineLaw (meter): (0.50097, 35, 3, 90, 0.212)\n    test 30 HausdorffCosineLaw (meter): (0.50097, 35, 3, 150, 0.20099)\n    test 31 HausdorffCosineLaw (meter): (0.50097, 35, 3, 90, None)\n    test 32 HausdorffCosineLaw (meter): (0.50097, 35, 3, 150, None)\n    test 33 HausdorffCosineLaw (meter): (0.50097, 35, 3, 90, None)\n    test 34 HausdorffCosineLaw (meter): (0.50097, 35, 3, 150, None)\n    test 35 copy(<class 'type'>): (<class 'pygeodesy.hausdorff.HausdorffCosineLaw'>, True)\n    test 36 HausdorffCosineLaw.copy(): (<class 'pygeodesy.hausdorff.HausdorffCosineLaw'>, True)\n    test 37 HausdorffCosineLaw (meter): (0.501, 35, 3, 90, 0.21184)\n    test 38 HausdorffCosineLaw (meter): (0.501, 35, 3, 150, 0.20084)\n    test 39 HausdorffCosineLaw (meter): (0.501, 35, 3, 90, 0.21184)\n    test 40 HausdorffCosineLaw (meter): (0.501, 35, 3, 150, 0.20084)\n    test 41 HausdorffCosineLaw (meter): (0.501, 35, 3, 90, None)\n    test 42 HausdorffCosineLaw (meter): (0.501, 35, 3, 150, None)\n    test 43 HausdorffCosineLaw (meter): (0.501, 35, 3, 90, None)\n    test 44 HausdorffCosineLaw (meter): (0.501, 35, 3, 150, None)\n    test 45 copy(<class 'type'>): (<class 'pygeodesy.hausdorff.HausdorffCosineLaw'>, True)\n    test 46 HausdorffCosineLaw.copy(): (<class 'pygeodesy.hausdorff.HausdorffCosineLaw'>, True)\n    test 47 HausdorffCosineLaw (meter): (0.501, 35, 3, 90, 0.21184)\n    test 48 HausdorffCosineLaw (meter): (0.501, 35, 3, 150, 0.20084)\n    test 49 HausdorffCosineLaw (meter): (0.501, 35, 3, 90, 0.21184)\n    test 50 HausdorffCosineLaw (meter): (0.501, 35, 3, 150, 0.20084)\n    test 51 HausdorffCosineLaw (meter): (0.501, 35, 3, 90, None)\n    test 52 HausdorffCosineLaw (meter): (0.501, 35, 3, 150, None)\n    test 53 HausdorffCosineLaw (meter): (0.501, 35, 3, 90, None)\n    test 54 HausdorffCosineLaw (meter): (0.501, 35, 3, 150, None)\n    test 55 copy(<class 'type'>): (<class 'pygeodesy.hausdorff.HausdorffCosineLaw'>, True)\n    test 56 HausdorffCosineLaw.copy(): (<class 'pygeodesy.hausdorff.HausdorffCosineLaw'>, True)\n    test 57 HausdorffEquirectangular (degrees2): (0.25113, 35, 3, 90, 0.05965)\n    test 58 HausdorffEquirectangular (degrees2): (0.25113, 35, 3, 150, 0.05532)\n    test 59 HausdorffEquirectangular (degrees2): (0.25113, 35, 3, 90, 0.05965)\n    test 60 HausdorffEquirectangular (degrees2): (0.25113, 35, 3, 150, 0.05532)\n    test 61 HausdorffEquirectangular (degrees2): (0.25113, 35, 3, 90, None)\n    test 62 HausdorffEquirectangular (degrees2): (0.25113, 35, 3, 150, None)\n    test 63 HausdorffEquirectangular (degrees2): (0.25113, 35, 3, 90, None)\n    test 64 HausdorffEquirectangular (degrees2): (0.25113, 35, 3, 150, None)\n    test 65 copy(<class 'type'>): (<class 'pygeodesy.hausdorff.HausdorffEquirectangular'>, True)\n    test 66 HausdorffEquirectangular.copy(): (<class 'pygeodesy.hausdorff.HausdorffEquirectangular'>, True)\n    test 67 HausdorffEuclidean (meter): (0.52803, 56, 51, 90, 0.22571)\n    test 68 HausdorffEuclidean (meter): (0.52803, 56, 51, 150, 0.21579)\n    test 69 HausdorffEuclidean (meter): (0.52803, 56, 51, 90, 0.22571)\n    test 70 HausdorffEuclidean (meter): (0.52803, 56, 51, 150, 0.21579)\n    test 71 HausdorffEuclidean (meter): (0.52803, 56, 51, 90, None)\n    test 72 HausdorffEuclidean (meter): (0.52803, 56, 51, 150, None)\n    test 73 HausdorffEuclidean (meter): (0.52803, 56, 51, 90, None)\n    test 74 HausdorffEuclidean (meter): (0.52803, 56, 51, 150, None)\n    test 75 copy(<class 'type'>): (<class 'pygeodesy.hausdorff.HausdorffEuclidean'>, True)\n    test 76 HausdorffEuclidean.copy(): (<class 'pygeodesy.hausdorff.HausdorffEuclidean'>, True)\n    test 77 HausdorffFlatLocal (radians2): (0.25116, 35, 3, 90, 0.05951)\n    test 78 HausdorffFlatLocal (radians2): (0.25116, 35, 3, 150, 0.0552)\n    test 79 HausdorffFlatLocal (radians2): (0.25116, 35, 3, 90, 0.05951)\n    test 80 HausdorffFlatLocal (radians2): (0.25116, 35, 3, 150, 0.0552)\n    test 81 HausdorffFlatLocal (radians2): (0.25116, 35, 3, 90, None)\n    test 82 HausdorffFlatLocal (radians2): (0.25116, 35, 3, 150, None)\n    test 83 HausdorffFlatLocal (radians2): (0.25116, 35, 3, 90, None)\n    test 84 HausdorffFlatLocal (radians2): (0.25116, 35, 3, 150, None)\n    test 85 copy(<class 'type'>): (<class 'pygeodesy.hausdorff.HausdorffFlatLocal'>, True)\n    test 86 HausdorffFlatLocal.copy(): (<class 'pygeodesy.hausdorff.HausdorffFlatLocal'>, True)\n    test 87 HausdorffFlatPolar (meter): (0.69043, 4, 31, 90, 0.22286)\n    test 88 HausdorffFlatPolar (meter): (0.69043, 4, 31, 150, 0.21318)\n    test 89 HausdorffFlatPolar (meter): (0.69043, 4, 31, 90, 0.22286)\n    test 90 HausdorffFlatPolar (meter): (0.69043, 4, 31, 150, 0.21318)\n    test 91 HausdorffFlatPolar (meter): (0.69043, 4, 31, 90, None)\n    test 92 HausdorffFlatPolar (meter): (0.69043, 4, 31, 150, None)\n    test 93 HausdorffFlatPolar (meter): (0.69043, 4, 31, 90, None)\n    test 94 HausdorffFlatPolar (meter): (0.69043, 4, 31, 150, None)\n    test 95 copy(<class 'type'>): (<class 'pygeodesy.hausdorff.HausdorffFlatPolar'>, True)\n    test 96 HausdorffFlatPolar.copy(): (<class 'pygeodesy.hausdorff.HausdorffFlatPolar'>, True)\n    test 97 HausdorffHaversine (meter): (0.50097, 35, 3, 90, 0.212)\n    test 98 HausdorffHaversine (meter): (0.50097, 35, 3, 150, 0.20099)\n    test 99 HausdorffHaversine (meter): (0.50097, 35, 3, 90, 0.212)\n    test 100 HausdorffHaversine (meter): (0.50097, 35, 3, 150, 0.20099)\n    test 101 HausdorffHaversine (meter): (0.50097, 35, 3, 90, None)\n    test 102 HausdorffHaversine (meter): (0.50097, 35, 3, 150, None)\n    test 103 HausdorffHaversine (meter): (0.50097, 35, 3, 90, None)\n    test 104 HausdorffHaversine (meter): (0.50097, 35, 3, 150, None)\n    test 105 copy(<class 'type'>): (<class 'pygeodesy.hausdorff.HausdorffHaversine'>, True)\n    test 106 HausdorffHaversine.copy(): (<class 'pygeodesy.hausdorff.HausdorffHaversine'>, True)\n    test 107 HausdorffHubeny (radians2): (0.25116, 35, 3, 90, 0.05951)\n    test 108 HausdorffHubeny (radians2): (0.25116, 35, 3, 150, 0.0552)\n    test 109 HausdorffHubeny (radians2): (0.25116, 35, 3, 90, 0.05951)\n    test 110 HausdorffHubeny (radians2): (0.25116, 35, 3, 150, 0.0552)\n    test 111 HausdorffHubeny (radians2): (0.25116, 35, 3, 90, None)\n    test 112 HausdorffHubeny (radians2): (0.25116, 35, 3, 150, None)\n    test 113 HausdorffHubeny (radians2): (0.25116, 35, 3, 90, None)\n    test 114 HausdorffHubeny (radians2): (0.25116, 35, 3, 150, None)\n    test 115 copy(<class 'type'>): (<class 'pygeodesy.hausdorff.HausdorffHubeny'>, True)\n    test 116 HausdorffHubeny.copy(): (<class 'pygeodesy.hausdorff.HausdorffHubeny'>, True)\n    test 117 HausdorffThomas (meter): (0.501, 35, 3, 90, 0.21184)\n    test 118 HausdorffThomas (meter): (0.501, 35, 3, 150, 0.20084)\n    test 119 HausdorffThomas (meter): (0.501, 35, 3, 90, 0.21184)\n    test 120 HausdorffThomas (meter): (0.501, 35, 3, 150, 0.20084)\n    test 121 HausdorffThomas (meter): (0.501, 35, 3, 90, None)\n    test 122 HausdorffThomas (meter): (0.501, 35, 3, 150, None)\n    test 123 HausdorffThomas (meter): (0.501, 35, 3, 90, None)\n    test 124 HausdorffThomas (meter): (0.501, 35, 3, 150, None)\n    test 125 copy(<class 'type'>): (<class 'pygeodesy.hausdorff.HausdorffThomas'>, True)\n    test 126 HausdorffThomas.copy(): (<class 'pygeodesy.hausdorff.HausdorffThomas'>, True)\n    test 127 HausdorffVincentys (meter): (0.50097, 35, 3, 90, 0.212)\n    test 128 HausdorffVincentys (meter): (0.50097, 35, 3, 150, 0.20099)\n    test 129 HausdorffVincentys (meter): (0.50097, 35, 3, 90, 0.212)\n    test 130 HausdorffVincentys (meter): (0.50097, 35, 3, 150, 0.20099)\n    test 131 HausdorffVincentys (meter): (0.50097, 35, 3, 90, None)\n    test 132 HausdorffVincentys (meter): (0.50097, 35, 3, 150, None)\n    test 133 HausdorffVincentys (meter): (0.50097, 35, 3, 90, None)\n    test 134 HausdorffVincentys (meter): (0.50097, 35, 3, 150, None)\n    test 135 copy(<class 'type'>): (<class 'pygeodesy.hausdorff.HausdorffVincentys'>, True)\n    test 136 HausdorffVincentys.copy(): (<class 'pygeodesy.hausdorff.HausdorffVincentys'>, True)\n    test 137 HausdorffKarney (degrees): (28.79903, 35, 3, 90, 12.16138)\n    test 138 HausdorffKarney (degrees): (28.79903, 35, 3, 150, 11.53021)\n    test 139 HausdorffKarney (degrees): (28.79903, 35, 3, 90, 12.16138)\n    test 140 HausdorffKarney (degrees): (28.79903, 35, 3, 150, 11.53021)\n    test 141 HausdorffKarney (degrees): (28.79903, 35, 3, 90, None)\n    test 142 HausdorffKarney (degrees): (28.79903, 35, 3, 150, None)\n    test 143 HausdorffKarney (degrees): (28.79903, 35, 3, 90, None)\n    test 144 HausdorffKarney (degrees): (28.79903, 35, 3, 150, None)\n    test 145 copy(<class 'type'>): (<class 'pygeodesy.hausdorff.HausdorffKarney'>, True)\n    test 146 HausdorffKarney.copy(): (<class 'pygeodesy.hausdorff.HausdorffKarney'>, True)\n    test 147 hausdorff_: (40.0, 22, 6, 90, 18.16111)\n    test 148 hausdorff_: (48.0, 38, 36, 150, 17.30667)\n    test 149 hausdorff_: (40.0, 22, 6, 90, 18.16111)\n    test 150 hausdorff_: (48.0, 38, 36, 150, 17.30667)\n    test 151 hausdorff_: (40.0, 22, 6, 90, None)\n    test 152 hausdorff_: (48.0, 38, 36, 150, None)\n    test 153 hausdorff_: (40.0, 22, 6, 90, None)\n    test 154 hausdorff_: (48.0, 38, 36, 150, None)\n    test 155 HausdorffDistanceTo (meter): (3195418.34044, 35, 3, 90, 1351164.35982)  FAILED, KNOWN, expected (3195418.34044, 35, 3, 90, 1351164.35981)\n    test 156 HausdorffDistanceTo (meter): (3195418.34044, 35, 3, 150, 1280992.80341)\n    test 157 HausdorffDistanceTo (meter): (3195418.34044, 35, 3, 90, 1351164.35982)  FAILED, KNOWN, expected (3195418.34044, 35, 3, 90, 1351164.35981)\n    test 158 HausdorffDistanceTo (meter): (3195418.34044, 35, 3, 150, 1280992.80341)\n    test 159 HausdorffDistanceTo (meter): (3195418.34044, 35, 3, 90, None)\n    test 160 HausdorffDistanceTo (meter): (3195418.34044, 35, 3, 150, None)\n    test 161 HausdorffDistanceTo (meter): (3195418.34044, 35, 3, 90, None)\n    test 162 HausdorffDistanceTo (meter): (3195418.34044, 35, 3, 150, None)\n    test 163 copy(<class 'type'>): (<class 'pygeodesy.hausdorff.HausdorffDistanceTo'>, True)\n    test 164 HausdorffDistanceTo.copy(): (<class 'pygeodesy.hausdorff.HausdorffDistanceTo'>, True)\n    test 165 HausdorffDistanceTo (meter): (3195418.34044, 35, 3, 90, 1351164.35981)\n    test 166 HausdorffDistanceTo (meter): (3195418.34044, 35, 3, 150, 1280992.80341)\n    test 167 HausdorffDistanceTo (meter): (3195418.34044, 35, 3, 90, 1351164.35981)\n    test 168 HausdorffDistanceTo (meter): (3195418.34044, 35, 3, 150, 1280992.80341)\n    test 169 HausdorffDistanceTo (meter): (3195418.34044, 35, 3, 90, None)\n    test 170 HausdorffDistanceTo (meter): (3195418.34044, 35, 3, 150, None)\n    test 171 HausdorffDistanceTo (meter): (3195418.34044, 35, 3, 90, None)\n    test 172 HausdorffDistanceTo (meter): (3195418.34044, 35, 3, 150, None)\n    test 173 copy(<class 'type'>): (<class 'pygeodesy.hausdorff.HausdorffDistanceTo'>, True)\n    test 174 HausdorffDistanceTo.copy(): (<class 'pygeodesy.hausdorff.HausdorffDistanceTo'>, True)\n    test 175 HausdorffDistanceTo (meter): (3191685.70841, 35, 3, 90, 1350684.04012)\n    test 176 HausdorffDistanceTo (meter): (3191685.70841, 35, 3, 150, 1280478.58707)\n    test 177 HausdorffDistanceTo (meter): (3191685.70841, 35, 3, 90, 1350684.04012)\n    test 178 HausdorffDistanceTo (meter): (3191685.70841, 35, 3, 150, 1280478.58707)\n    test 179 HausdorffDistanceTo (meter): (3191685.70841, 35, 3, 90, None)\n    test 180 HausdorffDistanceTo (meter): (3191685.70841, 35, 3, 150, None)\n    test 181 HausdorffDistanceTo (meter): (3191685.70841, 35, 3, 90, None)\n    test 182 HausdorffDistanceTo (meter): (3191685.70841, 35, 3, 150, None)\n    test 183 copy(<class 'type'>): (<class 'pygeodesy.hausdorff.HausdorffDistanceTo'>, True)\n    test 184 HausdorffDistanceTo.copy(): (<class 'pygeodesy.hausdorff.HausdorffDistanceTo'>, True)\n    test 185 HausdorffDistanceTo (meter): (3191685.70841, 35, 3, 90, 1350684.04012)\n    test 186 HausdorffDistanceTo (meter): (3191685.70841, 35, 3, 150, 1280478.58707)\n    test 187 HausdorffDistanceTo (meter): (3191685.70841, 35, 3, 90, 1350684.04012)\n    test 188 HausdorffDistanceTo (meter): (3191685.70841, 35, 3, 150, 1280478.58707)\n    test 189 HausdorffDistanceTo (meter): (3191685.70841, 35, 3, 90, None)\n    test 190 HausdorffDistanceTo (meter): (3191685.70841, 35, 3, 150, None)\n    test 191 HausdorffDistanceTo (meter): (3191685.70841, 35, 3, 90, None)\n    test 192 HausdorffDistanceTo (meter): (3191685.70841, 35, 3, 150, None)\n    test 193 copy(<class 'type'>): (<class 'pygeodesy.hausdorff.HausdorffDistanceTo'>, True)\n    test 194 HausdorffDistanceTo.copy(): (<class 'pygeodesy.hausdorff.HausdorffDistanceTo'>, True)\n    test 195 HausdorffDistanceTo (meter): (3191685.70841, 35, 3, 90, 1350684.04012)\n    test 196 HausdorffDistanceTo (meter): (3191685.70841, 35, 3, 150, 1280478.58707)\n    test 197 HausdorffDistanceTo (meter): (3191685.70841, 35, 3, 90, 1350684.04012)\n    test 198 HausdorffDistanceTo (meter): (3191685.70841, 35, 3, 150, 1280478.58707)\n    test 199 HausdorffDistanceTo (meter): (3191685.70841, 35, 3, 90, None)\n    test 200 HausdorffDistanceTo (meter): (3191685.70841, 35, 3, 150, None)\n    test 201 HausdorffDistanceTo (meter): (3191685.70841, 35, 3, 90, None)\n    test 202 HausdorffDistanceTo (meter): (3191685.70841, 35, 3, 150, None)\n    test 203 copy(<class 'type'>): (<class 'pygeodesy.hausdorff.HausdorffDistanceTo'>, True)\n    test 204 HausdorffDistanceTo.copy(): (<class 'pygeodesy.hausdorff.HausdorffDistanceTo'>, True)\n\n    156 of 204 testHausdorff.py tests (76.5%) FAILED, incl. 2 KNOWN plus 154 DeprecationWarnings (pygeodesy 26.3.26 Python 3.11.9 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 1.24.2 scipy 1.10.1 Math 2 macOS 26.3.1 isLazy 0 -W  default) 93.104 sec\nrunning /usr/local/bin/p....n3.11 -W default ~/PyGeodesy/test/testHeights.py\n\n    testing testHeights.py 24.12.31\n\n    test 1 HeightIDWcosineLaw(wrap=True): 6.108538037\n    test 2 HeightIDWcosineLaw(float): <class 'float'>\n    test 3 HeightIDWcosineLaw(latlon): True\n    test 4 HeightIDWcosineLaw_(tuple): True\n    test 5 HeightIDWcosineLaw(wrap=True): 5.0\n    test 6 HeightIDWcosineLaw(float): <class 'float'>\n    test 7 HeightIDWcosineLaw(latlon): True\n    test 8 HeightIDWcosineLaw(wrap=True): (6.108538037, 5.0,)\n    test 9 HeightIDWcosineLaw(tuple): <class 'tuple'>\n    test 10 HeightIDWcosineLaw(tuple-float): <class 'float'>\n    test 11 HeightIDWcosineLaw(tuple-float): <class 'float'>\n    test 12 HeightIDWcosineLaw(wrap=True): [6.108538037, 5.0]\n    test 13 HeightIDWcosineLaw(list: <class 'list'>\n    test 14 HeightIDWcosineLaw(list-float): <class 'float'>\n    test 15 HeightIDWcosineLaw(list-float): <class 'float'>\n    test 16 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWcosineLaw'>, True)\n    test 17 HeightIDWcosineLaw.copy(): (<class 'pygeodesy.heights.HeightIDWcosineLaw'>, True)\n    test 18 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 19 HeightIDWcosineLaw.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 20 HeightIDWcosineLaw.kmin: 2\n    test 21 HeightIDWcosineLaw.wrap: True\n    test 22 HeightIDWcosineLaw.beta: 2\n    test 23 HeightIDWcosineLaw.adjust: None\n    test 24 HeightIDWcosineLaw.beta: 2\n    test 25 HeightIDWcosineLaw.kmin: 2\n    test 26 HeightIDWcosineLaw.wrap: True\n\n    test 27 HeightIDWcosineLaw(wrap=False): 6.108538037\n    test 28 HeightIDWcosineLaw(float): <class 'float'>\n    test 29 HeightIDWcosineLaw(latlon): True\n    test 30 HeightIDWcosineLaw_(tuple): True\n    test 31 HeightIDWcosineLaw(wrap=False): 5.0\n    test 32 HeightIDWcosineLaw(float): <class 'float'>\n    test 33 HeightIDWcosineLaw(latlon): True\n    test 34 HeightIDWcosineLaw(wrap=False): (6.108538037, 5.0,)\n    test 35 HeightIDWcosineLaw(tuple): <class 'tuple'>\n    test 36 HeightIDWcosineLaw(tuple-float): <class 'float'>\n    test 37 HeightIDWcosineLaw(tuple-float): <class 'float'>\n    test 38 HeightIDWcosineLaw(wrap=False): [6.108538037, 5.0]\n    test 39 HeightIDWcosineLaw(list: <class 'list'>\n    test 40 HeightIDWcosineLaw(list-float): <class 'float'>\n    test 41 HeightIDWcosineLaw(list-float): <class 'float'>\n    test 42 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWcosineLaw'>, True)\n    test 43 HeightIDWcosineLaw.copy(): (<class 'pygeodesy.heights.HeightIDWcosineLaw'>, True)\n    test 44 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 45 HeightIDWcosineLaw.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 46 HeightIDWcosineLaw.kmin: 2\n    test 47 HeightIDWcosineLaw.wrap: False\n    test 48 HeightIDWcosineLaw.beta: 2\n    test 49 HeightIDWcosineLaw.adjust: None\n    test 50 HeightIDWcosineLaw.beta: 2\n    test 51 HeightIDWcosineLaw.kmin: 2\n    test 52 HeightIDWcosineLaw.wrap: False\n\n    test 53 HeightIDWcosineLaw(corr=1, wrap=False): 6.111157919\n    test 54 HeightIDWcosineLaw(float): <class 'float'>\n    test 55 HeightIDWcosineLaw(latlon): True\n    test 56 HeightIDWcosineLaw_(tuple): True\n    test 57 HeightIDWcosineLaw(corr=1, wrap=False): 5.0\n    test 58 HeightIDWcosineLaw(float): <class 'float'>\n    test 59 HeightIDWcosineLaw(latlon): True\n    test 60 HeightIDWcosineLaw(corr=1, wrap=False): (6.111157919, 5.0,)\n    test 61 HeightIDWcosineLaw(tuple): <class 'tuple'>\n    test 62 HeightIDWcosineLaw(tuple-float): <class 'float'>\n    test 63 HeightIDWcosineLaw(tuple-float): <class 'float'>\n    test 64 HeightIDWcosineLaw(corr=1, wrap=False): [6.111157919, 5.0]\n    test 65 HeightIDWcosineLaw(list: <class 'list'>\n    test 66 HeightIDWcosineLaw(list-float): <class 'float'>\n    test 67 HeightIDWcosineLaw(list-float): <class 'float'>\n    test 68 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWcosineLaw'>, True)\n    test 69 HeightIDWcosineLaw.copy(): (<class 'pygeodesy.heights.HeightIDWcosineLaw'>, True)\n    test 70 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 71 HeightIDWcosineLaw.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 72 HeightIDWcosineLaw.kmin: 2\n    test 73 HeightIDWcosineLaw.wrap: False\n    test 74 HeightIDWcosineLaw.beta: 2\n    test 75 HeightIDWcosineLaw.adjust: None\n    test 76 HeightIDWcosineLaw.beta: 2\n    test 77 HeightIDWcosineLaw.kmin: 2\n    test 78 HeightIDWcosineLaw.wrap: False\n\n    test 79 HeightIDWcosineLaw(corr=2, wrap=False): 6.111158354\n    test 80 HeightIDWcosineLaw(float): <class 'float'>\n    test 81 HeightIDWcosineLaw(latlon): True\n    test 82 HeightIDWcosineLaw_(tuple): True\n    test 83 HeightIDWcosineLaw(corr=2, wrap=False): 5.0\n    test 84 HeightIDWcosineLaw(float): <class 'float'>\n    test 85 HeightIDWcosineLaw(latlon): True\n    test 86 HeightIDWcosineLaw(corr=2, wrap=False): (6.111158354, 5.0,)\n    test 87 HeightIDWcosineLaw(tuple): <class 'tuple'>\n    test 88 HeightIDWcosineLaw(tuple-float): <class 'float'>\n    test 89 HeightIDWcosineLaw(tuple-float): <class 'float'>\n    test 90 HeightIDWcosineLaw(corr=2, wrap=False): [6.111158354, 5.0]\n    test 91 HeightIDWcosineLaw(list: <class 'list'>\n    test 92 HeightIDWcosineLaw(list-float): <class 'float'>\n    test 93 HeightIDWcosineLaw(list-float): <class 'float'>\n    test 94 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWcosineLaw'>, True)\n    test 95 HeightIDWcosineLaw.copy(): (<class 'pygeodesy.heights.HeightIDWcosineLaw'>, True)\n    test 96 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 97 HeightIDWcosineLaw.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 98 HeightIDWcosineLaw.kmin: 2\n    test 99 HeightIDWcosineLaw.wrap: False\n    test 100 HeightIDWcosineLaw.beta: 2\n    test 101 HeightIDWcosineLaw.adjust: None\n    test 102 HeightIDWcosineLaw.beta: 2\n    test 103 HeightIDWcosineLaw.kmin: 2\n    test 104 HeightIDWcosineLaw.wrap: False\n\n    test 105 HeightIDWdistanceTo(): 6.108538037\n    test 106 HeightIDWdistanceTo(float): <class 'float'>\n    test 107 HeightIDWdistanceTo(latlon): True\n    test 108 HeightIDWdistanceTo_(tuple): True\n    test 109 HeightIDWdistanceTo(): 5.0\n    test 110 HeightIDWdistanceTo(float): <class 'float'>\n    test 111 HeightIDWdistanceTo(latlon): True\n    test 112 HeightIDWdistanceTo(): (6.108538037, 5.0,)\n    test 113 HeightIDWdistanceTo(tuple): <class 'tuple'>\n    test 114 HeightIDWdistanceTo(tuple-float): <class 'float'>\n    test 115 HeightIDWdistanceTo(tuple-float): <class 'float'>\n    test 116 HeightIDWdistanceTo(): [6.108538037, 5.0]\n    test 117 HeightIDWdistanceTo(list: <class 'list'>\n    test 118 HeightIDWdistanceTo(list-float): <class 'float'>\n    test 119 HeightIDWdistanceTo(list-float): <class 'float'>\n    test 120 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWdistanceTo'>, True)\n    test 121 HeightIDWdistanceTo.copy(): (<class 'pygeodesy.heights.HeightIDWdistanceTo'>, True)\n    test 122 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 123 HeightIDWdistanceTo.datum: name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84\n    test 124 HeightIDWdistanceTo.kmin: 2\n    test 125 HeightIDWdistanceTo.wrap: None\n    test 126 HeightIDWdistanceTo.beta: 2\n    test 127 HeightIDWdistanceTo.adjust: None\n    test 128 HeightIDWdistanceTo.beta: 2\n    test 129 HeightIDWdistanceTo.kmin: 2\n    test 130 HeightIDWdistanceTo.wrap: None\n\n    test 131 HeightIDWequirectangular(adjust=True, wrap=True): 6.860459007\n    test 132 HeightIDWequirectangular(float): <class 'float'>\n    test 133 HeightIDWequirectangular(latlon): True\n    test 134 HeightIDWequirectangular_(tuple): True\n    test 135 HeightIDWequirectangular(adjust=True, wrap=True): 5.0\n    test 136 HeightIDWequirectangular(float): <class 'float'>\n    test 137 HeightIDWequirectangular(latlon): True\n    test 138 HeightIDWequirectangular(adjust=True, wrap=True): (6.860459007, 5.0,)\n    test 139 HeightIDWequirectangular(tuple): <class 'tuple'>\n    test 140 HeightIDWequirectangular(tuple-float): <class 'float'>\n    test 141 HeightIDWequirectangular(tuple-float): <class 'float'>\n    test 142 HeightIDWequirectangular(adjust=True, wrap=True): [6.860459007, 5.0]\n    test 143 HeightIDWequirectangular(list: <class 'list'>\n    test 144 HeightIDWequirectangular(list-float): <class 'float'>\n    test 145 HeightIDWequirectangular(list-float): <class 'float'>\n    test 146 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWequirectangular'>, True)\n    test 147 HeightIDWequirectangular.copy(): (<class 'pygeodesy.heights.HeightIDWequirectangular'>, True)\n    test 148 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 149 HeightIDWequirectangular.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 150 HeightIDWequirectangular.kmin: 2\n    test 151 HeightIDWequirectangular.wrap: True\n    test 152 HeightIDWequirectangular.beta: 2\n    test 153 HeightIDWequirectangular.adjust: True\n    test 154 HeightIDWequirectangular.beta: 2\n    test 155 HeightIDWequirectangular.kmin: 2\n    test 156 HeightIDWequirectangular.wrap: True\n\n    test 157 HeightIDWequirectangular(adjust=False, wrap=True): 6.860498092\n    test 158 HeightIDWequirectangular(float): <class 'float'>\n    test 159 HeightIDWequirectangular(latlon): True\n    test 160 HeightIDWequirectangular_(tuple): True\n    test 161 HeightIDWequirectangular(adjust=False, wrap=True): 5.0\n    test 162 HeightIDWequirectangular(float): <class 'float'>\n    test 163 HeightIDWequirectangular(latlon): True\n    test 164 HeightIDWequirectangular(adjust=False, wrap=True): (6.860498092, 5.0,)\n    test 165 HeightIDWequirectangular(tuple): <class 'tuple'>\n    test 166 HeightIDWequirectangular(tuple-float): <class 'float'>\n    test 167 HeightIDWequirectangular(tuple-float): <class 'float'>\n    test 168 HeightIDWequirectangular(adjust=False, wrap=True): [6.860498092, 5.0]\n    test 169 HeightIDWequirectangular(list: <class 'list'>\n    test 170 HeightIDWequirectangular(list-float): <class 'float'>\n    test 171 HeightIDWequirectangular(list-float): <class 'float'>\n    test 172 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWequirectangular'>, True)\n    test 173 HeightIDWequirectangular.copy(): (<class 'pygeodesy.heights.HeightIDWequirectangular'>, True)\n    test 174 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 175 HeightIDWequirectangular.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 176 HeightIDWequirectangular.kmin: 2\n    test 177 HeightIDWequirectangular.wrap: True\n    test 178 HeightIDWequirectangular.beta: 2\n    test 179 HeightIDWequirectangular.adjust: False\n    test 180 HeightIDWequirectangular.beta: 2\n    test 181 HeightIDWequirectangular.kmin: 2\n    test 182 HeightIDWequirectangular.wrap: True\n\n    test 183 HeightIDWeuclidean(): 6.142945781\n    test 184 HeightIDWeuclidean(float): <class 'float'>\n    test 185 HeightIDWeuclidean(latlon): True\n    test 186 HeightIDWeuclidean_(tuple): True\n    test 187 HeightIDWeuclidean(): 5.0\n    test 188 HeightIDWeuclidean(float): <class 'float'>\n    test 189 HeightIDWeuclidean(latlon): True\n    test 190 HeightIDWeuclidean(): (6.142945781, 5.0,)\n    test 191 HeightIDWeuclidean(tuple): <class 'tuple'>\n    test 192 HeightIDWeuclidean(tuple-float): <class 'float'>\n    test 193 HeightIDWeuclidean(tuple-float): <class 'float'>\n    test 194 HeightIDWeuclidean(): [6.142945781, 5.0]\n    test 195 HeightIDWeuclidean(list: <class 'list'>\n    test 196 HeightIDWeuclidean(list-float): <class 'float'>\n    test 197 HeightIDWeuclidean(list-float): <class 'float'>\n    test 198 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWeuclidean'>, True)\n    test 199 HeightIDWeuclidean.copy(): (<class 'pygeodesy.heights.HeightIDWeuclidean'>, True)\n    test 200 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 201 HeightIDWeuclidean.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 202 HeightIDWeuclidean.kmin: 2\n    test 203 HeightIDWeuclidean.wrap: None\n    test 204 HeightIDWeuclidean.beta: 2\n    test 205 HeightIDWeuclidean.adjust: None\n    test 206 HeightIDWeuclidean.beta: 2\n    test 207 HeightIDWeuclidean.kmin: 2\n    test 208 HeightIDWeuclidean.wrap: None\n\n    test 209 HeightIDWexact(): 6.108538037\n    test 210 HeightIDWexact(float): <class 'float'>\n    test 211 HeightIDWexact(latlon): True\n    test 212 HeightIDWexact_(tuple): True\n    test 213 HeightIDWexact(): 5.0\n    test 214 HeightIDWexact(float): <class 'float'>\n    test 215 HeightIDWexact(latlon): True\n    test 216 HeightIDWexact(): (6.108538037, 5.0,)\n    test 217 HeightIDWexact(tuple): <class 'tuple'>\n    test 218 HeightIDWexact(tuple-float): <class 'float'>\n    test 219 HeightIDWexact(tuple-float): <class 'float'>\n    test 220 HeightIDWexact(): [6.108538037, 5.0]\n    test 221 HeightIDWexact(list: <class 'list'>\n    test 222 HeightIDWexact(list-float): <class 'float'>\n    test 223 HeightIDWexact(list-float): <class 'float'>\n    test 224 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWexact'>, True)\n    test 225 HeightIDWexact.copy(): (<class 'pygeodesy.heights.HeightIDWexact'>, True)\n    test 226 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 227 HeightIDWexact.datum: name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84\n    test 228 HeightIDWexact.kmin: 2\n    test 229 HeightIDWexact.wrap: None\n    test 230 HeightIDWexact.beta: 2\n    test 231 HeightIDWexact.adjust: None\n    test 232 HeightIDWexact.beta: 2\n    test 233 HeightIDWexact.kmin: 2\n    test 234 HeightIDWexact.wrap: None\n\n    test 235 HeightIDWflatLocal(): 6.111158784\n    test 236 HeightIDWflatLocal(float): <class 'float'>\n    test 237 HeightIDWflatLocal(latlon): True\n    test 238 HeightIDWflatLocal_(tuple): True\n    test 239 HeightIDWflatLocal(): 5.0\n    test 240 HeightIDWflatLocal(float): <class 'float'>\n    test 241 HeightIDWflatLocal(latlon): True\n    test 242 HeightIDWflatLocal(): (6.111158784, 5.0,)\n    test 243 HeightIDWflatLocal(tuple): <class 'tuple'>\n    test 244 HeightIDWflatLocal(tuple-float): <class 'float'>\n    test 245 HeightIDWflatLocal(tuple-float): <class 'float'>\n    test 246 HeightIDWflatLocal(): [6.111158784, 5.0]\n    test 247 HeightIDWflatLocal(list: <class 'list'>\n    test 248 HeightIDWflatLocal(list-float): <class 'float'>\n    test 249 HeightIDWflatLocal(list-float): <class 'float'>\n    test 250 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWflatLocal'>, True)\n    test 251 HeightIDWflatLocal.copy(): (<class 'pygeodesy.heights.HeightIDWflatLocal'>, True)\n    test 252 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 253 HeightIDWflatLocal.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 254 HeightIDWflatLocal.kmin: 2\n    test 255 HeightIDWflatLocal.wrap: None\n    test 256 HeightIDWflatLocal.beta: 2\n    test 257 HeightIDWflatLocal.adjust: None\n    test 258 HeightIDWflatLocal.beta: 2\n    test 259 HeightIDWflatLocal.kmin: 2\n    test 260 HeightIDWflatLocal.wrap: None\n\n    test 261 HeightIDWflatPolar(): 6.261469975\n    test 262 HeightIDWflatPolar(float): <class 'float'>\n    test 263 HeightIDWflatPolar(latlon): True\n    test 264 HeightIDWflatPolar_(tuple): True\n    test 265 HeightIDWflatPolar(): 5.0\n    test 266 HeightIDWflatPolar(float): <class 'float'>\n    test 267 HeightIDWflatPolar(latlon): True\n    test 268 HeightIDWflatPolar(): (6.261469975, 5.0,)\n    test 269 HeightIDWflatPolar(tuple): <class 'tuple'>\n    test 270 HeightIDWflatPolar(tuple-float): <class 'float'>\n    test 271 HeightIDWflatPolar(tuple-float): <class 'float'>\n    test 272 HeightIDWflatPolar(): [6.261469975, 5.0]\n    test 273 HeightIDWflatPolar(list: <class 'list'>\n    test 274 HeightIDWflatPolar(list-float): <class 'float'>\n    test 275 HeightIDWflatPolar(list-float): <class 'float'>\n    test 276 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWflatPolar'>, True)\n    test 277 HeightIDWflatPolar.copy(): (<class 'pygeodesy.heights.HeightIDWflatPolar'>, True)\n    test 278 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 279 HeightIDWflatPolar.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 280 HeightIDWflatPolar.kmin: 2\n    test 281 HeightIDWflatPolar.wrap: None\n    test 282 HeightIDWflatPolar.beta: 2\n    test 283 HeightIDWflatPolar.adjust: None\n    test 284 HeightIDWflatPolar.beta: 2\n    test 285 HeightIDWflatPolar.kmin: 2\n    test 286 HeightIDWflatPolar.wrap: None\n\n    test 287 HeightIDWhaversine(): 6.108538037\n    test 288 HeightIDWhaversine(float): <class 'float'>\n    test 289 HeightIDWhaversine(latlon): True\n    test 290 HeightIDWhaversine_(tuple): True\n    test 291 HeightIDWhaversine(): 5.0\n    test 292 HeightIDWhaversine(float): <class 'float'>\n    test 293 HeightIDWhaversine(latlon): True\n    test 294 HeightIDWhaversine(): (6.108538037, 5.0,)\n    test 295 HeightIDWhaversine(tuple): <class 'tuple'>\n    test 296 HeightIDWhaversine(tuple-float): <class 'float'>\n    test 297 HeightIDWhaversine(tuple-float): <class 'float'>\n    test 298 HeightIDWhaversine(): [6.108538037, 5.0]\n    test 299 HeightIDWhaversine(list: <class 'list'>\n    test 300 HeightIDWhaversine(list-float): <class 'float'>\n    test 301 HeightIDWhaversine(list-float): <class 'float'>\n    test 302 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWhaversine'>, True)\n    test 303 HeightIDWhaversine.copy(): (<class 'pygeodesy.heights.HeightIDWhaversine'>, True)\n    test 304 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 305 HeightIDWhaversine.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 306 HeightIDWhaversine.kmin: 2\n    test 307 HeightIDWhaversine.wrap: None\n    test 308 HeightIDWhaversine.beta: 2\n    test 309 HeightIDWhaversine.adjust: None\n    test 310 HeightIDWhaversine.beta: 2\n    test 311 HeightIDWhaversine.kmin: 2\n    test 312 HeightIDWhaversine.wrap: None\n\n    test 313 HeightIDWhubeny(): 6.111158784\n    test 314 HeightIDWhubeny(float): <class 'float'>\n    test 315 HeightIDWhubeny(latlon): True\n    test 316 HeightIDWhubeny_(tuple): True\n    test 317 HeightIDWhubeny(): 5.0\n    test 318 HeightIDWhubeny(float): <class 'float'>\n    test 319 HeightIDWhubeny(latlon): True\n    test 320 HeightIDWhubeny(): (6.111158784, 5.0,)\n    test 321 HeightIDWhubeny(tuple): <class 'tuple'>\n    test 322 HeightIDWhubeny(tuple-float): <class 'float'>\n    test 323 HeightIDWhubeny(tuple-float): <class 'float'>\n    test 324 HeightIDWhubeny(): [6.111158784, 5.0]\n    test 325 HeightIDWhubeny(list: <class 'list'>\n    test 326 HeightIDWhubeny(list-float): <class 'float'>\n    test 327 HeightIDWhubeny(list-float): <class 'float'>\n    test 328 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWhubeny'>, True)\n    test 329 HeightIDWhubeny.copy(): (<class 'pygeodesy.heights.HeightIDWhubeny'>, True)\n    test 330 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 331 HeightIDWhubeny.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 332 HeightIDWhubeny.kmin: 2\n    test 333 HeightIDWhubeny.wrap: None\n    test 334 HeightIDWhubeny.beta: 2\n    test 335 HeightIDWhubeny.adjust: None\n    test 336 HeightIDWhubeny.beta: 2\n    test 337 HeightIDWhubeny.kmin: 2\n    test 338 HeightIDWhubeny.wrap: None\n\n    test 339 HeightIDWkarney(datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), wrap=True): 6.111158743\n    test 340 HeightIDWkarney(float): <class 'float'>\n    test 341 HeightIDWkarney(latlon): True\n    test 342 HeightIDWkarney_(tuple): True\n    test 343 HeightIDWkarney(datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), wrap=True): 5.0\n    test 344 HeightIDWkarney(float): <class 'float'>\n    test 345 HeightIDWkarney(latlon): True\n    test 346 HeightIDWkarney(datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), wrap=True): (6.111158743, 5.0,)\n    test 347 HeightIDWkarney(tuple): <class 'tuple'>\n    test 348 HeightIDWkarney(tuple-float): <class 'float'>\n    test 349 HeightIDWkarney(tuple-float): <class 'float'>\n    test 350 HeightIDWkarney(datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), wrap=True): [6.111158743, 5.0]\n    test 351 HeightIDWkarney(list: <class 'list'>\n    test 352 HeightIDWkarney(list-float): <class 'float'>\n    test 353 HeightIDWkarney(list-float): <class 'float'>\n    test 354 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWkarney'>, True)\n    test 355 HeightIDWkarney.copy(): (<class 'pygeodesy.heights.HeightIDWkarney'>, True)\n    test 356 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 357 HeightIDWkarney.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 358 HeightIDWkarney.kmin: 2\n    test 359 HeightIDWkarney.wrap: True\n    test 360 HeightIDWkarney.beta: 2\n    test 361 HeightIDWkarney.adjust: None\n    test 362 HeightIDWkarney.beta: 2\n    test 363 HeightIDWkarney.kmin: 2\n    test 364 HeightIDWkarney.wrap: True\n\n    test 365 HeightIDWkarney(datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), wrap=False): 6.111158743\n    test 366 HeightIDWkarney(float): <class 'float'>\n    test 367 HeightIDWkarney(latlon): True\n    test 368 HeightIDWkarney_(tuple): True\n    test 369 HeightIDWkarney(datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), wrap=False): 5.0\n    test 370 HeightIDWkarney(float): <class 'float'>\n    test 371 HeightIDWkarney(latlon): True\n    test 372 HeightIDWkarney(datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), wrap=False): (6.111158743, 5.0,)\n    test 373 HeightIDWkarney(tuple): <class 'tuple'>\n    test 374 HeightIDWkarney(tuple-float): <class 'float'>\n    test 375 HeightIDWkarney(tuple-float): <class 'float'>\n    test 376 HeightIDWkarney(datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), wrap=False): [6.111158743, 5.0]\n    test 377 HeightIDWkarney(list: <class 'list'>\n    test 378 HeightIDWkarney(list-float): <class 'float'>\n    test 379 HeightIDWkarney(list-float): <class 'float'>\n    test 380 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWkarney'>, True)\n    test 381 HeightIDWkarney.copy(): (<class 'pygeodesy.heights.HeightIDWkarney'>, True)\n    test 382 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 383 HeightIDWkarney.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 384 HeightIDWkarney.kmin: 2\n    test 385 HeightIDWkarney.wrap: False\n    test 386 HeightIDWkarney.beta: 2\n    test 387 HeightIDWkarney.adjust: None\n    test 388 HeightIDWkarney.beta: 2\n    test 389 HeightIDWkarney.kmin: 2\n    test 390 HeightIDWkarney.wrap: False\n\n    test 391 HeightIDWkarney(datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84), wrap=True): 6.108538037\n    test 392 HeightIDWkarney(float): <class 'float'>\n    test 393 HeightIDWkarney(latlon): True\n    test 394 HeightIDWkarney_(tuple): True\n    test 395 HeightIDWkarney(datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84), wrap=True): 5.0\n    test 396 HeightIDWkarney(float): <class 'float'>\n    test 397 HeightIDWkarney(latlon): True\n    test 398 HeightIDWkarney(datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84), wrap=True): (6.108538037, 5.0,)\n    test 399 HeightIDWkarney(tuple): <class 'tuple'>\n    test 400 HeightIDWkarney(tuple-float): <class 'float'>\n    test 401 HeightIDWkarney(tuple-float): <class 'float'>\n    test 402 HeightIDWkarney(datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84), wrap=True): [6.108538037, 5.0]\n    test 403 HeightIDWkarney(list: <class 'list'>\n    test 404 HeightIDWkarney(list-float): <class 'float'>\n    test 405 HeightIDWkarney(list-float): <class 'float'>\n    test 406 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWkarney'>, True)\n    test 407 HeightIDWkarney.copy(): (<class 'pygeodesy.heights.HeightIDWkarney'>, True)\n    test 408 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 409 HeightIDWkarney.datum: name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84\n    test 410 HeightIDWkarney.kmin: 2\n    test 411 HeightIDWkarney.wrap: True\n    test 412 HeightIDWkarney.beta: 2\n    test 413 HeightIDWkarney.adjust: None\n    test 414 HeightIDWkarney.beta: 2\n    test 415 HeightIDWkarney.kmin: 2\n    test 416 HeightIDWkarney.wrap: True\n\n    test 417 HeightIDWkarney(datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84), wrap=False): 6.108538037\n    test 418 HeightIDWkarney(float): <class 'float'>\n    test 419 HeightIDWkarney(latlon): True\n    test 420 HeightIDWkarney_(tuple): True\n    test 421 HeightIDWkarney(datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84), wrap=False): 5.0\n    test 422 HeightIDWkarney(float): <class 'float'>\n    test 423 HeightIDWkarney(latlon): True\n    test 424 HeightIDWkarney(datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84), wrap=False): (6.108538037, 5.0,)\n    test 425 HeightIDWkarney(tuple): <class 'tuple'>\n    test 426 HeightIDWkarney(tuple-float): <class 'float'>\n    test 427 HeightIDWkarney(tuple-float): <class 'float'>\n    test 428 HeightIDWkarney(datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84), wrap=False): [6.108538037, 5.0]\n    test 429 HeightIDWkarney(list: <class 'list'>\n    test 430 HeightIDWkarney(list-float): <class 'float'>\n    test 431 HeightIDWkarney(list-float): <class 'float'>\n    test 432 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWkarney'>, True)\n    test 433 HeightIDWkarney.copy(): (<class 'pygeodesy.heights.HeightIDWkarney'>, True)\n    test 434 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 435 HeightIDWkarney.datum: name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84\n    test 436 HeightIDWkarney.kmin: 2\n    test 437 HeightIDWkarney.wrap: False\n    test 438 HeightIDWkarney.beta: 2\n    test 439 HeightIDWkarney.adjust: None\n    test 440 HeightIDWkarney.beta: 2\n    test 441 HeightIDWkarney.kmin: 2\n    test 442 HeightIDWkarney.wrap: False\n\n    test 443 HeightIDWthomas(wrap=True): 6.111159454\n    test 444 HeightIDWthomas(float): <class 'float'>\n    test 445 HeightIDWthomas(latlon): True\n    test 446 HeightIDWthomas_(tuple): True\n    test 447 HeightIDWthomas(wrap=True): 5.0\n    test 448 HeightIDWthomas(float): <class 'float'>\n    test 449 HeightIDWthomas(latlon): True\n    test 450 HeightIDWthomas(wrap=True): (6.111159454, 5.0,)\n    test 451 HeightIDWthomas(tuple): <class 'tuple'>\n    test 452 HeightIDWthomas(tuple-float): <class 'float'>\n    test 453 HeightIDWthomas(tuple-float): <class 'float'>\n    test 454 HeightIDWthomas(wrap=True): [6.111159454, 5.0]\n    test 455 HeightIDWthomas(list: <class 'list'>\n    test 456 HeightIDWthomas(list-float): <class 'float'>\n    test 457 HeightIDWthomas(list-float): <class 'float'>\n    test 458 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWthomas'>, True)\n    test 459 HeightIDWthomas.copy(): (<class 'pygeodesy.heights.HeightIDWthomas'>, True)\n    test 460 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 461 HeightIDWthomas.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 462 HeightIDWthomas.kmin: 2\n    test 463 HeightIDWthomas.wrap: True\n    test 464 HeightIDWthomas.beta: 2\n    test 465 HeightIDWthomas.adjust: None\n    test 466 HeightIDWthomas.beta: 2\n    test 467 HeightIDWthomas.kmin: 2\n    test 468 HeightIDWthomas.wrap: True\n\n    test 469 HeightIDWthomas(wrap=False): 6.111159454\n    test 470 HeightIDWthomas(float): <class 'float'>\n    test 471 HeightIDWthomas(latlon): True\n    test 472 HeightIDWthomas_(tuple): True\n    test 473 HeightIDWthomas(wrap=False): 5.0\n    test 474 HeightIDWthomas(float): <class 'float'>\n    test 475 HeightIDWthomas(latlon): True\n    test 476 HeightIDWthomas(wrap=False): (6.111159454, 5.0,)\n    test 477 HeightIDWthomas(tuple): <class 'tuple'>\n    test 478 HeightIDWthomas(tuple-float): <class 'float'>\n    test 479 HeightIDWthomas(tuple-float): <class 'float'>\n    test 480 HeightIDWthomas(wrap=False): [6.111159454, 5.0]\n    test 481 HeightIDWthomas(list: <class 'list'>\n    test 482 HeightIDWthomas(list-float): <class 'float'>\n    test 483 HeightIDWthomas(list-float): <class 'float'>\n    test 484 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWthomas'>, True)\n    test 485 HeightIDWthomas.copy(): (<class 'pygeodesy.heights.HeightIDWthomas'>, True)\n    test 486 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 487 HeightIDWthomas.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 488 HeightIDWthomas.kmin: 2\n    test 489 HeightIDWthomas.wrap: False\n    test 490 HeightIDWthomas.beta: 2\n    test 491 HeightIDWthomas.adjust: None\n    test 492 HeightIDWthomas.beta: 2\n    test 493 HeightIDWthomas.kmin: 2\n    test 494 HeightIDWthomas.wrap: False\n\n    test 495 HeightIDWvincentys(wrap=True): 6.108538037\n    test 496 HeightIDWvincentys(float): <class 'float'>\n    test 497 HeightIDWvincentys(latlon): True\n    test 498 HeightIDWvincentys_(tuple): True\n    test 499 HeightIDWvincentys(wrap=True): 5.0\n    test 500 HeightIDWvincentys(float): <class 'float'>\n    test 501 HeightIDWvincentys(latlon): True\n    test 502 HeightIDWvincentys(wrap=True): (6.108538037, 5.0,)\n    test 503 HeightIDWvincentys(tuple): <class 'tuple'>\n    test 504 HeightIDWvincentys(tuple-float): <class 'float'>\n    test 505 HeightIDWvincentys(tuple-float): <class 'float'>\n    test 506 HeightIDWvincentys(wrap=True): [6.108538037, 5.0]\n    test 507 HeightIDWvincentys(list: <class 'list'>\n    test 508 HeightIDWvincentys(list-float): <class 'float'>\n    test 509 HeightIDWvincentys(list-float): <class 'float'>\n    test 510 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWvincentys'>, True)\n    test 511 HeightIDWvincentys.copy(): (<class 'pygeodesy.heights.HeightIDWvincentys'>, True)\n    test 512 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 513 HeightIDWvincentys.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 514 HeightIDWvincentys.kmin: 2\n    test 515 HeightIDWvincentys.wrap: True\n    test 516 HeightIDWvincentys.beta: 2\n    test 517 HeightIDWvincentys.adjust: None\n    test 518 HeightIDWvincentys.beta: 2\n    test 519 HeightIDWvincentys.kmin: 2\n    test 520 HeightIDWvincentys.wrap: True\n\n    test 521 HeightIDWvincentys(wrap=False): 6.108538037\n    test 522 HeightIDWvincentys(float): <class 'float'>\n    test 523 HeightIDWvincentys(latlon): True\n    test 524 HeightIDWvincentys_(tuple): True\n    test 525 HeightIDWvincentys(wrap=False): 5.0\n    test 526 HeightIDWvincentys(float): <class 'float'>\n    test 527 HeightIDWvincentys(latlon): True\n    test 528 HeightIDWvincentys(wrap=False): (6.108538037, 5.0,)\n    test 529 HeightIDWvincentys(tuple): <class 'tuple'>\n    test 530 HeightIDWvincentys(tuple-float): <class 'float'>\n    test 531 HeightIDWvincentys(tuple-float): <class 'float'>\n    test 532 HeightIDWvincentys(wrap=False): [6.108538037, 5.0]\n    test 533 HeightIDWvincentys(list: <class 'list'>\n    test 534 HeightIDWvincentys(list-float): <class 'float'>\n    test 535 HeightIDWvincentys(list-float): <class 'float'>\n    test 536 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWvincentys'>, True)\n    test 537 HeightIDWvincentys.copy(): (<class 'pygeodesy.heights.HeightIDWvincentys'>, True)\n    test 538 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 539 HeightIDWvincentys.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 540 HeightIDWvincentys.kmin: 2\n    test 541 HeightIDWvincentys.wrap: False\n    test 542 HeightIDWvincentys.beta: 2\n    test 543 HeightIDWvincentys.adjust: None\n    test 544 HeightIDWvincentys.beta: 2\n    test 545 HeightIDWvincentys.kmin: 2\n    test 546 HeightIDWvincentys.wrap: False\n    test 547 intersection: 02.64932°N, 002.550079°E, +2.50m\n\n\n    test 548 HeightIDWcosineLaw(wrap=True): 2.592742938\n    test 549 HeightIDWcosineLaw(float): <class 'float'>\n    test 550 HeightIDWcosineLaw(latlon): True\n    test 551 HeightIDWcosineLaw_(tuple): True\n    test 552 HeightIDWcosineLaw(wrap=True): 3.0\n    test 553 HeightIDWcosineLaw(float): <class 'float'>\n    test 554 HeightIDWcosineLaw(latlon): True\n    test 555 HeightIDWcosineLaw(wrap=True): (2.592742938, 3.0,)\n    test 556 HeightIDWcosineLaw(tuple): <class 'tuple'>\n    test 557 HeightIDWcosineLaw(tuple-float): <class 'float'>\n    test 558 HeightIDWcosineLaw(tuple-float): <class 'float'>\n    test 559 HeightIDWcosineLaw(wrap=True): [2.592742938, 3.0]\n    test 560 HeightIDWcosineLaw(list: <class 'list'>\n    test 561 HeightIDWcosineLaw(list-float): <class 'float'>\n    test 562 HeightIDWcosineLaw(list-float): <class 'float'>\n    test 563 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWcosineLaw'>, True)\n    test 564 HeightIDWcosineLaw.copy(): (<class 'pygeodesy.heights.HeightIDWcosineLaw'>, True)\n    test 565 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 566 HeightIDWcosineLaw.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 567 HeightIDWcosineLaw.kmin: 2\n    test 568 HeightIDWcosineLaw.wrap: True\n    test 569 HeightIDWcosineLaw.beta: 2\n    test 570 HeightIDWcosineLaw.adjust: None\n    test 571 HeightIDWcosineLaw.beta: 2\n    test 572 HeightIDWcosineLaw.kmin: 2\n    test 573 HeightIDWcosineLaw.wrap: True\n\n    test 574 HeightIDWcosineLaw(wrap=False): 2.592742938\n    test 575 HeightIDWcosineLaw(float): <class 'float'>\n    test 576 HeightIDWcosineLaw(latlon): True\n    test 577 HeightIDWcosineLaw_(tuple): True\n    test 578 HeightIDWcosineLaw(wrap=False): 3.0\n    test 579 HeightIDWcosineLaw(float): <class 'float'>\n    test 580 HeightIDWcosineLaw(latlon): True\n    test 581 HeightIDWcosineLaw(wrap=False): (2.592742938, 3.0,)\n    test 582 HeightIDWcosineLaw(tuple): <class 'tuple'>\n    test 583 HeightIDWcosineLaw(tuple-float): <class 'float'>\n    test 584 HeightIDWcosineLaw(tuple-float): <class 'float'>\n    test 585 HeightIDWcosineLaw(wrap=False): [2.592742938, 3.0]\n    test 586 HeightIDWcosineLaw(list: <class 'list'>\n    test 587 HeightIDWcosineLaw(list-float): <class 'float'>\n    test 588 HeightIDWcosineLaw(list-float): <class 'float'>\n    test 589 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWcosineLaw'>, True)\n    test 590 HeightIDWcosineLaw.copy(): (<class 'pygeodesy.heights.HeightIDWcosineLaw'>, True)\n    test 591 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 592 HeightIDWcosineLaw.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 593 HeightIDWcosineLaw.kmin: 2\n    test 594 HeightIDWcosineLaw.wrap: False\n    test 595 HeightIDWcosineLaw.beta: 2\n    test 596 HeightIDWcosineLaw.adjust: None\n    test 597 HeightIDWcosineLaw.beta: 2\n    test 598 HeightIDWcosineLaw.kmin: 2\n    test 599 HeightIDWcosineLaw.wrap: False\n\n    test 600 HeightIDWcosineLaw(corr=1, wrap=False): 2.592742781\n    test 601 HeightIDWcosineLaw(float): <class 'float'>\n    test 602 HeightIDWcosineLaw(latlon): True\n    test 603 HeightIDWcosineLaw_(tuple): True\n    test 604 HeightIDWcosineLaw(corr=1, wrap=False): 3.0\n    test 605 HeightIDWcosineLaw(float): <class 'float'>\n    test 606 HeightIDWcosineLaw(latlon): True\n    test 607 HeightIDWcosineLaw(corr=1, wrap=False): (2.592742781, 3.0,)\n    test 608 HeightIDWcosineLaw(tuple): <class 'tuple'>\n    test 609 HeightIDWcosineLaw(tuple-float): <class 'float'>\n    test 610 HeightIDWcosineLaw(tuple-float): <class 'float'>\n    test 611 HeightIDWcosineLaw(corr=1, wrap=False): [2.592742781, 3.0]\n    test 612 HeightIDWcosineLaw(list: <class 'list'>\n    test 613 HeightIDWcosineLaw(list-float): <class 'float'>\n    test 614 HeightIDWcosineLaw(list-float): <class 'float'>\n    test 615 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWcosineLaw'>, True)\n    test 616 HeightIDWcosineLaw.copy(): (<class 'pygeodesy.heights.HeightIDWcosineLaw'>, True)\n    test 617 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 618 HeightIDWcosineLaw.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 619 HeightIDWcosineLaw.kmin: 2\n    test 620 HeightIDWcosineLaw.wrap: False\n    test 621 HeightIDWcosineLaw.beta: 2\n    test 622 HeightIDWcosineLaw.adjust: None\n    test 623 HeightIDWcosineLaw.beta: 2\n    test 624 HeightIDWcosineLaw.kmin: 2\n    test 625 HeightIDWcosineLaw.wrap: False\n\n    test 626 HeightIDWcosineLaw(corr=2, wrap=False): 2.592742781\n    test 627 HeightIDWcosineLaw(float): <class 'float'>\n    test 628 HeightIDWcosineLaw(latlon): True\n    test 629 HeightIDWcosineLaw_(tuple): True\n    test 630 HeightIDWcosineLaw(corr=2, wrap=False): 3.0\n    test 631 HeightIDWcosineLaw(float): <class 'float'>\n    test 632 HeightIDWcosineLaw(latlon): True\n    test 633 HeightIDWcosineLaw(corr=2, wrap=False): (2.592742781, 3.0,)\n    test 634 HeightIDWcosineLaw(tuple): <class 'tuple'>\n    test 635 HeightIDWcosineLaw(tuple-float): <class 'float'>\n    test 636 HeightIDWcosineLaw(tuple-float): <class 'float'>\n    test 637 HeightIDWcosineLaw(corr=2, wrap=False): [2.592742781, 3.0]\n    test 638 HeightIDWcosineLaw(list: <class 'list'>\n    test 639 HeightIDWcosineLaw(list-float): <class 'float'>\n    test 640 HeightIDWcosineLaw(list-float): <class 'float'>\n    test 641 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWcosineLaw'>, True)\n    test 642 HeightIDWcosineLaw.copy(): (<class 'pygeodesy.heights.HeightIDWcosineLaw'>, True)\n    test 643 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 644 HeightIDWcosineLaw.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 645 HeightIDWcosineLaw.kmin: 2\n    test 646 HeightIDWcosineLaw.wrap: False\n    test 647 HeightIDWcosineLaw.beta: 2\n    test 648 HeightIDWcosineLaw.adjust: None\n    test 649 HeightIDWcosineLaw.beta: 2\n    test 650 HeightIDWcosineLaw.kmin: 2\n    test 651 HeightIDWcosineLaw.wrap: False\n\n    test 652 HeightIDWequirectangular(adjust=True, wrap=True): 2.689429914\n    test 653 HeightIDWequirectangular(float): <class 'float'>\n    test 654 HeightIDWequirectangular(latlon): True\n    test 655 HeightIDWequirectangular_(tuple): True\n    test 656 HeightIDWequirectangular(adjust=True, wrap=True): 3.0\n    test 657 HeightIDWequirectangular(float): <class 'float'>\n    test 658 HeightIDWequirectangular(latlon): True\n    test 659 HeightIDWequirectangular(adjust=True, wrap=True): (2.689429914, 3.0,)\n    test 660 HeightIDWequirectangular(tuple): <class 'tuple'>\n    test 661 HeightIDWequirectangular(tuple-float): <class 'float'>\n    test 662 HeightIDWequirectangular(tuple-float): <class 'float'>\n    test 663 HeightIDWequirectangular(adjust=True, wrap=True): [2.689429914, 3.0]\n    test 664 HeightIDWequirectangular(list: <class 'list'>\n    test 665 HeightIDWequirectangular(list-float): <class 'float'>\n    test 666 HeightIDWequirectangular(list-float): <class 'float'>\n    test 667 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWequirectangular'>, True)\n    test 668 HeightIDWequirectangular.copy(): (<class 'pygeodesy.heights.HeightIDWequirectangular'>, True)\n    test 669 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 670 HeightIDWequirectangular.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 671 HeightIDWequirectangular.kmin: 2\n    test 672 HeightIDWequirectangular.wrap: True\n    test 673 HeightIDWequirectangular.beta: 2\n    test 674 HeightIDWequirectangular.adjust: True\n    test 675 HeightIDWequirectangular.beta: 2\n    test 676 HeightIDWequirectangular.kmin: 2\n    test 677 HeightIDWequirectangular.wrap: True\n\n    test 678 HeightIDWequirectangular(adjust=False, wrap=True): 2.689413401\n    test 679 HeightIDWequirectangular(float): <class 'float'>\n    test 680 HeightIDWequirectangular(latlon): True\n    test 681 HeightIDWequirectangular_(tuple): True\n    test 682 HeightIDWequirectangular(adjust=False, wrap=True): 3.0\n    test 683 HeightIDWequirectangular(float): <class 'float'>\n    test 684 HeightIDWequirectangular(latlon): True\n    test 685 HeightIDWequirectangular(adjust=False, wrap=True): (2.689413401, 3.0,)\n    test 686 HeightIDWequirectangular(tuple): <class 'tuple'>\n    test 687 HeightIDWequirectangular(tuple-float): <class 'float'>\n    test 688 HeightIDWequirectangular(tuple-float): <class 'float'>\n    test 689 HeightIDWequirectangular(adjust=False, wrap=True): [2.689413401, 3.0]\n    test 690 HeightIDWequirectangular(list: <class 'list'>\n    test 691 HeightIDWequirectangular(list-float): <class 'float'>\n    test 692 HeightIDWequirectangular(list-float): <class 'float'>\n    test 693 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWequirectangular'>, True)\n    test 694 HeightIDWequirectangular.copy(): (<class 'pygeodesy.heights.HeightIDWequirectangular'>, True)\n    test 695 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 696 HeightIDWequirectangular.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 697 HeightIDWequirectangular.kmin: 2\n    test 698 HeightIDWequirectangular.wrap: True\n    test 699 HeightIDWequirectangular.beta: 2\n    test 700 HeightIDWequirectangular.adjust: False\n    test 701 HeightIDWequirectangular.beta: 2\n    test 702 HeightIDWequirectangular.kmin: 2\n    test 703 HeightIDWequirectangular.wrap: True\n\n    test 704 HeightIDWeuclidean(adjust=False): 2.592735541\n    test 705 HeightIDWeuclidean(float): <class 'float'>\n    test 706 HeightIDWeuclidean(latlon): True\n    test 707 HeightIDWeuclidean_(tuple): True\n    test 708 HeightIDWeuclidean(adjust=False): 3.0\n    test 709 HeightIDWeuclidean(float): <class 'float'>\n    test 710 HeightIDWeuclidean(latlon): True\n    test 711 HeightIDWeuclidean(adjust=False): (2.592735541, 3.0,)\n    test 712 HeightIDWeuclidean(tuple): <class 'tuple'>\n    test 713 HeightIDWeuclidean(tuple-float): <class 'float'>\n    test 714 HeightIDWeuclidean(tuple-float): <class 'float'>\n    test 715 HeightIDWeuclidean(adjust=False): [2.592735541, 3.0]\n    test 716 HeightIDWeuclidean(list: <class 'list'>\n    test 717 HeightIDWeuclidean(list-float): <class 'float'>\n    test 718 HeightIDWeuclidean(list-float): <class 'float'>\n    test 719 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWeuclidean'>, True)\n    test 720 HeightIDWeuclidean.copy(): (<class 'pygeodesy.heights.HeightIDWeuclidean'>, True)\n    test 721 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 722 HeightIDWeuclidean.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 723 HeightIDWeuclidean.kmin: 2\n    test 724 HeightIDWeuclidean.wrap: None\n    test 725 HeightIDWeuclidean.beta: 2\n    test 726 HeightIDWeuclidean.adjust: False\n    test 727 HeightIDWeuclidean.beta: 2\n    test 728 HeightIDWeuclidean.kmin: 2\n    test 729 HeightIDWeuclidean.wrap: None\n\n    test 730 HeightIDWexact(): 2.592742938\n    test 731 HeightIDWexact(float): <class 'float'>\n    test 732 HeightIDWexact(latlon): True\n    test 733 HeightIDWexact_(tuple): True\n    test 734 HeightIDWexact(): 3.0\n    test 735 HeightIDWexact(float): <class 'float'>\n    test 736 HeightIDWexact(latlon): True\n    test 737 HeightIDWexact(): (2.592742938, 3.0,)\n    test 738 HeightIDWexact(tuple): <class 'tuple'>\n    test 739 HeightIDWexact(tuple-float): <class 'float'>\n    test 740 HeightIDWexact(tuple-float): <class 'float'>\n    test 741 HeightIDWexact(): [2.592742938, 3.0]\n    test 742 HeightIDWexact(list: <class 'list'>\n    test 743 HeightIDWexact(list-float): <class 'float'>\n    test 744 HeightIDWexact(list-float): <class 'float'>\n    test 745 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWexact'>, True)\n    test 746 HeightIDWexact.copy(): (<class 'pygeodesy.heights.HeightIDWexact'>, True)\n    test 747 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 748 HeightIDWexact.datum: name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84\n    test 749 HeightIDWexact.kmin: 2\n    test 750 HeightIDWexact.wrap: None\n    test 751 HeightIDWexact.beta: 2\n    test 752 HeightIDWexact.adjust: None\n    test 753 HeightIDWexact.beta: 2\n    test 754 HeightIDWexact.kmin: 2\n    test 755 HeightIDWexact.wrap: None\n\n    test 756 HeightIDWflatLocal(): 2.592743288\n    test 757 HeightIDWflatLocal(float): <class 'float'>\n    test 758 HeightIDWflatLocal(latlon): True\n    test 759 HeightIDWflatLocal_(tuple): True\n    test 760 HeightIDWflatLocal(): 3.0\n    test 761 HeightIDWflatLocal(float): <class 'float'>\n    test 762 HeightIDWflatLocal(latlon): True\n    test 763 HeightIDWflatLocal(): (2.592743288, 3.0,)\n    test 764 HeightIDWflatLocal(tuple): <class 'tuple'>\n    test 765 HeightIDWflatLocal(tuple-float): <class 'float'>\n    test 766 HeightIDWflatLocal(tuple-float): <class 'float'>\n    test 767 HeightIDWflatLocal(): [2.592743288, 3.0]\n    test 768 HeightIDWflatLocal(list: <class 'list'>\n    test 769 HeightIDWflatLocal(list-float): <class 'float'>\n    test 770 HeightIDWflatLocal(list-float): <class 'float'>\n    test 771 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWflatLocal'>, True)\n    test 772 HeightIDWflatLocal.copy(): (<class 'pygeodesy.heights.HeightIDWflatLocal'>, True)\n    test 773 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 774 HeightIDWflatLocal.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 775 HeightIDWflatLocal.kmin: 2\n    test 776 HeightIDWflatLocal.wrap: None\n    test 777 HeightIDWflatLocal.beta: 2\n    test 778 HeightIDWflatLocal.adjust: None\n    test 779 HeightIDWflatLocal.beta: 2\n    test 780 HeightIDWflatLocal.kmin: 2\n    test 781 HeightIDWflatLocal.wrap: None\n\n    test 782 HeightIDWflatPolar(): 2.592973059\n    test 783 HeightIDWflatPolar(float): <class 'float'>\n    test 784 HeightIDWflatPolar(latlon): True\n    test 785 HeightIDWflatPolar_(tuple): True\n    test 786 HeightIDWflatPolar(): 3.0\n    test 787 HeightIDWflatPolar(float): <class 'float'>\n    test 788 HeightIDWflatPolar(latlon): True\n    test 789 HeightIDWflatPolar(): (2.592973059, 3.0,)\n    test 790 HeightIDWflatPolar(tuple): <class 'tuple'>\n    test 791 HeightIDWflatPolar(tuple-float): <class 'float'>\n    test 792 HeightIDWflatPolar(tuple-float): <class 'float'>\n    test 793 HeightIDWflatPolar(): [2.592973059, 3.0]\n    test 794 HeightIDWflatPolar(list: <class 'list'>\n    test 795 HeightIDWflatPolar(list-float): <class 'float'>\n    test 796 HeightIDWflatPolar(list-float): <class 'float'>\n    test 797 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWflatPolar'>, True)\n    test 798 HeightIDWflatPolar.copy(): (<class 'pygeodesy.heights.HeightIDWflatPolar'>, True)\n    test 799 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 800 HeightIDWflatPolar.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 801 HeightIDWflatPolar.kmin: 2\n    test 802 HeightIDWflatPolar.wrap: None\n    test 803 HeightIDWflatPolar.beta: 2\n    test 804 HeightIDWflatPolar.adjust: None\n    test 805 HeightIDWflatPolar.beta: 2\n    test 806 HeightIDWflatPolar.kmin: 2\n    test 807 HeightIDWflatPolar.wrap: None\n\n    test 808 HeightIDWhaversine(): 2.592742938\n    test 809 HeightIDWhaversine(float): <class 'float'>\n    test 810 HeightIDWhaversine(latlon): True\n    test 811 HeightIDWhaversine_(tuple): True\n    test 812 HeightIDWhaversine(): 3.0\n    test 813 HeightIDWhaversine(float): <class 'float'>\n    test 814 HeightIDWhaversine(latlon): True\n    test 815 HeightIDWhaversine(): (2.592742938, 3.0,)\n    test 816 HeightIDWhaversine(tuple): <class 'tuple'>\n    test 817 HeightIDWhaversine(tuple-float): <class 'float'>\n    test 818 HeightIDWhaversine(tuple-float): <class 'float'>\n    test 819 HeightIDWhaversine(): [2.592742938, 3.0]\n    test 820 HeightIDWhaversine(list: <class 'list'>\n    test 821 HeightIDWhaversine(list-float): <class 'float'>\n    test 822 HeightIDWhaversine(list-float): <class 'float'>\n    test 823 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWhaversine'>, True)\n    test 824 HeightIDWhaversine.copy(): (<class 'pygeodesy.heights.HeightIDWhaversine'>, True)\n    test 825 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 826 HeightIDWhaversine.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 827 HeightIDWhaversine.kmin: 2\n    test 828 HeightIDWhaversine.wrap: None\n    test 829 HeightIDWhaversine.beta: 2\n    test 830 HeightIDWhaversine.adjust: None\n    test 831 HeightIDWhaversine.beta: 2\n    test 832 HeightIDWhaversine.kmin: 2\n    test 833 HeightIDWhaversine.wrap: None\n\n    test 834 HeightIDWhubeny(): 2.592743288\n    test 835 HeightIDWhubeny(float): <class 'float'>\n    test 836 HeightIDWhubeny(latlon): True\n    test 837 HeightIDWhubeny_(tuple): True\n    test 838 HeightIDWhubeny(): 3.0\n    test 839 HeightIDWhubeny(float): <class 'float'>\n    test 840 HeightIDWhubeny(latlon): True\n    test 841 HeightIDWhubeny(): (2.592743288, 3.0,)\n    test 842 HeightIDWhubeny(tuple): <class 'tuple'>\n    test 843 HeightIDWhubeny(tuple-float): <class 'float'>\n    test 844 HeightIDWhubeny(tuple-float): <class 'float'>\n    test 845 HeightIDWhubeny(): [2.592743288, 3.0]\n    test 846 HeightIDWhubeny(list: <class 'list'>\n    test 847 HeightIDWhubeny(list-float): <class 'float'>\n    test 848 HeightIDWhubeny(list-float): <class 'float'>\n    test 849 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWhubeny'>, True)\n    test 850 HeightIDWhubeny.copy(): (<class 'pygeodesy.heights.HeightIDWhubeny'>, True)\n    test 851 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 852 HeightIDWhubeny.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 853 HeightIDWhubeny.kmin: 2\n    test 854 HeightIDWhubeny.wrap: None\n    test 855 HeightIDWhubeny.beta: 2\n    test 856 HeightIDWhubeny.adjust: None\n    test 857 HeightIDWhubeny.beta: 2\n    test 858 HeightIDWhubeny.kmin: 2\n    test 859 HeightIDWhubeny.wrap: None\n\n    test 860 HeightIDWkarney(datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), wrap=True): 2.592742915\n    test 861 HeightIDWkarney(float): <class 'float'>\n    test 862 HeightIDWkarney(latlon): True\n    test 863 HeightIDWkarney_(tuple): True\n    test 864 HeightIDWkarney(datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), wrap=True): 3.0\n    test 865 HeightIDWkarney(float): <class 'float'>\n    test 866 HeightIDWkarney(latlon): True\n    test 867 HeightIDWkarney(datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), wrap=True): (2.592742915, 3.0,)\n    test 868 HeightIDWkarney(tuple): <class 'tuple'>\n    test 869 HeightIDWkarney(tuple-float): <class 'float'>\n    test 870 HeightIDWkarney(tuple-float): <class 'float'>\n    test 871 HeightIDWkarney(datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), wrap=True): [2.592742915, 3.0]\n    test 872 HeightIDWkarney(list: <class 'list'>\n    test 873 HeightIDWkarney(list-float): <class 'float'>\n    test 874 HeightIDWkarney(list-float): <class 'float'>\n    test 875 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWkarney'>, True)\n    test 876 HeightIDWkarney.copy(): (<class 'pygeodesy.heights.HeightIDWkarney'>, True)\n    test 877 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 878 HeightIDWkarney.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 879 HeightIDWkarney.kmin: 2\n    test 880 HeightIDWkarney.wrap: True\n    test 881 HeightIDWkarney.beta: 2\n    test 882 HeightIDWkarney.adjust: None\n    test 883 HeightIDWkarney.beta: 2\n    test 884 HeightIDWkarney.kmin: 2\n    test 885 HeightIDWkarney.wrap: True\n\n    test 886 HeightIDWkarney(datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), wrap=False): 2.592742915\n    test 887 HeightIDWkarney(float): <class 'float'>\n    test 888 HeightIDWkarney(latlon): True\n    test 889 HeightIDWkarney_(tuple): True\n    test 890 HeightIDWkarney(datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), wrap=False): 3.0\n    test 891 HeightIDWkarney(float): <class 'float'>\n    test 892 HeightIDWkarney(latlon): True\n    test 893 HeightIDWkarney(datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), wrap=False): (2.592742915, 3.0,)\n    test 894 HeightIDWkarney(tuple): <class 'tuple'>\n    test 895 HeightIDWkarney(tuple-float): <class 'float'>\n    test 896 HeightIDWkarney(tuple-float): <class 'float'>\n    test 897 HeightIDWkarney(datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), wrap=False): [2.592742915, 3.0]\n    test 898 HeightIDWkarney(list: <class 'list'>\n    test 899 HeightIDWkarney(list-float): <class 'float'>\n    test 900 HeightIDWkarney(list-float): <class 'float'>\n    test 901 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWkarney'>, True)\n    test 902 HeightIDWkarney.copy(): (<class 'pygeodesy.heights.HeightIDWkarney'>, True)\n    test 903 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 904 HeightIDWkarney.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 905 HeightIDWkarney.kmin: 2\n    test 906 HeightIDWkarney.wrap: False\n    test 907 HeightIDWkarney.beta: 2\n    test 908 HeightIDWkarney.adjust: None\n    test 909 HeightIDWkarney.beta: 2\n    test 910 HeightIDWkarney.kmin: 2\n    test 911 HeightIDWkarney.wrap: False\n\n    test 912 HeightIDWkarney(datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84), wrap=True): 2.592742938\n    test 913 HeightIDWkarney(float): <class 'float'>\n    test 914 HeightIDWkarney(latlon): True\n    test 915 HeightIDWkarney_(tuple): True\n    test 916 HeightIDWkarney(datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84), wrap=True): 3.0\n    test 917 HeightIDWkarney(float): <class 'float'>\n    test 918 HeightIDWkarney(latlon): True\n    test 919 HeightIDWkarney(datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84), wrap=True): (2.592742938, 3.0,)\n    test 920 HeightIDWkarney(tuple): <class 'tuple'>\n    test 921 HeightIDWkarney(tuple-float): <class 'float'>\n    test 922 HeightIDWkarney(tuple-float): <class 'float'>\n    test 923 HeightIDWkarney(datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84), wrap=True): [2.592742938, 3.0]\n    test 924 HeightIDWkarney(list: <class 'list'>\n    test 925 HeightIDWkarney(list-float): <class 'float'>\n    test 926 HeightIDWkarney(list-float): <class 'float'>\n    test 927 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWkarney'>, True)\n    test 928 HeightIDWkarney.copy(): (<class 'pygeodesy.heights.HeightIDWkarney'>, True)\n    test 929 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 930 HeightIDWkarney.datum: name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84\n    test 931 HeightIDWkarney.kmin: 2\n    test 932 HeightIDWkarney.wrap: True\n    test 933 HeightIDWkarney.beta: 2\n    test 934 HeightIDWkarney.adjust: None\n    test 935 HeightIDWkarney.beta: 2\n    test 936 HeightIDWkarney.kmin: 2\n    test 937 HeightIDWkarney.wrap: True\n\n    test 938 HeightIDWkarney(datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84), wrap=False): 2.592742938\n    test 939 HeightIDWkarney(float): <class 'float'>\n    test 940 HeightIDWkarney(latlon): True\n    test 941 HeightIDWkarney_(tuple): True\n    test 942 HeightIDWkarney(datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84), wrap=False): 3.0\n    test 943 HeightIDWkarney(float): <class 'float'>\n    test 944 HeightIDWkarney(latlon): True\n    test 945 HeightIDWkarney(datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84), wrap=False): (2.592742938, 3.0,)\n    test 946 HeightIDWkarney(tuple): <class 'tuple'>\n    test 947 HeightIDWkarney(tuple-float): <class 'float'>\n    test 948 HeightIDWkarney(tuple-float): <class 'float'>\n    test 949 HeightIDWkarney(datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84), wrap=False): [2.592742938, 3.0]\n    test 950 HeightIDWkarney(list: <class 'list'>\n    test 951 HeightIDWkarney(list-float): <class 'float'>\n    test 952 HeightIDWkarney(list-float): <class 'float'>\n    test 953 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWkarney'>, True)\n    test 954 HeightIDWkarney.copy(): (<class 'pygeodesy.heights.HeightIDWkarney'>, True)\n    test 955 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 956 HeightIDWkarney.datum: name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84\n    test 957 HeightIDWkarney.kmin: 2\n    test 958 HeightIDWkarney.wrap: False\n    test 959 HeightIDWkarney.beta: 2\n    test 960 HeightIDWkarney.adjust: None\n    test 961 HeightIDWkarney.beta: 2\n    test 962 HeightIDWkarney.kmin: 2\n    test 963 HeightIDWkarney.wrap: False\n\n    test 964 HeightIDWthomas(wrap=True): 2.592742781\n    test 965 HeightIDWthomas(float): <class 'float'>\n    test 966 HeightIDWthomas(latlon): True\n    test 967 HeightIDWthomas_(tuple): True\n    test 968 HeightIDWthomas(wrap=True): 3.0\n    test 969 HeightIDWthomas(float): <class 'float'>\n    test 970 HeightIDWthomas(latlon): True\n    test 971 HeightIDWthomas(wrap=True): (2.592742781, 3.0,)\n    test 972 HeightIDWthomas(tuple): <class 'tuple'>\n    test 973 HeightIDWthomas(tuple-float): <class 'float'>\n    test 974 HeightIDWthomas(tuple-float): <class 'float'>\n    test 975 HeightIDWthomas(wrap=True): [2.592742781, 3.0]\n    test 976 HeightIDWthomas(list: <class 'list'>\n    test 977 HeightIDWthomas(list-float): <class 'float'>\n    test 978 HeightIDWthomas(list-float): <class 'float'>\n    test 979 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWthomas'>, True)\n    test 980 HeightIDWthomas.copy(): (<class 'pygeodesy.heights.HeightIDWthomas'>, True)\n    test 981 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 982 HeightIDWthomas.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 983 HeightIDWthomas.kmin: 2\n    test 984 HeightIDWthomas.wrap: True\n    test 985 HeightIDWthomas.beta: 2\n    test 986 HeightIDWthomas.adjust: None\n    test 987 HeightIDWthomas.beta: 2\n    test 988 HeightIDWthomas.kmin: 2\n    test 989 HeightIDWthomas.wrap: True\n\n    test 990 HeightIDWthomas(wrap=False): 2.592742781\n    test 991 HeightIDWthomas(float): <class 'float'>\n    test 992 HeightIDWthomas(latlon): True\n    test 993 HeightIDWthomas_(tuple): True\n    test 994 HeightIDWthomas(wrap=False): 3.0\n    test 995 HeightIDWthomas(float): <class 'float'>\n    test 996 HeightIDWthomas(latlon): True\n    test 997 HeightIDWthomas(wrap=False): (2.592742781, 3.0,)\n    test 998 HeightIDWthomas(tuple): <class 'tuple'>\n    test 999 HeightIDWthomas(tuple-float): <class 'float'>\n    test 1000 HeightIDWthomas(tuple-float): <class 'float'>\n    test 1001 HeightIDWthomas(wrap=False): [2.592742781, 3.0]\n    test 1002 HeightIDWthomas(list: <class 'list'>\n    test 1003 HeightIDWthomas(list-float): <class 'float'>\n    test 1004 HeightIDWthomas(list-float): <class 'float'>\n    test 1005 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWthomas'>, True)\n    test 1006 HeightIDWthomas.copy(): (<class 'pygeodesy.heights.HeightIDWthomas'>, True)\n    test 1007 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 1008 HeightIDWthomas.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 1009 HeightIDWthomas.kmin: 2\n    test 1010 HeightIDWthomas.wrap: False\n    test 1011 HeightIDWthomas.beta: 2\n    test 1012 HeightIDWthomas.adjust: None\n    test 1013 HeightIDWthomas.beta: 2\n    test 1014 HeightIDWthomas.kmin: 2\n    test 1015 HeightIDWthomas.wrap: False\n\n    test 1016 HeightIDWvincentys(wrap=True): 2.592742938\n    test 1017 HeightIDWvincentys(float): <class 'float'>\n    test 1018 HeightIDWvincentys(latlon): True\n    test 1019 HeightIDWvincentys_(tuple): True\n    test 1020 HeightIDWvincentys(wrap=True): 3.0\n    test 1021 HeightIDWvincentys(float): <class 'float'>\n    test 1022 HeightIDWvincentys(latlon): True\n    test 1023 HeightIDWvincentys(wrap=True): (2.592742938, 3.0,)\n    test 1024 HeightIDWvincentys(tuple): <class 'tuple'>\n    test 1025 HeightIDWvincentys(tuple-float): <class 'float'>\n    test 1026 HeightIDWvincentys(tuple-float): <class 'float'>\n    test 1027 HeightIDWvincentys(wrap=True): [2.592742938, 3.0]\n    test 1028 HeightIDWvincentys(list: <class 'list'>\n    test 1029 HeightIDWvincentys(list-float): <class 'float'>\n    test 1030 HeightIDWvincentys(list-float): <class 'float'>\n    test 1031 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWvincentys'>, True)\n    test 1032 HeightIDWvincentys.copy(): (<class 'pygeodesy.heights.HeightIDWvincentys'>, True)\n    test 1033 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 1034 HeightIDWvincentys.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 1035 HeightIDWvincentys.kmin: 2\n    test 1036 HeightIDWvincentys.wrap: True\n    test 1037 HeightIDWvincentys.beta: 2\n    test 1038 HeightIDWvincentys.adjust: None\n    test 1039 HeightIDWvincentys.beta: 2\n    test 1040 HeightIDWvincentys.kmin: 2\n    test 1041 HeightIDWvincentys.wrap: True\n\n    test 1042 HeightIDWvincentys(wrap=False): 2.592742938\n    test 1043 HeightIDWvincentys(float): <class 'float'>\n    test 1044 HeightIDWvincentys(latlon): True\n    test 1045 HeightIDWvincentys_(tuple): True\n    test 1046 HeightIDWvincentys(wrap=False): 3.0\n    test 1047 HeightIDWvincentys(float): <class 'float'>\n    test 1048 HeightIDWvincentys(latlon): True\n    test 1049 HeightIDWvincentys(wrap=False): (2.592742938, 3.0,)\n    test 1050 HeightIDWvincentys(tuple): <class 'tuple'>\n    test 1051 HeightIDWvincentys(tuple-float): <class 'float'>\n    test 1052 HeightIDWvincentys(tuple-float): <class 'float'>\n    test 1053 HeightIDWvincentys(wrap=False): [2.592742938, 3.0]\n    test 1054 HeightIDWvincentys(list: <class 'list'>\n    test 1055 HeightIDWvincentys(list-float): <class 'float'>\n    test 1056 HeightIDWvincentys(list-float): <class 'float'>\n    test 1057 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWvincentys'>, True)\n    test 1058 HeightIDWvincentys.copy(): (<class 'pygeodesy.heights.HeightIDWvincentys'>, True)\n    test 1059 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 1060 HeightIDWvincentys.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 1061 HeightIDWvincentys.kmin: 2\n    test 1062 HeightIDWvincentys.wrap: False\n    test 1063 HeightIDWvincentys.beta: 2\n    test 1064 HeightIDWvincentys.adjust: None\n    test 1065 HeightIDWvincentys.beta: 2\n    test 1066 HeightIDWvincentys.kmin: 2\n    test 1067 HeightIDWvincentys.wrap: False\n    test 1068 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightLinear'>, True)\n    test 1069 HeightLinear.copy(): (<class 'pygeodesy.heights.HeightLinear'>, True)\n    test 1070 HeightLinear: 2.536626441\n    test 1071 HeightLinear(float): <class 'float'>\n    test 1072 HeightLinear(latlon): True\n    test 1073 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightCubic'>, True)\n    test 1074 HeightCubic.copy(): (<class 'pygeodesy.heights.HeightCubic'>, True)\n    test 1075 HeightError: llis[0] (9.0): 'float' object has no attribute 'lat'\n    test 1076 HeightCubic.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 1077 HeightCubic.kmin: 16\n    test 1078 HeightCubic.wrap: None\n    test 1079 HeightCubic: 3.000000000\n    test 1080 HeightCubic(float): <class 'float'>\n    test 1081 HeightCubic(latlon): True\n    test 1082 HeightCubic_(tuple): True\n    test 1083 HeightCubic(tuple): <class 'tuple'>\n    test 1084 HeightCubic(tuple-float): <class 'float'>\n    test 1085 HeightCubic(tuple-float): <class 'float'>\n    test 1086 HeightCubic(list): <class 'list'>\n    test 1087 HeightCubic(list-float): <class 'float'>\n    test 1088 HeightCubic(list-float): <class 'float'>\n    test 1089 HeightCubic(latlon): True\n\n    test 1090 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWcosineLaw'>, True)\n    test 1091 HeightIDWcosineLaw.copy(): (<class 'pygeodesy.heights.HeightIDWcosineLaw'>, True)\n    test 1092 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 1093 HeightIDWcosineLaw.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 1094 HeightIDWcosineLaw.kmin: 2\n    test 1095 HeightIDWcosineLaw.wrap: None\n    test 1096 HeightIDWcosineLaw: 2.402157442\n    test 1097 HeightIDWcosineLaw(float): <class 'float'>\n    test 1098 HeightIDWcosineLaw(latlon): True\n    test 1099 HeightIDWcosineLaw_(tuple): True\n    test 1100 HeightIDWcosineLaw(tuple): <class 'tuple'>\n    test 1101 HeightIDWcosineLaw(tuple-float): <class 'float'>\n    test 1102 HeightIDWcosineLaw(tuple-float): <class 'float'>\n    test 1103 HeightIDWcosineLaw(list): <class 'list'>\n    test 1104 HeightIDWcosineLaw(list-float): <class 'float'>\n    test 1105 HeightIDWcosineLaw(list-float): <class 'float'>\n    test 1106 HeightIDWcosineLaw(latlon): True\n\n    test 1107 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWcosineLaw'>, True)\n    test 1108 HeightIDWcosineLaw.copy(): (<class 'pygeodesy.heights.HeightIDWcosineLaw'>, True)\n    test 1109 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 1110 HeightIDWcosineLaw.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 1111 HeightIDWcosineLaw.kmin: 2\n    test 1112 HeightIDWcosineLaw.wrap: None\n    test 1113 HeightIDWcosineLaw: 2.401661864\n    test 1114 HeightIDWcosineLaw(float): <class 'float'>\n    test 1115 HeightIDWcosineLaw(latlon): True\n    test 1116 HeightIDWcosineLaw_(tuple): True\n    test 1117 HeightIDWcosineLaw(tuple): <class 'tuple'>\n    test 1118 HeightIDWcosineLaw(tuple-float): <class 'float'>\n    test 1119 HeightIDWcosineLaw(tuple-float): <class 'float'>\n    test 1120 HeightIDWcosineLaw(list): <class 'list'>\n    test 1121 HeightIDWcosineLaw(list-float): <class 'float'>\n    test 1122 HeightIDWcosineLaw(list-float): <class 'float'>\n    test 1123 HeightIDWcosineLaw(latlon): True\n\n    test 1124 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWcosineLaw'>, True)\n    test 1125 HeightIDWcosineLaw.copy(): (<class 'pygeodesy.heights.HeightIDWcosineLaw'>, True)\n    test 1126 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 1127 HeightIDWcosineLaw.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 1128 HeightIDWcosineLaw.kmin: 2\n    test 1129 HeightIDWcosineLaw.wrap: None\n    test 1130 HeightIDWcosineLaw: 2.401661859\n    test 1131 HeightIDWcosineLaw(float): <class 'float'>\n    test 1132 HeightIDWcosineLaw(latlon): True\n    test 1133 HeightIDWcosineLaw_(tuple): True\n    test 1134 HeightIDWcosineLaw(tuple): <class 'tuple'>\n    test 1135 HeightIDWcosineLaw(tuple-float): <class 'float'>\n    test 1136 HeightIDWcosineLaw(tuple-float): <class 'float'>\n    test 1137 HeightIDWcosineLaw(list): <class 'list'>\n    test 1138 HeightIDWcosineLaw(list-float): <class 'float'>\n    test 1139 HeightIDWcosineLaw(list-float): <class 'float'>\n    test 1140 HeightIDWcosineLaw(latlon): True\n\n    test 1141 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWequirectangular'>, True)\n    test 1142 HeightIDWequirectangular.copy(): (<class 'pygeodesy.heights.HeightIDWequirectangular'>, True)\n    test 1143 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 1144 HeightIDWequirectangular.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 1145 HeightIDWequirectangular.kmin: 2\n    test 1146 HeightIDWequirectangular.wrap: None\n    test 1147 HeightIDWequirectangular: 2.469718302\n    test 1148 HeightIDWequirectangular(float): <class 'float'>\n    test 1149 HeightIDWequirectangular(latlon): True\n    test 1150 HeightIDWequirectangular_(tuple): True\n    test 1151 HeightIDWequirectangular(tuple): <class 'tuple'>\n    test 1152 HeightIDWequirectangular(tuple-float): <class 'float'>\n    test 1153 HeightIDWequirectangular(tuple-float): <class 'float'>\n    test 1154 HeightIDWequirectangular(list): <class 'list'>\n    test 1155 HeightIDWequirectangular(list-float): <class 'float'>\n    test 1156 HeightIDWequirectangular(list-float): <class 'float'>\n    test 1157 HeightIDWequirectangular(latlon): True\n\n    test 1158 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWeuclidean'>, True)\n    test 1159 HeightIDWeuclidean.copy(): (<class 'pygeodesy.heights.HeightIDWeuclidean'>, True)\n    test 1160 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 1161 HeightIDWeuclidean.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 1162 HeightIDWeuclidean.kmin: 2\n    test 1163 HeightIDWeuclidean.wrap: None\n    test 1164 HeightIDWeuclidean: 2.409288552\n    test 1165 HeightIDWeuclidean(float): <class 'float'>\n    test 1166 HeightIDWeuclidean(latlon): True\n    test 1167 HeightIDWeuclidean_(tuple): True\n    test 1168 HeightIDWeuclidean(tuple): <class 'tuple'>\n    test 1169 HeightIDWeuclidean(tuple-float): <class 'float'>\n    test 1170 HeightIDWeuclidean(tuple-float): <class 'float'>\n    test 1171 HeightIDWeuclidean(list): <class 'list'>\n    test 1172 HeightIDWeuclidean(list-float): <class 'float'>\n    test 1173 HeightIDWeuclidean(list-float): <class 'float'>\n    test 1174 HeightIDWeuclidean(latlon): True\n\n    test 1175 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWexact'>, True)\n    test 1176 HeightIDWexact.copy(): (<class 'pygeodesy.heights.HeightIDWexact'>, True)\n    test 1177 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 1178 HeightIDWexact.datum: name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84\n    test 1179 HeightIDWexact.kmin: 2\n    test 1180 HeightIDWexact.wrap: None\n    test 1181 HeightIDWexact: 2.402157442\n    test 1182 HeightIDWexact(float): <class 'float'>\n    test 1183 HeightIDWexact(latlon): True\n    test 1184 HeightIDWexact_(tuple): True\n    test 1185 HeightIDWexact(tuple): <class 'tuple'>\n    test 1186 HeightIDWexact(tuple-float): <class 'float'>\n    test 1187 HeightIDWexact(tuple-float): <class 'float'>\n    test 1188 HeightIDWexact(list): <class 'list'>\n    test 1189 HeightIDWexact(list-float): <class 'float'>\n    test 1190 HeightIDWexact(list-float): <class 'float'>\n    test 1191 HeightIDWexact(latlon): True\n\n    test 1192 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWflatLocal'>, True)\n    test 1193 HeightIDWflatLocal.copy(): (<class 'pygeodesy.heights.HeightIDWflatLocal'>, True)\n    test 1194 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 1195 HeightIDWflatLocal.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 1196 HeightIDWflatLocal.kmin: 2\n    test 1197 HeightIDWflatLocal.wrap: None\n    test 1198 HeightIDWflatLocal: 2.401661562\n    test 1199 HeightIDWflatLocal(float): <class 'float'>\n    test 1200 HeightIDWflatLocal(latlon): True\n    test 1201 HeightIDWflatLocal_(tuple): True\n    test 1202 HeightIDWflatLocal(tuple): <class 'tuple'>\n    test 1203 HeightIDWflatLocal(tuple-float): <class 'float'>\n    test 1204 HeightIDWflatLocal(tuple-float): <class 'float'>\n    test 1205 HeightIDWflatLocal(list): <class 'list'>\n    test 1206 HeightIDWflatLocal(list-float): <class 'float'>\n    test 1207 HeightIDWflatLocal(list-float): <class 'float'>\n    test 1208 HeightIDWflatLocal(latlon): True\n\n    test 1209 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWflatPolar'>, True)\n    test 1210 HeightIDWflatPolar.copy(): (<class 'pygeodesy.heights.HeightIDWflatPolar'>, True)\n    test 1211 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 1212 HeightIDWflatPolar.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 1213 HeightIDWflatPolar.kmin: 2\n    test 1214 HeightIDWflatPolar.wrap: None\n    test 1215 HeightIDWflatPolar: 2.370266641\n    test 1216 HeightIDWflatPolar(float): <class 'float'>\n    test 1217 HeightIDWflatPolar(latlon): True\n    test 1218 HeightIDWflatPolar_(tuple): True\n    test 1219 HeightIDWflatPolar(tuple): <class 'tuple'>\n    test 1220 HeightIDWflatPolar(tuple-float): <class 'float'>\n    test 1221 HeightIDWflatPolar(tuple-float): <class 'float'>\n    test 1222 HeightIDWflatPolar(list): <class 'list'>\n    test 1223 HeightIDWflatPolar(list-float): <class 'float'>\n    test 1224 HeightIDWflatPolar(list-float): <class 'float'>\n    test 1225 HeightIDWflatPolar(latlon): True\n\n    test 1226 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWhaversine'>, True)\n    test 1227 HeightIDWhaversine.copy(): (<class 'pygeodesy.heights.HeightIDWhaversine'>, True)\n    test 1228 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 1229 HeightIDWhaversine.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 1230 HeightIDWhaversine.kmin: 2\n    test 1231 HeightIDWhaversine.wrap: None\n    test 1232 HeightIDWhaversine: 2.402157442\n    test 1233 HeightIDWhaversine(float): <class 'float'>\n    test 1234 HeightIDWhaversine(latlon): True\n    test 1235 HeightIDWhaversine_(tuple): True\n    test 1236 HeightIDWhaversine(tuple): <class 'tuple'>\n    test 1237 HeightIDWhaversine(tuple-float): <class 'float'>\n    test 1238 HeightIDWhaversine(tuple-float): <class 'float'>\n    test 1239 HeightIDWhaversine(list): <class 'list'>\n    test 1240 HeightIDWhaversine(list-float): <class 'float'>\n    test 1241 HeightIDWhaversine(list-float): <class 'float'>\n    test 1242 HeightIDWhaversine(latlon): True\n\n    test 1243 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWhubeny'>, True)\n    test 1244 HeightIDWhubeny.copy(): (<class 'pygeodesy.heights.HeightIDWhubeny'>, True)\n    test 1245 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 1246 HeightIDWhubeny.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 1247 HeightIDWhubeny.kmin: 2\n    test 1248 HeightIDWhubeny.wrap: None\n    test 1249 HeightIDWhubeny: 2.401661562\n    test 1250 HeightIDWhubeny(float): <class 'float'>\n    test 1251 HeightIDWhubeny(latlon): True\n    test 1252 HeightIDWhubeny_(tuple): True\n    test 1253 HeightIDWhubeny(tuple): <class 'tuple'>\n    test 1254 HeightIDWhubeny(tuple-float): <class 'float'>\n    test 1255 HeightIDWhubeny(tuple-float): <class 'float'>\n    test 1256 HeightIDWhubeny(list): <class 'list'>\n    test 1257 HeightIDWhubeny(list-float): <class 'float'>\n    test 1258 HeightIDWhubeny(list-float): <class 'float'>\n    test 1259 HeightIDWhubeny(latlon): True\n\n    test 1260 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWkarney'>, True)\n    test 1261 HeightIDWkarney.copy(): (<class 'pygeodesy.heights.HeightIDWkarney'>, True)\n    test 1262 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 1263 HeightIDWkarney.datum: name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84\n    test 1264 HeightIDWkarney.kmin: 2\n    test 1265 HeightIDWkarney.wrap: None\n    test 1266 HeightIDWkarney: 2.402157442\n    test 1267 HeightIDWkarney(float): <class 'float'>\n    test 1268 HeightIDWkarney(latlon): True\n    test 1269 HeightIDWkarney_(tuple): True\n    test 1270 HeightIDWkarney(tuple): <class 'tuple'>\n    test 1271 HeightIDWkarney(tuple-float): <class 'float'>\n    test 1272 HeightIDWkarney(tuple-float): <class 'float'>\n    test 1273 HeightIDWkarney(list): <class 'list'>\n    test 1274 HeightIDWkarney(list-float): <class 'float'>\n    test 1275 HeightIDWkarney(list-float): <class 'float'>\n    test 1276 HeightIDWkarney(latlon): True\n\n    test 1277 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWthomas'>, True)\n    test 1278 HeightIDWthomas.copy(): (<class 'pygeodesy.heights.HeightIDWthomas'>, True)\n    test 1279 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 1280 HeightIDWthomas.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 1281 HeightIDWthomas.kmin: 2\n    test 1282 HeightIDWthomas.wrap: None\n    test 1283 HeightIDWthomas: 2.401661653\n    test 1284 HeightIDWthomas(float): <class 'float'>\n    test 1285 HeightIDWthomas(latlon): True\n    test 1286 HeightIDWthomas_(tuple): True\n    test 1287 HeightIDWthomas(tuple): <class 'tuple'>\n    test 1288 HeightIDWthomas(tuple-float): <class 'float'>\n    test 1289 HeightIDWthomas(tuple-float): <class 'float'>\n    test 1290 HeightIDWthomas(list): <class 'list'>\n    test 1291 HeightIDWthomas(list-float): <class 'float'>\n    test 1292 HeightIDWthomas(list-float): <class 'float'>\n    test 1293 HeightIDWthomas(latlon): True\n\n    test 1294 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWvincentys'>, True)\n    test 1295 HeightIDWvincentys.copy(): (<class 'pygeodesy.heights.HeightIDWvincentys'>, True)\n    test 1296 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 1297 HeightIDWvincentys.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 1298 HeightIDWvincentys.kmin: 2\n    test 1299 HeightIDWvincentys.wrap: None\n    test 1300 HeightIDWvincentys: 2.402157442\n    test 1301 HeightIDWvincentys(float): <class 'float'>\n    test 1302 HeightIDWvincentys(latlon): True\n    test 1303 HeightIDWvincentys_(tuple): True\n    test 1304 HeightIDWvincentys(tuple): <class 'tuple'>\n    test 1305 HeightIDWvincentys(tuple-float): <class 'float'>\n    test 1306 HeightIDWvincentys(tuple-float): <class 'float'>\n    test 1307 HeightIDWvincentys(list): <class 'list'>\n    test 1308 HeightIDWvincentys(list-float): <class 'float'>\n    test 1309 HeightIDWvincentys(list-float): <class 'float'>\n    test 1310 HeightIDWvincentys(latlon): True\n\n    test 1311 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightLinear'>, True)\n    test 1312 HeightLinear.copy(): (<class 'pygeodesy.heights.HeightLinear'>, True)\n    test 1313 HeightError: llis[0] (9.0): 'float' object has no attribute 'lat'\n    test 1314 HeightLinear.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 1315 HeightLinear.kmin: 2\n    test 1316 HeightLinear.wrap: None\n    test 1317 HeightLinear: 3.000000000  FAILED, KNOWN, expected 2.294914622\n    test 1318 HeightLinear(float): <class 'float'>\n    test 1319 HeightLinear(latlon): True\n    test 1320 HeightLinear_(tuple): True\n    test 1321 HeightLinear(tuple): <class 'tuple'>\n    test 1322 HeightLinear(tuple-float): <class 'float'>\n    test 1323 HeightLinear(tuple-float): <class 'float'>\n    test 1324 HeightLinear(list): <class 'list'>\n    test 1325 HeightLinear(list-float): <class 'float'>\n    test 1326 HeightLinear(list-float): <class 'float'>\n    test 1327 HeightLinear(latlon): True\n\n    test 1328 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightLSQBiSpline'>, True)\n    test 1329 HeightLSQBiSpline.copy(): (<class 'pygeodesy.heights.HeightLSQBiSpline'>, True)\n    test 1330 HeightError: llis[0] (9.0): 'float' object has no attribute 'lat'\n    test 1331 HeightLSQBiSpline.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 1332 HeightLSQBiSpline.kmin: 16\n    test 1333 HeightLSQBiSpline.wrap: None\n    test 1334 HeightLSQBiSpline: 6.419251669\n    test 1335 HeightLSQBiSpline(float): <class 'float'>\n    test 1336 HeightLSQBiSpline(latlon): True\n    test 1337 HeightLSQBiSpline_(tuple): True\n    test 1338 HeightLSQBiSpline(tuple): <class 'tuple'>\n    test 1339 HeightLSQBiSpline(tuple-float): <class 'float'>\n    test 1340 HeightLSQBiSpline(tuple-float): <class 'float'>\n    test 1341 HeightLSQBiSpline(list): <class 'list'>\n    test 1342 HeightLSQBiSpline(list-float): <class 'float'>\n    test 1343 HeightLSQBiSpline(list-float): <class 'float'>\n    test 1344 HeightLSQBiSpline(latlon): True\n\n    test 1345 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightLSQBiSpline'>, True)\n    test 1346 HeightLSQBiSpline.copy(): (<class 'pygeodesy.heights.HeightLSQBiSpline'>, True)\n    test 1347 HeightError: llis[0] (9.0): 'float' object has no attribute 'lat'\n    test 1348 HeightLSQBiSpline.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 1349 HeightLSQBiSpline.kmin: 16\n    test 1350 HeightLSQBiSpline.wrap: None\n    test 1351 HeightLSQBiSpline: 6.419251669\n    test 1352 HeightLSQBiSpline(float): <class 'float'>\n    test 1353 HeightLSQBiSpline(latlon): True\n    test 1354 HeightLSQBiSpline_(tuple): True\n    test 1355 HeightLSQBiSpline(tuple): <class 'tuple'>\n    test 1356 HeightLSQBiSpline(tuple-float): <class 'float'>\n    test 1357 HeightLSQBiSpline(tuple-float): <class 'float'>\n    test 1358 HeightLSQBiSpline(list): <class 'list'>\n    test 1359 HeightLSQBiSpline(list-float): <class 'float'>\n    test 1360 HeightLSQBiSpline(list-float): <class 'float'>\n    test 1361 HeightLSQBiSpline(latlon): True\n\n    test 1362 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightLSQBiSpline'>, True)\n    test 1363 HeightLSQBiSpline.copy(): (<class 'pygeodesy.heights.HeightLSQBiSpline'>, True)\n    test 1364 HeightError: llis[0] (9.0): 'float' object has no attribute 'lat'\n    test 1365 HeightLSQBiSpline.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 1366 HeightLSQBiSpline.kmin: 16\n    test 1367 HeightLSQBiSpline.wrap: None\n    test 1368 HeightLSQBiSpline: 6.419251669\n    test 1369 HeightLSQBiSpline(float): <class 'float'>\n    test 1370 HeightLSQBiSpline(latlon): True\n    test 1371 HeightLSQBiSpline_(tuple): True\n    test 1372 HeightLSQBiSpline(tuple): <class 'tuple'>\n    test 1373 HeightLSQBiSpline(tuple-float): <class 'float'>\n    test 1374 HeightLSQBiSpline(tuple-float): <class 'float'>\n    test 1375 HeightLSQBiSpline(list): <class 'list'>\n    test 1376 HeightLSQBiSpline(list-float): <class 'float'>\n    test 1377 HeightLSQBiSpline(list-float): <class 'float'>\n    test 1378 HeightLSQBiSpline(latlon): True\n\n    test 1379 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightSmoothBiSpline'>, True)\n    test 1380 HeightSmoothBiSpline.copy(): (<class 'pygeodesy.heights.HeightSmoothBiSpline'>, True)\n    test 1381 HeightError: llis[0] (9.0): 'float' object has no attribute 'lat'\n    test 1382 HeightSmoothBiSpline.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 1383 HeightSmoothBiSpline.kmin: 16\n    test 1384 HeightSmoothBiSpline.wrap: None\n    test 1385 HeightSmoothBiSpline: 2.598922541\n    test 1386 HeightSmoothBiSpline(float): <class 'float'>\n    test 1387 HeightSmoothBiSpline(latlon): True\n    test 1388 HeightSmoothBiSpline_(tuple): True\n    test 1389 HeightSmoothBiSpline(tuple): <class 'tuple'>\n    test 1390 HeightSmoothBiSpline(tuple-float): <class 'float'>\n    test 1391 HeightSmoothBiSpline(tuple-float): <class 'float'>\n    test 1392 HeightSmoothBiSpline(list): <class 'list'>\n    test 1393 HeightSmoothBiSpline(list-float): <class 'float'>\n    test 1394 HeightSmoothBiSpline(list-float): <class 'float'>\n    test 1395 HeightSmoothBiSpline(latlon): True\n\n\n    10 of 1395 testHeights.py tests (0.7%) FAILED, incl. 1 KNOWN plus 9 DeprecationWarnings (pygeodesy 26.3.26 Python 3.11.9 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 1.24.2 scipy 1.10.1 Math 2 macOS 26.3.1 isLazy 0 -W  default) 13.589 sec\nrunning /usr/local/bin/p....n3.11 -W default ~/PyGeodesy/test/testInterns.py\n\n    testing testInterns.py 25.04.12 (module pygeodesy.interns 25.11.07)\n    test 1 _0_ = '0': True\n    test 2 _0_ = '0': 0\n    test 3 _0to9_ = '0123456789': True\n    test 4 _0to9_ = '0123456789': 0123456789  FAILED, KNOWN, expected 0to9\n    test 5 _1_ = '1': True\n    test 6 _1_ = '1': 1\n    test 7 _2_ = '2': True\n    test 8 _2_ = '2': 2\n    test 9 _3_ = '3': True\n    test 10 _3_ = '3': 3\n    test 11 _4_ = '4': True\n    test 12 _4_ = '4': 4\n    test 13 __all__ = ('NN', 'Str_'): False  FAILED, KNOWN, expected True\n    test 14 __builtins__ = {'__name__': 'builtins', ....) for help about object.}: False  FAILED, KNOWN, expected True\n    test 15 __cached__ = './pygeodesy/__pycache__/interns.cpython-311.pyc': True\n    test 16 __doc__ = \"Single C{str}ing constan.... L{pygeodesy.machine}.\\n\": True\n    test 17 __file__ = './pygeodesy/interns.py': True\n    test 18 __loader__ = <_frozen_importlib_extern....er object at 0x10566b4d0>: False  FAILED, KNOWN, expected True\n    test 19 __name__ = 'pygeodesy.interns': True\n    test 20 __package__ = 'pygeodesy': True\n    test 21 __spec__ = ModuleSpec(name='pygeodes....'./pygeodesy/interns.py'): False  FAILED, KNOWN, expected True\n    test 22 __version__ = '25.11.07': True\n    test 23 _a12_ = 'a12': True\n    test 24 _a12_ = 'a12': a12\n    test 25 _A_ = 'A': True\n    test 26 _A_ = 'A': a\n    test 27 _a_ = 'a': True\n    test 28 _a_ = 'a': a\n    test 29 _Airy1830_ = 'Airy1830': True\n    test 30 _Airy1830_ = 'Airy1830': airy1830\n    test 31 _AiryModified_ = 'AiryModified': True\n    test 32 _AiryModified_ = 'AiryModified': airymodified\n    test 33 _ambiguous_ = 'ambiguous': True\n    test 34 _ambiguous_ = 'ambiguous': ambiguous\n    test 35 _AMPERSAND_ = '&': True\n    test 36 _AMPERSAND_ = '&': &  FAILED, KNOWN, expected ampersand\n    test 37 _an_ = 'an': True\n    test 38 _an_ = 'an': an\n    test 39 _and_ = 'and': True\n    test 40 _and_ = 'and': and\n    test 41 _angle_ = 'angle': True\n    test 42 _angle_ = 'angle': angle\n    test 43 _antipodal_ = 'antipodal': True\n    test 44 _antipodal_ = 'antipodal': antipodal\n    test 45 _area_ = 'area': True\n    test 46 _area_ = 'area': area\n    test 47 _arg_ = 'arg': True\n    test 48 _arg_ = 'arg': arg\n    test 49 _AT_ = '@': True\n    test 50 _AT_ = '@': @  FAILED, KNOWN, expected at\n    test 51 _AtoZnoIO_ = 'ABCDEFGHJKLMNPQRSTUVWXYZ': True\n    test 52 _AtoZnoIO_ = 'ABCDEFGHJKLMNPQRSTUVWXYZ': abcdefghjklmnpqrstuvwxyz  FAILED, KNOWN, expected atoznoio\n    test 53 _attribute_ = 'attribute': True\n    test 54 _attribute_ = 'attribute': attribute\n    test 55 _azi12_ = 'azi12': True\n    test 56 _azi12_ = 'azi12': azi12\n    test 57 _azi1_ = 'azi1': True\n    test 58 _azi1_ = 'azi1': azi1\n    test 59 _azi2_ = 'azi2': True\n    test 60 _azi2_ = 'azi2': azi2\n    test 61 _azimuth_ = 'azimuth': True\n    test 62 _azimuth_ = 'azimuth': azimuth\n    test 63 _B_ = 'B': True\n    test 64 _B_ = 'B': b\n    test 65 _b_ = 'b': True\n    test 66 _b_ = 'b': b\n    test 67 _BACKSLASH_ = '\\\\': True\n    test 68 _BACKSLASH_ = '\\\\': \\  FAILED, KNOWN, expected backslash\n    test 69 _band_ = 'band': True\n    test 70 _band_ = 'band': band\n    test 71 _BANG_ = '!': True\n    test 72 _BANG_ = '!': !  FAILED, KNOWN, expected bang\n    test 73 _BAR_ = '|': True\n    test 74 _BAR_ = '|': |  FAILED, KNOWN, expected bar\n    test 75 _bearing_ = 'bearing': True\n    test 76 _bearing_ = 'bearing': bearing\n    test 77 _Bessel1841_ = 'Bessel1841': True\n    test 78 _Bessel1841_ = 'Bessel1841': bessel1841\n    test 79 _beta_ = 'beta': True\n    test 80 _beta_ = 'beta': beta\n    test 81 _by_ = 'by': True\n    test 82 _by_ = 'by': by\n    test 83 _C_ = 'C': True\n    test 84 _C_ = 'C': c\n    test 85 _c_ = 'c': True\n    test 86 _c_ = 'c': c\n    test 87 _cartesian_ = 'cartesian': True\n    test 88 _cartesian_ = 'cartesian': cartesian\n    test 89 _center_ = 'center': True\n    test 90 _center_ = 'center': center\n    test 91 _Clarke1866_ = 'Clarke1866': True\n    test 92 _Clarke1866_ = 'Clarke1866': clarke1866\n    test 93 _Clarke1880IGN_ = 'Clarke1880IGN': True\n    test 94 _Clarke1880IGN_ = 'Clarke1880IGN': clarke1880ign\n    test 95 _clip_ = 'clip': True\n    test 96 _clip_ = 'clip': clip\n    test 97 _clipid_ = 'clipid': True\n    test 98 _clipid_ = 'clipid': clipid\n    test 99 _coincident_ = 'coincident': True\n    test 100 _coincident_ = 'coincident': coincident\n    test 101 _colinear_ = 'colinear': True\n    test 102 _colinear_ = 'colinear': colinear\n    test 103 _COLON_ = ':': True\n    test 104 _COLON_ = ':': :  FAILED, KNOWN, expected colon\n    test 105 _COLONSPACE_ = ': ': True\n    test 106 _COLONSPACE_ = ': ': :   FAILED, KNOWN, expected colonspace\n    test 107 _COMMA_ = ',': True\n    test 108 _COMMA_ = ',': ,  FAILED, KNOWN, expected comma\n    test 109 _COMMASPACE_ = ', ': True\n    test 110 _COMMASPACE_ = ', ': ,   FAILED, KNOWN, expected commaspace\n    test 111 _composite_ = 'composite': True\n    test 112 _composite_ = 'composite': composite\n    test 113 _concentric_ = 'concentric': True\n    test 114 _concentric_ = 'concentric': concentric\n    test 115 _convergence_ = 'convergence': True\n    test 116 _convergence_ = 'convergence': convergence\n    test 117 _conversion_ = 'conversion': True\n    test 118 _conversion_ = 'conversion': conversion\n    test 119 _convex_ = 'convex': True\n    test 120 _convex_ = 'convex': convex\n    test 121 _D_ = 'D': True\n    test 122 _D_ = 'D': d\n    test 123 _d_ = 'd': True\n    test 124 _d_ = 'd': d\n    test 125 _DALL_ = '__all__': True\n    test 126 _DALL_ = '__all__': __all__  FAILED, KNOWN, expected dall\n    test 127 _DASH_ = '-': True\n    test 128 _DASH_ = '-': -  FAILED, KNOWN, expected dash\n    test 129 _datum_ = 'datum': True\n    test 130 _datum_ = 'datum': datum\n    test 131 _DDOT_ = '..': True\n    test 132 _DDOT_ = '..': ..  FAILED, KNOWN, expected ddot\n    test 133 _decode3_ = 'decode3': True\n    test 134 _decode3_ = 'decode3': decode3\n    test 135 _deg_ = 'deg': True\n    test 136 _deg_ = 'deg': deg\n    test 137 _degrees2_ = 'degrees2': True\n    test 138 _degrees2_ = 'degrees2': degrees2\n    test 139 _degrees_ = 'degrees': True\n    test 140 _degrees_ = 'degrees': degrees\n    test 141 _delta_ = 'delta': True\n    test 142 _delta_ = 'delta': delta\n    test 143 _DEPRECATED_ = 'DEPRECATED': True\n    test 144 _DEPRECATED_ = 'DEPRECATED': deprecated\n    test 145 _DEQUALSPACED_ = ' == ': True\n    test 146 _DEQUALSPACED_ = ' == ':  ==   FAILED, KNOWN, expected dequalspaced\n    test 147 _distance_ = 'distance': True\n    test 148 _distance_ = 'distance': distance\n    test 149 _distant_ = 'distant': True\n    test 150 _distant_ = 'distant': distant\n    test 151 _DMAIN_ = '__main__': True\n    test 152 _DMAIN_ = '__main__': __main__  FAILED, KNOWN, expected dmain\n    test 153 _DNAME_ = '__name__': True\n    test 154 _DNAME_ = '__name__': __name__  FAILED, KNOWN, expected dname\n    test 155 _doesn_t_exist_ = \"doesn't exist\": True\n    test 156 _doesn_t_exist_ = \"doesn't exist\": doesn't exist  FAILED, KNOWN, expected doesn_t_exist\n    test 157 _DOT_ = '.': True\n    test 158 _DOT_ = '.': .  FAILED, KNOWN, expected dot\n    test 159 _DSLASH_ = '//': True\n    test 160 _DSLASH_ = '//': //  FAILED, KNOWN, expected dslash\n    test 161 _DSTAR_ = '**': True\n    test 162 _DSTAR_ = '**': **  FAILED, KNOWN, expected dstar\n    test 163 _DUNDER_ = '__': True\n    test 164 _DUNDER_ = '__': __  FAILED, KNOWN, expected dunder\n    test 165 _duplicate_ = 'duplicate': True\n    test 166 _duplicate_ = 'duplicate': duplicate\n    test 167 _E_ = 'E': True\n    test 168 _E_ = 'E': e\n    test 169 _e_ = 'e': True\n    test 170 _e_ = 'e': e\n    test 171 _earth_ = 'earth': True\n    test 172 _earth_ = 'earth': earth\n    test 173 _easting_ = 'easting': True\n    test 174 _easting_ = 'easting': easting\n    test 175 _ecef_ = 'ecef': True\n    test 176 _ecef_ = 'ecef': ecef\n    test 177 _edge_ = 'edge': True\n    test 178 _edge_ = 'edge': edge\n    test 179 _elevation_ = 'elevation': True\n    test 180 _elevation_ = 'elevation': elevation\n    test 181 _ELLIPSIS4_ = '....': True\n    test 182 _ELLIPSIS4_ = '....': ....  FAILED, KNOWN, expected ellipsis4\n    test 183 _ELLIPSIS_ = '...': True\n    test 184 _ELLIPSIS_ = '...': ...  FAILED, KNOWN, expected ellipsis\n    test 185 _ellipsoid_ = 'ellipsoid': True\n    test 186 _ellipsoid_ = 'ellipsoid': ellipsoid\n    test 187 _ellipsoidal_ = 'ellipsoidal': True\n    test 188 _ellipsoidal_ = 'ellipsoidal': ellipsoidal\n    test 189 _encode_ = 'encode': True\n    test 190 _encode_ = 'encode': encode\n    test 191 _end_ = 'end': True\n    test 192 _end_ = 'end': end\n    test 193 _epoch_ = 'epoch': True\n    test 194 _epoch_ = 'epoch': epoch\n    test 195 _EQUAL_ = '=': True\n    test 196 _EQUAL_ = '=': =  FAILED, KNOWN, expected equal\n    test 197 _EQUALSPACED_ = ' = ': True\n    test 198 _EQUALSPACED_ = ' = ':  =   FAILED, KNOWN, expected equalspaced\n    test 199 _Error_ = 'Error': True\n    test 200 _Error_ = 'Error': error\n    test 201 _EW_ = 'EW': True\n    test 202 _EW_ = 'EW': ew\n    test 203 _exceed_PI_radians_ = 'exceed PI radians': True\n    test 204 _exceed_PI_radians_ = 'exceed PI radians': exceed pi radians  FAILED, KNOWN, expected exceed_pi_radians\n    test 205 _exceeds_ = 'exceeds': True\n    test 206 _exceeds_ = 'exceeds': exceeds\n    test 207 _exists_ = 'exists': True\n    test 208 _exists_ = 'exists': exists\n    test 209 _F_ = 'F': True\n    test 210 _F_ = 'F': f\n    test 211 _f_ = 'f': True\n    test 212 _f_ = 'f': f\n    test 213 _feet_ = 'feet': True\n    test 214 _feet_ = 'feet': feet\n    test 215 _few_ = 'few': True\n    test 216 _few_ = 'few': few\n    test 217 _fi_ = 'fi': True\n    test 218 _fi_ = 'fi': fi\n    test 219 _finite_ = 'finite': True\n    test 220 _finite_ = 'finite': finite\n    test 221 _from_ = 'from': True\n    test 222 _from_ = 'from': from\n    test 223 _g_ = 'g': True\n    test 224 _g_ = 'g': g\n    test 225 _gamma_ = 'gamma': True\n    test 226 _gamma_ = 'gamma': gamma\n    test 227 _GRS80_ = 'GRS80': True\n    test 228 _GRS80_ = 'GRS80': grs80\n    test 229 _H_ = 'H': True\n    test 230 _H_ = 'H': h\n    test 231 _h_ = 'h': True\n    test 232 _h_ = 'h': h\n    test 233 _HASH_ = '#': True\n    test 234 _HASH_ = '#': #  FAILED, KNOWN, expected hash\n    test 235 _height_ = 'height': True\n    test 236 _height_ = 'height': height\n    test 237 _hemipole_ = 'hemipole': True\n    test 238 _hemipole_ = 'hemipole': hemipole\n    test 239 _i_ = 'i': True\n    test 240 _i_ = 'i': i\n    test 241 _immutable_ = 'immutable': True\n    test 242 _immutable_ = 'immutable': immutable\n    test 243 _in_ = 'in': True\n    test 244 _in_ = 'in': in\n    test 245 _incompatible_ = 'incompatible': True\n    test 246 _incompatible_ = 'incompatible': incompatible\n    test 247 _INF_ = 'INF': True\n    test 248 _INF_ = 'INF': inf\n    test 249 _infinite_ = 'infinite': True\n    test 250 _infinite_ = 'infinite': infinite\n    test 251 _initial_ = 'initial': True\n    test 252 _initial_ = 'initial': initial\n    test 253 _inside_ = 'inside': True\n    test 254 _inside_ = 'inside': inside\n    test 255 _insufficient_ = 'insufficient': True\n    test 256 _insufficient_ = 'insufficient': insufficient\n    test 257 _intersection_ = 'intersection': True\n    test 258 _intersection_ = 'intersection': intersection\n    test 259 _Intl1924_ = 'Intl1924': True\n    test 260 _Intl1924_ = 'Intl1924': intl1924\n    test 261 _INV_ = 'INV': True\n    test 262 _INV_ = 'INV': inv\n    test 263 _invalid_ = 'invalid': True\n    test 264 _invalid_ = 'invalid': invalid\n    test 265 _invokation_ = 'invokation': True\n    test 266 _invokation_ = 'invokation': invokation\n    test 267 _j_ = 'j': True\n    test 268 _j_ = 'j': j\n    test 269 _k0_ = 'k0': True\n    test 270 _k0_ = 'k0': k0\n    test 271 _keyword_ = 'keyword': True\n    test 272 _keyword_ = 'keyword': keyword\n    test 273 _kind_ = 'kind': True\n    test 274 _kind_ = 'kind': kind\n    test 275 _Krassovski1940_ = 'Krassovski1940': True\n    test 276 _Krassovski1940_ = 'Krassovski1940': krassovski1940\n    test 277 _Krassowsky1940_ = 'Krassowsky1940': True\n    test 278 _Krassowsky1940_ = 'Krassowsky1940': krassowsky1940\n    test 279 _lam_ = 'lam': True\n    test 280 _lam_ = 'lam': lam\n    test 281 _LANGLE_ = '<': True\n    test 282 _LANGLE_ = '<': <  FAILED, KNOWN, expected langle\n    test 283 _lat0_ = 'lat0': True\n    test 284 _lat0_ = 'lat0': lat0\n    test 285 _lat1_ = 'lat1': True\n    test 286 _lat1_ = 'lat1': lat1\n    test 287 _lat2_ = 'lat2': True\n    test 288 _lat2_ = 'lat2': lat2\n    test 289 _lat_ = 'lat': True\n    test 290 _lat_ = 'lat': lat\n    test 291 _LatLon_ = 'LatLon': True\n    test 292 _LatLon_ = 'LatLon': latlon\n    test 293 _latlon_ = 'latlon': True\n    test 294 _latlon_ = 'latlon': latlon\n    test 295 _LCURLY_ = '{': True\n    test 296 _LCURLY_ = '{': {  FAILED, KNOWN, expected lcurly\n    test 297 _len_ = 'len': True\n    test 298 _len_ = 'len': len\n    test 299 _limit_ = 'limit': True\n    test 300 _limit_ = 'limit': limit\n    test 301 _line_ = 'line': True\n    test 302 _line_ = 'line': line\n    test 303 _lon0_ = 'lon0': True\n    test 304 _lon0_ = 'lon0': lon0\n    test 305 _lon1_ = 'lon1': True\n    test 306 _lon1_ = 'lon1': lon1\n    test 307 _lon2_ = 'lon2': True\n    test 308 _lon2_ = 'lon2': lon2\n    test 309 _lon_ = 'lon': True\n    test 310 _lon_ = 'lon': lon\n    test 311 _low_ = 'low': True\n    test 312 _low_ = 'low': low\n    test 313 _LPAREN_ = '(': True\n    test 314 _LPAREN_ = '(': (  FAILED, KNOWN, expected lparen\n    test 315 _LSQUARE_ = '[': True\n    test 316 _LSQUARE_ = '[': [  FAILED, KNOWN, expected lsquare\n    test 317 _ltp_ = 'ltp': True\n    test 318 _ltp_ = 'ltp': ltp\n    test 319 _M12_ = 'M12': True\n    test 320 _M12_ = 'M12': m12\n    test 321 _m12_ = 'm12': True\n    test 322 _m12_ = 'm12': m12\n    test 323 _M21_ = 'M21': True\n    test 324 _M21_ = 'M21': m21\n    test 325 _M_ = 'M': True\n    test 326 _M_ = 'M': m\n    test 327 _m_ = 'm': True\n    test 328 _m_ = 'm': m\n    test 329 _MANT_DIG_ = 'MANT_DIG': True\n    test 330 _MANT_DIG_ = 'MANT_DIG': mant_dig\n    test 331 _MAX_ = 'MAX': True\n    test 332 _MAX_ = 'MAX': max\n    test 333 _mean_ = 'mean': True\n    test 334 _mean_ = 'mean': mean\n    test 335 _meanOf_ = 'meanOf': True\n    test 336 _meanOf_ = 'meanOf': meanof\n    test 337 _meridional_ = 'meridional': True\n    test 338 _meridional_ = 'meridional': meridional\n    test 339 _meter2_ = 'meter2': True\n    test 340 _meter2_ = 'meter2': meter2\n    test 341 _meter_ = 'meter': True\n    test 342 _meter_ = 'meter': meter\n    test 343 _MGRS_ = 'MGRS': True\n    test 344 _MGRS_ = 'MGRS': mgrs\n    test 345 _MIN_ = 'MIN': True\n    test 346 _MIN_ = 'MIN': min\n    test 347 _MINUS_ = '-': True\n    test 348 _MINUS_ = '-': -  FAILED, KNOWN, expected minus\n    test 349 _module_ = 'module': True\n    test 350 _module_ = 'module': module\n    test 351 _N_ = 'N': True\n    test 352 _N_ = 'N': n\n    test 353 _n_ = 'n': True\n    test 354 _n_ = 'n': n\n    test 355 _N_A_ = 'N/A': True\n    test 356 _N_A_ = 'N/A': n/a  FAILED, KNOWN, expected n_a\n    test 357 _n_a_ = 'n/a': True\n    test 358 _n_a_ = 'n/a': n/a  FAILED, KNOWN, expected n_a\n    test 359 _NAD27_ = 'NAD27': True\n    test 360 _NAD27_ = 'NAD27': nad27\n    test 361 _NAD83_ = 'NAD83': True\n    test 362 _NAD83_ = 'NAD83': nad83\n    test 363 _name_ = 'name': True\n    test 364 _name_ = 'name': name\n    test 365 _NAN_ = 'NAN': True\n    test 366 _NAN_ = 'NAN': nan\n    test 367 _NE_ = 'NE': True\n    test 368 _NE_ = 'NE': ne\n    test 369 _near_ = 'near': True\n    test 370 _near_ = 'near': near\n    test 371 _nearestOn2_ = 'nearestOn2': True\n    test 372 _nearestOn2_ = 'nearestOn2': neareston2\n    test 373 _negative_ = 'negative': True\n    test 374 _negative_ = 'negative': negative\n    test 375 _NL_ = '\\n': True\n    test 376 _NL_ = '\\n': \n  FAILED, KNOWN, expected nl\n    test 377 _NLATvar_ = '\\n@var ': True\n    test 378 _NLATvar_ = '\\n@var ': \n@var   FAILED, KNOWN, expected nlatvar\n    test 379 _NLHASH_ = '\\n# ': True\n    test 380 _NLHASH_ = '\\n# ': \n#   FAILED, KNOWN, expected nlhash\n    test 381 _NN_ = 'NN': True\n    test 382 _NN_ = 'NN': nn\n    test 383 _no_ = 'no': True\n    test 384 _no_ = 'no': no\n    test 385 _northing_ = 'northing': True\n    test 386 _northing_ = 'northing': northing\n    test 387 _not_ = 'not': True\n    test 388 _not_ = 'not': not\n    test 389 _not_finite_ = 'not finite': True\n    test 390 _not_finite_ = 'not finite': not finite  FAILED, KNOWN, expected not_finite\n    test 391 _not_scalar_ = 'not scalar': True\n    test 392 _not_scalar_ = 'not scalar': not scalar  FAILED, KNOWN, expected not_scalar\n    test 393 _NOTEQUAL_ = '!=': True\n    test 394 _NOTEQUAL_ = '!=': !=  FAILED, KNOWN, expected notequal\n    test 395 _NS_ = 'NS': True\n    test 396 _NS_ = 'NS': ns\n    test 397 _NSEW_ = 'NSEW': True\n    test 398 _NSEW_ = 'NSEW': nsew\n    test 399 _NTF_ = 'NTF': True\n    test 400 _NTF_ = 'NTF': ntf\n    test 401 _null_ = 'null': True\n    test 402 _null_ = 'null': null\n    test 403 _number_ = 'number': True\n    test 404 _number_ = 'number': number\n    test 405 _numpy_ = 'numpy': True\n    test 406 _numpy_ = 'numpy': numpy\n    test 407 _Nv00_ = 'Nv00': True\n    test 408 _Nv00_ = 'Nv00': nv00\n    test 409 _NW_ = 'NW': True\n    test 410 _NW_ = 'NW': nw\n    test 411 _odd_ = 'odd': True\n    test 412 _odd_ = 'odd': odd\n    test 413 _of_ = 'of': True\n    test 414 _of_ = 'of': of\n    test 415 _on_ = 'on': True\n    test 416 _on_ = 'on': on\n    test 417 _opposite_ = 'opposite': True\n    test 418 _opposite_ = 'opposite': opposite\n    test 419 _or_ = 'or': True\n    test 420 _or_ = 'or': or\n    test 421 _other_ = 'other': True\n    test 422 _other_ = 'other': other\n    test 423 _outside_ = 'outside': True\n    test 424 _outside_ = 'outside': outside\n    test 425 _overlap_ = 'overlap': True\n    test 426 _overlap_ = 'overlap': overlap\n    test 427 _parallel_ = 'parallel': True\n    test 428 _parallel_ = 'parallel': parallel\n    test 429 _PERCENT_ = '%': True\n    test 430 _PERCENT_ = '%': %  FAILED, KNOWN, expected percent\n    test 431 _PERCENTDOTSTAR_ = '%.*': True\n    test 432 _PERCENTDOTSTAR_ = '%.*': %.*  FAILED, KNOWN, expected percentdotstar\n    test 433 _phi_ = 'phi': True\n    test 434 _phi_ = 'phi': phi\n    test 435 _PLUS_ = '+': True\n    test 436 _PLUS_ = '+': +  FAILED, KNOWN, expected plus\n    test 437 _PLUSMINUS_ = '+-': True\n    test 438 _PLUSMINUS_ = '+-': +-  FAILED, KNOWN, expected plusminus\n    test 439 _point_ = 'point': True\n    test 440 _point_ = 'point': point\n    test 441 _points_ = 'points': True\n    test 442 _points_ = 'points': points\n    test 443 _pole_ = 'pole': True\n    test 444 _pole_ = 'pole': pole\n    test 445 _precision_ = 'precision': True\n    test 446 _precision_ = 'precision': precision\n    test 447 _prime_vertical_ = 'prime_vertical': True\n    test 448 _prime_vertical_ = 'prime_vertical': prime_vertical\n    test 449 _pygeodesy_ = 'pygeodesy': True\n    test 450 _pygeodesy_ = 'pygeodesy': pygeodesy\n    test 451 _pygeodesy_abspath_ = 'pygeodesy_abspath': True\n    test 452 _pygeodesy_abspath_ = 'pygeodesy_abspath': pygeodesy_abspath\n    test 453 _PyPy__ = 'PyPy ': True\n    test 454 _PyPy__ = 'PyPy ': pypy   FAILED, KNOWN, expected pypy\n    test 455 _Python_ = 'Python': True\n    test 456 _Python_ = 'Python': python\n    test 457 _python_ = 'python': True\n    test 458 _python_ = 'python': python\n    test 459 _QUOTE1_ = \"'\": True\n    test 460 _QUOTE1_ = \"'\": '  FAILED, KNOWN, expected quote1\n    test 461 _QUOTE2_ = '\"': True\n    test 462 _QUOTE2_ = '\"': \"  FAILED, KNOWN, expected quote2\n    test 463 _QUOTE3_ = \"'''\": True\n    test 464 _QUOTE3_ = \"'''\": '''  FAILED, KNOWN, expected quote3\n    test 465 _R_ = 'R': True\n    test 466 _R_ = 'R': r\n    test 467 _radians2_ = 'radians2': True\n    test 468 _radians2_ = 'radians2': radians2\n    test 469 _radians_ = 'radians': True\n    test 470 _radians_ = 'radians': radians\n    test 471 _radius1_ = 'radius1': True\n    test 472 _radius1_ = 'radius1': radius1\n    test 473 _radius2_ = 'radius2': True\n    test 474 _radius2_ = 'radius2': radius2\n    test 475 _radius_ = 'radius': True\n    test 476 _radius_ = 'radius': radius\n    test 477 _range_ = 'range': True\n    test 478 _range_ = 'range': range\n    test 479 _RANGLE_ = '>': True\n    test 480 _RANGLE_ = '>': >  FAILED, KNOWN, expected rangle\n    test 481 _RCURLY_ = '}': True\n    test 482 _RCURLY_ = '}': }  FAILED, KNOWN, expected rcurly\n    test 483 _reciprocal_ = 'reciprocal': True\n    test 484 _reciprocal_ = 'reciprocal': reciprocal\n    test 485 _reframe_ = 'reframe': True\n    test 486 _reframe_ = 'reframe': reframe\n    test 487 _resolution_ = 'resolution': True\n    test 488 _resolution_ = 'resolution': resolution\n    test 489 _rIn_ = 'rIn': True\n    test 490 _rIn_ = 'rIn': rin\n    test 491 _RPAREN_ = ')': True\n    test 492 _RPAREN_ = ')': )  FAILED, KNOWN, expected rparen\n    test 493 _RSQUARE_ = ']': True\n    test 494 _RSQUARE_ = ']': ]  FAILED, KNOWN, expected rsquare\n    test 495 _S12_ = 'S12': True\n    test 496 _S12_ = 'S12': s12\n    test 497 _s12_ = 's12': True\n    test 498 _s12_ = 's12': s12\n    test 499 _S_ = 'S': True\n    test 500 _S_ = 'S': s\n    test 501 _s_ = 's': True\n    test 502 _s_ = 's': s\n    test 503 _scalar_ = 'scalar': True\n    test 504 _scalar_ = 'scalar': scalar\n    test 505 _scale0_ = 'scale0': True\n    test 506 _scale0_ = 'scale0': scale0\n    test 507 _scale_ = 'scale': True\n    test 508 _scale_ = 'scale': scale\n    test 509 _scipy_ = 'scipy': True\n    test 510 _scipy_ = 'scipy': scipy\n    test 511 _SE_ = 'SE': True\n    test 512 _SE_ = 'SE': se\n    test 513 _semi_circular_ = 'semi-circular': True\n    test 514 _semi_circular_ = 'semi-circular': semi-circular  FAILED, KNOWN, expected semi_circular\n    test 515 _sep_ = 'sep': True\n    test 516 _sep_ = 'sep': sep\n    test 517 _singular_ = 'singular': True\n    test 518 _singular_ = 'singular': singular\n    test 519 _SLASH_ = '/': True\n    test 520 _SLASH_ = '/': /  FAILED, KNOWN, expected slash\n    test 521 _small_ = 'small': True\n    test 522 _small_ = 'small': small\n    test 523 _SPACE_ = ' ': True\n    test 524 _SPACE_ = ' ':    FAILED, KNOWN, expected space\n    test 525 _specified_ = 'specified': True\n    test 526 _specified_ = 'specified': specified\n    test 527 _Sphere_ = 'Sphere': True\n    test 528 _Sphere_ = 'Sphere': sphere\n    test 529 _spherical_ = 'spherical': True\n    test 530 _spherical_ = 'spherical': spherical\n    test 531 _STAR_ = '*': True\n    test 532 _STAR_ = '*': *  FAILED, KNOWN, expected star\n    test 533 _start_ = 'start': True\n    test 534 _start_ = 'start': start\n    test 535 _std_ = 'std': True\n    test 536 _std_ = 'std': std\n    test 537 _stdev_ = 'stdev': True\n    test 538 _stdev_ = 'stdev': stdev\n    test 539 _SW_ = 'SW': True\n    test 540 _SW_ = 'SW': sw\n    test 541 _tbd_ = 'tbd': True\n    test 542 _tbd_ = 'tbd': tbd\n    test 543 _TILDE_ = '~': True\n    test 544 _TILDE_ = '~': ~  FAILED, KNOWN, expected tilde\n    test 545 _to_ = 'to': True\n    test 546 _to_ = 'to': to\n    test 547 _tolerance_ = 'tolerance': True\n    test 548 _tolerance_ = 'tolerance': tolerance\n    test 549 _too_ = 'too': True\n    test 550 _too_ = 'too': too\n    test 551 _transform_ = 'transform': True\n    test 552 _transform_ = 'transform': transform\n    test 553 _UNDER_ = '_': True\n    test 554 _UNDER_ = '_': _  FAILED, KNOWN, expected under\n    test 555 _units_ = 'units': True\n    test 556 _units_ = 'units': units\n    test 557 _UNUSED_ = 'UNUSED': True\n    test 558 _UNUSED_ = 'UNUSED': unused\n    test 559 _up_ = 'up': True\n    test 560 _up_ = 'up': up\n    test 561 _UPS_ = 'UPS': True\n    test 562 _UPS_ = 'UPS': ups\n    test 563 _utf_8_ = 'utf-8': True\n    test 564 _utf_8_ = 'utf-8': utf-8  FAILED, KNOWN, expected utf_8\n    test 565 _UTM_ = 'UTM': True\n    test 566 _UTM_ = 'UTM': utm\n    test 567 _V_ = 'V': True\n    test 568 _V_ = 'V': v\n    test 569 _valid_ = 'valid': True\n    test 570 _valid_ = 'valid': valid\n    test 571 _value_ = 'value': True\n    test 572 _value_ = 'value': value\n    test 573 _version_ = 'version': True\n    test 574 _version_ = 'version': version\n    test 575 _vs_ = 'vs': True\n    test 576 _vs_ = 'vs': vs\n    test 577 _W_ = 'W': True\n    test 578 _W_ = 'W': w\n    test 579 _WGS72_ = 'WGS72': True\n    test 580 _WGS72_ = 'WGS72': wgs72\n    test 581 _WGS84_ = 'WGS84': True\n    test 582 _WGS84_ = 'WGS84': wgs84\n    test 583 _width_ = 'width': True\n    test 584 _width_ = 'width': width\n    test 585 _with_ = 'with': True\n    test 586 _with_ = 'with': with\n    test 587 _X_ = 'X': True\n    test 588 _X_ = 'X': x\n    test 589 _x_ = 'x': True\n    test 590 _x_ = 'x': x\n    test 591 _xyz_ = 'xyz': True\n    test 592 _xyz_ = 'xyz': xyz\n    test 593 _Y_ = 'Y': True\n    test 594 _Y_ = 'Y': y\n    test 595 _y_ = 'y': True\n    test 596 _y_ = 'y': y\n    test 597 _Z_ = 'Z': True\n    test 598 _Z_ = 'Z': z\n    test 599 _z_ = 'z': True\n    test 600 _z_ = 'z': z\n    test 601 _zone_ = 'zone': True\n    test 602 _zone_ = 'zone': zone\n    test 603 .tillC: ABC\n    test 604 .fromX: XYZ\n    test 605 .fromH.tillJ: HJ\n    test 606 .fromN.tillP: NP\n\n    test 607 machine: arm64\n    test 608 sysctl: 0\n    test 609 usage: python3 -m pygeodesy.interns\n    test 610 version: (3, 11)\n\n    64 of 610 testInterns.py tests (10.5%) FAILED, ALL KNOWN (pygeodesy 26.3.26 Python 3.11.9 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 1.24.2 scipy 1.10.1 Math 2 macOS 26.3.1 isLazy 0 -W  default) 7.846 ms\nrunning /usr/local/bin/p....n3.11 -W default ~/PyGeodesy/test/testIters.py\n\n    testing testIters.py 23.03.27 (module pygeodesy.iters 25.05.19)\n    test 1 i : 7\n    test 2 dedup: False\n    test 3 i : 0\n    test 4 p0: True\n    test 5 dedup: True\n    test 6 copies: [0, 1, 2, 3, 4, 5, 6, 7]\n    test 7 i : 0\n    test 8 copies: 9\n    test 9 p0: True\n    test 10 copies: True\n    test 11 copies: (0, 1, 2, 3, 4, 5, 6, 7)\n    test 12 iter: 1\n    test 13 iter: 2\n    test 14 iter: 3\n    test 15 re-iter: PointsError('points (0): too few')\n\n    all 15 testIters.py tests passed (pygeodesy 26.3.26 Python 3.11.9 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 1.24.2 scipy 1.10.1 Math 2 macOS 26.3.1 isLazy 0 -W  default) 315.905 us\nrunning /usr/local/bin/p....n3.11 -W default ~/PyGeodesy/test/testKarney.py\n./pygeodesy/ellipsoidalKarney.py:139: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return fabs(_polygon(datum.ellipsoid.geodesic, points, True, False, wrap, polar))\n./pygeodesy/ellipsoidalKarney.py:347: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return _polygon(datum.ellipsoid.geodesic, points, closed, True, wrap, False)\n\n    testing testKarney.py 25.12.20 (module pygeodesy.karney 25.12.23)\n    test 1 Geodesic: True\n    test 2 Geodesic: True\n\n    testDirect(pygeodesy.geodesicw, 25.05.28)\n    test 3 Direct.lat2: -11.174910000000\n    test 4 Direct.lon2: -69.959210000000\n    test 5 Direct.azi2: 129.289270889709\n    test 6 Direct.a12: 80.507297142820\n    test 7 Direct.m12: 6273170.205530384555  FAILED, KNOWN (1.48461e-14), expected 6273170.205530383624\n    test 8 Direct.M12: 0.166063184474\n    test 9 Direct.M21: 0.164791169456\n    test 10 Direct.S12: 12841384694976.431640625000\n    test 11 Direct.lat2: 77.031960000000\n    test 12 Direct.lon2: 197.182340000000\n    test 13 Direct.azi2: 109.112041110672\n    test 14 Direct.a12: 36.892740690446\n    test 15 Direct.m12: 3828869.334438760299  FAILED, KNOWN (1.21618e-14), expected 3828869.334438760765\n    test 16 Direct.M12: 0.800763496081\n    test 17 Direct.M21: 0.801010069842\n    test 18 Direct.S12: 61674961290615.609375000000  FAILED, KNOWN (1.26672e-14), expected 61674961290615.617187500000\n    test 19 Direct.lat2: 41.841380000000\n    test 20 Direct.lon2: 98.566350000000\n    test 21 Direct.azi2: -41.843599514405\n    test 22 Direct.a12: 75.629304910115\n    test 23 Direct.m12: 6161154.577311060391  FAILED, KNOWN (1.5116e-14), expected 6161154.577311061323\n    test 24 Direct.M12: 0.248163392340\n    test 25 Direct.M21: 0.249302512036\n    test 26 Direct.S12: -6637997720646.715820312500  FAILED, KNOWN (1.47117e-14), expected -6637997720646.716796875000\n    test 27 Direct.lat2: -12.706310000000\n    test 28 Direct.lon2: 285.903440000000\n    test 29 Direct.azi2: 2.512956620914\n    test 30 Direct.a12: 100.278634181156\n    test 31 Direct.m12: 6289939.567044666968  FAILED, KNOWN (2.96131e-14), expected 6289939.567044668831\n    test 32 Direct.M12: -0.171994902747\n    test 33 Direct.M21: -0.177225695263\n    test 34 Direct.S12: -121287239862139.734375000000  FAILED, KNOWN (1.28826e-14), expected -121287239862139.750000000000\n    test 35 Direct.lat2: -15.847840000000\n    test 36 Direct.lon2: 5.935570000000\n    test 37 Direct.azi2: -20.787484651537\n    test 38 Direct.a12: 144.640108810286\n    test 39 Direct.m12: 3732902.158387716860  FAILED, KNOWN (4.9898e-14), expected 3732902.158387718722\n    test 40 Direct.M12: -0.812736387001\n    test 41 Direct.M21: -0.812998005192\n    test 42 Direct.S12: 97825992354058.703125000000\n\n    testInverse(pygeodesy.geodesicw, 25.05.28)\n    test 43 Inverse.lat2: -11.174910000000\n    test 44 Inverse.lon2: -69.959210000000\n    test 45 Inverse.azi1: 111.098748429560\n    test 46 Inverse.azi2: 129.289270889709\n    test 47 Inverse.s12: 8935244.560481829569\n    test 48 Inverse.a12: 80.507297142820\n    test 49 Inverse.m12: 6273170.205530383624\n    test 50 Inverse.M12: 0.166063184474\n    test 51 Inverse.M21: 0.164791169456\n    test 52 Inverse.S12: 12841384694976.433593750000  FAILED, KNOWN (1.52096e-14), expected 12841384694976.431640625000\n    test 53 Inverse.lat2: 77.031960000000\n    test 54 Inverse.lon2: 197.182340000000\n    test 55 Inverse.azi1: 22.020059880983\n    test 56 Inverse.azi2: 109.112041110672\n    test 57 Inverse.s12: 4105086.171392441727  FAILED, KNOWN (2.2687e-14), expected 4105086.171392440796\n    test 58 Inverse.a12: 36.892740690446\n    test 59 Inverse.m12: 3828869.334438761696  FAILED, KNOWN (2.43237e-14), expected 3828869.334438760765\n    test 60 Inverse.M12: 0.800763496081\n    test 61 Inverse.M21: 0.801010069842\n    test 62 Inverse.S12: 61674961290615.617187500000\n    test 63 Inverse.lat2: 41.841380000000\n    test 64 Inverse.lon2: 98.566350000000\n    test 65 Inverse.azi1: -32.444568764332\n    test 66 Inverse.azi2: -41.843599514405\n    test 67 Inverse.s12: 8394328.894657669589  FAILED, KNOWN (2.21893e-14), expected 8394328.894657671452\n    test 68 Inverse.a12: 75.629304910115\n    test 69 Inverse.m12: 6161154.577311060391  FAILED, KNOWN (1.5116e-14), expected 6161154.577311061323\n    test 70 Inverse.M12: 0.248163392340\n    test 71 Inverse.M21: 0.249302512036\n    test 72 Inverse.S12: -6637997720646.717773437500  FAILED, KNOWN (1.47117e-14), expected -6637997720646.716796875000\n    test 73 Inverse.lat2: -12.706310000000\n    test 74 Inverse.lon2: 285.903440000000\n    test 75 Inverse.azi1: 173.734912408784\n    test 76 Inverse.azi2: 2.512956620914\n    test 77 Inverse.s12: 11150344.231208024547\n    test 78 Inverse.a12: 100.278634181156\n    test 79 Inverse.m12: 6289939.567044666968  FAILED, KNOWN (2.96131e-14), expected 6289939.567044668831\n    test 80 Inverse.M12: -0.171994902747\n    test 81 Inverse.M21: -0.177225695263\n    test 82 Inverse.S12: -121287239862139.718750000000  FAILED, KNOWN (2.57653e-14), expected -121287239862139.750000000000\n    test 83 Inverse.lat2: -15.847840000000\n    test 84 Inverse.lon2: 5.935570000000\n    test 85 Inverse.azi1: -159.033557661193\n    test 86 Inverse.azi2: -20.787484651537\n    test 87 Inverse.s12: 16076603.163118068129\n    test 88 Inverse.a12: 144.640108810286\n    test 89 Inverse.m12: 3732902.158387719188  FAILED, KNOWN (1.24745e-14), expected 3732902.158387718722\n    test 90 Inverse.M12: -0.812736387001\n    test 91 Inverse.M21: -0.812998005192\n    test 92 Inverse.S12: 97825992354058.703125000000\n    test 93 Inverse.lat2: 90.000000000000\n    test 94 Inverse.lon2: 0.000000000000\n    test 95 Inverse.azi1: 0.000000000000\n    test 96 Inverse.azi2: 0.000000000000\n    test 97 Inverse.s12: 558455.588646476739  FAILED, KNOWN (8.53641e-11), expected 558455.588646000018\n    test 98 Inverse.a12: 5.016734754264  FAILED, KNOWN (4.89833e-06), expected 5.016735000000\n    test 99 Inverse.m12: 557747.059253584128  FAILED, KNOWN (7.45563e-11), expected 557747.059253999963\n    test 100 Inverse.M12: 0.996194698092  FAILED, KNOWN (3.03061e-05), expected 0.996195000000\n    test 101 Inverse.M21: 0.996194828008  FAILED, KNOWN (1.72648e-05), expected 0.996195000000\n    test 102 Inverse.S12: 0.000000000000\n    test 103 Inverse.lat2: 90.000000000000\n    test 104 Inverse.lon2: 10.000000000000\n    test 105 Inverse.azi1: 0.000000000000\n    test 106 Inverse.azi2: 10.000000000000\n    test 107 Inverse.s12: 558455.588646476739  FAILED, KNOWN (8.53641e-11), expected 558455.588646000018\n    test 108 Inverse.a12: 5.016734754264  FAILED, KNOWN (4.89833e-06), expected 5.016735000000\n    test 109 Inverse.m12: 557747.059253584128  FAILED, KNOWN (7.45563e-11), expected 557747.059253999963\n    test 110 Inverse.M12: 0.996194698092  FAILED, KNOWN (3.03061e-05), expected 0.996195000000\n    test 111 Inverse.M21: 0.996194828008  FAILED, KNOWN (1.72648e-05), expected 0.996195000000\n    test 112 Inverse.S12: 7084244746167.895507812500\n\n    testInverseLine(pygeodesy.geodesicw, 25.05.28)\n    test 113 InverseLine[0].lat: 40.640\n    test 114 InverseLine[0].lon: -73.779\n    test 115 InverseLine[1].lat: 49.825  FAILED, KNOWN (0.00641087), expected 49.829\n    test 116 InverseLine[1].lon: -72.962\n    test 117 InverseLine[2].lat: 58.992  FAILED, KNOWN (0.0026387), expected 58.994\n    test 118 InverseLine[2].lon: -71.759\n    test 119 InverseLine[3].lat: 68.132  FAILED, KNOWN (0.00640093), expected 68.127\n    test 120 InverseLine[3].lon: -69.677  FAILED, KNOWN (0.0019843), expected -69.678\n    test 121 InverseLine[4].lat: 77.203  FAILED, KNOWN (0.0174018), expected 77.190\n    test 122 InverseLine[4].lon: -64.830  FAILED, KNOWN (0.0188051), expected -64.842\n    test 123 InverseLine[5].lat: 85.794  FAILED, KNOWN (0.023512), expected 85.774\n    test 124 InverseLine[5].lon: -39.425  FAILED, KNOWN (0.511977), expected -39.628\n    test 125 InverseLine[6].lat: 83.690  FAILED, KNOWN (0.0405821), expected 83.724\n    test 126 InverseLine[6].lon: 80.754  FAILED, KNOWN (0.167168), expected 80.619\n    test 127 InverseLine[7].lat: 74.828  FAILED, KNOWN (0.0632801), expected 74.875\n    test 128 InverseLine[7].lon: 94.774  FAILED, KNOWN (0.0324631), expected 94.743\n    test 129 InverseLine[8].lat: 65.730  FAILED, KNOWN (0.0856355), expected 65.786\n    test 130 InverseLine[8].lon: 98.489  FAILED, KNOWN (0.0149102), expected 98.474\n    test 131 InverseLine[9].lat: 56.582  FAILED, KNOWN (0.108466), expected 56.643\n    test 132 InverseLine[9].lon: 100.254  FAILED, KNOWN (0.0088657), expected 100.246\n    test 133 InverseLine[10].lat: 47.409  FAILED, KNOWN (0.13059), expected 47.471\n    test 134 InverseLine[10].lon: 101.327  FAILED, KNOWN (0.00584966), expected 101.321\n    test 135 InverseLine[11].lat: 38.220  FAILED, KNOWN (0.150547), expected 38.277\n    test 136 InverseLine[11].lon: 102.079  FAILED, KNOWN (0.00399913), expected 102.075\n    test 137 InverseLine[12].lat: 29.017  FAILED, KNOWN (0.166648), expected 29.066\n    test 138 InverseLine[12].lon: 102.662  FAILED, KNOWN (0.0026948), expected 102.659\n    test 139 InverseLine[13].lat: 19.804  FAILED, KNOWN (0.176529), expected 19.839\n    test 140 InverseLine[13].lon: 103.148  FAILED, KNOWN (0.00167385), expected 103.147\n    test 141 InverseLine[14].lat: 10.584  FAILED, KNOWN (0.173707), expected 10.602\n    test 142 InverseLine[14].lon: 103.581\n    test 143 InverseLine[15].lat: 1.359\n    test 144 InverseLine[15].lon: 103.989\n\n    testGeodCalc(pygeodesy.ellipsoidalKarney, 25.05.27)\n    test 145 area: 13662703680020\n    test 146 perimeter: 16831067.892791\n\n    testMask(pygeodesy.geodesicw, 25.05.28)\n    test 147 Geodesic.EMPTY: 0b0\n    test 148 Geodesic.LATITUDE: 0b10000000\n    test 149 Geodesic.LONGITUDE: 0b100001000\n    test 150 Geodesic.AZIMUTH: 0b1000000000\n    test 151 Geodesic.AREA: 0b100000000010000\n    test 152 Geodesic.DISTANCE: 0b10000000001\n    test 153 Geodesic.DISTANCE_IN: 0b100000000011\n    test 154 Geodesic.REDUCEDLENGTH: 0b1000000000101\n    test 155 Geodesic.GEODESICSCALE: 0b10000000000101\n    test 156 Geodesic.STANDARD: 0b11110001001\n    test 157 Geodesic.STANDARD_LINE: 0b111110001011\n    test 158 Geodesic.ALL: 0b111111110011111\n    test 159 Caps: ALL|AREA|AZIMUTH|AZIMUTH_DISTANCE|AZIMUTH_DISTANCE_AREA|DISTANCE|DISTANCE_IN|GEODESICSCALE|LATITUDE|LATITUDE_LONGITUDE|LATITUDE_LONGITUDE_AREA|LINE_CAPS|LONGITUDE|REDUCEDLENGTH|STANDARD|STANDARD_LINE\n    test 160 Caps: ALL|AREA|AZIMUTH|AZIMUTH_DISTANCE|AZIMUTH_DISTANCE_AREA|DISTANCE|DISTANCE_IN|GEODESICSCALE|LATITUDE|LATITUDE_LONGITUDE|LATITUDE_LONGITUDE_AREA|LINE_CAPS|LONGITUDE|REDUCEDLENGTH|STANDARD|STANDARD_LINE\n\n    testDirect(pygeodesy.geodesicx, 25.12.23)\n    test 161 Direct.lat2: -11.174910000000\n    test 162 Direct.lon2: -69.959210000000\n    test 163 Direct.azi2: 129.289270889709\n    test 164 Direct.a12: 80.507297142820\n    test 165 Direct.m12: 6273170.205530384555  FAILED, KNOWN (1.48461e-14), expected 6273170.205530383624\n    test 166 Direct.M12: 0.166063184474\n    test 167 Direct.M21: 0.164791169456\n    test 168 Direct.S12: 12841384694976.431640625000\n    test 169 Direct.lat2: 77.031960000000\n    test 170 Direct.lon2: 197.182340000000\n    test 171 Direct.azi2: 109.112041110672\n    test 172 Direct.a12: 36.892740690446\n    test 173 Direct.m12: 3828869.334438760299  FAILED, KNOWN (1.21618e-14), expected 3828869.334438760765\n    test 174 Direct.M12: 0.800763496081\n    test 175 Direct.M21: 0.801010069842\n    test 176 Direct.S12: 61674961290615.609375000000  FAILED, KNOWN (1.26672e-14), expected 61674961290615.617187500000\n    test 177 Direct.lat2: 41.841380000000\n    test 178 Direct.lon2: 98.566350000000\n    test 179 Direct.azi2: -41.843599514405\n    test 180 Direct.a12: 75.629304910115\n    test 181 Direct.m12: 6161154.577311059460  FAILED, KNOWN (3.02321e-14), expected 6161154.577311061323\n    test 182 Direct.M12: 0.248163392340\n    test 183 Direct.M21: 0.249302512036\n    test 184 Direct.S12: -6637997720646.717773437500  FAILED, KNOWN (1.47117e-14), expected -6637997720646.716796875000\n    test 185 Direct.lat2: -12.706310000000\n    test 186 Direct.lon2: 285.903440000000\n    test 187 Direct.azi2: 2.512956620914\n    test 188 Direct.a12: 100.278634181156\n    test 189 Direct.m12: 6289939.567044666968  FAILED, KNOWN (2.96131e-14), expected 6289939.567044668831\n    test 190 Direct.M12: -0.171994902747\n    test 191 Direct.M21: -0.177225695263\n    test 192 Direct.S12: -121287239862139.734375000000  FAILED, KNOWN (1.28826e-14), expected -121287239862139.750000000000\n    test 193 Direct.lat2: -15.847840000000\n    test 194 Direct.lon2: 5.935570000000\n    test 195 Direct.azi2: -20.787484651537\n    test 196 Direct.a12: 144.640108810286\n    test 197 Direct.m12: 3732902.158387716860  FAILED, KNOWN (4.9898e-14), expected 3732902.158387718722\n    test 198 Direct.M12: -0.812736387001\n    test 199 Direct.M21: -0.812998005192\n    test 200 Direct.S12: 97825992354058.703125000000\n\n    testInverse(pygeodesy.geodesicx, 25.12.23)\n    test 201 Inverse.lat2: -11.174910000000\n    test 202 Inverse.lon2: -69.959210000000\n    test 203 Inverse.azi1: 111.098748429560\n    test 204 Inverse.azi2: 129.289270889709\n    test 205 Inverse.s12: 8935244.560481829569\n    test 206 Inverse.a12: 80.507297142820\n    test 207 Inverse.m12: 6273170.205530383624\n    test 208 Inverse.M12: 0.166063184474\n    test 209 Inverse.M21: 0.164791169456\n    test 210 Inverse.S12: 12841384694976.433593750000  FAILED, KNOWN (1.52096e-14), expected 12841384694976.431640625000\n    test 211 Inverse.lat2: 77.031960000000\n    test 212 Inverse.lon2: 197.182340000000\n    test 213 Inverse.azi1: 22.020059880983\n    test 214 Inverse.azi2: 109.112041110672\n    test 215 Inverse.s12: 4105086.171392441727  FAILED, KNOWN (2.2687e-14), expected 4105086.171392440796\n    test 216 Inverse.a12: 36.892740690446\n    test 217 Inverse.m12: 3828869.334438761696  FAILED, KNOWN (2.43237e-14), expected 3828869.334438760765\n    test 218 Inverse.M12: 0.800763496081\n    test 219 Inverse.M21: 0.801010069842\n    test 220 Inverse.S12: 61674961290615.617187500000\n    test 221 Inverse.lat2: 41.841380000000\n    test 222 Inverse.lon2: 98.566350000000\n    test 223 Inverse.azi1: -32.444568764332\n    test 224 Inverse.azi2: -41.843599514405\n    test 225 Inverse.s12: 8394328.894657669589  FAILED, KNOWN (2.21893e-14), expected 8394328.894657671452\n    test 226 Inverse.a12: 75.629304910115\n    test 227 Inverse.m12: 6161154.577311059460  FAILED, KNOWN (3.02321e-14), expected 6161154.577311061323\n    test 228 Inverse.M12: 0.248163392340\n    test 229 Inverse.M21: 0.249302512036\n    test 230 Inverse.S12: -6637997720646.715820312500  FAILED, KNOWN (1.47117e-14), expected -6637997720646.716796875000\n    test 231 Inverse.lat2: -12.706310000000\n    test 232 Inverse.lon2: 285.903440000000\n    test 233 Inverse.azi1: 173.734912408784\n    test 234 Inverse.azi2: 2.512956620914\n    test 235 Inverse.s12: 11150344.231208024547\n    test 236 Inverse.a12: 100.278634181156\n    test 237 Inverse.m12: 6289939.567044666968  FAILED, KNOWN (2.96131e-14), expected 6289939.567044668831\n    test 238 Inverse.M12: -0.171994902747\n    test 239 Inverse.M21: -0.177225695263\n    test 240 Inverse.S12: -121287239862139.718750000000  FAILED, KNOWN (2.57653e-14), expected -121287239862139.750000000000\n    test 241 Inverse.lat2: -15.847840000000\n    test 242 Inverse.lon2: 5.935570000000\n    test 243 Inverse.azi1: -159.033557661193\n    test 244 Inverse.azi2: -20.787484651537\n    test 245 Inverse.s12: 16076603.163118068129\n    test 246 Inverse.a12: 144.640108810286\n    test 247 Inverse.m12: 3732902.158387719188  FAILED, KNOWN (1.24745e-14), expected 3732902.158387718722\n    test 248 Inverse.M12: -0.812736387001\n    test 249 Inverse.M21: -0.812998005192\n    test 250 Inverse.S12: 97825992354058.703125000000\n    test 251 Inverse.lat2: 90.000000000000\n    test 252 Inverse.lon2: 0.000000000000\n    test 253 Inverse.azi1: 0.000000000000\n    test 254 Inverse.azi2: 0.000000000000\n    test 255 Inverse.s12: 558020.704208072624  FAILED, KNOWN (0.0778727), expected 558455.588646000018\n    test 256 Inverse.a12: 5.016734754264  FAILED, KNOWN (4.89833e-06), expected 5.016735000000\n    test 257 Inverse.m12: 557747.059253584128  FAILED, KNOWN (7.45563e-11), expected 557747.059253999963\n    test 258 Inverse.M12: 0.996194698092  FAILED, KNOWN (3.03061e-05), expected 0.996195000000\n    test 259 Inverse.M21: 0.996188865576  FAILED, KNOWN (0.000615785), expected 0.996195000000\n    test 260 Inverse.S12: 0.000000000000\n    test 261 Inverse.lat2: 90.000000000000\n    test 262 Inverse.lon2: 10.000000000000\n    test 263 Inverse.azi1: 0.000000000000\n    test 264 Inverse.azi2: 10.000000000000\n    test 265 Inverse.s12: 558020.704208072624  FAILED, KNOWN (0.0778727), expected 558455.588646000018\n    test 266 Inverse.a12: 5.016734754264  FAILED, KNOWN (4.89833e-06), expected 5.016735000000\n    test 267 Inverse.m12: 557747.059253584128  FAILED, KNOWN (7.45563e-11), expected 557747.059253999963\n    test 268 Inverse.M12: 0.996194698092  FAILED, KNOWN (3.03061e-05), expected 0.996195000000\n    test 269 Inverse.M21: 0.996188865576  FAILED, KNOWN (0.000615785), expected 0.996195000000\n    test 270 Inverse.S12: 7084244746167.895507812500\n\n    testInverseLine(pygeodesy.geodesicx, 25.12.23)\n    test 271 InverseLine[0].lat: 40.640\n    test 272 InverseLine[0].lon: -73.779\n    test 273 InverseLine[1].lat: 49.825  FAILED, KNOWN (0.00641087), expected 49.829\n    test 274 InverseLine[1].lon: -72.962\n    test 275 InverseLine[2].lat: 58.992  FAILED, KNOWN (0.0026387), expected 58.994\n    test 276 InverseLine[2].lon: -71.759\n    test 277 InverseLine[3].lat: 68.132  FAILED, KNOWN (0.00640093), expected 68.127\n    test 278 InverseLine[3].lon: -69.677  FAILED, KNOWN (0.0019843), expected -69.678\n    test 279 InverseLine[4].lat: 77.203  FAILED, KNOWN (0.0174018), expected 77.190\n    test 280 InverseLine[4].lon: -64.830  FAILED, KNOWN (0.0188051), expected -64.842\n    test 281 InverseLine[5].lat: 85.794  FAILED, KNOWN (0.023512), expected 85.774\n    test 282 InverseLine[5].lon: -39.425  FAILED, KNOWN (0.511977), expected -39.628\n    test 283 InverseLine[6].lat: 83.690  FAILED, KNOWN (0.0405821), expected 83.724\n    test 284 InverseLine[6].lon: 80.754  FAILED, KNOWN (0.167168), expected 80.619\n    test 285 InverseLine[7].lat: 74.828  FAILED, KNOWN (0.0632801), expected 74.875\n    test 286 InverseLine[7].lon: 94.774  FAILED, KNOWN (0.0324631), expected 94.743\n    test 287 InverseLine[8].lat: 65.730  FAILED, KNOWN (0.0856355), expected 65.786\n    test 288 InverseLine[8].lon: 98.489  FAILED, KNOWN (0.0149102), expected 98.474\n    test 289 InverseLine[9].lat: 56.582  FAILED, KNOWN (0.108466), expected 56.643\n    test 290 InverseLine[9].lon: 100.254  FAILED, KNOWN (0.0088657), expected 100.246\n    test 291 InverseLine[10].lat: 47.409  FAILED, KNOWN (0.13059), expected 47.471\n    test 292 InverseLine[10].lon: 101.327  FAILED, KNOWN (0.00584966), expected 101.321\n    test 293 InverseLine[11].lat: 38.220  FAILED, KNOWN (0.150547), expected 38.277\n    test 294 InverseLine[11].lon: 102.079  FAILED, KNOWN (0.00399913), expected 102.075\n    test 295 InverseLine[12].lat: 29.017  FAILED, KNOWN (0.166648), expected 29.066\n    test 296 InverseLine[12].lon: 102.662  FAILED, KNOWN (0.0026948), expected 102.659\n    test 297 InverseLine[13].lat: 19.804  FAILED, KNOWN (0.176529), expected 19.839\n    test 298 InverseLine[13].lon: 103.148  FAILED, KNOWN (0.00167385), expected 103.147\n    test 299 InverseLine[14].lat: 10.584  FAILED, KNOWN (0.173707), expected 10.602\n    test 300 InverseLine[14].lon: 103.581\n    test 301 InverseLine[15].lat: 1.359\n    test 302 InverseLine[15].lon: 103.989\n\n    testGeodCalc(pygeodesy.ellipsoidalExact, 25.08.28)\n    test 303 area: 13662703680020\n    test 304 perimeter: 16830891.356049\n\n    testMask(pygeodesy.geodesicx, 25.12.23)\n    test 305 Geodesic.EMPTY: 0b0\n    test 306 Geodesic.LATITUDE: 0b10000000\n    test 307 Geodesic.LONGITUDE: 0b100001000\n    test 308 Geodesic.AZIMUTH: 0b1000000000\n    test 309 Geodesic.AREA: 0b100000000010000\n    test 310 Geodesic.DISTANCE: 0b10000000001\n    test 311 Geodesic.DISTANCE_IN: 0b100000000011\n    test 312 Geodesic.REDUCEDLENGTH: 0b1000000000101\n    test 313 Geodesic.GEODESICSCALE: 0b10000000000101\n    test 314 Geodesic.STANDARD: 0b11110001001\n    test 315 Geodesic.STANDARD_LINE: 0b111110001011\n    test 316 Geodesic.ALL: 0b111111110011111\n    test 317 Caps: ALL|AREA|AZIMUTH|AZIMUTH_DISTANCE|AZIMUTH_DISTANCE_AREA|DISTANCE|DISTANCE_IN|GEODESICSCALE|LATITUDE|LATITUDE_LONGITUDE|LATITUDE_LONGITUDE_AREA|LINE_CAPS|LONGITUDE|REDUCEDLENGTH|STANDARD|STANDARD_LINE\n    test 318 Caps: ALL|AREA|AZIMUTH|AZIMUTH_DISTANCE|AZIMUTH_DISTANCE_AREA|DISTANCE|DISTANCE_IN|GEODESICSCALE|LATITUDE|LATITUDE_LONGITUDE|LATITUDE_LONGITUDE_AREA|LINE_CAPS|LONGITUDE|REDUCEDLENGTH|STANDARD|STANDARD_LINE\n\n    102 tests skipped (102): no GeodSolve\n\n    testMath(pygeodesy.karney, 25.12.23)\n    test 319 sin(-360): -0.0\n    test 320 cos(-360): 1.0\n    test 321 sin(-345): 0.25881904510252074\n    test 322 cos(-345): 0.9659258262890683\n    test 323 sin(-330): 0.5  FAILED, KNOWN, expected 0.49999999999999994\n    test 324 cos(-330): 0.8660254037844386\n    test 325 sin(-315): 0.7071067811865476  FAILED, KNOWN, expected 0.7071067811865475\n    test 326 cos(-315): 0.7071067811865476\n    test 327 sin(-300): 0.8660254037844386  FAILED, KNOWN, expected 0.8660254037844387\n    test 328 cos(-300): 0.5000000000000001\n    test 329 sin(-285): 0.9659258262890683\n    test 330 cos(-285): 0.25881904510252074\n    test 331 sin(-270): 1.0\n    test 332 cos(-270): 0.0\n    test 333 sin(-255): 0.9659258262890683\n    test 334 cos(-255): -0.25881904510252074\n    test 335 sin(-240): 0.8660254037844386  FAILED, KNOWN, expected 0.8660254037844387\n    test 336 cos(-240): -0.5\n    test 337 sin(-225): 0.7071067811865476  FAILED, KNOWN, expected 0.7071067811865475\n    test 338 cos(-225): -0.7071067811865476\n    test 339 sin(-210): 0.5000000000000001  FAILED, KNOWN, expected 0.49999999999999994\n    test 340 cos(-210): -0.8660254037844386\n    test 341 sin(-195): 0.25881904510252074\n    test 342 cos(-195): -0.9659258262890683\n    test 343 sin(-180): -0.0\n    test 344 cos(-180): -1.0\n    test 345 sin(-165): -0.25881904510252074\n    test 346 cos(-165): -0.9659258262890683\n    test 347 sin(-150): -0.5  FAILED, KNOWN, expected -0.49999999999999994\n    test 348 cos(-150): -0.8660254037844386\n    test 349 sin(-135): -0.7071067811865476  FAILED, KNOWN, expected -0.7071067811865475\n    test 350 cos(-135): -0.7071067811865476\n    test 351 sin(-120): -0.8660254037844386  FAILED, KNOWN, expected -0.8660254037844387\n    test 352 cos(-120): -0.5000000000000001\n    test 353 sin(-105): -0.9659258262890683\n    test 354 cos(-105): -0.25881904510252074\n    test 355 sin(-90): -1.0\n    test 356 cos(-90): 0.0\n    test 357 sin(-75): -0.9659258262890683\n    test 358 cos(-75): 0.25881904510252074\n    test 359 sin(-60): -0.8660254037844386  FAILED, KNOWN, expected -0.8660254037844387\n    test 360 cos(-60): 0.5\n    test 361 sin(-45): -0.7071067811865476  FAILED, KNOWN, expected -0.7071067811865475\n    test 362 cos(-45): 0.7071067811865476\n    test 363 sin(-30): -0.5000000000000001  FAILED, KNOWN, expected -0.49999999999999994\n    test 364 cos(-30): 0.8660254037844386\n    test 365 sin(-15): -0.25881904510252074\n    test 366 cos(-15): 0.9659258262890683\n    test 367 sin(0): 0.0\n    test 368 cos(0): 1.0\n    test 369 sin(15): 0.25881904510252074\n    test 370 cos(15): 0.9659258262890683\n    test 371 sin(30): 0.5  FAILED, KNOWN, expected 0.49999999999999994\n    test 372 cos(30): 0.8660254037844386\n    test 373 sin(45): 0.7071067811865476  FAILED, KNOWN, expected 0.7071067811865475\n    test 374 cos(45): 0.7071067811865476\n    test 375 sin(60): 0.8660254037844386  FAILED, KNOWN, expected 0.8660254037844387\n    test 376 cos(60): 0.5000000000000001\n    test 377 sin(75): 0.9659258262890683\n    test 378 cos(75): 0.25881904510252074\n    test 379 sin(90): 1.0\n    test 380 cos(90): 0.0\n    test 381 sin(105): 0.9659258262890683\n    test 382 cos(105): -0.25881904510252074\n    test 383 sin(120): 0.8660254037844386  FAILED, KNOWN, expected 0.8660254037844387\n    test 384 cos(120): -0.5\n    test 385 sin(135): 0.7071067811865476  FAILED, KNOWN, expected 0.7071067811865475\n    test 386 cos(135): -0.7071067811865476\n    test 387 sin(150): 0.5000000000000001  FAILED, KNOWN, expected 0.49999999999999994\n    test 388 cos(150): -0.8660254037844386\n    test 389 sin(165): 0.25881904510252074\n    test 390 cos(165): -0.9659258262890683\n    test 391 sin(180): 0.0\n    test 392 cos(180): -1.0\n    test 393 sin(195): -0.25881904510252074\n    test 394 cos(195): -0.9659258262890683\n    test 395 sin(210): -0.5  FAILED, KNOWN, expected -0.49999999999999994\n    test 396 cos(210): -0.8660254037844386\n    test 397 sin(225): -0.7071067811865476  FAILED, KNOWN, expected -0.7071067811865475\n    test 398 cos(225): -0.7071067811865476\n    test 399 sin(240): -0.8660254037844386  FAILED, KNOWN, expected -0.8660254037844387\n    test 400 cos(240): -0.5000000000000001\n    test 401 sin(255): -0.9659258262890683\n    test 402 cos(255): -0.25881904510252074\n    test 403 sin(270): -1.0\n    test 404 cos(270): 0.0\n    test 405 sin(285): -0.9659258262890683\n    test 406 cos(285): 0.25881904510252074\n    test 407 sin(300): -0.8660254037844386  FAILED, KNOWN, expected -0.8660254037844387\n    test 408 cos(300): 0.5\n    test 409 sin(315): -0.7071067811865476  FAILED, KNOWN, expected -0.7071067811865475\n    test 410 cos(315): 0.7071067811865476\n    test 411 sin(330): -0.5000000000000001  FAILED, KNOWN, expected -0.49999999999999994\n    test 412 cos(330): 0.8660254037844386\n    test 413 sin(345): -0.25881904510252074\n    test 414 cos(345): 0.9659258262890683\n    test 415 sin(360): 0.0\n    test 416 cos(360): 1.0\n    test 417 sin(375): 0.25881904510252074\n    test 418 cos(375): 0.9659258262890683\n    test 419 sin(390): 0.5  FAILED, KNOWN, expected 0.49999999999999994\n    test 420 cos(390): 0.8660254037844386\n    test 421 _diff182(-180, -180): 0.0  FAILED, KNOWN, expected -0.0\n    test 422 _diff182(-180, -90): 90.0\n    test 423 _diff182(-180, 0): 180.0\n    test 424 _diff182(-180, 90): -90.0\n    test 425 _diff182(-180, 180): 0.0\n    test 426 _diff182(-90, -180): -90.0\n    test 427 _diff182(-90, -90): 0.0  FAILED, KNOWN, expected -0.0\n    test 428 _diff182(-90, 0): 90.0\n    test 429 _diff182(-90, 90): 180.0\n    test 430 _diff182(-90, 180): -90.0\n    test 431 _diff182(0, -180): -180.0\n    test 432 _diff182(0, -90): -90.0\n    test 433 _diff182(0, 0): 0.0  FAILED, KNOWN, expected -0.0\n    test 434 _diff182(0, 90): 90.0\n    test 435 _diff182(0, 180): 180.0\n    test 436 _diff182(90, -180): 90.0\n    test 437 _diff182(90, -90): -180.0\n    test 438 _diff182(90, 0): -90.0\n    test 439 _diff182(90, 90): 0.0  FAILED, KNOWN, expected -0.0\n    test 440 _diff182(90, 180): 90.0\n    test 441 _diff182(180, -180): -0.0\n    test 442 _diff182(180, -90): 90.0\n    test 443 _diff182(180, 0): -180.0\n    test 444 _diff182(180, 90): -90.0\n    test 445 _diff182(180, 180): 0.0  FAILED, KNOWN, expected -0.0\n    test 446 _norm180(-361): -1.0\n    test 447  wrap180(-361): -1.0\n    test 448 _norm180(-360): -0.0\n    test 449  wrap180(-360): 0.0  FAILED, KNOWN, expected -0.0\n    test 450 _norm180(-180): -180.0  FAILED, KNOWN, expected 180.0\n    test 451  wrap180(-180): -180.0  FAILED, KNOWN, expected 180.0\n    test 452 _norm180(-90): -90.0\n    test 453  wrap180(-90): -90.0\n    test 454 _norm180(0): 0.0\n    test 455  wrap180(0): 0.0\n    test 456 _norm180(0): 0.0\n    test 457  wrap180(0): 0.0\n    test 458 _norm180(90): 90.0\n    test 459  wrap180(90): 90.0\n    test 460 _norm180(180): 180.0\n    test 461  wrap180(180): 180.0\n    test 462 _norm180(360): 0.0\n    test 463  wrap180(360): 0.0\n    test 464 _norm180(361): 1.0\n    test 465  wrap180(361): 1.0\n    test 466 unroll(-30, 0): (30.0, 0.0)\n    test 467 unroll(-30, 30): (60.0, 30.0)\n    test 468 unroll(-30, 60): (90.0, 60.0)\n    test 469 unroll(-30, 90): (120.0, 90.0)\n    test 470 unroll(-30, 120): (150.0, 120.0)\n    test 471 unroll(-30, 150): (180.0, 150.0)\n    test 472 unroll(-30, 180): (-150.0, -180.0)\n    test 473 unroll(-30, 210): (-120.0, -150.0)\n    test 474 unroll(-30, 240): (-90.0, -120.0)\n    test 475 unroll(-30, 270): (-60.0, -90.0)\n    test 476 unroll(-30, 300): (-30.0, -60.0)\n    test 477 unroll(-30, 330): (0.0, -30.0)\n    test 478 unroll(-30, 360): (30.0, 0.0)\n\n    test 479 _sum3.s: 1.000e-20\n    test 480 _sum3.t: 0.000e+00\n    test 481 fsum_: 1.000e-20\n\n    test 482 _sum3.s: 1.000e-20\n    test 483 _sum3.t: 0.000e+00\n    test 484 fsum_: 1.000e-20\n\n    test 485 _sum3.s: 1.000e-20\n    test 486 _sum3.t: 0.000e+00\n    test 487 fsum_: 1.000e-20\n\n    test 488 _sum3.s: -3.589e+19  FAILED, KNOWN, expected 1.0\n    test 489 _sum3.t: -2.048e+03  FAILED, KNOWN, expected 0.000e+00\n    test 490 fsum_: -3.589e+19  FAILED, KNOWN, expected 1.0\n\n    142 of 490 testKarney.py tests (29.0%) FAILED, incl. 140 KNOWN plus 2 DeprecationWarnings, 102 skipped (pygeodesy 26.3.26 Python 3.11.9 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 1.24.2 scipy 1.10.1 Math 2 macOS 26.3.1 isLazy 0 -W  default) 7.016 sec\nrunning /usr/local/bin/p....n3.11 -W default ~/PyGeodesy/test/testKarneySigns.py\n\n    testing testKarneySigns.py 25.12.23\n\n    test 1 test_AngDiff: ...\n    test 2 test_1: 0.0\n    test 3 test_2: -0.0\n    test 4 test_3: 0.0\n    test 5 test_4: 0.0\n    test 6 test_5: 0.0\n    test 7 test_6: -0.0\n    test 8 test_7: 180.0\n    test 9 test_8: -180.0\n    test 10 test_9: 180.0\n    test 11 test_10: -180.0\n    test 12 test_11: 180.0\n    test 13 test_12: -180.0\n    test 14 test_13: 57.99999999999997\n\n    test 15 test_AngNormalize: ...\n    test 16 test_1: -180.0\n    test 17 test_2: -0.0\n    test 18 test_3: -180.0\n    test 19 test_4: -0.0\n    test 20 test_5: -180.0\n    test 21 test_6: -0.0\n    test 22 test_7: 0.0\n    test 23 test_8: 180.0\n    test 24 test_9: 0.0\n    test 25 test_10: 180.0\n    test 26 test_11: 0.0\n    test 27 test_12: 180.0\n\n    test 28 test_AngRound: ...\n    test 29 test_1: 6.938893903907228e-18\n    test 30 test_2: -6.938893903907228e-18\n    test 31 test_3: -0.0\n    test 32 test_4: -0.0\n    test 33 test_5: 0.0\n    test 34 test_6: 0.0\n    test 35 test_7: 0.015624999999999993\n    test 36 test_8: 0.015625\n    test 37 test_9: 0.015625\n    test 38 test_10: 0.015625\n    test 39 test_11: 0.015625\n    test 40 test_12: 0.015625\n    test 41 test_13: 0.015625\n    test 42 test_14: 0.015625000000000007\n    test 43 test_15: 0.031249999999999993\n    test 44 test_16: 0.03125\n    test 45 test_17: 0.03125\n    test 46 test_18: 0.03125\n    test 47 test_19: 0.03125\n    test 48 test_20: 0.03125000000000001\n    test 49 test_21: 0.062499999999999986\n    test 50 test_22: 0.06249999999999999\n    test 51 test_23: 0.0625\n    test 52 test_24: 0.0625\n    test 53 test_25: 0.0625\n    test 54 test_26: 0.0625\n    test 55 test_27: 0.06250000000000001\n    test 56 test_28: 0.12499999999999997\n    test 57 test_29: 0.12499999999999999\n    test 58 test_30: 0.125\n    test 59 test_31: 0.125\n    test 60 test_32: 0.12500000000000003\n    test 61 test_33: 0.9999999999999998\n    test 62 test_34: 0.9999999999999999\n    test 63 test_35: 1.0\n    test 64 test_36: 1.0\n    test 65 test_37: 1.0\n    test 66 test_38: 1.0\n    test 67 test_39: 1.0000000000000002\n    test 68 test_40: 89.99999999999999\n    test 69 test_41: 90.0\n    test 70 test_42: 90.0\n\n    test 71 test_antipodal: ...\n    test 72 test_1: 0.0\n    test 73 test_1: 180.0\n    test 74 test_2: 180.0\n    test 75 test_2: 0.0\n    test 76 test_3: -0.0\n    test 77 test_3: -180.0\n    test 78 test_4: -180.0\n    test 79 test_4: -0.0\n\n    test 80 test_antipodal_prolate: ...\n    test 81 test_1: 90.0\n    test 82 test_1: 90.0\n    test 83 test_2: -90.0\n    test 84 test_2: -90.0\n\n    test 85 test_azimuth_0_180: ...\n    test 86 test_1: 180.0\n    test 87 test_1: 180.0\n    test 88 test_2: -180.0\n    test 89 test_2: -180.0\n    test 90 test_3: 180.0\n    test 91 test_3: 0.0\n    test 92 test_4: -180.0\n    test 93 test_4: -0.0\n\n    test 94 test_equatorial_coincident: ...\n    test 95 test_1: 180.0\n    test 96 test_1: 180.0\n    test 97 test_2: 0.0\n    test 98 test_2: 0.0\n\n    test 99 test_equatorial_NS: ...\n    test 100 test_1: 55.97  FAILED, KNOWN, expected 56.00\n    test 101 test_1: 124.03  FAILED, KNOWN, expected 124.00\n    test 102 test_2: 124.03  FAILED, KNOWN, expected 124.00\n    test 103 test_2: 55.97  FAILED, KNOWN, expected 56.00\n\n    test 104 test_atan2d: ...\n    test 105 test_1: 179.99999999999997\n    test 106 test_2: 180.0\n    test 107 test_3: -180.0\n    test 108 test_4: 0.0\n    test 109 test_5: -0.0\n    test 110 test_6: 180.0\n    test 111 test_7: -180.0\n    test 112 test_8: 0.0\n    test 113 test_9: -0.0\n    test 114 test_10: -90.0\n    test 115 test_11: -90.0\n    test 116 test_12: 90.0\n    test 117 test_13: 90.0\n    test 118 test_14: 180.0\n    test 119 test_15: -180.0\n    test 120 test_16: 0.0\n    test 121 test_17: -0.0\n    test 122 test_18: 90.0\n    test 123 test_19: 90.0\n    test 124 test_20: -90.0\n    test 125 test_21: -90.0\n    test 126 test_22: 135.0\n    test 127 test_23: -135.0\n    test 128 test_24: 45.0\n    test 129 test_25: -45.0\n    test 130 test_26: nan\n    test 131 test_27: nan\n\n    test 132 test_sincosd: ...\n    test 133 test_1: -1.0000000000000000\n    test 134 test_1: 0.0\n    test 135 test_2: -0.0000000000000000\n    test 136 test_2: 1.0\n    test 137 test_3: 1.0000000000000000\n    test 138 test_3: 0.0\n    test 139 test_4: -0.0000000000000000\n    test 140 test_4: -1.0\n    test 141 test_5: -1.0000000000000000\n    test 142 test_5: 0.0\n    test 143 test_6: -0.0000000000000000\n    test 144 test_6: 1.0\n    test 145 test_7: 1.0000000000000000\n    test 146 test_7: 0.0\n    test 147 test_8: -0.0000000000000000\n    test 148 test_8: -1.0\n    test 149 test_9: -1.0000000000000000\n    test 150 test_9: 0.0\n    test 151 test_10: -0.0000000000000000\n    test 152 test_10: 1.0\n    test 153 test_11: 0.0000000000000000\n    test 154 test_11: 1.0\n    test 155 test_12: 1.0000000000000000\n    test 156 test_12: 0.0\n    test 157 test_13: 0.0000000000000000\n    test 158 test_13: -1.0\n    test 159 test_14: -1.0000000000000000\n    test 160 test_14: 0.0\n    test 161 test_15: 0.0000000000000000\n    test 162 test_15: 1.0\n    test 163 test_16: 1.0000000000000000\n    test 164 test_16: 0.0\n    test 165 test_17: 0.0000000000000000\n    test 166 test_17: -1.0\n    test 167 test_18: -1.0000000000000000\n    test 168 test_18: 0.0\n    test 169 test_19: 0.0000000000000000\n    test 170 test_19: 1.0\n    test 171 test_20: 1.0000000000000000\n    test 172 test_20: 0.0\n    test 173 test_21: nan\n    test 174 test_21: nan\n    test 175 test_22: nan\n    test 176 test_22: nan\n    test 177 test_23: nan\n    test 178 test_23: nan\n    test 179 test_23: 0.1564344650402309\n    test 180 test_23: 0.9876883405951378\n    test 181 test_23: 0.1564344650402309\n    test 182 test_23: 0.9876883405951378\n\n    test 183 test_sum2: ...\n    test 184 test_1: 0.0\n    test 185 test_2: 0.0\n    test 186 test_3: 0.0\n    test 187 test_4: 0.0\n    test 188 test_5: -0.0\n    test 189 test_6: 0.0\n\n    test 190 Accu: 5103.0\n\n    4 of 190 testKarneySigns.py tests (2.1%) FAILED, ALL KNOWN (pygeodesy 26.3.26 Python 3.11.9 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 1.24.2 scipy 1.10.1 Math 2 macOS 26.3.1 isLazy 0 -W  default) 245.803 ms\nrunning /usr/local/bin/p....n3.11 -W default ~/PyGeodesy/test/testKtm.py\n\n    testing testKtm.py 23.03.27 (module pygeodesy.ktm 25.08.31)\n\n    test 1 _TM: KTransverseMercator(ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), k0=0.9996, TMorder=7)\n    test 2 forward 0N (80.000, 0.000) -/-: 0.0, 8881585.815988, 0.0, 0.9996\n    test 3 reverse 0N (80.000, 0.000) -/-: 0.0\n    test 4 forward 3N (79.890, 8.374) -/-: 163544.38007, 8881136.361771, 8.245542, 0.999927\n    test 5 reverse 3N (79.890, 8.374) -/-: 1.7763568394002505e-15\n    test 6 forward 6N (79.562, 16.725) -/-: 333788.634116, 8880946.730424, 16.462884, 1.000962\n    test 7 reverse 6N (79.562, 16.725) -/-: 7.105427357601002e-15\n    test 8 forward 9N (79.015, 25.030) -/-: 516782.400098, 8884389.933155, 24.625783, 1.002865\n    test 9 reverse 9N (79.015, 25.030) -/-: 2.1316282072803006e-14\n    test 10 forward 12N (78.252, 33.266) -/-: 717349.637417, 8896761.249834, 32.712011, 1.005894\n    test 11 reverse 12N (78.252, 33.266) -/-: 5.1728291973635394e-14\n    test 12 forward 15N (77.274, 41.411) -/-: 938645.229361, 8924845.3123, 40.705476, 1.010384\n    test 13 reverse 15N (77.274, 41.411) -/-: 0.0\n    test 14 forward 18N (76.085, 49.443) -/-: 1181870.215451, 8976407.252949, 48.598167, 1.016714\n    test 15 reverse 18N (76.085, 49.443) -/-: 3.8263897345803626e-14\n    test 16 forward 21N (74.686, 57.339) -/-: 1446137.252018, 9059670.735504, 56.391495, 1.025259\n    test 17 reverse 21N (74.686, 57.339) -/-: 5.684341886080802e-14\n    test 18 forward 24N (73.084, 65.078) -/-: 1728450.251911, 9182823.938232, 64.096558, 1.036319\n    test 19 reverse 24N (73.084, 65.078) -/-: 1.4210854715202004e-14\n    test 20 forward 27N (71.281, 72.638) -/-: 2023752.790526, 9353559.771346, 71.732868, 1.050046\n    test 21 reverse 27N (71.281, 72.638) -/-: 1.4210854715202004e-14\n    test 22 forward 30N (69.282, 80.000) -/-: 2325015.074835, 9578621.128889, 79.325231, 1.066355\n    test 23 reverse 30N (69.282, 80.000) -/-: 2.842170943040401e-14\n    test 24 forward 33N (67.094, 87.142) -/-: 2623368.28288, 9863301.12097, 86.898617, 1.084836\n    test 25 reverse 33N (67.094, 87.142) -/-: 0.0\n    test 26 forward 36N (64.721, 94.046) -/-: 2908348.733697, 10210857.598605, 94.471204, 1.104695\n    test 27 reverse 36N (64.721, 94.046) -/-: 0.0\n    test 28 forward 39N (62.172, 100.691) -/-: 3168362.707459, 10621853.317461, 102.04623, 1.124739\n    test 29 reverse 39N (62.172, 100.691) -/-: 7.105427357601002e-15\n    test 30 forward 42N (59.452, 107.061) -/-: 3391492.622467, 11093528.387239, 109.604086, 1.14345\n    test 31 reverse 42N (59.452, 107.061) -/-: 1.5888218580782548e-14\n    test 32 forward 45N (56.569, 113.137) -/-: 3566696.824822, 11619422.467571, 117.096854, 1.159166\n    test 33 reverse 45N (56.569, 113.137) -/-: 0.0\n    test 34 forward 48N (53.530, 118.903) -/-: 3685290.742854, 12189522.028618, 124.447841, 1.170375\n    test 35 reverse 48N (53.530, 118.903) -/-: 1.5888218580782548e-14\n    test 36 forward 51N (50.346, 124.343) -/-: 3742386.824274, 12791126.616764, 131.557863, 1.176031\n    test 37 reverse 51N (50.346, 124.343) -/-: 1.4210854715202004e-14\n    test 38 forward 54N (47.023, 129.443) -/-: 3737846.053669, 13410380.03778, 138.317827, 1.175799\n    test 39 reverse 54N (47.023, 129.443) -/-: 2.929642751054232e-14\n    test 40 forward 57N (43.571, 134.187) -/-: 3676387.634221, 14034104.572541, 144.624552, 1.170121\n    test 41 reverse 57N (43.571, 134.187) -/-: 0.0\n    test 42 forward 60N (40.000, 138.564) -/-: 3566810.754496, 14651410.305646, 150.395289, 1.16007\n    test 43 reverse 60N (40.000, 138.564) -/-: 0.0\n    test 44 forward 63N (36.319, 142.561) -/-: 3420621.906486, 15254653.660248, 155.577129, 1.147079\n    test 45 reverse 63N (36.319, 142.561) -/-: 7.105427357601002e-15\n    test 46 forward 66N (32.539, 146.167) -/-: 3250522.133697, 15839614.666766, 160.149958, 1.132638\n    test 47 reverse 66N (32.539, 146.167) -/-: 7.105427357601002e-15\n    test 48 forward 69N (28.669, 149.373) -/-: 3069132.144368, 16405050.640186, 164.124094, 1.118063\n    test 49 reverse 69N (28.669, 149.373) -/-: 3.552713678800501e-15\n    test 50 forward 72N (24.721, 152.169) -/-: 2888128.173431, 16951919.948156, 167.534978, 1.104377\n    test 51 reverse 72N (24.721, 152.169) -/-: 1.0658141036401503e-14\n    test 52 forward 75N (20.706, 154.548) -/-: 2717773.256417, 17482549.021439, 170.437193, 1.09228\n    test 53 reverse 75N (20.706, 154.548) -/-: 1.7763568394002505e-14\n    test 54 forward 78N (16.633, 156.504) -/-: 2566730.586316, 17999918.486885, 172.899178, 1.082187\n    test 55 reverse 78N (16.633, 156.504) -/-: 1.7763568394002505e-14\n    test 56 forward 81N (12.515, 158.030) -/-: 2442031.891673, 18507145.758, 174.99917, 1.074303\n    test 57 reverse 81N (12.515, 158.030) -/-: 1.2434497875801753e-14\n    test 58 forward 84N (8.362, 159.124) -/-: 2349105.316925, 19007174.828239, 176.822266, 1.068689\n    test 59 reverse 84N (8.362, 159.124) -/-: 1.7763568394002505e-14\n    test 60 forward 87N (4.187, 159.781) -/-: 2291809.478825, 19502649.329559, 178.458273, 1.06534\n    test 61 reverse 87N (4.187, 159.781) -/-: 8.881784197001252e-15\n    test 62 forward 90N (0.000, 160.000) -/-: 2272454.379192, -19995929.886042, -180.0, 1.064227\n    test 63 reverse 90N (0.000, 160.000) -/-: 2.4016501336544057e-14\n    test 64 forward 93N (-4.187, 159.781) -/-: 2291809.478825, -19502649.329559, -178.458273, 1.06534\n    test 65 reverse 93N (-4.187, 159.781) -/-: 6.217248937900877e-15\n    test 66 forward 96N (-8.362, 159.124) -/-: 2349105.316925, -19007174.828239, -176.822266, 1.068689\n    test 67 reverse 96N (-8.362, 159.124) -/-: 1.5987211554602254e-14\n    test 68 forward 99N (-12.515, 158.030) -/-: 2442031.891673, -18507145.758, -174.99917, 1.074303\n    test 69 reverse 99N (-12.515, 158.030) -/-: 7.105427357601002e-15\n    test 70 forward 102N (-16.633, 156.504) -/-: 2566730.586316, -17999918.486885, -172.899178, 1.082187\n    test 71 reverse 102N (-16.633, 156.504) -/-: 2.842170943040401e-14\n    test 72 forward 105N (-20.706, 154.548) -/-: 2717773.256417, -17482549.021439, -170.437193, 1.09228\n    test 73 reverse 105N (-20.706, 154.548) -/-: 1.7763568394002505e-14\n    test 74 forward 108N (-24.721, 152.169) -/-: 2888128.173431, -16951919.948156, -167.534978, 1.104377\n    test 75 reverse 108N (-24.721, 152.169) -/-: 7.105427357601002e-15\n    test 76 forward 111N (-28.669, 149.373) -/-: 3069132.144368, -16405050.640186, -164.124094, 1.118063\n    test 77 reverse 111N (-28.669, 149.373) -/-: 7.105427357601002e-15\n    test 78 forward 114N (-32.539, 146.167) -/-: 3250522.133697, -15839614.666766, -160.149958, 1.132638\n    test 79 reverse 114N (-32.539, 146.167) -/-: 7.105427357601002e-15\n    test 80 forward 117N (-36.319, 142.561) -/-: 3420621.906486, -15254653.660248, -155.577129, 1.147079\n    test 81 reverse 117N (-36.319, 142.561) -/-: 7.105427357601002e-15\n    test 82 forward 120N (-40.000, 138.564) -/-: 3566810.754496, -14651410.305646, -150.395289, 1.16007\n    test 83 reverse 120N (-40.000, 138.564) -/-: 0.0\n    test 84 forward 123N (-43.571, 134.187) -/-: 3676387.634221, -14034104.572541, -144.624552, 1.170121\n    test 85 reverse 123N (-43.571, 134.187) -/-: 0.0\n    test 86 forward 126N (-47.023, 129.443) -/-: 3737846.053669, -13410380.03778, -138.317827, 1.175799\n    test 87 reverse 126N (-47.023, 129.443) -/-: 2.929642751054232e-14\n    test 88 forward 129N (-50.346, 124.343) -/-: 3742386.824274, -12791126.616764, -131.557863, 1.176031\n    test 89 reverse 129N (-50.346, 124.343) -/-: 1.4210854715202004e-14\n    test 90 forward 132N (-53.530, 118.903) -/-: 3685290.742854, -12189522.028618, -124.447841, 1.170375\n    test 91 reverse 132N (-53.530, 118.903) -/-: 1.5888218580782548e-14\n    test 92 forward 135N (-56.569, 113.137) -/-: 3566696.824822, -11619422.467571, -117.096854, 1.159166\n    test 93 reverse 135N (-56.569, 113.137) -/-: 0.0\n    test 94 forward 138N (-59.452, 107.061) -/-: 3391492.622467, -11093528.387239, -109.604086, 1.14345\n    test 95 reverse 138N (-59.452, 107.061) -/-: 1.5888218580782548e-14\n    test 96 forward 141N (-62.172, 100.691) -/-: 3168362.707459, -10621853.317461, -102.04623, 1.124739\n    test 97 reverse 141N (-62.172, 100.691) -/-: 7.105427357601002e-15\n    test 98 forward 144N (-64.721, 94.046) -/-: 2908348.733697, -10210857.598605, -94.471204, 1.104695\n    test 99 reverse 144N (-64.721, 94.046) -/-: 0.0\n    test 100 forward 147N (-67.094, 87.142) -/-: 2623368.28288, -9863301.12097, -86.898617, 1.084836\n    test 101 reverse 147N (-67.094, 87.142) -/-: 0.0\n    test 102 forward 150N (-69.282, 80.000) -/-: 2325015.074835, -9578621.128889, -79.325231, 1.066355\n    test 103 reverse 150N (-69.282, 80.000) -/-: 2.842170943040401e-14\n    test 104 forward 153N (-71.281, 72.638) -/-: 2023752.790526, -9353559.771346, -71.732868, 1.050046\n    test 105 reverse 153N (-71.281, 72.638) -/-: 1.4210854715202004e-14\n    test 106 forward 156N (-73.084, 65.078) -/-: 1728450.251911, -9182823.938232, -64.096558, 1.036319\n    test 107 reverse 156N (-73.084, 65.078) -/-: 1.4210854715202004e-14\n    test 108 forward 159N (-74.686, 57.339) -/-: 1446137.252018, -9059670.735504, -56.391495, 1.025259\n    test 109 reverse 159N (-74.686, 57.339) -/-: 1.4210854715202004e-14\n    test 110 forward 162N (-76.085, 49.443) -/-: 1181870.215451, -8976407.252949, -48.598167, 1.016714\n    test 111 reverse 162N (-76.085, 49.443) -/-: 3.552713678800501e-14\n    test 112 forward 165N (-77.274, 41.411) -/-: 938645.229361, -8924845.3123, -40.705476, 1.010384\n    test 113 reverse 165N (-77.274, 41.411) -/-: 0.0\n    test 114 forward 168N (-78.252, 33.266) -/-: 717349.637417, -8896761.249834, -32.712011, 1.005894\n    test 115 reverse 168N (-78.252, 33.266) -/-: 2.5618982671915014e-14\n    test 116 forward 171N (-79.015, 25.030) -/-: 516782.400098, -8884389.933155, -24.625783, 1.002865\n    test 117 reverse 171N (-79.015, 25.030) -/-: 2.842170943040401e-14\n    test 118 forward 174N (-79.562, 16.725) -/-: 333788.634116, -8880946.730424, -16.462884, 1.000962\n    test 119 reverse 174N (-79.562, 16.725) -/-: 1.0658141036401503e-14\n    test 120 forward 177N (-79.890, 8.374) -/-: 163544.38007, -8881136.361771, -8.245542, 0.999927\n    test 121 reverse 177N (-79.890, 8.374) -/-: 1.7763568394002505e-15\n    test 122 forward 180N (-80.000, 0.000) -/-: 0.0, -8881585.815988, 0.0, 0.9996\n    test 123 reverse 180N (-80.000, 0.000) -/-: 0.0\n    test 124 forward 183N (-79.890, -8.374) -/-: -163544.38007, -8881136.361771, 8.245542, 0.999927\n    test 125 reverse 183N (-79.890, -8.374) -/-: 1.7763568394002505e-15\n    test 126 forward 186N (-79.562, -16.725) -/-: -333788.634116, -8880946.730424, 16.462884, 1.000962\n    test 127 reverse 186N (-79.562, -16.725) -/-: 7.105427357601002e-15\n    test 128 forward 189N (-79.015, -25.030) -/-: -516782.400098, -8884389.933155, 24.625783, 1.002865\n    test 129 reverse 189N (-79.015, -25.030) -/-: 2.1316282072803006e-14\n    test 130 forward 192N (-78.252, -33.266) -/-: -717349.637417, -8896761.249834, 32.712011, 1.005894\n    test 131 reverse 192N (-78.252, -33.266) -/-: 5.1728291973635394e-14\n    test 132 forward 195N (-77.274, -41.411) -/-: -938645.229361, -8924845.3123, 40.705476, 1.010384\n    test 133 reverse 195N (-77.274, -41.411) -/-: 0.0\n    test 134 forward 198N (-76.085, -49.443) -/-: -1181870.215451, -8976407.252949, 48.598167, 1.016714\n    test 135 reverse 198N (-76.085, -49.443) -/-: 3.8263897345803626e-14\n    test 136 forward 201N (-74.686, -57.339) -/-: -1446137.252018, -9059670.735504, 56.391495, 1.025259\n    test 137 reverse 201N (-74.686, -57.339) -/-: 5.684341886080802e-14\n    test 138 forward 204N (-73.084, -65.078) -/-: -1728450.251911, -9182823.938232, 64.096558, 1.036319\n    test 139 reverse 204N (-73.084, -65.078) -/-: 1.4210854715202004e-14\n    test 140 forward 207N (-71.281, -72.638) -/-: -2023752.790526, -9353559.771346, 71.732868, 1.050046\n    test 141 reverse 207N (-71.281, -72.638) -/-: 1.4210854715202004e-14\n    test 142 forward 210N (-69.282, -80.000) -/-: -2325015.074835, -9578621.128889, 79.325231, 1.066355\n    test 143 reverse 210N (-69.282, -80.000) -/-: 2.842170943040401e-14\n    test 144 forward 213N (-67.094, -87.142) -/-: -2623368.28288, -9863301.12097, 86.898617, 1.084836\n    test 145 reverse 213N (-67.094, -87.142) -/-: 0.0\n    test 146 forward 216N (-64.721, -94.046) -/-: -2908348.733697, -10210857.598605, 94.471204, 1.104695\n    test 147 reverse 216N (-64.721, -94.046) -/-: 0.0\n    test 148 forward 219N (-62.172, -100.691) -/-: -3168362.707459, -10621853.317461, 102.04623, 1.124739\n    test 149 reverse 219N (-62.172, -100.691) -/-: 7.105427357601002e-15\n    test 150 forward 222N (-59.452, -107.061) -/-: -3391492.622467, -11093528.387239, 109.604086, 1.14345\n    test 151 reverse 222N (-59.452, -107.061) -/-: 1.5888218580782548e-14\n    test 152 forward 225N (-56.569, -113.137) -/-: -3566696.824822, -11619422.467571, 117.096854, 1.159166\n    test 153 reverse 225N (-56.569, -113.137) -/-: 0.0\n    test 154 forward 228N (-53.530, -118.903) -/-: -3685290.742854, -12189522.028618, 124.447841, 1.170375\n    test 155 reverse 228N (-53.530, -118.903) -/-: 1.5888218580782548e-14\n    test 156 forward 231N (-50.346, -124.343) -/-: -3742386.824274, -12791126.616764, 131.557863, 1.176031\n    test 157 reverse 231N (-50.346, -124.343) -/-: 1.4210854715202004e-14\n    test 158 forward 234N (-47.023, -129.443) -/-: -3737846.053669, -13410380.03778, 138.317827, 1.175799\n    test 159 reverse 234N (-47.023, -129.443) -/-: 2.929642751054232e-14\n    test 160 forward 237N (-43.571, -134.187) -/-: -3676387.634221, -14034104.572541, 144.624552, 1.170121\n    test 161 reverse 237N (-43.571, -134.187) -/-: 0.0\n    test 162 forward 240N (-40.000, -138.564) -/-: -3566810.754496, -14651410.305646, 150.395289, 1.16007\n    test 163 reverse 240N (-40.000, -138.564) -/-: 0.0\n    test 164 forward 243N (-36.319, -142.561) -/-: -3420621.906486, -15254653.660248, 155.577129, 1.147079\n    test 165 reverse 243N (-36.319, -142.561) -/-: 7.105427357601002e-15\n    test 166 forward 246N (-32.539, -146.167) -/-: -3250522.133697, -15839614.666766, 160.149958, 1.132638\n    test 167 reverse 246N (-32.539, -146.167) -/-: 7.105427357601002e-15\n    test 168 forward 249N (-28.669, -149.373) -/-: -3069132.144368, -16405050.640186, 164.124094, 1.118063\n    test 169 reverse 249N (-28.669, -149.373) -/-: 3.552713678800501e-15\n    test 170 forward 252N (-24.721, -152.169) -/-: -2888128.173431, -16951919.948156, 167.534978, 1.104377\n    test 171 reverse 252N (-24.721, -152.169) -/-: 1.0658141036401503e-14\n    test 172 forward 255N (-20.706, -154.548) -/-: -2717773.256417, -17482549.021439, 170.437193, 1.09228\n    test 173 reverse 255N (-20.706, -154.548) -/-: 1.7763568394002505e-14\n    test 174 forward 258N (-16.633, -156.504) -/-: -2566730.586316, -17999918.486885, 172.899178, 1.082187\n    test 175 reverse 258N (-16.633, -156.504) -/-: 1.7763568394002505e-14\n    test 176 forward 261N (-12.515, -158.030) -/-: -2442031.891673, -18507145.758, 174.99917, 1.074303\n    test 177 reverse 261N (-12.515, -158.030) -/-: 1.2434497875801753e-14\n    test 178 forward 264N (-8.362, -159.124) -/-: -2349105.316925, -19007174.828239, 176.822266, 1.068689\n    test 179 reverse 264N (-8.362, -159.124) -/-: 1.7763568394002505e-14\n    test 180 forward 267N (-4.187, -159.781) -/-: -2291809.478825, -19502649.329559, 178.458273, 1.06534\n    test 181 reverse 267N (-4.187, -159.781) -/-: 8.881784197001252e-15\n    test 182 forward 270N (0.000, -160.000) -/-: -2272454.379192, -19995929.886042, 180.0, 1.064227\n    test 183 reverse 270N (0.000, -160.000) -/-: 2.4016501336544057e-14\n    test 184 forward 273N (4.187, -159.781) -/-: -2291809.478825, 19502649.329559, -178.458273, 1.06534\n    test 185 reverse 273N (4.187, -159.781) -/-: 6.217248937900877e-15\n    test 186 forward 276N (8.362, -159.124) -/-: -2349105.316925, 19007174.828239, -176.822266, 1.068689\n    test 187 reverse 276N (8.362, -159.124) -/-: 1.5987211554602254e-14\n    test 188 forward 279N (12.515, -158.030) -/-: -2442031.891673, 18507145.758, -174.99917, 1.074303\n    test 189 reverse 279N (12.515, -158.030) -/-: 7.105427357601002e-15\n    test 190 forward 282N (16.633, -156.504) -/-: -2566730.586316, 17999918.486885, -172.899178, 1.082187\n    test 191 reverse 282N (16.633, -156.504) -/-: 2.842170943040401e-14\n    test 192 forward 285N (20.706, -154.548) -/-: -2717773.256417, 17482549.021439, -170.437193, 1.09228\n    test 193 reverse 285N (20.706, -154.548) -/-: 1.7763568394002505e-14\n    test 194 forward 288N (24.721, -152.169) -/-: -2888128.173431, 16951919.948156, -167.534978, 1.104377\n    test 195 reverse 288N (24.721, -152.169) -/-: 7.105427357601002e-15\n    test 196 forward 291N (28.669, -149.373) -/-: -3069132.144368, 16405050.640186, -164.124094, 1.118063\n    test 197 reverse 291N (28.669, -149.373) -/-: 7.105427357601002e-15\n    test 198 forward 294N (32.539, -146.167) -/-: -3250522.133697, 15839614.666766, -160.149958, 1.132638\n    test 199 reverse 294N (32.539, -146.167) -/-: 7.105427357601002e-15\n    test 200 forward 297N (36.319, -142.561) -/-: -3420621.906486, 15254653.660248, -155.577129, 1.147079\n    test 201 reverse 297N (36.319, -142.561) -/-: 7.105427357601002e-15\n    test 202 forward 300N (40.000, -138.564) -/-: -3566810.754496, 14651410.305646, -150.395289, 1.16007\n    test 203 reverse 300N (40.000, -138.564) -/-: 0.0\n    test 204 forward 303N (43.571, -134.187) -/-: -3676387.634221, 14034104.572541, -144.624552, 1.170121\n    test 205 reverse 303N (43.571, -134.187) -/-: 0.0\n    test 206 forward 306N (47.023, -129.443) -/-: -3737846.053669, 13410380.03778, -138.317827, 1.175799\n    test 207 reverse 306N (47.023, -129.443) -/-: 2.929642751054232e-14\n    test 208 forward 309N (50.346, -124.343) -/-: -3742386.824274, 12791126.616764, -131.557863, 1.176031\n    test 209 reverse 309N (50.346, -124.343) -/-: 1.4210854715202004e-14\n    test 210 forward 312N (53.530, -118.903) -/-: -3685290.742854, 12189522.028618, -124.447841, 1.170375\n    test 211 reverse 312N (53.530, -118.903) -/-: 1.5888218580782548e-14\n    test 212 forward 315N (56.569, -113.137) -/-: -3566696.824822, 11619422.467571, -117.096854, 1.159166\n    test 213 reverse 315N (56.569, -113.137) -/-: 0.0\n    test 214 forward 318N (59.452, -107.061) -/-: -3391492.622467, 11093528.387239, -109.604086, 1.14345\n    test 215 reverse 318N (59.452, -107.061) -/-: 1.5888218580782548e-14\n    test 216 forward 321N (62.172, -100.691) -/-: -3168362.707459, 10621853.317461, -102.04623, 1.124739\n    test 217 reverse 321N (62.172, -100.691) -/-: 7.105427357601002e-15\n    test 218 forward 324N (64.721, -94.046) -/-: -2908348.733697, 10210857.598605, -94.471204, 1.104695\n    test 219 reverse 324N (64.721, -94.046) -/-: 0.0\n    test 220 forward 327N (67.094, -87.142) -/-: -2623368.28288, 9863301.12097, -86.898617, 1.084836\n    test 221 reverse 327N (67.094, -87.142) -/-: 0.0\n    test 222 forward 330N (69.282, -80.000) -/-: -2325015.074835, 9578621.128889, -79.325231, 1.066355\n    test 223 reverse 330N (69.282, -80.000) -/-: 2.842170943040401e-14\n    test 224 forward 333N (71.281, -72.638) -/-: -2023752.790526, 9353559.771346, -71.732868, 1.050046\n    test 225 reverse 333N (71.281, -72.638) -/-: 1.4210854715202004e-14\n    test 226 forward 336N (73.084, -65.078) -/-: -1728450.251911, 9182823.938232, -64.096558, 1.036319\n    test 227 reverse 336N (73.084, -65.078) -/-: 1.4210854715202004e-14\n    test 228 forward 339N (74.686, -57.339) -/-: -1446137.252018, 9059670.735504, -56.391495, 1.025259\n    test 229 reverse 339N (74.686, -57.339) -/-: 1.4210854715202004e-14\n    test 230 forward 342N (76.085, -49.443) -/-: -1181870.215451, 8976407.252949, -48.598167, 1.016714\n    test 231 reverse 342N (76.085, -49.443) -/-: 3.552713678800501e-14\n    test 232 forward 345N (77.274, -41.411) -/-: -938645.229361, 8924845.3123, -40.705476, 1.010384\n    test 233 reverse 345N (77.274, -41.411) -/-: 0.0\n    test 234 forward 348N (78.252, -33.266) -/-: -717349.637417, 8896761.249834, -32.712011, 1.005894\n    test 235 reverse 348N (78.252, -33.266) -/-: 2.5618982671915014e-14\n    test 236 forward 351N (79.015, -25.030) -/-: -516782.400098, 8884389.933155, -24.625783, 1.002865\n    test 237 reverse 351N (79.015, -25.030) -/-: 2.842170943040401e-14\n    test 238 forward 354N (79.562, -16.725) -/-: -333788.634116, 8880946.730424, -16.462884, 1.000962\n    test 239 reverse 354N (79.562, -16.725) -/-: 1.0658141036401503e-14\n    test 240 forward 357N (79.890, -8.374) -/-: -163544.38007, 8881136.361771, -8.245542, 0.999927\n    test 241 reverse 357N (79.890, -8.374) -/-: 1.7763568394002505e-15\n    test 242 forward 360N (80.000, 0.000) -/-: 0.0, 8881585.815988, 0.0, 0.9996\n    test 243 reverse 360N (80.000, 0.000) -/-: 0.0\n    test 244 max: 5.684341886080802e-14  FAILED, KNOWN, expected 6e-14\n\n    test 245 forward: 6208422.5374, 5452954.287187, 41.077484, 1.511911\n    test 246 reverse: 30.244228, 60.169664, 41.479185, 1.510346\n\n    test 247 _TM: KTransverseMercator(ellipsoid=Ellipsoid(name='Sphere', a=6371008.771415, f=0, f_=0, b=6371008.771415), k0=0.9996, TMorder=4)\n    test 248 forward 0N (80.000, 0.000) -/-: 0.0, 8892048.136219, 0.0, 0.9996\n    test 249 reverse 0N (80.000, 0.000) -/-: 0.0\n    test 250 forward 3N (79.890, 8.374) -/-: 162830.781916, 8891598.152508, 8.245541, 0.999927\n    test 251 reverse 3N (79.890, 8.374) -/-: 3.552713678800501e-15\n    test 252 forward 6N (79.562, 16.725) -/-: 332334.438121, 8891401.702739, 16.462875, 1.000961\n    test 253 reverse 6N (79.562, 16.725) -/-: 3.552713678800501e-15\n    test 254 forward 9N (79.015, 25.030) -/-: 514536.969405, 8894816.626946, 24.625748, 1.002864\n    test 255 reverse 9N (79.015, 25.030) -/-: 3.552713678800501e-15\n    test 256 forward 12N (78.252, 33.266) -/-: 714245.109628, 8907114.580812, 32.711919, 1.005893\n    test 257 reverse 12N (78.252, 33.266) -/-: 1.4210854715202004e-14\n    test 258 forward 15N (77.274, 41.411) -/-: 934605.427053, 8935050.398758, 40.705275, 1.010384\n    test 259 reverse 15N (77.274, 41.411) -/-: 2.1316282072803006e-14\n    test 260 forward 18N (76.085, 49.443) -/-: 1176821.393989, 8986356.098856, 48.597784, 1.016715\n    test 261 reverse 18N (76.085, 49.443) -/-: 7.105427357601002e-15\n    test 262 forward 21N (74.686, 57.339) -/-: 1440020.023752, 9069222.197918, 56.390849, 1.025263\n    test 263 reverse 21N (74.686, 57.339) -/-: 2.0097183471152322e-14\n    test 264 forward 24N (73.084, 65.078) -/-: 1721232.03303, 9191807.409386, 64.095597, 1.036332\n    test 265 reverse 24N (73.084, 65.078) -/-: 4.4938668397781776e-14\n    test 266 forward 27N (71.281, 72.638) -/-: 2015439.94304, 9361783.139474, 71.731644, 1.050076\n    test 267 reverse 27N (71.281, 72.638) -/-: 0.0\n    test 268 forward 30N (69.282, 80.000) -/-: 2315663.380439, 9585883.63353, 79.324018, 1.066413\n    test 269 reverse 30N (69.282, 80.000) -/-: 1.4210854715202004e-14\n    test 270 forward 33N (67.094, 87.142) -/-: 2613089.50746, 9869411.258858, 86.898056, 1.084934\n    test 271 reverse 33N (67.094, 87.142) -/-: 1.4210854715202004e-14\n    test 272 forward 36N (64.721, 94.046) -/-: 2897310.302591, 10215654.794479, 94.472414, 1.104843\n    test 273 reverse 36N (64.721, 94.046) -/-: 4.263256414560601e-14\n    test 274 forward 39N (62.172, 100.691) -/-: 3156777.9732, 10625229.653451, 102.050793, 1.12494\n    test 275 reverse 39N (62.172, 100.691) -/-: 7.105427357601002e-15\n    test 276 forward 42N (59.452, 107.061) -/-: 3379601.994821, 11095444.501021, 109.613799, 1.143688\n    test 277 reverse 42N (59.452, 107.061) -/-: 1.5888218580782548e-14\n    test 278 forward 45N (56.569, 113.137) -/-: 3554744.82183, 11619912.294696, 117.113212, 1.159405\n    test 279 reverse 45N (56.569, 113.137) -/-: 7.105427357601002e-15\n    test 280 forward 48N (53.530, 118.903) -/-: 3673507.549162, 12188686.186502, 124.471401, 1.170561\n    test 281 reverse 48N (53.530, 118.903) -/-: 1.4210854715202004e-14\n    test 282 forward 51N (50.346, 124.343) -/-: 3730980.59573, 12789121.454112, 131.587794, 1.176106\n    test 283 reverse 51N (50.346, 124.343) -/-: 1.4210854715202004e-14\n    test 284 forward 54N (47.023, 129.443) -/-: 3727003.760242, 13407411.821957, 138.351947, 1.175719\n    test 285 reverse 54N (47.023, 129.443) -/-: 7.105427357601002e-15\n    test 286 forward 57N (43.571, 134.187) -/-: 3666275.084648, 14030431.844036, 144.659906, 1.16987\n    test 287 reverse 57N (43.571, 134.187) -/-: 0.0\n    test 288 forward 60N (40.000, 138.564) -/-: 3557564.445775, 14647347.719581, 150.428973, 1.159665\n    test 289 reverse 60N (40.000, 138.564) -/-: 7.105427357601002e-15\n    test 290 forward 63N (36.319, 142.561) -/-: 3412334.48396, 15250567.642625, 155.606964, 1.146559\n    test 291 reverse 63N (36.319, 142.561) -/-: 0.0\n    test 292 forward 66N (32.539, 146.167) -/-: 3243229.892204, 15835907.12812, 160.174784, 1.132049\n    test 293 reverse 66N (32.539, 146.167) -/-: 3.1776437161565096e-14\n    test 294 forward 69N (28.669, 149.373) -/-: 3062811.744735, 16402134.803105, 164.143685, 1.117448\n    test 295 reverse 69N (28.669, 149.373) -/-: 3.552713678800501e-15\n    test 296 forward 72N (24.721, 152.169) -/-: 2882703.816659, 16950195.447611, 167.549757, 1.103767\n    test 297 reverse 72N (24.721, 152.169) -/-: 0.0\n    test 298 forward 75N (20.706, 154.548) -/-: 2713130.658999, 17482381.525728, 170.447906, 1.091693\n    test 299 reverse 75N (20.706, 154.548) -/-: 1.0658141036401503e-14\n    test 300 forward 78N (16.633, 156.504) -/-: 2562732.651149, 18001625.534999, 172.906642, 1.081633\n    test 301 reverse 78N (16.633, 156.504) -/-: 7.105427357601002e-15\n    test 302 forward 81N (12.515, 158.030) -/-: 2438532.075646, 18510987.984533, 175.004113, 1.07378\n    test 303 reverse 81N (12.515, 158.030) -/-: 3.552713678800501e-15\n    test 304 forward 84N (8.362, 159.124) -/-: 2345956.628332, 19013350.872509, 176.82525, 1.068192\n    test 305 reverse 84N (8.362, 159.124) -/-: 8.881784197001252e-15\n    test 306 forward 87N (4.187, 159.781) -/-: 2288868.720832, 19511292.939628, 178.459673, 1.064859\n    test 307 reverse 87N (4.187, 159.781) -/-: 1.9539925233402755e-14\n    test 308 forward 90N (0.000, 160.000) -/-: 2269582.383311, -20007108.306493, -180.0, 1.063752\n    test 309 reverse 90N (0.000, 160.000) -/-: 0.0\n    test 310 forward 93N (-4.187, 159.781) -/-: 2288868.720832, -19511292.939628, -178.459673, 1.064859\n    test 311 reverse 93N (-4.187, 159.781) -/-: 3.019806626980426e-14\n    test 312 forward 96N (-8.362, 159.124) -/-: 2345956.628332, -19013350.872509, -176.82525, 1.068192\n    test 313 reverse 96N (-8.362, 159.124) -/-: 1.0658141036401503e-14\n    test 314 forward 99N (-12.515, 158.030) -/-: 2438532.075646, -18510987.984533, -175.004113, 1.07378\n    test 315 reverse 99N (-12.515, 158.030) -/-: 8.881784197001252e-15\n    test 316 forward 102N (-16.633, 156.504) -/-: 2562732.651149, -18001625.534999, -172.906642, 1.081633\n    test 317 reverse 102N (-16.633, 156.504) -/-: 3.552713678800501e-15\n    test 318 forward 105N (-20.706, 154.548) -/-: 2713130.658999, -17482381.525728, -170.447906, 1.091693\n    test 319 reverse 105N (-20.706, 154.548) -/-: 1.0658141036401503e-14\n    test 320 forward 108N (-24.721, 152.169) -/-: 2882703.816659, -16950195.447611, -167.549757, 1.103767\n    test 321 reverse 108N (-24.721, 152.169) -/-: 3.552713678800501e-15\n    test 322 forward 111N (-28.669, 149.373) -/-: 3062811.744735, -16402134.803105, -164.143685, 1.117448\n    test 323 reverse 111N (-28.669, 149.373) -/-: 1.0658141036401503e-14\n    test 324 forward 114N (-32.539, 146.167) -/-: 3243229.892204, -15835907.12812, -160.174784, 1.132049\n    test 325 reverse 114N (-32.539, 146.167) -/-: 3.1776437161565096e-14\n    test 326 forward 117N (-36.319, 142.561) -/-: 3412334.48396, -15250567.642625, -155.606964, 1.146559\n    test 327 reverse 117N (-36.319, 142.561) -/-: 0.0\n    test 328 forward 120N (-40.000, 138.564) -/-: 3557564.445775, -14647347.719581, -150.428973, 1.159665\n    test 329 reverse 120N (-40.000, 138.564) -/-: 0.0\n    test 330 forward 123N (-43.571, 134.187) -/-: 3666275.084648, -14030431.844036, -144.659906, 1.16987\n    test 331 reverse 123N (-43.571, 134.187) -/-: 0.0\n    test 332 forward 126N (-47.023, 129.443) -/-: 3727003.760242, -13407411.821957, -138.351947, 1.175719\n    test 333 reverse 126N (-47.023, 129.443) -/-: 7.105427357601002e-15\n    test 334 forward 129N (-50.346, 124.343) -/-: 3730980.59573, -12789121.454112, -131.587794, 1.176106\n    test 335 reverse 129N (-50.346, 124.343) -/-: 1.4210854715202004e-14\n    test 336 forward 132N (-53.530, 118.903) -/-: 3673507.549162, -12188686.186502, -124.471401, 1.170561\n    test 337 reverse 132N (-53.530, 118.903) -/-: 1.4210854715202004e-14\n    test 338 forward 135N (-56.569, 113.137) -/-: 3554744.82183, -11619912.294696, -117.113212, 1.159405\n    test 339 reverse 135N (-56.569, 113.137) -/-: 7.105427357601002e-15\n    test 340 forward 138N (-59.452, 107.061) -/-: 3379601.994821, -11095444.501021, -109.613799, 1.143688\n    test 341 reverse 138N (-59.452, 107.061) -/-: 1.5888218580782548e-14\n    test 342 forward 141N (-62.172, 100.691) -/-: 3156777.9732, -10625229.653451, -102.050793, 1.12494\n    test 343 reverse 141N (-62.172, 100.691) -/-: 7.105427357601002e-15\n    test 344 forward 144N (-64.721, 94.046) -/-: 2897310.302591, -10215654.794479, -94.472414, 1.104843\n    test 345 reverse 144N (-64.721, 94.046) -/-: 4.263256414560601e-14\n    test 346 forward 147N (-67.094, 87.142) -/-: 2613089.50746, -9869411.258858, -86.898056, 1.084934\n    test 347 reverse 147N (-67.094, 87.142) -/-: 1.4210854715202004e-14\n    test 348 forward 150N (-69.282, 80.000) -/-: 2315663.380439, -9585883.63353, -79.324018, 1.066413\n    test 349 reverse 150N (-69.282, 80.000) -/-: 2.842170943040401e-14\n    test 350 forward 153N (-71.281, 72.638) -/-: 2015439.94304, -9361783.139474, -71.731644, 1.050076\n    test 351 reverse 153N (-71.281, 72.638) -/-: 0.0\n    test 352 forward 156N (-73.084, 65.078) -/-: 1721232.03303, -9191807.409386, -64.095597, 1.036332\n    test 353 reverse 156N (-73.084, 65.078) -/-: 4.4938668397781776e-14\n    test 354 forward 159N (-74.686, 57.339) -/-: 1440020.023752, -9069222.197918, -56.390849, 1.025263\n    test 355 reverse 159N (-74.686, 57.339) -/-: 7.105427357601002e-15\n    test 356 forward 162N (-76.085, 49.443) -/-: 1176821.393989, -8986356.098856, -48.597784, 1.016715\n    test 357 reverse 162N (-76.085, 49.443) -/-: 7.105427357601002e-15\n    test 358 forward 165N (-77.274, 41.411) -/-: 934605.427053, -8935050.398758, -40.705275, 1.010384\n    test 359 reverse 165N (-77.274, 41.411) -/-: 2.1316282072803006e-14\n    test 360 forward 168N (-78.252, 33.266) -/-: 714245.109628, -8907114.580812, -32.711919, 1.005893\n    test 361 reverse 168N (-78.252, 33.266) -/-: 1.4210854715202004e-14\n    test 362 forward 171N (-79.015, 25.030) -/-: 514536.969405, -8894816.626946, -24.625748, 1.002864\n    test 363 reverse 171N (-79.015, 25.030) -/-: 3.552713678800501e-15\n    test 364 forward 174N (-79.562, 16.725) -/-: 332334.438121, -8891401.702739, -16.462875, 1.000961\n    test 365 reverse 174N (-79.562, 16.725) -/-: 3.552713678800501e-15\n    test 366 forward 177N (-79.890, 8.374) -/-: 162830.781916, -8891598.152508, -8.245541, 0.999927\n    test 367 reverse 177N (-79.890, 8.374) -/-: 1.7763568394002505e-15\n    test 368 forward 180N (-80.000, 0.000) -/-: 0.0, -8892048.136219, 0.0, 0.9996\n    test 369 reverse 180N (-80.000, 0.000) -/-: 0.0\n    test 370 forward 183N (-79.890, -8.374) -/-: -162830.781916, -8891598.152508, 8.245541, 0.999927\n    test 371 reverse 183N (-79.890, -8.374) -/-: 3.552713678800501e-15\n    test 372 forward 186N (-79.562, -16.725) -/-: -332334.438121, -8891401.702739, 16.462875, 1.000961\n    test 373 reverse 186N (-79.562, -16.725) -/-: 3.552713678800501e-15\n    test 374 forward 189N (-79.015, -25.030) -/-: -514536.969405, -8894816.626946, 24.625748, 1.002864\n    test 375 reverse 189N (-79.015, -25.030) -/-: 3.552713678800501e-15\n    test 376 forward 192N (-78.252, -33.266) -/-: -714245.109628, -8907114.580812, 32.711919, 1.005893\n    test 377 reverse 192N (-78.252, -33.266) -/-: 1.4210854715202004e-14\n    test 378 forward 195N (-77.274, -41.411) -/-: -934605.427053, -8935050.398758, 40.705275, 1.010384\n    test 379 reverse 195N (-77.274, -41.411) -/-: 2.1316282072803006e-14\n    test 380 forward 198N (-76.085, -49.443) -/-: -1176821.393989, -8986356.098856, 48.597784, 1.016715\n    test 381 reverse 198N (-76.085, -49.443) -/-: 7.105427357601002e-15\n    test 382 forward 201N (-74.686, -57.339) -/-: -1440020.023752, -9069222.197918, 56.390849, 1.025263\n    test 383 reverse 201N (-74.686, -57.339) -/-: 2.0097183471152322e-14\n    test 384 forward 204N (-73.084, -65.078) -/-: -1721232.03303, -9191807.409386, 64.095597, 1.036332\n    test 385 reverse 204N (-73.084, -65.078) -/-: 4.4938668397781776e-14\n    test 386 forward 207N (-71.281, -72.638) -/-: -2015439.94304, -9361783.139474, 71.731644, 1.050076\n    test 387 reverse 207N (-71.281, -72.638) -/-: 0.0\n    test 388 forward 210N (-69.282, -80.000) -/-: -2315663.380439, -9585883.63353, 79.324018, 1.066413\n    test 389 reverse 210N (-69.282, -80.000) -/-: 1.4210854715202004e-14\n    test 390 forward 213N (-67.094, -87.142) -/-: -2613089.50746, -9869411.258858, 86.898056, 1.084934\n    test 391 reverse 213N (-67.094, -87.142) -/-: 1.4210854715202004e-14\n    test 392 forward 216N (-64.721, -94.046) -/-: -2897310.302591, -10215654.794479, 94.472414, 1.104843\n    test 393 reverse 216N (-64.721, -94.046) -/-: 4.263256414560601e-14\n    test 394 forward 219N (-62.172, -100.691) -/-: -3156777.9732, -10625229.653451, 102.050793, 1.12494\n    test 395 reverse 219N (-62.172, -100.691) -/-: 7.105427357601002e-15\n    test 396 forward 222N (-59.452, -107.061) -/-: -3379601.994821, -11095444.501021, 109.613799, 1.143688\n    test 397 reverse 222N (-59.452, -107.061) -/-: 1.5888218580782548e-14\n    test 398 forward 225N (-56.569, -113.137) -/-: -3554744.82183, -11619912.294696, 117.113212, 1.159405\n    test 399 reverse 225N (-56.569, -113.137) -/-: 7.105427357601002e-15\n    test 400 forward 228N (-53.530, -118.903) -/-: -3673507.549162, -12188686.186502, 124.471401, 1.170561\n    test 401 reverse 228N (-53.530, -118.903) -/-: 1.4210854715202004e-14\n    test 402 forward 231N (-50.346, -124.343) -/-: -3730980.59573, -12789121.454112, 131.587794, 1.176106\n    test 403 reverse 231N (-50.346, -124.343) -/-: 1.4210854715202004e-14\n    test 404 forward 234N (-47.023, -129.443) -/-: -3727003.760242, -13407411.821957, 138.351947, 1.175719\n    test 405 reverse 234N (-47.023, -129.443) -/-: 7.105427357601002e-15\n    test 406 forward 237N (-43.571, -134.187) -/-: -3666275.084648, -14030431.844036, 144.659906, 1.16987\n    test 407 reverse 237N (-43.571, -134.187) -/-: 0.0\n    test 408 forward 240N (-40.000, -138.564) -/-: -3557564.445775, -14647347.719581, 150.428973, 1.159665\n    test 409 reverse 240N (-40.000, -138.564) -/-: 7.105427357601002e-15\n    test 410 forward 243N (-36.319, -142.561) -/-: -3412334.48396, -15250567.642625, 155.606964, 1.146559\n    test 411 reverse 243N (-36.319, -142.561) -/-: 0.0\n    test 412 forward 246N (-32.539, -146.167) -/-: -3243229.892204, -15835907.12812, 160.174784, 1.132049\n    test 413 reverse 246N (-32.539, -146.167) -/-: 3.1776437161565096e-14\n    test 414 forward 249N (-28.669, -149.373) -/-: -3062811.744735, -16402134.803105, 164.143685, 1.117448\n    test 415 reverse 249N (-28.669, -149.373) -/-: 3.552713678800501e-15\n    test 416 forward 252N (-24.721, -152.169) -/-: -2882703.816659, -16950195.447611, 167.549757, 1.103767\n    test 417 reverse 252N (-24.721, -152.169) -/-: 0.0\n    test 418 forward 255N (-20.706, -154.548) -/-: -2713130.658999, -17482381.525728, 170.447906, 1.091693\n    test 419 reverse 255N (-20.706, -154.548) -/-: 1.0658141036401503e-14\n    test 420 forward 258N (-16.633, -156.504) -/-: -2562732.651149, -18001625.534999, 172.906642, 1.081633\n    test 421 reverse 258N (-16.633, -156.504) -/-: 7.105427357601002e-15\n    test 422 forward 261N (-12.515, -158.030) -/-: -2438532.075646, -18510987.984533, 175.004113, 1.07378\n    test 423 reverse 261N (-12.515, -158.030) -/-: 3.552713678800501e-15\n    test 424 forward 264N (-8.362, -159.124) -/-: -2345956.628332, -19013350.872509, 176.82525, 1.068192\n    test 425 reverse 264N (-8.362, -159.124) -/-: 8.881784197001252e-15\n    test 426 forward 267N (-4.187, -159.781) -/-: -2288868.720832, -19511292.939628, 178.459673, 1.064859\n    test 427 reverse 267N (-4.187, -159.781) -/-: 1.9539925233402755e-14\n    test 428 forward 270N (0.000, -160.000) -/-: -2269582.383311, -20007108.306493, 180.0, 1.063752\n    test 429 reverse 270N (0.000, -160.000) -/-: 0.0\n    test 430 forward 273N (4.187, -159.781) -/-: -2288868.720832, 19511292.939628, -178.459673, 1.064859\n    test 431 reverse 273N (4.187, -159.781) -/-: 3.019806626980426e-14\n    test 432 forward 276N (8.362, -159.124) -/-: -2345956.628332, 19013350.872509, -176.82525, 1.068192\n    test 433 reverse 276N (8.362, -159.124) -/-: 1.0658141036401503e-14\n    test 434 forward 279N (12.515, -158.030) -/-: -2438532.075646, 18510987.984533, -175.004113, 1.07378\n    test 435 reverse 279N (12.515, -158.030) -/-: 8.881784197001252e-15\n    test 436 forward 282N (16.633, -156.504) -/-: -2562732.651149, 18001625.534999, -172.906642, 1.081633\n    test 437 reverse 282N (16.633, -156.504) -/-: 3.552713678800501e-15\n    test 438 forward 285N (20.706, -154.548) -/-: -2713130.658999, 17482381.525728, -170.447906, 1.091693\n    test 439 reverse 285N (20.706, -154.548) -/-: 1.0658141036401503e-14\n    test 440 forward 288N (24.721, -152.169) -/-: -2882703.816659, 16950195.447611, -167.549757, 1.103767\n    test 441 reverse 288N (24.721, -152.169) -/-: 3.552713678800501e-15\n    test 442 forward 291N (28.669, -149.373) -/-: -3062811.744735, 16402134.803105, -164.143685, 1.117448\n    test 443 reverse 291N (28.669, -149.373) -/-: 1.0658141036401503e-14\n    test 444 forward 294N (32.539, -146.167) -/-: -3243229.892204, 15835907.12812, -160.174784, 1.132049\n    test 445 reverse 294N (32.539, -146.167) -/-: 3.1776437161565096e-14\n    test 446 forward 297N (36.319, -142.561) -/-: -3412334.48396, 15250567.642625, -155.606964, 1.146559\n    test 447 reverse 297N (36.319, -142.561) -/-: 0.0\n    test 448 forward 300N (40.000, -138.564) -/-: -3557564.445775, 14647347.719581, -150.428973, 1.159665\n    test 449 reverse 300N (40.000, -138.564) -/-: 0.0\n    test 450 forward 303N (43.571, -134.187) -/-: -3666275.084648, 14030431.844036, -144.659906, 1.16987\n    test 451 reverse 303N (43.571, -134.187) -/-: 0.0\n    test 452 forward 306N (47.023, -129.443) -/-: -3727003.760242, 13407411.821957, -138.351947, 1.175719\n    test 453 reverse 306N (47.023, -129.443) -/-: 7.105427357601002e-15\n    test 454 forward 309N (50.346, -124.343) -/-: -3730980.59573, 12789121.454112, -131.587794, 1.176106\n    test 455 reverse 309N (50.346, -124.343) -/-: 1.4210854715202004e-14\n    test 456 forward 312N (53.530, -118.903) -/-: -3673507.549162, 12188686.186502, -124.471401, 1.170561\n    test 457 reverse 312N (53.530, -118.903) -/-: 1.4210854715202004e-14\n    test 458 forward 315N (56.569, -113.137) -/-: -3554744.82183, 11619912.294696, -117.113212, 1.159405\n    test 459 reverse 315N (56.569, -113.137) -/-: 7.105427357601002e-15\n    test 460 forward 318N (59.452, -107.061) -/-: -3379601.994821, 11095444.501021, -109.613799, 1.143688\n    test 461 reverse 318N (59.452, -107.061) -/-: 1.5888218580782548e-14\n    test 462 forward 321N (62.172, -100.691) -/-: -3156777.9732, 10625229.653451, -102.050793, 1.12494\n    test 463 reverse 321N (62.172, -100.691) -/-: 7.105427357601002e-15\n    test 464 forward 324N (64.721, -94.046) -/-: -2897310.302591, 10215654.794479, -94.472414, 1.104843\n    test 465 reverse 324N (64.721, -94.046) -/-: 4.263256414560601e-14\n    test 466 forward 327N (67.094, -87.142) -/-: -2613089.50746, 9869411.258858, -86.898056, 1.084934\n    test 467 reverse 327N (67.094, -87.142) -/-: 1.4210854715202004e-14\n    test 468 forward 330N (69.282, -80.000) -/-: -2315663.380439, 9585883.63353, -79.324018, 1.066413\n    test 469 reverse 330N (69.282, -80.000) -/-: 2.842170943040401e-14\n    test 470 forward 333N (71.281, -72.638) -/-: -2015439.94304, 9361783.139474, -71.731644, 1.050076\n    test 471 reverse 333N (71.281, -72.638) -/-: 0.0\n    test 472 forward 336N (73.084, -65.078) -/-: -1721232.03303, 9191807.409386, -64.095597, 1.036332\n    test 473 reverse 336N (73.084, -65.078) -/-: 4.4938668397781776e-14\n    test 474 forward 339N (74.686, -57.339) -/-: -1440020.023752, 9069222.197918, -56.390849, 1.025263\n    test 475 reverse 339N (74.686, -57.339) -/-: 7.105427357601002e-15\n    test 476 forward 342N (76.085, -49.443) -/-: -1176821.393989, 8986356.098856, -48.597784, 1.016715\n    test 477 reverse 342N (76.085, -49.443) -/-: 7.105427357601002e-15\n    test 478 forward 345N (77.274, -41.411) -/-: -934605.427053, 8935050.398758, -40.705275, 1.010384\n    test 479 reverse 345N (77.274, -41.411) -/-: 2.1316282072803006e-14\n    test 480 forward 348N (78.252, -33.266) -/-: -714245.109628, 8907114.580812, -32.711919, 1.005893\n    test 481 reverse 348N (78.252, -33.266) -/-: 1.4210854715202004e-14\n    test 482 forward 351N (79.015, -25.030) -/-: -514536.969405, 8894816.626946, -24.625748, 1.002864\n    test 483 reverse 351N (79.015, -25.030) -/-: 3.552713678800501e-15\n    test 484 forward 354N (79.562, -16.725) -/-: -332334.438121, 8891401.702739, -16.462875, 1.000961\n    test 485 reverse 354N (79.562, -16.725) -/-: 3.552713678800501e-15\n    test 486 forward 357N (79.890, -8.374) -/-: -162830.781916, 8891598.152508, -8.245541, 0.999927\n    test 487 reverse 357N (79.890, -8.374) -/-: 1.7763568394002505e-15\n    test 488 forward 360N (80.000, 0.000) -/-: 0.0, 8892048.136219, 0.0, 0.9996\n    test 489 reverse 360N (80.000, 0.000) -/-: 0.0\n    test 490 max: 4.4938668397781776e-14  FAILED, KNOWN, expected 5e-14\n\n    test 491 forward: 6196225.831883, 5458228.732328, 40.893395, 1.511253\n    test 492 reverse: 30.172556, 60.208316, 41.279729, 1.511925\n\n    test 493 _TM: ExactTransverseMercator(datum='WGS84', extendp=False, k0=0.9996, lon0=0.0)\n    test 494 forward 0N (80.000, 0.000) 3/3: 0.0, 8881585.815988, 0.0, 0.9996\n    test 495 reverse 0N (80.000, 0.000) 3/3: 0.0\n    test 496 forward 3N (79.890, 8.374) 3/4: 163544.38007, 8881136.361771, 8.245542, 0.999927\n    test 497 reverse 3N (79.890, 8.374) 3/3: 5.123796534383003e-14\n    test 498 forward 6N (79.562, 16.725) 3/4: 333788.634116, 8880946.730424, 16.462884, 1.000962\n    test 499 reverse 6N (79.562, 16.725) 3/3: 3.1776437161565096e-14\n    test 500 forward 9N (79.015, 25.030) 3/4: 516782.400098, 8884389.933155, 24.625783, 1.002865\n    test 501 reverse 9N (79.015, 25.030) 3/3: 3.1776437161565096e-14\n    test 502 forward 12N (78.252, 33.266) 3/4: 717349.637417, 8896761.249834, 32.712011, 1.005894\n    test 503 reverse 12N (78.252, 33.266) 3/3: 2.5618982671915014e-14\n    test 504 forward 15N (77.274, 41.411) 3/4: 938645.229361, 8924845.3123, 40.705476, 1.010384\n    test 505 reverse 15N (77.274, 41.411) 3/3: 3.1776437161565096e-14\n    test 506 forward 18N (76.085, 49.443) 3/4: 1181870.215451, 8976407.252949, 48.598167, 1.016714\n    test 507 reverse 18N (76.085, 49.443) 3/3: 7.105427357601002e-15\n    test 508 forward 21N (74.686, 57.339) 3/4: 1446137.252018, 9059670.735504, 56.391495, 1.025259\n    test 509 reverse 21N (74.686, 57.339) 3/3: 1.0048591735576161e-13  FAILED, KNOWN, expected 9e-14\n    test 510 forward 24N (73.084, 65.078) 3/4: 1728450.251911, 9182823.938232, 64.096558, 1.036319\n    test 511 reverse 24N (73.084, 65.078) 3/3: 1.4210854715202004e-14\n    test 512 forward 27N (71.281, 72.638) 3/4: 2023752.790526, 9353559.771346, 71.732868, 1.050046\n    test 513 reverse 27N (71.281, 72.638) 3/3: 0.0\n    test 514 forward 30N (69.282, 80.000) 3/4: 2325015.074835, 9578621.128889, 79.325231, 1.066355\n    test 515 reverse 30N (69.282, 80.000) 3/4: 1.4210854715202004e-14\n    test 516 forward 33N (67.094, 87.142) 3/4: 2623368.28288, 9863301.12097, 86.898617, 1.084836\n    test 517 reverse 33N (67.094, 87.142) 3/4: 0.0\n    test 518 forward 36N (64.721, 94.046) 3/4: 2908348.733697, 10210857.598605, 94.471204, 1.104695\n    test 519 reverse 36N (64.721, 94.046) 3/4: 0.0\n    test 520 forward 39N (62.172, 100.691) 3/4: 3168362.707459, 10621853.317461, 102.04623, 1.124739\n    test 521 reverse 39N (62.172, 100.691) 3/4: 2.929642751054232e-14\n    test 522 forward 42N (59.452, 107.061) 3/4: 3391492.622467, 11093528.387239, 109.604086, 1.14345\n    test 523 reverse 42N (59.452, 107.061) 3/4: 7.105427357601002e-15\n    test 524 forward 45N (56.569, 113.137) 3/4: 3566696.824822, 11619422.467571, 117.096854, 1.159166\n    test 525 reverse 45N (56.569, 113.137) 3/4: 7.105427357601002e-15\n    test 526 forward 48N (53.530, 118.903) 3/4: 3685290.742854, 12189522.028618, 124.447841, 1.170375\n    test 527 reverse 48N (53.530, 118.903) 3/4: 2.842170943040401e-14\n    test 528 forward 51N (50.346, 124.343) 3/4: 3742386.824274, 12791126.616764, 131.557863, 1.176031\n    test 529 reverse 51N (50.346, 124.343) 3/4: 2.929642751054232e-14\n    test 530 forward 54N (47.023, 129.443) 3/4: 3737846.053669, 13410380.03778, 138.317827, 1.175799\n    test 531 reverse 54N (47.023, 129.443) 3/4: 4.0194366942304644e-14\n    test 532 forward 57N (43.571, 134.187) 3/4: 3676387.634221, 14034104.572541, 144.624552, 1.170121\n    test 533 reverse 57N (43.571, 134.187) 3/4: 3.1776437161565096e-14\n    test 534 forward 60N (40.000, 138.564) 3/4: 3566810.754496, 14651410.305646, 150.395289, 1.16007\n    test 535 reverse 60N (40.000, 138.564) 3/4: 1.4210854715202004e-14\n    test 536 forward 63N (36.319, 142.561) 3/4: 3420621.906486, 15254653.660248, 155.577129, 1.147079\n    test 537 reverse 63N (36.319, 142.561) 3/4: 0.0\n    test 538 forward 66N (32.539, 146.167) 3/4: 3250522.133697, 15839614.666766, 160.149958, 1.132638\n    test 539 reverse 66N (32.539, 146.167) 3/4: 7.105427357601002e-15\n    test 540 forward 69N (28.669, 149.373) 3/4: 3069132.144368, 16405050.640186, 164.124094, 1.118063\n    test 541 reverse 69N (28.669, 149.373) 3/4: 3.552713678800501e-15\n    test 542 forward 72N (24.721, 152.169) 3/4: 2888128.173431, 16951919.948156, 167.534978, 1.104377\n    test 543 reverse 72N (24.721, 152.169) 3/4: 3.552713678800501e-15\n    test 544 forward 75N (20.706, 154.548) 3/4: 2717773.256417, 17482549.021439, 170.437193, 1.09228\n    test 545 reverse 75N (20.706, 154.548) 3/4: 3.552713678800501e-15\n    test 546 forward 78N (16.633, 156.504) 3/4: 2566730.586316, 17999918.486885, 172.899178, 1.082187\n    test 547 reverse 78N (16.633, 156.504) 3/4: 7.105427357601002e-15\n    test 548 forward 81N (12.515, 158.030) 3/4: 2442031.891673, 18507145.758, 174.99917, 1.074303\n    test 549 reverse 81N (12.515, 158.030) 3/4: 7.105427357601002e-15\n    test 550 forward 84N (8.362, 159.124) 3/4: 2349105.316925, 19007174.828239, 176.822266, 1.068689\n    test 551 reverse 84N (8.362, 159.124) 3/4: 8.881784197001252e-15\n    test 552 forward 87N (4.187, 159.781) 3/4: 2291809.478825, 19502649.329559, 178.458273, 1.06534\n    test 553 reverse 87N (4.187, 159.781) 3/4: 9.769962616701378e-15\n    test 554 forward 90N (0.000, 160.000) 3/4: 2272454.379192, -19995929.886042, -180.0, 1.064227\n    test 555 reverse 90N (0.000, 160.000) 3/3: 0.0\n    test 556 forward 93N (-4.187, 159.781) 3/4: 2291809.478825, -19502649.329559, -178.458273, 1.06534\n    test 557 reverse 93N (-4.187, 159.781) 3/4: 2.842170943040401e-14\n    test 558 forward 96N (-8.362, 159.124) 3/4: 2349105.316925, -19007174.828239, -176.822266, 1.068689\n    test 559 reverse 96N (-8.362, 159.124) 3/4: 1.0658141036401503e-14\n    test 560 forward 99N (-12.515, 158.030) 3/4: 2442031.891673, -18507145.758, -174.99917, 1.074303\n    test 561 reverse 99N (-12.515, 158.030) 3/4: 3.375077994860476e-14\n    test 562 forward 102N (-16.633, 156.504) 3/4: 2566730.586316, -17999918.486885, -172.899178, 1.082187\n    test 563 reverse 102N (-16.633, 156.504) 3/4: 1.4210854715202004e-14\n    test 564 forward 105N (-20.706, 154.548) 3/4: 2717773.256417, -17482549.021439, -170.437193, 1.09228\n    test 565 reverse 105N (-20.706, 154.548) 3/4: 3.552713678800501e-15\n    test 566 forward 108N (-24.721, 152.169) 3/4: 2888128.173431, -16951919.948156, -167.534978, 1.104377\n    test 567 reverse 108N (-24.721, 152.169) 3/4: 2.4868995751603507e-14\n    test 568 forward 111N (-28.669, 149.373) 3/4: 3069132.144368, -16405050.640186, -164.124094, 1.118063\n    test 569 reverse 111N (-28.669, 149.373) 3/4: 7.105427357601002e-15\n    test 570 forward 114N (-32.539, 146.167) 3/4: 3250522.133697, -15839614.666766, -160.149958, 1.132638\n    test 571 reverse 114N (-32.539, 146.167) 3/4: 7.105427357601002e-15\n    test 572 forward 117N (-36.319, 142.561) 3/4: 3420621.906486, -15254653.660248, -155.577129, 1.147079\n    test 573 reverse 117N (-36.319, 142.561) 3/4: 0.0\n    test 574 forward 120N (-40.000, 138.564) 3/4: 3566810.754496, -14651410.305646, -150.395289, 1.16007\n    test 575 reverse 120N (-40.000, 138.564) 3/4: 7.105427357601002e-15\n    test 576 forward 123N (-43.571, 134.187) 3/4: 3676387.634221, -14034104.572541, -144.624552, 1.170121\n    test 577 reverse 123N (-43.571, 134.187) 3/4: 3.1776437161565096e-14\n    test 578 forward 126N (-47.023, 129.443) 3/4: 3737846.053669, -13410380.03778, -138.317827, 1.175799\n    test 579 reverse 126N (-47.023, 129.443) 3/4: 4.0194366942304644e-14\n    test 580 forward 129N (-50.346, 124.343) 3/4: 3742386.824274, -12791126.616764, -131.557863, 1.176031\n    test 581 reverse 129N (-50.346, 124.343) 3/4: 2.929642751054232e-14\n    test 582 forward 132N (-53.530, 118.903) 3/4: 3685290.742854, -12189522.028618, -124.447841, 1.170375\n    test 583 reverse 132N (-53.530, 118.903) 3/4: 2.842170943040401e-14\n    test 584 forward 135N (-56.569, 113.137) 3/4: 3566696.824822, -11619422.467571, -117.096854, 1.159166\n    test 585 reverse 135N (-56.569, 113.137) 3/4: 7.105427357601002e-15\n    test 586 forward 138N (-59.452, 107.061) 3/4: 3391492.622467, -11093528.387239, -109.604086, 1.14345\n    test 587 reverse 138N (-59.452, 107.061) 3/4: 7.105427357601002e-15\n    test 588 forward 141N (-62.172, 100.691) 3/4: 3168362.707459, -10621853.317461, -102.04623, 1.124739\n    test 589 reverse 141N (-62.172, 100.691) 3/4: 2.929642751054232e-14\n    test 590 forward 144N (-64.721, 94.046) 3/4: 2908348.733697, -10210857.598605, -94.471204, 1.104695\n    test 591 reverse 144N (-64.721, 94.046) 3/4: 0.0\n    test 592 forward 147N (-67.094, 87.142) 3/4: 2623368.28288, -9863301.12097, -86.898617, 1.084836\n    test 593 reverse 147N (-67.094, 87.142) 3/4: 0.0\n    test 594 forward 150N (-69.282, 80.000) 3/4: 2325015.074835, -9578621.128889, -79.325231, 1.066355\n    test 595 reverse 150N (-69.282, 80.000) 3/4: 2.842170943040401e-14\n    test 596 forward 153N (-71.281, 72.638) 3/4: 2023752.790526, -9353559.771346, -71.732868, 1.050046\n    test 597 reverse 153N (-71.281, 72.638) 3/3: 0.0\n    test 598 forward 156N (-73.084, 65.078) 3/4: 1728450.251911, -9182823.938232, -64.096558, 1.036319\n    test 599 reverse 156N (-73.084, 65.078) 3/3: 1.4210854715202004e-14\n    test 600 forward 159N (-74.686, 57.339) 3/4: 1446137.252018, -9059670.735504, -56.391495, 1.025259\n    test 601 reverse 159N (-74.686, 57.339) 3/3: 5.859285502108464e-14\n    test 602 forward 162N (-76.085, 49.443) 3/4: 1181870.215451, -8976407.252949, -48.598167, 1.016714\n    test 603 reverse 162N (-76.085, 49.443) 3/3: 0.0\n    test 604 forward 165N (-77.274, 41.411) 3/4: 938645.229361, -8924845.3123, -40.705476, 1.010384\n    test 605 reverse 165N (-77.274, 41.411) 3/3: 3.1776437161565096e-14\n    test 606 forward 168N (-78.252, 33.266) 3/4: 717349.637417, -8896761.249834, -32.712011, 1.005894\n    test 607 reverse 168N (-78.252, 33.266) 3/3: 0.0\n    test 608 forward 171N (-79.015, 25.030) 3/4: 516782.400098, -8884389.933155, -24.625783, 1.002865\n    test 609 reverse 171N (-79.015, 25.030) 3/3: 4.1583447479068616e-14\n    test 610 forward 174N (-79.562, 16.725) 3/4: 333788.634116, -8880946.730424, -16.462884, 1.000962\n    test 611 reverse 174N (-79.562, 16.725) 3/3: 3.1776437161565096e-14\n    test 612 forward 177N (-79.890, 8.374) 3/4: 163544.38007, -8881136.361771, -8.245542, 0.999927\n    test 613 reverse 177N (-79.890, 8.374) 3/3: 5.224422199693188e-14\n    test 614 forward 180N (-80.000, 0.000) 3/3: 0.0, -8881585.815988, 0.0, 0.9996\n    test 615 reverse 180N (-80.000, 0.000) 3/3: 0.0\n    test 616 forward 183N (-79.890, -8.374) 3/4: -163544.38007, -8881136.361771, 8.245542, 0.999927\n    test 617 reverse 183N (-79.890, -8.374) 3/3: 5.123796534383003e-14\n    test 618 forward 186N (-79.562, -16.725) 3/4: -333788.634116, -8880946.730424, 16.462884, 1.000962\n    test 619 reverse 186N (-79.562, -16.725) 3/3: 3.1776437161565096e-14\n    test 620 forward 189N (-79.015, -25.030) 3/4: -516782.400098, -8884389.933155, 24.625783, 1.002865\n    test 621 reverse 189N (-79.015, -25.030) 3/3: 3.1776437161565096e-14\n    test 622 forward 192N (-78.252, -33.266) 3/4: -717349.637417, -8896761.249834, 32.712011, 1.005894\n    test 623 reverse 192N (-78.252, -33.266) 3/3: 2.5618982671915014e-14\n    test 624 forward 195N (-77.274, -41.411) 3/4: -938645.229361, -8924845.3123, 40.705476, 1.010384\n    test 625 reverse 195N (-77.274, -41.411) 3/3: 3.1776437161565096e-14\n    test 626 forward 198N (-76.085, -49.443) 3/4: -1181870.215451, -8976407.252949, 48.598167, 1.016714\n    test 627 reverse 198N (-76.085, -49.443) 3/3: 7.105427357601002e-15\n    test 628 forward 201N (-74.686, -57.339) 3/4: -1446137.252018, -9059670.735504, 56.391495, 1.025259\n    test 629 reverse 201N (-74.686, -57.339) 3/3: 1.0048591735576161e-13  FAILED, KNOWN, expected 9e-14\n    test 630 forward 204N (-73.084, -65.078) 3/4: -1728450.251911, -9182823.938232, 64.096558, 1.036319\n    test 631 reverse 204N (-73.084, -65.078) 3/3: 1.4210854715202004e-14\n    test 632 forward 207N (-71.281, -72.638) 3/4: -2023752.790526, -9353559.771346, 71.732868, 1.050046\n    test 633 reverse 207N (-71.281, -72.638) 3/3: 0.0\n    test 634 forward 210N (-69.282, -80.000) 3/4: -2325015.074835, -9578621.128889, 79.325231, 1.066355\n    test 635 reverse 210N (-69.282, -80.000) 3/4: 1.4210854715202004e-14\n    test 636 forward 213N (-67.094, -87.142) 3/4: -2623368.28288, -9863301.12097, 86.898617, 1.084836\n    test 637 reverse 213N (-67.094, -87.142) 3/4: 0.0\n    test 638 forward 216N (-64.721, -94.046) 3/4: -2908348.733697, -10210857.598605, 94.471204, 1.104695\n    test 639 reverse 216N (-64.721, -94.046) 3/4: 0.0\n    test 640 forward 219N (-62.172, -100.691) 3/4: -3168362.707459, -10621853.317461, 102.04623, 1.124739\n    test 641 reverse 219N (-62.172, -100.691) 3/4: 2.929642751054232e-14\n    test 642 forward 222N (-59.452, -107.061) 3/4: -3391492.622467, -11093528.387239, 109.604086, 1.14345\n    test 643 reverse 222N (-59.452, -107.061) 3/4: 7.105427357601002e-15\n    test 644 forward 225N (-56.569, -113.137) 3/4: -3566696.824822, -11619422.467571, 117.096854, 1.159166\n    test 645 reverse 225N (-56.569, -113.137) 3/4: 7.105427357601002e-15\n    test 646 forward 228N (-53.530, -118.903) 3/4: -3685290.742854, -12189522.028618, 124.447841, 1.170375\n    test 647 reverse 228N (-53.530, -118.903) 3/4: 2.842170943040401e-14\n    test 648 forward 231N (-50.346, -124.343) 3/4: -3742386.824274, -12791126.616764, 131.557863, 1.176031\n    test 649 reverse 231N (-50.346, -124.343) 3/4: 2.929642751054232e-14\n    test 650 forward 234N (-47.023, -129.443) 3/4: -3737846.053669, -13410380.03778, 138.317827, 1.175799\n    test 651 reverse 234N (-47.023, -129.443) 3/4: 4.0194366942304644e-14\n    test 652 forward 237N (-43.571, -134.187) 3/4: -3676387.634221, -14034104.572541, 144.624552, 1.170121\n    test 653 reverse 237N (-43.571, -134.187) 3/4: 3.1776437161565096e-14\n    test 654 forward 240N (-40.000, -138.564) 3/4: -3566810.754496, -14651410.305646, 150.395289, 1.16007\n    test 655 reverse 240N (-40.000, -138.564) 3/4: 1.4210854715202004e-14\n    test 656 forward 243N (-36.319, -142.561) 3/4: -3420621.906486, -15254653.660248, 155.577129, 1.147079\n    test 657 reverse 243N (-36.319, -142.561) 3/4: 0.0\n    test 658 forward 246N (-32.539, -146.167) 3/4: -3250522.133697, -15839614.666766, 160.149958, 1.132638\n    test 659 reverse 246N (-32.539, -146.167) 3/4: 7.105427357601002e-15\n    test 660 forward 249N (-28.669, -149.373) 3/4: -3069132.144368, -16405050.640186, 164.124094, 1.118063\n    test 661 reverse 249N (-28.669, -149.373) 3/4: 3.552713678800501e-15\n    test 662 forward 252N (-24.721, -152.169) 3/4: -2888128.173431, -16951919.948156, 167.534978, 1.104377\n    test 663 reverse 252N (-24.721, -152.169) 3/4: 3.552713678800501e-15\n    test 664 forward 255N (-20.706, -154.548) 3/4: -2717773.256417, -17482549.021439, 170.437193, 1.09228\n    test 665 reverse 255N (-20.706, -154.548) 3/4: 3.552713678800501e-15\n    test 666 forward 258N (-16.633, -156.504) 3/4: -2566730.586316, -17999918.486885, 172.899178, 1.082187\n    test 667 reverse 258N (-16.633, -156.504) 3/4: 7.105427357601002e-15\n    test 668 forward 261N (-12.515, -158.030) 3/4: -2442031.891673, -18507145.758, 174.99917, 1.074303\n    test 669 reverse 261N (-12.515, -158.030) 3/4: 7.105427357601002e-15\n    test 670 forward 264N (-8.362, -159.124) 3/4: -2349105.316925, -19007174.828239, 176.822266, 1.068689\n    test 671 reverse 264N (-8.362, -159.124) 3/4: 8.881784197001252e-15\n    test 672 forward 267N (-4.187, -159.781) 3/4: -2291809.478825, -19502649.329559, 178.458273, 1.06534\n    test 673 reverse 267N (-4.187, -159.781) 3/4: 9.769962616701378e-15\n    test 674 forward 270N (0.000, -160.000) 3/4: -2272454.379192, -19995929.886042, 180.0, 1.064227\n    test 675 reverse 270N (0.000, -160.000) 3/3: 0.0\n    test 676 forward 273N (4.187, -159.781) 3/4: -2291809.478825, 19502649.329559, -178.458273, 1.06534\n    test 677 reverse 273N (4.187, -159.781) 3/4: 2.842170943040401e-14\n    test 678 forward 276N (8.362, -159.124) 3/4: -2349105.316925, 19007174.828239, -176.822266, 1.068689\n    test 679 reverse 276N (8.362, -159.124) 3/4: 1.0658141036401503e-14\n    test 680 forward 279N (12.515, -158.030) 3/4: -2442031.891673, 18507145.758, -174.99917, 1.074303\n    test 681 reverse 279N (12.515, -158.030) 3/4: 3.375077994860476e-14\n    test 682 forward 282N (16.633, -156.504) 3/4: -2566730.586316, 17999918.486885, -172.899178, 1.082187\n    test 683 reverse 282N (16.633, -156.504) 3/4: 1.4210854715202004e-14\n    test 684 forward 285N (20.706, -154.548) 3/4: -2717773.256417, 17482549.021439, -170.437193, 1.09228\n    test 685 reverse 285N (20.706, -154.548) 3/4: 3.552713678800501e-15\n    test 686 forward 288N (24.721, -152.169) 3/4: -2888128.173431, 16951919.948156, -167.534978, 1.104377\n    test 687 reverse 288N (24.721, -152.169) 3/4: 2.4868995751603507e-14\n    test 688 forward 291N (28.669, -149.373) 3/4: -3069132.144368, 16405050.640186, -164.124094, 1.118063\n    test 689 reverse 291N (28.669, -149.373) 3/4: 7.105427357601002e-15\n    test 690 forward 294N (32.539, -146.167) 3/4: -3250522.133697, 15839614.666766, -160.149958, 1.132638\n    test 691 reverse 294N (32.539, -146.167) 3/4: 7.105427357601002e-15\n    test 692 forward 297N (36.319, -142.561) 3/4: -3420621.906486, 15254653.660248, -155.577129, 1.147079\n    test 693 reverse 297N (36.319, -142.561) 3/4: 0.0\n    test 694 forward 300N (40.000, -138.564) 3/4: -3566810.754496, 14651410.305646, -150.395289, 1.16007\n    test 695 reverse 300N (40.000, -138.564) 3/4: 7.105427357601002e-15\n    test 696 forward 303N (43.571, -134.187) 3/4: -3676387.634221, 14034104.572541, -144.624552, 1.170121\n    test 697 reverse 303N (43.571, -134.187) 3/4: 3.1776437161565096e-14\n    test 698 forward 306N (47.023, -129.443) 3/4: -3737846.053669, 13410380.03778, -138.317827, 1.175799\n    test 699 reverse 306N (47.023, -129.443) 3/4: 4.0194366942304644e-14\n    test 700 forward 309N (50.346, -124.343) 3/4: -3742386.824274, 12791126.616764, -131.557863, 1.176031\n    test 701 reverse 309N (50.346, -124.343) 3/4: 2.929642751054232e-14\n    test 702 forward 312N (53.530, -118.903) 3/4: -3685290.742854, 12189522.028618, -124.447841, 1.170375\n    test 703 reverse 312N (53.530, -118.903) 3/4: 2.842170943040401e-14\n    test 704 forward 315N (56.569, -113.137) 3/4: -3566696.824822, 11619422.467571, -117.096854, 1.159166\n    test 705 reverse 315N (56.569, -113.137) 3/4: 7.105427357601002e-15\n    test 706 forward 318N (59.452, -107.061) 3/4: -3391492.622467, 11093528.387239, -109.604086, 1.14345\n    test 707 reverse 318N (59.452, -107.061) 3/4: 7.105427357601002e-15\n    test 708 forward 321N (62.172, -100.691) 3/4: -3168362.707459, 10621853.317461, -102.04623, 1.124739\n    test 709 reverse 321N (62.172, -100.691) 3/4: 2.929642751054232e-14\n    test 710 forward 324N (64.721, -94.046) 3/4: -2908348.733697, 10210857.598605, -94.471204, 1.104695\n    test 711 reverse 324N (64.721, -94.046) 3/4: 0.0\n    test 712 forward 327N (67.094, -87.142) 3/4: -2623368.28288, 9863301.12097, -86.898617, 1.084836\n    test 713 reverse 327N (67.094, -87.142) 3/4: 0.0\n    test 714 forward 330N (69.282, -80.000) 3/4: -2325015.074835, 9578621.128889, -79.325231, 1.066355\n    test 715 reverse 330N (69.282, -80.000) 3/4: 2.842170943040401e-14\n    test 716 forward 333N (71.281, -72.638) 3/4: -2023752.790526, 9353559.771346, -71.732868, 1.050046\n    test 717 reverse 333N (71.281, -72.638) 3/3: 0.0\n    test 718 forward 336N (73.084, -65.078) 3/4: -1728450.251911, 9182823.938232, -64.096558, 1.036319\n    test 719 reverse 336N (73.084, -65.078) 3/3: 1.4210854715202004e-14\n    test 720 forward 339N (74.686, -57.339) 3/4: -1446137.252018, 9059670.735504, -56.391495, 1.025259\n    test 721 reverse 339N (74.686, -57.339) 3/3: 5.859285502108464e-14\n    test 722 forward 342N (76.085, -49.443) 3/4: -1181870.215451, 8976407.252949, -48.598167, 1.016714\n    test 723 reverse 342N (76.085, -49.443) 3/3: 0.0\n    test 724 forward 345N (77.274, -41.411) 3/4: -938645.229361, 8924845.3123, -40.705476, 1.010384\n    test 725 reverse 345N (77.274, -41.411) 3/3: 3.1776437161565096e-14\n    test 726 forward 348N (78.252, -33.266) 3/4: -717349.637417, 8896761.249834, -32.712011, 1.005894\n    test 727 reverse 348N (78.252, -33.266) 3/3: 0.0\n    test 728 forward 351N (79.015, -25.030) 3/4: -516782.400098, 8884389.933155, -24.625783, 1.002865\n    test 729 reverse 351N (79.015, -25.030) 3/3: 4.1583447479068616e-14\n    test 730 forward 354N (79.562, -16.725) 3/4: -333788.634116, 8880946.730424, -16.462884, 1.000962\n    test 731 reverse 354N (79.562, -16.725) 3/3: 3.1776437161565096e-14\n    test 732 forward 357N (79.890, -8.374) 3/4: -163544.38007, 8881136.361771, -8.245542, 0.999927\n    test 733 reverse 357N (79.890, -8.374) 3/3: 5.224422199693188e-14\n    test 734 forward 360N (80.000, 0.000) 3/3: 0.0, 8881585.815988, 0.0, 0.9996\n    test 735 reverse 360N (80.000, 0.000) 3/3: 0.0\n    test 736 max: 1.0048591735576161e-13  FAILED, KNOWN, expected 9e-14\n\n    test 737 forward: 6208422.5374, 5452954.287187, 41.077484, 1.511911\n    test 738 reverse: 30.244228, 60.169664, 41.479185, 1.510346\n\n    5 of 738 testKtm.py tests (0.7%) FAILED, ALL KNOWN (pygeodesy 26.3.26 Python 3.11.9 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 1.24.2 scipy 1.10.1 Math 2 macOS 26.3.1 isLazy 0 -W  default) 4.084 sec\nrunning /usr/local/bin/p....n3.11 -W default ~/PyGeodesy/test/testLatLon.py\n./test/testLatLon.py:276: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.sphericalNvector.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', p.cosineAndoyerLambertTo(q), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:277: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.sphericalNvector.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', q.cosineAndoyerLambertTo(p), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:279: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.sphericalNvector.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', p.cosineForsytheAndoyerLambertTo(q), '124801.098' if Sph else '125205.965', fmt='%.3f')\n./test/testLatLon.py:280: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.sphericalNvector.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', q.cosineForsytheAndoyerLambertTo(p), '124801.098' if Sph else '125205.965', fmt='%.3f')\n./test/testLatLon.py:276: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.sphericalTrigonometry.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', p.cosineAndoyerLambertTo(q), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:277: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.sphericalTrigonometry.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', q.cosineAndoyerLambertTo(p), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:279: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.sphericalTrigonometry.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', p.cosineForsytheAndoyerLambertTo(q), '124801.098' if Sph else '125205.965', fmt='%.3f')\n./test/testLatLon.py:280: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.sphericalTrigonometry.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', q.cosineForsytheAndoyerLambertTo(p), '124801.098' if Sph else '125205.965', fmt='%.3f')\n\n    testing testLatLon.py 25.05.09\n\n    testLatLon(pygeodesy.sphericalNvector, 25.05.27)\n    test 1 isEllipsoidal: False\n    test 2 isSpherical: True\n    test 3 lat/lonDMS: 52.20472°N, 000.14056°E\n    test 4 lat/lonDMS F_DM: 52°12.283′N, 000°08.434′E\n    test 5 lat/lonDMS F_DM: 52°12.2832′N, 000°08.4336′E\n    test 6 lat/lonDMS F_DMS: 52°12′17″N, 000°08′26″E\n    test 7 lat/lonDMS F_DMS: 52°12′17.0″N, 000°08′26.0″E\n    test 8 lat/lonDMS F_RAD: 0.911144N, 0.002453E\n    test 9 isequalTo: True\n    test 10 isequalTo: True\n    test 11 latlon2: 52.20472, 0.14056\n    test 12 latlon2: 52.2047, 0.1406\n    test 13 latlon2: 52.205, 0.141\n    test 14 latlon2: 52.2, 0.14\n    test 15 latlon2: 52.2, 0.1\n    test 16 latlon2: 52.0, 0.0\n    test 17 chordTo: 12036677.26\n    test 18 chordTo: 12036463.78\n    test 19 initialBearingTo: 156.1666\n    test 20 initialBearingTo: 65.8921\n    test 21 initialBearingTo: 0.0\n    test 22 initialBearingTo: 180.0\n    test 23 finalBearingTo: 157.8904\n    test 24 finalBearingTo: 93.8581\n    test 25 bearingTo2: 156.1666, 157.8904\n    test 26 ispolar: True\n    test 27 copy: True\n    test 28 __eq__: True\n    test 29 __ne__: False\n    test 30 equirectangularTo: 404329.56\n    test 31 distanceTo: 404279.720589\n    test 32 distanceTo: 404279.720589\n    test 33 distanceTo: 2145\n    test 34 distanceTo: 18013602.92\n    test 35 distanceTo: 20015114.35\n    test 36 intermediateTo: 51.372084°N, 000.707337°E\n    test 37 intermediateTo: True\n    test 38 intermediateTo: 404279.721\n    test 39 intermediateTo+5: 35.160975°N, 008.989542°E\n    test 40 intermediateTo+5: 5.000\n    test 41 intermediateTo-4: 64.911647°N, 013.726301°W\n    test 42 intermediateTo-4: 4.000\n    test 43 intermediateTo-h: 125.000\n    test 44 intermediateChordTo: 51.372294°N, 000.707192°E\n    test 45 intermediateChordTo: True\n    test 46 intermediateChordTo-h: 125.000\n    test 47 midpointTo: 50.536327°N, 001.274614°E\n    test 48 destination: 51.513546°N, 000.098345°W\n    test 49 destination: 51°30′49″N, 000°05′54″W\n    test 50 destination: 34°37′N, 116°33′W\n    test 51 destination: 34.613647°N, 116.55116°W\n    test 52 destination: 0.604122N, 2.034201W\n    test 53 destination: 31.96383509°N, 064.37329146°E\n    test 54 alongTrackDistanceTo: 62331.59\n    test 55 alongTrackDistanceTo: 62331.58\n    test 56 alongTrackDistanceTo: 99.588\n    test 57 alongTrackDistanceTo: -7702.7\n    test 58 alongTrackDistanceTo: 7587.6\n    test 59 crossTrackDistanceTo: -305.6652816061398  FAILED, KNOWN, expected TypeError\n    test 60 crossTrackDistanceTo: -307.55\n    test 61 crossTrackDistanceTo: 7.4524\n    test 62 greatCircle: (-0.79408, 0.12856, 0.59406)\n    test 63 neareston6: (LatLon(45°00′00.0″N, 001°00′00.0″E), 4773243.784965, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E))  FAILED, KNOWN, expected (LatLon(45°00′00.0″N, 001°00′00.0″E), 4755443.4294, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E))\n    test 64 neareston6: (LatLon(45°30′03.93″N, 002°00′00.0″E), 38968.531578, 1.501091, 2, LatLon(45°00′00.0″N, 002°00′00.0″E), LatLon(46°00′00.0″N, 002°00′00.0″E))  FAILED, KNOWN, expected (LatLon(45°30′03.94″N, 002°00′00.0″E), 39078.729285, 1.501072, 2, LatLon(45°00′00.0″N, 002°00′00.0″E), LatLon(46°00′00.0″N, 002°00′00.0″E))\n    test 65 chordTo: 124799.103\n    test 66 cosineAndoyerLambertTo: 124801.098\n    test 67 cosineAndoyerLambertTo: 124801.098\n    test 68 cosineForsyheAndoyerLambertTo: 124801.098\n    test 69 cosineForsyheAndoyerLambertTo: 124801.098\n    test 70 cosineLawTo: 124801.098\n    test 71 cosineLawTo: 124801.098\n    test 72 equirectangularTo: 124804.754\n    test 73 equirectangularTo: 124804.754\n    test 74 euclideanTo: 130015.089\n    test 75 euclideanTo: 130015.089\n    test 76 flatLocalTo: 124804.754\n    test 77 flatLocalTo: 124804.754\n    test 78 flatPolarTo: 133663.257\n    test 79 flatPolarTo: 133663.257\n    test 80 hartzell: 53.3206°N, 001.7297°W\n    test 81 hartzell: 53.3206°N, 001.7297°W\n    test 82 height4: 0.0\n    test 83 height4: (3803904.2, -114870.8, 5109488.3, 0.0)\n    test 84 height4: 53°19′14.2″N, 001°43′46.9″W\n    test 85 height4: 53°19′14.2″N, 001°43′46.9″W\n    test 86 haversineTo: 124801.098\n    test 87 haversineTo: 124801.098\n    test 88 hubenyTo: <bound method LatLonBase.flatLocalTo of LatLon(53°19′14.16″N, 001°43′46.92″W)>\n    test 89 hubenyTo: <bound method LatLonBase.flatLocalTo of LatLon(53°11′19.32″N, 000°08′00.24″E)>\n    test 90 thomasTo: 124801.098\n    test 91 thomasTo: 124801.098\n    test 92 vincentysTo: 124801.098\n    test 93 vincentysTo: 124801.098\n    test 94 greatCircleTo: (-0.79408, 0.12859, 0.59406)\n    test 95 isclockwise: False\n    test 96 isclockwise*: False\n    test 97 isclockwise: True\n    test 98 isclockwise*: True\n    test 99 isclockwise: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 100 isclockwise*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 101 isclockwise: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 102 isclockwise*: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 103 isconvex: False\n    test 104 isconvex*: False\n    test 105 isconvex: True\n    test 106 isconvex*: True\n    test 107 isconvex: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 108 isconvex*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 109 isenclosedBy1: True\n    test 110 isenclosedBy1*: True\n    test 111 isenclosedBy2: False\n    test 112 isenclosedBy2*: False\n    test 113 isenclosedBy3: False\n    test 114 isenclosedBy3*: False\n    test 115 isenclosedBy4: False\n    test 116 isenclosedBy4*: False\n    test 117 isenclosedBy5: False\n    test 118 isenclosedBy5*: False\n    test 119 isenclosedBy6: True\n    test 120 isenclosedBy6*: True\n    test 121 isenclosedBy7: True\n    test 122 isenclosedBy7*: True\n    test 123 isenclosedBy-CCW: True\n    test 124 isenclosedBy-CW : True\n    test 125 isenclosedBy-CCW: True\n    test 126 initialBearingTo: 102.432182\n    test 127 compassAngleTo: 100.017\n    test 128 compassAngleTo: 105.599\n    test 129 initialBearingTo: 288.715918\n    test 130 compassAngleTo: 280.017\n    test 131 compassAngleTo: 285.599\n    test 132 equirectangularTo: 592.185\n    test 133 distanceTo: 591.831\n    test 134 compassAngleTo: 0.0\n    test 135 compassAngleTo: 45.0\n    test 136 compassAngleTo: 90.0\n    test 137 compassAngleTo: 180.0\n    test 138 compassAngleTo: 225.0\n    test 139 compassAngleTo: 315.0\n    test 140 compassAngleTo: 270.0\n    test 141 compassAngleTo: 359.4\n    test 142 latlon2: (53.0, 1.0)\n    test 143 philam2: (0.93, 0.02)\n    test 144 compassAngleTo: 31\n    test 145 compassAngleTo: 45\n\n    test 146 boundsOf: <class 'pygeodesy.namedTuples.Bounds2Tuple'>\n    test 147 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 148 latlon2: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 149 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 150 isequalTo: <class 'bool'>\n    test 151 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 152 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 153 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 154 xyz3: <class 'tuple'>\n    test 155 xyzh: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 156 compassAngleTo: <class 'float'>\n    test 157 cosineLawTo: <class 'float'>\n    test 158 euclideanTo: <class 'float'>\n    test 159 flatLocalTo: <class 'float'>\n    test 160 flatPolarTo: <class 'float'>\n    test 161 haversineTo: <class 'float'>\n    test 162 hubenyTo: <class 'float'>\n    test 163 vincentysTo: <class 'float'>\n    test 164 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 165 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 166 toLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 167 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 168 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 169 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 170 toVector: (3922384.659522, 0.0, 5020423.423198)\n    test 171 toVector3d: (0.61566, 0.0, 0.78801)\n    test 172 trilaterate5 (pygeodesy.sphericalNvector) .min: 223.305\n    test 173 trilaterate5 (pygeodesy.sphericalNvector) .point: 42.67456065°N, 002.49539502°E\n    test 174 trilaterate5 (pygeodesy.sphericalNvector) .min- is .maxPoint: True\n    test 175 trilaterate5 (pygeodesy.sphericalNvector) .n: 1\n    test 176 trilaterate5 (pygeodesy.sphericalNvector) .error: sphericalNvector.LatLon.trilaterate5(area=True), MRO(nvectorBase.LatLonNvectorBase, sphericalBase.LatLonSphericalBase, latlonBase.LatLonBase, named._NamedBase, ecefLocals._EcefLocal, named._Named): not implemented\n\n    test 177 radii11: Radii11Tuple(rA=7701.409157, rB=1361.530045, rC=499.257353, cR=4886.694635, rIn=739.915482, riS=179.523525, roS=6087.250896, a=1860.787398, b=8200.666509, c=9062.939201, s=9562.196554)\n    test 178 circum4 (pygeodesy.sphericalNvector) .radius: 3185505.323  FAILED, KNOWN, expected 3184256.748\n    test 179 circum4 (pygeodesy.sphericalNvector) .center: 42.674561°N, 002.495395°E, -3185503.45m  FAILED, KNOWN, expected 43.054367°N, 002.942573°E, -3183993.92m\n    test 180 circum4 (pygeodesy.sphericalNvector) .rank: 3\n    test 181 circum4 (pygeodesy.sphericalNvector) .residuals: ()\n    test 182 circum4 (pygeodesy.sphericalNvector) .d1: 4886.695  FAILED, KNOWN, expected 57818.033\n    test 183 circum4 (pygeodesy.sphericalNvector) .d2: 4886.695  FAILED, KNOWN, expected 57834.176\n    test 184 circum4 (pygeodesy.sphericalNvector) .d3: 4886.695  FAILED, KNOWN, expected 57830.992\n    test 185 circum4 (pygeodesy.sphericalNvector) .datum: name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84\n    test 186 circum4 (pygeodesy.sphericalNvector) .Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 187 radii11: Radii11Tuple(rA=328257.82694, rB=782282.176109, rC=782282.176109, cR=782304.746354, rIn=325773.738834, riS=85162.638484, roS=INF, a=1564564.352218, b=1110540.003049, c=1110540.003049, s=1892822.179158)\n    test 188 circin6 (pygeodesy.sphericalNvector) .rB+rC: 1564564.352\n    test 189 circin6 (pygeodesy.sphericalNvector) .rC+pA: 1110540.003\n    test 190 circin6 (pygeodesy.sphericalNvector) .rA+rB: 1110540.003\n    test 191 circin6 (pygeodesy.sphericalNvector) .radius: 325773.739  FAILED, KNOWN, expected 325058.721\n    test 192 circin6 (pygeodesy.sphericalNvector) .center: 02.938473°N, 002.942346°E, -40128.57m  FAILED, KNOWN, expected 02.948531°N, 002.932537°E, -40041.19m\n    test 193 circin6 (pygeodesy.sphericalNvector) .deltas: (0.0, 0.0, 0.430944)  FAILED, KNOWN, expected (0.0, 0.0, 0.090491)\n    test 194 circin6 (pygeodesy.sphericalNvector) .cA: 05.019001°N, 005.038369°E, -48209.76m  FAILED, KNOWN, expected 05.04314°N, 005.014578°E, -48104.09m\n    test 195 circin6 (pygeodesy.sphericalNvector) .cB: 00.0°N, 002.951508°E, -20185.00m  FAILED, KNOWN, expected 00.0°N, 002.941713°E, -20168.62m\n    test 196 circin6 (pygeodesy.sphericalNvector) .cC: 02.951508°N, 000.0°E, -20185.00m  FAILED, KNOWN, expected 02.961566°N, 000.0°E, -20113.46m\n    test 197 circin6 (pygeodesy.sphericalNvector) .dA: 327983.380  FAILED, KNOWN, expected 327263.596\n    test 198 circin6 (pygeodesy.sphericalNvector) .dB: 326745.373  FAILED, KNOWN, expected 326036.153\n    test 199 circin6 (pygeodesy.sphericalNvector) .dC: 326745.373  FAILED, KNOWN, expected 326020.432\n\n    test 200 area cw/ccw: 1.0\n\n    testLatLon(pygeodesy.sphericalTrigonometry, 25.08.31)\n    test 201 isEllipsoidal: False\n    test 202 isSpherical: True\n    test 203 lat/lonDMS: 52.20472°N, 000.14056°E\n    test 204 lat/lonDMS F_DM: 52°12.283′N, 000°08.434′E\n    test 205 lat/lonDMS F_DM: 52°12.2832′N, 000°08.4336′E\n    test 206 lat/lonDMS F_DMS: 52°12′17″N, 000°08′26″E\n    test 207 lat/lonDMS F_DMS: 52°12′17.0″N, 000°08′26.0″E\n    test 208 lat/lonDMS F_RAD: 0.911144N, 0.002453E\n    test 209 isequalTo: True\n    test 210 isequalTo: True\n    test 211 latlon2: 52.20472, 0.14056\n    test 212 latlon2: 52.2047, 0.1406\n    test 213 latlon2: 52.205, 0.141\n    test 214 latlon2: 52.2, 0.14\n    test 215 latlon2: 52.2, 0.1\n    test 216 latlon2: 52.0, 0.0\n    test 217 chordTo: 12036677.26\n    test 218 chordTo: 12036463.78\n    test 219 initialBearingTo: 156.1666\n    test 220 initialBearingTo: 65.8921\n    test 221 initialBearingTo: 0.0\n    test 222 initialBearingTo: 180.0\n    test 223 finalBearingTo: 157.8904\n    test 224 finalBearingTo: 93.8581\n    test 225 bearingTo2: 156.1666, 157.8904\n    test 226 ispolar: True\n    test 227 copy: True\n    test 228 __eq__: True\n    test 229 __ne__: False\n    test 230 equirectangularTo: 404329.56\n    test 231 distanceTo: 404279.720589\n    test 232 distanceTo: 404279.720589\n    test 233 distanceTo: 2145\n    test 234 antipodal: False\n    test 235 distanceTo dateline: 19967403.498  FAILED, KNOWN, expected 19119590.551\n    test 236 distanceTo unrolled: 19967403.498  FAILED, KNOWN, expected 19119590.551\n    test 237 antipodal: False\n    test 238 distanceTo dateline: 9491735\n    test 239 distanceTo unrolled: 9491735\n    test 240 distanceTo: 18013602.92\n    test 241 distanceTo: 20015114.35\n    test 242 intermediateTo: 51.372084°N, 000.707337°E\n    test 243 intermediateTo: True\n    test 244 intermediateTo: 404279.721\n    test 245 intermediateTo+5: 35.160975°N, 008.989542°E\n    test 246 intermediateTo+5: 5.000\n    test 247 intermediateTo-4: 64.911647°N, 013.726301°W\n    test 248 intermediateTo-4: 4.000\n    test 249 intermediateTo-h: 125.000\n    test 250 midpointTo: 50.536327°N, 001.274614°E\n    test 251 destination: 51.513546°N, 000.098345°W\n    test 252 destination: 51°30′49″N, 000°05′54″W\n    test 253 destination: 34°37′N, 116°33′W\n    test 254 destination: 34.613647°N, 116.55116°W\n    test 255 destination: 0.604122N, 2.034201W\n    test 256 destination: 31.96383509°N, 064.37329146°E\n    test 257 alongTrackDistanceTo: type(end) (96): incompatible with sphericalTrigonometry.LatLon.alongTrackDistanceTo(end)  FAILED, KNOWN, expected incompatible ...\n    test 258 alongTrackDistanceTo: 62331.58\n    test 259 alongTrackDistanceTo: 99.588\n    test 260 alongTrackDistanceTo: -7702.7\n    test 261 alongTrackDistanceTo: 7587.6\n    test 262 crossTrackDistanceTo: type(end) (96): incompatible with sphericalTrigonometry.LatLon.crossTrackDistanceTo(end)  FAILED, KNOWN, expected incompatible ...\n    test 263 crossTrackDistanceTo: -307.55\n    test 264 crossTrackDistanceTo: 7.4524\n    test 265 greatCircle: (-0.79408, 0.12856, 0.59406)\n    test 266 neareston6: (LatLon(45°00′00.0″N, 001°00′00.0″E), 4773243.784965, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E))  FAILED, KNOWN, expected (LatLon(45°00′00.0″N, 001°00′00.0″E), 4755443.4294, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E))\n    test 267 neareston6: (LatLon(45°30′03.93″N, 002°00′00.0″E), 38968.531578, 1.501091, 2, LatLon(45°00′00.0″N, 002°00′00.0″E), LatLon(46°00′00.0″N, 002°00′00.0″E))  FAILED, KNOWN, expected (LatLon(45°30′03.94″N, 002°00′00.0″E), 39078.729285, 1.501072, 2, LatLon(45°00′00.0″N, 002°00′00.0″E), LatLon(46°00′00.0″N, 002°00′00.0″E))\n    test 268 chordTo: 124799.103\n    test 269 cosineAndoyerLambertTo: 124801.098\n    test 270 cosineAndoyerLambertTo: 124801.098\n    test 271 cosineForsyheAndoyerLambertTo: 124801.098\n    test 272 cosineForsyheAndoyerLambertTo: 124801.098\n    test 273 cosineLawTo: 124801.098\n    test 274 cosineLawTo: 124801.098\n    test 275 equirectangularTo: 124804.754\n    test 276 equirectangularTo: 124804.754\n    test 277 euclideanTo: 130015.089\n    test 278 euclideanTo: 130015.089\n    test 279 flatLocalTo: 124804.754\n./test/testLatLon.py:276: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.ellipsoidalNvector.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', p.cosineAndoyerLambertTo(q), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:277: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.ellipsoidalNvector.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', q.cosineAndoyerLambertTo(p), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:279: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.ellipsoidalNvector.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', p.cosineForsytheAndoyerLambertTo(q), '124801.098' if Sph else '125205.965', fmt='%.3f')\n./test/testLatLon.py:280: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.ellipsoidalNvector.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', q.cosineForsytheAndoyerLambertTo(p), '124801.098' if Sph else '125205.965', fmt='%.3f')\n./test/testLatLon.py:276: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.ellipsoidalVincenty.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', p.cosineAndoyerLambertTo(q), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:277: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.ellipsoidalVincenty.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', q.cosineAndoyerLambertTo(p), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:279: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.ellipsoidalVincenty.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', p.cosineForsytheAndoyerLambertTo(q), '124801.098' if Sph else '125205.965', fmt='%.3f')\n./test/testLatLon.py:280: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.ellipsoidalVincenty.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', q.cosineForsytheAndoyerLambertTo(p), '124801.098' if Sph else '125205.965', fmt='%.3f')\n    test 280 flatLocalTo: 124804.754\n    test 281 flatPolarTo: 133663.257\n    test 282 flatPolarTo: 133663.257\n    test 283 hartzell: 53.3206°N, 001.7297°W\n    test 284 hartzell: 53.3206°N, 001.7297°W\n    test 285 height4: 0.0\n    test 286 height4: (3803904.2, -114870.8, 5109488.3, 0.0)\n    test 287 height4: 53°19′14.2″N, 001°43′46.9″W\n    test 288 height4: 53°19′14.2″N, 001°43′46.9″W\n    test 289 haversineTo: 124801.098\n    test 290 haversineTo: 124801.098\n    test 291 hubenyTo: <bound method LatLonBase.flatLocalTo of LatLon(53°19′14.16″N, 001°43′46.92″W)>\n    test 292 hubenyTo: <bound method LatLonBase.flatLocalTo of LatLon(53°11′19.32″N, 000°08′00.24″E)>\n    test 293 thomasTo: 124801.098\n    test 294 thomasTo: 124801.098\n    test 295 vincentysTo: 124801.098\n    test 296 vincentysTo: 124801.098\n    test 297 isclockwise: False\n    test 298 isclockwise*: False\n    test 299 isclockwise: True\n    test 300 isclockwise*: True\n    test 301 isclockwise: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 302 isclockwise*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 303 isclockwise: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 304 isclockwise*: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 305 isconvex: False\n    test 306 isconvex*: False\n    test 307 isconvex: True\n    test 308 isconvex*: True\n    test 309 isconvex: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 310 isconvex*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 311 isenclosedBy1: True\n    test 312 isenclosedBy1*: True\n    test 313 isenclosedBy2: False\n    test 314 isenclosedBy2*: False\n    test 315 isenclosedBy3: False\n    test 316 isenclosedBy3*: False\n    test 317 isenclosedBy4: False\n    test 318 isenclosedBy4*: False\n    test 319 isenclosedBy5: False\n    test 320 isenclosedBy5*: False\n    test 321 isenclosedBy6: True\n    test 322 isenclosedBy6*: True\n    test 323 isenclosedBy7: True\n    test 324 isenclosedBy7*: True\n    test 325 isenclosedBy-CCW: True\n    test 326 isenclosedBy-CW : True\n    test 327 isenclosedBy-CCW: True\n    test 328 initialBearingTo: 102.432182\n    test 329 compassAngleTo: 100.017\n    test 330 compassAngleTo: 105.599\n    test 331 initialBearingTo: 288.715918\n    test 332 compassAngleTo: 280.017\n    test 333 compassAngleTo: 285.599\n    test 334 equirectangularTo: 592.185\n    test 335 distanceTo: 591.831\n    test 336 bearingTo: 0.0\n    test 337 compassAngleTo: 0.0\n    test 338 bearingTo: 45.0\n    test 339 compassAngleTo: 45.0\n    test 340 bearingTo: 90.0\n    test 341 compassAngleTo: 90.0\n    test 342 bearingTo: 180.0\n    test 343 compassAngleTo: 180.0\n    test 344 bearingTo: 225.0\n    test 345 compassAngleTo: 225.0\n    test 346 bearingTo: 315.0\n    test 347 compassAngleTo: 315.0\n    test 348 bearingTo: 270.0\n    test 349 compassAngleTo: 270.0\n    test 350 bearingTo: 0.0  FAILED, KNOWN, expected 359.4\n    test 351 compassAngleTo: 359.4\n    test 352 latlon2: (53.0, 1.0)\n    test 353 philam2: (0.93, 0.02)\n    test 354 bearingTo: 31\n    test 355 compassAngleTo: 31\n    test 356 compassAngleTo: 45\n\n    test 357 boundsOf: <class 'pygeodesy.namedTuples.Bounds2Tuple'>\n    test 358 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 359 latlon2: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 360 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 361 isequalTo: <class 'bool'>\n    test 362 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 363 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 364 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 365 xyz3: <class 'tuple'>\n    test 366 xyzh: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 367 compassAngleTo: <class 'float'>\n    test 368 cosineLawTo: <class 'float'>\n    test 369 euclideanTo: <class 'float'>\n    test 370 flatLocalTo: <class 'float'>\n    test 371 flatPolarTo: <class 'float'>\n    test 372 haversineTo: <class 'float'>\n    test 373 hubenyTo: <class 'float'>\n    test 374 vincentysTo: <class 'float'>\n    test 375 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 376 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 377 toLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 378 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 379 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 380 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 381 toNvector: (0.61566, 0.0, 0.78801)\n    test 382 toVector: (3922384.659522, 0.0, 5020423.423198)\n    test 383 toVector3d: (0.61566, 0.0, 0.78801)\n\n    test 384 trilaterate5 (pygeodesy.sphericalTrigonometry) .min: 313.671\n    test 385 trilaterate5 (pygeodesy.sphericalTrigonometry) .point: 42.66937229°N, 002.48639477°E\n    test 386 trilaterate5 (pygeodesy.sphericalTrigonometry) .max: 1591.044\n    test 387 trilaterate5 (pygeodesy.sphericalTrigonometry) .point: 42.65153054°N, 002.46822157°E\n    test 388 trilaterate5 (pygeodesy.sphericalTrigonometry) .n: 3\n    test 389 trilaterate5 (pygeodesy.sphericalTrigonometry) .min: 133.815\n    test 390 trilaterate5 (pygeodesy.sphericalTrigonometry) .max: 160.242\n    test 391 trilaterate5 (pygeodesy.sphericalTrigonometry) .point: 42.67817811°N, 002.49966641°E\n    test 392 trilaterate5 (pygeodesy.sphericalTrigonometry) .n: 2\n    test 393 trilaterate5 (pygeodesy.sphericalTrigonometry) .min: 2403.293\n    test 394 trilaterate5 (pygeodesy.sphericalTrigonometry) .max: 2403.293\n    test 395 trilaterate5 (pygeodesy.sphericalTrigonometry) .point: 42.66135649°N, 002.47981645°E\n    test 396 trilaterate5 (pygeodesy.sphericalTrigonometry) .min- is .maxPoint: True\n    test 397 trilaterate5 (pygeodesy.sphericalTrigonometry) .n: 1\n    test 398 trilaterate5 (pygeodesy.sphericalTrigonometry) .min: 1340.608\n    test 399 trilaterate5 (pygeodesy.sphericalTrigonometry) .point: 42.69128229°N, 002.50129001°E\n    test 400 trilaterate5 (pygeodesy.sphericalTrigonometry) .max: 1499.220\n    test 401 trilaterate5 (pygeodesy.sphericalTrigonometry) .point: 42.64295864°N, 002.44242391°E\n    test 402 trilaterate5 (pygeodesy.sphericalTrigonometry) .n: 3\n    test 403 radii11: Radii11Tuple(rA=7237.243793, rB=1825.695409, rC=2.255158, cR=57690.493993, rIn=57.33247, riS=2.087691, roS=2.443616, a=1827.950567, b=7239.49895, c=9062.939201, s=9065.194359)\n    test 404 circum3 (pygeodesy.sphericalTrigonometry) .error: circum (True), point (LatLon(42°41′19.82″N, 002°26′19.89″E)), point2 (LatLon(42°38′07.52″N, 002°31′21.25″E)) or point3 (LatLon(42°38′43.44″N, 002°30′17.32″E)): 'no intersection of Cartesian(4678747.025, 199276.311, 4319649.059), Cartesian(4682472.234, 206289.224, 4315281.138) and Cartesian(4681785.019, 204805.018, 4316097.393) with radius 57690.493992845404'\n\n    test 405 radii11: Radii11Tuple(rA=7237.243793, rB=1825.695409, rC=2.255158, cR=57690.493993, rIn=57.33247, riS=2.087691, roS=2.443616, a=1827.950567, b=7239.49895, c=9062.939201, s=9065.194359)\n    test 406 circum4 (pygeodesy.sphericalTrigonometry) .radius: 3185634.993  FAILED, KNOWN, expected 3184256.748\n    test 407 circum4 (pygeodesy.sphericalTrigonometry) .center: 43.051859°N, 002.94463°E, -3185373.78m  FAILED, KNOWN, expected 43.054367°N, 002.942573°E, -3183993.92m\n    test 408 circum4 (pygeodesy.sphericalTrigonometry) .rank: 3\n    test 409 circum4 (pygeodesy.sphericalTrigonometry) .residuals: ()\n    test 410 circum4 (pygeodesy.sphericalTrigonometry) .d1: 57691.283  FAILED, KNOWN, expected 57818.033\n    test 411 circum4 (pygeodesy.sphericalTrigonometry) .d2: 57691.283  FAILED, KNOWN, expected 57834.176\n    test 412 circum4 (pygeodesy.sphericalTrigonometry) .d3: 57691.283  FAILED, KNOWN, expected 57830.992\n    test 413 circum4 (pygeodesy.sphericalTrigonometry) .datum: name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84\n    test 414 circum4 (pygeodesy.sphericalTrigonometry) .Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 415 radii11: Radii11Tuple(rA=328257.82694, rB=782282.176109, rC=782282.176109, cR=782304.746354, rIn=325773.738834, riS=85162.638484, roS=INF, a=1564564.352218, b=1110540.003049, c=1110540.003049, s=1892822.179158)\n    test 416 circin6 (pygeodesy.sphericalTrigonometry) .rB+rC: 1564564.352\n    test 417 circin6 (pygeodesy.sphericalTrigonometry) .rC+pA: 1110540.003\n    test 418 circin6 (pygeodesy.sphericalTrigonometry) .rA+rB: 1110540.003\n    test 419 circin6 (pygeodesy.sphericalTrigonometry) .radius: 325773.739  FAILED, KNOWN, expected 325058.721\n    test 420 circin6 (pygeodesy.sphericalTrigonometry) .center: 02.938473°N, 002.942346°E, -40128.57m  FAILED, KNOWN, expected 02.948531°N, 002.932537°E, -40041.19m\n    test 421 circin6 (pygeodesy.sphericalTrigonometry) .deltas: (0.0, 0.0, 0.430944)  FAILED, KNOWN, expected (0.0, 0.0, 0.090491)\n    test 422 circin6 (pygeodesy.sphericalTrigonometry) .cA: 05.019001°N, 005.038369°E, -48209.76m  FAILED, KNOWN, expected 05.04314°N, 005.014578°E, -48104.09m\n    test 423 circin6 (pygeodesy.sphericalTrigonometry) .cB: 00.0°N, 002.951508°E, -20185.00m  FAILED, KNOWN, expected 00.0°N, 002.941713°E, -20168.62m\n    test 424 circin6 (pygeodesy.sphericalTrigonometry) .cC: 02.951508°N, 000.0°E, -20185.00m  FAILED, KNOWN, expected 02.961566°N, 000.0°E, -20113.46m\n    test 425 circin6 (pygeodesy.sphericalTrigonometry) .dA: 327983.380  FAILED, KNOWN, expected 327263.596\n    test 426 circin6 (pygeodesy.sphericalTrigonometry) .dB: 326745.373  FAILED, KNOWN, expected 326036.153\n    test 427 circin6 (pygeodesy.sphericalTrigonometry) .dC: 326745.373  FAILED, KNOWN, expected 326020.432\n\n    test 428 area cw/ccw: 1.0\n\n    testLatLon(pygeodesy.ellipsoidalNvector, 25.05.12)\n    test 429 isEllipsoidal: True\n    test 430 isSpherical: False\n    test 431 lat/lonDMS: 52.20472°N, 000.14056°E\n    test 432 lat/lonDMS F_DM: 52°12.283′N, 000°08.434′E\n    test 433 lat/lonDMS F_DM: 52°12.2832′N, 000°08.4336′E\n    test 434 lat/lonDMS F_DMS: 52°12′17″N, 000°08′26″E\n    test 435 lat/lonDMS F_DMS: 52°12′17.0″N, 000°08′26.0″E\n    test 436 lat/lonDMS F_RAD: 0.911144N, 0.002453E\n    test 437 isequalTo: True\n    test 438 isequalTo: True\n    test 439 latlon2: 52.20472, 0.14056\n    test 440 latlon2: 52.2047, 0.1406\n    test 441 latlon2: 52.205, 0.141\n    test 442 latlon2: 52.2, 0.14\n    test 443 latlon2: 52.2, 0.1\n    test 444 latlon2: 52.0, 0.0\n    test 445 chordTo: 12029263.15\n    test 446 chordTo: 12029049.69\n    test 447 copy: True\n    test 448 __eq__: True\n    test 449 __ne__: False\n    test 450 equirectangularTo: 404329.56\n    test 451 distanceTo: 404279.720589\n    test 452 distanceTo: 404279.720589\n    test 453 distanceTo: 3972863\n    test 454 distanceTo: 18013602.92\n    test 455 distanceTo: 20015114.35  FAILED, KNOWN, expected 20003931.46\n    test 456 intermediateTo: 51.372294°N, 000.707192°E\n    test 457 intermediateTo: True\n    test 458 intermediateTo: 404279.721\n    test 459 intermediateTo+5: 35.560239°N, 008.833512°E\n    test 460 intermediateTo+5: 4.885\n    test 461 intermediateTo-4: 64.570387°N, 013.156352°W\n    test 462 intermediateTo-4: 3.885\n    test 463 intermediateTo-h: 125.000\n    test 464 midpointTo: 50.536327°N, 001.274614°E\n    test 465 neareston6: (LatLon(45°00′00.0″N, 001°00′00.0″E), 4755443.4294, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E))\n    test 466 neareston6: (LatLon(45°30′03.94″N, 002°00′00.0″E), 39078.729285, 1.501072, 2, LatLon(45°00′00.0″N, 002°00′00.0″E), LatLon(46°00′00.0″N, 002°00′00.0″E))\n    test 467 chordTo: 125203.963\n    test 468 cosineAndoyerLambertTo: 125205.962\n    test 469 cosineAndoyerLambertTo: 125205.962\n    test 470 cosineForsyheAndoyerLambertTo: 125205.965\n    test 471 cosineForsyheAndoyerLambertTo: 125205.965\n    test 472 cosineLawTo: 124801.098\n    test 473 cosineLawTo: 124801.098\n    test 474 equirectangularTo: 124804.754\n    test 475 equirectangularTo: 124804.754\n    test 476 euclideanTo: 130015.089\n    test 477 euclideanTo: 130015.089\n    test 478 flatLocalTo: 125209.633\n    test 479 flatLocalTo: 125209.633\n    test 480 flatPolarTo: 133663.257\n    test 481 flatPolarTo: 133663.257\n    test 482 hartzell: 53.3206°N, 001.7297°W\n    test 483 hartzell: 53.349541°N, 001.7297°W\n    test 484 height4: 0.0\n    test 485 height4: (3820333.9, -115367.0, 5097204.4, -6584.9)\n    test 486 height4: 53°19′14.2″N, 001°43′46.9″W\n    test 487 height4: 53°19′14.2″N, 001°43′46.9″W\n    test 488 haversineTo: 124801.098\n    test 489 haversineTo: 124801.098\n    test 490 hubenyTo: <bound method LatLonBase.flatLocalTo of LatLon(53°19′14.16″N, 001°43′46.92″W)>\n    test 491 hubenyTo: <bound method LatLonBase.flatLocalTo of LatLon(53°11′19.32″N, 000°08′00.24″E)>\n    test 492 thomasTo: 125206.188\n    test 493 thomasTo: 125206.188\n    test 494 vincentysTo: 124801.098\n    test 495 vincentysTo: 124801.098\n    test 496 isclockwise: False\n    test 497 isclockwise*: False\n    test 498 isclockwise: True\n    test 499 isclockwise*: True\n    test 500 isclockwise: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 501 isclockwise*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 502 isclockwise: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 503 isclockwise*: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 504 isconvex: False\n    test 505 isconvex*: False\n    test 506 isconvex: True\n    test 507 isconvex*: True\n    test 508 isconvex: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 509 isconvex*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 510 isenclosedBy1: True\n    test 511 isenclosedBy1*: True\n    test 512 isenclosedBy2: False\n    test 513 isenclosedBy2*: False\n    test 514 isenclosedBy3: False\n    test 515 isenclosedBy3*: False\n    test 516 isenclosedBy4: False\n    test 517 isenclosedBy4*: False\n    test 518 isenclosedBy5: False\n    test 519 isenclosedBy5*: False\n    test 520 isenclosedBy6: True\n    test 521 isenclosedBy6*: True\n    test 522 isenclosedBy7: True\n    test 523 isenclosedBy7*: True\n    test 524 isenclosedBy-CCW: True\n    test 525 isenclosedBy-CW : True\n    test 526 isenclosedBy-CCW: True\n    test 527 compassAngleTo: 100.017\n    test 528 compassAngleTo: 105.599\n    test 529 compassAngleTo: 280.017\n    test 530 compassAngleTo: 285.599\n    test 531 equirectangularTo: 592.185\n    test 532 distanceTo: 591.831\n    test 533 compassAngleTo: 0.0\n    test 534 compassAngleTo: 45.0\n    test 535 compassAngleTo: 90.0\n    test 536 compassAngleTo: 180.0\n    test 537 compassAngleTo: 225.0\n    test 538 compassAngleTo: 315.0\n    test 539 compassAngleTo: 270.0\n    test 540 compassAngleTo: 359.4\n    test 541 latlon2: (53.0, 1.0)\n    test 542 philam2: (0.93, 0.02)\n    test 543 compassAngleTo: 31\n    test 544 compassAngleTo: 45\n\n    test 545 boundsOf: <class 'pygeodesy.namedTuples.Bounds2Tuple'>\n    test 546 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 547 latlon2: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 548 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 549 isequalTo: <class 'bool'>\n    test 550 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 551 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 552 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 553 xyz3: <class 'tuple'>\n    test 554 xyzh: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n./pygeodesy/ellipsoidalBase.py:443: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  _ = self.datum.ellipsoid.geodesic\n./pygeodesy/azimuthal.py:636: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return self.datum.ellipsoid.geodesic\n./test/testLatLon.py:627: DeprecationWarning: function L{areaOf<pygeodesy.ellipsoidalVincenty.areaOf>} has been DEPRECATED, use function L{ellipsoidalExact.areaOf} or L{ellipsoidalKarney.areaOf}.\n  r = a(reversed(b))\n./pygeodesy/ellipsoidalKarney.py:139: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return fabs(_polygon(datum.ellipsoid.geodesic, points, True, False, wrap, polar))\n./test/testLatLon.py:628: DeprecationWarning: function L{areaOf<pygeodesy.ellipsoidalVincenty.areaOf>} has been DEPRECATED, use function L{ellipsoidalExact.areaOf} or L{ellipsoidalKarney.areaOf}.\n  f = a(b)  # ccw\n./pygeodesy/ellipsoidalKarney.py:94: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return self.datum.ellipsoid.geodesic\n./test/testLatLon.py:276: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.ellipsoidalKarney.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', p.cosineAndoyerLambertTo(q), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:277: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.ellipsoidalKarney.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', q.cosineAndoyerLambertTo(p), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:279: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.ellipsoidalKarney.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', p.cosineForsytheAndoyerLambertTo(q), '124801.098' if Sph else '125205.965', fmt='%.3f')\n./test/testLatLon.py:280: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.ellipsoidalKarney.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', q.cosineForsytheAndoyerLambertTo(p), '124801.098' if Sph else '125205.965', fmt='%.3f')\n    test 555 compassAngleTo: <class 'float'>\n    test 556 cosineLawTo: <class 'float'>\n    test 557 euclideanTo: <class 'float'>\n    test 558 flatLocalTo: <class 'float'>\n    test 559 flatPolarTo: <class 'float'>\n    test 560 haversineTo: <class 'float'>\n    test 561 hubenyTo: <class 'float'>\n    test 562 vincentysTo: <class 'float'>\n    test 563 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 564 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 565 toLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 566 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 567 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 568 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 569 toVector: (3934960.466675, 0.0, 5002803.345483)\n    test 570 toVector3d: (0.61823, 0.0, 0.786)\n    test 571 trilaterate5 (pygeodesy.ellipsoidalNvector) .min: 223.305\n    test 572 trilaterate5 (pygeodesy.ellipsoidalNvector) .point: 42.67456065°N, 002.49539502°E\n    test 573 trilaterate5 (pygeodesy.ellipsoidalNvector) .min- is .maxPoint: True\n    test 574 trilaterate5 (pygeodesy.ellipsoidalNvector) .n: 1\n    test 575 trilaterate5 (pygeodesy.ellipsoidalNvector) .error: ellipsoidalNvector.LatLon.trilaterate5(area=True), MRO(nvectorBase.LatLonNvectorBase, ellipsoidalBase.LatLonEllipsoidalBase, latlonBase.LatLonBase, named._NamedBase, ecefLocals._EcefLocal, named._Named): not implemented\n\n    test 576 radii11: Radii11Tuple(rA=7705.84217, rB=1367.057272, rC=498.160185, cR=4897.488519, rIn=740.470746, riS=179.544791, roS=5964.029657, a=1865.217457, b=8204.002354, c=9072.899442, s=9571.059626)\n    test 577 circum4 (pygeodesy.ellipsoidalNvector) .radius: 3184196.839  FAILED, KNOWN, expected 3184256.748\n    test 578 circum4 (pygeodesy.ellipsoidalNvector) .center: 42.674776°N, 002.495488°E, -3184194.95m  FAILED, KNOWN, expected 43.054367°N, 002.942573°E, -3183993.92m\n    test 579 circum4 (pygeodesy.ellipsoidalNvector) .rank: 3\n    test 580 circum4 (pygeodesy.ellipsoidalNvector) .residuals: ()\n    test 581 circum4 (pygeodesy.ellipsoidalNvector) .d1: 4886.122  FAILED, KNOWN, expected 57818.033\n    test 582 circum4 (pygeodesy.ellipsoidalNvector) .d2: 4904.641  FAILED, KNOWN, expected 57834.176\n    test 583 circum4 (pygeodesy.ellipsoidalNvector) .d3: 4909.920  FAILED, KNOWN, expected 57830.992\n    test 584 circum4 (pygeodesy.ellipsoidalNvector) .datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 585 circum4 (pygeodesy.ellipsoidalNvector) .Ecef: <class 'pygeodesy.ecef.EcefVeness'>\n    test 586 radii11: Radii11Tuple(rA=327537.482637, rB=776914.262482, rC=784245.052526, cR=780602.180901, rIn=325058.721103, riS=84975.664195, roS=INF, a=1561159.315008, b=1111782.535163, c=1104451.745119, s=1888696.797645)\n    test 587 circin6 (pygeodesy.ellipsoidalNvector) .rB+rC: 1561159.315\n    test 588 circin6 (pygeodesy.ellipsoidalNvector) .rC+pA: 1111782.535\n    test 589 circin6 (pygeodesy.ellipsoidalNvector) .rA+rB: 1104451.745\n    test 590 circin6 (pygeodesy.ellipsoidalNvector) .radius: 325058.721\n    test 591 circin6 (pygeodesy.ellipsoidalNvector) .center: 02.948531°N, 002.932537°E, -40041.19m\n    test 592 circin6 (pygeodesy.ellipsoidalNvector) .deltas: (0.0, 0.0, 0.417795)  FAILED, KNOWN, expected (0.0, 0.0, 0.090491)\n    test 593 circin6 (pygeodesy.ellipsoidalNvector) .cA: 05.04314°N, 005.014578°E, -48104.09m\n    test 594 circin6 (pygeodesy.ellipsoidalNvector) .cB: 00.0°N, 002.941713°E, -20168.62m\n    test 595 circin6 (pygeodesy.ellipsoidalNvector) .cC: 02.961566°N, 000.0°E, -20113.46m\n    test 596 circin6 (pygeodesy.ellipsoidalNvector) .dA: 327992.318  FAILED, KNOWN, expected 327263.596\n    test 597 circin6 (pygeodesy.ellipsoidalNvector) .dB: 327863.711  FAILED, KNOWN, expected 326036.153\n    test 598 circin6 (pygeodesy.ellipsoidalNvector) .dC: 325653.216  FAILED, KNOWN, expected 326020.432\n\n    testLatLon(pygeodesy.ellipsoidalVincenty, 25.05.26)\n    test 599 isEllipsoidal: True\n    test 600 isSpherical: False\n    test 601 lat/lonDMS: 52.20472°N, 000.14056°E\n    test 602 lat/lonDMS F_DM: 52°12.283′N, 000°08.434′E\n    test 603 lat/lonDMS F_DM: 52°12.2832′N, 000°08.4336′E\n    test 604 lat/lonDMS F_DMS: 52°12′17″N, 000°08′26″E\n    test 605 lat/lonDMS F_DMS: 52°12′17.0″N, 000°08′26.0″E\n    test 606 lat/lonDMS F_RAD: 0.911144N, 0.002453E\n    test 607 isequalTo: True\n    test 608 isequalTo: True\n    test 609 latlon2: 52.20472, 0.14056\n    test 610 latlon2: 52.2047, 0.1406\n    test 611 latlon2: 52.205, 0.141\n    test 612 latlon2: 52.2, 0.14\n    test 613 latlon2: 52.2, 0.1\n    test 614 latlon2: 52.0, 0.0\n    test 615 chordTo: 12029263.15\n    test 616 chordTo: 12029049.69\n    test 617 initialBearingTo: 156.1106\n    test 618 initialBearingTo: 65.9335\n    test 619 initialBearingTo: 0.0\n    test 620 initialBearingTo: 180.0\n    test 621 finalBearingTo: 157.8345\n    test 622 finalBearingTo: 93.9034\n    test 623 bearingTo2: 156.1106, 157.8345\n    test 624 ispolar: True\n    test 625 copy: True\n    test 626 __eq__: True\n    test 627 __ne__: False\n    test 628 equirectangularTo: 404329.56\n    test 629 distanceTo: 404607.805988\n    test 630 distanceTo: 404607.805988\n    test 631 distanceTo: 3981601\n    test 632 antipodal: False\n    test 633 distanceTo dateline: 19959679.267\n    test 634 distanceTo unrolled: 19959679.267\n    test 635 antipodal: False\n    test 636 distanceTo dateline: 9513998\n    test 637 distanceTo unrolled: 9513998\n    test 638 distanceTo: 18012714.66\n    test 639 distanceTo: ambiguous: LatLon(00°00′00.0″N, 000°00′00.0″E) antipodal to LatLon(00°00′00.0″N, 180°00′00.0″E)  FAILED, KNOWN, expected ambiguous, antipodal ...\n    test 640 distanceTo3 dateline: 19959679.2674, 161.0677, 18.8252\n    test 641 distanceTo3 dateline: 9513997.9901, 42.9164, 138.8903\n    test 642 distanceTo3 dateline: 19959679.2674, 161.0677, 18.8252\n    test 643 distanceTo3 dateline: 9513997.9901, 42.9164, 138.8903\n    test 644 intermediateTo: 51.372275°N, 000.707253°E\n    test 645 intermediateTo: True\n    test 646 intermediateTo: 404607.806\n    test 647 intermediateTo+5: 35.139582°N, 008.994368°E\n    test 648 intermediateTo+5: 5.000\n    test 649 intermediateTo-4: 64.894124°N, 013.705689°W\n    test 650 intermediateTo-4: 4.000\n    test 651 intermediateTo-h: 125.000\n    test 652 midpointTo: 50.536583°N, 001.274507°E\n    test 653 destination: 51.513526°N, 000.098038°W\n    test 654 destination: 51°30′49″N, 000°05′53″W\n    test 655 destination: 33°57′N, 118°24′W\n    test 656 destination: 33.950367°N, 118.399012°W\n    test 657 destination: 0.592546N, 2.066453W\n    test 658 destination: 32.11195529°N, 064.56074722°E  FAILED, KNOWN, expected 32.11195529°N, 063.95925278°E\n    test 659 neareston6: (LatLon(45°00′00.0″N, 001°00′00.0″E), 4755443.4294, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E))\n    test 660 neareston6: (LatLon(45°30′03.94″N, 002°00′00.0″E), 39078.729285, 1.501072, 2, LatLon(45°00′00.0″N, 002°00′00.0″E), LatLon(46°00′00.0″N, 002°00′00.0″E))\n    test 661 chordTo: 125203.963\n    test 662 cosineAndoyerLambertTo: 125205.962\n    test 663 cosineAndoyerLambertTo: 125205.962\n    test 664 cosineForsyheAndoyerLambertTo: 125205.965\n    test 665 cosineForsyheAndoyerLambertTo: 125205.965\n    test 666 cosineLawTo: 124801.098\n    test 667 cosineLawTo: 124801.098\n    test 668 equirectangularTo: 124804.754\n    test 669 equirectangularTo: 124804.754\n    test 670 euclideanTo: 130015.089\n    test 671 euclideanTo: 130015.089\n    test 672 flatLocalTo: 125209.633\n    test 673 flatLocalTo: 125209.633\n    test 674 flatPolarTo: 133663.257\n    test 675 flatPolarTo: 133663.257\n    test 676 hartzell: 53.3206°N, 001.7297°W\n    test 677 hartzell: 53.349541°N, 001.7297°W\n    test 678 height4: 0.0\n    test 679 height4: (3820333.9, -115367.0, 5097204.4, -6584.9)\n    test 680 height4: 53°19′14.2″N, 001°43′46.9″W\n    test 681 height4: 53°19′14.2″N, 001°43′46.9″W\n    test 682 haversineTo: 124801.098\n    test 683 haversineTo: 124801.098\n    test 684 hubenyTo: <bound method LatLonBase.flatLocalTo of LatLon(53°19′14.16″N, 001°43′46.92″W)>\n    test 685 hubenyTo: <bound method LatLonBase.flatLocalTo of LatLon(53°11′19.32″N, 000°08′00.24″E)>\n    test 686 thomasTo: 125206.188\n    test 687 thomasTo: 125206.188\n    test 688 vincentysTo: 124801.098\n    test 689 vincentysTo: 124801.098\n    test 690 isclockwise: False\n    test 691 isclockwise*: False\n    test 692 isclockwise: True\n    test 693 isclockwise*: True\n    test 694 isclockwise: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 695 isclockwise*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 696 isclockwise: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 697 isclockwise*: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 698 isconvex: False\n    test 699 isconvex*: False\n    test 700 isconvex: True\n    test 701 isconvex*: True\n    test 702 isconvex: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 703 isconvex*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 704 isenclosedBy1: True\n    test 705 isenclosedBy1*: True\n    test 706 isenclosedBy2: False\n    test 707 isenclosedBy2*: False\n    test 708 isenclosedBy3: False\n    test 709 isenclosedBy3*: False\n    test 710 isenclosedBy4: False\n    test 711 isenclosedBy4*: False\n    test 712 isenclosedBy5: False\n    test 713 isenclosedBy5*: False\n    test 714 isenclosedBy6: True\n    test 715 isenclosedBy6*: True\n    test 716 isenclosedBy7: True\n    test 717 isenclosedBy7*: True\n    test 718 isenclosedBy-CCW: True\n    test 719 isenclosedBy-CW : True\n    test 720 isenclosedBy-CCW: True\n    test 721 initialBearingTo: 102.392291\n    test 722 compassAngleTo: 100.017\n    test 723 compassAngleTo: 105.599\n    test 724 initialBearingTo: 288.676039\n    test 725 compassAngleTo: 280.017\n    test 726 compassAngleTo: 285.599\n    test 727 equirectangularTo: 592.185\n    test 728 distanceTo: 593.571\n    test 729 bearingTo: 0.0\n    test 730 compassAngleTo: 0.0\n    test 731 bearingTo: 45.2  FAILED, KNOWN, expected 45.0\n    test 732 compassAngleTo: 45.0\n    test 733 bearingTo: 90.0\n    test 734 compassAngleTo: 90.0\n    test 735 bearingTo: 180.0\n    test 736 compassAngleTo: 180.0\n    test 737 bearingTo: 225.2  FAILED, KNOWN, expected 225.0\n    test 738 compassAngleTo: 225.0\n    test 739 bearingTo: 314.8  FAILED, KNOWN, expected 315.0\n    test 740 compassAngleTo: 315.0\n    test 741 bearingTo: 270.0\n    test 742 compassAngleTo: 270.0\n    test 743 bearingTo: 360.0  FAILED, KNOWN, expected 359.4\n    test 744 compassAngleTo: 359.4\n    test 745 latlon2: (53.0, 1.0)\n    test 746 philam2: (0.93, 0.02)\n    test 747 bearingTo: 31\n    test 748 compassAngleTo: 31\n    test 749 compassAngleTo: 45\n\n    test 750 boundsOf: <class 'pygeodesy.namedTuples.Bounds2Tuple'>\n    test 751 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 752 latlon2: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 753 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 754 isequalTo: <class 'bool'>\n    test 755 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 756 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 757 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 758 xyz3: <class 'tuple'>\n    test 759 xyzh: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 760 compassAngleTo: <class 'float'>\n    test 761 cosineLawTo: <class 'float'>\n    test 762 euclideanTo: <class 'float'>\n    test 763 flatLocalTo: <class 'float'>\n    test 764 flatPolarTo: <class 'float'>\n    test 765 haversineTo: <class 'float'>\n    test 766 hubenyTo: <class 'float'>\n    test 767 vincentysTo: <class 'float'>\n    test 768 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 769 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 770 toLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 771 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 772 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 773 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 774 toNvector: (0.615661, 0.0, 0.788011, 0)\n    test 775 toVector: (3934960.466675, 0.0, 5002803.345483)\n    test 776 toVector3d: (0.61823, 0.0, 0.786)\n\n    test 777 trilaterate5 (pygeodesy.ellipsoidalVincenty) .min: 305.091\n    test 778 trilaterate5 (pygeodesy.ellipsoidalVincenty) .point: 42.66933643°N, 002.48620262°E\n    test 779 trilaterate5 (pygeodesy.ellipsoidalVincenty) .max: 1592.545\n    test 780 trilaterate5 (pygeodesy.ellipsoidalVincenty) .point: 42.65141232°N, 002.46816989°E\n    test 781 trilaterate5 (pygeodesy.ellipsoidalVincenty) .n: 3\n    test 782 trilaterate5 (pygeodesy.ellipsoidalVincenty) .min: 127.229\n    test 783 trilaterate5 (pygeodesy.ellipsoidalVincenty) .max: 152.612\n    test 784 trilaterate5 (pygeodesy.ellipsoidalVincenty) .point: 42.67815375°N, 002.49950041°E\n    test 785 trilaterate5 (pygeodesy.ellipsoidalVincenty) .n: 2\n    test 786 trilaterate5 (pygeodesy.ellipsoidalVincenty) .min: 2400.293\n    test 787 trilaterate5 (pygeodesy.ellipsoidalVincenty) .max: 2400.293\n    test 788 trilaterate5 (pygeodesy.ellipsoidalVincenty) .point: 42.66128984°N, 002.47973818°E\n    test 789 trilaterate5 (pygeodesy.ellipsoidalVincenty) .min- is .maxPoint: True\n    test 790 trilaterate5 (pygeodesy.ellipsoidalVincenty) .n: 1\n    test 791 trilaterate5 (pygeodesy.ellipsoidalVincenty) .min: 1343.743\n    test 792 trilaterate5 (pygeodesy.ellipsoidalVincenty) .point: 42.69131964°N, 002.50112167°E\n    test 793 trilaterate5 (pygeodesy.ellipsoidalVincenty) .max: 1445.554\n    test 794 trilaterate5 (pygeodesy.ellipsoidalVincenty) .point: 42.67815375°N, 002.49950041°E\n    test 795 trilaterate5 (pygeodesy.ellipsoidalVincenty) .n: 2\n    test 796 radii11: Radii11Tuple(rA=7244.792747, rB=1828.106695, rC=2.25502, cR=57792.067128, rIn=57.366968, riS=2.087668, roS=2.443334, a=1830.361715, b=7247.047766, c=9072.899442, s=9075.154461)\n    test 797 circum3 (pygeodesy.ellipsoidalVincenty) .radius: 57792.067\n    test 798 circum3 (pygeodesy.ellipsoidalVincenty) .center: 43.053532°N, 002.943255°E, -261.66m\n    test 799 circum3 (pygeodesy.ellipsoidalVincenty) .deltas: (-0.0, 0.0, 13.509)  FAILED, KNOWN, expected (0.0, 0.0, 11.383)\n    test 800 circum3 (pygeodesy.ellipsoidalVincenty) .d1: 57792.858\n    test 801 circum3 (pygeodesy.ellipsoidalVincenty) .d2: 57792.859\n    test 802 circum3 (pygeodesy.ellipsoidalVincenty) .d3: 57792.859\n    test 803 circum3 (pygeodesy.ellipsoidalVincenty) .datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 804 circum3 (pygeodesy.ellipsoidalVincenty) .Ecef: <class 'pygeodesy.ecef.EcefVeness'>\n\n    test 805 radii11: Radii11Tuple(rA=7244.792747, rB=1828.106695, rC=2.25502, cR=57792.067128, rIn=57.366968, riS=2.087668, roS=2.443334, a=1830.361715, b=7247.047766, c=9072.899442, s=9075.154461)\n    test 806 circum4 (pygeodesy.ellipsoidalVincenty) .radius: 3184256.748\n    test 807 circum4 (pygeodesy.ellipsoidalVincenty) .center: 43.054367°N, 002.942573°E, -3183993.92m\n    test 808 circum4 (pygeodesy.ellipsoidalVincenty) .rank: 3\n    test 809 circum4 (pygeodesy.ellipsoidalVincenty) .residuals: ()\n    test 810 circum4 (pygeodesy.ellipsoidalVincenty) .d1: 57818.033\n    test 811 circum4 (pygeodesy.ellipsoidalVincenty) .d2: 57834.176\n    test 812 circum4 (pygeodesy.ellipsoidalVincenty) .d3: 57830.992\n    test 813 circum4 (pygeodesy.ellipsoidalVincenty) .datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 814 circum4 (pygeodesy.ellipsoidalVincenty) .Ecef: <class 'pygeodesy.ecef.EcefVeness'>\n    test 815 radii11: Radii11Tuple(rA=327537.482637, rB=776914.262482, rC=784245.052526, cR=780602.180901, rIn=325058.721103, riS=84975.664195, roS=INF, a=1561159.315008, b=1111782.535163, c=1104451.745119, s=1888696.797645)\n./test/testLatLon.py:276: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.ellipsoidalExact.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', p.cosineAndoyerLambertTo(q), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:277: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.ellipsoidalExact.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', q.cosineAndoyerLambertTo(p), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:279: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.ellipsoidalExact.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', p.cosineForsytheAndoyerLambertTo(q), '124801.098' if Sph else '125205.965', fmt='%.3f')\n./test/testLatLon.py:280: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.ellipsoidalExact.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', q.cosineForsytheAndoyerLambertTo(p), '124801.098' if Sph else '125205.965', fmt='%.3f')\n    test 816 circin6 (pygeodesy.ellipsoidalVincenty) .rB+rC: 1561159.315\n    test 817 circin6 (pygeodesy.ellipsoidalVincenty) .rC+pA: 1111782.535\n    test 818 circin6 (pygeodesy.ellipsoidalVincenty) .rA+rB: 1104451.745\n    test 819 circin6 (pygeodesy.ellipsoidalVincenty) .radius: 325058.721\n    test 820 circin6 (pygeodesy.ellipsoidalVincenty) .center: 02.948531°N, 002.932537°E, -40041.19m\n    test 821 circin6 (pygeodesy.ellipsoidalVincenty) .deltas: (0.0, 0.0, 0.417795)  FAILED, KNOWN, expected (0.0, 0.0, 0.090491)\n    test 822 circin6 (pygeodesy.ellipsoidalVincenty) .cA: 05.04314°N, 005.014578°E, -48104.09m\n    test 823 circin6 (pygeodesy.ellipsoidalVincenty) .cB: 00.0°N, 002.941713°E, -20168.62m\n    test 824 circin6 (pygeodesy.ellipsoidalVincenty) .cC: 02.961566°N, 000.0°E, -20113.46m\n    test 825 circin6 (pygeodesy.ellipsoidalVincenty) .dA: 327263.596\n    test 826 circin6 (pygeodesy.ellipsoidalVincenty) .dB: 326036.153\n    test 827 circin6 (pygeodesy.ellipsoidalVincenty) .dC: 326020.432\n\n    test 828 area cw/ccw: 1.0\n\n    testLatLon(pygeodesy.ellipsoidalKarney, 25.05.27)\n    test 829 isEllipsoidal: True\n    test 830 isSpherical: False\n    test 831 lat/lonDMS: 52.20472°N, 000.14056°E\n    test 832 lat/lonDMS F_DM: 52°12.283′N, 000°08.434′E\n    test 833 lat/lonDMS F_DM: 52°12.2832′N, 000°08.4336′E\n    test 834 lat/lonDMS F_DMS: 52°12′17″N, 000°08′26″E\n    test 835 lat/lonDMS F_DMS: 52°12′17.0″N, 000°08′26.0″E\n    test 836 lat/lonDMS F_RAD: 0.911144N, 0.002453E\n    test 837 isequalTo: True\n    test 838 isequalTo: True\n    test 839 latlon2: 52.20472, 0.14056\n    test 840 latlon2: 52.2047, 0.1406\n    test 841 latlon2: 52.205, 0.141\n    test 842 latlon2: 52.2, 0.14\n    test 843 latlon2: 52.2, 0.1\n    test 844 latlon2: 52.0, 0.0\n    test 845 chordTo: 12029263.15\n    test 846 chordTo: 12029049.69\n    test 847 initialBearingTo: 156.1106\n    test 848 initialBearingTo: 65.9335\n    test 849 initialBearingTo: 0.0\n    test 850 initialBearingTo: 180.0\n    test 851 finalBearingTo: 157.8345\n    test 852 finalBearingTo: 93.9034\n    test 853 bearingTo2: 156.1106, 157.8345\n    test 854 ispolar: True\n    test 855 copy: True\n    test 856 __eq__: True\n    test 857 __ne__: False\n    test 858 equirectangularTo: 404329.56\n    test 859 distanceTo: 404607.805988\n    test 860 distanceTo: 404607.805988\n    test 861 distanceTo: 3981601\n    test 862 antipodal: False\n    test 863 distanceTo dateline: 19959679.267\n    test 864 distanceTo unrolled: 19959679.267\n    test 865 antipodal: False\n    test 866 distanceTo dateline: 9513998\n    test 867 distanceTo unrolled: 9513998\n    test 868 distanceTo: 18012714.66\n    test 869 distanceTo: 20003931.46\n    test 870 distanceTo3 dateline: 19959679.2674, 161.0677, 18.8252\n    test 871 distanceTo3 dateline: 9513997.9901, 42.9164, 138.8903\n    test 872 distanceTo3 dateline: 19959679.2674, 161.0677, 18.8252\n    test 873 distanceTo3 dateline: 9513997.9901, 42.9164, 138.8903\n    test 874 intermediateTo: 51.372275°N, 000.707253°E\n    test 875 intermediateTo: True\n    test 876 intermediateTo: 404607.806\n    test 877 intermediateTo+5: 35.139582°N, 008.994368°E\n    test 878 intermediateTo+5: 5.000\n    test 879 intermediateTo-4: 64.894124°N, 013.705689°W\n    test 880 intermediateTo-4: 4.000\n    test 881 intermediateTo-h: 125.000\n    test 882 midpointTo: 50.536583°N, 001.274507°E\n    test 883 destination: 51.513526°N, 000.098038°W\n    test 884 destination: 51°30′49″N, 000°05′53″W\n    test 885 destination: 33°57′N, 118°24′W\n    test 886 destination: 33.950367°N, 118.399012°W\n    test 887 destination: 0.592546N, 2.066453W\n    test 888 destination: 32.11195529°N, 064.56074722°E  FAILED, KNOWN, expected 32.11195529°N, 063.95925278°E\n    test 889 neareston6: (LatLon(45°00′00.0″N, 001°00′00.0″E), 4755443.4294, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E))\n    test 890 neareston6: (LatLon(45°30′03.94″N, 002°00′00.0″E), 39078.729285, 1.501072, 2, LatLon(45°00′00.0″N, 002°00′00.0″E), LatLon(46°00′00.0″N, 002°00′00.0″E))\n    test 891 chordTo: 125203.963\n    test 892 cosineAndoyerLambertTo: 125205.962\n    test 893 cosineAndoyerLambertTo: 125205.962\n    test 894 cosineForsyheAndoyerLambertTo: 125205.965\n    test 895 cosineForsyheAndoyerLambertTo: 125205.965\n    test 896 cosineLawTo: 124801.098\n    test 897 cosineLawTo: 124801.098\n    test 898 equirectangularTo: 124804.754\n    test 899 equirectangularTo: 124804.754\n    test 900 euclideanTo: 130015.089\n    test 901 euclideanTo: 130015.089\n    test 902 flatLocalTo: 125209.633\n    test 903 flatLocalTo: 125209.633\n    test 904 flatPolarTo: 133663.257\n    test 905 flatPolarTo: 133663.257\n    test 906 hartzell: 53.3206°N, 001.7297°W\n    test 907 hartzell: 53.349541°N, 001.7297°W\n    test 908 height4: 0.0\n    test 909 height4: (3820333.9, -115367.0, 5097204.4, -6584.9)\n    test 910 height4: 53°19′14.2″N, 001°43′46.9″W\n    test 911 height4: 53°19′14.2″N, 001°43′46.9″W\n    test 912 haversineTo: 124801.098\n    test 913 haversineTo: 124801.098\n    test 914 hubenyTo: <bound method LatLonBase.flatLocalTo of LatLon(53°19′14.16″N, 001°43′46.92″W)>\n    test 915 hubenyTo: <bound method LatLonBase.flatLocalTo of LatLon(53°11′19.32″N, 000°08′00.24″E)>\n    test 916 thomasTo: 125206.188\n    test 917 thomasTo: 125206.188\n    test 918 vincentysTo: 124801.098\n    test 919 vincentysTo: 124801.098\n    test 920 isclockwise: False\n    test 921 isclockwise*: False\n    test 922 isclockwise: True\n    test 923 isclockwise*: True\n    test 924 isclockwise: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 925 isclockwise*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 926 isclockwise: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 927 isclockwise*: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 928 isconvex: False\n    test 929 isconvex*: False\n    test 930 isconvex: True\n    test 931 isconvex*: True\n    test 932 isconvex: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 933 isconvex*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 934 isenclosedBy1: True\n    test 935 isenclosedBy1*: True\n    test 936 isenclosedBy2: False\n    test 937 isenclosedBy2*: False\n    test 938 isenclosedBy3: False\n    test 939 isenclosedBy3*: False\n    test 940 isenclosedBy4: False\n    test 941 isenclosedBy4*: False\n    test 942 isenclosedBy5: False\n    test 943 isenclosedBy5*: False\n    test 944 isenclosedBy6: True\n    test 945 isenclosedBy6*: True\n    test 946 isenclosedBy7: True\n    test 947 isenclosedBy7*: True\n    test 948 isenclosedBy-CCW: True\n    test 949 isenclosedBy-CW : True\n    test 950 isenclosedBy-CCW: True\n    test 951 initialBearingTo: 102.392291\n    test 952 compassAngleTo: 100.017\n    test 953 compassAngleTo: 105.599\n    test 954 initialBearingTo: 288.676039\n    test 955 compassAngleTo: 280.017\n    test 956 compassAngleTo: 285.599\n    test 957 equirectangularTo: 592.185\n    test 958 distanceTo: 593.571\n    test 959 bearingTo: 0.0\n    test 960 compassAngleTo: 0.0\n    test 961 bearingTo: 45.2  FAILED, KNOWN, expected 45.0\n    test 962 compassAngleTo: 45.0\n    test 963 bearingTo: 90.0\n    test 964 compassAngleTo: 90.0\n    test 965 bearingTo: 180.0\n    test 966 compassAngleTo: 180.0\n    test 967 bearingTo: 225.2  FAILED, KNOWN, expected 225.0\n    test 968 compassAngleTo: 225.0\n    test 969 bearingTo: 314.8  FAILED, KNOWN, expected 315.0\n    test 970 compassAngleTo: 315.0\n    test 971 bearingTo: 270.0\n    test 972 compassAngleTo: 270.0\n    test 973 bearingTo: 0.0  FAILED, KNOWN, expected 359.4\n    test 974 compassAngleTo: 359.4\n    test 975 latlon2: (53.0, 1.0)\n    test 976 philam2: (0.93, 0.02)\n    test 977 bearingTo: 31\n    test 978 compassAngleTo: 31\n    test 979 compassAngleTo: 45\n\n    test 980 boundsOf: <class 'pygeodesy.namedTuples.Bounds2Tuple'>\n    test 981 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 982 latlon2: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 983 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 984 isequalTo: <class 'bool'>\n    test 985 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 986 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 987 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 988 xyz3: <class 'tuple'>\n    test 989 xyzh: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 990 compassAngleTo: <class 'float'>\n    test 991 cosineLawTo: <class 'float'>\n    test 992 euclideanTo: <class 'float'>\n    test 993 flatLocalTo: <class 'float'>\n    test 994 flatPolarTo: <class 'float'>\n    test 995 haversineTo: <class 'float'>\n    test 996 hubenyTo: <class 'float'>\n    test 997 vincentysTo: <class 'float'>\n    test 998 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 999 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 1000 toLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 1001 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 1002 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 1003 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 1004 toNvector: (0.615661, 0.0, 0.788011, 0)\n    test 1005 toVector: (3934960.466675, 0.0, 5002803.345483)\n    test 1006 toVector3d: (0.61823, 0.0, 0.786)\n\n    test 1007 trilaterate5 (pygeodesy.ellipsoidalKarney) .min: 305.091\n    test 1008 trilaterate5 (pygeodesy.ellipsoidalKarney) .point: 42.66933643°N, 002.48620262°E\n    test 1009 trilaterate5 (pygeodesy.ellipsoidalKarney) .max: 1592.545\n    test 1010 trilaterate5 (pygeodesy.ellipsoidalKarney) .point: 42.65141232°N, 002.46816989°E\n    test 1011 trilaterate5 (pygeodesy.ellipsoidalKarney) .n: 3\n    test 1012 trilaterate5 (pygeodesy.ellipsoidalKarney) .min: 127.229\n    test 1013 trilaterate5 (pygeodesy.ellipsoidalKarney) .max: 152.612\n    test 1014 trilaterate5 (pygeodesy.ellipsoidalKarney) .point: 42.67815375°N, 002.49950041°E\n    test 1015 trilaterate5 (pygeodesy.ellipsoidalKarney) .n: 2\n    test 1016 trilaterate5 (pygeodesy.ellipsoidalKarney) .min: 2400.293\n    test 1017 trilaterate5 (pygeodesy.ellipsoidalKarney) .max: 2400.293\n    test 1018 trilaterate5 (pygeodesy.ellipsoidalKarney) .point: 42.66128984°N, 002.47973818°E\n    test 1019 trilaterate5 (pygeodesy.ellipsoidalKarney) .min- is .maxPoint: True\n    test 1020 trilaterate5 (pygeodesy.ellipsoidalKarney) .n: 1\n    test 1021 trilaterate5 (pygeodesy.ellipsoidalKarney) .min: 1343.743\n    test 1022 trilaterate5 (pygeodesy.ellipsoidalKarney) .point: 42.69131964°N, 002.50112167°E\n    test 1023 trilaterate5 (pygeodesy.ellipsoidalKarney) .max: 1445.554\n    test 1024 trilaterate5 (pygeodesy.ellipsoidalKarney) .point: 42.67815375°N, 002.49950041°E\n    test 1025 trilaterate5 (pygeodesy.ellipsoidalKarney) .n: 2\n    test 1026 radii11: Radii11Tuple(rA=7244.792747, rB=1828.106695, rC=2.25502, cR=57792.067128, rIn=57.366968, riS=2.087668, roS=2.443334, a=1830.361715, b=7247.047766, c=9072.899442, s=9075.154461)\n    test 1027 circum3 (pygeodesy.ellipsoidalKarney) .radius: 57792.067\n    test 1028 circum3 (pygeodesy.ellipsoidalKarney) .center: 43.053532°N, 002.943255°E, -261.66m\n    test 1029 circum3 (pygeodesy.ellipsoidalKarney) .deltas: (-0.0, 0.0, 13.509)  FAILED, KNOWN, expected (0.0, 0.0, 11.383)\n    test 1030 circum3 (pygeodesy.ellipsoidalKarney) .d1: 57792.858\n    test 1031 circum3 (pygeodesy.ellipsoidalKarney) .d2: 57792.859\n    test 1032 circum3 (pygeodesy.ellipsoidalKarney) .d3: 57792.859\n    test 1033 circum3 (pygeodesy.ellipsoidalKarney) .datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 1034 circum3 (pygeodesy.ellipsoidalKarney) .Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n\n    test 1035 radii11: Radii11Tuple(rA=7244.792747, rB=1828.106695, rC=2.25502, cR=57792.067128, rIn=57.366968, riS=2.087668, roS=2.443334, a=1830.361715, b=7247.047766, c=9072.899442, s=9075.154461)\n    test 1036 circum4 (pygeodesy.ellipsoidalKarney) .radius: 3184256.748\n    test 1037 circum4 (pygeodesy.ellipsoidalKarney) .center: 43.054367°N, 002.942573°E, -3183993.92m\n    test 1038 circum4 (pygeodesy.ellipsoidalKarney) .rank: 3\n    test 1039 circum4 (pygeodesy.ellipsoidalKarney) .residuals: ()\n    test 1040 circum4 (pygeodesy.ellipsoidalKarney) .d1: 57818.033\n    test 1041 circum4 (pygeodesy.ellipsoidalKarney) .d2: 57834.176\n    test 1042 circum4 (pygeodesy.ellipsoidalKarney) .d3: 57830.992\n    test 1043 circum4 (pygeodesy.ellipsoidalKarney) .datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 1044 circum4 (pygeodesy.ellipsoidalKarney) .Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 1045 radii11: Radii11Tuple(rA=327537.482637, rB=776914.262482, rC=784245.052526, cR=780602.180901, rIn=325058.721103, riS=84975.664195, roS=INF, a=1561159.315008, b=1111782.535163, c=1104451.745119, s=1888696.797645)\n    test 1046 circin6 (pygeodesy.ellipsoidalKarney) .rB+rC: 1561159.315\n    test 1047 circin6 (pygeodesy.ellipsoidalKarney) .rC+pA: 1111782.535\n    test 1048 circin6 (pygeodesy.ellipsoidalKarney) .rA+rB: 1104451.745\n    test 1049 circin6 (pygeodesy.ellipsoidalKarney) .radius: 325058.721\n    test 1050 circin6 (pygeodesy.ellipsoidalKarney) .center: 02.948531°N, 002.932537°E, -40041.19m\n    test 1051 circin6 (pygeodesy.ellipsoidalKarney) .deltas: (0.0, 0.0, 0.417795)  FAILED, KNOWN, expected (0.0, 0.0, 0.090491)\n    test 1052 circin6 (pygeodesy.ellipsoidalKarney) .cA: 05.04314°N, 005.014578°E, -48104.09m\n    test 1053 circin6 (pygeodesy.ellipsoidalKarney) .cB: 00.0°N, 002.941713°E, -20168.62m\n    test 1054 circin6 (pygeodesy.ellipsoidalKarney) .cC: 02.961566°N, 000.0°E, -20113.46m\n    test 1055 circin6 (pygeodesy.ellipsoidalKarney) .dA: 327263.596\n    test 1056 circin6 (pygeodesy.ellipsoidalKarney) .dB: 326036.153\n    test 1057 circin6 (pygeodesy.ellipsoidalKarney) .dC: 326020.432\n\n    test 1058 area cw/ccw: 1.0\n\n    testLatLon(pygeodesy.ellipsoidalExact, 25.08.28)\n    test 1059 isEllipsoidal: True\n    test 1060 isSpherical: False\n    test 1061 lat/lonDMS: 52.20472°N, 000.14056°E\n    test 1062 lat/lonDMS F_DM: 52°12.283′N, 000°08.434′E\n    test 1063 lat/lonDMS F_DM: 52°12.2832′N, 000°08.4336′E\n    test 1064 lat/lonDMS F_DMS: 52°12′17″N, 000°08′26″E\n    test 1065 lat/lonDMS F_DMS: 52°12′17.0″N, 000°08′26.0″E\n    test 1066 lat/lonDMS F_RAD: 0.911144N, 0.002453E\n    test 1067 isequalTo: True\n    test 1068 isequalTo: True\n    test 1069 latlon2: 52.20472, 0.14056\n    test 1070 latlon2: 52.2047, 0.1406\n    test 1071 latlon2: 52.205, 0.141\n    test 1072 latlon2: 52.2, 0.14\n    test 1073 latlon2: 52.2, 0.1\n    test 1074 latlon2: 52.0, 0.0\n    test 1075 chordTo: 12029263.15\n    test 1076 chordTo: 12029049.69\n    test 1077 initialBearingTo: 156.1106\n    test 1078 initialBearingTo: 65.9335\n    test 1079 initialBearingTo: 0.0\n    test 1080 initialBearingTo: 180.0\n    test 1081 finalBearingTo: 157.8345\n    test 1082 finalBearingTo: 93.9034\n    test 1083 bearingTo2: 156.1106, 157.8345\n    test 1084 ispolar: True\n    test 1085 copy: True\n    test 1086 __eq__: True\n    test 1087 __ne__: False\n    test 1088 equirectangularTo: 404329.56\n    test 1089 distanceTo: 404607.805988\n    test 1090 distanceTo: 404607.805988\n    test 1091 distanceTo: 3981601\n    test 1092 antipodal: False\n    test 1093 distanceTo dateline: 19959679.267\n    test 1094 distanceTo unrolled: 19959679.267\n    test 1095 antipodal: False\n    test 1096 distanceTo dateline: 9513998\n    test 1097 distanceTo unrolled: 9513998\n    test 1098 distanceTo: 18012714.66\n    test 1099 distanceTo: 20003931.46\n    test 1100 distanceTo3 dateline: 19959679.2674, 161.0677, 18.8252\n    test 1101 distanceTo3 dateline: 9513997.9901, 42.9164, 138.8903\n    test 1102 distanceTo3 dateline: 19959679.2674, 161.0677, 18.8252\n    test 1103 distanceTo3 dateline: 9513997.9901, 42.9164, 138.8903\n    test 1104 intermediateTo: 51.372275°N, 000.707253°E\n    test 1105 intermediateTo: True\n    test 1106 intermediateTo: 404607.806\n    test 1107 intermediateTo+5: 35.139582°N, 008.994368°E\n    test 1108 intermediateTo+5: 5.000\n    test 1109 intermediateTo-4: 64.894124°N, 013.705689°W\n    test 1110 intermediateTo-4: 4.000\n    test 1111 intermediateTo-h: 125.000\n    test 1112 midpointTo: 50.536583°N, 001.274507°E\n    test 1113 destination: 51.513526°N, 000.098038°W\n    test 1114 destination: 51°30′49″N, 000°05′53″W\n    test 1115 destination: 33°57′N, 118°24′W\n    test 1116 destination: 33.950367°N, 118.399012°W\n    test 1117 destination: 0.592546N, 2.066453W\n    test 1118 destination: 32.11195529°N, 064.56074722°E  FAILED, KNOWN, expected 32.11195529°N, 063.95925278°E\n    test 1119 neareston6: (LatLon(45°00′00.0″N, 001°00′00.0″E), 4755443.4294, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E))\n    test 1120 neareston6: (LatLon(45°30′03.94″N, 002°00′00.0″E), 39078.729285, 1.501072, 2, LatLon(45°00′00.0″N, 002°00′00.0″E), LatLon(46°00′00.0″N, 002°00′00.0″E))\n    test 1121 chordTo: 125203.963\n    test 1122 cosineAndoyerLambertTo: 125205.962\n    test 1123 cosineAndoyerLambertTo: 125205.962\n    test 1124 cosineForsyheAndoyerLambertTo: 125205.965\n    test 1125 cosineForsyheAndoyerLambertTo: 125205.965\n    test 1126 cosineLawTo: 124801.098\n    test 1127 cosineLawTo: 124801.098\n    test 1128 equirectangularTo: 124804.754\n    test 1129 equirectangularTo: 124804.754\n    test 1130 euclideanTo: 130015.089\n    test 1131 euclideanTo: 130015.089\n    test 1132 flatLocalTo: 125209.633\n    test 1133 flatLocalTo: 125209.633\n    test 1134 flatPolarTo: 133663.257\n    test 1135 flatPolarTo: 133663.257\n    test 1136 hartzell: 53.3206°N, 001.7297°W\n    test 1137 hartzell: 53.349541°N, 001.7297°W\n    test 1138 height4: 0.0\n    test 1139 height4: (3820333.9, -115367.0, 5097204.4, -6584.9)\n    test 1140 height4: 53°19′14.2″N, 001°43′46.9″W\n    test 1141 height4: 53°19′14.2″N, 001°43′46.9″W\n    test 1142 haversineTo: 124801.098\n    test 1143 haversineTo: 124801.098\n    test 1144 hubenyTo: <bound method LatLonBase.flatLocalTo of LatLon(53°19′14.16″N, 001°43′46.92″W)>\n    test 1145 hubenyTo: <bound method LatLonBase.flatLocalTo of LatLon(53°11′19.32″N, 000°08′00.24″E)>\n    test 1146 thomasTo: 125206.188\n    test 1147 thomasTo: 125206.188\n    test 1148 vincentysTo: 124801.098\n    test 1149 vincentysTo: 124801.098\n    test 1150 isclockwise: False\n    test 1151 isclockwise*: False\n    test 1152 isclockwise: True\n    test 1153 isclockwise*: True\n    test 1154 isclockwise: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 1155 isclockwise*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 1156 isclockwise: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 1157 isclockwise*: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 1158 isconvex: False\n    test 1159 isconvex*: False\n    test 1160 isconvex: True\n    test 1161 isconvex*: True\n    test 1162 isconvex: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 1163 isconvex*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 1164 isenclosedBy1: True\n    test 1165 isenclosedBy1*: True\n    test 1166 isenclosedBy2: False\n    test 1167 isenclosedBy2*: False\n    test 1168 isenclosedBy3: False\n    test 1169 isenclosedBy3*: False\n    test 1170 isenclosedBy4: False\n    test 1171 isenclosedBy4*: False\n    test 1172 isenclosedBy5: False\n    test 1173 isenclosedBy5*: False\n    test 1174 isenclosedBy6: True\n    test 1175 isenclosedBy6*: True\n    test 1176 isenclosedBy7: True\n    test 1177 isenclosedBy7*: True\n    test 1178 isenclosedBy-CCW: True\n    test 1179 isenclosedBy-CW : True\n    test 1180 isenclosedBy-CCW: True\n    test 1181 initialBearingTo: 102.392291\n    test 1182 compassAngleTo: 100.017\n    test 1183 compassAngleTo: 105.599\n    test 1184 initialBearingTo: 288.676039\n    test 1185 compassAngleTo: 280.017\n    test 1186 compassAngleTo: 285.599\n    test 1187 equirectangularTo: 592.185\n    test 1188 distanceTo: 593.571\n    test 1189 bearingTo: 0.0\n    test 1190 compassAngleTo: 0.0\n    test 1191 bearingTo: 45.2  FAILED, KNOWN, expected 45.0\n    test 1192 compassAngleTo: 45.0\n    test 1193 bearingTo: 90.0\n    test 1194 compassAngleTo: 90.0\n    test 1195 bearingTo: 180.0\n    test 1196 compassAngleTo: 180.0\n    test 1197 bearingTo: 225.2  FAILED, KNOWN, expected 225.0\n    test 1198 compassAngleTo: 225.0\n    test 1199 bearingTo: 314.8  FAILED, KNOWN, expected 315.0\n    test 1200 compassAngleTo: 315.0\n    test 1201 bearingTo: 270.0\n    test 1202 compassAngleTo: 270.0\n    test 1203 bearingTo: 0.0  FAILED, KNOWN, expected 359.4\n    test 1204 compassAngleTo: 359.4\n    test 1205 latlon2: (53.0, 1.0)\n    test 1206 philam2: (0.93, 0.02)\n    test 1207 bearingTo: 31\n    test 1208 compassAngleTo: 31\n    test 1209 compassAngleTo: 45\n\n    test 1210 boundsOf: <class 'pygeodesy.namedTuples.Bounds2Tuple'>\n    test 1211 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 1212 latlon2: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 1213 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 1214 isequalTo: <class 'bool'>\n    test 1215 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 1216 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 1217 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 1218 xyz3: <class 'tuple'>\n    test 1219 xyzh: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 1220 compassAngleTo: <class 'float'>\n    test 1221 cosineLawTo: <class 'float'>\n    test 1222 euclideanTo: <class 'float'>\n    test 1223 flatLocalTo: <class 'float'>\n    test 1224 flatPolarTo: <class 'float'>\n    test 1225 haversineTo: <class 'float'>\n    test 1226 hubenyTo: <class 'float'>\n    test 1227 vincentysTo: <class 'float'>\n    test 1228 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 1229 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 1230 toLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 1231 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 1232 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 1233 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 1234 toNvector: (0.615661, 0.0, 0.788011, 0)\n    test 1235 toVector: (3934960.466675, 0.0, 5002803.345483)\n    test 1236 toVector3d: (0.61823, 0.0, 0.786)\n\n    test 1237 trilaterate5 (pygeodesy.ellipsoidalExact) .min: 305.091\n    test 1238 trilaterate5 (pygeodesy.ellipsoidalExact) .point: 42.66933643°N, 002.48620262°E\n    test 1239 trilaterate5 (pygeodesy.ellipsoidalExact) .max: 1592.545\n    test 1240 trilaterate5 (pygeodesy.ellipsoidalExact) .point: 42.65141232°N, 002.46816989°E\n    test 1241 trilaterate5 (pygeodesy.ellipsoidalExact) .n: 3\n    test 1242 trilaterate5 (pygeodesy.ellipsoidalExact) .min: 127.229\n    test 1243 trilaterate5 (pygeodesy.ellipsoidalExact) .max: 152.612\n    test 1244 trilaterate5 (pygeodesy.ellipsoidalExact) .point: 42.67815375°N, 002.49950041°E\n    test 1245 trilaterate5 (pygeodesy.ellipsoidalExact) .n: 2\n    test 1246 trilaterate5 (pygeodesy.ellipsoidalExact) .min: 2400.293\n    test 1247 trilaterate5 (pygeodesy.ellipsoidalExact) .max: 2400.293\n    test 1248 trilaterate5 (pygeodesy.ellipsoidalExact) .point: 42.66128984°N, 002.47973818°E\n    test 1249 trilaterate5 (pygeodesy.ellipsoidalExact) .min- is .maxPoint: True\n    test 1250 trilaterate5 (pygeodesy.ellipsoidalExact) .n: 1\n    test 1251 trilaterate5 (pygeodesy.ellipsoidalExact) .min: 1343.743\n    test 1252 trilaterate5 (pygeodesy.ellipsoidalExact) .point: 42.69131964°N, 002.50112167°E\n    test 1253 trilaterate5 (pygeodesy.ellipsoidalExact) .max: 1445.554\n    test 1254 trilaterate5 (pygeodesy.ellipsoidalExact) .point: 42.67815375°N, 002.49950041°E\n    test 1255 trilaterate5 (pygeodesy.ellipsoidalExact) .n: 2\n    test 1256 radii11: Radii11Tuple(rA=7244.792747, rB=1828.106695, rC=2.25502, cR=57792.067128, rIn=57.366968, riS=2.087668, roS=2.443334, a=1830.361715, b=7247.047766, c=9072.899442, s=9075.154461)\n    test 1257 circum3 (pygeodesy.ellipsoidalExact) .radius: 57792.067\n    test 1258 circum3 (pygeodesy.ellipsoidalExact) .center: 43.053532°N, 002.943255°E, -261.66m\n    test 1259 circum3 (pygeodesy.ellipsoidalExact) .deltas: (-0.0, 0.0, 13.509)  FAILED, KNOWN, expected (0.0, 0.0, 11.383)\n    test 1260 circum3 (pygeodesy.ellipsoidalExact) .d1: 57792.858\n    test 1261 circum3 (pygeodesy.ellipsoidalExact) .d2: 57792.859\n    test 1262 circum3 (pygeodesy.ellipsoidalExact) .d3: 57792.859\n    test 1263 circum3 (pygeodesy.ellipsoidalExact) .datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 1264 circum3 (pygeodesy.ellipsoidalExact) .Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n\n    test 1265 radii11: Radii11Tuple(rA=7244.792747, rB=1828.106695, rC=2.25502, cR=57792.067128, rIn=57.366968, riS=2.087668, roS=2.443334, a=1830.361715, b=7247.047766, c=9072.899442, s=9075.154461)\n    test 1266 circum4 (pygeodesy.ellipsoidalExact) .radius: 3184256.748\n    test 1267 circum4 (pygeodesy.ellipsoidalExact) .center: 43.054367°N, 002.942573°E, -3183993.92m\n    test 1268 circum4 (pygeodesy.ellipsoidalExact) .rank: 3\n    test 1269 circum4 (pygeodesy.ellipsoidalExact) .residuals: ()\n    test 1270 circum4 (pygeodesy.ellipsoidalExact) .d1: 57818.033\n    test 1271 circum4 (pygeodesy.ellipsoidalExact) .d2: 57834.176\n    test 1272 circum4 (pygeodesy.ellipsoidalExact) .d3: 57830.992\n    test 1273 circum4 (pygeodesy.ellipsoidalExact) .datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 1274 circum4 (pygeodesy.ellipsoidalExact) .Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 1275 radii11: Radii11Tuple(rA=327537.482637, rB=776914.262482, rC=784245.052526, cR=780602.180901, rIn=325058.721103, riS=84975.664195, roS=INF, a=1561159.315008, b=1111782.535163, c=1104451.745119, s=1888696.797645)\n    test 1276 circin6 (pygeodesy.ellipsoidalExact) .rB+rC: 1561159.315\n    test 1277 circin6 (pygeodesy.ellipsoidalExact) .rC+pA: 1111782.535\n    test 1278 circin6 (pygeodesy.ellipsoidalExact) .rA+rB: 1104451.745\n    test 1279 circin6 (pygeodesy.ellipsoidalExact) .radius: 325058.721\n    test 1280 circin6 (pygeodesy.ellipsoidalExact) .center: 02.948531°N, 002.932537°E, -40041.19m\n    test 1281 circin6 (pygeodesy.ellipsoidalExact) .deltas: (0.0, 0.0, 0.417795)  FAILED, KNOWN, expected (0.0, 0.0, 0.090491)\n    test 1282 circin6 (pygeodesy.ellipsoidalExact) .cA: 05.04314°N, 005.014578°E, -48104.09m\n    test 1283 circin6 (pygeodesy.ellipsoidalExact) .cB: 00.0°N, 002.941713°E, -20168.62m\n    test 1284 circin6 (pygeodesy.ellipsoidalExact) .cC: 02.961566°N, 000.0°E, -20113.46m\n    test 1285 circin6 (pygeodesy.ellipsoidalExact) .dA: 327263.596\n    test 1286 circin6 (pygeodesy.ellipsoidalExact) .dB: 326036.153\n    test 1287 circin6 (pygeodesy.ellipsoidalExact) .dC: 326020.432\n\n    test 1288 area cw/ccw: 1.0\n\n    318 of 1288 testLatLon.py tests (24.7%) FAILED, incl. 106 KNOWN plus 212 DeprecationWarnings (pygeodesy 26.3.26 Python 3.11.9 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 1.24.2 scipy 1.10.1 Math 2 macOS 26.3.1 isLazy 0 -W  default) 27.670 sec\nrunning /usr/local/bin/p....n3.11 -W default ~/PyGeodesy/test/testLatLonBase.py\n\n    testing testLatLonBase.py 23.10.15\n\n    testLatLon(pygeodesy.sphericalNvector, 25.05.27)\n    test 1 lat, lon: 50.06632°N, 005.71475°W\n    test 2 lat, lon: 50.066389°N, 005.714722°W\n    test 3 isequalTo: True\n    test 4 isequalTo3: True\n    test 5 latlon: (52.205, 0.119)\n    test 6 latlonheight: (52.205, 0.119, 0)\n    test 7 phimlam: (0.911149, 0.002077)\n    test 8 phimlamheight: (0.911149, 0.002077, 0)\n    test 9 isequalTo: False\n    test 10 antipode1: 52.205°S, 179.881°W\n    test 11 antipode2: True\n    test 12 antipode3: 52.205°N, 000.119°E\n    test 13 antipode4: True\n    test 14 antipode5: 52.205°N, 000.119°E\n    test 15 isnormal1: True\n    test 16 isnormal2: False\n    test 17 normal1: False\n    test 18 normal2: True\n    test 19 toStr: 51°28′40″N, 000°00′06″W\n    test 20 toStr: 51.4778°N, 000.0016°W\n    test 21 precision: 0\n    test 22 toStr: 51°28′40″N, 000°00′06″W, +42.00m\n    test 23 isequalTo: True\n    test 24 isequalTo3: False\n    test 25 latlon: (51.4778, -0.0016)\n    test 26 phimlam: (0.898457, -0.000028)\n    test 27 isequalTo: True\n    test 28 isequalTo3: True\n    test 29 latlon: (51.4778, -0.0016)\n    test 30 latlonheight: (51.4778, -0.0016, 42.0)\n    test 31 phimlam: (0.898457, -0.000028)\n    test 32 phimlamheight: (0.898457, -0.000028, 42.0)\n    test 33 latlon: LatLon2Tuple(lat=51.4778, lon=-0.0016)\n    test 34 latlonheight: LatLon3Tuple(lat=51.4778, lon=-0.0016, height=42.0)\n    test 35 phimlam: PhiLam2Tuple(phi=0.898457, lam=-0.000028)\n    test 36 phimlamheight: PhiLam3Tuple(phi=0.898457, lam=-0.000028, height=42.0)\n    test 37 ellipsoidalLatLon: True\n    test 38 sphericalLatLon: True\n\n    test 39 rhumbLine: TMorder=6, azi12=30.0, exact=False, lat1=51.4778, lon1=-0.0016, rhumb=Rhumb....ere', a=6371008.771415, f=0, f_=0, b=6371008.771415), k0=0.9996, TMorder=6)\n    test 40 rhumbLine: TMorder=6, azi12=105.484906, exact=False, lat1=51.4778, lon1=-0.0016, rhumb....ere', a=6371008.771415, f=0, f_=0, b=6371008.771415), k0=0.9996, TMorder=6)\n    test 41 rhumbAzimuthTo: 107.563\n    test 42 rhumbDestination: 50.964155°N, 001.853°E\n    test 43 rhumbDestination: True\n    test 44 rhumbDistanceTo: 42186.1\n    test 45 rhumbIntersecant2: (LatLon(58°40′08.68″N, 042°42′40.63″E), LatLon(18°47′05.09″N, 011°00′15.53″W))\n    test 46 rhumbMidpointo-0.5: 51.069759°N, 001.625988°E\n    test 47 rhumbMidpointo: True\n    test 48 rhumbMidpointo-0.0: 51.127°N, 001.338°E\n    test 49 rhumbMidpointo-0.25: 51.09838°N, 001.482038°E\n    test 50 rhumbMidpointo-0.75: 51.041139°N, 001.769848°E\n    test 51 rhumbMidpointo-1.0: 51.012519°N, 001.913619°E\n    test 52 rhumbMidpointo-2.0: 50.898038°N, 002.48782°E\n\n    testLatLon(pygeodesy.sphericalTrigonometry, 25.08.31)\n    test 53 lat, lon: 50.06632°N, 005.71475°W\n    test 54 lat, lon: 50.066389°N, 005.714722°W\n    test 55 isequalTo: True\n    test 56 isequalTo3: True\n    test 57 latlon: (52.205, 0.119)\n    test 58 latlonheight: (52.205, 0.119, 0)\n    test 59 phimlam: (0.911149, 0.002077)\n    test 60 phimlamheight: (0.911149, 0.002077, 0)\n    test 61 isequalTo: False\n    test 62 antipode1: 52.205°S, 179.881°W\n    test 63 antipode2: True\n    test 64 antipode3: 52.205°N, 000.119°E\n    test 65 antipode4: True\n    test 66 antipode5: 52.205°N, 000.119°E\n    test 67 isnormal1: True\n    test 68 isnormal2: False\n    test 69 normal1: False\n    test 70 normal2: True\n    test 71 toStr: 51°28′40″N, 000°00′06″W\n    test 72 toStr: 51.4778°N, 000.0016°W\n    test 73 precision: 0\n    test 74 toStr: 51°28′40″N, 000°00′06″W, +42.00m\n    test 75 isequalTo: True\n    test 76 isequalTo3: False\n    test 77 latlon: (51.4778, -0.0016)\n    test 78 phimlam: (0.898457, -0.000028)\n    test 79 isequalTo: True\n    test 80 isequalTo3: True\n    test 81 latlon: (51.4778, -0.0016)\n    test 82 latlonheight: (51.4778, -0.0016, 42.0)\n    test 83 phimlam: (0.898457, -0.000028)\n    test 84 phimlamheight: (0.898457, -0.000028, 42.0)\n    test 85 latlon: LatLon2Tuple(lat=51.4778, lon=-0.0016)\n    test 86 latlonheight: LatLon3Tuple(lat=51.4778, lon=-0.0016, height=42.0)\n    test 87 phimlam: PhiLam2Tuple(phi=0.898457, lam=-0.000028)\n    test 88 phimlamheight: PhiLam3Tuple(phi=0.898457, lam=-0.000028, height=42.0)\n    test 89 ellipsoidalLatLon: True\n    test 90 sphericalLatLon: True\n\n    test 91 rhumbLine: TMorder=6, azi12=30.0, exact=False, lat1=51.4778, lon1=-0.0016, rhumb=Rhumb....ere', a=6371008.771415, f=0, f_=0, b=6371008.771415), k0=0.9996, TMorder=6)\n    test 92 rhumbLine: TMorder=6, azi12=105.484906, exact=False, lat1=51.4778, lon1=-0.0016, rhumb....ere', a=6371008.771415, f=0, f_=0, b=6371008.771415), k0=0.9996, TMorder=6)\n    test 93 rhumbAzimuthTo: 107.563\n    test 94 rhumbDestination: 50.964155°N, 001.853°E\n    test 95 rhumbDestination: True\n    test 96 rhumbDistanceTo: 42186.1\n    test 97 rhumbIntersecant2: (LatLon(58°40′08.68″N, 042°42′40.63″E), LatLon(18°47′05.09″N, 011°00′15.53″W))\n    test 98 rhumbMidpointo-0.5: 51.069759°N, 001.625988°E\n    test 99 rhumbMidpointo: True\n    test 100 rhumbMidpointo-0.0: 51.127°N, 001.338°E\n    test 101 rhumbMidpointo-0.25: 51.09838°N, 001.482038°E\n    test 102 rhumbMidpointo-0.75: 51.041139°N, 001.769848°E\n    test 103 rhumbMidpointo-1.0: 51.012519°N, 001.913619°E\n    test 104 rhumbMidpointo-2.0: 50.898038°N, 002.48782°E\n\n    testLatLon(pygeodesy.ellipsoidalNvector, 25.05.12)\n    test 105 lat, lon: 50.06632°N, 005.71475°W\n    test 106 lat, lon: 50.066389°N, 005.714722°W\n    test 107 isequalTo: True\n    test 108 isequalTo3: True\n    test 109 latlon: (52.205, 0.119)\n    test 110 latlonheight: (52.205, 0.119, 0)\n    test 111 phimlam: (0.911149, 0.002077)\n    test 112 phimlamheight: (0.911149, 0.002077, 0)\n    test 113 isequalTo: False\n    test 114 antipode1: 52.205°S, 179.881°W\n    test 115 antipode2: True\n    test 116 antipode3: 52.205°N, 000.119°E\n    test 117 antipode4: True\n    test 118 antipode5: 52.205°N, 000.119°E\n    test 119 isnormal1: True\n    test 120 isnormal2: False\n    test 121 normal1: False\n    test 122 normal2: True\n    test 123 toStr: 51°28′40″N, 000°00′06″W\n    test 124 toStr: 51.4778°N, 000.0016°W\n    test 125 precision: 0\n    test 126 toStr: 51°28′40″N, 000°00′06″W, +42.00m\n    test 127 isequalTo: True\n    test 128 isequalTo3: False\n    test 129 latlon: (51.4778, -0.0016)\n    test 130 phimlam: (0.898457, -0.000028)\n    test 131 isequalTo: True\n    test 132 isequalTo3: True\n    test 133 latlon: (51.4778, -0.0016)\n    test 134 latlonheight: (51.4778, -0.0016, 42.0)\n    test 135 phimlam: (0.898457, -0.000028)\n    test 136 phimlamheight: (0.898457, -0.000028, 42.0)\n    test 137 latlon: LatLon2Tuple(lat=51.4778, lon=-0.0016)\n    test 138 latlonheight: LatLon3Tuple(lat=51.4778, lon=-0.0016, height=42.0)\n    test 139 phimlam: PhiLam2Tuple(phi=0.898457, lam=-0.000028)\n    test 140 phimlamheight: PhiLam3Tuple(phi=0.898457, lam=-0.000028, height=42.0)\n    test 141 ellipsoidalLatLon: True\n    test 142 sphericalLatLon: True\n\n    test 143 rhumbLine: TMorder=6, azi12=30.0, exact=False, lat1=51.4778, lon1=-0.0016, rhumb=Rhumb...., f=0.00335281, f_=298.25722356, b=6356752.31424518), k0=0.9996, TMorder=6)\n    test 144 rhumbLine: TMorder=6, azi12=113.805696, exact=False, lat1=51.4778, lon1=-0.0016, rhumb...., f=0.00335281, f_=298.25722356, b=6356752.31424518), k0=0.9996, TMorder=6)\n    test 145 rhumbAzimuthTo: 116.661\n    test 146 rhumbDestination: 50.964234°N, 001.851383°E\n    test 147 rhumbDestination: True\n    test 148 rhumbDistanceTo: 40413.1\n    test 149 rhumbIntersecant2: (LatLon(58°59′33.52″N, 043°11′56.62″E), LatLon(20°25′12.01″N, 009°12′37.27″W))\n    test 150 rhumbMidpointo-0.5: 51.045501°N, 001.595726°E\n    test 151 rhumbMidpointo: True\n    test 152 rhumbMidpointo-0.0: 51.127°N, 001.338°E\n    test 153 rhumbMidpointo-0.25: 51.08625°N, 001.46692°E\n    test 154 rhumbMidpointo-0.75: 51.00475°N, 001.724419°E\n    test 155 rhumbMidpointo-1.0: 50.964°N, 001.853°E\n    test 156 rhumbMidpointo-2.0: 50.800995°N, 002.366201°E\n\n    testLatLon(pygeodesy.ellipsoidalVincenty, 25.05.26)\n    test 157 lat, lon: 50.06632°N, 005.71475°W\n    test 158 lat, lon: 50.066389°N, 005.714722°W\n    test 159 isequalTo: True\n    test 160 isequalTo3: True\n    test 161 latlon: (52.205, 0.119)\n    test 162 latlonheight: (52.205, 0.119, 0)\n    test 163 phimlam: (0.911149, 0.002077)\n    test 164 phimlamheight: (0.911149, 0.002077, 0)\n    test 165 isequalTo: False\n    test 166 antipode1: 52.205°S, 179.881°W\n    test 167 antipode2: True\n    test 168 antipode3: 52.205°N, 000.119°E\n    test 169 antipode4: True\n    test 170 antipode5: 52.205°N, 000.119°E\n    test 171 isnormal1: True\n    test 172 isnormal2: False\n    test 173 normal1: False\n    test 174 normal2: True\n    test 175 toStr: 51°28′40″N, 000°00′06″W\n    test 176 toStr: 51.4778°N, 000.0016°W\n    test 177 precision: 0\n    test 178 toStr: 51°28′40″N, 000°00′06″W, +42.00m\n    test 179 isequalTo: True\n    test 180 isequalTo3: False\n    test 181 latlon: (51.4778, -0.0016)\n    test 182 phimlam: (0.898457, -0.000028)\n    test 183 isequalTo: True\n    test 184 isequalTo3: True\n    test 185 latlon: (51.4778, -0.0016)\n    test 186 latlonheight: (51.4778, -0.0016, 42.0)\n    test 187 phimlam: (0.898457, -0.000028)\n    test 188 phimlamheight: (0.898457, -0.000028, 42.0)\n    test 189 latlon: LatLon2Tuple(lat=51.4778, lon=-0.0016)\n    test 190 latlonheight: LatLon3Tuple(lat=51.4778, lon=-0.0016, height=42.0)\n    test 191 phimlam: PhiLam2Tuple(phi=0.898457, lam=-0.000028)\n    test 192 phimlamheight: PhiLam3Tuple(phi=0.898457, lam=-0.000028, height=42.0)\n    test 193 ellipsoidalLatLon: True\n    test 194 sphericalLatLon: True\n\n    test 195 rhumbLine: TMorder=6, azi12=30.0, exact=False, lat1=51.4778, lon1=-0.0016, rhumb=Rhumb...., f=0.00335281, f_=298.25722356, b=6356752.31424518), k0=0.9996, TMorder=6)\n    test 196 rhumbLine: TMorder=6, azi12=113.805696, exact=False, lat1=51.4778, lon1=-0.0016, rhumb...., f=0.00335281, f_=298.25722356, b=6356752.31424518), k0=0.9996, TMorder=6)\n    test 197 rhumbAzimuthTo: 116.661\n    test 198 rhumbDestination: 50.964234°N, 001.851383°E\n    test 199 rhumbDestination: True\n    test 200 rhumbDistanceTo: 40413.1\n    test 201 rhumbIntersecant2: (LatLon(58°59′33.52″N, 043°11′56.62″E), LatLon(20°25′12.01″N, 009°12′37.27″W))\n    test 202 rhumbMidpointo-0.5: 51.045501°N, 001.595726°E\n    test 203 rhumbMidpointo: True\n    test 204 rhumbMidpointo-0.0: 51.127°N, 001.338°E\n    test 205 rhumbMidpointo-0.25: 51.08625°N, 001.46692°E\n    test 206 rhumbMidpointo-0.75: 51.00475°N, 001.724419°E\n    test 207 rhumbMidpointo-1.0: 50.964°N, 001.853°E\n    test 208 rhumbMidpointo-2.0: 50.800995°N, 002.366201°E\n\n    testLatLon(pygeodesy.ellipsoidalKarney, 25.05.27)\n    test 209 lat, lon: 50.06632°N, 005.71475°W\n    test 210 lat, lon: 50.066389°N, 005.714722°W\n    test 211 isequalTo: True\n    test 212 isequalTo3: True\n    test 213 latlon: (52.205, 0.119)\n    test 214 latlonheight: (52.205, 0.119, 0)\n    test 215 phimlam: (0.911149, 0.002077)\n    test 216 phimlamheight: (0.911149, 0.002077, 0)\n    test 217 isequalTo: False\n    test 218 antipode1: 52.205°S, 179.881°W\n    test 219 antipode2: True\n    test 220 antipode3: 52.205°N, 000.119°E\n    test 221 antipode4: True\n    test 222 antipode5: 52.205°N, 000.119°E\n    test 223 isnormal1: True\n    test 224 isnormal2: False\n    test 225 normal1: False\n    test 226 normal2: True\n    test 227 toStr: 51°28′40″N, 000°00′06″W\n    test 228 toStr: 51.4778°N, 000.0016°W\n    test 229 precision: 0\n    test 230 toStr: 51°28′40″N, 000°00′06″W, +42.00m\n    test 231 isequalTo: True\n    test 232 isequalTo3: False\n    test 233 latlon: (51.4778, -0.0016)\n    test 234 phimlam: (0.898457, -0.000028)\n    test 235 isequalTo: True\n    test 236 isequalTo3: True\n    test 237 latlon: (51.4778, -0.0016)\n    test 238 latlonheight: (51.4778, -0.0016, 42.0)\n    test 239 phimlam: (0.898457, -0.000028)\n    test 240 phimlamheight: (0.898457, -0.000028, 42.0)\n    test 241 latlon: LatLon2Tuple(lat=51.4778, lon=-0.0016)\n    test 242 latlonheight: LatLon3Tuple(lat=51.4778, lon=-0.0016, height=42.0)\n    test 243 phimlam: PhiLam2Tuple(phi=0.898457, lam=-0.000028)\n    test 244 phimlamheight: PhiLam3Tuple(phi=0.898457, lam=-0.000028, height=42.0)\n    test 245 ellipsoidalLatLon: True\n    test 246 sphericalLatLon: True\n\n    test 247 rhumbLine: TMorder=6, azi12=30.0, exact=False, lat1=51.4778, lon1=-0.0016, rhumb=Rhumb...., f=0.00335281, f_=298.25722356, b=6356752.31424518), k0=0.9996, TMorder=6)\n    test 248 rhumbLine: TMorder=6, azi12=113.805696, exact=False, lat1=51.4778, lon1=-0.0016, rhumb...., f=0.00335281, f_=298.25722356, b=6356752.31424518), k0=0.9996, TMorder=6)\n    test 249 rhumbAzimuthTo: 116.661\n    test 250 rhumbDestination: 50.964234°N, 001.851383°E\n    test 251 rhumbDestination: True\n    test 252 rhumbDistanceTo: 40413.1\n    test 253 rhumbIntersecant2: (LatLon(58°59′33.52″N, 043°11′56.62″E), LatLon(20°25′12.01″N, 009°12′37.27″W))\n    test 254 rhumbMidpointo-0.5: 51.045501°N, 001.595726°E\n    test 255 rhumbMidpointo: True\n    test 256 rhumbMidpointo-0.0: 51.127°N, 001.338°E\n    test 257 rhumbMidpointo-0.25: 51.08625°N, 001.46692°E\n    test 258 rhumbMidpointo-0.75: 51.00475°N, 001.724419°E\n    test 259 rhumbMidpointo-1.0: 50.964°N, 001.853°E\n    test 260 rhumbMidpointo-2.0: 50.800995°N, 002.366201°E\n\n    testLatLon(pygeodesy.ellipsoidalExact, 25.08.28)\n    test 261 lat, lon: 50.06632°N, 005.71475°W\n    test 262 lat, lon: 50.066389°N, 005.714722°W\n    test 263 isequalTo: True\n    test 264 isequalTo3: True\n    test 265 latlon: (52.205, 0.119)\n    test 266 latlonheight: (52.205, 0.119, 0)\n    test 267 phimlam: (0.911149, 0.002077)\n    test 268 phimlamheight: (0.911149, 0.002077, 0)\n    test 269 isequalTo: False\n    test 270 antipode1: 52.205°S, 179.881°W\n    test 271 antipode2: True\n    test 272 antipode3: 52.205°N, 000.119°E\n    test 273 antipode4: True\n    test 274 antipode5: 52.205°N, 000.119°E\n    test 275 isnormal1: True\n    test 276 isnormal2: False\n    test 277 normal1: False\n    test 278 normal2: True\n    test 279 toStr: 51°28′40″N, 000°00′06″W\n    test 280 toStr: 51.4778°N, 000.0016°W\n    test 281 precision: 0\n    test 282 toStr: 51°28′40″N, 000°00′06″W, +42.00m\n    test 283 isequalTo: True\n    test 284 isequalTo3: False\n    test 285 latlon: (51.4778, -0.0016)\n    test 286 phimlam: (0.898457, -0.000028)\n    test 287 isequalTo: True\n    test 288 isequalTo3: True\n    test 289 latlon: (51.4778, -0.0016)\n    test 290 latlonheight: (51.4778, -0.0016, 42.0)\n    test 291 phimlam: (0.898457, -0.000028)\n    test 292 phimlamheight: (0.898457, -0.000028, 42.0)\n    test 293 latlon: LatLon2Tuple(lat=51.4778, lon=-0.0016)\n    test 294 latlonheight: LatLon3Tuple(lat=51.4778, lon=-0.0016, height=42.0)\n    test 295 phimlam: PhiLam2Tuple(phi=0.898457, lam=-0.000028)\n    test 296 phimlamheight: PhiLam3Tuple(phi=0.898457, lam=-0.000028, height=42.0)\n    test 297 ellipsoidalLatLon: True\n    test 298 sphericalLatLon: True\n\n    test 299 rhumbLine: TMorder=6, azi12=30.0, exact=False, lat1=51.4778, lon1=-0.0016, rhumb=Rhumb...., f=0.00335281, f_=298.25722356, b=6356752.31424518), k0=0.9996, TMorder=6)\n    test 300 rhumbLine: TMorder=6, azi12=113.805696, exact=False, lat1=51.4778, lon1=-0.0016, rhumb...., f=0.00335281, f_=298.25722356, b=6356752.31424518), k0=0.9996, TMorder=6)\n    test 301 rhumbAzimuthTo: 116.661\n    test 302 rhumbDestination: 50.964234°N, 001.851383°E\n    test 303 rhumbDestination: True\n    test 304 rhumbDistanceTo: 40413.1\n    test 305 rhumbIntersecant2: (LatLon(58°59′33.52″N, 043°11′56.62″E), LatLon(20°25′12.01″N, 009°12′37.27″W))\n    test 306 rhumbMidpointo-0.5: 51.045501°N, 001.595726°E\n    test 307 rhumbMidpointo: True\n    test 308 rhumbMidpointo-0.0: 51.127°N, 001.338°E\n    test 309 rhumbMidpointo-0.25: 51.08625°N, 001.46692°E\n    test 310 rhumbMidpointo-0.75: 51.00475°N, 001.724419°E\n    test 311 rhumbMidpointo-1.0: 50.964°N, 001.853°E\n    test 312 rhumbMidpointo-2.0: 50.800995°N, 002.366201°E\n\n    testLatLonEllipsoidalBase(pygeodesy.ellipsoidalBase, 25.07.21)\n    test 313 lat, lon: 50.06632°N, 005.71475°W\n    test 314 lat, lon: 50.066389°N, 005.714722°W\n    test 315 isequalTo: True\n    test 316 isequalTo3: True\n    test 317 latlon: (52.205, 0.119)\n    test 318 latlonheight: (52.205, 0.119, 0)\n    test 319 phimlam: (0.911149, 0.002077)\n    test 320 phimlamheight: (0.911149, 0.002077, 0)\n    test 321 isequalTo: False\n    test 322 antipode1: 52.205°S, 179.881°W\n    test 323 antipode2: True\n    test 324 antipode3: 52.205°N, 000.119°E\n    test 325 antipode4: True\n    test 326 antipode5: 52.205°N, 000.119°E\n    test 327 isnormal1: True\n    test 328 isnormal2: False\n    test 329 normal1: False\n    test 330 normal2: True\n    test 331 toStr: 51°28′40″N, 000°00′06″W\n    test 332 toStr: 51.4778°N, 000.0016°W\n    test 333 precision: 0\n    test 334 toStr: 51°28′40″N, 000°00′06″W, +42.00m\n    test 335 isequalTo: True\n    test 336 isequalTo3: False\n    test 337 latlon: (51.4778, -0.0016)\n    test 338 phimlam: (0.898457, -0.000028)\n    test 339 isequalTo: True\n    test 340 isequalTo3: True\n    test 341 latlon: (51.4778, -0.0016)\n    test 342 latlonheight: (51.4778, -0.0016, 42.0)\n    test 343 phimlam: (0.898457, -0.000028)\n    test 344 phimlamheight: (0.898457, -0.000028, 42.0)\n    test 345 latlon: LatLon2Tuple(lat=51.4778, lon=-0.0016)\n    test 346 latlonheight: LatLon3Tuple(lat=51.4778, lon=-0.0016, height=42.0)\n    test 347 phimlam: PhiLam2Tuple(phi=0.898457, lam=-0.000028)\n    test 348 phimlamheight: PhiLam3Tuple(phi=0.898457, lam=-0.000028, height=42.0)\n    test 349 ellipsoidalLatLon: True\n    test 350 sphericalLatLon: True\n\n    test 351 rhumbLine: TMorder=6, azi12=30.0, exact=False, lat1=51.4778, lon1=-0.0016, rhumb=Rhumb...., f=0.00335281, f_=298.25722356, b=6356752.31424518), k0=0.9996, TMorder=6)\n    test 352 rhumbLine: TMorder=6, azi12=113.805696, exact=False, lat1=51.4778, lon1=-0.0016, rhumb...., f=0.00335281, f_=298.25722356, b=6356752.31424518), k0=0.9996, TMorder=6)\n    test 353 rhumbAzimuthTo: 116.661\n    test 354 rhumbDestination: 50.964234°N, 001.851383°E\n    test 355 rhumbDestination: True\n    test 356 rhumbDistanceTo: 40413.1\n    test 357 rhumbIntersecant2: (LatLonEllipsoidalBase(58°59′33.52″N, 043°11′56.62″E), LatLonEllipsoidalBase(20°25′12.01″N, 009°12′37.27″W))\n    test 358 rhumbMidpointo-0.5: 51.045501°N, 001.595726°E\n    test 359 rhumbMidpointo: True\n    test 360 rhumbMidpointo-0.0: 51.127°N, 001.338°E\n    test 361 rhumbMidpointo-0.25: 51.08625°N, 001.46692°E\n    test 362 rhumbMidpointo-0.75: 51.00475°N, 001.724419°E\n    test 363 rhumbMidpointo-1.0: 50.964°N, 001.853°E\n    test 364 rhumbMidpointo-2.0: 50.800995°N, 002.366201°E\n\n    testLatLonEllipsoidalBaseDI(pygeodesy.ellipsoidalBaseDI, 25.05.23)\n    test 365 lat, lon: 50.06632°N, 005.71475°W\n    test 366 lat, lon: 50.066389°N, 005.714722°W\n    test 367 isequalTo: True\n    test 368 isequalTo3: True\n    test 369 latlon: (52.205, 0.119)\n    test 370 latlonheight: (52.205, 0.119, 0)\n    test 371 phimlam: (0.911149, 0.002077)\n    test 372 phimlamheight: (0.911149, 0.002077, 0)\n    test 373 isequalTo: False\n    test 374 antipode1: 52.205°S, 179.881°W\n    test 375 antipode2: True\n    test 376 antipode3: 52.205°N, 000.119°E\n    test 377 antipode4: True\n    test 378 antipode5: 52.205°N, 000.119°E\n    test 379 isnormal1: True\n    test 380 isnormal2: False\n    test 381 normal1: False\n    test 382 normal2: True\n    test 383 toStr: 51°28′40″N, 000°00′06″W\n    test 384 toStr: 51.4778°N, 000.0016°W\n    test 385 precision: 0\n    test 386 toStr: 51°28′40″N, 000°00′06″W, +42.00m\n    test 387 isequalTo: True\n    test 388 isequalTo3: False\n    test 389 latlon: (51.4778, -0.0016)\n    test 390 phimlam: (0.898457, -0.000028)\n    test 391 isequalTo: True\n    test 392 isequalTo3: True\n    test 393 latlon: (51.4778, -0.0016)\n    test 394 latlonheight: (51.4778, -0.0016, 42.0)\n    test 395 phimlam: (0.898457, -0.000028)\n    test 396 phimlamheight: (0.898457, -0.000028, 42.0)\n    test 397 latlon: LatLon2Tuple(lat=51.4778, lon=-0.0016)\n    test 398 latlonheight: LatLon3Tuple(lat=51.4778, lon=-0.0016, height=42.0)\n    test 399 phimlam: PhiLam2Tuple(phi=0.898457, lam=-0.000028)\n    test 400 phimlamheight: PhiLam3Tuple(phi=0.898457, lam=-0.000028, height=42.0)\n    test 401 ellipsoidalLatLon: True\n    test 402 sphericalLatLon: True\n\n    test 403 rhumbLine: TMorder=6, azi12=30.0, exact=False, lat1=51.4778, lon1=-0.0016, rhumb=Rhumb...., f=0.00335281, f_=298.25722356, b=6356752.31424518), k0=0.9996, TMorder=6)\n    test 404 rhumbLine: TMorder=6, azi12=113.805696, exact=False, lat1=51.4778, lon1=-0.0016, rhumb...., f=0.00335281, f_=298.25722356, b=6356752.31424518), k0=0.9996, TMorder=6)\n    test 405 rhumbAzimuthTo: 116.661\n    test 406 rhumbDestination: 50.964234°N, 001.851383°E\n    test 407 rhumbDestination: True\n    test 408 rhumbDistanceTo: 40413.1\n    test 409 rhumbIntersecant2: (LatLonEllipsoidalBaseDI(58°59′33.52″N, 043°11′56.62″E), LatLonEllipsoidalBaseDI(20°25′12.01″N, 009°12′37.27″W))\n    test 410 rhumbMidpointo-0.5: 51.045501°N, 001.595726°E\n    test 411 rhumbMidpointo: True\n    test 412 rhumbMidpointo-0.0: 51.127°N, 001.338°E\n    test 413 rhumbMidpointo-0.25: 51.08625°N, 001.46692°E\n    test 414 rhumbMidpointo-0.75: 51.00475°N, 001.724419°E\n    test 415 rhumbMidpointo-1.0: 50.964°N, 001.853°E\n    test 416 rhumbMidpointo-2.0: 50.800995°N, 002.366201°E\n\n    testLatLonBase(pygeodesy.latlonBase, 25.08.18)\n    test 417 lat, lon: 50.06632°N, 005.71475°W\n    test 418 lat, lon: 50.066389°N, 005.714722°W\n    test 419 isequalTo: True\n    test 420 isequalTo3: True\n    test 421 latlon: (52.205, 0.119)\n    test 422 latlonheight: (52.205, 0.119, 0)\n    test 423 phimlam: (0.911149, 0.002077)\n    test 424 phimlamheight: (0.911149, 0.002077, 0)\n    test 425 isequalTo: False\n    test 426 antipode1: 52.205°S, 179.881°W\n    test 427 antipode2: True\n    test 428 antipode3: 52.205°N, 000.119°E\n    test 429 antipode4: True\n    test 430 antipode5: 52.205°N, 000.119°E\n    test 431 isnormal1: True\n    test 432 isnormal2: False\n    test 433 normal1: False\n    test 434 normal2: True\n    test 435 toStr: 51°28′40″N, 000°00′06″W\n    test 436 toStr: 51.4778°N, 000.0016°W\n    test 437 precision: 0\n    test 438 toStr: 51°28′40″N, 000°00′06″W, +42.00m\n    test 439 isequalTo: True\n    test 440 isequalTo3: False\n    test 441 latlon: (51.4778, -0.0016)\n    test 442 phimlam: (0.898457, -0.000028)\n    test 443 isequalTo: True\n    test 444 isequalTo3: True\n    test 445 latlon: (51.4778, -0.0016)\n    test 446 latlonheight: (51.4778, -0.0016, 42.0)\n    test 447 phimlam: (0.898457, -0.000028)\n    test 448 phimlamheight: (0.898457, -0.000028, 42.0)\n    test 449 latlon: LatLon2Tuple(lat=51.4778, lon=-0.0016)\n    test 450 latlonheight: LatLon3Tuple(lat=51.4778, lon=-0.0016, height=42.0)\n    test 451 phimlam: PhiLam2Tuple(phi=0.898457, lam=-0.000028)\n    test 452 phimlamheight: PhiLam3Tuple(phi=0.898457, lam=-0.000028, height=42.0)\n    test 453 ellipsoidalLatLon: True\n    test 454 sphericalLatLon: True\n    test 455 isCartesian(LatLonBase, None): None\n    test 456 isCartesian(LatLonBase, True): None\n    test 457 isCartesian(LatLonBase, False): None\n    test 458 isLatLon(LatLonBase, None): <class 'pygeodesy.latlonBase.LatLonBase'>\n    test 459 isLatLon(LatLonBase, True): False\n    test 460 isLatLon(LatLonBase, False): False\n    test 461 isNvector(LatLonBase, None): None\n    test 462 isNvector(LatLonBase, True): None\n    test 463 isNvector(LatLonBase, False): None\n\n    testLatLonNvectorBase(pygeodesy.nvectorBase, 25.08.18)\n    test 464 lat, lon: 50.06632°N, 005.71475°W\n    test 465 lat, lon: 50.066389°N, 005.714722°W\n    test 466 isequalTo: True\n    test 467 isequalTo3: True\n    test 468 latlon: (52.205, 0.119)\n    test 469 latlonheight: (52.205, 0.119, 0)\n    test 470 phimlam: (0.911149, 0.002077)\n    test 471 phimlamheight: (0.911149, 0.002077, 0)\n    test 472 isequalTo: False\n    test 473 antipode1: 52.205°S, 179.881°W\n    test 474 antipode2: True\n    test 475 antipode3: 52.205°N, 000.119°E\n    test 476 antipode4: True\n    test 477 antipode5: 52.205°N, 000.119°E\n    test 478 isnormal1: True\n    test 479 isnormal2: False\n    test 480 normal1: False\n    test 481 normal2: True\n    test 482 toStr: 51°28′40″N, 000°00′06″W\n    test 483 toStr: 51.4778°N, 000.0016°W\n    test 484 precision: 0\n    test 485 toStr: 51°28′40″N, 000°00′06″W, +42.00m\n    test 486 isequalTo: True\n    test 487 isequalTo3: False\n    test 488 latlon: (51.4778, -0.0016)\n    test 489 phimlam: (0.898457, -0.000028)\n    test 490 isequalTo: True\n    test 491 isequalTo3: True\n    test 492 latlon: (51.4778, -0.0016)\n    test 493 latlonheight: (51.4778, -0.0016, 42.0)\n    test 494 phimlam: (0.898457, -0.000028)\n    test 495 phimlamheight: (0.898457, -0.000028, 42.0)\n    test 496 latlon: LatLon2Tuple(lat=51.4778, lon=-0.0016)\n    test 497 latlonheight: LatLon3Tuple(lat=51.4778, lon=-0.0016, height=42.0)\n    test 498 phimlam: PhiLam2Tuple(phi=0.898457, lam=-0.000028)\n    test 499 phimlamheight: PhiLam3Tuple(phi=0.898457, lam=-0.000028, height=42.0)\n    test 500 ellipsoidalLatLon: True\n    test 501 sphericalLatLon: True\n    test 502 isCartesian(LatLonNvectorBase, None): None\n    test 503 isCartesian(LatLonNvectorBase, True): None\n    test 504 isCartesian(LatLonNvectorBase, False): None\n    test 505 isLatLon(LatLonNvectorBase, None): <class 'pygeodesy.nvectorBase.LatLonNvectorBase'>\n    test 506 isLatLon(LatLonNvectorBase, True): False\n    test 507 isLatLon(LatLonNvectorBase, False): False\n    test 508 isNvector(LatLonNvectorBase, None): None\n    test 509 isNvector(LatLonNvectorBase, True): None\n    test 510 isNvector(LatLonNvectorBase, False): None\n\n    testLatLonSphericalBase(pygeodesy.sphericalBase, 25.05.26)\n    test 511 lat, lon: 50.06632°N, 005.71475°W\n    test 512 lat, lon: 50.066389°N, 005.714722°W\n    test 513 isequalTo: True\n    test 514 isequalTo3: True\n    test 515 latlon: (52.205, 0.119)\n    test 516 latlonheight: (52.205, 0.119, 0)\n    test 517 phimlam: (0.911149, 0.002077)\n    test 518 phimlamheight: (0.911149, 0.002077, 0)\n    test 519 isequalTo: False\n    test 520 antipode1: 52.205°S, 179.881°W\n    test 521 antipode2: True\n    test 522 antipode3: 52.205°N, 000.119°E\n    test 523 antipode4: True\n    test 524 antipode5: 52.205°N, 000.119°E\n    test 525 isnormal1: True\n    test 526 isnormal2: False\n    test 527 normal1: False\n    test 528 normal2: True\n    test 529 toStr: 51°28′40″N, 000°00′06″W\n    test 530 toStr: 51.4778°N, 000.0016°W\n    test 531 precision: 0\n    test 532 toStr: 51°28′40″N, 000°00′06″W, +42.00m\n    test 533 isequalTo: True\n    test 534 isequalTo3: False\n    test 535 latlon: (51.4778, -0.0016)\n    test 536 phimlam: (0.898457, -0.000028)\n    test 537 isequalTo: True\n    test 538 isequalTo3: True\n    test 539 latlon: (51.4778, -0.0016)\n    test 540 latlonheight: (51.4778, -0.0016, 42.0)\n    test 541 phimlam: (0.898457, -0.000028)\n    test 542 phimlamheight: (0.898457, -0.000028, 42.0)\n    test 543 latlon: LatLon2Tuple(lat=51.4778, lon=-0.0016)\n    test 544 latlonheight: LatLon3Tuple(lat=51.4778, lon=-0.0016, height=42.0)\n    test 545 phimlam: PhiLam2Tuple(phi=0.898457, lam=-0.000028)\n    test 546 phimlamheight: PhiLam3Tuple(phi=0.898457, lam=-0.000028, height=42.0)\n    test 547 ellipsoidalLatLon: True\n    test 548 sphericalLatLon: True\n\n    test 549 rhumbLine: TMorder=6, azi12=30.0, exact=False, lat1=51.4778, lon1=-0.0016, rhumb=Rhumb....ere', a=6371008.771415, f=0, f_=0, b=6371008.771415), k0=0.9996, TMorder=6)\n    test 550 rhumbLine: TMorder=6, azi12=105.484906, exact=False, lat1=51.4778, lon1=-0.0016, rhumb....ere', a=6371008.771415, f=0, f_=0, b=6371008.771415), k0=0.9996, TMorder=6)\n    test 551 rhumbAzimuthTo: 107.563\n    test 552 rhumbDestination: 50.964155°N, 001.853°E\n    test 553 rhumbDestination: True\n    test 554 rhumbDistanceTo: 42186.1\n    test 555 rhumbIntersecant2: (LatLonSphericalBase(58°40′08.68″N, 042°42′40.63″E), LatLonSphericalBase(18°47′05.09″N, 011°00′15.53″W))\n    test 556 rhumbMidpointo-0.5: 51.069759°N, 001.625988°E\n    test 557 rhumbMidpointo: True\n    test 558 rhumbMidpointo-0.0: 51.127°N, 001.338°E\n    test 559 rhumbMidpointo-0.25: 51.09838°N, 001.482038°E\n    test 560 rhumbMidpointo-0.75: 51.041139°N, 001.769848°E\n    test 561 rhumbMidpointo-1.0: 51.012519°N, 001.913619°E\n    test 562 rhumbMidpointo-2.0: 50.898038°N, 002.48782°E\n\n    all 562 testLatLonBase.py tests passed (pygeodesy 26.3.26 Python 3.11.9 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 1.24.2 scipy 1.10.1 Math 2 macOS 26.3.1 isLazy 0 -W  default) 1.623 sec\nrunning /usr/local/bin/p....n3.11 -W default ~/PyGeodesy/test/testLazily.py\n\n    testing testLazily.py 25.12.06\n    test 1 a_b2e: function\n    test 2 a_b2e2: function\n    test 3 a_b2e22: function\n    test 4 a_b2e32: function\n    test 5 a_b2f: function\n    test 6 a_b2f2: function\n    test 7 a_b2f_: function\n    test 8 a_b2n: function\n    test 9 a_f2b: function\n    test 10 a_f2Tuple: class\n    test 11 a_f_2b: function\n    test 12 acos1: function\n    test 13 acre2ha: function\n    test 14 acre2m2: function\n    test 15 ADict: class\n    test 16 Aer: class\n    test 17 Aer4Tuple: class\n    test 18 agdf: function\n    test 19 albers: module\n    test 20 Albers7Tuple: class\n    test 21 AlbersEqualArea: class\n    test 22 AlbersEqualArea2: class\n    test 23 AlbersEqualArea4: class\n    test 24 AlbersEqualAreaCylindrical: class\n    test 25 AlbersEqualAreaNorth: class\n    test 26 AlbersEqualAreaSouth: class\n    test 27 AlbersError: class\n    test 28 Ang: class\n    test 29 angle2chord: function\n    test 30 angles: module\n    test 31 anstr: function\n    test 32 antipode: function\n    test 33 antipode_: function\n    test 34 Area3Tuple: class\n    test 35 areaOf: function\n    test 36 asin1: function\n    test 37 atan1: function\n    test 38 atan1d: function\n    test 39 atan2: class builtin_function_or_method\n    test 40 atan2b: function\n    test 41 atan2d: function\n    test 42 atan2p: function\n    test 43 Attitude: class\n    test 44 Attitude4Tuple: class\n    test 45 AttitudeError: class\n    test 46 attrs: function\n    test 47 AuxError: class\n    test 48 auxilats: module\n    test 49 Azimuth: class\n    test 50 azimuthal: module\n    test 51 Azimuthal7Tuple: class\n    test 52 AzimuthalError: class\n    test 53 b_f2a: function\n    test 54 b_f_2a: function\n    test 55 Band: class\n    test 56 basics: module\n    test 57 Bearing: class\n    test 58 bearing: function\n    test 59 Bearing2Tuple: class\n    test 60 bearing_: function\n    test 61 Bearing_: class\n    test 62 bearingDMS: function\n    test 63 BetaOmega2Tuple: class\n    test 64 BetaOmega3Tuple: class\n    test 65 BetOmgAlp5Tuple: class\n    test 66 BetOmgGam5Tuple: class\n    test 67 Bool: class\n    test 68 BooleanFHP: class\n    test 69 BooleanGH: class\n    test 70 booleans: module\n    test 71 Bounds2Tuple: class\n    test 72 Bounds4Tuple: class\n    test 73 boundsOf: function\n    test 74 bqrt: function\n    test 75 callername: function\n    test 76 Caps: class pygeodesy.karney.Caps\n    test 77 Cartesian5Tuple: class\n    test 78 cartesianBase: module\n    test 79 cassini: function\n    test 80 CassiniSoldner: class\n    test 81 cbrt: function\n    test 82 cbrt2: function\n    test 83 centroidOf: function\n    test 84 chain2m: function\n    test 85 ChLV: class\n    test 86 ChLV9Tuple: class\n    test 87 ChLVa: class\n    test 88 ChLVe: class\n    test 89 ChLVEN2Tuple: class\n    test 90 ChLVyx2Tuple: class\n    test 91 ChLVYX2Tuple: class\n    test 92 chord2angle: function\n    test 93 circin6: function\n    test 94 Circin6Tuple: class\n    test 95 circle4: function\n    test 96 Circle4Tuple: class\n    test 97 circum3: function\n    test 98 Circum3Tuple: class\n    test 99 circum4: function\n    test 100 circum4_: function\n    test 101 Circum4Tuple: class\n    test 102 classname: function\n    test 103 classnaming: function\n    test 104 clipCS4: function\n    test 105 ClipCS4Tuple: class\n    test 106 clipDegrees: function\n    test 107 ClipError: class\n    test 108 clipFHP4: function\n    test 109 ClipFHP4Tuple: class\n    test 110 clipGH4: function\n    test 111 ClipGH4Tuple: class\n    test 112 clipLB6: function\n    test 113 ClipLB6Tuple: class\n    test 114 clipRadians: function\n    test 115 clips: function\n    test 116 clipSH: function\n    test 117 clipSH3: function\n    test 118 ClipSH3Tuple: class\n    test 119 clipy: module\n    test 120 collins5: function\n    test 121 Collins5Tuple: class\n    test 122 compassAngle: function\n    test 123 compassDMS: function\n    test 124 compassPoint: function\n    test 125 Conformal: class\n    test 126 Conformal2Tuple: class\n    test 127 Conformal3: class\n    test 128 Conformal3B: class\n    test 129 Conformal3Sphere: class\n    test 130 Conformal5Tuple: class\n    test 131 ConformalSphere: class\n    test 132 Conic: class\n    test 133 Conics: class pygeodesy.lcc.Conics\n    test 134 constants: module\n    test 135 copysign0: function\n    test 136 copytype: function\n    test 137 cosineLaw: function\n    test 138 cosineLaw_: function\n    test 139 cot: function\n    test 140 cot_: function\n    test 141 cotd: function\n    test 142 cotd_: function\n    test 143 CrossError: class\n    test 144 crosserrors: function\n    test 145 css: module\n    test 146 Css: class\n    test 147 CSSError: class\n    test 148 Curvature2Tuple: class\n    test 149 date2epoch: function\n    test 150 Datum: class\n    test 151 datums: module\n    test 152 Datums: class pygeodesy.datums.Datums\n    test 153 Deg: function\n    test 154 degDMS: function\n    test 155 Degrees: class\n    test 156 degrees: class builtin_function_or_method\n    test 157 degrees180: function\n    test 158 Degrees2: class\n    test 159 degrees2grades: function\n    test 160 degrees2m: function\n    test 161 degrees360: function\n    test 162 degrees90: function\n    test 163 Degrees_: class\n    test 164 deprecated_class: function\n    test 165 deprecated_function: function\n    test 166 deprecated_method: function\n    test 167 deprecated_property_RO: function\n    test 168 deprecated_Property_RO: function\n    test 169 DeprecationWarnings: class pygeodesy.props.DeprecationWarnings\n    test 170 Destination2Tuple: class\n    test 171 Destination3Tuple: class\n    test 172 DIG: int\n    test 173 Direct9Tuple: class\n    test 174 Distance: class\n    test 175 Distance2Tuple: class\n    test 176 Distance3Tuple: class\n    test 177 Distance4Tuple: class\n    test 178 Distance_: class\n    test 179 DivMod2Tuple: class\n    test 180 dms: module\n    test 181 e22f: function\n    test 182 e2f: function\n    test 183 EasNor2Tuple: class\n    test 184 EasNor3Tuple: class\n    test 185 EasNorAziRk4Tuple: class\n    test 186 EasNorAziRkEqu6Tuple: class\n    test 187 EasNorRadius3Tuple: class\n    test 188 Easting: class\n    test 189 ecef: module\n    test 190 Ecef9Tuple: class\n    test 191 EcefError: class\n    test 192 EcefFarrell21: class\n    test 193 EcefFarrell22: class\n    test 194 EcefKarney: class\n    test 195 ecefLocals: module\n    test 196 EcefMatrix: class\n    test 197 EcefSudano: class\n    test 198 EcefUPC: class\n    test 199 EcefVeness: class\n    test 200 EcefYou: class\n    test 201 egmGeoidHeights: function\n    test 202 elevation2: function\n    test 203 Elevation2Tuple: class\n    test 204 elevations: module\n    test 205 Ellipse: class\n    test 206 Ellipse5Tuple: class\n    test 207 EllipseError: class\n    test 208 ellipses: module\n    test 209 Ellipsoid: class\n    test 210 Ellipsoid2: class\n    test 211 ellipsoidalBase: module\n    test 212 ellipsoidalBaseDI: module\n    test 213 ellipsoidalExact: module\n    test 214 ellipsoidalGeodSolve: module\n    test 215 ellipsoidalKarney: module\n    test 216 ellipsoidalNvector: module\n    test 217 ellipsoidalVincenty: module\n    test 218 ellipsoids: module\n    test 219 Ellipsoids: class pygeodesy.ellipsoids.Ellipsoids\n    test 220 Elliptic: class\n    test 221 elliptic: module\n    test 222 Elliptic3Tuple: class\n    test 223 EllipticError: class\n    test 224 enstr2: function\n    test 225 Enu: class\n    test 226 Enu4Tuple: class\n    test 227 Epoch: class\n    test 228 epoch2date: function\n    test 229 EPS: float\n    test 230 EPS0: float\n    test 231 EPS02: float\n    test 232 EPS1: float\n    test 233 EPS2: float\n    test 234 EPS4: float\n    test 235 EPS8: float\n    test 236 EPS_2: float\n    test 237 epsg: module\n    test 238 Epsg: class\n    test 239 EPSGError: class\n    test 240 equidistant: function\n    test 241 Equidistant: class\n    test 242 EquidistantExact: class\n    test 243 EquidistantGeodSolve: class\n    test 244 EquidistantKarney: class\n    test 245 equirectangular: function\n    test 246 equirectangular4: function\n    test 247 errors: module\n    test 248 Etm: class\n    test 249 etm: module\n    test 250 ETMError: class\n    test 251 euclid: function\n    test 252 euclid_: function\n    test 253 euclidean: function\n    test 254 euclidean_: function\n    test 255 ExactTransverseMercator: class\n    test 256 exception_chaining: function\n    test 257 excessAbc_: function\n    test 258 excessCagnoli_: function\n    test 259 excessGirard_: function\n    test 260 excessKarney: function\n    test 261 excessKarney_: function\n    test 262 excessLHuilier_: function\n    test 263 excessQuad: function\n    test 264 excessQuad_: function\n    test 265 f2e2: function\n    test 266 f2e22: function\n    test 267 f2e32: function\n    test 268 f2f2: function\n    test 269 f2f_: function\n    test 270 f2mul_: function\n    test 271 f2n: function\n    test 272 f2product: function\n    test 273 f_2f: function\n    test 274 F__E: str\n    test 275 F__E_: str\n    test 276 F__E__: str\n    test 277 F__F: str\n    test 278 F__F_: str\n    test 279 F__F__: str\n    test 280 F__G: str\n    test 281 F__G_: str\n    test 282 F__G__: str\n    test 283 F_D: str\n    test 284 F_D60: str\n    test 285 F_D60_: str\n    test 286 F_D60__: str\n    test 287 F_D_: str\n    test 288 F_D__: str\n    test 289 F_DEG: str\n    test 290 F_DEG_: str\n    test 291 F_DEG__: str\n    test 292 F_DM: str\n    test 293 F_DM_: str\n    test 294 F_DM__: str\n    test 295 F_DMS: str\n    test 296 F_DMS_: str\n    test 297 F_DMS__: str\n    test 298 F_MIN: str\n    test 299 F_MIN_: str\n    test 300 F_MIN__: str\n    test 301 F_RAD: str\n    test 302 F_RAD_: str\n    test 303 F_RAD__: str\n    test 304 F_SEC: str\n    test 305 F_SEC_: str\n    test 306 F_SEC__: str\n    test 307 facos1: function\n    test 308 fasin1: function\n    test 309 fatan: function\n    test 310 fatan1: function\n    test 311 fatan2: function\n    test 312 fathom2m: function\n    test 313 favg: function\n    test 314 Fcbrt: class\n    test 315 Fcook: class\n    test 316 Fdot: class\n    test 317 fdot: function\n    test 318 fdot3: function\n    test 319 Fdot_: class\n    test 320 fdot_: function\n    test 321 Feet: class\n    test 322 Fhorner: class\n    test 323 fhorner: function\n    test 324 Fhypot: class\n    test 325 fidw: function\n    test 326 FIx: class\n    test 327 flatLocal: function\n    test 328 flatLocal_: function\n    test 329 flatPolar: function\n    test 330 flatPolar_: function\n    test 331 Flinear: class\n    test 332 Float: class\n    test 333 float0_: function\n    test 334 Float_: class\n    test 335 float_: function\n    test 336 floats_: function\n    test 337 fma: function\n    test 338 fmath: module\n    test 339 fmean: function\n    test 340 fmean_: function\n    test 341 Footprint5Tuple: class\n    test 342 formy: module\n    test 343 Forward4Tuple: class\n    test 344 Fpolynomial: class\n    test 345 fpolynomial: function\n    test 346 fpowers: function\n    test 347 Fpowers: class\n    test 348 fprod: class builtin_function_or_method\n    test 349 fractional: function\n    test 350 frandoms: function\n    test 351 frange: function\n    test 352 Frechet: class\n    test 353 frechet: module\n    test 354 Frechet6Tuple: class\n    test 355 frechet_: function\n    test 356 FrechetCosineLaw: class\n    test 357 FrechetDegrees: class\n    test 358 FrechetDistanceTo: class\n    test 359 FrechetEquirectangular: class\n    test 360 FrechetError: class\n    test 361 FrechetEuclidean: class\n    test 362 FrechetExact: class\n    test 363 FrechetFlatLocal: class\n    test 364 FrechetFlatPolar: class\n    test 365 FrechetHaversine: class\n    test 366 FrechetHubeny: class\n    test 367 FrechetKarney: class\n    test 368 FrechetRadians: class\n    test 369 FrechetThomas: class\n    test 370 FrechetVincentys: class\n    test 371 freduce: class builtin_function_or_method\n    test 372 fremainder: function\n    test 373 Froot: class\n    test 374 Frustum: class\n    test 375 Fsqrt: class\n    test 376 fstats: module\n    test 377 fstr: function\n    test 378 fstrzs: function\n    test 379 fsum: function\n    test 380 Fsum: class\n    test 381 fsum1: function\n    test 382 fsum1_: function\n    test 383 fsum1f_: function\n    test 384 Fsum2Tuple: class\n    test 385 fsum_: function\n    test 386 fsumf_: function\n    test 387 fsums: module\n    test 388 ft2m: function\n    test 389 furlong2m: function\n    test 390 Fwelford: class\n    test 391 Garef: class\n    test 392 gars: module\n    test 393 GARSError: class\n    test 394 gdf: function\n    test 395 GDict: class\n    test 396 geod3solve: module\n    test 397 Geod3Solve8Tuple: class\n    test 398 Geodesic: class\n    test 399 Geodesic3Error: class\n    test 400 Geodesic3Solve: class\n    test 401 Geodesic_WGS84: function\n    test 402 GeodesicAreaExact: class\n    test 403 GeodesicError: class\n    test 404 GeodesicExact: class\n    test 405 geodesici: module\n    test 406 GeodesicLine: class\n    test 407 GeodesicLine3Solve: class\n    test 408 GeodesicLineExact: class\n    test 409 GeodesicLineSolve: class\n    test 410 GeodesicSolve: class\n    test 411 geodesicw: module\n    test 412 geodesicx: module\n    test 413 geodsolve: module\n    test 414 GeodSolve12Tuple: class\n    test 415 geohash: module\n    test 416 Geohash: class\n    test 417 Geohashed: class\n    test 418 GeohashError: class\n    test 419 GeoidEGM96: class\n    test 420 GeoidError: class\n    test 421 GeoidG2012B: class\n    test 422 geoidHeight2: function\n    test 423 GeoidHeight2Tuple: class\n    test 424 GeoidHeight5Tuple: class\n    test 425 GeoidKarney: class\n    test 426 GeoidPGM: class\n    test 427 geoids: module\n    test 428 Georef: class\n    test 429 Gnomonic: class\n    test 430 gnomonic: function\n    test 431 GnomonicExact: class\n    test 432 GnomonicGeodSolve: class\n    test 433 GnomonicKarney: class\n    test 434 grades: function\n    test 435 grades2degrees: function\n    test 436 grades2radians: function\n    test 437 grades400: function\n    test 438 gx: module\n    test 439 gxarea: module\n    test 440 gxbases: module\n    test 441 gxline: module\n    test 442 ha2acre: function\n    test 443 ha2m2: function\n    test 444 halfs2: function\n    test 445 hartzell: function\n    test 446 hartzell4: function\n    test 447 hausdorff: module\n    test 448 Hausdorff: class\n    test 449 Hausdorff6Tuple: class\n    test 450 hausdorff_: function\n    test 451 HausdorffCosineLaw: class\n    test 452 HausdorffDegrees: class\n    test 453 HausdorffDistanceTo: class\n    test 454 HausdorffEquirectangular: class\n    test 455 HausdorffError: class\n    test 456 HausdorffEuclidean: class\n    test 457 HausdorffExact: class\n    test 458 HausdorffFlatLocal: class\n    test 459 HausdorffFlatPolar: class\n    test 460 HausdorffHaversine: class\n    test 461 HausdorffHubeny: class\n    test 462 HausdorffKarney: class\n    test 463 HausdorffRadians: class\n    test 464 HausdorffThomas: class\n    test 465 HausdorffVincentys: class\n    test 466 hav: function\n    test 467 haversine: function\n    test 468 haversine_: function\n    test 469 Height: class\n    test 470 height4: function\n    test 471 Height_: class\n    test 472 HeightCubic: class\n    test 473 HeightError: class\n    test 474 HeightIDWcosineLaw: class\n    test 475 HeightIDWdistanceTo: class\n    test 476 HeightIDWequirectangular: class\n    test 477 HeightIDWeuclidean: class\n    test 478 HeightIDWexact: class\n    test 479 HeightIDWflatLocal: class\n    test 480 HeightIDWflatPolar: class\n    test 481 HeightIDWhaversine: class\n    test 482 HeightIDWhubeny: class\n    test 483 HeightIDWkarney: class\n    test 484 HeightIDWthomas: class\n    test 485 HeightIDWvincentys: class\n    test 486 HeightLinear: class\n    test 487 HeightLSQBiSpline: class\n    test 488 heightOf: function\n    test 489 heightOrthometric: function\n    test 490 heights: module\n    test 491 HeightSmoothBiSpline: class\n    test 492 HeightX: class\n    test 493 horizon: function\n    test 494 hstr: function\n    test 495 hubeny: function\n    test 496 hubeny_: function\n    test 497 hypot: class builtin_function_or_method\n    test 498 hypot1: function\n    test 499 hypot2: function\n    test 500 hypot2_: function\n    test 501 hypot_: class builtin_function_or_method\n    test 502 INF: float\n    test 503 instr: function\n    test 504 Int: class\n    test 505 INT0: int\n    test 506 int1s: function\n    test 507 Int_: class\n    test 508 internals: module\n    test 509 interns: module\n    test 510 Intersect7Tuple: class\n    test 511 intersection2: function\n    test 512 intersection3d3: function\n    test 513 Intersection3Tuple: class\n    test 514 IntersectionError: class\n    test 515 intersections2: function\n    test 516 Intersectool: class\n    test 517 Intersectool5Tuple: class\n    test 518 Intersector: class\n    test 519 Intersector5Tuple: class\n    test 520 Inverse10Tuple: class\n    test 521 isAng: function\n    test 522 isantipode: function\n    test 523 isantipode_: function\n    test 524 isbool: function\n    test 525 isBoolean: function\n    test 526 isCartesian: function\n    test 527 isclass: function\n    test 528 isclockwise: function\n    test 529 isclose: function\n    test 530 iscolinearWith: function\n    test 531 iscomplex: function\n    test 532 isconvex: function\n    test 533 isconvex_: function\n    test 534 isDEPRECATED: function\n    test 535 isenclosedBy: function\n    test 536 isError: function\n    test 537 isfinite: function\n    test 538 isfloat: function\n    test 539 isidentifier: class method_descriptor\n    test 540 isinf: class builtin_function_or_method\n    test 541 isinstanceof: function\n    test 542 isint: function\n    test 543 isint0: function\n    test 544 isiterable: function\n    test 545 isiterablen: function\n    test 546 isiterabletype: function\n    test 547 iskeyword: class builtin_function_or_method\n    test 548 isLatLon: function\n    test 549 isLazy: int\n    test 550 islistuple: function\n    test 551 isnan: class builtin_function_or_method\n    test 552 isnear0: function\n    test 553 isnear1: function\n    test 554 isnear90: function\n    test 555 isneg: function\n    test 556 isneg0: function\n    test 557 isninf: function\n    test 558 isnon0: function\n    test 559 isnormal: function\n    test 560 isnormal_: function\n    test 561 isNumpy2: function\n    test 562 isNvector: function\n    test 563 isodd: function\n    test 564 isPoints2: function\n    test 565 ispolar: function\n    test 566 isscalar: function\n    test 567 issequence: function\n    test 568 isstr: function\n    test 569 issubclassof: function\n    test 570 isTuple2: function\n    test 571 itemsorted: function\n    test 572 iterNumpy2: function\n    test 573 iterNumpy2over: function\n    test 574 iters: module\n    test 575 karney: module\n    test 576 km2m: function\n    test 577 ktm: module\n    test 578 KTMError: class\n    test 579 KTransverseMercator: class\n    test 580 Lam: class\n    test 581 LambertEqualArea: class\n    test 582 Lambertian: class\n    test 583 Lamd: class\n    test 584 Lat: class\n    test 585 Lat_: class\n    test 586 latDMS: function\n    test 587 latlon2n_xyz: function\n    test 588 LatLon2psxy: class\n    test 589 LatLon2PsxyIter: class\n    test 590 LatLon2Tuple: class\n    test 591 LatLon3Tuple: class\n    test 592 LatLon4Tuple: class\n    test 593 LatLon_: class\n    test 594 LatLonAziRk4Tuple: class\n    test 595 latlonBase: module\n    test 596 LatLonDatum3Tuple: class\n    test 597 LatLonDatum5Tuple: class\n    test 598 latlonDMS: function\n    test 599 latlonDMS_: function\n    test 600 LatLonFHP: class\n    test 601 LatLonGH: class\n    test 602 LatLonPrec3Tuple: class\n    test 603 LatLonPrec5Tuple: class\n    test 604 lazily: module\n    test 605 LazyAttributeError: class\n    test 606 LazyImportError: class\n    test 607 lcc: module\n    test 608 Lcc: class\n    test 609 LCCError: class\n    test 610 len2: function\n    test 611 LenError: class\n    test 612 LimitError: class\n    test 613 limiterrors: function\n    test 614 LLK: class pygeodesy.triaxials.bases.LLK\n    test 615 Local9Tuple: class\n    test 616 LocalCartesian: class\n    test 617 LocalError: class\n    test 618 Lon: class\n    test 619 Lon_: class\n    test 620 lonDMS: function\n    test 621 Los: class\n    test 622 lrstrip: function\n    test 623 Ltp: class\n    test 624 ltp: module\n    test 625 ltpTuples: module\n    test 626 luneOf: function\n    test 627 m2acre: function\n    test 628 m2chain: function\n    test 629 m2degrees: function\n    test 630 m2fathom: function\n    test 631 m2ft: function\n    test 632 m2furlong: function\n    test 633 m2ha: function\n    test 634 m2km: function\n    test 635 m2NM: function\n    test 636 m2radians: function\n    test 637 m2SM: function\n    test 638 m2toise: function\n    test 639 m2yard: function\n    test 640 machine: function\n    test 641 MANT_DIG: int\n    test 642 map1: function\n    test 643 map2: function\n    test 644 MAX: float\n    test 645 max2: function\n    test 646 MAX_EXP: int\n    test 647 meeus2: function\n    test 648 Meeus2Tuple: class\n    test 649 Meter: class\n    test 650 Meter2: class\n    test 651 Meter3: class\n    test 652 Meter_: class\n    test 653 Mgrs: class\n    test 654 mgrs: module\n    test 655 Mgrs4Tuple: class\n    test 656 Mgrs6Tuple: class\n    test 657 MGRSError: class\n    test 658 Middle5Tuple: class\n    test 659 MIN: float\n    test 660 min2: function\n    test 661 MIN_EXP: int\n    test 662 modulename: function\n    test 663 n2e2: function\n    test 664 n2f: function\n    test 665 n2f_: function\n    test 666 n_xyz2latlon: function\n    test 667 n_xyz2philam: function\n    test 668 named: module\n    test 669 namedTuples: module\n    test 670 nameof: function\n    test 671 NAN: float\n    test 672 nearestOn: function\n    test 673 NearestOn2Tuple: class\n    test 674 NearestOn3Tuple: class\n    test 675 nearestOn5: function\n    test 676 nearestOn6: function\n    test 677 NearestOn6Tuple: class\n    test 678 NearestOn8Tuple: class\n    test 679 Ned: class\n    test 680 Ned4Tuple: class\n    test 681 neg: function\n    test 682 NEG0: float\n    test 683 neg_: function\n    test 684 Neighbors8Dict: class\n    test 685 NINF: float\n    test 686 NM2m: function\n    test 687 NN: str\n    test 688 nonfiniterrors: function\n    test 689 norm2: function\n    test 690 norm_: function\n    test 691 normal: function\n    test 692 normal_: function\n    test 693 normDMS: function\n    test 694 Northing: class\n    test 695 NorthPole: class pygeodesy.nvectorBase._N_Vector\n    test 696 notImplemented: function\n    test 697 notOverloaded: function\n    test 698 Number_: class\n    test 699 Numpy2LatLon: class\n    test 700 NumPyError: class\n    test 701 nvectorBase: module\n    test 702 opposing: function\n    test 703 opposing_: function\n    test 704 Orthographic: class\n    test 705 Osgr: class\n    test 706 osgr: module\n    test 707 OSGRError: class\n    test 708 OVERFLOW: float\n    test 709 pairs: function\n    test 710 parse3d: function\n    test 711 parse3llh: function\n    test 712 parseDDDMMSS: function\n    test 713 parseDMS: function\n    test 714 parseDMS2: function\n    test 715 ParseError: class\n    test 716 parseETM5: function\n    test 717 parseMGRS: function\n    test 718 parseOSGR: function\n    test 719 parseRad: function\n    test 720 parseUPS5: function\n    test 721 parseUTM5: function\n    test 722 parseUTMUPS5: function\n    test 723 parseWM: function\n    test 724 perimeterOf: function\n    test 725 PGMError: class\n    test 726 Phi: class\n    test 727 Phid: class\n    test 728 philam2n_xyz: function\n    test 729 PhiLam2Tuple: class\n    test 730 PhiLam3Tuple: class\n    test 731 PhiLam4Tuple: class\n    test 732 PhiLamZet5Tuple: class\n    test 733 PI: float\n    test 734 PI2: float\n    test 735 PI3: float\n    test 736 PI3_2: float\n    test 737 PI4: float\n    test 738 PI_2: float\n    test 739 PI_3: float\n    test 740 PI_4: float\n    test 741 PI_6: float\n    test 742 pierlot: function\n    test 743 pierlotx: function\n    test 744 Point3Tuple: class\n    test 745 points: module\n    test 746 points2: function\n    test 747 Points2Tuple: class\n    test 748 PointsError: class\n    test 749 PointsIter: class\n    test 750 polar2: function\n    test 751 polar2d: function\n    test 752 PolygonArea: class\n    test 753 precision: function\n    test 754 Precision_: class\n    test 755 print_: function\n    test 756 printf: function\n    test 757 Property: class\n    test 758 property_doc_: function\n    test 759 Property_RO: class\n    test 760 property_RO: class\n    test 761 property_ROnce: class\n    test 762 property_ROver: class\n    test 763 props: module\n    test 764 pygeodesy_abspath: str\n    test 765 quadOf: function\n    test 766 R_FM: float\n    test 767 R_GM: float\n    test 768 R_KM: float\n    test 769 R_M: float\n    test 770 R_MA: float\n    test 771 R_MB: float\n    test 772 R_NM: float\n    test 773 R_QM: float\n    test 774 R_SM: float\n    test 775 R_VM: float\n    test 776 Rad: function\n    test 777 Radians: class\n    test 778 radians: class builtin_function_or_method\n    test 779 Radians2: class\n    test 780 radians2m: function\n    test 781 Radians_: class\n    test 782 radiansPI: function\n    test 783 radiansPI2: function\n    test 784 radiansPI_2: function\n    test 785 radical2: function\n    test 786 Radical2Tuple: class\n    test 787 radii11: function\n    test 788 Radii11Tuple: class\n    test 789 Radius: class\n    test 790 Radius_: class\n    test 791 RadiusThetaPhi3Tuple: class\n    test 792 randomrangenerator: function\n    test 793 RangeError: class\n    test 794 rangerrors: function\n    test 795 RefFrame: class\n    test 796 RefFrames: class pygeodesy.trf.RefFrames\n    test 797 remainder: class builtin_function_or_method\n    test 798 reprs: function\n    test 799 ResectionError: class\n    test 800 resections: module\n    test 801 ResidualError: class\n    test 802 Resolutions2Tuple: class\n    test 803 Reverse4Tuple: class\n    test 804 rhumb: module\n    test 805 Rhumb: class\n    test 806 Rhumb8Tuple: class\n    test 807 RhumbAux: class\n    test 808 RhumbError: class\n    test 809 RhumbLine: class\n    test 810 RhumbLineAux: class\n    test 811 RhumbLineSolve: class\n    test 812 RhumbSolve: class\n    test 813 RhumbSolve7Tuple: class\n    test 814 rtp2xyz: function\n    test 815 rtp2xyz_: function\n    test 816 S_DEG: str\n    test 817 S_DMS: int\n    test 818 S_MIN: str\n    test 819 S_RAD: str\n    test 820 S_SEC: str\n    test 821 S_SEP: str\n    test 822 Scalar: class\n    test 823 Scalar_: class\n    test 824 SciPyError: class\n    test 825 SciPyWarning: class\n    test 826 Shape2Tuple: class\n    test 827 signBit: function\n    test 828 signOf: function\n    test 829 simplify: module\n    test 830 simplify1: function\n    test 831 simplifyRDP: function\n    test 832 simplifyRW: function\n    test 833 simplifyVW: function\n    test 834 SinCos2: function\n    test 835 sincos2: function\n    test 836 sincos2_: function\n    test 837 sincos2d: function\n    test 838 sincos2d_: function\n    test 839 sincostan3: function\n    test 840 sincostan3d: function\n    test 841 Sizes3Tuple: class\n    test 842 SM2m: function\n    test 843 snellius3: function\n    test 844 soddy4: function\n    test 845 Soddy4Tuple: class\n    test 846 solveBase: module\n    test 847 SouthPole: class pygeodesy.nvectorBase._N_Vector\n    test 848 sphericalBase: module\n    test 849 sphericalNvector: module\n    test 850 sphericalTrigonometry: module\n    test 851 splice: function\n    test 852 sqrt0: function\n    test 853 sqrt3: function\n    test 854 sqrt_a: function\n    test 855 Stereographic: class\n    test 856 Str: class\n    test 857 str2ub: function\n    test 858 Str_: class\n    test 859 streprs: module\n    test 860 strs: function\n    test 861 Survey3Tuple: class\n    test 862 tan: function\n    test 863 tan_: function\n    test 864 tan_2: function\n    test 865 tand: function\n    test 866 tand_: function\n    test 867 tanPI_2_2: function\n    test 868 thomas: function\n    test 869 thomas_: function\n    test 870 tienstra7: function\n    test 871 Tienstra7Tuple: class\n    test 872 toCss: function\n    test 873 toDMS: function\n    test 874 toEtm8: function\n    test 875 toise2m: function\n    test 876 toLcc: function\n    test 877 toMgrs: function\n    test 878 toOsgr: function\n    test 879 toUps8: function\n    test 880 toUtm8: function\n    test 881 toUtmUps8: function\n    test 882 toWm: function\n    test 883 Transform: class\n    test 884 Transforms: class pygeodesy.datums.Transforms\n    test 885 TransformXform: class\n    test 886 trf: module\n    test 887 TRFError: class\n    test 888 trfTransform0: function\n    test 889 trfTransforms: function\n    test 890 TRFXform: class\n    test 891 trfXform: function\n    test 892 TRFXform7Tuple: class\n    test 893 triAngle: function\n    test 894 triAngle5: function\n    test 895 TriAngle5Tuple: class\n    test 896 Triangle7Tuple: class\n    test 897 Triangle8Tuple: class\n    test 898 TriangleError: class\n    test 899 triArea: function\n    test 900 Triaxial: class\n    test 901 Triaxial3: class\n    test 902 Triaxial3B: class\n    test 903 Triaxial3s: class pygeodesy.triaxials.triaxial3.Triaxial3s\n    test 904 Triaxial_: class\n    test 905 TriaxialError: class\n    test 906 Triaxials: class pygeodesy.triaxials.triaxial5.Triaxials\n    test 907 triaxials: module\n    test 908 triaxum5: function\n    test 909 Triaxum5Tuple: class\n    test 910 trilaterate2d2: function\n    test 911 trilaterate3d2: function\n    test 912 Trilaterate5Tuple: class\n    test 913 triSide: function\n    test 914 triSide2: function\n    test 915 TriSide2Tuple: class\n    test 916 triSide4: function\n    test 917 TriSide4Tuple: class\n    test 918 truncate: function\n    test 919 Tuple2LatLon: class\n    test 920 typename: function\n    test 921 tyr3d: function\n    test 922 ub2str: function\n    test 923 UnitError: class\n    test 924 units: module\n    test 925 unitsBase: module\n    test 926 unroll180: function\n    test 927 unrollPI: function\n    test 928 unsigned0: function\n    test 929 unstr: function\n    test 930 Ups: class\n    test 931 ups: module\n    test 932 UPSError: class\n    test 933 upsZoneBand5: function\n    test 934 utily: module\n    test 935 utm: module\n    test 936 Utm: class\n    test 937 UTMError: class\n    test 938 UtmUps: function\n    test 939 utmups: module\n    test 940 UtmUps2Tuple: class\n    test 941 UtmUps5Tuple: class\n    test 942 UtmUps8Tuple: class\n    test 943 utmupsBase: module\n    test 944 UTMUPSError: class\n    test 945 UtmUpsLatLon5Tuple: class\n    test 946 utmupsValidate: function\n    test 947 utmupsValidateOK: function\n    test 948 utmupsZoneBand5: function\n    test 949 utmZoneBand5: function\n    test 950 Uvw: class\n    test 951 Uvw3Tuple: class\n    test 952 vector2d: module\n    test 953 Vector2Tuple: class\n    test 954 vector3d: module\n    test 955 Vector3d: class\n    test 956 vector3dBase: module\n    test 957 Vector3Tuple: class\n    test 958 Vector4Tuple: class\n    test 959 VectorError: class\n    test 960 version: str\n    test 961 VincentyError: class\n    test 962 vincentys: function\n    test 963 vincentys_: function\n    test 964 webmercator: module\n    test 965 WebMercatorError: class\n    test 966 wgrs: module\n    test 967 WGRSError: class\n    test 968 wildberger3: function\n    test 969 Wm: class\n    test 970 wrap180: function\n    test 971 wrap360: function\n    test 972 wrap90: function\n    test 973 wrap_normal: function\n    test 974 wrapPI: function\n    test 975 wrapPI2: function\n    test 976 wrapPI_2: function\n    test 977 XDict: class\n    test 978 xyz2rtp: function\n    test 979 xyz2rtp_: function\n    test 980 Xyz4Tuple: class\n    test 981 XyzLocal: class\n    test 982 yard2m: function\n    test 983 zcrt: function\n    test 984 Zone: class\n    test 985 zqrt: function\n\n    test 986 isLazy: 0\n    test 987 missing in lazily._all_imports: None\n    test 988 missing in pygeodesy.__all__: rhumb.aux_, rhumb.ekx, rhumb.solve, triaxials.bases, triaxials.conformal3, triaxials.triaxial3, triaxials.triaxial5  FAILED, KNOWN, expected None\n\n    test 989 cmd: /usr/local/bin/python3.11 -c 'import sys; import pygeodesy; sys.exit(0 if pygeodesy.isLazy == %s else 1)'\n    test 990 PYGEODESY_LAZY_IMPORT=0: 0\n    test 991 PYGEODESY_LAZY_IMPORT=1: 0\n    test 992 PYGEODESY_LAZY_IMPORT=2: 0\n    test 993 PYGEODESY_LAZY_IMPORT=3: 0\n    test 994 PYGEODESY_LAZY_IMPORT=4: 0\n\n    test 995 items: _ALL_MODS\n    test 996 pygeodesy: <module 'pygeodesy' from './pygeodesy/__init__.py'>\n    test 997 pygeodesy.albers: <module 'pygeodesy.albers' from './pygeodesy/albers.py'>\n    test 998 pygeodesy.angles: <module 'pygeodesy.angles' from './pygeodesy/angles.py'>\n    test 999 pygeodesy.auxilats: <module 'pygeodesy.auxilats' from './pygeodesy/auxilats/__init__.py'>\n    test 1000 pygeodesy.auxilats._CX_Rs: <module 'pygeodesy.auxilats._CX_Rs' from './pygeodesy/auxilats/_CX_Rs.py'>\n    test 1001 pygeodesy.auxilats.auxAngle: <module 'pygeodesy.auxilats.auxAngle' from './pygeodesy/auxilats/auxAngle.py'>\n    test 1002 pygeodesy.auxilats.auxDLat: <module 'pygeodesy.auxilats.auxDLat' from './pygeodesy/auxilats/auxDLat.py'>\n    test 1003 pygeodesy.auxilats.auxDST: <module 'pygeodesy.auxilats.auxDST' from './pygeodesy/auxilats/auxDST.py'>\n    test 1004 pygeodesy.auxilats.auxLat: <module 'pygeodesy.auxilats.auxLat' from './pygeodesy/auxilats/auxLat.py'>\n    test 1005 pygeodesy.auxilats.auxily: <module 'pygeodesy.auxilats.auxily' from './pygeodesy/auxilats/auxily.py'>\n    test 1006 pygeodesy.azimuthal: <module 'pygeodesy.azimuthal' from './pygeodesy/azimuthal.py'>\n    test 1007 pygeodesy.basics: <module 'pygeodesy.basics' from './pygeodesy/basics.py'>\n    test 1008 pygeodesy.booleans: <module 'pygeodesy.booleans' from './pygeodesy/booleans.py'>\n    test 1009 pygeodesy.cartesianBase: <module 'pygeodesy.cartesianBase' from './pygeodesy/cartesianBase.py'>\n    test 1010 pygeodesy.clipy: <module 'pygeodesy.clipy' from './pygeodesy/clipy.py'>\n    test 1011 pygeodesy.constants: <module 'pygeodesy.constants' from './pygeodesy/constants.py'>\n    test 1012 pygeodesy.css: <module 'pygeodesy.css' from './pygeodesy/css.py'>\n    test 1013 pygeodesy.datums: <module 'pygeodesy.datums' from './pygeodesy/datums.py'>\n    test 1014 pygeodesy.deprecated: <module 'pygeodesy.deprecated' from './pygeodesy/deprecated/__init__.py'>\n    test 1015 pygeodesy.deprecated.bases: <module 'pygeodesy.deprecated.bases' from './pygeodesy/deprecated/bases.py'>\n    test 1016 pygeodesy.deprecated.classes: <module 'pygeodesy.deprecated.classes' from './pygeodesy/deprecated/classes.py'>\n    test 1017 pygeodesy.deprecated.consterns: <module 'pygeodesy.deprecated.consterns' from './pygeodesy/deprecated/consterns.py'>\n    test 1018 pygeodesy.deprecated.datum: <module 'pygeodesy.deprecated.datum' from './pygeodesy/deprecated/datum.py'>\n    test 1019 pygeodesy.deprecated.functions: <module 'pygeodesy.deprecated.functions' from './pygeodesy/deprecated/functions.py'>\n    test 1020 pygeodesy.deprecated.nvector: <module 'pygeodesy.deprecated.nvector' from './pygeodesy/deprecated/nvector.py'>\n    test 1021 pygeodesy.deprecated.rhumbBase: <module 'pygeodesy.deprecated.rhumbBase' from './pygeodesy/deprecated/rhumbBase.py'>\n    test 1022 pygeodesy.deprecated.rhumbaux: <module 'pygeodesy.deprecated.rhumbaux' from './pygeodesy/deprecated/rhumbaux.py'>\n    test 1023 pygeodesy.deprecated.rhumbsolve: <module 'pygeodesy.deprecated.rhumbsolve' from './pygeodesy/deprecated/rhumbsolve.py'>\n    test 1024 pygeodesy.deprecated.rhumbx: <module 'pygeodesy.deprecated.rhumbx' from './pygeodesy/deprecated/rhumbx.py'>\n    test 1025 pygeodesy.dms: <module 'pygeodesy.dms' from './pygeodesy/dms.py'>\n    test 1026 pygeodesy.ecef: <module 'pygeodesy.ecef' from './pygeodesy/ecef.py'>\n    test 1027 pygeodesy.ecefLocals: <module 'pygeodesy.ecefLocals' from './pygeodesy/ecefLocals.py'>\n    test 1028 pygeodesy.elevations: <module 'pygeodesy.elevations' from './pygeodesy/elevations.py'>\n    test 1029 pygeodesy.ellipses: <module 'pygeodesy.ellipses' from './pygeodesy/ellipses.py'>\n    test 1030 pygeodesy.ellipsoidalBase: <module 'pygeodesy.ellipsoidalBase' from './pygeodesy/ellipsoidalBase.py'>\n    test 1031 pygeodesy.ellipsoidalBaseDI: <module 'pygeodesy.ellipsoidalBaseDI' from './pygeodesy/ellipsoidalBaseDI.py'>\n    test 1032 pygeodesy.ellipsoidalExact: <module 'pygeodesy.ellipsoidalExact' from './pygeodesy/ellipsoidalExact.py'>\n    test 1033 pygeodesy.ellipsoidalGeodSolve: <module 'pygeodesy.ellipsoidalGeodSolve' from './pygeodesy/ellipsoidalGeodSolve.py'>\n    test 1034 pygeodesy.ellipsoidalKarney: <module 'pygeodesy.ellipsoidalKarney' from './pygeodesy/ellipsoidalKarney.py'>\n    test 1035 pygeodesy.ellipsoidalNvector: <module 'pygeodesy.ellipsoidalNvector' from './pygeodesy/ellipsoidalNvector.py'>\n    test 1036 pygeodesy.ellipsoidalVincenty: <module 'pygeodesy.ellipsoidalVincenty' from './pygeodesy/ellipsoidalVincenty.py'>\n    test 1037 pygeodesy.ellipsoids: <module 'pygeodesy.ellipsoids' from './pygeodesy/ellipsoids.py'>\n    test 1038 pygeodesy.elliptic: <module 'pygeodesy.elliptic' from './pygeodesy/elliptic.py'>\n    test 1039 pygeodesy.epsg: <module 'pygeodesy.epsg' from './pygeodesy/epsg.py'>\n    test 1040 pygeodesy.errors: <module 'pygeodesy.errors' from './pygeodesy/errors.py'>\n    test 1041 pygeodesy.etm: <module 'pygeodesy.etm' from './pygeodesy/etm.py'>\n    test 1042 pygeodesy.fmath: <module 'pygeodesy.fmath' from './pygeodesy/fmath.py'>\n    test 1043 pygeodesy.formy: <module 'pygeodesy.formy' from './pygeodesy/formy.py'>\n    test 1044 pygeodesy.frechet: <module 'pygeodesy.frechet' from './pygeodesy/frechet.py'>\n    test 1045 pygeodesy.fstats: <module 'pygeodesy.fstats' from './pygeodesy/fstats.py'>\n    test 1046 pygeodesy.fsums: <module 'pygeodesy.fsums' from './pygeodesy/fsums.py'>\n    test 1047 pygeodesy.gars: <module 'pygeodesy.gars' from './pygeodesy/gars.py'>\n    test 1048 pygeodesy.geod3solve: <module 'pygeodesy.geod3solve' from './pygeodesy/geod3solve.py'>\n    test 1049 pygeodesy.geodesici: <module 'pygeodesy.geodesici' from './pygeodesy/geodesici.py'>\n    test 1050 pygeodesy.geodesicw: <module 'pygeodesy.geodesicw' from './pygeodesy/geodesicw.py'>\n    test 1051 pygeodesy.geodesicx: <module 'pygeodesy.geodesicx' from './pygeodesy/geodesicx/__init__.py'>\n    test 1052 pygeodesy.geodesicx.gx: <module 'pygeodesy.geodesicx.gx' from './pygeodesy/geodesicx/gx.py'>\n    test 1053 pygeodesy.geodesicx.gxarea: <module 'pygeodesy.geodesicx.gxarea' from './pygeodesy/geodesicx/gxarea.py'>\n    test 1054 pygeodesy.geodesicx.gxbases: <module 'pygeodesy.geodesicx.gxbases' from './pygeodesy/geodesicx/gxbases.py'>\n    test 1055 pygeodesy.geodesicx.gxline: <module 'pygeodesy.geodesicx.gxline' from './pygeodesy/geodesicx/gxline.py'>\n    test 1056 pygeodesy.geodsolve: <module 'pygeodesy.geodsolve' from './pygeodesy/geodsolve.py'>\n    test 1057 pygeodesy.geohash: <module 'pygeodesy.geohash' from './pygeodesy/geohash.py'>\n    test 1058 pygeodesy.geoids: <module 'pygeodesy.geoids' from './pygeodesy/geoids.py'>\n    test 1059 pygeodesy.hausdorff: <module 'pygeodesy.hausdorff' from './pygeodesy/hausdorff.py'>\n    test 1060 pygeodesy.heights: <module 'pygeodesy.heights' from './pygeodesy/heights.py'>\n    test 1061 pygeodesy.internals: <module 'pygeodesy.internals' from './pygeodesy/internals.py'>\n    test 1062 pygeodesy.interns: <module 'pygeodesy.interns' from './pygeodesy/interns.py'>\n    test 1063 pygeodesy.iters: <module 'pygeodesy.iters' from './pygeodesy/iters.py'>\n    test 1064 pygeodesy.karney: <module 'pygeodesy.karney' from './pygeodesy/karney.py'>\n    test 1065 pygeodesy.ktm: <module 'pygeodesy.ktm' from './pygeodesy/ktm.py'>\n    test 1066 pygeodesy.latlonBase: <module 'pygeodesy.latlonBase' from './pygeodesy/latlonBase.py'>\n    test 1067 pygeodesy.lazily: <module 'pygeodesy.lazily' from './pygeodesy/lazily.py'>\n    test 1068 pygeodesy.lcc: <module 'pygeodesy.lcc' from './pygeodesy/lcc.py'>\n    test 1069 pygeodesy.ltp: <module 'pygeodesy.ltp' from './pygeodesy/ltp.py'>\n    test 1070 pygeodesy.ltpTuples: <module 'pygeodesy.ltpTuples' from './pygeodesy/ltpTuples.py'>\n    test 1071 pygeodesy.mgrs: <module 'pygeodesy.mgrs' from './pygeodesy/mgrs.py'>\n    test 1072 pygeodesy.named: <module 'pygeodesy.named' from './pygeodesy/named.py'>\n    test 1073 pygeodesy.namedTuples: <module 'pygeodesy.namedTuples' from './pygeodesy/namedTuples.py'>\n    test 1074 pygeodesy.nvectorBase: <module 'pygeodesy.nvectorBase' from './pygeodesy/nvectorBase.py'>\n    test 1075 pygeodesy.osgr: <module 'pygeodesy.osgr' from './pygeodesy/osgr.py'>\n    test 1076 pygeodesy.points: <module 'pygeodesy.points' from './pygeodesy/points.py'>\n    test 1077 pygeodesy.props: <module 'pygeodesy.props' from './pygeodesy/props.py'>\n    test 1078 pygeodesy.resections: <module 'pygeodesy.resections' from './pygeodesy/resections.py'>\n    test 1079 pygeodesy.rhumb: <module 'pygeodesy.rhumb' from './pygeodesy/rhumb/__init__.py'>\n    test 1080 pygeodesy.rhumb.aux_: <module 'pygeodesy.rhumb.aux_' from './pygeodesy/rhumb/aux_.py'>\n    test 1081 pygeodesy.rhumb.bases: <module 'pygeodesy.rhumb.bases' from './pygeodesy/rhumb/bases.py'>\n    test 1082 pygeodesy.rhumb.ekx: <module 'pygeodesy.rhumb.ekx' from './pygeodesy/rhumb/ekx.py'>\n    test 1083 pygeodesy.rhumb.solve: <module 'pygeodesy.rhumb.solve' from './pygeodesy/rhumb/solve.py'>\n    test 1084 pygeodesy.simplify: <module 'pygeodesy.simplify' from './pygeodesy/simplify.py'>\n    test 1085 pygeodesy.solveBase: <module 'pygeodesy.solveBase' from './pygeodesy/solveBase.py'>\n    test 1086 pygeodesy.sphericalBase: <module 'pygeodesy.sphericalBase' from './pygeodesy/sphericalBase.py'>\n    test 1087 pygeodesy.sphericalNvector: <module 'pygeodesy.sphericalNvector' from './pygeodesy/sphericalNvector.py'>\n    test 1088 pygeodesy.sphericalTrigonometry: <module 'pygeodesy.sphericalTrigonometry' from './pygeodesy/sphericalTrigonometry.py'>\n    test 1089 pygeodesy.streprs: <module 'pygeodesy.streprs' from './pygeodesy/streprs.py'>\n    test 1090 pygeodesy.trf: <module 'pygeodesy.trf' from './pygeodesy/trf.py'>\n    test 1091 pygeodesy.triaxials: <module 'pygeodesy.triaxials' from './pygeodesy/triaxials/__init__.py'>\n    test 1092 pygeodesy.triaxials.bases: <module 'pygeodesy.triaxials.bases' from './pygeodesy/triaxials/bases.py'>\n    test 1093 pygeodesy.triaxials.conformal3: <module 'pygeodesy.triaxials.conformal3' from './pygeodesy/triaxials/conformal3.py'>\n    test 1094 pygeodesy.triaxials.triaxial3: <module 'pygeodesy.triaxials.triaxial3' from './pygeodesy/triaxials/triaxial3.py'>\n    test 1095 pygeodesy.triaxials.triaxial5: <module 'pygeodesy.triaxials.triaxial5' from './pygeodesy/triaxials/triaxial5.py'>\n    test 1096 pygeodesy.units: <module 'pygeodesy.units' from './pygeodesy/units.py'>\n    test 1097 pygeodesy.unitsBase: <module 'pygeodesy.unitsBase' from './pygeodesy/unitsBase.py'>\n    test 1098 pygeodesy.ups: <module 'pygeodesy.ups' from './pygeodesy/ups.py'>\n    test 1099 pygeodesy.utily: <module 'pygeodesy.utily' from './pygeodesy/utily.py'>\n    test 1100 pygeodesy.utm: <module 'pygeodesy.utm' from './pygeodesy/utm.py'>\n    test 1101 pygeodesy.utmups: <module 'pygeodesy.utmups' from './pygeodesy/utmups.py'>\n    test 1102 pygeodesy.utmupsBase: <module 'pygeodesy.utmupsBase' from './pygeodesy/utmupsBase.py'>\n    test 1103 pygeodesy.vector2d: <module 'pygeodesy.vector2d' from './pygeodesy/vector2d.py'>\n    test 1104 pygeodesy.vector3d: <module 'pygeodesy.vector3d' from './pygeodesy/vector3d.py'>\n    test 1105 pygeodesy.vector3dBase: <module 'pygeodesy.vector3dBase' from './pygeodesy/vector3dBase.py'>\n    test 1106 pygeodesy.webmercator: <module 'pygeodesy.webmercator' from './pygeodesy/webmercator.py'>\n    test 1107 pygeodesy.wgrs: <module 'pygeodesy.wgrs' from './pygeodesy/wgrs.py'>\n\n    1 of 1107 testLazily.py tests (0.1%) FAILED, ALL KNOWN (pygeodesy 26.3.26 Python 3.11.9 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 1.24.2 scipy 1.10.1 Math 2 macOS 26.3.1 isLazy 0 -W  default) 160.643 ms\nrunning /usr/local/bin/p....n3.11 -W default ~/PyGeodesy/test/testLcc.py\n\n    testing testLcc.py 23.03.27 (module pygeodesy.lcc 25.08.31)\n\n    testLcc(pygeodesy.ellipsoidalNvector, 25.05.12)\n    test 1 lb1: 448251.0 5411932.0001\n    test 2 lb1: 448251, 5411932\n    test 3 lb1: [E:448251, N:5411932]\n    test 4 lb1: WRF_Lb.WGS84\n    test 5 lb1: lb1\n    test 6 lb1: (81.929348, -79.558697)\n    test 7 lb1: (1.429937, -1.388561)\n    test 8 LatLon: 46.5°N, 003.0°E\n    test 9 LatLon: 46°30′00.0″N, 003°00′00.0″E\n    test 10 toLcc1: 700000 6600000\n    test 11 toLcc1: 46.5°N, 003.0°E\n    test 12 lb2: 1894411 1564650\n    test 13 lb2: Clarke1866\n    test 14 lb2: lb2\n    test 15 toLatLon2: 35.0°N, 075.0°W\n    test 16 toLatLon2: 35°00′00.0007″N, 074°59′59.9997″W\n    test 17 toLatLon2: NAD27\n    test 18 toLcc2: 1894410.9 1564649.5\n    test 19 toLcc2: [E:1894411, N:1564649]\n    test 20 toLcc2: Snyder.NAD27\n\n    test 21 Be08Lb: 49.833334°N, 003.025883°E\n    test 22 Be08Lb: GRS80\n\n    test 23 Be08Lb: 49.833334°N, 004.359216°E\n    test 24 Be08Lb: GRS80\n\n    test 25 Be08Lb: 49.833334°N, 005.692549°E\n    test 26 Be08Lb: GRS80\n\n    test 27 Be08Lb: 51.166667°N, 003.025883°E\n    test 28 Be08Lb: GRS80\n\n    test 29 Be08Lb: 51.166667°N, 004.359216°E\n    test 30 Be08Lb: GRS80\n\n    test 31 Be08Lb: 51.166667°N, 005.692549°E\n    test 32 Be08Lb: GRS80\n\n    test 33 Be72Lb: 49.833334°N, 003.034153°E\n    test 34 Be72Lb: NAD83\n\n    test 35 Be72Lb: 49.833334°N, 004.367487°E\n    test 36 Be72Lb: NAD83\n\n    test 37 Be72Lb: 49.833334°N, 005.70082°E\n    test 38 Be72Lb: NAD83\n\n    test 39 Be72Lb: 51.166667°N, 003.034153°E\n    test 40 Be72Lb: NAD83\n\n    test 41 Be72Lb: 51.166667°N, 004.367487°E\n    test 42 Be72Lb: NAD83\n\n    test 43 Be72Lb: 51.166667°N, 005.70082°E\n    test 44 Be72Lb: NAD83\n\n    test 45 Fr93Lb: 49.0°N, 002.0°W\n    test 46 Fr93Lb: WGS84\n\n    test 47 Fr93Lb: 49.0°N, 003.0°E\n    test 48 Fr93Lb: WGS84\n\n    test 49 Fr93Lb: 49.0°N, 008.0°E\n    test 50 Fr93Lb: WGS84\n\n    test 51 Fr93Lb: 44.0°N, 002.0°W\n    test 52 Fr93Lb: WGS84\n\n    test 53 Fr93Lb: 44.0°N, 003.0°E\n    test 54 Fr93Lb: WGS84\n\n    test 55 Fr93Lb: 44.0°N, 008.0°E\n    test 56 Fr93Lb: WGS84\n\n    test 57 MaNLb: 31.73°N, 008.54°W\n    test 58 MaNLb: NTF\n\n    test 59 MaNLb: 31.73°N, 005.4°W\n    test 60 MaNLb: NTF\n\n    test 61 MaNLb: 31.73°N, 002.26°W\n    test 62 MaNLb: NTF\n\n    test 63 MaNLb: 34.87°N, 008.54°W\n    test 64 MaNLb: NTF\n\n    test 65 MaNLb: 34.87°N, 005.4°W\n    test 66 MaNLb: NTF\n\n    test 67 MaNLb: 34.87°N, 002.26°W\n    test 68 MaNLb: NTF\n\n    test 69 MxLb: 17.5°N, 114.0°W\n    test 70 MxLb: WGS84\n\n    test 71 MxLb: 17.5°N, 102.0°W\n    test 72 MxLb: WGS84\n\n    test 73 MxLb: 17.5°N, 090.0°W\n    test 74 MxLb: WGS84\n\n    test 75 MxLb: 29.5°N, 114.0°W\n    test 76 MxLb: WGS84\n\n    test 77 MxLb: 29.5°N, 102.0°W\n    test 78 MxLb: WGS84\n\n    test 79 MxLb: 29.5°N, 090.0°W\n    test 80 MxLb: WGS84\n\n    test 81 PyT_Lb: 45.898939°N, 000.540154°E\n    test 82 PyT_Lb: NTF\n\n    test 83 PyT_Lb: 45.898939°N, 002.337229°E\n    test 84 PyT_Lb: NTF\n\n    test 85 PyT_Lb: 45.898939°N, 004.134305°E\n    test 86 PyT_Lb: NTF\n\n    test 87 PyT_Lb: 47.696014°N, 000.540154°E\n    test 88 PyT_Lb: NTF\n\n    test 89 PyT_Lb: 47.696014°N, 002.337229°E\n    test 90 PyT_Lb: NTF\n\n    test 91 PyT_Lb: 47.696014°N, 004.134305°E\n    test 92 PyT_Lb: NTF\n\n    test 93 Snyder: 33.0°N, 108.0°W\n    test 94 Snyder: NAD27\n\n    test 95 Snyder: 33.0°N, 096.0°W\n    test 96 Snyder: NAD27\n\n    test 97 Snyder: 33.0°N, 084.0°W\n    test 98 Snyder: NAD27\n\n    test 99 Snyder: 45.0°N, 108.0°W\n    test 100 Snyder: NAD27\n\n    test 101 Snyder: 45.0°N, 096.0°W\n    test 102 Snyder: NAD27\n\n    test 103 Snyder: 45.0°N, 084.0°W\n    test 104 Snyder: NAD27\n\n    test 105 USA_Lb: 33.0°N, 108.0°W\n    test 106 USA_Lb: WGS84\n\n    test 107 USA_Lb: 33.0°N, 096.0°W\n    test 108 USA_Lb: WGS84\n\n    test 109 USA_Lb: 33.0°N, 084.0°W\n    test 110 USA_Lb: WGS84\n\n    test 111 USA_Lb: 45.0°N, 108.0°W\n    test 112 USA_Lb: WGS84\n\n    test 113 USA_Lb: 45.0°N, 096.0°W\n    test 114 USA_Lb: WGS84\n\n    test 115 USA_Lb: 45.0°N, 084.0°W\n    test 116 USA_Lb: WGS84\n\n    test 117 WRF_Lb: 33.0°N, 109.0°W\n    test 118 WRF_Lb: WGS84\n\n    test 119 WRF_Lb: 33.0°N, 097.0°W\n    test 120 WRF_Lb: WGS84\n\n    test 121 WRF_Lb: 33.0°N, 085.0°W\n    test 122 WRF_Lb: WGS84\n\n    test 123 WRF_Lb: 45.0°N, 109.0°W\n    test 124 WRF_Lb: WGS84\n\n    test 125 WRF_Lb: 45.0°N, 097.0°W\n    test 126 WRF_Lb: WGS84\n\n    test 127 WRF_Lb: 45.0°N, 085.0°W\n    test 128 WRF_Lb: WGS84\n\n\n    testLcc(pygeodesy.ellipsoidalVincenty, 25.05.26)\n    test 129 lb1: 448251.0 5411932.0001\n    test 130 lb1: 448251, 5411932\n    test 131 lb1: [E:448251, N:5411932]\n    test 132 lb1: WRF_Lb.WGS84\n    test 133 lb1: lb1\n    test 134 lb1: (81.929348, -79.558697)\n    test 135 lb1: (1.429937, -1.388561)\n    test 136 LatLon: 46.5°N, 003.0°E\n    test 137 LatLon: 46°30′00.0″N, 003°00′00.0″E\n    test 138 toLcc1: 700000 6600000\n    test 139 toLcc1: 46.5°N, 003.0°E\n    test 140 lb2: 1894411 1564650\n    test 141 lb2: Clarke1866\n    test 142 lb2: lb2\n    test 143 toLatLon2: 35.0°N, 075.0°W\n    test 144 toLatLon2: 35°00′00.0007″N, 074°59′59.9997″W\n    test 145 toLatLon2: NAD27\n    test 146 toLcc2: 1894410.9 1564649.5\n    test 147 toLcc2: [E:1894411, N:1564649]\n    test 148 toLcc2: Snyder.NAD27\n\n    test 149 Be08Lb: 49.833334°N, 003.025883°E\n    test 150 Be08Lb: GRS80\n\n    test 151 Be08Lb: 49.833334°N, 004.359216°E\n    test 152 Be08Lb: GRS80\n\n    test 153 Be08Lb: 49.833334°N, 005.692549°E\n    test 154 Be08Lb: GRS80\n\n    test 155 Be08Lb: 51.166667°N, 003.025883°E\n    test 156 Be08Lb: GRS80\n\n    test 157 Be08Lb: 51.166667°N, 004.359216°E\n    test 158 Be08Lb: GRS80\n\n    test 159 Be08Lb: 51.166667°N, 005.692549°E\n    test 160 Be08Lb: GRS80\n\n    test 161 Be72Lb: 49.833334°N, 003.034153°E\n    test 162 Be72Lb: NAD83\n\n    test 163 Be72Lb: 49.833334°N, 004.367487°E\n    test 164 Be72Lb: NAD83\n\n    test 165 Be72Lb: 49.833334°N, 005.70082°E\n    test 166 Be72Lb: NAD83\n\n    test 167 Be72Lb: 51.166667°N, 003.034153°E\n    test 168 Be72Lb: NAD83\n\n    test 169 Be72Lb: 51.166667°N, 004.367487°E\n    test 170 Be72Lb: NAD83\n\n    test 171 Be72Lb: 51.166667°N, 005.70082°E\n    test 172 Be72Lb: NAD83\n\n    test 173 Fr93Lb: 49.0°N, 002.0°W\n    test 174 Fr93Lb: WGS84\n\n    test 175 Fr93Lb: 49.0°N, 003.0°E\n    test 176 Fr93Lb: WGS84\n\n    test 177 Fr93Lb: 49.0°N, 008.0°E\n    test 178 Fr93Lb: WGS84\n\n    test 179 Fr93Lb: 44.0°N, 002.0°W\n    test 180 Fr93Lb: WGS84\n\n    test 181 Fr93Lb: 44.0°N, 003.0°E\n    test 182 Fr93Lb: WGS84\n\n    test 183 Fr93Lb: 44.0°N, 008.0°E\n    test 184 Fr93Lb: WGS84\n\n    test 185 MaNLb: 31.73°N, 008.54°W\n    test 186 MaNLb: NTF\n\n    test 187 MaNLb: 31.73°N, 005.4°W\n    test 188 MaNLb: NTF\n\n    test 189 MaNLb: 31.73°N, 002.26°W\n    test 190 MaNLb: NTF\n\n    test 191 MaNLb: 34.87°N, 008.54°W\n    test 192 MaNLb: NTF\n\n    test 193 MaNLb: 34.87°N, 005.4°W\n    test 194 MaNLb: NTF\n\n    test 195 MaNLb: 34.87°N, 002.26°W\n    test 196 MaNLb: NTF\n\n    test 197 MxLb: 17.5°N, 114.0°W\n    test 198 MxLb: WGS84\n\n    test 199 MxLb: 17.5°N, 102.0°W\n    test 200 MxLb: WGS84\n\n    test 201 MxLb: 17.5°N, 090.0°W\n    test 202 MxLb: WGS84\n\n    test 203 MxLb: 29.5°N, 114.0°W\n    test 204 MxLb: WGS84\n\n    test 205 MxLb: 29.5°N, 102.0°W\n    test 206 MxLb: WGS84\n\n    test 207 MxLb: 29.5°N, 090.0°W\n    test 208 MxLb: WGS84\n\n    test 209 PyT_Lb: 45.898939°N, 000.540154°E\n    test 210 PyT_Lb: NTF\n\n    test 211 PyT_Lb: 45.898939°N, 002.337229°E\n    test 212 PyT_Lb: NTF\n\n    test 213 PyT_Lb: 45.898939°N, 004.134305°E\n    test 214 PyT_Lb: NTF\n\n    test 215 PyT_Lb: 47.696014°N, 000.540154°E\n    test 216 PyT_Lb: NTF\n\n    test 217 PyT_Lb: 47.696014°N, 002.337229°E\n    test 218 PyT_Lb: NTF\n\n    test 219 PyT_Lb: 47.696014°N, 004.134305°E\n    test 220 PyT_Lb: NTF\n\n    test 221 Snyder: 33.0°N, 108.0°W\n    test 222 Snyder: NAD27\n\n    test 223 Snyder: 33.0°N, 096.0°W\n    test 224 Snyder: NAD27\n\n    test 225 Snyder: 33.0°N, 084.0°W\n    test 226 Snyder: NAD27\n\n    test 227 Snyder: 45.0°N, 108.0°W\n    test 228 Snyder: NAD27\n\n    test 229 Snyder: 45.0°N, 096.0°W\n    test 230 Snyder: NAD27\n\n    test 231 Snyder: 45.0°N, 084.0°W\n    test 232 Snyder: NAD27\n\n    test 233 USA_Lb: 33.0°N, 108.0°W\n    test 234 USA_Lb: WGS84\n\n    test 235 USA_Lb: 33.0°N, 096.0°W\n    test 236 USA_Lb: WGS84\n\n    test 237 USA_Lb: 33.0°N, 084.0°W\n    test 238 USA_Lb: WGS84\n\n    test 239 USA_Lb: 45.0°N, 108.0°W\n    test 240 USA_Lb: WGS84\n\n    test 241 USA_Lb: 45.0°N, 096.0°W\n    test 242 USA_Lb: WGS84\n\n    test 243 USA_Lb: 45.0°N, 084.0°W\n    test 244 USA_Lb: WGS84\n\n    test 245 WRF_Lb: 33.0°N, 109.0°W\n    test 246 WRF_Lb: WGS84\n\n    test 247 WRF_Lb: 33.0°N, 097.0°W\n    test 248 WRF_Lb: WGS84\n\n    test 249 WRF_Lb: 33.0°N, 085.0°W\n    test 250 WRF_Lb: WGS84\n\n    test 251 WRF_Lb: 45.0°N, 109.0°W\n    test 252 WRF_Lb: WGS84\n\n    test 253 WRF_Lb: 45.0°N, 097.0°W\n    test 254 WRF_Lb: WGS84\n\n    test 255 WRF_Lb: 45.0°N, 085.0°W\n    test 256 WRF_Lb: WGS84\n\n\n    testConic(pygeodesy.ellipsoidalNvector, 25.05.12)\n    test 257 SnyderN: name='SnyderN', lat0=23, lon0=-96, par1=33, par2=45, E0=0, N0=0, k0=1, SP=2, datum=Datum(name='NAD27', ellipsoid=Ellipsoids.Clarke1866, transform=Transforms.NAD27)\n    test 258 _SnyderN: name='_SnyderN', lat0=23, lon0=-96, par1=33, E0=0, N0=0, k0=1, SP=1, datum=Datum(name='NAD27', ellipsoid=Ellipsoids.Clarke1866, transform=Transforms.NAD27)\n    test 259 _SnyderN: name='_SnyderN', lat0=23, lon0=-96, par1=33, E0=0, N0=0, k0=1, SP=1, datum=Datum(name='NAD83', ellipsoid=Ellipsoids.GRS80, transform=Transforms.NAD83)\n    test 260 _SnyderN .auth: ''\n    test 261 _SnyderN .opt3: 0.0\n    test 262 _SnyderN .latlon0: (23.0, -96.0)\n    test 263 _SnyderN .philam0: (0.401426, -1.675516)\n\n    testConic(pygeodesy.ellipsoidalVincenty, 25.05.26)\n    test 264 SnyderV: name='SnyderV', lat0=23, lon0=-96, par1=33, par2=45, E0=0, N0=0, k0=1, SP=2, datum=Datum(name='NAD27', ellipsoid=Ellipsoids.Clarke1866, transform=Transforms.NAD27)\n    test 265 _SnyderV: name='_SnyderV', lat0=23, lon0=-96, par1=33, E0=0, N0=0, k0=1, SP=1, datum=Datum(name='NAD27', ellipsoid=Ellipsoids.Clarke1866, transform=Transforms.NAD27)\n    test 266 _SnyderV: name='_SnyderV', lat0=23, lon0=-96, par1=33, E0=0, N0=0, k0=1, SP=1, datum=Datum(name='NAD83', ellipsoid=Ellipsoids.GRS80, transform=Transforms.NAD83)\n    test 267 _SnyderV .auth: ''\n    test 268 _SnyderV .opt3: 0.0\n    test 269 _SnyderV .latlon0: (23.0, -96.0)\n    test 270 _SnyderV .philam0: (0.401426, -1.675516)\n\n    all 270 testLcc.py tests passed (pygeodesy 26.3.26 Python 3.11.9 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 1.24.2 scipy 1.10.1 Math 2 macOS 26.3.1 isLazy 0 -W  default) 29.972 ms\nrunning /usr/local/bin/p....n3.11 -W default ~/PyGeodesy/test/testLtp.py\n./pygeodesy/deprecated/classes.py:75: DeprecationWarning: class L{EcefCartesian_<pygeodesy.deprecated.classes.EcefCartesian_>} has been DEPRECATED, use class L{LocalCartesian} or L{Ltp}.\n  deprecated_class(self.__class__)\n./test/testLtp.py:41: DeprecationWarning: method L{forward<pygeodesy.deprecated.classes.EcefCartesian_.forward>} has been DEPRECATED, use method L{LocalCartesian.forward} or L{Ltp.forward}.\n  t = c.forward(33.3, 44.4, 6000)\n./test/testLtp.py:45: DeprecationWarning: method L{reverse<pygeodesy.deprecated.classes.EcefCartesian_.reverse>} has been DEPRECATED, use method L{LocalCartesian.reverse} or L{Ltp.reverse}.\n  t = c.reverse(37288.97, 33374.29, 5783.65)\n./test/testLtp.py:54: DeprecationWarning: method L{forward<pygeodesy.deprecated.classes.EcefCartesian_.forward>} has been DEPRECATED, use method L{LocalCartesian.forward} or L{Ltp.forward}.\n  t = c.forward(LatLon_(50.9, 1.8, name='Calais'))  # Local9Tuple\n./test/testLtp.py:58: DeprecationWarning: method L{reverse<pygeodesy.deprecated.classes.EcefCartesian_.reverse>} has been DEPRECATED, use method L{LocalCartesian.reverse} or L{Ltp.reverse}.\n  t = c.reverse(-37518.64, 229949.65, -4260.43)  # Local9Tuple\n./test/testLtp.py:62: DeprecationWarning: method L{reverse<pygeodesy.deprecated.classes.EcefCartesian_.reverse>} has been DEPRECATED, use method L{LocalCartesian.reverse} or L{Ltp.reverse}.\n  t = c.reverse(-38e3, 230e3, -4e3)\n./test/testLtp.py:66: DeprecationWarning: method L{forward<pygeodesy.deprecated.classes.EcefCartesian_.forward>} has been DEPRECATED, use method L{LocalCartesian.forward} or L{Ltp.forward}.\n  t = c.forward(50.9, 1.79, 264.92)  # Local9Tuple\n./test/testLtp.py:74: DeprecationWarning: method L{reverse<pygeodesy.deprecated.classes.EcefCartesian_.reverse>} has been DEPRECATED, use method L{LocalCartesian.reverse} or L{Ltp.reverse}.\n  t = Z.reverse(M).toLatLon(datum=None)  # Matterhorn Xyz to LatLon\n./test/testLtp.py:76: DeprecationWarning: method L{forward<pygeodesy.deprecated.classes.EcefCartesian_.forward>} has been DEPRECATED, use method L{LocalCartesian.forward} or L{Ltp.forward}.\n  self.test('xyz', Z.forward(t).xyz.toStr(prec=1), '(-7134.8, -4556.3, 2852.4)', known=Sudano)\n\n    testing testLtp.py 23.11.21\n\n    test 1 EcefCartesian: {}\n    test 2 name: Test\n    test 3 toStr: EcefCartesian_(lat0=33.0, lon0=44.0, height0=20.0, M=EcefMatrix(_0_0_=-0.694658, _0_1_=-0.391781, _0_2_=0.603289, _1_0_=0.71934, _1_1_=-0.378338, _1_2_=0.58259, _2_0_=0.0, _2_1_=0.838671, _2_2_=0.544639), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Test')  FAILED, KNOWN, expected EcefCartesian_\n    test 4 copy(<class 'type'>): (<class 'pygeodesy.deprecated.classes.EcefCartesian.<locals>.EcefCartesian_'>, True)\n    test 5 EcefCartesian_.copy(): (<class 'pygeodesy.deprecated.classes.EcefCartesian.<locals>.EcefCartesian_'>, True)\n    test 6 New: lat0=33.0, lon0=44.0, height0=20.0, M=EcefMatrix(_0_0_=-0.694658, _0_1_=-0.391781, _0_2_=0.603289, _1_0_=0.71934, _1_1_=-0.378338, _1_2_=0.58259, _2_0_=0.0, _2_1_=0.838671, _2_2_=0.544639), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Test'\n    test 7 forward: 37288.97, 33374.29, 5783.65\n    test 8 name: Test\n    test 9 reverse: 33.3, 44.4, 6000.0\n    test 10 name: Test\n    test 11 name: Paris\n    test 12 Paris: 48.833, 2.333, 0.0\n    test 13 forward: -37518.64, 229949.65, -4260.43\n    test 14 name: Calais\n    test 15 reverse: 50.9, 1.8, -0.0\n    test 16 name: Paris\n    test 17 reverse: -38000.0, 230000.0, -4000.0\n    test 18 reverse: 50.9, 1.79, 264.92\n    test 19 forward: -38223.7, 229964.2, -4000.0\n\n    test 20 Zermatt: lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'  FAILED, KNOWN, expected EcefCartesian_\n    test 21 Matterhorn: (45.976, 7.658, 4531.01)\n    test 22 xyz: (-7134.8, -4556.3, 2852.4)\n    test 23 _local2ecef: 4403757.602, 592124.536, 4566652.082\n    test 24 _local2ecef: (4403757.602, 592124.536, 4566652.082, 45.976, 7.658, 4531.01, 1, None, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))  FAILED, KNOWN, expected Ecef9Tuple\n    test 25 _local2ecef: Ecef9Tuple\n    test 26 _ecef2local: (-7134.8, -4556.3, 2852.4, 45.976, 7.658, 4531.01, EcefCartesian_(lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'), Ecef9Tuple(x=4403757.601549, y=592124.535536, z=4566652.082005, lat=45.976, lon=7.657999, height=4531.009608, C=1, M=None, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84)), None)  FAILED, KNOWN, expected Local9Tuple\n    test 27 _ecef2local: Local9Tuple\n    test 28 Xyz: (-7134.8, -4556.3, 2852.4, None)\n    test 29 Aer: (-7134.912, -4444.548, 2852.474, None)\n    test 30 Enu: (-7134.8, -4556.3, 2852.4, None)\n    test 31 Ned: [-4556.3, -7134.8, -2852.4]\n    test 32 Enu: [-7134.8, -4556.3, 2852.4]\n    test 33 Ned: [-4556.3, -7134.8, -2852.4]\n\n    test 34 lon00: (90.0, 57.3, 0.0, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 35 lon00: (90.0, 3.75, 0.0, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n\n    test 36 Frustum: 90.0, 90.0\n    test 37 hfov: 90.0\n    test 38 vfov: 90.0\n    test 39 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None))\n    test 40 footprint.xyzLocal5: ([X:0.0, Y:0.0, Z:0.0], [X:1000.0, Y:1000.0, Z:0.0], [X:1000.0, Y:1000.0, Z:0.0], [X:-1000.0, Y:-1000.0, Z:0.0], [X:-1000.0, Y:-1000.0, Z:0.0])\n    test 41 footprint.toLatLon5: (LatLon_(00.0°N, 000.0°E), LatLon_(00.009044°N, 000.008983°E, +0.16), LatLon_(00.009044°N, 000.008983°E, +0.16), LatLon_(00.009044°S, 000.008983°W, +0.16), LatLon_(00.009044°S, 000.008983°W, +0.16))\n\n    test 42 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None))\n    test 43 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=414.213562, y=414.213562, z=0.0, ltp=None), Xyz4Tuple(x=414.213562, y=414.213562, z=0.0, ltp=None), Xyz4Tuple(x=-414.213562, y=-414.213562, z=0.0, ltp=None), Xyz4Tuple(x=-414.213562, y=-414.213562, z=0.0, ltp=None))\n    test 44 footprint: (Xyz4Tuple(x=-57289.961631, y=-57289.961631, z=0.0, ltp=None), Xyz4Tuple(x=2538.647896, y=2538.647896, z=0.0, ltp=None), Xyz4Tuple(x=2538.647896, y=2538.647896, z=0.0, ltp=None), Xyz4Tuple(x=-2299.842547, y=-2299.842547, z=0.0, ltp=None), Xyz4Tuple(x=-2299.842547, y=-2299.842547, z=0.0, ltp=None))\n\n    test 45 Attitude: (0.0, -10.0, 330.0, -20.0)\n    test 46 alt: 0.0\n    test 47 tilt: -10.0\n    test 48 roll: -20.0\n    test 49 yaw: 330.0\n    test 50 matrix: ((0.8137976813493736, -0.44096961052988237, -0.37852230636979256), (0.46984631039295416, 0.8825641192593855, -0.01802831123629728), (0.3420201433256688, -0.16317591116653488, 0.9254165783983233))  FAILED, KNOWN, expected ((0.8137976813493737, -0.4409696105298823, -0.3785223063697926), (0.4698463103929541, 0.8825641192593856, -0.01802831123629725), (0.3420201433256688, -0.16317591116653488, 0.9254165783983233))\n    test 51 rotate: (-0.005694, 1.334382, 1.104261)\n    test 52 tyr3d: (0.0, 0.0, 0.0)\n    test 53 tyr3d: (0.0, -2.0, 0.0)\n    test 54 tyr3d: (0.0, -2.0, 0.0)\n    test 55 tyr3d: (0.0, 0.0, -2.0)\n\n    test 56 LocalCartesian: {}\n    test 57 name: Test\n    test 58 toStr: LocalCartesian(lat0=33.0, lon0=44.0, height0=20.0, M=EcefMatrix(_0_0_=-0.694658, _0_1_=-0.391781, _0_2_=0.603289, _1_0_=0.71934, _1_1_=-0.378338, _1_2_=0.58259, _2_0_=0.0, _2_1_=0.838671, _2_2_=0.544639), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Test')  FAILED, KNOWN, expected LocalCartesian\n    test 59 copy(<class 'type'>): (<class 'pygeodesy.ltp.LocalCartesian'>, True)\n    test 60 LocalCartesian.copy(): (<class 'pygeodesy.ltp.LocalCartesian'>, True)\n    test 61 New: lat0=33.0, lon0=44.0, height0=20.0, M=EcefMatrix(_0_0_=-0.694658, _0_1_=-0.391781, _0_2_=0.603289, _1_0_=0.71934, _1_1_=-0.378338, _1_2_=0.58259, _2_0_=0.0, _2_1_=0.838671, _2_2_=0.544639), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Test'\n    test 62 forward: 37288.97, 33374.29, 5783.65\n    test 63 name: Test\n    test 64 reverse: 33.3, 44.4, 6000.0\n    test 65 name: Test\n    test 66 name: Paris\n    test 67 Paris: 48.833, 2.333, 0.0\n    test 68 forward: -37518.64, 229949.65, -4260.43\n    test 69 name: Calais\n    test 70 reverse: 50.9, 1.8, -0.0\n    test 71 name: Paris\n    test 72 reverse: -38000.0, 230000.0, -4000.0\n    test 73 reverse: 50.9, 1.79, 264.92\n    test 74 forward: -38223.7, 229964.2, -4000.0\n\n    test 75 Zermatt: lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'  FAILED, KNOWN, expected LocalCartesian\n    test 76 Matterhorn: (45.976, 7.658, 4531.01)\n    test 77 xyz: (-7134.8, -4556.3, 2852.4)\n    test 78 _local2ecef: 4403757.602, 592124.536, 4566652.082\n    test 79 _local2ecef: (4403757.602, 592124.536, 4566652.082, 45.976, 7.658, 4531.01, 1, None, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))  FAILED, KNOWN, expected Ecef9Tuple\n    test 80 _local2ecef: Ecef9Tuple\n    test 81 _ecef2local: (-7134.8, -4556.3, 2852.4, 45.976, 7.658, 4531.01, LocalCartesian(lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'), Ecef9Tuple(x=4403757.601549, y=592124.535536, z=4566652.082005, lat=45.976, lon=7.657999, height=4531.009608, C=1, M=None, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84)), None)  FAILED, KNOWN, expected Local9Tuple\n    test 82 _ecef2local: Local9Tuple\n    test 83 Xyz: (-7134.8, -4556.3, 2852.4, None)\n    test 84 Aer: (-7134.912, -4444.548, 2852.474, None)\n    test 85 Enu: (-7134.8, -4556.3, 2852.4, None)\n    test 86 Ned: [-4556.3, -7134.8, -2852.4]\n    test 87 Enu: [-7134.8, -4556.3, 2852.4]\n    test 88 Ned: [-4556.3, -7134.8, -2852.4]\n\n    test 89 lon00: (90.0, 57.3, 0.0, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 90 lon00: (90.0, 3.75, 0.0, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n\n    test 91 Frustum: 90.0, 90.0\n    test 92 hfov: 90.0\n    test 93 vfov: 90.0\n    test 94 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None))\n    test 95 footprint.xyzLocal5: ([X:0.0, Y:0.0, Z:0.0], [X:1000.0, Y:1000.0, Z:0.0], [X:1000.0, Y:1000.0, Z:0.0], [X:-1000.0, Y:-1000.0, Z:0.0], [X:-1000.0, Y:-1000.0, Z:0.0])\n    test 96 footprint.toLatLon5: (LatLon_(00.0°N, 000.0°E), LatLon_(00.009044°N, 000.008983°E, +0.16), LatLon_(00.009044°N, 000.008983°E, +0.16), LatLon_(00.009044°S, 000.008983°W, +0.16), LatLon_(00.009044°S, 000.008983°W, +0.16))\n\n    test 97 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None))\n    test 98 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=414.213562, y=414.213562, z=0.0, ltp=None), Xyz4Tuple(x=414.213562, y=414.213562, z=0.0, ltp=None), Xyz4Tuple(x=-414.213562, y=-414.213562, z=0.0, ltp=None), Xyz4Tuple(x=-414.213562, y=-414.213562, z=0.0, ltp=None))\n    test 99 footprint: (Xyz4Tuple(x=-57289.961631, y=-57289.961631, z=0.0, ltp=None), Xyz4Tuple(x=2538.647896, y=2538.647896, z=0.0, ltp=None), Xyz4Tuple(x=2538.647896, y=2538.647896, z=0.0, ltp=None), Xyz4Tuple(x=-2299.842547, y=-2299.842547, z=0.0, ltp=None), Xyz4Tuple(x=-2299.842547, y=-2299.842547, z=0.0, ltp=None))\n\n    test 100 Attitude: (0.0, -10.0, 330.0, -20.0)\n    test 101 alt: 0.0\n    test 102 tilt: -10.0\n    test 103 roll: -20.0\n    test 104 yaw: 330.0\n    test 105 matrix: ((0.8137976813493736, -0.44096961052988237, -0.37852230636979256), (0.46984631039295416, 0.8825641192593855, -0.01802831123629728), (0.3420201433256688, -0.16317591116653488, 0.9254165783983233))  FAILED, KNOWN, expected ((0.8137976813493737, -0.4409696105298823, -0.3785223063697926), (0.4698463103929541, 0.8825641192593856, -0.01802831123629725), (0.3420201433256688, -0.16317591116653488, 0.9254165783983233))\n    test 106 rotate: (-0.005694, 1.334382, 1.104261)\n    test 107 tyr3d: (0.0, 0.0, 0.0)\n    test 108 tyr3d: (0.0, -2.0, 0.0)\n    test 109 tyr3d: (0.0, -2.0, 0.0)\n    test 110 tyr3d: (0.0, 0.0, -2.0)\n\n    test 111 Ltp: {}\n    test 112 name: Test\n    test 113 toStr: Ltp(lat0=33.0, lon0=44.0, height0=20.0, M=EcefMatrix(_0_0_=-0.694658, _0_1_=-0.391781, _0_2_=0.603289, _1_0_=0.71934, _1_1_=-0.378338, _1_2_=0.58259, _2_0_=0.0, _2_1_=0.838671, _2_2_=0.544639), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Test')  FAILED, KNOWN, expected Ltp\n    test 114 copy(<class 'type'>): (<class 'pygeodesy.ltp.Ltp'>, True)\n    test 115 Ltp.copy(): (<class 'pygeodesy.ltp.Ltp'>, True)\n    test 116 New: lat0=33.0, lon0=44.0, height0=20.0, M=EcefMatrix(_0_0_=-0.694658, _0_1_=-0.391781, _0_2_=0.603289, _1_0_=0.71934, _1_1_=-0.378338, _1_2_=0.58259, _2_0_=0.0, _2_1_=0.838671, _2_2_=0.544639), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Test'\n    test 117 forward: 37288.97, 33374.29, 5783.65\n    test 118 name: Test\n    test 119 reverse: 33.3, 44.4, 6000.0\n    test 120 name: Test\n    test 121 name: Paris\n    test 122 Paris: 48.833, 2.333, 0.0\n    test 123 forward: -37518.64, 229949.65, -4260.43\n    test 124 name: Calais\n    test 125 reverse: 50.9, 1.8, -0.0\n    test 126 name: Paris\n    test 127 reverse: -38000.0, 230000.0, -4000.0\n    test 128 reverse: 50.9, 1.79, 264.92\n    test 129 forward: -38223.7, 229964.2, -4000.0\n\n    test 130 Zermatt: lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'  FAILED, KNOWN, expected Ltp\n    test 131 Matterhorn: (45.976, 7.658, 4531.01)\n    test 132 xyz: (-7134.8, -4556.3, 2852.4)\n    test 133 _local2ecef: 4403757.602, 592124.536, 4566652.082\n    test 134 _local2ecef: (4403757.602, 592124.536, 4566652.082, 45.976, 7.658, 4531.01, 1, None, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))  FAILED, KNOWN, expected Ecef9Tuple\n    test 135 _local2ecef: Ecef9Tuple\n    test 136 _ecef2local: (-7134.8, -4556.3, 2852.4, 45.976, 7.658, 4531.01, Ltp(lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'), Ecef9Tuple(x=4403757.601549, y=592124.535536, z=4566652.082005, lat=45.976, lon=7.657999, height=4531.009608, C=1, M=None, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84)), None)  FAILED, KNOWN, expected Local9Tuple\n    test 137 _ecef2local: Local9Tuple\n    test 138 Xyz: (-7134.8, -4556.3, 2852.4, None)\n    test 139 Aer: (-7134.912, -4444.548, 2852.474, None)\n    test 140 Enu: (-7134.8, -4556.3, 2852.4, None)\n    test 141 Ned: [-4556.3, -7134.8, -2852.4]\n    test 142 Enu: [-7134.8, -4556.3, 2852.4]\n    test 143 Ned: [-4556.3, -7134.8, -2852.4]\n\n    test 144 lon00: (90.0, 57.3, 0.0, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 145 lon00: (90.0, 3.75, 0.0, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n\n    test 146 Frustum: 90.0, 90.0\n    test 147 hfov: 90.0\n    test 148 vfov: 90.0\n    test 149 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None))\n    test 150 footprint.xyzLocal5: ([X:0.0, Y:0.0, Z:0.0], [X:1000.0, Y:1000.0, Z:0.0], [X:1000.0, Y:1000.0, Z:0.0], [X:-1000.0, Y:-1000.0, Z:0.0], [X:-1000.0, Y:-1000.0, Z:0.0])\n    test 151 footprint.toLatLon5: (LatLon_(00.0°N, 000.0°E), LatLon_(00.009044°N, 000.008983°E, +0.16), LatLon_(00.009044°N, 000.008983°E, +0.16), LatLon_(00.009044°S, 000.008983°W, +0.16), LatLon_(00.009044°S, 000.008983°W, +0.16))\n\n    test 152 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None))\n    test 153 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=414.213562, y=414.213562, z=0.0, ltp=None), Xyz4Tuple(x=414.213562, y=414.213562, z=0.0, ltp=None), Xyz4Tuple(x=-414.213562, y=-414.213562, z=0.0, ltp=None), Xyz4Tuple(x=-414.213562, y=-414.213562, z=0.0, ltp=None))\n    test 154 footprint: (Xyz4Tuple(x=-57289.961631, y=-57289.961631, z=0.0, ltp=None), Xyz4Tuple(x=2538.647896, y=2538.647896, z=0.0, ltp=None), Xyz4Tuple(x=2538.647896, y=2538.647896, z=0.0, ltp=None), Xyz4Tuple(x=-2299.842547, y=-2299.842547, z=0.0, ltp=None), Xyz4Tuple(x=-2299.842547, y=-2299.842547, z=0.0, ltp=None))\n\n    test 155 Attitude: (0.0, -10.0, 330.0, -20.0)\n    test 156 alt: 0.0\n    test 157 tilt: -10.0\n    test 158 roll: -20.0\n    test 159 yaw: 330.0\n    test 160 matrix: ((0.8137976813493736, -0.44096961052988237, -0.37852230636979256), (0.46984631039295416, 0.8825641192593855, -0.01802831123629728), (0.3420201433256688, -0.16317591116653488, 0.9254165783983233))  FAILED, KNOWN, expected ((0.8137976813493737, -0.4409696105298823, -0.3785223063697926), (0.4698463103929541, 0.8825641192593856, -0.01802831123629725), (0.3420201433256688, -0.16317591116653488, 0.9254165783983233))\n    test 161 rotate: (-0.005694, 1.334382, 1.104261)\n    test 162 tyr3d: (0.0, 0.0, 0.0)\n    test 163 tyr3d: (0.0, -2.0, 0.0)\n    test 164 tyr3d: (0.0, -2.0, 0.0)\n    test 165 tyr3d: (0.0, 0.0, -2.0)\n\n    test 166 Ltp: {'ecef': EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name='')}\n    test 167 name: Test\n    test 168 toStr: Ltp(lat0=33.0, lon0=44.0, height0=20.0, M=EcefMatrix(_0_0_=-0.694658, _0_1_=-0.391781, _0_2_=0.603289, _1_0_=0.71934, _1_1_=-0.378338, _1_2_=0.58259, _2_0_=0.0, _2_1_=0.838671, _2_2_=0.544639), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Test')  FAILED, KNOWN, expected Ltp\n    test 169 copy(<class 'type'>): (<class 'pygeodesy.ltp.Ltp'>, True)\n    test 170 Ltp.copy(): (<class 'pygeodesy.ltp.Ltp'>, True)\n    test 171 New: lat0=33.0, lon0=44.0, height0=20.0, M=EcefMatrix(_0_0_=-0.694658, _0_1_=-0.391781, _0_2_=0.603289, _1_0_=0.71934, _1_1_=-0.378338, _1_2_=0.58259, _2_0_=0.0, _2_1_=0.838671, _2_2_=0.544639), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Test'\n    test 172 forward: 37288.97, 33374.29, 5783.65\n    test 173 name: Test\n    test 174 reverse: 33.3, 44.4, 6000.0\n    test 175 name: Test\n    test 176 name: Paris\n    test 177 Paris: 48.833, 2.333, 0.0\n    test 178 forward: -37518.64, 229949.65, -4260.43\n    test 179 name: Calais\n    test 180 reverse: 50.9, 1.8, -0.0\n    test 181 name: Paris\n    test 182 reverse: -38000.0, 230000.0, -4000.0\n    test 183 reverse: 50.9, 1.79, 264.92\n    test 184 forward: -38223.7, 229964.2, -4000.0\n\n    test 185 Zermatt: lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'  FAILED, KNOWN, expected Ltp\n    test 186 Matterhorn: (45.976, 7.658, 4531.01)\n    test 187 xyz: (-7134.8, -4556.3, 2852.4)\n    test 188 _local2ecef: 4403757.602, 592124.536, 4566652.082\n    test 189 _local2ecef: (4403757.602, 592124.536, 4566652.082, 45.976, 7.658, 4531.01, 1, None, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))  FAILED, KNOWN, expected Ecef9Tuple\n    test 190 _local2ecef: Ecef9Tuple\n    test 191 _ecef2local: (-7134.8, -4556.3, 2852.4, 45.976, 7.658, 4531.01, Ltp(lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'), Ecef9Tuple(x=4403757.601549, y=592124.535536, z=4566652.082005, lat=45.976, lon=7.657999, height=4531.009608, C=1, M=None, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84)), None)  FAILED, KNOWN, expected Local9Tuple\n    test 192 _ecef2local: Local9Tuple\n    test 193 Xyz: (-7134.8, -4556.3, 2852.4, None)\n    test 194 Aer: (-7134.912, -4444.548, 2852.474, None)\n    test 195 Enu: (-7134.8, -4556.3, 2852.4, None)\n    test 196 Ned: [-4556.3, -7134.8, -2852.4]\n    test 197 Enu: [-7134.8, -4556.3, 2852.4]\n    test 198 Ned: [-4556.3, -7134.8, -2852.4]\n\n    test 199 lon00: (90.0, 57.3, 0.0, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 200 lon00: (90.0, 3.75, 0.0, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n\n    test 201 Frustum: 90.0, 90.0\n    test 202 hfov: 90.0\n    test 203 vfov: 90.0\n    test 204 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None))\n    test 205 footprint.xyzLocal5: ([X:0.0, Y:0.0, Z:0.0], [X:1000.0, Y:1000.0, Z:0.0], [X:1000.0, Y:1000.0, Z:0.0], [X:-1000.0, Y:-1000.0, Z:0.0], [X:-1000.0, Y:-1000.0, Z:0.0])\n    test 206 footprint.toLatLon5: (LatLon_(00.0°N, 000.0°E), LatLon_(00.009044°N, 000.008983°E, +0.16), LatLon_(00.009044°N, 000.008983°E, +0.16), LatLon_(00.009044°S, 000.008983°W, +0.16), LatLon_(00.009044°S, 000.008983°W, +0.16))\n\n    test 207 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None))\n    test 208 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=414.213562, y=414.213562, z=0.0, ltp=None), Xyz4Tuple(x=414.213562, y=414.213562, z=0.0, ltp=None), Xyz4Tuple(x=-414.213562, y=-414.213562, z=0.0, ltp=None), Xyz4Tuple(x=-414.213562, y=-414.213562, z=0.0, ltp=None))\n    test 209 footprint: (Xyz4Tuple(x=-57289.961631, y=-57289.961631, z=0.0, ltp=None), Xyz4Tuple(x=2538.647896, y=2538.647896, z=0.0, ltp=None), Xyz4Tuple(x=2538.647896, y=2538.647896, z=0.0, ltp=None), Xyz4Tuple(x=-2299.842547, y=-2299.842547, z=0.0, ltp=None), Xyz4Tuple(x=-2299.842547, y=-2299.842547, z=0.0, ltp=None))\n\n    test 210 Attitude: (0.0, -10.0, 330.0, -20.0)\n    test 211 alt: 0.0\n    test 212 tilt: -10.0\n    test 213 roll: -20.0\n    test 214 yaw: 330.0\n    test 215 matrix: ((0.8137976813493736, -0.44096961052988237, -0.37852230636979256), (0.46984631039295416, 0.8825641192593855, -0.01802831123629728), (0.3420201433256688, -0.16317591116653488, 0.9254165783983233))  FAILED, KNOWN, expected ((0.8137976813493737, -0.4409696105298823, -0.3785223063697926), (0.4698463103929541, 0.8825641192593856, -0.01802831123629725), (0.3420201433256688, -0.16317591116653488, 0.9254165783983233))\n    test 216 rotate: (-0.005694, 1.334382, 1.104261)\n    test 217 tyr3d: (0.0, 0.0, 0.0)\n    test 218 tyr3d: (0.0, -2.0, 0.0)\n    test 219 tyr3d: (0.0, -2.0, 0.0)\n    test 220 tyr3d: (0.0, 0.0, -2.0)\n\n    test 221 Ltp: {'ecef': EcefFarrell21(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name='')}\n    test 222 name: Test\n    test 223 toStr: Ltp(lat0=33.0, lon0=44.0, height0=20.0, M=EcefMatrix(_0_0_=-0.694658, _0_1_=-0.391781, _0_2_=0.603289, _1_0_=0.71934, _1_1_=-0.378338, _1_2_=0.58259, _2_0_=0.0, _2_1_=0.838671, _2_2_=0.544639), ecef=EcefFarrell21(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Test')  FAILED, KNOWN, expected Ltp\n    test 224 copy(<class 'type'>): (<class 'pygeodesy.ltp.Ltp'>, True)\n    test 225 Ltp.copy(): (<class 'pygeodesy.ltp.Ltp'>, True)\n    test 226 New: lat0=33.0, lon0=44.0, height0=20.0, M=EcefMatrix(_0_0_=-0.694658, _0_1_=-0.391781, _0_2_=0.603289, _1_0_=0.71934, _1_1_=-0.378338, _1_2_=0.58259, _2_0_=0.0, _2_1_=0.838671, _2_2_=0.544639), ecef=EcefFarrell21(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Test'\n    test 227 forward: 37288.97, 33374.29, 5783.65\n    test 228 name: Test\n    test 229 reverse: 33.3, 44.4, 6000.0\n    test 230 name: Test\n    test 231 name: Paris\n    test 232 Paris: 48.833, 2.333, 0.0\n    test 233 forward: -37518.64, 229949.65, -4260.43\n    test 234 name: Calais\n    test 235 reverse: 50.9, 1.8, -0.0\n    test 236 name: Paris\n    test 237 reverse: -38000.0, 230000.0, -4000.0\n    test 238 reverse: 50.9, 1.79, 264.92\n    test 239 forward: -38223.7, 229964.2, -4000.0\n\n    test 240 Zermatt: lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefFarrell21(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'  FAILED, KNOWN, expected Ltp\n    test 241 Matterhorn: (45.976, 7.658, 4531.01)\n    test 242 xyz: (-7134.8, -4556.3, 2852.4)\n    test 243 _local2ecef: 4403757.602, 592124.536, 4566652.082\n    test 244 _local2ecef: (4403757.602, 592124.536, 4566652.082, 45.976, 7.658, 4531.01, 1, None, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))  FAILED, KNOWN, expected Ecef9Tuple\n    test 245 _local2ecef: Ecef9Tuple\n    test 246 _ecef2local: (-7134.8, -4556.3, 2852.4, 45.976, 7.658, 4531.01, Ltp(lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefFarrell21(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'), Ecef9Tuple(x=4403757.601549, y=592124.535536, z=4566652.082005, lat=45.976, lon=7.657999, height=4531.009608, C=1, M=None, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84)), None)  FAILED, KNOWN, expected Local9Tuple\n    test 247 _ecef2local: Local9Tuple\n    test 248 Xyz: (-7134.8, -4556.3, 2852.4, None)\n    test 249 Aer: (-7134.912, -4444.548, 2852.474, None)\n    test 250 Enu: (-7134.8, -4556.3, 2852.4, None)\n    test 251 Ned: [-4556.3, -7134.8, -2852.4]\n    test 252 Enu: [-7134.8, -4556.3, 2852.4]\n    test 253 Ned: [-4556.3, -7134.8, -2852.4]\n\n    test 254 lon00: (90.0, 57.3, 0.0, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 255 lon00: (90.0, 3.75, 0.0, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n\n    test 256 Frustum: 90.0, 90.0\n    test 257 hfov: 90.0\n    test 258 vfov: 90.0\n    test 259 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None))\n    test 260 footprint.xyzLocal5: ([X:0.0, Y:0.0, Z:0.0], [X:1000.0, Y:1000.0, Z:0.0], [X:1000.0, Y:1000.0, Z:0.0], [X:-1000.0, Y:-1000.0, Z:0.0], [X:-1000.0, Y:-1000.0, Z:0.0])\n    test 261 footprint.toLatLon5: (LatLon_(00.0°N, 000.0°E), LatLon_(00.009044°N, 000.008983°E, +0.16), LatLon_(00.009044°N, 000.008983°E, +0.16), LatLon_(00.009044°S, 000.008983°W, +0.16), LatLon_(00.009044°S, 000.008983°W, +0.16))\n\n    test 262 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None))\n    test 263 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=414.213562, y=414.213562, z=0.0, ltp=None), Xyz4Tuple(x=414.213562, y=414.213562, z=0.0, ltp=None), Xyz4Tuple(x=-414.213562, y=-414.213562, z=0.0, ltp=None), Xyz4Tuple(x=-414.213562, y=-414.213562, z=0.0, ltp=None))\n    test 264 footprint: (Xyz4Tuple(x=-57289.961631, y=-57289.961631, z=0.0, ltp=None), Xyz4Tuple(x=2538.647896, y=2538.647896, z=0.0, ltp=None), Xyz4Tuple(x=2538.647896, y=2538.647896, z=0.0, ltp=None), Xyz4Tuple(x=-2299.842547, y=-2299.842547, z=0.0, ltp=None), Xyz4Tuple(x=-2299.842547, y=-2299.842547, z=0.0, ltp=None))\n\n    test 265 Attitude: (0.0, -10.0, 330.0, -20.0)\n    test 266 alt: 0.0\n    test 267 tilt: -10.0\n    test 268 roll: -20.0\n    test 269 yaw: 330.0\n    test 270 matrix: ((0.8137976813493736, -0.44096961052988237, -0.37852230636979256), (0.46984631039295416, 0.8825641192593855, -0.01802831123629728), (0.3420201433256688, -0.16317591116653488, 0.9254165783983233))  FAILED, KNOWN, expected ((0.8137976813493737, -0.4409696105298823, -0.3785223063697926), (0.4698463103929541, 0.8825641192593856, -0.01802831123629725), (0.3420201433256688, -0.16317591116653488, 0.9254165783983233))\n    test 271 rotate: (-0.005694, 1.334382, 1.104261)\n    test 272 tyr3d: (0.0, 0.0, 0.0)\n    test 273 tyr3d: (0.0, -2.0, 0.0)\n    test 274 tyr3d: (0.0, -2.0, 0.0)\n    test 275 tyr3d: (0.0, 0.0, -2.0)\n\n    test 276 Ltp: {'ecef': EcefFarrell22(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name='')}\n    test 277 name: Test\n    test 278 toStr: Ltp(lat0=33.0, lon0=44.0, height0=20.0, M=EcefMatrix(_0_0_=-0.694658, _0_1_=-0.391781, _0_2_=0.603289, _1_0_=0.71934, _1_1_=-0.378338, _1_2_=0.58259, _2_0_=0.0, _2_1_=0.838671, _2_2_=0.544639), ecef=EcefFarrell22(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Test')  FAILED, KNOWN, expected Ltp\n    test 279 copy(<class 'type'>): (<class 'pygeodesy.ltp.Ltp'>, True)\n    test 280 Ltp.copy(): (<class 'pygeodesy.ltp.Ltp'>, True)\n    test 281 New: lat0=33.0, lon0=44.0, height0=20.0, M=EcefMatrix(_0_0_=-0.694658, _0_1_=-0.391781, _0_2_=0.603289, _1_0_=0.71934, _1_1_=-0.378338, _1_2_=0.58259, _2_0_=0.0, _2_1_=0.838671, _2_2_=0.544639), ecef=EcefFarrell22(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Test'\n    test 282 forward: 37288.97, 33374.29, 5783.65\n    test 283 name: Test\n    test 284 reverse: 33.3, 44.4, 6000.0\n    test 285 name: Test\n    test 286 name: Paris\n    test 287 Paris: 48.833, 2.333, 0.0\n    test 288 forward: -37518.64, 229949.65, -4260.43\n    test 289 name: Calais\n    test 290 reverse: 50.9, 1.8, -0.0\n    test 291 name: Paris\n    test 292 reverse: -38000.0, 230000.0, -4000.0\n    test 293 reverse: 50.9, 1.79, 264.92\n    test 294 forward: -38223.7, 229964.2, -4000.0\n\n    test 295 Zermatt: lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefFarrell22(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'  FAILED, KNOWN, expected Ltp\n    test 296 Matterhorn: (45.976, 7.658, 4531.01)\n    test 297 xyz: (-7134.8, -4556.3, 2852.4)\n    test 298 _local2ecef: 4403757.602, 592124.536, 4566652.082\n    test 299 _local2ecef: (4403757.602, 592124.536, 4566652.082, 45.976, 7.658, 4531.01, 1, None, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))  FAILED, KNOWN, expected Ecef9Tuple\n    test 300 _local2ecef: Ecef9Tuple\n    test 301 _ecef2local: (-7134.8, -4556.3, 2852.4, 45.976, 7.658, 4531.01, Ltp(lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefFarrell22(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'), Ecef9Tuple(x=4403757.601549, y=592124.535536, z=4566652.082005, lat=45.976, lon=7.657999, height=4531.009609, C=1, M=None, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84)), None)  FAILED, KNOWN, expected Local9Tuple\n    test 302 _ecef2local: Local9Tuple\n    test 303 Xyz: (-7134.8, -4556.3, 2852.4, None)\n    test 304 Aer: (-7134.912, -4444.548, 2852.474, None)\n    test 305 Enu: (-7134.8, -4556.3, 2852.4, None)\n    test 306 Ned: [-4556.3, -7134.8, -2852.4]\n    test 307 Enu: [-7134.8, -4556.3, 2852.4]\n    test 308 Ned: [-4556.3, -7134.8, -2852.4]\n\n    test 309 lon00: (90.0, 57.3, 0.0, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 310 lon00: (90.0, 3.75, 0.0, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n\n    test 311 Frustum: 90.0, 90.0\n    test 312 hfov: 90.0\n    test 313 vfov: 90.0\n    test 314 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None))\n    test 315 footprint.xyzLocal5: ([X:0.0, Y:0.0, Z:0.0], [X:1000.0, Y:1000.0, Z:0.0], [X:1000.0, Y:1000.0, Z:0.0], [X:-1000.0, Y:-1000.0, Z:0.0], [X:-1000.0, Y:-1000.0, Z:0.0])\n    test 316 footprint.toLatLon5: (LatLon_(00.0°N, 000.0°E), LatLon_(00.009044°N, 000.008983°E, +0.16), LatLon_(00.009044°N, 000.008983°E, +0.16), LatLon_(00.009044°S, 000.008983°W, +0.16), LatLon_(00.009044°S, 000.008983°W, +0.16))\n\n    test 317 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None))\n    test 318 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=414.213562, y=414.213562, z=0.0, ltp=None), Xyz4Tuple(x=414.213562, y=414.213562, z=0.0, ltp=None), Xyz4Tuple(x=-414.213562, y=-414.213562, z=0.0, ltp=None), Xyz4Tuple(x=-414.213562, y=-414.213562, z=0.0, ltp=None))\n    test 319 footprint: (Xyz4Tuple(x=-57289.961631, y=-57289.961631, z=0.0, ltp=None), Xyz4Tuple(x=2538.647896, y=2538.647896, z=0.0, ltp=None), Xyz4Tuple(x=2538.647896, y=2538.647896, z=0.0, ltp=None), Xyz4Tuple(x=-2299.842547, y=-2299.842547, z=0.0, ltp=None), Xyz4Tuple(x=-2299.842547, y=-2299.842547, z=0.0, ltp=None))\n\n    test 320 Attitude: (0.0, -10.0, 330.0, -20.0)\n    test 321 alt: 0.0\n    test 322 tilt: -10.0\n    test 323 roll: -20.0\n    test 324 yaw: 330.0\n    test 325 matrix: ((0.8137976813493736, -0.44096961052988237, -0.37852230636979256), (0.46984631039295416, 0.8825641192593855, -0.01802831123629728), (0.3420201433256688, -0.16317591116653488, 0.9254165783983233))  FAILED, KNOWN, expected ((0.8137976813493737, -0.4409696105298823, -0.3785223063697926), (0.4698463103929541, 0.8825641192593856, -0.01802831123629725), (0.3420201433256688, -0.16317591116653488, 0.9254165783983233))\n    test 326 rotate: (-0.005694, 1.334382, 1.104261)\n    test 327 tyr3d: (0.0, 0.0, 0.0)\n    test 328 tyr3d: (0.0, -2.0, 0.0)\n    test 329 tyr3d: (0.0, -2.0, 0.0)\n    test 330 tyr3d: (0.0, 0.0, -2.0)\n\n    test 331 Ltp: {'ecef': EcefVeness(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name='')}\n    test 332 name: Test\n    test 333 toStr: Ltp(lat0=33.0, lon0=44.0, height0=20.0, M=EcefMatrix(_0_0_=-0.694658, _0_1_=-0.391781, _0_2_=0.603289, _1_0_=0.71934, _1_1_=-0.378338, _1_2_=0.58259, _2_0_=0.0, _2_1_=0.838671, _2_2_=0.544639), ecef=EcefVeness(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Test')  FAILED, KNOWN, expected Ltp\n    test 334 copy(<class 'type'>): (<class 'pygeodesy.ltp.Ltp'>, True)\n    test 335 Ltp.copy(): (<class 'pygeodesy.ltp.Ltp'>, True)\n    test 336 New: lat0=33.0, lon0=44.0, height0=20.0, M=EcefMatrix(_0_0_=-0.694658, _0_1_=-0.391781, _0_2_=0.603289, _1_0_=0.71934, _1_1_=-0.378338, _1_2_=0.58259, _2_0_=0.0, _2_1_=0.838671, _2_2_=0.544639), ecef=EcefVeness(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Test'\n    test 337 forward: 37288.97, 33374.29, 5783.65\n    test 338 name: Test\n    test 339 reverse: 33.3, 44.4, 6000.0\n    test 340 name: Test\n    test 341 name: Paris\n    test 342 Paris: 48.833, 2.333, 0.0\n    test 343 forward: -37518.64, 229949.65, -4260.43\n    test 344 name: Calais\n    test 345 reverse: 50.9, 1.8, -0.0\n    test 346 name: Paris\n    test 347 reverse: -38000.0, 230000.0, -4000.0\n    test 348 reverse: 50.9, 1.79, 264.92\n    test 349 forward: -38223.7, 229964.2, -4000.0\n\n    test 350 Zermatt: lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefVeness(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'  FAILED, KNOWN, expected Ltp\n    test 351 Matterhorn: (45.976, 7.658, 4531.01)\n    test 352 xyz: (-7134.8, -4556.3, 2852.4)\n    test 353 _local2ecef: 4403757.602, 592124.536, 4566652.082\n    test 354 _local2ecef: (4403757.602, 592124.536, 4566652.082, 45.976, 7.658, 4531.01, 1, None, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))  FAILED, KNOWN, expected Ecef9Tuple\n    test 355 _local2ecef: Ecef9Tuple\n    test 356 _ecef2local: (-7134.8, -4556.3, 2852.4, 45.976, 7.658, 4531.01, Ltp(lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefVeness(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'), Ecef9Tuple(x=4403757.601549, y=592124.535536, z=4566652.082005, lat=45.976, lon=7.657999, height=4531.009608, C=1, M=None, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84)), None)  FAILED, KNOWN, expected Local9Tuple\n    test 357 _ecef2local: Local9Tuple\n    test 358 Xyz: (-7134.8, -4556.3, 2852.4, None)\n    test 359 Aer: (-7134.912, -4444.548, 2852.474, None)\n    test 360 Enu: (-7134.8, -4556.3, 2852.4, None)\n    test 361 Ned: [-4556.3, -7134.8, -2852.4]\n    test 362 Enu: [-7134.8, -4556.3, 2852.4]\n    test 363 Ned: [-4556.3, -7134.8, -2852.4]\n\n    test 364 lon00: (90.0, 57.3, 0.0, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 365 lon00: (90.0, 3.75, 0.0, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n\n    test 366 Frustum: 90.0, 90.0\n    test 367 hfov: 90.0\n    test 368 vfov: 90.0\n    test 369 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None))\n    test 370 footprint.xyzLocal5: ([X:0.0, Y:0.0, Z:0.0], [X:1000.0, Y:1000.0, Z:0.0], [X:1000.0, Y:1000.0, Z:0.0], [X:-1000.0, Y:-1000.0, Z:0.0], [X:-1000.0, Y:-1000.0, Z:0.0])\n    test 371 footprint.toLatLon5: (LatLon_(00.0°N, 000.0°E), LatLon_(00.009044°N, 000.008983°E, +0.16), LatLon_(00.009044°N, 000.008983°E, +0.16), LatLon_(00.009044°S, 000.008983°W, +0.16), LatLon_(00.009044°S, 000.008983°W, +0.16))\n\n    test 372 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None))\n    test 373 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=414.213562, y=414.213562, z=0.0, ltp=None), Xyz4Tuple(x=414.213562, y=414.213562, z=0.0, ltp=None), Xyz4Tuple(x=-414.213562, y=-414.213562, z=0.0, ltp=None), Xyz4Tuple(x=-414.213562, y=-414.213562, z=0.0, ltp=None))\n    test 374 footprint: (Xyz4Tuple(x=-57289.961631, y=-57289.961631, z=0.0, ltp=None), Xyz4Tuple(x=2538.647896, y=2538.647896, z=0.0, ltp=None), Xyz4Tuple(x=2538.647896, y=2538.647896, z=0.0, ltp=None), Xyz4Tuple(x=-2299.842547, y=-2299.842547, z=0.0, ltp=None), Xyz4Tuple(x=-2299.842547, y=-2299.842547, z=0.0, ltp=None))\n\n    test 375 Attitude: (0.0, -10.0, 330.0, -20.0)\n    test 376 alt: 0.0\n    test 377 tilt: -10.0\n    test 378 roll: -20.0\n    test 379 yaw: 330.0\n    test 380 matrix: ((0.8137976813493736, -0.44096961052988237, -0.37852230636979256), (0.46984631039295416, 0.8825641192593855, -0.01802831123629728), (0.3420201433256688, -0.16317591116653488, 0.9254165783983233))  FAILED, KNOWN, expected ((0.8137976813493737, -0.4409696105298823, -0.3785223063697926), (0.4698463103929541, 0.8825641192593856, -0.01802831123629725), (0.3420201433256688, -0.16317591116653488, 0.9254165783983233))\n    test 381 rotate: (-0.005694, 1.334382, 1.104261)\n    test 382 tyr3d: (0.0, 0.0, 0.0)\n    test 383 tyr3d: (0.0, -2.0, 0.0)\n    test 384 tyr3d: (0.0, -2.0, 0.0)\n    test 385 tyr3d: (0.0, 0.0, -2.0)\n\n    test 386 Ltp: {'ecef': EcefSudano(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name='')}\n    test 387 name: Test\n    test 388 toStr: Ltp(lat0=33.0, lon0=44.0, height0=20.0, M=EcefMatrix(_0_0_=-0.694658, _0_1_=-0.391781, _0_2_=0.603289, _1_0_=0.71934, _1_1_=-0.378338, _1_2_=0.58259, _2_0_=0.0, _2_1_=0.838671, _2_2_=0.544639), ecef=EcefSudano(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Test')  FAILED, KNOWN, expected Ltp\n    test 389 copy(<class 'type'>): (<class 'pygeodesy.ltp.Ltp'>, True)\n    test 390 Ltp.copy(): (<class 'pygeodesy.ltp.Ltp'>, True)\n    test 391 New: lat0=33.0, lon0=44.0, height0=20.0, M=EcefMatrix(_0_0_=-0.694658, _0_1_=-0.391781, _0_2_=0.603289, _1_0_=0.71934, _1_1_=-0.378338, _1_2_=0.58259, _2_0_=0.0, _2_1_=0.838671, _2_2_=0.544639), ecef=EcefSudano(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Test'\n    test 392 forward: 37288.97, 33374.29, 5783.65\n    test 393 name: Test\n    test 394 reverse: 33.33, 44.4, 5998.84  FAILED, KNOWN, expected 33.3, 44.4, 6000.0\n    test 395 name: Test\n    test 396 name: Paris\n    test 397 Paris: 48.833, 2.333, 0.0\n    test 398 forward: -37518.64, 229949.65, -4260.43\n    test 399 name: Calais\n    test 400 reverse: 51.01, 1.8, -11.8  FAILED, KNOWN, expected 50.9, 1.8, -0.0\n    test 401 name: Paris\n    test 402 reverse: -38000.0, 230000.0, -4000.0\n    test 403 reverse: 51.01, 1.79, 253.12  FAILED, KNOWN, expected 50.9, 1.79, 264.92\n    test 404 forward: -38223.7, 229964.2, -4000.0\n\n    test 405 Zermatt: lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefSudano(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'  FAILED, KNOWN, expected Ltp\n    test 406 Matterhorn: (46.06, 7.658, 4524.116)  FAILED, KNOWN, expected (45.976, 7.658, 4531.01)\n    test 407 xyz: (-7124.0, 4817.7, 2845.3)  FAILED, KNOWN, expected (-7134.8, -4556.3, 2852.4)\n    test 408 _local2ecef: 4403757.602, 592124.536, 4566652.082\n    test 409 _local2ecef: (4403757.602, 592124.536, 4566652.082, 46.06, 7.658, 4524.116, 1, None, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))  FAILED, KNOWN, expected Ecef9Tuple\n    test 410 _local2ecef: Ecef9Tuple\n    test 411 _ecef2local: (-7134.8, -4556.3, 2852.4, 46.06, 7.658, 4524.116, Ltp(lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefSudano(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'), Ecef9Tuple(x=4403757.601549, y=592124.535536, z=4566652.082005, lat=46.060275, lon=7.657999, height=4524.115631, C=1, M=None, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84)), None)  FAILED, KNOWN, expected Local9Tuple\n    test 412 _ecef2local: Local9Tuple\n    test 413 Xyz: (-7134.8, -4556.3, 2852.4, None)\n    test 414 Aer: (-7134.912, -4444.548, 2852.474, None)\n    test 415 Enu: (-7134.8, -4556.3, 2852.4, None)\n    test 416 Ned: [-4556.3, -7134.8, -2852.4]\n    test 417 Enu: [-7134.8, -4556.3, 2852.4]\n    test 418 Ned: [-4556.3, -7134.8, -2852.4]\n\n    test 419 lon00: (90.0, 57.3, 0.0, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 420 lon00: (90.0, 3.75, 0.0, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n\n    test 421 Frustum: 90.0, 90.0\n    test 422 hfov: 90.0\n    test 423 vfov: 90.0\n    test 424 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None))\n    test 425 footprint.xyzLocal5: ([X:0.0, Y:0.0, Z:0.0], [X:1000.0, Y:1000.0, Z:0.0], [X:1000.0, Y:1000.0, Z:0.0], [X:-1000.0, Y:-1000.0, Z:0.0], [X:-1000.0, Y:-1000.0, Z:0.0])\n    test 426 footprint.toLatLon5: (LatLon_(00.0°N, 000.0°E), LatLon_(00.009044°N, 000.008983°E, +0.16), LatLon_(00.009044°N, 000.008983°E, +0.16), LatLon_(00.009044°S, 000.008983°W, +0.16), LatLon_(00.009044°S, 000.008983°W, +0.16))\n\n    test 427 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None))\n    test 428 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=414.213562, y=414.213562, z=0.0, ltp=None), Xyz4Tuple(x=414.213562, y=414.213562, z=0.0, ltp=None), Xyz4Tuple(x=-414.213562, y=-414.213562, z=0.0, ltp=None), Xyz4Tuple(x=-414.213562, y=-414.213562, z=0.0, ltp=None))\n    test 429 footprint: (Xyz4Tuple(x=-57289.961631, y=-57289.961631, z=0.0, ltp=None), Xyz4Tuple(x=2538.647896, y=2538.647896, z=0.0, ltp=None), Xyz4Tuple(x=2538.647896, y=2538.647896, z=0.0, ltp=None), Xyz4Tuple(x=-2299.842547, y=-2299.842547, z=0.0, ltp=None), Xyz4Tuple(x=-2299.842547, y=-2299.842547, z=0.0, ltp=None))\n\n    test 430 Attitude: (0.0, -10.0, 330.0, -20.0)\n    test 431 alt: 0.0\n    test 432 tilt: -10.0\n    test 433 roll: -20.0\n    test 434 yaw: 330.0\n    test 435 matrix: ((0.8137976813493736, -0.44096961052988237, -0.37852230636979256), (0.46984631039295416, 0.8825641192593855, -0.01802831123629728), (0.3420201433256688, -0.16317591116653488, 0.9254165783983233))  FAILED, KNOWN, expected ((0.8137976813493737, -0.4409696105298823, -0.3785223063697926), (0.4698463103929541, 0.8825641192593856, -0.01802831123629725), (0.3420201433256688, -0.16317591116653488, 0.9254165783983233))\n    test 436 rotate: (-0.005694, 1.334382, 1.104261)\n    test 437 tyr3d: (0.0, 0.0, 0.0)\n    test 438 tyr3d: (0.0, -2.0, 0.0)\n    test 439 tyr3d: (0.0, -2.0, 0.0)\n    test 440 tyr3d: (0.0, 0.0, -2.0)\n\n    test 441 Ltp: {'ecef': EcefYou(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name='')}\n    test 442 name: Test\n    test 443 toStr: Ltp(lat0=33.0, lon0=44.0, height0=20.0, M=EcefMatrix(_0_0_=-0.694658, _0_1_=-0.391781, _0_2_=0.603289, _1_0_=0.71934, _1_1_=-0.378338, _1_2_=0.58259, _2_0_=0.0, _2_1_=0.838671, _2_2_=0.544639), ecef=EcefYou(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Test')  FAILED, KNOWN, expected Ltp\n    test 444 copy(<class 'type'>): (<class 'pygeodesy.ltp.Ltp'>, True)\n    test 445 Ltp.copy(): (<class 'pygeodesy.ltp.Ltp'>, True)\n    test 446 New: lat0=33.0, lon0=44.0, height0=20.0, M=EcefMatrix(_0_0_=-0.694658, _0_1_=-0.391781, _0_2_=0.603289, _1_0_=0.71934, _1_1_=-0.378338, _1_2_=0.58259, _2_0_=0.0, _2_1_=0.838671, _2_2_=0.544639), ecef=EcefYou(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Test'\n    test 447 forward: 37288.97, 33374.29, 5783.65\n    test 448 name: Test\n    test 449 reverse: 33.3, 44.4, 6000.0\n    test 450 name: Test\n    test 451 name: Paris\n    test 452 Paris: 48.833, 2.333, 0.0\n    test 453 forward: -37518.64, 229949.65, -4260.43\n    test 454 name: Calais\n    test 455 reverse: 50.9, 1.8, -0.0\n    test 456 name: Paris\n    test 457 reverse: -38000.0, 230000.0, -4000.0\n    test 458 reverse: 50.9, 1.79, 264.92\n    test 459 forward: -38223.7, 229964.2, -4000.0\n\n    test 460 Zermatt: lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefYou(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'  FAILED, KNOWN, expected Ltp\n    test 461 Matterhorn: (45.976, 7.658, 4531.01)\n    test 462 xyz: (-7134.8, -4556.3, 2852.4)\n    test 463 _local2ecef: 4403757.602, 592124.536, 4566652.082\n    test 464 _local2ecef: (4403757.602, 592124.536, 4566652.082, 45.976, 7.658, 4531.01, 1, None, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))  FAILED, KNOWN, expected Ecef9Tuple\n    test 465 _local2ecef: Ecef9Tuple\n    test 466 _ecef2local: (-7134.8, -4556.3, 2852.4, 45.976, 7.658, 4531.01, Ltp(lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefYou(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'), Ecef9Tuple(x=4403757.601549, y=592124.535536, z=4566652.082005, lat=45.976, lon=7.657999, height=4531.009608, C=1, M=None, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84)), None)  FAILED, KNOWN, expected Local9Tuple\n    test 467 _ecef2local: Local9Tuple\n    test 468 Xyz: (-7134.8, -4556.3, 2852.4, None)\n    test 469 Aer: (-7134.912, -4444.548, 2852.474, None)\n    test 470 Enu: (-7134.8, -4556.3, 2852.4, None)\n    test 471 Ned: [-4556.3, -7134.8, -2852.4]\n    test 472 Enu: [-7134.8, -4556.3, 2852.4]\n    test 473 Ned: [-4556.3, -7134.8, -2852.4]\n\n    test 474 lon00: (90.0, 57.3, 0.0, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 475 lon00: (90.0, 3.75, 0.0, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n\n    test 476 Frustum: 90.0, 90.0\n    test 477 hfov: 90.0\n    test 478 vfov: 90.0\n    test 479 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None))\n    test 480 footprint.xyzLocal5: ([X:0.0, Y:0.0, Z:0.0], [X:1000.0, Y:1000.0, Z:0.0], [X:1000.0, Y:1000.0, Z:0.0], [X:-1000.0, Y:-1000.0, Z:0.0], [X:-1000.0, Y:-1000.0, Z:0.0])\n    test 481 footprint.toLatLon5: (LatLon_(00.0°N, 000.0°E), LatLon_(00.009044°N, 000.008983°E, +0.16), LatLon_(00.009044°N, 000.008983°E, +0.16), LatLon_(00.009044°S, 000.008983°W, +0.16), LatLon_(00.009044°S, 000.008983°W, +0.16))\n\n    test 482 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None))\n    test 483 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=414.213562, y=414.213562, z=0.0, ltp=None), Xyz4Tuple(x=414.213562, y=414.213562, z=0.0, ltp=None), Xyz4Tuple(x=-414.213562, y=-414.213562, z=0.0, ltp=None), Xyz4Tuple(x=-414.213562, y=-414.213562, z=0.0, ltp=None))\n    test 484 footprint: (Xyz4Tuple(x=-57289.961631, y=-57289.961631, z=0.0, ltp=None), Xyz4Tuple(x=2538.647896, y=2538.647896, z=0.0, ltp=None), Xyz4Tuple(x=2538.647896, y=2538.647896, z=0.0, ltp=None), Xyz4Tuple(x=-2299.842547, y=-2299.842547, z=0.0, ltp=None), Xyz4Tuple(x=-2299.842547, y=-2299.842547, z=0.0, ltp=None))\n\n    test 485 Attitude: (0.0, -10.0, 330.0, -20.0)\n    test 486 alt: 0.0\n    test 487 tilt: -10.0\n    test 488 roll: -20.0\n    test 489 yaw: 330.0\n    test 490 matrix: ((0.8137976813493736, -0.44096961052988237, -0.37852230636979256), (0.46984631039295416, 0.8825641192593855, -0.01802831123629728), (0.3420201433256688, -0.16317591116653488, 0.9254165783983233))  FAILED, KNOWN, expected ((0.8137976813493737, -0.4409696105298823, -0.3785223063697926), (0.4698463103929541, 0.8825641192593856, -0.01802831123629725), (0.3420201433256688, -0.16317591116653488, 0.9254165783983233))\n    test 491 rotate: (-0.005694, 1.334382, 1.104261)\n    test 492 tyr3d: (0.0, 0.0, 0.0)\n    test 493 tyr3d: (0.0, -2.0, 0.0)\n    test 494 tyr3d: (0.0, -2.0, 0.0)\n    test 495 tyr3d: (0.0, 0.0, -2.0)\n\n    test 496 ChLV: ...\n    test 497 name: Test\n    test 498 ChLV_: ChLV\n\n    test 499 forward1: (-72.039994, -147.361444, -49.552111, 46.95108, 7.438637, 0.0, ChLV(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n    test 500 Y, X, h_: (-72.03999403763596, -147.36144397473055, -49.552110733726806)\n    test 501 EN2_LV95: (2599927.960006, 1199852.638556)\n    test 502 yx2_LV03: (599927.960006, 199852.638556)\n    test 503 reverse1: (-72.039994, -147.361444, -49.552111, 46.95108, 7.438637, 0.0, ChLV(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n\n    test 504 reverse2: (100000.0, 0.0, 600.0, 46.944873, 8.752874, 1431.948128, ChLV(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n    test 505 forward2: (100000.0, 0.0, 600.0, 46.944873, 8.752874, 1431.948128, ChLV(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n    test 506 Y, X, h_: (100000.00000000006, -6.593268153665122e-10, 600.0000000007235)\n    test 507 EN2_LV95: (2700000.0, 1200000.0)\n    test 508 yx2_LV03: (700000.0, 200000.0)\n\n    test 509 forward3: (99920.639806, -100148.24791, -967.661696, 46.044131, 8.730497, 650.6, ChLV(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n    test 510 Y, X, h_: (99920.63980649531, -100148.24791021261, -967.6616955399913)\n    test 511 EN2_LV95: (2699920.639806, 1099851.75209)\n    test 512 yx2_LV03: (699920.639806, 99851.75209)\n    test 513 reverse3: (99920.639806, -100148.24791, -967.661696, 46.044131, 8.730497, 650.6, ChLV(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n\n    test 514 forward4: (79527.502386, 12274.804229, -556.312155, 47.058043, 8.48642, 0.0, ChLV(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n    test 515 Y, X, h_: (79527.50238583283, 12274.804228939269, -556.3121548987456)\n    test 516 EN2_LV95: (2679527.502386, 1212274.804229)\n    test 517 yx2_LV03: (679527.502386, 212274.804229)\n    test 518 reverse4: (79527.502386, 12274.804229, -556.312155, 47.058043, 8.48642, -0.0, ChLV(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n\n    test 519 REFRAME1: (8.616351530455896, 46.654750670631664, 3083.4064441197074)  FAILED, KNOWN, expected (8.61588452888461, 46.6532932166132, 2367.70367439557)\n    test 520 REFRAME1:  0.00146 m\n    test 521 REFRAME2: (10.204043023734306, 46.777835938708535, 5053.168786317753)  FAILED, KNOWN, expected (10.2046874099038, 46.7763864160066, 1546.62256775331)\n    test 522 REFRAME2:  0.00145 m\n    test 523 REFRAME3: (7.231565437123991, 47.395386713752515, 1150.358929550846)  FAILED, KNOWN, expected (7.23058814336896, 47.3941353658685, 940.206020880491)\n    test 524 REFRAME3:  0.00125 m\n    test 525 REFRAME4: (9.843252123471997, 46.814319314291666, 4291.256736215736)  FAILED, KNOWN, expected (9.84351348200287, 46.8129146868336, 1645.59174753912)\n    test 526 REFRAME4:  0.0014 m\n    test 527 REFRAME5: (6.568908171267955, 46.52284580890318, 985.7597106108213)  FAILED, KNOWN, expected (6.56789363190021, 46.5214647527993, 460.491580192)\n    test 528 REFRAME5:  0.00138 m\n    test 529 REFRAME6: (8.731242095241983, 46.04567715552448, 2216.7888714367236)  FAILED, KNOWN, expected (8.73049738375132, 46.0441209510033, 650.012275829911)\n    test 530 REFRAME6:  0.00156 m\n\n    test 531 Bollinger.lat: 46°11′13.03444″N  FAILED, KNOWN, expected 46°11′12.03969″N\n    test 532 Bollinger.lon: 009°07′55.69155″E  FAILED, KNOWN, expected 009°07′57.29664″E\n    test 533 Zermatt: (46.01693292843191, 7.7455811694023975, 2629.5454517406183)  FAILED, KNOWN, expected (46.015314107, 7.74720273, 1742.449)\n    test 534 Zermatt:  0.00162 m\n    test 535 Zimmerwald: (46.878427446046224, 7.466218796566257, 953.0972897404835)  FAILED, KNOWN, expected (46.878427446, 7.466218797, 953.0973)\n    test 536 Zimmerwald:  4.34e-10 m\n    test 537 Chrischona: (47.56830864684501, 7.66954858440231, 897.4060435656095)  FAILED, KNOWN, expected (47.568308647, 7.6695485844, 897.406)\n    test 538 Chrischona:  1.55e-10 m\n    test 539 Pfaender: (47.516320169780975, 9.784378737247414, 3868.8598426346603)  FAILED, KNOWN, expected (47.5163201698, 9.7843787372, 3868.8599)\n    test 540 Pfaender:  4.74e-11 m\n    test 541 La Givrine: (46.45557406857667, 6.103316269663712, 2313.9449708991415)  FAILED, KNOWN, expected (46.4555740686, 6.1033162697, 2313.94497)\n    test 542 La Givrine:  3.63e-11 m\n    test 543 Monte Generoso: (45.93111844449693, 9.021602047098654, 3855.4332412055323)  FAILED, KNOWN, expected (45.9311184445, 9.0216020471, 3855.4332)\n    test 544 Monte Generoso:  3.07e-12 m\n\n    test 545 ChLVa: ...\n    test 546 name: Test\n    test 547 ChLV_: ChLVa\n\n    test 548 forward1: (0.329415, -0.292702, -49.554242, 46.95108, 7.438637, 0.0, ChLVa(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n    test 549 Y, X, h_: (0.32941546850192266, -0.2927016084473125, -49.554241824400016)\n    test 550 EN2_LV95: (2600000.329415, 1199999.707298)\n    test 551 yx2_LV03: (600000.329415, 199999.707298)\n    test 552 reverse1: (0.329415, -0.292702, -49.554242, 46.951078, 7.438642, -0.004239, ChLVa(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n\n    test 553 reverse2: (100000.0, -100000.0, 600.0, 46.044127, 8.730499, 650.554, ChLVa(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n    test 554 forward2: (99999.933937, -100000.44412, 600.003469, 46.044127, 8.730499, 650.554, ChLVa(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n    test 555 Y, X, h_: (99999.933937317, -100000.44412018938, 600.0034685464)\n    test 556 EN2_LV95: (2699999.933937, 1099999.55588)\n    test 557 yx2_LV03: (699999.933937, 99999.55588)\n\n    test 558 forward3: (99999.763621, -100000.026905, 600.049476, 46.044131, 8.730497, 650.6, ChLVa(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n    test 559 Y, X, h_: (99999.76362116335, -100000.0269049639, 600.0494759100001)\n    test 560 EN2_LV95: (2699999.763621, 1099999.973095)\n    test 561 yx2_LV03: (699999.763621, 99999.973095)\n    test 562 reverse3: (99999.763621, -100000.026905, 600.049476, 46.044127, 8.730496, 650.603479, ChLVa(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n\n    test 563 forward4: (79602.736359, 12421.914221, -48.257243, 47.058043, 8.48642, 0.0, ChLVa(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n    test 564 Y, X, h_: (79602.73635877526, 12421.914220824741, -48.25724328779257)\n    test 565 EN2_LV95: (2679602.736359, 1212421.914221)\n    test 566 yx2_LV03: (679602.736359, 212421.914221)\n    test 567 reverse4: (79602.736359, 12421.914221, -48.257243, 47.058038, 8.486421, 0.00853, ChLVa(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n\n    test 568 REFRAME1: (8.615878879495897, 46.65329026883798, 2365.31877736998)  FAILED, KNOWN, expected (8.61588452888461, 46.6532932166132, 2367.70367439557)\n    test 569 REFRAME1:  5.65e-06 m\n    test 570 REFRAME2: (10.204675703252203, 46.77638487390875, 1542.5231657804)  FAILED, KNOWN, expected (10.2046874099038, 46.7763864160066, 1546.62256775331)\n    test 571 REFRAME2:  1.17e-05 m\n    test 572 REFRAME3: (7.230597895755378, 47.394131639593425, 939.5622657947999)  FAILED, KNOWN, expected (7.23058814336896, 47.3941353658685, 940.206020880491)\n    test 573 REFRAME3:  9.75e-06 m\n    test 574 REFRAME4: (9.843502988079765, 46.812913925274714, 1642.70478811448)  FAILED, KNOWN, expected (9.84351348200287, 46.8129146868336, 1645.59174753912)\n    test 575 REFRAME4:  1.05e-05 m\n    test 576 REFRAME5: (6.5678939352793595, 46.52146855855015, 462.1027394584)  FAILED, KNOWN, expected (6.56789363190021, 46.5214647527993, 460.491580192)\n    test 577 REFRAME5:  3.81e-06 m\n    test 578 REFRAME6: (8.730499333333333, 46.04412677777778, 650.554)  FAILED, KNOWN, expected (8.73049738375132, 46.0441209510033, 650.012275829911)\n    test 579 REFRAME6:  5.83e-06 m\n\n    test 580 Bollinger.lat: 46°11′07.65425″N  FAILED, KNOWN, expected 46°11′12.03969″N\n    test 581 Bollinger.lon: 009°07′52.99874″E  FAILED, KNOWN, expected 009°07′57.29664″E\n    test 582 Zermatt: (46.01531297876282, 7.744712831892469, 1739.1724096628)  FAILED, KNOWN, expected (46.015314107, 7.74720273, 1742.449)\n    test 583 Zermatt:  0.00249 m\n    test 584 Zimmerwald: (46.877092307814216, 7.465275686541408, 947.6256267527999)  FAILED, KNOWN, expected (46.878427446, 7.466218797, 953.0973)\n    test 585 Zimmerwald:  0.00134 m\n    test 586 Chrischona: (47.56704452300608, 7.668609312668058, 503.84493534800004)  FAILED, KNOWN, expected (47.568308647, 7.6695485844, 897.406)\n    test 587 Chrischona:  0.00126 m\n    test 588 Pfaender: (47.51533372240414, 9.784358161933795, 1088.46794437916)  FAILED, KNOWN, expected (47.5163201698, 9.7843787372, 3868.8599)\n    test 589 Pfaender:  0.000986 m\n    test 590 La Givrine: (46.45409066669543, 6.1020351431347315, 1259.50889260448)  FAILED, KNOWN, expected (46.4555740686, 6.1033162697, 2313.94497)\n    test 591 La Givrine:  0.00148 m\n    test 592 Monte Generoso: (45.92930092608269, 9.02121992500755, 1687.1468504651998)  FAILED, KNOWN, expected (45.9311184445, 9.0216020471, 3855.4332)\n    test 593 Monte Generoso:  0.00182 m\n\n    test 594 ChLVe: ...\n    test 595 name: Test\n    test 596 ChLV_: ChLVe\n\n    test 597 forward1: (-72.031251, -147.344948, -49.554242, 46.95108, 7.438637, 0.0, ChLVe(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n    test 598 Y, X, h_: (-72.031251437589, -147.3449483831346, -49.554241824400016)\n    test 599 EN2_LV95: (2599927.968749, 1199852.655052)\n    test 600 yx2_LV03: (599927.968749, 199852.655052)\n    test 601 reverse1: (-72.031251, -147.344948, -49.554242, 46.95108, 7.438637, 0.000002, ChLVe(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n\n    test 602 reverse2: (100000.0, 0.0, 600.0, 46.944869, 8.753274, 648.29, ChLVe(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n    test 603 forward2: (100000.000001, 0.0, 600.012265, 46.944869, 8.753274, 648.29, ChLVe(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n    test 604 Y, X, h_: (100000.00000057962, 1.8112534442566837e-07, 600.0122653531955)\n    test 605 EN2_LV95: (2700000.000001, 1200000.0)\n    test 606 yx2_LV03: (700000.000001, 200000.0)\n\n    test 607 forward3: (99914.740455, -100135.079382, 600.049476, 46.044131, 8.730497, 650.6, ChLVe(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n    test 608 Y, X, h_: (99914.74045471674, -100135.07938181334, 600.0494759100001)\n    test 609 EN2_LV95: (2699914.740455, 1099864.920618)\n    test 610 yx2_LV03: (699914.740455, 99864.920618)\n    test 611 reverse3: (99914.740455, -100135.079382, 600.049476, 46.044131, 8.730497, 650.607608, ChLVe(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n\n    test 612 forward4: (79520.050001, 12273.439993, -48.257243, 47.058043, 8.48642, 0.0, ChLVe(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n    test 613 Y, X, h_: (79520.05000103211, 12273.439993103837, -48.25724328779257)\n    test 614 EN2_LV95: (2679520.050001, 1212273.439993)\n    test 615 yx2_LV03: (679520.050001, 212273.439993)\n    test 616 reverse4: (79520.050001, 12273.439993, -48.257243, 47.058043, 8.48642, 0.012933, ChLVe(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n\n    test 617 REFRAME1: (8.617004216786864, 46.65457267826783, 2365.31877736998)  FAILED, KNOWN, expected (8.61588452888461, 46.6532932166132, 2367.70367439557)\n    test 618 REFRAME1:  0.00128 m\n    test 619 REFRAME2: (10.206045201491072, 46.777660119243905, 1542.5231657804)  FAILED, KNOWN, expected (10.2046874099038, 46.7763864160066, 1546.62256775331)\n    test 620 REFRAME2:  0.00136 m\n    test 621 REFRAME3: (7.231508661195409, 47.3955074884183, 939.5622657947999)  FAILED, KNOWN, expected (7.23058814336896, 47.3941353658685, 940.206020880491)\n    test 622 REFRAME3:  0.00137 m\n    test 623 REFRAME4: (9.844818386934287, 46.814198001739975, 1642.70478811448)  FAILED, KNOWN, expected (9.84351348200287, 46.8129146868336, 1645.59174753912)\n    test 624 REFRAME4:  0.0013 m\n    test 625 REFRAME5: (6.568709824649145, 46.5227385206423, 462.1027394584)  FAILED, KNOWN, expected (6.56789363190021, 46.5214647527993, 460.491580192)\n    test 626 REFRAME5:  0.00127 m\n    test 627 REFRAME6: (8.731627351611777, 46.04533300622348, 650.554)  FAILED, KNOWN, expected (8.73049738375132, 46.0441209510033, 650.012275829911)\n    test 628 REFRAME6:  0.00121 m\n\n    test 629 Bollinger.lat: 46°11′12.03969″N\n    test 630 Bollinger.lon: 009°07′57.29664″E\n    test 631 Bollinger.gamma: 1.3747154949761575\n\n    test 632 Zermatt: (46.016524980589146, 7.745700583699864, 1739.1724096628)  FAILED, KNOWN, expected (46.015314107, 7.74720273, 1742.449)\n    test 633 Zermatt:  0.0015 m\n    test 634 Zimmerwald: (46.878408134660475, 7.46622597045386, 947.6256267527999)  FAILED, KNOWN, expected (46.878427446, 7.466218797, 953.0973)\n    test 635 Zimmerwald:  1.93e-05 m\n    test 636 Chrischona: (47.56844071309313, 7.669595854297879, 503.84493534800004)  FAILED, KNOWN, expected (47.568308647, 7.6695485844, 897.406)\n    test 637 Chrischona:  0.000132 m\n    test 638 Pfaender: (47.51669640784962, 9.785678729594727, 1088.46794437916)  FAILED, KNOWN, expected (47.5163201698, 9.7843787372, 3868.8599)\n    test 639 Pfaender:  0.0013 m\n    test 640 La Givrine: (46.45534732351903, 6.102781792813614, 1259.50889260448)  FAILED, KNOWN, expected (46.4555740686, 6.1033162697, 2313.94497)\n    test 641 La Givrine:  0.000534 m\n    test 642 Monte Generoso: (45.93048753878003, 9.022387820586593, 1687.1468504651998)  FAILED, KNOWN, expected (45.9311184445, 9.0216020471, 3855.4332)\n    test 643 Monte Generoso:  0.000786 m\n\n    102 of 643 testLtp.py tests (15.9%) FAILED, incl. 90 KNOWN plus 12 DeprecationWarnings (pygeodesy 26.3.26 Python 3.11.9 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 1.24.2 scipy 1.10.1 Math 2 macOS 26.3.1 isLazy 0 -W  default) 184.186 ms\nrunning /usr/local/bin/p....n3.11 -W default ~/PyGeodesy/test/testLtpTuples.py\n\n    testing testLtpTuples.py 23.11.21\n\n    test 1 Aer.toRepr: [A:60.0°, E:40.0°, R:1000.0]\n    test 2 Aer.toStr: [60.0, 40.0, 1000.0]\n    test 3 Aer.xyzLocal.toAer: [60.0, 40.0, 1000.0]\n    test 4 Aer.xyzLocal.toAer: [60.0, 40.0, 1000.0]\n    test 5 Aer.xyzLocal.toEnu: [663.41, 383.02, 642.79]\n    test 6 Enu.xyzLocal.toAer: [60.0, 40.0, 1000.0]\n    test 7 Aer.xyzLocal.toNed: [383.02, 663.41, -642.79]\n    test 8 Ned.xyzLocal.toAer: [60.0, 40.0, 1000.0]\n    test 9 Aer.xyzLocal.toXyz: [663.41, 383.02, 642.79]\n    test 10 Xyz.xyzLocal.toAer: [60.0, 40.0, 1000.0]\n    test 11 Aer.toCartesian: [4397663.96, 599165.33, 4568492.25]\n    test 12 Cartesian.toLocal Aer: [60.0, 40.0, 1000.0]\n    test 13 Aer.toLatLon: 46°01′13.6″N, 007°45′30.83″E, +2315.83m\n    test 14 LatLon.toLocal Aer: [60.0, 40.0, 1000.0]\n    test 15 Aer.azimuth: 60.0\n    test 16 Aer.elevation: 40.0\n    test 17 Aer.slantrange: 1000.0\n    test 18 Aer.groundrange: 766.044\n    test 19 Aer.east: 663.414\n    test 20 Aer.north: 383.022\n    test 21 Aer.up: 642.788\n    test 22 Aer.down: -642.788\n    test 23 Aer.x: 663.414\n    test 24 Aer.y: 383.022\n    test 25 Aer.z: 642.788\n    test 26 Aer.xyz: 663.414, 383.022, 642.788\n\n    test 27 Los: [A:45.0°, E:-45.0°, R:1.0]\n    test 28 Los: [E:0.5, N:0.5, U:-0.707]\n    test 29 Los: [U:-0.707, V:0.5, W:0.5]\n    test 30 Los: [E:0.5, N:0.5, U:-0.707]\n\n    test 31 Enu.toRepr: [E:100.0, N:200.0, U:1000.0]\n    test 32 Enu.toStr: [100.0, 200.0, 1000.0]\n    test 33 Enu.xyzLocal.toAer: [26.57, 77.4, 1024.7]\n    test 34 Aer.xyzLocal.toEnu: [100.0, 200.0, 1000.0]\n    test 35 Enu.xyzLocal.toEnu: [100.0, 200.0, 1000.0]\n    test 36 Enu.xyzLocal.toEnu: [100.0, 200.0, 1000.0]\n    test 37 Enu.xyzLocal.toNed: [200.0, 100.0, -1000.0]\n    test 38 Ned.xyzLocal.toEnu: [100.0, 200.0, 1000.0]\n    test 39 Enu.xyzLocal.toXyz: [100.0, 200.0, 1000.0]\n    test 40 Xyz.xyzLocal.toEnu: [100.0, 200.0, 1000.0]\n    test 41 Enu.toCartesian: [4398116.23, 598658.27, 4568622.18]\n    test 42 Cartesian.toLocal Enu: [100.0, 200.0, 1000.0]\n    test 43 Enu.toLatLon: 46°01′07.67″N, 007°45′04.65″E, +2673.00m\n    test 44 LatLon.toLocal Enu: [100.0, 200.0, 1000.0]\n    test 45 Enu.azimuth: 26.565\n    test 46 Enu.elevation: 77.396\n    test 47 Enu.slantrange: 1024.695\n    test 48 Enu.groundrange: 223.607\n    test 49 Enu.east: 100.0\n    test 50 Enu.north: 200.0\n    test 51 Enu.up: 1000.0\n    test 52 Enu.down: -1000.0\n    test 53 Enu.x: 100.0\n    test 54 Enu.y: 200.0\n    test 55 Enu.z: 1000.0\n    test 56 Enu.xyz: 100.0, 200.0, 1000.0\n\n    test 57 Los: [A:45.0°, E:-45.0°, R:1.0]\n    test 58 Los: [E:0.5, N:0.5, U:-0.707]\n    test 59 Los: [U:-0.707, V:0.5, W:0.5]\n    test 60 Los: [E:0.5, N:0.5, U:-0.707]\n\n    test 61 Ned.toRepr: [N:200.0, E:100.0, D:1000.0]\n    test 62 Ned.toStr: [200.0, 100.0, 1000.0]\n    test 63 Ned.xyzLocal.toAer: [26.57, -77.4, 1024.7]\n    test 64 Aer.xyzLocal.toNed: [200.0, 100.0, 1000.0]\n    test 65 Ned.xyzLocal.toEnu: [100.0, 200.0, -1000.0]\n    test 66 Enu.xyzLocal.toNed: [200.0, 100.0, 1000.0]\n    test 67 Ned.xyzLocal.toNed: [200.0, 100.0, 1000.0]\n    test 68 Ned.xyzLocal.toNed: [200.0, 100.0, 1000.0]\n    test 69 Ned.xyzLocal.toXyz: [100.0, 200.0, -1000.0]\n    test 70 Xyz.xyzLocal.toNed: [200.0, 100.0, 1000.0]\n    test 71 Ned.toCartesian: [4396740.02, 598470.98, 4567183.09]\n    test 72 Cartesian.toLocal Ned: [200.0, 100.0, 1000.0]\n    test 73 Ned.toLatLon: 46°01′07.68″N, 007°45′04.65″E, +673.00m\n    test 74 LatLon.toLocal Ned: [200.0, 100.0, 1000.0]\n    test 75 Ned.azimuth: 26.565\n    test 76 Ned.elevation: -77.396\n    test 77 Ned.slantrange: 1024.695\n    test 78 Ned.groundrange: 223.607\n    test 79 Ned.east: 100.0\n    test 80 Ned.north: 200.0\n    test 81 Ned.up: -1000.0\n    test 82 Ned.down: 1000.0\n    test 83 Ned.x: 100.0\n    test 84 Ned.y: 200.0\n    test 85 Ned.z: -1000.0\n    test 86 Ned.xyz: 100.0, 200.0, -1000.0\n\n    test 87 Los: [A:45.0°, E:-45.0°, R:1.0]\n    test 88 Los: [E:0.5, N:0.5, U:-0.707]\n    test 89 Los: [U:-0.707, V:0.5, W:0.5]\n    test 90 Los: [E:0.5, N:0.5, U:-0.707]\n\n    test 91 Xyz.toRepr: [X:10.0, Y:20.0, Z:100.0]\n    test 92 Xyz.toStr: [10.0, 20.0, 100.0]\n    test 93 Xyz.xyzLocal.toAer: [26.57, 77.4, 102.47]\n    test 94 Aer.xyzLocal.toXyz: [10.0, 20.0, 100.0]\n    test 95 Xyz.xyzLocal.toEnu: [10.0, 20.0, 100.0]\n    test 96 Enu.xyzLocal.toXyz: [10.0, 20.0, 100.0]\n    test 97 Xyz.xyzLocal.toNed: [20.0, 10.0, -100.0]\n    test 98 Ned.xyzLocal.toXyz: [10.0, 20.0, 100.0]\n    test 99 Xyz.xyzLocal.toXyz: [10.0, 20.0, 100.0]\n    test 100 Xyz.xyzLocal.toXyz: [10.0, 20.0, 100.0]\n    test 101 Xyz.toCartesian: [4397637.41, 598502.28, 4567849.59]\n    test 102 Cartesian.toLocal Xyz: [10.0, 20.0, 100.0]\n    test 103 Xyz.toLatLon: 46°01′01.85″N, 007°45′00.46″E, +1773.00m\n    test 104 LatLon.toLocal Xyz: [10.0, 20.0, 100.0]\n    test 105 Xyz.azimuth: 26.565\n    test 106 Xyz.elevation: 77.396\n    test 107 Xyz.slantrange: 102.47\n    test 108 Xyz.groundrange: 22.361\n    test 109 Xyz.east: 10.0\n    test 110 Xyz.north: 20.0\n    test 111 Xyz.up: 100.0\n    test 112 Xyz.down: -100.0\n    test 113 Xyz.x: 10.0\n    test 114 Xyz.y: 20.0\n    test 115 Xyz.z: 100.0\n    test 116 Xyz.xyz: 10.0, 20.0, 100.0\n\n    test 117 Los: [A:45.0°, E:-45.0°, R:1.0]\n    test 118 Los: [E:0.5, N:0.5, U:-0.707]\n    test 119 Los: [U:-0.707, V:0.5, W:0.5]\n    test 120 Los: [E:0.5, N:0.5, U:-0.707]\n\n    test 121 Local9Tuple.toRepr: Local9Tuple(x=10.0, y=20.0, z=100.0, lat=46.02, lon=7.75, height=1773.0, ltp=Ltp(lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transfo\n    test 122 Local9Tuple.toStr: (10.0, 20.0, 100.0, 46.02, 7.75, 1773.0, Ltp(lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'\n    test 123 Local9Tuple.xyzLocal.toAer: [26.57, 77.4, 102.47]\n    test 124 Aer.xyzLocal.toLocal9Tuple: (10.0, 20.0, 100.0, 46.02, 7.75, 1773.0, Ltp(lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'\n    test 125 Local9Tuple.xyzLocal.toEnu: [10.0, 20.0, 100.0]\n    test 126 Enu.xyzLocal.toLocal9Tuple: (10.0, 20.0, 100.0, 46.02, 7.75, 1773.0, Ltp(lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'\n    test 127 Local9Tuple.xyzLocal.toNed: [20.0, 10.0, -100.0]\n    test 128 Ned.xyzLocal.toLocal9Tuple: (10.0, 20.0, 100.0, 46.02, 7.75, 1773.0, Ltp(lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'\n    test 129 Local9Tuple.xyzLocal.toXyz: [10.0, 20.0, 100.0]\n    test 130 Xyz.xyzLocal.toLocal9Tuple: (10.0, 20.0, 100.0, 46.02, 7.75, 1773.0, Ltp(lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'\n    test 131 Local9Tuple.toCartesian: [4397637.41, 598502.28, 4567849.59]\n    test 132 Local9Tuple.toLatLon: 46°01′01.85″N, 007°45′00.46″E, +1773.00m\n    test 133 Local9Tuple.azimuth: 26.565\n    test 134 Local9Tuple.elevation: 77.396\n    test 135 Local9Tuple.slantrange: 102.47\n    test 136 Local9Tuple.groundrange: 22.361\n    test 137 Local9Tuple.east: 10.0\n    test 138 Local9Tuple.north: 20.0\n    test 139 Local9Tuple.up: 100.0\n    test 140 Local9Tuple.down: -100.0\n    test 141 Local9Tuple.x: 10.0\n    test 142 Local9Tuple.y: 20.0\n    test 143 Local9Tuple.z: 100.0\n    test 144 Local9Tuple.xyz: 10.0, 20.0, 100.0\n    test 145 Local9Tuple.lat: 46.02\n    test 146 Local9Tuple.lon: 7.75\n    test 147 Local9Tuple.latlon: 46.02, 7.75\n    test 148 Local9Tuple.latlonheight: 46.02, 7.75, 1773.0\n    test 149 Local9Tuple.phi: 0.803\n    test 150 Local9Tuple.lam: 0.135\n    test 151 Local9Tuple.philam: 0.803, 0.135\n    test 152 Local9Tuple.philamheight: 0.803, 0.135, 1773.0\n\n    test 153 Los: [A:45.0°, E:-45.0°, R:1.0]\n    test 154 Los: [E:0.5, N:0.5, U:-0.707]\n    test 155 Los: [U:-0.707, V:0.5, W:0.5]\n    test 156 Los: [E:0.5, N:0.5, U:-0.707]\n\n    all 156 testLtpTuples.py tests passed (pygeodesy 26.3.26 Python 3.11.9 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 1.24.2 scipy 1.10.1 Math 2 macOS 26.3.1 isLazy 0 -W  default) 24.486 ms\nrunning /usr/local/bin/p....n3.11 -W default ~/PyGeodesy/test/testMgrs.py\n./test/testMgrs.py:88: DeprecationWarning: property_RO L{en100k<pygeodesy.mgrs.Mgrs.en100k>} has been DEPRECATED, use property C{EN}.\n  self.test(a, getattr(p, a), x)\n./test/testMgrs.py:88: DeprecationWarning: property_RO L{digraph<pygeodesy.mgrs.Mgrs.digraph>} has been DEPRECATED, use property C{EN}.\n  self.test(a, getattr(p, a), x)\n./test/testMgrs.py:94: DeprecationWarning: property_RO L{digraph<pygeodesy.mgrs.Mgrs6Tuple.digraph>} has been DEPRECATED, use attribute C{EN}.\n  self.test('digraph', m.digraph, m.EN, nt=1)  # DEPRECATED\n./test/testMgrs.py:117: DeprecationWarning: property_RO L{digraph<pygeodesy.mgrs.Mgrs4Tuple.digraph>} has been DEPRECATED, use attribute C{EN}.\n  self.test('digraph', t.digraph, t.EN)  # DEPRECATED\n\n    testing testMgrs.py 24.10.13 (module pygeodesy.mgrs 25.05.12)\n    test 1 Mgrs1: 42S XD 09705 38646\n    test 2 Mgrs1: [Z:42S, G:XD, E:09705, N:38646]\n    test 3 Mgrs2: 42S XD 19705 08646\n    test 4 Mgrs2: [Z:42S, G:XD, E:19705, N:08646]\n    test 5 Mgrs3: 42S XD 19000 38000\n    test 6 Mgrs3: [Z:42S, G:XD, E:19000, N:38000]\n    test 7 Mgrs4: 31U DQ 48251 11932\n    test 8 Mgrs4: [Z:31U, G:DQ, E:48251, N:11932]\n    test 9 Mgrs5: 31U DQ 48251 11932\n    test 10 Mgrs5: [Z:31U, G:DQ, E:48251, N:11932]\n    test 11 Mgrs6: 31U DQ 48251 11932\n    test 12 Mgrs6: [Z:31U, G:DQ, E:48251, N:11932]\n    test 13 Mgrs7: 31U DQ 48251 11932\n    test 14 Mgrs7: [Z:31U, G:DQ, E:48251, N:11932]\n    test 15 Mgrs8: 31 N 431000 4582000\n    test 16 Mgrs8: (41.38657, 2.174726, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), -0.54564, 0.999659)\n    test 17 Mgrs8: 31 N 431500 4582500\n    test 18 Mgrs8: 31T DF 31000 82000\n    test 19 Mgrs8: 41.391116°N, 002.180649°E\n    test 20 Mgrs8: 31T DF 31000 82000\n    test 21 Mgrs9: 31U DQ 48251 11932\n    test 22 Mgrs9: [Z:31U, G:DQ, E:48251, N:11932]\n    test 23 toUtm1: 31 N 448251 5411932\n    test 24 toUtm1: [Z:31U, H:N, E:448251, N:5411932]\n    test 25 toMgrs1: 31U DQ 48251 11932\n    test 26 toMgrs1: [Z:31U, G:DQ, E:48251, N:11932]\n\n    test 27 toUtm(None): (31, 'N', 448251.0, 5411932.0, 'U')\n    test 28 easting: 48251.0\n    test 29 northing: 11932.0\n    test 30 EN: DQ\n    test 31 en100k: DQ\n    test 32 digraph: DQ\n    test 33 zone: 31\n    test 34 band: U\n    test 35 bandLatitude: 48\n    test 36 eastingnorthing: (48251.0, 11932.0)\n    test 37 resolution: 1.0\n    test 38 tilesize: 100000.0\n\n    test 39 toMgrs: 31U DQ 48251 11932\n    test 40 toMgrs(None): Mgrs6Tuple\n    test 41 digraph: DQ\n\n    test 42 (60.0°N, 001.0°E).toUtmUps.toMgrs: 31V CG 88455 53097\n    test 43 (60.0°N, 003.0°E).toUtmUps.toMgrs: 32V JM 65640 66593\n    test 44 (60.0°N, 009.0°E).toUtmUps.toMgrs: 32V NM 00000 51411\n    test 45 (76.0°N, 001.0°E).toUtmUps.toMgrs: 31X DE 45999 36099\n    test 46 (76.0°N, 013.0°E).toUtmUps.toMgrs: 33X VE 45999 36099\n    test 47 (76.0°N, 025.0°E).toUtmUps.toMgrs: 35X ME 45999 36099\n    test 48 (76.0°N, 037.0°E).toUtmUps.toMgrs: 37X DE 45999 36099\n    test 49 (84.0°N, 042.0°E).toUtmUps.toMgrs: Z GC 46127 04524\n    test 50 (90.0°S, 000.0°E).toUtmUps.toMgrs: B AN 00000 00000\n\n    test 51 Mgrs: BAN00\n    test 52 Mgrs4Tuple: ('B', 'AN', 0.0, 0.0)\n    test 53 Mgrs4Tuple: SouthPole(zone='B', EN='AN', easting=0.0, northing=0.0)\n    test 54 digraph: AN\n    test 55 toMgrs.toLatLon: SouthPole(lat=-90.0, lon=0.0, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), gamma=-0.0, scale=0.994)\n\n    test 56 Ups: 00 S 2000000 2000000\n    test 57 Ups: 00 S 2000500 2000500\n    test 58 Mgrs: 0.1\n\n    test 59 Mgrs: Y UB 17770 03800\n    test 60 Mgrs: [Z:Y, G:UB, E:17770, N:03800]\n    test 61 toUtmUps: 00 N 1617775 1403805\n    test 62 toUtmUps: [Z:00Y, H:N, E:1617775, N:1403805]\n    test 63 toLatLon: (83.627518, -32.664231, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), -0.570098, 0.99708)\n    test 64 toLatLon: LatLonDatum5Tuple(lat=83.627518, lon=-32.664231, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), gamma=-0.570098, scale=0.99708)\n    test 65 toMgrs!: 25X EN 04160 86523\n\n    test 66 Mgrs: B FS 77514 99182\n    test 67 Mgrs: [Z:B, G:FS, E:77514, N:99182]\n    test 68 toUtmUps: 00 S 2377514 2499182\n    test 69 toUtmUps: [Z:00B, H:S, E:2377514, N:2499182]\n    test 70 toLatLon: (-84.367192, 37.098959, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), -0.647499, 0.996406)\n    test 71 toLatLon: LatLonDatum5Tuple(lat=-84.367192, lon=37.098959, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), gamma=-0.647499, scale=0.996406)\n    test 72 toMgrs: B FS 77514 99182\n\n    test 73 Mgrs: 45S XT 47000 91000\n    test 74 Mgrs: [Z:45S, G:XT, E:47000, N:91000]\n    test 75 toUtmUps: 45 N 647500 3791500\n    test 76 toUtmUps: [Z:45S, H:N, E:647500, N:3791500]\n    test 77 toLatLon: (34.254177, 88.601932, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), 0.901835, 0.999868)\n    test 78 toLatLon: LatLonDatum5Tuple(lat=34.254177, lon=88.601932, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), gamma=0.901835, scale=0.999868)\n    test 79 toMgrs: 45S XT 47499 91499\n\n    test 80 Mgrs: Y XK 35000 43000\n    test 81 Mgrs: [Z:Y, G:XK, E:35000, N:43000]\n    test 82 toUtmUps: 00 N 1735500 2243500\n    test 83 toUtmUps: [Z:00Y, H:N, E:1735500, N:2243500]\n    test 84 toLatLon: (86.762629, -132.632821, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), -2.314879, 0.994794)\n    test 85 toLatLon: LatLonDatum5Tuple(lat=86.762629, lon=-132.632821, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), gamma=-2.314879, scale=0.994794)\n    test 86 toMgrs: Y XK 35499 43500\n\n    4 of 86 testMgrs.py tests (4.7%) FAILED, incl. 4 DeprecationWarnings (pygeodesy 26.3.26 Python 3.11.9 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 1.24.2 scipy 1.10.1 Math 2 macOS 26.3.1 isLazy 0 -W  default) 31.310 ms\nrunning /usr/local/bin/p....n3.11 -W default ~/PyGeodesy/test/testModules.py\n\n    testing testModules.py 24.06.05\n\n    testModule(pygeodesy, 26.03.26)\n    test 1 pygeodesy.ADict() class (pygeodesy.named): True\n    test 2 pygeodesy.Aer() class (pygeodesy.ltpTuples): True\n    test 3 pygeodesy.Aer4Tuple() class (pygeodesy.ltpTuples): True\n    test 4 pygeodesy.Albers7Tuple() class (pygeodesy.albers): True\n    test 5 pygeodesy.AlbersEqualArea() class (pygeodesy.albers): True\n    test 6 pygeodesy.AlbersEqualArea2() class (pygeodesy.albers): True\n    test 7 pygeodesy.AlbersEqualArea4() class (pygeodesy.albers): True\n    test 8 pygeodesy.AlbersEqualAreaCylindrical() class (pygeodesy.albers): True\n    test 9 pygeodesy.AlbersEqualAreaNorth() class (pygeodesy.albers): True\n    test 10 pygeodesy.AlbersEqualAreaSouth() class (pygeodesy.albers): True\n    test 11 pygeodesy.AlbersError() class (pygeodesy.albers): True\n    test 12 pygeodesy.Ang() class (pygeodesy.angles): True\n    test 13 pygeodesy.Area3Tuple() class (pygeodesy.karney): True\n    test 14 pygeodesy.Attitude() class (pygeodesy.ltp): True\n    test 15 pygeodesy.Attitude4Tuple() class (pygeodesy.ltpTuples): True\n    test 16 pygeodesy.AttitudeError() class (pygeodesy.ltp): True\n    test 17 pygeodesy.AuxError() class (pygeodesy.errors): True\n    test 18 pygeodesy.Azimuth() class (pygeodesy.units): True\n    test 19 pygeodesy.Azimuthal7Tuple() class (pygeodesy.azimuthal): True\n    test 20 pygeodesy.AzimuthalError() class (pygeodesy.azimuthal): True\n    test 21 pygeodesy.Band() class (pygeodesy.units): True\n    test 22 pygeodesy.Bearing() class (pygeodesy.units): True\n    test 23 pygeodesy.Bearing2Tuple() class (pygeodesy.namedTuples): True\n    test 24 pygeodesy.Bearing_() class (pygeodesy.units): True\n    test 25 pygeodesy.BetOmgAlp5Tuple() class (pygeodesy.triaxials.triaxial3): True\n    test 26 pygeodesy.BetOmgGam5Tuple() class (pygeodesy.triaxials.conformal3): True\n    test 27 pygeodesy.BetaOmega2Tuple() class (pygeodesy.triaxials.triaxial5): True\n    test 28 pygeodesy.BetaOmega3Tuple() class (pygeodesy.triaxials.triaxial5): True\n    test 29 pygeodesy.Bool() class (pygeodesy.units): True\n    test 30 pygeodesy.BooleanFHP() class (pygeodesy.booleans): True\n    test 31 pygeodesy.BooleanGH() class (pygeodesy.booleans): True\n    test 32 pygeodesy.Bounds2Tuple() class (pygeodesy.namedTuples): True\n    test 33 pygeodesy.Bounds4Tuple() class (pygeodesy.namedTuples): True\n    test 34 pygeodesy.CSSError() class (pygeodesy.css): True\n    test 35 pygeodesy.Caps class pygeodesy.karney.Caps (pygeodesy.karney): True\n    test 36 pygeodesy.Cartesian5Tuple() class (pygeodesy.triaxials.triaxial3): True\n    test 37 pygeodesy.CassiniSoldner() class (pygeodesy.css): True\n    test 38 pygeodesy.ChLV() class (pygeodesy.ltp): True\n    test 39 pygeodesy.ChLV9Tuple() class (pygeodesy.ltpTuples): True\n    test 40 pygeodesy.ChLVEN2Tuple() class (pygeodesy.ltpTuples): True\n    test 41 pygeodesy.ChLVYX2Tuple() class (pygeodesy.ltpTuples): True\n    test 42 pygeodesy.ChLVa() class (pygeodesy.ltp): True\n    test 43 pygeodesy.ChLVe() class (pygeodesy.ltp): True\n    test 44 pygeodesy.ChLVyx2Tuple() class (pygeodesy.ltpTuples): True\n    test 45 pygeodesy.Circin6Tuple() class (pygeodesy.vector2d): True\n    test 46 pygeodesy.Circle4Tuple() class (pygeodesy.namedTuples): True\n    test 47 pygeodesy.Circum3Tuple() class (pygeodesy.vector2d): True\n    test 48 pygeodesy.Circum4Tuple() class (pygeodesy.vector2d): True\n    test 49 pygeodesy.ClipCS4Tuple() class (pygeodesy.clipy): True\n    test 50 pygeodesy.ClipError() class (pygeodesy.errors): True\n    test 51 pygeodesy.ClipFHP4Tuple() class (pygeodesy.clipy): True\n    test 52 pygeodesy.ClipGH4Tuple() class (pygeodesy.clipy): True\n    test 53 pygeodesy.ClipLB6Tuple() class (pygeodesy.clipy): True\n    test 54 pygeodesy.ClipSH3Tuple() class (pygeodesy.clipy): True\n    test 55 pygeodesy.Collins5Tuple() class (pygeodesy.resections): True\n    test 56 pygeodesy.Conformal() class (pygeodesy.triaxials.triaxial5): True\n    test 57 pygeodesy.Conformal2Tuple() class (pygeodesy.triaxials.triaxial5): True\n    test 58 pygeodesy.Conformal3() class (pygeodesy.triaxials.conformal3): True\n    test 59 pygeodesy.Conformal3B() class (pygeodesy.triaxials.conformal3): True\n    test 60 pygeodesy.Conformal3Sphere() class (pygeodesy.triaxials.conformal3): True\n    test 61 pygeodesy.Conformal5Tuple() class (pygeodesy.triaxials.bases): True\n    test 62 pygeodesy.ConformalSphere() class (pygeodesy.triaxials.triaxial5): True\n    test 63 pygeodesy.Conic() class (pygeodesy.lcc): True\n    test 64 pygeodesy.Conics class pygeodesy.lcc.Conics (pygeodesy.lcc): True\n    test 65 pygeodesy.CrossError() class (pygeodesy.errors): True\n    test 66 pygeodesy.Css() class (pygeodesy.css): True\n    test 67 pygeodesy.Curvature2Tuple() class (pygeodesy.ellipsoids): True\n    test 68 pygeodesy.DIG int (pygeodesy.unitsBase): True\n    test 69 pygeodesy.Datum() class (pygeodesy.datums): True\n    test 70 pygeodesy.Datums class pygeodesy.datums.Datums (pygeodesy.datums): True\n    test 71 pygeodesy.Deg() function (pygeodesy.angles): True\n    test 72 pygeodesy.Degrees() class (pygeodesy.units): True\n    test 73 pygeodesy.Degrees2() class (pygeodesy.units): True\n    test 74 pygeodesy.Degrees_() class (pygeodesy.units): True\n    test 75 pygeodesy.DeprecationWarnings class pygeodesy.props.DeprecationWarnings (pygeodesy.props): True\n    test 76 pygeodesy.Destination2Tuple() class (pygeodesy.namedTuples): True\n    test 77 pygeodesy.Destination3Tuple() class (pygeodesy.namedTuples): True\n    test 78 pygeodesy.Direct9Tuple() class (pygeodesy.karney): True\n    test 79 pygeodesy.Distance() class (pygeodesy.units): True\n    test 80 pygeodesy.Distance2Tuple() class (pygeodesy.namedTuples): True\n    test 81 pygeodesy.Distance3Tuple() class (pygeodesy.namedTuples): True\n    test 82 pygeodesy.Distance4Tuple() class (pygeodesy.namedTuples): True\n    test 83 pygeodesy.Distance_() class (pygeodesy.units): True\n    test 84 pygeodesy.DivMod2Tuple() class (pygeodesy.fsums): True\n    test 85 pygeodesy.EPS float (pygeodesy.unitsBase): True\n    test 86 pygeodesy.EPS0 float (pygeodesy.unitsBase): True\n    test 87 pygeodesy.EPS02 float (pygeodesy.unitsBase): True\n    test 88 pygeodesy.EPS1 float (pygeodesy.unitsBase): True\n    test 89 pygeodesy.EPS2 float (pygeodesy.unitsBase): True\n    test 90 pygeodesy.EPS4 float (pygeodesy.unitsBase): True\n    test 91 pygeodesy.EPS8 float (pygeodesy.unitsBase): True\n    test 92 pygeodesy.EPSGError() class (pygeodesy.epsg): True\n    test 93 pygeodesy.EPS_2 float (pygeodesy.unitsBase): True\n    test 94 pygeodesy.ETMError() class (pygeodesy.etm): True\n    test 95 pygeodesy.EasNor2Tuple() class (pygeodesy.namedTuples): True\n    test 96 pygeodesy.EasNor3Tuple() class (pygeodesy.namedTuples): True\n    test 97 pygeodesy.EasNorAziRk4Tuple() class (pygeodesy.css): True\n    test 98 pygeodesy.EasNorAziRkEqu6Tuple() class (pygeodesy.css): True\n    test 99 pygeodesy.EasNorRadius3Tuple() class (pygeodesy.webmercator): True\n    test 100 pygeodesy.Easting() class (pygeodesy.units): True\n    test 101 pygeodesy.Ecef9Tuple() class (pygeodesy.ecef): True\n    test 102 pygeodesy.EcefError() class (pygeodesy.ecef): True\n    test 103 pygeodesy.EcefFarrell21() class (pygeodesy.ecef): True\n    test 104 pygeodesy.EcefFarrell22() class (pygeodesy.ecef): True\n    test 105 pygeodesy.EcefKarney() class (pygeodesy.ecef): True\n    test 106 pygeodesy.EcefMatrix() class (pygeodesy.ecef): True\n    test 107 pygeodesy.EcefSudano() class (pygeodesy.ecef): True\n    test 108 pygeodesy.EcefUPC() class (pygeodesy.ecef): True\n    test 109 pygeodesy.EcefVeness() class (pygeodesy.ecef): True\n    test 110 pygeodesy.EcefYou() class (pygeodesy.ecef): True\n    test 111 pygeodesy.Elevation2Tuple() class (pygeodesy.elevations): True\n    test 112 pygeodesy.Ellipse() class (pygeodesy.ellipses): True\n    test 113 pygeodesy.Ellipse5Tuple() class (pygeodesy.namedTuples): True\n    test 114 pygeodesy.EllipseError() class (pygeodesy.ellipses): True\n    test 115 pygeodesy.Ellipsoid() class (pygeodesy.ellipsoids): True\n    test 116 pygeodesy.Ellipsoid2() class (pygeodesy.ellipsoids): True\n    test 117 pygeodesy.Ellipsoids class pygeodesy.ellipsoids.Ellipsoids (pygeodesy.ellipsoids): True\n    test 118 pygeodesy.Elliptic() class (pygeodesy.elliptic): True\n    test 119 pygeodesy.Elliptic3Tuple() class (pygeodesy.elliptic): True\n    test 120 pygeodesy.EllipticError() class (pygeodesy.elliptic): True\n    test 121 pygeodesy.Enu() class (pygeodesy.ltpTuples): True\n    test 122 pygeodesy.Enu4Tuple() class (pygeodesy.ltpTuples): True\n    test 123 pygeodesy.Epoch() class (pygeodesy.units): True\n    test 124 pygeodesy.Epsg() class (pygeodesy.epsg): True\n    test 125 pygeodesy.Equidistant() class (pygeodesy.azimuthal): True\n    test 126 pygeodesy.EquidistantExact() class (pygeodesy.azimuthal): True\n    test 127 pygeodesy.EquidistantGeodSolve() class (pygeodesy.azimuthal): True\n    test 128 pygeodesy.EquidistantKarney() class (pygeodesy.azimuthal): True\n    test 129 pygeodesy.Etm() class (pygeodesy.etm): True\n    test 130 pygeodesy.ExactTransverseMercator() class (pygeodesy.etm): True\n    test 131 pygeodesy.FIx() class (pygeodesy.units): True\n    test 132 pygeodesy.F_D str: True\n    test 133 pygeodesy.F_D60 str: True\n    test 134 pygeodesy.F_D60_ str (pygeodesy.interns): True\n    test 135 pygeodesy.F_D60__ str (pygeodesy.interns): True\n    test 136 pygeodesy.F_DEG str: True\n    test 137 pygeodesy.F_DEG_ str (pygeodesy.interns): True\n    test 138 pygeodesy.F_DEG__ str (pygeodesy.interns): True\n    test 139 pygeodesy.F_DM str: True\n    test 140 pygeodesy.F_DMS str: True\n    test 141 pygeodesy.F_DMS_ str (pygeodesy.interns): True\n    test 142 pygeodesy.F_DMS__ str (pygeodesy.interns): True\n    test 143 pygeodesy.F_DM_ str (pygeodesy.interns): True\n    test 144 pygeodesy.F_DM__ str (pygeodesy.interns): True\n    test 145 pygeodesy.F_D_ str (pygeodesy.interns): True\n    test 146 pygeodesy.F_D__ str (pygeodesy.interns): True\n    test 147 pygeodesy.F_MIN str: True\n    test 148 pygeodesy.F_MIN_ str (pygeodesy.interns): True\n    test 149 pygeodesy.F_MIN__ str (pygeodesy.interns): True\n    test 150 pygeodesy.F_RAD str: True\n    test 151 pygeodesy.F_RAD_ str (pygeodesy.interns): True\n    test 152 pygeodesy.F_RAD__ str (pygeodesy.interns): True\n    test 153 pygeodesy.F_SEC str: True\n    test 154 pygeodesy.F_SEC_ str (pygeodesy.interns): True\n    test 155 pygeodesy.F_SEC__ str (pygeodesy.interns): True\n    test 156 pygeodesy.F__E str: True\n    test 157 pygeodesy.F__E_ str (pygeodesy.interns): True\n    test 158 pygeodesy.F__E__ str (pygeodesy.interns): True\n    test 159 pygeodesy.F__F str: True\n    test 160 pygeodesy.F__F_ str (pygeodesy.interns): True\n    test 161 pygeodesy.F__F__ str (pygeodesy.interns): True\n    test 162 pygeodesy.F__G str: True\n    test 163 pygeodesy.F__G_ str (pygeodesy.interns): True\n    test 164 pygeodesy.F__G__ str (pygeodesy.interns): True\n    test 165 pygeodesy.Fcbrt() class (pygeodesy.fmath): True\n    test 166 pygeodesy.Fcook() class (pygeodesy.fstats): True\n    test 167 pygeodesy.Fdot() class (pygeodesy.fmath): True\n    test 168 pygeodesy.Fdot_() class (pygeodesy.fmath): True\n    test 169 pygeodesy.Feet() class (pygeodesy.units): True\n    test 170 pygeodesy.Fhorner() class (pygeodesy.fmath): True\n    test 171 pygeodesy.Fhypot() class (pygeodesy.fmath): True\n    test 172 pygeodesy.Flinear() class (pygeodesy.fstats): True\n    test 173 pygeodesy.Float() class (pygeodesy.unitsBase): True\n    test 174 pygeodesy.Float_() class (pygeodesy.units): True\n    test 175 pygeodesy.Footprint5Tuple() class (pygeodesy.ltpTuples): True\n    test 176 pygeodesy.Forward4Tuple() class (pygeodesy.namedTuples): True\n    test 177 pygeodesy.Fpolynomial() class (pygeodesy.fmath): True\n    test 178 pygeodesy.Fpowers() class (pygeodesy.fmath): True\n    test 179 pygeodesy.Frechet() class (pygeodesy.frechet): True\n    test 180 pygeodesy.Frechet6Tuple() class (pygeodesy.frechet): True\n    test 181 pygeodesy.FrechetCosineLaw() class (pygeodesy.frechet): True\n    test 182 pygeodesy.FrechetDegrees() class (pygeodesy.frechet): True\n    test 183 pygeodesy.FrechetDistanceTo() class (pygeodesy.frechet): True\n    test 184 pygeodesy.FrechetEquirectangular() class (pygeodesy.frechet): True\n    test 185 pygeodesy.FrechetError() class (pygeodesy.frechet): True\n    test 186 pygeodesy.FrechetEuclidean() class (pygeodesy.frechet): True\n    test 187 pygeodesy.FrechetExact() class (pygeodesy.frechet): True\n    test 188 pygeodesy.FrechetFlatLocal() class (pygeodesy.frechet): True\n    test 189 pygeodesy.FrechetFlatPolar() class (pygeodesy.frechet): True\n    test 190 pygeodesy.FrechetHaversine() class (pygeodesy.frechet): True\n    test 191 pygeodesy.FrechetHubeny() class (pygeodesy.frechet): True\n    test 192 pygeodesy.FrechetKarney() class (pygeodesy.frechet): True\n    test 193 pygeodesy.FrechetRadians() class (pygeodesy.frechet): True\n    test 194 pygeodesy.FrechetThomas() class (pygeodesy.frechet): True\n    test 195 pygeodesy.FrechetVincentys() class (pygeodesy.frechet): True\n    test 196 pygeodesy.Froot() class (pygeodesy.fmath): True\n    test 197 pygeodesy.Frustum() class (pygeodesy.ltp): True\n    test 198 pygeodesy.Fsqrt() class (pygeodesy.fmath): True\n    test 199 pygeodesy.Fsum() class (pygeodesy.fsums): True\n    test 200 pygeodesy.Fsum2Tuple() class (pygeodesy.fsums): True\n    test 201 pygeodesy.Fwelford() class (pygeodesy.fstats): True\n    test 202 pygeodesy.GARSError() class (pygeodesy.gars): True\n    test 203 pygeodesy.GDict() class (pygeodesy.karney): True\n    test 204 pygeodesy.Garef() class (pygeodesy.gars): True\n    test 205 pygeodesy.Geod3Solve8Tuple() class (pygeodesy.geod3solve): True\n    test 206 pygeodesy.GeodSolve12Tuple() class (pygeodesy.geodsolve): True\n    test 207 pygeodesy.Geodesic() class (pygeodesy.geodesicw): True\n    test 208 pygeodesy.Geodesic3Error() class (pygeodesy.geod3solve): True\n    test 209 pygeodesy.Geodesic3Solve() class (pygeodesy.geod3solve): True\n    test 210 pygeodesy.GeodesicAreaExact() class (pygeodesy.geodesicx.gxarea): True\n    test 211 pygeodesy.GeodesicError() class (pygeodesy.errors): True\n    test 212 pygeodesy.GeodesicExact() class (pygeodesy.geodesicx.gx): True\n    test 213 pygeodesy.GeodesicLine() class (pygeodesy.geodesicw): True\n    test 214 pygeodesy.GeodesicLine3Solve() class (pygeodesy.geod3solve): True\n    test 215 pygeodesy.GeodesicLineExact() class (pygeodesy.geodesicx.gx): True\n    test 216 pygeodesy.GeodesicLineSolve() class (pygeodesy.geodsolve): True\n    test 217 pygeodesy.GeodesicSolve() class (pygeodesy.geodsolve): True\n    test 218 pygeodesy.Geodesic_WGS84() function (pygeodesy.geodesicw): True\n    test 219 pygeodesy.Geohash() class (pygeodesy.geohash): True\n    test 220 pygeodesy.GeohashError() class (pygeodesy.geohash): True\n    test 221 pygeodesy.Geohashed() class (pygeodesy.geohash): True\n    test 222 pygeodesy.GeoidEGM96() class (pygeodesy.geoids): True\n    test 223 pygeodesy.GeoidError() class (pygeodesy.geoids): True\n    test 224 pygeodesy.GeoidG2012B() class (pygeodesy.geoids): True\n    test 225 pygeodesy.GeoidHeight2Tuple() class (pygeodesy.elevations): True\n    test 226 pygeodesy.GeoidHeight5Tuple() class (pygeodesy.geoids): True\n    test 227 pygeodesy.GeoidKarney() class (pygeodesy.geoids): True\n    test 228 pygeodesy.GeoidPGM() class (pygeodesy.geoids): True\n    test 229 pygeodesy.Georef() class (pygeodesy.wgrs): True\n    test 230 pygeodesy.Gnomonic() class (pygeodesy.azimuthal): True\n    test 231 pygeodesy.GnomonicExact() class (pygeodesy.azimuthal): True\n    test 232 pygeodesy.GnomonicGeodSolve() class (pygeodesy.azimuthal): True\n    test 233 pygeodesy.GnomonicKarney() class (pygeodesy.azimuthal): True\n    test 234 pygeodesy.Hausdorff() class (pygeodesy.hausdorff): True\n    test 235 pygeodesy.Hausdorff6Tuple() class (pygeodesy.hausdorff): True\n    test 236 pygeodesy.HausdorffCosineLaw() class (pygeodesy.hausdorff): True\n    test 237 pygeodesy.HausdorffDegrees() class (pygeodesy.hausdorff): True\n    test 238 pygeodesy.HausdorffDistanceTo() class (pygeodesy.hausdorff): True\n    test 239 pygeodesy.HausdorffEquirectangular() class (pygeodesy.hausdorff): True\n    test 240 pygeodesy.HausdorffError() class (pygeodesy.hausdorff): True\n    test 241 pygeodesy.HausdorffEuclidean() class (pygeodesy.hausdorff): True\n    test 242 pygeodesy.HausdorffExact() class (pygeodesy.hausdorff): True\n    test 243 pygeodesy.HausdorffFlatLocal() class (pygeodesy.hausdorff): True\n    test 244 pygeodesy.HausdorffFlatPolar() class (pygeodesy.hausdorff): True\n    test 245 pygeodesy.HausdorffHaversine() class (pygeodesy.hausdorff): True\n    test 246 pygeodesy.HausdorffHubeny() class (pygeodesy.hausdorff): True\n    test 247 pygeodesy.HausdorffKarney() class (pygeodesy.hausdorff): True\n    test 248 pygeodesy.HausdorffRadians() class (pygeodesy.hausdorff): True\n    test 249 pygeodesy.HausdorffThomas() class (pygeodesy.hausdorff): True\n    test 250 pygeodesy.HausdorffVincentys() class (pygeodesy.hausdorff): True\n    test 251 pygeodesy.Height() class (pygeodesy.units): True\n    test 252 pygeodesy.HeightCubic() class (pygeodesy.heights): True\n    test 253 pygeodesy.HeightError() class (pygeodesy.heights): True\n    test 254 pygeodesy.HeightIDWcosineLaw() class (pygeodesy.heights): True\n    test 255 pygeodesy.HeightIDWdistanceTo() class (pygeodesy.heights): True\n    test 256 pygeodesy.HeightIDWequirectangular() class (pygeodesy.heights): True\n    test 257 pygeodesy.HeightIDWeuclidean() class (pygeodesy.heights): True\n    test 258 pygeodesy.HeightIDWexact() class (pygeodesy.heights): True\n    test 259 pygeodesy.HeightIDWflatLocal() class (pygeodesy.heights): True\n    test 260 pygeodesy.HeightIDWflatPolar() class (pygeodesy.heights): True\n    test 261 pygeodesy.HeightIDWhaversine() class (pygeodesy.heights): True\n    test 262 pygeodesy.HeightIDWhubeny() class (pygeodesy.heights): True\n    test 263 pygeodesy.HeightIDWkarney() class (pygeodesy.heights): True\n    test 264 pygeodesy.HeightIDWthomas() class (pygeodesy.heights): True\n    test 265 pygeodesy.HeightIDWvincentys() class (pygeodesy.heights): True\n    test 266 pygeodesy.HeightLSQBiSpline() class (pygeodesy.heights): True\n    test 267 pygeodesy.HeightLinear() class (pygeodesy.heights): True\n    test 268 pygeodesy.HeightSmoothBiSpline() class (pygeodesy.heights): True\n    test 269 pygeodesy.HeightX() class (pygeodesy.units): True\n    test 270 pygeodesy.Height_() class (pygeodesy.units): True\n    test 271 pygeodesy.INF float (pygeodesy.unitsBase): True\n    test 272 pygeodesy.INT0 int (pygeodesy.unitsBase): True\n    test 273 pygeodesy.Int() class (pygeodesy.unitsBase): True\n    test 274 pygeodesy.Int_() class (pygeodesy.units): True\n    test 275 pygeodesy.Intersect7Tuple() class (pygeodesy.geodesici): True\n    test 276 pygeodesy.Intersection3Tuple() class (pygeodesy.namedTuples): True\n    test 277 pygeodesy.IntersectionError() class (pygeodesy.errors): True\n    test 278 pygeodesy.Intersectool() class (pygeodesy.geodesici): True\n    test 279 pygeodesy.Intersectool5Tuple() class (pygeodesy.geodesici): True\n    test 280 pygeodesy.Intersector() class (pygeodesy.geodesici): True\n    test 281 pygeodesy.Intersector5Tuple() class (pygeodesy.geodesici): True\n    test 282 pygeodesy.Inverse10Tuple() class (pygeodesy.karney): True\n    test 283 pygeodesy.KTMError() class (pygeodesy.ktm): True\n    test 284 pygeodesy.KTransverseMercator() class (pygeodesy.ktm): True\n    test 285 pygeodesy.LCCError() class (pygeodesy.lcc): True\n    test 286 pygeodesy.LLK class pygeodesy.triaxials.bases.LLK (pygeodesy.triaxials.bases): True\n    test 287 pygeodesy.Lam() class (pygeodesy.units): True\n    test 288 pygeodesy.LambertEqualArea() class (pygeodesy.azimuthal): True\n    test 289 pygeodesy.Lambertian() class (pygeodesy.angles): True\n    test 290 pygeodesy.Lamd() class (pygeodesy.units): True\n    test 291 pygeodesy.Lat() class (pygeodesy.units): True\n    test 292 pygeodesy.LatLon2PsxyIter() class (pygeodesy.iters): True\n    test 293 pygeodesy.LatLon2Tuple() class (pygeodesy.namedTuples): True\n    test 294 pygeodesy.LatLon2psxy() class (pygeodesy.points): True\n    test 295 pygeodesy.LatLon3Tuple() class (pygeodesy.namedTuples): True\n    test 296 pygeodesy.LatLon4Tuple() class (pygeodesy.namedTuples): True\n    test 297 pygeodesy.LatLonAziRk4Tuple() class (pygeodesy.css): True\n    test 298 pygeodesy.LatLonDatum3Tuple() class (pygeodesy.namedTuples): True\n    test 299 pygeodesy.LatLonDatum5Tuple() class (pygeodesy.namedTuples): True\n    test 300 pygeodesy.LatLonFHP() class (pygeodesy.booleans): True\n    test 301 pygeodesy.LatLonGH() class (pygeodesy.booleans): True\n    test 302 pygeodesy.LatLonPrec3Tuple() class (pygeodesy.namedTuples): True\n    test 303 pygeodesy.LatLonPrec5Tuple() class (pygeodesy.namedTuples): True\n    test 304 pygeodesy.LatLon_() class (pygeodesy.points): True\n    test 305 pygeodesy.Lat_() class (pygeodesy.units): True\n    test 306 pygeodesy.LazyAttributeError() class (pygeodesy.lazily): True\n    test 307 pygeodesy.LazyImportError() class (pygeodesy.lazily): True\n    test 308 pygeodesy.Lcc() class (pygeodesy.lcc): True\n    test 309 pygeodesy.LenError() class (pygeodesy.errors): True\n    test 310 pygeodesy.LimitError() class (pygeodesy.errors): True\n    test 311 pygeodesy.Local9Tuple() class (pygeodesy.ltpTuples): True\n    test 312 pygeodesy.LocalCartesian() class (pygeodesy.ltp): True\n    test 313 pygeodesy.LocalError() class (pygeodesy.ltp): True\n    test 314 pygeodesy.Lon() class (pygeodesy.units): True\n    test 315 pygeodesy.Lon_() class (pygeodesy.units): True\n    test 316 pygeodesy.Los() class (pygeodesy.ltpTuples): True\n    test 317 pygeodesy.Ltp() class (pygeodesy.ltp): True\n    test 318 pygeodesy.MANT_DIG int (pygeodesy.unitsBase): True\n    test 319 pygeodesy.MAX float (pygeodesy.unitsBase): True\n    test 320 pygeodesy.MAX_EXP int (pygeodesy.unitsBase): True\n    test 321 pygeodesy.MGRSError() class (pygeodesy.errors): True\n    test 322 pygeodesy.MIN float (pygeodesy.unitsBase): True\n    test 323 pygeodesy.MIN_EXP int (pygeodesy.unitsBase): True\n    test 324 pygeodesy.Meeus2Tuple() class (pygeodesy.vector2d): True\n    test 325 pygeodesy.Meter() class (pygeodesy.units): True\n    test 326 pygeodesy.Meter2() class (pygeodesy.units): True\n    test 327 pygeodesy.Meter3() class (pygeodesy.units): True\n    test 328 pygeodesy.Meter_() class (pygeodesy.units): True\n    test 329 pygeodesy.Mgrs() class (pygeodesy.mgrs): True\n    test 330 pygeodesy.Mgrs4Tuple() class (pygeodesy.mgrs): True\n    test 331 pygeodesy.Mgrs6Tuple() class (pygeodesy.mgrs): True\n    test 332 pygeodesy.Middle5Tuple() class (pygeodesy.geodesici): True\n    test 333 pygeodesy.NAN float (pygeodesy.unitsBase): True\n    test 334 pygeodesy.NEG0 float (pygeodesy.unitsBase): True\n    test 335 pygeodesy.NINF float (pygeodesy.unitsBase): True\n    test 336 pygeodesy.NM2m() function (pygeodesy.utily): True\n    test 337 pygeodesy.NN str (pygeodesy.interns): True\n    test 338 pygeodesy.NearestOn2Tuple() class (pygeodesy.namedTuples): True\n    test 339 pygeodesy.NearestOn3Tuple() class (pygeodesy.namedTuples): True\n    test 340 pygeodesy.NearestOn6Tuple() class (pygeodesy.namedTuples): True\n    test 341 pygeodesy.NearestOn8Tuple() class (pygeodesy.namedTuples): True\n    test 342 pygeodesy.Ned() class (pygeodesy.ltpTuples): True\n    test 343 pygeodesy.Ned4Tuple() class (pygeodesy.ltpTuples): True\n    test 344 pygeodesy.Neighbors8Dict() class (pygeodesy.geohash): True\n    test 345 pygeodesy.NorthPole class pygeodesy.nvectorBase._N_Vector (pygeodesy.nvectorBase): True\n    test 346 pygeodesy.Northing() class (pygeodesy.units): True\n    test 347 pygeodesy.NumPyError() class (pygeodesy.errors): True\n    test 348 pygeodesy.Number_() class (pygeodesy.units): True\n    test 349 pygeodesy.Numpy2LatLon() class (pygeodesy.points): True\n    test 350 pygeodesy.OSGRError() class (pygeodesy.osgr): True\n    test 351 pygeodesy.OVERFLOW float (pygeodesy.unitsBase): True\n    test 352 pygeodesy.Orthographic() class (pygeodesy.azimuthal): True\n    test 353 pygeodesy.Osgr() class (pygeodesy.osgr): True\n    test 354 pygeodesy.PGMError() class (pygeodesy.geoids): True\n    test 355 pygeodesy.PI float (pygeodesy.unitsBase): True\n    test 356 pygeodesy.PI2 float (pygeodesy.unitsBase): True\n    test 357 pygeodesy.PI3 float (pygeodesy.unitsBase): True\n    test 358 pygeodesy.PI3_2 float (pygeodesy.unitsBase): True\n    test 359 pygeodesy.PI4 float (pygeodesy.unitsBase): True\n    test 360 pygeodesy.PI_2 float (pygeodesy.unitsBase): True\n    test 361 pygeodesy.PI_3 float (pygeodesy.unitsBase): True\n    test 362 pygeodesy.PI_4 float (pygeodesy.unitsBase): True\n    test 363 pygeodesy.PI_6 float (pygeodesy.unitsBase): True\n    test 364 pygeodesy.ParseError() class (pygeodesy.errors): True\n    test 365 pygeodesy.Phi() class (pygeodesy.units): True\n    test 366 pygeodesy.PhiLam2Tuple() class (pygeodesy.namedTuples): True\n    test 367 pygeodesy.PhiLam3Tuple() class (pygeodesy.namedTuples): True\n    test 368 pygeodesy.PhiLam4Tuple() class (pygeodesy.namedTuples): True\n    test 369 pygeodesy.PhiLamZet5Tuple() class (pygeodesy.triaxials.triaxial3): True\n    test 370 pygeodesy.Phid() class (pygeodesy.units): True\n    test 371 pygeodesy.Point3Tuple() class (pygeodesy.namedTuples): True\n    test 372 pygeodesy.Points2Tuple() class (pygeodesy.namedTuples): True\n    test 373 pygeodesy.PointsError() class (pygeodesy.errors): True\n    test 374 pygeodesy.PointsIter() class (pygeodesy.iters): True\n    test 375 pygeodesy.PolygonArea() class (pygeodesy.geodesicx.gxarea): True\n    test 376 pygeodesy.Precision_() class (pygeodesy.units): True\n    test 377 pygeodesy.Property() class (pygeodesy.props): True\n    test 378 pygeodesy.Property_RO() class (pygeodesy.props): True\n    test 379 pygeodesy.R_FM float (pygeodesy.unitsBase): True\n    test 380 pygeodesy.R_GM float (pygeodesy.unitsBase): True\n    test 381 pygeodesy.R_KM float (pygeodesy.unitsBase): True\n    test 382 pygeodesy.R_M float (pygeodesy.unitsBase): True\n    test 383 pygeodesy.R_MA float (pygeodesy.unitsBase): True\n    test 384 pygeodesy.R_MB float (pygeodesy.unitsBase): True\n    test 385 pygeodesy.R_NM float (pygeodesy.unitsBase): True\n    test 386 pygeodesy.R_QM float (pygeodesy.unitsBase): True\n    test 387 pygeodesy.R_SM float (pygeodesy.unitsBase): True\n    test 388 pygeodesy.R_VM float (pygeodesy.unitsBase): True\n    test 389 pygeodesy.Rad() function (pygeodesy.angles): True\n    test 390 pygeodesy.Radians() class (pygeodesy.units): True\n    test 391 pygeodesy.Radians2() class (pygeodesy.units): True\n    test 392 pygeodesy.Radians_() class (pygeodesy.units): True\n    test 393 pygeodesy.Radical2Tuple() class (pygeodesy.formy): True\n    test 394 pygeodesy.Radii11Tuple() class (pygeodesy.vector2d): True\n    test 395 pygeodesy.Radius() class (pygeodesy.unitsBase): True\n    test 396 pygeodesy.RadiusThetaPhi3Tuple() class (pygeodesy.cartesianBase): True\n    test 397 pygeodesy.Radius_() class (pygeodesy.units): True\n    test 398 pygeodesy.RangeError() class (pygeodesy.errors): True\n    test 399 pygeodesy.RefFrame() class (pygeodesy.trf): True\n    test 400 pygeodesy.RefFrames class pygeodesy.trf.RefFrames (pygeodesy.trf): True\n    test 401 pygeodesy.ResectionError() class (pygeodesy.resections): True\n    test 402 pygeodesy.ResidualError() class (pygeodesy.fsums): True\n    test 403 pygeodesy.Resolutions2Tuple() class (pygeodesy.geohash): True\n    test 404 pygeodesy.Reverse4Tuple() class (pygeodesy.namedTuples): True\n    test 405 pygeodesy.Rhumb() class (pygeodesy.rhumb.ekx): True\n    test 406 pygeodesy.Rhumb8Tuple() class (pygeodesy.karney): True\n    test 407 pygeodesy.RhumbAux() class (pygeodesy.rhumb.aux_): True\n    test 408 pygeodesy.RhumbError() class (pygeodesy.errors): True\n    test 409 pygeodesy.RhumbLine() class (pygeodesy.rhumb.ekx): True\n    test 410 pygeodesy.RhumbLineAux() class (pygeodesy.rhumb.aux_): True\n    test 411 pygeodesy.RhumbLineSolve() class (pygeodesy.rhumb.solve): True\n    test 412 pygeodesy.RhumbSolve() class (pygeodesy.rhumb.solve): True\n    test 413 pygeodesy.RhumbSolve7Tuple() class (pygeodesy.rhumb.solve): True\n    test 414 pygeodesy.SM2m() function (pygeodesy.utily): True\n    test 415 pygeodesy.S_DEG str: True\n    test 416 pygeodesy.S_DMS int: True\n    test 417 pygeodesy.S_MIN str: True\n    test 418 pygeodesy.S_RAD str (pygeodesy.interns): True\n    test 419 pygeodesy.S_SEC str: True\n    test 420 pygeodesy.S_SEP str (pygeodesy.interns): True\n    test 421 pygeodesy.Scalar() class (pygeodesy.units): True\n    test 422 pygeodesy.Scalar_() class (pygeodesy.units): True\n    test 423 pygeodesy.SciPyError() class (pygeodesy.errors): True\n    test 424 pygeodesy.SciPyWarning() class (pygeodesy.errors): True\n    test 425 pygeodesy.Shape2Tuple() class (pygeodesy.points): True\n    test 426 pygeodesy.SinCos2() function (pygeodesy.utily): True\n    test 427 pygeodesy.Sizes3Tuple() class (pygeodesy.geohash): True\n    test 428 pygeodesy.Soddy4Tuple() class (pygeodesy.vector2d): True\n    test 429 pygeodesy.SouthPole class pygeodesy.nvectorBase._N_Vector (pygeodesy.nvectorBase): True\n    test 430 pygeodesy.Stereographic() class (pygeodesy.azimuthal): True\n    test 431 pygeodesy.Str() class (pygeodesy.unitsBase): True\n    test 432 pygeodesy.Str_() class (pygeodesy.interns): True\n    test 433 pygeodesy.Survey3Tuple() class (pygeodesy.resections): True\n    test 434 pygeodesy.TRFError() class (pygeodesy.errors): True\n    test 435 pygeodesy.TRFXform() class (pygeodesy.trf): True\n    test 436 pygeodesy.TRFXform7Tuple() class (pygeodesy.trf): True\n    test 437 pygeodesy.Tienstra7Tuple() class (pygeodesy.resections): True\n    test 438 pygeodesy.Transform() class (pygeodesy.datums): True\n    test 439 pygeodesy.TransformXform() class (pygeodesy.trf): True\n    test 440 pygeodesy.Transforms class pygeodesy.datums.Transforms (pygeodesy.datums): True\n    test 441 pygeodesy.TriAngle5Tuple() class (pygeodesy.resections): True\n    test 442 pygeodesy.TriSide2Tuple() class (pygeodesy.resections): True\n    test 443 pygeodesy.TriSide4Tuple() class (pygeodesy.resections): True\n    test 444 pygeodesy.Triangle7Tuple() class (pygeodesy.namedTuples): True\n    test 445 pygeodesy.Triangle8Tuple() class (pygeodesy.namedTuples): True\n    test 446 pygeodesy.TriangleError() class (pygeodesy.errors): True\n    test 447 pygeodesy.Triaxial() class (pygeodesy.triaxials.triaxial5): True\n    test 448 pygeodesy.Triaxial3() class (pygeodesy.triaxials.triaxial3): True\n    test 449 pygeodesy.Triaxial3B() class (pygeodesy.triaxials.triaxial3): True\n    test 450 pygeodesy.Triaxial3s class pygeodesy.triaxials.triaxial3.Triaxial3s (pygeodesy.triaxials.triaxial3): True\n    test 451 pygeodesy.TriaxialError() class (pygeodesy.triaxials.bases): True\n    test 452 pygeodesy.Triaxial_() class (pygeodesy.triaxials.triaxial5): True\n    test 453 pygeodesy.Triaxials class pygeodesy.triaxials.triaxial5.Triaxials (pygeodesy.triaxials.triaxial5): True\n    test 454 pygeodesy.Triaxum5Tuple() class (pygeodesy.vector2d): True\n    test 455 pygeodesy.Trilaterate5Tuple() class (pygeodesy.namedTuples): True\n    test 456 pygeodesy.Tuple2LatLon() class (pygeodesy.points): True\n    test 457 pygeodesy.UPSError() class (pygeodesy.ups): True\n    test 458 pygeodesy.UTMError() class (pygeodesy.utm): True\n    test 459 pygeodesy.UTMUPSError() class (pygeodesy.utmups): True\n    test 460 pygeodesy.UnitError() class (pygeodesy.errors): True\n    test 461 pygeodesy.Ups() class (pygeodesy.ups): True\n    test 462 pygeodesy.Utm() class (pygeodesy.utm): True\n    test 463 pygeodesy.UtmUps() function (pygeodesy.utmups): True\n    test 464 pygeodesy.UtmUps2Tuple() class (pygeodesy.namedTuples): True\n    test 465 pygeodesy.UtmUps5Tuple() class (pygeodesy.namedTuples): True\n    test 466 pygeodesy.UtmUps8Tuple() class (pygeodesy.namedTuples): True\n    test 467 pygeodesy.UtmUpsLatLon5Tuple() class (pygeodesy.namedTuples): True\n    test 468 pygeodesy.Uvw() class (pygeodesy.ltpTuples): True\n    test 469 pygeodesy.Uvw3Tuple() class (pygeodesy.ltpTuples): True\n    test 470 pygeodesy.Vector2Tuple() class (pygeodesy.namedTuples): True\n    test 471 pygeodesy.Vector3Tuple() class (pygeodesy.namedTuples): True\n    test 472 pygeodesy.Vector3d() class (pygeodesy.vector3d): True\n    test 473 pygeodesy.Vector4Tuple() class (pygeodesy.namedTuples): True\n    test 474 pygeodesy.VectorError() class (pygeodesy.errors): True\n    test 475 pygeodesy.VincentyError() class (pygeodesy.ellipsoidalVincenty): True\n    test 476 pygeodesy.WGRSError() class (pygeodesy.wgrs): True\n    test 477 pygeodesy.WebMercatorError() class (pygeodesy.webmercator): True\n    test 478 pygeodesy.Wm() class (pygeodesy.webmercator): True\n    test 479 pygeodesy.XDict() class (pygeodesy.geodesici): True\n    test 480 pygeodesy.Xyz4Tuple() class (pygeodesy.ltpTuples): True\n    test 481 pygeodesy.XyzLocal() class (pygeodesy.ltpTuples): True\n    test 482 pygeodesy.Zone() class (pygeodesy.units): True\n    test 483 pygeodesy.a_b2e() function (pygeodesy.ellipsoids): True\n    test 484 pygeodesy.a_b2e2() function (pygeodesy.ellipsoids): True\n    test 485 pygeodesy.a_b2e22() function (pygeodesy.ellipsoids): True\n    test 486 pygeodesy.a_b2e32() function (pygeodesy.ellipsoids): True\n    test 487 pygeodesy.a_b2f() function (pygeodesy.ellipsoids): True\n    test 488 pygeodesy.a_b2f2() function (pygeodesy.ellipsoids): True\n    test 489 pygeodesy.a_b2f_() function (pygeodesy.ellipsoids): True\n    test 490 pygeodesy.a_b2n() function (pygeodesy.ellipsoids): True\n    test 491 pygeodesy.a_f2Tuple() class (pygeodesy.ellipsoids): True\n    test 492 pygeodesy.a_f2b() function (pygeodesy.ellipsoids): True\n    test 493 pygeodesy.a_f_2b() function (pygeodesy.ellipsoids): True\n    test 494 pygeodesy.acos1() function (pygeodesy.utily): True\n    test 495 pygeodesy.acre2ha() function (pygeodesy.utily): True\n    test 496 pygeodesy.acre2m2() function (pygeodesy.utily): True\n    test 497 pygeodesy.agdf() function (pygeodesy.utily): True\n    test 498 pygeodesy.albers module: True\n    test 499 pygeodesy.angle2chord() function (pygeodesy.formy): True\n    test 500 pygeodesy.angles module: True\n    test 501 pygeodesy.anstr() function (pygeodesy.streprs): True\n    test 502 pygeodesy.antipode() function (pygeodesy.formy): True\n    test 503 pygeodesy.antipode_() function (pygeodesy.formy): True\n    test 504 pygeodesy.areaOf() function (pygeodesy.points): True\n    test 505 pygeodesy.asin1() function (pygeodesy.utily): True\n    test 506 pygeodesy.atan1() function (pygeodesy.utily): True\n    test 507 pygeodesy.atan1d() function (pygeodesy.utily): True\n    test 508 pygeodesy.atan2 class builtin_function_or_method (math): True\n    test 509 pygeodesy.atan2b() function (pygeodesy.utily): True\n    test 510 pygeodesy.atan2d() function (pygeodesy.utily): True\n    test 511 pygeodesy.atan2p() function (pygeodesy.utily): True\n    test 512 pygeodesy.attrs() function (pygeodesy.streprs): True\n    test 513 pygeodesy.auxilats module: True\n    test 514 pygeodesy.azimuthal module: True\n    test 515 pygeodesy.b_f2a() function (pygeodesy.ellipsoids): True\n    test 516 pygeodesy.b_f_2a() function (pygeodesy.ellipsoids): True\n    test 517 pygeodesy.basics module: True\n    test 518 pygeodesy.bearing() function (pygeodesy.formy): True\n    test 519 pygeodesy.bearingDMS() function (pygeodesy.dms): True\n    test 520 pygeodesy.bearing_() function (pygeodesy.formy): True\n    test 521 pygeodesy.booleans module: True\n    test 522 pygeodesy.boundsOf() function (pygeodesy.points): True\n    test 523 pygeodesy.bqrt() function (pygeodesy.fmath): True\n    test 524 pygeodesy.callername() function (pygeodesy.named): True\n    test 525 pygeodesy.cartesianBase module: True\n    test 526 pygeodesy.cassini() function (pygeodesy.resections): True\n    test 527 pygeodesy.cbrt() function (pygeodesy.fmath): True\n    test 528 pygeodesy.cbrt2() function (pygeodesy.fmath): True\n    test 529 pygeodesy.centroidOf() function (pygeodesy.points): True\n    test 530 pygeodesy.chain2m() function (pygeodesy.utily): True\n    test 531 pygeodesy.chord2angle() function (pygeodesy.formy): True\n    test 532 pygeodesy.circin6() function (pygeodesy.vector2d): True\n    test 533 pygeodesy.circle4() function (pygeodesy.utily): True\n    test 534 pygeodesy.circum3() function (pygeodesy.vector2d): True\n    test 535 pygeodesy.circum4() function (pygeodesy.vector2d): True\n    test 536 pygeodesy.circum4_() function (pygeodesy.vector2d): True\n    test 537 pygeodesy.classname() function (pygeodesy.named): True\n    test 538 pygeodesy.classnaming() function (pygeodesy.named): True\n    test 539 pygeodesy.clipCS4() function (pygeodesy.clipy): True\n    test 540 pygeodesy.clipDegrees() function (pygeodesy.dms): True\n    test 541 pygeodesy.clipFHP4() function (pygeodesy.clipy): True\n    test 542 pygeodesy.clipGH4() function (pygeodesy.clipy): True\n    test 543 pygeodesy.clipLB6() function (pygeodesy.clipy): True\n    test 544 pygeodesy.clipRadians() function (pygeodesy.dms): True\n    test 545 pygeodesy.clipSH() function (pygeodesy.clipy): True\n    test 546 pygeodesy.clipSH3() function (pygeodesy.clipy): True\n    test 547 pygeodesy.clips() function (pygeodesy.basics): True\n    test 548 pygeodesy.clipy module: True\n    test 549 pygeodesy.collins5() function (pygeodesy.resections): True\n    test 550 pygeodesy.compassAngle() function (pygeodesy.formy): True\n    test 551 pygeodesy.compassDMS() function (pygeodesy.dms): True\n    test 552 pygeodesy.compassPoint() function (pygeodesy.dms): True\n    test 553 pygeodesy.constants module: True\n    test 554 pygeodesy.copysign0() function (pygeodesy.basics): True\n    test 555 pygeodesy.copytype() function (pygeodesy.basics): True\n    test 556 pygeodesy.cosineLaw() function (pygeodesy.formy): True\n    test 557 pygeodesy.cosineLaw_() function (pygeodesy.formy): True\n    test 558 pygeodesy.cot() function (pygeodesy.utily): True\n    test 559 pygeodesy.cot_() function (pygeodesy.utily): True\n    test 560 pygeodesy.cotd() function (pygeodesy.utily): True\n    test 561 pygeodesy.cotd_() function (pygeodesy.utily): True\n    test 562 pygeodesy.crosserrors() function (pygeodesy.errors): True\n    test 563 pygeodesy.css module: True\n    test 564 pygeodesy.date2epoch() function (pygeodesy.trf): True\n    test 565 pygeodesy.datums module: True\n    test 566 pygeodesy.degDMS() function (pygeodesy.dms): True\n    test 567 pygeodesy.degrees class builtin_function_or_method (math): True\n    test 568 pygeodesy.degrees180() function (pygeodesy.utily): True\n    test 569 pygeodesy.degrees2grades() function (pygeodesy.utily): True\n    test 570 pygeodesy.degrees2m() function (pygeodesy.utily): True\n    test 571 pygeodesy.degrees360() function (pygeodesy.utily): True\n    test 572 pygeodesy.degrees90() function (pygeodesy.utily): True\n    test 573 pygeodesy.deprecated_Property_RO() function (pygeodesy.props): True\n    test 574 pygeodesy.deprecated_class() function (pygeodesy.props): True\n    test 575 pygeodesy.deprecated_function() function (pygeodesy.props): True\n    test 576 pygeodesy.deprecated_method() function (pygeodesy.props): True\n    test 577 pygeodesy.deprecated_property_RO() function (pygeodesy.props): True\n    test 578 pygeodesy.dms module: True\n    test 579 pygeodesy.e22f() function (pygeodesy.ellipsoids): True\n    test 580 pygeodesy.e2f() function (pygeodesy.ellipsoids): True\n    test 581 pygeodesy.ecef module: True\n    test 582 pygeodesy.ecefLocals module: True\n    test 583 pygeodesy.egmGeoidHeights() function (pygeodesy.geoids): True\n    test 584 pygeodesy.elevation2() function (pygeodesy.elevations): True\n    test 585 pygeodesy.elevations module: True\n    test 586 pygeodesy.ellipses module: True\n    test 587 pygeodesy.ellipsoidalBase module: True\n    test 588 pygeodesy.ellipsoidalBaseDI module: True\n    test 589 pygeodesy.ellipsoidalExact module: True\n    test 590 pygeodesy.ellipsoidalGeodSolve module: True\n    test 591 pygeodesy.ellipsoidalKarney module: True\n    test 592 pygeodesy.ellipsoidalNvector module: True\n    test 593 pygeodesy.ellipsoidalVincenty module: True\n    test 594 pygeodesy.ellipsoids module: True\n    test 595 pygeodesy.elliptic module: True\n    test 596 pygeodesy.enstr2() function (pygeodesy.streprs): True\n    test 597 pygeodesy.epoch2date() function (pygeodesy.trf): True\n    test 598 pygeodesy.epsg module: True\n    test 599 pygeodesy.equidistant() function (pygeodesy.azimuthal): True\n    test 600 pygeodesy.equirectangular() function (pygeodesy.formy): True\n    test 601 pygeodesy.equirectangular4() function (pygeodesy.formy): True\n    test 602 pygeodesy.errors module: True\n    test 603 pygeodesy.etm module: True\n    test 604 pygeodesy.euclid() function (pygeodesy.fmath): True\n    test 605 pygeodesy.euclid_() function (pygeodesy.fmath): True\n    test 606 pygeodesy.euclidean() function (pygeodesy.formy): True\n    test 607 pygeodesy.euclidean_() function (pygeodesy.formy): True\n    test 608 pygeodesy.exception_chaining() function (pygeodesy.errors): True\n    test 609 pygeodesy.excessAbc_() function (pygeodesy.formy): True\n    test 610 pygeodesy.excessCagnoli_() function (pygeodesy.formy): True\n    test 611 pygeodesy.excessGirard_() function (pygeodesy.formy): True\n    test 612 pygeodesy.excessKarney() function (pygeodesy.formy): True\n    test 613 pygeodesy.excessKarney_() function (pygeodesy.formy): True\n    test 614 pygeodesy.excessLHuilier_() function (pygeodesy.formy): True\n    test 615 pygeodesy.excessQuad() function (pygeodesy.formy): True\n    test 616 pygeodesy.excessQuad_() function (pygeodesy.formy): True\n    test 617 pygeodesy.f2e2() function (pygeodesy.ellipsoids): True\n    test 618 pygeodesy.f2e22() function (pygeodesy.ellipsoids): True\n    test 619 pygeodesy.f2e32() function (pygeodesy.ellipsoids): True\n    test 620 pygeodesy.f2f2() function (pygeodesy.ellipsoids): True\n    test 621 pygeodesy.f2f_() function (pygeodesy.ellipsoids): True\n    test 622 pygeodesy.f2mul_() function (pygeodesy.fmath): True\n    test 623 pygeodesy.f2n() function (pygeodesy.ellipsoids): True\n    test 624 pygeodesy.f2product() function (pygeodesy.fsums): True\n    test 625 pygeodesy.f_2f() function (pygeodesy.ellipsoids): True\n    test 626 pygeodesy.facos1() function (pygeodesy.fmath): True\n    test 627 pygeodesy.fasin1() function (pygeodesy.fmath): True\n    test 628 pygeodesy.fatan() function (pygeodesy.fmath): True\n    test 629 pygeodesy.fatan1() function (pygeodesy.fmath): True\n    test 630 pygeodesy.fatan2() function (pygeodesy.fmath): True\n    test 631 pygeodesy.fathom2m() function (pygeodesy.utily): True\n    test 632 pygeodesy.favg() function (pygeodesy.fmath): True\n    test 633 pygeodesy.fdot() function (pygeodesy.fmath): True\n    test 634 pygeodesy.fdot3() function (pygeodesy.fmath): True\n    test 635 pygeodesy.fdot_() function (pygeodesy.fmath): True\n    test 636 pygeodesy.fhorner() function (pygeodesy.fmath): True\n    test 637 pygeodesy.fidw() function (pygeodesy.fmath): True\n    test 638 pygeodesy.flatLocal() function (pygeodesy.formy): True\n    test 639 pygeodesy.flatLocal_() function (pygeodesy.formy): True\n    test 640 pygeodesy.flatPolar() function (pygeodesy.formy): True\n    test 641 pygeodesy.flatPolar_() function (pygeodesy.formy): True\n    test 642 pygeodesy.float0_() function (pygeodesy.constants): True\n    test 643 pygeodesy.float_() function (pygeodesy.constants): True\n    test 644 pygeodesy.floats_() function (pygeodesy.constants): True\n    test 645 pygeodesy.fma() function (pygeodesy.fmath): True\n    test 646 pygeodesy.fmath module: True\n    test 647 pygeodesy.fmean() function (pygeodesy.fmath): True\n    test 648 pygeodesy.fmean_() function (pygeodesy.fmath): True\n    test 649 pygeodesy.formy module: True\n    test 650 pygeodesy.fpolynomial() function (pygeodesy.fmath): True\n    test 651 pygeodesy.fpowers() function (pygeodesy.fmath): True\n    test 652 pygeodesy.fprod class builtin_function_or_method (math): True\n    test 653 pygeodesy.fractional() function (pygeodesy.points): True\n    test 654 pygeodesy.frandoms() function (pygeodesy.fmath): True\n    test 655 pygeodesy.frange() function (pygeodesy.fmath): True\n    test 656 pygeodesy.frechet module: True\n    test 657 pygeodesy.frechet_() function (pygeodesy.frechet): True\n    test 658 pygeodesy.freduce class builtin_function_or_method (_functools): True\n    test 659 pygeodesy.fremainder() function (pygeodesy.fmath): True\n    test 660 pygeodesy.fstats module: True\n    test 661 pygeodesy.fstr() function (pygeodesy.streprs): True\n    test 662 pygeodesy.fstrzs() function (pygeodesy.streprs): True\n    test 663 pygeodesy.fsum() function (pygeodesy.fsums): True\n    test 664 pygeodesy.fsum1() function (pygeodesy.fsums): True\n    test 665 pygeodesy.fsum1_() function (pygeodesy.fsums): True\n    test 666 pygeodesy.fsum1f_() function (pygeodesy.fsums): True\n    test 667 pygeodesy.fsum_() function (pygeodesy.fsums): True\n    test 668 pygeodesy.fsumf_() function (pygeodesy.fsums): True\n    test 669 pygeodesy.fsums module: True\n    test 670 pygeodesy.ft2m() function (pygeodesy.utily): True\n    test 671 pygeodesy.furlong2m() function (pygeodesy.utily): True\n    test 672 pygeodesy.gars module: True\n    test 673 pygeodesy.gdf() function (pygeodesy.utily): True\n    test 674 pygeodesy.geod3solve module: True\n    test 675 pygeodesy.geodesici module: True\n    test 676 pygeodesy.geodesicw module: True\n    test 677 pygeodesy.geodesicx module: True\n    test 678 pygeodesy.geodsolve module: True\n    test 679 pygeodesy.geohash module: True\n    test 680 pygeodesy.geoidHeight2() function (pygeodesy.elevations): True\n    test 681 pygeodesy.geoids module: True\n    test 682 pygeodesy.gnomonic() function (pygeodesy.azimuthal): True\n    test 683 pygeodesy.grades() function (pygeodesy.utily): True\n    test 684 pygeodesy.grades2degrees() function (pygeodesy.utily): True\n    test 685 pygeodesy.grades2radians() function (pygeodesy.utily): True\n    test 686 pygeodesy.grades400() function (pygeodesy.utily): True\n    test 687 pygeodesy.gx module: True\n    test 688 pygeodesy.gxarea module: True\n    test 689 pygeodesy.gxbases module: True\n    test 690 pygeodesy.gxline module: True\n    test 691 pygeodesy.ha2acre() function (pygeodesy.utily): True\n    test 692 pygeodesy.ha2m2() function (pygeodesy.utily): True\n    test 693 pygeodesy.halfs2() function (pygeodesy.basics): True\n    test 694 pygeodesy.hartzell() function (pygeodesy.formy): True\n    test 695 pygeodesy.hartzell4() function (pygeodesy.triaxials.triaxial5): True\n    test 696 pygeodesy.hausdorff module: True\n    test 697 pygeodesy.hausdorff_() function (pygeodesy.hausdorff): True\n    test 698 pygeodesy.hav() function (pygeodesy.utily): True\n    test 699 pygeodesy.haversine() function (pygeodesy.formy): True\n    test 700 pygeodesy.haversine_() function (pygeodesy.formy): True\n    test 701 pygeodesy.height4() function (pygeodesy.triaxials.triaxial5): True\n    test 702 pygeodesy.heightOf() function (pygeodesy.formy): True\n    test 703 pygeodesy.heightOrthometric() function (pygeodesy.formy): True\n    test 704 pygeodesy.heights module: True\n    test 705 pygeodesy.horizon() function (pygeodesy.formy): True\n    test 706 pygeodesy.hstr() function (pygeodesy.streprs): True\n    test 707 pygeodesy.hubeny() function (pygeodesy.formy): True\n    test 708 pygeodesy.hubeny_() function (pygeodesy.formy): True\n    test 709 pygeodesy.hypot class builtin_function_or_method (math): True\n    test 710 pygeodesy.hypot1() function (pygeodesy.fmath): True\n    test 711 pygeodesy.hypot2() function (pygeodesy.fmath): True\n    test 712 pygeodesy.hypot2_() function (pygeodesy.fmath): True\n    test 713 pygeodesy.hypot_ class builtin_function_or_method (math): True\n    test 714 pygeodesy.instr() function (pygeodesy.streprs): True\n    test 715 pygeodesy.int1s() function (pygeodesy.basics): True\n    test 716 pygeodesy.internals module: True\n    test 717 pygeodesy.interns module: True\n    test 718 pygeodesy.intersection2() function (pygeodesy.formy): True\n    test 719 pygeodesy.intersection3d3() function (pygeodesy.vector3d): True\n    test 720 pygeodesy.intersections2() function (pygeodesy.formy): True\n    test 721 pygeodesy.isAng() function (pygeodesy.angles): True\n    test 722 pygeodesy.isBoolean() function (pygeodesy.booleans): True\n    test 723 pygeodesy.isCartesian() function (pygeodesy.basics): True\n    test 724 pygeodesy.isDEPRECATED() function (pygeodesy.basics): True\n    test 725 pygeodesy.isError() function (pygeodesy.errors): True\n    test 726 pygeodesy.isLatLon() function (pygeodesy.basics): True\n    test 727 pygeodesy.isLazy int: True\n    test 728 pygeodesy.isNumpy2() function (pygeodesy.iters): True\n    test 729 pygeodesy.isNvector() function (pygeodesy.basics): True\n    test 730 pygeodesy.isPoints2() function (pygeodesy.iters): True\n    test 731 pygeodesy.isTuple2() function (pygeodesy.iters): True\n    test 732 pygeodesy.isantipode() function (pygeodesy.formy): True\n    test 733 pygeodesy.isantipode_() function (pygeodesy.formy): True\n    test 734 pygeodesy.isbool() function (pygeodesy.basics): True\n    test 735 pygeodesy.isclass() function (pygeodesy.basics): True\n    test 736 pygeodesy.isclockwise() function (pygeodesy.points): True\n    test 737 pygeodesy.isclose() function (pygeodesy.constants): True\n    test 738 pygeodesy.iscolinearWith() function (pygeodesy.vector3d): True\n    test 739 pygeodesy.iscomplex() function (pygeodesy.basics): True\n    test 740 pygeodesy.isconvex() function (pygeodesy.points): True\n    test 741 pygeodesy.isconvex_() function (pygeodesy.points): True\n    test 742 pygeodesy.isenclosedBy() function (pygeodesy.points): True\n    test 743 pygeodesy.isfinite() function (pygeodesy.constants): True\n    test 744 pygeodesy.isfloat() function (pygeodesy.basics): True\n    test 745 pygeodesy.isidentifier class method_descriptor: True\n    test 746 pygeodesy.isinf class builtin_function_or_method (math): True\n    test 747 pygeodesy.isinstanceof() function (pygeodesy.basics): True\n    test 748 pygeodesy.isint() function (pygeodesy.basics): True\n    test 749 pygeodesy.isint0() function (pygeodesy.constants): True\n    test 750 pygeodesy.isiterable() function (pygeodesy.basics): True\n    test 751 pygeodesy.isiterablen() function (pygeodesy.basics): True\n    test 752 pygeodesy.isiterabletype() function (pygeodesy.basics): True\n    test 753 pygeodesy.iskeyword class builtin_function_or_method: True\n    test 754 pygeodesy.islistuple() function (pygeodesy.basics): True\n    test 755 pygeodesy.isnan class builtin_function_or_method (math): True\n    test 756 pygeodesy.isnear0() function (pygeodesy.constants): True\n    test 757 pygeodesy.isnear1() function (pygeodesy.constants): True\n    test 758 pygeodesy.isnear90() function (pygeodesy.constants): True\n    test 759 pygeodesy.isneg() function (pygeodesy.constants): True\n    test 760 pygeodesy.isneg0() function (pygeodesy.constants): True\n    test 761 pygeodesy.isninf() function (pygeodesy.constants): True\n    test 762 pygeodesy.isnon0() function (pygeodesy.constants): True\n    test 763 pygeodesy.isnormal() function (pygeodesy.formy): True\n    test 764 pygeodesy.isnormal_() function (pygeodesy.formy): True\n    test 765 pygeodesy.isodd() function (pygeodesy.basics): True\n    test 766 pygeodesy.ispolar() function (pygeodesy.points): True\n    test 767 pygeodesy.isscalar() function (pygeodesy.basics): True\n    test 768 pygeodesy.issequence() function (pygeodesy.basics): True\n    test 769 pygeodesy.isstr() function (pygeodesy.basics): True\n    test 770 pygeodesy.issubclassof() function (pygeodesy.basics): True\n    test 771 pygeodesy.itemsorted() function (pygeodesy.basics): True\n    test 772 pygeodesy.iterNumpy2() function (pygeodesy.iters): True\n    test 773 pygeodesy.iterNumpy2over() function (pygeodesy.iters): True\n    test 774 pygeodesy.iters module: True\n    test 775 pygeodesy.karney module: True\n    test 776 pygeodesy.km2m() function (pygeodesy.utily): True\n    test 777 pygeodesy.ktm module: True\n    test 778 pygeodesy.latDMS() function (pygeodesy.dms): True\n    test 779 pygeodesy.latlon2n_xyz() function (pygeodesy.latlonBase): True\n    test 780 pygeodesy.latlonBase module: True\n    test 781 pygeodesy.latlonDMS() function (pygeodesy.dms): True\n    test 782 pygeodesy.latlonDMS_() function (pygeodesy.dms): True\n    test 783 pygeodesy.lazily module: True\n    test 784 pygeodesy.lcc module: True\n    test 785 pygeodesy.len2() function (pygeodesy.basics): True\n    test 786 pygeodesy.limiterrors() function (pygeodesy.errors): True\n    test 787 pygeodesy.lonDMS() function (pygeodesy.dms): True\n    test 788 pygeodesy.lrstrip() function (pygeodesy.streprs): True\n    test 789 pygeodesy.ltp module: True\n    test 790 pygeodesy.ltpTuples module: True\n    test 791 pygeodesy.luneOf() function (pygeodesy.points): True\n    test 792 pygeodesy.m2NM() function (pygeodesy.utily): True\n    test 793 pygeodesy.m2SM() function (pygeodesy.utily): True\n    test 794 pygeodesy.m2acre() function (pygeodesy.utily): True\n    test 795 pygeodesy.m2chain() function (pygeodesy.utily): True\n    test 796 pygeodesy.m2degrees() function (pygeodesy.utily): True\n    test 797 pygeodesy.m2fathom() function (pygeodesy.utily): True\n    test 798 pygeodesy.m2ft() function (pygeodesy.utily): True\n    test 799 pygeodesy.m2furlong() function (pygeodesy.utily): True\n    test 800 pygeodesy.m2ha() function (pygeodesy.utily): True\n    test 801 pygeodesy.m2km() function (pygeodesy.utily): True\n    test 802 pygeodesy.m2radians() function (pygeodesy.utily): True\n    test 803 pygeodesy.m2toise() function (pygeodesy.utily): True\n    test 804 pygeodesy.m2yard() function (pygeodesy.utily): True\n    test 805 pygeodesy.machine() function (pygeodesy.internals): True\n    test 806 pygeodesy.map1() function (pygeodesy.basics): True\n    test 807 pygeodesy.map2() function (pygeodesy.basics): True\n    test 808 pygeodesy.max2() function (pygeodesy.basics): True\n    test 809 pygeodesy.meeus2() function (pygeodesy.vector2d): True\n    test 810 pygeodesy.mgrs module: True\n    test 811 pygeodesy.min2() function (pygeodesy.basics): True\n    test 812 pygeodesy.modulename() function (pygeodesy.named): True\n    test 813 pygeodesy.n2e2() function (pygeodesy.ellipsoids): True\n    test 814 pygeodesy.n2f() function (pygeodesy.ellipsoids): True\n    test 815 pygeodesy.n2f_() function (pygeodesy.ellipsoids): True\n    test 816 pygeodesy.n_xyz2latlon() function (pygeodesy.nvectorBase): True\n    test 817 pygeodesy.n_xyz2philam() function (pygeodesy.nvectorBase): True\n    test 818 pygeodesy.named module: True\n    test 819 pygeodesy.namedTuples module: True\n    test 820 pygeodesy.nameof() function (pygeodesy.named): True\n    test 821 pygeodesy.nearestOn() function (pygeodesy.vector3d): True\n    test 822 pygeodesy.nearestOn5() function (pygeodesy.points): True\n    test 823 pygeodesy.nearestOn6() function (pygeodesy.vector3d): True\n    test 824 pygeodesy.neg() function (pygeodesy.basics): True\n    test 825 pygeodesy.neg_() function (pygeodesy.basics): True\n    test 826 pygeodesy.nonfiniterrors() function (pygeodesy.fsums): True\n    test 827 pygeodesy.norm2() function (pygeodesy.fmath): True\n    test 828 pygeodesy.normDMS() function (pygeodesy.dms): True\n    test 829 pygeodesy.norm_() function (pygeodesy.fmath): True\n    test 830 pygeodesy.normal() function (pygeodesy.formy): True\n    test 831 pygeodesy.normal_() function (pygeodesy.formy): True\n    test 832 pygeodesy.notImplemented() function (pygeodesy.named): True\n    test 833 pygeodesy.notOverloaded() function (pygeodesy.named): True\n    test 834 pygeodesy.nvectorBase module: True\n    test 835 pygeodesy.opposing() function (pygeodesy.formy): True\n    test 836 pygeodesy.opposing_() function (pygeodesy.formy): True\n    test 837 pygeodesy.osgr module: True\n    test 838 pygeodesy.pairs() function (pygeodesy.streprs): True\n    test 839 pygeodesy.parse3d() function (pygeodesy.vector3d): True\n    test 840 pygeodesy.parse3llh() function (pygeodesy.dms): True\n    test 841 pygeodesy.parseDDDMMSS() function (pygeodesy.dms): True\n    test 842 pygeodesy.parseDMS() function (pygeodesy.dms): True\n    test 843 pygeodesy.parseDMS2() function (pygeodesy.dms): True\n    test 844 pygeodesy.parseETM5() function (pygeodesy.etm): True\n    test 845 pygeodesy.parseMGRS() function (pygeodesy.mgrs): True\n    test 846 pygeodesy.parseOSGR() function (pygeodesy.osgr): True\n    test 847 pygeodesy.parseRad() function (pygeodesy.dms): True\n    test 848 pygeodesy.parseUPS5() function (pygeodesy.ups): True\n    test 849 pygeodesy.parseUTM5() function (pygeodesy.utm): True\n    test 850 pygeodesy.parseUTMUPS5() function (pygeodesy.utmups): True\n    test 851 pygeodesy.parseWM() function (pygeodesy.webmercator): True\n    test 852 pygeodesy.perimeterOf() function (pygeodesy.points): True\n    test 853 pygeodesy.philam2n_xyz() function (pygeodesy.latlonBase): True\n    test 854 pygeodesy.pierlot() function (pygeodesy.resections): True\n    test 855 pygeodesy.pierlotx() function (pygeodesy.resections): True\n    test 856 pygeodesy.points module: True\n    test 857 pygeodesy.points2() function (pygeodesy.iters): True\n    test 858 pygeodesy.polar2() function (pygeodesy.fmath): True\n    test 859 pygeodesy.polar2d() function (pygeodesy.fmath): True\n    test 860 pygeodesy.precision() function (pygeodesy.dms): True\n    test 861 pygeodesy.print_() function (pygeodesy.internals): True\n    test 862 pygeodesy.printf() function (pygeodesy.internals): True\n    test 863 pygeodesy.property_RO() class (pygeodesy.props): True\n    test 864 pygeodesy.property_ROnce() class (pygeodesy.props): True\n    test 865 pygeodesy.property_ROver() class (pygeodesy.props): True\n    test 866 pygeodesy.property_doc_() function (pygeodesy.props): True\n    test 867 pygeodesy.props module: True\n    test 868 pygeodesy.pygeodesy_abspath str: True\n    test 869 pygeodesy.quadOf() function (pygeodesy.points): True\n    test 870 pygeodesy.radians class builtin_function_or_method (math): True\n    test 871 pygeodesy.radians2m() function (pygeodesy.utily): True\n    test 872 pygeodesy.radiansPI() function (pygeodesy.utily): True\n    test 873 pygeodesy.radiansPI2() function (pygeodesy.utily): True\n    test 874 pygeodesy.radiansPI_2() function (pygeodesy.utily): True\n    test 875 pygeodesy.radical2() function (pygeodesy.formy): True\n    test 876 pygeodesy.radii11() function (pygeodesy.vector2d): True\n    test 877 pygeodesy.randomrangenerator() function (pygeodesy.hausdorff): True\n    test 878 pygeodesy.rangerrors() function (pygeodesy.errors): True\n    test 879 pygeodesy.remainder class builtin_function_or_method (math): True\n    test 880 pygeodesy.reprs() function (pygeodesy.streprs): True\n    test 881 pygeodesy.resections module: True\n    test 882 pygeodesy.rhumb module: True\n    test 883 pygeodesy.rtp2xyz() function (pygeodesy.cartesianBase): True\n    test 884 pygeodesy.rtp2xyz_() function (pygeodesy.cartesianBase): True\n    test 885 pygeodesy.signBit() function (pygeodesy.basics): True\n    test 886 pygeodesy.signOf() function (pygeodesy.basics): True\n    test 887 pygeodesy.simplify module: True\n    test 888 pygeodesy.simplify1() function (pygeodesy.simplify): True\n    test 889 pygeodesy.simplifyRDP() function (pygeodesy.simplify): True\n    test 890 pygeodesy.simplifyRW() function (pygeodesy.simplify): True\n    test 891 pygeodesy.simplifyVW() function (pygeodesy.simplify): True\n    test 892 pygeodesy.sincos2() function (pygeodesy.utily): True\n    test 893 pygeodesy.sincos2_() function (pygeodesy.utily): True\n    test 894 pygeodesy.sincos2d() function (pygeodesy.utily): True\n    test 895 pygeodesy.sincos2d_() function (pygeodesy.utily): True\n    test 896 pygeodesy.sincostan3() function (pygeodesy.utily): True\n    test 897 pygeodesy.sincostan3d() function (pygeodesy.utily): True\n    test 898 pygeodesy.snellius3() function (pygeodesy.resections): True\n    test 899 pygeodesy.soddy4() function (pygeodesy.vector2d): True\n    test 900 pygeodesy.solveBase module: True\n    test 901 pygeodesy.sphericalBase module: True\n    test 902 pygeodesy.sphericalNvector module: True\n    test 903 pygeodesy.sphericalTrigonometry module: True\n    test 904 pygeodesy.splice() function (pygeodesy.basics): True\n    test 905 pygeodesy.sqrt0() function (pygeodesy.fmath): True\n    test 906 pygeodesy.sqrt3() function (pygeodesy.fmath): True\n    test 907 pygeodesy.sqrt_a() function (pygeodesy.fmath): True\n    test 908 pygeodesy.str2ub() function (pygeodesy.basics): True\n    test 909 pygeodesy.streprs module: True\n    test 910 pygeodesy.strs() function (pygeodesy.streprs): True\n    test 911 pygeodesy.tan() function (pygeodesy.utily): True\n    test 912 pygeodesy.tanPI_2_2() function (pygeodesy.utily): True\n    test 913 pygeodesy.tan_() function (pygeodesy.utily): True\n    test 914 pygeodesy.tan_2() function (pygeodesy.utily): True\n    test 915 pygeodesy.tand() function (pygeodesy.utily): True\n    test 916 pygeodesy.tand_() function (pygeodesy.utily): True\n    test 917 pygeodesy.thomas() function (pygeodesy.formy): True\n    test 918 pygeodesy.thomas_() function (pygeodesy.formy): True\n    test 919 pygeodesy.tienstra7() function (pygeodesy.resections): True\n    test 920 pygeodesy.toCss() function (pygeodesy.css): True\n    test 921 pygeodesy.toDMS() function (pygeodesy.dms): True\n    test 922 pygeodesy.toEtm8() function (pygeodesy.etm): True\n    test 923 pygeodesy.toLcc() function (pygeodesy.lcc): True\n    test 924 pygeodesy.toMgrs() function (pygeodesy.mgrs): True\n    test 925 pygeodesy.toOsgr() function (pygeodesy.osgr): True\n    test 926 pygeodesy.toUps8() function (pygeodesy.ups): True\n    test 927 pygeodesy.toUtm8() function (pygeodesy.utm): True\n    test 928 pygeodesy.toUtmUps8() function (pygeodesy.utmups): True\n    test 929 pygeodesy.toWm() function (pygeodesy.webmercator): True\n    test 930 pygeodesy.toise2m() function (pygeodesy.utily): True\n    test 931 pygeodesy.trf module: True\n    test 932 pygeodesy.trfTransform0() function (pygeodesy.trf): True\n    test 933 pygeodesy.trfTransforms() function (pygeodesy.trf): True\n    test 934 pygeodesy.trfXform() function (pygeodesy.trf): True\n    test 935 pygeodesy.triAngle() function (pygeodesy.resections): True\n    test 936 pygeodesy.triAngle5() function (pygeodesy.resections): True\n    test 937 pygeodesy.triArea() function (pygeodesy.resections): True\n    test 938 pygeodesy.triSide() function (pygeodesy.resections): True\n    test 939 pygeodesy.triSide2() function (pygeodesy.resections): True\n    test 940 pygeodesy.triSide4() function (pygeodesy.resections): True\n    test 941 pygeodesy.triaxials module: True\n    test 942 pygeodesy.triaxum5() function (pygeodesy.vector2d): True\n    test 943 pygeodesy.trilaterate2d2() function (pygeodesy.vector2d): True\n    test 944 pygeodesy.trilaterate3d2() function (pygeodesy.vector3d): True\n    test 945 pygeodesy.truncate() function (pygeodesy.utily): True\n    test 946 pygeodesy.typename() function (pygeodesy.internals): True\n    test 947 pygeodesy.tyr3d() function (pygeodesy.ltp): True\n    test 948 pygeodesy.ub2str() function (pygeodesy.basics): True\n    test 949 pygeodesy.units module: True\n    test 950 pygeodesy.unitsBase module: True\n    test 951 pygeodesy.unroll180() function (pygeodesy.utily): True\n    test 952 pygeodesy.unrollPI() function (pygeodesy.utily): True\n    test 953 pygeodesy.unsigned0() function (pygeodesy.basics): True\n    test 954 pygeodesy.unstr() function (pygeodesy.streprs): True\n    test 955 pygeodesy.ups module: True\n    test 956 pygeodesy.upsZoneBand5() function (pygeodesy.ups): True\n    test 957 pygeodesy.utily module: True\n    test 958 pygeodesy.utm module: True\n    test 959 pygeodesy.utmZoneBand5() function (pygeodesy.utm): True\n    test 960 pygeodesy.utmups module: True\n    test 961 pygeodesy.utmupsBase module: True\n    test 962 pygeodesy.utmupsValidate() function (pygeodesy.utmups): True\n    test 963 pygeodesy.utmupsValidateOK() function (pygeodesy.utmups): True\n    test 964 pygeodesy.utmupsZoneBand5() function (pygeodesy.utmups): True\n    test 965 pygeodesy.vector2d module: True\n    test 966 pygeodesy.vector3d module: True\n    test 967 pygeodesy.vector3dBase module: True\n    test 968 pygeodesy.version str (pygeodesy.interns): True\n    test 969 pygeodesy.vincentys() function (pygeodesy.formy): True\n    test 970 pygeodesy.vincentys_() function (pygeodesy.formy): True\n    test 971 pygeodesy.webmercator module: True\n    test 972 pygeodesy.wgrs module: True\n    test 973 pygeodesy.wildberger3() function (pygeodesy.resections): True\n    test 974 pygeodesy.wrap180() function (pygeodesy.utily): True\n    test 975 pygeodesy.wrap360() function (pygeodesy.utily): True\n    test 976 pygeodesy.wrap90() function (pygeodesy.utily): True\n    test 977 pygeodesy.wrapPI() function (pygeodesy.utily): True\n    test 978 pygeodesy.wrapPI2() function (pygeodesy.utily): True\n    test 979 pygeodesy.wrapPI_2() function (pygeodesy.utily): True\n    test 980 pygeodesy.wrap_normal() function (pygeodesy.utily): True\n    test 981 pygeodesy.xyz2rtp() function (pygeodesy.cartesianBase): True\n    test 982 pygeodesy.xyz2rtp_() function (pygeodesy.cartesianBase): True\n    test 983 pygeodesy.yard2m() function (pygeodesy.utily): True\n    test 984 pygeodesy.zcrt() function (pygeodesy.fmath): True\n    test 985 pygeodesy.zqrt() function (pygeodesy.fmath): True\n\n    testModule(pygeodesy.albers, 26.02.27)\n    test 986 albers.Albers7Tuple() class: True\n    test 987 albers.AlbersEqualArea() class: True\n    test 988 albers.AlbersEqualArea2() class: True\n    test 989 albers.AlbersEqualArea4() class: True\n    test 990 albers.AlbersEqualAreaCylindrical() class: True\n    test 991 albers.AlbersEqualAreaNorth() class: True\n    test 992 albers.AlbersEqualAreaSouth() class: True\n    test 993 albers.AlbersError() class: True\n\n    testModule(pygeodesy.angles, 25.12.02)\n    test 994 angles.Ang() class: True\n    test 995 angles.Deg() function: True\n    test 996 angles.Lambertian() class: True\n    test 997 angles.Rad() function: True\n    test 998 angles.isAng() function: True\n\n    testModule(pygeodesy.auxilats, 25.12.02)\n    test 999 auxilats.Aux class pygeodesy.auxilats.auxily.Aux (pygeodesy.auxilats.auxily): True\n    test 1000 auxilats.AuxAngle() class (pygeodesy.auxilats.auxAngle): True\n    test 1001 auxilats.AuxBeta() class (pygeodesy.auxilats.auxAngle): True\n    test 1002 auxilats.AuxChi() class (pygeodesy.auxilats.auxAngle): True\n    test 1003 auxilats.AuxDLat() class (pygeodesy.auxilats.auxDLat): True\n    test 1004 auxilats.AuxDST() class (pygeodesy.auxilats.auxDST): True\n    test 1005 auxilats.AuxLat() class (pygeodesy.auxilats.auxLat): True\n    test 1006 auxilats.AuxMu() class (pygeodesy.auxilats.auxAngle): True\n    test 1007 auxilats.AuxPhi() class (pygeodesy.auxilats.auxAngle): True\n    test 1008 auxilats.AuxTheta() class (pygeodesy.auxilats.auxAngle): True\n    test 1009 auxilats.AuxXi() class (pygeodesy.auxilats.auxAngle): True\n\n    testModule(pygeodesy.azimuthal, 25.11.29)\n    test 1010 azimuthal.Azimuthal7Tuple() class: True\n    test 1011 azimuthal.AzimuthalError() class: True\n    test 1012 azimuthal.Equidistant() class: True\n    test 1013 azimuthal.EquidistantExact() class: True\n    test 1014 azimuthal.EquidistantGeodSolve() class: True\n    test 1015 azimuthal.EquidistantKarney() class: True\n    test 1016 azimuthal.Gnomonic() class: True\n    test 1017 azimuthal.GnomonicExact() class: True\n    test 1018 azimuthal.GnomonicGeodSolve() class: True\n    test 1019 azimuthal.GnomonicKarney() class: True\n    test 1020 azimuthal.LambertEqualArea() class: True\n    test 1021 azimuthal.Orthographic() class: True\n    test 1022 azimuthal.Stereographic() class: True\n    test 1023 azimuthal.equidistant() function: True\n    test 1024 azimuthal.gnomonic() function: True\n\n    testModule(pygeodesy.basics, 26.02.22)\n    test 1025 basics.clips() function: True\n    test 1026 basics.copysign0() function: True\n    test 1027 basics.copytype() function: True\n    test 1028 basics.halfs2() function: True\n    test 1029 basics.int1s() function: True\n    test 1030 basics.isCartesian() function: True\n    test 1031 basics.isDEPRECATED() function: True\n    test 1032 basics.isLatLon() function: True\n    test 1033 basics.isNvector() function: True\n    test 1034 basics.isbool() function: True\n    test 1035 basics.isclass() function: True\n    test 1036 basics.iscomplex() function: True\n    test 1037 basics.isfloat() function: True\n    test 1038 basics.isidentifier class method_descriptor: True\n    test 1039 basics.isinstanceof() function: True\n    test 1040 basics.isint() function: True\n    test 1041 basics.isiterable() function: True\n    test 1042 basics.isiterablen() function: True\n    test 1043 basics.isiterabletype() function: True\n    test 1044 basics.iskeyword class builtin_function_or_method: True\n    test 1045 basics.islistuple() function: True\n    test 1046 basics.isodd() function: True\n    test 1047 basics.isscalar() function: True\n    test 1048 basics.issequence() function: True\n    test 1049 basics.isstr() function: True\n    test 1050 basics.issubclassof() function: True\n    test 1051 basics.itemsorted() function: True\n    test 1052 basics.len2() function: True\n    test 1053 basics.map1() function: True\n    test 1054 basics.map2() function: True\n    test 1055 basics.max2() function: True\n    test 1056 basics.min2() function: True\n    test 1057 basics.neg() function: True\n    test 1058 basics.neg_() function: True\n    test 1059 basics.signBit() function: True\n    test 1060 basics.signOf() function: True\n    test 1061 basics.splice() function: True\n    test 1062 basics.str2ub() function: True\n    test 1063 basics.ub2str() function: True\n    test 1064 basics.unsigned0() function: True\n\n    testModule(pygeodesy.booleans, 25.10.30)\n    test 1065 booleans.BooleanFHP() class: True\n    test 1066 booleans.BooleanGH() class: True\n    test 1067 booleans.LatLonFHP() class: True\n    test 1068 booleans.LatLonGH() class: True\n    test 1069 booleans.isBoolean() function: True\n\n    testModule(pygeodesy.cartesianBase, 26.01.06)\n    test 1070 cartesianBase.RadiusThetaPhi3Tuple() class: True\n    test 1071 cartesianBase.rtp2xyz() function: True\n    test 1072 cartesianBase.rtp2xyz_() function: True\n    test 1073 cartesianBase.xyz2rtp() function: True\n    test 1074 cartesianBase.xyz2rtp_() function: True\n\n    testModule(pygeodesy.clipy, 25.10.30)\n    test 1075 clipy.ClipCS4Tuple() class: True\n    test 1076 clipy.ClipFHP4Tuple() class: True\n    test 1077 clipy.ClipGH4Tuple() class: True\n    test 1078 clipy.ClipLB6Tuple() class: True\n    test 1079 clipy.ClipSH3Tuple() class: True\n    test 1080 clipy.clipCS4() function: True\n    test 1081 clipy.clipFHP4() function: True\n    test 1082 clipy.clipGH4() function: True\n    test 1083 clipy.clipLB6() function: True\n    test 1084 clipy.clipSH() function: True\n    test 1085 clipy.clipSH3() function: True\n\n    testModule(pygeodesy.constants, 26.02.09)\n    test 1086 constants.DIG int (pygeodesy.unitsBase): True\n    test 1087 constants.EPS float (pygeodesy.unitsBase): True\n    test 1088 constants.EPS0 float (pygeodesy.unitsBase): True\n    test 1089 constants.EPS02 float (pygeodesy.unitsBase): True\n    test 1090 constants.EPS1 float (pygeodesy.unitsBase): True\n    test 1091 constants.EPS2 float (pygeodesy.unitsBase): True\n    test 1092 constants.EPS4 float (pygeodesy.unitsBase): True\n    test 1093 constants.EPS8 float (pygeodesy.unitsBase): True\n    test 1094 constants.EPS_2 float (pygeodesy.unitsBase): True\n    test 1095 constants.INF float (pygeodesy.unitsBase): True\n    test 1096 constants.INT0 int (pygeodesy.unitsBase): True\n    test 1097 constants.MANT_DIG int (pygeodesy.unitsBase): True\n    test 1098 constants.MAX float (pygeodesy.unitsBase): True\n    test 1099 constants.MAX_EXP int (pygeodesy.unitsBase): True\n    test 1100 constants.MIN float (pygeodesy.unitsBase): True\n    test 1101 constants.MIN_EXP int (pygeodesy.unitsBase): True\n    test 1102 constants.NAN float (pygeodesy.unitsBase): True\n    test 1103 constants.NEG0 float (pygeodesy.unitsBase): True\n    test 1104 constants.NINF float (pygeodesy.unitsBase): True\n    test 1105 constants.OVERFLOW float (pygeodesy.unitsBase): True\n    test 1106 constants.PI float (pygeodesy.unitsBase): True\n    test 1107 constants.PI2 float (pygeodesy.unitsBase): True\n    test 1108 constants.PI3 float (pygeodesy.unitsBase): True\n    test 1109 constants.PI3_2 float (pygeodesy.unitsBase): True\n    test 1110 constants.PI4 float (pygeodesy.unitsBase): True\n    test 1111 constants.PI_2 float (pygeodesy.unitsBase): True\n    test 1112 constants.PI_3 float (pygeodesy.unitsBase): True\n    test 1113 constants.PI_4 float (pygeodesy.unitsBase): True\n    test 1114 constants.PI_6 float (pygeodesy.unitsBase): True\n    test 1115 constants.R_FM float (pygeodesy.unitsBase): True\n    test 1116 constants.R_GM float (pygeodesy.unitsBase): True\n    test 1117 constants.R_KM float (pygeodesy.unitsBase): True\n    test 1118 constants.R_M float (pygeodesy.unitsBase): True\n    test 1119 constants.R_MA float (pygeodesy.unitsBase): True\n    test 1120 constants.R_MB float (pygeodesy.unitsBase): True\n    test 1121 constants.R_NM float (pygeodesy.unitsBase): True\n    test 1122 constants.R_QM float (pygeodesy.unitsBase): True\n    test 1123 constants.R_SM float (pygeodesy.unitsBase): True\n    test 1124 constants.R_VM float (pygeodesy.unitsBase): True\n    test 1125 constants.float0_() function: True\n    test 1126 constants.float_() function: True\n    test 1127 constants.floats_() function: True\n    test 1128 constants.isclose() function: True\n    test 1129 constants.isfinite() function: True\n    test 1130 constants.isinf class builtin_function_or_method (math): True\n    test 1131 constants.isint0() function: True\n    test 1132 constants.isnan class builtin_function_or_method (math): True\n    test 1133 constants.isnear0() function: True\n    test 1134 constants.isnear1() function: True\n    test 1135 constants.isnear90() function: True\n    test 1136 constants.isneg() function: True\n    test 1137 constants.isneg0() function: True\n    test 1138 constants.isninf() function: True\n    test 1139 constants.isnon0() function: True\n    test 1140 constants.remainder class builtin_function_or_method (math): True\n\n    testModule(pygeodesy.css, 25.04.14)\n    test 1141 css.CSSError() class: True\n    test 1142 css.CassiniSoldner() class: True\n    test 1143 css.Css() class: True\n    test 1144 css.EasNorAziRk4Tuple() class: True\n    test 1145 css.EasNorAziRkEqu6Tuple() class: True\n    test 1146 css.LatLonAziRk4Tuple() class: True\n    test 1147 css.toCss() function: True\n\n    testModule(pygeodesy.datums, 26.01.13)\n    test 1148 datums.Datum() class: True\n    test 1149 datums.Datums class pygeodesy.datums.Datums: True\n    test 1150 datums.Transform() class: True\n    test 1151 datums.Transforms class pygeodesy.datums.Transforms: True\n\n    testModule(pygeodesy.dms, 25.08.31)\n    test 1152 dms.F_D str: True\n    test 1153 dms.F_D60 str: True\n    test 1154 dms.F_D60_ str (pygeodesy.interns): True\n    test 1155 dms.F_D60__ str (pygeodesy.interns): True\n    test 1156 dms.F_DEG str: True\n    test 1157 dms.F_DEG_ str (pygeodesy.interns): True\n    test 1158 dms.F_DEG__ str (pygeodesy.interns): True\n    test 1159 dms.F_DM str: True\n    test 1160 dms.F_DMS str: True\n    test 1161 dms.F_DMS_ str (pygeodesy.interns): True\n    test 1162 dms.F_DMS__ str (pygeodesy.interns): True\n    test 1163 dms.F_DM_ str (pygeodesy.interns): True\n    test 1164 dms.F_DM__ str (pygeodesy.interns): True\n    test 1165 dms.F_D_ str (pygeodesy.interns): True\n    test 1166 dms.F_D__ str (pygeodesy.interns): True\n    test 1167 dms.F_MIN str: True\n    test 1168 dms.F_MIN_ str (pygeodesy.interns): True\n    test 1169 dms.F_MIN__ str (pygeodesy.interns): True\n    test 1170 dms.F_RAD str: True\n    test 1171 dms.F_RAD_ str (pygeodesy.interns): True\n    test 1172 dms.F_RAD__ str (pygeodesy.interns): True\n    test 1173 dms.F_SEC str: True\n    test 1174 dms.F_SEC_ str (pygeodesy.interns): True\n    test 1175 dms.F_SEC__ str (pygeodesy.interns): True\n    test 1176 dms.F__E str: True\n    test 1177 dms.F__E_ str (pygeodesy.interns): True\n    test 1178 dms.F__E__ str (pygeodesy.interns): True\n    test 1179 dms.F__F str: True\n    test 1180 dms.F__F_ str (pygeodesy.interns): True\n    test 1181 dms.F__F__ str (pygeodesy.interns): True\n    test 1182 dms.F__G str: True\n    test 1183 dms.F__G_ str (pygeodesy.interns): True\n    test 1184 dms.F__G__ str (pygeodesy.interns): True\n    test 1185 dms.S_DEG str: True\n    test 1186 dms.S_DMS int: True\n    test 1187 dms.S_MIN str: True\n    test 1188 dms.S_RAD str (pygeodesy.interns): True\n    test 1189 dms.S_SEC str: True\n    test 1190 dms.S_SEP str (pygeodesy.interns): True\n    test 1191 dms.bearingDMS() function: True\n    test 1192 dms.clipDegrees() function: True\n    test 1193 dms.clipRadians() function: True\n    test 1194 dms.compassDMS() function: True\n    test 1195 dms.compassPoint() function: True\n    test 1196 dms.degDMS() function: True\n    test 1197 dms.latDMS() function: True\n    test 1198 dms.latlonDMS() function: True\n    test 1199 dms.latlonDMS_() function: True\n    test 1200 dms.lonDMS() function: True\n    test 1201 dms.normDMS() function: True\n    test 1202 dms.parse3llh() function: True\n    test 1203 dms.parseDDDMMSS() function: True\n    test 1204 dms.parseDMS() function: True\n    test 1205 dms.parseDMS2() function: True\n    test 1206 dms.parseRad() function: True\n    test 1207 dms.precision() function: True\n    test 1208 dms.toDMS() function: True\n\n    testModule(pygeodesy.ecef, 25.08.31)\n    test 1209 ecef.Ecef9Tuple() class: True\n    test 1210 ecef.EcefError() class: True\n    test 1211 ecef.EcefFarrell21() class: True\n    test 1212 ecef.EcefFarrell22() class: True\n    test 1213 ecef.EcefKarney() class: True\n    test 1214 ecef.EcefMatrix() class: True\n    test 1215 ecef.EcefSudano() class: True\n    test 1216 ecef.EcefUPC() class: True\n    test 1217 ecef.EcefVeness() class: True\n    test 1218 ecef.EcefYou() class: True\n\n    testModule(pygeodesy.ecefLocals, 25.04.28)\n\n    testModule(pygeodesy.elevations, 25.04.14)\n    test 1219 elevations.Elevation2Tuple() class: True\n    test 1220 elevations.GeoidHeight2Tuple() class: True\n    test 1221 elevations.elevation2() function: True\n    test 1222 elevations.geoidHeight2() function: True\n\n    testModule(pygeodesy.ellipses, 26.03.25)\n    test 1223 ellipses.Ellipse() class: True\n    test 1224 ellipses.EllipseError() class: True\n\n    testModule(pygeodesy.ellipsoidalBase, 25.07.21)\n\n    testModule(pygeodesy.ellipsoidalBaseDI, 25.05.23)\n\n    testModule(pygeodesy.ellipsoidalExact, 25.08.28)\n    test 1225 ellipsoidalExact.Cartesian() class: True\n    test 1226 ellipsoidalExact.LatLon() class: True\n    test 1227 ellipsoidalExact.areaOf() function: True\n    test 1228 ellipsoidalExact.intersecant2() function (pygeodesy.ellipsoidalBaseDI): True\n    test 1229 ellipsoidalExact.intersection3() function: True\n    test 1230 ellipsoidalExact.intersections2() function: True\n    test 1231 ellipsoidalExact.isclockwise() function: True\n    test 1232 ellipsoidalExact.ispolar() function (pygeodesy.points): True\n    test 1233 ellipsoidalExact.nearestOn() function: True\n    test 1234 ellipsoidalExact.perimeterOf() function: True\n\n    testModule(pygeodesy.ellipsoidalGeodSolve, 25.08.28)\n    test 1235 ellipsoidalGeodSolve.Cartesian() class: True\n    test 1236 ellipsoidalGeodSolve.LatLon() class: True\n    test 1237 ellipsoidalGeodSolve.areaOf() function: True\n    test 1238 ellipsoidalGeodSolve.intersection3() function: True\n    test 1239 ellipsoidalGeodSolve.intersections2() function: True\n    test 1240 ellipsoidalGeodSolve.isclockwise() function: True\n    test 1241 ellipsoidalGeodSolve.ispolar() function (pygeodesy.points): True\n    test 1242 ellipsoidalGeodSolve.nearestOn() function: True\n    test 1243 ellipsoidalGeodSolve.perimeterOf() function: True\n\n    testModule(pygeodesy.ellipsoidalKarney, 25.05.27)\n    test 1244 ellipsoidalKarney.Cartesian() class: True\n    test 1245 ellipsoidalKarney.LatLon() class: True\n    test 1246 ellipsoidalKarney.areaOf() function: True\n    test 1247 ellipsoidalKarney.intersecant2() function (pygeodesy.ellipsoidalBaseDI): True\n    test 1248 ellipsoidalKarney.intersection3() function: True\n    test 1249 ellipsoidalKarney.intersections2() function: True\n    test 1250 ellipsoidalKarney.isclockwise() function: True\n    test 1251 ellipsoidalKarney.ispolar() function (pygeodesy.points): True\n    test 1252 ellipsoidalKarney.nearestOn() function: True\n    test 1253 ellipsoidalKarney.perimeterOf() function: True\n\n    testModule(pygeodesy.ellipsoidalNvector, 25.05.12)\n    test 1254 ellipsoidalNvector.Cartesian() class: True\n    test 1255 ellipsoidalNvector.LatLon() class: True\n    test 1256 ellipsoidalNvector.Ned() class: True\n    test 1257 ellipsoidalNvector.Nvector() class: True\n    test 1258 ellipsoidalNvector.meanOf() function: True\n    test 1259 ellipsoidalNvector.sumOf() function: True\n    test 1260 ellipsoidalNvector.toNed() function: True\n\n    testModule(pygeodesy.ellipsoidalVincenty, 25.05.26)\n    test 1261 ellipsoidalVincenty.VincentyError() class: True\n\n    testModule(pygeodesy.ellipsoids, 26.03.25)\n    test 1262 ellipsoids.Curvature2Tuple() class: True\n    test 1263 ellipsoids.Ellipsoid() class: True\n    test 1264 ellipsoids.Ellipsoid2() class: True\n    test 1265 ellipsoids.Ellipsoids class pygeodesy.ellipsoids.Ellipsoids: True\n    test 1266 ellipsoids.a_b2e() function: True\n    test 1267 ellipsoids.a_b2e2() function: True\n    test 1268 ellipsoids.a_b2e22() function: True\n    test 1269 ellipsoids.a_b2e32() function: True\n    test 1270 ellipsoids.a_b2f() function: True\n    test 1271 ellipsoids.a_b2f2() function: True\n    test 1272 ellipsoids.a_b2f_() function: True\n    test 1273 ellipsoids.a_b2n() function: True\n    test 1274 ellipsoids.a_f2Tuple() class: True\n    test 1275 ellipsoids.a_f2b() function: True\n    test 1276 ellipsoids.a_f_2b() function: True\n    test 1277 ellipsoids.b_f2a() function: True\n    test 1278 ellipsoids.b_f_2a() function: True\n    test 1279 ellipsoids.e22f() function: True\n    test 1280 ellipsoids.e2f() function: True\n    test 1281 ellipsoids.f2e2() function: True\n    test 1282 ellipsoids.f2e22() function: True\n    test 1283 ellipsoids.f2e32() function: True\n    test 1284 ellipsoids.f2f2() function: True\n    test 1285 ellipsoids.f2f_() function: True\n    test 1286 ellipsoids.f2n() function: True\n    test 1287 ellipsoids.f_2f() function: True\n    test 1288 ellipsoids.n2e2() function: True\n    test 1289 ellipsoids.n2f() function: True\n    test 1290 ellipsoids.n2f_() function: True\n\n    testModule(pygeodesy.elliptic, 26.02.15)\n    test 1291 elliptic.Elliptic() class: True\n    test 1292 elliptic.Elliptic3Tuple() class: True\n    test 1293 elliptic.EllipticError() class: True\n\n    testModule(pygeodesy.epsg, 24.08.05)\n    test 1294 epsg.EPSGError() class: True\n    test 1295 epsg.Epsg() class: True\n\n    testModule(pygeodesy.errors, 26.02.12)\n    test 1296 errors.AuxError() class: True\n    test 1297 errors.ClipError() class: True\n    test 1298 errors.CrossError() class: True\n    test 1299 errors.GeodesicError() class: True\n    test 1300 errors.IntersectionError() class: True\n    test 1301 errors.LenError() class: True\n    test 1302 errors.LimitError() class: True\n    test 1303 errors.MGRSError() class: True\n    test 1304 errors.NumPyError() class: True\n    test 1305 errors.ParseError() class: True\n    test 1306 errors.PointsError() class: True\n    test 1307 errors.RangeError() class: True\n    test 1308 errors.RhumbError() class: True\n    test 1309 errors.SciPyError() class: True\n    test 1310 errors.SciPyWarning() class: True\n    test 1311 errors.TRFError() class: True\n    test 1312 errors.TriangleError() class: True\n    test 1313 errors.UnitError() class: True\n    test 1314 errors.VectorError() class: True\n    test 1315 errors.crosserrors() function: True\n    test 1316 errors.exception_chaining() function: True\n    test 1317 errors.isError() function: True\n    test 1318 errors.limiterrors() function: True\n    test 1319 errors.rangerrors() function: True\n\n    testModule(pygeodesy.etm, 25.09.15)\n    test 1320 etm.ETMError() class: True\n    test 1321 etm.Etm() class: True\n    test 1322 etm.ExactTransverseMercator() class: True\n    test 1323 etm.parseETM5() function: True\n    test 1324 etm.toEtm8() function: True\n\n    testModule(pygeodesy.fmath, 26.03.25)\n    test 1325 fmath.Fcbrt() class: True\n    test 1326 fmath.Fdot() class: True\n    test 1327 fmath.Fdot_() class: True\n    test 1328 fmath.Fhorner() class: True\n    test 1329 fmath.Fhypot() class: True\n    test 1330 fmath.Fpolynomial() class: True\n    test 1331 fmath.Fpowers() class: True\n    test 1332 fmath.Froot() class: True\n    test 1333 fmath.Fsqrt() class: True\n    test 1334 fmath.bqrt() function: True\n    test 1335 fmath.cbrt() function: True\n    test 1336 fmath.cbrt2() function: True\n    test 1337 fmath.euclid() function: True\n    test 1338 fmath.euclid_() function: True\n    test 1339 fmath.f2mul_() function: True\n    test 1340 fmath.facos1() function: True\n    test 1341 fmath.fasin1() function: True\n    test 1342 fmath.fatan() function: True\n    test 1343 fmath.fatan1() function: True\n    test 1344 fmath.fatan2() function: True\n    test 1345 fmath.favg() function: True\n    test 1346 fmath.fdot() function: True\n    test 1347 fmath.fdot3() function: True\n    test 1348 fmath.fdot_() function: True\n    test 1349 fmath.fhorner() function: True\n    test 1350 fmath.fidw() function: True\n    test 1351 fmath.fma() function: True\n    test 1352 fmath.fmean() function: True\n    test 1353 fmath.fmean_() function: True\n    test 1354 fmath.fpolynomial() function: True\n    test 1355 fmath.fpowers() function: True\n    test 1356 fmath.fprod class builtin_function_or_method (math): True\n    test 1357 fmath.frandoms() function: True\n    test 1358 fmath.frange() function: True\n    test 1359 fmath.freduce class builtin_function_or_method (_functools): True\n    test 1360 fmath.fremainder() function: True\n    test 1361 fmath.hypot class builtin_function_or_method (math): True\n    test 1362 fmath.hypot1() function: True\n    test 1363 fmath.hypot2() function: True\n    test 1364 fmath.hypot2_() function: True\n    test 1365 fmath.hypot_ class builtin_function_or_method (math): True\n    test 1366 fmath.norm2() function: True\n    test 1367 fmath.norm_() function: True\n    test 1368 fmath.polar2() function: True\n    test 1369 fmath.polar2d() function: True\n    test 1370 fmath.sqrt0() function: True\n    test 1371 fmath.sqrt3() function: True\n    test 1372 fmath.sqrt_a() function: True\n    test 1373 fmath.zcrt() function: True\n    test 1374 fmath.zqrt() function: True\n\n    testModule(pygeodesy.formy, 26.01.06)\n    test 1375 formy.Radical2Tuple() class: True\n    test 1376 formy.angle2chord() function: True\n    test 1377 formy.antipode() function: True\n    test 1378 formy.antipode_() function: True\n    test 1379 formy.bearing() function: True\n    test 1380 formy.bearing_() function: True\n    test 1381 formy.chord2angle() function: True\n    test 1382 formy.compassAngle() function: True\n    test 1383 formy.cosineLaw() function: True\n    test 1384 formy.cosineLaw_() function: True\n    test 1385 formy.equirectangular() function: True\n    test 1386 formy.equirectangular4() function: True\n    test 1387 formy.euclidean() function: True\n    test 1388 formy.euclidean_() function: True\n    test 1389 formy.excessAbc_() function: True\n    test 1390 formy.excessCagnoli_() function: True\n    test 1391 formy.excessGirard_() function: True\n    test 1392 formy.excessKarney() function: True\n    test 1393 formy.excessKarney_() function: True\n    test 1394 formy.excessLHuilier_() function: True\n    test 1395 formy.excessQuad() function: True\n    test 1396 formy.excessQuad_() function: True\n    test 1397 formy.flatLocal() function: True\n    test 1398 formy.flatLocal_() function: True\n    test 1399 formy.flatPolar() function: True\n    test 1400 formy.flatPolar_() function: True\n    test 1401 formy.hartzell() function: True\n    test 1402 formy.haversine() function: True\n    test 1403 formy.haversine_() function: True\n    test 1404 formy.heightOf() function: True\n    test 1405 formy.heightOrthometric() function: True\n    test 1406 formy.horizon() function: True\n    test 1407 formy.hubeny() function: True\n    test 1408 formy.hubeny_() function: True\n    test 1409 formy.intersection2() function: True\n    test 1410 formy.intersections2() function: True\n    test 1411 formy.isantipode() function: True\n    test 1412 formy.isantipode_() function: True\n    test 1413 formy.isnormal() function: True\n    test 1414 formy.isnormal_() function: True\n    test 1415 formy.normal() function: True\n    test 1416 formy.normal_() function: True\n    test 1417 formy.opposing() function: True\n    test 1418 formy.opposing_() function: True\n    test 1419 formy.radical2() function: True\n    test 1420 formy.thomas() function: True\n    test 1421 formy.thomas_() function: True\n    test 1422 formy.vincentys() function: True\n    test 1423 formy.vincentys_() function: True\n\n    testModule(pygeodesy.frechet, 25.05.26)\n    test 1424 frechet.Frechet() class: True\n    test 1425 frechet.Frechet6Tuple() class: True\n    test 1426 frechet.FrechetCosineLaw() class: True\n    test 1427 frechet.FrechetDegrees() class: True\n    test 1428 frechet.FrechetDistanceTo() class: True\n    test 1429 frechet.FrechetEquirectangular() class: True\n    test 1430 frechet.FrechetError() class: True\n    test 1431 frechet.FrechetEuclidean() class: True\n    test 1432 frechet.FrechetExact() class: True\n    test 1433 frechet.FrechetFlatLocal() class: True\n    test 1434 frechet.FrechetFlatPolar() class: True\n    test 1435 frechet.FrechetHaversine() class: True\n    test 1436 frechet.FrechetHubeny() class: True\n    test 1437 frechet.FrechetKarney() class: True\n    test 1438 frechet.FrechetRadians() class: True\n    test 1439 frechet.FrechetThomas() class: True\n    test 1440 frechet.FrechetVincentys() class: True\n    test 1441 frechet.frechet_() function: True\n\n    testModule(pygeodesy.fstats, 25.05.12)\n    test 1442 fstats.Fcook() class: True\n    test 1443 fstats.Flinear() class: True\n    test 1444 fstats.Fwelford() class: True\n\n    testModule(pygeodesy.fsums, 26.02.02)\n    test 1445 fsums.DivMod2Tuple() class: True\n    test 1446 fsums.Fsum() class: True\n    test 1447 fsums.Fsum2Tuple() class: True\n    test 1448 fsums.ResidualError() class: True\n    test 1449 fsums.f2product() function: True\n    test 1450 fsums.fsum() function: True\n    test 1451 fsums.fsum1() function: True\n    test 1452 fsums.fsum1_() function: True\n    test 1453 fsums.fsum1f_() function: True\n    test 1454 fsums.fsum_() function: True\n    test 1455 fsums.fsumf_() function: True\n    test 1456 fsums.nonfiniterrors() function: True\n\n    testModule(pygeodesy.gars, 25.05.07)\n    test 1457 gars.GARSError() class: True\n    test 1458 gars.Garef() class: True\n\n    testModule(pygeodesy.geod3solve, 26.02.12)\n    test 1459 geod3solve.Geod3Solve8Tuple() class: True\n    test 1460 geod3solve.Geodesic3Error() class: True\n    test 1461 geod3solve.Geodesic3Solve() class: True\n    test 1462 geod3solve.GeodesicLine3Solve() class: True\n\n    testModule(pygeodesy.geodesici, 26.02.04)\n    test 1463 geodesici.Intersect7Tuple() class: True\n    test 1464 geodesici.Intersectool() class: True\n    test 1465 geodesici.Intersectool5Tuple() class: True\n    test 1466 geodesici.Intersector() class: True\n    test 1467 geodesici.Intersector5Tuple() class: True\n    test 1468 geodesici.Middle5Tuple() class: True\n    test 1469 geodesici.XDict() class: True\n\n    testModule(pygeodesy.geodesicw, 25.05.28)\n    test 1470 geodesicw.Geodesic() class: True\n    test 1471 geodesicw.GeodesicLine() class: True\n    test 1472 geodesicw.Geodesic_WGS84() function: True\n\n    testModule(pygeodesy.geodesicx, 25.12.23)\n    test 1473 geodesicx.GeodesicAreaExact() class (pygeodesy.geodesicx.gxarea): True\n    test 1474 geodesicx.GeodesicExact() class (pygeodesy.geodesicx.gx): True\n    test 1475 geodesicx.GeodesicLineExact() class (pygeodesy.geodesicx.gx): True\n    test 1476 geodesicx.PolygonArea() class (pygeodesy.geodesicx.gxarea): True\n    test 1477 geodesicx.gx module: True\n    test 1478 geodesicx.gxarea module: True\n    test 1479 geodesicx.gxbases module: True\n    test 1480 geodesicx.gxline module: True\n\n    testModule(pygeodesy.geodsolve, 25.12.31)\n    test 1481 geodsolve.GeodSolve12Tuple() class: True\n    test 1482 geodsolve.GeodesicLineSolve() class: True\n    test 1483 geodsolve.GeodesicSolve() class: True\n\n    testModule(pygeodesy.geohash, 25.09.16)\n    test 1484 geohash.Geohash() class: True\n    test 1485 geohash.GeohashError() class: True\n    test 1486 geohash.Geohashed() class: True\n    test 1487 geohash.Neighbors8Dict() class: True\n    test 1488 geohash.Resolutions2Tuple() class: True\n    test 1489 geohash.Sizes3Tuple() class: True\n\n    testModule(pygeodesy.geoids, 26.02.02)\n    test 1490 geoids.GeoidEGM96() class: True\n    test 1491 geoids.GeoidError() class: True\n    test 1492 geoids.GeoidG2012B() class: True\n    test 1493 geoids.GeoidHeight5Tuple() class: True\n    test 1494 geoids.GeoidKarney() class: True\n    test 1495 geoids.GeoidPGM() class: True\n    test 1496 geoids.PGMError() class: True\n    test 1497 geoids.egmGeoidHeights() function: True\n\n    testModule(pygeodesy.geodesicx.gx, 25.09.16)\n\n    testModule(pygeodesy.geodesicx.gxarea, 25.12.23)\n\n    testModule(pygeodesy.geodesicx.gxbases, 25.06.01)\n\n    testModule(pygeodesy.geodesicx.gxline, 25.09.09)\n\n    testModule(pygeodesy.hausdorff, 25.05.26)\n    test 1498 hausdorff.Hausdorff() class: True\n    test 1499 hausdorff.Hausdorff6Tuple() class: True\n    test 1500 hausdorff.HausdorffCosineLaw() class: True\n    test 1501 hausdorff.HausdorffDegrees() class: True\n    test 1502 hausdorff.HausdorffDistanceTo() class: True\n    test 1503 hausdorff.HausdorffEquirectangular() class: True\n    test 1504 hausdorff.HausdorffError() class: True\n    test 1505 hausdorff.HausdorffEuclidean() class: True\n    test 1506 hausdorff.HausdorffExact() class: True\n    test 1507 hausdorff.HausdorffFlatLocal() class: True\n    test 1508 hausdorff.HausdorffFlatPolar() class: True\n    test 1509 hausdorff.HausdorffHaversine() class: True\n    test 1510 hausdorff.HausdorffHubeny() class: True\n    test 1511 hausdorff.HausdorffKarney() class: True\n    test 1512 hausdorff.HausdorffRadians() class: True\n    test 1513 hausdorff.HausdorffThomas() class: True\n    test 1514 hausdorff.HausdorffVincentys() class: True\n    test 1515 hausdorff.hausdorff_() function: True\n    test 1516 hausdorff.randomrangenerator() function: True\n\n    testModule(pygeodesy.heights, 26.02.02)\n    test 1517 heights.HeightCubic() class: True\n    test 1518 heights.HeightError() class: True\n    test 1519 heights.HeightIDWcosineLaw() class: True\n    test 1520 heights.HeightIDWdistanceTo() class: True\n    test 1521 heights.HeightIDWequirectangular() class: True\n    test 1522 heights.HeightIDWeuclidean() class: True\n    test 1523 heights.HeightIDWexact() class: True\n    test 1524 heights.HeightIDWflatLocal() class: True\n    test 1525 heights.HeightIDWflatPolar() class: True\n    test 1526 heights.HeightIDWhaversine() class: True\n    test 1527 heights.HeightIDWhubeny() class: True\n    test 1528 heights.HeightIDWkarney() class: True\n    test 1529 heights.HeightIDWthomas() class: True\n    test 1530 heights.HeightIDWvincentys() class: True\n    test 1531 heights.HeightLSQBiSpline() class: True\n    test 1532 heights.HeightLinear() class: True\n    test 1533 heights.HeightSmoothBiSpline() class: True\n\n    testModule(pygeodesy.internals, 26.01.13)\n    test 1534 internals.machine() function: True\n    test 1535 internals.print_() function: True\n    test 1536 internals.printf() function: True\n    test 1537 internals.typename() function: True\n\n    testModule(pygeodesy.interns, 25.11.07)\n    test 1538 interns.NN str: True\n    test 1539 interns.Str_() class: True\n\n    testModule(pygeodesy.iters, 25.05.19)\n    test 1540 iters.LatLon2PsxyIter() class: True\n    test 1541 iters.PointsIter() class: True\n    test 1542 iters.isNumpy2() function: True\n    test 1543 iters.isPoints2() function: True\n    test 1544 iters.isTuple2() function: True\n    test 1545 iters.iterNumpy2() function: True\n    test 1546 iters.iterNumpy2over() function: True\n    test 1547 iters.points2() function: True\n\n    testModule(pygeodesy.karney, 25.12.23)\n    test 1548 karney.Area3Tuple() class: True\n    test 1549 karney.Caps class pygeodesy.karney.Caps: True\n    test 1550 karney.Direct9Tuple() class: True\n    test 1551 karney.GDict() class: True\n    test 1552 karney.Inverse10Tuple() class: True\n\n    testModule(pygeodesy.ktm, 25.08.31)\n    test 1553 ktm.KTMError() class: True\n    test 1554 ktm.KTransverseMercator() class: True\n\n    testModule(pygeodesy.latlonBase, 25.08.18)\n    test 1555 latlonBase.latlon2n_xyz() function: True\n    test 1556 latlonBase.philam2n_xyz() function: True\n\n    testModule(pygeodesy.lazily, 26.03.20)\n    test 1557 lazily.LazyAttributeError() class: True\n    test 1558 lazily.LazyImportError() class: True\n    test 1559 lazily.isLazy int: True\n\n    testModule(pygeodesy.lcc, 25.08.31)\n    test 1560 lcc.Conic() class: True\n    test 1561 lcc.Conics class pygeodesy.lcc.Conics: True\n    test 1562 lcc.LCCError() class: True\n    test 1563 lcc.Lcc() class: True\n    test 1564 lcc.toLcc() function: True\n\n    testModule(pygeodesy.ltp, 25.05.12)\n    test 1565 ltp.Attitude() class: True\n    test 1566 ltp.AttitudeError() class: True\n    test 1567 ltp.ChLV() class: True\n    test 1568 ltp.ChLVa() class: True\n    test 1569 ltp.ChLVe() class: True\n    test 1570 ltp.Frustum() class: True\n    test 1571 ltp.LocalCartesian() class: True\n    test 1572 ltp.LocalError() class: True\n    test 1573 ltp.Ltp() class: True\n    test 1574 ltp.tyr3d() function: True\n\n    testModule(pygeodesy.ltpTuples, 25.05.01)\n    test 1575 ltpTuples.Aer() class: True\n    test 1576 ltpTuples.Aer4Tuple() class: True\n    test 1577 ltpTuples.Attitude4Tuple() class: True\n    test 1578 ltpTuples.ChLV9Tuple() class: True\n    test 1579 ltpTuples.ChLVEN2Tuple() class: True\n    test 1580 ltpTuples.ChLVYX2Tuple() class: True\n    test 1581 ltpTuples.ChLVyx2Tuple() class: True\n    test 1582 ltpTuples.Enu() class: True\n    test 1583 ltpTuples.Enu4Tuple() class: True\n    test 1584 ltpTuples.Footprint5Tuple() class: True\n    test 1585 ltpTuples.Local9Tuple() class: True\n    test 1586 ltpTuples.Los() class: True\n    test 1587 ltpTuples.Ned() class: True\n    test 1588 ltpTuples.Ned4Tuple() class: True\n    test 1589 ltpTuples.Uvw() class: True\n    test 1590 ltpTuples.Uvw3Tuple() class: True\n    test 1591 ltpTuples.Xyz4Tuple() class: True\n    test 1592 ltpTuples.XyzLocal() class: True\n\n    testModule(pygeodesy.mgrs, 25.05.12)\n    test 1593 mgrs.Mgrs() class: True\n    test 1594 mgrs.Mgrs4Tuple() class: True\n    test 1595 mgrs.Mgrs6Tuple() class: True\n    test 1596 mgrs.parseMGRS() function: True\n    test 1597 mgrs.toMgrs() function: True\n\n    testModule(pygeodesy.named, 26.01.14)\n    test 1598 named.ADict() class: True\n    test 1599 named.callername() function: True\n    test 1600 named.classname() function: True\n    test 1601 named.classnaming() function: True\n    test 1602 named.modulename() function: True\n    test 1603 named.nameof() function: True\n    test 1604 named.notImplemented() function: True\n    test 1605 named.notOverloaded() function: True\n\n    testModule(pygeodesy.namedTuples, 26.03.12)\n    test 1606 namedTuples.Bearing2Tuple() class: True\n    test 1607 namedTuples.Bounds2Tuple() class: True\n    test 1608 namedTuples.Bounds4Tuple() class: True\n    test 1609 namedTuples.Circle4Tuple() class: True\n    test 1610 namedTuples.Destination2Tuple() class: True\n    test 1611 namedTuples.Destination3Tuple() class: True\n    test 1612 namedTuples.Distance2Tuple() class: True\n    test 1613 namedTuples.Distance3Tuple() class: True\n    test 1614 namedTuples.Distance4Tuple() class: True\n    test 1615 namedTuples.EasNor2Tuple() class: True\n    test 1616 namedTuples.EasNor3Tuple() class: True\n    test 1617 namedTuples.Ellipse5Tuple() class: True\n    test 1618 namedTuples.Forward4Tuple() class: True\n    test 1619 namedTuples.Intersection3Tuple() class: True\n    test 1620 namedTuples.LatLon2Tuple() class: True\n    test 1621 namedTuples.LatLon3Tuple() class: True\n    test 1622 namedTuples.LatLon4Tuple() class: True\n    test 1623 namedTuples.LatLonDatum3Tuple() class: True\n    test 1624 namedTuples.LatLonDatum5Tuple() class: True\n    test 1625 namedTuples.LatLonPrec3Tuple() class: True\n    test 1626 namedTuples.LatLonPrec5Tuple() class: True\n    test 1627 namedTuples.NearestOn2Tuple() class: True\n    test 1628 namedTuples.NearestOn3Tuple() class: True\n    test 1629 namedTuples.NearestOn6Tuple() class: True\n    test 1630 namedTuples.NearestOn8Tuple() class: True\n    test 1631 namedTuples.PhiLam2Tuple() class: True\n    test 1632 namedTuples.PhiLam3Tuple() class: True\n    test 1633 namedTuples.PhiLam4Tuple() class: True\n    test 1634 namedTuples.Point3Tuple() class: True\n    test 1635 namedTuples.Points2Tuple() class: True\n    test 1636 namedTuples.Reverse4Tuple() class: True\n    test 1637 namedTuples.Triangle7Tuple() class: True\n    test 1638 namedTuples.Triangle8Tuple() class: True\n    test 1639 namedTuples.Trilaterate5Tuple() class: True\n    test 1640 namedTuples.UtmUps2Tuple() class: True\n    test 1641 namedTuples.UtmUps5Tuple() class: True\n    test 1642 namedTuples.UtmUps8Tuple() class: True\n    test 1643 namedTuples.UtmUpsLatLon5Tuple() class: True\n    test 1644 namedTuples.Vector2Tuple() class: True\n    test 1645 namedTuples.Vector3Tuple() class: True\n    test 1646 namedTuples.Vector4Tuple() class: True\n\n    testModule(pygeodesy.nvectorBase, 25.08.18)\n    test 1647 nvectorBase.NorthPole class pygeodesy.nvectorBase._N_Vector: True\n    test 1648 nvectorBase.SouthPole class pygeodesy.nvectorBase._N_Vector: True\n    test 1649 nvectorBase.n_xyz2latlon() function: True\n    test 1650 nvectorBase.n_xyz2philam() function: True\n\n    testModule(pygeodesy.osgr, 25.05.12)\n    test 1651 osgr.OSGRError() class: True\n    test 1652 osgr.Osgr() class: True\n    test 1653 osgr.parseOSGR() function: True\n    test 1654 osgr.toOsgr() function: True\n\n    testModule(pygeodesy.points, 25.05.12)\n    test 1655 points.LatLon2psxy() class: True\n    test 1656 points.LatLon_() class: True\n    test 1657 points.Numpy2LatLon() class: True\n    test 1658 points.Shape2Tuple() class: True\n    test 1659 points.Tuple2LatLon() class: True\n    test 1660 points.areaOf() function: True\n    test 1661 points.boundsOf() function: True\n    test 1662 points.centroidOf() function: True\n    test 1663 points.fractional() function: True\n    test 1664 points.isclockwise() function: True\n    test 1665 points.isconvex() function: True\n    test 1666 points.isconvex_() function: True\n    test 1667 points.isenclosedBy() function: True\n    test 1668 points.ispolar() function: True\n    test 1669 points.luneOf() function: True\n    test 1670 points.nearestOn5() function: True\n    test 1671 points.perimeterOf() function: True\n    test 1672 points.quadOf() function: True\n\n    testModule(pygeodesy.props, 25.12.31)\n    test 1673 props.DeprecationWarnings class pygeodesy.props.DeprecationWarnings: True\n    test 1674 props.Property() class: True\n    test 1675 props.Property_RO() class: True\n    test 1676 props.deprecated_Property_RO() function: True\n    test 1677 props.deprecated_class() function: True\n    test 1678 props.deprecated_function() function: True\n    test 1679 props.deprecated_method() function: True\n    test 1680 props.deprecated_property_RO() function: True\n    test 1681 props.property_RO() class: True\n    test 1682 props.property_ROnce() class: True\n    test 1683 props.property_ROver() class: True\n    test 1684 props.property_doc_() function: True\n\n    testModule(pygeodesy.resections, 25.05.12)\n    test 1685 resections.Collins5Tuple() class: True\n    test 1686 resections.ResectionError() class: True\n    test 1687 resections.Survey3Tuple() class: True\n    test 1688 resections.Tienstra7Tuple() class: True\n    test 1689 resections.TriAngle5Tuple() class: True\n    test 1690 resections.TriSide2Tuple() class: True\n    test 1691 resections.TriSide4Tuple() class: True\n    test 1692 resections.cassini() function: True\n    test 1693 resections.collins5() function: True\n    test 1694 resections.pierlot() function: True\n    test 1695 resections.pierlotx() function: True\n    test 1696 resections.snellius3() function: True\n    test 1697 resections.tienstra7() function: True\n    test 1698 resections.triAngle() function: True\n    test 1699 resections.triAngle5() function: True\n    test 1700 resections.triArea() function: True\n    test 1701 resections.triSide() function: True\n    test 1702 resections.triSide2() function: True\n    test 1703 resections.triSide4() function: True\n    test 1704 resections.wildberger3() function: True\n\n    testModule(pygeodesy.rhumb, 25.12.06)\n    test 1705 rhumb.Rhumb() class (pygeodesy.rhumb.ekx): True\n    test 1706 rhumb.Rhumb8Tuple() class (pygeodesy.karney): True\n    test 1707 rhumb.RhumbAux() class (pygeodesy.rhumb.aux_): True\n    test 1708 rhumb.RhumbLine() class (pygeodesy.rhumb.ekx): True\n    test 1709 rhumb.RhumbLineAux() class (pygeodesy.rhumb.aux_): True\n    test 1710 rhumb.RhumbLineSolve() class (pygeodesy.rhumb.solve): True\n    test 1711 rhumb.RhumbSolve() class (pygeodesy.rhumb.solve): True\n    test 1712 rhumb.RhumbSolve7Tuple() class (pygeodesy.rhumb.solve): True\n\n    testModule(pygeodesy.simplify, 25.05.12)\n    test 1713 simplify.simplify1() function: True\n    test 1714 simplify.simplifyRDP() function: True\n    test 1715 simplify.simplifyRW() function: True\n    test 1716 simplify.simplifyVW() function: True\n\n    testModule(pygeodesy.solveBase, 25.12.06)\n\n    testModule(pygeodesy.sphericalBase, 25.05.26)\n\n    testModule(pygeodesy.sphericalNvector, 25.05.27)\n    test 1717 sphericalNvector.Cartesian() class: True\n    test 1718 sphericalNvector.LatLon() class: True\n    test 1719 sphericalNvector.Nvector() class: True\n    test 1720 sphericalNvector.areaOf() function: True\n    test 1721 sphericalNvector.intersecant2() function: True\n    test 1722 sphericalNvector.intersection() function: True\n    test 1723 sphericalNvector.intersection2() function: True\n    test 1724 sphericalNvector.ispolar() function (pygeodesy.points): True\n    test 1725 sphericalNvector.meanOf() function: True\n    test 1726 sphericalNvector.nearestOn2() function: True\n    test 1727 sphericalNvector.nearestOn3() function: True\n    test 1728 sphericalNvector.perimeterOf() function: True\n    test 1729 sphericalNvector.sumOf() function: True\n    test 1730 sphericalNvector.triangulate() function: True\n    test 1731 sphericalNvector.trilaterate() function: True\n\n    testModule(pygeodesy.sphericalTrigonometry, 25.08.31)\n    test 1732 sphericalTrigonometry.Cartesian() class: True\n    test 1733 sphericalTrigonometry.LatLon() class: True\n    test 1734 sphericalTrigonometry.areaOf() function: True\n    test 1735 sphericalTrigonometry.intersecant2() function: True\n    test 1736 sphericalTrigonometry.intersection() function: True\n    test 1737 sphericalTrigonometry.intersections2() function: True\n    test 1738 sphericalTrigonometry.isPoleEnclosedBy() function: True\n    test 1739 sphericalTrigonometry.ispolar() function (pygeodesy.points): True\n    test 1740 sphericalTrigonometry.meanOf() function: True\n    test 1741 sphericalTrigonometry.nearestOn2() function: True\n    test 1742 sphericalTrigonometry.nearestOn3() function: True\n    test 1743 sphericalTrigonometry.perimeterOf() function: True\n    test 1744 sphericalTrigonometry.sumOf() function (pygeodesy.vector3d): True\n    test 1745 sphericalTrigonometry.triangle7() function: True\n    test 1746 sphericalTrigonometry.triangle8_() function: True\n\n    testModule(pygeodesy.streprs, 25.11.24)\n    test 1747 streprs.anstr() function: True\n    test 1748 streprs.attrs() function: True\n    test 1749 streprs.enstr2() function: True\n    test 1750 streprs.fstr() function: True\n    test 1751 streprs.fstrzs() function: True\n    test 1752 streprs.hstr() function: True\n    test 1753 streprs.instr() function: True\n    test 1754 streprs.lrstrip() function: True\n    test 1755 streprs.pairs() function: True\n    test 1756 streprs.reprs() function: True\n    test 1757 streprs.strs() function: True\n    test 1758 streprs.unstr() function: True\n\n    testModule(pygeodesy.trf, 25.09.11)\n    test 1759 trf.RefFrame() class: True\n    test 1760 trf.RefFrames class pygeodesy.trf.RefFrames: True\n    test 1761 trf.TRFXform() class: True\n    test 1762 trf.TRFXform7Tuple() class: True\n    test 1763 trf.TransformXform() class: True\n    test 1764 trf.date2epoch() function: True\n    test 1765 trf.epoch2date() function: True\n    test 1766 trf.trfTransform0() function: True\n    test 1767 trf.trfTransforms() function: True\n    test 1768 trf.trfXform() function: True\n\n    testModule(pygeodesy.triaxials, 26.02.06)\n    test 1769 triaxials.BetOmgAlp5Tuple() class (pygeodesy.triaxials.triaxial3): True\n    test 1770 triaxials.BetOmgGam5Tuple() class (pygeodesy.triaxials.conformal3): True\n    test 1771 triaxials.BetaOmega2Tuple() class (pygeodesy.triaxials.triaxial5): True\n    test 1772 triaxials.BetaOmega3Tuple() class (pygeodesy.triaxials.triaxial5): True\n    test 1773 triaxials.Cartesian5Tuple() class (pygeodesy.triaxials.triaxial3): True\n    test 1774 triaxials.Conformal() class (pygeodesy.triaxials.triaxial5): True\n    test 1775 triaxials.Conformal2Tuple() class (pygeodesy.triaxials.triaxial5): True\n    test 1776 triaxials.Conformal3() class (pygeodesy.triaxials.conformal3): True\n    test 1777 triaxials.Conformal3B() class (pygeodesy.triaxials.conformal3): True\n    test 1778 triaxials.Conformal3Sphere() class (pygeodesy.triaxials.conformal3): True\n    test 1779 triaxials.Conformal5Tuple() class (pygeodesy.triaxials.bases): True\n    test 1780 triaxials.ConformalSphere() class (pygeodesy.triaxials.triaxial5): True\n    test 1781 triaxials.LLK class pygeodesy.triaxials.bases.LLK (pygeodesy.triaxials.bases): True\n    test 1782 triaxials.PhiLamZet5Tuple() class (pygeodesy.triaxials.triaxial3): True\n    test 1783 triaxials.Triaxial() class (pygeodesy.triaxials.triaxial5): True\n    test 1784 triaxials.Triaxial3() class (pygeodesy.triaxials.triaxial3): True\n    test 1785 triaxials.Triaxial3B() class (pygeodesy.triaxials.triaxial3): True\n    test 1786 triaxials.Triaxial3s class pygeodesy.triaxials.triaxial3.Triaxial3s (pygeodesy.triaxials.triaxial3): True\n    test 1787 triaxials.TriaxialError() class (pygeodesy.triaxials.bases): True\n    test 1788 triaxials.Triaxial_() class (pygeodesy.triaxials.triaxial5): True\n    test 1789 triaxials.Triaxials class pygeodesy.triaxials.triaxial5.Triaxials (pygeodesy.triaxials.triaxial5): True\n    test 1790 triaxials.hartzell4() function (pygeodesy.triaxials.triaxial5): True\n    test 1791 triaxials.height4() function (pygeodesy.triaxials.triaxial5): True\n\n    testModule(pygeodesy.units, 26.03.12)\n    test 1792 units.Azimuth() class: True\n    test 1793 units.Band() class: True\n    test 1794 units.Bearing() class: True\n    test 1795 units.Bearing_() class: True\n    test 1796 units.Bool() class: True\n    test 1797 units.Degrees() class: True\n    test 1798 units.Degrees2() class: True\n    test 1799 units.Degrees_() class: True\n    test 1800 units.Distance() class: True\n    test 1801 units.Distance_() class: True\n    test 1802 units.Easting() class: True\n    test 1803 units.Epoch() class: True\n    test 1804 units.FIx() class: True\n    test 1805 units.Feet() class: True\n    test 1806 units.Float_() class: True\n    test 1807 units.Height() class: True\n    test 1808 units.HeightX() class: True\n    test 1809 units.Height_() class: True\n    test 1810 units.Int_() class: True\n    test 1811 units.Lam() class: True\n    test 1812 units.Lamd() class: True\n    test 1813 units.Lat() class: True\n    test 1814 units.Lat_() class: True\n    test 1815 units.Lon() class: True\n    test 1816 units.Lon_() class: True\n    test 1817 units.Meter() class: True\n    test 1818 units.Meter2() class: True\n    test 1819 units.Meter3() class: True\n    test 1820 units.Meter_() class: True\n    test 1821 units.Northing() class: True\n    test 1822 units.Number_() class: True\n    test 1823 units.Phi() class: True\n    test 1824 units.Phid() class: True\n    test 1825 units.Precision_() class: True\n    test 1826 units.Radians() class: True\n    test 1827 units.Radians2() class: True\n    test 1828 units.Radians_() class: True\n    test 1829 units.Radius_() class: True\n    test 1830 units.Scalar() class: True\n    test 1831 units.Scalar_() class: True\n    test 1832 units.Zone() class: True\n\n    testModule(pygeodesy.unitsBase, 26.02.22)\n    test 1833 unitsBase.Float() class: True\n    test 1834 unitsBase.Int() class: True\n    test 1835 unitsBase.Radius() class: True\n    test 1836 unitsBase.Str() class: True\n\n    testModule(pygeodesy.ups, 25.04.14)\n    test 1837 ups.UPSError() class: True\n    test 1838 ups.Ups() class: True\n    test 1839 ups.parseUPS5() function: True\n    test 1840 ups.toUps8() function: True\n    test 1841 ups.upsZoneBand5() function: True\n\n    testModule(pygeodesy.utily, 26.03.20)\n    test 1842 utily.NM2m() function: True\n    test 1843 utily.SM2m() function: True\n    test 1844 utily.SinCos2() function: True\n    test 1845 utily.acos1() function: True\n    test 1846 utily.acre2ha() function: True\n    test 1847 utily.acre2m2() function: True\n    test 1848 utily.agdf() function: True\n    test 1849 utily.asin1() function: True\n    test 1850 utily.atan1() function: True\n    test 1851 utily.atan1d() function: True\n    test 1852 utily.atan2 class builtin_function_or_method (math): True\n    test 1853 utily.atan2b() function: True\n    test 1854 utily.atan2d() function: True\n    test 1855 utily.atan2p() function: True\n    test 1856 utily.chain2m() function: True\n    test 1857 utily.circle4() function: True\n    test 1858 utily.cot() function: True\n    test 1859 utily.cot_() function: True\n    test 1860 utily.cotd() function: True\n    test 1861 utily.cotd_() function: True\n    test 1862 utily.degrees class builtin_function_or_method (math): True\n    test 1863 utily.degrees180() function: True\n    test 1864 utily.degrees2grades() function: True\n    test 1865 utily.degrees2m() function: True\n    test 1866 utily.degrees360() function: True\n    test 1867 utily.degrees90() function: True\n    test 1868 utily.fathom2m() function: True\n    test 1869 utily.ft2m() function: True\n    test 1870 utily.furlong2m() function: True\n    test 1871 utily.gdf() function: True\n    test 1872 utily.grades() function: True\n    test 1873 utily.grades2degrees() function: True\n    test 1874 utily.grades2radians() function: True\n    test 1875 utily.grades400() function: True\n    test 1876 utily.ha2acre() function: True\n    test 1877 utily.ha2m2() function: True\n    test 1878 utily.hav() function: True\n    test 1879 utily.km2m() function: True\n    test 1880 utily.m2NM() function: True\n    test 1881 utily.m2SM() function: True\n    test 1882 utily.m2acre() function: True\n    test 1883 utily.m2chain() function: True\n    test 1884 utily.m2degrees() function: True\n    test 1885 utily.m2fathom() function: True\n    test 1886 utily.m2ft() function: True\n    test 1887 utily.m2furlong() function: True\n    test 1888 utily.m2ha() function: True\n    test 1889 utily.m2km() function: True\n    test 1890 utily.m2radians() function: True\n    test 1891 utily.m2toise() function: True\n    test 1892 utily.m2yard() function: True\n    test 1893 utily.radians class builtin_function_or_method (math): True\n    test 1894 utily.radians2m() function: True\n    test 1895 utily.radiansPI() function: True\n    test 1896 utily.radiansPI2() function: True\n    test 1897 utily.radiansPI_2() function: True\n    test 1898 utily.sincos2() function: True\n    test 1899 utily.sincos2_() function: True\n    test 1900 utily.sincos2d() function: True\n    test 1901 utily.sincos2d_() function: True\n    test 1902 utily.sincostan3() function: True\n    test 1903 utily.sincostan3d() function: True\n    test 1904 utily.tan() function: True\n    test 1905 utily.tanPI_2_2() function: True\n    test 1906 utily.tan_() function: True\n    test 1907 utily.tan_2() function: True\n    test 1908 utily.tand() function: True\n    test 1909 utily.tand_() function: True\n    test 1910 utily.toise2m() function: True\n    test 1911 utily.truncate() function: True\n    test 1912 utily.unroll180() function: True\n    test 1913 utily.unrollPI() function: True\n    test 1914 utily.wrap180() function: True\n    test 1915 utily.wrap360() function: True\n    test 1916 utily.wrap90() function: True\n    test 1917 utily.wrapPI() function: True\n    test 1918 utily.wrapPI2() function: True\n    test 1919 utily.wrapPI_2() function: True\n    test 1920 utily.wrap_normal() function: True\n    test 1921 utily.yard2m() function: True\n\n    testModule(pygeodesy.utm, 24.11.26)\n    test 1922 utm.UTMError() class: True\n    test 1923 utm.Utm() class: True\n    test 1924 utm.parseUTM5() function: True\n    test 1925 utm.toUtm8() function: True\n    test 1926 utm.utmZoneBand5() function: True\n\n    testModule(pygeodesy.utmups, 25.04.14)\n    test 1927 utmups.UTMUPSError() class: True\n    test 1928 utmups.UtmUps() function: True\n    test 1929 utmups.parseUTMUPS5() function: True\n    test 1930 utmups.toUtmUps8() function: True\n    test 1931 utmups.utmupsValidate() function: True\n    test 1932 utmups.utmupsValidateOK() function: True\n    test 1933 utmups.utmupsZoneBand5() function: True\n\n    testModule(pygeodesy.utmupsBase, 25.05.12)\n\n    testModule(pygeodesy.vector2d, 26.02.27)\n    test 1934 vector2d.Circin6Tuple() class: True\n    test 1935 vector2d.Circum3Tuple() class: True\n    test 1936 vector2d.Circum4Tuple() class: True\n    test 1937 vector2d.Meeus2Tuple() class: True\n    test 1938 vector2d.Radii11Tuple() class: True\n    test 1939 vector2d.Soddy4Tuple() class: True\n    test 1940 vector2d.Triaxum5Tuple() class: True\n    test 1941 vector2d.circin6() function: True\n    test 1942 vector2d.circum3() function: True\n    test 1943 vector2d.circum4() function: True\n    test 1944 vector2d.circum4_() function: True\n    test 1945 vector2d.meeus2() function: True\n    test 1946 vector2d.radii11() function: True\n    test 1947 vector2d.soddy4() function: True\n    test 1948 vector2d.triaxum5() function: True\n    test 1949 vector2d.trilaterate2d2() function: True\n\n    testModule(pygeodesy.vector3d, 25.05.07)\n    test 1950 vector3d.Vector3d() class: True\n    test 1951 vector3d.intersection3d3() function: True\n    test 1952 vector3d.iscolinearWith() function: True\n    test 1953 vector3d.nearestOn() function: True\n    test 1954 vector3d.nearestOn6() function: True\n    test 1955 vector3d.parse3d() function: True\n    test 1956 vector3d.trilaterate3d2() function: True\n\n    testModule(pygeodesy.vector3dBase, 25.10.25)\n\n    testModule(pygeodesy.webmercator, 25.05.12)\n    test 1957 webmercator.EasNorRadius3Tuple() class: True\n    test 1958 webmercator.WebMercatorError() class: True\n    test 1959 webmercator.Wm() class: True\n    test 1960 webmercator.parseWM() function: True\n    test 1961 webmercator.toWm() function: True\n\n    testModule(pygeodesy.wgrs, 25.04.14)\n    test 1962 wgrs.Georef() class: True\n    test 1963 wgrs.WGRSError() class: True\n\n    testPublic(pygeodesy, 26.03.26)\n    test 1964 freduce class builtin_function_or_method: True\n    test 1965 iskeyword class builtin_function_or_method: True\n\n    all 1965 testModules.py tests passed (pygeodesy 26.3.26 Python 3.11.9 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 1.24.2 scipy 1.10.1 Math 2 macOS 26.3.1 isLazy 0 -W  default) 13.036 ms\nrunning /usr/local/bin/p....n3.11 -W default ~/PyGeodesy/test/testNamed.py\n\n    testing testNamed.py 25.12.06\n\n    testing _Named() (pygeodesy.named, 26.01.14)\n    test 1 _Named: _Named\n    test 2 _Named: True\n    test 3 _Named: ''\n    test 4 Test: Test\n    test 5 _Named 'Test': _Named 'Test'\n    test 6 named._Named 'Test': named._Named 'Test'\n    test 7 pygeodesy.named._Named 'Test': pygeodesy.named._Named 'Test'\n    test 8 Test: _Named.name = 'X' (was 'Test'): use _Named.rename('X')\n    test 9 Test: _Named 'Test'\n    test 10 _Named 'Test': Test\n    test 11 _Named 'Test': Test\n    test 12 _Named 'Test': _Named 'Test'\n    test 13 _Named 'Test': <_Named 'Test' at 0x102d69750>  FAILED, KNOWN, expected _Named 'Test'\n    test 14 _Named 'Test': ''\n\n    testing _NamedBase() (pygeodesy.named, 26.01.14)\n    test 15 _NamedBase: _NamedBase\n    test 16 _NamedBase: True\n    test 17 _NamedBase: ''\n    test 18 Test: Test\n    test 19 _NamedBase 'Test': _NamedBase 'Test'\n    test 20 named._NamedBase 'Test': named._NamedBase 'Test'\n    test 21 pygeodesy.named._NamedBase 'Test': pygeodesy.named._NamedBase 'Test'\n    test 22 Test: _NamedBase.name = 'X' (was 'Test'): use _NamedBase.rename('X')\n    test 23 Test: named._NamedBase.toStr(), MRO(named._Named): not overloaded\n    test 24 _NamedBase 'Test': Test\n    test 25 _NamedBase 'Test': Test\n    test 26 _NamedBase 'Test': named._NamedBase.toStr(), MRO(named._Named): not overloaded\n    test 27 _NamedBase 'Test': named._NamedBase.toStr(), MRO(named._Named): not overloaded\n    test 28 _NamedBase 'Test': ''\n\n    testing _NamedDict() (pygeodesy.named, 26.01.14)\n    test 29 _NamedDict: _NamedDict\n    test 30 _NamedDict: True\n    test 31 _NamedDict: ''\n    test 32 Test: Test\n    test 33 _NamedDict 'Test': _NamedDict 'Test'\n    test 34 named._NamedDict 'Test': named._NamedDict 'Test'\n    test 35 pygeodesy.named._NamedDict 'Test': pygeodesy.named._NamedDict 'Test'\n    test 36 Test: _NamedDict.name = 'X' (was 'Test'): use _NamedDict.rename('X')\n    test 37 Test: {}\n    test 38 _NamedDict 'Test': Test\n    test 39 _NamedDict 'Test': Test\n    test 40 _NamedDict 'Test': {}\n    test 41 _NamedDict 'Test': Test()  FAILED, KNOWN, expected {}\n    test 42 _NamedDict: ''\n\n    testing _NamedEnum(<class 'pygeodesy.datums.Datum'>,) (pygeodesy.named, 26.01.14)\n    test 43 Datums: _NamedEnum\n    test 44 Datums: True\n    test 45 Datums: 'Datums'  FAILED, KNOWN, expected ''\n    test 46 Test: Test\n    test 47 _NamedEnum 'Test': _NamedEnum 'Test'\n    test 48 named._NamedEnum 'Test': named._NamedEnum 'Test'\n    test 49 pygeodesy.named._NamedEnum 'Test': pygeodesy.named._NamedEnum 'Test'\n    test 50 Test: _NamedEnum.name = 'X' (was 'Test'): use _NamedEnum.rename('X')\n    test 51 Test: Test.\n    test 52 _NamedEnum 'Test': Test\n    test 53 _NamedEnum 'Test': Test\n    test 54 _NamedEnum 'Test': Test.\n    test 55 _NamedEnum 'Test':   FAILED, KNOWN, expected Test.\n    test 56 _NamedEnum: ''\n\n    testing _NamedEnumItem() (pygeodesy.named, 26.01.14)\n    test 57 _NamedEnumItem: _NamedEnumItem\n    test 58 _NamedEnumItem: True\n    test 59 _NamedEnumItem: ''\n    test 60 Test: Test\n    test 61 _NamedEnumItem 'Test': _NamedEnumItem 'Test'\n    test 62 named._NamedEnumItem 'Test': named._NamedEnumItem 'Test'\n    test 63 pygeodesy.named._NamedEnumItem 'Test': pygeodesy.named._NamedEnumItem 'Test'\n    test 64 _NamedEnumItem 'Test': Test\n    test 65 _NamedEnumItem 'Test': Test\n    test 66 _NamedEnumItem 'Test': named._NamedEnumItem.toStr(), MRO(named._NamedBase, named._Named): not overloaded\n    test 67 _NamedEnumItem 'Test': named._NamedEnumItem.toStr(), MRO(named._NamedBase, named._Named): not overloaded\n    test 68 _NamedEnumItem 'Test': ''\n\n    testing LatLon2Tuple(0, 0) (pygeodesy.named, 26.01.14)\n    test 69 LatLon2Tuple: LatLon2Tuple\n    test 70 LatLon2Tuple: True\n    test 71 LatLon2Tuple: ''\n    test 72 Test: Test\n    test 73 LatLon2Tuple 'Test': LatLon2Tuple 'Test'\n    test 74 namedTuples.LatLon2Tuple 'Test': namedTuples.LatLon2Tuple 'Test'\n    test 75 pygeodesy.namedTuples.LatLon2Tuple 'Test': pygeodesy.namedTuples.LatLon2Tuple 'Test'\n    test 76 Test: LatLon2Tuple.name = 'X' (was 'Test'): use LatLon2Tuple.rename('X')\n    test 77 Test: (0, 0)\n    test 78 LatLon2Tuple 'Test': Test\n    test 79 LatLon2Tuple 'Test': Test\n    test 80 LatLon2Tuple 'Test': (0, 0)\n    test 81 LatLon2Tuple 'Test': Test(lat=0, lon=0)  FAILED, KNOWN, expected (0, 0)\n    test 82 LatLon2Tuple 'Test': ''\n\n    testing NamedDicts (pygeodesy.named, 26.01.14)\n    test 83 Neighbors8Dict: Neighbors8Dict\n    test 84 Neighbors8Dict: 8-Dict C{(N, NE, E, SE, S, SW, W, NW)}\n    test 85 Neighbors8Dict: 8\n\n    testing NamedTuples (pygeodesy.namedTuples, 26.03.12)\n    test 86 Albers7Tuple: Albers7Tuple\n    test 87 Albers7Tuple: 7-Tuple C{(x, y, lat, lon, gamma, scale, datum)}\n    test 88 Albers7Tuple: 7\n    test 89 Azimuthal7Tuple: Azimuthal7Tuple\n    test 90 Azimuthal7Tuple: 7-Tuple C{(x, y, lat, lon, azimuth, scale, datum)}\n    test 91 Azimuthal7Tuple: 7\n    test 92 RadiusThetaPhi3Tuple: RadiusThetaPhi3Tuple\n    test 93 RadiusThetaPhi3Tuple: 3-Tuple C{(r, theta, phi)}\n    test 94 RadiusThetaPhi3Tuple: 3\n    test 95 ClipCS4Tuple: ClipCS4Tuple\n    test 96 ClipCS4Tuple: 4-Tuple C{(start, end, i, j)}\n    test 97 ClipCS4Tuple: 4\n    test 98 ClipFHP4Tuple: ClipFHP4Tuple\n    test 99 ClipFHP4Tuple: 4-Tuple C{(lat, lon, height, clipid)}\n    test 100 ClipFHP4Tuple: 4\n    test 101 ClipGH4Tuple: ClipGH4Tuple\n    test 102 ClipGH4Tuple: 4-Tuple C{(lat, lon, height, clipid)}\n    test 103 ClipGH4Tuple: 4\n    test 104 ClipLB6Tuple: ClipLB6Tuple\n    test 105 ClipLB6Tuple: 6-Tuple C{(start, end, i, fi, fj, j)}\n    test 106 ClipLB6Tuple: 6\n    test 107 ClipSH3Tuple: ClipSH3Tuple\n    test 108 ClipSH3Tuple: 3-Tuple C{(start, end, original)}\n    test 109 ClipSH3Tuple: 3\n    test 110 EasNorAziRk4Tuple: EasNorAziRk4Tuple\n    test 111 EasNorAziRk4Tuple: 4-Tuple C{(easting, northing, azimuth, reciprocal)}\n    test 112 EasNorAziRk4Tuple: 4\n    test 113 EasNorAziRkEqu6Tuple: EasNorAziRkEqu6Tuple\n    test 114 EasNorAziRkEqu6Tuple: 6-Tuple C{(easting, northing, azimuth, reciprocal, equatorarc, equatorazimuth)}\n    test 115 EasNorAziRkEqu6Tuple: 6\n    test 116 LatLonAziRk4Tuple: LatLonAziRk4Tuple\n    test 117 LatLonAziRk4Tuple: 4-Tuple C{(lat, lon, azimuth, reciprocal)}\n    test 118 LatLonAziRk4Tuple: 4\n    test 119 Ecef9Tuple: Ecef9Tuple\n    test 120 Ecef9Tuple: 9-Tuple C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 121 Ecef9Tuple: 9\n    test 122 Elevation2Tuple: Elevation2Tuple\n    test 123 Elevation2Tuple: 2-Tuple C{(elevation, data_source)}\n    test 124 Elevation2Tuple: 2\n    test 125 GeoidHeight2Tuple: GeoidHeight2Tuple\n    test 126 GeoidHeight2Tuple: 2-Tuple C{(height, model_name)}\n    test 127 GeoidHeight2Tuple: 2\n    test 128 Curvature2Tuple: Curvature2Tuple\n    test 129 Curvature2Tuple: 2-Tuple C{(meridional, prime_vertical)}\n    test 130 Curvature2Tuple: 2\n    test 131 a_f2Tuple: a_f2Tuple\n    test 132 a_f2Tuple: 2-Tuple C{(a, f)}\n    test 133 a_f2Tuple: 2\n    test 134 Elliptic3Tuple: Elliptic3Tuple\n    test 135 Elliptic3Tuple: 3-Tuple C{(sn, cn, dn)}\n    test 136 Elliptic3Tuple: 3\n    test 137 Radical2Tuple: Radical2Tuple\n    test 138 Radical2Tuple: 2-Tuple C{(ratio, xline)}\n    test 139 Radical2Tuple: 2\n    test 140 Frechet6Tuple: Frechet6Tuple\n    test 141 Frechet6Tuple: 6-Tuple C{(fd, fi1, fi2, r, n, units)}\n    test 142 Frechet6Tuple: 6\n    test 143 DivMod2Tuple: DivMod2Tuple\n    test 144 DivMod2Tuple: 2-Tuple C{(div, mod)}\n    test 145 DivMod2Tuple: 2\n    test 146 Fsum2Tuple: Fsum2Tuple\n    test 147 Fsum2Tuple: 2-Tuple C{(fsum, residual)}\n    test 148 Fsum2Tuple: 2\n    test 149 Geod3Solve8Tuple: Geod3Solve8Tuple\n    test 150 Geod3Solve8Tuple: 8-Tuple C{(bet1, omg1, alp1, bet2, omg2, alp2, s12, a12)}\n    test 151 Geod3Solve8Tuple: 8\n    test 152 Intersect7Tuple: Intersect7Tuple\n    test 153 Intersect7Tuple: 7-Tuple C{(A, B, sAB, aAB, c, kA, kB)}\n    test 154 Intersect7Tuple: 7\n    test 155 Intersectool5Tuple: Intersectool5Tuple\n    test 156 Intersectool5Tuple: 5-Tuple C{(A, B, sAB, aAB, c)}\n    test 157 Intersectool5Tuple: 5\n    test 158 Intersector5Tuple: Intersector5Tuple\n    test 159 Intersector5Tuple: 5-Tuple C{(A, B, sAB, aAB, c)}\n    test 160 Intersector5Tuple: 5\n    test 161 Middle5Tuple: Middle5Tuple\n    test 162 Middle5Tuple: 5-Tuple C{(A, B, sMM, aMM, c)}\n    test 163 Middle5Tuple: 5\n    test 164 GeodSolve12Tuple: GeodSolve12Tuple\n    test 165 GeodSolve12Tuple: 12-Tuple C{(lat1, lon1, azi1, lat2, lon2, azi2, s12, a12, m12, M12, M21, S12)}\n    test 166 GeodSolve12Tuple: 12\n    test 167 Resolutions2Tuple: Resolutions2Tuple\n    test 168 Resolutions2Tuple: 2-Tuple C{(res1, res2)}\n    test 169 Resolutions2Tuple: 2\n    test 170 Sizes3Tuple: Sizes3Tuple\n    test 171 Sizes3Tuple: 3-Tuple C{(height, width, radius)}\n    test 172 Sizes3Tuple: 3\n    test 173 GeoidHeight5Tuple: GeoidHeight5Tuple\n    test 174 GeoidHeight5Tuple: 5-Tuple C{(lat, lon, egm84, egm96, egm2008)}\n    test 175 GeoidHeight5Tuple: 5\n    test 176 Hausdorff6Tuple: Hausdorff6Tuple\n    test 177 Hausdorff6Tuple: 6-Tuple C{(hd, i, j, mn, md, units)}\n    test 178 Hausdorff6Tuple: 6\n    test 179 Area3Tuple: Area3Tuple\n    test 180 Area3Tuple: 3-Tuple C{(number, perimeter, area)}\n    test 181 Area3Tuple: 3\n    test 182 Direct9Tuple: Direct9Tuple\n    test 183 Direct9Tuple: 9-Tuple C{(a12, lat2, lon2, azi2, s12, m12, M12, M21, S12)}\n    test 184 Direct9Tuple: 9\n    test 185 Inverse10Tuple: Inverse10Tuple\n    test 186 Inverse10Tuple: 10-Tuple C{(a12, s12, salp1, calp1, salp2, calp2, m12, M12, M21, S12)}\n    test 187 Inverse10Tuple: 10\n    test 188 Rhumb8Tuple: Rhumb8Tuple\n    test 189 Rhumb8Tuple: 8-Tuple C{(lat1, lon1, lat2, lon2, azi12, s12, S12, a12)}\n    test 190 Rhumb8Tuple: 8\n    test 191 Aer4Tuple: Aer4Tuple\n    test 192 Aer4Tuple: 4-Tuple C{(azimuth, elevation, slantrange, ltp)}\n    test 193 Aer4Tuple: 4\n    test 194 Attitude4Tuple: Attitude4Tuple\n    test 195 Attitude4Tuple: 4-Tuple C{(alt, tilt, yaw, roll)}\n    test 196 Attitude4Tuple: 4\n    test 197 ChLV9Tuple: ChLV9Tuple\n    test 198 ChLV9Tuple: 9-Tuple C{(Y, X, h_, lat, lon, height, ltp, ecef, M)}\n    test 199 ChLV9Tuple: 9\n    test 200 ChLVEN2Tuple: ChLVEN2Tuple\n    test 201 ChLVEN2Tuple: 2-Tuple C{(E_LV95, N_LV95)}\n    test 202 ChLVEN2Tuple: 2\n    test 203 ChLVYX2Tuple: ChLVYX2Tuple\n    test 204 ChLVYX2Tuple: 2-Tuple C{(Y, X)}\n    test 205 ChLVYX2Tuple: 2\n    test 206 ChLVyx2Tuple: ChLVyx2Tuple\n    test 207 ChLVyx2Tuple: 2-Tuple C{(y_LV03, x_LV03)}\n    test 208 ChLVyx2Tuple: 2\n    test 209 Enu4Tuple: Enu4Tuple\n    test 210 Enu4Tuple: 4-Tuple C{(east, north, up, ltp)}\n    test 211 Enu4Tuple: 4\n    test 212 Footprint5Tuple: Footprint5Tuple\n    test 213 Footprint5Tuple: 5-Tuple C{(center, upperleft, upperight, loweright, lowerleft)}\n    test 214 Footprint5Tuple: 5\n    test 215 Local9Tuple: Local9Tuple\n    test 216 Local9Tuple: 9-Tuple C{(x, y, z, lat, lon, height, ltp, ecef, M)}\n    test 217 Local9Tuple: 9\n    test 218 Ned4Tuple: Ned4Tuple\n    test 219 Ned4Tuple: 4-Tuple C{(north, east, down, ltp)}\n    test 220 Ned4Tuple: 4\n    test 221 Uvw3Tuple: Uvw3Tuple\n    test 222 Uvw3Tuple: 3-Tuple C{(u, v, w)}\n    test 223 Uvw3Tuple: 3\n    test 224 Xyz4Tuple: Xyz4Tuple\n    test 225 Xyz4Tuple: 4-Tuple C{(x, y, z, ltp)}\n    test 226 Xyz4Tuple: 4\n    test 227 Mgrs4Tuple: Mgrs4Tuple\n    test 228 Mgrs4Tuple: 4-Tuple C{(zone, EN, easting, northing)}\n    test 229 Mgrs4Tuple: 4\n    test 230 Mgrs6Tuple: Mgrs6Tuple\n    test 231 Mgrs6Tuple: 6-Tuple C{(zone, EN, easting, northing, band, datum)}\n    test 232 Mgrs6Tuple: 6\n    test 233 Bearing2Tuple: Bearing2Tuple\n    test 234 Bearing2Tuple: 2-Tuple C{(initial, final)}\n    test 235 Bearing2Tuple: 2\n    test 236 Bounds2Tuple: Bounds2Tuple\n    test 237 Bounds2Tuple: 2-Tuple C{(latlonSW, latlonNE)}\n    test 238 Bounds2Tuple: 2\n    test 239 Bounds4Tuple: Bounds4Tuple\n    test 240 Bounds4Tuple: 4-Tuple C{(latS, lonW, latN, lonE)}\n    test 241 Bounds4Tuple: 4\n    test 242 Circle4Tuple: Circle4Tuple\n    test 243 Circle4Tuple: 4-Tuple C{(radius, height, lat, beta)}\n    test 244 Circle4Tuple: 4\n    test 245 Destination2Tuple: Destination2Tuple\n    test 246 Destination2Tuple: 2-Tuple C{(destination, final)}\n    test 247 Destination2Tuple: 2\n    test 248 Destination3Tuple: Destination3Tuple\n    test 249 Destination3Tuple: 3-Tuple C{(lat, lon, final)}\n    test 250 Destination3Tuple: 3\n    test 251 Distance2Tuple: Distance2Tuple\n    test 252 Distance2Tuple: 2-Tuple C{(distance, initial)}\n    test 253 Distance2Tuple: 2\n    test 254 Distance3Tuple: Distance3Tuple\n    test 255 Distance3Tuple: 3-Tuple C{(distance, initial, final)}\n    test 256 Distance3Tuple: 3\n    test 257 Distance4Tuple: Distance4Tuple\n    test 258 Distance4Tuple: 4-Tuple C{(distance2, delta_lat, delta_lon, unroll_lon2)}\n    test 259 Distance4Tuple: 4\n    test 260 EasNor2Tuple: EasNor2Tuple\n    test 261 EasNor2Tuple: 2-Tuple C{(easting, northing)}\n    test 262 EasNor2Tuple: 2\n    test 263 EasNor3Tuple: EasNor3Tuple\n    test 264 EasNor3Tuple: 3-Tuple C{(easting, northing, height)}\n    test 265 EasNor3Tuple: 3\n    test 266 Ellipse5Tuple: Ellipse5Tuple\n    test 267 Ellipse5Tuple: 5-Tuple C{(a, b, height, lat, beta)}\n    test 268 Ellipse5Tuple: 5\n    test 269 Forward4Tuple: Forward4Tuple\n    test 270 Forward4Tuple: 4-Tuple C{(easting, northing, gamma, scale)}\n    test 271 Forward4Tuple: 4\n    test 272 Intersection3Tuple: Intersection3Tuple\n    test 273 Intersection3Tuple: 3-Tuple C{(point, outside1, outside2)}\n    test 274 Intersection3Tuple: 3\n    test 275 LatLon2Tuple: LatLon2Tuple\n    test 276 LatLon2Tuple: 2-Tuple C{(lat, lon)}\n    test 277 LatLon2Tuple: 2\n    test 278 LatLon3Tuple: LatLon3Tuple\n    test 279 LatLon3Tuple: 3-Tuple C{(lat, lon, height)}\n    test 280 LatLon3Tuple: 3\n    test 281 LatLon4Tuple: LatLon4Tuple\n    test 282 LatLon4Tuple: 4-Tuple C{(lat, lon, height, datum)}\n    test 283 LatLon4Tuple: 4\n    test 284 LatLonDatum3Tuple: LatLonDatum3Tuple\n    test 285 LatLonDatum3Tuple: 3-Tuple C{(lat, lon, datum)}\n    test 286 LatLonDatum3Tuple: 3\n    test 287 LatLonDatum5Tuple: LatLonDatum5Tuple\n    test 288 LatLonDatum5Tuple: 5-Tuple C{(lat, lon, datum, gamma, scale)}\n    test 289 LatLonDatum5Tuple: 5\n    test 290 LatLonPrec3Tuple: LatLonPrec3Tuple\n    test 291 LatLonPrec3Tuple: 3-Tuple C{(lat, lon, precision)}\n    test 292 LatLonPrec3Tuple: 3\n    test 293 LatLonPrec5Tuple: LatLonPrec5Tuple\n    test 294 LatLonPrec5Tuple: 5-Tuple C{(lat, lon, precision, height, radius)}\n    test 295 LatLonPrec5Tuple: 5\n    test 296 NearestOn2Tuple: NearestOn2Tuple\n    test 297 NearestOn2Tuple: 2-Tuple C{(closest, fraction)}\n    test 298 NearestOn2Tuple: 2\n    test 299 NearestOn3Tuple: NearestOn3Tuple\n    test 300 NearestOn3Tuple: 3-Tuple C{(closest, distance, angle)}\n    test 301 NearestOn3Tuple: 3\n    test 302 NearestOn5Tuple: NearestOn5Tuple\n    test 303 NearestOn5Tuple: 5-Tuple C{(lat, lon, distance, angle, height)}\n    test 304 NearestOn5Tuple: 5\n    test 305 NearestOn6Tuple: NearestOn6Tuple\n    test 306 NearestOn6Tuple: 6-Tuple C{(closest, distance, fi, j, start, end)}\n    test 307 NearestOn6Tuple: 6\n    test 308 NearestOn8Tuple: NearestOn8Tuple\n    test 309 NearestOn8Tuple: 8-Tuple C{(closest, distance, fi, j, start, end, initial, final)}\n    test 310 NearestOn8Tuple: 8\n    test 311 PhiLam2Tuple: PhiLam2Tuple\n    test 312 PhiLam2Tuple: 2-Tuple C{(phi, lam)}\n    test 313 PhiLam2Tuple: 2\n    test 314 PhiLam3Tuple: PhiLam3Tuple\n    test 315 PhiLam3Tuple: 3-Tuple C{(phi, lam, height)}\n    test 316 PhiLam3Tuple: 3\n    test 317 PhiLam4Tuple: PhiLam4Tuple\n    test 318 PhiLam4Tuple: 4-Tuple C{(phi, lam, height, datum)}\n    test 319 PhiLam4Tuple: 4\n    test 320 Point3Tuple: Point3Tuple\n    test 321 Point3Tuple: 3-Tuple C{(x, y, ll)}\n    test 322 Point3Tuple: 3\n    test 323 Points2Tuple: Points2Tuple\n    test 324 Points2Tuple: 2-Tuple C{(number, points)}\n    test 325 Points2Tuple: 2\n    test 326 Reverse4Tuple: Reverse4Tuple\n    test 327 Reverse4Tuple: 4-Tuple C{(lat, lon, gamma, scale)}\n    test 328 Reverse4Tuple: 4\n    test 329 Triangle7Tuple: Triangle7Tuple\n    test 330 Triangle7Tuple: 7-Tuple C{(A, a, B, b, C, c, area)}\n    test 331 Triangle7Tuple: 7\n    test 332 Triangle8Tuple: Triangle8Tuple\n    test 333 Triangle8Tuple: 8-Tuple C{(A, a, B, b, C, c, D, E)}\n    test 334 Triangle8Tuple: 8\n    test 335 Trilaterate5Tuple: Trilaterate5Tuple\n    test 336 Trilaterate5Tuple: 5-Tuple C{(min, minPoint, max, maxPoint, n)}\n    test 337 Trilaterate5Tuple: 5\n    test 338 UtmUps2Tuple: UtmUps2Tuple\n    test 339 UtmUps2Tuple: 2-Tuple C{(zone, hemipole)}\n    test 340 UtmUps2Tuple: 2\n    test 341 UtmUps5Tuple: UtmUps5Tuple\n    test 342 UtmUps5Tuple: 5-Tuple C{(zone, hemipole, easting, northing, band)}\n    test 343 UtmUps5Tuple: 5\n    test 344 UtmUps8Tuple: UtmUps8Tuple\n    test 345 UtmUps8Tuple: 8-Tuple C{(zone, hemipole, easting, northing, band, datum, gamma, scale)}\n    test 346 UtmUps8Tuple: 8\n    test 347 UtmUpsLatLon5Tuple: UtmUpsLatLon5Tuple\n    test 348 UtmUpsLatLon5Tuple: 5-Tuple C{(zone, band, hemipole, lat, lon)}\n    test 349 UtmUpsLatLon5Tuple: 5\n    test 350 Vector2Tuple: Vector2Tuple\n    test 351 Vector2Tuple: 2-Tuple C{(x, y)}\n    test 352 Vector2Tuple: 2\n    test 353 Vector3Tuple: Vector3Tuple\n    test 354 Vector3Tuple: 3-Tuple C{(x, y, z)}\n    test 355 Vector3Tuple: 3\n    test 356 Vector4Tuple: Vector4Tuple\n    test 357 Vector4Tuple: 4-Tuple C{(x, y, z, h)}\n    test 358 Vector4Tuple: 4\n    test 359 Shape2Tuple: Shape2Tuple\n    test 360 Shape2Tuple: 2-Tuple C{(nrows, ncols)}\n    test 361 Shape2Tuple: 2\n    test 362 Collins5Tuple: Collins5Tuple\n    test 363 Collins5Tuple: 5-Tuple C{(pointP, pointH, a, b, c)}\n    test 364 Collins5Tuple: 5\n    test 365 Survey3Tuple: Survey3Tuple\n    test 366 Survey3Tuple: 3-Tuple C{(PA, PB, PC)}\n    test 367 Survey3Tuple: 3\n    test 368 Tienstra7Tuple: Tienstra7Tuple\n    test 369 Tienstra7Tuple: 7-Tuple C{(pointP, A, B, C, a, b, c)}\n    test 370 Tienstra7Tuple: 7\n    test 371 TriAngle5Tuple: TriAngle5Tuple\n    test 372 TriAngle5Tuple: 5-Tuple C{(radA, radB, radC, rIn, area)}\n    test 373 TriAngle5Tuple: 5\n    test 374 TriSide2Tuple: TriSide2Tuple\n    test 375 TriSide2Tuple: 2-Tuple C{(a, radA)}\n    test 376 TriSide2Tuple: 2\n    test 377 TriSide4Tuple: TriSide4Tuple\n    test 378 TriSide4Tuple: 4-Tuple C{(a, b, radC, d)}\n    test 379 TriSide4Tuple: 4\n    test 380 TRFXform7Tuple: TRFXform7Tuple\n    test 381 TRFXform7Tuple: 7-Tuple C{(tx, ty, tz, s, sx, sy, sz)}\n    test 382 TRFXform7Tuple: 7\n    test 383 Circin6Tuple: Circin6Tuple\n    test 384 Circin6Tuple: 6-Tuple C{(radius, center, deltas, cA, cB, cC)}\n    test 385 Circin6Tuple: 6\n    test 386 Circum3Tuple: Circum3Tuple\n    test 387 Circum3Tuple: 3-Tuple C{(radius, center, deltas)}\n    test 388 Circum3Tuple: 3\n    test 389 Circum4Tuple: Circum4Tuple\n    test 390 Circum4Tuple: 4-Tuple C{(radius, center, rank, residuals)}\n    test 391 Circum4Tuple: 4\n    test 392 Meeus2Tuple: Meeus2Tuple\n    test 393 Meeus2Tuple: 2-Tuple C{(radius, Type)}\n    test 394 Meeus2Tuple: 2\n    test 395 Radii11Tuple: Radii11Tuple\n    test 396 Radii11Tuple: 11-Tuple C{(rA, rB, rC, cR, rIn, riS, roS, a, b, c, s)}\n    test 397 Radii11Tuple: 11\n    test 398 Soddy4Tuple: Soddy4Tuple\n    test 399 Soddy4Tuple: 4-Tuple C{(radius, center, deltas, outer)}\n    test 400 Soddy4Tuple: 4\n    test 401 Triaxum5Tuple: Triaxum5Tuple\n    test 402 Triaxum5Tuple: 5-Tuple C{(a, b, c, rank, residuals)}\n    test 403 Triaxum5Tuple: 5\n    test 404 EasNorRadius3Tuple: EasNorRadius3Tuple\n    test 405 EasNorRadius3Tuple: 3-Tuple C{(easting, northing, radius)}\n    test 406 EasNorRadius3Tuple: 3\n    test 407 ClipCS3Tuple: DEPRECATED, see I{DEPRECATED} function L{pygeodesy.deprecated.clipCS3}.\n    test 408 EasNorExact4Tuple: DEPRECATED, use class L{Forward4Tuple}, item C{gamma} for C{convergence}.\n    test 409 Transform7Tuple: DEPRECATED on 2024.02.02, use class L{TRFXform7Tuple}, I{without} keyword arguments.\n    test 410 Jacobi2Tuple: DEPRECATED on 25.11.11, use class L{Conformal2Tuple}.\n    test 411 LatLonExact4Tuple: DEPRECATED, use class L{Reverse4Tuple}, item C{gamma} for C{convergence}.\n    test 412 NearestOn4Tuple: DEPRECATED on 2023.10.10, see methods L{RhumbLine.nearestOn4} and L{RhumbLineAux.nearestOn4}.\n    test 413 Ned3Tuple: DEPRECATED, use class L{Ned4Tuple}, ignoring item C{ltp}.\n    test 414 Rhumb7Tuple: DEPRECATED, use class L{Rhumb8Tuple}, ignoring item C{a12}.\n    test 415 RhumbOrder2Tuple: DEPRECATED, see deprecated method L{Rhumb.orders}.\n    test 416 Transform7Tuple: DEPRECATED on 2024.02.02, use class L{TRFXform7Tuple}, I{without} keyword arguments.\n    test 417 TriAngle4Tuple: DEPRECATED on 2023.09.14, use class L{TriAngle5Tuple}, ignoring item C{area}.\n    test 418 UtmUps4Tuple: DEPRECATED and OBSOLETE, expect a L{UtmUps5Tuple} from method C{pygeodesy.Mgrs.toUtm(utm=None)}. 4-Tuple C{(zone, hemipole, easting, northing)} with as C{zone} B{C{str}} and no C{band}.\n    test 419 RhumbSolve7Tuple: RhumbSolve7Tuple\n    test 420 RhumbSolve7Tuple: 7-Tuple C{(lat1, lon1, lat2, lon2, azi12, s12, S12)}\n    test 421 RhumbSolve7Tuple: 7\n    test 422 Conformal5Tuple: Conformal5Tuple\n    test 423 Conformal5Tuple: 5-Tuple C{(x, y, z, scale, llk)}\n    test 424 Conformal5Tuple: 5\n    test 425 BetOmgGam5Tuple: BetOmgGam5Tuple\n    test 426 BetOmgGam5Tuple: 5-Tuple C{(bet, omg, gam, scale, llk)}\n    test 427 BetOmgGam5Tuple: 5\n    test 428 BetOmgAlp5Tuple: BetOmgAlp5Tuple\n    test 429 BetOmgAlp5Tuple: 5-Tuple C{(bet, omg, alp, h, llk)}\n    test 430 BetOmgAlp5Tuple: 5\n    test 431 Cartesian5Tuple: Cartesian5Tuple\n    test 432 Cartesian5Tuple: 5-Tuple C{(x, y, z, h, llk)}\n    test 433 Cartesian5Tuple: 5\n    test 434 PhiLamZet5Tuple: PhiLamZet5Tuple\n    test 435 PhiLamZet5Tuple: 5-Tuple C{(phi, lam, zet, h, llk)}\n    test 436 PhiLamZet5Tuple: 5\n    test 437 BetaOmega2Tuple: BetaOmega2Tuple\n    test 438 BetaOmega2Tuple: 2-Tuple C{(beta, omega)}\n    test 439 BetaOmega2Tuple: 2\n    test 440 BetaOmega3Tuple: BetaOmega3Tuple\n    test 441 BetaOmega3Tuple: 3-Tuple C{(beta, omega, height)}\n    test 442 BetaOmega3Tuple: 3\n    test 443 Conformal2Tuple: Conformal2Tuple\n    test 444 Conformal2Tuple: 2-Tuple C{(x, y)}\n    test 445 Conformal2Tuple: 2\n\n    testing __init__.py (pygeodesy.named, 26.01.14)\n\n    testing __main__.py (pygeodesy.named, 26.01.14)\n\n    testing albers.py (pygeodesy.named, 26.01.14)\n    test 446 albers.py:235: L{Albers7Tuple}C{(x, y, lat, lon, gamma, scale, datum)}\n    test 447 albers.py:356: L{Albers7Tuple}C{(x, y, lat, lon, gamma, scale, datum)}\n\n    testing angles.py (pygeodesy.named, 26.01.14)\n\n    testing azimuthal.py (pygeodesy.named, 26.01.14)\n    test 448 azimuthal.py:185: L{LatLon2Tuple}C{(lat, lon)}\n    test 449 azimuthal.py:361: L{Azimuthal7Tuple}C{(x, y, lat, lon, azimuth, scale, datum)}\n    test 450 azimuthal.py:394: L{Azimuthal7Tuple}C{(x, y, lat, lon, azimuth, scale, datum)}\n    test 451 azimuthal.py:487: L{Azimuthal7Tuple}C{(x, y, lat, lon, azimuth, scale, datum)}\n    test 452 azimuthal.py:513: L{Azimuthal7Tuple}C{(x, y, lat, lon, azimuth, scale, datum)}\n    test 453 azimuthal.py:658: L{Azimuthal7Tuple}C{(x, y, lat, lon, azimuth, scale, datum)}\n    test 454 azimuthal.py:683: L{Azimuthal7Tuple}C{(x, y, lat, lon, azimuth, scale, datum)}\n    test 455 azimuthal.py:753: L{Azimuthal7Tuple}C{(x, y, lat, lon, azimuth, scale, datum)}\n    test 456 azimuthal.py:791: L{Azimuthal7Tuple}C{(x, y, lat, lon, azimuth, scale, datum)}\n    test 457 azimuthal.py:956: L{Azimuthal7Tuple}C{(x, y, lat, lon, azimuth, scale, datum)}\n    test 458 azimuthal.py:982: L{Azimuthal7Tuple}C{(x, y, lat, lon, azimuth, scale, datum)}\n    test 459 azimuthal.py:1011: L{Azimuthal7Tuple}C{(x, y, lat, lon, azimuth, scale, datum)}\n    test 460 azimuthal.py:1034: L{Azimuthal7Tuple}C{(x, y, lat, lon, azimuth, scale, datum)}\n    test 461 azimuthal.py:1065: L{Azimuthal7Tuple}C{(x, y, lat, lon, azimuth, scale, datum)}\n    test 462 azimuthal.py:1105: L{Azimuthal7Tuple}C{(x, y, lat, lon, azimuth, scale, datum)}\n\n    testing basics.py (pygeodesy.named, 26.01.14)\n\n    testing booleans.py (pygeodesy.named, 26.01.14)\n\n    testing cartesianBase.py (pygeodesy.named, 26.01.14)\n    test 463 cartesianBase.py:141: L{Collins5Tuple}C{(pointP, pointH, a, b, c)}\n    test 464 cartesianBase.py:196: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 465 cartesianBase.py:296: L{Vector3Tuple}C{(x, y, z)}\n    test 466 cartesianBase.py:348: L{Vector4Tuple}C{(x, y, z, h)}\n    test 467 cartesianBase.py:393: L{LatLon2Tuple}C{(lat, lon)}\n    test 468 cartesianBase.py:399: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 469 cartesianBase.py:405: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n    test 470 cartesianBase.py:466: L{PhiLam2Tuple}C{(phi, lam)}\n    test 471 cartesianBase.py:472: L{PhiLam3Tuple}C{(phi, lam, height)}\n    test 472 cartesianBase.py:478: L{PhiLam4Tuple}C{(phi, lam, height, datum)}\n    test 473 cartesianBase.py:598: L{Tienstra7Tuple}C{(pointP, A, B, C, a, b, c)}\n    test 474 cartesianBase.py:618: L{PhiLam2Tuple}C{(phi, lam)}\n    test 475 cartesianBase.py:626: L{LatLon2Tuple}C{(lat, lon)}\n    test 476 cartesianBase.py:634: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n    test 477 cartesianBase.py:691: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 478 cartesianBase.py:709: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 479 cartesianBase.py:739: L{Vector4Tuple}C{(x, y, z, h)}\n    test 480 cartesianBase.py:765: L{RadiusThetaPhi3Tuple}C{(r, theta, phi)}\n    test 481 cartesianBase.py:815: L{Vector3Tuple}C{(x, y, z)}\n    test 482 cartesianBase.py:841: L{Vector3Tuple}C{(x, y, z)}\n    test 483 cartesianBase.py:855: L{RadiusThetaPhi3Tuple}C{(r, theta, phi)}\n    test 484 cartesianBase.py:865: L{RadiusThetaPhi3Tuple}C{(r, theta, phi)}\n    test 485 cartesianBase.py:912: L{Vector3Tuple}C{(x, y, z)}\n    test 486 cartesianBase.py:965: L{RadiusThetaPhi3Tuple}C{(r, theta, phi)}\n    test 487 cartesianBase.py:983: L{RadiusThetaPhi3Tuple}C{(r, theta, phi)}\n\n    testing clipy.py (pygeodesy.named, 26.01.14)\n    test 488 clipy.py:197: L{ClipCS4Tuple}C{(start, end, i, j)}\n    test 489 clipy.py:276: L{ClipFHP4Tuple}C{(lat, lon, height, clipid)}\n    test 490 clipy.py:318: L{ClipGH4Tuple}C{(lat, lon, height, clipid)}\n    test 491 clipy.py:382: L{ClipLB6Tuple}C{(start, end, i, fi, fj, j)}\n    test 492 clipy.py:660: L{ClipSH3Tuple}C{(start, end, original)}\n\n    testing constants.py (pygeodesy.named, 26.01.14)\n\n    testing css.py (pygeodesy.named, 26.01.14)\n    test 493 css.py:138: L{EasNor2Tuple}C{(easting, northing)}\n    test 494 css.py:157: L{EasNorAziRk4Tuple}C{(easting, northing, azimuth, reciprocal)}\n    test 495 css.py:178: L{EasNorAziRkEqu6Tuple}C{(easting, northing, azimuth, reciprocal, equatorarc, equatorazimuth)}\n    test 496 css.py:265: L{LatLon2Tuple}C{(lat, lon)}\n    test 497 css.py:330: L{LatLon2Tuple}C{(lat, lon)}\n    test 498 css.py:359: L{LatLonAziRk4Tuple}C{(lat, lon, azimuth, reciprocal)}\n    test 499 css.py:525: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n    test 500 css.py:619: L{EasNor3Tuple}C{(easting, northing, height)}\n\n    testing datums.py (pygeodesy.named, 26.01.14)\n    test 501 datums.py:275: L{Vector3Tuple}C{(x, y, z)}\n\n    testing dms.py (pygeodesy.named, 26.01.14)\n    test 502 dms.py:760: L{LatLon2Tuple}C{(lat, lon)}\n    test 503 dms.py:813: L{LatLon3Tuple}C{(lat, lon, height)}\n\n    testing ecef.py (pygeodesy.named, 26.01.14)\n    test 504 ecef.py:233: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 505 ecef.py:259: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 506 ecef.py:369: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 507 ecef.py:441: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 508 ecef.py:491: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 509 ecef.py:621: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 510 ecef.py:703: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 511 ecef.py:769: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 512 ecef.py:838: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 513 ecef.py:1099: L{LatLon2Tuple}C{(lat, lon)}\n    test 514 ecef.py:1105: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 515 ecef.py:1111: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n    test 516 ecef.py:1117: L{LatLon2Tuple}C{(lat, lon)}\n    test 517 ecef.py:1147: L{PhiLam2Tuple}C{(phi, lam)}\n    test 518 ecef.py:1153: L{PhiLam3Tuple}C{(phi, lam, height)}\n    test 519 ecef.py:1159: L{PhiLam4Tuple}C{(phi, lam, height, datum)}\n    test 520 ecef.py:1165: L{PhiLam2Tuple}C{(phi, lam)}\n    test 521 ecef.py:1184: L{Vector4Tuple}C{(x, y, z, h)}\n    test 522 ecef.py:1225: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n    test 523 ecef.py:1226: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 524 ecef.py:1254: L{Vector3Tuple}C{(x, y, z)}\n    test 525 ecef.py:1271: L{Vector3Tuple}C{(x, y, z)}\n    test 526 ecef.py:1277: L{Vector4Tuple}C{(x, y, z, h)}\n\n    testing ecefLocals.py (pygeodesy.named, 26.01.14)\n    test 527 ecefLocals.py:108: L{Local9Tuple}C{(x, y, z, lat, lon, height, ltp, ecef, M)}\n\n    testing elevations.py (pygeodesy.named, 26.01.14)\n    test 528 elevations.py:151: L{Elevation2Tuple}C{(elevation, data_source)}\n    test 529 elevations.py:207: L{GeoidHeight2Tuple}C{(height, model_name)}\n\n    testing ellipses.py (pygeodesy.named, 26.01.14)\n    test 530 ellipses.py:240: L{Vector4Tuple}C{(x, y, z, h)}\n    test 531 ellipses.py:267: L{Vector4Tuple}C{(x, y, z, h)}\n    test 532 ellipses.py:361: L{Vector4Tuple}C{(x, y, z, h)}\n\n    testing ellipsoidalBase.py (pygeodesy.named, 26.01.14)\n    test 533 ellipsoidalBase.py:332: L{Distance2Tuple}C{(distance, initial)}\n    test 534 ellipsoidalBase.py:367: L{Elevation2Tuple}C{(elevation, data_source)}\n    test 535 ellipsoidalBase.py:479: L{GeoidHeight2Tuple}C{(height, model_name)}\n    test 536 ellipsoidalBase.py:521: L{Intersection3Tuple}C{(point, outside1, outside2)}\n    test 537 ellipsoidalBase.py:998: L{Vector3Tuple}C{(x, y, z)}\n    test 538 ellipsoidalBase.py:1042: L{Trilaterate5Tuple}C{(min, minPoint, max, maxPoint, n)}\n\n    testing ellipsoidalBaseDI.py (pygeodesy.named, 26.01.14)\n    test 539 ellipsoidalBaseDI.py:60: L{Bearing2Tuple}C{(initial, final)}\n    test 540 ellipsoidalBaseDI.py:102: L{Destination2Tuple}C{(destination, final)}\n    test 541 ellipsoidalBaseDI.py:109: L{Destination2Tuple}C{(destination, final)}\n    test 542 ellipsoidalBaseDI.py:110: L{Destination3Tuple}C{(lat, lon, final)}\n    test 543 ellipsoidalBaseDI.py:162: L{Distance3Tuple}C{(distance, initial, final)}\n    test 544 ellipsoidalBaseDI.py:316: L{Distance3Tuple}C{(distance, initial, final)}\n    test 545 ellipsoidalBaseDI.py:341: L{NearestOn8Tuple}C{(closest, distance, fi, j, start, end, initial, final)}\n\n    testing ellipsoidalExact.py (pygeodesy.named, 26.01.14)\n    test 546 ellipsoidalExact.py:43: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 547 ellipsoidalExact.py:81: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 548 ellipsoidalExact.py:143: L{Intersection3Tuple}C{(point, outside1, outside2)}\n    test 549 ellipsoidalExact.py:144: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n    test 550 ellipsoidalExact.py:193: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n    test 551 ellipsoidalExact.py:270: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n\n    testing ellipsoidalGeodSolve.py (pygeodesy.named, 26.01.14)\n    test 552 ellipsoidalGeodSolve.py:43: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 553 ellipsoidalGeodSolve.py:81: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 554 ellipsoidalGeodSolve.py:141: L{Intersection3Tuple}C{(point, outside1, outside2)}\n    test 555 ellipsoidalGeodSolve.py:142: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n    test 556 ellipsoidalGeodSolve.py:193: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n    test 557 ellipsoidalGeodSolve.py:270: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n\n    testing ellipsoidalKarney.py (pygeodesy.named, 26.01.14)\n    test 558 ellipsoidalKarney.py:60: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 559 ellipsoidalKarney.py:104: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 560 ellipsoidalKarney.py:168: L{Intersection3Tuple}C{(point, outside1, outside2)}\n    test 561 ellipsoidalKarney.py:169: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n    test 562 ellipsoidalKarney.py:220: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n    test 563 ellipsoidalKarney.py:301: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n\n    testing ellipsoidalNvector.py (pygeodesy.named, 26.01.14)\n    test 564 ellipsoidalNvector.py:102: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 565 ellipsoidalNvector.py:119: L{Vector4Tuple}C{(x, y, z, h)}\n    test 566 ellipsoidalNvector.py:398: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 567 ellipsoidalNvector.py:415: L{Vector4Tuple}C{(x, y, z, h)}\n    test 568 ellipsoidalNvector.py:483: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 569 ellipsoidalNvector.py:501: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 570 ellipsoidalNvector.py:542: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 571 ellipsoidalNvector.py:580: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n    test 572 ellipsoidalNvector.py:636: L{Ned3Tuple}C{(north, east, down)}  FAILED, KNOWN, expected DEPRECATED\n\n    testing ellipsoidalVincenty.py (pygeodesy.named, 26.01.14)\n    test 573 ellipsoidalVincenty.py:110: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 574 ellipsoidalVincenty.py:190: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 575 ellipsoidalVincenty.py:439: L{Intersection3Tuple}C{(point, outside1, outside2)}\n    test 576 ellipsoidalVincenty.py:440: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n    test 577 ellipsoidalVincenty.py:491: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n    test 578 ellipsoidalVincenty.py:541: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n\n    testing ellipsoids.py (pygeodesy.named, 26.01.14)\n    test 579 ellipsoids.py:146: L{a_f2Tuple}C{(a, f)}\n    test 580 ellipsoids.py:678: L{Circle4Tuple}C{(radius, height, lat, beta)}\n    test 581 ellipsoids.py:739: L{Distance2Tuple}C{(distance, initial)}\n    test 582 ellipsoids.py:1113: L{Vector4Tuple}C{(x, y, z, h)}\n    test 583 ellipsoids.py:1149: L{Vector4Tuple}C{(x, y, z, h)}\n    test 584 ellipsoids.py:1635: L{Curvature2Tuple}C{(meridional, prime_vertical)}\n    test 585 ellipsoids.py:1654: L{Curvature2Tuple}C{(meridional, prime_vertical)}\n    test 586 ellipsoids.py:1723: L{Curvature2Tuple}C{(meridional, prime_vertical)}\n\n    testing elliptic.py (pygeodesy.named, 26.01.14)\n    test 587 elliptic.py:830: L{Elliptic3Tuple}C{(sn, cn, dn)}\n\n    testing epsg.py (pygeodesy.named, 26.01.14)\n    test 588 epsg.py:148: L{UtmUps2Tuple}C{(zone, hemipole)}\n\n    testing errors.py (pygeodesy.named, 26.01.14)\n\n    testing etm.py (pygeodesy.named, 26.01.14)\n    test 589 etm.py:185: L{LatLonDatum5Tuple}C{(lat, lon, datum, gamma, scale)}\n    test 590 etm.py:446: L{Forward4Tuple}C{(easting, northing, gamma, scale)}\n    test 591 etm.py:685: L{Reverse4Tuple}C{(lat, lon, gamma, scale)}\n    test 592 etm.py:1048: L{UtmUps5Tuple}C{(zone, hemipole, easting, northing, band)}\n    test 593 etm.py:1079: L{UtmUps8Tuple}C{(zone, hemipole, easting, northing, band, datum, gamma, scale)}\n\n    testing fmath.py (pygeodesy.named, 26.01.14)\n\n    testing formy.py (pygeodesy.named, 26.01.14)\n    test 594 formy.py:90: L{LatLon2Tuple}C{(lat, lon)}\n    test 595 formy.py:106: L{PhiLam2Tuple}C{(phi, lam)}\n    test 596 formy.py:433: L{Distance4Tuple}C{(distance2, delta_lat, delta_lon, unroll_lon2)}\n    test 597 formy.py:1149: L{LatLon2Tuple}C{(lat, lon)}\n    test 598 formy.py:1212: L{LatLon2Tuple}C{(lat, lon)}\n    test 599 formy.py:1361: L{LatLon2Tuple}C{(lat, lon)}\n    test 600 formy.py:1377: L{PhiLam2Tuple}C{(phi, lam)}\n    test 601 formy.py:1460: L{Radical2Tuple}C{(ratio, xline)}\n\n    testing frechet.py (pygeodesy.named, 26.01.14)\n    test 602 frechet.py:199: L{Frechet6Tuple}C{(fd, fi1, fi2, r, n, units)}\n    test 603 frechet.py:371: L{PhiLam2Tuple}C{(phi, lam)}\n    test 604 frechet.py:745: L{Frechet6Tuple}C{(fd, fi1, fi2, r, n, units)}\n\n    testing fstats.py (pygeodesy.named, 26.01.14)\n\n    testing fsums.py (pygeodesy.named, 26.01.14)\n    test 605 fsums.py:1395: L{Fsum2Tuple}C{(fsum, residual)}\n    test 606 fsums.py:1848: L{Fsum2Tuple}C{(fsum, residual)}\n\n    testing gars.py (pygeodesy.named, 26.01.14)\n    test 607 gars.py:206: L{LatLonPrec3Tuple}C{(lat, lon, precision)}\n\n    testing geod3solve.py (pygeodesy.named, 26.01.14)\n\n    testing geodesici.py (pygeodesy.named, 26.01.14)\n    test 608 geodesici.py:347: L{Intersect7Tuple}C{(A, B, sAB, aAB, c, kA, kB)}\n    test 609 geodesici.py:349: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n    test 610 geodesici.py:904: L{Intersector5Tuple}C{(A, B, sAB, aAB, c)}\n    test 611 geodesici.py:975: L{Intersector5Tuple}C{(A, B, sAB, aAB, c)}\n    test 612 geodesici.py:1132: L{Middle5Tuple}C{(A, B, sMM, aMM, c)}\n    test 613 geodesici.py:1204: L{Intersector5Tuple}C{(A, B, sAB, aAB, c)}\n    test 614 geodesici.py:1331: L{Intersector5Tuple}C{(A, B, sAB, aAB, c)}\n    test 615 geodesici.py:1424: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n\n    testing geodesicw.py (pygeodesy.named, 26.01.14)\n\n    testing geodsolve.py (pygeodesy.named, 26.01.14)\n    test 616 geodsolve.py:129: L{Destination3Tuple}C{(lat, lon, final)}\n    test 617 geodsolve.py:175: L{Distance3Tuple}C{(distance, initial, final)}\n\n    testing geohash.py (pygeodesy.named, 26.01.14)\n    test 618 geohash.py:489: L{Neighbors8Dict}C{(N, NE, E, SE, S, SW, W, NW)}\n    test 619 geohash.py:972: L{Neighbors8Dict}C{(N, NE, E, SE, S, SW, W, NW)}\n    test 620 geohash.py:365: L{Bounds2Tuple}C{(latlonSW, latlonNE)}\n    test 621 geohash.py:366: L{Bounds4Tuple}C{(latS, lonW, latN, lonE)}\n    test 622 geohash.py:482: L{LatLon2Tuple}C{(lat, lon)}\n    test 623 geohash.py:499: L{PhiLam2Tuple}C{(phi, lam)}\n    test 624 geohash.py:512: L{Resolutions2Tuple}C{(res1, res2)}\n    test 625 geohash.py:525: L{Sizes3Tuple}C{(height, width, radius)}\n    test 626 geohash.py:540: L{LatLon2Tuple}C{(lat, lon)}\n    test 627 geohash.py:781: L{Bounds2Tuple}C{(latlonSW, latlonNE)}\n    test 628 geohash.py:782: L{Bounds4Tuple}C{(latS, lonW, latN, lonE)}\n    test 629 geohash.py:824: L{LatLon2Tuple}C{(lat, lon)}\n    test 630 geohash.py:849: L{LatLon2Tuple}C{(lat, lon)}\n    test 631 geohash.py:1015: L{Resolutions2Tuple}C{(res1, res2)}\n    test 632 geohash.py:1042: L{Sizes3Tuple}C{(height, width, radius)}\n\n    testing geoids.py (pygeodesy.named, 26.01.14)\n    test 633 geoids.py:352: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 634 geoids.py:478: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 635 geoids.py:543: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 636 geoids.py:561: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 637 geoids.py:581: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 638 geoids.py:726: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 639 geoids.py:744: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 640 geoids.py:1210: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 641 geoids.py:1265: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 642 geoids.py:1724: L{GeoidHeight5Tuple}C{(lat, lon, egm84, egm96, egm2008)}\n\n    testing hausdorff.py (pygeodesy.named, 26.01.14)\n    test 643 hausdorff.py:166: L{Hausdorff6Tuple}C{(hd, i, j, mn, md, units)}\n    test 644 hausdorff.py:244: L{Hausdorff6Tuple}C{(hd, i, j, mn, md, units)}\n    test 645 hausdorff.py:309: L{PhiLam2Tuple}C{(phi, lam)}\n    test 646 hausdorff.py:733: L{Hausdorff6Tuple}C{(hd, i, j, mn, md, units)}\n\n    testing heights.py (pygeodesy.named, 26.01.14)\n\n    testing internals.py (pygeodesy.named, 26.01.14)\n\n    testing interns.py (pygeodesy.named, 26.01.14)\n\n    testing iters.py (pygeodesy.named, 26.01.14)\n    test 647 iters.py:375: L{Point3Tuple}C{(x, y, ll)}\n    test 648 iters.py:495: L{Points2Tuple}C{(number, points)}\n\n    testing karney.py (pygeodesy.named, 26.01.14)\n    test 649 karney.py:453: L{Direct9Tuple}C{(a12, lat2, lon2, azi2, s12, m12, M12, M21, S12)}\n    test 650 karney.py:465: L{GeodSolve12Tuple}C{(lat1, lon1, azi1, lat2, lon2, azi2, s12, a12, m12, M12, M21, S12)}\n    test 651 karney.py:477: L{Geod3Solve8Tuple}C{(bet1, omg1, alp1, bet2, omg2, alp2, s12, a12)}\n    test 652 karney.py:487: L{Inverse10Tuple}C{(a12, s12, salp1, calp1, salp2, calp2, m12, M12, M21, S12)}\n    test 653 karney.py:517: L{Rhumb8Tuple}C{(lat1, lon1, lat2, lon2, azi12, s12, S12, a12)}\n    test 654 karney.py:527: L{RhumbSolve7Tuple}C{(lat1, lon1, lat2, lon2, azi12, s12, S12)}\n    test 655 karney.py:595: L{Direct9Tuple}C{(a12, lat2, lon2, azi2, s12, m12, M12, M21, S12)}\n    test 656 karney.py:612: L{Inverse10Tuple}C{(a12, s12, salp1, calp1, salp2, calp2, m12, M12, M21, S12)}\n\n    testing ktm.py (pygeodesy.named, 26.01.14)\n    test 657 ktm.py:230: L{Forward4Tuple}C{(easting, northing, gamma, scale)}\n    test 658 ktm.py:361: L{Reverse4Tuple}C{(lat, lon, gamma, scale)}\n\n    testing latlonBase.py (pygeodesy.named, 26.01.14)\n    test 659 latlonBase.py:148: L{Bounds2Tuple}C{(latlonSW, latlonNE)}\n    test 660 latlonBase.py:202: L{Circin6Tuple}C{(radius, center, deltas, cA, cB, cC)}\n    test 661 latlonBase.py:219: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 662 latlonBase.py:250: L{Circum3Tuple}C{(radius, center, deltas)}\n    test 663 latlonBase.py:253: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 664 latlonBase.py:270: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 665 latlonBase.py:292: L{Circum4Tuple}C{(radius, center, rank, residuals)}\n    test 666 latlonBase.py:409: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n    test 667 latlonBase.py:409: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 668 latlonBase.py:654: L{Vector4Tuple}C{(x, y, z, h)}\n    test 669 latlonBase.py:816: L{LatLon2Tuple}C{(lat, lon)}\n    test 670 latlonBase.py:855: L{LatLon2Tuple}C{(lat, lon)}\n    test 671 latlonBase.py:873: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 672 latlonBase.py:920: L{NearestOn6Tuple}C{(closest, distance, fi, j, start, end)}\n    test 673 latlonBase.py:993: L{PhiLam2Tuple}C{(phi, lam)}\n    test 674 latlonBase.py:1002: L{PhiLam2Tuple}C{(phi, lam)}\n    test 675 latlonBase.py:1012: L{PhiLam3Tuple}C{(phi, lam, height)}\n    test 676 latlonBase.py:1028: L{Points2Tuple}C{(number, points)}\n    test 677 latlonBase.py:1062: L{Radii11Tuple}C{(rA, rB, rC, cR, rIn, riS, roS, a, b, c, s)}\n    test 678 latlonBase.py:1299: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 679 latlonBase.py:1340: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 680 latlonBase.py:1381: L{Vector4Tuple}C{(x, y, z, h)}\n    test 681 latlonBase.py:1435: L{Vector3Tuple}C{(x, y, z)}\n    test 682 latlonBase.py:1512: L{Vector3Tuple}C{(x, y, z)}\n    test 683 latlonBase.py:1524: L{Vector4Tuple}C{(x, y, z, h)}\n    test 684 latlonBase.py:1567: L{Vector3Tuple}C{(x, y, z)}\n    test 685 latlonBase.py:1593: L{Vector3Tuple}C{(x, y, z)}\n\n    testing lazily.py (pygeodesy.named, 26.01.14)\n\n    testing lcc.py (pygeodesy.named, 26.01.14)\n    test 686 lcc.py:168: L{LatLon2Tuple}C{(lat, lon)}\n    test 687 lcc.py:222: L{PhiLam2Tuple}C{(phi, lam)}\n    test 688 lcc.py:483: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 689 lcc.py:489: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n    test 690 lcc.py:508: L{PhiLam3Tuple}C{(phi, lam, height)}\n    test 691 lcc.py:514: L{PhiLam4Tuple}C{(phi, lam, height, datum)}\n    test 692 lcc.py:525: L{LatLonDatum3Tuple}C{(lat, lon, datum)}\n    test 693 lcc.py:552: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n    test 694 lcc.py:630: L{EasNor3Tuple}C{(easting, northing, height)}\n\n    testing ltp.py (pygeodesy.named, 26.01.14)\n    test 695 ltp.py:163: L{Vector3Tuple}C{(x, y, z)}\n    test 696 ltp.py:292: L{Footprint5Tuple}C{(center, upperleft, upperight, loweright, lowerleft)}\n    test 697 ltp.py:484: L{Local9Tuple}C{(x, y, z, lat, lon, height, ltp, ecef, M)}\n    test 698 ltp.py:524: L{Local9Tuple}C{(x, y, z, lat, lon, height, ltp, ecef, M)}\n    test 699 ltp.py:556: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 700 ltp.py:568: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 701 ltp.py:646: L{Local9Tuple}C{(x, y, z, lat, lon, height, ltp, ecef, M)}\n    test 702 ltp.py:756: L{ChLV9Tuple}C{(Y, X, h_, lat, lon, height, ltp, ecef, M)}\n    test 703 ltp.py:778: L{ChLV9Tuple}C{(Y, X, h_, lat, lon, height, ltp, ecef, M)}\n    test 704 ltp.py:892: L{ChLVEN2Tuple}C{(E_LV95, N_LV95)}\n    test 705 ltp.py:893: L{ChLVyx2Tuple}C{(y_LV03, x_LV03)}\n    test 706 ltp.py:894: L{ChLVYX2Tuple}C{(Y, X)}\n    test 707 ltp.py:944: L{ChLVYX2Tuple}C{(Y, X)}\n    test 708 ltp.py:1100: L{Vector3Tuple}C{(x, y, z)}\n\n    testing ltpTuples.py (pygeodesy.named, 26.01.14)\n    test 709 ltpTuples.py:79: L{Aer4Tuple}C{(azimuth, elevation, slantrange, ltp)}\n    test 710 ltpTuples.py:94: L{Enu4Tuple}C{(east, north, up, ltp)}\n    test 711 ltpTuples.py:109: L{Ned4Tuple}C{(north, east, down, ltp)}\n    test 712 ltpTuples.py:125: L{Xyz4Tuple}C{(x, y, z, ltp)}\n    test 713 ltpTuples.py:134: L{Vector3Tuple}C{(x, y, z)}\n    test 714 ltpTuples.py:767: L{Aer4Tuple}C{(azimuth, elevation, slantrange, ltp)}\n    test 715 ltpTuples.py:786: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 716 ltpTuples.py:809: L{Enu4Tuple}C{(east, north, up, ltp)}\n    test 717 ltpTuples.py:827: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 718 ltpTuples.py:847: L{Local9Tuple}C{(x, y, z, lat, lon, height, ltp, ecef, M)}\n    test 719 ltpTuples.py:865: L{Ned4Tuple}C{(north, east, down, ltp)}\n    test 720 ltpTuples.py:881: L{Xyz4Tuple}C{(x, y, z, ltp)}\n    test 721 ltpTuples.py:902: L{Vector3Tuple}C{(x, y, z)}\n    test 722 ltpTuples.py:995: L{Uvw3Tuple}C{(u, v, w)}\n    test 723 ltpTuples.py:1090: L{LatLon2Tuple}C{(lat, lon)}\n    test 724 ltpTuples.py:1096: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 725 ltpTuples.py:1114: L{PhiLam2Tuple}C{(phi, lam)}\n    test 726 ltpTuples.py:1120: L{PhiLam3Tuple}C{(phi, lam, height)}\n    test 727 ltpTuples.py:1138: L{Aer4Tuple}C{(azimuth, elevation, slantrange, ltp)}\n    test 728 ltpTuples.py:1155: L{Vector4Tuple}C{(x, y, z, h)}\n    test 729 ltpTuples.py:1170: L{Enu4Tuple}C{(east, north, up, ltp)}\n    test 730 ltpTuples.py:1186: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n    test 731 ltpTuples.py:1187: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 732 ltpTuples.py:1202: L{Ned4Tuple}C{(north, east, down, ltp)}\n    test 733 ltpTuples.py:1217: L{Xyz4Tuple}C{(x, y, z, ltp)}\n    test 734 ltpTuples.py:1232: L{Vector3Tuple}C{(x, y, z)}\n    test 735 ltpTuples.py:1279: L{Enu4Tuple}C{(east, north, up, ltp)}\n    test 736 ltpTuples.py:1305: L{Uvw3Tuple}C{(u, v, w)}\n    test 737 ltpTuples.py:1526: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 738 ltpTuples.py:1527: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n\n    testing mgrs.py (pygeodesy.named, 26.01.14)\n    test 739 mgrs.py:207: L{EasNor2Tuple}C{(easting, northing)}\n    test 740 mgrs.py:292: L{LatLonDatum5Tuple}C{(lat, lon, datum, gamma, scale)}\n    test 741 mgrs.py:353: L{UtmUps5Tuple}C{(zone, hemipole, easting, northing, band)}\n    test 742 mgrs.py:371: L{UtmUps5Tuple}C{(zone, hemipole, easting, northing, band)}\n    test 743 mgrs.py:391: L{UtmUps5Tuple}C{(zone, hemipole, easting, northing, band)}\n    test 744 mgrs.py:465: L{Mgrs6Tuple}C{(zone, EN, easting, northing, band, datum)}\n    test 745 mgrs.py:549: L{Mgrs4Tuple}C{(zone, EN, easting, northing)}\n    test 746 mgrs.py:605: L{Mgrs6Tuple}C{(zone, EN, easting, northing, band, datum)}\n\n    testing named.py (pygeodesy.named, 26.01.14)\n\n    testing namedTuples.py (pygeodesy.named, 26.01.14)\n    test 747 namedTuples.py:279: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 748 namedTuples.py:293: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n    test 749 namedTuples.py:316: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n    test 750 namedTuples.py:383: L{LatLonPrec5Tuple}C{(lat, lon, precision, height, radius)}\n    test 751 namedTuples.py:442: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 752 namedTuples.py:510: L{PhiLam3Tuple}C{(phi, lam, height)}\n    test 753 namedTuples.py:522: L{PhiLam4Tuple}C{(phi, lam, height, datum)}\n    test 754 namedTuples.py:550: L{PhiLam4Tuple}C{(phi, lam, height, datum)}\n    test 755 namedTuples.py:727: L{Vector3Tuple}C{(x, y, z)}\n    test 756 namedTuples.py:771: L{Vector4Tuple}C{(x, y, z, h)}\n    test 757 namedTuples.py:811: L{Vector3Tuple}C{(x, y, z)}\n\n    testing nvectorBase.py (pygeodesy.named, 26.01.14)\n    test 758 nvectorBase.py:160: L{LatLon2Tuple}C{(lat, lon)}\n    test 759 nvectorBase.py:166: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 760 nvectorBase.py:172: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n    test 761 nvectorBase.py:190: L{PhiLam2Tuple}C{(phi, lam)}\n    test 762 nvectorBase.py:196: L{PhiLam3Tuple}C{(phi, lam, height)}\n    test 763 nvectorBase.py:202: L{PhiLam4Tuple}C{(phi, lam, height, datum)}\n    test 764 nvectorBase.py:233: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 765 nvectorBase.py:291: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 766 nvectorBase.py:353: L{Vector4Tuple}C{(x, y, z, h)}\n    test 767 nvectorBase.py:427: L{Vector4Tuple}C{(x, y, z, h)}\n    test 768 nvectorBase.py:496: L{Trilaterate5Tuple}C{(min, minPoint, max, maxPoint, n)}\n    test 769 nvectorBase.py:531: L{LatLon2Tuple}C{(lat, lon)}\n    test 770 nvectorBase.py:549: L{PhiLam2Tuple}C{(phi, lam)}\n    test 771 nvectorBase.py:589: L{Vector4Tuple}C{(x, y, z, h)}\n\n    testing osgr.py (pygeodesy.named, 26.01.14)\n    test 772 osgr.py:301: L{LatLonDatum3Tuple}C{(lat, lon, datum)}\n    test 773 osgr.py:522: L{EasNor2Tuple}C{(easting, northing)}\n    test 774 osgr.py:600: L{EasNor2Tuple}C{(easting, northing)}\n\n    testing points.py (pygeodesy.named, 26.01.14)\n    test 775 points.py:559: L{Shape2Tuple}C{(nrows, ncols)}\n    test 776 points.py:761: L{Point3Tuple}C{(x, y, ll)}\n    test 777 points.py:995: L{Bounds2Tuple}C{(latlonSW, latlonNE)}\n    test 778 points.py:997: L{Bounds4Tuple}C{(latS, lonW, latN, lonE)}\n    test 779 points.py:1037: L{LatLon2Tuple}C{(lat, lon)}\n    test 780 points.py:1117: L{LatLon2Tuple}C{(lat, lon)}\n    test 781 points.py:1485: L{NearestOn3Tuple}C{(closest, distance, angle)}\n    test 782 points.py:1487: L{NearestOn5Tuple}C{(lat, lon, distance, angle, height)}\n\n    testing props.py (pygeodesy.named, 26.01.14)\n\n    testing resections.py (pygeodesy.named, 26.01.14)\n    test 783 resections.py:229: L{Collins5Tuple}C{(pointP, pointH, a, b, c)}\n    test 784 resections.py:549: L{Survey3Tuple}C{(PA, PB, PC)}\n    test 785 resections.py:613: L{Tienstra7Tuple}C{(pointP, A, B, C, a, b, c)}\n    test 786 resections.py:733: L{TriAngle5Tuple}C{(radA, radB, radC, rIn, area)}\n    test 787 resections.py:864: L{TriSide2Tuple}C{(a, radA)}\n    test 788 resections.py:910: L{TriSide4Tuple}C{(a, b, radC, d)}\n    test 789 resections.py:956: L{Survey3Tuple}C{(PA, PB, PC)}\n\n    testing simplify.py (pygeodesy.named, 26.01.14)\n\n    testing solveBase.py (pygeodesy.named, 26.01.14)\n\n    testing sphericalBase.py (pygeodesy.named, 26.01.14)\n    test 790 sphericalBase.py:151: L{Bearing2Tuple}C{(initial, final)}\n    test 791 sphericalBase.py:579: L{Vector4Tuple}C{(x, y, z, h)}\n\n    testing sphericalNvector.py (pygeodesy.named, 26.01.14)\n    test 792 sphericalNvector.py:83: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 793 sphericalNvector.py:99: L{Vector4Tuple}C{(x, y, z, h)}\n    test 794 sphericalNvector.py:641: L{NearestOn3Tuple}C{(closest, distance, angle)}\n    test 795 sphericalNvector.py:677: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 796 sphericalNvector.py:692: L{Vector4Tuple}C{(x, y, z, h)}\n    test 797 sphericalNvector.py:731: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 798 sphericalNvector.py:748: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 799 sphericalNvector.py:882: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 800 sphericalNvector.py:913: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 801 sphericalNvector.py:1045: L{NearestOn3Tuple}C{(closest, distance, angle)}\n\n    testing sphericalTrigonometry.py (pygeodesy.named, 26.01.14)\n    test 802 sphericalTrigonometry.py:80: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 803 sphericalTrigonometry.py:622: L{NearestOn3Tuple}C{(closest, distance, angle)}\n    test 804 sphericalTrigonometry.py:653: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 805 sphericalTrigonometry.py:671: L{Triangle7Tuple}C{(A, a, B, b, C, c, area)}\n    test 806 sphericalTrigonometry.py:672: L{Triangle8Tuple}C{(A, a, B, b, C, c, D, E)}\n    test 807 sphericalTrigonometry.py:722: L{Trilaterate5Tuple}C{(min, minPoint, max, maxPoint, n)}\n    test 808 sphericalTrigonometry.py:1010: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 809 sphericalTrigonometry.py:1054: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 810 sphericalTrigonometry.py:1172: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 811 sphericalTrigonometry.py:1197: L{LatLon2Tuple}C{(lat, lon)}\n    test 812 sphericalTrigonometry.py:1228: L{NearestOn3Tuple}C{(closest, distance, angle)}\n    test 813 sphericalTrigonometry.py:1229: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 814 sphericalTrigonometry.py:1325: L{Triangle7Tuple}C{(A, a, B, b, C, c, area)}\n    test 815 sphericalTrigonometry.py:1330: L{Triangle8Tuple}C{(A, a, B, b, C, c, D, E)}\n    test 816 sphericalTrigonometry.py:1357: L{Triangle8Tuple}C{(A, a, B, b, C, c, D, E)}\n\n    testing streprs.py (pygeodesy.named, 26.01.14)\n\n    testing trf.py (pygeodesy.named, 26.01.14)\n    test 817 trf.py:472: L{Vector3Tuple}C{(x, y, z)}\n    test 818 trf.py:514: L{Vector3Tuple}C{(x, y, z)}\n\n    testing units.py (pygeodesy.named, 26.01.14)\n\n    testing unitsBase.py (pygeodesy.named, 26.01.14)\n\n    testing ups.py (pygeodesy.named, 26.01.14)\n    test 819 ups.py:147: L{EasNor2Tuple}C{(easting, northing)}\n    test 820 ups.py:209: L{LatLonDatum5Tuple}C{(lat, lon, datum, gamma, scale)}\n    test 821 ups.py:355: L{UtmUps5Tuple}C{(zone, hemipole, easting, northing, band)}\n    test 822 ups.py:402: L{UtmUps8Tuple}C{(zone, hemipole, easting, northing, band, datum, gamma, scale)}\n    test 823 ups.py:477: L{UtmUpsLatLon5Tuple}C{(zone, band, hemipole, lat, lon)}\n\n    testing utily.py (pygeodesy.named, 26.01.14)\n    test 824 utily.py:203: L{Circle4Tuple}C{(radius, height, lat, beta)}\n\n    testing utm.py (pygeodesy.named, 26.01.14)\n    test 825 utm.py:252: L{EasNor2Tuple}C{(easting, northing)}\n    test 826 utm.py:306: L{LatLonDatum5Tuple}C{(lat, lon, datum, gamma, scale)}\n    test 827 utm.py:512: L{UtmUps5Tuple}C{(zone, hemipole, easting, northing, band)}\n    test 828 utm.py:542: L{UtmUps8Tuple}C{(zone, hemipole, easting, northing, band, datum, gamma, scale)}\n    test 829 utm.py:721: L{UtmUpsLatLon5Tuple}C{(zone, band, hemipole, lat, lon)}\n\n    testing utmups.py (pygeodesy.named, 26.01.14)\n    test 830 utmups.py:89: L{UtmUps5Tuple}C{(zone, hemipole, easting, northing, band)}\n    test 831 utmups.py:129: L{UtmUps8Tuple}C{(zone, hemipole, easting, northing, band, datum, gamma, scale)}\n    test 832 utmups.py:278: L{UtmUpsLatLon5Tuple}C{(zone, band, hemipole, lat, lon)}\n\n    testing utmupsBase.py (pygeodesy.named, 26.01.14)\n    test 833 utmupsBase.py:158: L{EasNor2Tuple}C{(easting, northing)}\n    test 834 utmupsBase.py:168: L{EasNor2Tuple}C{(easting, northing)}\n    test 835 utmupsBase.py:366: L{EasNor2Tuple}C{(easting, northing)}\n\n    testing vector2d.py (pygeodesy.named, 26.01.14)\n    test 836 vector2d.py:148: L{Circin6Tuple}C{(radius, center, deltas, cA, cB, cC)}\n    test 837 vector2d.py:212: L{Circum3Tuple}C{(radius, center, deltas)}\n    test 838 vector2d.py:262: L{Circum4Tuple}C{(radius, center, rank, residuals)}\n    test 839 vector2d.py:338: L{Meeus2Tuple}C{(radius, Type)}\n    test 840 vector2d.py:513: L{Radii11Tuple}C{(rA, rB, rC, cR, rIn, riS, roS, a, b, c, s)}\n    test 841 vector2d.py:590: L{Soddy4Tuple}C{(radius, center, deltas, outer)}\n    test 842 vector2d.py:623: L{Triaxum5Tuple}C{(a, b, c, rank, residuals)}\n    test 843 vector2d.py:705: L{Vector2Tuple}C{(x, y)}\n\n    testing vector3d.py (pygeodesy.named, 26.01.14)\n    test 844 vector3d.py:75: L{Circin6Tuple}C{(radius, center, deltas, cA, cB, cC)}\n    test 845 vector3d.py:109: L{Circum3Tuple}C{(radius, center, deltas)}\n    test 846 vector3d.py:135: L{Circum4Tuple}C{(radius, center, rank, residuals)}\n    test 847 vector3d.py:182: L{Meeus2Tuple}C{(radius, Type)}\n    test 848 vector3d.py:228: L{NearestOn6Tuple}C{(closest, distance, fi, j, start, end)}\n    test 849 vector3d.py:264: L{Radii11Tuple}C{(rA, rB, rC, cR, rIn, riS, roS, a, b, c, s)}\n    test 850 vector3d.py:291: L{Soddy4Tuple}C{(radius, center, deltas, outer)}\n    test 851 vector3d.py:516: L{Intersection3Tuple}C{(point, outside1, outside2)}\n    test 852 vector3d.py:742: L{NearestOn6Tuple}C{(closest, distance, fi, j, start, end)}\n    test 853 vector3d.py:813: L{Vector3Tuple}C{(x, y, z)}\n    test 854 vector3d.py:837: L{Vector3Tuple}C{(x, y, z)}\n\n    testing vector3dBase.py (pygeodesy.named, 26.01.14)\n    test 855 vector3dBase.py:1039: L{PhiLam2Tuple}C{(phi, lam)}\n    test 856 vector3dBase.py:1047: L{LatLon2Tuple}C{(lat, lon)}\n    test 857 vector3dBase.py:1113: L{Vector3Tuple}C{(x, y, z)}\n\n    testing webmercator.py (pygeodesy.named, 26.01.14)\n    test 858 webmercator.py:121: L{LatLon2Tuple}C{(lat, lon)}\n    test 859 webmercator.py:179: L{LatLon2Tuple}C{(lat, lon)}\n    test 860 webmercator.py:288: L{EasNorRadius3Tuple}C{(easting, northing, radius)}\n    test 861 webmercator.py:324: L{EasNorRadius3Tuple}C{(easting, northing, radius)}\n\n    testing wgrs.py (pygeodesy.named, 26.01.14)\n    test 862 wgrs.py:221: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 863 wgrs.py:239: L{LatLonPrec3Tuple}C{(lat, lon, precision)}\n    test 864 wgrs.py:292: L{LatLonPrec5Tuple}C{(lat, lon, precision, height, radius)}\n\n    testing auxilats._CX_4.py (pygeodesy.named, 26.01.14)\n\n    testing auxilats._CX_6.py (pygeodesy.named, 26.01.14)\n\n    testing auxilats._CX_8.py (pygeodesy.named, 26.01.14)\n\n    testing auxilats._CX_Rs.py (pygeodesy.named, 26.01.14)\n\n    testing auxilats.__init__.py (pygeodesy.named, 26.01.14)\n\n    testing auxilats.__main__.py (pygeodesy.named, 26.01.14)\n\n    testing auxilats.auxAngle.py (pygeodesy.named, 26.01.14)\n\n    testing auxilats.auxDLat.py (pygeodesy.named, 26.01.14)\n\n    testing auxilats.auxDST.py (pygeodesy.named, 26.01.14)\n\n    testing auxilats.auxLat.py (pygeodesy.named, 26.01.14)\n\n    testing auxilats.auxily.py (pygeodesy.named, 26.01.14)\n\n    testing deprecated.__init__.py (pygeodesy.named, 26.01.14)\n\n    testing deprecated.bases.py (pygeodesy.named, 26.01.14)\n\n    testing deprecated.classes.py (pygeodesy.named, 26.01.14)\n    test 865 deprecated.classes.py:82: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 866 deprecated.classes.py:96: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n\n    testing deprecated.consterns.py (pygeodesy.named, 26.01.14)\n\n    testing deprecated.datum.py (pygeodesy.named, 26.01.14)\n\n    testing deprecated.functions.py (pygeodesy.named, 26.01.14)\n    test 867 deprecated.functions.py:56: L{ClipCS3Tuple}C{(start, end, index)}  FAILED, KNOWN, expected DEPRECATED\n    test 868 deprecated.functions.py:390: L{TriAngle4Tuple}C{(radA, radB, radC, rIn)}  FAILED, KNOWN, expected DEPRECATED\n\n    testing deprecated.nvector.py (pygeodesy.named, 26.01.14)\n\n    testing deprecated.rhumbBase.py (pygeodesy.named, 26.01.14)\n\n    testing deprecated.rhumbaux.py (pygeodesy.named, 26.01.14)\n\n    testing deprecated.rhumbsolve.py (pygeodesy.named, 26.01.14)\n\n    testing deprecated.rhumbx.py (pygeodesy.named, 26.01.14)\n\n    testing geodesicx._C4_24.py (pygeodesy.named, 26.01.14)\n\n    testing geodesicx._C4_27.py (pygeodesy.named, 26.01.14)\n\n    testing geodesicx._C4_30.py (pygeodesy.named, 26.01.14)\n\n    testing geodesicx.__init__.py (pygeodesy.named, 26.01.14)\n\n    testing geodesicx.__main__.py (pygeodesy.named, 26.01.14)\n\n    testing geodesicx.gx.py (pygeodesy.named, 26.01.14)\n    test 869 geodesicx.gx.py:357: L{Destination3Tuple}C{(lat, lon, final)}\n    test 870 geodesicx.gx.py:710: L{Direct9Tuple}C{(a12, lat2, lon2, azi2, s12, m12, M12, M21, S12)}\n    test 871 geodesicx.gx.py:719: L{Inverse10Tuple}C{(a12, s12, salp1, calp1, salp2, calp2, m12, M12, M21, S12)}\n    test 872 geodesicx.gx.py:774: L{Distance3Tuple}C{(distance, initial, final)}\n\n    testing geodesicx.gxarea.py (pygeodesy.named, 26.01.14)\n    test 873 geodesicx.gxarea.py:161: L{Area3Tuple}C{(number, perimeter, area)}\n    test 874 geodesicx.gxarea.py:323: L{Area3Tuple}C{(number, perimeter, area)}\n    test 875 geodesicx.gxarea.py:350: L{Area3Tuple}C{(number, perimeter, area)}\n\n    testing geodesicx.gxbases.py (pygeodesy.named, 26.01.14)\n\n    testing geodesicx.gxline.py (pygeodesy.named, 26.01.14)\n    test 876 geodesicx.gxline.py:464: L{Direct9Tuple}C{(a12, lat2, lon2, azi2, s12, m12, M12, M21, S12)}\n\n    testing rhumb.__init__.py (pygeodesy.named, 26.01.14)\n\n    testing rhumb.aux_.py (pygeodesy.named, 26.01.14)\n\n    testing rhumb.bases.py (pygeodesy.named, 26.01.14)\n    test 877 rhumb.bases.py:589: L{Distance2Tuple}C{(distance, initial)}\n    test 878 rhumb.bases.py:782: L{LatLon2Tuple}C{(lat, lon)}\n\n    testing rhumb.ekx.py (pygeodesy.named, 26.01.14)\n    test 879 rhumb.ekx.py:201: L{RhumbOrder2Tuple}C{(RAorder, TMorder)}  FAILED, KNOWN, expected DEPRECATED\n\n    testing rhumb.solve.py (pygeodesy.named, 26.01.14)\n    test 880 rhumb.solve.py:120: L{Destination3Tuple}C{(lat, lon, final)}\n    test 881 rhumb.solve.py:184: L{Distance3Tuple}C{(distance, initial, final)}\n\n    testing triaxials.__init__.py (pygeodesy.named, 26.01.14)\n\n    testing triaxials.bases.py (pygeodesy.named, 26.01.14)\n    test 882 triaxials.bases.py:379: L{Ellipse5Tuple}C{(a, b, height, lat, beta)}\n    test 883 triaxials.bases.py:508: L{Vector4Tuple}C{(x, y, z, h)}\n\n    testing triaxials.conformal3.py (pygeodesy.named, 26.01.14)\n    test 884 triaxials.conformal3.py:174: L{Conformal5Tuple}C{(x, y, z, scale, llk)}\n    test 885 triaxials.conformal3.py:190: L{BetOmgGam5Tuple}C{(bet, omg, gam, scale, llk)}\n    test 886 triaxials.conformal3.py:216: L{Cartesian5Tuple}C{(x, y, z, h, llk)}\n    test 887 triaxials.conformal3.py:248: L{BetOmgGam5Tuple}C{(bet, omg, gam, scale, llk)}\n    test 888 triaxials.conformal3.py:269: L{BetOmgGam5Tuple}C{(bet, omg, gam, scale, llk)}\n    test 889 triaxials.conformal3.py:290: L{BetOmgGam5Tuple}C{(bet, omg, gam, scale, llk)}\n\n    testing triaxials.triaxial3.py (pygeodesy.named, 26.01.14)\n    test 890 triaxials.triaxial3.py:175: L{Cartesian5Tuple}C{(x, y, z, h, llk)}\n    test 891 triaxials.triaxial3.py:203: L{Cartesian5Tuple}C{(x, y, z, h, llk)}\n    test 892 triaxials.triaxial3.py:277: L{Cartesian5Tuple}C{(x, y, z, h, llk)}\n    test 893 triaxials.triaxial3.py:303: L{Cartesian5Tuple}C{(x, y, z, h, llk)}\n    test 894 triaxials.triaxial3.py:323: L{Cartesian5Tuple}C{(x, y, z, h, llk)}\n    test 895 triaxials.triaxial3.py:347: L{Cartesian5Tuple}C{(x, y, z, h, llk)}\n    test 896 triaxials.triaxial3.py:421: L{Cartesian5Tuple}C{(x, y, z, h, llk)}\n    test 897 triaxials.triaxial3.py:458: L{BetOmgAlp5Tuple}C{(bet, omg, alp, h, llk)}\n    test 898 triaxials.triaxial3.py:497: L{BetOmgAlp5Tuple}C{(bet, omg, alp, h, llk)}\n    test 899 triaxials.triaxial3.py:580: L{Cartesian5Tuple}C{(x, y, z, h, llk)}\n    test 900 triaxials.triaxial3.py:607: L{BetOmgAlp5Tuple}C{(bet, omg, alp, h, llk)}\n    test 901 triaxials.triaxial3.py:608: L{PhiLamZet5Tuple}C{(phi, lam, zet, h, llk)}\n    test 902 triaxials.triaxial3.py:630: L{PhiLamZet5Tuple}C{(phi, lam, zet, h, llk)}\n    test 903 triaxials.triaxial3.py:649: L{PhiLamZet5Tuple}C{(phi, lam, zet, h, llk)}\n    test 904 triaxials.triaxial3.py:683: L{Cartesian5Tuple}C{(x, y, z, h, llk)}\n    test 905 triaxials.triaxial3.py:738: L{BetOmgAlp5Tuple}C{(bet, omg, alp, h, llk)}\n    test 906 triaxials.triaxial3.py:739: L{PhiLamZet5Tuple}C{(phi, lam, zet, h, llk)}\n    test 907 triaxials.triaxial3.py:767: L{Cartesian5Tuple}C{(x, y, z, h, llk)}\n\n    testing triaxials.triaxial5.py (pygeodesy.named, 26.01.14)\n    test 908 triaxials.triaxial5.py:107: L{BetaOmega2Tuple}C{(beta, omega)}\n    test 909 triaxials.triaxial5.py:119: L{BetaOmega2Tuple}C{(beta, omega)}\n    test 910 triaxials.triaxial5.py:140: L{BetaOmega3Tuple}C{(beta, omega, height)}\n    test 911 triaxials.triaxial5.py:152: L{BetaOmega3Tuple}C{(beta, omega, height)}\n    test 912 triaxials.triaxial5.py:177: L{Conformal2Tuple}C{(x, y)}\n    test 913 triaxials.triaxial5.py:188: L{Conformal2Tuple}C{(x, y)}\n    test 914 triaxials.triaxial5.py:250: L{Vector3Tuple}C{(x, y, z)}\n    test 915 triaxials.triaxial5.py:286: L{Vector3Tuple}C{(x, y, z)}\n    test 916 triaxials.triaxial5.py:311: L{Vector4Tuple}C{(x, y, z, h)}\n    test 917 triaxials.triaxial5.py:328: L{Vector3Tuple}C{(x, y, z)}\n    test 918 triaxials.triaxial5.py:348: L{Vector3Tuple}C{(x, y, z)}\n    test 919 triaxials.triaxial5.py:388: L{BetaOmega3Tuple}C{(beta, omega, height)}\n    test 920 triaxials.triaxial5.py:416: L{Vector3Tuple}C{(x, y, z)}\n    test 921 triaxials.triaxial5.py:444: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 922 triaxials.triaxial5.py:572: L{Vector2Tuple}C{(x, y)}\n    test 923 triaxials.triaxial5.py:583: L{Vector2Tuple}C{(x, y)}\n    test 924 triaxials.triaxial5.py:592: L{Conformal2Tuple}C{(x, y)}\n    test 925 triaxials.triaxial5.py:606: L{Conformal2Tuple}C{(x, y)}\n    test 926 triaxials.triaxial5.py:621: L{Conformal2Tuple}C{(x, y)}\n    test 927 triaxials.triaxial5.py:829: L{Vector4Tuple}C{(x, y, z, h)}\n    test 928 triaxials.triaxial5.py:872: L{Vector4Tuple}C{(x, y, z, h)}\n\n    testing xtend (pygeodesy.namedTuples, 26.03.12)\n    test 929 LatLon2Tuple(lat=0, lon=1): (0, 1, 2)\n    test 930 LatLon2Tuple(lat=0, lon=1): <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 931 LatLon2Tuple(lat=0, lon=1): (0, 1, 2, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 932 LatLon2Tuple(lat=0, lon=1): <class 'pygeodesy.namedTuples.LatLon4Tuple'>\n    test 933 LatLon3Tuple(lat=0, lon=1, height=2): (0, 1, 2, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 934 LatLon3Tuple(lat=0, lon=1, height=2): <class 'pygeodesy.namedTuples.LatLon4Tuple'>\n    test 935 PhiLam2Tuple(phi=0, lam=1): (0, 1, 2)\n    test 936 PhiLam2Tuple(phi=0, lam=1): <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 937 Vector3Tuple(x=0, y=1, z=2): (0, 1, 2, 4)\n    test 938 Vector3Tuple(x=0, y=1, z=2): <class 'pygeodesy.namedTuples.Vector4Tuple'>\n\n    testing bases (pygeodesy.named, 26.01.14)\n    test 939 nd.dict: test(1=1, 2=2)\n    test 940 nd.name: test\n    test 941 nd.dict: test(1=1, 2=2)\n    test 942 nd.name: test\n    test 943 nd.kwds: test(one=1, two=2)\n    test 944 nd.name: test\n    test 945 nd.dict: test(1=1, 2=2)\n    test 946 nd.name: test\n    test 947 nd.list: test(1=1, 2=2)\n    test 948 nd.name: test\n    test 949 nd.updated: test(1=1, 2=2, name='kwds')\n    test 950 nd.name: test\n\n    testing coverage (pygeodesy.named, 26.01.14)\n{E: 'E', N: 'N', NE: 'NE', NW: 'NW', S: 'S', SE: 'SE', SW: 'SW', W: 'W'}\n    test 951 nd.name: name\n    test 952 nd.named: name\n    test 953 nd.named: Neighbors8Dict\n    test 954 nd.name: test\n    test 955 nd.test: test\n    test 956 nd.test: None\n    test 957 nd.classnaming: False\n    test 958 nd.classname: Neighbors8Dict\n    test 959 nd.named2: Neighbors8Dict 'test'\n    test 960 nd.classnaming: True\n    test 961 nd.classname: geohash.Neighbors8Dict\n    test 962 nd.named2: geohash.Neighbors8Dict 'test'\n    test 963 delattr: None\n    test 964 classnaming: False\n    test 965 classnaming: True\n\n    testing unregister (pygeodesy.named, 26.01.14)\n    test 966 Conics: 1\n    test 967 Conics: 8\n    test 968 Conics.Be08Lb.unregister: None\n    test 969 Conics.Be72Lb.unregister: None\n    test 970 Conics.Fr93Lb.unregister: None\n    test 971 Conics.MaNLb.unregister: None\n    test 972 Conics.MxLb.unregister: None\n    test 973 Conics.PyT_Lb.unregister: None\n    test 974 Conics.USA_Lb.unregister: None\n    test 975 Conics.WRF_Lb.unregister: None\n    test 976 Conics: 0\n\n    test 977 Datums: 6\n    test 978 Datums: 18\n    test 979 Datums.unregister(BD72): None\n    test 980 Datums.unregister(DHDN): None\n    test 981 Datums.unregister(ED50): None\n    test 982 Datums.unregister(GDA2020): None\n    test 983 Datums.unregister(GRS80): None\n    test 984 Datums.unregister(Irl1975): None\n    test 985 Datums.unregister(Krassovski1940): None\n    test 986 Datums.unregister(Krassowsky1940): None\n    test 987 Datums.unregister(MGI): None\n    test 988 Datums.unregister(NAD27): None\n    test 989 Datums.unregister(NAD83): None\n    test 990 Datums.unregister(NTF): None\n    test 991 Datums.unregister(OSGB36): None\n    test 992 Datums.unregister(Potsdam): None\n    test 993 Datums.unregister(Sphere): None\n    test 994 Datums.unregister(TokyoJapan): None\n    test 995 Datums.unregister(WGS72): None\n    test 996 Datums.unregister(WGS84): None\n    test 997 Datums: 0\n\n    test 998 RefFrames: 32  FAILED, KNOWN, expected 0\n    test 999 RefFrames: 36\n    test 1000 RefFrames.ETRF2000.unregister: None\n    test 1001 RefFrames.ETRF2005.unregister: None\n    test 1002 RefFrames.ETRF2008.unregister: None\n    test 1003 RefFrames.ETRF2014.unregister: None\n    test 1004 RefFrames.ETRF2020.unregister: None\n    test 1005 RefFrames.ETRF88.unregister: None\n    test 1006 RefFrames.ETRF89.unregister: None\n    test 1007 RefFrames.ETRF90.unregister: None\n    test 1008 RefFrames.ETRF91.unregister: None\n    test 1009 RefFrames.ETRF92.unregister: None\n    test 1010 RefFrames.ETRF93.unregister: None\n    test 1011 RefFrames.ETRF94.unregister: None\n    test 1012 RefFrames.ETRF96.unregister: None\n    test 1013 RefFrames.ETRF97.unregister: None\n    test 1014 RefFrames.GDA2020.unregister: None\n    test 1015 RefFrames.GDA94.unregister: None\n    test 1016 RefFrames.ITRF2000.unregister: None\n    test 1017 RefFrames.ITRF2005.unregister: None\n    test 1018 RefFrames.ITRF2008.unregister: None\n    test 1019 RefFrames.ITRF2014.unregister: None\n    test 1020 RefFrames.ITRF2020.unregister: None\n    test 1021 RefFrames.ITRF88.unregister: None\n    test 1022 RefFrames.ITRF89.unregister: None\n    test 1023 RefFrames.ITRF90.unregister: None\n    test 1024 RefFrames.ITRF91.unregister: None\n    test 1025 RefFrames.ITRF92.unregister: None\n    test 1026 RefFrames.ITRF93.unregister: None\n    test 1027 RefFrames.ITRF94.unregister: None\n    test 1028 RefFrames.ITRF96.unregister: None\n    test 1029 RefFrames.ITRF97.unregister: None\n    test 1030 RefFrames.NAD83.unregister: None\n    test 1031 RefFrames.NAD83cors96.unregister: None\n    test 1032 RefFrames.WGS84.unregister: None\n    test 1033 RefFrames.WGS84g1150.unregister: None\n    test 1034 RefFrames.WGS84g1674.unregister: None\n    test 1035 RefFrames.WGS84g1762.unregister: None\n    test 1036 RefFrames: 0\n\n    test 1037 Ellipsoids: 12\n    test 1038 Ellipsoids: 49\n    test 1039 Ellipsoids.Airy1830.unregister: None\n    test 1040 Ellipsoids.AiryModified.unregister: None\n    test 1041 Ellipsoids.ATS1977.unregister: None\n    test 1042 Ellipsoids.Australia1966.unregister: None\n    test 1043 Ellipsoids.Bessel1841.unregister: None\n    test 1044 Ellipsoids.BesselModified.unregister: None\n    test 1045 Ellipsoids.CGCS2000.unregister: None\n    test 1046 Ellipsoids.Clarke1866.unregister: None\n    test 1047 Ellipsoids.Clarke1880.unregister: None\n    test 1048 Ellipsoids.Clarke1880IGN.unregister: None\n    test 1049 Ellipsoids.Clarke1880Mod.unregister: None\n    test 1050 Ellipsoids.CPM1799.unregister: None\n    test 1051 Ellipsoids.Delambre1810.unregister: None\n    test 1052 Ellipsoids.Engelis1985.unregister: None\n    test 1053 Ellipsoids.Everest1969.unregister: None\n    test 1054 Ellipsoids.Everest1975.unregister: None\n    test 1055 Ellipsoids.Fisher1968.unregister: None\n    test 1056 Ellipsoids.GEM10C.unregister: None\n    test 1057 Ellipsoids.GPES.unregister: None\n    test 1058 Ellipsoids.GRS67.unregister: None\n    test 1059 Ellipsoids.GRS80.unregister: None\n    test 1060 Ellipsoids.Helmert1906.unregister: None\n    test 1061 Ellipsoids.IAU76.unregister: None\n    test 1062 Ellipsoids.IERS1989.unregister: None\n    test 1063 Ellipsoids.IERS1992TOPEX.unregister: None\n    test 1064 Ellipsoids.IERS2003.unregister: None\n    test 1065 Ellipsoids.Intl1924.unregister: None\n    test 1066 Ellipsoids.Intl1967.unregister: None\n    test 1067 Ellipsoids.Krassovski1940.unregister: None\n    test 1068 Ellipsoids.Krassowsky1940.unregister: None\n    test 1069 Ellipsoids.Maupertuis1738.unregister: None\n    test 1070 Ellipsoids.Mercury1960.unregister: None\n    test 1071 Ellipsoids.Mercury1968Mod.unregister: None\n    test 1072 Ellipsoids.NWL1965.unregister: None\n    test 1073 Ellipsoids.OSU86F.unregister: None\n    test 1074 Ellipsoids.OSU91A.unregister: None\n    test 1075 Ellipsoids.Plessis1817.unregister: None\n    test 1076 Ellipsoids.PZ90.unregister: None\n    test 1077 Ellipsoids.SGS85.unregister: None\n    test 1078 Ellipsoids.SoAmerican1969.unregister: None\n    test 1079 Ellipsoids.Sphere.unregister: None\n    test 1080 Ellipsoids.SphereAuthalic.unregister: None\n    test 1081 Ellipsoids.SpherePopular.unregister: None\n    test 1082 Ellipsoids.Struve1860.unregister: None\n    test 1083 Ellipsoids.WGS60.unregister: None\n    test 1084 Ellipsoids.WGS66.unregister: None\n    test 1085 Ellipsoids.WGS72.unregister: None\n    test 1086 Ellipsoids.WGS84.unregister: None\n    test 1087 Ellipsoids.WGS84_NGS.unregister: None\n    test 1088 Ellipsoids: 0\n\n    test 1089 Transforms: 16\n    test 1090 Transforms: 20\n    test 1091 Transforms.BD72.unregister: None\n    test 1092 Transforms.Bessel1841.unregister: None\n    test 1093 Transforms.Clarke1866.unregister: None\n    test 1094 Transforms.DHDN.unregister: None\n    test 1095 Transforms.DHDNE.unregister: None\n    test 1096 Transforms.DHDNW.unregister: None\n    test 1097 Transforms.ED50.unregister: None\n    test 1098 Transforms.Identity.unregister: None\n    test 1099 Transforms.Irl1965.unregister: None\n    test 1100 Transforms.Irl1975.unregister: None\n    test 1101 Transforms.Krassovski1940.unregister: None\n    test 1102 Transforms.Krassowsky1940.unregister: None\n    test 1103 Transforms.MGI.unregister: None\n    test 1104 Transforms.NAD27.unregister: None\n    test 1105 Transforms.NAD83.unregister: None\n    test 1106 Transforms.NTF.unregister: None\n    test 1107 Transforms.OSGB36.unregister: None\n    test 1108 Transforms.TokyoJapan.unregister: None\n    test 1109 Transforms.WGS72.unregister: None\n    test 1110 Transforms.WGS84.unregister: None\n    test 1111 Transforms: 0\n\n    test 1112 nameof: KsOrder\n\n    10 of 1112 testNamed.py tests (0.9%) FAILED, ALL KNOWN (pygeodesy 26.3.26 Python 3.11.9 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 1.24.2 scipy 1.10.1 Math 2 macOS 26.3.1 isLazy 0 -W  default) 73.321 ms\nrunning /usr/local/bin/p....n3.11 -W default ~/PyGeodesy/test/testNamedTuples.py\n\n    testing testNamedTuples.py 25.12.06\n    test 1 pygeodesy.albers: Albers7Tuple(x=0.5, y=0.5, lat=0.5, lon=0.5, gamma=0.5, scale=0.5, datum=0.5)\n    test 2 pygeodesy.albers: Albers7Tuple(x=Meter, y=Meter, lat=Lat, lon=Lon, gamma=Bearing, scale=_Pass, datum=_Pass)\n    test 3 pygeodesy.albers.Albers7Tuple.x: 0.5\n    test 4 pygeodesy.albers.Albers7Tuple.y: 0.5\n    test 5 pygeodesy.albers.Albers7Tuple.lat: 0.5\n    test 6 pygeodesy.albers.Albers7Tuple.lon: 0.5\n    test 7 pygeodesy.albers.Albers7Tuple.gamma: 0.5\n    test 8 pygeodesy.albers.Albers7Tuple.scale: 0.5\n    test 9 pygeodesy.albers.Albers7Tuple.datum: 0.5\n    test 10 pygeodesy.albers.Albers7Tuple._validated: True\n    test 11 pygeodesy.albers.Albers7Tuple._validated: True\n    test 12 pygeodesy.angles: _Ang3Tuple(Ang=Ang, Ang=Ang, Ang=_Pass)\n    test 13 pygeodesy.angles._Ang3Tuple.Ang: 0.5\n    test 14 pygeodesy.angles._Ang3Tuple.Ang: 0.5\n    test 15 pygeodesy.angles._Ang3Tuple.Ang: 0.5\n    test 16 pygeodesy.angles._Ang3Tuple._validated: True\n    test 17 pygeodesy.angles._Ang3Tuple._validated: True\n    test 18 pygeodesy.azimuthal: Azimuthal7Tuple(x=0.5, y=0.5, lat=0.5, lon=0.5, azimuth=0.5, scale=0.5, datum=0.5)\n    test 19 pygeodesy.azimuthal: Azimuthal7Tuple(x=Easting, y=Northing, lat=Lat_, lon=Lon_, azimuth=Azimuth, scale=Scalar, datum=_Pass)\n    test 20 pygeodesy.azimuthal.Azimuthal7Tuple.x: 0.5\n    test 21 pygeodesy.azimuthal.Azimuthal7Tuple.y: 0.5\n    test 22 pygeodesy.azimuthal.Azimuthal7Tuple.lat: 0.5\n    test 23 pygeodesy.azimuthal.Azimuthal7Tuple.lon: 0.5\n    test 24 pygeodesy.azimuthal.Azimuthal7Tuple.azimuth: 0.5\n    test 25 pygeodesy.azimuthal.Azimuthal7Tuple.scale: 0.5\n    test 26 pygeodesy.azimuthal.Azimuthal7Tuple.datum: 0.5\n    test 27 pygeodesy.azimuthal.Azimuthal7Tuple._validated: True\n    test 28 pygeodesy.azimuthal.Azimuthal7Tuple._validated: True\n    test 29 pygeodesy.cartesianBase: RadiusThetaPhi3Tuple(r=0.5, theta=0.5, phi=0.5)\n    test 30 pygeodesy.cartesianBase: RadiusThetaPhi3Tuple(r=Meter, theta=_Pass, phi=_Pass)\n    test 31 pygeodesy.cartesianBase.RadiusThetaPhi3Tuple.r: 0.5\n    test 32 pygeodesy.cartesianBase.RadiusThetaPhi3Tuple.theta: 0.5\n    test 33 pygeodesy.cartesianBase.RadiusThetaPhi3Tuple.phi: 0.5\n    test 34 pygeodesy.cartesianBase.RadiusThetaPhi3Tuple._validated: True\n    test 35 pygeodesy.cartesianBase.RadiusThetaPhi3Tuple._validated: True\n    test 36 pygeodesy.clipy: ClipCS4Tuple(start=0.5, end=0.5, i=0, j=0)\n    test 37 pygeodesy.clipy: ClipCS4Tuple(start=_Pass, end=_Pass, i=Number_, j=Number_)\n    test 38 pygeodesy.clipy.ClipCS4Tuple.start: 0.5\n    test 39 pygeodesy.clipy.ClipCS4Tuple.end: 0.5\n    test 40 pygeodesy.clipy.ClipCS4Tuple.i: 0.5\n    test 41 pygeodesy.clipy.ClipCS4Tuple.j: 0.5\n    test 42 pygeodesy.clipy.ClipCS4Tuple._validated: True\n    test 43 pygeodesy.clipy.ClipCS4Tuple._validated: True\n    test 44 pygeodesy.clipy: ClipFHP4Tuple(lat=0.5, lon=0.5, height=0.5, clipid=0)\n    test 45 pygeodesy.clipy: ClipFHP4Tuple(lat=Lat, lon=Lon, height=_Pass, clipid=Number_)\n    test 46 pygeodesy.clipy.ClipFHP4Tuple.lat: 0.5\n    test 47 pygeodesy.clipy.ClipFHP4Tuple.lon: 0.5\n    test 48 pygeodesy.clipy.ClipFHP4Tuple.height: 0.5\n    test 49 pygeodesy.clipy.ClipFHP4Tuple.clipid: 0.5\n    test 50 pygeodesy.clipy.ClipFHP4Tuple._validated: True\n    test 51 pygeodesy.clipy.ClipFHP4Tuple._validated: True\n    test 52 pygeodesy.clipy: ClipGH4Tuple(lat=0.5, lon=0.5, height=0.5, clipid=0)\n    test 53 pygeodesy.clipy: ClipGH4Tuple(lat=Lat, lon=Lon, height=_Pass, clipid=Number_)\n    test 54 pygeodesy.clipy.ClipGH4Tuple.lat: 0.5\n    test 55 pygeodesy.clipy.ClipGH4Tuple.lon: 0.5\n    test 56 pygeodesy.clipy.ClipGH4Tuple.height: 0.5\n    test 57 pygeodesy.clipy.ClipGH4Tuple.clipid: 0.5\n    test 58 pygeodesy.clipy.ClipGH4Tuple._validated: True\n    test 59 pygeodesy.clipy.ClipGH4Tuple._validated: True\n    test 60 pygeodesy.clipy: ClipLB6Tuple(start=0.5, end=0.5, i=0, fi=0.5, fj=0.5, j=0)\n    test 61 pygeodesy.clipy: ClipLB6Tuple(start=_Pass, end=_Pass, i=Number_, fi=_Pass, fj=_Pass, j=Number_)\n    test 62 pygeodesy.clipy.ClipLB6Tuple.start: 0.5\n    test 63 pygeodesy.clipy.ClipLB6Tuple.end: 0.5\n    test 64 pygeodesy.clipy.ClipLB6Tuple.i: 0.5\n    test 65 pygeodesy.clipy.ClipLB6Tuple.fi: 0.5\n    test 66 pygeodesy.clipy.ClipLB6Tuple.fj: 0.5\n    test 67 pygeodesy.clipy.ClipLB6Tuple.j: 0.5\n    test 68 pygeodesy.clipy.ClipLB6Tuple._validated: True\n    test 69 pygeodesy.clipy.ClipLB6Tuple._validated: True\n    test 70 pygeodesy.clipy: ClipSH3Tuple(start=0.5, end=0.5, original=True)\n    test 71 pygeodesy.clipy: ClipSH3Tuple(start=_Pass, end=_Pass, original=Bool)\n    test 72 pygeodesy.clipy.ClipSH3Tuple.start: 0.5\n    test 73 pygeodesy.clipy.ClipSH3Tuple.end: 0.5\n    test 74 pygeodesy.clipy.ClipSH3Tuple.original: 0.5\n    test 75 pygeodesy.clipy.ClipSH3Tuple._validated: True\n    test 76 pygeodesy.clipy.ClipSH3Tuple._validated: True\n    test 77 pygeodesy.css: EasNorAziRk4Tuple(easting=0.5, northing=0.5, azimuth=0.5, reciprocal=0.5)\n    test 78 pygeodesy.css: EasNorAziRk4Tuple(easting=Easting, northing=Northing, azimuth=Azimuth, reciprocal=Scalar)\n    test 79 pygeodesy.css.EasNorAziRk4Tuple.easting: 0.5\n    test 80 pygeodesy.css.EasNorAziRk4Tuple.northing: 0.5\n    test 81 pygeodesy.css.EasNorAziRk4Tuple.azimuth: 0.5\n    test 82 pygeodesy.css.EasNorAziRk4Tuple.reciprocal: 0.5\n    test 83 pygeodesy.css.EasNorAziRk4Tuple._validated: True\n    test 84 pygeodesy.css.EasNorAziRk4Tuple._validated: True\n    test 85 pygeodesy.css: EasNorAziRkEqu6Tuple(easting=0.5, northing=0.5, azimuth=0.5, reciprocal=0.5, equatorarc=0.5, equatorazimuth=0.5)\n    test 86 pygeodesy.css: EasNorAziRkEqu6Tuple(easting=Easting, northing=Northing, azimuth=Azimuth, reciprocal=Scalar, equatorarc=Degrees, equatorazimuth=Azimuth)\n    test 87 pygeodesy.css.EasNorAziRkEqu6Tuple.easting: 0.5\n    test 88 pygeodesy.css.EasNorAziRkEqu6Tuple.northing: 0.5\n    test 89 pygeodesy.css.EasNorAziRkEqu6Tuple.azimuth: 0.5\n    test 90 pygeodesy.css.EasNorAziRkEqu6Tuple.reciprocal: 0.5\n    test 91 pygeodesy.css.EasNorAziRkEqu6Tuple.equatorarc: 0.5\n    test 92 pygeodesy.css.EasNorAziRkEqu6Tuple.equatorazimuth: 0.5\n    test 93 pygeodesy.css.EasNorAziRkEqu6Tuple._validated: True\n    test 94 pygeodesy.css.EasNorAziRkEqu6Tuple._validated: True\n    test 95 pygeodesy.css: LatLonAziRk4Tuple(lat=0.5, lon=0.5, azimuth=0.5, reciprocal=0.5)\n    test 96 pygeodesy.css: LatLonAziRk4Tuple(lat=Lat_, lon=Lon_, azimuth=Azimuth, reciprocal=Scalar)\n    test 97 pygeodesy.css.LatLonAziRk4Tuple.lat: 0.5\n    test 98 pygeodesy.css.LatLonAziRk4Tuple.lon: 0.5\n    test 99 pygeodesy.css.LatLonAziRk4Tuple.azimuth: 0.5\n    test 100 pygeodesy.css.LatLonAziRk4Tuple.reciprocal: 0.5\n    test 101 pygeodesy.css.LatLonAziRk4Tuple._validated: True\n    test 102 pygeodesy.css.LatLonAziRk4Tuple._validated: True\n    test 103 pygeodesy.ecef: Ecef9Tuple(x=0.5, y=0.5, z=0.5, lat=0.5, lon=0.5, height=0.5, C=0, M=0.5, datum=0.5)\n    test 104 pygeodesy.ecef: Ecef9Tuple(x=Meter, y=Meter, z=Meter, lat=Lat, lon=Lon, height=Height, C=Int, M=_Pass, datum=_Pass)\n    test 105 pygeodesy.ecef.Ecef9Tuple.x: 0.5\n    test 106 pygeodesy.ecef.Ecef9Tuple.y: 0.5\n    test 107 pygeodesy.ecef.Ecef9Tuple.z: 0.5\n    test 108 pygeodesy.ecef.Ecef9Tuple.lat: 0.5\n    test 109 pygeodesy.ecef.Ecef9Tuple.lon: 0.5\n    test 110 pygeodesy.ecef.Ecef9Tuple.height: 0.5\n    test 111 pygeodesy.ecef.Ecef9Tuple.C: 0.5\n    test 112 pygeodesy.ecef.Ecef9Tuple.M: 0.5\n    test 113 pygeodesy.ecef.Ecef9Tuple.datum: 0.5\n    test 114 pygeodesy.ecef.Ecef9Tuple._validated: True\n    test 115 pygeodesy.ecef.Ecef9Tuple._validated: True\n    test 116 pygeodesy.ecef: EcefMatrix(_0_0_=0.5, _0_1_=0.5, _0_2_=0.5, _1_0_=0.5, _1_1_=0.5, _1_2_=0.5, _2_0_=0.5, _2_1_=0.5, _2_2_=0.5)\n    test 117 pygeodesy.ecef: EcefMatrix(_0_0_=Scalar, _0_1_=Scalar, _0_2_=Scalar, _1_0_=Scalar, _1_1_=Scalar, _1_2_=Scalar, _2_0_=Scalar, _2_1_=Scalar, _2_2_=Scalar)\n    test 118 pygeodesy.ecef.EcefMatrix._0_0_: 0.5\n    test 119 pygeodesy.ecef.EcefMatrix._0_1_: 0.5\n    test 120 pygeodesy.ecef.EcefMatrix._0_2_: 0.5\n    test 121 pygeodesy.ecef.EcefMatrix._1_0_: 0.5\n    test 122 pygeodesy.ecef.EcefMatrix._1_1_: 0.5\n    test 123 pygeodesy.ecef.EcefMatrix._1_2_: 0.5\n    test 124 pygeodesy.ecef.EcefMatrix._2_0_: 0.5\n    test 125 pygeodesy.ecef.EcefMatrix._2_1_: 0.5\n    test 126 pygeodesy.ecef.EcefMatrix._2_2_: 0.5\n    test 127 pygeodesy.ecef.EcefMatrix._validated: True\n    test 128 pygeodesy.ecef.EcefMatrix._validated: True\n    test 129 pygeodesy.elevations: Elevation2Tuple(elevation=0.5, data_source='0.5')\n    test 130 pygeodesy.elevations: Elevation2Tuple(elevation=Meter, data_source=Str)\n    test 131 pygeodesy.elevations.Elevation2Tuple.elevation: 0.5\n    test 132 pygeodesy.elevations.Elevation2Tuple.data_source: 0.5\n    test 133 pygeodesy.elevations.Elevation2Tuple._validated: True\n    test 134 pygeodesy.elevations.Elevation2Tuple._validated: True\n    test 135 pygeodesy.elevations: GeoidHeight2Tuple(height=0.5, model_name='0.5')\n    test 136 pygeodesy.elevations: GeoidHeight2Tuple(height=Meter, model_name=Str)\n    test 137 pygeodesy.elevations.GeoidHeight2Tuple.height: 0.5\n    test 138 pygeodesy.elevations.GeoidHeight2Tuple.model_name: 0.5\n    test 139 pygeodesy.elevations.GeoidHeight2Tuple._validated: True\n    test 140 pygeodesy.elevations.GeoidHeight2Tuple._validated: True\n    test 141 pygeodesy.ellipsoids: Curvature2Tuple(meridional=0.5, prime_vertical=0.5)\n    test 142 pygeodesy.ellipsoids: Curvature2Tuple(meridional=Meter, prime_vertical=Meter)\n    test 143 pygeodesy.ellipsoids.Curvature2Tuple.meridional: 0.5\n    test 144 pygeodesy.ellipsoids.Curvature2Tuple.prime_vertical: 0.5\n    test 145 pygeodesy.ellipsoids.Curvature2Tuple._validated: True\n    test 146 pygeodesy.ellipsoids.Curvature2Tuple._validated: True\n    test 147 pygeodesy.ellipsoids: a_f2Tuple(a=0.5, f=0.5)\n    test 148 pygeodesy.ellipsoids: a_f2Tuple(a=_Pass, f=_Pass)\n    test 149 pygeodesy.ellipsoids.a_f2Tuple.a: 0.5\n    test 150 pygeodesy.ellipsoids.a_f2Tuple.f: 0.5\n    test 151 pygeodesy.ellipsoids.a_f2Tuple._validated: True\n    test 152 pygeodesy.ellipsoids.a_f2Tuple._validated: True\n    test 153 pygeodesy.elliptic: Elliptic3Tuple(sn=0.5, cn=0.5, dn=0.5)\n    test 154 pygeodesy.elliptic: Elliptic3Tuple(sn=Scalar, cn=Scalar, dn=Scalar)\n    test 155 pygeodesy.elliptic.Elliptic3Tuple.sn: 0.5\n    test 156 pygeodesy.elliptic.Elliptic3Tuple.cn: 0.5\n    test 157 pygeodesy.elliptic.Elliptic3Tuple.dn: 0.5\n    test 158 pygeodesy.elliptic.Elliptic3Tuple._validated: True\n    test 159 pygeodesy.elliptic.Elliptic3Tuple._validated: True\n    test 160 pygeodesy.formy: Radical2Tuple(ratio=0.5, xline=0.5)\n    test 161 pygeodesy.formy: Radical2Tuple(ratio=Scalar, xline=Scalar)\n    test 162 pygeodesy.formy.Radical2Tuple.ratio: 0.5\n    test 163 pygeodesy.formy.Radical2Tuple.xline: 0.5\n    test 164 pygeodesy.formy.Radical2Tuple._validated: True\n    test 165 pygeodesy.formy.Radical2Tuple._validated: True\n    test 166 pygeodesy.frechet: Frechet6Tuple(fd=0.5, fi1=0.5, fi2=0.5, r=0, n=0, units='test')\n    test 167 pygeodesy.frechet: Frechet6Tuple(fd=_Pass, fi1=FIx, fi2=FIx, r=Number_, n=Number_, units=_Pass)\n    test 168 pygeodesy.frechet.Frechet6Tuple.fd: 0.5\n    test 169 pygeodesy.frechet.Frechet6Tuple.fi1: 0.5\n    test 170 pygeodesy.frechet.Frechet6Tuple.fi2: 0.5\n    test 171 pygeodesy.frechet.Frechet6Tuple.r: 0.5\n    test 172 pygeodesy.frechet.Frechet6Tuple.n: 0.5\n    test 173 pygeodesy.frechet.Frechet6Tuple.units: <bound method _NamedTuple.units of Frechet6Tuple(fd=0.5, fi1=0.5, fi2=0.5, r=0.5, n=0.5, units='test')>\n    test 174 pygeodesy.frechet.Frechet6Tuple._validated: True\n    test 175 pygeodesy.frechet.Frechet6Tuple._validated: True\n    test 176 pygeodesy.fsums: Fsum2Tuple(fsum=0.5, residual=0.5)\n    test 177 pygeodesy.fsums: Fsum2Tuple(fsum=_Float_Int, residual=_Float_Int)\n    test 178 pygeodesy.fsums.Fsum2Tuple.fsum: 0.5\n    test 179 pygeodesy.fsums.Fsum2Tuple.residual: 0.5\n    test 180 pygeodesy.fsums.Fsum2Tuple._validated: True\n    test 181 pygeodesy.fsums.Fsum2Tuple._validated: True\n    test 182 pygeodesy.geod3solve: Geod3Solve8Tuple(bet1=Deg, omg1=Deg, alp1=Deg, bet2=Deg, omg2=Deg, alp2=Deg, s12=Meter, a12=Deg)\n    test 183 pygeodesy.geod3solve.Geod3Solve8Tuple.bet1: 0.5\n    test 184 pygeodesy.geod3solve.Geod3Solve8Tuple.omg1: 0.5\n    test 185 pygeodesy.geod3solve.Geod3Solve8Tuple.alp1: 0.5\n    test 186 pygeodesy.geod3solve.Geod3Solve8Tuple.bet2: 0.5\n    test 187 pygeodesy.geod3solve.Geod3Solve8Tuple.omg2: 0.5\n    test 188 pygeodesy.geod3solve.Geod3Solve8Tuple.alp2: 0.5\n    test 189 pygeodesy.geod3solve.Geod3Solve8Tuple.s12: 0.5\n    test 190 pygeodesy.geod3solve.Geod3Solve8Tuple.a12: 0.5\n    test 191 pygeodesy.geod3solve.Geod3Solve8Tuple._validated: True\n    test 192 pygeodesy.geod3solve.Geod3Solve8Tuple._validated: True\n    test 193 pygeodesy.geodesici: Intersect7Tuple(A=0.5, B=0.5, sAB=0.5, aAB=0.5, c=0, kA=0, kB=0)\n    test 194 pygeodesy.geodesici: Intersect7Tuple(A=_Pass, B=_Pass, sAB=Meter, aAB=Degrees, c=Int, kA=Int, kB=Int)\n    test 195 pygeodesy.geodesici.Intersect7Tuple.A: 0.5\n    test 196 pygeodesy.geodesici.Intersect7Tuple.B: 0.5\n    test 197 pygeodesy.geodesici.Intersect7Tuple.sAB: 0.5\n    test 198 pygeodesy.geodesici.Intersect7Tuple.aAB: 0.5\n    test 199 pygeodesy.geodesici.Intersect7Tuple.c: 0.5\n    test 200 pygeodesy.geodesici.Intersect7Tuple.kA: 0.5\n    test 201 pygeodesy.geodesici.Intersect7Tuple.kB: 0.5\n    test 202 pygeodesy.geodesici.Intersect7Tuple._validated: True\n    test 203 pygeodesy.geodesici.Intersect7Tuple._validated: True\n    test 204 pygeodesy.geodesici: Intersectool5Tuple(A=0.5, B=0.5, sAB=0.5, aAB=0.5, c=0)\n    test 205 pygeodesy.geodesici: Intersectool5Tuple(A=_Pass, B=_Pass, sAB=Meter, aAB=Degrees, c=Int)\n    test 206 pygeodesy.geodesici.Intersectool5Tuple.A: 0.5\n    test 207 pygeodesy.geodesici.Intersectool5Tuple.B: 0.5\n    test 208 pygeodesy.geodesici.Intersectool5Tuple.sAB: 0.5\n    test 209 pygeodesy.geodesici.Intersectool5Tuple.aAB: 0.5\n    test 210 pygeodesy.geodesici.Intersectool5Tuple.c: 0.5\n    test 211 pygeodesy.geodesici.Intersectool5Tuple._validated: True\n    test 212 pygeodesy.geodesici.Intersectool5Tuple._validated: True\n    test 213 pygeodesy.geodesici: Intersector5Tuple(A=0.5, B=0.5, sAB=0.5, aAB=0.5, c=0)\n    test 214 pygeodesy.geodesici: Intersector5Tuple(A=_Pass, B=_Pass, sAB=Meter, aAB=Degrees, c=Int)\n    test 215 pygeodesy.geodesici.Intersector5Tuple.A: 0.5\n    test 216 pygeodesy.geodesici.Intersector5Tuple.B: 0.5\n    test 217 pygeodesy.geodesici.Intersector5Tuple.sAB: 0.5\n    test 218 pygeodesy.geodesici.Intersector5Tuple.aAB: 0.5\n    test 219 pygeodesy.geodesici.Intersector5Tuple.c: 0.5\n    test 220 pygeodesy.geodesici.Intersector5Tuple._validated: True\n    test 221 pygeodesy.geodesici.Intersector5Tuple._validated: True\n    test 222 pygeodesy.geodesici: Middle5Tuple(A=0.5, B=0.5, sMM=0.5, aMM=0.5, c=0)\n    test 223 pygeodesy.geodesici: Middle5Tuple(A=_Pass, B=_Pass, sMM=Meter, aMM=Degrees, c=Int)\n    test 224 pygeodesy.geodesici.Middle5Tuple.A: 0.5\n    test 225 pygeodesy.geodesici.Middle5Tuple.B: 0.5\n    test 226 pygeodesy.geodesici.Middle5Tuple.sMM: 0.5\n    test 227 pygeodesy.geodesici.Middle5Tuple.aMM: 0.5\n    test 228 pygeodesy.geodesici.Middle5Tuple.c: 0.5\n    test 229 pygeodesy.geodesici.Middle5Tuple._validated: True\n    test 230 pygeodesy.geodesici.Middle5Tuple._validated: True\n    test 231 pygeodesy.geodsolve: GeodSolve12Tuple(lat1=0.5, lon1=0.5, azi1=0.5, lat2=0.5, lon2=0.5, azi2=0.5, s12=0.5, a12=0.5, m12=0.5, M12=0.5, M21=0.5, S12=0.5)\n    test 232 pygeodesy.geodsolve: GeodSolve12Tuple(lat1=_Lat, lon1=_Lon, azi1=Azimuth, lat2=_Lat, lon2=_Lon, azi2=Azimuth, s12=Meter, a12=Degrees, m12=_Pass, M12=_Pass, M21=_Pass, S12=Meter2)\n    test 233 pygeodesy.geodsolve.GeodSolve12Tuple.lat1: 0.5\n    test 234 pygeodesy.geodsolve.GeodSolve12Tuple.lon1: 0.5\n    test 235 pygeodesy.geodsolve.GeodSolve12Tuple.azi1: 0.5\n    test 236 pygeodesy.geodsolve.GeodSolve12Tuple.lat2: 0.5\n    test 237 pygeodesy.geodsolve.GeodSolve12Tuple.lon2: 0.5\n    test 238 pygeodesy.geodsolve.GeodSolve12Tuple.azi2: 0.5\n    test 239 pygeodesy.geodsolve.GeodSolve12Tuple.s12: 0.5\n    test 240 pygeodesy.geodsolve.GeodSolve12Tuple.a12: 0.5\n    test 241 pygeodesy.geodsolve.GeodSolve12Tuple.m12: 0.5\n    test 242 pygeodesy.geodsolve.GeodSolve12Tuple.M12: 0.5\n    test 243 pygeodesy.geodsolve.GeodSolve12Tuple.M21: 0.5\n    test 244 pygeodesy.geodsolve.GeodSolve12Tuple.S12: 0.5\n    test 245 pygeodesy.geodsolve.GeodSolve12Tuple._validated: True\n    test 246 pygeodesy.geodsolve.GeodSolve12Tuple._validated: True\n    test 247 pygeodesy.geohash: Resolutions2Tuple(res1=0.5, res2=0.5)\n    test 248 pygeodesy.geohash: Resolutions2Tuple(res1=Degrees_, res2=Degrees_)\n    test 249 pygeodesy.geohash.Resolutions2Tuple.res1: 0.5\n    test 250 pygeodesy.geohash.Resolutions2Tuple.res2: 0.5\n    test 251 pygeodesy.geohash.Resolutions2Tuple._validated: True\n    test 252 pygeodesy.geohash.Resolutions2Tuple._validated: True\n    test 253 pygeodesy.geohash: Sizes3Tuple(height=0.5, width=0.5, radius=0.5)\n    test 254 pygeodesy.geohash: Sizes3Tuple(height=Meter, width=Meter, radius=Meter)\n    test 255 pygeodesy.geohash.Sizes3Tuple.height: 0.5\n    test 256 pygeodesy.geohash.Sizes3Tuple.width: 0.5\n    test 257 pygeodesy.geohash.Sizes3Tuple.radius: 0.5\n    test 258 pygeodesy.geohash.Sizes3Tuple._validated: True\n    test 259 pygeodesy.geohash.Sizes3Tuple._validated: True\n    test 260 pygeodesy.geoids: GeoidHeight5Tuple(lat=0.5, lon=0.5, egm84=0.5, egm96=0.5, egm2008=0.5)\n    test 261 pygeodesy.geoids: GeoidHeight5Tuple(lat=Lat, lon=Lon, egm84=Height, egm96=Height, egm2008=Height)\n    test 262 pygeodesy.geoids.GeoidHeight5Tuple.lat: 0.5\n    test 263 pygeodesy.geoids.GeoidHeight5Tuple.lon: 0.5\n    test 264 pygeodesy.geoids.GeoidHeight5Tuple.egm84: 0.5\n    test 265 pygeodesy.geoids.GeoidHeight5Tuple.egm96: 0.5\n    test 266 pygeodesy.geoids.GeoidHeight5Tuple.egm2008: 0.5\n    test 267 pygeodesy.geoids.GeoidHeight5Tuple._validated: True\n    test 268 pygeodesy.geoids.GeoidHeight5Tuple._validated: True\n    test 269 pygeodesy.hausdorff: Hausdorff6Tuple(hd=0.5, i=0, j=0, mn=0, md=0.5, units='test')\n    test 270 pygeodesy.hausdorff: Hausdorff6Tuple(hd=_Pass, i=Number_, j=Number_, mn=Number_, md=_Pass, units=_Pass)\n    test 271 pygeodesy.hausdorff.Hausdorff6Tuple.hd: 0.5\n    test 272 pygeodesy.hausdorff.Hausdorff6Tuple.i: 0.5\n    test 273 pygeodesy.hausdorff.Hausdorff6Tuple.j: 0.5\n    test 274 pygeodesy.hausdorff.Hausdorff6Tuple.mn: 0.5\n    test 275 pygeodesy.hausdorff.Hausdorff6Tuple.md: 0.5\n    test 276 pygeodesy.hausdorff.Hausdorff6Tuple.units: <bound method _NamedTuple.units of Hausdorff6Tuple(hd=0.5, i=0.5, j=0.5, mn=0.5, md=0.5, units='test')>\n    test 277 pygeodesy.hausdorff.Hausdorff6Tuple._validated: True\n    test 278 pygeodesy.hausdorff.Hausdorff6Tuple._validated: True\n    test 279 pygeodesy.karney: Area3Tuple(number=0, perimeter=0.5, area=0.5)\n    test 280 pygeodesy.karney: Area3Tuple(number=Number_, perimeter=Meter, area=Meter2)\n    test 281 pygeodesy.karney.Area3Tuple.number: 0.5\n    test 282 pygeodesy.karney.Area3Tuple.perimeter: 0.5\n    test 283 pygeodesy.karney.Area3Tuple.area: 0.5\n    test 284 pygeodesy.karney.Area3Tuple._validated: True\n    test 285 pygeodesy.karney.Area3Tuple._validated: True\n    test 286 pygeodesy.karney: Direct9Tuple(a12=0.5, lat2=0.5, lon2=0.5, azi2=0.5, s12=0.5, m12=0.5, M12=0.5, M21=0.5, S12=0.5)\n    test 287 pygeodesy.karney: Direct9Tuple(a12=Azimuth, lat2=_Lat, lon2=_Lon, azi2=Azimuth, s12=Meter, m12=_Pass, M12=_Pass, M21=_Pass, S12=Meter2)\n    test 288 pygeodesy.karney.Direct9Tuple.a12: 0.5\n    test 289 pygeodesy.karney.Direct9Tuple.lat2: 0.5\n    test 290 pygeodesy.karney.Direct9Tuple.lon2: 0.5\n    test 291 pygeodesy.karney.Direct9Tuple.azi2: 0.5\n    test 292 pygeodesy.karney.Direct9Tuple.s12: 0.5\n    test 293 pygeodesy.karney.Direct9Tuple.m12: 0.5\n    test 294 pygeodesy.karney.Direct9Tuple.M12: 0.5\n    test 295 pygeodesy.karney.Direct9Tuple.M21: 0.5\n    test 296 pygeodesy.karney.Direct9Tuple.S12: 0.5\n    test 297 pygeodesy.karney.Direct9Tuple._validated: True\n    test 298 pygeodesy.karney.Direct9Tuple._validated: True\n    test 299 pygeodesy.karney: Inverse10Tuple(a12=0.5, s12=0.5, salp1=0.5, calp1=0.5, salp2=0.5, calp2=0.5, m12=0.5, M12=0.5, M21=0.5, S12=0.5)\n    test 300 pygeodesy.karney: Inverse10Tuple(a12=Azimuth, s12=Meter, salp1=_Pass, calp1=_Pass, salp2=_Pass, calp2=_Pass, m12=_Pass, M12=_Pass, M21=_Pass, S12=Meter2)\n    test 301 pygeodesy.karney.Inverse10Tuple.a12: 0.5\n    test 302 pygeodesy.karney.Inverse10Tuple.s12: 0.5\n    test 303 pygeodesy.karney.Inverse10Tuple.salp1: 0.5\n    test 304 pygeodesy.karney.Inverse10Tuple.calp1: 0.5\n    test 305 pygeodesy.karney.Inverse10Tuple.salp2: 0.5\n    test 306 pygeodesy.karney.Inverse10Tuple.calp2: 0.5\n    test 307 pygeodesy.karney.Inverse10Tuple.m12: 0.5\n    test 308 pygeodesy.karney.Inverse10Tuple.M12: 0.5\n    test 309 pygeodesy.karney.Inverse10Tuple.M21: 0.5\n    test 310 pygeodesy.karney.Inverse10Tuple.S12: 0.5\n    test 311 pygeodesy.karney.Inverse10Tuple._validated: True\n    test 312 pygeodesy.karney.Inverse10Tuple._validated: True\n    test 313 pygeodesy.karney: Rhumb8Tuple(lat1=0.5, lon1=0.5, lat2=0.5, lon2=0.5, azi12=0.5, s12=0.5, S12=0.5, a12=0.5)\n    test 314 pygeodesy.karney: Rhumb8Tuple(lat1=Lat, lon1=Lon, lat2=Lat, lon2=Lon, azi12=Azimuth, s12=Meter, S12=Meter2, a12=Degrees)\n    test 315 pygeodesy.karney.Rhumb8Tuple.lat1: 0.5\n    test 316 pygeodesy.karney.Rhumb8Tuple.lon1: 0.5\n    test 317 pygeodesy.karney.Rhumb8Tuple.lat2: 0.5\n    test 318 pygeodesy.karney.Rhumb8Tuple.lon2: 0.5\n    test 319 pygeodesy.karney.Rhumb8Tuple.azi12: 0.5\n    test 320 pygeodesy.karney.Rhumb8Tuple.s12: 0.5\n    test 321 pygeodesy.karney.Rhumb8Tuple.S12: 0.5\n    test 322 pygeodesy.karney.Rhumb8Tuple.a12: 0.5\n    test 323 pygeodesy.karney.Rhumb8Tuple._validated: True\n    test 324 pygeodesy.karney.Rhumb8Tuple._validated: True\n    test 325 pygeodesy.ltpTuples: Aer4Tuple(azimuth=0.5, elevation=0.5, slantrange=0.5, ltp=0.5)\n    test 326 pygeodesy.ltpTuples: Aer4Tuple(azimuth=Meter, elevation=Meter, slantrange=Meter, ltp=_Pass)\n    test 327 pygeodesy.ltpTuples.Aer4Tuple.azimuth: 0.5\n    test 328 pygeodesy.ltpTuples.Aer4Tuple.elevation: 0.5\n    test 329 pygeodesy.ltpTuples.Aer4Tuple.slantrange: 0.5\n    test 330 pygeodesy.ltpTuples.Aer4Tuple.ltp: 0.5\n    test 331 pygeodesy.ltpTuples.Aer4Tuple._validated: True\n    test 332 pygeodesy.ltpTuples.Aer4Tuple._validated: True\n    test 333 pygeodesy.ltpTuples: Attitude4Tuple(alt=0.5, tilt=0.5, yaw=0.5, roll=0.5)\n    test 334 pygeodesy.ltpTuples: Attitude4Tuple(alt=Meter, tilt=Degrees, yaw=Bearing, roll=Degrees)\n    test 335 pygeodesy.ltpTuples.Attitude4Tuple.alt: 0.5\n    test 336 pygeodesy.ltpTuples.Attitude4Tuple.tilt: 0.5\n    test 337 pygeodesy.ltpTuples.Attitude4Tuple.yaw: 0.5\n    test 338 pygeodesy.ltpTuples.Attitude4Tuple.roll: 0.5\n    test 339 pygeodesy.ltpTuples.Attitude4Tuple._validated: True\n    test 340 pygeodesy.ltpTuples.Attitude4Tuple._validated: True\n    test 341 pygeodesy.ltpTuples: ChLV9Tuple(Y=0.5, X=0.5, h_=0.5, lat=0.5, lon=0.5, height=0.5, ltp=0.5, ecef=0.5, M=0.5)\n    test 342 pygeodesy.ltpTuples: ChLV9Tuple(Y=Meter, X=Meter, h_=Meter, lat=Lat, lon=Lon, height=Height, ltp=_Pass, ecef=_Pass, M=_Pass)\n    test 343 pygeodesy.ltpTuples.ChLV9Tuple.Y: 0.5\n    test 344 pygeodesy.ltpTuples.ChLV9Tuple.X: 0.5\n    test 345 pygeodesy.ltpTuples.ChLV9Tuple.h_: 0.5\n    test 346 pygeodesy.ltpTuples.ChLV9Tuple.lat: 0.5\n    test 347 pygeodesy.ltpTuples.ChLV9Tuple.lon: 0.5\n    test 348 pygeodesy.ltpTuples.ChLV9Tuple.height: 0.5\n    test 349 pygeodesy.ltpTuples.ChLV9Tuple.ltp: 0.5\n    test 350 pygeodesy.ltpTuples.ChLV9Tuple.ecef: 0.5\n    test 351 pygeodesy.ltpTuples.ChLV9Tuple.M: 0.5\n    test 352 pygeodesy.ltpTuples.ChLV9Tuple._validated: True\n    test 353 pygeodesy.ltpTuples.ChLV9Tuple._validated: True\n    test 354 pygeodesy.ltpTuples: ChLVEN2Tuple(E_LV95=0.5, N_LV95=0.5)\n    test 355 pygeodesy.ltpTuples: ChLVEN2Tuple(E_LV95=Meter, N_LV95=Meter)\n    test 356 pygeodesy.ltpTuples.ChLVEN2Tuple.E_LV95: 0.5\n    test 357 pygeodesy.ltpTuples.ChLVEN2Tuple.N_LV95: 0.5\n    test 358 pygeodesy.ltpTuples.ChLVEN2Tuple._validated: True\n    test 359 pygeodesy.ltpTuples.ChLVEN2Tuple._validated: True\n    test 360 pygeodesy.ltpTuples: ChLVYX2Tuple(Y=0.5, X=0.5)\n    test 361 pygeodesy.ltpTuples: ChLVYX2Tuple(Y=Meter, X=Meter)\n    test 362 pygeodesy.ltpTuples.ChLVYX2Tuple.Y: 0.5\n    test 363 pygeodesy.ltpTuples.ChLVYX2Tuple.X: 0.5\n    test 364 pygeodesy.ltpTuples.ChLVYX2Tuple._validated: True\n    test 365 pygeodesy.ltpTuples.ChLVYX2Tuple._validated: True\n    test 366 pygeodesy.ltpTuples: ChLVyx2Tuple(y_LV03=0.5, x_LV03=0.5)\n    test 367 pygeodesy.ltpTuples: ChLVyx2Tuple(y_LV03=Meter, x_LV03=Meter)\n    test 368 pygeodesy.ltpTuples.ChLVyx2Tuple.y_LV03: 0.5\n    test 369 pygeodesy.ltpTuples.ChLVyx2Tuple.x_LV03: 0.5\n    test 370 pygeodesy.ltpTuples.ChLVyx2Tuple._validated: True\n    test 371 pygeodesy.ltpTuples.ChLVyx2Tuple._validated: True\n    test 372 pygeodesy.ltpTuples: Enu4Tuple(east=0.5, north=0.5, up=0.5, ltp=0.5)\n    test 373 pygeodesy.ltpTuples: Enu4Tuple(east=Meter, north=Meter, up=Meter, ltp=_Pass)\n    test 374 pygeodesy.ltpTuples.Enu4Tuple.east: 0.5\n    test 375 pygeodesy.ltpTuples.Enu4Tuple.north: 0.5\n    test 376 pygeodesy.ltpTuples.Enu4Tuple.up: 0.5\n    test 377 pygeodesy.ltpTuples.Enu4Tuple.ltp: 0.5\n    test 378 pygeodesy.ltpTuples.Enu4Tuple._validated: True\n    test 379 pygeodesy.ltpTuples.Enu4Tuple._validated: True\n    test 380 pygeodesy.ltpTuples: Footprint5Tuple(center=0.5, upperleft=0.5, upperight=0.5, loweright=0.5, lowerleft=0.5)\n    test 381 pygeodesy.ltpTuples: Footprint5Tuple(center=_Pass, upperleft=_Pass, upperight=_Pass, loweright=_Pass, lowerleft=_Pass)\n    test 382 pygeodesy.ltpTuples.Footprint5Tuple.center: 0.5\n    test 383 pygeodesy.ltpTuples.Footprint5Tuple.upperleft: 0.5\n    test 384 pygeodesy.ltpTuples.Footprint5Tuple.upperight: 0.5\n    test 385 pygeodesy.ltpTuples.Footprint5Tuple.loweright: 0.5\n    test 386 pygeodesy.ltpTuples.Footprint5Tuple.lowerleft: 0.5\n    test 387 pygeodesy.ltpTuples.Footprint5Tuple._validated: True\n    test 388 pygeodesy.ltpTuples.Footprint5Tuple._validated: True\n    test 389 pygeodesy.ltpTuples: Local9Tuple(x=0.5, y=0.5, z=0.5, lat=0.5, lon=0.5, height=0.5, ltp=0.5, ecef=0.5, M=0.5)\n    test 390 pygeodesy.ltpTuples: Local9Tuple(x=Meter, y=Meter, z=Meter, lat=Lat, lon=Lon, height=Height, ltp=_Pass, ecef=_Pass, M=_Pass)\n    test 391 pygeodesy.ltpTuples.Local9Tuple.x: 0.5\n    test 392 pygeodesy.ltpTuples.Local9Tuple.y: 0.5\n    test 393 pygeodesy.ltpTuples.Local9Tuple.z: 0.5\n    test 394 pygeodesy.ltpTuples.Local9Tuple.lat: 0.5\n    test 395 pygeodesy.ltpTuples.Local9Tuple.lon: 0.5\n    test 396 pygeodesy.ltpTuples.Local9Tuple.height: 0.5\n    test 397 pygeodesy.ltpTuples.Local9Tuple.ltp: 0.5\n    test 398 pygeodesy.ltpTuples.Local9Tuple.ecef: 0.5\n    test 399 pygeodesy.ltpTuples.Local9Tuple.M: 0.5\n    test 400 pygeodesy.ltpTuples.Local9Tuple._validated: True\n    test 401 pygeodesy.ltpTuples.Local9Tuple._validated: True\n    test 402 pygeodesy.ltpTuples: Ned4Tuple(north=0.5, east=0.5, down=0.5, ltp=0.5)\n    test 403 pygeodesy.ltpTuples: Ned4Tuple(north=Meter, east=Meter, down=Meter, ltp=_Pass)\n    test 404 pygeodesy.ltpTuples.Ned4Tuple.north: 0.5\n    test 405 pygeodesy.ltpTuples.Ned4Tuple.east: 0.5\n    test 406 pygeodesy.ltpTuples.Ned4Tuple.down: 0.5\n    test 407 pygeodesy.ltpTuples.Ned4Tuple.ltp: 0.5\n    test 408 pygeodesy.ltpTuples.Ned4Tuple._validated: True\n    test 409 pygeodesy.ltpTuples.Ned4Tuple._validated: True\n    test 410 pygeodesy.ltpTuples: Uvw3Tuple(u=0.5, v=0.5, w=0.5)\n    test 411 pygeodesy.ltpTuples: Uvw3Tuple(u=Meter, v=Meter, w=Meter)\n    test 412 pygeodesy.ltpTuples.Uvw3Tuple.u: 0.5\n    test 413 pygeodesy.ltpTuples.Uvw3Tuple.v: 0.5\n    test 414 pygeodesy.ltpTuples.Uvw3Tuple.w: 0.5\n    test 415 pygeodesy.ltpTuples.Uvw3Tuple._validated: True\n    test 416 pygeodesy.ltpTuples.Uvw3Tuple._validated: True\n    test 417 pygeodesy.ltpTuples: Xyz4Tuple(x=0.5, y=0.5, z=0.5, ltp=0.5)\n    test 418 pygeodesy.ltpTuples: Xyz4Tuple(x=Meter, y=Meter, z=Meter, ltp=_Pass)\n    test 419 pygeodesy.ltpTuples.Xyz4Tuple.x: 0.5\n    test 420 pygeodesy.ltpTuples.Xyz4Tuple.y: 0.5\n    test 421 pygeodesy.ltpTuples.Xyz4Tuple.z: 0.5\n    test 422 pygeodesy.ltpTuples.Xyz4Tuple.ltp: 0.5\n    test 423 pygeodesy.ltpTuples.Xyz4Tuple._validated: True\n    test 424 pygeodesy.ltpTuples.Xyz4Tuple._validated: True\n    test 425 pygeodesy.mgrs: Mgrs4Tuple(zone='0.5', EN='0.5', easting=0.5, northing=0.5)\n    test 426 pygeodesy.mgrs: Mgrs4Tuple(zone=Str, EN=Str, easting=Easting, northing=Northing)\n    test 427 pygeodesy.mgrs.Mgrs4Tuple.zone: 0.5\n    test 428 pygeodesy.mgrs.Mgrs4Tuple.EN: 0.5\n    test 429 pygeodesy.mgrs.Mgrs4Tuple.easting: 0.5\n    test 430 pygeodesy.mgrs.Mgrs4Tuple.northing: 0.5\n    test 431 pygeodesy.mgrs.Mgrs4Tuple._validated: True\n    test 432 pygeodesy.mgrs.Mgrs4Tuple._validated: True\n    test 433 pygeodesy.mgrs: Mgrs6Tuple(zone='0.5', EN='0.5', easting=0.5, northing=0.5, band='0.5', datum=0.5)\n    test 434 pygeodesy.mgrs: Mgrs6Tuple(zone=Str, EN=Str, easting=Easting, northing=Northing, band=Str, datum=_Pass)\n    test 435 pygeodesy.mgrs.Mgrs6Tuple.zone: 0.5\n    test 436 pygeodesy.mgrs.Mgrs6Tuple.EN: 0.5\n    test 437 pygeodesy.mgrs.Mgrs6Tuple.easting: 0.5\n    test 438 pygeodesy.mgrs.Mgrs6Tuple.northing: 0.5\n    test 439 pygeodesy.mgrs.Mgrs6Tuple.band: 0.5\n    test 440 pygeodesy.mgrs.Mgrs6Tuple.datum: 0.5\n    test 441 pygeodesy.mgrs.Mgrs6Tuple._validated: True\n    test 442 pygeodesy.mgrs.Mgrs6Tuple._validated: True\n    test 443 pygeodesy.namedTuples: Bearing2Tuple(initial=0.5, final=0.5)\n    test 444 pygeodesy.namedTuples: Bearing2Tuple(initial=Bearing, final=Bearing)\n    test 445 pygeodesy.namedTuples.Bearing2Tuple.initial: 0.5\n    test 446 pygeodesy.namedTuples.Bearing2Tuple.final: 0.5\n    test 447 pygeodesy.namedTuples.Bearing2Tuple._validated: True\n    test 448 pygeodesy.namedTuples.Bearing2Tuple._validated: True\n    test 449 pygeodesy.namedTuples: Bounds2Tuple(latlonSW=0.5, latlonNE=0.5)\n    test 450 pygeodesy.namedTuples: Bounds2Tuple(latlonSW=_Pass, latlonNE=_Pass)\n    test 451 pygeodesy.namedTuples.Bounds2Tuple.latlonSW: 0.5\n    test 452 pygeodesy.namedTuples.Bounds2Tuple.latlonNE: 0.5\n    test 453 pygeodesy.namedTuples.Bounds2Tuple._validated: True\n    test 454 pygeodesy.namedTuples.Bounds2Tuple._validated: True\n    test 455 pygeodesy.namedTuples: Bounds4Tuple(latS=0.5, lonW=0.5, latN=0.5, lonE=0.5)\n    test 456 pygeodesy.namedTuples: Bounds4Tuple(latS=Lat, lonW=Lon, latN=Lat, lonE=Lon)\n    test 457 pygeodesy.namedTuples.Bounds4Tuple.latS: 0.5\n    test 458 pygeodesy.namedTuples.Bounds4Tuple.lonW: 0.5\n    test 459 pygeodesy.namedTuples.Bounds4Tuple.latN: 0.5\n    test 460 pygeodesy.namedTuples.Bounds4Tuple.lonE: 0.5\n    test 461 pygeodesy.namedTuples.Bounds4Tuple._validated: True\n    test 462 pygeodesy.namedTuples.Bounds4Tuple._validated: True\n    test 463 pygeodesy.namedTuples: Circle4Tuple(radius=0.5, height=0.5, lat=0.5, beta=0.5)\n    test 464 pygeodesy.namedTuples: Circle4Tuple(radius=Radius, height=Height, lat=Lat, beta=Lat)\n    test 465 pygeodesy.namedTuples.Circle4Tuple.radius: 0.5\n    test 466 pygeodesy.namedTuples.Circle4Tuple.height: 0.5\n    test 467 pygeodesy.namedTuples.Circle4Tuple.lat: 0.5\n    test 468 pygeodesy.namedTuples.Circle4Tuple.beta: 0.5\n    test 469 pygeodesy.namedTuples.Circle4Tuple._validated: True\n    test 470 pygeodesy.namedTuples.Circle4Tuple._validated: True\n    test 471 pygeodesy.namedTuples: Destination2Tuple(destination=0.5, final=0.5)\n    test 472 pygeodesy.namedTuples: Destination2Tuple(destination=_Pass, final=Bearing)\n    test 473 pygeodesy.namedTuples.Destination2Tuple.destination: 0.5\n    test 474 pygeodesy.namedTuples.Destination2Tuple.final: 0.5\n    test 475 pygeodesy.namedTuples.Destination2Tuple._validated: True\n    test 476 pygeodesy.namedTuples.Destination2Tuple._validated: True\n    test 477 pygeodesy.namedTuples: Destination3Tuple(lat=0.5, lon=0.5, final=0.5)\n    test 478 pygeodesy.namedTuples: Destination3Tuple(lat=Lat, lon=Lon, final=Bearing)\n    test 479 pygeodesy.namedTuples.Destination3Tuple.lat: 0.5\n    test 480 pygeodesy.namedTuples.Destination3Tuple.lon: 0.5\n    test 481 pygeodesy.namedTuples.Destination3Tuple.final: 0.5\n    test 482 pygeodesy.namedTuples.Destination3Tuple._validated: True\n    test 483 pygeodesy.namedTuples.Destination3Tuple._validated: True\n    test 484 pygeodesy.namedTuples: Distance2Tuple(distance=0.5, initial=0.5)\n    test 485 pygeodesy.namedTuples: Distance2Tuple(distance=Meter, initial=Bearing)\n    test 486 pygeodesy.namedTuples.Distance2Tuple.distance: 0.5\n    test 487 pygeodesy.namedTuples.Distance2Tuple.initial: 0.5\n    test 488 pygeodesy.namedTuples.Distance2Tuple._validated: True\n    test 489 pygeodesy.namedTuples.Distance2Tuple._validated: True\n    test 490 pygeodesy.namedTuples: Distance3Tuple(distance=0.5, initial=0.5, final=0.5)\n    test 491 pygeodesy.namedTuples: Distance3Tuple(distance=Meter, initial=Bearing, final=Bearing)\n    test 492 pygeodesy.namedTuples.Distance3Tuple.distance: 0.5\n    test 493 pygeodesy.namedTuples.Distance3Tuple.initial: 0.5\n    test 494 pygeodesy.namedTuples.Distance3Tuple.final: 0.5\n    test 495 pygeodesy.namedTuples.Distance3Tuple._validated: True\n    test 496 pygeodesy.namedTuples.Distance3Tuple._validated: True\n    test 497 pygeodesy.namedTuples: Distance4Tuple(distance2=0.5, delta_lat=0.5, delta_lon=0.5, unroll_lon2=0.5)\n    test 498 pygeodesy.namedTuples: Distance4Tuple(distance2=Degrees2, delta_lat=Degrees, delta_lon=Degrees, unroll_lon2=Degrees)\n    test 499 pygeodesy.namedTuples.Distance4Tuple.distance2: 0.5\n    test 500 pygeodesy.namedTuples.Distance4Tuple.delta_lat: 0.5\n    test 501 pygeodesy.namedTuples.Distance4Tuple.delta_lon: 0.5\n    test 502 pygeodesy.namedTuples.Distance4Tuple.unroll_lon2: 0.5\n    test 503 pygeodesy.namedTuples.Distance4Tuple._validated: True\n    test 504 pygeodesy.namedTuples.Distance4Tuple._validated: True\n    test 505 pygeodesy.namedTuples: EasNor2Tuple(easting=0.5, northing=0.5)\n    test 506 pygeodesy.namedTuples: EasNor2Tuple(easting=Easting, northing=Northing)\n    test 507 pygeodesy.namedTuples.EasNor2Tuple.easting: 0.5\n    test 508 pygeodesy.namedTuples.EasNor2Tuple.northing: 0.5\n    test 509 pygeodesy.namedTuples.EasNor2Tuple._validated: True\n    test 510 pygeodesy.namedTuples.EasNor2Tuple._validated: True\n    test 511 pygeodesy.namedTuples: EasNor3Tuple(easting=0.5, northing=0.5, height=0.5)\n    test 512 pygeodesy.namedTuples: EasNor3Tuple(easting=Easting, northing=Northing, height=Height)\n    test 513 pygeodesy.namedTuples.EasNor3Tuple.easting: 0.5\n    test 514 pygeodesy.namedTuples.EasNor3Tuple.northing: 0.5\n    test 515 pygeodesy.namedTuples.EasNor3Tuple.height: 0.5\n    test 516 pygeodesy.namedTuples.EasNor3Tuple._validated: True\n    test 517 pygeodesy.namedTuples.EasNor3Tuple._validated: True\n    test 518 pygeodesy.namedTuples: Ellipse5Tuple(a=0.5, b=0.5, height=0.5, lat=0.5, beta=0.5)\n    test 519 pygeodesy.namedTuples: Ellipse5Tuple(a=Radius, b=Radius, height=Height, lat=Lat, beta=Lat)\n    test 520 pygeodesy.namedTuples.Ellipse5Tuple.a: 0.5\n    test 521 pygeodesy.namedTuples.Ellipse5Tuple.b: 0.5\n    test 522 pygeodesy.namedTuples.Ellipse5Tuple.height: 0.5\n    test 523 pygeodesy.namedTuples.Ellipse5Tuple.lat: 0.5\n    test 524 pygeodesy.namedTuples.Ellipse5Tuple.beta: 0.5\n    test 525 pygeodesy.namedTuples.Ellipse5Tuple._validated: True\n    test 526 pygeodesy.namedTuples.Ellipse5Tuple._validated: True\n    test 527 pygeodesy.namedTuples: Forward4Tuple(easting=0.5, northing=0.5, gamma=0.5, scale=0.5)\n    test 528 pygeodesy.namedTuples: Forward4Tuple(easting=Easting, northing=Northing, gamma=Degrees, scale=Scalar)\n    test 529 pygeodesy.namedTuples.Forward4Tuple.easting: 0.5\n    test 530 pygeodesy.namedTuples.Forward4Tuple.northing: 0.5\n    test 531 pygeodesy.namedTuples.Forward4Tuple.gamma: 0.5\n    test 532 pygeodesy.namedTuples.Forward4Tuple.scale: 0.5\n    test 533 pygeodesy.namedTuples.Forward4Tuple._validated: True\n    test 534 pygeodesy.namedTuples.Forward4Tuple._validated: True\n    test 535 pygeodesy.namedTuples: Intersection3Tuple(point=0.5, outside1=0, outside2=0)\n    test 536 pygeodesy.namedTuples: Intersection3Tuple(point=_Pass, outside1=Int, outside2=Int)\n    test 537 pygeodesy.namedTuples.Intersection3Tuple.point: 0.5\n    test 538 pygeodesy.namedTuples.Intersection3Tuple.outside1: 0.5\n    test 539 pygeodesy.namedTuples.Intersection3Tuple.outside2: 0.5\n    test 540 pygeodesy.namedTuples.Intersection3Tuple._validated: True\n    test 541 pygeodesy.namedTuples.Intersection3Tuple._validated: True\n    test 542 pygeodesy.namedTuples: LatLon2Tuple(lat=0.5, lon=0.5)\n    test 543 pygeodesy.namedTuples: LatLon2Tuple(lat=Lat, lon=Lon)\n    test 544 pygeodesy.namedTuples.LatLon2Tuple.lat: 0.5\n    test 545 pygeodesy.namedTuples.LatLon2Tuple.lon: 0.5\n    test 546 pygeodesy.namedTuples.LatLon2Tuple._validated: True\n    test 547 pygeodesy.namedTuples.LatLon2Tuple._validated: True\n    test 548 pygeodesy.namedTuples: LatLon3Tuple(lat=0.5, lon=0.5, height=0.5)\n    test 549 pygeodesy.namedTuples: LatLon3Tuple(lat=Lat, lon=Lon, height=Height)\n    test 550 pygeodesy.namedTuples.LatLon3Tuple.lat: 0.5\n    test 551 pygeodesy.namedTuples.LatLon3Tuple.lon: 0.5\n    test 552 pygeodesy.namedTuples.LatLon3Tuple.height: 0.5\n    test 553 pygeodesy.namedTuples.LatLon3Tuple._validated: True\n    test 554 pygeodesy.namedTuples.LatLon3Tuple._validated: True\n    test 555 pygeodesy.namedTuples: LatLon4Tuple(lat=0.5, lon=0.5, height=0.5, datum=0.5)\n    test 556 pygeodesy.namedTuples: LatLon4Tuple(lat=Lat, lon=Lon, height=Height, datum=_Pass)\n    test 557 pygeodesy.namedTuples.LatLon4Tuple.lat: 0.5\n    test 558 pygeodesy.namedTuples.LatLon4Tuple.lon: 0.5\n    test 559 pygeodesy.namedTuples.LatLon4Tuple.height: 0.5\n    test 560 pygeodesy.namedTuples.LatLon4Tuple.datum: 0.5\n    test 561 pygeodesy.namedTuples.LatLon4Tuple._validated: True\n    test 562 pygeodesy.namedTuples.LatLon4Tuple._validated: True\n    test 563 pygeodesy.namedTuples: LatLonDatum3Tuple(lat=0.5, lon=0.5, datum=0.5)\n    test 564 pygeodesy.namedTuples: LatLonDatum3Tuple(lat=Lat, lon=Lon, datum=_Pass)\n    test 565 pygeodesy.namedTuples.LatLonDatum3Tuple.lat: 0.5\n    test 566 pygeodesy.namedTuples.LatLonDatum3Tuple.lon: 0.5\n    test 567 pygeodesy.namedTuples.LatLonDatum3Tuple.datum: 0.5\n    test 568 pygeodesy.namedTuples.LatLonDatum3Tuple._validated: True\n    test 569 pygeodesy.namedTuples.LatLonDatum3Tuple._validated: True\n    test 570 pygeodesy.namedTuples: LatLonDatum5Tuple(lat=0.5, lon=0.5, datum=0.5, gamma=0.5, scale=0.5)\n    test 571 pygeodesy.namedTuples: LatLonDatum5Tuple(lat=Lat, lon=Lon, datum=_Pass, gamma=Degrees, scale=Scalar)\n    test 572 pygeodesy.namedTuples.LatLonDatum5Tuple.lat: 0.5\n    test 573 pygeodesy.namedTuples.LatLonDatum5Tuple.lon: 0.5\n    test 574 pygeodesy.namedTuples.LatLonDatum5Tuple.datum: 0.5\n    test 575 pygeodesy.namedTuples.LatLonDatum5Tuple.gamma: 0.5\n    test 576 pygeodesy.namedTuples.LatLonDatum5Tuple.scale: 0.5\n    test 577 pygeodesy.namedTuples.LatLonDatum5Tuple._validated: True\n    test 578 pygeodesy.namedTuples.LatLonDatum5Tuple._validated: True\n    test 579 pygeodesy.namedTuples: LatLonPrec3Tuple(lat=0.5, lon=0.5, precision=0)\n    test 580 pygeodesy.namedTuples: LatLonPrec3Tuple(lat=Lat, lon=Lon, precision=Precision_)\n    test 581 pygeodesy.namedTuples.LatLonPrec3Tuple.lat: 0.5\n    test 582 pygeodesy.namedTuples.LatLonPrec3Tuple.lon: 0.5\n    test 583 pygeodesy.namedTuples.LatLonPrec3Tuple.precision: 0.5\n    test 584 pygeodesy.namedTuples.LatLonPrec3Tuple._validated: True\n    test 585 pygeodesy.namedTuples.LatLonPrec3Tuple._validated: True\n    test 586 pygeodesy.namedTuples: LatLonPrec5Tuple(lat=0.5, lon=0.5, precision=0, height=0.5, radius=0.5)\n    test 587 pygeodesy.namedTuples: LatLonPrec5Tuple(lat=Lat, lon=Lon, precision=Precision_, height=Height, radius=Radius)\n    test 588 pygeodesy.namedTuples.LatLonPrec5Tuple.lat: 0.5\n    test 589 pygeodesy.namedTuples.LatLonPrec5Tuple.lon: 0.5\n    test 590 pygeodesy.namedTuples.LatLonPrec5Tuple.precision: 0.5\n    test 591 pygeodesy.namedTuples.LatLonPrec5Tuple.height: 0.5\n    test 592 pygeodesy.namedTuples.LatLonPrec5Tuple.radius: 0.5\n    test 593 pygeodesy.namedTuples.LatLonPrec5Tuple._validated: True\n    test 594 pygeodesy.namedTuples.LatLonPrec5Tuple._validated: True\n    test 595 pygeodesy.namedTuples: NearestOn2Tuple(closest=0.5, fraction=0.5)\n    test 596 pygeodesy.namedTuples: NearestOn2Tuple(closest=_Pass, fraction=_Pass)\n    test 597 pygeodesy.namedTuples.NearestOn2Tuple.closest: 0.5\n    test 598 pygeodesy.namedTuples.NearestOn2Tuple.fraction: 0.5\n    test 599 pygeodesy.namedTuples.NearestOn2Tuple._validated: True\n    test 600 pygeodesy.namedTuples.NearestOn2Tuple._validated: True\n    test 601 pygeodesy.namedTuples: NearestOn3Tuple(closest=0.5, distance=0.5, angle=0.5)\n    test 602 pygeodesy.namedTuples: NearestOn3Tuple(closest=_Pass, distance=Meter, angle=Degrees)\n    test 603 pygeodesy.namedTuples.NearestOn3Tuple.closest: 0.5\n    test 604 pygeodesy.namedTuples.NearestOn3Tuple.distance: 0.5\n    test 605 pygeodesy.namedTuples.NearestOn3Tuple.angle: 0.5\n    test 606 pygeodesy.namedTuples.NearestOn3Tuple._validated: True\n    test 607 pygeodesy.namedTuples.NearestOn3Tuple._validated: True\n    test 608 pygeodesy.namedTuples: NearestOn5Tuple(lat=0.5, lon=0.5, distance=0.5, angle=0.5, height=0.5)\n    test 609 pygeodesy.namedTuples: NearestOn5Tuple(lat=Lat, lon=Lon, distance=Degrees, angle=Degrees, height=Meter)\n    test 610 pygeodesy.namedTuples.NearestOn5Tuple.lat: 0.5\n    test 611 pygeodesy.namedTuples.NearestOn5Tuple.lon: 0.5\n    test 612 pygeodesy.namedTuples.NearestOn5Tuple.distance: 0.5\n    test 613 pygeodesy.namedTuples.NearestOn5Tuple.angle: 0.5\n    test 614 pygeodesy.namedTuples.NearestOn5Tuple.height: 0.5\n    test 615 pygeodesy.namedTuples.NearestOn5Tuple._validated: True\n    test 616 pygeodesy.namedTuples.NearestOn5Tuple._validated: True\n    test 617 pygeodesy.namedTuples: NearestOn6Tuple(closest=0.5, distance=0.5, fi=0.5, j=0, start=0.5, end=0.5)\n    test 618 pygeodesy.namedTuples: NearestOn6Tuple(closest=_Pass, distance=Meter, fi=FIx, j=Number_, start=_Pass, end=_Pass)\n    test 619 pygeodesy.namedTuples.NearestOn6Tuple.closest: 0.5\n    test 620 pygeodesy.namedTuples.NearestOn6Tuple.distance: 0.5\n    test 621 pygeodesy.namedTuples.NearestOn6Tuple.fi: 0.5\n    test 622 pygeodesy.namedTuples.NearestOn6Tuple.j: 0.5\n    test 623 pygeodesy.namedTuples.NearestOn6Tuple.start: 0.5\n    test 624 pygeodesy.namedTuples.NearestOn6Tuple.end: 0.5\n    test 625 pygeodesy.namedTuples.NearestOn6Tuple._validated: True\n    test 626 pygeodesy.namedTuples.NearestOn6Tuple._validated: True\n    test 627 pygeodesy.namedTuples: NearestOn8Tuple(closest=0.5, distance=0.5, fi=0.5, j=0, start=0.5, end=0.5, initial=0.5, final=0.5)\n    test 628 pygeodesy.namedTuples: NearestOn8Tuple(closest=_Pass, distance=Meter, fi=FIx, j=Number_, start=_Pass, end=_Pass, initial=Bearing, final=Bearing)\n    test 629 pygeodesy.namedTuples.NearestOn8Tuple.closest: 0.5\n    test 630 pygeodesy.namedTuples.NearestOn8Tuple.distance: 0.5\n    test 631 pygeodesy.namedTuples.NearestOn8Tuple.fi: 0.5\n    test 632 pygeodesy.namedTuples.NearestOn8Tuple.j: 0.5\n    test 633 pygeodesy.namedTuples.NearestOn8Tuple.start: 0.5\n    test 634 pygeodesy.namedTuples.NearestOn8Tuple.end: 0.5\n    test 635 pygeodesy.namedTuples.NearestOn8Tuple.initial: 0.5\n    test 636 pygeodesy.namedTuples.NearestOn8Tuple.final: 0.5\n    test 637 pygeodesy.namedTuples.NearestOn8Tuple._validated: True\n    test 638 pygeodesy.namedTuples.NearestOn8Tuple._validated: True\n    test 639 pygeodesy.namedTuples: PhiLam2Tuple(phi=0.5, lam=0.5)\n    test 640 pygeodesy.namedTuples: PhiLam2Tuple(phi=Phi, lam=Lam)\n    test 641 pygeodesy.namedTuples.PhiLam2Tuple.phi: 0.5\n    test 642 pygeodesy.namedTuples.PhiLam2Tuple.lam: 0.5\n    test 643 pygeodesy.namedTuples.PhiLam2Tuple._validated: True\n    test 644 pygeodesy.namedTuples.PhiLam2Tuple._validated: True\n    test 645 pygeodesy.namedTuples: PhiLam3Tuple(phi=0.5, lam=0.5, height=0.5)\n    test 646 pygeodesy.namedTuples: PhiLam3Tuple(phi=Phi, lam=Lam, height=Height)\n    test 647 pygeodesy.namedTuples.PhiLam3Tuple.phi: 0.5\n    test 648 pygeodesy.namedTuples.PhiLam3Tuple.lam: 0.5\n    test 649 pygeodesy.namedTuples.PhiLam3Tuple.height: 0.5\n    test 650 pygeodesy.namedTuples.PhiLam3Tuple._validated: True\n    test 651 pygeodesy.namedTuples.PhiLam3Tuple._validated: True\n    test 652 pygeodesy.namedTuples: PhiLam4Tuple(phi=0.5, lam=0.5, height=0.5, datum=0.5)\n    test 653 pygeodesy.namedTuples: PhiLam4Tuple(phi=Phi, lam=Lam, height=Height, datum=_Pass)\n    test 654 pygeodesy.namedTuples.PhiLam4Tuple.phi: 0.5\n    test 655 pygeodesy.namedTuples.PhiLam4Tuple.lam: 0.5\n    test 656 pygeodesy.namedTuples.PhiLam4Tuple.height: 0.5\n    test 657 pygeodesy.namedTuples.PhiLam4Tuple.datum: 0.5\n    test 658 pygeodesy.namedTuples.PhiLam4Tuple._validated: True\n    test 659 pygeodesy.namedTuples.PhiLam4Tuple._validated: True\n    test 660 pygeodesy.namedTuples: Point3Tuple(x=0.5, y=0.5, ll=0.5)\n    test 661 pygeodesy.namedTuples: Point3Tuple(x=Meter, y=Meter, ll=_Pass)\n    test 662 pygeodesy.namedTuples.Point3Tuple.x: 0.5\n    test 663 pygeodesy.namedTuples.Point3Tuple.y: 0.5\n    test 664 pygeodesy.namedTuples.Point3Tuple.ll: 0.5\n    test 665 pygeodesy.namedTuples.Point3Tuple._validated: True\n    test 666 pygeodesy.namedTuples.Point3Tuple._validated: True\n    test 667 pygeodesy.namedTuples: Points2Tuple(number=0, points=0.5)\n    test 668 pygeodesy.namedTuples: Points2Tuple(number=Number_, points=_Pass)\n    test 669 pygeodesy.namedTuples.Points2Tuple.number: 0.5\n    test 670 pygeodesy.namedTuples.Points2Tuple.points: 0.5\n    test 671 pygeodesy.namedTuples.Points2Tuple._validated: True\n    test 672 pygeodesy.namedTuples.Points2Tuple._validated: True\n    test 673 pygeodesy.namedTuples: Reverse4Tuple(lat=0.5, lon=0.5, gamma=0.5, scale=0.5)\n    test 674 pygeodesy.namedTuples: Reverse4Tuple(lat=Lat, lon=Lon, gamma=Degrees, scale=Scalar)\n    test 675 pygeodesy.namedTuples.Reverse4Tuple.lat: 0.5\n    test 676 pygeodesy.namedTuples.Reverse4Tuple.lon: 0.5\n    test 677 pygeodesy.namedTuples.Reverse4Tuple.gamma: 0.5\n    test 678 pygeodesy.namedTuples.Reverse4Tuple.scale: 0.5\n    test 679 pygeodesy.namedTuples.Reverse4Tuple._validated: True\n    test 680 pygeodesy.namedTuples.Reverse4Tuple._validated: True\n    test 681 pygeodesy.namedTuples: Triangle7Tuple(A=0.5, a=0.5, B=0.5, b=0.5, C=0.5, c=0.5, area=0.5)\n    test 682 pygeodesy.namedTuples: Triangle7Tuple(A=Degrees, a=Meter, B=Degrees, b=Meter, C=Degrees, c=Meter, area=Meter2)\n    test 683 pygeodesy.namedTuples.Triangle7Tuple.A: 0.5\n    test 684 pygeodesy.namedTuples.Triangle7Tuple.a: 0.5\n    test 685 pygeodesy.namedTuples.Triangle7Tuple.B: 0.5\n    test 686 pygeodesy.namedTuples.Triangle7Tuple.b: 0.5\n    test 687 pygeodesy.namedTuples.Triangle7Tuple.C: 0.5\n    test 688 pygeodesy.namedTuples.Triangle7Tuple.c: 0.5\n    test 689 pygeodesy.namedTuples.Triangle7Tuple.area: 0.5\n    test 690 pygeodesy.namedTuples.Triangle7Tuple._validated: True\n    test 691 pygeodesy.namedTuples.Triangle7Tuple._validated: True\n    test 692 pygeodesy.namedTuples: Triangle8Tuple(A=0.5, a=0.5, B=0.5, b=0.5, C=0.5, c=0.5, D=0.5, E=0.5)\n    test 693 pygeodesy.namedTuples: Triangle8Tuple(A=Radians, a=Radians, B=Radians, b=Radians, C=Radians, c=Radians, D=Radians, E=Radians)\n    test 694 pygeodesy.namedTuples.Triangle8Tuple.A: 0.5\n    test 695 pygeodesy.namedTuples.Triangle8Tuple.a: 0.5\n    test 696 pygeodesy.namedTuples.Triangle8Tuple.B: 0.5\n    test 697 pygeodesy.namedTuples.Triangle8Tuple.b: 0.5\n    test 698 pygeodesy.namedTuples.Triangle8Tuple.C: 0.5\n    test 699 pygeodesy.namedTuples.Triangle8Tuple.c: 0.5\n    test 700 pygeodesy.namedTuples.Triangle8Tuple.D: 0.5\n    test 701 pygeodesy.namedTuples.Triangle8Tuple.E: 0.5\n    test 702 pygeodesy.namedTuples.Triangle8Tuple._validated: True\n    test 703 pygeodesy.namedTuples.Triangle8Tuple._validated: True\n    test 704 pygeodesy.namedTuples: Trilaterate5Tuple(min=0.5, minPoint=0.5, max=0.5, maxPoint=0.5, n=0)\n    test 705 pygeodesy.namedTuples: Trilaterate5Tuple(min=Meter, minPoint=_Pass, max=Meter, maxPoint=_Pass, n=Number_)\n    test 706 pygeodesy.namedTuples.Trilaterate5Tuple.min: 0.5\n    test 707 pygeodesy.namedTuples.Trilaterate5Tuple.minPoint: 0.5\n    test 708 pygeodesy.namedTuples.Trilaterate5Tuple.max: 0.5\n    test 709 pygeodesy.namedTuples.Trilaterate5Tuple.maxPoint: 0.5\n    test 710 pygeodesy.namedTuples.Trilaterate5Tuple.n: 0.5\n    test 711 pygeodesy.namedTuples.Trilaterate5Tuple._validated: True\n    test 712 pygeodesy.namedTuples.Trilaterate5Tuple._validated: True\n    test 713 pygeodesy.namedTuples: UtmUps2Tuple(zone=0, hemipole='0.5')\n    test 714 pygeodesy.namedTuples: UtmUps2Tuple(zone=Number_, hemipole=Str)\n    test 715 pygeodesy.namedTuples.UtmUps2Tuple.zone: 0.5\n    test 716 pygeodesy.namedTuples.UtmUps2Tuple.hemipole: 0.5\n    test 717 pygeodesy.namedTuples.UtmUps2Tuple._validated: True\n    test 718 pygeodesy.namedTuples.UtmUps2Tuple._validated: True\n    test 719 pygeodesy.namedTuples: UtmUps5Tuple(zone=0, hemipole='0.5', easting=0.5, northing=0.5, band='0.5')\n    test 720 pygeodesy.namedTuples: UtmUps5Tuple(zone=Number_, hemipole=Str, easting=Easting, northing=Northing, band=Band)\n    test 721 pygeodesy.namedTuples.UtmUps5Tuple.zone: 0.5\n    test 722 pygeodesy.namedTuples.UtmUps5Tuple.hemipole: 0.5\n    test 723 pygeodesy.namedTuples.UtmUps5Tuple.easting: 0.5\n    test 724 pygeodesy.namedTuples.UtmUps5Tuple.northing: 0.5\n    test 725 pygeodesy.namedTuples.UtmUps5Tuple.band: 0.5\n    test 726 pygeodesy.namedTuples.UtmUps5Tuple._validated: True\n    test 727 pygeodesy.namedTuples.UtmUps5Tuple._validated: True\n    test 728 pygeodesy.namedTuples: UtmUps8Tuple(zone=0, hemipole='0.5', easting=0.5, northing=0.5, band='0.5', datum=0.5, gamma=0.5, scale=0.5)\n    test 729 pygeodesy.namedTuples: UtmUps8Tuple(zone=Number_, hemipole=Str, easting=Easting, northing=Northing, band=Band, datum=_Pass, gamma=Degrees, scale=Scalar)\n    test 730 pygeodesy.namedTuples.UtmUps8Tuple.zone: 0.5\n    test 731 pygeodesy.namedTuples.UtmUps8Tuple.hemipole: 0.5\n    test 732 pygeodesy.namedTuples.UtmUps8Tuple.easting: 0.5\n    test 733 pygeodesy.namedTuples.UtmUps8Tuple.northing: 0.5\n    test 734 pygeodesy.namedTuples.UtmUps8Tuple.band: 0.5\n    test 735 pygeodesy.namedTuples.UtmUps8Tuple.datum: 0.5\n    test 736 pygeodesy.namedTuples.UtmUps8Tuple.gamma: 0.5\n    test 737 pygeodesy.namedTuples.UtmUps8Tuple.scale: 0.5\n    test 738 pygeodesy.namedTuples.UtmUps8Tuple._validated: True\n    test 739 pygeodesy.namedTuples.UtmUps8Tuple._validated: True\n    test 740 pygeodesy.namedTuples: UtmUpsLatLon5Tuple(zone=0, band='0.5', hemipole='0.5', lat=0.5, lon=0.5)\n    test 741 pygeodesy.namedTuples: UtmUpsLatLon5Tuple(zone=Number_, band=Band, hemipole=Str, lat=Lat, lon=Lon)\n    test 742 pygeodesy.namedTuples.UtmUpsLatLon5Tuple.zone: 0.5\n    test 743 pygeodesy.namedTuples.UtmUpsLatLon5Tuple.band: 0.5\n    test 744 pygeodesy.namedTuples.UtmUpsLatLon5Tuple.hemipole: 0.5\n    test 745 pygeodesy.namedTuples.UtmUpsLatLon5Tuple.lat: 0.5\n    test 746 pygeodesy.namedTuples.UtmUpsLatLon5Tuple.lon: 0.5\n    test 747 pygeodesy.namedTuples.UtmUpsLatLon5Tuple._validated: True\n    test 748 pygeodesy.namedTuples.UtmUpsLatLon5Tuple._validated: True\n    test 749 pygeodesy.namedTuples: Vector2Tuple(x=0.5, y=0.5)\n    test 750 pygeodesy.namedTuples: Vector2Tuple(x=Scalar, y=Scalar)\n    test 751 pygeodesy.namedTuples.Vector2Tuple.x: 0.5\n    test 752 pygeodesy.namedTuples.Vector2Tuple.y: 0.5\n    test 753 pygeodesy.namedTuples.Vector2Tuple._validated: True\n    test 754 pygeodesy.namedTuples.Vector2Tuple._validated: True\n    test 755 pygeodesy.namedTuples: Vector3Tuple(x=0.5, y=0.5, z=0.5)\n    test 756 pygeodesy.namedTuples: Vector3Tuple(x=Scalar, y=Scalar, z=Scalar)\n    test 757 pygeodesy.namedTuples.Vector3Tuple.x: 0.5\n    test 758 pygeodesy.namedTuples.Vector3Tuple.y: 0.5\n    test 759 pygeodesy.namedTuples.Vector3Tuple.z: 0.5\n    test 760 pygeodesy.namedTuples.Vector3Tuple._validated: True\n    test 761 pygeodesy.namedTuples.Vector3Tuple._validated: True\n    test 762 pygeodesy.namedTuples: Vector4Tuple(x=0.5, y=0.5, z=0.5, h=0.5)\n    test 763 pygeodesy.namedTuples: Vector4Tuple(x=Scalar, y=Scalar, z=Scalar, h=Height)\n    test 764 pygeodesy.namedTuples.Vector4Tuple.x: 0.5\n    test 765 pygeodesy.namedTuples.Vector4Tuple.y: 0.5\n    test 766 pygeodesy.namedTuples.Vector4Tuple.z: 0.5\n    test 767 pygeodesy.namedTuples.Vector4Tuple.h: 0.5\n    test 768 pygeodesy.namedTuples.Vector4Tuple._validated: True\n    test 769 pygeodesy.namedTuples.Vector4Tuple._validated: True\n    test 770 pygeodesy.points: Shape2Tuple(nrows=0, ncols=0)\n    test 771 pygeodesy.points: Shape2Tuple(nrows=Number_, ncols=Number_)\n    test 772 pygeodesy.points.Shape2Tuple.nrows: 0.5\n    test 773 pygeodesy.points.Shape2Tuple.ncols: 0.5\n    test 774 pygeodesy.points.Shape2Tuple._validated: True\n    test 775 pygeodesy.points.Shape2Tuple._validated: True\n    test 776 pygeodesy.resections: Collins5Tuple(pointP=0.5, pointH=0.5, a=0.5, b=0.5, c=0.5)\n    test 777 pygeodesy.resections: Collins5Tuple(pointP=_Pass, pointH=_Pass, a=Distance, b=Distance, c=Distance)\n    test 778 pygeodesy.resections.Collins5Tuple.pointP: 0.5\n    test 779 pygeodesy.resections.Collins5Tuple.pointH: 0.5\n    test 780 pygeodesy.resections.Collins5Tuple.a: 0.5\n    test 781 pygeodesy.resections.Collins5Tuple.b: 0.5\n    test 782 pygeodesy.resections.Collins5Tuple.c: 0.5\n    test 783 pygeodesy.resections.Collins5Tuple._validated: True\n    test 784 pygeodesy.resections.Collins5Tuple._validated: True\n    test 785 pygeodesy.resections: Survey3Tuple(PA=0.5, PB=0.5, PC=0.5)\n    test 786 pygeodesy.resections: Survey3Tuple(PA=Distance, PB=Distance, PC=Distance)\n    test 787 pygeodesy.resections.Survey3Tuple.PA: 0.5\n    test 788 pygeodesy.resections.Survey3Tuple.PB: 0.5\n    test 789 pygeodesy.resections.Survey3Tuple.PC: 0.5\n    test 790 pygeodesy.resections.Survey3Tuple._validated: True\n    test 791 pygeodesy.resections.Survey3Tuple._validated: True\n    test 792 pygeodesy.resections: Tienstra7Tuple(pointP=0.5, A=0.5, B=0.5, C=0.5, a=0.5, b=0.5, c=0.5)\n    test 793 pygeodesy.resections: Tienstra7Tuple(pointP=_Pass, A=Degrees, B=Degrees, C=Degrees, a=Distance, b=Distance, c=Distance)\n    test 794 pygeodesy.resections.Tienstra7Tuple.pointP: 0.5\n    test 795 pygeodesy.resections.Tienstra7Tuple.A: 0.5\n    test 796 pygeodesy.resections.Tienstra7Tuple.B: 0.5\n    test 797 pygeodesy.resections.Tienstra7Tuple.C: 0.5\n    test 798 pygeodesy.resections.Tienstra7Tuple.a: 0.5\n    test 799 pygeodesy.resections.Tienstra7Tuple.b: 0.5\n    test 800 pygeodesy.resections.Tienstra7Tuple.c: 0.5\n    test 801 pygeodesy.resections.Tienstra7Tuple._validated: True\n    test 802 pygeodesy.resections.Tienstra7Tuple._validated: True\n    test 803 pygeodesy.resections: TriAngle5Tuple(radA=0.5, radB=0.5, radC=0.5, rIn=0.5, area=0.5)\n    test 804 pygeodesy.resections: TriAngle5Tuple(radA=Radians, radB=Radians, radC=Radians, rIn=Distance, area=_Pass)\n    test 805 pygeodesy.resections.TriAngle5Tuple.radA: 0.5\n    test 806 pygeodesy.resections.TriAngle5Tuple.radB: 0.5\n    test 807 pygeodesy.resections.TriAngle5Tuple.radC: 0.5\n    test 808 pygeodesy.resections.TriAngle5Tuple.rIn: 0.5\n    test 809 pygeodesy.resections.TriAngle5Tuple.area: 0.5\n    test 810 pygeodesy.resections.TriAngle5Tuple._validated: True\n    test 811 pygeodesy.resections.TriAngle5Tuple._validated: True\n    test 812 pygeodesy.resections: TriSide2Tuple(a=0.5, radA=0.5)\n    test 813 pygeodesy.resections: TriSide2Tuple(a=Distance, radA=Radians)\n    test 814 pygeodesy.resections.TriSide2Tuple.a: 0.5\n    test 815 pygeodesy.resections.TriSide2Tuple.radA: 0.5\n    test 816 pygeodesy.resections.TriSide2Tuple._validated: True\n    test 817 pygeodesy.resections.TriSide2Tuple._validated: True\n    test 818 pygeodesy.resections: TriSide4Tuple(a=0.5, b=0.5, radC=0.5, d=0.5)\n    test 819 pygeodesy.resections: TriSide4Tuple(a=Distance, b=Distance, radC=Radians, d=Distance)\n    test 820 pygeodesy.resections.TriSide4Tuple.a: 0.5\n    test 821 pygeodesy.resections.TriSide4Tuple.b: 0.5\n    test 822 pygeodesy.resections.TriSide4Tuple.radC: 0.5\n    test 823 pygeodesy.resections.TriSide4Tuple.d: 0.5\n    test 824 pygeodesy.resections.TriSide4Tuple._validated: True\n    test 825 pygeodesy.resections.TriSide4Tuple._validated: True\n    test 826 pygeodesy.trf: TRFXform7Tuple(tx=0.5, ty=0.5, tz=0.5, s=0.5, sx=0.5, sy=0.5, sz=0.5)\n    test 827 pygeodesy.trf: TRFXform7Tuple(tx=Float, ty=Float, tz=Float, s=Float, sx=Float, sy=Float, sz=Float)\n    test 828 pygeodesy.trf.TRFXform7Tuple.tx: 0.5\n    test 829 pygeodesy.trf.TRFXform7Tuple.ty: 0.5\n    test 830 pygeodesy.trf.TRFXform7Tuple.tz: 0.5\n    test 831 pygeodesy.trf.TRFXform7Tuple.s: 0.5\n    test 832 pygeodesy.trf.TRFXform7Tuple.sx: 0.5\n    test 833 pygeodesy.trf.TRFXform7Tuple.sy: 0.5\n    test 834 pygeodesy.trf.TRFXform7Tuple.sz: 0.5\n    test 835 pygeodesy.trf.TRFXform7Tuple._validated: True\n    test 836 pygeodesy.trf.TRFXform7Tuple._validated: True\n    test 837 pygeodesy.vector2d: Circin6Tuple(radius=0.5, center=0.5, deltas=0.5, cA=0.5, cB=0.5, cC=0.5)\n    test 838 pygeodesy.vector2d: Circin6Tuple(radius=Radius, center=_Pass, deltas=_Pass, cA=_Pass, cB=_Pass, cC=_Pass)\n    test 839 pygeodesy.vector2d.Circin6Tuple.radius: 0.5\n    test 840 pygeodesy.vector2d.Circin6Tuple.center: 0.5\n    test 841 pygeodesy.vector2d.Circin6Tuple.deltas: 0.5\n    test 842 pygeodesy.vector2d.Circin6Tuple.cA: 0.5\n    test 843 pygeodesy.vector2d.Circin6Tuple.cB: 0.5\n    test 844 pygeodesy.vector2d.Circin6Tuple.cC: 0.5\n    test 845 pygeodesy.vector2d.Circin6Tuple._validated: True\n    test 846 pygeodesy.vector2d.Circin6Tuple._validated: True\n    test 847 pygeodesy.vector2d: Circum3Tuple(radius=0.5, center=0.5, deltas=0.5)\n    test 848 pygeodesy.vector2d: Circum3Tuple(radius=Radius, center=_Pass, deltas=_Pass)\n    test 849 pygeodesy.vector2d.Circum3Tuple.radius: 0.5\n    test 850 pygeodesy.vector2d.Circum3Tuple.center: 0.5\n    test 851 pygeodesy.vector2d.Circum3Tuple.deltas: 0.5\n    test 852 pygeodesy.vector2d.Circum3Tuple._validated: True\n    test 853 pygeodesy.vector2d.Circum3Tuple._validated: True\n    test 854 pygeodesy.vector2d: Circum4Tuple(radius=0.5, center=0.5, rank=0, residuals=0.5)\n    test 855 pygeodesy.vector2d: Circum4Tuple(radius=Radius, center=_Pass, rank=Int, residuals=_Pass)\n    test 856 pygeodesy.vector2d.Circum4Tuple.radius: 0.5\n    test 857 pygeodesy.vector2d.Circum4Tuple.center: 0.5\n    test 858 pygeodesy.vector2d.Circum4Tuple.rank: 0.5\n    test 859 pygeodesy.vector2d.Circum4Tuple.residuals: 0.5\n    test 860 pygeodesy.vector2d.Circum4Tuple._validated: True\n    test 861 pygeodesy.vector2d.Circum4Tuple._validated: True\n    test 862 pygeodesy.vector2d: Meeus2Tuple(radius=0.5, Type=0.5)\n    test 863 pygeodesy.vector2d: Meeus2Tuple(radius=Radius, Type=_Pass)\n    test 864 pygeodesy.vector2d.Meeus2Tuple.radius: 0.5\n    test 865 pygeodesy.vector2d.Meeus2Tuple.Type: 0.5\n    test 866 pygeodesy.vector2d.Meeus2Tuple._validated: True\n    test 867 pygeodesy.vector2d.Meeus2Tuple._validated: True\n    test 868 pygeodesy.vector2d: Radii11Tuple(rA=0.5, rB=0.5, rC=0.5, cR=0.5, rIn=0.5, riS=0.5, roS=0.5, a=0.5, b=0.5, c=0.5, s=0.5)\n    test 869 pygeodesy.vector2d: Radii11Tuple(rA=Meter, rB=Meter, rC=Meter, cR=Meter, rIn=Meter, riS=Meter, roS=Meter, a=Meter, b=Meter, c=Meter, s=Meter)\n    test 870 pygeodesy.vector2d.Radii11Tuple.rA: 0.5\n    test 871 pygeodesy.vector2d.Radii11Tuple.rB: 0.5\n    test 872 pygeodesy.vector2d.Radii11Tuple.rC: 0.5\n    test 873 pygeodesy.vector2d.Radii11Tuple.cR: 0.5\n    test 874 pygeodesy.vector2d.Radii11Tuple.rIn: 0.5\n    test 875 pygeodesy.vector2d.Radii11Tuple.riS: 0.5\n    test 876 pygeodesy.vector2d.Radii11Tuple.roS: 0.5\n    test 877 pygeodesy.vector2d.Radii11Tuple.a: 0.5\n    test 878 pygeodesy.vector2d.Radii11Tuple.b: 0.5\n    test 879 pygeodesy.vector2d.Radii11Tuple.c: 0.5\n    test 880 pygeodesy.vector2d.Radii11Tuple.s: 0.5\n    test 881 pygeodesy.vector2d.Radii11Tuple._validated: True\n    test 882 pygeodesy.vector2d.Radii11Tuple._validated: True\n    test 883 pygeodesy.vector2d: Soddy4Tuple(radius=0.5, center=0.5, deltas=0.5, outer=0.5)\n    test 884 pygeodesy.vector2d: Soddy4Tuple(radius=Radius, center=_Pass, deltas=_Pass, outer=Radius)\n    test 885 pygeodesy.vector2d.Soddy4Tuple.radius: 0.5\n    test 886 pygeodesy.vector2d.Soddy4Tuple.center: 0.5\n    test 887 pygeodesy.vector2d.Soddy4Tuple.deltas: 0.5\n    test 888 pygeodesy.vector2d.Soddy4Tuple.outer: 0.5\n    test 889 pygeodesy.vector2d.Soddy4Tuple._validated: True\n    test 890 pygeodesy.vector2d.Soddy4Tuple._validated: True\n    test 891 pygeodesy.vector2d: Triaxum5Tuple(a=0.5, b=0.5, c=0.5, rank=0, residuals=0.5)\n    test 892 pygeodesy.vector2d: Triaxum5Tuple(a=Radius, b=Radius, c=Radius, rank=Int, residuals=_Pass)\n    test 893 pygeodesy.vector2d.Triaxum5Tuple.a: 0.5\n    test 894 pygeodesy.vector2d.Triaxum5Tuple.b: 0.5\n    test 895 pygeodesy.vector2d.Triaxum5Tuple.c: 0.5\n    test 896 pygeodesy.vector2d.Triaxum5Tuple.rank: 0.5\n    test 897 pygeodesy.vector2d.Triaxum5Tuple.residuals: 0.5\n    test 898 pygeodesy.vector2d.Triaxum5Tuple._validated: True\n    test 899 pygeodesy.vector2d.Triaxum5Tuple._validated: True\n    test 900 pygeodesy.webmercator: EasNorRadius3Tuple(easting=0.5, northing=0.5, radius=0.5)\n    test 901 pygeodesy.webmercator: EasNorRadius3Tuple(easting=Easting, northing=Northing, radius=Radius)\n    test 902 pygeodesy.webmercator.EasNorRadius3Tuple.easting: 0.5\n    test 903 pygeodesy.webmercator.EasNorRadius3Tuple.northing: 0.5\n    test 904 pygeodesy.webmercator.EasNorRadius3Tuple.radius: 0.5\n    test 905 pygeodesy.webmercator.EasNorRadius3Tuple._validated: True\n    test 906 pygeodesy.webmercator.EasNorRadius3Tuple._validated: True\n    test 907 pygeodesy.rhumb.solve: RhumbSolve7Tuple(lat1=0.5, lon1=0.5, lat2=0.5, lon2=0.5, azi12=0.5, s12=0.5, S12=0.5)\n    test 908 pygeodesy.rhumb.solve: RhumbSolve7Tuple(lat1=Lat, lon1=Lon, lat2=Lat, lon2=Lon, azi12=Azimuth, s12=Meter, S12=Meter2)\n    test 909 pygeodesy.rhumb.solve.RhumbSolve7Tuple.lat1: 0.5\n    test 910 pygeodesy.rhumb.solve.RhumbSolve7Tuple.lon1: 0.5\n    test 911 pygeodesy.rhumb.solve.RhumbSolve7Tuple.lat2: 0.5\n    test 912 pygeodesy.rhumb.solve.RhumbSolve7Tuple.lon2: 0.5\n    test 913 pygeodesy.rhumb.solve.RhumbSolve7Tuple.azi12: 0.5\n    test 914 pygeodesy.rhumb.solve.RhumbSolve7Tuple.s12: 0.5\n    test 915 pygeodesy.rhumb.solve.RhumbSolve7Tuple.S12: 0.5\n    test 916 pygeodesy.rhumb.solve.RhumbSolve7Tuple._validated: True\n    test 917 pygeodesy.rhumb.solve.RhumbSolve7Tuple._validated: True\n    test 918 pygeodesy.triaxials.bases: Conformal5Tuple(x=0.5, y=0.5, z=0.5, scale=0.5, llk=0.5)\n    test 919 pygeodesy.triaxials.bases: Conformal5Tuple(x=Easting, y=Northing, z=_Pass, scale=Scalar, llk=_Pass)\n    test 920 pygeodesy.triaxials.bases.Conformal5Tuple.x: 0.5\n    test 921 pygeodesy.triaxials.bases.Conformal5Tuple.y: 0.5\n    test 922 pygeodesy.triaxials.bases.Conformal5Tuple.z: 0.5\n    test 923 pygeodesy.triaxials.bases.Conformal5Tuple.scale: 0.5\n    test 924 pygeodesy.triaxials.bases.Conformal5Tuple.llk: 0.5\n    test 925 pygeodesy.triaxials.bases.Conformal5Tuple._validated: True\n    test 926 pygeodesy.triaxials.bases.Conformal5Tuple._validated: True\n    test 927 pygeodesy.triaxials.conformal3: BetOmgGam5Tuple(bet=Ang, omg=Ang, gam=_Pass, scale=Scalar, llk=_Pass)\n    test 928 pygeodesy.triaxials.conformal3.BetOmgGam5Tuple.bet: 0.5\n    test 929 pygeodesy.triaxials.conformal3.BetOmgGam5Tuple.omg: 0.5\n    test 930 pygeodesy.triaxials.conformal3.BetOmgGam5Tuple.gam: 0.5\n    test 931 pygeodesy.triaxials.conformal3.BetOmgGam5Tuple.scale: 0.5\n    test 932 pygeodesy.triaxials.conformal3.BetOmgGam5Tuple.llk: 0.5\n    test 933 pygeodesy.triaxials.conformal3.BetOmgGam5Tuple._validated: True\n    test 934 pygeodesy.triaxials.conformal3.BetOmgGam5Tuple._validated: True\n    test 935 pygeodesy.triaxials.triaxial3: BetOmgAlp5Tuple(bet=Ang, omg=Ang, alp=_Pass, h=_HeightINT0, llk=_Pass)\n    test 936 pygeodesy.triaxials.triaxial3.BetOmgAlp5Tuple.bet: 0.5\n    test 937 pygeodesy.triaxials.triaxial3.BetOmgAlp5Tuple.omg: 0.5\n    test 938 pygeodesy.triaxials.triaxial3.BetOmgAlp5Tuple.alp: 0.5\n    test 939 pygeodesy.triaxials.triaxial3.BetOmgAlp5Tuple.h: 0.5\n    test 940 pygeodesy.triaxials.triaxial3.BetOmgAlp5Tuple.llk: 0.5\n    test 941 pygeodesy.triaxials.triaxial3.BetOmgAlp5Tuple._validated: True\n    test 942 pygeodesy.triaxials.triaxial3.BetOmgAlp5Tuple._validated: True\n    test 943 pygeodesy.triaxials.triaxial3: Cartesian5Tuple(x=0.5, y=0.5, z=0.5, h=0.5, llk=0.5)\n    test 944 pygeodesy.triaxials.triaxial3: Cartesian5Tuple(x=Scalar, y=Scalar, z=Scalar, h=Height, llk=_Pass)\n    test 945 pygeodesy.triaxials.triaxial3.Cartesian5Tuple.x: 0.5\n    test 946 pygeodesy.triaxials.triaxial3.Cartesian5Tuple.y: 0.5\n    test 947 pygeodesy.triaxials.triaxial3.Cartesian5Tuple.z: 0.5\n    test 948 pygeodesy.triaxials.triaxial3.Cartesian5Tuple.h: 0.5\n    test 949 pygeodesy.triaxials.triaxial3.Cartesian5Tuple.llk: 0.5\n    test 950 pygeodesy.triaxials.triaxial3.Cartesian5Tuple._validated: True\n    test 951 pygeodesy.triaxials.triaxial3.Cartesian5Tuple._validated: True\n    test 952 pygeodesy.triaxials.triaxial3: PhiLamZet5Tuple(phi=Ang, lam=Ang, zet=_Pass, h=_HeightINT0, llk=_Pass)\n    test 953 pygeodesy.triaxials.triaxial3.PhiLamZet5Tuple.phi: 0.5\n    test 954 pygeodesy.triaxials.triaxial3.PhiLamZet5Tuple.lam: 0.5\n    test 955 pygeodesy.triaxials.triaxial3.PhiLamZet5Tuple.zet: 0.5\n    test 956 pygeodesy.triaxials.triaxial3.PhiLamZet5Tuple.h: 0.5\n    test 957 pygeodesy.triaxials.triaxial3.PhiLamZet5Tuple.llk: 0.5\n    test 958 pygeodesy.triaxials.triaxial3.PhiLamZet5Tuple._validated: True\n    test 959 pygeodesy.triaxials.triaxial3.PhiLamZet5Tuple._validated: True\n    test 960 pygeodesy.triaxials.triaxial5: BetaOmega2Tuple(beta=0.5, omega=0.5)\n    test 961 pygeodesy.triaxials.triaxial5: BetaOmega2Tuple(beta=_Pass, omega=_Pass)\n    test 962 pygeodesy.triaxials.triaxial5.BetaOmega2Tuple.beta: 0.5\n    test 963 pygeodesy.triaxials.triaxial5.BetaOmega2Tuple.omega: 0.5\n    test 964 pygeodesy.triaxials.triaxial5.BetaOmega2Tuple._validated: True\n    test 965 pygeodesy.triaxials.triaxial5.BetaOmega2Tuple._validated: True\n    test 966 pygeodesy.triaxials.triaxial5: BetaOmega3Tuple(beta=0.5, omega=0.5, height=0.5)\n    test 967 pygeodesy.triaxials.triaxial5: BetaOmega3Tuple(beta=_Pass, omega=_Pass, height=Meter)\n    test 968 pygeodesy.triaxials.triaxial5.BetaOmega3Tuple.beta: 0.5\n    test 969 pygeodesy.triaxials.triaxial5.BetaOmega3Tuple.omega: 0.5\n    test 970 pygeodesy.triaxials.triaxial5.BetaOmega3Tuple.height: 0.5\n    test 971 pygeodesy.triaxials.triaxial5.BetaOmega3Tuple._validated: True\n    test 972 pygeodesy.triaxials.triaxial5.BetaOmega3Tuple._validated: True\n    test 973 pygeodesy.triaxials.triaxial5: Conformal2Tuple(x=0.5, y=0.5)\n    test 974 pygeodesy.triaxials.triaxial5: Conformal2Tuple(x=_Pass, y=_Pass)\n    test 975 pygeodesy.triaxials.triaxial5.Conformal2Tuple.x: 0.5\n    test 976 pygeodesy.triaxials.triaxial5.Conformal2Tuple.y: 0.5\n    test 977 pygeodesy.triaxials.triaxial5.Conformal2Tuple._validated: True\n    test 978 pygeodesy.triaxials.triaxial5.Conformal2Tuple._validated: True\n    test 979 pygeodesy.named._NamedTuple._validated: False\n\n    all 979 testNamedTuples.py tests passed (pygeodesy 26.3.26 Python 3.11.9 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 1.24.2 scipy 1.10.1 Math 2 macOS 26.3.1 isLazy 0 -W  default) 25.287 ms\nrunning /usr/local/bin/p....n3.11 -W default ~/PyGeodesy/test/testNavlabExamples.py\n./pygeodesy/ellipsoidalNvector.py:61: DeprecationWarning: class L{Ned<pygeodesy.ellipsoidalNvector.Ned>} has been DEPRECATED on 2024.02.04, use class L{pygeodesy.Ned}.\n  deprecated_class(self.__class__)\n./test/testNavlabExamples.py:41: DeprecationWarning: method L{toRepr<pygeodesy.ellipsoidalNvector.Ned.toRepr>} has been DEPRECATED, use class L{pygeodesy.Ned}.\n  t.test(1, 'delta', delta.toRepr(prec=3), '[L:470357.384, B:45.109°, E:-2.12°]')  # DEPRECATED\n./test/testNavlabExamples.py:43: DeprecationWarning: Property_RO L{bearing<pygeodesy.ellipsoidalNvector.Ned.bearing>} has been DEPRECATED, use C{azimuth}.\n  t.test(1, 'bearing', delta.bearing, 45.109, fmt='%.3f')  # 45.109°\n./test/testNavlabExamples.py:44: DeprecationWarning: Property_RO L{length<pygeodesy.ellipsoidalNvector.Ned.length>} has been DEPRECATED, use C{slantrange}.\n  t.test(1, 'length', delta.length, 470357.384, fmt='%.3f')  # 470357.384 m\n./test/testNavlabExamples.py:63: DeprecationWarning: method L{toRepr<pygeodesy.ellipsoidalNvector.Ned.toRepr>} has been DEPRECATED, use class L{pygeodesy.Ned}.\n  t.test(2, 'delta', delta.toRepr(prec=3), '[L:3606.938, B:33.69°, E:-1.589°]')  # DEPRECATED\n./pygeodesy/ellipsoidalNvector.py:247: DeprecationWarning: Property_RO L{ned<pygeodesy.ellipsoidalNvector.Ned.ned>} has been DEPRECATED, use property C{ned4}.\n  dn = delta.ned[:3]  # XXX Ned4Tuple.to3Tuple\n./pygeodesy/deprecated/classes.py:33: DeprecationWarning: class L{Ned3Tuple<pygeodesy.deprecated.classes.Ned3Tuple>} has been DEPRECATED, use class L{Ned4Tuple}, ignoring item C{ltp}.\n  deprecated_class(cls)\n./test/testNavlabExamples.py:71: DeprecationWarning: method L{toRepr<pygeodesy.ellipsoidalNvector.Ned.toRepr>} has been DEPRECATED, use class L{pygeodesy.Ned}.\n  t.test(2, 'delta', delta.toRepr(prec=3), '[L:116807.681, B:222.493°, E:-0.524°]')  # DEPRECATED\n./pygeodesy/ellipsoidalKarney.py:94: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return self.datum.ellipsoid.geodesic\n./test/testNavlabExamples.py:143: DeprecationWarning: function L{toNed<pygeodesy.ellipsoidalNvector.toNed>} has been DEPRECATED, use L{pygeodesy.Aer}C{(bearing, elevation, distance).xyzLocal.toNed(B{Ned}, name=B{name})} or L{XyzLocal}C{(pygeodesy.Aer(bearing, elevation, distance)).toNed(B{Ned}, name=B{name})}.\n  d = ellipsoidalNvector.toNed(116809.178, 222.493, -0.5416)\n./test/testNavlabExamples.py:145: DeprecationWarning: Property_RO L{bearing<pygeodesy.ellipsoidalNvector.Ned.bearing>} has been DEPRECATED, use C{azimuth}.\n  TestsBase.test(t, 'bearing',   d.bearing, '227.507',  fmt='%.3f')  # '222.493'\n./test/testNavlabExamples.py:147: DeprecationWarning: Property_RO L{length<pygeodesy.ellipsoidalNvector.Ned.length>} has been DEPRECATED, use C{slantrange}.\n  TestsBase.test(t, 'length',    d.length, '116809.178',  fmt='%.3f')\n./test/testNavlabExamples.py:148: DeprecationWarning: method L{toVector3d<pygeodesy.ellipsoidalNvector.Ned.toVector3d>} has been DEPRECATED, use property L{xyz}.\n  v = d.toVector3d()\n\n    testing testNavlabExamples.py 23.03.27\n    test 1 Example 1 delta: [331730.863, 332998.501, 17398.304]\n    test 2 Example 1 delta: [L:470357.384, B:45.109°, E:-2.12°]\n    test 3 Example 1 elevation: -2.1198\n    test 4 Example 1 bearing: 45.109\n    test 5 Example 1 length: 470357.384\n\n    test 6 Example 1 delta: [331730.863, 332998.501, 17398.304]\n    test 7 Example 1 delta: <class 'pygeodesy.ltpTuples.Ned'>\n    test 8 Example 1 delta: (331730.863099, 332998.501491, 17398.304211, Ltp(lat0=1.0, lon0=2.0, height0=3.0, M=EcefMatrix(_0_0_=-0.034899, _0_1_=-0.017442, _0_2_=0.999239, _1_0_=0.999391, _1_1_=-0.000609, _1_2_=0.034894, _2_0_=0.0, _2_1_=0.999848, _2_2_=0.017452), ecef=EcefVeness(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name=''))\n    test 9 Example 1 delta: <class 'pygeodesy.ltpTuples.Ned4Tuple'>\n    test 10 Example 1 delta: <class 'pygeodesy.ecef.EcefVeness'>\n\n    test 11 Example 2 LatLon: 53.301°N, 063.435°E, +400.00m\n    test 12 Example 2 toNvector: (0.267, 0.535, 0.802, +400.00)\n    test 13 Example 2 delta: [3000.0, 2000.0, 100.0]\n    test 14 Example 2 delta: [L:3606.938, B:33.69°, E:-1.589°]\n    test 15 Example 2 destinationNed: 53.327702°N, 063.465119°E, +296.01m  FAILED, KNOWN, expected 53.327726°N, 063.464965°E, +299.138m\n    test 16 Example 2 delta: [-86126, -78900, 1069]\n    test 17 Example 2 delta: [L:116807.681, B:222.493°, E:-0.524°]\n    test 18 Example 2 destinationNed: 48.88667°N, 002.37472°E\n\n    test 19 Example 3 toLatLon: 39.379°N, 048.013°W, +4702059.83m\n\n    test 20 Example 4 toCartesian: [6373290.277, 222560.201, 110568.827]\n\n    test 21 Example 5 distanceTo: 332457\n\n    test 22 Example 6 intermediateChordTo: 89.799981°N, 180.0°E\n    test 23 Example 6 intermediateTo: 89.8°N, 180.0°E\n    test 24 Example 6 intermediateChordTo: 51.372294°N, 000.707192°E\n    test 25 Example 6 intermediateTo: 51.372084°N, 000.707337°E\n\n    test 26 Example 7 meanOf: 67.2362°N, 006.9175°W\n\n    test 27 Example 8 destination(pygeodesy.sphericalNvector): 79.991549°N, 090.017698°W\n    test 28 Example 8 destination(pygeodesy.sphericalTrigonometry): 79.991549°N, 090.017698°W\n    test 29 Example 8 destination(pygeodesy.ellipsoidalVincenty): 79.991584°N, 090.017621°W\n    test 30 Example 8 destination(pygeodesy.ellipsoidalKarney): 79.991584°N, 090.017621°W\n    test 31 Example 8 destination(pygeodesy.ellipsoidalExact): 79.991584°N, 090.017621°W\n\n    test 32 Example 9 intersection: 40.318643°N, 055.901868°E\n\n    test 33 Example 10 crossTrackDistance: 11118\n\n    test 34 toNed: [-78901.1, -86126.6, 1104.1]\n    test 35 bearing: 227.507\n    test 36 elevation: -0.5416\n    test 37 length: 116809.178\n    test 38 toVector3d: (-86126.6, -78901.1, -1104.1)\n\n    19 of 38 testNavlabExamples.py tests (50.0%) FAILED, incl. 1 KNOWN plus 18 DeprecationWarnings (pygeodesy 26.3.26 Python 3.11.9 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 1.24.2 scipy 1.10.1 Math 2 macOS 26.3.1 isLazy 0 -W  default) 63.799 ms\nrunning /usr/local/bin/p....n3.11 -W default ~/PyGeodesy/test/testOsgr.py\n./test/testOsgr.py:25: DeprecationWarning: method L{convertDatum<pygeodesy.ellipsoidalNvector.LatLon.convertDatum>} has been DEPRECATED, use method L{toDatum}.\n  r = p.convertDatum(Datums.OSGB36)\n./test/testOsgr.py:27: DeprecationWarning: method L{convertDatum<pygeodesy.ellipsoidalNvector.LatLon.convertDatum>} has been DEPRECATED, use method L{toDatum}.\n  r = r.convertDatum(Datums.WGS84)\n./test/testOsgr.py:25: DeprecationWarning: method L{convertDatum<pygeodesy.ellipsoidalVincenty.LatLon.convertDatum>} has been DEPRECATED, use method L{toDatum}.\n  r = p.convertDatum(Datums.OSGB36)\n./test/testOsgr.py:27: DeprecationWarning: method L{convertDatum<pygeodesy.ellipsoidalVincenty.LatLon.convertDatum>} has been DEPRECATED, use method L{toDatum}.\n  r = r.convertDatum(Datums.WGS84)\n./test/testOsgr.py:25: DeprecationWarning: method L{convertDatum<pygeodesy.ellipsoidalKarney.LatLon.convertDatum>} has been DEPRECATED, use method L{toDatum}.\n  r = p.convertDatum(Datums.OSGB36)\n./test/testOsgr.py:27: DeprecationWarning: method L{convertDatum<pygeodesy.ellipsoidalKarney.LatLon.convertDatum>} has been DEPRECATED, use method L{toDatum}.\n  r = r.convertDatum(Datums.WGS84)\n./pygeodesy/ellipsoidalKarney.py:94: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return self.datum.ellipsoid.geodesic\n./test/testOsgr.py:25: DeprecationWarning: method L{convertDatum<pygeodesy.ellipsoidalExact.LatLon.convertDatum>} has been DEPRECATED, use method L{toDatum}.\n  r = p.convertDatum(Datums.OSGB36)\n./test/testOsgr.py:27: DeprecationWarning: method L{convertDatum<pygeodesy.ellipsoidalExact.LatLon.convertDatum>} has been DEPRECATED, use method L{toDatum}.\n  r = r.convertDatum(Datums.WGS84)\n\n    testing testOsgr.py 23.03.27 (module pygeodesy.osgr 25.05.12)\n\n    testOSgr(pygeodesy.ellipsoidalNvector, 25.05.12)\n    test 1 WGS84: 51.4778°N, 000.0016°W\n    test 2 OSGB36: 51.477284°N, 000.00002°E\n    test 3 WGS84: 51.4778°N, 000.0016°W\n    test 4 OSgr1: TG 51409 13177\n    test 5 OSgr1: [G:TG, E:51409, N:13177]\n    test 6 iteration: None\n    test 7 toLatLon1: 52°39′28.72″N, 001°42′57.79″E\n    test 8 toLatLon1: 52.657979°N, 001.716052°E\n    test 9 iteration: 4\n    test 10 toOsgr1: 651409.903,313177.270\n    test 11 toOsgr1: 651409.903,313177.270\n    test 12 toOsgr1: TG5140990313177270\n    test 13 toLatLon2: 52°39′27.25″N, 001°43′04.52″E\n    test 14 toLatLon2: 52.65757°N, 001.717922°E  FAILED, KNOWN, expected 52.657570°N, 001.717922°E\n    test 15 iteration: 4\n    test 16 toOsgr2: 651409,313177\n    test 17 toOsgr2: 651409,313177\n    test 18 toOsgr3: TG 51409 13177\n    test 19 toLatLon3: (52.65798, 1.71605, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 20 toOsgr4: TG 51409 13177\n    test 21 toLatLon4: (52.657570000, 1.717910000, Datum(name='OSGB36', ellipsoid=Ellipsoids.Airy1830, transform=Transforms.OSGB36))\n    test 22 toLatLon4: (52.657569999, 1.717910045, Datum(name='OSGB36', ellipsoid=Ellipsoids.Airy1830, transform=Transforms.OSGB36))\n    test 23 toLatLon4: (52.657978296, 1.716040366, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 24 toLatLon4: (52.657978295, 1.716040411, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 25 toOsgr5: 0.001\n    test 26 toOsgr5: TG5140900013177000\n    test 27 toOsgr5: 651409.000,313177.000\n    test 28 toLatLon5: (52.657976595, 1.716038422, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n\n    test 29 OSGR1: TG 48251 11932\n    test 30 OSGR1: [G:TG, E:48251, N:11932]\n    test 31 OSGR2: TG 51409 13177\n    test 32 OSGR2: [G:TG, E:51409, N:13177]\n    test 33 OSGR3: TG 51409 13177\n    test 34 OSGR3: [G:TG, E:51409, N:13177]\n    test 35 OSGR4: TG 51409 13177\n    test 36 OSGR4: [G:TG, E:51409, N:13177]\n    test 37 OSGR5: 651409,313177\n    test 38 OSGR5: TG51409001317700\n    test 39 OSGR5: 651409,313177\n    test 40 OSGR5: 651409.000000,313177.000000\n    test 41 OSGR5: 651409.00,313177.00\n    test 42 OSGR5: [OSGR:651409.000,313177.000]\n    test 43 OSGR5: [OSGR:651409,313177]\n    test 44 OSGR5: [OSGR:651409.000,313177.000]\n    test 45 OSGR5: [OSGR:651,313]\n    test 46 OSGR6: 651409.000,313177.000\n    test 47 OSGR6: 651409,313177\n    test 48 OSGR6: (651409, 313177)\n    test 49 OSGR6: 651409,313177\n    test 50 OSGR6: 651409,313177\n    test 51 OSGR6: (651409, 313177)\n    test 52 OSGR6: 651409 313177\n\n    test 53 issue: 38\n    test 54 toOsgr: [G:TL, E:29158, N:35174]\n    test 55 toOsgr: 529158.072, 235174.785\n    test 56 toOsgr: OSGB36\n    test 57 toLatLonOSGB36: 51°59′58.37″N, 000°07′06.14″W\n    test 58 toLatLonOSGB36: OSGB36\n    test 59 toLatLonWGS84 : 52°00′00.0″N, 000°07′12.0″W\n    test 60 toLatLonWGS84 : WGS84\n\n    test 61 Osgr: [G:TQ, E:32014, N:23971]\n    test 62 Osgr: 532014.0, 123971.0\n    test 63 Osgr: OSGB36\n    test 64 toLatLonOSGB36: 50.999425N, 000.118417W\n    test 65 toLatLonOSGB36: OSGB36\n    test 66 toLatLonWGS84 : 50.999995N, 000.120004W\n    test 67 toLatLonWGS84 : WGS84\n    test 68 parseOSGR: [G:TQ, E:32014, N:23971]\n    test 69 parseOSGR: 532014.0, 123971.0\n    test 70 parseOSGR: OSGB36\n    test 71 toLatLonOSGB36: 50.999425N, 000.118417W\n    test 72 toLatLonOSGB36: OSGB36\n    test 73 toLatLonWGS84: 50.999995N, 000.120004W\n    test 74 toLatLonWGS84: WGS84\n    test 75 toOsgr: [G:TQ, E:32013, N:23971]\n    test 76 toOsgr: 532013.969, 123971.046\n    test 77 toOsgr: OSGB36\n    test 78 toLatLonOSGB36: 50.999426N, 000.118417W\n    test 79 toLatLonOSGB36: OSGB36\n    test 80 toLatLonWGS84 : 50.999995N, 000.120004W\n    test 81 toLatLonWGS84 : WGS84\n    test 82 toOsgr: [G:TQ, E:48853, N:24427]\n    test 83 toOsgr: 548853.602, 124427.985\n    test 84 toOsgr: OSGB36\n    test 85 toLatLonOSGB36: 50.999422N, 000.121618E\n    test 86 toLatLonOSGB36: OSGB36\n    test 87 toLatLonWGS84 : 50.999995N, 000.120004E\n    test 88 toLatLonWGS84 : WGS84\n\n    test 89 LatLon: 49.926244°N, 006.297934°W\n    test 90 datum: WGS84\n    test 91 datum: OSGB36\n    test 92 toOsgr: [G:SV, E:91645, N:11753]\n    test 93 datum: OSGB36\n    test 94 LatLon: 49.926244°N, 006.297934°W\n    test 95 datum: WGS84\n    test 96 distanceTo: 0.0103  FAILED, KNOWN, expected 0.0104\n\n    test 97 prec=-2: [G:SV, E:91600, N:11700]\n\n    test 98 toLatLon: 52.0N, 000.12W\n    test 99 toLatLon: 52.0N, 000.12W\n    test 100 toLatLon: 52.0N, 000.12W\n    test 101 toLatLon: 52.0N, 000.12W\n    test 102 toLatLon: 52.0N, 000.12W\n    test 103 toLatLon: 52.0N, 000.12W\n    test 104 toLatLon: 52.0N, 000.12W\n    test 105 toLatLon: 52.0N, 000.12W\n\n    testOSgr(pygeodesy.ellipsoidalVincenty, 25.05.26)\n    test 106 WGS84: 51.4778°N, 000.0016°W\n    test 107 OSGB36: 51.477284°N, 000.00002°E\n    test 108 WGS84: 51.4778°N, 000.0016°W\n    test 109 OSgr1: TG 51409 13177\n    test 110 OSgr1: [G:TG, E:51409, N:13177]\n    test 111 iteration: None\n    test 112 toLatLon1: 52°39′28.72″N, 001°42′57.79″E\n    test 113 toLatLon1: 52.657979°N, 001.716052°E\n    test 114 iteration: 4\n    test 115 toOsgr1: 651409.903,313177.270\n    test 116 toOsgr1: 651409.903,313177.270\n    test 117 toOsgr1: TG5140990313177270\n    test 118 toLatLon2: 52°39′27.25″N, 001°43′04.52″E\n    test 119 toLatLon2: 52.65757°N, 001.717922°E  FAILED, KNOWN, expected 52.657570°N, 001.717922°E\n    test 120 iteration: 4\n    test 121 toOsgr2: 651409,313177\n    test 122 toOsgr2: 651409,313177\n    test 123 toOsgr3: TG 51409 13177\n    test 124 toLatLon3: (52.65798, 1.71605, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 125 toOsgr4: TG 51409 13177\n    test 126 toLatLon4: (52.657570000, 1.717910000, Datum(name='OSGB36', ellipsoid=Ellipsoids.Airy1830, transform=Transforms.OSGB36))\n    test 127 toLatLon4: (52.657569999, 1.717910045, Datum(name='OSGB36', ellipsoid=Ellipsoids.Airy1830, transform=Transforms.OSGB36))\n    test 128 toLatLon4: (52.657978296, 1.716040366, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 129 toLatLon4: (52.657978295, 1.716040411, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 130 toOsgr5: 0.001\n    test 131 toOsgr5: TG5140900013177000\n    test 132 toOsgr5: 651409.000,313177.000\n    test 133 toLatLon5: (52.657976595, 1.716038422, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n\n    test 134 OSGR1: TG 48251 11932\n    test 135 OSGR1: [G:TG, E:48251, N:11932]\n    test 136 OSGR2: TG 51409 13177\n    test 137 OSGR2: [G:TG, E:51409, N:13177]\n    test 138 OSGR3: TG 51409 13177\n    test 139 OSGR3: [G:TG, E:51409, N:13177]\n    test 140 OSGR4: TG 51409 13177\n    test 141 OSGR4: [G:TG, E:51409, N:13177]\n    test 142 OSGR5: 651409,313177\n    test 143 OSGR5: TG51409001317700\n    test 144 OSGR5: 651409,313177\n    test 145 OSGR5: 651409.000000,313177.000000\n    test 146 OSGR5: 651409.00,313177.00\n    test 147 OSGR5: [OSGR:651409.000,313177.000]\n    test 148 OSGR5: [OSGR:651409,313177]\n    test 149 OSGR5: [OSGR:651409.000,313177.000]\n    test 150 OSGR5: [OSGR:651,313]\n    test 151 OSGR6: 651409.000,313177.000\n    test 152 OSGR6: 651409,313177\n    test 153 OSGR6: (651409, 313177)\n    test 154 OSGR6: 651409,313177\n    test 155 OSGR6: 651409,313177\n    test 156 OSGR6: (651409, 313177)\n    test 157 OSGR6: 651409 313177\n\n    test 158 issue: 38\n    test 159 toOsgr: [G:TL, E:29158, N:35174]\n    test 160 toOsgr: 529158.072, 235174.785\n    test 161 toOsgr: OSGB36\n    test 162 toLatLonOSGB36: 51°59′58.37″N, 000°07′06.14″W\n    test 163 toLatLonOSGB36: OSGB36\n    test 164 toLatLonWGS84 : 52°00′00.0″N, 000°07′12.0″W\n    test 165 toLatLonWGS84 : WGS84\n\n    test 166 Osgr: [G:TQ, E:32014, N:23971]\n    test 167 Osgr: 532014.0, 123971.0\n    test 168 Osgr: OSGB36\n    test 169 toLatLonOSGB36: 50.999425N, 000.118417W\n    test 170 toLatLonOSGB36: OSGB36\n    test 171 toLatLonWGS84 : 50.999995N, 000.120004W\n    test 172 toLatLonWGS84 : WGS84\n    test 173 parseOSGR: [G:TQ, E:32014, N:23971]\n    test 174 parseOSGR: 532014.0, 123971.0\n    test 175 parseOSGR: OSGB36\n    test 176 toLatLonOSGB36: 50.999425N, 000.118417W\n    test 177 toLatLonOSGB36: OSGB36\n    test 178 toLatLonWGS84: 50.999995N, 000.120004W\n    test 179 toLatLonWGS84: WGS84\n    test 180 toOsgr: [G:TQ, E:32013, N:23971]\n    test 181 toOsgr: 532013.969, 123971.046\n    test 182 toOsgr: OSGB36\n    test 183 toLatLonOSGB36: 50.999426N, 000.118417W\n    test 184 toLatLonOSGB36: OSGB36\n    test 185 toLatLonWGS84 : 50.999995N, 000.120004W\n    test 186 toLatLonWGS84 : WGS84\n    test 187 toOsgr: [G:TQ, E:48853, N:24427]\n    test 188 toOsgr: 548853.602, 124427.985\n    test 189 toOsgr: OSGB36\n    test 190 toLatLonOSGB36: 50.999422N, 000.121618E\n    test 191 toLatLonOSGB36: OSGB36\n    test 192 toLatLonWGS84 : 50.999995N, 000.120004E\n    test 193 toLatLonWGS84 : WGS84\n\n    test 194 LatLon: 49.926244°N, 006.297934°W\n    test 195 datum: WGS84\n    test 196 datum: OSGB36\n    test 197 toOsgr: [G:SV, E:91645, N:11753]\n    test 198 datum: OSGB36\n    test 199 LatLon: 49.926244°N, 006.297934°W\n    test 200 datum: WGS84\n    test 201 distanceTo: 0.0104\n\n    test 202 prec=-2: [G:SV, E:91600, N:11700]\n\n    test 203 toLatLon: 52.0N, 000.12W\n    test 204 toLatLon: 52.0N, 000.12W\n    test 205 toLatLon: 52.0N, 000.12W\n    test 206 toLatLon: 52.0N, 000.12W\n    test 207 toLatLon: 52.0N, 000.12W\n    test 208 toLatLon: 52.0N, 000.12W\n    test 209 toLatLon: 52.0N, 000.12W\n    test 210 toLatLon: 52.0N, 000.12W\n\n    testOSgr(pygeodesy.ellipsoidalKarney, 25.05.27)\n    test 211 WGS84: 51.4778°N, 000.0016°W\n    test 212 OSGB36: 51.477284°N, 000.00002°E\n    test 213 WGS84: 51.4778°N, 000.0016°W\n    test 214 OSgr1: TG 51409 13177\n    test 215 OSgr1: [G:TG, E:51409, N:13177]\n    test 216 iteration: None\n    test 217 toLatLon1: 52°39′28.72″N, 001°42′57.79″E\n    test 218 toLatLon1: 52.657979°N, 001.716052°E\n    test 219 iteration: 4\n    test 220 toOsgr1: 651409.903,313177.270\n    test 221 toOsgr1: 651409.903,313177.270\n    test 222 toOsgr1: TG5140990313177270\n    test 223 toLatLon2: 52°39′27.25″N, 001°43′04.52″E\n    test 224 toLatLon2: 52.65757°N, 001.717922°E  FAILED, KNOWN, expected 52.657570°N, 001.717922°E\n    test 225 iteration: 4\n    test 226 toOsgr2: 651409,313177\n    test 227 toOsgr2: 651409,313177\n    test 228 toOsgr3: TG 51409 13177\n    test 229 toLatLon3: (52.65798, 1.71605, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 230 toOsgr4: TG 51409 13177\n    test 231 toLatLon4: (52.657570000, 1.717910000, Datum(name='OSGB36', ellipsoid=Ellipsoids.Airy1830, transform=Transforms.OSGB36))\n    test 232 toLatLon4: (52.657569999, 1.717910045, Datum(name='OSGB36', ellipsoid=Ellipsoids.Airy1830, transform=Transforms.OSGB36))\n    test 233 toLatLon4: (52.657978296, 1.716040366, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 234 toLatLon4: (52.657978295, 1.716040411, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 235 toOsgr5: 0.001\n    test 236 toOsgr5: TG5140900013177000\n    test 237 toOsgr5: 651409.000,313177.000\n    test 238 toLatLon5: (52.657976595, 1.716038422, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n\n    test 239 OSGR1: TG 48251 11932\n    test 240 OSGR1: [G:TG, E:48251, N:11932]\n    test 241 OSGR2: TG 51409 13177\n    test 242 OSGR2: [G:TG, E:51409, N:13177]\n    test 243 OSGR3: TG 51409 13177\n    test 244 OSGR3: [G:TG, E:51409, N:13177]\n    test 245 OSGR4: TG 51409 13177\n    test 246 OSGR4: [G:TG, E:51409, N:13177]\n    test 247 OSGR5: 651409,313177\n    test 248 OSGR5: TG51409001317700\n    test 249 OSGR5: 651409,313177\n    test 250 OSGR5: 651409.000000,313177.000000\n    test 251 OSGR5: 651409.00,313177.00\n    test 252 OSGR5: [OSGR:651409.000,313177.000]\n    test 253 OSGR5: [OSGR:651409,313177]\n    test 254 OSGR5: [OSGR:651409.000,313177.000]\n    test 255 OSGR5: [OSGR:651,313]\n    test 256 OSGR6: 651409.000,313177.000\n    test 257 OSGR6: 651409,313177\n    test 258 OSGR6: (651409, 313177)\n    test 259 OSGR6: 651409,313177\n    test 260 OSGR6: 651409,313177\n    test 261 OSGR6: (651409, 313177)\n    test 262 OSGR6: 651409 313177\n\n    test 263 issue: 38\n    test 264 toOsgr: [G:TL, E:29158, N:35174]\n    test 265 toOsgr: 529158.072, 235174.785\n    test 266 toOsgr: OSGB36\n    test 267 toLatLonOSGB36: 51°59′58.37″N, 000°07′06.14″W\n    test 268 toLatLonOSGB36: OSGB36\n    test 269 toLatLonWGS84 : 52°00′00.0″N, 000°07′12.0″W\n    test 270 toLatLonWGS84 : WGS84\n\n    test 271 Osgr: [G:TQ, E:32014, N:23971]\n    test 272 Osgr: 532014.0, 123971.0\n    test 273 Osgr: OSGB36\n    test 274 toLatLonOSGB36: 50.999425N, 000.118417W\n    test 275 toLatLonOSGB36: OSGB36\n    test 276 toLatLonWGS84 : 50.999995N, 000.120004W\n    test 277 toLatLonWGS84 : WGS84\n    test 278 parseOSGR: [G:TQ, E:32014, N:23971]\n    test 279 parseOSGR: 532014.0, 123971.0\n    test 280 parseOSGR: OSGB36\n    test 281 toLatLonOSGB36: 50.999425N, 000.118417W\n    test 282 toLatLonOSGB36: OSGB36\n    test 283 toLatLonWGS84: 50.999995N, 000.120004W\n    test 284 toLatLonWGS84: WGS84\n    test 285 toOsgr: [G:TQ, E:32013, N:23971]\n    test 286 toOsgr: 532013.969, 123971.046\n    test 287 toOsgr: OSGB36\n    test 288 toLatLonOSGB36: 50.999426N, 000.118417W\n    test 289 toLatLonOSGB36: OSGB36\n    test 290 toLatLonWGS84 : 50.999995N, 000.120004W\n    test 291 toLatLonWGS84 : WGS84\n    test 292 toOsgr: [G:TQ, E:48853, N:24427]\n    test 293 toOsgr: 548853.602, 124427.985\n    test 294 toOsgr: OSGB36\n    test 295 toLatLonOSGB36: 50.999422N, 000.121618E\n    test 296 toLatLonOSGB36: OSGB36\n    test 297 toLatLonWGS84 : 50.999995N, 000.120004E\n    test 298 toLatLonWGS84 : WGS84\n\n    test 299 LatLon: 49.926244°N, 006.297934°W\n    test 300 datum: WGS84\n    test 301 datum: OSGB36\n    test 302 toOsgr: [G:SV, E:91645, N:11753]\n    test 303 datum: OSGB36\n    test 304 LatLon: 49.926244°N, 006.297934°W\n    test 305 datum: WGS84\n    test 306 distanceTo: 0.0104\n\n    test 307 prec=-2: [G:SV, E:91600, N:11700]\n\n    test 308 toLatLon: 52.0N, 000.12W\n    test 309 toLatLon: 52.0N, 000.12W\n    test 310 toLatLon: 52.0N, 000.12W\n    test 311 toLatLon: 52.0N, 000.12W\n    test 312 toLatLon: 52.0N, 000.12W\n    test 313 toLatLon: 52.0N, 000.12W\n    test 314 toLatLon: 52.0N, 000.12W\n    test 315 toLatLon: 52.0N, 000.12W\n\n    testOSgr(pygeodesy.ellipsoidalExact, 25.08.28)\n    test 316 WGS84: 51.4778°N, 000.0016°W\n    test 317 OSGB36: 51.477284°N, 000.00002°E\n    test 318 WGS84: 51.4778°N, 000.0016°W\n    test 319 OSgr1: TG 51409 13177\n    test 320 OSgr1: [G:TG, E:51409, N:13177]\n    test 321 iteration: None\n    test 322 toLatLon1: 52°39′28.72″N, 001°42′57.79″E\n    test 323 toLatLon1: 52.657979°N, 001.716052°E\n    test 324 iteration: 4\n    test 325 toOsgr1: 651409.903,313177.270\n    test 326 toOsgr1: 651409.903,313177.270\n    test 327 toOsgr1: TG5140990313177270\n    test 328 toLatLon2: 52°39′27.25″N, 001°43′04.52″E\n    test 329 toLatLon2: 52.65757°N, 001.717922°E  FAILED, KNOWN, expected 52.657570°N, 001.717922°E\n    test 330 iteration: 4\n    test 331 toOsgr2: 651409,313177\n    test 332 toOsgr2: 651409,313177\n    test 333 toOsgr3: TG 51409 13177\n    test 334 toLatLon3: (52.65798, 1.71605, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 335 toOsgr4: TG 51409 13177\n    test 336 toLatLon4: (52.657570000, 1.717910000, Datum(name='OSGB36', ellipsoid=Ellipsoids.Airy1830, transform=Transforms.OSGB36))\n    test 337 toLatLon4: (52.657569999, 1.717910045, Datum(name='OSGB36', ellipsoid=Ellipsoids.Airy1830, transform=Transforms.OSGB36))\n    test 338 toLatLon4: (52.657978296, 1.716040366, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 339 toLatLon4: (52.657978295, 1.716040411, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 340 toOsgr5: 0.001\n    test 341 toOsgr5: TG5140900013177000\n    test 342 toOsgr5: 651409.000,313177.000\n    test 343 toLatLon5: (52.657976595, 1.716038422, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n\n    test 344 OSGR1: TG 48251 11932\n    test 345 OSGR1: [G:TG, E:48251, N:11932]\n    test 346 OSGR2: TG 51409 13177\n    test 347 OSGR2: [G:TG, E:51409, N:13177]\n    test 348 OSGR3: TG 51409 13177\n    test 349 OSGR3: [G:TG, E:51409, N:13177]\n    test 350 OSGR4: TG 51409 13177\n    test 351 OSGR4: [G:TG, E:51409, N:13177]\n    test 352 OSGR5: 651409,313177\n    test 353 OSGR5: TG51409001317700\n    test 354 OSGR5: 651409,313177\n    test 355 OSGR5: 651409.000000,313177.000000\n    test 356 OSGR5: 651409.00,313177.00\n    test 357 OSGR5: [OSGR:651409.000,313177.000]\n    test 358 OSGR5: [OSGR:651409,313177]\n    test 359 OSGR5: [OSGR:651409.000,313177.000]\n    test 360 OSGR5: [OSGR:651,313]\n    test 361 OSGR6: 651409.000,313177.000\n    test 362 OSGR6: 651409,313177\n    test 363 OSGR6: (651409, 313177)\n    test 364 OSGR6: 651409,313177\n    test 365 OSGR6: 651409,313177\n    test 366 OSGR6: (651409, 313177)\n    test 367 OSGR6: 651409 313177\n\n    test 368 issue: 38\n    test 369 toOsgr: [G:TL, E:29158, N:35174]\n    test 370 toOsgr: 529158.072, 235174.785\n    test 371 toOsgr: OSGB36\n    test 372 toLatLonOSGB36: 51°59′58.37″N, 000°07′06.14″W\n    test 373 toLatLonOSGB36: OSGB36\n    test 374 toLatLonWGS84 : 52°00′00.0″N, 000°07′12.0″W\n    test 375 toLatLonWGS84 : WGS84\n\n    test 376 Osgr: [G:TQ, E:32014, N:23971]\n    test 377 Osgr: 532014.0, 123971.0\n    test 378 Osgr: OSGB36\n    test 379 toLatLonOSGB36: 50.999425N, 000.118417W\n    test 380 toLatLonOSGB36: OSGB36\n    test 381 toLatLonWGS84 : 50.999995N, 000.120004W\n    test 382 toLatLonWGS84 : WGS84\n    test 383 parseOSGR: [G:TQ, E:32014, N:23971]\n    test 384 parseOSGR: 532014.0, 123971.0\n    test 385 parseOSGR: OSGB36\n    test 386 toLatLonOSGB36: 50.999425N, 000.118417W\n    test 387 toLatLonOSGB36: OSGB36\n    test 388 toLatLonWGS84: 50.999995N, 000.120004W\n    test 389 toLatLonWGS84: WGS84\n    test 390 toOsgr: [G:TQ, E:32013, N:23971]\n    test 391 toOsgr: 532013.969, 123971.046\n    test 392 toOsgr: OSGB36\n    test 393 toLatLonOSGB36: 50.999426N, 000.118417W\n    test 394 toLatLonOSGB36: OSGB36\n    test 395 toLatLonWGS84 : 50.999995N, 000.120004W\n    test 396 toLatLonWGS84 : WGS84\n    test 397 toOsgr: [G:TQ, E:48853, N:24427]\n    test 398 toOsgr: 548853.602, 124427.985\n    test 399 toOsgr: OSGB36\n    test 400 toLatLonOSGB36: 50.999422N, 000.121618E\n    test 401 toLatLonOSGB36: OSGB36\n    test 402 toLatLonWGS84 : 50.999995N, 000.120004E\n    test 403 toLatLonWGS84 : WGS84\n\n    test 404 LatLon: 49.926244°N, 006.297934°W\n    test 405 datum: WGS84\n    test 406 datum: OSGB36\n    test 407 toOsgr: [G:SV, E:91645, N:11753]\n    test 408 datum: OSGB36\n    test 409 LatLon: 49.926244°N, 006.297934°W\n    test 410 datum: WGS84\n    test 411 distanceTo: 0.0104\n\n    test 412 prec=-2: [G:SV, E:91600, N:11700]\n\n    test 413 toLatLon: 52.0N, 000.12W\n    test 414 toLatLon: 52.0N, 000.12W\n    test 415 toLatLon: 52.0N, 000.12W\n    test 416 toLatLon: 52.0N, 000.12W\n    test 417 toLatLon: 52.0N, 000.12W\n    test 418 toLatLon: 52.0N, 000.12W\n    test 419 toLatLon: 52.0N, 000.12W\n    test 420 toLatLon: 52.0N, 000.12W\n\n    14 of 420 testOsgr.py tests (3.3%) FAILED, incl. 5 KNOWN plus 9 DeprecationWarnings (pygeodesy 26.3.26 Python 3.11.9 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 1.24.2 scipy 1.10.1 Math 2 macOS 26.3.1 isLazy 0 -W  default) 161.607 ms\nrunning /usr/local/bin/p....n3.11 -W default ~/PyGeodesy/test/testPoints.py\n\n    testing testPoints.py 23.12.03 (module pygeodesy.points 25.05.12)\n    test 1 sizeof(LatLon_.__dict__): 56\n    test 2 LatLon2psxy.ABC: True\n    test 3 LatLon2psxy.epsilon: 2.220446049250313e-16\n    test 4 LatLon2psxy.epsilon: 0.0\n    test 5 LatLon2psxy.len: 69\n    test 6 LatLon2psxy.iter: 69\n    test 7 LatLon2psxy.slice1: 11\n    test 8 LatLon2psxy.slice2: <class 'pygeodesy.points.LatLon2psxy'>\n    test 9 LatLon2psxy.slice3: (-0.701418, 52.220485, LatLon_(52.220485°N, 000.701418°W))\n    test 10 LatLon2psxy.str/repr: LatLon2psxy('[LatLon_(52.220489°N, 000.701206°W) ... ][69]', closed=False, radius=None, wrap=False)\n    test 11 LatLon2psxy.find LL: 10\n    test 12 LatLon2psxy.find LL: -1\n    test 13 LatLon2psxy.count: 1\n    test 14 LatLon2psxy.index: 10\n    test 15 LatLon2psxy.rfind: 10\n    test 16 LatLon2psxy.in: True\n    test 17 LatLon2psxy.count: 0\n    test 18 LatLon2psxy.find: -1\n    test 19 LatLon2psxy.rfind: -1\n    test 20 LatLon2psxy.not in: True\n    test 21 LatLon2psxy.find LL: 20\n    test 22 LatLon2psxy.find LL: -1\n    test 23 LatLon2psxy.count: 1\n    test 24 LatLon2psxy.index: 20\n    test 25 LatLon2psxy.rfind: 20\n    test 26 LatLon2psxy.in: True\n    test 27 LatLon2psxy.count: 0\n    test 28 LatLon2psxy.find: -1\n    test 29 LatLon2psxy.rfind: -1\n    test 30 LatLon2psxy.not in: True\n    test 31 LatLon2psxy.find LL: 30\n    test 32 LatLon2psxy.find LL: -1\n    test 33 LatLon2psxy.count: 1\n    test 34 LatLon2psxy.index: 30\n    test 35 LatLon2psxy.rfind: 30\n    test 36 LatLon2psxy.in: True\n    test 37 LatLon2psxy.count: 0\n    test 38 LatLon2psxy.find: -1\n    test 39 LatLon2psxy.rfind: -1\n    test 40 LatLon2psxy.not in: True\n    test 41 LatLon2psxy.find LL: 40\n    test 42 LatLon2psxy.find LL: -1\n    test 43 LatLon2psxy.count: 1\n    test 44 LatLon2psxy.index: 40\n    test 45 LatLon2psxy.rfind: 40\n    test 46 LatLon2psxy.in: True\n    test 47 LatLon2psxy.count: 0\n    test 48 LatLon2psxy.find: -1\n    test 49 LatLon2psxy.rfind: -1\n    test 50 LatLon2psxy.not in: True\n    test 51 LatLon2psxy.find LL: 50\n    test 52 LatLon2psxy.find LL: -1\n    test 53 LatLon2psxy.count: 1\n    test 54 LatLon2psxy.index: 50\n    test 55 LatLon2psxy.rfind: 50\n    test 56 LatLon2psxy.in: True\n    test 57 LatLon2psxy.count: 0\n    test 58 LatLon2psxy.find: -1\n    test 59 LatLon2psxy.rfind: -1\n    test 60 LatLon2psxy.not in: True\n    test 61 LatLon2psxy.find LL: 60\n    test 62 LatLon2psxy.find LL: -1\n    test 63 LatLon2psxy.count: 1\n    test 64 LatLon2psxy.index: 60\n    test 65 LatLon2psxy.rfind: 60\n    test 66 LatLon2psxy.in: True\n    test 67 LatLon2psxy.count: 0\n    test 68 LatLon2psxy.find: -1\n    test 69 LatLon2psxy.rfind: -1\n    test 70 LatLon2psxy.not in: True\n    test 71 LatLon2psxy.enumerate[0]: (-0.701206, 52.220489, LatLon_(52.220489°N, 000.701206°W))\n    test 72 LatLon2psxy.enumerate[1]: (-0.705456, 52.221916, LatLon_(52.221916°N, 000.705456°W))\n    test 73 LatLon2psxy.enumerate[2]: (-0.71, 52.225944, LatLon_(52.225944°N, 000.71°W))\n    test 74 LatLon2psxy.enumerate[3]: (-0.71446, 52.232448, LatLon_(52.232448°N, 000.71446°W))\n    test 75 LatLon2psxy.enumerate[4]: (-0.71486, 52.233013, LatLon_(52.233013°N, 000.71486°W))\n    test 76 LatLon2psxy.enumerate[5]: (-0.714348, 52.234375, LatLon_(52.234375°N, 000.714348°W))\n    test 77 LatLon2psxy.enumerate[6]: (-0.713572, 52.235607, LatLon_(52.235607°N, 000.713572°W))\n    test 78 LatLon2psxy.enumerate[7]: (-0.71233, 52.237495, LatLon_(52.237495°N, 000.71233°W))\n    test 79 LatLon2psxy.enumerate[8]: (-0.710784, 52.239315, LatLon_(52.239315°N, 000.710784°W))\n    test 80 LatLon2psxy.enumerate[9]: (-0.708684, 52.240627, LatLon_(52.240627°N, 000.708684°W))\n    test 81 LatLon2psxy.enumerate[10]: (-0.707042, 52.240745, LatLon_(52.240745°N, 000.707042°W))\n    test 82 LatLon2psxy.enumerate[11]: (-0.704945, 52.240863, LatLon_(52.240863°N, 000.704945°W))\n    test 83 LatLon2psxy.enumerate[*]: 11\n    test 84 LatLon2psxy.reversed[11]: (-0.704945, 52.240863, LatLon_(52.240863°N, 000.704945°W))\n    test 85 LatLon2psxy.reversed[10]: (-0.707042, 52.240745, LatLon_(52.240745°N, 000.707042°W))\n    test 86 LatLon2psxy.reversed[9]: (-0.708684, 52.240627, LatLon_(52.240627°N, 000.708684°W))\n    test 87 LatLon2psxy.reversed[8]: (-0.710784, 52.239315, LatLon_(52.239315°N, 000.710784°W))\n    test 88 LatLon2psxy.reversed[7]: (-0.71233, 52.237495, LatLon_(52.237495°N, 000.71233°W))\n    test 89 LatLon2psxy.reversed[6]: (-0.713572, 52.235607, LatLon_(52.235607°N, 000.713572°W))\n    test 90 LatLon2psxy.reversed[5]: (-0.714348, 52.234375, LatLon_(52.234375°N, 000.714348°W))\n    test 91 LatLon2psxy.reversed[4]: (-0.71486, 52.233013, LatLon_(52.233013°N, 000.71486°W))\n    test 92 LatLon2psxy.reversed[3]: (-0.71446, 52.232448, LatLon_(52.232448°N, 000.71446°W))\n    test 93 LatLon2psxy.reversed[2]: (-0.71, 52.225944, LatLon_(52.225944°N, 000.71°W))\n    test 94 LatLon2psxy.reversed[1]: (-0.705456, 52.221916, LatLon_(52.221916°N, 000.705456°W))\n    test 95 LatLon2psxy.reversed[0]: (-0.701206, 52.220489, LatLon_(52.220489°N, 000.701206°W))\n    test 96 LatLon2psxy.findall[0]: (0,)\n    test 97 LatLon2psxy.findall[1]: (1,)\n    test 98 LatLon2psxy.findall[2]: (2,)\n    test 99 LatLon2psxy.findall[3]: (3,)\n    test 100 LatLon2psxy.findall[4]: (4,)\n    test 101 LatLon2psxy.findall[5]: (5,)\n    test 102 LatLon2psxy.findall[6]: (6,)\n    test 103 LatLon2psxy.findall[7]: (7,)\n    test 104 LatLon2psxy.findall[8]: (8,)\n    test 105 LatLon2psxy.findall[9]: (9,)\n    test 106 LatLon2psxy.findall[10]: (10,)\n    test 107 LatLon2psxy.findall[11]: (11,)\n    test 108 LatLon2psxy.findall[*]: 11\n    test 109 LatLon2psxy.isNumpy2: False\n    test 110 LatLon2psxy.isPoints2: True\n    test 111 LatLon2psxy.isTuple2: False\n    test 112 numpy.__version__: 1.24.2\n    test 113 Numpy2LatLon.ABC: True\n    test 114 Numpy2LatLon.epsilon: 2.220446049250313e-16\n    test 115 Numpy2LatLon.epsilon: 0.0\n    test 116 Numpy2LatLon.len: 69\n    test 117 Numpy2LatLon.iter: 69\n    test 118 Numpy2LatLon.shape: (69, 4)\n    test 119 Numpy2LatLon.slice1: 11\n    test 120 Numpy2LatLon.slice2: <class 'pygeodesy.points.Numpy2LatLon'>\n    test 121 Numpy2LatLon.slice3: 52.220485°N, 000.701418°W\n    test 122 Numpy2LatLon.str/repr: Numpy2LatLon('array([[-0.701206, 0. , 52.220489, 0. ]] ... )[69]', ilat=2, ilon=0)\n    test 123 Numpy2LatLon.subset: <class 'numpy.ndarray'>\n    test 124 Numpy2LatLon.count: 1\n    test 125 Numpy2LatLon.index: 10\n    test 126 Numpy2LatLon.rfind: 10\n    test 127 Numpy2LatLon.in: True\n    test 128 Numpy2LatLon.count: 0\n    test 129 Numpy2LatLon.find: -1\n    test 130 Numpy2LatLon.rfind: -1\n    test 131 Numpy2LatLon.not in: True\n    test 132 Numpy2LatLon.count: 1\n    test 133 Numpy2LatLon.index: 20\n    test 134 Numpy2LatLon.rfind: 20\n    test 135 Numpy2LatLon.in: True\n    test 136 Numpy2LatLon.count: 0\n    test 137 Numpy2LatLon.find: -1\n    test 138 Numpy2LatLon.rfind: -1\n    test 139 Numpy2LatLon.not in: True\n    test 140 Numpy2LatLon.count: 1\n    test 141 Numpy2LatLon.index: 30\n    test 142 Numpy2LatLon.rfind: 30\n    test 143 Numpy2LatLon.in: True\n    test 144 Numpy2LatLon.count: 0\n    test 145 Numpy2LatLon.find: -1\n    test 146 Numpy2LatLon.rfind: -1\n    test 147 Numpy2LatLon.not in: True\n    test 148 Numpy2LatLon.count: 1\n    test 149 Numpy2LatLon.index: 40\n    test 150 Numpy2LatLon.rfind: 40\n    test 151 Numpy2LatLon.in: True\n    test 152 Numpy2LatLon.count: 0\n    test 153 Numpy2LatLon.find: -1\n    test 154 Numpy2LatLon.rfind: -1\n    test 155 Numpy2LatLon.not in: True\n    test 156 Numpy2LatLon.count: 1\n    test 157 Numpy2LatLon.index: 50\n    test 158 Numpy2LatLon.rfind: 50\n    test 159 Numpy2LatLon.in: True\n    test 160 Numpy2LatLon.count: 0\n    test 161 Numpy2LatLon.find: -1\n    test 162 Numpy2LatLon.rfind: -1\n    test 163 Numpy2LatLon.not in: True\n    test 164 Numpy2LatLon.count: 1\n    test 165 Numpy2LatLon.index: 60\n    test 166 Numpy2LatLon.rfind: 60\n    test 167 Numpy2LatLon.in: True\n    test 168 Numpy2LatLon.count: 0\n    test 169 Numpy2LatLon.find: -1\n    test 170 Numpy2LatLon.rfind: -1\n    test 171 Numpy2LatLon.not in: True\n    test 172 Numpy2LatLon.enumerate[0]: 52.220489°N, 000.701206°W\n    test 173 Numpy2LatLon.enumerate[1]: 52.221916°N, 000.705456°W\n    test 174 Numpy2LatLon.enumerate[2]: 52.225944°N, 000.71°W\n    test 175 Numpy2LatLon.enumerate[3]: 52.232448°N, 000.71446°W\n    test 176 Numpy2LatLon.enumerate[4]: 52.233013°N, 000.71486°W\n    test 177 Numpy2LatLon.enumerate[5]: 52.234375°N, 000.714348°W\n    test 178 Numpy2LatLon.enumerate[6]: 52.235607°N, 000.713572°W\n    test 179 Numpy2LatLon.enumerate[7]: 52.237495°N, 000.71233°W\n    test 180 Numpy2LatLon.enumerate[8]: 52.239315°N, 000.710784°W\n    test 181 Numpy2LatLon.enumerate[9]: 52.240627°N, 000.708684°W\n    test 182 Numpy2LatLon.enumerate[10]: 52.240745°N, 000.707042°W\n    test 183 Numpy2LatLon.enumerate[11]: 52.240863°N, 000.704945°W\n    test 184 Numpy2LatLon.enumerate[*]: 11\n    test 185 Numpy2LatLon.reversed[11]: 52.240863°N, 000.704945°W\n    test 186 Numpy2LatLon.reversed[10]: 52.240745°N, 000.707042°W\n    test 187 Numpy2LatLon.reversed[9]: 52.240627°N, 000.708684°W\n    test 188 Numpy2LatLon.reversed[8]: 52.239315°N, 000.710784°W\n    test 189 Numpy2LatLon.reversed[7]: 52.237495°N, 000.71233°W\n    test 190 Numpy2LatLon.reversed[6]: 52.235607°N, 000.713572°W\n    test 191 Numpy2LatLon.reversed[5]: 52.234375°N, 000.714348°W\n    test 192 Numpy2LatLon.reversed[4]: 52.233013°N, 000.71486°W\n    test 193 Numpy2LatLon.reversed[3]: 52.232448°N, 000.71446°W\n    test 194 Numpy2LatLon.reversed[2]: 52.225944°N, 000.71°W\n    test 195 Numpy2LatLon.reversed[1]: 52.221916°N, 000.705456°W\n    test 196 Numpy2LatLon.reversed[0]: 52.220489°N, 000.701206°W\n    test 197 Numpy2LatLon.findall[0]: (0,)\n    test 198 Numpy2LatLon.findall[1]: (1,)\n    test 199 Numpy2LatLon.findall[2]: (2,)\n    test 200 Numpy2LatLon.findall[3]: (3,)\n    test 201 Numpy2LatLon.findall[4]: (4,)\n    test 202 Numpy2LatLon.findall[5]: (5,)\n    test 203 Numpy2LatLon.findall[6]: (6,)\n    test 204 Numpy2LatLon.findall[7]: (7,)\n    test 205 Numpy2LatLon.findall[8]: (8,)\n    test 206 Numpy2LatLon.findall[9]: (9,)\n    test 207 Numpy2LatLon.findall[10]: (10,)\n    test 208 Numpy2LatLon.findall[11]: (11,)\n    test 209 Numpy2LatLon.findall[*]: 11\n    test 210 Numpy2LatLon.isNumpy2: True\n    test 211 Numpy2LatLon.isPoints2: False\n    test 212 Numpy2LatLon.isTuple2: False\n    test 213 Tuple2LatLon.ABC: True\n    test 214 Tuple2LatLon.epsilon: 2.220446049250313e-16\n    test 215 Tuple2LatLon.epsilon: 0.0\n    test 216 Tuple2LatLon.len: 69\n    test 217 Tuple2LatLon.iter: 69\n    test 218 Tuple2LatLon.slice1: 11\n    test 219 Tuple2LatLon.slice2: <class 'pygeodesy.points.Tuple2LatLon'>\n    test 220 Tuple2LatLon.slice3: 52.220485°N, 000.701418°W\n    test 221 Tuple2LatLon.str/repr: Tuple2LatLon('[(0, -0.701206, 0, 52.220489) ... ][69]', ilat=3, ilon=1)\n    test 222 Tuple2LatLon.subset: <class 'list'>\n    test 223 Tuple2LatLon.count: 1\n    test 224 Tuple2LatLon.index: 10\n    test 225 Tuple2LatLon.rfind: 10\n    test 226 Tuple2LatLon.in: True\n    test 227 Tuple2LatLon.count: 0\n    test 228 Tuple2LatLon.find: -1\n    test 229 Tuple2LatLon.rfind: -1\n    test 230 Tuple2LatLon.not in: True\n    test 231 Tuple2LatLon.count: 1\n    test 232 Tuple2LatLon.index: 20\n    test 233 Tuple2LatLon.rfind: 20\n    test 234 Tuple2LatLon.in: True\n    test 235 Tuple2LatLon.count: 0\n    test 236 Tuple2LatLon.find: -1\n    test 237 Tuple2LatLon.rfind: -1\n    test 238 Tuple2LatLon.not in: True\n    test 239 Tuple2LatLon.count: 1\n    test 240 Tuple2LatLon.index: 30\n    test 241 Tuple2LatLon.rfind: 30\n    test 242 Tuple2LatLon.in: True\n    test 243 Tuple2LatLon.count: 0\n    test 244 Tuple2LatLon.find: -1\n    test 245 Tuple2LatLon.rfind: -1\n    test 246 Tuple2LatLon.not in: True\n    test 247 Tuple2LatLon.count: 1\n    test 248 Tuple2LatLon.index: 40\n    test 249 Tuple2LatLon.rfind: 40\n    test 250 Tuple2LatLon.in: True\n    test 251 Tuple2LatLon.count: 0\n    test 252 Tuple2LatLon.find: -1\n    test 253 Tuple2LatLon.rfind: -1\n    test 254 Tuple2LatLon.not in: True\n    test 255 Tuple2LatLon.count: 1\n    test 256 Tuple2LatLon.index: 50\n    test 257 Tuple2LatLon.rfind: 50\n    test 258 Tuple2LatLon.in: True\n    test 259 Tuple2LatLon.count: 0\n    test 260 Tuple2LatLon.find: -1\n    test 261 Tuple2LatLon.rfind: -1\n    test 262 Tuple2LatLon.not in: True\n    test 263 Tuple2LatLon.count: 1\n    test 264 Tuple2LatLon.index: 60\n    test 265 Tuple2LatLon.rfind: 60\n    test 266 Tuple2LatLon.in: True\n    test 267 Tuple2LatLon.count: 0\n    test 268 Tuple2LatLon.find: -1\n    test 269 Tuple2LatLon.rfind: -1\n    test 270 Tuple2LatLon.not in: True\n    test 271 Tuple2LatLon.enumerate[0]: 52.220489°N, 000.701206°W\n    test 272 Tuple2LatLon.enumerate[1]: 52.221916°N, 000.705456°W\n    test 273 Tuple2LatLon.enumerate[2]: 52.225944°N, 000.71°W\n    test 274 Tuple2LatLon.enumerate[3]: 52.232448°N, 000.71446°W\n    test 275 Tuple2LatLon.enumerate[4]: 52.233013°N, 000.71486°W\n    test 276 Tuple2LatLon.enumerate[5]: 52.234375°N, 000.714348°W\n    test 277 Tuple2LatLon.enumerate[6]: 52.235607°N, 000.713572°W\n    test 278 Tuple2LatLon.enumerate[7]: 52.237495°N, 000.71233°W\n    test 279 Tuple2LatLon.enumerate[8]: 52.239315°N, 000.710784°W\n    test 280 Tuple2LatLon.enumerate[9]: 52.240627°N, 000.708684°W\n    test 281 Tuple2LatLon.enumerate[10]: 52.240745°N, 000.707042°W\n    test 282 Tuple2LatLon.enumerate[11]: 52.240863°N, 000.704945°W\n    test 283 Tuple2LatLon.enumerate[*]: 11\n    test 284 Tuple2LatLon.reversed[11]: 52.240863°N, 000.704945°W\n    test 285 Tuple2LatLon.reversed[10]: 52.240745°N, 000.707042°W\n    test 286 Tuple2LatLon.reversed[9]: 52.240627°N, 000.708684°W\n    test 287 Tuple2LatLon.reversed[8]: 52.239315°N, 000.710784°W\n    test 288 Tuple2LatLon.reversed[7]: 52.237495°N, 000.71233°W\n    test 289 Tuple2LatLon.reversed[6]: 52.235607°N, 000.713572°W\n    test 290 Tuple2LatLon.reversed[5]: 52.234375°N, 000.714348°W\n    test 291 Tuple2LatLon.reversed[4]: 52.233013°N, 000.71486°W\n    test 292 Tuple2LatLon.reversed[3]: 52.232448°N, 000.71446°W\n    test 293 Tuple2LatLon.reversed[2]: 52.225944°N, 000.71°W\n    test 294 Tuple2LatLon.reversed[1]: 52.221916°N, 000.705456°W\n    test 295 Tuple2LatLon.reversed[0]: 52.220489°N, 000.701206°W\n    test 296 Tuple2LatLon.findall[0]: (0,)\n    test 297 Tuple2LatLon.findall[1]: (1,)\n    test 298 Tuple2LatLon.findall[2]: (2,)\n    test 299 Tuple2LatLon.findall[3]: (3,)\n    test 300 Tuple2LatLon.findall[4]: (4,)\n    test 301 Tuple2LatLon.findall[5]: (5,)\n    test 302 Tuple2LatLon.findall[6]: (6,)\n    test 303 Tuple2LatLon.findall[7]: (7,)\n    test 304 Tuple2LatLon.findall[8]: (8,)\n    test 305 Tuple2LatLon.findall[9]: (9,)\n    test 306 Tuple2LatLon.findall[10]: (10,)\n    test 307 Tuple2LatLon.findall[11]: (11,)\n    test 308 Tuple2LatLon.findall[*]: 11\n    test 309 Tuple2LatLon.isNumpy2: False\n    test 310 Tuple2LatLon.isPoints2: False\n    test 311 Tuple2LatLon.isTuple2: True\n\n    testing(pygeodesy.points, 25.05.12, LatLon=<class 'pygeodesy.points.LatLon_'>)\n    test 312 areaOf: 8.811228e+09\n    test 313 centroidOf: 45.5, 1.5\n    test 314 perimeterOf: 2.673633e+05\n    test 315 isclockwise: False\n    test 316 isconvex: True\n    test 317 ispolar: False\n    test 318 areaOf: 7.086883e+09\n    test 319 perimeterOf: 2.687460e+05\n    test 320 centroidOf: 0.333333, 0.333333\n    test 321 isclockwise: True\n    test 322 isconvex: True\n    test 323 ispolar: False\n    test 324 areaOf: 2.827856e+10\n    test 325 perimeterOf: 4.717039e+05\n    test 326 centroidOf: 1.0, 1.0\n    test 327 isclockwise: False\n    test 328 isconvex: True\n    test 329 ispolar: False\n    test 330 areaOf: 2.747297e+13\n    test 331 perimeterOf: 2.332643e+07\n    test 332 centroidOf: 52.113, 102.123\n    test 333 isclockwise: False\n    test 334 isconvex: False\n    test 335 ispolar: True\n    test 336 areaOf: 8.482014e+10\n    test 337 perimeterOf: 1.334104e+06\n    test 338 centroidOf: 1.167, 1.667\n    test 339 isclockwise: False\n    test 340 isconvex: False\n    test 341 ispolar: False\n    test 342 areaOf: 5.151974e+13\n    test 343 perimeterOf: 2.638608e+07\n    test 344 centroidOf: -19.444, -133.333\n    test 345 isclockwise: True\n    test 346 isconvex: True\n    test 347 ispolar: False\n./pygeodesy/ellipsoidalKarney.py:94: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return self.datum.ellipsoid.geodesic\n./pygeodesy/ellipsoidalKarney.py:139: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return fabs(_polygon(datum.ellipsoid.geodesic, points, True, False, wrap, polar))\n    test 348 areaOf: 1.751694e+12  FAILED, KNOWN, expected 4.469277e+12\n    test 349 perimeterOf: 1.562029e+07\n    test 350 centroidOf: -72.926, 46.47\n    test 351 isclockwise: True\n    test 352 isconvex: False\n    test 353 ispolar: True\n    test 354 points2: 18\n    test 355 nearestOn5: (-77.455114, -16.67063, 4.134666, 307.988253, 0)\n    test 356 areaCO: 2.83192062868e+11  FAILED, KNOWN, expected 2.69601367661e+11\n    test 357 isclockwise: True\n    test 358 perimeterCO: 2098630.956053  FAILED, KNOWN, expected 2099854.381923\n    test 359 boundsOf: (-77.9, -163.0, -63.1, 172.0)\n    test 360 quadOf: 77.9°S, 163.0°W, 63.1°S, 163.0°W, 63.1°S, 172.0°E, 77.9°S, 172.0°E\n    test 361 intermediateTo: 51.368°N, 000.677°E, 'intermediateTo'\n    test 362 intermediateTo: True\n    test 363 intermediateTo: 51.368°N, 000.677°E\n    test 364 intermediateTo: 52.205°N, 000.119°E\n    test 365 intermediateTo: 48.857°N, 002.351°E\n    test 366 _isLatLon_: _Array2LatLon('[ ... ][1]', ilat=0, ilon=1)\n    test 367 latlon: (-66.6, -88.0)\n    test 368 philam: (-1.162389, -1.53589)\n    test 369 toStr: 66.6°S, 088.0°W\n    test 370 __ne__: False\n    test 371 isequalTo: True\n    test 372 isequalTo: True\n    test 373 latlonheight: (-66.6, -88.0, 0)\n    test 374 philamheight: (-1.162389, -1.53589, 0)\n    test 375 _N_vector: (0.01386, -0.39691, -0.91775)\n    test 376 toNvector: (0.01386, -0.39691, -0.91775, 0)\n    test 377 toNvector: (0.01386, -0.396906, -0.917755, 0)\n    test 378 classof: 66.6°S, 088.0°W\n    test 379 others: 66.6°S, 088.0°W\n    test 380 copy(<class 'type'>): (<class 'pygeodesy.points.LatLon_'>, True)\n    test 381 LatLon_.copy(): (<class 'pygeodesy.points.LatLon_'>, True)\n\n    testing(pygeodesy.points, 25.05.12, LatLon=<class 'pygeodesy.sphericalNvector.LatLon'>)\n    test 382 areaOf: 8.811228e+09\n    test 383 centroidOf: 45.5, 1.5\n    test 384 perimeterOf: 2.673633e+05\n    test 385 isclockwise: False\n    test 386 isconvex: True\n    test 387 ispolar: False\n    test 388 areaOf: 7.086883e+09\n    test 389 perimeterOf: 2.687460e+05\n    test 390 centroidOf: 0.333333, 0.333333\n    test 391 isclockwise: True\n    test 392 isconvex: True\n    test 393 ispolar: False\n    test 394 areaOf: 2.827856e+10\n    test 395 perimeterOf: 4.717039e+05\n    test 396 centroidOf: 1.0, 1.0\n    test 397 isclockwise: False\n    test 398 isconvex: True\n    test 399 ispolar: False\n    test 400 areaOf: 2.747297e+13\n    test 401 perimeterOf: 2.332643e+07\n    test 402 centroidOf: 52.113, 102.123\n    test 403 isclockwise: False\n    test 404 isconvex: False\n    test 405 ispolar: True\n    test 406 areaOf: 8.482014e+10\n    test 407 perimeterOf: 1.334104e+06\n    test 408 centroidOf: 1.167, 1.667\n    test 409 isclockwise: False\n    test 410 isconvex: False\n    test 411 ispolar: False\n    test 412 areaOf: 5.151974e+13\n    test 413 perimeterOf: 2.638608e+07\n    test 414 centroidOf: -19.444, -133.333\n    test 415 isclockwise: True\n    test 416 isconvex: True\n    test 417 ispolar: False\n    test 418 areaOf: 1.751694e+12  FAILED, KNOWN, expected 4.469277e+12\n    test 419 perimeterOf: 1.562029e+07\n    test 420 centroidOf: -72.926, 46.47\n    test 421 isclockwise: True\n    test 422 isconvex: False\n    test 423 ispolar: True\n    test 424 points2: 18\n    test 425 nearestOn5: (-77.455114, -16.67063, 4.134666, 307.988253, 0)\n    test 426 areaCO: 2.83192062868e+11  FAILED, KNOWN, expected 2.69601367661e+11\n    test 427 isclockwise: True\n    test 428 perimeterCO: 2098630.956053  FAILED, KNOWN, expected 2099854.381923\n    test 429 latlon: (-66.6, -88.0)\n    test 430 philam: (-1.162389, -1.53589)\n    test 431 latlonheight: (-66.6, -88.0, 0)\n    test 432 philamheight: (-1.162389, -1.53589, 0)\n    test 433 _N_vector: (0.01386, -0.39691, -0.91775)\n    test 434 toNvector: (0.01386, -0.39691, -0.91775)\n    test 435 toNvector: (0.01386, -0.396906, -0.917755, 0)\n    test 436 classof: 66.6°S, 088.0°W\n    test 437 others: 66.6°S, 088.0°W\n    test 438 copy(<class 'type'>): (<class 'pygeodesy.sphericalNvector.LatLon'>, True)\n    test 439 LatLon.copy(): (<class 'pygeodesy.sphericalNvector.LatLon'>, True)\n\n    testing(pygeodesy.points, 25.05.12, LatLon=<class 'pygeodesy.sphericalTrigonometry.LatLon'>)\n    test 440 areaOf: 8.811228e+09\n    test 441 centroidOf: 45.5, 1.5\n    test 442 perimeterOf: 2.673633e+05\n    test 443 isclockwise: False\n    test 444 isconvex: True\n    test 445 ispolar: False\n    test 446 areaOf: 7.086883e+09\n    test 447 perimeterOf: 2.687460e+05\n    test 448 centroidOf: 0.333333, 0.333333\n    test 449 isclockwise: True\n    test 450 isconvex: True\n    test 451 ispolar: False\n    test 452 areaOf: 2.827856e+10\n    test 453 perimeterOf: 4.717039e+05\n    test 454 centroidOf: 1.0, 1.0\n    test 455 isclockwise: False\n    test 456 isconvex: True\n    test 457 ispolar: False\n    test 458 areaOf: 2.747297e+13\n    test 459 perimeterOf: 2.332643e+07\n    test 460 centroidOf: 52.113, 102.123\n    test 461 isclockwise: False\n    test 462 isconvex: False\n    test 463 ispolar: True\n    test 464 areaOf: 8.482014e+10\n    test 465 perimeterOf: 1.334104e+06\n    test 466 centroidOf: 1.167, 1.667\n    test 467 isclockwise: False\n    test 468 isconvex: False\n    test 469 ispolar: False\n    test 470 areaOf: 5.151974e+13\n    test 471 perimeterOf: 2.638608e+07\n    test 472 centroidOf: -19.444, -133.333\n    test 473 isclockwise: True\n    test 474 isconvex: True\n    test 475 ispolar: False\n    test 476 areaOf: 1.751694e+12  FAILED, KNOWN, expected 4.469277e+12\n    test 477 perimeterOf: 1.562029e+07\n    test 478 centroidOf: -72.926, 46.47\n    test 479 isclockwise: True\n    test 480 isconvex: False\n    test 481 ispolar: True\n    test 482 points2: 18\n    test 483 nearestOn5: (-77.455114, -16.67063, 4.134666, 307.988253, 0)\n    test 484 areaCO: 2.83192062868e+11  FAILED, KNOWN, expected 2.69601367661e+11\n    test 485 isclockwise: True\n    test 486 perimeterCO: 2098630.956053  FAILED, KNOWN, expected 2099854.381923\n    test 487 latlon: (-66.6, -88.0)\n    test 488 philam: (-1.162389, -1.53589)\n    test 489 latlonheight: (-66.6, -88.0, 0)\n    test 490 philamheight: (-1.162389, -1.53589, 0)\n    test 491 _N_vector: (0.01386, -0.39691, -0.91775)\n    test 492 toNvector: (0.01386, -0.39691, -0.91775)\n    test 493 toNvector: (0.01386, -0.396906, -0.917755, 0)\n    test 494 classof: 66.6°S, 088.0°W\n    test 495 others: 66.6°S, 088.0°W\n    test 496 copy(<class 'type'>): (<class 'pygeodesy.sphericalTrigonometry.LatLon'>, True)\n    test 497 LatLon.copy(): (<class 'pygeodesy.sphericalTrigonometry.LatLon'>, True)\n\n    testing(pygeodesy.points, 25.05.12, LatLon=<class 'pygeodesy.ellipsoidalNvector.LatLon'>)\n    test 498 areaOf: 8.811228e+09\n    test 499 centroidOf: 45.5, 1.5\n    test 500 perimeterOf: 2.673633e+05\n    test 501 isclockwise: False\n    test 502 isconvex: True\n    test 503 ispolar: False\n    test 504 areaOf: 7.086883e+09\n    test 505 perimeterOf: 2.687460e+05\n    test 506 centroidOf: 0.333333, 0.333333\n    test 507 isclockwise: True\n    test 508 isconvex: True\n    test 509 ispolar: False\n    test 510 areaOf: 2.827856e+10\n    test 511 perimeterOf: 4.717039e+05\n    test 512 centroidOf: 1.0, 1.0\n    test 513 isclockwise: False\n    test 514 isconvex: True\n    test 515 ispolar: False\n    test 516 areaOf: 2.747297e+13\n    test 517 perimeterOf: 2.332643e+07\n    test 518 centroidOf: 52.113, 102.123\n    test 519 isclockwise: False\n    test 520 isconvex: False\n    test 521 ispolar: True\n    test 522 areaOf: 8.482014e+10\n    test 523 perimeterOf: 1.334104e+06\n    test 524 centroidOf: 1.167, 1.667\n    test 525 isclockwise: False\n    test 526 isconvex: False\n    test 527 ispolar: False\n    test 528 areaOf: 5.151974e+13\n    test 529 perimeterOf: 2.638608e+07\n    test 530 centroidOf: -19.444, -133.333\n    test 531 isclockwise: True\n    test 532 isconvex: True\n    test 533 ispolar: False\n    test 534 areaOf: 1.751694e+12  FAILED, KNOWN, expected 4.469277e+12\n    test 535 perimeterOf: 1.562029e+07\n    test 536 centroidOf: -72.926, 46.47\n    test 537 isclockwise: True\n    test 538 isconvex: False\n    test 539 ispolar: True\n    test 540 points2: 18\n    test 541 nearestOn5: (-77.455114, -16.67063, 4.134666, 307.988253, 0)\n    test 542 areaCO: 2.83192062868e+11  FAILED, KNOWN, expected 2.69601367661e+11\n    test 543 isclockwise: True\n    test 544 perimeterCO: 2098630.956053  FAILED, KNOWN, expected 2099854.381923\n    test 545 latlon: (-66.6, -88.0)\n    test 546 philam: (-1.162389, -1.53589)\n    test 547 latlonheight: (-66.6, -88.0, 0)\n    test 548 philamheight: (-1.162389, -1.53589, 0)\n    test 549 _N_vector: (0.01386, -0.39691, -0.91775)\n    test 550 toNvector: (0.01386, -0.39691, -0.91775)\n    test 551 toNvector: (0.01386, -0.396906, -0.917755, 0)\n    test 552 classof: 66.6°S, 088.0°W\n    test 553 others: 66.6°S, 088.0°W\n    test 554 copy(<class 'type'>): (<class 'pygeodesy.ellipsoidalNvector.LatLon'>, True)\n    test 555 LatLon.copy(): (<class 'pygeodesy.ellipsoidalNvector.LatLon'>, True)\n\n    testing(pygeodesy.points, 25.05.12, LatLon=<class 'pygeodesy.ellipsoidalVincenty.LatLon'>)\n    test 556 areaOf: 8.811228e+09\n    test 557 centroidOf: 45.5, 1.5\n    test 558 perimeterOf: 2.673633e+05\n    test 559 isclockwise: False\n    test 560 isconvex: True\n    test 561 ispolar: False\n    test 562 areaOf: 7.086883e+09\n    test 563 perimeterOf: 2.687460e+05\n    test 564 centroidOf: 0.333333, 0.333333\n    test 565 isclockwise: True\n    test 566 isconvex: True\n    test 567 ispolar: False\n    test 568 areaOf: 2.827856e+10\n    test 569 perimeterOf: 4.717039e+05\n    test 570 centroidOf: 1.0, 1.0\n    test 571 isclockwise: False\n    test 572 isconvex: True\n    test 573 ispolar: False\n    test 574 areaOf: 2.747297e+13\n    test 575 perimeterOf: 2.332643e+07\n    test 576 centroidOf: 52.113, 102.123\n    test 577 isclockwise: False\n    test 578 isconvex: False\n    test 579 ispolar: True\n    test 580 areaOf: 8.482014e+10\n    test 581 perimeterOf: 1.334104e+06\n    test 582 centroidOf: 1.167, 1.667\n    test 583 isclockwise: False\n    test 584 isconvex: False\n    test 585 ispolar: False\n    test 586 areaOf: 5.151974e+13\n    test 587 perimeterOf: 2.638608e+07\n    test 588 centroidOf: -19.444, -133.333\n    test 589 isclockwise: True\n    test 590 isconvex: True\n    test 591 ispolar: False\n    test 592 areaOf: 1.751694e+12  FAILED, KNOWN, expected 4.469277e+12\n    test 593 perimeterOf: 1.562029e+07\n    test 594 centroidOf: -72.926, 46.47\n    test 595 isclockwise: True\n    test 596 isconvex: False\n    test 597 ispolar: True\n    test 598 points2: 18\n    test 599 nearestOn5: (-77.455114, -16.67063, 4.134666, 307.988253, 0)\n    test 600 areaCO: 2.83192062868e+11  FAILED, KNOWN, expected 2.69601367661e+11\n    test 601 isclockwise: True\n    test 602 perimeterCO: 2098630.956053  FAILED, KNOWN, expected 2099854.381923\n    test 603 latlon: (-66.6, -88.0)\n    test 604 philam: (-1.162389, -1.53589)\n    test 605 latlonheight: (-66.6, -88.0, 0)\n    test 606 philamheight: (-1.162389, -1.53589, 0)\n    test 607 _N_vector: (0.01386, -0.39691, -0.91775)\n    test 608 toNvector: (0.01386, -0.39691, -0.91775, 0)\n    test 609 toNvector: (0.01386, -0.396906, -0.917755, 0)\n    test 610 classof: 66.6°S, 088.0°W\n    test 611 others: 66.6°S, 088.0°W\n    test 612 copy(<class 'type'>): (<class 'pygeodesy.ellipsoidalVincenty.LatLon'>, True)\n    test 613 LatLon.copy(): (<class 'pygeodesy.ellipsoidalVincenty.LatLon'>, True)\n\n    testing(pygeodesy.points, 25.05.12, LatLon=<class 'pygeodesy.ellipsoidalKarney.LatLon'>)\n    test 614 areaOf: 8.811228e+09\n    test 615 centroidOf: 45.5, 1.5\n    test 616 perimeterOf: 2.673633e+05\n    test 617 isclockwise: False\n    test 618 isconvex: True\n    test 619 ispolar: False\n    test 620 areaOf: 7.086883e+09\n    test 621 perimeterOf: 2.687460e+05\n    test 622 centroidOf: 0.333333, 0.333333\n    test 623 isclockwise: True\n    test 624 isconvex: True\n    test 625 ispolar: False\n    test 626 areaOf: 2.827856e+10\n    test 627 perimeterOf: 4.717039e+05\n    test 628 centroidOf: 1.0, 1.0\n    test 629 isclockwise: False\n    test 630 isconvex: True\n    test 631 ispolar: False\n    test 632 areaOf: 2.747297e+13\n    test 633 perimeterOf: 2.332643e+07\n    test 634 centroidOf: 52.113, 102.123\n    test 635 isclockwise: False\n    test 636 isconvex: False\n    test 637 ispolar: True\n    test 638 areaOf: 8.482014e+10\n    test 639 perimeterOf: 1.334104e+06\n    test 640 centroidOf: 1.167, 1.667\n    test 641 isclockwise: False\n    test 642 isconvex: False\n    test 643 ispolar: False\n    test 644 areaOf: 5.151974e+13\n    test 645 perimeterOf: 2.638608e+07\n    test 646 centroidOf: -19.444, -133.333\n    test 647 isclockwise: True\n    test 648 isconvex: True\n    test 649 ispolar: False\n    test 650 areaOf: 1.751694e+12  FAILED, KNOWN, expected 4.469277e+12\n    test 651 perimeterOf: 1.562029e+07\n    test 652 centroidOf: -72.926, 46.47\n    test 653 isclockwise: True\n    test 654 isconvex: False\n    test 655 ispolar: True\n    test 656 points2: 18\n    test 657 nearestOn5: (-77.455114, -16.67063, 4.134666, 307.988253, 0)\n    test 658 areaCO: 2.83192062868e+11  FAILED, KNOWN, expected 2.69601367661e+11\n    test 659 isclockwise: True\n    test 660 perimeterCO: 2098630.956053  FAILED, KNOWN, expected 2099854.381923\n    test 661 latlon: (-66.6, -88.0)\n    test 662 philam: (-1.162389, -1.53589)\n    test 663 latlonheight: (-66.6, -88.0, 0)\n    test 664 philamheight: (-1.162389, -1.53589, 0)\n    test 665 _N_vector: (0.01386, -0.39691, -0.91775)\n    test 666 toNvector: (0.01386, -0.39691, -0.91775, 0)\n    test 667 toNvector: (0.01386, -0.396906, -0.917755, 0)\n    test 668 classof: 66.6°S, 088.0°W\n    test 669 others: 66.6°S, 088.0°W\n    test 670 copy(<class 'type'>): (<class 'pygeodesy.ellipsoidalKarney.LatLon'>, True)\n    test 671 LatLon.copy(): (<class 'pygeodesy.ellipsoidalKarney.LatLon'>, True)\n\n    testing(pygeodesy.points, 25.05.12, LatLon=<class 'pygeodesy.ellipsoidalExact.LatLon'>)\n    test 672 areaOf: 8.811228e+09\n    test 673 centroidOf: 45.5, 1.5\n    test 674 perimeterOf: 2.673633e+05\n    test 675 isclockwise: False\n    test 676 isconvex: True\n    test 677 ispolar: False\n    test 678 areaOf: 7.086883e+09\n    test 679 perimeterOf: 2.687460e+05\n    test 680 centroidOf: 0.333333, 0.333333\n    test 681 isclockwise: True\n    test 682 isconvex: True\n    test 683 ispolar: False\n    test 684 areaOf: 2.827856e+10\n    test 685 perimeterOf: 4.717039e+05\n    test 686 centroidOf: 1.0, 1.0\n    test 687 isclockwise: False\n    test 688 isconvex: True\n    test 689 ispolar: False\n    test 690 areaOf: 2.747297e+13\n    test 691 perimeterOf: 2.332643e+07\n    test 692 centroidOf: 52.113, 102.123\n    test 693 isclockwise: False\n    test 694 isconvex: False\n    test 695 ispolar: True\n    test 696 areaOf: 8.482014e+10\n    test 697 perimeterOf: 1.334104e+06\n    test 698 centroidOf: 1.167, 1.667\n    test 699 isclockwise: False\n    test 700 isconvex: False\n    test 701 ispolar: False\n    test 702 areaOf: 5.151974e+13\n    test 703 perimeterOf: 2.638608e+07\n    test 704 centroidOf: -19.444, -133.333\n    test 705 isclockwise: True\n    test 706 isconvex: True\n    test 707 ispolar: False\n    test 708 areaOf: 1.751694e+12  FAILED, KNOWN, expected 4.469277e+12\n    test 709 perimeterOf: 1.562029e+07\n    test 710 centroidOf: -72.926, 46.47\n    test 711 isclockwise: True\n    test 712 isconvex: False\n    test 713 ispolar: True\n    test 714 points2: 18\n    test 715 nearestOn5: (-77.455114, -16.67063, 4.134666, 307.988253, 0)\n    test 716 areaCO: 2.83192062868e+11  FAILED, KNOWN, expected 2.69601367661e+11\n    test 717 isclockwise: True\n    test 718 perimeterCO: 2098630.956053  FAILED, KNOWN, expected 2098430.887891\n    test 719 latlon: (-66.6, -88.0)\n    test 720 philam: (-1.162389, -1.53589)\n    test 721 latlonheight: (-66.6, -88.0, 0)\n    test 722 philamheight: (-1.162389, -1.53589, 0)\n    test 723 _N_vector: (0.01386, -0.39691, -0.91775)\n    test 724 toNvector: (0.01386, -0.39691, -0.91775, 0)\n    test 725 toNvector: (0.01386, -0.396906, -0.917755, 0)\n    test 726 classof: 66.6°S, 088.0°W\n    test 727 others: 66.6°S, 088.0°W\n    test 728 copy(<class 'type'>): (<class 'pygeodesy.ellipsoidalExact.LatLon'>, True)\n    test 729 LatLon.copy(): (<class 'pygeodesy.ellipsoidalExact.LatLon'>, True)\n\n    testArea(pygeodesy.ellipsoidalKarney, 25.05.27)\n    test 730 luneOf: 1.27516405431022e+14\n\n    testArea(pygeodesy.ellipsoidalExact, 25.08.28)\n    test 731 luneOf: 1.27516405431022e+14\n\n    67 of 731 testPoints.py tests (9.2%) FAILED, incl. 21 KNOWN plus 46 DeprecationWarnings (pygeodesy 26.3.26 Python 3.11.9 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 1.24.2 scipy 1.10.1 Math 2 macOS 26.3.1 isLazy 0 -W  default) 5.680 sec\nrunning /usr/local/bin/p....n3.11 -W default ~/PyGeodesy/test/testProps.py\n\n    testing testProps.py 23.03.27\n\n    test<class 'pygeodesy.named._NamedBase'>(pygeodesy.props, 25.12.31)\n    test 1 P1: 1\n    test 2 p1: 2\n    test 3 P2: 1\n    test 4 p2: 3\n    test 5 q1: 1\n    test 6 q2: 2\n    test 7 q3: True\n    test 8 u1: None\n    test 9 u2: U\n    test 10 P3: 4\n    test 11 p3: 5\n    test 12 q4: False\n    test 13 q5: 2\n    test 14 u3: None\n    test 15 u4: U\n    test 16 X1: immutable Property_RO: X.setter X\n    test 17 X2: invalid Property_RO: X.deleter X\n    test 18 y1: immutable property_RO: y.setter y\n    test 19 y2: invalid property_RO: y.deleter y\n    test 20 Z1: invalid Property: Z.deleter Z\n    test 21 Z2: invalid Property: Z.getter Z\n\n    test<class 'pygeodesy.ellipsoids.Ellipsoid'>(pygeodesy.props, 25.12.31)\n    test 22 P1: 1\n    test 23 p1: 2\n    test 24 P2: 1\n    test 25 p2: 3\n    test 26 q1: 1\n    test 27 q2: 2\n    test 28 q3: True\n    test 29 u1: None\n    test 30 u2: U\n    test 31 P3: 4\n    test 32 p3: 5\n    test 33 q4: False\n    test 34 q5: 2\n    test 35 u3: None\n    test 36 u4: U\n    test 37 X1: immutable Property_RO: X.setter X\n    test 38 X2: invalid Property_RO: X.deleter X\n    test 39 y1: immutable property_RO: y.setter y\n    test 40 y2: invalid property_RO: y.deleter y\n    test 41 Z1: invalid Property: Z.deleter Z\n    test 42 Z2: invalid Property: Z.getter Z\n\n    all 42 testProps.py tests passed (pygeodesy 26.3.26 Python 3.11.9 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 1.24.2 scipy 1.10.1 Math 2 macOS 26.3.1 isLazy 0 -W  default) 648.975 us\nrunning /usr/local/bin/p....n3.11 -W default ~/PyGeodesy/test/testResections.py\n./test/testResections.py:40: DeprecationWarning: method L{collins<__main__.Cartesian_.collins>} has been DEPRECATED, use method L{collins5}.\n  self.test(collins.__name__, C_(A).collins(C, B, 109.5125, 115.0889), t, nl=1)  # DEPRECATED\n./test/testResections.py:63: DeprecationWarning: method L{tienstra<__main__.Cartesian_.tienstra>} has been DEPRECATED, use method L{tienstra7}.\n  self.test(tienstra.__name__, C_(A).tienstra(B, C, 115.0889, None, 109.5125), t, nl=1)  # DEPRECATED\n./test/testResections.py:72: DeprecationWarning: function L{collins<pygeodesy.deprecated.functions.collins>} has been DEPRECATED, use function L{pygeodesy.collins5}.\n  self.test(collins.__name__, collins(A, C, B, 109.3, 115.1), t, nl=1)  # DEPRECATED\n./test/testResections.py:94: DeprecationWarning: function L{tienstra<pygeodesy.deprecated.functions.tienstra>} has been DEPRECATED, use function L{pygeodesy.tienstra7}.\n  self.test(tienstra.__name__, tienstra(A, B, C, 115.1, beta=135.6, gamma=109.3), t, nl=1)  # DEPRECATED\n./test/testResections.py:100: DeprecationWarning: function L{triAngle4<pygeodesy.deprecated.functions.triAngle4>} has been DEPRECATED on 2023.09.14, use function L{pygeodesy.triAngle5}.\n  rA, rB, rC, _ = triAngle4(10, 30, c)\n./pygeodesy/deprecated/classes.py:33: DeprecationWarning: class L{TriAngle4Tuple<pygeodesy.deprecated.classes.TriAngle4Tuple>} has been DEPRECATED on 2023.09.14, use class L{TriAngle5Tuple}, ignoring item C{area}.\n  deprecated_class(cls)\n./test/testResections.py:107: DeprecationWarning: function L{triAngle4<pygeodesy.deprecated.functions.triAngle4>} has been DEPRECATED on 2023.09.14, use function L{pygeodesy.triAngle5}.\n  rA, rB, rC, _ = triAngle4(320, 435, 598)\n./test/testResections.py:111: DeprecationWarning: function L{triAngle4<pygeodesy.deprecated.functions.triAngle4>} has been DEPRECATED on 2023.09.14, use function L{pygeodesy.triAngle5}.\n  rA, rB, rC, _ = triAngle4(100, 100, 100)\n./test/testResections.py:115: DeprecationWarning: function L{triAngle4<pygeodesy.deprecated.functions.triAngle4>} has been DEPRECATED on 2023.09.14, use function L{pygeodesy.triAngle5}.\n  rA, rB, rC, _ = triAngle4(435, 320, 600)\n./test/testResections.py:119: DeprecationWarning: function L{triAngle4<pygeodesy.deprecated.functions.triAngle4>} has been DEPRECATED on 2023.09.14, use function L{pygeodesy.triAngle5}.\n  rA, rB, rC, _ = triAngle4(1716, 924, 1056)\n./test/testResections.py:126: DeprecationWarning: function L{triAngle4<pygeodesy.deprecated.functions.triAngle4>} has been DEPRECATED on 2023.09.14, use function L{pygeodesy.triAngle5}.\n  t = triAngle4(1, 2, EPS0 / 2)  # DEPRECATED\n\n    testing testResections.py 25.05.04\n    test 1 cassini: (2128.3903, 5578.1443, 0)\n    test 2 cassini: Cartesian_(2128.3903, 5578.1443, 0)\n\n    test 3 collins5: (2128.3903, 5578.1443, 0)\n    test 4 collins5: (1830.5948, 2576.2429, 0)\n    test 5 collins5: 1581.1388, 1562.0499, 2121.3203\n    test 6 collins5: Cartesian_(2128.3903, 5578.1443, 0)\n    test 7 collins5: Cartesian_(1830.5948, 2576.2429, 0)\n    test 8 collins5: 1581.1388, 1562.0499, 2121.3203\n    test 9 collins5: 1581.1388, 1562.0499, 2121.3203\n\n    test 10 collins: (Cartesian_(2128.39, 5578.144, 0), Cartesian_(1830.595, 2576.243, 0), 1581.13883, 1562.049935, 2121.320344)\n\n    test 11 pierlot: (2128.3903, 5578.1443, 0)\n    test 12 pierlot: Cartesian_(2128.3903, 5578.1443, 0)\n    test 13 pierlot: Cartesian_(2128.3903, 5578.1443, 0.0)\n\n    test 14 pierlotx: (2128.3903, 5578.1443, 0)\n    test 15 pierlotx: Cartesian_(2128.3903, 5578.1443, 0)\n    test 16 pierlotx: Cartesian_(2128.3903, 5578.1443, 0.0)\n\n    test 17 tienstra7: (2128.3903, 5578.1443, 0)\n    test 18 tienstra7: 47.9357, 84.8896, 47.1747, 1581.1388, 2121.3203, 1562.0499\n    test 19 tienstra7: Cartesian_(2128.3903, 5578.1443, 0)\n    test 20 tienstra7: 47.9357, 84.8896, 47.1747, 1581.1388, 2121.3203, 1562.0499\n\n    test 21 tienstra: (Cartesian_(2128.39, 5578.144, 0), 47.935673, 84.889582, 47.174744, 1581.13883, 2121.320344, 1562.049935)\n\n    test 22 cassini: (2129.3018, 5575.8016, 0)\n\n    test 23 collins5: (2129.3018, 5575.8016, 0)\n    test 24 collins5: (1835.1911, 2563.0708, 0)\n    test 25 collins5: 1581.1388, 1562.0499, 2121.3203\n\n    test 26 collins: (Vector3d(2129.30185, 5575.80164, 0), Vector3d(1835.19112, 2563.07083, 0), 1581.13883, 1562.049935, 2121.320344)\n\n    test 27 pierlot: (2129.3018, 5575.8016, 0)\n    test 28 pierlot: alpha12 (115.1), alpha23 (109.3), eps (0), point1 (Vector3d(3100.0, 5000.0, 0)), point2 (Vector3d(2200.0, 6300.0, 0)) or point3 (Vector3d(1000.0, 5300.0, 0)): eps (0) invalid\n\n    test 29 pierlotx: (2129.3018, 5575.8016, 0)\n    test 30 pierlotx: (2128.2026, 4708.1218, 0)\n    test 31 pierlotx: (1969.0673, 6633.5695, 0)\n    test 32 pierlotx: (2438.0239, 5094.568, 0)\n\n    test 33 tienstra7: (2129.3018, 5575.8016, 0)\n    test 34 tienstra7: 47.9357, 84.8896, 47.1747, 1581.1388, 2121.3203, 1562.0499\n\n    test 35 tienstra: (Vector3d(2129.30185, 5575.80164, 0), 47.935673, 84.889582, 47.174744, 1581.13883, 2121.320344, 1562.049935)\n\n    test 36 triSide4: (10.0, 30.0, 0.785398, 8.840862)\n\n    test 37 snellius3: (17.54582, 38.564239, 46.317675)\n    test 38 snellius3: (844.880591, 571.107418, 835.462796)\n    test 39 snellius3: (128.557522, 100.0, 187.938524)\n    test 40 snellius3: (567.480866, 847.344375, 832.446688)\n    test 41 snellius3: (4064.197388, 3652.539386, 4988.197388)\n\n    test 42 wildberger3: (17.54582, 38.56424, 46.317675)\n    test 43 wildberger3: (844.880591, 571.107418, 835.462796)\n    test 44 wildberger3: (128.557522, 100.0, 187.938524)\n    test 45 wildberger3: (567.480866, 847.344375, 832.446688)\n    test 46 wildberger3: (4064.197346, 3652.539342, 4988.197355)  FAILED, KNOWN, expected (4064.197343, 3652.539342, 4988.197355)\n\n    test 47 triAngle: 3.141592654\n    test 48 triAngle4: (1.570796, 1.570796, 0.0, 0.0)\n    test 49 triAngle5: (1.570796, 1.570796, 0.0, 0.0, 0.0)\n    test 50 triAngle5: (0.24871, 0.927295, 1.965587, 1.5, 24.0)\n    test 51 triArea: 24.0\n    test 52 triSide2: (2.0, 0.0)\n    test 53 triSide2: (2.0, 3.141593)\n\n    17 of 53 testResections.py tests (32.1%) FAILED, incl. 1 KNOWN plus 16 DeprecationWarnings (pygeodesy 26.3.26 Python 3.11.9 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 1.24.2 scipy 1.10.1 Math 2 macOS 26.3.1 isLazy 0 -W  default) 20.245 ms\nrunning /usr/local/bin/p....n3.11 -W default ~/PyGeodesy/test/testRhumb_aux_.py\n./test/testRhumb_aux_.py:267: DeprecationWarning: method L{distance2<pygeodesy.rhumb.aux_.RhumbLineAux.distance2>} has been DEPRECATED on 23.09.23, use method L{RhumbLineAux.Inverse} or L{RhumbLine.Inverse}.\n  t = r.distance2(p.lat2, p.lon2)\n\n    testing testRhumb_aux_.py 24.08.30 (module pygeodesy.rhumb.aux_ 25.08.31)\n\n    testDirectX vs ...(pygeodesy.rhumb.aux_, 25.08.31)\n    test 1 Direct.azi12: -92.38889\n    test 2 Direct.lat1: 40.6\n    test 3 Direct.lat2: 21.3781208262067  FAILED, KNOWN (0.402846), expected 35.79999595\n    test 4 Direct.lon1: -73.8\n    test 5 Direct.lon2: -102.999609498889  FAILED, KNOWN (1.73414), expected 140.3000041\n    test 6 Direct.s12: 12782581.068\n\n    test 7 GDict.azi12: 51\n    test 8 GDict.lat1: 40.6\n    test 9 GDict.lat2: 71.688899882813\n    test 10 GDict.lon1: -73.8\n    test 11 GDict.lon2: 0.255519824423459  FAILED, KNOWN (3.90829e-13), expected 0.255519824423359\n    test 12 GDict.s12: 5500000\n    test 13 GDict.S12: 44095641862956.1\n\n    test 14 RhumbLineAux: TMorder=6, azi12=51.0, exact=True, lat1=40.6, lon1=-73.8, rhumb=RhumbAux(RAorder=None, TMorder=6, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), exact=True), xTM=ExactTransverseMercator(datum='WGS84', extendp=False, k0=0.9996, lon0=0.0)\n    test 15 RhumbAux: RhumbAux(RAorder=None, TMorder=6, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), exact=True)\n    test 16 isLoxodrome: True\n\n    test 17 ArcPosition.a12: 51\n    test 18 ArcPosition.azi12: 51\n    test 19 ArcPosition.lat1: 40.6\n    test 20 ArcPosition.lat2: 72.6351275818438  FAILED, KNOWN (5.75694e-09), expected 72.635128\n    test 21 ArcPosition.lon1: -73.8\n    test 22 ArcPosition.lon2: 4.06852757947448  FAILED, KNOWN (1.03361e-07), expected 4.068528\n    test 23 ArcPosition.s12: 5667780.57994388  FAILED, KNOWN (2.16901e-14), expected 5667780.579944\n    test 24 ArcPosition.S12: 46665957571716.3  FAILED, KNOWN (1.17189e-15), expected 46665957571716.4\n\n    test 25 Position.a12: 51\n    test 26 Position.azi12: 51\n    test 27 Position.lat1: 40.6\n    test 28 Position.lat2: 72.6351275818438  FAILED, KNOWN (5.75694e-09), expected 72.635128\n    test 29 Position.lon1: -73.8\n    test 30 Position.lon2: 4.06852757947448  FAILED, KNOWN (1.03361e-07), expected 4.068528\n    test 31 Position.s12: 5667780.57994388\n    test 32 Position.S12: 46665957571716.3  FAILED, KNOWN (1.17189e-15), expected 46665957571716.4\n\n    test 33 Direct.a12: 115.020619671634  FAILED, KNOWN (2.85484e-09), expected 115.02062\n    test 34 Direct.azi12: -92.38889\n    test 35 Direct.lat1: 40.6\n    test 36 Direct.lat2: 35.799995945206  FAILED, KNOWN (1.13262e-07), expected 35.8\n    test 37 Direct.lon1: -73.8\n    test 38 Direct.lon2: 140.300004102052  FAILED, KNOWN (2.92377e-08), expected 140.3\n    test 39 Direct.s12: 12782581.068\n\n    test 40 ArcDirect.a12: 115.020619671634\n    test 41 ArcDirect.azi12: -92.38889\n    test 42 ArcDirect.lat1: 40.6\n    test 43 ArcDirect.lat2: 35.799995945206  FAILED, KNOWN (1.13262e-07), expected 35.8\n    test 44 ArcDirect.lon1: -73.8\n    test 45 ArcDirect.lon2: 140.300004102052  FAILED, KNOWN (2.92377e-08), expected 140.3\n    test 46 ArcDirect.s12: 12782581.068\n\n    test 47 Direct8: (40.6, -73.8, 35.799996, 140.300004, -92.38889, 12782581.068, -63760638302268.710938, 115.02062)\n    test 48 toDirect9Tuple: (115.02062, 35.799996, 140.300004, -92.38889, 12782581.068, 12782581.068, 1.0, 1.0, -63760638302268.710938)\n    test 49 DirectLine: (40.6, -73.8, 35.799996, 140.300004, -92.38889, 12782581.068, -63760638302268.710938, 115.02062)\n\n    test 50 RhumbLineAux: TMorder=6, azi12=51.0, exact=True, lat1=40.6, lon1=-73.8, rhumb=RhumbAux(RAorder=None, TMorder=6, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), exact=True), xTM=ExactTransverseMercator(datum='WGS84', extendp=False, k0=0.9996, lon0=0.0)\n    test 51 DirectLine: TMorder=6, azi12=-51.0, exact=True, lat1=35.8, lon1=140.3, rhumb=RhumbAux(RAorder=None, TMorder=6, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), exact=True), xTM=ExactTransverseMercator(datum='WGS84', extendp=False, k0=0.9996, lon0=0.0)\n\n    testInverseX vs ...(pygeodesy.rhumb.aux_, 25.08.31)\n    test 52 Inverse.azi12: -92.3888879816996  FAILED, KNOWN (2.18457e-08), expected -92.38889\n    test 53 Inverse.lat1: 40.6\n    test 54 Inverse.lat2: 35.8\n    test 55 Inverse.lon1: -73.8\n    test 56 Inverse.lon2: 140.3\n    test 57 Inverse.s12: 1282.19384243156  FAILED, KNOWN (1.8964e-09), expected 1282.19384\n    test 58 Inverse.S12: 21234695071407.8  FAILED, KNOWN (0.00128112), expected 21207525604650.8\n\n    test 59 GDict.azi12: 77.7683897102557\n    test 60 GDict.lat1: 40.6\n    test 61 GDict.lat2: 51.6\n    test 62 GDict.lon1: -73.8\n    test 63 GDict.lon2: -0.5\n    test 64 GDict.s12: 5771083.38332803\n    test 65 GDict.S12: 37395209100030.3  FAILED, KNOWN (1.46242e-15), expected 37395209100030.4\n\n    test 66 Inverse.azi12: 103.582833003411  FAILED, KNOWN (3.18511e-09), expected 103.582833333333\n    test 67 Inverse.lat1: 40.6397222222222  FAILED, KNOWN (5.4681e-09), expected 40.639722\n    test 68 Inverse.lat2: 1.35916666666667  FAILED, KNOWN (2.45248e-07), expected 1.359167\n    test 69 Inverse.lon2: 103.989444444444  FAILED, KNOWN (4.27394e-09), expected 103.989444\n    test 70 Inverse.s12: 18523563.0423774  FAILED, KNOWN (2.28776e-09), expected 18523563\n\n    test 71 0,000 Km lat2: 40:38:23.0N\n    test 72 0,000 Km lon2: 073:46:44.0W\n    test 73 0,000 Km S12 : 0\n    test 74 1,000 Km lat2: 36:24:30.3N\n    test 75 1,000 Km lon2: 051:28:26.4W\n    test 76 1,000 Km S12 : 9817078307820  FAILED, KNOWN, expected 9817078307821\n    test 77 2,000 Km lat2: 32:10:26.8N\n    test 78 2,000 Km lon2: 030:20:57.3W\n    test 79 2,000 Km S12 : 18224745682004  FAILED, KNOWN, expected 18224745682005\n    test 80 3,000 Km lat2: 27:56:13.2N\n    test 81 3,000 Km lon2: 010:10:54.2W\n    test 82 3,000 Km S12 : 25358020327741\n    test 83 4,000 Km lat2: 23:41:50.1N\n    test 84 4,000 Km lon2: 009:12:45.5E\n    test 85 4,000 Km S12 : 31321269267101  FAILED, KNOWN, expected 31321269267102\n    test 86 5,000 Km lat2: 19:27:18.7N\n    test 87 5,000 Km lon2: 027:59:22.1E\n    test 88 5,000 Km S12 : 36195163180159\n    test 89 6,000 Km lat2: 15:12:40.2N\n    test 90 6,000 Km lon2: 046:17:01.1E\n    test 91 6,000 Km S12 : 40041499143669\n    test 92 7,000 Km lat2: 10:57:55.9N\n    test 93 7,000 Km lon2: 064:12:52.8E\n    test 94 7,000 Km S12 : 42906570007050\n    test 95 8,000 Km lat2: 06:43:07.3N\n    test 96 8,000 Km lon2: 081:53:28.8E\n    test 97 8,000 Km S12 : 44823504180199  FAILED, KNOWN, expected 44823504180200\n    test 98 9,000 Km lat2: 02:28:16.2N\n    test 99 9,000 Km lon2: 099:24:54.5E\n    test 100 9,000 Km S12 : 45813843358737\n    test 101 10,000 Km lat2: 01:46:36.0S\n    test 102 10,000 Km lon2: 116:52:59.7E\n    test 103 10,000 Km S12 : 45888525219677\n\n    test 104 Inverse: {a12: 49.663661, azi12: 77.692032, azi21: -102.307968, lat1: 40.6, lat2: 51.6, lon1: -73.8, lon2: -0.5, name: '_Prolate', s12: 5519269.307383}\n    test 105 Inverse8: (40.6, -73.8, 51.6, -0.5, 77.692032, 5519269.307383, 37469093881942.3125, 49.663661)\n    test 106 toInverse10Tuple: (49.663661, 5519269.307383, 0.977016, 0.213166, 0.977016, 0.213166, 5519269.307383, 1.0, 1.0, 37469093881942.3125)\n    test 107 InverseLine: -102.23161028974434\n\n    test 108 R.exact: True\n    test 109 R.exact: False\n    test 110 R: RhumbAux(RAorder=None, TMorder=6, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), exact=False)\n\n    test 111 R.exact: True\n    test 112 R.Line.exact: True\n    test 113 R.Line: RhumbLineAux(TMorder=6, azi12=3.0, exact=True, lat1=1.0, lon1=2.0, rhumb=RhumbAux(RAorder=None, TMorder=6, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), exact=True), xTM=ExactTransverseMercator(datum='WGS84', extendp=False, k0=0.9996, lon0=0.0))\n\n    test 114 PlumbTo(exact=False, est=1000000.0): PlumbTo(a02=17.967658, a12=27.74256, at=90.0, azi0=113.73626, azi12=45.0, lat0=60, lat1=30.0, lat2=49.634582, lon0=0, lon1=0.0, lon2=25.767876, name='PlumbTo', s02=1997960.116871, s12=3083112.636236)\n    test 115 a02: 17.967658\n    test 116 s02: 1997960.116871\n    test 117 s12: 3083112.636236\n    test 118 azi0: 113.736\n    test 119 azi2: 135.000\n    test 120 iteration: 7\n\n    test 121 PlumbTo(exact=False, est=None): PlumbTo(a02=17.967658, a12=27.74256, at=90.0, azi0=113.73626, azi12=45.0, lat0=60, lat1=30.0, lat2=49.634582, lon0=0, lon1=0.0, lon2=25.767876, name='PlumbTo', s02=1997960.116871, s12=3083112.636236)\n    test 122 a02: 17.967658\n    test 123 s02: 1997960.116871\n    test 124 s12: 3083112.636236\n    test 125 azi0: 113.736\n    test 126 azi2: 135.000\n    test 127 iteration: 5\n\n    test 128 Intersecant2: (Intersecant2(a03=17.798332, a12=44.076956, azi03=135.0, azi12=45.0, lat0=30.0, lat1=30.0, lat2=61.164348, lat3=45.0, lon0=0.0, lon1=0.0, lon2=46.209348, lon3=15.830286, name='Intersecant2', s03=1977981.142985, s12=4898402.305119), Intersecant2(a03=17.798332, a12=-5.034244, azi03=135.0, azi12=45.0, lat0=30.0, lat1=30.0, lat2=26.4303, lat3=45.0, lon0=0.0, lon1=0.0, lon2=-4.030999, lon3=15.830286, name='Intersecant2', s03=1977981.142985, s12=-559470.390057))\n    test 129 azi0*=-90.000: exact=False, iteration=4, max=0, mean=0.0, min=0, stdev=0.0\n\n    test 130 PlumbTo(exact=True, est=1000000.0): PlumbTo(a02=17.967658, a12=27.74256, at=90.0, azi0=113.73626, azi12=45.0, lat0=60, lat1=30.0, lat2=49.634582, lon0=0, lon1=0.0, lon2=25.767876, name='PlumbTo', s02=1997960.116871, s12=3083112.636236)\n    test 131 a02: 17.967658\n    test 132 s02: 1997960.116871\n    test 133 s12: 3083112.636236\n    test 134 azi0: 113.736\n    test 135 azi2: 135.000\n    test 136 iteration: 7\n\n    test 137 PlumbTo(exact=True, est=None): PlumbTo(a02=17.967658, a12=27.74256, at=90.0, azi0=113.73626, azi12=45.0, lat0=60, lat1=30.0, lat2=49.634582, lon0=0, lon1=0.0, lon2=25.767876, name='PlumbTo', s02=1997960.116871, s12=3083112.636236)\n    test 138 a02: 17.967658\n    test 139 s02: 1997960.116871\n    test 140 s12: 3083112.636236\n    test 141 azi0: 113.736\n    test 142 azi2: 135.000\n    test 143 iteration: 5\n\n    test 144 Intersecant2: (Intersecant2(a03=17.798332, a12=44.076956, azi03=135.0, azi12=45.0, lat0=30.0, lat1=30.0, lat2=61.164348, lat3=45.0, lon0=0.0, lon1=0.0, lon2=46.209348, lon3=15.830286, name='Intersecant2', s03=1977981.142985, s12=4898402.305119), Intersecant2(a03=17.798332, a12=-5.034244, azi03=135.0, azi12=45.0, lat0=30.0, lat1=30.0, lat2=26.4303, lat3=45.0, lon0=0.0, lon1=0.0, lon2=-4.030999, lon3=15.830286, name='Intersecant2', s03=1977981.142985, s12=-559470.390057))\n    test 145 azi0*=-90.000: exact=True, iteration=4, max=0, mean=0.0, min=0, stdev=0.0\n\n    test 146 PlumbTo(exact=None, est=None): Intersection(a02=17.798332, a12=19.521356, at=90.0, azi02=135.0, azi12=45.0, lat0=60.0, lat1=30.0, lat2=45.0, lon0=0.0, lon1=0.0, lon2=15.830286, name='Intersection', s02=1977981.142985, s12=2169465.957531)\n    test 147 a02: 17.798332\n    test 148 s02: 1977981.142985\n    test 149 s12: 2169465.957531\n    test 150 azi02: 135.000\n    test 151 iteration: 9\n\n    test 152 Intersecant2: (Intersecant2(a03=17.798332, a12=44.076956, azi03=135.0, azi12=45.0, lat0=30.0, lat1=30.0, lat2=61.164348, lat3=45.0, lon0=0.0, lon1=0.0, lon2=46.209348, lon3=15.830286, name='Intersecant2', s03=1977981.142985, s12=4898402.305119), Intersecant2(a03=17.798332, a12=-5.034244, azi03=135.0, azi12=45.0, lat0=30.0, lat1=30.0, lat2=26.4303, lat3=45.0, lon0=0.0, lon1=0.0, lon2=-4.030999, lon3=15.830286, name='Intersecant2', s03=1977981.142985, s12=-559470.390057))\n    test 153 azi0*=90.000: exact=None, iteration=15, max=0, mean=-1.802066, min=-5.060016, stdev=2.124232\n\n    test 154 xTM: ExactTransverseMercator(datum='WGS84', extendp=False, k0=0.9996, lon0=0.0)\n\n    test 155 Intersection: Intersection(a02=42.220588, a12=16.98358, at=-85.0, azi02=-50.0, azi12=35.0, lat0=0.0, lat1=10.0, lat2=23.944114, lon0=-10.0, lon1=-56.0, lon2=-45.833131, name='Intersection', s02=4694721.624938, s12=1888490.587742)  FAILED, KNOWN, expected (26.9774, -43.4088)\n    test 156 PlumbTo: Intersection(a02=0.0, a12=16.98358, at=90.0, azi02=125.0, azi12=35.0, lat0=23.944114, lat1=10.0, lat2=23.944114, lon0=-45.833131, lon1=-56.0, lon2=-45.833131, name='Intersection', s02=0.000044, s12=1888490.587743)\n    test 157 PlumbTo: Intersection(a02=0.0, a12=42.220588, at=90.0, azi02=40.0, azi12=-50.0, lat0=23.944114, lat1=0.0, lat2=23.944114, lon0=-45.833131, lon1=-10.0, lon2=-45.833131, name='Intersection', s02=0.00026, s12=4694721.624901)\n    test 158 xTM: KTransverseMercator(ellipsoid=Ellipsoid(name='Sphere', a=6371008.771415, f=0, f_=0, b=6371008.771415), k0=0.9996, TMorder=6)\n\n    test 159 Intersection: Intersection(a02=31.539478, a12=26.853309, at=-135.0, azi02=-45.0, azi12=90.0, lat0=15.0, lat1=37.0, lat2=37.0, lon0=-17.0, lon1=-76.0, lon2=-42.376015, name='Intersection', s02=3507034.715572, s12=2985955.796006)  FAILED, KNOWN, expected (37.0, -41.7028)\n    test 160 PlumbTo: Intersection(a02=0.0, a12=26.853309, at=90.0, azi02=180.0, azi12=90.0, lat0=37.0, lat1=37.0, lat2=37.0, lon0=-42.376015, lon1=-76.0, lon2=-42.376015, name='Intersection', s02=0.000162, s12=2985955.795978)\n    test 161 PlumbTo: Intersection(a02=0.0, a12=31.539478, at=90.0, azi02=45.0, azi12=-45.0, lat0=37.0, lat1=15.0, lat2=37.0, lon0=-42.376015, lon1=-17.0, lon2=-42.376015, name='Intersection', s02=0.000092, s12=3507034.71557)\n    test 162 xTM: KTransverseMercator(ellipsoid=Ellipsoid(name='Sphere', a=6371008.771415, f=0, f_=0, b=6371008.771415), k0=0.9996, TMorder=6)\n\n    51 of 162 testRhumb_aux_.py tests (31.5%) FAILED, incl. 30 KNOWN plus 21 DeprecationWarnings (pygeodesy 26.3.26 Python 3.11.9 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 1.24.2 scipy 1.10.1 Math 2 macOS 26.3.1 isLazy 0 -W  default) 15.857 sec\nrunning /usr/local/bin/p....n3.11 -W default ~/PyGeodesy/test/testRhumb_ekx.py\n./test/testRhumb_ekx.py:37: DeprecationWarning: property_RO L{rhumbx<pygeodesy.ellipsoids.Ellipsoid.rhumbx>} has been DEPRECATED on 2023.11.28, use property C{rhumbekx}.\n  R = E.rhumbx\n./test/testRhumb_ekx.py:129: DeprecationWarning: property_RO L{rhumbx<pygeodesy.ellipsoids.Ellipsoid.rhumbx>} has been DEPRECATED on 2023.11.28, use property C{rhumbekx}.\n  R = E.rhumbx\n./test/testRhumb_ekx.py:184: DeprecationWarning: property_RO L{rhumbx<pygeodesy.ellipsoids.Ellipsoid.rhumbx>} has been DEPRECATED on 2023.11.28, use property C{rhumbekx}.\n  P = Ellipsoid(E.b, E.a, name='_Prolate').rhumbx  # '_...' for iOS\n./test/testRhumb_ekx.py:218: DeprecationWarning: property_RO L{rhumbx<pygeodesy.ellipsoids.Ellipsoid.rhumbx>} has been DEPRECATED on 2023.11.28, use property C{rhumbekx}.\n  R = E.rhumbx\n./test/testRhumb_ekx.py:228: DeprecationWarning: method L{orders<pygeodesy.rhumb.ekx.Rhumb.orders>} has been DEPRECATED, use properties C{RAorder} and/or C{TMorder}.\n  t = R.orders(4, 8)\n./pygeodesy/deprecated/classes.py:33: DeprecationWarning: class L{RhumbOrder2Tuple<pygeodesy.deprecated.classes.RhumbOrder2Tuple>} has been DEPRECATED, see deprecated method L{Rhumb.orders}.\n  deprecated_class(cls)\n./test/testRhumb_ekx.py:230: DeprecationWarning: method L{orders<pygeodesy.rhumb.ekx.Rhumb.orders>} has been DEPRECATED, use properties C{RAorder} and/or C{TMorder}.\n  t = R.orders(6, 6)\n./test/testRhumb_ekx.py:269: DeprecationWarning: method L{distance2<pygeodesy.rhumb.ekx.RhumbLine.distance2>} has been DEPRECATED on 23.09.23, use method L{RhumbLineAux.Inverse} or L{RhumbLine.Inverse}.\n  t = r.distance2(p.lat2, p.lon2)\n\n    testing testRhumb_ekx.py 23.11.30 (module pygeodesy.rhumb.ekx 25.08.31)\n\n    testDirectX vs ...(pygeodesy.rhumb.ekx, 25.08.31)\n    test 1 Direct.azi12: -92.38889\n    test 2 Direct.lat1: 40.6\n    test 3 Direct.lat2: 35.799995945206  FAILED, KNOWN, expected 35.79999\n    test 4 Direct.lon1: -73.8\n    test 5 Direct.lon2: 140.300004102052  FAILED, KNOWN, expected 140.23651\n    test 6 Direct.s12: 12782581.068\n\n    test 7 GDict.azi12: 51\n    test 8 GDict.lat1: 40.6\n    test 9 GDict.lat2: 71.688899882813\n    test 10 GDict.lon1: -73.8\n    test 11 GDict.lon2: 0.255519824423402  FAILED, KNOWN, expected 0.255519824423359\n    test 12 GDict.s12: 5500000\n    test 13 GDict.S12: 44095641862956.1\n\n    test 14 RhumbLine: TMorder=6, azi12=51.0, exact=True, lat1=40.6, lon1=-73.8, rhumb=Rhumb(RAorder=6, TMorder=6, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), exact=True), xTM=ExactTransverseMercator(datum='WGS84', extendp=False, k0=0.9996, lon0=0.0)\n    test 15 Rhumb: Rhumb(RAorder=6, TMorder=6, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), exact=True)\n    test 16 isLoxodrome: True\n\n    test 17 ArcPosition.a12: 51\n    test 18 ArcPosition.azi12: 51\n    test 19 ArcPosition.lat1: 40.6\n    test 20 ArcPosition.lat2: 72.6351275818438  FAILED, KNOWN, expected 72.635128\n    test 21 ArcPosition.lon1: -73.8\n    test 22 ArcPosition.lon2: 4.06852757947455  FAILED, KNOWN, expected 4.068528\n    test 23 ArcPosition.s12: 5667780.57994388  FAILED, KNOWN, expected 5667780.579944\n    test 24 ArcPosition.S12: 46665957571716.4\n\n    test 25 Position.a12: 51\n    test 26 Position.azi12: 51\n    test 27 Position.lat1: 40.6\n    test 28 Position.lat2: 72.6351275818438  FAILED, KNOWN, expected 72.635128\n    test 29 Position.lon1: -73.8\n    test 30 Position.lon2: 4.06852757947455  FAILED, KNOWN, expected 4.068528\n    test 31 Position.s12: 5667780.57994388\n    test 32 Position.S12: 46665957571716.4\n\n    test 33 Direct.a12: 115.020619671634  FAILED, KNOWN, expected 115.02062\n    test 34 Direct.azi12: -92.38889\n    test 35 Direct.lat1: 40.6\n    test 36 Direct.lat2: 35.799995945206  FAILED, KNOWN, expected 35.8\n    test 37 Direct.lon1: -73.8\n    test 38 Direct.lon2: 140.300004102052  FAILED, KNOWN, expected 140.3\n    test 39 Direct.s12: 12782581.068\n\n    test 40 ArcDirect.a12: 115.020619671634\n    test 41 ArcDirect.azi12: -92.38889\n    test 42 ArcDirect.lat1: 40.6\n    test 43 ArcDirect.lat2: 35.799995945206  FAILED, KNOWN, expected 35.8\n    test 44 ArcDirect.lon1: -73.8\n    test 45 ArcDirect.lon2: 140.300004102052  FAILED, KNOWN, expected 140.3\n    test 46 ArcDirect.s12: 12782581.068\n\n    test 47 Direct8: (40.6, -73.8, 35.799996, 140.300004, -92.38889, 12782581.068, -63760638302268.796875, 115.02062)\n    test 48 toDirect9Tuple: (115.02062, 35.799996, 140.300004, -92.38889, 12782581.068, 12782581.068, 1.0, 1.0, -63760638302268.796875)\n    test 49 DirectLine: (40.6, -73.8, 35.799996, 140.300004, -92.38889, 12782581.068, -63760638302268.796875, 115.02062)\n\n    test 50 RhumbLine: TMorder=6, azi12=51.0, exact=True, lat1=40.6, lon1=-73.8, rhumb=Rhumb(RAorder=6, TMorder=6, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), exact=True), xTM=ExactTransverseMercator(datum='WGS84', extendp=False, k0=0.9996, lon0=0.0)\n    test 51 DirectLine: TMorder=6, azi12=-51.0, exact=True, lat1=35.8, lon1=140.3, rhumb=Rhumb(RAorder=6, TMorder=6, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), exact=True), xTM=ExactTransverseMercator(datum='WGS84', extendp=False, k0=0.9996, lon0=0.0)\n\n    testInverseX vs ...(pygeodesy.rhumb.ekx, 25.08.31)\n    test 52 Inverse.azi12: -92.3888879816997  FAILED, KNOWN, expected -92.38889\n    test 53 Inverse.lat1: 40.6\n    test 54 Inverse.lat2: 35.8\n    test 55 Inverse.lon1: -73.8\n    test 56 Inverse.lon2: 140.3\n    test 57 Inverse.s12: 12782581.0676842\n    test 58 Inverse.S12: -63760642939072.5  FAILED, KNOWN, expected -63760642939073\n\n    test 59 GDict.azi12: 77.7683897102557\n    test 60 GDict.lat1: 40.6\n    test 61 GDict.lat2: 51.6\n    test 62 GDict.lon1: -73.8\n    test 63 GDict.lon2: -0.5\n    test 64 GDict.s12: 5771083.38332803\n    test 65 GDict.S12: 37395209100030.4\n\n    test 66 Inverse.azi12: 103.582833003411  FAILED, KNOWN, expected 103.582833333333\n    test 67 Inverse.lat1: 40.6397222222222  FAILED, KNOWN, expected 40.639722\n    test 68 Inverse.lat2: 1.35916666666667  FAILED, KNOWN, expected 1.359167\n    test 69 Inverse.lon2: 103.989444444444  FAILED, KNOWN, expected 103.989444\n    test 70 Inverse.s12: 18523563.0423774  FAILED, KNOWN, expected 18523563\n\n    test 71 0,000 Km lat2: 40:38:23.0N\n    test 72 0,000 Km lon2: 073:46:44.0W\n    test 73 0,000 Km S12 : 0\n    test 74 1,000 Km lat2: 36:24:30.3N\n    test 75 1,000 Km lon2: 051:28:26.4W\n    test 76 1,000 Km S12 : 9817078307820  FAILED, KNOWN, expected 9817078307821\n    test 77 2,000 Km lat2: 32:10:26.8N\n    test 78 2,000 Km lon2: 030:20:57.3W\n    test 79 2,000 Km S12 : 18224745682004  FAILED, KNOWN, expected 18224745682005\n    test 80 3,000 Km lat2: 27:56:13.2N\n    test 81 3,000 Km lon2: 010:10:54.2W\n    test 82 3,000 Km S12 : 25358020327741\n    test 83 4,000 Km lat2: 23:41:50.1N\n    test 84 4,000 Km lon2: 009:12:45.5E\n    test 85 4,000 Km S12 : 31321269267101  FAILED, KNOWN, expected 31321269267102\n    test 86 5,000 Km lat2: 19:27:18.7N\n    test 87 5,000 Km lon2: 027:59:22.1E\n    test 88 5,000 Km S12 : 36195163180159\n    test 89 6,000 Km lat2: 15:12:40.2N\n    test 90 6,000 Km lon2: 046:17:01.1E\n    test 91 6,000 Km S12 : 40041499143669\n    test 92 7,000 Km lat2: 10:57:55.9N\n    test 93 7,000 Km lon2: 064:12:52.8E\n    test 94 7,000 Km S12 : 42906570007050\n    test 95 8,000 Km lat2: 06:43:07.3N\n    test 96 8,000 Km lon2: 081:53:28.8E\n    test 97 8,000 Km S12 : 44823504180199  FAILED, KNOWN, expected 44823504180200\n    test 98 9,000 Km lat2: 02:28:16.2N\n    test 99 9,000 Km lon2: 099:24:54.5E\n    test 100 9,000 Km S12 : 45813843358737\n    test 101 10,000 Km lat2: 01:46:36.0S\n    test 102 10,000 Km lon2: 116:52:59.7E\n    test 103 10,000 Km S12 : 45888525219677\n\n    test 104 Inverse: {a12: 51.420061, azi12: 77.692032, azi21: -102.307968, lat1: 40.6, lat2: 51.6, lon1: -73.8, lon2: -0.5, name: '_Prolate', s12: 5733622.743165}\n    test 105 Inverse8: (40.6, -73.8, 51.6, -0.5, 77.692032, 5733622.743165, 37469093881942.273438, 51.420061)\n    test 106 toInverse10Tuple: (51.420061, 5733622.743165, 0.977016, 0.213166, 0.977016, 0.213166, 5733622.743165, 1.0, 1.0, 37469093881942.273438)\n    test 107 InverseLine: -102.23161028974432\n\n    test 108 R.exact: True\n    test 109 R.exact: False\n    test 110 R: Rhumb(RAorder=6, TMorder=6, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), exact=False)\n\n    test 111 R.exact: True\n    test 112 R.Line.exact: True\n    test 113 R.Line: RhumbLine(TMorder=6, azi12=3.0, exact=True, lat1=1.0, lon1=2.0, rhumb=Rhumb(RAorder=6, TMorder=6, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), exact=True), xTM=ExactTransverseMercator(datum='WGS84', extendp=False, k0=0.9996, lon0=0.0))\n    test 114 orders: (6, 6)\n    test 115 orders: (4, 8)\n\n\n    test 116 PlumbTo(exact=False, est=1000000.0): PlumbTo(a02=17.967658, a12=27.74256, at=90.0, azi0=113.73626, azi12=45.0, lat0=60, lat1=30.0, lat2=49.634582, lon0=0, lon1=0.0, lon2=25.767876, name='PlumbTo', s02=1997960.116871, s12=3083112.636236)\n    test 117 a02: 17.967658\n    test 118 s02: 1997960.116871\n    test 119 s12: 3083112.636236\n    test 120 azi0: 113.736\n    test 121 azi2: 135.000\n    test 122 iteration: 7\n\n    test 123 PlumbTo(exact=False, est=None): PlumbTo(a02=17.967658, a12=27.74256, at=90.0, azi0=113.73626, azi12=45.0, lat0=60, lat1=30.0, lat2=49.634582, lon0=0, lon1=0.0, lon2=25.767876, name='PlumbTo', s02=1997960.116871, s12=3083112.636236)\n    test 124 a02: 17.967658\n    test 125 s02: 1997960.116871\n    test 126 s12: 3083112.636236\n    test 127 azi0: 113.736\n    test 128 azi2: 135.000\n    test 129 iteration: 5\n\n    test 130 Intersecant2: (Intersecant2(a03=17.798332, a12=44.076956, azi03=135.0, azi12=45.0, lat0=30.0, lat1=30.0, lat2=61.164348, lat3=45.0, lon0=0.0, lon1=0.0, lon2=46.209348, lon3=15.830286, name='Intersecant2', s03=1977981.142985, s12=4898402.305119), Intersecant2(a03=17.798332, a12=-5.034244, azi03=135.0, azi12=45.0, lat0=30.0, lat1=30.0, lat2=26.4303, lat3=45.0, lon0=0.0, lon1=0.0, lon2=-4.030999, lon3=15.830286, name='Intersecant2', s03=1977981.142985, s12=-559470.390057))\n    test 131 azi0*=-90.000: exact=False, iteration=4, max=0, mean=-0.0, min=-0.0, stdev=0.0\n\n    test 132 PlumbTo(exact=True, est=1000000.0): PlumbTo(a02=17.967658, a12=27.74256, at=90.0, azi0=113.73626, azi12=45.0, lat0=60, lat1=30.0, lat2=49.634582, lon0=0, lon1=0.0, lon2=25.767876, name='PlumbTo', s02=1997960.116871, s12=3083112.636236)\n    test 133 a02: 17.967658\n    test 134 s02: 1997960.116871\n    test 135 s12: 3083112.636236\n    test 136 azi0: 113.736\n    test 137 azi2: 135.000\n    test 138 iteration: 7\n\n    test 139 PlumbTo(exact=True, est=None): PlumbTo(a02=17.967658, a12=27.74256, at=90.0, azi0=113.73626, azi12=45.0, lat0=60, lat1=30.0, lat2=49.634582, lon0=0, lon1=0.0, lon2=25.767876, name='PlumbTo', s02=1997960.116871, s12=3083112.636236)\n    test 140 a02: 17.967658\n    test 141 s02: 1997960.116871\n    test 142 s12: 3083112.636236\n    test 143 azi0: 113.736\n    test 144 azi2: 135.000\n    test 145 iteration: 5\n\n    test 146 Intersecant2: (Intersecant2(a03=17.798332, a12=44.076956, azi03=135.0, azi12=45.0, lat0=30.0, lat1=30.0, lat2=61.164348, lat3=45.0, lon0=0.0, lon1=0.0, lon2=46.209348, lon3=15.830286, name='Intersecant2', s03=1977981.142985, s12=4898402.305119), Intersecant2(a03=17.798332, a12=-5.034244, azi03=135.0, azi12=45.0, lat0=30.0, lat1=30.0, lat2=26.4303, lat3=45.0, lon0=0.0, lon1=0.0, lon2=-4.030999, lon3=15.830286, name='Intersecant2', s03=1977981.142985, s12=-559470.390057))\n    test 147 azi0*=-90.000: exact=True, iteration=4, max=0, mean=-0.0, min=-0.0, stdev=0.0\n\n    test 148 PlumbTo(exact=None, est=None): Intersection(a02=17.798332, a12=19.521356, at=90.0, azi02=135.0, azi12=45.0, lat0=60.0, lat1=30.0, lat2=45.0, lon0=0.0, lon1=0.0, lon2=15.830286, name='Intersection', s02=1977981.142985, s12=2169465.957531)\n    test 149 a02: 17.798332\n    test 150 s02: 1977981.142985\n    test 151 s12: 2169465.957531\n    test 152 azi02: 135.000\n    test 153 iteration: 9\n\n    test 154 Intersecant2: (Intersecant2(a03=17.798332, a12=44.076956, azi03=135.0, azi12=45.0, lat0=30.0, lat1=30.0, lat2=61.164348, lat3=45.0, lon0=0.0, lon1=0.0, lon2=46.209348, lon3=15.830286, name='Intersecant2', s03=1977981.142985, s12=4898402.305119), Intersecant2(a03=17.798332, a12=-5.034244, azi03=135.0, azi12=45.0, lat0=30.0, lat1=30.0, lat2=26.4303, lat3=45.0, lon0=0.0, lon1=0.0, lon2=-4.030999, lon3=15.830286, name='Intersecant2', s03=1977981.142985, s12=-559470.390057))\n    test 155 azi0*=90.000: exact=None, iteration=15, max=0, mean=-1.802066, min=-5.060016, stdev=2.124232\n\n    test 156 xTM: KTransverseMercator(ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), k0=0.9996, TMorder=7)\n\n    test 157 Intersection: Intersection(a02=41.823427, a12=16.45698, at=-85.0, azi02=-50.0, azi12=35.0, lat0=0.0, lat1=10.0, lat2=23.944114, lon0=-10.0, lon1=-56.0, lon2=-45.833131, name='Intersection', s02=4650559.291378, s12=1829935.168035)  FAILED, KNOWN, expected (26.9774, -43.4088)\n    test 158 PlumbTo: Intersection(a02=0.0, a12=16.45698, at=90.0, azi02=125.0, azi12=35.0, lat0=23.944114, lat1=10.0, lat2=23.944114, lon0=-45.833131, lon1=-56.0, lon2=-45.833131, name='Intersection', s02=0.000043, s12=1829935.168032)\n    test 159 PlumbTo: Intersection(a02=0.0, a12=41.823427, at=90.0, azi02=40.0, azi12=-50.0, lat0=23.944114, lat1=0.0, lat2=23.944114, lon0=-45.833131, lon1=-10.0, lon2=-45.833131, name='Intersection', s02=0.000246, s12=4650559.291327)\n    test 160 xTM: KTransverseMercator(ellipsoid=Ellipsoid(name='Sphere', a=6371008.771415, f=0, f_=0, b=6371008.771415), k0=0.9996, TMorder=6)\n\n    test 161 Intersection: Intersection(a02=29.910202, a12=26.853309, at=-135.0, azi02=-45.0, azi12=90.0, lat0=15.0, lat1=37.0, lat2=37.0, lon0=-17.0, lon1=-76.0, lon2=-42.376015, name='Intersection', s02=3325867.316604, s12=2985955.796006)  FAILED, KNOWN, expected (37.0, -41.7028)\n    test 162 PlumbTo: Intersection(a02=0.0, a12=26.853309, at=90.0, azi02=180.0, azi12=90.0, lat0=37.0, lat1=37.0, lat2=37.0, lon0=-42.376015, lon1=-76.0, lon2=-42.376015, name='Intersection', s02=0.000129, s12=2985955.795978)\n    test 163 PlumbTo: Intersection(a02=0.0, a12=29.910202, at=90.0, azi02=45.0, azi12=-45.0, lat0=37.0, lat1=15.0, lat2=37.0, lon0=-42.376015, lon1=-17.0, lon2=-42.376015, name='Intersection', s02=0.000081, s12=3325867.316586)\n    test 164 xTM: KTransverseMercator(ellipsoid=Ellipsoid(name='Sphere', a=6371008.771415, f=0, f_=0, b=6371008.771415), k0=0.9996, TMorder=6)\n\n    55 of 164 testRhumb_ekx.py tests (33.5%) FAILED, incl. 26 KNOWN plus 29 DeprecationWarnings (pygeodesy 26.3.26 Python 3.11.9 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 1.24.2 scipy 1.10.1 Math 2 macOS 26.3.1 isLazy 0 -W  default) 13.348 sec\nrunning /usr/local/bin/p....n3.11 -W default ~/PyGeodesy/test/testRoutes.py\n./test/testRoutes.py:17103: DeprecationWarning: function L{areaOf<pygeodesy.ellipsoidalVincenty.areaOf>} has been DEPRECATED, use function L{ellipsoidalExact.areaOf} or L{ellipsoidalKarney.areaOf}.\n  r = f(pts, wrap=True, **kwds)\n./pygeodesy/ellipsoidalKarney.py:139: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return fabs(_polygon(datum.ellipsoid.geodesic, points, True, False, wrap, polar))\n./test/testRoutes.py:17103: DeprecationWarning: function L{perimeterOf<pygeodesy.ellipsoidalVincenty.perimeterOf>} has been DEPRECATED, use function L{ellipsoidalExact.perimeterOf} or L{ellipsoidalKarney.perimeterOf}.\n  r = f(pts, wrap=True, **kwds)\n./pygeodesy/ellipsoidalKarney.py:347: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return _polygon(datum.ellipsoid.geodesic, points, closed, True, wrap, False)\n\n    testing testRoutes.py 23.08.23\n    test 1 points.areaOf('Antarctica', adjust=True, radius=6371.01, wrap=True): 1751693.701  FAILED, KNOWN, expected 13552524.800\n    test 2 points.areaOf('PtsFFI', adjust=True, radius=6371.01, wrap=True): 1.288\n    test 3 points.areaOf('RdpFFI', adjust=True, radius=6371.01, wrap=True): 1.241\n    test 4 points.areaOf('Pts', adjust=True, radius=6371.01, wrap=True): 131184.240\n    test 5 points.areaOf('VwPts', adjust=True, radius=6371.01, wrap=True): 140310.144\n    test 6 points.areaOf('_JFK_LHR1', adjust=True, radius=6371.01, wrap=True): 41383852.921  FAILED, KNOWN, expected 40041368.849\n    test 7 points.areaOf('_JFK_LHR2', adjust=True, radius=6371.01, wrap=True): 82767705.842  FAILED, KNOWN, expected 80082737.697\n    test 8 points.areaOf('Antarctica', adjust=False, radius=6371.01, wrap=True): 10446635.730  FAILED, KNOWN, expected 13552524.800\n    test 9 points.areaOf('PtsFFI', adjust=False, radius=6371.01, wrap=True): 2.185  FAILED, KNOWN, expected 1.288\n    test 10 points.areaOf('RdpFFI', adjust=False, radius=6371.01, wrap=True): 2.105  FAILED, KNOWN, expected 1.241\n    test 11 points.areaOf('Pts', adjust=False, radius=6371.01, wrap=True): 233595.011  FAILED, KNOWN, expected 131184.240\n    test 12 points.areaOf('VwPts', adjust=False, radius=6371.01, wrap=True): 258465.911  FAILED, KNOWN, expected 140310.144\n    test 13 points.areaOf('_JFK_LHR1', adjust=False, radius=6371.01, wrap=True): 41780731.678  FAILED, KNOWN, expected 40041368.849\n    test 14 points.areaOf('_JFK_LHR2', adjust=False, radius=6371.01, wrap=True): 83561463.357  FAILED, KNOWN, expected 80082737.697\n    test 15 sphericalTrigonometry.areaOf('Antarctica', radius=6371.01, wrap=True): 241480413.388\n    test 16 sphericalTrigonometry.areaOf('PtsFFI', radius=6371.01, wrap=True): 1.338\n    test 17 sphericalTrigonometry.areaOf('RdpFFI', radius=6371.01, wrap=True): 1.289\n    test 18 sphericalTrigonometry.areaOf('Pts', radius=6371.01, wrap=True): 125942.444\n    test 19 sphericalTrigonometry.areaOf('VwPts', radius=6371.01, wrap=True): 118897.757\n    test 20 sphericalTrigonometry.areaOf('_JFK_LHR1', radius=6371.01, wrap=True): 40105639.197\n    test 21 sphericalTrigonometry.areaOf('_JFK_LHR2', radius=6371.01, wrap=True): 80211278.393\n    test 22 ellipsoidalVincenty.areaOf('Antarctica', wrap=True): 1.366270e+13\n    test 23 ellipsoidalVincenty.areaOf('PtsFFI', wrap=True): 1.343272e+06\n    test 24 ellipsoidalVincenty.areaOf('RdpFFI', wrap=True): 1.294375e+06\n    test 25 ellipsoidalVincenty.areaOf('Pts', wrap=True): 1.271286e+11\n    test 26 ellipsoidalVincenty.areaOf('VwPts', wrap=True): 1.200540e+11\n    test 27 ellipsoidalVincenty.areaOf('_JFK_LHR1', wrap=True): 4.004137e+13\n    test 28 ellipsoidalVincenty.areaOf('_JFK_LHR2', wrap=True): 8.008274e+13\n    test 29 ellipsoidalVincenty.areaOf('Antarctica', wrap=True): 1.366270e+13\n    test 30 ellipsoidalVincenty.areaOf('PtsFFI', wrap=True): 1.343272e+06\n    test 31 ellipsoidalVincenty.areaOf('RdpFFI', wrap=True): 1.294375e+06\n    test 32 ellipsoidalVincenty.areaOf('Pts', wrap=True): 1.271286e+11\n    test 33 ellipsoidalVincenty.areaOf('VwPts', wrap=True): 1.200540e+11\n    test 34 ellipsoidalVincenty.areaOf('_JFK_LHR1', wrap=True): 4.004137e+13\n    test 35 ellipsoidalVincenty.areaOf('_JFK_LHR2', wrap=True): 8.008274e+13\n    test 36 points.perimeterOf('Antarctica', closed=False, radius=6.37101e+06, wrap=True): 15620294.792  FAILED, KNOWN, expected 16765661.499\n    test 37 points.perimeterOf('PtsFFI', closed=False, radius=6.37101e+06, wrap=True): 3224.123\n    test 38 points.perimeterOf('RdpFFI', closed=False, radius=6.37101e+06, wrap=True): 3185.467\n    test 39 points.perimeterOf('Pts', closed=False, radius=6.37101e+06, wrap=True): 2762313.129\n    test 40 points.perimeterOf('VwPts', closed=False, radius=6.37101e+06, wrap=True): 2672557.850\n    test 41 points.perimeterOf('_JFK_LHR1', closed=False, radius=6.37101e+06, wrap=True): 16034670.768  FAILED, KNOWN, expected 15766750.804\n    test 42 points.perimeterOf('_JFK_LHR2', closed=False, radius=6.37101e+06, wrap=True): 26286857.120  FAILED, KNOWN, expected 25981742.208\n    test 43 sphericalTrigonometry.perimeterOf('Antarctica', closed=False, radius=6.37101e+06, wrap=True): 15470624.834\n    test 44 sphericalTrigonometry.perimeterOf('PtsFFI', closed=False, radius=6.37101e+06, wrap=True): 3224.123\n    test 45 sphericalTrigonometry.perimeterOf('RdpFFI', closed=False, radius=6.37101e+06, wrap=True): 3185.467\n    test 46 sphericalTrigonometry.perimeterOf('Pts', closed=False, radius=6.37101e+06, wrap=True): 2762313.116\n    test 47 sphericalTrigonometry.perimeterOf('VwPts', closed=False, radius=6.37101e+06, wrap=True): 2672556.441\n    test 48 sphericalTrigonometry.perimeterOf('_JFK_LHR1', closed=False, radius=6.37101e+06, wrap=True): 15789078.314\n    test 49 sphericalTrigonometry.perimeterOf('_JFK_LHR2', closed=False, radius=6.37101e+06, wrap=True): 26041264.665\n    test 50 ellipsoidalVincenty.perimeterOf('Antarctica', closed=False, wrap=True): 15531947.149  FAILED, KNOWN, expected 15531770.613\n    test 51 ellipsoidalVincenty.perimeterOf('PtsFFI', closed=False, wrap=True): 3229.337\n    test 52 ellipsoidalVincenty.perimeterOf('RdpFFI', closed=False, wrap=True): 3190.602\n    test 53 ellipsoidalVincenty.perimeterOf('Pts', closed=False, wrap=True): 2769709.679  FAILED, KNOWN, expected 2769709.412\n    test 54 ellipsoidalVincenty.perimeterOf('VwPts', closed=False, wrap=True): 2679915.858\n    test 55 ellipsoidalVincenty.perimeterOf('_JFK_LHR1', closed=False, wrap=True): 15766750.804  FAILED, KNOWN, expected 15763434.962\n    test 56 ellipsoidalVincenty.perimeterOf('_JFK_LHR2', closed=False, wrap=True): 25981742.208  FAILED, KNOWN, expected 25972353.155\n    test 57 ellipsoidalVincenty.perimeterOf('Antarctica', closed=True, wrap=True): 16831067.893  FAILED, KNOWN, expected 16830891.356\n    test 58 ellipsoidalVincenty.perimeterOf('PtsFFI', closed=True, wrap=True): 5491.045\n    test 59 ellipsoidalVincenty.perimeterOf('RdpFFI', closed=True, wrap=True): 5452.310\n    test 60 ellipsoidalVincenty.perimeterOf('Pts', closed=True, wrap=True): 5259077.510  FAILED, KNOWN, expected 5259077.242\n    test 61 ellipsoidalVincenty.perimeterOf('VwPts', closed=True, wrap=True): 5171947.931\n    test 62 ellipsoidalVincenty.perimeterOf('_JFK_LHR1', closed=True, wrap=True): 23926469.479  FAILED, KNOWN, expected 23921931.540\n    test 63 ellipsoidalVincenty.perimeterOf('_JFK_LHR2', closed=True, wrap=True): 31533501.608  FAILED, KNOWN, expected 31524112.555\n    test 64 geographiclib.WNZ-SAL(WGS84): 19959679.267\n    test 65 geographiclib.WNZ-SAL(WGS84): 354.50\n    test 66 geographiclib.WNZ-SAL(Sphere): 19967403.498\n    test 67 geographiclib.WNZ-SAL(Sphere): 354.50\n    test 68 geographiclib.BJS-SFO(WGS84): 9513998.0\n    test 69 geographiclib.BJS-SFO(WGS84): 237.6\n    test 70 geographiclib.BJS-SFO(Sphere): 9491734.6\n    test 71 geographiclib.BJS-SFO(Sphere): 237.6\n    test 72 geographiclib.SW-Perth(WGS84): 32.11195529\n    test 73 geographiclib.SW-Perth(WGS84): -63.95925278\n    test 74 geographiclib.SW-Perth(Sphere): 31.96383509\n    test 75 geographiclib.SW-Perth(Sphere): -64.14670854\n    test 76 geographiclib.JFK-LHR(WGS84): 40041368848742.5\n    test 77 geographiclib.JFK-LHR(WGS84): 5551759.4\n    test 78 geographiclib.JFK-LHR(Sphere): 40105639196534.8\n    test 79 geographiclib.JFK-LHR(Sphere): 5536892.0\n    test 80 geographiclib.Antarctica Peri(WGS84): 16831067.893\n    test 81 geographiclib.Antarctica Area(WGS84): 13662703680020.1\n    test 82 geographiclib.Antarctica Peri(Sphere): 16765661.499\n    test 83 geographiclib.Antarctica Area(Sphere): 13552524809674.8\n    test 84 isclockwise('Antarctica', adjust=False, wrap=True): 1.000\n    test 85 isclockwise('PtsFFI', adjust=False, wrap=True): 1.000\n    test 86 isclockwise('RdpFFI', adjust=False, wrap=True): 1.000\n    test 87 isclockwise('Pts', adjust=False, wrap=True): 1.000\n    test 88 isclockwise('VwPts', adjust=False, wrap=True): 1.000\n    test 89 isclockwise('_JFK_LHR1', adjust=False, wrap=True): 0.000\n    test 90 isclockwise('_JFK_LHR2', adjust=False, wrap=True): 0.000\n\n    77 of 90 testRoutes.py tests (85.6%) FAILED, incl. 21 KNOWN plus 56 DeprecationWarnings (pygeodesy 26.3.26 Python 3.11.9 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 1.24.2 scipy 1.10.1 Math 2 macOS 26.3.1 isLazy 0 -W  default) 9.412 sec\nrunning /usr/local/bin/p....n3.11 -W default ~/PyGeodesy/test/testSimplify.py\n./test/testSimplify.py:37: DeprecationWarning: function L{simplifyVWm<pygeodesy.deprecated.functions.simplifyVWm>} has been DEPRECATED on 2024.11.28, use function L{pygeodesy.simplifyVW}C{(points, modified=True, ...)}.\n  r = function(points, m, **kwds)\n./test/testSimplify.py:37: DeprecationWarning: function L{simplifyRDPm<pygeodesy.deprecated.functions.simplifyRDPm>} has been DEPRECATED on 2024.11.28, use function L{pygeodesy.simplifyRDP}C{(points, modified=True, ...)}.\n  r = function(points, m, **kwds)\n\n    testing testSimplify.py 23.03.27 (module pygeodesy.simplify 25.05.12)\n    test 1 simplify1(16614, adjust=True) 1m (131.234 ms): 16597\n    test 2 simplifyRW(16614, adjust=True, shortest=False, indices=True) 1m (861.291 ms): 7095\n    test 3 simplifyRW(16614, adjust=True, shortest=False) 1m (849.781 ms): 7095\n    test 4 simplifyRW(16614, adjust=True, shortest=True) 1m (828.004 ms): 8302\n    test 5 simplifyVWm(16614, adjust=True, indices=True) 1m (1.558 sec): 16328\n    test 6 simplifyVWm(16614, adjust=True) 1m (1.563 sec): 16328\n    test 7 simplifyVWm(16614, adjust=False) 1m (1.553 sec): 16373\n    test 8 simplifyRDPm(16614, adjust=True, shortest=False) 1m (1.546 sec): 15864\n    test 9 simplifyRDPm(16614, adjust=True, shortest=True) 1m (2.815 sec): 15867\n    test 10 simplifyRDPgr(16614, adjust=True, shortest=True, modified=True) 1m (134.680 ms): 15867\n    test 11 simplifyRDPm(16614, adjust=False, shortest=False) 1m (1.525 sec): 15869\n    test 12 simplifyRDPfw(16614, adjust=False, shortest=False, modified=True) 1m (74.919 ms): 15869\n    test 13 simplifyRDP(16614, adjust=True, shortest=True, indices=True) 1m (40.848 sec): 10960\n    test 14 simplifyRDP(16614, adjust=True, shortest=True) 1m (40.824 sec): 10960\n    test 15 simplifyRDPgr(16614, adjust=True, shortest=True, modified=False) 1m (1.355 sec): 10960\n    test 16 simplifyRDP(16614, adjust=False, shortest=False, indices=True) 1m (21.047 sec): 11248\n    test 17 simplifyRDP(16614, adjust=False, shortest=False) 1m (21.000 sec): 11248\n    test 18 simplifyRDPfw(16614, adjust=False, shortest=False, modified=False) 1m (541.396 ms): 11248\n    test 19 simplifyVW(1661, adjust=True) 1m (159.526 ms): 1641\n    test 20 simplifyVW(1661, adjust=False) 1m (156.338 ms): 1646\n    test 21 simplifyRDP(1661, adjust=True, shortest=False) 1m (1.597 sec): 1231\n    test 22 simplifyRDP(1661, adjust=True, shortest=True) 1m (3.067 sec): 1231\n    test 23 simplifyRDPgr(1661, adjust=True, shortest=True) 1m (103.120 ms): 1231\n    test 24 simplifyRDP(1661, adjust=False, shortest=False) 1m (1.600 sec): 1267\n    test 25 simplifyRDPfw(1661, adjust=False, shortest=False) 1m (41.618 ms): 1267\n    test 26 simplifyRDPgr(1661, adjust=False, shortest=True) 1m (74.612 ms): 1267\n    test 27 simplifyVW(69, adjust=False) 1m (6.319 ms): 69\n    test 28 simplifyRDP(69, adjust=False, shortest=False) 1m (32.709 ms): 50\n    test 29 simplifyRDPfw(69, adjust=False, shortest=False) 1m (931.025 us): 50\n    test 30 simplifyRDPgr(69, adjust=False, shortest=True) 1m (1.612 ms): 50\n    test 31 simplifyRDPgr(69, adjust=True, shortest=True) 1m (2.211 ms): 45\n    test 32 simplifyRDP(5, adjust=False, shortest=True) 1m (568.151 us): 5\n    test 33 simplifyVW(5, adjust=False, attr='name') 30m (389.814 us): 5\n    test 34 numpy.__version__: 1.24.2\n    test 35 simplify1(69, adjust=False) 1m (956.059 us): 69\n    test 36 simplify1(69, adjust=False) result: <class 'numpy.ndarray'>\n    test 37 simplifyRW(69, adjust=False) 1m (3.808 ms): 33\n    test 38 simplifyRW(69, adjust=False) result: <class 'numpy.ndarray'>\n    test 39 simplifyRDP(69, adjust=False) 1m (36.078 ms): 50\n    test 40 simplifyRDP(69, adjust=False) result: <class 'numpy.ndarray'>\n    test 41 simplifyRDPm(69, adjust=False) 1m (7.331 ms): 67\n    test 42 simplifyRDPm(69, adjust=False) result: <class 'numpy.ndarray'>\n    test 43 simplifyRDPfw(69, adjust=False) 1m (4.048 ms): 50\n    test 44 simplifyRDPgr(69, adjust=False) 1m (7.269 ms): 50\n    test 45 simplifyVW(69, adjust=False) 1m (7.148 ms): 69\n    test 46 simplifyVW(69, adjust=False) result: <class 'numpy.ndarray'>\n    test 47 simplifyVWm(69, adjust=False) 1m (7.157 ms): 69\n    test 48 simplifyVWm(69, adjust=False) result: <class 'numpy.ndarray'>\n    test 49 simplify1(69, adjust=True) 1m (949.144 us): 69\n    test 50 simplify1(69, adjust=True) result: <class 'numpy.ndarray'>\n    test 51 simplifyRW(69, adjust=True) 1m (3.983 ms): 31\n    test 52 simplifyRW(69, adjust=True) result: <class 'numpy.ndarray'>\n    test 53 simplifyRDP(69, adjust=True) 1m (36.285 ms): 45\n    test 54 simplifyRDP(69, adjust=True) result: <class 'numpy.ndarray'>\n    test 55 simplifyRDPm(69, adjust=True) 1m (7.292 ms): 67\n    test 56 simplifyRDPm(69, adjust=True) result: <class 'numpy.ndarray'>\n    test 57 simplifyRDPfw(69, adjust=True) 1m (4.347 ms): 45\n    test 58 simplifyRDPgr(69, adjust=True) 1m (7.885 ms): 45\n    test 59 simplifyVW(69, adjust=True) 1m (7.196 ms): 69\n    test 60 simplifyVW(69, adjust=True) result: <class 'numpy.ndarray'>\n    test 61 simplifyVWm(69, adjust=True) 1m (7.220 ms): 69\n    test 62 simplifyVWm(69, adjust=True) result: <class 'numpy.ndarray'>\n    test 63 simplify1(69, adjust=False, indices=True) 1m (841.856 us): 69\n    test 64 simplify1(69, adjust=False, indices=True) result: <class 'list'>\n    test 65 simplifyRW(69, adjust=False, indices=True) 1m (3.750 ms): 33\n    test 66 simplifyRW(69, adjust=False, indices=True) result: <class 'list'>\n    test 67 simplifyRDP(69, adjust=False, indices=True) 1m (36.049 ms): 50\n    test 68 simplifyRDP(69, adjust=False, indices=True) result: <class 'list'>\n    test 69 simplifyRDPm(69, adjust=False, indices=True) 1m (7.119 ms): 67\n    test 70 simplifyRDPm(69, adjust=False, indices=True) result: <class 'list'>\n    test 71 simplifyRDPfw(69, adjust=True, indices=True) 1m (4.268 ms): 45\n    test 72 simplifyRDPgr(69, adjust=True, indices=True) 1m (7.801 ms): 45\n    test 73 simplifyVW(69, adjust=False, indices=True) 1m (7.059 ms): 69\n    test 74 simplifyVW(69, adjust=False, indices=True) result: <class 'list'>\n    test 75 simplifyVWm(69, adjust=False, indices=True) 1m (7.114 ms): 69\n    test 76 simplifyVWm(69, adjust=False, indices=True) result: <class 'list'>\n\n    12 of 76 testSimplify.py tests (15.8%) FAILED, incl. 12 DeprecationWarnings (pygeodesy 26.3.26 Python 3.11.9 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 1.24.2 scipy 1.10.1 Math 2 macOS 26.3.1 isLazy 0 -W  default) 2:26.125\nrunning /usr/local/bin/p....n3.11 -W default ~/PyGeodesy/test/testSpherical.py\n./test/testLatLon.py:276: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.sphericalNvector.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', p.cosineAndoyerLambertTo(q), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:277: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.sphericalNvector.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', q.cosineAndoyerLambertTo(p), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:279: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.sphericalNvector.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', p.cosineForsytheAndoyerLambertTo(q), '124801.098' if Sph else '125205.965', fmt='%.3f')\n./test/testLatLon.py:280: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.sphericalNvector.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', q.cosineForsytheAndoyerLambertTo(p), '124801.098' if Sph else '125205.965', fmt='%.3f')\n./test/testVectorial.py:128: DeprecationWarning: function L{nearestOn<pygeodesy.vector2d.nearestOn>} has been DEPRECATED on 2025.05.06, use L{pygeodesy.nearestOn<pygeodesy.vector3d.nearestOn>}.\n  t = vector2d.nearestOn(Nvector(0, 0, 0), p1, p2)\n\n    testing testSpherical.py 23.10.23\n\n    testLatLon(pygeodesy.sphericalNvector, 25.05.27)\n    test 1 isEllipsoidal: False\n    test 2 isSpherical: True\n    test 3 lat/lonDMS: 52.20472°N, 000.14056°E\n    test 4 lat/lonDMS F_DM: 52°12.283′N, 000°08.434′E\n    test 5 lat/lonDMS F_DM: 52°12.2832′N, 000°08.4336′E\n    test 6 lat/lonDMS F_DMS: 52°12′17″N, 000°08′26″E\n    test 7 lat/lonDMS F_DMS: 52°12′17.0″N, 000°08′26.0″E\n    test 8 lat/lonDMS F_RAD: 0.911144N, 0.002453E\n    test 9 isequalTo: True\n    test 10 isequalTo: True\n    test 11 latlon2: 52.20472, 0.14056\n    test 12 latlon2: 52.2047, 0.1406\n    test 13 latlon2: 52.205, 0.141\n    test 14 latlon2: 52.2, 0.14\n    test 15 latlon2: 52.2, 0.1\n    test 16 latlon2: 52.0, 0.0\n    test 17 chordTo: 12036677.26\n    test 18 chordTo: 12036463.78\n    test 19 initialBearingTo: 156.1666\n    test 20 initialBearingTo: 65.8921\n    test 21 initialBearingTo: 0.0\n    test 22 initialBearingTo: 180.0\n    test 23 finalBearingTo: 157.8904\n    test 24 finalBearingTo: 93.8581\n    test 25 bearingTo2: 156.1666, 157.8904\n    test 26 ispolar: True\n    test 27 copy: True\n    test 28 __eq__: True\n    test 29 __ne__: False\n    test 30 equirectangularTo: 404329.56\n    test 31 distanceTo: 404279.720589\n    test 32 distanceTo: 404279.720589\n    test 33 distanceTo: 2145\n    test 34 distanceTo: 18013602.92\n    test 35 distanceTo: 20015114.35\n    test 36 intermediateTo: 51.372084°N, 000.707337°E\n    test 37 intermediateTo: True\n    test 38 intermediateTo: 404279.721\n    test 39 intermediateTo+5: 35.160975°N, 008.989542°E\n    test 40 intermediateTo+5: 5.000\n    test 41 intermediateTo-4: 64.911647°N, 013.726301°W\n    test 42 intermediateTo-4: 4.000\n    test 43 intermediateTo-h: 125.000\n    test 44 intermediateChordTo: 51.372294°N, 000.707192°E\n    test 45 intermediateChordTo: True\n    test 46 intermediateChordTo-h: 125.000\n    test 47 midpointTo: 50.536327°N, 001.274614°E\n    test 48 destination: 51.513546°N, 000.098345°W\n    test 49 destination: 51°30′49″N, 000°05′54″W\n    test 50 destination: 34°37′N, 116°33′W\n    test 51 destination: 34.613647°N, 116.55116°W\n    test 52 destination: 0.604122N, 2.034201W\n    test 53 destination: 31.96383509°N, 064.37329146°E\n    test 54 alongTrackDistanceTo: 62331.59\n    test 55 alongTrackDistanceTo: 62331.58\n    test 56 alongTrackDistanceTo: 99.588\n    test 57 alongTrackDistanceTo: -7702.7\n    test 58 alongTrackDistanceTo: 7587.6\n    test 59 crossTrackDistanceTo: -305.6652816061398  FAILED, KNOWN, expected TypeError\n    test 60 crossTrackDistanceTo: -307.55\n    test 61 crossTrackDistanceTo: 7.4524\n    test 62 greatCircle: (-0.79408, 0.12856, 0.59406)\n    test 63 neareston6: (LatLon(45°00′00.0″N, 001°00′00.0″E), 4773243.784965, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E))  FAILED, KNOWN, expected (LatLon(45°00′00.0″N, 001°00′00.0″E), 4755443.4294, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E))\n    test 64 neareston6: (LatLon(45°30′03.93″N, 002°00′00.0″E), 38968.531578, 1.501091, 2, LatLon(45°00′00.0″N, 002°00′00.0″E), LatLon(46°00′00.0″N, 002°00′00.0″E))  FAILED, KNOWN, expected (LatLon(45°30′03.94″N, 002°00′00.0″E), 39078.729285, 1.501072, 2, LatLon(45°00′00.0″N, 002°00′00.0″E), LatLon(46°00′00.0″N, 002°00′00.0″E))\n    test 65 chordTo: 124799.103\n    test 66 cosineAndoyerLambertTo: 124801.098\n    test 67 cosineAndoyerLambertTo: 124801.098\n    test 68 cosineForsyheAndoyerLambertTo: 124801.098\n    test 69 cosineForsyheAndoyerLambertTo: 124801.098\n    test 70 cosineLawTo: 124801.098\n    test 71 cosineLawTo: 124801.098\n    test 72 equirectangularTo: 124804.754\n    test 73 equirectangularTo: 124804.754\n    test 74 euclideanTo: 130015.089\n    test 75 euclideanTo: 130015.089\n    test 76 flatLocalTo: 124804.754\n    test 77 flatLocalTo: 124804.754\n    test 78 flatPolarTo: 133663.257\n    test 79 flatPolarTo: 133663.257\n    test 80 hartzell: 53.3206°N, 001.7297°W\n    test 81 hartzell: 53.3206°N, 001.7297°W\n    test 82 height4: 0.0\n    test 83 height4: (3803904.2, -114870.8, 5109488.3, 0.0)\n    test 84 height4: 53°19′14.2″N, 001°43′46.9″W\n    test 85 height4: 53°19′14.2″N, 001°43′46.9″W\n    test 86 haversineTo: 124801.098\n    test 87 haversineTo: 124801.098\n    test 88 hubenyTo: <bound method LatLonBase.flatLocalTo of LatLon(53°19′14.16″N, 001°43′46.92″W)>\n    test 89 hubenyTo: <bound method LatLonBase.flatLocalTo of LatLon(53°11′19.32″N, 000°08′00.24″E)>\n    test 90 thomasTo: 124801.098\n    test 91 thomasTo: 124801.098\n    test 92 vincentysTo: 124801.098\n    test 93 vincentysTo: 124801.098\n    test 94 greatCircleTo: (-0.79408, 0.12859, 0.59406)\n    test 95 isclockwise: False\n    test 96 isclockwise*: False\n    test 97 isclockwise: True\n    test 98 isclockwise*: True\n    test 99 isclockwise: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 100 isclockwise*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 101 isclockwise: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 102 isclockwise*: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 103 isconvex: False\n    test 104 isconvex*: False\n    test 105 isconvex: True\n    test 106 isconvex*: True\n    test 107 isconvex: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 108 isconvex*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 109 isenclosedBy1: True\n    test 110 isenclosedBy1*: True\n    test 111 isenclosedBy2: False\n    test 112 isenclosedBy2*: False\n    test 113 isenclosedBy3: False\n    test 114 isenclosedBy3*: False\n    test 115 isenclosedBy4: False\n    test 116 isenclosedBy4*: False\n    test 117 isenclosedBy5: False\n    test 118 isenclosedBy5*: False\n    test 119 isenclosedBy6: True\n    test 120 isenclosedBy6*: True\n    test 121 isenclosedBy7: True\n    test 122 isenclosedBy7*: True\n    test 123 isenclosedBy-CCW: True\n    test 124 isenclosedBy-CW : True\n    test 125 isenclosedBy-CCW: True\n    test 126 initialBearingTo: 102.432182\n    test 127 compassAngleTo: 100.017\n    test 128 compassAngleTo: 105.599\n    test 129 initialBearingTo: 288.715918\n    test 130 compassAngleTo: 280.017\n    test 131 compassAngleTo: 285.599\n    test 132 equirectangularTo: 592.185\n    test 133 distanceTo: 591.831\n    test 134 compassAngleTo: 0.0\n    test 135 compassAngleTo: 45.0\n    test 136 compassAngleTo: 90.0\n    test 137 compassAngleTo: 180.0\n    test 138 compassAngleTo: 225.0\n    test 139 compassAngleTo: 315.0\n    test 140 compassAngleTo: 270.0\n    test 141 compassAngleTo: 359.4\n    test 142 latlon2: (53.0, 1.0)\n    test 143 philam2: (0.93, 0.02)\n    test 144 compassAngleTo: 31\n    test 145 compassAngleTo: 45\n\n    test 146 boundsOf: <class 'pygeodesy.namedTuples.Bounds2Tuple'>\n    test 147 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 148 latlon2: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 149 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 150 isequalTo: <class 'bool'>\n    test 151 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 152 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 153 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 154 xyz3: <class 'tuple'>\n    test 155 xyzh: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 156 compassAngleTo: <class 'float'>\n    test 157 cosineLawTo: <class 'float'>\n    test 158 euclideanTo: <class 'float'>\n    test 159 flatLocalTo: <class 'float'>\n    test 160 flatPolarTo: <class 'float'>\n    test 161 haversineTo: <class 'float'>\n    test 162 hubenyTo: <class 'float'>\n    test 163 vincentysTo: <class 'float'>\n    test 164 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 165 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 166 toLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 167 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 168 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 169 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 170 toVector: (3922384.659522, 0.0, 5020423.423198)\n    test 171 toVector3d: (0.61566, 0.0, 0.78801)\n    test 172 trilaterate5 (pygeodesy.sphericalNvector) .min: 223.305\n    test 173 trilaterate5 (pygeodesy.sphericalNvector) .point: 42.67456065°N, 002.49539502°E\n    test 174 trilaterate5 (pygeodesy.sphericalNvector) .min- is .maxPoint: True\n    test 175 trilaterate5 (pygeodesy.sphericalNvector) .n: 1\n    test 176 trilaterate5 (pygeodesy.sphericalNvector) .error: sphericalNvector.LatLon.trilaterate5(area=True), MRO(nvectorBase.LatLonNvectorBase, sphericalBase.LatLonSphericalBase, latlonBase.LatLonBase, named._NamedBase, ecefLocals._EcefLocal, named._Named): not implemented\n\n    test 177 radii11: Radii11Tuple(rA=7701.409157, rB=1361.530045, rC=499.257353, cR=4886.694635, rIn=739.915482, riS=179.523525, roS=6087.250896, a=1860.787398, b=8200.666509, c=9062.939201, s=9562.196554)\n    test 178 circum4 (pygeodesy.sphericalNvector) .radius: 3185505.323  FAILED, KNOWN, expected 3184256.748\n    test 179 circum4 (pygeodesy.sphericalNvector) .center: 42.674561°N, 002.495395°E, -3185503.45m  FAILED, KNOWN, expected 43.054367°N, 002.942573°E, -3183993.92m\n    test 180 circum4 (pygeodesy.sphericalNvector) .rank: 3\n    test 181 circum4 (pygeodesy.sphericalNvector) .residuals: ()\n    test 182 circum4 (pygeodesy.sphericalNvector) .d1: 4886.695  FAILED, KNOWN, expected 57818.033\n    test 183 circum4 (pygeodesy.sphericalNvector) .d2: 4886.695  FAILED, KNOWN, expected 57834.176\n    test 184 circum4 (pygeodesy.sphericalNvector) .d3: 4886.695  FAILED, KNOWN, expected 57830.992\n    test 185 circum4 (pygeodesy.sphericalNvector) .datum: name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84\n    test 186 circum4 (pygeodesy.sphericalNvector) .Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 187 radii11: Radii11Tuple(rA=328257.82694, rB=782282.176109, rC=782282.176109, cR=782304.746354, rIn=325773.738834, riS=85162.638484, roS=INF, a=1564564.352218, b=1110540.003049, c=1110540.003049, s=1892822.179158)\n    test 188 circin6 (pygeodesy.sphericalNvector) .rB+rC: 1564564.352\n    test 189 circin6 (pygeodesy.sphericalNvector) .rC+pA: 1110540.003\n    test 190 circin6 (pygeodesy.sphericalNvector) .rA+rB: 1110540.003\n    test 191 circin6 (pygeodesy.sphericalNvector) .radius: 325773.739  FAILED, KNOWN, expected 325058.721\n    test 192 circin6 (pygeodesy.sphericalNvector) .center: 02.938473°N, 002.942346°E, -40128.57m  FAILED, KNOWN, expected 02.948531°N, 002.932537°E, -40041.19m\n    test 193 circin6 (pygeodesy.sphericalNvector) .deltas: (0.0, 0.0, 0.430944)  FAILED, KNOWN, expected (0.0, 0.0, 0.090491)\n    test 194 circin6 (pygeodesy.sphericalNvector) .cA: 05.019001°N, 005.038369°E, -48209.76m  FAILED, KNOWN, expected 05.04314°N, 005.014578°E, -48104.09m\n    test 195 circin6 (pygeodesy.sphericalNvector) .cB: 00.0°N, 002.951508°E, -20185.00m  FAILED, KNOWN, expected 00.0°N, 002.941713°E, -20168.62m\n    test 196 circin6 (pygeodesy.sphericalNvector) .cC: 02.951508°N, 000.0°E, -20185.00m  FAILED, KNOWN, expected 02.961566°N, 000.0°E, -20113.46m\n    test 197 circin6 (pygeodesy.sphericalNvector) .dA: 327983.380  FAILED, KNOWN, expected 327263.596\n    test 198 circin6 (pygeodesy.sphericalNvector) .dB: 326745.373  FAILED, KNOWN, expected 326036.153\n    test 199 circin6 (pygeodesy.sphericalNvector) .dC: 326745.373  FAILED, KNOWN, expected 326020.432\n\n    test 200 area cw/ccw: 1.0\n\n    testVectorial(pygeodesy.sphericalNvector, 25.05.27)\n    test 201 crossTrackDistanceTo: -305.67\n    test 202 crossTrackDistanceTo: -307.55\n\n    test 203 toLatLon: 44.995674°N, 045.0°E\n    test 204 toNvector: (0.50004, 0.50004, 0.70705)\n    test 205 isequalTo: False\n    test 206 isequalTo: True\n    test 207 length: 0.99992449715\n    test 208 euclid: 0.99995577\n    test 209 length: 1.00\n    test 210 euclid: 1.0000\n    test 211 meanOf: 44.995674°N, 045.0°E\n    test 212 meanOf: LatLon\n    test 213 apply: (0.5, 0.5, 0.707)\n    test 214 init: (0.5, 0.5, 0.707)\n    test 215 i***: (0.5, 0.5, 0.707)\n    test 216 abs: 0.99992449715\n    test 217 sumOf: (52.70504, 0.61904, 0.70705)\n    test 218 sumOf: Nv\n    test 219 sumOf: sumOf\n    test 220 length: 52.7134151513\n    test 221 sizeof: 241  FAILED, KNOWN, expected 128\n    test 222 length: 52.2051356286\n    test 223 sizeof: 360  FAILED, KNOWN, expected 247\n    test 224 copy: True\n    test 225 length: 52.2051356286\n    test 226 sizeof: 360\n\n    test 227 toCartesian: [3185744.919, 3185744.919, 4504643.315]\n    test 228 toLatLon: 44.995674°N, 045.0°E\n    test 229 toNvector: (0.50004, 0.50004, 0.70705)  FAILED, KNOWN, expected (0.50004, 0.50004, 0.70705, -0.00)\n\n    test 230 intersection: 02.499372°N, 002.5°E\n\n    test 231 intersection1: 02.499372°N, 002.5°E\n    test 232 intersection2: 02.499372°S, 177.5°W\n\n    test 233 isenclosedBy: True\n    test 234 isenclosedBy*: True\n    test 235 isenclosedBy: True\n    test 236 isenclosedBy*: True\n\n    test 237 iswithin: False\n    test 238 iswithin: True\n\n    test 239 nearestOn: 51.0°N, 001.0°E\n    test 240 nearestOn: 50.987°N, 000.298°W\n    test 241 nearestOn: 51.0°N, 002.0°E\n    test 242 nearestOn: 50.995°N, 002.655°E\n    test 243 nearestOn: 51.0°N, 001.9°E\n    test 244 nearestOn: True\n    test 245 distanceTo: 42.712\n    test 246 nearestOn: 51.0°N, 002.0°E\n    test 247 nearestOn: True\n    test 248 nearestOn: 00.0°N, 000.0°E\n    test 249 nearestOn: True\n    test 250 nearestOn: 00.0°N, 020.0°E\n    test 251 nearestOn: True\n    test 252 nearestOn: 02.0°N, 002.0°E\n    test 253 nearestOn: 02.0°N, 002.0°E\n\n    test 254 neareston6: (LatLon(45°00′00.0″N, 001°00′00.0″E), 4773243.784965, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E))\n    test 255 neareston6: (LatLon(45°30′03.93″N, 002°00′00.0″E), 38968.531578, 1.501091, 2, LatLon(45°00′00.0″N, 002°00′00.0″E), LatLon(46°00′00.0″N, 002°00′00.0″E))\n\n    test 256 BasseC: 47.3038°N, 002.5721°W\n    test 257 BasseH: 47.311067°N, 002.528617°W\n    test 258 triangulate: 47.323667°N, 002.568501°W\n    test 259 triangulate: True\n\n    test 260 trilaterate: 37.419078°N, 121.960579°W\n    test 261 trilaterate: True\n    test 262 trilaterate: 08.068912°S, 034.888699°W\n    test 263 trilaterate: True\n    test 264 trilaterate: 08.068912°S, 034.888695°W  FAILED, KNOWN, expected 08.068912°S, 034.888699°W\n    test 265 trilaterate: True\n    test 266 trilaterate: 42.67456065°N, 002.49539502°E\n    test 267 trilaterate: distance1 (5110), distance2 (5110), distance3 (5110), point1 (LatLon(42°41′19.82″N, 002°26′19.89″E)), point2 (LatLon(42°38′07.52″N, 002°31′21.25″E)) or point3 (LatLon(42°38′43.44″N, 002°30′17.32″E)): no intersection (useZ=False, wrap=False, z=-8.13526e-05)\n\n    testNvector(pygeodesy.sphericalNvector, 25.05.27)\n    test 268 sumOf: Nvector\n    test 269 ecef.x, .y, .z: 3185744.91853, 3185744.91853, 4504643.3148\n    test 270 ecef.lat, .lon: 44.995674, 45.0\n    test 271 ecef.height: -0.0\n    test 272 ecef.M: -0.707106781, -0.499962243, 0.500037754, 0.707106781, -0.499962243, 0.500037754, 0.0, 0.707160174, 0.707053385\n    test 273 .isEllipsoidal: False\n    test 274 .isSpherical: True\n    test 275 .latlon: (44.995674, 45.0)\n    test 276 .philam: (0.785323, 0.785398)\n    test 277 .latlonheight: (44.995674, 45.0, 0.0)\n    test 278 .philamheight: (0.785323, 0.785398, 0.0)\n    test 279 parse: (0.5, 0.5, 0.707)\n    test 280 cmp: 0\n    test 281 eq: True\n    test 282 ge: True\n    test 283 gt: False\n    test 284 le: True\n    test 285 lt: False\n    test 286 ne: False\n    test 287 *: (1.0, 1.0, 1.414)\n    test 288 +: (1.0, 1.0, 1.414)\n    test 289 /: (0.5, 0.5, 0.707)\n    test 290 -: (0.5, 0.5, 0.707)\n    test 291 @: (0.0, 0.0, 0.0)\n    test 292 @: (0.0, 0.0, 0.0)\n./test/testSpherical.py:318: DeprecationWarning: method L{rhumbBearingTo<pygeodesy.sphericalNvector.LatLon.rhumbBearingTo>} has been DEPRECATED, use method C{.rhumbAzimuthTo}.\n  b = p.rhumbBearingTo(q)  # rhumbAzimuthTo\n./test/testLatLon.py:276: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.sphericalTrigonometry.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', p.cosineAndoyerLambertTo(q), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:277: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.sphericalTrigonometry.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', q.cosineAndoyerLambertTo(p), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:279: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.sphericalTrigonometry.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', p.cosineForsytheAndoyerLambertTo(q), '124801.098' if Sph else '125205.965', fmt='%.3f')\n./test/testLatLon.py:280: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.sphericalTrigonometry.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', q.cosineForsytheAndoyerLambertTo(p), '124801.098' if Sph else '125205.965', fmt='%.3f')\n    test 293 rotate: (0.26268, 0.26268, 0.37143)\n    test 294 crosserrors: True\n    test 295 0: divisor (0): float division by zero\n    test 296 intersections2: (500.0, 0.0, 0.0)\n    test 297 nearestOn: (0.0, 0.0, 0.0)\n    test 298 nearestOn: True\n    test 299 nearestOn: (100.0, 100.0, 100.0)\n    test 300 nearestOn: True\n    test 301 iscolinearWith: False\n    test 302 iscolinearWith: True\n    test 303 nearestOn: (0.0, 0.0, 0.0)\n    test 304 nearestOn: True\n    test 305 nearestOn: (100.0, 100.0, 100.0)\n    test 306 nearestOn: True\n    test 307 iscolinearWith: False\n    test 308 iscolinearWith: True\n\n    testSpherical(pygeodesy.sphericalNvector, 25.05.27)\n    test 309 isSpherical: True\n    test 310 isEllipsoidal: False\n    test 311 datum: name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84\n    test 312 ellipsoid: name='SphereAuthalic', a=6371000, f=0, f_=0, b=6371000\n    test 313 datum: name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84\n    test 314 isSpherical: True\n    test 315 isEllipsoidal: False\n    test 316 intersection1: 50.907608°N, 004.508575°E\n    test 317 intersection1: 50°54′27.39″N, 004°30′30.87″E\n    test 318 intersection1: True\n    test 319 intersection2: True\n    test 320 intersection2: 43.5719°N, 116.188757°W\n    test 321 intersection2: 43°34′18.84″N, 116°11′19.53″W\n    test 322 intersection3: 51.882166°N, 000.267801°E\n    test 323 intersection4: 00.0°S, 026.565051°E  FAILED, KNOWN, expected 00.0°N, 026.565051°E\n    test 324 intersection5: 26.565051°N, 000.0°E  FAILED, KNOWN, expected 26.565051°N, 000.0°W\n    test 325 intersection6: 50.907809°N, 004.50841°E\n    test 326 intersection7: 01°52′46.41″S, 005°39′06.87″E\n    test 327 intersection8: 28°15′40.35″S, 032°14′33.2″E\n    test 328 toward 1,1 N,E nearest: 00.999848°N, 001.0°E\n    test 329 toward 1,1 E,N nearest: 00.999848°N, 001.0°E\n    test 330 toward 1,1 N,E antipodal: 00.999848°S, 179.0°W\n    test 331 toward/away 1,1 N,W antipodal: 00.999848°N, 001.0°E\n    test 332 toward/away 1,1 W,N antipodal: 00.999848°S, 179.0°W\n    test 333 toward/away 1,1 S,E antipodal: 00.999848°S, 179.0°W\n    test 334 toward/away 1,1 E,S antipodal: 00.999848°N, 001.0°E\n    test 335 away 1,1 S,W antipodal: 00.999848°S, 179.0°W\n    test 336 away 1,1 W,S antipodal: 00.999848°S, 179.0°W\n    test 337 1E/90E N,E antipodal: 00.017454°N, 001.0°E\n    test 338 1E/90E N,E nearest: 00.017454°N, 179.0°W\n    test 339 brng+end 1a: 01.000305°N, 002.0°E\n    test 340 brng+end 1b: 01.000305°N, 002.0°E\n    test 341 brng+end 2a: 01.000305°S, 178.0°W\n    test 342 brng+end 2b: 01.000305°S, 178.0°W\n    test 343 intersection7: 02.499372°N, 002.5°E\n    test 344 maxLat0: 90.0\n    test 345 maxLat1: 89.0\n    test 346 maxLat90: 0.0\n    test 347 minLat0: -90.0\n    test 348 minLat1: -89.0\n    test 349 minLat90: -0.0\n    test 350 parse: 00.0°N, 000.0°E\n\n    test 351 intersecant2: 04.260346°N, 006.272173°E and 01.250608°S, 000.749094°E\n    test 352 intersecant2: 700000\n    test 353 intersecant2: 699999  FAILED, KNOWN, expected 700000\n    test 354 intersecant2: 45.014  FAILED, KNOWN, expected 45.000\n\n    test 355 intersecant2: 04.261539°N, 006.265474°E and 00.0°N, 002.0°E\n    test 356 intersecant2: 699248  FAILED, KNOWN, expected 700000\n    test 357 intersecant2: 598698  FAILED, KNOWN, expected 700000\n    test 358 intersecant2: 45.000\n\n    test 359 intersecant2: 04.262363°N, 006.2663°E and 01.258709°S, 000.74119°E\n    test 360 intersecant2: 699302  FAILED, KNOWN, expected 700000\n    test 361 intersecant2: 700080  FAILED, KNOWN, expected 700000\n    test 362 intersecant2: 45.021  FAILED, KNOWN, expected 45.000\n\n    test 363 intersecant4: 02.375133°N, 024.894142°E and 25.0°S, 000.0°E  FAILED, KNOWN, expected 00.0°N, 025.0°E and 25.0°S, 000.0°E\n    test 364 intersecant4: 00.0°S, 025.0°E and 25.0°S, 000.0°E  FAILED, KNOWN, expected 00.0°N, 025.0°E and 25.0°S, 000.0°E\n    test 365 intersecant4: 02.375133°N, 024.894142°E and 25.0°S, 000.0°E  FAILED, KNOWN, expected 00.0°N, 025.0°E and 25.0°S, 000.0°E\n    test 366 intersecant4: 00.0°S, 025.0°E and 25.0°S, 000.0°E  FAILED, KNOWN, expected 00.0°N, 025.0°E and 25.0°S, 000.0°E\n\n    test 367 intersecant4: 00.725365°N, 026.558638°E and 25.747°S, 000.826763°W  FAILED, KNOWN, expected 00.0°N, 025.0°E and 25.0°S, 000.0°E\n    test 368 intersecant4: 00.725365°N, 026.558638°E and 25.747°S, 000.826763°W  FAILED, KNOWN, expected 00.0°N, 025.0°E and 25.0°S, 000.0°E\n    test 369 intersecant4: 00.021635°S, 025.811619°E and 25.0°S, 000.0°E  FAILED, KNOWN, expected 00.0°N, 025.0°E and 25.0°S, 000.0°E\n    test 370 intersecant4: 00.021635°S, 025.811619°E and 25.0°S, 000.0°E  FAILED, KNOWN, expected 00.0°N, 025.0°E and 25.0°S, 000.0°E\n\n    test 371 intersecant4: 00.807845°N, 026.641126°E and 25.0°S, 000.0°E  FAILED, KNOWN, expected 00.0°N, 025.0°E and 25.0°S, 000.0°E\n    test 372 intersecant4: 01.624807°N, 026.572609°E and 25.0°S, 000.0°E  FAILED, KNOWN, expected 00.0°N, 025.0°E and 25.0°S, 000.0°E\n    test 373 intersecant4: 00.807845°N, 026.641126°E and 25.0°S, 000.0°E  FAILED, KNOWN, expected 00.0°N, 025.0°E and 25.0°S, 000.0°E\n    test 374 intersecant4: 01.624807°N, 026.572609°E and 25.0°S, 000.0°E  FAILED, KNOWN, expected 00.0°N, 025.0°E and 25.0°S, 000.0°E\n\n    test 375 intersecant2.1: LatLon(04°04′02.63″S, 029°43′21.16″W) Napier: 3333000.000\n    test 376 intersecant2.1: LatLon(29°58′27.6″N, 000°01′46.65″W) Napier: 3333000.000\n    test 377 intersecant2.1: LatLon(29°58′27.6″N, 000°01′46.65″W) : 3332999.886  FAILED, KNOWN, expected 3333000.000\n    test 378 intersecant2.1: LatLon(02°29′47.81″S, 028°30′01.84″W) : 3180236.460  FAILED, KNOWN, expected 3333000.000\n\n    test 379 intersecant2.2: LatLon(04°04′02.63″S, 029°43′21.16″E) Napier: 3333000.000\n    test 380 intersecant2.2: LatLon(29°58′27.6″N, 000°01′46.65″E) Napier: 3333000.000\n    test 381 intersecant2.2: LatLon(02°29′47.81″S, 028°30′01.84″E) : 3180236.460  FAILED, KNOWN, expected 3333000.000\n    test 382 intersecant2.2: LatLon(29°58′27.6″N, 000°01′46.65″E) : 3332999.886  FAILED, KNOWN, expected 3333000.000\n\n    test 383 intersecant2.3: LatLon(04°04′02.63″N, 029°43′21.16″W) Napier: 3333000.000\n    test 384 intersecant2.3: LatLon(29°58′27.6″S, 000°01′46.65″W) Napier: 3333000.000\n    test 385 intersecant2.3: LatLon(29°58′27.6″S, 000°01′46.65″W) : 3332999.886  FAILED, KNOWN, expected 3333000.000\n    test 386 intersecant2.3: LatLon(02°29′47.81″N, 028°30′01.84″W) : 3180236.460  FAILED, KNOWN, expected 3333000.000\n\n    test 387 intersecant2.4: LatLon(29°50′37.22″S, 002°56′03.42″W) Napier: 3333000.000\n    test 388 intersecant2.4: LatLon(00°29′30.34″N, 029°58′14.48″E) Napier: 3333000.000\n    test 389 intersecant2.4: LatLon(00°08′01.47″N, 029°38′09.18″E) : 3295394.784  FAILED, KNOWN, expected 3333000.000\n    test 390 intersecant2.4: LatLon(29°31′09.01″S, 002°27′32.93″W) : 3292733.874  FAILED, KNOWN, expected 3333000.000\n\n    test 391 intersecant2.5: LatLon(00°01′46.69″S, 029°58′27.6″E) Napier: 3333000.000\n    test 392 intersecant2.5: LatLon(29°58′27.59″S, 000°02′03.16″E) Napier: 3333000.000\n    test 393 intersecant2.5: LatLon(01°38′23.65″S, 028°34′45.37″E) : 3182660.966  FAILED, KNOWN, expected 3333000.000\n    test 394 intersecant2.5: LatLon(29°58′27.58″S, 000°02′03.17″E) : 3332999.848  FAILED, KNOWN, expected 3333000.000\n\n    test 395 intersecant2.6: LatLon(05°08′54.91″S, 029°34′09.94″E) Napier: 3333000.000\n    test 396 intersecant2.6: LatLon(28°36′28.71″S, 009°21′04.99″E) Napier: 3333000.000\n    test 397 intersecant2.6: LatLon(11°51′13.84″S, 024°23′59.0″E) : 2998636.503  FAILED, KNOWN, expected 3333000.000\n    test 398 intersecant2.6: LatLon(26°53′11.53″S, 011°08′26.36″E) : 3218384.739  FAILED, KNOWN, expected 3333000.000\n    test 399 isenclosedBy: True\n    test 400 isenclosedBy*: True\n    test 401 isenclosedBy: True\n    test 402 isenclosedBy*: True\n    test 403 rhumbBearingTo: 116.722\n    test 404 rhumbDestination: 50.964155°N, 001.853°E\n    test 405 rhumbDestination: True\n    test 406 rhumbDistanceTo: 40307.8\n    test 407 rhumbMidpointo-0.5: 51.0455°N, 001.595727°E\n    test 408 rhumbMidpointo: True\n    test 409 rhumbMidpointo-0.0: 51.127°N, 001.338°E\n    test 410 rhumbMidpointo-0.25: 51.08625°N, 001.46692°E\n    test 411 rhumbMidpointo-0.75: 51.00475°N, 001.72442°E\n    test 412 rhumbMidpointo-1.0: 50.964°N, 001.853°E\n    test 413 rhumbMidpointo-2.0: 50.801°N, 002.366196°E\n    test 414 areaOf: 8.66605875e+09\n    test 415 perimeterOf: 3.78258541e+05\n    test 416 perimeterOf: 2.67063461e+05\n    test 417 areaOf: 6.18e+09\n    test 418 perimeterOf: 3.79639757e+05\n    test 419 perimeterOf: 2.68444678e+05\n    test 420 nearestOn3: 46.000996°N, 001.353049°E\n    test 421 nearestOn3: 569987.49\n    test 422 distanceTo: 569987.49\n    test 423 nearestOn3: 46.0°N, 002.0°E\n    test 424 nearestOn3: 134989.80\n    test 425 distanceTo: 134989.80\n    test 426 nearestOn3: 45.330691°N, 001.318551°E\n    test 427 distance: 64856.28\n    test 428 distanceTo: 64856.28\n    test 429 compassAngleTo: 304.54\n    test 430 difference: 1000.53\n    test 431 ispolar: True\n    test 432 ispolar*: True\n    test 433 ispolar: False  FAILED, KNOWN, expected True\n    test 434 ispolar*: False  FAILED, KNOWN, expected True\n    test 435 ispolar: True\n    test 436 ispolar*: True\n    test 437 nearestOn: 01.5°N, 001.5°E, +149.99m\n    test 438 nearestOn3: 01.5°N, 001.5°E, +149.99m\n    test 439 midpointTo: 50.5363°N, 001.2746°E, +150.00m\n    test 440 intermediateTo: 50.5363°N, 001.2746°E, +150.00m\n\n    testLatLon(pygeodesy.sphericalTrigonometry, 25.08.31)\n    test 441 isEllipsoidal: False\n    test 442 isSpherical: True\n    test 443 lat/lonDMS: 52.20472°N, 000.14056°E\n    test 444 lat/lonDMS F_DM: 52°12.283′N, 000°08.434′E\n    test 445 lat/lonDMS F_DM: 52°12.2832′N, 000°08.4336′E\n    test 446 lat/lonDMS F_DMS: 52°12′17″N, 000°08′26″E\n    test 447 lat/lonDMS F_DMS: 52°12′17.0″N, 000°08′26.0″E\n    test 448 lat/lonDMS F_RAD: 0.911144N, 0.002453E\n    test 449 isequalTo: True\n    test 450 isequalTo: True\n    test 451 latlon2: 52.20472, 0.14056\n    test 452 latlon2: 52.2047, 0.1406\n    test 453 latlon2: 52.205, 0.141\n    test 454 latlon2: 52.2, 0.14\n    test 455 latlon2: 52.2, 0.1\n    test 456 latlon2: 52.0, 0.0\n    test 457 chordTo: 12036677.26\n    test 458 chordTo: 12036463.78\n    test 459 initialBearingTo: 156.1666\n    test 460 initialBearingTo: 65.8921\n    test 461 initialBearingTo: 0.0\n    test 462 initialBearingTo: 180.0\n    test 463 finalBearingTo: 157.8904\n    test 464 finalBearingTo: 93.8581\n    test 465 bearingTo2: 156.1666, 157.8904\n    test 466 ispolar: True\n    test 467 copy: True\n    test 468 __eq__: True\n    test 469 __ne__: False\n    test 470 equirectangularTo: 404329.56\n    test 471 distanceTo: 404279.720589\n    test 472 distanceTo: 404279.720589\n    test 473 distanceTo: 2145\n    test 474 antipodal: False\n    test 475 distanceTo dateline: 19967403.498  FAILED, KNOWN, expected 19119590.551\n    test 476 distanceTo unrolled: 19967403.498  FAILED, KNOWN, expected 19119590.551\n    test 477 antipodal: False\n    test 478 distanceTo dateline: 9491735\n    test 479 distanceTo unrolled: 9491735\n    test 480 distanceTo: 18013602.92\n    test 481 distanceTo: 20015114.35\n    test 482 intermediateTo: 51.372084°N, 000.707337°E\n    test 483 intermediateTo: True\n    test 484 intermediateTo: 404279.721\n    test 485 intermediateTo+5: 35.160975°N, 008.989542°E\n    test 486 intermediateTo+5: 5.000\n    test 487 intermediateTo-4: 64.911647°N, 013.726301°W\n    test 488 intermediateTo-4: 4.000\n    test 489 intermediateTo-h: 125.000\n    test 490 midpointTo: 50.536327°N, 001.274614°E\n    test 491 destination: 51.513546°N, 000.098345°W\n    test 492 destination: 51°30′49″N, 000°05′54″W\n    test 493 destination: 34°37′N, 116°33′W\n    test 494 destination: 34.613647°N, 116.55116°W\n    test 495 destination: 0.604122N, 2.034201W\n    test 496 destination: 31.96383509°N, 064.37329146°E\n    test 497 alongTrackDistanceTo: type(end) (96): incompatible with sphericalTrigonometry.LatLon.alongTrackDistanceTo(end)  FAILED, KNOWN, expected incompatible ...\n    test 498 alongTrackDistanceTo: 62331.58\n    test 499 alongTrackDistanceTo: 99.588\n    test 500 alongTrackDistanceTo: -7702.7\n    test 501 alongTrackDistanceTo: 7587.6\n    test 502 crossTrackDistanceTo: type(end) (96): incompatible with sphericalTrigonometry.LatLon.crossTrackDistanceTo(end)  FAILED, KNOWN, expected incompatible ...\n    test 503 crossTrackDistanceTo: -307.55\n    test 504 crossTrackDistanceTo: 7.4524\n    test 505 greatCircle: (-0.79408, 0.12856, 0.59406)\n    test 506 neareston6: (LatLon(45°00′00.0″N, 001°00′00.0″E), 4773243.784965, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E))  FAILED, KNOWN, expected (LatLon(45°00′00.0″N, 001°00′00.0″E), 4755443.4294, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E))\n    test 507 neareston6: (LatLon(45°30′03.93″N, 002°00′00.0″E), 38968.531578, 1.501091, 2, LatLon(45°00′00.0″N, 002°00′00.0″E), LatLon(46°00′00.0″N, 002°00′00.0″E))  FAILED, KNOWN, expected (LatLon(45°30′03.94″N, 002°00′00.0″E), 39078.729285, 1.501072, 2, LatLon(45°00′00.0″N, 002°00′00.0″E), LatLon(46°00′00.0″N, 002°00′00.0″E))\n    test 508 chordTo: 124799.103\n    test 509 cosineAndoyerLambertTo: 124801.098\n    test 510 cosineAndoyerLambertTo: 124801.098\n    test 511 cosineForsyheAndoyerLambertTo: 124801.098\n    test 512 cosineForsyheAndoyerLambertTo: 124801.098\n    test 513 cosineLawTo: 124801.098\n    test 514 cosineLawTo: 124801.098\n    test 515 equirectangularTo: 124804.754\n    test 516 equirectangularTo: 124804.754\n    test 517 euclideanTo: 130015.089\n    test 518 euclideanTo: 130015.089\n    test 519 flatLocalTo: 124804.754\n    test 520 flatLocalTo: 124804.754\n    test 521 flatPolarTo: 133663.257\n    test 522 flatPolarTo: 133663.257\n    test 523 hartzell: 53.3206°N, 001.7297°W\n    test 524 hartzell: 53.3206°N, 001.7297°W\n    test 525 height4: 0.0\n    test 526 height4: (3803904.2, -114870.8, 5109488.3, 0.0)\n    test 527 height4: 53°19′14.2″N, 001°43′46.9″W\n    test 528 height4: 53°19′14.2″N, 001°43′46.9″W\n    test 529 haversineTo: 124801.098\n    test 530 haversineTo: 124801.098\n    test 531 hubenyTo: <bound method LatLonBase.flatLocalTo of LatLon(53°19′14.16″N, 001°43′46.92″W)>\n    test 532 hubenyTo: <bound method LatLonBase.flatLocalTo of LatLon(53°11′19.32″N, 000°08′00.24″E)>\n    test 533 thomasTo: 124801.098\n    test 534 thomasTo: 124801.098\n    test 535 vincentysTo: 124801.098\n    test 536 vincentysTo: 124801.098\n    test 537 isclockwise: False\n    test 538 isclockwise*: False\n    test 539 isclockwise: True\n    test 540 isclockwise*: True\n    test 541 isclockwise: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 542 isclockwise*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 543 isclockwise: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 544 isclockwise*: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 545 isconvex: False\n    test 546 isconvex*: False\n    test 547 isconvex: True\n    test 548 isconvex*: True\n    test 549 isconvex: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 550 isconvex*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 551 isenclosedBy1: True\n    test 552 isenclosedBy1*: True\n    test 553 isenclosedBy2: False\n    test 554 isenclosedBy2*: False\n./test/testSpherical.py:318: DeprecationWarning: method L{rhumbBearingTo<pygeodesy.sphericalTrigonometry.LatLon.rhumbBearingTo>} has been DEPRECATED, use method C{.rhumbAzimuthTo}.\n  b = p.rhumbBearingTo(q)  # rhumbAzimuthTo\n    test 555 isenclosedBy3: False\n    test 556 isenclosedBy3*: False\n    test 557 isenclosedBy4: False\n    test 558 isenclosedBy4*: False\n    test 559 isenclosedBy5: False\n    test 560 isenclosedBy5*: False\n    test 561 isenclosedBy6: True\n    test 562 isenclosedBy6*: True\n    test 563 isenclosedBy7: True\n    test 564 isenclosedBy7*: True\n    test 565 isenclosedBy-CCW: True\n    test 566 isenclosedBy-CW : True\n    test 567 isenclosedBy-CCW: True\n    test 568 initialBearingTo: 102.432182\n    test 569 compassAngleTo: 100.017\n    test 570 compassAngleTo: 105.599\n    test 571 initialBearingTo: 288.715918\n    test 572 compassAngleTo: 280.017\n    test 573 compassAngleTo: 285.599\n    test 574 equirectangularTo: 592.185\n    test 575 distanceTo: 591.831\n    test 576 bearingTo: 0.0\n    test 577 compassAngleTo: 0.0\n    test 578 bearingTo: 45.0\n    test 579 compassAngleTo: 45.0\n    test 580 bearingTo: 90.0\n    test 581 compassAngleTo: 90.0\n    test 582 bearingTo: 180.0\n    test 583 compassAngleTo: 180.0\n    test 584 bearingTo: 225.0\n    test 585 compassAngleTo: 225.0\n    test 586 bearingTo: 315.0\n    test 587 compassAngleTo: 315.0\n    test 588 bearingTo: 270.0\n    test 589 compassAngleTo: 270.0\n    test 590 bearingTo: 0.0  FAILED, KNOWN, expected 359.4\n    test 591 compassAngleTo: 359.4\n    test 592 latlon2: (53.0, 1.0)\n    test 593 philam2: (0.93, 0.02)\n    test 594 bearingTo: 31\n    test 595 compassAngleTo: 31\n    test 596 compassAngleTo: 45\n\n    test 597 boundsOf: <class 'pygeodesy.namedTuples.Bounds2Tuple'>\n    test 598 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 599 latlon2: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 600 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 601 isequalTo: <class 'bool'>\n    test 602 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 603 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 604 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 605 xyz3: <class 'tuple'>\n    test 606 xyzh: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 607 compassAngleTo: <class 'float'>\n    test 608 cosineLawTo: <class 'float'>\n    test 609 euclideanTo: <class 'float'>\n    test 610 flatLocalTo: <class 'float'>\n    test 611 flatPolarTo: <class 'float'>\n    test 612 haversineTo: <class 'float'>\n    test 613 hubenyTo: <class 'float'>\n    test 614 vincentysTo: <class 'float'>\n    test 615 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 616 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 617 toLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 618 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 619 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 620 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 621 toNvector: (0.61566, 0.0, 0.78801)\n    test 622 toVector: (3922384.659522, 0.0, 5020423.423198)\n    test 623 toVector3d: (0.61566, 0.0, 0.78801)\n\n    test 624 trilaterate5 (pygeodesy.sphericalTrigonometry) .min: 313.671\n    test 625 trilaterate5 (pygeodesy.sphericalTrigonometry) .point: 42.66937229°N, 002.48639477°E\n    test 626 trilaterate5 (pygeodesy.sphericalTrigonometry) .max: 1591.044\n    test 627 trilaterate5 (pygeodesy.sphericalTrigonometry) .point: 42.65153054°N, 002.46822157°E\n    test 628 trilaterate5 (pygeodesy.sphericalTrigonometry) .n: 3\n    test 629 trilaterate5 (pygeodesy.sphericalTrigonometry) .min: 133.815\n    test 630 trilaterate5 (pygeodesy.sphericalTrigonometry) .max: 160.242\n    test 631 trilaterate5 (pygeodesy.sphericalTrigonometry) .point: 42.67817811°N, 002.49966641°E\n    test 632 trilaterate5 (pygeodesy.sphericalTrigonometry) .n: 2\n    test 633 trilaterate5 (pygeodesy.sphericalTrigonometry) .min: 2403.293\n    test 634 trilaterate5 (pygeodesy.sphericalTrigonometry) .max: 2403.293\n    test 635 trilaterate5 (pygeodesy.sphericalTrigonometry) .point: 42.66135649°N, 002.47981645°E\n    test 636 trilaterate5 (pygeodesy.sphericalTrigonometry) .min- is .maxPoint: True\n    test 637 trilaterate5 (pygeodesy.sphericalTrigonometry) .n: 1\n    test 638 trilaterate5 (pygeodesy.sphericalTrigonometry) .min: 1340.608\n    test 639 trilaterate5 (pygeodesy.sphericalTrigonometry) .point: 42.69128229°N, 002.50129001°E\n    test 640 trilaterate5 (pygeodesy.sphericalTrigonometry) .max: 1499.220\n    test 641 trilaterate5 (pygeodesy.sphericalTrigonometry) .point: 42.64295864°N, 002.44242391°E\n    test 642 trilaterate5 (pygeodesy.sphericalTrigonometry) .n: 3\n    test 643 radii11: Radii11Tuple(rA=7237.243793, rB=1825.695409, rC=2.255158, cR=57690.493993, rIn=57.33247, riS=2.087691, roS=2.443616, a=1827.950567, b=7239.49895, c=9062.939201, s=9065.194359)\n    test 644 circum3 (pygeodesy.sphericalTrigonometry) .error: circum (True), point (LatLon(42°41′19.82″N, 002°26′19.89″E)), point2 (LatLon(42°38′07.52″N, 002°31′21.25″E)) or point3 (LatLon(42°38′43.44″N, 002°30′17.32″E)): 'no intersection of Cartesian(4678747.025, 199276.311, 4319649.059), Cartesian(4682472.234, 206289.224, 4315281.138) and Cartesian(4681785.019, 204805.018, 4316097.393) with radius 57690.493992845404'\n\n    test 645 radii11: Radii11Tuple(rA=7237.243793, rB=1825.695409, rC=2.255158, cR=57690.493993, rIn=57.33247, riS=2.087691, roS=2.443616, a=1827.950567, b=7239.49895, c=9062.939201, s=9065.194359)\n    test 646 circum4 (pygeodesy.sphericalTrigonometry) .radius: 3185634.993  FAILED, KNOWN, expected 3184256.748\n    test 647 circum4 (pygeodesy.sphericalTrigonometry) .center: 43.051859°N, 002.94463°E, -3185373.78m  FAILED, KNOWN, expected 43.054367°N, 002.942573°E, -3183993.92m\n    test 648 circum4 (pygeodesy.sphericalTrigonometry) .rank: 3\n    test 649 circum4 (pygeodesy.sphericalTrigonometry) .residuals: ()\n    test 650 circum4 (pygeodesy.sphericalTrigonometry) .d1: 57691.283  FAILED, KNOWN, expected 57818.033\n    test 651 circum4 (pygeodesy.sphericalTrigonometry) .d2: 57691.283  FAILED, KNOWN, expected 57834.176\n    test 652 circum4 (pygeodesy.sphericalTrigonometry) .d3: 57691.283  FAILED, KNOWN, expected 57830.992\n    test 653 circum4 (pygeodesy.sphericalTrigonometry) .datum: name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84\n    test 654 circum4 (pygeodesy.sphericalTrigonometry) .Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 655 radii11: Radii11Tuple(rA=328257.82694, rB=782282.176109, rC=782282.176109, cR=782304.746354, rIn=325773.738834, riS=85162.638484, roS=INF, a=1564564.352218, b=1110540.003049, c=1110540.003049, s=1892822.179158)\n    test 656 circin6 (pygeodesy.sphericalTrigonometry) .rB+rC: 1564564.352\n    test 657 circin6 (pygeodesy.sphericalTrigonometry) .rC+pA: 1110540.003\n    test 658 circin6 (pygeodesy.sphericalTrigonometry) .rA+rB: 1110540.003\n    test 659 circin6 (pygeodesy.sphericalTrigonometry) .radius: 325773.739  FAILED, KNOWN, expected 325058.721\n    test 660 circin6 (pygeodesy.sphericalTrigonometry) .center: 02.938473°N, 002.942346°E, -40128.57m  FAILED, KNOWN, expected 02.948531°N, 002.932537°E, -40041.19m\n    test 661 circin6 (pygeodesy.sphericalTrigonometry) .deltas: (0.0, 0.0, 0.430944)  FAILED, KNOWN, expected (0.0, 0.0, 0.090491)\n    test 662 circin6 (pygeodesy.sphericalTrigonometry) .cA: 05.019001°N, 005.038369°E, -48209.76m  FAILED, KNOWN, expected 05.04314°N, 005.014578°E, -48104.09m\n    test 663 circin6 (pygeodesy.sphericalTrigonometry) .cB: 00.0°N, 002.951508°E, -20185.00m  FAILED, KNOWN, expected 00.0°N, 002.941713°E, -20168.62m\n    test 664 circin6 (pygeodesy.sphericalTrigonometry) .cC: 02.951508°N, 000.0°E, -20185.00m  FAILED, KNOWN, expected 02.961566°N, 000.0°E, -20113.46m\n    test 665 circin6 (pygeodesy.sphericalTrigonometry) .dA: 327983.380  FAILED, KNOWN, expected 327263.596\n    test 666 circin6 (pygeodesy.sphericalTrigonometry) .dB: 326745.373  FAILED, KNOWN, expected 326036.153\n    test 667 circin6 (pygeodesy.sphericalTrigonometry) .dC: 326745.373  FAILED, KNOWN, expected 326020.432\n\n    test 668 area cw/ccw: 1.0\n\n    testSpherical(pygeodesy.sphericalTrigonometry, 25.08.31)\n    test 669 isSpherical: True\n    test 670 isEllipsoidal: False\n    test 671 datum: name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84\n    test 672 ellipsoid: name='SphereAuthalic', a=6371000, f=0, f_=0, b=6371000\n    test 673 datum: name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84\n    test 674 isSpherical: True\n    test 675 isEllipsoidal: False\n    test 676 intersection1: 50.907608°N, 004.508575°E\n    test 677 intersection1: 50°54′27.39″N, 004°30′30.87″E\n    test 678 intersection1: True\n    test 679 intersection2: True\n    test 680 intersection2: 43.5719°N, 116.188757°W\n    test 681 intersection2: 43°34′18.84″N, 116°11′19.53″W\n    test 682 intersection3: 51.882166°N, 000.267801°E\n    test 683 intersection4: 00.0°N, 026.565051°E\n    test 684 intersection5: 26.565051°N, 000.0°E  FAILED, KNOWN, expected 26.565051°N, 000.0°W\n    test 685 intersection6: 50.907809°N, 004.50841°E\n    test 686 intersection7: 01°52′46.41″S, 005°39′06.87″E\n    test 687 intersection8: 28°15′40.35″S, 032°14′33.2″E\n    test 688 toward 1,1 N,E nearest: 00.999848°N, 001.0°E\n    test 689 toward 1,1 E,N nearest: 00.999848°N, 001.0°E\n    test 690 toward 1,1 N,E antipodal: 00.999848°S, 179.0°W\n    test 691 toward/away 1,1 N,W antipodal: 00.999848°N, 001.0°E\n    test 692 toward/away 1,1 W,N antipodal: 00.999848°S, 179.0°W\n    test 693 toward/away 1,1 S,E antipodal: 00.999848°S, 179.0°W\n    test 694 toward/away 1,1 E,S antipodal: 00.999848°N, 001.0°E\n    test 695 away 1,1 S,W antipodal: 00.999848°S, 179.0°W\n    test 696 away 1,1 W,S antipodal: 00.999848°S, 179.0°W\n    test 697 1E/90E N,E antipodal: 00.017454°N, 001.0°E\n    test 698 1E/90E N,E nearest: 00.017454°N, 179.0°W\n    test 699 brng+end 1a: 01.000305°N, 002.0°E\n    test 700 brng+end 1b: 01.000305°N, 002.0°E\n    test 701 brng+end 2a: 01.000305°S, 178.0°W\n    test 702 brng+end 2b: 01.000305°S, 178.0°W\n    test 703 intersection7: 02.499372°N, 002.5°E\n    test 704 maxLat0: 90.0\n    test 705 maxLat1: 89.0\n    test 706 maxLat90: 0.0\n    test 707 minLat0: -90.0\n    test 708 minLat1: -89.0\n    test 709 minLat90: -0.0\n    test 710 parse: 00.0°N, 000.0°E\n    test 711 crossingParallels: 009°35′38.65″E, 170°24′21.35″E\n\n    test 712 intersecant2: 04.260346°N, 006.272173°E and 01.250608°S, 000.749094°E\n    test 713 intersecant2: 700000\n    test 714 intersecant2: 699999  FAILED, KNOWN, expected 700000\n    test 715 intersecant2: 45.014  FAILED, KNOWN, expected 45.000\n\n    test 716 intersecant2: 04.261539°N, 006.265474°E and 00.0°N, 002.0°E\n    test 717 intersecant2: 699248  FAILED, KNOWN, expected 700000\n    test 718 intersecant2: 598698  FAILED, KNOWN, expected 700000\n    test 719 intersecant2: 45.000\n\n    test 720 intersecant2: 04.262363°N, 006.2663°E and 01.258709°S, 000.74119°E\n    test 721 intersecant2: 699302  FAILED, KNOWN, expected 700000\n    test 722 intersecant2: 700080  FAILED, KNOWN, expected 700000\n    test 723 intersecant2: 45.021  FAILED, KNOWN, expected 45.000\n\n    test 724 intersecant4: 02.375133°N, 024.894142°E and 25.0°S, 000.0°E  FAILED, KNOWN, expected 00.0°N, 025.0°E and 25.0°S, 000.0°E\n    test 725 intersecant4: 00.0°N, 025.0°E and 25.0°S, 000.0°E\n    test 726 intersecant4: 02.375133°N, 024.894142°E and 25.0°S, 000.0°E  FAILED, KNOWN, expected 00.0°N, 025.0°E and 25.0°S, 000.0°E\n    test 727 intersecant4: 00.0°N, 025.0°E and 25.0°S, 000.0°E\n\n    test 728 intersecant4: 00.725365°N, 026.558638°E and 25.747°S, 000.826763°W  FAILED, KNOWN, expected 00.0°N, 025.0°E and 25.0°S, 000.0°E\n    test 729 intersecant4: 00.725365°N, 026.558638°E and 25.747°S, 000.826763°W  FAILED, KNOWN, expected 00.0°N, 025.0°E and 25.0°S, 000.0°E\n    test 730 intersecant4: 00.021635°S, 025.811619°E and 25.0°S, 000.0°E  FAILED, KNOWN, expected 00.0°N, 025.0°E and 25.0°S, 000.0°E\n    test 731 intersecant4: 00.021635°S, 025.811619°E and 25.0°S, 000.0°E  FAILED, KNOWN, expected 00.0°N, 025.0°E and 25.0°S, 000.0°E\n\n    test 732 intersecant4: 00.807845°N, 026.641126°E and 25.0°S, 000.0°E  FAILED, KNOWN, expected 00.0°N, 025.0°E and 25.0°S, 000.0°E\n    test 733 intersecant4: 01.624807°N, 026.572609°E and 25.0°S, 000.0°E  FAILED, KNOWN, expected 00.0°N, 025.0°E and 25.0°S, 000.0°E\n    test 734 intersecant4: 00.807845°N, 026.641126°E and 25.0°S, 000.0°E  FAILED, KNOWN, expected 00.0°N, 025.0°E and 25.0°S, 000.0°E\n    test 735 intersecant4: 01.624807°N, 026.572609°E and 25.0°S, 000.0°E  FAILED, KNOWN, expected 00.0°N, 025.0°E and 25.0°S, 000.0°E\n\n    test 736 intersecant2.1: LatLon(04°04′02.63″S, 029°43′21.16″W) Napier: 3333000.000\n    test 737 intersecant2.1: LatLon(29°58′27.6″N, 000°01′46.65″W) Napier: 3333000.000\n    test 738 intersecant2.1: LatLon(29°58′27.6″N, 000°01′46.65″W) : 3332999.886  FAILED, KNOWN, expected 3333000.000\n    test 739 intersecant2.1: LatLon(02°29′47.81″S, 028°30′01.84″W) : 3180236.460  FAILED, KNOWN, expected 3333000.000\n\n    test 740 intersecant2.2: LatLon(04°04′02.63″S, 029°43′21.16″E) Napier: 3333000.000\n    test 741 intersecant2.2: LatLon(29°58′27.6″N, 000°01′46.65″E) Napier: 3333000.000\n    test 742 intersecant2.2: LatLon(02°29′47.81″S, 028°30′01.84″E) : 3180236.460  FAILED, KNOWN, expected 3333000.000\n    test 743 intersecant2.2: LatLon(29°58′27.6″N, 000°01′46.65″E) : 3332999.886  FAILED, KNOWN, expected 3333000.000\n\n    test 744 intersecant2.3: LatLon(04°04′02.63″N, 029°43′21.16″W) Napier: 3333000.000\n    test 745 intersecant2.3: LatLon(29°58′27.6″S, 000°01′46.65″W) Napier: 3333000.000\n    test 746 intersecant2.3: LatLon(29°58′27.6″S, 000°01′46.65″W) : 3332999.886  FAILED, KNOWN, expected 3333000.000\n    test 747 intersecant2.3: LatLon(02°29′47.81″N, 028°30′01.84″W) : 3180236.460  FAILED, KNOWN, expected 3333000.000\n\n    test 748 intersecant2.4: LatLon(29°50′37.22″S, 002°56′03.42″W) Napier: 3333000.000\n    test 749 intersecant2.4: LatLon(00°29′30.34″N, 029°58′14.48″E) Napier: 3333000.000\n    test 750 intersecant2.4: LatLon(00°08′01.47″N, 029°38′09.18″E) : 3295394.784  FAILED, KNOWN, expected 3333000.000\n    test 751 intersecant2.4: LatLon(29°31′09.01″S, 002°27′32.93″W) : 3292733.874  FAILED, KNOWN, expected 3333000.000\n\n    test 752 intersecant2.5: LatLon(00°01′46.69″S, 029°58′27.6″E) Napier: 3333000.000\n    test 753 intersecant2.5: LatLon(29°58′27.59″S, 000°02′03.16″E) Napier: 3333000.000\n    test 754 intersecant2.5: LatLon(01°38′23.65″S, 028°34′45.37″E) : 3182660.966  FAILED, KNOWN, expected 3333000.000\n    test 755 intersecant2.5: LatLon(29°58′27.58″S, 000°02′03.17″E) : 3332999.848  FAILED, KNOWN, expected 3333000.000\n\n    test 756 intersecant2.6: LatLon(05°08′54.91″S, 029°34′09.94″E) Napier: 3333000.000\n    test 757 intersecant2.6: LatLon(28°36′28.71″S, 009°21′04.99″E) Napier: 3333000.000\n    test 758 intersecant2.6: LatLon(11°51′13.84″S, 024°23′59.0″E) : 2998636.503  FAILED, KNOWN, expected 3333000.000\n    test 759 intersecant2.6: LatLon(26°53′11.53″S, 011°08′26.36″E) : 3218384.739  FAILED, KNOWN, expected 3333000.000\n\n    test 760 intersections2 (pygeodesy.sphericalTrigonometry): 36.98931°N, 088.151425°W, 38.23838°N, 092.390487°W\n    test 761 intersections2 (pygeodesy.sphericalTrigonometry): 36.989310429, -088.151425243, 38.238379679, -092.390486808\n    test 762 intersections2 (pygeodesy.sphericalTrigonometry): 00.0°N, 035.26439°W, 00.0°N, 035.26439°E\n    test 763 intersections2 (pygeodesy.sphericalTrigonometry): 22.622036°N, 000.0°E, 22.622036°S, 000.0°E\n    test 764 intersections2 (pygeodesy.sphericalTrigonometry): 14.612841°N, 026.110934°W, 14.612841°S, 026.110934°E\n    test 765 intersections2 (pygeodesy.sphericalTrigonometry): 00.000001°S, 045.0°E, 00.000001°N, 045.0°E\n    test 766 intersections2 (pygeodesy.sphericalTrigonometry) 5: 04.999927°S, 005.038296°W, 04.999927°N, 005.038296°E\n    test 767 intersections2 (pygeodesy.sphericalTrigonometry) 5: 1.67511e-15 (% of radius)\n    test 768 intersections2 (pygeodesy.sphericalTrigonometry) 10: 09.997596°S, 010.311703°W, 09.997596°N, 010.311703°E\n    test 769 intersections2 (pygeodesy.sphericalTrigonometry) 10: 6.28168e-16 (% of radius)\n    test 770 intersections2 (pygeodesy.sphericalTrigonometry) 15: 14.98089°S, 016.083107°W, 14.98089°N, 016.083107°E\n    test 771 intersections2 (pygeodesy.sphericalTrigonometry) 15: 6.97964e-16 (% of radius)\n    test 772 intersections2 (pygeodesy.sphericalTrigonometry) 20: 19.914036°S, 022.676142°W, 19.914036°N, 022.676142°E\n    test 773 intersections2 (pygeodesy.sphericalTrigonometry) 20: 1.46573e-15 (% of radius)\n    test 774 intersections2 (pygeodesy.sphericalTrigonometry) 25: 24.713956°S, 030.518915°W, 24.713956°N, 030.518915°E\n    test 775 intersections2 (pygeodesy.sphericalTrigonometry) 25: 6.70046e-16 (% of radius)\n    test 776 intersections2 (pygeodesy.sphericalTrigonometry) 30: 29.205932°S, 040.202966°W, 29.205932°N, 040.202966°E\n    test 777 intersections2 (pygeodesy.sphericalTrigonometry) 30: 8.37557e-16 (% of radius)\n    test 778 intersections2 (pygeodesy.sphericalTrigonometry) 35: 33.037697°S, 052.55362°W, 33.037697°N, 052.55362°E\n    test 779 intersections2 (pygeodesy.sphericalTrigonometry) 35: 8.37557e-16 (% of radius)\n    test 780 intersections2 (pygeodesy.sphericalTrigonometry) 40: 35.512876°S, 068.682565°W, 35.512876°N, 068.682565°E\n    test 781 intersections2 (pygeodesy.sphericalTrigonometry) 40: 4.18779e-16 (% of radius)\n    test 782 intersections2 (pygeodesy.sphericalTrigonometry) 45: 35.26439°S, 090.0°W, 35.26439°N, 090.0°E\n    test 783 intersections2 (pygeodesy.sphericalTrigonometry) 45: 3.72248e-16 (% of radius)\n    test 784 intersections2 (pygeodesy.sphericalTrigonometry) 50: 29.382901°S, 118.837195°W, 29.382901°N, 118.837195°E\n    test 785 intersections2 (pygeodesy.sphericalTrigonometry) 50: 1.67511e-16 (% of radius)\n    test 786 intersections2 (pygeodesy.sphericalTrigonometry) 55: 00.687458°S, 179.605668°E abutting\n    test 787 intersections2 (pygeodesy.sphericalTrigonometry) 55: 0.0144095 (% of radius)\n    test 788 intersections2 (pygeodesy.sphericalTrigonometry) 60: 13.848979°S, 172.919423°E abutting\n    test 789 intersections2 (pygeodesy.sphericalTrigonometry) 60: 0.258708 (% of radius)\n    test 790 intersections2 (pygeodesy.sphericalTrigonometry) 65: 27.163786°S, 167.475402°E abutting\n    test 791 intersections2 (pygeodesy.sphericalTrigonometry) 65: 0.457099 (% of radius)\n    test 792 intersections2 (pygeodesy.sphericalTrigonometry): 41.212541°N, 073.702999°E Random +/- 89\n    test 793 intersections2 (pygeodesy.sphericalTrigonometry): 41.212541°N, 073.702999°E, 42.652043°N, 130.245275°E  d 1.70272e-08 meter\n    test 794 intersections2 (pygeodesy.sphericalTrigonometry): 41.212541°N, 073.702999°E, 49.563295°N, 057.220788°E  d 6.84831e-09 meter\n    test 795 intersections2 (pygeodesy.sphericalTrigonometry): 41.212541°N, 073.702999°E, 29.348825°S, 027.178886°W  d 3.18296e-09 meter\n    test 796 intersections2 (pygeodesy.sphericalTrigonometry): 41.212541°N, 073.702999°E, 00.919397°S, 022.582538°E  d 0 meter\n    test 797 intersections2 (pygeodesy.sphericalTrigonometry): 41.212541°N, 073.702999°E, 37.789721°N, 113.551077°E  d 0 meter\n    test 798 intersections2 (pygeodesy.sphericalTrigonometry): 41.212541°N, 073.702999°E, 45.8391°N, 062.488233°W  d 2.64407e-09 meter\n    test 799 intersections2 (pygeodesy.sphericalTrigonometry): 41.212541°N, 073.702999°E, 42.836396°N, 147.679061°W  d 7.94221e-09 meter\n    test 800 intersections2 (pygeodesy.sphericalTrigonometry): 41.212541°N, 073.702999°E, 76.602903°N, 073.829073°W  d 5.42574e-09 meter\n    test 801 intersections2 (pygeodesy.sphericalTrigonometry): 41.212541°N, 073.702999°E, 46.089655°N, 103.356557°E  d 3.82901e-09 meter\n    test 802 intersections2 (pygeodesy.sphericalTrigonometry): 41.212541°N, 073.702999°E, 04.154973°N, 044.386256°E  d 2.47563e-09 meter\n    test 803 intersections2 (pygeodesy.sphericalTrigonometry): 41.212541°N, 073.702999°E, 02.95074°N, 159.308477°W  d 2.99873e-09 meter\n    test 804 intersections2 (pygeodesy.sphericalTrigonometry): 41.212541°N, 073.702999°E, 33.791406°N, 143.40539°W  d 7.12163e-09 meter\n    test 805 trilaterate5 (pygeodesy.sphericalTrigonometry) .min: 313.671\n    test 806 trilaterate5 (pygeodesy.sphericalTrigonometry) .point: 42.66937229°N, 002.48639477°E\n    test 807 trilaterate5 (pygeodesy.sphericalTrigonometry) .max: 1591.044\n    test 808 trilaterate5 (pygeodesy.sphericalTrigonometry) .point: 42.65153054°N, 002.46822157°E\n    test 809 trilaterate5 (pygeodesy.sphericalTrigonometry) .n: 3\n    test 810 trilaterate5 (pygeodesy.sphericalTrigonometry) .min: 133.815\n    test 811 trilaterate5 (pygeodesy.sphericalTrigonometry) .inter: 42.6767291°N, 002.49916157°E\n    test 812 trilaterate5 (pygeodesy.sphericalTrigonometry) .n: 2\n    test 813 trilaterate5 (pygeodesy.sphericalTrigonometry) .min: 2403.293\n    test 814 trilaterate5 (pygeodesy.sphericalTrigonometry) .max: 2403.293\n    test 815 trilaterate5 (pygeodesy.sphericalTrigonometry) .point: 42.66135649°N, 002.47981645°E\n    test 816 trilaterate5 (pygeodesy.sphericalTrigonometry) .min- is .maxPoint: True\n    test 817 trilaterate5 (pygeodesy.sphericalTrigonometry) .n: 1\n    test 818 trilaterate5 (pygeodesy.sphericalTrigonometry) .inter: area (False), eps (1000) or wrap (False): no intersection, min 1.34e+03\n    test 819 isenclosedBy: True\n    test 820 isenclosedBy*: True\n    test 821 isenclosedBy: points[3] (LatLon(47°00′00.0″N, 003°00′00.0″E)) or wrap (False): not convex\n    test 822 isenclosedBy*: points[3] (LatLon(47°00′00.0″N, 003°00′00.0″E)) or wrap (False): not convex\n    test 823 rhumbBearingTo: 116.722\n    test 824 rhumbDestination: 50.964155°N, 001.853°E\n    test 825 rhumbDestination: True\n    test 826 rhumbDistanceTo: 40307.8\n    test 827 rhumbMidpointo-0.5: 51.0455°N, 001.595727°E\n    test 828 rhumbMidpointo: True\n    test 829 rhumbMidpointo-0.0: 51.127°N, 001.338°E\n    test 830 rhumbMidpointo-0.25: 51.08625°N, 001.46692°E\n    test 831 rhumbMidpointo-0.75: 51.00475°N, 001.72442°E\n    test 832 rhumbMidpointo-1.0: 50.964°N, 001.853°E\n    test 833 rhumbMidpointo-2.0: 50.801°N, 002.366196°E\n    test 834 areaOf: 8.66605875e+09\n    test 835 perimeterOf: 3.78258541e+05\n    test 836 perimeterOf: 2.67063461e+05\n    test 837 areaOf: 6.18e+09\n    test 838 perimeterOf: 3.79639757e+05\n    test 839 perimeterOf: 2.68444678e+05\n    test 840 nearestOn3: 46.0°N, 001.369324°E\n    test 841 nearestOn3: 570101.83\n    test 842 distanceTo: 570101.82\n    test 843 nearestOn3: 46.0°N, 002.0°E\n    test 844 nearestOn3: 134992.48\n    test 845 distanceTo: 134989.80\n    test 846 nearestOn3: 45.5°N, 001.5°E\n    test 847 distance: 78626.79\n    test 848 angle: 315.00\n    test 849 compassAngleTo: 315.00\n    test 850 nearestOn3: 45.331319°N, 001.331319°E\n    test 851 distance: 64074.48\n    test 852 angle: 305.10\n    test 853 distanceTo: 64074.12\n    test 854 compassAngleTo: 305.10\n    test 855 difference: 1000.53\n    test 856 nearestOn3: 00.5°N, 001.5°E\n    test 857 distance: 235880.385\n    test 858 angle: 135.00\n    test 859 nearestOn3: 01.5°N, 002.5°E\n    test 860 distance: 235880.385\n    test 861 angle: 135.00\n    test 862 nearestOn3: 02.5°N, 003.5°E\n    test 863 distance: 235880.385\n    test 864 angle: 135.00\n    test 865 nearestOn3: 03.5°N, 004.5°E\n    test 866 distance: 235880.385\n    test 867 angle: 135.00\n    test 868 nearestOn3: 04.5°N, 005.5°E\n    test 869 distance: 235880.385\n    test 870 angle: 135.00\n    test 871 nearestOn3: 05.5°N, 006.5°E\n    test 872 distance: 235880.385\n    test 873 angle: 135.00\n    test 874 nearestOn3: 06.5°N, 007.5°E\n    test 875 distance: 235880.385\n    test 876 angle: 135.00\n    test 877 nearestOn3: 07.5°N, 008.5°E\n    test 878 distance: 235880.385\n    test 879 angle: 135.00\n    test 880 meanOf: 04.004858°N, 004.990226°E\n    test 881 nearestOn3: 07.5°N, 008.5°E\n    test 882 toCartesian: [6245667.211, 766871.506, 996645.349]\n    test 883 ispolar: True\n    test 884 ispolar*: True\n    test 885 ispolar: False  FAILED, KNOWN, expected True\n    test 886 ispolar*: False  FAILED, KNOWN, expected True\n    test 887 ispolar: True\n    test 888 ispolar*: True\n    test 889 triangle7: (22.142114, 2189776.256122, 84.91384, 6998970.168483, 84.91384, 6998970.168483, 8479698853790.72168)\n    test 890 triangle7: Triangle8Tuple(A=0.38645, a=0.34371, B=1.48203, b=1.09857, C=1.48203, c=1.09857, D=3.74234, E=0.20891)\n    test 891 nearestOn: 01.5°N, 001.5°E, +149.99m\n    test 892 nearestOn3: 01.5°N, 001.5°E, +149.99m\n    test 893 midpointTo: 50.5363°N, 001.2746°E, +150.00m\n    test 894 intermediateTo: 50.5363°N, 001.2746°E, +150.00m\n\n    132 of 894 testSpherical.py tests (14.8%) FAILED, incl. 121 KNOWN plus 11 DeprecationWarnings (pygeodesy 26.3.26 Python 3.11.9 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 1.24.2 scipy 1.10.1 Math 2 macOS 26.3.1 isLazy 0 -W  default) 511.000 ms\nrunning /usr/local/bin/p....n3.11 -W default ~/PyGeodesy/test/testStreprs.py\n\n    testing testStreprs.py 23.03.27 (module pygeodesy.streprs 25.11.24)\n    test 1 anstr: a-b__\n    test 2 fstr: 0.123000\n    test 3 fstr: 0.123\n    test 4 fstr: 0.123, 456.789\n    test 5 fstr: 1.23000e-01\n    test 6 fstr: 1.23e-01\n    test 7 fstr: fmt ('X'): not '[%[<flags>][<width>].*]F|f|E|e|G|g'\n    test 8 fstr(1.000000): 1.0\n    test 9 fstr(1.000000): 1.0\n    test 10 fstr(-1.000000): -1.0\n    test 11 fstr(INF): INF\n    test 12 fstr(INF): INF\n    test 13 fstr(NAN): NAN\n    test 14 fstr(-0.000000): -0.0\n    test 15 fstr(0.000000): 0.0\n    test 16 fstrzs(0.0): 0.0\n    test 17 fstrzs(0.00): 0.0\n    test 18 fstrzs(0.000): 0.0\n    test 19 fstrzs(00.0): 00.0\n    test 20 fstrzs(000.00): 000.0\n    test 21 fstrzs(0.000): 0.0\n    test 22 fstrzs(0.010): 0.01\n    test 23 fstrzs(0.0200): 0.02\n    test 24 fstrzs(0.0e+01): 0.0e+01\n    test 25 fstrzs(0.00e+02): 0.0e+02\n    test 26 fstrzs(0.000e+03): 0.0e+03\n    test 27 fstrzs(00.0e+00): 00.0e+00\n    test 28 fstrzs(000.00e+01): 000.0e+01\n    test 29 fstrzs(0.000e+02): 0.0e+02\n    test 30 fstrzs(0.010e+03): 0.01e+03\n    test 31 fstrzs(0.0200e+00): 0.02e+00\n    test 32 fstrzs(0, ap1z=True): 0.0\n    test 33 fstrzs(0.0, ap1z=True): 0.0\n    test 34 fstrzs(0., ap1z=True): 0.\n    test 35 fstrzs(1e10, ap1z=True): 1.0e10\n    test 36 fstrzs(2E+2, ap1z=True): 2.0E+2\n    test 37 fstrzs(3.E3, ap1z=True): 3.E3\n    test 38 instr: LatLon_(45.0°N, 090.0°E, +1.20)\n    test 39 instr: LatLon_(45, 90, h=1.2)\n    test 40 unstr: f(1.1, 2.2)\n    test 41 unstr: f(x=1.1, y=2.2)\n    test 42 F: 0.001\n    test 43 F: 0.001\n    test 44 F: 0.001\n    test 45 F: 0.001\n    test 46 f: 0.001\n    test 47 f: 0.001\n    test 48 f: 0.001\n    test 49 f: 0.001\n    test 50 E: 1.0E-03\n    test 51 E: 1.0E-03\n    test 52 E: 1.0E-03\n    test 53 E: 1.0E-03\n    test 54 e: 1.0e-03\n    test 55 e: 1.0e-03\n    test 56 e: 1.0e-03\n    test 57 e: 1.0e-03\n    test 58 G: 0.001\n    test 59 G: 0.001\n    test 60 G: 0.001\n    test 61 G: 0.001\n    test 62 g: 0.001\n    test 63 g: 0.001\n    test 64 g: 0.001\n    test 65 g: 0.001\n\n    all 65 testStreprs.py tests passed (pygeodesy 26.3.26 Python 3.11.9 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 1.24.2 scipy 1.10.1 Math 2 macOS 26.3.1 isLazy 0 -W  default) 730.991 us\nrunning /usr/local/bin/p....n3.11 -W default ~/PyGeodesy/test/testTMcoords.py\n\n    testing testTMcoords.py 24.03.22\n    test 1 TMcoords: 258\n\n    all 1 testTMcoords.py tests passed (pygeodesy 26.3.26 Python 3.11.9 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 1.24.2 scipy 1.10.1 Math 2 macOS 26.3.1 isLazy 0 -W  default) 42.915 us\nrunning /usr/local/bin/p....n3.11 -W default ~/PyGeodesy/test/testTrf.py\n./test/testTrf.py:29: DeprecationWarning: method L{convertRefFrame<pygeodesy.ellipsoidalNvector.LatLon.convertRefFrame>} has been DEPRECATED, use method L{toRefFrame}.\n  x = p.convertRefFrame(RefFrames.ETRF2000)\n./test/testTrf.py:136: DeprecationWarning: method L{convertRefFrame<pygeodesy.ellipsoidalNvector.LatLon.convertRefFrame>} has been DEPRECATED, use method L{toRefFrame}.\n  t = LatLon(0, 0, reframe=RefFrames.ITRF2000).convertRefFrame('ITRF2000')\n\n    testing testTrf.py 24.10.14 (module pygeodesy.trf 25.09.11)\n\n    testTrf(pygeodesy.ellipsoidalNvector, 25.05.12)\n    test 1 convertRefFrame: 51.47787826°N, 000.00147125°W, -0.00m  FAILED, KNOWN, expected 51.47787826°N, 000.00147125°W\n    test 2 copy(<class 'type'>): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 3 RefFrame.copy(): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 4 toLatLon: 50.7978°N, 004.3592°E, +148.96m\n    test 5 convertRefFrame: [3980574.395, -102.214, 4966829.941]\n    test 6 Nil: True\n    test 7 copy(<class 'type'>): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 8 RefFrame.copy(): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 9 Nil: True\n    test 10 reframe: True\n    test 11 Roundtrip: True\n    test 12 reframe: True\n    test 13 copy(<class 'type'>): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 14 RefFrame.copy(): (<class 'pygeodesy.trf.RefFrame'>, True)\n\n    test 15 Geodetic: 23°40′12.44582″S, 133°53′07.84795″E, +603.34m\n    test 16 Cartesian: [-4052051.7614, 4212836.1945, -2545106.0147]\n    test 17 Geodetic: 23°40′12.44582″S, 133°53′07.84795″E, +603.34m\n    test 18 Cartesian: [-4052051.7614, 4212836.1945, -2545106.0147]\n    test 19 Roundtrip: 23°40′12.41482″S, 133°53′07.86712″E, +603.26m\n    test 20 GNSStrans: [3370658.18892, 711877.42369, 5349787.1243]\n    test 21 Cartesian: [-734972.563, 4893188.492, 4011982.811]\n\n    test 22 EUREF EX1: [4027894.0444, 307045.6209, 4919474.8613]\n    test 23 transform0: ITRF2005@2015xETRF2020-ITRF91@2015xETRF2020@2007 max 1.1642e-10, epoched 8.0\n    test 24 transform1: ITRF2005@2015xETRF2014-ITRF91@2015xETRF2014@2007 max 0.048666, epoched 8.0\n    test 25 transform2: ITRF2005@2015xETRF2000-ITRF91@2015xETRF2000@2007 max 0.097331, epoched 8.0\n    test 26 transform3: ITRF2005@2000xITRF2000+ITRF2000@1988xITRF91@2000@2007 max 0.146, epoched 19.0\n    test 27 transform4: -ITRF2020@2015xITRF2005+ITRF2020@2015xITRF91@2007 max 0.19466, epoched 8.0\n    test 28 transform5: -ITRF2014@2010xITRF2005+ITRF2014@2010xITRF91@2007 max 0.24333, epoched 3.0\n    test 29 transform6: -ITRF2008@2005xITRF2005+ITRF2008@2000xITRF91@2005@2007 max 0.29199, epoched 7.0\n    test 30 transform7: ITRF2000@1988xITRF91+ITRF2005@2000xITRF2000@1988@2007 max 0.34066, epoched 31.0\n    test 31 transform8: ITRF2014@2010xITRF91-ITRF2014@2020xGDA2020@2010+ITRF2005@2020xGDA2020@2010@2007 max 0.98111, epoched 23.0\n    test 32 transform9: ITRF2008@2000xITRF91-ITRF2008@1994xGDA94@2000+ITRF2005@1994xGDA94@2000@2007 max 0.35972, epoched 19.0\n    test 33 transform10: ITRF2008@2000xITRF91-ITRF2008@1997xNAD83@2000+ITRF2005@1997xNAD83@2000@2007 max 0.40805, epoched 13.0\n    test 34 EUREF EX2: [4027894.0060, 307045.6000, 4919474.9100]\n    test 35 transform0: ITRF91@2015xETRF2020-ITRF2005@2015xETRF2020@2007 max 0.048666, epoched 8.0\n    test 36 transform1: ITRF91@2015xETRF2014-ITRF2005@2015xETRF2014@2007 max 2.3283e-10, epoched 8.0\n    test 37 transform2: ITRF91@2015xETRF2000-ITRF2005@2015xETRF2000@2007 max 0.048666, epoched 8.0\n    test 38 transform3: -ITRF2005@2000xITRF2000-ITRF2000@1988xITRF91@2000@2007 max 0.097331, epoched 19.0\n    test 39 EUREF EX4: [4027894.3559, 307045.2508, 4919474.6447]\n    test 40 transform0: -ITRF2000@2015xETRF2000@2012 max 4.5169e-08, epoched 3.0\n    test 41 transform1: -ITRF2000@1997xITRF97@2015-ITRF97@2015xETRF2000@2012 max 0.35826, epoched 21.0\n    test 42 transform2: -ITRF2000@1997xITRF96@2015-ITRF96@2015xETRF2000@2012 max 0.7048, epoched 21.0\n    test 43 transform3: -ITRF2000@1988xITRF93@2015-ITRF93@2015xETRF2000@2012 max 1.054, epoched 30.0\n    test 44 transform4: -ITRF2000@1988xITRF92@2015-ITRF92@2015xETRF2000@2012 max 1.4023, epoched 30.0\n    test 45 transform5: -ITRF2000@1988xITRF91@2015-ITRF91@2015xETRF2000@2012 max 1.7514, epoched 30.0\n    test 46 transform6: -ITRF2000@1988xITRF90@2015-ITRF90@2015xETRF2000@2012 max 2.1088, epoched 30.0\n    test 47 transform7: -ITRF2000@1988xITRF89@2015-ITRF89@2015xETRF2000@2012 max 2.4877, epoched 30.0\n    test 48 transform8: -ITRF2000@1988xITRF88@2015-ITRF88@2015xETRF2000@2012 max 2.8343, epoched 30.0\n    test 49 EUREF EX5: [4027893.6458, 307045.9470, 4919475.1937]  FAILED, KNOWN, expected [4027894.3662, 307045.2530, 4919474.6263]\n    test 50 transform0: ITRF2014@2015xETRF2000@2012 max 4.5635e-08, epoched 3.0\n    test 51 transform1: ITRF2014@2010xITRF2008@2015+ITRF2008@2015xETRF2000@2012 max 0.36023, epoched 8.0\n    test 52 transform2: ITRF2014@2010xITRF97@2015+ITRF97@2015xETRF2000@2012 max 0.72047, epoched 8.0\n    test 53 transform3: ITRF2014@2010xITRF93@2015+ITRF93@2015xETRF2000@2012 max 1.0807, epoched 8.0\n    test 54 transform4: ITRF2014@2010xITRF92@2015+ITRF92@2015xETRF2000@2012 max 1.4409, epoched 8.0\n    test 55 transform5: ITRF2014@2010xITRF91@2015+ITRF91@2015xETRF2000@2012 max 1.8012, epoched 8.0\n    test 56 transform6: ITRF2014@2010xITRF90@2015+ITRF90@2015xETRF2000@2012 max 2.1614, epoched 8.0\n    test 57 transform7: ITRF2014@2010xITRF89@2015+ITRF89@2015xETRF2000@2012 max 2.5216, epoched 8.0\n    test 58 transform8: ITRF2014@2010xITRF88@2015+ITRF88@2015xETRF2000@2012 max 2.8819, epoched 8.0\n\n    test 59 Case 1A: [4027893.9619, 307045.5481, 4919474.9553]\n    test 60 Case 1B: [4027894.0054, 307045.5938, 4919474.9083]\n    test 61 Case 2A: [4027893.9639, 307045.545, 4919474.9573]\n    test 62 Case 2B: [4027894.0033, 307045.5889, 4919474.9041]\n\n    test 63 TypeError: type(reframe) ('ITRF2000'): not a RefFrame\n    test 64 TRFError: epoch (1899): below 1900.0 limit\n    test 65 TypeError: type(reframe2) ('ITRF2000'): not a RefFrame\n    test 66 TRFError: no conversion: LatLon(00°00′00.0″N, 000°00′00.0″E).reframe MISSING\n    test 67 TypeError: type(reframe2) ('ITRF2000'): not a RefFrame\n    test 68 TypeError: type(reframe) ('ITRF2000'): not a RefFrame\n\n    test 69 ETRF89@1989: [4160476.944000, 653192.600000, 4774604.455000]\n    test 70 ITRF2014@2018.8: [4160476.415, 653193.057, 4774604.903]  FAILED, KNOWN, expected [4160476.485, 653193.021, 4774604.78]\n    test 71 TransformXform: -ITRF2014@2010xITRF89-ITRF89@1989xETRF89@2010@2018.8\n    test 72 Delta (m): [-0.06956, 0.035714, 0.122931]  FAILED, KNOWN, expected [0.01, 0.01, 0.01]\n    test 73 Error (m): 0.145692  FAILED, KNOWN, expected 0.01\n    test 74 Epoch range: 29.800  FAILED, KNOWN, expected 14.0\n    test 75 ETRF89@1989: [4160476.467836, 653193.103190, 4774604.868503]  FAILED, KNOWN, expected [4160476.944000, 653192.600000, 4774604.455000]\n    test 76 TransformXform: ITRF2014@2010xITRF89+ITRF89@1989xETRF89@2010@1989\n\n    test 77 inverse: -ITRF2014@2010xITRF89-ITRF89@1989xETRF89@2010@1989\n    test 78 inverse: ITRF2014@2010xITRF89+ITRF89@1989xETRF89@2010@1989\n    test 79 inverse: name='ITRF2014@2010xITRF89+ITRF89@1989xETRF89@2010@1989', tx=0.0283, ty=0.046, tz=-0.0615, s1=1.0, rx=0.0, ry=0.0, rz=-7.757e-10, s=0.00567, sx=0.0, sy=0.0, sz=-0.00016\n\n    test 80 ETRF2000@2000: [4160476.952000, 653192.582000, 4774604.441000]\n    test 81 ITRF2014@2018.8: [4160476.471, 653193.059, 4774604.804]  FAILED, KNOWN, expected [4160476.485, 653193.021, 4774604.78]\n    test 82 TransformXform: -ITRF2014@2015xETRF2000@2018.8\n    test 83 Delta (m): [-0.014174, 0.037835, 0.023963]  FAILED, KNOWN, expected [0.01, 0.01, 0.01]\n    test 84 Error (m): 0.046975  FAILED, KNOWN, expected 0.01\n    test 85 Epoch range: 18.800  FAILED, KNOWN, expected 14.0\n    test 86 ETRF2000@2000: [4160476.681125, 653192.914350, 4774604.647835]  FAILED, KNOWN, expected [4160476.952000, 653192.582000, 4774604.441000]\n    test 87 TransformXform: ITRF2014@2015xETRF2000@2000\n\n    test 88 inverse: -ITRF2014@2015xETRF2000@2000\n    test 89 inverse: ITRF2014@2015xETRF2000@2000\n    test 90 inverse: name='ITRF2014@2015xETRF2000@2000', tx=0.0537, ty=0.0512, tz=-0.0551, s1=1.0, rx=4.3197e-09, ry=2.6131e-08, rz=-4.2237e-08, s=0.00102, sx=0.000891, sy=0.00539, sz=-0.008712\n\n    test 91 ITRF2008@2005: [4160476.674000, 653192.806000, 4774604.648000]\n    test 92 ITRF2014@2018.8: [4160476.671, 653192.804, 4774604.645]  FAILED, KNOWN, expected [4160476.485, 653193.021, 4774604.78]\n    test 93 TransformXform: -ITRF2014@2010xITRF2008@2018.8\n    test 94 Delta (m): [0.186385, -0.217059, -0.134685]  FAILED, KNOWN, expected [0.01, 0.01, 0.01]\n    test 95 Error (m): 0.316218  FAILED, KNOWN, expected 0.01\n    test 96 Epoch range: 13.800  FAILED, KNOWN, expected 14.0\n    test 97 ITRF2008@2005: [4160476.672278, 653192.805730, 4774604.647403]  FAILED, KNOWN, expected [4160476.674000, 653192.806000, 4774604.648000]\n    test 98 TransformXform: ITRF2014@2010xITRF2008@2005\n\n    test 99 inverse: -ITRF2014@2010xITRF2008@2005\n    test 100 inverse: ITRF2014@2010xITRF2008@2005\n    test 101 inverse: name='ITRF2014@2010xITRF2008@2005', tx=0.0016, ty=0.0019, tz=0.0029, s1=1.0, rx=0.0, ry=0.0, rz=0.0, s=-0.00017, sx=0.0, sy=0.0, sz=0.0\n\n    test 102 toRefFrame1: ITRF2020@2015 2024.31 [0.0031474, 0.00210534, -0.00125667]\n    test 103 toRefFrame2: ITRF2014@2010 2024.32 [0.0031474, 0.00210634, -0.00125867]\n    test 104 transform0: -ITRF2020@2015xITRF2014@2010\n    test 105 transform0X: TRFXform(epoch=2010.0, name='-ITRF2020@2015xITRF2014@2010')\n    test 106 toRefFrame3: ITRF2020@2015 2010 [0.0031474, 0.00067434, 0.00160533]\n    test 107 transform2x: (4160476.488147, 653193.021674, 4774604.781605)\n    test 108 transform2v: (0.000, 0.000, 0.000)  FAILED, KNOWN, expected (0.004, 0.003, 0.004)\n\n    test 109 transform0: name='ITRF2020@2015xETRF2020@2010', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=8.75573508e-09, ry=5.28398431e-08, rz=-7.66635874e-08, s=0.0, sx=0.001806, sy=0.010899, sz=-0.015813\n    test 110 transform2c: (4027893.9585, 307045.5550, 4919474.9620)  FAILED, KNOWN, expected (4027893.9585, 307045.5550, 4919474.9619)\n    test 111     Error2c: (-0.000016463, 0.0000336, 0.000055143) max 5.514e-05, epoched 5.0\n    test 112 transform2v: (-0.00011, 0.00010, 0.00023)  FAILED, KNOWN, expected (0.00011, 0.00011, 0.00024)\n    test 113     Error2v: (-0.000220786, -0.000005544, -0.000006899) max 0.0002208\n    test 114 transform0v: (0.00009, 0.00052, -0.00075)  FAILED, KNOWN, expected (0.00011, 0.00011, 0.00024)\n    test 115     Error0v: (-0.000024, 0.000409, -0.000993) max 0.000993\n\n    test 116 transform0: name='-ITRF2014@2015xETRF2020@2010', tx=-0.0014, ty=-0.0004, tz=0.0004, s1=1.0, rx=-8.75573508e-09, ry=-5.28398431e-08, rz=7.66635874e-08, s=-0.00042, sx=-0.001806, sy=-0.010899, sz=0.015813\n    test 117 transform2c: (4027893.6719, 307045.9063, 4919475.1704)  FAILED, KNOWN, expected (4027893.6719, 307045.9064, 4919475.1704)\n    test 118     Error2c: (0.000024786, -0.000062539, -0.000021305) max 6.254e-05, epoched 5.0\n    test 119 transform2v: (-0.01339, 0.01677, 0.01045)  FAILED, KNOWN, expected (-0.01361, 0.01676, 0.01044)\n    test 120     Error2v: (0.000220784, 0.000005543, 0.000006898) max 0.0002208\n    test 121 transform0v: (-0.00009, -0.00052, 0.00075)  FAILED, KNOWN, expected (-0.01361, 0.01676, 0.01044)\n    test 122     Error0v: (0.013524, -0.017279, -0.009687) max 0.01728\n\n    test 123 transform0: name='ITRF2014@2015xETRF2014@2010', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=8.65392421e-09, ry=5.40615736e-08, rz=-7.83943722e-08, s=0.0, sx=0.001785, sy=0.011151, sz=-0.01617\n    test 124 transform2c: (4027893.9619, 307045.5481, 4919474.9553)  FAILED, KNOWN, expected (4027893.9620, 307045.5480, 4919474.9553)\n    test 125     Error2c: (-0.00007476, 0.000063039, 0.000002882) max 7.476e-05, epoched 5.0\n    test 126 transform2v: (0.00020, -0.00030, 0.00020)\n    test 127     Error2v: (0.000000724, -0.000003666, -0.000002721) max 3.666e-06\n    test 128 transform0v: (0.00009, 0.00053, -0.00077)  FAILED, KNOWN, expected (0.00020, -0.00030, 0.00020)\n    test 129     Error0v: (-0.000115, 0.000831, -0.00097) max 0.00097\n\n    test 130 transform0: name='-ITRF2000@2015xETRF2014@2010', tx=0.0007, ty=0.0012, tz=-0.0261, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 131 transform2c: (4027893.6812, 307045.9082, 4919475.1547)\n    test 132     Error2c: (0.000013934, -0.000012081, 0.000026423) max 2.642e-05, epoched 5.0\n    test 133 transform2v: (-0.01351, 0.01686, 0.00854)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 134     Error2v: (-0.000440726, -0.000036335, -0.00053728) max 0.0005373\n    test 135 transform0v: (-0.00008, -0.00053, 0.00077)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 136     Error0v: (0.012985, -0.017431, -0.00831) max 0.01743\n\n    test 137 transform0: name='ITRF2000@2015xETRF2000@2010', tx=0.054, ty=0.051, tz=-0.048, s1=1.0, rx=8.24668072e-09, ry=4.98873278e-08, rz=-8.06342114e-08, s=0.0, sx=0.001701, sy=0.01029, sz=-0.016632\n    test 138 transform2c: (4027894.0054, 307045.5938, 4919474.9083)  FAILED, KNOWN, expected (4027894.0053, 307045.5939, 4919474.9083)\n    test 139     Error2c: (0.000077874, -0.000055372, -0.000008743) max 7.787e-05, epoched 5.0\n    test 140 transform2v: (-0.00020, -0.00050, -0.00037)  FAILED, KNOWN, expected (-0.00020, -0.00050, -0.00036)\n    test 141     Error2v: (-0.000004389, 0.000002124, -0.000008036) max 8.036e-06\n    test 142 transform0v: (0.00008, 0.00049, -0.00079)  FAILED, KNOWN, expected (-0.00020, -0.00050, -0.00036)\n    test 143     Error0v: (0.000281, 0.00099, -0.000432) max 0.00099\n\n    test 144 transform0/: name='-ITRF2000@2015xETRF2014@2010', tx=0.0007, ty=0.0012, tz=-0.0261, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 145 transform2c: (4027893.6812, 307045.9082, 4919475.1547)\n    test 146     Error2c: (0.000013934, -0.000012081, 0.000026423) max 2.642e-05, epoched 5.0\n    test 147 transform2v: (-0.01351, 0.01686, 0.00854)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 148     Error2v: (-0.000440726, -0.000036335, -0.00053728) max 0.0005373\n\n    test 149 transform1/: name='-ITRF2000@1997xITRF97@2015-ITRF97@2015xETRF2014@2010', tx=0.00673, ty=-0.00033, tz=-0.05913, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=8.09154034e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01669\n    test 150 transform2c: (4027893.6865, 307045.9168, 4919475.1217)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 151     Error2c: (0.005269863, 0.008612365, -0.033003577) max 0.033, epoched 23.0\n    test 152 transform2v: (-0.01357, 0.01710, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 153     Error2v: (-0.00050027, 0.000204776, -0.00179728) max 0.001797\n\n    test 154 transform2/: name='-ITRF2000@1997xITRF96@2015-ITRF96@2015xETRF2014@2010', tx=0.00673, ty=-0.00033, tz=-0.05913, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 155 transform2c: (4027893.6872, 307045.9067, 4919475.1217)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 156     Error2c: (0.006043935, -0.001542081, -0.033003577) max 0.033, epoched 23.0\n    test 157 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 158     Error2v: (-0.000440726, -0.000576335, -0.00179728) max 0.001797\n\n    test 159 transform3/: name='-ITRF2000@1988xITRF93@2015-ITRF93@2015xETRF2014@2010', tx=0.0007, ty=0.0012, tz=-0.0261, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 160 transform2c: (4027893.6812, 307045.9082, 4919475.1547)\n    test 161     Error2c: (0.000013934, -0.000012081, 0.000026423) max 2.642e-05, epoched 32.0\n    test 162 transform2v: (-0.01351, 0.01686, 0.00854)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 163     Error2v: (-0.000440726, -0.000036335, -0.00053728) max 0.0005373\n\n    test 164 transform4/: name='-ITRF2000@1988xITRF92@2015-ITRF92@2015xETRF2014@2010', tx=0.01393, ty=0.00147, tz=-0.06633, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 165 transform2c: (4027893.6944, 307045.9085, 4919475.1145)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 166     Error2c: (0.013243935, 0.000257919, -0.040203577) max 0.0402, epoched 32.0\n./test/testTrf.py:29: DeprecationWarning: method L{convertRefFrame<pygeodesy.ellipsoidalVincenty.LatLon.convertRefFrame>} has been DEPRECATED, use method L{toRefFrame}.\n  x = p.convertRefFrame(RefFrames.ETRF2000)\n./test/testTrf.py:136: DeprecationWarning: method L{convertRefFrame<pygeodesy.ellipsoidalVincenty.LatLon.convertRefFrame>} has been DEPRECATED, use method L{toRefFrame}.\n  t = LatLon(0, 0, reframe=RefFrames.ITRF2000).convertRefFrame('ITRF2000')\n    test 167 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 168     Error2v: (-0.000440726, -0.000576335, -0.00179728) max 0.001797\n\n    test 169 transform5/: name='-ITRF2000@1988xITRF91@2015-ITRF91@2015xETRF2014@2010', tx=0.0007, ty=0.0012, tz=-0.0261, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 170 transform2c: (4027893.6812, 307045.9082, 4919475.1547)\n    test 171     Error2c: (0.000013934, -0.000012081, 0.000026423) max 2.642e-05, epoched 32.0\n    test 172 transform2v: (-0.01351, 0.01686, 0.00854)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 173     Error2v: (-0.000440726, -0.000036335, -0.00053728) max 0.0005373\n\n    test 174 transform6/: name='-ITRF2000@1988xITRF90@2015-ITRF90@2015xETRF2014@2010', tx=0.02293, ty=0.01047, tz=-0.08613, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 175 transform2c: (4027893.7034, 307045.9175, 4919475.0947)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 176     Error2c: (0.022243935, 0.009257919, -0.060003577) max 0.06, epoched 32.0\n    test 177 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 178     Error2v: (-0.000440726, -0.000576335, -0.00179728) max 0.001797\n\n    test 179 transform7/: name='-ITRF2000@1988xITRF89@2015-ITRF89@2015xETRF2014@2010', tx=0.02743, ty=0.03207, tz=-0.12033, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 180 transform2c: (4027893.7079, 307045.9391, 4919475.0605)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 181     Error2c: (0.026743934, 0.030857919, -0.094203577) max 0.0942, epoched 32.0\n    test 182 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 183     Error2v: (-0.000440726, -0.000576335, -0.00179728) max 0.001797\n\n    test 184 transform8/: name='-ITRF2000@1988xITRF88@2015-ITRF88@2015xETRF2014@2010', tx=0.02293, ty=-0.00033, tz=-0.14193, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 185 transform2c: (4027893.7034, 307045.9067, 4919475.0389)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 186     Error2c: (0.022243935, -0.001542081, -0.115803577) max 0.1158, epoched 32.0\n    test 187 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 188     Error2v: (-0.000440725, -0.000576335, -0.00179728) max 0.001797\n\n    test 189 transform0: name='ITRF2020@2015xETRF2020@2020', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=1.29251327e-08, ry=7.80016732e-08, rz=-1.13170058e-07, s=0.0, sx=0.002666, sy=0.016089, sz=-0.023343\n    test 190 transform2c: (4027893.9574, 307045.5561, 4919474.9643)\n    test 191     Error2c: (-0.000024276, -0.000021815, -0.000013824) max 2.428e-05, epoched 5.0\n    test 192 transform2v: (0.01350, -0.01676, -0.01001)\n\n    test 193 transform0: name='-ITRF2014@2015xETRF2020@2020', tx=-0.0014, ty=-0.0014, tz=0.0024, s1=1.0, rx=-1.29251327e-08, ry=-7.80016732e-08, rz=1.13170058e-07, s=-0.00042, sx=-0.002666, sy=-0.016089, sz=0.023343\n    test 194 transform2c: (4027893.5358, 307046.0740, 4919475.2748)\n    test 195     Error2c: (0.000032643, -0.000007101, 0.000047684) max 4.768e-05, epoched 5.0\n    test 196 transform2v: (-0.01350, 0.01666, 0.01021)\n\n    test 197 transform0: name='ITRF2014@2015xETRF2014@2020', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=1.27748405e-08, ry=7.980518e-08, rz=-1.15725026e-07, s=0.0, sx=0.002635, sy=0.016461, sz=-0.02387\n    test 198 transform2c: (4027893.9639, 307045.5450, 4919474.9573)\n    test 199     Error2c: (0.000032525, 0.000026405, -0.000024305) max 3.253e-05, epoched 5.0\n    test 200 transform2v: (0.01381, -0.01706, -0.01024)\n\n    test 201 transform0: name='-ITRF2000@2015xETRF2014@2020', tx=0.0017, ty=0.0022, tz=-0.0451, s1=1.0, rx=-1.27748405e-08, ry=-7.980518e-08, rz=1.15725026e-07, s=0.00322, sx=-0.002635, sy=-0.016461, sz=0.02387\n    test 202 transform2c: (4027893.5504, 307046.0772, 4919475.2456)  FAILED, KNOWN, expected (4027893.5505, 307046.0772, 4919475.2456)\n    test 203     Error2c: (-0.000062619, -0.000037673, -0.000034946) max 6.262e-05, epoched 5.0\n    test 204 transform2v: (-0.01371, 0.01716, 0.00834)\n\n    test 205 transform0: name='ITRF2000@2015xETRF2000@2020', tx=0.054, ty=0.051, tz=-0.048, s1=1.0, rx=1.21736715e-08, ry=7.36431982e-08, rz=-1.19031455e-07, s=0.0, sx=0.002511, sy=0.01519, sz=-0.024552\n    test 206 transform2c: (4027894.0033, 307045.5889, 4919474.9047)\n    test 207     Error2c: (0.000034031, -0.000034106, 0.000010915) max 3.411e-05, epoched 5.0\n    test 208 transform2v: (0.01287, -0.01740, -0.00945)\n\n    test 209 transform0*: name='-ITRF2014@2010xITRF89-ITRF89@1989xETRF89@2010@2018.8', tx=-0.03128, ty=-0.0311, tz=0.15984, s1=0.999999991, rx=-1.58921925e-08, ry=-8.23504519e-08, rz=1.00463091e-07, s=-0.009246, sx=-0.003278, sy=-0.016986, sz=0.020722\n    test 210 transform2c: (4160476.4154, 653193.0567, 4774604.9029)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 211     Error2c: (-0.069560351, 0.035713888, 0.122930501) max 0.1229, epoched 29.8\n    test 212 transform2v: (-0.01148, 0.01996, 0.01845)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 213     Error2v: (-0.015479395, 0.016963959, 0.014448874) max 0.01696\n\n    test 214 transform0*: name='-ITRF2014@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 215 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 216     Error2c: (-0.014174475, 0.037834952, 0.023962618) max 0.03783, epoched 3.8\n    test 217 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 218     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 219 transform1*: name='-ITRF2014@2010xITRF2008@2015-ITRF2008@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 220 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 221     Error2c: (-0.014174475, 0.037834952, 0.023962618) max 0.03783, epoched 8.8\n    test 222 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 223     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 224 transform2*: name='-ITRF2014@2010xITRF97@2015-ITRF97@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 225 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 226     Error2c: (-0.014174475, 0.037834952, 0.023962618) max 0.03783, epoched 8.8\n    test 227 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 228     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 229 transform3*: name='-ITRF2014@2010xITRF93@2015-ITRF93@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 230 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 231     Error2c: (-0.014174475, 0.037834952, 0.023962618) max 0.03783, epoched 8.8\n    test 232 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 233     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 234 transform4*: name='-ITRF2014@2010xITRF92@2015-ITRF92@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 235 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 236     Error2c: (-0.014174475, 0.037834952, 0.023962618) max 0.03783, epoched 8.8\n    test 237 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 238     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 239 transform5*: name='-ITRF2014@2010xITRF91@2015-ITRF91@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 240 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 241     Error2c: (-0.014174475, 0.037834952, 0.023962618) max 0.03783, epoched 8.8\n    test 242 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 243     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 244 transform6*: name='-ITRF2014@2010xITRF90@2015-ITRF90@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 245 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 246     Error2c: (-0.014174475, 0.037834952, 0.023962618) max 0.03783, epoched 8.8\n    test 247 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 248     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 249 transform7*: name='-ITRF2014@2010xITRF89@2015-ITRF89@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 250 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 251     Error2c: (-0.014174475, 0.037834952, 0.023962618) max 0.03783, epoched 8.8\n    test 252 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 253     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 254 transform8*: name='-ITRF2014@2010xITRF88@2015-ITRF88@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 255 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 256     Error2c: (-0.014174475, 0.037834952, 0.023962618) max 0.03783, epoched 8.8\n    test 257 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 258     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 259 toTransform: name='-ITRF2014@2010xITRF88@2015-ITRF88@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=1.0, rx=-1.1702e-08, ry=-7.0792e-08, rz=1.1442e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.023602\n    test 260 toTransform: name='-ITRF2014@2010xITRF88@2015-ITRF88@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=1.0, rx=-1.1702e-08, ry=-7.0792e-08, rz=1.1442e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.023602\n\n    test 261 Issue80: 48.77691577°N, 008.92257142°E, +476.05m\n    test 262 Issue80: 48.77692147°N, 008.92257868°E, +476.09m\n    test 263 Issue80: 48°46′36.915134″N, 008°55′21.285094″E, +476.10m  FAILED, KNOWN, expected 48°46′36.915134″N, 008°55′21.285094″E, +476.10\n    test 264 Issue80: 0.804  FAILED, KNOWN, expected 0.01\n    test 265 Issue80: [4160476.944064, 653192.600457, 4774604.455385]\n    test 266 Issue80: [4160476.415504, 653193.057171, 4774604.903316]\n    test 267 Issue80: [4160476.467901, 653193.103647, 4774604.868888]\n    test 268 Issue80: 48°46′36.915133″N, 008°55′21.285094″E, +476.10m\n\n    test 269 Issue80: 48.77692032°N, 008.92257804°E, +476.05m\n    test 270 Issue80: 48.77691971°N, 008.92257856°E, +476.06m\n    test 271 Issue80: 48°46′36.9315″N, 008°55′21.3089″E, +476.10m  FAILED, KNOWN, expected 48°46′36.9131″N, 008°55′21.28095″E, +476.05m\n    test 272 Issue80: 0.804  FAILED, KNOWN, expected 0.01\n    test 273 Issue80: [4160476.492633, 653193.021888, 4774604.78885]\n    test 274 Issue80: [4160476.54503, 653193.068365, 4774604.754422]\n    test 275 Issue80: [4160476.016469, 653193.525079, 4774605.202353]\n    test 276 Issue80: 48°46′36.9315″N, 008°55′21.3089″E, +476.10m\n\n    test 277 ITRF96@1997xNAD83: TRFXform(epoch=1997.0, name='ITRF96@1997xNAD83')\n    test 278 ITRF96@1997xNAD83: name='ITRF96@1997xNAD83', tx=0.991, ty=-0.19072, tz=-0.5129, s1=1.0, rx=1.2503e-07, ry=4.6785e-08, rz=5.6529e-08, s=0.0, sx=0.02579, sy=0.00965, sz=0.01166\n    test 279 ITRF96@1997xNAD83: name='ITRF96@1997xNAD83@2007', tx=0.991, ty=-0.19072, tz=-0.5129, s1=1.0, rx=1.2761e-07, ry=1.0797e-08, rz=5.4997e-08, s=0.0, sx=0.026322, sy=0.002227, sz=0.011344\n    test 280 ITRF96@1997xNAD83: rx=-2.5792e-10, ry=3.5988e-09, rz=1.532e-10\n\n    testTrf(pygeodesy.ellipsoidalVincenty, 25.05.26)\n    test 281 convertRefFrame: 51.47787826°N, 000.00147125°W, -0.00m  FAILED, KNOWN, expected 51.47787826°N, 000.00147125°W\n    test 282 copy(<class 'type'>): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 283 RefFrame.copy(): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 284 toLatLon: 50.7978°N, 004.3592°E, +148.96m\n    test 285 convertRefFrame: [3980574.395, -102.214, 4966829.941]\n    test 286 Nil: True\n    test 287 copy(<class 'type'>): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 288 RefFrame.copy(): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 289 Nil: True\n    test 290 reframe: True\n    test 291 Roundtrip: True\n    test 292 reframe: True\n    test 293 copy(<class 'type'>): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 294 RefFrame.copy(): (<class 'pygeodesy.trf.RefFrame'>, True)\n\n    test 295 Geodetic: 23°40′12.44582″S, 133°53′07.84795″E, +603.34m\n    test 296 Cartesian: [-4052051.7614, 4212836.1945, -2545106.0147]\n    test 297 Geodetic: 23°40′12.44582″S, 133°53′07.84795″E, +603.34m\n    test 298 Cartesian: [-4052051.7614, 4212836.1945, -2545106.0147]\n    test 299 Roundtrip: 23°40′12.41482″S, 133°53′07.86712″E, +603.26m\n    test 300 GNSStrans: [3370658.18892, 711877.42369, 5349787.1243]\n    test 301 Cartesian: [-734972.563, 4893188.492, 4011982.811]\n\n    test 302 EUREF EX1: [4027894.0444, 307045.6209, 4919474.8613]\n    test 303 transform0: ITRF2005@2015xETRF2020-ITRF91@2015xETRF2020@2007 max 1.1642e-10, epoched 8.0\n    test 304 transform1: ITRF2005@2015xETRF2014-ITRF91@2015xETRF2014@2007 max 0.048666, epoched 8.0\n    test 305 transform2: ITRF2005@2015xETRF2000-ITRF91@2015xETRF2000@2007 max 0.097331, epoched 8.0\n    test 306 transform3: ITRF2005@2000xITRF2000+ITRF2000@1988xITRF91@2000@2007 max 0.146, epoched 19.0\n    test 307 transform4: -ITRF2020@2015xITRF2005+ITRF2020@2015xITRF91@2007 max 0.19466, epoched 8.0\n    test 308 transform5: -ITRF2014@2010xITRF2005+ITRF2014@2010xITRF91@2007 max 0.24333, epoched 3.0\n    test 309 transform6: -ITRF2008@2005xITRF2005+ITRF2008@2000xITRF91@2005@2007 max 0.29199, epoched 7.0\n    test 310 transform7: ITRF2000@1988xITRF91+ITRF2005@2000xITRF2000@1988@2007 max 0.34066, epoched 31.0\n    test 311 transform8: ITRF2014@2010xITRF91-ITRF2014@2020xGDA2020@2010+ITRF2005@2020xGDA2020@2010@2007 max 0.98111, epoched 23.0\n    test 312 transform9: ITRF2008@2000xITRF91-ITRF2008@1994xGDA94@2000+ITRF2005@1994xGDA94@2000@2007 max 0.35972, epoched 19.0\n    test 313 transform10: ITRF2008@2000xITRF91-ITRF2008@1997xNAD83@2000+ITRF2005@1997xNAD83@2000@2007 max 0.40805, epoched 13.0\n    test 314 EUREF EX2: [4027894.0060, 307045.6000, 4919474.9100]\n    test 315 transform0: ITRF91@2015xETRF2020-ITRF2005@2015xETRF2020@2007 max 0.048666, epoched 8.0\n    test 316 transform1: ITRF91@2015xETRF2014-ITRF2005@2015xETRF2014@2007 max 2.3283e-10, epoched 8.0\n    test 317 transform2: ITRF91@2015xETRF2000-ITRF2005@2015xETRF2000@2007 max 0.048666, epoched 8.0\n    test 318 transform3: -ITRF2005@2000xITRF2000-ITRF2000@1988xITRF91@2000@2007 max 0.097331, epoched 19.0\n    test 319 EUREF EX4: [4027894.3559, 307045.2508, 4919474.6447]\n    test 320 transform0: -ITRF2000@2015xETRF2000@2012 max 4.5169e-08, epoched 3.0\n    test 321 transform1: -ITRF2000@1997xITRF97@2015-ITRF97@2015xETRF2000@2012 max 0.35826, epoched 21.0\n    test 322 transform2: -ITRF2000@1997xITRF96@2015-ITRF96@2015xETRF2000@2012 max 0.7048, epoched 21.0\n    test 323 transform3: -ITRF2000@1988xITRF93@2015-ITRF93@2015xETRF2000@2012 max 1.054, epoched 30.0\n    test 324 transform4: -ITRF2000@1988xITRF92@2015-ITRF92@2015xETRF2000@2012 max 1.4023, epoched 30.0\n    test 325 transform5: -ITRF2000@1988xITRF91@2015-ITRF91@2015xETRF2000@2012 max 1.7514, epoched 30.0\n    test 326 transform6: -ITRF2000@1988xITRF90@2015-ITRF90@2015xETRF2000@2012 max 2.1088, epoched 30.0\n    test 327 transform7: -ITRF2000@1988xITRF89@2015-ITRF89@2015xETRF2000@2012 max 2.4877, epoched 30.0\n    test 328 transform8: -ITRF2000@1988xITRF88@2015-ITRF88@2015xETRF2000@2012 max 2.8343, epoched 30.0\n    test 329 EUREF EX5: [4027893.6458, 307045.9470, 4919475.1937]  FAILED, KNOWN, expected [4027894.3662, 307045.2530, 4919474.6263]\n    test 330 transform0: ITRF2014@2015xETRF2000@2012 max 4.5635e-08, epoched 3.0\n    test 331 transform1: ITRF2014@2010xITRF2008@2015+ITRF2008@2015xETRF2000@2012 max 0.36023, epoched 8.0\n    test 332 transform2: ITRF2014@2010xITRF97@2015+ITRF97@2015xETRF2000@2012 max 0.72047, epoched 8.0\n    test 333 transform3: ITRF2014@2010xITRF93@2015+ITRF93@2015xETRF2000@2012 max 1.0807, epoched 8.0\n    test 334 transform4: ITRF2014@2010xITRF92@2015+ITRF92@2015xETRF2000@2012 max 1.4409, epoched 8.0\n    test 335 transform5: ITRF2014@2010xITRF91@2015+ITRF91@2015xETRF2000@2012 max 1.8012, epoched 8.0\n    test 336 transform6: ITRF2014@2010xITRF90@2015+ITRF90@2015xETRF2000@2012 max 2.1614, epoched 8.0\n    test 337 transform7: ITRF2014@2010xITRF89@2015+ITRF89@2015xETRF2000@2012 max 2.5216, epoched 8.0\n    test 338 transform8: ITRF2014@2010xITRF88@2015+ITRF88@2015xETRF2000@2012 max 2.8819, epoched 8.0\n\n    test 339 Case 1A: [4027893.9619, 307045.5481, 4919474.9553]\n    test 340 Case 1B: [4027894.0054, 307045.5938, 4919474.9083]\n    test 341 Case 2A: [4027893.9639, 307045.545, 4919474.9573]\n    test 342 Case 2B: [4027894.0033, 307045.5889, 4919474.9041]\n\n    test 343 TypeError: type(reframe) ('ITRF2000'): not a RefFrame\n    test 344 TRFError: epoch (1899): below 1900.0 limit\n    test 345 TypeError: type(reframe2) ('ITRF2000'): not a RefFrame\n    test 346 TRFError: no conversion: LatLon(00°00′00.0″N, 000°00′00.0″E).reframe MISSING\n    test 347 TypeError: type(reframe2) ('ITRF2000'): not a RefFrame\n    test 348 TypeError: type(reframe) ('ITRF2000'): not a RefFrame\n\n    test 349 ETRF89@1989: [4160476.944000, 653192.600000, 4774604.455000]\n    test 350 ITRF2014@2018.8: [4160476.415, 653193.057, 4774604.903]  FAILED, KNOWN, expected [4160476.485, 653193.021, 4774604.78]\n    test 351 TransformXform: -ITRF2014@2010xITRF89-ITRF89@1989xETRF89@2010@2018.8\n    test 352 Delta (m): [-0.06956, 0.035714, 0.122931]  FAILED, KNOWN, expected [0.01, 0.01, 0.01]\n    test 353 Error (m): 0.145692  FAILED, KNOWN, expected 0.01\n    test 354 Epoch range: 29.800  FAILED, KNOWN, expected 14.0\n    test 355 ETRF89@1989: [4160476.467836, 653193.103190, 4774604.868503]  FAILED, KNOWN, expected [4160476.944000, 653192.600000, 4774604.455000]\n    test 356 TransformXform: ITRF2014@2010xITRF89+ITRF89@1989xETRF89@2010@1989\n\n    test 357 inverse: -ITRF2014@2010xITRF89-ITRF89@1989xETRF89@2010@1989\n    test 358 inverse: ITRF2014@2010xITRF89+ITRF89@1989xETRF89@2010@1989\n    test 359 inverse: name='ITRF2014@2010xITRF89+ITRF89@1989xETRF89@2010@1989', tx=0.0283, ty=0.046, tz=-0.0615, s1=1.0, rx=0.0, ry=0.0, rz=-7.757e-10, s=0.00567, sx=0.0, sy=0.0, sz=-0.00016\n\n    test 360 ETRF2000@2000: [4160476.952000, 653192.582000, 4774604.441000]\n    test 361 ITRF2014@2018.8: [4160476.471, 653193.059, 4774604.804]  FAILED, KNOWN, expected [4160476.485, 653193.021, 4774604.78]\n    test 362 TransformXform: -ITRF2014@2015xETRF2000@2018.8\n    test 363 Delta (m): [-0.014174, 0.037835, 0.023963]  FAILED, KNOWN, expected [0.01, 0.01, 0.01]\n    test 364 Error (m): 0.046975  FAILED, KNOWN, expected 0.01\n    test 365 Epoch range: 18.800  FAILED, KNOWN, expected 14.0\n    test 366 ETRF2000@2000: [4160476.681125, 653192.914350, 4774604.647835]  FAILED, KNOWN, expected [4160476.952000, 653192.582000, 4774604.441000]\n    test 367 TransformXform: ITRF2014@2015xETRF2000@2000\n\n    test 368 inverse: -ITRF2014@2015xETRF2000@2000\n    test 369 inverse: ITRF2014@2015xETRF2000@2000\n    test 370 inverse: name='ITRF2014@2015xETRF2000@2000', tx=0.0537, ty=0.0512, tz=-0.0551, s1=1.0, rx=4.3197e-09, ry=2.6131e-08, rz=-4.2237e-08, s=0.00102, sx=0.000891, sy=0.00539, sz=-0.008712\n\n    test 371 ITRF2008@2005: [4160476.674000, 653192.806000, 4774604.648000]\n    test 372 ITRF2014@2018.8: [4160476.671, 653192.804, 4774604.645]  FAILED, KNOWN, expected [4160476.485, 653193.021, 4774604.78]\n    test 373 TransformXform: -ITRF2014@2010xITRF2008@2018.8\n    test 374 Delta (m): [0.186385, -0.217059, -0.134685]  FAILED, KNOWN, expected [0.01, 0.01, 0.01]\n    test 375 Error (m): 0.316218  FAILED, KNOWN, expected 0.01\n    test 376 Epoch range: 13.800  FAILED, KNOWN, expected 14.0\n    test 377 ITRF2008@2005: [4160476.672278, 653192.805730, 4774604.647403]  FAILED, KNOWN, expected [4160476.674000, 653192.806000, 4774604.648000]\n    test 378 TransformXform: ITRF2014@2010xITRF2008@2005\n\n    test 379 inverse: -ITRF2014@2010xITRF2008@2005\n    test 380 inverse: ITRF2014@2010xITRF2008@2005\n    test 381 inverse: name='ITRF2014@2010xITRF2008@2005', tx=0.0016, ty=0.0019, tz=0.0029, s1=1.0, rx=0.0, ry=0.0, rz=0.0, s=-0.00017, sx=0.0, sy=0.0, sz=0.0\n\n    test 382 toRefFrame1: ITRF2020@2015 2024.31 [0.0031474, 0.00210534, -0.00125667]\n    test 383 toRefFrame2: ITRF2014@2010 2024.32 [0.0031474, 0.00210634, -0.00125867]\n    test 384 transform0: -ITRF2020@2015xITRF2014@2010\n    test 385 transform0X: TRFXform(epoch=2010.0, name='-ITRF2020@2015xITRF2014@2010')\n    test 386 toRefFrame3: ITRF2020@2015 2010 [0.0031474, 0.00067434, 0.00160533]\n    test 387 transform2x: (4160476.488147, 653193.021674, 4774604.781605)\n    test 388 transform2v: (0.000, 0.000, 0.000)  FAILED, KNOWN, expected (0.004, 0.003, 0.004)\n\n    test 389 transform0: name='ITRF2020@2015xETRF2020@2010', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=8.75573508e-09, ry=5.28398431e-08, rz=-7.66635874e-08, s=0.0, sx=0.001806, sy=0.010899, sz=-0.015813\n    test 390 transform2c: (4027893.9585, 307045.5550, 4919474.9620)  FAILED, KNOWN, expected (4027893.9585, 307045.5550, 4919474.9619)\n    test 391     Error2c: (-0.000016463, 0.0000336, 0.000055143) max 5.514e-05, epoched 5.0\n    test 392 transform2v: (-0.00011, 0.00010, 0.00023)  FAILED, KNOWN, expected (0.00011, 0.00011, 0.00024)\n    test 393     Error2v: (-0.000220786, -0.000005544, -0.000006899) max 0.0002208\n    test 394 transform0v: (0.00009, 0.00052, -0.00075)  FAILED, KNOWN, expected (0.00011, 0.00011, 0.00024)\n    test 395     Error0v: (-0.000024, 0.000409, -0.000993) max 0.000993\n\n    test 396 transform0: name='-ITRF2014@2015xETRF2020@2010', tx=-0.0014, ty=-0.0004, tz=0.0004, s1=1.0, rx=-8.75573508e-09, ry=-5.28398431e-08, rz=7.66635874e-08, s=-0.00042, sx=-0.001806, sy=-0.010899, sz=0.015813\n    test 397 transform2c: (4027893.6719, 307045.9063, 4919475.1704)  FAILED, KNOWN, expected (4027893.6719, 307045.9064, 4919475.1704)\n    test 398     Error2c: (0.000024786, -0.000062539, -0.000021305) max 6.254e-05, epoched 5.0\n    test 399 transform2v: (-0.01339, 0.01677, 0.01045)  FAILED, KNOWN, expected (-0.01361, 0.01676, 0.01044)\n    test 400     Error2v: (0.000220784, 0.000005543, 0.000006898) max 0.0002208\n    test 401 transform0v: (-0.00009, -0.00052, 0.00075)  FAILED, KNOWN, expected (-0.01361, 0.01676, 0.01044)\n    test 402     Error0v: (0.013524, -0.017279, -0.009687) max 0.01728\n\n    test 403 transform0: name='ITRF2014@2015xETRF2014@2010', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=8.65392421e-09, ry=5.40615736e-08, rz=-7.83943722e-08, s=0.0, sx=0.001785, sy=0.011151, sz=-0.01617\n    test 404 transform2c: (4027893.9619, 307045.5481, 4919474.9553)  FAILED, KNOWN, expected (4027893.9620, 307045.5480, 4919474.9553)\n    test 405     Error2c: (-0.00007476, 0.000063039, 0.000002882) max 7.476e-05, epoched 5.0\n    test 406 transform2v: (0.00020, -0.00030, 0.00020)\n    test 407     Error2v: (0.000000724, -0.000003666, -0.000002721) max 3.666e-06\n    test 408 transform0v: (0.00009, 0.00053, -0.00077)  FAILED, KNOWN, expected (0.00020, -0.00030, 0.00020)\n    test 409     Error0v: (-0.000115, 0.000831, -0.00097) max 0.00097\n\n    test 410 transform0: name='-ITRF2000@2015xETRF2014@2010', tx=0.0007, ty=0.0012, tz=-0.0261, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 411 transform2c: (4027893.6812, 307045.9082, 4919475.1547)\n    test 412     Error2c: (0.000013934, -0.000012081, 0.000026423) max 2.642e-05, epoched 5.0\n    test 413 transform2v: (-0.01351, 0.01686, 0.00854)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 414     Error2v: (-0.000440726, -0.000036335, -0.00053728) max 0.0005373\n    test 415 transform0v: (-0.00008, -0.00053, 0.00077)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 416     Error0v: (0.012985, -0.017431, -0.00831) max 0.01743\n\n    test 417 transform0: name='ITRF2000@2015xETRF2000@2010', tx=0.054, ty=0.051, tz=-0.048, s1=1.0, rx=8.24668072e-09, ry=4.98873278e-08, rz=-8.06342114e-08, s=0.0, sx=0.001701, sy=0.01029, sz=-0.016632\n    test 418 transform2c: (4027894.0054, 307045.5938, 4919474.9083)  FAILED, KNOWN, expected (4027894.0053, 307045.5939, 4919474.9083)\n    test 419     Error2c: (0.000077874, -0.000055372, -0.000008743) max 7.787e-05, epoched 5.0\n    test 420 transform2v: (-0.00020, -0.00050, -0.00037)  FAILED, KNOWN, expected (-0.00020, -0.00050, -0.00036)\n    test 421     Error2v: (-0.000004389, 0.000002124, -0.000008036) max 8.036e-06\n    test 422 transform0v: (0.00008, 0.00049, -0.00079)  FAILED, KNOWN, expected (-0.00020, -0.00050, -0.00036)\n    test 423     Error0v: (0.000281, 0.00099, -0.000432) max 0.00099\n\n    test 424 transform0/: name='-ITRF2000@2015xETRF2014@2010', tx=0.0007, ty=0.0012, tz=-0.0261, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 425 transform2c: (4027893.6812, 307045.9082, 4919475.1547)\n    test 426     Error2c: (0.000013934, -0.000012081, 0.000026423) max 2.642e-05, epoched 5.0\n    test 427 transform2v: (-0.01351, 0.01686, 0.00854)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 428     Error2v: (-0.000440726, -0.000036335, -0.00053728) max 0.0005373\n\n    test 429 transform1/: name='-ITRF2000@1997xITRF97@2015-ITRF97@2015xETRF2014@2010', tx=0.00673, ty=-0.00033, tz=-0.05913, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=8.09154034e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01669\n    test 430 transform2c: (4027893.6865, 307045.9168, 4919475.1217)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 431     Error2c: (0.005269863, 0.008612365, -0.033003577) max 0.033, epoched 23.0\n    test 432 transform2v: (-0.01357, 0.01710, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 433     Error2v: (-0.00050027, 0.000204776, -0.00179728) max 0.001797\n\n    test 434 transform2/: name='-ITRF2000@1997xITRF96@2015-ITRF96@2015xETRF2014@2010', tx=0.00673, ty=-0.00033, tz=-0.05913, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 435 transform2c: (4027893.6872, 307045.9067, 4919475.1217)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 436     Error2c: (0.006043935, -0.001542081, -0.033003577) max 0.033, epoched 23.0\n    test 437 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 438     Error2v: (-0.000440726, -0.000576335, -0.00179728) max 0.001797\n\n    test 439 transform3/: name='-ITRF2000@1988xITRF93@2015-ITRF93@2015xETRF2014@2010', tx=0.0007, ty=0.0012, tz=-0.0261, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 440 transform2c: (4027893.6812, 307045.9082, 4919475.1547)\n    test 441     Error2c: (0.000013934, -0.000012081, 0.000026423) max 2.642e-05, epoched 32.0\n    test 442 transform2v: (-0.01351, 0.01686, 0.00854)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 443     Error2v: (-0.000440726, -0.000036335, -0.00053728) max 0.0005373\n\n    test 444 transform4/: name='-ITRF2000@1988xITRF92@2015-ITRF92@2015xETRF2014@2010', tx=0.01393, ty=0.00147, tz=-0.06633, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 445 transform2c: (4027893.6944, 307045.9085, 4919475.1145)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 446     Error2c: (0.013243935, 0.000257919, -0.040203577) max 0.0402, epoched 32.0\n    test 447 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 448     Error2v: (-0.000440726, -0.000576335, -0.00179728) max 0.001797\n\n    test 449 transform5/: name='-ITRF2000@1988xITRF91@2015-ITRF91@2015xETRF2014@2010', tx=0.0007, ty=0.0012, tz=-0.0261, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 450 transform2c: (4027893.6812, 307045.9082, 4919475.1547)\n    test 451     Error2c: (0.000013934, -0.000012081, 0.000026423) max 2.642e-05, epoched 32.0\n    test 452 transform2v: (-0.01351, 0.01686, 0.00854)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 453     Error2v: (-0.000440726, -0.000036335, -0.00053728) max 0.0005373\n\n    test 454 transform6/: name='-ITRF2000@1988xITRF90@2015-ITRF90@2015xETRF2014@2010', tx=0.02293, ty=0.01047, tz=-0.08613, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 455 transform2c: (4027893.7034, 307045.9175, 4919475.0947)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 456     Error2c: (0.022243935, 0.009257919, -0.060003577) max 0.06, epoched 32.0\n    test 457 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 458     Error2v: (-0.000440726, -0.000576335, -0.00179728) max 0.001797\n\n    test 459 transform7/: name='-ITRF2000@1988xITRF89@2015-ITRF89@2015xETRF2014@2010', tx=0.02743, ty=0.03207, tz=-0.12033, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 460 transform2c: (4027893.7079, 307045.9391, 4919475.0605)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 461     Error2c: (0.026743934, 0.030857919, -0.094203577) max 0.0942, epoched 32.0\n    test 462 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 463     Error2v: (-0.000440726, -0.000576335, -0.00179728) max 0.001797\n\n    test 464 transform8/: name='-ITRF2000@1988xITRF88@2015-ITRF88@2015xETRF2014@2010', tx=0.02293, ty=-0.00033, tz=-0.14193, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n./test/testTrf.py:29: DeprecationWarning: method L{convertRefFrame<pygeodesy.ellipsoidalKarney.LatLon.convertRefFrame>} has been DEPRECATED, use method L{toRefFrame}.\n  x = p.convertRefFrame(RefFrames.ETRF2000)\n./test/testTrf.py:136: DeprecationWarning: method L{convertRefFrame<pygeodesy.ellipsoidalKarney.LatLon.convertRefFrame>} has been DEPRECATED, use method L{toRefFrame}.\n  t = LatLon(0, 0, reframe=RefFrames.ITRF2000).convertRefFrame('ITRF2000')\n    test 465 transform2c: (4027893.7034, 307045.9067, 4919475.0389)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 466     Error2c: (0.022243935, -0.001542081, -0.115803577) max 0.1158, epoched 32.0\n    test 467 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 468     Error2v: (-0.000440725, -0.000576335, -0.00179728) max 0.001797\n\n    test 469 transform0: name='ITRF2020@2015xETRF2020@2020', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=1.29251327e-08, ry=7.80016732e-08, rz=-1.13170058e-07, s=0.0, sx=0.002666, sy=0.016089, sz=-0.023343\n    test 470 transform2c: (4027893.9574, 307045.5561, 4919474.9643)\n    test 471     Error2c: (-0.000024276, -0.000021815, -0.000013824) max 2.428e-05, epoched 5.0\n    test 472 transform2v: (0.01350, -0.01676, -0.01001)\n\n    test 473 transform0: name='-ITRF2014@2015xETRF2020@2020', tx=-0.0014, ty=-0.0014, tz=0.0024, s1=1.0, rx=-1.29251327e-08, ry=-7.80016732e-08, rz=1.13170058e-07, s=-0.00042, sx=-0.002666, sy=-0.016089, sz=0.023343\n    test 474 transform2c: (4027893.5358, 307046.0740, 4919475.2748)\n    test 475     Error2c: (0.000032643, -0.000007101, 0.000047684) max 4.768e-05, epoched 5.0\n    test 476 transform2v: (-0.01350, 0.01666, 0.01021)\n\n    test 477 transform0: name='ITRF2014@2015xETRF2014@2020', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=1.27748405e-08, ry=7.980518e-08, rz=-1.15725026e-07, s=0.0, sx=0.002635, sy=0.016461, sz=-0.02387\n    test 478 transform2c: (4027893.9639, 307045.5450, 4919474.9573)\n    test 479     Error2c: (0.000032525, 0.000026405, -0.000024305) max 3.253e-05, epoched 5.0\n    test 480 transform2v: (0.01381, -0.01706, -0.01024)\n\n    test 481 transform0: name='-ITRF2000@2015xETRF2014@2020', tx=0.0017, ty=0.0022, tz=-0.0451, s1=1.0, rx=-1.27748405e-08, ry=-7.980518e-08, rz=1.15725026e-07, s=0.00322, sx=-0.002635, sy=-0.016461, sz=0.02387\n    test 482 transform2c: (4027893.5504, 307046.0772, 4919475.2456)  FAILED, KNOWN, expected (4027893.5505, 307046.0772, 4919475.2456)\n    test 483     Error2c: (-0.000062619, -0.000037673, -0.000034946) max 6.262e-05, epoched 5.0\n    test 484 transform2v: (-0.01371, 0.01716, 0.00834)\n\n    test 485 transform0: name='ITRF2000@2015xETRF2000@2020', tx=0.054, ty=0.051, tz=-0.048, s1=1.0, rx=1.21736715e-08, ry=7.36431982e-08, rz=-1.19031455e-07, s=0.0, sx=0.002511, sy=0.01519, sz=-0.024552\n    test 486 transform2c: (4027894.0033, 307045.5889, 4919474.9047)\n    test 487     Error2c: (0.000034031, -0.000034106, 0.000010915) max 3.411e-05, epoched 5.0\n    test 488 transform2v: (0.01287, -0.01740, -0.00945)\n\n    test 489 transform0*: name='-ITRF2014@2010xITRF89-ITRF89@1989xETRF89@2010@2018.8', tx=-0.03128, ty=-0.0311, tz=0.15984, s1=0.999999991, rx=-1.58921925e-08, ry=-8.23504519e-08, rz=1.00463091e-07, s=-0.009246, sx=-0.003278, sy=-0.016986, sz=0.020722\n    test 490 transform2c: (4160476.4154, 653193.0567, 4774604.9029)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 491     Error2c: (-0.069560351, 0.035713888, 0.122930501) max 0.1229, epoched 29.8\n    test 492 transform2v: (-0.01148, 0.01996, 0.01845)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 493     Error2v: (-0.015479395, 0.016963959, 0.014448874) max 0.01696\n\n    test 494 transform0*: name='-ITRF2014@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 495 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 496     Error2c: (-0.014174475, 0.037834952, 0.023962618) max 0.03783, epoched 3.8\n    test 497 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 498     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 499 transform1*: name='-ITRF2014@2010xITRF2008@2015-ITRF2008@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 500 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 501     Error2c: (-0.014174475, 0.037834952, 0.023962618) max 0.03783, epoched 8.8\n    test 502 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 503     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 504 transform2*: name='-ITRF2014@2010xITRF97@2015-ITRF97@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 505 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 506     Error2c: (-0.014174475, 0.037834952, 0.023962618) max 0.03783, epoched 8.8\n    test 507 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 508     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 509 transform3*: name='-ITRF2014@2010xITRF93@2015-ITRF93@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 510 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 511     Error2c: (-0.014174475, 0.037834952, 0.023962618) max 0.03783, epoched 8.8\n    test 512 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 513     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 514 transform4*: name='-ITRF2014@2010xITRF92@2015-ITRF92@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 515 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 516     Error2c: (-0.014174475, 0.037834952, 0.023962618) max 0.03783, epoched 8.8\n    test 517 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 518     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 519 transform5*: name='-ITRF2014@2010xITRF91@2015-ITRF91@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 520 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 521     Error2c: (-0.014174475, 0.037834952, 0.023962618) max 0.03783, epoched 8.8\n    test 522 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 523     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 524 transform6*: name='-ITRF2014@2010xITRF90@2015-ITRF90@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 525 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 526     Error2c: (-0.014174475, 0.037834952, 0.023962618) max 0.03783, epoched 8.8\n    test 527 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 528     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 529 transform7*: name='-ITRF2014@2010xITRF89@2015-ITRF89@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 530 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 531     Error2c: (-0.014174475, 0.037834952, 0.023962618) max 0.03783, epoched 8.8\n    test 532 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 533     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 534 transform8*: name='-ITRF2014@2010xITRF88@2015-ITRF88@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 535 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 536     Error2c: (-0.014174475, 0.037834952, 0.023962618) max 0.03783, epoched 8.8\n    test 537 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 538     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 539 toTransform: name='-ITRF2014@2010xITRF88@2015-ITRF88@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=1.0, rx=-1.1702e-08, ry=-7.0792e-08, rz=1.1442e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.023602\n    test 540 toTransform: name='-ITRF2014@2010xITRF88@2015-ITRF88@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=1.0, rx=-1.1702e-08, ry=-7.0792e-08, rz=1.1442e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.023602\n\n    test 541 Issue80: 48.77691577°N, 008.92257142°E, +476.05m\n    test 542 Issue80: 48.77692147°N, 008.92257868°E, +476.09m\n    test 543 Issue80: 48°46′36.915134″N, 008°55′21.285094″E, +476.10m  FAILED, KNOWN, expected 48°46′36.915134″N, 008°55′21.285094″E, +476.10\n    test 544 Issue80: 0.804  FAILED, KNOWN, expected 0.01\n    test 545 Issue80: [4160476.944064, 653192.600457, 4774604.455385]\n    test 546 Issue80: [4160476.415504, 653193.057171, 4774604.903316]\n    test 547 Issue80: [4160476.467901, 653193.103647, 4774604.868888]\n    test 548 Issue80: 48°46′36.915133″N, 008°55′21.285094″E, +476.10m\n\n    test 549 Issue80: 48.77692032°N, 008.92257804°E, +476.05m\n    test 550 Issue80: 48.77691971°N, 008.92257856°E, +476.06m\n    test 551 Issue80: 48°46′36.9315″N, 008°55′21.3089″E, +476.10m  FAILED, KNOWN, expected 48°46′36.9131″N, 008°55′21.28095″E, +476.05m\n    test 552 Issue80: 0.804  FAILED, KNOWN, expected 0.01\n    test 553 Issue80: [4160476.492633, 653193.021888, 4774604.78885]\n    test 554 Issue80: [4160476.54503, 653193.068365, 4774604.754422]\n    test 555 Issue80: [4160476.016469, 653193.525079, 4774605.202353]\n    test 556 Issue80: 48°46′36.9315″N, 008°55′21.3089″E, +476.10m\n\n    test 557 ITRF96@1997xNAD83: TRFXform(epoch=1997.0, name='ITRF96@1997xNAD83')\n    test 558 ITRF96@1997xNAD83: name='ITRF96@1997xNAD83', tx=0.991, ty=-0.19072, tz=-0.5129, s1=1.0, rx=1.2503e-07, ry=4.6785e-08, rz=5.6529e-08, s=0.0, sx=0.02579, sy=0.00965, sz=0.01166\n    test 559 ITRF96@1997xNAD83: name='ITRF96@1997xNAD83@2007', tx=0.991, ty=-0.19072, tz=-0.5129, s1=1.0, rx=1.2761e-07, ry=1.0797e-08, rz=5.4997e-08, s=0.0, sx=0.026322, sy=0.002227, sz=0.011344\n    test 560 ITRF96@1997xNAD83: rx=-2.5792e-10, ry=3.5988e-09, rz=1.532e-10\n\n    testTrf(pygeodesy.ellipsoidalKarney, 25.05.27)\n    test 561 convertRefFrame: 51.47787826°N, 000.00147125°W, -0.00m  FAILED, KNOWN, expected 51.47787826°N, 000.00147125°W\n    test 562 copy(<class 'type'>): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 563 RefFrame.copy(): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 564 toLatLon: 50.7978°N, 004.3592°E, +148.96m\n    test 565 convertRefFrame: [3980574.395, -102.214, 4966829.941]\n    test 566 Nil: True\n    test 567 copy(<class 'type'>): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 568 RefFrame.copy(): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 569 Nil: True\n    test 570 reframe: True\n    test 571 Roundtrip: True\n    test 572 reframe: True\n    test 573 copy(<class 'type'>): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 574 RefFrame.copy(): (<class 'pygeodesy.trf.RefFrame'>, True)\n\n    test 575 Geodetic: 23°40′12.44582″S, 133°53′07.84795″E, +603.34m\n    test 576 Cartesian: [-4052051.7614, 4212836.1945, -2545106.0147]\n    test 577 Geodetic: 23°40′12.44582″S, 133°53′07.84795″E, +603.34m\n    test 578 Cartesian: [-4052051.7614, 4212836.1945, -2545106.0147]\n    test 579 Roundtrip: 23°40′12.41482″S, 133°53′07.86712″E, +603.26m\n    test 580 GNSStrans: [3370658.18892, 711877.42369, 5349787.1243]\n    test 581 Cartesian: [-734972.563, 4893188.492, 4011982.811]\n\n    test 582 EUREF EX1: [4027894.0444, 307045.6209, 4919474.8613]\n    test 583 transform0: ITRF2005@2015xETRF2020-ITRF91@2015xETRF2020@2007 max 1.1642e-10, epoched 8.0\n    test 584 transform1: ITRF2005@2015xETRF2014-ITRF91@2015xETRF2014@2007 max 0.048666, epoched 8.0\n    test 585 transform2: ITRF2005@2015xETRF2000-ITRF91@2015xETRF2000@2007 max 0.097331, epoched 8.0\n    test 586 transform3: ITRF2005@2000xITRF2000+ITRF2000@1988xITRF91@2000@2007 max 0.146, epoched 19.0\n    test 587 transform4: -ITRF2020@2015xITRF2005+ITRF2020@2015xITRF91@2007 max 0.19466, epoched 8.0\n    test 588 transform5: -ITRF2014@2010xITRF2005+ITRF2014@2010xITRF91@2007 max 0.24333, epoched 3.0\n    test 589 transform6: -ITRF2008@2005xITRF2005+ITRF2008@2000xITRF91@2005@2007 max 0.29199, epoched 7.0\n    test 590 transform7: ITRF2000@1988xITRF91+ITRF2005@2000xITRF2000@1988@2007 max 0.34066, epoched 31.0\n    test 591 transform8: ITRF2014@2010xITRF91-ITRF2014@2020xGDA2020@2010+ITRF2005@2020xGDA2020@2010@2007 max 0.98111, epoched 23.0\n    test 592 transform9: ITRF2008@2000xITRF91-ITRF2008@1994xGDA94@2000+ITRF2005@1994xGDA94@2000@2007 max 0.35972, epoched 19.0\n    test 593 transform10: ITRF2008@2000xITRF91-ITRF2008@1997xNAD83@2000+ITRF2005@1997xNAD83@2000@2007 max 0.40805, epoched 13.0\n    test 594 EUREF EX2: [4027894.0060, 307045.6000, 4919474.9100]\n    test 595 transform0: ITRF91@2015xETRF2020-ITRF2005@2015xETRF2020@2007 max 0.048666, epoched 8.0\n    test 596 transform1: ITRF91@2015xETRF2014-ITRF2005@2015xETRF2014@2007 max 2.3283e-10, epoched 8.0\n    test 597 transform2: ITRF91@2015xETRF2000-ITRF2005@2015xETRF2000@2007 max 0.048666, epoched 8.0\n    test 598 transform3: -ITRF2005@2000xITRF2000-ITRF2000@1988xITRF91@2000@2007 max 0.097331, epoched 19.0\n    test 599 EUREF EX4: [4027894.3559, 307045.2508, 4919474.6447]\n    test 600 transform0: -ITRF2000@2015xETRF2000@2012 max 4.5169e-08, epoched 3.0\n    test 601 transform1: -ITRF2000@1997xITRF97@2015-ITRF97@2015xETRF2000@2012 max 0.35826, epoched 21.0\n    test 602 transform2: -ITRF2000@1997xITRF96@2015-ITRF96@2015xETRF2000@2012 max 0.7048, epoched 21.0\n    test 603 transform3: -ITRF2000@1988xITRF93@2015-ITRF93@2015xETRF2000@2012 max 1.054, epoched 30.0\n    test 604 transform4: -ITRF2000@1988xITRF92@2015-ITRF92@2015xETRF2000@2012 max 1.4023, epoched 30.0\n    test 605 transform5: -ITRF2000@1988xITRF91@2015-ITRF91@2015xETRF2000@2012 max 1.7514, epoched 30.0\n    test 606 transform6: -ITRF2000@1988xITRF90@2015-ITRF90@2015xETRF2000@2012 max 2.1088, epoched 30.0\n    test 607 transform7: -ITRF2000@1988xITRF89@2015-ITRF89@2015xETRF2000@2012 max 2.4877, epoched 30.0\n    test 608 transform8: -ITRF2000@1988xITRF88@2015-ITRF88@2015xETRF2000@2012 max 2.8343, epoched 30.0\n    test 609 EUREF EX5: [4027893.6458, 307045.9470, 4919475.1937]  FAILED, KNOWN, expected [4027894.3662, 307045.2530, 4919474.6263]\n    test 610 transform0: ITRF2014@2015xETRF2000@2012 max 4.5635e-08, epoched 3.0\n    test 611 transform1: ITRF2014@2010xITRF2008@2015+ITRF2008@2015xETRF2000@2012 max 0.36023, epoched 8.0\n    test 612 transform2: ITRF2014@2010xITRF97@2015+ITRF97@2015xETRF2000@2012 max 0.72047, epoched 8.0\n    test 613 transform3: ITRF2014@2010xITRF93@2015+ITRF93@2015xETRF2000@2012 max 1.0807, epoched 8.0\n    test 614 transform4: ITRF2014@2010xITRF92@2015+ITRF92@2015xETRF2000@2012 max 1.4409, epoched 8.0\n    test 615 transform5: ITRF2014@2010xITRF91@2015+ITRF91@2015xETRF2000@2012 max 1.8012, epoched 8.0\n    test 616 transform6: ITRF2014@2010xITRF90@2015+ITRF90@2015xETRF2000@2012 max 2.1614, epoched 8.0\n    test 617 transform7: ITRF2014@2010xITRF89@2015+ITRF89@2015xETRF2000@2012 max 2.5216, epoched 8.0\n    test 618 transform8: ITRF2014@2010xITRF88@2015+ITRF88@2015xETRF2000@2012 max 2.8819, epoched 8.0\n\n    test 619 Case 1A: [4027893.9619, 307045.5481, 4919474.9553]\n    test 620 Case 1B: [4027894.0054, 307045.5938, 4919474.9083]\n    test 621 Case 2A: [4027893.9639, 307045.545, 4919474.9573]\n    test 622 Case 2B: [4027894.0033, 307045.5889, 4919474.9041]\n\n    test 623 TypeError: type(reframe) ('ITRF2000'): not a RefFrame\n    test 624 TRFError: epoch (1899): below 1900.0 limit\n    test 625 TypeError: type(reframe2) ('ITRF2000'): not a RefFrame\n    test 626 TRFError: no conversion: LatLon(00°00′00.0″N, 000°00′00.0″E).reframe MISSING\n    test 627 TypeError: type(reframe2) ('ITRF2000'): not a RefFrame\n    test 628 TypeError: type(reframe) ('ITRF2000'): not a RefFrame\n\n    test 629 ETRF89@1989: [4160476.944000, 653192.600000, 4774604.455000]\n    test 630 ITRF2014@2018.8: [4160476.415, 653193.057, 4774604.903]  FAILED, KNOWN, expected [4160476.485, 653193.021, 4774604.78]\n    test 631 TransformXform: -ITRF2014@2010xITRF89-ITRF89@1989xETRF89@2010@2018.8\n    test 632 Delta (m): [-0.06956, 0.035714, 0.122931]  FAILED, KNOWN, expected [0.01, 0.01, 0.01]\n    test 633 Error (m): 0.145692  FAILED, KNOWN, expected 0.01\n    test 634 Epoch range: 29.800  FAILED, KNOWN, expected 14.0\n    test 635 ETRF89@1989: [4160476.467836, 653193.103190, 4774604.868503]  FAILED, KNOWN, expected [4160476.944000, 653192.600000, 4774604.455000]\n    test 636 TransformXform: ITRF2014@2010xITRF89+ITRF89@1989xETRF89@2010@1989\n\n    test 637 inverse: -ITRF2014@2010xITRF89-ITRF89@1989xETRF89@2010@1989\n    test 638 inverse: ITRF2014@2010xITRF89+ITRF89@1989xETRF89@2010@1989\n    test 639 inverse: name='ITRF2014@2010xITRF89+ITRF89@1989xETRF89@2010@1989', tx=0.0283, ty=0.046, tz=-0.0615, s1=1.0, rx=0.0, ry=0.0, rz=-7.757e-10, s=0.00567, sx=0.0, sy=0.0, sz=-0.00016\n\n    test 640 ETRF2000@2000: [4160476.952000, 653192.582000, 4774604.441000]\n    test 641 ITRF2014@2018.8: [4160476.471, 653193.059, 4774604.804]  FAILED, KNOWN, expected [4160476.485, 653193.021, 4774604.78]\n    test 642 TransformXform: -ITRF2014@2015xETRF2000@2018.8\n    test 643 Delta (m): [-0.014174, 0.037835, 0.023963]  FAILED, KNOWN, expected [0.01, 0.01, 0.01]\n    test 644 Error (m): 0.046975  FAILED, KNOWN, expected 0.01\n    test 645 Epoch range: 18.800  FAILED, KNOWN, expected 14.0\n    test 646 ETRF2000@2000: [4160476.681125, 653192.914350, 4774604.647835]  FAILED, KNOWN, expected [4160476.952000, 653192.582000, 4774604.441000]\n    test 647 TransformXform: ITRF2014@2015xETRF2000@2000\n\n    test 648 inverse: -ITRF2014@2015xETRF2000@2000\n    test 649 inverse: ITRF2014@2015xETRF2000@2000\n    test 650 inverse: name='ITRF2014@2015xETRF2000@2000', tx=0.0537, ty=0.0512, tz=-0.0551, s1=1.0, rx=4.3197e-09, ry=2.6131e-08, rz=-4.2237e-08, s=0.00102, sx=0.000891, sy=0.00539, sz=-0.008712\n\n    test 651 ITRF2008@2005: [4160476.674000, 653192.806000, 4774604.648000]\n    test 652 ITRF2014@2018.8: [4160476.671, 653192.804, 4774604.645]  FAILED, KNOWN, expected [4160476.485, 653193.021, 4774604.78]\n    test 653 TransformXform: -ITRF2014@2010xITRF2008@2018.8\n    test 654 Delta (m): [0.186385, -0.217059, -0.134685]  FAILED, KNOWN, expected [0.01, 0.01, 0.01]\n    test 655 Error (m): 0.316218  FAILED, KNOWN, expected 0.01\n    test 656 Epoch range: 13.800  FAILED, KNOWN, expected 14.0\n    test 657 ITRF2008@2005: [4160476.672278, 653192.805730, 4774604.647403]  FAILED, KNOWN, expected [4160476.674000, 653192.806000, 4774604.648000]\n    test 658 TransformXform: ITRF2014@2010xITRF2008@2005\n\n    test 659 inverse: -ITRF2014@2010xITRF2008@2005\n    test 660 inverse: ITRF2014@2010xITRF2008@2005\n    test 661 inverse: name='ITRF2014@2010xITRF2008@2005', tx=0.0016, ty=0.0019, tz=0.0029, s1=1.0, rx=0.0, ry=0.0, rz=0.0, s=-0.00017, sx=0.0, sy=0.0, sz=0.0\n\n    test 662 toRefFrame1: ITRF2020@2015 2024.31 [0.0031474, 0.00210534, -0.00125667]\n    test 663 toRefFrame2: ITRF2014@2010 2024.32 [0.0031474, 0.00210634, -0.00125867]\n    test 664 transform0: -ITRF2020@2015xITRF2014@2010\n    test 665 transform0X: TRFXform(epoch=2010.0, name='-ITRF2020@2015xITRF2014@2010')\n    test 666 toRefFrame3: ITRF2020@2015 2010 [0.0031474, 0.00067434, 0.00160533]\n    test 667 transform2x: (4160476.488147, 653193.021674, 4774604.781605)\n    test 668 transform2v: (0.000, 0.000, 0.000)  FAILED, KNOWN, expected (0.004, 0.003, 0.004)\n\n    test 669 transform0: name='ITRF2020@2015xETRF2020@2010', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=8.75573508e-09, ry=5.28398431e-08, rz=-7.66635874e-08, s=0.0, sx=0.001806, sy=0.010899, sz=-0.015813\n    test 670 transform2c: (4027893.9585, 307045.5550, 4919474.9620)  FAILED, KNOWN, expected (4027893.9585, 307045.5550, 4919474.9619)\n    test 671     Error2c: (-0.000016463, 0.0000336, 0.000055143) max 5.514e-05, epoched 5.0\n    test 672 transform2v: (-0.00011, 0.00010, 0.00023)  FAILED, KNOWN, expected (0.00011, 0.00011, 0.00024)\n    test 673     Error2v: (-0.000220786, -0.000005544, -0.000006899) max 0.0002208\n    test 674 transform0v: (0.00009, 0.00052, -0.00075)  FAILED, KNOWN, expected (0.00011, 0.00011, 0.00024)\n    test 675     Error0v: (-0.000024, 0.000409, -0.000993) max 0.000993\n\n    test 676 transform0: name='-ITRF2014@2015xETRF2020@2010', tx=-0.0014, ty=-0.0004, tz=0.0004, s1=1.0, rx=-8.75573508e-09, ry=-5.28398431e-08, rz=7.66635874e-08, s=-0.00042, sx=-0.001806, sy=-0.010899, sz=0.015813\n    test 677 transform2c: (4027893.6719, 307045.9063, 4919475.1704)  FAILED, KNOWN, expected (4027893.6719, 307045.9064, 4919475.1704)\n    test 678     Error2c: (0.000024786, -0.000062539, -0.000021305) max 6.254e-05, epoched 5.0\n    test 679 transform2v: (-0.01339, 0.01677, 0.01045)  FAILED, KNOWN, expected (-0.01361, 0.01676, 0.01044)\n    test 680     Error2v: (0.000220784, 0.000005543, 0.000006898) max 0.0002208\n    test 681 transform0v: (-0.00009, -0.00052, 0.00075)  FAILED, KNOWN, expected (-0.01361, 0.01676, 0.01044)\n    test 682     Error0v: (0.013524, -0.017279, -0.009687) max 0.01728\n\n    test 683 transform0: name='ITRF2014@2015xETRF2014@2010', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=8.65392421e-09, ry=5.40615736e-08, rz=-7.83943722e-08, s=0.0, sx=0.001785, sy=0.011151, sz=-0.01617\n    test 684 transform2c: (4027893.9619, 307045.5481, 4919474.9553)  FAILED, KNOWN, expected (4027893.9620, 307045.5480, 4919474.9553)\n    test 685     Error2c: (-0.00007476, 0.000063039, 0.000002882) max 7.476e-05, epoched 5.0\n    test 686 transform2v: (0.00020, -0.00030, 0.00020)\n    test 687     Error2v: (0.000000724, -0.000003666, -0.000002721) max 3.666e-06\n    test 688 transform0v: (0.00009, 0.00053, -0.00077)  FAILED, KNOWN, expected (0.00020, -0.00030, 0.00020)\n    test 689     Error0v: (-0.000115, 0.000831, -0.00097) max 0.00097\n\n    test 690 transform0: name='-ITRF2000@2015xETRF2014@2010', tx=0.0007, ty=0.0012, tz=-0.0261, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 691 transform2c: (4027893.6812, 307045.9082, 4919475.1547)\n    test 692     Error2c: (0.000013934, -0.000012081, 0.000026423) max 2.642e-05, epoched 5.0\n    test 693 transform2v: (-0.01351, 0.01686, 0.00854)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 694     Error2v: (-0.000440726, -0.000036335, -0.00053728) max 0.0005373\n    test 695 transform0v: (-0.00008, -0.00053, 0.00077)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 696     Error0v: (0.012985, -0.017431, -0.00831) max 0.01743\n\n    test 697 transform0: name='ITRF2000@2015xETRF2000@2010', tx=0.054, ty=0.051, tz=-0.048, s1=1.0, rx=8.24668072e-09, ry=4.98873278e-08, rz=-8.06342114e-08, s=0.0, sx=0.001701, sy=0.01029, sz=-0.016632\n    test 698 transform2c: (4027894.0054, 307045.5938, 4919474.9083)  FAILED, KNOWN, expected (4027894.0053, 307045.5939, 4919474.9083)\n    test 699     Error2c: (0.000077874, -0.000055372, -0.000008743) max 7.787e-05, epoched 5.0\n    test 700 transform2v: (-0.00020, -0.00050, -0.00037)  FAILED, KNOWN, expected (-0.00020, -0.00050, -0.00036)\n    test 701     Error2v: (-0.000004389, 0.000002124, -0.000008036) max 8.036e-06\n    test 702 transform0v: (0.00008, 0.00049, -0.00079)  FAILED, KNOWN, expected (-0.00020, -0.00050, -0.00036)\n    test 703     Error0v: (0.000281, 0.00099, -0.000432) max 0.00099\n\n    test 704 transform0/: name='-ITRF2000@2015xETRF2014@2010', tx=0.0007, ty=0.0012, tz=-0.0261, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 705 transform2c: (4027893.6812, 307045.9082, 4919475.1547)\n    test 706     Error2c: (0.000013934, -0.000012081, 0.000026423) max 2.642e-05, epoched 5.0\n    test 707 transform2v: (-0.01351, 0.01686, 0.00854)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 708     Error2v: (-0.000440726, -0.000036335, -0.00053728) max 0.0005373\n\n    test 709 transform1/: name='-ITRF2000@1997xITRF97@2015-ITRF97@2015xETRF2014@2010', tx=0.00673, ty=-0.00033, tz=-0.05913, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=8.09154034e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01669\n    test 710 transform2c: (4027893.6865, 307045.9168, 4919475.1217)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 711     Error2c: (0.005269863, 0.008612365, -0.033003577) max 0.033, epoched 23.0\n    test 712 transform2v: (-0.01357, 0.01710, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 713     Error2v: (-0.00050027, 0.000204776, -0.00179728) max 0.001797\n\n    test 714 transform2/: name='-ITRF2000@1997xITRF96@2015-ITRF96@2015xETRF2014@2010', tx=0.00673, ty=-0.00033, tz=-0.05913, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 715 transform2c: (4027893.6872, 307045.9067, 4919475.1217)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 716     Error2c: (0.006043935, -0.001542081, -0.033003577) max 0.033, epoched 23.0\n    test 717 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 718     Error2v: (-0.000440726, -0.000576335, -0.00179728) max 0.001797\n\n    test 719 transform3/: name='-ITRF2000@1988xITRF93@2015-ITRF93@2015xETRF2014@2010', tx=0.0007, ty=0.0012, tz=-0.0261, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 720 transform2c: (4027893.6812, 307045.9082, 4919475.1547)\n    test 721     Error2c: (0.000013934, -0.000012081, 0.000026423) max 2.642e-05, epoched 32.0\n    test 722 transform2v: (-0.01351, 0.01686, 0.00854)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 723     Error2v: (-0.000440726, -0.000036335, -0.00053728) max 0.0005373\n\n    test 724 transform4/: name='-ITRF2000@1988xITRF92@2015-ITRF92@2015xETRF2014@2010', tx=0.01393, ty=0.00147, tz=-0.06633, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 725 transform2c: (4027893.6944, 307045.9085, 4919475.1145)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 726     Error2c: (0.013243935, 0.000257919, -0.040203577) max 0.0402, epoched 32.0\n    test 727 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 728     Error2v: (-0.000440726, -0.000576335, -0.00179728) max 0.001797\n\n    test 729 transform5/: name='-ITRF2000@1988xITRF91@2015-ITRF91@2015xETRF2014@2010', tx=0.0007, ty=0.0012, tz=-0.0261, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 730 transform2c: (4027893.6812, 307045.9082, 4919475.1547)\n    test 731     Error2c: (0.000013934, -0.000012081, 0.000026423) max 2.642e-05, epoched 32.0\n    test 732 transform2v: (-0.01351, 0.01686, 0.00854)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 733     Error2v: (-0.000440726, -0.000036335, -0.00053728) max 0.0005373\n\n    test 734 transform6/: name='-ITRF2000@1988xITRF90@2015-ITRF90@2015xETRF2014@2010', tx=0.02293, ty=0.01047, tz=-0.08613, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 735 transform2c: (4027893.7034, 307045.9175, 4919475.0947)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 736     Error2c: (0.022243935, 0.009257919, -0.060003577) max 0.06, epoched 32.0\n    test 737 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 738     Error2v: (-0.000440726, -0.000576335, -0.00179728) max 0.001797\n\n    test 739 transform7/: name='-ITRF2000@1988xITRF89@2015-ITRF89@2015xETRF2014@2010', tx=0.02743, ty=0.03207, tz=-0.12033, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 740 transform2c: (4027893.7079, 307045.9391, 4919475.0605)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 741     Error2c: (0.026743934, 0.030857919, -0.094203577) max 0.0942, epoched 32.0\n    test 742 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 743     Error2v: (-0.000440726, -0.000576335, -0.00179728) max 0.001797\n\n    test 744 transform8/: name='-ITRF2000@1988xITRF88@2015-ITRF88@2015xETRF2014@2010', tx=0.02293, ty=-0.00033, tz=-0.14193, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 745 transform2c: (4027893.7034, 307045.9067, 4919475.0389)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 746     Error2c: (0.022243935, -0.001542081, -0.115803577) max 0.1158, epoched 32.0\n    test 747 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 748     Error2v: (-0.000440725, -0.000576335, -0.00179728) max 0.001797\n\n    test 749 transform0: name='ITRF2020@2015xETRF2020@2020', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=1.29251327e-08, ry=7.80016732e-08, rz=-1.13170058e-07, s=0.0, sx=0.002666, sy=0.016089, sz=-0.023343\n    test 750 transform2c: (4027893.9574, 307045.5561, 4919474.9643)\n    test 751     Error2c: (-0.000024276, -0.000021815, -0.000013824) max 2.428e-05, epoched 5.0\n    test 752 transform2v: (0.01350, -0.01676, -0.01001)\n\n    test 753 transform0: name='-ITRF2014@2015xETRF2020@2020', tx=-0.0014, ty=-0.0014, tz=0.0024, s1=1.0, rx=-1.29251327e-08, ry=-7.80016732e-08, rz=1.13170058e-07, s=-0.00042, sx=-0.002666, sy=-0.016089, sz=0.023343\n    test 754 transform2c: (4027893.5358, 307046.0740, 4919475.2748)\n    test 755     Error2c: (0.000032643, -0.000007101, 0.000047684) max 4.768e-05, epoched 5.0\n    test 756 transform2v: (-0.01350, 0.01666, 0.01021)\n\n    test 757 transform0: name='ITRF2014@2015xETRF2014@2020', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=1.27748405e-08, ry=7.980518e-08, rz=-1.15725026e-07, s=0.0, sx=0.002635, sy=0.016461, sz=-0.02387\n    test 758 transform2c: (4027893.9639, 307045.5450, 4919474.9573)\n    test 759     Error2c: (0.000032525, 0.000026405, -0.000024305) max 3.253e-05, epoched 5.0\n    test 760 transform2v: (0.01381, -0.01706, -0.01024)\n\n    test 761 transform0: name='-ITRF2000@2015xETRF2014@2020', tx=0.0017, ty=0.0022, tz=-0.0451, s1=1.0, rx=-1.27748405e-08, ry=-7.980518e-08, rz=1.15725026e-07, s=0.00322, sx=-0.002635, sy=-0.016461, sz=0.02387\n    test 762 transform2c: (4027893.5504, 307046.0772, 4919475.2456)  FAILED, KNOWN, expected (4027893.5505, 307046.0772, 4919475.2456)\n    test 763     Error2c: (-0.000062619, -0.000037673, -0.000034946) max 6.262e-05, epoched 5.0\n    test 764 transform2v: (-0.01371, 0.01716, 0.00834)\n./test/testTrf.py:29: DeprecationWarning: method L{convertRefFrame<pygeodesy.ellipsoidalExact.LatLon.convertRefFrame>} has been DEPRECATED, use method L{toRefFrame}.\n  x = p.convertRefFrame(RefFrames.ETRF2000)\n./test/testTrf.py:136: DeprecationWarning: method L{convertRefFrame<pygeodesy.ellipsoidalExact.LatLon.convertRefFrame>} has been DEPRECATED, use method L{toRefFrame}.\n  t = LatLon(0, 0, reframe=RefFrames.ITRF2000).convertRefFrame('ITRF2000')\n\n    test 765 transform0: name='ITRF2000@2015xETRF2000@2020', tx=0.054, ty=0.051, tz=-0.048, s1=1.0, rx=1.21736715e-08, ry=7.36431982e-08, rz=-1.19031455e-07, s=0.0, sx=0.002511, sy=0.01519, sz=-0.024552\n    test 766 transform2c: (4027894.0033, 307045.5889, 4919474.9047)\n    test 767     Error2c: (0.000034031, -0.000034106, 0.000010915) max 3.411e-05, epoched 5.0\n    test 768 transform2v: (0.01287, -0.01740, -0.00945)\n\n    test 769 transform0*: name='-ITRF2014@2010xITRF89-ITRF89@1989xETRF89@2010@2018.8', tx=-0.03128, ty=-0.0311, tz=0.15984, s1=0.999999991, rx=-1.58921925e-08, ry=-8.23504519e-08, rz=1.00463091e-07, s=-0.009246, sx=-0.003278, sy=-0.016986, sz=0.020722\n    test 770 transform2c: (4160476.4154, 653193.0567, 4774604.9029)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 771     Error2c: (-0.069560351, 0.035713888, 0.122930501) max 0.1229, epoched 29.8\n    test 772 transform2v: (-0.01148, 0.01996, 0.01845)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 773     Error2v: (-0.015479395, 0.016963959, 0.014448874) max 0.01696\n\n    test 774 transform0*: name='-ITRF2014@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 775 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 776     Error2c: (-0.014174475, 0.037834952, 0.023962618) max 0.03783, epoched 3.8\n    test 777 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 778     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 779 transform1*: name='-ITRF2014@2010xITRF2008@2015-ITRF2008@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 780 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 781     Error2c: (-0.014174475, 0.037834952, 0.023962618) max 0.03783, epoched 8.8\n    test 782 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 783     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 784 transform2*: name='-ITRF2014@2010xITRF97@2015-ITRF97@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 785 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 786     Error2c: (-0.014174475, 0.037834952, 0.023962618) max 0.03783, epoched 8.8\n    test 787 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 788     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 789 transform3*: name='-ITRF2014@2010xITRF93@2015-ITRF93@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 790 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 791     Error2c: (-0.014174475, 0.037834952, 0.023962618) max 0.03783, epoched 8.8\n    test 792 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 793     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 794 transform4*: name='-ITRF2014@2010xITRF92@2015-ITRF92@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 795 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 796     Error2c: (-0.014174475, 0.037834952, 0.023962618) max 0.03783, epoched 8.8\n    test 797 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 798     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 799 transform5*: name='-ITRF2014@2010xITRF91@2015-ITRF91@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 800 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 801     Error2c: (-0.014174475, 0.037834952, 0.023962618) max 0.03783, epoched 8.8\n    test 802 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 803     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 804 transform6*: name='-ITRF2014@2010xITRF90@2015-ITRF90@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 805 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 806     Error2c: (-0.014174475, 0.037834952, 0.023962618) max 0.03783, epoched 8.8\n    test 807 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 808     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 809 transform7*: name='-ITRF2014@2010xITRF89@2015-ITRF89@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 810 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 811     Error2c: (-0.014174475, 0.037834952, 0.023962618) max 0.03783, epoched 8.8\n    test 812 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 813     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 814 transform8*: name='-ITRF2014@2010xITRF88@2015-ITRF88@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 815 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 816     Error2c: (-0.014174475, 0.037834952, 0.023962618) max 0.03783, epoched 8.8\n    test 817 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 818     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 819 toTransform: name='-ITRF2014@2010xITRF88@2015-ITRF88@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=1.0, rx=-1.1702e-08, ry=-7.0792e-08, rz=1.1442e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.023602\n    test 820 toTransform: name='-ITRF2014@2010xITRF88@2015-ITRF88@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=1.0, rx=-1.1702e-08, ry=-7.0792e-08, rz=1.1442e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.023602\n\n    test 821 Issue80: 48.77691577°N, 008.92257142°E, +476.05m\n    test 822 Issue80: 48.77692147°N, 008.92257868°E, +476.09m\n    test 823 Issue80: 48°46′36.915133″N, 008°55′21.285094″E, +476.10m  FAILED, KNOWN, expected 48°46′36.915134″N, 008°55′21.285094″E, +476.10\n    test 824 Issue80: 0.804  FAILED, KNOWN, expected 0.01\n    test 825 Issue80: [4160476.944064, 653192.600457, 4774604.455385]\n    test 826 Issue80: [4160476.415504, 653193.057171, 4774604.903316]\n    test 827 Issue80: [4160476.467901, 653193.103647, 4774604.868888]\n    test 828 Issue80: 48°46′36.915133″N, 008°55′21.285094″E, +476.10m\n\n    test 829 Issue80: 48.77692032°N, 008.92257804°E, +476.05m\n    test 830 Issue80: 48.77691971°N, 008.92257856°E, +476.06m\n    test 831 Issue80: 48°46′36.9315″N, 008°55′21.3089″E, +476.10m  FAILED, KNOWN, expected 48°46′36.9131″N, 008°55′21.28095″E, +476.05m\n    test 832 Issue80: 0.804  FAILED, KNOWN, expected 0.01\n    test 833 Issue80: [4160476.492633, 653193.021888, 4774604.78885]\n    test 834 Issue80: [4160476.54503, 653193.068365, 4774604.754422]\n    test 835 Issue80: [4160476.016469, 653193.525079, 4774605.202353]\n    test 836 Issue80: 48°46′36.9315″N, 008°55′21.3089″E, +476.10m\n\n    test 837 ITRF96@1997xNAD83: TRFXform(epoch=1997.0, name='ITRF96@1997xNAD83')\n    test 838 ITRF96@1997xNAD83: name='ITRF96@1997xNAD83', tx=0.991, ty=-0.19072, tz=-0.5129, s1=1.0, rx=1.2503e-07, ry=4.6785e-08, rz=5.6529e-08, s=0.0, sx=0.02579, sy=0.00965, sz=0.01166\n    test 839 ITRF96@1997xNAD83: name='ITRF96@1997xNAD83@2007', tx=0.991, ty=-0.19072, tz=-0.5129, s1=1.0, rx=1.2761e-07, ry=1.0797e-08, rz=5.4997e-08, s=0.0, sx=0.026322, sy=0.002227, sz=0.011344\n    test 840 ITRF96@1997xNAD83: rx=-2.5792e-10, ry=3.5988e-09, rz=1.532e-10\n\n    testTrf(pygeodesy.ellipsoidalExact, 25.08.28)\n    test 841 convertRefFrame: 51.47787826°N, 000.00147125°W, -0.00m  FAILED, KNOWN, expected 51.47787826°N, 000.00147125°W\n    test 842 copy(<class 'type'>): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 843 RefFrame.copy(): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 844 toLatLon: 50.7978°N, 004.3592°E, +148.96m\n    test 845 convertRefFrame: [3980574.395, -102.214, 4966829.941]\n    test 846 Nil: True\n    test 847 copy(<class 'type'>): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 848 RefFrame.copy(): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 849 Nil: True\n    test 850 reframe: True\n    test 851 Roundtrip: True\n    test 852 reframe: True\n    test 853 copy(<class 'type'>): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 854 RefFrame.copy(): (<class 'pygeodesy.trf.RefFrame'>, True)\n\n    test 855 Geodetic: 23°40′12.44582″S, 133°53′07.84795″E, +603.34m\n    test 856 Cartesian: [-4052051.7614, 4212836.1945, -2545106.0147]\n    test 857 Geodetic: 23°40′12.44582″S, 133°53′07.84795″E, +603.34m\n    test 858 Cartesian: [-4052051.7614, 4212836.1945, -2545106.0147]\n    test 859 Roundtrip: 23°40′12.41482″S, 133°53′07.86712″E, +603.26m\n    test 860 GNSStrans: [3370658.18892, 711877.42369, 5349787.1243]\n    test 861 Cartesian: [-734972.563, 4893188.492, 4011982.811]\n\n    test 862 EUREF EX1: [4027894.0444, 307045.6209, 4919474.8613]\n    test 863 transform0: ITRF2005@2015xETRF2020-ITRF91@2015xETRF2020@2007 max 1.1642e-10, epoched 8.0\n    test 864 transform1: ITRF2005@2015xETRF2014-ITRF91@2015xETRF2014@2007 max 0.048666, epoched 8.0\n    test 865 transform2: ITRF2005@2015xETRF2000-ITRF91@2015xETRF2000@2007 max 0.097331, epoched 8.0\n    test 866 transform3: ITRF2005@2000xITRF2000+ITRF2000@1988xITRF91@2000@2007 max 0.146, epoched 19.0\n    test 867 transform4: -ITRF2020@2015xITRF2005+ITRF2020@2015xITRF91@2007 max 0.19466, epoched 8.0\n    test 868 transform5: -ITRF2014@2010xITRF2005+ITRF2014@2010xITRF91@2007 max 0.24333, epoched 3.0\n    test 869 transform6: -ITRF2008@2005xITRF2005+ITRF2008@2000xITRF91@2005@2007 max 0.29199, epoched 7.0\n    test 870 transform7: ITRF2000@1988xITRF91+ITRF2005@2000xITRF2000@1988@2007 max 0.34066, epoched 31.0\n    test 871 transform8: ITRF2014@2010xITRF91-ITRF2014@2020xGDA2020@2010+ITRF2005@2020xGDA2020@2010@2007 max 0.98111, epoched 23.0\n    test 872 transform9: ITRF2008@2000xITRF91-ITRF2008@1994xGDA94@2000+ITRF2005@1994xGDA94@2000@2007 max 0.35972, epoched 19.0\n    test 873 transform10: ITRF2008@2000xITRF91-ITRF2008@1997xNAD83@2000+ITRF2005@1997xNAD83@2000@2007 max 0.40805, epoched 13.0\n    test 874 EUREF EX2: [4027894.0060, 307045.6000, 4919474.9100]\n    test 875 transform0: ITRF91@2015xETRF2020-ITRF2005@2015xETRF2020@2007 max 0.048666, epoched 8.0\n    test 876 transform1: ITRF91@2015xETRF2014-ITRF2005@2015xETRF2014@2007 max 2.3283e-10, epoched 8.0\n    test 877 transform2: ITRF91@2015xETRF2000-ITRF2005@2015xETRF2000@2007 max 0.048666, epoched 8.0\n    test 878 transform3: -ITRF2005@2000xITRF2000-ITRF2000@1988xITRF91@2000@2007 max 0.097331, epoched 19.0\n    test 879 EUREF EX4: [4027894.3559, 307045.2508, 4919474.6447]\n    test 880 transform0: -ITRF2000@2015xETRF2000@2012 max 4.5169e-08, epoched 3.0\n    test 881 transform1: -ITRF2000@1997xITRF97@2015-ITRF97@2015xETRF2000@2012 max 0.35826, epoched 21.0\n    test 882 transform2: -ITRF2000@1997xITRF96@2015-ITRF96@2015xETRF2000@2012 max 0.7048, epoched 21.0\n    test 883 transform3: -ITRF2000@1988xITRF93@2015-ITRF93@2015xETRF2000@2012 max 1.054, epoched 30.0\n    test 884 transform4: -ITRF2000@1988xITRF92@2015-ITRF92@2015xETRF2000@2012 max 1.4023, epoched 30.0\n    test 885 transform5: -ITRF2000@1988xITRF91@2015-ITRF91@2015xETRF2000@2012 max 1.7514, epoched 30.0\n    test 886 transform6: -ITRF2000@1988xITRF90@2015-ITRF90@2015xETRF2000@2012 max 2.1088, epoched 30.0\n    test 887 transform7: -ITRF2000@1988xITRF89@2015-ITRF89@2015xETRF2000@2012 max 2.4877, epoched 30.0\n    test 888 transform8: -ITRF2000@1988xITRF88@2015-ITRF88@2015xETRF2000@2012 max 2.8343, epoched 30.0\n    test 889 EUREF EX5: [4027893.6458, 307045.9470, 4919475.1937]  FAILED, KNOWN, expected [4027894.3662, 307045.2530, 4919474.6263]\n    test 890 transform0: ITRF2014@2015xETRF2000@2012 max 4.5635e-08, epoched 3.0\n    test 891 transform1: ITRF2014@2010xITRF2008@2015+ITRF2008@2015xETRF2000@2012 max 0.36023, epoched 8.0\n    test 892 transform2: ITRF2014@2010xITRF97@2015+ITRF97@2015xETRF2000@2012 max 0.72047, epoched 8.0\n    test 893 transform3: ITRF2014@2010xITRF93@2015+ITRF93@2015xETRF2000@2012 max 1.0807, epoched 8.0\n    test 894 transform4: ITRF2014@2010xITRF92@2015+ITRF92@2015xETRF2000@2012 max 1.4409, epoched 8.0\n    test 895 transform5: ITRF2014@2010xITRF91@2015+ITRF91@2015xETRF2000@2012 max 1.8012, epoched 8.0\n    test 896 transform6: ITRF2014@2010xITRF90@2015+ITRF90@2015xETRF2000@2012 max 2.1614, epoched 8.0\n    test 897 transform7: ITRF2014@2010xITRF89@2015+ITRF89@2015xETRF2000@2012 max 2.5216, epoched 8.0\n    test 898 transform8: ITRF2014@2010xITRF88@2015+ITRF88@2015xETRF2000@2012 max 2.8819, epoched 8.0\n\n    test 899 Case 1A: [4027893.9619, 307045.5481, 4919474.9553]\n    test 900 Case 1B: [4027894.0054, 307045.5938, 4919474.9083]\n    test 901 Case 2A: [4027893.9639, 307045.545, 4919474.9573]\n    test 902 Case 2B: [4027894.0033, 307045.5889, 4919474.9041]\n\n    test 903 TypeError: type(reframe) ('ITRF2000'): not a RefFrame\n    test 904 TRFError: epoch (1899): below 1900.0 limit\n    test 905 TypeError: type(reframe2) ('ITRF2000'): not a RefFrame\n    test 906 TRFError: no conversion: LatLon(00°00′00.0″N, 000°00′00.0″E).reframe MISSING\n    test 907 TypeError: type(reframe2) ('ITRF2000'): not a RefFrame\n    test 908 TypeError: type(reframe) ('ITRF2000'): not a RefFrame\n\n    test 909 ETRF89@1989: [4160476.944000, 653192.600000, 4774604.455000]\n    test 910 ITRF2014@2018.8: [4160476.415, 653193.057, 4774604.903]  FAILED, KNOWN, expected [4160476.485, 653193.021, 4774604.78]\n    test 911 TransformXform: -ITRF2014@2010xITRF89-ITRF89@1989xETRF89@2010@2018.8\n    test 912 Delta (m): [-0.06956, 0.035714, 0.122931]  FAILED, KNOWN, expected [0.01, 0.01, 0.01]\n    test 913 Error (m): 0.145692  FAILED, KNOWN, expected 0.01\n    test 914 Epoch range: 29.800  FAILED, KNOWN, expected 14.0\n    test 915 ETRF89@1989: [4160476.467836, 653193.103190, 4774604.868503]  FAILED, KNOWN, expected [4160476.944000, 653192.600000, 4774604.455000]\n    test 916 TransformXform: ITRF2014@2010xITRF89+ITRF89@1989xETRF89@2010@1989\n\n    test 917 inverse: -ITRF2014@2010xITRF89-ITRF89@1989xETRF89@2010@1989\n    test 918 inverse: ITRF2014@2010xITRF89+ITRF89@1989xETRF89@2010@1989\n    test 919 inverse: name='ITRF2014@2010xITRF89+ITRF89@1989xETRF89@2010@1989', tx=0.0283, ty=0.046, tz=-0.0615, s1=1.0, rx=0.0, ry=0.0, rz=-7.757e-10, s=0.00567, sx=0.0, sy=0.0, sz=-0.00016\n\n    test 920 ETRF2000@2000: [4160476.952000, 653192.582000, 4774604.441000]\n    test 921 ITRF2014@2018.8: [4160476.471, 653193.059, 4774604.804]  FAILED, KNOWN, expected [4160476.485, 653193.021, 4774604.78]\n    test 922 TransformXform: -ITRF2014@2015xETRF2000@2018.8\n    test 923 Delta (m): [-0.014174, 0.037835, 0.023963]  FAILED, KNOWN, expected [0.01, 0.01, 0.01]\n    test 924 Error (m): 0.046975  FAILED, KNOWN, expected 0.01\n    test 925 Epoch range: 18.800  FAILED, KNOWN, expected 14.0\n    test 926 ETRF2000@2000: [4160476.681125, 653192.914350, 4774604.647835]  FAILED, KNOWN, expected [4160476.952000, 653192.582000, 4774604.441000]\n    test 927 TransformXform: ITRF2014@2015xETRF2000@2000\n\n    test 928 inverse: -ITRF2014@2015xETRF2000@2000\n    test 929 inverse: ITRF2014@2015xETRF2000@2000\n    test 930 inverse: name='ITRF2014@2015xETRF2000@2000', tx=0.0537, ty=0.0512, tz=-0.0551, s1=1.0, rx=4.3197e-09, ry=2.6131e-08, rz=-4.2237e-08, s=0.00102, sx=0.000891, sy=0.00539, sz=-0.008712\n\n    test 931 ITRF2008@2005: [4160476.674000, 653192.806000, 4774604.648000]\n    test 932 ITRF2014@2018.8: [4160476.671, 653192.804, 4774604.645]  FAILED, KNOWN, expected [4160476.485, 653193.021, 4774604.78]\n    test 933 TransformXform: -ITRF2014@2010xITRF2008@2018.8\n    test 934 Delta (m): [0.186385, -0.217059, -0.134685]  FAILED, KNOWN, expected [0.01, 0.01, 0.01]\n    test 935 Error (m): 0.316218  FAILED, KNOWN, expected 0.01\n    test 936 Epoch range: 13.800  FAILED, KNOWN, expected 14.0\n    test 937 ITRF2008@2005: [4160476.672278, 653192.805730, 4774604.647403]  FAILED, KNOWN, expected [4160476.674000, 653192.806000, 4774604.648000]\n    test 938 TransformXform: ITRF2014@2010xITRF2008@2005\n\n    test 939 inverse: -ITRF2014@2010xITRF2008@2005\n    test 940 inverse: ITRF2014@2010xITRF2008@2005\n    test 941 inverse: name='ITRF2014@2010xITRF2008@2005', tx=0.0016, ty=0.0019, tz=0.0029, s1=1.0, rx=0.0, ry=0.0, rz=0.0, s=-0.00017, sx=0.0, sy=0.0, sz=0.0\n\n    test 942 toRefFrame1: ITRF2020@2015 2024.31 [0.0031474, 0.00210534, -0.00125667]\n    test 943 toRefFrame2: ITRF2014@2010 2024.32 [0.0031474, 0.00210634, -0.00125867]\n    test 944 transform0: -ITRF2020@2015xITRF2014@2010\n    test 945 transform0X: TRFXform(epoch=2010.0, name='-ITRF2020@2015xITRF2014@2010')\n    test 946 toRefFrame3: ITRF2020@2015 2010 [0.0031474, 0.00067434, 0.00160533]\n    test 947 transform2x: (4160476.488147, 653193.021674, 4774604.781605)\n    test 948 transform2v: (0.000, 0.000, 0.000)  FAILED, KNOWN, expected (0.004, 0.003, 0.004)\n\n    test 949 transform0: name='ITRF2020@2015xETRF2020@2010', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=8.75573508e-09, ry=5.28398431e-08, rz=-7.66635874e-08, s=0.0, sx=0.001806, sy=0.010899, sz=-0.015813\n    test 950 transform2c: (4027893.9585, 307045.5550, 4919474.9620)  FAILED, KNOWN, expected (4027893.9585, 307045.5550, 4919474.9619)\n    test 951     Error2c: (-0.000016463, 0.0000336, 0.000055143) max 5.514e-05, epoched 5.0\n    test 952 transform2v: (-0.00011, 0.00010, 0.00023)  FAILED, KNOWN, expected (0.00011, 0.00011, 0.00024)\n    test 953     Error2v: (-0.000220786, -0.000005544, -0.000006899) max 0.0002208\n    test 954 transform0v: (0.00009, 0.00052, -0.00075)  FAILED, KNOWN, expected (0.00011, 0.00011, 0.00024)\n    test 955     Error0v: (-0.000024, 0.000409, -0.000993) max 0.000993\n\n    test 956 transform0: name='-ITRF2014@2015xETRF2020@2010', tx=-0.0014, ty=-0.0004, tz=0.0004, s1=1.0, rx=-8.75573508e-09, ry=-5.28398431e-08, rz=7.66635874e-08, s=-0.00042, sx=-0.001806, sy=-0.010899, sz=0.015813\n    test 957 transform2c: (4027893.6719, 307045.9063, 4919475.1704)  FAILED, KNOWN, expected (4027893.6719, 307045.9064, 4919475.1704)\n    test 958     Error2c: (0.000024786, -0.000062539, -0.000021305) max 6.254e-05, epoched 5.0\n    test 959 transform2v: (-0.01339, 0.01677, 0.01045)  FAILED, KNOWN, expected (-0.01361, 0.01676, 0.01044)\n    test 960     Error2v: (0.000220784, 0.000005543, 0.000006898) max 0.0002208\n    test 961 transform0v: (-0.00009, -0.00052, 0.00075)  FAILED, KNOWN, expected (-0.01361, 0.01676, 0.01044)\n    test 962     Error0v: (0.013524, -0.017279, -0.009687) max 0.01728\n\n    test 963 transform0: name='ITRF2014@2015xETRF2014@2010', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=8.65392421e-09, ry=5.40615736e-08, rz=-7.83943722e-08, s=0.0, sx=0.001785, sy=0.011151, sz=-0.01617\n    test 964 transform2c: (4027893.9619, 307045.5481, 4919474.9553)  FAILED, KNOWN, expected (4027893.9620, 307045.5480, 4919474.9553)\n    test 965     Error2c: (-0.00007476, 0.000063039, 0.000002882) max 7.476e-05, epoched 5.0\n    test 966 transform2v: (0.00020, -0.00030, 0.00020)\n    test 967     Error2v: (0.000000724, -0.000003666, -0.000002721) max 3.666e-06\n    test 968 transform0v: (0.00009, 0.00053, -0.00077)  FAILED, KNOWN, expected (0.00020, -0.00030, 0.00020)\n    test 969     Error0v: (-0.000115, 0.000831, -0.00097) max 0.00097\n\n    test 970 transform0: name='-ITRF2000@2015xETRF2014@2010', tx=0.0007, ty=0.0012, tz=-0.0261, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 971 transform2c: (4027893.6812, 307045.9082, 4919475.1547)\n    test 972     Error2c: (0.000013934, -0.000012081, 0.000026423) max 2.642e-05, epoched 5.0\n    test 973 transform2v: (-0.01351, 0.01686, 0.00854)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 974     Error2v: (-0.000440726, -0.000036335, -0.00053728) max 0.0005373\n    test 975 transform0v: (-0.00008, -0.00053, 0.00077)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 976     Error0v: (0.012985, -0.017431, -0.00831) max 0.01743\n\n    test 977 transform0: name='ITRF2000@2015xETRF2000@2010', tx=0.054, ty=0.051, tz=-0.048, s1=1.0, rx=8.24668072e-09, ry=4.98873278e-08, rz=-8.06342114e-08, s=0.0, sx=0.001701, sy=0.01029, sz=-0.016632\n    test 978 transform2c: (4027894.0054, 307045.5938, 4919474.9083)  FAILED, KNOWN, expected (4027894.0053, 307045.5939, 4919474.9083)\n    test 979     Error2c: (0.000077874, -0.000055372, -0.000008743) max 7.787e-05, epoched 5.0\n    test 980 transform2v: (-0.00020, -0.00050, -0.00037)  FAILED, KNOWN, expected (-0.00020, -0.00050, -0.00036)\n    test 981     Error2v: (-0.000004389, 0.000002124, -0.000008036) max 8.036e-06\n    test 982 transform0v: (0.00008, 0.00049, -0.00079)  FAILED, KNOWN, expected (-0.00020, -0.00050, -0.00036)\n    test 983     Error0v: (0.000281, 0.00099, -0.000432) max 0.00099\n\n    test 984 transform0/: name='-ITRF2000@2015xETRF2014@2010', tx=0.0007, ty=0.0012, tz=-0.0261, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 985 transform2c: (4027893.6812, 307045.9082, 4919475.1547)\n    test 986     Error2c: (0.000013934, -0.000012081, 0.000026423) max 2.642e-05, epoched 5.0\n    test 987 transform2v: (-0.01351, 0.01686, 0.00854)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 988     Error2v: (-0.000440726, -0.000036335, -0.00053728) max 0.0005373\n\n    test 989 transform1/: name='-ITRF2000@1997xITRF97@2015-ITRF97@2015xETRF2014@2010', tx=0.00673, ty=-0.00033, tz=-0.05913, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=8.09154034e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01669\n    test 990 transform2c: (4027893.6865, 307045.9168, 4919475.1217)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 991     Error2c: (0.005269863, 0.008612365, -0.033003577) max 0.033, epoched 23.0\n    test 992 transform2v: (-0.01357, 0.01710, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 993     Error2v: (-0.00050027, 0.000204776, -0.00179728) max 0.001797\n\n    test 994 transform2/: name='-ITRF2000@1997xITRF96@2015-ITRF96@2015xETRF2014@2010', tx=0.00673, ty=-0.00033, tz=-0.05913, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 995 transform2c: (4027893.6872, 307045.9067, 4919475.1217)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 996     Error2c: (0.006043935, -0.001542081, -0.033003577) max 0.033, epoched 23.0\n    test 997 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 998     Error2v: (-0.000440726, -0.000576335, -0.00179728) max 0.001797\n\n    test 999 transform3/: name='-ITRF2000@1988xITRF93@2015-ITRF93@2015xETRF2014@2010', tx=0.0007, ty=0.0012, tz=-0.0261, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 1000 transform2c: (4027893.6812, 307045.9082, 4919475.1547)\n    test 1001     Error2c: (0.000013934, -0.000012081, 0.000026423) max 2.642e-05, epoched 32.0\n    test 1002 transform2v: (-0.01351, 0.01686, 0.00854)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 1003     Error2v: (-0.000440726, -0.000036335, -0.00053728) max 0.0005373\n\n    test 1004 transform4/: name='-ITRF2000@1988xITRF92@2015-ITRF92@2015xETRF2014@2010', tx=0.01393, ty=0.00147, tz=-0.06633, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 1005 transform2c: (4027893.6944, 307045.9085, 4919475.1145)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 1006     Error2c: (0.013243935, 0.000257919, -0.040203577) max 0.0402, epoched 32.0\n    test 1007 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 1008     Error2v: (-0.000440726, -0.000576335, -0.00179728) max 0.001797\n\n    test 1009 transform5/: name='-ITRF2000@1988xITRF91@2015-ITRF91@2015xETRF2014@2010', tx=0.0007, ty=0.0012, tz=-0.0261, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 1010 transform2c: (4027893.6812, 307045.9082, 4919475.1547)\n    test 1011     Error2c: (0.000013934, -0.000012081, 0.000026423) max 2.642e-05, epoched 32.0\n    test 1012 transform2v: (-0.01351, 0.01686, 0.00854)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 1013     Error2v: (-0.000440726, -0.000036335, -0.00053728) max 0.0005373\n\n    test 1014 transform6/: name='-ITRF2000@1988xITRF90@2015-ITRF90@2015xETRF2014@2010', tx=0.02293, ty=0.01047, tz=-0.08613, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 1015 transform2c: (4027893.7034, 307045.9175, 4919475.0947)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 1016     Error2c: (0.022243935, 0.009257919, -0.060003577) max 0.06, epoched 32.0\n    test 1017 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 1018     Error2v: (-0.000440726, -0.000576335, -0.00179728) max 0.001797\n\n    test 1019 transform7/: name='-ITRF2000@1988xITRF89@2015-ITRF89@2015xETRF2014@2010', tx=0.02743, ty=0.03207, tz=-0.12033, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 1020 transform2c: (4027893.7079, 307045.9391, 4919475.0605)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 1021     Error2c: (0.026743934, 0.030857919, -0.094203577) max 0.0942, epoched 32.0\n    test 1022 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 1023     Error2v: (-0.000440726, -0.000576335, -0.00179728) max 0.001797\n\n    test 1024 transform8/: name='-ITRF2000@1988xITRF88@2015-ITRF88@2015xETRF2014@2010', tx=0.02293, ty=-0.00033, tz=-0.14193, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 1025 transform2c: (4027893.7034, 307045.9067, 4919475.0389)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 1026     Error2c: (0.022243935, -0.001542081, -0.115803577) max 0.1158, epoched 32.0\n    test 1027 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 1028     Error2v: (-0.000440725, -0.000576335, -0.00179728) max 0.001797\n\n    test 1029 transform0: name='ITRF2020@2015xETRF2020@2020', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=1.29251327e-08, ry=7.80016732e-08, rz=-1.13170058e-07, s=0.0, sx=0.002666, sy=0.016089, sz=-0.023343\n    test 1030 transform2c: (4027893.9574, 307045.5561, 4919474.9643)\n    test 1031     Error2c: (-0.000024276, -0.000021815, -0.000013824) max 2.428e-05, epoched 5.0\n    test 1032 transform2v: (0.01350, -0.01676, -0.01001)\n\n    test 1033 transform0: name='-ITRF2014@2015xETRF2020@2020', tx=-0.0014, ty=-0.0014, tz=0.0024, s1=1.0, rx=-1.29251327e-08, ry=-7.80016732e-08, rz=1.13170058e-07, s=-0.00042, sx=-0.002666, sy=-0.016089, sz=0.023343\n    test 1034 transform2c: (4027893.5358, 307046.0740, 4919475.2748)\n    test 1035     Error2c: (0.000032643, -0.000007101, 0.000047684) max 4.768e-05, epoched 5.0\n    test 1036 transform2v: (-0.01350, 0.01666, 0.01021)\n\n    test 1037 transform0: name='ITRF2014@2015xETRF2014@2020', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=1.27748405e-08, ry=7.980518e-08, rz=-1.15725026e-07, s=0.0, sx=0.002635, sy=0.016461, sz=-0.02387\n    test 1038 transform2c: (4027893.9639, 307045.5450, 4919474.9573)\n    test 1039     Error2c: (0.000032525, 0.000026405, -0.000024305) max 3.253e-05, epoched 5.0\n    test 1040 transform2v: (0.01381, -0.01706, -0.01024)\n\n    test 1041 transform0: name='-ITRF2000@2015xETRF2014@2020', tx=0.0017, ty=0.0022, tz=-0.0451, s1=1.0, rx=-1.27748405e-08, ry=-7.980518e-08, rz=1.15725026e-07, s=0.00322, sx=-0.002635, sy=-0.016461, sz=0.02387\n    test 1042 transform2c: (4027893.5504, 307046.0772, 4919475.2456)  FAILED, KNOWN, expected (4027893.5505, 307046.0772, 4919475.2456)\n    test 1043     Error2c: (-0.000062619, -0.000037673, -0.000034946) max 6.262e-05, epoched 5.0\n    test 1044 transform2v: (-0.01371, 0.01716, 0.00834)\n\n    test 1045 transform0: name='ITRF2000@2015xETRF2000@2020', tx=0.054, ty=0.051, tz=-0.048, s1=1.0, rx=1.21736715e-08, ry=7.36431982e-08, rz=-1.19031455e-07, s=0.0, sx=0.002511, sy=0.01519, sz=-0.024552\n    test 1046 transform2c: (4027894.0033, 307045.5889, 4919474.9047)\n    test 1047     Error2c: (0.000034031, -0.000034106, 0.000010915) max 3.411e-05, epoched 5.0\n    test 1048 transform2v: (0.01287, -0.01740, -0.00945)\n\n    test 1049 transform0*: name='-ITRF2014@2010xITRF89-ITRF89@1989xETRF89@2010@2018.8', tx=-0.03128, ty=-0.0311, tz=0.15984, s1=0.999999991, rx=-1.58921925e-08, ry=-8.23504519e-08, rz=1.00463091e-07, s=-0.009246, sx=-0.003278, sy=-0.016986, sz=0.020722\n    test 1050 transform2c: (4160476.4154, 653193.0567, 4774604.9029)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 1051     Error2c: (-0.069560351, 0.035713888, 0.122930501) max 0.1229, epoched 29.8\n    test 1052 transform2v: (-0.01148, 0.01996, 0.01845)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 1053     Error2v: (-0.015479395, 0.016963959, 0.014448874) max 0.01696\n\n    test 1054 transform0*: name='-ITRF2014@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 1055 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 1056     Error2c: (-0.014174475, 0.037834952, 0.023962618) max 0.03783, epoched 3.8\n    test 1057 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 1058     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 1059 transform1*: name='-ITRF2014@2010xITRF2008@2015-ITRF2008@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 1060 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 1061     Error2c: (-0.014174475, 0.037834952, 0.023962618) max 0.03783, epoched 8.8\n    test 1062 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 1063     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 1064 transform2*: name='-ITRF2014@2010xITRF97@2015-ITRF97@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 1065 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 1066     Error2c: (-0.014174475, 0.037834952, 0.023962618) max 0.03783, epoched 8.8\n    test 1067 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 1068     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 1069 transform3*: name='-ITRF2014@2010xITRF93@2015-ITRF93@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 1070 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 1071     Error2c: (-0.014174475, 0.037834952, 0.023962618) max 0.03783, epoched 8.8\n    test 1072 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 1073     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 1074 transform4*: name='-ITRF2014@2010xITRF92@2015-ITRF92@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 1075 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 1076     Error2c: (-0.014174475, 0.037834952, 0.023962618) max 0.03783, epoched 8.8\n    test 1077 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 1078     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 1079 transform5*: name='-ITRF2014@2010xITRF91@2015-ITRF91@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 1080 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 1081     Error2c: (-0.014174475, 0.037834952, 0.023962618) max 0.03783, epoched 8.8\n    test 1082 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 1083     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 1084 transform6*: name='-ITRF2014@2010xITRF90@2015-ITRF90@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 1085 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 1086     Error2c: (-0.014174475, 0.037834952, 0.023962618) max 0.03783, epoched 8.8\n    test 1087 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 1088     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 1089 transform7*: name='-ITRF2014@2010xITRF89@2015-ITRF89@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 1090 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 1091     Error2c: (-0.014174475, 0.037834952, 0.023962618) max 0.03783, epoched 8.8\n    test 1092 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 1093     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 1094 transform8*: name='-ITRF2014@2010xITRF88@2015-ITRF88@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 1095 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 1096     Error2c: (-0.014174475, 0.037834952, 0.023962618) max 0.03783, epoched 8.8\n    test 1097 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 1098     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 1099 toTransform: name='-ITRF2014@2010xITRF88@2015-ITRF88@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=1.0, rx=-1.1702e-08, ry=-7.0792e-08, rz=1.1442e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.023602\n    test 1100 toTransform: name='-ITRF2014@2010xITRF88@2015-ITRF88@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=1.0, rx=-1.1702e-08, ry=-7.0792e-08, rz=1.1442e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.023602\n\n    test 1101 Issue80: 48.77691577°N, 008.92257142°E, +476.05m\n    test 1102 Issue80: 48.77692147°N, 008.92257868°E, +476.09m\n    test 1103 Issue80: 48°46′36.915133″N, 008°55′21.285094″E, +476.10m  FAILED, KNOWN, expected 48°46′36.915134″N, 008°55′21.285094″E, +476.10\n    test 1104 Issue80: 0.804  FAILED, KNOWN, expected 0.01\n    test 1105 Issue80: [4160476.944064, 653192.600457, 4774604.455385]\n    test 1106 Issue80: [4160476.415504, 653193.057171, 4774604.903316]\n    test 1107 Issue80: [4160476.467901, 653193.103647, 4774604.868888]\n    test 1108 Issue80: 48°46′36.915133″N, 008°55′21.285094″E, +476.10m\n\n    test 1109 Issue80: 48.77692032°N, 008.92257804°E, +476.05m\n    test 1110 Issue80: 48.77691971°N, 008.92257856°E, +476.06m\n    test 1111 Issue80: 48°46′36.9315″N, 008°55′21.3089″E, +476.10m  FAILED, KNOWN, expected 48°46′36.9131″N, 008°55′21.28095″E, +476.05m\n    test 1112 Issue80: 0.804  FAILED, KNOWN, expected 0.01\n    test 1113 Issue80: [4160476.492633, 653193.021888, 4774604.78885]\n    test 1114 Issue80: [4160476.54503, 653193.068365, 4774604.754422]\n    test 1115 Issue80: [4160476.016469, 653193.525079, 4774605.202353]\n    test 1116 Issue80: 48°46′36.9315″N, 008°55′21.3089″E, +476.10m\n\n    test 1117 ITRF96@1997xNAD83: TRFXform(epoch=1997.0, name='ITRF96@1997xNAD83')\n    test 1118 ITRF96@1997xNAD83: name='ITRF96@1997xNAD83', tx=0.991, ty=-0.19072, tz=-0.5129, s1=1.0, rx=1.2503e-07, ry=4.6785e-08, rz=5.6529e-08, s=0.0, sx=0.02579, sy=0.00965, sz=0.01166\n    test 1119 ITRF96@1997xNAD83: name='ITRF96@1997xNAD83@2007', tx=0.991, ty=-0.19072, tz=-0.5129, s1=1.0, rx=1.2761e-07, ry=1.0797e-08, rz=5.4997e-08, s=0.0, sx=0.026322, sy=0.002227, sz=0.011344\n    test 1120 ITRF96@1997xNAD83: rx=-2.5792e-10, ry=3.5988e-09, rz=1.532e-10\n\n    test 1121 TRFError: day (2), month (1) or year (None): int() argument must be a string, a bytes-like object or a real number, not 'NoneType'\n    test 1122 toStr: name='GDA94', epoch=1994, datum=Datums.GRS80\n    test 1123 str: name='GDA94', epoch=1994, datum=Datums.GRS80\n    test 1124 toStr2: RefFrame(name='GDA94', epoch=1994, datum=Datums.GRS80)\n    test 1125 repr: RefFrame(name='GDA94', epoch=1994, datum=Datums.GRS80)\n\n    test 1126 epoch: 2020.003\n    test 1127 y-m-d: (2020, 1, 1)\n    test 1128 epoch: 2020.251\n    test 1129 y-m-d: (2020, 4, 1)\n    test 1130 epoch: 2020.500\n    test 1131 y-m-d: (2020, 7, 1)\n    test 1132 epoch: 2020.751\n    test 1133 y-m-d: (2020, 10, 1)\n    test 1134 epoch: 2021.000\n    test 1135 y-m-d: (2021, 1, 1)  FAILED, KNOWN, expected (2020, 12, 31)\n\n    test 1136 Epoch (2020).std_repr: False\n    test 1137 Epoch (2020.001): (2020, 1, 1)\n    test 1138 Epoch (2020.086): (2020, 2, 1)\n    test 1139 Epoch (2020.165): (2020, 3, 1)\n    test 1140 Epoch (2020.25): (2020, 4, 1)\n    test 1141 Epoch (2020.332): (2020, 5, 1)\n    test 1142 Epoch (2020.416): (2020, 6, 1)\n    test 1143 Epoch (2020.498): (2020, 7, 1)\n    test 1144 Epoch (2020.583): (2020, 8, 1)\n    test 1145 Epoch (2020.668): (2020, 9, 1)\n    test 1146 Epoch (2020.75): (2020, 10, 1)\n    test 1147 Epoch (2020.834): (2020, 11, 1)\n    test 1148 Epoch (2020.916): (2020, 12, 1)\n    test 1149 Epoch (2021.001): (2021, 1, 1)  FAILED, KNOWN, expected (2020, 13, 1)\n\n    294 of 1149 testTrf.py tests (25.6%) FAILED, incl. 286 KNOWN plus 8 DeprecationWarnings (pygeodesy 26.3.26 Python 3.11.9 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 1.24.2 scipy 1.10.1 Math 2 macOS 26.3.1 isLazy 0 -W  default) 466.887 ms\nrunning /usr/local/bin/p....n3.11 -W default ~/PyGeodesy/test/testTriaxials.py\n./test/testTriaxials.py:134: DeprecationWarning: method L{area_p<pygeodesy.triaxials.triaxial5.Conformal.area_p>} has been DEPRECATED on 2026-02-15, use method L{areaKT<Triaxial_.areaKT>}.\n  p = J.area_p()\n./test/testTriaxials.py:192: DeprecationWarning: method L{area_p<pygeodesy.triaxials.triaxial5.ConformalSphere.area_p>} has been DEPRECATED on 2026-02-15, use method L{areaKT<Triaxial_.areaKT>}.\n  p = J.area_p()\n\n    testing testTriaxials.py 26.03.12\n\n    testHartzell(pygeodesy.triaxials.triaxial5, 26.03.09)\n    test 1 hartzell4: (884268.349816, 5592134.174908, 2927668.068131, 12669388.912805)\n    test 2 hartzell4: 0\n    test 3 hartzell4: (3642143.609933, 3678204.437754, 3714265.265575, 11296443.179278)\n    test 4 hartzell4: 0\n\n    test 5 hartzell4: (888679.181482, 5594339.590741, 2931196.612187, 12663325.092381)\n    test 6 hartzell4: 0\n    test 7 hartzell4: (3642304.092727, 3678366.509487, 3714428.926247, 11296162.453809)\n    test 8 hartzell4: 0\n\n    test 9 hartzell4: (884080.396945, 5592040.198472, 2927517.711001, 12669647.302276)\n    test 10 hartzell4: 0\n    test 11 hartzell4: (3642031.283571, 3678090.99925, 3714150.714929, 11296639.666827)\n    test 12 hartzell4: 0\n\n    test 13 hartzell: 30°38′27.119″N, 060°44′36.777″E, +142549.69m\n    test 14 hartzell: 30.640866, 060.743549, +142549.69m\n    test 15 hartzell: [2807429.59, 4862610.688, 3220373.735]\n    test 16 hartzell: [2684238.298, 4791786.806, 3231700.636]\n    test 17 hartzell: 142549.69438493284  FAILED, KNOWN, expected 142549.6943849337\n\n    test 18 hartzell: 30°00′00.0″N, 060°00′00.0″E, +100000.00m\n    test 19 hartzell: 30.0, 060.0, +100000.00m\n    test 20 hartzell: [2807429.59, 4862610.688, 3220373.735]\n    test 21 hartzell: [2764128.32, 4787610.688, 3170373.735]\n    test 22 hartzell: 100000.00000000023  FAILED, KNOWN, expected 100000.0\n\n    testConformal(pygeodesy.triaxials.triaxial5, 26.03.09)\n    test 23 Conformal: Conformal(name='Test', a=6378172, b=6378102, c=6356752, e2ab=0.00002195, e2bc=0.006683577, e2ac=0.00670538, xyQ2=xyQ2(x=10026968.259439, y=27085126.866409), volume=1083207266220584468480, area=510065604942135.875, R2=6371007.076110449)\n    test 24 xR: 1.5720928043230937  FAILED, KNOWN, expected 1.572092804\n    test 25 yR: 4.246581015231323  FAILED, KNOWN, expected 4.246581015\n    test 26 xyR2.toDegrees: (90.074283, 243.31117)\n    test 27 xyR2.toDegrees: (90.074283, 243.311169)  FAILED, KNOWN, expected ('90°04′27.42″N', '243°18′40.21″E')\n    test 28 areaRG: 510065604942135\n    test 29 area_p: 510065609807745\n    test 30 error: 9.54e-09\n    test 31 volume: 1.083207e+21\n\n    test 32 Conformal: Conformal(name='Itokawa25134', a=267.5, b=147, c=104.5, e2ab=0.6980138, e2bc=0.494643436, e2ac=0.847389292, xyQ2=xyQ2(x=460.426025, y=209.544083), volume=17212581.945495993, area=359464.659686278, R2=169.130980982)\n    test 33 xyR2: (0.0, 0.61539)\n    test 34 toDegrees: (0.0, 35.259243)\n    test 35 toDegrees: (0.0, 35.259242)  FAILED, KNOWN, expected ('00°00′00.0″N', '035°15′33.27″E')\n    test 36 xyQR2: (3.13215, 1.42547)\n    test 37 toDegrees: (179.458966, 81.673412)  FAILED, KNOWN, expected (179.4589659, 81.673412)\n    test 38 toDegrees: (179.458967, 81.673411)  FAILED, KNOWN, expected ('179°27′32.28″N', '081°40′24.28″E')\n\n    testConformalSphere(pygeodesy.triaxials.triaxial5, 26.03.09)\n    test 39 ConformalSphere: ConformalSphere(name='Test', a=6378172, ab=1, bc=2, e2ab=0, e2bc=0, e2ac=0, xyQ2=xyQ2(x=11059220.127879, y=12941050.138298), volume=1086869218894412120064, area=511213503913540.8125, R2=6378172)\n    test 40 xR: 1.7339168852579347  FAILED, KNOWN, expected 1.73391688526\n    test 41 yR: 2.028959102748815  FAILED, KNOWN, expected 2.02895910275\n    test 42 xyR2.toDegrees: (99.34612, 116.250793)\n    test 43 xyR2.toDegrees: (99.346119, 116.250794)  FAILED, KNOWN, expected ('99°20′46.03″N', '116°15′02.86″E')\n    test 44 areax: 511213503913540\n    test 45 area_p: 511213503913539  FAILED, KNOWN, expected 511213503913540\n    test 46 volume: 1.086869e+21\n\n    test 47 ConformalSphere: ConformalSphere(name='Itokawa25134', a=267.5, ab=147, bc=104.5, e2ab=0, e2bc=0, e2ac=0, xyQ2=xyQ2(x=517.119524, y=478.404858), volume=80178876.856908351, area=899202.357273738, R2=267.5)\n    test 48 xyR2: (0.0, 0.818354)\n    test 49 toDegrees: (0.0, 46.888217)\n    test 50 toDegrees: (0.0, 46.888217)  FAILED, KNOWN, expected ('00°00′00.0″N', '046°53′17.58″E')\n    test 51 xyQR2: (1.933157, 1.788429)\n    test 52 toDegrees: (110.761743, 102.469455)  FAILED, KNOWN, expected (179.4589659, 81.673412)\n    test 53 toDegrees: (110.761742, 102.469456)  FAILED, KNOWN, expected ('110°45′42.27″N', '102°28′10.04″E')\n\n    testTriaxial(pygeodesy.triaxials.triaxial5, 26.03.09)\n    test 54 Triaxial: Triaxial(name='Test', a=6378388, b=6378318, c=6356911.9461, e2ab=0.000021949, e2bc=0.006700868, e2ac=0.00672267, volume=1083307891664673177600, area=510097198412933.0625, R2=6371204.383189477)\n    test 55 Triaxial: Triaxial_(name='Un', a=6356911.9461, b=6378388, c=6378318, e2ab=-0.00676817, e2bc=0.000021949, e2ac=-0.006746073, volume=1083307891664673308672, area=510097198412933.125, R2=6371204.383189478)\n\n    test 56 forwardBetaOmega: (4234607.381429, 3551286.590486, 3176009.080037)\n    test 57 forwardBetaOmega: (4233813.533025, 3550620.827453, 3175409.655093)\n    test 58 length: 1196.973671\n\n    test 59 forwardCartesian: (4233813.533151, 3550620.827558, 3175409.654809, 1196.973671)\n    test 60 forwardCartesian: (4239665.951888, 3553574.566129, 3164352.410834, 12911.309173)\n\n    test 61 reverseCartesian: (4234607.381429, 3551286.590486, 3176009.080037)\n    test 62 reverseCartesian: (4248255.186992, 3560773.833183, 3170763.143924)  FAILED, KNOWN, expected (4234607.381429, 3551286.590486, 3176009.080037)\n\n    test 63 forwardBetaOmega_: (4233813.533025, 3550620.827453, 3175409.655093)\n\n    test 64 reverseLatLon: (30.051881, 39.984967, 0.0)\n    test 65 forwardLatLon: (4233813.533025, 3550620.827453, 3175409.655093)\n\n    test 66 reverseBetaOmega: (0.520687, 0.698121, 12892.55755)\n    test 67 reverseBetaOmega: (0.521162, 0.698437, 12918.032538)\n    test 68 toDegrees: (29.860398, 40.017494, 12918.032538)\n    test 69 toDegrees: (29.860397, 40.017494, 12918.032538)  FAILED, KNOWN, expected ('29°51′37.43″', '40°01′02.98″', 12918.032538)\n\n    test 70 height4: (3909251.554667, 3909165.750567, 3170432.501602, 999.999996)\n\n    test 71 height4: (1.206423, 1.61288, 0.433517, 3.593736)\n    test 72 height4: 52\n    test 73 height4: 0\n    test 74 height4: (-1.206423, -1.61288, -0.433517, 3.593736)\n    test 75 height4: (0.0, 1.746769, 0.487031, 3.375213)\n    test 76 height4: (1.563196, 0.0, 0.853517, 2.190477)\n    test 77 height4: (1.297504, 1.803267, 0.0, 2.306326)\n\n    test 78 height4(-2, -4, -3): (-1.206423, -1.61288, -0.433517, 3.593736) 52\n    test 79 signBit(-2, -4, -3): (True, True, True)\n\n    test 80 height4(-2, -4, 0): (-1.297504, -1.803267, 0.0, 2.306326) 52\n    test 81 signBit(-2, -4, 0): (True, True, False)\n\n    test 82 height4(-2, -4, 3): (-1.206423, -1.61288, 0.433517, 3.593736) 52\n    test 83 signBit(-2, -4, 3): (True, True, False)\n\n    test 84 height4(-2, 0, -3): (-1.563196, 0.0, -0.853517, 2.190477) 53\n    test 85 signBit(-2, 0, -3): (True, False, True)\n\n    test 86 height4(-2, 0, 0): (-3.0, 0.0, 0.0, -1.0) None\n    test 87 signBit(-2, 0, 0): (True, False, False)\n\n    test 88 height4(-2, 0, 3): (-1.563196, 0.0, 0.853517, 2.190477) 53\n    test 89 signBit(-2, 0, 3): (True, False, False)\n\n    test 90 height4(-2, 4, -3): (-1.206423, 1.61288, -0.433517, 3.593736) 52\n    test 91 signBit(-2, 4, -3): (True, False, True)\n\n    test 92 height4(-2, 4, 0): (-1.297504, 1.803267, 0.0, 2.306326) 52\n    test 93 signBit(-2, 4, 0): (True, False, False)\n\n    test 94 height4(-2, 4, 3): (-1.206423, 1.61288, 0.433517, 3.593736) 52\n    test 95 signBit(-2, 4, 3): (True, False, False)\n\n    test 96 height4(0, -4, -3): (0.0, -1.746769, -0.487031, 3.375213) 54\n    test 97 signBit(0, -4, -3): (False, True, True)\n\n    test 98 height4(0, -4, 0): (0.0, -2.0, 0.0, 2.0) None\n    test 99 signBit(0, -4, 0): (False, True, False)\n\n    test 100 height4(0, -4, 3): (0.0, -1.746769, 0.487031, 3.375213) 54\n    test 101 signBit(0, -4, 3): (False, True, False)\n\n    test 102 height4(0, 0, -3): (0.0, 0.0, -1.0, 2.0) None\n    test 103 signBit(0, 0, -3): (False, False, True)\n\n    test 104 height4(0, 0, 0): (0.0, 0.0, 0.0, -1.0) None\n    test 105 signBit(0, 0, 0): (False, False, False)\n\n    test 106 height4(0, 0, 3): (0.0, 0.0, 1.0, 2.0) None\n    test 107 signBit(0, 0, 3): (False, False, False)\n\n    test 108 height4(0, 4, -3): (0.0, 1.746769, -0.487031, 3.375213) 54\n    test 109 signBit(0, 4, -3): (False, False, True)\n\n    test 110 height4(0, 4, 0): (0.0, 2.0, 0.0, 2.0) None\n    test 111 signBit(0, 4, 0): (False, False, False)\n\n    test 112 height4(0, 4, 3): (0.0, 1.746769, 0.487031, 3.375213) 54\n    test 113 signBit(0, 4, 3): (False, False, False)\n\n    test 114 height4(2, -4, -3): (1.206423, -1.61288, -0.433517, 3.593736) 52\n    test 115 signBit(2, -4, -3): (False, True, True)\n\n    test 116 height4(2, -4, 0): (1.297504, -1.803267, 0.0, 2.306326) 52\n    test 117 signBit(2, -4, 0): (False, True, False)\n\n    test 118 height4(2, -4, 3): (1.206423, -1.61288, 0.433517, 3.593736) 52\n    test 119 signBit(2, -4, 3): (False, True, False)\n\n    test 120 height4(2, 0, -3): (1.563196, 0.0, -0.853517, 2.190477) 53\n    test 121 signBit(2, 0, -3): (False, False, True)\n\n    test 122 height4(2, 0, 0): (3.0, 0.0, 0.0, -1.0) None\n    test 123 signBit(2, 0, 0): (False, False, False)\n\n    test 124 height4(2, 0, 3): (1.563196, 0.0, 0.853517, 2.190477) 53\n    test 125 signBit(2, 0, 3): (False, False, False)\n\n    test 126 height4(2, 4, -3): (1.206423, 1.61288, -0.433517, 3.593736) 52\n    test 127 signBit(2, 4, -3): (False, False, True)\n\n    test 128 height4(2, 4, 0): (1.297504, 1.803267, 0.0, 2.306326) 52\n    test 129 signBit(2, 4, 0): (False, False, False)\n\n    test 130 height4(2, 4, 3): (1.206423, 1.61288, 0.433517, 3.593736) 52\n    test 131 signBit(2, 4, 3): (False, False, False)\n\n    test 132 _plumbTo5: 2.356, 1.116, 0.268, 6.503, 54\n    test 133 _plumbTo5: 2.356, 0.268, 1.116, 6.503, 54\n    test 134 _plumbTo5: 1.116, 2.356, 0.268, 6.503, 54\n    test 135 _plumbTo5: 1.116, 0.268, 2.356, 6.503, 54\n    test 136 _plumbTo5: 0.268, 2.356, 1.116, 6.503, 54\n    test 137 _plumbTo5: 0.268, 1.116, 2.356, 6.503, 54\n\n    test 138 _plumbTo5(-9300557.963570276, -11660481.511793813, 0.0): (-3962700.829072, -4987439.729515, 0.0, 8545303.120214) 53\n    test 139 _plumbTo5(0.0, -12673220.90213298, 4063222.7994714356): (0.0, -6073846.031207, 1947342.96726, 6930273.887183) 53\n    test 140 _plumbTo5(2499951.171555953, 6362115.170256343, -7034566.006072541): (1621709.788784, 4136852.378785, -4574066.473867, 3431786.759912) 54\n    test 141 _plumbTo5(-9399021.583039021, -7763804.562755707, -6951119.751015274): (-4256878.854533, -3529258.643752, -3159791.771735, 7664670.823131) 53\n    test 142 _plumbTo5(-9612922.39422538, 3333663.5145574105, 5962187.189486663): (-5182331.629107, 1802765.616547, 3224175.948651, 5428672.808065) 53\n    test 143 _plumbTo5(-11328035.20390406, -9256612.246624056, -7692781.497645869): (-4355036.26798, -3573470.200045, -2969720.914727, 10160123.963414) 53\n    test 144 _plumbTo5(1598946.114177574, -11973388.958217159, 0.0): (841594.384072, -6322243.162372, 0.0, 5701669.093257) 55\n    test 145 _plumbTo5(-10308543.102586422, 1905777.409769761, 6374385.685515664): (-5341300.900271, 990674.649223, 3313543.184377, 5905900.86063) 52\n    test 146 _plumbTo5(-8735659.812590662, -6834366.166941474, 0.0): (-5007671.762691, -3929037.172672, 0.0, 4726397.30293) 49\n    test 147 _plumbTo5(2573537.1013443363, 5389514.603678346, 3732045.3303140495): (2328470.382191, 4879418.28281, 3378814.925965, 667103.943892) 56\n    test 148 _plumbTo5(1431210.08717349, 1543852.068510235, -9327538.892237142): (952507.562384, 1029789.273711, -6221664.3004, 3184316.825389) 54\n    test 149 _plumbTo5(-6918305.550287351, 5935533.8579224525, 0.0): (-4827349.027207, 4150037.850017, 0.0, 2749562.724445) 53\n    test 150 _plumbTo5(-9690082.180926248, -12628809.340338562, -9286452.325150812): (-3340011.67621, -4372204.152622, -3215004.809673, 12056425.654973) 54\n    test 151 _plumbTo5(6115158.880607812, -9076497.651064131, -8024493.905200128): (2863993.849608, -4266165.0229, -3771654.917276, 7196944.734371) 53\n    test 152 _plumbTo5(1724581.719029579, -6998172.662048493, -7855478.093763296): (1028985.282031, -4186867.746033, -4699735.122818, 4283223.48619) 54\n    test 153 _plumbTo5(2415660.719960912, 3370437.398145044, 4064858.8972798586): (2653346.350446, 3699619.79338, 4461873.310774, -567869.661801) 57\n    test 154 _plumbTo5(4680172.356713349, 3934108.248885277, -12216049.126176806): (2177456.956147, 1836953.284537, -5703973.450785, 7284831.701745) 53\n    test 155 _plumbTo5(-11233201.5712916, 6234031.774633325, 2200909.912500357): (-5478411.907088, 3050833.099543, 1077077.210703, 6671833.168324) 51\n    test 156 _plumbTo5(-11715241.42141346, -10821620.410300551, 0.0): (-4668119.327083, -4329550.547309, 0.0, 9581696.139952) 53\n    test 157 _plumbTo5(-10345293.423252314, 0.0, -10870372.84072365): (-4381253.482469, 0.0, -4621478.658329, 8638197.203006) 53\n    test 158 _plumbTo5(-7557919.112373196, -11824465.154778786, -8112109.980877586): (-2962336.280569, -4653637.304907, -3192560.055644, 9835757.473797) 53\n    test 159 _plumbTo5(1838805.8848315026, -6725371.874146875, -11338156.124049723): (878072.411204, -3222840.9156, -5433254.316061, 6932430.835206) 53\n    test 160 _plumbTo5(4963022.036653666, -7903436.513628428, 4517677.539411903): (3044634.97533, -4861105.025942, 2778629.195588, 3995031.782124) 54\n    test 161 _plumbTo5(-8457240.198937353, 4465676.5419738265, 3454646.1876322697): (-5288403.367483, 2799487.292288, 2165664.890427, 3805152.59414) 52\n    test 162 _plumbTo5(0.0, -11746093.313145366, -7753017.004196427): (0.0, -5323340.222224, -3513632.219973, 7695722.228332) 53\n    test 163 _plumbTo5(-11330258.40928789, -8840032.800537905, 3934021.6803214545): (-4833061.479002, -3785417.937653, 1684578.516197, 8533621.383191) 52\n    test 164 _plumbTo5(896051.3721805144, -12424974.283212215, -11664464.01489593): (333488.669933, -4643875.404912, -4359572.240515, 10687535.748865) 55\n    test 165 _plumbTo5(-11487978.414727544, 4802532.579191126, -7527288.768773187): (-5018370.895409, 2105895.452992, -3300651.805118, 8184872.220563) 52\n    test 166 _plumbTo5(-9546307.350822354, 4184538.924485122, 3361649.2321092547): (-5541804.863402, 2436070.68603, 1956999.371538, 4589795.483837) 52\n    test 167 _plumbTo5(3304719.1006247634, 6368069.492745702, 5147486.989470732): (2382176.324136, 4598995.150383, 3717472.520953, 2454720.062131) 49\n    test 168 _plumbTo5(-11018841.687343763, -10458281.327678155, 1715534.1896014542): (-4580406.544453, -4364532.4739, 715931.106356, 8921122.603472) 52\n    test 169 _plumbTo5(3689058.5582935237, 5794731.588921194, -12171672.035017816): (1677443.495773, 2644603.971725, -5554850.5793, 7599488.492078) 54\n    test 170 _plumbTo5(-10633023.927465683, 5600503.720165909, -10521933.62404787): (-4230098.528732, 2237084.904542, -4202862.773683, 9604202.007609) 53\n    test 171 _plumbTo5(1581203.1457984832, 972784.2195132434, -11582061.407866646): (857161.119854, 528969.075136, -6297893.034445, 5351975.722701) 54\n    test 172 _plumbTo5(2258768.8877436225, -10545885.529490544, -11638568.100146323): (904335.151273, -4239307.382901, -4678490.005432, 9489473.417954) 54\n    test 173 _plumbTo5(5449452.583609067, 4374805.24215859, 0.0): (4962521.845408, 3986293.169835, 0.0, 622931.115089) 55\n    test 174 _plumbTo5(0.0, -12044606.76119266, -11107727.393653879): (0.0, -4688878.45938, -4324100.12185, 10006214.959356) 53\n    test 175 _plumbTo5(1391615.2762485908, 4643471.617773707, -8524542.497803029): (902989.115857, 3020177.55943, -5544436.689757, 3428537.552897) 55\n    test 176 _plumbTo5(4553332.79516834, 0.0, -11948204.910893947): (2263714.441299, 0.0, -5960198.641149, 6410816.741483) 46\n    test 177 _plumbTo5(-6991240.9522123765, 3573758.163707412, -11499098.86986609): (-3191114.176552, 1637205.196693, -5267888.77311, 7551104.566556) 54\n    test 178 _plumbTo5(4346071.768838822, -12676369.788059339, -8625714.865661299): (1732485.105983, -5073723.993416, -3452401.680407, 9560032.826084) 54\n    test 179 _plumbTo5(-11796704.490959167, 4693605.909583221, -7755512.678621262): (-5039630.336279, 2012890.588977, -3325972.201965, 8512644.395034) 52\n    test 180 _plumbTo5(-9857935.929440495, -7083469.29429921, -7597293.530919445): (-4375144.938277, -3155581.107273, -3384441.033989, 7952196.477921) 53\n    test 181 _plumbTo5(-7849265.43363731, -12296239.547632324, -11695203.666485839): (-2666327.692743, -4195550.606205, -3990415.860312, 12322652.315549) 54\n    test 182 _plumbTo5(5782789.149559475, 4230398.681706039, -10100876.341130221): (2968611.562144, 2178815.561377, -5202278.543157, 6010395.093456) 54\n    test 183 _plumbTo5(-6721627.728424339, 3921334.050215278, 4341917.669793846): (-4797940.587727, 2804468.92205, 3105243.492973, 2545058.535557) 54\n    test 184 _plumbTo5(3103613.487675563, 3353974.9701309437, 6140525.238593257): (2582394.320743, 2793864.508925, 5115044.92371, 1279454.190248) 56\n    test 185 _plumbTo5(4871989.8030514065, 1511221.8994557532, -11374991.639695557): (2484500.466358, 773203.931791, -5819856.095636, 6091330.459456) 55\n    test 186 _plumbTo5(3983476.357183724, -11896358.651329251, -8874776.080755137): (1646939.314496, -4937934.337559, -3683690.128022, 8990353.032611) 53\n    test 187 _plumbTo5(-12232241.75844025, -8896123.163864251, -12061095.74698321): (-4016778.735414, -2934526.024306, -3978483.447105, 12975480.52009) 51\n    test 188 _plumbTo5(6051890.922149057, -9138866.342165468, -7899662.153607158): (2846953.972979, -4314501.247901, -3729423.981743, 7137016.591055) 53\n    test 189 _plumbTo5(0.0, -12018001.797308534, -9669847.362812674): (0.0, -4969484.39998, -3998463.12413, 9046888.784727) 53\n    test 190 _plumbTo5(1104159.7450067785, -8933322.846628752, -8232288.85554826): (575505.363003, -4671223.175101, -4304608.312774, 5819935.009237) 55\n    test 191 _plumbTo5(-12285698.649100646, -6468839.019335532, 1111825.1234923722): (-5606534.170441, -2962859.976193, 509232.485363, 7567446.403608) 51\n    test 192 _plumbTo5(6164586.315447328, -6570993.547312566, -7009338.728096933): (3433836.285126, -3671148.330678, -3916009.463584, 5043290.983795) 54\n    test 193 _plumbTo5(5810856.18558647, 0.0, 5443736.935053998): (4643539.338101, 0.0, 4356032.71558, 1595534.108531) 53\n    test 194 _plumbTo5(3045291.2748601795, -12047166.523940891, 4145312.0264436): (1477707.357284, -5866107.404541, 2018447.381737, 6722080.361991) 53\n    test 195 _plumbTo5(-12310686.861604113, 4490997.749010969, 4706333.140706941): (-5620100.827678, 2057758.070922, 2156398.283032, 7562193.106949) 51\n    test 196 _plumbTo5(0.0, -10417005.95004532, 1096043.9416744518): (0.0, -6343372.094827, 667423.529425, 4096121.121766) 55\n    test 197 _plumbTo5(-9328658.157408016, -8727445.91510853, -7164361.624406569): (-4047787.679128, -3801383.053863, -3120517.243101, 8276857.235783) 53\n    test 198 _plumbTo5(4004540.7175387996, -11570302.120248156, -9648174.197345335): (1632110.000481, -4734504.672948, -3947929.189058, 9211370.549612) 54\n    test 199 _plumbTo5(4951059.590957711, -10579905.153037313, 0.0): (2695071.612036, -5776786.518702, 0.0, 5306545.993067) 54\n    test 200 _plumbTo5(-9817215.707186649, 1404424.6605718988, -7635711.877316512): (-4986241.366763, 715685.986293, -3891068.931154, 6151018.194862) 52\n    test 201 _plumbTo5(-9226958.012842577, -11904773.189821461, 1232606.3717949751): (-3879997.259142, -5025614.86624, 520339.719152, 8741860.918991) 53\n    test 202 _plumbTo5(-9294215.903196817, -9475838.607438505, -7258008.370200141): (-3904243.12217, -3996117.310094, -3060782.896861, 8757616.899067) 53\n    test 203 _plumbTo5(1813071.5166954175, -11870699.784259336, 0.0): (959984.408777, -6305237.986816, 0.0, 5630463.802609) 55\n    test 204 _plumbTo5(-8070414.213571079, 2121751.216468508, -11940859.681137668): (-3520659.244601, 929119.789927, -5228865.699716, 8195944.314347) 53\n    test 205 _plumbTo5(1983182.8093028092, -7201637.66773865, 3707586.824689597): (1514301.762836, -5507719.018525, 2835499.643779, 1962076.929429) 55\n    test 206 _plumbTo5(5748153.737118241, -6882237.916418789, 2587629.85032861): (3918240.471327, -4701352.809943, 1767633.784285, 2962640.031508) 54\n    test 207 _plumbTo5(3599567.4561901274, 3568156.378792255, 5087296.333534707): (3192628.239273, 3167175.349451, 4515586.787491, 808230.856373) 55\n    test 208 _plumbTo5(6332182.791791897, 650768.1906614412, 5229220.500981262): (4889934.279374, 503316.759349, 4044360.595285, 1872355.65326) 53\n    test 209 _plumbTo5(-7686777.522571826, 5938745.815625527, 3226655.8410251727): (-4775676.603719, 3699069.150747, 2009771.869735, 3869297.96249) 52\n    test 210 _plumbTo5(-11334586.650609732, 3226213.631890666, -9803475.289560119): (-4699110.593827, 1342813.41715, -4080346.4914, 8962753.042975) 53\n    test 211 _plumbTo5(1209250.1021613986, -7927451.295950009, -9884218.82879363): (603947.984131, -3972655.39577, -4953189.093461, 6349949.253097) 54\n    test 212 _plumbTo5(-9468560.73748405, -7719648.903467059, 5285089.176401713): (-4521609.402029, -3699428.974742, 2532704.373933, 6943350.624269) 53\n    test 213 _plumbTo5(-11609395.379492946, -12479358.161318503, -8004658.667638679): (-3916521.929023, -4228849.152327, -2712479.469611, 12460271.325154) 53\n    test 214 _plumbTo5(-7482168.509654696, -10663969.206387935, -6775795.621459396): (-3238104.211183, -4632777.701726, -2943591.132153, 8311025.447159) 54\n    test 215 _plumbTo5(-12051586.67131921, -7937133.918586954, 6171101.6767646205): (-4880071.659805, -3226907.639097, 2508879.900608, 9328918.881743) 50\n    test 216 _plumbTo5(2693704.1644080514, 5886511.878573126, -7713610.831206213): (1701853.791801, 3728264.716598, -4885431.688261, 3693290.570535) 54\n    test 217 _plumbTo5(4191881.2603775556, 5756491.153644105, 3844435.861708639): (3297512.922422, 4534806.33283, 3028527.346869, 1719917.216012) 55\n    test 218 _plumbTo5(-7620050.690786623, 6233697.178296718, -11376300.748524757): (-3218491.145035, 2643199.220824, -4823694.2317, 8671911.795086) 53\n    test 219 _plumbTo5(-10402923.998065077, -9278259.065432366, -10991960.007401204): (-3722932.992823, -3334840.833801, -3950732.720985, 11380921.834595) 52\n    test 220 _plumbTo5(1664289.6338429423, -10314363.339718409, -11403226.716545999): (683673.150532, -4253884.829219, -4702896.915317, 9087652.497142) 54\n    test 221 _plumbTo5(-7218119.32792659, 1021119.5917858669, 2969411.4999289806): (-5831133.043799, 825974.955578, 2401921.639022, 1511243.568599) 53\n    test 222 _plumbTo5(2362590.260898539, -11179920.812016979, 4029496.2855799953): (1239737.875911, -5885318.850543, 2121179.956116, 5738926.608889) 55\n    test 223 _plumbTo5(-6425902.437780579, 0.0, -7204483.762955237): (-4233887.154159, 0.0, -4757752.759748, 3285030.229037) 53\n    test 224 _plumbTo5(-7027549.803612396, 1892547.8059282005, 2643227.812884008): (-5771696.602951, 1556211.005249, 2173474.378512, 1382374.0428) 53\n    test 225 _plumbTo5(2231918.1899190005, 1142355.6533181877, -8953604.648739627): (1527716.907525, 783588.596899, -6141602.328426, 2920953.662136) 55\n    test 226 _plumbTo5(-6712867.954197352, -10099305.754589057, -6972710.889221444): (-3049882.60141, -4605349.612886, -3179563.898031, 7615049.56507) 53\n    test 227 _plumbTo5(-11544512.912700232, 5172690.252464141, -6575481.046907441): (-5146737.608908, 2314695.737583, -2942386.38478, 7892973.983796) 52\n    test 228 _plumbTo5(-7231418.854726524, -6931901.764431111, 5928608.696365689): (-3949987.12744, -3797969.170954, 3248235.531947, 5270078.555566) 53\n    test 229 _plumbTo5(2641171.1753598885, -8793189.37091239, -6725045.423073929): (1475827.679651, -4928056.107131, -3768948.901374, 5003577.445727) 54\n    test 230 _plumbTo5(0.0, -9577834.41768268, 888799.0753286064): (0.0, -6351100.567623, 589361.88746, 3240597.779516) 55\n    test 231 _plumbTo5(4002145.9929036815, 2688128.1429674844, 4846498.54240657): (3728737.130986, 2505637.898739, 4517475.240442, 465092.924316) 56\n    test 232 _plumbTo5(3585868.545969172, 1409502.4515369476, 2541452.690286451): (4950202.413631, 1940818.862431, 3499490.281395, -1749725.70905) 53\n    test 233 _plumbTo5(-8384452.668034479, 1341358.3925355002, 5593378.076872706): (-5243384.864758, 840963.227664, 3506733.764323, 3804048.731667) 52\n    test 234 _plumbTo5(-11127395.128320502, -7531662.078340402, -11376309.34465787): (-4015505.65089, -2729654.017282, -4122988.207916, 11236054.506381) 53\n    test 235 _plumbTo5(3643497.5895474995, -7089488.769009512, -10173411.609088594): (1792017.513542, -3498846.225523, -5020786.16202, 6547537.044166) 54\n    test 236 _plumbTo5(5284647.583569344, 3370368.361303387, 2734738.991192815): (4918192.413272, 3138118.630801, 2546286.185455, 473015.633089) 50\n    test 237 _plumbTo5(2165182.6086123274, -11519500.837459859, -9758941.874604877): (901938.174806, -4817510.368655, -4081184.069338, 8874085.667761) 54\n    test 238 _plumbTo5(-12600826.927904561, -9290879.419657387, -12241523.357668605): (-4027695.375886, -2983357.849127, -3930768.977006, 13503779.150543) 50\n    test 239 _plumbTo5(5612095.245443665, -10677594.811703626, -11820492.387762226): (2110828.183871, -4032984.994641, -4464602.574506, 10512793.425261) 54\n    test 240 _plumbTo5(4915145.849724457, -10885520.301474974, -6803086.4809331875): (2272648.496157, -5051467.360276, -3156961.182649, 7369748.684664) 54\n    test 241 _plumbTo5(-6728975.719938926, 3345234.81829062, -12683648.048361583): (-2900434.964377, 1447455.164183, -5488040.230257, 8368755.212366) 54\n    test 242 _plumbTo5(4910584.480358762, -12653948.216023926, 3085021.47222811): (2242049.885102, -5798659.883821, 1413691.381391, 7543831.869565) 54\n    test 243 _plumbTo5(-8976906.995057743, -9619108.708378227, 5341574.496066876): (-4017806.465846, -4321285.931711, 2399618.549335, 7830370.93785) 53\n    test 244 _plumbTo5(-8463830.60810678, -7621108.048355309, -12579467.635422356): (-3168636.328414, -2865193.748246, -4729249.094881, 10596401.956511) 53\n    test 245 _plumbTo5(1096467.0995059202, -11549861.822415227, 0.0): (600978.394585, -6349819.993803, 0.0, 5223594.937973) 54\n    test 246 _plumbTo5(-10948589.651644278, 4096868.3982894733, -9856144.814623823): (-4550546.687626, 1709491.36288, -4112599.499603, 8923162.873349) 52\n    test 247 _plumbTo5(4619417.249218382, 5237425.25954452, 3282666.6246967996): (3810828.926746, 4325750.377186, 2711244.825867, 1345915.687753) 55\n    test 248 _plumbTo5(-10352564.08620045, 2632384.685482822, -12615030.119492823): (-3979375.679008, 1016055.563474, -4869120.711095, 10160175.336446) 53\n    test 249 _plumbTo5(-6374498.1621567765, 5714309.31746465, -12658681.207655726): (-2650451.17611, 2385319.632571, -5284035.74732, 8907081.112355) 54\n    test 250 _plumbTo5(-9547671.32285483, 5249547.247491227, -10732297.281332353): (-3967173.537695, 2189855.357686, -4476934.281938, 8923745.63986) 53\n    test 251 _plumbTo5(-11972987.62530657, -12507480.894571241, 1919466.9395276478): (-4366969.326822, -4581483.837835, 703089.976087, 11052262.963641) 53\n    test 252 _plumbTo5(1652783.0323908583, 2840836.833053788, 0.0): (3220011.208786, 5499562.319795, 0.0, -3086263.982672) 52\n    test 253 _plumbTo5(6115935.680307476, 5225325.066884209, 4422997.138710556): (4238219.612231, 3628533.76556, 3071366.203986, 2811132.561087) 49\n    test 254 _plumbTo5(4786881.182332999, 5664841.95346354, -8266982.897206812): (2740994.147522, 3253066.066256, -4747315.184507, 4731847.15488) 54\n    test 255 _plumbTo5(-6496617.750344593, 5554441.1092062695, 1471685.403438614): (-4764933.099421, 4081208.542633, 1081336.529752, 2306841.60025) 54\n    test 256 _plumbTo5(-12176778.11646319, -9682834.344611239, 4347916.439438347): (-4790470.31358, -3824924.736874, 1717496.315524, 9787326.394866) 52\n    test 257 _plumbTo5(-9365644.216718012, 4733451.038753265, -11073116.001735907): (-3901241.006007, 1979474.085869, -4630588.989784, 8885395.084405) 52\n    test 258 _plumbTo5(4450309.889617256, 645982.6533403223, 3807808.3053228823): (4809066.396238, 697679.685853, 4112548.773739, -473545.7394) 56\n    test 259 _plumbTo5(-10897654.174125204, 3427500.0593593866, 4452955.484309489): (-5650155.448166, 1782842.575288, 2316217.322187, 5899728.052404) 52\n    test 260 _plumbTo5(-10300722.762891443, 4646709.354523863, 0.0): (-5795024.708596, 2621875.532137, 0.0, 4939763.857186) 52\n    test 261 _plumbTo5(-6407802.803643308, -11779837.799284488, 6016502.484862392): (-2770429.304206, -5112551.894435, 2611181.883109, 8323424.518318) 49\n    test 262 _plumbTo5(-9312220.916544143, 0.0, 2930677.098050242): (-6064270.366404, 0.0, 1912975.713433, 3403659.631104) 50\n    test 263 _plumbTo5(4223812.965309883, 4281649.191668366, 2485617.640313916): (4133584.137102, 4190786.705375, 2432868.281192, 138490.89408) 58\n    test 264 _plumbTo5(2997827.5860604886, 2363371.7748296508, 3693859.292852399): (3599054.380706, 2833535.475957, 4428726.434305, -1059508.036801) 55\n    test 265 _plumbTo5(-12671667.096779136, -8014332.614031527, -12514806.489256885): (-4121763.16835, -2618732.065372, -4089228.926937, 13160688.421384) 52\n    test 266 _plumbTo5(843842.4429774315, 5991376.498376857, 5431653.017581945): (660983.193097, 4699901.98138, 4260809.849692, 1752774.274433) 55\n    test 267 _plumbTo5(6048815.4644721355, -6531440.6165109, 2680947.655849851): (4138881.420978, -4478622.839951, 1838318.875985, 2927786.21742) 54\n    test 268 _plumbTo5(4879174.123259943, 6178552.909205879, -9312714.500258692): (2543785.883293, 3231623.200863, -4870860.478112, 5819664.946658) 54\n    test 269 _plumbTo5(5004240.984960998, 5008152.657427486, -7621306.588594056): (3059892.632886, 3070304.181009, -4672287.837379, 4028952.571922) 54\n    test 270 _plumbTo5(1028902.8176837482, 1463749.009664159, -11899885.427998018): (543636.004436, 775853.372204, -6307414.004629, 5655477.071767) 55\n    test 271 _plumbTo5(-7824340.925363246, 0.0, 6317410.509504235): (-4947745.089333, 0.0, 4004698.984614, 3690994.202275) 50\n    test 272 _plumbTo5(2676863.5805767775, -11327824.769266207, 4593035.990907264): (1359964.170989, -5774128.632267, 2341181.627765, 6135846.552017) 55\n    test 273 _plumbTo5(2249619.3764058473, 0.0, 2000528.005466659): (4772982.699562, 0.0, 4212824.696466, -3355833.593856) 53\n    test 274 _plumbTo5(4956193.912239468, -6662625.684179544, -12509472.725925844): (2097393.079693, -2830507.469295, -5314377.642959, 8638707.395552) 54\n    test 275 _plumbTo5(-7710884.382492995, -8115183.079708684, -10228275.549669709): (-3231300.879861, -3414058.684292, -4302982.275302, 8790696.179798) 51\n    test 276 _plumbTo5(-11910621.648411252, 1849226.3777106311, -11164643.952148305): (-4606783.054862, 718203.441796, -4336071.648631, 10062537.989322) 53\n    test 277 _plumbTo5(-8963429.03901859, -12098854.85488883, -12528055.925180355): (-2906246.229705, -3940759.795174, -4080495.9656, 13213827.903356) 53\n    test 278 _plumbTo5(927303.6460785953, -8533293.54233783, 4443040.206372032): (610541.887073, -5631299.878717, 2932033.79078, 3287102.922578) 54\n    test 279 _plumbTo5(-6431337.940867692, -7913672.569001737, 5828173.463683117): (-3481478.58698, -4297161.58015, 3164693.971997, 5373541.192067) 54\n    test 280 _plumbTo5(-8448735.745283416, 5129243.357844096, -10571551.163388707): (-3710087.82749, 2260926.228049, -4659791.368339, 8101291.941429) 51\n    test 281 _plumbTo5(5393086.038674854, -8494853.68575136, 5585824.584238706): (2979754.3005, -4707685.779418, 3095527.08197, 5135016.307574) 54\n    test 282 _plumbTo5(-11205486.606434723, -7011822.282899194, -10835770.19866757): (-4165498.890505, -2617612.609663, -4045090.906694, 10723051.381917) 52\n    test 283 _plumbTo5(6275896.587395679, -10723555.081638275, 3233841.235540427): (3107296.274643, -5327485.16049, 1606561.516206, 6465727.942069) 53\n    test 284 _plumbTo5(3125485.316489174, -10929776.597293055, -12044882.966157196): (1198721.510979, -4209356.554006, -4638751.976627, 10184657.115216) 54\n    test 285 _plumbTo5(1128407.9171078762, -11414403.065658463, 1389920.7991218064): (621055.484164, -6301329.382455, 767299.227734, 5175769.179769) 55\n    test 286 _plumbTo5(3289455.1444503507, -10532590.717592202, 768720.1252257226): (1891368.133389, -6073373.389023, 443260.456245, 4684569.400707) 54\n    test 287 _plumbTo5(-8273239.3690780625, 4551919.260081756, 2824563.0226685693): (-5337507.566666, 2943707.935669, 1826619.417213, 3492958.104434) 52\n    test 288 _plumbTo5(-12133632.704022642, 2746254.8093428193, 2446007.3482782515): (-6083621.960558, 1381562.116047, 1230502.798798, 6320005.336468) 51\n    test 289 _plumbTo5(4775429.171595646, -9671093.87977823, -12524798.659580927): (1835296.133104, -3732249.080536, -4833479.934748, 10152371.32696) 54\n    test 290 _plumbTo5(-10435782.82633078, -7925112.822431733, -8403700.54123353): (-4260067.658051, -3248090.663106, -3444194.209003, 9198407.317465) 53\n    test 291 _plumbTo5(3603584.0845118295, 0.0, -10120993.933385288): (2133439.195914, 0.0, -6008383.520808, 4367481.013023) 54\n    test 292 _plumbTo5(-9664916.035389349, -7917807.310617949, -12320730.836396314): (-3499114.577165, -2878933.301722, -4479784.042203, 11175321.271853) 52\n    test 293 _plumbTo5(-11223451.251595035, -11348169.077705335, -12213872.07898085): (-3546933.966741, -3602915.002067, -3877707.797474, 13726234.489077) 52\n    test 294 _plumbTo5(-6811282.166974648, -12177324.354896916, -8996003.148229187): (-2606422.576339, -4679225.458155, -3456732.925814, 10226722.1454) 54\n    test 295 _plumbTo5(-11154863.461440096, -8947080.852138057, -11618316.715300346): (-3846146.833057, -3098561.610353, -4023608.842631, 12054132.22703) 51\n    test 296 _plumbTo5(4191966.3726614984, 3123849.0923887882, 2947354.2394098826): (4448807.200943, 3313881.641178, 3126654.283481, -366371.514279) 46\n    test 297 _plumbTo5(5665049.081532614, 2566892.2880729376, -9480432.800548682): (3177104.472307, 1443841.706181, -5332562.213074, 4965474.941886) 54\n    test 298 _plumbTo5(5556124.743367095, 1168361.8576344524, 1187537.9875167399): (6091100.197387, 1280029.85706, 1301041.50474, -558168.009583) 54\n    test 299 _plumbTo5(2276563.482327411, -8689794.726123603, -7465168.684773928): (1239389.701005, -4745367.133163, -4076576.523879, 5302527.257983) 55\n    test 300 _plumbTo5(-8734090.01152988, 0.0, 4418867.843251729): (-5673436.483401, 0.0, 2877136.978074, 3427029.921067) 52\n    test 301 _plumbTo5(1444387.4150171918, 0.0, 4211625.268281281): (2073822.401778, 0.0, 6029360.501319, -1923629.324996) 55\n    test 302 _plumbTo5(-11133071.204268023, -11781972.996607397, -11485371.789095623): (-3559439.343785, -3784211.083498, -3688891.806325, 13494784.003409) 53\n    test 303 _plumbTo5(-9128602.027238317, -8530971.77034427, 3486461.3258541655): (-4473434.198708, -4194949.275765, 1714384.438693, 6603933.303668) 53\n    test 304 _plumbTo5(-9720915.901739083, 3730342.60333391, 4413725.624805318): (-5464855.737041, 2103296.034562, 2488587.166636, 4946462.04328) 52\n    test 305 _plumbTo5(-10972481.63377289, -7697329.818069239, 6184679.253598231): (-4724306.631505, -3326894.662448, 2673072.410756, 8394746.984105) 52\n    test 306 _plumbTo5(-12027956.281505307, 1110329.7659182232, -9924933.257068772): (-4889552.230375, 453174.480113, -4050749.766503, 9267939.207164) 52\n    test 307 _plumbTo5(-8103963.2829771275, -10799194.916861724, -11397381.355404545): (-2913442.831149, -3899190.416976, -4115115.734203, 11295262.601508) 54\n    test 308 _plumbTo5(937760.1549680583, 4827669.481438421, -8889403.069840351): (587287.716319, 3031022.799018, -5581111.835477, 3780947.119846) 55\n    test 309 _plumbTo5(-11922254.151162934, -11747879.35310438, -7441515.373637279): (-4135065.269048, -4092556.279272, -2592330.408245, 11948174.625401) 48\n    test 310 _plumbTo5(-7450856.414664825, -9366628.03196191, -11030656.150018612): (-2908303.9347, -3671136.457607, -4323274.43127, 9902644.941014) 50\n    test 311 _plumbTo5(1098222.4362153925, -8032723.312762036, 0.0): (862730.359678, -6319374.354403, 0.0, 1729456.900655) 55\n    test 312 _plumbTo5(1299127.4897925493, 2885681.3581270934, -12324231.3438349): (649043.363274, 1446551.021563, -6177894.257751, 6345956.592424) 53\n    test 313 _plumbTo5(4456791.842035057, -9415133.72987674, -12287162.106862785): (1757647.802402, -3728273.817222, -4865496.206044, 9731745.93566) 53\n    test 314 _plumbTo5(2071973.9900840144, -7049913.407619529, -7891732.311576463): (1222207.569923, -4170071.603383, -4667971.341485, 4405476.88435) 55\n    test 315 _plumbTo5(2046982.703788181, 6049444.90896574, 926986.7966164164): (2022381.277479, 5977223.284321, 915919.674686, 77095.229623) 59\n    test 316 _plumbTo5(5396414.831406125, -12570693.831675846, 764714.9246019324): (2503220.741109, -5852227.502514, 356005.267035, 7326350.076566) 54\n    test 317 _plumbTo5(-9197102.75829913, 4846690.558383889, 2564943.113154864): (-5460989.53354, 2885713.750285, 1527150.493499, 4345225.608819) 52\n    test 318 _plumbTo5(0.0, 2318329.077963764, 3188269.6439349214): (0.0, 3751090.547009, 5158737.156961, -2436297.938897) 51\n    test 319 _plumbTo5(-12684552.315130716, 5543633.716783456, -11039834.326458577): (-4551950.193988, 1997987.751458, -3978824.221966, 11338813.265417) 53\n    test 320 _plumbTo5(-6981850.679551049, -10229708.153014995, -12072336.553961737): (-2564251.063275, -3773153.649096, -4452732.082674, 10920652.669628) 54\n    test 321 _plumbTo5(4717153.364383534, -11550204.852326058, -9687614.149053277): (1897251.699922, -4664268.017528, -3912055.079591, 9419397.754364) 54\n    test 322 _plumbTo5(0.0, -9149649.80780371, -12025931.976038957): (0.0, -3862119.471301, -5076150.223256, 8732550.799781) 52\n    test 323 _plumbTo5(-10400971.886727747, -6619927.338470895, -9929357.98233453): (-4175137.323295, -2668094.583735, -4001874.608708, 9461134.03759) 53\n    test 324 _plumbTo5(-11028176.160065496, -9020134.774358388, -12389868.361876594): (-3710317.814977, -3048330.981378, -4187062.798472, 12509976.435296) 53\n    test 325 _plumbTo5(2160858.3727727593, -12142093.540891415, 1538265.3958220098): (1105327.992916, -6231419.001309, 789441.603717, 6050698.71728) 54\n    test 326 _plumbTo5(-11778932.210256143, 2715666.6502514402, 3389402.4416597723): (-5964418.038968, 1379692.296524, 1721964.639273, 6194655.062775) 51\n    test 327 _plumbTo5(6242300.4629256865, -11609606.987093499, -11621007.296069987): (2256327.514534, -4214473.248211, -4218552.76137, 11196978.007461) 54\n    test 328 _plumbTo5(5053610.033101153, 5726798.200078992, 1099811.8257685653): (4168403.736804, 4729243.125054, 908231.344581, 1347371.290878) 55\n    test 329 _plumbTo5(5294780.00028327, 6375398.744487379, 3043351.136814746): (3816120.677121, 4603600.762269, 2197554.80587, 2457859.417706) 51\n    test 330 _plumbTo5(2365954.408033079, 2905572.0641120616, 4151171.3655798878): (2699030.899007, 3311481.322775, 4731105.714541, -782320.98541) 57\n    test 331 _plumbTo5(-8069919.063106484, -11908872.159137841, -9885496.27648023): (-2936911.077608, -4352645.583092, -3613059.39678, 11080965.456924) 54\n    test 332 _plumbTo5(5850495.9458770165, 5722036.744563128, 5843952.116368118): (3700618.844724, 3628327.771535, 3705604.212589, 3684850.142326) 53\n    test 333 _plumbTo5(-10331153.415166039, -6434233.675718262, 0.0): (-5396216.804492, -3371586.314296, 0.0, 5808046.850001) 53\n    test 334 _plumbTo5(3164853.877214977, 4939341.954363132, 1068091.655227124): (3383371.408421, 5277929.282849, 1141310.068827, -409575.666448) 56\n    test 335 _plumbTo5(5498517.17816853, -8925354.25639353, 2445953.3664836087): (3248545.573968, -5287680.224561, 1449052.124429, 4391908.089656) 54\n    test 336 _plumbTo5(-8710547.801684523, -10332953.497187626, -8930947.738230154): (-3416510.721256, -4069489.151947, -3517282.003837, 9826779.273841) 54\n    test 337 _plumbTo5(0.0, -11550920.057393795, -7768721.120777687): (0.0, -5292693.766022, -3559627.516598, 7542006.714579) 53\n    test 338 _plumbTo5(0.0, -9803080.937976882, 4458103.176905968): (0.0, -5806187.167737, 2640430.082921, 4390796.657461) 54\n    test 339 _plumbTo5(-7276509.183351506, -8917367.667206984, 6249199.0544481715): (-3531706.297866, -4343135.080566, 3043589.887632, 6724810.966727) 50\n    test 340 _plumbTo5(2823245.411586701, 4582795.479539332, 5350381.393488043): (2369418.395217, 3850287.623379, 4495167.868088, 1214049.790639) 56\n    test 341 _plumbTo5(-12528344.906528033, -12365699.29317108, -12617957.75277874): (-3673786.830107, -3643403.961568, -3717671.312057, 15287142.745043) 51\n    test 342 _plumbTo5(0.0, -7535383.558510379, 1584260.232439418): (0.0, -6241924.809388, 1312314.882847, 1321737.420536) 56\n    test 343 _plumbTo5(5681134.892072343, 0.0, 6021997.242841809): (4366420.627852, 0.0, 4635589.853592, 1910654.088398) 53\n    test 344 _plumbTo5(-9036049.386057062, -6596315.918400789, 3304156.40609904): (-4924735.110083, -3606086.672545, 1806304.605855, 5299805.282658) 53\n    test 345 _plumbTo5(-7336909.023578265, 6090889.994283991, 4150459.4186733067): (-4486421.146722, 3734250.570018, 2544574.576346, 4032108.2127) 53\n    test 346 _plumbTo5(4362760.760163215, 5289584.135459404, -11656574.830657663): (2050393.728071, 2494868.309682, -5497838.988507, 7147552.379056) 52\n    test 347 _plumbTo5(-12461395.797481904, -7119758.596486539, -6921685.5837864615): (-4970253.759135, -2851253.421807, -2771894.543209, 9568600.270959) 53\n    test 348 _plumbTo5(-7566143.677164096, 4543104.188867149, -9082596.857817126): (-3797966.248649, 2288156.447948, -4574444.100018, 6293440.373492) 54\n    test 349 _plumbTo5(4842339.5176830925, -8813228.308928099, -6767263.109535832): (2539964.542317, -4637648.671583, -3560995.05181, 5746003.018881) 52\n    test 350 _plumbTo5(-9972761.31748726, 4662530.453764608, 4256112.435655717): (-5371604.589518, 2519181.262485, 2299569.004666, 5439912.792356) 52\n    test 351 _plumbTo5(3016605.4966718997, 1304241.0110947676, -11385253.216890456): (1618619.36137, 702003.401772, -6128012.702643, 5473173.960073) 54\n    test 352 _plumbTo5(-11724918.431583608, -9261068.189347908, -7807596.816657645): (-4419360.915762, -3505368.646064, -2955180.890694, 10490242.521891) 53\n    test 353 _plumbTo5(-12134588.631240936, 4242014.558076039, 2342159.198180888): (-5903546.269141, 2070913.070057, 1143408.0531, 6706457.701156) 50\n    test 354 _plumbTo5(0.0, 0.0, 3985743.815150218): (0.0, 0.0, 6378318.0, -2392574.18485) None\n    test 355 _plumbTo5(-7921057.044654415, -10864037.640105005, 2687706.006705687): (-3671872.603697, -5054343.586541, 1250403.451862, 7339887.740521) 53\n    test 356 _plumbTo5(-10775405.47248439, -9368474.21826664, 5537083.69858114): (-4471463.249369, -3902980.164961, 2306763.151984, 8946858.869618) 53\n    test 357 _plumbTo5(-8604739.504291004, -10561886.97668027, -7556399.07722975): (-3509688.285391, -4325183.658557, -3094370.379341, 9206829.818254) 52\n    test 358 _plumbTo5(3925721.009644486, 1893536.4839279293, 1316232.4249157286): (5489642.130955, 2640807.359749, 1835690.209158, -1809447.270617) 54\n    test 359 _plumbTo5(-10543317.047290618, 4176583.939927537, -10467484.347941227): (-4341506.282918, 1726653.407504, -4327336.664623, 9064547.97239) 53\n    test 360 _plumbTo5(5504910.383288863, 0.0, 3941980.7186291814): (5173606.529546, 0.0, 3706233.833182, 406618.786461) 55\n    test 361 _plumbTo5(-11576418.057469497, 5150121.48029749, -7199784.914373723): (-5048956.293486, 2254728.540757, -3152034.42804, 8208248.373083) 52\n    test 362 _plumbTo5(5747634.1165411, 3019800.754534434, -12588014.348788455): (2578891.377618, 1359987.253552, -5669027.170724, 7788985.490662) 53\n    test 363 _plumbTo5(-10699975.163764765, -12469268.54123148, 5851074.412260858): (-3897604.102395, -4561587.603006, 2140447.685329, 11071242.955692) 51\n    test 364 _plumbTo5(-10008114.974938048, -11305255.24208844, -10856545.703370556): (-3418502.004548, -3878738.917149, -3724736.705294, 12224518.125847) 52\n    test 365 _plumbTo5(-11339708.501863228, 3353573.953624922, -11220486.396653067): (-4420373.384937, 1312653.581403, -4391856.30456, 9933415.493209) 53\n    test 366 _plumbTo5(-11806013.5893758, 1206482.9786856282, -9638751.028646413): (-4907741.129485, 503510.885612, -4022563.173067, 8923110.372717) 52\n    test 367 _plumbTo5(-11812031.773843225, -6532810.614432961, 1153162.7559880565): (-5542356.608309, -3076255.443169, 543010.078875, 7185324.392308) 51\n    test 368 _plumbTo5(5552167.813835973, -8437735.788774159, -12516869.811745383): (2193043.778965, -3346421.513004, -4964147.812881, 9708182.369962) 54\n    test 369 _plumbTo5(4323988.540673599, -10272313.882541187, 2984426.303452739): (2383050.041963, -5678445.211525, 1649748.547077, 5162580.395082) 54\n    test 370 _plumbTo5(-12000563.945659896, -11375329.638874426, 0.0): (-4611901.004216, -4389788.847301, 0.0, 10168093.243721) 53\n    test 371 _plumbTo5(-7084905.644767572, -9716801.529767435, -6734404.088522686): (-3267099.540117, -4497050.494859, -3116724.990249, 7410063.857837) 53\n    test 372 _plumbTo5(-9299492.807924783, 0.0, -10038494.747635415): (-4319543.019846, 0.0, -4679595.851858, 7315579.0794) 52\n    test 373 _plumbTo5(5100849.267087828, -11657175.221031226, 4787967.534215877): (2384620.222134, -5469247.26915, 2246365.243671, 7219978.861854) 53\n    test 374 _plumbTo5(4665159.392919396, 5463633.976949447, 1299180.9722421006): (4068010.18408, 4768381.775495, 1133855.890443, 931286.842985) 55\n    test 375 _plumbTo5(-8064858.445005396, -9388146.191553729, 1896093.2198699364): (-4094680.727043, -4782365.842125, 965868.406734, 6151491.034079) 53\n    test 376 _plumbTo5(-10676921.034412017, 4434243.542993603, 0.0): (-5871035.613149, 2445706.819791, 0.0, 5201039.605871) 51\n    test 377 _plumbTo5(-9023055.192998646, 3544143.0538191493, -8462620.315925544): (-4457300.455779, 1756747.779582, -4194674.045764, 6500481.793821) 53\n    test 378 _plumbTo5(3476291.033153091, -7950656.589750505, 6016638.684900147): (2094107.737736, -4802288.995187, 3634088.113927, 4183204.082504) 55\n    test 379 _plumbTo5(0.0, 3559646.7792214956, 0.0): (0.0, 6378388.0, 0.0, -2818741.220779) None\n    test 380 _plumbTo5(3095613.853824863, 3997508.4430838083, 2736568.083855892): (3432883.607156, 4429795.814097, 3032505.56924, -623058.78768) 56\n    test 381 _plumbTo5(2835926.5021857405, -9045140.68774168, 2002398.4306926245): (1862547.444274, -5954303.424435, 1318144.053108, 3311939.889531) 54\n    test 382 _plumbTo5(2312432.2162906793, -9929107.155342186, -9788039.941453634): (1039780.026627, -4481180.685756, -4417461.370345, 7755169.927366) 54\n    test 383 _plumbTo5(2677701.474612112, 3278501.0486438787, -12067198.879795307): (1331054.876184, 1635234.070052, -6018749.836018, 6410734.6895) 54\n    test 384 _plumbTo5(-9173069.786116466, 2033137.2534150574, 1300061.1115269251): (-6148182.751552, 1365722.936214, 873286.091431, 3126902.678444) 51\n    test 385 _plumbTo5(-11242456.19353453, 1362723.5105300057, 4101669.110195199): (-5933679.471218, 721525.172334, 2171700.219653, 5684982.455098) 51\n    test 386 _plumbTo5(-12251486.837373294, 1314865.8046799877, -10257127.474041311): (-4856380.179641, 523324.665104, -4082345.783758, 9666543.786563) 53\n    test 387 _plumbTo5(-6729347.354649825, -12449399.222153336, -6859252.117053115): (-2718698.294944, -5049868.071154, -2782292.201528, 9352003.490564) 54\n    test 388 _plumbTo5(-11135625.716704542, -8627513.879856825, -8846859.068641137): (-4253677.71168, -3309357.919956, -3393448.844403, 10265655.080486) 53\n    test 389 _plumbTo5(-7911438.471988227, 3565866.392270913, 697649.5073143232): (-5778364.042342, 2609170.203206, 510472.179023, 2345273.858808) 52\n    test 390 _plumbTo5(1149029.6659410016, -7426070.196785206, 1807972.6442612736): (947089.604808, -6128191.102689, 1491981.502415, 1350970.145084) 56\n    test 391 _plumbTo5(3455972.2292246306, 4869644.106263283, 0.0): (3688469.895537, 5194895.921711, 0.0, -399804.837755) 56\n    test 392 _plumbTo5(-12623751.72037495, -8608825.23727696, 3430978.0105257914): (-5123195.52213, -3507798.019804, 1397986.486447, 9295798.862573) 52\n    test 393 _plumbTo5(0.0, 4168993.1829979364, 3993212.66081889): (0.0, 4606235.374963, 4412029.224784, -605465.150678) 52\n\n    test 394 _plumbTo5: (0.545455, 1.090909, 0.818182, 3.916483)\n    test 395 _plumbTo5: None\n    test 396 _plumbTo5: 0\n\n    test 397 _plumbTo5: (1.090909, 0.545455, 0.818182, 3.916483)\n    test 398 _plumbTo5: None\n    test 399 _plumbTo5: 0\n\n    test 400 _plumbTo5: (0.742781, 1.114172, 1.485563, 3.385165)\n    test 401 _plumbTo5: None\n    test 402 _plumbTo5: 0\n\n    test 403 toTriaxial: name='WGS84', a=6378137, b=6378137, c=6356752.314245179, e2ab=0, e2bc=0.00669438, e2ac=0.00669438\n    test 404 toEllipsoid: name='_', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518\n    test 405 toEllipsoid: name='', a=2, f=-0.5, f_=-2, b=3\n\n    test 406 Triaxials: 14\n    test 407 Amalthea: name='Amalthea', a=125000, b=73000, c=64000, e2ab=0.658944, e2bc=0.231375493, e2ac=0.737856\n    test 408 Ariel: name='Ariel', a=581100, b=577900, c=577700, e2ab=0.01098327, e2bc=0.000692042, e2ac=0.011667711\n    test 409 Earth: name='Earth', a=6378173.435, b=6378103.9, c=6356754.399999999, e2ab=0.000021804, e2bc=0.006683418, e2ac=0.006705077\n    test 410 Enceladus: name='Enceladus', a=256600, b=251400, c=248300, e2ab=0.040119337, e2bc=0.024509841, e2ac=0.06364586\n    test 411 Europa: name='Europa', a=1564130, b=1561230, c=1560930, e2ab=0.003704694, e2bc=0.000384275, e2ac=0.004087546\n    test 412 Io: name='Io', a=1829400, b=1819300, c=1815700, e2ab=0.011011391, e2bc=0.003953651, e2ac=0.014921506\n    test 413 Mars: name='Mars', a=3394600, b=3393300, c=3376300, e2ab=0.000765776, e2bc=0.009994646, e2ac=0.010752768\n    test 414 Mimas: name='Mimas', a=207400, b=196800, c=190600, e2ab=0.09960581, e2bc=0.062015624, e2ac=0.155444317\n    test 415 Miranda: name='Miranda', a=240400, b=234200, c=232900, e2ab=0.050915557, e2bc=0.011070811, e2ac=0.061422691\n    test 416 Moon: name='Moon', a=1735550, b=1735324, c=1734898, e2ab=0.000260419, e2bc=0.000490914, e2ac=0.000751206\n    test 417 Tethys: name='Tethys', a=535600, b=528200, c=525800, e2ab=0.027441672, e2bc=0.009066821, e2ac=0.036259685\n    test 418 WGS84_3: name='WGS84_3', a=6378171.36, b=6378101.609999999, c=6356751.84, e2ab=0.000021871, e2bc=0.006683505, e2ac=0.00670523\n    test 419 WGS84_35: name='WGS84_35', a=6378172, b=6378102, c=6356752.314245179, e2ab=0.00002195, e2bc=0.006683478, e2ac=0.006705281\n    test 420 WGS84_3r: name='WGS84_3r', a=6378172, b=6378102, c=6356752, e2ab=0.00002195, e2bc=0.006683577, e2ac=0.00670538\n\n    testTriaxial3(pygeodesy.triaxials.triaxial3, 26.02.20)\n    test 421 Triaxial3: Triaxial3(name='', a=3, b=2, c=1, k2=0.375, kp2=0.625, volume=25.132741229, area=48.882146303, R2=1.972287405)\n    test 422 reverseLatLon: (Degrees(58.69140449), Degrees(75.11263103), None, 2.586065, 'ELLIPSOIDAL')\n    test 423 forwardLatLon: (1.0, 2.0, 3.0, 2.586065, 'ELLIPSOIDAL')\n\n    test 424 ELLIPSOIDAL: (58.691404, 75.112631, None, 2.586065, 'ELLIPSOIDAL')\n    test 425 ELLIPSOIDAL: (1.0, 2.0, 3.0, 2.586065, 'ELLIPSOIDAL')\n\n    test 426 GEOCENTRIC: (29.12663, 56.916602, None, 2.391078, 'GEOCENTRIC')\n    test 427 GEOCENTRIC: (1.0, 2.0, 3.0, 2.391078, 'GEOCENTRIC')\n\n    test 428 GEOCENTRIC_X: (28.478775, 123.624552, None, 2.391078, 'GEOCENTRIC_X')\n    test 429 GEOCENTRIC_X: (1.0, 2.0, 3.0, 2.391078, 'GEOCENTRIC_X')\n\n    test 430 GEODETIC: (68.626017, 73.851827, None, 2.391078, 'GEODETIC')\n    test 431 GEODETIC: (1.0, 2.0, 3.0, 2.391078, 'GEODETIC')\n\n    test 432 GEODETIC_X: (5.817652, 159.397221, None, 2.391078, 'GEODETIC_X')\n    test 433 GEODETIC_X: (1.0, 2.0, 3.0, 2.391078, 'GEODETIC_X')\n\n    test 434 PARAMETRIC: (50.658091, 66.523762, None, 2.391078, 'PARAMETRIC')\n    test 435 PARAMETRIC: (1.0, 2.0, 3.0, 2.391078, 'PARAMETRIC')\n\n    test 436 PARAMETRIC_X: (14.628136, 143.06191, None, 2.391078, 'PARAMETRIC_X')\n    test 437 PARAMETRIC_X: (1.0, 2.0, 3.0, 2.391078, 'PARAMETRIC_X')\n\n    test 438 Triaxial3: Triaxial3(name='Bektas', a=6378388, b=6378318, c=6356911.9461, k2=0.996735077, kp2=0.003264923, volume=1083307891664673177600, area=510097198412933.0625, R2=6371204.383189477)\n    test 439 forwardBetOmg: (4234607.381429, 3551286.590486, 3176009.080037, 1200.0, 'ELLIPSOIDAL')\n    test 440 forwardBetOmg: (4233813.533025, 3550620.827453, 3175409.655093, 0, 'ELLIPSOIDAL')\n    test 441 length: 1196.973671\n    test 442 reverseBetOmg: (Degrees(30.0), Degrees(40.0), None, 1200.0, 'ELLIPSOIDAL')\n    test 443 reverseBetOmg: (Degrees(30.0), Degrees(40.0), None, 0.0, 'ELLIPSOIDAL')\n\n    test 444 forwardCartesian: (4233813.533151, 3550620.827558, 3175409.654809, 1196.973671, 'ELLIPSOIDAL')\n    test 445 forwardCartesian: (4239665.951888, 3553574.566129, 3164352.410834, 12911.309173, 'ELLIPSOIDAL')\n\n    test 446 reverseCartesian: (4234607.381429, 3551286.590486, 3176009.080037, 1196.973671, 'ELLIPSOIDAL')\n    test 447 reverseCartesian: (4248255.186992, 3560773.833183, 3170763.143924, 12911.309173, 'ELLIPSOIDAL')  FAILED, KNOWN, expected (4234607.381429, 3551286.590486, 3176009.080037, 1200.0, 'ELLIPSOIDAL')\n\n    test 448 forwardBetaOmega_: (4233813.533025, 3550620.827453, 3175409.655093, 0, 'ELLIPSOIDAL')\n    test 449 reverseLatLon: (Degrees(30.0), Degrees(40.0), None, -0.0, 'ELLIPSOIDAL')\n    test 450 forwardLatLon: (4233813.533025, 3550620.827453, 3175409.655093, 0, 'ELLIPSOIDAL')\n\n    test 451 reverseBetOmg: (Degrees(29.94812666), Degrees(40.01497072), None, 1203.037176, 'ELLIPSOIDAL')\n    test 452 reverseBetOmg: (29°56′53.26″, 40°00′53.89″, None, 1203.037176, 'ELLIPSOIDAL')\n    test 453 reverseBetOmg: (Degrees(29.97539672), Degrees(40.03311872), None, 1387.637345, 'ELLIPSOIDAL')\n    test 454 reverseBetOmg: (29°58′31.43″, 40°01′59.23″, None, 1387.637345, 'ELLIPSOIDAL')\n\n    test 455 height4: (3909251.554667, 3909165.750567, 3170432.501602, 999.999996)\n    test 456 height4: (3909251.554667, 3909165.750567, 3170432.501602, 0, None)\n    test 457 height4: (3909251.554667, 3909165.750567, 3170432.501602, 0, None)\n\n    test 458 JFK-SIN: Triaxial3(name='WGS84_35', a=6378172, b=6378102, c=6356752.314245179, k2=0.996726499, kp2=0.003273501, volume=1083207319768789942272, area=510065621722018.25, R2=6371007.180905545)\n    test 459 JFK-SIN: -54.34889\n    test 460 JFK-SIN: (2824949.36608, -3938333.736799, 4132149.896611, 0, 'GEODETIC')\n    test 461 JFK-SIN: (40°38′23.0″, 54°20′56.0″, None, 0.0, 'GEODETIC')\n    test 462 JFK-SIN: (Degrees(40.57193395), Degrees(-54.38110954), None, 0, 'ELLIPSOIDAL')\n\n    test 463 JFK-SIN: 123.42\n    test 464 JFK-SIN: (-3511912.82574, 5322047.492059, 150275.382099, 0, 'GEODETIC')\n    test 465 JFK-SIN: (1°21′33.0″, 123°25′10.0″, None, -0.0, 'GEODETIC')\n    test 466 JFK-SIN: (1.355287, 123.419709, None, 0, 'ELLIPSOIDAL')\n    test 467 JFK-SIN: (2507237.249613, -4147833.171672, 4132151.785141, 0, 'GEODETIC_LON0')\n    test 468 JFK-SIN: (Degrees(40.56616585), Degrees(-58.87899203), None, 0, 'ELLIPSOIDAL')\n    test 469 JFK-SIN: (-3083516.921703, 5581181.10656, 150275.496647, 0, 'GEODETIC_LON0')\n    test 470 JFK-SIN: (Degrees(1.35513418), Degrees(118.9196884), None, 0.0, 'ELLIPSOIDAL')\n\n    test 471 ELLIPSOIDAL: (3339312.988437, 4478220.864583, 3067838.142785, 0, 'ELLIPSOIDAL')\n    test 472 ELLIPSOIDAL: (0.44727, 0.46133, -0.76624)\n    test 473 ELLIPSOIDAL: (Radians(6.78714104), Radians(7.21349568), Radians(3.22695739), 0, 'ELLIPSOIDAL')\n    test 474 ELLIPSOIDAL: (3339312.988437, 4478220.864583, 3067838.142785, 0, 'ELLIPSOIDAL')\n    test 475 ELLIPSOIDAL: (0.35577, 0.33613, -0.87203)  FAILED, KNOWN, expected (0.44727, 0.46133, -0.76624)\n\n    test 476 GEOCENTRIC: (3775053.602526, 4836453.809766, 1737203.829149, 0, 'GEOCENTRIC')\n    test 477 GEOCENTRIC: (0.06074, 0.18165, -0.98149)\n    test 478 GEOCENTRIC: (Radians(6.55911022), Radians(7.19121867), Radians(9.36055352), -0.0, 'GEOCENTRIC')\n    test 479 GEOCENTRIC: (3775053.602526, 4836453.809766, 1737203.829149, 0, 'GEOCENTRIC')\n    test 480 GEOCENTRIC: (0.11773, 0.25514, -0.95971)  FAILED, KNOWN, expected (0.06074, 0.18165, -0.98149)\n\n    test 481 GEOCENTRIC_X: (5353065.611375, 2253062.100284, 2627312.107704, 0, 'GEOCENTRIC_X')\n    test 482 GEOCENTRIC_X: (0.37533, 0.39753, -0.83732)\n    test 483 GEOCENTRIC_X: (Radians(7.28002857), Radians(8.7159147), Radians(4.84070319), 0.0, 'GEOCENTRIC_X')\n    test 484 GEOCENTRIC_X: (5353065.611375, 2253062.100284, 2627312.107704, 0, 'GEOCENTRIC_X')\n    test 485 GEOCENTRIC_X: (0.07117, 0.68362, -0.72636)  FAILED, KNOWN, expected (0.37533, 0.39753, -0.83732)\n\n    test 486 GEODETIC: (4614879.82592, 981039.629187, 4277613.939628, 0, 'GEODETIC')\n    test 487 GEODETIC: (0.24631, 0.35287, -0.90267)\n    test 488 GEODETIC: (Radians(7.02301499), Radians(6.49265346), Radians(9.10148726), -0.0, 'GEODETIC')\n    test 489 GEODETIC: (4614879.82592, 981039.629187, 4277613.939628, 0, 'GEODETIC')\n    test 490 GEODETIC: (0.55921, 0.44366, -0.70032)  FAILED, KNOWN, expected (0.24631, 0.35287, -0.90267)\n\n    test 491 GEODETIC_LON0: (1527233.792948, 1162869.651044, 6062035.023615, 0, 'GEODETIC_LON0')\n    test 492 GEODETIC_LON0: (0.24352, 0.24941, -0.93728)\n    test 493 GEODETIC_LON0: (Radians(7.54924666), Radians(6.67338953), Radians(9.34132632), -0.0, 'GEODETIC_LON0')\n    test 494 GEODETIC_LON0: (1527233.792948, 1162869.651044, 6062035.023615, 0, 'GEODETIC_LON0')\n    test 495 GEODETIC_LON0: (0.70582, 0.6422, -0.299)  FAILED, KNOWN, expected (0.24352, 0.24941, -0.93728)\n\n    test 496 GEODETIC_X: (5508220.332714, 315937.896032, 3189373.081358, 0, 'GEODETIC_X')\n    test 497 GEODETIC_X: (0.40682, 0.33156, -0.85121)\n    test 498 GEODETIC_X: (Radians(7.32411007), Radians(9.32669619), Radians(4.54631059), 0, 'GEODETIC_X')\n    test 499 GEODETIC_X: (5508220.332714, 315937.896032, 3189373.081358, 0, 'GEODETIC_X')\n    test 500 GEODETIC_X: (-0.08327, 0.99551, 0.0449)  FAILED, KNOWN, expected (0.40682, 0.33156, -0.85121)\n\n    test 501 GEOGRAPHIC: (3465116.507243, 5223158.607824, 1175894.05015, 0, 'GEODETIC')\n    test 502 GEOGRAPHIC: (0.11315, 0.09188, -0.98932)\n    test 503 GEOGRAPHIC: (Radians(6.46985144), Radians(7.26824437), Radians(3.18515516), -0.0, 'GEODETIC')\n    test 504 GEOGRAPHIC: (3465116.507243, 5223158.607824, 1175894.05015, 0, 'GEODETIC')\n    test 505 GEOGRAPHIC: (0.13879, 0.13043, -0.9817)  FAILED, KNOWN, expected (0.11315, 0.09188, -0.98932)\n\n    test 506 PARAMETRIC: (1264892.90797, 2527765.29909, 5698436.749422, 0, 'PARAMETRIC')\n    test 507 PARAMETRIC: (0.13554, 0.82486, -0.54885)\n    test 508 PARAMETRIC: (Radians(7.39485161), Radians(7.39001874), Radians(9.17168302), -0.0, 'PARAMETRIC')\n    test 509 PARAMETRIC: (1264892.90797, 2527765.29909, 5698436.749422, 0, 'PARAMETRIC')\n    test 510 PARAMETRIC: (0.1647, 0.8887, -0.42789)  FAILED, KNOWN, expected (0.13554, 0.82486, -0.54885)\n\n    test 511 PARAMETRIC_X: (3357601.186402, 4513866.391703, 2995261.616924, 0, 'PARAMETRIC_X')\n    test 512 PARAMETRIC_X: (0.22351, 0.72002, -0.65697)\n    test 513 PARAMETRIC_X: (Radians(6.83757042), Radians(8.44138234), Radians(5.00139262), 0, 'PARAMETRIC_X')\n    test 514 PARAMETRIC_X: (3357601.186402, 4513866.391703, 2995261.616924, 0, 'PARAMETRIC_X')\n    test 515 PARAMETRIC_X: (0.24371, 0.40685, -0.88039)  FAILED, KNOWN, expected (0.22351, 0.72002, -0.65697)\n\n    test 516 PLANETOCENTRIC: (948465.932689, 3598948.847101, 5162255.209493, 0, 'GEOCENTRIC')\n    test 517 PLANETOCENTRIC: (0.1521, 0.65147, -0.74328)\n    test 518 PLANETOCENTRIC: (Radians(7.22932016), Radians(7.59630087), Radians(9.40537788), -0.0, 'GEOCENTRIC')\n    test 519 PLANETOCENTRIC: (948465.932689, 3598948.847101, 5162255.209493, 0, 'GEOCENTRIC')\n    test 520 PLANETOCENTRIC: (0.18839, 0.79097, -0.58213)  FAILED, KNOWN, expected (0.1521, 0.65147, -0.74328)\n\n    test 521 PLANETODETIC: (6109868.111296, 1803588.145775, 311341.87994, 0, 'GEODETIC')\n    test 522 PLANETODETIC: (0.23071, 0.27671, -0.93285)\n    test 523 PLANETODETIC: (Radians(6.33234784), Radians(6.57023183), Radians(9.21647244), 0.0, 'GEODETIC')\n    test 524 PLANETODETIC: (6109868.111296, 1803588.145775, 311341.87994, 0, 'GEODETIC')\n    test 525 PLANETODETIC: (-0.01244, 0.21195, -0.9772)  FAILED, KNOWN, expected (0.23071, 0.27671, -0.93285)\n\n    test 526 Lon0: -14.93\n    test 527 forwardLatLon: (6162853.284268, -1643246.23441, 0.0, 0, 'ELLIPSOIDAL')\n    test 528 reverseLatLon: (Degrees(0.0), Degrees(-14.93), None, 0, 'ELLIPSOIDAL')\n    test 529 reverseLatLon: 1.590277340731758e-15  FAILED, KNOWN, expected 0\n\n    testConformal3(pygeodesy.triaxials.conformal3, 26.02.15)\n    test 530 Conformal3: name='WGS84_3', a=6378171.36, b=6378101.609999999, c=6356751.84, k2=0.996738165, kp2=0.003261835, xyQ2=xyQ2(x=10026938.243505, y=27096412.501236)\n    test 531 forwardBetOmg: (-5077726.43188, 3922574.86203, 0, 1.19703, 'CONFORMAL')\n    test 532 reverseBetOmg: (Degrees(33.3), Degrees(44.4), None, 1.197032, 'CONFORMAL')\n\n    test 533 Conformal3: name='WGS84_3r', a=6378172, b=6378102, c=6356752, k2=0.996726547, kp2=0.003273453, xyQ2=xyQ2(x=10026968.259439, y=27085126.866409)\n    test 534 forwardBetOmg: (-5077732.396, 3922571.859, 0, 1.197, 'CONFORMAL')\n    test 535 reverseBetOmg: (Degrees(33.3), Degrees(44.4), None, 1.197034, 'CONFORMAL')\n    test 536 forwardOther: (33.299887, 44.399927, 0.000263, 1.000046, 'CONFORMAL')\n    test 537 reverseOther: (Degrees(33.3), Degrees(44.4), Degrees(0.00026262), 0.999954, 'CONFORMAL')\n\n    test 538 Conformal3: name='WGS84+/-35', a=6378172, b=6378102, c=6356752.314245179, k2=0.996726499, kp2=0.003273501, xyQ2=xyQ2(x=10026968.379966, y=27085080.683786)\n    test 539 forwardBetOmg: (-5077732.419, 3922572.019, 0, 1.197, 'CONFORMAL')\n    test 540 reverseBetOmg: (Degrees(33.3), Degrees(44.4), None, 1.197034, 'CONFORMAL')\n\n    test 541 triaxum5: (1.2, 0.2, 0.9, 3, (5.2898177244408575e-31,))\n    test 542 triaxum5: (1.244625, 0.145582, 0.0, 2, ())\n\n    test 543 Amalthea: name='Amalthea', a=125000, b=73000, c=64000, e2ab=0.658944, e2bc=0.231375493, e2ac=0.737856\n    test 544 Amalthea.area    : 93239507787.49036\n    test 545 Amalthea.areaKT  : 93212299402.67043\n    test 546 Amalthea.areaRG  : 93239507787.49036\n    test 547 Amalthea.area21k : 93239507787.49039  FAILED, KNOWN, expected 93239507787.49036\n    test 548 Amalthea.ellipse5: Ellipse5Tuple(a=111264.228133, b=64978.30923, height=29167.24982, lat=45.0, beta=27.112446)\n    test 549 Amalthea.toTriaxial_: name='NN', a=111264.22813306, b=64978.309229707, c=29167.249819713, e2ab=0.658944, e2bc=0.798509697, e2ac=0.931280523\n    test 550 Amalthea.toTriaxial : name='NN', a=111264.22813306, b=64978.309229707, c=29167.249819713, e2ab=0.658944, e2bc=0.798509697, e2ac=0.931280523\n\n    test 551 Ariel: name='Ariel', a=581100, b=577900, c=577700, e2ab=0.01098327, e2bc=0.000692042, e2ac=0.011667711\n    test 552 Ariel.area    : 4211301462766.58\n    test 553 Ariel.areaKT  : 4211301574065.83\n    test 554 Ariel.areaRG  : 4211301462766.58\n    test 555 Ariel.area21k : 4211301462766.58\n    test 556 Ariel.ellipse5: Ellipse5Tuple(a=412103.585219, b=409834.214245, height=407295.279804, lat=45.0, beta=44.831891)\n    test 557 Ariel.toTriaxial_: name='NN', a=412103.585218864, b=409834.214245365, c=407295.279803537, e2ab=0.01098327, e2bc=0.012351678, e2ac=0.023199286\n    test 558 Ariel.toTriaxial : name='NN', a=412103.585218864, b=409834.214245365, c=407295.279803537, e2ab=0.01098327, e2bc=0.012351678, e2ac=0.023199286\n\n    test 559 Earth: name='Earth', a=6378173.435, b=6378103.9, c=6356754.399999999, e2ab=0.000021804, e2bc=0.006683418, e2ac=0.006705077\n    test 560 Earth.area    : 510065911057440.94\n    test 561 Earth.areaKT  : 510065915922713.7\n    test 562 Earth.areaRG  : 510065911057440.94\n    test 563 Earth.area21k : 510065911057441.06  FAILED, KNOWN, expected 510065911057440.94\n    test 564 Earth.ellipse5: Ellipse5Tuple(a=4517628.806864, b=4517579.555566, height=4487337.759918, lat=45.0, beta=44.903634)\n    test 565 Earth.toTriaxial_: name='NN', a=4517628.806863861, b=4517579.55556609, c=4487337.759917997, e2ab=0.000021804, e2bc=0.013343682, e2ac=0.013365195\n    test 566 Earth.toTriaxial : name='NN', a=4517628.806863861, b=4517579.55556609, c=4487337.759917997, e2ab=0.000021804, e2bc=0.013343682, e2ac=0.013365195\n\n    test 567 Enceladus: name='Enceladus', a=256600, b=251400, c=248300, e2ab=0.040119337, e2bc=0.024509841, e2ac=0.06364586\n    test 568 Enceladus.area    : 798618496278.5967\n    test 569 Enceladus.areaKT  : 798619018175.11\n    test 570 Enceladus.areaRG  : 798618496278.5967\n    test 571 Enceladus.area21k : 798618496278.5966  FAILED, KNOWN, expected 798618496278.5967\n    test 572 Enceladus.ellipse5: Ellipse5Tuple(a=184401.418634, b=180664.523167, height=172665.031764, lat=45.0, beta=44.058205)\n    test 573 Enceladus.toTriaxial_: name='NN', a=184401.418633881, b=180664.523166631, c=172665.031764361, e2ab=0.040119337, e2bc=0.086595751, e2ac=0.123240924\n    test 574 Enceladus.toTriaxial : name='NN', a=184401.418633881, b=180664.523166631, c=172665.031764361, e2ab=0.040119337, e2bc=0.086595751, e2ac=0.123240924\n\n    test 575 Europa: name='Europa', a=1564130, b=1561230, c=1560930, e2ab=0.003704694, e2bc=0.000384275, e2ac=0.004087546\n    test 576 Europa.area    : 30663773697323.52\n    test 577 Europa.areaKT  : 30663773794562.457\n    test 578 Europa.areaRG  : 30663773697323.52\n    test 579 Europa.area21k : 30663773697323.52\n    test 580 Europa.ellipse5: Ellipse5Tuple(a=1107138.878572, b=1105086.170198, height=1102613.397545, lat=45.0, beta=44.94133)\n    test 581 Europa.toTriaxial_: name='NN', a=1107138.878571533, b=1105086.170198279, c=1102613.397544503, e2ab=0.003704694, e2bc=0.004470251, e2ac=0.008158384\n    test 582 Europa.toTriaxial : name='NN', a=1107138.878571533, b=1105086.170198279, c=1102613.397544503, e2ab=0.003704694, e2bc=0.004470251, e2ac=0.008158384\n\n    test 583 Io: name='Io', a=1829400, b=1819300, c=1815700, e2ab=0.011011391, e2bc=0.003953651, e2ac=0.014921506\n    test 584 Io.area    : 41691875849096.734\n    test 585 Io.areaKT  : 41691877397441.2\n    test 586 Io.areaRG  : 41691875849096.734\n    test 587 Io.area21k : 41691875849096.734\n    test 588 Io.ellipse5: Ellipse5Tuple(a=1298433.860916, b=1291265.290896, height=1279059.271955, lat=45.0, beta=44.784657)\n    test 589 Io.toTriaxial_: name='NN', a=1298433.860916433, b=1291265.290896068, c=1279059.271955118, e2ab=0.011011391, e2bc=0.018816162, e2ac=0.029620361\n    test 590 Io.toTriaxial : name='NN', a=1298433.860916433, b=1291265.290896068, c=1279059.271955118, e2ab=0.011011391, e2bc=0.018816162, e2ac=0.029620361\n\n    test 591 Mars: name='Mars', a=3394600, b=3393300, c=3376300, e2ab=0.000765776, e2bc=0.009994646, e2ac=0.010752768\n    test 592 Mars.area    : 144249140795107.44\n    test 593 Mars.areaKT  : 144249144150662.16\n    test 594 Mars.areaRG  : 144249140795107.44\n    test 595 Mars.area21k : 144249140795107.44\n    test 596 Mars.ellipse5: Ellipse5Tuple(a=2406823.402595, b=2405901.68268, height=2380943.388927, lat=45.0, beta=44.845145)\n    test 597 Mars.toTriaxial_: name='NN', a=2406823.402594559, b=2405901.682679585, c=2380943.38892735, e2ab=0.000765776, e2bc=0.020639944, e2ac=0.021389914\n    test 598 Mars.toTriaxial : name='NN', a=2406823.402594559, b=2405901.682679585, c=2380943.38892735, e2ab=0.000765776, e2bc=0.020639944, e2ac=0.021389914\n\n    test 599 Mimas: name='Mimas', a=207400, b=196800, c=190600, e2ab=0.09960581, e2bc=0.062015624, e2ac=0.155444317\n    test 600 Mimas.area    : 493855762247.69183\n    test 601 Mimas.areaKT  : 493857714107.9375\n    test 602 Mimas.areaRG  : 493855762247.69183\n    test 603 Mimas.area21k : 493855762247.69183\n    test 604 Mimas.ellipse5: Ellipse5Tuple(a=152708.378956, b=144903.611276, height=128970.72925, lat=45.0, beta=42.58292)\n    test 605 Mimas.toTriaxial_: name='NN', a=152708.378956057, b=144903.611275565, c=128970.729250426, e2ab=0.09960581, e2bc=0.207819965, e2ac=0.286725699\n    test 606 Mimas.toTriaxial : name='NN', a=152708.378956057, b=144903.611275565, c=128970.729250426, e2ab=0.09960581, e2bc=0.207819965, e2ac=0.286725699\n\n    test 607 Miranda: name='Miranda', a=240400, b=234200, c=232900, e2ab=0.050915557, e2bc=0.011070811, e2ac=0.061422691\n    test 608 Miranda.area    : 698880863325.7571\n    test 609 Miranda.areaKT  : 698881306767.9503\n    test 610 Miranda.areaRG  : 698880863325.7571\n    test 611 Miranda.area21k : 698880863325.7571\n    test 612 Miranda.ellipse5: Ellipse5Tuple(a=172660.462873, b=168207.489205, height=162055.192572, lat=45.0, beta=44.092156)\n    test 613 Miranda.toTriaxial_: name='NN', a=172660.462873061, b=168207.489204954, c=162055.192571975, e2ab=0.050915557, e2bc=0.071813503, e2ac=0.119072635\n    test 614 Miranda.toTriaxial : name='NN', a=172660.462873061, b=168207.489204954, c=162055.192571975, e2ab=0.050915557, e2bc=0.071813503, e2ac=0.119072635\n\n    test 615 Moon: name='Moon', a=1735550, b=1735324, c=1734898, e2ab=0.000260419, e2bc=0.000490914, e2ac=0.000751206\n    test 616 Moon.area    : 37838824729886.09\n    test 617 Moon.areaKT  : 37838824733332.22\n    test 618 Moon.areaRG  : 37838824729886.09\n    test 619 Moon.area21k : 37838824729886.086  FAILED, KNOWN, expected 37838824729886.09\n    test 620 Moon.ellipse5: Ellipse5Tuple(a=1227449.712545, b=1227289.876392, height=1226527.645318, lat=45.0, beta=44.989236)\n    test 621 Moon.toTriaxial_: name='NN', a=1227449.71254467, b=1227289.876391845, c=1226527.645318275, e2ab=0.000260419, e2bc=0.001241751, e2ac=0.001501847\n    test 622 Moon.toTriaxial : name='NN', a=1227449.71254467, b=1227289.876391845, c=1226527.645318275, e2ab=0.000260419, e2bc=0.001241751, e2ac=0.001501847\n\n    test 623 Tethys: name='Tethys', a=535600, b=528200, c=525800, e2ab=0.027441672, e2bc=0.009066821, e2ac=0.036259685\n    test 624 Tethys.area    : 3528073490771.3936\n    test 625 Tethys.areaKT  : 3528074261832.739\n    test 626 Tethys.areaRG  : 3528073490771.3936\n    test 627 Tethys.area21k : 3528073490771.394  FAILED, KNOWN, expected 3528073490771.3936\n    test 628 Tethys.ellipse5: Ellipse5Tuple(a=382206.915043, b=376926.236979, height=368348.212846, lat=45.0, beta=44.470998)\n    test 629 Tethys.toTriaxial_: name='NN', a=382206.915042949, b=376926.236978502, c=368348.212845736, e2ab=0.027441672, e2bc=0.044997746, e2ac=0.071204605\n    test 630 Tethys.toTriaxial : name='NN', a=382206.915042949, b=376926.236978502, c=368348.212845736, e2ab=0.027441672, e2bc=0.044997746, e2ac=0.071204605\n\n    test 631 WGS84_3: name='WGS84_3', a=6378171.36, b=6378101.609999999, c=6356751.84, e2ab=0.000021871, e2bc=0.006683505, e2ac=0.00670523\n    test 632 WGS84_3.area    : 510065541435967.5\n    test 633 WGS84_3.areaKT  : 510065546301413.56\n    test 634 WGS84_3.areaRG  : 510065541435967.5\n    test 635 WGS84_3.area21k : 510065541435967.4  FAILED, KNOWN, expected 510065541435967.5\n    test 636 WGS84_3.ellipse5: Ellipse5Tuple(a=4517627.51138, b=4517578.107797, height=4487335.778543, lat=45.0, beta=44.903631)\n    test 637 WGS84_3.toTriaxial_: name='NN', a=4517627.51137994, b=4517578.107796822, c=4487335.778543438, e2ab=0.000021871, e2bc=0.013343921, e2ac=0.0133655\n    test 638 WGS84_3.toTriaxial : name='NN', a=4517627.51137994, b=4517578.107796822, c=4487335.778543438, e2ab=0.000021871, e2bc=0.013343921, e2ac=0.0133655\n\n    test 639 WGS84_35: name='WGS84_35', a=6378172, b=6378102, c=6356752.314245179, e2ab=0.00002195, e2bc=0.006683478, e2ac=0.006705281\n    test 640 WGS84_35.area    : 510065621722018.25\n    test 641 WGS84_35.areaKT  : 510065626587483.3\n    test 642 WGS84_35.areaRG  : 510065621722018.25\n    test 643 WGS84_35.area21k : 510065621722018.25\n    test 644 WGS84_35.ellipse5: Ellipse5Tuple(a=4517628.022629, b=4517578.441971, height=4487336.055381, lat=45.0, beta=44.903631)\n    test 645 WGS84_35.toTriaxial_: name='NN', a=4517628.022628974, b=4517578.441971447, c=4487336.055380745, e2ab=0.00002195, e2bc=0.013343945, e2ac=0.013365602\n    test 646 WGS84_35.toTriaxial : name='NN', a=4517628.022628974, b=4517578.441971447, c=4487336.055380745, e2ab=0.00002195, e2bc=0.013343945, e2ac=0.013365602\n\n    test 647 WGS84_3r: name='WGS84_3r', a=6378172, b=6378102, c=6356752, e2ab=0.00002195, e2bc=0.006683577, e2ac=0.00670538\n    test 648 WGS84_3r.area    : 510065604942135.9\n    test 649 WGS84_3r.areaKT  : 510065609807745.0\n    test 650 WGS84_3r.areaRG  : 510065604942135.9\n    test 651 WGS84_3r.area21k : 510065604942135.94  FAILED, KNOWN, expected 510065604942135.9\n    test 652 WGS84_3r.ellipse5: Ellipse5Tuple(a=4517628.133918, b=4517578.553259, height=4487335.722261, lat=45.0, beta=44.903629)\n    test 653 WGS84_3r.toTriaxial_: name='NN', a=4517628.133917508, b=4517578.553258759, c=4487335.722261372, e2ab=0.00002195, e2bc=0.01334414, e2ac=0.013365797\n    test 654 WGS84_3r.toTriaxial : name='NN', a=4517628.133917508, b=4517578.553258759, c=4487335.722261372, e2ab=0.00002195, e2bc=0.01334414, e2ac=0.013365797\n\n    39 of 654 testTriaxials.py tests (6.0%) FAILED, incl. 37 KNOWN plus 2 DeprecationWarnings (pygeodesy 26.3.26 Python 3.11.9 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 1.24.2 scipy 1.10.1 Math 2 macOS 26.3.1 isLazy 0 -W  default) 1.313 sec\nrunning /usr/local/bin/p....n3.11 -W default ~/PyGeodesy/test/testUnits.py\n\n    testing testUnits.py 24.07.25\n\n    testing Lambertian(1.0,) (pygeodesy.units, 26.03.12)\n    test 1 .classname: Lambertian\n    test 2 isinstance: True\n    test 3 .name: lambertian\n    test 4 .named: lambertian\n    test 5 .named2: Lambertian 'lambertian'\n    test 6 .str: 1.0\n    test 7 .toStr: 1.0\n    test 8 .std_repr: True\n    test 9 .repr: 1.0\n    test 10 .toRepr: lambertian (1.0)\n    test 11 .units: lambertian\n    test 12 lambertian: psi ('X'): strRad ('X') or suffix ('NSEW'): could not convert string to float: 'X'\n    test 13 lambertian: U ('X'): strRad ('X') or suffix ('NSEW'): could not convert string to float: 'X'\n    test 14 lambertian: TypeError\n    test 15 lambertian: psi ('X'): strRad ('X') or suffix ('NSEW'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 16 .named: Test\n    test 17 .named2: Lambertian 'Test'\n    test 18 .str: 1.0\n    test 19 .toStr: 1.0\n    test 20 .repr: 1.0\n    test 21 .toRepr: Test (1.0)\n    test 22 .units: lambertian\n    test 23 .name: Test\n    test 24 ._name: Test\n    test 25 .str: 1.0\n    test 26 .repr: 1.0\n    test 27 delattr: ''\n\n    testing _Lat(1.0,) (pygeodesy.units, 26.03.12)\n    test 28 .classname: _Lat\n    test 29 isinstance: True\n    test 30 .name: _lat\n    test 31 .named: _lat\n    test 32 .named2: _Lat '_lat'\n    test 33 .str: 1.0\n    test 34 .toStr: 1.0\n    test 35 .std_repr: True\n    test 36 .repr: 1.0\n    test 37 .toRepr: _lat (1.0)\n    test 38 .units: _lat\n    test 39 _lat: lat ('X'): strDMS ('X') or suffix ('NS'): could not convert string to float: 'X'\n    test 40 _lat: U ('X'): strDMS ('X') or suffix ('NS'): could not convert string to float: 'X'\n    test 41 _lat: TypeError\n    test 42 _lat: lat ('X'): strDMS ('X') or suffix ('NS'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 43 .named: Test\n    test 44 .named2: _Lat 'Test'\n    test 45 .str: 1.0\n    test 46 .toStr: 1.0\n    test 47 .repr: 1.0\n    test 48 .toRepr: Test (1.0)\n    test 49 .units: _lat\n    test 50 .name: Test\n    test 51 ._name: Test\n    test 52 .str: 1.0\n    test 53 .repr: 1.0\n    test 54 delattr: ''\n\n    testing _Lon(1.0,) (pygeodesy.units, 26.03.12)\n    test 55 .classname: _Lon\n    test 56 isinstance: True\n    test 57 .name: _lon\n    test 58 .named: _lon\n    test 59 .named2: _Lon '_lon'\n    test 60 .str: 1.0\n    test 61 .toStr: 1.0\n    test 62 .std_repr: True\n    test 63 .repr: 1.0\n    test 64 .toRepr: _lon (1.0)\n    test 65 .units: _lon\n    test 66 _lon: lon ('X'): strDMS ('X') or suffix ('EW'): could not convert string to float: 'X'\n    test 67 _lon: U ('X'): strDMS ('X') or suffix ('EW'): could not convert string to float: 'X'\n    test 68 _lon: TypeError\n    test 69 _lon: lon ('X'): strDMS ('X') or suffix ('EW'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 70 .named: Test\n    test 71 .named2: _Lon 'Test'\n    test 72 .str: 1.0\n    test 73 .toStr: 1.0\n    test 74 .repr: 1.0\n    test 75 .toRepr: Test (1.0)\n    test 76 .units: _lon\n    test 77 .name: Test\n    test 78 ._name: Test\n    test 79 .str: 1.0\n    test 80 .repr: 1.0\n    test 81 delattr: ''\n\n    testing Bearing(1.0,) (pygeodesy.units, 26.03.12)\n    test 82 .classname: Bearing\n    test 83 isinstance: True\n    test 84 .name: bearing\n    test 85 .named: bearing\n    test 86 .named2: Bearing 'bearing'\n    test 87 .str: 1.0\n    test 88 .toStr: 1.0\n    test 89 .std_repr: True\n    test 90 .repr: 1.0\n    test 91 .toRepr: bearing (1.0)\n    test 92 .units: bearing\n    test 93 bearing: bearing ('X'): strDMS ('X') or suffix ('N'): could not convert string to float: 'X'\n    test 94 bearing: U ('X'): strDMS ('X') or suffix ('N'): could not convert string to float: 'X'\n    test 95 bearing: TypeError\n    test 96 bearing: bearing ('X'): strDMS ('X') or suffix ('N'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 97 .named: Test\n    test 98 .named2: Bearing 'Test'\n    test 99 .str: 1.0\n    test 100 .toStr: 1.0\n    test 101 .repr: 1.0\n    test 102 .toRepr: Test (1.0)\n    test 103 .units: bearing\n    test 104 .name: Test\n    test 105 ._name: Test\n    test 106 .str: 1.0\n    test 107 .repr: 1.0\n    test 108 delattr: ''\n\n    testing Degrees(1.0,) (pygeodesy.units, 26.03.12)\n    test 109 .classname: Degrees\n    test 110 isinstance: True\n    test 111 .name: degrees\n    test 112 .named: degrees\n    test 113 .named2: Degrees 'degrees'\n    test 114 .str: 1.0\n    test 115 .toStr: 1.0\n    test 116 .std_repr: True\n    test 117 .repr: 1.0\n    test 118 .toRepr: degrees (1.0)\n    test 119 .units: degrees\n    test 120 degrees: degrees ('X'): strDMS ('X') or suffix ('NSEW'): could not convert string to float: 'X'\n    test 121 degrees: U ('X'): strDMS ('X') or suffix ('NSEW'): could not convert string to float: 'X'\n    test 122 degrees: TypeError\n    test 123 degrees: degrees ('X'): strDMS ('X') or suffix ('NSEW'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 124 .named: Test\n    test 125 .named2: Degrees 'Test'\n    test 126 .str: 1.0\n    test 127 .toStr: 1.0\n    test 128 .repr: 1.0\n    test 129 .toRepr: Test (1.0)\n    test 130 .units: degrees\n    test 131 .name: Test\n    test 132 ._name: Test\n    test 133 .str: 1.0\n    test 134 .repr: 1.0\n    test 135 delattr: ''\n\n    testing Degrees2(1.0,) (pygeodesy.units, 26.03.12)\n    test 136 .classname: Degrees2\n    test 137 isinstance: True\n    test 138 .name: degrees2\n    test 139 .named: degrees2\n    test 140 .named2: Degrees2 'degrees2'\n    test 141 .str: 1.0\n    test 142 .toStr: 1.0\n    test 143 .std_repr: True\n    test 144 .repr: 1.0\n    test 145 .toRepr: degrees2 (1.0)\n    test 146 .units: degrees2\n    test 147 degrees2: degrees2 ('X'): could not convert string to float: 'X'\n    test 148 degrees2: U ('X'): could not convert string to float: 'X'\n    test 149 degrees2: TypeError\n    test 150 degrees2: degrees2 ('X'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 151 .named: Test\n    test 152 .named2: Degrees2 'Test'\n    test 153 .str: 1.0\n    test 154 .toStr: 1.0\n    test 155 .repr: 1.0\n    test 156 .toRepr: Test (1.0)\n    test 157 .units: degrees2\n    test 158 .name: Test\n    test 159 ._name: Test\n    test 160 .str: 1.0\n    test 161 .repr: 1.0\n    test 162 delattr: ''\n\n    testing Degrees_(1.0,) (pygeodesy.units, 26.03.12)\n    test 163 .classname: Degrees_\n    test 164 isinstance: True\n    test 165 .name: degrees_\n    test 166 .named: degrees_\n    test 167 .named2: Degrees_ 'degrees_'\n    test 168 .str: 1.0\n    test 169 .toStr: 1.0\n    test 170 .std_repr: True\n    test 171 .repr: 1.0\n    test 172 .toRepr: degrees_ (1.0)\n    test 173 .units: degrees_\n    test 174 degrees_: degrees ('X'): strDMS ('X') or suffix ('NSEW'): could not convert string to float: 'X'\n    test 175 degrees_: U ('X'): strDMS ('X') or suffix ('NSEW'): could not convert string to float: 'X'\n    test 176 degrees_: TypeError\n    test 177 degrees_: degrees ('X'): strDMS ('X') or suffix ('NSEW'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 178 .named: Test\n    test 179 .named2: Degrees_ 'Test'\n    test 180 .str: 1.0\n    test 181 .toStr: 1.0\n    test 182 .repr: 1.0\n    test 183 .toRepr: Test (1.0)\n    test 184 .units: degrees_\n    test 185 .name: Test\n    test 186 ._name: Test\n    test 187 .str: 1.0\n    test 188 .repr: 1.0\n    test 189 delattr: ''\n\n    testing Distance(1.0,) (pygeodesy.units, 26.03.12)\n    test 190 .classname: Distance\n    test 191 isinstance: True\n    test 192 .name: distance\n    test 193 .named: distance\n    test 194 .named2: Distance 'distance'\n    test 195 .str: 1.0\n    test 196 .toStr: 1.0\n    test 197 .std_repr: True\n    test 198 .repr: 1.0\n    test 199 .toRepr: distance (1.0)\n    test 200 .units: distance\n    test 201 distance: distance ('X'): could not convert string to float: 'X'\n    test 202 distance: U ('X'): could not convert string to float: 'X'\n    test 203 distance: TypeError\n    test 204 distance: distance ('X'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 205 .named: Test\n    test 206 .named2: Distance 'Test'\n    test 207 .str: 1.0\n    test 208 .toStr: 1.0\n    test 209 .repr: 1.0\n    test 210 .toRepr: Test (1.0)\n    test 211 .units: distance\n    test 212 .name: Test\n    test 213 ._name: Test\n    test 214 .str: 1.0\n    test 215 .repr: 1.0\n    test 216 delattr: ''\n\n    testing Distance_(1.0,) (pygeodesy.units, 26.03.12)\n    test 217 .classname: Distance_\n    test 218 isinstance: True\n    test 219 .name: distance_\n    test 220 .named: distance_\n    test 221 .named2: Distance_ 'distance_'\n    test 222 .str: 1.0\n    test 223 .toStr: 1.0\n    test 224 .std_repr: True\n    test 225 .repr: 1.0\n    test 226 .toRepr: distance_ (1.0)\n    test 227 .units: distance_\n    test 228 distance_: distance ('X'): could not convert string to float: 'X'\n    test 229 distance_: U ('X'): could not convert string to float: 'X'\n    test 230 distance_: TypeError\n    test 231 distance_: distance ('X'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 232 .named: Test\n    test 233 .named2: Distance_ 'Test'\n    test 234 .str: 1.0\n    test 235 .toStr: 1.0\n    test 236 .repr: 1.0\n    test 237 .toRepr: Test (1.0)\n    test 238 .units: distance_\n    test 239 .name: Test\n    test 240 ._name: Test\n    test 241 .str: 1.0\n    test 242 .repr: 1.0\n    test 243 delattr: ''\n\n    testing Easting(1.0,) (pygeodesy.units, 26.03.12)\n    test 244 .classname: Easting\n    test 245 isinstance: True\n    test 246 .name: easting\n    test 247 .named: easting\n    test 248 .named2: Easting 'easting'\n    test 249 .str: 1.0\n    test 250 .toStr: 1.0\n    test 251 .std_repr: True\n    test 252 .repr: 1.0\n    test 253 .toRepr: easting (1.0)\n    test 254 .units: easting\n    test 255 easting: easting ('X'): could not convert string to float: 'X'\n    test 256 easting: U ('X'): could not convert string to float: 'X'\n    test 257 easting: TypeError\n    test 258 easting: easting ('X'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 259 .named: Test\n    test 260 .named2: Easting 'Test'\n    test 261 .str: 1.0\n    test 262 .toStr: 1.0\n    test 263 .repr: 1.0\n    test 264 .toRepr: Test (1.0)\n    test 265 .units: easting\n    test 266 .name: Test\n    test 267 ._name: Test\n    test 268 .str: 1.0\n    test 269 .repr: 1.0\n    test 270 delattr: ''\n\n    testing Feet(1.0,) (pygeodesy.units, 26.03.12)\n    test 271 .classname: Feet\n    test 272 isinstance: True\n    test 273 .name: feet\n    test 274 .named: feet\n    test 275 .named2: Feet 'feet'\n    test 276 .str: 1.0\n    test 277 .toStr: 1.0\n    test 278 .std_repr: True\n    test 279 .repr: 1.0\n    test 280 .toRepr: feet (1.0)\n    test 281 .units: feet\n    test 282 feet: feet ('X'): could not convert string to float: 'X'\n    test 283 feet: U ('X'): could not convert string to float: 'X'\n    test 284 feet: TypeError\n    test 285 feet: feet ('X'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 286 .named: Test\n    test 287 .named2: Feet 'Test'\n    test 288 .str: 1.0\n    test 289 .toStr: 1.0\n    test 290 .repr: 1.0\n    test 291 .toRepr: Test (1.0)\n    test 292 .units: feet\n    test 293 .name: Test\n    test 294 ._name: Test\n    test 295 .str: 1.0\n    test 296 .repr: 1.0\n    test 297 delattr: ''\n\n    testing Float_(1.0,) (pygeodesy.units, 26.03.12)\n    test 298 .classname: Float_\n    test 299 isinstance: True\n    test 300 .name: float_\n    test 301 .named: float_\n    test 302 .named2: Float_ 'float_'\n    test 303 .str: 1.0\n    test 304 .toStr: 1.0\n    test 305 .std_repr: True\n    test 306 .repr: 1.0\n    test 307 .toRepr: float_ (1.0)\n    test 308 .units: float_\n    test 309 float_: Float_ ('X'): could not convert string to float: 'X'\n    test 310 float_: U ('X'): could not convert string to float: 'X'\n    test 311 float_: TypeError\n    test 312 float_: Float_ ('X'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 313 .named: Test\n    test 314 .named2: Float_ 'Test'\n    test 315 .str: 1.0\n    test 316 .toStr: 1.0\n    test 317 .repr: 1.0\n    test 318 .toRepr: Test (1.0)\n    test 319 .units: float_\n    test 320 .name: Test\n    test 321 ._name: Test\n    test 322 .str: 1.0\n    test 323 .repr: 1.0\n    test 324 delattr: ''\n\n    testing Height(1.0,) (pygeodesy.units, 26.03.12)\n    test 325 .classname: Height\n    test 326 isinstance: True\n    test 327 .name: height\n    test 328 .named: height\n    test 329 .named2: Height 'height'\n    test 330 .str: 1.0\n    test 331 .toStr: 1.0\n    test 332 .std_repr: True\n    test 333 .repr: 1.0\n    test 334 .toRepr: height (1.0)\n    test 335 .units: height\n    test 336 height: height ('X'): could not convert string to float: 'X'\n    test 337 height: U ('X'): could not convert string to float: 'X'\n    test 338 height: TypeError\n    test 339 height: height ('X'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 340 .named: Test\n    test 341 .named2: Height 'Test'\n    test 342 .str: 1.0\n    test 343 .toStr: 1.0\n    test 344 .repr: 1.0\n    test 345 .toRepr: Test (1.0)\n    test 346 .units: height\n    test 347 .name: Test\n    test 348 ._name: Test\n    test 349 .str: 1.0\n    test 350 .repr: 1.0\n    test 351 delattr: ''\n\n    testing HeightX(1.0,) (pygeodesy.units, 26.03.12)\n    test 352 .classname: HeightX\n    test 353 isinstance: True\n    test 354 .name: heightx\n    test 355 .named: heightx\n    test 356 .named2: HeightX 'heightx'\n    test 357 .str: 1.0\n    test 358 .toStr: 1.0\n    test 359 .std_repr: True\n    test 360 .repr: 1.0\n    test 361 .toRepr: heightx (1.0)\n    test 362 .units: heightx\n    test 363 heightx: height ('X'): could not convert string to float: 'X'\n    test 364 heightx: U ('X'): could not convert string to float: 'X'\n    test 365 heightx: TypeError\n    test 366 heightx: height ('X'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 367 .named: Test\n    test 368 .named2: HeightX 'Test'\n    test 369 .str: 1.0\n    test 370 .toStr: 1.0\n    test 371 .repr: 1.0\n    test 372 .toRepr: Test (1.0)\n    test 373 .units: heightx\n    test 374 .name: Test\n    test 375 ._name: Test\n    test 376 .str: 1.0\n    test 377 .repr: 1.0\n    test 378 delattr: ''\n\n    testing Height_(1.0,) (pygeodesy.units, 26.03.12)\n    test 379 .classname: Height_\n    test 380 isinstance: True\n    test 381 .name: height_\n    test 382 .named: height_\n    test 383 .named2: Height_ 'height_'\n    test 384 .str: 1.0\n    test 385 .toStr: 1.0\n    test 386 .std_repr: True\n    test 387 .repr: 1.0\n    test 388 .toRepr: height_ (1.0)\n    test 389 .units: height_\n    test 390 height_: height ('X'): could not convert string to float: 'X'\n    test 391 height_: U ('X'): could not convert string to float: 'X'\n    test 392 height_: TypeError\n    test 393 height_: height ('X'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 394 .named: Test\n    test 395 .named2: Height_ 'Test'\n    test 396 .str: 1.0\n    test 397 .toStr: 1.0\n    test 398 .repr: 1.0\n    test 399 .toRepr: Test (1.0)\n    test 400 .units: height_\n    test 401 .name: Test\n    test 402 ._name: Test\n    test 403 .str: 1.0\n    test 404 .repr: 1.0\n    test 405 delattr: ''\n\n    testing Lam(1.0,) (pygeodesy.units, 26.03.12)\n    test 406 .classname: Lam\n    test 407 isinstance: True\n    test 408 .name: lam\n    test 409 .named: lam\n    test 410 .named2: Lam 'lam'\n    test 411 .str: 1.0\n    test 412 .toStr: 1.0\n    test 413 .std_repr: True\n    test 414 .repr: 1.0\n    test 415 .toRepr: lam (1.0)\n    test 416 .units: lam\n    test 417 lam: lam ('X'): strRad ('X') or suffix ('EW'): could not convert string to float: 'X'\n    test 418 lam: U ('X'): strRad ('X') or suffix ('EW'): could not convert string to float: 'X'\n    test 419 lam: TypeError\n    test 420 lam: lam ('X'): strRad ('X') or suffix ('EW'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 421 .named: Test\n    test 422 .named2: Lam 'Test'\n    test 423 .str: 1.0\n    test 424 .toStr: 1.0\n    test 425 .repr: 1.0\n    test 426 .toRepr: Test (1.0)\n    test 427 .units: lam\n    test 428 .name: Test\n    test 429 ._name: Test\n    test 430 .str: 1.0\n    test 431 .repr: 1.0\n    test 432 delattr: ''\n\n    testing Lat(1.0,) (pygeodesy.units, 26.03.12)\n    test 433 .classname: Lat\n    test 434 isinstance: True\n    test 435 .name: lat\n    test 436 .named: lat\n    test 437 .named2: Lat 'lat'\n    test 438 .str: 1.0\n    test 439 .toStr: 1.0\n    test 440 .std_repr: True\n    test 441 .repr: 1.0\n    test 442 .toRepr: lat (1.0)\n    test 443 .units: lat\n    test 444 lat: lat ('X'): strDMS ('X') or suffix ('NS'): could not convert string to float: 'X'\n    test 445 lat: U ('X'): strDMS ('X') or suffix ('NS'): could not convert string to float: 'X'\n    test 446 lat: TypeError\n    test 447 lat: lat ('X'): strDMS ('X') or suffix ('NS'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 448 .named: Test\n    test 449 .named2: Lat 'Test'\n    test 450 .str: 1.0\n    test 451 .toStr: 1.0\n    test 452 .repr: 1.0\n    test 453 .toRepr: Test (1.0)\n    test 454 .units: lat\n    test 455 .name: Test\n    test 456 ._name: Test\n    test 457 .str: 1.0\n    test 458 .repr: 1.0\n    test 459 delattr: ''\n\n    testing Lat_(1.0,) (pygeodesy.units, 26.03.12)\n    test 460 .classname: Lat_\n    test 461 isinstance: True\n    test 462 .name: lat_\n    test 463 .named: lat_\n    test 464 .named2: Lat_ 'lat_'\n    test 465 .str: 1.0\n    test 466 .toStr: 1.0\n    test 467 .std_repr: True\n    test 468 .repr: 1.0\n    test 469 .toRepr: lat_ (1.0)\n    test 470 .units: lat_\n    test 471 lat_: lat ('X'): strDMS ('X') or suffix ('NS'): could not convert string to float: 'X'\n    test 472 lat_: U ('X'): strDMS ('X') or suffix ('NS'): could not convert string to float: 'X'\n    test 473 lat_: TypeError\n    test 474 lat_: lat ('X'): strDMS ('X') or suffix ('NS'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 475 .named: Test\n    test 476 .named2: Lat_ 'Test'\n    test 477 .str: 1.0\n    test 478 .toStr: 1.0\n    test 479 .repr: 1.0\n    test 480 .toRepr: Test (1.0)\n    test 481 .units: lat_\n    test 482 .name: Test\n    test 483 ._name: Test\n    test 484 .str: 1.0\n    test 485 .repr: 1.0\n    test 486 delattr: ''\n\n    testing Lon(1.0,) (pygeodesy.units, 26.03.12)\n    test 487 .classname: Lon\n    test 488 isinstance: True\n    test 489 .name: lon\n    test 490 .named: lon\n    test 491 .named2: Lon 'lon'\n    test 492 .str: 1.0\n    test 493 .toStr: 1.0\n    test 494 .std_repr: True\n    test 495 .repr: 1.0\n    test 496 .toRepr: lon (1.0)\n    test 497 .units: lon\n    test 498 lon: lon ('X'): strDMS ('X') or suffix ('EW'): could not convert string to float: 'X'\n    test 499 lon: U ('X'): strDMS ('X') or suffix ('EW'): could not convert string to float: 'X'\n    test 500 lon: TypeError\n    test 501 lon: lon ('X'): strDMS ('X') or suffix ('EW'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 502 .named: Test\n    test 503 .named2: Lon 'Test'\n    test 504 .str: 1.0\n    test 505 .toStr: 1.0\n    test 506 .repr: 1.0\n    test 507 .toRepr: Test (1.0)\n    test 508 .units: lon\n    test 509 .name: Test\n    test 510 ._name: Test\n    test 511 .str: 1.0\n    test 512 .repr: 1.0\n    test 513 delattr: ''\n\n    testing Lon_(1.0,) (pygeodesy.units, 26.03.12)\n    test 514 .classname: Lon_\n    test 515 isinstance: True\n    test 516 .name: lon_\n    test 517 .named: lon_\n    test 518 .named2: Lon_ 'lon_'\n    test 519 .str: 1.0\n    test 520 .toStr: 1.0\n    test 521 .std_repr: True\n    test 522 .repr: 1.0\n    test 523 .toRepr: lon_ (1.0)\n    test 524 .units: lon_\n    test 525 lon_: lon ('X'): strDMS ('X') or suffix ('EW'): could not convert string to float: 'X'\n    test 526 lon_: U ('X'): strDMS ('X') or suffix ('EW'): could not convert string to float: 'X'\n    test 527 lon_: TypeError\n    test 528 lon_: lon ('X'): strDMS ('X') or suffix ('EW'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 529 .named: Test\n    test 530 .named2: Lon_ 'Test'\n    test 531 .str: 1.0\n    test 532 .toStr: 1.0\n    test 533 .repr: 1.0\n    test 534 .toRepr: Test (1.0)\n    test 535 .units: lon_\n    test 536 .name: Test\n    test 537 ._name: Test\n    test 538 .str: 1.0\n    test 539 .repr: 1.0\n    test 540 delattr: ''\n\n    testing Meter(1.0,) (pygeodesy.units, 26.03.12)\n    test 541 .classname: Meter\n    test 542 isinstance: True\n    test 543 .name: meter\n    test 544 .named: meter\n    test 545 .named2: Meter 'meter'\n    test 546 .str: 1.0\n    test 547 .toStr: 1.0\n    test 548 .std_repr: True\n    test 549 .repr: 1.0\n    test 550 .toRepr: meter (1.0)\n    test 551 .units: meter\n    test 552 meter: meter ('X'): could not convert string to float: 'X'\n    test 553 meter: U ('X'): could not convert string to float: 'X'\n    test 554 meter: TypeError\n    test 555 meter: meter ('X'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 556 .named: Test\n    test 557 .named2: Meter 'Test'\n    test 558 .str: 1.0\n    test 559 .toStr: 1.0\n    test 560 .repr: 1.0\n    test 561 .toRepr: Test (1.0)\n    test 562 .units: meter\n    test 563 .name: Test\n    test 564 ._name: Test\n    test 565 .str: 1.0\n    test 566 .repr: 1.0\n    test 567 delattr: ''\n\n    testing Meter2(1.0,) (pygeodesy.units, 26.03.12)\n    test 568 .classname: Meter2\n    test 569 isinstance: True\n    test 570 .name: meter2\n    test 571 .named: meter2\n    test 572 .named2: Meter2 'meter2'\n    test 573 .str: 1.0\n    test 574 .toStr: 1.0\n    test 575 .std_repr: True\n    test 576 .repr: 1.0\n    test 577 .toRepr: meter2 (1.0)\n    test 578 .units: meter2\n    test 579 meter2: meter2 ('X'): could not convert string to float: 'X'\n    test 580 meter2: U ('X'): could not convert string to float: 'X'\n    test 581 meter2: TypeError\n    test 582 meter2: meter2 ('X'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 583 .named: Test\n    test 584 .named2: Meter2 'Test'\n    test 585 .str: 1.0\n    test 586 .toStr: 1.0\n    test 587 .repr: 1.0\n    test 588 .toRepr: Test (1.0)\n    test 589 .units: meter2\n    test 590 .name: Test\n    test 591 ._name: Test\n    test 592 .str: 1.0\n    test 593 .repr: 1.0\n    test 594 delattr: ''\n\n    testing Meter3(1.0,) (pygeodesy.units, 26.03.12)\n    test 595 .classname: Meter3\n    test 596 isinstance: True\n    test 597 .name: meter3\n    test 598 .named: meter3\n    test 599 .named2: Meter3 'meter3'\n    test 600 .str: 1.0\n    test 601 .toStr: 1.0\n    test 602 .std_repr: True\n    test 603 .repr: 1.0\n    test 604 .toRepr: meter3 (1.0)\n    test 605 .units: meter3\n    test 606 meter3: meter3 ('X'): could not convert string to float: 'X'\n    test 607 meter3: U ('X'): could not convert string to float: 'X'\n    test 608 meter3: TypeError\n    test 609 meter3: meter3 ('X'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 610 .named: Test\n    test 611 .named2: Meter3 'Test'\n    test 612 .str: 1.0\n    test 613 .toStr: 1.0\n    test 614 .repr: 1.0\n    test 615 .toRepr: Test (1.0)\n    test 616 .units: meter3\n    test 617 .name: Test\n    test 618 ._name: Test\n    test 619 .str: 1.0\n    test 620 .repr: 1.0\n    test 621 delattr: ''\n\n    testing Meter_(1.0,) (pygeodesy.units, 26.03.12)\n    test 622 .classname: Meter_\n    test 623 isinstance: True\n    test 624 .name: meter_\n    test 625 .named: meter_\n    test 626 .named2: Meter_ 'meter_'\n    test 627 .str: 1.0\n    test 628 .toStr: 1.0\n    test 629 .std_repr: True\n    test 630 .repr: 1.0\n    test 631 .toRepr: meter_ (1.0)\n    test 632 .units: meter_\n    test 633 meter_: meter ('X'): could not convert string to float: 'X'\n    test 634 meter_: U ('X'): could not convert string to float: 'X'\n    test 635 meter_: TypeError\n    test 636 meter_: meter ('X'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 637 .named: Test\n    test 638 .named2: Meter_ 'Test'\n    test 639 .str: 1.0\n    test 640 .toStr: 1.0\n    test 641 .repr: 1.0\n    test 642 .toRepr: Test (1.0)\n    test 643 .units: meter_\n    test 644 .name: Test\n    test 645 ._name: Test\n    test 646 .str: 1.0\n    test 647 .repr: 1.0\n    test 648 delattr: ''\n\n    testing Northing(1.0,) (pygeodesy.units, 26.03.12)\n    test 649 .classname: Northing\n    test 650 isinstance: True\n    test 651 .name: northing\n    test 652 .named: northing\n    test 653 .named2: Northing 'northing'\n    test 654 .str: 1.0\n    test 655 .toStr: 1.0\n    test 656 .std_repr: True\n    test 657 .repr: 1.0\n    test 658 .toRepr: northing (1.0)\n    test 659 .units: northing\n    test 660 northing: northing ('X'): could not convert string to float: 'X'\n    test 661 northing: U ('X'): could not convert string to float: 'X'\n    test 662 northing: TypeError\n    test 663 northing: northing ('X'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 664 .named: Test\n    test 665 .named2: Northing 'Test'\n    test 666 .str: 1.0\n    test 667 .toStr: 1.0\n    test 668 .repr: 1.0\n    test 669 .toRepr: Test (1.0)\n    test 670 .units: northing\n    test 671 .name: Test\n    test 672 ._name: Test\n    test 673 .str: 1.0\n    test 674 .repr: 1.0\n    test 675 delattr: ''\n\n    testing Phi(1.0,) (pygeodesy.units, 26.03.12)\n    test 676 .classname: Phi\n    test 677 isinstance: True\n    test 678 .name: phi\n    test 679 .named: phi\n    test 680 .named2: Phi 'phi'\n    test 681 .str: 1.0\n    test 682 .toStr: 1.0\n    test 683 .std_repr: True\n    test 684 .repr: 1.0\n    test 685 .toRepr: phi (1.0)\n    test 686 .units: phi\n    test 687 phi: phi ('X'): strRad ('X') or suffix ('NS'): could not convert string to float: 'X'\n    test 688 phi: U ('X'): strRad ('X') or suffix ('NS'): could not convert string to float: 'X'\n    test 689 phi: TypeError\n    test 690 phi: phi ('X'): strRad ('X') or suffix ('NS'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 691 .named: Test\n    test 692 .named2: Phi 'Test'\n    test 693 .str: 1.0\n    test 694 .toStr: 1.0\n    test 695 .repr: 1.0\n    test 696 .toRepr: Test (1.0)\n    test 697 .units: phi\n    test 698 .name: Test\n    test 699 ._name: Test\n    test 700 .str: 1.0\n    test 701 .repr: 1.0\n    test 702 delattr: ''\n\n    testing Radians(1.0,) (pygeodesy.units, 26.03.12)\n    test 703 .classname: Radians\n    test 704 isinstance: True\n    test 705 .name: radians\n    test 706 .named: radians\n    test 707 .named2: Radians 'radians'\n    test 708 .str: 1.0\n    test 709 .toStr: 1.0\n    test 710 .std_repr: True\n    test 711 .repr: 1.0\n    test 712 .toRepr: radians (1.0)\n    test 713 .units: radians\n    test 714 radians: radians ('X'): strRad ('X') or suffix ('NSEW'): could not convert string to float: 'X'\n    test 715 radians: U ('X'): strRad ('X') or suffix ('NSEW'): could not convert string to float: 'X'\n    test 716 radians: TypeError\n    test 717 radians: radians ('X'): strRad ('X') or suffix ('NSEW'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 718 .named: Test\n    test 719 .named2: Radians 'Test'\n    test 720 .str: 1.0\n    test 721 .toStr: 1.0\n    test 722 .repr: 1.0\n    test 723 .toRepr: Test (1.0)\n    test 724 .units: radians\n    test 725 .name: Test\n    test 726 ._name: Test\n    test 727 .str: 1.0\n    test 728 .repr: 1.0\n    test 729 delattr: ''\n\n    testing Radians2(1.0,) (pygeodesy.units, 26.03.12)\n    test 730 .classname: Radians2\n    test 731 isinstance: True\n    test 732 .name: radians2\n    test 733 .named: radians2\n    test 734 .named2: Radians2 'radians2'\n    test 735 .str: 1.0\n    test 736 .toStr: 1.0\n    test 737 .std_repr: True\n    test 738 .repr: 1.0\n    test 739 .toRepr: radians2 (1.0)\n    test 740 .units: radians2\n    test 741 radians2: radians2 ('X'): could not convert string to float: 'X'\n    test 742 radians2: U ('X'): could not convert string to float: 'X'\n    test 743 radians2: TypeError\n    test 744 radians2: radians2 ('X'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 745 .named: Test\n    test 746 .named2: Radians2 'Test'\n    test 747 .str: 1.0\n    test 748 .toStr: 1.0\n    test 749 .repr: 1.0\n    test 750 .toRepr: Test (1.0)\n    test 751 .units: radians2\n    test 752 .name: Test\n    test 753 ._name: Test\n    test 754 .str: 1.0\n    test 755 .repr: 1.0\n    test 756 delattr: ''\n\n    testing Radians_(1.0,) (pygeodesy.units, 26.03.12)\n    test 757 .classname: Radians_\n    test 758 isinstance: True\n    test 759 .name: radians_\n    test 760 .named: radians_\n    test 761 .named2: Radians_ 'radians_'\n    test 762 .str: 1.0\n    test 763 .toStr: 1.0\n    test 764 .std_repr: True\n    test 765 .repr: 1.0\n    test 766 .toRepr: radians_ (1.0)\n    test 767 .units: radians_\n    test 768 radians_: radians ('X'): strRad ('X') or suffix ('NSEW'): could not convert string to float: 'X'\n    test 769 radians_: U ('X'): strRad ('X') or suffix ('NSEW'): could not convert string to float: 'X'\n    test 770 radians_: TypeError\n    test 771 radians_: radians ('X'): strRad ('X') or suffix ('NSEW'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 772 .named: Test\n    test 773 .named2: Radians_ 'Test'\n    test 774 .str: 1.0\n    test 775 .toStr: 1.0\n    test 776 .repr: 1.0\n    test 777 .toRepr: Test (1.0)\n    test 778 .units: radians_\n    test 779 .name: Test\n    test 780 ._name: Test\n    test 781 .str: 1.0\n    test 782 .repr: 1.0\n    test 783 delattr: ''\n\n    testing Radius_(1.0,) (pygeodesy.units, 26.03.12)\n    test 784 .classname: Radius_\n    test 785 isinstance: True\n    test 786 .name: radius_\n    test 787 .named: radius_\n    test 788 .named2: Radius_ 'radius_'\n    test 789 .str: 1.0\n    test 790 .toStr: 1.0\n    test 791 .std_repr: True\n    test 792 .repr: 1.0\n    test 793 .toRepr: radius_ (1.0)\n    test 794 .units: radius_\n    test 795 radius_: radius ('X'): could not convert string to float: 'X'\n    test 796 radius_: U ('X'): could not convert string to float: 'X'\n    test 797 radius_: TypeError\n    test 798 radius_: radius ('X'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 799 .named: Test\n    test 800 .named2: Radius_ 'Test'\n    test 801 .str: 1.0\n    test 802 .toStr: 1.0\n    test 803 .repr: 1.0\n    test 804 .toRepr: Test (1.0)\n    test 805 .units: radius_\n    test 806 .name: Test\n    test 807 ._name: Test\n    test 808 .str: 1.0\n    test 809 .repr: 1.0\n    test 810 delattr: ''\n\n    testing Scalar(1.0,) (pygeodesy.units, 26.03.12)\n    test 811 .classname: Scalar\n    test 812 isinstance: True\n    test 813 .name: scalar\n    test 814 .named: scalar\n    test 815 .named2: Scalar 'scalar'\n    test 816 .str: 1.0\n    test 817 .toStr: 1.0\n    test 818 .std_repr: True\n    test 819 .repr: 1.0\n    test 820 .toRepr: scalar (1.0)\n    test 821 .units: scalar\n    test 822 scalar: scalar ('X'): could not convert string to float: 'X'\n    test 823 scalar: U ('X'): could not convert string to float: 'X'\n    test 824 scalar: TypeError\n    test 825 scalar: scalar ('X'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 826 .named: Test\n    test 827 .named2: Scalar 'Test'\n    test 828 .str: 1.0\n    test 829 .toStr: 1.0\n    test 830 .repr: 1.0\n    test 831 .toRepr: Test (1.0)\n    test 832 .units: scalar\n    test 833 .name: Test\n    test 834 ._name: Test\n    test 835 .str: 1.0\n    test 836 .repr: 1.0\n    test 837 delattr: ''\n\n    testing Scalar_(1.0,) (pygeodesy.units, 26.03.12)\n    test 838 .classname: Scalar_\n    test 839 isinstance: True\n    test 840 .name: scalar_\n    test 841 .named: scalar_\n    test 842 .named2: Scalar_ 'scalar_'\n    test 843 .str: 1.0\n    test 844 .toStr: 1.0\n    test 845 .std_repr: True\n    test 846 .repr: 1.0\n    test 847 .toRepr: scalar_ (1.0)\n    test 848 .units: scalar_\n    test 849 scalar_: scalar ('X'): could not convert string to float: 'X'\n    test 850 scalar_: U ('X'): could not convert string to float: 'X'\n    test 851 scalar_: TypeError\n    test 852 scalar_: scalar ('X'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 853 .named: Test\n    test 854 .named2: Scalar_ 'Test'\n    test 855 .str: 1.0\n    test 856 .toStr: 1.0\n    test 857 .repr: 1.0\n    test 858 .toRepr: Test (1.0)\n    test 859 .units: scalar_\n    test 860 .name: Test\n    test 861 ._name: Test\n    test 862 .str: 1.0\n    test 863 .repr: 1.0\n    test 864 delattr: ''\n\n    testing Float(1.0,) (pygeodesy.units, 26.03.12)\n    test 865 .classname: Float\n    test 866 isinstance: True\n    test 867 .name: float\n    test 868 .named: float\n    test 869 .named2: Float 'float'\n    test 870 .str: 1.0\n    test 871 .toStr: 1.0\n    test 872 .std_repr: True\n    test 873 .repr: 1.0\n    test 874 .toRepr: float (1.0)\n    test 875 .units: float\n    test 876 float: Float ('X'): could not convert string to float: 'X'\n    test 877 float: U ('X'): could not convert string to float: 'X'\n    test 878 float: TypeError\n    test 879 float: Float ('X'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 880 .named: Test\n    test 881 .named2: Float 'Test'\n    test 882 .str: 1.0\n    test 883 .toStr: 1.0\n    test 884 .repr: 1.0\n    test 885 .toRepr: Test (1.0)\n    test 886 .units: float\n    test 887 .name: Test\n    test 888 ._name: Test\n    test 889 .str: 1.0\n    test 890 .repr: 1.0\n    test 891 delattr: ''\n\n    testing Radius(1.0,) (pygeodesy.units, 26.03.12)\n    test 892 .classname: Radius\n    test 893 isinstance: True\n    test 894 .name: radius\n    test 895 .named: radius\n    test 896 .named2: Radius 'radius'\n    test 897 .str: 1.0\n    test 898 .toStr: 1.0\n    test 899 .std_repr: True\n    test 900 .repr: 1.0\n    test 901 .toRepr: radius (1.0)\n    test 902 .units: radius\n    test 903 radius: radius ('X'): could not convert string to float: 'X'\n    test 904 radius: U ('X'): could not convert string to float: 'X'\n    test 905 radius: TypeError\n    test 906 radius: radius ('X'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 907 .named: Test\n    test 908 .named2: Radius 'Test'\n    test 909 .str: 1.0\n    test 910 .toStr: 1.0\n    test 911 .repr: 1.0\n    test 912 .toRepr: Test (1.0)\n    test 913 .units: radius\n    test 914 .name: Test\n    test 915 ._name: Test\n    test 916 .str: 1.0\n    test 917 .repr: 1.0\n    test 918 delattr: ''\n\n    testing _Lat(1.0,) (pygeodesy.units, 26.03.12)\n    test 919 .classname: _Lat\n    test 920 isinstance: True\n    test 921 .name: _lat\n    test 922 .named: _lat\n    test 923 .named2: _Lat '_lat'\n    test 924 .str: 1.0\n    test 925 .toStr: 1.0\n    test 926 .std_repr: True\n    test 927 .repr: 1.0\n    test 928 .toRepr: _lat (1.0)\n    test 929 .units: _lat\n    test 930 _lat: lat ('X'): strDMS ('X') or suffix ('NS'): could not convert string to float: 'X'\n    test 931 _lat: U ('X'): strDMS ('X') or suffix ('NS'): could not convert string to float: 'X'\n    test 932 _lat: TypeError\n    test 933 _lat: lat ('X'): strDMS ('X') or suffix ('NS'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 934 .named: Test\n    test 935 .named2: _Lat 'Test'\n    test 936 .str: 1.0\n    test 937 .toStr: 1.0\n    test 938 .repr: 1.0\n    test 939 .toRepr: Test (1.0)\n    test 940 .units: _lat\n    test 941 .name: Test\n    test 942 ._name: Test\n    test 943 .str: 1.0\n    test 944 .repr: 1.0\n    test 945 delattr: ''\n\n    testing _Lon(1.0,) (pygeodesy.units, 26.03.12)\n    test 946 .classname: _Lon\n    test 947 isinstance: True\n    test 948 .name: _lon\n    test 949 .named: _lon\n    test 950 .named2: _Lon '_lon'\n    test 951 .str: 1.0\n    test 952 .toStr: 1.0\n    test 953 .std_repr: True\n    test 954 .repr: 1.0\n    test 955 .toRepr: _lon (1.0)\n    test 956 .units: _lon\n    test 957 _lon: lon ('X'): strDMS ('X') or suffix ('EW'): could not convert string to float: 'X'\n    test 958 _lon: U ('X'): strDMS ('X') or suffix ('EW'): could not convert string to float: 'X'\n    test 959 _lon: TypeError\n    test 960 _lon: lon ('X'): strDMS ('X') or suffix ('EW'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 961 .named: Test\n    test 962 .named2: _Lon 'Test'\n    test 963 .str: 1.0\n    test 964 .toStr: 1.0\n    test 965 .repr: 1.0\n    test 966 .toRepr: Test (1.0)\n    test 967 .units: _lon\n    test 968 .name: Test\n    test 969 ._name: Test\n    test 970 .str: 1.0\n    test 971 .repr: 1.0\n    test 972 delattr: ''\n\n    testing Band('U',) (pygeodesy.units, 26.03.12)\n    test 973 .classname: Band\n    test 974 isinstance: True\n    test 975 .name: band\n    test 976 .named: band\n    test 977 .named2: Band 'band'\n    test 978 .str: U\n    test 979 .toStr: U\n    test 980 .std_repr: True\n    test 981 .repr: 'U'\n    test 982 .toRepr: band ('U')\n    test 983 .units: band\n    test 984 error: X  FAILED, KNOWN, expected <class 'ValueError'>\n    test 985 error: X  FAILED, KNOWN, expected <class 'ValueError'>\n    test 986 Error: X  FAILED, KNOWN, expected <class 'TypeError'>\n    test 987 .named: Test\n    test 988 .named2: Band 'Test'\n    test 989 .str: U\n    test 990 .toStr: U\n    test 991 .repr: 'U'\n    test 992 .toRepr: Test ('U')\n    test 993 .units: band\n    test 994 .name: Test\n    test 995 ._name: Test\n    test 996 .str: U\n    test 997 .repr: 'U'\n    test 998 delattr: ''\n\n    testing Str('U',) (pygeodesy.units, 26.03.12)\n    test 999 .classname: Str\n    test 1000 isinstance: True\n    test 1001 .name: str\n    test 1002 .named: str\n    test 1003 .named2: Str 'str'\n    test 1004 .str: U\n    test 1005 .toStr: U\n    test 1006 .std_repr: True\n    test 1007 .repr: 'U'\n    test 1008 .toRepr: str ('U')\n    test 1009 .units: str\n    test 1010 error: X  FAILED, KNOWN, expected <class 'ValueError'>\n    test 1011 error: X  FAILED, KNOWN, expected <class 'ValueError'>\n    test 1012 Error: X  FAILED, KNOWN, expected <class 'TypeError'>\n    test 1013 .named: Test\n    test 1014 .named2: Str 'Test'\n    test 1015 .str: U\n    test 1016 .toStr: U\n    test 1017 .repr: 'U'\n    test 1018 .toRepr: Test ('U')\n    test 1019 .units: str\n    test 1020 .name: Test\n    test 1021 ._name: Test\n    test 1022 .str: U\n    test 1023 .repr: 'U'\n    test 1024 delattr: ''\n\n    testing Bool(True,) (pygeodesy.units, 26.03.12)\n    test 1025 .classname: Bool\n    test 1026 isinstance: True\n    test 1027 .name: bool\n    test 1028 .named: bool\n    test 1029 .named2: Bool 'bool'\n    test 1030 .str: True\n    test 1031 .toStr: True\n    test 1032 .std_repr: True\n    test 1033 .repr: True\n    test 1034 .toRepr: bool (True)\n    test 1035 .units: bool\n    test 1036 error: True  FAILED, KNOWN, expected <class 'ValueError'>\n    test 1037 error: True  FAILED, KNOWN, expected <class 'ValueError'>\n    test 1038 Error: True  FAILED, KNOWN, expected <class 'TypeError'>\n    test 1039 .named: Test\n    test 1040 .named2: Bool 'Test'\n    test 1041 .str: True\n    test 1042 .toStr: True\n    test 1043 .repr: True\n    test 1044 .toRepr: Test (True)\n    test 1045 .units: bool\n    test 1046 .name: Test\n    test 1047 ._name: Test\n    test 1048 .str: True\n    test 1049 .repr: True\n    test 1050 delattr: ''\n\n    testing Int(2,) (pygeodesy.units, 26.03.12)\n    test 1051 .classname: Int\n    test 1052 isinstance: True\n    test 1053 .name: int\n    test 1054 .named: int\n    test 1055 .named2: Int 'int'\n    test 1056 .str: 2\n    test 1057 .toStr: 2\n    test 1058 .std_repr: True\n    test 1059 .repr: 2\n    test 1060 .toRepr: int (2)\n    test 1061 .units: int\n    test 1062 int: Int ('X'): invalid literal for int() with base 10: 'X'\n    test 1063 int: U ('X'): invalid literal for int() with base 10: 'X'\n    test 1064 int: TypeError\n    test 1065 int: Int ('X'): invalid literal for int() with base 10: 'X'  FAILED, KNOWN, expected 'X'\n    test 1066 .named: Test\n    test 1067 .named2: Int 'Test'\n    test 1068 .str: 2\n    test 1069 .toStr: 2\n    test 1070 .repr: 2\n    test 1071 .toRepr: Test (2)\n    test 1072 .units: int\n    test 1073 .name: Test\n    test 1074 ._name: Test\n    test 1075 .str: 2\n    test 1076 .repr: 2\n    test 1077 delattr: ''\n\n    testing Int_(2,) (pygeodesy.units, 26.03.12)\n    test 1078 .classname: Int_\n    test 1079 isinstance: True\n    test 1080 .name: int_\n    test 1081 .named: int_\n    test 1082 .named2: Int_ 'int_'\n    test 1083 .str: 2\n    test 1084 .toStr: 2\n    test 1085 .std_repr: True\n    test 1086 .repr: 2\n    test 1087 .toRepr: int_ (2)\n    test 1088 .units: int_\n    test 1089 int_: Int_ ('X'): invalid literal for int() with base 10: 'X'\n    test 1090 int_: U ('X'): invalid literal for int() with base 10: 'X'\n    test 1091 int_: TypeError\n    test 1092 int_: Int_ ('X'): invalid literal for int() with base 10: 'X'  FAILED, KNOWN, expected 'X'\n    test 1093 .named: Test\n    test 1094 .named2: Int_ 'Test'\n    test 1095 .str: 2\n    test 1096 .toStr: 2\n    test 1097 .repr: 2\n    test 1098 .toRepr: Test (2)\n    test 1099 .units: int_\n    test 1100 .name: Test\n    test 1101 ._name: Test\n    test 1102 .str: 2\n    test 1103 .repr: 2\n    test 1104 delattr: ''\n\n    testing Number_(2,) (pygeodesy.units, 26.03.12)\n    test 1105 .classname: Number_\n    test 1106 isinstance: True\n    test 1107 .name: number_\n    test 1108 .named: number_\n    test 1109 .named2: Number_ 'number_'\n    test 1110 .str: 2\n    test 1111 .toStr: 2\n    test 1112 .std_repr: True\n    test 1113 .repr: 2\n    test 1114 .toRepr: number_ (2)\n    test 1115 .units: number_\n    test 1116 number_: number ('X'): invalid literal for int() with base 10: 'X'\n    test 1117 number_: U ('X'): invalid literal for int() with base 10: 'X'\n    test 1118 number_: TypeError\n    test 1119 number_: number ('X'): invalid literal for int() with base 10: 'X'  FAILED, KNOWN, expected 'X'\n    test 1120 .named: Test\n    test 1121 .named2: Number_ 'Test'\n    test 1122 .str: 2\n    test 1123 .toStr: 2\n    test 1124 .repr: 2\n    test 1125 .toRepr: Test (2)\n    test 1126 .units: number_\n    test 1127 .name: Test\n    test 1128 ._name: Test\n    test 1129 .str: 2\n    test 1130 .repr: 2\n    test 1131 delattr: ''\n\n    testing Precision_(2,) (pygeodesy.units, 26.03.12)\n    test 1132 .classname: Precision_\n    test 1133 isinstance: True\n    test 1134 .name: precision_\n    test 1135 .named: precision_\n    test 1136 .named2: Precision_ 'precision_'\n    test 1137 .str: 2\n    test 1138 .toStr: 2\n    test 1139 .std_repr: True\n    test 1140 .repr: 2\n    test 1141 .toRepr: precision_ (2)\n    test 1142 .units: precision_\n    test 1143 precision_: precision ('X'): invalid literal for int() with base 10: 'X'\n    test 1144 precision_: U ('X'): invalid literal for int() with base 10: 'X'\n    test 1145 precision_: TypeError\n    test 1146 precision_: precision ('X'): invalid literal for int() with base 10: 'X'  FAILED, KNOWN, expected 'X'\n    test 1147 .named: Test\n    test 1148 .named2: Precision_ 'Test'\n    test 1149 .str: 2\n    test 1150 .toStr: 2\n    test 1151 .repr: 2\n    test 1152 .toRepr: Test (2)\n    test 1153 .units: precision_\n    test 1154 .name: Test\n    test 1155 ._name: Test\n    test 1156 .str: 2\n    test 1157 .repr: 2\n    test 1158 delattr: ''\n\n    testing Zone(2,) (pygeodesy.units, 26.03.12)\n    test 1159 .classname: Zone\n    test 1160 isinstance: True\n    test 1161 .name: zone\n    test 1162 .named: zone\n    test 1163 .named2: Zone 'zone'\n    test 1164 .str: 2\n    test 1165 .toStr: 2\n    test 1166 .std_repr: True\n    test 1167 .repr: 2\n    test 1168 .toRepr: zone (2)\n    test 1169 .units: zone\n    test 1170 zone: zone ('X'): invalid literal for int() with base 10: 'X'\n    test 1171 zone: U ('X'): invalid literal for int() with base 10: 'X'\n    test 1172 zone: TypeError\n    test 1173 zone: zone ('X'): invalid literal for int() with base 10: 'X'  FAILED, KNOWN, expected 'X'\n    test 1174 .named: Test\n    test 1175 .named2: Zone 'Test'\n    test 1176 .str: 2\n    test 1177 .toStr: 2\n    test 1178 .repr: 2\n    test 1179 .toRepr: Test (2)\n    test 1180 .units: zone\n    test 1181 .name: Test\n    test 1182 ._name: Test\n    test 1183 .str: 2\n    test 1184 .repr: 2\n    test 1185 delattr: ''\n\n    testing Epoch(1901,) (pygeodesy.units, 26.03.12)\n    test 1186 .classname: Epoch\n    test 1187 isinstance: True\n    test 1188 .name: epoch\n    test 1189 .named: epoch\n    test 1190 .named2: Epoch 'epoch'\n    test 1191 .str: 1901\n    test 1192 .toStr: 1901\n    test 1193 .std_repr: False\n    test 1194 .repr: epoch (1901)\n    test 1195 .toRepr: epoch (1901)\n    test 1196 .units: epoch\n    test 1197 epoch: epoch ('X'): could not convert string to float: 'X'\n    test 1198 epoch: U ('X'): could not convert string to float: 'X'\n    test 1199 epoch: TypeError\n    test 1200 epoch: epoch ('X'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 1201 .named: Test\n    test 1202 .named2: Epoch 'Test'\n    test 1203 .str: 1901\n    test 1204 .toStr: 1901\n    test 1205 .repr: Test (1901)\n    test 1206 .toRepr: Test (1901)\n    test 1207 .units: epoch\n    test 1208 .name: Test\n    test 1209 ._name: Test\n    test 1210 .str: 1901\n    test 1211 .repr: Test (1901)\n    test 1212 delattr: ''\n\n    testing(pygeodesy.units, 26.03.12)\n\n    test 1213 Azimuth: 1.0\n\n    test 1214 Bearing: 1.0\n    test 1215 Bearing_: 0.01745\n\n    test 1216 Lamd: 6.30\n    test 1217 Phid: 6.30\n\n    test 1218 FIx: 1.0  FAILED, KNOWN, expected 1\n    test 1219 FIx: 1.5\n\n    test 1220 Dash: -\n    test 1221 Dash: -\n\n    test 1222 Dash: '-'\n    test 1223 Dash: Dash ('-')\n\n    test 1224 Join_d: c-a-l-l\n    test 1225 Join_d: c-a-l-l\n\n    test 1226 Join_d: 'c-a-l-l'\n    test 1227 Join_d: Join_d ('c-a-l-l')\n\n    52 of 1227 testUnits.py tests (4.2%) FAILED, ALL KNOWN (pygeodesy 26.3.26 Python 3.11.9 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 1.24.2 scipy 1.10.1 Math 2 macOS 26.3.1 isLazy 0 -W  default) 19.189 ms\nrunning /usr/local/bin/p....n3.11 -W default ~/PyGeodesy/test/testUps.py\n\n    testing testUps.py 23.03.27 (module pygeodesy.ups 25.04.14)\n    test 1 Ups: 00 N 448251.0 5411932.0001\n    test 2 Ups: 00 N 448252 5411933\n    test 3 Ups: 00 N 448251.795 5411932.678\n    test 4 Ups: 00Z N 448251.8 5411932.7 n/a n/a\n    test 5 Ups2: [Z:00, H:N, E:448252, N:5411933]\n    test 6 UtmUps.toLatLon: 43.610051°N, 004.46308°E\n    test 7 UtmUps.toLatLon: 43°36′36.18″N, 004°27′47.09″E\n    test 8 UtmUps.toMgrs: 60T UP 60176 38249\n    test 9 toUps: lat ('43.684097°'): inside UTM range [-79.5, 83.5]\n    test 10 UtmUps.toUtm: 60 N 360177 4838249\n    test 11 toUpsID1: 00 N 1530125.78 2426773.6 -132.24798917° 0.99647445\n    test 12 toUtmUps8ID2: 38 N 467367.68 8100752.13 -57.37878422′ 0.99961302  FAILED, KNOWN, expected 38 N 3320416.75 632668.43 +44.0° 1.01619505\n    test 13 toUtmUps8ID2: 00 N 3320416.75 632668.43 +44.0° 1.01619505\n    test 14 toUpsID3: 00 S 2222979.47 1797474.9 -132.24786194° 0.99455723\n    test 15 Ups.toLatLonID4: 84°17′14.04″N, 132°14′52.76″W\n    test 16 Ups.toLatLonID4: 84.287234°N, 132.247989°W\n    test 17 Ups.toLatLonID5: 73°00′00.0″N, 044°00′00.0″E\n    test 18 Ups.toLatLonID5: 73.0°N, 044.0°E\n    test 19 Ups.toLatLonID6: 87°17′14.4″S, 132°14′52.3″E\n    test 20 Ups.toLatLonID6: 87.287333°S, 132.247861°E\n    test 21 latlon: 84.0°N, 084.0°E\n    test 22 toUps: 00 N 2663075 1930308\n    test 23 toUps: 00 N 2663075.299562 1930307.977716 +84.0° 0.99673\n    test 24 toUps(None): (0, 'N', 2663075.299562, 1930307.977716, 'Z', ...)\n    test 25 .scale0: 0.994000\n    test 26 rescale0: 0.997261\n    test 27 NGA-10.2-1: 00 N 2000000.0 2000000.0 +0.0″ 0.994\n    test 28 NGA-10.2-2: 00 N 1998062.320046 2111009.610243 -179.0° 0.994076\n    test 29 NGA-10.2-3: 00 N 1777930.731071 2000000.0 -90.0° 0.994303\n    test 30 NGA-10.2-4: 00 N 1994185.827038 1666906.254073 -1.0° 0.994682\n    test 31 NGA-10.2-5: 00 N 2000000.0 1555731.570643 +0.0″ 0.995212\n    test 32 NGA-10.2-6: 00 N 2009694.068153 1444627.207468 +1.0° 0.995895\n    test 33 NGA-10.2-7: 00 N 2666626.157825 1988363.997132 +89.0° 0.996730\n    test 34 NGA-10.2-8: 46 N 459200.256323 9217519.441609 -2.97767886° 0.997718\n    test 35 NGA-10.2-9: 46 N 468930.934996 9105366.008486 -1.98055172° 0.998860\n    test 36 NGA-10.2-10: 60 N 534921.971582 8993806.415149 +1.97539632° 1.000156\n    test 37 NGA-10.2-11: 01 N 441867.784867 8883084.955948 -2.95450468° 1.001608\n    test 38 NGA-10.2-12: 31 N 243900.35203 4432069.056899 -1.92940969° 1.0004075\n    test 39 NGA-10.2-13: 01 N 277707.830749 331796.291679 -6.28291137′ 1.00021172\n    test 40 NGA-10.2-14: 16 N 166223.907623 221366.16603 -6.28776606′ 1.00097936\n    test 41 NGA-10.2-15: 30 N 722561.736479 110597.972524 +2.09515682′ 1.00021322\n    test 42 NGA-10.2-16: 31 N 166021.443081 0.0 +0.0″ 1.00098106\n    test 43 NGA-10.2-17: 31 S 277438.263521 9889402.027476 +2.09515682′ 1.00021322\n    test 44 NGA-10.2-18: 46 S 166223.907623 9778633.83397 +6.28776606′ 1.00097936\n    test 45 NGA-10.2-19: 60 S 722292.169251 9668203.708321 -6.28291137′ 1.00021172\n    test 46 NGA-10.2-20: 01 S 166831.065275 9557263.747314 +12.56782777′ 1.00097428\n    test 47 NGA-10.3-1: -64.9164123332 -135.0\n    test 48 NGA-10.3-2: -70.0552944014 -153.4349488229\n    test 49 NGA-10.3-3: -72.1263610163 180.0  FAILED, KNOWN, expected -72.1263610163 -180.0\n    test 50 NGA-10.3-4: -70.0552944014 153.4349488229\n    test 51 NGA-10.3-5: -64.9164123332 135.0\n    test 52 NGA-10.3-6: -70.0552944014 -116.5650511771\n    test 53 NGA-10.3-7: -77.3120791908 -135.0\n    test 54 NGA-10.3-8: -81.0106632645 180.0\n    test 55 NGA-10.3-9: -77.3120791908 135.0\n    test 56 NGA-10.3-10: -70.0552944014 116.5650511771\n    test 57 NGA-10.3-11: -72.1263610163 -90.0\n    test 58 NGA-10.3-12: -81.0106632645 -90.0\n    test 59 NGA-10.3-13: -90.0 0.0\n    test 60 NGA-10.3-14: -81.0106632645 90.0\n    test 61 NGA-10.3-15: -72.1263610163 90.0\n    test 62 NGA-10.3-16: -70.0552944014 -63.4349488229\n    test 63 NGA-10.3-17: -77.3120791908 -45.0\n    test 64 NGA-10.3-18: -81.0106632645 0.0\n    test 65 NGA-10.3-19: -77.3120791908 45.0\n    test 66 NGA-10.3-20: -70.0552944014 63.4349488229\n    test 67 NGA-10.3-21: -64.9164123332 -45.0\n    test 68 NGA-10.3-22: -70.0552944014 -26.5650511771\n    test 69 NGA-10.3-23: -72.1263610163 0.0\n    test 70 NGA-10.3-24: -70.0552944014 26.5650511771\n    test 71 NGA-10.3-25: -64.9164123332 45.0\n    test 72 toUps: 00 N 2000000 1288738\n    test 73 toUtm: 02 N 611555 10703765\n    test 74 toUtm: [Z:00Z, H:N, E:2000000, N:2000000]\n\n    2 of 74 testUps.py tests (2.7%) FAILED, ALL KNOWN (pygeodesy 26.3.26 Python 3.11.9 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 1.24.2 scipy 1.10.1 Math 2 macOS 26.3.1 isLazy 0 -W  default) 34.826 ms\nrunning /usr/local/bin/p....n3.11 -W default ~/PyGeodesy/test/testUtily.py\n\n    testing testUtily.py 24.12.24 (module pygeodesy.utily 26.03.20)\n\n    test 1 degrees90(PI_2): 90.0\n    test 2 degrees90(PI): 0.0\n    test 3 degrees90(PI2): 0.0\n    test 4 degrees90(-PI_2): -90.0\n    test 5 degrees90(-PI): 0.0\n    test 6 degrees90(-PI2): 0.0\n\n    test 7 degrees180(PI_2): 90.0\n    test 8 degrees180(PI): 180.0\n    test 9 degrees180(PI2): 0.0\n    test 10 degrees180(-PI_2): -90.0\n    test 11 degrees180(-PI): -180.0\n    test 12 degrees180(-PI2): 0.0\n\n    test 13 degrees360(PI_2): 90.0\n    test 14 degrees360(PI): 180.0\n    test 15 degrees360(PI2): 0.0\n    test 16 degrees360(-PI_2): 270.0\n    test 17 degrees360(-PI): 180.0\n    test 18 degrees360(-PI2): 0.0\n\n    test 19 degrees2grades(90): 100.0\n    test 20 degrees2grades(180): 200.0\n    test 21 degrees2grades(360): 400.0\n    test 22 degrees2grades(-90): -100.0\n    test 23 degrees2grades(-180): -200.0\n    test 24 degrees2grades(-360): -400.0\n\n    test 25 grades400(PI_2): 100.0\n    test 26 grades400(PI): 200.0\n    test 27 grades400(PI2): 0.0\n    test 28 grades400(-PI_2): 300.0\n    test 29 grades400(-PI): 200.0\n    test 30 grades400(-PI2): 0.0\n\n    test 31 grades2degrees(100): 90.0\n    test 32 grades2degrees(200): 180.0\n    test 33 grades2degrees(400): 360.0\n    test 34 grades2degrees(-100): -90.0\n    test 35 grades2degrees(-200): -180.0\n    test 36 grades2degrees(-400): -360.0\n\n    test 37 grades2radians(100): 1.5707963267948966\n    test 38 grades2radians(200): 3.141592653589793\n    test 39 grades2radians(400): 6.283185307179586\n    test 40 grades2radians(-100): -1.5707963267948966\n    test 41 grades2radians(-200): -3.141592653589793\n    test 42 grades2radians(-400): -6.283185307179586\n\n    test 43 radiansPI_2(90): 1.5707963267948966\n    test 44 radiansPI_2(180): 0.0\n    test 45 radiansPI_2(360): 0.0\n    test 46 radiansPI_2(-90): -1.5707963267948966\n    test 47 radiansPI_2(-180): 0.0\n    test 48 radiansPI_2(-360): 0.0\n\n    test 49 radiansPI(90): 1.5707963267948966\n    test 50 radiansPI(180): 3.141592653589793\n    test 51 radiansPI(360): 0.0\n    test 52 radiansPI(-90): -1.5707963267948966\n    test 53 radiansPI(-180): -3.141592653589793\n    test 54 radiansPI(-360): 0.0\n\n    test 55 radiansPI2(90): 1.5707963267948966\n    test 56 radiansPI2(180): 3.141592653589793\n    test 57 radiansPI2(360): 0.0\n    test 58 radiansPI2(-90): 4.71238898038469\n    test 59 radiansPI2(-180): 3.141592653589793\n    test 60 radiansPI2(-360): 0.0\n\n    test 61 wrap90(90): 90.0\n    test 62 wrap90(180): 0.0\n    test 63 wrap90(360): 0.0\n    test 64 wrap90(-90): -90.0\n    test 65 wrap90(-180): 0.0\n    test 66 wrap90(-360): 0.0\n\n    test 67 wrap180(90): 90.0\n    test 68 wrap180(180): 180.0\n    test 69 wrap180(360): 0.0\n    test 70 wrap180(-90): -90.0\n    test 71 wrap180(-180): -180.0\n    test 72 wrap180(-360): 0.0\n\n    test 73 wrap360(90): 90.0\n    test 74 wrap360(180): 180.0\n    test 75 wrap360(360): 0.0\n    test 76 wrap360(-90): 270.0\n    test 77 wrap360(-180): 180.0\n    test 78 wrap360(-360): 0.0\n\n    test 79 wrapPI_2(PI_2): 1.5707963267948966\n    test 80 wrapPI_2(PI): 0.0\n    test 81 wrapPI_2(PI2): 0.0\n    test 82 wrapPI_2(-PI_2): -1.5707963267948966\n    test 83 wrapPI_2(-PI): 0.0\n    test 84 wrapPI_2(-PI2): 0.0\n\n    test 85 wrapPI(PI_2): 1.5707963267948966\n    test 86 wrapPI(PI): 3.141592653589793\n    test 87 wrapPI(PI2): 0.0\n    test 88 wrapPI(-PI_2): -1.5707963267948966\n    test 89 wrapPI(-PI): -3.141592653589793\n    test 90 wrapPI(-PI2): 0.0\n\n    test 91 wrapPI2(PI_2): 1.5707963267948966\n    test 92 wrapPI2(PI): 3.141592653589793\n    test 93 wrapPI2(PI2): 0.0\n    test 94 wrapPI2(-PI_2): 4.71238898038469\n    test 95 wrapPI2(-PI): 3.141592653589793\n    test 96 wrapPI2(-PI2): 0.0\n\n    test 97 unroll180: -160.0, -250.0\n    test 98 unroll180: 200.0, 110.0\n\n    test 99 unroll180: -160.0, -250.0\n    test 100 unroll180: 920.0, 830.0\n\n    test 101 unroll180: -160.0, -270.0\n    test 102 unroll180: 200.0, 90.0\n\n    test 103 unroll180: -160.0, -990.0\n    test 104 unroll180: 920.0, 90.0\n\n    test 105 atan1: 0.0\n    test 106 atan1: 0.0\n\n    test 107 cot  : -0.354707939906\n    test 108 cot_ : -0.354707939906\n\n    test 109 cotd : -0.354707939906\n    test 110 cotd_: -0.354707939906\n\n    test 111 sincos2: 3.885780586188048e-16  FAILED, KNOWN, expected 1.7763568394002505e-15\n    test 112 sincos2d: 9.992007221626409e-16  FAILED, KNOWN, expected 1.7763568394002505e-15\n\n    test 113 Matan2d : 2.842170943040401e-14  FAILED, KNOWN, expected 1.7763568394002505e-15\n    test 114 Msincosd: 8.881784197001252e-16  FAILED, KNOWN, expected 1.7763568394002505e-15\n    test 115 sincos*d: 2.7755575615628914e-16  FAILED, KNOWN, expected 1.7763568394002505e-15\n\n    test 116 tan  : -2.819220794060\n    test 117 tan_ : -2.819220794060\n\n    test 118 tand : -2.819220794060\n    test 119 tand_: -2.819220794060\n\n    test 120 iFt2m: 187441\n    test 121 iFt2m: 757050\n    test 122 sFt2m: 187441\n    test 123 sFt2m: 757050\n\n    test 124 m2iFt: 614963.91\n    test 125 m2iFt: 2483759.84\n    test 126 m2sFt: 614962.68\n    test 127 m2sFt: 2483754.88\n\n    test 128 acre2ha: 0.404686\n    test 129 acre2m2: 4046.856422\n    test 130 chain2m: 20.116800\n    test 131 fathom2m: 1.828800\n    test 132 furlong2m: 201.168000\n    test 133 ha2acre: 2.471054\n    test 134 toise2m: 1.949044\n    test 135 yard2m: 0.914400\n    test 136 m2chain: 0.049710\n    test 137 m2fathom: 0.546807\n    test 138 m2furlong: 0.004971\n    test 139 m2ha: 0.000100\n    test 140 m2toise: 0.513072\n    test 141 m2yard: 1.093613\n\n    test 142 degrees2m: 10007557.1761\n    test 143 degrees2m: 8666798.7443\n    test 144 m2degrees: 90.0\n\n    test 145 degrees2m: 20015114.3522\n    test 146 degrees2m: 19987684.3336\n    test 147 m2degrees: 180.0\n\n    test 148 m2degrees2m(45, lat=0): 45.00\n    test 149 m2degrees2m(45, lat=7): 45.00\n    test 150 m2degrees2m(45, lat=14): 45.00\n    test 151 m2degrees2m(45, lat=21): 45.00\n    test 152 m2degrees2m(45, lat=28): 45.00\n    test 153 m2degrees2m(45, lat=35): 45.00\n    test 154 m2degrees2m(45, lat=42): 45.00\n    test 155 m2degrees2m(45, lat=49): 45.00\n    test 156 m2degrees2m(45, lat=56): 45.00\n    test 157 m2degrees2m(45, lat=63): 45.00\n    test 158 m2degrees2m(45, lat=70): 45.00\n    test 159 m2degrees2m(45, lat=77): 45.00\n    test 160 m2degrees2m(45, lat=84): 45.00\n\n    test 161 isPoints2: False\n\n    test 162 tan_2_semi: PI[1] edge (3.141592): semi-circular\n    test 163 sincostan3(+0.0000): (0.0, 1.0, 0.0)\n    test 164 sincostan3(-0.0000): (-0.0, 1.0, -0.0)  FAILED, KNOWN, expected (0.0, 1.0, 0.0)\n    test 165 sincostan3(+1.5708): (1.0, 0.0, inf)\n    test 166 sincostan3(-1.5708): (-1.0, 0.0, -inf)\n    test 167 sincostan3(+3.1416): (0.0, -1.0, -0.0)\n    test 168 sincostan3(-3.1416): (-0.0, -1.0, 0.0)\n    test 169 sincostan3(+4.7124): (-1.0, 0.0, -inf)  FAILED, KNOWN, expected (-1.0, -0.0, inf)\n    test 170 sincostan3(-1.5708): (-1.0, 0.0, -inf)\n    test 171 sincostan3(+6.2832): (0.0, 1.0, 0.0)  FAILED, KNOWN, expected (-0.0, 1.0, -0.0)\n    test 172 sincostan3(-6.2832): (-0.0, 1.0, -0.0)  FAILED, KNOWN, expected (0.0, 1.0, 0.0)\n\n    9 of 172 testUtily.py tests (5.2%) FAILED, ALL KNOWN (pygeodesy 26.3.26 Python 3.11.9 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 1.24.2 scipy 1.10.1 Math 2 macOS 26.3.1 isLazy 0 -W  default) 13.240 ms\nrunning /usr/local/bin/p....n3.11 -W default ~/PyGeodesy/test/testUtm.py\n\n    testing testUtm.py 25.04.25 (module pygeodesy.utm 24.11.26)\n    test 1 Utm1: 03 N 448251.0 5411932.0001\n    test 2 Utm2: 31 N 448252 5411933\n    test 3 Utm2: 31 N 448251.795 5411932.678\n    test 4 Utm2: 31 N 448251.8 5411932.7 n/a n/a\n    test 5 Utm.toLatLon1: 48.8582°N, 002.2945°E\n    test 6 Utm.toLatLon1: 48°51′29.52″N, 002°17′40.2″E\n    test 7 toUtm1: 31 N 448252 5411933\n    test 8 toUtm1: 31 N 448251.795 5411932.678\n    test 9 toUtm2: [Z:31U, H:N, E:448252, N:5411933, C:-31.87873265′, S:0.9996329]\n    test 10 toUtm4: 48 N 377302 1483035\n    test 11 toUtm5: 48P N 377302.354183 1483034.777084 -15.77480856′ 0.99978623\n    test 12 toUtm6: 13 S 622698 8516965\n    test 13 toUtm7: 13L S 622697.645817 8516965.222916 -15.77480856′ 0.99978623\n    test 14 toEtm: 13 S 622698 8516965\n    test 15 toMgrs1: 13L FF 22697 16965\n    test 16 toMgrs2: 31U DQ 48251 11932\n    test 17 toUtm14: 14 S -27436 8512042\n    test 18 Utm8: 18 N 516620 4574500\n    test 19 Utm8.toLatLon: 41.321801°N, 074.801413°W\n    test 20 Utm8.toLatLon: 41.321801N, 074.801413W\n    test 21 toUtm(61.44°N, 025.4°E): 35V N 414668 6812845\n    test 22 toUtm(47.04°S, 073.48°W): 18G S 615472 4789270\n    test 23 toUtm(40.4°N, 074.7°W): 18T N 525458 4472198\n    test 24 toUtm(44.5°N, 088.5°W): 16T N 380753 4928503\n    test 25 toUtm(50.8694°N, 115.6508°W): 11U N 594937 5636169\n    test 26 toUtm(00.0°N, 000.0°E): 31N N 166021 0\n    test 27 toUtm(00.13°N, 000.2324°W): 30N N 808084 14386\n    test 28 toUtm(45.6456°S, 023.3545°E): 34G S 683474 4942631\n    test 29 toUtm(12.765°S, 033.8765°W): 25L S 404859 8588691\n    test 30 toUtm(80.5434°S, 170.654°W): lat ('-80.5434°'): outside UTM range [-80, 84)\n    test 31 toUtm(90.0°N, 177.0°E): lat ('90.0°'): outside UTM range [-80, 84)\n    test 32 toUtm(90.0°S, 177.0°W): lat ('-90.0°'): outside UTM range [-80, 84)\n    test 33 toUtm(90.0°N, 003.0°E): lat ('90.0°'): outside UTM range [-80, 84)\n    test 34 toUtm(23.4578°N, 135.4545°W): 08Q N 453580 2594273\n    test 35 toUtm(77.345°N, 156.9876°E): 57X N 450794 8586116\n    test 36 toUtm(89.3454°S, 048.9306°W): lat ('-89.3454°'): outside UTM range [-80, 84)\n    test 37 toUtm(60.0°N, 001.0°E): 31V N 388456 6653097\n    test 38 toUtm(60.0°N, 003.0°E): 32V N 165640 6666594\n    test 39 toUtm(60.0°N, 006.0°E): 32V N 332705 6655205\n    test 40 toUtm(60.0°N, 009.0°E): 32V N 500000 6651411\n    test 41 toUtm(60.0°N, 012.0°E): 33V N 332705 6655205\n    test 42 toUtm(76.0°N, 001.0°E): 31X N 446000 8436100\n    test 43 toUtm(76.0°N, 007.0°E): 31X N 607943 8438843\n    test 44 toUtm(76.0°N, 013.0°E): 33X N 446000 8436100\n    test 45 toUtm(76.0°N, 019.0°E): 33X N 607943 8438843\n    test 46 toUtm(76.0°N, 025.0°E): 35X N 446000 8436100\n    test 47 toUtm(76.0°N, 031.0°E): 35X N 607943 8438843\n    test 48 toUtm(76.0°N, 037.0°E): 37X N 446000 8436100\n    test 49 toUtm(50.77535°N, 006.08389°E): 32U N 294409 5628898\n    test 50 toUtm(40.71435°N, 074.00597°W): 18T N 583960 4507523\n    test 51 toUtm(41.28646°S, 174.77624°E): 60G S 313784 5427057\n    test 52 toUtm(33.92487°S, 018.42406°E): 34H S 261878 6243186\n    test 53 toUtm(32.89018°S, 068.84405°W): 19H S 514586 6360877\n    test 54 toUtm(64.83778°N, 147.71639°W): 06W N 466013 7190568\n    test 55 toUtm(56.7968°N, 005.00601°W): 30V N 377486 6296562\n    test 56 toUtm(84.0°N, 005.00601°W): lat ('84.0°'): outside UTM range [-80, 84)\n    test 57 toUtm('Mt Assiniboine'): [Z:11U, H:N, E:594934, N:5636174]\n    test 58 Utm9: 55 S 321441 5810117\n    test 59 Utm9.toLatLon(eps=2.2204e-12): -37.83891644, 144.97077387\n    test 60 Utm9.toLatLon(eps=2.2204e-13): -37.83891644, 144.97077387\n    test 61 Utm9.toLatLon(eps=2.2204e-14): -37.83891644, 144.97077387\n    test 62 Utm9.toLatLon(eps=2.2204e-15): -37.83891644, 144.97077387\n    test 63 Utm9.toLatLon(eps=2.2204e-16): -37.83891644, 144.97077387\n    test 64 Utm9.toLatLon(eps=2.2204e-17): -37.83891644, 144.97077387\n    test 65 Utm9.toLatLon(eps=2.2204e-18): -37.83891644, 144.97077387\n    test 66 Utm9.toLatLon(eps=2.2204e-19): -37.83891644, 144.97077387\n    test 67 Utm9.toLatLon(eps=2.2204e-20): -37.83891644, 144.97077387\n    test 68 Utm10: 31 N 400000 5000000\n    test 69 Utm10.toLatLon(eps=2.2204e-12): 45.14639288, 1.72796704\n    test 70 Utm10.toLatLon(eps=2.2204e-13): 45.14639288, 1.72796704\n    test 71 Utm10.toLatLon(eps=2.2204e-14): 45.14639288, 1.72796704\n    test 72 Utm10.toLatLon(eps=2.2204e-15): 45.14639288, 1.72796704\n    test 73 Utm10.toLatLon(eps=2.2204e-16): 45.14639288, 1.72796704\n    test 74 Utm10.toLatLon(eps=2.2204e-17): 45.14639288, 1.72796704\n    test 75 Utm10.toLatLon(eps=2.2204e-18): 45.14639288, 1.72796704\n    test 76 Utm10.toLatLon(eps=2.2204e-19): 45.14639288, 1.72796704\n    test 77 Utm10.toLatLon(eps=2.2204e-20): 45.14639288, 1.72796704\n    test 78 Utm111: 37 N 1399093 8314607\n    test 79 Utm111.toLatLon(eps=2.2204e-12): 70.54298527, 40.28205459\n    test 80 Utm111.toLatLon(eps=2.2204e-13): 70.54298527, 40.28205459\n    test 81 Utm111.toLatLon(eps=2.2204e-14): 70.54298527, 40.28205459\n    test 82 Utm111.toLatLon(eps=2.2204e-15): 70.54298527, 40.28205459\n    test 83 Utm111.toLatLon(eps=2.2204e-16): 70.54298527, 40.28205459\n    test 84 Utm111.toLatLon(eps=2.2204e-17): 70.54298527, 40.28205459\n    test 85 Utm111.toLatLon(eps=2.2204e-18): 70.54298527, 40.28205459\n    test 86 Utm111.toLatLon(eps=2.2204e-19): 70.54298527, 40.28205459\n    test 87 Utm111.toLatLon(eps=2.2204e-20): 70.54298527, 40.28205459\n    test 88 CV#86: [Z:01, H:N, E:100000, N:0, C:n/a, S:n/a]\n    test 89 CV#86: 00.0°N, 179.407673°E\n    test 90 CV#86: [Z:60, H:N, E:767993, N:0, C:+0.0″, S:1.000489]  FAILED, KNOWN, expected [Z:01, H:N, E:100000, N:0, ...]\n    test 91 #63: 32 N 280000 5653000\n    test 92 toMgrs: 32U KB 80000 53000\n    test 93 toLatLon: (50.986484, 5.865326, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), -2.436605, 1.000194)\n    test 94 band: U\n    test 95 band: band ('?'): not 'C', 'D', 'E', 'F', 'G', 'H', 'J', 'K', 'L', 'M', 'N', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W' or 'X'\n    test 96 datum: Datum(name='_Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.Identity)  FAILED, KNOWN, expected same\n    test 97 repr: [Z:32U, H:N, E:280000, N:5653000]\n    test 98 E.N.: (280000.0, 5653000.0)\n\n    test 99 latFootPoint: 59.97989371\n    test 100 latFootPoint: -59.97989371\n    test 101 latFootPoint: 59.97988614\n    test 102 latFootPoint: -59.97988614\n    test 103 phiFootPoint: 1.04407841\n    test 104 phiFootPoint: -1.04407841\n\n    2 of 104 testUtm.py tests (1.9%) FAILED, ALL KNOWN (pygeodesy 26.3.26 Python 3.11.9 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 1.24.2 scipy 1.10.1 Math 2 macOS 26.3.1 isLazy 0 -W  default) 80.156 ms\nrunning /usr/local/bin/p....n3.11 -W default ~/PyGeodesy/test/testUtmTMcoords.py\n\n    testing testUtmTMcoords.py 24.03.22 (module pygeodesy.utm 24.11.26)\n    test 1 line 1 toUtm8.easting: 1548706.791619\n    test 2 line 1 toUtm8.northing: 8451449.198772\n    test 3 line 1 toUtm8.gamma: 43.922790\n    test 4 line 1 toUtm8.scale: 1.029060\n    test 5 line 1 toUtm8.lat: 70.579277\n    test 6 line 1 toUtm8.lon: 45.599420\n    test 7 line 2 toUtm8.easting: 2624150.740929\n    test 8 line 2 toUtm8.northing: 1204434.041605\n    test 9 line 2 toUtm8.gamma: 4.292619\n    test 10 line 2 toUtm8.scale: 1.086051\n    test 11 line 2 toUtm8.lat: 10.018894\n    test 12 line 2 toUtm8.lon: 23.313324\n    test 13 line 3 toUtm8.easting: 9855841.232935\n    test 14 line 3 toUtm8.northing: 6145496.115157  FAILED, KNOWN, expected 6145496.115155\n    test 15 line 3 toUtm8.gamma: 53.348315\n    test 16 line 3 toUtm8.scale: 2.445098\n    test 17 line 3 toUtm8.lat: 19.479896\n    test 18 line 3 toUtm8.lon: 75.662049\n    test 19 line 4 toUtm8.easting: 3206390.691996\n    test 20 line 4 toUtm8.northing: 2650745.400406\n    test 21 line 4 toUtm8.gamma: 11.666950\n    test 22 line 4 toUtm8.scale: 1.129359\n    test 23 line 4 toUtm8.lat: 21.072465\n    test 24 line 4 toUtm8.lon: 29.828684\n    test 25 line 5 toUtm8.easting: 4328154.083501\n    test 26 line 5 toUtm8.northing: 749647.623690\n    test 27 line 5 toUtm8.gamma: 4.024317\n    test 28 line 5 toUtm8.scale: 1.240829\n    test 29 line 5 toUtm8.lat: 5.458957\n    test 30 line 5 toUtm8.lon: 36.385237\n    test 31 line 6 toUtm8.easting: 847598.266514\n    test 32 line 6 toUtm8.northing: 7947180.962440\n    test 33 line 6 toUtm8.gamma: 21.639091\n    test 34 line 6 toUtm8.scale: 1.008399\n    test 35 line 6 toUtm8.lat: 70.175454\n    test 36 line 6 toUtm8.lon: 22.865350\n    test 37 line 7 toUtm8.easting: 2727657.337974\n    test 38 line 7 toUtm8.northing: 8283916.696410\n    test 39 line 7 toUtm8.gamma: 55.690909\n    test 40 line 7 toUtm8.scale: 1.091942\n    test 41 line 7 toUtm8.lat: 61.965605\n    test 42 line 7 toUtm8.lon: 58.931371\n    test 43 line 8 toUtm8.easting: 2331001.751890\n    test 44 line 8 toUtm8.northing: 1313608.224751\n    test 45 line 8 toUtm8.gamma: 4.214690\n    test 46 line 8 toUtm8.scale: 1.067599\n    test 47 line 8 toUtm8.lat: 11.116050\n    test 48 line 8 toUtm8.lon: 20.901069\n    test 49 line 9 toUtm8.easting: 6035557.239480\n    test 50 line 9 toUtm8.northing: 5791770.791879\n    test 51 line 9 toUtm8.gamma: 43.698170\n    test 52 line 9 toUtm8.scale: 1.481260\n    test 53 line 9 toUtm8.lat: 32.210543\n    test 54 line 9 toUtm8.lon: 60.705849\n    test 55 line 10 toUtm8.easting: 1064553.125852\n    test 56 line 10 toUtm8.northing: 9417273.737208\n    test 57 line 10 toUtm8.gamma: 61.100380\n    test 58 line 10 toUtm8.scale: 1.013475\n    test 59 line 10 toUtm8.lat: 79.187451\n    test 60 line 10 toUtm8.lon: 61.532382\n    test 61 line 11 toUtm8.easting: 1400137.116164\n    test 62 line 11 toUtm8.northing: 9616907.017686\n    test 63 line 11 toUtm8.gamma: 74.527087\n    test 64 line 11 toUtm8.scale: 1.023640\n    test 65 line 11 toUtm8.lat: 77.103759\n    test 66 line 11 toUtm8.lon: 74.899105\n\n    test skipped (1): line 12 toUtm8.'21.889514024862 80.019885892785 9860691.0166261508479 7433039.1433282732643 65.357693372142649007 2.43897318400097845293'\n\n    test skipped (2): line 13 toUtm8.'30.53629567699 82.186177919416 8076501.8336948099169 8561614.1747819103782 75.073393190238557702 1.90620203595203984732'\n    test 67 line 14 toUtm8.easting: 3335099.866623\n    test 68 line 14 toUtm8.northing: 6740519.084015\n    test 69 line 14 toUtm8.gamma: 40.611821\n    test 70 line 14 toUtm8.scale: 1.139021\n    test 71 line 14 toUtm8.lat: 49.990485\n    test 72 line 14 toUtm8.lon: 48.203179\n\n    test skipped (3): line 15 toUtm8.'14.486311853451 80.905136710227 12051574.9284996192629 6587213.0519512810474 59.033236797073779959 3.3574686117030164354'\n    test 73 line 16 toUtm8.easting: 5387578.735298\n    test 74 line 16 toUtm8.northing: 4111216.907168\n    test 75 line 16 toUtm8.gamma: 27.574337\n    test 76 line 16 toUtm8.scale: 1.379357\n    test 77 line 16 toUtm8.lat: 25.936824\n    test 78 line 16 toUtm8.lon: 49.913598\n    test 79 line 17 toUtm8.easting: 2622214.380233\n    test 80 line 17 toUtm8.northing: 8678923.984567\n    test 81 line 17 toUtm8.gamma: 61.697275\n    test 82 line 17 toUtm8.scale: 1.084810\n    test 83 line 17 toUtm8.lat: 64.402196\n    test 84 line 17 toUtm8.lon: 64.091395\n\n    test skipped (4): line 18 toUtm8.'48.451353594584 84.856197560189 5068474.169632778036 9492066.9937094951003 83.156739839119105102 1.3299901985118008373'\n    test 85 line 19 toUtm8.easting: 738062.047779\n    test 86 line 19 toUtm8.northing: 3031007.074116\n    test 87 line 19 toUtm8.gamma: 3.416802\n    test 88 line 19 toUtm8.scale: 1.006332\n    test 89 line 19 toUtm8.lat: 27.203895\n    test 90 line 19 toUtm8.lon: 7.440229\n    test 91 line 20 toUtm8.easting: 1944413.834565\n    test 92 line 20 toUtm8.northing: 9613299.224493\n    test 93 line 20 toUtm8.gamma: 78.462831\n    test 94 line 20 toUtm8.scale: 1.046134\n    test 95 line 20 toUtm8.lat: 72.509000\n    test 96 line 20 toUtm8.lon: 78.982283\n    test 97 line 21 toUtm8.easting: 2114521.418406\n    test 98 line 21 toUtm8.northing: 4954077.440098\n    test 99 line 21 toUtm8.gamma: 17.571878\n    test 100 line 21 toUtm8.scale: 1.055093\n    test 101 line 21 toUtm8.lat: 41.824954\n    test 102 line 21 toUtm8.lon: 25.392744\n    test 103 line 22 toUtm8.easting: 620365.905090\n    test 104 line 22 toUtm8.northing: 4755542.026562\n    test 105 line 22 toUtm8.gamma: 5.152022\n    test 106 line 22 toUtm8.scale: 1.004338\n    test 107 line 22 toUtm8.lat: 42.701376\n    test 108 line 22 toUtm8.lon: 7.572738\n    test 109 line 23 toUtm8.easting: 263004.770989\n    test 110 line 23 toUtm8.northing: 4493669.762451\n    test 111 line 23 toUtm8.gamma: 2.020523\n    test 112 line 23 toUtm8.scale: 1.000452\n    test 113 line 23 toUtm8.lat: 40.552052\n    test 114 line 23 toUtm8.lon: 3.106056\n    test 115 line 24 toUtm8.easting: 3217221.739462\n    test 116 line 24 toUtm8.northing: 437776.119161\n    test 117 line 24 toUtm8.gamma: 1.848169\n    test 118 line 24 toUtm8.scale: 1.130558\n    test 119 line 24 toUtm8.lat: 3.501242\n    test 120 line 24 toUtm8.lon: 27.806507\n\n    test skipped (5): line 25 toUtm8.'10.148714782203 85.373767569431 14661142.4449607145297 7476100.8241849819567 68.376669038799719822 4.89664968310721668858'\n    test 121 line 26 toUtm8.easting: 967777.158554\n    test 122 line 26 toUtm8.northing: 6615684.266592\n    test 123 line 26 toUtm8.gamma: 14.410044\n    test 124 line 26 toUtm8.scale: 1.011100\n    test 125 line 26 toUtm8.lat: 58.582623\n    test 126 line 26 toUtm8.lon: 16.755558\n    test 127 line 27 toUtm8.easting: 7558840.728461\n    test 128 line 27 toUtm8.northing: 4144728.130764\n    test 129 line 27 toUtm8.gamma: 32.557264\n    test 130 line 27 toUtm8.scale: 1.791490\n    test 131 line 27 toUtm8.lat: 19.793004\n    test 132 line 27 toUtm8.lon: 61.746763\n    test 133 line 28 toUtm8.easting: 1056008.314161\n    test 134 line 28 toUtm8.northing: 9290799.692669\n    test 135 line 28 toUtm8.gamma: 55.843278\n    test 136 line 28 toUtm8.scale: 1.013253\n    test 137 line 28 toUtm8.lat: 78.666776\n    test 138 line 28 toUtm8.lon: 56.365355\n    test 139 line 29 toUtm8.easting: 1943965.134687\n    test 140 line 29 toUtm8.northing: 1389972.228690\n    test 141 line 29 toUtm8.gamma: 3.774869\n    test 142 line 29 toUtm8.scale: 1.046724\n    test 143 line 29 toUtm8.lat: 11.998788\n    test 144 line 29 toUtm8.lon: 17.597873\n    test 145 line 30 toUtm8.easting: 5803077.072902\n    test 146 line 30 toUtm8.northing: 5649957.943659\n    test 147 line 30 toUtm8.gamma: 41.717943\n    test 148 line 30 toUtm8.scale: 1.442572\n    test 149 line 30 toUtm8.lat: 32.540378\n    test 150 line 30 toUtm8.lon: 58.764613\n    test 151 line 31 toUtm8.easting: 2928716.986009\n    test 152 line 31 toUtm8.northing: 5731835.058317\n    test 153 line 31 toUtm8.gamma: 28.538550\n    test 154 line 31 toUtm8.scale: 1.106780\n    test 155 line 31 toUtm8.lat: 45.160356\n    test 156 line 31 toUtm8.lon: 37.465285\n    test 157 line 32 toUtm8.easting: 326141.975756\n    test 158 line 32 toUtm8.northing: 8881325.164543\n    test 159 line 32 toUtm8.gamma: 16.111415\n    test 160 line 32 toUtm8.scale: 1.000900\n    test 161 line 32 toUtm8.lat: 79.584190\n    test 162 line 32 toUtm8.lon: 16.367006\n    test 163 line 33 toUtm8.easting: 3933015.267450\n    test 164 line 33 toUtm8.northing: 7932373.909512\n    test 165 line 33 toUtm8.gamma: 58.577424\n    test 166 line 33 toUtm8.scale: 1.194811\n    test 167 line 33 toUtm8.lat: 52.470664\n    test 168 line 33 toUtm8.lon: 64.125580\n    test 169 line 34 toUtm8.easting: 8598926.983213\n    test 170 line 34 toUtm8.northing: 6214135.167503\n    test 171 line 34 toUtm8.gamma: 52.612878\n    test 172 line 34 toUtm8.scale: 2.051367\n    test 173 line 34 toUtm8.lat: 23.702673\n    test 174 line 34 toUtm8.lon: 72.630363\n    test 175 line 35 toUtm8.easting: 6620553.333772\n    test 176 line 35 toUtm8.northing: 6540527.122948\n    test 177 line 35 toUtm8.gamma: 52.350140\n    test 178 line 35 toUtm8.scale: 1.586614\n    test 179 line 35 toUtm8.lat: 32.603520\n    test 180 line 35 toUtm8.lon: 67.280123\n    test 181 line 36 toUtm8.easting: 1515136.758292\n    test 182 line 36 toUtm8.northing: 3858996.087537\n    test 183 line 36 toUtm8.gamma: 9.225127\n    test 184 line 36 toUtm8.scale: 1.028029\n    test 185 line 36 toUtm8.lat: 33.776224\n    test 186 line 36 toUtm8.lon: 16.280993\n    test 187 line 37 toUtm8.easting: 479854.373445\n    test 188 line 37 toUtm8.northing: 8980501.389896\n    test 189 line 37 toUtm8.gamma: 25.021222\n    test 190 line 37 toUtm8.scale: 1.002415\n    test 191 line 37 toUtm8.lat: 79.932747\n    test 192 line 37 toUtm8.lon: 25.363622\n    test 193 line 38 toUtm8.easting: 5243446.564940\n    test 194 line 38 toUtm8.northing: 140657.213960\n    test 195 line 38 toUtm8.gamma: 0.862817\n    test 196 line 38 toUtm8.scale: 1.360358\n    test 197 line 38 toUtm8.lat: 0.935056\n    test 198 line 38 toUtm8.lon: 42.538824\n\n    test skipped (6): line 39 toUtm8.'13.490862440668 83.178380075606 12806457.9232176809509 7170118.6846750266674 64.708921319446620085 3.7405880916836789809'\n    test 199 line 40 toUtm8.easting: 1202993.459158\n    test 200 line 40 toUtm8.northing: 5557316.053599\n    test 201 line 40 toUtm8.gamma: 12.579061\n    test 202 line 40 toUtm8.scale: 1.017426\n    test 203 line 40 toUtm8.lat: 48.979057\n    test 204 line 40 toUtm8.lon: 16.474542\n    test 205 line 41 toUtm8.easting: 1729088.710196\n    test 206 line 41 toUtm8.northing: 7770874.289954\n    test 207 line 41 toUtm8.gamma: 36.021783\n    test 208 line 41 toUtm8.scale: 1.036397\n    test 209 line 41 toUtm8.lat: 65.036016\n    test 210 line 41 toUtm8.lon: 38.729091\n    test 211 line 42 toUtm8.easting: 2437301.517425\n    test 212 line 42 toUtm8.northing: 5539327.748318\n    test 213 line 42 toUtm8.gamma: 23.461879\n    test 214 line 42 toUtm8.scale: 1.073459\n    test 215 line 42 toUtm8.lat: 45.510091\n    test 216 line 42 toUtm8.lon: 31.303729\n    test 217 line 43 toUtm8.easting: 3647186.135066\n    test 218 line 43 toUtm8.northing: 2086412.330983\n    test 219 line 43 toUtm8.gamma: 10.023991\n    test 220 line 43 toUtm8.scale: 1.168707\n    test 221 line 43 toUtm8.lat: 16.058010\n    test 222 line 43 toUtm8.lon: 32.520026\n    test 223 line 44 toUtm8.easting: 1818497.243556\n    test 224 line 44 toUtm8.northing: 4275471.745057\n    test 225 line 44 toUtm8.gamma: 12.499656\n    test 226 line 44 toUtm8.scale: 1.040604\n    test 227 line 44 toUtm8.lat: 36.845200\n    test 228 line 44 toUtm8.lon: 20.282283\n    test 229 line 45 toUtm8.easting: 3751304.113783\n    test 230 line 45 toUtm8.northing: 5130454.001592\n    test 231 line 45 toUtm8.gamma: 28.959707\n    test 232 line 45 toUtm8.scale: 1.177681\n    test 233 line 45 toUtm8.lat: 37.865481\n    test 234 line 45 toUtm8.lon: 41.990402\n    test 235 line 46 toUtm8.easting: 2616733.138544\n    test 236 line 46 toUtm8.northing: 394644.463815\n    test 237 line 46 toUtm8.gamma: 1.390425\n    test 238 line 46 toUtm8.scale: 1.085595\n    test 239 line 46 toUtm8.lat: 3.287272\n    test 240 line 46 toUtm8.lon: 22.917604\n    test 241 line 47 toUtm8.easting: 1756506.573942\n    test 242 line 47 toUtm8.northing: 5570393.986394\n    test 243 line 47 toUtm8.gamma: 17.897894\n    test 244 line 47 toUtm8.scale: 1.037732\n    test 245 line 47 toUtm8.lat: 47.813686\n    test 246 line 47 toUtm8.lon: 23.545092\n    test 247 line 48 toUtm8.easting: 8752461.894711\n    test 248 line 48 toUtm8.northing: 6087728.152284\n    test 249 line 48 toUtm8.gamma: 51.628465\n    test 250 line 48 toUtm8.scale: 2.095465\n    test 251 line 48 toUtm8.lat: 22.836853\n    test 252 line 48 toUtm8.lon: 72.604385\n    test 253 line 49 toUtm8.easting: 1309272.216432\n    test 254 line 49 toUtm8.northing: 59520.028899\n    test 255 line 49 toUtm8.gamma: 0.109069\n    test 256 line 49 toUtm8.scale: 1.020897\n    test 257 line 49 toUtm8.lat: 0.527262\n    test 258 line 49 toUtm8.lon: 11.684209\n    test 259 line 50 toUtm8.easting: 328652.277129\n    test 260 line 50 toUtm8.northing: 2233043.958874\n    test 261 line 50 toUtm8.gamma: 1.084863\n    test 262 line 50 toUtm8.scale: 1.000935\n    test 263 line 50 toUtm8.lat: 20.166742\n    test 264 line 50 toUtm8.lon: 3.143948\n\n    test skipped (7): line 51 toUtm8.'28.604629015528 85.988721094779 8637959.7164470998207 9190635.1560309800028 81.802562643198123218 2.05432863342852874819'\n\n    test skipped (8): line 52 toUtm8.'28.984047991106 85.833447775172 8548521.4551470334531 9172410.9432821880799 81.583928102890161419 2.02964145862183583179'\n    test 265 line 53 toUtm8.easting: 796987.281104\n    test 266 line 53 toUtm8.northing: 7677446.357675\n    test 267 line 53 toUtm8.gamma: 18.084472\n    test 268 line 53 toUtm8.scale: 1.007381\n    test 269 line 53 toUtm8.lat: 68.071020\n    test 270 line 53 toUtm8.lon: 19.392823\n\n    test skipped (9): line 54 toUtm8.'61.416576191872 81.981611413918 3291036.4967623295988 9513199.6006662170596 80.890253980644739593 1.13482563910814382209'\n    test 271 line 55 toUtm8.easting: 7087225.330906\n    test 272 line 55 toUtm8.northing: 8382823.855822\n    test 273 line 55 toUtm8.gamma: 72.253756\n    test 274 line 55 toUtm8.scale: 1.678070\n    test 275 line 55 toUtm8.lat: 35.074753\n    test 276 line 55 toUtm8.lon: 79.496003\n    test 277 line 56 toUtm8.easting: 5090358.125724\n    test 278 line 56 toUtm8.northing: 4318294.133489\n    test 279 line 56 toUtm8.gamma: 28.266280\n    test 280 line 56 toUtm8.scale: 1.336264\n    test 281 line 56 toUtm8.lat: 28.078790\n    test 282 line 56 toUtm8.lon: 48.684350\n\n    test skipped (10): line 57 toUtm8.'84.986930137199 2.067177857261 20163.0752214330146 9438635.9888499043815 2.059277291707588222 .99960496589466017622'\n    test 283 line 58 toUtm8.easting: 3447670.550785\n    test 284 line 58 toUtm8.northing: 3680238.888223\n    test 285 line 58 toUtm8.gamma: 17.934948\n    test 286 line 58 toUtm8.scale: 1.149831\n    test 287 line 58 toUtm8.lat: 28.473948\n    test 288 line 58 toUtm8.lon: 34.127306\n    test 289 line 59 toUtm8.easting: 3396522.906798\n    test 290 line 59 toUtm8.northing: 8093659.687593\n    test 291 line 59 toUtm8.gamma: 57.747117\n    test 292 line 59 toUtm8.scale: 1.144006\n    test 293 line 59 toUtm8.lat: 56.629354\n    test 294 line 59 toUtm8.lon: 62.196474\n    test 295 line 60 toUtm8.easting: 11249894.100794  FAILED, KNOWN, expected 11249894.100784\n    test 296 line 60 toUtm8.northing: 1619226.506360  FAILED, KNOWN, expected 1619226.506299\n    test 297 line 60 toUtm8.gamma: 14.210358\n    test 298 line 60 toUtm8.scale: 3.048347\n    test 299 line 60 toUtm8.lat: 4.747762\n    test 300 line 60 toUtm8.lon: 70.932555\n    test 301 line 61 toUtm8.easting: 6808805.230950\n    test 302 line 61 toUtm8.northing: 8044779.777369\n    test 303 line 61 toUtm8.gamma: 68.242008\n    test 304 line 61 toUtm8.scale: 1.621464\n    test 305 line 61 toUtm8.lat: 35.882113\n    test 306 line 61 toUtm8.lon: 76.741849\n    test 307 line 62 toUtm8.easting: 2306021.556506\n    test 308 line 62 toUtm8.northing: 757191.592866\n    test 309 line 62 toUtm8.gamma: 2.385686\n    test 310 line 62 toUtm8.scale: 1.066159\n    test 311 line 62 toUtm8.lat: 6.420705\n    test 312 line 62 toUtm8.lon: 20.416028\n    test 313 line 63 toUtm8.easting: 1547406.313862\n    test 314 line 63 toUtm8.northing: 6048712.751824\n    test 315 line 63 toUtm8.gamma: 18.474372\n    test 316 line 63 toUtm8.scale: 1.029123\n    test 317 line 63 toUtm8.lat: 52.335248\n    test 318 line 63 toUtm8.lon: 22.879294\n    test 319 line 64 toUtm8.easting: 2430467.650383\n    test 320 line 64 toUtm8.northing: 7557167.613972\n    test 321 line 64 toUtm8.gamma: 42.110021\n    test 322 line 64 toUtm8.scale: 1.072759\n    test 323 line 64 toUtm8.lat: 59.846391\n    test 324 line 64 toUtm8.lon: 46.262536\n    test 325 line 65 toUtm8.easting: 2334053.905830\n    test 326 line 65 toUtm8.northing: 1948076.966582\n    test 327 line 65 toUtm8.gamma: 6.353185\n    test 328 line 65 toUtm8.scale: 1.067733\n    test 329 line 65 toUtm8.lat: 16.461790\n    test 330 line 65 toUtm8.lon: 21.433269\n    test 331 line 66 toUtm8.easting: 5564175.186737\n    test 332 line 66 toUtm8.northing: 1836851.660412\n    test 333 line 66 toUtm8.gamma: 11.870682\n    test 334 line 66 toUtm8.scale: 1.408265\n    test 335 line 66 toUtm8.lat: 11.707905\n    test 336 line 66 toUtm8.lon: 45.827075\n    test 337 line 67 toUtm8.easting: 6118505.590359\n    test 338 line 67 toUtm8.northing: 7631684.552421\n    test 339 line 67 toUtm8.gamma: 62.477323\n    test 340 line 67 toUtm8.scale: 1.493420\n    test 341 line 67 toUtm8.lat: 38.519075\n    test 342 line 67 toUtm8.lon: 71.935918\n\n    test skipped (11): line 68 toUtm8.'34.264007222954 82.647878110272 7365359.2946646287171 8818194.4515306837741 77.207042218974141605 1.73763853091849729372'\n    test 343 line 69 toUtm8.easting: 36187.342415\n    test 344 line 69 toUtm8.northing: 2142565.324802\n    test 345 line 69 toUtm8.gamma: 0.114334\n    test 346 line 69 toUtm8.scale: 0.999616\n    test 347 line 69 toUtm8.lat: 19.376880\n    test 348 line 69 toUtm8.lon: 0.344605\n    test 349 line 70 toUtm8.easting: 2380328.546851\n    test 350 line 70 toUtm8.northing: 8440109.872384\n    test 351 line 70 toUtm8.gamma: 55.076067\n    test 352 line 70 toUtm8.scale: 1.069658\n    test 353 line 70 toUtm8.lat: 65.075805\n    test 354 line 70 toUtm8.lon: 57.653438\n    test 355 line 71 toUtm8.easting: 582511.608826\n    test 356 line 71 toUtm8.northing: 8876047.217071\n    test 357 line 71 toUtm8.gamma: 27.133300\n    test 358 line 71 toUtm8.scale: 1.003749\n    test 359 line 71 toUtm8.lat: 78.691870\n    test 360 line 71 toUtm8.lon: 27.591736\n    test 361 line 72 toUtm8.easting: 899441.350477\n    test 362 line 72 toUtm8.northing: 4582046.430516\n    test 363 line 72 toUtm8.gamma: 7.031211\n    test 364 line 72 toUtm8.scale: 1.009573\n    test 365 line 72 toUtm8.lat: 40.893022\n    test 366 line 72 toUtm8.lon: 10.668804\n\n    test skipped (12): line 73 toUtm8.'48.914278679322 87.35926802682 5022485.1243369246483 9741774.9337207800497 86.505947369926030588 1.32369954850478170836'\n    test 367 line 74 toUtm8.easting: 6701004.587204\n    test 368 line 74 toUtm8.northing: 2954368.258231\n    test 369 line 74 toUtm8.gamma: 21.560153\n    test 370 line 74 toUtm8.scale: 1.608554\n    test 371 line 74 toUtm8.lat: 16.208377\n    test 372 line 74 toUtm8.lon: 54.494282\n    test 373 line 75 toUtm8.easting: 454986.218897\n    test 374 line 75 toUtm8.northing: 4885087.887884\n    test 375 line 75 toUtm8.gamma: 3.945648\n    test 376 line 75 toUtm8.scale: 1.002147\n    test 377 line 75 toUtm8.lat: 43.977936\n    test 378 line 75 toUtm8.lon: 5.672541\n\n    test skipped (13): line 76 toUtm8.'26.850860749352 82.834479937822 8903956.1403106503714 8470608.5774824981183 74.723116471645531699 2.13131124920824155268'\n    test 379 line 77 toUtm8.easting: 1547627.594741\n    test 380 line 77 toUtm8.northing: 6036584.538347\n    test 381 line 77 toUtm8.gamma: 18.407629\n    test 382 line 77 toUtm8.scale: 1.029132\n    test 383 line 77 toUtm8.lat: 52.234165\n    test 384 line 77 toUtm8.lon: 22.827655\n    test 385 line 78 toUtm8.easting: 5221488.778597\n    test 386 line 78 toUtm8.northing: 1762592.044392\n    test 387 line 78 toUtm8.gamma: 10.927880\n    test 388 line 78 toUtm8.scale: 1.356721\n    test 389 line 78 toUtm8.lat: 11.674646\n    test 390 line 78 toUtm8.lon: 43.500147\n    test 391 line 79 toUtm8.easting: 4880570.297161\n    test 392 line 79 toUtm8.northing: 3325433.988867\n    test 393 line 79 toUtm8.gamma: 20.469862\n    test 394 line 79 toUtm8.scale: 1.308476\n    test 395 line 79 toUtm8.lat: 22.492753\n    test 396 line 79 toUtm8.lon: 44.179153\n\n    test skipped (14): line 80 toUtm8.'.910999463005 88.548822916123 23930680.0826936110445 7491462.0990379651261 75.937628056628715446 15.55636485152285563369'\n    test 397 line 81 toUtm8.easting: 71519.450458\n    test 398 line 81 toUtm8.northing: 3654740.444852\n    test 399 line 81 toUtm8.gamma: 0.417448\n    test 400 line 81 toUtm8.scale: 0.999663\n    test 401 line 81 toUtm8.lat: 33.028802\n    test 402 line 81 toUtm8.lon: 0.765843\n    test 403 line 82 toUtm8.easting: 4152797.795220\n    test 404 line 82 toUtm8.northing: 7823098.502751\n    test 405 line 82 toUtm8.gamma: 58.238901\n    test 406 line 82 toUtm8.scale: 1.218052\n    test 407 line 82 toUtm8.lat: 50.649195\n    test 408 line 82 toUtm8.lon: 64.389076\n    test 409 line 83 toUtm8.easting: 2926725.707639\n    test 410 line 83 toUtm8.northing: 7904918.072844\n    test 411 line 83 toUtm8.gamma: 51.592748\n    test 412 line 83 toUtm8.scale: 1.106206\n    test 413 line 83 toUtm8.lat: 58.820640\n    test 414 line 83 toUtm8.lon: 55.841048\n    test 415 line 84 toUtm8.easting: 1325509.113869\n    test 416 line 84 toUtm8.northing: 9675214.948213\n    test 417 line 84 toUtm8.gamma: 76.116213\n    test 418 line 84 toUtm8.scale: 1.021136\n    test 419 line 84 toUtm8.lat: 77.865762\n    test 420 line 84 toUtm8.lon: 76.414618\n    test 421 line 85 toUtm8.easting: 3045296.448926\n    test 422 line 85 toUtm8.northing: 542153.443280\n    test 423 line 85 toUtm8.gamma: 2.185095\n    test 424 line 85 toUtm8.scale: 1.116664\n    test 425 line 85 toUtm8.lat: 4.389639\n    test 426 line 85 toUtm8.lon: 26.458976\n    test 427 line 86 toUtm8.easting: 11843870.887791  FAILED, KNOWN, expected 11843870.887518\n    test 428 line 86 toUtm8.northing: 5912803.073690  FAILED, KNOWN, expected 5912803.073343\n    test 429 line 86 toUtm8.gamma: 52.814260  FAILED, KNOWN, expected 52.814259\n    test 430 line 86 toUtm8.scale: 3.267256\n    test 431 line 86 toUtm8.lat: 13.924448\n    test 432 line 86 toUtm8.lon: 79.017873\n    test 433 line 87 toUtm8.easting: 8891099.704936\n    test 434 line 87 toUtm8.northing: 162160.142227\n    test 435 line 87 toUtm8.gamma: 1.312094\n    test 436 line 87 toUtm8.scale: 2.157363\n    test 437 line 87 toUtm8.lat: 0.679713\n    test 438 line 87 toUtm8.lon: 62.036792\n    test 439 line 88 toUtm8.easting: 4784814.214449\n    test 440 line 88 toUtm8.northing: 2984497.432580\n    test 441 line 88 toUtm8.gamma: 17.946545\n    test 442 line 88 toUtm8.scale: 1.296116\n    test 443 line 88 toUtm8.lat: 20.478281\n    test 444 line 88 toUtm8.lon: 42.678234\n    test 445 line 89 toUtm8.easting: 1772074.682154\n    test 446 line 89 toUtm8.northing: 9491552.560143\n    test 447 line 89 toUtm8.gamma: 73.634830\n    test 448 line 89 toUtm8.scale: 1.038202\n    test 449 line 89 toUtm8.lat: 73.695703\n    test 450 line 89 toUtm8.lon: 74.259097\n    test 451 line 90 toUtm8.easting: 1907649.782106\n    test 452 line 90 toUtm8.northing: 6994232.429379\n    test 453 line 90 toUtm8.gamma: 29.718929\n    test 454 line 90 toUtm8.scale: 1.044503\n    test 455 line 90 toUtm8.lat: 58.569370\n    test 456 line 90 toUtm8.lon: 33.777549\n    test 457 line 91 toUtm8.easting: 2084423.818962\n    test 458 line 91 toUtm8.northing: 2211816.035619\n    test 459 line 91 toUtm8.gamma: 6.556448\n    test 460 line 91 toUtm8.scale: 1.053793\n    test 461 line 91 toUtm8.lat: 18.933881\n    test 462 line 91 toUtm8.lon: 19.492695\n    test 463 line 92 toUtm8.easting: 1064373.671729\n    test 464 line 92 toUtm8.northing: 7812482.547461\n    test 465 line 92 toUtm8.gamma: 24.874124\n    test 466 line 92 toUtm8.scale: 1.013490\n    test 467 line 92 toUtm8.lat: 68.317934\n    test 468 line 92 toUtm8.lon: 26.515687\n\n    test skipped (15): line 93 toUtm8.'50.641941364984 87.111556505544 4770385.4792965339274 9734318.9029801439364 86.27311877223132818 1.29055338238288419467'\n    test 469 line 94 toUtm8.easting: 6398096.677297\n    test 470 line 94 toUtm8.northing: 4410894.752104\n    test 471 line 94 toUtm8.gamma: 32.558023\n    test 472 line 94 toUtm8.scale: 1.548004\n    test 473 line 94 toUtm8.lat: 24.411298\n    test 474 line 94 toUtm8.lon: 56.881823\n    test 475 line 95 toUtm8.easting: 3138623.300415\n    test 476 line 95 toUtm8.northing: 3082960.600798\n    test 477 line 95 toUtm8.gamma: 13.557672\n    test 478 line 95 toUtm8.scale: 1.123724\n    test 479 line 95 toUtm8.lat: 24.571871\n    test 480 line 95 toUtm8.lon: 30.073097\n    test 481 line 96 toUtm8.easting: 2748325.794651\n    test 482 line 96 toUtm8.northing: 4202811.912668\n    test 483 line 96 toUtm8.gamma: 17.578706\n    test 484 line 96 toUtm8.scale: 1.094102\n    test 485 line 96 toUtm8.lat: 34.202576\n    test 486 line 96 toUtm8.lon: 29.383166\n    test 487 line 97 toUtm8.easting: 6677830.630367\n    test 488 line 97 toUtm8.northing: 5350071.837395\n    test 489 line 97 toUtm8.gamma: 41.306641\n    test 490 line 97 toUtm8.scale: 1.599774\n    test 491 line 97 toUtm8.lat: 27.756285\n    test 492 line 97 toUtm8.lon: 61.881905\n    test 493 line 98 toUtm8.easting: 5941536.667431\n    test 494 line 98 toUtm8.northing: 3293112.175140\n    test 495 line 98 toUtm8.gamma: 22.752845\n    test 496 line 98 toUtm8.scale: 1.468473\n    test 497 line 98 toUtm8.lat: 19.742270\n    test 498 line 98 toUtm8.lon: 50.957821\n    test 499 line 99 toUtm8.easting: 3152481.792567\n    test 500 line 99 toUtm8.northing: 5903048.837978\n    test 501 line 99 toUtm8.gamma: 31.494606\n    test 502 line 99 toUtm8.scale: 1.124085\n    test 503 line 99 toUtm8.lat: 45.453582\n    test 504 line 99 toUtm8.lon: 40.659833\n    test 505 line 100 toUtm8.easting: 10460475.897726  FAILED, KNOWN, expected 10460475.897730\n    test 506 line 100 toUtm8.northing: 2553463.624385  FAILED, KNOWN, expected 2553463.624391\n    test 507 line 100 toUtm8.gamma: 21.965869\n    test 508 line 100 toUtm8.scale: 2.700296\n    test 509 line 100 toUtm8.lat: 8.322144\n    test 510 line 100 toUtm8.lon: 69.488157\n    test 511 line 101 toUtm8.easting: 1964010.778021\n    test 512 line 101 toUtm8.northing: 5634042.923056\n    test 513 line 101 toUtm8.gamma: 20.117800\n    test 514 line 101 toUtm8.scale: 1.047344\n    test 515 line 101 toUtm8.lat: 47.749831\n    test 516 line 101 toUtm8.lon: 26.322002\n    test 517 line 102 toUtm8.easting: 2065306.424934\n    test 518 line 102 toUtm8.northing: 2135008.468651\n    test 519 line 102 toUtm8.gamma: 6.258981\n    test 520 line 102 toUtm8.scale: 1.052800\n    test 521 line 102 toUtm8.lat: 18.297493\n    test 522 line 102 toUtm8.lon: 19.244669\n    test 523 line 103 toUtm8.easting: 5127738.132976\n    test 524 line 103 toUtm8.northing: 6793804.304411\n    test 525 line 103 toUtm8.gamma: 50.557915\n    test 526 line 103 toUtm8.scale: 1.339412\n    test 527 line 103 toUtm8.lat: 40.834541\n    test 528 line 103 toUtm8.lon: 61.650750\n    test 529 line 104 toUtm8.easting: 8385525.148166\n    test 530 line 104 toUtm8.northing: 6924932.344306\n    test 531 line 104 toUtm8.gamma: 59.087561\n    test 532 line 104 toUtm8.scale: 1.990364\n    test 533 line 104 toUtm8.lat: 26.273247\n    test 534 line 104 toUtm8.lon: 74.926694\n    test 535 line 105 toUtm8.easting: 2297510.791909\n    test 536 line 105 toUtm8.northing: 2805666.962834\n    test 537 line 105 toUtm8.gamma: 9.301553\n    test 538 line 105 toUtm8.scale: 1.065508\n    test 539 line 105 toUtm8.lat: 23.698347\n    test 540 line 105 toUtm8.lon: 22.155657\n\n    test skipped (16): line 106 toUtm8.'12.364112546807 86.348578425071 13749544.9176345767153 8288728.3846500523233 75.033969786420407131 4.27058754359004466627'\n    test 541 line 107 toUtm8.easting: 317518.455546\n    test 542 line 107 toUtm8.northing: 1097517.583745\n    test 543 line 107 toUtm8.gamma: 0.499004\n    test 544 line 107 toUtm8.scale: 1.000848\n    test 545 line 107 toUtm8.lat: 9.916091\n    test 546 line 107 toUtm8.lon: 2.895277\n    test 547 line 108 toUtm8.easting: 3856035.184888\n    test 548 line 108 toUtm8.northing: 9141364.450290\n    test 549 line 108 toUtm8.gamma: 75.972763\n    test 550 line 108 toUtm8.scale: 1.186786\n    test 551 line 108 toUtm8.lat: 56.553876\n    test 552 line 108 toUtm8.lon: 78.215077\n    test 553 line 109 toUtm8.easting: 1457484.942823\n    test 554 line 109 toUtm8.northing: 9385297.101973\n    test 555 line 109 toUtm8.gamma: 66.784662\n    test 556 line 109 toUtm8.scale: 1.025660\n    test 557 line 109 toUtm8.lat: 75.957631\n    test 558 line 109 toUtm8.lon: 67.407383\n    test 559 line 110 toUtm8.easting: 1304934.901841\n    test 560 line 110 toUtm8.northing: 3604655.155715\n    test 561 line 110 toUtm8.gamma: 7.343989\n    test 562 line 110 toUtm8.scale: 1.020672\n    test 563 line 110 toUtm8.lat: 31.826531\n    test 564 line 110 toUtm8.lon: 13.731050\n    test 565 line 111 toUtm8.easting: 1399093.491792\n    test 566 line 111 toUtm8.northing: 8314607.120342\n    test 567 line 111 toUtm8.gamma: 38.630161\n    test 568 line 111 toUtm8.scale: 1.023625\n    test 569 line 111 toUtm8.lat: 70.542985\n    test 570 line 111 toUtm8.lon: 40.282055\n    test 571 line 112 toUtm8.easting: 356983.618540\n    test 572 line 112 toUtm8.northing: 4282309.048994\n    test 573 line 112 toUtm8.gamma: 2.561485\n    test 574 line 112 toUtm8.scale: 1.001170\n    test 575 line 112 toUtm8.lat: 38.617487\n    test 576 line 112 toUtm8.lon: 4.099838\n    test 577 line 113 toUtm8.easting: 9952911.325092  FAILED, KNOWN, expected 9952911.325091\n    test 578 line 113 toUtm8.northing: 1510288.212230  FAILED, KNOWN, expected 1510288.212229\n    test 579 line 113 toUtm8.gamma: 12.752154\n    test 580 line 113 toUtm8.scale: 2.511357\n    test 581 line 113 toUtm8.lat: 5.389447\n    test 582 line 113 toUtm8.lon: 66.729612\n    test 583 line 114 toUtm8.easting: 6367592.504007\n    test 584 line 114 toUtm8.northing: 1200437.077672\n    test 585 line 114 toUtm8.gamma: 8.338041\n    test 586 line 114 toUtm8.scale: 1.546210\n    test 587 line 114 toUtm8.lat: 6.995168\n    test 588 line 114 toUtm8.lon: 50.014763\n    test 589 line 115 toUtm8.easting: 4391263.676460\n    test 590 line 115 toUtm8.northing: 6325455.989408\n    test 591 line 115 toUtm8.gamma: 42.653541\n    test 592 line 115 toUtm8.scale: 1.245560\n    test 593 line 115 toUtm8.lat: 42.321894\n    test 594 line 115 toUtm8.lon: 53.784040\n    test 595 line 116 toUtm8.easting: 6209880.527527\n    test 596 line 116 toUtm8.northing: 2154754.449747\n    test 597 line 116 toUtm8.gamma: 14.919512\n    test 598 line 116 toUtm8.scale: 1.516560\n    test 599 line 116 toUtm8.lat: 12.698515\n    test 600 line 116 toUtm8.lon: 50.242047\n    test 601 line 117 toUtm8.easting: 1507053.688772\n    test 602 line 117 toUtm8.northing: 6261383.513280\n    test 603 line 117 toUtm8.gamma: 19.280373\n    test 604 line 117 toUtm8.scale: 1.027584\n    test 605 line 117 toUtm8.lat: 54.207636\n    test 606 line 117 toUtm8.lon: 23.325731\n    test 607 line 118 toUtm8.easting: 8332725.003777\n    test 608 line 118 toUtm8.northing: 3002712.329753\n    test 609 line 118 toUtm8.gamma: 24.059212\n    test 610 line 118 toUtm8.scale: 1.990450\n    test 611 line 118 toUtm8.lat: 13.224787\n    test 612 line 118 toUtm8.lon: 62.426698\n    test 613 line 119 toUtm8.easting: 3958910.085235\n    test 614 line 119 toUtm8.northing: 3462284.926102\n    test 615 line 119 toUtm8.gamma: 18.546398\n    test 616 line 119 toUtm8.scale: 1.199351\n    test 617 line 119 toUtm8.lat: 25.650282\n    test 618 line 119 toUtm8.lon: 37.710391\n\n    test skipped (17): line 120 toUtm8.'20.684773383075 82.849734261238 10452892.2820830090734 8000059.6051139389546 71.07524025411428855 2.6501109339363854772'\n    test 619 line 121 toUtm8.easting: 496148.253731\n    test 620 line 121 toUtm8.northing: 6388503.365043\n    test 621 line 121 toUtm8.gamma: 6.970955\n    test 622 line 121 toUtm8.scale: 1.002620\n    test 623 line 121 toUtm8.lat: 57.367533\n    test 624 line 121 toUtm8.lon: 8.260866\n    test 625 line 122 toUtm8.easting: 7375792.085850\n    test 626 line 122 toUtm8.northing: 5544624.072155\n    test 627 line 122 toUtm8.gamma: 44.510851\n    test 628 line 122 toUtm8.scale: 1.745898\n    test 629 line 122 toUtm8.lat: 25.958757\n    test 630 line 122 toUtm8.lon: 65.760477\n    test 631 line 123 toUtm8.easting: 2826258.041979\n    test 632 line 123 toUtm8.northing: 5167759.816959\n    test 633 line 123 toUtm8.gamma: 23.783897\n    test 634 line 123 toUtm8.scale: 1.099415\n    test 635 line 123 toUtm8.lat: 41.395848\n    test 636 line 123 toUtm8.lon: 33.661790\n    test 637 line 124 toUtm8.easting: 3958563.378851\n    test 638 line 124 toUtm8.northing: 8499923.231243\n    test 639 line 124 toUtm8.gamma: 66.570945\n    test 640 line 124 toUtm8.scale: 1.197296\n    test 641 line 124 toUtm8.lat: 54.266617\n    test 642 line 124 toUtm8.lon: 70.602199\n    test 643 line 125 toUtm8.easting: 4408189.533462\n    test 644 line 125 toUtm8.northing: 8046312.003642\n    test 645 line 125 toUtm8.gamma: 62.216959\n    test 646 line 125 toUtm8.scale: 1.246750\n    test 647 line 125 toUtm8.lat: 49.840393\n    test 648 line 125 toUtm8.lon: 68.036728\n    test 649 line 126 toUtm8.easting: 3629225.627512\n    test 650 line 126 toUtm8.northing: 6371258.454645\n    test 651 line 126 toUtm8.gamma: 38.881675\n    test 652 line 126 toUtm8.scale: 1.165511\n    test 653 line 126 toUtm8.lat: 46.306035\n    test 654 line 126 toUtm8.lon: 48.085828\n    test 655 line 127 toUtm8.easting: 602838.450710\n    test 656 line 127 toUtm8.northing: 4851370.637205\n    test 657 line 127 toUtm8.gamma: 5.160395\n    test 658 line 127 toUtm8.scale: 1.004073\n    test 659 line 127 toUtm8.lat: 43.570988\n    test 660 line 127 toUtm8.lon: 7.464494\n    test 661 line 128 toUtm8.easting: 764616.665051\n    test 662 line 128 toUtm8.northing: 2164299.337945\n    test 663 line 128 toUtm8.gamma: 2.429300\n    test 664 line 128 toUtm8.scale: 1.006835\n    test 665 line 128 toUtm8.lat: 19.427290\n    test 666 line 128 toUtm8.lon: 7.268247\n    test 667 line 129 toUtm8.easting: 5048953.021931\n    test 668 line 129 toUtm8.northing: 1885974.057398\n    test 669 line 129 toUtm8.gamma: 11.459804\n    test 670 line 129 toUtm8.scale: 1.332207\n    test 671 line 129 toUtm8.lat: 12.713794\n    test 672 line 129 toUtm8.lon: 42.507018\n    test 673 line 130 toUtm8.easting: 2293996.601155\n    test 674 line 130 toUtm8.northing: 2392408.644221\n    test 675 line 130 toUtm8.gamma: 7.791838\n    test 676 line 130 toUtm8.scale: 1.065348\n    test 677 line 130 toUtm8.lat: 20.238782\n    test 678 line 130 toUtm8.lon: 21.566068\n    test 679 line 131 toUtm8.easting: 1530603.839418\n    test 680 line 131 toUtm8.northing: 7287841.459898\n    test 681 line 131 toUtm8.gamma: 27.502921\n    test 682 line 131 toUtm8.scale: 1.028416\n    test 683 line 131 toUtm8.lat: 62.367847\n    test 684 line 131 toUtm8.lon: 30.438849\n    test 685 line 132 toUtm8.easting: 2660000.093152\n    test 686 line 132 toUtm8.northing: 5161982.213248\n    test 687 line 132 toUtm8.gamma: 22.629836\n    test 688 line 132 toUtm8.scale: 1.087851\n    test 689 line 132 toUtm8.lat: 41.891569\n    test 690 line 132 toUtm8.lon: 31.959547\n    test 691 line 133 toUtm8.easting: 5037478.329414\n    test 692 line 133 toUtm8.northing: 8768172.379908\n    test 693 line 133 toUtm8.gamma: 73.511182\n    test 694 line 133 toUtm8.scale: 1.325919\n    test 695 line 133 toUtm8.lat: 47.664248\n    test 696 line 133 toUtm8.lon: 77.630062\n    test 697 line 134 toUtm8.easting: 2289650.957799\n    test 698 line 134 toUtm8.northing: 8784328.593607\n    test 699 line 134 toUtm8.gamma: 60.786067\n    test 700 line 134 toUtm8.scale: 1.064346\n    test 701 line 134 toUtm8.lat: 67.259559\n    test 702 line 134 toUtm8.lon: 62.715293\n    test 703 line 135 toUtm8.easting: 647913.889744\n    test 704 line 135 toUtm8.northing: 6742382.228217\n    test 705 line 135 toUtm8.gamma: 10.252667\n    test 706 line 135 toUtm8.scale: 1.004748\n    test 707 line 135 toUtm8.lat: 60.295381\n    test 708 line 135 toUtm8.lon: 11.763097\n    test 709 line 136 toUtm8.easting: 1118372.698566\n    test 710 line 136 toUtm8.northing: 9040627.942263\n    test 711 line 136 toUtm8.gamma: 48.936803\n    test 712 line 136 toUtm8.scale: 1.014920\n    test 713 line 136 toUtm8.lat: 76.878914\n    test 714 line 136 toUtm8.lon: 49.685773\n    test 715 line 137 toUtm8.easting: 440696.510070\n    test 716 line 137 toUtm8.northing: 5500355.826297\n    test 717 line 137 toUtm8.gamma: 4.636104\n    test 718 line 137 toUtm8.scale: 1.001986\n    test 719 line 137 toUtm8.lat: 49.495349\n    test 720 line 137 toUtm8.lon: 6.087551\n    test 721 line 138 toUtm8.easting: 601728.149727\n    test 722 line 138 toUtm8.northing: 9095352.048149\n    test 723 line 138 toUtm8.gamma: 33.435771\n    test 724 line 138 toUtm8.scale: 1.004027\n    test 725 line 138 toUtm8.lat: 80.297265\n    test 726 line 138 toUtm8.lon: 33.816372\n    test 727 line 139 toUtm8.easting: 3481444.777827\n    test 728 line 139 toUtm8.northing: 291665.708749\n    test 729 line 139 toUtm8.gamma: 1.314726\n    test 730 line 139 toUtm8.scale: 1.153534\n    test 731 line 139 toUtm8.lat: 2.286437\n    test 732 line 139 toUtm8.lon: 29.855149\n    test 733 line 140 toUtm8.easting: 3515304.901524\n    test 734 line 140 toUtm8.northing: 1443981.882918\n    test 735 line 140 toUtm8.gamma: 6.641638\n    test 736 line 140 toUtm8.scale: 1.156509\n    test 737 line 140 toUtm8.lat: 11.264457\n    test 738 line 140 toUtm8.lon: 30.743907\n    test 739 line 141 toUtm8.easting: 160012.186959\n    test 740 line 141 toUtm8.northing: 3922609.253231\n    test 741 line 141 toUtm8.gamma: 1.022225\n    test 742 line 141 toUtm8.scale: 0.999916\n    test 743 line 141 toUtm8.lat: 35.434073\n    test 744 line 141 toUtm8.lon: 1.762795\n    test 745 line 142 toUtm8.easting: 4163744.245622\n    test 746 line 142 toUtm8.northing: 936884.674804\n    test 747 line 142 toUtm8.gamma: 4.892559\n    test 748 line 142 toUtm8.scale: 1.222164\n    test 749 line 142 toUtm8.lat: 6.923695\n    test 750 line 142 toUtm8.lon: 35.289456\n    test 751 line 143 toUtm8.easting: 6155200.017926\n    test 752 line 143 toUtm8.northing: 6926306.628390\n    test 753 line 143 toUtm8.gamma: 55.103258\n    test 754 line 143 toUtm8.scale: 1.500556\n    test 755 line 143 toUtm8.lat: 36.129672\n    test 756 line 143 toUtm8.lon: 67.533176\n\n    test skipped (18): line 144 toUtm8.'4.406528980638 81.965734206053 16263383.2854400911299 3591296.7313406507021 36.040254103487111035 6.58928781751888396522'\n\n    test skipped (19): line 145 toUtm8.'8.474589009114 81.129945130597 14220995.5153984992101 5100587.4575033509156 47.314258427760984573 4.69320221531225352172'\n    test 757 line 146 toUtm8.easting: 3173034.802372\n    test 758 line 146 toUtm8.northing: 7263421.942957\n    test 759 line 146 toUtm8.gamma: 45.215808\n    test 760 line 146 toUtm8.scale: 1.125410\n    test 761 line 146 toUtm8.lat: 53.907276\n    test 762 line 146 toUtm8.lon: 51.252904\n\n    test skipped (20): line 147 toUtm8.'22.120544817855 85.756781608119 10253274.0922039670098 8867574.2997916978265 79.198250285604314115 2.57237240666878171579'\n    test 763 line 148 toUtm8.easting: 2415561.483230\n    test 764 line 148 toUtm8.northing: 8813225.217097\n    test 765 line 148 toUtm8.gamma: 62.548978\n    test 766 line 148 toUtm8.scale: 1.071748\n    test 767 line 148 toUtm8.lat: 66.444100\n    test 768 line 148 toUtm8.lon: 64.532960\n    test 769 line 149 toUtm8.easting: 9589179.293294  FAILED, KNOWN, expected 9589179.293295\n    test 770 line 149 toUtm8.northing: 1777680.784144  FAILED, KNOWN, expected 1777680.784143\n    test 771 line 149 toUtm8.gamma: 14.838483\n    test 772 line 149 toUtm8.scale: 2.380716\n    test 773 line 149 toUtm8.lat: 6.670965\n    test 774 line 149 toUtm8.lon: 65.660408\n    test 775 line 150 toUtm8.easting: 727939.438391\n    test 776 line 150 toUtm8.northing: 3684363.236810\n    test 777 line 150 toUtm8.gamma: 4.266227\n    test 778 line 150 toUtm8.scale: 1.006140\n    test 779 line 150 toUtm8.lat: 33.054057\n    test 780 line 150 toUtm8.lon: 7.787458\n    test 781 line 151 toUtm8.easting: 1250765.991085\n    test 782 line 151 toUtm8.northing: 792869.242719\n    test 783 line 151 toUtm8.gamma: 1.396497\n    test 784 line 151 toUtm8.scale: 1.019026\n    test 785 line 151 toUtm8.lat: 7.035525\n    test 786 line 151 toUtm8.lon: 11.253707\n    test 787 line 152 toUtm8.easting: 710421.705887\n    test 788 line 152 toUtm8.northing: 5019406.075928\n    test 789 line 152 toUtm8.gamma: 6.393949\n    test 790 line 152 toUtm8.scale: 1.005812\n    test 791 line 152 toUtm8.lat: 44.971340\n    test 792 line 152 toUtm8.lon: 9.009304\n    test 793 line 153 toUtm8.easting: 4600995.074643\n    test 794 line 153 toUtm8.northing: 4505712.084593\n    test 795 line 153 toUtm8.gamma: 27.997458\n    test 796 line 153 toUtm8.scale: 1.271841\n    test 797 line 153 toUtm8.lat: 30.821397\n    test 798 line 153 toUtm8.lon: 45.970577\n    test 799 line 154 toUtm8.easting: 557642.627782\n    test 800 line 154 toUtm8.northing: 7006911.251644\n    test 801 line 154 toUtm8.gamma: 9.769903\n    test 802 line 154 toUtm8.scale: 1.003411\n    test 803 line 154 toUtm8.lat: 62.763886\n    test 804 line 154 toUtm8.lon: 10.960144\n    test 805 line 155 toUtm8.easting: 4635062.294291\n    test 806 line 155 toUtm8.northing: 2702556.153311\n    test 807 line 155 toUtm8.gamma: 15.779547\n    test 808 line 155 toUtm8.scale: 1.277178\n    test 809 line 155 toUtm8.lat: 18.888611\n    test 810 line 155 toUtm8.lon: 41.009871\n\n    test skipped (21): line 156 toUtm8.'7.524119461376 81.050715469439 14554962.2559189870471 4716639.9085720199214 44.192751352918149954 4.96001986321419027847'\n    test 811 line 157 toUtm8.easting: 882126.661736\n    test 812 line 157 toUtm8.northing: 7947612.369506\n    test 813 line 157 toUtm8.gamma: 22.429487\n    test 814 line 157 toUtm8.scale: 1.009132\n    test 815 line 157 toUtm8.lat: 70.063902\n    test 816 line 157 toUtm8.lon: 23.705255\n\n    test skipped (22): line 158 toUtm8.'3.556525834215 88.363529198819 20262021.6459832969292 8113827.8207957955275 76.936057264555500879 10.34909168211805703369'\n    test 817 line 159 toUtm8.easting: 6500508.399850\n    test 818 line 159 toUtm8.northing: 6956476.342368\n    test 819 line 159 toUtm8.gamma: 56.237116\n    test 820 line 159 toUtm8.scale: 1.563162\n    test 821 line 159 toUtm8.lat: 34.551257\n    test 822 line 159 toUtm8.lon: 69.111091\n    test 823 line 160 toUtm8.easting: 3884036.641314\n    test 824 line 160 toUtm8.northing: 6890167.411733\n    test 825 line 160 toUtm8.gamma: 45.760130\n    test 826 line 160 toUtm8.scale: 1.190167\n    test 827 line 160 toUtm8.lat: 47.929051\n    test 828 line 160 toUtm8.lon: 54.103418\n    test 829 line 161 toUtm8.easting: 217855.546078\n    test 830 line 161 toUtm8.northing: 6184108.122568\n    test 831 line 161 toUtm8.gamma: 2.870993\n    test 832 line 161 toUtm8.scale: 1.000182\n    test 833 line 161 toUtm8.lat: 55.753536\n    test 834 line 161 toUtm8.lon: 3.471798\n\n    test skipped (23): line 162 toUtm8.'18.530847071862 86.555312055898 11384139.290401676268 8893889.9495562311576 79.77485364572019046 3.02467156922968230025'\n    test 835 line 163 toUtm8.easting: 3469855.989805\n    test 836 line 163 toUtm8.northing: 7723193.799228\n    test 837 line 163 toUtm8.gamma: 53.114700\n    test 838 line 163 toUtm8.scale: 1.150540\n    test 839 line 163 toUtm8.lat: 54.510125\n    test 840 line 163 toUtm8.lon: 58.556056\n\n    test skipped (24): line 164 toUtm8.'42.864161881687 84.866325602975 5926165.994939154109 9385463.7327467371322 82.506981261616342016 1.45975761947329382411'\n    test 841 line 165 toUtm8.easting: 5798639.662224\n    test 842 line 165 toUtm8.northing: 5305387.640916\n    test 843 line 165 toUtm8.gamma: 38.617257\n    test 844 line 165 toUtm8.scale: 1.442263\n    test 845 line 165 toUtm8.lat: 30.911943\n    test 846 line 165 toUtm8.lon: 57.114102\n    test 847 line 166 toUtm8.easting: 9464.934388\n    test 848 line 166 toUtm8.northing: 6489121.624944\n    test 849 line 166 toUtm8.gamma: 0.138696\n    test 850 line 166 toUtm8.scale: 0.999601\n    test 851 line 166 toUtm8.lat: 58.542493\n    test 852 line 166 toUtm8.lon: 0.162593\n\n    test skipped (25): line 167 toUtm8.'15.022689088683 85.792615487152 12575834.2756139069875 8356610.8954857643175 75.235223160840771295 3.59944161831319404851'\n    test 853 line 168 toUtm8.easting: 2719653.543469\n    test 854 line 168 toUtm8.northing: 9362389.163495\n    test 855 line 168 toUtm8.gamma: 76.049670\n    test 856 line 168 toUtm8.scale: 1.091315\n    test 857 line 168 toUtm8.lat: 65.692275\n    test 858 line 168 toUtm8.lon: 77.241377\n    test 859 line 169 toUtm8.easting: 4845341.924698\n    test 860 line 169 toUtm8.northing: 8710522.326901\n    test 861 line 169 toUtm8.gamma: 72.320942\n    test 862 line 169 toUtm8.scale: 1.300382\n    test 863 line 169 toUtm8.lat: 48.806211\n    test 864 line 169 toUtm8.lon: 76.486365\n\n    test skipped (26): line 170 toUtm8.'56.436024794624 82.61156798689 3935261.5227628794258 9454271.6490618694486 81.162334302626197333 1.19476734082123451158'\n    test 865 line 171 toUtm8.easting: 7074299.823000\n    test 866 line 171 toUtm8.northing: 1648736.065055\n    test 867 line 171 toUtm8.gamma: 12.145925\n    test 868 line 171 toUtm8.scale: 1.687551\n    test 869 line 171 toUtm8.lat: 8.766053\n    test 870 line 171 toUtm8.lon: 54.367539\n    test 871 line 172 toUtm8.easting: 3689072.579308\n    test 872 line 172 toUtm8.northing: 2230802.665211\n    test 873 line 172 toUtm8.gamma: 10.856248\n    test 874 line 172 toUtm8.scale: 1.172689\n    test 875 line 172 toUtm8.lat: 17.095495\n    test 876 line 172 toUtm8.lon: 33.059128\n    test 877 line 173 toUtm8.easting: 8102565.885587\n    test 878 line 173 toUtm8.northing: 5167396.617580\n    test 879 line 173 toUtm8.gamma: 42.324886\n    test 880 line 173 toUtm8.scale: 1.921927\n    test 881 line 173 toUtm8.lat: 22.142861\n    test 882 line 173 toUtm8.lon: 67.200684\n    test 883 line 174 toUtm8.easting: 8181271.353564\n    test 884 line 174 toUtm8.northing: 4425436.547185\n    test 885 line 174 toUtm8.gamma: 35.900845\n    test 886 line 174 toUtm8.scale: 1.945017\n    test 887 line 174 toUtm8.lat: 19.222623\n    test 888 line 174 toUtm8.lon: 65.180785\n    test 889 line 175 toUtm8.easting: 767067.394003\n    test 890 line 175 toUtm8.northing: 3701745.857296\n    test 891 line 175 toUtm8.gamma: 4.519201\n    test 892 line 175 toUtm8.scale: 1.006863\n    test 893 line 175 toUtm8.lat: 33.182474\n    test 894 line 175 toUtm8.lon: 8.216952\n    test 895 line 176 toUtm8.easting: 6688114.168572\n    test 896 line 176 toUtm8.northing: 2052857.299639\n    test 897 line 176 toUtm8.gamma: 14.766191\n    test 898 line 176 toUtm8.scale: 1.607200\n    test 899 line 176 toUtm8.lat: 11.417963\n    test 900 line 176 toUtm8.lon: 52.808691\n    test 901 line 177 toUtm8.easting: 5608408.773761\n    test 902 line 177 toUtm8.northing: 3859055.659110\n    test 903 line 177 toUtm8.gamma: 26.244151\n    test 904 line 177 toUtm8.scale: 1.413463\n    test 905 line 177 toUtm8.lat: 23.836688\n    test 906 line 177 toUtm8.lon: 50.500180\n    test 907 line 178 toUtm8.easting: 3836942.765275\n    test 908 line 178 toUtm8.northing: 6415467.634326\n    test 909 line 178 toUtm8.gamma: 40.575885\n    test 910 line 178 toUtm8.scale: 1.185615\n    test 911 line 178 toUtm8.lat: 45.550020\n    test 912 line 178 toUtm8.lon: 50.148036\n    test 913 line 179 toUtm8.easting: 1298730.366025\n    test 914 line 179 toUtm8.northing: 6021453.000792\n    test 915 line 179 toUtm8.gamma: 15.613320\n    test 916 line 179 toUtm8.scale: 1.020367\n    test 917 line 179 toUtm8.lat: 52.746079\n    test 918 line 179 toUtm8.lon: 19.343926\n    test 919 line 180 toUtm8.easting: 416934.289208\n    test 920 line 180 toUtm8.northing: 7295683.451705\n    test 921 line 180 toUtm8.gamma: 8.238232\n    test 922 line 180 toUtm8.scale: 1.001729\n    test 923 line 180 toUtm8.lat: 65.513348\n    test 924 line 180 toUtm8.lon: 9.039529\n    test 925 line 181 toUtm8.easting: 4336076.850889\n    test 926 line 181 toUtm8.northing: 7617975.722779\n    test 927 line 181 toUtm8.gamma: 56.537088\n    test 928 line 181 toUtm8.scale: 1.238582\n    test 929 line 181 toUtm8.lat: 48.709795\n    test 930 line 181 toUtm8.lon: 63.554005\n    test 931 line 182 toUtm8.easting: 168047.336980\n    test 932 line 182 toUtm8.northing: 2185000.046530\n    test 933 line 182 toUtm8.gamma: 0.542187\n    test 934 line 182 toUtm8.scale: 0.999949\n    test 935 line 182 toUtm8.lat: 19.753509\n    test 936 line 182 toUtm8.lon: 1.603846\n    test 937 line 183 toUtm8.easting: 8276281.328790\n    test 938 line 183 toUtm8.northing: 263444.350545\n    test 939 line 183 toUtm8.gamma: 2.071435\n    test 940 line 183 toUtm8.scale: 1.980314\n    test 941 line 183 toUtm8.lat: 1.202816\n    test 942 line 183 toUtm8.lon: 59.377276\n    test 943 line 184 toUtm8.easting: 4772573.810710\n    test 944 line 184 toUtm8.northing: 6765710.336002\n    test 945 line 184 toUtm8.gamma: 48.857561\n    test 946 line 184 toUtm8.scale: 1.291911\n    test 947 line 184 toUtm8.lat: 42.564975\n    test 948 line 184 toUtm8.lon: 59.356947\n    test 949 line 185 toUtm8.easting: 5427755.074639\n    test 950 line 185 toUtm8.northing: 1556055.820924\n    test 951 line 185 toUtm8.gamma: 9.862178\n    test 952 line 185 toUtm8.scale: 1.387394\n    test 953 line 185 toUtm8.lat: 10.090572\n    test 954 line 185 toUtm8.lon: 44.604132\n    test 955 line 186 toUtm8.easting: 11588458.616240  FAILED, KNOWN, expected 11588458.616041\n    test 956 line 186 toUtm8.northing: 5707993.922683  FAILED, KNOWN, expected 5707993.922613\n    test 957 line 186 toUtm8.gamma: 50.784827\n    test 958 line 186 toUtm8.scale: 3.149567\n    test 959 line 186 toUtm8.lat: 14.133028\n    test 960 line 186 toUtm8.lon: 78.097533\n    test 961 line 187 toUtm8.easting: 7152433.802688\n    test 962 line 187 toUtm8.northing: 761390.695844\n    test 963 line 187 toUtm8.gamma: 5.607350\n    test 964 line 187 toUtm8.scale: 1.705261\n    test 965 line 187 toUtm8.lat: 4.031123\n    test 966 line 187 toUtm8.lon: 54.048782\n    test 967 line 188 toUtm8.easting: 3105651.390901\n    test 968 line 188 toUtm8.northing: 9426026.169064\n    test 969 line 188 toUtm8.gamma: 78.750206\n    test 970 line 188 toUtm8.scale: 1.119737\n    test 971 line 188 toUtm8.lat: 62.746603\n    test 972 line 188 toUtm8.lon: 79.968641\n    test 973 line 189 toUtm8.easting: 2959009.639022\n    test 974 line 189 toUtm8.northing: 8339242.269282\n    test 975 line 189 toUtm8.gamma: 58.460865\n    test 976 line 189 toUtm8.scale: 1.108554\n    test 977 line 189 toUtm8.lat: 60.626429\n    test 978 line 189 toUtm8.lon: 61.851551\n    test 979 line 190 toUtm8.easting: 8640472.267145\n    test 980 line 190 toUtm8.northing: 6230320.417931\n    test 981 line 190 toUtm8.gamma: 52.816810\n    test 982 line 190 toUtm8.scale: 2.062973\n    test 983 line 190 toUtm8.lat: 23.600626\n    test 984 line 190 toUtm8.lon: 72.811634\n    test 985 line 191 toUtm8.easting: 811352.108932\n    test 986 line 191 toUtm8.northing: 9816129.813481\n    test 987 line 191 toUtm8.gamma: 77.299184\n    test 988 line 191 toUtm8.scale: 1.007651\n    test 989 line 191 toUtm8.lat: 82.572236\n    test 990 line 191 toUtm8.lon: 77.402323\n    test 991 line 192 toUtm8.easting: 6521874.973458\n    test 992 line 192 toUtm8.northing: 1053612.479744\n    test 993 line 192 toUtm8.gamma: 7.407328\n    test 994 line 192 toUtm8.scale: 1.575529\n    test 995 line 192 toUtm8.lat: 6.030051\n    test 996 line 192 toUtm8.lon: 50.783505\n    test 997 line 193 toUtm8.easting: 3477983.997875\n    test 998 line 193 toUtm8.northing: 5651613.325947\n    test 999 line 193 toUtm8.gamma: 31.530673\n    test 1000 line 193 toUtm8.scale: 1.151875\n    test 1001 line 193 toUtm8.lat: 42.411523\n    test 1002 line 193 toUtm8.lon: 42.258009\n    test 1003 line 194 toUtm8.easting: 629892.822243\n    test 1004 line 194 toUtm8.northing: 3283914.910451\n    test 1005 line 194 toUtm8.gamma: 3.210482\n    test 1006 line 194 toUtm8.scale: 1.004499\n    test 1007 line 194 toUtm8.lat: 29.526120\n    test 1008 line 194 toUtm8.lon: 6.493069\n    test 1009 line 195 toUtm8.easting: 3381879.687227\n    test 1010 line 195 toUtm8.northing: 5103629.325665\n    test 1011 line 195 toUtm8.gamma: 26.748108\n    test 1012 line 195 toUtm8.scale: 1.143559\n    test 1013 line 195 toUtm8.lat: 39.021853\n    test 1014 line 195 toUtm8.lon: 38.641779\n    test 1015 line 196 toUtm8.easting: 2815986.534177\n    test 1016 line 196 toUtm8.northing: 9387029.120718\n    test 1017 line 196 toUtm8.gamma: 76.967262\n    test 1018 line 196 toUtm8.scale: 1.098032\n    test 1019 line 196 toUtm8.lat: 64.971850\n    test 1020 line 196 toUtm8.lon: 78.151893\n    test 1021 line 197 toUtm8.easting: 3398195.889603\n    test 1022 line 197 toUtm8.northing: 9138936.031490\n    test 1023 line 197 toUtm8.gamma: 74.477499\n    test 1024 line 197 toUtm8.scale: 1.144009\n    test 1025 line 197 toUtm8.lat: 59.961819\n    test 1026 line 197 toUtm8.lon: 76.473422\n    test 1027 line 198 toUtm8.easting: 2421734.754637\n    test 1028 line 198 toUtm8.northing: 5002372.094991\n    test 1029 line 198 toUtm8.gamma: 20.017082\n    test 1030 line 198 toUtm8.scale: 1.072592\n    test 1031 line 198 toUtm8.lat: 41.374040\n    test 1032 line 198 toUtm8.lon: 28.848343\n    test 1033 line 199 toUtm8.easting: 2360869.895525\n    test 1034 line 199 toUtm8.northing: 9553298.449536\n    test 1035 line 199 toUtm8.gamma: 78.848205\n    test 1036 line 199 toUtm8.scale: 1.068453\n    test 1037 line 199 toUtm8.lat: 68.946087\n    test 1038 line 199 toUtm8.lon: 79.574523\n\n    test skipped (27): line 200 toUtm8.'79.275096210569 83.551272329394 1196539.9721941076965 9861920.8362302532842 83.437668440198132309 1.01713723718699411107'\n    test 1039 line 201 toUtm8.easting: 1327758.704795\n    test 1040 line 201 toUtm8.northing: 2375509.241683\n    test 1041 line 201 toUtm8.gamma: 4.617572\n    test 1042 line 201 toUtm8.scale: 1.021465\n    test 1043 line 201 toUtm8.lat: 21.000252\n    test 1044 line 201 toUtm8.lon: 12.697444\n    test 1045 line 202 toUtm8.easting: 2070860.327644\n    test 1046 line 202 toUtm8.northing: 8604500.719581\n    test 1047 line 202 toUtm8.gamma: 54.722761\n    test 1048 line 202 toUtm8.scale: 1.052469\n    test 1049 line 202 toUtm8.lat: 68.015227\n    test 1050 line 202 toUtm8.lon: 56.732419\n    test 1051 line 203 toUtm8.easting: 6564776.654864\n    test 1052 line 203 toUtm8.northing: 8171207.177379\n    test 1053 line 203 toUtm8.gamma: 69.237523\n    test 1054 line 203 toUtm8.scale: 1.573894\n    test 1055 line 203 toUtm8.lat: 37.423675\n    test 1056 line 203 toUtm8.lon: 76.947359\n    test 1057 line 204 toUtm8.easting: 592653.553821\n    test 1058 line 204 toUtm8.northing: 6125529.810052\n    test 1059 line 204 toUtm8.gamma: 7.600785\n    test 1060 line 204 toUtm8.scale: 1.003912\n    test 1061 line 204 toUtm8.lat: 54.922707\n    test 1062 line 204 toUtm8.lon: 9.260818\n    test 1063 line 205 toUtm8.easting: 693459.671821\n    test 1064 line 205 toUtm8.northing: 6943779.991032\n    test 1065 line 205 toUtm8.gamma: 11.787587\n    test 1066 line 205 toUtm8.scale: 1.005496\n    test 1067 line 205 toUtm8.lat: 61.982810\n    test 1068 line 205 toUtm8.lon: 13.299659\n    test 1069 line 206 toUtm8.easting: 1838956.187625\n    test 1070 line 206 toUtm8.northing: 3511959.612381\n    test 1071 line 206 toUtm8.gamma: 9.844313\n    test 1072 line 206 toUtm8.scale: 1.041603\n    test 1073 line 206 toUtm8.lat: 30.324214\n    test 1074 line 206 toUtm8.lon: 18.959769\n    test 1075 line 207 toUtm8.easting: 4460690.884597\n    test 1076 line 207 toUtm8.northing: 5541873.235403\n    test 1077 line 207 toUtm8.gamma: 35.768613\n    test 1078 line 207 toUtm8.scale: 1.254179\n    test 1079 line 207 toUtm8.lat: 37.629667\n    test 1080 line 207 toUtm8.lon: 49.649131\n    test 1081 line 208 toUtm8.easting: 2311168.998941\n    test 1082 line 208 toUtm8.northing: 9480561.869119\n    test 1083 line 208 toUtm8.gamma: 76.828257\n    test 1084 line 208 toUtm8.scale: 1.065556\n    test 1085 line 208 toUtm8.lat: 69.225574\n    test 1086 line 208 toUtm8.lon: 77.656135\n    test 1087 line 209 toUtm8.easting: 4111775.114451\n    test 1088 line 209 toUtm8.northing: 6509014.348792\n    test 1089 line 209 toUtm8.gamma: 43.052130\n    test 1090 line 209 toUtm8.scale: 1.214125\n    test 1091 line 209 toUtm8.lat: 44.698478\n    test 1092 line 209 toUtm8.lon: 52.979304\n    test 1093 line 210 toUtm8.easting: 75358.261962\n    test 1094 line 210 toUtm8.northing: 7711258.662251\n    test 1095 line 210 toUtm8.gamma: 1.806297\n    test 1096 line 210 toUtm8.scale: 0.999669\n    test 1097 line 210 toUtm8.lat: 69.499594\n    test 1098 line 210 toUtm8.lon: 1.928336\n\n    test skipped (28): line 211 toUtm8.'27.981363604998 86.061112755721 8781885.2291162503299 9184776.4522114918448 81.795538514711932534 2.09490761781464961377'\n    test 1099 line 212 toUtm8.easting: 954378.415174\n    test 1100 line 212 toUtm8.northing: 7449110.669807\n    test 1101 line 212 toUtm8.gamma: 19.380657\n    test 1102 line 212 toUtm8.scale: 1.010768\n    test 1103 line 212 toUtm8.lat: 65.699839\n    test 1104 line 212 toUtm8.lon: 21.104725\n    test 1105 line 213 toUtm8.easting: 720971.793706\n    test 1106 line 213 toUtm8.northing: 5265195.121555\n    test 1107 line 213 toUtm8.gamma: 7.002995\n    test 1108 line 213 toUtm8.scale: 1.005995\n    test 1109 line 213 toUtm8.lat: 47.143648\n    test 1110 line 213 toUtm8.lon: 9.512189\n    test 1111 line 214 toUtm8.easting: 561561.493937\n    test 1112 line 214 toUtm8.northing: 989910.236221\n    test 1113 line 214 toUtm8.gamma: 0.793118\n    test 1114 line 214 toUtm8.scale: 1.003505\n    test 1115 line 214 toUtm8.lat: 8.920167\n    test 1116 line 214 toUtm8.lon: 5.101513\n    test 1117 line 215 toUtm8.easting: 3446829.634468\n    test 1118 line 215 toUtm8.northing: 9232868.155664\n    test 1119 line 215 toUtm8.gamma: 76.279075\n    test 1120 line 215 toUtm8.scale: 1.148263\n    test 1121 line 215 toUtm8.lat: 59.778971\n    test 1122 line 215 toUtm8.lon: 78.080322\n\n    test skipped (29): line 216 toUtm8.'55.865310107291 87.384288430943 4048307.5459092527942 9800416.4229977935137 86.843918034217523739 1.20649504624906774925'\n    test 1123 line 217 toUtm8.easting: 8973188.480293\n    test 1124 line 217 toUtm8.northing: 7042230.087021\n    test 1125 line 217 toUtm8.gamma: 60.872456\n    test 1126 line 217 toUtm8.scale: 2.156098\n    test 1127 line 217 toUtm8.lat: 24.310973\n    test 1128 line 217 toUtm8.lon: 76.823777\n    test 1129 line 218 toUtm8.easting: 126314.191618\n    test 1130 line 218 toUtm8.northing: 396006.687921\n    test 1131 line 218 toUtm8.gamma: 0.071065\n    test 1132 line 218 toUtm8.scale: 0.999798\n    test 1133 line 218 toUtm8.lat: 3.582041\n    test 1134 line 218 toUtm8.lon: 1.137286\n    test 1135 line 219 toUtm8.easting: 5247652.345647\n    test 1136 line 219 toUtm8.northing: 8670513.359752\n    test 1137 line 219 toUtm8.gamma: 72.700498\n    test 1138 line 219 toUtm8.scale: 1.355272\n    test 1139 line 219 toUtm8.lat: 46.124233\n    test 1140 line 219 toUtm8.lon: 77.313118\n\n    test skipped (30): line 220 toUtm8.'31.17139056295 87.104503768139 8103656.8381187232079 9469794.014736839373 84.490673011906282841 1.91216400164486142107'\n    test 1141 line 221 toUtm8.easting: 6300112.758236\n    test 1142 line 221 toUtm8.northing: 93835.917364\n    test 1143 line 221 toUtm8.gamma: 0.644805\n    test 1144 line 221 toUtm8.scale: 1.534073\n    test 1145 line 221 toUtm8.lat: 0.553171\n    test 1146 line 221 toUtm8.lon: 49.117104\n    test 1147 line 222 toUtm8.easting: 3894813.593782\n    test 1148 line 222 toUtm8.northing: 4833832.341027\n    test 1149 line 222 toUtm8.gamma: 27.453298\n    test 1150 line 222 toUtm8.scale: 1.192135\n    test 1151 line 222 toUtm8.lat: 35.361587\n    test 1152 line 222 toUtm8.lon: 41.860599\n    test 1153 line 223 toUtm8.easting: 402511.346712\n    test 1154 line 223 toUtm8.northing: 3520621.561911\n    test 1155 line 223 toUtm8.gamma: 2.238474\n    test 1156 line 223 toUtm8.scale: 1.001599\n    test 1157 line 223 toUtm8.lat: 31.750314\n    test 1158 line 223 toUtm8.lon: 4.248167\n    test 1159 line 224 toUtm8.easting: 5357378.503148\n    test 1160 line 224 toUtm8.northing: 2772997.602234\n    test 1161 line 224 toUtm8.gamma: 17.823560\n    test 1162 line 224 toUtm8.scale: 1.376031\n    test 1163 line 224 toUtm8.lat: 17.924336\n    test 1164 line 224 toUtm8.lon: 46.096402\n    test 1165 line 225 toUtm8.easting: 2807553.985866\n    test 1166 line 225 toUtm8.northing: 8177847.980275\n    test 1167 line 225 toUtm8.gamma: 54.680045\n    test 1168 line 225 toUtm8.scale: 1.097531\n    test 1169 line 225 toUtm8.lat: 60.931488\n    test 1170 line 225 toUtm8.lon: 58.221214\n\n    test skipped (31): line 226 toUtm8.'5.358150979521 87.556213284144 18289045.16650076146 7792942.3396035398889 73.216494415207315628 8.09800850850277481729'\n\n    test skipped (32): line 227 toUtm8.'28.616673489124 80.452426461437 8376822.4595378634541 8128174.6238782329989 70.920116640676321501 1.98487312027093768388'\n    test 1171 line 228 toUtm8.easting: 11898068.352950  FAILED, KNOWN, expected 11898068.353272\n    test 1172 line 228 toUtm8.northing: 4772439.493355  FAILED, KNOWN, expected 4772439.493697\n    test 1173 line 228 toUtm8.gamma: 42.613968\n    test 1174 line 228 toUtm8.scale: 3.314412\n    test 1175 line 228 toUtm8.lat: 11.709763\n    test 1176 line 228 toUtm8.lon: 76.760295\n    test 1177 line 229 toUtm8.easting: 10550946.939052  FAILED, KNOWN, expected 10550946.939050\n    test 1178 line 229 toUtm8.northing: 3851968.815305  FAILED, KNOWN, expected 3851968.815295\n    test 1179 line 229 toUtm8.gamma: 33.383025\n    test 1180 line 229 toUtm8.scale: 2.724754\n    test 1181 line 229 toUtm8.lat: 12.009498\n    test 1182 line 229 toUtm8.lon: 71.782351\n\n    test skipped (33): line 230 toUtm8.'37.62978386356 85.795687334213 6828299.1236065501034 9394803.2274626281036 83.181386462369626591 1.62435875189611017521'\n    test 1183 line 231 toUtm8.easting: 11162550.334001  FAILED, KNOWN, expected 11162550.334022\n    test 1184 line 231 toUtm8.northing: 2640267.279546  FAILED, KNOWN, expected 2640267.279593\n    test 1185 line 231 toUtm8.gamma: 23.145404\n    test 1186 line 231 toUtm8.scale: 2.998408\n    test 1187 line 231 toUtm8.lat: 7.721128\n    test 1188 line 231 toUtm8.lon: 71.662731\n    test 1189 line 232 toUtm8.easting: 4411584.447941\n    test 1190 line 232 toUtm8.northing: 4956173.694407\n    test 1191 line 232 toUtm8.gamma: 30.713919\n    test 1192 line 232 toUtm8.scale: 1.248736\n    test 1193 line 232 toUtm8.lat: 34.295026\n    test 1194 line 232 toUtm8.lon: 46.442191\n    test 1195 line 233 toUtm8.easting: 672108.897905\n    test 1196 line 233 toUtm8.northing: 4751554.657054\n    test 1197 line 233 toUtm8.gamma: 5.569178\n    test 1198 line 233 toUtm8.scale: 1.005162\n    test 1199 line 233 toUtm8.lat: 42.622496\n    test 1200 line 233 toUtm8.lon: 8.193605\n    test 1201 line 234 toUtm8.easting: 5022964.290579\n    test 1202 line 234 toUtm8.northing: 6860418.199502\n    test 1203 line 234 toUtm8.gamma: 50.862230\n    test 1204 line 234 toUtm8.scale: 1.324925\n    test 1205 line 234 toUtm8.lat: 41.667780\n    test 1206 line 234 toUtm8.lon: 61.518288\n    test 1207 line 235 toUtm8.easting: 1669655.595207\n    test 1208 line 235 toUtm8.northing: 4152086.537021\n    test 1209 line 235 toUtm8.gamma: 11.110237\n    test 1210 line 235 toUtm8.scale: 1.034138\n    test 1211 line 235 toUtm8.lat: 36.060369\n    test 1212 line 235 toUtm8.lon: 18.444112\n    test 1213 line 236 toUtm8.easting: 6055876.729655\n    test 1214 line 236 toUtm8.northing: 4896837.552619\n    test 1215 line 236 toUtm8.gamma: 35.799747\n    test 1216 line 236 toUtm8.scale: 1.485967\n    test 1217 line 236 toUtm8.lat: 27.948091\n    test 1218 line 236 toUtm8.lon: 56.816429\n    test 1219 line 237 toUtm8.easting: 1209214.164379\n    test 1220 line 237 toUtm8.northing: 7266409.859178\n    test 1221 line 237 toUtm8.gamma: 22.319633\n    test 1222 line 237 toUtm8.scale: 1.017554\n    test 1223 line 237 toUtm8.lat: 63.386030\n    test 1224 line 237 toUtm8.lon: 24.662716\n    test 1225 line 238 toUtm8.easting: 5154564.559584\n    test 1226 line 238 toUtm8.northing: 698118.349975\n    test 1227 line 238 toUtm8.gamma: 4.242360\n    test 1228 line 238 toUtm8.scale: 1.347481\n    test 1229 line 238 toUtm8.lat: 4.680922\n    test 1230 line 238 toUtm8.lon: 42.114426\n    test 1231 line 239 toUtm8.easting: 2695149.806543\n    test 1232 line 239 toUtm8.northing: 8208197.765605\n    test 1233 line 239 toUtm8.gamma: 54.178615\n    test 1234 line 239 toUtm8.scale: 1.089730\n    test 1235 line 239 toUtm8.lat: 61.826625\n    test 1236 line 239 toUtm8.lon: 57.525096\n    test 1237 line 240 toUtm8.easting: 3394792.327820\n    test 1238 line 240 toUtm8.northing: 3217583.415552\n    test 1239 line 240 toUtm8.gamma: 15.165863\n    test 1240 line 240 toUtm8.scale: 1.145285\n    test 1241 line 240 toUtm8.lat: 25.104353\n    test 1242 line 240 toUtm8.lon: 32.528660\n    test 1243 line 241 toUtm8.easting: 1429160.966985\n    test 1244 line 241 toUtm8.northing: 8212685.362032\n    test 1245 line 241 toUtm8.gamma: 37.484904\n    test 1246 line 241 toUtm8.scale: 1.024676\n    test 1247 line 241 toUtm8.lat: 69.678351\n    test 1248 line 241 toUtm8.lon: 39.275513\n\n    test skipped (34): line 242 toUtm8.'29.671383681805 84.19659549085 8343387.9980651104898 8885196.9545780118644 78.561937382568633298 1.97473261886829061763'\n    test 1249 line 243 toUtm8.easting: 1990722.928606\n    test 1250 line 243 toUtm8.northing: 7569202.065162\n    test 1251 line 243 toUtm8.gamma: 37.075276\n    test 1252 line 243 toUtm8.scale: 1.048486\n    test 1253 line 243 toUtm8.lat: 62.300208\n    test 1254 line 243 toUtm8.lon: 40.474051\n    test 1255 line 244 toUtm8.easting: 1554980.099559\n    test 1256 line 244 toUtm8.northing: 1449423.919586\n    test 1257 line 244 toUtm8.gamma: 3.188328\n    test 1258 line 244 toUtm8.scale: 1.029664\n    test 1259 line 244 toUtm8.lat: 12.721776\n    test 1260 line 244 toUtm8.lon: 14.190003\n    test 1261 line 245 toUtm8.easting: 785205.450196\n    test 1262 line 245 toUtm8.northing: 5575158.423096\n    test 1263 line 245 toUtm8.gamma: 8.388417\n    test 1264 line 245 toUtm8.scale: 1.007181\n    test 1265 line 245 toUtm8.lat: 49.811296\n    test 1266 line 245 toUtm8.lon: 10.925011\n    test 1267 line 246 toUtm8.easting: 3310405.988313\n    test 1268 line 246 toUtm8.northing: 5955022.233881\n    test 1269 line 246 toUtm8.gamma: 33.007587\n    test 1270 line 246 toUtm8.scale: 1.137141\n    test 1271 line 246 toUtm8.lat: 45.132680\n    test 1272 line 246 toUtm8.lon: 42.478624\n    test 1273 line 247 toUtm8.easting: 4733460.960666\n    test 1274 line 247 toUtm8.northing: 129034.889816\n    test 1275 line 247 toUtm8.gamma: 0.737551\n    test 1276 line 247 toUtm8.scale: 1.290439\n    test 1277 line 247 toUtm8.lat: 0.904279\n    test 1278 line 247 toUtm8.lon: 39.078412\n    test 1279 line 248 toUtm8.easting: 3322708.343909\n    test 1280 line 248 toUtm8.northing: 3864738.078742\n    test 1281 line 248 toUtm8.gamma: 18.472566\n    test 1282 line 248 toUtm8.scale: 1.138838\n    test 1283 line 248 toUtm8.lat: 30.163605\n    test 1284 line 248 toUtm8.lon: 33.577996\n\n    test skipped (35): line 249 toUtm8.'27.643243707755 81.892859091432 8672864.4172042475623 8333465.9834441061554 73.206272638168122883 2.06544053870286774312'\n\n    test skipped (36): line 250 toUtm8.'18.201207657521 82.434617649311 11126818.23119627031 7618712.1749910723126 67.88717347393512063 2.92241673495261070414'\n\n    test skipped (37): line 251 toUtm8.'28.804576432117 89.886072420251 8650100.9817967479337 9975084.1689971279206 89.767446308690086924 2.05728879562910108817'\n    test 1285 line 252 toUtm8.easting: 2212701.180192\n    test 1286 line 252 toUtm8.northing: 650348.100229\n    test 1287 line 252 toUtm8.gamma: 1.970441\n    test 1288 line 252 toUtm8.scale: 1.060830\n    test 1289 line 252 toUtm8.lat: 5.542998\n    test 1290 line 252 toUtm8.lon: 19.589578\n    test 1291 line 253 toUtm8.easting: 6890222.326618\n    test 1292 line 253 toUtm8.northing: 7506813.499547\n    test 1293 line 253 toUtm8.gamma: 62.684825\n    test 1294 line 253 toUtm8.scale: 1.638488\n    test 1295 line 253 toUtm8.lat: 34.237147\n    test 1296 line 253 toUtm8.lon: 73.678164\n    test 1297 line 254 toUtm8.easting: 6692260.067325\n    test 1298 line 254 toUtm8.northing: 4244174.008110\n    test 1299 line 254 toUtm8.gamma: 31.812920\n    test 1300 line 254 toUtm8.scale: 1.604640\n    test 1301 line 254 toUtm8.lat: 22.704949\n    test 1302 line 254 toUtm8.lon: 57.877010\n    test 1303 line 255 toUtm8.easting: 1225564.137190\n    test 1304 line 255 toUtm8.northing: 4778923.924144\n    test 1305 line 255 toUtm8.gamma: 10.083419\n    test 1306 line 255 toUtm8.scale: 1.018134\n    test 1307 line 255 toUtm8.lat: 42.192424\n    test 1308 line 255 toUtm8.lon: 14.828196\n    test 1309 line 256 toUtm8.easting: 12341116.155088  FAILED, KNOWN, expected 12341116.154950\n    test 1310 line 256 toUtm8.northing: 5081855.520287  FAILED, KNOWN, expected 5081855.521966\n    test 1311 line 256 toUtm8.gamma: 45.712545  FAILED, KNOWN, expected 45.712546\n    test 1312 line 256 toUtm8.scale: 3.535170\n    test 1313 line 256 toUtm8.lat: 11.481151\n    test 1314 line 256 toUtm8.lon: 78.189236\n    test 1315 line 257 toUtm8.easting: 6673845.021771\n    test 1316 line 257 toUtm8.northing: 1177587.190565\n    test 1317 line 257 toUtm8.gamma: 8.389141\n    test 1318 line 257 toUtm8.scale: 1.605171\n    test 1319 line 257 toUtm8.lat: 6.609626\n    test 1320 line 257 toUtm8.lon: 51.735783\n    test 1321 line 258 toUtm8.easting: 6966354.690417\n    test 1322 line 258 toUtm8.northing: 3641802.005093\n    test 1323 line 258 toUtm8.gamma: 27.409636\n    test 1324 line 258 toUtm8.scale: 1.661469\n    test 1325 line 258 toUtm8.lat: 19.059369\n    test 1326 line 258 toUtm8.lon: 57.526439\n    test 1327 max forward error: 1.678809e-03\n    test 1328 max reverse error: 3.170463e-09\n    test 1329 Utm.scale0: 0.9996\n    test 1330 Utm.datum: WGS84\n    test 1331 Utm.datum.ellipsoid.KsOrder: 8\n    test 1332 WGS84.KsOrder: 8\n\n    23 of 1332 testUtmTMcoords.py tests (1.7%) FAILED, ALL KNOWN, 37 skipped (pygeodesy 26.3.26 Python 3.11.9 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 1.24.2 scipy 1.10.1 Math 2 macOS 26.3.1 isLazy 0 -W  default) 548.736 ms\nrunning /usr/local/bin/p....n3.11 -W default ~/PyGeodesy/test/testUtmUps.py\n\n    testing testUtmUps.py 23.03.27 (module pygeodesy.utmups 25.04.14)\n    test 1 UtmUps: 00 N 448251.0 5411932.0001\n    test 2 UtmUps.ValidateOK: True\n    test 3 UtmUps: 00 N 448252 5411933\n    test 4 UtmUps: 00 N 448251.795 5411932.678\n    test 5 UtmUps: 00Z N 448251.8 5411932.7 n/a n/a\n    test 6 UtmUps.ValidateOK: True\n    test 7 UtmUps.toLatLon: 43.684097°N, 175.265195°E\n    test 8 UtmUps.toLatLon: 43°41′02.75″N, 175°15′54.7″E\n    test 9 LL.toUtmUps: 60 N 360177 4838249\n    test 10 LL.toUtmUps: 60 N 360176.686 4838249.416\n    test 11 LL.toUtmUps: [Z:60T, H:N, E:360177, N:4838249, C:-1.19839167°, S:0.99984048]\n    test 12 LL.toUtmUps.ValidateOK: True\n    test 13 toUtmUps8ID1: 00Y N 1530125.78 2426773.6 -132.24798917° 0.99647445\n    test 14 toUtmUps8ID1.ValidateOK: True\n    test 15 toUtmUps8ID1.ValidateOK: True\n    test 16 toUtmUps8ID2: 38 N 467367.68 8100752.13 -57.37878422′ 0.99961302  FAILED, KNOWN, expected 38 N 3320416.75 632668.43 +44.0° 1.01619505\n    test 17 toUtmUps8ID2.ValidateOK: True\n    test 18 toUtmUps8ID2.ValidateOK: True\n    test 19 toUtmUps8ID2: 00 N 3320416.75 632668.43 +44.0° 1.01619505\n    test 20 toUtmUps8ID2.ValidateOK: easting (3320416.7473598532): outside UPS range [1300000, 2700000]  FAILED, KNOWN, expected True\n    test 21 toUtmUps8ID3: 00B S 2222979.47 1797474.9 -132.24786194° 0.99455723\n    test 22 toUtmUps8ID3.ValidateOK: True\n    test 23 toUtmUps8ID3.ValidateOK: True\n    test 24 UtmUps.toLatLonID4.ValidateOK: True\n    test 25 UtmUps.toLatLonID4: 84°17′14.04″N, 132°14′52.76″W\n    test 26 UtmUps.toLatLonID4: 84.287234°N, 132.247989°W\n    test 27 UtmUps.ValidateOK: easting (3320416.75): outside UPS range [1300000, 2700000]  FAILED, KNOWN, expected True\n    test 28 UtmUps.toLatLonID5: 73°00′00.0″N, 044°00′00.0″E\n    test 29 UtmUps.toLatLonID5: 73.0°N, 044.0°E\n    test 30 UtmUps.ValidateOK: True\n    test 31 UtmUps.toLatLonID6: 87°17′14.4″S, 132°14′52.3″E\n    test 32 UtmUps.toLatLonID6: 87.287333°S, 132.247861°E\n    test 33 latlon1: 61.2°N, 149.9°W\n    test 34 toUtmUps8: 06 N 344174 6788521\n    test 35 toUtmUps8: 06V N 344173.864114 6788521.418164 -2.54179531° 0.99989751\n    test 36 toUtmUps8.ValidateOK: True\n    test 37 toMgrs: 06V UN 44173 88521\n    test 38 latlon2: LatLon(83°37′37.2″N, 032°39′50.4″W)\n    test 39 toUtmUps8: 25 N 504164 9286466\n    test 40 toUtmUps8: [Z:25X, H:N, E:504164, N:9286466]\n    test 41 toUtmUps8: 25X N 504163.899383 9286465.664902 +20.03542083′ 0.99960021\n    test 42 toUtmUps8.ValidateOK: True\n    test 43 toMgrs: 25X EN 04163 86465\n    test 44 latlon3: 33.33°N, 044.44°E\n    test 45 toUtmUps8: 38 N 447882 3688012\n    test 46 toUtmUps8: 38S N 447882.413169 3688011.692733 -18.46228466′ 0.99963349\n    test 47 toUtmUps8.ValidateOK: True\n    test 48 toMgrs: 38S MB 47882 88011\n    test 49 latlon4: 79.0°S, 079.0°W\n    test 50 toUtmUps8: 17 S 542594 1229296\n    test 51 toUtmUps8: 17C S 542594.134555 1229296.157301 -1.96328341° 0.99962217\n    test 52 toUtmUps8.ValidateOK: True\n    test 53 toMgrs: 17C NN 42594 29296\n    test 54 latlon5: 84.0°N, 084.0°E\n    test 55 toUtmUps8: 00 N 2663075 1930308\n    test 56 toUtmUps8: 00Z N 2663075.299562 1930307.977716 +84.0° 0.99673\n    test 57 toUtmUps8.ValidateOK: True\n    test 58 latlon6: 13.4125°N, 103.8667°E\n    test 59 toUtmUps8: 48 N 377302 1483035\n    test 60 toUtmUps8: 48P N 377302.354183 1483034.777084 -15.77480856′ 0.99978623\n    test 61 toUtmUps8.ValidateOK: True\n    test 62 toMgrs: 48P UV 77302 83034\n    test 63 latlon7: 13.4125°S, 103.8667°W\n    test 64 LL.toUtmUps: 13 S 622698 8516965\n    test 65 LL.toUtmUps: 13L S 622697.645817 8516965.222916 -15.77480856′ 0.99978623\n    test 66 LL.toUtmUps.ValidateOK: True\n    test 67 toMgrs: 13L FF 22697 16965\n    test 68 latlon8: 43.684097°N, 175.265195°E\n    test 69 LL.toUtmUps: 60 N 360177 4838249\n    test 70 LL.toUtmUps: 60 N 360176.691 4838249.422\n    test 71 LL.toUtmUps: [Z:60T, H:N, E:360177, N:4838249, C:-1.19839163°, S:0.99984048]\n    test 72 LL.toUtmUps.ValidateOK: True\n    test 73 toMgrs: 60T UP 60176 38249\n    test 74 UtmUps.toLatLon: 43.684097°N, 175.265195°E\n    test 75 UtmUps.toLatLon: 43°41′02.75″N, 175°15′54.7″E\n    test 76 latlon9: 41.321801°N, 074.801413°W\n    test 77 LL.toUtmUps: 18 N 516620 4574500\n    test 78 LL.toUtmUps: [Z:18T, H:N, E:516620, N:4574500, C:+7.86748851′, S:0.9996034]\n    test 79 LL.toUtmUps.ValidateOK: True\n    test 80 toMgrs: 18T WL 16619 74500\n    test 81 UtmUps.toLatLon: 41.321801°N, 074.801413°W\n    test 82 UtmUps.toLatLon: 41°19′18.48″N, 074°48′05.09″W\n    test 83 parseUTMUPS5: 18 N 516620 4574500\n    test 84 parseUTMUPS5.ValidateOK: True\n    test 85 UtmUps.toLatLon: 41.321801°N, 074.801413°W\n    test 86 UtmUps: 00A S 321441 5810117\n    test 87 UtmUps.ValidateOK: easting (321441.0425108216): outside UPS range [800000, 3200000]  FAILED, KNOWN, expected True\n    test 88 UtmUps.toLatLon: 53.713776°S, 023.77604°W\n    test 89 UtmUps.toLatLon: 53°42′49.59″S, 023°46′33.74″W\n    test 90 LL.toUtmUps: 27 S 316807 4044745\n    test 91 LL.toUtmUps.ValidateOK: True\n    test 92 LL.toUtmUps: 27 S 316807.326 4044744.532\n    test 93 LL.toUtmUps: [Z:27F, H:S, E:316807, N:4044745, C:+2.23830171°, S:1.00001184]\n    test 94 UtmUps: 00Z N 400000 5000000\n    test 95 UtmUps.ValidateOK: True\n    test 96 parseUTMUPS5: (31, 'N', 446000.0, 8436100.0, 'X')\n    test 97 parseUTMUPS5: (0, 'S', 506346.0, 1057743.0, 'A')\n\n    4 of 97 testUtmUps.py tests (4.1%) FAILED, ALL KNOWN (pygeodesy 26.3.26 Python 3.11.9 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 1.24.2 scipy 1.10.1 Math 2 macOS 26.3.1 isLazy 0 -W  default) 26.095 ms\nrunning /usr/local/bin/p....n3.11 -W default ~/PyGeodesy/test/testUtmUpsTMcoords.py\n\n    testing testUtmUpsTMcoords.py 24.03.22 (module pygeodesy.utmups 25.04.14)\n    test 1 line 1 toUtmUps8.easting: 1548706.791619\n    test 2 line 1 toUtmUps8.northing: 8451449.198772\n    test 3 line 1 toUtmUps8.gamma: 43.922790\n    test 4 line 1 toUtmUps8.scale: 1.029060\n    test 5 line 1 toUtmUps8.lat: 70.579277\n    test 6 line 1 toUtmUps8.lon: 45.599420\n    test 7 line 2 toUtmUps8.easting: 2624150.740929\n    test 8 line 2 toUtmUps8.northing: 1204434.041605\n    test 9 line 2 toUtmUps8.gamma: 4.292619\n    test 10 line 2 toUtmUps8.scale: 1.086051\n    test 11 line 2 toUtmUps8.lat: 10.018894\n    test 12 line 2 toUtmUps8.lon: 23.313324\n    test 13 line 3 toUtmUps8.easting: 9855841.232935\n    test 14 line 3 toUtmUps8.northing: 6145496.115157  FAILED, KNOWN, expected 6145496.115155\n    test 15 line 3 toUtmUps8.gamma: 53.348315\n    test 16 line 3 toUtmUps8.scale: 2.445098\n    test 17 line 3 toUtmUps8.lat: 19.479896\n    test 18 line 3 toUtmUps8.lon: 75.662049\n    test 19 line 4 toUtmUps8.easting: 3206390.691996\n    test 20 line 4 toUtmUps8.northing: 2650745.400406\n    test 21 line 4 toUtmUps8.gamma: 11.666950\n    test 22 line 4 toUtmUps8.scale: 1.129359\n    test 23 line 4 toUtmUps8.lat: 21.072465\n    test 24 line 4 toUtmUps8.lon: 29.828684\n    test 25 line 5 toUtmUps8.easting: 4328154.083501\n    test 26 line 5 toUtmUps8.northing: 749647.623690\n    test 27 line 5 toUtmUps8.gamma: 4.024317\n    test 28 line 5 toUtmUps8.scale: 1.240829\n    test 29 line 5 toUtmUps8.lat: 5.458957\n    test 30 line 5 toUtmUps8.lon: 36.385237\n    test 31 line 6 toUtmUps8.easting: 847598.266514\n    test 32 line 6 toUtmUps8.northing: 7947180.962440\n    test 33 line 6 toUtmUps8.gamma: 21.639091\n    test 34 line 6 toUtmUps8.scale: 1.008399\n    test 35 line 6 toUtmUps8.lat: 70.175454\n    test 36 line 6 toUtmUps8.lon: 22.865350\n    test 37 line 7 toUtmUps8.easting: 2727657.337974\n    test 38 line 7 toUtmUps8.northing: 8283916.696410\n    test 39 line 7 toUtmUps8.gamma: 55.690909\n    test 40 line 7 toUtmUps8.scale: 1.091942\n    test 41 line 7 toUtmUps8.lat: 61.965605\n    test 42 line 7 toUtmUps8.lon: 58.931371\n    test 43 line 8 toUtmUps8.easting: 2331001.751890\n    test 44 line 8 toUtmUps8.northing: 1313608.224751\n    test 45 line 8 toUtmUps8.gamma: 4.214690\n    test 46 line 8 toUtmUps8.scale: 1.067599\n    test 47 line 8 toUtmUps8.lat: 11.116050\n    test 48 line 8 toUtmUps8.lon: 20.901069\n    test 49 line 9 toUtmUps8.easting: 6035557.239480\n    test 50 line 9 toUtmUps8.northing: 5791770.791879\n    test 51 line 9 toUtmUps8.gamma: 43.698170\n    test 52 line 9 toUtmUps8.scale: 1.481260\n    test 53 line 9 toUtmUps8.lat: 32.210543\n    test 54 line 9 toUtmUps8.lon: 60.705849\n    test 55 line 10 toUtmUps8.easting: 1064553.125852\n    test 56 line 10 toUtmUps8.northing: 9417273.737208\n    test 57 line 10 toUtmUps8.gamma: 61.100380\n    test 58 line 10 toUtmUps8.scale: 1.013475\n    test 59 line 10 toUtmUps8.lat: 79.187451\n    test 60 line 10 toUtmUps8.lon: 61.532382\n    test 61 line 11 toUtmUps8.easting: 1400137.116164\n    test 62 line 11 toUtmUps8.northing: 9616907.017686\n    test 63 line 11 toUtmUps8.gamma: 74.527087\n    test 64 line 11 toUtmUps8.scale: 1.023640\n    test 65 line 11 toUtmUps8.lat: 77.103759\n    test 66 line 11 toUtmUps8.lon: 74.899105\n\n    test skipped (1): line 12 toUtmUps8.'21.889514024862 80.019885892785 9860691.0166261508479 7433039.1433282732643 65.357693372142649007 2.43897318400097845293'\n\n    test skipped (2): line 13 toUtmUps8.'30.53629567699 82.186177919416 8076501.8336948099169 8561614.1747819103782 75.073393190238557702 1.90620203595203984732'\n    test 67 line 14 toUtmUps8.easting: 3335099.866623\n    test 68 line 14 toUtmUps8.northing: 6740519.084015\n    test 69 line 14 toUtmUps8.gamma: 40.611821\n    test 70 line 14 toUtmUps8.scale: 1.139021\n    test 71 line 14 toUtmUps8.lat: 49.990485\n    test 72 line 14 toUtmUps8.lon: 48.203179\n\n    test skipped (3): line 15 toUtmUps8.'14.486311853451 80.905136710227 12051574.9284996192629 6587213.0519512810474 59.033236797073779959 3.3574686117030164354'\n    test 73 line 16 toUtmUps8.easting: 5387578.735298\n    test 74 line 16 toUtmUps8.northing: 4111216.907168\n    test 75 line 16 toUtmUps8.gamma: 27.574337\n    test 76 line 16 toUtmUps8.scale: 1.379357\n    test 77 line 16 toUtmUps8.lat: 25.936824\n    test 78 line 16 toUtmUps8.lon: 49.913598\n    test 79 line 17 toUtmUps8.easting: 2622214.380233\n    test 80 line 17 toUtmUps8.northing: 8678923.984567\n    test 81 line 17 toUtmUps8.gamma: 61.697275\n    test 82 line 17 toUtmUps8.scale: 1.084810\n    test 83 line 17 toUtmUps8.lat: 64.402196\n    test 84 line 17 toUtmUps8.lon: 64.091395\n\n    test skipped (4): line 18 toUtmUps8.'48.451353594584 84.856197560189 5068474.169632778036 9492066.9937094951003 83.156739839119105102 1.3299901985118008373'\n    test 85 line 19 toUtmUps8.easting: 738062.047779\n    test 86 line 19 toUtmUps8.northing: 3031007.074116\n    test 87 line 19 toUtmUps8.gamma: 3.416802\n    test 88 line 19 toUtmUps8.scale: 1.006332\n    test 89 line 19 toUtmUps8.lat: 27.203895\n    test 90 line 19 toUtmUps8.lon: 7.440229\n    test 91 line 20 toUtmUps8.easting: 1944413.834565\n    test 92 line 20 toUtmUps8.northing: 9613299.224493\n    test 93 line 20 toUtmUps8.gamma: 78.462831\n    test 94 line 20 toUtmUps8.scale: 1.046134\n    test 95 line 20 toUtmUps8.lat: 72.509000\n    test 96 line 20 toUtmUps8.lon: 78.982283\n    test 97 line 21 toUtmUps8.easting: 2114521.418406\n    test 98 line 21 toUtmUps8.northing: 4954077.440098\n    test 99 line 21 toUtmUps8.gamma: 17.571878\n    test 100 line 21 toUtmUps8.scale: 1.055093\n    test 101 line 21 toUtmUps8.lat: 41.824954\n    test 102 line 21 toUtmUps8.lon: 25.392744\n    test 103 line 22 toUtmUps8.easting: 620365.905090\n    test 104 line 22 toUtmUps8.northing: 4755542.026562\n    test 105 line 22 toUtmUps8.gamma: 5.152022\n    test 106 line 22 toUtmUps8.scale: 1.004338\n    test 107 line 22 toUtmUps8.lat: 42.701376\n    test 108 line 22 toUtmUps8.lon: 7.572738\n    test 109 line 23 toUtmUps8.easting: 263004.770989\n    test 110 line 23 toUtmUps8.northing: 4493669.762451\n    test 111 line 23 toUtmUps8.gamma: 2.020523\n    test 112 line 23 toUtmUps8.scale: 1.000452\n    test 113 line 23 toUtmUps8.lat: 40.552052\n    test 114 line 23 toUtmUps8.lon: 3.106056\n    test 115 line 24 toUtmUps8.easting: 3217221.739462\n    test 116 line 24 toUtmUps8.northing: 437776.119161\n    test 117 line 24 toUtmUps8.gamma: 1.848169\n    test 118 line 24 toUtmUps8.scale: 1.130558\n    test 119 line 24 toUtmUps8.lat: 3.501242\n    test 120 line 24 toUtmUps8.lon: 27.806507\n\n    test skipped (5): line 25 toUtmUps8.'10.148714782203 85.373767569431 14661142.4449607145297 7476100.8241849819567 68.376669038799719822 4.89664968310721668858'\n    test 121 line 26 toUtmUps8.easting: 967777.158554\n    test 122 line 26 toUtmUps8.northing: 6615684.266592\n    test 123 line 26 toUtmUps8.gamma: 14.410044\n    test 124 line 26 toUtmUps8.scale: 1.011100\n    test 125 line 26 toUtmUps8.lat: 58.582623\n    test 126 line 26 toUtmUps8.lon: 16.755558\n    test 127 line 27 toUtmUps8.easting: 7558840.728461\n    test 128 line 27 toUtmUps8.northing: 4144728.130764\n    test 129 line 27 toUtmUps8.gamma: 32.557264\n    test 130 line 27 toUtmUps8.scale: 1.791490\n    test 131 line 27 toUtmUps8.lat: 19.793004\n    test 132 line 27 toUtmUps8.lon: 61.746763\n    test 133 line 28 toUtmUps8.easting: 1056008.314161\n    test 134 line 28 toUtmUps8.northing: 9290799.692669\n    test 135 line 28 toUtmUps8.gamma: 55.843278\n    test 136 line 28 toUtmUps8.scale: 1.013253\n    test 137 line 28 toUtmUps8.lat: 78.666776\n    test 138 line 28 toUtmUps8.lon: 56.365355\n    test 139 line 29 toUtmUps8.easting: 1943965.134687\n    test 140 line 29 toUtmUps8.northing: 1389972.228690\n    test 141 line 29 toUtmUps8.gamma: 3.774869\n    test 142 line 29 toUtmUps8.scale: 1.046724\n    test 143 line 29 toUtmUps8.lat: 11.998788\n    test 144 line 29 toUtmUps8.lon: 17.597873\n    test 145 line 30 toUtmUps8.easting: 5803077.072902\n    test 146 line 30 toUtmUps8.northing: 5649957.943659\n    test 147 line 30 toUtmUps8.gamma: 41.717943\n    test 148 line 30 toUtmUps8.scale: 1.442572\n    test 149 line 30 toUtmUps8.lat: 32.540378\n    test 150 line 30 toUtmUps8.lon: 58.764613\n    test 151 line 31 toUtmUps8.easting: 2928716.986009\n    test 152 line 31 toUtmUps8.northing: 5731835.058317\n    test 153 line 31 toUtmUps8.gamma: 28.538550\n    test 154 line 31 toUtmUps8.scale: 1.106780\n    test 155 line 31 toUtmUps8.lat: 45.160356\n    test 156 line 31 toUtmUps8.lon: 37.465285\n    test 157 line 32 toUtmUps8.easting: 326141.975756\n    test 158 line 32 toUtmUps8.northing: 8881325.164543\n    test 159 line 32 toUtmUps8.gamma: 16.111415\n    test 160 line 32 toUtmUps8.scale: 1.000900\n    test 161 line 32 toUtmUps8.lat: 79.584190\n    test 162 line 32 toUtmUps8.lon: 16.367006\n    test 163 line 33 toUtmUps8.easting: 3933015.267450\n    test 164 line 33 toUtmUps8.northing: 7932373.909512\n    test 165 line 33 toUtmUps8.gamma: 58.577424\n    test 166 line 33 toUtmUps8.scale: 1.194811\n    test 167 line 33 toUtmUps8.lat: 52.470664\n    test 168 line 33 toUtmUps8.lon: 64.125580\n    test 169 line 34 toUtmUps8.easting: 8598926.983213\n    test 170 line 34 toUtmUps8.northing: 6214135.167503\n    test 171 line 34 toUtmUps8.gamma: 52.612878\n    test 172 line 34 toUtmUps8.scale: 2.051367\n    test 173 line 34 toUtmUps8.lat: 23.702673\n    test 174 line 34 toUtmUps8.lon: 72.630363\n    test 175 line 35 toUtmUps8.easting: 6620553.333772\n    test 176 line 35 toUtmUps8.northing: 6540527.122948\n    test 177 line 35 toUtmUps8.gamma: 52.350140\n    test 178 line 35 toUtmUps8.scale: 1.586614\n    test 179 line 35 toUtmUps8.lat: 32.603520\n    test 180 line 35 toUtmUps8.lon: 67.280123\n    test 181 line 36 toUtmUps8.easting: 1515136.758292\n    test 182 line 36 toUtmUps8.northing: 3858996.087537\n    test 183 line 36 toUtmUps8.gamma: 9.225127\n    test 184 line 36 toUtmUps8.scale: 1.028029\n    test 185 line 36 toUtmUps8.lat: 33.776224\n    test 186 line 36 toUtmUps8.lon: 16.280993\n    test 187 line 37 toUtmUps8.easting: 479854.373445\n    test 188 line 37 toUtmUps8.northing: 8980501.389896\n    test 189 line 37 toUtmUps8.gamma: 25.021222\n    test 190 line 37 toUtmUps8.scale: 1.002415\n    test 191 line 37 toUtmUps8.lat: 79.932747\n    test 192 line 37 toUtmUps8.lon: 25.363622\n    test 193 line 38 toUtmUps8.easting: 5243446.564940\n    test 194 line 38 toUtmUps8.northing: 140657.213960\n    test 195 line 38 toUtmUps8.gamma: 0.862817\n    test 196 line 38 toUtmUps8.scale: 1.360358\n    test 197 line 38 toUtmUps8.lat: 0.935056\n    test 198 line 38 toUtmUps8.lon: 42.538824\n\n    test skipped (6): line 39 toUtmUps8.'13.490862440668 83.178380075606 12806457.9232176809509 7170118.6846750266674 64.708921319446620085 3.7405880916836789809'\n    test 199 line 40 toUtmUps8.easting: 1202993.459158\n    test 200 line 40 toUtmUps8.northing: 5557316.053599\n    test 201 line 40 toUtmUps8.gamma: 12.579061\n    test 202 line 40 toUtmUps8.scale: 1.017426\n    test 203 line 40 toUtmUps8.lat: 48.979057\n    test 204 line 40 toUtmUps8.lon: 16.474542\n    test 205 line 41 toUtmUps8.easting: 1729088.710196\n    test 206 line 41 toUtmUps8.northing: 7770874.289954\n    test 207 line 41 toUtmUps8.gamma: 36.021783\n    test 208 line 41 toUtmUps8.scale: 1.036397\n    test 209 line 41 toUtmUps8.lat: 65.036016\n    test 210 line 41 toUtmUps8.lon: 38.729091\n    test 211 line 42 toUtmUps8.easting: 2437301.517425\n    test 212 line 42 toUtmUps8.northing: 5539327.748318\n    test 213 line 42 toUtmUps8.gamma: 23.461879\n    test 214 line 42 toUtmUps8.scale: 1.073459\n    test 215 line 42 toUtmUps8.lat: 45.510091\n    test 216 line 42 toUtmUps8.lon: 31.303729\n    test 217 line 43 toUtmUps8.easting: 3647186.135066\n    test 218 line 43 toUtmUps8.northing: 2086412.330983\n    test 219 line 43 toUtmUps8.gamma: 10.023991\n    test 220 line 43 toUtmUps8.scale: 1.168707\n    test 221 line 43 toUtmUps8.lat: 16.058010\n    test 222 line 43 toUtmUps8.lon: 32.520026\n    test 223 line 44 toUtmUps8.easting: 1818497.243556\n    test 224 line 44 toUtmUps8.northing: 4275471.745057\n    test 225 line 44 toUtmUps8.gamma: 12.499656\n    test 226 line 44 toUtmUps8.scale: 1.040604\n    test 227 line 44 toUtmUps8.lat: 36.845200\n    test 228 line 44 toUtmUps8.lon: 20.282283\n    test 229 line 45 toUtmUps8.easting: 3751304.113783\n    test 230 line 45 toUtmUps8.northing: 5130454.001592\n    test 231 line 45 toUtmUps8.gamma: 28.959707\n    test 232 line 45 toUtmUps8.scale: 1.177681\n    test 233 line 45 toUtmUps8.lat: 37.865481\n    test 234 line 45 toUtmUps8.lon: 41.990402\n    test 235 line 46 toUtmUps8.easting: 2616733.138544\n    test 236 line 46 toUtmUps8.northing: 394644.463815\n    test 237 line 46 toUtmUps8.gamma: 1.390425\n    test 238 line 46 toUtmUps8.scale: 1.085595\n    test 239 line 46 toUtmUps8.lat: 3.287272\n    test 240 line 46 toUtmUps8.lon: 22.917604\n    test 241 line 47 toUtmUps8.easting: 1756506.573942\n    test 242 line 47 toUtmUps8.northing: 5570393.986394\n    test 243 line 47 toUtmUps8.gamma: 17.897894\n    test 244 line 47 toUtmUps8.scale: 1.037732\n    test 245 line 47 toUtmUps8.lat: 47.813686\n    test 246 line 47 toUtmUps8.lon: 23.545092\n    test 247 line 48 toUtmUps8.easting: 8752461.894711\n    test 248 line 48 toUtmUps8.northing: 6087728.152284\n    test 249 line 48 toUtmUps8.gamma: 51.628465\n    test 250 line 48 toUtmUps8.scale: 2.095465\n    test 251 line 48 toUtmUps8.lat: 22.836853\n    test 252 line 48 toUtmUps8.lon: 72.604385\n    test 253 line 49 toUtmUps8.easting: 1309272.216432\n    test 254 line 49 toUtmUps8.northing: 59520.028899\n    test 255 line 49 toUtmUps8.gamma: 0.109069\n    test 256 line 49 toUtmUps8.scale: 1.020897\n    test 257 line 49 toUtmUps8.lat: 0.527262\n    test 258 line 49 toUtmUps8.lon: 11.684209\n    test 259 line 50 toUtmUps8.easting: 328652.277129\n    test 260 line 50 toUtmUps8.northing: 2233043.958874\n    test 261 line 50 toUtmUps8.gamma: 1.084863\n    test 262 line 50 toUtmUps8.scale: 1.000935\n    test 263 line 50 toUtmUps8.lat: 20.166742\n    test 264 line 50 toUtmUps8.lon: 3.143948\n\n    test skipped (7): line 51 toUtmUps8.'28.604629015528 85.988721094779 8637959.7164470998207 9190635.1560309800028 81.802562643198123218 2.05432863342852874819'\n\n    test skipped (8): line 52 toUtmUps8.'28.984047991106 85.833447775172 8548521.4551470334531 9172410.9432821880799 81.583928102890161419 2.02964145862183583179'\n    test 265 line 53 toUtmUps8.easting: 796987.281104\n    test 266 line 53 toUtmUps8.northing: 7677446.357675\n    test 267 line 53 toUtmUps8.gamma: 18.084472\n    test 268 line 53 toUtmUps8.scale: 1.007381\n    test 269 line 53 toUtmUps8.lat: 68.071020\n    test 270 line 53 toUtmUps8.lon: 19.392823\n\n    test skipped (9): line 54 toUtmUps8.'61.416576191872 81.981611413918 3291036.4967623295988 9513199.6006662170596 80.890253980644739593 1.13482563910814382209'\n    test 271 line 55 toUtmUps8.easting: 7087225.330906\n    test 272 line 55 toUtmUps8.northing: 8382823.855822\n    test 273 line 55 toUtmUps8.gamma: 72.253756\n    test 274 line 55 toUtmUps8.scale: 1.678070\n    test 275 line 55 toUtmUps8.lat: 35.074753\n    test 276 line 55 toUtmUps8.lon: 79.496003\n    test 277 line 56 toUtmUps8.easting: 5090358.125724\n    test 278 line 56 toUtmUps8.northing: 4318294.133489\n    test 279 line 56 toUtmUps8.gamma: 28.266280\n    test 280 line 56 toUtmUps8.scale: 1.336264\n    test 281 line 56 toUtmUps8.lat: 28.078790\n    test 282 line 56 toUtmUps8.lon: 48.684350\n\n    test skipped (10): line 57 toUtmUps8.'84.986930137199 2.067177857261 20163.0752214330146 9438635.9888499043815 2.059277291707588222 .99960496589466017622'\n    test 283 line 58 toUtmUps8.easting: 3447670.550785\n    test 284 line 58 toUtmUps8.northing: 3680238.888223\n    test 285 line 58 toUtmUps8.gamma: 17.934948\n    test 286 line 58 toUtmUps8.scale: 1.149831\n    test 287 line 58 toUtmUps8.lat: 28.473948\n    test 288 line 58 toUtmUps8.lon: 34.127306\n    test 289 line 59 toUtmUps8.easting: 3396522.906798\n    test 290 line 59 toUtmUps8.northing: 8093659.687593\n    test 291 line 59 toUtmUps8.gamma: 57.747117\n    test 292 line 59 toUtmUps8.scale: 1.144006\n    test 293 line 59 toUtmUps8.lat: 56.629354\n    test 294 line 59 toUtmUps8.lon: 62.196474\n    test 295 line 60 toUtmUps8.easting: 11249894.100794  FAILED, KNOWN, expected 11249894.100784\n    test 296 line 60 toUtmUps8.northing: 1619226.506360  FAILED, KNOWN, expected 1619226.506299\n    test 297 line 60 toUtmUps8.gamma: 14.210358\n    test 298 line 60 toUtmUps8.scale: 3.048347\n    test 299 line 60 toUtmUps8.lat: 4.747762\n    test 300 line 60 toUtmUps8.lon: 70.932555\n    test 301 line 61 toUtmUps8.easting: 6808805.230950\n    test 302 line 61 toUtmUps8.northing: 8044779.777369\n    test 303 line 61 toUtmUps8.gamma: 68.242008\n    test 304 line 61 toUtmUps8.scale: 1.621464\n    test 305 line 61 toUtmUps8.lat: 35.882113\n    test 306 line 61 toUtmUps8.lon: 76.741849\n    test 307 line 62 toUtmUps8.easting: 2306021.556506\n    test 308 line 62 toUtmUps8.northing: 757191.592866\n    test 309 line 62 toUtmUps8.gamma: 2.385686\n    test 310 line 62 toUtmUps8.scale: 1.066159\n    test 311 line 62 toUtmUps8.lat: 6.420705\n    test 312 line 62 toUtmUps8.lon: 20.416028\n    test 313 line 63 toUtmUps8.easting: 1547406.313862\n    test 314 line 63 toUtmUps8.northing: 6048712.751824\n    test 315 line 63 toUtmUps8.gamma: 18.474372\n    test 316 line 63 toUtmUps8.scale: 1.029123\n    test 317 line 63 toUtmUps8.lat: 52.335248\n    test 318 line 63 toUtmUps8.lon: 22.879294\n    test 319 line 64 toUtmUps8.easting: 2430467.650383\n    test 320 line 64 toUtmUps8.northing: 7557167.613972\n    test 321 line 64 toUtmUps8.gamma: 42.110021\n    test 322 line 64 toUtmUps8.scale: 1.072759\n    test 323 line 64 toUtmUps8.lat: 59.846391\n    test 324 line 64 toUtmUps8.lon: 46.262536\n    test 325 line 65 toUtmUps8.easting: 2334053.905830\n    test 326 line 65 toUtmUps8.northing: 1948076.966582\n    test 327 line 65 toUtmUps8.gamma: 6.353185\n    test 328 line 65 toUtmUps8.scale: 1.067733\n    test 329 line 65 toUtmUps8.lat: 16.461790\n    test 330 line 65 toUtmUps8.lon: 21.433269\n    test 331 line 66 toUtmUps8.easting: 5564175.186737\n    test 332 line 66 toUtmUps8.northing: 1836851.660412\n    test 333 line 66 toUtmUps8.gamma: 11.870682\n    test 334 line 66 toUtmUps8.scale: 1.408265\n    test 335 line 66 toUtmUps8.lat: 11.707905\n    test 336 line 66 toUtmUps8.lon: 45.827075\n    test 337 line 67 toUtmUps8.easting: 6118505.590359\n    test 338 line 67 toUtmUps8.northing: 7631684.552421\n    test 339 line 67 toUtmUps8.gamma: 62.477323\n    test 340 line 67 toUtmUps8.scale: 1.493420\n    test 341 line 67 toUtmUps8.lat: 38.519075\n    test 342 line 67 toUtmUps8.lon: 71.935918\n\n    test skipped (11): line 68 toUtmUps8.'34.264007222954 82.647878110272 7365359.2946646287171 8818194.4515306837741 77.207042218974141605 1.73763853091849729372'\n    test 343 line 69 toUtmUps8.easting: 36187.342415\n    test 344 line 69 toUtmUps8.northing: 2142565.324802\n    test 345 line 69 toUtmUps8.gamma: 0.114334\n    test 346 line 69 toUtmUps8.scale: 0.999616\n    test 347 line 69 toUtmUps8.lat: 19.376880\n    test 348 line 69 toUtmUps8.lon: 0.344605\n    test 349 line 70 toUtmUps8.easting: 2380328.546851\n    test 350 line 70 toUtmUps8.northing: 8440109.872384\n    test 351 line 70 toUtmUps8.gamma: 55.076067\n    test 352 line 70 toUtmUps8.scale: 1.069658\n    test 353 line 70 toUtmUps8.lat: 65.075805\n    test 354 line 70 toUtmUps8.lon: 57.653438\n    test 355 line 71 toUtmUps8.easting: 582511.608826\n    test 356 line 71 toUtmUps8.northing: 8876047.217071\n    test 357 line 71 toUtmUps8.gamma: 27.133300\n    test 358 line 71 toUtmUps8.scale: 1.003749\n    test 359 line 71 toUtmUps8.lat: 78.691870\n    test 360 line 71 toUtmUps8.lon: 27.591736\n    test 361 line 72 toUtmUps8.easting: 899441.350477\n    test 362 line 72 toUtmUps8.northing: 4582046.430516\n    test 363 line 72 toUtmUps8.gamma: 7.031211\n    test 364 line 72 toUtmUps8.scale: 1.009573\n    test 365 line 72 toUtmUps8.lat: 40.893022\n    test 366 line 72 toUtmUps8.lon: 10.668804\n\n    test skipped (12): line 73 toUtmUps8.'48.914278679322 87.35926802682 5022485.1243369246483 9741774.9337207800497 86.505947369926030588 1.32369954850478170836'\n    test 367 line 74 toUtmUps8.easting: 6701004.587204\n    test 368 line 74 toUtmUps8.northing: 2954368.258231\n    test 369 line 74 toUtmUps8.gamma: 21.560153\n    test 370 line 74 toUtmUps8.scale: 1.608554\n    test 371 line 74 toUtmUps8.lat: 16.208377\n    test 372 line 74 toUtmUps8.lon: 54.494282\n    test 373 line 75 toUtmUps8.easting: 454986.218897\n    test 374 line 75 toUtmUps8.northing: 4885087.887884\n    test 375 line 75 toUtmUps8.gamma: 3.945648\n    test 376 line 75 toUtmUps8.scale: 1.002147\n    test 377 line 75 toUtmUps8.lat: 43.977936\n    test 378 line 75 toUtmUps8.lon: 5.672541\n\n    test skipped (13): line 76 toUtmUps8.'26.850860749352 82.834479937822 8903956.1403106503714 8470608.5774824981183 74.723116471645531699 2.13131124920824155268'\n    test 379 line 77 toUtmUps8.easting: 1547627.594741\n    test 380 line 77 toUtmUps8.northing: 6036584.538347\n    test 381 line 77 toUtmUps8.gamma: 18.407629\n    test 382 line 77 toUtmUps8.scale: 1.029132\n    test 383 line 77 toUtmUps8.lat: 52.234165\n    test 384 line 77 toUtmUps8.lon: 22.827655\n    test 385 line 78 toUtmUps8.easting: 5221488.778597\n    test 386 line 78 toUtmUps8.northing: 1762592.044392\n    test 387 line 78 toUtmUps8.gamma: 10.927880\n    test 388 line 78 toUtmUps8.scale: 1.356721\n    test 389 line 78 toUtmUps8.lat: 11.674646\n    test 390 line 78 toUtmUps8.lon: 43.500147\n    test 391 line 79 toUtmUps8.easting: 4880570.297161\n    test 392 line 79 toUtmUps8.northing: 3325433.988867\n    test 393 line 79 toUtmUps8.gamma: 20.469862\n    test 394 line 79 toUtmUps8.scale: 1.308476\n    test 395 line 79 toUtmUps8.lat: 22.492753\n    test 396 line 79 toUtmUps8.lon: 44.179153\n\n    test skipped (14): line 80 toUtmUps8.'.910999463005 88.548822916123 23930680.0826936110445 7491462.0990379651261 75.937628056628715446 15.55636485152285563369'\n    test 397 line 81 toUtmUps8.easting: 71519.450458\n    test 398 line 81 toUtmUps8.northing: 3654740.444852\n    test 399 line 81 toUtmUps8.gamma: 0.417448\n    test 400 line 81 toUtmUps8.scale: 0.999663\n    test 401 line 81 toUtmUps8.lat: 33.028802\n    test 402 line 81 toUtmUps8.lon: 0.765843\n    test 403 line 82 toUtmUps8.easting: 4152797.795220\n    test 404 line 82 toUtmUps8.northing: 7823098.502751\n    test 405 line 82 toUtmUps8.gamma: 58.238901\n    test 406 line 82 toUtmUps8.scale: 1.218052\n    test 407 line 82 toUtmUps8.lat: 50.649195\n    test 408 line 82 toUtmUps8.lon: 64.389076\n    test 409 line 83 toUtmUps8.easting: 2926725.707639\n    test 410 line 83 toUtmUps8.northing: 7904918.072844\n    test 411 line 83 toUtmUps8.gamma: 51.592748\n    test 412 line 83 toUtmUps8.scale: 1.106206\n    test 413 line 83 toUtmUps8.lat: 58.820640\n    test 414 line 83 toUtmUps8.lon: 55.841048\n    test 415 line 84 toUtmUps8.easting: 1325509.113869\n    test 416 line 84 toUtmUps8.northing: 9675214.948213\n    test 417 line 84 toUtmUps8.gamma: 76.116213\n    test 418 line 84 toUtmUps8.scale: 1.021136\n    test 419 line 84 toUtmUps8.lat: 77.865762\n    test 420 line 84 toUtmUps8.lon: 76.414618\n    test 421 line 85 toUtmUps8.easting: 3045296.448926\n    test 422 line 85 toUtmUps8.northing: 542153.443280\n    test 423 line 85 toUtmUps8.gamma: 2.185095\n    test 424 line 85 toUtmUps8.scale: 1.116664\n    test 425 line 85 toUtmUps8.lat: 4.389639\n    test 426 line 85 toUtmUps8.lon: 26.458976\n    test 427 line 86 toUtmUps8.easting: 11843870.887791  FAILED, KNOWN, expected 11843870.887518\n    test 428 line 86 toUtmUps8.northing: 5912803.073690  FAILED, KNOWN, expected 5912803.073343\n    test 429 line 86 toUtmUps8.gamma: 52.814260  FAILED, KNOWN, expected 52.814259\n    test 430 line 86 toUtmUps8.scale: 3.267256\n    test 431 line 86 toUtmUps8.lat: 13.924448\n    test 432 line 86 toUtmUps8.lon: 79.017873\n    test 433 line 87 toUtmUps8.easting: 8891099.704936\n    test 434 line 87 toUtmUps8.northing: 162160.142227\n    test 435 line 87 toUtmUps8.gamma: 1.312094\n    test 436 line 87 toUtmUps8.scale: 2.157363\n    test 437 line 87 toUtmUps8.lat: 0.679713\n    test 438 line 87 toUtmUps8.lon: 62.036792\n    test 439 line 88 toUtmUps8.easting: 4784814.214449\n    test 440 line 88 toUtmUps8.northing: 2984497.432580\n    test 441 line 88 toUtmUps8.gamma: 17.946545\n    test 442 line 88 toUtmUps8.scale: 1.296116\n    test 443 line 88 toUtmUps8.lat: 20.478281\n    test 444 line 88 toUtmUps8.lon: 42.678234\n    test 445 line 89 toUtmUps8.easting: 1772074.682154\n    test 446 line 89 toUtmUps8.northing: 9491552.560143\n    test 447 line 89 toUtmUps8.gamma: 73.634830\n    test 448 line 89 toUtmUps8.scale: 1.038202\n    test 449 line 89 toUtmUps8.lat: 73.695703\n    test 450 line 89 toUtmUps8.lon: 74.259097\n    test 451 line 90 toUtmUps8.easting: 1907649.782106\n    test 452 line 90 toUtmUps8.northing: 6994232.429379\n    test 453 line 90 toUtmUps8.gamma: 29.718929\n    test 454 line 90 toUtmUps8.scale: 1.044503\n    test 455 line 90 toUtmUps8.lat: 58.569370\n    test 456 line 90 toUtmUps8.lon: 33.777549\n    test 457 line 91 toUtmUps8.easting: 2084423.818962\n    test 458 line 91 toUtmUps8.northing: 2211816.035619\n    test 459 line 91 toUtmUps8.gamma: 6.556448\n    test 460 line 91 toUtmUps8.scale: 1.053793\n    test 461 line 91 toUtmUps8.lat: 18.933881\n    test 462 line 91 toUtmUps8.lon: 19.492695\n    test 463 line 92 toUtmUps8.easting: 1064373.671729\n    test 464 line 92 toUtmUps8.northing: 7812482.547461\n    test 465 line 92 toUtmUps8.gamma: 24.874124\n    test 466 line 92 toUtmUps8.scale: 1.013490\n    test 467 line 92 toUtmUps8.lat: 68.317934\n    test 468 line 92 toUtmUps8.lon: 26.515687\n\n    test skipped (15): line 93 toUtmUps8.'50.641941364984 87.111556505544 4770385.4792965339274 9734318.9029801439364 86.27311877223132818 1.29055338238288419467'\n    test 469 line 94 toUtmUps8.easting: 6398096.677297\n    test 470 line 94 toUtmUps8.northing: 4410894.752104\n    test 471 line 94 toUtmUps8.gamma: 32.558023\n    test 472 line 94 toUtmUps8.scale: 1.548004\n    test 473 line 94 toUtmUps8.lat: 24.411298\n    test 474 line 94 toUtmUps8.lon: 56.881823\n    test 475 line 95 toUtmUps8.easting: 3138623.300415\n    test 476 line 95 toUtmUps8.northing: 3082960.600798\n    test 477 line 95 toUtmUps8.gamma: 13.557672\n    test 478 line 95 toUtmUps8.scale: 1.123724\n    test 479 line 95 toUtmUps8.lat: 24.571871\n    test 480 line 95 toUtmUps8.lon: 30.073097\n    test 481 line 96 toUtmUps8.easting: 2748325.794651\n    test 482 line 96 toUtmUps8.northing: 4202811.912668\n    test 483 line 96 toUtmUps8.gamma: 17.578706\n    test 484 line 96 toUtmUps8.scale: 1.094102\n    test 485 line 96 toUtmUps8.lat: 34.202576\n    test 486 line 96 toUtmUps8.lon: 29.383166\n    test 487 line 97 toUtmUps8.easting: 6677830.630367\n    test 488 line 97 toUtmUps8.northing: 5350071.837395\n    test 489 line 97 toUtmUps8.gamma: 41.306641\n    test 490 line 97 toUtmUps8.scale: 1.599774\n    test 491 line 97 toUtmUps8.lat: 27.756285\n    test 492 line 97 toUtmUps8.lon: 61.881905\n    test 493 line 98 toUtmUps8.easting: 5941536.667431\n    test 494 line 98 toUtmUps8.northing: 3293112.175140\n    test 495 line 98 toUtmUps8.gamma: 22.752845\n    test 496 line 98 toUtmUps8.scale: 1.468473\n    test 497 line 98 toUtmUps8.lat: 19.742270\n    test 498 line 98 toUtmUps8.lon: 50.957821\n    test 499 line 99 toUtmUps8.easting: 3152481.792567\n    test 500 line 99 toUtmUps8.northing: 5903048.837978\n    test 501 line 99 toUtmUps8.gamma: 31.494606\n    test 502 line 99 toUtmUps8.scale: 1.124085\n    test 503 line 99 toUtmUps8.lat: 45.453582\n    test 504 line 99 toUtmUps8.lon: 40.659833\n    test 505 line 100 toUtmUps8.easting: 10460475.897726  FAILED, KNOWN, expected 10460475.897730\n    test 506 line 100 toUtmUps8.northing: 2553463.624385  FAILED, KNOWN, expected 2553463.624391\n    test 507 line 100 toUtmUps8.gamma: 21.965869\n    test 508 line 100 toUtmUps8.scale: 2.700296\n    test 509 line 100 toUtmUps8.lat: 8.322144\n    test 510 line 100 toUtmUps8.lon: 69.488157\n    test 511 line 101 toUtmUps8.easting: 1964010.778021\n    test 512 line 101 toUtmUps8.northing: 5634042.923056\n    test 513 line 101 toUtmUps8.gamma: 20.117800\n    test 514 line 101 toUtmUps8.scale: 1.047344\n    test 515 line 101 toUtmUps8.lat: 47.749831\n    test 516 line 101 toUtmUps8.lon: 26.322002\n    test 517 line 102 toUtmUps8.easting: 2065306.424934\n    test 518 line 102 toUtmUps8.northing: 2135008.468651\n    test 519 line 102 toUtmUps8.gamma: 6.258981\n    test 520 line 102 toUtmUps8.scale: 1.052800\n    test 521 line 102 toUtmUps8.lat: 18.297493\n    test 522 line 102 toUtmUps8.lon: 19.244669\n    test 523 line 103 toUtmUps8.easting: 5127738.132976\n    test 524 line 103 toUtmUps8.northing: 6793804.304411\n    test 525 line 103 toUtmUps8.gamma: 50.557915\n    test 526 line 103 toUtmUps8.scale: 1.339412\n    test 527 line 103 toUtmUps8.lat: 40.834541\n    test 528 line 103 toUtmUps8.lon: 61.650750\n    test 529 line 104 toUtmUps8.easting: 8385525.148166\n    test 530 line 104 toUtmUps8.northing: 6924932.344306\n    test 531 line 104 toUtmUps8.gamma: 59.087561\n    test 532 line 104 toUtmUps8.scale: 1.990364\n    test 533 line 104 toUtmUps8.lat: 26.273247\n    test 534 line 104 toUtmUps8.lon: 74.926694\n    test 535 line 105 toUtmUps8.easting: 2297510.791909\n    test 536 line 105 toUtmUps8.northing: 2805666.962834\n    test 537 line 105 toUtmUps8.gamma: 9.301553\n    test 538 line 105 toUtmUps8.scale: 1.065508\n    test 539 line 105 toUtmUps8.lat: 23.698347\n    test 540 line 105 toUtmUps8.lon: 22.155657\n\n    test skipped (16): line 106 toUtmUps8.'12.364112546807 86.348578425071 13749544.9176345767153 8288728.3846500523233 75.033969786420407131 4.27058754359004466627'\n    test 541 line 107 toUtmUps8.easting: 317518.455546\n    test 542 line 107 toUtmUps8.northing: 1097517.583745\n    test 543 line 107 toUtmUps8.gamma: 0.499004\n    test 544 line 107 toUtmUps8.scale: 1.000848\n    test 545 line 107 toUtmUps8.lat: 9.916091\n    test 546 line 107 toUtmUps8.lon: 2.895277\n    test 547 line 108 toUtmUps8.easting: 3856035.184888\n    test 548 line 108 toUtmUps8.northing: 9141364.450290\n    test 549 line 108 toUtmUps8.gamma: 75.972763\n    test 550 line 108 toUtmUps8.scale: 1.186786\n    test 551 line 108 toUtmUps8.lat: 56.553876\n    test 552 line 108 toUtmUps8.lon: 78.215077\n    test 553 line 109 toUtmUps8.easting: 1457484.942823\n    test 554 line 109 toUtmUps8.northing: 9385297.101973\n    test 555 line 109 toUtmUps8.gamma: 66.784662\n    test 556 line 109 toUtmUps8.scale: 1.025660\n    test 557 line 109 toUtmUps8.lat: 75.957631\n    test 558 line 109 toUtmUps8.lon: 67.407383\n    test 559 line 110 toUtmUps8.easting: 1304934.901841\n    test 560 line 110 toUtmUps8.northing: 3604655.155715\n    test 561 line 110 toUtmUps8.gamma: 7.343989\n    test 562 line 110 toUtmUps8.scale: 1.020672\n    test 563 line 110 toUtmUps8.lat: 31.826531\n    test 564 line 110 toUtmUps8.lon: 13.731050\n    test 565 line 111 toUtmUps8.easting: 1399093.491792\n    test 566 line 111 toUtmUps8.northing: 8314607.120342\n    test 567 line 111 toUtmUps8.gamma: 38.630161\n    test 568 line 111 toUtmUps8.scale: 1.023625\n    test 569 line 111 toUtmUps8.lat: 70.542985\n    test 570 line 111 toUtmUps8.lon: 40.282055\n    test 571 line 112 toUtmUps8.easting: 356983.618540\n    test 572 line 112 toUtmUps8.northing: 4282309.048994\n    test 573 line 112 toUtmUps8.gamma: 2.561485\n    test 574 line 112 toUtmUps8.scale: 1.001170\n    test 575 line 112 toUtmUps8.lat: 38.617487\n    test 576 line 112 toUtmUps8.lon: 4.099838\n    test 577 line 113 toUtmUps8.easting: 9952911.325092  FAILED, KNOWN, expected 9952911.325091\n    test 578 line 113 toUtmUps8.northing: 1510288.212230  FAILED, KNOWN, expected 1510288.212229\n    test 579 line 113 toUtmUps8.gamma: 12.752154\n    test 580 line 113 toUtmUps8.scale: 2.511357\n    test 581 line 113 toUtmUps8.lat: 5.389447\n    test 582 line 113 toUtmUps8.lon: 66.729612\n    test 583 line 114 toUtmUps8.easting: 6367592.504007\n    test 584 line 114 toUtmUps8.northing: 1200437.077672\n    test 585 line 114 toUtmUps8.gamma: 8.338041\n    test 586 line 114 toUtmUps8.scale: 1.546210\n    test 587 line 114 toUtmUps8.lat: 6.995168\n    test 588 line 114 toUtmUps8.lon: 50.014763\n    test 589 line 115 toUtmUps8.easting: 4391263.676460\n    test 590 line 115 toUtmUps8.northing: 6325455.989408\n    test 591 line 115 toUtmUps8.gamma: 42.653541\n    test 592 line 115 toUtmUps8.scale: 1.245560\n    test 593 line 115 toUtmUps8.lat: 42.321894\n    test 594 line 115 toUtmUps8.lon: 53.784040\n    test 595 line 116 toUtmUps8.easting: 6209880.527527\n    test 596 line 116 toUtmUps8.northing: 2154754.449747\n    test 597 line 116 toUtmUps8.gamma: 14.919512\n    test 598 line 116 toUtmUps8.scale: 1.516560\n    test 599 line 116 toUtmUps8.lat: 12.698515\n    test 600 line 116 toUtmUps8.lon: 50.242047\n    test 601 line 117 toUtmUps8.easting: 1507053.688772\n    test 602 line 117 toUtmUps8.northing: 6261383.513280\n    test 603 line 117 toUtmUps8.gamma: 19.280373\n    test 604 line 117 toUtmUps8.scale: 1.027584\n    test 605 line 117 toUtmUps8.lat: 54.207636\n    test 606 line 117 toUtmUps8.lon: 23.325731\n    test 607 line 118 toUtmUps8.easting: 8332725.003777\n    test 608 line 118 toUtmUps8.northing: 3002712.329753\n    test 609 line 118 toUtmUps8.gamma: 24.059212\n    test 610 line 118 toUtmUps8.scale: 1.990450\n    test 611 line 118 toUtmUps8.lat: 13.224787\n    test 612 line 118 toUtmUps8.lon: 62.426698\n    test 613 line 119 toUtmUps8.easting: 3958910.085235\n    test 614 line 119 toUtmUps8.northing: 3462284.926102\n    test 615 line 119 toUtmUps8.gamma: 18.546398\n    test 616 line 119 toUtmUps8.scale: 1.199351\n    test 617 line 119 toUtmUps8.lat: 25.650282\n    test 618 line 119 toUtmUps8.lon: 37.710391\n\n    test skipped (17): line 120 toUtmUps8.'20.684773383075 82.849734261238 10452892.2820830090734 8000059.6051139389546 71.07524025411428855 2.6501109339363854772'\n    test 619 line 121 toUtmUps8.easting: 496148.253731\n    test 620 line 121 toUtmUps8.northing: 6388503.365043\n    test 621 line 121 toUtmUps8.gamma: 6.970955\n    test 622 line 121 toUtmUps8.scale: 1.002620\n    test 623 line 121 toUtmUps8.lat: 57.367533\n    test 624 line 121 toUtmUps8.lon: 8.260866\n    test 625 line 122 toUtmUps8.easting: 7375792.085850\n    test 626 line 122 toUtmUps8.northing: 5544624.072155\n    test 627 line 122 toUtmUps8.gamma: 44.510851\n    test 628 line 122 toUtmUps8.scale: 1.745898\n    test 629 line 122 toUtmUps8.lat: 25.958757\n    test 630 line 122 toUtmUps8.lon: 65.760477\n    test 631 line 123 toUtmUps8.easting: 2826258.041979\n    test 632 line 123 toUtmUps8.northing: 5167759.816959\n    test 633 line 123 toUtmUps8.gamma: 23.783897\n    test 634 line 123 toUtmUps8.scale: 1.099415\n    test 635 line 123 toUtmUps8.lat: 41.395848\n    test 636 line 123 toUtmUps8.lon: 33.661790\n    test 637 line 124 toUtmUps8.easting: 3958563.378851\n    test 638 line 124 toUtmUps8.northing: 8499923.231243\n    test 639 line 124 toUtmUps8.gamma: 66.570945\n    test 640 line 124 toUtmUps8.scale: 1.197296\n    test 641 line 124 toUtmUps8.lat: 54.266617\n    test 642 line 124 toUtmUps8.lon: 70.602199\n    test 643 line 125 toUtmUps8.easting: 4408189.533462\n    test 644 line 125 toUtmUps8.northing: 8046312.003642\n    test 645 line 125 toUtmUps8.gamma: 62.216959\n    test 646 line 125 toUtmUps8.scale: 1.246750\n    test 647 line 125 toUtmUps8.lat: 49.840393\n    test 648 line 125 toUtmUps8.lon: 68.036728\n    test 649 line 126 toUtmUps8.easting: 3629225.627512\n    test 650 line 126 toUtmUps8.northing: 6371258.454645\n    test 651 line 126 toUtmUps8.gamma: 38.881675\n    test 652 line 126 toUtmUps8.scale: 1.165511\n    test 653 line 126 toUtmUps8.lat: 46.306035\n    test 654 line 126 toUtmUps8.lon: 48.085828\n    test 655 line 127 toUtmUps8.easting: 602838.450710\n    test 656 line 127 toUtmUps8.northing: 4851370.637205\n    test 657 line 127 toUtmUps8.gamma: 5.160395\n    test 658 line 127 toUtmUps8.scale: 1.004073\n    test 659 line 127 toUtmUps8.lat: 43.570988\n    test 660 line 127 toUtmUps8.lon: 7.464494\n    test 661 line 128 toUtmUps8.easting: 764616.665051\n    test 662 line 128 toUtmUps8.northing: 2164299.337945\n    test 663 line 128 toUtmUps8.gamma: 2.429300\n    test 664 line 128 toUtmUps8.scale: 1.006835\n    test 665 line 128 toUtmUps8.lat: 19.427290\n    test 666 line 128 toUtmUps8.lon: 7.268247\n    test 667 line 129 toUtmUps8.easting: 5048953.021931\n    test 668 line 129 toUtmUps8.northing: 1885974.057398\n    test 669 line 129 toUtmUps8.gamma: 11.459804\n    test 670 line 129 toUtmUps8.scale: 1.332207\n    test 671 line 129 toUtmUps8.lat: 12.713794\n    test 672 line 129 toUtmUps8.lon: 42.507018\n    test 673 line 130 toUtmUps8.easting: 2293996.601155\n    test 674 line 130 toUtmUps8.northing: 2392408.644221\n    test 675 line 130 toUtmUps8.gamma: 7.791838\n    test 676 line 130 toUtmUps8.scale: 1.065348\n    test 677 line 130 toUtmUps8.lat: 20.238782\n    test 678 line 130 toUtmUps8.lon: 21.566068\n    test 679 line 131 toUtmUps8.easting: 1530603.839418\n    test 680 line 131 toUtmUps8.northing: 7287841.459898\n    test 681 line 131 toUtmUps8.gamma: 27.502921\n    test 682 line 131 toUtmUps8.scale: 1.028416\n    test 683 line 131 toUtmUps8.lat: 62.367847\n    test 684 line 131 toUtmUps8.lon: 30.438849\n    test 685 line 132 toUtmUps8.easting: 2660000.093152\n    test 686 line 132 toUtmUps8.northing: 5161982.213248\n    test 687 line 132 toUtmUps8.gamma: 22.629836\n    test 688 line 132 toUtmUps8.scale: 1.087851\n    test 689 line 132 toUtmUps8.lat: 41.891569\n    test 690 line 132 toUtmUps8.lon: 31.959547\n    test 691 line 133 toUtmUps8.easting: 5037478.329414\n    test 692 line 133 toUtmUps8.northing: 8768172.379908\n    test 693 line 133 toUtmUps8.gamma: 73.511182\n    test 694 line 133 toUtmUps8.scale: 1.325919\n    test 695 line 133 toUtmUps8.lat: 47.664248\n    test 696 line 133 toUtmUps8.lon: 77.630062\n    test 697 line 134 toUtmUps8.easting: 2289650.957799\n    test 698 line 134 toUtmUps8.northing: 8784328.593607\n    test 699 line 134 toUtmUps8.gamma: 60.786067\n    test 700 line 134 toUtmUps8.scale: 1.064346\n    test 701 line 134 toUtmUps8.lat: 67.259559\n    test 702 line 134 toUtmUps8.lon: 62.715293\n    test 703 line 135 toUtmUps8.easting: 647913.889744\n    test 704 line 135 toUtmUps8.northing: 6742382.228217\n    test 705 line 135 toUtmUps8.gamma: 10.252667\n    test 706 line 135 toUtmUps8.scale: 1.004748\n    test 707 line 135 toUtmUps8.lat: 60.295381\n    test 708 line 135 toUtmUps8.lon: 11.763097\n    test 709 line 136 toUtmUps8.easting: 1118372.698566\n    test 710 line 136 toUtmUps8.northing: 9040627.942263\n    test 711 line 136 toUtmUps8.gamma: 48.936803\n    test 712 line 136 toUtmUps8.scale: 1.014920\n    test 713 line 136 toUtmUps8.lat: 76.878914\n    test 714 line 136 toUtmUps8.lon: 49.685773\n    test 715 line 137 toUtmUps8.easting: 440696.510070\n    test 716 line 137 toUtmUps8.northing: 5500355.826297\n    test 717 line 137 toUtmUps8.gamma: 4.636104\n    test 718 line 137 toUtmUps8.scale: 1.001986\n    test 719 line 137 toUtmUps8.lat: 49.495349\n    test 720 line 137 toUtmUps8.lon: 6.087551\n    test 721 line 138 toUtmUps8.easting: 601728.149727\n    test 722 line 138 toUtmUps8.northing: 9095352.048149\n    test 723 line 138 toUtmUps8.gamma: 33.435771\n    test 724 line 138 toUtmUps8.scale: 1.004027\n    test 725 line 138 toUtmUps8.lat: 80.297265\n    test 726 line 138 toUtmUps8.lon: 33.816372\n    test 727 line 139 toUtmUps8.easting: 3481444.777827\n    test 728 line 139 toUtmUps8.northing: 291665.708749\n    test 729 line 139 toUtmUps8.gamma: 1.314726\n    test 730 line 139 toUtmUps8.scale: 1.153534\n    test 731 line 139 toUtmUps8.lat: 2.286437\n    test 732 line 139 toUtmUps8.lon: 29.855149\n    test 733 line 140 toUtmUps8.easting: 3515304.901524\n    test 734 line 140 toUtmUps8.northing: 1443981.882918\n    test 735 line 140 toUtmUps8.gamma: 6.641638\n    test 736 line 140 toUtmUps8.scale: 1.156509\n    test 737 line 140 toUtmUps8.lat: 11.264457\n    test 738 line 140 toUtmUps8.lon: 30.743907\n    test 739 line 141 toUtmUps8.easting: 160012.186959\n    test 740 line 141 toUtmUps8.northing: 3922609.253231\n    test 741 line 141 toUtmUps8.gamma: 1.022225\n    test 742 line 141 toUtmUps8.scale: 0.999916\n    test 743 line 141 toUtmUps8.lat: 35.434073\n    test 744 line 141 toUtmUps8.lon: 1.762795\n    test 745 line 142 toUtmUps8.easting: 4163744.245622\n    test 746 line 142 toUtmUps8.northing: 936884.674804\n    test 747 line 142 toUtmUps8.gamma: 4.892559\n    test 748 line 142 toUtmUps8.scale: 1.222164\n    test 749 line 142 toUtmUps8.lat: 6.923695\n    test 750 line 142 toUtmUps8.lon: 35.289456\n    test 751 line 143 toUtmUps8.easting: 6155200.017926\n    test 752 line 143 toUtmUps8.northing: 6926306.628390\n    test 753 line 143 toUtmUps8.gamma: 55.103258\n    test 754 line 143 toUtmUps8.scale: 1.500556\n    test 755 line 143 toUtmUps8.lat: 36.129672\n    test 756 line 143 toUtmUps8.lon: 67.533176\n\n    test skipped (18): line 144 toUtmUps8.'4.406528980638 81.965734206053 16263383.2854400911299 3591296.7313406507021 36.040254103487111035 6.58928781751888396522'\n\n    test skipped (19): line 145 toUtmUps8.'8.474589009114 81.129945130597 14220995.5153984992101 5100587.4575033509156 47.314258427760984573 4.69320221531225352172'\n    test 757 line 146 toUtmUps8.easting: 3173034.802372\n    test 758 line 146 toUtmUps8.northing: 7263421.942957\n    test 759 line 146 toUtmUps8.gamma: 45.215808\n    test 760 line 146 toUtmUps8.scale: 1.125410\n    test 761 line 146 toUtmUps8.lat: 53.907276\n    test 762 line 146 toUtmUps8.lon: 51.252904\n\n    test skipped (20): line 147 toUtmUps8.'22.120544817855 85.756781608119 10253274.0922039670098 8867574.2997916978265 79.198250285604314115 2.57237240666878171579'\n    test 763 line 148 toUtmUps8.easting: 2415561.483230\n    test 764 line 148 toUtmUps8.northing: 8813225.217097\n    test 765 line 148 toUtmUps8.gamma: 62.548978\n    test 766 line 148 toUtmUps8.scale: 1.071748\n    test 767 line 148 toUtmUps8.lat: 66.444100\n    test 768 line 148 toUtmUps8.lon: 64.532960\n    test 769 line 149 toUtmUps8.easting: 9589179.293294  FAILED, KNOWN, expected 9589179.293295\n    test 770 line 149 toUtmUps8.northing: 1777680.784144  FAILED, KNOWN, expected 1777680.784143\n    test 771 line 149 toUtmUps8.gamma: 14.838483\n    test 772 line 149 toUtmUps8.scale: 2.380716\n    test 773 line 149 toUtmUps8.lat: 6.670965\n    test 774 line 149 toUtmUps8.lon: 65.660408\n    test 775 line 150 toUtmUps8.easting: 727939.438391\n    test 776 line 150 toUtmUps8.northing: 3684363.236810\n    test 777 line 150 toUtmUps8.gamma: 4.266227\n    test 778 line 150 toUtmUps8.scale: 1.006140\n    test 779 line 150 toUtmUps8.lat: 33.054057\n    test 780 line 150 toUtmUps8.lon: 7.787458\n    test 781 line 151 toUtmUps8.easting: 1250765.991085\n    test 782 line 151 toUtmUps8.northing: 792869.242719\n    test 783 line 151 toUtmUps8.gamma: 1.396497\n    test 784 line 151 toUtmUps8.scale: 1.019026\n    test 785 line 151 toUtmUps8.lat: 7.035525\n    test 786 line 151 toUtmUps8.lon: 11.253707\n    test 787 line 152 toUtmUps8.easting: 710421.705887\n    test 788 line 152 toUtmUps8.northing: 5019406.075928\n    test 789 line 152 toUtmUps8.gamma: 6.393949\n    test 790 line 152 toUtmUps8.scale: 1.005812\n    test 791 line 152 toUtmUps8.lat: 44.971340\n    test 792 line 152 toUtmUps8.lon: 9.009304\n    test 793 line 153 toUtmUps8.easting: 4600995.074643\n    test 794 line 153 toUtmUps8.northing: 4505712.084593\n    test 795 line 153 toUtmUps8.gamma: 27.997458\n    test 796 line 153 toUtmUps8.scale: 1.271841\n    test 797 line 153 toUtmUps8.lat: 30.821397\n    test 798 line 153 toUtmUps8.lon: 45.970577\n    test 799 line 154 toUtmUps8.easting: 557642.627782\n    test 800 line 154 toUtmUps8.northing: 7006911.251644\n    test 801 line 154 toUtmUps8.gamma: 9.769903\n    test 802 line 154 toUtmUps8.scale: 1.003411\n    test 803 line 154 toUtmUps8.lat: 62.763886\n    test 804 line 154 toUtmUps8.lon: 10.960144\n    test 805 line 155 toUtmUps8.easting: 4635062.294291\n    test 806 line 155 toUtmUps8.northing: 2702556.153311\n    test 807 line 155 toUtmUps8.gamma: 15.779547\n    test 808 line 155 toUtmUps8.scale: 1.277178\n    test 809 line 155 toUtmUps8.lat: 18.888611\n    test 810 line 155 toUtmUps8.lon: 41.009871\n\n    test skipped (21): line 156 toUtmUps8.'7.524119461376 81.050715469439 14554962.2559189870471 4716639.9085720199214 44.192751352918149954 4.96001986321419027847'\n    test 811 line 157 toUtmUps8.easting: 882126.661736\n    test 812 line 157 toUtmUps8.northing: 7947612.369506\n    test 813 line 157 toUtmUps8.gamma: 22.429487\n    test 814 line 157 toUtmUps8.scale: 1.009132\n    test 815 line 157 toUtmUps8.lat: 70.063902\n    test 816 line 157 toUtmUps8.lon: 23.705255\n\n    test skipped (22): line 158 toUtmUps8.'3.556525834215 88.363529198819 20262021.6459832969292 8113827.8207957955275 76.936057264555500879 10.34909168211805703369'\n    test 817 line 159 toUtmUps8.easting: 6500508.399850\n    test 818 line 159 toUtmUps8.northing: 6956476.342368\n    test 819 line 159 toUtmUps8.gamma: 56.237116\n    test 820 line 159 toUtmUps8.scale: 1.563162\n    test 821 line 159 toUtmUps8.lat: 34.551257\n    test 822 line 159 toUtmUps8.lon: 69.111091\n    test 823 line 160 toUtmUps8.easting: 3884036.641314\n    test 824 line 160 toUtmUps8.northing: 6890167.411733\n    test 825 line 160 toUtmUps8.gamma: 45.760130\n    test 826 line 160 toUtmUps8.scale: 1.190167\n    test 827 line 160 toUtmUps8.lat: 47.929051\n    test 828 line 160 toUtmUps8.lon: 54.103418\n    test 829 line 161 toUtmUps8.easting: 217855.546078\n    test 830 line 161 toUtmUps8.northing: 6184108.122568\n    test 831 line 161 toUtmUps8.gamma: 2.870993\n    test 832 line 161 toUtmUps8.scale: 1.000182\n    test 833 line 161 toUtmUps8.lat: 55.753536\n    test 834 line 161 toUtmUps8.lon: 3.471798\n\n    test skipped (23): line 162 toUtmUps8.'18.530847071862 86.555312055898 11384139.290401676268 8893889.9495562311576 79.77485364572019046 3.02467156922968230025'\n    test 835 line 163 toUtmUps8.easting: 3469855.989805\n    test 836 line 163 toUtmUps8.northing: 7723193.799228\n    test 837 line 163 toUtmUps8.gamma: 53.114700\n    test 838 line 163 toUtmUps8.scale: 1.150540\n    test 839 line 163 toUtmUps8.lat: 54.510125\n    test 840 line 163 toUtmUps8.lon: 58.556056\n\n    test skipped (24): line 164 toUtmUps8.'42.864161881687 84.866325602975 5926165.994939154109 9385463.7327467371322 82.506981261616342016 1.45975761947329382411'\n    test 841 line 165 toUtmUps8.easting: 5798639.662224\n    test 842 line 165 toUtmUps8.northing: 5305387.640916\n    test 843 line 165 toUtmUps8.gamma: 38.617257\n    test 844 line 165 toUtmUps8.scale: 1.442263\n    test 845 line 165 toUtmUps8.lat: 30.911943\n    test 846 line 165 toUtmUps8.lon: 57.114102\n    test 847 line 166 toUtmUps8.easting: 9464.934388\n    test 848 line 166 toUtmUps8.northing: 6489121.624944\n    test 849 line 166 toUtmUps8.gamma: 0.138696\n    test 850 line 166 toUtmUps8.scale: 0.999601\n    test 851 line 166 toUtmUps8.lat: 58.542493\n    test 852 line 166 toUtmUps8.lon: 0.162593\n\n    test skipped (25): line 167 toUtmUps8.'15.022689088683 85.792615487152 12575834.2756139069875 8356610.8954857643175 75.235223160840771295 3.59944161831319404851'\n    test 853 line 168 toUtmUps8.easting: 2719653.543469\n    test 854 line 168 toUtmUps8.northing: 9362389.163495\n    test 855 line 168 toUtmUps8.gamma: 76.049670\n    test 856 line 168 toUtmUps8.scale: 1.091315\n    test 857 line 168 toUtmUps8.lat: 65.692275\n    test 858 line 168 toUtmUps8.lon: 77.241377\n    test 859 line 169 toUtmUps8.easting: 4845341.924698\n    test 860 line 169 toUtmUps8.northing: 8710522.326901\n    test 861 line 169 toUtmUps8.gamma: 72.320942\n    test 862 line 169 toUtmUps8.scale: 1.300382\n    test 863 line 169 toUtmUps8.lat: 48.806211\n    test 864 line 169 toUtmUps8.lon: 76.486365\n\n    test skipped (26): line 170 toUtmUps8.'56.436024794624 82.61156798689 3935261.5227628794258 9454271.6490618694486 81.162334302626197333 1.19476734082123451158'\n    test 865 line 171 toUtmUps8.easting: 7074299.823000\n    test 866 line 171 toUtmUps8.northing: 1648736.065055\n    test 867 line 171 toUtmUps8.gamma: 12.145925\n    test 868 line 171 toUtmUps8.scale: 1.687551\n    test 869 line 171 toUtmUps8.lat: 8.766053\n    test 870 line 171 toUtmUps8.lon: 54.367539\n    test 871 line 172 toUtmUps8.easting: 3689072.579308\n    test 872 line 172 toUtmUps8.northing: 2230802.665211\n    test 873 line 172 toUtmUps8.gamma: 10.856248\n    test 874 line 172 toUtmUps8.scale: 1.172689\n    test 875 line 172 toUtmUps8.lat: 17.095495\n    test 876 line 172 toUtmUps8.lon: 33.059128\n    test 877 line 173 toUtmUps8.easting: 8102565.885587\n    test 878 line 173 toUtmUps8.northing: 5167396.617580\n    test 879 line 173 toUtmUps8.gamma: 42.324886\n    test 880 line 173 toUtmUps8.scale: 1.921927\n    test 881 line 173 toUtmUps8.lat: 22.142861\n    test 882 line 173 toUtmUps8.lon: 67.200684\n    test 883 line 174 toUtmUps8.easting: 8181271.353564\n    test 884 line 174 toUtmUps8.northing: 4425436.547185\n    test 885 line 174 toUtmUps8.gamma: 35.900845\n    test 886 line 174 toUtmUps8.scale: 1.945017\n    test 887 line 174 toUtmUps8.lat: 19.222623\n    test 888 line 174 toUtmUps8.lon: 65.180785\n    test 889 line 175 toUtmUps8.easting: 767067.394003\n    test 890 line 175 toUtmUps8.northing: 3701745.857296\n    test 891 line 175 toUtmUps8.gamma: 4.519201\n    test 892 line 175 toUtmUps8.scale: 1.006863\n    test 893 line 175 toUtmUps8.lat: 33.182474\n    test 894 line 175 toUtmUps8.lon: 8.216952\n    test 895 line 176 toUtmUps8.easting: 6688114.168572\n    test 896 line 176 toUtmUps8.northing: 2052857.299639\n    test 897 line 176 toUtmUps8.gamma: 14.766191\n    test 898 line 176 toUtmUps8.scale: 1.607200\n    test 899 line 176 toUtmUps8.lat: 11.417963\n    test 900 line 176 toUtmUps8.lon: 52.808691\n    test 901 line 177 toUtmUps8.easting: 5608408.773761\n    test 902 line 177 toUtmUps8.northing: 3859055.659110\n    test 903 line 177 toUtmUps8.gamma: 26.244151\n    test 904 line 177 toUtmUps8.scale: 1.413463\n    test 905 line 177 toUtmUps8.lat: 23.836688\n    test 906 line 177 toUtmUps8.lon: 50.500180\n    test 907 line 178 toUtmUps8.easting: 3836942.765275\n    test 908 line 178 toUtmUps8.northing: 6415467.634326\n    test 909 line 178 toUtmUps8.gamma: 40.575885\n    test 910 line 178 toUtmUps8.scale: 1.185615\n    test 911 line 178 toUtmUps8.lat: 45.550020\n    test 912 line 178 toUtmUps8.lon: 50.148036\n    test 913 line 179 toUtmUps8.easting: 1298730.366025\n    test 914 line 179 toUtmUps8.northing: 6021453.000792\n    test 915 line 179 toUtmUps8.gamma: 15.613320\n    test 916 line 179 toUtmUps8.scale: 1.020367\n    test 917 line 179 toUtmUps8.lat: 52.746079\n    test 918 line 179 toUtmUps8.lon: 19.343926\n    test 919 line 180 toUtmUps8.easting: 416934.289208\n    test 920 line 180 toUtmUps8.northing: 7295683.451705\n    test 921 line 180 toUtmUps8.gamma: 8.238232\n    test 922 line 180 toUtmUps8.scale: 1.001729\n    test 923 line 180 toUtmUps8.lat: 65.513348\n    test 924 line 180 toUtmUps8.lon: 9.039529\n    test 925 line 181 toUtmUps8.easting: 4336076.850889\n    test 926 line 181 toUtmUps8.northing: 7617975.722779\n    test 927 line 181 toUtmUps8.gamma: 56.537088\n    test 928 line 181 toUtmUps8.scale: 1.238582\n    test 929 line 181 toUtmUps8.lat: 48.709795\n    test 930 line 181 toUtmUps8.lon: 63.554005\n    test 931 line 182 toUtmUps8.easting: 168047.336980\n    test 932 line 182 toUtmUps8.northing: 2185000.046530\n    test 933 line 182 toUtmUps8.gamma: 0.542187\n    test 934 line 182 toUtmUps8.scale: 0.999949\n    test 935 line 182 toUtmUps8.lat: 19.753509\n    test 936 line 182 toUtmUps8.lon: 1.603846\n    test 937 line 183 toUtmUps8.easting: 8276281.328790\n    test 938 line 183 toUtmUps8.northing: 263444.350545\n    test 939 line 183 toUtmUps8.gamma: 2.071435\n    test 940 line 183 toUtmUps8.scale: 1.980314\n    test 941 line 183 toUtmUps8.lat: 1.202816\n    test 942 line 183 toUtmUps8.lon: 59.377276\n    test 943 line 184 toUtmUps8.easting: 4772573.810710\n    test 944 line 184 toUtmUps8.northing: 6765710.336002\n    test 945 line 184 toUtmUps8.gamma: 48.857561\n    test 946 line 184 toUtmUps8.scale: 1.291911\n    test 947 line 184 toUtmUps8.lat: 42.564975\n    test 948 line 184 toUtmUps8.lon: 59.356947\n    test 949 line 185 toUtmUps8.easting: 5427755.074639\n    test 950 line 185 toUtmUps8.northing: 1556055.820924\n    test 951 line 185 toUtmUps8.gamma: 9.862178\n    test 952 line 185 toUtmUps8.scale: 1.387394\n    test 953 line 185 toUtmUps8.lat: 10.090572\n    test 954 line 185 toUtmUps8.lon: 44.604132\n    test 955 line 186 toUtmUps8.easting: 11588458.616240  FAILED, KNOWN, expected 11588458.616041\n    test 956 line 186 toUtmUps8.northing: 5707993.922683  FAILED, KNOWN, expected 5707993.922613\n    test 957 line 186 toUtmUps8.gamma: 50.784827\n    test 958 line 186 toUtmUps8.scale: 3.149567\n    test 959 line 186 toUtmUps8.lat: 14.133028\n    test 960 line 186 toUtmUps8.lon: 78.097533\n    test 961 line 187 toUtmUps8.easting: 7152433.802688\n    test 962 line 187 toUtmUps8.northing: 761390.695844\n    test 963 line 187 toUtmUps8.gamma: 5.607350\n    test 964 line 187 toUtmUps8.scale: 1.705261\n    test 965 line 187 toUtmUps8.lat: 4.031123\n    test 966 line 187 toUtmUps8.lon: 54.048782\n    test 967 line 188 toUtmUps8.easting: 3105651.390901\n    test 968 line 188 toUtmUps8.northing: 9426026.169064\n    test 969 line 188 toUtmUps8.gamma: 78.750206\n    test 970 line 188 toUtmUps8.scale: 1.119737\n    test 971 line 188 toUtmUps8.lat: 62.746603\n    test 972 line 188 toUtmUps8.lon: 79.968641\n    test 973 line 189 toUtmUps8.easting: 2959009.639022\n    test 974 line 189 toUtmUps8.northing: 8339242.269282\n    test 975 line 189 toUtmUps8.gamma: 58.460865\n    test 976 line 189 toUtmUps8.scale: 1.108554\n    test 977 line 189 toUtmUps8.lat: 60.626429\n    test 978 line 189 toUtmUps8.lon: 61.851551\n    test 979 line 190 toUtmUps8.easting: 8640472.267145\n    test 980 line 190 toUtmUps8.northing: 6230320.417931\n    test 981 line 190 toUtmUps8.gamma: 52.816810\n    test 982 line 190 toUtmUps8.scale: 2.062973\n    test 983 line 190 toUtmUps8.lat: 23.600626\n    test 984 line 190 toUtmUps8.lon: 72.811634\n    test 985 line 191 toUtmUps8.easting: 811352.108932\n    test 986 line 191 toUtmUps8.northing: 9816129.813481\n    test 987 line 191 toUtmUps8.gamma: 77.299184\n    test 988 line 191 toUtmUps8.scale: 1.007651\n    test 989 line 191 toUtmUps8.lat: 82.572236\n    test 990 line 191 toUtmUps8.lon: 77.402323\n    test 991 line 192 toUtmUps8.easting: 6521874.973458\n    test 992 line 192 toUtmUps8.northing: 1053612.479744\n    test 993 line 192 toUtmUps8.gamma: 7.407328\n    test 994 line 192 toUtmUps8.scale: 1.575529\n    test 995 line 192 toUtmUps8.lat: 6.030051\n    test 996 line 192 toUtmUps8.lon: 50.783505\n    test 997 line 193 toUtmUps8.easting: 3477983.997875\n    test 998 line 193 toUtmUps8.northing: 5651613.325947\n    test 999 line 193 toUtmUps8.gamma: 31.530673\n    test 1000 line 193 toUtmUps8.scale: 1.151875\n    test 1001 line 193 toUtmUps8.lat: 42.411523\n    test 1002 line 193 toUtmUps8.lon: 42.258009\n    test 1003 line 194 toUtmUps8.easting: 629892.822243\n    test 1004 line 194 toUtmUps8.northing: 3283914.910451\n    test 1005 line 194 toUtmUps8.gamma: 3.210482\n    test 1006 line 194 toUtmUps8.scale: 1.004499\n    test 1007 line 194 toUtmUps8.lat: 29.526120\n    test 1008 line 194 toUtmUps8.lon: 6.493069\n    test 1009 line 195 toUtmUps8.easting: 3381879.687227\n    test 1010 line 195 toUtmUps8.northing: 5103629.325665\n    test 1011 line 195 toUtmUps8.gamma: 26.748108\n    test 1012 line 195 toUtmUps8.scale: 1.143559\n    test 1013 line 195 toUtmUps8.lat: 39.021853\n    test 1014 line 195 toUtmUps8.lon: 38.641779\n    test 1015 line 196 toUtmUps8.easting: 2815986.534177\n    test 1016 line 196 toUtmUps8.northing: 9387029.120718\n    test 1017 line 196 toUtmUps8.gamma: 76.967262\n    test 1018 line 196 toUtmUps8.scale: 1.098032\n    test 1019 line 196 toUtmUps8.lat: 64.971850\n    test 1020 line 196 toUtmUps8.lon: 78.151893\n    test 1021 line 197 toUtmUps8.easting: 3398195.889603\n    test 1022 line 197 toUtmUps8.northing: 9138936.031490\n    test 1023 line 197 toUtmUps8.gamma: 74.477499\n    test 1024 line 197 toUtmUps8.scale: 1.144009\n    test 1025 line 197 toUtmUps8.lat: 59.961819\n    test 1026 line 197 toUtmUps8.lon: 76.473422\n    test 1027 line 198 toUtmUps8.easting: 2421734.754637\n    test 1028 line 198 toUtmUps8.northing: 5002372.094991\n    test 1029 line 198 toUtmUps8.gamma: 20.017082\n    test 1030 line 198 toUtmUps8.scale: 1.072592\n    test 1031 line 198 toUtmUps8.lat: 41.374040\n    test 1032 line 198 toUtmUps8.lon: 28.848343\n    test 1033 line 199 toUtmUps8.easting: 2360869.895525\n    test 1034 line 199 toUtmUps8.northing: 9553298.449536\n    test 1035 line 199 toUtmUps8.gamma: 78.848205\n    test 1036 line 199 toUtmUps8.scale: 1.068453\n    test 1037 line 199 toUtmUps8.lat: 68.946087\n    test 1038 line 199 toUtmUps8.lon: 79.574523\n\n    test skipped (27): line 200 toUtmUps8.'79.275096210569 83.551272329394 1196539.9721941076965 9861920.8362302532842 83.437668440198132309 1.01713723718699411107'\n    test 1039 line 201 toUtmUps8.easting: 1327758.704795\n    test 1040 line 201 toUtmUps8.northing: 2375509.241683\n    test 1041 line 201 toUtmUps8.gamma: 4.617572\n    test 1042 line 201 toUtmUps8.scale: 1.021465\n    test 1043 line 201 toUtmUps8.lat: 21.000252\n    test 1044 line 201 toUtmUps8.lon: 12.697444\n    test 1045 line 202 toUtmUps8.easting: 2070860.327644\n    test 1046 line 202 toUtmUps8.northing: 8604500.719581\n    test 1047 line 202 toUtmUps8.gamma: 54.722761\n    test 1048 line 202 toUtmUps8.scale: 1.052469\n    test 1049 line 202 toUtmUps8.lat: 68.015227\n    test 1050 line 202 toUtmUps8.lon: 56.732419\n    test 1051 line 203 toUtmUps8.easting: 6564776.654864\n    test 1052 line 203 toUtmUps8.northing: 8171207.177379\n    test 1053 line 203 toUtmUps8.gamma: 69.237523\n    test 1054 line 203 toUtmUps8.scale: 1.573894\n    test 1055 line 203 toUtmUps8.lat: 37.423675\n    test 1056 line 203 toUtmUps8.lon: 76.947359\n    test 1057 line 204 toUtmUps8.easting: 592653.553821\n    test 1058 line 204 toUtmUps8.northing: 6125529.810052\n    test 1059 line 204 toUtmUps8.gamma: 7.600785\n    test 1060 line 204 toUtmUps8.scale: 1.003912\n    test 1061 line 204 toUtmUps8.lat: 54.922707\n    test 1062 line 204 toUtmUps8.lon: 9.260818\n    test 1063 line 205 toUtmUps8.easting: 693459.671821\n    test 1064 line 205 toUtmUps8.northing: 6943779.991032\n    test 1065 line 205 toUtmUps8.gamma: 11.787587\n    test 1066 line 205 toUtmUps8.scale: 1.005496\n    test 1067 line 205 toUtmUps8.lat: 61.982810\n    test 1068 line 205 toUtmUps8.lon: 13.299659\n    test 1069 line 206 toUtmUps8.easting: 1838956.187625\n    test 1070 line 206 toUtmUps8.northing: 3511959.612381\n    test 1071 line 206 toUtmUps8.gamma: 9.844313\n    test 1072 line 206 toUtmUps8.scale: 1.041603\n    test 1073 line 206 toUtmUps8.lat: 30.324214\n    test 1074 line 206 toUtmUps8.lon: 18.959769\n    test 1075 line 207 toUtmUps8.easting: 4460690.884597\n    test 1076 line 207 toUtmUps8.northing: 5541873.235403\n    test 1077 line 207 toUtmUps8.gamma: 35.768613\n    test 1078 line 207 toUtmUps8.scale: 1.254179\n    test 1079 line 207 toUtmUps8.lat: 37.629667\n    test 1080 line 207 toUtmUps8.lon: 49.649131\n    test 1081 line 208 toUtmUps8.easting: 2311168.998941\n    test 1082 line 208 toUtmUps8.northing: 9480561.869119\n    test 1083 line 208 toUtmUps8.gamma: 76.828257\n    test 1084 line 208 toUtmUps8.scale: 1.065556\n    test 1085 line 208 toUtmUps8.lat: 69.225574\n    test 1086 line 208 toUtmUps8.lon: 77.656135\n    test 1087 line 209 toUtmUps8.easting: 4111775.114451\n    test 1088 line 209 toUtmUps8.northing: 6509014.348792\n    test 1089 line 209 toUtmUps8.gamma: 43.052130\n    test 1090 line 209 toUtmUps8.scale: 1.214125\n    test 1091 line 209 toUtmUps8.lat: 44.698478\n    test 1092 line 209 toUtmUps8.lon: 52.979304\n    test 1093 line 210 toUtmUps8.easting: 75358.261962\n    test 1094 line 210 toUtmUps8.northing: 7711258.662251\n    test 1095 line 210 toUtmUps8.gamma: 1.806297\n    test 1096 line 210 toUtmUps8.scale: 0.999669\n    test 1097 line 210 toUtmUps8.lat: 69.499594\n    test 1098 line 210 toUtmUps8.lon: 1.928336\n\n    test skipped (28): line 211 toUtmUps8.'27.981363604998 86.061112755721 8781885.2291162503299 9184776.4522114918448 81.795538514711932534 2.09490761781464961377'\n    test 1099 line 212 toUtmUps8.easting: 954378.415174\n    test 1100 line 212 toUtmUps8.northing: 7449110.669807\n    test 1101 line 212 toUtmUps8.gamma: 19.380657\n    test 1102 line 212 toUtmUps8.scale: 1.010768\n    test 1103 line 212 toUtmUps8.lat: 65.699839\n    test 1104 line 212 toUtmUps8.lon: 21.104725\n    test 1105 line 213 toUtmUps8.easting: 720971.793706\n    test 1106 line 213 toUtmUps8.northing: 5265195.121555\n    test 1107 line 213 toUtmUps8.gamma: 7.002995\n    test 1108 line 213 toUtmUps8.scale: 1.005995\n    test 1109 line 213 toUtmUps8.lat: 47.143648\n    test 1110 line 213 toUtmUps8.lon: 9.512189\n    test 1111 line 214 toUtmUps8.easting: 561561.493937\n    test 1112 line 214 toUtmUps8.northing: 989910.236221\n    test 1113 line 214 toUtmUps8.gamma: 0.793118\n    test 1114 line 214 toUtmUps8.scale: 1.003505\n    test 1115 line 214 toUtmUps8.lat: 8.920167\n    test 1116 line 214 toUtmUps8.lon: 5.101513\n    test 1117 line 215 toUtmUps8.easting: 3446829.634468\n    test 1118 line 215 toUtmUps8.northing: 9232868.155664\n    test 1119 line 215 toUtmUps8.gamma: 76.279075\n    test 1120 line 215 toUtmUps8.scale: 1.148263\n    test 1121 line 215 toUtmUps8.lat: 59.778971\n    test 1122 line 215 toUtmUps8.lon: 78.080322\n\n    test skipped (29): line 216 toUtmUps8.'55.865310107291 87.384288430943 4048307.5459092527942 9800416.4229977935137 86.843918034217523739 1.20649504624906774925'\n    test 1123 line 217 toUtmUps8.easting: 8973188.480293\n    test 1124 line 217 toUtmUps8.northing: 7042230.087021\n    test 1125 line 217 toUtmUps8.gamma: 60.872456\n    test 1126 line 217 toUtmUps8.scale: 2.156098\n    test 1127 line 217 toUtmUps8.lat: 24.310973\n    test 1128 line 217 toUtmUps8.lon: 76.823777\n    test 1129 line 218 toUtmUps8.easting: 126314.191618\n    test 1130 line 218 toUtmUps8.northing: 396006.687921\n    test 1131 line 218 toUtmUps8.gamma: 0.071065\n    test 1132 line 218 toUtmUps8.scale: 0.999798\n    test 1133 line 218 toUtmUps8.lat: 3.582041\n    test 1134 line 218 toUtmUps8.lon: 1.137286\n    test 1135 line 219 toUtmUps8.easting: 5247652.345647\n    test 1136 line 219 toUtmUps8.northing: 8670513.359752\n    test 1137 line 219 toUtmUps8.gamma: 72.700498\n    test 1138 line 219 toUtmUps8.scale: 1.355272\n    test 1139 line 219 toUtmUps8.lat: 46.124233\n    test 1140 line 219 toUtmUps8.lon: 77.313118\n\n    test skipped (30): line 220 toUtmUps8.'31.17139056295 87.104503768139 8103656.8381187232079 9469794.014736839373 84.490673011906282841 1.91216400164486142107'\n    test 1141 line 221 toUtmUps8.easting: 6300112.758236\n    test 1142 line 221 toUtmUps8.northing: 93835.917364\n    test 1143 line 221 toUtmUps8.gamma: 0.644805\n    test 1144 line 221 toUtmUps8.scale: 1.534073\n    test 1145 line 221 toUtmUps8.lat: 0.553171\n    test 1146 line 221 toUtmUps8.lon: 49.117104\n    test 1147 line 222 toUtmUps8.easting: 3894813.593782\n    test 1148 line 222 toUtmUps8.northing: 4833832.341027\n    test 1149 line 222 toUtmUps8.gamma: 27.453298\n    test 1150 line 222 toUtmUps8.scale: 1.192135\n    test 1151 line 222 toUtmUps8.lat: 35.361587\n    test 1152 line 222 toUtmUps8.lon: 41.860599\n    test 1153 line 223 toUtmUps8.easting: 402511.346712\n    test 1154 line 223 toUtmUps8.northing: 3520621.561911\n    test 1155 line 223 toUtmUps8.gamma: 2.238474\n    test 1156 line 223 toUtmUps8.scale: 1.001599\n    test 1157 line 223 toUtmUps8.lat: 31.750314\n    test 1158 line 223 toUtmUps8.lon: 4.248167\n    test 1159 line 224 toUtmUps8.easting: 5357378.503148\n    test 1160 line 224 toUtmUps8.northing: 2772997.602234\n    test 1161 line 224 toUtmUps8.gamma: 17.823560\n    test 1162 line 224 toUtmUps8.scale: 1.376031\n    test 1163 line 224 toUtmUps8.lat: 17.924336\n    test 1164 line 224 toUtmUps8.lon: 46.096402\n    test 1165 line 225 toUtmUps8.easting: 2807553.985866\n    test 1166 line 225 toUtmUps8.northing: 8177847.980275\n    test 1167 line 225 toUtmUps8.gamma: 54.680045\n    test 1168 line 225 toUtmUps8.scale: 1.097531\n    test 1169 line 225 toUtmUps8.lat: 60.931488\n    test 1170 line 225 toUtmUps8.lon: 58.221214\n\n    test skipped (31): line 226 toUtmUps8.'5.358150979521 87.556213284144 18289045.16650076146 7792942.3396035398889 73.216494415207315628 8.09800850850277481729'\n\n    test skipped (32): line 227 toUtmUps8.'28.616673489124 80.452426461437 8376822.4595378634541 8128174.6238782329989 70.920116640676321501 1.98487312027093768388'\n    test 1171 line 228 toUtmUps8.easting: 11898068.352950  FAILED, KNOWN, expected 11898068.353272\n    test 1172 line 228 toUtmUps8.northing: 4772439.493355  FAILED, KNOWN, expected 4772439.493697\n    test 1173 line 228 toUtmUps8.gamma: 42.613968\n    test 1174 line 228 toUtmUps8.scale: 3.314412\n    test 1175 line 228 toUtmUps8.lat: 11.709763\n    test 1176 line 228 toUtmUps8.lon: 76.760295\n    test 1177 line 229 toUtmUps8.easting: 10550946.939052  FAILED, KNOWN, expected 10550946.939050\n    test 1178 line 229 toUtmUps8.northing: 3851968.815305  FAILED, KNOWN, expected 3851968.815295\n    test 1179 line 229 toUtmUps8.gamma: 33.383025\n    test 1180 line 229 toUtmUps8.scale: 2.724754\n    test 1181 line 229 toUtmUps8.lat: 12.009498\n    test 1182 line 229 toUtmUps8.lon: 71.782351\n\n    test skipped (33): line 230 toUtmUps8.'37.62978386356 85.795687334213 6828299.1236065501034 9394803.2274626281036 83.181386462369626591 1.62435875189611017521'\n    test 1183 line 231 toUtmUps8.easting: 11162550.334001  FAILED, KNOWN, expected 11162550.334022\n    test 1184 line 231 toUtmUps8.northing: 2640267.279546  FAILED, KNOWN, expected 2640267.279593\n    test 1185 line 231 toUtmUps8.gamma: 23.145404\n    test 1186 line 231 toUtmUps8.scale: 2.998408\n    test 1187 line 231 toUtmUps8.lat: 7.721128\n    test 1188 line 231 toUtmUps8.lon: 71.662731\n    test 1189 line 232 toUtmUps8.easting: 4411584.447941\n    test 1190 line 232 toUtmUps8.northing: 4956173.694407\n    test 1191 line 232 toUtmUps8.gamma: 30.713919\n    test 1192 line 232 toUtmUps8.scale: 1.248736\n    test 1193 line 232 toUtmUps8.lat: 34.295026\n    test 1194 line 232 toUtmUps8.lon: 46.442191\n    test 1195 line 233 toUtmUps8.easting: 672108.897905\n    test 1196 line 233 toUtmUps8.northing: 4751554.657054\n    test 1197 line 233 toUtmUps8.gamma: 5.569178\n    test 1198 line 233 toUtmUps8.scale: 1.005162\n    test 1199 line 233 toUtmUps8.lat: 42.622496\n    test 1200 line 233 toUtmUps8.lon: 8.193605\n    test 1201 line 234 toUtmUps8.easting: 5022964.290579\n    test 1202 line 234 toUtmUps8.northing: 6860418.199502\n    test 1203 line 234 toUtmUps8.gamma: 50.862230\n    test 1204 line 234 toUtmUps8.scale: 1.324925\n    test 1205 line 234 toUtmUps8.lat: 41.667780\n    test 1206 line 234 toUtmUps8.lon: 61.518288\n    test 1207 line 235 toUtmUps8.easting: 1669655.595207\n    test 1208 line 235 toUtmUps8.northing: 4152086.537021\n    test 1209 line 235 toUtmUps8.gamma: 11.110237\n    test 1210 line 235 toUtmUps8.scale: 1.034138\n    test 1211 line 235 toUtmUps8.lat: 36.060369\n    test 1212 line 235 toUtmUps8.lon: 18.444112\n    test 1213 line 236 toUtmUps8.easting: 6055876.729655\n    test 1214 line 236 toUtmUps8.northing: 4896837.552619\n    test 1215 line 236 toUtmUps8.gamma: 35.799747\n    test 1216 line 236 toUtmUps8.scale: 1.485967\n    test 1217 line 236 toUtmUps8.lat: 27.948091\n    test 1218 line 236 toUtmUps8.lon: 56.816429\n    test 1219 line 237 toUtmUps8.easting: 1209214.164379\n    test 1220 line 237 toUtmUps8.northing: 7266409.859178\n    test 1221 line 237 toUtmUps8.gamma: 22.319633\n    test 1222 line 237 toUtmUps8.scale: 1.017554\n    test 1223 line 237 toUtmUps8.lat: 63.386030\n    test 1224 line 237 toUtmUps8.lon: 24.662716\n    test 1225 line 238 toUtmUps8.easting: 5154564.559584\n    test 1226 line 238 toUtmUps8.northing: 698118.349975\n    test 1227 line 238 toUtmUps8.gamma: 4.242360\n    test 1228 line 238 toUtmUps8.scale: 1.347481\n    test 1229 line 238 toUtmUps8.lat: 4.680922\n    test 1230 line 238 toUtmUps8.lon: 42.114426\n    test 1231 line 239 toUtmUps8.easting: 2695149.806543\n    test 1232 line 239 toUtmUps8.northing: 8208197.765605\n    test 1233 line 239 toUtmUps8.gamma: 54.178615\n    test 1234 line 239 toUtmUps8.scale: 1.089730\n    test 1235 line 239 toUtmUps8.lat: 61.826625\n    test 1236 line 239 toUtmUps8.lon: 57.525096\n    test 1237 line 240 toUtmUps8.easting: 3394792.327820\n    test 1238 line 240 toUtmUps8.northing: 3217583.415552\n    test 1239 line 240 toUtmUps8.gamma: 15.165863\n    test 1240 line 240 toUtmUps8.scale: 1.145285\n    test 1241 line 240 toUtmUps8.lat: 25.104353\n    test 1242 line 240 toUtmUps8.lon: 32.528660\n    test 1243 line 241 toUtmUps8.easting: 1429160.966985\n    test 1244 line 241 toUtmUps8.northing: 8212685.362032\n    test 1245 line 241 toUtmUps8.gamma: 37.484904\n    test 1246 line 241 toUtmUps8.scale: 1.024676\n    test 1247 line 241 toUtmUps8.lat: 69.678351\n    test 1248 line 241 toUtmUps8.lon: 39.275513\n\n    test skipped (34): line 242 toUtmUps8.'29.671383681805 84.19659549085 8343387.9980651104898 8885196.9545780118644 78.561937382568633298 1.97473261886829061763'\n    test 1249 line 243 toUtmUps8.easting: 1990722.928606\n    test 1250 line 243 toUtmUps8.northing: 7569202.065162\n    test 1251 line 243 toUtmUps8.gamma: 37.075276\n    test 1252 line 243 toUtmUps8.scale: 1.048486\n    test 1253 line 243 toUtmUps8.lat: 62.300208\n    test 1254 line 243 toUtmUps8.lon: 40.474051\n    test 1255 line 244 toUtmUps8.easting: 1554980.099559\n    test 1256 line 244 toUtmUps8.northing: 1449423.919586\n    test 1257 line 244 toUtmUps8.gamma: 3.188328\n    test 1258 line 244 toUtmUps8.scale: 1.029664\n    test 1259 line 244 toUtmUps8.lat: 12.721776\n    test 1260 line 244 toUtmUps8.lon: 14.190003\n    test 1261 line 245 toUtmUps8.easting: 785205.450196\n    test 1262 line 245 toUtmUps8.northing: 5575158.423096\n    test 1263 line 245 toUtmUps8.gamma: 8.388417\n    test 1264 line 245 toUtmUps8.scale: 1.007181\n    test 1265 line 245 toUtmUps8.lat: 49.811296\n    test 1266 line 245 toUtmUps8.lon: 10.925011\n    test 1267 line 246 toUtmUps8.easting: 3310405.988313\n    test 1268 line 246 toUtmUps8.northing: 5955022.233881\n    test 1269 line 246 toUtmUps8.gamma: 33.007587\n    test 1270 line 246 toUtmUps8.scale: 1.137141\n    test 1271 line 246 toUtmUps8.lat: 45.132680\n    test 1272 line 246 toUtmUps8.lon: 42.478624\n    test 1273 line 247 toUtmUps8.easting: 4733460.960666\n    test 1274 line 247 toUtmUps8.northing: 129034.889816\n    test 1275 line 247 toUtmUps8.gamma: 0.737551\n    test 1276 line 247 toUtmUps8.scale: 1.290439\n    test 1277 line 247 toUtmUps8.lat: 0.904279\n    test 1278 line 247 toUtmUps8.lon: 39.078412\n    test 1279 line 248 toUtmUps8.easting: 3322708.343909\n    test 1280 line 248 toUtmUps8.northing: 3864738.078742\n    test 1281 line 248 toUtmUps8.gamma: 18.472566\n    test 1282 line 248 toUtmUps8.scale: 1.138838\n    test 1283 line 248 toUtmUps8.lat: 30.163605\n    test 1284 line 248 toUtmUps8.lon: 33.577996\n\n    test skipped (35): line 249 toUtmUps8.'27.643243707755 81.892859091432 8672864.4172042475623 8333465.9834441061554 73.206272638168122883 2.06544053870286774312'\n\n    test skipped (36): line 250 toUtmUps8.'18.201207657521 82.434617649311 11126818.23119627031 7618712.1749910723126 67.88717347393512063 2.92241673495261070414'\n\n    test skipped (37): line 251 toUtmUps8.'28.804576432117 89.886072420251 8650100.9817967479337 9975084.1689971279206 89.767446308690086924 2.05728879562910108817'\n    test 1285 line 252 toUtmUps8.easting: 2212701.180192\n    test 1286 line 252 toUtmUps8.northing: 650348.100229\n    test 1287 line 252 toUtmUps8.gamma: 1.970441\n    test 1288 line 252 toUtmUps8.scale: 1.060830\n    test 1289 line 252 toUtmUps8.lat: 5.542998\n    test 1290 line 252 toUtmUps8.lon: 19.589578\n    test 1291 line 253 toUtmUps8.easting: 6890222.326618\n    test 1292 line 253 toUtmUps8.northing: 7506813.499547\n    test 1293 line 253 toUtmUps8.gamma: 62.684825\n    test 1294 line 253 toUtmUps8.scale: 1.638488\n    test 1295 line 253 toUtmUps8.lat: 34.237147\n    test 1296 line 253 toUtmUps8.lon: 73.678164\n    test 1297 line 254 toUtmUps8.easting: 6692260.067325\n    test 1298 line 254 toUtmUps8.northing: 4244174.008110\n    test 1299 line 254 toUtmUps8.gamma: 31.812920\n    test 1300 line 254 toUtmUps8.scale: 1.604640\n    test 1301 line 254 toUtmUps8.lat: 22.704949\n    test 1302 line 254 toUtmUps8.lon: 57.877010\n    test 1303 line 255 toUtmUps8.easting: 1225564.137190\n    test 1304 line 255 toUtmUps8.northing: 4778923.924144\n    test 1305 line 255 toUtmUps8.gamma: 10.083419\n    test 1306 line 255 toUtmUps8.scale: 1.018134\n    test 1307 line 255 toUtmUps8.lat: 42.192424\n    test 1308 line 255 toUtmUps8.lon: 14.828196\n    test 1309 line 256 toUtmUps8.easting: 12341116.155088  FAILED, KNOWN, expected 12341116.154950\n    test 1310 line 256 toUtmUps8.northing: 5081855.520287  FAILED, KNOWN, expected 5081855.521966\n    test 1311 line 256 toUtmUps8.gamma: 45.712545  FAILED, KNOWN, expected 45.712546\n    test 1312 line 256 toUtmUps8.scale: 3.535170\n    test 1313 line 256 toUtmUps8.lat: 11.481151\n    test 1314 line 256 toUtmUps8.lon: 78.189236\n    test 1315 line 257 toUtmUps8.easting: 6673845.021771\n    test 1316 line 257 toUtmUps8.northing: 1177587.190565\n    test 1317 line 257 toUtmUps8.gamma: 8.389141\n    test 1318 line 257 toUtmUps8.scale: 1.605171\n    test 1319 line 257 toUtmUps8.lat: 6.609626\n    test 1320 line 257 toUtmUps8.lon: 51.735783\n    test 1321 line 258 toUtmUps8.easting: 6966354.690417\n    test 1322 line 258 toUtmUps8.northing: 3641802.005093\n    test 1323 line 258 toUtmUps8.gamma: 27.409636\n    test 1324 line 258 toUtmUps8.scale: 1.661469\n    test 1325 line 258 toUtmUps8.lat: 19.059369\n    test 1326 line 258 toUtmUps8.lon: 57.526439\n    test 1327 max forward error: 1.678809e-03\n    test 1328 max reverse error: 3.170463e-09\n    test 1329 Utm.scale0: 0.9996\n    test 1330 Utm.datum: WGS84\n    test 1331 Utm.datum.ellipsoid.KsOrder: 8\n    test 1332 Ups.scale0: 0.994  FAILED, KNOWN, expected 0.9996\n    test 1333 Ups.datum: WGS84\n    test 1334 Ups.datum.ellipsoid.KsOrder: 8\n    test 1335 WGS84.KsOrder: 8\n\n    24 of 1335 testUtmUpsTMcoords.py tests (1.8%) FAILED, ALL KNOWN, 37 skipped (pygeodesy 26.3.26 Python 3.11.9 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 1.24.2 scipy 1.10.1 Math 2 macOS 26.3.1 isLazy 0 -W  default) 571.021 ms\nrunning /usr/local/bin/p....n3.11 -W default ~/PyGeodesy/test/testVectorial.py\n./pygeodesy/ellipsoidalBase.py:443: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  _ = self.datum.ellipsoid.geodesic\n./pygeodesy/azimuthal.py:636: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return self.datum.ellipsoid.geodesic\n./pygeodesy/ellipsoidalNvector.py:247: DeprecationWarning: Property_RO L{ned<pygeodesy.ltpTuples.Ned.ned>} has been DEPRECATED, use property C{ned4}.\n  dn = delta.ned[:3]  # XXX Ned4Tuple.to3Tuple\n./pygeodesy/deprecated/classes.py:33: DeprecationWarning: class L{Ned3Tuple<pygeodesy.deprecated.classes.Ned3Tuple>} has been DEPRECATED, use class L{Ned4Tuple}, ignoring item C{ltp}.\n  deprecated_class(cls)\n./test/testVectorial.py:128: DeprecationWarning: function L{nearestOn<pygeodesy.vector2d.nearestOn>} has been DEPRECATED on 2025.05.06, use L{pygeodesy.nearestOn<pygeodesy.vector3d.nearestOn>}.\n  t = vector2d.nearestOn(Nvector(0, 0, 0), p1, p2)\n\n    testing testVectorial.py 25.10.07\n\n    testVectorial(pygeodesy.ellipsoidalNvector, 25.05.12)\n\n    test 1 toLatLon: 44.995674°N, 045.0°E\n    test 2 toNvector: (0.50004, 0.50004, 0.70705)\n    test 3 isequalTo: False\n    test 4 isequalTo: True\n    test 5 length: 0.99992449715\n    test 6 euclid: 0.99995577\n    test 7 length: 1.00\n    test 8 euclid: 1.0000\n    test 9 meanOf: 44.995674°N, 045.0°E\n    test 10 meanOf: LatLon\n    test 11 apply: (0.5, 0.5, 0.707)\n    test 12 init: (0.5, 0.5, 0.707)\n    test 13 i***: (0.5, 0.5, 0.707)\n    test 14 abs: 0.99992449715\n    test 15 sumOf: (52.70504, 0.61904, 0.70705)\n    test 16 sumOf: Nv\n    test 17 sumOf: sumOf\n    test 18 length: 52.7134151513\n    test 19 sizeof: 241  FAILED, KNOWN, expected 128\n    test 20 length: 52.2051356286\n    test 21 sizeof: 360  FAILED, KNOWN, expected 247\n    test 22 copy: True\n    test 23 length: 52.2051356286\n    test 24 sizeof: 360\n    test 25 isenclosedBy: True\n    test 26 isenclosedBy*: True\n    test 27 isenclosedBy: True\n    test 28 isenclosedBy*: True\n\n    test 29 nearestOn: 51.0°N, 001.0°E\n    test 30 nearestOn: 50.987°N, 000.298°W\n    test 31 nearestOn: 51.0°N, 002.0°E\n    test 32 nearestOn: 50.995°N, 002.655°E\n    test 33 nearestOn: 51.0°N, 001.9°E\n    test 34 nearestOn: True\n    test 35 distanceTo: 42.826\n    test 36 nearestOn: 51.0°N, 002.0°E\n    test 37 nearestOn: True\n    test 38 nearestOn: 00.0°N, 000.0°E\n    test 39 nearestOn: True\n    test 40 nearestOn: 00.0°N, 020.0°E\n    test 41 nearestOn: True\n    test 42 nearestOn: 02.0°N, 002.0°E\n    test 43 nearestOn: 02.0°N, 002.0°E\n\n    test 44 neareston6: (LatLon(45°00′00.0″N, 001°00′00.0″E), 4755443.4294, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E))\n    test 45 neareston6: (LatLon(45°30′03.94″N, 002°00′00.0″E), 39078.729285, 1.501072, 2, LatLon(45°00′00.0″N, 002°00′00.0″E), LatLon(46°00′00.0″N, 002°00′00.0″E))\n\n    test 46 BasseC: 47.3038°N, 002.5721°W\n    test 47 BasseH: 47.311067°N, 002.528617°W\n    test 48 triangulate: 47.323667°N, 002.568501°W\n    test 49 triangulate: True\n\n    test 50 trilaterate: 37.419078°N, 121.960579°W\n    test 51 trilaterate: True\n    test 52 trilaterate: 08.068912°S, 034.888699°W\n    test 53 trilaterate: True\n    test 54 trilaterate: 08.068912°S, 034.888695°W  FAILED, KNOWN, expected 08.068912°S, 034.888699°W\n    test 55 trilaterate: True\n    test 56 trilaterate: 42.67456065°N, 002.49539502°E\n    test 57 trilaterate: distance1 (5110), distance2 (5110), distance3 (5110), point1 (LatLon(42°41′19.82″N, 002°26′19.89″E)), point2 (LatLon(42°38′07.52″N, 002°31′21.25″E)) or point3 (LatLon(42°38′43.44″N, 002°30′17.32″E)): no intersection (useZ=False, wrap=False, z=-8.13526e-05)\n\n    test 58 destinationNed: 48°53′12.01″N, 002°22′29.0″E, +0.20m\n\n    testNvector(pygeodesy.ellipsoidalNvector, 25.05.12)\n    test 59 sumOf: Nvector\n    test 60 ecef.x, .y, .z: 3194659.54086, 3194659.54086, 4487008.4122\n    test 61 ecef.lat, .lon: 44.995674, 45.0\n    test 62 ecef.height: -0.0\n    test 63 ecef.M: -0.707106781, -0.499962243, 0.500037754, 0.707106781, -0.499962243, 0.500037754, 0.0, 0.707160174, 0.707053385\n    test 64 .isEllipsoidal: True\n    test 65 .isSpherical: False\n    test 66 .latlon: (44.995674, 45.0)\n    test 67 .philam: (0.785323, 0.785398)\n    test 68 .latlonheight: (44.995674, 45.0, 0.0)\n    test 69 .philamheight: (0.785323, 0.785398, 0.0)\n    test 70 parse: (0.5, 0.5, 0.707)\n    test 71 cmp: 0\n    test 72 eq: True\n    test 73 ge: True\n    test 74 gt: False\n    test 75 le: True\n    test 76 lt: False\n    test 77 ne: False\n    test 78 *: (1.0, 1.0, 1.414)\n    test 79 +: (1.0, 1.0, 1.414)\n    test 80 /: (0.5, 0.5, 0.707)\n    test 81 -: (0.5, 0.5, 0.707)\n    test 82 @: (0.0, 0.0, 0.0)\n    test 83 @: (0.0, 0.0, 0.0)\n    test 84 rotate: (0.26268, 0.26268, 0.37143)\n    test 85 crosserrors: True\n    test 86 0: divisor (0): float division by zero\n    test 87 intersections2: (500.0, 0.0, 0.0)\n    test 88 nearestOn: (0.0, 0.0, 0.0)\n    test 89 nearestOn: True\n    test 90 nearestOn: (100.0, 100.0, 100.0)\n    test 91 nearestOn: True\n    test 92 iscolinearWith: False\n    test 93 iscolinearWith: True\n    test 94 nearestOn: (0.0, 0.0, 0.0)\n    test 95 nearestOn: True\n    test 96 nearestOn: (100.0, 100.0, 100.0)\n    test 97 nearestOn: True\n    test 98 iscolinearWith: False\n    test 99 iscolinearWith: True\n\n    testVectorial(pygeodesy.sphericalNvector, 25.05.27)\n    test 100 crossTrackDistanceTo: -305.67\n    test 101 crossTrackDistanceTo: -307.55\n\n    test 102 toLatLon: 44.995674°N, 045.0°E\n    test 103 toNvector: (0.50004, 0.50004, 0.70705)\n    test 104 isequalTo: False\n    test 105 isequalTo: True\n    test 106 length: 0.99992449715\n    test 107 euclid: 0.99995577\n    test 108 length: 1.00\n    test 109 euclid: 1.0000\n    test 110 meanOf: 44.995674°N, 045.0°E\n    test 111 meanOf: LatLon\n    test 112 apply: (0.5, 0.5, 0.707)\n    test 113 init: (0.5, 0.5, 0.707)\n    test 114 i***: (0.5, 0.5, 0.707)\n    test 115 abs: 0.99992449715\n    test 116 sumOf: (52.70504, 0.61904, 0.70705)\n    test 117 sumOf: Nv\n    test 118 sumOf: sumOf\n    test 119 length: 52.7134151513\n    test 120 sizeof: 241  FAILED, KNOWN, expected 128\n    test 121 length: 52.2051356286\n    test 122 sizeof: 360  FAILED, KNOWN, expected 247\n    test 123 copy: True\n    test 124 length: 52.2051356286\n    test 125 sizeof: 360\n\n    test 126 toCartesian: [3185744.919, 3185744.919, 4504643.315]\n    test 127 toLatLon: 44.995674°N, 045.0°E\n    test 128 toNvector: (0.50004, 0.50004, 0.70705)  FAILED, KNOWN, expected (0.50004, 0.50004, 0.70705, -0.00)\n\n    test 129 intersection: 02.499372°N, 002.5°E\n\n    test 130 intersection1: 02.499372°N, 002.5°E\n    test 131 intersection2: 02.499372°S, 177.5°W\n\n    test 132 isenclosedBy: True\n    test 133 isenclosedBy*: True\n    test 134 isenclosedBy: True\n    test 135 isenclosedBy*: True\n\n    test 136 iswithin: False\n    test 137 iswithin: True\n\n    test 138 nearestOn: 51.0°N, 001.0°E\n    test 139 nearestOn: 50.987°N, 000.298°W\n    test 140 nearestOn: 51.0°N, 002.0°E\n    test 141 nearestOn: 50.995°N, 002.655°E\n    test 142 nearestOn: 51.0°N, 001.9°E\n    test 143 nearestOn: True\n    test 144 distanceTo: 42.712\n    test 145 nearestOn: 51.0°N, 002.0°E\n    test 146 nearestOn: True\n    test 147 nearestOn: 00.0°N, 000.0°E\n    test 148 nearestOn: True\n    test 149 nearestOn: 00.0°N, 020.0°E\n    test 150 nearestOn: True\n    test 151 nearestOn: 02.0°N, 002.0°E\n    test 152 nearestOn: 02.0°N, 002.0°E\n\n    test 153 neareston6: (LatLon(45°00′00.0″N, 001°00′00.0″E), 4773243.784965, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E))\n    test 154 neareston6: (LatLon(45°30′03.93″N, 002°00′00.0″E), 38968.531578, 1.501091, 2, LatLon(45°00′00.0″N, 002°00′00.0″E), LatLon(46°00′00.0″N, 002°00′00.0″E))\n\n    test 155 BasseC: 47.3038°N, 002.5721°W\n    test 156 BasseH: 47.311067°N, 002.528617°W\n    test 157 triangulate: 47.323667°N, 002.568501°W\n    test 158 triangulate: True\n\n    test 159 trilaterate: 37.419078°N, 121.960579°W\n    test 160 trilaterate: True\n    test 161 trilaterate: 08.068912°S, 034.888699°W\n    test 162 trilaterate: True\n    test 163 trilaterate: 08.068912°S, 034.888695°W  FAILED, KNOWN, expected 08.068912°S, 034.888699°W\n    test 164 trilaterate: True\n    test 165 trilaterate: 42.67456065°N, 002.49539502°E\n    test 166 trilaterate: distance1 (5110), distance2 (5110), distance3 (5110), point1 (LatLon(42°41′19.82″N, 002°26′19.89″E)), point2 (LatLon(42°38′07.52″N, 002°31′21.25″E)) or point3 (LatLon(42°38′43.44″N, 002°30′17.32″E)): no intersection (useZ=False, wrap=False, z=-8.13526e-05)\n\n    testNvector(pygeodesy.sphericalNvector, 25.05.27)\n    test 167 sumOf: Nvector\n    test 168 ecef.x, .y, .z: 3185744.91853, 3185744.91853, 4504643.3148\n    test 169 ecef.lat, .lon: 44.995674, 45.0\n    test 170 ecef.height: -0.0\n    test 171 ecef.M: -0.707106781, -0.499962243, 0.500037754, 0.707106781, -0.499962243, 0.500037754, 0.0, 0.707160174, 0.707053385\n    test 172 .isEllipsoidal: False\n    test 173 .isSpherical: True\n    test 174 .latlon: (44.995674, 45.0)\n    test 175 .philam: (0.785323, 0.785398)\n    test 176 .latlonheight: (44.995674, 45.0, 0.0)\n    test 177 .philamheight: (0.785323, 0.785398, 0.0)\n    test 178 parse: (0.5, 0.5, 0.707)\n    test 179 cmp: 0\n    test 180 eq: True\n    test 181 ge: True\n    test 182 gt: False\n    test 183 le: True\n    test 184 lt: False\n    test 185 ne: False\n    test 186 *: (1.0, 1.0, 1.414)\n    test 187 +: (1.0, 1.0, 1.414)\n    test 188 /: (0.5, 0.5, 0.707)\n    test 189 -: (0.5, 0.5, 0.707)\n    test 190 @: (0.0, 0.0, 0.0)\n    test 191 @: (0.0, 0.0, 0.0)\n    test 192 rotate: (0.26268, 0.26268, 0.37143)\n    test 193 crosserrors: True\n    test 194 0: divisor (0): float division by zero\n    test 195 intersections2: (500.0, 0.0, 0.0)\n    test 196 nearestOn: (0.0, 0.0, 0.0)\n    test 197 nearestOn: True\n    test 198 nearestOn: (100.0, 100.0, 100.0)\n    test 199 nearestOn: True\n    test 200 iscolinearWith: False\n    test 201 iscolinearWith: True\n    test 202 nearestOn: (0.0, 0.0, 0.0)\n    test 203 nearestOn: True\n    test 204 nearestOn: (100.0, 100.0, 100.0)\n    test 205 nearestOn: True\n    test 206 iscolinearWith: False\n    test 207 iscolinearWith: True\n\n    testNvectorBase(pygeodesy.nvectorBase, 25.08.18)\n    test 208 sumOf: Vector4Tuple\n    test 209 ecef.x, .y, .z: 3185744.91853, 3185744.91853, 4504643.3148\n    test 210 ecef.lat, .lon: 44.995674, 45.0\n    test 211 ecef.height: -0.0\n    test 212 ecef.M: -0.707106781, -0.499962243, 0.500037754, 0.707106781, -0.499962243, 0.500037754, 0.0, 0.707160174, 0.707053385\n    test 213 .isEllipsoidal: False\n    test 214 .isSpherical: True\n    test 215 .latlon: (44.995674, 45.0)\n    test 216 .philam: (0.785323, 0.785398)\n    test 217 .latlonheight: (44.995674, 45.0, 0.0)\n    test 218 .philamheight: (0.785323, 0.785398, 0.0)\n    test 219 parse: (0.5, 0.5, 0.707)\n    test 220 cmp: 0\n    test 221 eq: True\n    test 222 ge: True\n    test 223 gt: False\n    test 224 le: True\n    test 225 lt: False\n    test 226 ne: False\n    test 227 *: (1.0, 1.0, 1.414)\n    test 228 +: (1.0, 1.0, 1.414)\n    test 229 /: (0.5, 0.5, 0.707)\n    test 230 -: (0.5, 0.5, 0.707)\n    test 231 @: (0.0, 0.0, 0.0)\n    test 232 @: (0.0, 0.0, 0.0)\n    test 233 rotate: (0.26268, 0.26268, 0.37143)\n    test 234 crosserrors: True\n    test 235 0: divisor (0): float division by zero\n    test 236 intersections2: (500.0, 0.0, 0.0)\n    test 237 nearestOn: (0.0, 0.0, 0.0)\n    test 238 nearestOn: True\n    test 239 nearestOn: (100.0, 100.0, 100.0)\n    test 240 nearestOn: True\n    test 241 iscolinearWith: False\n    test 242 iscolinearWith: True\n    test 243 nearestOn: (0.0, 0.0, 0.0)\n    test 244 nearestOn: True\n    test 245 nearestOn: (100.0, 100.0, 100.0)\n    test 246 nearestOn: True\n    test 247 iscolinearWith: False\n    test 248 iscolinearWith: True\n\n    testNvectorBase(pygeodesy.nvectorBase, 25.08.18)\n    test 249 sumOf: Vector4Tuple\n    test 250 ecef.x, .y, .z: 3194659.54086, 3194659.54086, 4487008.4122\n    test 251 ecef.lat, .lon: 44.995674, 45.0\n    test 252 ecef.height: -0.0\n    test 253 ecef.M: -0.707106781, -0.499962243, 0.500037754, 0.707106781, -0.499962243, 0.500037754, 0.0, 0.707160174, 0.707053385\n    test 254 .isEllipsoidal: True\n    test 255 .isSpherical: False\n    test 256 .latlon: (44.995674, 45.0)\n    test 257 .philam: (0.785323, 0.785398)\n    test 258 .latlonheight: (44.995674, 45.0, 0.0)\n    test 259 .philamheight: (0.785323, 0.785398, 0.0)\n    test 260 parse: (0.5, 0.5, 0.707)\n    test 261 cmp: 0\n    test 262 eq: True\n    test 263 ge: True\n    test 264 gt: False\n    test 265 le: True\n    test 266 lt: False\n    test 267 ne: False\n    test 268 *: (1.0, 1.0, 1.414)\n    test 269 +: (1.0, 1.0, 1.414)\n    test 270 /: (0.5, 0.5, 0.707)\n    test 271 -: (0.5, 0.5, 0.707)\n    test 272 @: (0.0, 0.0, 0.0)\n    test 273 @: (0.0, 0.0, 0.0)\n    test 274 rotate: (0.26268, 0.26268, 0.37143)\n    test 275 crosserrors: True\n    test 276 0: divisor (0): float division by zero\n    test 277 intersections2: (500.0, 0.0, 0.0)\n    test 278 nearestOn: (0.0, 0.0, 0.0)\n    test 279 nearestOn: True\n    test 280 nearestOn: (100.0, 100.0, 100.0)\n    test 281 nearestOn: True\n    test 282 iscolinearWith: False\n    test 283 iscolinearWith: True\n    test 284 nearestOn: (0.0, 0.0, 0.0)\n    test 285 nearestOn: True\n    test 286 nearestOn: (100.0, 100.0, 100.0)\n    test 287 nearestOn: True\n    test 288 iscolinearWith: False\n    test 289 iscolinearWith: True\n\n    testCartesian(pygeodesy.sphericalNvector, 25.05.27)\n    test 290 sphericalNvector.Cartesian.trilaterate3d2: 2\n    test 291 sphericalNvector.Cartesian 'trilaterate3d2': 119.8958, 130.6508, -5.1451\n    test 292 sphericalNvector.Cartesian 'trilaterate3d2': 119.9999, 129.9999, 30.0019\n    test 293 pygeodesy.vector3d.trilaterate3d2: 2\n    test 294 sphericalNvector.Cartesian 'trilaterate3d2': 24.31229, -2.52045, 1.53649\n    test 295 sphericalNvector.Cartesian 'trilaterate3d2': 24.35062, -2.48109, 1.66673\n    test 296 pygeodesy.vector3d.trilaterate3d2: center1 (Cartesian(22.59, 0.524, 1.2)), center2 (Cartesian(25.475, -6.124, 2.36)), center3 (Cartesian(22.59, 0.524, 1.2)), radius1 (3.851), radius2 (3.875) or radius3 (3.514): 'center1 and center3 near-concentric'\n    test 297 pygeodesy.vector3d.trilaterate3d2: center1 (Cartesian(27.297, -4.953, 1.47)), center2 (Cartesian(25.475, -6.124, 2.36)), center3 (Cartesian(22.59, 0.524, 1.2)), radius1 (0.3851), radius2 (0.3875) or radius3 (3.514): 'center1 and center2 too distant (2.34)'\n    test 298 pygeodesy.vector3d.trilaterate3d2: center1 (Cartesian(0.0, 0.0, 0.0)), center2 (Cartesian(0.0, 9.0, 0.0)), center3 (Cartesian(0.0, -9.0, 0.0)), radius1 (10), radius2 (10) or radius3 (10): 'colinear'\n    test 299 Cartesian.trilaterate3d2: 2\n    test 300 sphericalNvector.Cartesian 'trilaterate3d2': 24.31229, -2.52045, 1.53649\n    test 301 sphericalNvector.Cartesian 'trilaterate3d2': 24.35062, -2.48109, 1.66673\n    test 302 Cartesian.trilaterate3d2: center (Cartesian(22.59, 0.524, 1.2)), center2 (Cartesian(25.475, -6.124, 2.36)), center3 (Cartesian(22.59, 0.524, 1.2)), radius (3.851), radius2 (3.875) or radius3 (3.514): 'center and center3 near-concentric'\n    test 303 Cartesian.trilaterate3d2: center (Cartesian(27.297, -4.953, 1.47)), center2 (Cartesian(25.475, -6.124, 2.36)), center3 (Cartesian(22.59, 0.524, 1.2)), radius (0.3851), radius2 (0.3875) or radius3 (3.514): 'center and center2 too distant (2.34)'\n    test 304 Cartesian.trilaterate3d2: center (Cartesian(0.0, 0.0, 0.0)), center2 (Cartesian(0.0, 9.0, 0.0)), center3 (Cartesian(0.0, -9.0, 0.0)), radius (10), radius2 (10) or radius3 (10): 'colinear'\n\n    testCartesian(pygeodesy.sphericalTrigonometry, 25.08.31)\n    test 305 sphericalTrigonometry.Cartesian.trilaterate3d2: 2\n    test 306 sphericalTrigonometry.Cartesian 'trilaterate3d2': 119.8958, 130.6508, -5.1451\n    test 307 sphericalTrigonometry.Cartesian 'trilaterate3d2': 119.9999, 129.9999, 30.0019\n    test 308 pygeodesy.vector3d.trilaterate3d2: 2\n    test 309 sphericalTrigonometry.Cartesian 'trilaterate3d2': 24.31229, -2.52045, 1.53649\n    test 310 sphericalTrigonometry.Cartesian 'trilaterate3d2': 24.35062, -2.48109, 1.66673\n    test 311 pygeodesy.vector3d.trilaterate3d2: center1 (Cartesian(22.59, 0.524, 1.2)), center2 (Cartesian(25.475, -6.124, 2.36)), center3 (Cartesian(22.59, 0.524, 1.2)), radius1 (3.851), radius2 (3.875) or radius3 (3.514): 'center1 and center3 near-concentric'\n    test 312 pygeodesy.vector3d.trilaterate3d2: center1 (Cartesian(27.297, -4.953, 1.47)), center2 (Cartesian(25.475, -6.124, 2.36)), center3 (Cartesian(22.59, 0.524, 1.2)), radius1 (0.3851), radius2 (0.3875) or radius3 (3.514): 'center1 and center2 too distant (2.34)'\n    test 313 pygeodesy.vector3d.trilaterate3d2: center1 (Cartesian(0.0, 0.0, 0.0)), center2 (Cartesian(0.0, 9.0, 0.0)), center3 (Cartesian(0.0, -9.0, 0.0)), radius1 (10), radius2 (10) or radius3 (10): 'colinear'\n    test 314 Cartesian.trilaterate3d2: 2\n    test 315 sphericalTrigonometry.Cartesian 'trilaterate3d2': 24.31229, -2.52045, 1.53649\n    test 316 sphericalTrigonometry.Cartesian 'trilaterate3d2': 24.35062, -2.48109, 1.66673\n    test 317 Cartesian.trilaterate3d2: center (Cartesian(22.59, 0.524, 1.2)), center2 (Cartesian(25.475, -6.124, 2.36)), center3 (Cartesian(22.59, 0.524, 1.2)), radius (3.851), radius2 (3.875) or radius3 (3.514): 'center and center3 near-concentric'\n    test 318 Cartesian.trilaterate3d2: center (Cartesian(27.297, -4.953, 1.47)), center2 (Cartesian(25.475, -6.124, 2.36)), center3 (Cartesian(22.59, 0.524, 1.2)), radius (0.3851), radius2 (0.3875) or radius3 (3.514): 'center and center2 too distant (2.34)'\n    test 319 Cartesian.trilaterate3d2: center (Cartesian(0.0, 0.0, 0.0)), center2 (Cartesian(0.0, 9.0, 0.0)), center3 (Cartesian(0.0, -9.0, 0.0)), radius (10), radius2 (10) or radius3 (10): 'colinear'\n\n    testCartesian(pygeodesy.ellipsoidalNvector, 25.05.12)\n    test 320 ellipsoidalNvector.Cartesian.trilaterate3d2: 2\n    test 321 ellipsoidalNvector.Cartesian 'trilaterate3d2': 119.8958, 130.6508, -5.1451\n    test 322 ellipsoidalNvector.Cartesian 'trilaterate3d2': 119.9999, 129.9999, 30.0019\n    test 323 pygeodesy.vector3d.trilaterate3d2: 2\n    test 324 ellipsoidalNvector.Cartesian 'trilaterate3d2': 24.31229, -2.52045, 1.53649\n    test 325 ellipsoidalNvector.Cartesian 'trilaterate3d2': 24.35062, -2.48109, 1.66673\n    test 326 pygeodesy.vector3d.trilaterate3d2: center1 (Cartesian(22.59, 0.524, 1.2)), center2 (Cartesian(25.475, -6.124, 2.36)), center3 (Cartesian(22.59, 0.524, 1.2)), radius1 (3.851), radius2 (3.875) or radius3 (3.514): 'center1 and center3 near-concentric'\n    test 327 pygeodesy.vector3d.trilaterate3d2: center1 (Cartesian(27.297, -4.953, 1.47)), center2 (Cartesian(25.475, -6.124, 2.36)), center3 (Cartesian(22.59, 0.524, 1.2)), radius1 (0.3851), radius2 (0.3875) or radius3 (3.514): 'center1 and center2 too distant (2.34)'\n    test 328 pygeodesy.vector3d.trilaterate3d2: center1 (Cartesian(0.0, 0.0, 0.0)), center2 (Cartesian(0.0, 9.0, 0.0)), center3 (Cartesian(0.0, -9.0, 0.0)), radius1 (10), radius2 (10) or radius3 (10): 'colinear'\n    test 329 Cartesian.trilaterate3d2: 2\n    test 330 ellipsoidalNvector.Cartesian 'trilaterate3d2': 24.31229, -2.52045, 1.53649\n    test 331 ellipsoidalNvector.Cartesian 'trilaterate3d2': 24.35062, -2.48109, 1.66673\n    test 332 Cartesian.trilaterate3d2: center (Cartesian(22.59, 0.524, 1.2)), center2 (Cartesian(25.475, -6.124, 2.36)), center3 (Cartesian(22.59, 0.524, 1.2)), radius (3.851), radius2 (3.875) or radius3 (3.514): 'center and center3 near-concentric'\n    test 333 Cartesian.trilaterate3d2: center (Cartesian(27.297, -4.953, 1.47)), center2 (Cartesian(25.475, -6.124, 2.36)), center3 (Cartesian(22.59, 0.524, 1.2)), radius (0.3851), radius2 (0.3875) or radius3 (3.514): 'center and center2 too distant (2.34)'\n    test 334 Cartesian.trilaterate3d2: center (Cartesian(0.0, 0.0, 0.0)), center2 (Cartesian(0.0, 9.0, 0.0)), center3 (Cartesian(0.0, -9.0, 0.0)), radius (10), radius2 (10) or radius3 (10): 'colinear'\n\n    testCartesian(pygeodesy.ellipsoidalVincenty, 25.05.26)\n    test 335 ellipsoidalVincenty.Cartesian.trilaterate3d2: 2\n    test 336 ellipsoidalVincenty.Cartesian 'trilaterate3d2': 119.8958, 130.6508, -5.1451\n    test 337 ellipsoidalVincenty.Cartesian 'trilaterate3d2': 119.9999, 129.9999, 30.0019\n    test 338 pygeodesy.vector3d.trilaterate3d2: 2\n    test 339 ellipsoidalVincenty.Cartesian 'trilaterate3d2': 24.31229, -2.52045, 1.53649\n    test 340 ellipsoidalVincenty.Cartesian 'trilaterate3d2': 24.35062, -2.48109, 1.66673\n    test 341 pygeodesy.vector3d.trilaterate3d2: center1 (Cartesian(22.59, 0.524, 1.2)), center2 (Cartesian(25.475, -6.124, 2.36)), center3 (Cartesian(22.59, 0.524, 1.2)), radius1 (3.851), radius2 (3.875) or radius3 (3.514): 'center1 and center3 near-concentric'\n    test 342 pygeodesy.vector3d.trilaterate3d2: center1 (Cartesian(27.297, -4.953, 1.47)), center2 (Cartesian(25.475, -6.124, 2.36)), center3 (Cartesian(22.59, 0.524, 1.2)), radius1 (0.3851), radius2 (0.3875) or radius3 (3.514): 'center1 and center2 too distant (2.34)'\n    test 343 pygeodesy.vector3d.trilaterate3d2: center1 (Cartesian(0.0, 0.0, 0.0)), center2 (Cartesian(0.0, 9.0, 0.0)), center3 (Cartesian(0.0, -9.0, 0.0)), radius1 (10), radius2 (10) or radius3 (10): 'colinear'\n    test 344 Cartesian.trilaterate3d2: 2\n    test 345 ellipsoidalVincenty.Cartesian 'trilaterate3d2': 24.31229, -2.52045, 1.53649\n    test 346 ellipsoidalVincenty.Cartesian 'trilaterate3d2': 24.35062, -2.48109, 1.66673\n    test 347 Cartesian.trilaterate3d2: center (Cartesian(22.59, 0.524, 1.2)), center2 (Cartesian(25.475, -6.124, 2.36)), center3 (Cartesian(22.59, 0.524, 1.2)), radius (3.851), radius2 (3.875) or radius3 (3.514): 'center and center3 near-concentric'\n    test 348 Cartesian.trilaterate3d2: center (Cartesian(27.297, -4.953, 1.47)), center2 (Cartesian(25.475, -6.124, 2.36)), center3 (Cartesian(22.59, 0.524, 1.2)), radius (0.3851), radius2 (0.3875) or radius3 (3.514): 'center and center2 too distant (2.34)'\n    test 349 Cartesian.trilaterate3d2: center (Cartesian(0.0, 0.0, 0.0)), center2 (Cartesian(0.0, 9.0, 0.0)), center3 (Cartesian(0.0, -9.0, 0.0)), radius (10), radius2 (10) or radius3 (10): 'colinear'\n\n    testCartesian(pygeodesy.ellipsoidalKarney, 25.05.27)\n    test 350 ellipsoidalKarney.Cartesian.trilaterate3d2: 2\n    test 351 ellipsoidalKarney.Cartesian 'trilaterate3d2': 119.8958, 130.6508, -5.1451\n    test 352 ellipsoidalKarney.Cartesian 'trilaterate3d2': 119.9999, 129.9999, 30.0019\n    test 353 pygeodesy.vector3d.trilaterate3d2: 2\n    test 354 ellipsoidalKarney.Cartesian 'trilaterate3d2': 24.31229, -2.52045, 1.53649\n    test 355 ellipsoidalKarney.Cartesian 'trilaterate3d2': 24.35062, -2.48109, 1.66673\n    test 356 pygeodesy.vector3d.trilaterate3d2: center1 (Cartesian(22.59, 0.524, 1.2)), center2 (Cartesian(25.475, -6.124, 2.36)), center3 (Cartesian(22.59, 0.524, 1.2)), radius1 (3.851), radius2 (3.875) or radius3 (3.514): 'center1 and center3 near-concentric'\n    test 357 pygeodesy.vector3d.trilaterate3d2: center1 (Cartesian(27.297, -4.953, 1.47)), center2 (Cartesian(25.475, -6.124, 2.36)), center3 (Cartesian(22.59, 0.524, 1.2)), radius1 (0.3851), radius2 (0.3875) or radius3 (3.514): 'center1 and center2 too distant (2.34)'\n    test 358 pygeodesy.vector3d.trilaterate3d2: center1 (Cartesian(0.0, 0.0, 0.0)), center2 (Cartesian(0.0, 9.0, 0.0)), center3 (Cartesian(0.0, -9.0, 0.0)), radius1 (10), radius2 (10) or radius3 (10): 'colinear'\n    test 359 Cartesian.trilaterate3d2: 2\n    test 360 ellipsoidalKarney.Cartesian 'trilaterate3d2': 24.31229, -2.52045, 1.53649\n    test 361 ellipsoidalKarney.Cartesian 'trilaterate3d2': 24.35062, -2.48109, 1.66673\n    test 362 Cartesian.trilaterate3d2: center (Cartesian(22.59, 0.524, 1.2)), center2 (Cartesian(25.475, -6.124, 2.36)), center3 (Cartesian(22.59, 0.524, 1.2)), radius (3.851), radius2 (3.875) or radius3 (3.514): 'center and center3 near-concentric'\n    test 363 Cartesian.trilaterate3d2: center (Cartesian(27.297, -4.953, 1.47)), center2 (Cartesian(25.475, -6.124, 2.36)), center3 (Cartesian(22.59, 0.524, 1.2)), radius (0.3851), radius2 (0.3875) or radius3 (3.514): 'center and center2 too distant (2.34)'\n    test 364 Cartesian.trilaterate3d2: center (Cartesian(0.0, 0.0, 0.0)), center2 (Cartesian(0.0, 9.0, 0.0)), center3 (Cartesian(0.0, -9.0, 0.0)), radius (10), radius2 (10) or radius3 (10): 'colinear'\n\n    testCartesian(pygeodesy.ellipsoidalExact, 25.08.28)\n    test 365 ellipsoidalExact.Cartesian.trilaterate3d2: 2\n    test 366 ellipsoidalExact.Cartesian 'trilaterate3d2': 119.8958, 130.6508, -5.1451\n    test 367 ellipsoidalExact.Cartesian 'trilaterate3d2': 119.9999, 129.9999, 30.0019\n    test 368 pygeodesy.vector3d.trilaterate3d2: 2\n    test 369 ellipsoidalExact.Cartesian 'trilaterate3d2': 24.31229, -2.52045, 1.53649\n    test 370 ellipsoidalExact.Cartesian 'trilaterate3d2': 24.35062, -2.48109, 1.66673\n    test 371 pygeodesy.vector3d.trilaterate3d2: center1 (Cartesian(22.59, 0.524, 1.2)), center2 (Cartesian(25.475, -6.124, 2.36)), center3 (Cartesian(22.59, 0.524, 1.2)), radius1 (3.851), radius2 (3.875) or radius3 (3.514): 'center1 and center3 near-concentric'\n    test 372 pygeodesy.vector3d.trilaterate3d2: center1 (Cartesian(27.297, -4.953, 1.47)), center2 (Cartesian(25.475, -6.124, 2.36)), center3 (Cartesian(22.59, 0.524, 1.2)), radius1 (0.3851), radius2 (0.3875) or radius3 (3.514): 'center1 and center2 too distant (2.34)'\n    test 373 pygeodesy.vector3d.trilaterate3d2: center1 (Cartesian(0.0, 0.0, 0.0)), center2 (Cartesian(0.0, 9.0, 0.0)), center3 (Cartesian(0.0, -9.0, 0.0)), radius1 (10), radius2 (10) or radius3 (10): 'colinear'\n    test 374 Cartesian.trilaterate3d2: 2\n    test 375 ellipsoidalExact.Cartesian 'trilaterate3d2': 24.31229, -2.52045, 1.53649\n    test 376 ellipsoidalExact.Cartesian 'trilaterate3d2': 24.35062, -2.48109, 1.66673\n    test 377 Cartesian.trilaterate3d2: center (Cartesian(22.59, 0.524, 1.2)), center2 (Cartesian(25.475, -6.124, 2.36)), center3 (Cartesian(22.59, 0.524, 1.2)), radius (3.851), radius2 (3.875) or radius3 (3.514): 'center and center3 near-concentric'\n    test 378 Cartesian.trilaterate3d2: center (Cartesian(27.297, -4.953, 1.47)), center2 (Cartesian(25.475, -6.124, 2.36)), center3 (Cartesian(22.59, 0.524, 1.2)), radius (0.3851), radius2 (0.3875) or radius3 (3.514): 'center and center2 too distant (2.34)'\n    test 379 Cartesian.trilaterate3d2: center (Cartesian(0.0, 0.0, 0.0)), center2 (Cartesian(0.0, 9.0, 0.0)), center3 (Cartesian(0.0, -9.0, 0.0)), radius (10), radius2 (10) or radius3 (10): 'colinear'\n\n    testCartesianBase(pygeodesy.cartesianBase, 26.01.06)\n    test 380 cartesianBase.CartesianBase.trilaterate3d2: 2\n    test 381 cartesianBase.CartesianBase 'trilaterate3d2': 119.8958, 130.6508, -5.1451\n    test 382 cartesianBase.CartesianBase 'trilaterate3d2': 119.9999, 129.9999, 30.0019\n    test 383 pygeodesy.vector3d.trilaterate3d2: 2\n    test 384 cartesianBase.CartesianBase 'trilaterate3d2': 24.31229, -2.52045, 1.53649\n    test 385 cartesianBase.CartesianBase 'trilaterate3d2': 24.35062, -2.48109, 1.66673\n    test 386 pygeodesy.vector3d.trilaterate3d2: center1 (CartesianBase(22.59, 0.524, 1.2)), center2 (CartesianBase(25.475, -6.124, 2.36)), center3 (CartesianBase(22.59, 0.524, 1.2)), radius1 (3.851), radius2 (3.875) or radius3 (3.514): 'center1 and center3 near-concentric'\n    test 387 pygeodesy.vector3d.trilaterate3d2: center1 (CartesianBase(27.297, -4.953, 1.47)), center2 (CartesianBase(25.475, -6.124, 2.36)), center3 (CartesianBase(22.59, 0.524, 1.2)), radius1 (0.3851), radius2 (0.3875) or radius3 (3.514): 'center1 and center2 too distant (2.34)'\n    test 388 pygeodesy.vector3d.trilaterate3d2: center1 (CartesianBase(0.0, 0.0, 0.0)), center2 (CartesianBase(0.0, 9.0, 0.0)), center3 (CartesianBase(0.0, -9.0, 0.0)), radius1 (10), radius2 (10) or radius3 (10): 'colinear'\n    test 389 CartesianBase.trilaterate3d2: 2\n    test 390 cartesianBase.CartesianBase 'trilaterate3d2': 24.31229, -2.52045, 1.53649\n    test 391 cartesianBase.CartesianBase 'trilaterate3d2': 24.35062, -2.48109, 1.66673\n    test 392 CartesianBase.trilaterate3d2: center (CartesianBase(22.59, 0.524, 1.2)), center2 (CartesianBase(25.475, -6.124, 2.36)), center3 (CartesianBase(22.59, 0.524, 1.2)), radius (3.851), radius2 (3.875) or radius3 (3.514): 'center and center3 near-concentric'\n    test 393 CartesianBase.trilaterate3d2: center (CartesianBase(27.297, -4.953, 1.47)), center2 (CartesianBase(25.475, -6.124, 2.36)), center3 (CartesianBase(22.59, 0.524, 1.2)), radius (0.3851), radius2 (0.3875) or radius3 (3.514): 'center and center2 too distant (2.34)'\n    test 394 CartesianBase.trilaterate3d2: center (CartesianBase(0.0, 0.0, 0.0)), center2 (CartesianBase(0.0, 9.0, 0.0)), center3 (CartesianBase(0.0, -9.0, 0.0)), radius (10), radius2 (10) or radius3 (10): 'colinear'\n\n    testNvectorBase(pygeodesy.nvectorBase, 25.08.18)\n    test 395 nvectorBase.NvectorBase.trilaterate3d2: 2\n    test 396 nvectorBase.NvectorBase 'trilaterate3d2': 119.8958, 130.6508, -5.1451\n    test 397 nvectorBase.NvectorBase 'trilaterate3d2': 119.9999, 129.9999, 30.0019\n    test 398 pygeodesy.vector3d.trilaterate3d2: 2\n    test 399 nvectorBase.NvectorBase 'trilaterate3d2': 24.31229, -2.52045, 1.53649\n    test 400 nvectorBase.NvectorBase 'trilaterate3d2': 24.35062, -2.48109, 1.66673\n    test 401 pygeodesy.vector3d.trilaterate3d2: center1 (NvectorBase(22.59, 0.524, 1.2)), center2 (NvectorBase(25.475, -6.124, 2.36)), center3 (NvectorBase(22.59, 0.524, 1.2)), radius1 (3.851), radius2 (3.875) or radius3 (3.514): 'center1 and center3 near-concentric'\n    test 402 pygeodesy.vector3d.trilaterate3d2: center1 (NvectorBase(27.297, -4.953, 1.47)), center2 (NvectorBase(25.475, -6.124, 2.36)), center3 (NvectorBase(22.59, 0.524, 1.2)), radius1 (0.3851), radius2 (0.3875) or radius3 (3.514): 'center1 and center2 too distant (2.34)'\n    test 403 pygeodesy.vector3d.trilaterate3d2: center1 (NvectorBase(0.0, 0.0, 0.0)), center2 (NvectorBase(0.0, 9.0, 0.0)), center3 (NvectorBase(0.0, -9.0, 0.0)), radius1 (10), radius2 (10) or radius3 (10): 'colinear'\n    test 404 NvectorBase.trilaterate3d2: 2\n    test 405 nvectorBase.NvectorBase 'trilaterate3d2': 24.31229, -2.52045, 1.53649\n    test 406 nvectorBase.NvectorBase 'trilaterate3d2': 24.35062, -2.48109, 1.66673\n    test 407 NvectorBase.trilaterate3d2: center (NvectorBase(22.59, 0.524, 1.2)), center2 (NvectorBase(25.475, -6.124, 2.36)), center3 (NvectorBase(22.59, 0.524, 1.2)), radius (3.851), radius2 (3.875) or radius3 (3.514): 'center and center3 near-concentric'\n    test 408 NvectorBase.trilaterate3d2: center (NvectorBase(27.297, -4.953, 1.47)), center2 (NvectorBase(25.475, -6.124, 2.36)), center3 (NvectorBase(22.59, 0.524, 1.2)), radius (0.3851), radius2 (0.3875) or radius3 (3.514): 'center and center2 too distant (2.34)'\n    test 409 NvectorBase.trilaterate3d2: center (NvectorBase(0.0, 0.0, 0.0)), center2 (NvectorBase(0.0, 9.0, 0.0)), center3 (NvectorBase(0.0, -9.0, 0.0)), radius (10), radius2 (10) or radius3 (10): 'colinear'\n\n    testVector3d(pygeodesy.vector2d, 26.02.27)\n    test 410 vector3d.Vector3d.trilaterate3d2: 2\n    test 411 vector3d.Vector3d 'trilaterate3d2': 119.8958, 130.6508, -5.1451\n    test 412 vector3d.Vector3d 'trilaterate3d2': 119.9999, 129.9999, 30.0019\n    test 413 pygeodesy.vector3d.trilaterate3d2: 2\n    test 414 vector3d.Vector3d 'trilaterate3d2': 24.31229, -2.52045, 1.53649\n    test 415 vector3d.Vector3d 'trilaterate3d2': 24.35062, -2.48109, 1.66673\n    test 416 pygeodesy.vector3d.trilaterate3d2: center1 (Vector3d(22.59, 0.524, 1.2)), center2 (Vector3d(25.475, -6.124, 2.36)), center3 (Vector3d(22.59, 0.524, 1.2)), radius1 (3.851), radius2 (3.875) or radius3 (3.514): 'center1 and center3 near-concentric'\n    test 417 pygeodesy.vector3d.trilaterate3d2: center1 (Vector3d(27.297, -4.953, 1.47)), center2 (Vector3d(25.475, -6.124, 2.36)), center3 (Vector3d(22.59, 0.524, 1.2)), radius1 (0.3851), radius2 (0.3875) or radius3 (3.514): 'center1 and center2 too distant (2.34)'\n    test 418 pygeodesy.vector3d.trilaterate3d2: center1 (Vector3d(0.0, 0.0, 0.0)), center2 (Vector3d(0.0, 9.0, 0.0)), center3 (Vector3d(0.0, -9.0, 0.0)), radius1 (10), radius2 (10) or radius3 (10): 'colinear'\n    test 419 Vector3d.trilaterate3d2: 2\n    test 420 vector3d.Vector3d 'trilaterate3d2': 24.31229, -2.52045, 1.53649\n    test 421 vector3d.Vector3d 'trilaterate3d2': 24.35062, -2.48109, 1.66673\n    test 422 Vector3d.trilaterate3d2: center (Vector3d(22.59, 0.524, 1.2)), center2 (Vector3d(25.475, -6.124, 2.36)), center3 (Vector3d(22.59, 0.524, 1.2)), radius (3.851), radius2 (3.875) or radius3 (3.514): 'center and center3 near-concentric'\n    test 423 Vector3d.trilaterate3d2: center (Vector3d(27.297, -4.953, 1.47)), center2 (Vector3d(25.475, -6.124, 2.36)), center3 (Vector3d(22.59, 0.524, 1.2)), radius (0.3851), radius2 (0.3875) or radius3 (3.514): 'center and center2 too distant (2.34)'\n    test 424 Vector3d.trilaterate3d2: center (Vector3d(0.0, 0.0, 0.0)), center2 (Vector3d(0.0, 9.0, 0.0)), center3 (Vector3d(0.0, -9.0, 0.0)), radius (10), radius2 (10) or radius3 (10): 'colinear'\n\n    testTrilaterate2d2(pygeodesy.vector2d, 26.02.27)\n    test 425 trilaterate2d2: (2.0, 3.0)\n    test 426 trilaterate2d2: 'delta (6.39335377017e-06), radius1 (1.0), distance (1.00000639335) and trilaterate2d2(x=1.999994, y=3.000006)': exceeds eps (2.22045e-16)\n    test 427 trilaterate2d2: (-500.0, 250.0)\n    test 428 meeus2: 2.236, 3.0, 2.0, 0.0\n    test 429 meeus2: (3.0, 2.0, 0)\n    test 430 circum3: 2.2361\n    test 431 circum3: (3.0, 2.0, 0)\n    test 432 circum3: None\n    test 433 circum4_: 2.2361\n    test 434 circum4_: (3.0, 2.0, 0.0)  FAILED, KNOWN, expected (3.0, 2.0, 0)\n    test 435 circum4_: 3\n    test 436 circum4_: ()\n    test 437 radii11: Radii11Tuple(rA=2.236068, rB=0.92621, rC=2.236068, cR=2.236068, rIn=0.92621, riS=0.24193, roS=INF, a=3.162278, b=4.472136, c=3.162278, s=5.398346)\n    test 438 circin6: Circin6Tuple(radius=0.92621, center=Vector3d(2.58579, 2.82843, 0.0), deltas=None, cA=Vector3d(2.87868, 3.70711, 0.0), cB=Vector3d(3.0, 2.0, 0.0), cC=Vector3d(1.70711, 3.12132, 0.0))\n    test 439 soddy4: Soddy4Tuple(radius=0.24193, center=Vector3d(2.52241, 2.95518, 0), deltas=None, outer=INF)\n\n    testTrilaterate3d2(pygeodesy.vector2d, 26.02.27)\n    test 440 pygeodesy.vector2d.trilaterate3d2: center1 (Vector3d(-500.0, -200.0, 0.0)), center2 (Vector3d(100.0, -100.0, 0.0)), center3 (Vector3d(500.0, 100.0, 0.0)), radius1 (450.0), radius2 (694.6221994724903) or radius3 (1011.1874208078342): 'no intersection'\n    test 441 pygeodesy.vector2d.trilaterate3d2: 2\n    test 442 vector3d.Vector3d 'trilaterate3d2': -500.0, 250.0, -0.01311  FAILED, KNOWN, expected -500.0, 250.0, 0.0\n    test 443 vector3d.Vector3d 'trilaterate3d2': -500.0, 250.0, 0.01311  FAILED, KNOWN, expected -500.0, 250.0, 0.0\n    test 444 meeus2: 1.50\n    test 445 meeus2: None\n    test 446 meeus2: -0.000000033, 0.5, 0.000000033  FAILED, KNOWN, expected 0.0, 0.5, 0.0\n    test 447 meeus2: 0.000000033, 0.5, -0.000000033  FAILED, KNOWN, expected 0.0, 0.5, 0.0\n    test 448 circum3: 1.50\n    test 449 circum3: 0.0, 0.5, -0.0  FAILED, KNOWN, expected 0.0, 0.5, 0.0\n    test 450 circum3: None\n    test 451 circum4_: 1.50\n    test 452 circum4_: 0.0, 0.5, 0.0\n    test 453 circum4_: 3\n    test 454 circum4_: ()\n    test 455 radii11: Radii11Tuple(rA=1.414214, rB=1.035276, rC=1.414214, cR=1.5, rIn=0.732051, riS=0.195611, roS=INF, a=2.44949, b=2.828427, c=2.44949, s=3.863703)\n    test 456 circin6: Circin6Tuple(radius=0.732051, center=Vector3d(-0.0, 0.73205, -0.0), deltas=None, cA=Vector3d(0.42265, 1.1547, 0.42265), cB=Vector3d(0.0, 0.0, 0.0), cC=Vector3d(-0.42265, 1.1547, -0.42265))\n    test 457 soddy4: Soddy4Tuple(radius=0.195611, center=Vector3d(0.0, 0.76911, -0.0), deltas=None, outer=INF)\n\n    testIntersection3d3(pygeodesy.vector3d, 25.05.07)\n    test 458 (30, 17): (Vector3d(30.30584, 16.75258, 0.0), 0, 0)\n    test 459 (-1,  3): (Vector3d(-1.0429, 2.92225, 0.0), -1, -2)\n    test 460 (65, 32): (Vector3d(64.86667, 32.0, 0.0), 1, -2)\n    test 461 (-2, 17): <class 'pygeodesy.errors.IntersectionError'>\n    test 462 (49, 25): (Vector3d(49.0, 25.0, 0.0), 0, 0)\n\n    test 463 at 0: (0.0, 50.0, 0.0)\n    test 464 at 3: (2.6168, 49.93148, 0.0)\n    test 465 at 6: (5.22642, 49.72609, 0.0)\n    test 466 at 9: (7.82172, 49.38442, 0.0)\n    test 467 at 12: (10.39558, 48.90738, 0.0)\n    test 468 at 15: (12.94095, 48.29629, 0.0)\n    test 469 at 18: (15.45085, 47.55283, 0.0)\n    test 470 at 21: (17.9184, 46.67902, 0.0)\n    test 471 at 24: (20.33683, 45.67727, 0.0)\n    test 472 at 27: (22.69952, 44.55033, 0.0)\n    test 473 at 30: (25.0, 43.30127, 0.0)\n    test 474 at 33: (27.23195, 41.93353, 0.0)\n    test 475 at 36: (29.38926, 40.45085, 0.0)\n    test 476 at 39: (31.46602, 38.8573, 0.0)\n    test 477 at 42: (33.45653, 37.15724, 0.0)\n    test 478 at 45: (35.35534, 35.35534, 0.0)\n    test 479 at 48: (37.15724, 33.45653, 0.0)\n    test 480 at 51: (38.8573, 31.46602, 0.0)\n    test 481 at 54: (40.45085, 29.38926, 0.0)\n    test 482 at 57: (41.93353, 27.23195, 0.0)\n    test 483 at 60: (43.30127, 25.0, 0.0)\n    test 484 at 63: (44.55033, 22.69952, 0.0)\n    test 485 at 66: (45.67727, 20.33683, 0.0)\n    test 486 at 69: (46.67902, 17.9184, 0.0)\n    test 487 at 72: (47.55283, 15.45085, 0.0)\n    test 488 at 75: (48.29629, 12.94095, 0.0)\n    test 489 at 78: (48.90738, 10.39558, 0.0)\n    test 490 at 81: (49.38442, 7.82172, 0.0)\n    test 491 at 84: (49.72609, 5.22642, 0.0)\n    test 492 at 87: (49.93148, 2.6168, 0.0)\n    test 493 at 90: (50.0, 0.0, 0.0)\n    test 494 at 93: (49.93148, -2.6168, 0.0)\n    test 495 at 96: (49.72609, -5.22642, 0.0)\n    test 496 at 99: (49.38442, -7.82172, 0.0)\n    test 497 at 102: (48.90738, -10.39558, 0.0)\n    test 498 at 105: (48.29629, -12.94095, 0.0)\n    test 499 at 108: (47.55283, -15.45085, 0.0)\n    test 500 at 111: (46.67902, -17.9184, 0.0)\n    test 501 at 114: (45.67727, -20.33683, 0.0)\n    test 502 at 117: (44.55033, -22.69952, 0.0)\n    test 503 at 120: (43.30127, -25.0, 0.0)\n    test 504 at 123: (41.93353, -27.23195, 0.0)\n    test 505 at 126: (40.45085, -29.38926, 0.0)\n    test 506 at 129: (38.8573, -31.46602, 0.0)\n    test 507 at 132: (37.15724, -33.45653, 0.0)\n    test 508 at 135: (35.35534, -35.35534, 0.0)\n    test 509 at 138: (33.45653, -37.15724, 0.0)\n    test 510 at 141: (31.46602, -38.8573, 0.0)\n    test 511 at 144: (29.38926, -40.45085, 0.0)\n    test 512 at 147: (27.23195, -41.93353, 0.0)\n    test 513 at 150: (25.0, -43.30127, 0.0)\n    test 514 at 153: (22.69952, -44.55033, 0.0)\n    test 515 at 156: (20.33683, -45.67727, 0.0)\n    test 516 at 159: (17.9184, -46.67902, 0.0)\n    test 517 at 162: (15.45085, -47.55283, 0.0)\n    test 518 at 165: (12.94095, -48.29629, 0.0)\n    test 519 at 168: (10.39558, -48.90738, 0.0)\n    test 520 at 171: (7.82172, -49.38442, 0.0)\n    test 521 at 174: (5.22642, -49.72609, 0.0)\n    test 522 at 177: (2.6168, -49.93148, 0.0)\n    test 523 at 180: (0.0, -50.0, 0.0)\n    test 524 at 183: (-2.6168, -49.93148, 0.0)\n    test 525 at 186: (-5.22642, -49.72609, 0.0)\n    test 526 at 189: (-7.82172, -49.38442, 0.0)\n    test 527 at 192: (-10.39558, -48.90738, 0.0)\n    test 528 at 195: (-12.94095, -48.29629, 0.0)\n    test 529 at 198: (-15.45085, -47.55283, 0.0)\n    test 530 at 201: (-17.9184, -46.67902, 0.0)\n    test 531 at 204: (-20.33683, -45.67727, 0.0)\n    test 532 at 207: (-22.69952, -44.55033, 0.0)\n    test 533 at 210: (-25.0, -43.30127, 0.0)\n    test 534 at 213: (-27.23195, -41.93353, 0.0)\n    test 535 at 216: (-29.38926, -40.45085, 0.0)\n    test 536 at 219: (-31.46602, -38.8573, 0.0)\n    test 537 at 222: (-33.45653, -37.15724, 0.0)\n    test 538 at 225: (-35.35534, -35.35534, 0.0)\n    test 539 at 228: (-37.15724, -33.45653, 0.0)\n    test 540 at 231: (-38.8573, -31.46602, 0.0)\n    test 541 at 234: (-40.45085, -29.38926, 0.0)\n    test 542 at 237: (-41.93353, -27.23195, 0.0)\n    test 543 at 240: (-43.30127, -25.0, 0.0)\n    test 544 at 243: (-44.55033, -22.69952, 0.0)\n    test 545 at 246: (-45.67727, -20.33683, 0.0)\n    test 546 at 249: (-46.67902, -17.9184, 0.0)\n    test 547 at 252: (-47.55283, -15.45085, 0.0)\n    test 548 at 255: (-48.29629, -12.94095, 0.0)\n    test 549 at 258: (-48.90738, -10.39558, 0.0)\n    test 550 at 261: (-49.38442, -7.82172, 0.0)\n    test 551 at 264: (-49.72609, -5.22642, 0.0)\n    test 552 at 267: (-49.93148, -2.6168, 0.0)\n    test 553 at 270: (-50.0, 0.0, 0.0)\n    test 554 at 273: (-49.93148, 2.6168, 0.0)\n    test 555 at 276: (-49.72609, 5.22642, 0.0)\n    test 556 at 279: (-49.38442, 7.82172, 0.0)\n    test 557 at 282: (-48.90738, 10.39558, 0.0)\n    test 558 at 285: (-48.29629, 12.94095, 0.0)\n    test 559 at 288: (-47.55283, 15.45085, 0.0)\n    test 560 at 291: (-46.67902, 17.9184, 0.0)\n    test 561 at 294: (-45.67727, 20.33683, 0.0)\n    test 562 at 297: (-44.55033, 22.69952, 0.0)\n    test 563 at 300: (-43.30127, 25.0, 0.0)\n    test 564 at 303: (-41.93353, 27.23195, 0.0)\n    test 565 at 306: (-40.45085, 29.38926, 0.0)\n    test 566 at 309: (-38.8573, 31.46602, 0.0)\n    test 567 at 312: (-37.15724, 33.45653, 0.0)\n    test 568 at 315: (-35.35534, 35.35534, 0.0)\n    test 569 at 318: (-33.45653, 37.15724, 0.0)\n    test 570 at 321: (-31.46602, 38.8573, 0.0)\n    test 571 at 324: (-29.38926, 40.45085, 0.0)\n    test 572 at 327: (-27.23195, 41.93353, 0.0)\n    test 573 at 330: (-25.0, 43.30127, 0.0)\n    test 574 at 333: (-22.69952, 44.55033, 0.0)\n    test 575 at 336: (-20.33683, 45.67727, 0.0)\n    test 576 at 339: (-17.9184, 46.67902, 0.0)\n    test 577 at 342: (-15.45085, 47.55283, 0.0)\n    test 578 at 345: (-12.94095, 48.29629, 0.0)\n    test 579 at 348: (-10.39558, 48.90738, 0.0)\n    test 580 at 351: (-7.82172, 49.38442, 0.0)\n    test 581 at 354: (-5.22642, 49.72609, 0.0)\n    test 582 at 357: (-2.6168, 49.93148, 0.0)\n    test 583 at 360: (0.0, 50.0, 0.0)\n    test 584 max error: 2.3317285650e-13\n\n    50 of 584 testVectorial.py tests (8.6%) FAILED, incl. 13 KNOWN plus 37 DeprecationWarnings (pygeodesy 26.3.26 Python 3.11.9 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 1.24.2 scipy 1.10.1 Math 2 macOS 26.3.1 isLazy 0 -W  default) 326.637 ms\nrunning /usr/local/bin/p....n3.11 -W default ~/PyGeodesy/test/testWebMercator.py\n\n    testing testWebMercator.py 23.06.12 (module pygeodesy.webmercator 25.05.12)\n    test 1 toWm1: -626172.13571216 6887893.4928338\n    test 2 Wm1.y: 6887893.49283380\n    test 3 copy(<class 'type'>): (<class 'pygeodesy.webmercator.Wm'>, True)\n    test 4 Wm.copy(): (<class 'pygeodesy.webmercator.Wm'>, True)\n    test 5 Wm2: 448251.795 5411932.678\n    test 6 Wm2: 448252 5411933\n    test 7 Wm2: 448251.8 5411932.7\n    test 8 copy(<class 'type'>): (<class 'pygeodesy.webmercator.Wm'>, True)\n    test 9 Wm.copy(): (<class 'pygeodesy.webmercator.Wm'>, True)\n    test 10 Wm2.to2ll: 43.65321741, 4.02671439\n    test 11 Wm2.toLatLon: (43.653217, 4.026714, Datum(name='_Wm', ellipsoid=Ellipsoids._Wm, transform=Transforms.Identity))\n    test 12 Wm2.toLatLon: 43.653217°N, 004.026714°E\n    test 13 Wm2.toLatLon: 43°39′11.58″N, 004°01′36.17″E\n    test 14 toWm1: 448251.795 5411932.678\n    test 15 toWm2: 448252 5411933\n    test 16 toWm3: [x:448252, y:5411933, radius:6378137]\n    test 17 copy: 448251.795 5411932.678\n    test 18 parse: 448251.795 5411932.678\n    test 19 parse: 448251.795 5411932.678\n    test 20 parse: [x:448251.795, y:5411932.678, radius:6378137.0]\n    test 21 toWm4: 11549466 1505215\n    test 22 toWm4: 11549465.988273 1505214.929251\n    test 23 toWm4E: 11562388 1496994\n    test 24 toWm4E: 11562388.154378 1496993.698095\n    test 25 toWm: -11169056 2800000\n    test 26 toWm: -11169055.576258 2800000.003136\n    test 27 toWm5E: -11169056 2782367\n    test 28 toWm5E: -11169055.576258 2782367.05923\n    test 29 toWm5: -11156573 2796871\n    test 30 toWm5: -11156573.000041 2796870.713179\n    test 31 Wm6.toLatLon: 24.46358°N, 100.333333°W\n    test 32 Wm6.toLatLon: 24°27′48.89″N, 100°20′00.0″W\n    test 33 Wm6.toLatLonE: 24.299812°N, 100.333333°W\n    test 34 Wm6.toLatLonE: 24°17′59.32″N, 100°20′00.0″W\n    test 35 Wm7.toLatLon: 24.381787°N, 100.333333°W\n    test 36 Wm7.toLatLon: 24°22′54.43″N, 100°20′00.0″W\n    test 37 Wm7.toLatLonE: 24.218566°N, 100.333333°W\n    test 38 Wm7.toLatLonE: 24°13′06.84″N, 100°20′00.0″W\n    test 39 Wm8.toWm: -33878.893, 6693890.382, 6378137.0\n    test 40 Wm8.toWm: [x:-33878.893, y:6693890.382]\n    test 41 Wm8.toWm: -33878.893 6693890.382 6371008.771\n    test 42 Wm8.toWm.x: -33878.893\n    test 43 Wm8.toWm.y: 6693890.382\n    test 44 Wm8.toWm.latlon: 51.408596, -0.304339\n    test 45 Wm8.toWm.philam: 0.897249, -0.005312\n    test 46 Wm8.toLatLon: 51.408596053784°N, 000.304339270785°W\n    test 47 Wm8.toLatLon: 51°24′30.945794″N, 000°18′15.621375″W\n    test 48 Wm9.toLatLon: TypeError\n\n    test 49 toWm(10.0000, 0, earth=R_MA).y: 1118889.97\n    test 50 toWm(20.0000, 0, earth=R_MA).y: 2273030.93\n    test 51 toWm(30.0000, 0, earth=R_MA).y: 3503549.84\n    test 52 toWm(40.0000, 0, earth=R_MA).y: 4865942.28\n    test 53 toWm(50.0000, 0, earth=R_MA).y: 6446275.84\n    test 54 toWm(60.0000, 0, earth=R_MA).y: 8399737.89\n\n    test 55 toWm(10.0003, 0, earth=R_MA).y: 1118921.37\n    test 56 toWm(20.0003, 0, earth=R_MA).y: 2273063.83\n    test 57 toWm(30.0003, 0, earth=R_MA).y: 3503585.55\n    test 58 toWm(40.0003, 0, earth=R_MA).y: 4865982.65\n    test 59 toWm(50.0003, 0, earth=R_MA).y: 6446323.95\n    test 60 toWm(60.0003, 0, earth=R_MA).y: 8399799.73\n\n    test 61 toWm(10.0000, 0, earth=WGS84).y: 1111475.10\n    test 62 toWm(20.0000, 0, earth=WGS84).y: 2258423.65\n    test 63 toWm(30.0000, 0, earth=WGS84).y: 3482189.09\n    test 64 toWm(40.0000, 0, earth=WGS84).y: 4838471.40\n    test 65 toWm(50.0000, 0, earth=WGS84).y: 6413524.59\n    test 66 toWm(60.0000, 0, earth=WGS84).y: 8362698.55\n\n    test 67 toWm(10.0003, 0, earth=WGS84).y: 1111506.30\n    test 68 toWm(20.0003, 0, earth=WGS84).y: 2258456.36\n    test 69 toWm(30.0003, 0, earth=WGS84).y: 3482224.61\n    test 70 toWm(40.0003, 0, earth=WGS84).y: 4838511.61\n    test 71 toWm(50.0003, 0, earth=WGS84).y: 6413572.57\n    test 72 toWm(60.0003, 0, earth=WGS84).y: 8362760.29\n\n    all 72 testWebMercator.py tests passed (pygeodesy 26.3.26 Python 3.11.9 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 1.24.2 scipy 1.10.1 Math 2 macOS 26.3.1 isLazy 0 -W  default) 3.286 ms\nrunning /usr/local/bin/p....n3.11 -W default ~/PyGeodesy/test/testWgrs.py\n\n    testing testWgrs.py 23.03.27 (module pygeodesy.wgrs 25.04.14)\n    test 1 Georef: 'NKLN2444638946'\n    test 2 Georef: Georef('NKLN2444638946')\n    test 3 Georef: NKLN2444638946\n    test 4 Georef.latlon: 57.64911, 10.40744\n    test 5 Georef.toLatLon: LatLon(57°38′56.8″N, 010°24′26.78″E)\n    test 6 codec3: NKLN2444638946\n    test 7 decode3: 57.64911, 10.40744, 6.0\n    test 8 encode: NKLN2444638946\n    test 9 Georef: 'NKLN2444638946H0'\n    test 10 Georef: Georef('NKLN2444638946H0')\n    test 11 Georef: NKLN2444638946H0\n    test 12 Georef.latlon: 57.64911, 10.40744\n    test 13 Georef.precision: 6\n    test 14 Georef.radius: None\n    test 15 Georef: 'GJPJ3424917166'\n    test 16 Georef: Georef('GJPJ3424917166')\n    test 17 Georef: GJPJ3424917166\n    test 18 Georef.latlon: 38.286108, -76.42917\n    test 19 Georef.toLatLon: LatLon(38°17′09.99″N, 076°25′45.01″W)\n    test 20 codec3: GJPJ3424917166\n    test 21 decode3: 38.286108, -76.429175, 6.0\n    test 22 encode: GJPJ3424917166\n    test 23 Georef: 'GJPJ3424917166H0'\n    test 24 Georef: Georef('GJPJ3424917166H0')\n    test 25 Georef: GJPJ3424917166H0\n    test 26 Georef.latlon: 38.286108, -76.42917\n    test 27 Georef.precision: 6\n    test 28 Georef.radius: None\n    test 29 Georef.3Tuple: 38.286108, -76.42917, 0.0\n    test 30 codec3: MKPG1204\n    test 31 decode3: 51.075, -1.7917, 3.0\n    test 32 encode: MKPG1204\n    test 33 codec3: WJKG1503\n    test 34 decode3: 36.0583, 129.2583, 3.0\n    test 35 encode: WJKG1503\n    test 36 codec5: GJPJ4103R5\n    test 37 decode5: 38.0583, -76.3083, 3.0, None, 9260.0\n    test 38 encode: GJPJ4103R5\n    test 39 codec5: GJPJ4103H17\n    test 40 decode5: 38.0583, -76.3083, 3.0, 5181.6, None\n    test 41 encode: GJPJ4103H17\n    test 42 codec5: GJPJ4103R5H17\n    test 43 decode5: 38.0583, -76.3083, 3.0, 5181.6, 9260.0\n    test 44 encode: GJPJ4103R5H17\n    test 45 precision: -1  FAILED, KNOWN, expected 0\n    test 46 resolution: 15°\n    test 47 precision: 0\n    test 48 resolution: 15°\n    test 49 precision: 1\n    test 50 resolution: 1°\n    test 51 precision: 2\n    test 52 resolution: 0.1′\n    test 53 precision: 3\n    test 54 resolution: 0.01′\n    test 55 precision: 4\n    test 56 resolution: 0.001′\n    test 57 precision: 5\n    test 58 resolution: 0.0001′\n    test 59 precision: 6\n    test 60 resolution: 0.00001′\n    test 61 precision: 7\n    test 62 resolution: 0.000001′\n    test 63 precision: 8\n    test 64 resolution: 0.0000001′\n    test 65 precision: 9\n    test 66 resolution: 0.00000001′\n    test 67 precision: 10\n    test 68 resolution: 0.000000001′\n    test 69 precision: 11\n    test 70 resolution: 0.0000000001′\n    test 71 precision: 12  FAILED, KNOWN, expected 11\n    test 72 resolution: 0.0000000001′\n\n    2 of 72 testWgrs.py tests (2.8%) FAILED, ALL KNOWN (pygeodesy 26.3.26 Python 3.11.9 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 1.24.2 scipy 1.10.1 Math 2 macOS 26.3.1 isLazy 0 -W  default) 2.418 ms\n\ntest/run.py /usr/local/bin/p....n3.11 -W default: all 50227 tests OK (pygeodesy 26.3.26 Python 3.11.9 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 1.24.2 scipy 1.10.1 Math 2 macOS 26.3.1 isLazy 0 -W default) 25:54.015 (32.321 tps)\n"
  },
  {
    "path": "testresults/testresults-pygeodesy-26.3.26-Python-3.12.10-64bit-arm64-coverage-7.10.7-geographiclib-2.0....e-2.7-Geod3Solve-2.7-IntersectTool-2.7-RhumbSolve-2.7-macOS-26.3.1-isLazy-3--W-default.txt",
    "content": "test/run.py typical test results (pygeodesy 26.3.26 Python 3.12.10 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 2.1.0 scipy 1.14.1 Math 2 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 isLazy 3 -W default)\nrunning /usr/local/bin/p....n3.12 -W default ~/PyGeodesy/test/testAlbers.py\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.albers by testAlbers.py line 11\n# lazily imported pygeodesy.AlbersError from .albers by testAlbers.py line 11\n# lazily imported pygeodesy.AlbersEqualArea from .albers by testAlbers.py line 11\n# lazily imported pygeodesy.AlbersEqualArea2 from .albers by testAlbers.py line 11\n# lazily imported pygeodesy.AlbersEqualArea4 from .albers by testAlbers.py line 11\n# lazily imported pygeodesy.AlbersEqualAreaCylindrical from .albers by testAlbers.py line 11\n# lazily imported pygeodesy.AlbersEqualAreaNorth from .albers by testAlbers.py line 11\n# lazily imported pygeodesy.AlbersEqualAreaSouth from .albers by testAlbers.py line 11\n# lazily imported pygeodesy.Datums from .datums by testAlbers.py line 11\n# lazily imported pygeodesy.fstr from .streprs by testAlbers.py line 11\n# lazily imported pygeodesy.sincos2d from .utily by testAlbers.py line 11\n\n    testing testAlbers.py 24.12.31 (module pygeodesy.albers 26.02.27) isLazy=3\n    test 1 name: Karney_example\n    test 2 datum: WGS84\n    test 3 ellipsoid: WGS84\n    test 4 lat0: 40.451991337063\n    test 5 scale0: 0.999959500363\n    test 6 equatoradius: 6378137.000000000000\n    test 7 flattening: 0.003352810665\n    test 8 _sign: 1.000000000000\n    test 9 _m02: 0.580681094922\n    test 10 _n0: 0.648810669236\n    test 11 _txi0: 0.848822476849\n    test 12 iteration: 3\n    test 13 ispolar: False\n    test 14 forward: -5675721.76113533, 2516917.91242155, 39.95, -75.17, 311.23285234, 0.99999745  FAILED, KNOWN, expected -5675721.76113534, 2516917.91242155, 39.95, -75.17, 311.23285234, 0.99999745\n    test 15 reverse: -5675721.76113533, 2516917.91242155, 39.95, -75.17, 311.23285234, 0.99999745  FAILED, KNOWN, expected -5675721.76113534, 2516917.91242155, 39.95, -75.17, 311.23285234, 0.99999745\n    test 16 forward: 199089.12574012, -53115.52801838, 39.95, 2.33, 1.51160641, 0.99999745\n    test 17 reverse: 199089.12574012, -53115.52801838, 39.95, -75.17, 1.51160641, 0.99999745  FAILED, KNOWN, expected 199089.12574012, -53115.52801838, 39.95, 2.33, 1.51160641, 0.99999745\n    test 18 reverse: 220000.0, -53000.0, 39.94581132, 2.57463362, 1.67031446, 0.99999808\n    test 19 forward: 220000.0, -53000.0, 39.94581132, 2.57463362, 1.67031446, 0.99999808\n    test 20 reverse: 220000.0, -53000.0, 39.94581132, -74.92536638, 1.67031446, 0.99999808\n    test 21 forward: 220000.0, -53000.0, 39.94581132, 2.57463362, 1.67031446, 0.99999808  FAILED, KNOWN, expected 220000.0, -53000.0, 39.94581132, -74.92536638, 1.67031446, 0.99999808\n\n    testPage292(pygeodesy.albers, 26.02.27)\n    test 22 name: Snyder_p292\n    test 23 datum: NAD27\n    test 24 ellipsoid: Clarke1866\n    test 25 lat0: 37.934543880726\n    test 26 scale0: 0.990309187872\n    test 27 equatoradius: 6378206.400000000373\n    test 28 flattening: 0.003390075304\n    test 29 _sign: 1.000000000000\n    test 30 _m02: 0.623664507732\n    test 31 _n0: 0.614760830736\n    test 32 _txi0: 0.775925617021\n    test 33 iteration: 4\n    test 34 ispolar: False\n    test 35 forward: -6105839.22928149, 2214046.74930275, 35.0, -75.0, 314.78223745, 0.99155461  FAILED, KNOWN, expected -6105839.22928148, 2214046.74930274, 35.0, -75.0, 314.78223745, 0.99155461\n    test 36 reverse: -6105839.22928149, 2214046.74930275, 35.0, -75.0, 314.78223745, 0.99155461  FAILED, KNOWN, expected -6105839.22928148, 2214046.74930274, 35.0, -75.0, 314.78223745, 0.99155461\n    test 37 forward: 1885472.72581347, -119505.66687765, 35.0, 21.0, 12.66097351, 0.99155461  FAILED, KNOWN, expected 1885472.72581347, -119505.66687766, 35.0, 21.0, 12.66097351, 0.99155461\n    test 38 reverse: 1885472.72581347, -119505.66687765, 35.0, -75.0, 12.66097351, 0.99155461  FAILED, KNOWN, expected 1885472.72581347, -119505.66687766, 35.0, 21.0, 12.66097351, 0.99155461\n    test 39 reverse: 1885427.7, 1535925.0, 49.40436665, 25.93001383, 15.63329611, 1.01436109\n    test 40 forward: 1885427.7, 1535925.0, 49.40436665, 25.93001383, 15.63329611, 1.01436109\n    test 41 reverse: 1885427.7, 1535925.0, 49.40436665, -70.06998617, 15.63329611, 1.01436109\n    test 42 forward: 1885427.7, 1535925.0, 49.40436665, 25.93001383, 15.63329611, 1.01436109  FAILED, KNOWN, expected 1885427.7, 1535925.0, 49.40436665, -70.06998617, 15.63329611, 1.01436109\n\n    testTable15(pygeodesy.albers, 26.02.27)\n    test 43 52 k: 1.02863\n    test 44 50 k: 1.01727\n    test 45 45.5 k: 1.00000\n    test 46 45 k: 0.99869\n    test 47 40 k: 0.99097\n    test 48 35 k: 0.99155\n    test 49 30 k: 0.99893\n    test 50 29.5 k: 1.00000\n    test 51 25 k: 1.01222\n    test 52 22 k: 1.02283\n\n    testLats(pygeodesy.albers, 26.02.27)\n    test 53 AlbersEqualArea.toRepr: AlbersEqualArea(45.0, k0=1.0)\n    test 54 AlbersEqualArea.lat0: 45.0\n    test 55 AlbersEqualArea.lat1: 45.0\n    test 56 AlbersEqualArea.lat2: 45.0\n\n    test 57 AlbersEqualArea2.toRepr: AlbersEqualArea2(40.0, 40.0, k1=1.0)\n    test 58 AlbersEqualArea2.lat0: 40.0\n    test 59 AlbersEqualArea2.lat1: 40.0\n    test 60 AlbersEqualArea2.lat2: 40.0\n\n    test 61 AlbersEqualArea4.toRepr: AlbersEqualArea4(30.0, 30.0, k1=1.0)\n    test 62 AlbersEqualArea4.lat0: 30.0\n    test 63 AlbersEqualArea4.lat1: 30.0\n    test 64 AlbersEqualArea4.lat2: 30.0\n\n    test 65 AlbersEqualArea4.toRepr: AlbersEqualArea4(-30.0, -30.0, k1=1.0)\n    test 66 AlbersEqualArea4.lat0: -30.0\n    test 67 AlbersEqualArea4.lat1: -30.0\n    test 68 AlbersEqualArea4.lat2: -30.0\n\n    test 69 AlbersEqualAreaCylindrical.toRepr: AlbersEqualAreaCylindrical(0.0)\n    test 70 AlbersEqualAreaCylindrical.lat0: 0.0\n    test 71 AlbersEqualAreaCylindrical.lat1: 0.0\n    test 72 AlbersEqualAreaCylindrical.lat2: 0.0\n\n    test 73 AlbersEqualAreaNorth.toRepr: AlbersEqualAreaNorth(90.0)\n    test 74 AlbersEqualAreaNorth.lat0: 90.0\n    test 75 AlbersEqualAreaNorth.lat1: 90.0\n    test 76 AlbersEqualAreaNorth.lat2: 90.0\n\n    test 77 AlbersEqualAreaSouth.toRepr: AlbersEqualAreaSouth(-90.0)\n    test 78 AlbersEqualAreaSouth.lat0: -90.0\n    test 79 AlbersEqualAreaSouth.lat1: -90.0\n    test 80 AlbersEqualAreaSouth.lat2: -90.0\n\n# imported pygeodesy.basics into errors.py line 443\n    test 81 error: clat1 (-0.8660254037844386) or clat2 (1.0): negative\n    test 82 error: slat1 (-0.5) or slat2 (0.5): negative\n\n    9 of 82 testAlbers.py tests (11.0%) FAILED, ALL KNOWN (pygeodesy 26.3.26 Python 3.12.10 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 2.1.0 scipy 1.14.1 Math 2 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 isLazy 3 -W  default) 544.547 ms\nrunning /usr/local/bin/p....n3.12 -W default ~/PyGeodesy/test/testAngles.py\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.EPS from .constants by testAngles.py line 11\n# lazily imported pygeodesy.INF from .constants by testAngles.py line 11\n# lazily imported pygeodesy.PI from .constants by testAngles.py line 11\n# lazily imported pygeodesy.Ang from .angles by testAngles.py line 11\n# lazily imported pygeodesy.Deg from .angles by testAngles.py line 11\n# lazily imported pygeodesy.Fsum from .fsums by testAngles.py line 11\n# lazily imported pygeodesy.Lambertian from .angles by testAngles.py line 11\n# lazily imported pygeodesy.Rad from .angles by testAngles.py line 11\n\n    testing testAngles.py 25.12.01 (module pygeodesy.angles 25.12.02) isLazy=3\n    test 1 D: -716.000000\n    test 2 r: -12.496557\n    test 3 n: -2.0\n    test 4 R: -7.160000\n    test 5 d: -410.237781\n    test 6 n: -1.0\n    test 7 D: -713.000000\n    test 8 r: -12.444198\n    test 9 n: -2.0\n    test 10 R: -7.130000\n    test 11 d: -408.518908\n    test 12 n: -1.0\n    test 13 D: -710.000000\n    test 14 r: -12.391838\n    test 15 n: -2.0\n    test 16 R: -7.100000\n    test 17 d: -406.800035\n    test 18 n: -1.0\n    test 19 D: -707.000000\n    test 20 r: -12.339478\n    test 21 n: -2.0\n    test 22 R: -7.070000\n    test 23 d: -405.081161\n    test 24 n: -1.0\n    test 25 D: -704.000000\n    test 26 r: -12.287118\n    test 27 n: -2.0\n    test 28 R: -7.040000\n    test 29 d: -403.362288\n    test 30 n: -1.0\n    test 31 D: -701.000000\n    test 32 r: -12.234758\n    test 33 n: -2.0\n    test 34 R: -7.010000\n    test 35 d: -401.643414\n    test 36 n: -1.0\n    test 37 D: -698.000000\n    test 38 r: -12.182398\n    test 39 n: -2.0\n    test 40 R: -6.980000\n    test 41 d: -399.924541\n    test 42 n: -1.0\n    test 43 D: -695.000000\n    test 44 r: -12.130038\n    test 45 n: -2.0\n    test 46 R: -6.950000\n    test 47 d: -398.205668\n    test 48 n: -1.0\n    test 49 D: -692.000000\n    test 50 r: -12.077678\n    test 51 n: -2.0\n    test 52 R: -6.920000\n    test 53 d: -396.486794\n    test 54 n: -1.0\n    test 55 D: -689.000000\n    test 56 r: -12.025319\n    test 57 n: -2.0\n    test 58 R: -6.890000\n    test 59 d: -394.767921\n    test 60 n: -1.0\n    test 61 D: -686.000000\n    test 62 r: -11.972959\n    test 63 n: -2.0\n    test 64 R: -6.860000\n    test 65 d: -393.049047\n    test 66 n: -1.0\n    test 67 D: -683.000000\n    test 68 r: -11.920599\n    test 69 n: -2.0\n    test 70 R: -6.830000\n    test 71 d: -391.330174\n    test 72 n: -1.0\n    test 73 D: -680.000000\n    test 74 r: -11.868239\n    test 75 n: -2.0\n    test 76 R: -6.800000\n    test 77 d: -389.611301\n    test 78 n: -1.0\n    test 79 D: -677.000000\n    test 80 r: -11.815879\n    test 81 n: -2.0\n    test 82 R: -6.770000\n    test 83 d: -387.892427\n    test 84 n: -1.0\n    test 85 D: -674.000000\n    test 86 r: -11.763519\n    test 87 n: -2.0\n    test 88 R: -6.740000\n    test 89 d: -386.173554\n    test 90 n: -1.0\n    test 91 D: -671.000000\n    test 92 r: -11.711159\n    test 93 n: -2.0\n    test 94 R: -6.710000\n    test 95 d: -384.454681\n    test 96 n: -1.0\n    test 97 D: -668.000000\n    test 98 r: -11.658799\n    test 99 n: -2.0\n    test 100 R: -6.680000\n    test 101 d: -382.735807\n    test 102 n: -1.0\n    test 103 D: -665.000000\n    test 104 r: -11.606440\n    test 105 n: -2.0\n    test 106 R: -6.650000\n    test 107 d: -381.016934\n    test 108 n: -1.0\n    test 109 D: -662.000000\n    test 110 r: -11.554080\n    test 111 n: -2.0\n    test 112 R: -6.620000\n    test 113 d: -379.298060\n    test 114 n: -1.0\n    test 115 D: -659.000000\n    test 116 r: -11.501720\n    test 117 n: -2.0\n    test 118 R: -6.590000\n    test 119 d: -377.579187\n    test 120 n: -1.0\n    test 121 D: -656.000000\n    test 122 r: -11.449360\n    test 123 n: -2.0\n    test 124 R: -6.560000\n    test 125 d: -375.860314\n    test 126 n: -1.0\n    test 127 D: -653.000000\n    test 128 r: -11.397000\n    test 129 n: -2.0\n    test 130 R: -6.530000\n    test 131 d: -374.141440\n    test 132 n: -1.0\n    test 133 D: -650.000000\n    test 134 r: -11.344640\n    test 135 n: -2.0\n    test 136 R: -6.500000\n    test 137 d: -372.422567\n    test 138 n: -1.0\n    test 139 D: -647.000000\n    test 140 r: -11.292280\n    test 141 n: -2.0\n    test 142 R: -6.470000\n    test 143 d: -370.703693\n    test 144 n: -1.0\n    test 145 D: -644.000000\n    test 146 r: -11.239920\n    test 147 n: -2.0\n    test 148 R: -6.440000\n    test 149 d: -368.984820\n    test 150 n: -1.0\n    test 151 D: -641.000000\n    test 152 r: -11.187561\n    test 153 n: -2.0\n    test 154 R: -6.410000\n    test 155 d: -367.265947\n    test 156 n: -1.0\n    test 157 D: -638.000000\n    test 158 r: -11.135201\n    test 159 n: -2.0\n    test 160 R: -6.380000\n    test 161 d: -365.547073\n    test 162 n: -1.0\n    test 163 D: -635.000000\n    test 164 r: -11.082841\n    test 165 n: -2.0\n    test 166 R: -6.350000\n    test 167 d: -363.828200\n    test 168 n: -1.0\n    test 169 D: -632.000000\n    test 170 r: -11.030481\n    test 171 n: -2.0\n    test 172 R: -6.320000\n    test 173 d: -362.109327\n    test 174 n: -1.0\n    test 175 D: -629.000000\n    test 176 r: -10.978121\n    test 177 n: -2.0\n    test 178 R: -6.290000\n    test 179 d: -360.390453\n    test 180 n: -1.0\n    test 181 D: -626.000000\n    test 182 r: -10.925761\n    test 183 n: -2.0\n    test 184 R: -6.260000\n    test 185 d: -358.671580\n    test 186 n: -1.0\n    test 187 D: -623.000000\n    test 188 r: -10.873401\n    test 189 n: -2.0\n    test 190 R: -6.230000\n    test 191 d: -356.952706\n    test 192 n: -1.0\n    test 193 D: -620.000000\n    test 194 r: -10.821041\n    test 195 n: -2.0\n    test 196 R: -6.200000\n    test 197 d: -355.233833\n    test 198 n: -1.0\n    test 199 D: -617.000000\n    test 200 r: -10.768681\n    test 201 n: -2.0\n    test 202 R: -6.170000\n    test 203 d: -353.514960\n    test 204 n: -1.0\n    test 205 D: -614.000000\n    test 206 r: -10.716322\n    test 207 n: -2.0\n    test 208 R: -6.140000\n    test 209 d: -351.796086\n    test 210 n: -1.0\n    test 211 D: -611.000000\n    test 212 r: -10.663962\n    test 213 n: -2.0\n    test 214 R: -6.110000\n    test 215 d: -350.077213\n    test 216 n: -1.0\n    test 217 D: -608.000000\n    test 218 r: -10.611602\n    test 219 n: -2.0\n    test 220 R: -6.080000\n    test 221 d: -348.358339\n    test 222 n: -1.0\n    test 223 D: -605.000000\n    test 224 r: -10.559242\n    test 225 n: -2.0\n    test 226 R: -6.050000\n    test 227 d: -346.639466\n    test 228 n: -1.0\n    test 229 D: -602.000000\n    test 230 r: -10.506882\n    test 231 n: -2.0\n    test 232 R: -6.020000\n    test 233 d: -344.920593\n    test 234 n: -1.0\n    test 235 D: -599.000000\n    test 236 r: -10.454522\n    test 237 n: -2.0\n    test 238 R: -5.990000\n    test 239 d: -343.201719\n    test 240 n: -1.0\n    test 241 D: -596.000000\n    test 242 r: -10.402162\n    test 243 n: -2.0\n    test 244 R: -5.960000\n    test 245 d: -341.482846\n    test 246 n: -1.0\n    test 247 D: -593.000000\n    test 248 r: -10.349802\n    test 249 n: -2.0\n    test 250 R: -5.930000\n    test 251 d: -339.763973\n    test 252 n: -1.0\n    test 253 D: -590.000000\n    test 254 r: -10.297443\n    test 255 n: -2.0\n    test 256 R: -5.900000\n    test 257 d: -338.045099\n    test 258 n: -1.0\n    test 259 D: -587.000000\n    test 260 r: -10.245083\n    test 261 n: -2.0\n    test 262 R: -5.870000\n    test 263 d: -336.326226\n    test 264 n: -1.0\n    test 265 D: -584.000000\n    test 266 r: -10.192723\n    test 267 n: -2.0\n    test 268 R: -5.840000\n    test 269 d: -334.607352\n    test 270 n: -1.0\n    test 271 D: -581.000000\n    test 272 r: -10.140363\n    test 273 n: -2.0\n    test 274 R: -5.810000\n    test 275 d: -332.888479\n    test 276 n: -1.0\n    test 277 D: -578.000000\n    test 278 r: -10.088003\n    test 279 n: -2.0\n    test 280 R: -5.780000\n    test 281 d: -331.169606\n    test 282 n: -1.0\n    test 283 D: -575.000000\n    test 284 r: -10.035643\n    test 285 n: -2.0\n    test 286 R: -5.750000\n    test 287 d: -329.450732\n    test 288 n: -1.0\n    test 289 D: -572.000000\n    test 290 r: -9.983283\n    test 291 n: -2.0\n    test 292 R: -5.720000\n    test 293 d: -327.731859\n    test 294 n: -1.0\n    test 295 D: -569.000000\n    test 296 r: -9.930923\n    test 297 n: -2.0\n    test 298 R: -5.690000\n    test 299 d: -326.012985\n    test 300 n: -1.0\n    test 301 D: -566.000000\n    test 302 r: -9.878564\n    test 303 n: -2.0\n    test 304 R: -5.660000\n    test 305 d: -324.294112\n    test 306 n: -1.0\n    test 307 D: -563.000000\n    test 308 r: -9.826204\n    test 309 n: -2.0\n    test 310 R: -5.630000\n    test 311 d: -322.575239\n    test 312 n: -1.0\n    test 313 D: -560.000000\n    test 314 r: -9.773844\n    test 315 n: -2.0\n    test 316 R: -5.600000\n    test 317 d: -320.856365\n    test 318 n: -1.0\n    test 319 D: -557.000000\n    test 320 r: -9.721484\n    test 321 n: -2.0\n    test 322 R: -5.570000\n    test 323 d: -319.137492\n    test 324 n: -1.0\n    test 325 D: -554.000000\n    test 326 r: -9.669124\n    test 327 n: -2.0\n    test 328 R: -5.540000\n    test 329 d: -317.418619\n    test 330 n: -1.0\n    test 331 D: -551.000000\n    test 332 r: -9.616764\n    test 333 n: -2.0\n    test 334 R: -5.510000\n    test 335 d: -315.699745\n    test 336 n: -1.0\n    test 337 D: -548.000000\n    test 338 r: -9.564404\n    test 339 n: -2.0\n    test 340 R: -5.480000\n    test 341 d: -313.980872\n    test 342 n: -1.0\n    test 343 D: -545.000000\n    test 344 r: -9.512044\n    test 345 n: -2.0\n    test 346 R: -5.450000\n    test 347 d: -312.261998\n    test 348 n: -1.0\n    test 349 D: -542.000000\n    test 350 r: -9.459685\n    test 351 n: -2.0\n    test 352 R: -5.420000\n    test 353 d: -310.543125\n    test 354 n: -1.0\n    test 355 D: -539.000000\n    test 356 r: -9.407325\n    test 357 n: -1.0\n    test 358 R: -5.390000\n    test 359 d: -308.824252\n    test 360 n: -1.0\n    test 361 D: -536.000000\n    test 362 r: -9.354965\n    test 363 n: -1.0\n    test 364 R: -5.360000\n    test 365 d: -307.105378\n    test 366 n: -1.0\n    test 367 D: -533.000000\n    test 368 r: -9.302605\n    test 369 n: -1.0\n    test 370 R: -5.330000\n    test 371 d: -305.386505\n    test 372 n: -1.0\n    test 373 D: -530.000000\n    test 374 r: -9.250245\n    test 375 n: -1.0\n    test 376 R: -5.300000\n    test 377 d: -303.667631\n    test 378 n: -1.0\n    test 379 D: -527.000000\n    test 380 r: -9.197885\n    test 381 n: -1.0\n    test 382 R: -5.270000\n    test 383 d: -301.948758\n    test 384 n: -1.0\n    test 385 D: -524.000000\n    test 386 r: -9.145525\n    test 387 n: -1.0\n    test 388 R: -5.240000\n    test 389 d: -300.229885\n    test 390 n: -1.0\n    test 391 D: -521.000000\n    test 392 r: -9.093165\n    test 393 n: -1.0\n    test 394 R: -5.210000\n    test 395 d: -298.511011\n    test 396 n: -1.0\n    test 397 D: -518.000000\n    test 398 r: -9.040806\n    test 399 n: -1.0\n    test 400 R: -5.180000\n    test 401 d: -296.792138\n    test 402 n: -1.0\n    test 403 D: -515.000000\n    test 404 r: -8.988446\n    test 405 n: -1.0\n    test 406 R: -5.150000\n    test 407 d: -295.073264\n    test 408 n: -1.0\n    test 409 D: -512.000000\n    test 410 r: -8.936086\n    test 411 n: -1.0\n    test 412 R: -5.120000\n    test 413 d: -293.354391\n    test 414 n: -1.0\n    test 415 D: -509.000000\n    test 416 r: -8.883726\n    test 417 n: -1.0\n    test 418 R: -5.090000\n    test 419 d: -291.635518\n    test 420 n: -1.0\n    test 421 D: -506.000000\n    test 422 r: -8.831366\n    test 423 n: -1.0\n    test 424 R: -5.060000\n    test 425 d: -289.916644\n    test 426 n: -1.0\n    test 427 D: -503.000000\n    test 428 r: -8.779006\n    test 429 n: -1.0\n    test 430 R: -5.030000\n    test 431 d: -288.197771\n    test 432 n: -1.0\n    test 433 D: -500.000000\n    test 434 r: -8.726646\n    test 435 n: -1.0\n    test 436 R: -5.000000\n    test 437 d: -286.478898\n    test 438 n: -1.0\n    test 439 D: -497.000000\n    test 440 r: -8.674286\n    test 441 n: -1.0\n    test 442 R: -4.970000\n    test 443 d: -284.760024\n    test 444 n: -1.0\n    test 445 D: -494.000000\n    test 446 r: -8.621927\n    test 447 n: -1.0\n    test 448 R: -4.940000\n    test 449 d: -283.041151\n    test 450 n: -1.0\n    test 451 D: -491.000000\n    test 452 r: -8.569567\n    test 453 n: -1.0\n    test 454 R: -4.910000\n    test 455 d: -281.322277\n    test 456 n: -1.0\n    test 457 D: -488.000000\n    test 458 r: -8.517207\n    test 459 n: -1.0\n    test 460 R: -4.880000\n    test 461 d: -279.603404\n    test 462 n: -1.0\n    test 463 D: -485.000000\n    test 464 r: -8.464847\n    test 465 n: -1.0\n    test 466 R: -4.850000\n    test 467 d: -277.884531\n    test 468 n: -1.0\n    test 469 D: -482.000000\n    test 470 r: -8.412487\n    test 471 n: -1.0\n    test 472 R: -4.820000\n    test 473 d: -276.165657\n    test 474 n: -1.0\n    test 475 D: -479.000000\n    test 476 r: -8.360127\n    test 477 n: -1.0\n    test 478 R: -4.790000\n    test 479 d: -274.446784\n    test 480 n: -1.0\n    test 481 D: -476.000000\n    test 482 r: -8.307767\n    test 483 n: -1.0\n    test 484 R: -4.760000\n    test 485 d: -272.727910\n    test 486 n: -1.0\n    test 487 D: -473.000000\n    test 488 r: -8.255407\n    test 489 n: -1.0\n    test 490 R: -4.730000\n    test 491 d: -271.009037\n    test 492 n: -1.0\n    test 493 D: -470.000000\n    test 494 r: -8.203047\n    test 495 n: -1.0\n    test 496 R: -4.700000\n    test 497 d: -269.290164\n    test 498 n: -1.0\n    test 499 D: -467.000000\n    test 500 r: -8.150688\n    test 501 n: -1.0\n    test 502 R: -4.670000\n    test 503 d: -267.571290\n    test 504 n: -1.0\n    test 505 D: -464.000000\n    test 506 r: -8.098328\n    test 507 n: -1.0\n    test 508 R: -4.640000\n    test 509 d: -265.852417\n    test 510 n: -1.0\n    test 511 D: -461.000000\n    test 512 r: -8.045968\n    test 513 n: -1.0\n    test 514 R: -4.610000\n    test 515 d: -264.133544\n    test 516 n: -1.0\n    test 517 D: -458.000000\n    test 518 r: -7.993608\n    test 519 n: -1.0\n    test 520 R: -4.580000\n    test 521 d: -262.414670\n    test 522 n: -1.0\n    test 523 D: -455.000000\n    test 524 r: -7.941248\n    test 525 n: -1.0\n    test 526 R: -4.550000\n    test 527 d: -260.695797\n    test 528 n: -1.0\n    test 529 D: -452.000000\n    test 530 r: -7.888888\n    test 531 n: -1.0\n    test 532 R: -4.520000\n    test 533 d: -258.976923\n    test 534 n: -1.0\n    test 535 D: -449.000000\n    test 536 r: -7.836528\n    test 537 n: -1.0\n    test 538 R: -4.490000\n    test 539 d: -257.258050\n    test 540 n: -1.0\n    test 541 D: -446.000000\n    test 542 r: -7.784168\n    test 543 n: -1.0\n    test 544 R: -4.460000\n    test 545 d: -255.539177\n    test 546 n: -1.0\n    test 547 D: -443.000000\n    test 548 r: -7.731809\n    test 549 n: -1.0\n    test 550 R: -4.430000\n    test 551 d: -253.820303\n    test 552 n: -1.0\n    test 553 D: -440.000000\n    test 554 r: -7.679449\n    test 555 n: -1.0\n    test 556 R: -4.400000\n    test 557 d: -252.101430\n    test 558 n: -1.0\n    test 559 D: -437.000000\n    test 560 r: -7.627089\n    test 561 n: -1.0\n    test 562 R: -4.370000\n    test 563 d: -250.382556\n    test 564 n: -1.0\n    test 565 D: -434.000000\n    test 566 r: -7.574729\n    test 567 n: -1.0\n    test 568 R: -4.340000\n    test 569 d: -248.663683\n    test 570 n: -1.0\n    test 571 D: -431.000000\n    test 572 r: -7.522369\n    test 573 n: -1.0\n    test 574 R: -4.310000\n    test 575 d: -246.944810\n    test 576 n: -1.0\n    test 577 D: -428.000000\n    test 578 r: -7.470009\n    test 579 n: -1.0\n    test 580 R: -4.280000\n    test 581 d: -245.225936\n    test 582 n: -1.0\n    test 583 D: -425.000000\n    test 584 r: -7.417649\n    test 585 n: -1.0\n    test 586 R: -4.250000\n    test 587 d: -243.507063\n    test 588 n: -1.0\n    test 589 D: -422.000000\n    test 590 r: -7.365289\n    test 591 n: -1.0\n    test 592 R: -4.220000\n    test 593 d: -241.788190\n    test 594 n: -1.0\n    test 595 D: -419.000000\n    test 596 r: -7.312930\n    test 597 n: -1.0\n    test 598 R: -4.190000\n    test 599 d: -240.069316\n    test 600 n: -1.0\n    test 601 D: -416.000000\n    test 602 r: -7.260570\n    test 603 n: -1.0\n    test 604 R: -4.160000\n    test 605 d: -238.350443\n    test 606 n: -1.0\n    test 607 D: -413.000000\n    test 608 r: -7.208210\n    test 609 n: -1.0\n    test 610 R: -4.130000\n    test 611 d: -236.631569\n    test 612 n: -1.0\n    test 613 D: -410.000000\n    test 614 r: -7.155850\n    test 615 n: -1.0\n    test 616 R: -4.100000\n    test 617 d: -234.912696\n    test 618 n: -1.0\n    test 619 D: -407.000000\n    test 620 r: -7.103490\n    test 621 n: -1.0\n    test 622 R: -4.070000\n    test 623 d: -233.193823\n    test 624 n: -1.0\n    test 625 D: -404.000000\n    test 626 r: -7.051130\n    test 627 n: -1.0\n    test 628 R: -4.040000\n    test 629 d: -231.474949\n    test 630 n: -1.0\n    test 631 D: -401.000000\n    test 632 r: -6.998770\n    test 633 n: -1.0\n    test 634 R: -4.010000\n    test 635 d: -229.756076\n    test 636 n: -1.0\n    test 637 D: -398.000000\n    test 638 r: -6.946410\n    test 639 n: -1.0\n    test 640 R: -3.980000\n    test 641 d: -228.037202\n    test 642 n: -1.0\n    test 643 D: -395.000000\n    test 644 r: -6.894051\n    test 645 n: -1.0\n    test 646 R: -3.950000\n    test 647 d: -226.318329\n    test 648 n: -1.0\n    test 649 D: -392.000000\n    test 650 r: -6.841691\n    test 651 n: -1.0\n    test 652 R: -3.920000\n    test 653 d: -224.599456\n    test 654 n: -1.0\n    test 655 D: -389.000000\n    test 656 r: -6.789331\n    test 657 n: -1.0\n    test 658 R: -3.890000\n    test 659 d: -222.880582\n    test 660 n: -1.0\n    test 661 D: -386.000000\n    test 662 r: -6.736971\n    test 663 n: -1.0\n    test 664 R: -3.860000\n    test 665 d: -221.161709\n    test 666 n: -1.0\n    test 667 D: -383.000000\n    test 668 r: -6.684611\n    test 669 n: -1.0\n    test 670 R: -3.830000\n    test 671 d: -219.442836\n    test 672 n: -1.0\n    test 673 D: -380.000000\n    test 674 r: -6.632251\n    test 675 n: -1.0\n    test 676 R: -3.800000\n    test 677 d: -217.723962\n    test 678 n: -1.0\n    test 679 D: -377.000000\n    test 680 r: -6.579891\n    test 681 n: -1.0\n    test 682 R: -3.770000\n    test 683 d: -216.005089\n    test 684 n: -1.0\n    test 685 D: -374.000000\n    test 686 r: -6.527531\n    test 687 n: -1.0\n    test 688 R: -3.740000\n    test 689 d: -214.286215\n    test 690 n: -1.0\n    test 691 D: -371.000000\n    test 692 r: -6.475172\n    test 693 n: -1.0\n    test 694 R: -3.710000\n    test 695 d: -212.567342\n    test 696 n: -1.0\n    test 697 D: -368.000000\n    test 698 r: -6.422812\n    test 699 n: -1.0\n    test 700 R: -3.680000\n    test 701 d: -210.848469\n    test 702 n: -1.0\n    test 703 D: -365.000000\n    test 704 r: -6.370452\n    test 705 n: -1.0\n    test 706 R: -3.650000\n    test 707 d: -209.129595\n    test 708 n: -1.0\n    test 709 D: -362.000000\n    test 710 r: -6.318092\n    test 711 n: -1.0\n    test 712 R: -3.620000\n    test 713 d: -207.410722\n    test 714 n: -1.0\n    test 715 D: -359.000000\n    test 716 r: -6.265732\n    test 717 n: -1.0\n    test 718 R: -3.590000\n    test 719 d: -205.691848\n    test 720 n: -1.0\n    test 721 D: -356.000000\n    test 722 r: -6.213372\n    test 723 n: -1.0\n    test 724 R: -3.560000\n    test 725 d: -203.972975\n    test 726 n: -1.0\n    test 727 D: -353.000000\n    test 728 r: -6.161012\n    test 729 n: -1.0\n    test 730 R: -3.530000\n    test 731 d: -202.254102\n    test 732 n: -1.0\n    test 733 D: -350.000000\n    test 734 r: -6.108652\n    test 735 n: -1.0\n    test 736 R: -3.500000\n    test 737 d: -200.535228\n    test 738 n: -1.0\n    test 739 D: -347.000000\n    test 740 r: -6.056293\n    test 741 n: -1.0\n    test 742 R: -3.470000\n    test 743 d: -198.816355\n    test 744 n: -1.0\n    test 745 D: -344.000000\n    test 746 r: -6.003933\n    test 747 n: -1.0\n    test 748 R: -3.440000\n    test 749 d: -197.097482\n    test 750 n: -1.0\n    test 751 D: -341.000000\n    test 752 r: -5.951573\n    test 753 n: -1.0\n    test 754 R: -3.410000\n    test 755 d: -195.378608\n    test 756 n: -1.0\n    test 757 D: -338.000000\n    test 758 r: -5.899213\n    test 759 n: -1.0\n    test 760 R: -3.380000\n    test 761 d: -193.659735\n    test 762 n: -1.0\n    test 763 D: -335.000000\n    test 764 r: -5.846853\n    test 765 n: -1.0\n    test 766 R: -3.350000\n    test 767 d: -191.940861\n    test 768 n: -1.0\n    test 769 D: -332.000000\n    test 770 r: -5.794493\n    test 771 n: -1.0\n    test 772 R: -3.320000\n    test 773 d: -190.221988\n    test 774 n: -1.0\n    test 775 D: -329.000000\n    test 776 r: -5.742133\n    test 777 n: -1.0\n    test 778 R: -3.290000\n    test 779 d: -188.503115\n    test 780 n: -1.0\n    test 781 D: -326.000000\n    test 782 r: -5.689773\n    test 783 n: -1.0\n    test 784 R: -3.260000\n    test 785 d: -186.784241\n    test 786 n: -1.0\n    test 787 D: -323.000000\n    test 788 r: -5.637413\n    test 789 n: -1.0\n    test 790 R: -3.230000\n    test 791 d: -185.065368\n    test 792 n: -1.0\n    test 793 D: -320.000000\n    test 794 r: -5.585054\n    test 795 n: -1.0\n    test 796 R: -3.200000\n    test 797 d: -183.346494\n    test 798 n: -1.0\n    test 799 D: -317.000000\n    test 800 r: -5.532694\n    test 801 n: -1.0\n    test 802 R: -3.170000\n    test 803 d: -181.627621\n    test 804 n: -1.0\n    test 805 D: -314.000000\n    test 806 r: -5.480334\n    test 807 n: -1.0\n    test 808 R: -3.140000\n    test 809 d: -179.908748\n    test 810 n: 0.0\n    test 811 D: -311.000000\n    test 812 r: -5.427974\n    test 813 n: -1.0\n    test 814 R: -3.110000\n    test 815 d: -178.189874\n    test 816 n: 0.0\n    test 817 D: -308.000000\n    test 818 r: -5.375614\n    test 819 n: -1.0\n    test 820 R: -3.080000\n    test 821 d: -176.471001\n    test 822 n: 0.0\n    test 823 D: -305.000000\n    test 824 r: -5.323254\n    test 825 n: -1.0\n    test 826 R: -3.050000\n    test 827 d: -174.752128\n    test 828 n: 0.0\n    test 829 D: -302.000000\n    test 830 r: -5.270894\n    test 831 n: -1.0\n    test 832 R: -3.020000\n    test 833 d: -173.033254\n    test 834 n: 0.0\n    test 835 D: -299.000000\n    test 836 r: -5.218534\n    test 837 n: -1.0\n    test 838 R: -2.990000\n    test 839 d: -171.314381\n    test 840 n: 0.0\n    test 841 D: -296.000000\n    test 842 r: -5.166175\n    test 843 n: -1.0\n    test 844 R: -2.960000\n    test 845 d: -169.595507\n    test 846 n: 0.0\n    test 847 D: -293.000000\n    test 848 r: -5.113815\n    test 849 n: -1.0\n    test 850 R: -2.930000\n    test 851 d: -167.876634\n    test 852 n: 0.0\n    test 853 D: -290.000000\n    test 854 r: -5.061455\n    test 855 n: -1.0\n    test 856 R: -2.900000\n    test 857 d: -166.157761\n    test 858 n: 0.0\n    test 859 D: -287.000000\n    test 860 r: -5.009095\n    test 861 n: -1.0\n    test 862 R: -2.870000\n    test 863 d: -164.438887\n    test 864 n: 0.0\n    test 865 D: -284.000000\n    test 866 r: -4.956735\n    test 867 n: -1.0\n    test 868 R: -2.840000\n    test 869 d: -162.720014\n    test 870 n: 0.0\n    test 871 D: -281.000000\n    test 872 r: -4.904375\n    test 873 n: -1.0\n    test 874 R: -2.810000\n    test 875 d: -161.001140\n    test 876 n: 0.0\n    test 877 D: -278.000000\n    test 878 r: -4.852015\n    test 879 n: -1.0\n    test 880 R: -2.780000\n    test 881 d: -159.282267\n    test 882 n: 0.0\n    test 883 D: -275.000000\n    test 884 r: -4.799655\n    test 885 n: -1.0\n    test 886 R: -2.750000\n    test 887 d: -157.563394\n    test 888 n: 0.0\n    test 889 D: -272.000000\n    test 890 r: -4.747296\n    test 891 n: -1.0\n    test 892 R: -2.720000\n    test 893 d: -155.844520\n    test 894 n: 0.0\n    test 895 D: -269.000000\n    test 896 r: -4.694936\n    test 897 n: -1.0\n    test 898 R: -2.690000\n    test 899 d: -154.125647\n    test 900 n: 0.0\n    test 901 D: -266.000000\n    test 902 r: -4.642576\n    test 903 n: -1.0\n    test 904 R: -2.660000\n    test 905 d: -152.406774\n    test 906 n: 0.0\n    test 907 D: -263.000000\n    test 908 r: -4.590216\n    test 909 n: -1.0\n    test 910 R: -2.630000\n    test 911 d: -150.687900\n    test 912 n: 0.0\n    test 913 D: -260.000000\n    test 914 r: -4.537856\n    test 915 n: -1.0\n    test 916 R: -2.600000\n    test 917 d: -148.969027\n    test 918 n: 0.0\n    test 919 D: -257.000000\n    test 920 r: -4.485496\n    test 921 n: -1.0\n    test 922 R: -2.570000\n    test 923 d: -147.250153\n    test 924 n: 0.0\n    test 925 D: -254.000000\n    test 926 r: -4.433136\n    test 927 n: -1.0\n    test 928 R: -2.540000\n    test 929 d: -145.531280\n    test 930 n: 0.0\n    test 931 D: -251.000000\n    test 932 r: -4.380776\n    test 933 n: -1.0\n    test 934 R: -2.510000\n    test 935 d: -143.812407\n    test 936 n: 0.0\n    test 937 D: -248.000000\n    test 938 r: -4.328417\n    test 939 n: -1.0\n    test 940 R: -2.480000\n    test 941 d: -142.093533\n    test 942 n: 0.0\n    test 943 D: -245.000000\n    test 944 r: -4.276057\n    test 945 n: -1.0\n    test 946 R: -2.450000\n    test 947 d: -140.374660\n    test 948 n: 0.0\n    test 949 D: -242.000000\n    test 950 r: -4.223697\n    test 951 n: -1.0\n    test 952 R: -2.420000\n    test 953 d: -138.655786\n    test 954 n: 0.0\n    test 955 D: -239.000000\n    test 956 r: -4.171337\n    test 957 n: -1.0\n    test 958 R: -2.390000\n    test 959 d: -136.936913\n    test 960 n: 0.0\n    test 961 D: -236.000000\n    test 962 r: -4.118977\n    test 963 n: -1.0\n    test 964 R: -2.360000\n    test 965 d: -135.218040\n    test 966 n: 0.0\n    test 967 D: -233.000000\n    test 968 r: -4.066617\n    test 969 n: -1.0\n    test 970 R: -2.330000\n    test 971 d: -133.499166\n    test 972 n: 0.0\n    test 973 D: -230.000000\n    test 974 r: -4.014257\n    test 975 n: -1.0\n    test 976 R: -2.300000\n    test 977 d: -131.780293\n    test 978 n: 0.0\n    test 979 D: -227.000000\n    test 980 r: -3.961897\n    test 981 n: -1.0\n    test 982 R: -2.270000\n    test 983 d: -130.061419\n    test 984 n: 0.0\n    test 985 D: -224.000000\n    test 986 r: -3.909538\n    test 987 n: -1.0\n    test 988 R: -2.240000\n    test 989 d: -128.342546\n    test 990 n: 0.0\n    test 991 D: -221.000000\n    test 992 r: -3.857178\n    test 993 n: -1.0\n    test 994 R: -2.210000\n    test 995 d: -126.623673\n    test 996 n: 0.0\n    test 997 D: -218.000000\n    test 998 r: -3.804818\n    test 999 n: -1.0\n    test 1000 R: -2.180000\n    test 1001 d: -124.904799\n    test 1002 n: 0.0\n    test 1003 D: -215.000000\n    test 1004 r: -3.752458\n    test 1005 n: -1.0\n    test 1006 R: -2.150000\n    test 1007 d: -123.185926\n    test 1008 n: 0.0\n    test 1009 D: -212.000000\n    test 1010 r: -3.700098\n    test 1011 n: -1.0\n    test 1012 R: -2.120000\n    test 1013 d: -121.467053\n    test 1014 n: 0.0\n    test 1015 D: -209.000000\n    test 1016 r: -3.647738\n    test 1017 n: -1.0\n    test 1018 R: -2.090000\n    test 1019 d: -119.748179\n    test 1020 n: 0.0\n    test 1021 D: -206.000000\n    test 1022 r: -3.595378\n    test 1023 n: -1.0\n    test 1024 R: -2.060000\n    test 1025 d: -118.029306\n    test 1026 n: 0.0\n    test 1027 D: -203.000000\n    test 1028 r: -3.543018\n    test 1029 n: -1.0\n    test 1030 R: -2.030000\n    test 1031 d: -116.310432\n    test 1032 n: 0.0\n    test 1033 D: -200.000000\n    test 1034 r: -3.490659\n    test 1035 n: -1.0\n    test 1036 R: -2.000000\n    test 1037 d: -114.591559\n    test 1038 n: 0.0\n    test 1039 D: -197.000000\n    test 1040 r: -3.438299\n    test 1041 n: -1.0\n    test 1042 R: -1.970000\n    test 1043 d: -112.872686\n    test 1044 n: 0.0\n    test 1045 D: -194.000000\n    test 1046 r: -3.385939\n    test 1047 n: -1.0\n    test 1048 R: -1.940000\n    test 1049 d: -111.153812\n    test 1050 n: 0.0\n    test 1051 D: -191.000000\n    test 1052 r: -3.333579\n    test 1053 n: -1.0\n    test 1054 R: -1.910000\n    test 1055 d: -109.434939\n    test 1056 n: 0.0\n    test 1057 D: -188.000000\n    test 1058 r: -3.281219\n    test 1059 n: -1.0\n    test 1060 R: -1.880000\n    test 1061 d: -107.716065\n    test 1062 n: 0.0\n    test 1063 D: -185.000000\n    test 1064 r: -3.228859\n    test 1065 n: -1.0\n    test 1066 R: -1.850000\n    test 1067 d: -105.997192\n    test 1068 n: 0.0\n    test 1069 D: -182.000000\n    test 1070 r: -3.176499\n    test 1071 n: -1.0\n    test 1072 R: -1.820000\n    test 1073 d: -104.278319\n    test 1074 n: 0.0\n    test 1075 D: -179.000000\n    test 1076 r: -3.124139\n    test 1077 n: 0.0\n    test 1078 R: -1.790000\n    test 1079 d: -102.559445\n    test 1080 n: 0.0\n    test 1081 D: -176.000000\n    test 1082 r: -3.071779\n    test 1083 n: 0.0\n    test 1084 R: -1.760000\n    test 1085 d: -100.840572\n    test 1086 n: 0.0\n    test 1087 D: -173.000000\n    test 1088 r: -3.019420\n    test 1089 n: 0.0\n    test 1090 R: -1.730000\n    test 1091 d: -99.121699\n    test 1092 n: 0.0\n    test 1093 D: -170.000000\n    test 1094 r: -2.967060\n    test 1095 n: 0.0\n    test 1096 R: -1.700000\n    test 1097 d: -97.402825\n    test 1098 n: 0.0\n    test 1099 D: -167.000000\n    test 1100 r: -2.914700\n    test 1101 n: 0.0\n    test 1102 R: -1.670000\n    test 1103 d: -95.683952\n    test 1104 n: 0.0\n    test 1105 D: -164.000000\n    test 1106 r: -2.862340\n    test 1107 n: 0.0\n    test 1108 R: -1.640000\n    test 1109 d: -93.965078\n    test 1110 n: 0.0\n    test 1111 D: -161.000000\n    test 1112 r: -2.809980\n    test 1113 n: 0.0\n    test 1114 R: -1.610000\n    test 1115 d: -92.246205\n    test 1116 n: 0.0\n    test 1117 D: -158.000000\n    test 1118 r: -2.757620\n    test 1119 n: 0.0\n    test 1120 R: -1.580000\n    test 1121 d: -90.527332\n    test 1122 n: 0.0\n    test 1123 D: -155.000000\n    test 1124 r: -2.705260\n    test 1125 n: 0.0\n    test 1126 R: -1.550000\n    test 1127 d: -88.808458\n    test 1128 n: 0.0\n    test 1129 D: -152.000000\n    test 1130 r: -2.652900\n    test 1131 n: 0.0\n    test 1132 R: -1.520000\n    test 1133 d: -87.089585\n    test 1134 n: 0.0\n    test 1135 D: -149.000000\n    test 1136 r: -2.600541\n    test 1137 n: 0.0\n    test 1138 R: -1.490000\n    test 1139 d: -85.370711\n    test 1140 n: 0.0\n    test 1141 D: -146.000000\n    test 1142 r: -2.548181\n    test 1143 n: 0.0\n    test 1144 R: -1.460000\n    test 1145 d: -83.651838\n    test 1146 n: 0.0\n    test 1147 D: -143.000000\n    test 1148 r: -2.495821\n    test 1149 n: 0.0\n    test 1150 R: -1.430000\n    test 1151 d: -81.932965\n    test 1152 n: 0.0\n    test 1153 D: -140.000000\n    test 1154 r: -2.443461\n    test 1155 n: 0.0\n    test 1156 R: -1.400000\n    test 1157 d: -80.214091\n    test 1158 n: 0.0\n    test 1159 D: -137.000000\n    test 1160 r: -2.391101\n    test 1161 n: 0.0\n    test 1162 R: -1.370000\n    test 1163 d: -78.495218\n    test 1164 n: 0.0\n    test 1165 D: -134.000000\n    test 1166 r: -2.338741\n    test 1167 n: 0.0\n    test 1168 R: -1.340000\n    test 1169 d: -76.776345\n    test 1170 n: 0.0\n    test 1171 D: -131.000000\n    test 1172 r: -2.286381\n    test 1173 n: 0.0\n    test 1174 R: -1.310000\n    test 1175 d: -75.057471\n    test 1176 n: 0.0\n    test 1177 D: -128.000000\n    test 1178 r: -2.234021\n    test 1179 n: 0.0\n    test 1180 R: -1.280000\n    test 1181 d: -73.338598\n    test 1182 n: 0.0\n    test 1183 D: -125.000000\n    test 1184 r: -2.181662\n    test 1185 n: 0.0\n    test 1186 R: -1.250000\n    test 1187 d: -71.619724\n    test 1188 n: 0.0\n    test 1189 D: -122.000000\n    test 1190 r: -2.129302\n    test 1191 n: 0.0\n    test 1192 R: -1.220000\n    test 1193 d: -69.900851\n    test 1194 n: 0.0\n    test 1195 D: -119.000000\n    test 1196 r: -2.076942\n    test 1197 n: 0.0\n    test 1198 R: -1.190000\n    test 1199 d: -68.181978\n    test 1200 n: 0.0\n    test 1201 D: -116.000000\n    test 1202 r: -2.024582\n    test 1203 n: 0.0\n    test 1204 R: -1.160000\n    test 1205 d: -66.463104\n    test 1206 n: 0.0\n    test 1207 D: -113.000000\n    test 1208 r: -1.972222\n    test 1209 n: 0.0\n    test 1210 R: -1.130000\n    test 1211 d: -64.744231\n    test 1212 n: 0.0\n    test 1213 D: -110.000000\n    test 1214 r: -1.919862\n    test 1215 n: 0.0\n    test 1216 R: -1.100000\n    test 1217 d: -63.025357\n    test 1218 n: 0.0\n    test 1219 D: -107.000000\n    test 1220 r: -1.867502\n    test 1221 n: 0.0\n    test 1222 R: -1.070000\n    test 1223 d: -61.306484\n    test 1224 n: 0.0\n    test 1225 D: -104.000000\n    test 1226 r: -1.815142\n    test 1227 n: 0.0\n    test 1228 R: -1.040000\n    test 1229 d: -59.587611\n    test 1230 n: 0.0\n    test 1231 D: -101.000000\n    test 1232 r: -1.762783\n    test 1233 n: 0.0\n    test 1234 R: -1.010000\n    test 1235 d: -57.868737\n    test 1236 n: 0.0\n    test 1237 D: -98.000000\n    test 1238 r: -1.710423\n    test 1239 n: 0.0\n    test 1240 R: -0.980000\n    test 1241 d: -56.149864\n    test 1242 n: 0.0\n    test 1243 D: -95.000000\n    test 1244 r: -1.658063\n    test 1245 n: 0.0\n    test 1246 R: -0.950000\n    test 1247 d: -54.430991\n    test 1248 n: 0.0\n    test 1249 D: -92.000000\n    test 1250 r: -1.605703\n    test 1251 n: 0.0\n    test 1252 R: -0.920000\n    test 1253 d: -52.712117\n    test 1254 n: 0.0\n    test 1255 D: -89.000000\n    test 1256 r: -1.553343\n    test 1257 n: 0.0\n    test 1258 R: -0.890000\n    test 1259 d: -50.993244\n    test 1260 n: 0.0\n    test 1261 D: -86.000000\n    test 1262 r: -1.500983\n    test 1263 n: 0.0\n    test 1264 R: -0.860000\n    test 1265 d: -49.274370\n    test 1266 n: 0.0\n    test 1267 D: -83.000000\n    test 1268 r: -1.448623\n    test 1269 n: 0.0\n    test 1270 R: -0.830000\n    test 1271 d: -47.555497\n    test 1272 n: 0.0\n    test 1273 D: -80.000000\n    test 1274 r: -1.396263\n    test 1275 n: 0.0\n    test 1276 R: -0.800000\n    test 1277 d: -45.836624\n    test 1278 n: 0.0\n    test 1279 D: -77.000000\n    test 1280 r: -1.343904\n    test 1281 n: 0.0\n    test 1282 R: -0.770000\n    test 1283 d: -44.117750\n    test 1284 n: 0.0\n    test 1285 D: -74.000000\n    test 1286 r: -1.291544\n    test 1287 n: 0.0\n    test 1288 R: -0.740000\n    test 1289 d: -42.398877\n    test 1290 n: 0.0\n    test 1291 D: -71.000000\n    test 1292 r: -1.239184\n    test 1293 n: 0.0\n    test 1294 R: -0.710000\n    test 1295 d: -40.680003\n    test 1296 n: 0.0\n    test 1297 D: -68.000000\n    test 1298 r: -1.186824\n    test 1299 n: 0.0\n    test 1300 R: -0.680000\n    test 1301 d: -38.961130\n    test 1302 n: 0.0\n    test 1303 D: -65.000000\n    test 1304 r: -1.134464\n    test 1305 n: 0.0\n    test 1306 R: -0.650000\n    test 1307 d: -37.242257\n    test 1308 n: 0.0\n    test 1309 D: -62.000000\n    test 1310 r: -1.082104\n    test 1311 n: 0.0\n    test 1312 R: -0.620000\n    test 1313 d: -35.523383\n    test 1314 n: 0.0\n    test 1315 D: -59.000000\n    test 1316 r: -1.029744\n    test 1317 n: 0.0\n    test 1318 R: -0.590000\n    test 1319 d: -33.804510\n    test 1320 n: 0.0\n    test 1321 D: -56.000000\n    test 1322 r: -0.977384\n    test 1323 n: 0.0\n    test 1324 R: -0.560000\n    test 1325 d: -32.085637\n    test 1326 n: 0.0\n    test 1327 D: -53.000000\n    test 1328 r: -0.925025\n    test 1329 n: 0.0\n    test 1330 R: -0.530000\n    test 1331 d: -30.366763\n    test 1332 n: 0.0\n    test 1333 D: -50.000000\n    test 1334 r: -0.872665\n    test 1335 n: 0.0\n    test 1336 R: -0.500000\n    test 1337 d: -28.647890\n    test 1338 n: 0.0\n    test 1339 D: -47.000000\n    test 1340 r: -0.820305\n    test 1341 n: 0.0\n    test 1342 R: -0.470000\n    test 1343 d: -26.929016\n    test 1344 n: 0.0\n    test 1345 D: -44.000000\n    test 1346 r: -0.767945\n    test 1347 n: 0.0\n    test 1348 R: -0.440000\n    test 1349 d: -25.210143\n    test 1350 n: 0.0\n    test 1351 D: -41.000000\n    test 1352 r: -0.715585\n    test 1353 n: 0.0\n    test 1354 R: -0.410000\n    test 1355 d: -23.491270\n    test 1356 n: 0.0\n    test 1357 D: -38.000000\n    test 1358 r: -0.663225\n    test 1359 n: 0.0\n    test 1360 R: -0.380000\n    test 1361 d: -21.772396\n    test 1362 n: 0.0\n    test 1363 D: -35.000000\n    test 1364 r: -0.610865\n    test 1365 n: 0.0\n    test 1366 R: -0.350000\n    test 1367 d: -20.053523\n    test 1368 n: 0.0\n    test 1369 D: -32.000000\n    test 1370 r: -0.558505\n    test 1371 n: 0.0\n    test 1372 R: -0.320000\n    test 1373 d: -18.334649\n    test 1374 n: 0.0\n    test 1375 D: -29.000000\n    test 1376 r: -0.506145\n    test 1377 n: 0.0\n    test 1378 R: -0.290000\n    test 1379 d: -16.615776\n    test 1380 n: 0.0\n    test 1381 D: -26.000000\n    test 1382 r: -0.453786\n    test 1383 n: 0.0\n    test 1384 R: -0.260000\n    test 1385 d: -14.896903\n    test 1386 n: 0.0\n    test 1387 D: -23.000000\n    test 1388 r: -0.401426\n    test 1389 n: 0.0\n    test 1390 R: -0.230000\n    test 1391 d: -13.178029\n    test 1392 n: 0.0\n    test 1393 D: -20.000000\n    test 1394 r: -0.349066\n    test 1395 n: 0.0\n    test 1396 R: -0.200000\n    test 1397 d: -11.459156\n    test 1398 n: 0.0\n    test 1399 D: -17.000000\n    test 1400 r: -0.296706\n    test 1401 n: 0.0\n    test 1402 R: -0.170000\n    test 1403 d: -9.740283\n    test 1404 n: 0.0\n    test 1405 D: -14.000000\n    test 1406 r: -0.244346\n    test 1407 n: 0.0\n    test 1408 R: -0.140000\n    test 1409 d: -8.021409\n    test 1410 n: 0.0\n    test 1411 D: -11.000000\n    test 1412 r: -0.191986\n    test 1413 n: 0.0\n    test 1414 R: -0.110000\n    test 1415 d: -6.302536\n    test 1416 n: 0.0\n    test 1417 D: -8.000000\n    test 1418 r: -0.139626\n    test 1419 n: 0.0\n    test 1420 R: -0.080000\n    test 1421 d: -4.583662\n    test 1422 n: 0.0\n    test 1423 D: -5.000000\n    test 1424 r: -0.087266\n    test 1425 n: 0.0\n    test 1426 R: -0.050000\n    test 1427 d: -2.864789\n    test 1428 n: 0.0\n    test 1429 D: -2.000000\n    test 1430 r: -0.034907\n    test 1431 n: 0.0\n    test 1432 R: -0.020000\n    test 1433 d: -1.145916\n    test 1434 n: 0.0\n    test 1435 D: 1.000000\n    test 1436 r: 0.017453\n    test 1437 n: 0.0\n    test 1438 R: 0.010000\n    test 1439 d: 0.572958\n    test 1440 n: 0.0\n    test 1441 D: 4.000000\n    test 1442 r: 0.069813\n    test 1443 n: 0.0\n    test 1444 R: 0.040000\n    test 1445 d: 2.291831\n    test 1446 n: 0.0\n    test 1447 D: 7.000000\n    test 1448 r: 0.122173\n    test 1449 n: 0.0\n    test 1450 R: 0.070000\n    test 1451 d: 4.010705\n    test 1452 n: 0.0\n    test 1453 D: 10.000000\n    test 1454 r: 0.174533\n    test 1455 n: 0.0\n    test 1456 R: 0.100000\n    test 1457 d: 5.729578\n    test 1458 n: 0.0\n    test 1459 D: 13.000000\n    test 1460 r: 0.226893\n    test 1461 n: 0.0\n    test 1462 R: 0.130000\n    test 1463 d: 7.448451\n    test 1464 n: 0.0\n    test 1465 D: 16.000000\n    test 1466 r: 0.279253\n    test 1467 n: 0.0\n    test 1468 R: 0.160000\n    test 1469 d: 9.167325\n    test 1470 n: 0.0\n    test 1471 D: 19.000000\n    test 1472 r: 0.331613\n    test 1473 n: 0.0\n    test 1474 R: 0.190000\n    test 1475 d: 10.886198\n    test 1476 n: 0.0\n    test 1477 D: 22.000000\n    test 1478 r: 0.383972\n    test 1479 n: 0.0\n    test 1480 R: 0.220000\n    test 1481 d: 12.605071\n    test 1482 n: 0.0\n    test 1483 D: 25.000000\n    test 1484 r: 0.436332\n    test 1485 n: 0.0\n    test 1486 R: 0.250000\n    test 1487 d: 14.323945\n    test 1488 n: 0.0\n    test 1489 D: 28.000000\n    test 1490 r: 0.488692\n    test 1491 n: 0.0\n    test 1492 R: 0.280000\n    test 1493 d: 16.042818\n    test 1494 n: 0.0\n    test 1495 D: 31.000000\n    test 1496 r: 0.541052\n    test 1497 n: 0.0\n    test 1498 R: 0.310000\n    test 1499 d: 17.761692\n    test 1500 n: 0.0\n    test 1501 D: 34.000000\n    test 1502 r: 0.593412\n    test 1503 n: 0.0\n    test 1504 R: 0.340000\n    test 1505 d: 19.480565\n    test 1506 n: 0.0\n    test 1507 D: 37.000000\n    test 1508 r: 0.645772\n    test 1509 n: 0.0\n    test 1510 R: 0.370000\n    test 1511 d: 21.199438\n    test 1512 n: 0.0\n    test 1513 D: 40.000000\n    test 1514 r: 0.698132\n    test 1515 n: 0.0\n    test 1516 R: 0.400000\n    test 1517 d: 22.918312\n    test 1518 n: 0.0\n    test 1519 D: 43.000000\n    test 1520 r: 0.750492\n    test 1521 n: 0.0\n    test 1522 R: 0.430000\n    test 1523 d: 24.637185\n    test 1524 n: 0.0\n    test 1525 D: 46.000000\n    test 1526 r: 0.802851\n    test 1527 n: 0.0\n    test 1528 R: 0.460000\n    test 1529 d: 26.356059\n    test 1530 n: 0.0\n    test 1531 D: 49.000000\n    test 1532 r: 0.855211\n    test 1533 n: 0.0\n    test 1534 R: 0.490000\n    test 1535 d: 28.074932\n    test 1536 n: 0.0\n    test 1537 D: 52.000000\n    test 1538 r: 0.907571\n    test 1539 n: 0.0\n    test 1540 R: 0.520000\n    test 1541 d: 29.793805\n    test 1542 n: 0.0\n    test 1543 D: 55.000000\n    test 1544 r: 0.959931\n    test 1545 n: 0.0\n    test 1546 R: 0.550000\n    test 1547 d: 31.512679\n    test 1548 n: 0.0\n    test 1549 D: 58.000000\n    test 1550 r: 1.012291\n    test 1551 n: 0.0\n    test 1552 R: 0.580000\n    test 1553 d: 33.231552\n    test 1554 n: 0.0\n    test 1555 D: 61.000000\n    test 1556 r: 1.064651\n    test 1557 n: 0.0\n    test 1558 R: 0.610000\n    test 1559 d: 34.950426\n    test 1560 n: 0.0\n    test 1561 D: 64.000000\n    test 1562 r: 1.117011\n    test 1563 n: 0.0\n    test 1564 R: 0.640000\n    test 1565 d: 36.669299\n    test 1566 n: 0.0\n    test 1567 D: 67.000000\n    test 1568 r: 1.169371\n    test 1569 n: 0.0\n    test 1570 R: 0.670000\n    test 1571 d: 38.388172\n    test 1572 n: 0.0\n    test 1573 D: 70.000000\n    test 1574 r: 1.221730\n    test 1575 n: 0.0\n    test 1576 R: 0.700000\n    test 1577 d: 40.107046\n    test 1578 n: 0.0\n    test 1579 D: 73.000000\n    test 1580 r: 1.274090\n    test 1581 n: 0.0\n    test 1582 R: 0.730000\n    test 1583 d: 41.825919\n    test 1584 n: 0.0\n    test 1585 D: 76.000000\n    test 1586 r: 1.326450\n    test 1587 n: 0.0\n    test 1588 R: 0.760000\n    test 1589 d: 43.544792\n    test 1590 n: 0.0\n    test 1591 D: 79.000000\n    test 1592 r: 1.378810\n    test 1593 n: 0.0\n    test 1594 R: 0.790000\n    test 1595 d: 45.263666\n    test 1596 n: 0.0\n    test 1597 D: 82.000000\n    test 1598 r: 1.431170\n    test 1599 n: 0.0\n    test 1600 R: 0.820000\n    test 1601 d: 46.982539\n    test 1602 n: 0.0\n    test 1603 D: 85.000000\n    test 1604 r: 1.483530\n    test 1605 n: 0.0\n    test 1606 R: 0.850000\n    test 1607 d: 48.701413\n    test 1608 n: 0.0\n    test 1609 D: 88.000000\n    test 1610 r: 1.535890\n    test 1611 n: 0.0\n    test 1612 R: 0.880000\n    test 1613 d: 50.420286\n    test 1614 n: 0.0\n    test 1615 D: 91.000000\n    test 1616 r: 1.588250\n    test 1617 n: 0.0\n    test 1618 R: 0.910000\n    test 1619 d: 52.139159\n    test 1620 n: 0.0\n    test 1621 D: 94.000000\n    test 1622 r: 1.640609\n    test 1623 n: 0.0\n    test 1624 R: 0.940000\n    test 1625 d: 53.858033\n    test 1626 n: 0.0\n    test 1627 D: 97.000000\n    test 1628 r: 1.692969\n    test 1629 n: 0.0\n    test 1630 R: 0.970000\n    test 1631 d: 55.576906\n    test 1632 n: 0.0\n    test 1633 D: 100.000000\n    test 1634 r: 1.745329\n    test 1635 n: 0.0\n    test 1636 R: 1.000000\n    test 1637 d: 57.295780\n    test 1638 n: 0.0\n    test 1639 D: 103.000000\n    test 1640 r: 1.797689\n    test 1641 n: 0.0\n    test 1642 R: 1.030000\n    test 1643 d: 59.014653\n    test 1644 n: 0.0\n    test 1645 D: 106.000000\n    test 1646 r: 1.850049\n    test 1647 n: 0.0\n    test 1648 R: 1.060000\n    test 1649 d: 60.733526\n    test 1650 n: 0.0\n    test 1651 D: 109.000000\n    test 1652 r: 1.902409\n    test 1653 n: 0.0\n    test 1654 R: 1.090000\n    test 1655 d: 62.452400\n    test 1656 n: 0.0\n    test 1657 D: 112.000000\n    test 1658 r: 1.954769\n    test 1659 n: 0.0\n    test 1660 R: 1.120000\n    test 1661 d: 64.171273\n    test 1662 n: 0.0\n    test 1663 D: 115.000000\n    test 1664 r: 2.007129\n    test 1665 n: 0.0\n    test 1666 R: 1.150000\n    test 1667 d: 65.890146\n    test 1668 n: 0.0\n    test 1669 D: 118.000000\n    test 1670 r: 2.059489\n    test 1671 n: 0.0\n    test 1672 R: 1.180000\n    test 1673 d: 67.609020\n    test 1674 n: 0.0\n    test 1675 D: 121.000000\n    test 1676 r: 2.111848\n    test 1677 n: 0.0\n    test 1678 R: 1.210000\n    test 1679 d: 69.327893\n    test 1680 n: 0.0\n    test 1681 D: 124.000000\n    test 1682 r: 2.164208\n    test 1683 n: 0.0\n    test 1684 R: 1.240000\n    test 1685 d: 71.046767\n    test 1686 n: 0.0\n    test 1687 D: 127.000000\n    test 1688 r: 2.216568\n    test 1689 n: 0.0\n    test 1690 R: 1.270000\n    test 1691 d: 72.765640\n    test 1692 n: 0.0\n    test 1693 D: 130.000000\n    test 1694 r: 2.268928\n    test 1695 n: 0.0\n    test 1696 R: 1.300000\n    test 1697 d: 74.484513\n    test 1698 n: 0.0\n    test 1699 D: 133.000000\n    test 1700 r: 2.321288\n    test 1701 n: 0.0\n    test 1702 R: 1.330000\n    test 1703 d: 76.203387\n    test 1704 n: 0.0\n    test 1705 D: 136.000000\n    test 1706 r: 2.373648\n    test 1707 n: 0.0\n    test 1708 R: 1.360000\n    test 1709 d: 77.922260\n    test 1710 n: 0.0\n    test 1711 D: 139.000000\n    test 1712 r: 2.426008\n    test 1713 n: 0.0\n    test 1714 R: 1.390000\n    test 1715 d: 79.641134\n    test 1716 n: 0.0\n    test 1717 D: 142.000000\n    test 1718 r: 2.478368\n    test 1719 n: 0.0\n    test 1720 R: 1.420000\n    test 1721 d: 81.360007\n    test 1722 n: 0.0\n    test 1723 D: 145.000000\n    test 1724 r: 2.530727\n    test 1725 n: 0.0\n    test 1726 R: 1.450000\n    test 1727 d: 83.078880\n    test 1728 n: 0.0\n    test 1729 D: 148.000000\n    test 1730 r: 2.583087\n    test 1731 n: 0.0\n    test 1732 R: 1.480000\n    test 1733 d: 84.797754\n    test 1734 n: 0.0\n    test 1735 D: 151.000000\n    test 1736 r: 2.635447\n    test 1737 n: 0.0\n    test 1738 R: 1.510000\n    test 1739 d: 86.516627\n    test 1740 n: 0.0\n    test 1741 D: 154.000000\n    test 1742 r: 2.687807\n    test 1743 n: 0.0\n    test 1744 R: 1.540000\n    test 1745 d: 88.235500\n    test 1746 n: 0.0\n    test 1747 D: 157.000000\n    test 1748 r: 2.740167\n    test 1749 n: 0.0\n    test 1750 R: 1.570000\n    test 1751 d: 89.954374\n    test 1752 n: 0.0\n    test 1753 D: 160.000000\n    test 1754 r: 2.792527\n    test 1755 n: 0.0\n    test 1756 R: 1.600000\n    test 1757 d: 91.673247\n    test 1758 n: 0.0\n    test 1759 D: 163.000000\n    test 1760 r: 2.844887\n    test 1761 n: 0.0\n    test 1762 R: 1.630000\n    test 1763 d: 93.392121\n    test 1764 n: 0.0\n    test 1765 D: 166.000000\n    test 1766 r: 2.897247\n    test 1767 n: 0.0\n    test 1768 R: 1.660000\n    test 1769 d: 95.110994\n    test 1770 n: 0.0\n    test 1771 D: 169.000000\n    test 1772 r: 2.949606\n    test 1773 n: 0.0\n    test 1774 R: 1.690000\n    test 1775 d: 96.829867\n    test 1776 n: 0.0\n    test 1777 D: 172.000000\n    test 1778 r: 3.001966\n    test 1779 n: 0.0\n    test 1780 R: 1.720000\n    test 1781 d: 98.548741\n    test 1782 n: 0.0\n    test 1783 D: 175.000000\n    test 1784 r: 3.054326\n    test 1785 n: 0.0\n    test 1786 R: 1.750000\n    test 1787 d: 100.267614\n    test 1788 n: 0.0\n    test 1789 D: 178.000000\n    test 1790 r: 3.106686\n    test 1791 n: 0.0\n    test 1792 R: 1.780000\n    test 1793 d: 101.986488\n    test 1794 n: 0.0\n    test 1795 D: 181.000000\n    test 1796 r: 3.159046\n    test 1797 n: 1.0\n    test 1798 R: 1.810000\n    test 1799 d: 103.705361\n    test 1800 n: 0.0\n    test 1801 D: 184.000000\n    test 1802 r: 3.211406\n    test 1803 n: 1.0\n    test 1804 R: 1.840000\n    test 1805 d: 105.424234\n    test 1806 n: 0.0\n    test 1807 D: 187.000000\n    test 1808 r: 3.263766\n    test 1809 n: 1.0\n    test 1810 R: 1.870000\n    test 1811 d: 107.143108\n    test 1812 n: 0.0\n    test 1813 D: 190.000000\n    test 1814 r: 3.316126\n    test 1815 n: 1.0\n    test 1816 R: 1.900000\n    test 1817 d: 108.861981\n    test 1818 n: 0.0\n    test 1819 D: 193.000000\n    test 1820 r: 3.368485\n    test 1821 n: 1.0\n    test 1822 R: 1.930000\n    test 1823 d: 110.580854\n    test 1824 n: 0.0\n    test 1825 D: 196.000000\n    test 1826 r: 3.420845\n    test 1827 n: 1.0\n    test 1828 R: 1.960000\n    test 1829 d: 112.299728\n    test 1830 n: 0.0\n    test 1831 D: 199.000000\n    test 1832 r: 3.473205\n    test 1833 n: 1.0\n    test 1834 R: 1.990000\n    test 1835 d: 114.018601\n    test 1836 n: 0.0\n    test 1837 D: 202.000000\n    test 1838 r: 3.525565\n    test 1839 n: 1.0\n    test 1840 R: 2.020000\n    test 1841 d: 115.737475\n    test 1842 n: 0.0\n    test 1843 D: 205.000000\n    test 1844 r: 3.577925\n    test 1845 n: 1.0\n    test 1846 R: 2.050000\n    test 1847 d: 117.456348\n    test 1848 n: 0.0\n    test 1849 D: 208.000000\n    test 1850 r: 3.630285\n    test 1851 n: 1.0\n    test 1852 R: 2.080000\n    test 1853 d: 119.175221\n    test 1854 n: 0.0\n    test 1855 D: 211.000000\n    test 1856 r: 3.682645\n    test 1857 n: 1.0\n    test 1858 R: 2.110000\n    test 1859 d: 120.894095\n    test 1860 n: 0.0\n    test 1861 D: 214.000000\n    test 1862 r: 3.735005\n    test 1863 n: 1.0\n    test 1864 R: 2.140000\n    test 1865 d: 122.612968\n    test 1866 n: 0.0\n    test 1867 D: 217.000000\n    test 1868 r: 3.787364\n    test 1869 n: 1.0\n    test 1870 R: 2.170000\n    test 1871 d: 124.331842\n    test 1872 n: 0.0\n    test 1873 D: 220.000000\n    test 1874 r: 3.839724\n    test 1875 n: 1.0\n    test 1876 R: 2.200000\n    test 1877 d: 126.050715\n    test 1878 n: 0.0\n    test 1879 D: 223.000000\n    test 1880 r: 3.892084\n    test 1881 n: 1.0\n    test 1882 R: 2.230000\n    test 1883 d: 127.769588\n    test 1884 n: 0.0\n    test 1885 D: 226.000000\n    test 1886 r: 3.944444\n    test 1887 n: 1.0\n    test 1888 R: 2.260000\n    test 1889 d: 129.488462\n    test 1890 n: 0.0\n    test 1891 D: 229.000000\n    test 1892 r: 3.996804\n    test 1893 n: 1.0\n    test 1894 R: 2.290000\n    test 1895 d: 131.207335\n    test 1896 n: 0.0\n    test 1897 D: 232.000000\n    test 1898 r: 4.049164\n    test 1899 n: 1.0\n    test 1900 R: 2.320000\n    test 1901 d: 132.926208\n    test 1902 n: 0.0\n    test 1903 D: 235.000000\n    test 1904 r: 4.101524\n    test 1905 n: 1.0\n    test 1906 R: 2.350000\n    test 1907 d: 134.645082\n    test 1908 n: 0.0\n    test 1909 D: 238.000000\n    test 1910 r: 4.153884\n    test 1911 n: 1.0\n    test 1912 R: 2.380000\n    test 1913 d: 136.363955\n    test 1914 n: 0.0\n    test 1915 D: 241.000000\n    test 1916 r: 4.206243\n    test 1917 n: 1.0\n    test 1918 R: 2.410000\n    test 1919 d: 138.082829\n    test 1920 n: 0.0\n    test 1921 D: 244.000000\n    test 1922 r: 4.258603\n    test 1923 n: 1.0\n    test 1924 R: 2.440000\n    test 1925 d: 139.801702\n    test 1926 n: 0.0\n    test 1927 D: 247.000000\n    test 1928 r: 4.310963\n    test 1929 n: 1.0\n    test 1930 R: 2.470000\n    test 1931 d: 141.520575\n    test 1932 n: 0.0\n    test 1933 D: 250.000000\n    test 1934 r: 4.363323\n    test 1935 n: 1.0\n    test 1936 R: 2.500000\n    test 1937 d: 143.239449\n    test 1938 n: 0.0\n    test 1939 D: 253.000000\n    test 1940 r: 4.415683\n    test 1941 n: 1.0\n    test 1942 R: 2.530000\n    test 1943 d: 144.958322\n    test 1944 n: 0.0\n    test 1945 D: 256.000000\n    test 1946 r: 4.468043\n    test 1947 n: 1.0\n    test 1948 R: 2.560000\n    test 1949 d: 146.677196\n    test 1950 n: 0.0\n    test 1951 D: 259.000000\n    test 1952 r: 4.520403\n    test 1953 n: 1.0\n    test 1954 R: 2.590000\n    test 1955 d: 148.396069\n    test 1956 n: 0.0\n    test 1957 D: 262.000000\n    test 1958 r: 4.572763\n    test 1959 n: 1.0\n    test 1960 R: 2.620000\n    test 1961 d: 150.114942\n    test 1962 n: 0.0\n    test 1963 D: 265.000000\n    test 1964 r: 4.625123\n    test 1965 n: 1.0\n    test 1966 R: 2.650000\n    test 1967 d: 151.833816\n    test 1968 n: 0.0\n    test 1969 D: 268.000000\n    test 1970 r: 4.677482\n    test 1971 n: 1.0\n    test 1972 R: 2.680000\n    test 1973 d: 153.552689\n    test 1974 n: 0.0\n    test 1975 D: 271.000000\n    test 1976 r: 4.729842\n    test 1977 n: 1.0\n    test 1978 R: 2.710000\n    test 1979 d: 155.271562\n    test 1980 n: 0.0\n    test 1981 D: 274.000000\n    test 1982 r: 4.782202\n    test 1983 n: 1.0\n    test 1984 R: 2.740000\n    test 1985 d: 156.990436\n    test 1986 n: 0.0\n    test 1987 D: 277.000000\n    test 1988 r: 4.834562\n    test 1989 n: 1.0\n    test 1990 R: 2.770000\n    test 1991 d: 158.709309\n    test 1992 n: 0.0\n    test 1993 D: 280.000000\n    test 1994 r: 4.886922\n    test 1995 n: 1.0\n    test 1996 R: 2.800000\n    test 1997 d: 160.428183\n    test 1998 n: 0.0\n    test 1999 D: 283.000000\n    test 2000 r: 4.939282\n    test 2001 n: 1.0\n    test 2002 R: 2.830000\n    test 2003 d: 162.147056\n    test 2004 n: 0.0\n    test 2005 D: 286.000000\n    test 2006 r: 4.991642\n    test 2007 n: 1.0\n    test 2008 R: 2.860000\n    test 2009 d: 163.865929\n    test 2010 n: 0.0\n    test 2011 D: 289.000000\n    test 2012 r: 5.044002\n    test 2013 n: 1.0\n    test 2014 R: 2.890000\n    test 2015 d: 165.584803\n    test 2016 n: 0.0\n    test 2017 D: 292.000000\n    test 2018 r: 5.096361\n    test 2019 n: 1.0\n    test 2020 R: 2.920000\n    test 2021 d: 167.303676\n    test 2022 n: 0.0\n    test 2023 D: 295.000000\n    test 2024 r: 5.148721\n    test 2025 n: 1.0\n    test 2026 R: 2.950000\n    test 2027 d: 169.022550\n    test 2028 n: 0.0\n    test 2029 D: 298.000000\n    test 2030 r: 5.201081\n    test 2031 n: 1.0\n    test 2032 R: 2.980000\n    test 2033 d: 170.741423\n    test 2034 n: 0.0\n    test 2035 D: 301.000000\n    test 2036 r: 5.253441\n    test 2037 n: 1.0\n    test 2038 R: 3.010000\n    test 2039 d: 172.460296\n    test 2040 n: 0.0\n    test 2041 D: 304.000000\n    test 2042 r: 5.305801\n    test 2043 n: 1.0\n    test 2044 R: 3.040000\n    test 2045 d: 174.179170\n    test 2046 n: 0.0\n    test 2047 D: 307.000000\n    test 2048 r: 5.358161\n    test 2049 n: 1.0\n    test 2050 R: 3.070000\n    test 2051 d: 175.898043\n    test 2052 n: 0.0\n    test 2053 D: 310.000000\n    test 2054 r: 5.410521\n    test 2055 n: 1.0\n    test 2056 R: 3.100000\n    test 2057 d: 177.616916\n    test 2058 n: 0.0\n    test 2059 D: 313.000000\n    test 2060 r: 5.462881\n    test 2061 n: 1.0\n    test 2062 R: 3.130000\n    test 2063 d: 179.335790\n    test 2064 n: 0.0\n    test 2065 D: 316.000000\n    test 2066 r: 5.515240\n    test 2067 n: 1.0\n    test 2068 R: 3.160000\n    test 2069 d: 181.054663\n    test 2070 n: 1.0\n    test 2071 D: 319.000000\n    test 2072 r: 5.567600\n    test 2073 n: 1.0\n    test 2074 R: 3.190000\n    test 2075 d: 182.773537\n    test 2076 n: 1.0\n    test 2077 D: 322.000000\n    test 2078 r: 5.619960\n    test 2079 n: 1.0\n    test 2080 R: 3.220000\n    test 2081 d: 184.492410\n    test 2082 n: 1.0\n    test 2083 D: 325.000000\n    test 2084 r: 5.672320\n    test 2085 n: 1.0\n    test 2086 R: 3.250000\n    test 2087 d: 186.211283\n    test 2088 n: 1.0\n    test 2089 D: 328.000000\n    test 2090 r: 5.724680\n    test 2091 n: 1.0\n    test 2092 R: 3.280000\n    test 2093 d: 187.930157\n    test 2094 n: 1.0\n    test 2095 D: 331.000000\n    test 2096 r: 5.777040\n    test 2097 n: 1.0\n    test 2098 R: 3.310000\n    test 2099 d: 189.649030\n    test 2100 n: 1.0\n    test 2101 D: 334.000000\n    test 2102 r: 5.829400\n    test 2103 n: 1.0\n    test 2104 R: 3.340000\n    test 2105 d: 191.367904\n    test 2106 n: 1.0\n    test 2107 D: 337.000000\n    test 2108 r: 5.881760\n    test 2109 n: 1.0\n    test 2110 R: 3.370000\n    test 2111 d: 193.086777\n    test 2112 n: 1.0\n    test 2113 D: 340.000000\n    test 2114 r: 5.934119\n    test 2115 n: 1.0\n    test 2116 R: 3.400000\n    test 2117 d: 194.805650\n    test 2118 n: 1.0\n    test 2119 D: 343.000000\n    test 2120 r: 5.986479\n    test 2121 n: 1.0\n    test 2122 R: 3.430000\n    test 2123 d: 196.524524\n    test 2124 n: 1.0\n    test 2125 D: 346.000000\n    test 2126 r: 6.038839\n    test 2127 n: 1.0\n    test 2128 R: 3.460000\n    test 2129 d: 198.243397\n    test 2130 n: 1.0\n    test 2131 D: 349.000000\n    test 2132 r: 6.091199\n    test 2133 n: 1.0\n    test 2134 R: 3.490000\n    test 2135 d: 199.962271\n    test 2136 n: 1.0\n    test 2137 D: 352.000000\n    test 2138 r: 6.143559\n    test 2139 n: 1.0\n    test 2140 R: 3.520000\n    test 2141 d: 201.681144\n    test 2142 n: 1.0\n    test 2143 D: 355.000000\n    test 2144 r: 6.195919\n    test 2145 n: 1.0\n    test 2146 R: 3.550000\n    test 2147 d: 203.400017\n    test 2148 n: 1.0\n    test 2149 D: 358.000000\n    test 2150 r: 6.248279\n    test 2151 n: 1.0\n    test 2152 R: 3.580000\n    test 2153 d: 205.118891\n    test 2154 n: 1.0\n    test 2155 D: 361.000000\n    test 2156 r: 6.300639\n    test 2157 n: 1.0\n    test 2158 R: 3.610000\n    test 2159 d: 206.837764\n    test 2160 n: 1.0\n    test 2161 D: 364.000000\n    test 2162 r: 6.352998\n    test 2163 n: 1.0\n    test 2164 R: 3.640000\n    test 2165 d: 208.556637\n    test 2166 n: 1.0\n    test 2167 D: 367.000000\n    test 2168 r: 6.405358\n    test 2169 n: 1.0\n    test 2170 R: 3.670000\n    test 2171 d: 210.275511\n    test 2172 n: 1.0\n    test 2173 D: 370.000000\n    test 2174 r: 6.457718\n    test 2175 n: 1.0\n    test 2176 R: 3.700000\n    test 2177 d: 211.994384\n    test 2178 n: 1.0\n    test 2179 D: 373.000000\n    test 2180 r: 6.510078\n    test 2181 n: 1.0\n    test 2182 R: 3.730000\n    test 2183 d: 213.713258\n    test 2184 n: 1.0\n    test 2185 D: 376.000000\n    test 2186 r: 6.562438\n    test 2187 n: 1.0\n    test 2188 R: 3.760000\n    test 2189 d: 215.432131\n    test 2190 n: 1.0\n    test 2191 D: 379.000000\n    test 2192 r: 6.614798\n    test 2193 n: 1.0\n    test 2194 R: 3.790000\n    test 2195 d: 217.151004\n    test 2196 n: 1.0\n    test 2197 D: 382.000000\n    test 2198 r: 6.667158\n    test 2199 n: 1.0\n    test 2200 R: 3.820000\n    test 2201 d: 218.869878\n    test 2202 n: 1.0\n    test 2203 D: 385.000000\n    test 2204 r: 6.719518\n    test 2205 n: 1.0\n    test 2206 R: 3.850000\n    test 2207 d: 220.588751\n    test 2208 n: 1.0\n    test 2209 D: 388.000000\n    test 2210 r: 6.771877\n    test 2211 n: 1.0\n    test 2212 R: 3.880000\n    test 2213 d: 222.307625\n    test 2214 n: 1.0\n    test 2215 D: 391.000000\n    test 2216 r: 6.824237\n    test 2217 n: 1.0\n    test 2218 R: 3.910000\n    test 2219 d: 224.026498\n    test 2220 n: 1.0\n    test 2221 D: 394.000000\n    test 2222 r: 6.876597\n    test 2223 n: 1.0\n    test 2224 R: 3.940000\n    test 2225 d: 225.745371\n    test 2226 n: 1.0\n    test 2227 D: 397.000000\n    test 2228 r: 6.928957\n    test 2229 n: 1.0\n    test 2230 R: 3.970000\n    test 2231 d: 227.464245\n    test 2232 n: 1.0\n    test 2233 D: 400.000000\n    test 2234 r: 6.981317\n    test 2235 n: 1.0\n    test 2236 R: 4.000000\n    test 2237 d: 229.183118\n    test 2238 n: 1.0\n    test 2239 D: 403.000000\n    test 2240 r: 7.033677\n    test 2241 n: 1.0\n    test 2242 R: 4.030000\n    test 2243 d: 230.901991\n    test 2244 n: 1.0\n    test 2245 D: 406.000000\n    test 2246 r: 7.086037\n    test 2247 n: 1.0\n    test 2248 R: 4.060000\n    test 2249 d: 232.620865\n    test 2250 n: 1.0\n    test 2251 D: 409.000000\n    test 2252 r: 7.138397\n    test 2253 n: 1.0\n    test 2254 R: 4.090000\n    test 2255 d: 234.339738\n    test 2256 n: 1.0\n    test 2257 D: 412.000000\n    test 2258 r: 7.190757\n    test 2259 n: 1.0\n    test 2260 R: 4.120000\n    test 2261 d: 236.058612\n    test 2262 n: 1.0\n    test 2263 D: 415.000000\n    test 2264 r: 7.243116\n    test 2265 n: 1.0\n    test 2266 R: 4.150000\n    test 2267 d: 237.777485\n    test 2268 n: 1.0\n    test 2269 D: 418.000000\n    test 2270 r: 7.295476\n    test 2271 n: 1.0\n    test 2272 R: 4.180000\n    test 2273 d: 239.496358\n    test 2274 n: 1.0\n    test 2275 D: 421.000000\n    test 2276 r: 7.347836\n    test 2277 n: 1.0\n    test 2278 R: 4.210000\n    test 2279 d: 241.215232\n    test 2280 n: 1.0\n    test 2281 D: 424.000000\n    test 2282 r: 7.400196\n    test 2283 n: 1.0\n    test 2284 R: 4.240000\n    test 2285 d: 242.934105\n    test 2286 n: 1.0\n    test 2287 D: 427.000000\n    test 2288 r: 7.452556\n    test 2289 n: 1.0\n    test 2290 R: 4.270000\n    test 2291 d: 244.652979\n    test 2292 n: 1.0\n    test 2293 D: 430.000000\n    test 2294 r: 7.504916\n    test 2295 n: 1.0\n    test 2296 R: 4.300000\n    test 2297 d: 246.371852\n    test 2298 n: 1.0\n    test 2299 D: 433.000000\n    test 2300 r: 7.557276\n    test 2301 n: 1.0\n    test 2302 R: 4.330000\n    test 2303 d: 248.090725\n    test 2304 n: 1.0\n    test 2305 D: 436.000000\n    test 2306 r: 7.609636\n    test 2307 n: 1.0\n    test 2308 R: 4.360000\n    test 2309 d: 249.809599\n    test 2310 n: 1.0\n    test 2311 D: 439.000000\n    test 2312 r: 7.661995\n    test 2313 n: 1.0\n    test 2314 R: 4.390000\n    test 2315 d: 251.528472\n    test 2316 n: 1.0\n    test 2317 D: 442.000000\n    test 2318 r: 7.714355\n    test 2319 n: 1.0\n    test 2320 R: 4.420000\n    test 2321 d: 253.247345\n    test 2322 n: 1.0\n    test 2323 D: 445.000000\n    test 2324 r: 7.766715\n    test 2325 n: 1.0\n    test 2326 R: 4.450000\n    test 2327 d: 254.966219\n    test 2328 n: 1.0\n    test 2329 D: 448.000000\n    test 2330 r: 7.819075\n    test 2331 n: 1.0\n    test 2332 R: 4.480000\n    test 2333 d: 256.685092\n    test 2334 n: 1.0\n    test 2335 D: 451.000000\n    test 2336 r: 7.871435\n    test 2337 n: 1.0\n    test 2338 R: 4.510000\n    test 2339 d: 258.403966\n    test 2340 n: 1.0\n    test 2341 D: 454.000000\n    test 2342 r: 7.923795\n    test 2343 n: 1.0\n    test 2344 R: 4.540000\n    test 2345 d: 260.122839\n    test 2346 n: 1.0\n    test 2347 D: 457.000000\n    test 2348 r: 7.976155\n    test 2349 n: 1.0\n    test 2350 R: 4.570000\n    test 2351 d: 261.841712\n    test 2352 n: 1.0\n    test 2353 D: 460.000000\n    test 2354 r: 8.028515\n    test 2355 n: 1.0\n    test 2356 R: 4.600000\n    test 2357 d: 263.560586\n    test 2358 n: 1.0\n    test 2359 D: 463.000000\n    test 2360 r: 8.080874\n    test 2361 n: 1.0\n    test 2362 R: 4.630000\n    test 2363 d: 265.279459\n    test 2364 n: 1.0\n    test 2365 D: 466.000000\n    test 2366 r: 8.133234\n    test 2367 n: 1.0\n    test 2368 R: 4.660000\n    test 2369 d: 266.998333\n    test 2370 n: 1.0\n    test 2371 D: 469.000000\n    test 2372 r: 8.185594\n    test 2373 n: 1.0\n    test 2374 R: 4.690000\n    test 2375 d: 268.717206\n    test 2376 n: 1.0\n    test 2377 D: 472.000000\n    test 2378 r: 8.237954\n    test 2379 n: 1.0\n    test 2380 R: 4.720000\n    test 2381 d: 270.436079\n    test 2382 n: 1.0\n    test 2383 D: 475.000000\n    test 2384 r: 8.290314\n    test 2385 n: 1.0\n    test 2386 R: 4.750000\n    test 2387 d: 272.154953\n    test 2388 n: 1.0\n    test 2389 D: 478.000000\n    test 2390 r: 8.342674\n    test 2391 n: 1.0\n    test 2392 R: 4.780000\n    test 2393 d: 273.873826\n    test 2394 n: 1.0\n    test 2395 D: 481.000000\n    test 2396 r: 8.395034\n    test 2397 n: 1.0\n    test 2398 R: 4.810000\n    test 2399 d: 275.592699\n    test 2400 n: 1.0\n    test 2401 D: 484.000000\n    test 2402 r: 8.447394\n    test 2403 n: 1.0\n    test 2404 R: 4.840000\n    test 2405 d: 277.311573\n    test 2406 n: 1.0\n    test 2407 D: 487.000000\n    test 2408 r: 8.499753\n    test 2409 n: 1.0\n    test 2410 R: 4.870000\n    test 2411 d: 279.030446\n    test 2412 n: 1.0\n    test 2413 D: 490.000000\n    test 2414 r: 8.552113\n    test 2415 n: 1.0\n    test 2416 R: 4.900000\n    test 2417 d: 280.749320\n    test 2418 n: 1.0\n    test 2419 D: 493.000000\n    test 2420 r: 8.604473\n    test 2421 n: 1.0\n    test 2422 R: 4.930000\n    test 2423 d: 282.468193\n    test 2424 n: 1.0\n    test 2425 D: 496.000000\n    test 2426 r: 8.656833\n    test 2427 n: 1.0\n    test 2428 R: 4.960000\n    test 2429 d: 284.187066\n    test 2430 n: 1.0\n    test 2431 D: 499.000000\n    test 2432 r: 8.709193\n    test 2433 n: 1.0\n    test 2434 R: 4.990000\n    test 2435 d: 285.905940\n    test 2436 n: 1.0\n    test 2437 D: 502.000000\n    test 2438 r: 8.761553\n    test 2439 n: 1.0\n    test 2440 R: 5.020000\n    test 2441 d: 287.624813\n    test 2442 n: 1.0\n    test 2443 D: 505.000000\n    test 2444 r: 8.813913\n    test 2445 n: 1.0\n    test 2446 R: 5.050000\n    test 2447 d: 289.343687\n    test 2448 n: 1.0\n    test 2449 D: 508.000000\n    test 2450 r: 8.866273\n    test 2451 n: 1.0\n    test 2452 R: 5.080000\n    test 2453 d: 291.062560\n    test 2454 n: 1.0\n    test 2455 D: 511.000000\n    test 2456 r: 8.918632\n    test 2457 n: 1.0\n    test 2458 R: 5.110000\n    test 2459 d: 292.781433\n    test 2460 n: 1.0\n    test 2461 D: 514.000000\n    test 2462 r: 8.970992\n    test 2463 n: 1.0\n    test 2464 R: 5.140000\n    test 2465 d: 294.500307\n    test 2466 n: 1.0\n    test 2467 D: 517.000000\n    test 2468 r: 9.023352\n    test 2469 n: 1.0\n    test 2470 R: 5.170000\n    test 2471 d: 296.219180\n    test 2472 n: 1.0\n    test 2473 D: 520.000000\n    test 2474 r: 9.075712\n    test 2475 n: 1.0\n    test 2476 R: 5.200000\n    test 2477 d: 297.938053\n    test 2478 n: 1.0\n    test 2479 D: 523.000000\n    test 2480 r: 9.128072\n    test 2481 n: 1.0\n    test 2482 R: 5.230000\n    test 2483 d: 299.656927\n    test 2484 n: 1.0\n    test 2485 D: 526.000000\n    test 2486 r: 9.180432\n    test 2487 n: 1.0\n    test 2488 R: 5.260000\n    test 2489 d: 301.375800\n    test 2490 n: 1.0\n    test 2491 D: 529.000000\n    test 2492 r: 9.232792\n    test 2493 n: 1.0\n    test 2494 R: 5.290000\n    test 2495 d: 303.094674\n    test 2496 n: 1.0\n    test 2497 D: 532.000000\n    test 2498 r: 9.285152\n    test 2499 n: 1.0\n    test 2500 R: 5.320000\n    test 2501 d: 304.813547\n    test 2502 n: 1.0\n    test 2503 D: 535.000000\n    test 2504 r: 9.337511\n    test 2505 n: 1.0\n    test 2506 R: 5.350000\n    test 2507 d: 306.532420\n    test 2508 n: 1.0\n    test 2509 D: 538.000000\n    test 2510 r: 9.389871\n    test 2511 n: 1.0\n    test 2512 R: 5.380000\n    test 2513 d: 308.251294\n    test 2514 n: 1.0\n    test 2515 D: 541.000000\n    test 2516 r: 9.442231\n    test 2517 n: 2.0\n    test 2518 R: 5.410000\n    test 2519 d: 309.970167\n    test 2520 n: 1.0\n    test 2521 D: 544.000000\n    test 2522 r: 9.494591\n    test 2523 n: 2.0\n    test 2524 R: 5.440000\n    test 2525 d: 311.689041\n    test 2526 n: 1.0\n    test 2527 D: 547.000000\n    test 2528 r: 9.546951\n    test 2529 n: 2.0\n    test 2530 R: 5.470000\n    test 2531 d: 313.407914\n    test 2532 n: 1.0\n    test 2533 D: 550.000000\n    test 2534 r: 9.599311\n    test 2535 n: 2.0\n    test 2536 R: 5.500000\n    test 2537 d: 315.126787\n    test 2538 n: 1.0\n    test 2539 D: 553.000000\n    test 2540 r: 9.651671\n    test 2541 n: 2.0\n    test 2542 R: 5.530000\n    test 2543 d: 316.845661\n    test 2544 n: 1.0\n    test 2545 D: 556.000000\n    test 2546 r: 9.704031\n    test 2547 n: 2.0\n    test 2548 R: 5.560000\n    test 2549 d: 318.564534\n    test 2550 n: 1.0\n    test 2551 D: 559.000000\n    test 2552 r: 9.756391\n    test 2553 n: 2.0\n    test 2554 R: 5.590000\n    test 2555 d: 320.283407\n    test 2556 n: 1.0\n    test 2557 D: 562.000000\n    test 2558 r: 9.808750\n    test 2559 n: 2.0\n    test 2560 R: 5.620000\n    test 2561 d: 322.002281\n    test 2562 n: 1.0\n    test 2563 D: 565.000000\n    test 2564 r: 9.861110\n    test 2565 n: 2.0\n    test 2566 R: 5.650000\n    test 2567 d: 323.721154\n    test 2568 n: 1.0\n    test 2569 D: 568.000000\n    test 2570 r: 9.913470\n    test 2571 n: 2.0\n    test 2572 R: 5.680000\n    test 2573 d: 325.440028\n    test 2574 n: 1.0\n    test 2575 D: 571.000000\n    test 2576 r: 9.965830\n    test 2577 n: 2.0\n    test 2578 R: 5.710000\n    test 2579 d: 327.158901\n    test 2580 n: 1.0\n    test 2581 D: 574.000000\n    test 2582 r: 10.018190\n    test 2583 n: 2.0\n    test 2584 R: 5.740000\n    test 2585 d: 328.877774\n    test 2586 n: 1.0\n    test 2587 D: 577.000000\n    test 2588 r: 10.070550\n    test 2589 n: 2.0\n    test 2590 R: 5.770000\n    test 2591 d: 330.596648\n    test 2592 n: 1.0\n    test 2593 D: 580.000000\n    test 2594 r: 10.122910\n    test 2595 n: 2.0\n    test 2596 R: 5.800000\n    test 2597 d: 332.315521\n    test 2598 n: 1.0\n    test 2599 D: 583.000000\n    test 2600 r: 10.175270\n    test 2601 n: 2.0\n    test 2602 R: 5.830000\n    test 2603 d: 334.034395\n    test 2604 n: 1.0\n    test 2605 D: 586.000000\n    test 2606 r: 10.227629\n    test 2607 n: 2.0\n    test 2608 R: 5.860000\n    test 2609 d: 335.753268\n    test 2610 n: 1.0\n    test 2611 D: 589.000000\n    test 2612 r: 10.279989\n    test 2613 n: 2.0\n    test 2614 R: 5.890000\n    test 2615 d: 337.472141\n    test 2616 n: 1.0\n    test 2617 D: 592.000000\n    test 2618 r: 10.332349\n    test 2619 n: 2.0\n    test 2620 R: 5.920000\n    test 2621 d: 339.191015\n    test 2622 n: 1.0\n    test 2623 D: 595.000000\n    test 2624 r: 10.384709\n    test 2625 n: 2.0\n    test 2626 R: 5.950000\n    test 2627 d: 340.909888\n    test 2628 n: 1.0\n    test 2629 D: 598.000000\n    test 2630 r: 10.437069\n    test 2631 n: 2.0\n    test 2632 R: 5.980000\n    test 2633 d: 342.628761\n    test 2634 n: 1.0\n    test 2635 D: 601.000000\n    test 2636 r: 10.489429\n    test 2637 n: 2.0\n    test 2638 R: 6.010000\n    test 2639 d: 344.347635\n    test 2640 n: 1.0\n    test 2641 D: 604.000000\n    test 2642 r: 10.541789\n    test 2643 n: 2.0\n    test 2644 R: 6.040000\n    test 2645 d: 346.066508\n    test 2646 n: 1.0\n    test 2647 D: 607.000000\n    test 2648 r: 10.594149\n    test 2649 n: 2.0\n    test 2650 R: 6.070000\n    test 2651 d: 347.785382\n    test 2652 n: 1.0\n    test 2653 D: 610.000000\n    test 2654 r: 10.646508\n    test 2655 n: 2.0\n    test 2656 R: 6.100000\n    test 2657 d: 349.504255\n    test 2658 n: 1.0\n    test 2659 D: 613.000000\n    test 2660 r: 10.698868\n    test 2661 n: 2.0\n    test 2662 R: 6.130000\n    test 2663 d: 351.223128\n    test 2664 n: 1.0\n    test 2665 D: 616.000000\n    test 2666 r: 10.751228\n    test 2667 n: 2.0\n    test 2668 R: 6.160000\n    test 2669 d: 352.942002\n    test 2670 n: 1.0\n    test 2671 D: 619.000000\n    test 2672 r: 10.803588\n    test 2673 n: 2.0\n    test 2674 R: 6.190000\n    test 2675 d: 354.660875\n    test 2676 n: 1.0\n    test 2677 D: 622.000000\n    test 2678 r: 10.855948\n    test 2679 n: 2.0\n    test 2680 R: 6.220000\n    test 2681 d: 356.379749\n    test 2682 n: 1.0\n    test 2683 D: 625.000000\n    test 2684 r: 10.908308\n    test 2685 n: 2.0\n    test 2686 R: 6.250000\n    test 2687 d: 358.098622\n    test 2688 n: 1.0\n    test 2689 D: 628.000000\n    test 2690 r: 10.960668\n    test 2691 n: 2.0\n    test 2692 R: 6.280000\n    test 2693 d: 359.817495\n    test 2694 n: 1.0\n    test 2695 D: 631.000000\n    test 2696 r: 11.013028\n    test 2697 n: 2.0\n    test 2698 R: 6.310000\n    test 2699 d: 361.536369\n    test 2700 n: 1.0\n    test 2701 D: 634.000000\n    test 2702 r: 11.065387\n    test 2703 n: 2.0\n    test 2704 R: 6.340000\n    test 2705 d: 363.255242\n    test 2706 n: 1.0\n    test 2707 D: 637.000000\n    test 2708 r: 11.117747\n    test 2709 n: 2.0\n    test 2710 R: 6.370000\n    test 2711 d: 364.974115\n    test 2712 n: 1.0\n    test 2713 D: 640.000000\n    test 2714 r: 11.170107\n    test 2715 n: 2.0\n    test 2716 R: 6.400000\n    test 2717 d: 366.692989\n    test 2718 n: 1.0\n    test 2719 D: 643.000000\n    test 2720 r: 11.222467\n    test 2721 n: 2.0\n    test 2722 R: 6.430000\n    test 2723 d: 368.411862\n    test 2724 n: 1.0\n    test 2725 D: 646.000000\n    test 2726 r: 11.274827\n    test 2727 n: 2.0\n    test 2728 R: 6.460000\n    test 2729 d: 370.130736\n    test 2730 n: 1.0\n    test 2731 D: 649.000000\n    test 2732 r: 11.327187\n    test 2733 n: 2.0\n    test 2734 R: 6.490000\n    test 2735 d: 371.849609\n    test 2736 n: 1.0\n    test 2737 D: 652.000000\n    test 2738 r: 11.379547\n    test 2739 n: 2.0\n    test 2740 R: 6.520000\n    test 2741 d: 373.568482\n    test 2742 n: 1.0\n    test 2743 D: 655.000000\n    test 2744 r: 11.431907\n    test 2745 n: 2.0\n    test 2746 R: 6.550000\n    test 2747 d: 375.287356\n    test 2748 n: 1.0\n    test 2749 D: 658.000000\n    test 2750 r: 11.484266\n    test 2751 n: 2.0\n    test 2752 R: 6.580000\n    test 2753 d: 377.006229\n    test 2754 n: 1.0\n    test 2755 D: 661.000000\n    test 2756 r: 11.536626\n    test 2757 n: 2.0\n    test 2758 R: 6.610000\n    test 2759 d: 378.725103\n    test 2760 n: 1.0\n    test 2761 D: 664.000000\n    test 2762 r: 11.588986\n    test 2763 n: 2.0\n    test 2764 R: 6.640000\n    test 2765 d: 380.443976\n    test 2766 n: 1.0\n    test 2767 D: 667.000000\n    test 2768 r: 11.641346\n    test 2769 n: 2.0\n    test 2770 R: 6.670000\n    test 2771 d: 382.162849\n    test 2772 n: 1.0\n    test 2773 D: 670.000000\n    test 2774 r: 11.693706\n    test 2775 n: 2.0\n    test 2776 R: 6.700000\n    test 2777 d: 383.881723\n    test 2778 n: 1.0\n    test 2779 D: 673.000000\n    test 2780 r: 11.746066\n    test 2781 n: 2.0\n    test 2782 R: 6.730000\n    test 2783 d: 385.600596\n    test 2784 n: 1.0\n    test 2785 D: 676.000000\n    test 2786 r: 11.798426\n    test 2787 n: 2.0\n    test 2788 R: 6.760000\n    test 2789 d: 387.319470\n    test 2790 n: 1.0\n    test 2791 D: 679.000000\n    test 2792 r: 11.850786\n    test 2793 n: 2.0\n    test 2794 R: 6.790000\n    test 2795 d: 389.038343\n    test 2796 n: 1.0\n    test 2797 D: 682.000000\n    test 2798 r: 11.903145\n    test 2799 n: 2.0\n    test 2800 R: 6.820000\n    test 2801 d: 390.757216\n    test 2802 n: 1.0\n    test 2803 D: 685.000000\n    test 2804 r: 11.955505\n    test 2805 n: 2.0\n    test 2806 R: 6.850000\n    test 2807 d: 392.476090\n    test 2808 n: 1.0\n    test 2809 D: 688.000000\n    test 2810 r: 12.007865\n    test 2811 n: 2.0\n    test 2812 R: 6.880000\n    test 2813 d: 394.194963\n    test 2814 n: 1.0\n    test 2815 D: 691.000000\n    test 2816 r: 12.060225\n    test 2817 n: 2.0\n    test 2818 R: 6.910000\n    test 2819 d: 395.913836\n    test 2820 n: 1.0\n    test 2821 D: 694.000000\n    test 2822 r: 12.112585\n    test 2823 n: 2.0\n    test 2824 R: 6.940000\n    test 2825 d: 397.632710\n    test 2826 n: 1.0\n    test 2827 D: 697.000000\n    test 2828 r: 12.164945\n    test 2829 n: 2.0\n    test 2830 R: 6.970000\n    test 2831 d: 399.351583\n    test 2832 n: 1.0\n    test 2833 D: 700.000000\n    test 2834 r: 12.217305\n    test 2835 n: 2.0\n    test 2836 R: 7.000000\n    test 2837 d: 401.070457\n    test 2838 n: 1.0\n    test 2839 D: 703.000000\n    test 2840 r: 12.269665\n    test 2841 n: 2.0\n    test 2842 R: 7.030000\n    test 2843 d: 402.789330\n    test 2844 n: 1.0\n    test 2845 D: 706.000000\n    test 2846 r: 12.322025\n    test 2847 n: 2.0\n    test 2848 R: 7.060000\n    test 2849 d: 404.508203\n    test 2850 n: 1.0\n    test 2851 D: 709.000000\n    test 2852 r: 12.374384\n    test 2853 n: 2.0\n    test 2854 R: 7.090000\n    test 2855 d: 406.227077\n    test 2856 n: 1.0\n    test 2857 D: 712.000000\n    test 2858 r: 12.426744\n    test 2859 n: 2.0\n    test 2860 R: 7.120000\n    test 2861 d: 407.945950\n    test 2862 n: 1.0\n    test 2863 D: 715.000000\n    test 2864 r: 12.479104\n    test 2865 n: 2.0\n    test 2866 R: 7.150000\n    test 2867 d: 409.664824\n    test 2868 n: 1.0\n\n    test 2869 radd: 32.0\n    test 2870 rdiv: 6.67e-02\n    test 2871 rmul: 60.0\n    test 2872 rpow: 1073741824.0\n    test 2873 rsub: -28.0\n\n    test 2874 R * 2: 4.0000\n    test 2875 R / 2: 2.0000\n    test 2876 R / R: True\n    test 2877 R / R: 1.0\n    test 2878 R / R: 2.0\n    test 2879 abs  : 2.0\n    test 2880 int  : 2\n    test 2881 eq R: True\n    test 2882 ge R: True\n    test 2883 gt R: False\n    test 2884 le R: True\n    test 2885 lt R: False\n    test 2886 ne R: False\n    test 2887 if R: True\n    test 2888 gt 0: True\n    test 2889 lt 0: False\n    test 2890 eq 0: False\n    test 2891 lt 0: True\n    test 2892 gt 0: True\n    test 2893 gt 0: False\n    test 2894 signOf: 1\n    test 2895 signOf: -1\n    test 2896 ceil : 3.0\n    test 2897 floor: 2.0\n\n    test 2898 divmod : (2.0, Radians(0.0))\n    test 2899 divmod : (2.0, Radians(0.0))\n    test 2900 rdivmod : (0.0, Radians(2.0))\n    test 2901 divmod : (-2.0, Radians(1.0))\n    test 2902 imod: 0.0\n    test 2903 mod : 0.0\n    test 2904 rmod: 2.0\n    test 2905 neg : -2.0\n    test 2906 pos : 2.0\n    test 2907 is_int: False\n    test 2908 float: 9e-102\n    test 2909 is_int: False\n    test 2910 round1: 0.0\n    test 2911 R //: -2.0\n    test 2912 // R: -2.0\n    test 2913 R //=: -2.0\n    test 2914 R / 0: ZeroDivisionError('float division by zero')\n\n    test 2915 pow(R, +): 0.0\n    test 2916 pow(R, -): 0.4767037\n    test 2917 pow(-R, R): TypeError('fromDegrees((1+2.8274333882308138e-101j))')  FAILED, KNOWN, expected TypeError\n    test 2918 pow(R, R): 1.0\n    test 2919 pow(R, f, i): TypeError('pow() 3rd argument not allowed unless all arguments are integers')\n    test 2920 pow(R, R, i): TypeError('fromDegrees(<Fsum[1] (2.1, 0) at 0x10673a6c0>)')\n    test 2921 pow(R, i, None): 4.0\n# imported pygeodesy.basics into errors.py line 531\n    test 2922 Z**-2: ZeroDivisionError('0.0 ** -2: 0.0 cannot be raised to a negative power')\n    test 2923 pow(0): 1.000\n    test 2924 pow(1): -3.000\n    test 2925 pow(2): 9.000\n    test 2926 pow(21): -10460353203.000\n    test 2927 pow(-5): -0.004\n    test 2928 **= 2: 9.000\n\n    test 2929 F0**0: 1.0\n    test 2930 F0**0.: 1.0\n    test 2931 0**F0: 1.0\n    test 2932 0.**F0: 1.0\n    test 2933 F0**0: 1.0\n    test 2934 F0**2: 0.0\n    test 2935 F0**0.: 1.0\n    test 2936 F0**3.: 0.0\n    test 2937 F0**0.: 1.0\n\n    test 2938 R**2: 3125.000\n    test 2939 R**-1: 0.200\n    test 2940 R**-2: 0.040\n    test 2941 R**-2.5: 0.018\n    test 2942 R** 2.5: 55.902\n    test 2943 pow(2): 25.000\n    test 2944 pow(2.5): 55.902\n    test 2945 pow(R): 3125.000\n    test 2946 3pow(2, None): 25.0\n    test 2947 3pow(2.5, None): 55.9017\n    test 2948 3pow(2, 20): 5\n    test 2949 x * x: 25.0\n    test 2950 x * R: 12.5\n    test 2951 x + R: 7.5\n    test 2952 x - R: 2.5\n\n    test 2953 abs(T): 0.0\n    test 2954 bool(T): True\n    test 2955 float(T): 2.220446049250313e-16\n    test 2956 int(T): 0\n    test 2957 -T: -0.0\n    test 2958 +T: 0.0\n\n    test 2959 R==T: False\n    test 2960 R>=T: True\n    test 2961 R> T: True\n    test 2962 R<=T: False\n    test 2963 R< T: False\n    test 2964 R!=T: True\n\n    test 2965 base: 61.0\n    test 2966 flipsign: -61.0\n    test 2967 lambertian: 1.3524048166735199\n    test 2968 fromScalar: 1.35240482\n    test 2969 n0: 61.0\n    test 2970 nearest: 90.0\n    test 2971 normalize: 61.0\n    test 2972 quadrant: 0\n    test 2973 reflect: 61.0\n    test 2974 round: 61.0\n    test 2975 shift: nan\n    test 2976 t: 1.8040477552714236\n    test 2977 toLambertian: 1.3524048166735199\n    test 2978 toTuple: 0.87462, 0.48481, 0.0\n\n    1 of 2978 testAngles.py tests (0.0%) FAILED, ALL KNOWN (pygeodesy 26.3.26 Python 3.12.10 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 2.1.0 scipy 1.14.1 Math 2 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 isLazy 3 -W  default) 38.953 ms\nrunning /usr/local/bin/p....n3.12 -W default ~/PyGeodesy/test/testAuxilats.py\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.PI_2 from .constants by testAuxilats.py line 11\n# lazily imported pygeodesy.PI_4 from .constants by testAuxilats.py line 11\n# lazily imported pygeodesy.Fsum from .fsums by testAuxilats.py line 11\n# lazily imported pygeodesy.fsum from .fsums by testAuxilats.py line 11\n# lazily imported pygeodesy.sincos2 from .utily by testAuxilats.py line 11\n\n    testing testAuxilats.py 25.09.09 (module pygeodesy.auxilats 25.12.02) isLazy=3\n\n    test 1 Aux: 6\n\n    test 2 aout: 0\n    test 3 before: None\n    test 4 before: _Rtuple\n    test 5 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 6 before: _Rtuple\n    test 7 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 8 before: _Rtuple\n    test 9 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 10 before: _Rtuple\n    test 11 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 12 before: _Rtuple\n    test 13 after: tuple  FAILED, KNOWN, expected _Rtuple\n\n    test 14 aout: 1\n    test 15 before: _Rtuple\n    test 16 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 17 before: None\n    test 18 before: _Rtuple\n    test 19 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 20 before: _Rtuple\n    test 21 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 22 before: _Rtuple\n    test 23 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 24 before: _Rtuple\n    test 25 after: tuple  FAILED, KNOWN, expected _Rtuple\n\n    test 26 aout: 2\n    test 27 before: _Rtuple\n    test 28 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 29 before: _Rtuple\n    test 30 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 31 before: None\n    test 32 before: _Rtuple\n    test 33 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 34 before: _Rtuple\n    test 35 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 36 before: _Rtuple\n    test 37 after: tuple  FAILED, KNOWN, expected _Rtuple\n\n    test 38 aout: 3\n    test 39 before: _Rtuple\n    test 40 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 41 before: _Rtuple\n    test 42 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 43 before: _Rtuple\n    test 44 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 45 before: None\n    test 46 before: _Rtuple\n    test 47 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 48 before: _Rtuple\n    test 49 after: tuple  FAILED, KNOWN, expected _Rtuple\n\n    test 50 aout: 4\n    test 51 before: _Rtuple\n    test 52 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 53 before: _Rtuple\n    test 54 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 55 before: _Rtuple\n    test 56 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 57 before: _Rtuple\n    test 58 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 59 before: None\n    test 60 before: _Rtuple\n    test 61 after: tuple  FAILED, KNOWN, expected _Rtuple\n\n    test 62 aout: 5\n    test 63 before: _Rtuple\n    test 64 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 65 before: _Rtuple\n    test 66 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 67 before: _Rtuple\n    test 68 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 69 before: _Rtuple\n    test 70 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 71 before: _Rtuple\n    test 72 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 73 before: None\n# imported pygeodesy.basics into errors.py line 915\n\n    test 74 Aux: 4\n\n    test 75 aout: 0\n    test 76 Aux: 4\n    test 77 Aux: 4\n    test 78 Aux: 4\n    test 79 Aux: 4\n    test 80 Aux: 4\n    test 81 Aux: 4\n\n    test 82 aout: 1\n    test 83 Aux: 4\n    test 84 Aux: 4\n    test 85 Aux: 4\n    test 86 Aux: 4\n    test 87 Aux: 4\n    test 88 Aux: 4\n\n    test 89 aout: 2\n    test 90 Aux: 4\n    test 91 Aux: 4\n    test 92 Aux: 4\n    test 93 Aux: 4\n    test 94 Aux: 4\n    test 95 Aux: 4\n\n    test 96 aout: 3\n    test 97 Aux: 4\n    test 98 Aux: 4\n    test 99 Aux: 4\n    test 100 Aux: 4\n    test 101 Aux: 4\n    test 102 Aux: 4\n\n    test 103 aout: 4\n    test 104 Aux: 4\n    test 105 Aux: 4\n    test 106 Aux: 4\n    test 107 Aux: 4\n    test 108 Aux: 4\n    test 109 Aux: 4\n\n    test 110 aout: 5\n    test 111 Aux: 4\n    test 112 Aux: 4\n    test 113 Aux: 4\n    test 114 Aux: 4\n    test 115 Aux: 4\n    test 116 Aux: 4\n\n    test 117 Aux: 6\n\n    test 118 aout: 0\n    test 119 Aux: 6\n    test 120 Aux: 6\n    test 121 Aux: 6\n    test 122 Aux: 6\n    test 123 Aux: 6\n    test 124 Aux: 6\n\n    test 125 aout: 1\n    test 126 Aux: 6\n    test 127 Aux: 6\n    test 128 Aux: 6\n    test 129 Aux: 6\n    test 130 Aux: 6\n    test 131 Aux: 6\n\n    test 132 aout: 2\n    test 133 Aux: 6\n    test 134 Aux: 6\n    test 135 Aux: 6\n    test 136 Aux: 6\n    test 137 Aux: 6\n    test 138 Aux: 6\n\n    test 139 aout: 3\n    test 140 Aux: 6\n    test 141 Aux: 6\n    test 142 Aux: 6\n    test 143 Aux: 6\n    test 144 Aux: 6\n    test 145 Aux: 6\n\n    test 146 aout: 4\n    test 147 Aux: 6\n    test 148 Aux: 6\n    test 149 Aux: 6\n    test 150 Aux: 6\n    test 151 Aux: 6\n    test 152 Aux: 6\n\n    test 153 aout: 5\n    test 154 Aux: 6\n    test 155 Aux: 6\n    test 156 Aux: 6\n    test 157 Aux: 6\n    test 158 Aux: 6\n    test 159 Aux: 6\n\n    test 160 Aux: 8\n\n    test 161 aout: 0\n    test 162 Aux: 8\n    test 163 Aux: 8\n    test 164 Aux: 8\n    test 165 Aux: 8\n    test 166 Aux: 8\n    test 167 Aux: 8\n\n    test 168 aout: 1\n    test 169 Aux: 8\n    test 170 Aux: 8\n    test 171 Aux: 8\n    test 172 Aux: 8\n    test 173 Aux: 8\n    test 174 Aux: 8\n\n    test 175 aout: 2\n    test 176 Aux: 8\n    test 177 Aux: 8\n    test 178 Aux: 8\n    test 179 Aux: 8\n    test 180 Aux: 8\n    test 181 Aux: 8\n\n    test 182 aout: 3\n    test 183 Aux: 8\n    test 184 Aux: 8\n    test 185 Aux: 8\n    test 186 Aux: 8\n    test 187 Aux: 8\n    test 188 Aux: 8\n\n    test 189 aout: 4\n    test 190 Aux: 8\n    test 191 Aux: 8\n    test 192 Aux: 8\n    test 193 Aux: 8\n    test 194 Aux: 8\n    test 195 Aux: 8\n\n    test 196 aout: 5\n    test 197 Aux: 8\n    test 198 Aux: 8\n    test 199 Aux: 8\n    test 200 Aux: 8\n    test 201 Aux: 8\n    test 202 Aux: 8\n\n    test 203  0 0.000000000000 Phi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 204  0 0.000000000000 Beta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 205  0 0.000000000000 Theta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 206  0 0.000000000000 Mu(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 207  0 0.000000000000 Chi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 208  0 0.000000000000 Xi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n\n    test 209  0 0.000000000000 Phi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 210  0 0.000000000000 Beta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 211  0 0.000000000000 Theta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 212  0 0.000000000000 Mu(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 213  0 0.000000000000 Chi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 214  0 0.000000000000 Xi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n\n    test 215  7 7.023313832609 Phi(tan=0.123198, x=0.992546, y=0.122279): 0.122784560903\n    test 216  7 7.000000000000 Beta(tan=0.122785, x=0.992546, y=0.121869): 0.122784560903\n    test 217  7 6.976762016136 Theta(tan=0.122373, x=0.992546, y=0.121461): 0.122784560903\n    test 218  7 6.988357344130 Mu(tan=0.122578, x=0.992571, y=0.121668), iteration=2: 0.122784560903\n    test 219  7 6.976762787606 Chi(tan=0.122373, x=1.0, y=0.122373), iteration=3: 0.122784560903\n    test 220  7 6.992232010256 Xi(tan=0.122647, x=1.99404, y=0.244563), iteration=2: 0.122784560903\n\n    test 221  7 7.023313832609 Phi(tan=0.123198, x=0.992496, y=0.122273): 0.122784560903\n    test 222  7 7.000000000000 Beta(tan=0.122785, x=0.992546, y=0.121869): 0.122784560903\n    test 223  7 6.976762016136 Theta(tan=0.122373, x=0.992595, y=0.121467): 0.122784560903\n    test 224  7 6.988357344130 Mu(tan=0.122578, x=0.992571, y=0.121668): 0.122784560903\n    test 225  7 6.976762787606 Chi(tan=0.122373, x=0.992595, y=0.121467): 0.122784560903\n    test 226  7 6.992232010256 Xi(tan=0.122647, x=0.992563, y=0.121735): 0.122784560903\n\n    test 227 14 14.045235971490 Phi(tan=0.250167, x=0.970296, y=0.242736): 0.249328002843\n    test 228 14 14.000000000000 Beta(tan=0.249328, x=0.970296, y=0.241922): 0.249328002843\n    test 229 14 13.954897969322 Theta(tan=0.248492, x=0.970296, y=0.241111): 0.249328002843\n    test 230 14 13.977407191407 Mu(tan=0.248909, x=0.970391, y=0.241539), iteration=3: 0.249328002843\n    test 231 14 13.954903870195 Chi(tan=0.248492, x=1.0, y=0.248492), iteration=3: 0.249328002843\n    test 232 14 13.984926538790 Xi(tan=0.249049, x=1.94943, y=0.485503), iteration=3: 0.249328002843\n\n    test 233 14 14.045235971490 Phi(tan=0.250167, x=0.970104, y=0.242688): 0.249328002843\n    test 234 14 14.000000000000 Beta(tan=0.249328, x=0.970296, y=0.241922): 0.249328002843\n    test 235 14 13.954897969322 Theta(tan=0.248492, x=0.970486, y=0.241158): 0.249328002843\n    test 236 14 13.977407191407 Mu(tan=0.248909, x=0.970391, y=0.241539): 0.249328002843\n    test 237 14 13.954903870195 Chi(tan=0.248492, x=0.970486, y=0.241158): 0.249328002843\n    test 238 14 13.984926538790 Xi(tan=0.249049, x=0.970359, y=0.241667): 0.249328002843\n\n    test 239 21 21.064458966605 Phi(tan=0.385155, x=0.93358, y=0.359574): 0.383864035035\n    test 240 21 21.000000000000 Beta(tan=0.383864, x=0.93358, y=0.358368): 0.383864035035\n    test 241 21 20.935701709947 Theta(tan=0.382577, x=0.93358, y=0.357166): 0.383864035035\n    test 242 21 20.967800709613 Mu(tan=0.383219, x=0.933782, y=0.357843), iteration=2: 0.383864035035\n    test 243 21 20.935720172355 Chi(tan=0.382577, x=1.0, y=0.382577), iteration=3: 0.383864035035\n    test 244 21 20.978518383767 Xi(tan=0.383434, x=1.87581, y=0.719251), iteration=2: 0.383864035035\n\n    test 245 21 21.064458966605 Phi(tan=0.385155, x=0.933177, y=0.359418): 0.383864035035\n    test 246 21 21.000000000000 Beta(tan=0.383864, x=0.93358, y=0.358368): 0.383864035035\n    test 247 21 20.935701709947 Theta(tan=0.382577, x=0.933982, y=0.35732): 0.383864035035\n    test 248 21 20.967800709613 Mu(tan=0.383219, x=0.933782, y=0.357843): 0.383864035035\n    test 249 21 20.935720172355 Chi(tan=0.382577, x=0.933982, y=0.35732): 0.383864035035\n    test 250 21 20.978518383767 Xi(tan=0.383434, x=0.933715, y=0.358018): 0.383864035035\n\n    test 251 28 28.079838480095 Phi(tan=0.533498, x=0.882948, y=0.471051): 0.531709431661\n    test 252 28 28.000000000000 Beta(tan=0.531709, x=0.882948, y=0.469472): 0.531709431661\n    test 253 28 27.920311317014 Theta(tan=0.529927, x=0.882948, y=0.467898): 0.531709431661\n    test 254 28 27.960108897314 Mu(tan=0.530817, x=0.883274, y=0.468857), iteration=3: 0.531709431661\n    test 255 28 27.920350592883 Chi(tan=0.529928, x=1.0, y=0.529928), iteration=3: 0.531709431661\n    test 256 28 27.973388607066 Xi(tan=0.531114, x=1.77426, y=0.942335), iteration=2: 0.531709431661\n\n    test 257 28 28.079838480095 Phi(tan=0.533498, x=0.882293, y=0.470701): 0.531709431661\n    test 258 28 28.000000000000 Beta(tan=0.531709, x=0.882948, y=0.469472): 0.531709431661\n    test 259 28 27.920311317014 Theta(tan=0.529927, x=0.8836, y=0.468243): 0.531709431661\n    test 260 28 27.960108897314 Mu(tan=0.530817, x=0.883274, y=0.468857): 0.531709431661\n    test 261 28 27.920350592883 Chi(tan=0.529928, x=0.883599, y=0.468244): 0.531709431661\n    test 262 28 27.973388607066 Xi(tan=0.531114, x=0.883166, y=0.469061): 0.531709431661\n\n    test 263 35 35.090461812463 Phi(tan=0.702563, x=0.819152, y=0.575506): 0.700207538210\n    test 264 35 35.000000000000 Beta(tan=0.700208, x=0.819152, y=0.573576): 0.700207538210\n    test 265 35 34.909642037079 Theta(tan=0.69786, x=0.819152, y=0.571653): 0.700207538210\n    test 266 35 34.954788593575 Mu(tan=0.699032, x=0.819604, y=0.57293), iteration=3: 0.700207538210\n    test 267 35 34.909708526741 Chi(tan=0.697862, x=1.0, y=0.697862), iteration=3: 0.700207538210\n    test 268 35 34.969841811236 Xi(tan=0.699423, x=1.64627, y=1.15144), iteration=3: 0.700207538210\n\n    test 269 35 35.090461812463 Phi(tan=0.702563, x=0.818245, y=0.574869): 0.700207538210\n    test 270 35 35.000000000000 Beta(tan=0.700208, x=0.819152, y=0.573576): 0.700207538210\n    test 271 35 34.909642037079 Theta(tan=0.69786, x=0.820056, y=0.572284): 0.700207538210\n    test 272 35 34.954788593575 Mu(tan=0.699032, x=0.819604, y=0.57293): 0.700207538210\n    test 273 35 34.909708526741 Chi(tan=0.697862, x=0.820055, y=0.572285): 0.700207538210\n    test 274 35 34.969841811236 Xi(tan=0.699423, x=0.819454, y=0.573145): 0.700207538210\n\n    test 275 42 42.095701889505 Phi(tan=0.903433, x=0.743145, y=0.671382): 0.900404044298\n    test 276 42 42.000000000000 Beta(tan=0.900404, x=0.743145, y=0.669131): 0.900404044298\n    test 277 42 41.904331700939 Theta(tan=0.897385, x=0.743145, y=0.666887): 0.900404044298\n    test 278 42 41.952155366417 Mu(tan=0.898893, x=0.743703, y=0.66851), iteration=2: 0.900404044298\n    test 279 42 41.904427530254 Chi(tan=0.897388, x=1.0, y=0.897388), iteration=3: 0.900404044298\n    test 280 42 41.968088079226 Xi(tan=0.899396, x=1.49371, y=1.34344), iteration=2: 0.900404044298\n\n    test 281 42 42.095701889505 Phi(tan=0.903433, x=0.742026, y=0.670371): 0.900404044298\n    test 282 42 42.000000000000 Beta(tan=0.900404, x=0.743145, y=0.669131): 0.900404044298\n    test 283 42 41.904331700939 Theta(tan=0.897385, x=0.744261, y=0.667889): 0.900404044298\n    test 284 42 41.952155366417 Mu(tan=0.898893, x=0.743703, y=0.66851): 0.900404044298\n    test 285 42 41.904427530254 Chi(tan=0.897388, x=0.74426, y=0.66789): 0.900404044298\n    test 286 42 41.968088079226 Xi(tan=0.899396, x=0.743517, y=0.668717): 0.900404044298\n\n    test 287 49 49.095253561343 Phi(tan=1.15424, x=0.656059, y=0.757248): 1.150368407221\n    test 288 49 49.000000000000 Beta(tan=1.15037, x=0.656059, y=0.75471): 1.150368407221\n    test 289 49 48.904701906378 Theta(tan=1.14651, x=0.656059, y=0.752179): 1.150368407221\n    test 290 49 48.952364883757 Mu(tan=1.14844, x=0.656686, y=0.754164), iteration=3: 1.150368407221\n    test 291 49 48.904823373499 Chi(tan=1.14652, x=1.0, y=1.14652), iteration=3: 1.150368407221\n    test 292 49 48.968230641178 Xi(tan=1.14908, x=1.31885, y=1.51547), iteration=3: 1.150368407221\n\n    test 293 49 49.095253561343 Phi(tan=1.15424, x=0.654803, y=0.755799): 1.150368407221\n    test 294 49 49.000000000000 Beta(tan=1.15037, x=0.656059, y=0.75471): 1.150368407221\n    test 295 49 48.904701906378 Theta(tan=1.14651, x=0.657313, y=0.753617): 1.150368407221\n    test 296 49 48.952364883757 Mu(tan=1.14844, x=0.656686, y=0.754164): 1.150368407221\n    test 297 49 48.904823373499 Chi(tan=1.14652, x=0.657312, y=0.753619): 1.150368407221\n    test 298 49 48.968230641178 Xi(tan=1.14908, x=0.656477, y=0.754346): 1.150368407221\n\n    test 299 56 56.089150284766 Phi(tan=1.48755, x=0.559193, y=0.831827): 1.482560968513\n    test 300 56 56.000000000000 Beta(tan=1.48256, x=0.559193, y=0.829038): 1.482560968513\n    test 301 56 55.910737485374 Theta(tan=1.47759, x=0.559193, y=0.826258): 1.482560968513\n    test 302 56 55.955403845590 Mu(tan=1.48007, x=0.559838, y=0.828602), iteration=3: 1.482560968513\n    test 303 56 55.910874805786 Chi(tan=1.4776, x=1.0, y=1.4776), iteration=3: 1.482560968513\n    test 304 56 55.970259966049 Xi(tan=1.4809, x=1.12427, y=1.66494), iteration=3: 1.482560968513\n\n    test 305 56 56.089150284766 Phi(tan=1.48755, x=0.557902, y=0.829907): 1.482560968513\n    test 306 56 56.000000000000 Beta(tan=1.48256, x=0.559193, y=0.829038): 1.482560968513\n    test 307 56 55.910737485374 Theta(tan=1.47759, x=0.560484, y=0.828165): 1.482560968513\n    test 308 56 55.955403845590 Mu(tan=1.48007, x=0.559838, y=0.828602): 1.482560968513\n    test 309 56 55.910874805786 Chi(tan=1.4776, x=0.560482, y=0.828167): 1.482560968513\n    test 310 56 55.970259966049 Xi(tan=1.4809, x=0.559623, y=0.828747): 1.482560968513\n\n    test 311 63 63.077760538972 Phi(tan=1.96921, x=0.45399, y=0.894004): 1.962610505505\n    test 312 63 63.000000000000 Beta(tan=1.96261, x=0.45399, y=0.891007): 1.962610505505\n    test 313 63 62.922085806991 Theta(tan=1.95603, x=0.45399, y=0.888019): 1.962610505505\n    test 314 63 62.961090973753 Mu(tan=1.95932, x=0.454595, y=0.890698), iteration=2: 1.962610505505\n    test 315 63 62.922224287619 Chi(tan=1.95604, x=1.0, y=1.95604), iteration=3: 1.962610505505\n    test 316 63 62.974054576334 Xi(tan=1.96042, x=0.912868, y=1.7896), iteration=3: 1.962610505505\n\n    test 317 63 63.077760538972 Phi(tan=1.96921, x=0.452781, y=0.891622): 1.962610505505\n    test 318 63 63.000000000000 Beta(tan=1.96261, x=0.45399, y=0.891007): 1.962610505505\n    test 319 63 62.922085806991 Theta(tan=1.95603, x=0.455202, y=0.890388): 1.962610505505\n    test 320 63 62.961090973753 Mu(tan=1.95932, x=0.454595, y=0.890698): 1.962610505505\n    test 321 63 62.922224287619 Chi(tan=1.95604, x=0.4552, y=0.890389): 1.962610505505\n    test 322 63 62.974054576334 Xi(tan=1.96042, x=0.454394, y=0.890801): 1.962610505505\n\n    test 323 70 70.061764561164 Phi(tan=2.75672, x=0.34202, y=0.942854): 2.747477419455\n    test 324 70 70.000000000000 Beta(tan=2.74748, x=0.34202, y=0.939693): 2.747477419455\n    test 325 70 69.938076331685 Theta(tan=2.73827, x=0.34202, y=0.936542): 2.747477419455\n    test 326 70 69.969087953771 Mu(tan=2.74287, x=0.342527, y=0.939508), iteration=3: 2.747477419455\n    test 327 70 69.938198769881 Chi(tan=2.73828, x=1.0, y=2.73828), iteration=3: 2.747477419455\n    test 328 70 69.979388479327 Xi(tan=2.74441, x=0.687791, y=1.88758), iteration=3: 2.747477419455\n\n    test 329 70 70.061764561164 Phi(tan=2.75672, x=0.341007, y=0.940061): 2.747477419455\n    test 330 70 70.000000000000 Beta(tan=2.74748, x=0.34202, y=0.939693): 2.747477419455\n    test 331 70 69.938076331685 Theta(tan=2.73827, x=0.343036, y=0.939322): 2.747477419455\n    test 332 70 69.969087953771 Mu(tan=2.74287, x=0.342527, y=0.939508): 2.747477419455\n    test 333 70 69.938198769881 Chi(tan=2.73828, x=0.343034, y=0.939323): 2.747477419455\n    test 334 70 69.979388479327 Xi(tan=2.74441, x=0.342358, y=0.93957): 2.747477419455\n\n    test 335 77 77.042113102652 Phi(tan=4.34605, x=0.224951, y=0.977648): 4.331475874284\n    test 336 77 77.000000000000 Beta(tan=4.33148, x=0.224951, y=0.97437): 4.331475874284\n    test 337 77 76.957759584883 Theta(tan=4.31695, x=0.224951, y=0.971103): 4.331475874284\n    test 338 77 76.978919638565 Mu(tan=4.32422, x=0.22531, y=0.974287), iteration=3: 4.331475874284\n    test 339 77 76.957849394477 Chi(tan=4.31698, x=1.0, y=4.31698), iteration=3: 4.331475874284\n    test 340 77 76.985944723491 Xi(tan=4.32663, x=0.452402, y=1.95738), iteration=3: 4.331475874284\n\n    test 341 77 77.042113102652 Phi(tan=4.34605, x=0.224235, y=0.974535): 4.331475874284\n    test 342 77 77.000000000000 Beta(tan=4.33148, x=0.224951, y=0.97437): 4.331475874284\n    test 343 77 76.957759584883 Theta(tan=4.31695, x=0.225669, y=0.974204): 4.331475874284\n    test 344 77 76.978919638565 Mu(tan=4.32422, x=0.22531, y=0.974287): 4.331475874284\n    test 345 77 76.957849394477 Chi(tan=4.31698, x=0.225668, y=0.974204): 4.331475874284\n    test 346 77 76.985944723491 Xi(tan=4.32663, x=0.22519, y=0.974315): 4.331475874284\n\n    test 347 84 84.019970846274 Phi(tan=9.54637, x=0.104528, y=0.997868): 9.514364454223\n    test 348 84 84.000000000000 Beta(tan=9.51436, x=0.104528, y=0.994522): 9.514364454223\n    test 349 84 83.979963440552 Theta(tan=9.48246, x=0.104528, y=0.991187): 9.514364454223\n    test 350 84 83.990002289461 Mu(tan=9.49842, x=0.104702, y=0.994504), iteration=3: 9.514364454223\n    test 351 84 83.980007825249 Chi(tan=9.48254, x=1.0, y=9.48254), iteration=3: 9.514364454223\n    test 352 84 83.993334244416 Xi(tan=9.50373, x=0.210228, y=1.99795), iteration=3: 9.514364454223\n\n    test 353 84 84.019970846274 Phi(tan=9.54637, x=0.104182, y=0.994558): 9.514364454223\n    test 354 84 84.000000000000 Beta(tan=9.51436, x=0.104528, y=0.994522): 9.514364454223\n    test 355 84 83.979963440552 Theta(tan=9.48246, x=0.104876, y=0.994485): 9.514364454223\n    test 356 84 83.990002289461 Mu(tan=9.49842, x=0.104702, y=0.994504): 9.514364454223\n    test 357 84 83.980007825249 Chi(tan=9.48254, x=0.104875, y=0.994485): 9.514364454223\n    test 358 84 83.993334244416 Xi(tan=9.50373, x=0.104644, y=0.99451): 9.514364454223\n\n    test 359 91 90.996647866757 Phi(tan=-57.4827, x=-0.0174524, y=1.00321): -57.289961630759\n    test 360 91 91.000000000000 Beta(tan=-57.29, x=-0.0174524, y=0.999848): -57.289961630759\n    test 361 91 91.003363403239 Theta(tan=-57.0979, x=-0.0174524, y=0.996495): -57.289961630759\n    test 362 91 91.001678173837 Mu(tan=-57.194, x=-0.0174817, y=0.999847), iteration=3: -57.289961630759\n    test 363 91 91.003355872504 Chi(tan=-57.0983, x=-1, y=57.0983), iteration=3: -57.289961630759\n    test 364 91 91.001118877197 Xi(tan=-57.2259, x=-0.0351008, y=2.00867), iteration=3: -57.289961630759\n\n    test 365 91 90.996647866757 Phi(tan=-57.4827, x=-0.0173939, y=0.999849): -57.289961630759\n    test 366 91 91.000000000000 Beta(tan=-57.29, x=-0.0174524, y=0.999848): -57.289961630759\n    test 367 91 91.003363403239 Theta(tan=-57.0979, x=-0.0175111, y=0.999847): -57.289961630760  FAILED, KNOWN (6.07726e-15), expected -57.289961630759\n    test 368 91 91.001678173837 Mu(tan=-57.194, x=-0.0174817, y=0.999847): -57.289961630760  FAILED, KNOWN (6.44934e-15), expected -57.289961630759\n    test 369 91 91.003355872504 Chi(tan=-57.0983, x=-0.017511, y=0.999847): -57.289961630760  FAILED, KNOWN (4.21687e-15), expected -57.289961630759\n    test 370 91 91.001118877197 Xi(tan=-57.2259, x=-0.0174719, y=0.999847): -57.289961630760  FAILED, KNOWN (5.08505e-15), expected -57.289961630759\n\n    test 371 98 97.973523052479 Phi(tan=-7.13931, x=-0.139173, y=0.993599): -7.115369722384\n    test 372 98 98.000000000000 Beta(tan=-7.11537, x=-0.139173, y=0.990268): -7.115369722384\n    test 373 98 98.026562562307 Theta(tan=-7.09151, x=-0.139173, y=0.986948): -7.115369722384\n    test 374 98 98.013254483126 Mu(tan=-7.10345, x=-0.139402, y=0.990236), iteration=3: -7.115369722384\n    test 375 98 98.026504224575 Chi(tan=-7.09157, x=-1, y=7.09157), iteration=3: -7.115369722384\n    test 376 98 98.008837191904 Xi(tan=-7.10742, x=-0.279903, y=1.98939), iteration=3: -7.115369722384\n\n    test 377 98 97.973523052479 Phi(tan=-7.13931, x=-0.138715, y=0.990332): -7.115369722384\n    test 378 98 98.000000000000 Beta(tan=-7.11537, x=-0.139173, y=0.990268): -7.115369722384\n    test 379 98 98.026562562307 Theta(tan=-7.09151, x=-0.139632, y=0.990203): -7.115369722384\n    test 380 98 98.013254483126 Mu(tan=-7.10345, x=-0.139402, y=0.990236): -7.115369722384\n    test 381 98 98.026504224575 Chi(tan=-7.09157, x=-0.139631, y=0.990204): -7.115369722384\n    test 382 98 98.008837191904 Xi(tan=-7.10742, x=-0.139326, y=0.990247): -7.115369722384\n\n    test 383 105 104.951963747366 Phi(tan=-3.74461, x=-0.258819, y=0.969175): -3.732050807569\n    test 384 105 105.000000000000 Beta(tan=-3.73205, x=-0.258819, y=0.965926): -3.732050807569\n    test 385 105 105.048176169243 Theta(tan=-3.71954, x=-0.258819, y=0.962687): -3.732050807569\n    test 386 105 105.024044295704 Mu(tan=-3.7258, x=-0.259224, y=0.965817), iteration=3: -3.732050807569\n    test 387 105 105.048075510346 Chi(tan=-3.71956, x=-1, y=3.71956), iteration=3: -3.732050807569\n    test 388 105 105.016031662804 Xi(tan=-3.72788, x=-0.520505, y=1.94038), iteration=3: -3.732050807569\n\n    test 389 105 104.951963747366 Phi(tan=-3.74461, x=-0.258009, y=0.966142): -3.732050807569\n    test 390 105 105.000000000000 Beta(tan=-3.73205, x=-0.258819, y=0.965926): -3.732050807569\n    test 391 105 105.048176169243 Theta(tan=-3.71954, x=-0.259631, y=0.965708): -3.732050807569\n    test 392 105 105.024044295704 Mu(tan=-3.7258, x=-0.259224, y=0.965817): -3.732050807569\n    test 393 105 105.048075510346 Chi(tan=-3.71956, x=-0.259629, y=0.965708): -3.732050807569\n    test 394 105 105.016031662804 Xi(tan=-3.72788, x=-0.259089, y=0.965853): -3.732050807569\n\n    test 395 112 111.933246025813 Phi(tan=-2.48341, x=-0.374607, y=0.930303): -2.475086853416\n    test 396 112 112.000000000000 Beta(tan=-2.47509, x=-0.374607, y=0.927184): -2.475086853416\n    test 397 112 112.066915437341 Theta(tan=-2.46679, x=-0.374607, y=0.924075): -2.475086853416\n    test 398 112 112.033407196712 Mu(tan=-2.47094, x=-0.375147, y=0.926965), iteration=3: -2.475086853416\n    test 399 112 112.066786634266 Chi(tan=-2.4668, x=-1, y=2.4668), iteration=3: -2.475086853416\n    test 400 112 112.022275613932 Xi(tan=-2.47232, x=-0.753301, y=1.8624), iteration=3: -2.475086853416\n\n    test 401 112 111.933246025813 Phi(tan=-2.48341, x=-0.373526, y=0.92762): -2.475086853416\n    test 402 112 112.000000000000 Beta(tan=-2.47509, x=-0.374607, y=0.927184): -2.475086853416\n    test 403 112 112.066915437341 Theta(tan=-2.46679, x=-0.375689, y=0.926746): -2.475086853416\n    test 404 112 112.033407196712 Mu(tan=-2.47094, x=-0.375147, y=0.926965): -2.475086853416\n    test 405 112 112.066786634266 Chi(tan=-2.4668, x=-0.375687, y=0.926747): -2.475086853416\n    test 406 112 112.022275613932 Xi(tan=-2.47232, x=-0.374967, y=0.927038): -2.475086853416\n\n    test 407 119 118.918479987923 Phi(tan=-1.81012, x=-0.48481, y=0.877562): -1.804047755271\n    test 408 119 119.000000000000 Beta(tan=-1.80405, x=-0.48481, y=0.87462): -1.804047755271\n    test 409 119 119.081665222463 Theta(tan=-1.798, x=-0.48481, y=0.871687): -1.804047755271\n    test 410 119 119.040787185717 Mu(tan=-1.80102, x=-0.485432, y=0.874274), iteration=3: -1.804047755271\n    test 411 119 119.081525372917 Chi(tan=-1.79801, x=-1, y=1.79801), iteration=3: -1.804047755271\n    test 412 119 119.027198394988 Xi(tan=-1.80203, x=-0.974807, y=1.75663), iteration=3: -1.804047755271\n\n    test 413 119 118.918479987923 Phi(tan=-1.81012, x=-0.483565, y=0.875309): -1.804047755271\n    test 414 119 119.000000000000 Beta(tan=-1.80405, x=-0.48481, y=0.87462): -1.804047755271\n    test 415 119 119.081665222463 Theta(tan=-1.798, x=-0.486056, y=0.873928): -1.804047755271\n    test 416 119 119.040787185717 Mu(tan=-1.80102, x=-0.485432, y=0.874274): -1.804047755271\n    test 417 119 119.081525372917 Chi(tan=-1.79801, x=-0.486054, y=0.873929): -1.804047755271\n    test 418 119 119.027198394988 Xi(tan=-1.80203, x=-0.485225, y=0.874389): -1.804047755271\n\n    test 419 126 125.908544256035 Phi(tan=-1.38101, x=-0.587785, y=0.811739): -1.376381920471\n    test 420 126 126.000000000000 Beta(tan=-1.37638, x=-0.587785, y=0.809017): -1.376381920471\n    test 421 126 126.091550707249 Theta(tan=-1.37177, x=-0.587785, y=0.806305): -1.376381920471\n    test 422 126 126.045745652474 Mu(tan=-1.37407, x=-0.588431, y=0.808547), iteration=3: -1.376381920471\n    test 423 126 126.091416595783 Chi(tan=-1.37177, x=-1, y=1.37177), iteration=3: -1.376381920471\n    test 424 126 126.030507332108 Xi(tan=-1.37484, x=-1.18171, y=1.62467), iteration=2: -1.376381920471\n\n    test 425 126 125.908544256035 Phi(tan=-1.38101, x=-0.586493, y=0.809954): -1.376381920471\n    test 426 126 126.000000000000 Beta(tan=-1.37638, x=-0.587785, y=0.809017): -1.376381920471\n    test 427 126 126.091550707249 Theta(tan=-1.37177, x=-0.589077, y=0.808077): -1.376381920471\n    test 428 126 126.045745652474 Mu(tan=-1.37407, x=-0.588431, y=0.808547): -1.376381920471\n    test 429 126 126.091416595783 Chi(tan=-1.37177, x=-0.589075, y=0.808078): -1.376381920471\n    test 430 126 126.030507332108 Xi(tan=-1.37484, x=-0.588216, y=0.808704): -1.376381920471\n\n    test 431 133 132.904033458108 Phi(tan=-1.07598, x=-0.681998, y=0.733814): -1.072368710025\n    test 432 133 133.000000000000 Beta(tan=-1.07237, x=-0.681998, y=0.731354): -1.072368710025\n    test 433 133 133.095989026852 Theta(tan=-1.06877, x=-0.681998, y=0.728902): -1.072368710025\n    test 434 133 133.047987474831 Mu(tan=-1.07057, x=-0.682611, y=0.730782), iteration=3: -1.072368710025\n    test 435 133 133.095874142459 Chi(tan=-1.06878, x=-1, y=1.06878), iteration=2: -1.072368710025\n    test 436 133 133.032005165725 Xi(tan=-1.07117, x=-1.37094, y=1.46851), iteration=3: -1.072368710025\n\n    test 437 133 132.904033458108 Phi(tan=-1.07598, x=-0.680772, y=0.732495): -1.072368710025\n    test 438 133 133.000000000000 Beta(tan=-1.07237, x=-0.681998, y=0.731354): -1.072368710025\n    test 439 133 133.095989026852 Theta(tan=-1.06877, x=-0.683223, y=0.73021): -1.072368710025\n    test 440 133 133.047987474831 Mu(tan=-1.07057, x=-0.682611, y=0.730782): -1.072368710025\n    test 441 133 133.095874142459 Chi(tan=-1.06878, x=-0.683221, y=0.730211): -1.072368710025\n    test 442 133 133.032005165725 Xi(tan=-1.07117, x=-0.682407, y=0.730973): -1.072368710025\n\n    test 443 140 139.905221888853 Phi(tan=-0.841922, x=-0.766044, y=0.64495): -0.839099631177\n    test 444 140 140.000000000000 Beta(tan=-0.8391, x=-0.766044, y=0.642788): -0.839099631177\n    test 445 140 140.094722853987 Theta(tan=-0.836286, x=-0.766044, y=0.640632): -0.839099631177\n    test 446 140 140.047378679025 Mu(tan=-0.837691, x=-0.766576, y=0.642154), iteration=2: -0.839099631177\n    test 447 140 140.094635301560 Chi(tan=-0.836289, x=-1, y=0.836289), iteration=3: -0.839099631177\n    test 448 140 140.031601928062 Xi(tan=-0.83816, x=-1.53968, y=1.2905), iteration=3: -0.839099631177\n\n    test 449 140 139.905221888853 Phi(tan=-0.841922, x=-0.76498, y=0.644054): -0.839099631177\n    test 450 140 140.000000000000 Beta(tan=-0.8391, x=-0.766044, y=0.642788): -0.839099631177\n    test 451 140 140.094722853987 Theta(tan=-0.836286, x=-0.767106, y=0.64152): -0.839099631177\n    test 452 140 140.047378679025 Mu(tan=-0.837691, x=-0.766576, y=0.642154): -0.839099631177\n    test 453 140 140.094635301560 Chi(tan=-0.836289, x=-0.767105, y=0.641521): -0.839099631177\n    test 454 140 140.031601928062 Xi(tan=-0.83816, x=-0.766399, y=0.642365): -0.839099631177\n\n    test 455 147 146.912045740495 Phi(tan=-0.651592, x=-0.838671, y=0.546471): -0.649407593198\n    test 456 147 147.000000000000 Beta(tan=-0.649408, x=-0.838671, y=0.544639): -0.649407593198\n    test 457 147 147.087834196097 Theta(tan=-0.64723, x=-0.838671, y=0.542813): -0.649407593198\n    test 458 147 147.043954583618 Mu(tan=-0.648317, x=-0.839088, y=0.543995), iteration=3: -0.649407593198\n    test 459 147 147.087775924345 Chi(tan=-0.647232, x=-1, y=0.647232), iteration=3: -0.649407593198\n    test 460 147 147.029320517871 Xi(tan=-0.64868, x=-1.68543, y=1.09331), iteration=3: -0.649407593198\n\n    test 461 147 146.912045740495 Phi(tan=-0.651592, x=-0.837834, y=0.545926): -0.649407593198\n    test 462 147 147.000000000000 Beta(tan=-0.649408, x=-0.838671, y=0.544639): -0.649407593198\n    test 463 147 147.087834196097 Theta(tan=-0.64723, x=-0.839505, y=0.543353): -0.649407593198\n    test 464 147 147.043954583618 Mu(tan=-0.648317, x=-0.839088, y=0.543995): -0.649407593198\n    test 465 147 147.087775924345 Chi(tan=-0.647232, x=-0.839504, y=0.543354): -0.649407593198\n    test 466 147 147.029320517871 Xi(tan=-0.64868, x=-0.838949, y=0.54421): -0.649407593198\n\n    test 467 154 153.924105301481 Phi(tan=-0.489373, x=-0.898794, y=0.439846): -0.487732588566\n    test 468 154 154.000000000000 Beta(tan=-0.487733, x=-0.898794, y=0.438371): -0.487732588566\n    test 469 154 154.075737936138 Theta(tan=-0.486097, x=-0.898794, y=0.436901): -0.487732588566\n    test 470 154 154.037917900127 Mu(tan=-0.486914, x=-0.899084, y=0.437776), iteration=3: -0.487732588566\n    test 471 154 154.075705391203 Chi(tan=-0.486098, x=-1, y=0.486098), iteration=3: -0.487732588566\n    test 472 154 154.025295587615 Xi(tan=-0.487186, x=-1.80605, y=0.879882), iteration=3: -0.487732588566\n\n    test 473 154 153.924105301481 Phi(tan=-0.489373, x=-0.898213, y=0.439561): -0.487732588566\n    test 474 154 154.000000000000 Beta(tan=-0.487733, x=-0.898794, y=0.438371): -0.487732588566\n    test 475 154 154.075737936138 Theta(tan=-0.486097, x=-0.899373, y=0.437183): -0.487732588566\n    test 476 154 154.037917900127 Mu(tan=-0.486914, x=-0.899084, y=0.437776): -0.487732588566\n    test 477 154 154.075705391203 Chi(tan=-0.486098, x=-0.899372, y=0.437183): -0.487732588566\n    test 478 154 154.025295587615 Xi(tan=-0.487186, x=-0.898987, y=0.437974): -0.487732588566\n\n    test 479 161 160.940687365843 Phi(tan=-0.345486, x=-0.945519, y=0.326663): -0.344327613290\n    test 480 161 161.000000000000 Beta(tan=-0.344328, x=-0.945519, y=0.325568): -0.344327613290\n    test 481 161 161.059155871563 Theta(tan=-0.343173, x=-0.945519, y=0.324477): -0.344327613290\n    test 482 161 161.029626856612 Mu(tan=-0.343749, x=-0.945687, y=0.325079), iteration=3: -0.344327613290\n    test 483 161 161.059141853346 Chi(tan=-0.343173, x=-1, y=0.343173), iteration=3: -0.344327613290\n    test 484 161 161.019765751188 Xi(tan=-0.343942, x=-1.89975, y=0.653405), iteration=3: -0.344327613290\n\n    test 485 161 160.940687365843 Phi(tan=-0.345486, x=-0.945181, y=0.326547): -0.344327613290\n    test 486 161 161.000000000000 Beta(tan=-0.344328, x=-0.945519, y=0.325568): -0.344327613290\n    test 487 161 161.059155871563 Theta(tan=-0.343173, x=-0.945854, y=0.324592): -0.344327613290\n    test 488 161 161.029626856612 Mu(tan=-0.343749, x=-0.945687, y=0.325079): -0.344327613290\n    test 489 161 161.059141853346 Chi(tan=-0.343173, x=-0.945854, y=0.324592): -0.344327613290\n    test 490 161 161.019765751188 Xi(tan=-0.343942, x=-0.945631, y=0.325242): -0.344327613290\n\n    test 491 168 167.960806838131 Phi(tan=-0.213272, x=-0.978148, y=0.208611): -0.212556561670\n    test 492 168 168.000000000000 Beta(tan=-0.212557, x=-0.978148, y=0.207912): -0.212556561670\n    test 493 168 168.039073098008 Theta(tan=-0.211844, x=-0.978148, y=0.207215): -0.212556561670\n    test 494 168 168.019574010622 Mu(tan=-0.2122, x=-0.978219, y=0.207578), iteration=2: -0.212556561670\n    test 495 168 168.039069322354 Chi(tan=-0.211844, x=-1, y=0.211844), iteration=2: -0.212556561670\n    test 496 168 168.013059526305 Xi(tan=-0.212318, x=-1.96517, y=0.417243), iteration=3: -0.212556561670\n\n    test 497 168 167.960806838131 Phi(tan=-0.213272, x=-0.978005, y=0.208581): -0.212556561670\n    test 498 168 168.000000000000 Beta(tan=-0.212557, x=-0.978148, y=0.207912): -0.212556561670\n    test 499 168 168.039073098008 Theta(tan=-0.211844, x=-0.978289, y=0.207245): -0.212556561670\n    test 500 168 168.019574010622 Mu(tan=-0.2122, x=-0.978219, y=0.207578): -0.212556561670\n    test 501 168 168.039069322354 Chi(tan=-0.211844, x=-0.978289, y=0.207245): -0.212556561670\n    test 502 168 168.013059526305 Xi(tan=-0.212318, x=-0.978195, y=0.207689): -0.212556561670\n\n    test 503 175 174.983265245736 Phi(tan=-0.087783, x=-0.996195, y=0.0874489): -0.087488663526\n    test 504 175 175.000000000000 Beta(tan=-0.0874887, x=-0.996195, y=0.0871557): -0.087488663526\n    test 505 175 175.016679496811 Theta(tan=-0.0871953, x=-0.996195, y=0.0868635): -0.087488663526\n    test 506 175 175.008356987733 Mu(tan=-0.0873417, x=-0.996207, y=0.0870104), iteration=3: -0.087488663526\n    test 507 175 175.016679213606 Chi(tan=-0.0871953, x=-1, y=0.0871953), iteration=2: -0.087488663526\n    test 508 175 175.005575818689 Xi(tan=-0.0873906, x=-2.00135, y=0.174899), iteration=2: -0.087488663526\n\n    test 509 175 174.983265245736 Phi(tan=-0.087783, x=-0.996169, y=0.0874467): -0.087488663526\n    test 510 175 175.000000000000 Beta(tan=-0.0874887, x=-0.996195, y=0.0871557): -0.087488663526\n    test 511 175 175.016679496811 Theta(tan=-0.0871953, x=-0.99622, y=0.0868657): -0.087488663526\n    test 512 175 175.008356987733 Mu(tan=-0.0873417, x=-0.996207, y=0.0870104): -0.087488663526\n    test 513 175 175.016679213606 Chi(tan=-0.0871953, x=-0.99622, y=0.0868657): -0.087488663526\n    test 514 175 175.005575818689 Xi(tan=-0.0873906, x=-0.996203, y=0.0870588): -0.087488663526\n\n    test 515 182 182.006722688009 Phi(tan=0.0350382, x=-0.999391, y=-0.0350169): 0.034920769492\n    test 516 182 182.000000000000 Beta(tan=0.0349208, x=-0.999391, y=-0.0348995): 0.034920769492\n    test 517 182 181.993299797077 Theta(tan=0.0348037, x=-0.999391, y=-0.0347825): 0.034920769492\n    test 518 182 181.996642883728 Mu(tan=0.0348621, x=-0.999393, y=-0.0348409), iteration=3: 0.034920769492\n    test 519 182 181.993299815318 Chi(tan=0.0348037, x=-1, y=-0.0348037), iteration=2: 0.034920769492\n    test 520 182 181.997760106963 Xi(tan=0.0348816, x=-2.00776, y=-0.0700339), iteration=3: 0.034920769492\n\n    test 521 182 182.006722688009 Phi(tan=0.0350382, x=-0.999387, y=-0.0350168): 0.034920769492\n    test 522 182 182.000000000000 Beta(tan=0.0349208, x=-0.999391, y=-0.0348995): 0.034920769492\n    test 523 182 181.993299797077 Theta(tan=0.0348037, x=-0.999395, y=-0.0347826): 0.034920769492\n    test 524 182 181.996642883728 Mu(tan=0.0348621, x=-0.999393, y=-0.0348409): 0.034920769492\n    test 525 182 181.993299815318 Chi(tan=0.0348037, x=-0.999395, y=-0.0347826): 0.034920769492\n    test 526 182 181.997760106963 Xi(tan=0.0348816, x=-0.999392, y=-0.0348604): 0.034920769492\n\n    test 527 189 189.029778772560 Phi(tan=0.158917, x=-0.987688, y=-0.156961): 0.158384440325\n    test 528 189 189.000000000000 Beta(tan=0.158384, x=-0.987688, y=-0.156434): 0.158384440325\n    test 529 189 188.970316191157 Theta(tan=0.157853, x=-0.987688, y=-0.15591): 0.158384440325\n    test 530 189 188.985128467162 Mu(tan=0.158118, x=-0.987729, y=-0.156178), iteration=3: 0.158384440325\n    test 531 189 188.970317814928 Chi(tan=0.157853, x=-1, y=-0.157853), iteration=2: 0.158384440325\n    test 532 189 188.990077770379 Xi(tan=0.158207, x=-1.9843, y=-0.31393), iteration=3: 0.158384440325\n\n    test 533 189 189.029778772560 Phi(tan=0.158917, x=-0.987607, y=-0.156948): 0.158384440325\n    test 534 189 189.000000000000 Beta(tan=0.158384, x=-0.987688, y=-0.156434): 0.158384440325\n    test 535 189 188.970316191157 Theta(tan=0.157853, x=-0.987769, y=-0.155923): 0.158384440325\n    test 536 189 188.985128467162 Mu(tan=0.158118, x=-0.987729, y=-0.156178): 0.158384440325\n    test 537 189 188.970317814928 Chi(tan=0.157853, x=-0.987769, y=-0.155923): 0.158384440325\n    test 538 189 188.990077770379 Xi(tan=0.158207, x=-0.987715, y=-0.156263): 0.158384440325\n\n    test 539 196 196.051057415277 Phi(tan=0.28771, x=-0.961262, y=-0.276565): 0.286745385759\n    test 540 196 196.000000000000 Beta(tan=0.286745, x=-0.961262, y=-0.275637): 0.286745385759\n    test 541 196 195.949087795468 Theta(tan=0.285784, x=-0.961262, y=-0.274713): 0.286745385759\n    test 542 196 195.974498585700 Mu(tan=0.286264, x=-0.961384, y=-0.275209), iteration=2: 0.286745385759\n    test 543 196 195.949096442818 Chi(tan=0.285784, x=-1, y=-0.285784), iteration=3: 0.286745385759\n    test 544 196 195.982986192635 Xi(tan=0.286424, x=-1.93132, y=-0.553176), iteration=3: 0.286745385759\n\n    test 545 196 196.051057415277 Phi(tan=0.28771, x=-0.961016, y=-0.276494): 0.286745385759\n    test 546 196 196.000000000000 Beta(tan=0.286745, x=-0.961262, y=-0.275637): 0.286745385759\n    test 547 196 195.949087795468 Theta(tan=0.285784, x=-0.961506, y=-0.274783): 0.286745385759\n    test 548 196 195.974498585700 Mu(tan=0.286264, x=-0.961384, y=-0.275209): 0.286745385759\n    test 549 196 195.949096442818 Chi(tan=0.285784, x=-0.961506, y=-0.274783): 0.286745385759\n    test 550 196 195.982986192635 Xi(tan=0.286424, x=-0.961344, y=-0.275352): 0.286745385759\n\n    test 551 203 203.069290086312 Phi(tan=0.425903, x=-0.920505, y=-0.392046): 0.424474816210\n    test 552 203 203.000000000000 Beta(tan=0.424475, x=-0.920505, y=-0.390731): 0.424474816210\n    test 553 203 202.930871376810 Theta(tan=0.423052, x=-0.920505, y=-0.389421): 0.424474816210\n    test 554 203 202.965385294258 Mu(tan=0.423762, x=-0.920741, y=-0.390175), iteration=3: 0.424474816210\n    test 555 203 202.930894974288 Chi(tan=0.423052, x=-1, y=-0.423052), iteration=3: 0.424474816210\n    test 556 203 202.976907357652 Xi(tan=0.423999, x=-1.84959, y=-0.784226), iteration=3: 0.424474816210\n\n    test 557 203 203.069290086312 Phi(tan=0.425903, x=-0.920032, y=-0.391844): 0.424474816210\n    test 558 203 203.000000000000 Beta(tan=0.424475, x=-0.920505, y=-0.390731): 0.424474816210\n    test 559 203 202.930871376810 Theta(tan=0.423052, x=-0.920976, y=-0.38962): 0.424474816210\n    test 560 203 202.965385294258 Mu(tan=0.423762, x=-0.920741, y=-0.390175): 0.424474816210\n    test 561 203 202.930894974288 Chi(tan=0.423052, x=-0.920975, y=-0.389621): 0.424474816210\n    test 562 203 202.976907357652 Xi(tan=0.423999, x=-0.920662, y=-0.39036): 0.424474816210\n\n    test 563 210 210.083392202979 Phi(tan=0.579293, x=-0.866025, y=-0.501682): 0.577350269190\n    test 564 210 210.000000000000 Beta(tan=0.57735, x=-0.866025, y=-0.5): 0.577350269190\n    test 565 210 209.916747713236 Theta(tan=0.575415, x=-0.866025, y=-0.498324): 0.577350269190\n    test 566 210 209.958330176858 Mu(tan=0.576381, x=-0.866389, y=-0.49937), iteration=2: 0.577350269190\n    test 567 210 209.916794258180 Chi(tan=0.575416, x=-1, y=-0.575416), iteration=2: 0.577350269190\n    test 568 210 209.972202619898 Xi(tan=0.576704, x=-1.74031, y=-1.00365), iteration=2: 0.577350269190\n\n    test 569 210 210.083392202979 Phi(tan=0.579293, x=-0.865297, y=-0.50126): 0.577350269190\n    test 570 210 210.000000000000 Beta(tan=0.57735, x=-0.866025, y=-0.5): 0.577350269190\n    test 571 210 209.916747713236 Theta(tan=0.575415, x=-0.866751, y=-0.498741): 0.577350269190\n    test 572 210 209.958330176858 Mu(tan=0.576381, x=-0.866389, y=-0.49937): 0.577350269190\n    test 573 210 209.916794258180 Chi(tan=0.575416, x=-0.866751, y=-0.498742): 0.577350269190\n    test 574 210 209.972202619898 Xi(tan=0.576704, x=-0.866268, y=-0.49958): 0.577350269190\n\n    test 575 217 217.092527888642 Phi(tan=0.756089, x=-0.798636, y=-0.60384): 0.753554050103\n    test 576 217 217.000000000000 Beta(tan=0.753554, x=-0.798636, y=-0.601815): 0.753554050103\n    test 577 217 216.907557725734 Theta(tan=0.751028, x=-0.798636, y=-0.599797): 0.753554050103\n    test 578 217 216.953752130797 Mu(tan=0.752289, x=-0.799121, y=-0.60117), iteration=2: 0.753554050103\n    test 579 217 216.907632616913 Chi(tan=0.75103, x=-1, y=-0.75103), iteration=3: 0.753554050103\n    test 580 217 216.969151185746 Xi(tan=0.75271, x=-1.60509, y=-1.20817), iteration=2: 0.753554050103\n\n    test 581 217 217.092527888642 Phi(tan=0.756089, x=-0.797663, y=-0.603104): 0.753554050103\n    test 582 217 217.000000000000 Beta(tan=0.753554, x=-0.798636, y=-0.601815): 0.753554050103\n    test 583 217 216.907557725734 Theta(tan=0.751028, x=-0.799605, y=-0.600526): 0.753554050103\n    test 584 217 216.953752130797 Mu(tan=0.752289, x=-0.799121, y=-0.60117): 0.753554050103\n    test 585 217 216.907632616913 Chi(tan=0.75103, x=-0.799605, y=-0.600527): 0.753554050103\n    test 586 217 216.969151185746 Xi(tan=0.75271, x=-0.798959, y=-0.601385): 0.753554050103\n\n    test 587 224 224.096159176144 Phi(tan=0.968937, x=-0.71934, y=-0.696995): 0.965688774807\n    test 588 224 224.000000000000 Beta(tan=0.965689, x=-0.71934, y=-0.694658): 0.965688774807\n    test 589 224 223.903852093789 Theta(tan=0.962451, x=-0.71934, y=-0.692329): 0.965688774807\n    test 590 224 223.951922536530 Mu(tan=0.964068, x=-0.719922, y=-0.694055), iteration=2: 0.965688774807\n    test 591 224 223.903955899504 Chi(tan=0.962454, x=-1, y=-0.962454), iteration=3: 0.965688774807\n    test 592 224 223.967933596024 Xi(tan=0.964608, x=-1.44592, y=-1.39475), iteration=3: 0.965688774807\n\n    test 593 224 224.096159176144 Phi(tan=0.968937, x=-0.718173, y=-0.695865): 0.965688774807\n    test 594 224 224.000000000000 Beta(tan=0.965689, x=-0.71934, y=-0.694658): 0.965688774807\n    test 595 224 223.903852093789 Theta(tan=0.962451, x=-0.720504, y=-0.69345): 0.965688774807\n    test 596 224 223.951922536530 Mu(tan=0.964068, x=-0.719922, y=-0.694055): 0.965688774807\n    test 597 224 223.903955899504 Chi(tan=0.962454, x=-0.720503, y=-0.693452): 0.965688774807\n    test 598 224 223.967933596024 Xi(tan=0.964608, x=-0.719728, y=-0.694256): 0.965688774807\n\n    test 599 231 231.094076843128 Phi(tan=1.23905, x=-0.62932, y=-0.77976): 1.234897156535\n    test 600 231 231.000000000000 Beta(tan=1.2349, x=-0.62932, y=-0.777146): 1.234897156535\n    test 601 231 230.905857444036 Theta(tan=1.23076, x=-0.62932, y=-0.77454): 1.234897156535\n    test 602 231 230.952949275029 Mu(tan=1.23283, x=-0.629958, y=-0.776629), iteration=3: 1.234897156535\n    test 603 231 230.905984687641 Chi(tan=1.23076, x=-1, y=-1.23076), iteration=3: 1.234897156535\n    test 604 231 230.968621174367 Xi(tan=1.23352, x=-1.26515, y=-1.56058), iteration=3: 1.234897156535\n\n    test 605 231 231.094076843128 Phi(tan=1.23905, x=-0.628044, y=-0.778178): 1.234897156535\n    test 606 231 231.000000000000 Beta(tan=1.2349, x=-0.62932, y=-0.777146): 1.234897156535\n    test 607 231 230.905857444036 Theta(tan=1.23076, x=-0.630596, y=-0.776111): 1.234897156535\n    test 608 231 230.952949275029 Mu(tan=1.23283, x=-0.629958, y=-0.776629): 1.234897156535\n    test 609 231 230.905984687641 Chi(tan=1.23076, x=-0.630595, y=-0.776112): 1.234897156535\n    test 610 231 230.968621174367 Xi(tan=1.23352, x=-0.629746, y=-0.776801): 1.234897156535\n\n    test 611 238 238.086411314589 Phi(tan=1.60572, x=-0.529919, y=-0.850901): 1.600334529041\n    test 612 238 238.000000000000 Beta(tan=1.60033, x=-0.529919, y=-0.848048): 1.600334529041\n    test 613 238 237.913461373388 Theta(tan=1.59497, x=-0.529919, y=-0.845205): 1.600334529041\n    test 614 238 237.956770509194 Mu(tan=1.59765, x=-0.530559, y=-0.847648), iteration=3: 1.600334529041\n    test 615 238 237.913600687903 Chi(tan=1.59498, x=-1, y=-1.59498), iteration=2: 1.600334529041\n    test 616 238 237.971172027129 Xi(tan=1.59854, x=-1.06545, y=-1.70318), iteration=3: 1.600334529041\n\n    test 617 238 238.086411314589 Phi(tan=1.60572, x=-0.52864, y=-0.848846): 1.600334529041\n    test 618 238 238.000000000000 Beta(tan=1.60033, x=-0.529919, y=-0.848048): 1.600334529041\n    test 619 238 237.913461373388 Theta(tan=1.59497, x=-0.5312, y=-0.847247): 1.600334529041\n    test 620 238 237.956770509194 Mu(tan=1.59765, x=-0.530559, y=-0.847648): 1.600334529041\n    test 621 238 237.913600687903 Chi(tan=1.59498, x=-0.531197, y=-0.847248): 1.600334529041\n    test 622 238 237.971172027129 Xi(tan=1.59854, x=-0.530346, y=-0.847781): 1.600334529041\n\n    test 623 245 245.073623344306 Phi(tan=2.15172, x=-0.422618, y=-0.909357): 2.144506920510\n    test 624 245 245.000000000000 Beta(tan=2.14451, x=-0.422618, y=-0.906308): 2.144506920510\n    test 625 245 244.926217548699 Theta(tan=2.13732, x=-0.422618, y=-0.903269): 2.144506920510\n    test 626 245 244.963158554024 Mu(tan=2.14091, x=-0.423201, y=-0.906036), iteration=2: 2.144506920510\n    test 627 245 244.926353236006 Chi(tan=2.13733, x=-1, y=-2.13733), iteration=3: 2.144506920510\n    test 628 245 244.975433776813 Xi(tan=2.14211, x=-0.849812, y=-1.82039), iteration=3: 2.144506920510\n\n    test 629 245 245.073623344306 Phi(tan=2.15172, x=-0.421453, y=-0.90685): 2.144506920510\n    test 630 245 245.000000000000 Beta(tan=2.14451, x=-0.422618, y=-0.906308): 2.144506920510\n    test 631 245 244.926217548699 Theta(tan=2.13732, x=-0.423785, y=-0.905763): 2.144506920510\n    test 632 245 244.963158554024 Mu(tan=2.14091, x=-0.423201, y=-0.906036): 2.144506920510\n    test 633 245 244.926353236006 Chi(tan=2.13733, x=-0.423783, y=-0.905764): 2.144506920510\n    test 634 245 244.975433776813 Xi(tan=2.14211, x=-0.423007, y=-0.906127): 2.144506920510\n\n    test 635 252 252.056475395211 Phi(tan=3.08804, x=-0.309017, y=-0.954256): 3.077683537175\n    test 636 252 252.000000000000 Beta(tan=3.07768, x=-0.309017, y=-0.951057): 3.077683537175\n    test 637 252 251.943370950484 Theta(tan=3.06736, x=-0.309017, y=-0.947868): 3.077683537175\n    test 638 252 251.971733559721 Mu(tan=3.07253, x=-0.309486, y=-0.950904), iteration=2: 3.077683537175\n    test 639 252 251.943485649406 Chi(tan=3.06739, x=-1, y=-3.06739), iteration=2: 3.077683537175\n    test 640 252 251.981152809484 Xi(tan=3.07424, x=-0.621437, y=-1.91045), iteration=3: 3.077683537175\n\n    test 641 252 252.056475395211 Phi(tan=3.08804, x=-0.308079, y=-0.951361): 3.077683537175\n    test 642 252 252.000000000000 Beta(tan=3.07768, x=-0.309017, y=-0.951057): 3.077683537175\n    test 643 252 251.943370950484 Theta(tan=3.06736, x=-0.309957, y=-0.950751): 3.077683537175\n    test 644 252 251.971733559721 Mu(tan=3.07253, x=-0.309486, y=-0.950904): 3.077683537175\n    test 645 252 251.943485649406 Chi(tan=3.06739, x=-0.309955, y=-0.950751): 3.077683537175\n    test 646 252 251.981152809484 Xi(tan=3.07424, x=-0.30933, y=-0.950955): 3.077683537175\n\n    test 647 259 259.035985707307 Phi(tan=5.16186, x=-0.190809, y=-0.984929): 5.144554015970\n    test 648 259 259.000000000000 Beta(tan=5.14455, x=-0.190809, y=-0.981627): 5.144554015970\n    test 649 259 258.963902062378 Theta(tan=5.12731, x=-0.190809, y=-0.978336): 5.144554015970\n    test 650 259 258.981986158342 Mu(tan=5.13593, x=-0.191118, y=-0.981567), iteration=3: 5.144554015970\n    test 651 259 258.963979961875 Chi(tan=5.12734, x=-1, y=-5.12734), iteration=3: 5.144554015970\n    test 652 259 258.987989441453 Xi(tan=5.1388, x=-0.383745, y=-1.97199), iteration=3: 5.144554015970\n\n    test 653 259 259.035985707307 Phi(tan=5.16186, x=-0.190192, y=-0.981747): 5.144554015970\n    test 654 259 259.000000000000 Beta(tan=5.14455, x=-0.190809, y=-0.981627): 5.144554015970\n    test 655 259 258.963902062378 Theta(tan=5.12731, x=-0.191427, y=-0.981507): 5.144554015970\n    test 656 259 258.981986158342 Mu(tan=5.13593, x=-0.191118, y=-0.981567): 5.144554015970\n    test 657 259 258.963979961875 Chi(tan=5.12734, x=-0.191426, y=-0.981507): 5.144554015970\n    test 658 259 258.987989441453 Xi(tan=5.1388, x=-0.191015, y=-0.981587): 5.144554015970\n\n    test 659 266 266.013367926454 Phi(tan=14.3488, x=-0.0697565, y=-1.00092): 14.300666256712\n    test 660 266 266.000000000000 Beta(tan=14.3007, x=-0.0697565, y=-0.997564): 14.300666256712\n    test 661 266 265.986587541025 Theta(tan=14.2527, x=-0.0697565, y=-0.994219): 14.300666256712\n    test 662 266 265.993307710088 Mu(tan=14.2767, x=-0.069873, y=-0.997556), iteration=3: 14.300666256712\n    test 663 266 265.986617434521 Chi(tan=14.2528, x=-1, y=-14.2528), iteration=3: 14.300666256712\n    test 664 266 265.995538081208 Xi(tan=14.2847, x=-0.140295, y=-2.00408), iteration=3: 14.300666256712\n\n    test 665 266 266.013367926454 Phi(tan=14.3488, x=-0.0695237, y=-0.99758): 14.300666256712\n    test 666 266 266.000000000000 Beta(tan=14.3007, x=-0.0697565, y=-0.997564): 14.300666256712\n    test 667 266 265.986587541025 Theta(tan=14.2527, x=-0.06999, y=-0.997548): 14.300666256712\n    test 668 266 265.993307710088 Mu(tan=14.2767, x=-0.069873, y=-0.997556): 14.300666256712\n    test 669 266 265.986617434521 Chi(tan=14.2528, x=-0.0699895, y=-0.997548): 14.300666256712\n    test 670 266 265.995538081208 Xi(tan=14.2847, x=-0.0698342, y=-0.997559): 14.300666256712\n\n    test 671 273 272.989959849669 Phi(tan=-19.1453, x=0.052336, y=-1.00199): -19.081136687728\n    test 672 273 273.000000000000 Beta(tan=-19.0811, x=0.052336, y=-0.99863): -19.081136687728\n    test 673 273 273.010073740960 Theta(tan=-19.0172, x=0.052336, y=-0.995281): -19.081136687728\n    test 674 273 273.005026355872 Mu(tan=-19.0492, x=0.0524236, y=-0.998625), iteration=2: -19.081136687728\n    test 675 273 273.010051240667 Chi(tan=-19.0173, x=1.0, y=-19.0173), iteration=3: -19.081136687728\n    test 676 273 273.003351193295 Xi(tan=-19.0598, x=0.105259, y=-2.00622), iteration=3: -19.081136687728\n\n    test 677 273 272.989959849669 Phi(tan=-19.1453, x=0.052161, y=-0.998639): -19.081136687728\n    test 678 273 273.000000000000 Beta(tan=-19.0811, x=0.052336, y=-0.99863): -19.081136687728\n    test 679 273 273.010073740960 Theta(tan=-19.0172, x=0.0525115, y=-0.99862): -19.081136687728\n    test 680 273 273.005026355872 Mu(tan=-19.0492, x=0.0524236, y=-0.998625): -19.081136687728\n    test 681 273 273.010051240667 Chi(tan=-19.0173, x=0.0525111, y=-0.99862): -19.081136687728\n    test 682 273 273.003351193295 Xi(tan=-19.0598, x=0.0523944, y=-0.998626): -19.081136687728\n\n    test 683 280 279.967145322218 Phi(tan=-5.69036, x=0.173648, y=-0.988121): -5.671281819618\n    test 684 280 280.000000000000 Beta(tan=-5.67128, x=0.173648, y=-0.984808): -5.671281819618\n    test 685 280 280.032958527773 Theta(tan=-5.65227, x=0.173648, y=-0.981506): -5.671281819618\n    test 686 280 280.016446759121 Mu(tan=-5.66178, x=0.173931, y=-0.984758), iteration=3: -5.671281819618\n    test 687 280 280.032886940584 Chi(tan=-5.65231, x=1.0, y=-5.65231), iteration=3: -5.671281819618\n    test 688 280 280.010965671278 Xi(tan=-5.66494, x=0.349234, y=-1.97839), iteration=3: -5.671281819618\n\n    test 689 280 279.967145322218 Phi(tan=-5.69036, x=0.173083, y=-0.984907): -5.671281819618\n    test 690 280 280.000000000000 Beta(tan=-5.67128, x=0.173648, y=-0.984808): -5.671281819618\n    test 691 280 280.032958527773 Theta(tan=-5.65227, x=0.174215, y=-0.984708): -5.671281819618\n    test 692 280 280.016446759121 Mu(tan=-5.66178, x=0.173931, y=-0.984758): -5.671281819618\n    test 693 280 280.032886940584 Chi(tan=-5.65231, x=0.174213, y=-0.984708): -5.671281819618\n    test 694 280 280.010965671278 Xi(tan=-5.66494, x=0.173837, y=-0.984775): -5.671281819618\n\n    test 695 287 286.946273607855 Phi(tan=-3.28186, x=0.292372, y=-0.959522): -3.270852618484\n    test 696 287 287.000000000000 Beta(tan=-3.27085, x=0.292372, y=-0.956305): -3.270852618484\n    test 697 287 287.053876189570 Theta(tan=-3.25989, x=0.292372, y=-0.953098): -3.270852618484\n    test 698 287 287.026891215965 Mu(tan=-3.26537, x=0.292821, y=-0.956167), iteration=3: -3.270852618484\n    test 699 287 287.053765856507 Chi(tan=-3.25991, x=1.0, y=-3.25991), iteration=3: -3.270852618484\n    test 700 287 287.017930102981 Xi(tan=-3.2672, x=0.58797, y=-1.92101), iteration=2: -3.270852618484\n\n    test 701 287 286.946273607855 Phi(tan=-3.28186, x=0.291475, y=-0.956578): -3.270852618484\n    test 702 287 287.000000000000 Beta(tan=-3.27085, x=0.292372, y=-0.956305): -3.270852618484\n    test 703 287 287.053876189570 Theta(tan=-3.25989, x=0.293271, y=-0.956029): -3.270852618484\n    test 704 287 287.026891215965 Mu(tan=-3.26537, x=0.292821, y=-0.956167): -3.270852618484\n    test 705 287 287.053765856507 Chi(tan=-3.25991, x=0.293269, y=-0.95603): -3.270852618484\n    test 706 287 287.017930102981 Xi(tan=-3.2672, x=0.292671, y=-0.956213): -3.270852618484\n\n    test 707 294 293.928580656019 Phi(tan=-2.25359, x=0.406737, y=-0.916619): -2.246036773904\n    test 708 294 294.000000000000 Beta(tan=-2.24604, x=0.406737, y=-0.913545): -2.246036773904\n    test 709 294 294.071580020440 Theta(tan=-2.23851, x=0.406737, y=-0.910483): -2.246036773904\n    test 710 294 294.035739737781 Mu(tan=-2.24227, x=0.407306, y=-0.913292), iteration=2: -2.246036773904\n    test 711 294 294.071446269026 Chi(tan=-2.23852, x=1.0, y=-2.23852), iteration=3: -2.246036773904\n    test 712 294 294.023831365709 Xi(tan=-2.24352, x=0.817889, y=-1.83495), iteration=3: -2.246036773904\n\n    test 713 294 293.928580656019 Phi(tan=-2.25359, x=0.405598, y=-0.914052): -2.246036773904\n    test 714 294 294.000000000000 Beta(tan=-2.24604, x=0.406737, y=-0.913545): -2.246036773904\n    test 715 294 294.071580020440 Theta(tan=-2.23851, x=0.407878, y=-0.913037): -2.246036773904\n    test 716 294 294.035739737781 Mu(tan=-2.24227, x=0.407306, y=-0.913292): -2.246036773904\n    test 717 294 294.071446269026 Chi(tan=-2.23852, x=0.407875, y=-0.913038): -2.246036773904\n    test 718 294 294.023831365709 Xi(tan=-2.24352, x=0.407117, y=-0.913376): -2.246036773904\n\n    test 719 301 300.915116613042 Phi(tan=-1.66988, x=0.515038, y=-0.860051): -1.664279482351\n    test 720 301 301.000000000000 Beta(tan=-1.66428, x=0.515038, y=-0.857167): -1.664279482351\n    test 721 301 301.085017327347 Theta(tan=-1.6587, x=0.515038, y=-0.854293): -1.664279482351\n    test 722 301 301.042466766526 Mu(tan=-1.66149, x=0.515673, y=-0.856785), iteration=2: -1.664279482351\n    test 723 301 301.084877498227 Chi(tan=-1.65871, x=1.0, y=-1.65871), iteration=3: -1.664279482351\n    test 724 301 301.028319023279 Xi(tan=-1.66242, x=1.03555, y=-1.72152), iteration=2: -1.664279482351\n\n    test 725 301 300.915116613042 Phi(tan=-1.66988, x=0.513768, y=-0.857929): -1.664279482351\n    test 726 301 301.000000000000 Beta(tan=-1.66428, x=0.515038, y=-0.857167): -1.664279482351\n    test 727 301 301.085017327347 Theta(tan=-1.6587, x=0.516309, y=-0.856402): -1.664279482351\n    test 728 301 301.042466766526 Mu(tan=-1.66149, x=0.515673, y=-0.856785): -1.664279482351\n    test 729 301 301.084877498227 Chi(tan=-1.65871, x=0.516307, y=-0.856403): -1.664279482351\n    test 730 301 301.028319023279 Xi(tan=-1.66242, x=0.515462, y=-0.856913): -1.664279482351\n\n    test 731 308 307.906683665119 Phi(tan=-1.28425, x=0.615661, y=-0.790662): -1.279941632193\n    test 732 308 308.000000000000 Beta(tan=-1.27994, x=0.615661, y=-0.788011): -1.279941632193\n    test 733 308 308.093392183249 Theta(tan=-1.27565, x=0.615661, y=-0.785369): -1.279941632193\n    test 734 308 308.046672369053 Mu(tan=-1.27779, x=0.616303, y=-0.787509), iteration=3: -1.279941632193\n    test 735 308 308.093262395276 Chi(tan=-1.27566, x=1.0, y=-1.27566), iteration=3: -1.279941632193\n    test 736 308 308.031126109597 Xi(tan=-1.27851, x=1.23771, y=-1.58243), iteration=2: -1.279941632193\n\n    test 737 308 307.906683665119 Phi(tan=-1.28425, x=0.614377, y=-0.789012): -1.279941632193\n    test 738 308 308.000000000000 Beta(tan=-1.27994, x=0.615661, y=-0.788011): -1.279941632193\n    test 739 308 308.093392183249 Theta(tan=-1.27565, x=0.616945, y=-0.787006): -1.279941632193\n    test 740 308 308.046672369053 Mu(tan=-1.27779, x=0.616303, y=-0.787509): -1.279941632193\n    test 741 308 308.093262395276 Chi(tan=-1.27566, x=0.616943, y=-0.787008): -1.279941632193\n    test 742 308 308.031126109597 Xi(tan=-1.27851, x=0.616089, y=-0.787676): -1.279941632193\n\n    test 743 315 314.903787849420 Phi(tan=-1.00336, x=0.707107, y=-0.709486): -1.000000000000\n    test 744 315 315.000000000000 Beta(tan=-1, x=0.707107, y=-0.707107): -1.000000000000\n    test 745 315 315.096212150580 Theta(tan=-0.996647, x=0.707107, y=-0.704736): -1.000000000000\n    test 746 315 315.048106063986 Mu(tan=-0.998322, x=0.7077, y=-0.706513), iteration=2: -1.000000000000\n    test 747 315 315.096104515452 Chi(tan=-0.996651, x=1.0, y=-0.996651), iteration=2: -1.000000000000\n    test 748 315 315.032085072505 Xi(tan=-0.998881, x=1.42136, y=-1.41977), iteration=3: -1.000000000000\n\n    test 749 315 314.903787849420 Phi(tan=-1.00336, x=0.705918, y=-0.708293): -1.000000000000\n    test 750 315 315.000000000000 Beta(tan=-1, x=0.707107, y=-0.707107): -1.000000000000\n    test 751 315 315.096212150580 Theta(tan=-0.996647, x=0.708293, y=-0.705918): -1.000000000000\n    test 752 315 315.048106063986 Mu(tan=-0.998322, x=0.7077, y=-0.706513): -1.000000000000\n    test 753 315 315.096104515452 Chi(tan=-0.996651, x=0.708292, y=-0.70592): -1.000000000000\n    test 754 315 315.032085072505 Xi(tan=-0.998881, x=0.707503, y=-0.706711): -1.000000000000\n\n    test 755 322 321.906607816751 Phi(tan=-0.783914, x=0.788011, y=-0.617733): -0.781285626507\n    test 756 322 322.000000000000 Beta(tan=-0.781286, x=0.788011, y=-0.615661): -0.781285626507\n    test 757 322 322.093316334881 Theta(tan=-0.778666, x=0.788011, y=-0.613597): -0.781285626507\n    test 758 322 322.046681850102 Mu(tan=-0.779974, x=0.788512, y=-0.615019), iteration=3: -0.781285626507\n    test 759 322 322.093237214147 Chi(tan=-0.778668, x=1.0, y=-0.778668), iteration=3: -0.781285626507\n    test 760 322 322.031137911470 Xi(tan=-0.780411, x=1.58377, y=-1.23599), iteration=2: -0.781285626507\n\n    test 761 322 321.906607816751 Phi(tan=-0.783914, x=0.787006, y=-0.616945): -0.781285626507\n    test 762 322 322.000000000000 Beta(tan=-0.781286, x=0.788011, y=-0.615661): -0.781285626507\n    test 763 322 322.093316334881 Theta(tan=-0.778666, x=0.789012, y=-0.614377): -0.781285626507\n    test 764 322 322.046681850102 Mu(tan=-0.779974, x=0.788512, y=-0.615019): -0.781285626507\n    test 765 322 322.093237214147 Chi(tan=-0.778668, x=0.789012, y=-0.614378): -0.781285626507\n    test 766 322 322.031137911470 Xi(tan=-0.780411, x=0.788345, y=-0.615233): -0.781285626507\n\n    test 767 329 328.914982672653 Phi(tan=-0.602882, x=0.857167, y=-0.516771): -0.600860619028\n    test 768 329 329.000000000000 Beta(tan=-0.600861, x=0.857167, y=-0.515038): -0.600860619028\n    test 769 329 329.084883386958 Theta(tan=-0.598846, x=0.857167, y=-0.513311): -0.600860619028\n    test 770 329 329.042483509069 Mu(tan=-0.599852, x=0.857549, y=-0.514402), iteration=3: -0.600860619028\n    test 771 329 329.084833030986 Chi(tan=-0.598847, x=1.0, y=-0.598847), iteration=3: -0.600860619028\n    test 772 329 329.028339864157 Xi(tan=-0.600188, x=1.72254, y=-1.03385), iteration=2: -0.600860619028\n\n    test 773 329 328.914982672653 Phi(tan=-0.602882, x=0.856402, y=-0.516309): -0.600860619028\n    test 774 329 329.000000000000 Beta(tan=-0.600861, x=0.857167, y=-0.515038): -0.600860619028\n    test 775 329 329.084883386958 Theta(tan=-0.598846, x=0.857929, y=-0.513768): -0.600860619028\n    test 776 329 329.042483509069 Mu(tan=-0.599852, x=0.857549, y=-0.514402): -0.600860619028\n    test 777 329 329.084833030986 Chi(tan=-0.598847, x=0.857929, y=-0.513768): -0.600860619028\n    test 778 329 329.028339864157 Xi(tan=-0.600188, x=0.857422, y=-0.514614): -0.600860619028\n\n    test 779 336 335.928419979560 Phi(tan=-0.446726, x=0.913545, y=-0.408105): -0.445228685309\n    test 780 336 336.000000000000 Beta(tan=-0.445229, x=0.913545, y=-0.406737): -0.445228685309\n    test 781 336 336.071419343981 Theta(tan=-0.443736, x=0.913545, y=-0.405373): -0.445228685309\n    test 782 336 336.035759822314 Mu(tan=-0.444481, x=0.913799, y=-0.406166), iteration=3: -0.445228685309\n    test 783 336 336.071392925660 Chi(tan=-0.443736, x=1.0, y=-0.443736), iteration=2: -0.445228685309\n    test 784 336 336.023856366648 Xi(tan=-0.44473, x=1.83563, y=-0.816362), iteration=3: -0.445228685309\n\n    test 785 336 335.928419979560 Phi(tan=-0.446726, x=0.913037, y=-0.407878): -0.445228685309\n    test 786 336 336.000000000000 Beta(tan=-0.445229, x=0.913545, y=-0.406737): -0.445228685309\n    test 787 336 336.071419343981 Theta(tan=-0.443736, x=0.914052, y=-0.405598): -0.445228685309\n    test 788 336 336.035759822314 Mu(tan=-0.444481, x=0.913799, y=-0.406166): -0.445228685309\n    test 789 336 336.071392925660 Chi(tan=-0.443736, x=0.914052, y=-0.405598): -0.445228685309\n    test 790 336 336.023856366648 Xi(tan=-0.44473, x=0.913715, y=-0.406356): -0.445228685309\n\n    test 791 343 342.946123810430 Phi(tan=-0.306759, x=0.956305, y=-0.293355): -0.305730681459\n    test 792 343 343.000000000000 Beta(tan=-0.305731, x=0.956305, y=-0.292372): -0.305730681459\n    test 793 343 343.053726392145 Theta(tan=-0.304706, x=0.956305, y=-0.291391): -0.305730681459\n    test 794 343 343.026909940603 Mu(tan=-0.305217, x=0.956442, y=-0.291923), iteration=3: -0.305730681459\n    test 795 343 343.053716124954 Chi(tan=-0.304706, x=1.0, y=-0.304706), iteration=3: -0.305730681459\n    test 796 343 343.017953411145 Xi(tan=-0.305388, x=1.92138, y=-0.586767), iteration=2: -0.305730681459\n\n    test 797 343 342.946123810430 Phi(tan=-0.306759, x=0.956029, y=-0.293271): -0.305730681459\n    test 798 343 343.000000000000 Beta(tan=-0.305731, x=0.956305, y=-0.292372): -0.305730681459\n    test 799 343 343.053726392145 Theta(tan=-0.304706, x=0.956578, y=-0.291475): -0.305730681459\n    test 800 343 343.026909940603 Mu(tan=-0.305217, x=0.956442, y=-0.291923): -0.305730681459\n    test 801 343 343.053716124955 Chi(tan=-0.304706, x=0.956578, y=-0.291475): -0.305730681459\n    test 802 343 343.017953411145 Xi(tan=-0.305388, x=0.956396, y=-0.292072): -0.305730681459\n\n    test 803 350 349.967041472227 Phi(tan=-0.17692, x=0.984808, y=-0.174232): -0.176326980708\n    test 804 350 350.000000000000 Beta(tan=-0.176327, x=0.984808, y=-0.173648): -0.176326980708\n    test 805 350 350.032854677782 Theta(tan=-0.175736, x=0.984808, y=-0.173066): -0.176326980708\n    test 806 350 350.016459740333 Mu(tan=-0.176031, x=0.984858, y=-0.173365), iteration=3: -0.176326980708\n    test 807 350 350.032852463246 Chi(tan=-0.175736, x=1.0, y=-0.175736), iteration=3: -0.176326980708\n    test 808 350 350.010981830106 Xi(tan=-0.176129, x=1.97853, y=-0.348476), iteration=3: -0.176326980708\n\n    test 809 350 349.967041472227 Phi(tan=-0.17692, x=0.984708, y=-0.174215): -0.176326980708\n    test 810 350 350.000000000000 Beta(tan=-0.176327, x=0.984808, y=-0.173648): -0.176326980708\n    test 811 350 350.032854677782 Theta(tan=-0.175736, x=0.984907, y=-0.173083): -0.176326980708\n    test 812 350 350.016459740333 Mu(tan=-0.176031, x=0.984858, y=-0.173365): -0.176326980708\n    test 813 350 350.032852463246 Chi(tan=-0.175736, x=0.984907, y=-0.173083): -0.176326980708\n    test 814 350 350.010981830106 Xi(tan=-0.176129, x=0.984841, y=-0.173459): -0.176326980708\n\n    test 815 357 356.989926259040 Phi(tan=-0.0525841, x=0.99863, y=-0.052512): -0.052407779283\n    test 816 357 357.000000000000 Beta(tan=-0.0524078, x=0.99863, y=-0.052336): -0.052407779283\n    test 817 357 357.010040150331 Theta(tan=-0.0522321, x=0.99863, y=-0.0521605): -0.052407779283\n    test 818 357 357.005030554687 Mu(tan=-0.0523197, x=0.998634, y=-0.0522483), iteration=2: -0.052407779283\n    test 819 357 357.010040088861 Chi(tan=-0.0522321, x=1.0, y=-0.0522321), iteration=2: -0.052407779283\n    test 820 357 357.003356419920 Xi(tan=-0.052349, x=2.00623, y=-0.105024), iteration=3: -0.052407779283\n\n    test 821 357 356.989926259040 Phi(tan=-0.0525841, x=0.99862, y=-0.0525115): -0.052407779283\n    test 822 357 357.000000000000 Beta(tan=-0.0524078, x=0.99863, y=-0.052336): -0.052407779283\n    test 823 357 357.010040150331 Theta(tan=-0.0522321, x=0.998639, y=-0.052161): -0.052407779283\n    test 824 357 357.005030554687 Mu(tan=-0.0523197, x=0.998634, y=-0.0522483): -0.052407779283\n    test 825 357 357.010040088861 Chi(tan=-0.0522321, x=0.998639, y=-0.052161): -0.052407779283\n    test 826 357 357.003356419920 Xi(tan=-0.052349, x=0.998633, y=-0.0522775): -0.052407779283\n\n    test 827  0 0.000000000000 Phi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 828  0 0.000000000000 Beta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 829  0 0.000000000000 Theta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 830  0 0.000000000000 Mu(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 831  0 0.000000000000 Chi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 832  0 0.000000000000 Xi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n\n    test 833  0 0.000000000000 Phi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 834  0 0.000000000000 Beta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 835  0 0.000000000000 Theta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 836  0 0.000000000000 Mu(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 837  0 0.000000000000 Chi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 838  0 0.000000000000 Xi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n\n    test 839  7 7.046702961824 Phi(tan=0.123612, x=1.0, y=0.123612): 0.122784560903\n    test 840  7 7.023313050940 Beta(tan=0.123198, x=1.0, y=0.123198): 0.122784560903\n    test 841  7 6.999999220873 Theta(tan=0.122785, x=1.0, y=0.122785): 0.122784560903\n    test 842  7 7.011632399558 Mu(tan=0.122991, x=0.992521, y=0.122071), iteration=3: 0.122784560903\n    test 843  7 7.000000000000 Chi(tan=0.122785, x=0.992546, y=0.121869): 0.122784560903\n    test 844  7 7.015519711118 Xi(tan=0.12306, x=1.99394, y=0.245373), iteration=3: 0.122784560903\n\n    test 845  7 7.046702961824 Phi(tan=0.123612, x=0.992446, y=0.122678): 0.122784560903\n    test 846  7 7.023313050940 Beta(tan=0.123198, x=0.992496, y=0.122273): 0.122784560903\n    test 847  7 6.999999220873 Theta(tan=0.122785, x=0.992546, y=0.121869): 0.122784560903\n    test 848  7 7.011632399558 Mu(tan=0.122991, x=0.992521, y=0.122071): 0.122784560903\n    test 849  7 7.000000000000 Chi(tan=0.122785, x=0.992546, y=0.121869): 0.122784560903\n    test 850  7 7.015519711118 Xi(tan=0.12306, x=0.992513, y=0.122138): 0.122784560903\n\n    test 851 14 14.090600177106 Phi(tan=0.251008, x=1.0, y=0.251008): 0.249328002843\n    test 852 14 14.045229997878 Beta(tan=0.250167, x=1.0, y=0.250167): 0.249328002843\n    test 853 14 13.999994044068 Theta(tan=0.249328, x=1.0, y=0.249328): 0.249328002843\n    test 854 14 14.022570138869 Mu(tan=0.249746, x=0.9702, y=0.242304), iteration=2: 0.249328002843\n    test 855 14 14.000000000000 Chi(tan=0.249328, x=0.970296, y=0.241922): 0.249328002843\n    test 856 14 14.030111806086 Xi(tan=0.249886, x=1.94905, y=0.487041), iteration=3: 0.249328002843\n\n    test 857 14 14.090600177106 Phi(tan=0.251008, x=0.969912, y=0.243456): 0.249328002843\n    test 858 14 14.045229997878 Beta(tan=0.250167, x=0.970104, y=0.242688): 0.249328002843\n    test 859 14 13.999994044068 Theta(tan=0.249328, x=0.970296, y=0.241922): 0.249328002843\n    test 860 14 14.022570138869 Mu(tan=0.249746, x=0.9702, y=0.242304): 0.249328002843\n    test 861 14 14.000000000000 Chi(tan=0.249328, x=0.970296, y=0.241922): 0.249328002843\n    test 862 14 14.030111806086 Xi(tan=0.249886, x=0.970168, y=0.242432): 0.249328002843\n\n    test 863 21 21.129059974007 Phi(tan=0.386451, x=1.0, y=0.386451): 0.383864035035\n    test 864 21 21.064440302978 Beta(tan=0.385155, x=1.0, y=0.385155): 0.383864035035\n    test 865 21 20.999981382849 Theta(tan=0.383864, x=1.0, y=0.383864): 0.383864035035\n    test 866 21 21.032160674247 Mu(tan=0.384508, x=0.933379, y=0.358892), iteration=3: 0.383864035035\n    test 867 21 21.000000000000 Chi(tan=0.383864, x=0.93358, y=0.358368): 0.383864035035\n    test 868 21 21.042905101186 Xi(tan=0.384723, x=1.875, y=0.721358), iteration=2: 0.383864035035\n\n    test 869 21 21.129059974007 Phi(tan=0.386451, x=0.932771, y=0.36047): 0.383864035035\n    test 870 21 21.064440302978 Beta(tan=0.385155, x=0.933177, y=0.359418): 0.383864035035\n    test 871 21 20.999981382849 Theta(tan=0.383864, x=0.933581, y=0.358368): 0.383864035035\n    test 872 21 21.032160674247 Mu(tan=0.384508, x=0.933379, y=0.358892): 0.383864035035\n    test 873 21 21.000000000000 Chi(tan=0.383864, x=0.93358, y=0.358368): 0.383864035035\n    test 874 21 21.042905101186 Xi(tan=0.384723, x=0.933312, y=0.359067): 0.383864035035\n\n    test 875 28 28.159786713307 Phi(tan=0.535292, x=1.0, y=0.535292): 0.531709431661\n    test 876 28 28.079798849800 Beta(tan=0.533497, x=1.0, y=0.533497): 0.531709431661\n    test 877 28 27.999960443908 Theta(tan=0.531709, x=1.0, y=0.531709): 0.531709431661\n    test 878 28 28.039832991509 Mu(tan=0.532602, x=0.882621, y=0.470085), iteration=3: 0.531709431661\n    test 879 28 28.000000000000 Chi(tan=0.531709, x=0.882948, y=0.469472): 0.531709431661\n    test 880 28 28.053137609764 Xi(tan=0.5329, x=1.77295, y=0.944804), iteration=2: 0.531709431661\n\n    test 881 28 28.159786713307 Phi(tan=0.535292, x=0.881635, y=0.471932): 0.531709431661\n    test 882 28 28.079798849800 Beta(tan=0.533497, x=0.882293, y=0.470701): 0.531709431661\n    test 883 28 27.999960443908 Theta(tan=0.531709, x=0.882948, y=0.469471): 0.531709431661\n    test 884 28 28.039832991509 Mu(tan=0.532602, x=0.882621, y=0.470085): 0.531709431661\n    test 885 28 28.000000000000 Chi(tan=0.531709, x=0.882948, y=0.469472): 0.531709431661\n    test 886 28 28.053137609764 Xi(tan=0.5329, x=0.882512, y=0.47029): 0.531709431661\n\n    test 887 35 35.180959671970 Phi(tan=0.704925, x=1.0, y=0.704925): 0.700207538210\n    test 888 35 35.090394869583 Beta(tan=0.702561, x=1.0, y=0.702561): 0.700207538210\n    test 889 35 34.999933133637 Theta(tan=0.700206, x=1.0, y=0.700206): 0.700207538210\n    test 890 35 35.045131821097 Mu(tan=0.701382, x=0.8187, y=0.574222), iteration=3: 0.700207538210\n    test 891 35 35.000000000000 Chi(tan=0.700208, x=0.819152, y=0.573576): 0.700207538210\n    test 892 35 35.060202265669 Xi(tan=0.701775, x=1.64445, y=1.15403), iteration=2: 0.700207538210\n\n    test 893 35 35.180959671970 Phi(tan=0.704925, x=0.817336, y=0.576161): 0.700207538210\n    test 894 35 35.090394869583 Beta(tan=0.702561, x=0.818246, y=0.574868): 0.700207538210\n    test 895 35 34.999933133637 Theta(tan=0.700206, x=0.819153, y=0.573575): 0.700207538210\n    test 896 35 35.045131821097 Mu(tan=0.701382, x=0.8187, y=0.574222): 0.700207538210\n    test 897 35 35.000000000000 Chi(tan=0.700208, x=0.819152, y=0.573576): 0.700207538210\n    test 898 35 35.060202265669 Xi(tan=0.701775, x=0.818549, y=0.574437): 0.700207538210\n\n    test 899 42 42.191340028820 Phi(tan=0.906469, x=1.0, y=0.906469): 0.900404044298\n    test 900 42 42.095605637640 Beta(tan=0.90343, x=1.0, y=0.90343): 0.900404044298\n    test 901 42 41.999903781382 Theta(tan=0.900401, x=1.0, y=0.900401): 0.900404044298\n    test 902 42 42.047744555205 Mu(tan=0.901914, x=0.742587, y=0.66975), iteration=2: 0.900404044298\n    test 903 42 42.000000000000 Chi(tan=0.900404, x=0.743145, y=0.669131): 0.900404044298\n    test 904 42 42.063682784184 Xi(tan=0.902419, x=1.49147, y=1.34593), iteration=2: 0.900404044298\n\n    test 905 42 42.191340028820 Phi(tan=0.906469, x=0.740906, y=0.671609): 0.900404044298\n    test 906 42 42.095605637640 Beta(tan=0.90343, x=0.742027, y=0.67037): 0.900404044298\n    test 907 42 41.999903781382 Theta(tan=0.900401, x=0.743146, y=0.669129): 0.900404044298\n    test 908 42 42.047744555205 Mu(tan=0.901914, x=0.742587, y=0.66975): 0.900404044298\n    test 909 42 42.000000000000 Chi(tan=0.900404, x=0.743145, y=0.669131): 0.900404044298\n    test 910 42 42.063682784184 Xi(tan=0.902419, x=0.742401, y=0.669956): 0.900404044298\n\n    test 911 49 49.190339913877 Phi(tan=1.15812, x=1.0, y=1.15812): 1.150368407221\n    test 912 49 49.095131857689 Beta(tan=1.15423, x=1.0, y=1.15423): 1.150368407221\n    test 913 49 48.999878238776 Theta(tan=1.15036, x=1.0, y=1.15036): 1.150368407221\n    test 914 49 49.047519300953 Mu(tan=1.1523, x=0.655433, y=0.755253), iteration=2: 1.150368407221\n    test 915 49 49.000000000000 Chi(tan=1.15037, x=0.656059, y=0.75471): 1.150368407221\n    test 916 49 49.063377582472 Xi(tan=1.15294, x=1.31633, y=1.51765), iteration=3: 1.150368407221\n\n    test 917 49 49.190339913877 Phi(tan=1.15812, x=0.653548, y=0.756885): 1.150368407221\n    test 918 49 49.095131857689 Beta(tan=1.15423, x=0.654805, y=0.755798): 1.150368407221\n    test 919 49 48.999878238776 Theta(tan=1.15036, x=0.656061, y=0.754708): 1.150368407221\n    test 920 49 49.047519300953 Mu(tan=1.1523, x=0.655433, y=0.755253): 1.150368407221\n    test 921 49 49.000000000000 Chi(tan=1.15037, x=0.656059, y=0.75471): 1.150368407221\n    test 922 49 49.063377582472 Xi(tan=1.15294, x=0.655224, y=0.755435): 1.150368407221\n\n    test 923 56 56.178050530882 Phi(tan=1.49254, x=1.0, y=1.49254): 1.482560968513\n    test 924 56 56.089013022552 Beta(tan=1.48754, x=1.0, y=1.48754): 1.482560968513\n    test 925 56 55.999862564323 Theta(tan=1.48255, x=1.0, y=1.48255): 1.482560968513\n    test 926 56 56.044473121630 Mu(tan=1.48505, x=0.558549, y=0.829471), iteration=2: 1.482560968513\n    test 927 56 56.000000000000 Chi(tan=1.48256, x=0.559193, y=0.829038): 1.482560968513\n    test 928 56 56.059310533694 Xi(tan=1.48588, x=1.12168, y=1.66668), iteration=2: 1.482560968513\n\n    test 929 56 56.178050530882 Phi(tan=1.49254, x=0.556614, y=0.830771): 1.482560968513\n    test 930 56 56.089013022552 Beta(tan=1.48754, x=0.557904, y=0.829905): 1.482560968513\n    test 931 56 55.999862564323 Theta(tan=1.48255, x=0.559195, y=0.829036): 1.482560968513\n    test 932 56 56.044473121630 Mu(tan=1.48505, x=0.558549, y=0.829471): 1.482560968513\n    test 933 56 56.000000000000 Chi(tan=1.48256, x=0.559193, y=0.829038): 1.482560968513\n    test 934 56 56.059310533694 Xi(tan=1.48588, x=0.558334, y=0.829616): 1.482560968513\n\n    test 935 63 63.155229303561 Phi(tan=1.97583, x=1.0, y=1.97583): 1.962610505505\n    test 936 63 63.077622413475 Beta(tan=1.9692, x=1.0, y=1.9692): 1.962610505505\n    test 937 63 62.999861601059 Theta(tan=1.9626, x=1.0, y=1.9626): 1.962610505505\n    test 938 63 63.038790161591 Mu(tan=1.9659, x=0.453387, y=0.891314), iteration=2: 1.962610505505\n    test 939 63 63.000000000000 Chi(tan=1.96261, x=0.45399, y=0.891007): 1.962610505505\n    test 940 63 63.051728205304 Xi(tan=1.967, x=0.910441, y=1.79084), iteration=3: 1.962610505505\n\n    test 941 63 63.155229303561 Phi(tan=1.97583, x=0.451575, y=0.892233): 1.962610505505\n    test 942 63 63.077622413475 Beta(tan=1.9692, x=0.452783, y=0.891621): 1.962610505505\n    test 943 63 62.999861601059 Theta(tan=1.9626, x=0.453993, y=0.891005): 1.962610505505\n    test 944 63 63.038790161591 Mu(tan=1.9659, x=0.453387, y=0.891314): 1.962610505505\n    test 945 63 63.000000000000 Chi(tan=1.96261, x=0.45399, y=0.891007): 1.962610505505\n    test 946 63 63.051728205304 Xi(tan=1.967, x=0.453186, y=0.891416): 1.962610505505\n\n    test 947 70 70.123248546098 Phi(tan=2.76598, x=1.0, y=2.76598): 2.747477419455\n    test 948 70 70.061642655565 Beta(tan=2.7567, x=1.0, y=2.7567): 2.747477419455\n    test 949 70 69.999877780085 Theta(tan=2.74746, x=1.0, y=2.74746): 2.747477419455\n    test 950 70 70.030809967607 Mu(tan=2.75208, x=0.341515, y=0.939876), iteration=3: 2.747477419455\n    test 951 70 70.000000000000 Chi(tan=2.74748, x=0.34202, y=0.939693): 2.747477419455\n    test 952 70 70.041084059681 Xi(tan=2.75362, x=0.685758, y=1.88832), iteration=3: 2.747477419455\n\n    test 953 70 70.123248546098 Phi(tan=2.76598, x=0.339998, y=0.940426): 2.747477419455\n    test 954 70 70.061642655565 Beta(tan=2.7567, x=0.341009, y=0.94006): 2.747477419455\n    test 955 70 69.999877780085 Theta(tan=2.74746, x=0.342022, y=0.939692): 2.747477419455\n    test 956 70 70.030809967607 Mu(tan=2.75208, x=0.341515, y=0.939876): 2.747477419455\n    test 957 70 70.000000000000 Chi(tan=2.74748, x=0.34202, y=0.939693): 2.747477419455\n    test 958 70 70.041084059681 Xi(tan=2.75362, x=0.341346, y=0.939938): 2.747477419455\n\n    test 959 77 77.084010155505 Phi(tan=4.36064, x=1.0, y=4.36064): 4.331475874284\n    test 960 77 77.042023802893 Beta(tan=4.34602, x=1.0, y=4.34602): 4.331475874284\n    test 961 77 76.999910430182 Theta(tan=4.33144, x=1.0, y=4.33144): 4.331475874284\n    test 962 77 77.021006871193 Mu(tan=4.33873, x=0.224594, y=0.974452), iteration=2: 4.331475874284\n    test 963 77 77.000000000000 Chi(tan=4.33148, x=0.224951, y=0.97437): 4.331475874284\n    test 964 77 77.028010821264 Xi(tan=4.34116, x=0.450965, y=1.95771), iteration=2: 4.331475874284\n\n    test 965 77 77.084010155505 Phi(tan=4.36064, x=0.223522, y=0.974699): 4.331475874284\n    test 966 77 77.042023802893 Beta(tan=4.34602, x=0.224236, y=0.974535): 4.331475874284\n    test 967 77 76.999910430182 Theta(tan=4.33144, x=0.224953, y=0.97437): 4.331475874284\n    test 968 77 77.021006871193 Mu(tan=4.33873, x=0.224594, y=0.974452): 4.331475874284\n    test 969 77 77.000000000000 Chi(tan=4.33148, x=0.224951, y=0.97437): 4.331475874284\n    test 970 77 77.028010821264 Xi(tan=4.34116, x=0.224475, y=0.97448): 4.331475874284\n\n    test 971 84 84.039832232299 Phi(tan=9.57842, x=1.0, y=9.57842): 9.514364454223\n    test 972 84 84.019926748698 Beta(tan=9.5463, x=1.0, y=9.5463): 9.514364454223\n    test 973 84 83.999955757312 Theta(tan=9.51429, x=1.0, y=9.51429): 9.514364454223\n    test 974 84 84.009961757905 Mu(tan=9.5303, x=0.104356, y=0.99454), iteration=3: 9.514364454223\n    test 975 84 84.000000000000 Chi(tan=9.51436, x=0.104528, y=0.994522): 9.514364454223\n    test 976 84 84.013282808640 Xi(tan=9.53563, x=0.209532, y=1.99802), iteration=2: 9.514364454223\n\n    test 977 84 84.039832232299 Phi(tan=9.57842, x=0.103837, y=0.994594): 9.514364454223\n    test 978 84 84.019926748698 Beta(tan=9.5463, x=0.104183, y=0.994558): 9.514364454223\n    test 979 84 83.999955757312 Theta(tan=9.51429, x=0.104529, y=0.994522): 9.514364454223\n    test 980 84 84.009961757905 Mu(tan=9.5303, x=0.104356, y=0.99454): 9.514364454223\n    test 981 84 84.000000000000 Chi(tan=9.51436, x=0.104528, y=0.994522): 9.514364454223\n    test 982 84 84.013282808640 Xi(tan=9.53563, x=0.104298, y=0.994546): 9.514364454223\n\n    test 983 91 90.993314421151 Phi(tan=-57.6756, x=-1, y=57.6756): -57.289961630759\n    test 984 91 90.996655347181 Beta(tan=-57.4823, x=-1, y=57.4823): -57.289961630759\n    test 985 91 91.000007505573 Theta(tan=-57.2895, x=-1, y=57.2895): -57.289961630759\n    test 986 91 90.998327910374 Mu(tan=-57.3859, x=-0.0174232, y=0.999848), iteration=3: -57.289961630759\n    test 987 91 91.000000000000 Chi(tan=-57.29, x=-0.0174524, y=0.999848): -57.289961630759\n    test 988 91 90.997770483630 Xi(tan=-57.418, x=-0.0349834, y=2.00868), iteration=2: -57.289961630759\n\n    test 989 91 90.993314421151 Phi(tan=-57.6756, x=-0.0173357, y=0.99985): -57.289961630760  FAILED, KNOWN (8.1857e-15), expected -57.289961630759\n    test 990 91 90.996655347181 Beta(tan=-57.4823, x=-0.017394, y=0.999849): -57.289961630760  FAILED, KNOWN (3.72077e-15), expected -57.289961630759\n    test 991 91 91.000007505573 Theta(tan=-57.2895, x=-0.0174525, y=0.999848): -57.289961630759\n    test 992 91 90.998327910374 Mu(tan=-57.3859, x=-0.0174232, y=0.999848): -57.289961630759\n    test 993 91 91.000000000000 Chi(tan=-57.29, x=-0.0174524, y=0.999848): -57.289961630759\n    test 994 91 90.997770483630 Xi(tan=-57.418, x=-0.0174135, y=0.999848): -57.289961630760  FAILED, KNOWN (3.8448e-15), expected -57.289961630759\n\n    test 995 98 97.947189249597 Phi(tan=-7.16327, x=-1, y=7.16327): -7.115369722384\n    test 996 98 97.973581022657 Beta(tan=-7.13925, x=-1, y=7.13925): -7.115369722384\n    test 997 98 98.000058157653 Theta(tan=-7.11532, x=-1, y=7.11532): -7.115369722384\n    test 998 98 97.986792871261 Mu(tan=-7.12729, x=-0.138945, y=0.9903), iteration=3: -7.115369722384\n    test 999 98 98.000000000000 Chi(tan=-7.11537, x=-0.139173, y=0.990268): -7.115369722384\n    test 1000 98 97.982389787937 Xi(tan=-7.13127, x=-0.278984, y=1.98951), iteration=3: -7.115369722384\n\n    test 1001 98 97.947189249597 Phi(tan=-7.16327, x=-0.13826, y=0.990396): -7.115369722384\n    test 1002 98 97.973581022657 Beta(tan=-7.13925, x=-0.138716, y=0.990332): -7.115369722384\n    test 1003 98 98.000058157653 Theta(tan=-7.11532, x=-0.139174, y=0.990268): -7.115369722384\n    test 1004 98 97.986792871261 Mu(tan=-7.12729, x=-0.138945, y=0.9903): -7.115369722384\n    test 1005 98 98.000000000000 Chi(tan=-7.11537, x=-0.139173, y=0.990268): -7.115369722384\n    test 1006 98 97.982389787937 Xi(tan=-7.13127, x=-0.138869, y=0.990311): -7.115369722384\n\n    test 1007 105 104.904166968877 Phi(tan=-3.75718, x=-1, y=3.75718): -3.732050807569\n    test 1008 105 104.952063867788 Beta(tan=-3.74458, x=-1, y=3.74458): -3.732050807569\n    test 1009 105 105.000100412186 Theta(tan=-3.73202, x=-1, y=3.73202): -3.732050807569\n    test 1010 105 104.976038435868 Mu(tan=-3.7383, x=-0.258415, y=0.966034), iteration=2: -3.732050807569\n    test 1011 105 105.000000000000 Chi(tan=-3.73205, x=-0.258819, y=0.965926): -3.732050807569\n    test 1012 105 104.968049034476 Xi(tan=-3.74039, x=-0.51888, y=1.94082), iteration=2: -3.732050807569\n\n    test 1013 105 104.904166968877 Phi(tan=-3.75718, x=-0.257203, y=0.966357): -3.732050807569\n    test 1014 105 104.952063867788 Beta(tan=-3.74458, x=-0.258011, y=0.966142): -3.732050807569\n    test 1015 105 105.000100412186 Theta(tan=-3.73202, x=-0.258821, y=0.965925): -3.732050807569\n    test 1016 105 104.976038435868 Mu(tan=-3.7383, x=-0.258415, y=0.966034): -3.732050807569\n    test 1017 105 105.000000000000 Chi(tan=-3.73205, x=-0.258819, y=0.965926): -3.732050807569\n    test 1018 105 104.968049034476 Xi(tan=-3.74039, x=-0.25828, y=0.96607): -3.732050807569\n\n    test 1019 112 111.866781479115 Phi(tan=-2.49175, x=-1, y=2.49175): -2.475086853416\n    test 1020 112 111.933374328805 Beta(tan=-2.4834, x=-1, y=2.4834): -2.475086853416\n    test 1021 112 112.000128613678 Theta(tan=-2.47507, x=-1, y=2.47507): -2.475086853416\n    test 1022 112 111.966700957925 Mu(tan=-2.47923, x=-0.374068, y=0.927401), iteration=2: -2.475086853416\n    test 1023 112 112.000000000000 Chi(tan=-2.47509, x=-0.374607, y=0.927184): -2.475086853416\n    test 1024 112 111.955596207977 Xi(tan=-2.48062, x=-0.751133, y=1.86328), iteration=3: -2.475086853416\n\n    test 1025 112 111.866781479115 Phi(tan=-2.49175, x=-0.37245, y=0.928052): -2.475086853416\n    test 1026 112 111.933374328805 Beta(tan=-2.4834, x=-0.373528, y=0.927619): -2.475086853416\n    test 1027 112 112.000128613678 Theta(tan=-2.47507, x=-0.374609, y=0.927183): -2.475086853416\n    test 1028 112 111.966700957925 Mu(tan=-2.47923, x=-0.374068, y=0.927401): -2.475086853416\n    test 1029 112 112.000000000000 Chi(tan=-2.47509, x=-0.374607, y=0.927184): -2.475086853416\n    test 1030 112 111.955596207977 Xi(tan=-2.48062, x=-0.373888, y=0.927474): -2.475086853416\n\n    test 1031 119 118.837244909169 Phi(tan=-1.8162, x=-1, y=1.8162): -1.804047755271\n    test 1032 119 118.918619560007 Beta(tan=-1.81011, x=-1, y=1.81011): -1.804047755271\n    test 1033 119 119.000139821268 Theta(tan=-1.80404, x=-1, y=1.80404): -1.804047755271\n    test 1034 119 118.959334139853 Mu(tan=-1.80707, x=-0.484189, y=0.874964), iteration=3: -1.804047755271\n    test 1035 119 119.000000000000 Chi(tan=-1.80405, x=-0.48481, y=0.87462): -1.804047755271\n    test 1036 119 118.945769514985 Xi(tan=-1.80808, x=-0.972309, y=1.75801), iteration=3: -1.804047755271\n\n    test 1037 119 118.837244909169 Phi(tan=-1.8162, x=-0.482323, y=0.875993): -1.804047755271\n    test 1038 119 118.918619560007 Beta(tan=-1.81011, x=-0.483567, y=0.875307): -1.804047755271\n    test 1039 119 119.000139821268 Theta(tan=-1.80404, x=-0.484812, y=0.874619): -1.804047755271\n    test 1040 119 118.959334139853 Mu(tan=-1.80707, x=-0.484189, y=0.874964): -1.804047755271\n    test 1041 119 119.000000000000 Chi(tan=-1.80405, x=-0.48481, y=0.87462): -1.804047755271\n    test 1042 119 118.945769514985 Xi(tan=-1.80808, x=-0.483982, y=0.875078): -1.804047755271\n\n    test 1043 126 125.817318309875 Phi(tan=-1.38565, x=-1, y=1.38565): -1.376381920471\n    test 1044 126 125.908678399154 Beta(tan=-1.38101, x=-1, y=1.38101): -1.376381920471\n    test 1045 126 126.000134283091 Theta(tan=-1.37638, x=-1, y=1.37638): -1.376381920471\n    test 1046 126 125.954376379912 Mu(tan=-1.37869, x=-0.587141, y=0.809485), iteration=3: -1.376381920471\n    test 1047 126 126.000000000000 Chi(tan=-1.37638, x=-0.587785, y=0.809017): -1.376381920471\n    test 1048 126 125.939153905889 Xi(tan=-1.37946, x=-1.17912, y=1.62655), iteration=2: -1.376381920471\n\n    test 1049 126 125.817318309875 Phi(tan=-1.38565, x=-0.585203, y=0.810887): -1.376381920471\n    test 1050 126 125.908678399154 Beta(tan=-1.38101, x=-0.586495, y=0.809953): -1.376381920471\n    test 1051 126 126.000134283091 Theta(tan=-1.37638, x=-0.587787, y=0.809016): -1.376381920471\n    test 1052 126 125.954376379912 Mu(tan=-1.37869, x=-0.587141, y=0.809485): -1.376381920471\n    test 1053 126 126.000000000000 Chi(tan=-1.37638, x=-0.587785, y=0.809017): -1.376381920471\n    test 1054 126 125.939153905889 Xi(tan=-1.37946, x=-0.586926, y=0.809641): -1.376381920471\n\n    test 1055 133 132.808205632210 Phi(tan=-1.07959, x=-1, y=1.07959): -1.072368710025\n    test 1056 133 132.904148646694 Beta(tan=-1.07597, x=-1, y=1.07597): -1.072368710025\n    test 1057 133 133.000115216221 Theta(tan=-1.07236, x=-1, y=1.07236): -1.072368710025\n    test 1058 133 132.952124558388 Mu(tan=-1.07417, x=-0.681387, y=0.731923), iteration=2: -1.072368710025\n    test 1059 133 133.000000000000 Chi(tan=-1.07237, x=-0.681998, y=0.731354): -1.072368710025\n    test 1060 133 132.936146061572 Xi(tan=-1.07477, x=-1.36848, y=1.4708), iteration=3: -1.072368710025\n\n    test 1061 133 132.808205632210 Phi(tan=-1.07959, x=-0.679546, y=0.733633): -1.072368710025\n    test 1062 133 132.904148646694 Beta(tan=-1.07597, x=-0.680774, y=0.732494): -1.072368710025\n    test 1063 133 133.000115216221 Theta(tan=-1.07236, x=-0.682, y=0.731352): -1.072368710025\n    test 1064 133 132.952124558388 Mu(tan=-1.07417, x=-0.681387, y=0.731923): -1.072368710025\n    test 1065 133 133.000000000000 Chi(tan=-1.07237, x=-0.681998, y=0.731354): -1.072368710025\n    test 1066 133 132.936146061572 Xi(tan=-1.07477, x=-0.681183, y=0.732113): -1.072368710025\n\n    test 1067 140 139.810477575926 Phi(tan=-0.844752, x=-1, y=0.844752): -0.839099631177\n    test 1068 140 139.905309888599 Beta(tan=-0.84192, x=-1, y=0.84192): -0.839099631177\n    test 1069 140 140.000087948921 Theta(tan=-0.839097, x=-1, y=0.839097): -0.839099631177\n    test 1070 140 139.952715856955 Mu(tan=-0.840507, x=-0.765514, y=0.64342), iteration=2: -0.839099631177\n    test 1071 140 140.000000000000 Chi(tan=-0.8391, x=-0.766044, y=0.642788): -0.839099631177\n    test 1072 140 139.936929981390 Xi(tan=-0.840977, x=-1.53755, y=1.29304), iteration=2: -0.839099631177\n\n    test 1073 140 139.810477575926 Phi(tan=-0.844752, x=-0.763914, y=0.645318): -0.839099631177\n    test 1074 140 139.905309888599 Beta(tan=-0.84192, x=-0.764981, y=0.644053): -0.839099631177\n    test 1075 140 140.000087948921 Theta(tan=-0.839097, x=-0.766045, y=0.642786): -0.839099631177\n    test 1076 140 139.952715856955 Mu(tan=-0.840507, x=-0.765514, y=0.64342): -0.839099631177\n    test 1077 140 140.000000000000 Chi(tan=-0.8391, x=-0.766044, y=0.642788): -0.839099631177\n    test 1078 140 139.936929981390 Xi(tan=-0.840977, x=-0.765336, y=0.64363): -0.839099631177\n\n    test 1079 147 146.824030870318 Phi(tan=-0.653783, x=-1, y=0.653783): -0.649407593198\n    test 1080 147 146.912104447745 Beta(tan=-0.651591, x=-1, y=0.651591): -0.649407593198\n    test 1081 147 147.000058627387 Theta(tan=-0.649406, x=-1, y=0.649406): -0.649407593198\n    test 1082 147 146.956118815411 Mu(tan=-0.650497, x=-0.838253, y=0.545281), iteration=2: -0.649407593198\n    test 1083 147 147.000000000000 Chi(tan=-0.649408, x=-0.838671, y=0.544639): -0.649407593198\n    test 1084 147 146.941464815429 Xi(tan=-0.650861, x=-1.68375, y=1.09589), iteration=2: -0.649407593198\n\n    test 1085 147 146.824030870318 Phi(tan=-0.653783, x=-0.836994, y=0.547212): -0.649407593198\n    test 1086 147 146.912104447745 Beta(tan=-0.651591, x=-0.837834, y=0.545925): -0.649407593198\n    test 1087 147 147.000058627387 Theta(tan=-0.649406, x=-0.838671, y=0.544638): -0.649407593198\n    test 1088 147 146.956118815411 Mu(tan=-0.650497, x=-0.838253, y=0.545281): -0.649407593198\n    test 1089 147 147.000000000000 Chi(tan=-0.649408, x=-0.838671, y=0.544639): -0.649407593198\n    test 1090 147 146.941464815429 Xi(tan=-0.650861, x=-0.838114, y=0.545496): -0.649407593198\n\n    test 1091 154 153.848086974871 Phi(tan=-0.491019, x=-1, y=0.491019): -0.487732588566\n    test 1092 154 153.924138158817 Beta(tan=-0.489373, x=-1, y=0.489373): -0.487732588566\n    test 1093 154 154.000032789582 Theta(tan=-0.487732, x=-1, y=0.487732): -0.487732588566\n    test 1094 154 153.962134341087 Mu(tan=-0.488551, x=-0.898504, y=0.438965), iteration=2: -0.487732588566\n    test 1095 154 154.000000000000 Chi(tan=-0.487733, x=-0.898794, y=0.438371): -0.487732588566\n    test 1096 154 153.949485950322 Xi(tan=-0.488824, x=-1.80488, y=0.88227), iteration=2: -0.487732588566\n\n    test 1097 154 153.848086974871 Phi(tan=-0.491019, x=-0.897629, y=0.440753): -0.487732588566\n    test 1098 154 153.924138158817 Beta(tan=-0.489373, x=-0.898213, y=0.439561): -0.487732588566\n    test 1099 154 154.000032789582 Theta(tan=-0.487732, x=-0.898794, y=0.438371): -0.487732588566\n    test 1100 154 153.962134341087 Mu(tan=-0.488551, x=-0.898504, y=0.438965): -0.487732588566\n    test 1101 154 154.000000000000 Chi(tan=-0.487733, x=-0.898794, y=0.438371): -0.487732588566\n    test 1102 154 153.949485950322 Xi(tan=-0.488824, x=-0.898407, y=0.439163): -0.487732588566\n\n    test 1103 161 160.881232023490 Phi(tan=-0.346648, x=-1, y=0.346648): -0.344327613290\n    test 1104 161 160.940701543262 Beta(tan=-0.345486, x=-1, y=0.345486): -0.344327613290\n    test 1105 161 161.000014139979 Theta(tan=-0.344327, x=-1, y=0.344327): -0.344327613290\n    test 1106 161 160.970406812614 Mu(tan=-0.344905, x=-0.94535, y=0.326056), iteration=3: -0.344327613290\n    test 1107 161 161.000000000000 Chi(tan=-0.344328, x=-0.945519, y=0.325568): -0.344327613290\n    test 1108 161 160.960519598812 Xi(tan=-0.345099, x=-1.89908, y=0.655369), iteration=3: -0.344327613290\n\n    test 1109 161 160.881232023490 Phi(tan=-0.346648, x=-0.944842, y=0.327527): -0.344327613290\n    test 1110 161 160.940701543262 Beta(tan=-0.345486, x=-0.945181, y=0.326547): -0.344327613290\n    test 1111 161 161.000014139979 Theta(tan=-0.344327, x=-0.945519, y=0.325568): -0.344327613290\n    test 1112 161 160.970406812614 Mu(tan=-0.344905, x=-0.94535, y=0.326056): -0.344327613290\n    test 1113 161 161.000000000000 Chi(tan=-0.344328, x=-0.945519, y=0.325568): -0.344327613290\n    test 1114 161 160.960519598812 Xi(tan=-0.345099, x=-0.945294, y=0.32622): -0.344327613290\n\n    test 1115 168 167.921497152166 Phi(tan=-0.213989, x=-1, y=0.213989): -0.212556561670\n    test 1116 168 167.960810661508 Beta(tan=-0.213272, x=-1, y=0.213272): -0.212556561670\n    test 1117 168 168.000003811668 Theta(tan=-0.212556, x=-1, y=0.212556): -0.212556561670\n    test 1118 168 167.980444790381 Mu(tan=-0.212913, x=-0.978077, y=0.208246), iteration=2: -0.212556561670\n    test 1119 168 168.000000000000 Chi(tan=-0.212557, x=-0.978148, y=0.207912): -0.212556561670\n    test 1120 168 167.973910295272 Xi(tan=-0.213033, x=-1.96489, y=0.418585), iteration=3: -0.212556561670\n\n    test 1121 168 167.921497152166 Phi(tan=-0.213989, x=-0.977862, y=0.209252): -0.212556561670\n    test 1122 168 167.960810661508 Beta(tan=-0.213272, x=-0.978005, y=0.208581): -0.212556561670\n    test 1123 168 168.000003811668 Theta(tan=-0.212556, x=-0.978148, y=0.207912): -0.212556561670\n    test 1124 168 167.980444790381 Mu(tan=-0.212913, x=-0.978077, y=0.208246): -0.212556561670\n    test 1125 168 168.000000000000 Chi(tan=-0.212557, x=-0.978148, y=0.207912): -0.212556561670\n    test 1126 168 167.973910295272 Xi(tan=-0.213033, x=-0.978053, y=0.208357): -0.212556561670\n\n    test 1127 175 174.966475344628 Phi(tan=-0.0880783, x=-1, y=0.0880783): -0.087488663526\n    test 1128 175 174.983265532727 Beta(tan=-0.087783, x=-1, y=0.087783): -0.087488663526\n    test 1129 175 175.000000286043 Theta(tan=-0.0874887, x=-1, y=0.0874887): -0.087488663526\n    test 1130 175 174.991650204039 Mu(tan=-0.0876355, x=-0.996182, y=0.0873009), iteration=3: -0.087488663526\n    test 1131 175 175.000000000000 Chi(tan=-0.0874887, x=-0.996195, y=0.0871557): -0.087488663526\n    test 1132 175 174.988859821813 Xi(tan=-0.0876846, x=-2.0013, y=0.175483), iteration=3: -0.087488663526\n\n    test 1133 175 174.966475344628 Phi(tan=-0.0880783, x=-0.996144, y=0.0877386): -0.087488663526\n    test 1134 175 174.983265532727 Beta(tan=-0.087783, x=-0.996169, y=0.0874467): -0.087488663526\n    test 1135 175 175.000000286043 Theta(tan=-0.0874887, x=-0.996195, y=0.0871557): -0.087488663526\n    test 1136 175 174.991650204039 Mu(tan=-0.0876355, x=-0.996182, y=0.0873009): -0.087488663526\n    test 1137 175 175.000000000000 Chi(tan=-0.0874887, x=-0.996195, y=0.0871557): -0.087488663526\n    test 1138 175 174.988859821813 Xi(tan=-0.0876846, x=-0.996178, y=0.0873494): -0.087488663526\n\n    test 1139 182 182.013467917640 Phi(tan=0.0351561, x=-1, y=-0.0351561): 0.034920769492\n    test 1140 182 182.006722669522 Beta(tan=0.0350382, x=-1, y=-0.0350382): 0.034920769492\n    test 1141 182 181.999999981575 Theta(tan=0.0349208, x=-1, y=-0.0349208): 0.034920769492\n    test 1142 182 182.003354287313 Mu(tan=0.0349794, x=-0.999389, y=-0.034958), iteration=3: 0.034920769492\n    test 1143 182 182.000000000000 Chi(tan=0.0349208, x=-0.999391, y=-0.0348995): 0.034920769492\n    test 1144 182 182.004475259781 Xi(tan=0.034999, x=-2.00775, y=-0.0702692), iteration=2: 0.034920769492\n\n    test 1145 182 182.013467917640 Phi(tan=0.0351561, x=-0.999383, y=-0.0351344): 0.034920769492\n    test 1146 182 182.006722669522 Beta(tan=0.0350382, x=-0.999387, y=-0.0350168): 0.034920769492\n    test 1147 182 181.999999981575 Theta(tan=0.0349208, x=-0.999391, y=-0.0348995): 0.034920769492\n    test 1148 182 182.003354287313 Mu(tan=0.0349794, x=-0.999389, y=-0.034958): 0.034920769492\n    test 1149 182 182.000000000000 Chi(tan=0.0349208, x=-0.999391, y=-0.0348995): 0.034920769492\n    test 1150 182 182.004475259781 Xi(tan=0.034999, x=-0.999388, y=-0.0349776): 0.034920769492\n\n    test 1151 189 189.059651130185 Phi(tan=0.159452, x=-1, y=-0.159452): 0.158384440325\n    test 1152 189 189.029777127642 Beta(tan=0.158917, x=-1, y=-0.158917): 0.158384440325\n    test 1153 189 188.999998360327 Theta(tan=0.158384, x=-1, y=-0.158384): 0.158384440325\n    test 1154 189 189.014858030843 Mu(tan=0.15865, x=-0.987648, y=-0.156691), iteration=3: 0.158384440325\n    test 1155 189 189.000000000000 Chi(tan=0.158384, x=-0.987688, y=-0.156434): 0.158384440325\n    test 1156 189 189.019823164695 Xi(tan=0.158739, x=-1.98414, y=-0.31496), iteration=3: 0.158384440325\n\n    test 1157 189 189.059651130185 Phi(tan=0.159452, x=-0.987525, y=-0.157463): 0.158384440325\n    test 1158 189 189.029777127642 Beta(tan=0.158917, x=-0.987607, y=-0.156948): 0.158384440325\n    test 1159 189 188.999998360327 Theta(tan=0.158384, x=-0.987688, y=-0.156434): 0.158384440325\n    test 1160 189 189.014858030843 Mu(tan=0.15865, x=-0.987648, y=-0.156691): 0.158384440325\n    test 1161 189 189.000000000000 Chi(tan=0.158384, x=-0.987688, y=-0.156434): 0.158384440325\n    test 1162 189 189.019823164695 Xi(tan=0.158739, x=-0.987634, y=-0.156776): 0.158384440325\n\n    test 1163 196 196.102251517048 Phi(tan=0.288678, x=-1, y=-0.288678): 0.286745385759\n    test 1164 196 196.051048664417 Beta(tan=0.28771, x=-1, y=-0.28771): 0.286745385759\n    test 1165 196 195.999991274014 Theta(tan=0.286745, x=-1, y=-0.286745): 0.286745385759\n    test 1166 196 196.025474578648 Mu(tan=0.287227, x=-0.961139, y=-0.276065), iteration=3: 0.286745385759\n    test 1167 196 196.000000000000 Chi(tan=0.286745, x=-0.961262, y=-0.275637): 0.286745385759\n    test 1168 196 196.033986378622 Xi(tan=0.287387, x=-1.93083, y=-0.554895), iteration=3: 0.286745385759\n\n    test 1169 196 196.102251517048 Phi(tan=0.288678, x=-0.960768, y=-0.277352): 0.286745385759\n    test 1170 196 196.051048664417 Beta(tan=0.28771, x=-0.961016, y=-0.276494): 0.286745385759\n    test 1171 196 195.999991274014 Theta(tan=0.286745, x=-0.961262, y=-0.275637): 0.286745385759\n    test 1172 196 196.025474578648 Mu(tan=0.287227, x=-0.961139, y=-0.276065): 0.286745385759\n    test 1173 196 196.000000000000 Chi(tan=0.286745, x=-0.961262, y=-0.275637): 0.286745385759\n    test 1174 196 196.033986378622 Xi(tan=0.287387, x=-0.961098, y=-0.276208): 0.286745385759\n\n    test 1175 203 203.138717708106 Phi(tan=0.427335, x=-1, y=-0.427335): 0.424474816210\n    test 1176 203 203.069266243319 Beta(tan=0.425902, x=-1, y=-0.425902): 0.424474816210\n    test 1177 203 202.999976212498 Theta(tan=0.424474, x=-1, y=-0.424474): 0.424474816210\n    test 1178 203 203.034570842744 Mu(tan=0.425187, x=-0.920269, y=-0.391286), iteration=3: 0.424474816210\n    test 1179 203 203.000000000000 Chi(tan=0.424475, x=-0.920505, y=-0.390731): 0.424474816210\n    test 1180 203 203.046119781391 Xi(tan=0.425425, x=-1.84864, y=-0.786459), iteration=3: 0.424474816210\n\n    test 1181 203 203.138717708106 Phi(tan=0.427335, x=-0.919556, y=-0.392959): 0.424474816210\n    test 1182 203 203.069266243319 Beta(tan=0.425902, x=-0.920032, y=-0.391844): 0.424474816210\n    test 1183 203 202.999976212498 Theta(tan=0.424474, x=-0.920505, y=-0.390731): 0.424474816210\n    test 1184 203 203.034570842744 Mu(tan=0.425187, x=-0.920269, y=-0.391286): 0.424474816210\n    test 1185 203 203.000000000000 Chi(tan=0.424475, x=-0.920505, y=-0.390731): 0.424474816210\n    test 1186 203 203.046119781391 Xi(tan=0.425425, x=-0.92019, y=-0.391472): 0.424474816210\n\n    test 1187 210 210.166876834292 Phi(tan=0.58124, x=-1, y=-0.58124): 0.577350269190\n    test 1188 210 210.083345266050 Beta(tan=0.579291, x=-1, y=-0.579291): 0.577350269190\n    test 1189 210 209.999953141624 Theta(tan=0.577349, x=-1, y=-0.577349): 0.577350269190\n    test 1190 210 210.041605671429 Mu(tan=0.578319, x=-0.865662, y=-0.500629), iteration=2: 0.577350269190\n    test 1191 210 210.000000000000 Chi(tan=0.57735, x=-0.866025, y=-0.5): 0.577350269190\n    test 1192 210 210.055501367888 Xi(tan=0.578643, x=-1.73885, y=-1.00617), iteration=2: 0.577350269190\n\n    test 1193 210 210.166876834292 Phi(tan=0.58124, x=-0.864565, y=-0.50252): 0.577350269190\n    test 1194 210 210.083345266050 Beta(tan=0.579291, x=-0.865297, y=-0.501259): 0.577350269190\n    test 1195 210 209.999953141624 Theta(tan=0.577349, x=-0.866026, y=-0.499999): 0.577350269190\n    test 1196 210 210.041605671429 Mu(tan=0.578319, x=-0.865662, y=-0.500629): 0.577350269190\n    test 1197 210 210.000000000000 Chi(tan=0.57735, x=-0.866025, y=-0.5): 0.577350269190\n    test 1198 210 210.055501367888 Xi(tan=0.578643, x=-0.865541, y=-0.500839): 0.577350269190\n\n    test 1199 217 217.185065085003 Phi(tan=0.758631, x=-1, y=-0.758631): 0.753554050103\n    test 1200 217 217.092452537420 Beta(tan=0.756087, x=-1, y=-0.756087): 0.753554050103\n    test 1201 217 216.999924718107 Theta(tan=0.753552, x=-1, y=-0.753552): 0.753554050103\n    test 1202 217 217.046162172363 Mu(tan=0.754818, x=-0.79815, y=-0.602458), iteration=2: 0.753554050103\n    test 1203 217 217.000000000000 Chi(tan=0.753554, x=-0.798636, y=-0.601815): 0.753554050103\n    test 1204 217 217.061575411936 Xi(tan=0.75524, x=-1.60314, y=-1.21076), iteration=3: 0.753554050103\n\n    test 1205 217 217.185065085003 Phi(tan=0.758631, x=-0.796687, y=-0.604391): 0.753554050103\n    test 1206 217 217.092452537420 Beta(tan=0.756087, x=-0.797663, y=-0.603103): 0.753554050103\n    test 1207 217 216.999924718107 Theta(tan=0.753552, x=-0.798636, y=-0.601814): 0.753554050103\n    test 1208 217 217.046162172363 Mu(tan=0.754818, x=-0.79815, y=-0.602458): 0.753554050103\n    test 1209 217 217.000000000000 Chi(tan=0.753554, x=-0.798636, y=-0.601815): 0.753554050103\n    test 1210 217 217.061575411936 Xi(tan=0.75524, x=-0.797988, y=-0.602673): 0.753554050103\n\n    test 1211 224 224.192224339246 Phi(tan=0.972193, x=-1, y=-0.972193): 0.965688774807\n    test 1212 224 224.096054985813 Beta(tan=0.968934, x=-1, y=-0.968934): 0.965688774807\n    test 1213 224 223.999895821294 Theta(tan=0.965685, x=-1, y=-0.965685): 0.965688774807\n    test 1214 224 224.047972230974 Mu(tan=0.967308, x=-0.718758, y=-0.69526), iteration=2: 0.965688774807\n    test 1215 224 224.000000000000 Chi(tan=0.965689, x=-0.71934, y=-0.694658): 0.965688774807\n    test 1216 224 224.063985091722 Xi(tan=0.967849, x=-1.44358, y=-1.39717), iteration=3: 0.965688774807\n\n    test 1217 224 224.192224339246 Phi(tan=0.972193, x=-0.717005, y=-0.697068): 0.965688774807\n    test 1218 224 224.096054985813 Beta(tan=0.968934, x=-0.718174, y=-0.695863): 0.965688774807\n    test 1219 224 223.999895821294 Theta(tan=0.965685, x=-0.719341, y=-0.694657): 0.965688774807\n    test 1220 224 224.047972230974 Mu(tan=0.967308, x=-0.718758, y=-0.69526): 0.965688774807\n    test 1221 224 224.000000000000 Chi(tan=0.965689, x=-0.71934, y=-0.694658): 0.965688774807\n    test 1222 224 224.063985091722 Xi(tan=0.967849, x=-0.718564, y=-0.695461): 0.965688774807\n\n    test 1223 231 231.187959693265 Phi(tan=1.24321, x=-1, y=-1.24321): 1.234897156535\n    test 1224 231 231.093949439927 Beta(tan=1.23905, x=-1, y=-1.23905): 1.234897156535\n    test 1225 231 230.999872507121 Theta(tan=1.23489, x=-1, y=-1.23489): 1.234897156535\n    test 1226 231 231.046931828803 Mu(tan=1.23697, x=-0.628684, y=-0.777661), iteration=3: 1.234897156535\n    test 1227 231 231.000000000000 Chi(tan=1.2349, x=-0.62932, y=-0.777146): 1.234897156535\n    test 1228 231 231.062592734966 Xi(tan=1.23766, x=-1.26259, y=-1.56265), iteration=2: 1.234897156535\n\n    test 1229 231 231.187959693265 Phi(tan=1.24321, x=-0.626768, y=-0.779206): 1.234897156535\n    test 1230 231 231.093949439927 Beta(tan=1.23905, x=-0.628045, y=-0.778177): 1.234897156535\n    test 1231 231 230.999872507121 Theta(tan=1.23489, x=-0.629322, y=-0.777145): 1.234897156535\n    test 1232 231 231.046931828803 Mu(tan=1.23697, x=-0.628684, y=-0.777661): 1.234897156535\n    test 1233 231 231.000000000000 Chi(tan=1.2349, x=-0.62932, y=-0.777146): 1.234897156535\n    test 1234 231 231.062592734966 Xi(tan=1.23766, x=-0.628471, y=-0.777833): 1.234897156535\n\n    test 1235 238 238.172555759873 Phi(tan=1.61111, x=-1, y=-1.61111): 1.600334529041\n    test 1236 238 238.086272148408 Beta(tan=1.60571, x=-1, y=-1.60571): 1.600334529041\n    test 1237 238 237.999860628148 Theta(tan=1.60033, x=-1, y=-1.60033): 1.600334529041\n    test 1238 238 238.043106397552 Mu(tan=1.60302, x=-0.529281, y=-0.848447), iteration=2: 1.600334529041\n    test 1239 238 238.000000000000 Chi(tan=1.60033, x=-0.529919, y=-0.848048): 1.600334529041\n    test 1240 238 238.057486709388 Xi(tan=1.60391, x=-1.06289, y=-1.70478), iteration=3: 1.600334529041\n\n    test 1241 238 238.172555759873 Phi(tan=1.61111, x=-0.527363, y=-0.84964): 1.600334529041\n    test 1242 238 238.086272148408 Beta(tan=1.60571, x=-0.528642, y=-0.848845): 1.600334529041\n    test 1243 238 237.999860628148 Theta(tan=1.60033, x=-0.529921, y=-0.848047): 1.600334529041\n    test 1244 238 238.043106397552 Mu(tan=1.60302, x=-0.529281, y=-0.848447): 1.600334529041\n    test 1245 238 238.000000000000 Chi(tan=1.60033, x=-0.529919, y=-0.848048): 1.600334529041\n    test 1246 238 238.057486709388 Xi(tan=1.60391, x=-0.529068, y=-0.848579): 1.600334529041\n\n    test 1247 245 245.146952468013 Phi(tan=2.15895, x=-1, y=-2.15895): 2.144506920510\n    test 1248 245 245.073488079777 Beta(tan=2.15171, x=-1, y=-2.15171): 2.144506920510\n    test 1249 245 244.999864442704 Theta(tan=2.14449, x=-1, y=-2.14449): 2.144506920510\n    test 1250 245 245.036726085420 Mu(tan=2.1481, x=-0.422037, y=-0.906578), iteration=3: 2.144506920510\n    test 1251 245 245.000000000000 Chi(tan=2.14451, x=-0.422618, y=-0.906308): 2.144506920510\n    test 1252 245 245.048974853160 Xi(tan=2.1493, x=-0.847475, y=-1.82148), iteration=3: 2.144506920510\n\n    test 1253 245 245.146952468013 Phi(tan=2.15895, x=-0.420292, y=-0.907389): 2.144506920510\n    test 1254 245 245.073488079777 Beta(tan=2.15171, x=-0.421455, y=-0.906849): 2.144506920510\n    test 1255 245 244.999864442704 Theta(tan=2.14449, x=-0.42262, y=-0.906307): 2.144506920510\n    test 1256 245 245.036726085420 Mu(tan=2.1481, x=-0.422037, y=-0.906578): 2.144506920510\n    test 1257 245 245.000000000000 Chi(tan=2.14451, x=-0.422618, y=-0.906308): 2.144506920510\n    test 1258 245 245.048974853160 Xi(tan=2.1493, x=-0.421843, y=-0.906669): 2.144506920510\n\n    test 1259 252 252.112683493851 Phi(tan=3.0984, x=-1, y=-3.0984): 3.077683537175\n    test 1260 252 252.056361244518 Beta(tan=3.08802, x=-1, y=-3.08802): 3.077683537175\n    test 1261 252 251.999885538511 Theta(tan=3.07766, x=-1, y=-3.07766): 3.077683537175\n    test 1262 252 252.028171414224 Mu(tan=3.08284, x=-0.308549, y=-0.951208), iteration=3: 3.077683537175\n    test 1263 252 252.000000000000 Chi(tan=3.07768, x=-0.309017, y=-0.951057): 3.077683537175\n    test 1264 252 252.037565143061 Xi(tan=3.08456, x=-0.619556, y=-1.91106), iteration=3: 3.077683537175\n\n    test 1265 252 252.112683493851 Phi(tan=3.0984, x=-0.307146, y=-0.951662): 3.077683537175\n    test 1266 252 252.056361244518 Beta(tan=3.08802, x=-0.308081, y=-0.95136): 3.077683537175\n    test 1267 252 251.999885538511 Theta(tan=3.07766, x=-0.309019, y=-0.951056): 3.077683537175\n    test 1268 252 252.028171414224 Mu(tan=3.08284, x=-0.308549, y=-0.951208): 3.077683537175\n    test 1269 252 252.000000000000 Chi(tan=3.07768, x=-0.309017, y=-0.951057): 3.077683537175\n    test 1270 252 252.037565143061 Xi(tan=3.08456, x=-0.308393, y=-0.951259): 3.077683537175\n\n    test 1271 259 259.071782282365 Phi(tan=5.17919, x=-1, y=-5.17919): 5.144554015970\n    test 1272 259 259.035908272116 Beta(tan=5.16182, x=-1, y=-5.16182): 5.144554015970\n    test 1273 259 258.999922323247 Theta(tan=5.14452, x=-1, y=-5.14452): 5.144554015970\n    test 1274 259 259.017950333560 Mu(tan=5.15317, x=-0.190501, y=-0.981687), iteration=3: 5.144554015970\n    test 1275 259 259.000000000000 Chi(tan=5.14455, x=-0.190809, y=-0.981627): 5.144554015970\n    test 1276 259 259.023934988471 Xi(tan=5.15605, x=-0.382508, y=-1.97223), iteration=2: 5.144554015970\n\n    test 1277 259 259.071782282365 Phi(tan=5.17919, x=-0.189579, y=-0.981865): 5.144554015970\n    test 1278 259 259.035908272116 Beta(tan=5.16182, x=-0.190194, y=-0.981747): 5.144554015970\n    test 1279 259 258.999922323247 Theta(tan=5.14452, x=-0.19081, y=-0.981627): 5.144554015970\n    test 1280 259 259.017950333560 Mu(tan=5.15317, x=-0.190501, y=-0.981687): 5.144554015970\n    test 1281 259 259.000000000000 Chi(tan=5.14455, x=-0.190809, y=-0.981627): 5.144554015970\n    test 1282 259 259.023934988471 Xi(tan=5.15605, x=-0.190399, y=-0.981707): 5.144554015970\n\n    test 1283 266 266.026661867451 Phi(tan=14.3969, x=-1, y=-14.3969): 14.300666256712\n    test 1284 266 266.013338229951 Beta(tan=14.3487, x=-1, y=-14.3487): 14.300666256712\n    test 1285 266 265.999970204566 Theta(tan=14.3006, x=-1, y=-14.3006): 14.300666256712\n    test 1286 266 266.006668111562 Mu(tan=14.3246, x=-0.0696404, y=-0.997572), iteration=2: 14.300666256712\n    test 1287 266 266.000000000000 Chi(tan=14.3007, x=-0.0697565, y=-0.997564): 14.300666256712\n    test 1288 266 266.008891093578 Xi(tan=14.3326, x=-0.139828, y=-2.00411), iteration=3: 14.300666256712\n\n    test 1289 266 266.026661867451 Phi(tan=14.3969, x=-0.0692923, y=-0.997596): 14.300666256712\n    test 1290 266 266.013338229951 Beta(tan=14.3487, x=-0.0695242, y=-0.99758): 14.300666256712\n    test 1291 266 265.999970204566 Theta(tan=14.3006, x=-0.069757, y=-0.997564): 14.300666256712\n    test 1292 266 266.006668111562 Mu(tan=14.3246, x=-0.0696404, y=-0.997572): 14.300666256712\n    test 1293 266 266.000000000000 Chi(tan=14.3007, x=-0.0697565, y=-0.997564): 14.300666256712\n    test 1294 266 266.008891093578 Xi(tan=14.3326, x=-0.0696017, y=-0.997575): 14.300666256712\n\n    test 1295 273 272.979975455720 Phi(tan=-19.2096, x=1.0, y=-19.2096): -19.081136687728\n    test 1296 273 272.989982200734 Beta(tan=-19.1452, x=1.0, y=-19.1452): -19.081136687728\n    test 1297 273 273.000022425845 Theta(tan=-19.081, x=1.0, y=-19.081): -19.081136687728\n    test 1298 273 272.994991833280 Mu(tan=-19.1131, x=0.0522487, y=-0.998634), iteration=3: -19.081136687728\n    test 1299 273 273.000000000000 Chi(tan=-19.0811, x=0.052336, y=-0.99863): -19.081136687728\n    test 1300 273 272.993322244137 Xi(tan=-19.1238, x=0.104908, y=-2.00624), iteration=2: -19.081136687728\n\n    test 1301 273 272.979975455720 Phi(tan=-19.2096, x=0.0519869, y=-0.998648): -19.081136687728\n    test 1302 273 272.989982200734 Beta(tan=-19.1452, x=0.0521614, y=-0.998639): -19.081136687728\n    test 1303 273 273.000022425845 Theta(tan=-19.081, x=0.0523363, y=-0.99863): -19.081136687728\n    test 1304 273 272.994991833280 Mu(tan=-19.1131, x=0.0522487, y=-0.998634): -19.081136687728\n    test 1305 273 273.000000000000 Chi(tan=-19.0811, x=0.052336, y=-0.99863): -19.081136687728\n    test 1306 273 272.993322244137 Xi(tan=-19.1238, x=0.0522196, y=-0.998636): -19.081136687728\n\n    test 1307 280 279.934465137513 Phi(tan=-5.70946, x=1.0, y=-5.70946): -5.671281819618\n    test 1308 280 279.967216473785 Beta(tan=-5.69032, x=1.0, y=-5.69032): -5.671281819618\n    test 1309 280 280.000071376516 Theta(tan=-5.67124, x=1.0, y=-5.67124): -5.671281819618\n    test 1310 280 279.983611509112 Mu(tan=-5.68078, x=0.173366, y=-0.984857), iteration=3: -5.671281819618\n    test 1311 280 280.000000000000 Chi(tan=-5.67128, x=0.173648, y=-0.984808): -5.671281819618\n    test 1312 280 279.978147657318 Xi(tan=-5.68396, x=0.348101, y=-1.97859), iteration=3: -5.671281819618\n\n    test 1313 280 279.934465137513 Phi(tan=-5.70946, x=0.172522, y=-0.985006): -5.671281819618\n    test 1314 280 279.967216473785 Beta(tan=-5.69032, x=0.173085, y=-0.984907): -5.671281819618\n    test 1315 280 280.000071376516 Theta(tan=-5.67124, x=0.173649, y=-0.984808): -5.671281819618\n    test 1316 280 279.983611509112 Mu(tan=-5.68078, x=0.173366, y=-0.984857): -5.671281819618\n    test 1317 280 280.000000000000 Chi(tan=-5.67128, x=0.173648, y=-0.984808): -5.671281819618\n    test 1318 280 279.978147657318 Xi(tan=-5.68396, x=0.173273, y=-0.984874): -5.671281819618\n\n    test 1319 287 286.892806262875 Phi(tan=-3.29287, x=1.0, y=-3.29287): -3.270852618484\n    test 1320 287 286.946383391473 Beta(tan=-3.28183, x=1.0, y=-3.28183): -3.270852618484\n    test 1321 287 287.000110089905 Theta(tan=-3.27083, x=1.0, y=-3.27083): -3.270852618484\n    test 1322 287 286.973199933024 Mu(tan=-3.27633, x=0.291924, y=-0.956441), iteration=2: -3.270852618484\n    test 1323 287 287.000000000000 Chi(tan=-3.27085, x=0.292372, y=-0.956305): -3.270852618484\n    test 1324 287 286.964263697434 Xi(tan=-3.27816, x=0.586171, y=-1.92156), iteration=2: -3.270852618484\n\n    test 1325 287 286.892806262875 Phi(tan=-3.29287, x=0.290582, y=-0.95685): -3.270852618484\n    test 1326 287 286.946383391473 Beta(tan=-3.28183, x=0.291477, y=-0.956578): -3.270852618484\n    test 1327 287 287.000110089905 Theta(tan=-3.27083, x=0.292374, y=-0.956304): -3.270852618484\n    test 1328 287 286.973199933024 Mu(tan=-3.27633, x=0.291924, y=-0.956441): -3.270852618484\n    test 1329 287 287.000000000000 Chi(tan=-3.27085, x=0.292372, y=-0.956305): -3.270852618484\n    test 1330 287 286.964263697434 Xi(tan=-3.27816, x=0.291775, y=-0.956487): -3.270852618484\n\n    test 1331 294 293.857455069612 Phi(tan=-2.26116, x=1.0, y=-2.26116): -2.246036773904\n    test 1332 294 293.928713955385 Beta(tan=-2.25358, x=1.0, y=-2.25358): -2.246036773904\n    test 1333 294 294.000133599673 Theta(tan=-2.24602, x=1.0, y=-2.24602): -2.246036773904\n    test 1334 294 293.964373479294 Mu(tan=-2.2498, x=0.406169, y=-0.913798), iteration=2: -2.246036773904\n    test 1335 294 294.000000000000 Chi(tan=-2.24604, x=0.406737, y=-0.913545): -2.246036773904\n    test 1336 294 293.952491818284 Xi(tan=-2.25106, x=0.815604, y=-1.83597), iteration=3: -2.246036773904\n\n    test 1337 294 293.857455069612 Phi(tan=-2.26116, x=0.404463, y=-0.914555): -2.246036773904\n    test 1338 294 293.928713955385 Beta(tan=-2.25358, x=0.4056, y=-0.914051): -2.246036773904\n    test 1339 294 294.000133599673 Theta(tan=-2.24602, x=0.406739, y=-0.913545): -2.246036773904\n    test 1340 294 293.964373479294 Mu(tan=-2.2498, x=0.406169, y=-0.913798): -2.246036773904\n    test 1341 294 294.000000000000 Chi(tan=-2.24604, x=0.406737, y=-0.913545): -2.246036773904\n    test 1342 294 293.952491818284 Xi(tan=-2.25106, x=0.405979, y=-0.913882): -2.246036773904\n\n    test 1343 301 300.830507114227 Phi(tan=-1.67549, x=1.0, y=-1.67549): -1.664279482351\n    test 1344 301 300.915256249596 Beta(tan=-1.66987, x=1.0, y=-1.66987): -1.664279482351\n    test 1345 301 301.000139857505 Theta(tan=-1.66427, x=1.0, y=-1.66427): -1.664279482351\n    test 1346 301 300.957655989828 Mu(tan=-1.66707, x=0.514404, y=-0.857548), iteration=2: -1.664279482351\n    test 1347 301 301.000000000000 Chi(tan=-1.66428, x=0.515038, y=-0.857167): -1.664279482351\n    test 1348 301 300.943530549480 Xi(tan=-1.668, x=1.033, y=-1.72305), iteration=3: -1.664279482351\n\n    test 1349 301 300.830507114227 Phi(tan=-1.67549, x=0.5125, y=-0.858687): -1.664279482351\n    test 1350 301 300.915256249596 Beta(tan=-1.66987, x=0.51377, y=-0.857928): -1.664279482351\n    test 1351 301 301.000139857505 Theta(tan=-1.66427, x=0.51504, y=-0.857166): -1.664279482351\n    test 1352 301 300.957655989828 Mu(tan=-1.66707, x=0.514404, y=-0.857548): -1.664279482351\n    test 1353 301 301.000000000000 Chi(tan=-1.66428, x=0.515038, y=-0.857167): -1.664279482351\n    test 1354 301 300.943530549480 Xi(tan=-1.668, x=0.514193, y=-0.857674): -1.664279482351\n\n    test 1355 308 307.813573905031 Phi(tan=-1.28856, x=1.0, y=-1.28856): -1.279941632193\n    test 1356 308 307.906813571405 Beta(tan=-1.28424, x=1.0, y=-1.28424): -1.279941632193\n    test 1357 308 308.000130012564 Theta(tan=-1.27994, x=1.0, y=-1.27994): -1.279941632193\n    test 1358 308 307.953447779688 Mu(tan=-1.28209, x=0.615021, y=-0.788511), iteration=3: -1.279941632193\n    test 1359 308 308.000000000000 Chi(tan=-1.27994, x=0.615661, y=-0.788011): -1.279941632193\n    test 1360 308 307.937914195662 Xi(tan=-1.2828, x=1.23514, y=-1.58444), iteration=3: -1.279941632193\n\n    test 1361 308 307.813573905031 Phi(tan=-1.28856, x=0.613094, y=-0.79001): -1.279941632193\n    test 1362 308 307.906813571405 Beta(tan=-1.28424, x=0.614379, y=-0.789011): -1.279941632193\n    test 1363 308 308.000130012564 Theta(tan=-1.27994, x=0.615663, y=-0.788009): -1.279941632193\n    test 1364 308 307.953447779688 Mu(tan=-1.28209, x=0.615021, y=-0.788511): -1.279941632193\n    test 1365 308 308.000000000000 Chi(tan=-1.27994, x=0.615661, y=-0.788011): -1.279941632193\n    test 1366 308 307.937914195662 Xi(tan=-1.2828, x=0.614807, y=-0.788677): -1.279941632193\n\n    test 1367 315 314.807684778155 Phi(tan=-1.00674, x=1.0, y=-1.00674): -1.000000000000\n    test 1368 315 314.903895845383 Beta(tan=-1.00336, x=1.0, y=-1.00336): -1.000000000000\n    test 1369 315 315.000107996571 Theta(tan=-0.999996, x=1.0, y=-0.999996): -1.000000000000\n    test 1370 315 314.952001570934 Mu(tan=-1.00168, x=0.706514, y=-0.707699), iteration=2: -1.000000000000\n    test 1371 315 315.000000000000 Chi(tan=-1, x=0.707107, y=-0.707107): -1.000000000000\n    test 1372 315 314.935980653019 Xi(tan=-1.00224, x=1.41898, y=-1.42215), iteration=3: -1.000000000000\n\n    test 1373 315 314.807684778155 Phi(tan=-1.00674, x=0.704729, y=-0.709476): -1.000000000000\n    test 1374 315 314.903895845383 Beta(tan=-1.00336, x=0.70592, y=-0.708292): -1.000000000000\n    test 1375 315 315.000107996571 Theta(tan=-0.999996, x=0.707108, y=-0.707105): -1.000000000000\n    test 1376 315 314.952001570934 Mu(tan=-1.00168, x=0.706514, y=-0.707699): -1.000000000000\n    test 1377 315 315.000000000000 Chi(tan=-1, x=0.707107, y=-0.707107): -1.000000000000\n    test 1378 315 314.935980653019 Xi(tan=-1.00224, x=0.706316, y=-0.707896): -1.000000000000\n\n    test 1379 322 321.813220359944 Phi(tan=-0.786549, x=1.0, y=-0.786549): -0.781285626507\n    test 1380 322 321.906687396462 Beta(tan=-0.783912, x=1.0, y=-0.783912): -0.781285626507\n    test 1381 322 322.000079515502 Theta(tan=-0.781283, x=1.0, y=-0.781283): -0.781285626507\n    test 1382 322 321.953406847958 Mu(tan=-0.782596, x=0.78751, y=-0.616302), iteration=2: -0.781285626507\n    test 1383 322 322.000000000000 Chi(tan=-0.781286, x=0.788011, y=-0.615661): -0.781285626507\n    test 1384 322 321.937850353113 Xi(tan=-0.783034, x=1.58176, y=-1.23857), iteration=3: -0.781285626507\n\n    test 1385 322 321.813220359944 Phi(tan=-0.786549, x=0.786, y=-0.618227): -0.781285626507\n    test 1386 322 321.906687396462 Beta(tan=-0.783912, x=0.787007, y=-0.616944): -0.781285626507\n    test 1387 322 322.000079515502 Theta(tan=-0.781283, x=0.788012, y=-0.61566): -0.781285626507\n    test 1388 322 321.953406847958 Mu(tan=-0.782596, x=0.78751, y=-0.616302): -0.781285626507\n    test 1389 322 322.000000000000 Chi(tan=-0.781286, x=0.788011, y=-0.615661): -0.781285626507\n    test 1390 322 321.937850353113 Xi(tan=-0.783034, x=0.787342, y=-0.616516): -0.781285626507\n\n    test 1391 329 328.829882787345 Phi(tan=-0.604909, x=1.0, y=-0.604909): -0.600860619028\n    test 1392 329 328.915033437072 Beta(tan=-0.602881, x=1.0, y=-0.602881): -0.600860619028\n    test 1393 329 329.000050684665 Theta(tan=-0.600859, x=1.0, y=-0.600859): -0.600860619028\n    test 1394 329 328.957583708533 Mu(tan=-0.601869, x=0.856786, y=-0.515672), iteration=3: -0.600860619028\n    test 1395 329 329.000000000000 Chi(tan=-0.600861, x=0.857167, y=-0.515038): -0.600860619028\n    test 1396 329 328.943417809954 Xi(tan=-0.602205, x=1.72101, y=-1.0364), iteration=3: -0.600860619028\n\n    test 1397 329 328.829882787345 Phi(tan=-0.604909, x=0.855634, y=-0.517581): -0.600860619028\n    test 1398 329 328.915033437072 Beta(tan=-0.602881, x=0.856403, y=-0.516309): -0.600860619028\n    test 1399 329 329.000050684665 Theta(tan=-0.600859, x=0.857168, y=-0.515037): -0.600860619028\n    test 1400 329 328.957583708533 Mu(tan=-0.601869, x=0.856786, y=-0.515672): -0.600860619028\n    test 1401 329 329.000000000000 Chi(tan=-0.600861, x=0.857167, y=-0.515038): -0.600860619028\n    test 1402 329 328.943417809954 Xi(tan=-0.602205, x=0.856658, y=-0.515884): -0.600860619028\n\n    test 1403 336 335.856706115158 Phi(tan=-0.448229, x=1.0, y=-0.448229): -0.445228685309\n    test 1404 336 335.928446665868 Beta(tan=-0.446726, x=1.0, y=-0.446726): -0.445228685309\n    test 1405 336 336.000026626488 Theta(tan=-0.445228, x=1.0, y=-0.445228): -0.445228685309\n    test 1406 336 335.964286769667 Mu(tan=-0.445976, x=0.913292, y=-0.407306), iteration=2: -0.445228685309\n    test 1407 336 336.000000000000 Chi(tan=-0.445229, x=0.913545, y=-0.406737): -0.445228685309\n    test 1408 336 335.952356574339 Xi(tan=-0.446225, x=1.83461, y=-0.818652), iteration=2: -0.445228685309\n\n    test 1409 336 335.856706115158 Phi(tan=-0.448229, x=0.912525, y=-0.40902): -0.445228685309\n    test 1410 336 335.928446665868 Beta(tan=-0.446726, x=0.913037, y=-0.407877): -0.445228685309\n    test 1411 336 336.000026626488 Theta(tan=-0.445228, x=0.913546, y=-0.406736): -0.445228685309\n    test 1412 336 335.964286769667 Mu(tan=-0.445976, x=0.913292, y=-0.407306): -0.445228685309\n    test 1413 336 336.000000000000 Chi(tan=-0.445229, x=0.913545, y=-0.406737): -0.445228685309\n    test 1414 336 335.952356574339 Xi(tan=-0.446225, x=0.913207, y=-0.407496): -0.445228685309\n\n    test 1415 343 342.892108013861 Phi(tan=-0.307791, x=1.0, y=-0.307791): -0.305730681459\n    test 1416 343 342.946134198526 Beta(tan=-0.306759, x=1.0, y=-0.306759): -0.305730681459\n    test 1417 343 343.000010359231 Theta(tan=-0.30573, x=1.0, y=-0.30573): -0.305730681459\n    test 1418 343 342.973119094169 Mu(tan=-0.306244, x=0.956167, y=-0.29282), iteration=3: -0.305730681459\n    test 1419 343 343.000000000000 Chi(tan=-0.305731, x=0.956305, y=-0.292372): -0.305730681459\n    test 1420 343 342.964137610259 Xi(tan=-0.306415, x=1.92083, y=-0.588571), iteration=2: -0.305730681459\n\n    test 1421 343 342.892108013861 Phi(tan=-0.307791, x=0.955753, y=-0.294172): -0.305730681459\n    test 1422 343 342.946134198526 Beta(tan=-0.306759, x=0.956029, y=-0.293271): -0.305730681459\n    test 1423 343 343.000010359231 Theta(tan=-0.30573, x=0.956305, y=-0.292372): -0.305730681459\n    test 1424 343 342.973119094169 Mu(tan=-0.306244, x=0.956167, y=-0.29282): -0.305730681459\n    test 1425 343 343.000000000000 Chi(tan=-0.305731, x=0.956305, y=-0.292372): -0.305730681459\n    test 1426 343 342.964137610259 Xi(tan=-0.306415, x=0.956122, y=-0.29297): -0.305730681459\n\n    test 1427 350 349.933981060171 Phi(tan=-0.177515, x=1.0, y=-0.177515): -0.176326980708\n    test 1428 350 349.967043715347 Beta(tan=-0.17692, x=1.0, y=-0.17692): -0.176326980708\n    test 1429 350 350.000002236053 Theta(tan=-0.176327, x=1.0, y=-0.176327): -0.176326980708\n    test 1430 350 349.983555465918 Mu(tan=-0.176623, x=0.984758, y=-0.173931), iteration=3: -0.176326980708\n    test 1431 350 350.000000000000 Chi(tan=-0.176327, x=0.984808, y=-0.173648): -0.176326980708\n    test 1432 350 349.978060244759 Xi(tan=-0.176722, x=1.97833, y=-0.349613), iteration=3: -0.176326980708\n\n    test 1433 350 349.933981060171 Phi(tan=-0.177515, x=0.984607, y=-0.174783): -0.176326980708\n    test 1434 350 349.967043715347 Beta(tan=-0.17692, x=0.984708, y=-0.174215): -0.176326980708\n    test 1435 350 350.000002236053 Theta(tan=-0.176327, x=0.984808, y=-0.173648): -0.176326980708\n    test 1436 350 349.983555465918 Mu(tan=-0.176623, x=0.984758, y=-0.173931): -0.176326980708\n    test 1437 350 350.000000000000 Chi(tan=-0.176327, x=0.984808, y=-0.173648): -0.176326980708\n    test 1438 350 349.978060244759 Xi(tan=-0.176722, x=0.984741, y=-0.174025): -0.176326980708\n\n    test 1439 357 356.979818878824 Phi(tan=-0.052761, x=1.0, y=-0.052761): -0.052407779283\n    test 1440 357 356.989926321337 Beta(tan=-0.0525841, x=1.0, y=-0.0525841): -0.052407779283\n    test 1441 357 357.000000062090 Theta(tan=-0.0524078, x=1.0, y=-0.0524078): -0.052407779283\n    test 1442 357 356.994973705906 Mu(tan=-0.0524957, x=0.998625, y=-0.0524236), iteration=3: -0.052407779283\n    test 1443 357 357.000000000000 Chi(tan=-0.0524078, x=0.99863, y=-0.052336): -0.052407779283\n    test 1444 357 356.993293970223 Xi(tan=-0.0525251, x=2.00621, y=-0.105377), iteration=2: -0.052407779283\n\n    test 1445 357 356.979818878824 Phi(tan=-0.052761, x=0.998611, y=-0.0526877): -0.052407779283\n    test 1446 357 356.989926321337 Beta(tan=-0.0525841, x=0.99862, y=-0.0525115): -0.052407779283\n    test 1447 357 357.000000062090 Theta(tan=-0.0524078, x=0.99863, y=-0.052336): -0.052407779283\n    test 1448 357 356.994973705906 Mu(tan=-0.0524957, x=0.998625, y=-0.0524236): -0.052407779283\n    test 1449 357 357.000000000000 Chi(tan=-0.0524078, x=0.99863, y=-0.052336): -0.052407779283\n    test 1450 357 356.993293970223 Xi(tan=-0.0525251, x=0.998623, y=-0.0524528): -0.052407779283\n\n    test 1451  0 0.000000000000 Phi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 1452  0 0.000000000000 Beta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 1453  0 0.000000000000 Theta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 1454  0 0.000000000000 Mu(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 1455  0 0.000000000000 Chi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 1456  0 0.000000000000 Xi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n\n    test 1457  0 0.000000000000 Phi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 1458  0 0.000000000000 Beta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 1459  0 0.000000000000 Theta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 1460  0 0.000000000000 Mu(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 1461  0 0.000000000000 Chi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 1462  0 0.000000000000 Xi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n\n    test 1463  7 7.035013553420 Phi(tan=0.123405, x=1.0, y=0.123405): 0.122784560903\n    test 1464  7 7.011661662966 Beta(tan=0.122991, x=1.0, y=0.122991): 0.122784560903\n    test 1465  7 6.988385737369 Theta(tan=0.122579, x=1.0, y=0.122579): 0.122784560903\n    test 1466  7 7.000000000000 Mu(tan=0.122785, x=0.992546, y=0.121869): 0.122784560903\n    test 1467  7 6.988386512663 Chi(tan=0.122579, x=1.0, y=0.122579), iteration=3: 0.122784560903\n    test 1468  7 7.003880991951 Xi(tan=0.122853, x=1.99399, y=0.244968), iteration=3: 0.122784560903\n\n    test 1469  7 7.035013553420 Phi(tan=0.123405, x=0.992471, y=0.122476): 0.122784560903\n    test 1470  7 7.011661662966 Beta(tan=0.122991, x=0.992521, y=0.122071): 0.122784560903\n    test 1471  7 6.988385737369 Theta(tan=0.122579, x=0.992571, y=0.121668): 0.122784560903\n    test 1472  7 7.000000000000 Mu(tan=0.122785, x=0.992546, y=0.121869): 0.122784560903\n    test 1473  7 6.988386512663 Chi(tan=0.122579, x=0.992571, y=0.121668): 0.122784560903\n    test 1474  7 7.003880991951 Xi(tan=0.122853, x=0.992538, y=0.121937): 0.122784560903\n\n    test 1475 14 14.067929480939 Phi(tan=0.250588, x=1.0, y=0.250588): 0.249328002843\n    test 1476 14 14.022626357697 Beta(tan=0.249747, x=1.0, y=0.249747): 0.249328002843\n    test 1477 14 13.977457317809 Theta(tan=0.24891, x=1.0, y=0.24891): 0.249328002843\n    test 1478 14 14.000000000000 Mu(tan=0.249328, x=0.970296, y=0.241922): 0.249328002843\n    test 1479 14 13.977463246186 Chi(tan=0.24891, x=1.0, y=0.24891), iteration=3: 0.249328002843\n    test 1480 14 14.007530515250 Xi(tan=0.249468, x=1.94924, y=0.486272), iteration=2: 0.249328002843\n\n    test 1481 14 14.067929480939 Phi(tan=0.250588, x=0.970008, y=0.243072): 0.249328002843\n    test 1482 14 14.022626357697 Beta(tan=0.249747, x=0.9702, y=0.242305): 0.249328002843\n    test 1483 14 13.977457317809 Theta(tan=0.24891, x=0.970391, y=0.24154): 0.249328002843\n    test 1484 14 14.000000000000 Mu(tan=0.249328, x=0.970296, y=0.241922): 0.249328002843\n    test 1485 14 13.977463246186 Chi(tan=0.24891, x=0.970391, y=0.24154): 0.249328002843\n    test 1486 14 14.007530515250 Xi(tan=0.249468, x=0.970264, y=0.242049): 0.249328002843\n\n    test 1487 21 21.096778912148 Phi(tan=0.385803, x=1.0, y=0.385803): 0.383864035035\n    test 1488 21 21.032239504096 Beta(tan=0.38451, x=1.0, y=0.38451): 0.383864035035\n    test 1489 21 20.967860810199 Theta(tan=0.383221, x=1.0, y=0.383221): 0.383864035035\n    test 1490 21 21.000000000000 Mu(tan=0.383864, x=0.93358, y=0.358368): 0.383864035035\n    test 1491 21 20.967879349935 Chi(tan=0.383221, x=1.0, y=0.383221), iteration=3: 0.383864035035\n    test 1492 21 21.010731065364 Xi(tan=0.384079, x=1.87541, y=0.720305), iteration=3: 0.383864035035\n\n    test 1493 21 21.096778912148 Phi(tan=0.385803, x=0.932974, y=0.359944): 0.383864035035\n    test 1494 21 21.032239504096 Beta(tan=0.38451, x=0.933379, y=0.358893): 0.383864035035\n    test 1495 21 20.967860810199 Theta(tan=0.383221, x=0.933781, y=0.357844): 0.383864035035\n    test 1496 21 21.000000000000 Mu(tan=0.383864, x=0.93358, y=0.358368): 0.383864035035\n    test 1497 21 20.967879349935 Chi(tan=0.383221, x=0.933781, y=0.357845): 0.383864035035\n    test 1498 21 21.010731065364 Xi(tan=0.384079, x=0.933513, y=0.358543): 0.383864035035\n\n    test 1499 28 28.119841850563 Phi(tan=0.534395, x=1.0, y=0.534395): 0.531709431661\n    test 1500 28 28.039928546523 Beta(tan=0.532604, x=1.0, y=0.532604): 0.531709431661\n    test 1501 28 27.960164870301 Theta(tan=0.530818, x=1.0, y=0.530818): 0.531709431661\n    test 1502 28 28.000000000000 Mu(tan=0.531709, x=0.882948, y=0.469472): 0.531709431661\n    test 1503 28 27.960204286276 Chi(tan=0.530819, x=1.0, y=0.530819), iteration=3: 0.531709431661\n    test 1504 28 28.013292185978 Xi(tan=0.532007, x=1.77361, y=0.94357), iteration=2: 0.531709431661\n\n    test 1505 28 28.119841850563 Phi(tan=0.534395, x=0.881964, y=0.471317): 0.531709431661\n    test 1506 28 28.039928546523 Beta(tan=0.532604, x=0.88262, y=0.470087): 0.531709431661\n    test 1507 28 27.960164870301 Theta(tan=0.530818, x=0.883274, y=0.468858): 0.531709431661\n    test 1508 28 28.000000000000 Mu(tan=0.531709, x=0.882948, y=0.469472): 0.531709431661\n    test 1509 28 27.960204286276 Chi(tan=0.530819, x=0.883273, y=0.468858): 0.531709431661\n    test 1510 28 28.013292185978 Xi(tan=0.532007, x=0.882839, y=0.469676): 0.531709431661\n\n    test 1511 35 35.135750772251 Phi(tan=0.703744, x=1.0, y=0.703744): 0.700207538210\n    test 1512 35 35.045237306558 Beta(tan=0.701385, x=1.0, y=0.701385): 0.700207538210\n    test 1513 35 34.954827299026 Theta(tan=0.699033, x=1.0, y=0.699033): 0.700207538210\n    test 1514 35 35.000000000000 Mu(tan=0.700208, x=0.819152, y=0.573576): 0.700207538210\n    test 1515 35 34.954893977158 Chi(tan=0.699035, x=1.0, y=0.699035), iteration=3: 0.700207538210\n    test 1516 35 35.015061857454 Xi(tan=0.700599, x=1.64536, y=1.15274), iteration=3: 0.700207538210\n\n    test 1517 35 35.135750772251 Phi(tan=0.703744, x=0.817791, y=0.575516): 0.700207538210\n    test 1518 35 35.045237306558 Beta(tan=0.701385, x=0.818699, y=0.574223): 0.700207538210\n    test 1519 35 34.954827299026 Theta(tan=0.699033, x=0.819604, y=0.57293): 0.700207538210\n    test 1520 35 35.000000000000 Mu(tan=0.700208, x=0.819152, y=0.573576): 0.700207538210\n    test 1521 35 34.954893977158 Chi(tan=0.699035, x=0.819603, y=0.572931): 0.700207538210\n    test 1522 35 35.015061857454 Xi(tan=0.700599, x=0.819001, y=0.573792): 0.700207538210\n\n    test 1523 42 42.143571223962 Phi(tan=0.904952, x=1.0, y=0.904952): 0.900404044298\n    test 1524 42 42.047852933259 Beta(tan=0.901917, x=1.0, y=0.901917): 0.900404044298\n    test 1525 42 41.952167704870 Theta(tan=0.898894, x=1.0, y=0.898894): 0.900404044298\n    test 1526 42 42.000000000000 Mu(tan=0.900404, x=0.743145, y=0.669131): 0.900404044298\n    test 1527 42 41.952263729127 Chi(tan=0.898897, x=1.0, y=0.898897), iteration=3: 0.900404044298\n    test 1528 42 42.015935495968 Xi(tan=0.900908, x=1.49259, y=1.34469), iteration=2: 0.900404044298\n\n    test 1529 42 42.143571223962 Phi(tan=0.904952, x=0.741466, y=0.670991): 0.900404044298\n    test 1530 42 42.047852933259 Beta(tan=0.901917, x=0.742586, y=0.669751): 0.900404044298\n    test 1531 42 41.952167704870 Theta(tan=0.898894, x=0.743703, y=0.66851): 0.900404044298\n    test 1532 42 42.000000000000 Mu(tan=0.900404, x=0.743145, y=0.669131): 0.900404044298\n    test 1533 42 41.952263729127 Chi(tan=0.898897, x=0.743702, y=0.668511): 0.900404044298\n    test 1534 42 42.015935495968 Xi(tan=0.900908, x=0.742959, y=0.669337): 0.900404044298\n\n    test 1535 49 49.142854800592 Phi(tan=1.15618, x=1.0, y=1.15618): 1.150368407221\n    test 1536 49 49.047623888378 Beta(tan=1.1523, x=1.0, y=1.1523): 1.150368407221\n    test 1537 49 48.952347927786 Theta(tan=1.14844, x=1.0, y=1.14844): 1.150368407221\n    test 1538 49 49.000000000000 Mu(tan=1.15037, x=0.656059, y=0.75471): 1.150368407221\n    test 1539 49 48.952469542367 Chi(tan=1.14844, x=1.0, y=1.14844), iteration=3: 1.150368407221\n    test 1540 49 49.015862036782 Xi(tan=1.15101, x=1.31759, y=1.51656), iteration=2: 1.150368407221\n\n    test 1541 49 49.142854800592 Phi(tan=1.15618, x=0.654175, y=0.756343): 1.150368407221\n    test 1542 49 49.047623888378 Beta(tan=1.1523, x=0.655431, y=0.755255): 1.150368407221\n    test 1543 49 48.952347927786 Theta(tan=1.14844, x=0.656686, y=0.754164): 1.150368407221\n    test 1544 49 49.000000000000 Mu(tan=1.15037, x=0.656059, y=0.75471): 1.150368407221\n    test 1545 49 48.952469542367 Chi(tan=1.14844, x=0.656685, y=0.754165): 1.150368407221\n    test 1546 49 49.015862036782 Xi(tan=1.15101, x=0.65585, y=0.754891): 1.150368407221\n\n    test 1547 56 56.133661968442 Phi(tan=1.49005, x=1.0, y=1.49005): 1.482560968513\n    test 1548 56 56.044568042538 Beta(tan=1.48505, x=1.0, y=1.48505): 1.482560968513\n    test 1549 56 55.955361525715 Theta(tan=1.48007, x=1.0, y=1.48007): 1.482560968513\n    test 1550 56 56.000000000000 Mu(tan=1.48256, x=0.559193, y=0.829038): 1.482560968513\n    test 1551 56 55.955498904140 Chi(tan=1.48008, x=1.0, y=1.48008), iteration=3: 1.482560968513\n    test 1552 56 56.014846771252 Xi(tan=1.48339, x=1.12298, y=1.66581), iteration=2: 1.482560968513\n\n    test 1553 56 56.133661968442 Phi(tan=1.49005, x=0.557257, y=0.83034): 1.482560968513\n    test 1554 56 56.044568042538 Beta(tan=1.48505, x=0.558548, y=0.829472): 1.482560968513\n    test 1555 56 55.955361525715 Theta(tan=1.48007, x=0.559839, y=0.828602): 1.482560968513\n    test 1556 56 56.000000000000 Mu(tan=1.48256, x=0.559193, y=0.829038): 1.482560968513\n    test 1557 56 55.955498904140 Chi(tan=1.48008, x=0.559837, y=0.828603): 1.482560968513\n    test 1558 56 56.014846771252 Xi(tan=1.48339, x=0.558978, y=0.829182): 1.482560968513\n\n    test 1559 63 63.116554283961 Phi(tan=1.97252, x=1.0, y=1.97252): 1.962610505505\n    test 1560 63 63.038870615950 Beta(tan=1.96591, x=1.0, y=1.96591): 1.962610505505\n    test 1561 63 62.961033158986 Theta(tan=1.95932, x=1.0, y=1.95932): 1.962610505505\n    test 1562 63 63.000000000000 Mu(tan=1.96261, x=0.45399, y=0.891007): 1.962610505505\n    test 1563 63 62.961171598977 Chi(tan=1.95933, x=1.0, y=1.95933), iteration=3: 1.962610505505\n    test 1564 63 63.012950815476 Xi(tan=1.96371, x=0.911653, y=1.79022), iteration=2: 1.962610505505\n\n    test 1565 63 63.116554283961 Phi(tan=1.97252, x=0.452177, y=0.891928): 1.962610505505\n    test 1566 63 63.038870615950 Beta(tan=1.96591, x=0.453386, y=0.891314): 1.962610505505\n    test 1567 63 62.961033158986 Theta(tan=1.95932, x=0.454596, y=0.890698): 1.962610505505\n    test 1568 63 63.000000000000 Mu(tan=1.96261, x=0.45399, y=0.891007): 1.962610505505\n    test 1569 63 62.961171598977 Chi(tan=1.95933, x=0.454594, y=0.890699): 1.962610505505\n    test 1570 63 63.012950815476 Xi(tan=1.96371, x=0.453789, y=0.891109): 1.962610505505\n\n    test 1571 70 70.092557449454 Phi(tan=2.76135, x=1.0, y=2.76135): 2.747477419455\n    test 1572 70 70.030872319297 Beta(tan=2.75209, x=1.0, y=2.75209): 2.747477419455\n    test 1573 70 69.969028142824 Theta(tan=2.74286, x=1.0, y=2.74286): 2.747477419455\n    test 1574 70 70.000000000000 Mu(tan=2.74748, x=0.34202, y=0.939693): 2.747477419455\n    test 1575 70 69.969150471863 Chi(tan=2.74288, x=1.0, y=2.74288), iteration=2: 2.747477419455\n    test 1576 70 70.010287292906 Xi(tan=2.74901, x=0.686773, y=1.88795), iteration=3: 2.747477419455\n\n    test 1577 70 70.092557449454 Phi(tan=2.76135, x=0.340502, y=0.940244): 2.747477419455\n    test 1578 70 70.030872319297 Beta(tan=2.75209, x=0.341514, y=0.939877): 2.747477419455\n    test 1579 70 69.969028142824 Theta(tan=2.74286, x=0.342528, y=0.939508): 2.747477419455\n    test 1580 70 70.000000000000 Mu(tan=2.74748, x=0.34202, y=0.939693): 2.747477419455\n    test 1581 70 69.969150471863 Chi(tan=2.74288, x=0.342526, y=0.939508): 2.747477419455\n    test 1582 70 70.010287292906 Xi(tan=2.74901, x=0.341851, y=0.939754): 2.747477419455\n\n    test 1583 77 77.063098225048 Phi(tan=4.35334, x=1.0, y=4.35334): 4.331475874284\n    test 1584 77 77.021048596835 Beta(tan=4.33875, x=1.0, y=4.33875): 4.331475874284\n    test 1585 77 76.978871802460 Theta(tan=4.3242, x=1.0, y=4.3242): 4.331475874284\n    test 1586 77 77.000000000000 Mu(tan=4.33148, x=0.224951, y=0.97437): 4.331475874284\n    test 1587 77 76.978961492015 Chi(tan=4.32423, x=1.0, y=4.32423), iteration=3: 4.331475874284\n    test 1588 77 77.007014500932 Xi(tan=4.3339, x=0.451683, y=1.95755), iteration=3: 4.331475874284\n\n    test 1589 77 77.063098225048 Phi(tan=4.35334, x=0.223878, y=0.974617): 4.331475874284\n    test 1590 77 77.021048596835 Beta(tan=4.33875, x=0.224593, y=0.974453): 4.331475874284\n    test 1591 77 76.978871802460 Theta(tan=4.3242, x=0.22531, y=0.974287): 4.331475874284\n    test 1592 77 77.000000000000 Mu(tan=4.33148, x=0.224951, y=0.97437): 4.331475874284\n    test 1593 77 76.978961492015 Chi(tan=4.32423, x=0.225309, y=0.974287): 4.331475874284\n    test 1594 77 77.007014500932 Xi(tan=4.3339, x=0.224832, y=0.974398): 4.331475874284\n\n    test 1595 84 84.029919429066 Phi(tan=9.5624, x=1.0, y=9.5624): 9.514364454223\n    test 1596 84 84.009981321799 Beta(tan=9.53033, x=1.0, y=9.53033): 9.514364454223\n    test 1597 84 83.989977604221 Theta(tan=9.49838, x=1.0, y=9.49838): 9.514364454223\n    test 1598 84 84.000000000000 Mu(tan=9.51436, x=0.104528, y=0.994522): 9.514364454223\n    test 1599 84 83.990021917793 Chi(tan=9.49845, x=1.0, y=9.49845), iteration=3: 9.514364454223\n    test 1600 84 84.003326493225 Xi(tan=9.51968, x=0.20988, y=1.99799), iteration=2: 9.514364454223\n\n    test 1601 84 84.029919429066 Phi(tan=9.5624, x=0.104009, y=0.994576): 9.514364454223\n    test 1602 84 84.009981321799 Beta(tan=9.53033, x=0.104355, y=0.99454): 9.514364454223\n    test 1603 84 83.989977604221 Theta(tan=9.49838, x=0.104702, y=0.994504): 9.514364454223\n    test 1604 84 84.000000000000 Mu(tan=9.51436, x=0.104528, y=0.994522): 9.514364454223\n    test 1605 84 83.990021917793 Chi(tan=9.49845, x=0.104702, y=0.994504): 9.514364454223\n    test 1606 84 84.003326493225 Xi(tan=9.51968, x=0.104471, y=0.994528): 9.514364454223\n\n    test 1607 91 90.994978117111 Phi(tan=-57.5792, x=-1, y=57.5792): -57.289961630759\n    test 1608 91 90.998324636576 Beta(tan=-57.3861, x=-1, y=57.3861): -57.289961630759\n    test 1609 91 91.001682407187 Theta(tan=-57.1937, x=-1, y=57.1937): -57.289961630759\n    test 1610 91 91.000000000000 Mu(tan=-57.29, x=-0.0174524, y=0.999848): -57.289961630759\n    test 1611 91 91.001674889056 Chi(tan=-57.1941, x=-1, y=57.1941), iteration=3: -57.289961630759\n    test 1612 91 90.999441640005 Xi(tan=-57.322, x=-0.035042, y=2.00867), iteration=3: -57.289961630759\n\n    test 1613 91 90.994978117111 Phi(tan=-57.5792, x=-0.0173648, y=0.999849): -57.289961630759\n    test 1614 91 90.998324636576 Beta(tan=-57.3861, x=-0.0174232, y=0.999848): -57.289961630760  FAILED, KNOWN (5.95323e-15), expected -57.289961630759\n    test 1615 91 91.001682407187 Theta(tan=-57.1937, x=-0.0174818, y=0.999847): -57.289961630760  FAILED, KNOWN (5.82921e-15), expected -57.289961630759\n    test 1616 91 91.000000000000 Mu(tan=-57.29, x=-0.0174524, y=0.999848): -57.289961630759\n    test 1617 91 91.001674889056 Chi(tan=-57.1941, x=-0.0174816, y=0.999847): -57.289961630760  FAILED, KNOWN (9.30193e-15), expected -57.289961630759\n    test 1618 91 90.999441640005 Xi(tan=-57.322, x=-0.0174427, y=0.999848): -57.289961630759\n\n    test 1619 98 97.960332584009 Phi(tan=-7.15129, x=-1, y=7.15129): -7.115369722384\n    test 1620 98 97.986766870880 Beta(tan=-7.12731, x=-1, y=7.12731): -7.115369722384\n    test 1621 98 98.013286645922 Theta(tan=-7.10342, x=-1, y=7.10342): -7.115369722384\n    test 1622 98 98.000000000000 Mu(tan=-7.11537, x=-0.139173, y=0.990268): -7.115369722384\n    test 1623 98 98.013228398375 Chi(tan=-7.10347, x=-1, y=7.10347), iteration=3: -7.115369722384\n    test 1624 98 97.995589824971 Xi(tan=-7.11935, x=-0.279443, y=1.98945), iteration=3: -7.115369722384\n\n    test 1625 98 97.960332584009 Phi(tan=-7.15129, x=-0.138487, y=0.990364): -7.115369722384\n    test 1626 98 97.986766870880 Beta(tan=-7.12731, x=-0.138944, y=0.9903): -7.115369722384\n    test 1627 98 98.013286645922 Theta(tan=-7.10342, x=-0.139403, y=0.990236): -7.115369722384\n    test 1628 98 98.000000000000 Mu(tan=-7.11537, x=-0.139173, y=0.990268): -7.115369722384\n    test 1629 98 98.013228398375 Chi(tan=-7.10347, x=-0.139402, y=0.990236): -7.115369722384\n    test 1630 98 97.995589824971 Xi(tan=-7.11935, x=-0.139097, y=0.990279): -7.115369722384\n\n    test 1631 105 104.928024147426 Phi(tan=-3.75089, x=-1, y=3.75089): -3.732050807569\n    test 1632 105 104.975990619809 Beta(tan=-3.73832, x=-1, y=3.73832): -3.732050807569\n    test 1633 105 105.024096873204 Theta(tan=-3.72578, x=-1, y=3.72578): -3.732050807569\n    test 1634 105 105.000000000000 Mu(tan=-3.73205, x=-0.258819, y=0.965926): -3.732050807569\n    test 1635 105 105.023996337790 Chi(tan=-3.72581, x=-1, y=3.72581), iteration=3: -3.732050807569\n    test 1636 105 104.991999000074 Xi(tan=-3.73414, x=-0.519691, y=1.9406), iteration=3: -3.732050807569\n\n    test 1637 105 104.928024147426 Phi(tan=-3.75089, x=-0.257605, y=0.96625): -3.732050807569\n    test 1638 105 104.975990619809 Beta(tan=-3.73832, x=-0.258414, y=0.966034): -3.732050807569\n    test 1639 105 105.024096873204 Theta(tan=-3.72578, x=-0.259225, y=0.965817): -3.732050807569\n    test 1640 105 105.000000000000 Mu(tan=-3.73205, x=-0.258819, y=0.965926): -3.732050807569\n    test 1641 105 105.023996337790 Chi(tan=-3.72581, x=-0.259224, y=0.965817): -3.732050807569\n    test 1642 105 104.991999000074 Xi(tan=-3.73414, x=-0.258684, y=0.965962): -3.732050807569\n\n    test 1643 112 111.899959803709 Phi(tan=-2.48758, x=-1, y=2.48758): -2.475086853416\n    test 1644 112 111.966633129887 Beta(tan=-2.47924, x=-1, y=2.47924): -2.475086853416\n    test 1645 112 112.033467905647 Theta(tan=-2.47093, x=-1, y=2.47093): -2.475086853416\n    test 1646 112 112.000000000000 Mu(tan=-2.47509, x=-0.374607, y=0.927184): -2.475086853416\n    test 1647 112 112.033339197227 Chi(tan=-2.47095, x=-1, y=2.47095), iteration=3: -2.475086853416\n    test 1648 112 111.988881847875 Xi(tan=-2.47647, x=-0.752216, y=1.86284), iteration=3: -2.475086853416\n\n    test 1649 112 111.899959803709 Phi(tan=-2.48758, x=-0.372987, y=0.927837): -2.475086853416\n    test 1650 112 111.966633129887 Beta(tan=-2.47924, x=-0.374067, y=0.927402): -2.475086853416\n    test 1651 112 112.033467905647 Theta(tan=-2.47093, x=-0.375148, y=0.926965): -2.475086853416\n    test 1652 112 112.000000000000 Mu(tan=-2.47509, x=-0.374607, y=0.927184): -2.475086853416\n    test 1653 112 112.033339197227 Chi(tan=-2.47095, x=-0.375146, y=0.926966): -2.475086853416\n    test 1654 112 111.988881847875 Xi(tan=-2.47647, x=-0.374427, y=0.927257): -2.475086853416\n\n    test 1655 119 118.877801825189 Phi(tan=-1.81316, x=-1, y=1.81316): -1.804047755271\n    test 1656 119 118.959249130251 Beta(tan=-1.80708, x=-1, y=1.80708): -1.804047755271\n    test 1657 119 119.040841846602 Theta(tan=-1.80102, x=-1, y=1.80102): -1.804047755271\n    test 1658 119 119.000000000000 Mu(tan=-1.80405, x=-0.48481, y=0.87462): -1.804047755271\n    test 1659 119 119.040702010928 Chi(tan=-1.80103, x=-1, y=1.80103), iteration=3: -1.804047755271\n    test 1660 119 118.986423296510 Xi(tan=-1.80506, x=-0.973556, y=1.75732), iteration=2: -1.804047755271\n\n    test 1661 119 118.877801825189 Phi(tan=-1.81316, x=-0.482943, y=0.875652): -1.804047755271\n    test 1662 119 118.959249130251 Beta(tan=-1.80708, x=-0.484187, y=0.874964): -1.804047755271\n    test 1663 119 119.040841846602 Theta(tan=-1.80102, x=-0.485433, y=0.874274): -1.804047755271\n    test 1664 119 119.000000000000 Mu(tan=-1.80405, x=-0.48481, y=0.87462): -1.804047755271\n    test 1665 119 119.040702010928 Chi(tan=-1.80103, x=-0.485431, y=0.874275): -1.804047755271\n    test 1666 119 118.986423296510 Xi(tan=-1.80506, x=-0.484602, y=0.874735): -1.804047755271\n\n    test 1667 126 125.862870188589 Phi(tan=-1.38333, x=-1, y=1.38333): -1.376381920471\n    test 1668 126 125.954278157197 Beta(tan=-1.37869, x=-1, y=1.37869): -1.376381920471\n    test 1669 126 126.045781505815 Theta(tan=-1.37407, x=-1, y=1.37407): -1.376381920471\n    test 1670 126 126.000000000000 Mu(tan=-1.37638, x=-0.587785, y=0.809017): -1.376381920471\n    test 1671 126 126.045647308130 Chi(tan=-1.37408, x=-1, y=1.37408), iteration=3: -1.376381920471\n    test 1672 126 125.984769594047 Xi(tan=-1.37715, x=-1.18042, y=1.62561), iteration=2: -1.376381920471\n\n    test 1673 126 125.862870188589 Phi(tan=-1.38333, x=-0.585847, y=0.810421): -1.376381920471\n    test 1674 126 125.954278157197 Beta(tan=-1.37869, x=-0.587139, y=0.809486): -1.376381920471\n    test 1675 126 126.045781505815 Theta(tan=-1.37407, x=-0.588431, y=0.808547): -1.376381920471\n    test 1676 126 126.000000000000 Mu(tan=-1.37638, x=-0.587785, y=0.809017): -1.376381920471\n    test 1677 126 126.045647308130 Chi(tan=-1.37408, x=-0.58843, y=0.808548): -1.376381920471\n    test 1678 126 125.984769594047 Xi(tan=-1.37715, x=-0.58757, y=0.809173): -1.376381920471\n\n    test 1679 133 132.856063347719 Phi(tan=-1.07778, x=-1, y=1.07778): -1.072368710025\n    test 1680 133 132.952018246366 Beta(tan=-1.07417, x=-1, y=1.07417): -1.072368710025\n    test 1681 133 133.047996165770 Theta(tan=-1.07057, x=-1, y=1.07057): -1.072368710025\n    test 1682 133 133.000000000000 Mu(tan=-1.07237, x=-0.681998, y=0.731354): -1.072368710025\n    test 1683 133 133.047881115076 Chi(tan=-1.07057, x=-1, y=1.07057), iteration=3: -1.072368710025\n    test 1684 133 132.984019576906 Xi(tan=-1.07297, x=-1.36971, y=1.46966), iteration=2: -1.072368710025\n\n    test 1685 133 132.856063347719 Phi(tan=-1.07778, x=-0.680159, y=0.733065): -1.072368710025\n    test 1686 133 132.952018246366 Beta(tan=-1.07417, x=-0.681386, y=0.731925): -1.072368710025\n    test 1687 133 133.047996165770 Theta(tan=-1.07057, x=-0.682611, y=0.730782): -1.072368710025\n    test 1688 133 133.000000000000 Mu(tan=-1.07237, x=-0.681998, y=0.731354): -1.072368710025\n    test 1689 133 133.047881115076 Chi(tan=-1.07057, x=-0.682609, y=0.730784): -1.072368710025\n    test 1690 133 132.984019576906 Xi(tan=-1.07297, x=-0.681794, y=0.731544): -1.072368710025\n\n    test 1691 140 139.857802229338 Phi(tan=-0.843338, x=-1, y=0.843338): -0.839099631177\n    test 1692 140 139.952607597930 Beta(tan=-0.84051, x=-1, y=0.84051): -0.839099631177\n    test 1693 140 140.047358211970 Theta(tan=-0.837692, x=-1, y=0.837692): -0.839099631177\n    test 1694 140 140.000000000000 Mu(tan=-0.8391, x=-0.766044, y=0.642788): -0.839099631177\n    test 1695 140 140.047270461053 Chi(tan=-0.837695, x=-1, y=0.837695), iteration=3: -0.839099631177\n    test 1696 140 139.984218660625 Xi(tan=-0.839569, x=-1.53861, y=1.29177), iteration=3: -0.839099631177\n\n    test 1697 140 139.857802229338 Phi(tan=-0.843338, x=-0.764447, y=0.644687): -0.839099631177\n    test 1698 140 139.952607597930 Beta(tan=-0.84051, x=-0.765512, y=0.643421): -0.839099631177\n    test 1699 140 140.047358211970 Theta(tan=-0.837692, x=-0.766575, y=0.642154): -0.839099631177\n    test 1700 140 140.000000000000 Mu(tan=-0.8391, x=-0.766044, y=0.642788): -0.839099631177\n    test 1701 140 140.047270461053 Chi(tan=-0.837695, x=-0.766574, y=0.642155): -0.839099631177\n    test 1702 140 139.984218660625 Xi(tan=-0.839569, x=-0.765867, y=0.642999): -0.839099631177\n\n    test 1703 147 146.868001375396 Phi(tan=-0.652688, x=-1, y=0.652688): -0.649407593198\n    test 1704 147 146.956015447561 Beta(tan=-0.6505, x=-1, y=0.6505): -0.649407593198\n    test 1705 147 147.043909788845 Theta(tan=-0.648319, x=-1, y=0.648319): -0.649407593198\n    test 1706 147 147.000000000000 Mu(tan=-0.649408, x=-0.838671, y=0.544639): -0.649407593198\n    test 1707 147 147.043851339199 Chi(tan=-0.64832, x=-1, y=0.64832), iteration=3: -0.649407593198\n    test 1708 147 146.985355941570 Xi(tan=-0.649771, x=-1.68459, y=1.0946), iteration=3: -0.649407593198\n\n    test 1709 147 146.868001375396 Phi(tan=-0.652688, x=-0.837414, y=0.54657): -0.649407593198\n    test 1710 147 146.956015447561 Beta(tan=-0.6505, x=-0.838252, y=0.545283): -0.649407593198\n    test 1711 147 147.043909788845 Theta(tan=-0.648319, x=-0.839088, y=0.543996): -0.649407593198\n    test 1712 147 147.000000000000 Mu(tan=-0.649408, x=-0.838671, y=0.544639): -0.649407593198\n    test 1713 147 147.043851339199 Chi(tan=-0.64832, x=-0.839087, y=0.543997): -0.649407593198\n    test 1714 147 146.985355941570 Xi(tan=-0.649771, x=-0.838531, y=0.544853): -0.649407593198\n\n    test 1715 154 153.886069836452 Phi(tan=-0.490196, x=-1, y=0.490196): -0.487732588566\n    test 1716 154 153.962042898489 Beta(tan=-0.488553, x=-1, y=0.488553): -0.487732588566\n    test 1717 154 154.037859302268 Theta(tan=-0.486915, x=-1, y=0.486915): -0.487732588566\n    test 1718 154 154.000000000000 Mu(tan=-0.487733, x=-0.898794, y=0.438371): -0.487732588566\n    test 1719 154 154.037826635034 Chi(tan=-0.486916, x=-1, y=0.486916), iteration=3: -0.487732588566\n    test 1720 154 153.987364628293 Xi(tan=-0.488006, x=-1.80546, y=0.881077), iteration=3: -0.487732588566\n\n    test 1721 154 153.886069836452 Phi(tan=-0.490196, x=-0.897921, y=0.440157): -0.487732588566\n    test 1722 154 153.962042898489 Beta(tan=-0.488553, x=-0.898503, y=0.438966): -0.487732588566\n    test 1723 154 154.037859302268 Theta(tan=-0.486915, x=-0.899084, y=0.437777): -0.487732588566\n    test 1724 154 154.000000000000 Mu(tan=-0.487733, x=-0.898794, y=0.438371): -0.487732588566\n    test 1725 154 154.037826635034 Chi(tan=-0.486916, x=-0.899083, y=0.437778): -0.487732588566\n    test 1726 154 153.987364628293 Xi(tan=-0.488006, x=-0.898697, y=0.438569): -0.487732588566\n\n    test 1727 161 160.910942745263 Phi(tan=-0.346067, x=-1, y=0.346067): -0.344327613290\n    test 1728 161 160.970333898803 Beta(tan=-0.344907, x=-1, y=0.344907): -0.344327613290\n    test 1729 161 161.029568209135 Theta(tan=-0.34375, x=-1, y=0.34375): -0.344327613290\n    test 1730 161 161.000000000000 Mu(tan=-0.344328, x=-0.945519, y=0.325568): -0.344327613290\n    test 1731 161 161.029554130079 Chi(tan=-0.343751, x=-1, y=0.343751), iteration=2: -0.344327613290\n    test 1732 161 160.990125827674 Xi(tan=-0.34452, x=-1.89942, y=0.654387), iteration=3: -0.344327613290\n\n    test 1733 161 160.910942745263 Phi(tan=-0.346067, x=-0.945011, y=0.327037): -0.344327613290\n    test 1734 161 160.970333898803 Beta(tan=-0.344907, x=-0.94535, y=0.326058): -0.344327613290\n    test 1735 161 161.029568209135 Theta(tan=-0.34375, x=-0.945686, y=0.32508): -0.344327613290\n    test 1736 161 161.000000000000 Mu(tan=-0.344328, x=-0.945519, y=0.325568): -0.344327613290\n    test 1737 161 161.029554130079 Chi(tan=-0.343751, x=-0.945686, y=0.32508): -0.344327613290\n    test 1738 161 160.990125827674 Xi(tan=-0.34452, x=-0.945462, y=0.325731): -0.344327613290\n\n    test 1739 168 167.941142537455 Phi(tan=-0.21363, x=-1, y=0.21363): -0.212556561670\n    test 1740 168 167.980395911211 Beta(tan=-0.212914, x=-1, y=0.212914): -0.212556561670\n    test 1741 168 168.019529073263 Theta(tan=-0.2122, x=-1, y=0.2122): -0.212556561670\n    test 1742 168 168.000000000000 Mu(tan=-0.212557, x=-0.978148, y=0.207912): -0.212556561670\n    test 1743 168 168.019525279620 Chi(tan=-0.2122, x=-1, y=0.2122), iteration=3: -0.212556561670\n    test 1744 168 167.993475503952 Xi(tan=-0.212676, x=-1.96503, y=0.417914), iteration=2: -0.212556561670\n\n    test 1745 168 167.941142537455 Phi(tan=-0.21363, x=-0.977934, y=0.208916): -0.212556561670\n    test 1746 168 167.980395911211 Beta(tan=-0.212914, x=-0.978076, y=0.208246): -0.212556561670\n    test 1747 168 168.019529073263 Theta(tan=-0.2122, x=-0.978218, y=0.207578): -0.212556561670\n    test 1748 168 168.000000000000 Mu(tan=-0.212557, x=-0.978148, y=0.207912): -0.212556561670\n    test 1749 168 168.019525279620 Chi(tan=-0.2122, x=-0.978218, y=0.207578): -0.212556561670\n    test 1750 168 167.993475503952 Xi(tan=-0.212676, x=-0.978124, y=0.208023): -0.212556561670\n\n    test 1751 175 174.974866680328 Phi(tan=-0.0879307, x=-1, y=0.0879307): -0.087488663526\n    test 1752 175 174.991629164161 Beta(tan=-0.0876359, x=-1, y=0.0876359): -0.087488663526\n    test 1753 175 175.008336301828 Theta(tan=-0.0873421, x=-1, y=0.0873421): -0.087488663526\n    test 1754 175 175.000000000000 Mu(tan=-0.0874887, x=-0.996195, y=0.0871557): -0.087488663526\n    test 1755 175 175.008336017206 Chi(tan=-0.0873421, x=-1, y=0.0873421), iteration=2: -0.087488663526\n    test 1756 175 174.997214222263 Xi(tan=-0.0875377, x=-2.00133, y=0.175191), iteration=2: -0.087488663526\n\n    test 1757 175 174.974866680328 Phi(tan=-0.0879307, x=-0.996156, y=0.0875927): -0.087488663526\n    test 1758 175 174.991629164161 Beta(tan=-0.0876359, x=-0.996182, y=0.0873013): -0.087488663526\n    test 1759 175 175.008336301828 Theta(tan=-0.0873421, x=-0.996207, y=0.0870108): -0.087488663526\n    test 1760 175 175.000000000000 Mu(tan=-0.0874887, x=-0.996195, y=0.0871557): -0.087488663526\n    test 1761 175 175.008336017206 Chi(tan=-0.0873421, x=-0.996207, y=0.0870108): -0.087488663526\n    test 1762 175 174.997214222263 Xi(tan=-0.0875377, x=-0.99619, y=0.0872042): -0.087488663526\n\n    test 1763 182 182.010096724503 Phi(tan=0.0350972, x=-1, y=-0.0350972): 0.034920769492\n    test 1764 182 182.003362751638 Beta(tan=0.0349795, x=-1, y=-0.0349795): 0.034920769492\n    test 1765 182 181.996651301418 Theta(tan=0.0348623, x=-1, y=-0.0348623): 0.034920769492\n    test 1766 182 182.000000000000 Mu(tan=0.0349208, x=-0.999391, y=-0.0348995): 0.034920769492\n    test 1767 182 181.996651319751 Chi(tan=0.0348623, x=-1, y=-0.0348623), iteration=2: 0.034920769492\n    test 1768 182 182.001119098649 Xi(tan=0.0349403, x=-2.00775, y=-0.0701516), iteration=2: 0.034920769492\n\n    test 1769 182 182.010096724503 Phi(tan=0.0350972, x=-0.999385, y=-0.0350756): 0.034920769492\n    test 1770 182 182.003362751638 Beta(tan=0.0349795, x=-0.999389, y=-0.0349582): 0.034920769492\n    test 1771 182 181.996651301418 Theta(tan=0.0348623, x=-0.999393, y=-0.0348411): 0.034920769492\n    test 1772 182 182.000000000000 Mu(tan=0.0349208, x=-0.999391, y=-0.0348995): 0.034920769492\n    test 1773 182 181.996651319751 Chi(tan=0.0348623, x=-0.999393, y=-0.0348411): 0.034920769492\n    test 1774 182 182.001119098649 Xi(tan=0.0349403, x=-0.99939, y=-0.034919): 0.034920769492\n\n    test 1775 189 189.044721740866 Phi(tan=0.159185, x=-1, y=-0.159185): 0.158384440325\n    test 1776 189 189.014895327636 Beta(tan=0.158651, x=-1, y=-0.158651): 0.158384440325\n    test 1777 189 188.985164013992 Theta(tan=0.158119, x=-1, y=-0.158119): 0.158384440325\n    test 1778 189 189.000000000000 Mu(tan=0.158384, x=-0.987688, y=-0.156434): 0.158384440325\n    test 1779 189 188.985165645705 Chi(tan=0.158119, x=-1, y=-0.158119), iteration=3: 0.158384440325\n    test 1780 189 189.004957222799 Xi(tan=0.158473, x=-1.98422, y=-0.314445), iteration=3: 0.158384440325\n\n    test 1781 189 189.044721740866 Phi(tan=0.159185, x=-0.987566, y=-0.157205): 0.158384440325\n    test 1782 189 189.014895327636 Beta(tan=0.158651, x=-0.987648, y=-0.156691): 0.158384440325\n    test 1783 189 188.985164013992 Theta(tan=0.158119, x=-0.987729, y=-0.156179): 0.158384440325\n    test 1784 189 189.000000000000 Mu(tan=0.158384, x=-0.987688, y=-0.156434): 0.158384440325\n    test 1785 189 188.985165645705 Chi(tan=0.158119, x=-0.987729, y=-0.156179): 0.158384440325\n    test 1786 189 189.004957222799 Xi(tan=0.158473, x=-0.987675, y=-0.15652): 0.158384440325\n\n    test 1787 196 196.076667971970 Phi(tan=0.288194, x=-1, y=-0.288194): 0.286745385759\n    test 1788 196 196.025537779325 Beta(tan=0.287228, x=-1, y=-0.287228): 0.286745385759\n    test 1789 196 195.974552923462 Theta(tan=0.286265, x=-1, y=-0.286265): 0.286745385759\n    test 1790 196 196.000000000000 Mu(tan=0.286745, x=-0.961262, y=-0.275637): 0.286745385759\n    test 1791 196 195.974561610097 Chi(tan=0.286265, x=-1, y=-0.286265), iteration=2: 0.286745385759\n    test 1792 196 196.008499713199 Xi(tan=0.286906, x=-1.93107, y=-0.554036), iteration=3: 0.286745385759\n\n    test 1793 196 196.076667971970 Phi(tan=0.288194, x=-0.960892, y=-0.276923): 0.286745385759\n    test 1794 196 196.025537779325 Beta(tan=0.287228, x=-0.961139, y=-0.276066): 0.286745385759\n    test 1795 196 195.974552923462 Theta(tan=0.286265, x=-0.961384, y=-0.27521): 0.286745385759\n    test 1796 196 196.000000000000 Mu(tan=0.286745, x=-0.961262, y=-0.275637): 0.286745385759\n    test 1797 196 195.974561610097 Chi(tan=0.286265, x=-0.961384, y=-0.275211): 0.286745385759\n    test 1798 196 196.008499713199 Xi(tan=0.286906, x=-0.961221, y=-0.27578): 0.286745385759\n\n    test 1799 203 203.104025981749 Phi(tan=0.426619, x=-1, y=-0.426619): 0.424474816210\n    test 1800 203 203.034655104114 Beta(tan=0.425189, x=-1, y=-0.425189): 0.424474816210\n    test 1801 203 202.965445675486 Theta(tan=0.423763, x=-1, y=-0.423763): 0.424474816210\n    test 1802 203 203.000000000000 Mu(tan=0.424475, x=-0.920505, y=-0.390731): 0.424474816210\n    test 1803 203 202.965469367936 Chi(tan=0.423764, x=-1, y=-0.423764), iteration=3: 0.424474816210\n    test 1804 203 203.011535517974 Xi(tan=0.424712, x=-1.84912, y=-0.785343), iteration=2: 0.424474816210\n\n    test 1805 203 203.104025981749 Phi(tan=0.426619, x=-0.919794, y=-0.392402): 0.424474816210\n    test 1806 203 203.034655104114 Beta(tan=0.425189, x=-0.920268, y=-0.391288): 0.424474816210\n    test 1807 203 202.965445675486 Theta(tan=0.423763, x=-0.92074, y=-0.390176): 0.424474816210\n    test 1808 203 203.000000000000 Mu(tan=0.424475, x=-0.920505, y=-0.390731): 0.424474816210\n    test 1809 203 202.965469367936 Chi(tan=0.423764, x=-0.92074, y=-0.390176): 0.424474816210\n    test 1810 203 203.011535517974 Xi(tan=0.424712, x=-0.920426, y=-0.390916): 0.424474816210\n\n    test 1811 210 210.125166807834 Phi(tan=0.580267, x=-1, y=-0.580267): 0.577350269190\n    test 1812 210 210.041704779944 Beta(tan=0.578321, x=-1, y=-0.578321): 0.577350269190\n    test 1813 210 209.958382432479 Theta(tan=0.576382, x=-1, y=-0.576382): 0.577350269190\n    test 1814 210 210.000000000000 Mu(tan=0.57735, x=-0.866025, y=-0.5): 0.577350269190\n    test 1815 210 209.958429134161 Chi(tan=0.576383, x=-1, y=-0.576383), iteration=2: 0.577350269190\n    test 1816 210 210.013884093401 Xi(tan=0.577673, x=-1.73958, y=-1.00491), iteration=2: 0.577350269190\n\n    test 1817 210 210.125166807834 Phi(tan=0.580267, x=-0.864931, y=-0.501891): 0.577350269190\n    test 1818 210 210.041704779944 Beta(tan=0.578321, x=-0.865661, y=-0.50063): 0.577350269190\n    test 1819 210 209.958382432479 Theta(tan=0.576382, x=-0.866388, y=-0.499371): 0.577350269190\n    test 1820 210 210.000000000000 Mu(tan=0.57735, x=-0.866025, y=-0.5): 0.577350269190\n    test 1821 210 209.958429134161 Chi(tan=0.576383, x=-0.866388, y=-0.499372): 0.577350269190\n    test 1822 210 210.013884093401 Xi(tan=0.577673, x=-0.865904, y=-0.50021): 0.577350269190\n\n    test 1823 217 217.138839575219 Phi(tan=0.75736, x=-1, y=-0.75736): 0.753554050103\n    test 1824 217 217.046269197118 Beta(tan=0.754821, x=-1, y=-0.754821): 0.753554050103\n    test 1825 217 216.953783990372 Theta(tan=0.75229, x=-1, y=-0.75229): 0.753554050103\n    test 1826 217 217.000000000000 Mu(tan=0.753554, x=-0.798636, y=-0.601815): 0.753554050103\n    test 1827 217 216.953859077076 Chi(tan=0.752292, x=-1, y=-0.752292), iteration=3: 0.753554050103\n    test 1828 217 217.015406173898 Xi(tan=0.753976, x=-1.60412, y=-1.20947), iteration=3: 0.753554050103\n\n    test 1829 217 217.138839575219 Phi(tan=0.75736, x=-0.797175, y=-0.603749): 0.753554050103\n    test 1830 217 217.046269197118 Beta(tan=0.754821, x=-0.798149, y=-0.60246): 0.753554050103\n    test 1831 217 216.953783990372 Theta(tan=0.75229, x=-0.799121, y=-0.601171): 0.753554050103\n    test 1832 217 217.000000000000 Mu(tan=0.753554, x=-0.798636, y=-0.601815): 0.753554050103\n    test 1833 217 216.953859077076 Chi(tan=0.752292, x=-0.79912, y=-0.601172): 0.753554050103\n    test 1834 217 217.015406173898 Xi(tan=0.753976, x=-0.798474, y=-0.60203): 0.753554050103\n\n    test 1835 224 224.144244585156 Phi(tan=0.970566, x=-1, y=-0.970566): 0.965688774807\n    test 1836 224 224.048080179626 Beta(tan=0.967312, x=-1, y=-0.967312): 0.965688774807\n    test 1837 224 223.951926502986 Theta(tan=0.964069, x=-1, y=-0.964069): 0.965688774807\n    test 1838 224 224.000000000000 Mu(tan=0.965689, x=-0.71934, y=-0.694658): 0.965688774807\n    test 1839 224 223.952030495532 Chi(tan=0.964072, x=-1, y=-0.964072), iteration=2: 0.965688774807\n    test 1840 224 224.016011983610 Xi(tan=0.966229, x=-1.44475, y=-1.39596), iteration=2: 0.965688774807\n\n    test 1841 224 224.144244585156 Phi(tan=0.970566, x=-0.717589, y=-0.696467): 0.965688774807\n    test 1842 224 224.048080179626 Beta(tan=0.967312, x=-0.718757, y=-0.695262): 0.965688774807\n    test 1843 224 223.951926502986 Theta(tan=0.964069, x=-0.719922, y=-0.694055): 0.965688774807\n    test 1844 224 224.000000000000 Mu(tan=0.965689, x=-0.71934, y=-0.694658): 0.965688774807\n    test 1845 224 223.952030495532 Chi(tan=0.964072, x=-0.719921, y=-0.694056): 0.965688774807\n    test 1846 224 224.016011983610 Xi(tan=0.966229, x=-0.719146, y=-0.694859): 0.965688774807\n\n    test 1847 231 231.141077842653 Phi(tan=1.24113, x=-1, y=-1.24113): 1.234897156535\n    test 1848 231 231.047034210293 Beta(tan=1.23697, x=-1, y=-1.23697): 1.234897156535\n    test 1849 231 230.952924380812 Theta(tan=1.23282, x=-1, y=-1.23282): 1.234897156535\n    test 1850 231 231.000000000000 Mu(tan=1.2349, x=-0.62932, y=-0.777146): 1.234897156535\n    test 1851 231 230.953051749472 Chi(tan=1.23283, x=-1, y=-1.23283), iteration=3: 1.234897156535\n    test 1852 231 231.015666416855 Xi(tan=1.23559, x=-1.26387, y=-1.56162), iteration=3: 1.234897156535\n\n    test 1853 231 231.141077842654 Phi(tan=1.24113, x=-0.627405, y=-0.778693): 1.234897156535\n    test 1854 231 231.047034210293 Beta(tan=1.23697, x=-0.628682, y=-0.777662): 1.234897156535\n    test 1855 231 230.952924380812 Theta(tan=1.23282, x=-0.629959, y=-0.776629): 1.234897156535\n    test 1856 231 231.000000000000 Mu(tan=1.2349, x=-0.62932, y=-0.777146): 1.234897156535\n    test 1857 231 230.953051749472 Chi(tan=1.23283, x=-0.629957, y=-0.77663): 1.234897156535\n    test 1858 231 231.015666416855 Xi(tan=1.23559, x=-0.629108, y=-0.777318): 1.234897156535\n\n    test 1859 238 238.129545093885 Phi(tan=1.60842, x=-1, y=-1.60842): 1.600334529041\n    test 1860 238 238.043197624299 Beta(tan=1.60302, x=-1, y=-1.60302): 1.600334529041\n    test 1861 238 237.956722543300 Theta(tan=1.59765, x=-1, y=-1.59765): 1.600334529041\n    test 1862 238 238.000000000000 Mu(tan=1.60033, x=-0.529919, y=-0.848048): 1.600334529041\n    test 1863 238 237.956861886827 Chi(tan=1.59766, x=-1, y=-1.59766), iteration=3: 1.600334529041\n    test 1864 238 238.014390916077 Xi(tan=1.60123, x=-1.06417, y=-1.70398), iteration=3: 1.600334529041\n\n    test 1865 238 238.129545093885 Phi(tan=1.60842, x=-0.528, y=-0.849244): 1.600334529041\n    test 1866 238 238.043197624299 Beta(tan=1.60302, x=-0.52928, y=-0.848447): 1.600334529041\n    test 1867 238 237.956722543300 Theta(tan=1.59765, x=-0.53056, y=-0.847648): 1.600334529041\n    test 1868 238 238.000000000000 Mu(tan=1.60033, x=-0.529919, y=-0.848048): 1.600334529041\n    test 1869 238 237.956861886827 Chi(tan=1.59766, x=-0.530558, y=-0.847649): 1.600334529041\n    test 1870 238 238.014390916077 Xi(tan=1.60123, x=-0.529706, y=-0.848181): 1.600334529041\n\n    test 1871 245 245.110345489960 Phi(tan=2.15533, x=-1, y=-2.15533): 2.144506920510\n    test 1872 245 245.036801688087 Beta(tan=2.14811, x=-1, y=-2.14811): 2.144506920510\n    test 1873 245 244.963098707662 Theta(tan=2.14091, x=-1, y=-2.14091): 2.144506920510\n    test 1874 245 245.000000000000 Mu(tan=2.14451, x=-0.422618, y=-0.906308): 2.144506920510\n    test 1875 245 244.963234330104 Chi(tan=2.14092, x=-1, y=-2.14092), iteration=2: 2.144506920510\n    test 1876 245 245.012261984604 Xi(tan=2.14571, x=-0.848642, y=-1.82094), iteration=3: 2.144506920510\n\n    test 1877 245 245.110345489960 Phi(tan=2.15533, x=-0.420872, y=-0.90712): 2.144506920510\n    test 1878 245 245.036801688087 Beta(tan=2.14811, x=-0.422036, y=-0.906579): 2.144506920510\n    test 1879 245 244.963098707662 Theta(tan=2.14091, x=-0.423202, y=-0.906035): 2.144506920510\n    test 1880 245 245.000000000000 Mu(tan=2.14451, x=-0.422618, y=-0.906308): 2.144506920510\n    test 1881 245 244.963234330104 Chi(tan=2.14092, x=-0.4232, y=-0.906036): 2.144506920510\n    test 1882 245 245.012261984604 Xi(tan=2.14571, x=-0.422424, y=-0.906398): 2.144506920510\n\n    test 1883 252 252.084626804899 Phi(tan=3.09322, x=-1, y=-3.09322): 3.077683537175\n    test 1884 252 252.028228084417 Beta(tan=3.08285, x=-1, y=-3.08285): 3.077683537175\n    test 1885 252 251.971675808314 Theta(tan=3.07251, x=-1, y=-3.07251): 3.077683537175\n    test 1886 252 252.000000000000 Mu(tan=3.07768, x=-0.309017, y=-0.951057): 3.077683537175\n    test 1887 252 251.971790388449 Chi(tan=3.07254, x=-1, y=-3.07254), iteration=3: 3.077683537175\n    test 1888 252 252.009406472364 Xi(tan=3.0794, x=-0.620495, y=-1.91076), iteration=3: 3.077683537175\n\n    test 1889 252 252.084626804899 Phi(tan=3.09322, x=-0.307612, y=-0.951512): 3.077683537175\n    test 1890 252 252.028228084417 Beta(tan=3.08285, x=-0.308548, y=-0.951209): 3.077683537175\n    test 1891 252 251.971675808314 Theta(tan=3.07251, x=-0.309487, y=-0.950904): 3.077683537175\n    test 1892 252 252.000000000000 Mu(tan=3.07768, x=-0.309017, y=-0.951057): 3.077683537175\n    test 1893 252 251.971790388449 Chi(tan=3.07254, x=-0.309485, y=-0.950904): 3.077683537175\n    test 1894 252 252.009406472364 Xi(tan=3.0794, x=-0.308861, y=-0.951107): 3.077683537175\n\n    test 1895 259 259.053915611440 Phi(tan=5.17053, x=-1, y=-5.17053): 5.144554015970\n    test 1896 259 259.017985844271 Beta(tan=5.15319, x=-1, y=-5.15319): 5.144554015970\n    test 1897 259 258.981943992803 Theta(tan=5.13591, x=-1, y=-5.13591): 5.144554015970\n    test 1898 259 259.000000000000 Mu(tan=5.14455, x=-0.190809, y=-0.981627): 5.144554015970\n    test 1899 259 258.982021780770 Chi(tan=5.13595, x=-1, y=-5.13595), iteration=2: 5.144554015970\n    test 1900 259 259.005993953740 Xi(tan=5.14743, x=-0.383125, y=-1.97211), iteration=3: 5.144554015970\n\n    test 1901 259 259.053915611440 Phi(tan=5.17053, x=-0.189885, y=-0.981806): 5.144554015970\n    test 1902 259 259.017985844271 Beta(tan=5.15319, x=-0.190501, y=-0.981687): 5.144554015970\n    test 1903 259 258.981943992803 Theta(tan=5.13591, x=-0.191118, y=-0.981567): 5.144554015970\n    test 1904 259 259.000000000000 Mu(tan=5.14455, x=-0.190809, y=-0.981627): 5.144554015970\n    test 1905 259 258.982021780770 Chi(tan=5.13595, x=-0.191117, y=-0.981567): 5.144554015970\n    test 1906 259 259.005993953740 Xi(tan=5.14743, x=-0.190706, y=-0.981647): 5.144554015970\n\n    test 1907 266 266.020026926530 Phi(tan=14.3729, x=-1, y=-14.3729): 14.300666256712\n    test 1908 266 266.006681184269 Beta(tan=14.3247, x=-1, y=-14.3247): 14.300666256712\n    test 1909 266 265.993290981931 Theta(tan=14.2766, x=-1, y=-14.2766): 14.300666256712\n    test 1910 266 266.000000000000 Mu(tan=14.3007, x=-0.0697565, y=-0.997564): 14.300666256712\n    test 1911 266 265.993320826309 Chi(tan=14.2767, x=-1, y=-14.2767), iteration=3: 14.300666256712\n    test 1912 266 266.002226669943 Xi(tan=14.3087, x=-0.140061, y=-2.00409), iteration=3: 14.300666256712\n\n    test 1913 266 266.020026926530 Phi(tan=14.3729, x=-0.0694078, y=-0.997588): 14.300666256712\n    test 1914 266 266.006681184269 Beta(tan=14.3247, x=-0.0696401, y=-0.997572): 14.300666256712\n    test 1915 266 265.993290981931 Theta(tan=14.2766, x=-0.0698733, y=-0.997556): 14.300666256712\n    test 1916 266 266.000000000000 Mu(tan=14.3007, x=-0.0697565, y=-0.997564): 14.300666256712\n    test 1917 266 265.993320826309 Chi(tan=14.2767, x=-0.0698728, y=-0.997556): 14.300666256712\n    test 1918 266 266.002226669943 Xi(tan=14.3087, x=-0.0697177, y=-0.997567): 14.300666256712\n\n    test 1919 273 272.984958603323 Phi(tan=-19.1775, x=1.0, y=-19.1775): -19.081136687728\n    test 1920 273 272.994982020871 Beta(tan=-19.1132, x=1.0, y=-19.1132): -19.081136687728\n    test 1921 273 273.005038973685 Theta(tan=-19.0491, x=1.0, y=-19.0491): -19.081136687728\n    test 1922 273 273.000000000000 Mu(tan=-19.0811, x=0.052336, y=-0.99863): -19.081136687728\n    test 1923 273 273.005016510682 Chi(tan=-19.0492, x=1.0, y=-19.0492), iteration=3: -19.081136687728\n    test 1924 273 272.998327629166 Xi(tan=-19.0918, x=0.105083, y=-2.00623), iteration=3: -19.081136687728\n\n    test 1925 273 272.984958603323 Phi(tan=-19.1775, x=0.0520738, y=-0.998643): -19.081136687728\n    test 1926 273 272.994982020871 Beta(tan=-19.1132, x=0.0522485, y=-0.998634): -19.081136687728\n    test 1927 273 273.005038973685 Theta(tan=-19.0491, x=0.0524238, y=-0.998625): -19.081136687728\n    test 1928 273 273.000000000000 Mu(tan=-19.0811, x=0.052336, y=-0.99863): -19.081136687728\n    test 1929 273 273.005016510682 Chi(tan=-19.0492, x=0.0524234, y=-0.998625): -19.081136687728\n    test 1930 273 272.998327629166 Xi(tan=-19.0918, x=0.0523068, y=-0.998631): -19.081136687728\n\n    test 1931 280 279.950776225319 Phi(tan=-5.69991, x=1.0, y=-5.69991): -5.671281819618\n    test 1932 280 279.983579145989 Beta(tan=-5.6808, x=1.0, y=-5.6808): -5.671281819618\n    test 1933 280 280.016485774700 Theta(tan=-5.66176, x=1.0, y=-5.66176): -5.671281819618\n    test 1934 280 280.000000000000 Mu(tan=-5.67128, x=0.173648, y=-0.984808): -5.671281819618\n    test 1935 280 280.016414293005 Chi(tan=-5.6618, x=1.0, y=-5.6618), iteration=3: -5.671281819618\n    test 1936 280 279.994527544579 Xi(tan=-5.67445, x=0.348667, y=-1.97849), iteration=3: -5.671281819618\n\n    test 1937 280 279.950776225319 Phi(tan=-5.69991, x=0.172802, y=-0.984957): -5.671281819618\n    test 1938 280 279.983579145989 Beta(tan=-5.6808, x=0.173366, y=-0.984857): -5.671281819618\n    test 1939 280 280.016485774700 Theta(tan=-5.66176, x=0.173932, y=-0.984758): -5.671281819618\n    test 1940 280 280.000000000000 Mu(tan=-5.67128, x=0.173648, y=-0.984808): -5.671281819618\n    test 1941 280 280.016414293005 Chi(tan=-5.6618, x=0.17393, y=-0.984758): -5.671281819618\n    test 1942 280 279.994527544579 Xi(tan=-5.67445, x=0.173554, y=-0.984824): -5.671281819618\n\n    test 1943 287 286.919494515865 Phi(tan=-3.28737, x=1.0, y=-3.28737): -3.270852618484\n    test 1944 287 286.973146172898 Beta(tan=-3.27634, x=1.0, y=-3.27634): -3.270852618484\n    test 1945 287 287.026947513630 Theta(tan=-3.26536, x=1.0, y=-3.26536): -3.270852618484\n    test 1946 287 287.000000000000 Mu(tan=-3.27085, x=0.292372, y=-0.956305): -3.270852618484\n    test 1947 287 287.026837302239 Chi(tan=-3.26538, x=1.0, y=-3.26538), iteration=3: -3.270852618484\n    test 1948 287 286.991051342914 Xi(tan=-3.27268, x=0.587069, y=-1.92129), iteration=3: -3.270852618484\n\n    test 1949 287 286.919494515865 Phi(tan=-3.28737, x=0.291028, y=-0.956715): -3.270852618484\n    test 1950 287 286.973146172898 Beta(tan=-3.27634, x=0.291923, y=-0.956442): -3.270852618484\n    test 1951 287 287.026947513630 Theta(tan=-3.26536, x=0.292821, y=-0.956167): -3.270852618484\n    test 1952 287 287.000000000000 Mu(tan=-3.27085, x=0.292372, y=-0.956305): -3.270852618484\n    test 1953 287 287.026837302239 Chi(tan=-3.26538, x=0.29282, y=-0.956168): -3.270852618484\n    test 1954 287 286.991051342914 Xi(tan=-3.27268, x=0.292222, y=-0.95635): -3.270852618484\n\n    test 1955 294 293.892961362638 Phi(tan=-2.25738, x=1.0, y=-2.25738): -2.246036773904\n    test 1956 294 293.964300405205 Beta(tan=-2.24981, x=1.0, y=-2.24981): -2.246036773904\n    test 1957 294 294.035800165821 Theta(tan=-2.24227, x=1.0, y=-2.24227): -2.246036773904\n    test 1958 294 294.000000000000 Mu(tan=-2.24604, x=0.406737, y=-0.913545): -2.246036773904\n    test 1959 294 294.035666490170 Chi(tan=-2.24228, x=1.0, y=-2.24228), iteration=3: -2.246036773904\n    test 1960 294 293.988104995444 Xi(tan=-2.24729, x=0.816745, y=-1.83546), iteration=3: -2.246036773904\n\n    test 1961 294 293.892961362638 Phi(tan=-2.25738, x=0.405029, y=-0.914304): -2.246036773904\n    test 1962 294 293.964300405205 Beta(tan=-2.24981, x=0.406167, y=-0.913799): -2.246036773904\n    test 1963 294 294.035800165821 Theta(tan=-2.24227, x=0.407307, y=-0.913291): -2.246036773904\n    test 1964 294 294.000000000000 Mu(tan=-2.24604, x=0.406737, y=-0.913545): -2.246036773904\n    test 1965 294 294.035666490170 Chi(tan=-2.24228, x=0.407305, y=-0.913292): -2.246036773904\n    test 1966 294 293.988104995444 Xi(tan=-2.24729, x=0.406547, y=-0.91363): -2.246036773904\n\n    test 1967 301 300.872750492296 Phi(tan=-1.67268, x=1.0, y=-1.67268): -1.664279482351\n    test 1968 301 300.957566748779 Beta(tan=-1.66707, x=1.0, y=-1.66707): -1.664279482351\n    test 1969 301 301.042517212699 Theta(tan=-1.66149, x=1.0, y=-1.66149): -1.664279482351\n    test 1970 301 301.000000000000 Mu(tan=-1.66428, x=0.515038, y=-0.857167): -1.664279482351\n    test 1971 301 301.042377369066 Chi(tan=-1.66149, x=1.0, y=-1.66149), iteration=3: -1.664279482351\n    test 1972 301 300.985863408886 Xi(tan=-1.66521, x=1.03428, y=-1.72229), iteration=2: -1.664279482351\n\n    test 1973 301 300.872750492296 Phi(tan=-1.67268, x=0.513133, y=-0.858309): -1.664279482351\n    test 1974 301 300.957566748779 Beta(tan=-1.66707, x=0.514403, y=-0.857549): -1.664279482351\n    test 1975 301 301.042517212699 Theta(tan=-1.66149, x=0.515674, y=-0.856785): -1.664279482351\n    test 1976 301 301.000000000000 Mu(tan=-1.66428, x=0.515038, y=-0.857167): -1.664279482351\n    test 1977 301 301.042377369066 Chi(tan=-1.66149, x=0.515672, y=-0.856786): -1.664279482351\n    test 1978 301 300.985863408886 Xi(tan=-1.66521, x=0.514827, y=-0.857294): -1.664279482351\n\n    test 1979 308 307.860068599875 Phi(tan=-1.28641, x=1.0, y=-1.28641): -1.279941632193\n    test 1980 308 307.953346674264 Beta(tan=-1.28209, x=1.0, y=-1.28209): -1.279941632193\n    test 1981 308 308.046701061231 Theta(tan=-1.27779, x=1.0, y=-1.27779): -1.279941632193\n    test 1982 308 308.000000000000 Mu(tan=-1.27994, x=0.615661, y=-0.788011): -1.279941632193\n    test 1983 308 308.046571160545 Chi(tan=-1.2778, x=1.0, y=-1.2778), iteration=3: -1.279941632193\n    test 1984 308 307.984460065878 Xi(tan=-1.28066, x=1.23642, y=-1.58343), iteration=3: -1.279941632193\n\n    test 1985 308 307.860068599875 Phi(tan=-1.28641, x=0.613735, y=-0.789512): -1.279941632193\n    test 1986 308 307.953346674264 Beta(tan=-1.28209, x=0.61502, y=-0.788512): -1.279941632193\n    test 1987 308 308.046701061231 Theta(tan=-1.27779, x=0.616304, y=-0.787509): -1.279941632193\n    test 1988 308 308.000000000000 Mu(tan=-1.27994, x=0.615661, y=-0.788011): -1.279941632193\n    test 1989 308 308.046571160545 Chi(tan=-1.2778, x=0.616302, y=-0.78751): -1.279941632193\n    test 1990 308 307.984460065878 Xi(tan=-1.28066, x=0.615448, y=-0.788178): -1.279941632193\n\n    test 1991 315 314.855682294112 Phi(tan=-1.00505, x=1.0, y=-1.00505): -1.000000000000\n    test 1992 315 314.951894037750 Beta(tan=-1.00168, x=1.0, y=-1.00168): -1.000000000000\n    test 1993 315 315.048106323978 Theta(tan=-0.998322, x=1.0, y=-0.998322): -1.000000000000\n    test 1994 315 315.000000000000 Mu(tan=-1, x=0.707107, y=-0.707107): -1.000000000000\n    test 1995 315 315.047998507775 Chi(tan=-0.998326, x=1.0, y=-0.998326), iteration=3: -1.000000000000\n    test 1996 315 314.983979022806 Xi(tan=-1.00056, x=1.42017, y=-1.42096), iteration=2: -1.000000000000\n\n    test 1997 315 314.855682294112 Phi(tan=-1.00505, x=0.705323, y=-0.708886): -1.000000000000\n    test 1998 315 314.951894037750 Beta(tan=-1.00168, x=0.706513, y=-0.7077): -1.000000000000\n    test 1999 315 315.048106323978 Theta(tan=-0.998322, x=0.7077, y=-0.706513): -1.000000000000\n    test 2000 315 315.000000000000 Mu(tan=-1, x=0.707107, y=-0.707107): -1.000000000000\n    test 2001 315 315.047998507775 Chi(tan=-0.998326, x=0.707699, y=-0.706514): -1.000000000000\n    test 2002 315 314.983979022806 Xi(tan=-1.00056, x=0.706909, y=-0.707304): -1.000000000000\n\n    test 2003 322 321.859869499768 Phi(tan=-0.785232, x=1.0, y=-0.785232): -0.781285626507\n    test 2004 322 321.953299269346 Beta(tan=-0.782599, x=1.0, y=-0.782599): -0.781285626507\n    test 2005 322 322.046653656044 Theta(tan=-0.779975, x=1.0, y=-0.779975): -0.781285626507\n    test 2006 322 322.000000000000 Mu(tan=-0.781286, x=0.788011, y=-0.615661): -0.781285626507\n    test 2007 322 322.046574337734 Chi(tan=-0.779977, x=1.0, y=-0.779977), iteration=2: -0.781285626507\n    test 2008 322 321.984449756665 Xi(tan=-0.781723, x=1.58276, y=-1.23728), iteration=3: -0.781285626507\n\n    test 2009 322 321.859869499768 Phi(tan=-0.785232, x=0.786503, y=-0.617587): -0.781285626507\n    test 2010 322 321.953299269346 Beta(tan=-0.782599, x=0.787509, y=-0.616304): -0.781285626507\n    test 2011 322 322.046653656044 Theta(tan=-0.779975, x=0.788512, y=-0.61502): -0.781285626507\n    test 2012 322 322.000000000000 Mu(tan=-0.781286, x=0.788011, y=-0.615661): -0.781285626507\n    test 2013 322 322.046574337734 Chi(tan=-0.779977, x=0.788511, y=-0.615021): -0.781285626507\n    test 2014 322 321.984449756665 Xi(tan=-0.781723, x=0.787844, y=-0.615875): -0.781285626507\n\n    test 2015 329 328.872398901328 Phi(tan=-0.603896, x=1.0, y=-0.603896): -0.600860619028\n    test 2016 329 328.957483036491 Beta(tan=-0.601871, x=1.0, y=-0.601871): -0.600860619028\n    test 2017 329 329.042433500019 Theta(tan=-0.599853, x=1.0, y=-0.599853): -0.600860619028\n    test 2018 329 329.000000000000 Mu(tan=-0.600861, x=0.857167, y=-0.515038): -0.600860619028\n    test 2019 329 329.042382979662 Chi(tan=-0.599854, x=1.0, y=-0.599854), iteration=3: -0.600860619028\n    test 2020 329 328.985845203875 Xi(tan=-0.601197, x=1.72178, y=-1.03513), iteration=2: -0.600860619028\n\n    test 2021 329 328.872398901328 Phi(tan=-0.603896, x=0.856018, y=-0.516946): -0.600860619028\n    test 2022 329 328.957483036491 Beta(tan=-0.601871, x=0.856785, y=-0.515674): -0.600860619028\n    test 2023 329 329.042433500019 Theta(tan=-0.599853, x=0.857549, y=-0.514403): -0.600860619028\n    test 2024 329 329.000000000000 Mu(tan=-0.600861, x=0.857167, y=-0.515038): -0.600860619028\n    test 2025 329 329.042382979662 Chi(tan=-0.599854, x=0.857548, y=-0.514404): -0.600860619028\n    test 2026 329 328.985845203875 Xi(tan=-0.601197, x=0.85704, y=-0.51525): -0.600860619028\n\n    test 2027 336 335.892539588775 Phi(tan=-0.447478, x=1.0, y=-0.447478): -0.445228685309\n    test 2028 336 335.964199982805 Beta(tan=-0.445978, x=1.0, y=-0.445978): -0.445228685309\n    test 2029 336 336.035699743087 Theta(tan=-0.444482, x=1.0, y=-0.444482): -0.445228685309\n    test 2030 336 336.000000000000 Mu(tan=-0.445229, x=0.913545, y=-0.406737): -0.445228685309\n    test 2031 336 336.035673220720 Chi(tan=-0.444483, x=1.0, y=-0.444483), iteration=2: -0.445228685309\n    test 2032 336 335.988083156490 Xi(tan=-0.445478, x=1.83512, y=-0.817507), iteration=3: -0.445228685309\n\n    test 2033 336 335.892539588775 Phi(tan=-0.447478, x=0.912781, y=-0.408449): -0.445228685309\n    test 2034 336 335.964199982805 Beta(tan=-0.445978, x=0.913291, y=-0.407307): -0.445228685309\n    test 2035 336 336.035699743087 Theta(tan=-0.444482, x=0.913799, y=-0.406167): -0.445228685309\n    test 2036 336 336.000000000000 Mu(tan=-0.445229, x=0.913545, y=-0.406737): -0.445228685309\n    test 2037 336 336.035673220720 Chi(tan=-0.444483, x=0.913799, y=-0.406168): -0.445228685309\n    test 2038 336 335.988083156490 Xi(tan=-0.445478, x=0.913461, y=-0.406927): -0.445228685309\n\n    test 2039 343 342.919101298136 Phi(tan=-0.307275, x=1.0, y=-0.307275): -0.305730681459\n    test 2040 343 342.973052549710 Beta(tan=-0.306245, x=1.0, y=-0.306245): -0.305730681459\n    test 2041 343 343.026853890266 Theta(tan=-0.305218, x=1.0, y=-0.305218): -0.305730681459\n    test 2042 343 343.000000000000 Mu(tan=-0.305731, x=0.956305, y=-0.292372): -0.305730681459\n    test 2043 343 343.026843577092 Chi(tan=-0.305218, x=1.0, y=-0.305218), iteration=3: -0.305730681459\n    test 2044 343 342.991030982615 Xi(tan=-0.305902, x=1.92111, y=-0.58767), iteration=3: -0.305730681459\n\n    test 2045 343 342.919101298136 Phi(tan=-0.307275, x=0.955891, y=-0.293722): -0.305730681459\n    test 2046 343 342.973052549710 Beta(tan=-0.306245, x=0.956167, y=-0.292821): -0.305730681459\n    test 2047 343 343.026853890266 Theta(tan=-0.305218, x=0.956442, y=-0.291923): -0.305730681459\n    test 2048 343 343.000000000000 Mu(tan=-0.305731, x=0.956305, y=-0.292372): -0.305730681459\n    test 2049 343 343.026843577092 Chi(tan=-0.305218, x=0.956442, y=-0.291924): -0.305730681459\n    test 2050 343 342.991030982615 Xi(tan=-0.305902, x=0.956259, y=-0.292521): -0.305730681459\n\n    test 2051 350 349.950503618765 Phi(tan=-0.177218, x=1.0, y=-0.177218): -0.176326980708\n    test 2052 350 349.983514239795 Beta(tan=-0.176624, x=1.0, y=-0.176624): -0.176326980708\n    test 2053 350 350.016420868461 Theta(tan=-0.176031, x=1.0, y=-0.176031): -0.176326980708\n    test 2054 350 350.000000000000 Mu(tan=-0.176327, x=0.984808, y=-0.173648): -0.176326980708\n    test 2055 350 350.016418643178 Chi(tan=-0.176032, x=1.0, y=-0.176032), iteration=3: -0.176326980708\n    test 2056 350 349.994513429399 Xi(tan=-0.176426, x=1.97843, y=-0.349045), iteration=3: -0.176326980708\n\n    test 2057 350 349.950503618765 Phi(tan=-0.177218, x=0.984657, y=-0.174499): -0.176326980708\n    test 2058 350 349.983514239795 Beta(tan=-0.176624, x=0.984758, y=-0.173932): -0.176326980708\n    test 2059 350 350.016420868461 Theta(tan=-0.176031, x=0.984857, y=-0.173366): -0.176326980708\n    test 2060 350 350.000000000000 Mu(tan=-0.176327, x=0.984808, y=-0.173648): -0.176326980708\n    test 2061 350 350.016418643178 Chi(tan=-0.176032, x=0.984857, y=-0.173366): -0.176326980708\n    test 2062 350 349.994513429399 Xi(tan=-0.176426, x=0.984791, y=-0.173742): -0.176326980708\n\n    test 2063 357 356.984870427697 Phi(tan=-0.0526726, x=1.0, y=-0.0526726): -0.052407779283\n    test 2064 357 356.994961026729 Beta(tan=-0.052496, x=1.0, y=-0.052496): -0.052407779283\n    test 2065 357 357.005017979541 Theta(tan=-0.05232, x=1.0, y=-0.05232): -0.052407779283\n    test 2066 357 357.000000000000 Mu(tan=-0.0524078, x=0.99863, y=-0.052336): -0.052407779283\n    test 2067 357 357.005017917762 Chi(tan=-0.05232, x=1.0, y=-0.05232), iteration=3: -0.052407779283\n    test 2068 357 356.998323063562 Xi(tan=-0.0524371, x=2.00622, y=-0.105201), iteration=3: -0.052407779283\n\n    test 2069 357 356.984870427697 Phi(tan=-0.0526726, x=0.998616, y=-0.0525997): -0.052407779283\n    test 2070 357 356.994961026729 Beta(tan=-0.052496, x=0.998625, y=-0.0524238): -0.052407779283\n    test 2071 357 357.005017979541 Theta(tan=-0.05232, x=0.998634, y=-0.0522485): -0.052407779283\n    test 2072 357 357.000000000000 Mu(tan=-0.0524078, x=0.99863, y=-0.052336): -0.052407779283\n    test 2073 357 357.005017917762 Chi(tan=-0.05232, x=0.998634, y=-0.0522485): -0.052407779283\n    test 2074 357 356.998323063562 Xi(tan=-0.0524371, x=0.998628, y=-0.0523652): -0.052407779283\n\n    test 2075  0 0.000000000000 Phi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 2076  0 0.000000000000 Beta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 2077  0 0.000000000000 Theta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 2078  0 0.000000000000 Mu(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 2079  0 0.000000000000 Chi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 2080  0 0.000000000000 Xi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n\n    test 2081  0 0.000000000000 Phi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 2082  0 0.000000000000 Beta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 2083  0 0.000000000000 Theta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 2084  0 0.000000000000 Mu(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 2085  0 0.000000000000 Chi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 2086  0 0.000000000000 Xi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n\n    test 2087  7 7.000000000000 Phi(tan=0.122785, x=0.992546, y=0.121869): 0.122784560903\n    test 2088  7 6.976762016136 Beta(tan=0.122373, x=0.992546, y=0.121461): 0.122784560903\n    test 2089  7 6.953599649493 Theta(tan=0.121963, x=0.992546, y=0.121054): 0.122784560903\n    test 2090  7 6.965157241116 Mu(tan=0.122167, x=0.99262, y=0.121266), iteration=3: 0.122784560903\n    test 2091  7 6.953600413381 Chi(tan=0.121963, x=1.0, y=0.121963), iteration=2: 0.122784560903\n    test 2092  7 6.969019299974 Xi(tan=0.122236, x=1.99414, y=0.243755), iteration=3: 0.122784560903\n\n    test 2093  7 7.000000000000 Phi(tan=0.122785, x=0.992546, y=0.121869): 0.122784560903\n    test 2094  7 6.976762016136 Beta(tan=0.122373, x=0.992595, y=0.121467): 0.122784560903\n    test 2095  7 6.953599649493 Theta(tan=0.121963, x=0.992645, y=0.121066): 0.122784560903\n    test 2096  7 6.965157241116 Mu(tan=0.122167, x=0.99262, y=0.121266): 0.122784560903\n    test 2097  7 6.953600413381 Chi(tan=0.121963, x=0.992645, y=0.121066): 0.122784560903\n    test 2098  7 6.969019299974 Xi(tan=0.122236, x=0.992612, y=0.121333): 0.122784560903\n\n    test 2099 14 14.000000000000 Phi(tan=0.249328, x=0.970296, y=0.241922): 0.249328002843\n    test 2100 14 13.954897969322 Beta(tan=0.248492, x=0.970296, y=0.241111): 0.249328002843\n    test 2101 14 13.909929594324 Theta(tan=0.247659, x=0.970296, y=0.240302): 0.249328002843\n    test 2102 14 13.932372077582 Mu(tan=0.248075, x=0.970581, y=0.240776), iteration=3: 0.249328002843\n    test 2103 14 13.909935440611 Chi(tan=0.247659, x=1.0, y=0.247659), iteration=3: 0.249328002843\n    test 2104 14 13.939869149632 Xi(tan=0.248214, x=1.94981, y=0.48397), iteration=3: 0.249328002843\n\n    test 2105 14 14.000000000000 Phi(tan=0.249328, x=0.970296, y=0.241922): 0.249328002843\n    test 2106 14 13.954897969322 Beta(tan=0.248492, x=0.970486, y=0.241158): 0.249328002843\n    test 2107 14 13.909929594324 Theta(tan=0.247659, x=0.970675, y=0.240396): 0.249328002843\n    test 2108 14 13.932372077582 Mu(tan=0.248075, x=0.970581, y=0.240776): 0.249328002843\n    test 2109 14 13.909935440611 Chi(tan=0.247659, x=0.970675, y=0.240396): 0.249328002843\n    test 2110 14 13.939869149632 Xi(tan=0.248214, x=0.970549, y=0.240903): 0.249328002843\n\n    test 2111 21 21.000000000000 Phi(tan=0.383864, x=0.93358, y=0.358368): 0.383864035035\n    test 2112 21 20.935701709947 Beta(tan=0.382577, x=0.93358, y=0.357166): 0.383864035035\n    test 2113 21 20.871564019024 Theta(tan=0.381294, x=0.93358, y=0.355969): 0.383864035035\n    test 2114 21 20.903582743391 Mu(tan=0.381935, x=0.934182, y=0.356796), iteration=3: 0.383864035035\n    test 2115 21 20.871582327745 Chi(tan=0.381295, x=1.0, y=0.381295), iteration=2: 0.383864035035\n    test 2116 21 20.914273669704 Xi(tan=0.382148, x=1.87662, y=0.717147), iteration=3: 0.383864035035\n\n    test 2117 21 21.000000000000 Phi(tan=0.383864, x=0.93358, y=0.358368): 0.383864035035\n    test 2118 21 20.935701709947 Beta(tan=0.382577, x=0.933982, y=0.35732): 0.383864035035\n    test 2119 21 20.871564019024 Theta(tan=0.381294, x=0.934381, y=0.356274): 0.383864035035\n    test 2120 21 20.903582743391 Mu(tan=0.381935, x=0.934182, y=0.356796): 0.383864035035\n    test 2121 21 20.871582327745 Chi(tan=0.381295, x=0.934381, y=0.356275): 0.383864035035\n    test 2122 21 20.914273669703 Xi(tan=0.382148, x=0.934116, y=0.356971): 0.383864035035\n\n    test 2123 28 28.000000000000 Phi(tan=0.531709, x=0.882948, y=0.469472): 0.531709431661\n    test 2124 28 27.920311317014 Beta(tan=0.529927, x=0.882948, y=0.467898): 0.531709431661\n    test 2125 28 27.840772765521 Theta(tan=0.52815, x=0.882948, y=0.466329): 0.531709431661\n    test 2126 28 27.880495175823 Mu(tan=0.529037, x=0.883925, y=0.467629), iteration=3: 0.531709431661\n    test 2127 28 27.840811762412 Chi(tan=0.528151, x=1.0, y=0.528151), iteration=2: 0.531709431661\n    test 2128 28 27.893749908688 Xi(tan=0.529333, x=1.77557, y=0.939868), iteration=2: 0.531709431661\n\n    test 2129 28 28.000000000000 Phi(tan=0.531709, x=0.882948, y=0.469472): 0.531709431661\n    test 2130 28 27.920311317014 Beta(tan=0.529927, x=0.8836, y=0.468243): 0.531709431661\n    test 2131 28 27.840772765521 Theta(tan=0.52815, x=0.884249, y=0.467016): 0.531709431661\n    test 2132 28 27.880495175823 Mu(tan=0.529037, x=0.883925, y=0.467629): 0.531709431661\n    test 2133 28 27.840811762412 Chi(tan=0.528151, x=0.884249, y=0.467017): 0.531709431661\n    test 2134 28 27.893749908688 Xi(tan=0.529333, x=0.883817, y=0.467833): 0.531709431661\n\n    test 2135 35 35.000000000000 Phi(tan=0.700208, x=0.819152, y=0.573576): 0.700207538210\n    test 2136 35 34.909642037079 Beta(tan=0.69786, x=0.819152, y=0.571653): 0.700207538210\n    test 2137 35 34.819388702350 Theta(tan=0.69552, x=0.819152, y=0.569737): 0.700207538210\n    test 2138 35 34.864482701692 Mu(tan=0.696688, x=0.820506, y=0.571637), iteration=3: 0.700207538210\n    test 2139 35 34.819454815840 Chi(tan=0.695522, x=1.0, y=0.695522), iteration=3: 0.700207538210\n    test 2140 35 34.879518549737 Xi(tan=0.697078, x=1.64808, y=1.14884), iteration=3: 0.700207538210\n\n    test 2141 35 35.000000000000 Phi(tan=0.700208, x=0.819152, y=0.573576): 0.700207538210\n    test 2142 35 34.909642037079 Beta(tan=0.69786, x=0.820056, y=0.572284): 0.700207538210\n    test 2143 35 34.819388702350 Theta(tan=0.69552, x=0.820956, y=0.570991): 0.700207538210\n    test 2144 35 34.864482701692 Mu(tan=0.696688, x=0.820506, y=0.571637): 0.700207538210\n    test 2145 35 34.819454815840 Chi(tan=0.695522, x=0.820955, y=0.570992): 0.700207538210\n    test 2146 35 34.879518549737 Xi(tan=0.697078, x=0.820356, y=0.571853): 0.700207538210\n\n    test 2147 42 42.000000000000 Phi(tan=0.900404, x=0.743145, y=0.669131): 0.900404044298\n    test 2148 42 41.904331700939 Beta(tan=0.897385, x=0.743145, y=0.666887): 0.900404044298\n    test 2149 42 41.808698047037 Theta(tan=0.894376, x=0.743145, y=0.664651): 0.900404044298\n    test 2150 42 41.856504060443 Mu(tan=0.895879, x=0.744818, y=0.667267), iteration=2: 0.900404044298\n    test 2151 42 41.808793486106 Chi(tan=0.894379, x=1.0, y=0.894379), iteration=3: 0.900404044298\n    test 2152 42 41.872431075863 Xi(tan=0.896381, x=1.49595, y=1.34094), iteration=3: 0.900404044298\n\n    test 2153 42 42.000000000000 Phi(tan=0.900404, x=0.743145, y=0.669131): 0.900404044298\n    test 2154 42 41.904331700939 Beta(tan=0.897385, x=0.744261, y=0.667889): 0.900404044298\n    test 2155 42 41.808698047037 Theta(tan=0.894376, x=0.745375, y=0.666646): 0.900404044298\n    test 2156 42 41.856504060443 Mu(tan=0.895879, x=0.744818, y=0.667267): 0.900404044298\n    test 2157 42 41.808793486106 Chi(tan=0.894379, x=0.745374, y=0.666647): 0.900404044298\n    test 2158 42 41.872431075863 Xi(tan=0.896381, x=0.744633, y=0.667474): 0.900404044298\n\n    test 2159 49 49.000000000000 Phi(tan=1.15037, x=0.656059, y=0.75471): 1.150368407221\n    test 2160 49 48.904701906378 Beta(tan=1.14651, x=0.656059, y=0.752179): 1.150368407221\n    test 2161 49 48.809360314692 Theta(tan=1.14267, x=0.656059, y=0.749657): 1.150368407221\n    test 2162 49 48.857044717775 Mu(tan=1.14459, x=0.65794, y=0.75307), iteration=3: 1.150368407221\n    test 2163 49 48.809481485365 Chi(tan=1.14267, x=1.0, y=1.14267), iteration=2: 1.150368407221\n    test 2164 49 48.872917788725 Xi(tan=1.14523, x=1.32137, y=1.51327), iteration=2: 1.150368407221\n\n    test 2165 49 49.000000000000 Phi(tan=1.15037, x=0.656059, y=0.75471): 1.150368407221\n    test 2166 49 48.904701906378 Beta(tan=1.14651, x=0.657313, y=0.753617): 1.150368407221\n    test 2167 49 48.809360314692 Theta(tan=1.14267, x=0.658567, y=0.752523): 1.150368407221\n    test 2168 49 48.857044717775 Mu(tan=1.14459, x=0.65794, y=0.75307): 1.150368407221\n    test 2169 49 48.809481485365 Chi(tan=1.14267, x=0.658565, y=0.752524): 1.150368407221\n    test 2170 49 48.872917788725 Xi(tan=1.14523, x=0.657731, y=0.753253): 1.150368407221\n\n    test 2171 56 56.000000000000 Phi(tan=1.48256, x=0.559193, y=0.829038): 1.482560968513\n    test 2172 56 55.910737485374 Beta(tan=1.47759, x=0.559193, y=0.826258): 1.482560968513\n    test 2173 56 55.821363467296 Theta(tan=1.47264, x=0.559193, y=0.823488): 1.482560968513\n    test 2174 56 55.866085351958 Mu(tan=1.47511, x=0.561129, y=0.827728), iteration=3: 1.482560968513\n    test 2175 56 55.821500669702 Chi(tan=1.47264, x=1.0, y=1.47264), iteration=3: 1.482560968513\n    test 2176 56 55.880960089169 Xi(tan=1.47594, x=1.12687, y=1.66318), iteration=3: 1.482560968513\n\n    test 2177 56 56.000000000000 Phi(tan=1.48256, x=0.559193, y=0.829038): 1.482560968513\n    test 2178 56 55.910737485374 Beta(tan=1.47759, x=0.560484, y=0.828165): 1.482560968513\n    test 2179 56 55.821363467296 Theta(tan=1.47264, x=0.561775, y=0.82729): 1.482560968513\n    test 2180 56 55.866085351958 Mu(tan=1.47511, x=0.561129, y=0.827728): 1.482560968513\n    test 2181 56 55.821500669702 Chi(tan=1.47264, x=0.561773, y=0.827291): 1.482560968513\n    test 2182 56 55.880960089169 Xi(tan=1.47594, x=0.560914, y=0.827874): 1.482560968513\n\n    test 2183 63 63.000000000000 Phi(tan=1.96261, x=0.45399, y=0.891007): 1.962610505505\n    test 2184 63 62.922085806991 Beta(tan=1.95603, x=0.45399, y=0.888019): 1.962610505505\n    test 2185 63 62.844018233783 Theta(tan=1.94947, x=0.45399, y=0.885042): 1.962610505505\n    test 2186 63 62.883100004844 Mu(tan=1.95275, x=0.455807, y=0.890078), iteration=3: 1.962610505505\n    test 2187 63 62.844156794245 Chi(tan=1.94948, x=1.0, y=1.94948), iteration=3: 1.962610505505\n    test 2188 63 62.896089166605 Xi(tan=1.95384, x=0.915303, y=1.78836), iteration=3: 1.962610505505\n\n    test 2189 63 63.000000000000 Phi(tan=1.96261, x=0.45399, y=0.891007): 1.962610505505\n    test 2190 63 62.922085806991 Beta(tan=1.95603, x=0.455202, y=0.890388): 1.962610505505\n    test 2191 63 62.844018233783 Theta(tan=1.94947, x=0.456414, y=0.889767): 1.962610505505\n    test 2192 63 62.883100004844 Mu(tan=1.95275, x=0.455807, y=0.890078): 1.962610505505\n    test 2193 63 62.844156794245 Chi(tan=1.94948, x=0.456412, y=0.889768): 1.962610505505\n    test 2194 63 62.896089166605 Xi(tan=1.95384, x=0.455606, y=0.890182): 1.962610505505\n\n    test 2195 70 70.000000000000 Phi(tan=2.74748, x=0.34202, y=0.939693): 2.747477419455\n    test 2196 70 69.938076331685 Beta(tan=2.73827, x=0.34202, y=0.936542): 2.747477419455\n    test 2197 70 69.875993436424 Theta(tan=2.72908, x=0.34202, y=0.933402): 2.747477419455\n    test 2198 70 69.907084709374 Mu(tan=2.73368, x=0.343544, y=0.939137), iteration=2: 2.747477419455\n    test 2199 70 69.876116092580 Chi(tan=2.7291, x=1.0, y=2.7291), iteration=3: 2.747477419455\n    test 2200 70 69.917411740864 Xi(tan=2.7352, x=0.689832, y=1.88683), iteration=3: 2.747477419455\n\n    test 2201 70 70.000000000000 Phi(tan=2.74748, x=0.34202, y=0.939693): 2.747477419455\n    test 2202 70 69.938076331685 Beta(tan=2.73827, x=0.343036, y=0.939322): 2.747477419455\n    test 2203 70 69.875993436424 Theta(tan=2.72908, x=0.344053, y=0.93895): 2.747477419455\n    test 2204 70 69.907084709374 Mu(tan=2.73368, x=0.343544, y=0.939137): 2.747477419455\n    test 2205 70 69.876116092580 Chi(tan=2.7291, x=0.344051, y=0.938951): 2.747477419455\n    test 2206 70 69.917411740864 Xi(tan=2.7352, x=0.343374, y=0.939199): 2.747477419455\n\n    test 2207 77 77.000000000000 Phi(tan=4.33148, x=0.224951, y=0.97437): 4.331475874284\n    test 2208 77 76.957759584883 Beta(tan=4.31695, x=0.224951, y=0.971103): 4.331475874284\n    test 2209 77 76.915391564534 Theta(tan=4.30248, x=0.224951, y=0.967847): 4.331475874284\n    test 2210 77 76.936615512426 Mu(tan=4.30972, x=0.226029, y=0.974121), iteration=3: 4.331475874284\n    test 2211 77 76.915481614667 Chi(tan=4.30251, x=1.0, y=4.30251), iteration=3: 4.331475874284\n    test 2212 77 76.943661825901 Xi(tan=4.31213, x=0.453847, y=1.95704), iteration=3: 4.331475874284\n\n    test 2213 77 77.000000000000 Phi(tan=4.33148, x=0.224951, y=0.97437): 4.331475874284\n    test 2214 77 76.957759584883 Beta(tan=4.31695, x=0.225669, y=0.974204): 4.331475874284\n    test 2215 77 76.915391564534 Theta(tan=4.30248, x=0.22639, y=0.974037): 4.331475874284\n    test 2216 77 76.936615512426 Mu(tan=4.30972, x=0.226029, y=0.974121): 4.331475874284\n    test 2217 77 76.915481614667 Chi(tan=4.30251, x=0.226388, y=0.974037): 4.331475874284\n    test 2218 77 76.943661825901 Xi(tan=4.31213, x=0.225909, y=0.974148): 4.331475874284\n\n    test 2219 84 84.000000000000 Phi(tan=9.51436, x=0.104528, y=0.994522): 9.514364454223\n    test 2220 84 83.979963440552 Beta(tan=9.48246, x=0.104528, y=0.991187): 9.514364454223\n    test 2221 84 83.959860961536 Theta(tan=9.45067, x=0.104528, y=0.987864): 9.514364454223\n    test 2222 84 83.969932834829 Mu(tan=9.46657, x=0.10505, y=0.994467), iteration=3: 9.514364454223\n    test 2223 84 83.959905488972 Chi(tan=9.45074, x=1.0, y=9.45074), iteration=3: 9.514364454223\n    test 2224 84 83.973275752467 Xi(tan=9.47186, x=0.210927, y=1.99788), iteration=3: 9.514364454223\n\n    test 2225 84 84.000000000000 Phi(tan=9.51436, x=0.104528, y=0.994522): 9.514364454223\n    test 2226 84 83.979963440552 Beta(tan=9.48246, x=0.104876, y=0.994485): 9.514364454223\n    test 2227 84 83.959860961536 Theta(tan=9.45067, x=0.105225, y=0.994448): 9.514364454223\n    test 2228 84 83.969932834829 Mu(tan=9.46657, x=0.10505, y=0.994467): 9.514364454223\n    test 2229 84 83.959905488972 Chi(tan=9.45074, x=0.105224, y=0.994449): 9.514364454223\n    test 2230 84 83.973275752467 Xi(tan=9.47186, x=0.104992, y=0.994473): 9.514364454223\n\n    test 2231 91 91.000000000000 Phi(tan=-57.29, x=-0.0174524, y=0.999848): -57.289961630759\n    test 2232 91 91.003363403239 Beta(tan=-57.0979, x=-0.0174524, y=0.996495): -57.289961630759\n    test 2233 91 91.006738114317 Theta(tan=-56.9064, x=-0.0174524, y=0.993154): -57.289961630759\n    test 2234 91 91.005047219150 Mu(tan=-57.0022, x=-0.0175405, y=0.999846), iteration=2: -57.289961630759\n    test 2235 91 91.006730558280 Chi(tan=-56.9069, x=-1, y=56.9069), iteration=3: -57.289961630759\n    test 2236 91 91.004486042138 Xi(tan=-57.0341, x=-0.0352188, y=2.00867), iteration=3: -57.289961630759\n\n    test 2237 91 91.000000000000 Phi(tan=-57.29, x=-0.0174524, y=0.999848): -57.289961630759\n    test 2238 91 91.003363403239 Beta(tan=-57.0979, x=-0.0175111, y=0.999847): -57.289961630760  FAILED, KNOWN (6.07726e-15), expected -57.289961630759\n    test 2239 91 91.006738114317 Theta(tan=-56.9064, x=-0.01757, y=0.999846): -57.289961630760  FAILED, KNOWN (2.48051e-15), expected -57.289961630759\n    test 2240 91 91.005047219150 Mu(tan=-57.0022, x=-0.0175405, y=0.999846): -57.289961630760  FAILED, KNOWN (8.6818e-15), expected -57.289961630759\n    test 2241 91 91.006730558280 Chi(tan=-56.9069, x=-0.0175699, y=0.999846): -57.289961630759\n    test 2242 91 91.004486042138 Xi(tan=-57.0341, x=-0.0175307, y=0.999846): -57.289961630759\n\n    test 2243 98 98.000000000000 Phi(tan=-7.11537, x=-0.139173, y=0.990268): -7.115369722384\n    test 2244 98 98.026562562307 Beta(tan=-7.09151, x=-0.139173, y=0.986948): -7.115369722384\n    test 2245 98 98.053210993331 Theta(tan=-7.06774, x=-0.139173, y=0.983639): -7.115369722384\n    test 2246 98 98.039859900320 Mu(tan=-7.07963, x=-0.139862, y=0.990171), iteration=3: -7.115369722384\n    test 2247 98 98.053152474664 Chi(tan=-7.06779, x=-1, y=7.06779), iteration=3: -7.115369722384\n    test 2248 98 98.035428327772 Xi(tan=-7.08359, x=-0.280826, y=1.98926), iteration=2: -7.115369722384\n\n    test 2249 98 98.000000000000 Phi(tan=-7.11537, x=-0.139173, y=0.990268): -7.115369722384\n    test 2250 98 98.026562562307 Beta(tan=-7.09151, x=-0.139632, y=0.990203): -7.115369722384\n    test 2251 98 98.053210993331 Theta(tan=-7.06774, x=-0.140093, y=0.990138): -7.115369722384\n    test 2252 98 98.039859900320 Mu(tan=-7.07963, x=-0.139862, y=0.990171): -7.115369722384\n    test 2253 98 98.053152474664 Chi(tan=-7.06779, x=-0.140092, y=0.990139): -7.115369722384\n    test 2254 98 98.035428327772 Xi(tan=-7.08359, x=-0.139785, y=0.990182): -7.115369722384\n\n    test 2255 105 105.000000000000 Phi(tan=-3.73205, x=-0.258819, y=0.965926): -3.732050807569\n    test 2256 105 105.048176169243 Beta(tan=-3.71954, x=-0.258819, y=0.962687): -3.732050807569\n    test 2257 105 105.096492525996 Theta(tan=-3.70707, x=-0.258819, y=0.95946): -3.732050807569\n    test 2258 105 105.072290473972 Mu(tan=-3.7133, x=-0.260038, y=0.965599), iteration=3: -3.732050807569\n    test 2259 105 105.096391619832 Chi(tan=-3.70709, x=-1, y=3.70709), iteration=2: -3.732050807569\n    test 2260 105 105.064254515857 Xi(tan=-3.71538, x=-0.522138, y=1.93994), iteration=2: -3.732050807569\n\n    test 2261 105 105.000000000000 Phi(tan=-3.73205, x=-0.258819, y=0.965926): -3.732050807569\n    test 2262 105 105.048176169243 Beta(tan=-3.71954, x=-0.259631, y=0.965708): -3.732050807569\n    test 2263 105 105.096492525996 Theta(tan=-3.70707, x=-0.260445, y=0.965489): -3.732050807569\n    test 2264 105 105.072290473972 Mu(tan=-3.7133, x=-0.260038, y=0.965599): -3.732050807569\n    test 2265 105 105.096391619832 Chi(tan=-3.70709, x=-0.260444, y=0.965489): -3.732050807569\n    test 2266 105 105.064254515857 Xi(tan=-3.71538, x=-0.259902, y=0.965635): -3.732050807569\n\n    test 2267 112 112.000000000000 Phi(tan=-2.47509, x=-0.374607, y=0.927184): -2.475086853416\n    test 2268 112 112.066915437341 Beta(tan=-2.46679, x=-0.374607, y=0.924075): -2.475086853416\n    test 2269 112 112.133992362411 Theta(tan=-2.45852, x=-0.374607, y=0.920977): -2.475086853416\n    test 2270 112 112.100403370338 Mu(tan=-2.46265, x=-0.376231, y=0.926526), iteration=3: -2.475086853416\n    test 2271 112 112.133863370700 Chi(tan=-2.45853, x=-1, y=2.45853), iteration=3: -2.475086853416\n    test 2272 112 112.089244898668 Xi(tan=-2.46403, x=-0.755478, y=1.86152), iteration=3: -2.475086853416\n\n    test 2273 112 112.000000000000 Phi(tan=-2.47509, x=-0.374607, y=0.927184): -2.475086853416\n    test 2274 112 112.066915437341 Beta(tan=-2.46679, x=-0.375689, y=0.926746): -2.475086853416\n    test 2275 112 112.133992362411 Theta(tan=-2.45852, x=-0.376774, y=0.926305): -2.475086853416\n    test 2276 112 112.100403370338 Mu(tan=-2.46265, x=-0.376231, y=0.926526): -2.475086853416\n    test 2277 112 112.133863370700 Chi(tan=-2.45853, x=-0.376772, y=0.926306): -2.475086853416\n    test 2278 112 112.089244898668 Xi(tan=-2.46403, x=-0.37605, y=0.926599): -2.475086853416\n\n    test 2279 119 119.000000000000 Phi(tan=-1.80405, x=-0.48481, y=0.87462): -1.804047755271\n    test 2280 119 119.081665222463 Beta(tan=-1.798, x=-0.48481, y=0.871687): -1.804047755271\n    test 2281 119 119.163475249163 Theta(tan=-1.79197, x=-0.48481, y=0.868765): -1.804047755271\n    test 2282 119 119.122524937479 Mu(tan=-1.79498, x=-0.486679, y=0.873581), iteration=3: -1.804047755271\n    test 2283 119 119.163335373555 Chi(tan=-1.79198, x=-1, y=1.79198), iteration=3: -1.804047755271\n    test 2284 119 119.108912006611 Xi(tan=-1.79599, x=-0.977311, y=1.75524), iteration=3: -1.804047755271\n\n    test 2285 119 119.000000000000 Phi(tan=-1.80405, x=-0.48481, y=0.87462): -1.804047755271\n    test 2286 119 119.081665222463 Beta(tan=-1.798, x=-0.486056, y=0.873928): -1.804047755271\n    test 2287 119 119.163475249163 Theta(tan=-1.79197, x=-0.487303, y=0.873233): -1.804047755271\n    test 2288 119 119.122524937479 Mu(tan=-1.79498, x=-0.486679, y=0.873581): -1.804047755271\n    test 2289 119 119.163335373555 Chi(tan=-1.79198, x=-0.487301, y=0.873234): -1.804047755271\n    test 2290 119 119.108912006611 Xi(tan=-1.79599, x=-0.486471, y=0.873697): -1.804047755271\n\n    test 2291 126 126.000000000000 Phi(tan=-1.37638, x=-0.587785, y=0.809017): -1.376381920471\n    test 2292 126 126.091550707249 Beta(tan=-1.37177, x=-0.587785, y=0.806305): -1.376381920471\n    test 2293 126 126.183195540448 Theta(tan=-1.36717, x=-0.587785, y=0.803601): -1.376381920471\n    test 2294 126 126.137343684620 Mu(tan=-1.36947, x=-0.589723, y=0.807606), iteration=3: -1.376381920471\n    test 2295 126 126.183061603372 Chi(tan=-1.36717, x=-1, y=1.36717), iteration=3: -1.376381920471\n    test 2296 126 126.122089633630 Xi(tan=-1.37023, x=-1.18431, y=1.62278), iteration=2: -1.376381920471\n\n    test 2297 126 126.000000000000 Phi(tan=-1.37638, x=-0.587785, y=0.809017): -1.376381920471\n    test 2298 126 126.091550707249 Beta(tan=-1.37177, x=-0.589077, y=0.808077): -1.376381920471\n    test 2299 126 126.183195540448 Theta(tan=-1.36717, x=-0.590369, y=0.807133): -1.376381920471\n    test 2300 126 126.137343684620 Mu(tan=-1.36947, x=-0.589723, y=0.807606): -1.376381920471\n    test 2301 126 126.183061603372 Chi(tan=-1.36717, x=-0.590367, y=0.807135): -1.376381920471\n    test 2302 126 126.122089633630 Xi(tan=-1.37023, x=-0.589508, y=0.807763): -1.376381920471\n\n    test 2303 133 133.000000000000 Phi(tan=-1.07237, x=-0.681998, y=0.731354): -1.072368710025\n    test 2304 133 133.095989026852 Beta(tan=-1.06877, x=-0.681998, y=0.728902): -1.072368710025\n    test 2305 133 133.191999466035 Theta(tan=-1.06519, x=-0.681998, y=0.726458): -1.072368710025\n    test 2306 133 133.143987543114 Mu(tan=-1.06698, x=-0.683834, y=0.729637), iteration=2: -1.072368710025\n    test 2307 133 133.191884915480 Chi(tan=-1.06519, x=-1, y=1.06519), iteration=3: -1.072368710025\n    test 2308 133 133.128001595557 Xi(tan=-1.06758, x=-1.3734, y=1.46621), iteration=3: -1.072368710025\n\n    test 2309 133 133.000000000000 Phi(tan=-1.07237, x=-0.681998, y=0.731354): -1.072368710025\n    test 2310 133 133.095989026852 Beta(tan=-1.06877, x=-0.683223, y=0.73021): -1.072368710025\n    test 2311 133 133.191999466035 Theta(tan=-1.06519, x=-0.684445, y=0.729064): -1.072368710025\n    test 2312 133 133.143987543114 Mu(tan=-1.06698, x=-0.683834, y=0.729637): -1.072368710025\n    test 2313 133 133.191884915480 Chi(tan=-1.06519, x=-0.684444, y=0.729066): -1.072368710025\n    test 2314 133 133.128001595557 Xi(tan=-1.06758, x=-0.683631, y=0.729828): -1.072368710025\n\n    test 2315 140 140.000000000000 Phi(tan=-0.8391, x=-0.766044, y=0.642788): -0.839099631177\n    test 2316 140 140.094722853987 Beta(tan=-0.836286, x=-0.766044, y=0.640632): -0.839099631177\n    test 2317 140 140.189389448072 Theta(tan=-0.833482, x=-0.766044, y=0.638485): -0.839099631177\n    test 2318 140 140.142073716249 Mu(tan=-0.834883, x=-0.767636, y=0.640886), iteration=2: -0.839099631177\n    test 2319 140 140.189302292623 Chi(tan=-0.833485, x=-1, y=0.833485), iteration=2: -0.839099631177\n    test 2320 140 140.126306265466 Xi(tan=-0.83535, x=-1.54181, y=1.28795), iteration=2: -0.839099631177\n\n    test 2321 140 140.000000000000 Phi(tan=-0.8391, x=-0.766044, y=0.642788): -0.839099631177\n    test 2322 140 140.094722853987 Beta(tan=-0.836286, x=-0.767106, y=0.64152): -0.839099631177\n    test 2323 140 140.189389448072 Theta(tan=-0.833482, x=-0.768165, y=0.640252): -0.839099631177\n    test 2324 140 140.142073716249 Mu(tan=-0.834883, x=-0.767636, y=0.640886): -0.839099631177\n    test 2325 140 140.189302292623 Chi(tan=-0.833485, x=-0.768164, y=0.640253): -0.839099631177\n    test 2326 140 140.126306265466 Xi(tan=-0.83535, x=-0.76746, y=0.641097): -0.839099631177\n\n    test 2327 147 147.000000000000 Phi(tan=-0.649408, x=-0.838671, y=0.544639): -0.649407593198\n    test 2328 147 147.087834196097 Beta(tan=-0.64723, x=-0.838671, y=0.542813): -0.649407593198\n    test 2329 147 147.175547668144 Theta(tan=-0.64506, x=-0.838671, y=0.540993): -0.649407593198\n    test 2330 147 147.131728623858 Mu(tan=-0.646144, x=-0.839921, y=0.542709), iteration=2: -0.649407593198\n    test 2331 147 147.175489751194 Chi(tan=-0.645062, x=-1, y=0.645062), iteration=3: -0.649407593198\n    test 2332 147 147.117114615992 Xi(tan=-0.646505, x=-1.68711, y=1.09072), iteration=3: -0.649407593198\n\n    test 2333 147 147.000000000000 Phi(tan=-0.649408, x=-0.838671, y=0.544639): -0.649407593198\n    test 2334 147 147.087834196097 Beta(tan=-0.64723, x=-0.839505, y=0.543353): -0.649407593198\n    test 2335 147 147.175547668144 Theta(tan=-0.64506, x=-0.840335, y=0.542067): -0.649407593198\n    test 2336 147 147.131728623858 Mu(tan=-0.646144, x=-0.839921, y=0.542709): -0.649407593198\n    test 2337 147 147.175489751194 Chi(tan=-0.645062, x=-0.840335, y=0.542068): -0.649407593198\n    test 2338 147 147.117114615992 Xi(tan=-0.646505, x=-0.839782, y=0.542924): -0.649407593198\n\n    test 2339 154 154.000000000000 Phi(tan=-0.487733, x=-0.898794, y=0.438371): -0.487732588566\n    test 2340 154 154.075737936138 Beta(tan=-0.486097, x=-0.898794, y=0.436901): -0.487732588566\n    test 2341 154 154.151318905421 Theta(tan=-0.484468, x=-0.898794, y=0.435437): -0.487732588566\n    test 2342 154 154.113577416532 Mu(tan=-0.485281, x=-0.899661, y=0.436589), iteration=2: -0.487732588566\n    test 2343 154 154.151286603865 Chi(tan=-0.484468, x=-1, y=0.484468), iteration=2: -0.487732588566\n    test 2344 154 154.100981227925 Xi(tan=-0.485553, x=-1.80721, y=0.877495), iteration=3: -0.487732588566\n\n    test 2345 154 154.000000000000 Phi(tan=-0.487733, x=-0.898794, y=0.438371): -0.487732588566\n    test 2346 154 154.075737936138 Beta(tan=-0.486097, x=-0.899373, y=0.437183): -0.487732588566\n    test 2347 154 154.151318905421 Theta(tan=-0.484468, x=-0.899949, y=0.435996): -0.487732588566\n    test 2348 154 154.113577416532 Mu(tan=-0.485281, x=-0.899661, y=0.436589): -0.487732588566\n    test 2349 154 154.151286603865 Chi(tan=-0.484468, x=-0.899948, y=0.435996): -0.487732588566\n    test 2350 154 154.100981227925 Xi(tan=-0.485553, x=-0.899565, y=0.436786): -0.487732588566\n\n    test 2351 161 161.000000000000 Phi(tan=-0.344328, x=-0.945519, y=0.325568): -0.344327613290\n    test 2352 161 161.059155871563 Beta(tan=-0.343173, x=-0.945519, y=0.324477): -0.344327613290\n    test 2353 161 161.118155143282 Theta(tan=-0.342023, x=-0.945519, y=0.323389): -0.344327613290\n    test 2354 161 161.088704377377 Mu(tan=-0.342597, x=-0.946021, y=0.324104), iteration=2: -0.344327613290\n    test 2355 161 161.118141245926 Chi(tan=-0.342023, x=-1, y=0.342023), iteration=3: -0.344327613290\n    test 2356 161 161.078869359618 Xi(tan=-0.342789, x=-1.90043, y=0.651445), iteration=3: -0.344327613290\n\n    test 2357 161 161.000000000000 Phi(tan=-0.344328, x=-0.945519, y=0.325568): -0.344327613290\n    test 2358 161 161.059155871563 Beta(tan=-0.343173, x=-0.945854, y=0.324592): -0.344327613290\n    test 2359 161 161.118155143282 Theta(tan=-0.342023, x=-0.946188, y=0.323618): -0.344327613290\n    test 2360 161 161.088704377377 Mu(tan=-0.342597, x=-0.946021, y=0.324104): -0.344327613290\n    test 2361 161 161.118141245926 Chi(tan=-0.342023, x=-0.946188, y=0.323618): -0.344327613290\n    test 2362 161 161.078869359618 Xi(tan=-0.342789, x=-0.945966, y=0.324266): -0.344327613290\n\n    test 2363 168 168.000000000000 Phi(tan=-0.212557, x=-0.978148, y=0.207912): -0.212556561670\n    test 2364 168 168.039073098008 Beta(tan=-0.211844, x=-0.978148, y=0.207215): -0.212556561670\n    test 2365 168 168.078026427494 Theta(tan=-0.211134, x=-0.978148, y=0.20652): -0.212556561670\n    test 2366 168 168.058587132190 Mu(tan=-0.211488, x=-0.97836, y=0.206911), iteration=3: -0.212556561670\n    test 2367 168 168.078022687531 Chi(tan=-0.211134, x=-1, y=0.211134), iteration=3: -0.212556561670\n    test 2368 168 168.052092611435 Xi(tan=-0.211606, x=-1.96546, y=0.415904), iteration=3: -0.212556561670\n\n    test 2369 168 168.000000000000 Phi(tan=-0.212557, x=-0.978148, y=0.207912): -0.212556561670\n    test 2370 168 168.039073098008 Beta(tan=-0.211844, x=-0.978289, y=0.207245): -0.212556561670\n    test 2371 168 168.078026427494 Theta(tan=-0.211134, x=-0.97843, y=0.206579): -0.212556561670\n    test 2372 168 168.058587132190 Mu(tan=-0.211488, x=-0.97836, y=0.206911): -0.212556561670\n    test 2373 168 168.078022687531 Chi(tan=-0.211134, x=-0.97843, y=0.20658): -0.212556561670\n    test 2374 168 168.052092611435 Xi(tan=-0.211606, x=-0.978336, y=0.207022): -0.212556561670\n\n    test 2375 175 175.000000000000 Phi(tan=-0.0874887, x=-0.996195, y=0.0871557): -0.087488663526\n    test 2376 175 175.016679496811 Beta(tan=-0.0871953, x=-0.996195, y=0.0868635): -0.087488663526\n    test 2377 175 175.033303912991 Theta(tan=-0.086903, x=-0.996195, y=0.0865723): -0.087488663526\n    test 2378 175 175.025008889061 Mu(tan=-0.0870489, x=-0.996233, y=0.0867209), iteration=3: -0.087488663526\n    test 2379 175 175.033303632597 Chi(tan=-0.086903, x=-1, y=0.086903), iteration=2: -0.087488663526\n    test 2380 175 175.022236903877 Xi(tan=-0.0870976, x=-2.0014, y=0.174317), iteration=2: -0.087488663526\n\n    test 2381 175 175.000000000000 Phi(tan=-0.0874887, x=-0.996195, y=0.0871557): -0.087488663526\n    test 2382 175 175.016679496811 Beta(tan=-0.0871953, x=-0.99622, y=0.0868657): -0.087488663526\n    test 2383 175 175.033303912991 Theta(tan=-0.086903, x=-0.996245, y=0.0865767): -0.087488663526\n    test 2384 175 175.025008889061 Mu(tan=-0.0870489, x=-0.996233, y=0.0867209): -0.087488663526\n    test 2385 175 175.033303632597 Chi(tan=-0.086903, x=-0.996245, y=0.0865767): -0.087488663526\n    test 2386 175 175.022236903877 Xi(tan=-0.0870976, x=-0.996228, y=0.0867691): -0.087488663526\n\n    test 2387 182 182.000000000000 Phi(tan=0.0349208, x=-0.999391, y=-0.0348995): 0.034920769492\n    test 2388 182 181.993299797077 Beta(tan=0.0348037, x=-0.999391, y=-0.0347825): 0.034920769492\n    test 2389 182 181.986622004399 Theta(tan=0.034687, x=-0.999391, y=-0.0346659): 0.034920769492\n    test 2390 182 181.989953909276 Mu(tan=0.0347452, x=-0.999397, y=-0.0347243), iteration=3: 0.034920769492\n    test 2391 182 181.986622022458 Chi(tan=0.034687, x=-1, y=-0.034687), iteration=2: 0.034920769492\n    test 2392 182 181.991067395746 Xi(tan=0.0347647, x=-2.00777, y=-0.0697994), iteration=3: 0.034920769492\n\n    test 2393 182 182.000000000000 Phi(tan=0.0349208, x=-0.999391, y=-0.0348995): 0.034920769492\n    test 2394 182 181.993299797077 Beta(tan=0.0348037, x=-0.999395, y=-0.0347826): 0.034920769492\n    test 2395 182 181.986622004399 Theta(tan=0.034687, x=-0.999399, y=-0.0346661): 0.034920769492\n    test 2396 182 181.989953909276 Mu(tan=0.0347452, x=-0.999397, y=-0.0347243): 0.034920769492\n    test 2397 182 181.986622022458 Chi(tan=0.034687, x=-0.999399, y=-0.0346661): 0.034920769492\n    test 2398 182 181.991067395746 Xi(tan=0.0347647, x=-0.999396, y=-0.0347437): 0.034920769492\n\n    test 2399 189 189.000000000000 Phi(tan=0.158384, x=-0.987688, y=-0.156434): 0.158384440325\n    test 2400 189 188.970316191157 Beta(tan=0.157853, x=-0.987688, y=-0.15591): 0.158384440325\n    test 2401 189 188.940727074962 Theta(tan=0.157324, x=-0.987688, y=-0.155387): 0.158384440325\n    test 2402 189 188.955492089230 Mu(tan=0.157588, x=-0.98781, y=-0.155667), iteration=3: 0.158384440325\n    test 2403 189 188.940728682981 Chi(tan=0.157324, x=-1, y=-0.157324), iteration=3: 0.158384440325\n    test 2404 189 188.960425606105 Xi(tan=0.157676, x=-1.98446, y=-0.312903), iteration=2: 0.158384440325\n\n    test 2405 189 189.000000000000 Phi(tan=0.158384, x=-0.987688, y=-0.156434): 0.158384440325\n    test 2406 189 188.970316191157 Beta(tan=0.157853, x=-0.987769, y=-0.155923): 0.158384440325\n    test 2407 189 188.940727074962 Theta(tan=0.157324, x=-0.98785, y=-0.155413): 0.158384440325\n    test 2408 189 188.955492089230 Mu(tan=0.157588, x=-0.98781, y=-0.155667): 0.158384440325\n    test 2409 189 188.940728682981 Chi(tan=0.157324, x=-0.98785, y=-0.155413): 0.158384440325\n    test 2410 189 188.960425606105 Xi(tan=0.157676, x=-0.987796, y=-0.155752): 0.158384440325\n\n    test 2411 196 196.000000000000 Phi(tan=0.286745, x=-0.961262, y=-0.275637): 0.286745385759\n    test 2412 196 195.949087795468 Beta(tan=0.285784, x=-0.961262, y=-0.274713): 0.286745385759\n    test 2413 196 195.898320549032 Theta(tan=0.284826, x=-0.961262, y=-0.273792): 0.286745385759\n    test 2414 196 195.923658939114 Mu(tan=0.285304, x=-0.961628, y=-0.274356), iteration=3: 0.286745385759\n    test 2415 196 195.898329118388 Chi(tan=0.284826, x=-1, y=-0.284826), iteration=3: 0.286745385759\n    test 2416 196 195.932122390859 Xi(tan=0.285464, x=-1.93181, y=-0.551462), iteration=2: 0.286745385759\n\n    test 2417 196 196.000000000000 Phi(tan=0.286745, x=-0.961262, y=-0.275637): 0.286745385759\n    test 2418 196 195.949087795468 Beta(tan=0.285784, x=-0.961506, y=-0.274783): 0.286745385759\n    test 2419 196 195.898320549032 Theta(tan=0.284826, x=-0.961749, y=-0.273931): 0.286745385759\n    test 2420 196 195.923658939114 Mu(tan=0.285304, x=-0.961628, y=-0.274356): 0.286745385759\n    test 2421 196 195.898329118388 Chi(tan=0.284826, x=-0.961749, y=-0.273931): 0.286745385759\n    test 2422 196 195.932122390859 Xi(tan=0.285464, x=-0.961588, y=-0.274498): 0.286745385759\n\n    test 2423 203 203.000000000000 Phi(tan=0.424475, x=-0.920505, y=-0.390731): 0.424474816210\n    test 2424 203 202.930871376810 Beta(tan=0.423052, x=-0.920505, y=-0.389421): 0.424474816210\n    test 2425 203 202.861904242075 Theta(tan=0.421633, x=-0.920505, y=-0.388115): 0.424474816210\n    test 2426 203 202.896337407506 Mu(tan=0.422341, x=-0.92121, y=-0.389065), iteration=3: 0.424474816210\n    test 2427 203 202.861927650711 Chi(tan=0.421634, x=-1, y=-0.421634), iteration=3: 0.424474816210\n    test 2428 203 202.907832581930 Xi(tan=0.422578, x=-1.85054, y=-0.781995), iteration=3: 0.424474816210\n\n    test 2429 203 203.000000000000 Phi(tan=0.424475, x=-0.920505, y=-0.390731): 0.424474816210\n    test 2430 203 202.930871376810 Beta(tan=0.423052, x=-0.920976, y=-0.38962): 0.424474816210\n    test 2431 203 202.861904242075 Theta(tan=0.421633, x=-0.921444, y=-0.388511): 0.424474816210\n    test 2432 203 202.896337407506 Mu(tan=0.422341, x=-0.92121, y=-0.389065): 0.424474816210\n    test 2433 203 202.861927650711 Chi(tan=0.421634, x=-0.921444, y=-0.388512): 0.424474816210\n    test 2434 203 202.907832581930 Xi(tan=0.422578, x=-0.921132, y=-0.38925): 0.424474816210\n\n    test 2435 210 210.000000000000 Phi(tan=0.57735, x=-0.866025, y=-0.5): 0.577350269190\n    test 2436 210 209.916747713236 Beta(tan=0.575415, x=-0.866025, y=-0.498324): 0.577350269190\n    test 2437 210 209.833635809829 Theta(tan=0.573485, x=-0.866025, y=-0.496653): 0.577350269190\n    test 2438 210 209.875147936061 Mu(tan=0.574448, x=-0.867113, y=-0.498112), iteration=2: 0.577350269190\n    test 2439 210 209.833682042481 Chi(tan=0.573486, x=-1, y=-0.573486), iteration=2: 0.577350269190\n    test 2440 210 209.888997034460 Xi(tan=0.57477, x=-1.74177, y=-1.00112), iteration=3: 0.577350269190\n\n    test 2441 210 210.000000000000 Phi(tan=0.57735, x=-0.866025, y=-0.5): 0.577350269190\n    test 2442 210 209.916747713236 Beta(tan=0.575415, x=-0.866751, y=-0.498741): 0.577350269190\n    test 2443 210 209.833635809829 Theta(tan=0.573485, x=-0.867474, y=-0.497483): 0.577350269190\n    test 2444 210 209.875147936061 Mu(tan=0.574448, x=-0.867113, y=-0.498112): 0.577350269190\n    test 2445 210 209.833682042481 Chi(tan=0.573486, x=-0.867473, y=-0.497484): 0.577350269190\n    test 2446 210 209.888997034460 Xi(tan=0.57477, x=-0.866992, y=-0.498321): 0.577350269190\n\n    test 2447 217 217.000000000000 Phi(tan=0.753554, x=-0.798636, y=-0.601815): 0.753554050103\n    test 2448 217 216.907557725734 Beta(tan=0.751028, x=-0.798636, y=-0.599797): 0.753554050103\n    test 2449 217 216.815201948287 Theta(tan=0.748509, x=-0.798636, y=-0.597786): 0.753554050103\n    test 2450 217 216.861352829418 Mu(tan=0.749767, x=-0.800089, y=-0.599881), iteration=2: 0.753554050103\n    test 2451 217 216.815276448911 Chi(tan=0.748512, x=-1, y=-0.748512), iteration=2: 0.753554050103\n    test 2452 217 216.876737541007 Xi(tan=0.750187, x=-1.60704, y=-1.20558), iteration=3: 0.753554050103\n\n    test 2453 217 217.000000000000 Phi(tan=0.753554, x=-0.798636, y=-0.601815): 0.753554050103\n    test 2454 217 216.907557725734 Beta(tan=0.751028, x=-0.799605, y=-0.600526): 0.753554050103\n    test 2455 217 216.815201948287 Theta(tan=0.748509, x=-0.800572, y=-0.599236): 0.753554050103\n    test 2456 217 216.861352829418 Mu(tan=0.749767, x=-0.800089, y=-0.599881): 0.753554050103\n    test 2457 217 216.815276448911 Chi(tan=0.748512, x=-0.800572, y=-0.599237): 0.753554050103\n    test 2458 217 216.876737541007 Xi(tan=0.750187, x=-0.799928, y=-0.600095): 0.753554050103\n\n    test 2459 224 224.000000000000 Phi(tan=0.965689, x=-0.71934, y=-0.694658): 0.965688774807\n    test 2460 224 223.903852093789 Beta(tan=0.962451, x=-0.71934, y=-0.692329): 0.965688774807\n    test 2461 224 223.807716539068 Theta(tan=0.959224, x=-0.71934, y=-0.690008): 0.965688774807\n    test 2462 224 223.855780468115 Mu(tan=0.960836, x=-0.721086, y=-0.692846), iteration=3: 0.965688774807\n    test 2463 224 223.807819970397 Chi(tan=0.959228, x=-1, y=-0.959228), iteration=3: 0.965688774807\n    test 2464 224 223.871789544357 Xi(tan=0.961374, x=-1.44826, y=-1.39232), iteration=3: 0.965688774807\n\n    test 2465 224 224.000000000000 Phi(tan=0.965689, x=-0.71934, y=-0.694658): 0.965688774807\n    test 2466 224 223.903852093789 Beta(tan=0.962451, x=-0.720504, y=-0.69345): 0.965688774807\n    test 2467 224 223.807716539068 Theta(tan=0.959224, x=-0.721667, y=-0.69224): 0.965688774807\n    test 2468 224 223.855780468115 Mu(tan=0.960836, x=-0.721086, y=-0.692846): 0.965688774807\n    test 2469 224 223.807819970397 Chi(tan=0.959228, x=-0.721666, y=-0.692242): 0.965688774807\n    test 2470 224 223.871789544357 Xi(tan=0.961374, x=-0.720892, y=-0.693047): 0.965688774807\n\n    test 2471 231 231.000000000000 Phi(tan=1.2349, x=-0.62932, y=-0.777146): 1.234897156535\n    test 2472 231 230.905857444036 Beta(tan=1.23076, x=-0.62932, y=-0.77454): 1.234897156535\n    test 2473 231 230.811650146691 Theta(tan=1.22663, x=-0.62932, y=-0.771943): 1.234897156535\n    test 2474 231 230.858774044602 Mu(tan=1.22869, x=-0.631234, y=-0.775592), iteration=2: 1.234897156535\n    test 2475 231 230.811777138431 Chi(tan=1.22664, x=-1, y=-1.22664), iteration=3: 1.234897156535\n    test 2476 231 230.874456790611 Xi(tan=1.22938, x=-1.26771, y=-1.5585), iteration=2: 1.234897156535\n\n    test 2477 231 231.000000000000 Phi(tan=1.2349, x=-0.62932, y=-0.777146): 1.234897156535\n    test 2478 231 230.905857444036 Beta(tan=1.23076, x=-0.630596, y=-0.776111): 1.234897156535\n    test 2479 231 230.811650146691 Theta(tan=1.22663, x=-0.631872, y=-0.775073): 1.234897156535\n    test 2480 231 230.858774044602 Mu(tan=1.22869, x=-0.631234, y=-0.775592): 1.234897156535\n    test 2481 231 230.811777138431 Chi(tan=1.22664, x=-0.63187, y=-0.775074): 1.234897156535\n    test 2482 231 230.874456790611 Xi(tan=1.22938, x=-0.631022, y=-0.775765): 1.234897156535\n\n    test 2483 238 238.000000000000 Phi(tan=1.60033, x=-0.529919, y=-0.848048): 1.600334529041\n    test 2484 238 237.913461373388 Beta(tan=1.59497, x=-0.529919, y=-0.845205): 1.600334529041\n    test 2485 238 237.826796038008 Theta(tan=1.58962, x=-0.529919, y=-0.842371): 1.600334529041\n    test 2486 238 237.870168339397 Mu(tan=1.59229, x=-0.53184, y=-0.846845), iteration=2: 1.600334529041\n    test 2487 238 237.826935292578 Chi(tan=1.58963, x=-1, y=-1.58963), iteration=2: 1.600334529041\n    test 2488 238 237.884590997667 Xi(tan=1.59318, x=-1.06803, y=-1.70156), iteration=3: 1.600334529041\n\n    test 2489 238 238.000000000000 Phi(tan=1.60033, x=-0.529919, y=-0.848048): 1.600334529041\n    test 2490 238 237.913461373388 Beta(tan=1.59497, x=-0.5312, y=-0.847247): 1.600334529041\n    test 2491 238 237.826796038008 Theta(tan=1.58962, x=-0.53248, y=-0.846442): 1.600334529041\n    test 2492 238 237.870168339397 Mu(tan=1.59229, x=-0.53184, y=-0.846845): 1.600334529041\n    test 2493 238 237.826935292578 Chi(tan=1.58963, x=-0.532478, y=-0.846444): 1.600334529041\n    test 2494 238 237.884590997667 Xi(tan=1.59318, x=-0.531626, y=-0.846979): 1.600334529041\n\n    test 2495 245 245.000000000000 Phi(tan=2.14451, x=-0.422618, y=-0.906308): 2.144506920510\n    test 2496 245 244.926217548699 Beta(tan=2.13732, x=-0.422618, y=-0.903269): 2.144506920510\n    test 2497 245 244.852276137025 Theta(tan=2.13015, x=-0.422618, y=-0.900241): 2.144506920510\n    test 2498 245 244.889296576536 Mu(tan=2.13373, x=-0.424369, y=-0.90549), iteration=2: 2.144506920510\n    test 2499 245 244.852411952909 Chi(tan=2.13016, x=-1, y=-2.13016), iteration=3: 2.144506920510\n    test 2500 245 244.901598279036 Xi(tan=2.13493, x=-0.852157, y=-1.81929), iteration=2: 2.144506920510\n\n    test 2501 245 245.000000000000 Phi(tan=2.14451, x=-0.422618, y=-0.906308): 2.144506920510\n    test 2502 245 244.926217548699 Beta(tan=2.13732, x=-0.423785, y=-0.905763): 2.144506920510\n    test 2503 245 244.852276137025 Theta(tan=2.13015, x=-0.424954, y=-0.905215): 2.144506920510\n    test 2504 245 244.889296576536 Mu(tan=2.13373, x=-0.424369, y=-0.90549): 2.144506920510\n    test 2505 245 244.852411952909 Chi(tan=2.13016, x=-0.424951, y=-0.905216): 2.144506920510\n    test 2506 245 244.901598279036 Xi(tan=2.13493, x=-0.424174, y=-0.905581): 2.144506920510\n\n    test 2507 252 252.000000000000 Phi(tan=3.07768, x=-0.309017, y=-0.951057): 3.077683537175\n    test 2508 252 251.943370950484 Beta(tan=3.06736, x=-0.309017, y=-0.947868): 3.077683537175\n    test 2509 252 251.886588050489 Theta(tan=3.05708, x=-0.309017, y=-0.94469): 3.077683537175\n    test 2510 252 251.915027646278 Mu(tan=3.06222, x=-0.310427, y=-0.950597), iteration=3: 3.077683537175\n    test 2511 252 251.886702986922 Chi(tan=3.0571, x=-1, y=-3.0571), iteration=3: 3.077683537175\n    test 2512 252 251.924472501487 Xi(tan=3.06393, x=-0.623327, y=-1.90983), iteration=3: 3.077683537175\n\n    test 2513 252 252.000000000000 Phi(tan=3.07768, x=-0.309017, y=-0.951057): 3.077683537175\n    test 2514 252 251.943370950484 Beta(tan=3.06736, x=-0.309957, y=-0.950751): 3.077683537175\n    test 2515 252 251.886588050489 Theta(tan=3.05708, x=-0.310899, y=-0.950443): 3.077683537175\n    test 2516 252 251.915027646278 Mu(tan=3.06222, x=-0.310427, y=-0.950597): 3.077683537175\n    test 2517 252 251.886702986922 Chi(tan=3.0571, x=-0.310897, y=-0.950444): 3.077683537175\n    test 2518 252 251.924472501487 Xi(tan=3.06393, x=-0.31027, y=-0.950648): 3.077683537175\n\n    test 2519 259 259.000000000000 Phi(tan=5.14455, x=-0.190809, y=-0.981627): 5.144554015970\n    test 2520 259 258.963902062378 Beta(tan=5.12731, x=-0.190809, y=-0.978336): 5.144554015970\n    test 2521 259 258.927691601915 Theta(tan=5.11011, x=-0.190809, y=-0.975056): 5.144554015970\n    test 2522 259 258.945832050834 Mu(tan=5.11871, x=-0.191737, y=-0.981446), iteration=3: 5.144554015970\n    test 2523 259 258.927769725031 Chi(tan=5.11015, x=-1, y=-5.11015), iteration=3: 5.144554015970\n    test 2524 259 258.951854051022 Xi(tan=5.12157, x=-0.384988, y=-1.97175), iteration=3: 5.144554015970\n\n    test 2525 259 259.000000000000 Phi(tan=5.14455, x=-0.190809, y=-0.981627): 5.144554015970\n    test 2526 259 258.963902062378 Beta(tan=5.12731, x=-0.191427, y=-0.981507): 5.144554015970\n    test 2527 259 258.927691601915 Theta(tan=5.11011, x=-0.192048, y=-0.981386): 5.144554015970\n    test 2528 259 258.945832050834 Mu(tan=5.11871, x=-0.191737, y=-0.981446): 5.144554015970\n    test 2529 259 258.927769725031 Chi(tan=5.11015, x=-0.192046, y=-0.981386): 5.144554015970\n    test 2530 259 258.951854051022 Xi(tan=5.12157, x=-0.191634, y=-0.981466): 5.144554015970\n\n    test 2531 266 266.000000000000 Phi(tan=14.3007, x=-0.0697565, y=-0.997564): 14.300666256712\n    test 2532 266 265.986587541025 Beta(tan=14.2527, x=-0.0697565, y=-0.994219): 14.300666256712\n    test 2533 266 265.973130404128 Theta(tan=14.2049, x=-0.0697565, y=-0.990886): 14.300666256712\n    test 2534 266 265.979872957664 Mu(tan=14.2288, x=-0.0701069, y=-0.997539), iteration=3: 14.300666256712\n    test 2535 266 265.973160396216 Chi(tan=14.205, x=-1, y=-14.205), iteration=3: 14.300666256712\n    test 2536 266 265.982110758522 Xi(tan=14.2368, x=-0.140765, y=-2.00404), iteration=2: 14.300666256712\n\n    test 2537 266 266.000000000000 Phi(tan=14.3007, x=-0.0697565, y=-0.997564): 14.300666256712\n    test 2538 266 265.986587541025 Beta(tan=14.2527, x=-0.06999, y=-0.997548): 14.300666256712\n    test 2539 266 265.973130404128 Theta(tan=14.2049, x=-0.0702243, y=-0.997531): 14.300666256712\n    test 2540 266 265.979872957664 Mu(tan=14.2288, x=-0.0701069, y=-0.997539): 14.300666256712\n    test 2541 266 265.973160396216 Chi(tan=14.205, x=-0.0702238, y=-0.997531): 14.300666256712\n    test 2542 266 265.982110758522 Xi(tan=14.2368, x=-0.0700679, y=-0.997542): 14.300666256712\n\n    test 2543 273 273.000000000000 Phi(tan=-19.0811, x=0.052336, y=-0.99863): -19.081136687728\n    test 2544 273 273.010073740960 Beta(tan=-19.0172, x=0.052336, y=-0.995281): -19.081136687728\n    test 2545 273 273.020181183682 Theta(tan=-18.9534, x=0.052336, y=-0.991944): -19.081136687728\n    test 2546 273 273.015116912927 Mu(tan=-18.9853, x=0.0525994, y=-0.998616), iteration=3: -19.081136687728\n    test 2547 273 273.020158608531 Chi(tan=-18.9535, x=1.0, y=-18.9535), iteration=2: -19.081136687728\n    test 2548 273 273.013436145998 Xi(tan=-18.9959, x=0.105612, y=-2.0062), iteration=2: -19.081136687728\n\n    test 2549 273 273.000000000000 Phi(tan=-19.0811, x=0.052336, y=-0.99863): -19.081136687728\n    test 2550 273 273.010073740960 Beta(tan=-19.0172, x=0.0525115, y=-0.99862): -19.081136687728\n    test 2551 273 273.020181183682 Theta(tan=-18.9534, x=0.0526877, y=-0.998611): -19.081136687728\n    test 2552 273 273.015116912927 Mu(tan=-18.9853, x=0.0525994, y=-0.998616): -19.081136687728\n    test 2553 273 273.020158608531 Chi(tan=-18.9535, x=0.0526873, y=-0.998611): -19.081136687728\n    test 2554 273 273.013436145998 Xi(tan=-18.9959, x=0.0525701, y=-0.998617): -19.081136687728\n\n    test 2555 280 280.000000000000 Phi(tan=-5.67128, x=0.173648, y=-0.984808): -5.671281819618\n    test 2556 280 280.032958527773 Beta(tan=-5.65227, x=0.173648, y=-0.981506): -5.671281819618\n    test 2557 280 280.066021190034 Theta(tan=-5.63332, x=0.173648, y=-0.978215): -5.671281819618\n    test 2558 280 280.049457265110 Mu(tan=-5.64279, x=0.174498, y=-0.984657), iteration=3: -5.671281819618\n    test 2559 280 280.065949391281 Chi(tan=-5.63336, x=1.0, y=-5.63336), iteration=2: -5.671281819618\n    test 2560 280 280.043958856452 Xi(tan=-5.64595, x=0.350374, y=-1.97819), iteration=3: -5.671281819618\n\n    test 2561 280 280.000000000000 Phi(tan=-5.67128, x=0.173648, y=-0.984808): -5.671281819618\n    test 2562 280 280.032958527773 Beta(tan=-5.65227, x=0.174215, y=-0.984708): -5.671281819618\n    test 2563 280 280.066021190034 Theta(tan=-5.63332, x=0.174783, y=-0.984607): -5.671281819618\n    test 2564 280 280.049457265110 Mu(tan=-5.64279, x=0.174498, y=-0.984657): -5.671281819618\n    test 2565 280 280.065949391281 Chi(tan=-5.63336, x=0.174782, y=-0.984607): -5.671281819618\n    test 2566 280 280.043958856452 Xi(tan=-5.64595, x=0.174404, y=-0.984674): -5.671281819618\n\n    test 2567 287 287.000000000000 Phi(tan=-3.27085, x=0.292372, y=-0.956305): -3.270852618484\n    test 2568 287 287.053876189570 Beta(tan=-3.25989, x=0.292372, y=-0.953098): -3.270852618484\n    test 2569 287 287.107902403143 Theta(tan=-3.24896, x=0.292372, y=-0.949903): -3.270852618484\n    test 2570 287 287.080842346698 Mu(tan=-3.25442, x=0.293721, y=-0.955891), iteration=3: -3.270852618484\n    test 2571 287 287.107791826667 Chi(tan=-3.24898, x=1.0, y=-3.24898), iteration=2: -3.270852618484\n    test 2572 287 287.071856267521 Xi(tan=-3.25624, x=0.589778, y=-1.92046), iteration=3: -3.270852618484\n\n    test 2573 287 287.000000000000 Phi(tan=-3.27085, x=0.292372, y=-0.956305): -3.270852618484\n    test 2574 287 287.053876189570 Beta(tan=-3.25989, x=0.293271, y=-0.956029): -3.270852618484\n    test 2575 287 287.107902403143 Theta(tan=-3.24896, x=0.294172, y=-0.955752): -3.270852618484\n    test 2576 287 287.080842346698 Mu(tan=-3.25442, x=0.293721, y=-0.955891): -3.270852618484\n    test 2577 287 287.107791826667 Chi(tan=-3.24898, x=0.29417, y=-0.955753): -3.270852618484\n    test 2578 287 287.071856267521 Xi(tan=-3.25624, x=0.293571, y=-0.955937): -3.270852618484\n\n    test 2579 294 294.000000000000 Phi(tan=-2.24604, x=0.406737, y=-0.913545): -2.246036773904\n    test 2580 294 294.071580020440 Beta(tan=-2.23851, x=0.406737, y=-0.910483): -2.246036773904\n    test 2581 294 294.143320630937 Theta(tan=-2.231, x=0.406737, y=-0.90743): -2.246036773904\n    test 2582 294 294.107400080405 Mu(tan=-2.23475, x=0.408448, y=-0.912781), iteration=3: -2.246036773904\n    test 2583 294 294.143186728996 Chi(tan=-2.23101, x=1.0, y=-2.23101), iteration=3: -2.246036773904\n    test 2584 294 294.095464961355 Xi(tan=-2.236, x=0.820183, y=-1.83393), iteration=3: -2.246036773904\n\n    test 2585 294 294.000000000000 Phi(tan=-2.24604, x=0.406737, y=-0.913545): -2.246036773904\n    test 2586 294 294.071580020440 Beta(tan=-2.23851, x=0.407878, y=-0.913037): -2.246036773904\n    test 2587 294 294.143320630937 Theta(tan=-2.231, x=0.409021, y=-0.912525): -2.246036773904\n    test 2588 294 294.107400080405 Mu(tan=-2.23475, x=0.408448, y=-0.912781): -2.246036773904\n    test 2589 294 294.143186728996 Chi(tan=-2.23101, x=0.409018, y=-0.912526): -2.246036773904\n    test 2590 294 294.095464961355 Xi(tan=-2.236, x=0.408258, y=-0.912866): -2.246036773904\n\n    test 2591 301 301.000000000000 Phi(tan=-1.66428, x=0.515038, y=-0.857167): -1.664279482351\n    test 2592 301 301.085017327347 Beta(tan=-1.6587, x=0.515038, y=-0.854293): -1.664279482351\n    test 2593 301 301.170168056505 Theta(tan=-1.65314, x=0.515038, y=-0.851429): -1.664279482351\n    test 2594 301 301.127550963364 Mu(tan=-1.65592, x=0.516945, y=-0.856019), iteration=3: -1.664279482351\n    test 2595 301 301.170028258270 Chi(tan=-1.65315, x=1.0, y=-1.65315), iteration=3: -1.664279482351\n    test 2596 301 301.113380969671 Xi(tan=-1.65684, x=1.03811, y=-1.71998), iteration=3: -1.664279482351\n\n    test 2597 301 301.000000000000 Phi(tan=-1.66428, x=0.515038, y=-0.857167): -1.664279482351\n    test 2598 301 301.085017327347 Beta(tan=-1.6587, x=0.516309, y=-0.856402): -1.664279482351\n    test 2599 301 301.170168056505 Theta(tan=-1.65314, x=0.517582, y=-0.855634): -1.664279482351\n    test 2600 301 301.127550963364 Mu(tan=-1.65592, x=0.516945, y=-0.856019): -1.664279482351\n    test 2601 301 301.170028258270 Chi(tan=-1.65315, x=0.517579, y=-0.855635): -1.664279482351\n    test 2602 301 301.113380969671 Xi(tan=-1.65684, x=0.516733, y=-0.856146): -1.664279482351\n\n    test 2603 308 308.000000000000 Phi(tan=-1.27994, x=0.615661, y=-0.788011): -1.279941632193\n    test 2604 308 308.093392183249 Beta(tan=-1.27565, x=0.615661, y=-0.785369): -1.279941632193\n    test 2605 308 308.186859283180 Theta(tan=-1.27137, x=0.615661, y=-0.782736): -1.279941632193\n    test 2606 308 308.140102302012 Mu(tan=-1.27351, x=0.617587, y=-0.786503), iteration=2: -1.279941632193\n    test 2607 308 308.186729722475 Chi(tan=-1.27138, x=1.0, y=-1.27138), iteration=3: -1.279941632193\n    test 2608 308 308.124543504213 Xi(tan=-1.27422, x=1.24029, y=-1.58041), iteration=2: -1.279941632193\n\n    test 2609 308 308.000000000000 Phi(tan=-1.27994, x=0.615661, y=-0.788011): -1.279941632193\n    test 2610 308 308.093392183249 Beta(tan=-1.27565, x=0.616945, y=-0.787006): -1.279941632193\n    test 2611 308 308.186859283180 Theta(tan=-1.27137, x=0.618228, y=-0.785999): -1.279941632193\n    test 2612 308 308.140102302012 Mu(tan=-1.27351, x=0.617587, y=-0.786503): -1.279941632193\n    test 2613 308 308.186729722475 Chi(tan=-1.27138, x=0.618226, y=-0.786): -1.279941632193\n    test 2614 308 308.124543504213 Xi(tan=-1.27422, x=0.617373, y=-0.786671): -1.279941632193\n\n    test 2615 315 315.000000000000 Phi(tan=-1, x=0.707107, y=-0.707107): -1.000000000000\n    test 2616 315 315.096212150580 Beta(tan=-0.996647, x=0.707107, y=-0.704736): -1.000000000000\n    test 2617 315 315.192423215982 Theta(tan=-0.993306, x=0.707107, y=-0.702373): -1.000000000000\n    test 2618 315 315.144318011093 Mu(tan=-0.994975, x=0.708886, y=-0.705323), iteration=2: -1.000000000000\n    test 2619 315 315.192315943911 Chi(tan=-0.993309, x=1.0, y=-0.993309), iteration=3: -1.000000000000\n    test 2620 315 315.128297126566 Xi(tan=-0.995532, x=1.42374, y=-1.41738), iteration=3: -1.000000000000\n\n    test 2621 315 315.000000000000 Phi(tan=-1, x=0.707107, y=-0.707107): -1.000000000000\n    test 2622 315 315.096212150580 Beta(tan=-0.996647, x=0.708293, y=-0.705918): -1.000000000000\n    test 2623 315 315.192423215982 Theta(tan=-0.993306, x=0.709478, y=-0.704728): -1.000000000000\n    test 2624 315 315.144318011093 Mu(tan=-0.994975, x=0.708886, y=-0.705323): -1.000000000000\n    test 2625 315 315.192315943911 Chi(tan=-0.993309, x=0.709476, y=-0.704729): -1.000000000000\n    test 2626 315 315.128297126566 Xi(tan=-0.995532, x=0.708688, y=-0.705522): -1.000000000000\n\n    test 2627 322 322.000000000000 Phi(tan=-0.781286, x=0.788011, y=-0.615661): -0.781285626507\n    test 2628 322 322.093316334881 Beta(tan=-0.778666, x=0.788011, y=-0.613597): -0.781285626507\n    test 2629 322 322.186555893687 Theta(tan=-0.776055, x=0.788011, y=-0.61154): -0.781285626507\n    test 2630 322 322.139960086634 Mu(tan=-0.777359, x=0.789512, y=-0.613735), iteration=3: -0.781285626507\n    test 2631 322 322.186477167765 Chi(tan=-0.776058, x=1.0, y=-0.776058), iteration=3: -0.781285626507\n    test 2632 322 322.124428869604 Xi(tan=-0.777794, x=1.58578, y=-1.23341), iteration=2: -0.781285626507\n\n    test 2633 322 322.000000000000 Phi(tan=-0.781286, x=0.788011, y=-0.615661): -0.781285626507\n    test 2634 322 322.093316334881 Beta(tan=-0.778666, x=0.789012, y=-0.614377): -0.781285626507\n    test 2635 322 322.186555893687 Theta(tan=-0.776055, x=0.790011, y=-0.613092): -0.781285626507\n    test 2636 322 322.139960086634 Mu(tan=-0.777359, x=0.789512, y=-0.613735): -0.781285626507\n    test 2637 322 322.186477167765 Chi(tan=-0.776058, x=0.79001, y=-0.613094): -0.781285626507\n    test 2638 322 322.124428869604 Xi(tan=-0.777794, x=0.789346, y=-0.613949): -0.781285626507\n\n    test 2639 329 329.000000000000 Phi(tan=-0.600861, x=0.857167, y=-0.515038): -0.600860619028\n    test 2640 329 329.084883386958 Beta(tan=-0.598846, x=0.857167, y=-0.513311): -0.600860619028\n    test 2641 329 329.169632300503 Theta(tan=-0.596838, x=0.857167, y=-0.51159): -0.600860619028\n    test 2642 329 329.127299825611 Mu(tan=-0.597841, x=0.858309, y=-0.513132), iteration=2: -0.600860619028\n    test 2643 329 329.169582272165 Chi(tan=-0.596839, x=1.0, y=-0.596839), iteration=3: -0.600860619028\n    test 2644 329 329.113178536759 Xi(tan=-0.598175, x=1.72407, y=-1.0313), iteration=3: -0.600860619028\n\n    test 2645 329 329.000000000000 Phi(tan=-0.600861, x=0.857167, y=-0.515038): -0.600860619028\n    test 2646 329 329.084883386958 Beta(tan=-0.598846, x=0.857929, y=-0.513768): -0.600860619028\n    test 2647 329 329.169632300503 Theta(tan=-0.596838, x=0.858688, y=-0.512498): -0.600860619028\n    test 2648 329 329.127299825611 Mu(tan=-0.597841, x=0.858309, y=-0.513132): -0.600860619028\n    test 2649 329 329.169582272165 Chi(tan=-0.596839, x=0.858688, y=-0.512499): -0.600860619028\n    test 2650 329 329.113178536759 Xi(tan=-0.598175, x=0.858183, y=-0.513344): -0.600860619028\n\n    test 2651 336 336.000000000000 Phi(tan=-0.445229, x=0.913545, y=-0.406737): -0.445228685309\n    test 2652 336 336.071419343981 Beta(tan=-0.443736, x=0.913545, y=-0.405373): -0.445228685309\n    test 2653 336 336.142677929298 Theta(tan=-0.442248, x=0.913545, y=-0.404014): -0.445228685309\n    test 2654 336 336.107098812499 Mu(tan=-0.442991, x=0.914304, y=-0.405028), iteration=3: -0.445228685309\n    test 2655 336 336.142651717918 Chi(tan=-0.442249, x=1.0, y=-0.442249), iteration=3: -0.445228685309\n    test 2656 336 336.095222120427 Xi(tan=-0.443239, x=1.83665, y=-0.814074), iteration=3: -0.445228685309\n\n    test 2657 336 336.000000000000 Phi(tan=-0.445229, x=0.913545, y=-0.406737): -0.445228685309\n    test 2658 336 336.071419343981 Beta(tan=-0.443736, x=0.914052, y=-0.405598): -0.445228685309\n    test 2659 336 336.142677929298 Theta(tan=-0.442248, x=0.914555, y=-0.40446): -0.445228685309\n    test 2660 336 336.107098812499 Mu(tan=-0.442991, x=0.914304, y=-0.405028): -0.445228685309\n    test 2661 336 336.142651717918 Chi(tan=-0.442249, x=0.914555, y=-0.404461): -0.445228685309\n    test 2662 336 336.095222120427 Xi(tan=-0.443239, x=0.91422, y=-0.405218): -0.445228685309\n\n    test 2663 343 343.000000000000 Phi(tan=-0.305731, x=0.956305, y=-0.292372): -0.305730681459\n    test 2664 343 343.053726392145 Beta(tan=-0.304706, x=0.956305, y=-0.291391): -0.305730681459\n    test 2665 343 343.107303214923 Theta(tan=-0.303684, x=0.956305, y=-0.290414): -0.305730681459\n    test 2666 343 343.080561476830 Mu(tan=-0.304194, x=0.956715, y=-0.291027), iteration=3: -0.305730681459\n    test 2667 343 343.107293039045 Chi(tan=-0.303684, x=1.0, y=-0.303684), iteration=2: -0.305730681459\n    test 2668 343 343.071629868756 Xi(tan=-0.304364, x=1.92193, y=-0.584967), iteration=2: -0.305730681459\n\n    test 2669 343 343.000000000000 Phi(tan=-0.305731, x=0.956305, y=-0.292372): -0.305730681459\n    test 2670 343 343.053726392145 Beta(tan=-0.304706, x=0.956578, y=-0.291475): -0.305730681459\n    test 2671 343 343.107303214923 Theta(tan=-0.303684, x=0.956851, y=-0.29058): -0.305730681459\n    test 2672 343 343.080561476830 Mu(tan=-0.304194, x=0.956715, y=-0.291027): -0.305730681459\n    test 2673 343 343.107293039045 Chi(tan=-0.303684, x=0.956851, y=-0.29058): -0.305730681459\n    test 2674 343 343.071629868756 Xi(tan=-0.304364, x=0.95667, y=-0.291176): -0.305730681459\n\n    test 2675 350 350.000000000000 Phi(tan=-0.176327, x=0.984808, y=-0.173648): -0.176326980708\n    test 2676 350 350.032854677782 Beta(tan=-0.175736, x=0.984808, y=-0.173066): -0.176326980708\n    test 2677 350 350.065605789721 Theta(tan=-0.175147, x=0.984808, y=-0.172486): -0.176326980708\n    test 2678 350 350.049262546520 Mu(tan=-0.175441, x=0.984957, y=-0.172801), iteration=3: -0.176326980708\n    test 2679 350 350.065603596501 Chi(tan=-0.175147, x=1.0, y=-0.175147), iteration=2: -0.176326980708\n    test 2680 350 350.043801901064 Xi(tan=-0.175539, x=1.97873, y=-0.347343), iteration=3: -0.176326980708\n\n    test 2681 350 350.000000000000 Phi(tan=-0.176327, x=0.984808, y=-0.173648): -0.176326980708\n    test 2682 350 350.032854677782 Beta(tan=-0.175736, x=0.984907, y=-0.173083): -0.176326980708\n    test 2683 350 350.065605789721 Theta(tan=-0.175147, x=0.985006, y=-0.17252): -0.176326980708\n    test 2684 350 350.049262546520 Mu(tan=-0.175441, x=0.984957, y=-0.172801): -0.176326980708\n    test 2685 350 350.065603596501 Chi(tan=-0.175147, x=0.985006, y=-0.17252): -0.176326980708\n    test 2686 350 350.043801901064 Xi(tan=-0.175539, x=0.98494, y=-0.172895): -0.176326980708\n\n    test 2687 357 357.000000000000 Phi(tan=-0.0524078, x=0.99863, y=-0.052336): -0.052407779283\n    test 2688 357 357.010040150331 Beta(tan=-0.0522321, x=0.99863, y=-0.0521605): -0.052407779283\n    test 2689 357 357.020046820811 Theta(tan=-0.0520569, x=0.99863, y=-0.0519856): -0.052407779283\n    test 2690 357 357.015053930532 Mu(tan=-0.0521443, x=0.998643, y=-0.0520736), iteration=3: -0.052407779283\n    test 2691 357 357.020046759956 Chi(tan=-0.0520569, x=1.0, y=-0.0520569), iteration=3: -0.052407779283\n    test 2692 357 357.013385378246 Xi(tan=-0.0521735, x=2.00625, y=-0.104673), iteration=3: -0.052407779283\n\n    test 2693 357 357.000000000000 Phi(tan=-0.0524078, x=0.99863, y=-0.052336): -0.052407779283\n    test 2694 357 357.010040150331 Beta(tan=-0.0522321, x=0.998639, y=-0.052161): -0.052407779283\n    test 2695 357 357.020046820811 Theta(tan=-0.0520569, x=0.998648, y=-0.0519865): -0.052407779283\n    test 2696 357 357.015053930532 Mu(tan=-0.0521443, x=0.998643, y=-0.0520736): -0.052407779283\n    test 2697 357 357.020046759956 Chi(tan=-0.0520569, x=0.998648, y=-0.0519866): -0.052407779283\n    test 2698 357 357.013385378246 Xi(tan=-0.0521735, x=0.998642, y=-0.0521027): -0.052407779283\n\n    test 2699  0 0.000000000000 Phi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 2700  0 0.000000000000 Beta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 2701  0 0.000000000000 Theta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 2702  0 0.000000000000 Mu(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 2703  0 0.000000000000 Chi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 2704  0 0.000000000000 Xi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n\n    test 2705  0 0.000000000000 Phi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 2706  0 0.000000000000 Beta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 2707  0 0.000000000000 Theta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 2708  0 0.000000000000 Mu(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 2709  0 0.000000000000 Chi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 2710  0 0.000000000000 Xi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n\n    test 2711  7 7.046703746044 Phi(tan=0.123612, x=0.992546, y=0.122691): 0.122784560903\n    test 2712  7 7.023313832609 Beta(tan=0.123198, x=0.992546, y=0.122279): 0.122784560903\n    test 2713  7 7.000000000000 Theta(tan=0.122785, x=0.992546, y=0.121869): 0.122784560903\n    test 2714  7 7.011633179954 Mu(tan=0.122991, x=0.992521, y=0.122071), iteration=3: 0.122784560903\n    test 2715  7 7.000000779127 Chi(tan=0.122785, x=1.0, y=0.122785), iteration=2: 0.122784560903\n    test 2716  7 7.015520491938 Xi(tan=0.12306, x=1.99394, y=0.245373), iteration=2: 0.122784560903\n\n    test 2717  7 7.046703746044 Phi(tan=0.123612, x=0.992446, y=0.122678): 0.122784560903\n    test 2718  7 7.023313832609 Beta(tan=0.123198, x=0.992496, y=0.122273): 0.122784560903\n    test 2719  7 7.000000000000 Theta(tan=0.122785, x=0.992546, y=0.121869): 0.122784560903\n    test 2720  7 7.011633179954 Mu(tan=0.122991, x=0.992521, y=0.122071): 0.122784560903\n    test 2721  7 7.000000779127 Chi(tan=0.122785, x=0.992546, y=0.121869): 0.122784560903\n    test 2722  7 7.015520491938 Xi(tan=0.12306, x=0.992513, y=0.122138): 0.122784560903\n\n    test 2723 14 14.090606168436 Phi(tan=0.251008, x=0.970296, y=0.243552): 0.249328002843\n    test 2724 14 14.045235971490 Beta(tan=0.250167, x=0.970296, y=0.242736): 0.249328002843\n    test 2725 14 14.000000000000 Theta(tan=0.249328, x=0.970296, y=0.241922): 0.249328002843\n    test 2726 14 14.022576103630 Mu(tan=0.249747, x=0.9702, y=0.242304), iteration=3: 0.249328002843\n    test 2727 14 14.000005955939 Chi(tan=0.249328, x=1.0, y=0.249328), iteration=2: 0.249328002843\n    test 2728 14 14.030117773793 Xi(tan=0.249886, x=1.94905, y=0.487041), iteration=3: 0.249328002843\n\n    test 2729 14 14.090606168436 Phi(tan=0.251008, x=0.969912, y=0.243456): 0.249328002843\n    test 2730 14 14.045235971490 Beta(tan=0.250167, x=0.970104, y=0.242688): 0.249328002843\n    test 2731 14 14.000000000000 Theta(tan=0.249328, x=0.970296, y=0.241922): 0.249328002843\n    test 2732 14 14.022576103630 Mu(tan=0.249747, x=0.9702, y=0.242304): 0.249328002843\n    test 2733 14 14.000005955939 Chi(tan=0.249328, x=0.970296, y=0.241922): 0.249328002843\n    test 2734 14 14.030117773793 Xi(tan=0.249886, x=0.970168, y=0.242432): 0.249328002843\n\n    test 2735 21 21.129078684131 Phi(tan=0.386451, x=0.93358, y=0.360783): 0.383864035035\n    test 2736 21 21.064458966605 Beta(tan=0.385155, x=0.93358, y=0.359574): 0.383864035035\n    test 2737 21 21.000000000000 Theta(tan=0.383864, x=0.93358, y=0.358368): 0.383864035035\n    test 2738 21 21.032179314629 Mu(tan=0.384509, x=0.933379, y=0.358892), iteration=3: 0.383864035035\n    test 2739 21 21.000018617196 Chi(tan=0.383864, x=1.0, y=0.383864), iteration=3: 0.383864035035\n    test 2740 21 21.042923749309 Xi(tan=0.384724, x=1.875, y=0.721359), iteration=3: 0.383864035035\n\n    test 2741 21 21.129078684131 Phi(tan=0.386451, x=0.932771, y=0.36047): 0.383864035035\n    test 2742 21 21.064458966605 Beta(tan=0.385155, x=0.933177, y=0.359418): 0.383864035035\n    test 2743 21 21.000000000000 Theta(tan=0.383864, x=0.93358, y=0.358368): 0.383864035035\n    test 2744 21 21.032179314629 Mu(tan=0.384509, x=0.933379, y=0.358892): 0.383864035035\n    test 2745 21 21.000018617196 Chi(tan=0.383864, x=0.93358, y=0.358368): 0.383864035035\n    test 2746 21 21.042923749309 Xi(tan=0.384724, x=0.933312, y=0.359067): 0.383864035035\n\n    test 2747 28 28.159826417635 Phi(tan=0.535293, x=0.882948, y=0.472636): 0.531709431661\n    test 2748 28 28.079838480095 Beta(tan=0.533498, x=0.882948, y=0.471051): 0.531709431661\n    test 2749 28 28.000000000000 Theta(tan=0.531709, x=0.882948, y=0.469472): 0.531709431661\n    test 2750 28 28.039872584755 Mu(tan=0.532602, x=0.882621, y=0.470086), iteration=2: 0.531709431661\n    test 2751 28 28.000039556231 Chi(tan=0.53171, x=1.0, y=0.53171), iteration=3: 0.531709431661\n    test 2752 28 28.053177215354 Xi(tan=0.532901, x=1.77295, y=0.944805), iteration=3: 0.531709431661\n\n    test 2753 28 28.159826417635 Phi(tan=0.535293, x=0.881635, y=0.471933): 0.531709431661\n    test 2754 28 28.079838480095 Beta(tan=0.533498, x=0.882293, y=0.470701): 0.531709431661\n    test 2755 28 28.000000000000 Theta(tan=0.531709, x=0.882948, y=0.469472): 0.531709431661\n    test 2756 28 28.039872584755 Mu(tan=0.532602, x=0.882621, y=0.470086): 0.531709431661\n    test 2757 28 28.000039556231 Chi(tan=0.53171, x=0.882947, y=0.469472): 0.531709431661\n    test 2758 28 28.053177215354 Xi(tan=0.532901, x=0.882511, y=0.470291): 0.531709431661\n\n    test 2759 35 35.181026690786 Phi(tan=0.704927, x=0.819152, y=0.577442): 0.700207538210\n    test 2760 35 35.090461812463 Beta(tan=0.702563, x=0.819152, y=0.575506): 0.700207538210\n    test 2761 35 35.000000000000 Theta(tan=0.700208, x=0.819152, y=0.573576): 0.700207538210\n    test 2762 35 35.045198725900 Mu(tan=0.701384, x=0.818699, y=0.574222), iteration=3: 0.700207538210\n    test 2763 35 35.000066866642 Chi(tan=0.700209, x=1.0, y=0.700209), iteration=2: 0.700207538210\n    test 2764 35 35.060269183174 Xi(tan=0.701776, x=1.64445, y=1.15403), iteration=3: 0.700207538210\n\n    test 2765 35 35.181026690786 Phi(tan=0.704927, x=0.817336, y=0.576162): 0.700207538210\n    test 2766 35 35.090461812463 Beta(tan=0.702563, x=0.818245, y=0.574869): 0.700207538210\n    test 2767 35 35.000000000000 Theta(tan=0.700208, x=0.819152, y=0.573576): 0.700207538210\n    test 2768 35 35.045198725900 Mu(tan=0.701384, x=0.818699, y=0.574222): 0.700207538210\n    test 2769 35 35.000066866642 Chi(tan=0.700209, x=0.819151, y=0.573577): 0.700207538210\n    test 2770 35 35.060269183174 Xi(tan=0.701776, x=0.818548, y=0.574438): 0.700207538210\n\n    test 2771 42 42.191436312869 Phi(tan=0.906472, x=0.743145, y=0.67364): 0.900404044298\n    test 2772 42 42.095701889505 Beta(tan=0.903433, x=0.743145, y=0.671382): 0.900404044298\n    test 2773 42 42.000000000000 Theta(tan=0.900404, x=0.743145, y=0.669131): 0.900404044298\n    test 2774 42 42.047840790779 Mu(tan=0.901917, x=0.742586, y=0.669751), iteration=3: 0.900404044298\n    test 2775 42 42.000096219009 Chi(tan=0.900407, x=1.0, y=0.900407), iteration=2: 0.900404044298\n    test 2776 42 42.063779025222 Xi(tan=0.902422, x=1.49147, y=1.34593), iteration=2: 0.900404044298\n\n    test 2777 42 42.191436312869 Phi(tan=0.906472, x=0.740905, y=0.67161): 0.900404044298\n    test 2778 42 42.095701889505 Beta(tan=0.903433, x=0.742026, y=0.670371): 0.900404044298\n    test 2779 42 42.000000000000 Theta(tan=0.900404, x=0.743145, y=0.669131): 0.900404044298\n    test 2780 42 42.047840790779 Mu(tan=0.901917, x=0.742586, y=0.669751): 0.900404044298\n    test 2781 42 42.000096219009 Chi(tan=0.900407, x=0.743144, y=0.669132): 0.900404044298\n    test 2782 42 42.063779025222 Xi(tan=0.902422, x=0.7424, y=0.669957): 0.900404044298\n\n    test 2783 49 49.190461558643 Phi(tan=1.15812, x=0.656059, y=0.759796): 1.150368407221\n    test 2784 49 49.095253561343 Beta(tan=1.15424, x=0.656059, y=0.757248): 1.150368407221\n    test 2785 49 49.000000000000 Theta(tan=1.15037, x=0.656059, y=0.75471): 1.150368407221\n    test 2786 49 49.047641033804 Mu(tan=1.1523, x=0.655431, y=0.755255), iteration=3: 1.150368407221\n    test 2787 49 49.000121761599 Chi(tan=1.15037, x=1.0, y=1.15037), iteration=3: 1.150368407221\n    test 2788 49 49.063499305647 Xi(tan=1.15295, x=1.31633, y=1.51766), iteration=3: 1.150368407221\n\n    test 2789 49 49.190461558643 Phi(tan=1.15812, x=0.653547, y=0.756886): 1.150368407221\n    test 2790 49 49.095253561343 Beta(tan=1.15424, x=0.654803, y=0.755799): 1.150368407221\n    test 2791 49 49.000000000000 Theta(tan=1.15037, x=0.656059, y=0.75471): 1.150368407221\n    test 2792 49 49.047641033804 Mu(tan=1.1523, x=0.655431, y=0.755255): 1.150368407221\n    test 2793 49 49.000121761599 Chi(tan=1.15037, x=0.656057, y=0.754711): 1.150368407221\n    test 2794 49 49.063499305647 Xi(tan=1.15295, x=0.655222, y=0.755436): 1.150368407221\n\n    test 2795 56 56.178187618527 Phi(tan=1.49255, x=0.559193, y=0.834625): 1.482560968513\n    test 2796 56 56.089150284766 Beta(tan=1.48755, x=0.559193, y=0.831827): 1.482560968513\n    test 2797 56 56.000000000000 Theta(tan=1.48256, x=0.559193, y=0.829038): 1.482560968513\n    test 2798 56 56.044610470922 Mu(tan=1.48505, x=0.558547, y=0.829473), iteration=3: 1.482560968513\n    test 2799 56 56.000137435853 Chi(tan=1.48257, x=1.0, y=1.48257), iteration=3: 1.482560968513\n    test 2800 56 56.059447854026 Xi(tan=1.48588, x=1.12168, y=1.66668), iteration=2: 1.482560968513\n\n    test 2801 56 56.178187618527 Phi(tan=1.49255, x=0.556612, y=0.830773): 1.482560968513\n    test 2802 56 56.089150284766 Beta(tan=1.48755, x=0.557902, y=0.829907): 1.482560968513\n    test 2803 56 56.000000000000 Theta(tan=1.48256, x=0.559193, y=0.829038): 1.482560968513\n    test 2804 56 56.044610470922 Mu(tan=1.48505, x=0.558547, y=0.829473): 1.482560968513\n    test 2805 56 56.000137435853 Chi(tan=1.48257, x=0.559191, y=0.829039): 1.482560968513\n    test 2806 56 56.059447854026 Xi(tan=1.48588, x=0.558332, y=0.829617): 1.482560968513\n\n    test 2807 63 63.155367155141 Phi(tan=1.97584, x=0.45399, y=0.897011): 1.962610505505\n    test 2808 63 63.077760538972 Beta(tan=1.96921, x=0.45399, y=0.894004): 1.962610505505\n    test 2809 63 63.000000000000 Theta(tan=1.96261, x=0.45399, y=0.891007): 1.962610505505\n    test 2810 63 63.038928423958 Mu(tan=1.96591, x=0.453385, y=0.891315), iteration=3: 1.962610505505\n    test 2811 63 63.000138398794 Chi(tan=1.96262, x=1.0, y=1.96262), iteration=3: 1.962610505505\n    test 2812 63 63.051866422105 Xi(tan=1.96701, x=0.910437, y=1.79084), iteration=3: 1.962610505505\n\n    test 2813 63 63.155367155141 Phi(tan=1.97584, x=0.451573, y=0.892234): 1.962610505505\n    test 2814 63 63.077760538972 Beta(tan=1.96921, x=0.452781, y=0.891622): 1.962610505505\n    test 2815 63 63.000000000000 Theta(tan=1.96261, x=0.45399, y=0.891007): 1.962610505505\n    test 2816 63 63.038928423958 Mu(tan=1.96591, x=0.453385, y=0.891315): 1.962610505505\n    test 2817 63 63.000138398794 Chi(tan=1.96262, x=0.453988, y=0.891008): 1.962610505505\n    test 2818 63 63.051866422105 Xi(tan=1.96701, x=0.453184, y=0.891417): 1.962610505505\n\n    test 2819 70 70.123370137625 Phi(tan=2.76599, x=0.34202, y=0.946026): 2.747477419455\n    test 2820 70 70.061764561164 Beta(tan=2.75672, x=0.34202, y=0.942854): 2.747477419455\n    test 2821 70 70.000000000000 Theta(tan=2.74748, x=0.34202, y=0.939693): 2.747477419455\n    test 2822 70 70.030932030288 Mu(tan=2.7521, x=0.341513, y=0.939877), iteration=3: 2.747477419455\n    test 2823 70 70.000122219482 Chi(tan=2.7475, x=1.0, y=2.7475), iteration=3: 2.747477419455\n    test 2824 70 70.041206070039 Xi(tan=2.75364, x=0.685754, y=1.88832), iteration=2: 2.747477419455\n\n    test 2825 70 70.123370137625 Phi(tan=2.76599, x=0.339996, y=0.940427): 2.747477419455\n    test 2826 70 70.061764561164 Beta(tan=2.75672, x=0.341007, y=0.940061): 2.747477419455\n    test 2827 70 70.000000000000 Theta(tan=2.74748, x=0.34202, y=0.939693): 2.747477419455\n    test 2828 70 70.030932030288 Mu(tan=2.7521, x=0.341513, y=0.939877): 2.747477419455\n    test 2829 70 70.000122219482 Chi(tan=2.7475, x=0.342018, y=0.939693): 2.747477419455\n    test 2830 70 70.041206070039 Xi(tan=2.75364, x=0.341344, y=0.939938): 2.747477419455\n\n    test 2831 77 77.084099185826 Phi(tan=4.36067, x=0.224951, y=0.980937): 4.331475874284\n    test 2832 77 77.042113102652 Beta(tan=4.34605, x=0.224951, y=0.977648): 4.331475874284\n    test 2833 77 77.000000000000 Theta(tan=4.33148, x=0.224951, y=0.97437): 4.331475874284\n    test 2834 77 77.021096305787 Mu(tan=4.33876, x=0.224592, y=0.974453), iteration=3: 4.331475874284\n    test 2835 77 77.000089569308 Chi(tan=4.33151, x=1.0, y=4.33151), iteration=2: 4.331475874284\n    test 2836 77 77.028100210930 Xi(tan=4.34119, x=0.450962, y=1.95771), iteration=3: 4.331475874284\n\n    test 2837 77 77.084099185826 Phi(tan=4.36067, x=0.223521, y=0.974699): 4.331475874284\n    test 2838 77 77.042113102652 Beta(tan=4.34605, x=0.224235, y=0.974535): 4.331475874284\n    test 2839 77 77.000000000000 Theta(tan=4.33148, x=0.224951, y=0.97437): 4.331475874284\n    test 2840 77 77.021096305787 Mu(tan=4.33876, x=0.224592, y=0.974453): 4.331475874284\n    test 2841 77 77.000089569308 Chi(tan=4.33151, x=0.22495, y=0.97437): 4.331475874284\n    test 2842 77 77.028100210930 Xi(tan=4.34119, x=0.224473, y=0.97448): 4.331475874284\n\n    test 2843 84 84.039876185217 Phi(tan=9.57849, x=0.104528, y=1.00122): 9.514364454223\n    test 2844 84 84.019970846274 Beta(tan=9.54637, x=0.104528, y=0.997868): 9.514364454223\n    test 2845 84 84.000000000000 Theta(tan=9.51436, x=0.104528, y=0.994522): 9.514364454223\n    test 2846 84 84.010005927895 Mu(tan=9.53037, x=0.104355, y=0.99454), iteration=3: 9.514364454223\n    test 2847 84 84.000044242373 Chi(tan=9.51444, x=1.0, y=9.51444), iteration=2: 9.514364454223\n    test 2848 84 84.013326954497 Xi(tan=9.5357, x=0.209531, y=1.99802), iteration=3: 9.514364454223\n\n    test 2849 84 84.039876185217 Phi(tan=9.57849, x=0.103836, y=0.994594): 9.514364454223\n    test 2850 84 84.019970846274 Beta(tan=9.54637, x=0.104182, y=0.994558): 9.514364454223\n    test 2851 84 84.000000000000 Theta(tan=9.51436, x=0.104528, y=0.994522): 9.514364454223\n    test 2852 84 84.010005927895 Mu(tan=9.53037, x=0.104355, y=0.99454): 9.514364454223\n    test 2853 84 84.000044242373 Chi(tan=9.51444, x=0.104528, y=0.994522): 9.514364454223\n    test 2854 84 84.013326954497 Xi(tan=9.5357, x=0.104297, y=0.994546): 9.514364454223\n\n    test 2855 91 90.993306965793 Phi(tan=-57.6761, x=-0.0174524, y=1.00659): -57.289961630759\n    test 2856 91 90.996647866757 Beta(tan=-57.4827, x=-0.0174524, y=1.00321): -57.289961630759\n    test 2857 91 91.000000000000 Theta(tan=-57.29, x=-0.0174524, y=0.999848): -57.289961630759\n    test 2858 91 90.998320417403 Mu(tan=-57.3864, x=-0.0174231, y=0.999848), iteration=3: -57.289961630759\n    test 2859 91 90.999992494484 Chi(tan=-57.2904, x=-1, y=57.2904), iteration=3: -57.289961630759\n    test 2860 91 90.997762994841 Xi(tan=-57.4184, x=-0.0349831, y=2.00868), iteration=3: -57.289961630759\n\n    test 2861 91 90.993306965793 Phi(tan=-57.6761, x=-0.0173356, y=0.99985): -57.289961630760  FAILED, KNOWN (4.3409e-15), expected -57.289961630759\n    test 2862 91 90.996647866757 Beta(tan=-57.4827, x=-0.0173939, y=0.999849): -57.289961630759\n    test 2863 91 91.000000000000 Theta(tan=-57.29, x=-0.0174524, y=0.999848): -57.289961630759\n    test 2864 91 90.998320417403 Mu(tan=-57.3864, x=-0.0174231, y=0.999848): -57.289961630760  FAILED, KNOWN (4.3409e-15), expected -57.289961630759\n    test 2865 91 90.999992494484 Chi(tan=-57.2904, x=-0.0174523, y=0.999848): -57.289961630760  FAILED, KNOWN (3.72077e-15), expected -57.289961630759\n    test 2866 91 90.997762994841 Xi(tan=-57.4184, x=-0.0174134, y=0.999848): -57.289961630760  FAILED, KNOWN (2.85259e-15), expected -57.289961630759\n\n    test 2867 98 97.947131466338 Phi(tan=-7.16332, x=-0.139173, y=0.996942): -7.115369722384\n    test 2868 98 97.973523052479 Beta(tan=-7.13931, x=-0.139173, y=0.993599): -7.115369722384\n    test 2869 98 98.000000000000 Theta(tan=-7.11537, x=-0.139173, y=0.990268): -7.115369722384\n    test 2870 98 97.986734807520 Mu(tan=-7.12734, x=-0.138944, y=0.9903), iteration=3: -7.115369722384\n    test 2871 98 97.999941842742 Chi(tan=-7.11542, x=-1, y=7.11542), iteration=3: -7.115369722384\n    test 2872 98 97.982331755375 Xi(tan=-7.13133, x=-0.278982, y=1.98951), iteration=3: -7.115369722384\n\n    test 2873 98 97.947131466338 Phi(tan=-7.16332, x=-0.138259, y=0.990396): -7.115369722384\n    test 2874 98 97.973523052479 Beta(tan=-7.13931, x=-0.138715, y=0.990332): -7.115369722384\n    test 2875 98 98.000000000000 Theta(tan=-7.11537, x=-0.139173, y=0.990268): -7.115369722384\n    test 2876 98 97.986734807520 Mu(tan=-7.12734, x=-0.138944, y=0.9903): -7.115369722384\n    test 2877 98 97.999941842742 Chi(tan=-7.11542, x=-0.139172, y=0.990268): -7.115369722384\n    test 2878 98 97.982331755375 Xi(tan=-7.13133, x=-0.138868, y=0.990311): -7.115369722384\n\n    test 2879 105 104.904067139653 Phi(tan=-3.7572, x=-0.258819, y=0.972436): -3.732050807569\n    test 2880 105 104.951963747366 Beta(tan=-3.74461, x=-0.258819, y=0.969175): -3.732050807569\n    test 2881 105 105.000000000000 Theta(tan=-3.73205, x=-0.258819, y=0.965926): -3.732050807569\n    test 2882 105 104.975938169742 Mu(tan=-3.73833, x=-0.258413, y=0.966034), iteration=3: -3.732050807569\n    test 2883 105 104.999899588330 Chi(tan=-3.73208, x=-1, y=3.73208), iteration=3: -3.732050807569\n    test 2884 105 104.967948816895 Xi(tan=-3.74042, x=-0.518877, y=1.94082), iteration=2: -3.732050807569\n\n    test 2885 105 104.904067139653 Phi(tan=-3.7572, x=-0.257201, y=0.966358): -3.732050807569\n    test 2886 105 104.951963747366 Beta(tan=-3.74461, x=-0.258009, y=0.966142): -3.732050807569\n    test 2887 105 105.000000000000 Theta(tan=-3.73205, x=-0.258819, y=0.965926): -3.732050807569\n    test 2888 105 104.975938169742 Mu(tan=-3.73833, x=-0.258413, y=0.966034): -3.732050807569\n    test 2889 105 104.999899588330 Chi(tan=-3.73208, x=-0.258817, y=0.965926): -3.732050807569\n    test 2890 105 104.967948816895 Xi(tan=-3.74042, x=-0.258279, y=0.96607): -3.732050807569\n\n    test 2891 112 111.866653486751 Phi(tan=-2.49177, x=-0.374607, y=0.933433): -2.475086853416\n    test 2892 112 111.933246025813 Beta(tan=-2.48341, x=-0.374607, y=0.930303): -2.475086853416\n    test 2893 112 112.000000000000 Theta(tan=-2.47509, x=-0.374607, y=0.927184): -2.475086853416\n    test 2894 112 111.966572499608 Mu(tan=-2.47925, x=-0.374066, y=0.927402), iteration=3: -2.475086853416\n    test 2895 112 111.999871386688 Chi(tan=-2.4751, x=-1, y=2.4751), iteration=3: -2.475086853416\n    test 2896 112 111.955467801390 Xi(tan=-2.48064, x=-0.751129, y=1.86328), iteration=2: -2.475086853416\n\n    test 2897 112 111.866653486751 Phi(tan=-2.49177, x=-0.372448, y=0.928053): -2.475086853416\n    test 2898 112 111.933246025813 Beta(tan=-2.48341, x=-0.373526, y=0.92762): -2.475086853416\n    test 2899 112 112.000000000000 Theta(tan=-2.47509, x=-0.374607, y=0.927184): -2.475086853416\n    test 2900 112 111.966572499608 Mu(tan=-2.47925, x=-0.374066, y=0.927402): -2.475086853416\n    test 2901 112 111.999871386688 Chi(tan=-2.4751, x=-0.374605, y=0.927185): -2.475086853416\n    test 2902 112 111.955467801390 Xi(tan=-2.48064, x=-0.373886, y=0.927475): -2.475086853416\n\n    test 2903 119 118.837105586950 Phi(tan=-1.81621, x=-0.48481, y=0.880514): -1.804047755271\n    test 2904 119 118.918479987923 Beta(tan=-1.81012, x=-0.48481, y=0.877562): -1.804047755271\n    test 2905 119 119.000000000000 Theta(tan=-1.80405, x=-0.48481, y=0.87462): -1.804047755271\n    test 2906 119 118.959194442963 Mu(tan=-1.80708, x=-0.484187, y=0.874965), iteration=3: -1.804047755271\n    test 2907 119 118.999860178783 Chi(tan=-1.80406, x=-1, y=1.80406), iteration=3: -1.804047755271\n    test 2908 119 118.945629859635 Xi(tan=-1.80809, x=-0.972305, y=1.75802), iteration=3: -1.804047755271\n\n    test 2909 119 118.837105586950 Phi(tan=-1.81621, x=-0.482321, y=0.875995): -1.804047755271\n    test 2910 119 118.918479987923 Beta(tan=-1.81012, x=-0.483565, y=0.875309): -1.804047755271\n    test 2911 119 119.000000000000 Theta(tan=-1.80405, x=-0.48481, y=0.87462): -1.804047755271\n    test 2912 119 118.959194442963 Mu(tan=-1.80708, x=-0.484187, y=0.874965): -1.804047755271\n    test 2913 119 118.999860178783 Chi(tan=-1.80406, x=-0.484807, y=0.874621): -1.804047755271\n    test 2914 119 118.945629859635 Xi(tan=-1.80809, x=-0.483979, y=0.875079): -1.804047755271\n\n    test 2915 126 125.817184307945 Phi(tan=-1.38566, x=-0.587785, y=0.814469): -1.376381920471\n    test 2916 126 125.908544256035 Beta(tan=-1.38101, x=-0.587785, y=0.811739): -1.376381920471\n    test 2917 126 126.000000000000 Theta(tan=-1.37638, x=-0.587785, y=0.809017): -1.376381920471\n    test 2918 126 125.954242166425 Mu(tan=-1.3787, x=-0.587139, y=0.809486), iteration=2: -1.376381920471\n    test 2919 126 125.999865716658 Chi(tan=-1.37639, x=-1, y=1.37639), iteration=3: -1.376381920471\n    test 2920 126 125.939019715793 Xi(tan=-1.37947, x=-1.17912, y=1.62655), iteration=2: -1.376381920471\n\n    test 2921 126 125.817184307945 Phi(tan=-1.38566, x=-0.585201, y=0.810888): -1.376381920471\n    test 2922 126 125.908544256035 Beta(tan=-1.38101, x=-0.586493, y=0.809954): -1.376381920471\n    test 2923 126 126.000000000000 Theta(tan=-1.37638, x=-0.587785, y=0.809017): -1.376381920471\n    test 2924 126 125.954242166425 Mu(tan=-1.3787, x=-0.587139, y=0.809486): -1.376381920471\n    test 2925 126 125.999865716658 Chi(tan=-1.37639, x=-0.587783, y=0.809018): -1.376381920471\n    test 2926 126 125.939019715793 Xi(tan=-1.37947, x=-0.586924, y=0.809642): -1.376381920471\n\n    test 2927 133 132.808090472544 Phi(tan=-1.0796, x=-0.681998, y=0.736283): -1.072368710025\n    test 2928 133 132.904033458108 Beta(tan=-1.07598, x=-0.681998, y=0.733814): -1.072368710025\n    test 2929 133 133.000000000000 Theta(tan=-1.07237, x=-0.681998, y=0.731354): -1.072368710025\n    test 2930 133 132.952009355583 Mu(tan=-1.07417, x=-0.681386, y=0.731925), iteration=2: -1.072368710025\n    test 2931 133 132.999884783382 Chi(tan=-1.07237, x=-1, y=1.07237), iteration=2: -1.072368710025\n    test 2932 133 132.936030863456 Xi(tan=-1.07477, x=-1.36848, y=1.4708), iteration=3: -1.072368710025\n\n    test 2933 133 132.808090472544 Phi(tan=-1.0796, x=-0.679545, y=0.733634): -1.072368710025\n    test 2934 133 132.904033458108 Beta(tan=-1.07598, x=-0.680772, y=0.732495): -1.072368710025\n    test 2935 133 133.000000000000 Theta(tan=-1.07237, x=-0.681998, y=0.731354): -1.072368710025\n    test 2936 133 132.952009355583 Mu(tan=-1.07417, x=-0.681386, y=0.731925): -1.072368710025\n    test 2937 133 132.999884783382 Chi(tan=-1.07237, x=-0.681997, y=0.731355): -1.072368710025\n    test 2938 133 132.936030863456 Xi(tan=-1.07477, x=-0.681181, y=0.732115): -1.072368710025\n\n    test 2939 140 139.810389526291 Phi(tan=-0.844755, x=-0.766044, y=0.64712): -0.839099631177\n    test 2940 140 139.905221888853 Beta(tan=-0.841922, x=-0.766044, y=0.64495): -0.839099631177\n    test 2941 140 140.000000000000 Theta(tan=-0.8391, x=-0.766044, y=0.642788): -0.839099631177\n    test 2942 140 139.952627882329 Mu(tan=-0.84051, x=-0.765513, y=0.643421), iteration=3: -0.839099631177\n    test 2943 140 139.999912050710 Chi(tan=-0.839102, x=-1, y=0.839102), iteration=3: -0.839099631177\n    test 2944 140 139.936841998365 Xi(tan=-0.84098, x=-1.53754, y=1.29304), iteration=2: -0.839099631177\n\n    test 2945 140 139.810389526291 Phi(tan=-0.844755, x=-0.763913, y=0.645319): -0.839099631177\n    test 2946 140 139.905221888853 Beta(tan=-0.841922, x=-0.76498, y=0.644054): -0.839099631177\n    test 2947 140 140.000000000000 Theta(tan=-0.8391, x=-0.766044, y=0.642788): -0.839099631177\n    test 2948 140 139.952627882329 Mu(tan=-0.84051, x=-0.765513, y=0.643421): -0.839099631177\n    test 2949 140 139.999912050710 Chi(tan=-0.839102, x=-0.766043, y=0.642789): -0.839099631177\n    test 2950 140 139.936841998365 Xi(tan=-0.84098, x=-0.765335, y=0.643632): -0.839099631177\n\n    test 2951 147 146.823972083650 Phi(tan=-0.653784, x=-0.838671, y=0.54831): -0.649407593198\n    test 2952 147 146.912045740495 Beta(tan=-0.651592, x=-0.838671, y=0.546471): -0.649407593198\n    test 2953 147 147.000000000000 Theta(tan=-0.649408, x=-0.838671, y=0.544639): -0.649407593198\n    test 2954 147 146.956060147954 Mu(tan=-0.650498, x=-0.838253, y=0.545282), iteration=2: -0.649407593198\n    test 2955 147 146.999941372376 Chi(tan=-0.649409, x=-1, y=0.649409), iteration=2: -0.649407593198\n    test 2956 147 146.941406134703 Xi(tan=-0.650863, x=-1.68375, y=1.09589), iteration=3: -0.649407593198\n\n    test 2957 147 146.823972083650 Phi(tan=-0.653784, x=-0.836993, y=0.547213): -0.649407593198\n    test 2958 147 146.912045740495 Beta(tan=-0.651592, x=-0.837834, y=0.545926): -0.649407593198\n    test 2959 147 147.000000000000 Theta(tan=-0.649408, x=-0.838671, y=0.544639): -0.649407593198\n    test 2960 147 146.956060147954 Mu(tan=-0.650498, x=-0.838253, y=0.545282): -0.649407593198\n    test 2961 147 146.999941372376 Chi(tan=-0.649409, x=-0.83867, y=0.54464): -0.649407593198\n    test 2962 147 146.941406134703 Xi(tan=-0.650863, x=-0.838113, y=0.545496): -0.649407593198\n\n    test 2963 154 153.848054049875 Phi(tan=-0.49102, x=-0.898794, y=0.441326): -0.487732588566\n    test 2964 154 153.924105301481 Beta(tan=-0.489373, x=-0.898794, y=0.439846): -0.487732588566\n    test 2965 154 154.000000000000 Theta(tan=-0.487733, x=-0.898794, y=0.438371): -0.487732588566\n    test 2966 154 153.962101517600 Mu(tan=-0.488552, x=-0.898504, y=0.438966), iteration=3: -0.487732588566\n    test 2967 154 153.999967210311 Chi(tan=-0.487733, x=-1, y=0.487733), iteration=3: -0.487732588566\n    test 2968 154 153.949453115559 Xi(tan=-0.488825, x=-1.80488, y=0.882271), iteration=3: -0.487732588566\n\n    test 2969 154 153.848054049875 Phi(tan=-0.49102, x=-0.897628, y=0.440753): -0.487732588566\n    test 2970 154 153.924105301481 Beta(tan=-0.489373, x=-0.898213, y=0.439561): -0.487732588566\n    test 2971 154 154.000000000000 Theta(tan=-0.487733, x=-0.898794, y=0.438371): -0.487732588566\n    test 2972 154 153.962101517600 Mu(tan=-0.488552, x=-0.898504, y=0.438966): -0.487732588566\n    test 2973 154 153.999967210311 Chi(tan=-0.487733, x=-0.898794, y=0.438372): -0.487732588566\n    test 2974 154 153.949453115559 Xi(tan=-0.488825, x=-0.898407, y=0.439164): -0.487732588566\n\n    test 2975 161 160.881217808592 Phi(tan=-0.346648, x=-0.945519, y=0.327762): -0.344327613290\n    test 2976 161 160.940687365843 Beta(tan=-0.345486, x=-0.945519, y=0.326663): -0.344327613290\n    test 2977 161 161.000000000000 Theta(tan=-0.344328, x=-0.945519, y=0.325568): -0.344327613290\n    test 2978 161 160.970392653926 Mu(tan=-0.344906, x=-0.94535, y=0.326057), iteration=3: -0.344327613290\n    test 2979 161 160.999985859992 Chi(tan=-0.344328, x=-1, y=0.344328), iteration=3: -0.344327613290\n    test 2980 161 160.960505433888 Xi(tan=-0.345099, x=-1.89908, y=0.655369), iteration=3: -0.344327613290\n\n    test 2981 161 160.881217808592 Phi(tan=-0.346648, x=-0.944842, y=0.327528): -0.344327613290\n    test 2982 161 160.940687365843 Beta(tan=-0.345486, x=-0.945181, y=0.326547): -0.344327613290\n    test 2983 161 161.000000000000 Theta(tan=-0.344328, x=-0.945519, y=0.325568): -0.344327613290\n    test 2984 161 160.970392653926 Mu(tan=-0.344906, x=-0.94535, y=0.326057): -0.344327613290\n    test 2985 161 160.999985859992 Chi(tan=-0.344328, x=-0.945518, y=0.325568): -0.344327613290\n    test 2986 161 160.960505433888 Xi(tan=-0.345099, x=-0.945294, y=0.32622): -0.344327613290\n\n    test 2987 168 167.921493317051 Phi(tan=-0.213989, x=-0.978148, y=0.209313): -0.212556561670\n    test 2988 168 167.960806838131 Beta(tan=-0.213272, x=-0.978148, y=0.208611): -0.212556561670\n    test 2989 168 168.000000000000 Theta(tan=-0.212557, x=-0.978148, y=0.207912): -0.212556561670\n    test 2990 168 167.980440972867 Mu(tan=-0.212913, x=-0.978077, y=0.208246), iteration=3: -0.212556561670\n    test 2991 168 167.999996188328 Chi(tan=-0.212557, x=-1, y=0.212557), iteration=3: -0.212556561670\n    test 2992 168 167.973906475806 Xi(tan=-0.213033, x=-1.96489, y=0.418585), iteration=3: -0.212556561670\n\n    test 2993 168 167.921493317051 Phi(tan=-0.213989, x=-0.977862, y=0.209252): -0.212556561670\n    test 2994 168 167.960806838131 Beta(tan=-0.213272, x=-0.978005, y=0.208581): -0.212556561670\n    test 2995 168 168.000000000000 Theta(tan=-0.212557, x=-0.978148, y=0.207912): -0.212556561670\n    test 2996 168 167.980440972867 Mu(tan=-0.212913, x=-0.978077, y=0.208246): -0.212556561670\n    test 2997 168 167.999996188328 Chi(tan=-0.212557, x=-0.978148, y=0.207912): -0.212556561670\n    test 2998 168 167.973906475806 Xi(tan=-0.213033, x=-0.978053, y=0.208357): -0.212556561670\n\n    test 2999 175 174.966475056686 Phi(tan=-0.0880783, x=-0.996195, y=0.0877431): -0.087488663526\n    test 3000 175 174.983265245736 Beta(tan=-0.087783, x=-0.996195, y=0.0874489): -0.087488663526\n    test 3001 175 175.000000000000 Theta(tan=-0.0874887, x=-0.996195, y=0.0871557): -0.087488663526\n    test 3002 175 174.991649917523 Mu(tan=-0.0876355, x=-0.996182, y=0.0873009), iteration=3: -0.087488663526\n    test 3003 175 174.999999713957 Chi(tan=-0.0874887, x=-1, y=0.0874887), iteration=3: -0.087488663526\n    test 3004 175 174.988859535139 Xi(tan=-0.0876846, x=-2.0013, y=0.175483), iteration=2: -0.087488663526\n\n    test 3005 175 174.966475056686 Phi(tan=-0.0880783, x=-0.996144, y=0.0877386): -0.087488663526\n    test 3006 175 174.983265245736 Beta(tan=-0.087783, x=-0.996169, y=0.0874467): -0.087488663526\n    test 3007 175 175.000000000000 Theta(tan=-0.0874887, x=-0.996195, y=0.0871557): -0.087488663526\n    test 3008 175 174.991649917523 Mu(tan=-0.0876355, x=-0.996182, y=0.0873009): -0.087488663526\n    test 3009 175 174.999999713957 Chi(tan=-0.0874887, x=-0.996195, y=0.0871557): -0.087488663526\n    test 3010 175 174.988859535139 Xi(tan=-0.0876846, x=-0.996178, y=0.0873494): -0.087488663526\n\n    test 3011 182 182.013467936189 Phi(tan=0.0351561, x=-0.999391, y=-0.0351347): 0.034920769492\n    test 3012 182 182.006722688009 Beta(tan=0.0350382, x=-0.999391, y=-0.0350169): 0.034920769492\n    test 3013 182 182.000000000000 Theta(tan=0.0349208, x=-0.999391, y=-0.0348995): 0.034920769492\n    test 3014 182 182.003354305769 Mu(tan=0.0349794, x=-0.999389, y=-0.034958), iteration=3: 0.034920769492\n    test 3015 182 182.000000018425 Chi(tan=0.0349208, x=-1, y=-0.0349208), iteration=2: 0.034920769492\n    test 3016 182 182.004475278247 Xi(tan=0.034999, x=-2.00775, y=-0.0702692), iteration=3: 0.034920769492\n\n    test 3017 182 182.013467936189 Phi(tan=0.0351561, x=-0.999383, y=-0.0351344): 0.034920769492\n    test 3018 182 182.006722688009 Beta(tan=0.0350382, x=-0.999387, y=-0.0350168): 0.034920769492\n    test 3019 182 182.000000000000 Theta(tan=0.0349208, x=-0.999391, y=-0.0348995): 0.034920769492\n    test 3020 182 182.003354305769 Mu(tan=0.0349794, x=-0.999389, y=-0.034958): 0.034920769492\n    test 3021 182 182.000000018425 Chi(tan=0.0349208, x=-0.999391, y=-0.0348995): 0.034920769492\n    test 3022 182 182.004475278247 Xi(tan=0.034999, x=-0.999388, y=-0.0349776): 0.034920769492\n\n    test 3023 189 189.059652780362 Phi(tan=0.159452, x=-0.987688, y=-0.157489): 0.158384440325\n    test 3024 189 189.029778772560 Beta(tan=0.158917, x=-0.987688, y=-0.156961): 0.158384440325\n    test 3025 189 189.000000000000 Theta(tan=0.158384, x=-0.987688, y=-0.156434): 0.158384440325\n    test 3026 189 189.014859673134 Mu(tan=0.15865, x=-0.987648, y=-0.156691), iteration=2: 0.158384440325\n    test 3027 189 189.000001639674 Chi(tan=0.158384, x=-1, y=-0.158384), iteration=3: 0.158384440325\n    test 3028 189 189.019824807860 Xi(tan=0.158739, x=-1.98414, y=-0.31496), iteration=3: 0.158384440325\n\n    test 3029 189 189.059652780362 Phi(tan=0.159452, x=-0.987525, y=-0.157463): 0.158384440325\n    test 3030 189 189.029778772560 Beta(tan=0.158917, x=-0.987607, y=-0.156948): 0.158384440325\n    test 3031 189 189.000000000000 Theta(tan=0.158384, x=-0.987688, y=-0.156434): 0.158384440325\n    test 3032 189 189.014859673134 Mu(tan=0.15865, x=-0.987648, y=-0.156691): 0.158384440325\n    test 3033 189 189.000001639674 Chi(tan=0.158384, x=-0.987688, y=-0.156434): 0.158384440325\n    test 3034 189 189.019824807860 Xi(tan=0.158739, x=-0.987634, y=-0.156776): 0.158384440325\n\n    test 3035 196 196.102260292825 Phi(tan=0.288678, x=-0.961262, y=-0.277495): 0.286745385759\n    test 3036 196 196.051057415277 Beta(tan=0.28771, x=-0.961262, y=-0.276565): 0.286745385759\n    test 3037 196 196.000000000000 Theta(tan=0.286745, x=-0.961262, y=-0.275637): 0.286745385759\n    test 3038 196 196.025483317057 Mu(tan=0.287227, x=-0.961139, y=-0.276065), iteration=2: 0.286745385759\n    test 3039 196 196.000008725999 Chi(tan=0.286746, x=-1, y=-0.286746), iteration=2: 0.286745385759\n    test 3040 196 196.033995121177 Xi(tan=0.287388, x=-1.93083, y=-0.554896), iteration=2: 0.286745385759\n\n    test 3041 196 196.102260292825 Phi(tan=0.288678, x=-0.960768, y=-0.277353): 0.286745385759\n    test 3042 196 196.051057415277 Beta(tan=0.28771, x=-0.961016, y=-0.276494): 0.286745385759\n    test 3043 196 196.000000000000 Theta(tan=0.286745, x=-0.961262, y=-0.275637): 0.286745385759\n    test 3044 196 196.025483317057 Mu(tan=0.287227, x=-0.961139, y=-0.276065): 0.286745385759\n    test 3045 196 196.000008725999 Chi(tan=0.286746, x=-0.961262, y=-0.275638): 0.286745385759\n    test 3046 196 196.033995121177 Xi(tan=0.287388, x=-0.961098, y=-0.276208): 0.286745385759\n\n    test 3047 203 203.138741606579 Phi(tan=0.427336, x=-0.920505, y=-0.393364): 0.424474816210\n    test 3048 203 203.069290086312 Beta(tan=0.425903, x=-0.920505, y=-0.392046): 0.424474816210\n    test 3049 203 203.000000000000 Theta(tan=0.424475, x=-0.920505, y=-0.390731): 0.424474816210\n    test 3050 203 203.034594657995 Mu(tan=0.425188, x=-0.920269, y=-0.391287), iteration=2: 0.424474816210\n    test 3051 203 203.000023787567 Chi(tan=0.424475, x=-1, y=-0.424475), iteration=2: 0.424474816210\n    test 3052 203 203.046143605881 Xi(tan=0.425426, x=-1.84864, y=-0.78646), iteration=2: 0.424474816210\n\n    test 3053 203 203.138741606579 Phi(tan=0.427336, x=-0.919556, y=-0.392959): 0.424474816210\n    test 3054 203 203.069290086312 Beta(tan=0.425903, x=-0.920032, y=-0.391844): 0.424474816210\n    test 3055 203 203.000000000000 Theta(tan=0.424475, x=-0.920505, y=-0.390731): 0.424474816210\n    test 3056 203 203.034594657995 Mu(tan=0.425188, x=-0.920269, y=-0.391287): 0.424474816210\n    test 3057 203 203.000023787567 Chi(tan=0.424475, x=-0.920505, y=-0.390732): 0.424474816210\n    test 3058 203 203.046143605881 Xi(tan=0.425426, x=-0.92019, y=-0.391472): 0.424474816210\n\n    test 3059 210 210.166923849507 Phi(tan=0.581241, x=-0.866025, y=-0.50337): 0.577350269190\n    test 3060 210 210.083392202979 Beta(tan=0.579293, x=-0.866025, y=-0.501682): 0.577350269190\n    test 3061 210 210.000000000000 Theta(tan=0.57735, x=-0.866025, y=-0.5): 0.577350269190\n    test 3062 210 210.041652569165 Mu(tan=0.57832, x=-0.865662, y=-0.500629), iteration=3: 0.577350269190\n    test 3063 210 210.000046858553 Chi(tan=0.577351, x=-1, y=-0.577351), iteration=2: 0.577350269190\n    test 3064 210 210.055548278686 Xi(tan=0.578644, x=-1.73885, y=-1.00618), iteration=3: 0.577350269190\n\n    test 3065 210 210.166923849507 Phi(tan=0.581241, x=-0.864565, y=-0.502521): 0.577350269190\n    test 3066 210 210.083392202979 Beta(tan=0.579293, x=-0.865297, y=-0.50126): 0.577350269190\n    test 3067 210 210.000000000000 Theta(tan=0.57735, x=-0.866025, y=-0.5): 0.577350269190\n    test 3068 210 210.041652569165 Mu(tan=0.57832, x=-0.865662, y=-0.500629): 0.577350269190\n    test 3069 210 210.000046858553 Chi(tan=0.577351, x=-0.866025, y=-0.500001): 0.577350269190\n    test 3070 210 210.055548278686 Xi(tan=0.578644, x=-0.86554, y=-0.500839): 0.577350269190\n\n    test 3071 217 217.185140504831 Phi(tan=0.758633, x=-0.798636, y=-0.605871): 0.753554050103\n    test 3072 217 217.092527888642 Beta(tan=0.756089, x=-0.798636, y=-0.60384): 0.753554050103\n    test 3073 217 217.000000000000 Theta(tan=0.753554, x=-0.798636, y=-0.601815): 0.753554050103\n    test 3074 217 217.046237489147 Mu(tan=0.75482, x=-0.79815, y=-0.602459), iteration=2: 0.753554050103\n    test 3075 217 217.000075282212 Chi(tan=0.753556, x=-1, y=-0.753556), iteration=3: 0.753554050103\n    test 3076 217 217.061650740215 Xi(tan=0.755242, x=-1.60314, y=-1.21076), iteration=2: 0.753554050103\n\n    test 3077 217 217.185140504831 Phi(tan=0.758633, x=-0.796687, y=-0.604393): 0.753554050103\n    test 3078 217 217.092527888642 Beta(tan=0.756089, x=-0.797663, y=-0.603104): 0.753554050103\n    test 3079 217 217.000000000000 Theta(tan=0.753554, x=-0.798636, y=-0.601815): 0.753554050103\n    test 3080 217 217.046237489147 Mu(tan=0.75482, x=-0.79815, y=-0.602459): 0.753554050103\n    test 3081 217 217.000075282212 Chi(tan=0.753556, x=-0.798635, y=-0.601816): 0.753554050103\n    test 3082 217 217.061650740215 Xi(tan=0.755242, x=-0.797987, y=-0.602674): 0.753554050103\n\n    test 3083 224 224.192328540028 Phi(tan=0.972197, x=-0.71934, y=-0.69934): 0.965688774807\n    test 3084 224 224.096159176144 Beta(tan=0.968937, x=-0.71934, y=-0.696995): 0.965688774807\n    test 3085 224 224.000000000000 Theta(tan=0.965689, x=-0.71934, y=-0.694658): 0.965688774807\n    test 3086 224 224.048076415859 Mu(tan=0.967312, x=-0.718757, y=-0.695262), iteration=3: 0.965688774807\n    test 3087 224 224.000104179110 Chi(tan=0.965692, x=-1, y=-0.965692), iteration=3: 0.965688774807\n    test 3088 224 224.064089278462 Xi(tan=0.967853, x=-1.44358, y=-1.39717), iteration=3: 0.965688774807\n\n    test 3089 224 224.192328540028 Phi(tan=0.972197, x=-0.717004, y=-0.697069): 0.965688774807\n    test 3090 224 224.096159176144 Beta(tan=0.968937, x=-0.718173, y=-0.695865): 0.965688774807\n    test 3091 224 224.000000000000 Theta(tan=0.965689, x=-0.71934, y=-0.694658): 0.965688774807\n    test 3092 224 224.048076415859 Mu(tan=0.967312, x=-0.718757, y=-0.695262): 0.965688774807\n    test 3093 224 224.000104179110 Chi(tan=0.965692, x=-0.719339, y=-0.69466): 0.965688774807\n    test 3094 224 224.064089278462 Xi(tan=0.967853, x=-0.718562, y=-0.695463): 0.965688774807\n\n    test 3095 231 231.188087005479 Phi(tan=1.24322, x=-0.62932, y=-0.782384): 1.234897156535\n    test 3096 231 231.094076843128 Beta(tan=1.23905, x=-0.62932, y=-0.77976): 1.234897156535\n    test 3097 231 231.000000000000 Theta(tan=1.2349, x=-0.62932, y=-0.777146): 1.234897156535\n    test 3098 231 231.047059277252 Mu(tan=1.23697, x=-0.628682, y=-0.777663), iteration=3: 1.234897156535\n    test 3099 231 231.000127493216 Chi(tan=1.2349, x=-1, y=-1.2349), iteration=3: 1.234897156535\n    test 3100 231 231.062720168394 Xi(tan=1.23766, x=-1.26258, y=-1.56265), iteration=3: 1.234897156535\n\n    test 3101 231 231.188087005479 Phi(tan=1.24322, x=-0.626766, y=-0.779208): 1.234897156535\n    test 3102 231 231.094076843128 Beta(tan=1.23905, x=-0.628044, y=-0.778178): 1.234897156535\n    test 3103 231 231.000000000000 Theta(tan=1.2349, x=-0.62932, y=-0.777146): 1.234897156535\n    test 3104 231 231.047059277252 Mu(tan=1.23697, x=-0.628682, y=-0.777663): 1.234897156535\n    test 3105 231 231.000127493216 Chi(tan=1.2349, x=-0.629319, y=-0.777147): 1.234897156535\n    test 3106 231 231.062720168394 Xi(tan=1.23766, x=-0.628469, y=-0.777834): 1.234897156535\n\n    test 3107 238 238.172694719424 Phi(tan=1.61112, x=-0.529919, y=-0.853764): 1.600334529041\n    test 3108 238 238.086411314589 Beta(tan=1.60572, x=-0.529919, y=-0.850901): 1.600334529041\n    test 3109 238 238.000000000000 Theta(tan=1.60033, x=-0.529919, y=-0.848048): 1.600334529041\n    test 3110 238 238.043245666868 Mu(tan=1.60303, x=-0.529279, y=-0.848448), iteration=3: 1.600334529041\n    test 3111 238 238.000139371942 Chi(tan=1.60034, x=-1, y=-1.60034), iteration=3: 1.600334529041\n    test 3112 238 238.057625944391 Xi(tan=1.60392, x=-1.06288, y=-1.70478), iteration=3: 1.600334529041\n\n    test 3113 238 238.172694719424 Phi(tan=1.61112, x=-0.527361, y=-0.849641): 1.600334529041\n    test 3114 238 238.086411314589 Beta(tan=1.60572, x=-0.52864, y=-0.848846): 1.600334529041\n    test 3115 238 238.000000000000 Theta(tan=1.60033, x=-0.529919, y=-0.848048): 1.600334529041\n    test 3116 238 238.043245666868 Mu(tan=1.60303, x=-0.529279, y=-0.848448): 1.600334529041\n    test 3117 238 238.000139371942 Chi(tan=1.60034, x=-0.529917, y=-0.848049): 1.600334529041\n    test 3118 238 238.057625944391 Xi(tan=1.60392, x=-0.529066, y=-0.848581): 1.600334529041\n\n    test 3119 245 245.147087439517 Phi(tan=2.15896, x=-0.422618, y=-0.912416): 2.144506920510\n    test 3120 245 245.073623344306 Beta(tan=2.15172, x=-0.422618, y=-0.909357): 2.144506920510\n    test 3121 245 245.000000000000 Theta(tan=2.14451, x=-0.422618, y=-0.906308): 2.144506920510\n    test 3122 245 245.036861496413 Mu(tan=2.14811, x=-0.422035, y=-0.906579), iteration=3: 2.144506920510\n    test 3123 245 245.000135557054 Chi(tan=2.14452, x=-1, y=-2.14452), iteration=3: 2.144506920510\n    test 3124 245 245.049110215384 Xi(tan=2.14931, x=-0.847471, y=-1.82148), iteration=3: 2.144506920510\n\n    test 3125 245 245.147087439517 Phi(tan=2.15896, x=-0.42029, y=-0.90739): 2.144506920510\n    test 3126 245 245.073623344306 Beta(tan=2.15172, x=-0.421453, y=-0.90685): 2.144506920510\n    test 3127 245 245.000000000000 Theta(tan=2.14451, x=-0.422618, y=-0.906308): 2.144506920510\n    test 3128 245 245.036861496413 Mu(tan=2.14811, x=-0.422035, y=-0.906579): 2.144506920510\n    test 3129 245 245.000135557054 Chi(tan=2.14452, x=-0.422616, y=-0.906309): 2.144506920510\n    test 3130 245 245.049110215384 Xi(tan=2.14931, x=-0.421841, y=-0.90667): 2.144506920510\n\n    test 3131 252 252.112797334151 Phi(tan=3.09843, x=-0.309017, y=-0.957466): 3.077683537175\n    test 3132 252 252.056475395211 Beta(tan=3.08804, x=-0.309017, y=-0.954256): 3.077683537175\n    test 3133 252 252.000000000000 Theta(tan=3.07768, x=-0.309017, y=-0.951057): 3.077683537175\n    test 3134 252 252.028285720189 Mu(tan=3.08286, x=-0.308547, y=-0.951209), iteration=3: 3.077683537175\n    test 3135 252 252.000114461007 Chi(tan=3.0777, x=-1, y=-3.0777), iteration=3: 3.077683537175\n    test 3136 252 252.037679397301 Xi(tan=3.08458, x=-0.619552, y=-1.91106), iteration=3: 3.077683537175\n\n    test 3137 252 252.112797334151 Phi(tan=3.09843, x=-0.307144, y=-0.951663): 3.077683537175\n    test 3138 252 252.056475395211 Beta(tan=3.08804, x=-0.308079, y=-0.951361): 3.077683537175\n    test 3139 252 252.000000000000 Theta(tan=3.07768, x=-0.309017, y=-0.951057): 3.077683537175\n    test 3140 252 252.028285720189 Mu(tan=3.08286, x=-0.308547, y=-0.951209): 3.077683537175\n    test 3141 252 252.000114461007 Chi(tan=3.0777, x=-0.309015, y=-0.951057): 3.077683537175\n    test 3142 252 252.037679397301 Xi(tan=3.08458, x=-0.308391, y=-0.95126): 3.077683537175\n\n    test 3143 259 259.071859476624 Phi(tan=5.17923, x=-0.190809, y=-0.988243): 5.144554015970\n    test 3144 259 259.035985707307 Beta(tan=5.16186, x=-0.190809, y=-0.984929): 5.144554015970\n    test 3145 259 259.000000000000 Theta(tan=5.14455, x=-0.190809, y=-0.981627): 5.144554015970\n    test 3146 259 259.018027889335 Mu(tan=5.15321, x=-0.1905, y=-0.981687), iteration=3: 5.144554015970\n    test 3147 259 259.000077676273 Chi(tan=5.14459, x=-1, y=-5.14459), iteration=3: 5.144554015970\n    test 3148 259 259.024012504065 Xi(tan=5.15609, x=-0.382505, y=-1.97223), iteration=2: 5.144554015970\n\n    test 3149 259 259.071859476624 Phi(tan=5.17923, x=-0.189578, y=-0.981866): 5.144554015970\n    test 3150 259 259.035985707307 Beta(tan=5.16186, x=-0.190192, y=-0.981747): 5.144554015970\n    test 3151 259 259.000000000000 Theta(tan=5.14455, x=-0.190809, y=-0.981627): 5.144554015970\n    test 3152 259 259.018027889335 Mu(tan=5.15321, x=-0.1905, y=-0.981687): 5.144554015970\n    test 3153 259 259.000077676273 Chi(tan=5.14459, x=-0.190808, y=-0.981627): 5.144554015970\n    test 3154 259 259.024012504065 Xi(tan=5.15609, x=-0.190398, y=-0.981707): 5.144554015970\n\n    test 3155 266 266.026691465344 Phi(tan=14.397, x=-0.0697565, y=-1.00429): 14.300666256712\n    test 3156 266 266.013367926454 Beta(tan=14.3488, x=-0.0697565, y=-1.00092): 14.300666256712\n    test 3157 266 266.000000000000 Theta(tan=14.3007, x=-0.0697565, y=-0.997564): 14.300666256712\n    test 3158 266 266.006697857429 Mu(tan=14.3247, x=-0.0696399, y=-0.997572), iteration=2: 14.300666256712\n    test 3159 266 266.000029795215 Chi(tan=14.3008, x=-1, y=-14.3008), iteration=3: 14.300666256712\n    test 3160 266 266.008920822994 Xi(tan=14.3327, x=-0.139827, y=-2.00411), iteration=3: 14.300666256712\n\n    test 3161 266 266.026691465344 Phi(tan=14.397, x=-0.0692917, y=-0.997596): 14.300666256712\n    test 3162 266 266.013367926454 Beta(tan=14.3488, x=-0.0695237, y=-0.99758): 14.300666256712\n    test 3163 266 266.000000000000 Theta(tan=14.3007, x=-0.0697565, y=-0.997564): 14.300666256712\n    test 3164 266 266.006697857429 Mu(tan=14.3247, x=-0.0696399, y=-0.997572): 14.300666256712\n    test 3165 266 266.000029795215 Chi(tan=14.3008, x=-0.069756, y=-0.997564): 14.300666256712\n    test 3166 266 266.008920822994 Xi(tan=14.3327, x=-0.0696012, y=-0.997575): 14.300666256712\n\n    test 3167 273 272.979953179188 Phi(tan=-19.2097, x=0.052336, y=-1.00536): -19.081136687728\n    test 3168 273 272.989959849669 Beta(tan=-19.1453, x=0.052336, y=-1.00199): -19.081136687728\n    test 3169 273 273.000000000000 Theta(tan=-19.0811, x=0.052336, y=-0.99863): -19.081136687728\n    test 3170 273 272.994969444902 Mu(tan=-19.1132, x=0.0522483, y=-0.998634), iteration=3: -19.081136687728\n    test 3171 273 272.999977574321 Chi(tan=-19.0813, x=1.0, y=-19.0813), iteration=3: -19.081136687728\n    test 3172 273 272.993299868195 Xi(tan=-19.1239, x=0.104907, y=-2.00624), iteration=3: -19.081136687728\n\n    test 3173 273 272.979953179188 Phi(tan=-19.2097, x=0.0519865, y=-0.998648): -19.081136687728\n    test 3174 273 272.989959849669 Beta(tan=-19.1453, x=0.052161, y=-0.998639): -19.081136687728\n    test 3175 273 273.000000000000 Theta(tan=-19.0811, x=0.052336, y=-0.99863): -19.081136687728\n    test 3176 273 272.994969444902 Mu(tan=-19.1132, x=0.0522483, y=-0.998634): -19.081136687728\n    test 3177 273 272.999977574321 Chi(tan=-19.0813, x=0.0523356, y=-0.99863): -19.081136687728\n    test 3178 273 272.993299868195 Xi(tan=-19.1239, x=0.0522192, y=-0.998636): -19.081136687728\n\n    test 3179 280 279.934394210279 Phi(tan=-5.7095, x=0.173648, y=-0.991445): -5.671281819618\n    test 3180 280 279.967145322218 Beta(tan=-5.69036, x=0.173648, y=-0.988121): -5.671281819618\n    test 3181 280 280.000000000000 Theta(tan=-5.67128, x=0.173648, y=-0.984808): -5.671281819618\n    test 3182 280 279.983540245263 Mu(tan=-5.68082, x=0.173365, y=-0.984858), iteration=3: -5.671281819618\n    test 3183 280 279.999928623941 Chi(tan=-5.67132, x=1.0, y=-5.67132), iteration=3: -5.671281819618\n    test 3184 280 279.978076430885 Xi(tan=-5.684, x=0.348099, y=-1.97859), iteration=2: -5.671281819618\n\n    test 3185 280 279.934394210279 Phi(tan=-5.7095, x=0.17252, y=-0.985006): -5.671281819618\n    test 3186 280 279.967145322218 Beta(tan=-5.69036, x=0.173083, y=-0.984907): -5.671281819618\n    test 3187 280 280.000000000000 Theta(tan=-5.67128, x=0.173648, y=-0.984808): -5.671281819618\n    test 3188 280 279.983540245263 Mu(tan=-5.68082, x=0.173365, y=-0.984858): -5.671281819618\n    test 3189 280 279.999928623941 Chi(tan=-5.67132, x=0.173647, y=-0.984808): -5.671281819618\n    test 3190 280 279.978076430885 Xi(tan=-5.684, x=0.173271, y=-0.984874): -5.671281819618\n\n    test 3191 287 286.892696785077 Phi(tan=-3.2929, x=0.292372, y=-0.96275): -3.270852618484\n    test 3192 287 286.946273607855 Beta(tan=-3.28186, x=0.292372, y=-0.959522): -3.270852618484\n    test 3193 287 287.000000000000 Theta(tan=-3.27085, x=0.292372, y=-0.956305): -3.270852618484\n    test 3194 287 286.973089996409 Mu(tan=-3.27636, x=0.291923, y=-0.956442), iteration=3: -3.270852618484\n    test 3195 287 286.999889910594 Chi(tan=-3.27088, x=1.0, y=-3.27088), iteration=3: -3.270852618484\n    test 3196 287 286.964153811789 Xi(tan=-3.27819, x=0.586167, y=-1.92156), iteration=3: -3.270852618484\n\n    test 3197 287 286.892696785077 Phi(tan=-3.2929, x=0.29058, y=-0.956851): -3.270852618484\n    test 3198 287 286.946273607855 Beta(tan=-3.28186, x=0.291475, y=-0.956578): -3.270852618484\n    test 3199 287 287.000000000000 Theta(tan=-3.27085, x=0.292372, y=-0.956305): -3.270852618484\n    test 3200 287 286.973089996409 Mu(tan=-3.27636, x=0.291923, y=-0.956442): -3.270852618484\n    test 3201 287 286.999889910594 Chi(tan=-3.27088, x=0.29237, y=-0.956305): -3.270852618484\n    test 3202 287 286.964153811789 Xi(tan=-3.27819, x=0.291773, y=-0.956487): -3.270852618484\n\n    test 3203 294 293.857322070702 Phi(tan=-2.26117, x=0.406737, y=-0.919702): -2.246036773904\n    test 3204 294 293.928580656019 Beta(tan=-2.25359, x=0.406737, y=-0.916619): -2.246036773904\n    test 3205 294 294.000000000000 Theta(tan=-2.24604, x=0.406737, y=-0.913545): -2.246036773904\n    test 3206 294 293.964240029727 Mu(tan=-2.24981, x=0.406166, y=-0.913799), iteration=2: -2.246036773904\n    test 3207 294 293.999866400612 Chi(tan=-2.24605, x=1.0, y=-2.24605), iteration=3: -2.246036773904\n    test 3208 294 293.952358418734 Xi(tan=-2.25107, x=0.815599, y=-1.83597), iteration=2: -2.246036773904\n\n    test 3209 294 293.857322070702 Phi(tan=-2.26117, x=0.40446, y=-0.914555): -2.246036773904\n    test 3210 294 293.928580656019 Beta(tan=-2.25359, x=0.405598, y=-0.914052): -2.246036773904\n    test 3211 294 294.000000000000 Theta(tan=-2.24604, x=0.406737, y=-0.913545): -2.246036773904\n    test 3212 294 293.964240029727 Mu(tan=-2.24981, x=0.406166, y=-0.913799): -2.246036773904\n    test 3213 294 293.999866400612 Chi(tan=-2.24605, x=0.406735, y=-0.913546): -2.246036773904\n    test 3214 294 293.952358418734 Xi(tan=-2.25107, x=0.405977, y=-0.913883): -2.246036773904\n\n    test 3215 301 300.830367699497 Phi(tan=-1.6755, x=0.515038, y=-0.862944): -1.664279482351\n    test 3216 301 300.915116613042 Beta(tan=-1.66988, x=0.515038, y=-0.860051): -1.664279482351\n    test 3217 301 301.000000000000 Theta(tan=-1.66428, x=0.515038, y=-0.857167): -1.664279482351\n    test 3218 301 300.957516242525 Mu(tan=-1.66708, x=0.514402, y=-0.857549), iteration=3: -1.664279482351\n    test 3219 301 300.999860142450 Chi(tan=-1.66429, x=1.0, y=-1.66429), iteration=3: -1.664279482351\n    test 3220 301 300.943390839029 Xi(tan=-1.66801, x=1.033, y=-1.72305), iteration=2: -1.664279482351\n\n    test 3221 301 300.830367699497 Phi(tan=-1.6755, x=0.512498, y=-0.858688): -1.664279482351\n    test 3222 301 300.915116613042 Beta(tan=-1.66988, x=0.513768, y=-0.857929): -1.664279482351\n    test 3223 301 301.000000000000 Theta(tan=-1.66428, x=0.515038, y=-0.857167): -1.664279482351\n    test 3224 301 300.957516242525 Mu(tan=-1.66708, x=0.514402, y=-0.857549): -1.664279482351\n    test 3225 301 300.999860142450 Chi(tan=-1.66429, x=0.515036, y=-0.857169): -1.664279482351\n    test 3226 301 300.943390839029 Xi(tan=-1.66801, x=0.514191, y=-0.857676): -1.664279482351\n\n    test 3227 308 307.813444106313 Phi(tan=-1.28857, x=0.615661, y=-0.793322): -1.279941632193\n    test 3228 308 307.906683665119 Beta(tan=-1.28425, x=0.615661, y=-0.790662): -1.279941632193\n    test 3229 308 308.000000000000 Theta(tan=-1.27994, x=0.615661, y=-0.788011): -1.279941632193\n    test 3230 308 307.953317819859 Mu(tan=-1.28209, x=0.615019, y=-0.788512), iteration=3: -1.279941632193\n    test 3231 308 307.999869987124 Chi(tan=-1.27995, x=1.0, y=-1.27995), iteration=2: -1.279941632193\n    test 3232 308 307.937784253619 Xi(tan=-1.28281, x=1.23513, y=-1.58444), iteration=3: -1.279941632193\n\n    test 3233 308 307.813444106313 Phi(tan=-1.28857, x=0.613092, y=-0.790011): -1.279941632193\n    test 3234 308 307.906683665119 Beta(tan=-1.28425, x=0.614377, y=-0.789012): -1.279941632193\n    test 3235 308 308.000000000000 Theta(tan=-1.27994, x=0.615661, y=-0.788011): -1.279941632193\n    test 3236 308 307.953317819859 Mu(tan=-1.28209, x=0.615019, y=-0.788512): -1.279941632193\n    test 3237 308 307.999869987124 Chi(tan=-1.27995, x=0.61566, y=-0.788012): -1.279941632193\n    test 3238 308 307.937784253619 Xi(tan=-1.28281, x=0.614805, y=-0.788679): -1.279941632193\n\n    test 3239 315 314.807576784018 Phi(tan=-1.00674, x=0.707107, y=-0.711872): -1.000000000000\n    test 3240 315 314.903787849420 Beta(tan=-1.00336, x=0.707107, y=-0.709486): -1.000000000000\n    test 3241 315 315.000000000000 Theta(tan=-1, x=0.707107, y=-0.707107): -1.000000000000\n    test 3242 315 314.951893574286 Mu(tan=-1.00168, x=0.706513, y=-0.7077), iteration=2: -1.000000000000\n    test 3243 315 314.999892003023 Chi(tan=-1, x=1.0, y=-1), iteration=3: -1.000000000000\n    test 3244 315 314.935872656555 Xi(tan=-1.00224, x=1.41897, y=-1.42215), iteration=3: -1.000000000000\n\n    test 3245 315 314.807576784018 Phi(tan=-1.00674, x=0.704728, y=-0.709478): -1.000000000000\n    test 3246 315 314.903787849420 Beta(tan=-1.00336, x=0.705918, y=-0.708293): -1.000000000000\n    test 3247 315 315.000000000000 Theta(tan=-1, x=0.707107, y=-0.707107): -1.000000000000\n    test 3248 315 314.951893574286 Mu(tan=-1.00168, x=0.706513, y=-0.7077): -1.000000000000\n    test 3249 315 314.999892003023 Chi(tan=-1, x=0.707105, y=-0.707108): -1.000000000000\n    test 3250 315 314.935872656555 Xi(tan=-1.00224, x=0.706315, y=-0.707898): -1.000000000000\n\n    test 3251 322 321.813140716820 Phi(tan=-0.786551, x=0.788011, y=-0.619811): -0.781285626507\n    test 3252 322 321.906607816751 Beta(tan=-0.783914, x=0.788011, y=-0.617733): -0.781285626507\n    test 3253 322 322.000000000000 Theta(tan=-0.781286, x=0.788011, y=-0.615661): -0.781285626507\n    test 3254 322 321.953327300103 Mu(tan=-0.782598, x=0.787509, y=-0.616303), iteration=2: -0.781285626507\n    test 3255 322 321.999920484161 Chi(tan=-0.781288, x=1.0, y=-0.781288), iteration=2: -0.781285626507\n    test 3256 322 321.937770794620 Xi(tan=-0.783036, x=1.58175, y=-1.23857), iteration=3: -0.781285626507\n\n    test 3257 322 321.813140716820 Phi(tan=-0.786551, x=0.785999, y=-0.618228): -0.781285626507\n    test 3258 322 321.906607816751 Beta(tan=-0.783914, x=0.787006, y=-0.616945): -0.781285626507\n    test 3259 322 322.000000000000 Theta(tan=-0.781286, x=0.788011, y=-0.615661): -0.781285626507\n    test 3260 322 321.953327300103 Mu(tan=-0.782598, x=0.787509, y=-0.616303): -0.781285626507\n    test 3261 322 321.999920484161 Chi(tan=-0.781288, x=0.78801, y=-0.615663): -0.781285626507\n    test 3262 322 321.937770794620 Xi(tan=-0.783036, x=0.787342, y=-0.616517): -0.781285626507\n\n    test 3263 329 328.829831943495 Phi(tan=-0.60491, x=0.857167, y=-0.518509): -0.600860619028\n    test 3264 329 328.914982672653 Beta(tan=-0.602882, x=0.857167, y=-0.516771): -0.600860619028\n    test 3265 329 329.000000000000 Theta(tan=-0.600861, x=0.857167, y=-0.515038): -0.600860619028\n    test 3266 329 328.957532983891 Mu(tan=-0.60187, x=0.856785, y=-0.515673), iteration=2: -0.600860619028\n    test 3267 329 328.999949315138 Chi(tan=-0.600862, x=1.0, y=-0.600862), iteration=3: -0.600860619028\n    test 3268 329 328.943367072053 Xi(tan=-0.602207, x=1.72101, y=-1.0364), iteration=2: -0.600860619028\n\n    test 3269 329 328.829831943495 Phi(tan=-0.60491, x=0.855634, y=-0.517582): -0.600860619028\n    test 3270 329 328.914982672653 Beta(tan=-0.602882, x=0.856402, y=-0.516309): -0.600860619028\n    test 3271 329 329.000000000000 Theta(tan=-0.600861, x=0.857167, y=-0.515038): -0.600860619028\n    test 3272 329 328.957532983891 Mu(tan=-0.60187, x=0.856785, y=-0.515673): -0.600860619028\n    test 3273 329 328.999949315138 Chi(tan=-0.600862, x=0.857167, y=-0.515039): -0.600860619028\n    test 3274 329 328.943367072053 Xi(tan=-0.602207, x=0.856658, y=-0.515885): -0.600860619028\n\n    test 3275 336 335.856679369063 Phi(tan=-0.448229, x=0.913545, y=-0.409478): -0.445228685309\n    test 3276 336 335.928419979560 Beta(tan=-0.446726, x=0.913545, y=-0.408105): -0.445228685309\n    test 3277 336 336.000000000000 Theta(tan=-0.445229, x=0.913545, y=-0.406737): -0.445228685309\n    test 3278 336 335.964260113259 Mu(tan=-0.445976, x=0.913292, y=-0.407306), iteration=3: -0.445228685309\n    test 3279 336 335.999973373434 Chi(tan=-0.445229, x=1.0, y=-0.445229), iteration=3: -0.445228685309\n    test 3280 336 335.952329907972 Xi(tan=-0.446226, x=1.83461, y=-0.818652), iteration=3: -0.445228685309\n\n    test 3281 336 335.856679369063 Phi(tan=-0.448229, x=0.912525, y=-0.409021): -0.445228685309\n    test 3282 336 335.928419979560 Beta(tan=-0.446726, x=0.913037, y=-0.407878): -0.445228685309\n    test 3283 336 336.000000000000 Theta(tan=-0.445229, x=0.913545, y=-0.406737): -0.445228685309\n    test 3284 336 335.964260113259 Mu(tan=-0.445976, x=0.913292, y=-0.407306): -0.445228685309\n    test 3285 336 335.999973373434 Chi(tan=-0.445229, x=0.913545, y=-0.406737): -0.445228685309\n    test 3286 336 335.952329907972 Xi(tan=-0.446226, x=0.913207, y=-0.407497): -0.445228685309\n\n    test 3287 343 342.892097596857 Phi(tan=-0.307791, x=0.956305, y=-0.294342): -0.305730681459\n    test 3288 343 342.946123810430 Beta(tan=-0.306759, x=0.956305, y=-0.293355): -0.305730681459\n    test 3289 343 343.000000000000 Theta(tan=-0.305731, x=0.956305, y=-0.292372): -0.305730681459\n    test 3290 343 342.973108720519 Mu(tan=-0.306244, x=0.956167, y=-0.292821), iteration=2: -0.305730681459\n    test 3291 343 342.999989640752 Chi(tan=-0.305731, x=1.0, y=-0.305731), iteration=3: -0.305730681459\n    test 3292 343 342.964127231800 Xi(tan=-0.306415, x=1.92083, y=-0.588572), iteration=2: -0.305730681459\n\n    test 3293 343 342.892097596857 Phi(tan=-0.307791, x=0.955752, y=-0.294172): -0.305730681459\n    test 3294 343 342.946123810430 Beta(tan=-0.306759, x=0.956029, y=-0.293271): -0.305730681459\n    test 3295 343 343.000000000000 Theta(tan=-0.305731, x=0.956305, y=-0.292372): -0.305730681459\n    test 3296 343 342.973108720519 Mu(tan=-0.306244, x=0.956167, y=-0.292821): -0.305730681459\n    test 3297 343 342.999989640752 Chi(tan=-0.305731, x=0.956305, y=-0.292372): -0.305730681459\n    test 3298 343 342.964127231800 Xi(tan=-0.306415, x=0.956122, y=-0.29297): -0.305730681459\n\n    test 3299 350 349.933978809966 Phi(tan=-0.177515, x=0.984808, y=-0.174818): -0.176326980708\n    test 3300 350 349.967041472227 Beta(tan=-0.17692, x=0.984808, y=-0.174232): -0.176326980708\n    test 3301 350 350.000000000000 Theta(tan=-0.176327, x=0.984808, y=-0.173648): -0.176326980708\n    test 3302 350 349.983553226337 Mu(tan=-0.176623, x=0.984758, y=-0.173931), iteration=3: -0.176326980708\n    test 3303 350 349.999997763945 Chi(tan=-0.176327, x=1.0, y=-0.176327), iteration=2: -0.176326980708\n    test 3304 350 349.978058004001 Xi(tan=-0.176722, x=1.97833, y=-0.349613), iteration=3: -0.176326980708\n\n    test 3305 350 349.933978809966 Phi(tan=-0.177515, x=0.984607, y=-0.174783): -0.176326980708\n    test 3306 350 349.967041472227 Beta(tan=-0.17692, x=0.984708, y=-0.174215): -0.176326980708\n    test 3307 350 350.000000000000 Theta(tan=-0.176327, x=0.984808, y=-0.173648): -0.176326980708\n    test 3308 350 349.983553226337 Mu(tan=-0.176623, x=0.984758, y=-0.173931): -0.176326980708\n    test 3309 350 349.999997763945 Chi(tan=-0.176327, x=0.984808, y=-0.173648): -0.176326980708\n    test 3310 350 349.978058004001 Xi(tan=-0.176722, x=0.984741, y=-0.174025): -0.176326980708\n\n    test 3311 357 356.979818816318 Phi(tan=-0.052761, x=0.99863, y=-0.0526887): -0.052407779283\n    test 3312 357 356.989926259040 Beta(tan=-0.0525841, x=0.99863, y=-0.052512): -0.052407779283\n    test 3313 357 357.000000000000 Theta(tan=-0.0524078, x=0.99863, y=-0.052336): -0.052407779283\n    test 3314 357 356.994973643713 Mu(tan=-0.0524957, x=0.998625, y=-0.0524236), iteration=3: -0.052407779283\n    test 3315 357 356.999999937910 Chi(tan=-0.0524078, x=1.0, y=-0.0524078), iteration=3: -0.052407779283\n    test 3316 357 356.993293907994 Xi(tan=-0.0525251, x=2.00621, y=-0.105377), iteration=3: -0.052407779283\n\n    test 3317 357 356.979818816318 Phi(tan=-0.052761, x=0.998611, y=-0.0526877): -0.052407779283\n    test 3318 357 356.989926259040 Beta(tan=-0.0525841, x=0.99862, y=-0.0525115): -0.052407779283\n    test 3319 357 357.000000000000 Theta(tan=-0.0524078, x=0.99863, y=-0.052336): -0.052407779283\n    test 3320 357 356.994973643713 Mu(tan=-0.0524957, x=0.998625, y=-0.0524236): -0.052407779283\n    test 3321 357 356.999999937910 Chi(tan=-0.0524078, x=0.99863, y=-0.052336): -0.052407779283\n    test 3322 357 356.993293907994 Xi(tan=-0.0525251, x=0.998623, y=-0.0524528): -0.052407779283\n\n    test 3323  0 0.000000000000 Phi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 3324  0 0.000000000000 Beta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 3325  0 0.000000000000 Theta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 3326  0 0.000000000000 Mu(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 3327  0 0.000000000000 Chi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 3328  0 0.000000000000 Xi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n\n    test 3329  0 0.000000000000 Phi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 3330  0 0.000000000000 Beta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 3331  0 0.000000000000 Theta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 3332  0 0.000000000000 Mu(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 3333  0 0.000000000000 Chi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 3334  0 0.000000000000 Xi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n\n    test 3335  7 7.031115657726 Phi(tan=0.123336, x=1.0, y=0.123336): 0.122784560903\n    test 3336  7 7.007776446248 Beta(tan=0.122922, x=1.0, y=0.122922): 0.122784560903\n    test 3337  7 6.984513160948 Theta(tan=0.12251, x=1.0, y=0.12251): 0.122784560903\n    test 3338  7 6.996121115499 Mu(tan=0.122716, x=0.992554, y=0.121802), iteration=2: 0.122784560903\n    test 3339  7 6.984513934967 Chi(tan=0.12251, x=1.0, y=0.12251), iteration=3: 0.122784560903\n    test 3340  7 7.000000000000 Xi(tan=0.122785, x=0.992546, y=0.121869): 0.122784560903\n\n    test 3341  7 7.031115657726 Phi(tan=0.123336, x=0.99248, y=0.122408): 0.122784560903\n    test 3342  7 7.007776446248 Beta(tan=0.122922, x=0.99253, y=0.122004): 0.122784560903\n    test 3343  7 6.984513160948 Theta(tan=0.12251, x=0.992579, y=0.121601): 0.122784560903\n    test 3344  7 6.996121115499 Mu(tan=0.122716, x=0.992554, y=0.121802): 0.122784560903\n    test 3345  7 6.984513934967 Chi(tan=0.12251, x=0.992579, y=0.121601): 0.122784560903\n    test 3346  7 7.000000000000 Xi(tan=0.122785, x=0.992546, y=0.121869): 0.122784560903\n\n    test 3347 14 14.060369141975 Phi(tan=0.250447, x=1.0, y=0.250447): 0.249328002843\n    test 3348 14 14.015088387186 Beta(tan=0.249608, x=1.0, y=0.249608): 0.249328002843\n    test 3349 14 13.969941668301 Theta(tan=0.248771, x=1.0, y=0.248771): 0.249328002843\n    test 3350 14 13.992473204804 Mu(tan=0.249188, x=0.970327, y=0.241794), iteration=3: 0.249328002843\n    test 3351 14 13.969947587506 Chi(tan=0.248771, x=1.0, y=0.248771), iteration=3: 0.249328002843\n    test 3352 14 14.000000000000 Xi(tan=0.249328, x=0.970296, y=0.241922): 0.249328002843\n\n    test 3353 14 14.060369141975 Phi(tan=0.250447, x=0.97004, y=0.242944): 0.249328002843\n    test 3354 14 14.015088387186 Beta(tan=0.249608, x=0.970232, y=0.242177): 0.249328002843\n    test 3355 14 13.969941668301 Theta(tan=0.248771, x=0.970423, y=0.241413): 0.249328002843\n    test 3356 14 13.992473204803 Mu(tan=0.249188, x=0.970327, y=0.241794): 0.249328002843\n    test 3357 14 13.969947587506 Chi(tan=0.248771, x=0.970422, y=0.241413): 0.249328002843\n    test 3358 14 14.000000000000 Xi(tan=0.249328, x=0.970296, y=0.241922): 0.249328002843\n\n    test 3359 21 21.086012125911 Phi(tan=0.385587, x=1.0, y=0.385587): 0.383864035035\n    test 3360 21 21.021499506340 Beta(tan=0.384295, x=1.0, y=0.384295): 0.383864035035\n    test 3361 21 20.957147588487 Theta(tan=0.383006, x=1.0, y=0.383006): 0.383864035035\n    test 3362 21 20.989273394164 Mu(tan=0.383649, x=0.933648, y=0.358193), iteration=3: 0.383864035035\n    test 3363 21 20.957166102443 Chi(tan=0.383007, x=1.0, y=0.383007), iteration=2: 0.383864035035\n    test 3364 21 21.000000000000 Xi(tan=0.383864, x=0.93358, y=0.358368): 0.383864035035\n\n    test 3365 21 21.086012125911 Phi(tan=0.385587, x=0.933041, y=0.359769): 0.383864035035\n    test 3366 21 21.021499506340 Beta(tan=0.384295, x=0.933446, y=0.358718): 0.383864035035\n    test 3367 21 20.957147588487 Theta(tan=0.383006, x=0.933848, y=0.35767): 0.383864035035\n    test 3368 21 20.989273394164 Mu(tan=0.383649, x=0.933648, y=0.358193): 0.383864035035\n    test 3369 21 20.957166102443 Chi(tan=0.383007, x=0.933848, y=0.35767): 0.383864035035\n    test 3370 21 21.000000000000 Xi(tan=0.383864, x=0.93358, y=0.358368): 0.383864035035\n\n    test 3371 28 28.106516446309 Phi(tan=0.534096, x=1.0, y=0.534096): 0.531709431661\n    test 3372 28 28.026628049399 Beta(tan=0.532306, x=1.0, y=0.532306): 0.531709431661\n    test 3373 28 27.946889336829 Theta(tan=0.530521, x=1.0, y=0.530521): 0.531709431661\n    test 3374 28 27.986711967080 Mu(tan=0.531412, x=0.883056, y=0.469267), iteration=3: 0.531709431661\n    test 3375 28 27.946928706111 Chi(tan=0.530522, x=1.0, y=0.530522), iteration=2: 0.531709431661\n    test 3376 28 28.000000000000 Xi(tan=0.531709, x=0.882948, y=0.469472): 0.531709431661\n\n    test 3377 28 28.106516446309 Phi(tan=0.534096, x=0.882073, y=0.471112): 0.531709431661\n    test 3378 28 28.026628049399 Beta(tan=0.532306, x=0.882729, y=0.469882): 0.531709431661\n    test 3379 28 27.946889336829 Theta(tan=0.530521, x=0.883382, y=0.468653): 0.531709431661\n    test 3380 28 27.986711967080 Mu(tan=0.531412, x=0.883056, y=0.469267): 0.531709431661\n    test 3381 28 27.946928706111 Chi(tan=0.530522, x=0.883382, y=0.468654): 0.531709431661\n    test 3382 28 28.000000000000 Xi(tan=0.531709, x=0.882948, y=0.469472): 0.531709431661\n\n    test 3383 35 35.120665994598 Phi(tan=0.703351, x=1.0, y=0.703351): 0.700207538210\n    test 3384 35 35.030169708409 Beta(tan=0.700993, x=1.0, y=0.700993): 0.700207538210\n    test 3385 35 34.939777010856 Theta(tan=0.698642, x=1.0, y=0.698642): 0.700207538210\n    test 3386 35 34.984941016111 Mu(tan=0.699816, x=0.819303, y=0.573361), iteration=3: 0.700207538210\n    test 3387 35 34.939843626202 Chi(tan=0.698644, x=1.0, y=0.698644), iteration=3: 0.700207538210\n    test 3388 35 35.000000000000 Xi(tan=0.700208, x=0.819152, y=0.573576): 0.700207538210\n\n    test 3389 35 35.120665994598 Phi(tan=0.703351, x=0.817942, y=0.5753): 0.700207538210\n    test 3390 35 35.030169708409 Beta(tan=0.700993, x=0.81885, y=0.574008): 0.700207538210\n    test 3391 35 34.939777010856 Theta(tan=0.698642, x=0.819754, y=0.572715): 0.700207538210\n    test 3392 35 34.984941016111 Mu(tan=0.699816, x=0.819303, y=0.573361): 0.700207538210\n    test 3393 35 34.939843626202 Chi(tan=0.698644, x=0.819754, y=0.572716): 0.700207538210\n    test 3394 35 35.000000000000 Xi(tan=0.700208, x=0.819152, y=0.573576): 0.700207538210\n\n    test 3395 42 42.127628467909 Phi(tan=0.904446, x=1.0, y=0.904446): 0.900404044298\n    test 3396 42 42.031915609918 Beta(tan=0.901413, x=1.0, y=0.901413): 0.900404044298\n    test 3397 42 41.936235990174 Theta(tan=0.898391, x=1.0, y=0.898391): 0.900404044298\n    test 3398 42 41.984065426020 Mu(tan=0.899901, x=0.743331, y=0.668924), iteration=3: 0.900404044298\n    test 3399 42 41.936331949525 Chi(tan=0.898394, x=1.0, y=0.898394), iteration=3: 0.900404044298\n    test 3400 42 42.000000000000 Xi(tan=0.900404, x=0.743145, y=0.669131): 0.900404044298\n\n    test 3401 42 42.127628467909 Phi(tan=0.904446, x=0.741652, y=0.670784): 0.900404044298\n    test 3402 42 42.031915609918 Beta(tan=0.901413, x=0.742772, y=0.669544): 0.900404044298\n    test 3403 42 41.936235990174 Theta(tan=0.898391, x=0.743889, y=0.668303): 0.900404044298\n    test 3404 42 41.984065426020 Mu(tan=0.899901, x=0.743331, y=0.668924): 0.900404044298\n    test 3405 42 41.936331949525 Chi(tan=0.898394, x=0.743888, y=0.668304): 0.900404044298\n    test 3406 42 42.000000000000 Xi(tan=0.900404, x=0.743145, y=0.669131): 0.900404044298\n\n    test 3407 49 49.127002845320 Phi(tan=1.15553, x=1.0, y=1.15553): 1.150368407221\n    test 3408 49 49.031764361370 Beta(tan=1.15166, x=1.0, y=1.15166): 1.150368407221\n    test 3409 49 48.936481000855 Theta(tan=1.1478, x=1.0, y=1.1478): 1.150368407221\n    test 3410 49 48.984136719315 Mu(tan=1.14973, x=0.656268, y=0.754528), iteration=2: 1.150368407221\n    test 3411 49 48.936602566380 Chi(tan=1.1478, x=1.0, y=1.1478), iteration=2: 1.150368407221\n    test 3412 49 49.000000000000 Xi(tan=1.15037, x=0.656059, y=0.75471): 1.150368407221\n\n    test 3413 49 49.127002845320 Phi(tan=1.15553, x=0.654385, y=0.756162): 1.150368407221\n    test 3414 49 49.031764361370 Beta(tan=1.15166, x=0.655641, y=0.755073): 1.150368407221\n    test 3415 49 48.936481000855 Theta(tan=1.1478, x=0.656895, y=0.753982): 1.150368407221\n    test 3416 49 48.984136719315 Mu(tan=1.14973, x=0.656268, y=0.754528): 1.150368407221\n    test 3417 49 48.936602566380 Chi(tan=1.1478, x=0.656894, y=0.753983): 1.150368407221\n    test 3418 49 49.000000000000 Xi(tan=1.15037, x=0.656059, y=0.75471): 1.150368407221\n\n    test 3419 56 56.118840243467 Phi(tan=1.48921, x=1.0, y=1.48921): 1.482560968513\n    test 3420 56 56.029727526967 Beta(tan=1.48422, x=1.0, y=1.48422): 1.482560968513\n    test 3421 56 55.940502339654 Theta(tan=1.47925, x=1.0, y=1.47925): 1.482560968513\n    test 3422 56 55.985150111604 Mu(tan=1.48173, x=0.559408, y=0.828893), iteration=3: 1.482560968513\n    test 3423 56 55.940639698829 Chi(tan=1.47925, x=1.0, y=1.47925), iteration=3: 1.482560968513\n    test 3424 56 56.000000000000 Xi(tan=1.48256, x=0.559193, y=0.829038): 1.482560968513\n\n    test 3425 56 56.118840243467 Phi(tan=1.48921, x=0.557472, y=0.830196): 1.482560968513\n    test 3426 56 56.029727526967 Beta(tan=1.48422, x=0.558763, y=0.829328): 1.482560968513\n    test 3427 56 55.940502339654 Theta(tan=1.47925, x=0.560053, y=0.828456): 1.482560968513\n    test 3428 56 55.985150111604 Mu(tan=1.48173, x=0.559408, y=0.828893): 1.482560968513\n    test 3429 56 55.940639698829 Chi(tan=1.47925, x=0.560052, y=0.828458): 1.482560968513\n    test 3430 56 56.000000000000 Xi(tan=1.48256, x=0.559193, y=0.829038): 1.482560968513\n\n    test 3431 63 63.103637615859 Phi(tan=1.97142, x=1.0, y=1.97142): 1.962610505505\n    test 3432 63 63.025928337212 Beta(tan=1.96481, x=1.0, y=1.96481): 1.962610505505\n    test 3433 63 62.948065314408 Theta(tan=1.95822, x=1.0, y=1.95822): 1.962610505505\n    test 3434 63 62.987044924306 Mu(tan=1.96151, x=0.454192, y=0.890904), iteration=3: 1.962610505505\n    test 3435 63 62.948203767989 Chi(tan=1.95823, x=1.0, y=1.95823), iteration=3: 1.962610505505\n    test 3436 63 63.000000000000 Xi(tan=1.96261, x=0.45399, y=0.891007): 1.962610505505\n\n    test 3437 63 63.103637615859 Phi(tan=1.97142, x=0.452378, y=0.891826): 1.962610505505\n    test 3438 63 63.025928337212 Beta(tan=1.96481, x=0.453587, y=0.891212): 1.962610505505\n    test 3439 63 62.948065314408 Theta(tan=1.95822, x=0.454798, y=0.890595): 1.962610505505\n    test 3440 63 62.987044924306 Mu(tan=1.96151, x=0.454192, y=0.890904): 1.962610505505\n    test 3441 63 62.948203767989 Chi(tan=1.95823, x=0.454796, y=0.890596): 1.962610505505\n    test 3442 63 63.000000000000 Xi(tan=1.96261, x=0.45399, y=0.891007): 1.962610505505\n\n    test 3443 70 70.082305433342 Phi(tan=2.75981, x=1.0, y=2.75981): 2.747477419455\n    test 3444 70 70.020593849911 Beta(tan=2.75055, x=1.0, y=2.75055): 2.747477419455\n    test 3445 70 69.958723199827 Theta(tan=2.74133, x=1.0, y=2.74133): 2.747477419455\n    test 3446 70 69.989708300156 Mu(tan=2.74594, x=0.342189, y=0.939631), iteration=3: 2.747477419455\n    test 3447 70 69.958845565244 Chi(tan=2.74135, x=1.0, y=2.74135), iteration=3: 2.747477419455\n    test 3448 70 70.000000000000 Xi(tan=2.74748, x=0.34202, y=0.939693): 2.747477419455\n\n    test 3449 70 70.082305433342 Phi(tan=2.75981, x=0.34067, y=0.940183): 2.747477419455\n    test 3450 70 70.020593849911 Beta(tan=2.75055, x=0.341682, y=0.939815): 2.747477419455\n    test 3451 70 69.958723199827 Theta(tan=2.74133, x=0.342697, y=0.939446): 2.747477419455\n    test 3452 70 69.989708300156 Mu(tan=2.74594, x=0.342189, y=0.939631): 2.747477419455\n    test 3453 70 69.958845565244 Chi(tan=2.74135, x=0.342695, y=0.939447): 2.747477419455\n    test 3454 70 70.000000000000 Xi(tan=2.74748, x=0.34202, y=0.939693): 2.747477419455\n\n    test 3455 77 77.056111910623 Phi(tan=4.35091, x=1.0, y=4.35091): 4.331475874284\n    test 3456 77 77.014041148140 Beta(tan=4.33632, x=1.0, y=4.33632): 4.331475874284\n    test 3457 77 76.971843170758 Theta(tan=4.32179, x=1.0, y=4.32179): 4.331475874284\n    test 3458 77 76.992981975049 Mu(tan=4.32906, x=0.22507, y=0.974343), iteration=3: 4.331475874284\n    test 3459 77 76.971932900289 Chi(tan=4.32182, x=1.0, y=4.32182), iteration=3: 4.331475874284\n    test 3460 77 77.000000000000 Xi(tan=4.33148, x=0.224951, y=0.97437): 4.331475874284\n\n    test 3461 77 77.056111910623 Phi(tan=4.35091, x=0.223997, y=0.97459): 4.331475874284\n    test 3462 77 77.014041148140 Beta(tan=4.33632, x=0.224712, y=0.974425): 4.331475874284\n    test 3463 77 76.971843170758 Theta(tan=4.32179, x=0.22543, y=0.974259): 4.331475874284\n    test 3464 77 76.992981975049 Mu(tan=4.32906, x=0.22507, y=0.974343): 4.331475874284\n    test 3465 77 76.971932900289 Chi(tan=4.32182, x=0.225428, y=0.97426): 4.331475874284\n    test 3466 77 77.000000000000 Xi(tan=4.33148, x=0.224951, y=0.97437): 4.331475874284\n\n    test 3467 84 84.026607472936 Phi(tan=9.55706, x=1.0, y=9.55706): 9.514364454223\n    test 3468 84 84.006658466345 Beta(tan=9.52501, x=1.0, y=9.52501): 9.514364454223\n    test 3469 84 83.986643815196 Theta(tan=9.49308, x=1.0, y=9.49308): 9.514364454223\n    test 3470 84 83.996671688480 Mu(tan=9.50905, x=0.104586, y=0.994516), iteration=3: 9.514364454223\n    test 3471 84 83.986688152448 Chi(tan=9.49315, x=1.0, y=9.49315), iteration=3: 9.514364454223\n    test 3472 84 84.000000000000 Xi(tan=9.51436, x=0.104528, y=0.994522): 9.514364454223\n\n    test 3473 84 84.026607472936 Phi(tan=9.55706, x=0.104067, y=0.99457): 9.514364454223\n    test 3474 84 84.006658466345 Beta(tan=9.52501, x=0.104413, y=0.994534): 9.514364454223\n    test 3475 84 83.986643815196 Theta(tan=9.49308, x=0.10476, y=0.994498): 9.514364454223\n    test 3476 84 83.996671688480 Mu(tan=9.50905, x=0.104586, y=0.994516): 9.514364454223\n    test 3477 84 83.986688152448 Chi(tan=9.49315, x=0.10476, y=0.994498): 9.514364454223\n    test 3478 84 84.000000000000 Xi(tan=9.51436, x=0.104528, y=0.994522): 9.514364454223\n\n    test 3479 91 90.995533984466 Phi(tan=-57.547, x=-1, y=57.547): -57.289961630759\n    test 3480 91 90.998882372785 Beta(tan=-57.3541, x=-1, y=57.3541): -57.289961630759\n    test 3481 91 91.002242018525 Theta(tan=-57.1618, x=-1, y=57.1618): -57.289961630759\n    test 3482 91 91.000558671809 Mu(tan=-57.258, x=-0.0174622, y=0.999848), iteration=3: -57.289961630759\n    test 3483 91 91.002234496198 Chi(tan=-57.1622, x=-1, y=57.1622), iteration=3: -57.289961630759\n    test 3484 91 91.000000000000 Xi(tan=-57.29, x=-0.0174524, y=0.999848): -57.289961630759\n\n    test 3485 91 90.995533984466 Phi(tan=-57.547, x=-0.0173745, y=0.999849): -57.289961630760  FAILED, KNOWN (9.42595e-15), expected -57.289961630759\n    test 3486 91 90.998882372785 Beta(tan=-57.3541, x=-0.0174329, y=0.999848): -57.289961630759\n    test 3487 91 91.002242018525 Theta(tan=-57.1618, x=-0.0174915, y=0.999847): -57.289961630760  FAILED, KNOWN (5.82921e-15), expected -57.289961630759\n    test 3488 91 91.000558671809 Mu(tan=-57.258, x=-0.0174622, y=0.999848): -57.289961630759\n    test 3489 91 91.002234496198 Chi(tan=-57.1622, x=-0.0174914, y=0.999847): -57.289961630760  FAILED, KNOWN (9.54998e-15), expected -57.289961630759\n    test 3490 91 91.000000000000 Xi(tan=-57.29, x=-0.0174524, y=0.999848): -57.289961630759\n\n    test 3491 98 97.964723816165 Phi(tan=-7.1473, x=-1, y=7.1473): -7.115369722384\n    test 3492 98 97.991172305797 Beta(tan=-7.12333, x=-1, y=7.12333): -7.115369722384\n    test 3493 98 98.017706325759 Theta(tan=-7.09945, x=-1, y=7.09945): -7.115369722384\n    test 3494 98 98.004412544182 Mu(tan=-7.1114, x=-0.139249, y=0.990257), iteration=3: -7.115369722384\n    test 3495 98 98.017648048185 Chi(tan=-7.0995, x=-1, y=7.0995), iteration=3: -7.115369722384\n    test 3496 98 98.000000000000 Xi(tan=-7.11537, x=-0.139173, y=0.990268): -7.115369722384\n\n    test 3497 98 97.964723816165 Phi(tan=-7.1473, x=-0.138563, y=0.990354): -7.115369722384\n    test 3498 98 97.991172305797 Beta(tan=-7.12333, x=-0.139021, y=0.990289): -7.115369722384\n    test 3499 98 98.017706325759 Theta(tan=-7.09945, x=-0.139479, y=0.990225): -7.115369722384\n    test 3500 98 98.004412544182 Mu(tan=-7.1114, x=-0.139249, y=0.990257): -7.115369722384\n    test 3501 98 98.017648048185 Chi(tan=-7.0995, x=-0.139478, y=0.990225): -7.115369722384\n    test 3502 98 98.000000000000 Xi(tan=-7.11537, x=-0.139173, y=0.990268): -7.115369722384\n\n    test 3503 105 104.935994159741 Phi(tan=-3.7488, x=-1, y=3.7488): -3.732050807569\n    test 3504 105 104.983983867222 Beta(tan=-3.73623, x=-1, y=3.73623): -3.732050807569\n    test 3505 105 105.032113400902 Theta(tan=-3.7237, x=-1, y=3.7237): -3.732050807569\n    test 3506 105 105.008004873422 Mu(tan=-3.72997, x=-0.258954, y=0.96589), iteration=2: -3.732050807569\n    test 3507 105 105.032012824358 Chi(tan=-3.72373, x=-1, y=3.72373), iteration=3: -3.732050807569\n    test 3508 105 105.000000000000 Xi(tan=-3.73205, x=-0.258819, y=0.965926): -3.732050807569\n\n    test 3509 105 104.935994159741 Phi(tan=-3.7488, x=-0.25774, y=0.966214): -3.732050807569\n    test 3510 105 104.983983867222 Beta(tan=-3.73623, x=-0.258549, y=0.965998): -3.732050807569\n    test 3511 105 105.032113400902 Theta(tan=-3.7237, x=-0.25936, y=0.965781): -3.732050807569\n    test 3512 105 105.008004873422 Mu(tan=-3.72997, x=-0.258954, y=0.96589): -3.732050807569\n    test 3513 105 105.032012824358 Chi(tan=-3.72373, x=-0.259359, y=0.965781): -3.732050807569\n    test 3514 105 105.000000000000 Xi(tan=-3.73205, x=-0.258819, y=0.965926): -3.732050807569\n\n    test 3515 112 111.911042136698 Phi(tan=-2.48619, x=-1, y=2.48619): -2.475086853416\n    test 3516 112 111.977742323906 Beta(tan=-2.47786, x=-1, y=2.47786): -2.475086853416\n    test 3517 112 112.044603965311 Theta(tan=-2.46955, x=-1, y=2.46955): -2.475086853416\n    test 3518 112 112.011122625415 Mu(tan=-2.4737, x=-0.374787, y=0.927111), iteration=3: -2.475086853416\n    test 3519 112 112.044475225333 Chi(tan=-2.46957, x=-1, y=2.46957), iteration=3: -2.475086853416\n    test 3520 112 112.000000000000 Xi(tan=-2.47509, x=-0.374607, y=0.927184): -2.475086853416\n\n    test 3521 112 111.911042136698 Phi(tan=-2.48619, x=-0.373167, y=0.927764): -2.475086853416\n    test 3522 112 111.977742323906 Beta(tan=-2.47786, x=-0.374246, y=0.927329): -2.475086853416\n    test 3523 112 112.044603965311 Theta(tan=-2.46955, x=-0.375328, y=0.926892): -2.475086853416\n    test 3524 112 112.011122625415 Mu(tan=-2.4737, x=-0.374787, y=0.927111): -2.475086853416\n    test 3525 112 112.044475225333 Chi(tan=-2.46957, x=-0.375326, y=0.926893): -2.475086853416\n    test 3526 112 112.000000000000 Xi(tan=-2.47509, x=-0.374607, y=0.927184): -2.475086853416\n\n    test 3527 119 118.891346228069 Phi(tan=-1.81214, x=-1, y=1.81214): -1.804047755271\n    test 3528 119 118.972817760312 Beta(tan=-1.80607, x=-1, y=1.80607): -1.804047755271\n    test 3529 119 119.054434637080 Theta(tan=-1.80001, x=-1, y=1.80001): -1.804047755271\n    test 3530 119 119.013580731176 Mu(tan=-1.80304, x=-0.485017, y=0.874505), iteration=3: -1.804047755271\n    test 3531 119 119.054294796723 Chi(tan=-1.80002, x=-1, y=1.80002), iteration=3: -1.804047755271\n    test 3532 119 119.000000000000 Xi(tan=-1.80405, x=-0.48481, y=0.87462): -1.804047755271\n\n    test 3533 119 118.891346228069 Phi(tan=-1.81214, x=-0.48315, y=0.875538): -1.804047755271\n    test 3534 119 118.972817760312 Beta(tan=-1.80607, x=-0.484395, y=0.87485): -1.804047755271\n    test 3535 119 119.054434637080 Theta(tan=-1.80001, x=-0.48564, y=0.874159): -1.804047755271\n    test 3536 119 119.013580731176 Mu(tan=-1.80304, x=-0.485017, y=0.874505): -1.804047755271\n    test 3537 119 119.054294796723 Chi(tan=-1.80002, x=-0.485638, y=0.87416): -1.804047755271\n    test 3538 119 119.000000000000 Xi(tan=-1.80405, x=-0.48481, y=0.87462): -1.804047755271\n\n    test 3539 126 125.878079358159 Phi(tan=-1.38256, x=-1, y=1.38256): -1.376381920471\n    test 3540 126 125.969503261502 Beta(tan=-1.37792, x=-1, y=1.37792): -1.376381920471\n    test 3541 126 126.061022406195 Theta(tan=-1.3733, x=-1, y=1.3733): -1.376381920471\n    test 3542 126 126.015233045717 Mu(tan=-1.37561, x=-0.588, y=0.808861), iteration=2: -1.376381920471\n    test 3543 126 126.060888237156 Chi(tan=-1.37331, x=-1, y=1.37331), iteration=2: -1.376381920471\n    test 3544 126 126.000000000000 Xi(tan=-1.37638, x=-0.587785, y=0.809017): -1.376381920471\n\n    test 3545 126 125.878079358159 Phi(tan=-1.38256, x=-0.586062, y=0.810266): -1.376381920471\n    test 3546 126 125.969503261502 Beta(tan=-1.37792, x=-0.587355, y=0.80933): -1.376381920471\n    test 3547 126 126.061022406195 Theta(tan=-1.3733, x=-0.588647, y=0.808391): -1.376381920471\n    test 3548 126 126.015233045717 Mu(tan=-1.37561, x=-0.588, y=0.808861): -1.376381920471\n    test 3549 126 126.060888237156 Chi(tan=-1.37331, x=-0.588645, y=0.808392): -1.376381920471\n    test 3550 126 126.000000000000 Xi(tan=-1.37638, x=-0.587785, y=0.809017): -1.376381920471\n\n    test 3551 133 132.872038576251 Phi(tan=-1.07718, x=-1, y=1.07718): -1.072368710025\n    test 3552 133 132.967997382278 Beta(tan=-1.07357, x=-1, y=1.07357): -1.072368710025\n    test 3553 133 133.063979030656 Theta(tan=-1.06997, x=-1, y=1.06997): -1.072368710025\n    test 3554 133 133.015981056163 Mu(tan=-1.07177, x=-0.682202, y=0.731163), iteration=2: -1.072368710025\n    test 3555 133 133.063864035301 Chi(tan=-1.06998, x=-1, y=1.06998), iteration=3: -1.072368710025\n    test 3556 133 133.000000000000 Xi(tan=-1.07237, x=-0.681998, y=0.731354): -1.072368710025\n\n    test 3557 133 132.872038576251 Phi(tan=-1.07718, x=-0.680363, y=0.732875): -1.072368710025\n    test 3558 133 132.967997382278 Beta(tan=-1.07357, x=-0.68159, y=0.731735): -1.072368710025\n    test 3559 133 133.063979030656 Theta(tan=-1.06997, x=-0.682815, y=0.730592): -1.072368710025\n    test 3560 133 133.015981056163 Mu(tan=-1.07177, x=-0.682202, y=0.731163): -1.072368710025\n    test 3561 133 133.063864035301 Chi(tan=-1.06998, x=-0.682813, y=0.730593): -1.072368710025\n    test 3562 133 133.000000000000 Xi(tan=-1.07237, x=-0.681998, y=0.731354): -1.072368710025\n\n    test 3563 140 139.873595650901 Phi(tan=-0.842866, x=-1, y=0.842866): -0.839099631177\n    test 3564 140 139.968391970048 Beta(tan=-0.84004, x=-1, y=0.84004): -0.839099631177\n    test 3565 140 140.063133367178 Theta(tan=-0.837224, x=-1, y=0.837224): -0.839099631177\n    test 3566 140 140.015779815968 Mu(tan=-0.83863, x=-0.766221, y=0.642577), iteration=3: -0.839099631177\n    test 3567 140 140.063045682360 Chi(tan=-0.837226, x=-1, y=0.837226), iteration=2: -0.839099631177\n    test 3568 140 140.000000000000 Xi(tan=-0.8391, x=-0.766044, y=0.642788): -0.839099631177\n\n    test 3569 140 139.873595650901 Phi(tan=-0.842866, x=-0.764624, y=0.644476): -0.839099631177\n    test 3570 140 139.968391970048 Beta(tan=-0.84004, x=-0.76569, y=0.64321): -0.839099631177\n    test 3571 140 140.063133367178 Theta(tan=-0.837224, x=-0.766752, y=0.641943): -0.839099631177\n    test 3572 140 140.015779815968 Mu(tan=-0.83863, x=-0.766221, y=0.642577): -0.839099631177\n    test 3573 140 140.063045682360 Chi(tan=-0.837226, x=-0.766751, y=0.641944): -0.839099631177\n    test 3574 140 140.000000000000 Xi(tan=-0.8391, x=-0.766044, y=0.642788): -0.839099631177\n\n    test 3575 147 146.882671979706 Phi(tan=-0.652323, x=-1, y=0.652323): -0.649407593198\n    test 3576 147 146.970666152106 Beta(tan=-0.650136, x=-1, y=0.650136): -0.649407593198\n    test 3577 147 147.058540482739 Theta(tan=-0.647956, x=-1, y=0.647956): -0.649407593198\n    test 3578 147 147.014640733824 Mu(tan=-0.649044, x=-0.83881, y=0.544425), iteration=2: -0.649407593198\n    test 3579 147 147.058482092364 Chi(tan=-0.647957, x=-1, y=0.647957), iteration=3: -0.649407593198\n    test 3580 147 147.000000000000 Xi(tan=-0.649408, x=-0.838671, y=0.544639): -0.649407593198\n\n    test 3581 147 146.882671979706 Phi(tan=-0.652323, x=-0.837554, y=0.546355): -0.649407593198\n    test 3582 147 146.970666152106 Beta(tan=-0.650136, x=-0.838392, y=0.545068): -0.649407593198\n    test 3583 147 147.058540482739 Theta(tan=-0.647956, x=-0.839227, y=0.543782): -0.649407593198\n    test 3584 147 147.014640733824 Mu(tan=-0.649044, x=-0.83881, y=0.544425): -0.649407593198\n    test 3585 147 147.058482092364 Chi(tan=-0.647957, x=-0.839226, y=0.543783): -0.649407593198\n    test 3586 147 147.000000000000 Xi(tan=-0.649408, x=-0.838671, y=0.544639): -0.649407593198\n\n    test 3587 154 153.898740000769 Phi(tan=-0.489922, x=-1, y=0.489922): -0.487732588566\n    test 3588 154 153.974686973605 Beta(tan=-0.48828, x=-1, y=0.48828): -0.487732588566\n    test 3589 154 154.050477253377 Theta(tan=-0.486642, x=-1, y=0.486642): -0.487732588566\n    test 3590 154 154.012631023956 Mu(tan=-0.48746, x=-0.898891, y=0.438173), iteration=3: -0.487732588566\n    test 3591 154 154.050444626907 Chi(tan=-0.486643, x=-1, y=0.486643), iteration=2: -0.487732588566\n    test 3592 154 154.000000000000 Xi(tan=-0.487733, x=-0.898794, y=0.438371): -0.487732588566\n\n    test 3593 154 153.898740000769 Phi(tan=-0.489922, x=-0.898018, y=0.439959): -0.487732588566\n    test 3594 154 153.974686973605 Beta(tan=-0.48828, x=-0.8986, y=0.438768): -0.487732588566\n    test 3595 154 154.050477253377 Theta(tan=-0.486642, x=-0.89918, y=0.437579): -0.487732588566\n    test 3596 154 154.012631023956 Mu(tan=-0.48746, x=-0.898891, y=0.438173): -0.487732588566\n    test 3597 154 154.050444626907 Chi(tan=-0.486643, x=-0.89918, y=0.43758): -0.487732588566\n    test 3598 154 154.000000000000 Xi(tan=-0.487733, x=-0.898794, y=0.438371): -0.487732588566\n\n    test 3599 161 160.920851786649 Phi(tan=-0.345874, x=-1, y=0.345874): -0.344327613290\n    test 3600 161 160.980216789536 Beta(tan=-0.344714, x=-1, y=0.344714): -0.344327613290\n    test 3601 161 161.039424975997 Theta(tan=-0.343558, x=-1, y=0.343558): -0.344327613290\n    test 3602 161 161.009869820426 Mu(tan=-0.344135, x=-0.945575, y=0.325405), iteration=3: -0.344327613290\n    test 3603 161 161.039410917225 Chi(tan=-0.343558, x=-1, y=0.343558), iteration=3: -0.344327613290\n    test 3604 161 161.000000000000 Xi(tan=-0.344328, x=-0.945519, y=0.325568): -0.344327613290\n\n    test 3605 161 160.920851786649 Phi(tan=-0.345874, x=-0.945068, y=0.326874): -0.344327613290\n    test 3606 161 160.980216789536 Beta(tan=-0.344714, x=-0.945406, y=0.325895): -0.344327613290\n    test 3607 161 161.039424975997 Theta(tan=-0.343558, x=-0.945742, y=0.324917): -0.344327613290\n    test 3608 161 161.009869820426 Mu(tan=-0.344135, x=-0.945575, y=0.325405): -0.344327613290\n    test 3609 161 161.039410917225 Chi(tan=-0.343558, x=-0.945742, y=0.324918): -0.344327613290\n    test 3610 161 161.000000000000 Xi(tan=-0.344328, x=-0.945519, y=0.325568): -0.344327613290\n\n    test 3611 168 167.947693775816 Phi(tan=-0.213511, x=-1, y=0.213511): -0.212556561670\n    test 3612 168 167.986927091791 Beta(tan=-0.212795, x=-1, y=0.212795): -0.212556561670\n    test 3613 168 168.026040245291 Theta(tan=-0.212082, x=-1, y=0.212082): -0.212556561670\n    test 3614 168 168.006521160939 Mu(tan=-0.212438, x=-0.978171, y=0.2078), iteration=3: -0.212556561670\n    test 3615 168 168.026036457648 Chi(tan=-0.212082, x=-1, y=0.212082), iteration=3: -0.212556561670\n    test 3616 168 168.000000000000 Xi(tan=-0.212557, x=-0.978148, y=0.207912): -0.212556561670\n\n    test 3617 168 167.947693775816 Phi(tan=-0.213511, x=-0.977957, y=0.208805): -0.212556561670\n    test 3618 168 167.986927091791 Beta(tan=-0.212795, x=-0.9781, y=0.208135): -0.212556561670\n    test 3619 168 168.026040245291 Theta(tan=-0.212082, x=-0.978242, y=0.207467): -0.212556561670\n    test 3620 168 168.006521160939 Mu(tan=-0.212438, x=-0.978171, y=0.2078): -0.212556561670\n    test 3621 168 168.026036457648 Chi(tan=-0.212082, x=-0.978242, y=0.207467): -0.212556561670\n    test 3622 168 168.000000000000 Xi(tan=-0.212557, x=-0.978148, y=0.207912): -0.212556561670\n\n    test 3623 175 174.977664774563 Phi(tan=-0.0878815, x=-1, y=0.0878815): -0.087488663526\n    test 3624 175 174.994418020079 Beta(tan=-0.0875868, x=-1, y=0.0875868): -0.087488663526\n    test 3625 175 175.011115948983 Theta(tan=-0.0872932, x=-1, y=0.0872932): -0.087488663526\n    test 3626 175 175.002784242316 Mu(tan=-0.0874397, x=-0.996199, y=0.0871073), iteration=2: -0.087488663526\n    test 3627 175 175.011115664833 Chi(tan=-0.0872932, x=-1, y=0.0872932), iteration=2: -0.087488663526\n    test 3628 175 175.000000000000 Xi(tan=-0.0874887, x=-0.996195, y=0.0871557): -0.087488663526\n\n    test 3629 175 174.977664774563 Phi(tan=-0.0878815, x=-0.996161, y=0.0875441): -0.087488663526\n    test 3630 175 174.994418020079 Beta(tan=-0.0875868, x=-0.996186, y=0.0872528): -0.087488663526\n    test 3631 175 175.011115948983 Theta(tan=-0.0872932, x=-0.996212, y=0.0869625): -0.087488663526\n    test 3632 175 175.002784242316 Mu(tan=-0.0874397, x=-0.996199, y=0.0871073): -0.087488663526\n    test 3633 175 175.011115664833 Chi(tan=-0.0872932, x=-0.996212, y=0.0869625): -0.087488663526\n    test 3634 175 175.000000000000 Xi(tan=-0.0874887, x=-0.996195, y=0.0871557): -0.087488663526\n\n    test 3635 182 182.008972613463 Phi(tan=0.0350776, x=-1, y=-0.0350776): 0.034920769492\n    test 3636 182 182.002242400308 Beta(tan=0.03496, x=-1, y=-0.03496): 0.034920769492\n    test 3637 182 181.995534697284 Theta(tan=0.0348427, x=-1, y=-0.0348427): 0.034920769492\n    test 3638 182 181.998881526172 Mu(tan=0.0349012, x=-0.999392, y=-0.03488), iteration=3: 0.034920769492\n    test 3639 182 181.995534715586 Chi(tan=0.0348427, x=-1, y=-0.0348427), iteration=2: 0.034920769492\n    test 3640 182 182.000000000000 Xi(tan=0.0349208, x=-0.999391, y=-0.0348995): 0.034920769492\n\n    test 3641 182 182.008972613463 Phi(tan=0.0350776, x=-0.999385, y=-0.035056): 0.034920769492\n    test 3642 182 182.002242400308 Beta(tan=0.03496, x=-0.999389, y=-0.0349386): 0.034920769492\n    test 3643 182 181.995534697284 Theta(tan=0.0348427, x=-0.999394, y=-0.0348216): 0.034920769492\n    test 3644 182 181.998881526172 Mu(tan=0.0349012, x=-0.999392, y=-0.03488): 0.034920769492\n    test 3645 182 181.995534715586 Chi(tan=0.0348427, x=-0.999394, y=-0.0348216): 0.034920769492\n    test 3646 182 182.000000000000 Xi(tan=0.0349208, x=-0.999391, y=-0.0348995): 0.034920769492\n\n    test 3647 189 189.039743358381 Phi(tan=0.159096, x=-1, y=-0.159096): 0.158384440325\n    test 3648 189 189.009932816166 Beta(tan=0.158562, x=-1, y=-0.158562): 0.158384440325\n    test 3649 189 188.980217328283 Theta(tan=0.158031, x=-1, y=-0.158031): 0.158384440325\n    test 3650 189 188.995045415532 Mu(tan=0.158296, x=-0.987702, y=-0.156349), iteration=3: 0.158384440325\n    test 3651 189 188.980218957347 Chi(tan=0.158031, x=-1, y=-0.158031), iteration=3: 0.158384440325\n    test 3652 189 189.000000000000 Xi(tan=0.158384, x=-0.987688, y=-0.156434): 0.158384440325\n\n    test 3653 189 189.039743358381 Phi(tan=0.159096, x=-0.98758, y=-0.15712): 0.158384440325\n    test 3654 189 189.009932816166 Beta(tan=0.158562, x=-0.987661, y=-0.156606): 0.158384440325\n    test 3655 189 188.980217328283 Theta(tan=0.158031, x=-0.987742, y=-0.156093): 0.158384440325\n    test 3656 189 188.995045415532 Mu(tan=0.158296, x=-0.987702, y=-0.156349): 0.158384440325\n    test 3657 189 188.980218957347 Chi(tan=0.158031, x=-0.987742, y=-0.156093): 0.158384440325\n    test 3658 189 189.000000000000 Xi(tan=0.158384, x=-0.987688, y=-0.156434): 0.158384440325\n\n    test 3659 196 196.068135937668 Phi(tan=0.288033, x=-1, y=-0.288033): 0.286745385759\n    test 3660 196 196.017029985937 Beta(tan=0.287067, x=-1, y=-0.287067): 0.286745385759\n    test 3661 196 195.966069329052 Theta(tan=0.286105, x=-1, y=-0.286105): 0.286745385759\n    test 3662 196 195.991504319198 Mu(tan=0.286585, x=-0.961303, y=-0.275495), iteration=3: 0.286745385759\n    test 3663 196 195.966078002587 Chi(tan=0.286105, x=-1, y=-0.286105), iteration=3: 0.286745385759\n    test 3664 196 196.000000000000 Xi(tan=0.286745, x=-0.961262, y=-0.275637): 0.286745385759\n\n    test 3665 196 196.068135937668 Phi(tan=0.288033, x=-0.960933, y=-0.27678): 0.286745385759\n    test 3666 196 196.017029985937 Beta(tan=0.287067, x=-0.96118, y=-0.275923): 0.286745385759\n    test 3667 196 195.966069329052 Theta(tan=0.286105, x=-0.961425, y=-0.275068): 0.286745385759\n    test 3668 196 195.991504319198 Mu(tan=0.286585, x=-0.961303, y=-0.275495): 0.286745385759\n    test 3669 196 195.966078002587 Chi(tan=0.286105, x=-0.961425, y=-0.275068): 0.286745385759\n    test 3670 196 196.000000000000 Xi(tan=0.286745, x=-0.961262, y=-0.275637): 0.286745385759\n\n    test 3671 203 203.092454589560 Phi(tan=0.426381, x=-1, y=-0.426381): 0.424474816210\n    test 3672 203 203.023110614245 Beta(tan=0.424951, x=-1, y=-0.424951): 0.424474816210\n    test 3673 203 202.953928092744 Theta(tan=0.423526, x=-1, y=-0.423526): 0.424474816210\n    test 3674 203 202.988468962214 Mu(tan=0.424237, x=-0.920583, y=-0.390546), iteration=2: 0.424474816210\n    test 3675 203 202.953951753533 Chi(tan=0.423527, x=-1, y=-0.423527), iteration=2: 0.424474816210\n    test 3676 203 203.000000000000 Xi(tan=0.424475, x=-0.920505, y=-0.390731): 0.424474816210\n\n    test 3677 203 203.092454589560 Phi(tan=0.426381, x=-0.919873, y=-0.392216): 0.424474816210\n    test 3678 203 203.023110614245 Beta(tan=0.424951, x=-0.920347, y=-0.391102): 0.424474816210\n    test 3679 203 202.953928092744 Theta(tan=0.423526, x=-0.920819, y=-0.389991): 0.424474816210\n    test 3680 203 202.988468962214 Mu(tan=0.424237, x=-0.920583, y=-0.390546): 0.424474816210\n    test 3681 203 202.953951753533 Chi(tan=0.423527, x=-0.920819, y=-0.389991): 0.424474816210\n    test 3682 203 203.000000000000 Xi(tan=0.424475, x=-0.920505, y=-0.390731): 0.424474816210\n\n    test 3683 210 210.111251718648 Phi(tan=0.579942, x=-1, y=-0.579942): 0.577350269190\n    test 3684 210 210.027812929728 Beta(tan=0.577998, x=-1, y=-0.577998): 0.577350269190\n    test 3685 210 209.944513899906 Theta(tan=0.57606, x=-1, y=-0.57606): 0.577350269190\n    test 3686 210 209.986119784065 Mu(tan=0.577027, x=-0.866147, y=-0.49979), iteration=3: 0.577350269190\n    test 3687 210 209.944560549356 Chi(tan=0.576061, x=-1, y=-0.576061), iteration=3: 0.577350269190\n    test 3688 210 210.000000000000 Xi(tan=0.57735, x=-0.866025, y=-0.5): 0.577350269190\n\n    test 3689 210 210.111251718648 Phi(tan=0.579942, x=-0.865053, y=-0.501681): 0.577350269190\n    test 3690 210 210.027812929728 Beta(tan=0.577998, x=-0.865783, y=-0.50042): 0.577350269190\n    test 3691 210 209.944513899906 Theta(tan=0.57606, x=-0.866509, y=-0.499161): 0.577350269190\n    test 3692 210 209.986119784065 Mu(tan=0.577027, x=-0.866147, y=-0.49979): 0.577350269190\n    test 3693 210 209.944560549356 Chi(tan=0.576061, x=-0.866509, y=-0.499162): 0.577350269190\n    test 3694 210 210.000000000000 Xi(tan=0.57735, x=-0.866025, y=-0.5): 0.577350269190\n\n    test 3695 217 217.123414552554 Phi(tan=0.756937, x=-1, y=-0.756937): 0.753554050103\n    test 3696 217 217.030858299580 Beta(tan=0.754399, x=-1, y=-0.754399): 0.753554050103\n    test 3697 217 216.938387365618 Theta(tan=0.751869, x=-1, y=-0.751869): 0.753554050103\n    test 3698 217 216.984596192751 Mu(tan=0.753133, x=-0.798797, y=-0.6016), iteration=3: 0.753554050103\n    test 3699 217 216.938462387195 Chi(tan=0.751871, x=-1, y=-0.751871), iteration=3: 0.753554050103\n    test 3700 217 217.000000000000 Xi(tan=0.753554, x=-0.798636, y=-0.601815): 0.753554050103\n\n    test 3701 217 217.123414552554 Phi(tan=0.756937, x=-0.797337, y=-0.603534): 0.753554050103\n    test 3702 217 217.030858299580 Beta(tan=0.754399, x=-0.798311, y=-0.602245): 0.753554050103\n    test 3703 217 216.938387365618 Theta(tan=0.751869, x=-0.799282, y=-0.600956): 0.753554050103\n    test 3704 217 216.984596192751 Mu(tan=0.753133, x=-0.798797, y=-0.6016): 0.753554050103\n    test 3705 217 216.938462387195 Chi(tan=0.751871, x=-0.799281, y=-0.600957): 0.753554050103\n    test 3706 217 217.000000000000 Xi(tan=0.753554, x=-0.798636, y=-0.601815): 0.753554050103\n\n    test 3707 224 224.128230303258 Phi(tan=0.970023, x=-1, y=-0.970023): 0.965688774807\n    test 3708 224 224.032067609230 Beta(tan=0.966771, x=-1, y=-0.966771): 0.965688774807\n    test 3709 224 223.935915824293 Theta(tan=0.96353, x=-1, y=-0.96353): 0.965688774807\n    test 3710 224 223.983988319148 Mu(tan=0.965149, x=-0.719534, y=-0.694457), iteration=3: 0.965688774807\n    test 3711 224 223.936019754646 Chi(tan=0.963533, x=-1, y=-0.963533), iteration=3: 0.965688774807\n    test 3712 224 224.000000000000 Xi(tan=0.965689, x=-0.71934, y=-0.694658): 0.965688774807\n\n    test 3713 224 224.128230303258 Phi(tan=0.970023, x=-0.717783, y=-0.696267): 0.965688774807\n    test 3714 224 224.032067609230 Beta(tan=0.966771, x=-0.718951, y=-0.695061): 0.965688774807\n    test 3715 224 223.935915824293 Theta(tan=0.96353, x=-0.720116, y=-0.693853): 0.965688774807\n    test 3716 224 223.983988319148 Mu(tan=0.965149, x=-0.719534, y=-0.694457): 0.965688774807\n    test 3717 224 223.936019754646 Chi(tan=0.963533, x=-0.720115, y=-0.693855): 0.965688774807\n    test 3718 224 224.000000000000 Xi(tan=0.965689, x=-0.71934, y=-0.694658): 0.965688774807\n\n    test 3719 231 231.125426196540 Phi(tan=1.24044, x=-1, y=-1.24044): 1.234897156535\n    test 3720 231 231.031371476626 Beta(tan=1.23628, x=-1, y=-1.23628): 1.234897156535\n    test 3721 231 230.937250720782 Theta(tan=1.23214, x=-1, y=-1.23214): 1.234897156535\n    test 3722 231 230.984331752747 Mu(tan=1.23421, x=-0.629533, y=-0.776974), iteration=3: 1.234897156535\n    test 3723 231 230.937378047856 Chi(tan=1.23214, x=-1, y=-1.23214), iteration=2: 1.234897156535\n    test 3724 231 231.000000000000 Xi(tan=1.2349, x=-0.62932, y=-0.777146): 1.234897156535\n\n    test 3725 231 231.125426196540 Phi(tan=1.24044, x=-0.627618, y=-0.778522): 1.234897156535\n    test 3726 231 231.031371476626 Beta(tan=1.23628, x=-0.628895, y=-0.77749): 1.234897156535\n    test 3727 231 230.937250720782 Theta(tan=1.23214, x=-0.630171, y=-0.776456): 1.234897156535\n    test 3728 231 230.984331752747 Mu(tan=1.23421, x=-0.629533, y=-0.776974): 1.234897156535\n    test 3729 231 230.937378047856 Chi(tan=1.23214, x=-0.630169, y=-0.776458): 1.234897156535\n    test 3730 231 231.000000000000 Xi(tan=1.2349, x=-0.62932, y=-0.777146): 1.234897156535\n\n    test 3731 238 238.115182546420 Phi(tan=1.60752, x=-1, y=-1.60752): 1.600334529041\n    test 3732 238 238.028813796136 Beta(tan=1.60213, x=-1, y=-1.60213): 1.600334529041\n    test 3733 238 237.942317534000 Theta(tan=1.59676, x=-1, y=-1.59676): 1.600334529041\n    test 3734 238 237.985605550109 Mu(tan=1.59944, x=-0.530132, y=-0.847915), iteration=3: 1.600334529041\n    test 3735 238 237.942456867934 Chi(tan=1.59676, x=-1, y=-1.59676), iteration=3: 1.600334529041\n    test 3736 238 238.000000000000 Xi(tan=1.60033, x=-0.529919, y=-0.848048): 1.600334529041\n\n    test 3737 238 238.115182546420 Phi(tan=1.60752, x=-0.528213, y=-0.849112): 1.600334529041\n    test 3738 238 238.028813796136 Beta(tan=1.60213, x=-0.529493, y=-0.848314): 1.600334529041\n    test 3739 238 237.942317534000 Theta(tan=1.59676, x=-0.530773, y=-0.847514): 1.600334529041\n    test 3740 238 237.985605550109 Mu(tan=1.59944, x=-0.530132, y=-0.847915): 1.600334529041\n    test 3741 238 237.942456867934 Chi(tan=1.59676, x=-0.530771, y=-0.847515): 1.600334529041\n    test 3742 238 238.000000000000 Xi(tan=1.60033, x=-0.529919, y=-0.848048): 1.600334529041\n\n    test 3743 245 245.098118836759 Phi(tan=2.15413, x=-1, y=-2.15413): 2.144506920510\n    test 3744 245 245.024548537731 Beta(tan=2.14691, x=-1, y=-2.14691): 2.144506920510\n    test 3745 245 244.950819083860 Theta(tan=2.13971, x=-1, y=-2.13971): 2.144506920510\n    test 3746 245 244.987733605483 Mu(tan=2.14331, x=-0.422812, y=-0.906217), iteration=3: 2.144506920510\n    test 3747 245 244.950954727954 Chi(tan=2.13972, x=-1, y=-2.13972), iteration=2: 2.144506920510\n    test 3748 245 245.000000000000 Xi(tan=2.14451, x=-0.422618, y=-0.906308): 2.144506920510\n\n    test 3749 245 245.098118836759 Phi(tan=2.15413, x=-0.421066, y=-0.90703): 2.144506920510\n    test 3750 245 245.024548537731 Beta(tan=2.14691, x=-0.42223, y=-0.906489): 2.144506920510\n    test 3751 245 244.950819083860 Theta(tan=2.13971, x=-0.423396, y=-0.905945): 2.144506920510\n    test 3752 245 244.987733605483 Mu(tan=2.14331, x=-0.422812, y=-0.906217): 2.144506920510\n    test 3753 245 244.950954727954 Chi(tan=2.13972, x=-0.423394, y=-0.905946): 2.144506920510\n    test 3754 245 245.000000000000 Xi(tan=2.14451, x=-0.422618, y=-0.906308): 2.144506920510\n\n    test 3755 252 252.075254383698 Phi(tan=3.09149, x=-1, y=-3.09149): 3.077683537175\n    test 3756 252 252.018830129897 Beta(tan=3.08113, x=-1, y=-3.08113): 3.077683537175\n    test 3757 252 251.962252287555 Theta(tan=3.0708, x=-1, y=-3.0708): 3.077683537175\n    test 3758 252 251.990589272651 Mu(tan=3.07596, x=-0.309173, y=-0.951006), iteration=2: 3.077683537175\n    test 3759 252 251.962366907267 Chi(tan=3.07082, x=-1, y=-3.07082), iteration=3: 3.077683537175\n    test 3760 252 252.000000000000 Xi(tan=3.07768, x=-0.309017, y=-0.951057): 3.077683537175\n\n    test 3761 252 252.075254383698 Phi(tan=3.09149, x=-0.307768, y=-0.951462): 3.077683537175\n    test 3762 252 252.018830129897 Beta(tan=3.08113, x=-0.308704, y=-0.951158): 3.077683537175\n    test 3763 252 251.962252287555 Theta(tan=3.0708, x=-0.309644, y=-0.950853): 3.077683537175\n    test 3764 252 251.990589272651 Mu(tan=3.07596, x=-0.309173, y=-0.951006): 3.077683537175\n    test 3765 252 251.962366907267 Chi(tan=3.07082, x=-0.309642, y=-0.950853): 3.077683537175\n    test 3766 252 252.000000000000 Xi(tan=3.07768, x=-0.309017, y=-0.951057): 3.077683537175\n\n    test 3767 259 259.047946497885 Phi(tan=5.16764, x=-1, y=-5.16764): 5.144554015970\n    test 3768 259 259.011998105898 Beta(tan=5.15031, x=-1, y=-5.15031): 5.144554015970\n    test 3769 259 258.975937580981 Theta(tan=5.13304, x=-1, y=-5.13304): 5.144554015970\n    test 3770 259 258.994002940120 Mu(tan=5.14168, x=-0.190912, y=-0.981607), iteration=3: 5.144554015970\n    test 3771 259 258.976015406086 Chi(tan=5.13308, x=-1, y=-5.13308), iteration=3: 5.144554015970\n    test 3772 259 259.000000000000 Xi(tan=5.14455, x=-0.190809, y=-0.981627): 5.144554015970\n\n    test 3773 259 259.047946497885 Phi(tan=5.16764, x=-0.189987, y=-0.981787): 5.144554015970\n    test 3774 259 259.011998105898 Beta(tan=5.15031, x=-0.190603, y=-0.981667): 5.144554015970\n    test 3775 259 258.975937580981 Theta(tan=5.13304, x=-0.191221, y=-0.981547): 5.144554015970\n    test 3776 259 258.994002940120 Mu(tan=5.14168, x=-0.190912, y=-0.981607): 5.144554015970\n    test 3777 259 258.976015406086 Chi(tan=5.13308, x=-0.19122, y=-0.981547): 5.144554015970\n    test 3778 259 259.000000000000 Xi(tan=5.14455, x=-0.190809, y=-0.981627): 5.144554015970\n\n    test 3779 266 266.017810106930 Phi(tan=14.3648, x=-1, y=-14.3648): 14.300666256712\n    test 3780 266 266.004456979343 Beta(tan=14.3167, x=-1, y=-14.3167): 14.300666256712\n    test 3781 266 265.991059367560 Theta(tan=14.2687, x=-1, y=-14.2687): 14.300666256712\n    test 3782 266 265.997772097900 Mu(tan=14.2927, x=-0.0697953, y=-0.997561), iteration=2: 14.300666256712\n    test 3783 266 265.991089228290 Chi(tan=14.2688, x=-1, y=-14.2688), iteration=3: 14.300666256712\n    test 3784 266 266.000000000000 Xi(tan=14.3007, x=-0.0697565, y=-0.997564): 14.300666256712\n\n    test 3785 266 266.017810106930 Phi(tan=14.3648, x=-0.0694464, y=-0.997586): 14.300666256712\n    test 3786 266 266.004456979343 Beta(tan=14.3167, x=-0.0696789, y=-0.997569): 14.300666256712\n    test 3787 266 265.991059367560 Theta(tan=14.2687, x=-0.0699121, y=-0.997553): 14.300666256712\n    test 3788 266 265.997772097900 Mu(tan=14.2927, x=-0.0697953, y=-0.997561): 14.300666256712\n    test 3789 266 265.991089228290 Chi(tan=14.2688, x=-0.0699116, y=-0.997553): 14.300666256712\n    test 3790 266 266.000000000000 Xi(tan=14.3007, x=-0.0697565, y=-0.997564): 14.300666256712\n\n    test 3791 273 272.986623544405 Phi(tan=-19.1668, x=1.0, y=-19.1668): -19.081136687728\n    test 3792 273 272.996652532418 Beta(tan=-19.1025, x=1.0, y=-19.1025): -19.081136687728\n    test 3793 273 273.006715074128 Theta(tan=-19.0384, x=1.0, y=-19.0384): -19.081136687728\n    test 3794 273 273.001673300226 Mu(tan=-19.0705, x=0.0523651, y=-0.998628), iteration=2: -19.081136687728\n    test 3795 273 273.006692598711 Chi(tan=-19.0386, x=1.0, y=-19.0386), iteration=3: -19.081136687728\n    test 3796 273 273.000000000000 Xi(tan=-19.0811, x=0.052336, y=-0.99863): -19.081136687728\n\n    test 3797 273 272.986623544405 Phi(tan=-19.1668, x=0.0521028, y=-0.998642): -19.081136687728\n    test 3798 273 272.996652532418 Beta(tan=-19.1025, x=0.0522776, y=-0.998633): -19.081136687728\n    test 3799 273 273.006715074128 Theta(tan=-19.0384, x=0.052453, y=-0.998623): -19.081136687728\n    test 3800 273 273.001673300226 Mu(tan=-19.0705, x=0.0523651, y=-0.998628): -19.081136687728\n    test 3801 273 273.006692598711 Chi(tan=-19.0386, x=0.0524526, y=-0.998623): -19.081136687728\n    test 3802 273 273.000000000000 Xi(tan=-19.0811, x=0.052336, y=-0.99863): -19.081136687728\n\n    test 3803 280 279.956225698278 Phi(tan=-5.69673, x=1.0, y=-5.69673): -5.671281819618\n    test 3804 280 279.989045850720 Beta(tan=-5.67763, x=1.0, y=-5.67763): -5.671281819618\n    test 3805 280 280.021969758476 Theta(tan=-5.65859, x=1.0, y=-5.65859): -5.671281819618\n    test 3806 280 280.005475329461 Mu(tan=-5.66811, x=0.173742, y=-0.984791), iteration=3: -5.671281819618\n    test 3807 280 280.021898241655 Chi(tan=-5.65863, x=1.0, y=-5.65863), iteration=3: -5.671281819618\n    test 3808 280 280.000000000000 Xi(tan=-5.67128, x=0.173648, y=-0.984808): -5.671281819618\n\n    test 3809 280 279.956225698278 Phi(tan=-5.69673, x=0.172896, y=-0.98494): -5.671281819618\n    test 3810 280 279.989045850720 Beta(tan=-5.67763, x=0.17346, y=-0.984841): -5.671281819618\n    test 3811 280 280.021969758476 Theta(tan=-5.65859, x=0.174026, y=-0.984741): -5.671281819618\n    test 3812 280 280.005475329461 Mu(tan=-5.66811, x=0.173742, y=-0.984791): -5.671281819618\n    test 3813 280 280.021898241655 Chi(tan=-5.65863, x=0.174025, y=-0.984741): -5.671281819618\n    test 3814 280 280.000000000000 Xi(tan=-5.67128, x=0.173648, y=-0.984808): -5.671281819618\n\n    test 3815 287 286.928409983832 Phi(tan=-3.28553, x=1.0, y=-3.28553): -3.270852618484\n    test 3816 287 286.982086527391 Beta(tan=-3.27451, x=1.0, y=-3.27451): -3.270852618484\n    test 3817 287 287.035912792570 Theta(tan=-3.26354, x=1.0, y=-3.26354): -3.270852618484\n    test 3818 287 287.008952804861 Mu(tan=-3.26903, x=0.292521, y=-0.956259), iteration=3: -3.270852618484\n    test 3819 287 287.035802540646 Chi(tan=-3.26356, x=1.0, y=-3.26356), iteration=3: -3.270852618484\n    test 3820 287 287.000000000000 Xi(tan=-3.27085, x=0.292372, y=-0.956305): -3.270852618484\n\n    test 3821 287 286.928409983832 Phi(tan=-3.28553, x=0.291177, y=-0.956669): -3.270852618484\n    test 3822 287 286.982086527391 Beta(tan=-3.27451, x=0.292073, y=-0.956396): -3.270852618484\n    test 3823 287 287.035912792570 Theta(tan=-3.26354, x=0.292971, y=-0.956121): -3.270852618484\n    test 3824 287 287.008952804861 Mu(tan=-3.26903, x=0.292521, y=-0.956259): -3.270852618484\n    test 3825 287 287.035802540646 Chi(tan=-3.26356, x=0.292969, y=-0.956122): -3.270852618484\n    test 3826 287 287.000000000000 Xi(tan=-3.27085, x=0.292372, y=-0.956305): -3.270852618484\n\n    test 3827 294 293.904820699861 Phi(tan=-2.25612, x=1.0, y=-2.25612): -2.246036773904\n    test 3828 294 293.976186490838 Beta(tan=-2.24855, x=1.0, y=-2.24855): -2.246036773904\n    test 3829 294 294.047712986128 Theta(tan=-2.24101, x=1.0, y=-2.24101): -2.246036773904\n    test 3830 294 294.011899457288 Mu(tan=-2.24478, x=0.406926, y=-0.913461), iteration=3: -2.246036773904\n    test 3831 294 294.047579285201 Chi(tan=-2.24103, x=1.0, y=-2.24103), iteration=3: -2.246036773904\n    test 3832 294 294.000000000000 Xi(tan=-2.24604, x=0.406737, y=-0.913545): -2.246036773904\n\n    test 3833 294 293.904820699861 Phi(tan=-2.25612, x=0.405219, y=-0.91422): -2.246036773904\n    test 3834 294 293.976186490838 Beta(tan=-2.24855, x=0.406357, y=-0.913714): -2.246036773904\n    test 3835 294 294.047712986128 Theta(tan=-2.24101, x=0.407497, y=-0.913206): -2.246036773904\n    test 3836 294 294.011899457288 Mu(tan=-2.24478, x=0.406926, y=-0.913461): -2.246036773904\n    test 3837 294 294.047579285201 Chi(tan=-2.24103, x=0.407495, y=-0.913207): -2.246036773904\n    test 3838 294 294.000000000000 Xi(tan=-2.24604, x=0.406737, y=-0.913545): -2.246036773904\n\n    test 3839 301 300.886857256907 Phi(tan=-1.67175, x=1.0, y=-1.67175): -1.664279482351\n    test 3840 301 300.971695886665 Beta(tan=-1.66614, x=1.0, y=-1.66614): -1.664279482351\n    test 3841 301 301.056668635072 Theta(tan=-1.66056, x=1.0, y=-1.66056): -1.664279482351\n    test 3842 301 301.014140307923 Mu(tan=-1.66335, x=0.51525, y=-0.85704), iteration=3: -1.664279482351\n    test 3843 301 301.056528796205 Chi(tan=-1.66057, x=1.0, y=-1.66057), iteration=3: -1.664279482351\n    test 3844 301 301.000000000000 Xi(tan=-1.66428, x=0.515038, y=-0.857167): -1.664279482351\n\n    test 3845 301 300.886857256907 Phi(tan=-1.67175, x=0.513344, y=-0.858183): -1.664279482351\n    test 3846 301 300.971695886665 Beta(tan=-1.66614, x=0.514615, y=-0.857422): -1.664279482351\n    test 3847 301 301.056668635072 Theta(tan=-1.66056, x=0.515886, y=-0.856657): -1.664279482351\n    test 3848 301 301.014140307923 Mu(tan=-1.66335, x=0.51525, y=-0.85704): -1.664279482351\n    test 3849 301 301.056528796205 Chi(tan=-1.66057, x=0.515884, y=-0.856659): -1.664279482351\n    test 3850 301 301.000000000000 Xi(tan=-1.66428, x=0.515038, y=-0.857167): -1.664279482351\n\n    test 3851 308 307.875591521416 Phi(tan=-1.28569, x=1.0, y=-1.28569): -1.279941632193\n    test 3852 308 307.968882364101 Beta(tan=-1.28138, x=1.0, y=-1.28138): -1.279941632193\n    test 3853 308 308.062249364871 Theta(tan=-1.27708, x=1.0, y=-1.27708): -1.279941632193\n    test 3854 308 308.015542045055 Mu(tan=-1.27923, x=0.615875, y=-0.787844), iteration=3: -1.279941632193\n    test 3855 308 308.062119501658 Chi(tan=-1.27709, x=1.0, y=-1.27709), iteration=3: -1.279941632193\n    test 3856 308 308.000000000000 Xi(tan=-1.27994, x=0.615661, y=-0.788011): -1.279941632193\n\n    test 3857 308 307.875591521416 Phi(tan=-1.28569, x=0.613949, y=-0.789346): -1.279941632193\n    test 3858 308 307.968882364101 Beta(tan=-1.28138, x=0.615233, y=-0.788345): -1.279941632193\n    test 3859 308 308.062249364871 Theta(tan=-1.27708, x=0.616517, y=-0.787341): -1.279941632193\n    test 3860 308 308.015542045055 Mu(tan=-1.27923, x=0.615875, y=-0.787844): -1.279941632193\n    test 3861 308 308.062119501659 Chi(tan=-1.27709, x=0.616515, y=-0.787343): -1.279941632193\n    test 3862 308 308.000000000000 Xi(tan=-1.27994, x=0.615661, y=-0.788011): -1.279941632193\n\n    test 3863 315 314.871703066479 Phi(tan=-1.00449, x=1.0, y=-1.00449): -1.000000000000\n    test 3864 315 314.967914975772 Beta(tan=-1.00112, x=1.0, y=-1.00112): -1.000000000000\n    test 3865 315 315.064127246955 Theta(tan=-0.997764, x=1.0, y=-0.997764): -1.000000000000\n    test 3866 315 315.016020986969 Mu(tan=-0.999441, x=0.707304, y=-0.706909), iteration=2: -1.000000000000\n    test 3867 315 315.064019491023 Chi(tan=-0.997768, x=1.0, y=-0.997768), iteration=3: -1.000000000000\n    test 3868 315 315.000000000000 Xi(tan=-1, x=0.707107, y=-0.707107): -1.000000000000\n\n    test 3869 315 314.871703066479 Phi(tan=-1.00449, x=0.705522, y=-0.708688): -1.000000000000\n    test 3870 315 314.967914975772 Beta(tan=-1.00112, x=0.706711, y=-0.707503): -1.000000000000\n    test 3871 315 315.064127246955 Theta(tan=-0.997764, x=0.707898, y=-0.706315): -1.000000000000\n    test 3872 315 315.016020986969 Mu(tan=-0.999441, x=0.707304, y=-0.706909): -1.000000000000\n    test 3873 315 315.064019491023 Chi(tan=-0.997768, x=0.707896, y=-0.706316): -1.000000000000\n    test 3874 315 315.000000000000 Xi(tan=-1, x=0.707107, y=-0.707107): -1.000000000000\n\n    test 3875 322 321.875436413614 Phi(tan=-0.784793, x=1.0, y=-0.784793): -0.781285626507\n    test 3876 322 321.968853692070 Beta(tan=-0.782161, x=1.0, y=-0.782161): -0.781285626507\n    test 3877 322 322.062195432519 Theta(tan=-0.779539, x=1.0, y=-0.779539): -0.781285626507\n    test 3878 322 322.015548148041 Mu(tan=-0.780849, x=0.788178, y=-0.615448), iteration=2: -0.781285626507\n    test 3879 322 322.062116180014 Chi(tan=-0.779541, x=1.0, y=-0.779541), iteration=3: -0.781285626507\n    test 3880 322 322.000000000000 Xi(tan=-0.781286, x=0.788011, y=-0.615661): -0.781285626507\n\n    test 3881 322 321.875436413614 Phi(tan=-0.784793, x=0.78667, y=-0.617373): -0.781285626507\n    test 3882 322 321.968853692070 Beta(tan=-0.782161, x=0.787676, y=-0.61609): -0.781285626507\n    test 3883 322 322.062195432519 Theta(tan=-0.779539, x=0.788679, y=-0.614806): -0.781285626507\n    test 3884 322 322.015548148041 Mu(tan=-0.780849, x=0.788178, y=-0.615448): -0.781285626507\n    test 3885 322 322.062116180014 Chi(tan=-0.779541, x=0.788678, y=-0.614807): -0.781285626507\n    test 3886 322 322.000000000000 Xi(tan=-0.781286, x=0.788011, y=-0.615661): -0.781285626507\n\n    test 3887 329 328.886583352158 Phi(tan=-0.603558, x=1.0, y=-0.603558): -0.600860619028\n    test 3888 329 328.971645254782 Beta(tan=-0.601534, x=1.0, y=-0.601534): -0.600860619028\n    test 3889 329 329.056573396118 Theta(tan=-0.599518, x=1.0, y=-0.599518): -0.600860619028\n    test 3890 329 329.014151085164 Mu(tan=-0.600525, x=0.857294, y=-0.514826), iteration=3: -0.600860619028\n    test 3891 329 329.056522930537 Chi(tan=-0.599519, x=1.0, y=-0.599519), iteration=3: -0.600860619028\n    test 3892 329 329.000000000000 Xi(tan=-0.600861, x=0.857167, y=-0.515038): -0.600860619028\n\n    test 3893 329 328.886583352158 Phi(tan=-0.603558, x=0.856146, y=-0.516734): -0.600860619028\n    test 3894 329 328.971645254782 Beta(tan=-0.601534, x=0.856912, y=-0.515462): -0.600860619028\n    test 3895 329 329.056573396118 Theta(tan=-0.599518, x=0.857675, y=-0.514191): -0.600860619028\n    test 3896 329 329.014151085164 Mu(tan=-0.600525, x=0.857294, y=-0.514826): -0.600860619028\n    test 3897 329 329.056522930537 Chi(tan=-0.599519, x=0.857675, y=-0.514192): -0.600860619028\n    test 3898 329 329.000000000000 Xi(tan=-0.600861, x=0.857167, y=-0.515038): -0.600860619028\n\n    test 3899 336 335.904492119885 Phi(tan=-0.447228, x=1.0, y=-0.447228): -0.445228685309\n    test 3900 336 335.976125752178 Beta(tan=-0.445728, x=1.0, y=-0.445728): -0.445228685309\n    test 3901 336 336.047598736385 Theta(tan=-0.444234, x=1.0, y=-0.444234): -0.445228685309\n    test 3902 336 336.011912385791 Mu(tan=-0.44498, x=0.91363, y=-0.406547), iteration=2: -0.445228685309\n    test 3903 336 336.047572248701 Chi(tan=-0.444234, x=1.0, y=-0.444234), iteration=3: -0.445228685309\n    test 3904 336 336.000000000000 Xi(tan=-0.445229, x=0.913545, y=-0.406737): -0.445228685309\n\n    test 3905 336 335.904492119885 Phi(tan=-0.447228, x=0.912866, y=-0.408259): -0.445228685309\n    test 3906 336 335.976125752178 Beta(tan=-0.445728, x=0.913376, y=-0.407117): -0.445228685309\n    test 3907 336 336.047598736385 Theta(tan=-0.444234, x=0.913883, y=-0.405978): -0.445228685309\n    test 3908 336 336.011912385791 Mu(tan=-0.44498, x=0.91363, y=-0.406547): -0.445228685309\n    test 3909 336 336.047572248701 Chi(tan=-0.444234, x=0.913883, y=-0.405978): -0.445228685309\n    test 3910 336 336.000000000000 Xi(tan=-0.445229, x=0.913545, y=-0.406737): -0.445228685309\n\n    test 3911 343 342.928103650624 Phi(tan=-0.307103, x=1.0, y=-0.307103): -0.305730681459\n    test 3912 343 342.982029901147 Beta(tan=-0.306074, x=1.0, y=-0.306074): -0.305730681459\n    test 3913 343 343.035806278435 Theta(tan=-0.305047, x=1.0, y=-0.305047): -0.305730681459\n    test 3914 343 343.008964858001 Mu(tan=-0.30556, x=0.95635, y=-0.292222), iteration=3: -0.305730681459\n    test 3915 343 343.035795980594 Chi(tan=-0.305048, x=1.0, y=-0.305048), iteration=3: -0.305730681459\n    test 3916 343 343.000000000000 Xi(tan=-0.305731, x=0.956305, y=-0.292372): -0.305730681459\n\n    test 3917 343 342.928103650624 Phi(tan=-0.307103, x=0.955937, y=-0.293571): -0.305730681459\n    test 3918 343 342.982029901147 Beta(tan=-0.306074, x=0.956213, y=-0.292672): -0.305730681459\n    test 3919 343 343.035806278435 Theta(tan=-0.305047, x=0.956487, y=-0.291774): -0.305730681459\n    test 3920 343 343.008964858001 Mu(tan=-0.30556, x=0.95635, y=-0.292222): -0.305730681459\n    test 3921 343 343.035795980594 Chi(tan=-0.305048, x=0.956487, y=-0.291774): -0.305730681459\n    test 3922 343 343.000000000000 Xi(tan=-0.305731, x=0.956305, y=-0.292372): -0.305730681459\n\n    test 3923 350 349.956013326444 Phi(tan=-0.177119, x=1.0, y=-0.177119): -0.176326980708\n    test 3924 350 349.989006593437 Beta(tan=-0.176525, x=1.0, y=-0.176525): -0.176326980708\n    test 3925 350 350.021895915483 Theta(tan=-0.175933, x=1.0, y=-0.175933): -0.176326980708\n    test 3926 350 350.005483685534 Mu(tan=-0.176228, x=0.984824, y=-0.173554), iteration=3: -0.176326980708\n    test 3927 350 350.021893693784 Chi(tan=-0.175933, x=1.0, y=-0.175933), iteration=3: -0.176326980708\n    test 3928 350 350.000000000000 Xi(tan=-0.176327, x=0.984808, y=-0.173648): -0.176326980708\n\n    test 3929 350 349.956013326444 Phi(tan=-0.177119, x=0.984674, y=-0.174404): -0.176326980708\n    test 3930 350 349.989006593437 Beta(tan=-0.176525, x=0.984774, y=-0.173837): -0.176326980708\n    test 3931 350 350.021895915483 Theta(tan=-0.175933, x=0.984874, y=-0.173272): -0.176326980708\n    test 3932 350 350.005483685534 Mu(tan=-0.176228, x=0.984824, y=-0.173554): -0.176326980708\n    test 3933 350 350.021893693784 Chi(tan=-0.175933, x=0.984874, y=-0.173272): -0.176326980708\n    test 3934 350 350.000000000000 Xi(tan=-0.176327, x=0.984808, y=-0.173648): -0.176326980708\n\n    test 3935 357 356.986554851958 Phi(tan=-0.0526431, x=1.0, y=-0.0526431): -0.052407779283\n    test 3936 357 356.996639834512 Beta(tan=-0.0524666, x=1.0, y=-0.0524666): -0.052407779283\n    test 3937 357 357.006691189366 Theta(tan=-0.0522907, x=1.0, y=-0.0522907): -0.052407779283\n    test 3938 357 357.001676003026 Mu(tan=-0.0523784, x=0.998631, y=-0.0523067), iteration=3: -0.052407779283\n    test 3939 357 357.006691127690 Chi(tan=-0.0522907, x=1.0, y=-0.0522907), iteration=3: -0.052407779283\n    test 3940 357 357.000000000000 Xi(tan=-0.0524078, x=0.99863, y=-0.052336): -0.052407779283\n\n    test 3941 357 356.986554851958 Phi(tan=-0.0526431, x=0.998617, y=-0.0525703): -0.052407779283\n    test 3942 357 356.996639834512 Beta(tan=-0.0524666, x=0.998626, y=-0.0523945): -0.052407779283\n    test 3943 357 357.006691189366 Theta(tan=-0.0522907, x=0.998636, y=-0.0522193): -0.052407779283\n    test 3944 357 357.001676003026 Mu(tan=-0.0523784, x=0.998631, y=-0.0523067): -0.052407779283\n    test 3945 357 357.006691127690 Chi(tan=-0.0522907, x=0.998636, y=-0.0522193): -0.052407779283\n    test 3946 357 357.000000000000 Xi(tan=-0.0524078, x=0.99863, y=-0.052336): -0.052407779283\n\n    test 3947 abs: AuxAngle(tan=2.0, x=1.0, y=2.0)\n    test 3948 add: AuxAngle(tan=-1.33333, x=-3, y=4.0)\n    test 3949 eq : True\n    test 3950 float: 2.0\n    test 3951 sub: AuxAngle(tan=0.0, x=1.0, y=0.0)\n    test 3952 neg: AuxAngle(tan=-2, x=1.0, y=-2)\n    test 3953 ne : False\n    test 3954 pos: AuxAngle(tan=2.0, x=1.0, y=2.0)\n    test 3955 iadd: AuxAngle(tan=-1.33333, x=-3, y=4.0)\n    test 3956 isub: AuxAngle(tan=0.0, x=1.0, y=0.0)\n    test 3957 radd: AuxAngle(tan=0.0, x=1.0, y=0.0)\n    test 3958 rsub: AuxAngle(tan=0.0, x=1.0, y=0.0)\n\n    test 3959 N: 5\n    test 3960 N /sum: 2.748844788926\n    test 3961 +N/sum: 3.071245975238\n    test 3962 2N/sum: 3.071245975238\n    test 3963 Te/sum: 57.582664067074\n    test 3964 Tg/sum: -182.807444594653\n\n    50 of 3964 testAuxilats.py tests (1.3%) FAILED, ALL KNOWN (pygeodesy 26.3.26 Python 3.12.10 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 2.1.0 scipy 1.14.1 Math 2 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 isLazy 3 -W  default) 15.715 sec\nrunning /usr/local/bin/p....n3.12 -W default ~/PyGeodesy/test/testAzimuthal.py\n./pygeodesy/azimuthal.py:636: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return self.datum.ellipsoid.geodesic\n./pygeodesy/azimuthal.py:937: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return self.datum.ellipsoid.geodesic\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.Equidistant from .azimuthal by testAzimuthal.py line 11\n# lazily imported pygeodesy.EquidistantExact from .azimuthal by testAzimuthal.py line 11\n# lazily imported pygeodesy.EquidistantGeodSolve from .azimuthal by testAzimuthal.py line 11\n# lazily imported pygeodesy.EquidistantKarney from .azimuthal by testAzimuthal.py line 11\n# lazily imported pygeodesy.Gnomonic from .azimuthal by testAzimuthal.py line 11\n# lazily imported pygeodesy.GnomonicExact from .azimuthal by testAzimuthal.py line 11\n# lazily imported pygeodesy.GnomonicGeodSolve from .azimuthal by testAzimuthal.py line 11\n# lazily imported pygeodesy.GnomonicKarney from .azimuthal by testAzimuthal.py line 11\n# lazily imported pygeodesy.LambertEqualArea from .azimuthal by testAzimuthal.py line 11\n# lazily imported pygeodesy.Orthographic from .azimuthal by testAzimuthal.py line 11\n# lazily imported pygeodesy.Stereographic from .azimuthal by testAzimuthal.py line 11\n# lazily imported pygeodesy.ellipsoidalExact by testAzimuthal.py line 11\n# lazily imported pygeodesy.ellipsoidalKarney by testAzimuthal.py line 11\n# lazily imported pygeodesy.ellipsoidalNvector by testAzimuthal.py line 11\n# lazily imported pygeodesy.ellipsoidalVincenty by testAzimuthal.py line 11\n# lazily imported pygeodesy.F_D from .dms by testAzimuthal.py line 11\n# lazily imported pygeodesy.fstr from .streprs by testAzimuthal.py line 11\n# lazily imported pygeodesy.hypot from .fmath by testAzimuthal.py line 11\n# lazily imported pygeodesy.IntersectionError from .errors by testAzimuthal.py line 11\n# lazily imported pygeodesy.latlonDMS from .dms by testAzimuthal.py line 11\n# lazily imported pygeodesy.latlonDMS_ from .dms by testAzimuthal.py line 11\n# lazily imported pygeodesy.vincentys from .formy by testAzimuthal.py line 11\n# lazily imported pygeodesy.Azimuthal7Tuple from .azimuthal by testAzimuthal.py line 138\n# lazily imported pygeodesy.equidistant from .azimuthal by testAzimuthal.py line 138\n# lazily imported pygeodesy.gnomonic from .azimuthal by testAzimuthal.py line 138\n# lazily imported pygeodesy.NAN from .constants by testAzimuthal.py line 138\n\n    testing testAzimuthal.py 25.05.09 (module pygeodesy.azimuthal 25.11.29) isLazy=3\n    test 1 Equidistant(48.833333, 2.333333, name='Paris'): 48.833333 2.333333\n    test 2 forward: -37467.812512, 230294.518853, 50.9, 1.8, 350.759218, 1.000223\n    test 3 reverse: -37467.812512, 230294.518853, 50.9, 1.8, 350.759218, 1.000223\n    test 4 iteration: None\n    test 5 copy(<class 'type'>): (<class 'pygeodesy.azimuthal.Equidistant'>, True)\n    test 6 Equidistant.copy(): (<class 'pygeodesy.azimuthal.Equidistant'>, True)\n    test 7 reverse: -38000.0, 230000.0, 50.897321, 1.792455, 350.61849, 1.000222\n    test 8 forward: -38000.0, 230000.0, 50.897321, 1.792455, 350.61849, 1.000222\n    test 9 reverse: LatLon(50°53′50.36″N, 001°47′32.84″E)\n    test 10 reverse: LatLon(50°53′50.36″N, 001°47′32.84″E)\n    test 11 reverse: LatLon(50°53′50.36″N, 001°47′32.84″E)\n    test 12 reverse: LatLon(50°53′50.36″N, 001°47′32.84″E)\n    test 13 Equidistant(51.4934, 0.0098, name='Greenwich'): 51.4934 0.0098\n    test 14 forward: 170420.92566, -293667.828613, 48.833333, 2.333333, 149.872606, 1.000472\n    test 15 reverse: 170420.92566, -293667.828613, 48.833333, 2.333333, 149.872606, 1.000472\n    test 16 iteration: None\n    test 17 hypot: 339535.102  FAILED, KNOWN, expected 338901.865\n    test 18 antipodal: (170420.92566, -293667.828613, -48.833333, -177.666667, 0.0, 1.000472, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n\n    test 19 Gnomonic(48.833333, 2.333333, name='Paris'): 48.833333 2.333333\n    test 20 forward: -37484.520018, 230397.210923, 50.9, 1.8, 350.759218, 1.000669\n    test 21 reverse: -37484.520018, 230397.210923, 50.9, 1.8, 350.759218, 1.000223\n    test 22 iteration: None\n    test 23 copy(<class 'type'>): (<class 'pygeodesy.azimuthal.Gnomonic'>, True)\n    test 24 Gnomonic.copy(): (<class 'pygeodesy.azimuthal.Gnomonic'>, True)\n    test 25 reverse: -38000.0, 230000.0, 50.896405, 1.792706, 350.61849, 1.000222\n    test 26 forward: -38000.0, 230000.0, 50.896405, 1.792706, 350.61849, 1.000667\n    test 27 reverse: LatLon(50°53′47.06″N, 001°47′33.74″E)\n    test 28 reverse: LatLon(50°53′47.06″N, 001°47′33.74″E)\n    test 29 reverse: LatLon(50°53′47.06″N, 001°47′33.74″E)\n    test 30 reverse: LatLon(50°53′47.06″N, 001°47′33.74″E)\n    test 31 Gnomonic(51.4934, 0.0098, name='Greenwich'): 51.4934 0.0098\n    test 32 forward: 170581.851218, -293945.134107, 48.833333, 2.333333, 149.872606, 1.001416\n    test 33 reverse: 170581.851218, -293945.134107, 48.833333, 2.333333, 149.872606, 1.000472\n    test 34 iteration: None\n    test 35 hypot: 339855.719  FAILED, KNOWN, expected 338901.865\n    test 36 antipodal: (170581.851218, -293945.134107, -48.833333, -177.666667, 0.0, 1.000472, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n\n# lazily imported pygeodesy.geodesicx by ellipsoids.py line 1082\n    test 37 EquidistantExact(48.833333, 2.333333, name='Paris'): 48.833333 2.333333\n# lazily imported pygeodesy.elliptic by gx.py line 421\n    test 38 forward: -37526.978232, 230000.911579, 50.9, 1.8, 350.325442, 0.999778\n    test 39 reverse: -37526.978232, 230000.911579, 50.9, 1.8, 350.325442, 0.999778\n    test 40 iteration: None\n    test 41 copy(<class 'type'>): (<class 'pygeodesy.azimuthal.EquidistantExact'>, True)\n    test 42 EquidistantExact.copy(): (<class 'pygeodesy.azimuthal.EquidistantExact'>, True)\n    test 43 reverse: -38000.0, 230000.0, 50.899962, 1.793278, 350.205524, 0.999778\n    test 44 forward: -38000.0, 230000.0, 50.899962, 1.793278, 350.205524, 0.999778\n    test 45 reverse: LatLon(50°53′59.86″N, 001°47′35.8″E)\n    test 46 reverse: LatLon(50°53′59.86″N, 001°47′35.8″E)\n    test 47 reverse: LatLon(50°53′59.86″N, 001°47′35.8″E)\n    test 48 reverse: LatLon(50°53′59.86″N, 001°47′35.8″E)\n    test 49 EquidistantExact(51.4934, 0.0098, name='Greenwich'): 51.4934 0.0098\n    test 50 forward: 170617.186469, -293210.754313, 48.833333, 2.333333, 151.589952, 0.999529\n    test 51 reverse: 170617.186469, -293210.754313, 48.833333, 2.333333, 151.589952, 0.999529\n    test 52 iteration: None\n    test 53 hypot: 339238.516  FAILED, KNOWN, expected 338901.865\n    test 54 antipodal: (170617.186469, -293210.754313, -48.833333, -177.666667, 0.0, 0.999529, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n\n    test 55 GnomonicExact(48.833333, 2.333333, name='Paris'): 48.833333 2.333333\n    test 56 forward: -37543.665895, 230103.189403, 50.9, 1.8, 350.325442, 0.999333\n    test 57 reverse: -37543.665895, 230103.189403, 50.9, 1.8, 350.325442, 0.999333\n    test 58 iteration: 3\n    test 59 copy(<class 'type'>): (<class 'pygeodesy.azimuthal.GnomonicExact'>, True)\n    test 60 GnomonicExact.copy(): (<class 'pygeodesy.azimuthal.GnomonicExact'>, True)\n    test 61 reverse: -38000.0, 230000.0, 50.899044, 1.793528, 350.205718, 0.999333\n    test 62 forward: -37999.995965, 229999.975581, 50.899044, 1.793528, 350.205718, 0.999334\n    test 63 reverse: LatLon(50°53′56.56″N, 001°47′36.7″E)\n    test 64 reverse: LatLon(50°53′56.56″N, 001°47′36.7″E)\n    test 65 reverse: LatLon(50°53′56.56″N, 001°47′36.7″E)\n    test 66 reverse: LatLon(50°53′56.56″N, 001°47′36.7″E)\n    test 67 GnomonicExact(51.4934, 0.0098, name='Greenwich'): 51.4934 0.0098\n    test 68 forward: 170778.089295, -293487.270649, 48.833333, 2.333333, 151.589952, 0.998587\n    test 69 reverse: 170778.089295, -293487.270649, 48.833333, 2.333334, 151.589953, 0.998588\n    test 70 iteration: 3\n    test 71 hypot: 339558.439  FAILED, KNOWN, expected 338901.963\n    test 72 antipodal: (170778.089295, -293487.270649, -48.833333, -177.666666, 0.0, 0.998588, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n\n# lazily imported pygeodesy.geodsolve by ellipsoids.py line 1093\n    test 73 EquidistantGeodSolve(48.833333, 2.333333, name='Paris'): 48.833333 2.333333\n    test 74 forward: -37526.978232, 230000.911579, 50.9, 1.8, 350.325442, 0.999778\n    test 75 reverse: -37526.978232, 230000.911579, 50.9, 1.8, 350.325442, 0.999778\n    test 76 iteration: None\n    test 77 copy(<class 'type'>): (<class 'pygeodesy.azimuthal.EquidistantGeodSolve'>, True)\n    test 78 EquidistantGeodSolve.copy(): (<class 'pygeodesy.azimuthal.EquidistantGeodSolve'>, True)\n    test 79 reverse: -38000.0, 230000.0, 50.899962, 1.793278, 350.205524, 0.999778\n    test 80 forward: -38000.0, 230000.0, 50.899962, 1.793278, 350.205524, 0.999778\n    test 81 reverse: LatLon(50°53′59.86″N, 001°47′35.8″E)\n    test 82 reverse: LatLon(50°53′59.86″N, 001°47′35.8″E)\n    test 83 reverse: LatLon(50°53′59.86″N, 001°47′35.8″E)\n    test 84 reverse: LatLon(50°53′59.86″N, 001°47′35.8″E)\n    test 85 EquidistantGeodSolve(51.4934, 0.0098, name='Greenwich'): 51.4934 0.0098\n    test 86 forward: 170617.186469, -293210.754313, 48.833333, 2.333333, 151.589952, 0.999529\n    test 87 reverse: 170617.186469, -293210.754313, 48.833333, 2.333333, 151.589952, 0.999529\n    test 88 iteration: None\n    test 89 hypot: 339238.516  FAILED, KNOWN, expected 338901.865\n    test 90 antipodal: (170617.186469, -293210.754313, -48.833333, -177.666667, 0.0, 0.999529, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n\n    test 91 GnomonicGeodSolve(48.833333, 2.333333, name='Paris'): 48.833333 2.333333\n    test 92 forward: -37543.665895, 230103.189403, 50.9, 1.8, 350.325442, 0.999333\n    test 93 reverse: -37543.665895, 230103.189403, 50.9, 1.8, 350.325442, 0.999333\n    test 94 iteration: 3\n    test 95 copy(<class 'type'>): (<class 'pygeodesy.azimuthal.GnomonicGeodSolve'>, True)\n    test 96 GnomonicGeodSolve.copy(): (<class 'pygeodesy.azimuthal.GnomonicGeodSolve'>, True)\n    test 97 reverse: -38000.0, 230000.0, 50.899044, 1.793528, 350.205718, 0.999333\n    test 98 forward: -37999.995965, 229999.975581, 50.899044, 1.793528, 350.205718, 0.999334\n    test 99 reverse: LatLon(50°53′56.56″N, 001°47′36.7″E)\n    test 100 reverse: LatLon(50°53′56.56″N, 001°47′36.7″E)\n    test 101 reverse: LatLon(50°53′56.56″N, 001°47′36.7″E)\n    test 102 reverse: LatLon(50°53′56.56″N, 001°47′36.7″E)\n    test 103 GnomonicGeodSolve(51.4934, 0.0098, name='Greenwich'): 51.4934 0.0098\n    test 104 forward: 170778.089295, -293487.270649, 48.833333, 2.333333, 151.589952, 0.998587\n    test 105 reverse: 170778.089295, -293487.270649, 48.833333, 2.333334, 151.589953, 0.998588\n    test 106 iteration: 3\n    test 107 hypot: 339558.439  FAILED, KNOWN, expected 338901.963\n    test 108 antipodal: (170778.089295, -293487.270649, -48.833333, -177.666666, 0.0, 0.998588, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n\n# lazily imported pygeodesy.geodesicw by ellipsoids.py line 1074\n    test 109 EquidistantKarney(48.833333, 2.333333, name='Paris'): 48.833333 2.333333\n    test 110 forward: -37526.978232, 230000.911579, 50.9, 1.8, 350.325442, 0.999778\n    test 111 reverse: -37526.978232, 230000.911579, 50.9, 1.8, 350.325442, 0.999778\n    test 112 iteration: None\n    test 113 copy(<class 'type'>): (<class 'pygeodesy.azimuthal.EquidistantKarney'>, True)\n    test 114 EquidistantKarney.copy(): (<class 'pygeodesy.azimuthal.EquidistantKarney'>, True)\n    test 115 reverse: -38000.0, 230000.0, 50.899962, 1.793278, 350.205524, 0.999778\n    test 116 forward: -38000.0, 230000.0, 50.899962, 1.793278, 350.205524, 0.999778\n    test 117 reverse: LatLon(50°53′59.86″N, 001°47′35.8″E)\n    test 118 reverse: LatLon(50°53′59.86″N, 001°47′35.8″E)\n    test 119 reverse: LatLon(50°53′59.86″N, 001°47′35.8″E)\n    test 120 reverse: LatLon(50°53′59.86″N, 001°47′35.8″E)\n    test 121 EquidistantKarney(51.4934, 0.0098, name='Greenwich'): 51.4934 0.0098\n    test 122 forward: 170617.186469, -293210.754313, 48.833333, 2.333333, 151.589952, 0.999529\n    test 123 reverse: 170617.186469, -293210.754313, 48.833333, 2.333333, 151.589952, 0.999529\n    test 124 iteration: None\n    test 125 hypot: 339238.516  FAILED, KNOWN, expected 338901.865\n    test 126 antipodal: (170617.186469, -293210.754313, -48.833333, -177.666667, 0.0, 0.999529, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n\n    test 127 GnomonicKarney(48.833333, 2.333333, name='Paris'): 48.833333 2.333333\n    test 128 forward: -37543.665895, 230103.189403, 50.9, 1.8, 350.325442, 0.999333\n    test 129 reverse: -37543.665895, 230103.189403, 50.9, 1.8, 350.325442, 0.999333\n    test 130 iteration: 3\n    test 131 copy(<class 'type'>): (<class 'pygeodesy.azimuthal.GnomonicKarney'>, True)\n    test 132 GnomonicKarney.copy(): (<class 'pygeodesy.azimuthal.GnomonicKarney'>, True)\n    test 133 reverse: -38000.0, 230000.0, 50.899044, 1.793528, 350.205718, 0.999333\n    test 134 forward: -37999.995965, 229999.975581, 50.899044, 1.793528, 350.205718, 0.999334\n    test 135 reverse: LatLon(50°53′56.56″N, 001°47′36.7″E)\n    test 136 reverse: LatLon(50°53′56.56″N, 001°47′36.7″E)\n    test 137 reverse: LatLon(50°53′56.56″N, 001°47′36.7″E)\n    test 138 reverse: LatLon(50°53′56.56″N, 001°47′36.7″E)\n    test 139 GnomonicKarney(51.4934, 0.0098, name='Greenwich'): 51.4934 0.0098\n    test 140 forward: 170778.089295, -293487.270649, 48.833333, 2.333333, 151.589952, 0.998587\n    test 141 reverse: 170778.089295, -293487.270649, 48.833333, 2.333334, 151.589953, 0.998588\n    test 142 iteration: 3\n    test 143 hypot: 339558.439  FAILED, KNOWN, expected 338901.963\n    test 144 antipodal: (170778.089295, -293487.270649, -48.833333, -177.666666, 0.0, 0.998588, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n\n    test 145 pygeodesy.ellipsoidalExact: 20.837802°N, 037.265561°E Random +/- 45\n    test 146 pygeodesy.ellipsoidalExact: 20.731625°N, 037.239134°E, 47.241037°N, 090.706953°W  d 12073 meter  Spherical\n    test 147 pygeodesy.ellipsoidalExact: 20.837802°N, 037.265561°E, 47.570386°N, 090.710621°W  d 2.57943e-09 meter  EquidistantExact\n    test 148 pygeodesy.ellipsoidalExact: 20.782926°N, 037.386689°E, 47.157338°N, 090.535988°W  d 13996.9 meter  Equidistant\n    test 149 pygeodesy.ellipsoidalExact: 00.054876°N, 000.121128°W  00.263%, 000.325% of Random\n    test 150 pygeodesy.ellipsoidalExact: 20.178788°N, 037.863183°E, 25.430614°N, 029.712824°E  d 95962.9 meter  Spherical\n    test 151 pygeodesy.ellipsoidalExact: 20.837802°N, 037.265561°E, 25.165736°N, 030.636290°E  d 1.86445e-08 meter  EquidistantExact\n    test 152 pygeodesy.ellipsoidalExact: 20.476289°N, 037.616298°E, 25.350745°N, 029.993058°E  d 54200.8 meter  Equidistant\n    test 153 pygeodesy.ellipsoidalExact: 00.361512°N, 000.350737°W  01.735%, 000.941% of Random\n    test 154 pygeodesy.ellipsoidalExact: 20.709830°N, 037.325305°E, 23.986765°S, 006.357154°E  d 15473.9 meter  Spherical\n    test 155 pygeodesy.ellipsoidalExact: 20.837802°N, 037.265561°E, 24.154986°S, 006.451641°E  d 2.21974e-08 meter  EquidistantExact\n    test 156 pygeodesy.ellipsoidalExact: 20.649633°N, 037.393582°E, 24.020776°S, 006.424760°E  d 24734.1 meter  Equidistant\n    test 157 pygeodesy.ellipsoidalExact: 00.188169°N, 000.128021°W  00.903%, 000.344% of Random\n    test 158 pygeodesy.ellipsoidalExact: 20.711361°N, 037.299061°E, 05.817097°S, 011.555753°E  d 14426.8 meter  Spherical\n    test 159 pygeodesy.ellipsoidalExact: 20.837802°N, 037.265561°E, 05.951600°S, 011.594991°E  d 8.19485e-10 meter  EquidistantExact\n    test 160 pygeodesy.ellipsoidalExact: 20.741251°N, 037.340858°E, 05.878220°S, 011.509974°E  d 13256.2 meter  Equidistant\n    test 161 pygeodesy.ellipsoidalExact: 00.096551°N, 000.075297°W  00.463%, 000.202% of Random\n    test 162 pygeodesy.ellipsoidalExact: 20.575926°N, 037.192481°E, 24.714874°S, 101.748846°E  d 29975.9 meter  Spherical\n    test 163 pygeodesy.ellipsoidalExact: 20.837802°N, 037.265561°E, 24.833538°S, 101.692379°E  d 8.40627e-09 meter  EquidistantExact\n    test 164 pygeodesy.ellipsoidalExact: 20.655364°N, 037.264116°E, 24.641480°S, 101.782492°E  d 20198.9 meter  Equidistant\n    test 165 pygeodesy.ellipsoidalExact: 00.182438°N, 000.001445°E  00.876%, 000.004% of Random\n    test 166 pygeodesy.ellipsoidalExact: 20.580088°N, 037.318129°E, 24.532151°N, 030.587744°W  d 29053.1 meter  Spherical\n    test 167 pygeodesy.ellipsoidalExact: 20.837802°N, 037.265561°E, 24.827619°N, 030.502704°W  d 3.17693e-09 meter  EquidistantExact\n    test 168 pygeodesy.ellipsoidalExact: 20.657872°N, 037.365880°E, 24.595305°N, 030.618001°W  d 22494.2 meter  Equidistant\n    test 169 pygeodesy.ellipsoidalExact: 00.179930°N, 000.100319°W  00.863%, 000.269% of Random\n    test 170 pygeodesy.ellipsoidalExact: 20.563907°N, 037.369395°E, 35.558645°N, 066.016542°W  d 32195.3 meter  Spherical\n    test 171 pygeodesy.ellipsoidalExact: 20.837802°N, 037.265561°E, 35.944754°N, 065.829690°W  d 5.498e-09 meter  EquidistantExact\n    test 172 pygeodesy.ellipsoidalExact: 20.685070°N, 037.419860°E, 35.556493°N, 066.016170°W  d 23326.1 meter  Equidistant\n    test 173 pygeodesy.ellipsoidalExact: 00.152732°N, 000.154299°W  00.733%, 000.414% of Random\n    test 174 pygeodesy.ellipsoidalExact: 20.653766°N, 037.295820°E, 49.956972°N, 009.743883°W  d 20617.5 meter  Spherical\n    test 175 pygeodesy.ellipsoidalExact: 20.837802°N, 037.265561°E, 50.163866°N, 009.239277°W  d 8.68226e-09 meter  EquidistantExact\n    test 176 pygeodesy.ellipsoidalExact: 20.778102°N, 037.357245°E, 49.843129°N, 009.925447°W  d 11609.8 meter  Equidistant\n    test 177 pygeodesy.ellipsoidalExact: 00.059700°N, 000.091684°W  00.286%, 000.246% of Random\n    test 178 pygeodesy.ellipsoidalExact: 20.669139°N, 037.346294°E, 25.229903°N, 036.730998°E  d 20478.8 meter  Spherical\n    test 179 pygeodesy.ellipsoidalExact: 20.837802°N, 037.265561°E, 25.068982°N, 036.706044°E  d 1.03177e-08 meter  EquidistantExact\n    test 180 pygeodesy.ellipsoidalExact: 20.355166°N, 037.510605°E, 25.474475°N, 036.786569°E  d 59225.7 meter  Equidistant\n    test 181 pygeodesy.ellipsoidalExact: 00.482636°N, 000.245043°W  02.316%, 000.658% of Random\n    test 182 pygeodesy.ellipsoidalExact: 20.651840°N, 037.302123°E, 07.288325°N, 033.384623°E  d 20937.7 meter  Spherical\n    test 183 pygeodesy.ellipsoidalExact: 20.837802°N, 037.265561°E, 07.108581°N, 033.280790°E  d 6.03814e-08 meter  EquidistantExact\n    test 184 pygeodesy.ellipsoidalExact: 20.486897°N, 037.336334°E, 07.474387°N, 033.557659°E  d 39543.3 meter  Equidistant\n    test 185 pygeodesy.ellipsoidalExact: 00.350904°N, 000.070773°W  01.684%, 000.190% of Random\n    test 186 pygeodesy.ellipsoidalExact: 20.563067°N, 037.338802°E, 36.599711°S, 073.027235°W  d 31359.2 meter  Spherical\n    test 187 pygeodesy.ellipsoidalExact: 20.837802°N, 037.265561°E, 36.849146°S, 072.969640°W  d 8.31075e-09 meter  EquidistantExact\n    test 188 pygeodesy.ellipsoidalExact: 20.610465°N, 037.435977°E, 36.598020°S, 073.014794°W  d 30799 meter  Equidistant\n    test 189 pygeodesy.ellipsoidalExact: 00.227337°N, 000.170416°W  01.091%, 000.457% of Random\n    test 190 pygeodesy.ellipsoidalExact: 20.537724°N, 037.383819°E, 11.911851°N, 075.711324°W  d 35433.5 meter  Spherical\n    test 191 pygeodesy.ellipsoidalExact: 20.837802°N, 037.265561°E, 12.125687°N, 075.616731°W  d 1.85174e-08 meter  EquidistantExact\n    test 192 pygeodesy.ellipsoidalExact: 20.617723°N, 037.447504°E, 12.013413°N, 075.806826°W  d 30867.7 meter  Equidistant\n    test 193 pygeodesy.ellipsoidalExact: 00.220078°N, 000.181943°W  01.056%, 000.488% of Random\n    test 194 pygeodesy.ellipsoidalExact: 00.482636°N, 000.350737°E  02.316%, 000.941% of Random, max\n\n    test 195 pygeodesy.ellipsoidalVincenty: 41.186078°N, 034.518810°E Random +/- 45\n    test 196 pygeodesy.ellipsoidalVincenty: 41.216002°N, 034.466444°E, 36.757969°N, 036.250386°E  d 5507.89 meter  Spherical\n    test 197 pygeodesy.ellipsoidalVincenty: 41.186078°N, 034.518810°E, 36.788859°N, 036.252161°E  d 3.31783e-05 meter  EquidistantExact\n    test 198 pygeodesy.ellipsoidalVincenty: 41.261815°N, 034.378326°E, 36.740313°N, 036.242240°E  d 14474.3 meter  Equidistant\n    test 199 pygeodesy.ellipsoidalVincenty: 00.075738°S, 000.140484°E  00.184%, 000.407% of Random\n    test 200 pygeodesy.ellipsoidalVincenty: 40.851194°N, 034.534088°E, 50.241748°S, 131.016402°W  d 37212.5 meter  Spherical\n    test 201 pygeodesy.ellipsoidalVincenty: 41.186078°N, 034.518810°E, 50.477317°S, 130.978321°W  d 1.93817e-06 meter  EquidistantExact\n    test 202 pygeodesy.ellipsoidalVincenty: 40.798654°N, 034.533581°E, 50.386452°S, 130.973130°W  d 43042.9 meter  Equidistant\n    test 203 pygeodesy.ellipsoidalVincenty: 00.387424°N, 000.014771°W  00.941%, 000.043% of Random\n    test 204 pygeodesy.ellipsoidalVincenty: 41.074804°N, 034.598238°E, 21.089845°S, 024.140244°E  d 14042.6 meter  Spherical\n    test 205 pygeodesy.ellipsoidalVincenty: 41.186078°N, 034.518810°E, 21.224760°S, 024.109286°E  d 2.6497e-05 meter  EquidistantExact\n    test 206 pygeodesy.ellipsoidalVincenty: 41.048538°N, 034.546214°E, 21.170019°S, 024.203830°E  d 15447.1 meter  Equidistant\n    test 207 pygeodesy.ellipsoidalVincenty: 00.137540°N, 000.027405°W  00.334%, 000.079% of Random\n    test 208 pygeodesy.ellipsoidalVincenty: 41.032073°N, 034.369399°E, 19.422826°S, 067.358116°E  d 21213.6 meter  Spherical\n    test 209 pygeodesy.ellipsoidalVincenty: 41.186078°N, 034.518810°E, 19.600494°S, 067.286307°E  d 4.13857e-06 meter  EquidistantExact\n    test 210 pygeodesy.ellipsoidalVincenty: 41.006716°N, 034.332358°E, 19.395639°S, 067.447246°E  d 25340.6 meter  Equidistant\n    test 211 pygeodesy.ellipsoidalVincenty: 00.179362°N, 000.186452°E  00.435%, 000.540% of Random\n    test 212 pygeodesy.ellipsoidalVincenty: 40.945458°N, 034.537613°E, 58.224252°S, 061.713015°E  d 26768.7 meter  Spherical\n    test 213 pygeodesy.ellipsoidalVincenty: 41.186078°N, 034.518810°E, 58.347421°S, 061.621933°E  d 1.06306e-05 meter  EquidistantExact\n    test 214 pygeodesy.ellipsoidalVincenty: 40.924263°N, 034.481009°E, 58.252605°S, 061.344166°E  d 29248.9 meter  Equidistant\n    test 215 pygeodesy.ellipsoidalVincenty: 00.261815°N, 000.037800°E  00.636%, 000.110% of Random\n    test 216 pygeodesy.ellipsoidalVincenty: 40.897988°N, 039.011844°E, 40.464581°N, 028.238987°E  d 379091 meter  Spherical\n    test 217 pygeodesy.ellipsoidalVincenty: 41.186078°N, 034.518810°E, 41.110091°N, 032.648742°E  d 0.000119809 meter  EquidistantExact\n    test 218 pygeodesy.ellipsoidalVincenty: 40.839819°N, 039.393167°E, 40.383760°N, 027.900519°E  d 411769 meter  Equidistant\n    test 219 pygeodesy.ellipsoidalVincenty: 00.346258°N, 004.874358°W  00.841%, 014.121% of Random\n    test 220 pygeodesy.ellipsoidalVincenty: 40.870493°N, 034.662375°E, 20.549400°S, 050.731096°W  d 37068.5 meter  Spherical\n    test 221 pygeodesy.ellipsoidalVincenty: 41.186078°N, 034.518810°E, 20.738461°S, 050.709252°W  d 2.02858e-05 meter  EquidistantExact\n    test 222 pygeodesy.ellipsoidalVincenty: 40.818186°N, 034.634875°E, 20.527794°S, 050.866478°W  d 42006.6 meter  Equidistant\n    test 223 pygeodesy.ellipsoidalVincenty: 00.367892°N, 000.116065°W  00.893%, 000.336% of Random\n    test 224 pygeodesy.ellipsoidalVincenty: 41.093896°N, 034.232689°E, 37.091356°N, 041.500904°E  d 26112.3 meter  Spherical\n    test 225 pygeodesy.ellipsoidalVincenty: 41.186078°N, 034.518810°E, 37.299306°N, 041.502155°E  d 3.94773e-06 meter  EquidistantExact\n    test 226 pygeodesy.ellipsoidalVincenty: 41.073515°N, 034.180923°E, 37.078362°N, 041.498623°E  d 31004.2 meter  Equidistant\n    test 227 pygeodesy.ellipsoidalVincenty: 00.112563°N, 000.337887°E  00.273%, 000.979% of Random\n    test 228 pygeodesy.ellipsoidalVincenty: 40.781100°N, 034.669980°E, 52.089480°N, 061.225269°W  d 46738.9 meter  Spherical\n    test 229 pygeodesy.ellipsoidalVincenty: 41.186078°N, 034.518810°E, 52.535730°N, 060.874484°W  d 3.27148e-05 meter  EquidistantExact\n    test 230 pygeodesy.ellipsoidalVincenty: 40.727656°N, 034.642283°E, 51.911337°N, 061.190728°W  d 51959.6 meter  Equidistant\n    test 231 pygeodesy.ellipsoidalVincenty: 00.458422°N, 000.123473°W  01.113%, 000.358% of Random\n    test 232 pygeodesy.ellipsoidalVincenty: 41.264357°N, 034.318737°E, 33.708712°N, 039.965866°E  d 18894.5 meter  Spherical\n    test 233 pygeodesy.ellipsoidalVincenty: 41.186078°N, 034.518810°E, 33.842045°N, 039.937641°E  d 1.60319e-05 meter  EquidistantExact\n    test 234 pygeodesy.ellipsoidalVincenty: 41.296883°N, 034.225283°E, 33.729060°N, 039.967302°E  d 27511.2 meter  Equidistant\n    test 235 pygeodesy.ellipsoidalVincenty: 00.110805°S, 000.293526°E  00.269%, 000.850% of Random\n    test 236 pygeodesy.ellipsoidalVincenty: 40.981210°N, 034.381310°E, 21.581340°S, 084.205539°E  d 25517.2 meter  Spherical\n    test 237 pygeodesy.ellipsoidalVincenty: 41.186078°N, 034.518810°E, 21.747177°S, 084.134687°E  d 6.24075e-06 meter  EquidistantExact\n    test 238 pygeodesy.ellipsoidalVincenty: 40.944802°N, 034.323160°E, 21.498714°S, 084.299938°E  d 31438.7 meter  Equidistant\n    test 239 pygeodesy.ellipsoidalVincenty: 00.241275°N, 000.195650°E  00.586%, 000.567% of Random\n    test 240 pygeodesy.ellipsoidalVincenty: 41.004915°N, 034.623936°E, 06.517706°N, 020.398169°E  d 21972.4 meter  Spherical\n    test 241 pygeodesy.ellipsoidalVincenty: 41.186078°N, 034.518810°E, 06.309051°N, 020.241933°E  d 5.18445e-05 meter  EquidistantExact\n    test 242 pygeodesy.ellipsoidalVincenty: 41.055640°N, 034.588070°E, 06.583593°N, 020.579717°E  d 15610.1 meter  Equidistant\n    test 243 pygeodesy.ellipsoidalVincenty: 00.130438°N, 000.069260°W  00.317%, 000.201% of Random\n    test 244 pygeodesy.ellipsoidalVincenty: 00.458422°N, 004.874358°E  01.113%, 014.121% of Random, max\n\n    test 245 Equidistant(10, 80): 1.37704, 0.24656\n    test 246 Equidistant(10, 80): 10.0, 80.0\n    test 247 Gnomonic(10, 80): 5.67128, 1.01543\n    test 248 Gnomonic(10, 80): 10.0, 80.0\n    test 249 LambertEqualArea(10, 80): 1.26747, 0.22694\n    test 250 LambertEqualArea(10, 80): 10.0, 80.0\n    test 251 Orthographic(10, 80): 0.96985, 0.17365\n    test 252 Orthographic(10, 80): 10.0, 80.0\n    test 253 Stereographic(10, 80): 1.65643, 0.29658\n    test 254 Stereographic(10, 80): 10.0, 80.0\n    test 255 Equidistant(20, 20): 0.33454, 0.35601\n    test 256 Equidistant(20, 20): 20.0, 20.0\n    test 257 Gnomonic(20, 20): 0.36397, 0.38733\n    test 258 Gnomonic(20, 20): 20.0, 20.0\n    test 259 LambertEqualArea(20, 20): 0.33123, 0.35248\n    test 260 LambertEqualArea(20, 20): 20.0, 20.0\n    test 261 Orthographic(20, 20): 0.32139, 0.34202\n    test 262 Orthographic(20, 20): 20.0, 20.0\n    test 263 Stereographic(20, 20): 0.34136, 0.36327\n    test 264 Stereographic(20, 20): 20.0, 20.0\n    test 265 Equidistant(40, 40): 0.57386, 0.74912\n    test 266 Equidistant(40, 40): 40.0, 40.0\n    test 267 Gnomonic(40, 40): 0.8391, 1.09537\n    test 268 Gnomonic(40, 40): 40.0, 40.0\n    test 269 LambertEqualArea(40, 40): 0.55281, 0.72164\n    test 270 LambertEqualArea(40, 40): 40.0, 40.0\n    test 271 Orthographic(40, 40): 0.4924, 0.64279\n    test 272 Orthographic(40, 40): 40.0, 40.0\n    test 273 Stereographic(40, 40): 0.62062, 0.81016\n    test 274 Stereographic(40, 40): 40.0, 40.0\n    test 275 Equidistant(60, 60): 0.58948, 1.17896\n    test 276 Equidistant(60, 60): 60.0, 60.0\n    test 277 Gnomonic(60, 60): 1.73205, 3.4641\n    test 278 Gnomonic(60, 60): 60.0, 60.0\n    test 279 LambertEqualArea(60, 60): 0.54772, 1.09545\n    test 280 LambertEqualArea(60, 60): 60.0, 60.0\n    test 281 Orthographic(60, 60): 0.43301, 0.86603\n    test 282 Orthographic(60, 60): 60.0, 60.0\n    test 283 Stereographic(60, 60): 0.69282, 1.38564\n    test 284 Stereographic(60, 60): 60.0, 60.0\n    test 285 Equidistant(70, 80): 0.50997, 1.42273\n    test 286 Equidistant(70, 80): 70.0, 80.0\n    test 287 Gnomonic(70, 80): 5.67128, 15.82209\n    test 288 Gnomonic(70, 80): 70.0, 80.0\n    test 289 LambertEqualArea(70, 80): 0.4628, 1.29114\n    test 290 LambertEqualArea(70, 80): 70.0, 80.0\n    test 291 Orthographic(70, 80): 0.33682, 0.93969\n    test 292 Orthographic(70, 80): 70.0, 80.0\n    test 293 Stereographic(70, 80): 0.63588, 1.77402\n    test 294 Stereographic(70, 80): 70.0, 80.0\n    test 295 Equidistant(80, 80): 0.26358, 1.51792\n    test 296 Equidistant(80, 80): 80.0, 80.0\n    test 297 Gnomonic(80, 80): 5.67128, 32.65961\n    test 298 Gnomonic(80, 80): 80.0, 80.0\n    test 299 LambertEqualArea(80, 80): 0.23828, 1.37219\n    test 300 LambertEqualArea(80, 80): 80.0, 80.0\n    test 301 Orthographic(80, 80): 0.17101, 0.98481\n    test 302 Orthographic(80, 80): 80.0, 80.0\n    test 303 Stereographic(80, 80): 0.33201, 1.91196\n    test 304 Stereographic(80, 80): 80.0, 80.0\n    test 305 Equidistant(80, 10): 0.04281, 1.39829\n    test 306 Equidistant(80, 10): 80.0, 10.0\n    test 307 Gnomonic(80, 10): 0.17633, 5.75877\n    test 308 Gnomonic(80, 10): 80.0, 10.0\n    test 309 LambertEqualArea(80, 10): 0.03941, 1.28702\n    test 310 LambertEqualArea(80, 10): 80.0, 10.0\n    test 311 Orthographic(80, 10): 0.03015, 0.98481\n    test 312 Orthographic(80, 10): 80.0, 10.0\n    test 313 Stereographic(80, 10): 0.0515, 1.68198\n    test 314 Stereographic(80, 10): 80.0, 10.0\n\n    test 315 function: equidistant\n    test 316 equatoradius: 1.0\n    test 317 flattening: 0.0\n    test 318 iteration: None\n    test 319 latlon0: (0.0, 0.0)\n    test 320 latlon0: (1.0, 2.0)\n    test 321 name: coverage\n    test 322 radius: 1.0\n\n    test 323 function: gnomonic\n    test 324 equatoradius: 1.0\n    test 325 flattening: 0.0\n    test 326 iteration: None\n    test 327 latlon0: (0.0, 0.0)\n    test 328 latlon0: (1.0, 2.0)\n    test 329 name: coverage\n    test 330 radius: 1.0\n    test 331 NANing: (NAN, NAN, 0.0, 0.0, 0.0, 1.0, None)\n\n    14 of 331 testAzimuthal.py tests (4.2%) FAILED, incl. 8 KNOWN plus 6 DeprecationWarnings (pygeodesy 26.3.26 Python 3.12.10 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 2.1.0 scipy 1.14.1 Math 2 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 isLazy 3 -W  default) 83.791 sec\nrunning /usr/local/bin/p....n3.12 -W default ~/PyGeodesy/test/testBasics.py\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.EPS from .constants by testBasics.py line 11\n# lazily imported pygeodesy.EPS0 from .constants by testBasics.py line 11\n# lazily imported pygeodesy.INF from .constants by testBasics.py line 11\n# lazily imported pygeodesy.INT0 from .constants by testBasics.py line 11\n# lazily imported pygeodesy.NAN from .constants by testBasics.py line 11\n# lazily imported pygeodesy.NEG0 from .constants by testBasics.py line 11\n# lazily imported pygeodesy.NINF from .constants by testBasics.py line 11\n# lazily imported pygeodesy.halfs2 from .basics by testBasics.py line 11\n# lazily imported pygeodesy.isclose from .constants by testBasics.py line 11\n# lazily imported pygeodesy.isfinite from .constants by testBasics.py line 11\n# lazily imported pygeodesy.isint0 from .constants by testBasics.py line 11\n# lazily imported pygeodesy.isiterable from .basics by testBasics.py line 11\n# lazily imported pygeodesy.isiterablen from .basics by testBasics.py line 11\n# lazily imported pygeodesy.isneg0 from .constants by testBasics.py line 11\n# lazily imported pygeodesy.isninf from .constants by testBasics.py line 11\n# lazily imported pygeodesy.isscalar from .basics by testBasics.py line 11\n# lazily imported pygeodesy.map1 from .basics by testBasics.py line 11\n# lazily imported pygeodesy.remainder from .constants by testBasics.py line 11\n# lazily imported pygeodesy.splice from .basics by testBasics.py line 11\n\n    testing testBasics.py 24.09.29 (module pygeodesy.basics 26.02.22) isLazy=3\n    test 1 clips: test/t....ics.py\n    test 2 halfs2: ('test/test', 'Basics.py')\n\n    test 3 isfinite(0): True\n    test 4 isint(0): True\n    test 5 isint(0+0.5): False\n    test 6 isninf(0): False\n    test 7 isscalar(0): True\n\n    test 8 isfinite(0.0): True\n    test 9 isint(0.0): True\n    test 10 isint(0.0+0.5): False\n    test 11 isninf(0.0): False\n    test 12 isscalar(0.0): True\n\n    test 13 isfinite(1): True\n    test 14 isint(1): True\n    test 15 isint(1+0.5): False\n    test 16 isninf(1): False\n    test 17 isscalar(1): True\n\n    test 18 isfinite(1.0): True\n    test 19 isint(1.0): True\n    test 20 isint(1.0+0.5): False\n    test 21 isninf(1.0): False\n    test 22 isscalar(1.0): True\n\n    test 23 isfinite(1e+300): True\n    test 24 isint(1e+300): True\n    test 25 isint(1e+300+0.5): True\n    test 26 isninf(1e+300): False\n    test 27 isscalar(1e+300): True\n\n    test 28 isfinite(-1e+300): True\n    test 29 isint(-1e+300): True\n    test 30 isint(-1e+300+0.5): True\n    test 31 isninf(-1e+300): False\n    test 32 isscalar(-1e+300): True\n\n    test 33 isfinite(inf): False\n    test 34 isint(inf): False\n    test 35 isint(inf+0.5): False\n    test 36 isninf(inf): False\n    test 37 isscalar(inf): True\n\n    test 38 isfinite(inf): False\n    test 39 isint(inf): False\n    test 40 isint(inf+0.5): False\n    test 41 isninf(inf): False\n    test 42 isscalar(inf): True\n\n    test 43 isfinite(nan): False\n    test 44 isint(nan): False\n    test 45 isint(nan+0.5): False\n    test 46 isninf(nan): False\n    test 47 isscalar(nan): True\n\n    test 48 isfinite(-0.0): True\n    test 49 isint(-0.0): True\n    test 50 isint(-0.0+0.5): False\n    test 51 isninf(-0.0): False\n    test 52 isscalar(-0.0): True\n\n    test 53 isfinite(-inf): False\n    test 54 isint(-inf): False\n    test 55 isint(-inf+0.5): False\n    test 56 isninf(-inf): True\n    test 57 isscalar(-inf): True\n\n    test 58 isfinite(complex): True\n    test 59 isfinite(complex): False\n\n    test 60 isint0(INT0): True\n    test 61 isint0(False): False\n    test 62 isint0(None): False\n    test 63 isint0(0): True\n    test 64 isint0(0.): False\n    test 65 isint0(0.0): True\n\n    test 66 isneg0(NEG0): True\n    test 67 isneg0(0.0): False\n    test 68 isneg0(INF): False\n    test 69 isneg0(NAN): False\n\n    test 70 type(C.r_o): property_RO\n    test 71 type(c.r_o): <class 'bool'>\n    test 72 c.r_o: True\n    test 73 c.r_o = False: immutable property_RO: C.r_o = False\n    test 74 c.a, c.b: (None, None)\n    test 75 d.a, d.b: (True, False)\n    test 76 c.a, c.b: (None, None)\n    test 77 splice: ((0, 2, 4, 6, 8), (1, 3, 5, 7, 9))\n    test 78 splice: ((0, 3, 6, 9), (1, 4, 7), (2, 5, 8))\n    test 79 splice: ((0, 3, 6, 9), (1, 4, 7, -1), (2, 5, 8, -1))\n    test 80 splice: ((0, 5, 10), (1, 6, 11), (2, 7), (3, 8), (4, 9))\n\n    test 81 remainder(181, 360): -179.0\n    test 82 remainder(181, -360): -179.0\n    test 83 remainder(181, inf): 181.0\n    test 84 remainder(181, nan): nan\n    test 85 remainder(181, -inf): 181.0\n    test 86 remainder(-181, 360): 179.0\n    test 87 remainder(-181, -360): 179.0\n    test 88 remainder(-181, inf): -181.0\n    test 89 remainder(-181, nan): nan\n    test 90 remainder(-181, -inf): -181.0\n    test 91 remainder(179, 360): 179.0\n    test 92 remainder(179, -360): 179.0\n    test 93 remainder(179, inf): 179.0\n    test 94 remainder(179, nan): nan\n    test 95 remainder(179, -inf): 179.0\n    test 96 remainder(-179, 360): -179.0\n    test 97 remainder(-179, -360): -179.0\n    test 98 remainder(-179, inf): -179.0\n    test 99 remainder(-179, nan): nan\n    test 100 remainder(-179, -inf): -179.0\n    test 101 remainder(inf, 360): math domain error\n    test 102 remainder(inf, -360): math domain error\n    test 103 remainder(inf, inf): math domain error\n    test 104 remainder(inf, nan): nan\n    test 105 remainder(inf, -inf): math domain error\n    test 106 remainder(nan, 360): nan\n    test 107 remainder(nan, -360): nan\n    test 108 remainder(nan, inf): nan\n    test 109 remainder(nan, nan): nan\n    test 110 remainder(nan, -inf): nan\n    test 111 remainder(-inf, 360): math domain error\n    test 112 remainder(-inf, -360): math domain error\n    test 113 remainder(-inf, inf): math domain error\n    test 114 remainder(-inf, nan): nan\n    test 115 remainder(-inf, -inf): math domain error\n    test 116 isclose: True\n    test 117 isclose: False\n\n    test 118 isiterable(dict): True\n    test 119 isiterablen(dict): True\n    test 120 isiterable(map): True\n    test 121 isiterablen(map): False\n    test 122 isiterable(list): True\n    test 123 isiterablen(list): True\n    test 124 isiterable(range): True\n    test 125 isiterablen(range): True\n    test 126 isiterable(tuple): True\n    test 127 isiterablen(tuple): True\n    test 128 isiterable(set): True\n    test 129 isiterablen(set): False\n\n    all 129 testBasics.py tests passed (pygeodesy 26.3.26 Python 3.12.10 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 2.1.0 scipy 1.14.1 Math 2 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 isLazy 3 -W  default) 807.047 us\nrunning /usr/local/bin/p....n3.12 -W default ~/PyGeodesy/test/testBooleans.py\n./test/testBooleans.py:50: DeprecationWarning: function L{areaOf<pygeodesy.ellipsoidalVincenty.areaOf>} has been DEPRECATED, use function L{ellipsoidalExact.areaOf} or L{ellipsoidalKarney.areaOf}.\n  self.test(areaOf.__name__, areaOf(b) == areaOf(t), True)\n./pygeodesy/ellipsoidalKarney.py:139: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return fabs(_polygon(datum.ellipsoid.geodesic, points, True, False, wrap, polar))\n./test/testBooleans.py:53: DeprecationWarning: function L{perimeterOf<pygeodesy.ellipsoidalVincenty.perimeterOf>} has been DEPRECATED, use function L{ellipsoidalExact.perimeterOf} or L{ellipsoidalKarney.perimeterOf}.\n  self.test(periOf.__name__, periOf(b, closed=True) == periOf(t, closed=True), True)\n./pygeodesy/ellipsoidalKarney.py:347: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return _polygon(datum.ellipsoid.geodesic, points, closed, True, wrap, False)\n./test/testBooleans.py:82: DeprecationWarning: function L{areaOf<pygeodesy.ellipsoidalVincenty.areaOf>} has been DEPRECATED, use function L{ellipsoidalExact.areaOf} or L{ellipsoidalKarney.areaOf}.\n  self.test(areaOf.__name__, areaOf(b) == areaOf(t), True)\n./test/testBooleans.py:85: DeprecationWarning: function L{perimeterOf<pygeodesy.ellipsoidalVincenty.perimeterOf>} has been DEPRECATED, use function L{ellipsoidalExact.perimeterOf} or L{ellipsoidalKarney.perimeterOf}.\n  self.test(periOf.__name__, periOf(b, closed=True) == periOf(t, closed=True), True)\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.BooleanFHP from .booleans by testBooleans.py line 11\n# lazily imported pygeodesy.BooleanGH from .booleans by testBooleans.py line 11\n# lazily imported pygeodesy.isenclosedBy from .points by testBooleans.py line 11\n# lazily imported pygeodesy.ellipsoidalExact by testBooleans.py line 95\n# lazily imported pygeodesy.ellipsoidalVincenty by testBooleans.py line 95\n# lazily imported pygeodesy.sphericalNvector by testBooleans.py line 95\n# lazily imported pygeodesy.sphericalTrigonometry by testBooleans.py line 95\n\n    testing testBooleans.py 23.03.31 isLazy=3\n\n    testing(pygeodesy.ellipsoidalExact, 25.08.28)\n    test 1 and: BooleanGH[4]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=7.0, lon=5.0, height=2.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=3.0, lon=5.0, height=2.0))\n    test 2 or: BooleanGH[6]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=0.0, lon=0.0, height=1.0), (lat=0.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=10.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0))\n    test 3 minus: BooleanGH[5]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=0.0, lon=0.0, height=1.0), (lat=0.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=3.0, lon=5.0, height=2.0))\n    test 4 rev_d: BooleanGH[5]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=10.0, lon=0.0, height=1.0), (lat=10.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=7.0, lon=5.0, height=2.0))\n    test 5 iand: BooleanGH[4]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=7.0, lon=5.0, height=2.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=3.0, lon=5.0, height=2.0))\n    test 6 ior: BooleanGH[6]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=0.0, lon=0.0, height=1.0), (lat=0.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=10.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0))\n    test 7 sum: BooleanGH[2][6]((lat=0.0, lon=0.0, height=1.0), (lat=7.0, lon=5.0, height=2.0), (lat=0.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0, clipid=1), (lat=3.0, lon=5.0, height=2.0, clipid=1), (lat=10.0, lon=10.0, height=3.0, clipid=1))\n\n    test 8 GH ==: True\n    test 9 equalTo: True\n# lazily imported pygeodesy.geodesicx by ellipsoids.py line 1082\n# lazily imported pygeodesy.elliptic by gx.py line 421\n    test 10 areaOf: True\n    test 11 enclosed: True\n    test 12 enclosed: False\n    test 13 perimeterOf: True\n\n    test 14 toLatLon[0:3]: (LatLon(00°00′00.0″N, 000°00′00.0″E, +1.00m), LatLon(07°00′00.0″N, 005°00′00.0″E, +2.00m), LatLon(00°00′00.0″N, 010°00′00.0″E, +3.00m))\n    test 15 toLatLon[-3:]: ((lat=10.0, lon=0.0, height=1.0, clipid=1), (lat=3.0, lon=5.0, height=2.0, clipid=1), (lat=10.0, lon=10.0, height=3.0, clipid=1))\n\n    test 16 and: BooleanFHP[4]((lat=7.0, lon=5.0, height=2.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=3.0, lon=5.0, height=2.0), (lat=5.0, lon=3.5714286, height=1.7142857))\n    test 17 or: BooleanFHP[6]((lat=0.0, lon=0.0, height=1.0), (lat=0.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=10.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0), (lat=5.0, lon=3.5714286, height=1.7142857))\n    test 18 iand: BooleanFHP[4]((lat=7.0, lon=5.0, height=2.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=3.0, lon=5.0, height=2.0), (lat=5.0, lon=3.5714286, height=1.7142857))\n    test 19 ior: BooleanFHP[6]((lat=0.0, lon=0.0, height=1.0), (lat=0.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=10.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0), (lat=5.0, lon=3.5714286, height=1.7142857))\n    test 20 sum: BooleanFHP[2][6]((lat=0.0, lon=0.0, height=1.0), (lat=7.0, lon=5.0, height=2.0), (lat=0.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0, clipid=1), (lat=3.0, lon=5.0, height=2.0, clipid=1), (lat=10.0, lon=10.0, height=3.0, clipid=1))\n\n    test 21 FHP ==: True\n    test 22 equalTo: True\n    test 23 areaOf: True\n    test 24 enclosed: True\n    test 25 enclosed: False\n    test 26 perimeterOf: True\n\n    test 27 toLatLon[0:3]: (LatLon(00°00′00.0″N, 000°00′00.0″E, +1.00m), LatLon(07°00′00.0″N, 005°00′00.0″E, +2.00m), LatLon(00°00′00.0″N, 010°00′00.0″E, +3.00m))\n    test 28 toLatLon[-3:]: ((lat=10.0, lon=0.0, height=1.0, clipid=1), (lat=3.0, lon=5.0, height=2.0, clipid=1), (lat=10.0, lon=10.0, height=3.0, clipid=1))\n\n    testing(pygeodesy.ellipsoidalVincenty, 25.05.26)\n    test 29 and: BooleanGH[4]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=7.0, lon=5.0, height=2.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=3.0, lon=5.0, height=2.0))\n    test 30 or: BooleanGH[6]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=0.0, lon=0.0, height=1.0), (lat=0.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=10.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0))\n    test 31 minus: BooleanGH[5]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=0.0, lon=0.0, height=1.0), (lat=0.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=3.0, lon=5.0, height=2.0))\n    test 32 rev_d: BooleanGH[5]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=10.0, lon=0.0, height=1.0), (lat=10.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=7.0, lon=5.0, height=2.0))\n    test 33 iand: BooleanGH[4]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=7.0, lon=5.0, height=2.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=3.0, lon=5.0, height=2.0))\n    test 34 ior: BooleanGH[6]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=0.0, lon=0.0, height=1.0), (lat=0.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=10.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0))\n    test 35 sum: BooleanGH[2][6]((lat=0.0, lon=0.0, height=1.0), (lat=7.0, lon=5.0, height=2.0), (lat=0.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0, clipid=1), (lat=3.0, lon=5.0, height=2.0, clipid=1), (lat=10.0, lon=10.0, height=3.0, clipid=1))\n\n    test 36 GH ==: True\n    test 37 equalTo: True\n# lazily imported pygeodesy.ellipsoidalKarney by ellipsoidalVincenty.py line 383\n# lazily imported pygeodesy.geodesicw by ellipsoids.py line 1074\n    test 38 areaOf: True\n    test 39 enclosed: True\n    test 40 enclosed: False\n    test 41 perimeterOf: True\n\n    test 42 toLatLon[0:3]: (LatLon(00°00′00.0″N, 000°00′00.0″E, +1.00m), LatLon(07°00′00.0″N, 005°00′00.0″E, +2.00m), LatLon(00°00′00.0″N, 010°00′00.0″E, +3.00m))\n    test 43 toLatLon[-3:]: ((lat=10.0, lon=0.0, height=1.0, clipid=1), (lat=3.0, lon=5.0, height=2.0, clipid=1), (lat=10.0, lon=10.0, height=3.0, clipid=1))\n\n    test 44 and: BooleanFHP[4]((lat=7.0, lon=5.0, height=2.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=3.0, lon=5.0, height=2.0), (lat=5.0, lon=3.5714286, height=1.7142857))\n    test 45 or: BooleanFHP[6]((lat=0.0, lon=0.0, height=1.0), (lat=0.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=10.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0), (lat=5.0, lon=3.5714286, height=1.7142857))\n    test 46 iand: BooleanFHP[4]((lat=7.0, lon=5.0, height=2.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=3.0, lon=5.0, height=2.0), (lat=5.0, lon=3.5714286, height=1.7142857))\n    test 47 ior: BooleanFHP[6]((lat=0.0, lon=0.0, height=1.0), (lat=0.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=10.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0), (lat=5.0, lon=3.5714286, height=1.7142857))\n    test 48 sum: BooleanFHP[2][6]((lat=0.0, lon=0.0, height=1.0), (lat=7.0, lon=5.0, height=2.0), (lat=0.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0, clipid=1), (lat=3.0, lon=5.0, height=2.0, clipid=1), (lat=10.0, lon=10.0, height=3.0, clipid=1))\n\n    test 49 FHP ==: True\n    test 50 equalTo: True\n    test 51 areaOf: True\n    test 52 enclosed: True\n    test 53 enclosed: False\n    test 54 perimeterOf: True\n\n    test 55 toLatLon[0:3]: (LatLon(00°00′00.0″N, 000°00′00.0″E, +1.00m), LatLon(07°00′00.0″N, 005°00′00.0″E, +2.00m), LatLon(00°00′00.0″N, 010°00′00.0″E, +3.00m))\n    test 56 toLatLon[-3:]: ((lat=10.0, lon=0.0, height=1.0, clipid=1), (lat=3.0, lon=5.0, height=2.0, clipid=1), (lat=10.0, lon=10.0, height=3.0, clipid=1))\n\n    testing(pygeodesy.sphericalNvector, 25.05.27)\n    test 57 and: BooleanGH[4]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=7.0, lon=5.0, height=2.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=3.0, lon=5.0, height=2.0))\n    test 58 or: BooleanGH[6]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=0.0, lon=0.0, height=1.0), (lat=0.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=10.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0))\n    test 59 minus: BooleanGH[5]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=0.0, lon=0.0, height=1.0), (lat=0.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=3.0, lon=5.0, height=2.0))\n    test 60 rev_d: BooleanGH[5]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=10.0, lon=0.0, height=1.0), (lat=10.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=7.0, lon=5.0, height=2.0))\n    test 61 iand: BooleanGH[4]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=7.0, lon=5.0, height=2.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=3.0, lon=5.0, height=2.0))\n    test 62 ior: BooleanGH[6]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=0.0, lon=0.0, height=1.0), (lat=0.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=10.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0))\n    test 63 sum: BooleanGH[2][6]((lat=0.0, lon=0.0, height=1.0), (lat=7.0, lon=5.0, height=2.0), (lat=0.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0, clipid=1), (lat=3.0, lon=5.0, height=2.0, clipid=1), (lat=10.0, lon=10.0, height=3.0, clipid=1))\n\n    test 64 GH ==: True\n    test 65 equalTo: True\n# imported pygeodesy.formy into latlonBase.py line 756\n    test 66 areaOf: True\n    test 67 enclosed: True\n    test 68 enclosed: False\n    test 69 perimeterOf: True\n\n    test 70 toLatLon[0:3]: (LatLon(00°00′00.0″N, 000°00′00.0″E, +1.00m), LatLon(07°00′00.0″N, 005°00′00.0″E, +2.00m), LatLon(00°00′00.0″N, 010°00′00.0″E, +3.00m))\n    test 71 toLatLon[-3:]: ((lat=10.0, lon=0.0, height=1.0, clipid=1), (lat=3.0, lon=5.0, height=2.0, clipid=1), (lat=10.0, lon=10.0, height=3.0, clipid=1))\n\n    test 72 and: BooleanFHP[4]((lat=7.0, lon=5.0, height=2.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=3.0, lon=5.0, height=2.0), (lat=5.0, lon=3.5714286, height=1.7142857))\n    test 73 or: BooleanFHP[6]((lat=0.0, lon=0.0, height=1.0), (lat=0.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=10.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0), (lat=5.0, lon=3.5714286, height=1.7142857))\n    test 74 iand: BooleanFHP[4]((lat=7.0, lon=5.0, height=2.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=3.0, lon=5.0, height=2.0), (lat=5.0, lon=3.5714286, height=1.7142857))\n    test 75 ior: BooleanFHP[6]((lat=0.0, lon=0.0, height=1.0), (lat=0.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=10.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0), (lat=5.0, lon=3.5714286, height=1.7142857))\n    test 76 sum: BooleanFHP[2][6]((lat=0.0, lon=0.0, height=1.0), (lat=7.0, lon=5.0, height=2.0), (lat=0.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0, clipid=1), (lat=3.0, lon=5.0, height=2.0, clipid=1), (lat=10.0, lon=10.0, height=3.0, clipid=1))\n\n    test 77 FHP ==: True\n    test 78 equalTo: True\n    test 79 areaOf: True\n    test 80 enclosed: True\n    test 81 enclosed: False\n    test 82 perimeterOf: True\n\n    test 83 toLatLon[0:3]: (LatLon(00°00′00.0″N, 000°00′00.0″E, +1.00m), LatLon(07°00′00.0″N, 005°00′00.0″E, +2.00m), LatLon(00°00′00.0″N, 010°00′00.0″E, +3.00m))\n    test 84 toLatLon[-3:]: ((lat=10.0, lon=0.0, height=1.0, clipid=1), (lat=3.0, lon=5.0, height=2.0, clipid=1), (lat=10.0, lon=10.0, height=3.0, clipid=1))\n\n    testing(pygeodesy.sphericalTrigonometry, 25.08.31)\n    test 85 and: BooleanGH[4]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=7.0, lon=5.0, height=2.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=3.0, lon=5.0, height=2.0))\n    test 86 or: BooleanGH[6]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=0.0, lon=0.0, height=1.0), (lat=0.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=10.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0))\n    test 87 minus: BooleanGH[5]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=0.0, lon=0.0, height=1.0), (lat=0.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=3.0, lon=5.0, height=2.0))\n    test 88 rev_d: BooleanGH[5]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=10.0, lon=0.0, height=1.0), (lat=10.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=7.0, lon=5.0, height=2.0))\n    test 89 iand: BooleanGH[4]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=7.0, lon=5.0, height=2.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=3.0, lon=5.0, height=2.0))\n    test 90 ior: BooleanGH[6]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=0.0, lon=0.0, height=1.0), (lat=0.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=10.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0))\n    test 91 sum: BooleanGH[2][6]((lat=0.0, lon=0.0, height=1.0), (lat=7.0, lon=5.0, height=2.0), (lat=0.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0, clipid=1), (lat=3.0, lon=5.0, height=2.0, clipid=1), (lat=10.0, lon=10.0, height=3.0, clipid=1))\n\n    test 92 GH ==: True\n    test 93 equalTo: True\n    test 94 areaOf: True\n    test 95 enclosed: True\n    test 96 enclosed: False\n    test 97 perimeterOf: True\n\n    test 98 toLatLon[0:3]: (LatLon(00°00′00.0″N, 000°00′00.0″E, +1.00m), LatLon(07°00′00.0″N, 005°00′00.0″E, +2.00m), LatLon(00°00′00.0″N, 010°00′00.0″E, +3.00m))\n    test 99 toLatLon[-3:]: ((lat=10.0, lon=0.0, height=1.0, clipid=1), (lat=3.0, lon=5.0, height=2.0, clipid=1), (lat=10.0, lon=10.0, height=3.0, clipid=1))\n\n    test 100 and: BooleanFHP[4]((lat=7.0, lon=5.0, height=2.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=3.0, lon=5.0, height=2.0), (lat=5.0, lon=3.5714286, height=1.7142857))\n    test 101 or: BooleanFHP[6]((lat=0.0, lon=0.0, height=1.0), (lat=0.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=10.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0), (lat=5.0, lon=3.5714286, height=1.7142857))\n    test 102 iand: BooleanFHP[4]((lat=7.0, lon=5.0, height=2.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=3.0, lon=5.0, height=2.0), (lat=5.0, lon=3.5714286, height=1.7142857))\n    test 103 ior: BooleanFHP[6]((lat=0.0, lon=0.0, height=1.0), (lat=0.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=10.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0), (lat=5.0, lon=3.5714286, height=1.7142857))\n    test 104 sum: BooleanFHP[2][6]((lat=0.0, lon=0.0, height=1.0), (lat=7.0, lon=5.0, height=2.0), (lat=0.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0, clipid=1), (lat=3.0, lon=5.0, height=2.0, clipid=1), (lat=10.0, lon=10.0, height=3.0, clipid=1))\n\n    test 105 FHP ==: True\n    test 106 equalTo: True\n    test 107 areaOf: True\n    test 108 enclosed: True\n    test 109 enclosed: False\n    test 110 perimeterOf: True\n\n    test 111 toLatLon[0:3]: (LatLon(00°00′00.0″N, 000°00′00.0″E, +1.00m), LatLon(07°00′00.0″N, 005°00′00.0″E, +2.00m), LatLon(00°00′00.0″N, 010°00′00.0″E, +3.00m))\n    test 112 toLatLon[-3:]: ((lat=10.0, lon=0.0, height=1.0, clipid=1), (lat=3.0, lon=5.0, height=2.0, clipid=1), (lat=10.0, lon=10.0, height=3.0, clipid=1))\n\n    16 of 112 testBooleans.py tests (14.3%) FAILED, incl. 16 DeprecationWarnings (pygeodesy 26.3.26 Python 3.12.10 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 2.1.0 scipy 1.14.1 Math 2 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 isLazy 3 -W  default) 5.343 sec\nrunning /usr/local/bin/p....n3.12 -W default ~/PyGeodesy/test/testCartesian.py\n./pygeodesy/basics.py:637: DeprecationWarning: Conversion of an array with ndim > 0 to a scalar is deprecated, and will error in future. Ensure you extract a single element from your array before performing this operation. (Deprecated NumPy 1.25.)\n  return tuple(map(fun, *xs, **strict) if strict else map(fun, *xs))\n./test/testCartesian.py:44: DeprecationWarning: method L{convertDatum<pygeodesy.ellipsoidalNvector.Cartesian.convertDatum>} has been DEPRECATED, use method L{toDatum}.\n  d = c.convertDatum(datum2)\n./test/testCartesian.py:45: DeprecationWarning: method L{convertDatum<pygeodesy.ellipsoidalNvector.Cartesian.convertDatum>} has been DEPRECATED, use method L{toDatum}.\n  t = d.convertDatum(datum)\n<string>:1: DeprecationWarning: method L{__matmul__<pygeodesy.trf.RefFrame.__matmul__>} has been DEPRECATED on 2024.02.16, use method C{B{point}.toRefFrame}.\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.Aer from .ltpTuples by testCartesian.py line 11\n# lazily imported pygeodesy.classname from .named by testCartesian.py line 11\n# lazily imported pygeodesy.Datums from .datums by testCartesian.py line 11\n# lazily imported pygeodesy.degrees from .utily by testCartesian.py line 11\n# lazily imported pygeodesy.Enu from .ltpTuples by testCartesian.py line 11\n# lazily imported pygeodesy.fstr from .streprs by testCartesian.py line 11\n# lazily imported pygeodesy.Local9Tuple from .ltpTuples by testCartesian.py line 11\n# lazily imported pygeodesy.Ltp from .ltp by testCartesian.py line 11\n# lazily imported pygeodesy.modulename from .named by testCartesian.py line 11\n# lazily imported pygeodesy.Ned from .ltpTuples by testCartesian.py line 11\n# lazily imported pygeodesy.rtp2xyz from .cartesianBase by testCartesian.py line 11\n# lazily imported pygeodesy.xyz2rtp from .cartesianBase by testCartesian.py line 11\n# lazily imported pygeodesy.RefFrames from .trf by testCartesian.py line 11\n# lazily imported pygeodesy.XyzLocal from .ltpTuples by testCartesian.py line 11\n# lazily imported pygeodesy.Transforms from .datums by testCartesian.py line 13\n# lazily imported pygeodesy.ellipsoidalExact by testCartesian.py line 209\n# lazily imported pygeodesy.ellipsoidalNvector by testCartesian.py line 209\n# lazily imported pygeodesy.ellipsoidalVincenty by testCartesian.py line 209\n# lazily imported pygeodesy.sphericalNvector by testCartesian.py line 209\n# lazily imported pygeodesy.sphericalTrigonometry by testCartesian.py line 209\n\n    testing testCartesian.py 25.05.12 isLazy=3\n\n    testCartesian(pygeodesy.sphericalNvector, 25.05.27)\n    test 1 Cartesian0: [3980581, 97, 4966825]\n    test 2 Cartesian4: [3980581.0, 97.0, 4966825.0]\n    test 3 isEllipsoidal: False\n    test 4 isSpherical: True\n    test 5 copy(<class 'type'>): (<class 'pygeodesy.sphericalNvector.Cartesian'>, True)\n    test 6 Cartesian.copy(): (<class 'pygeodesy.sphericalNvector.Cartesian'>, True)\n    test 7 height: -5918.380258\n    test 8 height4: (3984282.2, 97.1, 4971443.2, -5918.4)\n    test 9 height4: [3984282.2, 97.1, 4971443.2]\n    test 10 height3: (3980581.0, 97.0, 4966825.0)\n    test 11 Nvector: Nvector(0.62538, 0.00002, 0.78032, -5918.38)\n    test 12 Nvector3: (0.625, 0.0, 0.78, -5918.38)\n    test 13 Nvector6: (0.625377, 0.000015, 0.780323, -5918.38)\n    test 14 LatLon: 50.0379°N, 008.5622°E\n    test 15 LatLon: 51.47°N, 000.4543°E\n    test 16 LatLon: 40.633365°N, 073.783328°W\n    test 17 LatLon: 33.95°N, 118.4°W\n    test 18 LatLon: 41.32°S, 174.81°E, +0.00m  FAILED, KNOWN, expected 41.32°S, 174.81°E\n    test 19 LatLon: 40.96°N, 005.5°E\n    test 20 LatLon: 40.1°N, 116.6°E\n    test 21 LatLon: 37.6°N, 122.4°W, -0.00m  FAILED, KNOWN, expected 37.6°N, 122.4°W\n    test 22 copy: True\n    test 23 __eq__: True\n    test 24 __ne__: False\n    test 25 Cartesian: <class 'pygeodesy.sphericalNvector.Cartesian'>\n    test 26 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 27 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 28 latlonheightdatum: <class 'pygeodesy.namedTuples.LatLon4Tuple'>\n    test 29 height4: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 30 isequalTo: <class 'bool'>\n    test 31 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 32 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 33 philamheightdatum: <class 'pygeodesy.namedTuples.PhiLam4Tuple'>\n    test 34 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n# imported pygeodesy.ltpTuples into ecefLocals.py line 80\n# imported pygeodesy.ltp into ecefLocals.py line 63\n# imported pygeodesy.ltp into ltpTuples.py line 1585\n    test 35 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 36 toEcef: <class 'pygeodesy.ecef.Ecef9Tuple'>\n    test 37 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 38 toLatLon: <class 'pygeodesy.sphericalNvector.LatLon'>\n    test 39 toLLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 40 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 41 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 42 toNvector: <class 'pygeodesy.sphericalNvector.Nvector'>\n    test 43 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 44 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 45 xyz3: <class 'tuple'>\n    test 46 Cartesian: <class 'pygeodesy.cartesianBase.CartesianBase'>\n    test 47 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 48 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 49 latlonheightdatum: <class 'pygeodesy.namedTuples.LatLon4Tuple'>\n    test 50 height4: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 51 isequalTo: <class 'bool'>\n    test 52 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 53 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 54 philamheightdatum: <class 'pygeodesy.namedTuples.PhiLam4Tuple'>\n    test 55 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 56 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 57 toEcef: <class 'pygeodesy.ecef.Ecef9Tuple'>\n    test 58 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 59 toLatLon: <class 'pygeodesy.ecef.Ecef9Tuple'>\n    test 60 toLLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 61 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 62 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 63 toNvector: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 64 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 65 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 66 xyz3: <class 'tuple'>\n    test 67 sphericalNvector.Cartesian.intersections2: 37.673442°N, 090.234036°W\n    test 68 sphericalNvector.Cartesian.intersections2: 36.109987°N, 090.95367°W\n    test 69 sphericalNvector.Cartesian.intersections2: [-0.032779, -0.784769, 0.61892]\n    test 70 sphericalNvector.Cartesian.intersections2: 38.237342°N, 092.391779°W\n    test 71 sphericalNvector.Cartesian.intersections2: [0.025768, -0.798347, 0.601646]\n    test 72 sphericalNvector.Cartesian.intersections2: 36.987868°N, 088.151309°W\n# lazily imported pygeodesy.trilaterate3d2 from .vector3d by testCartesian.py line 149\n# imported pygeodesy.vector2d into vector3d.py line 894\n    test 73 vector3d.trilaterate3d2: [-0.032761, -0.784757, 0.618937]\n    test 74 vector3d.trilaterate3d2: [0.025768, -0.798331, 0.601668]\n    test 75 vector3d.intersections2: (-0.0035, -0.791926, 0.610589)\n    test 76 vector3d.intersections2: 0.0312613\n    test 77 vector3d.intersections2: (-0.021973, -0.766467, 0.0)\n    test 78 vector3d.intersections2: (0.027459, -0.797488, 0.0)\n\n    test 79 xyz2rtp: 37.417, 36.699, 63.435\n    test 80 xyz2rtp: <class 'pygeodesy.cartesianBase.RadiusThetaPhi3Tuple'>\n    test 81 rtp2xyz: 10.0, 20.0, 30.0\n    test 82 rtp2xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 83 toCartesian: Cartesian(10.0, 20.0, 30.0)\n    test 84 toRtp: Test(r=37.416574, theta=36.699225, phi=63.434949)\n\n    test 85 destinationXyz: Tuple(x=10.175954, y=20.351908, z=32.201182, lat=54.754059, lon=63.434949, height=-6370969.342158, C=2, M=None, datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84))\n./test/testCartesian.py:44: DeprecationWarning: method L{convertDatum<pygeodesy.ellipsoidalVincenty.Cartesian.convertDatum>} has been DEPRECATED, use method L{toDatum}.\n  d = c.convertDatum(datum2)\n./test/testCartesian.py:45: DeprecationWarning: method L{convertDatum<pygeodesy.ellipsoidalVincenty.Cartesian.convertDatum>} has been DEPRECATED, use method L{toDatum}.\n  t = d.convertDatum(datum)\n    test 86 destinationXyz: Cartesian(10.176, 20.352, 32.201)\n\n    testCartesian(pygeodesy.sphericalTrigonometry, 25.08.31)\n    test 87 Cartesian0: [3980581, 97, 4966825]\n    test 88 Cartesian4: [3980581.0, 97.0, 4966825.0]\n    test 89 isEllipsoidal: False\n    test 90 isSpherical: True\n    test 91 copy(<class 'type'>): (<class 'pygeodesy.sphericalTrigonometry.Cartesian'>, True)\n    test 92 Cartesian.copy(): (<class 'pygeodesy.sphericalTrigonometry.Cartesian'>, True)\n    test 93 height: -5918.380258\n    test 94 height4: (3984282.2, 97.1, 4971443.2, -5918.4)\n    test 95 height4: [3984282.2, 97.1, 4971443.2]\n    test 96 height3: (3980581.0, 97.0, 4966825.0)\n    test 97 Vector4Tuple: 0.625376979, 1.52393751e-05, 0.780322775, -5918.38026\n    test 98 LatLon: 50.0379°N, 008.5622°E\n    test 99 LatLon: 51.47°N, 000.4543°E\n    test 100 LatLon: 40.633365°N, 073.783328°W\n    test 101 LatLon: 33.95°N, 118.4°W\n    test 102 LatLon: 41.32°S, 174.81°E, +0.00m  FAILED, KNOWN, expected 41.32°S, 174.81°E\n    test 103 LatLon: 40.96°N, 005.5°E\n    test 104 LatLon: 40.1°N, 116.6°E\n    test 105 LatLon: 37.6°N, 122.4°W, -0.00m  FAILED, KNOWN, expected 37.6°N, 122.4°W\n    test 106 copy: True\n    test 107 __eq__: True\n    test 108 __ne__: False\n    test 109 Cartesian: <class 'pygeodesy.sphericalTrigonometry.Cartesian'>\n    test 110 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 111 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 112 latlonheightdatum: <class 'pygeodesy.namedTuples.LatLon4Tuple'>\n    test 113 height4: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 114 isequalTo: <class 'bool'>\n    test 115 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 116 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 117 philamheightdatum: <class 'pygeodesy.namedTuples.PhiLam4Tuple'>\n    test 118 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 119 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 120 toEcef: <class 'pygeodesy.ecef.Ecef9Tuple'>\n    test 121 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 122 toLatLon: <class 'pygeodesy.sphericalTrigonometry.LatLon'>\n    test 123 toLLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 124 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 125 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 126 toNvector: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 127 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 128 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 129 xyz3: <class 'tuple'>\n    test 130 Cartesian: <class 'pygeodesy.cartesianBase.CartesianBase'>\n    test 131 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 132 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 133 latlonheightdatum: <class 'pygeodesy.namedTuples.LatLon4Tuple'>\n    test 134 height4: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 135 isequalTo: <class 'bool'>\n    test 136 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 137 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 138 philamheightdatum: <class 'pygeodesy.namedTuples.PhiLam4Tuple'>\n    test 139 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 140 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 141 toEcef: <class 'pygeodesy.ecef.Ecef9Tuple'>\n    test 142 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 143 toLatLon: <class 'pygeodesy.ecef.Ecef9Tuple'>\n    test 144 toLLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 145 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 146 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 147 toNvector: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 148 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 149 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 150 xyz3: <class 'tuple'>\n    test 151 sphericalTrigonometry.Cartesian.intersections2: 37.673442°N, 090.234036°W\n    test 152 sphericalTrigonometry.Cartesian.intersections2: 36.109987°N, 090.95367°W\n    test 153 sphericalTrigonometry.Cartesian.intersections2: [-0.032779, -0.784769, 0.61892]\n    test 154 sphericalTrigonometry.Cartesian.intersections2: 38.237342°N, 092.391779°W\n    test 155 sphericalTrigonometry.Cartesian.intersections2: [0.025768, -0.798347, 0.601646]\n    test 156 sphericalTrigonometry.Cartesian.intersections2: 36.987868°N, 088.151309°W\n    test 157 vector3d.trilaterate3d2: [-0.032761, -0.784757, 0.618937]\n    test 158 vector3d.trilaterate3d2: [0.025768, -0.798331, 0.601668]\n    test 159 vector3d.intersections2: (-0.0035, -0.791926, 0.610589)\n    test 160 vector3d.intersections2: 0.0312613\n    test 161 vector3d.intersections2: (-0.021973, -0.766467, 0.0)\n    test 162 vector3d.intersections2: (0.027459, -0.797488, 0.0)\n\n    test 163 xyz2rtp: 37.417, 36.699, 63.435\n    test 164 xyz2rtp: <class 'pygeodesy.cartesianBase.RadiusThetaPhi3Tuple'>\n    test 165 rtp2xyz: 10.0, 20.0, 30.0\n    test 166 rtp2xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 167 toCartesian: Cartesian(10.0, 20.0, 30.0)\n    test 168 toRtp: Test(r=37.416574, theta=36.699225, phi=63.434949)\n\n    test 169 destinationXyz: Tuple(x=10.175954, y=20.351908, z=32.201182, lat=54.754059, lon=63.434949, height=-6370969.342158, C=2, M=None, datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84))\n    test 170 destinationXyz: Cartesian(10.176, 20.352, 32.201)\n\n    testCartesian(pygeodesy.ellipsoidalNvector, 25.05.12)\n    test 171 Cartesian0: [3980581, 97, 4966825]\n    test 172 Cartesian4: [3980581.0, 97.0, 4966825.0]\n    test 173 isEllipsoidal: True\n    test 174 isSpherical: False\n    test 175 copy(<class 'type'>): (<class 'pygeodesy.ellipsoidalNvector.Cartesian'>, True)\n    test 176 Cartesian.copy(): (<class 'pygeodesy.ellipsoidalNvector.Cartesian'>, True)\n    test 177 convertDatum: [3980581.0, 97.0, 4966825.0]\n# imported pygeodesy.basics into errors.py line 715\n    test 178 __matmul__: [3980580.124, 107.691, 4966819.407]\n    test 179 __matmul__: [3980580.124, 107.691, 4966819.407]\n    test 180 __matmul__: [3980580.998, 97.0, 4966824.998]\n# lazily imported pygeodesy.triaxials by lazily.py line 529\n    test 181 height: 0.242887\n    test 182 height4: (3980580.8, 97.0, 4966824.8, 0.2)\n    test 183 height4: [3980580.8, 97.0, 4966824.8]\n    test 184 height3: (3980581.0, 97.0, 4966825.0)\n    test 185 Nvector: Nvector(0.62282, 0.00002, 0.78237, +0.24)\n    test 186 Nvector3: (0.623, 0.0, 0.782, +0.24)\n    test 187 Nvector6: (0.622818, 0.000015, 0.782367, +0.24)\n    test 188 LatLon: 50.0379°N, 008.5622°E, +0.00m  FAILED, KNOWN, expected 50.0379°N, 008.5622°E\n    test 189 LatLon: 51.47°N, 000.4543°E, -0.00m  FAILED, KNOWN, expected 51.47°N, 000.4543°E\n    test 190 LatLon: 40.633365°N, 073.783328°W\n    test 191 LatLon: 33.95°N, 118.4°W\n    test 192 LatLon: 41.32°S, 174.81°E, +0.00m  FAILED, KNOWN, expected 41.32°S, 174.81°E\n    test 193 LatLon: 40.96°N, 005.5°E, -0.00m  FAILED, KNOWN, expected 40.96°N, 005.5°E\n    test 194 LatLon: 40.1°N, 116.6°E, -0.00m  FAILED, KNOWN, expected 40.1°N, 116.6°E\n    test 195 LatLon: 37.6°N, 122.4°W\n    test 196 copy: True\n    test 197 __eq__: True\n    test 198 __ne__: False\n    test 199 Cartesian: <class 'pygeodesy.ellipsoidalNvector.Cartesian'>\n    test 200 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 201 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 202 latlonheightdatum: <class 'pygeodesy.namedTuples.LatLon4Tuple'>\n    test 203 height4: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 204 isequalTo: <class 'bool'>\n    test 205 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 206 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 207 philamheightdatum: <class 'pygeodesy.namedTuples.PhiLam4Tuple'>\n    test 208 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 209 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 210 toEcef: <class 'pygeodesy.ecef.Ecef9Tuple'>\n    test 211 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 212 toLatLon: <class 'pygeodesy.ellipsoidalNvector.LatLon'>\n    test 213 toLLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n./test/testCartesian.py:44: DeprecationWarning: method L{convertDatum<pygeodesy.ellipsoidalKarney.Cartesian.convertDatum>} has been DEPRECATED, use method L{toDatum}.\n  d = c.convertDatum(datum2)\n./test/testCartesian.py:45: DeprecationWarning: method L{convertDatum<pygeodesy.ellipsoidalKarney.Cartesian.convertDatum>} has been DEPRECATED, use method L{toDatum}.\n  t = d.convertDatum(datum)\n./test/testCartesian.py:44: DeprecationWarning: method L{convertDatum<pygeodesy.ellipsoidalGeodSolve.Cartesian.convertDatum>} has been DEPRECATED, use method L{toDatum}.\n  d = c.convertDatum(datum2)\n./test/testCartesian.py:45: DeprecationWarning: method L{convertDatum<pygeodesy.ellipsoidalGeodSolve.Cartesian.convertDatum>} has been DEPRECATED, use method L{toDatum}.\n  t = d.convertDatum(datum)\n    test 214 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 215 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 216 toNvector: <class 'pygeodesy.ellipsoidalNvector.Nvector'>\n    test 217 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 218 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 219 xyz3: <class 'tuple'>\n    test 220 Cartesian: <class 'pygeodesy.cartesianBase.CartesianBase'>\n    test 221 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 222 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 223 latlonheightdatum: <class 'pygeodesy.namedTuples.LatLon4Tuple'>\n    test 224 height4: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 225 isequalTo: <class 'bool'>\n    test 226 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 227 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 228 philamheightdatum: <class 'pygeodesy.namedTuples.PhiLam4Tuple'>\n    test 229 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 230 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 231 toEcef: <class 'pygeodesy.ecef.Ecef9Tuple'>\n    test 232 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 233 toLatLon: <class 'pygeodesy.ecef.Ecef9Tuple'>\n    test 234 toLLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 235 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 236 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 237 toNvector: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 238 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 239 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 240 xyz3: <class 'tuple'>\n    test 241 ellipsoidalNvector.Cartesian.intersections2: 89.998941°N, 090.234036°W\n    test 242 ellipsoidalNvector.Cartesian.intersections2: 89.99892°N, 090.95367°W\n    test 243 ellipsoidalNvector.Cartesian.intersections2: [-0.0035, -0.791926, 0.610589]\n    test 244 ellipsoidalNvector.Cartesian.intersections2: 89.998941°N, 090.253237°W\n    test 245 ellipsoidalNvector.Cartesian.intersections2: 0.0312613\n    test 246 vector3d.intersections2: (-0.0035, -0.791926, 0.610589)\n    test 247 vector3d.intersections2: 0.0312613\n    test 248 vector3d.intersections2: (-0.021973, -0.766467, 0.0)\n    test 249 vector3d.intersections2: (0.027459, -0.797488, 0.0)\n\n    test 250 xyz2rtp: 37.417, 36.699, 63.435\n    test 251 xyz2rtp: <class 'pygeodesy.cartesianBase.RadiusThetaPhi3Tuple'>\n    test 252 rtp2xyz: 10.0, 20.0, 30.0\n    test 253 rtp2xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 254 toCartesian: Cartesian(10.0, 20.0, 30.0)\n    test 255 toRtp: Test(r=37.416574, theta=36.699225, phi=63.434949)\n\n    test 256 destinationXyz: Tuple(x=9.553253, y=19.106505, z=32.000521, lat=89.971452, lon=63.434949, height=-6356720.308402, C=1, M=None, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 257 destinationXyz: Cartesian(9.553, 19.107, 32.001)\n\n    test 258 c.toEnu: [-17553188.505, -3108016.462, 7452592.104]\n    test 259 e.toEnu: [-17553188.505, -3108016.462, 7452592.104]\n\n    testCartesian(pygeodesy.ellipsoidalVincenty, 25.05.26)\n    test 260 Cartesian0: [3980581, 97, 4966825]\n    test 261 Cartesian4: [3980581.0, 97.0, 4966825.0]\n    test 262 isEllipsoidal: True\n    test 263 isSpherical: False\n    test 264 copy(<class 'type'>): (<class 'pygeodesy.ellipsoidalVincenty.Cartesian'>, True)\n    test 265 Cartesian.copy(): (<class 'pygeodesy.ellipsoidalVincenty.Cartesian'>, True)\n    test 266 convertDatum: [3980581.0, 97.0, 4966825.0]\n    test 267 __matmul__: [3980580.124, 107.691, 4966819.407]\n    test 268 __matmul__: [3980580.124, 107.691, 4966819.407]\n    test 269 __matmul__: [3980580.998, 97.0, 4966824.998]\n    test 270 height: 0.242887\n    test 271 height4: (3980580.8, 97.0, 4966824.8, 0.2)\n    test 272 height4: [3980580.8, 97.0, 4966824.8]\n    test 273 height3: (3980581.0, 97.0, 4966825.0)\n    test 274 Vector4Tuple: 0.622817765, 1.51770114e-05, 0.782366942, 0.242886808\n    test 275 LatLon: 50.0379°N, 008.5622°E, +0.00m  FAILED, KNOWN, expected 50.0379°N, 008.5622°E\n    test 276 LatLon: 51.47°N, 000.4543°E, -0.00m  FAILED, KNOWN, expected 51.47°N, 000.4543°E\n    test 277 LatLon: 40.633365°N, 073.783328°W\n    test 278 LatLon: 33.95°N, 118.4°W\n    test 279 LatLon: 41.32°S, 174.81°E, +0.00m  FAILED, KNOWN, expected 41.32°S, 174.81°E\n    test 280 LatLon: 40.96°N, 005.5°E, -0.00m  FAILED, KNOWN, expected 40.96°N, 005.5°E\n    test 281 LatLon: 40.1°N, 116.6°E, -0.00m  FAILED, KNOWN, expected 40.1°N, 116.6°E\n    test 282 LatLon: 37.6°N, 122.4°W\n    test 283 copy: True\n    test 284 __eq__: True\n    test 285 __ne__: False\n    test 286 Cartesian: <class 'pygeodesy.ellipsoidalVincenty.Cartesian'>\n    test 287 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 288 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 289 latlonheightdatum: <class 'pygeodesy.namedTuples.LatLon4Tuple'>\n    test 290 height4: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 291 isequalTo: <class 'bool'>\n    test 292 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 293 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 294 philamheightdatum: <class 'pygeodesy.namedTuples.PhiLam4Tuple'>\n    test 295 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 296 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 297 toEcef: <class 'pygeodesy.ecef.Ecef9Tuple'>\n    test 298 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 299 toLatLon: <class 'pygeodesy.ellipsoidalVincenty.LatLon'>\n    test 300 toLLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 301 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 302 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 303 toNvector: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 304 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 305 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 306 xyz3: <class 'tuple'>\n    test 307 Cartesian: <class 'pygeodesy.cartesianBase.CartesianBase'>\n    test 308 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 309 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 310 latlonheightdatum: <class 'pygeodesy.namedTuples.LatLon4Tuple'>\n    test 311 height4: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 312 isequalTo: <class 'bool'>\n    test 313 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 314 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 315 philamheightdatum: <class 'pygeodesy.namedTuples.PhiLam4Tuple'>\n    test 316 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 317 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 318 toEcef: <class 'pygeodesy.ecef.Ecef9Tuple'>\n    test 319 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 320 toLatLon: <class 'pygeodesy.ecef.Ecef9Tuple'>\n    test 321 toLLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 322 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 323 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 324 toNvector: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 325 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 326 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 327 xyz3: <class 'tuple'>\n    test 328 ellipsoidalVincenty.Cartesian.intersections2: 89.998941°N, 090.234036°W\n    test 329 ellipsoidalVincenty.Cartesian.intersections2: 89.99892°N, 090.95367°W\n    test 330 ellipsoidalVincenty.Cartesian.intersections2: [-0.0035, -0.791926, 0.610589]\n    test 331 ellipsoidalVincenty.Cartesian.intersections2: 89.998941°N, 090.253237°W\n    test 332 ellipsoidalVincenty.Cartesian.intersections2: 0.0312613\n    test 333 vector3d.intersections2: (-0.0035, -0.791926, 0.610589)\n    test 334 vector3d.intersections2: 0.0312613\n    test 335 vector3d.intersections2: (-0.021973, -0.766467, 0.0)\n    test 336 vector3d.intersections2: (0.027459, -0.797488, 0.0)\n\n    test 337 xyz2rtp: 37.417, 36.699, 63.435\n    test 338 xyz2rtp: <class 'pygeodesy.cartesianBase.RadiusThetaPhi3Tuple'>\n    test 339 rtp2xyz: 10.0, 20.0, 30.0\n    test 340 rtp2xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 341 toCartesian: Cartesian(10.0, 20.0, 30.0)\n./test/testCartesian.py:44: DeprecationWarning: method L{convertDatum<pygeodesy.ellipsoidalExact.Cartesian.convertDatum>} has been DEPRECATED, use method L{toDatum}.\n  d = c.convertDatum(datum2)\n./test/testCartesian.py:45: DeprecationWarning: method L{convertDatum<pygeodesy.ellipsoidalExact.Cartesian.convertDatum>} has been DEPRECATED, use method L{toDatum}.\n  t = d.convertDatum(datum)\n    test 342 toRtp: Test(r=37.416574, theta=36.699225, phi=63.434949)\n\n    test 343 destinationXyz: Tuple(x=9.553253, y=19.106505, z=32.000521, lat=89.971452, lon=63.434949, height=-6356720.308402, C=1, M=None, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 344 destinationXyz: Cartesian(9.553, 19.107, 32.001)\n\n    test 345 c.toEnu: [-17553188.505, -3108016.462, 7452592.104]\n    test 346 e.toEnu: [-17553188.505, -3108016.462, 7452592.104]\n# lazily imported pygeodesy.ellipsoidalKarney by testCartesian.py line 221\n\n    testCartesian(pygeodesy.ellipsoidalKarney, 25.05.27)\n    test 347 Cartesian0: [3980581, 97, 4966825]\n    test 348 Cartesian4: [3980581.0, 97.0, 4966825.0]\n    test 349 isEllipsoidal: True\n    test 350 isSpherical: False\n    test 351 copy(<class 'type'>): (<class 'pygeodesy.ellipsoidalKarney.Cartesian'>, True)\n    test 352 Cartesian.copy(): (<class 'pygeodesy.ellipsoidalKarney.Cartesian'>, True)\n    test 353 convertDatum: [3980581.0, 97.0, 4966825.0]\n    test 354 __matmul__: [3980580.124, 107.691, 4966819.407]\n    test 355 __matmul__: [3980580.124, 107.691, 4966819.407]\n    test 356 __matmul__: [3980580.998, 97.0, 4966824.998]\n    test 357 height: 0.242887\n    test 358 height4: (3980580.8, 97.0, 4966824.8, 0.2)\n    test 359 height4: [3980580.8, 97.0, 4966824.8]\n    test 360 height3: (3980581.0, 97.0, 4966825.0)\n    test 361 Vector4Tuple: 0.622817765, 1.51770114e-05, 0.782366942, 0.242886808\n    test 362 LatLon: 50.0379°N, 008.5622°E, +0.00m  FAILED, KNOWN, expected 50.0379°N, 008.5622°E\n    test 363 LatLon: 51.47°N, 000.4543°E\n    test 364 LatLon: 40.633365°N, 073.783328°W\n    test 365 LatLon: 33.95°N, 118.4°W, +0.00m  FAILED, KNOWN, expected 33.95°N, 118.4°W\n    test 366 LatLon: 41.32°S, 174.81°E\n    test 367 LatLon: 40.96°N, 005.5°E\n    test 368 LatLon: 40.1°N, 116.6°E\n    test 369 LatLon: 37.6°N, 122.4°W\n    test 370 copy: True\n    test 371 __eq__: True\n    test 372 __ne__: False\n    test 373 Cartesian: <class 'pygeodesy.ellipsoidalKarney.Cartesian'>\n    test 374 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 375 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 376 latlonheightdatum: <class 'pygeodesy.namedTuples.LatLon4Tuple'>\n    test 377 height4: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 378 isequalTo: <class 'bool'>\n    test 379 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 380 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 381 philamheightdatum: <class 'pygeodesy.namedTuples.PhiLam4Tuple'>\n    test 382 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 383 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 384 toEcef: <class 'pygeodesy.ecef.Ecef9Tuple'>\n    test 385 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 386 toLatLon: <class 'pygeodesy.ellipsoidalKarney.LatLon'>\n    test 387 toLLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 388 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 389 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 390 toNvector: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 391 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 392 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 393 xyz3: <class 'tuple'>\n    test 394 Cartesian: <class 'pygeodesy.cartesianBase.CartesianBase'>\n    test 395 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 396 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 397 latlonheightdatum: <class 'pygeodesy.namedTuples.LatLon4Tuple'>\n    test 398 height4: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 399 isequalTo: <class 'bool'>\n    test 400 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 401 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 402 philamheightdatum: <class 'pygeodesy.namedTuples.PhiLam4Tuple'>\n    test 403 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 404 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 405 toEcef: <class 'pygeodesy.ecef.Ecef9Tuple'>\n    test 406 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 407 toLatLon: <class 'pygeodesy.ecef.Ecef9Tuple'>\n    test 408 toLLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 409 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 410 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 411 toNvector: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 412 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 413 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 414 xyz3: <class 'tuple'>\n    test 415 ellipsoidalKarney.Cartesian.intersections2: 89.998941°N, 090.234036°W\n    test 416 ellipsoidalKarney.Cartesian.intersections2: 89.99892°N, 090.95367°W\n    test 417 ellipsoidalKarney.Cartesian.intersections2: [-0.0035, -0.791926, 0.610589]\n    test 418 ellipsoidalKarney.Cartesian.intersections2: 89.998941°N, 090.253237°W\n    test 419 ellipsoidalKarney.Cartesian.intersections2: 0.0312613\n    test 420 vector3d.intersections2: (-0.0035, -0.791926, 0.610589)\n    test 421 vector3d.intersections2: 0.0312613\n    test 422 vector3d.intersections2: (-0.021973, -0.766467, 0.0)\n    test 423 vector3d.intersections2: (0.027459, -0.797488, 0.0)\n\n    test 424 xyz2rtp: 37.417, 36.699, 63.435\n    test 425 xyz2rtp: <class 'pygeodesy.cartesianBase.RadiusThetaPhi3Tuple'>\n    test 426 rtp2xyz: 10.0, 20.0, 30.0\n    test 427 rtp2xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 428 toCartesian: Cartesian(10.0, 20.0, 30.0)\n    test 429 toRtp: Test(r=37.416574, theta=36.699225, phi=63.434949)\n\n    test 430 destinationXyz: Tuple(x=9.553253, y=19.106506, z=32.000521, lat=89.971452, lon=63.434949, height=-6356720.308402, C=1, M=None, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 431 destinationXyz: Cartesian(9.553, 19.107, 32.001)\n\n    test 432 c.toEnu: [-17553188.505, -3108016.462, 7452592.104]\n    test 433 e.toEnu: [-17553188.505, -3108016.462, 7452592.104]\n# lazily imported pygeodesy.ellipsoidalGeodSolve by testCartesian.py line 225\n\n    testCartesian(pygeodesy.ellipsoidalGeodSolve, 25.08.28)\n    test 434 Cartesian0: [3980581, 97, 4966825]\n    test 435 Cartesian4: [3980581.0, 97.0, 4966825.0]\n    test 436 isEllipsoidal: True\n    test 437 isSpherical: False\n    test 438 copy(<class 'type'>): (<class 'pygeodesy.ellipsoidalGeodSolve.Cartesian'>, True)\n    test 439 Cartesian.copy(): (<class 'pygeodesy.ellipsoidalGeodSolve.Cartesian'>, True)\n    test 440 convertDatum: [3980581.0, 97.0, 4966825.0]\n    test 441 __matmul__: [3980580.124, 107.691, 4966819.407]\n    test 442 __matmul__: [3980580.124, 107.691, 4966819.407]\n    test 443 __matmul__: [3980580.998, 97.0, 4966824.998]\n    test 444 height: 0.242887\n    test 445 height4: (3980580.8, 97.0, 4966824.8, 0.2)\n    test 446 height4: [3980580.8, 97.0, 4966824.8]\n    test 447 height3: (3980581.0, 97.0, 4966825.0)\n    test 448 Vector4Tuple: 0.622817765, 1.51770114e-05, 0.782366942, 0.242886808\n    test 449 LatLon: 50.0379°N, 008.5622°E, +0.00m  FAILED, KNOWN, expected 50.0379°N, 008.5622°E\n    test 450 LatLon: 51.47°N, 000.4543°E\n    test 451 LatLon: 40.633365°N, 073.783328°W\n    test 452 LatLon: 33.95°N, 118.4°W, +0.00m  FAILED, KNOWN, expected 33.95°N, 118.4°W\n    test 453 LatLon: 41.32°S, 174.81°E\n    test 454 LatLon: 40.96°N, 005.5°E\n    test 455 LatLon: 40.1°N, 116.6°E\n    test 456 LatLon: 37.6°N, 122.4°W\n    test 457 copy: True\n    test 458 __eq__: True\n    test 459 __ne__: False\n    test 460 Cartesian: <class 'pygeodesy.ellipsoidalGeodSolve.Cartesian'>\n    test 461 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 462 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 463 latlonheightdatum: <class 'pygeodesy.namedTuples.LatLon4Tuple'>\n    test 464 height4: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 465 isequalTo: <class 'bool'>\n    test 466 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 467 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 468 philamheightdatum: <class 'pygeodesy.namedTuples.PhiLam4Tuple'>\n    test 469 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 470 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 471 toEcef: <class 'pygeodesy.ecef.Ecef9Tuple'>\n    test 472 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 473 toLatLon: <class 'pygeodesy.ellipsoidalGeodSolve.LatLon'>\n    test 474 toLLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 475 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 476 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 477 toNvector: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 478 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 479 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 480 xyz3: <class 'tuple'>\n    test 481 Cartesian: <class 'pygeodesy.cartesianBase.CartesianBase'>\n    test 482 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 483 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 484 latlonheightdatum: <class 'pygeodesy.namedTuples.LatLon4Tuple'>\n    test 485 height4: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 486 isequalTo: <class 'bool'>\n    test 487 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 488 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 489 philamheightdatum: <class 'pygeodesy.namedTuples.PhiLam4Tuple'>\n    test 490 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 491 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 492 toEcef: <class 'pygeodesy.ecef.Ecef9Tuple'>\n    test 493 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 494 toLatLon: <class 'pygeodesy.ecef.Ecef9Tuple'>\n    test 495 toLLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 496 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 497 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 498 toNvector: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 499 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 500 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 501 xyz3: <class 'tuple'>\n    test 502 ellipsoidalGeodSolve.Cartesian.intersections2: 89.998941°N, 090.234036°W\n    test 503 ellipsoidalGeodSolve.Cartesian.intersections2: 89.99892°N, 090.95367°W\n    test 504 ellipsoidalGeodSolve.Cartesian.intersections2: [-0.0035, -0.791926, 0.610589]\n    test 505 ellipsoidalGeodSolve.Cartesian.intersections2: 89.998941°N, 090.253237°W\n    test 506 ellipsoidalGeodSolve.Cartesian.intersections2: 0.0312613\n    test 507 vector3d.intersections2: (-0.0035, -0.791926, 0.610589)\n    test 508 vector3d.intersections2: 0.0312613\n    test 509 vector3d.intersections2: (-0.021973, -0.766467, 0.0)\n    test 510 vector3d.intersections2: (0.027459, -0.797488, 0.0)\n\n    test 511 xyz2rtp: 37.417, 36.699, 63.435\n    test 512 xyz2rtp: <class 'pygeodesy.cartesianBase.RadiusThetaPhi3Tuple'>\n    test 513 rtp2xyz: 10.0, 20.0, 30.0\n    test 514 rtp2xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 515 toCartesian: Cartesian(10.0, 20.0, 30.0)\n    test 516 toRtp: Test(r=37.416574, theta=36.699225, phi=63.434949)\n\n    test 517 destinationXyz: Tuple(x=9.553253, y=19.106506, z=32.000521, lat=89.971452, lon=63.434949, height=-6356720.308402, C=1, M=None, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 518 destinationXyz: Cartesian(9.553, 19.107, 32.001)\n\n    test 519 c.toEnu: [-17553188.505, -3108016.462, 7452592.104]\n    test 520 e.toEnu: [-17553188.505, -3108016.462, 7452592.104]\n\n    testCartesian(pygeodesy.ellipsoidalExact, 25.08.28)\n    test 521 Cartesian0: [3980581, 97, 4966825]\n    test 522 Cartesian4: [3980581.0, 97.0, 4966825.0]\n    test 523 isEllipsoidal: True\n    test 524 isSpherical: False\n    test 525 copy(<class 'type'>): (<class 'pygeodesy.ellipsoidalExact.Cartesian'>, True)\n    test 526 Cartesian.copy(): (<class 'pygeodesy.ellipsoidalExact.Cartesian'>, True)\n    test 527 convertDatum: [3980581.0, 97.0, 4966825.0]\n    test 528 __matmul__: [3980580.124, 107.691, 4966819.407]\n    test 529 __matmul__: [3980580.124, 107.691, 4966819.407]\n    test 530 __matmul__: [3980580.998, 97.0, 4966824.998]\n    test 531 height: 0.242887\n    test 532 height4: (3980580.8, 97.0, 4966824.8, 0.2)\n    test 533 height4: [3980580.8, 97.0, 4966824.8]\n    test 534 height3: (3980581.0, 97.0, 4966825.0)\n    test 535 Vector4Tuple: 0.622817765, 1.51770114e-05, 0.782366942, 0.242886808\n    test 536 LatLon: 50.0379°N, 008.5622°E, +0.00m  FAILED, KNOWN, expected 50.0379°N, 008.5622°E\n    test 537 LatLon: 51.47°N, 000.4543°E\n    test 538 LatLon: 40.633365°N, 073.783328°W\n    test 539 LatLon: 33.95°N, 118.4°W, +0.00m  FAILED, KNOWN, expected 33.95°N, 118.4°W\n    test 540 LatLon: 41.32°S, 174.81°E\n    test 541 LatLon: 40.96°N, 005.5°E\n    test 542 LatLon: 40.1°N, 116.6°E\n    test 543 LatLon: 37.6°N, 122.4°W\n    test 544 copy: True\n    test 545 __eq__: True\n    test 546 __ne__: False\n    test 547 Cartesian: <class 'pygeodesy.ellipsoidalExact.Cartesian'>\n    test 548 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 549 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 550 latlonheightdatum: <class 'pygeodesy.namedTuples.LatLon4Tuple'>\n    test 551 height4: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 552 isequalTo: <class 'bool'>\n    test 553 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 554 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 555 philamheightdatum: <class 'pygeodesy.namedTuples.PhiLam4Tuple'>\n    test 556 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 557 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 558 toEcef: <class 'pygeodesy.ecef.Ecef9Tuple'>\n    test 559 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 560 toLatLon: <class 'pygeodesy.ellipsoidalExact.LatLon'>\n    test 561 toLLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 562 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 563 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 564 toNvector: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 565 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 566 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 567 xyz3: <class 'tuple'>\n    test 568 Cartesian: <class 'pygeodesy.cartesianBase.CartesianBase'>\n    test 569 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 570 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 571 latlonheightdatum: <class 'pygeodesy.namedTuples.LatLon4Tuple'>\n    test 572 height4: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 573 isequalTo: <class 'bool'>\n    test 574 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 575 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 576 philamheightdatum: <class 'pygeodesy.namedTuples.PhiLam4Tuple'>\n    test 577 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 578 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 579 toEcef: <class 'pygeodesy.ecef.Ecef9Tuple'>\n    test 580 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 581 toLatLon: <class 'pygeodesy.ecef.Ecef9Tuple'>\n    test 582 toLLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 583 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 584 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 585 toNvector: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 586 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 587 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 588 xyz3: <class 'tuple'>\n    test 589 ellipsoidalExact.Cartesian.intersections2: 89.998941°N, 090.234036°W\n    test 590 ellipsoidalExact.Cartesian.intersections2: 89.99892°N, 090.95367°W\n    test 591 ellipsoidalExact.Cartesian.intersections2: [-0.0035, -0.791926, 0.610589]\n    test 592 ellipsoidalExact.Cartesian.intersections2: 89.998941°N, 090.253237°W\n    test 593 ellipsoidalExact.Cartesian.intersections2: 0.0312613\n    test 594 vector3d.intersections2: (-0.0035, -0.791926, 0.610589)\n    test 595 vector3d.intersections2: 0.0312613\n    test 596 vector3d.intersections2: (-0.021973, -0.766467, 0.0)\n    test 597 vector3d.intersections2: (0.027459, -0.797488, 0.0)\n\n    test 598 xyz2rtp: 37.417, 36.699, 63.435\n    test 599 xyz2rtp: <class 'pygeodesy.cartesianBase.RadiusThetaPhi3Tuple'>\n    test 600 rtp2xyz: 10.0, 20.0, 30.0\n    test 601 rtp2xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 602 toCartesian: Cartesian(10.0, 20.0, 30.0)\n    test 603 toRtp: Test(r=37.416574, theta=36.699225, phi=63.434949)\n\n    test 604 destinationXyz: Tuple(x=9.553253, y=19.106506, z=32.000521, lat=89.971452, lon=63.434949, height=-6356720.308402, C=1, M=None, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 605 destinationXyz: Cartesian(9.553, 19.107, 32.001)\n\n    test 606 c.toEnu: [-17553188.505, -3108016.462, 7452592.104]\n    test 607 e.toEnu: [-17553188.505, -3108016.462, 7452592.104]\n\n    35 of 607 testCartesian.py tests (5.8%) FAILED, incl. 20 KNOWN plus 15 DeprecationWarnings (pygeodesy 26.3.26 Python 3.12.10 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 2.1.0 scipy 1.14.1 Math 2 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 isLazy 3 -W  default) 128.145 ms\nrunning /usr/local/bin/p....n3.12 -W default ~/PyGeodesy/test/testClasses.py\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.itemsorted from .basics by testClasses.py line 13\n# lazily imported pygeodesy.Geodesic from .geodesicw by testClasses.py line 13\n# lazily imported pygeodesy.GeodesicLine from .geodesicw by testClasses.py line 13\n# lazily imported pygeodesy.Geohashed from .geohash by testClasses.py line 13\n# lazily imported pygeodesy.Property from .props by testClasses.py line 13\n# lazily imported pygeodesy.Property_RO from .props by testClasses.py line 13\n# lazily imported pygeodesy.property_ROnce from .props by testClasses.py line 13\n# lazily imported pygeodesy.property_ROver from .props by testClasses.py line 13\n# lazily imported pygeodesy.SciPyWarning from .errors by testClasses.py line 13\n# lazily imported pygeodesy.Str_ from .interns by testClasses.py line 13\n# lazily imported pygeodesy.ellipsoidalExact by testClasses.py line 83\n# lazily imported pygeodesy.ellipsoidalKarney by testClasses.py line 83\n# lazily imported pygeodesy.ellipsoidalNvector by testClasses.py line 83\n# lazily imported pygeodesy.ellipsoidalVincenty by testClasses.py line 83\n# lazily imported pygeodesy.sphericalNvector by testClasses.py line 83\n# lazily imported pygeodesy.sphericalTrigonometry by testClasses.py line 83\n\n    testing testClasses.py 24.07.29 isLazy=3\n# lazily imported pygeodesy.ellipsoidalGeodSolve by testClasses.py line 95\n\n    testCartesianAttrs(24.07.29)\n    test 1 angleTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 2 apply() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 3 attrs() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 4 bearing() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 5 bools() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 6 cassini() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 7 circin6() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 8 circum3() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 9 circum4_() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 10 classname Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 11 classnaming _NamedProperty: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 12 classof() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 13 cmp() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 14 collins() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 15 collins5() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 16 convertDatum() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 17 convertRefFrame() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 18 copy() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 19 cross() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 20 crosserrors _NamedProperty: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 21 datum _NamedProperty: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 22 destinationXyz() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 23 dividedBy() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 24 dividedBy_() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 25 dot() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 26 dup() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 27 Ecef property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 28 Ecef property_ROver: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 29 ellipsoidalCartesian property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 30 epoch _NamedProperty: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 31 equals() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 32 equirectangular() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 33 euclid Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 34 fabs() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 35 floats() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 36 floorDividedBy() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 37 floorDividedBy_() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 38 hartzell() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 39 height Property: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 40 height3() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 41 height4() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 42 homogeneous property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 43 intermediateTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 44 intersections2() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 45 ints() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 46 iscolinearWith() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 47 isconjugateTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 48 isEllipsoidal Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 49 isequalTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 50 isSpherical Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 51 iteration property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 52 latlon Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 53 latlonheight Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 54 latlonheightdatum Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 55 length Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 56 length2 Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 57 meeus2() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 58 methodname() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 59 minus() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 60 minus_() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 61 name _NamedProperty: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 62 named Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 63 named2 Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 64 named3 Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 65 named4 Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 66 nearestOn() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 67 nearestOn6() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 68 negate() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 69 others() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 70 parse() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 71 philam Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 72 philamheight Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 73 philamheightdatum Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 74 pierlot() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 75 pierlotx() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 76 plus() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 77 plus_() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 78 pow() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 79 radii11() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 80 reframe _NamedProperty: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 81 rename() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 82 renamed() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 83 Roc2() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 84 rotate() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 85 rotateAround() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 86 sizeof property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 87 soddy4() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 88 sphericalCartesian property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 89 sum() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 90 tienstra() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 91 tienstra7() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 92 times() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 93 times_() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 94 to2ab() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 95 to2ll() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 96 to3llh() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 97 to3xyz() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 98 toAer() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 99 toCartesian() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 100 toDatum() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 101 toEcef() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 102 toEnu() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 103 toLatLon() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 104 toLocal() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 105 toLtp() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 106 toNed() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 107 toNvector() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 108 toRefFrame() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 109 toRepr() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 110 toRtp() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 111 toStr() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 112 toStr2() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 113 toTransform() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 114 toTransforms_() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 115 toVector() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 116 toXyz() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 117 trilaterate2d2() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 118 trilaterate3d2() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 119 typename property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 120 unit() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 121 x Property: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 122 x2y2z2 Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 123 x2y2z23 property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 124 xyz Property: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 125 xyz3 property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 126 y Property: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 127 z Property: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n\n    testCartesianMro(24.07.29)\n    test 128 pygeodesy.sphericalNvector: pygeodesy.sphericalNvector.Cartesian, pygeodesy.sphericalBase.CartesianSphericalBase, pygeodesy.cartesianBase.CartesianBase, pygeodesy.vector3d.Vector3d, pygeodesy.vector3dBase.Vector3dBase, pygeodesy.named._NamedBase, pygeodesy.ecefLocals._EcefLocal, pygeodesy.named._Named\n    test 129 pygeodesy.sphericalTrigonometry: pygeodesy.sphericalTrigonometry.Cartesian, pygeodesy.sphericalBase.CartesianSphericalBase, pygeodesy.cartesianBase.CartesianBase, pygeodesy.vector3d.Vector3d, pygeodesy.vector3dBase.Vector3dBase, pygeodesy.named._NamedBase, pygeodesy.ecefLocals._EcefLocal, pygeodesy.named._Named\n    test 130 pygeodesy.ellipsoidalNvector: pygeodesy.ellipsoidalNvector.Cartesian, pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase, pygeodesy.cartesianBase.CartesianBase, pygeodesy.vector3d.Vector3d, pygeodesy.vector3dBase.Vector3dBase, pygeodesy.named._NamedBase, pygeodesy.ecefLocals._EcefLocal, pygeodesy.named._Named\n    test 131 pygeodesy.ellipsoidalVincenty: pygeodesy.ellipsoidalVincenty.Cartesian, pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase, pygeodesy.cartesianBase.CartesianBase, pygeodesy.vector3d.Vector3d, pygeodesy.vector3dBase.Vector3dBase, pygeodesy.named._NamedBase, pygeodesy.ecefLocals._EcefLocal, pygeodesy.named._Named\n    test 132 pygeodesy.ellipsoidalKarney: pygeodesy.ellipsoidalKarney.Cartesian, pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase, pygeodesy.cartesianBase.CartesianBase, pygeodesy.vector3d.Vector3d, pygeodesy.vector3dBase.Vector3dBase, pygeodesy.named._NamedBase, pygeodesy.ecefLocals._EcefLocal, pygeodesy.named._Named\n    test 133 pygeodesy.ellipsoidalExact: pygeodesy.ellipsoidalExact.Cartesian, pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase, pygeodesy.cartesianBase.CartesianBase, pygeodesy.vector3d.Vector3d, pygeodesy.vector3dBase.Vector3dBase, pygeodesy.named._NamedBase, pygeodesy.ecefLocals._EcefLocal, pygeodesy.named._Named\n    test 134 pygeodesy.ellipsoidalGeodSolve: pygeodesy.ellipsoidalGeodSolve.Cartesian, pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase, pygeodesy.cartesianBase.CartesianBase, pygeodesy.vector3d.Vector3d, pygeodesy.vector3dBase.Vector3dBase, pygeodesy.named._NamedBase, pygeodesy.ecefLocals._EcefLocal, pygeodesy.named._Named\n\n    testLatLonAttrs(24.07.29)\n    test 135 alongTrackDistanceTo() method: pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 136 antipode() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 137 attrs() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 138 bearingTo() method: pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 139 bearingTo2() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 140 bounds() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 141 boundsOf() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 142 chordTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 143 circin6() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 144 circum3() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 145 circum4_() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 146 classname Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 147 classnaming _NamedProperty: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 148 classof() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 149 clipid property: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 150 compassAngle() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 151 compassAngleTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 152 convergence _Deprecated_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 153 convertDatum() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 154 convertRefFrame() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 155 copy() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 156 cosineAndoyerLambertTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 157 cosineForsytheAndoyerLambertTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 158 cosineLawTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 159 crossingParallels() method: pygeodesy.sphericalTrigonometry\n    test 160 crossTrackDistanceTo() method: pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 161 datum _NamedProperty: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 162 deltaTo() method: pygeodesy.ellipsoidalNvector\n    test 163 destination() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 164 destination2() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalVincenty\n    test 165 destinationNed() method: pygeodesy.ellipsoidalNvector\n    test 166 destinationXyz() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 167 distanceTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 168 distanceTo2() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 169 distanceTo3() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalVincenty\n    test 170 dup() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 171 Ecef property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 172 Ecef property_ROver: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 173 elevation2() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 174 ellipsoid() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 175 ellipsoidalLatLon property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 176 ellipsoids() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 177 epoch _NamedProperty: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 178 epsilon _NamedProperty: pygeodesy.ellipsoidalVincenty\n    test 179 equals() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 180 equals3() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 181 Equidistant Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 182 equirectangularTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 183 euclideanTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 184 finalBearingOn() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalVincenty\n    test 185 finalBearingTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 186 flatLocalTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 187 flatPolarTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 188 gamma property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 189 geodesic property_RO: pygeodesy.ellipsoidalVincenty\n    test 190 geodesic Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney\n    test 191 geodesicx Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve\n    test 192 geoidHeight2() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 193 greatCircle() method: pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 194 greatCircleTo() method: pygeodesy.sphericalNvector\n    test 195 hartzell() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 196 haversineTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 197 height Property: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 198 height4() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 199 heightStr() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 200 hubenyTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 201 initialBearingTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 202 intermediateChordTo() method: pygeodesy.sphericalNvector\n    test 203 intermediateTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 204 intersecant2() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 205 intersection() method: pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 206 intersection2() method: pygeodesy.sphericalNvector\n    test 207 intersection3() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 208 intersections2() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 209 isantipode() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 210 isantipodeTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 211 isEllipsoidal Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 212 isEnclosedBy() method: pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 213 isenclosedBy() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 214 isequalTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 215 isequalTo3() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 216 isnormal Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 217 isSpherical Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 218 isWithin() method: pygeodesy.sphericalNvector\n    test 219 iswithin() method: pygeodesy.sphericalNvector\n    test 220 iteration property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 221 iterations _NamedProperty: pygeodesy.ellipsoidalVincenty\n    test 222 lam Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 223 lat Property: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 224 latlon Property: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 225 latlon2() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 226 latlon2round() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 227 latlon_() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 228 latlonheight Property: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 229 lon Property: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 230 maxLat() method: pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 231 methodname() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 232 midpointTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 233 minLat() method: pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 234 name _NamedProperty: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 235 named Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 236 named2 Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 237 named3 Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 238 named4 Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 239 napieradius _NamedProperty: pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 240 nearestOn() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 241 nearestOn2() method: pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 242 nearestOn3() method: pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 243 nearestOn6() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 244 nearestOn8() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalVincenty\n    test 245 nearestTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 246 normal() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 247 others() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 248 parse() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 249 phi Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 250 philam Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 251 philam2() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 252 philamheight Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 253 plumbTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalVincenty\n    test 254 points() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 255 points2() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 256 PointsIter() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 257 radii11() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 258 reframe _NamedProperty: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 259 rename() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 260 renamed() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 261 rhumbAzimuthTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 262 rhumbBearingTo() method: pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 263 rhumbDestination() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 264 rhumbDistanceTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 265 rhumbIntersecant2() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 266 rhumbLine() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 267 rhumbMidpointTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 268 scale Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 269 sizeof property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 270 sphericalLatLon property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 271 thomasTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 272 to2ab() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 273 to3llh() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 274 to3xyz() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 275 toAer() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 276 toCartesian() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 277 toCss() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 278 toDatum() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 279 toEcef() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 280 toEnu() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 281 toEtm() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 282 toLcc() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 283 toLocal() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 284 toLtp() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 285 toMgrs() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 286 toNed() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 287 toNormal() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 288 toNvector() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 289 toOsgr() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 290 toRefFrame() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 291 toRepr() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 292 toStr() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 293 toStr2() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 294 toTransform() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 295 toUps() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 296 toUtm() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 297 toUtmUps() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 298 toVector() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 299 toVector3d() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 300 toWm() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 301 toXyz() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 302 triangle7() method: pygeodesy.sphericalTrigonometry\n    test 303 triangulate() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 304 trilaterate() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 305 trilaterate5() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 306 typename property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 307 vincentysTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 308 xyz property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 309 xyz3 property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 310 xyzh Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n\n    testLatLonMro(24.07.29)\n    test 311 pygeodesy.sphericalNvector: pygeodesy.sphericalNvector.LatLon, pygeodesy.nvectorBase.LatLonNvectorBase, pygeodesy.sphericalBase.LatLonSphericalBase, pygeodesy.latlonBase.LatLonBase, pygeodesy.named._NamedBase, pygeodesy.ecefLocals._EcefLocal, pygeodesy.named._Named\n    test 312 pygeodesy.sphericalTrigonometry: pygeodesy.sphericalTrigonometry.LatLon, pygeodesy.sphericalBase.LatLonSphericalBase, pygeodesy.latlonBase.LatLonBase, pygeodesy.named._NamedBase, pygeodesy.ecefLocals._EcefLocal, pygeodesy.named._Named\n    test 313 pygeodesy.ellipsoidalNvector: pygeodesy.ellipsoidalNvector.LatLon, pygeodesy.nvectorBase.LatLonNvectorBase, pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase, pygeodesy.latlonBase.LatLonBase, pygeodesy.named._NamedBase, pygeodesy.ecefLocals._EcefLocal, pygeodesy.named._Named\n    test 314 pygeodesy.ellipsoidalVincenty: pygeodesy.ellipsoidalVincenty.LatLon, pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI, pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase, pygeodesy.latlonBase.LatLonBase, pygeodesy.named._NamedBase, pygeodesy.ecefLocals._EcefLocal, pygeodesy.named._Named\n    test 315 pygeodesy.ellipsoidalKarney: pygeodesy.ellipsoidalKarney.LatLon, pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI, pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase, pygeodesy.latlonBase.LatLonBase, pygeodesy.named._NamedBase, pygeodesy.ecefLocals._EcefLocal, pygeodesy.named._Named\n    test 316 pygeodesy.ellipsoidalExact: pygeodesy.ellipsoidalExact.LatLon, pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI, pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase, pygeodesy.latlonBase.LatLonBase, pygeodesy.named._NamedBase, pygeodesy.ecefLocals._EcefLocal, pygeodesy.named._Named\n    test 317 pygeodesy.ellipsoidalGeodSolve: pygeodesy.ellipsoidalGeodSolve.LatLon, pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI, pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase, pygeodesy.latlonBase.LatLonBase, pygeodesy.named._NamedBase, pygeodesy.ecefLocals._EcefLocal, pygeodesy.named._Named\n\n    testNvectorAttrs(24.07.29)\n    test 318 angleTo() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 319 apply() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 320 attrs() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 321 bearing() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 322 bools() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 323 circin6() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 324 circum3() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 325 circum4_() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 326 classname Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 327 classnaming _NamedProperty: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 328 classof() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 329 cmp() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 330 copy() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 331 cross() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 332 crosserrors _NamedProperty: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 333 datum Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 334 dividedBy() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 335 dividedBy_() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 336 dot() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 337 dup() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 338 Ecef property_ROnce: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 339 ellipsoidalNvector property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 340 equals() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 341 equirectangular() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 342 euclid Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 343 fabs() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 344 floats() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 345 floorDividedBy() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 346 floorDividedBy_() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 347 greatCircle() method: pygeodesy.sphericalNvector\n    test 348 H _NamedProperty: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 349 h _NamedProperty: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 350 homogeneous property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 351 hStr() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 352 intermediateTo() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 353 ints() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 354 iscolinearWith() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 355 isconjugateTo() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 356 isEllipsoidal Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 357 isequalTo() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 358 isSpherical Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 359 iteration property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 360 lam Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 361 lat Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 362 latlon Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 363 latlonheight Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 364 latlonheightdatum Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 365 length Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 366 length2 Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 367 lon Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 368 meeus2() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 369 methodname() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 370 minus() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 371 minus_() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 372 name _NamedProperty: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 373 named Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 374 named2 Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 375 named3 Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 376 named4 Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 377 nearestOn() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 378 nearestOn6() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 379 negate() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 380 others() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 381 parse() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 382 phi Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 383 philam Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 384 philamheight Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 385 philamheightdatum Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 386 plus() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 387 plus_() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 388 pow() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 389 radii11() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 390 rename() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 391 renamed() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 392 rotate() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 393 rotateAround() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 394 sizeof property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 395 soddy4() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 396 sphericalNvector property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 397 sum() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 398 times() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 399 times_() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 400 to2ab() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 401 to2ll() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 402 to3abh() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 403 to3llh() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 404 to3xyz() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 405 to4xyzh() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 406 toCartesian() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 407 toLatLon() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 408 toRepr() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 409 toStr() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 410 toStr2() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 411 toVector3d() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 412 trilaterate2d2() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 413 trilaterate3d2() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 414 typename property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 415 unit() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 416 x Property: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 417 x2y2z2 Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 418 x2y2z23 property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 419 xyz Property: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 420 xyz3 property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 421 xyzh Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 422 y Property: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 423 z Property: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n\n    testNvectorMro(24.07.29)\n    test 424 pygeodesy.sphericalNvector: pygeodesy.sphericalNvector.Nvector, pygeodesy.nvectorBase.NvectorBase, pygeodesy.vector3d.Vector3d, pygeodesy.vector3dBase.Vector3dBase, pygeodesy.named._NamedBase, pygeodesy.named._Named\n    test 425 pygeodesy.ellipsoidalNvector: pygeodesy.ellipsoidalNvector.Nvector, pygeodesy.nvectorBase.NvectorBase, pygeodesy.vector3d.Vector3d, pygeodesy.vector3dBase.Vector3dBase, pygeodesy.named._NamedBase, pygeodesy.named._Named\n\n    testVector3dAttrs(24.07.29)\n    test 426 angleTo() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 427 apply() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 428 attrs() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 429 bearing() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 430 bools() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 431 circin6() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 432 circum3() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 433 circum4_() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 434 classname Property_RO: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 435 classnaming _NamedProperty: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 436 classof() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 437 cmp() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 438 copy() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 439 cross() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 440 crosserrors _NamedProperty: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 441 dividedBy() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 442 dividedBy_() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 443 dot() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 444 dup() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 445 equals() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 446 equirectangular() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 447 euclid Property_RO: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 448 fabs() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 449 floats() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 450 floorDividedBy() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 451 floorDividedBy_() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 452 homogeneous property_RO: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 453 intermediateTo() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 454 ints() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 455 iscolinearWith() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 456 isconjugateTo() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 457 isequalTo() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 458 iteration property_RO: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 459 length Property_RO: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 460 length2 Property_RO: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 461 meeus2() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 462 methodname() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 463 minus() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 464 minus_() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 465 name _NamedProperty: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 466 named Property_RO: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 467 named2 Property_RO: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 468 named3 Property_RO: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 469 named4 Property_RO: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 470 nearestOn() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 471 nearestOn6() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 472 negate() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 473 others() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 474 parse() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 475 plus() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 476 plus_() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 477 pow() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 478 radii11() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 479 rename() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 480 renamed() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 481 rotate() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 482 rotateAround() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 483 sizeof property_RO: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 484 soddy4() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 485 sum() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 486 times() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 487 times_() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 488 to3xyz() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 489 toCartesian() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 490 toRepr() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 491 toStr() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 492 toStr2() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 493 trilaterate2d2() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 494 trilaterate3d2() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 495 typename property_RO: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 496 unit() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 497 x Property: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 498 x2y2z2 Property_RO: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 499 x2y2z23 property_RO: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 500 xyz Property: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 501 xyz3 property_RO: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 502 y Property: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 503 z Property: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n\n    testVector3dMro(24.07.29)\n    test 504 pygeodesy.nvectorBase: pygeodesy.vector3d.Vector3d, pygeodesy.vector3dBase.Vector3dBase, pygeodesy.named._NamedBase, pygeodesy.named._Named\n    test 505 pygeodesy.vector3d: pygeodesy.vector3d.Vector3d, pygeodesy.vector3dBase.Vector3dBase, pygeodesy.named._NamedBase, pygeodesy.named._Named\n    test 506 pygeodesy.sphericalTrigonometry: pygeodesy.vector3d.Vector3d, pygeodesy.vector3dBase.Vector3dBase, pygeodesy.named._NamedBase, pygeodesy.named._Named\n\n    testCopyAttr(24.07.29)\n\n    all 506 testClasses.py tests passed (pygeodesy 26.3.26 Python 3.12.10 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 2.1.0 scipy 1.14.1 Math 2 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 isLazy 3 -W  default) 6.256 ms\nrunning /usr/local/bin/p....n3.12 -W default ~/PyGeodesy/test/testClipy.py\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.F_D from .dms by testClipy.py line 11\n# lazily imported pygeodesy.F__F_ from .dms by testClipy.py line 11\n# lazily imported pygeodesy.boundsOf from .points by testClipy.py line 11\n# lazily imported pygeodesy.clipCS4 from .clipy by testClipy.py line 11\n# lazily imported pygeodesy.ClipError from .errors by testClipy.py line 11\n# lazily imported pygeodesy.clipFHP4 from .clipy by testClipy.py line 11\n# lazily imported pygeodesy.ClipFHP4Tuple from .clipy by testClipy.py line 11\n# lazily imported pygeodesy.clipGH4 from .clipy by testClipy.py line 11\n# lazily imported pygeodesy.clipLB6 from .clipy by testClipy.py line 11\n# lazily imported pygeodesy.clipSH from .clipy by testClipy.py line 11\n# lazily imported pygeodesy.clipSH3 from .clipy by testClipy.py line 11\n# lazily imported pygeodesy.ellipsoidalNvector by testClipy.py line 288\n# lazily imported pygeodesy.ellipsoidalVincenty by testClipy.py line 288\n# lazily imported pygeodesy.sphericalNvector by testClipy.py line 288\n# lazily imported pygeodesy.sphericalTrigonometry by testClipy.py line 288\n\n    testing testClipy.py 23.03.27 isLazy=3\n\n    testing(pygeodesy.ellipsoidalNvector, 25.05.12)\n    test 1 clipCS4.p1: 07.5°N, 010.0°E\n    test 2 clipCS4.p2: 04.5°N, 000.0°E\n    test 3 clipCS4.i: 3\n    test 4 clipCS4.j: 0\n    test 5 clipCS4.p1: 05.0°N, 005.0°E\n    test 6 clipCS4.p2: 05.0°N, 005.0°E\n    test 7 clipCS4.i: 1\n    test 8 clipCS4.j: 2\n    test 9 clipLB6.p1: 07.5°N, 010.0°E\n    test 10 clipLB6.p2: 04.5°N, 000.0°E\n    test 11 clipLB6.i: 3\n    test 12 clipLB6.fi: 3.25\n    test 13 clipLB6.fi: 07.5°N, 010.0°E\n    test 14 clipLB6.fj: 3.75\n    test 15 clipLB6.fj: 04.5°N, 000.0°E\n    test 16 clipLB6.j: 0\n    test 17 clipLB6.fin: 4\n    test 18 clipLB6.p1: 05.0°N, 005.0°E\n    test 19 clipLB6.p2: 05.0°N, 005.0°E\n    test 20 clipLB6.i: 1\n    test 21 clipLB6.fi: 1.00\n    test 22 clipLB6.fi: 05.0°N, 005.0°E\n    test 23 clipLB6.fj: 2.00\n    test 24 clipLB6.fj: 05.0°N, 005.0°E\n    test 25 clipLB6.j: 2\n    test 26 clipLB6.fin: 4\n# lazily imported pygeodesy.booleans by iters.py line 503\n    test 27 clipCS4.p1: 60.0°N, 123.333333°E\n    test 28 clipCS4.p2: 62.857143°N, 130.0°E\n    test 29 clipCS4.i: 0\n    test 30 clipCS4.j: 1\n    test 31 clipLB6.p1: 60.0°N, 123.333333°E\n    test 32 clipLB6.p2: 62.857143°N, 130.0°E\n    test 33 clipLB6.i: 0\n    test 34 clipLB6.fi: 0.666667\n    test 35 clipLB6.fi: 60.0°N, 123.333333°E\n    test 36 clipLB6.fj: 0.714286\n    test 37 clipLB6.fj: 62.857143°N, 130.0°E\n    test 38 clipLB6.j: 1\n    test 39 clipLB6.fin: 0\n    test 40 clipCS4.p1: 17.5°N, 020.0°E\n    test 41 clipCS4.p2: 16.25°N, 015.0°E\n    test 42 clipCS4.i: 2\n    test 43 clipCS4.j: 0\n    test 44 clipLB6.p1: 17.5°N, 020.0°E\n    test 45 clipLB6.p2: 16.25°N, 015.0°E\n    test 46 clipLB6.i: 2\n    test 47 clipLB6.fi: 2.500\n    test 48 clipLB6.fi: 17.5°N, 020.0°E\n    test 49 clipLB6.fj: 2.750\n    test 50 clipLB6.fj: 16.25°N, 015.0°E\n    test 51 clipLB6.j: 0\n    test 52 clipLB6.fin: 3\n# lazily imported pygeodesy.angles by units.py line 633\n    test 53 clipSH1.len: 4\n    test 54 clipSH1.0: 20.0°N, 020.0°E\n    test 55 clipSH1.LL: True\n    test 56 clipSH1.1: 17.5°N, 020.0°E\n    test 57 clipSH1.LL: True\n    test 58 clipSH1.2: 16.25°N, 015.0°E\n    test 59 clipSH1.LL: True\n    test 60 clipSH1.3: 20.0°N, 015.0°E\n    test 61 clipSH1.LL: True\n    test 62 clipSH2.len: 5\n    test 63 clipSH2.0: 18.571°N, 024.286°E\n    test 64 clipSH2.LL: True\n    test 65 clipSH2.1: 16.667°N, 016.667°E\n    test 66 clipSH2.LL: True\n    test 67 clipSH2.2: 20.0°N, 015.0°E\n    test 68 clipSH2.LL: True\n    test 69 clipSH2.3: 25.0°N, 020.0°E\n    test 70 clipSH2.LL: True\n    test 71 clipSH2.4: 22.0°N, 026.0°E\n    test 72 clipSH2.LL: True\n    test 73 clipSH3.len: 2\n    test 74 clipSH3.0: 18.571°N, 024.286°E\n    test 75 clipSH3.LL: True\n    test 76 clipSH3.1: 16.667°N, 016.667°E\n    test 77 clipSH3.LL: True\n    test 78 clipSH3.edge.: True\n    test 79 clipSH3.len: 2\n    test 80 clipSH3.0: 16.667°N, 016.667°E\n    test 81 clipSH3.LL: True\n    test 82 clipSH3.1: 20.0°N, 015.0°E\n    test 83 clipSH3.LL: True\n    test 84 clipSH3.edge.: False\n    test 85 clipSH3.len: 2\n    test 86 clipSH3.0: 20.0°N, 015.0°E\n    test 87 clipSH3.LL: True\n    test 88 clipSH3.1: 25.0°N, 020.0°E\n    test 89 clipSH3.LL: True\n    test 90 clipSH3.edge.: True\n    test 91 clipSH3.len: 2\n    test 92 clipSH3.0: 25.0°N, 020.0°E\n    test 93 clipSH3.LL: True\n    test 94 clipSH3.1: 22.0°N, 026.0°E\n    test 95 clipSH3.LL: True\n    test 96 clipSH3.edge.: True\n    test 97 clipSH3.len: 2\n    test 98 clipSH3.0: 22.0°N, 026.0°E\n    test 99 clipSH3.LL: True\n    test 100 clipSH3.1: 18.571°N, 024.286°E\n    test 101 clipSH3.LL: True\n    test 102 clipSH3.edge.: False\n    test 103 clipSH2.reversed.len: 5\n    test 104 clipSH2.reversed.0: 18.571°N, 024.286°E\n    test 105 clipSH2.reversed.LL: True\n    test 106 clipSH2.reversed.1: 16.667°N, 016.667°E\n    test 107 clipSH2.reversed.LL: True\n    test 108 clipSH2.reversed.2: 20.0°N, 015.0°E\n    test 109 clipSH2.reversed.LL: True\n    test 110 clipSH2.reversed.3: 25.0°N, 020.0°E\n    test 111 clipSH2.reversed.LL: True\n    test 112 clipSH2.reversed.4: 22.0°N, 026.0°E\n    test 113 clipSH2.reversed.LL: True\n    test 114 clipSH3.reversed.len: 2\n    test 115 clipSH3.reversed.0: 18.571°N, 024.286°E\n    test 116 clipSH3.reversed.LL: True\n    test 117 clipSH3.reversed.1: 16.667°N, 016.667°E\n    test 118 clipSH3.reversed.LL: True\n    test 119 clipSH3.edge.reversed.: True\n    test 120 clipSH3.reversed.len: 2\n    test 121 clipSH3.reversed.0: 16.667°N, 016.667°E\n    test 122 clipSH3.reversed.LL: True\n    test 123 clipSH3.reversed.1: 20.0°N, 015.0°E\n    test 124 clipSH3.reversed.LL: True\n    test 125 clipSH3.edge.reversed.: False\n    test 126 clipSH3.reversed.len: 2\n    test 127 clipSH3.reversed.0: 20.0°N, 015.0°E\n    test 128 clipSH3.reversed.LL: True\n    test 129 clipSH3.reversed.1: 25.0°N, 020.0°E\n    test 130 clipSH3.reversed.LL: True\n    test 131 clipSH3.edge.reversed.: True\n    test 132 clipSH3.reversed.len: 2\n    test 133 clipSH3.reversed.0: 25.0°N, 020.0°E\n    test 134 clipSH3.reversed.LL: True\n    test 135 clipSH3.reversed.1: 22.0°N, 026.0°E\n    test 136 clipSH3.reversed.LL: True\n    test 137 clipSH3.edge.reversed.: True\n    test 138 clipSH3.reversed.len: 2\n    test 139 clipSH3.reversed.0: 22.0°N, 026.0°E\n    test 140 clipSH3.reversed.LL: True\n    test 141 clipSH3.reversed.1: 18.571°N, 024.286°E\n    test 142 clipSH3.reversed.LL: True\n    test 143 clipSH3.edge.reversed.: False\n    test 144 clipSH.allout: ()\n    test 145 clipSH3.allout: ()\n    test 146 clipSH.allout.reversed: ()\n    test 147 clipSH3.allout.reversed: ()\n    test 148 clipSH.allin.len: 4\n    test 149 clipSH.allin.0: 20.0°N, 030.0°E\n    test 150 clipSH.allin.LL: True\n    test 151 clipSH.allin.1: 15.0°N, 010.0°E\n    test 152 clipSH.allin.LL: True\n    test 153 clipSH.allin.2: 25.0°N, 020.0°E\n    test 154 clipSH.allin.LL: True\n    test 155 clipSH.allin.3: 20.0°N, 030.0°E\n    test 156 clipSH.allin.LL: True\n    test 157 clipSH3.allin.len: 2\n    test 158 clipSH3.allin.0: 20.0°N, 030.0°E\n    test 159 clipSH3.allin.LL: True\n    test 160 clipSH3.allin.1: 15.0°N, 010.0°E\n    test 161 clipSH3.allin.LL: True\n    test 162 clipSH3.edge.: True\n    test 163 clipSH3.allin.len: 2\n    test 164 clipSH3.allin.0: 15.0°N, 010.0°E\n    test 165 clipSH3.allin.LL: True\n    test 166 clipSH3.allin.1: 25.0°N, 020.0°E\n    test 167 clipSH3.allin.LL: True\n    test 168 clipSH3.edge.: True\n    test 169 clipSH.allin.reversed.len: 4\n    test 170 clipSH.allin.reversed.0: 20.0°N, 030.0°E\n    test 171 clipSH.allin.reversed.LL: True\n    test 172 clipSH.allin.reversed.1: 15.0°N, 010.0°E\n    test 173 clipSH.allin.reversed.LL: True\n    test 174 clipSH.allin.reversed.2: 25.0°N, 020.0°E\n    test 175 clipSH.allin.reversed.LL: True\n    test 176 clipSH.allin.reversed.3: 20.0°N, 030.0°E\n    test 177 clipSH.allin.reversed.LL: True\n    test 178 clipSH3.allin.reversed.len: 2\n    test 179 clipSH3.allin.reversed.0: 20.0°N, 030.0°E\n    test 180 clipSH3.allin.reversed.LL: True\n    test 181 clipSH3.allin.reversed.1: 15.0°N, 010.0°E\n    test 182 clipSH3.allin.reversed.LL: True\n    test 183 clipSH3.edge.reversed.: True\n    test 184 clipSH3.allin.reversed.len: 2\n    test 185 clipSH3.allin.reversed.0: 15.0°N, 010.0°E\n    test 186 clipSH3.allin.reversed.LL: True\n    test 187 clipSH3.allin.reversed.1: 25.0°N, 020.0°E\n    test 188 clipSH3.allin.reversed.LL: True\n    test 189 clipSH3.edge.reversed.: True\n    test 190 clipSH.warped: clipSH clip region ((LatLon(10°00′00.0″N, 010°00′00.0″E), LatLon(20°00′00.0″N, 020°00′00.0″E), LatLon(10°00′00.0″N, 020°00′00.0″E), LatLon(20°00′00.0″N, 010°00′00.0″E))): not convex\n    test 191 clipSH3.warped: clipSH3 clip region ((LatLon(10°00′00.0″N, 010°00′00.0″E), LatLon(20°00′00.0″N, 020°00′00.0″E), LatLon(10°00′00.0″N, 020°00′00.0″E), LatLon(20°00′00.0″N, 010°00′00.0″E))): not convex\n    test 192 clipSH.warpedreversed.: clipSH clip region ((LatLon(20°00′00.0″N, 010°00′00.0″E), LatLon(10°00′00.0″N, 020°00′00.0″E), LatLon(20°00′00.0″N, 020°00′00.0″E), LatLon(10°00′00.0″N, 010°00′00.0″E))): not convex\n    test 193 clipSH3.warpedreversed.: clipSH3 clip region ((LatLon(20°00′00.0″N, 010°00′00.0″E), LatLon(10°00′00.0″N, 020°00′00.0″E), LatLon(20°00′00.0″N, 020°00′00.0″E), LatLon(10°00′00.0″N, 010°00′00.0″E))): not convex\n    test 194 boundsOf: (10.0, 10.0, 20.0, 20.0)\n    test 195 boundsOf: (15.0, 10.0, 25.0, 30.0)\n    test 196 enclosures: (5.0, 0.0, -5.0, -10.0)\n    test 197 overlap: (15.0, 10.0, 20.0, 20.0)\n    test 198 clipSH4: 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 0.0\n    test 199 clipSH5: 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 0.0\n    test 200 clipSH6: 1.0, 0.5, 2.0, 1.0, 2.0, 0.5\n    test 201 clipSH7: -0.2, 2.0, 0.2, 2.0, 0.5, 0.5, 2.0, 0.2, 2.0, -0.2, 0.5, -0.5, 0.2, -2.0, -0.2, -2.0, -0.5, -0.5, -2.0, -0.2, -2.0, 0.2, -0.5, 0.5\n    test 202 clipSH8: -0.33, 1.33, 0.0, 2.0, 0.33, 1.33, 0.5, 0.5, 0.78, 0.44, 1.18, -0.36, 0.5, -0.5, 0.2, -2.0, -0.2, -2.0, -0.5, -0.5, -1.18, -0.36, -0.78, 0.44, -0.5, 0.5\n    test 203 clipSH9: None\n    test 204 clipSH10: None\n    test 205 clipSH11: None\n    test 206 clipSH12: None\n\n    test 207 clipGH4: (ClipGH4Tuple(lat=5.0, lon=3.571429, height=1.714286, clipid=0), ClipGH4Tuple(lat=7.0, lon=5.0, height=2.0, clipid=0), ClipGH4Tuple(lat=5.0, lon=6.428571, height=2.285714, clipid=0), ClipGH4Tuple(lat=3.0, lon=5.0, height=2.0, clipid=0))\n\n    test 208 clipFHP4: (ClipFHP4Tuple(lat=7.0, lon=5.0, height=2.0, clipid=0), ClipFHP4Tuple(lat=5.0, lon=6.428571, height=2.285714, clipid=0), ClipFHP4Tuple(lat=3.0, lon=5.0, height=2.0, clipid=0), ClipFHP4Tuple(lat=5.0, lon=3.571429, height=1.714286, clipid=0))\n\n    test 209 Fig 8: (ClipFHP4Tuple(lat=4.0, lon=12.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=-1.0, lon=12.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=3.0, lon=8.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=5.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=3.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=2.0, lon=1.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=6.0, lon=3.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=6.0, lon=11.0, height=0.0, clipid=0))\n    test 210 Fig 14: (ClipFHP4Tuple(lat=3.0, lon=3.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=0.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=6.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=6.0, lon=6.0, height=0.0, clipid=1), ClipFHP4Tuple(lat=9.0, lon=3.0, height=0.0, clipid=1), ClipFHP4Tuple(lat=6.0, lon=0.0, height=0.0, clipid=1), ClipFHP4Tuple(lat=3.0, lon=3.0, height=0.0, clipid=1))\n    test 211 Fig 15: (ClipFHP4Tuple(lat=1.0, lon=3.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=4.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=2.0, lon=4.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=2.0, lon=0.0, height=0.0, clipid=1), ClipFHP4Tuple(lat=0.0, lon=0.0, height=0.0, clipid=1), ClipFHP4Tuple(lat=1.0, lon=1.0, height=0.0, clipid=1))\n    test 212 Fig 16: (ClipFHP4Tuple(lat=0.0, lon=0.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=1.0, lon=0.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=2.0, lon=2.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=2.0, height=0.0, clipid=0))\n    test 213 Fig 18: ((-10, -10, 0), (-10, -2, 0), (-8, -2, 0), (-8, -8, 0), (-2, -8, 0), (-2, -10, 0), (2, -10, 1), (2, -8, 1), (0, -8, 1), (0, -10, 1), (10, -6, 2), (8, -6, 2), (8, -8, 2), (10, -8, 2), (10, 8, 3), (8, 8, 3), (8, 6, 3), (10, 6, 3), (-6, 10, 4), (-6, 8, 4), (-4, 8, 4), (-4, 10, 4), (-10, 10, 5), (-10, 8, 5), (-8, 8, 5), (-8, 10, 5), (-10, 4, 6), (-8, 4, 6), (-8, 6, 6), (-10, 6, 6), (-10, 0, 7), (-8, 0, 7), (-8, 2, 7), (-10, 2, 7), (-6, 6, 8), (-4, 6, 8), (-4, 4, 8), (-6, 4, 8), (-6, 0, 9), (-4, 0, 9), (-4, 2, 9), (-6, 2, 9), (-6, -6, 10), (-2, -6, 10), (-2, -4, 10), (-4, -4, 10), (-4, -2, 10), (-6, -2, 10), (2, -6, 11), (2, -4, 11), (0, -4, 11), (0, -6, 11), (12, 8, 12), (20, 8, 12), (20, -8, 12), (12, -8, 12), (12, -6, 12), (18, -6, 12), (18, 6, 12), (12, 6, 12), (12, -4, 13), (14, -4, 13), (14, 4, 13), (12, 4, 13))\n\n    testing(pygeodesy.ellipsoidalVincenty, 25.05.26)\n    test 214 clipCS4.p1: 07.5°N, 010.0°E\n    test 215 clipCS4.p2: 04.5°N, 000.0°E\n    test 216 clipCS4.i: 3\n    test 217 clipCS4.j: 0\n    test 218 clipCS4.p1: 05.0°N, 005.0°E\n    test 219 clipCS4.p2: 05.0°N, 005.0°E\n    test 220 clipCS4.i: 1\n    test 221 clipCS4.j: 2\n    test 222 clipLB6.p1: 07.5°N, 010.0°E\n    test 223 clipLB6.p2: 04.5°N, 000.0°E\n    test 224 clipLB6.i: 3\n    test 225 clipLB6.fi: 3.25\n    test 226 clipLB6.fi: 07.5°N, 010.0°E\n    test 227 clipLB6.fj: 3.75\n    test 228 clipLB6.fj: 04.5°N, 000.0°E\n    test 229 clipLB6.j: 0\n    test 230 clipLB6.fin: 4\n    test 231 clipLB6.p1: 05.0°N, 005.0°E\n    test 232 clipLB6.p2: 05.0°N, 005.0°E\n    test 233 clipLB6.i: 1\n    test 234 clipLB6.fi: 1.00\n    test 235 clipLB6.fi: 05.0°N, 005.0°E\n    test 236 clipLB6.fj: 2.00\n    test 237 clipLB6.fj: 05.0°N, 005.0°E\n    test 238 clipLB6.j: 2\n    test 239 clipLB6.fin: 4\n    test 240 clipCS4.p1: 60.0°N, 123.333333°E\n    test 241 clipCS4.p2: 62.857143°N, 130.0°E\n    test 242 clipCS4.i: 0\n    test 243 clipCS4.j: 1\n    test 244 clipLB6.p1: 60.0°N, 123.333333°E\n    test 245 clipLB6.p2: 62.857143°N, 130.0°E\n    test 246 clipLB6.i: 0\n    test 247 clipLB6.fi: 0.666667\n    test 248 clipLB6.fi: 60.0°N, 123.333333°E\n    test 249 clipLB6.fj: 0.714286\n    test 250 clipLB6.fj: 62.857143°N, 130.0°E\n    test 251 clipLB6.j: 1\n    test 252 clipLB6.fin: 0\n# imported pygeodesy.formy into latlonBase.py line 756\n    test 253 clipCS4.p1: 17.5°N, 020.0°E\n    test 254 clipCS4.p2: 16.25°N, 015.0°E\n    test 255 clipCS4.i: 2\n    test 256 clipCS4.j: 0\n    test 257 clipLB6.p1: 17.5°N, 020.0°E\n    test 258 clipLB6.p2: 16.25°N, 015.0°E\n    test 259 clipLB6.i: 2\n    test 260 clipLB6.fi: 2.500\n    test 261 clipLB6.fi: 17.5°N, 020.0°E\n    test 262 clipLB6.fj: 2.750\n    test 263 clipLB6.fj: 16.25°N, 015.0°E\n    test 264 clipLB6.j: 0\n    test 265 clipLB6.fin: 3\n    test 266 clipSH1.len: 4\n    test 267 clipSH1.0: 20.0°N, 020.0°E\n    test 268 clipSH1.LL: True\n    test 269 clipSH1.1: 17.5°N, 020.0°E\n    test 270 clipSH1.LL: True\n    test 271 clipSH1.2: 16.25°N, 015.0°E\n    test 272 clipSH1.LL: True\n    test 273 clipSH1.3: 20.0°N, 015.0°E\n    test 274 clipSH1.LL: True\n    test 275 clipSH2.len: 5\n    test 276 clipSH2.0: 18.571°N, 024.286°E\n    test 277 clipSH2.LL: True\n    test 278 clipSH2.1: 16.667°N, 016.667°E\n    test 279 clipSH2.LL: True\n    test 280 clipSH2.2: 20.0°N, 015.0°E\n    test 281 clipSH2.LL: True\n    test 282 clipSH2.3: 25.0°N, 020.0°E\n    test 283 clipSH2.LL: True\n    test 284 clipSH2.4: 22.0°N, 026.0°E\n    test 285 clipSH2.LL: True\n    test 286 clipSH3.len: 2\n    test 287 clipSH3.0: 18.571°N, 024.286°E\n    test 288 clipSH3.LL: True\n    test 289 clipSH3.1: 16.667°N, 016.667°E\n    test 290 clipSH3.LL: True\n    test 291 clipSH3.edge.: True\n    test 292 clipSH3.len: 2\n    test 293 clipSH3.0: 16.667°N, 016.667°E\n    test 294 clipSH3.LL: True\n    test 295 clipSH3.1: 20.0°N, 015.0°E\n    test 296 clipSH3.LL: True\n    test 297 clipSH3.edge.: False\n    test 298 clipSH3.len: 2\n    test 299 clipSH3.0: 20.0°N, 015.0°E\n    test 300 clipSH3.LL: True\n    test 301 clipSH3.1: 25.0°N, 020.0°E\n    test 302 clipSH3.LL: True\n    test 303 clipSH3.edge.: True\n    test 304 clipSH3.len: 2\n    test 305 clipSH3.0: 25.0°N, 020.0°E\n    test 306 clipSH3.LL: True\n    test 307 clipSH3.1: 22.0°N, 026.0°E\n    test 308 clipSH3.LL: True\n    test 309 clipSH3.edge.: True\n    test 310 clipSH3.len: 2\n    test 311 clipSH3.0: 22.0°N, 026.0°E\n    test 312 clipSH3.LL: True\n    test 313 clipSH3.1: 18.571°N, 024.286°E\n    test 314 clipSH3.LL: True\n    test 315 clipSH3.edge.: False\n    test 316 clipSH2.reversed.len: 5\n    test 317 clipSH2.reversed.0: 18.571°N, 024.286°E\n    test 318 clipSH2.reversed.LL: True\n    test 319 clipSH2.reversed.1: 16.667°N, 016.667°E\n    test 320 clipSH2.reversed.LL: True\n    test 321 clipSH2.reversed.2: 20.0°N, 015.0°E\n    test 322 clipSH2.reversed.LL: True\n    test 323 clipSH2.reversed.3: 25.0°N, 020.0°E\n    test 324 clipSH2.reversed.LL: True\n    test 325 clipSH2.reversed.4: 22.0°N, 026.0°E\n    test 326 clipSH2.reversed.LL: True\n    test 327 clipSH3.reversed.len: 2\n    test 328 clipSH3.reversed.0: 18.571°N, 024.286°E\n    test 329 clipSH3.reversed.LL: True\n    test 330 clipSH3.reversed.1: 16.667°N, 016.667°E\n    test 331 clipSH3.reversed.LL: True\n    test 332 clipSH3.edge.reversed.: True\n    test 333 clipSH3.reversed.len: 2\n    test 334 clipSH3.reversed.0: 16.667°N, 016.667°E\n    test 335 clipSH3.reversed.LL: True\n    test 336 clipSH3.reversed.1: 20.0°N, 015.0°E\n    test 337 clipSH3.reversed.LL: True\n    test 338 clipSH3.edge.reversed.: False\n    test 339 clipSH3.reversed.len: 2\n    test 340 clipSH3.reversed.0: 20.0°N, 015.0°E\n    test 341 clipSH3.reversed.LL: True\n    test 342 clipSH3.reversed.1: 25.0°N, 020.0°E\n    test 343 clipSH3.reversed.LL: True\n    test 344 clipSH3.edge.reversed.: True\n    test 345 clipSH3.reversed.len: 2\n    test 346 clipSH3.reversed.0: 25.0°N, 020.0°E\n    test 347 clipSH3.reversed.LL: True\n    test 348 clipSH3.reversed.1: 22.0°N, 026.0°E\n    test 349 clipSH3.reversed.LL: True\n    test 350 clipSH3.edge.reversed.: True\n    test 351 clipSH3.reversed.len: 2\n    test 352 clipSH3.reversed.0: 22.0°N, 026.0°E\n    test 353 clipSH3.reversed.LL: True\n    test 354 clipSH3.reversed.1: 18.571°N, 024.286°E\n    test 355 clipSH3.reversed.LL: True\n    test 356 clipSH3.edge.reversed.: False\n    test 357 clipSH.allout: ()\n    test 358 clipSH3.allout: ()\n    test 359 clipSH.allout.reversed: ()\n    test 360 clipSH3.allout.reversed: ()\n    test 361 clipSH.allin.len: 4\n    test 362 clipSH.allin.0: 20.0°N, 030.0°E\n    test 363 clipSH.allin.LL: True\n    test 364 clipSH.allin.1: 15.0°N, 010.0°E\n    test 365 clipSH.allin.LL: True\n    test 366 clipSH.allin.2: 25.0°N, 020.0°E\n    test 367 clipSH.allin.LL: True\n    test 368 clipSH.allin.3: 20.0°N, 030.0°E\n    test 369 clipSH.allin.LL: True\n    test 370 clipSH3.allin.len: 2\n    test 371 clipSH3.allin.0: 20.0°N, 030.0°E\n    test 372 clipSH3.allin.LL: True\n    test 373 clipSH3.allin.1: 15.0°N, 010.0°E\n    test 374 clipSH3.allin.LL: True\n    test 375 clipSH3.edge.: True\n    test 376 clipSH3.allin.len: 2\n    test 377 clipSH3.allin.0: 15.0°N, 010.0°E\n    test 378 clipSH3.allin.LL: True\n    test 379 clipSH3.allin.1: 25.0°N, 020.0°E\n    test 380 clipSH3.allin.LL: True\n    test 381 clipSH3.edge.: True\n    test 382 clipSH.allin.reversed.len: 4\n    test 383 clipSH.allin.reversed.0: 20.0°N, 030.0°E\n    test 384 clipSH.allin.reversed.LL: True\n    test 385 clipSH.allin.reversed.1: 15.0°N, 010.0°E\n    test 386 clipSH.allin.reversed.LL: True\n    test 387 clipSH.allin.reversed.2: 25.0°N, 020.0°E\n    test 388 clipSH.allin.reversed.LL: True\n    test 389 clipSH.allin.reversed.3: 20.0°N, 030.0°E\n    test 390 clipSH.allin.reversed.LL: True\n    test 391 clipSH3.allin.reversed.len: 2\n    test 392 clipSH3.allin.reversed.0: 20.0°N, 030.0°E\n    test 393 clipSH3.allin.reversed.LL: True\n    test 394 clipSH3.allin.reversed.1: 15.0°N, 010.0°E\n    test 395 clipSH3.allin.reversed.LL: True\n    test 396 clipSH3.edge.reversed.: True\n    test 397 clipSH3.allin.reversed.len: 2\n    test 398 clipSH3.allin.reversed.0: 15.0°N, 010.0°E\n    test 399 clipSH3.allin.reversed.LL: True\n    test 400 clipSH3.allin.reversed.1: 25.0°N, 020.0°E\n    test 401 clipSH3.allin.reversed.LL: True\n    test 402 clipSH3.edge.reversed.: True\n    test 403 clipSH.warped: clipSH clip region ((LatLon(10°00′00.0″N, 010°00′00.0″E), LatLon(20°00′00.0″N, 020°00′00.0″E), LatLon(10°00′00.0″N, 020°00′00.0″E), LatLon(20°00′00.0″N, 010°00′00.0″E))): not convex\n    test 404 clipSH3.warped: clipSH3 clip region ((LatLon(10°00′00.0″N, 010°00′00.0″E), LatLon(20°00′00.0″N, 020°00′00.0″E), LatLon(10°00′00.0″N, 020°00′00.0″E), LatLon(20°00′00.0″N, 010°00′00.0″E))): not convex\n    test 405 clipSH.warpedreversed.: clipSH clip region ((LatLon(20°00′00.0″N, 010°00′00.0″E), LatLon(10°00′00.0″N, 020°00′00.0″E), LatLon(20°00′00.0″N, 020°00′00.0″E), LatLon(10°00′00.0″N, 010°00′00.0″E))): not convex\n    test 406 clipSH3.warpedreversed.: clipSH3 clip region ((LatLon(20°00′00.0″N, 010°00′00.0″E), LatLon(10°00′00.0″N, 020°00′00.0″E), LatLon(20°00′00.0″N, 020°00′00.0″E), LatLon(10°00′00.0″N, 010°00′00.0″E))): not convex\n    test 407 boundsOf: (10.0, 10.0, 20.0, 20.0)\n    test 408 boundsOf: (15.0, 10.0, 25.0, 30.0)\n    test 409 enclosures: (5.0, 0.0, -5.0, -10.0)\n    test 410 overlap: (15.0, 10.0, 20.0, 20.0)\n    test 411 clipSH4: 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 0.0\n    test 412 clipSH5: 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 0.0\n    test 413 clipSH6: 1.0, 0.5, 2.0, 1.0, 2.0, 0.5\n    test 414 clipSH7: -0.2, 2.0, 0.2, 2.0, 0.5, 0.5, 2.0, 0.2, 2.0, -0.2, 0.5, -0.5, 0.2, -2.0, -0.2, -2.0, -0.5, -0.5, -2.0, -0.2, -2.0, 0.2, -0.5, 0.5\n    test 415 clipSH8: -0.33, 1.33, 0.0, 2.0, 0.33, 1.33, 0.5, 0.5, 0.78, 0.44, 1.18, -0.36, 0.5, -0.5, 0.2, -2.0, -0.2, -2.0, -0.5, -0.5, -1.18, -0.36, -0.78, 0.44, -0.5, 0.5\n    test 416 clipSH9: None\n    test 417 clipSH10: None\n    test 418 clipSH11: None\n    test 419 clipSH12: None\n\n    test 420 clipGH4: (ClipGH4Tuple(lat=5.0, lon=3.571429, height=1.714286, clipid=0), ClipGH4Tuple(lat=7.0, lon=5.0, height=2.0, clipid=0), ClipGH4Tuple(lat=5.0, lon=6.428571, height=2.285714, clipid=0), ClipGH4Tuple(lat=3.0, lon=5.0, height=2.0, clipid=0))\n\n    test 421 clipFHP4: (ClipFHP4Tuple(lat=7.0, lon=5.0, height=2.0, clipid=0), ClipFHP4Tuple(lat=5.0, lon=6.428571, height=2.285714, clipid=0), ClipFHP4Tuple(lat=3.0, lon=5.0, height=2.0, clipid=0), ClipFHP4Tuple(lat=5.0, lon=3.571429, height=1.714286, clipid=0))\n\n    test 422 Fig 8: (ClipFHP4Tuple(lat=4.0, lon=12.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=-1.0, lon=12.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=3.0, lon=8.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=5.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=3.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=2.0, lon=1.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=6.0, lon=3.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=6.0, lon=11.0, height=0.0, clipid=0))\n    test 423 Fig 14: (ClipFHP4Tuple(lat=3.0, lon=3.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=0.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=6.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=6.0, lon=6.0, height=0.0, clipid=1), ClipFHP4Tuple(lat=9.0, lon=3.0, height=0.0, clipid=1), ClipFHP4Tuple(lat=6.0, lon=0.0, height=0.0, clipid=1), ClipFHP4Tuple(lat=3.0, lon=3.0, height=0.0, clipid=1))\n    test 424 Fig 15: (ClipFHP4Tuple(lat=1.0, lon=3.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=4.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=2.0, lon=4.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=2.0, lon=0.0, height=0.0, clipid=1), ClipFHP4Tuple(lat=0.0, lon=0.0, height=0.0, clipid=1), ClipFHP4Tuple(lat=1.0, lon=1.0, height=0.0, clipid=1))\n    test 425 Fig 16: (ClipFHP4Tuple(lat=0.0, lon=0.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=1.0, lon=0.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=2.0, lon=2.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=2.0, height=0.0, clipid=0))\n    test 426 Fig 18: ((-10, -10, 0), (-10, -2, 0), (-8, -2, 0), (-8, -8, 0), (-2, -8, 0), (-2, -10, 0), (2, -10, 1), (2, -8, 1), (0, -8, 1), (0, -10, 1), (10, -6, 2), (8, -6, 2), (8, -8, 2), (10, -8, 2), (10, 8, 3), (8, 8, 3), (8, 6, 3), (10, 6, 3), (-6, 10, 4), (-6, 8, 4), (-4, 8, 4), (-4, 10, 4), (-10, 10, 5), (-10, 8, 5), (-8, 8, 5), (-8, 10, 5), (-10, 4, 6), (-8, 4, 6), (-8, 6, 6), (-10, 6, 6), (-10, 0, 7), (-8, 0, 7), (-8, 2, 7), (-10, 2, 7), (-6, 6, 8), (-4, 6, 8), (-4, 4, 8), (-6, 4, 8), (-6, 0, 9), (-4, 0, 9), (-4, 2, 9), (-6, 2, 9), (-6, -6, 10), (-2, -6, 10), (-2, -4, 10), (-4, -4, 10), (-4, -2, 10), (-6, -2, 10), (2, -6, 11), (2, -4, 11), (0, -4, 11), (0, -6, 11), (12, 8, 12), (20, 8, 12), (20, -8, 12), (12, -8, 12), (12, -6, 12), (18, -6, 12), (18, 6, 12), (12, 6, 12), (12, -4, 13), (14, -4, 13), (14, 4, 13), (12, 4, 13))\n\n    testing(pygeodesy.sphericalNvector, 25.05.27)\n    test 427 clipCS4.p1: 07.5°N, 010.0°E\n    test 428 clipCS4.p2: 04.5°N, 000.0°E\n    test 429 clipCS4.i: 3\n    test 430 clipCS4.j: 0\n    test 431 clipCS4.p1: 05.0°N, 005.0°E\n    test 432 clipCS4.p2: 05.0°N, 005.0°E\n    test 433 clipCS4.i: 1\n    test 434 clipCS4.j: 2\n    test 435 clipLB6.p1: 07.5°N, 010.0°E\n    test 436 clipLB6.p2: 04.5°N, 000.0°E\n    test 437 clipLB6.i: 3\n    test 438 clipLB6.fi: 3.25\n    test 439 clipLB6.fi: 07.5°N, 010.0°E\n    test 440 clipLB6.fj: 3.75\n    test 441 clipLB6.fj: 04.5°N, 000.0°E\n    test 442 clipLB6.j: 0\n    test 443 clipLB6.fin: 4\n    test 444 clipLB6.p1: 05.0°N, 005.0°E\n    test 445 clipLB6.p2: 05.0°N, 005.0°E\n    test 446 clipLB6.i: 1\n    test 447 clipLB6.fi: 1.00\n    test 448 clipLB6.fi: 05.0°N, 005.0°E\n    test 449 clipLB6.fj: 2.00\n    test 450 clipLB6.fj: 05.0°N, 005.0°E\n    test 451 clipLB6.j: 2\n    test 452 clipLB6.fin: 4\n    test 453 clipCS4.p1: 60.0°N, 123.333333°E\n    test 454 clipCS4.p2: 62.857143°N, 130.0°E\n    test 455 clipCS4.i: 0\n    test 456 clipCS4.j: 1\n    test 457 clipLB6.p1: 60.0°N, 123.333333°E\n    test 458 clipLB6.p2: 62.857143°N, 130.0°E\n    test 459 clipLB6.i: 0\n    test 460 clipLB6.fi: 0.666667\n    test 461 clipLB6.fi: 60.0°N, 123.333333°E\n    test 462 clipLB6.fj: 0.714286\n    test 463 clipLB6.fj: 62.857143°N, 130.0°E\n    test 464 clipLB6.j: 1\n    test 465 clipLB6.fin: 0\n    test 466 clipCS4.p1: 17.5°N, 020.0°E\n    test 467 clipCS4.p2: 16.25°N, 015.0°E\n    test 468 clipCS4.i: 2\n    test 469 clipCS4.j: 0\n    test 470 clipLB6.p1: 17.5°N, 020.0°E\n    test 471 clipLB6.p2: 16.25°N, 015.0°E\n    test 472 clipLB6.i: 2\n    test 473 clipLB6.fi: 2.500\n    test 474 clipLB6.fi: 17.5°N, 020.0°E\n    test 475 clipLB6.fj: 2.750\n    test 476 clipLB6.fj: 16.25°N, 015.0°E\n    test 477 clipLB6.j: 0\n    test 478 clipLB6.fin: 3\n    test 479 clipSH1.len: 4\n    test 480 clipSH1.0: 20.0°N, 020.0°E\n    test 481 clipSH1.LL: True\n    test 482 clipSH1.1: 17.5°N, 020.0°E\n    test 483 clipSH1.LL: True\n    test 484 clipSH1.2: 16.25°N, 015.0°E\n    test 485 clipSH1.LL: True\n    test 486 clipSH1.3: 20.0°N, 015.0°E\n    test 487 clipSH1.LL: True\n    test 488 clipSH2.len: 5\n    test 489 clipSH2.0: 18.571°N, 024.286°E\n    test 490 clipSH2.LL: True\n    test 491 clipSH2.1: 16.667°N, 016.667°E\n    test 492 clipSH2.LL: True\n    test 493 clipSH2.2: 20.0°N, 015.0°E\n    test 494 clipSH2.LL: True\n    test 495 clipSH2.3: 25.0°N, 020.0°E\n    test 496 clipSH2.LL: True\n    test 497 clipSH2.4: 22.0°N, 026.0°E\n    test 498 clipSH2.LL: True\n    test 499 clipSH3.len: 2\n    test 500 clipSH3.0: 18.571°N, 024.286°E\n    test 501 clipSH3.LL: True\n    test 502 clipSH3.1: 16.667°N, 016.667°E\n    test 503 clipSH3.LL: True\n    test 504 clipSH3.edge.: True\n    test 505 clipSH3.len: 2\n    test 506 clipSH3.0: 16.667°N, 016.667°E\n    test 507 clipSH3.LL: True\n    test 508 clipSH3.1: 20.0°N, 015.0°E\n    test 509 clipSH3.LL: True\n    test 510 clipSH3.edge.: False\n    test 511 clipSH3.len: 2\n    test 512 clipSH3.0: 20.0°N, 015.0°E\n    test 513 clipSH3.LL: True\n    test 514 clipSH3.1: 25.0°N, 020.0°E\n    test 515 clipSH3.LL: True\n    test 516 clipSH3.edge.: True\n    test 517 clipSH3.len: 2\n    test 518 clipSH3.0: 25.0°N, 020.0°E\n    test 519 clipSH3.LL: True\n    test 520 clipSH3.1: 22.0°N, 026.0°E\n    test 521 clipSH3.LL: True\n    test 522 clipSH3.edge.: True\n    test 523 clipSH3.len: 2\n    test 524 clipSH3.0: 22.0°N, 026.0°E\n    test 525 clipSH3.LL: True\n    test 526 clipSH3.1: 18.571°N, 024.286°E\n    test 527 clipSH3.LL: True\n    test 528 clipSH3.edge.: False\n    test 529 clipSH2.reversed.len: 5\n    test 530 clipSH2.reversed.0: 18.571°N, 024.286°E\n    test 531 clipSH2.reversed.LL: True\n    test 532 clipSH2.reversed.1: 16.667°N, 016.667°E\n    test 533 clipSH2.reversed.LL: True\n    test 534 clipSH2.reversed.2: 20.0°N, 015.0°E\n    test 535 clipSH2.reversed.LL: True\n    test 536 clipSH2.reversed.3: 25.0°N, 020.0°E\n    test 537 clipSH2.reversed.LL: True\n    test 538 clipSH2.reversed.4: 22.0°N, 026.0°E\n    test 539 clipSH2.reversed.LL: True\n    test 540 clipSH3.reversed.len: 2\n    test 541 clipSH3.reversed.0: 18.571°N, 024.286°E\n    test 542 clipSH3.reversed.LL: True\n    test 543 clipSH3.reversed.1: 16.667°N, 016.667°E\n    test 544 clipSH3.reversed.LL: True\n    test 545 clipSH3.edge.reversed.: True\n    test 546 clipSH3.reversed.len: 2\n    test 547 clipSH3.reversed.0: 16.667°N, 016.667°E\n    test 548 clipSH3.reversed.LL: True\n    test 549 clipSH3.reversed.1: 20.0°N, 015.0°E\n    test 550 clipSH3.reversed.LL: True\n    test 551 clipSH3.edge.reversed.: False\n    test 552 clipSH3.reversed.len: 2\n    test 553 clipSH3.reversed.0: 20.0°N, 015.0°E\n    test 554 clipSH3.reversed.LL: True\n    test 555 clipSH3.reversed.1: 25.0°N, 020.0°E\n    test 556 clipSH3.reversed.LL: True\n    test 557 clipSH3.edge.reversed.: True\n    test 558 clipSH3.reversed.len: 2\n    test 559 clipSH3.reversed.0: 25.0°N, 020.0°E\n    test 560 clipSH3.reversed.LL: True\n    test 561 clipSH3.reversed.1: 22.0°N, 026.0°E\n    test 562 clipSH3.reversed.LL: True\n    test 563 clipSH3.edge.reversed.: True\n    test 564 clipSH3.reversed.len: 2\n    test 565 clipSH3.reversed.0: 22.0°N, 026.0°E\n    test 566 clipSH3.reversed.LL: True\n    test 567 clipSH3.reversed.1: 18.571°N, 024.286°E\n    test 568 clipSH3.reversed.LL: True\n    test 569 clipSH3.edge.reversed.: False\n    test 570 clipSH.allout: ()\n    test 571 clipSH3.allout: ()\n    test 572 clipSH.allout.reversed: ()\n    test 573 clipSH3.allout.reversed: ()\n    test 574 clipSH.allin.len: 4\n    test 575 clipSH.allin.0: 20.0°N, 030.0°E\n    test 576 clipSH.allin.LL: True\n    test 577 clipSH.allin.1: 15.0°N, 010.0°E\n    test 578 clipSH.allin.LL: True\n    test 579 clipSH.allin.2: 25.0°N, 020.0°E\n    test 580 clipSH.allin.LL: True\n    test 581 clipSH.allin.3: 20.0°N, 030.0°E\n    test 582 clipSH.allin.LL: True\n    test 583 clipSH3.allin.len: 2\n    test 584 clipSH3.allin.0: 20.0°N, 030.0°E\n    test 585 clipSH3.allin.LL: True\n    test 586 clipSH3.allin.1: 15.0°N, 010.0°E\n    test 587 clipSH3.allin.LL: True\n    test 588 clipSH3.edge.: True\n    test 589 clipSH3.allin.len: 2\n    test 590 clipSH3.allin.0: 15.0°N, 010.0°E\n    test 591 clipSH3.allin.LL: True\n    test 592 clipSH3.allin.1: 25.0°N, 020.0°E\n    test 593 clipSH3.allin.LL: True\n    test 594 clipSH3.edge.: True\n    test 595 clipSH.allin.reversed.len: 4\n    test 596 clipSH.allin.reversed.0: 20.0°N, 030.0°E\n    test 597 clipSH.allin.reversed.LL: True\n    test 598 clipSH.allin.reversed.1: 15.0°N, 010.0°E\n    test 599 clipSH.allin.reversed.LL: True\n    test 600 clipSH.allin.reversed.2: 25.0°N, 020.0°E\n    test 601 clipSH.allin.reversed.LL: True\n    test 602 clipSH.allin.reversed.3: 20.0°N, 030.0°E\n    test 603 clipSH.allin.reversed.LL: True\n    test 604 clipSH3.allin.reversed.len: 2\n    test 605 clipSH3.allin.reversed.0: 20.0°N, 030.0°E\n    test 606 clipSH3.allin.reversed.LL: True\n    test 607 clipSH3.allin.reversed.1: 15.0°N, 010.0°E\n    test 608 clipSH3.allin.reversed.LL: True\n    test 609 clipSH3.edge.reversed.: True\n    test 610 clipSH3.allin.reversed.len: 2\n    test 611 clipSH3.allin.reversed.0: 15.0°N, 010.0°E\n    test 612 clipSH3.allin.reversed.LL: True\n    test 613 clipSH3.allin.reversed.1: 25.0°N, 020.0°E\n    test 614 clipSH3.allin.reversed.LL: True\n    test 615 clipSH3.edge.reversed.: True\n    test 616 clipSH.warped: clipSH clip region ((LatLon(10°00′00.0″N, 010°00′00.0″E), LatLon(20°00′00.0″N, 020°00′00.0″E), LatLon(10°00′00.0″N, 020°00′00.0″E), LatLon(20°00′00.0″N, 010°00′00.0″E))): not convex\n    test 617 clipSH3.warped: clipSH3 clip region ((LatLon(10°00′00.0″N, 010°00′00.0″E), LatLon(20°00′00.0″N, 020°00′00.0″E), LatLon(10°00′00.0″N, 020°00′00.0″E), LatLon(20°00′00.0″N, 010°00′00.0″E))): not convex\n    test 618 clipSH.warpedreversed.: clipSH clip region ((LatLon(20°00′00.0″N, 010°00′00.0″E), LatLon(10°00′00.0″N, 020°00′00.0″E), LatLon(20°00′00.0″N, 020°00′00.0″E), LatLon(10°00′00.0″N, 010°00′00.0″E))): not convex\n    test 619 clipSH3.warpedreversed.: clipSH3 clip region ((LatLon(20°00′00.0″N, 010°00′00.0″E), LatLon(10°00′00.0″N, 020°00′00.0″E), LatLon(20°00′00.0″N, 020°00′00.0″E), LatLon(10°00′00.0″N, 010°00′00.0″E))): not convex\n    test 620 boundsOf: (10.0, 10.0, 20.0, 20.0)\n    test 621 boundsOf: (15.0, 10.0, 25.0, 30.0)\n    test 622 enclosures: (5.0, 0.0, -5.0, -10.0)\n    test 623 overlap: (15.0, 10.0, 20.0, 20.0)\n    test 624 clipSH4: 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 0.0\n    test 625 clipSH5: 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 0.0\n    test 626 clipSH6: 1.0, 0.5, 2.0, 1.0, 2.0, 0.5\n    test 627 clipSH7: -0.2, 2.0, 0.2, 2.0, 0.5, 0.5, 2.0, 0.2, 2.0, -0.2, 0.5, -0.5, 0.2, -2.0, -0.2, -2.0, -0.5, -0.5, -2.0, -0.2, -2.0, 0.2, -0.5, 0.5\n    test 628 clipSH8: -0.33, 1.33, 0.0, 2.0, 0.33, 1.33, 0.5, 0.5, 0.78, 0.44, 1.18, -0.36, 0.5, -0.5, 0.2, -2.0, -0.2, -2.0, -0.5, -0.5, -1.18, -0.36, -0.78, 0.44, -0.5, 0.5\n    test 629 clipSH9: None\n    test 630 clipSH10: None\n    test 631 clipSH11: None\n    test 632 clipSH12: None\n\n    test 633 clipGH4: (ClipGH4Tuple(lat=5.0, lon=3.571429, height=1.714286, clipid=0), ClipGH4Tuple(lat=7.0, lon=5.0, height=2.0, clipid=0), ClipGH4Tuple(lat=5.0, lon=6.428571, height=2.285714, clipid=0), ClipGH4Tuple(lat=3.0, lon=5.0, height=2.0, clipid=0))\n\n    test 634 clipFHP4: (ClipFHP4Tuple(lat=7.0, lon=5.0, height=2.0, clipid=0), ClipFHP4Tuple(lat=5.0, lon=6.428571, height=2.285714, clipid=0), ClipFHP4Tuple(lat=3.0, lon=5.0, height=2.0, clipid=0), ClipFHP4Tuple(lat=5.0, lon=3.571429, height=1.714286, clipid=0))\n\n    test 635 Fig 8: (ClipFHP4Tuple(lat=4.0, lon=12.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=-1.0, lon=12.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=3.0, lon=8.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=5.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=3.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=2.0, lon=1.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=6.0, lon=3.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=6.0, lon=11.0, height=0.0, clipid=0))\n    test 636 Fig 14: (ClipFHP4Tuple(lat=3.0, lon=3.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=0.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=6.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=6.0, lon=6.0, height=0.0, clipid=1), ClipFHP4Tuple(lat=9.0, lon=3.0, height=0.0, clipid=1), ClipFHP4Tuple(lat=6.0, lon=0.0, height=0.0, clipid=1), ClipFHP4Tuple(lat=3.0, lon=3.0, height=0.0, clipid=1))\n    test 637 Fig 15: (ClipFHP4Tuple(lat=1.0, lon=3.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=4.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=2.0, lon=4.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=2.0, lon=0.0, height=0.0, clipid=1), ClipFHP4Tuple(lat=0.0, lon=0.0, height=0.0, clipid=1), ClipFHP4Tuple(lat=1.0, lon=1.0, height=0.0, clipid=1))\n    test 638 Fig 16: (ClipFHP4Tuple(lat=0.0, lon=0.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=1.0, lon=0.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=2.0, lon=2.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=2.0, height=0.0, clipid=0))\n    test 639 Fig 18: ((-10, -10, 0), (-10, -2, 0), (-8, -2, 0), (-8, -8, 0), (-2, -8, 0), (-2, -10, 0), (2, -10, 1), (2, -8, 1), (0, -8, 1), (0, -10, 1), (10, -6, 2), (8, -6, 2), (8, -8, 2), (10, -8, 2), (10, 8, 3), (8, 8, 3), (8, 6, 3), (10, 6, 3), (-6, 10, 4), (-6, 8, 4), (-4, 8, 4), (-4, 10, 4), (-10, 10, 5), (-10, 8, 5), (-8, 8, 5), (-8, 10, 5), (-10, 4, 6), (-8, 4, 6), (-8, 6, 6), (-10, 6, 6), (-10, 0, 7), (-8, 0, 7), (-8, 2, 7), (-10, 2, 7), (-6, 6, 8), (-4, 6, 8), (-4, 4, 8), (-6, 4, 8), (-6, 0, 9), (-4, 0, 9), (-4, 2, 9), (-6, 2, 9), (-6, -6, 10), (-2, -6, 10), (-2, -4, 10), (-4, -4, 10), (-4, -2, 10), (-6, -2, 10), (2, -6, 11), (2, -4, 11), (0, -4, 11), (0, -6, 11), (12, 8, 12), (20, 8, 12), (20, -8, 12), (12, -8, 12), (12, -6, 12), (18, -6, 12), (18, 6, 12), (12, 6, 12), (12, -4, 13), (14, -4, 13), (14, 4, 13), (12, 4, 13))\n\n    testing(pygeodesy.sphericalTrigonometry, 25.08.31)\n    test 640 clipCS4.p1: 07.5°N, 010.0°E\n    test 641 clipCS4.p2: 04.5°N, 000.0°E\n    test 642 clipCS4.i: 3\n    test 643 clipCS4.j: 0\n    test 644 clipCS4.p1: 05.0°N, 005.0°E\n    test 645 clipCS4.p2: 05.0°N, 005.0°E\n    test 646 clipCS4.i: 1\n    test 647 clipCS4.j: 2\n    test 648 clipLB6.p1: 07.5°N, 010.0°E\n    test 649 clipLB6.p2: 04.5°N, 000.0°E\n    test 650 clipLB6.i: 3\n    test 651 clipLB6.fi: 3.25\n    test 652 clipLB6.fi: 07.5°N, 010.0°E\n    test 653 clipLB6.fj: 3.75\n    test 654 clipLB6.fj: 04.5°N, 000.0°E\n    test 655 clipLB6.j: 0\n    test 656 clipLB6.fin: 4\n    test 657 clipLB6.p1: 05.0°N, 005.0°E\n    test 658 clipLB6.p2: 05.0°N, 005.0°E\n    test 659 clipLB6.i: 1\n    test 660 clipLB6.fi: 1.00\n    test 661 clipLB6.fi: 05.0°N, 005.0°E\n    test 662 clipLB6.fj: 2.00\n    test 663 clipLB6.fj: 05.0°N, 005.0°E\n    test 664 clipLB6.j: 2\n    test 665 clipLB6.fin: 4\n    test 666 clipCS4.p1: 60.0°N, 123.333333°E\n    test 667 clipCS4.p2: 62.857143°N, 130.0°E\n    test 668 clipCS4.i: 0\n    test 669 clipCS4.j: 1\n    test 670 clipLB6.p1: 60.0°N, 123.333333°E\n    test 671 clipLB6.p2: 62.857143°N, 130.0°E\n    test 672 clipLB6.i: 0\n    test 673 clipLB6.fi: 0.666667\n    test 674 clipLB6.fi: 60.0°N, 123.333333°E\n    test 675 clipLB6.fj: 0.714286\n    test 676 clipLB6.fj: 62.857143°N, 130.0°E\n    test 677 clipLB6.j: 1\n    test 678 clipLB6.fin: 0\n    test 679 clipCS4.p1: 17.5°N, 020.0°E\n    test 680 clipCS4.p2: 16.25°N, 015.0°E\n    test 681 clipCS4.i: 2\n    test 682 clipCS4.j: 0\n    test 683 clipLB6.p1: 17.5°N, 020.0°E\n    test 684 clipLB6.p2: 16.25°N, 015.0°E\n    test 685 clipLB6.i: 2\n    test 686 clipLB6.fi: 2.500\n    test 687 clipLB6.fi: 17.5°N, 020.0°E\n    test 688 clipLB6.fj: 2.750\n    test 689 clipLB6.fj: 16.25°N, 015.0°E\n    test 690 clipLB6.j: 0\n    test 691 clipLB6.fin: 3\n    test 692 clipSH1.len: 4\n    test 693 clipSH1.0: 20.0°N, 020.0°E\n    test 694 clipSH1.LL: True\n    test 695 clipSH1.1: 17.5°N, 020.0°E\n    test 696 clipSH1.LL: True\n    test 697 clipSH1.2: 16.25°N, 015.0°E\n    test 698 clipSH1.LL: True\n    test 699 clipSH1.3: 20.0°N, 015.0°E\n    test 700 clipSH1.LL: True\n    test 701 clipSH2.len: 5\n    test 702 clipSH2.0: 18.571°N, 024.286°E\n    test 703 clipSH2.LL: True\n    test 704 clipSH2.1: 16.667°N, 016.667°E\n    test 705 clipSH2.LL: True\n    test 706 clipSH2.2: 20.0°N, 015.0°E\n    test 707 clipSH2.LL: True\n    test 708 clipSH2.3: 25.0°N, 020.0°E\n    test 709 clipSH2.LL: True\n    test 710 clipSH2.4: 22.0°N, 026.0°E\n    test 711 clipSH2.LL: True\n    test 712 clipSH3.len: 2\n    test 713 clipSH3.0: 18.571°N, 024.286°E\n    test 714 clipSH3.LL: True\n    test 715 clipSH3.1: 16.667°N, 016.667°E\n    test 716 clipSH3.LL: True\n    test 717 clipSH3.edge.: True\n    test 718 clipSH3.len: 2\n    test 719 clipSH3.0: 16.667°N, 016.667°E\n    test 720 clipSH3.LL: True\n    test 721 clipSH3.1: 20.0°N, 015.0°E\n    test 722 clipSH3.LL: True\n    test 723 clipSH3.edge.: False\n    test 724 clipSH3.len: 2\n    test 725 clipSH3.0: 20.0°N, 015.0°E\n    test 726 clipSH3.LL: True\n    test 727 clipSH3.1: 25.0°N, 020.0°E\n    test 728 clipSH3.LL: True\n    test 729 clipSH3.edge.: True\n    test 730 clipSH3.len: 2\n    test 731 clipSH3.0: 25.0°N, 020.0°E\n    test 732 clipSH3.LL: True\n    test 733 clipSH3.1: 22.0°N, 026.0°E\n    test 734 clipSH3.LL: True\n    test 735 clipSH3.edge.: True\n    test 736 clipSH3.len: 2\n    test 737 clipSH3.0: 22.0°N, 026.0°E\n    test 738 clipSH3.LL: True\n    test 739 clipSH3.1: 18.571°N, 024.286°E\n    test 740 clipSH3.LL: True\n    test 741 clipSH3.edge.: False\n    test 742 clipSH2.reversed.len: 5\n    test 743 clipSH2.reversed.0: 18.571°N, 024.286°E\n    test 744 clipSH2.reversed.LL: True\n    test 745 clipSH2.reversed.1: 16.667°N, 016.667°E\n    test 746 clipSH2.reversed.LL: True\n    test 747 clipSH2.reversed.2: 20.0°N, 015.0°E\n    test 748 clipSH2.reversed.LL: True\n    test 749 clipSH2.reversed.3: 25.0°N, 020.0°E\n    test 750 clipSH2.reversed.LL: True\n    test 751 clipSH2.reversed.4: 22.0°N, 026.0°E\n    test 752 clipSH2.reversed.LL: True\n    test 753 clipSH3.reversed.len: 2\n    test 754 clipSH3.reversed.0: 18.571°N, 024.286°E\n    test 755 clipSH3.reversed.LL: True\n    test 756 clipSH3.reversed.1: 16.667°N, 016.667°E\n    test 757 clipSH3.reversed.LL: True\n    test 758 clipSH3.edge.reversed.: True\n    test 759 clipSH3.reversed.len: 2\n    test 760 clipSH3.reversed.0: 16.667°N, 016.667°E\n    test 761 clipSH3.reversed.LL: True\n    test 762 clipSH3.reversed.1: 20.0°N, 015.0°E\n    test 763 clipSH3.reversed.LL: True\n    test 764 clipSH3.edge.reversed.: False\n    test 765 clipSH3.reversed.len: 2\n    test 766 clipSH3.reversed.0: 20.0°N, 015.0°E\n    test 767 clipSH3.reversed.LL: True\n    test 768 clipSH3.reversed.1: 25.0°N, 020.0°E\n    test 769 clipSH3.reversed.LL: True\n    test 770 clipSH3.edge.reversed.: True\n    test 771 clipSH3.reversed.len: 2\n    test 772 clipSH3.reversed.0: 25.0°N, 020.0°E\n    test 773 clipSH3.reversed.LL: True\n    test 774 clipSH3.reversed.1: 22.0°N, 026.0°E\n    test 775 clipSH3.reversed.LL: True\n    test 776 clipSH3.edge.reversed.: True\n    test 777 clipSH3.reversed.len: 2\n    test 778 clipSH3.reversed.0: 22.0°N, 026.0°E\n    test 779 clipSH3.reversed.LL: True\n    test 780 clipSH3.reversed.1: 18.571°N, 024.286°E\n    test 781 clipSH3.reversed.LL: True\n    test 782 clipSH3.edge.reversed.: False\n    test 783 clipSH.allout: ()\n    test 784 clipSH3.allout: ()\n    test 785 clipSH.allout.reversed: ()\n    test 786 clipSH3.allout.reversed: ()\n    test 787 clipSH.allin.len: 4\n    test 788 clipSH.allin.0: 20.0°N, 030.0°E\n    test 789 clipSH.allin.LL: True\n    test 790 clipSH.allin.1: 15.0°N, 010.0°E\n    test 791 clipSH.allin.LL: True\n    test 792 clipSH.allin.2: 25.0°N, 020.0°E\n    test 793 clipSH.allin.LL: True\n    test 794 clipSH.allin.3: 20.0°N, 030.0°E\n    test 795 clipSH.allin.LL: True\n    test 796 clipSH3.allin.len: 2\n    test 797 clipSH3.allin.0: 20.0°N, 030.0°E\n    test 798 clipSH3.allin.LL: True\n    test 799 clipSH3.allin.1: 15.0°N, 010.0°E\n    test 800 clipSH3.allin.LL: True\n    test 801 clipSH3.edge.: True\n    test 802 clipSH3.allin.len: 2\n    test 803 clipSH3.allin.0: 15.0°N, 010.0°E\n    test 804 clipSH3.allin.LL: True\n    test 805 clipSH3.allin.1: 25.0°N, 020.0°E\n    test 806 clipSH3.allin.LL: True\n    test 807 clipSH3.edge.: True\n    test 808 clipSH.allin.reversed.len: 4\n    test 809 clipSH.allin.reversed.0: 20.0°N, 030.0°E\n    test 810 clipSH.allin.reversed.LL: True\n    test 811 clipSH.allin.reversed.1: 15.0°N, 010.0°E\n    test 812 clipSH.allin.reversed.LL: True\n    test 813 clipSH.allin.reversed.2: 25.0°N, 020.0°E\n    test 814 clipSH.allin.reversed.LL: True\n    test 815 clipSH.allin.reversed.3: 20.0°N, 030.0°E\n    test 816 clipSH.allin.reversed.LL: True\n    test 817 clipSH3.allin.reversed.len: 2\n    test 818 clipSH3.allin.reversed.0: 20.0°N, 030.0°E\n    test 819 clipSH3.allin.reversed.LL: True\n    test 820 clipSH3.allin.reversed.1: 15.0°N, 010.0°E\n    test 821 clipSH3.allin.reversed.LL: True\n    test 822 clipSH3.edge.reversed.: True\n    test 823 clipSH3.allin.reversed.len: 2\n    test 824 clipSH3.allin.reversed.0: 15.0°N, 010.0°E\n    test 825 clipSH3.allin.reversed.LL: True\n    test 826 clipSH3.allin.reversed.1: 25.0°N, 020.0°E\n    test 827 clipSH3.allin.reversed.LL: True\n    test 828 clipSH3.edge.reversed.: True\n    test 829 clipSH.warped: clipSH clip region ((LatLon(10°00′00.0″N, 010°00′00.0″E), LatLon(20°00′00.0″N, 020°00′00.0″E), LatLon(10°00′00.0″N, 020°00′00.0″E), LatLon(20°00′00.0″N, 010°00′00.0″E))): not convex\n    test 830 clipSH3.warped: clipSH3 clip region ((LatLon(10°00′00.0″N, 010°00′00.0″E), LatLon(20°00′00.0″N, 020°00′00.0″E), LatLon(10°00′00.0″N, 020°00′00.0″E), LatLon(20°00′00.0″N, 010°00′00.0″E))): not convex\n    test 831 clipSH.warpedreversed.: clipSH clip region ((LatLon(20°00′00.0″N, 010°00′00.0″E), LatLon(10°00′00.0″N, 020°00′00.0″E), LatLon(20°00′00.0″N, 020°00′00.0″E), LatLon(10°00′00.0″N, 010°00′00.0″E))): not convex\n    test 832 clipSH3.warpedreversed.: clipSH3 clip region ((LatLon(20°00′00.0″N, 010°00′00.0″E), LatLon(10°00′00.0″N, 020°00′00.0″E), LatLon(20°00′00.0″N, 020°00′00.0″E), LatLon(10°00′00.0″N, 010°00′00.0″E))): not convex\n    test 833 boundsOf: (10.0, 10.0, 20.0, 20.0)\n    test 834 boundsOf: (15.0, 10.0, 25.0, 30.0)\n    test 835 enclosures: (5.0, 0.0, -5.0, -10.0)\n    test 836 overlap: (15.0, 10.0, 20.0, 20.0)\n    test 837 clipSH4: 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 0.0\n    test 838 clipSH5: 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 0.0\n    test 839 clipSH6: 1.0, 0.5, 2.0, 1.0, 2.0, 0.5\n    test 840 clipSH7: -0.2, 2.0, 0.2, 2.0, 0.5, 0.5, 2.0, 0.2, 2.0, -0.2, 0.5, -0.5, 0.2, -2.0, -0.2, -2.0, -0.5, -0.5, -2.0, -0.2, -2.0, 0.2, -0.5, 0.5\n    test 841 clipSH8: -0.33, 1.33, 0.0, 2.0, 0.33, 1.33, 0.5, 0.5, 0.78, 0.44, 1.18, -0.36, 0.5, -0.5, 0.2, -2.0, -0.2, -2.0, -0.5, -0.5, -1.18, -0.36, -0.78, 0.44, -0.5, 0.5\n    test 842 clipSH9: None\n    test 843 clipSH10: None\n    test 844 clipSH11: None\n    test 845 clipSH12: None\n\n    test 846 clipGH4: (ClipGH4Tuple(lat=5.0, lon=3.571429, height=1.714286, clipid=0), ClipGH4Tuple(lat=7.0, lon=5.0, height=2.0, clipid=0), ClipGH4Tuple(lat=5.0, lon=6.428571, height=2.285714, clipid=0), ClipGH4Tuple(lat=3.0, lon=5.0, height=2.0, clipid=0))\n\n    test 847 clipFHP4: (ClipFHP4Tuple(lat=7.0, lon=5.0, height=2.0, clipid=0), ClipFHP4Tuple(lat=5.0, lon=6.428571, height=2.285714, clipid=0), ClipFHP4Tuple(lat=3.0, lon=5.0, height=2.0, clipid=0), ClipFHP4Tuple(lat=5.0, lon=3.571429, height=1.714286, clipid=0))\n\n    test 848 Fig 8: (ClipFHP4Tuple(lat=4.0, lon=12.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=-1.0, lon=12.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=3.0, lon=8.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=5.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=3.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=2.0, lon=1.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=6.0, lon=3.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=6.0, lon=11.0, height=0.0, clipid=0))\n    test 849 Fig 14: (ClipFHP4Tuple(lat=3.0, lon=3.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=0.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=6.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=6.0, lon=6.0, height=0.0, clipid=1), ClipFHP4Tuple(lat=9.0, lon=3.0, height=0.0, clipid=1), ClipFHP4Tuple(lat=6.0, lon=0.0, height=0.0, clipid=1), ClipFHP4Tuple(lat=3.0, lon=3.0, height=0.0, clipid=1))\n    test 850 Fig 15: (ClipFHP4Tuple(lat=1.0, lon=3.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=4.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=2.0, lon=4.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=2.0, lon=0.0, height=0.0, clipid=1), ClipFHP4Tuple(lat=0.0, lon=0.0, height=0.0, clipid=1), ClipFHP4Tuple(lat=1.0, lon=1.0, height=0.0, clipid=1))\n    test 851 Fig 16: (ClipFHP4Tuple(lat=0.0, lon=0.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=1.0, lon=0.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=2.0, lon=2.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=2.0, height=0.0, clipid=0))\n    test 852 Fig 18: ((-10, -10, 0), (-10, -2, 0), (-8, -2, 0), (-8, -8, 0), (-2, -8, 0), (-2, -10, 0), (2, -10, 1), (2, -8, 1), (0, -8, 1), (0, -10, 1), (10, -6, 2), (8, -6, 2), (8, -8, 2), (10, -8, 2), (10, 8, 3), (8, 8, 3), (8, 6, 3), (10, 6, 3), (-6, 10, 4), (-6, 8, 4), (-4, 8, 4), (-4, 10, 4), (-10, 10, 5), (-10, 8, 5), (-8, 8, 5), (-8, 10, 5), (-10, 4, 6), (-8, 4, 6), (-8, 6, 6), (-10, 6, 6), (-10, 0, 7), (-8, 0, 7), (-8, 2, 7), (-10, 2, 7), (-6, 6, 8), (-4, 6, 8), (-4, 4, 8), (-6, 4, 8), (-6, 0, 9), (-4, 0, 9), (-4, 2, 9), (-6, 2, 9), (-6, -6, 10), (-2, -6, 10), (-2, -4, 10), (-4, -4, 10), (-4, -2, 10), (-6, -2, 10), (2, -6, 11), (2, -4, 11), (0, -4, 11), (0, -6, 11), (12, 8, 12), (20, 8, 12), (20, -8, 12), (12, -8, 12), (12, -6, 12), (18, -6, 12), (18, 6, 12), (12, 6, 12), (12, -4, 13), (14, -4, 13), (14, 4, 13), (12, 4, 13))\n\n    all 852 testClipy.py tests passed (pygeodesy 26.3.26 Python 3.12.10 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 2.1.0 scipy 1.14.1 Math 2 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 isLazy 3 -W  default) 274.331 ms\nrunning /usr/local/bin/p....n3.12 -W default ~/PyGeodesy/test/testConstants.py\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.Float from .unitsBase by testConstants.py line 11\n# lazily imported pygeodesy.Int from .unitsBase by testConstants.py line 11\n# lazily imported pygeodesy.Radius from .unitsBase by testConstants.py line 11\n# lazily imported pygeodesy.float_ from .constants by testConstants.py line 11\n# lazily imported pygeodesy.floats_ from .constants by testConstants.py line 11\n# lazily imported pygeodesy.isinf from .constants by testConstants.py line 11\n# lazily imported pygeodesy.isint0 from .constants by testConstants.py line 11\n# lazily imported pygeodesy.isnan from .constants by testConstants.py line 11\n# lazily imported pygeodesy.EPS from .constants by testConstants.py line 11\n# lazily imported pygeodesy.EPS0 from .constants by testConstants.py line 11\n# lazily imported pygeodesy.EPS02 from .constants by testConstants.py line 11\n# lazily imported pygeodesy.EPS1 from .constants by testConstants.py line 11\n# lazily imported pygeodesy.EPS2 from .constants by testConstants.py line 11\n# lazily imported pygeodesy.EPS_2 from .constants by testConstants.py line 11\n# lazily imported pygeodesy.EPS4 from .constants by testConstants.py line 11\n# lazily imported pygeodesy.INF from .constants by testConstants.py line 11\n# lazily imported pygeodesy.INT0 from .constants by testConstants.py line 11\n# lazily imported pygeodesy.NAN from .constants by testConstants.py line 11\n# lazily imported pygeodesy.NEG0 from .constants by testConstants.py line 11\n# lazily imported pygeodesy.NINF from .constants by testConstants.py line 11\n\n    testing testConstants.py 25.10.15 (module pygeodesy.constants 26.02.09) isLazy=3\n    test 1 _0_0: 0.0\n    test 2 _0_0001: 0.0001\n    test 3 _0_001: 0.001\n    test 4 _0_01: 0.01\n    test 5 _0_1: 0.1\n    test 6 _0_125: 0.125\n    test 7 _0_25: 0.25\n    test 8 _0_5: 0.5\n    test 9 _0_75: 0.75\n    test 10 _1000_0: 1000.0\n    test 11 _100_0: 100.0\n    test 12 _10_0: 10.0\n    test 13 _16_0: 16.0\n    test 14 _180_0: 180.0\n    test 15 _1_0: 1.0\n    test 16 _1_3rd: 0.3333333333333333  FAILED, KNOWN, expected 1.3rd\n    test 17 _1_5: 1.5\n    test 18 _1_75: 1.75\n\n    test 19 _1_EPS: _1_EPS (4.50359962737e+15)\n    test 20 _1_EPS: _1_EPS\n    test 21 _1_EPS: True\n    test 22 _270_0: 270.0\n    test 23 _2_0: 2.0\n    test 24 _2_3rd: 0.6666666666666666  FAILED, KNOWN, expected 2.3rd\n\n    test 25 _2__PI: _2__PI (0.636619772368)\n    test 26 _2__PI: _2__PI\n    test 27 _2__PI: True\n    test 28 _32_0: 32.0\n    test 29 _3600_0: 3600.0\n    test 30 _360_0: 360.0\n    test 31 _3_0: 3.0\n    test 32 _45_0: 45.0\n    test 33 _4_0: 4.0\n    test 34 _5_0: 5.0\n    test 35 _60_0: 60.0\n    test 36 _64_0: 64.0\n    test 37 _6_0: 6.0\n    test 38 _720_0: 720.0\n\n    test 39 _89_999: _89_999 (90.0)\n    test 40 _89_999: _89_999\n    test 41 _89_999: True\n    test 42 _8_0: 8.0\n    test 43 _90_0: 90.0\n    test 44 _9_0: 9.0\n\n    test 45 _EPS2e4: _EPS2e4 (4.4408920985e-12)\n    test 46 _EPS2e4: _EPS2e4\n    test 47 _EPS2e4: True\n\n    test 48 _EPS4e8: _EPS4e8 (8.881784197e-08)\n    test 49 _EPS4e8: _EPS4e8\n    test 50 _EPS4e8: True\n\n    test 51 _EPSjam: _EPSjam (1.81898940355e-12)\n    test 52 _EPSjam: _EPSjam\n    test 53 _EPSjam: True\n\n    test 54 _EPSmin: _EPSmin (1.49166814624e-154)\n    test 55 _EPSmin: _EPSmin\n    test 56 _EPSmin: True\n\n    test 57 _EPSqrt: _EPSqrt (1.49011611938e-08)\n    test 58 _EPSqrt: _EPSqrt\n    test 59 _EPSqrt: True\n\n    test 60 _EPStol: _EPStol (1.49011611938e-09)\n    test 61 _EPStol: _EPStol\n    test 62 _EPStol: True\n    test 63 _inf: inf\n\n    test 64 _K0_UPS: _K0_UPS (0.994)\n    test 65 _K0_UPS: _K0_UPS\n    test 66 _K0_UPS: True\n\n    test 67 _K0_UTM: _K0_UTM (0.9996)\n    test 68 _K0_UTM: _K0_UTM\n    test 69 _K0_UTM: True\n    test 70 _M_KM: 1000.0  FAILED, KNOWN, expected M.KM\n    test 71 _M_NM: 1852.0  FAILED, KNOWN, expected M.NM\n    test 72 _M_SM: 1609.344  FAILED, KNOWN, expected M.SM\n    test 73 _N_0_0: -0.0  FAILED, KNOWN, expected N.0.0\n    test 74 _N_0_5: -0.5  FAILED, KNOWN, expected N.0.5\n    test 75 _N_180_0: -180.0  FAILED, KNOWN, expected N.180.0\n    test 76 _N_1_0: -1.0  FAILED, KNOWN, expected N.1.0\n    test 77 _N_2_0: -2.0  FAILED, KNOWN, expected N.2.0\n    test 78 _N_90_0: -90.0  FAILED, KNOWN, expected N.90.0\n    test 79 _nan: nan\n    test 80 _pi: 3.141592653589793  FAILED, KNOWN, expected pi\n\n    test 81 _SQRT2: _SQRT2 (1.41421356237)\n    test 82 _SQRT2: _SQRT2\n    test 83 _SQRT2: True\n\n    test 84 _SQRT2_2: _SQRT2_2 (0.707106781187)\n    test 85 _SQRT2_2: _SQRT2_2\n    test 86 _SQRT2_2: True\n\n    test 87 _SQRT3: _SQRT3 (1.73205080757)\n    test 88 _SQRT3: _SQRT3\n    test 89 _SQRT3: True\n\n    test 90 _SQRT3_2: _SQRT3_2 (0.866025403784)\n    test 91 _SQRT3_2: _SQRT3_2\n    test 92 _SQRT3_2: True\n\n    test 93 DIG: DIG (15)\n    test 94 DIG: DIG\n    test 95 DIG: True\n    test 96 DIG: True\n\n    test 97 EPS: EPS (2.22044604925e-16)\n    test 98 EPS: EPS\n    test 99 EPS: True\n    test 100 EPS: True\n\n    test 101 EPS0: EPS0 (4.93038065763e-32)\n    test 102 EPS0: EPS0\n    test 103 EPS0: True\n    test 104 EPS0: True\n\n    test 105 EPS02: EPS02 (2.43086534291e-63)\n    test 106 EPS02: EPS02\n    test 107 EPS02: True\n    test 108 EPS02: True\n\n    test 109 EPS1: EPS1 (1.0)\n    test 110 EPS1: EPS1\n    test 111 EPS1: True\n    test 112 EPS1: True\n\n    test 113 EPS2: EPS2 (4.4408920985e-16)\n    test 114 EPS2: EPS2\n    test 115 EPS2: True\n    test 116 EPS2: True\n\n    test 117 EPS4: EPS4 (8.881784197e-16)\n    test 118 EPS4: EPS4\n    test 119 EPS4: True\n    test 120 EPS4: True\n\n    test 121 EPS8: EPS8 (1.7763568394e-15)\n    test 122 EPS8: EPS8\n    test 123 EPS8: True\n    test 124 EPS8: True\n\n    test 125 EPS_2: EPS_2 (1.11022302463e-16)\n    test 126 EPS_2: EPS_2\n    test 127 EPS_2: True\n    test 128 EPS_2: True\n\n    test 129 INF: INF (inf)\n    test 130 INF: INF\n    test 131 INF: True\n    test 132 INF: True\n\n    test 133 INT0: INT0 (0)\n    test 134 INT0: INT0\n    test 135 INT0: True\n    test 136 INT0: True\n\n    test 137 MANT_DIG: MANT_DIG (53)\n    test 138 MANT_DIG: MANT_DIG\n    test 139 MANT_DIG: True\n    test 140 MANT_DIG: True\n\n    test 141 MAX: MAX (1.79769313486e+308)\n    test 142 MAX: MAX\n    test 143 MAX: True\n    test 144 MAX: True\n\n    test 145 MAX_EXP: MAX_EXP (1024)\n    test 146 MAX_EXP: MAX_EXP\n    test 147 MAX_EXP: True\n    test 148 MAX_EXP: True\n\n    test 149 MIN: MIN (2.22507385851e-308)\n    test 150 MIN: MIN\n    test 151 MIN: True\n    test 152 MIN: True\n\n    test 153 MIN_EXP: MIN_EXP (-1021)\n    test 154 MIN_EXP: MIN_EXP\n    test 155 MIN_EXP: True\n    test 156 MIN_EXP: True\n\n    test 157 NAN: NAN (nan)\n    test 158 NAN: NAN\n    test 159 NAN: True\n    test 160 NAN: True\n\n    test 161 NEG0: NEG0 (-0)\n    test 162 NEG0: NEG0\n    test 163 NEG0: True\n    test 164 NEG0: True\n\n    test 165 NINF: NINF (-inf)\n    test 166 NINF: NINF\n    test 167 NINF: True\n    test 168 NINF: True\n\n    test 169 OVERFLOW: OVERFLOW (2.02824096037e+31)\n    test 170 OVERFLOW: OVERFLOW\n    test 171 OVERFLOW: True\n    test 172 OVERFLOW: True\n\n    test 173 PI: PI (3.14159265359)\n    test 174 PI: PI\n    test 175 PI: True\n    test 176 PI: True\n\n    test 177 PI2: PI2 (6.28318530718)\n    test 178 PI2: PI2\n    test 179 PI2: True\n    test 180 PI2: True\n\n    test 181 PI3: PI3 (9.42477796077)\n    test 182 PI3: PI3\n    test 183 PI3: True\n    test 184 PI3: True\n\n    test 185 PI3_2: PI3_2 (4.71238898038)\n    test 186 PI3_2: PI3_2\n    test 187 PI3_2: True\n    test 188 PI3_2: True\n\n    test 189 PI4: PI4 (12.5663706144)\n    test 190 PI4: PI4\n    test 191 PI4: True\n    test 192 PI4: True\n\n    test 193 PI_2: PI_2 (1.57079632679)\n    test 194 PI_2: PI_2\n    test 195 PI_2: True\n    test 196 PI_2: True\n\n    test 197 PI_3: PI_3 (1.0471975512)\n    test 198 PI_3: PI_3\n    test 199 PI_3: True\n    test 200 PI_3: True\n\n    test 201 PI_4: PI_4 (0.785398163397)\n    test 202 PI_4: PI_4\n    test 203 PI_4: True\n    test 204 PI_4: True\n\n    test 205 PI_6: PI_6 (0.523598775598)\n    test 206 PI_6: PI_6\n    test 207 PI_6: True\n    test 208 PI_6: True\n\n    test 209 R_FM: R_FM (6371000.0)\n    test 210 R_FM: R_FM\n    test 211 R_FM: True\n    test 212 R_FM: True\n\n    test 213 R_GM: R_GM (6371230.0)\n    test 214 R_GM: R_GM\n    test 215 R_GM: True\n    test 216 R_GM: True\n\n    test 217 R_KM: R_KM (6371.00877141)\n    test 218 R_KM: R_KM\n    test 219 R_KM: True\n    test 220 R_KM: True\n\n    test 221 R_M: R_M (6371008.77141)\n    test 222 R_M: R_M\n    test 223 R_M: True\n    test 224 R_M: True\n\n    test 225 R_MA: R_MA (6378137.0)\n    test 226 R_MA: R_MA\n    test 227 R_MA: True\n    test 228 R_MA: True\n\n    test 229 R_MB: R_MB (6356752.3)\n    test 230 R_MB: R_MB\n    test 231 R_MB: True\n    test 232 R_MB: True\n\n    test 233 R_NM: R_NM (3440.069531)\n    test 234 R_NM: R_NM\n    test 235 R_NM: True\n    test 236 R_NM: True\n\n    test 237 R_QM: R_QM (6372797.56086)\n    test 238 R_QM: R_QM\n    test 239 R_QM: True\n    test 240 R_QM: True\n\n    test 241 R_SM: R_SM (3958.76131605)\n    test 242 R_SM: R_SM\n    test 243 R_SM: True\n    test 244 R_SM: True\n\n    test 245 R_VM: R_VM (6366707.01949)\n    test 246 R_VM: R_VM\n    test 247 R_VM: True\n    test 248 R_VM: True\n\n    test 249 EPS: True\n    test 250 EPS+1: True\n    test 251 EPS-1: True\n\n    test 252 EPS0: True\n    test 253 EPS02: True\n\n    test 254 EPS_2: True\n    test 255 EPS_2: 1.1102230246251565e-16\n\n    test 256 EPS1: True\n    test 257 EPS1+1: True\n    test 258 EPS1-1: True\n\n    test 259 EPS2: True\n    test 260 EPS2: 4.440892098500626e-16\n\n    test 261 EPS4: True\n    test 262 EPS4: 8.881784197001252e-16\n\n    test 263 INF: True\n    test 264 INF: False\n    test 265 NINF: True\n    test 266 NINF: -inf\n\n    test 267 INT0: 0\n    test 268 INT0: True\n    test 269 INT0: True\n    test 270 INT0: False\n    test 271 INT0: False\n    test 272 INT0: False\n\n    test 273 NAN: True\n    test 274 NAN: False\n    test 275 NAN: False\n\n    test 276 NEG0: -0.0\n    test 277 NEG0: True\n    test 278 NEG0: False\n    test 279 NEG0: 0.0\n\n    test 280 _off90: True\n    test 281 _off90: True\n    test 282 float_: True\n    test 283 floats_: (1.0, 2.0, 3.0)\n\n    test 284 _0_0: True\n\n    test 285 _0_0s: 0\n    test 286 _0_0s: 0\n    test 287 _0_0s: 1\n    test 288 _0_0s: 1\n    test 289 _0_0s: 2\n    test 290 _0_0s: 2\n    test 291 _0_0s: 3\n    test 292 _0_0s: 3\n    test 293 _0_0s: 5\n    test 294 _0_0s: 5\n    test 295 _0_0s: 8\n    test 296 _0_0s: 8\n    test 297 _0_0s: 9\n    test 298 _0_0s: 9\n    test 299 _0_0s: 10\n    test 300 _0_0s: 10\n    test 301 _0_0s: 12\n    test 302 _0_0s: 12\n    test 303 _0_0s: 25\n    test 304 _0_0s: 25\n    test 305 _0_0s: 49\n    test 306 _0_0s: 49\n    test 307 _0_0s: 129\n    test 308 _0_0s: 129\n    test 309 _0_0s: 257\n    test 310 _0_0s: 257\n\n    12 of 310 testConstants.py tests (3.9%) FAILED, ALL KNOWN (pygeodesy 26.3.26 Python 3.12.10 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 2.1.0 scipy 1.14.1 Math 2 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 isLazy 3 -W  default) 1.746 ms\nrunning /usr/local/bin/p....n3.12 -W default ~/PyGeodesy/test/testCss.py\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.CassiniSoldner from .css by testCss.py line 11\n# lazily imported pygeodesy.Css from .css by testCss.py line 11\n# lazily imported pygeodesy.CSSError from .css by testCss.py line 11\n# lazily imported pygeodesy.Ellipsoids from .ellipsoids by testCss.py line 11\n# lazily imported pygeodesy.fstr from .streprs by testCss.py line 11\n# lazily imported pygeodesy.haversine from .formy by testCss.py line 11\n# lazily imported pygeodesy.hypot from .fmath by testCss.py line 11\n# lazily imported pygeodesy.toCss from .css by testCss.py line 11\n# lazily imported pygeodesy.ellipsoidalExact by testCss.py line 124\n# lazily imported pygeodesy.ellipsoidalNvector by testCss.py line 124\n# lazily imported pygeodesy.ellipsoidalVincenty by testCss.py line 124\n\n    testing testCss.py 23.03.27 (module pygeodesy.css 25.04.14) isLazy=3\n# lazily imported pygeodesy.ellipsoidalKarney by testCss.py line 131\n# lazily imported pygeodesy.ellipsoidalGeodSolve by testCss.py line 139\n# lazily imported pygeodesy.geodesicw by ellipsoids.py line 1074\n    test 1 CassiniSoldner(48.833333, 2.333333, name='Paris'): 48.833333 2.333333\n# lazily imported pygeodesy.geodesicx by css.py line 255\n    test 2 Exact: False\n    test 3 forward: -37518.854545, 230003.561828\n    test 4 reverse: 50.9, 1.8\n    test 5 forward4: -37518.854545, 230003.561828, 89.586104, 0.999983\n    test 6 equatorarc: 89.662511\n    test 7 equatorazimuth: 39.192992\n    test 8 copy(<class 'type'>): (<class 'pygeodesy.css.CassiniSoldner'>, True)\n    test 9 CassiniSoldner.copy(): (<class 'pygeodesy.css.CassiniSoldner'>, True)\n    test 10 reverse: 50.899937, 1.793161\n    test 11 forward: -38000.0, 230000.0\n    test 12 reverse4: 50.899937, 1.793161, 89.580797, 0.999982\n    test 13 reverse(pygeodesy.ellipsoidalKarney): LatLon(50°53′59.77″N, 001°47′35.38″E)\n    test 14 reverse(pygeodesy.ellipsoidalExact): LatLon(50°53′59.77″N, 001°47′35.38″E)\n    test 15 reverse(pygeodesy.ellipsoidalNvector): LatLon(50°53′59.77″N, 001°47′35.38″E)\n    test 16 reverse(pygeodesy.ellipsoidalVincenty): LatLon(50°53′59.77″N, 001°47′35.38″E)\n    test 17 reverse(pygeodesy.ellipsoidalGeodSolve): LatLon(50°53′59.77″N, 001°47′35.38″E)\n    test 18 CassiniSoldner(51.4934, 0.0098, name='Greenwich'): 51.4934 0.0098\n    test 19 forward: 170557.151692, -293280.6051\n    test 20 reverse: 48.833333, 2.333333\n    test 21 hypot: 339268.707  FAILED, KNOWN, expected 338901.865\n    test 22 toCss: -37518.854545 230003.561828 +1.00m\n    test 23 toCss: [E:-37518.854545, N:230003.561828, H:+1.00m, name:'Calais', C:CassiniSoldner(48.833333, 2.333333, name='Paris')]\n    test 24 Css.easting: -37518.854545\n    test 25 Css.northing: 230003.561828\n    test 26 Css.height: 1.0\n    test 27 Css.azi: 89.586103815\n    test 28 Css.rk: 0.999982722\n    test 29 Css.name: Calais\n    test 30 Css.cs0: 48.833333 2.333333\n    test 31 Css.toLatLon: LatLon(50°54′00.0″N, 001°48′00.0″E, +1.00m)\n    test 32 Css.toLatLon.height: 1.0\n    test 33 Css.toLatLon.name: Calais\n    test 34 Css.toLatLon.datum.name: WGS84\n    test 35 Css.toLatLon.height: 1.0  FAILED, KNOWN, expected height(1.0)\n    test 36 copy(<class 'type'>): (<class 'pygeodesy.css.Css'>, True)\n    test 37 Css.copy(): (<class 'pygeodesy.css.Css'>, True)\n    test 38 cs0.name: Paris\n    test 39 cs0.name: Default\n    test 40 cs0.flattening: 0.003352811\n    test 41 cs0.lat0: 0.0\n    test 42 cs0.equatoradius: 6378137.0\n    test 43 cs0.lat0: 0.0  FAILED, KNOWN, expected lat(0.0)\n    test 44 classof.height: 1.0\n    test 45 classof.azi: 89.586103815\n    test 46 classof.rk: 0.999982722\n    test 47 classof.name: Calais\n    test 48 classof.cs0: 48.833333 2.333333\n    test 49 cs0.latlon0: (48.833333, 2.333333)\n    test 50 cs0.latlon0: (48.833333, 2.333333)\n# imported pygeodesy.basics into errors.py line 443\n    test 51 cs0.latlon0: latlon0 (None): 'NoneType' object has no attribute 'lat'\n    test 52 cs0.latlon0: (48.0, 2.0)\n    test 53 datum: True\n    test 54 datum: False\n    test 55 forward6: (39142.269011, -229679.266845, 90.401497, 0.999981, 90.352206, 41.257592)\n\n    3 of 55 testCss.py tests (5.5%) FAILED, ALL KNOWN (pygeodesy 26.3.26 Python 3.12.10 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 2.1.0 scipy 1.14.1 Math 2 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 isLazy 3 -W  default) 11.398 ms\nrunning /usr/local/bin/p....n3.12 -W default ~/PyGeodesy/test/testDatums.py\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.Datum from .datums by testDatums.py line 11\n# lazily imported pygeodesy.Datums from .datums by testDatums.py line 11\n# lazily imported pygeodesy.Ellipsoid from .ellipsoids by testDatums.py line 11\n# lazily imported pygeodesy.Ellipsoids from .ellipsoids by testDatums.py line 11\n# lazily imported pygeodesy.R_M from .constants by testDatums.py line 11\n# lazily imported pygeodesy.Transform from .datums by testDatums.py line 11\n# lazily imported pygeodesy.Transforms from .datums by testDatums.py line 11\n\n    testing testDatums.py 24.05.17 (module pygeodesy.datums 26.01.13) isLazy=3\n    test 1 ellipsoid: True\n    test 2 transform: True\n    test 3 datum: True\n    test 4 TestEllipsiod: name='TestEllipsiod', a=1000, f=0, f_=0, b=1000\n    test 5 TestTransform: name='TestTransform', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=0.0, ry=0.0, rz=0.0, s=0.0, sx=0.0, sy=0.0, sz=0.0\n    test 6 TestDatum: name='TestDatum', ellipsoid=Ellipsoids.TestEllipsiod, transform=Transforms.TestTransform\n    test 7 ED50.inverse().inverse(): True\n    test 8 Sphere: True\n\n    test 9 all: all\n\n    test 10 BD72: name='BD72', ellipsoid=Ellipsoids.Intl1924, transform=Transforms.BD72\n    test 11 Intl1924: name='Intl1924', a=6378388, f=0.003367, f_=297, b=6356911.94612795\n    test 12 BD72: name='BD72', tx=106.87, ty=-52.298, tz=103.72, s1=1.0, rx=-1.6317e-06, ry=-2.2154e-06, rz=-8.9311e-06, s=1.2727, sx=-0.33657, sy=-0.45696, sz=-1.8422\n\n    test 13 DHDN: name='DHDN', ellipsoid=Ellipsoids.Bessel1841, transform=Transforms.DHDN\n    test 14 Bessel1841: name='Bessel1841', a=6377397.155, f=0.00334277, f_=299.1528128, b=6356078.962818\n    test 15 DHDN: name='DHDN', tx=-591.28, ty=-81.35, tz=-396.39, s1=0.99999, rx=7.1607e-06, ry=-3.5682e-07, rz=-7.0686e-06, s=-9.82, sx=1.477, sy=-0.0736, sz=-1.458\n\n    test 16 ED50: name='ED50', ellipsoid=Ellipsoids.Intl1924, transform=Transforms.ED50\n    test 17 Intl1924: name='Intl1924', a=6378388, f=0.003367, f_=297, b=6356911.94612795\n    test 18 ED50: name='ED50', tx=89.5, ty=93.8, tz=123.1, s1=1.0, rx=0.0, ry=0.0, rz=7.5631e-07, s=-1.2, sx=0.0, sy=0.0, sz=0.156\n\n    test 19 GDA2020: name='GDA2020', ellipsoid=Ellipsoids.GRS80, transform=Transforms.WGS84\n    test 20 GRS80: name='GRS80', a=6378137, f=0.00335281, f_=298.2572221, b=6356752.31414035\n    test 21 WGS84: name='WGS84', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=0.0, ry=0.0, rz=0.0, s=0.0, sx=0.0, sy=0.0, sz=0.0\n\n    test 22 GRS80: name='GRS80', ellipsoid=Ellipsoids.GRS80, transform=Transforms.WGS84\n    test 23 GRS80: name='GRS80', a=6378137, f=0.00335281, f_=298.2572221, b=6356752.31414035\n    test 24 WGS84: name='WGS84', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=0.0, ry=0.0, rz=0.0, s=0.0, sx=0.0, sy=0.0, sz=0.0\n\n    test 25 Irl1975: name='Irl1975', ellipsoid=Ellipsoids.AiryModified, transform=Transforms.Irl1975\n    test 26 AiryModified: name='AiryModified', a=6377340.189, f=0.00334085, f_=299.3249646, b=6356034.44793853\n    test 27 Irl1975: name='Irl1975', tx=-482.53, ty=130.6, tz=-564.56, s1=0.99999, rx=5.0518e-06, ry=1.0375e-06, rz=3.0592e-06, s=-8.15, sx=1.042, sy=0.214, sz=0.631\n\n    test 28 Krassovski1940: name='Krassovski1940', ellipsoid=Ellipsoids.Krassovski1940, transform=Transforms.Krassovski1940\n    test 29 Krassovski1940: name='Krassovski1940', a=6378245, f=0.00335233, f_=298.3, b=6356863.01877305\n    test 30 Krassovski1940: name='Krassovski1940', tx=-24, ty=123.0, tz=94.0, s1=1.0, rx=-9.6963e-08, ry=1.2605e-06, rz=6.3026e-07, s=-2.423, sx=-0.02, sy=0.26, sz=0.13\n\n    test 31 Krassowsky1940: name='Krassowsky1940', ellipsoid=Ellipsoids.Krassowsky1940, transform=Transforms.Krassowsky1940\n    test 32 Krassowsky1940: name='Krassowsky1940', a=6378245, f=0.00335233, f_=298.3, b=6356863.01877305\n    test 33 Krassowsky1940: name='Krassowsky1940', tx=-24, ty=123.0, tz=94.0, s1=1.0, rx=-9.6963e-08, ry=1.2605e-06, rz=6.3026e-07, s=-2.423, sx=-0.02, sy=0.26, sz=0.13\n\n    test 34 MGI: name='MGI', ellipsoid=Ellipsoids.Bessel1841, transform=Transforms.MGI\n    test 35 Bessel1841: name='Bessel1841', a=6377397.155, f=0.00334277, f_=299.1528128, b=6356078.962818\n    test 36 MGI: name='MGI', tx=-577.33, ty=-90.129, tz=-463.92, s1=1.0, rx=2.4905e-05, ry=7.1462e-06, rz=2.5681e-05, s=-2.423, sx=5.137, sy=1.474, sz=5.297\n\n    test 37 NAD27: name='NAD27', ellipsoid=Ellipsoids.Clarke1866, transform=Transforms.NAD27\n    test 38 Clarke1866: name='Clarke1866', a=6378206.4, f=0.00339008, f_=294.97869821, b=6356583.8\n    test 39 NAD27: name='NAD27', tx=8.0, ty=-160, tz=-176, s1=1.0, rx=0.0, ry=0.0, rz=0.0, s=0.0, sx=0.0, sy=0.0, sz=0.0\n\n    test 40 NAD83: name='NAD83', ellipsoid=Ellipsoids.GRS80, transform=Transforms.NAD83\n    test 41 GRS80: name='GRS80', a=6378137, f=0.00335281, f_=298.2572221, b=6356752.31414035\n    test 42 NAD83: name='NAD83', tx=1.004, ty=-1.91, tz=-0.515, s1=1.0, rx=1.2945e-07, ry=1.6484e-09, rz=5.333e-08, s=-0.0015, sx=0.0267, sy=0.00034, sz=0.011\n\n    test 43 NTF: name='NTF', ellipsoid=Ellipsoids.Clarke1880IGN, transform=Transforms.NTF\n    test 44 Clarke1880IGN: name='Clarke1880IGN', a=6378249.2, f=0.00340755, f_=293.46602129, b=6356515\n    test 45 NTF: name='NTF', tx=-168, ty=-60, tz=320.0, s1=1.0, rx=0.0, ry=0.0, rz=0.0, s=0.0, sx=0.0, sy=0.0, sz=0.0\n\n    test 46 OSGB36: name='OSGB36', ellipsoid=Ellipsoids.Airy1830, transform=Transforms.OSGB36\n    test 47 Airy1830: name='Airy1830', a=6377563.396, f=0.00334085, f_=299.3249646, b=6356256.90923729\n    test 48 OSGB36: name='OSGB36', tx=-446.45, ty=125.16, tz=-542.06, s1=1.0, rx=-7.2819e-07, ry=-1.1975e-06, rz=-4.0826e-06, s=20.489, sx=-0.1502, sy=-0.247, sz=-0.8421\n\n    test 49 Potsdam: name='Potsdam', ellipsoid=Ellipsoids.Bessel1841, transform=Transforms.Bessel1841\n    test 50 Bessel1841: name='Bessel1841', a=6377397.155, f=0.00334277, f_=299.1528128, b=6356078.962818\n    test 51 Bessel1841: name='Bessel1841', tx=-582, ty=-105, tz=-414, s1=0.99999, rx=-5.0421e-06, ry=-1.6968e-06, rz=1.4932e-05, s=-8.3, sx=-1.04, sy=-0.35, sz=3.08\n\n    test 52 Sphere: name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84\n    test 53 Sphere: name='Sphere', a=6371008.771415, f=0, f_=0, b=6371008.771415\n    test 54 WGS84: name='WGS84', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=0.0, ry=0.0, rz=0.0, s=0.0, sx=0.0, sy=0.0, sz=0.0\n\n    test 55 TokyoJapan: name='TokyoJapan', ellipsoid=Ellipsoids.Bessel1841, transform=Transforms.TokyoJapan\n    test 56 Bessel1841: name='Bessel1841', a=6377397.155, f=0.00334277, f_=299.1528128, b=6356078.962818\n    test 57 TokyoJapan: name='TokyoJapan', tx=148.0, ty=-507, tz=-685, s1=1.0, rx=0.0, ry=0.0, rz=0.0, s=0.0, sx=0.0, sy=0.0, sz=0.0\n\n    test 58 WGS72: name='WGS72', ellipsoid=Ellipsoids.WGS72, transform=Transforms.WGS72\n    test 59 WGS72: name='WGS72', a=6378135, f=0.00335278, f_=298.26, b=6356750.52001609\n    test 60 WGS72: name='WGS72', tx=0.0, ty=0.0, tz=-4.5, s1=1.0, rx=0.0, ry=0.0, rz=2.6859e-06, s=-0.22, sx=0.0, sy=0.0, sz=0.554\n\n    test 61 WGS84: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 62 WGS84: name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518\n    test 63 WGS84: name='WGS84', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=0.0, ry=0.0, rz=0.0, s=0.0, sx=0.0, sy=0.0, sz=0.0\n\n    test 64 total: 18\n\n    all 64 testDatums.py tests passed (pygeodesy 26.3.26 Python 3.12.10 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 2.1.0 scipy 1.14.1 Math 2 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 isLazy 3 -W  default) 5.049 ms\nrunning /usr/local/bin/p....n3.12 -W default ~/PyGeodesy/test/testDeprecated.py\n./pygeodesy/deprecated/classes.py:185: DeprecationWarning: class L{HeightIDW<pygeodesy.deprecated.classes.HeightIDW>} has been DEPRECATED, use class L{HeightIDWeuclidean}.\n  deprecated_class(self.__class__)\n./pygeodesy/deprecated/classes.py:198: DeprecationWarning: class L{HeightIDW2<pygeodesy.deprecated.classes.HeightIDW2>} has been DEPRECATED, use class L{HeightIDWequirectangular}.\n  deprecated_class(self.__class__)\n./pygeodesy/deprecated/classes.py:212: DeprecationWarning: class L{HeightIDW3<pygeodesy.deprecated.classes.HeightIDW3>} has been DEPRECATED, use class L{HeightIDWhaversine}.\n  deprecated_class(self.__class__)\n./test/testDeprecated.py:38: DeprecationWarning: function L{areaof<pygeodesy.deprecated.functions.areaof>} has been DEPRECATED, use function L{pygeodesy.areaOf}.\n  self.test('areaof', areaof(p, radius=R_MA), '7.086883e+09', fmt='%.6e')  # PYCHOK DEPRECATED\n./test/testDeprecated.py:41: DeprecationWarning: function L{bounds<pygeodesy.deprecated.functions.bounds>} has been DEPRECATED, use function L{pygeodesy.boundsOf}.\n  b = map2(float, bounds(p))  # PYCHOK DEPRECATED\n./test/testDeprecated.py:44: DeprecationWarning: function L{anStr<pygeodesy.deprecated.functions.anStr>} has been DEPRECATED, use function L{pygeodesy.anstr}.\n  self.test('anStr', anStr('a-b?_'), 'a-b__')  # PYCHOK DEPRECATED\n./test/testDeprecated.py:46: DeprecationWarning: function L{clipStr<pygeodesy.deprecated.functions.clipStr>} has been DEPRECATED, use function L{pygeodesy.clips}.\n  self.test('clipStr', clipStr('test/testBasics.py', limit=12), 'test/t....ics.py')  # PYCHOK DEPRECATED\n./test/testDeprecated.py:48: DeprecationWarning: function L{decodeEPSG2<pygeodesy.deprecated.functions.decodeEPSG2>} has been DEPRECATED, use function L{epsg.decode2}.\n  self.test('decodeEPSG2', decodeEPSG2(32712), \"(12, 'S')\")  # PYCHOK DEPRECATED\n./test/testDeprecated.py:49: DeprecationWarning: function L{encodeEPSG<pygeodesy.deprecated.functions.encodeEPSG>} has been DEPRECATED, use function L{epsg.encode}.\n  self.test('encodeEPSG', encodeEPSG(12, hemipole='S'), '32712')  # PYCHOK DEPRECATED\n./test/testDeprecated.py:51: DeprecationWarning: function L{equirectangular3<pygeodesy.deprecated.functions.equirectangular3>} has been DEPRECATED, use function L{pygeodesy.equirectangular4}.\n  t = equirectangular3(0, 2, 3, 4)  # PYCHOK DEPRECATED\n./test/testDeprecated.py:55: DeprecationWarning: function L{fStr<pygeodesy.deprecated.functions.fStr>} has been DEPRECATED, use function L{fstr}.\n  self.test('fStr', fStr(0.123, prec=-6), '0.123000')  # PYCHOK DEPRECATED\n./test/testDeprecated.py:56: DeprecationWarning: function L{fStr<pygeodesy.deprecated.functions.fStr>} has been DEPRECATED, use function L{fstr}.\n  self.test('fStr', fStr(0.123, prec=+6), '0.123')  # PYCHOK DEPRECATED\n./test/testDeprecated.py:57: DeprecationWarning: function L{fStr<pygeodesy.deprecated.functions.fStr>} has been DEPRECATED, use function L{fstr}.\n  self.test('fStr', fStr((0.123, 456.789), prec=+6), '0.123, 456.789')  # PYCHOK DEPRECATED\n./test/testDeprecated.py:58: DeprecationWarning: function L{fStr<pygeodesy.deprecated.functions.fStr>} has been DEPRECATED, use function L{fstr}.\n  self.test('fStr', fStr(0.123, prec=-5, fmt='%.*e'), '1.23000e-01')  # PYCHOK DEPRECATED\n./test/testDeprecated.py:59: DeprecationWarning: function L{fStr<pygeodesy.deprecated.functions.fStr>} has been DEPRECATED, use function L{fstr}.\n  self.test('fStr', fStr(0.123, prec=+5, fmt='%.*e'), '1.23e-01')  # PYCHOK DEPRECATED\n./test/testDeprecated.py:60: DeprecationWarning: function L{fStr<pygeodesy.deprecated.functions.fStr>} has been DEPRECATED, use function L{fstr}.\n  self.test('fStr', fStr(0.123, prec=+6, fmt='%.*f'), '0.123')  # PYCHOK DEPRECATED\n./test/testDeprecated.py:62: DeprecationWarning: function L{hypot3<pygeodesy.deprecated.functions.hypot3>} has been DEPRECATED, use function L{pygeodesy.hypot_}.\n  h = hypot3(3000, 200, 10)  # PYCHOK DEPRECATED\n./test/testDeprecated.py:67: DeprecationWarning: function L{isenclosedby<pygeodesy.deprecated.functions.isenclosedby>} has been DEPRECATED, use function L{pygeodesy.isenclosedBy}.\n  self.test('isenclosedby', isenclosedby(LatLon(45.5, 1.5), b), True)  # PYCHOK DEPRECATED\n./test/testDeprecated.py:71: DeprecationWarning: function L{nearestOn3<pygeodesy.deprecated.functions.nearestOn3>} has been DEPRECATED, use function L{pygeodesy.nearestOn5}.\n  t = nearestOn3(p, b, adjust=False)  # PYCHOK DEPRECATED\n./test/testDeprecated.py:74: DeprecationWarning: function L{nearestOn4<pygeodesy.deprecated.functions.nearestOn4>} has been DEPRECATED, use function L{pygeodesy.nearestOn5}.\n  t = nearestOn4(p, b, adjust=False)  # PYCHOK DEPRECATED\n./test/testDeprecated.py:78: DeprecationWarning: function L{parseUTM<pygeodesy.deprecated.functions.parseUTM>} has been DEPRECATED, use function L{parseUTM5}.\n  t = parseUTM('18 N 516620 4574500', Utm=None)  # PYCHOK Milford, PA\n./test/testDeprecated.py:82: DeprecationWarning: function L{perimeterof<pygeodesy.deprecated.functions.perimeterof>} has been DEPRECATED, use function L{pygeodesy.perimeterOf}.\n  self.test('perimeterof', perimeterof(p, radius=R_MA), '2.687460e+05', fmt='%.6e')  # PYCHOK DEPRECATED\n./test/testDeprecated.py:85: DeprecationWarning: function L{polygon<pygeodesy.deprecated.functions.polygon>} has been DEPRECATED, use function L{pygeodesy.points2}.\n  self.test('polygon', polygon(p)[0], 3)  # PYCHOK DEPRECATED\n./test/testDeprecated.py:87: DeprecationWarning: function L{simplify2<pygeodesy.deprecated.functions.simplify2>} has been DEPRECATED, use function L{pygeodesy.simplifyRW}.\n  t = simplify2(RdpFFI, 16, adjust=True, shortest=False)  # PYCHOK DEPRECATED\n./test/testDeprecated.py:90: DeprecationWarning: function L{toUtm<pygeodesy.deprecated.functions.toUtm>} has been DEPRECATED, use function L{pygeodesy.toUtm8}.\n  t = toUtm('50°52′10″N', '115°39′03″W', Utm=None, name='Mt Assiniboine')  # PYCHOK DEPRECATED\n./test/testDeprecated.py:93: DeprecationWarning: function L{utmZoneBand2<pygeodesy.deprecated.functions.utmZoneBand2>} has been DEPRECATED, use function L{pygeodesy.utmZoneBand5}.\n  t = utmZoneBand2('50°52′10″N', '115°39′03″W')  # PYCHOK DEPRECATED\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.R_MA from .constants by testDeprecated.py line 12\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by <frozen importlib._bootstrap> line 1412\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by <frozen importlib._bootstrap> line 1412\n# lazily imported pygeodesy.Conformal2Tuple from .triaxials.triaxial5 by <frozen importlib._bootstrap> line 1412\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by classes.py line 21\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by classes.py line 21\n# lazily imported pygeodesy.Conformal2Tuple from .triaxials.triaxial5 by classes.py line 21\n# lazily imported pygeodesy.deprecated by testDeprecated.py line 12\n# lazily imported pygeodesy.isDEPRECATED from .basics by testDeprecated.py line 12\n# lazily imported pygeodesy.unstr from .streprs by testDeprecated.py line 12\n# lazily imported pygeodesy.HeightIDWequirectangular from .heights by testDeprecated.py line 12\n# lazily imported pygeodesy.HeightIDWeuclidean from .heights by testDeprecated.py line 12\n# lazily imported pygeodesy.HeightIDWhaversine from .heights by testDeprecated.py line 12\n# lazily imported pygeodesy.LatLon_ from .points by testRoutes.py line 13\n# lazily imported pygeodesy.R_KM from .constants by testRoutes.py line 13\n# lazily imported pygeodesy.R_M from .constants by testRoutes.py line 13\n# lazily imported pygeodesy.ellipsoidalVincenty by testRoutes.py line 13\n# lazily imported pygeodesy.sphericalTrigonometry by testRoutes.py line 13\n# lazily imported pygeodesy.areaOf from .points by testRoutes.py line 13\n# lazily imported pygeodesy.isclockwise from .points by testRoutes.py line 13\n# lazily imported pygeodesy.perimeterOf from .points by testRoutes.py line 13\n\n    testing testDeprecated.py 25.05.09 (module pygeodesy.deprecated 26.02.08) isLazy=3\n# imported pygeodesy.formy into heights.py line 882\n\n    test 1 HeightIDW: True\n    test 2 HeightIDW2: True\n    test 3 HeightIDW3: True\n\n# lazily imported pygeodesy.booleans by points.py line 978\n    test 4 areaof: 7.086883e+09\n    test 5 bounds: (-85.0, -180.0, 85.0, 90.0)\n    test 6 anStr: a-b__\n    test 7 clipStr: test/t....ics.py\n# lazily imported pygeodesy.epsg by functions.py line 119\n    test 8 decodeEPSG2: (12, 'S')\n    test 9 encodeEPSG: 32712\n    test 10 equirectangular3: 3\n    test 11 equirectangular3: 12.997\n    test 12 fStr: 0.123000\n    test 13 fStr: 0.123\n    test 14 fStr: 0.123, 456.789\n    test 15 fStr: 1.23000e-01\n    test 16 fStr: 1.23e-01\n    test 17 fStr: 0.123\n    test 18 hypot3: 3006.675905\n    test 19 isenclosedby: True\n    test 20 nearestOn3: 3\n    test 21 nearestOn3: (45.5, 1.5)\n    test 22 nearestOn4: 4\n    test 23 nearestOn4: (45.5, 1.5)\n    test 24 parseUTM: (18, 'N', 516620.0, 4574500.0)\n    test 25 perimeterof: 2.687460e+05\n    test 26 polygon: 3\n# lazily imported pygeodesy.simplify by functions.py line 340\n    test 27 simplify2: 4\n    test 28 toUtm: 6\n    test 29 utmZoneBand2: (11, 'U')\n\n    test 30 HeightIDW: True\n    test 31 HeightIDW2: True\n    test 32 HeightIDW3: True\n\n    test 33 areaof: 7.086883e+09\n    test 34 bounds: (-85.0, -180.0, 85.0, 90.0)\n    test 35 anStr: a-b__\n    test 36 clipStr: test/t....ics.py\n    test 37 decodeEPSG2: (12, 'S')\n    test 38 encodeEPSG: 32712\n    test 39 equirectangular3: 3\n    test 40 equirectangular3: 12.997\n    test 41 fStr: 0.123000\n    test 42 fStr: 0.123\n    test 43 fStr: 0.123, 456.789\n    test 44 fStr: 1.23000e-01\n    test 45 fStr: 1.23e-01\n    test 46 fStr: 0.123\n    test 47 hypot3: 3006.675905\n    test 48 isenclosedby: True\n    test 49 nearestOn3: 3\n    test 50 nearestOn3: (45.5, 1.5)\n    test 51 nearestOn4: 4\n    test 52 nearestOn4: (45.5, 1.5)\n    test 53 parseUTM: (18, 'N', 516620.0, 4574500.0)\n    test 54 perimeterof: 2.687460e+05\n# imported pygeodesy.formy into latlonBase.py line 756\n    test 55 polygon: 3\n    test 56 simplify2: 4\n    test 57 toUtm: 6\n    test 58 utmZoneBand2: (11, 'U')\n\n    test 59 HeightIDW: True\n    test 60 HeightIDW2: True\n    test 61 HeightIDW3: True\n\n    test 62 areaof: 7.086883e+09\n    test 63 bounds: (-85.0, -180.0, 85.0, 90.0)\n    test 64 anStr: a-b__\n    test 65 clipStr: test/t....ics.py\n    test 66 decodeEPSG2: (12, 'S')\n    test 67 encodeEPSG: 32712\n    test 68 equirectangular3: 3\n    test 69 equirectangular3: 12.997\n    test 70 fStr: 0.123000\n    test 71 fStr: 0.123\n    test 72 fStr: 0.123, 456.789\n    test 73 fStr: 1.23000e-01\n    test 74 fStr: 1.23e-01\n    test 75 fStr: 0.123\n    test 76 hypot3: 3006.675905\n    test 77 isenclosedby: True\n    test 78 nearestOn3: 3\n    test 79 nearestOn3: (45.5, 1.5)\n    test 80 nearestOn4: 4\n    test 81 nearestOn4: (45.5, 1.5)\n    test 82 parseUTM: (18, 'N', 516620.0, 4574500.0)\n    test 83 perimeterof: 2.687460e+05\n    test 84 polygon: 3\n    test 85 simplify2: 4\n    test 86 toUtm: 6\n    test 87 utmZoneBand2: (11, 'U')\n\n    test 88 deprecated: 7\n    test 89 isDEPRECATED('bases'): True\n    test 90 isDEPRECATED('datum'): True\n    test 91 isDEPRECATED('nvector'): True\n    test 92 isDEPRECATED('rhumbaux'): True\n    test 93 isDEPRECATED('rhumbBase'): True\n    test 94 isDEPRECATED('rhumbsolve'): True\n    test 95 isDEPRECATED('rhumbx'): True\n\n    78 of 95 testDeprecated.py tests (82.1%) FAILED, incl. 78 DeprecationWarnings (pygeodesy 26.3.26 Python 3.12.10 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 2.1.0 scipy 1.14.1 Math 2 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 isLazy 3 -W  default) 38.032 ms\nrunning /usr/local/bin/p....n3.12 -W default ~/PyGeodesy/test/testDms.py\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.F_D from .dms by testDms.py line 11\n# lazily imported pygeodesy.F_DM from .dms by testDms.py line 11\n# lazily imported pygeodesy.F_DMS from .dms by testDms.py line 11\n# lazily imported pygeodesy.F_DEG from .dms by testDms.py line 11\n# lazily imported pygeodesy.F_MIN from .dms by testDms.py line 11\n# lazily imported pygeodesy.F_SEC from .dms by testDms.py line 11\n# lazily imported pygeodesy.F_RAD from .dms by testDms.py line 11\n# lazily imported pygeodesy.F_D60 from .dms by testDms.py line 11\n# lazily imported pygeodesy.F_D_ from .dms by testDms.py line 11\n# lazily imported pygeodesy.F_DM_ from .dms by testDms.py line 11\n# lazily imported pygeodesy.F_DMS_ from .dms by testDms.py line 11\n# lazily imported pygeodesy.F_DEG_ from .dms by testDms.py line 11\n# lazily imported pygeodesy.F_MIN_ from .dms by testDms.py line 11\n# lazily imported pygeodesy.F_SEC_ from .dms by testDms.py line 11\n# lazily imported pygeodesy.F_RAD_ from .dms by testDms.py line 11\n# lazily imported pygeodesy.F_D60_ from .dms by testDms.py line 11\n# lazily imported pygeodesy.F_D__ from .dms by testDms.py line 11\n# lazily imported pygeodesy.F_DM__ from .dms by testDms.py line 11\n# lazily imported pygeodesy.F_DMS__ from .dms by testDms.py line 11\n# lazily imported pygeodesy.F_DEG__ from .dms by testDms.py line 11\n# lazily imported pygeodesy.F_MIN__ from .dms by testDms.py line 11\n# lazily imported pygeodesy.F_SEC__ from .dms by testDms.py line 11\n# lazily imported pygeodesy.F_RAD__ from .dms by testDms.py line 11\n# lazily imported pygeodesy.F_D60__ from .dms by testDms.py line 11\n# lazily imported pygeodesy.compassPoint from .dms by testDms.py line 11\n# lazily imported pygeodesy.degDMS from .dms by testDms.py line 11\n# lazily imported pygeodesy.fstr from .streprs by testDms.py line 11\n# lazily imported pygeodesy.parseDDDMMSS from .dms by testDms.py line 11\n# lazily imported pygeodesy.parseDMS from .dms by testDms.py line 11\n# lazily imported pygeodesy.ParseError from .errors by testDms.py line 11\n# lazily imported pygeodesy.parse3llh from .dms by testDms.py line 11\n# lazily imported pygeodesy.RangeError from .errors by testDms.py line 11\n# lazily imported pygeodesy.rangerrors from .errors by testDms.py line 11\n# lazily imported pygeodesy.toDMS from .dms by testDms.py line 11\n\n    testing testDms.py 23.03.27 (module pygeodesy.dms 25.08.31) isLazy=3\n    test 1 parseDMS('0.0°'): 0.0\n    test 2 parseDMS('0°'): 0.0\n    test 3 parseDMS('000°00'00\"'): 0.0\n    test 4 parseDMS('000°00'00.0\"'): 0.0\n    test 5 parseDMS('000° 00'00\"'): 0.0\n    test 6 parseDMS('000°00 ' 00.0\"'): 0.0\n    test 7 parseDMS('000° 00' 00.0'): 0.0\n    test 8 parseDMS('000°-00′-00.0\"'): 0.0\n    test 9 parseDDDMMSS(1): 1.0\n    test 10 parseDMS(1): 1.0\n    test 11 parseDDDMMSS(12): 12.0\n    test 12 parseDMS(12): 12.0\n    test 13 parseDDDMMSS(123): 123.0\n    test 14 parseDMS(123): 123.0\n    test 15 parseDDDMMSS(1234): 12.567\n    test 16 parseDMS(1234): 1234.0\n    test 17 parseDDDMMSS(12345): 123.75\n    test 18 parseDMS(12345): 12345.0\n    test 19 parseDDDMMSS(123456): 12.582\n    test 20 parseDMS(123456): 123456.0\n    test 21 parseDDDMMSS(1234567): 123.769\n    test 22 parseDMS(1234567): 1234567.0\n    test 23 parseDDDMMSS(12345678): 1234.955\n    test 24 parseDMS(12345678): 12345678.0\n    test 25 parseDDDMMSS(0.1): 0.1\n    test 26 parseDMS(0.1): 0.1\n    test 27 parseDDDMMSS(1.2): 1.2\n    test 28 parseDMS(1.2): 1.2\n    test 29 parseDDDMMSS(12.3): 12.3\n    test 30 parseDMS(12.3): 12.3\n    test 31 parseDDDMMSS(123.4): 123.4\n    test 32 parseDMS(123.4): 123.4\n    test 33 parseDDDMMSS(1234.5): 12.575\n    test 34 parseDMS(1234.5): 1234.5\n    test 35 parseDDDMMSS(12345.6): 123.76\n    test 36 parseDMS(12345.6): 12345.6\n    test 37 parseDDDMMSS(123456.7): 12.582\n    test 38 parseDMS(123456.7): 123456.7\n    test 39 parseDDDMMSS('1N'): 1.0\n    test 40 parseDMS('1N'): 1.0\n    test 41 parseDDDMMSS('12S'): -12.0\n    test 42 parseDMS('12S'): -12.0\n    test 43 parseDDDMMSS('012.3W'): -12.3\n    test 44 parseDMS('012.3W'): -12.3\n    test 45 parseDDDMMSS('123E'): 123.0\n    test 46 parseDMS('123E'): 123.0\n    test 47 parseDDDMMSS('1234N'): 12.567\n    test 48 parseDMS('1234N'): 1234.0\n    test 49 parseDDDMMSS('12345E'): 123.75\n    test 50 parseDMS('12345E'): 12345.0\n    test 51 parseDDDMMSS('1234.5S'): -12.575\n    test 52 parseDMS('1234.5S'): -1234.5\n    test 53 parseDDDMMSS('12345.6E'): 123.76\n    test 54 parseDMS('12345.6E'): 12345.6\n    test 55 parseDDDMMSS('123456.7S'): -12.582\n    test 56 parseDMS('123456.7S'): -123456.7\n    test 57 parseDDDMMSS('1234567.8W'): -123.769\n    test 58 parseDMS('1234567.8W'): -1234567.8\n    test 59 parseDDDMMSS('12345678E'): 12345678.0\n    test 60 parseDMS('12345678E'): 12345678.0\n    test 61 parseDDDMMSS(345.0, NS): 3.75\n    test 62 parseDDDMMSS(345.0, EW): 345.0\n    test 63 parseDDDMMSS(5430.0, NS): 54.5\n    test 64 parseDDDMMSS(5430.0, EW): 54.5\n    test 65 parseDDDMMSS(76.5432, sexagecimal=False): 76.5432\n    test 66 parseDDDMMSS(76.5432, sexagecimal=True): 76.9089\n    test 67 parseDDDMMSS(00.0102, sexagecimal=False): 0.0102\n    test 68 parseDDDMMSS(00.0102, sexagecimal=True): 0.0172\n# imported pygeodesy.basics into errors.py line 443\n    test 69 parseDDDMMSS('12E'): ParseError(\"sexagecimal (False), strDDDMMSS ('12E') or suffix ('NSEW'): form DDMMSS applies N-S: invalid\")\n    test 70 parseDMS('12E'): 12.0\n    test 71 parseDDDMMSS('012.3S'): ParseError(\"sexagecimal (False), strDDDMMSS ('012.3S') or suffix ('NSEW'): form DDDMMSS applies E-W: invalid\")\n    test 72 parseDMS('012.3S'): -12.3\n    test 73 parseDDDMMSS('123N'): ParseError(\"sexagecimal (False), strDDDMMSS ('123N') or suffix ('NSEW'): form DDDMMSS applies E-W: invalid\")\n    test 74 parseDMS('123N'): 123.0\n    test 75 parseDDDMMSS('1234E'): ParseError(\"sexagecimal (False), strDDDMMSS ('1234E') or suffix ('NSEW'): form DDMMSS applies N-S: invalid\")\n    test 76 parseDMS('1234E'): 1234.0\n    test 77 parseDDDMMSS('12345N'): ParseError(\"sexagecimal (False), strDDDMMSS ('12345N') or suffix ('NSEW'): form DDDMMSS applies E-W: invalid\")\n    test 78 parseDMS('12345N'): 12345.0\n    test 79 parseDDDMMSS('1234.5W'): ParseError(\"sexagecimal (False), strDDDMMSS ('1234.5W') or suffix ('NSEW'): form DDMMSS applies N-S: invalid\")\n    test 80 parseDMS('1234.5W'): -1234.5\n    test 81 parseDDDMMSS('123456E'): ParseError(\"sexagecimal (False), strDDDMMSS ('123456E') or suffix ('NSEW'): form DDMMSS applies N-S: invalid\")\n    test 82 parseDMS('123456E'): 123456.0\n    test 83 parseDDDMMSS('1234567S'): ParseError(\"sexagecimal (False), strDDDMMSS ('1234567S') or suffix ('NSEW'): form DDDMMSS applies E-W: invalid\")\n    test 84 parseDMS('1234567S'): -1234567.0\n    test 85 parseDMS: strDMS (181) or suffix ('NSEW'): 181 beyond 180.0 degrees\n    test 86 parseDMS: -90.0\n    test 87 parse3llh: 51.477811, -0.001475, 0.0\n    test 88 toDMS(dm): 46°00.0′\n    test 89 toDMS(dm): 46°00.0′\n    test 90 toDMS(dm): 45°59.99′\n    test 91 toDMS(dm): 45°59.999′\n    test 92 toDMS(dms): 46°00′00.0″\n    test 93 toDMS(dms): 45°59′59.96″\n    test 94 toDMS(dms): 45°59′59.964″\n    test 95 toDMS(d60): 45.5959964\n    test 96 toDMS(d60): 45°45′45.36″\n    test 97 toDMS(d60): 45d45m45.36s\n    test 98 normDMS: 45°45′45.36″\n    test 99 parseDMS: 45.7626\n    test 100 toDMS(d): 45.7626°\n    test 101 toDMS(d): -45.7626°\n    test 102 toDMS(dm): 45°45.756′\n    test 103 toDMS(dm): -45°45.756′\n    test 104 toDMS(dms): 45°45′45.36″\n    test 105 toDMS(dms): -45°45′45.36″\n    test 106 toDMS(deg): 45.7626\n    test 107 toDMS(deg): -45.7626\n    test 108 toDMS(min): 4545.756\n    test 109 toDMS(min): -4545.756\n    test 110 toDMS(sec): 454545.36\n    test 111 toDMS(sec): -454545.36\n    test 112 toDMS(rad): 0.79871\n    test 113 toDMS(rad): -0.79871\n    test 114 toDMS(d60): 45.4545\n    test 115 toDMS(d60): -45.4545\n    test 116 toDMS(d): 45.7626°\n    test 117 toDMS(d): -45.7626°\n    test 118 toDMS(dm): 45°45.7560′\n    test 119 toDMS(dm): -45°45.7560′\n    test 120 toDMS(dms): 45°45′45.36″\n    test 121 toDMS(dms): -45°45′45.36″\n    test 122 toDMS(deg): 45.762600\n    test 123 toDMS(deg): -45.762600\n    test 124 toDMS(min): 4545.75600\n    test 125 toDMS(min): -4545.75600\n    test 126 toDMS(sec): 454545.360\n    test 127 toDMS(sec): -454545.360\n    test 128 toDMS(rad): 0.798708\n    test 129 toDMS(rad): -0.798708\n    test 130 toDMS(d60): 45.4545360\n    test 131 toDMS(d60): -45.4545360\n    test 132 toDMS(-d): 45.7626°\n    test 133 toDMS(-d): -45.7626°\n    test 134 toDMS(-dm): 45°45.7560′\n    test 135 toDMS(-dm): -45°45.7560′\n    test 136 toDMS(-dms): 45°45′45.36″\n    test 137 toDMS(-dms): -45°45′45.36″\n    test 138 toDMS(-deg): 45.762600\n    test 139 toDMS(-deg): -45.762600\n    test 140 toDMS(-min): 4545.75600\n    test 141 toDMS(-min): -4545.75600\n    test 142 toDMS(-sec): 454545.360\n    test 143 toDMS(-sec): -454545.360\n    test 144 toDMS(-rad): 0.798708\n    test 145 toDMS(-rad): -0.798708\n    test 146 toDMS(-d60): 45.45453600\n    test 147 toDMS(-d60): -45.45453600\n    test 148 toDMS(+d): +45.7626°\n    test 149 toDMS(+d): -45.7626°\n    test 150 toDMS(+dm): +45°45.7560′\n    test 151 toDMS(+dm): -45°45.7560′\n    test 152 toDMS(+dms): +45°45′45.36″\n    test 153 toDMS(+dms): -45°45′45.36″\n    test 154 toDMS(+deg): +45.762600\n    test 155 toDMS(+deg): -45.762600\n    test 156 toDMS(+min): +4545.75600\n    test 157 toDMS(+min): -4545.75600\n    test 158 toDMS(+sec): +454545.360\n    test 159 toDMS(+sec): -454545.360\n    test 160 toDMS(+rad): +0.798708\n    test 161 toDMS(+rad): -0.798708\n    test 162 toDMS(+d60): +45.454536\n    test 163 toDMS(+d60): -45.454536\n    test 164 compassPoint(1,): N\n    test 165 compassPoint(0,): N\n    test 166 compassPoint(-1,): N\n    test 167 compassPoint(359,): N\n    test 168 compassPoint(24,): NNE\n    test 169 compassPoint(24, 1): N\n    test 170 compassPoint(24, 2): NE\n    test 171 compassPoint(24, 3): NNE\n    test 172 compassPoint(226,): SW\n    test 173 compassPoint(226, 1): W\n    test 174 compassPoint(226, 2): SW\n    test 175 compassPoint(226, 3): SW\n    test 176 compassPoint(237,): WSW\n    test 177 compassPoint(237, 1): W\n    test 178 compassPoint(237, 2): SW\n    test 179 compassPoint(237, 3): WSW\n    test 180 compassPoint(11.25,): NNE\n    test 181 compassPoint(11.249,): N\n    test 182 compassPoint(-11.25,): N\n    test 183 compassPoint(348.749,): NNW\n    test 184 compassPoint(45, 1): E\n    test 185 compassPoint(44.99, 1): N\n    test 186 compassPoint(45, 2): NE\n    test 187 compassPoint(44.99, 2): NE\n    test 188 compassPoint(45, 3): NE\n    test 189 compassPoint(44.99, 3): NE\n    test 190 compassPoint(45, 4): NE\n    test 191 compassPoint(44.99, 4): NE\n    test 192 compassPoint(22.5, 1): N\n    test 193 compassPoint(22.49, 1): N\n    test 194 compassPoint(22.5, 2): NE\n    test 195 compassPoint(22.49, 2): N\n    test 196 compassPoint(22.5, 3): NNE\n    test 197 compassPoint(22.49, 3): NNE\n    test 198 compassPoint(22.5, 4): NNE\n    test 199 compassPoint(22.49, 4): NNE\n    test 200 compassPoint(11.25, 1): N\n    test 201 compassPoint(11.249, 1): N\n    test 202 compassPoint(11.25, 2): N\n    test 203 compassPoint(11.249, 2): N\n    test 204 compassPoint(11.25, 3): NNE\n    test 205 compassPoint(11.249, 3): N\n    test 206 compassPoint(11.25, 4): NbE\n    test 207 compassPoint(11.249, 4): NbE\n    test 208 compassPoint(24, 1): N\n    test 209 compassPoint(24, 2): NE\n    test 210 compassPoint(24, 3): NNE\n    test 211 compassPoint(24,): NNE\n    test 212 compassPoint(18, 3): NNE\n    test 213 compassPoint(11, 4): NbE\n    test 214 compassPoint(30, 4): NEbN\n    test 215 compassPoint(11.25): NbE\n    test 216 compassPoint(33.75): NEbN\n    test 217 compassPoint(56.25): NEbE\n    test 218 compassPoint(78.75): EbN\n    test 219 compassPoint(101.25): EbS\n    test 220 compassPoint(123.75): SEbE\n    test 221 compassPoint(146.25): SEbS\n    test 222 compassPoint(168.75): SbE\n    test 223 compassPoint(191.25): SbW\n    test 224 compassPoint(213.75): SWbS\n    test 225 compassPoint(236.25): SWbW\n    test 226 compassPoint(258.75): WbS\n    test 227 compassPoint(281.25): WbN\n    test 228 compassPoint(303.75): NWbW\n    test 229 compassPoint(326.25): NWbN\n    test 230 compassPoint(348.75): NbW\n    test 231 _DEG: +1.0101\n    test 232 _MIN: +0.606′\n    test 233 _SEC: +36.36″\n\n    all 233 testDms.py tests passed (pygeodesy 26.3.26 Python 3.12.10 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 2.1.0 scipy 1.14.1 Math 2 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 isLazy 3 -W  default) 3.033 ms\nrunning /usr/local/bin/p....n3.12 -W default ~/PyGeodesy/test/testEcef.py\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.Datums from .datums by testEcef.py line 11\n# lazily imported pygeodesy.EcefError from .ecef by testEcef.py line 11\n# lazily imported pygeodesy.EcefFarrell21 from .ecef by testEcef.py line 11\n# lazily imported pygeodesy.EcefFarrell22 from .ecef by testEcef.py line 11\n# lazily imported pygeodesy.EcefKarney from .ecef by testEcef.py line 11\n# lazily imported pygeodesy.EcefMatrix from .ecef by testEcef.py line 11\n# lazily imported pygeodesy.EcefSudano from .ecef by testEcef.py line 11\n# lazily imported pygeodesy.EcefUPC from .ecef by testEcef.py line 11\n# lazily imported pygeodesy.EcefVeness from .ecef by testEcef.py line 11\n# lazily imported pygeodesy.EcefYou from .ecef by testEcef.py line 11\n# lazily imported pygeodesy.Ellipsoids from .ellipsoids by testEcef.py line 11\n# lazily imported pygeodesy.fstr from .streprs by testEcef.py line 11\n# lazily imported pygeodesy.latDMS from .dms by testEcef.py line 11\n# lazily imported pygeodesy.lonDMS from .dms by testEcef.py line 11\n# lazily imported pygeodesy.parse3llh from .dms by testEcef.py line 11\n# lazily imported pygeodesy.sphericalNvector by testEcef.py line 11\n# lazily imported pygeodesy.ellipsoidalExact by testEcef.py line 258\n# lazily imported pygeodesy.ellipsoidalKarney by testEcef.py line 258\n# lazily imported pygeodesy.ellipsoidalNvector by testEcef.py line 258\n# lazily imported pygeodesy.ellipsoidalVincenty by testEcef.py line 258\n# lazily imported pygeodesy.sphericalTrigonometry by testEcef.py line 258\n\n    testing testEcef.py 25.08.24 isLazy=3\n\n    test 1 EcefKarney: ...\n    test 2 name: Test\n    test 3 toStr: EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name='Test')  FAILED, KNOWN, expected EcefKarney\n    test 4 a, f: a=6378137.0, f=0.003352811, datum=Datum(name='_Test', ellipsoid=Ellipsoids._Test, transform=Transforms.Identity), name='Test'  FAILED, KNOWN, expected EcefKarney\n    test 5 copy(<class 'type'>): (<class 'pygeodesy.ecef.EcefKarney'>, True)\n    test 6 EcefKarney.copy(): (<class 'pygeodesy.ecef.EcefKarney'>, True)\n    test 7 forward: 27.99, 86.93, 8820.0\n    test 8 forward: 302271.4, 5635928.4, 2979666.1\n    test 9 name: Test\n    test 10 reverse: 302271.4, 5635928.4, 2979666.1\n    test 11 reverse: 27.99, 86.93, 8820.01\n    test 12 case: 1\n    test 13 iteration: None\n    test 14 name: Test\n    test 15 reverse: 302000.0, 5636000.0, 2980000.0\n    test 16 reverse: 27.99, 86.93, 9027.03\n    test 17 case: 1\n    test 18 iteration: None\n    test 19 forward: 27.99, 86.93, 8820.0\n    test 20 forward: 302271.43, 5635928.37, 2979666.13\n    test 21 forward: 33.3, 44.4, 6000.0\n    test 22 forward: 3816209.6, 3737108.55, 3485109.57\n    test 23 reverse: 3816209.6, 3737108.55, 3485109.57\n    test 24 reverse: 33.3, 44.4, 5999.996\n    test 25 case: 1\n    test 26 iteration: None\n    test 27 reverse: 30000.0, 30000.0, 0.0\n    test 28 reverse: 6.483, 45.0, -6335709.726\n    test 29 case: 3\n    test 30 iteration: None\n    test 31 forward: 6.483, 45.0, -6335709.726\n    test 32 forward: 30000.0, 30000.0, -0.0\n    test 33 Vermeille: -168.919\n    test 34 Vermeille: 190.939\n    test 35 Vermeille: (65.772506, 169.060801)\n    test 36 Vermeille: (1.147947, 3.141593)\n    test 37 reverse-1: 45.0, 120.0, 1000.0\n    test 38 forward-1: -2259149.0, 3912960.8, 4488055.5\n    test 39 xyzh-1: -2259149.0, 3912960.8, 4488055.5, 1000.0\n    test 40 philam-1: 0.7854, 2.0944\n    test 41 reverse-2: 45.0, 120.0, 2000.0\n    test 42 forward-2: -2259502.5, 3913573.2, 4488762.6\n    test 43 xyzh-2: -2259502.5, 3913573.2, 4488762.6, 2000.0\n    test 44 philam-2: 0.7854, 2.0944\n    test 45 reverse-3: 45.0, 120.0, 3000.0\n    test 46 forward-3: -2259856.1, 3914185.6, 4489469.7\n    test 47 xyzh-3: -2259856.1, 3914185.6, 4489469.7, 3000.0\n    test 48 philam-3: 0.7854, 2.0944\n    test 49 reverse-4: 45.0, 120.0, 4000.0\n    test 50 forward-4: -2260209.7, 3914798.0, 4490176.8\n    test 51 xyzh-4: -2260209.7, 3914798.0, 4490176.8, 4000.0\n    test 52 philam-4: 0.7854, 2.0944\n    test 53 reverse-5: 45.0, 120.0, 10000.0\n    test 54 forward-5: -2262331.0, 3918472.2, 4494419.5\n    test 55 xyzh-5: -2262331.0, 3918472.2, 4494419.5, 10000.0\n    test 56 philam-5: 0.7854, 2.0944\n    test 57 reverse-6: 45.0, 120.0, 20000.0\n    test 58 forward-6: -2265866.5, 3924595.9, 4501490.5\n    test 59 xyzh-6: -2265866.5, 3924595.9, 4501490.5, 20000.0\n    test 60 philam-6: 0.7854, 2.0944\n    test 61 reverse-7: 45.0, 120.0, 100000.0\n    test 62 forward-7: -2294150.8, 3973585.7, 4558059.1\n    test 63 xyzh-7: -2294150.8, 3973585.7, 4558059.1, 100000.0\n    test 64 philam-7: 0.7854, 2.0944\n    test 65 reverse-8: 45.0, 120.0, 800000.0\n    test 66 forward-8: -2541638.2, 4402246.4, 5053033.8\n    test 67 xyzh-8: -2541638.2, 4402246.4, 5053033.8, 800000.0\n    test 68 philam-8: 0.7854, 2.0944\n    test 69 reverse-9: 45.0, 120.0, 1000000.0\n    test 70 forward-9: -2612348.8, 4524720.9, 5194455.2\n    test 71 xyzh-9: -2612348.8, 4524720.9, 5194455.2, 1000000.0\n    test 72 philam-9: 0.7854, 2.0944\n    test 73 sudano: 45.0, 0.0, 100000.0\n    test 74 name: OS-UK\n    test 75 forward: 53.61199036, -1.66444222, 299.8\n    test 76 forward: 3790644.9, -110149.21, 5111482.97\n    test 77 reverse: 3790644.9, -110149.21, 5111482.97\n    test 78 reverse: 53.61199036, -1.66444223\n    test 79 reverse.lat: 53°36′43.1653″N\n    test 80 reverse.lon: 001°39′51.992″W\n    test 81 reverse.height: 299.800\n    test 82 case: 1\n    test 83 iteration: None\n    test 84 forward: -2430601.827685, -4702442.703125, 3546587.358103\n    test 85 reverse: 34.0, -117.333569, 251.702\n    test 86 forward_: -2430601.812953, -4702442.744488, 3546587.313654, 34.0, -117.333569, 251.702\n    test 87 EcefError: (0.0, 0.0, 0.0, 90.0, 0, -6356752.31414, 3, None, Datum(name='Datum', ellipsoid=Ellipsoids.GRS80, transform=Transforms.Identity))  FAILED, KNOWN, expected (0.0, 0.0, ...)\n# imported pygeodesy.basics into errors.py line 531\n    test 88 EcefError: height (None), lat (None) or lon (None)  FAILED, KNOWN, expected lat (None), lon (None) ...\n    test 89 EcefKarney: EcefKarney(a=None, f=None) ellipsoid: type(earth) (None): not a Datum, Ellipsoid, Ellipsoid2 or a_f2Tuple  FAILED, KNOWN, expected EcefKarney\n    test 90 Mx: (0.888348, 0.25558, -0.381466, -0.45917, 0.494465, -0.738015, 0.0, 0.830773, 0.556612)\n\n    test 91 EcefFarrell21: ...\n    test 92 name: Test\n    test 93 toStr: EcefFarrell21(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name='Test')  FAILED, KNOWN, expected EcefFarrell21\n    test 94 a, f: a=6378137.0, f=0.003352811, datum=Datum(name='_Test', ellipsoid=Ellipsoids._Test, transform=Transforms.Identity), name='Test'  FAILED, KNOWN, expected EcefFarrell21\n    test 95 copy(<class 'type'>): (<class 'pygeodesy.ecef.EcefFarrell21'>, True)\n    test 96 EcefFarrell21.copy(): (<class 'pygeodesy.ecef.EcefFarrell21'>, True)\n    test 97 forward: 27.99, 86.93, 8820.0\n    test 98 forward: 302271.4, 5635928.4, 2979666.1\n    test 99 name: Test\n    test 100 reverse: 302271.4, 5635928.4, 2979666.1\n    test 101 reverse: 27.99, 86.93, 8820.01\n    test 102 case: 1\n    test 103 iteration: None\n    test 104 name: Test\n    test 105 reverse: 302000.0, 5636000.0, 2980000.0\n    test 106 reverse: 27.99, 86.93, 9027.03\n    test 107 case: 1\n    test 108 iteration: None\n    test 109 forward: 27.99, 86.93, 8820.0\n    test 110 forward: 302271.43, 5635928.37, 2979666.13\n    test 111 forward: 33.3, 44.4, 6000.0\n    test 112 forward: 3816209.6, 3737108.55, 3485109.57\n    test 113 reverse: 3816209.6, 3737108.55, 3485109.57\n    test 114 reverse: 33.3, 44.4, 5999.996\n    test 115 case: 1\n    test 116 iteration: None\n    test 117 reverse: 30000.0, 30000.0, 0.0\n    test 118 reverse: 0.0, 45.0, -6335710.593  FAILED, KNOWN, expected 6.483, 45.0, -6335709.726\n    test 119 case: 3\n    test 120 iteration: None\n    test 121 forward: 6.483, 45.0, -6335709.726\n    test 122 forward: 30000.0, 30000.0, -0.0\n    test 123 Vermeille: -168.919\n    test 124 Vermeille: 190.939\n    test 125 Vermeille: (65.772506, 169.060801)\n    test 126 Vermeille: (1.147947, 3.141593)\n    test 127 reverse-1: 45.0, 120.0, 1000.0\n    test 128 forward-1: -2259149.0, 3912960.8, 4488055.5\n    test 129 xyzh-1: -2259149.0, 3912960.8, 4488055.5, 1000.0\n    test 130 philam-1: 0.7854, 2.0944\n    test 131 reverse-2: 45.0, 120.0, 2000.0\n    test 132 forward-2: -2259502.5, 3913573.2, 4488762.6\n    test 133 xyzh-2: -2259502.5, 3913573.2, 4488762.6, 2000.0\n    test 134 philam-2: 0.7854, 2.0944\n    test 135 reverse-3: 45.0, 120.0, 3000.0\n    test 136 forward-3: -2259856.1, 3914185.6, 4489469.7\n    test 137 xyzh-3: -2259856.1, 3914185.6, 4489469.7, 3000.0\n    test 138 philam-3: 0.7854, 2.0944\n    test 139 reverse-4: 45.0, 120.0, 4000.0\n    test 140 forward-4: -2260209.7, 3914798.0, 4490176.8\n    test 141 xyzh-4: -2260209.7, 3914798.0, 4490176.8, 4000.0\n    test 142 philam-4: 0.7854, 2.0944\n    test 143 reverse-5: 45.0, 120.0, 10000.0\n    test 144 forward-5: -2262331.0, 3918472.2, 4494419.5\n    test 145 xyzh-5: -2262331.0, 3918472.2, 4494419.5, 10000.0\n    test 146 philam-5: 0.7854, 2.0944\n    test 147 reverse-6: 45.0, 120.0, 20000.0\n    test 148 forward-6: -2265866.5, 3924595.9, 4501490.5\n    test 149 xyzh-6: -2265866.5, 3924595.9, 4501490.5, 20000.0\n    test 150 philam-6: 0.7854, 2.0944\n    test 151 reverse-7: 45.0, 120.0, 100000.0\n    test 152 forward-7: -2294150.8, 3973585.7, 4558059.1\n    test 153 xyzh-7: -2294150.8, 3973585.7, 4558059.1, 100000.0\n    test 154 philam-7: 0.7854, 2.0944\n    test 155 reverse-8: 45.0, 120.0, 800000.0\n    test 156 forward-8: -2541638.2, 4402246.4, 5053033.8\n    test 157 xyzh-8: -2541638.2, 4402246.4, 5053033.8, 800000.0\n    test 158 philam-8: 0.7854, 2.0944\n    test 159 reverse-9: 45.0, 120.0, 1000000.0\n    test 160 forward-9: -2612348.8, 4524720.9, 5194455.2\n    test 161 xyzh-9: -2612348.8, 4524720.9, 5194455.2, 1000000.0\n    test 162 philam-9: 0.7854, 2.0944\n    test 163 sudano: 45.0, 0.0, 100000.0\n    test 164 name: OS-UK\n    test 165 forward: 53.61199036, -1.66444222, 299.8\n    test 166 forward: 3790644.9, -110149.21, 5111482.97\n    test 167 reverse: 3790644.9, -110149.21, 5111482.97\n    test 168 reverse: 53.61199036, -1.66444223\n    test 169 reverse.lat: 53°36′43.1653″N\n    test 170 reverse.lon: 001°39′51.992″W\n    test 171 reverse.height: 299.800\n    test 172 case: 1\n    test 173 iteration: None\n    test 174 forward: -2430601.827685, -4702442.703125, 3546587.358103\n    test 175 reverse: 34.0, -117.333569, 251.702\n    test 176 forward_: -2430601.812953, -4702442.744488, 3546587.313654, 34.0, -117.333569, 251.702\n    test 177 EcefError: (0.0, 0.0, 0.0, 90.0, 0, -6356752.31414, 2, None, Datum(name='Datum', ellipsoid=Ellipsoids.GRS80, transform=Transforms.Identity))  FAILED, KNOWN, expected (0.0, 0.0, ...)\n    test 178 EcefError: height (None), lat (None) or lon (None)  FAILED, KNOWN, expected lat (None), lon (None) ...\n    test 179 EcefFarrell21: EcefFarrell21(a=None, f=None) ellipsoid: type(earth) (None): not a Datum, Ellipsoid, Ellipsoid2 or a_f2Tuple  FAILED, KNOWN, expected EcefFarrell21\n    test 180 Mx: (0.888348, 0.25558, -0.381466, -0.45917, 0.494465, -0.738015, 0.0, 0.830773, 0.556612)\n\n    test 181 EcefFarrell22: ...\n    test 182 name: Test\n    test 183 toStr: EcefFarrell22(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name='Test')  FAILED, KNOWN, expected EcefFarrell22\n    test 184 a, f: a=6378137.0, f=0.003352811, datum=Datum(name='_Test', ellipsoid=Ellipsoids._Test, transform=Transforms.Identity), name='Test'  FAILED, KNOWN, expected EcefFarrell22\n    test 185 copy(<class 'type'>): (<class 'pygeodesy.ecef.EcefFarrell22'>, True)\n    test 186 EcefFarrell22.copy(): (<class 'pygeodesy.ecef.EcefFarrell22'>, True)\n    test 187 forward: 27.99, 86.93, 8820.0\n    test 188 forward: 302271.4, 5635928.4, 2979666.1\n    test 189 name: Test\n    test 190 reverse: 302271.4, 5635928.4, 2979666.1\n    test 191 reverse: 27.99, 86.93, 8820.01\n    test 192 case: 1\n    test 193 iteration: None\n    test 194 name: Test\n    test 195 reverse: 302000.0, 5636000.0, 2980000.0\n    test 196 reverse: 27.99, 86.93, 9027.03\n    test 197 case: 1\n    test 198 iteration: None\n    test 199 forward: 27.99, 86.93, 8820.0\n    test 200 forward: 302271.43, 5635928.37, 2979666.13\n    test 201 forward: 33.3, 44.4, 6000.0\n    test 202 forward: 3816209.6, 3737108.55, 3485109.57\n    test 203 reverse: 3816209.6, 3737108.55, 3485109.57\n    test 204 reverse: 33.3, 44.4, 5999.996\n    test 205 case: 1\n    test 206 iteration: None\n    test 207 reverse: 30000.0, 30000.0, 0.0\n    test 208 reverse: 0.0, 45.0, -6335710.593  FAILED, KNOWN, expected 6.483, 45.0, -6335709.726\n    test 209 case: 3\n    test 210 iteration: None\n    test 211 forward: 6.483, 45.0, -6335709.726\n    test 212 forward: 30000.0, 30000.0, -0.0\n    test 213 Vermeille: -168.919\n    test 214 Vermeille: 190.939\n    test 215 Vermeille: (65.772506, 169.060801)\n    test 216 Vermeille: (1.147947, 3.141593)\n    test 217 reverse-1: 45.0, 120.0, 1000.0\n    test 218 forward-1: -2259149.0, 3912960.8, 4488055.5\n    test 219 xyzh-1: -2259149.0, 3912960.8, 4488055.5, 1000.0\n    test 220 philam-1: 0.7854, 2.0944\n    test 221 reverse-2: 45.0, 120.0, 2000.0\n    test 222 forward-2: -2259502.5, 3913573.2, 4488762.6\n    test 223 xyzh-2: -2259502.5, 3913573.2, 4488762.6, 2000.0\n    test 224 philam-2: 0.7854, 2.0944\n    test 225 reverse-3: 45.0, 120.0, 3000.0\n    test 226 forward-3: -2259856.1, 3914185.6, 4489469.7\n    test 227 xyzh-3: -2259856.1, 3914185.6, 4489469.7, 3000.0\n    test 228 philam-3: 0.7854, 2.0944\n    test 229 reverse-4: 45.0, 120.0, 4000.0\n    test 230 forward-4: -2260209.7, 3914798.0, 4490176.8\n    test 231 xyzh-4: -2260209.7, 3914798.0, 4490176.8, 4000.0\n    test 232 philam-4: 0.7854, 2.0944\n    test 233 reverse-5: 45.0, 120.0, 10000.0\n    test 234 forward-5: -2262331.0, 3918472.2, 4494419.5\n    test 235 xyzh-5: -2262331.0, 3918472.2, 4494419.5, 10000.0\n    test 236 philam-5: 0.7854, 2.0944\n    test 237 reverse-6: 45.0, 120.0, 20000.0\n    test 238 forward-6: -2265866.5, 3924595.9, 4501490.5\n    test 239 xyzh-6: -2265866.5, 3924595.9, 4501490.5, 20000.0\n    test 240 philam-6: 0.7854, 2.0944\n    test 241 reverse-7: 45.0, 120.0, 100000.0\n    test 242 forward-7: -2294150.8, 3973585.7, 4558059.1\n    test 243 xyzh-7: -2294150.8, 3973585.7, 4558059.1, 100000.0\n    test 244 philam-7: 0.7854, 2.0944\n    test 245 reverse-8: 45.0, 120.0, 800000.005  FAILED, KNOWN, expected 45.0, 120.0, 800000.0\n    test 246 forward-8: -2541638.2, 4402246.4, 5053033.8\n    test 247 xyzh-8: -2541638.2, 4402246.4, 5053033.8, 800000.0\n    test 248 philam-8: 0.7854, 2.0944\n    test 249 reverse-9: 45.0, 120.0, 1000000.007  FAILED, KNOWN, expected 45.0, 120.0, 1000000.0\n    test 250 forward-9: -2612348.8, 4524720.9, 5194455.2\n    test 251 xyzh-9: -2612348.8, 4524720.9, 5194455.2, 1000000.0\n    test 252 philam-9: 0.7854, 2.0944\n    test 253 sudano: 45.0, 0.0, 100000.0\n    test 254 name: OS-UK\n    test 255 forward: 53.61199036, -1.66444222, 299.8\n    test 256 forward: 3790644.9, -110149.21, 5111482.97\n    test 257 reverse: 3790644.9, -110149.21, 5111482.97\n    test 258 reverse: 53.61199036, -1.66444223\n    test 259 reverse.lat: 53°36′43.1653″N\n    test 260 reverse.lon: 001°39′51.992″W\n    test 261 reverse.height: 299.800\n    test 262 case: 1\n    test 263 iteration: None\n    test 264 forward: -2430601.827685, -4702442.703125, 3546587.358103\n    test 265 reverse: 34.0, -117.333569, 251.702\n    test 266 forward_: -2430601.812953, -4702442.744488, 3546587.313654, 34.0, -117.333569, 251.702\n    test 267 EcefError: (0.0, 0.0, 0.0, 90.0, 0, -6356752.31414, 2, None, Datum(name='Datum', ellipsoid=Ellipsoids.GRS80, transform=Transforms.Identity))  FAILED, KNOWN, expected (0.0, 0.0, ...)\n    test 268 EcefError: height (None), lat (None) or lon (None)  FAILED, KNOWN, expected lat (None), lon (None) ...\n    test 269 EcefFarrell22: EcefFarrell22(a=None, f=None) ellipsoid: type(earth) (None): not a Datum, Ellipsoid, Ellipsoid2 or a_f2Tuple  FAILED, KNOWN, expected EcefFarrell22\n    test 270 Mx: (0.888348, 0.25558, -0.381466, -0.45917, 0.494465, -0.738015, 0.0, 0.830773, 0.556612)\n\n    test 271 EcefVeness: ...\n    test 272 name: Test\n    test 273 toStr: EcefVeness(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name='Test')  FAILED, KNOWN, expected EcefVeness\n    test 274 a, f: a=6378137.0, f=0.003352811, datum=Datum(name='_Test', ellipsoid=Ellipsoids._Test, transform=Transforms.Identity), name='Test'  FAILED, KNOWN, expected EcefVeness\n    test 275 copy(<class 'type'>): (<class 'pygeodesy.ecef.EcefVeness'>, True)\n    test 276 EcefVeness.copy(): (<class 'pygeodesy.ecef.EcefVeness'>, True)\n    test 277 forward: 27.99, 86.93, 8820.0\n    test 278 forward: 302271.4, 5635928.4, 2979666.1\n    test 279 name: Test\n    test 280 reverse: 302271.4, 5635928.4, 2979666.1\n    test 281 reverse: 27.99, 86.93, 8820.01\n    test 282 case: 1\n    test 283 iteration: None\n    test 284 name: Test\n    test 285 reverse: 302000.0, 5636000.0, 2980000.0\n    test 286 reverse: 27.99, 86.93, 9027.03\n    test 287 case: 1\n    test 288 iteration: None\n    test 289 forward: 27.99, 86.93, 8820.0\n    test 290 forward: 302271.43, 5635928.37, 2979666.13\n    test 291 forward: 33.3, 44.4, 6000.0\n    test 292 forward: 3816209.6, 3737108.55, 3485109.57\n    test 293 reverse: 3816209.6, 3737108.55, 3485109.57\n    test 294 reverse: 33.3, 44.4, 5999.996\n    test 295 case: 1\n    test 296 iteration: None\n    test 297 reverse: 30000.0, 30000.0, 0.0\n    test 298 reverse: 0.0, 45.0, -6335710.593  FAILED, KNOWN, expected 6.483, 45.0, -6335709.726\n    test 299 case: 3\n    test 300 iteration: None\n    test 301 forward: 6.483, 45.0, -6335709.726\n    test 302 forward: 30000.0, 30000.0, -0.0\n    test 303 Vermeille: -168.919\n    test 304 Vermeille: 190.939\n    test 305 Vermeille: (65.772506, 169.060801)\n    test 306 Vermeille: (1.147947, 3.141593)\n    test 307 reverse-1: 45.0, 120.0, 1000.0\n    test 308 forward-1: -2259149.0, 3912960.8, 4488055.5\n    test 309 xyzh-1: -2259149.0, 3912960.8, 4488055.5, 1000.0\n    test 310 philam-1: 0.7854, 2.0944\n    test 311 reverse-2: 45.0, 120.0, 2000.0\n    test 312 forward-2: -2259502.5, 3913573.2, 4488762.6\n    test 313 xyzh-2: -2259502.5, 3913573.2, 4488762.6, 2000.0\n    test 314 philam-2: 0.7854, 2.0944\n    test 315 reverse-3: 45.0, 120.0, 3000.0\n    test 316 forward-3: -2259856.1, 3914185.6, 4489469.7\n    test 317 xyzh-3: -2259856.1, 3914185.6, 4489469.7, 3000.0\n    test 318 philam-3: 0.7854, 2.0944\n    test 319 reverse-4: 45.0, 120.0, 4000.0\n    test 320 forward-4: -2260209.7, 3914798.0, 4490176.8\n    test 321 xyzh-4: -2260209.7, 3914798.0, 4490176.8, 4000.0\n    test 322 philam-4: 0.7854, 2.0944\n    test 323 reverse-5: 45.0, 120.0, 10000.0\n    test 324 forward-5: -2262331.0, 3918472.2, 4494419.5\n    test 325 xyzh-5: -2262331.0, 3918472.2, 4494419.5, 10000.0\n    test 326 philam-5: 0.7854, 2.0944\n    test 327 reverse-6: 45.0, 120.0, 20000.0\n    test 328 forward-6: -2265866.5, 3924595.9, 4501490.5\n    test 329 xyzh-6: -2265866.5, 3924595.9, 4501490.5, 20000.0\n    test 330 philam-6: 0.7854, 2.0944\n    test 331 reverse-7: 45.0, 120.0, 100000.0\n    test 332 forward-7: -2294150.8, 3973585.7, 4558059.1\n    test 333 xyzh-7: -2294150.8, 3973585.7, 4558059.1, 100000.0\n    test 334 philam-7: 0.7854, 2.0944\n    test 335 reverse-8: 45.0, 120.0, 800000.0\n    test 336 forward-8: -2541638.2, 4402246.4, 5053033.8\n    test 337 xyzh-8: -2541638.2, 4402246.4, 5053033.8, 800000.0\n    test 338 philam-8: 0.7854, 2.0944\n    test 339 reverse-9: 45.0, 120.0, 1000000.0\n    test 340 forward-9: -2612348.8, 4524720.9, 5194455.2\n    test 341 xyzh-9: -2612348.8, 4524720.9, 5194455.2, 1000000.0\n    test 342 philam-9: 0.7854, 2.0944\n    test 343 sudano: 45.0, 0.0, 100000.0\n    test 344 name: OS-UK\n    test 345 forward: 53.61199036, -1.66444222, 299.8\n    test 346 forward: 3790644.9, -110149.21, 5111482.97\n    test 347 reverse: 3790644.9, -110149.21, 5111482.97\n    test 348 reverse: 53.61199036, -1.66444223\n    test 349 reverse.lat: 53°36′43.1653″N\n    test 350 reverse.lon: 001°39′51.992″W\n    test 351 reverse.height: 299.800\n    test 352 case: 1\n    test 353 iteration: None\n    test 354 forward: -2430601.827685, -4702442.703125, 3546587.358103\n    test 355 reverse: 34.0, -117.333569, 251.702\n    test 356 forward_: -2430601.812953, -4702442.744488, 3546587.313654, 34.0, -117.333569, 251.702\n    test 357 EcefError: (0.0, 0.0, 0.0, 90.0, 0, -6356752.31414, 2, None, Datum(name='Datum', ellipsoid=Ellipsoids.GRS80, transform=Transforms.Identity))  FAILED, KNOWN, expected (0.0, 0.0, ...)\n    test 358 EcefError: height (None), lat (None) or lon (None)  FAILED, KNOWN, expected lat (None), lon (None) ...\n    test 359 EcefVeness: EcefVeness(a=None, f=None) ellipsoid: type(earth) (None): not a Datum, Ellipsoid, Ellipsoid2 or a_f2Tuple  FAILED, KNOWN, expected EcefVeness\n    test 360 Mx: (0.888348, 0.25558, -0.381466, -0.45917, 0.494465, -0.738015, 0.0, 0.830773, 0.556612)\n\n    test 361 EcefSudano: ...\n    test 362 name: Test\n    test 363 toStr: EcefSudano(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name='Test')  FAILED, KNOWN, expected EcefSudano\n    test 364 a, f: a=6378137.0, f=0.003352811, datum=Datum(name='_Test', ellipsoid=Ellipsoids._Test, transform=Transforms.Identity), name='Test'  FAILED, KNOWN, expected EcefSudano\n    test 365 copy(<class 'type'>): (<class 'pygeodesy.ecef.EcefSudano'>, True)\n    test 366 EcefSudano.copy(): (<class 'pygeodesy.ecef.EcefSudano'>, True)\n    test 367 forward: 27.99, 86.93, 8820.0\n    test 368 forward: 302271.4, 5635928.4, 2979666.1\n    test 369 name: Test\n    test 370 reverse: 302271.4, 5635928.4, 2979666.1\n    test 371 reverse: 28.01, 86.93, 8819.58  FAILED, KNOWN, expected 27.99, 86.93, 8820.01\n    test 372 case: 1\n    test 373 iteration: 6\n    test 374 name: Test\n    test 375 reverse: 302000.0, 5636000.0, 2980000.0\n    test 376 reverse: 28.01, 86.93, 9026.6  FAILED, KNOWN, expected 27.99, 86.93, 9027.03\n    test 377 case: 1\n    test 378 iteration: 6\n    test 379 forward: 27.99, 86.93, 8820.0\n    test 380 forward: 302271.43, 5635928.37, 2979666.13\n    test 381 forward: 33.3, 44.4, 6000.0\n    test 382 forward: 3816209.6, 3737108.55, 3485109.57\n    test 383 reverse: 3816209.6, 3737108.55, 3485109.57\n    test 384 reverse: 33.335, 44.4, 5998.836  FAILED, KNOWN, expected 33.3, 44.4, 5999.996\n    test 385 case: 1\n    test 386 iteration: 6\n    test 387 reverse: 30000.0, 30000.0, 0.0\n    test 388 reverse: 0.0, 45.0, -6335710.593  FAILED, KNOWN, expected 6.483, 45.0, -6335709.726\n    test 389 case: 3\n    test 390 iteration: 0\n    test 391 forward: 6.483, 45.0, -6335709.726\n    test 392 forward: 30000.0, 30000.0, -0.0\n    test 393 Vermeille: -168.919\n    test 394 Vermeille: 190.939\n    test 395 Vermeille: (65.979481, 169.060801)  FAILED, KNOWN, expected (65.772506, 169.060801)\n    test 396 Vermeille: (1.151559, 3.141593)  FAILED, KNOWN, expected (1.147947, 3.141593)\n    test 397 reverse-1: 45.08, 120.0, 993.852  FAILED, KNOWN, expected 45.0, 120.0, 1000.0\n    test 398 forward-1: -2256016.0, 3907534.4, 4494304.0  FAILED, KNOWN, expected -2259149.0, 3912960.8, 4488055.5\n    test 399 xyzh-1: -2256016.0, 3907534.4, 4494304.0, 993.9  FAILED, KNOWN, expected -2259149.0, 3912960.8, 4488055.5, 1000.0\n    test 400 philam-1: 0.7868, 2.0944\n    test 401 reverse-2: 45.08, 120.0, 1993.853  FAILED, KNOWN, expected 45.0, 120.0, 2000.0\n    test 402 forward-2: -2256369.6, 3908146.8, 4495011.2  FAILED, KNOWN, expected -2259502.5, 3913573.2, 4488762.6\n    test 403 xyzh-2: -2256369.6, 3908146.8, 4495011.2, 1993.9  FAILED, KNOWN, expected -2259502.5, 3913573.2, 4488762.6, 2000.0\n    test 404 philam-2: 0.7868, 2.0944\n    test 405 reverse-3: 45.08, 120.0, 2993.854  FAILED, KNOWN, expected 45.0, 120.0, 3000.0\n    test 406 forward-3: -2256723.1, 3908759.1, 4495718.3  FAILED, KNOWN, expected -2259856.1, 3914185.6, 4489469.7\n    test 407 xyzh-3: -2256723.1, 3908759.1, 4495718.3, 2993.9  FAILED, KNOWN, expected -2259856.1, 3914185.6, 4489469.7, 3000.0\n    test 408 philam-3: 0.7868, 2.0944\n    test 409 reverse-4: 45.08, 120.0, 3993.855  FAILED, KNOWN, expected 45.0, 120.0, 4000.0\n    test 410 forward-4: -2257076.7, 3909371.5, 4496425.4  FAILED, KNOWN, expected -2260209.7, 3914798.0, 4490176.8\n    test 411 xyzh-4: -2257076.7, 3909371.5, 4496425.4, 3993.9  FAILED, KNOWN, expected -2260209.7, 3914798.0, 4490176.8, 4000.0\n    test 412 philam-4: 0.7868, 2.0944\n    test 413 reverse-5: 45.08, 120.0, 9993.861  FAILED, KNOWN, expected 45.0, 120.0, 10000.0\n    test 414 forward-5: -2259198.0, 3913045.8, 4500668.0  FAILED, KNOWN, expected -2262331.0, 3918472.2, 4494419.5\n    test 415 xyzh-5: -2259198.0, 3913045.8, 4500668.0, 9993.9  FAILED, KNOWN, expected -2262331.0, 3918472.2, 4494419.5, 10000.0\n    test 416 philam-5: 0.7868, 2.0944\n    test 417 reverse-6: 45.079, 120.0, 19993.87  FAILED, KNOWN, expected 45.0, 120.0, 20000.0\n    test 418 forward-6: -2262733.6, 3919169.6, 4507739.0  FAILED, KNOWN, expected -2265866.5, 3924595.9, 4501490.5\n    test 419 xyzh-6: -2262733.6, 3919169.6, 4507739.0, 19993.9  FAILED, KNOWN, expected -2265866.5, 3924595.9, 4501490.5, 20000.0\n    test 420 philam-6: 0.7868, 2.0944\n    test 421 reverse-7: 45.078, 120.0, 99993.947  FAILED, KNOWN, expected 45.0, 120.0, 100000.0\n    test 422 forward-7: -2291018.1, 3968159.8, 4564307.3  FAILED, KNOWN, expected -2294150.8, 3973585.7, 4558059.1\n    test 423 xyzh-7: -2291018.1, 3968159.8, 4564307.3, 99993.9  FAILED, KNOWN, expected -2294150.8, 3973585.7, 4558059.1, 100000.0\n    test 424 philam-7: 0.7868, 2.0944\n    test 425 reverse-8: 45.071, 120.0, 799994.544  FAILED, KNOWN, expected 45.0, 120.0, 800000.0\n    test 426 forward-8: -2538507.3, 4396823.7, 5059280.0  FAILED, KNOWN, expected -2541638.2, 4402246.4, 5053033.8\n    test 427 xyzh-8: -2538507.3, 4396823.7, 5059280.0, 799994.5  FAILED, KNOWN, expected -2541638.2, 4402246.4, 5053033.8, 800000.0\n    test 428 philam-8: 0.7866, 2.0944\n    test 429 reverse-9: 45.069, 120.0, 999994.693  FAILED, KNOWN, expected 45.0, 120.0, 1000000.0\n    test 430 forward-9: -2609218.5, 4519299.0, 5200700.9  FAILED, KNOWN, expected -2612348.8, 4524720.9, 5194455.2\n    test 431 xyzh-9: -2609218.5, 4519299.0, 5200700.9, 999994.7  FAILED, KNOWN, expected -2612348.8, 4524720.9, 5194455.2, 1000000.0\n    test 432 philam-9: 0.7866, 2.0944\n    test 433 sudano: 45.078, 0.0, 99993.947  FAILED, KNOWN, expected 45.0, 0.0, 100000.0\n    test 434 name: OS-UK\n    test 435 forward: 53.61199036, -1.66444222, 299.8\n    test 436 forward: 3790644.9, -110149.21, 5111482.97\n    test 437 reverse: 3790644.9, -110149.21, 5111482.97\n    test 438 reverse: 53.73795244, -1.66444223  FAILED, KNOWN, expected 53.61199036, -1.66444223\n    test 439 reverse.lat: 53°44′16.6288″N  FAILED, KNOWN, expected 53°36′43.1653″N\n    test 440 reverse.lon: 001°39′51.992″W\n    test 441 reverse.height: 284.389  FAILED, KNOWN, expected 299.800\n    test 442 case: 1\n    test 443 iteration: 7\n    test 444 forward: -2430601.827685, -4702442.703125, 3546587.358103\n    test 445 reverse: 34.036724, -117.333569, 250.396541  FAILED, KNOWN, expected 34.0, -117.333569, 251.702\n    test 446 forward_: -2430601.812953, -4702442.744488, 3546587.313654, 34.0, -117.333569, 251.702\n    test 447 EcefError: (0.0, 0.0, 0.0, 90.0, 0, -6356752.31414, 2, None, Datum(name='Datum', ellipsoid=Ellipsoids.GRS80, transform=Transforms.Identity))  FAILED, KNOWN, expected (0.0, 0.0, ...)\n    test 448 EcefError: height (None), lat (None) or lon (None)  FAILED, KNOWN, expected lat (None), lon (None) ...\n    test 449 EcefSudano: EcefSudano(a=None, f=None) ellipsoid: type(earth) (None): not a Datum, Ellipsoid, Ellipsoid2 or a_f2Tuple  FAILED, KNOWN, expected EcefSudano\n    test 450 Mx: (0.888348, 0.25558, -0.381466, -0.45917, 0.494465, -0.738015, 0.0, 0.830773, 0.556612)\n\n    test 451 EcefUPC: ...\n    test 452 name: Test\n    test 453 toStr: EcefUPC(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name='Test')  FAILED, KNOWN, expected EcefUPC\n    test 454 a, f: a=6378137.0, f=0.003352811, datum=Datum(name='_Test', ellipsoid=Ellipsoids._Test, transform=Transforms.Identity), name='Test'  FAILED, KNOWN, expected EcefUPC\n    test 455 copy(<class 'type'>): (<class 'pygeodesy.ecef.EcefUPC'>, True)\n    test 456 EcefUPC.copy(): (<class 'pygeodesy.ecef.EcefUPC'>, True)\n    test 457 forward: 27.99, 86.93, 8820.0\n    test 458 forward: 302271.4, 5635928.4, 2979666.1\n    test 459 name: Test\n    test 460 reverse: 302271.4, 5635928.4, 2979666.1\n    test 461 reverse: 27.99, 86.93, 8820.01\n    test 462 case: 1\n    test 463 iteration: 5\n    test 464 name: Test\n    test 465 reverse: 302000.0, 5636000.0, 2980000.0\n    test 466 reverse: 27.99, 86.93, 9027.03\n    test 467 case: 1\n    test 468 iteration: 5\n    test 469 forward: 27.99, 86.93, 8820.0\n    test 470 forward: 302271.43, 5635928.37, 2979666.13\n    test 471 forward: 33.3, 44.4, 6000.0\n    test 472 forward: 3816209.6, 3737108.55, 3485109.57\n    test 473 reverse: 3816209.6, 3737108.55, 3485109.57\n    test 474 reverse: 33.3, 44.4, 5999.996\n    test 475 case: 1\n    test 476 iteration: 5\n    test 477 reverse: 30000.0, 30000.0, 0.0\n    test 478 reverse: 0.0, 45.0, -6335710.593  FAILED, KNOWN, expected 6.483, 45.0, -6335709.726\n    test 479 case: 3\n    test 480 iteration: 0\n    test 481 forward: 6.483, 45.0, -6335709.726\n    test 482 forward: 30000.0, 30000.0, -0.0\n    test 483 Vermeille: -168.919\n    test 484 Vermeille: 190.939\n    test 485 Vermeille: (65.772506, 169.060801)\n    test 486 Vermeille: (1.147947, 3.141593)\n    test 487 reverse-1: 45.0, 120.0, 1000.0\n    test 488 forward-1: -2259149.0, 3912960.8, 4488055.5\n    test 489 xyzh-1: -2259149.0, 3912960.8, 4488055.5, 1000.0\n    test 490 philam-1: 0.7854, 2.0944\n    test 491 reverse-2: 45.0, 120.0, 2000.0\n    test 492 forward-2: -2259502.5, 3913573.2, 4488762.6\n    test 493 xyzh-2: -2259502.5, 3913573.2, 4488762.6, 2000.0\n    test 494 philam-2: 0.7854, 2.0944\n    test 495 reverse-3: 45.0, 120.0, 3000.0\n    test 496 forward-3: -2259856.1, 3914185.6, 4489469.7\n    test 497 xyzh-3: -2259856.1, 3914185.6, 4489469.7, 3000.0\n    test 498 philam-3: 0.7854, 2.0944\n    test 499 reverse-4: 45.0, 120.0, 4000.0\n    test 500 forward-4: -2260209.7, 3914798.0, 4490176.8\n    test 501 xyzh-4: -2260209.7, 3914798.0, 4490176.8, 4000.0\n    test 502 philam-4: 0.7854, 2.0944\n    test 503 reverse-5: 45.0, 120.0, 10000.0\n    test 504 forward-5: -2262331.0, 3918472.2, 4494419.5\n    test 505 xyzh-5: -2262331.0, 3918472.2, 4494419.5, 10000.0\n    test 506 philam-5: 0.7854, 2.0944\n    test 507 reverse-6: 45.0, 120.0, 20000.0\n    test 508 forward-6: -2265866.5, 3924595.9, 4501490.5\n    test 509 xyzh-6: -2265866.5, 3924595.9, 4501490.5, 20000.0\n    test 510 philam-6: 0.7854, 2.0944\n    test 511 reverse-7: 45.0, 120.0, 100000.0\n    test 512 forward-7: -2294150.8, 3973585.7, 4558059.1\n    test 513 xyzh-7: -2294150.8, 3973585.7, 4558059.1, 100000.0\n    test 514 philam-7: 0.7854, 2.0944\n    test 515 reverse-8: 45.0, 120.0, 800000.0\n    test 516 forward-8: -2541638.2, 4402246.4, 5053033.8\n    test 517 xyzh-8: -2541638.2, 4402246.4, 5053033.8, 800000.0\n    test 518 philam-8: 0.7854, 2.0944\n    test 519 reverse-9: 45.0, 120.0, 1000000.0\n    test 520 forward-9: -2612348.8, 4524720.9, 5194455.2\n    test 521 xyzh-9: -2612348.8, 4524720.9, 5194455.2, 1000000.0\n    test 522 philam-9: 0.7854, 2.0944\n    test 523 sudano: 45.0, 0.0, 100000.0\n    test 524 name: OS-UK\n    test 525 forward: 53.61199036, -1.66444222, 299.8\n    test 526 forward: 3790644.9, -110149.21, 5111482.97\n    test 527 reverse: 3790644.9, -110149.21, 5111482.97\n    test 528 reverse: 53.61199036, -1.66444223\n    test 529 reverse.lat: 53°36′43.1653″N\n    test 530 reverse.lon: 001°39′51.992″W\n    test 531 reverse.height: 299.800\n    test 532 case: 1\n    test 533 iteration: 5\n    test 534 forward: -2430601.827685, -4702442.703125, 3546587.358103\n    test 535 reverse: 34.0, -117.333569, 251.702\n    test 536 forward_: -2430601.812953, -4702442.744488, 3546587.313654, 34.0, -117.333569, 251.702\n    test 537 EcefError: (0.0, 0.0, 0.0, 90.0, 0, -6356752.31414, 2, None, Datum(name='Datum', ellipsoid=Ellipsoids.GRS80, transform=Transforms.Identity))  FAILED, KNOWN, expected (0.0, 0.0, ...)\n    test 538 EcefError: height (None), lat (None) or lon (None)  FAILED, KNOWN, expected lat (None), lon (None) ...\n    test 539 EcefUPC: EcefUPC(a=None, f=None) ellipsoid: type(earth) (None): not a Datum, Ellipsoid, Ellipsoid2 or a_f2Tuple  FAILED, KNOWN, expected EcefUPC\n    test 540 Mx: (0.888348, 0.25558, -0.381466, -0.45917, 0.494465, -0.738015, 0.0, 0.830773, 0.556612)\n\n    test 541 EcefYou: ...\n    test 542 name: Test\n    test 543 toStr: EcefYou(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name='Test')  FAILED, KNOWN, expected EcefYou\n    test 544 a, f: a=6378137.0, f=0.003352811, datum=Datum(name='_Test', ellipsoid=Ellipsoids._Test, transform=Transforms.Identity), name='Test'  FAILED, KNOWN, expected EcefYou\n    test 545 copy(<class 'type'>): (<class 'pygeodesy.ecef.EcefYou'>, True)\n    test 546 EcefYou.copy(): (<class 'pygeodesy.ecef.EcefYou'>, True)\n    test 547 forward: 27.99, 86.93, 8820.0\n    test 548 forward: 302271.4, 5635928.4, 2979666.1\n    test 549 name: Test\n    test 550 reverse: 302271.4, 5635928.4, 2979666.1\n    test 551 reverse: 27.99, 86.93, 8820.01\n    test 552 case: 1\n    test 553 iteration: None\n    test 554 name: Test\n    test 555 reverse: 302000.0, 5636000.0, 2980000.0\n    test 556 reverse: 27.99, 86.93, 9027.03\n    test 557 case: 1\n    test 558 iteration: None\n    test 559 forward: 27.99, 86.93, 8820.0\n    test 560 forward: 302271.43, 5635928.37, 2979666.13\n    test 561 forward: 33.3, 44.4, 6000.0\n    test 562 forward: 3816209.6, 3737108.55, 3485109.57\n    test 563 reverse: 3816209.6, 3737108.55, 3485109.57\n    test 564 reverse: 33.3, 44.4, 5999.996\n    test 565 case: 1\n    test 566 iteration: None\n    test 567 reverse: 30000.0, 30000.0, 0.0\n    test 568 reverse: 0.0, 45.0, -6335710.593  FAILED, KNOWN, expected 6.483, 45.0, -6335709.726\n    test 569 case: 3\n    test 570 iteration: None\n    test 571 forward: 6.483, 45.0, -6335709.726\n    test 572 forward: 30000.0, 30000.0, -0.0\n    test 573 Vermeille: -168.919\n    test 574 Vermeille: 190.939\n    test 575 Vermeille: (65.772506, 169.060801)\n    test 576 Vermeille: (1.147947, 3.141593)\n    test 577 reverse-1: 45.0, 120.0, 1000.0\n    test 578 forward-1: -2259149.0, 3912960.8, 4488055.5\n    test 579 xyzh-1: -2259149.0, 3912960.8, 4488055.5, 1000.0\n    test 580 philam-1: 0.7854, 2.0944\n    test 581 reverse-2: 45.0, 120.0, 2000.0\n    test 582 forward-2: -2259502.5, 3913573.2, 4488762.6\n    test 583 xyzh-2: -2259502.5, 3913573.2, 4488762.6, 2000.0\n    test 584 philam-2: 0.7854, 2.0944\n    test 585 reverse-3: 45.0, 120.0, 3000.0\n    test 586 forward-3: -2259856.1, 3914185.6, 4489469.7\n    test 587 xyzh-3: -2259856.1, 3914185.6, 4489469.7, 3000.0\n    test 588 philam-3: 0.7854, 2.0944\n    test 589 reverse-4: 45.0, 120.0, 4000.0\n    test 590 forward-4: -2260209.7, 3914798.0, 4490176.8\n    test 591 xyzh-4: -2260209.7, 3914798.0, 4490176.8, 4000.0\n    test 592 philam-4: 0.7854, 2.0944\n    test 593 reverse-5: 45.0, 120.0, 10000.0\n    test 594 forward-5: -2262331.0, 3918472.2, 4494419.5\n    test 595 xyzh-5: -2262331.0, 3918472.2, 4494419.5, 10000.0\n    test 596 philam-5: 0.7854, 2.0944\n    test 597 reverse-6: 45.0, 120.0, 20000.0\n    test 598 forward-6: -2265866.5, 3924595.9, 4501490.5\n    test 599 xyzh-6: -2265866.5, 3924595.9, 4501490.5, 20000.0\n    test 600 philam-6: 0.7854, 2.0944\n    test 601 reverse-7: 45.0, 120.0, 100000.0\n    test 602 forward-7: -2294150.8, 3973585.7, 4558059.1\n    test 603 xyzh-7: -2294150.8, 3973585.7, 4558059.1, 100000.0\n    test 604 philam-7: 0.7854, 2.0944\n    test 605 reverse-8: 45.0, 120.0, 800000.0\n    test 606 forward-8: -2541638.2, 4402246.4, 5053033.8\n    test 607 xyzh-8: -2541638.2, 4402246.4, 5053033.8, 800000.0\n    test 608 philam-8: 0.7854, 2.0944\n    test 609 reverse-9: 45.0, 120.0, 1000000.0\n    test 610 forward-9: -2612348.8, 4524720.9, 5194455.2\n    test 611 xyzh-9: -2612348.8, 4524720.9, 5194455.2, 1000000.0\n    test 612 philam-9: 0.7854, 2.0944\n    test 613 sudano: 45.0, 0.0, 100000.0\n    test 614 name: OS-UK\n    test 615 forward: 53.61199036, -1.66444222, 299.8\n    test 616 forward: 3790644.9, -110149.21, 5111482.97\n    test 617 reverse: 3790644.9, -110149.21, 5111482.97\n    test 618 reverse: 53.61199036, -1.66444223\n    test 619 reverse.lat: 53°36′43.1653″N\n    test 620 reverse.lon: 001°39′51.992″W\n    test 621 reverse.height: 299.800\n    test 622 case: 1\n    test 623 iteration: None\n    test 624 forward: -2430601.827685, -4702442.703125, 3546587.358103\n    test 625 reverse: 34.0, -117.333569, 251.702\n    test 626 forward_: -2430601.812953, -4702442.744488, 3546587.313654, 34.0, -117.333569, 251.702\n    test 627 EcefError: (0.0, 0.0, 0.0, 90.0, 0, -6356752.31414, 2, None, Datum(name='Datum', ellipsoid=Ellipsoids.GRS80, transform=Transforms.Identity))  FAILED, KNOWN, expected (0.0, 0.0, ...)\n    test 628 EcefError: height (None), lat (None) or lon (None)  FAILED, KNOWN, expected lat (None), lon (None) ...\n    test 629 EcefYou: EcefYou(a=None, f=None) ellipsoid: type(earth) (None): not a Datum, Ellipsoid, Ellipsoid2 or a_f2Tuple  FAILED, KNOWN, expected EcefYou\n    test 630 Mx: (0.888348, 0.25558, -0.381466, -0.45917, 0.494465, -0.738015, 0.0, 0.830773, 0.556612)\n\n    test 631 EcefMatrix: ...\n    test 632 index: (0, 1, 2, 3, 4, 5, 6, 7, 8)\n    test 633 matrix: 0, 1, 2, 3, 4, 5, 6, 7, 8\n    test 634 multiply: 45, 54, 63, 54, 66, 78, 63, 78, 93\n    test 635 matrix3: True\n    test 636 matrixT3: True\n    test 637 copy(<class 'type'>): (<class 'pygeodesy.ecef.EcefMatrix'>, True)\n    test 638 EcefMatrix.copy(): (<class 'pygeodesy.ecef.EcefMatrix'>, True)\n    test 639 matrix: 1, 0, 0, 0, 1, 0, 0, 0, 1\n    test 640 multiply: 1, 0, 0, 0, 1, 0, 0, 0, 1\n    test 641 copy(<class 'type'>): (<class 'pygeodesy.ecef.EcefMatrix'>, True)\n    test 642 EcefMatrix.copy(): (<class 'pygeodesy.ecef.EcefMatrix'>, True)\n    test 643 unrotate: (1.0, 1.0, 1.0)\n\n    test 644 pygeodesy.sphericalNvector: Cartesian\n    test 645 Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 646 pygeodesy.sphericalNvector: LatLon\n    test 647 Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 648 forward: 48.833, 2.333, 0.0\n    test 649 forward: 4190278.55, 170716.35, 4796058.21\n    test 650 name: Paris\n    test 651 reverse: 48.833, 2.333, 0.0\n    test 652 name: Paris\n    test 653 toLatLon: LatLon(48°49′58.8″N, 002°19′58.8″E)\n    test 654 name: Paris\n    test 655 Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 656 to4Tuple: LatLon4Tuple\n    test 657 to4Tuple: Paris(lat=48.833, lon=2.333, height=0.0, datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84))\n    test 658 to3Tuple: LatLon3Tuple\n    test 659 to3Tuple: Paris(lat=48.833, lon=2.333, height=0.0)\n    test 660 toVector: (4190278.55277, 170716.34863, 4796058.20898)\n    test 661 name: Paris\n    test 662 forward: [4190278.55, 170716.35, 4796058.21]\n    test 663 Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n# imported pygeodesy.ltp into ecefLocals.py line 63\n    test 664 toLocal: (0.0, 0.0, 0.0, 48.833, 2.333, 0.0, Ltp(lat0=48.833, lon0=2.333, height0=0.0, M=EcefMatrix(_0_0_=-0.040707, _0_1_=-0.75217, _0_2_=0.65771, _1_0_=0.999171, _1_1_=-0.030644, _1_2_=0.026796, _2_0_=0.0, _2_1_=0.658256, _2_2_=0.752794), ecef=EcefKarney(a=6371008.771415, f=0.0, datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84), name=''), name='Paris'), Paris(x=4190278.55277, y=170716.348629, z=4796058.208983, lat=48.833, lon=2.333, height=0.0, C=2, M=None, datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84)), None)\n# imported pygeodesy.ltpTuples into ecefLocals.py line 80\n# imported pygeodesy.ltp into ltpTuples.py line 1585\n    test 665 toAer: [0.0, 0.0, 0.0]\n    test 666 toEnu: [0.0, 0.0, 0.0]\n    test 667 toNed: [0.0, 0.0, 0.0]\n\n    test 668 pygeodesy.sphericalTrigonometry: Cartesian\n    test 669 Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 670 pygeodesy.sphericalTrigonometry: LatLon\n    test 671 Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 672 forward: 48.833, 2.333, 0.0\n    test 673 forward: 4190278.55, 170716.35, 4796058.21\n    test 674 name: Paris\n    test 675 reverse: 48.833, 2.333, 0.0\n    test 676 name: Paris\n    test 677 toLatLon: LatLon(48°49′58.8″N, 002°19′58.8″E)\n    test 678 name: Paris\n    test 679 Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 680 to4Tuple: LatLon4Tuple\n    test 681 to4Tuple: Paris(lat=48.833, lon=2.333, height=0.0, datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84))\n    test 682 to3Tuple: LatLon3Tuple\n    test 683 to3Tuple: Paris(lat=48.833, lon=2.333, height=0.0)\n    test 684 toVector: (4190278.55277, 170716.34863, 4796058.20898)\n    test 685 name: Paris\n    test 686 forward: [4190278.55, 170716.35, 4796058.21]\n    test 687 Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 688 toLocal: (0.0, 0.0, 0.0, 48.833, 2.333, 0.0, Ltp(lat0=48.833, lon0=2.333, height0=0.0, M=EcefMatrix(_0_0_=-0.040707, _0_1_=-0.75217, _0_2_=0.65771, _1_0_=0.999171, _1_1_=-0.030644, _1_2_=0.026796, _2_0_=0.0, _2_1_=0.658256, _2_2_=0.752794), ecef=EcefKarney(a=6371008.771415, f=0.0, datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84), name=''), name='Paris'), Paris(x=4190278.55277, y=170716.348629, z=4796058.208983, lat=48.833, lon=2.333, height=0.0, C=2, M=None, datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84)), None)\n    test 689 toAer: [0.0, 0.0, 0.0]\n    test 690 toEnu: [0.0, 0.0, 0.0]\n    test 691 toNed: [0.0, 0.0, 0.0]\n\n    test 692 pygeodesy.ellipsoidalNvector: Cartesian\n    test 693 Ecef: <class 'pygeodesy.ecef.EcefVeness'>\n    test 694 pygeodesy.ellipsoidalNvector: LatLon\n    test 695 Ecef: <class 'pygeodesy.ecef.EcefVeness'>\n    test 696 forward: 48.833, 2.333, 0.0\n    test 697 forward: 4202946.8, 171232.47, 4778354.17\n    test 698 name: Paris\n    test 699 reverse: 48.833, 2.333, 0.0\n    test 700 name: Paris\n    test 701 toLatLon: LatLon(48°49′58.8″N, 002°19′58.8″E, +0.00m)\n    test 702 name: Paris\n    test 703 Ecef: <class 'pygeodesy.ecef.EcefVeness'>\n    test 704 to4Tuple: LatLon4Tuple\n    test 705 to4Tuple: Paris(lat=48.833, lon=2.333, height=0.0, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 706 to3Tuple: LatLon3Tuple\n    test 707 to3Tuple: Paris(lat=48.833, lon=2.333, height=0.0)\n    test 708 toVector: (4202946.79528, 171232.46613, 4778354.17)\n    test 709 name: Paris\n    test 710 forward: [4202946.8, 171232.47, 4778354.17]\n    test 711 Ecef: <class 'pygeodesy.ecef.EcefVeness'>\n    test 712 toLocal: (0.0, 0.0, -0.0, 48.833, 2.333, 0.0, Ltp(lat0=48.833, lon0=2.333, height0=0.000000001, M=EcefMatrix(_0_0_=-0.040707, _0_1_=-0.75217, _0_2_=0.65771, _1_0_=0.999171, _1_1_=-0.030644, _1_2_=0.026796, _2_0_=0.0, _2_1_=0.658256, _2_2_=0.752794), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Paris'), Paris(x=4202946.795276, y=171232.466132, z=4778354.169996, lat=48.833, lon=2.333, height=0.0, C=1, M=None, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84)), None)\n    test 713 toAer: [23.434, -85.849, 0.0]\n    test 714 toEnu: [0.0, 0.0, -0.0]\n    test 715 toNed: [0.0, 0.0, 0.0]\n\n    test 716 pygeodesy.ellipsoidalVincenty: Cartesian\n    test 717 Ecef: <class 'pygeodesy.ecef.EcefVeness'>\n    test 718 pygeodesy.ellipsoidalVincenty: LatLon\n    test 719 Ecef: <class 'pygeodesy.ecef.EcefVeness'>\n    test 720 forward: 48.833, 2.333, 0.0\n    test 721 forward: 4202946.8, 171232.47, 4778354.17\n    test 722 name: Paris\n    test 723 reverse: 48.833, 2.333, 0.0\n    test 724 name: Paris\n    test 725 toLatLon: LatLon(48°49′58.8″N, 002°19′58.8″E, +0.00m)\n    test 726 name: Paris\n    test 727 Ecef: <class 'pygeodesy.ecef.EcefVeness'>\n    test 728 to4Tuple: LatLon4Tuple\n    test 729 to4Tuple: Paris(lat=48.833, lon=2.333, height=0.0, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 730 to3Tuple: LatLon3Tuple\n    test 731 to3Tuple: Paris(lat=48.833, lon=2.333, height=0.0)\n    test 732 toVector: (4202946.79528, 171232.46613, 4778354.17)\n    test 733 name: Paris\n    test 734 forward: [4202946.8, 171232.47, 4778354.17]\n    test 735 Ecef: <class 'pygeodesy.ecef.EcefVeness'>\n    test 736 toLocal: (0.0, 0.0, -0.0, 48.833, 2.333, 0.0, Ltp(lat0=48.833, lon0=2.333, height0=0.000000001, M=EcefMatrix(_0_0_=-0.040707, _0_1_=-0.75217, _0_2_=0.65771, _1_0_=0.999171, _1_1_=-0.030644, _1_2_=0.026796, _2_0_=0.0, _2_1_=0.658256, _2_2_=0.752794), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Paris'), Paris(x=4202946.795276, y=171232.466132, z=4778354.169996, lat=48.833, lon=2.333, height=0.0, C=1, M=None, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84)), None)\n    test 737 toAer: [23.434, -85.849, 0.0]\n    test 738 toEnu: [0.0, 0.0, -0.0]\n    test 739 toNed: [0.0, 0.0, 0.0]\n\n    test 740 pygeodesy.ellipsoidalKarney: Cartesian\n    test 741 Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 742 pygeodesy.ellipsoidalKarney: LatLon\n    test 743 Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 744 forward: 48.833, 2.333, 0.0\n    test 745 forward: 4202946.8, 171232.47, 4778354.17\n    test 746 name: Paris\n    test 747 reverse: 48.833, 2.333, 0.0\n    test 748 name: Paris\n    test 749 toLatLon: LatLon(48°49′58.8″N, 002°19′58.8″E, +0.00m)\n    test 750 name: Paris\n    test 751 Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 752 to4Tuple: LatLon4Tuple\n    test 753 to4Tuple: Paris(lat=48.833, lon=2.333, height=0.0, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 754 to3Tuple: LatLon3Tuple\n    test 755 to3Tuple: Paris(lat=48.833, lon=2.333, height=0.0)\n    test 756 toVector: (4202946.79528, 171232.46613, 4778354.17)\n    test 757 name: Paris\n    test 758 forward: [4202946.8, 171232.47, 4778354.17]\n    test 759 Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 760 toLocal: (0.0, 0.0, -0.0, 48.833, 2.333, 0.0, Ltp(lat0=48.833, lon0=2.333, height0=0.000000001, M=EcefMatrix(_0_0_=-0.040707, _0_1_=-0.75217, _0_2_=0.65771, _1_0_=0.999171, _1_1_=-0.030644, _1_2_=0.026796, _2_0_=0.0, _2_1_=0.658256, _2_2_=0.752794), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Paris'), Paris(x=4202946.795276, y=171232.466132, z=4778354.169996, lat=48.833, lon=2.333, height=0.0, C=1, M=None, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84)), None)\n    test 761 toAer: [23.434, -85.849, 0.0]\n    test 762 toEnu: [0.0, 0.0, -0.0]\n    test 763 toNed: [0.0, 0.0, 0.0]\n\n    test 764 pygeodesy.ellipsoidalExact: Cartesian\n    test 765 Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 766 pygeodesy.ellipsoidalExact: LatLon\n    test 767 Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 768 forward: 48.833, 2.333, 0.0\n    test 769 forward: 4202946.8, 171232.47, 4778354.17\n    test 770 name: Paris\n    test 771 reverse: 48.833, 2.333, 0.0\n    test 772 name: Paris\n    test 773 toLatLon: LatLon(48°49′58.8″N, 002°19′58.8″E, +0.00m)\n    test 774 name: Paris\n    test 775 Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 776 to4Tuple: LatLon4Tuple\n    test 777 to4Tuple: Paris(lat=48.833, lon=2.333, height=0.0, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 778 to3Tuple: LatLon3Tuple\n    test 779 to3Tuple: Paris(lat=48.833, lon=2.333, height=0.0)\n    test 780 toVector: (4202946.79528, 171232.46613, 4778354.17)\n    test 781 name: Paris\n    test 782 forward: [4202946.8, 171232.47, 4778354.17]\n    test 783 Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 784 toLocal: (0.0, 0.0, -0.0, 48.833, 2.333, 0.0, Ltp(lat0=48.833, lon0=2.333, height0=0.000000001, M=EcefMatrix(_0_0_=-0.040707, _0_1_=-0.75217, _0_2_=0.65771, _1_0_=0.999171, _1_1_=-0.030644, _1_2_=0.026796, _2_0_=0.0, _2_1_=0.658256, _2_2_=0.752794), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Paris'), Paris(x=4202946.795276, y=171232.466132, z=4778354.169996, lat=48.833, lon=2.333, height=0.0, C=1, M=None, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84)), None)\n    test 785 toAer: [23.434, -85.849, 0.0]\n    test 786 toEnu: [0.0, 0.0, -0.0]\n    test 787 toNed: [0.0, 0.0, 0.0]\n# lazily imported pygeodesy.ellipsoidalGeodSolve by testEcef.py line 279\n\n    test 788 pygeodesy.ellipsoidalGeodSolve: Cartesian\n    test 789 Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 790 pygeodesy.ellipsoidalGeodSolve: LatLon\n    test 791 Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 792 forward: 48.833, 2.333, 0.0\n    test 793 forward: 4202946.8, 171232.47, 4778354.17\n    test 794 name: Paris\n    test 795 reverse: 48.833, 2.333, 0.0\n    test 796 name: Paris\n    test 797 toLatLon: LatLon(48°49′58.8″N, 002°19′58.8″E, +0.00m)\n    test 798 name: Paris\n    test 799 Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 800 to4Tuple: LatLon4Tuple\n    test 801 to4Tuple: Paris(lat=48.833, lon=2.333, height=0.0, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 802 to3Tuple: LatLon3Tuple\n    test 803 to3Tuple: Paris(lat=48.833, lon=2.333, height=0.0)\n    test 804 toVector: (4202946.79528, 171232.46613, 4778354.17)\n    test 805 name: Paris\n    test 806 forward: [4202946.8, 171232.47, 4778354.17]\n    test 807 Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 808 toLocal: (0.0, 0.0, -0.0, 48.833, 2.333, 0.0, Ltp(lat0=48.833, lon0=2.333, height0=0.000000001, M=EcefMatrix(_0_0_=-0.040707, _0_1_=-0.75217, _0_2_=0.65771, _1_0_=0.999171, _1_1_=-0.030644, _1_2_=0.026796, _2_0_=0.0, _2_1_=0.658256, _2_2_=0.752794), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Paris'), Paris(x=4202946.795276, y=171232.466132, z=4778354.169996, lat=48.833, lon=2.333, height=0.0, C=1, M=None, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84)), None)\n    test 809 toAer: [23.434, -85.849, 0.0]\n    test 810 toEnu: [0.0, 0.0, -0.0]\n    test 811 toNed: [0.0, 0.0, 0.0]\n\n    80 of 811 testEcef.py tests (9.9%) FAILED, ALL KNOWN (pygeodesy 26.3.26 Python 3.12.10 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 2.1.0 scipy 1.14.1 Math 2 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 isLazy 3 -W  default) 51.826 ms\nrunning /usr/local/bin/p....n3.12 -W default ~/PyGeodesy/test/testElevations.py\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.elevation2 from .elevations by testElevations.py line 11\n# lazily imported pygeodesy.Datums from .datums by testElevations.py line 11\n# lazily imported pygeodesy.geoidHeight2 from .elevations by testElevations.py line 11\n\n    testing testElevations.py 24.09.25 isLazy=3\n# lazily imported pygeodesy.ellipsoidalVincenty by testElevations.py line 79\n    test 1 elevation2: elevation2(37.8816, -121.9142): <HTTPError 301: 'Move Permanently'>  FAILED, KNOWN, expected 1173.79\n    test 2 geoidHeight2: -31.699\n    test 3 elevation2: elevation2(37.8816, -121.9142): <HTTPError 301: 'Move Permanently'>  FAILED, KNOWN, expected 1173.79\n    test 4 geodHeight2: -31.699\n    test 5 elevation2: elevation2(42.354117, -71.069351): <HTTPError 301: 'Move Permanently'>  FAILED, KNOWN, expected 2.03\n    test 6 geodHeight2: -27.773\n    test 7 elevation2: elevation2(41.499498, -81.695391): <HTTPError 301: 'Move Permanently'>  FAILED, KNOWN, expected 199.18\n    test 8 geodHeight2: -34.337  FAILED, KNOWN (0.268124), expected -27.077\n    test 9 elevation2: elevation2(41.49008, -71.312796): <HTTPError 301: 'Move Permanently'>  FAILED, KNOWN, expected 8.52\n    test 10 geodHeight2: -30.000\n    test 11 elevation2: elevation2(40.779147, -73.96808): <HTTPError 301: 'Move Permanently'>  FAILED, KNOWN, expected 32.79\n    test 12 geodHeight2: -31.666\n    test 13 elevation2: (None, \"<HTTPError 301: 'Move Permanently'>\")  FAILED, KNOWN, expected (None, 'non-CONUS -1000000.00')\n    test 14 geoidHeight2: (None, 'no JSON \"{}\"')  FAILED, KNOWN, expected (None, \"<HTTPError 403: 'Forbidden'>\")\n    test 15 elevation2: (None, \"URLError(OSError(65, 'No route to host'))\")  FAILED, KNOWN, expected (None, \"URLError(timeout('timed out'))\")\n    test 16 geodHeight2: (None, \"URLError(TimeoutError('timed out'))\")  FAILED, KNOWN, expected (None, \"URLError(timeout('timed out'))\")\n    test 17 elevation2: elevation2(37.8816, -121.9142): <HTTPError 301: 'Move Permanently'>  FAILED, KNOWN, expected 1173.79\n    test 18 geoidHeight2: -31.699\n    test 19 elevation2: elevation2(37.8816, -121.9142): <HTTPError 301: 'Move Permanently'>  FAILED, KNOWN, expected 1173.79\n    test 20 geodHeight2: -31.699\n    test 21 elevation2: elevation2(42.354117, -71.069351): <HTTPError 301: 'Move Permanently'>  FAILED, KNOWN, expected 2.03\n    test 22 geodHeight2: -27.773\n    test 23 elevation2: elevation2(41.499498, -81.695391): <HTTPError 301: 'Move Permanently'>  FAILED, KNOWN, expected 199.18\n    test 24 geodHeight2: -34.337  FAILED, KNOWN (0.268124), expected -27.077\n    test 25 elevation2: elevation2(41.49008, -71.312796): <HTTPError 301: 'Move Permanently'>  FAILED, KNOWN, expected 8.52\n    test 26 geodHeight2: -30.000\n    test 27 elevation2: elevation2(40.779147, -73.96808): <HTTPError 301: 'Move Permanently'>  FAILED, KNOWN, expected 32.79\n    test 28 geodHeight2: -31.666\n    test 29 elevation2: (None, \"<HTTPError 301: 'Move Permanently'>\")  FAILED, KNOWN, expected (None, 'non-CONUS -1000000.00')\n    test 30 geoidHeight2: (None, 'no JSON \"{}\"')  FAILED, KNOWN, expected (None, \"<HTTPError 403: 'Forbidden'>\")\n    test 31 elevation2: (None, \"URLError(OSError(65, 'No route to host'))\")  FAILED, KNOWN, expected (None, \"URLError(timeout('timed out'))\")\n    test 32 geodHeight2: (None, \"URLError(TimeoutError('timed out'))\")  FAILED, KNOWN, expected (None, \"URLError(timeout('timed out'))\")\n\n    22 of 32 testElevations.py tests (68.8%) FAILED, ALL KNOWN (pygeodesy 26.3.26 Python 3.12.10 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 2.1.0 scipy 1.14.1 Math 2 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 isLazy 3 -W  default) 5.117 sec\nrunning /usr/local/bin/p....n3.12 -W default ~/PyGeodesy/test/testEllipses.py\n./test/testEllipses.py:52: DeprecationWarning: function L{elliperim<pygeodesy.deprecated.functions.elliperim>} has been DEPRECATED on 2026.02.12, use method L{pygeodesy.Ellipse.arc} or property L{pygeodesy.Ellipse.perimeter2k_}.\n  self.test(n, elliperim(a, b), x, known=startswith, nl=1)\n./test/testEllipses.py:53: DeprecationWarning: function L{elliperim<pygeodesy.deprecated.functions.elliperim>} has been DEPRECATED on 2026.02.12, use method L{pygeodesy.Ellipse.arc} or property L{pygeodesy.Ellipse.perimeter2k_}.\n  self.test(n, elliperim(a, a), 40075236.597, prec=3)\n./test/testEllipses.py:54: DeprecationWarning: function L{elliperim<pygeodesy.deprecated.functions.elliperim>} has been DEPRECATED on 2026.02.12, use method L{pygeodesy.Ellipse.arc} or property L{pygeodesy.Ellipse.perimeter2k_}.\n  self.test(n, elliperim(a, 0), a * 4, prec=1)\n./test/testEllipses.py:55: DeprecationWarning: function L{elliperim<pygeodesy.deprecated.functions.elliperim>} has been DEPRECATED on 2026.02.12, use method L{pygeodesy.Ellipse.arc} or property L{pygeodesy.Ellipse.perimeter2k_}.\n  self.test(n, elliperim(0, b), b * 4, prec=1)\n./test/testEllipses.py:56: DeprecationWarning: function L{elliperim<pygeodesy.deprecated.functions.elliperim>} has been DEPRECATED on 2026.02.12, use method L{pygeodesy.Ellipse.arc} or property L{pygeodesy.Ellipse.perimeter2k_}.\n  self.test(n, elliperim(0, 0), '0.0')\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.Ellipse from .ellipses by testEllipses.py line 11\n# lazily imported pygeodesy.Ellipsoids from .ellipsoids by testEllipses.py line 11\n# lazily imported pygeodesy.EPS from .constants by testEllipses.py line 11\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by <frozen importlib._bootstrap> line 1412\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by <frozen importlib._bootstrap> line 1412\n# lazily imported pygeodesy.Conformal2Tuple from .triaxials.triaxial5 by <frozen importlib._bootstrap> line 1412\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by classes.py line 21\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by classes.py line 21\n# lazily imported pygeodesy.Conformal2Tuple from .triaxials.triaxial5 by classes.py line 21\n# lazily imported pygeodesy.elliperim from .deprecated.functions by testEllipses.py line 11\n# lazily imported pygeodesy.polar2d from .fmath by testEllipses.py line 11\n\n    testing testEllipses.py 26.03.25 isLazy=3\n\n    test 1 a, b, b/a, m: (6378172.0, 6378102.0, 0.9999890250686246, 2.194974230163016e-05)\n# lazily imported pygeodesy.elliptic by ellipses.py line 176\n    test 2 Ellipse.perimeter2k   : 40075016.685880177\n    test 3 Ellipse.perimeter2k_  : 40075016.685880177\n    test 4 Ellipse.perimeterAGM  : 40075016.685880177\n    test 5 Ellipse.perimeterHGK  : 40075016.685880177\n    test 6 Ellipse.perimeterCR   : 40075016.685880177\n    test 7 Ellipse.perimeterGK   : 40075016.685880177\n    test 8 Ellipse.perimeter2RC  : 40075016.685880177\n    test 9 Ellipse.perimeter2R   : 40075016.685880177\n    test 10 Ellipse.perimeter4Arc3: 40075016.6859892, 6378052.503181054, 6378221.49813043\n\n    test 11 elliperim DEPRECATED  : 40075016.68588018\n    test 12 elliperim DEPRECATED  : 40075236.597\n    test 13 elliperim DEPRECATED  : 25512688.0\n    test 14 elliperim DEPRECATED  : 25512408.0\n    test 15 elliperim DEPRECATED  : 0.0\n\n    test 16 Ellipse.apses2        : (6408054.087945863, 6348289.912054137)\n    test 17 Ellipse.arc           : 5009394.585735\n    test 18 Ellipse.arc           : 5009394.585735\n    test 19 Ellipse.arc           : 30056262.514410\n    test 20 Ellipse.arc           : 30056262.514410\n    test 21 Ellipse.area          : 127801973345104.3\n    test 22 Ellipse.e             : 0.004685055207959684\n    test 23 Ellipse.c             : 29882.087945862633\n    test 24 Ellipse.p             : 6378032.000768245\n    test 25 Ellipse.point 45      : (4510048.672774165, 4509999.1752994815)\n    test 26 Ellipse.polar2d 45    : (6378136.999711906, 45.0)\n    test 27 Ellipse.R1            : 6378148.666666666\n    test 28 Ellipse.R2            : 6378136.999903969\n    test 29 Ellipse.Roc 60        : 6378189.500552184\n    test 30 Ellipse.Roc_(-1, 1)   : 6378137.0004801545\n    test 31 Ellipse.Rrectifying   : 6378137.000048016\n    test 32 Ellipse.sideOf        : -0.9999998432135453\n    test 33 Ellipse.sideOf(c, p)  : 0.0\n    test 34 Ellipse.slope 60      : -29.999727713397277\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by ellipses.py line 800\n# lazily imported pygeodesy.hartzell4 from .triaxials.triaxial5 by bases.py line 411\n    test 35 Ellipse.hartzell4     : (4510048.672774, 4509999.175299, 0.0, 2641910.848113)\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 36 Ellipse.height4       : (4510063.170305, 4509984.677881, 0.0, 2641910.848001)\n    test 37 Ellipse.normal3d      : (0.7071, 0.70711, 0.0)\n    test 38 Ellipse.normal4       : (3189086.0, 5523598.359928, 0.0, 0.0)\n\n    test 39 Ellipse.toRepr(terse=0): Ellipse(name='', a=6378172, b=6378102, c=29882.08794586, e=0.00468506, e2=0.00002195, p=6378032.00076825, area=127801973345104.296875, perimeter2k=40075016.68588018, R2=6378136.99990397)\n    test 40 Ellipse.toEllipsoid: name='', a=6378172, f=0.00001097, f_=91116.74285714, b=6378102\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by ellipses.py line 800\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 41 Ellipse.toTriaxial_: name='_', a=6378172, b=6378102, c=0, e2ab=0.00002195, e2bc=1, e2ac=1\n\n    test 63 Ellipse.sideOfs       : 0\n    test 64 Ellipse.sideOf point  : 0.0\n    test 65 Ellipse.cw vs ccw     : 21\n    test 66 Ellipse.cw vs ccw'd   : True\n    test 91 Ellipse.slopes        : 0\n\n    test 92 a, b, b/a, m: (6378172.0, 5740354.8, 0.9, 0.18999999999999995)\n    test 93 Ellipse.perimeter2k   : 38097844.622237749\n    test 94 Ellipse.perimeter2k_  : 38097844.622237749\n    test 95 Ellipse.perimeterAGM  : 38097844.622237757\n    test 96 Ellipse.perimeterHGK  : 38097844.622237757\n    test 97 Ellipse.perimeterCR   : 38097844.622237757\n    test 98 Ellipse.perimeterGK   : 38097844.622237757\n    test 99 Ellipse.perimeter2RC  : 38097844.622237757\n    test 100 Ellipse.perimeter2R   : 38097844.622237757\n    test 101 Ellipse.perimeter4Arc3: 38107337.959388405, 5343198.019022138, 6890325.8899754025\n\n    test 102 elliperim DEPRECATED  : 38097844.62223775\n    test 103 elliperim DEPRECATED  : 40075236.597\n    test 104 elliperim DEPRECATED  : 25512688.0\n    test 105 elliperim DEPRECATED  : 22961419.2\n    test 106 elliperim DEPRECATED  : 0.0\n\n    test 107 Ellipse.apses2        : (9158352.71925207, 3597991.28074793)\n    test 108 Ellipse.arc           : 4921611.270994\n    test 109 Ellipse.arc           : 4921611.270994\n    test 110 Ellipse.arc           : 28573383.466678\n    test 111 Ellipse.arc           : 28573383.466678\n    test 112 Ellipse.area          : 115023038380546.69\n    test 113 Ellipse.e             : 0.4358898943540673\n    test 114 Ellipse.c             : 2780180.71925207\n    test 115 Ellipse.p             : 5166319.32\n    test 116 Ellipse.point 45      : (4510048.672774165, 4059043.805496748)\n    test 117 Ellipse.polar2d 45    : (6034126.999973108, 45.0)\n    test 118 Ellipse.R1            : 6165566.266666667\n    test 119 Ellipse.R2            : 6050865.248493441\n    test 120 Ellipse.Roc 60        : 6587963.642879878\n    test 121 Ellipse.Roc_(-1, 1)   : 6101359.094016017\n    test 122 Ellipse.Rrectifying   : 6063460.29277612\n    test 123 Ellipse.sideOf        : -0.9999998257947401\n    test 124 Ellipse.sideOf(c, p)  : 0.0\n    test 125 Ellipse.slope 60      : -27.457076095938262\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by ellipses.py line 800\n# lazily imported pygeodesy.hartzell4 from .triaxials.triaxial5 by bases.py line 411\n    test 126 Ellipse.hartzell4     : (4510048.672774, 4059043.805497, 0.0, 2513302.891806)\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 127 Ellipse.height4       : (4646979.930894, 3931944.941451, 0.0, 2503472.028331)\n    test 128 Ellipse.normal3d      : (0.66896, 0.74329, 0.0)\n    test 129 Ellipse.normal4       : (3189086.0, 4971293.083536, 0.0, 0.0)\n\n    test 130 Ellipse.toRepr(terse=0): Ellipse(name='', a=6378172, b=5740354.8, c=2780180.71925207, e=0.43588989, e2=0.19, p=5166319.32, area=115023038380546.6875, perimeter2k=38097844.62223775, R2=6050865.24849344)\n    test 131 Ellipse.toEllipsoid: name='', a=6378172, f=0.1, f_=10, b=5740354.8\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by ellipses.py line 800\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 132 Ellipse.toTriaxial_: name='_', a=6378172, b=5740354.8, c=0, e2ab=0.19, e2bc=1, e2ac=1\n\n    test 154 Ellipse.sideOfs       : 0\n    test 155 Ellipse.sideOf point  : 0.0\n    test 156 Ellipse.cw vs ccw     : 21\n    test 157 Ellipse.cw vs ccw'd   : True\n    test 182 Ellipse.slopes        : 0\n\n    test 183 a, b, b/a, m: (6378172.0, 3189086.0, 0.5, 0.75)\n    test 184 Ellipse.perimeter2k   : 30897294.581873503\n    test 185 Ellipse.perimeter2k_  : 30897294.581873503\n    test 186 Ellipse.perimeterAGM  : 30897294.581873506\n    test 187 Ellipse.perimeterHGK  : 30897294.581873506\n    test 188 Ellipse.perimeterCR   : 30897294.581819803\n    test 189 Ellipse.perimeterGK   : 30897294.581743788\n    test 190 Ellipse.perimeter2RC  : 30897294.567785483\n    test 191 Ellipse.perimeter2R   : 30897294.567785427\n    test 192 Ellipse.perimeter4Arc3: 31157545.70727452, 2203604.2294767764, 11538221.541046448\n\n    test 193 elliperim DEPRECATED  : 30897294.581873503\n    test 194 elliperim DEPRECATED  : 40075236.597\n    test 195 elliperim DEPRECATED  : 25512688.0\n    test 196 elliperim DEPRECATED  : 12756344.0\n    test 197 elliperim DEPRECATED  : 0.0\n\n    test 198 Ellipse.apses2        : (11901830.9817066, 854513.0182933994)\n    test 199 Ellipse.arc           : 4644738.918062\n    test 200 Ellipse.arc           : 4644738.918062\n    test 201 Ellipse.arc           : 23172970.936405\n    test 202 Ellipse.arc           : 23172970.936405\n    test 203 Ellipse.area          : 63901687989192.6\n    test 204 Ellipse.e             : 0.8660254037844386\n    test 205 Ellipse.c             : 5523658.981706601\n    test 206 Ellipse.p             : 1594543.0\n    test 207 Ellipse.point 45      : (4510048.672774165, 2255024.3363870825)\n    test 208 Ellipse.polar2d 45    : (4033910.165662294, 45.0)\n    test 209 Ellipse.R1            : 5315143.333333333\n    test 210 Ellipse.R2            : 4510048.672774164\n    test 211 Ellipse.Roc 60        : 9342460.639577284\n    test 212 Ellipse.Roc_(-1, 1)   : 6302984.633847336\n    test 213 Ellipse.Rrectifying   : 4917457.1608716035\n    test 214 Ellipse.sideOf        : -0.9999996864305322\n    test 215 Ellipse.sideOf(c, p)  : 0.0\n    test 216 Ellipse.slope 60      : -16.102113751986025\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by ellipses.py line 800\n# lazily imported pygeodesy.hartzell4 from .triaxials.triaxial5 by bases.py line 411\n    test 217 Ellipse.hartzell4     : (4510048.672774, 2255024.336387, 0.0, 2088625.375015)\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 218 Ellipse.height4       : (5309727.884418, 1766908.87251, 0.0, 1778808.761525)\n    test 219 Ellipse.normal3d      : (0.44721, 0.89443, 0.0)\n    test 220 Ellipse.normal4       : (3189086.0, 2761829.490853, 0.0, 0.0)\n\n    test 221 Ellipse.toRepr(terse=0): Ellipse(name='', a=6378172, b=3189086, c=5523658.9817066, e=0.8660254, e2=0.75, p=1594543, area=63901687989192.6015625, perimeter2k=30897294.5818735, R2=4510048.67277416)\n    test 222 Ellipse.toEllipsoid: name='', a=6378172, f=0.5, f_=2, b=3189086\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by ellipses.py line 800\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 223 Ellipse.toTriaxial_: name='_', a=6378172, b=3189086, c=0, e2ab=0.75, e2bc=1, e2ac=1\n\n    test 245 Ellipse.sideOfs       : 0\n    test 246 Ellipse.sideOf point  : 0.0\n    test 247 Ellipse.cw vs ccw     : 21\n    test 248 Ellipse.cw vs ccw'd   : True\n    test 273 Ellipse.slopes        : 0\n\n    test 274 a, b, b/a, m: (6378172.0, 1594543.0, 0.25, 0.9375)\n    test 275 Ellipse.perimeter2k   : 27357324.785247806\n    test 276 Ellipse.perimeter2k_  : 27357324.785247806\n    test 277 Ellipse.perimeterAGM  : 27357324.785247806\n    test 278 Ellipse.perimeterHGK  : 27357324.785247806\n    test 279 Ellipse.perimeterCR   : 27357324.462550402\n    test 280 Ellipse.perimeterGK   : 27357323.163297798\n    test 281 Ellipse.perimeter2RC  : 27357318.008817654\n    test 282 Ellipse.perimeter2R   : 27357317.948020011\n    test 283 Ellipse.perimeter4Arc3: 27839816.212722465, 922977.919904027, 23415319.320383895\n\n    test 284 elliperim DEPRECATED  : 27357324.785247806\n    test 285 elliperim DEPRECATED  : 40075236.597\n    test 286 elliperim DEPRECATED  : 25512688.0\n    test 287 elliperim DEPRECATED  : 6378172.0\n    test 288 elliperim DEPRECATED  : 0.0\n\n    test 289 Ellipse.apses2        : (12553810.483811613, 202533.51618838683)\n    test 290 Ellipse.arc           : 4544501.990341\n    test 291 Ellipse.arc           : 4544501.990341\n    test 292 Ellipse.arc           : 20517993.588936\n    test 293 Ellipse.arc           : 20517993.588936\n    test 294 Ellipse.area          : 31950843994596.3\n    test 295 Ellipse.e             : 0.9682458365518543\n    test 296 Ellipse.c             : 6175638.483811613\n    test 297 Ellipse.p             : 398635.75\n    test 298 Ellipse.point 45      : (4510048.672774165, 1127512.1681935412)\n    test 299 Ellipse.polar2d 45    : (2187694.9475911316, 45.0)\n    test 300 Ellipse.R1            : 4783629.0\n    test 301 Ellipse.R2            : 3189086.0\n    test 302 Ellipse.Roc 60        : 17091507.78125\n    test 303 Ellipse.Roc_(-1, 1)   : 9878809.997716203\n    test 304 Ellipse.Rrectifying   : 4354053.469342613\n    test 305 Ellipse.sideOf        : -0.9999993728610642\n    test 306 Ellipse.sideOf(c, p)  : 0.0\n    test 307 Ellipse.slope 60      : -8.213210701738216\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by ellipses.py line 800\n# lazily imported pygeodesy.hartzell4 from .triaxials.triaxial5 by bases.py line 411\n    test 308 Ellipse.hartzell4     : (4510048.672774, 1127512.168194, 0.0, 1925617.449958)\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 309 Ellipse.height4       : (5837520.368165, 642477.334856, 0.0, 1094866.757991)\n    test 310 Ellipse.normal3d      : (0.24254, 0.97014, 0.0)\n    test 311 Ellipse.normal4       : (3189086.0, 1380914.745427, 0.0, 0.0)\n\n    test 312 Ellipse.toRepr(terse=0): Ellipse(name='', a=6378172, b=1594543, c=6175638.48381161, e=0.96824584, e2=0.9375, p=398635.75, area=31950843994596.30078125, perimeter2k=27357324.78524781, R2=3189086)\n    test 313 Ellipse.toEllipsoid: name='', a=6378172, f=0.75, f_=1.33333333, b=1594543\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by ellipses.py line 800\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 314 Ellipse.toTriaxial_: name='_', a=6378172, b=1594543, c=0, e2ab=0.9375, e2bc=1, e2ac=1\n\n    test 336 Ellipse.sideOfs       : 0\n    test 337 Ellipse.sideOf point  : 0.0\n    test 338 Ellipse.cw vs ccw     : 21\n    test 339 Ellipse.cw vs ccw'd   : True\n    test 364 Ellipse.slopes        : 0\n\n    test 365 a, b, b/a, m: (6378172.0, 797271.5, 0.125, 0.984375)\n    test 366 Ellipse.perimeter2k   : 26106620.666072767\n    test 367 Ellipse.perimeter2k_  : 26106620.666072767\n    test 368 Ellipse.perimeterAGM  : 26106620.666072764\n    test 369 Ellipse.perimeterHGK  : 26106620.666072760\n    test 370 Ellipse.perimeterCR   : 26106596.269819759\n    test 371 Ellipse.perimeterGK   : 26106498.674043797\n    test 372 Ellipse.perimeter2RC  : 26106496.429202825\n    test 373 Ellipse.perimeter2R   : 26106468.693959467\n    test 374 Ellipse.perimeter4Arc3: 26548502.51849537, 426749.3250869843, 48408652.89930413\n\n    test 375 elliperim DEPRECATED  : 26106620.666072767\n    test 376 elliperim DEPRECATED  : 40075236.597\n    test 377 elliperim DEPRECATED  : 25512688.0\n    test 378 elliperim DEPRECATED  : 3189086.0\n    test 379 elliperim DEPRECATED  : 0.0\n\n    test 380 Ellipse.apses2        : (12706318.349198299, 50025.65080170147)\n    test 381 Ellipse.arc           : 4518714.450822\n    test 382 Ellipse.arc           : 4518714.450822\n    test 383 Ellipse.arc           : 19579965.499555\n    test 384 Ellipse.arc           : 19579965.499555\n    test 385 Ellipse.area          : 15975421997298.15\n    test 386 Ellipse.e             : 0.9921567416492215\n    test 387 Ellipse.c             : 6328146.3491982985\n    test 388 Ellipse.p             : 99658.9375\n    test 389 Ellipse.point 45      : (4510048.672774165, 563756.0840967706)\n    test 390 Ellipse.polar2d 45    : (1118805.3802239103, 45.0)\n    test 391 Ellipse.R1            : 4517871.833333333\n    test 392 Ellipse.R2            : 2255024.336387082\n    test 393 Ellipse.Roc 60        : 33401212.250312246\n    test 394 Ellipse.Roc_(-1, 1)   : 18464659.107211024\n    test 395 Ellipse.Rrectifying   : 4154997.72643051\n    test 396 Ellipse.sideOf        : -0.9999987457221285\n    test 397 Ellipse.sideOf(c, p)  : 0.0\n    test 398 Ellipse.slope 60      : -4.127810304512707\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by ellipses.py line 800\n# lazily imported pygeodesy.hartzell4 from .triaxials.triaxial5 by bases.py line 411\n    test 399 Ellipse.hartzell4     : (4510048.672774, 563756.084097, 0.0, 1882661.471213)\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 400 Ellipse.height4       : (6128382.04862, 220935.918585, 0.0, 628138.298638)\n    test 401 Ellipse.normal3d      : (0.12403, 0.99228, 0.0)\n    test 402 Ellipse.normal4       : (3189086.0, 690457.372713, 0.0, 0.0)\n\n    test 403 Ellipse.toRepr(terse=0): Ellipse(name='', a=6378172, b=797271.5, c=6328146.3491983, e=0.99215674, e2=0.984375, p=99658.9375, area=15975421997298.15039062, perimeter2k=26106620.66607277, R2=2255024.33638708)\n    test 404 Ellipse.toEllipsoid: name='', a=6378172, f=0.875, f_=1.14285714, b=797271.5\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by ellipses.py line 800\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 405 Ellipse.toTriaxial_: name='_', a=6378172, b=797271.5, c=0, e2ab=0.984375, e2bc=1, e2ac=1\n\n    test 427 Ellipse.sideOfs       : 0\n    test 428 Ellipse.sideOf point  : 0.0\n    test 429 Ellipse.cw vs ccw     : 21\n    test 430 Ellipse.cw vs ccw'd   : True\n    test 455 Ellipse.slopes        : 0\n\n    test 456 a, b, b/a, m: (6378172.0, 2.220446049250313e-16, 3.4813204304467065e-23, 1.0)\n    test 457 Ellipse.perimeter2k   : 25512688.000000000\n    test 458 Ellipse.perimeter2k_  : 25512688.000000000\n    test 459 Ellipse.perimeterAGM  : 25512688.000000000\n    test 460 Ellipse.perimeterHGK  : 25512688.000000000\n    test 461 Ellipse.perimeterCR   : 25512688.000000000\n    test 462 Ellipse.perimeterGK   : 25512688.000000000\n    test 463 Ellipse.perimeter2RC  : 25512688.000000000\n    test 464 Ellipse.perimeter2R   : 25512688.000000000\n    test 465 Ellipse.perimeter4Arc3: 25512688.0, 0.0, 4503599627370496.0\n\n    test 466 elliperim DEPRECATED  : 25512688.0\n    test 467 elliperim DEPRECATED  : 40075236.597\n    test 468 elliperim DEPRECATED  : 25512688.0\n    test 469 elliperim DEPRECATED  : 0.0\n    test 470 elliperim DEPRECATED  : 0.0\n\n    test 471 Ellipse.apses2        : (12756344.0, 0.0)\n    test 472 Ellipse.arc           : 3189086.000000\n    test 473 Ellipse.arc           : 3189086.000000\n    test 474 Ellipse.arc           : 19134516.000000\n    test 475 Ellipse.arc           : 19134516.000000\n    test 476 Ellipse.area          : 4.449245038736142e-09\n    test 477 Ellipse.e             : 1.0\n    test 478 Ellipse.c             : 6378172.0\n    test 479 Ellipse.p             : 7.730084195959789e-39\n    test 480 Ellipse.point 45      : (4510048.672774165, 1.5700924586837752e-16)\n    test 481 Ellipse.polar2d 45    : (3.14018491736755e-16, 45.0)\n    test 482 Ellipse.R1            : 4252114.666666666\n    test 483 Ellipse.R2            : 3.763294676057001e-05\n    test 484 Ellipse.Roc 60        : 1.1899922225051757e+29\n    test 485 Ellipse.Roc_(-1, 1)   : 6.477497206707077e+28\n    test 486 Ellipse.Rrectifying   : 4060470.406761281\n    test 487 Ellipse.sideOf        : 4503599627370494.5\n    test 488 Ellipse.sideOf(c, p)  : 0.0\n    test 489 Ellipse.slope 60      : 0.0\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by ellipses.py line 800\n# lazily imported pygeodesy.hartzell4 from .triaxials.triaxial5 by bases.py line 411\n    test 490 Ellipse.hartzell4     : (4510048.672774, 0.0, 0.0, 1868123.327226)\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 491 Ellipse.height4       : (6378172.0, 0.0, 0.0, 0.0)\n    test 492 Ellipse.normal3d      : (0.0, 1.0, 0.0)\n    test 493 Ellipse.normal4       : (3189086.0, 0.0, 0.0, 0.0)\n\n    test 494 Ellipse.toRepr(terse=0): Ellipse(name='', a=6378172, b=0, c=6378172, e=1, e2=1, p=0, area=0, perimeter2k=25512688, R2=0.00003763)\n    test 495 Ellipse.toEllipsoid: name='', a=6378172, f=0, f_=0, b=6378172\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by ellipses.py line 800\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 496 Ellipse.toTriaxial_: name='_', a=6378172, b=0, c=0, e2ab=1, e2bc=0, e2ac=1\n\n    test 497 Ellipse.isCircular    : False\n    test 498 Ellipse.isFlat        : True\n    test 499 Ellipse.isOblate      : True\n    test 500 Ellipse.isProlate     : False\n\n    test 501 Airy1830.polarimeter/2k: 40004504.322866\n    test 502 AiryModified.polarimeter/2k: 40003104.213633\n    test 503 ATS1977.polarimeter/2k: 40007850.321623\n    test 504 Australia1966.polarimeter/2k: 40008005.562578\n    test 505 Bessel1841.polarimeter/2k: 40003423.057729\n    test 506 BesselModified.polarimeter/2k: 40004018.103739\n    test 507 CGCS2000.polarimeter/2k: 40007862.916922\n    test 508 Clarke1866.polarimeter/2k: 40007552.171931\n    test 509 Clarke1880.polarimeter/2k: 40007470.206590\n    test 510 Clarke1880IGN.polarimeter/2k: 40007470.788996\n    test 511 Clarke1880Mod.polarimeter/2k: 40007470.510580\n    test 512 CPM1799.polarimeter/2k: 40000070.108863\n    test 513 Delambre1810.polarimeter/2k: 39999995.935832\n    test 514 Engelis1985.polarimeter/2k: 40007856.817888\n    test 515 Everest1969.polarimeter/2k: 40003153.246198\n    test 516 Everest1975.polarimeter/2k: 40003175.124904\n    test 517 Fisher1968.polarimeter/2k: 40007954.087654\n    test 518 GEM10C.polarimeter/2k: 40007862.917259\n    test 519 GPES.polarimeter/2k: 40075004.119208\n    test 520 GRS67.polarimeter/2k: 40008004.925042\n    test 521 GRS80.polarimeter/2k: 40007862.916922\n    test 522 Helmert1906.polarimeter/2k: 40008267.720558\n    test 523 IAU76.polarimeter/2k: 40007881.684906\n    test 524 IERS1989.polarimeter/2k: 40007856.594279\n    test 525 IERS1992TOPEX.polarimeter/2k: 40007858.526391\n    test 526 IERS2003.polarimeter/2k: 40007860.227339\n    test 527 Intl1924.polarimeter/2k: 40009153.195958\n    test 528 Intl1967.polarimeter/2k: 40007989.794372\n    test 529 Krassovski1940.polarimeter/2k: 40008549.990171\n    test 530 Krassowsky1940.polarimeter/2k: 40008549.990171\n    test 531 Maupertuis1738.polarimeter/2k: 40090266.793877\n    test 532 Mercury1960.polarimeter/2k: 40008054.450184\n    test 533 Mercury1968Mod.polarimeter/2k: 40007954.087654\n    test 534 NWL1965.polarimeter/2k: 40007911.472733\n    test 535 OSU86F.polarimeter/2k: 40007857.899134\n    test 536 OSU91A.polarimeter/2k: 40007858.526400\n    test 537 Plessis1817.polarimeter/2k: 39999996.440146\n    test 538 PZ90.polarimeter/2k: 40007856.783172\n    test 539 SGS85.polarimeter/2k: 40007856.594279\n    test 540 SoAmerican1969.polarimeter/2k: 40008005.562578\n    test 541 Sphere.polarimeter/2k: 40030228.704467\n    test 542 SphereAuthalic.polarimeter/2k: 40030173.592041\n    test 543 SpherePopular.polarimeter/2k: 40075016.685578\n    test 544 Struve1860.polarimeter/2k: 40008071.346229\n    test 545 WGS60.polarimeter/2k: 40008048.177526\n    test 546 WGS66.polarimeter/2k: 40007911.472733\n    test 547 WGS72.polarimeter/2k: 40007850.996794\n    test 548 WGS84.polarimeter/2k: 40007862.917251\n    test 549 WGS84_NGS.polarimeter/2k: 40007862.916922\n\n    30 of 549 testEllipses.py tests (5.5%) FAILED, incl. 30 DeprecationWarnings (pygeodesy 26.3.26 Python 3.12.10 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 2.1.0 scipy 1.14.1 Math 2 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 isLazy 3 -W  default) 390.774 ms\nrunning /usr/local/bin/p....n3.12 -W default ~/PyGeodesy/test/testEllipsoidal.py\n<string>:1: DeprecationWarning: method L{__matmul__<pygeodesy.trf.RefFrame.__matmul__>} has been DEPRECATED on 2024.02.16, use method C{B{point}.toRefFrame}.\n./pygeodesy/ellipsoidalBase.py:443: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  _ = self.datum.ellipsoid.geodesic\n./pygeodesy/azimuthal.py:636: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return self.datum.ellipsoid.geodesic\n./test/testLatLon.py:276: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.ellipsoidalNvector.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', p.cosineAndoyerLambertTo(q), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:277: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.ellipsoidalNvector.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', q.cosineAndoyerLambertTo(p), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:279: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.ellipsoidalNvector.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', p.cosineForsytheAndoyerLambertTo(q), '124801.098' if Sph else '125205.965', fmt='%.3f')\n./test/testLatLon.py:280: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.ellipsoidalNvector.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', q.cosineForsytheAndoyerLambertTo(p), '124801.098' if Sph else '125205.965', fmt='%.3f')\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.Aer from .ltpTuples by testLatLon.py line 12\n# lazily imported pygeodesy.Enu from .ltpTuples by testLatLon.py line 12\n# lazily imported pygeodesy.F_D from .dms by testLatLon.py line 12\n# lazily imported pygeodesy.F_DM from .dms by testLatLon.py line 12\n# lazily imported pygeodesy.F_DMS from .dms by testLatLon.py line 12\n# lazily imported pygeodesy.F_RAD from .dms by testLatLon.py line 12\n# lazily imported pygeodesy.R_M from .constants by testLatLon.py line 12\n# lazily imported pygeodesy.R_NM from .constants by testLatLon.py line 12\n# lazily imported pygeodesy.degrees from .utily by testLatLon.py line 12\n# lazily imported pygeodesy.fstr from .streprs by testLatLon.py line 12\n# lazily imported pygeodesy.isclockwise from .points by testLatLon.py line 12\n# lazily imported pygeodesy.isconvex from .points by testLatLon.py line 12\n# lazily imported pygeodesy.isenclosedBy from .points by testLatLon.py line 12\n# lazily imported pygeodesy.isnear0 from .constants by testLatLon.py line 12\n# lazily imported pygeodesy.ispolar from .points by testLatLon.py line 12\n# lazily imported pygeodesy.Local9Tuple from .ltpTuples by testLatLon.py line 12\n# lazily imported pygeodesy.Ltp from .ltp by testLatLon.py line 12\n# lazily imported pygeodesy.m2km from .utily by testLatLon.py line 12\n# lazily imported pygeodesy.m2NM from .utily by testLatLon.py line 12\n# lazily imported pygeodesy.Ned from .ltpTuples by testLatLon.py line 12\n# lazily imported pygeodesy.XyzLocal from .ltpTuples by testLatLon.py line 12\n# lazily imported pygeodesy.IntersectionError from .errors by testLatLon.py line 12\n# lazily imported pygeodesy.VincentyError from .ellipsoidalVincenty by testLatLon.py line 12\n# lazily imported pygeodesy.EPS from .constants by testVectorial.py line 11\n# lazily imported pygeodesy.EPS4 from .constants by testVectorial.py line 11\n# lazily imported pygeodesy.NEG0 from .constants by testVectorial.py line 11\n# lazily imported pygeodesy.circin6 from .vector2d by testVectorial.py line 11\n# lazily imported pygeodesy.circum3 from .vector2d by testVectorial.py line 11\n# lazily imported pygeodesy.circum4_ from .vector2d by testVectorial.py line 11\n# lazily imported pygeodesy.intersection3d3 from .vector3d by testVectorial.py line 11\n# lazily imported pygeodesy.meeus2 from .vector2d by testVectorial.py line 11\n# lazily imported pygeodesy.radii11 from .vector2d by testVectorial.py line 11\n# lazily imported pygeodesy.sincos2d from .utily by testVectorial.py line 11\n# lazily imported pygeodesy.sphericalNvector by testVectorial.py line 11\n# lazily imported pygeodesy.soddy4 from .vector2d by testVectorial.py line 11\n# lazily imported pygeodesy.trilaterate2d2 from .vector2d by testVectorial.py line 11\n# lazily imported pygeodesy.trilaterate3d2 from .vector3d by testVectorial.py line 11\n# lazily imported pygeodesy.Vector3d from .vector3d by testVectorial.py line 11\n# lazily imported pygeodesy.VectorError from .errors by testVectorial.py line 11\n# lazily imported pygeodesy.F_D__ from .dms by testEllipsoidal.py line 13\n# lazily imported pygeodesy.bearingDMS from .dms by testEllipsoidal.py line 13\n# lazily imported pygeodesy.compassDMS from .dms by testEllipsoidal.py line 13\n# lazily imported pygeodesy.Datums from .datums by testEllipsoidal.py line 13\n# lazily imported pygeodesy.latlonDMS from .dms by testEllipsoidal.py line 13\n# lazily imported pygeodesy.latlonDMS_ from .dms by testEllipsoidal.py line 13\n# lazily imported pygeodesy.m2SM from .utily by testEllipsoidal.py line 13\n# lazily imported pygeodesy.PI from .constants by testEllipsoidal.py line 13\n# lazily imported pygeodesy.PI_4 from .constants by testEllipsoidal.py line 13\n# lazily imported pygeodesy.RefFrames from .trf by testEllipsoidal.py line 13\n# lazily imported pygeodesy.wrap360 from .utily by testEllipsoidal.py line 13\n# lazily imported pygeodesy.ellipsoidalExact by testEllipsoidal.py line 753\n# lazily imported pygeodesy.ellipsoidalNvector by testEllipsoidal.py line 753\n# lazily imported pygeodesy.Equidistant from .azimuthal by testEllipsoidal.py line 753\n# lazily imported pygeodesy.EquidistantExact from .azimuthal by testEllipsoidal.py line 753\n# lazily imported pygeodesy.EquidistantGeodSolve from .azimuthal by testEllipsoidal.py line 753\n# lazily imported pygeodesy.EquidistantKarney from .azimuthal by testEllipsoidal.py line 753\n\n    testing testEllipsoidal.py 24.11.02 isLazy=3\n\n    testEllipsoidal(pygeodesy.ellipsoidalNvector, 25.05.12)\n    test 1 isEllipsoidal: True\n    test 2 isSpherical: False\n    test 3 isEllipsoidal: True\n    test 4 isSpherical: False\n    test 5 toDatum: 51.477284°N, 000.00002°E, -45.91m\n    test 6 toDatum: 51.4773°N, 000.0°E, -45.91m\n    test 7 toDatum: 51.4778°N, 000.0016°W\n    test 8 __matmul__: 51.477284°N, 000.00002°E, -45.91m\n    test 9 __matmul__: 51.477284°N, 000.00002°E, -45.90m\n    test 10 parse: 51.477284°N, 000.00002°E, -45.91m\n    test 11 reframe: None\n    test 12 toCartesian: [3980581.21, -111.159, 4966824.522]\n# lazily imported pygeodesy.css by ellipsoidalBase.py line 805\n# lazily imported pygeodesy.geodesicw by ellipsoids.py line 1074\n    test 13 toCss: -111.158797 5705242.333679\n    test 14 toCss: -111.158797 5705242.333679\n    test 15 toEcef: 3980581.21, -111.159, 4966824.522\n# lazily imported pygeodesy.etm by ellipsoidalBase.py line 452\n# lazily imported pygeodesy.elliptic by etm.py line 354\n    test 16 toEtm: 30 N 916396 5720041\n    test 17 toEtm: 30 N 916396 5720041\n# lazily imported pygeodesy.lcc by ellipsoidalBase.py line 851\n    test 18 toLcc: 5639901 4612638\n    test 19 toLcc: 5639901 4612638\n# lazily imported pygeodesy.osgr by ellipsoidalBase.py line 879\n    test 20 toOsgr: TQ 38876 77320\n    test 21 toOsgr: TQ 38876 77320\n# lazily imported pygeodesy.ktm by osgr.py line 108\n    test 22 toOsgrTM: TQ 38876 77320\n    test 23 toUtmUps: 30 N 708207 5707224\n    test 24 toUtm: 30 N 708207 5707224\n    test 25 toUtm: 30 N 708207 5707224\n# lazily imported pygeodesy.webmercator by latlonBase.py line 1471\n    test 26 toWm: -178.111 6672799.209\n    test 27 toWm: -178.111 6672799.209\n# lazily imported pygeodesy.elevations by ellipsoidalBase.py line 353\n    test 28 elevation2: None\n    test 29 geoidHeight2: None\n    test 30 toUtmUps: 30 N 708207 5707224\n    test 31 toUtm: 30 N 708207 5707224\n    test 32 toUtm: 30 N 708207 5707224\n# imported pygeodesy.basics into errors.py line 443\n# lazily imported pygeodesy.ups by ellipsoidalBase.py line 1086\n    test 33 toUtmUps: 00 N 2000000 1333272\n    test 34 toUps: 00 N 2000000 1333272\n    test 35 toUps: 00 N 0 -666728\n    test 36 toUps: 00 N 2000000 1555732\n    test 37 toUtm: 31 N 459200 9217519\n# imported pygeodesy.formy into latlonBase.py line 756\n    test 38 nearestOn: 32.81°N, 031.42°E\n    test 39 toNVector: (0.6228, 0.0, 0.7824, +0.24)\n    test 40 toNvector: True\n    test 41 toCartesian: [3980581, 97, 4966825]\n    test 42 toCartesian: True\n    test 43 toVector3D: (0.6228, 0.0, 0.7824)\n    test 44 Nvector: (0.5, 0.5, 0.7071)\n    test 45 toVector3D: (0.5, 0.5, 0.7071)\n./pygeodesy/basics.py:637: DeprecationWarning: Conversion of an array with ndim > 0 to a scalar is deprecated, and will error in future. Ensure you extract a single element from your array before performing this operation. (Deprecated NumPy 1.25.)\n  return tuple(map(fun, *xs, **strict) if strict else map(fun, *xs))\n./pygeodesy/ellipsoidalNvector.py:247: DeprecationWarning: Property_RO L{ned<pygeodesy.ltpTuples.Ned.ned>} has been DEPRECATED, use property C{ned4}.\n  dn = delta.ned[:3]  # XXX Ned4Tuple.to3Tuple\n./pygeodesy/deprecated/classes.py:33: DeprecationWarning: class L{Ned3Tuple<pygeodesy.deprecated.classes.Ned3Tuple>} has been DEPRECATED, use class L{Ned4Tuple}, ignoring item C{ltp}.\n  deprecated_class(cls)\n./test/testVectorial.py:128: DeprecationWarning: function L{nearestOn<pygeodesy.vector2d.nearestOn>} has been DEPRECATED on 2025.05.06, use L{pygeodesy.nearestOn<pygeodesy.vector3d.nearestOn>}.\n  t = vector2d.nearestOn(Nvector(0, 0, 0), p1, p2)\n    test 46 philamheight: 0.7854, 0.7854, 0.0\n    test 47 latlonheight: 45.0, 45.0, 0.0\n    test 48 xyzh: 0.5, 0.5, 0.7, 0.0\n    test 49 toCartesian: [3194434.411, 3194434.411, 4487326.82]\n    test 50 toCartesian: True\n    test 51 toLatLon: 45.0°N, 045.0°E\n    test 52 toLatLon: True\n    test 53 Nvector: (0.51, 0.512, 0.707, +1.00)\n    test 54 sat: 82.545852°N, 059.719736°E, -6353121.71m\n    test 55 dop: 51.998889°N, 004.373333°E, +134.64m\n    test 56 distance: 3806542.943645768  FAILED, KNOWN, expected 3806542.943647\n\n    32 tests skipped (32): insersecant2\n\n    testLatLon(pygeodesy.ellipsoidalNvector, 25.05.12)\n    test 57 isEllipsoidal: True\n    test 58 isSpherical: False\n    test 59 lat/lonDMS: 52.20472°N, 000.14056°E\n    test 60 lat/lonDMS F_DM: 52°12.283′N, 000°08.434′E\n    test 61 lat/lonDMS F_DM: 52°12.2832′N, 000°08.4336′E\n    test 62 lat/lonDMS F_DMS: 52°12′17″N, 000°08′26″E\n    test 63 lat/lonDMS F_DMS: 52°12′17.0″N, 000°08′26.0″E\n    test 64 lat/lonDMS F_RAD: 0.911144N, 0.002453E\n    test 65 isequalTo: True\n    test 66 isequalTo: True\n    test 67 latlon2: 52.20472, 0.14056\n    test 68 latlon2: 52.2047, 0.1406\n    test 69 latlon2: 52.205, 0.141\n    test 70 latlon2: 52.2, 0.14\n    test 71 latlon2: 52.2, 0.1\n    test 72 latlon2: 52.0, 0.0\n    test 73 chordTo: 12029263.15\n    test 74 chordTo: 12029049.69\n    test 75 copy: True\n    test 76 __eq__: True\n    test 77 __ne__: False\n# lazily imported pygeodesy.angles by units.py line 633\n    test 78 equirectangularTo: 404329.56\n    test 79 distanceTo: 404279.720589\n    test 80 distanceTo: 404279.720589\n    test 81 distanceTo: 3972863\n    test 82 distanceTo: 18013602.92\n    test 83 distanceTo: 20015114.35  FAILED, KNOWN, expected 20003931.46\n    test 84 intermediateTo: 51.372294°N, 000.707192°E\n    test 85 intermediateTo: True\n    test 86 intermediateTo: 404279.721\n    test 87 intermediateTo+5: 35.560239°N, 008.833512°E\n    test 88 intermediateTo+5: 4.885\n    test 89 intermediateTo-4: 64.570387°N, 013.156352°W\n    test 90 intermediateTo-4: 3.885\n    test 91 intermediateTo-h: 125.000\n    test 92 midpointTo: 50.536327°N, 001.274614°E\n# lazily imported pygeodesy.booleans by iters.py line 76\n    test 93 neareston6: (LatLon(45°00′00.0″N, 001°00′00.0″E), 4755443.4294, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E))\n    test 94 neareston6: (LatLon(45°30′03.94″N, 002°00′00.0″E), 39078.729285, 1.501072, 2, LatLon(45°00′00.0″N, 002°00′00.0″E), LatLon(46°00′00.0″N, 002°00′00.0″E))\n    test 95 chordTo: 125203.963\n    test 96 cosineAndoyerLambertTo: 125205.962\n    test 97 cosineAndoyerLambertTo: 125205.962\n    test 98 cosineForsyheAndoyerLambertTo: 125205.965\n    test 99 cosineForsyheAndoyerLambertTo: 125205.965\n    test 100 cosineLawTo: 124801.098\n    test 101 cosineLawTo: 124801.098\n    test 102 equirectangularTo: 124804.754\n    test 103 equirectangularTo: 124804.754\n    test 104 euclideanTo: 130015.089\n    test 105 euclideanTo: 130015.089\n    test 106 flatLocalTo: 125209.633\n    test 107 flatLocalTo: 125209.633\n    test 108 flatPolarTo: 133663.257\n    test 109 flatPolarTo: 133663.257\n    test 110 hartzell: 53.3206°N, 001.7297°W\n# lazily imported pygeodesy.triaxials by lazily.py line 529\n# lazily imported pygeodesy.Triaxial from .triaxials.triaxial5 by ellipsoids.py line 1905\n    test 111 hartzell: 53.349541°N, 001.7297°W\n    test 112 height4: 0.0\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by cartesianBase.py line 364\n    test 113 height4: (3820333.9, -115367.0, 5097204.4, -6584.9)\n    test 114 height4: 53°19′14.2″N, 001°43′46.9″W\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by cartesianBase.py line 364\n    test 115 height4: 53°19′14.2″N, 001°43′46.9″W\n    test 116 haversineTo: 124801.098\n    test 117 haversineTo: 124801.098\n    test 118 hubenyTo: <bound method LatLonBase.flatLocalTo of LatLon(53°19′14.16″N, 001°43′46.92″W)>\n    test 119 hubenyTo: <bound method LatLonBase.flatLocalTo of LatLon(53°11′19.32″N, 000°08′00.24″E)>\n    test 120 thomasTo: 125206.188\n    test 121 thomasTo: 125206.188\n    test 122 vincentysTo: 124801.098\n    test 123 vincentysTo: 124801.098\n    test 124 isclockwise: False\n    test 125 isclockwise*: False\n    test 126 isclockwise: True\n    test 127 isclockwise*: True\n    test 128 isclockwise: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 129 isclockwise*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 130 isclockwise: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 131 isclockwise*: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 132 isconvex: False\n    test 133 isconvex*: False\n    test 134 isconvex: True\n    test 135 isconvex*: True\n    test 136 isconvex: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 137 isconvex*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 138 isenclosedBy1: True\n    test 139 isenclosedBy1*: True\n    test 140 isenclosedBy2: False\n    test 141 isenclosedBy2*: False\n    test 142 isenclosedBy3: False\n    test 143 isenclosedBy3*: False\n    test 144 isenclosedBy4: False\n    test 145 isenclosedBy4*: False\n    test 146 isenclosedBy5: False\n    test 147 isenclosedBy5*: False\n    test 148 isenclosedBy6: True\n    test 149 isenclosedBy6*: True\n    test 150 isenclosedBy7: True\n    test 151 isenclosedBy7*: True\n    test 152 isenclosedBy-CCW: True\n    test 153 isenclosedBy-CW : True\n    test 154 isenclosedBy-CCW: True\n    test 155 compassAngleTo: 100.017\n    test 156 compassAngleTo: 105.599\n    test 157 compassAngleTo: 280.017\n    test 158 compassAngleTo: 285.599\n    test 159 equirectangularTo: 592.185\n    test 160 distanceTo: 591.831\n    test 161 compassAngleTo: 0.0\n    test 162 compassAngleTo: 45.0\n    test 163 compassAngleTo: 90.0\n    test 164 compassAngleTo: 180.0\n    test 165 compassAngleTo: 225.0\n    test 166 compassAngleTo: 315.0\n    test 167 compassAngleTo: 270.0\n    test 168 compassAngleTo: 359.4\n    test 169 latlon2: (53.0, 1.0)\n    test 170 philam2: (0.93, 0.02)\n    test 171 compassAngleTo: 31\n    test 172 compassAngleTo: 45\n\n    test 173 boundsOf: <class 'pygeodesy.namedTuples.Bounds2Tuple'>\n    test 174 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 175 latlon2: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 176 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 177 isequalTo: <class 'bool'>\n    test 178 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 179 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 180 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 181 xyz3: <class 'tuple'>\n    test 182 xyzh: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 183 compassAngleTo: <class 'float'>\n    test 184 cosineLawTo: <class 'float'>\n    test 185 euclideanTo: <class 'float'>\n    test 186 flatLocalTo: <class 'float'>\n    test 187 flatPolarTo: <class 'float'>\n    test 188 haversineTo: <class 'float'>\n    test 189 hubenyTo: <class 'float'>\n    test 190 vincentysTo: <class 'float'>\n# imported pygeodesy.ltpTuples into ecefLocals.py line 80\n# imported pygeodesy.ltp into ecefLocals.py line 63\n# imported pygeodesy.ltp into ltpTuples.py line 1585\n    test 191 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 192 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 193 toLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 194 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 195 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 196 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 197 toVector: (3934960.466675, 0.0, 5002803.345483)\n    test 198 toVector3d: (0.61823, 0.0, 0.786)\n    test 199 trilaterate5 (pygeodesy.ellipsoidalNvector) .min: 223.305\n    test 200 trilaterate5 (pygeodesy.ellipsoidalNvector) .point: 42.67456065°N, 002.49539502°E\n    test 201 trilaterate5 (pygeodesy.ellipsoidalNvector) .min- is .maxPoint: True\n    test 202 trilaterate5 (pygeodesy.ellipsoidalNvector) .n: 1\n    test 203 trilaterate5 (pygeodesy.ellipsoidalNvector) .error: ellipsoidalNvector.LatLon.trilaterate5(area=True), MRO(nvectorBase.LatLonNvectorBase, ellipsoidalBase.LatLonEllipsoidalBase, latlonBase.LatLonBase, named._NamedBase, ecefLocals._EcefLocal, named._Named): not implemented\n\n    test 204 radii11: Radii11Tuple(rA=7705.84217, rB=1367.057272, rC=498.160185, cR=4897.488519, rIn=740.470746, riS=179.544791, roS=5964.029657, a=1865.217457, b=8204.002354, c=9072.899442, s=9571.059626)\n    test 205 circum4 (pygeodesy.ellipsoidalNvector) .radius: 3184196.839  FAILED, KNOWN, expected 3184256.748\n    test 206 circum4 (pygeodesy.ellipsoidalNvector) .center: 42.674776°N, 002.495488°E, -3184194.95m  FAILED, KNOWN, expected 43.054367°N, 002.942573°E, -3183993.92m\n    test 207 circum4 (pygeodesy.ellipsoidalNvector) .rank: 3\n    test 208 circum4 (pygeodesy.ellipsoidalNvector) .residuals: ()\n    test 209 circum4 (pygeodesy.ellipsoidalNvector) .d1: 4886.122  FAILED, KNOWN, expected 57818.033\n    test 210 circum4 (pygeodesy.ellipsoidalNvector) .d2: 4904.641  FAILED, KNOWN, expected 57834.176\n    test 211 circum4 (pygeodesy.ellipsoidalNvector) .d3: 4909.920  FAILED, KNOWN, expected 57830.992\n    test 212 circum4 (pygeodesy.ellipsoidalNvector) .datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 213 circum4 (pygeodesy.ellipsoidalNvector) .Ecef: <class 'pygeodesy.ecef.EcefVeness'>\n    test 214 radii11: Radii11Tuple(rA=327537.482637, rB=776914.262482, rC=784245.052526, cR=780602.180901, rIn=325058.721103, riS=84975.664195, roS=INF, a=1561159.315008, b=1111782.535163, c=1104451.745119, s=1888696.797645)\n    test 215 circin6 (pygeodesy.ellipsoidalNvector) .rB+rC: 1561159.315\n    test 216 circin6 (pygeodesy.ellipsoidalNvector) .rC+pA: 1111782.535\n    test 217 circin6 (pygeodesy.ellipsoidalNvector) .rA+rB: 1104451.745\n    test 218 circin6 (pygeodesy.ellipsoidalNvector) .radius: 325058.721\n    test 219 circin6 (pygeodesy.ellipsoidalNvector) .center: 02.948531°N, 002.932537°E, -40041.19m\n    test 220 circin6 (pygeodesy.ellipsoidalNvector) .deltas: (0.0, 0.0, 0.224326)  FAILED, KNOWN, expected (0.0, 0.0, 0.090491)\n    test 221 circin6 (pygeodesy.ellipsoidalNvector) .cA: 05.04314°N, 005.014578°E, -48104.09m\n    test 222 circin6 (pygeodesy.ellipsoidalNvector) .cB: 00.0°N, 002.941713°E, -20168.62m\n    test 223 circin6 (pygeodesy.ellipsoidalNvector) .cC: 02.961566°N, 000.0°E, -20113.46m\n    test 224 circin6 (pygeodesy.ellipsoidalNvector) .dA: 327992.318  FAILED, KNOWN, expected 327263.596\n    test 225 circin6 (pygeodesy.ellipsoidalNvector) .dB: 327863.711  FAILED, KNOWN, expected 326036.153\n    test 226 circin6 (pygeodesy.ellipsoidalNvector) .dC: 325653.216  FAILED, KNOWN, expected 326020.432\n\n    testVectorial(pygeodesy.ellipsoidalNvector, 25.05.12)\n\n    test 227 toLatLon: 44.995674°N, 045.0°E\n    test 228 toNvector: (0.50004, 0.50004, 0.70705)\n    test 229 isequalTo: False\n    test 230 isequalTo: True\n    test 231 length: 0.99992449715\n    test 232 euclid: 0.99995577\n    test 233 length: 1.00\n    test 234 euclid: 1.0000\n    test 235 meanOf: 44.995674°N, 045.0°E\n    test 236 meanOf: LatLon\n    test 237 apply: (0.5, 0.5, 0.707)\n    test 238 init: (0.5, 0.5, 0.707)\n    test 239 i***: (0.5, 0.5, 0.707)\n    test 240 abs: 0.99992449715\n    test 241 sumOf: (52.70504, 0.61904, 0.70705)\n    test 242 sumOf: Nv\n    test 243 sumOf: sumOf\n    test 244 length: 52.7134151513\n    test 245 sizeof: 217  FAILED, KNOWN, expected 128\n    test 246 length: 52.2051356286\n    test 247 sizeof: 320  FAILED, KNOWN, expected 247\n    test 248 copy: True\n    test 249 length: 52.2051356286\n    test 250 sizeof: 320\n    test 251 isenclosedBy: True\n    test 252 isenclosedBy*: True\n    test 253 isenclosedBy: True\n    test 254 isenclosedBy*: True\n\n    test 255 nearestOn: 51.0°N, 001.0°E\n    test 256 nearestOn: 50.987°N, 000.298°W\n    test 257 nearestOn: 51.0°N, 002.0°E\n    test 258 nearestOn: 50.995°N, 002.655°E\n    test 259 nearestOn: 51.0°N, 001.9°E\n    test 260 nearestOn: True\n    test 261 distanceTo: 42.826\n    test 262 nearestOn: 51.0°N, 002.0°E\n    test 263 nearestOn: True\n    test 264 nearestOn: 00.0°N, 000.0°E\n    test 265 nearestOn: True\n    test 266 nearestOn: 00.0°N, 020.0°E\n    test 267 nearestOn: True\n    test 268 nearestOn: 02.0°N, 002.0°E\n    test 269 nearestOn: 02.0°N, 002.0°E\n\n    test 270 neareston6: (LatLon(45°00′00.0″N, 001°00′00.0″E), 4755443.4294, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E))\n    test 271 neareston6: (LatLon(45°30′03.94″N, 002°00′00.0″E), 39078.729285, 1.501072, 2, LatLon(45°00′00.0″N, 002°00′00.0″E), LatLon(46°00′00.0″N, 002°00′00.0″E))\n\n    test 272 BasseC: 47.3038°N, 002.5721°W\n    test 273 BasseH: 47.311067°N, 002.528617°W\n    test 274 triangulate: 47.323667°N, 002.568501°W\n    test 275 triangulate: True\n\n    test 276 trilaterate: 37.419078°N, 121.960579°W\n    test 277 trilaterate: True\n    test 278 trilaterate: 08.068912°S, 034.888699°W\n    test 279 trilaterate: True\n    test 280 trilaterate: 08.068912°S, 034.888695°W  FAILED, KNOWN, expected 08.068912°S, 034.888699°W\n    test 281 trilaterate: True\n    test 282 trilaterate: 42.67456065°N, 002.49539502°E\n    test 283 trilaterate: distance1 (5110), distance2 (5110), distance3 (5110), point1 (LatLon(42°41′19.82″N, 002°26′19.89″E)), point2 (LatLon(42°38′07.52″N, 002°31′21.25″E)) or point3 (LatLon(42°38′43.44″N, 002°30′17.32″E)): no intersection (useZ=False, wrap=False, z=-8.13526e-05)\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by <frozen importlib._bootstrap> line 1412\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by <frozen importlib._bootstrap> line 1412\n# lazily imported pygeodesy.Conformal2Tuple from .triaxials.triaxial5 by <frozen importlib._bootstrap> line 1412\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by classes.py line 21\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by classes.py line 21\n# lazily imported pygeodesy.Conformal2Tuple from .triaxials.triaxial5 by classes.py line 21\n# lazily imported pygeodesy.deprecated by ltpTuples.py line 483\n\n    test 284 destinationNed: 48°53′12.01″N, 002°22′29.0″E, +0.20m\n\n    testNvector(pygeodesy.ellipsoidalNvector, 25.05.12)\n    test 285 sumOf: Nvector\n    test 286 ecef.x, .y, .z: 3194659.54086, 3194659.54086, 4487008.4122\n    test 287 ecef.lat, .lon: 44.995674, 45.0\n    test 288 ecef.height: -0.0\n    test 289 ecef.M: -0.707106781, -0.499962243, 0.500037754, 0.707106781, -0.499962243, 0.500037754, 0.0, 0.707160174, 0.707053385\n    test 290 .isEllipsoidal: True\n    test 291 .isSpherical: False\n    test 292 .latlon: (44.995674, 45.0)\n    test 293 .philam: (0.785323, 0.785398)\n    test 294 .latlonheight: (44.995674, 45.0, 0.0)\n    test 295 .philamheight: (0.785323, 0.785398, 0.0)\n    test 296 parse: (0.5, 0.5, 0.707)\n    test 297 cmp: 0\n    test 298 eq: True\n    test 299 ge: True\n    test 300 gt: False\n    test 301 le: True\n    test 302 lt: False\n    test 303 ne: False\n    test 304 *: (1.0, 1.0, 1.414)\n    test 305 +: (1.0, 1.0, 1.414)\n    test 306 /: (0.5, 0.5, 0.707)\n    test 307 -: (0.5, 0.5, 0.707)\n    test 308 @: (0.0, 0.0, 0.0)\n    test 309 @: (0.0, 0.0, 0.0)\n    test 310 rotate: (0.26268, 0.26268, 0.37143)\n    test 311 crosserrors: True\n    test 312 0: divisor (0): float division by zero\n    test 313 intersections2: (500.0, 0.0, 0.0)\n    test 314 nearestOn: (0.0, 0.0, 0.0)\n    test 315 nearestOn: True\n    test 316 nearestOn: (100.0, 100.0, 100.0)\n    test 317 nearestOn: True\n# imported pygeodesy.vector2d into vector3d.py line 659\n    test 318 iscolinearWith: False\n    test 319 iscolinearWith: True\n    test 320 nearestOn: (0.0, 0.0, 0.0)\n    test 321 nearestOn: True\n    test 322 nearestOn: (100.0, 100.0, 100.0)\n    test 323 nearestOn: True\n./test/testLatLon.py:276: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.ellipsoidalVincenty.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', p.cosineAndoyerLambertTo(q), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:277: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.ellipsoidalVincenty.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', q.cosineAndoyerLambertTo(p), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:279: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.ellipsoidalVincenty.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', p.cosineForsytheAndoyerLambertTo(q), '124801.098' if Sph else '125205.965', fmt='%.3f')\n./test/testLatLon.py:280: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.ellipsoidalVincenty.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', q.cosineForsytheAndoyerLambertTo(p), '124801.098' if Sph else '125205.965', fmt='%.3f')\n    test 324 iscolinearWith: False\n    test 325 iscolinearWith: True\n\n    testEllipsoidal(pygeodesy.ellipsoidalVincenty, 25.05.26)\n    test 326 isEllipsoidal: True\n    test 327 isSpherical: False\n    test 328 isEllipsoidal: True\n    test 329 isSpherical: False\n    test 330 toDatum: 51.477284°N, 000.00002°E, -45.91m\n    test 331 toDatum: 51.4773°N, 000.0°E, -45.91m\n    test 332 toDatum: 51.4778°N, 000.0016°W\n    test 333 __matmul__: 51.477284°N, 000.00002°E, -45.91m\n    test 334 __matmul__: 51.477284°N, 000.00002°E, -45.90m\n    test 335 parse: 51.477284°N, 000.00002°E, -45.91m\n    test 336 reframe: None\n    test 337 toCartesian: [3980581.21, -111.159, 4966824.522]\n    test 338 toCss: -111.158797 5705242.333679\n    test 339 toCss: -111.158797 5705242.333679\n    test 340 toEcef: 3980581.21, -111.159, 4966824.522\n    test 341 toEtm: 30 N 916396 5720041\n    test 342 toEtm: 30 N 916396 5720041\n    test 343 toLcc: 5639901 4612638\n    test 344 toLcc: 5639901 4612638\n    test 345 toOsgr: TQ 38876 77320\n    test 346 toOsgr: TQ 38876 77320\n    test 347 toOsgrTM: TQ 38876 77320\n    test 348 toUtmUps: 30 N 708207 5707224\n    test 349 toUtm: 30 N 708207 5707224\n    test 350 toUtm: 30 N 708207 5707224\n    test 351 toWm: -178.111 6672799.209\n    test 352 toWm: -178.111 6672799.209\n    test 353 elevation2: None\n    test 354 geoidHeight2: None\n    test 355 toUtmUps: 30 N 708207 5707224\n    test 356 toUtm: 30 N 708207 5707224\n    test 357 toUtm: 30 N 708207 5707224\n    test 358 toUtmUps: 00 N 2000000 1333272\n    test 359 toUps: 00 N 2000000 1333272\n    test 360 toUps: 00 N 0 -666728\n    test 361 toUps: 00 N 2000000 1555732\n    test 362 toUtm: 31 N 459200 9217519\n    test 363 nearestOn: 32.81°N, 031.42°E\n    test 364 sat: 82.545852°N, 059.719736°E, -6353121.71m\n    test 365 dop: 51.998889°N, 004.373333°E, +134.64m\n    test 366 distance: 3817991.0740122627  FAILED, KNOWN, expected 3817991.074015\n    test 367 neareston8: (LatLon(45°00′00.0″N, 001°00′00.0″E), 4874369.98942, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E), 0.0, 0.0)\n    test 368 iteration: 0\n    test 369 neareston8: (LatLon(45°30′03.93″N, 020°00′00.0″E), 39078.779519, 1.501069, 2, LatLon(45°00′00.0″N, 020°00′00.0″E), LatLon(46°00′00.0″N, 020°00′00.0″E), 270.356041, 269.999412)\n    test 370 iteration: 1\n# lazily imported pygeodesy.geodesicx by ellipsoids.py line 1043\n# lazily imported pygeodesy.rhumb by geodesicw.py line 606\n# lazily imported pygeodesy.geodsolve by ellipsoids.py line 1057\n    test 371 intersecant2: 2.851e-11% 5 LatLon(03°18′54.69″S, 023°52′08.48″E)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 372 intersecant2: 2.948e-11% 5 LatLon(22°22′23.65″S, 007°55′54.49″E)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 373 intersecant2: 7.380e-11% 5 LatLon(10°39′24.95″N, 034°45′48.18″W)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 374 intersecant2: 6.491e-11% 4 LatLon(25°11′09.14″S, 005°10′35.44″W)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 375 intersecant2: 6.581e-12% 5 LatLon(10°14′21.91″S, 021°00′17.05″E)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 376 intersecant2: 1.993e-11% 5 LatLon(20°55′17.31″S, 010°40′21.43″E)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 377 intersecant2: center (LatLon(05°00′00.0″N, 005°00′00.0″W)), circle (3339584), end (LatLon(15°00′00.0″N, 045°00′00.0″E)), exact (False), start (LatLon(45°00′00.0″S, 015°00′00.0″W)) or wrap (False): 'too distant (3.69e+06) plumb to (16°56′45.9″S, 020°17′02.98″E)'\n    test 378 intersecant2: 4.822e-11% 5 LatLon(30°19′11.9″N, 022°18′22.76″W)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 379 intersecant2: 2.138e-11% 5 LatLon(00°59′41.3″N, 034°46′57.09″W)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 380 intersecant2: center (LatLon(05°00′00.0″N, 005°00′00.0″W)), circle (3339584), end (261.75669472183114), exact (False), start (LatLon(00°59′41.3″N, 034°46′57.09″W)) or wrap (False): 'no convergence (256), tolerance (1.49012e-08) plumb to (08°01′06.61″S, 004°29′38.58″W)'\n    test 381 intersecant2: center (LatLon(05°00′00.0″N, 005°00′00.0″W)), circle (3339584), end (LatLon(35°08′52.15″N, 004°02′04.68″W)), exact (False), start (LatLon(34°12′31.53″N, 003°04′01.61″E)) or wrap (False): 'no convergence (2.36323e-08), tolerance (1.49012e-08) plumb to (34°43′48.27″N, 000°27′49.31″W)'\n    test 382 intersecant2: center (LatLon(05°00′00.0″N, 005°00′00.0″W)), circle (3339584), end (16.240301461238964), exact (False), start (LatLon(34°12′31.53″N, 003°04′01.61″E)) or wrap (False): 'too distant (1.47e+07) plumb to (22°42′26.37″S, 138°32′28.16″W)'\n    test 383 intersecant2: 1.610e-11% 5 LatLon(07°41′21.22″S, 022°17′12.7″E)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 384 intersecant2: 5.550e-12% 5 LatLon(35°07′53.48″N, 006°26′21.82″W)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 385 intersecant2: center (LatLon(05°00′00.0″N, 005°00′00.0″W)), circle (3339584), end (357.1305274303066), exact (False), start (LatLon(35°07′53.48″N, 006°26′21.82″W)) or wrap (False): 'too distant (3.82e+06) plumb to (04°26′36.43″N, 029°25′15.75″E)'\n\n    testLatLon(pygeodesy.ellipsoidalVincenty, 25.05.26)\n    test 386 isEllipsoidal: True\n    test 387 isSpherical: False\n    test 388 lat/lonDMS: 52.20472°N, 000.14056°E\n    test 389 lat/lonDMS F_DM: 52°12.283′N, 000°08.434′E\n    test 390 lat/lonDMS F_DM: 52°12.2832′N, 000°08.4336′E\n    test 391 lat/lonDMS F_DMS: 52°12′17″N, 000°08′26″E\n    test 392 lat/lonDMS F_DMS: 52°12′17.0″N, 000°08′26.0″E\n    test 393 lat/lonDMS F_RAD: 0.911144N, 0.002453E\n    test 394 isequalTo: True\n    test 395 isequalTo: True\n    test 396 latlon2: 52.20472, 0.14056\n    test 397 latlon2: 52.2047, 0.1406\n    test 398 latlon2: 52.205, 0.141\n    test 399 latlon2: 52.2, 0.14\n    test 400 latlon2: 52.2, 0.1\n    test 401 latlon2: 52.0, 0.0\n    test 402 chordTo: 12029263.15\n    test 403 chordTo: 12029049.69\n    test 404 initialBearingTo: 156.1106\n    test 405 initialBearingTo: 65.9335\n    test 406 initialBearingTo: 0.0\n    test 407 initialBearingTo: 180.0\n    test 408 finalBearingTo: 157.8345\n    test 409 finalBearingTo: 93.9034\n    test 410 bearingTo2: 156.1106, 157.8345\n    test 411 ispolar: True\n    test 412 copy: True\n    test 413 __eq__: True\n    test 414 __ne__: False\n    test 415 equirectangularTo: 404329.56\n    test 416 distanceTo: 404607.805988\n    test 417 distanceTo: 404607.805988\n    test 418 distanceTo: 3981601\n    test 419 antipodal: False\n    test 420 distanceTo dateline: 19959679.267\n    test 421 distanceTo unrolled: 19959679.267\n    test 422 antipodal: False\n    test 423 distanceTo dateline: 9513998\n    test 424 distanceTo unrolled: 9513998\n    test 425 distanceTo: 18012714.66\n    test 426 distanceTo: ambiguous: LatLon(00°00′00.0″N, 000°00′00.0″E) antipodal to LatLon(00°00′00.0″N, 180°00′00.0″E)  FAILED, KNOWN, expected ambiguous, antipodal ...\n    test 427 distanceTo3 dateline: 19959679.2674, 161.0677, 18.8252\n    test 428 distanceTo3 dateline: 9513997.9901, 42.9164, 138.8903\n    test 429 distanceTo3 dateline: 19959679.2674, 161.0677, 18.8252\n    test 430 distanceTo3 dateline: 9513997.9901, 42.9164, 138.8903\n    test 431 intermediateTo: 51.372275°N, 000.707253°E\n    test 432 intermediateTo: True\n    test 433 intermediateTo: 404607.806\n    test 434 intermediateTo+5: 35.139582°N, 008.994368°E\n    test 435 intermediateTo+5: 5.000\n    test 436 intermediateTo-4: 64.894124°N, 013.705689°W\n    test 437 intermediateTo-4: 4.000\n    test 438 intermediateTo-h: 125.000\n    test 439 midpointTo: 50.536583°N, 001.274507°E\n    test 440 destination: 51.513526°N, 000.098038°W\n    test 441 destination: 51°30′49″N, 000°05′53″W\n    test 442 destination: 33°57′N, 118°24′W\n    test 443 destination: 33.950367°N, 118.399012°W\n    test 444 destination: 0.592546N, 2.066453W\n    test 445 destination: 32.11195529°N, 064.56074722°E  FAILED, KNOWN, expected 32.11195529°N, 063.95925278°E\n./test/testLatLon.py:627: DeprecationWarning: function L{areaOf<pygeodesy.ellipsoidalVincenty.areaOf>} has been DEPRECATED, use function L{ellipsoidalExact.areaOf} or L{ellipsoidalKarney.areaOf}.\n  r = a(reversed(b))\n./pygeodesy/ellipsoidalKarney.py:139: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return fabs(_polygon(datum.ellipsoid.geodesic, points, True, False, wrap, polar))\n./test/testLatLon.py:628: DeprecationWarning: function L{areaOf<pygeodesy.ellipsoidalVincenty.areaOf>} has been DEPRECATED, use function L{ellipsoidalExact.areaOf} or L{ellipsoidalKarney.areaOf}.\n  f = a(b)  # ccw\n    test 446 neareston6: (LatLon(45°00′00.0″N, 001°00′00.0″E), 4755443.4294, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E))\n    test 447 neareston6: (LatLon(45°30′03.94″N, 002°00′00.0″E), 39078.729285, 1.501072, 2, LatLon(45°00′00.0″N, 002°00′00.0″E), LatLon(46°00′00.0″N, 002°00′00.0″E))\n    test 448 chordTo: 125203.963\n    test 449 cosineAndoyerLambertTo: 125205.962\n    test 450 cosineAndoyerLambertTo: 125205.962\n    test 451 cosineForsyheAndoyerLambertTo: 125205.965\n    test 452 cosineForsyheAndoyerLambertTo: 125205.965\n    test 453 cosineLawTo: 124801.098\n    test 454 cosineLawTo: 124801.098\n    test 455 equirectangularTo: 124804.754\n    test 456 equirectangularTo: 124804.754\n    test 457 euclideanTo: 130015.089\n    test 458 euclideanTo: 130015.089\n    test 459 flatLocalTo: 125209.633\n    test 460 flatLocalTo: 125209.633\n    test 461 flatPolarTo: 133663.257\n    test 462 flatPolarTo: 133663.257\n    test 463 hartzell: 53.3206°N, 001.7297°W\n# lazily imported pygeodesy.Triaxial from .triaxials.triaxial5 by ellipsoids.py line 1905\n    test 464 hartzell: 53.349541°N, 001.7297°W\n    test 465 height4: 0.0\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by cartesianBase.py line 364\n    test 466 height4: (3820333.9, -115367.0, 5097204.4, -6584.9)\n    test 467 height4: 53°19′14.2″N, 001°43′46.9″W\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by cartesianBase.py line 364\n    test 468 height4: 53°19′14.2″N, 001°43′46.9″W\n    test 469 haversineTo: 124801.098\n    test 470 haversineTo: 124801.098\n    test 471 hubenyTo: <bound method LatLonBase.flatLocalTo of LatLon(53°19′14.16″N, 001°43′46.92″W)>\n    test 472 hubenyTo: <bound method LatLonBase.flatLocalTo of LatLon(53°11′19.32″N, 000°08′00.24″E)>\n    test 473 thomasTo: 125206.188\n    test 474 thomasTo: 125206.188\n    test 475 vincentysTo: 124801.098\n    test 476 vincentysTo: 124801.098\n    test 477 isclockwise: False\n    test 478 isclockwise*: False\n    test 479 isclockwise: True\n    test 480 isclockwise*: True\n    test 481 isclockwise: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 482 isclockwise*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 483 isclockwise: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 484 isclockwise*: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 485 isconvex: False\n    test 486 isconvex*: False\n    test 487 isconvex: True\n    test 488 isconvex*: True\n    test 489 isconvex: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 490 isconvex*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 491 isenclosedBy1: True\n    test 492 isenclosedBy1*: True\n    test 493 isenclosedBy2: False\n    test 494 isenclosedBy2*: False\n    test 495 isenclosedBy3: False\n    test 496 isenclosedBy3*: False\n    test 497 isenclosedBy4: False\n    test 498 isenclosedBy4*: False\n    test 499 isenclosedBy5: False\n    test 500 isenclosedBy5*: False\n    test 501 isenclosedBy6: True\n    test 502 isenclosedBy6*: True\n    test 503 isenclosedBy7: True\n    test 504 isenclosedBy7*: True\n    test 505 isenclosedBy-CCW: True\n    test 506 isenclosedBy-CW : True\n    test 507 isenclosedBy-CCW: True\n    test 508 initialBearingTo: 102.392291\n    test 509 compassAngleTo: 100.017\n    test 510 compassAngleTo: 105.599\n    test 511 initialBearingTo: 288.676039\n    test 512 compassAngleTo: 280.017\n    test 513 compassAngleTo: 285.599\n    test 514 equirectangularTo: 592.185\n    test 515 distanceTo: 593.571\n    test 516 bearingTo: 0.0\n    test 517 compassAngleTo: 0.0\n    test 518 bearingTo: 45.2  FAILED, KNOWN, expected 45.0\n    test 519 compassAngleTo: 45.0\n    test 520 bearingTo: 90.0\n    test 521 compassAngleTo: 90.0\n    test 522 bearingTo: 180.0\n    test 523 compassAngleTo: 180.0\n    test 524 bearingTo: 225.2  FAILED, KNOWN, expected 225.0\n    test 525 compassAngleTo: 225.0\n    test 526 bearingTo: 314.8  FAILED, KNOWN, expected 315.0\n    test 527 compassAngleTo: 315.0\n    test 528 bearingTo: 270.0\n    test 529 compassAngleTo: 270.0\n    test 530 bearingTo: 360.0  FAILED, KNOWN, expected 359.4\n    test 531 compassAngleTo: 359.4\n    test 532 latlon2: (53.0, 1.0)\n    test 533 philam2: (0.93, 0.02)\n    test 534 bearingTo: 31\n    test 535 compassAngleTo: 31\n    test 536 compassAngleTo: 45\n\n    test 537 boundsOf: <class 'pygeodesy.namedTuples.Bounds2Tuple'>\n    test 538 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 539 latlon2: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 540 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 541 isequalTo: <class 'bool'>\n    test 542 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 543 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 544 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 545 xyz3: <class 'tuple'>\n    test 546 xyzh: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 547 compassAngleTo: <class 'float'>\n    test 548 cosineLawTo: <class 'float'>\n    test 549 euclideanTo: <class 'float'>\n    test 550 flatLocalTo: <class 'float'>\n    test 551 flatPolarTo: <class 'float'>\n    test 552 haversineTo: <class 'float'>\n    test 553 hubenyTo: <class 'float'>\n    test 554 vincentysTo: <class 'float'>\n    test 555 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 556 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 557 toLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 558 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 559 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 560 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 561 toNvector: (0.615661, 0.0, 0.788011, 0)\n    test 562 toVector: (3934960.466675, 0.0, 5002803.345483)\n    test 563 toVector3d: (0.61823, 0.0, 0.786)\n# lazily imported pygeodesy.sphericalTrigonometry by ellipsoidalBaseDI.py line 734\n\n    test 564 trilaterate5 (pygeodesy.ellipsoidalVincenty) .min: 305.091\n    test 565 trilaterate5 (pygeodesy.ellipsoidalVincenty) .point: 42.66933643°N, 002.48620262°E\n    test 566 trilaterate5 (pygeodesy.ellipsoidalVincenty) .max: 1592.545\n    test 567 trilaterate5 (pygeodesy.ellipsoidalVincenty) .point: 42.65141232°N, 002.46816989°E\n    test 568 trilaterate5 (pygeodesy.ellipsoidalVincenty) .n: 3\n    test 569 trilaterate5 (pygeodesy.ellipsoidalVincenty) .min: 127.229\n    test 570 trilaterate5 (pygeodesy.ellipsoidalVincenty) .max: 152.612\n    test 571 trilaterate5 (pygeodesy.ellipsoidalVincenty) .point: 42.67815375°N, 002.49950041°E\n    test 572 trilaterate5 (pygeodesy.ellipsoidalVincenty) .n: 2\n    test 573 trilaterate5 (pygeodesy.ellipsoidalVincenty) .min: 2400.293\n    test 574 trilaterate5 (pygeodesy.ellipsoidalVincenty) .max: 2400.293\n    test 575 trilaterate5 (pygeodesy.ellipsoidalVincenty) .point: 42.66128984°N, 002.47973818°E\n    test 576 trilaterate5 (pygeodesy.ellipsoidalVincenty) .min- is .maxPoint: True\n    test 577 trilaterate5 (pygeodesy.ellipsoidalVincenty) .n: 1\n    test 578 trilaterate5 (pygeodesy.ellipsoidalVincenty) .min: 1343.743\n    test 579 trilaterate5 (pygeodesy.ellipsoidalVincenty) .point: 42.69131964°N, 002.50112167°E\n    test 580 trilaterate5 (pygeodesy.ellipsoidalVincenty) .max: 1445.554\n    test 581 trilaterate5 (pygeodesy.ellipsoidalVincenty) .point: 42.67815375°N, 002.49950041°E\n    test 582 trilaterate5 (pygeodesy.ellipsoidalVincenty) .n: 2\n    test 583 radii11: Radii11Tuple(rA=7244.792747, rB=1828.106695, rC=2.25502, cR=57792.067128, rIn=57.366968, riS=2.087668, roS=2.443334, a=1830.361715, b=7247.047766, c=9072.899442, s=9075.154461)\n    test 584 circum3 (pygeodesy.ellipsoidalVincenty) .radius: 57792.067\n    test 585 circum3 (pygeodesy.ellipsoidalVincenty) .center: 43.053532°N, 002.943255°E, -261.66m\n    test 586 circum3 (pygeodesy.ellipsoidalVincenty) .deltas: (-0.0, 0.0, 9.827)  FAILED, KNOWN, expected (0.0, 0.0, 11.383)\n    test 587 circum3 (pygeodesy.ellipsoidalVincenty) .d1: 57792.858\n    test 588 circum3 (pygeodesy.ellipsoidalVincenty) .d2: 57792.859\n    test 589 circum3 (pygeodesy.ellipsoidalVincenty) .d3: 57792.859\n    test 590 circum3 (pygeodesy.ellipsoidalVincenty) .datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 591 circum3 (pygeodesy.ellipsoidalVincenty) .Ecef: <class 'pygeodesy.ecef.EcefVeness'>\n\n    test 592 radii11: Radii11Tuple(rA=7244.792747, rB=1828.106695, rC=2.25502, cR=57792.067128, rIn=57.366968, riS=2.087668, roS=2.443334, a=1830.361715, b=7247.047766, c=9072.899442, s=9075.154461)\n    test 593 circum4 (pygeodesy.ellipsoidalVincenty) .radius: 3184256.748\n    test 594 circum4 (pygeodesy.ellipsoidalVincenty) .center: 43.054367°N, 002.942573°E, -3183993.92m\n    test 595 circum4 (pygeodesy.ellipsoidalVincenty) .rank: 3\n    test 596 circum4 (pygeodesy.ellipsoidalVincenty) .residuals: ()\n    test 597 circum4 (pygeodesy.ellipsoidalVincenty) .d1: 57818.033\n    test 598 circum4 (pygeodesy.ellipsoidalVincenty) .d2: 57834.176\n    test 599 circum4 (pygeodesy.ellipsoidalVincenty) .d3: 57830.992\n    test 600 circum4 (pygeodesy.ellipsoidalVincenty) .datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 601 circum4 (pygeodesy.ellipsoidalVincenty) .Ecef: <class 'pygeodesy.ecef.EcefVeness'>\n    test 602 radii11: Radii11Tuple(rA=327537.482637, rB=776914.262482, rC=784245.052526, cR=780602.180901, rIn=325058.721103, riS=84975.664195, roS=INF, a=1561159.315008, b=1111782.535163, c=1104451.745119, s=1888696.797645)\n    test 603 circin6 (pygeodesy.ellipsoidalVincenty) .rB+rC: 1561159.315\n    test 604 circin6 (pygeodesy.ellipsoidalVincenty) .rC+pA: 1111782.535\n    test 605 circin6 (pygeodesy.ellipsoidalVincenty) .rA+rB: 1104451.745\n    test 606 circin6 (pygeodesy.ellipsoidalVincenty) .radius: 325058.721\n    test 607 circin6 (pygeodesy.ellipsoidalVincenty) .center: 02.948531°N, 002.932537°E, -40041.19m\n    test 608 circin6 (pygeodesy.ellipsoidalVincenty) .deltas: (0.0, 0.0, 0.224326)  FAILED, KNOWN, expected (0.0, 0.0, 0.090491)\n    test 609 circin6 (pygeodesy.ellipsoidalVincenty) .cA: 05.04314°N, 005.014578°E, -48104.09m\n    test 610 circin6 (pygeodesy.ellipsoidalVincenty) .cB: 00.0°N, 002.941713°E, -20168.62m\n    test 611 circin6 (pygeodesy.ellipsoidalVincenty) .cC: 02.961566°N, 000.0°E, -20113.46m\n    test 612 circin6 (pygeodesy.ellipsoidalVincenty) .dA: 327263.596\n    test 613 circin6 (pygeodesy.ellipsoidalVincenty) .dB: 326036.153\n    test 614 circin6 (pygeodesy.ellipsoidalVincenty) .dC: 326020.432\n# lazily imported pygeodesy.ellipsoidalKarney by ellipsoidalVincenty.py line 383\n\n    test 615 area cw/ccw: 1.0\n\n    testNOAA(pygeodesy.ellipsoidalVincenty, 25.05.26)\n    test 616 NOAAexample1: 191872.1190, 249 03 16.4237, 67 59 11.1619\n    test 617 NOAAexample2: 182009.1679, 254 42 44.6439, 73 09 21.3315\n    test 618 NOAAexample3: 123456.7891, 245 00 34.7001, 64 20 24.6864\n    test 619 NOAAexample4: 145239.0603, 114 29 26.9586, 295 21 32.6566\n\n    testIntersection3(pygeodesy.ellipsoidalVincenty, 25.05.26)\n    test 620 (30, 17): (LatLon(30°52′03.1″N, 015°30′38.41″E), 0, 0)\n    test 621 (30, 17): (LatLon(30°52′03.1″N, 015°30′38.41″E), -1, 0)\n    test 622 (-1,  3): (LatLon(01°34′52.49″N, 006°00′51.83″E), -1, -2)\n    test 623 (-1,  3): (LatLon(01°34′52.49″N, 006°00′51.83″E), -1, 2)\n    test 624 (65, 32): (LatLon(56°58′26.51″N, 032°00′00.0″E), 1, 0)\n    test 625 (65, 32): (LatLon(56°58′26.51″N, 032°00′00.0″E), 1, 2)\n    test 626 (-2, 17): <class 'pygeodesy.errors.IntersectionError'>\n    test 627 (49, 25): (LatLon(49°00′00.0″N, 025°00′00.0″E), 1, -2)  FAILED, KNOWN, expected (LatLon(49°00′00.0″N, 025°00′00.0″E), 0, 0)\n    test 628 #58: (LatLon(01°54′25.65″S, 005°37′48.76″E), 1, -2)\n    test 629 #58: <class 'pygeodesy.errors.IntersectionError'>\n\n    testIntersections2(pygeodesy.ellipsoidalVincenty, 25.05.26)\n    test 630 Equidistant: 36.9879°N, 088.1564°W, 38.2441°N, 092.3835°W  FAILED, KNOWN, expected 36.9892°N, 088.152°W, 38.2377°N, 092.39°W\n    test 631 Equidistant: 36.9892°N, 088.152°W, 38.2377°N, 092.39°W\n    test 632 Equidistant: 00.0°S, 035.4073°W, 00.0°S, 035.4073°E\n    test 633 Equidistant: 1.63814 (% of radius)\n    test 634 Equidistant: 22.756°N, 000.0°W, 22.756°S, 000.0°W\n    test 635 Equidistant: 1.30784 (% of radius)\n    test 636 Equidistant: 29.2359°N, 040.2625°W, 29.2359°S, 040.2625°E\n    test 637 Equidistant: 1.31348 (% of radius)\n    test 638 Equidistant: 01.1557°S, 045.0894°E, 01.1557°N, 045.0894°E\n    test 639 Equidistant: 1.81093 (% of radius)\n    test 640 Equidistant 5: 05.0218°S, 005.0605°W, 05.0218°N, 005.0605°E\n    test 641 Equidistant 5: 0.00337268 (% of radius)\n    test 642 Equidistant 10: 10.0378°S, 010.3545°W, 10.0378°N, 010.3545°E\n    test 643 Equidistant 10: 0.00344677 (% of radius)\n    test 644 Equidistant: 27.303074°S, 000.114806°W Random +/- 45\n    test 645 Equidistant: 27.139544°S, 000.202037°W, 42.598888°N, 023.760304°E  d 20075.1 meter (iteration 4)\n    test 646 Equidistant: 27.152964°S, 000.217004°W, 38.368233°N, 040.200784°E  d 19471.6 meter (iteration 5)\n\n    testVincenty(pygeodesy.ellipsoidalVincenty, 25.05.26, datum='WGS84')\n    test 647 distanceTo: 866455.43292\n    test 648 toDatum: OSGB36\n    test 649 ValueError2: Ellipsoid 'Airy1830': incompatible with Ellipsoid 'WGS84'\n    test 650 isEllipsoidal: True\n    test 651 isSpherical: False\n    test 652 epsilon: 1e-12\n    test 653 iterations: 200\n    test 654 copy: True\n    test 655 isEllipsoidal: True\n    test 656 isSpherical: False\n    test 657 copy: 37°57′03.7203″S, 144°25′29.5244″E\n    test 658 epsilon: 2.220446049250e-16\n    test 659 iterations: 400\n    test 660 iteration: None\n\n    testKarneyVincenty(pygeodesy.ellipsoidalVincenty, 25.05.26, datum='WGS84')\n    test 661 coincident: 0.0\n    test 662 coincident: 0.0, 0.0, 0.0\n    test 663 destination: 37.6528°S, 143.9265°E\n    test 664 destination: True\n    test 665 destination2: 37.652821°S, 143.926496°E, 307.1736°NW\n    test 666 destination2: True\n    test 667 finalBearingOn: 307.1736°, 307°10′25.07″NW\n    test 668 distanceTo: 969954.166\n    test 669 distanceTo3: 969954.166314, 9.141877, 11.29722\n    test 670 distanceTo2: 972708.16174, 11.22502\n    test 671 initialBearingTo: 9.1419°, 9°08′30.76″N\n    test 672 destination: 58.64402°N, 003.07009°W\n    test 673 finalBearingTo: 11.2972°, 11°17′49.99″NNE\n    test 674 finalBearingOn: 11.2972°, 11°17′49.99″NNE\n    test 675 distanceTo: 404607.806\n    test 676 distanceTo3: 404607.805988, 156.11064, 157.8345\n    test 677 distanceTo2: 402574.597287, 157.726344\n    test 678 initialBearingTo: 156.1106°, 156°06′38.31″SSE\n    test 679 destination: 48.857°N, 002.351°E\n    test 680 finalBearingTo: 157.8345°, 157°50′04.2″SSE\n    test 681 finalBearingOn: 157.8345°, 157°50′04.2″SSE\n    test 682 distanceTo: 54973.295\n    test 683 distanceTo3: 54973.29527, 233.13008, 232.82461\n    test 684 distanceTo2: 54903.41209, 232.9209\n    test 685 initialBearingTo: 233.1301°, 233°07′48.28″SW\n    test 686 destination: 37.6528°N, 143.9265°E\n    test 687 finalBearingTo: 232.8246°, 232°49′28.59″SW\n    test 688 finalBearingOn: 232.8246°, 232°49′28.59″SW\n    test 689 distanceToMP: 298396.057\n    test 690 distanceToSM: 185.415\n    test 691 distanceToMP: 111319.491\n    test 692 distanceToMP: 110574.389  FAILED, KNOWN, expected 110574.361\n    test 693 distanceToKW: 222638.982\n    test 694 distanceToKW: 111319.491\n    test 695 distanceTo3: 54972.271\n    test 696 distanceTo3: 306°52′05.37″\n    test 697 distanceTo3: 307°10′25.07″\n    test 698 distanceTo2: 54902.390\n    test 699 distanceTo2: 307°04′38.41″\n\n    testKarneyVincentyError(pygeodesy.ellipsoidalVincenty, 25.05.26, datum='WGS84')\n    test 700 distanceTo/antipodal (182): 19936288.579\n    test 701 distanceTo/VincentyError (182): no convergence (0.00746541): epsilon (1e-12) and iterations (200), LatLon(00°00′00.0″N, 000°00′00.0″E) to LatLon(00°30′00.0″N, 179°42′00.0″E)  FAILED, KNOWN, expected no convergence: ...\n./pygeodesy/ellipsoidalKarney.py:94: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return self.datum.ellipsoid.geodesic\n./test/testLatLon.py:276: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.ellipsoidalKarney.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', p.cosineAndoyerLambertTo(q), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:277: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.ellipsoidalKarney.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', q.cosineAndoyerLambertTo(p), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:279: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.ellipsoidalKarney.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', p.cosineForsytheAndoyerLambertTo(q), '124801.098' if Sph else '125205.965', fmt='%.3f')\n./test/testLatLon.py:280: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.ellipsoidalKarney.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', q.cosineForsytheAndoyerLambertTo(p), '124801.098' if Sph else '125205.965', fmt='%.3f')\n    test 702 initialBearingTo/VincentyError (182): no convergence (0.00746541): epsilon (1e-12) and iterations (200), LatLon(00°00′00.0″N, 000°00′00.0″E) to LatLon(00°30′00.0″N, 179°42′00.0″E)  FAILED, KNOWN, expected no convergence: ...\n    test 703 finalBearingTo/VincentyError (182): no convergence (0.00746541): epsilon (1e-12) and iterations (200), LatLon(00°00′00.0″N, 000°00′00.0″E) to LatLon(00°30′00.0″N, 179°42′00.0″E)  FAILED, KNOWN, expected no convergence: ...\n    test 704 distanceTo/equatorial (182): ambiguous: LatLon(00°00′00.0″N, 000°00′00.0″E) antipodal to LatLon(00°00′00.0″N, 180°00′00.0″E)  FAILED, KNOWN, expected ambiguous, ...\n    test 705 initialBearingTo/equatorial (182): ambiguous: LatLon(00°00′00.0″N, 000°00′00.0″E) antipodal to LatLon(00°00′00.0″N, 180°00′00.0″E)  FAILED, KNOWN, expected ambiguous, ...\n    test 706 distanceTo/coincident (5): 111319.491\n    test 707 distanceTo/meridional (1): 10001965.729\n    test 708 initialBearingTo/meridional (1): 180.0\n    test 709 distanceTo/coincident (1): 0.0\n    test 710 initialBearingTo/coincident (1): 0.0\n    test 711 finalBearingTo/coincident (1): 0.0\n    test 712 destination/coincident (1): 50.06632°N, 005.71475°W\n    test 713 distanceTo/anti-meridian (4): 10825924.1\n    test 714 distanceTo/quadrants (5): 4015703.02\n    test 715 distanceTo/quadrants (5): 4015703.02\n    test 716 distanceTo/quadrants (5): 4015703.02\n    test 717 distanceTo/quadrants (5): 4015703.02\n    test 718 distanceTo/quadrants (5): 4015703.02\n    test 719 distanceTo/quadrants (5): 4015703.02\n    test 720 distanceTo/quadrants (5): 4015703.02\n    test 721 distanceTo/quadrants (5): 4015703.02\n    test 722 distanceTo/quadrants (5): 4015703.02\n    test 723 distanceTo/quadrants (5): 4015703.02\n    test 724 distanceTo/quadrants (5): 4015703.02\n    test 725 distanceTo/quadrants (5): 4015703.02\n    test 726 distanceTo/quadrants (5): 4015703.02\n    test 727 distanceTo/quadrants (5): 4015703.02\n    test 728 distanceTo/quadrants (5): 4015703.02\n    test 729 distanceTo/quadrants (5): 4015703.02\n\n    testVincenty(pygeodesy.ellipsoidalVincenty, 25.05.26, datum='NAD83')\n    test 730 distanceTo: 866455.43292\n    test 731 toDatum: OSGB36\n    test 732 ValueError2: Ellipsoid 'Airy1830': incompatible with Ellipsoid 'GRS80'\n    test 733 isEllipsoidal: True\n    test 734 isSpherical: False\n    test 735 epsilon: 1e-12\n    test 736 iterations: 200\n    test 737 copy: True\n    test 738 isEllipsoidal: True\n    test 739 isSpherical: False\n    test 740 copy: 37°57′03.7203″S, 144°25′29.5244″E\n    test 741 epsilon: 2.220446049250e-16\n    test 742 iterations: 400\n    test 743 iteration: None\n\n    testKarneyVincenty(pygeodesy.ellipsoidalVincenty, 25.05.26, datum='NAD83')\n    test 744 coincident: 0.0\n    test 745 coincident: 0.0, 0.0, 0.0\n    test 746 destination: 37.6528°S, 143.9265°E\n    test 747 destination: True\n    test 748 destination2: 37.652821°S, 143.926496°E, 307.1736°NW\n    test 749 destination2: True\n    test 750 finalBearingOn: 307.1736°, 307°10′25.07″NW\n    test 751 distanceTo: 969954.166\n    test 752 distanceTo3: 969954.166314, 9.141877, 11.29722\n    test 753 distanceTo2: 972708.16174, 11.22502\n    test 754 initialBearingTo: 9.1419°, 9°08′30.76″N\n    test 755 destination: 58.64402°N, 003.07009°W\n    test 756 finalBearingTo: 11.2972°, 11°17′49.99″NNE\n    test 757 finalBearingOn: 11.2972°, 11°17′49.99″NNE\n    test 758 distanceTo: 404607.806\n    test 759 distanceTo3: 404607.805988, 156.11064, 157.8345\n    test 760 distanceTo2: 402574.597287, 157.726344\n    test 761 initialBearingTo: 156.1106°, 156°06′38.31″SSE\n    test 762 destination: 48.857°N, 002.351°E\n    test 763 finalBearingTo: 157.8345°, 157°50′04.2″SSE\n    test 764 finalBearingOn: 157.8345°, 157°50′04.2″SSE\n    test 765 distanceTo: 54973.295\n    test 766 distanceTo3: 54973.29527, 233.13008, 232.82461\n    test 767 distanceTo2: 54903.41209, 232.9209\n    test 768 initialBearingTo: 233.1301°, 233°07′48.28″SW\n    test 769 destination: 37.6528°N, 143.9265°E\n    test 770 finalBearingTo: 232.8246°, 232°49′28.59″SW\n    test 771 finalBearingOn: 232.8246°, 232°49′28.59″SW\n    test 772 distanceToMP: 298396.057\n    test 773 distanceToSM: 185.415\n    test 774 distanceToMP: 111319.491\n    test 775 distanceToMP: 110574.389  FAILED, KNOWN, expected 110574.361\n    test 776 distanceToKW: 222638.982\n    test 777 distanceToKW: 111319.491\n    test 778 distanceTo3: 54972.271\n    test 779 distanceTo3: 306°52′05.37″\n    test 780 distanceTo3: 307°10′25.07″\n    test 781 distanceTo2: 54902.390\n    test 782 distanceTo2: 307°04′38.41″\n\n    testKarneyVincentyError(pygeodesy.ellipsoidalVincenty, 25.05.26, datum='NAD83')\n    test 783 distanceTo/antipodal (182): 19936288.579\n    test 784 distanceTo/VincentyError (182): no convergence (0.00746541): epsilon (1e-12) and iterations (200), LatLon(00°00′00.0″N, 000°00′00.0″E) to LatLon(00°30′00.0″N, 179°42′00.0″E)  FAILED, KNOWN, expected no convergence: ...\n    test 785 initialBearingTo/VincentyError (182): no convergence (0.00746541): epsilon (1e-12) and iterations (200), LatLon(00°00′00.0″N, 000°00′00.0″E) to LatLon(00°30′00.0″N, 179°42′00.0″E)  FAILED, KNOWN, expected no convergence: ...\n    test 786 finalBearingTo/VincentyError (182): no convergence (0.00746541): epsilon (1e-12) and iterations (200), LatLon(00°00′00.0″N, 000°00′00.0″E) to LatLon(00°30′00.0″N, 179°42′00.0″E)  FAILED, KNOWN, expected no convergence: ...\n    test 787 distanceTo/equatorial (182): ambiguous: LatLon(00°00′00.0″N, 000°00′00.0″E) antipodal to LatLon(00°00′00.0″N, 180°00′00.0″E)  FAILED, KNOWN, expected ambiguous, ...\n    test 788 initialBearingTo/equatorial (182): ambiguous: LatLon(00°00′00.0″N, 000°00′00.0″E) antipodal to LatLon(00°00′00.0″N, 180°00′00.0″E)  FAILED, KNOWN, expected ambiguous, ...\n    test 789 distanceTo/coincident (5): 111319.491\n    test 790 distanceTo/meridional (1): 10001965.729\n    test 791 initialBearingTo/meridional (1): 180.0\n    test 792 distanceTo/coincident (1): 0.0\n    test 793 initialBearingTo/coincident (1): 0.0\n    test 794 finalBearingTo/coincident (1): 0.0\n    test 795 destination/coincident (1): 50.06632°N, 005.71475°W\n    test 796 distanceTo/anti-meridian (4): 10825924.1\n    test 797 distanceTo/quadrants (5): 4015703.02\n    test 798 distanceTo/quadrants (5): 4015703.02\n    test 799 distanceTo/quadrants (5): 4015703.02\n    test 800 distanceTo/quadrants (5): 4015703.02\n    test 801 distanceTo/quadrants (5): 4015703.02\n    test 802 distanceTo/quadrants (5): 4015703.02\n    test 803 distanceTo/quadrants (5): 4015703.02\n    test 804 distanceTo/quadrants (5): 4015703.02\n    test 805 distanceTo/quadrants (5): 4015703.02\n    test 806 distanceTo/quadrants (5): 4015703.02\n    test 807 distanceTo/quadrants (5): 4015703.02\n    test 808 distanceTo/quadrants (5): 4015703.02\n    test 809 distanceTo/quadrants (5): 4015703.02\n    test 810 distanceTo/quadrants (5): 4015703.02\n    test 811 distanceTo/quadrants (5): 4015703.02\n    test 812 distanceTo/quadrants (5): 4015703.02\n\n    testEllipsoidal(pygeodesy.ellipsoidalKarney, 25.05.27)\n    test 813 isEllipsoidal: True\n    test 814 isSpherical: False\n    test 815 isEllipsoidal: True\n    test 816 isSpherical: False\n    test 817 toDatum: 51.477284°N, 000.00002°E, -45.91m\n    test 818 toDatum: 51.4773°N, 000.0°E, -45.91m\n    test 819 toDatum: 51.4778°N, 000.0016°W\n    test 820 __matmul__: 51.477284°N, 000.00002°E, -45.91m\n    test 821 __matmul__: 51.477284°N, 000.00002°E, -45.90m\n    test 822 parse: 51.477284°N, 000.00002°E, -45.91m\n    test 823 reframe: None\n    test 824 toCartesian: [3980581.21, -111.159, 4966824.522]\n    test 825 toCss: -111.158797 5705242.333679\n    test 826 toCss: -111.158797 5705242.333679\n    test 827 toEcef: 3980581.21, -111.159, 4966824.522\n    test 828 toEtm: 30 N 916396 5720041\n    test 829 toEtm: 30 N 916396 5720041\n    test 830 toLcc: 5639901 4612638\n    test 831 toLcc: 5639901 4612638\n    test 832 toOsgr: TQ 38876 77320\n    test 833 toOsgr: TQ 38876 77320\n    test 834 toOsgrTM: TQ 38876 77320\n    test 835 toUtmUps: 30 N 708207 5707224\n    test 836 toUtm: 30 N 708207 5707224\n    test 837 toUtm: 30 N 708207 5707224\n    test 838 toWm: -178.111 6672799.209\n    test 839 toWm: -178.111 6672799.209\n    test 840 elevation2: None\n    test 841 geoidHeight2: None\n    test 842 toUtmUps: 30 N 708207 5707224\n    test 843 toUtm: 30 N 708207 5707224\n    test 844 toUtm: 30 N 708207 5707224\n    test 845 toUtmUps: 00 N 2000000 1333272\n    test 846 toUps: 00 N 2000000 1333272\n    test 847 toUps: 00 N 0 -666728\n    test 848 toUps: 00 N 2000000 1555732\n    test 849 toUtm: 31 N 459200 9217519\n    test 850 nearestOn: 32.81°N, 031.42°E\n    test 851 sat: 82.219069°N, 059.719736°E, -6353120.97m\n    test 852 dop: 51.998889°N, 004.373333°E, +134.64m\n    test 853 distance: 3802238.5049886242  FAILED, KNOWN, expected 3802238.504989\n    test 854 neareston8: (LatLon(45°00′00.0″N, 001°00′00.0″E), 4874369.98942, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E), 0.0, 0.0)\n    test 855 iteration: 0\n    test 856 neareston8: (LatLon(45°30′03.93″N, 020°00′00.0″E), 39078.779519, 1.501069, 2, LatLon(45°00′00.0″N, 020°00′00.0″E), LatLon(46°00′00.0″N, 020°00′00.0″E), 270.356041, 269.999412)\n    test 857 iteration: 1\n    test 858 intersecant2: 5.577e-14% 60 LatLon(03°18′54.69″S, 023°52′08.48″E)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 859 intersecant2: 1.394e-14% 60 LatLon(22°22′23.65″S, 007°55′54.49″E)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 860 intersecant2: 1.394e-13% 57 LatLon(10°39′24.95″N, 034°45′48.18″W)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 861 intersecant2: 1.673e-13% 57 LatLon(25°11′09.14″S, 005°10′35.44″W)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 862 intersecant2: 1.394e-14% 61 LatLon(10°14′21.91″S, 021°00′17.05″E)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 863 intersecant2: 8.366e-14% 61 LatLon(20°55′17.31″S, 010°40′21.43″E)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 864 intersecant2: center (LatLon(05°00′00.0″N, 005°00′00.0″W)), circle (3339584), end (LatLon(15°00′00.0″N, 045°00′00.0″E)), exact (False), start (LatLon(45°00′00.0″S, 015°00′00.0″W)) or wrap (False): 'too distant (3.69e+06) plumb to (16°56′45.9″S, 020°17′02.98″E)'\n    test 865 intersecant2: 9.761e-14% 57 LatLon(18°55′25.02″S, 023°34′47.88″W)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 866 intersecant2: 4.183e-14% 57 LatLon(00°03′42.32″S, 034°36′47.67″W)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 867 intersecant2: center (LatLon(05°00′00.0″N, 005°00′00.0″W)), circle (3339584), end (259.91797021566776), exact (False), start (LatLon(00°03′42.32″S, 034°36′47.67″W)) or wrap (False): 'too distant (1.96e+07) plumb to (01°26′44.73″S, 174°20′28.85″E)'\n    test 868 intersecant2: 1.813e-13% 68 LatLon(32°37′38.26″N, 017°53′42.75″W)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 869 intersecant2: 1.813e-13% 68 LatLon(25°19′49.07″N, 018°07′32.9″E)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 870 intersecant2: center (LatLon(05°00′00.0″N, 005°00′00.0″W)), circle (3339584), end (51.50099582921059), exact (False), start (LatLon(25°19′49.07″N, 018°07′32.9″E)) or wrap (False): 'too distant (5.04e+06) plumb to (36°14′36.93″S, 025°31′49.6″W)'\n    test 871 intersecant2: 1.394e-14% 65 LatLon(15°12′13.41″N, 033°43′39.28″W)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 872 intersecant2: 1.673e-13% 65 LatLon(33°51′15.76″N, 004°24′24.64″E)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 873 intersecant2: center (LatLon(05°00′00.0″N, 005°00′00.0″W)), circle (3339584), end (19.009326893417438), exact (False), start (LatLon(33°51′15.76″N, 004°24′24.64″E)) or wrap (False): 'too distant (1.84e+07) plumb to (00°30′01.46″S, 171°26′12.86″W)'\n\n    testLatLon(pygeodesy.ellipsoidalKarney, 25.05.27)\n    test 874 isEllipsoidal: True\n    test 875 isSpherical: False\n    test 876 lat/lonDMS: 52.20472°N, 000.14056°E\n    test 877 lat/lonDMS F_DM: 52°12.283′N, 000°08.434′E\n    test 878 lat/lonDMS F_DM: 52°12.2832′N, 000°08.4336′E\n    test 879 lat/lonDMS F_DMS: 52°12′17″N, 000°08′26″E\n    test 880 lat/lonDMS F_DMS: 52°12′17.0″N, 000°08′26.0″E\n    test 881 lat/lonDMS F_RAD: 0.911144N, 0.002453E\n    test 882 isequalTo: True\n    test 883 isequalTo: True\n    test 884 latlon2: 52.20472, 0.14056\n    test 885 latlon2: 52.2047, 0.1406\n    test 886 latlon2: 52.205, 0.141\n    test 887 latlon2: 52.2, 0.14\n    test 888 latlon2: 52.2, 0.1\n    test 889 latlon2: 52.0, 0.0\n    test 890 chordTo: 12029263.15\n    test 891 chordTo: 12029049.69\n    test 892 initialBearingTo: 156.1106\n    test 893 initialBearingTo: 65.9335\n    test 894 initialBearingTo: 0.0\n    test 895 initialBearingTo: 180.0\n    test 896 finalBearingTo: 157.8345\n    test 897 finalBearingTo: 93.9034\n    test 898 bearingTo2: 156.1106, 157.8345\n    test 899 ispolar: True\n    test 900 copy: True\n    test 901 __eq__: True\n    test 902 __ne__: False\n    test 903 equirectangularTo: 404329.56\n    test 904 distanceTo: 404607.805988\n    test 905 distanceTo: 404607.805988\n    test 906 distanceTo: 3981601\n    test 907 antipodal: False\n    test 908 distanceTo dateline: 19959679.267\n    test 909 distanceTo unrolled: 19959679.267\n    test 910 antipodal: False\n    test 911 distanceTo dateline: 9513998\n    test 912 distanceTo unrolled: 9513998\n    test 913 distanceTo: 18012714.66\n    test 914 distanceTo: 20003931.46\n    test 915 distanceTo3 dateline: 19959679.2674, 161.0677, 18.8252\n    test 916 distanceTo3 dateline: 9513997.9901, 42.9164, 138.8903\n    test 917 distanceTo3 dateline: 19959679.2674, 161.0677, 18.8252\n    test 918 distanceTo3 dateline: 9513997.9901, 42.9164, 138.8903\n    test 919 intermediateTo: 51.372275°N, 000.707253°E\n    test 920 intermediateTo: True\n    test 921 intermediateTo: 404607.806\n    test 922 intermediateTo+5: 35.139582°N, 008.994368°E\n    test 923 intermediateTo+5: 5.000\n    test 924 intermediateTo-4: 64.894124°N, 013.705689°W\n    test 925 intermediateTo-4: 4.000\n    test 926 intermediateTo-h: 125.000\n    test 927 midpointTo: 50.536583°N, 001.274507°E\n    test 928 destination: 51.513526°N, 000.098038°W\n    test 929 destination: 51°30′49″N, 000°05′53″W\n    test 930 destination: 33°57′N, 118°24′W\n    test 931 destination: 33.950367°N, 118.399012°W\n    test 932 destination: 0.592546N, 2.066453W\n    test 933 destination: 32.11195529°N, 064.56074722°E  FAILED, KNOWN, expected 32.11195529°N, 063.95925278°E\n    test 934 neareston6: (LatLon(45°00′00.0″N, 001°00′00.0″E), 4755443.4294, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E))\n    test 935 neareston6: (LatLon(45°30′03.94″N, 002°00′00.0″E), 39078.729285, 1.501072, 2, LatLon(45°00′00.0″N, 002°00′00.0″E), LatLon(46°00′00.0″N, 002°00′00.0″E))\n    test 936 chordTo: 125203.963\n    test 937 cosineAndoyerLambertTo: 125205.962\n    test 938 cosineAndoyerLambertTo: 125205.962\n    test 939 cosineForsyheAndoyerLambertTo: 125205.965\n    test 940 cosineForsyheAndoyerLambertTo: 125205.965\n    test 941 cosineLawTo: 124801.098\n    test 942 cosineLawTo: 124801.098\n    test 943 equirectangularTo: 124804.754\n    test 944 equirectangularTo: 124804.754\n    test 945 euclideanTo: 130015.089\n    test 946 euclideanTo: 130015.089\n    test 947 flatLocalTo: 125209.633\n    test 948 flatLocalTo: 125209.633\n    test 949 flatPolarTo: 133663.257\n    test 950 flatPolarTo: 133663.257\n    test 951 hartzell: 53.3206°N, 001.7297°W\n# lazily imported pygeodesy.Triaxial from .triaxials.triaxial5 by ellipsoids.py line 1905\n    test 952 hartzell: 53.349541°N, 001.7297°W\n    test 953 height4: 0.0\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by cartesianBase.py line 364\n    test 954 height4: (3820333.9, -115367.0, 5097204.4, -6584.9)\n    test 955 height4: 53°19′14.2″N, 001°43′46.9″W\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by cartesianBase.py line 364\n    test 956 height4: 53°19′14.2″N, 001°43′46.9″W\n    test 957 haversineTo: 124801.098\n    test 958 haversineTo: 124801.098\n    test 959 hubenyTo: <bound method LatLonBase.flatLocalTo of LatLon(53°19′14.16″N, 001°43′46.92″W)>\n    test 960 hubenyTo: <bound method LatLonBase.flatLocalTo of LatLon(53°11′19.32″N, 000°08′00.24″E)>\n    test 961 thomasTo: 125206.188\n    test 962 thomasTo: 125206.188\n    test 963 vincentysTo: 124801.098\n    test 964 vincentysTo: 124801.098\n    test 965 isclockwise: False\n    test 966 isclockwise*: False\n    test 967 isclockwise: True\n    test 968 isclockwise*: True\n    test 969 isclockwise: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 970 isclockwise*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 971 isclockwise: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 972 isclockwise*: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 973 isconvex: False\n    test 974 isconvex*: False\n    test 975 isconvex: True\n    test 976 isconvex*: True\n    test 977 isconvex: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 978 isconvex*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 979 isenclosedBy1: True\n    test 980 isenclosedBy1*: True\n    test 981 isenclosedBy2: False\n    test 982 isenclosedBy2*: False\n    test 983 isenclosedBy3: False\n    test 984 isenclosedBy3*: False\n    test 985 isenclosedBy4: False\n    test 986 isenclosedBy4*: False\n    test 987 isenclosedBy5: False\n    test 988 isenclosedBy5*: False\n    test 989 isenclosedBy6: True\n    test 990 isenclosedBy6*: True\n    test 991 isenclosedBy7: True\n    test 992 isenclosedBy7*: True\n    test 993 isenclosedBy-CCW: True\n    test 994 isenclosedBy-CW : True\n    test 995 isenclosedBy-CCW: True\n    test 996 initialBearingTo: 102.392291\n    test 997 compassAngleTo: 100.017\n    test 998 compassAngleTo: 105.599\n    test 999 initialBearingTo: 288.676039\n    test 1000 compassAngleTo: 280.017\n    test 1001 compassAngleTo: 285.599\n    test 1002 equirectangularTo: 592.185\n    test 1003 distanceTo: 593.571\n    test 1004 bearingTo: 0.0\n    test 1005 compassAngleTo: 0.0\n    test 1006 bearingTo: 45.2  FAILED, KNOWN, expected 45.0\n    test 1007 compassAngleTo: 45.0\n    test 1008 bearingTo: 90.0\n    test 1009 compassAngleTo: 90.0\n    test 1010 bearingTo: 180.0\n    test 1011 compassAngleTo: 180.0\n    test 1012 bearingTo: 225.2  FAILED, KNOWN, expected 225.0\n    test 1013 compassAngleTo: 225.0\n    test 1014 bearingTo: 314.8  FAILED, KNOWN, expected 315.0\n    test 1015 compassAngleTo: 315.0\n    test 1016 bearingTo: 270.0\n    test 1017 compassAngleTo: 270.0\n    test 1018 bearingTo: 0.0  FAILED, KNOWN, expected 359.4\n    test 1019 compassAngleTo: 359.4\n    test 1020 latlon2: (53.0, 1.0)\n    test 1021 philam2: (0.93, 0.02)\n    test 1022 bearingTo: 31\n    test 1023 compassAngleTo: 31\n    test 1024 compassAngleTo: 45\n\n    test 1025 boundsOf: <class 'pygeodesy.namedTuples.Bounds2Tuple'>\n    test 1026 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 1027 latlon2: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 1028 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 1029 isequalTo: <class 'bool'>\n    test 1030 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 1031 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 1032 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 1033 xyz3: <class 'tuple'>\n    test 1034 xyzh: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 1035 compassAngleTo: <class 'float'>\n    test 1036 cosineLawTo: <class 'float'>\n    test 1037 euclideanTo: <class 'float'>\n    test 1038 flatLocalTo: <class 'float'>\n    test 1039 flatPolarTo: <class 'float'>\n    test 1040 haversineTo: <class 'float'>\n    test 1041 hubenyTo: <class 'float'>\n    test 1042 vincentysTo: <class 'float'>\n    test 1043 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 1044 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 1045 toLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 1046 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 1047 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 1048 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 1049 toNvector: (0.615661, 0.0, 0.788011, 0)\n    test 1050 toVector: (3934960.466675, 0.0, 5002803.345483)\n    test 1051 toVector3d: (0.61823, 0.0, 0.786)\n\n    test 1052 trilaterate5 (pygeodesy.ellipsoidalKarney) .min: 305.091\n    test 1053 trilaterate5 (pygeodesy.ellipsoidalKarney) .point: 42.66933643°N, 002.48620262°E\n    test 1054 trilaterate5 (pygeodesy.ellipsoidalKarney) .max: 1592.545\n    test 1055 trilaterate5 (pygeodesy.ellipsoidalKarney) .point: 42.65141232°N, 002.46816989°E\n    test 1056 trilaterate5 (pygeodesy.ellipsoidalKarney) .n: 3\n    test 1057 trilaterate5 (pygeodesy.ellipsoidalKarney) .min: 127.229\n    test 1058 trilaterate5 (pygeodesy.ellipsoidalKarney) .max: 152.612\n    test 1059 trilaterate5 (pygeodesy.ellipsoidalKarney) .point: 42.67815375°N, 002.49950041°E\n    test 1060 trilaterate5 (pygeodesy.ellipsoidalKarney) .n: 2\n    test 1061 trilaterate5 (pygeodesy.ellipsoidalKarney) .min: 2400.293\n    test 1062 trilaterate5 (pygeodesy.ellipsoidalKarney) .max: 2400.293\n    test 1063 trilaterate5 (pygeodesy.ellipsoidalKarney) .point: 42.66128984°N, 002.47973818°E\n    test 1064 trilaterate5 (pygeodesy.ellipsoidalKarney) .min- is .maxPoint: True\n    test 1065 trilaterate5 (pygeodesy.ellipsoidalKarney) .n: 1\n    test 1066 trilaterate5 (pygeodesy.ellipsoidalKarney) .min: 1343.743\n    test 1067 trilaterate5 (pygeodesy.ellipsoidalKarney) .point: 42.69131964°N, 002.50112167°E\n    test 1068 trilaterate5 (pygeodesy.ellipsoidalKarney) .max: 1445.554\n    test 1069 trilaterate5 (pygeodesy.ellipsoidalKarney) .point: 42.67815375°N, 002.49950041°E\n    test 1070 trilaterate5 (pygeodesy.ellipsoidalKarney) .n: 2\n    test 1071 radii11: Radii11Tuple(rA=7244.792747, rB=1828.106695, rC=2.25502, cR=57792.067128, rIn=57.366968, riS=2.087668, roS=2.443334, a=1830.361715, b=7247.047766, c=9072.899442, s=9075.154461)\n    test 1072 circum3 (pygeodesy.ellipsoidalKarney) .radius: 57792.067\n    test 1073 circum3 (pygeodesy.ellipsoidalKarney) .center: 43.053532°N, 002.943255°E, -261.66m\n    test 1074 circum3 (pygeodesy.ellipsoidalKarney) .deltas: (-0.0, 0.0, 9.827)  FAILED, KNOWN, expected (0.0, 0.0, 11.383)\n    test 1075 circum3 (pygeodesy.ellipsoidalKarney) .d1: 57792.858\n    test 1076 circum3 (pygeodesy.ellipsoidalKarney) .d2: 57792.859\n    test 1077 circum3 (pygeodesy.ellipsoidalKarney) .d3: 57792.859\n    test 1078 circum3 (pygeodesy.ellipsoidalKarney) .datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 1079 circum3 (pygeodesy.ellipsoidalKarney) .Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n\n    test 1080 radii11: Radii11Tuple(rA=7244.792747, rB=1828.106695, rC=2.25502, cR=57792.067128, rIn=57.366968, riS=2.087668, roS=2.443334, a=1830.361715, b=7247.047766, c=9072.899442, s=9075.154461)\n    test 1081 circum4 (pygeodesy.ellipsoidalKarney) .radius: 3184256.748\n    test 1082 circum4 (pygeodesy.ellipsoidalKarney) .center: 43.054367°N, 002.942573°E, -3183993.92m\n    test 1083 circum4 (pygeodesy.ellipsoidalKarney) .rank: 3\n    test 1084 circum4 (pygeodesy.ellipsoidalKarney) .residuals: ()\n    test 1085 circum4 (pygeodesy.ellipsoidalKarney) .d1: 57818.033\n    test 1086 circum4 (pygeodesy.ellipsoidalKarney) .d2: 57834.176\n    test 1087 circum4 (pygeodesy.ellipsoidalKarney) .d3: 57830.992\n    test 1088 circum4 (pygeodesy.ellipsoidalKarney) .datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 1089 circum4 (pygeodesy.ellipsoidalKarney) .Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 1090 radii11: Radii11Tuple(rA=327537.482637, rB=776914.262482, rC=784245.052526, cR=780602.180901, rIn=325058.721103, riS=84975.664195, roS=INF, a=1561159.315008, b=1111782.535163, c=1104451.745119, s=1888696.797645)\n./pygeodesy/ellipsoidalKarney.py:347: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return _polygon(datum.ellipsoid.geodesic, points, closed, True, wrap, False)\n./pygeodesy/ellipsoidalKarney.py:266: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  a = _polygon(datum.ellipsoid.geodesic, points, True, False, wrap, polar)\n    test 1091 circin6 (pygeodesy.ellipsoidalKarney) .rB+rC: 1561159.315\n    test 1092 circin6 (pygeodesy.ellipsoidalKarney) .rC+pA: 1111782.535\n    test 1093 circin6 (pygeodesy.ellipsoidalKarney) .rA+rB: 1104451.745\n    test 1094 circin6 (pygeodesy.ellipsoidalKarney) .radius: 325058.721\n    test 1095 circin6 (pygeodesy.ellipsoidalKarney) .center: 02.948531°N, 002.932537°E, -40041.19m\n    test 1096 circin6 (pygeodesy.ellipsoidalKarney) .deltas: (0.0, 0.0, 0.224326)  FAILED, KNOWN, expected (0.0, 0.0, 0.090491)\n    test 1097 circin6 (pygeodesy.ellipsoidalKarney) .cA: 05.04314°N, 005.014578°E, -48104.09m\n    test 1098 circin6 (pygeodesy.ellipsoidalKarney) .cB: 00.0°N, 002.941713°E, -20168.62m\n    test 1099 circin6 (pygeodesy.ellipsoidalKarney) .cC: 02.961566°N, 000.0°E, -20113.46m\n    test 1100 circin6 (pygeodesy.ellipsoidalKarney) .dA: 327263.596\n    test 1101 circin6 (pygeodesy.ellipsoidalKarney) .dB: 326036.153\n    test 1102 circin6 (pygeodesy.ellipsoidalKarney) .dC: 326020.432\n\n    test 1103 area cw/ccw: 1.0\n\n    testNOAA(pygeodesy.ellipsoidalKarney, 25.05.27)\n    test 1104 NOAAexample1: 191872.1190, 249 03 16.4237, 67 59 11.1619\n    test 1105 NOAAexample2: 182009.1679, 254 42 44.6439, 73 09 21.3315\n    test 1106 NOAAexample3: 123456.7891, 245 00 34.7001, 64 20 24.6864\n    test 1107 NOAAexample4: 145239.0603, 114 29 26.9586, 295 21 32.6566\n\n    testIntersection3(pygeodesy.ellipsoidalKarney, 25.05.27)\n    test 1108 (30, 17): (LatLon(30°52′03.1″N, 015°30′38.41″E), 0, 0)\n    test 1109 (30, 17): (LatLon(30°52′03.1″N, 015°30′38.41″E), -1, 0)\n    test 1110 (-1,  3): (LatLon(01°34′52.49″N, 006°00′51.83″E), -1, -2)\n    test 1111 (-1,  3): (LatLon(01°34′52.49″N, 006°00′51.83″E), -1, 2)\n    test 1112 (65, 32): (LatLon(56°58′26.51″N, 032°00′00.0″E), 1, 0)\n    test 1113 (65, 32): (LatLon(56°58′26.51″N, 032°00′00.0″E), 1, 2)\n    test 1114 (-2, 17): <class 'pygeodesy.errors.IntersectionError'>\n    test 1115 (49, 25): (LatLon(49°00′00.0″N, 025°00′00.0″E), 1, -2)  FAILED, KNOWN, expected (LatLon(49°00′00.0″N, 025°00′00.0″E), 0, 0)\n    test 1116 #58: (LatLon(01°54′25.65″S, 005°37′48.76″E), 1, -2)\n    test 1117 #58: <class 'pygeodesy.errors.IntersectionError'>\n\n    testIntersections2(pygeodesy.ellipsoidalKarney, 25.05.27)\n    test 1118 EquidistantKarney: 36.9879°N, 088.1564°W, 38.2441°N, 092.3835°W\n    test 1119 EquidistantKarney: 36.9879°N, 088.1564°W, 38.2441°N, 092.3835°W\n    test 1120 EquidistantKarney: 00.0°N, 035.3478°W, 00.0°S, 035.3478°E\n    test 1121 EquidistantKarney: 1.63715 (% of radius)\n    test 1122 EquidistantKarney: 22.657°N, 000.0°W, 22.657°S, 000.0°E  FAILED, KNOWN, expected 22.657°N, 000.0°E, 22.657°S, 000.0°E\n    test 1123 EquidistantKarney: 1.30663 (% of radius)\n    test 1124 EquidistantKarney: 29.4898°N, 040.1785°W, 29.4898°S, 040.1785°E\n    test 1125 EquidistantKarney: 1.31396 (% of radius)\n    test 1126 EquidistantKarney: 02.7402°S, 044.885°E, 02.7402°N, 044.885°E\n    test 1127 EquidistantKarney: 1.83268 (% of radius)\n    test 1128 EquidistantKarney 5: 05.0558°S, 005.0271°W, 05.0558°N, 005.0271°E\n    test 1129 EquidistantKarney 5: 0 (% of radius)\n    test 1130 EquidistantKarney 10: 10.1081°S, 010.2901°W, 10.1081°N, 010.2901°E\n    test 1131 EquidistantKarney 10: 2.09389e-16 (% of radius)\n    test 1132 EquidistantKarney: 31.554599°S, 000.027743°W Random +/- 45\n    test 1133 EquidistantKarney: 31.554599°S, 000.027743°W, 19.574927°S, 029.199121°W  d 3.26873e-09 meter (iteration 3)\n    test 1134 EquidistantKarney: 31.554599°S, 000.027743°W, 09.540929°S, 048.892091°W  d 7.1336e-10 meter (iteration 3)\n\n    testKarney(pygeodesy.ellipsoidalKarney, 25.05.27, datum='WGS84')\n    test 1135 distanceTo: 866455.4329\n    test 1136 coincident: 0.0\n    test 1137 toDatum: OSGB36\n    test 1138 ValueError2: Ellipsoid 'Airy1830': incompatible with Ellipsoid 'WGS84'\n    test 1139 isEllipsoidal: True\n    test 1140 copy: True\n    test 1141 isEllipsoidal: True\n    test 1142 isSpherical: False\n    test 1143 copy: 37°57′03.7203″S, 144°25′29.5244″E\n\n    testKarneyVincenty(pygeodesy.ellipsoidalKarney, 25.05.27, datum='WGS84')\n    test 1144 coincident: 0.0\n    test 1145 coincident: 0.0, 0.0, 0.0\n    test 1146 destination: 37.6528°S, 143.9265°E\n    test 1147 destination: True\n    test 1148 destination2: 37.652821°S, 143.926496°E, 307.1736°NW\n    test 1149 destination2: True\n    test 1150 finalBearingOn: 307.1736°, 307°10′25.07″NW\n    test 1151 distanceTo: 969954.166\n    test 1152 distanceTo3: 969954.166314, 9.141877, 11.29722\n    test 1153 distanceTo2: 972708.16174, 11.22502\n    test 1154 initialBearingTo: 9.1419°, 9°08′30.76″N\n    test 1155 destination: 58.64402°N, 003.07009°W\n    test 1156 finalBearingTo: 11.2972°, 11°17′49.99″NNE\n    test 1157 finalBearingOn: 11.2972°, 11°17′49.99″NNE\n    test 1158 distanceTo: 404607.806\n    test 1159 distanceTo3: 404607.805988, 156.11064, 157.8345\n    test 1160 distanceTo2: 402574.597287, 157.726344\n    test 1161 initialBearingTo: 156.1106°, 156°06′38.31″SSE\n    test 1162 destination: 48.857°N, 002.351°E\n    test 1163 finalBearingTo: 157.8345°, 157°50′04.2″SSE\n    test 1164 finalBearingOn: 157.8345°, 157°50′04.2″SSE\n    test 1165 distanceTo: 54973.295\n    test 1166 distanceTo3: 54973.29527, 233.13008, 232.82461\n    test 1167 distanceTo2: 54903.41209, 232.9209\n    test 1168 initialBearingTo: 233.1301°, 233°07′48.28″SW\n    test 1169 destination: 37.6528°N, 143.9265°E\n    test 1170 finalBearingTo: 232.8246°, 232°49′28.59″SW\n    test 1171 finalBearingOn: 232.8246°, 232°49′28.59″SW\n    test 1172 distanceToMP: 298396.057\n    test 1173 distanceToSM: 185.415\n    test 1174 distanceToMP: 111319.491\n    test 1175 distanceToMP: 110574.389  FAILED, KNOWN, expected 110574.361\n    test 1176 distanceToKW: 222638.982\n    test 1177 distanceToKW: 111319.491\n    test 1178 distanceTo3: 54972.271\n    test 1179 distanceTo3: 306°52′05.37″\n    test 1180 distanceTo3: 307°10′25.07″\n    test 1181 distanceTo2: 54902.390\n    test 1182 distanceTo2: 307°04′38.41″\n\n    testKarneyVincentyError(pygeodesy.ellipsoidalKarney, 25.05.27, datum='WGS84')\n    test 1183 distanceTo/antipodal (None): 19936288.579\n    test 1184 distanceTo/VincentyError (None): 19944127.421\n    test 1185 initialBearingTo/VincentyError (None): 15.556883\n    test 1186 finalBearingTo/VincentyError (None): 164.442514\n    test 1187 distanceTo/equatorial (None): 20003931.46\n    test 1188 initialBearingTo/equatorial (None): 0.0\n    test 1189 distanceTo/coincident (None): 111319.491\n    test 1190 distanceTo/meridional (None): 10001965.729\n    test 1191 initialBearingTo/meridional (None): 180.0\n    test 1192 distanceTo/coincident (None): 0.0\n    test 1193 initialBearingTo/coincident (None): 180.0\n    test 1194 finalBearingTo/coincident (None): 180.0\n    test 1195 destination/coincident (None): 50.06632°N, 005.71475°W\n    test 1196 distanceTo/anti-meridian (None): 10825924.1\n    test 1197 distanceTo/quadrants (None): 4015703.02\n    test 1198 distanceTo/quadrants (None): 4015703.02\n    test 1199 distanceTo/quadrants (None): 4015703.02\n    test 1200 distanceTo/quadrants (None): 4015703.02\n    test 1201 distanceTo/quadrants (None): 4015703.02\n    test 1202 distanceTo/quadrants (None): 4015703.02\n    test 1203 distanceTo/quadrants (None): 4015703.02\n    test 1204 distanceTo/quadrants (None): 4015703.02\n    test 1205 distanceTo/quadrants (None): 4015703.02\n    test 1206 distanceTo/quadrants (None): 4015703.02\n    test 1207 distanceTo/quadrants (None): 4015703.02\n    test 1208 distanceTo/quadrants (None): 4015703.02\n    test 1209 distanceTo/quadrants (None): 4015703.02\n    test 1210 distanceTo/quadrants (None): 4015703.02\n    test 1211 distanceTo/quadrants (None): 4015703.02\n    test 1212 distanceTo/quadrants (None): 4015703.02\n\n    testKarney(pygeodesy.ellipsoidalKarney, 25.05.27, datum='NAD83')\n    test 1213 distanceTo: 866455.4329\n    test 1214 coincident: 0.0\n    test 1215 toDatum: OSGB36\n    test 1216 ValueError2: Ellipsoid 'Airy1830': incompatible with Ellipsoid 'GRS80'\n./test/testLatLon.py:276: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.ellipsoidalGeodSolve.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', p.cosineAndoyerLambertTo(q), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:277: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.ellipsoidalGeodSolve.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', q.cosineAndoyerLambertTo(p), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:279: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.ellipsoidalGeodSolve.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', p.cosineForsytheAndoyerLambertTo(q), '124801.098' if Sph else '125205.965', fmt='%.3f')\n./test/testLatLon.py:280: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.ellipsoidalGeodSolve.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', q.cosineForsytheAndoyerLambertTo(p), '124801.098' if Sph else '125205.965', fmt='%.3f')\n    test 1217 isEllipsoidal: True\n    test 1218 copy: True\n    test 1219 isEllipsoidal: True\n    test 1220 isSpherical: False\n    test 1221 copy: 37°57′03.7203″S, 144°25′29.5244″E\n\n    testKarneyVincenty(pygeodesy.ellipsoidalKarney, 25.05.27, datum='NAD83')\n    test 1222 coincident: 0.0\n    test 1223 coincident: 0.0, 0.0, 0.0\n    test 1224 destination: 37.6528°S, 143.9265°E\n    test 1225 destination: True\n    test 1226 destination2: 37.652821°S, 143.926496°E, 307.1736°NW\n    test 1227 destination2: True\n    test 1228 finalBearingOn: 307.1736°, 307°10′25.07″NW\n    test 1229 distanceTo: 969954.166\n    test 1230 distanceTo3: 969954.166314, 9.141877, 11.29722\n    test 1231 distanceTo2: 972708.16174, 11.22502\n    test 1232 initialBearingTo: 9.1419°, 9°08′30.76″N\n    test 1233 destination: 58.64402°N, 003.07009°W\n    test 1234 finalBearingTo: 11.2972°, 11°17′49.99″NNE\n    test 1235 finalBearingOn: 11.2972°, 11°17′49.99″NNE\n    test 1236 distanceTo: 404607.806\n    test 1237 distanceTo3: 404607.805988, 156.11064, 157.8345\n    test 1238 distanceTo2: 402574.597287, 157.726344\n    test 1239 initialBearingTo: 156.1106°, 156°06′38.31″SSE\n    test 1240 destination: 48.857°N, 002.351°E\n    test 1241 finalBearingTo: 157.8345°, 157°50′04.2″SSE\n    test 1242 finalBearingOn: 157.8345°, 157°50′04.2″SSE\n    test 1243 distanceTo: 54973.295\n    test 1244 distanceTo3: 54973.29527, 233.13008, 232.82461\n    test 1245 distanceTo2: 54903.41209, 232.9209\n    test 1246 initialBearingTo: 233.1301°, 233°07′48.28″SW\n    test 1247 destination: 37.6528°N, 143.9265°E\n    test 1248 finalBearingTo: 232.8246°, 232°49′28.59″SW\n    test 1249 finalBearingOn: 232.8246°, 232°49′28.59″SW\n    test 1250 distanceToMP: 298396.057\n    test 1251 distanceToSM: 185.415\n    test 1252 distanceToMP: 111319.491\n    test 1253 distanceToMP: 110574.389  FAILED, KNOWN, expected 110574.361\n    test 1254 distanceToKW: 222638.982\n    test 1255 distanceToKW: 111319.491\n    test 1256 distanceTo3: 54972.271\n    test 1257 distanceTo3: 306°52′05.37″\n    test 1258 distanceTo3: 307°10′25.07″\n    test 1259 distanceTo2: 54902.390\n    test 1260 distanceTo2: 307°04′38.41″\n\n    testKarneyVincentyError(pygeodesy.ellipsoidalKarney, 25.05.27, datum='NAD83')\n    test 1261 distanceTo/antipodal (None): 19936288.579\n    test 1262 distanceTo/VincentyError (None): 19944127.421\n    test 1263 initialBearingTo/VincentyError (None): 15.556883\n    test 1264 finalBearingTo/VincentyError (None): 164.442514\n    test 1265 distanceTo/equatorial (None): 20003931.46\n    test 1266 initialBearingTo/equatorial (None): 0.0\n    test 1267 distanceTo/coincident (None): 111319.491\n    test 1268 distanceTo/meridional (None): 10001965.729\n    test 1269 initialBearingTo/meridional (None): 180.0\n    test 1270 distanceTo/coincident (None): 0.0\n    test 1271 initialBearingTo/coincident (None): 180.0\n    test 1272 finalBearingTo/coincident (None): 180.0\n    test 1273 destination/coincident (None): 50.06632°N, 005.71475°W\n    test 1274 distanceTo/anti-meridian (None): 10825924.1\n    test 1275 distanceTo/quadrants (None): 4015703.02\n    test 1276 distanceTo/quadrants (None): 4015703.02\n    test 1277 distanceTo/quadrants (None): 4015703.02\n    test 1278 distanceTo/quadrants (None): 4015703.02\n    test 1279 distanceTo/quadrants (None): 4015703.02\n    test 1280 distanceTo/quadrants (None): 4015703.02\n    test 1281 distanceTo/quadrants (None): 4015703.02\n    test 1282 distanceTo/quadrants (None): 4015703.02\n    test 1283 distanceTo/quadrants (None): 4015703.02\n    test 1284 distanceTo/quadrants (None): 4015703.02\n    test 1285 distanceTo/quadrants (None): 4015703.02\n    test 1286 distanceTo/quadrants (None): 4015703.02\n    test 1287 distanceTo/quadrants (None): 4015703.02\n    test 1288 distanceTo/quadrants (None): 4015703.02\n    test 1289 distanceTo/quadrants (None): 4015703.02\n    test 1290 distanceTo/quadrants (None): 4015703.02\n\n    testKarney_s(pygeodesy.ellipsoidalKarney, 25.05.27)\n    test 1291 .lat1: -41.320\n    test 1292 .lon1: 174.810\n    test 1293 .azi1: 161.067669986160\n    test 1294 .lat2: 40.960\n    test 1295 .lon2: -5.500\n    test 1296 .azi2: 18.825195123247\n    test 1297 .s12: 19959679.267353821546\n    test 1298 distanceTo3: 19959679.267354, 161.067670, 18.825195\n    test 1299 destination2: 40.96, -5.5, 18.825195123247\n    test 1300 areaOf: 1.366270368e+13\n    test 1301 perimeterOf: 1.683106789e+07\n    test 1302 isclockwise: False\n    test 1303 isclockwise: True\n    test 1304 areaCO: 2.69154549884e+11\n    test 1305 isclockwise: True\n    test 1306 perimeterCO: 2099854.381923\n# lazily imported pygeodesy.ellipsoidalGeodSolve by testEllipsoidal.py line 785\n\n    testEllipsoidal(pygeodesy.ellipsoidalGeodSolve, 25.08.28)\n    test 1307 isEllipsoidal: True\n    test 1308 isSpherical: False\n    test 1309 isEllipsoidal: True\n    test 1310 isSpherical: False\n    test 1311 toDatum: 51.477284°N, 000.00002°E, -45.91m\n    test 1312 toDatum: 51.4773°N, 000.0°E, -45.91m\n    test 1313 toDatum: 51.4778°N, 000.0016°W\n    test 1314 __matmul__: 51.477284°N, 000.00002°E, -45.91m\n    test 1315 __matmul__: 51.477284°N, 000.00002°E, -45.90m\n    test 1316 parse: 51.477284°N, 000.00002°E, -45.91m\n    test 1317 reframe: None\n    test 1318 toCartesian: [3980581.21, -111.159, 4966824.522]\n    test 1319 toCss: -111.158797 5705242.333679\n    test 1320 toCss: -111.158797 5705242.333679\n    test 1321 toEcef: 3980581.21, -111.159, 4966824.522\n    test 1322 toEtm: 30 N 916396 5720041\n    test 1323 toEtm: 30 N 916396 5720041\n    test 1324 toLcc: 5639901 4612638\n    test 1325 toLcc: 5639901 4612638\n    test 1326 toOsgr: TQ 38876 77320\n    test 1327 toOsgr: TQ 38876 77320\n    test 1328 toOsgrTM: TQ 38876 77320\n    test 1329 toUtmUps: 30 N 708207 5707224\n    test 1330 toUtm: 30 N 708207 5707224\n    test 1331 toUtm: 30 N 708207 5707224\n    test 1332 toWm: -178.111 6672799.209\n    test 1333 toWm: -178.111 6672799.209\n    test 1334 elevation2: None\n    test 1335 geoidHeight2: None\n    test 1336 toUtmUps: 30 N 708207 5707224\n    test 1337 toUtm: 30 N 708207 5707224\n    test 1338 toUtm: 30 N 708207 5707224\n    test 1339 toUtmUps: 00 N 2000000 1333272\n    test 1340 toUps: 00 N 2000000 1333272\n    test 1341 toUps: 00 N 0 -666728\n    test 1342 toUps: 00 N 2000000 1555732\n    test 1343 toUtm: 31 N 459200 9217519\n    test 1344 nearestOn: 32.81°N, 031.42°E\n    test 1345 sat: 82.219069°N, 059.719736°E, -6353120.97m\n    test 1346 dop: 51.998889°N, 004.373333°E, +134.64m\n    test 1347 distance: 3802238.5049886247  FAILED, KNOWN, expected 3802238.504989\n    test 1348 neareston8: (LatLon(45°00′00.0″N, 001°00′00.0″E), 4874369.98942, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E), 0.0, 0.0)\n    test 1349 iteration: 0\n    test 1350 neareston8: (LatLon(45°30′03.93″N, 020°00′00.0″E), 39078.779519, 1.501069, 2, LatLon(45°00′00.0″N, 020°00′00.0″E), LatLon(46°00′00.0″N, 020°00′00.0″E), 270.356041, 269.999412)\n    test 1351 iteration: 1\n\n    32 tests skipped (64): insersecant2\n\n    testLatLon(pygeodesy.ellipsoidalGeodSolve, 25.08.28)\n    test 1352 isEllipsoidal: True\n    test 1353 isSpherical: False\n    test 1354 lat/lonDMS: 52.20472°N, 000.14056°E\n    test 1355 lat/lonDMS F_DM: 52°12.283′N, 000°08.434′E\n    test 1356 lat/lonDMS F_DM: 52°12.2832′N, 000°08.4336′E\n    test 1357 lat/lonDMS F_DMS: 52°12′17″N, 000°08′26″E\n    test 1358 lat/lonDMS F_DMS: 52°12′17.0″N, 000°08′26.0″E\n    test 1359 lat/lonDMS F_RAD: 0.911144N, 0.002453E\n    test 1360 isequalTo: True\n    test 1361 isequalTo: True\n    test 1362 latlon2: 52.20472, 0.14056\n    test 1363 latlon2: 52.2047, 0.1406\n    test 1364 latlon2: 52.205, 0.141\n    test 1365 latlon2: 52.2, 0.14\n    test 1366 latlon2: 52.2, 0.1\n    test 1367 latlon2: 52.0, 0.0\n    test 1368 chordTo: 12029263.15\n    test 1369 chordTo: 12029049.69\n    test 1370 initialBearingTo: 156.1106\n    test 1371 initialBearingTo: 65.9335\n    test 1372 initialBearingTo: 0.0\n    test 1373 initialBearingTo: 180.0\n    test 1374 finalBearingTo: 157.8345\n    test 1375 finalBearingTo: 93.9034\n    test 1376 bearingTo2: 156.1106, 157.8345\n    test 1377 ispolar: True\n    test 1378 copy: True\n    test 1379 __eq__: True\n    test 1380 __ne__: False\n    test 1381 equirectangularTo: 404329.56\n    test 1382 distanceTo: 404607.805988\n    test 1383 distanceTo: 404607.805988\n    test 1384 distanceTo: 3981601\n    test 1385 antipodal: False\n    test 1386 distanceTo dateline: 19959679.267\n    test 1387 distanceTo unrolled: 19959679.267\n    test 1388 antipodal: False\n    test 1389 distanceTo dateline: 9513998\n    test 1390 distanceTo unrolled: 9513998\n    test 1391 distanceTo: 18012714.66\n    test 1392 distanceTo: 20003931.46\n    test 1393 distanceTo3 dateline: 19959679.2674, 161.0677, 18.8252\n    test 1394 distanceTo3 dateline: 9513997.9901, 42.9164, 138.8903\n    test 1395 distanceTo3 dateline: 19959679.2674, 161.0677, 18.8252\n    test 1396 distanceTo3 dateline: 9513997.9901, 42.9164, 138.8903\n    test 1397 intermediateTo: 51.372275°N, 000.707253°E\n    test 1398 intermediateTo: True\n    test 1399 intermediateTo: 404607.806\n    test 1400 intermediateTo+5: 35.139582°N, 008.994368°E\n    test 1401 intermediateTo+5: 5.000\n    test 1402 intermediateTo-4: 64.894124°N, 013.705689°W\n    test 1403 intermediateTo-4: 4.000\n    test 1404 intermediateTo-h: 125.000\n    test 1405 midpointTo: 50.536583°N, 001.274507°E\n    test 1406 destination: 51.513526°N, 000.098038°W\n    test 1407 destination: 51°30′49″N, 000°05′53″W\n    test 1408 destination: 33°57′N, 118°24′W\n    test 1409 destination: 33.950367°N, 118.399012°W\n    test 1410 destination: 0.592546N, 2.066453W\n    test 1411 destination: 32.11195529°N, 064.56074722°E  FAILED, KNOWN, expected 32.11195529°N, 063.95925278°E\n    test 1412 neareston6: (LatLon(45°00′00.0″N, 001°00′00.0″E), 4755443.4294, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E))\n    test 1413 neareston6: (LatLon(45°30′03.94″N, 002°00′00.0″E), 39078.729285, 1.501072, 2, LatLon(45°00′00.0″N, 002°00′00.0″E), LatLon(46°00′00.0″N, 002°00′00.0″E))\n    test 1414 chordTo: 125203.963\n    test 1415 cosineAndoyerLambertTo: 125205.962\n    test 1416 cosineAndoyerLambertTo: 125205.962\n    test 1417 cosineForsyheAndoyerLambertTo: 125205.965\n    test 1418 cosineForsyheAndoyerLambertTo: 125205.965\n    test 1419 cosineLawTo: 124801.098\n    test 1420 cosineLawTo: 124801.098\n    test 1421 equirectangularTo: 124804.754\n    test 1422 equirectangularTo: 124804.754\n    test 1423 euclideanTo: 130015.089\n    test 1424 euclideanTo: 130015.089\n    test 1425 flatLocalTo: 125209.633\n    test 1426 flatLocalTo: 125209.633\n    test 1427 flatPolarTo: 133663.257\n    test 1428 flatPolarTo: 133663.257\n    test 1429 hartzell: 53.3206°N, 001.7297°W\n# lazily imported pygeodesy.Triaxial from .triaxials.triaxial5 by ellipsoids.py line 1905\n    test 1430 hartzell: 53.349541°N, 001.7297°W\n    test 1431 height4: 0.0\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by cartesianBase.py line 364\n    test 1432 height4: (3820333.9, -115367.0, 5097204.4, -6584.9)\n    test 1433 height4: 53°19′14.2″N, 001°43′46.9″W\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by cartesianBase.py line 364\n    test 1434 height4: 53°19′14.2″N, 001°43′46.9″W\n    test 1435 haversineTo: 124801.098\n    test 1436 haversineTo: 124801.098\n    test 1437 hubenyTo: <bound method LatLonBase.flatLocalTo of LatLon(53°19′14.16″N, 001°43′46.92″W)>\n    test 1438 hubenyTo: <bound method LatLonBase.flatLocalTo of LatLon(53°11′19.32″N, 000°08′00.24″E)>\n    test 1439 thomasTo: 125206.188\n    test 1440 thomasTo: 125206.188\n    test 1441 vincentysTo: 124801.098\n    test 1442 vincentysTo: 124801.098\n    test 1443 isclockwise: False\n    test 1444 isclockwise*: False\n    test 1445 isclockwise: True\n    test 1446 isclockwise*: True\n    test 1447 isclockwise: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 1448 isclockwise*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 1449 isclockwise: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 1450 isclockwise*: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 1451 isconvex: False\n    test 1452 isconvex*: False\n    test 1453 isconvex: True\n    test 1454 isconvex*: True\n    test 1455 isconvex: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 1456 isconvex*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 1457 isenclosedBy1: True\n    test 1458 isenclosedBy1*: True\n    test 1459 isenclosedBy2: False\n    test 1460 isenclosedBy2*: False\n    test 1461 isenclosedBy3: False\n    test 1462 isenclosedBy3*: False\n    test 1463 isenclosedBy4: False\n    test 1464 isenclosedBy4*: False\n    test 1465 isenclosedBy5: False\n    test 1466 isenclosedBy5*: False\n    test 1467 isenclosedBy6: True\n    test 1468 isenclosedBy6*: True\n    test 1469 isenclosedBy7: True\n    test 1470 isenclosedBy7*: True\n    test 1471 isenclosedBy-CCW: True\n    test 1472 isenclosedBy-CW : True\n    test 1473 isenclosedBy-CCW: True\n    test 1474 initialBearingTo: 102.392291\n    test 1475 compassAngleTo: 100.017\n    test 1476 compassAngleTo: 105.599\n    test 1477 initialBearingTo: 288.676039\n    test 1478 compassAngleTo: 280.017\n    test 1479 compassAngleTo: 285.599\n    test 1480 equirectangularTo: 592.185\n    test 1481 distanceTo: 593.571\n    test 1482 bearingTo: 0.0\n    test 1483 compassAngleTo: 0.0\n    test 1484 bearingTo: 45.2  FAILED, KNOWN, expected 45.0\n    test 1485 compassAngleTo: 45.0\n    test 1486 bearingTo: 90.0\n    test 1487 compassAngleTo: 90.0\n    test 1488 bearingTo: 180.0\n    test 1489 compassAngleTo: 180.0\n    test 1490 bearingTo: 225.2  FAILED, KNOWN, expected 225.0\n    test 1491 compassAngleTo: 225.0\n    test 1492 bearingTo: 314.8  FAILED, KNOWN, expected 315.0\n    test 1493 compassAngleTo: 315.0\n    test 1494 bearingTo: 270.0\n    test 1495 compassAngleTo: 270.0\n    test 1496 bearingTo: 0.0  FAILED, KNOWN, expected 359.4\n    test 1497 compassAngleTo: 359.4\n    test 1498 latlon2: (53.0, 1.0)\n    test 1499 philam2: (0.93, 0.02)\n    test 1500 bearingTo: 31\n    test 1501 compassAngleTo: 31\n    test 1502 compassAngleTo: 45\n\n    test 1503 boundsOf: <class 'pygeodesy.namedTuples.Bounds2Tuple'>\n    test 1504 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 1505 latlon2: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 1506 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 1507 isequalTo: <class 'bool'>\n    test 1508 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 1509 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 1510 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 1511 xyz3: <class 'tuple'>\n    test 1512 xyzh: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 1513 compassAngleTo: <class 'float'>\n    test 1514 cosineLawTo: <class 'float'>\n    test 1515 euclideanTo: <class 'float'>\n    test 1516 flatLocalTo: <class 'float'>\n    test 1517 flatPolarTo: <class 'float'>\n    test 1518 haversineTo: <class 'float'>\n    test 1519 hubenyTo: <class 'float'>\n    test 1520 vincentysTo: <class 'float'>\n    test 1521 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 1522 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 1523 toLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 1524 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 1525 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 1526 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 1527 toNvector: (0.615661, 0.0, 0.788011, 0)\n    test 1528 toVector: (3934960.466675, 0.0, 5002803.345483)\n    test 1529 toVector3d: (0.61823, 0.0, 0.786)\n\n    test 1530 trilaterate5 (pygeodesy.ellipsoidalGeodSolve) .min: 305.091\n    test 1531 trilaterate5 (pygeodesy.ellipsoidalGeodSolve) .point: 42.66933643°N, 002.48620262°E\n    test 1532 trilaterate5 (pygeodesy.ellipsoidalGeodSolve) .max: 1592.545\n    test 1533 trilaterate5 (pygeodesy.ellipsoidalGeodSolve) .point: 42.65141232°N, 002.46816989°E\n    test 1534 trilaterate5 (pygeodesy.ellipsoidalGeodSolve) .n: 3\n    test 1535 trilaterate5 (pygeodesy.ellipsoidalGeodSolve) .min: 127.229\n    test 1536 trilaterate5 (pygeodesy.ellipsoidalGeodSolve) .max: 152.612\n    test 1537 trilaterate5 (pygeodesy.ellipsoidalGeodSolve) .point: 42.67815375°N, 002.49950041°E\n    test 1538 trilaterate5 (pygeodesy.ellipsoidalGeodSolve) .n: 2\n    test 1539 trilaterate5 (pygeodesy.ellipsoidalGeodSolve) .min: 2400.293\n    test 1540 trilaterate5 (pygeodesy.ellipsoidalGeodSolve) .max: 2400.293\n    test 1541 trilaterate5 (pygeodesy.ellipsoidalGeodSolve) .point: 42.66128984°N, 002.47973818°E\n    test 1542 trilaterate5 (pygeodesy.ellipsoidalGeodSolve) .min- is .maxPoint: True\n    test 1543 trilaterate5 (pygeodesy.ellipsoidalGeodSolve) .n: 1\n    test 1544 trilaterate5 (pygeodesy.ellipsoidalGeodSolve) .min: 1343.743\n    test 1545 trilaterate5 (pygeodesy.ellipsoidalGeodSolve) .point: 42.69131964°N, 002.50112167°E\n    test 1546 trilaterate5 (pygeodesy.ellipsoidalGeodSolve) .max: 1445.554\n    test 1547 trilaterate5 (pygeodesy.ellipsoidalGeodSolve) .point: 42.67815375°N, 002.49950041°E\n    test 1548 trilaterate5 (pygeodesy.ellipsoidalGeodSolve) .n: 2\n    test 1549 radii11: Radii11Tuple(rA=7244.792747, rB=1828.106695, rC=2.25502, cR=57792.067128, rIn=57.366968, riS=2.087668, roS=2.443334, a=1830.361715, b=7247.047766, c=9072.899442, s=9075.154461)\n    test 1550 circum3 (pygeodesy.ellipsoidalGeodSolve) .radius: 57792.067\n    test 1551 circum3 (pygeodesy.ellipsoidalGeodSolve) .center: 43.053532°N, 002.943255°E, -261.66m\n    test 1552 circum3 (pygeodesy.ellipsoidalGeodSolve) .deltas: (-0.0, 0.0, 9.827)  FAILED, KNOWN, expected (0.0, 0.0, 11.383)\n    test 1553 circum3 (pygeodesy.ellipsoidalGeodSolve) .d1: 57792.858\n    test 1554 circum3 (pygeodesy.ellipsoidalGeodSolve) .d2: 57792.859\n    test 1555 circum3 (pygeodesy.ellipsoidalGeodSolve) .d3: 57792.859\n    test 1556 circum3 (pygeodesy.ellipsoidalGeodSolve) .datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 1557 circum3 (pygeodesy.ellipsoidalGeodSolve) .Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n\n    test 1558 radii11: Radii11Tuple(rA=7244.792747, rB=1828.106695, rC=2.25502, cR=57792.067128, rIn=57.366968, riS=2.087668, roS=2.443334, a=1830.361715, b=7247.047766, c=9072.899442, s=9075.154461)\n    test 1559 circum4 (pygeodesy.ellipsoidalGeodSolve) .radius: 3184256.748\n    test 1560 circum4 (pygeodesy.ellipsoidalGeodSolve) .center: 43.054367°N, 002.942573°E, -3183993.92m\n    test 1561 circum4 (pygeodesy.ellipsoidalGeodSolve) .rank: 3\n    test 1562 circum4 (pygeodesy.ellipsoidalGeodSolve) .residuals: ()\n    test 1563 circum4 (pygeodesy.ellipsoidalGeodSolve) .d1: 57818.033\n    test 1564 circum4 (pygeodesy.ellipsoidalGeodSolve) .d2: 57834.176\n    test 1565 circum4 (pygeodesy.ellipsoidalGeodSolve) .d3: 57830.992\n    test 1566 circum4 (pygeodesy.ellipsoidalGeodSolve) .datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 1567 circum4 (pygeodesy.ellipsoidalGeodSolve) .Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 1568 radii11: Radii11Tuple(rA=327537.482637, rB=776914.262482, rC=784245.052526, cR=780602.180901, rIn=325058.721103, riS=84975.664195, roS=INF, a=1561159.315008, b=1111782.535163, c=1104451.745119, s=1888696.797645)\n    test 1569 circin6 (pygeodesy.ellipsoidalGeodSolve) .rB+rC: 1561159.315\n    test 1570 circin6 (pygeodesy.ellipsoidalGeodSolve) .rC+pA: 1111782.535\n    test 1571 circin6 (pygeodesy.ellipsoidalGeodSolve) .rA+rB: 1104451.745\n    test 1572 circin6 (pygeodesy.ellipsoidalGeodSolve) .radius: 325058.721\n    test 1573 circin6 (pygeodesy.ellipsoidalGeodSolve) .center: 02.948531°N, 002.932537°E, -40041.19m\n    test 1574 circin6 (pygeodesy.ellipsoidalGeodSolve) .deltas: (0.0, 0.0, 0.224326)  FAILED, KNOWN, expected (0.0, 0.0, 0.090491)\n    test 1575 circin6 (pygeodesy.ellipsoidalGeodSolve) .cA: 05.04314°N, 005.014578°E, -48104.09m\n    test 1576 circin6 (pygeodesy.ellipsoidalGeodSolve) .cB: 00.0°N, 002.941713°E, -20168.62m\n    test 1577 circin6 (pygeodesy.ellipsoidalGeodSolve) .cC: 02.961566°N, 000.0°E, -20113.46m\n    test 1578 circin6 (pygeodesy.ellipsoidalGeodSolve) .dA: 327263.596\n    test 1579 circin6 (pygeodesy.ellipsoidalGeodSolve) .dB: 326036.153\n    test 1580 circin6 (pygeodesy.ellipsoidalGeodSolve) .dC: 326020.432\n\n    test 1581 area cw/ccw: 1.0\n\n    testNOAA(pygeodesy.ellipsoidalGeodSolve, 25.08.28)\n    test 1582 NOAAexample1: 191872.1190, 249 03 16.4237, 67 59 11.1619\n    test 1583 NOAAexample2: 182009.1679, 254 42 44.6439, 73 09 21.3315\n    test 1584 NOAAexample3: 123456.7891, 245 00 34.7001, 64 20 24.6864\n    test 1585 NOAAexample4: 145239.0603, 114 29 26.9586, 295 21 32.6566\n\n    testIntersection3(pygeodesy.ellipsoidalGeodSolve, 25.08.28)\n    test 1586 (30, 17): (LatLon(30°52′03.1″N, 015°30′38.41″E), 0, 0)\n    test 1587 (30, 17): (LatLon(30°52′03.1″N, 015°30′38.41″E), -1, 0)\n    test 1588 (-1,  3): (LatLon(01°34′52.49″N, 006°00′51.83″E), -1, -2)\n    test 1589 (-1,  3): (LatLon(01°34′52.49″N, 006°00′51.83″E), -1, 2)\n    test 1590 (65, 32): (LatLon(56°58′26.51″N, 032°00′00.0″E), 1, 0)\n    test 1591 (65, 32): (LatLon(56°58′26.51″N, 032°00′00.0″E), 1, 2)\n    test 1592 (-2, 17): <class 'pygeodesy.errors.IntersectionError'>\n    test 1593 (49, 25): (LatLon(49°00′00.0″N, 025°00′00.0″E), 0, -2)  FAILED, KNOWN, expected (LatLon(49°00′00.0″N, 025°00′00.0″E), 0, 0)\n    test 1594 #58: (LatLon(01°54′25.65″S, 005°37′48.76″E), 1, -2)\n    test 1595 #58: <class 'pygeodesy.errors.IntersectionError'>\n\n    testIntersections2(pygeodesy.ellipsoidalGeodSolve, 25.08.28)\n    test 1596 EquidistantGeodSolve: 36.9879°N, 088.1564°W, 38.2441°N, 092.3835°W\n    test 1597 EquidistantGeodSolve: 36.9879°N, 088.1564°W, 38.2441°N, 092.3835°W\n    test 1598 EquidistantGeodSolve: 00.0°N, 035.3478°W, 00.0°N, 035.3478°E  FAILED, KNOWN, expected 00.0°S, 035.4073°W, 00.0°S, 035.4073°E\n    test 1599 EquidistantGeodSolve: 1.63715 (% of radius)\n    test 1600 EquidistantGeodSolve: 22.657°N, 000.0°E, 22.657°S, 000.0°E  FAILED, KNOWN, expected 22.756°N, 000.0°W, 22.756°S, 000.0°W\n    test 1601 EquidistantGeodSolve: 1.30663 (% of radius)\n    test 1602 EquidistantGeodSolve: 29.4898°N, 040.1785°W, 29.4898°S, 040.1785°E\n    test 1603 EquidistantGeodSolve: 1.31396 (% of radius)\n    test 1604 EquidistantGeodSolve: 02.7402°S, 044.885°E, 02.7402°N, 044.885°E\n    test 1605 EquidistantGeodSolve: 1.83268 (% of radius)\n    test 1606 EquidistantGeodSolve 5: 05.0558°S, 005.0271°W, 05.0558°N, 005.0271°E\n    test 1607 EquidistantGeodSolve 5: 8.37557e-16 (% of radius)\n    test 1608 EquidistantGeodSolve 10: 10.1081°S, 010.2901°W, 10.1081°N, 010.2901°E\n    test 1609 EquidistantGeodSolve 10: 2.09389e-16 (% of radius)\n    test 1610 EquidistantGeodSolve: 20.8072°N, 003.974054°E Random +/- 45\n    test 1611 EquidistantGeodSolve: 20.8072°N, 003.974054°E, 11.649785°N, 007.023557°E  d 3.97e-08 meter (iteration 4)\n    test 1612 EquidistantGeodSolve: 20.8072°N, 003.974054°E, 19.233317°N, 003.788863°E  d 2.19e-08 meter (iteration 3)\n\n    testKarney(pygeodesy.ellipsoidalGeodSolve, 25.08.28, datum='WGS84')\n    test 1613 distanceTo: 866455.4329\n    test 1614 coincident: 0.0\n    test 1615 toDatum: OSGB36\n    test 1616 ValueError2: Ellipsoid 'Airy1830': incompatible with Ellipsoid 'WGS84'\n    test 1617 isEllipsoidal: True\n    test 1618 copy: True\n    test 1619 isEllipsoidal: True\n    test 1620 isSpherical: False\n    test 1621 copy: 37°57′03.7203″S, 144°25′29.5244″E\n\n    testKarneyVincenty(pygeodesy.ellipsoidalGeodSolve, 25.08.28, datum='WGS84')\n    test 1622 coincident: 0.0\n    test 1623 coincident: 0.0, 0.0, 0.0\n    test 1624 destination: 37.6528°S, 143.9265°E\n    test 1625 destination: True\n    test 1626 destination2: 37.652821°S, 143.926496°E, 307.1736°NW\n    test 1627 destination2: True\n    test 1628 finalBearingOn: 307.1736°, 307°10′25.07″NW\n    test 1629 distanceTo: 969954.166\n    test 1630 distanceTo3: 969954.166314, 9.141877, 11.29722\n    test 1631 distanceTo2: 972708.16174, 11.22502\n    test 1632 initialBearingTo: 9.1419°, 9°08′30.76″N\n    test 1633 destination: 58.64402°N, 003.07009°W\n    test 1634 finalBearingTo: 11.2972°, 11°17′49.99″NNE\n    test 1635 finalBearingOn: 11.2972°, 11°17′49.99″NNE\n    test 1636 distanceTo: 404607.806\n    test 1637 distanceTo3: 404607.805988, 156.11064, 157.8345\n    test 1638 distanceTo2: 402574.597287, 157.726344\n    test 1639 initialBearingTo: 156.1106°, 156°06′38.31″SSE\n    test 1640 destination: 48.857°N, 002.351°E\n    test 1641 finalBearingTo: 157.8345°, 157°50′04.2″SSE\n    test 1642 finalBearingOn: 157.8345°, 157°50′04.2″SSE\n    test 1643 distanceTo: 54973.295\n    test 1644 distanceTo3: 54973.29527, 233.13008, 232.82461\n    test 1645 distanceTo2: 54903.41209, 232.9209\n    test 1646 initialBearingTo: 233.1301°, 233°07′48.28″SW\n    test 1647 destination: 37.6528°N, 143.9265°E\n    test 1648 finalBearingTo: 232.8246°, 232°49′28.59″SW\n    test 1649 finalBearingOn: 232.8246°, 232°49′28.59″SW\n    test 1650 distanceToMP: 298396.057\n    test 1651 distanceToSM: 185.415\n    test 1652 distanceToMP: 111319.491\n    test 1653 distanceToMP: 110574.389  FAILED, KNOWN, expected 110574.361\n    test 1654 distanceToKW: 222638.982\n    test 1655 distanceToKW: 111319.491\n    test 1656 distanceTo3: 54972.271\n    test 1657 distanceTo3: 306°52′05.37″\n    test 1658 distanceTo3: 307°10′25.07″\n    test 1659 distanceTo2: 54902.390\n    test 1660 distanceTo2: 307°04′38.41″\n\n    testKarneyVincentyError(pygeodesy.ellipsoidalGeodSolve, 25.08.28, datum='WGS84')\n    test 1661 distanceTo/antipodal (None): 19936288.579\n    test 1662 distanceTo/VincentyError (None): 19944127.421\n    test 1663 initialBearingTo/VincentyError (None): 15.556883\n    test 1664 finalBearingTo/VincentyError (None): 164.442514\n    test 1665 distanceTo/equatorial (None): 20003931.46\n    test 1666 initialBearingTo/equatorial (None): 0.0\n    test 1667 distanceTo/coincident (None): 111319.491\n    test 1668 distanceTo/meridional (None): 10001965.729\n    test 1669 initialBearingTo/meridional (None): 180.0\n    test 1670 distanceTo/coincident (None): 0.0\n    test 1671 initialBearingTo/coincident (None): 180.0\n    test 1672 finalBearingTo/coincident (None): 180.0\n    test 1673 destination/coincident (None): 50.06632°N, 005.71475°W\n    test 1674 distanceTo/anti-meridian (None): 10825924.1\n    test 1675 distanceTo/quadrants (None): 4015703.02\n    test 1676 distanceTo/quadrants (None): 4015703.02\n    test 1677 distanceTo/quadrants (None): 4015703.02\n    test 1678 distanceTo/quadrants (None): 4015703.02\n    test 1679 distanceTo/quadrants (None): 4015703.02\n    test 1680 distanceTo/quadrants (None): 4015703.02\n    test 1681 distanceTo/quadrants (None): 4015703.02\n    test 1682 distanceTo/quadrants (None): 4015703.02\n    test 1683 distanceTo/quadrants (None): 4015703.02\n    test 1684 distanceTo/quadrants (None): 4015703.02\n    test 1685 distanceTo/quadrants (None): 4015703.02\n    test 1686 distanceTo/quadrants (None): 4015703.02\n    test 1687 distanceTo/quadrants (None): 4015703.02\n    test 1688 distanceTo/quadrants (None): 4015703.02\n    test 1689 distanceTo/quadrants (None): 4015703.02\n    test 1690 distanceTo/quadrants (None): 4015703.02\n\n    testKarney(pygeodesy.ellipsoidalGeodSolve, 25.08.28, datum='NAD83')\n    test 1691 distanceTo: 866455.4329\n    test 1692 coincident: 0.0\n    test 1693 toDatum: OSGB36\n    test 1694 ValueError2: Ellipsoid 'Airy1830': incompatible with Ellipsoid 'GRS80'\n    test 1695 isEllipsoidal: True\n    test 1696 copy: True\n    test 1697 isEllipsoidal: True\n    test 1698 isSpherical: False\n    test 1699 copy: 37°57′03.7203″S, 144°25′29.5244″E\n\n    testKarneyVincenty(pygeodesy.ellipsoidalGeodSolve, 25.08.28, datum='NAD83')\n    test 1700 coincident: 0.0\n    test 1701 coincident: 0.0, 0.0, 0.0\n    test 1702 destination: 37.6528°S, 143.9265°E\n    test 1703 destination: True\n    test 1704 destination2: 37.652821°S, 143.926496°E, 307.1736°NW\n    test 1705 destination2: True\n    test 1706 finalBearingOn: 307.1736°, 307°10′25.07″NW\n    test 1707 distanceTo: 969954.166\n    test 1708 distanceTo3: 969954.166314, 9.141877, 11.29722\n    test 1709 distanceTo2: 972708.16174, 11.22502\n    test 1710 initialBearingTo: 9.1419°, 9°08′30.76″N\n    test 1711 destination: 58.64402°N, 003.07009°W\n    test 1712 finalBearingTo: 11.2972°, 11°17′49.99″NNE\n    test 1713 finalBearingOn: 11.2972°, 11°17′49.99″NNE\n    test 1714 distanceTo: 404607.806\n    test 1715 distanceTo3: 404607.805988, 156.11064, 157.8345\n    test 1716 distanceTo2: 402574.597287, 157.726344\n    test 1717 initialBearingTo: 156.1106°, 156°06′38.31″SSE\n    test 1718 destination: 48.857°N, 002.351°E\n    test 1719 finalBearingTo: 157.8345°, 157°50′04.2″SSE\n    test 1720 finalBearingOn: 157.8345°, 157°50′04.2″SSE\n    test 1721 distanceTo: 54973.295\n    test 1722 distanceTo3: 54973.29527, 233.13008, 232.82461\n    test 1723 distanceTo2: 54903.41209, 232.9209\n    test 1724 initialBearingTo: 233.1301°, 233°07′48.28″SW\n    test 1725 destination: 37.6528°N, 143.9265°E\n    test 1726 finalBearingTo: 232.8246°, 232°49′28.59″SW\n    test 1727 finalBearingOn: 232.8246°, 232°49′28.59″SW\n    test 1728 distanceToMP: 298396.057\n    test 1729 distanceToSM: 185.415\n    test 1730 distanceToMP: 111319.491\n    test 1731 distanceToMP: 110574.389  FAILED, KNOWN, expected 110574.361\n    test 1732 distanceToKW: 222638.982\n    test 1733 distanceToKW: 111319.491\n    test 1734 distanceTo3: 54972.271\n    test 1735 distanceTo3: 306°52′05.37″\n    test 1736 distanceTo3: 307°10′25.07″\n    test 1737 distanceTo2: 54902.390\n    test 1738 distanceTo2: 307°04′38.41″\n\n    testKarneyVincentyError(pygeodesy.ellipsoidalGeodSolve, 25.08.28, datum='NAD83')\n    test 1739 distanceTo/antipodal (None): 19936288.579\n    test 1740 distanceTo/VincentyError (None): 19944127.421\n    test 1741 initialBearingTo/VincentyError (None): 15.556883\n    test 1742 finalBearingTo/VincentyError (None): 164.442514\n    test 1743 distanceTo/equatorial (None): 20003931.46\n    test 1744 initialBearingTo/equatorial (None): 0.0\n    test 1745 distanceTo/coincident (None): 111319.491\n    test 1746 distanceTo/meridional (None): 10001965.729\n    test 1747 initialBearingTo/meridional (None): 180.0\n    test 1748 distanceTo/coincident (None): 0.0\n    test 1749 initialBearingTo/coincident (None): 180.0\n    test 1750 finalBearingTo/coincident (None): 180.0\n    test 1751 destination/coincident (None): 50.06632°N, 005.71475°W\n    test 1752 distanceTo/anti-meridian (None): 10825924.1\n    test 1753 distanceTo/quadrants (None): 4015703.02\n    test 1754 distanceTo/quadrants (None): 4015703.02\n    test 1755 distanceTo/quadrants (None): 4015703.02\n    test 1756 distanceTo/quadrants (None): 4015703.02\n    test 1757 distanceTo/quadrants (None): 4015703.02\n    test 1758 distanceTo/quadrants (None): 4015703.02\n    test 1759 distanceTo/quadrants (None): 4015703.02\n    test 1760 distanceTo/quadrants (None): 4015703.02\n    test 1761 distanceTo/quadrants (None): 4015703.02\n    test 1762 distanceTo/quadrants (None): 4015703.02\n    test 1763 distanceTo/quadrants (None): 4015703.02\n    test 1764 distanceTo/quadrants (None): 4015703.02\n    test 1765 distanceTo/quadrants (None): 4015703.02\n    test 1766 distanceTo/quadrants (None): 4015703.02\n    test 1767 distanceTo/quadrants (None): 4015703.02\n    test 1768 distanceTo/quadrants (None): 4015703.02\n\n    testKarney_s(pygeodesy.ellipsoidalGeodSolve, 25.08.28)\n    test 1769 .lat1: -41.320\n    test 1770 .lon1: 174.810\n    test 1771 .azi1: 161.067669986160\n    test 1772 .lat2: 40.960\n    test 1773 .lon2: -5.500\n    test 1774 .azi2: 18.825195123247\n    test 1775 .s12: 19959679.267353821546\n    test 1776 distanceTo3: 19959679.267354, 161.067670, 18.825195\n    test 1777 destination2: 40.96, -5.5, 18.825195123247\n    test 1778 areaOf: 1.366270368e+13\n    test 1779 perimeterOf: 1.683106789e+07\n    test 1780 isclockwise: False\n    test 1781 isclockwise: True\n./test/testLatLon.py:276: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.ellipsoidalExact.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', p.cosineAndoyerLambertTo(q), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:277: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.ellipsoidalExact.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', q.cosineAndoyerLambertTo(p), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:279: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.ellipsoidalExact.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', p.cosineForsytheAndoyerLambertTo(q), '124801.098' if Sph else '125205.965', fmt='%.3f')\n./test/testLatLon.py:280: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.ellipsoidalExact.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', q.cosineForsytheAndoyerLambertTo(p), '124801.098' if Sph else '125205.965', fmt='%.3f')\n    test 1782 areaCO: 2.69154549884e+11\n    test 1783 isclockwise: True\n    test 1784 perimeterCO: 2099854.381923\n\n    testEllipsoidal(pygeodesy.ellipsoidalExact, 25.08.28)\n    test 1785 isEllipsoidal: True\n    test 1786 isSpherical: False\n    test 1787 isEllipsoidal: True\n    test 1788 isSpherical: False\n    test 1789 toDatum: 51.477284°N, 000.00002°E, -45.91m\n    test 1790 toDatum: 51.4773°N, 000.0°E, -45.91m\n    test 1791 toDatum: 51.4778°N, 000.0016°W\n    test 1792 __matmul__: 51.477284°N, 000.00002°E, -45.91m\n    test 1793 __matmul__: 51.477284°N, 000.00002°E, -45.90m\n    test 1794 parse: 51.477284°N, 000.00002°E, -45.91m\n    test 1795 reframe: None\n    test 1796 toCartesian: [3980581.21, -111.159, 4966824.522]\n    test 1797 toCss: -111.158797 5705242.333679\n    test 1798 toCss: -111.158797 5705242.333679\n    test 1799 toEcef: 3980581.21, -111.159, 4966824.522\n    test 1800 toEtm: 30 N 916396 5720041\n    test 1801 toEtm: 30 N 916396 5720041\n    test 1802 toLcc: 5639901 4612638\n    test 1803 toLcc: 5639901 4612638\n    test 1804 toOsgr: TQ 38876 77320\n    test 1805 toOsgr: TQ 38876 77320\n    test 1806 toOsgrTM: TQ 38876 77320\n    test 1807 toUtmUps: 30 N 708207 5707224\n    test 1808 toUtm: 30 N 708207 5707224\n    test 1809 toUtm: 30 N 708207 5707224\n    test 1810 toWm: -178.111 6672799.209\n    test 1811 toWm: -178.111 6672799.209\n    test 1812 elevation2: None\n    test 1813 geoidHeight2: None\n    test 1814 toUtmUps: 30 N 708207 5707224\n    test 1815 toUtm: 30 N 708207 5707224\n    test 1816 toUtm: 30 N 708207 5707224\n    test 1817 toUtmUps: 00 N 2000000 1333272\n    test 1818 toUps: 00 N 2000000 1333272\n    test 1819 toUps: 00 N 0 -666728\n    test 1820 toUps: 00 N 2000000 1555732\n    test 1821 toUtm: 31 N 459200 9217519\n    test 1822 nearestOn: 32.81°N, 031.42°E\n    test 1823 sat: 82.219069°N, 059.719736°E, -6353120.97m\n    test 1824 dop: 51.998889°N, 004.373333°E, +134.64m\n    test 1825 distance: 3802238.5049886215  FAILED, KNOWN, expected 3802238.504989\n    test 1826 neareston8: (LatLon(45°00′00.0″N, 001°00′00.0″E), 4874369.98942, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E), 0.0, 0.0)\n    test 1827 iteration: 0\n    test 1828 neareston8: (LatLon(45°30′03.93″N, 020°00′00.0″E), 39078.779519, 1.501069, 2, LatLon(45°00′00.0″N, 020°00′00.0″E), LatLon(46°00′00.0″N, 020°00′00.0″E), 270.356041, 269.999412)\n    test 1829 iteration: 1\n    test 1830 nearestOn: 54.928536°N, 021.934843°W\n    test 1831 intersecant2: 2.789e-14% 60 LatLon(03°18′54.69″S, 023°52′08.48″E)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 1832 intersecant2: 1.394e-14% 60 LatLon(22°22′23.65″S, 007°55′54.49″E)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 1833 intersecant2: 1.255e-13% 57 LatLon(10°39′24.95″N, 034°45′48.18″W)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 1834 intersecant2: 1.673e-13% 57 LatLon(25°11′09.14″S, 005°10′35.44″W)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 1835 intersecant2: 1.394e-14% 61 LatLon(10°14′21.91″S, 021°00′17.05″E)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 1836 intersecant2: 5.577e-14% 61 LatLon(20°55′17.31″S, 010°40′21.43″E)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 1837 intersecant2: center (LatLon(05°00′00.0″N, 005°00′00.0″W)), circle (3339584), end (LatLon(15°00′00.0″N, 045°00′00.0″E)), exact (False), start (LatLon(45°00′00.0″S, 015°00′00.0″W)) or wrap (False): 'too distant (3.69e+06) plumb to (16°56′45.9″S, 020°17′02.98″E)'\n    test 1838 intersecant2: 2.092e-13% 52 LatLon(23°43′50.75″S, 014°26′25.46″W)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 1839 intersecant2: 1.394e-14% 52 LatLon(23°53′52.28″N, 019°17′39.65″E)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 1840 intersecant2: center (LatLon(05°00′00.0″N, 005°00′00.0″W)), circle (3339584), end (55.06636042948362), exact (False), start (LatLon(23°53′52.28″N, 019°17′39.65″E)) or wrap (False): 'too distant (1.74e+07) plumb to (12°59′26.07″N, 168°58′16.6″W)'\n    test 1841 intersecant2: 1.534e-13% 53 LatLon(15°03′43.48″N, 023°46′15.73″E)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 1842 intersecant2: 1.394e-13% 53 LatLon(17°23′19.49″S, 025°22′57.81″W)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 1843 intersecant2: center (LatLon(05°00′00.0″N, 005°00′00.0″W)), circle (3339584), end (223.95233608891945), exact (False), start (LatLon(17°23′19.49″S, 025°22′57.81″W)) or wrap (False): 'too distant (1.68e+07) plumb to (15°29′45.42″N, 164°13′07.19″W)'\n    test 1844 intersecant2: center (LatLon(05°00′00.0″N, 005°00′00.0″W)), circle (3339584), end (LatLon(07°42′37.6″S, 022°16′38.56″E)), exact (False), start (LatLon(01°45′35.97″N, 024°53′01.35″E)) or wrap (False): 'no convergence (2.37487e-08), tolerance (1.49012e-08) plumb to (02°58′34.34″S, 023°35′10.02″E)'\n    test 1845 intersecant2: center (LatLon(05°00′00.0″N, 005°00′00.0″W)), circle (3339584), end (96.91853747622197), exact (False), start (LatLon(01°45′35.97″N, 024°53′01.35″E)) or wrap (False): 'no convergence (131072), tolerance (1.49012e-08) plumb to (06°01′20.31″S, 004°51′02.4″W)'\n\n    testLatLon(pygeodesy.ellipsoidalExact, 25.08.28)\n    test 1846 isEllipsoidal: True\n    test 1847 isSpherical: False\n    test 1848 lat/lonDMS: 52.20472°N, 000.14056°E\n    test 1849 lat/lonDMS F_DM: 52°12.283′N, 000°08.434′E\n    test 1850 lat/lonDMS F_DM: 52°12.2832′N, 000°08.4336′E\n    test 1851 lat/lonDMS F_DMS: 52°12′17″N, 000°08′26″E\n    test 1852 lat/lonDMS F_DMS: 52°12′17.0″N, 000°08′26.0″E\n    test 1853 lat/lonDMS F_RAD: 0.911144N, 0.002453E\n    test 1854 isequalTo: True\n    test 1855 isequalTo: True\n    test 1856 latlon2: 52.20472, 0.14056\n    test 1857 latlon2: 52.2047, 0.1406\n    test 1858 latlon2: 52.205, 0.141\n    test 1859 latlon2: 52.2, 0.14\n    test 1860 latlon2: 52.2, 0.1\n    test 1861 latlon2: 52.0, 0.0\n    test 1862 chordTo: 12029263.15\n    test 1863 chordTo: 12029049.69\n    test 1864 initialBearingTo: 156.1106\n    test 1865 initialBearingTo: 65.9335\n    test 1866 initialBearingTo: 0.0\n    test 1867 initialBearingTo: 180.0\n    test 1868 finalBearingTo: 157.8345\n    test 1869 finalBearingTo: 93.9034\n    test 1870 bearingTo2: 156.1106, 157.8345\n    test 1871 ispolar: True\n    test 1872 copy: True\n    test 1873 __eq__: True\n    test 1874 __ne__: False\n    test 1875 equirectangularTo: 404329.56\n    test 1876 distanceTo: 404607.805988\n    test 1877 distanceTo: 404607.805988\n    test 1878 distanceTo: 3981601\n    test 1879 antipodal: False\n    test 1880 distanceTo dateline: 19959679.267\n    test 1881 distanceTo unrolled: 19959679.267\n    test 1882 antipodal: False\n    test 1883 distanceTo dateline: 9513998\n    test 1884 distanceTo unrolled: 9513998\n    test 1885 distanceTo: 18012714.66\n    test 1886 distanceTo: 20003931.46\n    test 1887 distanceTo3 dateline: 19959679.2674, 161.0677, 18.8252\n    test 1888 distanceTo3 dateline: 9513997.9901, 42.9164, 138.8903\n    test 1889 distanceTo3 dateline: 19959679.2674, 161.0677, 18.8252\n    test 1890 distanceTo3 dateline: 9513997.9901, 42.9164, 138.8903\n    test 1891 intermediateTo: 51.372275°N, 000.707253°E\n    test 1892 intermediateTo: True\n    test 1893 intermediateTo: 404607.806\n    test 1894 intermediateTo+5: 35.139582°N, 008.994368°E\n    test 1895 intermediateTo+5: 5.000\n    test 1896 intermediateTo-4: 64.894124°N, 013.705689°W\n    test 1897 intermediateTo-4: 4.000\n    test 1898 intermediateTo-h: 125.000\n    test 1899 midpointTo: 50.536583°N, 001.274507°E\n    test 1900 destination: 51.513526°N, 000.098038°W\n    test 1901 destination: 51°30′49″N, 000°05′53″W\n    test 1902 destination: 33°57′N, 118°24′W\n    test 1903 destination: 33.950367°N, 118.399012°W\n    test 1904 destination: 0.592546N, 2.066453W\n    test 1905 destination: 32.11195529°N, 064.56074722°E  FAILED, KNOWN, expected 32.11195529°N, 063.95925278°E\n    test 1906 neareston6: (LatLon(45°00′00.0″N, 001°00′00.0″E), 4755443.4294, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E))\n    test 1907 neareston6: (LatLon(45°30′03.94″N, 002°00′00.0″E), 39078.729285, 1.501072, 2, LatLon(45°00′00.0″N, 002°00′00.0″E), LatLon(46°00′00.0″N, 002°00′00.0″E))\n    test 1908 chordTo: 125203.963\n    test 1909 cosineAndoyerLambertTo: 125205.962\n    test 1910 cosineAndoyerLambertTo: 125205.962\n    test 1911 cosineForsyheAndoyerLambertTo: 125205.965\n    test 1912 cosineForsyheAndoyerLambertTo: 125205.965\n    test 1913 cosineLawTo: 124801.098\n    test 1914 cosineLawTo: 124801.098\n    test 1915 equirectangularTo: 124804.754\n    test 1916 equirectangularTo: 124804.754\n    test 1917 euclideanTo: 130015.089\n    test 1918 euclideanTo: 130015.089\n    test 1919 flatLocalTo: 125209.633\n    test 1920 flatLocalTo: 125209.633\n    test 1921 flatPolarTo: 133663.257\n    test 1922 flatPolarTo: 133663.257\n    test 1923 hartzell: 53.3206°N, 001.7297°W\n# lazily imported pygeodesy.Triaxial from .triaxials.triaxial5 by ellipsoids.py line 1905\n    test 1924 hartzell: 53.349541°N, 001.7297°W\n    test 1925 height4: 0.0\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by cartesianBase.py line 364\n    test 1926 height4: (3820333.9, -115367.0, 5097204.4, -6584.9)\n    test 1927 height4: 53°19′14.2″N, 001°43′46.9″W\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by cartesianBase.py line 364\n    test 1928 height4: 53°19′14.2″N, 001°43′46.9″W\n    test 1929 haversineTo: 124801.098\n    test 1930 haversineTo: 124801.098\n    test 1931 hubenyTo: <bound method LatLonBase.flatLocalTo of LatLon(53°19′14.16″N, 001°43′46.92″W)>\n    test 1932 hubenyTo: <bound method LatLonBase.flatLocalTo of LatLon(53°11′19.32″N, 000°08′00.24″E)>\n    test 1933 thomasTo: 125206.188\n    test 1934 thomasTo: 125206.188\n    test 1935 vincentysTo: 124801.098\n    test 1936 vincentysTo: 124801.098\n    test 1937 isclockwise: False\n    test 1938 isclockwise*: False\n    test 1939 isclockwise: True\n    test 1940 isclockwise*: True\n    test 1941 isclockwise: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 1942 isclockwise*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 1943 isclockwise: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 1944 isclockwise*: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 1945 isconvex: False\n    test 1946 isconvex*: False\n    test 1947 isconvex: True\n    test 1948 isconvex*: True\n    test 1949 isconvex: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 1950 isconvex*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 1951 isenclosedBy1: True\n    test 1952 isenclosedBy1*: True\n    test 1953 isenclosedBy2: False\n    test 1954 isenclosedBy2*: False\n    test 1955 isenclosedBy3: False\n    test 1956 isenclosedBy3*: False\n    test 1957 isenclosedBy4: False\n    test 1958 isenclosedBy4*: False\n    test 1959 isenclosedBy5: False\n    test 1960 isenclosedBy5*: False\n    test 1961 isenclosedBy6: True\n    test 1962 isenclosedBy6*: True\n    test 1963 isenclosedBy7: True\n    test 1964 isenclosedBy7*: True\n    test 1965 isenclosedBy-CCW: True\n    test 1966 isenclosedBy-CW : True\n    test 1967 isenclosedBy-CCW: True\n    test 1968 initialBearingTo: 102.392291\n    test 1969 compassAngleTo: 100.017\n    test 1970 compassAngleTo: 105.599\n    test 1971 initialBearingTo: 288.676039\n    test 1972 compassAngleTo: 280.017\n    test 1973 compassAngleTo: 285.599\n    test 1974 equirectangularTo: 592.185\n    test 1975 distanceTo: 593.571\n    test 1976 bearingTo: 0.0\n    test 1977 compassAngleTo: 0.0\n    test 1978 bearingTo: 45.2  FAILED, KNOWN, expected 45.0\n    test 1979 compassAngleTo: 45.0\n    test 1980 bearingTo: 90.0\n    test 1981 compassAngleTo: 90.0\n    test 1982 bearingTo: 180.0\n    test 1983 compassAngleTo: 180.0\n    test 1984 bearingTo: 225.2  FAILED, KNOWN, expected 225.0\n    test 1985 compassAngleTo: 225.0\n    test 1986 bearingTo: 314.8  FAILED, KNOWN, expected 315.0\n    test 1987 compassAngleTo: 315.0\n    test 1988 bearingTo: 270.0\n    test 1989 compassAngleTo: 270.0\n    test 1990 bearingTo: 0.0  FAILED, KNOWN, expected 359.4\n    test 1991 compassAngleTo: 359.4\n    test 1992 latlon2: (53.0, 1.0)\n    test 1993 philam2: (0.93, 0.02)\n    test 1994 bearingTo: 31\n    test 1995 compassAngleTo: 31\n    test 1996 compassAngleTo: 45\n\n    test 1997 boundsOf: <class 'pygeodesy.namedTuples.Bounds2Tuple'>\n    test 1998 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 1999 latlon2: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 2000 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 2001 isequalTo: <class 'bool'>\n    test 2002 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 2003 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 2004 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 2005 xyz3: <class 'tuple'>\n    test 2006 xyzh: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 2007 compassAngleTo: <class 'float'>\n    test 2008 cosineLawTo: <class 'float'>\n    test 2009 euclideanTo: <class 'float'>\n    test 2010 flatLocalTo: <class 'float'>\n    test 2011 flatPolarTo: <class 'float'>\n    test 2012 haversineTo: <class 'float'>\n    test 2013 hubenyTo: <class 'float'>\n    test 2014 vincentysTo: <class 'float'>\n    test 2015 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 2016 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 2017 toLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 2018 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 2019 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 2020 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 2021 toNvector: (0.615661, 0.0, 0.788011, 0)\n    test 2022 toVector: (3934960.466675, 0.0, 5002803.345483)\n    test 2023 toVector3d: (0.61823, 0.0, 0.786)\n\n    test 2024 trilaterate5 (pygeodesy.ellipsoidalExact) .min: 305.091\n    test 2025 trilaterate5 (pygeodesy.ellipsoidalExact) .point: 42.66933643°N, 002.48620262°E\n    test 2026 trilaterate5 (pygeodesy.ellipsoidalExact) .max: 1592.545\n    test 2027 trilaterate5 (pygeodesy.ellipsoidalExact) .point: 42.65141232°N, 002.46816989°E\n    test 2028 trilaterate5 (pygeodesy.ellipsoidalExact) .n: 3\n    test 2029 trilaterate5 (pygeodesy.ellipsoidalExact) .min: 127.229\n    test 2030 trilaterate5 (pygeodesy.ellipsoidalExact) .max: 152.612\n    test 2031 trilaterate5 (pygeodesy.ellipsoidalExact) .point: 42.67815375°N, 002.49950041°E\n    test 2032 trilaterate5 (pygeodesy.ellipsoidalExact) .n: 2\n    test 2033 trilaterate5 (pygeodesy.ellipsoidalExact) .min: 2400.293\n    test 2034 trilaterate5 (pygeodesy.ellipsoidalExact) .max: 2400.293\n    test 2035 trilaterate5 (pygeodesy.ellipsoidalExact) .point: 42.66128984°N, 002.47973818°E\n    test 2036 trilaterate5 (pygeodesy.ellipsoidalExact) .min- is .maxPoint: True\n    test 2037 trilaterate5 (pygeodesy.ellipsoidalExact) .n: 1\n    test 2038 trilaterate5 (pygeodesy.ellipsoidalExact) .min: 1343.743\n    test 2039 trilaterate5 (pygeodesy.ellipsoidalExact) .point: 42.69131964°N, 002.50112167°E\n    test 2040 trilaterate5 (pygeodesy.ellipsoidalExact) .max: 1445.554\n    test 2041 trilaterate5 (pygeodesy.ellipsoidalExact) .point: 42.67815375°N, 002.49950041°E\n    test 2042 trilaterate5 (pygeodesy.ellipsoidalExact) .n: 2\n    test 2043 radii11: Radii11Tuple(rA=7244.792747, rB=1828.106695, rC=2.25502, cR=57792.067128, rIn=57.366968, riS=2.087668, roS=2.443334, a=1830.361715, b=7247.047766, c=9072.899442, s=9075.154461)\n    test 2044 circum3 (pygeodesy.ellipsoidalExact) .radius: 57792.067\n    test 2045 circum3 (pygeodesy.ellipsoidalExact) .center: 43.053532°N, 002.943255°E, -261.66m\n    test 2046 circum3 (pygeodesy.ellipsoidalExact) .deltas: (-0.0, 0.0, 9.827)  FAILED, KNOWN, expected (0.0, 0.0, 11.383)\n    test 2047 circum3 (pygeodesy.ellipsoidalExact) .d1: 57792.858\n    test 2048 circum3 (pygeodesy.ellipsoidalExact) .d2: 57792.859\n    test 2049 circum3 (pygeodesy.ellipsoidalExact) .d3: 57792.859\n    test 2050 circum3 (pygeodesy.ellipsoidalExact) .datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 2051 circum3 (pygeodesy.ellipsoidalExact) .Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n\n    test 2052 radii11: Radii11Tuple(rA=7244.792747, rB=1828.106695, rC=2.25502, cR=57792.067128, rIn=57.366968, riS=2.087668, roS=2.443334, a=1830.361715, b=7247.047766, c=9072.899442, s=9075.154461)\n    test 2053 circum4 (pygeodesy.ellipsoidalExact) .radius: 3184256.748\n    test 2054 circum4 (pygeodesy.ellipsoidalExact) .center: 43.054367°N, 002.942573°E, -3183993.92m\n    test 2055 circum4 (pygeodesy.ellipsoidalExact) .rank: 3\n    test 2056 circum4 (pygeodesy.ellipsoidalExact) .residuals: ()\n    test 2057 circum4 (pygeodesy.ellipsoidalExact) .d1: 57818.033\n    test 2058 circum4 (pygeodesy.ellipsoidalExact) .d2: 57834.176\n    test 2059 circum4 (pygeodesy.ellipsoidalExact) .d3: 57830.992\n    test 2060 circum4 (pygeodesy.ellipsoidalExact) .datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 2061 circum4 (pygeodesy.ellipsoidalExact) .Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 2062 radii11: Radii11Tuple(rA=327537.482637, rB=776914.262482, rC=784245.052526, cR=780602.180901, rIn=325058.721103, riS=84975.664195, roS=INF, a=1561159.315008, b=1111782.535163, c=1104451.745119, s=1888696.797645)\n    test 2063 circin6 (pygeodesy.ellipsoidalExact) .rB+rC: 1561159.315\n    test 2064 circin6 (pygeodesy.ellipsoidalExact) .rC+pA: 1111782.535\n    test 2065 circin6 (pygeodesy.ellipsoidalExact) .rA+rB: 1104451.745\n    test 2066 circin6 (pygeodesy.ellipsoidalExact) .radius: 325058.721\n    test 2067 circin6 (pygeodesy.ellipsoidalExact) .center: 02.948531°N, 002.932537°E, -40041.19m\n    test 2068 circin6 (pygeodesy.ellipsoidalExact) .deltas: (0.0, 0.0, 0.224326)  FAILED, KNOWN, expected (0.0, 0.0, 0.090491)\n    test 2069 circin6 (pygeodesy.ellipsoidalExact) .cA: 05.04314°N, 005.014578°E, -48104.09m\n    test 2070 circin6 (pygeodesy.ellipsoidalExact) .cB: 00.0°N, 002.941713°E, -20168.62m\n    test 2071 circin6 (pygeodesy.ellipsoidalExact) .cC: 02.961566°N, 000.0°E, -20113.46m\n    test 2072 circin6 (pygeodesy.ellipsoidalExact) .dA: 327263.596\n    test 2073 circin6 (pygeodesy.ellipsoidalExact) .dB: 326036.153\n    test 2074 circin6 (pygeodesy.ellipsoidalExact) .dC: 326020.432\n\n    test 2075 area cw/ccw: 1.0\n\n    testNOAA(pygeodesy.ellipsoidalExact, 25.08.28)\n    test 2076 NOAAexample1: 191872.1190, 249 03 16.4237, 67 59 11.1619\n    test 2077 NOAAexample2: 182009.1679, 254 42 44.6439, 73 09 21.3315\n    test 2078 NOAAexample3: 123456.7891, 245 00 34.7001, 64 20 24.6864\n    test 2079 NOAAexample4: 145239.0603, 114 29 26.9586, 295 21 32.6566\n\n    testIntersection3(pygeodesy.ellipsoidalExact, 25.08.28)\n    test 2080 (30, 17): (LatLon(30°52′03.1″N, 015°30′38.41″E), 0, 0)\n    test 2081 (30, 17): (LatLon(30°52′03.1″N, 015°30′38.41″E), -1, 0)\n    test 2082 (-1,  3): (LatLon(01°34′52.49″N, 006°00′51.83″E), -1, -2)\n    test 2083 (-1,  3): (LatLon(01°34′52.49″N, 006°00′51.83″E), -1, 2)\n    test 2084 (65, 32): (LatLon(56°58′26.51″N, 032°00′00.0″E), 1, 0)\n    test 2085 (65, 32): (LatLon(56°58′26.51″N, 032°00′00.0″E), 1, 2)\n    test 2086 (-2, 17): <class 'pygeodesy.errors.IntersectionError'>\n    test 2087 (49, 25): (LatLon(49°00′00.0″N, 025°00′00.0″E), 0, -2)  FAILED, KNOWN, expected (LatLon(49°00′00.0″N, 025°00′00.0″E), 0, 0)\n    test 2088 #58: (LatLon(01°54′25.65″S, 005°37′48.76″E), 1, -2)\n    test 2089 #58: <class 'pygeodesy.errors.IntersectionError'>\n    test 2090 intersection3: (LatLon(54°43′01.31″N, 014°33′49.88″W), 0, 0)\n    test 2091 intersection3: 54.71703°N, 014.563856°W\n\n    testIntersections2(pygeodesy.ellipsoidalExact, 25.08.28)\n    test 2092 EquidistantExact: 36.9879°N, 088.1564°W, 38.2441°N, 092.3835°W\n    test 2093 EquidistantExact: 36.9879°N, 088.1564°W, 38.2441°N, 092.3835°W\n    test 2094 EquidistantExact: 00.0°N, 035.3478°W, 00.0°N, 035.3478°E  FAILED, KNOWN, expected 00.0°N, 035.3478°W, 00.0°S, 035.3478°E\n    test 2095 EquidistantExact: 1.63715 (% of radius)\n    test 2096 EquidistantExact: 22.657°N, 000.0°W, 22.657°S, 000.0°E  FAILED, KNOWN, expected 22.657°N, 000.0°E, 22.657°S, 000.0°E\n    test 2097 EquidistantExact: 1.30663 (% of radius)\n    test 2098 EquidistantExact: 29.4898°N, 040.1785°W, 29.4898°S, 040.1785°E\n    test 2099 EquidistantExact: 1.31396 (% of radius)\n    test 2100 EquidistantExact: 02.7402°S, 044.885°E, 02.7402°N, 044.885°E\n    test 2101 EquidistantExact: 1.83268 (% of radius)\n    test 2102 EquidistantExact 5: 05.0558°S, 005.0271°W, 05.0558°N, 005.0271°E\n    test 2103 EquidistantExact 5: 4.18779e-16 (% of radius)\n    test 2104 EquidistantExact 10: 10.1081°S, 010.2901°W, 10.1081°N, 010.2901°E\n    test 2105 EquidistantExact 10: 4.18779e-16 (% of radius)\n    test 2106 EquidistantExact: 11.869487°S, 017.244575°W Random +/- 45\n    test 2107 EquidistantExact: 11.869487°S, 017.244575°W, 11.293167°N, 040.204052°W  d 2.21801e-09 meter (iteration 3)\n    test 2108 EquidistantExact: 11.869487°S, 017.244575°W, 14.530994°S, 076.555039°E  d 2.74109e-09 meter (iteration 3)\n\n    testKarney(pygeodesy.ellipsoidalExact, 25.08.28, datum='WGS84')\n    test 2109 distanceTo: 866455.4329\n    test 2110 coincident: 0.0\n    test 2111 toDatum: OSGB36\n    test 2112 ValueError2: Ellipsoid 'Airy1830': incompatible with Ellipsoid 'WGS84'\n    test 2113 isEllipsoidal: True\n    test 2114 copy: True\n    test 2115 isEllipsoidal: True\n    test 2116 isSpherical: False\n    test 2117 copy: 37°57′03.7203″S, 144°25′29.5244″E\n\n    testKarneyVincenty(pygeodesy.ellipsoidalExact, 25.08.28, datum='WGS84')\n    test 2118 coincident: 0.0\n    test 2119 coincident: 0.0, 0.0, 0.0\n    test 2120 destination: 37.6528°S, 143.9265°E\n    test 2121 destination: True\n    test 2122 destination2: 37.652821°S, 143.926496°E, 307.1736°NW\n    test 2123 destination2: True\n    test 2124 finalBearingOn: 307.1736°, 307°10′25.07″NW\n    test 2125 distanceTo: 969954.166\n    test 2126 distanceTo3: 969954.166314, 9.141877, 11.29722\n    test 2127 distanceTo2: 972708.16174, 11.22502\n    test 2128 initialBearingTo: 9.1419°, 9°08′30.76″N\n    test 2129 destination: 58.64402°N, 003.07009°W\n    test 2130 finalBearingTo: 11.2972°, 11°17′49.99″NNE\n    test 2131 finalBearingOn: 11.2972°, 11°17′49.99″NNE\n    test 2132 distanceTo: 404607.806\n    test 2133 distanceTo3: 404607.805988, 156.11064, 157.8345\n    test 2134 distanceTo2: 402574.597287, 157.726344\n    test 2135 initialBearingTo: 156.1106°, 156°06′38.31″SSE\n    test 2136 destination: 48.857°N, 002.351°E\n    test 2137 finalBearingTo: 157.8345°, 157°50′04.2″SSE\n    test 2138 finalBearingOn: 157.8345°, 157°50′04.2″SSE\n    test 2139 distanceTo: 54973.295\n    test 2140 distanceTo3: 54973.29527, 233.13008, 232.82461\n    test 2141 distanceTo2: 54903.41209, 232.9209\n    test 2142 initialBearingTo: 233.1301°, 233°07′48.28″SW\n    test 2143 destination: 37.6528°N, 143.9265°E\n    test 2144 finalBearingTo: 232.8246°, 232°49′28.59″SW\n    test 2145 finalBearingOn: 232.8246°, 232°49′28.59″SW\n    test 2146 distanceToMP: 298396.057\n    test 2147 distanceToSM: 185.415\n    test 2148 distanceToMP: 111319.491\n    test 2149 distanceToMP: 110574.389  FAILED, KNOWN, expected 110574.361\n    test 2150 distanceToKW: 222638.982\n    test 2151 distanceToKW: 111319.491\n    test 2152 distanceTo3: 54972.271\n    test 2153 distanceTo3: 306°52′05.37″\n    test 2154 distanceTo3: 307°10′25.07″\n    test 2155 distanceTo2: 54902.390\n    test 2156 distanceTo2: 307°04′38.41″\n\n    testKarneyVincentyError(pygeodesy.ellipsoidalExact, 25.08.28, datum='WGS84')\n    test 2157 distanceTo/antipodal (None): 19936288.579\n    test 2158 distanceTo/VincentyError (None): 19944127.421\n    test 2159 initialBearingTo/VincentyError (None): 15.556883\n    test 2160 finalBearingTo/VincentyError (None): 164.442514\n    test 2161 distanceTo/equatorial (None): 20001517.12  FAILED, KNOWN, expected 20003931.46\n    test 2162 initialBearingTo/equatorial (None): 0.0\n    test 2163 distanceTo/coincident (None): 111319.491\n    test 2164 distanceTo/meridional (None): 9999551.606\n    test 2165 initialBearingTo/meridional (None): 180.0\n    test 2166 distanceTo/coincident (None): 0.0\n    test 2167 initialBearingTo/coincident (None): 180.0\n    test 2168 finalBearingTo/coincident (None): 180.0\n    test 2169 destination/coincident (None): 50.06632°N, 005.71475°W\n    test 2170 distanceTo/anti-meridian (None): 10825924.1\n    test 2171 distanceTo/quadrants (None): 4015703.02\n    test 2172 distanceTo/quadrants (None): 4015703.02\n    test 2173 distanceTo/quadrants (None): 4015703.02\n    test 2174 distanceTo/quadrants (None): 4015703.02\n    test 2175 distanceTo/quadrants (None): 4015703.02\n    test 2176 distanceTo/quadrants (None): 4015703.02\n    test 2177 distanceTo/quadrants (None): 4015703.02\n    test 2178 distanceTo/quadrants (None): 4015703.02\n    test 2179 distanceTo/quadrants (None): 4015703.02\n    test 2180 distanceTo/quadrants (None): 4015703.02\n    test 2181 distanceTo/quadrants (None): 4015703.02\n    test 2182 distanceTo/quadrants (None): 4015703.02\n    test 2183 distanceTo/quadrants (None): 4015703.02\n    test 2184 distanceTo/quadrants (None): 4015703.02\n    test 2185 distanceTo/quadrants (None): 4015703.02\n    test 2186 distanceTo/quadrants (None): 4015703.02\n\n    testKarney(pygeodesy.ellipsoidalExact, 25.08.28, datum='NAD83')\n    test 2187 distanceTo: 866455.4329\n    test 2188 coincident: 0.0\n    test 2189 toDatum: OSGB36\n    test 2190 ValueError2: Ellipsoid 'Airy1830': incompatible with Ellipsoid 'GRS80'\n    test 2191 isEllipsoidal: True\n    test 2192 copy: True\n    test 2193 isEllipsoidal: True\n    test 2194 isSpherical: False\n    test 2195 copy: 37°57′03.7203″S, 144°25′29.5244″E\n\n    testKarneyVincenty(pygeodesy.ellipsoidalExact, 25.08.28, datum='NAD83')\n    test 2196 coincident: 0.0\n    test 2197 coincident: 0.0, 0.0, 0.0\n    test 2198 destination: 37.6528°S, 143.9265°E\n    test 2199 destination: True\n    test 2200 destination2: 37.652821°S, 143.926496°E, 307.1736°NW\n    test 2201 destination2: True\n    test 2202 finalBearingOn: 307.1736°, 307°10′25.07″NW\n    test 2203 distanceTo: 969954.166\n    test 2204 distanceTo3: 969954.166314, 9.141877, 11.29722\n    test 2205 distanceTo2: 972708.16174, 11.22502\n    test 2206 initialBearingTo: 9.1419°, 9°08′30.76″N\n    test 2207 destination: 58.64402°N, 003.07009°W\n    test 2208 finalBearingTo: 11.2972°, 11°17′49.99″NNE\n    test 2209 finalBearingOn: 11.2972°, 11°17′49.99″NNE\n    test 2210 distanceTo: 404607.806\n    test 2211 distanceTo3: 404607.805988, 156.11064, 157.8345\n    test 2212 distanceTo2: 402574.597287, 157.726344\n    test 2213 initialBearingTo: 156.1106°, 156°06′38.31″SSE\n    test 2214 destination: 48.857°N, 002.351°E\n    test 2215 finalBearingTo: 157.8345°, 157°50′04.2″SSE\n    test 2216 finalBearingOn: 157.8345°, 157°50′04.2″SSE\n    test 2217 distanceTo: 54973.295\n    test 2218 distanceTo3: 54973.29527, 233.13008, 232.82461\n    test 2219 distanceTo2: 54903.41209, 232.9209\n    test 2220 initialBearingTo: 233.1301°, 233°07′48.28″SW\n    test 2221 destination: 37.6528°N, 143.9265°E\n    test 2222 finalBearingTo: 232.8246°, 232°49′28.59″SW\n    test 2223 finalBearingOn: 232.8246°, 232°49′28.59″SW\n    test 2224 distanceToMP: 298396.057\n    test 2225 distanceToSM: 185.415\n    test 2226 distanceToMP: 111319.491\n    test 2227 distanceToMP: 110574.389  FAILED, KNOWN, expected 110574.361\n    test 2228 distanceToKW: 222638.982\n    test 2229 distanceToKW: 111319.491\n    test 2230 distanceTo3: 54972.271\n    test 2231 distanceTo3: 306°52′05.37″\n    test 2232 distanceTo3: 307°10′25.07″\n    test 2233 distanceTo2: 54902.390\n    test 2234 distanceTo2: 307°04′38.41″\n\n    testKarneyVincentyError(pygeodesy.ellipsoidalExact, 25.08.28, datum='NAD83')\n    test 2235 distanceTo/antipodal (None): 19936288.579\n    test 2236 distanceTo/VincentyError (None): 19944127.421\n    test 2237 initialBearingTo/VincentyError (None): 15.556883\n    test 2238 finalBearingTo/VincentyError (None): 164.442514\n    test 2239 distanceTo/equatorial (None): 20001517.12  FAILED, KNOWN, expected 20003931.46\n    test 2240 initialBearingTo/equatorial (None): 0.0\n    test 2241 distanceTo/coincident (None): 111319.491\n    test 2242 distanceTo/meridional (None): 9999551.606\n    test 2243 initialBearingTo/meridional (None): 180.0\n    test 2244 distanceTo/coincident (None): 0.0\n    test 2245 initialBearingTo/coincident (None): 180.0\n    test 2246 finalBearingTo/coincident (None): 180.0\n    test 2247 destination/coincident (None): 50.06632°N, 005.71475°W\n    test 2248 distanceTo/anti-meridian (None): 10825924.1\n    test 2249 distanceTo/quadrants (None): 4015703.02\n    test 2250 distanceTo/quadrants (None): 4015703.02\n    test 2251 distanceTo/quadrants (None): 4015703.02\n    test 2252 distanceTo/quadrants (None): 4015703.02\n    test 2253 distanceTo/quadrants (None): 4015703.02\n    test 2254 distanceTo/quadrants (None): 4015703.02\n    test 2255 distanceTo/quadrants (None): 4015703.02\n    test 2256 distanceTo/quadrants (None): 4015703.02\n    test 2257 distanceTo/quadrants (None): 4015703.02\n    test 2258 distanceTo/quadrants (None): 4015703.02\n    test 2259 distanceTo/quadrants (None): 4015703.02\n    test 2260 distanceTo/quadrants (None): 4015703.02\n    test 2261 distanceTo/quadrants (None): 4015703.02\n    test 2262 distanceTo/quadrants (None): 4015703.02\n    test 2263 distanceTo/quadrants (None): 4015703.02\n    test 2264 distanceTo/quadrants (None): 4015703.02\n\n    testKarney_s(pygeodesy.ellipsoidalExact, 25.08.28)\n    test 2265 .lat1: -41.320\n    test 2266 .lon1: 174.810\n    test 2267 .azi1: 161.067669986160\n    test 2268 .lat2: 40.960\n    test 2269 .lon2: -5.500\n    test 2270 .azi2: 18.825195123247\n    test 2271 .s12: 19959679.267353817821  FAILED, KNOWN, expected 19959679.267353821546\n    test 2272 distanceTo3: 19959679.267354, 161.067670, 18.825195\n    test 2273 destination2: 40.96, -5.5, 18.825195123247\n    test 2274 areaOf: 1.366270368e+13\n    test 2275 perimeterOf: 1.683089136e+07\n    test 2276 isclockwise: False\n    test 2277 isclockwise: True\n    test 2278 areaCO: 2.69154549884e+11\n    test 2279 isclockwise: True\n    test 2280 perimeterCO: 2099102.485159  FAILED, KNOWN, expected 2098430.887891\n\n    914 of 2280 testEllipsoidal.py tests (40.1%) FAILED, incl. 141 KNOWN plus 773 DeprecationWarnings, 64 skipped (pygeodesy 26.3.26 Python 3.12.10 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 2.1.0 scipy 1.14.1 Math 2 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 isLazy 3 -W  default) 13:58.018\nrunning /usr/local/bin/p....n3.12 -W default ~/PyGeodesy/test/testEllipsoidalGeodTest.py\n./pygeodesy/ellipsoidalKarney.py:94: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return self.datum.ellipsoid.geodesic\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.ellipsoidalExact by testEllipsoidalGeodTest.py line 15\n# lazily imported pygeodesy.ellipsoidalKarney by testEllipsoidalGeodTest.py line 15\n# lazily imported pygeodesy.ellipsoidalVincenty by testEllipsoidalGeodTest.py line 15\n# lazily imported pygeodesy.Ellipsoids from .ellipsoids by testEllipsoidalGeodTest.py line 15\n# lazily imported pygeodesy.VincentyError from .ellipsoidalVincenty by testEllipsoidalGeodTest.py line 15\n\n    testing testEllipsoidalGeodTest.py 23.12.18 (module pygeodesy.ellipsoidalKarney 25.05.27) isLazy=3\n    test 1 line 1 lat: -48.164271\n    test 2 line 1 lon: 5.762345\n    test 3 line 1 fb: 175.334308\n# lazily imported pygeodesy.geodesicw by ellipsoids.py line 1074\n    test 4 line 1 lat2: -48.164270779098\n    test 5 line 1 lon2: 5.762344694676  FAILED, KNOWN, expected 5.762344694677\n    test 6 line 1 azi2: 175.334308316285\n# lazily imported pygeodesy.geodesicx by ellipsoids.py line 1082\n# lazily imported pygeodesy.elliptic by gxline.py line 289\n    test 7 line 1 lat2: -48.164270779098\n    test 8 line 1 lon2: 5.762344694676  FAILED, KNOWN, expected 5.762344694677\n    test 9 line 1 azi2: 175.334308316285\n    test 10 line 2 lat: -23.186513\n    test 11 line 2 lon: 68.567247\n    test 12 line 2 fb: 154.287114\n    test 13 line 2 lat2: -23.186512533703\n    test 14 line 2 lon2: 68.567247430960\n    test 15 line 2 azi2: 154.287114123872\n    test 16 line 2 lat2: -23.186512533703\n    test 17 line 2 lon2: 68.567247430960\n    test 18 line 2 azi2: 154.287114123872\n    test 19 line 3 lat: 53.997072\n    test 20 line 3 lon: 44.520619\n    test 21 line 3 fb: 52.159487\n    test 22 line 3 lat2: 53.997072295385\n    test 23 line 3 lon2: 44.520619105668\n    test 24 line 3 azi2: 52.159486739948\n    test 25 line 3 lat2: 53.997072295385\n    test 26 line 3 lon2: 44.520619105668\n    test 27 line 3 azi2: 52.159486739948\n    test 28 line 4 lat: -49.416672\n    test 29 line 4 lon: 166.828083\n    test 30 line 4 fb: 22.033031\n    test 31 line 4 lat2: -49.416672064706\n    test 32 line 4 lon2: 166.828083210689\n    test 33 line 4 azi2: 22.033030848249\n    test 34 line 4 lat2: -49.416672064706\n    test 35 line 4 lon2: 166.828083210689\n    test 36 line 4 azi2: 22.033030848249\n    test 37 line 5 lat: -60.405136\n    test 38 line 5 lon: 110.581140\n    test 39 line 5 fb: 75.518296\n    test 40 line 5 lat2: -60.405136414530\n    test 41 line 5 lon2: 110.581139538777\n    test 42 line 5 azi2: 75.518295964649\n    test 43 line 5 lat2: -60.405136414530\n    test 44 line 5 lon2: 110.581139538777\n    test 45 line 5 azi2: 75.518295964649\n    test 46 line 6 lat: -11.212600\n    test 47 line 6 lon: 144.177077\n    test 48 line 6 fb: 133.027766\n    test 49 line 6 lat2: -11.212600121556\n    test 50 line 6 lon2: 144.177076511360\n    test 51 line 6 azi2: 133.027766301029\n    test 52 line 6 lat2: -11.212600121556\n    test 53 line 6 lon2: 144.177076511360\n    test 54 line 6 azi2: 133.027766301029\n    test 55 line 7 lat: -6.529067\n    test 56 line 7 lon: 2.895924\n    test 57 line 7 fb: 178.740350\n    test 58 line 7 lat2: -6.529066987956\n    test 59 line 7 lon2: 2.895923948125\n    test 60 line 7 azi2: 178.740350145954\n    test 61 line 7 lat2: -6.529066987956\n    test 62 line 7 lon2: 2.895923948125\n    test 63 line 7 azi2: 178.740350145954\n    test 64 line 8 lat: -8.855512\n    test 65 line 8 lon: 112.749196\n    test 66 line 8 fb: 119.512004\n    test 67 line 8 lat2: -8.855512357257\n    test 68 line 8 lon2: 112.749196494485\n    test 69 line 8 azi2: 119.512003891282\n    test 70 line 8 lat2: -8.855512357257\n    test 71 line 8 lon2: 112.749196494485\n    test 72 line 8 azi2: 119.512003891282\n    test 73 line 9 lat: 29.866967\n    test 74 line 9 lon: 171.726893\n    test 75 line 9 fb: 171.662245\n    test 76 line 9 lat2: 29.866967483293\n    test 77 line 9 lon2: 171.726892560963\n    test 78 line 9 azi2: 171.662244609397\n    test 79 line 9 lat2: 29.866967483293\n    test 80 line 9 lon2: 171.726892560963\n    test 81 line 9 azi2: 171.662244609397\n    test 82 line 10 lat: -29.238404\n    test 83 line 10 lon: 133.459814\n    test 84 line 10 fb: 69.814124\n    test 85 line 10 lat2: -29.238404337998\n    test 86 line 10 lon2: 133.459813533284\n    test 87 line 10 azi2: 69.814124320813\n    test 88 line 10 lat2: -29.238404337998\n    test 89 line 10 lon2: 133.459813533284\n    test 90 line 10 azi2: 69.814124320813\n    test 91 line 11 lat: 55.600487\n    test 92 line 11 lon: 75.128743\n    test 93 line 11 fb: 153.896689\n    test 94 line 11 lat2: 55.600487151983\n    test 95 line 11 lon2: 75.128743229496  FAILED, KNOWN, expected 75.128743229495\n    test 96 line 11 azi2: 153.896688535572\n    test 97 line 11 lat2: 55.600487151983\n    test 98 line 11 lon2: 75.128743229496  FAILED, KNOWN, expected 75.128743229495\n    test 99 line 11 azi2: 153.896688535572\n    test 100 line 12 lat: -22.858435\n    test 101 line 12 lon: 67.207513\n    test 102 line 12 fb: 142.939529\n    test 103 line 12 lat2: -22.858434825399\n    test 104 line 12 lon2: 67.207513019332\n    test 105 line 12 azi2: 142.939529056687\n    test 106 line 12 lat2: -22.858434825399\n    test 107 line 12 lon2: 67.207513019332\n    test 108 line 12 azi2: 142.939529056687\n    test 109 line 13 lat: -32.634475\n    test 110 line 13 lon: 22.238523\n    test 111 line 13 fb: 172.112993\n    test 112 line 13 lat2: -32.634475461067\n    test 113 line 13 lon2: 22.238523021935\n    test 114 line 13 azi2: 172.112992582333\n    test 115 line 13 lat2: -32.634475461067\n    test 116 line 13 lon2: 22.238523021935\n    test 117 line 13 azi2: 172.112992582333\n    test 118 line 14 lat: 62.224985\n    test 119 line 14 lon: 47.119133\n    test 120 line 14 fb: 54.318105\n    test 121 line 14 lat2: 62.224984867045\n    test 122 line 14 lon2: 47.119133304525\n    test 123 line 14 azi2: 54.318105291965\n    test 124 line 14 lat2: 62.224984867045\n    test 125 line 14 lon2: 47.119133304525\n    test 126 line 14 azi2: 54.318105291965\n    test 127 line 15 lat: 33.069613\n    test 128 line 15 lon: 5.796996\n    test 129 line 15 fb: 17.403845\n    test 130 line 15 lat2: 33.069613195450\n    test 131 line 15 lon2: 5.796995960186\n    test 132 line 15 azi2: 17.403844642346\n    test 133 line 15 lat2: 33.069613195450\n    test 134 line 15 lon2: 5.796995960186\n    test 135 line 15 azi2: 17.403844642346\n    test 136 line 16 lat: 53.760900\n    test 137 line 16 lon: 119.204306\n    test 138 line 16 fb: 141.069793\n    test 139 line 16 lat2: 53.760899500985\n    test 140 line 16 lon2: 119.204305898518\n    test 141 line 16 azi2: 141.069793254983\n    test 142 line 16 lat2: 53.760899500985\n    test 143 line 16 lon2: 119.204305898518\n    test 144 line 16 azi2: 141.069793254983\n    test 145 line 17 lat: -3.225632\n    test 146 line 17 lon: 103.742354\n    test 147 line 17 fb: 127.880328\n    test 148 line 17 lat2: -3.225632004245\n    test 149 line 17 lon2: 103.742354347526\n    test 150 line 17 azi2: 127.880328388524\n    test 151 line 17 lat2: -3.225632004245\n    test 152 line 17 lon2: 103.742354347526\n    test 153 line 17 azi2: 127.880328388524\n    test 154 line 18 lat: 47.108712\n    test 155 line 18 lon: 99.934107\n    test 156 line 18 fb: 104.103491\n    test 157 line 18 lat2: 47.108712008353\n    test 158 line 18 lon2: 99.934107358387\n    test 159 line 18 azi2: 104.103491123038\n    test 160 line 18 lat2: 47.108712008353\n    test 161 line 18 lon2: 99.934107358387\n    test 162 line 18 azi2: 104.103491123038\n    test 163 line 19 lat: 5.399363\n    test 164 line 19 lon: 135.250064\n    test 165 line 19 fb: 102.177018\n    test 166 line 19 lat2: 5.399363208349\n    test 167 line 19 lon2: 135.250063670790\n    test 168 line 19 azi2: 102.177017677370\n    test 169 line 19 lat2: 5.399363208349\n    test 170 line 19 lon2: 135.250063670790\n    test 171 line 19 azi2: 102.177017677370\n    test 172 line 20 lat: -58.669225\n    test 173 line 20 lon: 54.875015\n    test 174 line 20 fb: 131.345308\n    test 175 line 20 lat2: -58.669224697403\n    test 176 line 20 lon2: 54.875014559502\n    test 177 line 20 azi2: 131.345308028428\n    test 178 line 20 lat2: -58.669224697403\n    test 179 line 20 lon2: 54.875014559502\n    test 180 line 20 azi2: 131.345308028428\n    test 181 line 21 lat: 9.184229\n    test 182 line 21 lon: 151.302637\n    test 183 line 21 fb: 128.175105\n    test 184 line 21 lat2: 9.184228666560\n    test 185 line 21 lon2: 151.302636871911\n    test 186 line 21 azi2: 128.175105446048\n    test 187 line 21 lat2: 9.184228666560\n    test 188 line 21 lon2: 151.302636871911\n    test 189 line 21 azi2: 128.175105446048\n    test 190 line 22 lat: 53.467940\n    test 191 line 22 lon: 67.724192\n    test 192 line 22 fb: 78.863492\n    test 193 line 22 lat2: 53.467939714247\n    test 194 line 22 lon2: 67.724192258333\n    test 195 line 22 azi2: 78.863492168727\n    test 196 line 22 lat2: 53.467939714247\n    test 197 line 22 lon2: 67.724192258333\n    test 198 line 22 azi2: 78.863492168727\n    test 199 line 23 lat: 39.699456\n    test 200 line 23 lon: 67.156325\n    test 201 line 23 fb: 85.276830\n    test 202 line 23 lat2: 39.699455912449\n    test 203 line 23 lon2: 67.156324625647\n    test 204 line 23 azi2: 85.276829539878\n    test 205 line 23 lat2: 39.699455912449\n    test 206 line 23 lon2: 67.156324625647\n    test 207 line 23 azi2: 85.276829539878\n    test 208 line 24 lat: 70.942602\n    test 209 line 24 lon: 17.379214\n    test 210 line 24 fb: 21.869008\n    test 211 line 24 lat2: 70.942602144324\n    test 212 line 24 lon2: 17.379213644124\n    test 213 line 24 azi2: 21.869008256312\n    test 214 line 24 lat2: 70.942602144324\n    test 215 line 24 lon2: 17.379213644124\n    test 216 line 24 azi2: 21.869008256312\n    test 217 line 25 lat: 69.633349\n    test 218 line 25 lon: 110.601933\n    test 219 line 25 fb: 138.575193\n    test 220 line 25 lat2: 69.633349004538\n    test 221 line 25 lon2: 110.601933261211\n    test 222 line 25 azi2: 138.575192608514\n    test 223 line 25 lat2: 69.633349004538\n    test 224 line 25 lon2: 110.601933261211\n    test 225 line 25 azi2: 138.575192608515  FAILED, KNOWN, expected 138.575192608514\n    test 226 line 26 lat: 16.190815\n    test 227 line 26 lon: 87.606993\n    test 228 line 26 fb: 131.929410\n    test 229 line 26 lat2: 16.190814826165\n    test 230 line 26 lon2: 87.606993293114\n    test 231 line 26 azi2: 131.929409507039\n    test 232 line 26 lat2: 16.190814826165\n    test 233 line 26 lon2: 87.606993293114\n    test 234 line 26 azi2: 131.929409507039\n    test 235 line 27 lat: 54.774905\n    test 236 line 27 lon: 52.952507\n    test 237 line 27 fb: 85.904051\n    test 238 line 27 lat2: 54.774904542264\n    test 239 line 27 lon2: 52.952506835523\n    test 240 line 27 azi2: 85.904050867676\n    test 241 line 27 lat2: 54.774904542264\n    test 242 line 27 lon2: 52.952506835523\n    test 243 line 27 azi2: 85.904050867676\n    test 244 line 28 lat: -62.008569\n    test 245 line 28 lon: 172.274877\n    test 246 line 28 fb: 21.992601\n    test 247 line 28 lat2: -62.008568677307\n    test 248 line 28 lon2: 172.274876714260\n    test 249 line 28 azi2: 21.992601380429\n    test 250 line 28 lat2: -62.008568677307\n    test 251 line 28 lon2: 172.274876714260\n    test 252 line 28 azi2: 21.992601380429\n    test 253 line 29 lat: 27.303730\n    test 254 line 29 lon: 159.184451\n    test 255 line 29 fb: 150.697920\n    test 256 line 29 lat2: 27.303729660018\n    test 257 line 29 lon2: 159.184451093393\n    test 258 line 29 azi2: 150.697920369703\n    test 259 line 29 lat2: 27.303729660018\n    test 260 line 29 lon2: 159.184451093393\n    test 261 line 29 azi2: 150.697920369703\n    test 262 line 30 lat: 31.979897\n    test 263 line 30 lon: 55.946759\n    test 264 line 30 fb: 87.398293\n    test 265 line 30 lat2: 31.979897342658\n    test 266 line 30 lon2: 55.946758945497\n    test 267 line 30 azi2: 87.398292964767\n    test 268 line 30 lat2: 31.979897342658\n    test 269 line 30 lon2: 55.946758945497\n    test 270 line 30 azi2: 87.398292964767\n    test 271 line 31 lat: 49.991468\n    test 272 line 31 lon: 133.962411\n    test 273 line 31 fb: 142.016540\n    test 274 line 31 lat2: 49.991467522545\n    test 275 line 31 lon2: 133.962411191467\n    test 276 line 31 azi2: 142.016540226251\n    test 277 line 31 lat2: 49.991467522545\n    test 278 line 31 lon2: 133.962411191467\n    test 279 line 31 azi2: 142.016540226251\n    test 280 line 32 lat: 2.818559\n    test 281 line 32 lon: 7.234774\n    test 282 line 32 fb: 168.804029\n    test 283 line 32 lat2: 2.818558842278\n    test 284 line 32 lon2: 7.234774421859\n    test 285 line 32 azi2: 168.804029404993\n    test 286 line 32 lat2: 2.818558842278\n    test 287 line 32 lon2: 7.234774421859\n    test 288 line 32 azi2: 168.804029404993\n    test 289 line 33 lat: -38.118071\n    test 290 line 33 lon: 93.395971\n    test 291 line 33 fb: 117.017377\n    test 292 line 33 lat2: -38.118070550305\n    test 293 line 33 lon2: 93.395971367720\n    test 294 line 33 azi2: 117.017376985228\n    test 295 line 33 lat2: -38.118070550305\n    test 296 line 33 lon2: 93.395971367720\n    test 297 line 33 azi2: 117.017376985228\n    test 298 line 34 lat: 3.377824\n    test 299 line 34 lon: 65.294746\n    test 300 line 34 fb: 138.982544\n    test 301 line 34 lat2: 3.377824468035\n    test 302 line 34 lon2: 65.294745963255\n    test 303 line 34 azi2: 138.982543784560\n    test 304 line 34 lat2: 3.377824468035\n    test 305 line 34 lon2: 65.294745963255\n    test 306 line 34 azi2: 138.982543784560\n    test 307 line 35 lat: 4.631157\n    test 308 line 35 lon: 84.335045\n    test 309 line 35 fb: 132.120804\n    test 310 line 35 lat2: 4.631157299024\n    test 311 line 35 lon2: 84.335044694540\n    test 312 line 35 azi2: 132.120804319474\n    test 313 line 35 lat2: 4.631157299024\n    test 314 line 35 lon2: 84.335044694540\n    test 315 line 35 azi2: 132.120804319474\n    test 316 line 36 lat: 38.952215\n    test 317 line 36 lon: 133.416463\n    test 318 line 36 fb: 160.690586\n    test 319 line 36 lat2: 38.952215219507\n    test 320 line 36 lon2: 133.416463103113\n    test 321 line 36 azi2: 160.690585690749\n    test 322 line 36 lat2: 38.952215219507\n    test 323 line 36 lon2: 133.416463103113\n    test 324 line 36 azi2: 160.690585690749\n    test 325 line 37 lat: -39.013297\n    test 326 line 37 lon: 160.302849\n    test 327 line 37 fb: 115.363715\n    test 328 line 37 lat2: -39.013296805131\n    test 329 line 37 lon2: 160.302849365986\n    test 330 line 37 azi2: 115.363714797610\n    test 331 line 37 lat2: -39.013296805131\n    test 332 line 37 lon2: 160.302849365986\n    test 333 line 37 azi2: 115.363714797610\n    test 334 line 38 lat: -48.456093\n    test 335 line 38 lon: 38.613822\n    test 336 line 38 fb: 137.651668\n    test 337 line 38 lat2: -48.456093143589\n    test 338 line 38 lon2: 38.613821719886\n    test 339 line 38 azi2: 137.651668464815\n    test 340 line 38 lat2: -48.456093143589\n    test 341 line 38 lon2: 38.613821719886\n    test 342 line 38 azi2: 137.651668464815\n    test 343 line 39 lat: -13.861956\n    test 344 line 39 lon: 74.250572\n    test 345 line 39 fb: 143.968262\n    test 346 line 39 lat2: -13.861956131519\n    test 347 line 39 lon2: 74.250571564776\n    test 348 line 39 azi2: 143.968262419705\n    test 349 line 39 lat2: -13.861956131519\n    test 350 line 39 lon2: 74.250571564776\n    test 351 line 39 azi2: 143.968262419705\n    test 352 line 40 lat: 25.289202\n    test 353 line 40 lon: 47.063579\n    test 354 line 40 fb: 78.672533\n    test 355 line 40 lat2: 25.289201968371\n    test 356 line 40 lon2: 47.063578519727\n    test 357 line 40 azi2: 78.672532588106\n    test 358 line 40 lat2: 25.289201968371\n    test 359 line 40 lon2: 47.063578519727\n    test 360 line 40 azi2: 78.672532588106\n    test 361 line 41 lat: 49.498121\n    test 362 line 41 lon: 131.993365\n    test 363 line 41 fb: 157.425605\n    test 364 line 41 lat2: 49.498121110507\n    test 365 line 41 lon2: 131.993365399320\n    test 366 line 41 azi2: 157.425605424890\n    test 367 line 41 lat2: 49.498121110507\n    test 368 line 41 lon2: 131.993365399320\n    test 369 line 41 azi2: 157.425605424890\n    test 370 line 42 lat: -2.104242\n    test 371 line 42 lon: 56.532079\n    test 372 line 42 fb: 129.406955\n    test 373 line 42 lat2: -2.104241718494\n    test 374 line 42 lon2: 56.532079408825\n    test 375 line 42 azi2: 129.406954892035\n    test 376 line 42 lat2: -2.104241718494\n    test 377 line 42 lon2: 56.532079408825\n    test 378 line 42 azi2: 129.406954892035\n    test 379 line 43 lat: -39.997315\n    test 380 line 43 lon: 49.004259\n    test 381 line 43 fb: 135.432995\n    test 382 line 43 lat2: -39.997315471629\n    test 383 line 43 lon2: 49.004258662721\n    test 384 line 43 azi2: 135.432994751523\n    test 385 line 43 lat2: -39.997315471629\n    test 386 line 43 lon2: 49.004258662721\n    test 387 line 43 azi2: 135.432994751523\n    test 388 line 44 lat: 9.333272\n    test 389 line 44 lon: 98.670857\n    test 390 line 44 fb: 120.694280\n    test 391 line 44 lat2: 9.333271992381\n    test 392 line 44 lon2: 98.670857333200\n    test 393 line 44 azi2: 120.694280236304\n    test 394 line 44 lat2: 9.333271992381\n    test 395 line 44 lon2: 98.670857333200\n    test 396 line 44 azi2: 120.694280236304\n    test 397 line 45 lat: 38.653646\n    test 398 line 45 lon: 136.060468\n    test 399 line 45 fb: 152.489416\n    test 400 line 45 lat2: 38.653646179484\n    test 401 line 45 lon2: 136.060467518677\n    test 402 line 45 azi2: 152.489415748331\n    test 403 line 45 lat2: 38.653646179484\n    test 404 line 45 lon2: 136.060467518677\n    test 405 line 45 azi2: 152.489415748331\n    test 406 line 46 lat: -4.564995\n    test 407 line 46 lon: 166.894968\n    test 408 line 46 fb: 127.520036\n    test 409 line 46 lat2: -4.564994956240\n    test 410 line 46 lon2: 166.894968092836\n    test 411 line 46 azi2: 127.520036113641\n    test 412 line 46 lat2: -4.564994956240\n    test 413 line 46 lon2: 166.894968092836\n    test 414 line 46 azi2: 127.520036113641\n    test 415 line 47 lat: -38.522500\n    test 416 line 47 lon: 178.679307\n    test 417 line 47 fb: 176.468685\n    test 418 line 47 lat2: -38.522500159620\n    test 419 line 47 lon2: 178.679306959466\n    test 420 line 47 azi2: 176.468684587438\n    test 421 line 47 lat2: -38.522500159620\n    test 422 line 47 lon2: 178.679306959466\n    test 423 line 47 azi2: 176.468684587438\n    test 424 line 48 lat: 45.529796\n    test 425 line 48 lon: 145.048738\n    test 426 line 48 fb: 160.706227\n    test 427 line 48 lat2: 45.529795503687  FAILED, KNOWN, expected 45.529795503688\n    test 428 line 48 lon2: 145.048737846273\n    test 429 line 48 azi2: 160.706226714169\n    test 430 line 48 lat2: 45.529795503688\n    test 431 line 48 lon2: 145.048737846273\n    test 432 line 48 azi2: 160.706226714169\n    test 433 line 49 lat: -2.968925\n    test 434 line 49 lon: 5.044083\n    test 435 line 49 fb: 174.913528\n    test 436 line 49 lat2: -2.968924563433\n    test 437 line 49 lon2: 5.044082955485\n    test 438 line 49 azi2: 174.913527615338\n    test 439 line 49 lat2: -2.968924563433\n    test 440 line 49 lon2: 5.044082955485\n    test 441 line 49 azi2: 174.913527615338\n    test 442 line 50 lat: 1.618184\n    test 443 line 50 lon: 163.262955\n    test 444 line 50 fb: 161.097730\n    test 445 line 50 lat2: 1.618184178387\n    test 446 line 50 lon2: 163.262955108028\n    test 447 line 50 azi2: 161.097729713868\n    test 448 line 50 lat2: 1.618184178387\n    test 449 line 50 lon2: 163.262955108028\n    test 450 line 50 azi2: 161.097729713868\n    test 451 line 51 lat: 25.179740\n    test 452 line 51 lon: 107.504992\n    test 453 line 51 fb: 154.055552\n    test 454 line 51 lat2: 25.179740339437\n    test 455 line 51 lon2: 107.504991932892\n    test 456 line 51 azi2: 154.055552232572\n    test 457 line 51 lat2: 25.179740339437\n    test 458 line 51 lon2: 107.504991932892\n    test 459 line 51 azi2: 154.055552232572\n    test 460 line 52 lat: 57.391251\n    test 461 line 52 lon: 89.082271\n    test 462 line 52 fb: 101.276115\n    test 463 line 52 lat2: 57.391251345244\n    test 464 line 52 lon2: 89.082271206722\n    test 465 line 52 azi2: 101.276114553753\n    test 466 line 52 lat2: 57.391251345244\n    test 467 line 52 lon2: 89.082271206722\n    test 468 line 52 azi2: 101.276114553753\n    test 469 line 53 lat: -11.470673\n    test 470 line 53 lon: 48.285095\n    test 471 line 53 fb: 148.389696\n    test 472 line 53 lat2: -11.470672507979\n    test 473 line 53 lon2: 48.285094684225\n    test 474 line 53 azi2: 148.389695684750\n    test 475 line 53 lat2: -11.470672507979\n    test 476 line 53 lon2: 48.285094684225\n    test 477 line 53 azi2: 148.389695684750\n    test 478 line 54 lat: 27.356639\n    test 479 line 54 lon: 84.391682\n    test 480 line 54 fb: 104.661818\n    test 481 line 54 lat2: 27.356639349123\n    test 482 line 54 lon2: 84.391681754671\n    test 483 line 54 azi2: 104.661818309238\n    test 484 line 54 lat2: 27.356639349123\n    test 485 line 54 lon2: 84.391681754671\n    test 486 line 54 azi2: 104.661818309238\n    test 487 line 55 lat: -40.533598\n    test 488 line 55 lon: 103.488381\n    test 489 line 55 fb: 132.398259\n    test 490 line 55 lat2: -40.533597900971\n    test 491 line 55 lon2: 103.488381204009\n    test 492 line 55 azi2: 132.398259207371\n    test 493 line 55 lat2: -40.533597900971\n    test 494 line 55 lon2: 103.488381204009\n    test 495 line 55 azi2: 132.398259207371\n    test 496 line 56 lat: 52.337949\n    test 497 line 56 lon: 149.908279\n    test 498 line 56 fb: 162.333474\n    test 499 line 56 lat2: 52.337949466457\n    test 500 line 56 lon2: 149.908278798430\n    test 501 line 56 azi2: 162.333474334205\n    test 502 line 56 lat2: 52.337949466457\n    test 503 line 56 lon2: 149.908278798430\n    test 504 line 56 azi2: 162.333474334205\n    test 505 line 57 lat: -58.474076\n    test 506 line 57 lon: 78.718606\n    test 507 line 57 fb: 117.457565\n    test 508 line 57 lat2: -58.474075605820\n    test 509 line 57 lon2: 78.718605560533\n    test 510 line 57 azi2: 117.457565115569\n    test 511 line 57 lat2: -58.474075605820\n    test 512 line 57 lon2: 78.718605560533\n    test 513 line 57 azi2: 117.457565115569\n    test 514 line 58 lat: -35.840568\n    test 515 line 58 lon: 4.157534\n    test 516 line 58 fb: 174.451067\n    test 517 line 58 lat2: -35.840568348239\n    test 518 line 58 lon2: 4.157534199470\n    test 519 line 58 azi2: 174.451066901814\n    test 520 line 58 lat2: -35.840568348239\n    test 521 line 58 lon2: 4.157534199470\n    test 522 line 58 azi2: 174.451066901814\n    test 523 line 59 lat: 15.629163\n    test 524 line 59 lon: 102.677417\n    test 525 line 59 fb: 103.482103\n    test 526 line 59 lat2: 15.629163409998\n    test 527 line 59 lon2: 102.677417064290  FAILED, KNOWN, expected 102.677417064289\n    test 528 line 59 azi2: 103.482102722183\n    test 529 line 59 lat2: 15.629163409998\n    test 530 line 59 lon2: 102.677417064290  FAILED, KNOWN, expected 102.677417064289\n    test 531 line 59 azi2: 103.482102722183\n    test 532 line 60 lat: -1.256180\n    test 533 line 60 lon: 133.625255\n    test 534 line 60 fb: 104.470489\n    test 535 line 60 lat2: -1.256179633151\n    test 536 line 60 lon2: 133.625254783633\n    test 537 line 60 azi2: 104.470489013739\n    test 538 line 60 lat2: -1.256179633151\n    test 539 line 60 lon2: 133.625254783633\n    test 540 line 60 azi2: 104.470489013739\n    test 541 line 61 lat: -40.558253\n    test 542 line 61 lon: 112.897054\n    test 543 line 61 fb: 90.226134\n    test 544 line 61 lat2: -40.558252601871\n    test 545 line 61 lon2: 112.897053867085\n    test 546 line 61 azi2: 90.226134266467\n    test 547 line 61 lat2: -40.558252601871\n    test 548 line 61 lon2: 112.897053867085\n    test 549 line 61 azi2: 90.226134266467\n    test 550 line 62 lat: 86.193596\n    test 551 line 62 lon: 116.956880\n    test 552 line 62 fb: 117.618329\n    test 553 line 62 lat2: 86.193595821107\n    test 554 line 62 lon2: 116.956880430711\n    test 555 line 62 azi2: 117.618329340274\n    test 556 line 62 lat2: 86.193595821107\n    test 557 line 62 lon2: 116.956880430711\n    test 558 line 62 azi2: 117.618329340274\n    test 559 line 63 lat: 6.874181\n    test 560 line 63 lon: 54.891199\n    test 561 line 63 fb: 90.820790\n    test 562 line 63 lat2: 6.874181093562\n    test 563 line 63 lon2: 54.891198619261\n    test 564 line 63 azi2: 90.820789878786\n    test 565 line 63 lat2: 6.874181093562\n    test 566 line 63 lon2: 54.891198619261\n    test 567 line 63 azi2: 90.820789878786\n    test 568 line 64 lat: -2.554657\n    test 569 line 64 lon: 71.539549\n    test 570 line 64 fb: 105.722921\n    test 571 line 64 lat2: -2.554657243385\n    test 572 line 64 lon2: 71.539549368441\n    test 573 line 64 azi2: 105.722921401613\n    test 574 line 64 lat2: -2.554657243385\n    test 575 line 64 lon2: 71.539549368441\n    test 576 line 64 azi2: 105.722921401613\n    test 577 line 65 lat: 1.329645\n    test 578 line 65 lon: 138.134969\n    test 579 line 65 fb: 150.465118\n    test 580 line 65 lat2: 1.329645321136\n    test 581 line 65 lon2: 138.134968538140\n    test 582 line 65 azi2: 150.465118219879\n    test 583 line 65 lat2: 1.329645321136\n    test 584 line 65 lon2: 138.134968538140\n    test 585 line 65 azi2: 150.465118219879\n    test 586 line 66 lat: -44.026427\n    test 587 line 66 lon: 121.367591\n    test 588 line 66 fb: 123.975227\n    test 589 line 66 lat2: -44.026426573446\n    test 590 line 66 lon2: 121.367591215510\n    test 591 line 66 azi2: 123.975227063718\n    test 592 line 66 lat2: -44.026426573446\n    test 593 line 66 lon2: 121.367591215510\n    test 594 line 66 azi2: 123.975227063718\n    test 595 line 67 lat: -3.399081\n    test 596 line 67 lon: 138.655764\n    test 597 line 67 fb: 98.994343\n    test 598 line 67 lat2: -3.399080708673\n    test 599 line 67 lon2: 138.655764270175\n    test 600 line 67 azi2: 98.994343217447\n    test 601 line 67 lat2: -3.399080708673\n    test 602 line 67 lon2: 138.655764270175\n    test 603 line 67 azi2: 98.994343217447\n    test 604 line 68 lat: -26.776985\n    test 605 line 68 lon: 67.020055\n    test 606 line 68 fb: 119.394665\n    test 607 line 68 lat2: -26.776984673364\n    test 608 line 68 lon2: 67.020054548341\n    test 609 line 68 azi2: 119.394664651636\n    test 610 line 68 lat2: -26.776984673364\n    test 611 line 68 lon2: 67.020054548341\n    test 612 line 68 azi2: 119.394664651636\n    test 613 line 69 lat: 52.057239\n    test 614 line 69 lon: 151.887270\n    test 615 line 69 fb: 161.537826\n    test 616 line 69 lat2: 52.057239269050\n    test 617 line 69 lon2: 151.887270484247\n    test 618 line 69 azi2: 161.537826425477\n    test 619 line 69 lat2: 52.057239269050\n    test 620 line 69 lon2: 151.887270484247\n    test 621 line 69 azi2: 161.537826425477\n    test 622 line 70 lat: 3.784724\n    test 623 line 70 lon: 102.727745\n    test 624 line 70 fb: 116.453155\n    test 625 line 70 lat2: 3.784724165483\n    test 626 line 70 lon2: 102.727744934481\n    test 627 line 70 azi2: 116.453155405439\n    test 628 line 70 lat2: 3.784724165483\n    test 629 line 70 lon2: 102.727744934481\n    test 630 line 70 azi2: 116.453155405439\n    test 631 line 71 lat: -40.409299\n    test 632 line 71 lon: 86.033195\n    test 633 line 71 fb: 121.080298\n    test 634 line 71 lat2: -40.409298772797\n    test 635 line 71 lon2: 86.033195335657\n    test 636 line 71 azi2: 121.080297615268\n    test 637 line 71 lat2: -40.409298772797\n    test 638 line 71 lon2: 86.033195335657\n    test 639 line 71 azi2: 121.080297615268\n    test 640 line 72 lat: 73.013460\n    test 641 line 72 lon: 76.188125\n    test 642 line 72 fb: 78.877769\n    test 643 line 72 lat2: 73.013460186926\n    test 644 line 72 lon2: 76.188125151657\n    test 645 line 72 azi2: 78.877769459629\n    test 646 line 72 lat2: 73.013460186926\n    test 647 line 72 lon2: 76.188125151657\n    test 648 line 72 azi2: 78.877769459629\n    test 649 line 73 lat: 52.870132\n    test 650 line 73 lon: 51.020900\n    test 651 line 73 fb: 102.113351\n    test 652 line 73 lat2: 52.870131799667\n    test 653 line 73 lon2: 51.020900069545\n    test 654 line 73 azi2: 102.113351369331\n    test 655 line 73 lat2: 52.870131799667\n    test 656 line 73 lon2: 51.020900069545\n    test 657 line 73 azi2: 102.113351369331\n    test 658 line 74 lat: 28.909632\n    test 659 line 74 lon: 17.071526\n    test 660 line 74 fb: 103.660711\n    test 661 line 74 lat2: 28.909631785857\n    test 662 line 74 lon2: 17.071526465331\n    test 663 line 74 azi2: 103.660711362255\n    test 664 line 74 lat2: 28.909631785857\n    test 665 line 74 lon2: 17.071526465331\n    test 666 line 74 azi2: 103.660711362255\n    test 667 line 75 lat: -58.257855\n    test 668 line 75 lon: 15.812862\n    test 669 line 75 fb: 169.606337\n    test 670 line 75 lat2: -58.257854831091\n    test 671 line 75 lon2: 15.812862089412\n    test 672 line 75 azi2: 169.606337169070\n    test 673 line 75 lat2: -58.257854831091\n    test 674 line 75 lon2: 15.812862089412\n    test 675 line 75 azi2: 169.606337169070\n    test 676 line 76 lat: -58.869445\n    test 677 line 76 lon: 132.036795\n    test 678 line 76 fb: 53.946549\n    test 679 line 76 lat2: -58.869445004289\n    test 680 line 76 lon2: 132.036794965086\n    test 681 line 76 azi2: 53.946549037654\n    test 682 line 76 lat2: -58.869445004289\n    test 683 line 76 lon2: 132.036794965086\n    test 684 line 76 azi2: 53.946549037654\n    test 685 line 77 lat: -45.547043\n    test 686 line 77 lon: 77.540664\n    test 687 line 77 fb: 126.917177\n    test 688 line 77 lat2: -45.547042598505\n    test 689 line 77 lon2: 77.540663933413\n    test 690 line 77 azi2: 126.917177154676\n    test 691 line 77 lat2: -45.547042598505\n    test 692 line 77 lon2: 77.540663933413\n    test 693 line 77 azi2: 126.917177154676\n    test 694 line 78 lat: 45.046385\n    test 695 line 78 lon: 149.382429\n    test 696 line 78 fb: 162.117474\n    test 697 line 78 lat2: 45.046384823604\n    test 698 line 78 lon2: 149.382428769460\n    test 699 line 78 azi2: 162.117474447248\n    test 700 line 78 lat2: 45.046384823604\n    test 701 line 78 lon2: 149.382428769460\n    test 702 line 78 azi2: 162.117474447248\n    test 703 line 79 lat: -74.853338\n    test 704 line 79 lon: 96.072097\n    test 705 line 79 fb: 85.425493\n    test 706 line 79 lat2: -74.853338324199\n    test 707 line 79 lon2: 96.072096720955\n    test 708 line 79 azi2: 85.425493305289\n    test 709 line 79 lat2: -74.853338324199\n    test 710 line 79 lon2: 96.072096720956  FAILED, KNOWN, expected 96.072096720955\n    test 711 line 79 azi2: 85.425493305289\n    test 712 line 80 lat: -13.205775\n    test 713 line 80 lon: 57.532285\n    test 714 line 80 fb: 122.358040\n    test 715 line 80 lat2: -13.205775181752\n    test 716 line 80 lon2: 57.532285422140\n    test 717 line 80 azi2: 122.358040028964\n    test 718 line 80 lat2: -13.205775181752\n    test 719 line 80 lon2: 57.532285422140\n    test 720 line 80 azi2: 122.358040028964\n    test 721 line 81 lat: -5.135864\n    test 722 line 81 lon: 115.048833\n    test 723 line 81 fb: 93.168400\n    test 724 line 81 lat2: -5.135863872649\n    test 725 line 81 lon2: 115.048832990097\n    test 726 line 81 azi2: 93.168399576996\n    test 727 line 81 lat2: -5.135863872649\n    test 728 line 81 lon2: 115.048832990097\n    test 729 line 81 azi2: 93.168399576996\n    test 730 line 82 lat: 13.355453\n    test 731 line 82 lon: 19.253946\n    test 732 line 82 fb: 143.568719\n    test 733 line 82 lat2: 13.355452912310\n    test 734 line 82 lon2: 19.253945880531\n    test 735 line 82 azi2: 143.568718864193\n    test 736 line 82 lat2: 13.355452912310\n    test 737 line 82 lon2: 19.253945880531\n    test 738 line 82 azi2: 143.568718864193\n    test 739 line 83 lat: 0.766426\n    test 740 line 83 lon: 147.485817\n    test 741 line 83 fb: 144.982274\n    test 742 line 83 lat2: 0.766426443892\n    test 743 line 83 lon2: 147.485816830606\n    test 744 line 83 azi2: 144.982273873382\n    test 745 line 83 lat2: 0.766426443892\n    test 746 line 83 lon2: 147.485816830606\n    test 747 line 83 azi2: 144.982273873382\n    test 748 line 84 lat: 10.228416\n    test 749 line 84 lon: 159.204118\n    test 750 line 84 fb: 173.111973\n    test 751 line 84 lat2: 10.228416314659\n    test 752 line 84 lon2: 159.204118025562\n    test 753 line 84 azi2: 173.111973027488\n    test 754 line 84 lat2: 10.228416314659\n    test 755 line 84 lon2: 159.204118025562\n    test 756 line 84 azi2: 173.111973027488\n    test 757 line 85 lat: 73.178089\n    test 758 line 85 lon: 131.762700\n    test 759 line 85 fb: 135.271161\n    test 760 line 85 lat2: 73.178089048974\n    test 761 line 85 lon2: 131.762699581940\n    test 762 line 85 azi2: 135.271161440271\n    test 763 line 85 lat2: 73.178089048974\n    test 764 line 85 lon2: 131.762699581941  FAILED, KNOWN, expected 131.762699581940\n    test 765 line 85 azi2: 135.271161440271\n    test 766 line 86 lat: -16.908717\n    test 767 line 86 lon: 149.240494\n    test 768 line 86 fb: 90.725082\n    test 769 line 86 lat2: -16.908717231321\n    test 770 line 86 lon2: 149.240493850337\n    test 771 line 86 azi2: 90.725082091932\n    test 772 line 86 lat2: -16.908717231321\n    test 773 line 86 lon2: 149.240493850337\n    test 774 line 86 azi2: 90.725082091932\n    test 775 line 87 lat: -23.440025\n    test 776 line 87 lon: 98.819595\n    test 777 line 87 fb: 154.388320\n    test 778 line 87 lat2: -23.440025289757\n    test 779 line 87 lon2: 98.819595131759\n    test 780 line 87 azi2: 154.388319751570\n    test 781 line 87 lat2: -23.440025289757\n    test 782 line 87 lon2: 98.819595131759\n    test 783 line 87 azi2: 154.388319751570\n    test 784 line 88 lat: -51.344465\n    test 785 line 88 lon: 54.299399\n    test 786 line 88 fb: 139.903236\n    test 787 line 88 lat2: -51.344465279371\n    test 788 line 88 lon2: 54.299399477396\n    test 789 line 88 azi2: 139.903236261795\n    test 790 line 88 lat2: -51.344465279371\n    test 791 line 88 lon2: 54.299399477396\n    test 792 line 88 azi2: 139.903236261795\n    test 793 line 89 lat: 33.922320\n    test 794 line 89 lon: 143.463070\n    test 795 line 89 fb: 132.788230\n    test 796 line 89 lat2: 33.922319712554\n    test 797 line 89 lon2: 143.463070326988\n    test 798 line 89 azi2: 132.788229856713\n    test 799 line 89 lat2: 33.922319712554\n    test 800 line 89 lon2: 143.463070326988\n    test 801 line 89 azi2: 132.788229856713\n    test 802 line 90 lat: -83.333068\n    test 803 line 90 lon: 177.611925\n    test 804 line 90 fb: 2.633769\n    test 805 line 90 lat2: -83.333068057524\n    test 806 line 90 lon2: 177.611924577958\n    test 807 line 90 azi2: 2.633768744582\n    test 808 line 90 lat2: -83.333068057524\n    test 809 line 90 lon2: 177.611924577958\n    test 810 line 90 azi2: 2.633768744582\n    test 811 line 91 lat: 20.587333\n    test 812 line 91 lon: 164.201962\n    test 813 line 91 fb: 166.991083\n    test 814 line 91 lat2: 20.587333492522\n    test 815 line 91 lon2: 164.201962479604\n    test 816 line 91 azi2: 166.991083245940\n    test 817 line 91 lat2: 20.587333492522\n    test 818 line 91 lon2: 164.201962479604\n    test 819 line 91 azi2: 166.991083245940\n    test 820 line 92 lat: 52.612815\n    test 821 line 92 lon: 110.766184\n    test 822 line 92 fb: 168.281486\n    test 823 line 92 lat2: 52.612815386144\n    test 824 line 92 lon2: 110.766184475279\n    test 825 line 92 azi2: 168.281485715811\n    test 826 line 92 lat2: 52.612815386144\n    test 827 line 92 lon2: 110.766184475279\n    test 828 line 92 azi2: 168.281485715811\n    test 829 line 93 lat: -41.681373\n    test 830 line 93 lon: 82.150183\n    test 831 line 93 fb: 107.012959\n    test 832 line 93 lat2: -41.681372899642\n    test 833 line 93 lon2: 82.150183233451\n    test 834 line 93 azi2: 107.012959072514\n    test 835 line 93 lat2: -41.681372899642\n    test 836 line 93 lon2: 82.150183233451\n    test 837 line 93 azi2: 107.012959072514\n    test 838 line 94 lat: 27.082807\n    test 839 line 94 lon: 171.332531\n    test 840 line 94 fb: 174.934340\n    test 841 line 94 lat2: 27.082807052702\n    test 842 line 94 lon2: 171.332530862401\n    test 843 line 94 azi2: 174.934339881142\n    test 844 line 94 lat2: 27.082807052702\n    test 845 line 94 lon2: 171.332530862401\n    test 846 line 94 azi2: 174.934339881142\n    test 847 line 95 lat: 57.992299\n    test 848 line 95 lon: 15.128357\n    test 849 line 95 fb: 62.342982\n    test 850 line 95 lat2: 57.992299464191\n    test 851 line 95 lon2: 15.128356773547\n    test 852 line 95 azi2: 62.342982084737\n    test 853 line 95 lat2: 57.992299464191\n    test 854 line 95 lon2: 15.128356773547\n    test 855 line 95 azi2: 62.342982084737\n    test 856 line 96 lat: -10.526000\n    test 857 line 96 lon: 33.778702\n    test 858 line 96 fb: 165.687804\n    test 859 line 96 lat2: -10.526000344959\n    test 860 line 96 lon2: 33.778701722506\n    test 861 line 96 azi2: 165.687803859941\n    test 862 line 96 lat2: -10.526000344959\n    test 863 line 96 lon2: 33.778701722506\n    test 864 line 96 azi2: 165.687803859941\n    test 865 line 97 lat: 25.802395\n    test 866 line 97 lon: 98.502531\n    test 867 line 97 fb: 97.837271\n    test 868 line 97 lat2: 25.802394934787\n    test 869 line 97 lon2: 98.502531199301\n    test 870 line 97 azi2: 97.837270592496\n    test 871 line 97 lat2: 25.802394934787\n    test 872 line 97 lon2: 98.502531199301\n    test 873 line 97 azi2: 97.837270592496\n    test 874 line 98 lat: 47.163255\n    test 875 line 98 lon: 156.720176\n    test 876 line 98 fb: 160.291022\n    test 877 line 98 lat2: 47.163255465769\n    test 878 line 98 lon2: 156.720176105542\n    test 879 line 98 azi2: 160.291021678921\n    test 880 line 98 lat2: 47.163255465769\n    test 881 line 98 lon2: 156.720176105542\n    test 882 line 98 azi2: 160.291021678921\n    test 883 line 99 lat: 47.932063\n    test 884 line 99 lon: 35.094714\n    test 885 line 99 fb: 137.545065\n    test 886 line 99 lat2: 47.932062978964\n    test 887 line 99 lon2: 35.094714092217\n    test 888 line 99 azi2: 137.545065115425\n    test 889 line 99 lat2: 47.932062978964\n    test 890 line 99 lon2: 35.094714092217\n    test 891 line 99 azi2: 137.545065115425\n    test 892 line 100 lat: -60.204340\n    test 893 line 100 lon: 117.726218\n    test 894 line 100 fb: 72.585011\n    test 895 line 100 lat2: -60.204339807984\n    test 896 line 100 lon2: 117.726217548610\n    test 897 line 100 azi2: 72.585010656772\n    test 898 line 100 lat2: -60.204339807984\n    test 899 line 100 lon2: 117.726217548610\n    test 900 line 100 azi2: 72.585010656772\n    test 901 line 101 lat: 35.247411\n    test 902 line 101 lon: 59.471562\n    test 903 line 101 fb: 81.179468\n    test 904 line 101 lat2: 35.247410984329\n    test 905 line 101 lon2: 59.471562388985\n    test 906 line 101 azi2: 81.179468094302\n    test 907 line 101 lat2: 35.247410984329\n    test 908 line 101 lon2: 59.471562388985\n    test 909 line 101 azi2: 81.179468094302\n    test 910 line 102 lat: 19.218268\n    test 911 line 102 lon: 165.507915\n    test 912 line 102 fb: 167.452074\n    test 913 line 102 lat2: 19.218268047706\n    test 914 line 102 lon2: 165.507915017643\n    test 915 line 102 azi2: 167.452074301867\n    test 916 line 102 lat2: 19.218268047706\n    test 917 line 102 lon2: 165.507915017643\n    test 918 line 102 azi2: 167.452074301867\n    test 919 line 103 lat: 55.428809\n    test 920 line 103 lon: 121.956541\n    test 921 line 103 fb: 154.501481\n    test 922 line 103 lat2: 55.428809300888\n    test 923 line 103 lon2: 121.956541206929\n    test 924 line 103 azi2: 154.501481394521\n    test 925 line 103 lat2: 55.428809300888\n    test 926 line 103 lon2: 121.956541206929\n    test 927 line 103 azi2: 154.501481394521\n    test 928 line 104 lat: 49.294374\n    test 929 line 104 lon: 119.661420\n    test 930 line 104 fb: 157.209489\n    test 931 line 104 lat2: 49.294374468687\n    test 932 line 104 lon2: 119.661419832789\n    test 933 line 104 azi2: 157.209488754087\n    test 934 line 104 lat2: 49.294374468687\n    test 935 line 104 lon2: 119.661419832789\n    test 936 line 104 azi2: 157.209488754087\n    test 937 line 105 lat: -32.534872\n    test 938 line 105 lon: 152.280610\n    test 939 line 105 fb: 45.281812\n    test 940 line 105 lat2: -32.534872085863\n    test 941 line 105 lon2: 152.280609797481\n    test 942 line 105 azi2: 45.281812386148\n    test 943 line 105 lat2: -32.534872085863\n    test 944 line 105 lon2: 152.280609797481\n    test 945 line 105 azi2: 45.281812386148\n    test 946 line 106 lat: -1.097899\n    test 947 line 106 lon: 104.697360\n    test 948 line 106 fb: 126.298489\n    test 949 line 106 lat2: -1.097899218947\n    test 950 line 106 lon2: 104.697359959629\n    test 951 line 106 azi2: 126.298488917783\n    test 952 line 106 lat2: -1.097899218947\n    test 953 line 106 lon2: 104.697359959629\n    test 954 line 106 azi2: 126.298488917783\n    test 955 line 107 lat: -18.034366\n    test 956 line 107 lon: 28.460388\n    test 957 line 107 fb: 129.520364\n    test 958 line 107 lat2: -18.034366293950\n    test 959 line 107 lon2: 28.460387638999\n    test 960 line 107 azi2: 129.520363751001\n    test 961 line 107 lat2: -18.034366293950\n    test 962 line 107 lon2: 28.460387638999\n    test 963 line 107 azi2: 129.520363751001\n    test 964 line 108 lat: 76.310833\n    test 965 line 108 lon: 80.110525\n    test 966 line 108 fb: 106.655922\n    test 967 line 108 lat2: 76.310832995825\n    test 968 line 108 lon2: 80.110524683625\n    test 969 line 108 azi2: 106.655921818336\n    test 970 line 108 lat2: 76.310832995825\n    test 971 line 108 lon2: 80.110524683625\n    test 972 line 108 azi2: 106.655921818336\n    test 973 line 109 lat: 39.838034\n    test 974 line 109 lon: 42.989610\n    test 975 line 109 fb: 69.695281\n    test 976 line 109 lat2: 39.838033717901\n    test 977 line 109 lon2: 42.989610477861\n    test 978 line 109 azi2: 69.695281464222\n    test 979 line 109 lat2: 39.838033717901\n    test 980 line 109 lon2: 42.989610477861\n    test 981 line 109 azi2: 69.695281464222\n    test 982 line 110 lat: -56.710166\n    test 983 line 110 lon: 125.242287\n    test 984 line 110 fb: 60.118756\n    test 985 line 110 lat2: -56.710165877845\n    test 986 line 110 lon2: 125.242287231675\n    test 987 line 110 azi2: 60.118756013168\n    test 988 line 110 lat2: -56.710165877845\n    test 989 line 110 lon2: 125.242287231675\n    test 990 line 110 azi2: 60.118756013168\n    test 991 line 111 lat: 55.796062\n    test 992 line 111 lon: 59.736599\n    test 993 line 111 fb: 73.536728\n    test 994 line 111 lat2: 55.796061639165\n    test 995 line 111 lon2: 59.736598787303\n    test 996 line 111 azi2: 73.536727826063\n    test 997 line 111 lat2: 55.796061639165\n    test 998 line 111 lon2: 59.736598787303\n    test 999 line 111 azi2: 73.536727826063\n    test 1000 line 112 lat: -36.553675\n    test 1001 line 112 lon: 38.656806\n    test 1002 line 112 fb: 134.414837\n    test 1003 line 112 lat2: -36.553675319553\n    test 1004 line 112 lon2: 38.656806212281\n    test 1005 line 112 azi2: 134.414836606696\n    test 1006 line 112 lat2: -36.553675319553\n    test 1007 line 112 lon2: 38.656806212281\n    test 1008 line 112 azi2: 134.414836606696\n    test 1009 line 113 lat: -36.798456\n    test 1010 line 113 lon: 163.588375\n    test 1011 line 113 fb: 147.324204\n    test 1012 line 113 lat2: -36.798455994877\n    test 1013 line 113 lon2: 163.588375017283\n    test 1014 line 113 azi2: 147.324204021436\n    test 1015 line 113 lat2: -36.798455994877\n    test 1016 line 113 lon2: 163.588375017283\n    test 1017 line 113 azi2: 147.324204021436\n    test 1018 line 114 lat: -15.952937\n    test 1019 line 114 lon: 55.126807\n    test 1020 line 114 fb: 134.743426\n    test 1021 line 114 lat2: -15.952937085211\n    test 1022 line 114 lon2: 55.126807113658\n    test 1023 line 114 azi2: 134.743426025963\n    test 1024 line 114 lat2: -15.952937085211\n    test 1025 line 114 lon2: 55.126807113658\n    test 1026 line 114 azi2: 134.743426025963\n    test 1027 line 115 lat: -34.573087\n    test 1028 line 115 lon: 69.304064\n    test 1029 line 115 fb: 111.515973\n    test 1030 line 115 lat2: -34.573086586710\n    test 1031 line 115 lon2: 69.304064202466\n    test 1032 line 115 azi2: 111.515973223076\n    test 1033 line 115 lat2: -34.573086586710\n    test 1034 line 115 lon2: 69.304064202466\n    test 1035 line 115 azi2: 111.515973223076\n    test 1036 line 116 lat: 26.643499\n    test 1037 line 116 lon: 1.500481\n    test 1038 line 116 fb: 7.958966\n    test 1039 line 116 lat2: 26.643498959841\n    test 1040 line 116 lon2: 1.500480924882\n    test 1041 line 116 azi2: 7.958966071178\n    test 1042 line 116 lat2: 26.643498959841\n    test 1043 line 116 lon2: 1.500480924882\n    test 1044 line 116 azi2: 7.958966071178\n    test 1045 line 117 lat: 60.891878\n    test 1046 line 117 lon: 91.543410\n    test 1047 line 117 fb: 92.273095\n    test 1048 line 117 lat2: 60.891878271763\n    test 1049 line 117 lon2: 91.543409983653\n    test 1050 line 117 azi2: 92.273095036246\n    test 1051 line 117 lat2: 60.891878271763\n    test 1052 line 117 lon2: 91.543409983653\n    test 1053 line 117 azi2: 92.273095036246\n    test 1054 line 118 lat: 64.148187\n    test 1055 line 118 lon: 136.552579\n    test 1056 line 118 fb: 147.193229\n    test 1057 line 118 lat2: 64.148186913822\n    test 1058 line 118 lon2: 136.552579389353\n    test 1059 line 118 azi2: 147.193228706030\n    test 1060 line 118 lat2: 64.148186913822\n    test 1061 line 118 lon2: 136.552579389353\n    test 1062 line 118 azi2: 147.193228706030\n    test 1063 line 119 lat: 62.311678\n    test 1064 line 119 lon: 39.238630\n    test 1065 line 119 fb: 53.785893\n    test 1066 line 119 lat2: 62.311677748693\n    test 1067 line 119 lon2: 39.238629619778\n    test 1068 line 119 azi2: 53.785893324444\n    test 1069 line 119 lat2: 62.311677748693\n    test 1070 line 119 lon2: 39.238629619778\n    test 1071 line 119 azi2: 53.785893324444\n    test 1072 line 120 lat: 27.239733\n    test 1073 line 120 lon: 136.649227\n    test 1074 line 120 fb: 162.935700\n    test 1075 line 120 lat2: 27.239733033115\n    test 1076 line 120 lon2: 136.649227320518\n    test 1077 line 120 azi2: 162.935700444146\n    test 1078 line 120 lat2: 27.239733033115\n    test 1079 line 120 lon2: 136.649227320518\n    test 1080 line 120 azi2: 162.935700444146\n    test 1081 line 121 lat: 6.562844\n    test 1082 line 121 lon: 170.159007\n    test 1083 line 121 fb: 174.851345\n    test 1084 line 121 lat2: 6.562844367534\n    test 1085 line 121 lon2: 170.159007094343\n    test 1086 line 121 azi2: 174.851345174583\n    test 1087 line 121 lat2: 6.562844367534\n    test 1088 line 121 lon2: 170.159007094343\n    test 1089 line 121 azi2: 174.851345174583\n    test 1090 line 122 lat: -29.537259\n    test 1091 line 122 lon: 105.350044\n    test 1092 line 122 fb: 141.393876\n    test 1093 line 122 lat2: -29.537259231420\n    test 1094 line 122 lon2: 105.350044044462\n    test 1095 line 122 azi2: 141.393876478962\n    test 1096 line 122 lat2: -29.537259231420\n    test 1097 line 122 lon2: 105.350044044462\n    test 1098 line 122 azi2: 141.393876478962\n    test 1099 line 123 lat: -66.447700\n    test 1100 line 123 lon: 83.741961\n    test 1101 line 123 fb: 129.422490\n    test 1102 line 123 lat2: -66.447699831143\n    test 1103 line 123 lon2: 83.741960628420\n    test 1104 line 123 azi2: 129.422490051758\n    test 1105 line 123 lat2: -66.447699831143\n    test 1106 line 123 lon2: 83.741960628420\n    test 1107 line 123 azi2: 129.422490051758\n    test 1108 line 124 lat: 56.926818\n    test 1109 line 124 lon: 20.197117\n    test 1110 line 124 fb: 37.960006\n    test 1111 line 124 lat2: 56.926817599968\n    test 1112 line 124 lon2: 20.197117058896\n    test 1113 line 124 azi2: 37.960006049295\n    test 1114 line 124 lat2: 56.926817599968\n    test 1115 line 124 lon2: 20.197117058896\n    test 1116 line 124 azi2: 37.960006049295\n    test 1117 line 125 lat: 55.018266\n    test 1118 line 125 lon: 83.735441\n    test 1119 line 125 fb: 130.766515\n    test 1120 line 125 lat2: 55.018265995959\n    test 1121 line 125 lon2: 83.735441278691\n    test 1122 line 125 azi2: 130.766514657995\n    test 1123 line 125 lat2: 55.018265995959\n    test 1124 line 125 lon2: 83.735441278691\n    test 1125 line 125 azi2: 130.766514657995\n    test 1126 line 126 lat: -78.131054\n    test 1127 line 126 lon: 56.098176\n    test 1128 line 126 fb: 127.132203\n    test 1129 line 126 lat2: -78.131053729786\n    test 1130 line 126 lon2: 56.098176359327  FAILED, KNOWN, expected 56.098176359326\n    test 1131 line 126 azi2: 127.132203471256  FAILED, KNOWN, expected 127.132203471257\n    test 1132 line 126 lat2: -78.131053729786\n    test 1133 line 126 lon2: 56.098176359326\n    test 1134 line 126 azi2: 127.132203471257\n    test 1135 line 127 lat: -18.223027\n    test 1136 line 127 lon: 86.221345\n    test 1137 line 127 fb: 114.875019\n    test 1138 line 127 lat2: -18.223027345294\n    test 1139 line 127 lon2: 86.221345156045\n    test 1140 line 127 azi2: 114.875019395396\n    test 1141 line 127 lat2: -18.223027345294\n    test 1142 line 127 lon2: 86.221345156045\n    test 1143 line 127 azi2: 114.875019395396\n    test 1144 line 128 lat: -16.100413\n    test 1145 line 128 lon: 54.195260\n    test 1146 line 128 fb: 126.748474\n    test 1147 line 128 lat2: -16.100412777565\n    test 1148 line 128 lon2: 54.195259657284\n    test 1149 line 128 azi2: 126.748473963924\n    test 1150 line 128 lat2: -16.100412777565\n    test 1151 line 128 lon2: 54.195259657284\n    test 1152 line 128 azi2: 126.748473963924\n    test 1153 line 129 lat: -15.192944\n    test 1154 line 129 lon: 85.057605\n    test 1155 line 129 fb: 133.468781\n    test 1156 line 129 lat2: -15.192944143354\n    test 1157 line 129 lon2: 85.057605312625\n    test 1158 line 129 azi2: 133.468780913302\n    test 1159 line 129 lat2: -15.192944143354\n    test 1160 line 129 lon2: 85.057605312625\n    test 1161 line 129 azi2: 133.468780913302\n    test 1162 line 130 lat: -1.279757\n    test 1163 line 130 lon: 93.430943\n    test 1164 line 130 fb: 128.545662\n    test 1165 line 130 lat2: -1.279756550061\n    test 1166 line 130 lon2: 93.430943123745\n    test 1167 line 130 azi2: 128.545661704820\n    test 1168 line 130 lat2: -1.279756550061\n    test 1169 line 130 lon2: 93.430943123745\n    test 1170 line 130 azi2: 128.545661704820\n    test 1171 line 131 lat: -29.465713\n    test 1172 line 131 lon: 79.050046\n    test 1173 line 131 fb: 109.482097\n    test 1174 line 131 lat2: -29.465712645249\n    test 1175 line 131 lon2: 79.050045796725\n    test 1176 line 131 azi2: 109.482097420926\n    test 1177 line 131 lat2: -29.465712645249\n    test 1178 line 131 lon2: 79.050045796725\n    test 1179 line 131 azi2: 109.482097420926\n    test 1180 line 132 lat: 31.819596\n    test 1181 line 132 lon: 88.251997\n    test 1182 line 132 fb: 91.173935\n    test 1183 line 132 lat2: 31.819596255581\n    test 1184 line 132 lon2: 88.251997328019\n    test 1185 line 132 azi2: 91.173935030538\n    test 1186 line 132 lat2: 31.819596255581\n    test 1187 line 132 lon2: 88.251997328019\n    test 1188 line 132 azi2: 91.173935030538\n    test 1189 line 133 lat: -63.260477\n    test 1190 line 133 lon: 96.535465\n    test 1191 line 133 fb: 84.208873\n    test 1192 line 133 lat2: -63.260477387265\n    test 1193 line 133 lon2: 96.535465277415\n    test 1194 line 133 azi2: 84.208873088521\n    test 1195 line 133 lat2: -63.260477387265\n    test 1196 line 133 lon2: 96.535465277415\n    test 1197 line 133 azi2: 84.208873088521\n    test 1198 line 134 lat: 12.908849\n    test 1199 line 134 lon: 116.734308\n    test 1200 line 134 fb: 110.313866\n    test 1201 line 134 lat2: 12.908849199388\n    test 1202 line 134 lon2: 116.734308245854\n    test 1203 line 134 azi2: 110.313865884978\n    test 1204 line 134 lat2: 12.908849199388\n    test 1205 line 134 lon2: 116.734308245854\n    test 1206 line 134 azi2: 110.313865884978\n    test 1207 line 135 lat: -73.345839\n    test 1208 line 135 lon: 99.753937\n    test 1209 line 135 fb: 89.074642\n    test 1210 line 135 lat2: -73.345839080078\n    test 1211 line 135 lon2: 99.753937450114\n    test 1212 line 135 azi2: 89.074641755279\n    test 1213 line 135 lat2: -73.345839080078\n    test 1214 line 135 lon2: 99.753937450114\n    test 1215 line 135 azi2: 89.074641755279\n    test 1216 line 136 lat: -58.777033\n    test 1217 line 136 lon: 161.963990\n    test 1218 line 136 fb: 21.998889\n    test 1219 line 136 lat2: -58.777033293076\n    test 1220 line 136 lon2: 161.963989905489\n    test 1221 line 136 azi2: 21.998888971548\n    test 1222 line 136 lat2: -58.777033293076\n    test 1223 line 136 lon2: 161.963989905489\n    test 1224 line 136 azi2: 21.998888971548\n    test 1225 line 137 lat: 5.093069\n    test 1226 line 137 lon: 53.687921\n    test 1227 line 137 fb: 124.015842\n    test 1228 line 137 lat2: 5.093068996651\n    test 1229 line 137 lon2: 53.687921438754\n    test 1230 line 137 azi2: 124.015842231205\n    test 1231 line 137 lat2: 5.093068996651\n    test 1232 line 137 lon2: 53.687921438754\n    test 1233 line 137 azi2: 124.015842231205\n    test 1234 line 138 lat: 35.659489\n    test 1235 line 138 lon: 111.729315\n    test 1236 line 138 fb: 133.697281\n    test 1237 line 138 lat2: 35.659488664161\n    test 1238 line 138 lon2: 111.729315023485\n    test 1239 line 138 azi2: 133.697281357224\n    test 1240 line 138 lat2: 35.659488664161\n    test 1241 line 138 lon2: 111.729315023485\n    test 1242 line 138 azi2: 133.697281357224\n    test 1243 line 139 lat: -24.330784\n    test 1244 line 139 lon: 71.666568\n    test 1245 line 139 fb: 106.278062\n    test 1246 line 139 lat2: -24.330783755994\n    test 1247 line 139 lon2: 71.666567863169  FAILED, KNOWN, expected 71.666567863170\n    test 1248 line 139 azi2: 106.278062394907\n    test 1249 line 139 lat2: -24.330783755994\n    test 1250 line 139 lon2: 71.666567863170\n    test 1251 line 139 azi2: 106.278062394907\n    test 1252 line 140 lat: -46.218742\n    test 1253 line 140 lon: 91.580078\n    test 1254 line 140 fb: 106.279111\n    test 1255 line 140 lat2: -46.218742288678\n    test 1256 line 140 lon2: 91.580077788700\n    test 1257 line 140 azi2: 106.279110700398\n    test 1258 line 140 lat2: -46.218742288678\n    test 1259 line 140 lon2: 91.580077788700\n    test 1260 line 140 azi2: 106.279110700399  FAILED, KNOWN, expected 106.279110700398\n    test 1261 line 141 lat: 50.143353\n    test 1262 line 141 lon: 101.322503\n    test 1263 line 141 fb: 154.314496\n    test 1264 line 141 lat2: 50.143352562968\n    test 1265 line 141 lon2: 101.322502529615\n    test 1266 line 141 azi2: 154.314496467352\n    test 1267 line 141 lat2: 50.143352562968\n    test 1268 line 141 lon2: 101.322502529615\n    test 1269 line 141 azi2: 154.314496467352\n    test 1270 line 142 lat: -16.604376\n    test 1271 line 142 lon: 134.279201\n    test 1272 line 142 fb: 106.895990\n    test 1273 line 142 lat2: -16.604375537699\n    test 1274 line 142 lon2: 134.279201209117\n    test 1275 line 142 azi2: 106.895989785632\n    test 1276 line 142 lat2: -16.604375537699\n    test 1277 line 142 lon2: 134.279201209117\n    test 1278 line 142 azi2: 106.895989785632\n    test 1279 line 143 lat: 54.031290\n    test 1280 line 143 lon: 144.862702\n    test 1281 line 143 fb: 152.937010\n    test 1282 line 143 lat2: 54.031289901242\n    test 1283 line 143 lon2: 144.862701667601\n    test 1284 line 143 azi2: 152.937009701639\n    test 1285 line 143 lat2: 54.031289901242\n    test 1286 line 143 lon2: 144.862701667601\n    test 1287 line 143 azi2: 152.937009701639\n    test 1288 line 144 lat: 0.616911\n    test 1289 line 144 lon: 110.974662\n    test 1290 line 144 fb: 115.206118\n    test 1291 line 144 lat2: 0.616910921892\n    test 1292 line 144 lon2: 110.974662272005\n    test 1293 line 144 azi2: 115.206118431862\n    test 1294 line 144 lat2: 0.616910921892\n    test 1295 line 144 lon2: 110.974662272005\n    test 1296 line 144 azi2: 115.206118431862\n    test 1297 line 145 lat: -6.243779\n    test 1298 line 145 lon: 175.658895\n    test 1299 line 145 fb: 177.520147\n    test 1300 line 145 lat2: -6.243779047728\n    test 1301 line 145 lon2: 175.658894820006\n    test 1302 line 145 azi2: 177.520147377315\n    test 1303 line 145 lat2: -6.243779047728\n    test 1304 line 145 lon2: 175.658894820006\n    test 1305 line 145 azi2: 177.520147377315\n    test 1306 line 146 lat: -70.416699\n    test 1307 line 146 lon: 169.642468\n    test 1308 line 146 fb: 11.978943\n    test 1309 line 146 lat2: -70.416698815769\n    test 1310 line 146 lon2: 169.642468357274\n    test 1311 line 146 azi2: 11.978943348082\n    test 1312 line 146 lat2: -70.416698815769\n    test 1313 line 146 lon2: 169.642468357274\n    test 1314 line 146 azi2: 11.978943348082\n    test 1315 line 147 lat: 19.558617\n    test 1316 line 147 lon: 88.645709\n    test 1317 line 147 fb: 113.578814\n    test 1318 line 147 lat2: 19.558616692495\n    test 1319 line 147 lon2: 88.645708539223\n    test 1320 line 147 azi2: 113.578814362497\n    test 1321 line 147 lat2: 19.558616692495\n    test 1322 line 147 lon2: 88.645708539223\n    test 1323 line 147 azi2: 113.578814362497\n    test 1324 line 148 lat: -23.555114\n    test 1325 line 148 lon: 162.457529\n    test 1326 line 148 fb: 147.104331\n    test 1327 line 148 lat2: -23.555114207892\n    test 1328 line 148 lon2: 162.457529431664\n    test 1329 line 148 azi2: 147.104330772141\n    test 1330 line 148 lat2: -23.555114207892\n    test 1331 line 148 lon2: 162.457529431664\n    test 1332 line 148 azi2: 147.104330772141\n    test 1333 line 149 lat: -51.275738\n    test 1334 line 149 lon: 103.747943\n    test 1335 line 149 fb: 115.235374\n    test 1336 line 149 lat2: -51.275737933996\n    test 1337 line 149 lon2: 103.747943009536\n    test 1338 line 149 azi2: 115.235373813929\n    test 1339 line 149 lat2: -51.275737933996\n    test 1340 line 149 lon2: 103.747943009536\n    test 1341 line 149 azi2: 115.235373813929\n    test 1342 line 150 lat: 25.374602\n    test 1343 line 150 lon: 143.135783\n    test 1344 line 150 fb: 126.548735\n    test 1345 line 150 lat2: 25.374601552526\n    test 1346 line 150 lon2: 143.135783283239\n    test 1347 line 150 azi2: 126.548735117003\n    test 1348 line 150 lat2: 25.374601552526\n    test 1349 line 150 lon2: 143.135783283239\n    test 1350 line 150 azi2: 126.548735117003\n    test 1351 line 151 lat: 23.967825\n    test 1352 line 151 lon: 153.611116\n    test 1353 line 151 fb: 149.714116\n    test 1354 line 151 lat2: 23.967824782385\n    test 1355 line 151 lon2: 153.611115762587\n    test 1356 line 151 azi2: 149.714116426025\n    test 1357 line 151 lat2: 23.967824782385\n    test 1358 line 151 lon2: 153.611115762587\n    test 1359 line 151 azi2: 149.714116426025\n    test 1360 line 152 lat: -22.787507\n    test 1361 line 152 lon: 111.258647\n    test 1362 line 152 fb: 86.335100\n    test 1363 line 152 lat2: -22.787506689568\n    test 1364 line 152 lon2: 111.258646767306\n    test 1365 line 152 azi2: 86.335099650483\n    test 1366 line 152 lat2: -22.787506689568\n    test 1367 line 152 lon2: 111.258646767306\n    test 1368 line 152 azi2: 86.335099650483\n    test 1369 line 153 lat: -59.789842\n    test 1370 line 153 lon: 114.054983\n    test 1371 line 153 fb: 75.612605\n    test 1372 line 153 lat2: -59.789841532294\n    test 1373 line 153 lon2: 114.054983422255\n    test 1374 line 153 azi2: 75.612605242726\n    test 1375 line 153 lat2: -59.789841532294\n    test 1376 line 153 lon2: 114.054983422255\n    test 1377 line 153 azi2: 75.612605242726\n    test 1378 line 154 lat: -2.802505\n    test 1379 line 154 lon: 126.245955\n    test 1380 line 154 fb: 150.100576\n    test 1381 line 154 lat2: -2.802505438545\n    test 1382 line 154 lon2: 126.245955176418\n    test 1383 line 154 azi2: 150.100575968176\n    test 1384 line 154 lat2: -2.802505438545\n    test 1385 line 154 lon2: 126.245955176418\n    test 1386 line 154 azi2: 150.100575968176\n    test 1387 line 155 lat: 35.735653\n    test 1388 line 155 lon: 102.768725\n    test 1389 line 155 fb: 99.024702\n    test 1390 line 155 lat2: 35.735653026165\n    test 1391 line 155 lon2: 102.768725495110\n    test 1392 line 155 azi2: 99.024701978369\n    test 1393 line 155 lat2: 35.735653026165\n    test 1394 line 155 lon2: 102.768725495110\n    test 1395 line 155 azi2: 99.024701978369\n    test 1396 line 156 lat: 15.906682\n    test 1397 line 156 lon: 117.446654\n    test 1398 line 156 fb: 130.449965\n    test 1399 line 156 lat2: 15.906681603252\n    test 1400 line 156 lon2: 117.446653873860\n    test 1401 line 156 azi2: 130.449965412147\n    test 1402 line 156 lat2: 15.906681603252\n    test 1403 line 156 lon2: 117.446653873860\n    test 1404 line 156 azi2: 130.449965412147\n    test 1405 line 157 lat: -54.375988\n    test 1406 line 157 lon: 33.243363\n    test 1407 line 157 fb: 144.361175\n    test 1408 line 157 lat2: -54.375987804166\n    test 1409 line 157 lon2: 33.243362594038\n    test 1410 line 157 azi2: 144.361175098783\n    test 1411 line 157 lat2: -54.375987804166\n    test 1412 line 157 lon2: 33.243362594038\n    test 1413 line 157 azi2: 144.361175098783\n    test 1414 line 158 lat: 3.588251\n    test 1415 line 158 lon: 156.659583\n    test 1416 line 158 fb: 112.153293\n    test 1417 line 158 lat2: 3.588250783960\n    test 1418 line 158 lon2: 156.659583234995\n    test 1419 line 158 azi2: 112.153293017228\n    test 1420 line 158 lat2: 3.588250783960\n    test 1421 line 158 lon2: 156.659583234995\n    test 1422 line 158 azi2: 112.153293017228\n    test 1423 line 159 lat: -51.719977\n    test 1424 line 159 lon: 134.141061\n    test 1425 line 159 fb: 129.170451\n    test 1426 line 159 lat2: -51.719977004790\n    test 1427 line 159 lon2: 134.141060992499\n    test 1428 line 159 azi2: 129.170451102958\n    test 1429 line 159 lat2: -51.719977004790\n    test 1430 line 159 lon2: 134.141060992499\n    test 1431 line 159 azi2: 129.170451102958\n    test 1432 line 160 lat: 22.935153\n    test 1433 line 160 lon: 109.461291\n    test 1434 line 160 fb: 120.676556\n    test 1435 line 160 lat2: 22.935153219965\n    test 1436 line 160 lon2: 109.461291078917\n    test 1437 line 160 azi2: 120.676555897336\n    test 1438 line 160 lat2: 22.935153219965\n    test 1439 line 160 lon2: 109.461291078917\n    test 1440 line 160 azi2: 120.676555897336\n    test 1441 line 161 lat: -5.314690\n    test 1442 line 161 lon: 70.995225\n    test 1443 line 161 fb: 129.681273\n    test 1444 line 161 lat2: -5.314689990173\n    test 1445 line 161 lon2: 70.995224692450\n    test 1446 line 161 azi2: 129.681272635794\n    test 1447 line 161 lat2: -5.314689990173\n    test 1448 line 161 lon2: 70.995224692450\n    test 1449 line 161 azi2: 129.681272635794\n    test 1450 line 162 lat: 49.147134\n    test 1451 line 162 lon: 16.182514\n    test 1452 line 162 fb: 38.926644\n    test 1453 line 162 lat2: 49.147133873971\n    test 1454 line 162 lon2: 16.182514450690\n    test 1455 line 162 azi2: 38.926644196248\n    test 1456 line 162 lat2: 49.147133873971\n    test 1457 line 162 lon2: 16.182514450690\n    test 1458 line 162 azi2: 38.926644196248\n    test 1459 line 163 lat: -55.079363\n    test 1460 line 163 lon: 93.170898\n    test 1461 line 163 fb: 97.017492\n    test 1462 line 163 lat2: -55.079363368717\n    test 1463 line 163 lon2: 93.170898482121\n    test 1464 line 163 azi2: 97.017491592293\n    test 1465 line 163 lat2: -55.079363368717\n    test 1466 line 163 lon2: 93.170898482121\n    test 1467 line 163 azi2: 97.017491592293\n    test 1468 line 164 lat: 26.410771\n    test 1469 line 164 lon: 109.934003\n    test 1470 line 164 fb: 103.660846\n    test 1471 line 164 lat2: 26.410770923895\n    test 1472 line 164 lon2: 109.934003168641\n    test 1473 line 164 azi2: 103.660846029906\n    test 1474 line 164 lat2: 26.410770923895\n    test 1475 line 164 lon2: 109.934003168641\n    test 1476 line 164 azi2: 103.660846029906\n    test 1477 line 165 lat: -2.539670\n    test 1478 line 165 lon: 138.682325\n    test 1479 line 165 fb: 100.016568\n    test 1480 line 165 lat2: -2.539669792389\n    test 1481 line 165 lon2: 138.682325493918\n    test 1482 line 165 azi2: 100.016568432752\n    test 1483 line 165 lat2: -2.539669792389\n    test 1484 line 165 lon2: 138.682325493918\n    test 1485 line 165 azi2: 100.016568432752\n    test 1486 line 166 lat: 10.563299\n    test 1487 line 166 lon: 50.532119\n    test 1488 line 166 fb: 126.356066\n    test 1489 line 166 lat2: 10.563299452649\n    test 1490 line 166 lon2: 50.532119480076\n    test 1491 line 166 azi2: 126.356065708364\n    test 1492 line 166 lat2: 10.563299452649\n    test 1493 line 166 lon2: 50.532119480076\n    test 1494 line 166 azi2: 126.356065708364\n    test 1495 line 167 lat: 51.443871\n    test 1496 line 167 lon: 88.799162\n    test 1497 line 167 fb: 145.239198\n    test 1498 line 167 lat2: 51.443871023711\n    test 1499 line 167 lon2: 88.799161779253\n    test 1500 line 167 azi2: 145.239198135633\n    test 1501 line 167 lat2: 51.443871023711\n    test 1502 line 167 lon2: 88.799161779253\n    test 1503 line 167 azi2: 145.239198135632  FAILED, KNOWN, expected 145.239198135633\n    test 1504 line 168 lat: -80.240756\n    test 1505 line 168 lon: 170.591261\n    test 1506 line 168 fb: 19.402427\n    test 1507 line 168 lat2: -80.240756380896\n    test 1508 line 168 lon2: 170.591260542730\n    test 1509 line 168 azi2: 19.402427357239\n    test 1510 line 168 lat2: -80.240756380896\n    test 1511 line 168 lon2: 170.591260542730\n    test 1512 line 168 azi2: 19.402427357239\n    test 1513 line 169 lat: 51.976040\n    test 1514 line 169 lon: 165.045244\n    test 1515 line 169 fb: 167.962110\n    test 1516 line 169 lat2: 51.976039799074\n    test 1517 line 169 lon2: 165.045244285456\n    test 1518 line 169 azi2: 167.962110268433\n    test 1519 line 169 lat2: 51.976039799074\n    test 1520 line 169 lon2: 165.045244285456\n    test 1521 line 169 azi2: 167.962110268433\n    test 1522 line 170 lat: 29.365655\n    test 1523 line 170 lon: 91.354349\n    test 1524 line 170 fb: 135.101279\n    test 1525 line 170 lat2: 29.365654873524\n    test 1526 line 170 lon2: 91.354349089561\n    test 1527 line 170 azi2: 135.101278715212\n    test 1528 line 170 lat2: 29.365654873524\n    test 1529 line 170 lon2: 91.354349089561\n    test 1530 line 170 azi2: 135.101278715212\n    test 1531 line 171 lat: 61.745486\n    test 1532 line 171 lon: 142.333199\n    test 1533 line 171 fb: 139.666209\n    test 1534 line 171 lat2: 61.745485817368\n    test 1535 line 171 lon2: 142.333198773096\n    test 1536 line 171 azi2: 139.666208757008\n    test 1537 line 171 lat2: 61.745485817368\n    test 1538 line 171 lon2: 142.333198773096\n    test 1539 line 171 azi2: 139.666208757008\n    test 1540 line 172 lat: 13.414523\n    test 1541 line 172 lon: 39.322993\n    test 1542 line 172 fb: 144.276516\n    test 1543 line 172 lat2: 13.414522997032\n    test 1544 line 172 lon2: 39.322992706733\n    test 1545 line 172 azi2: 144.276515542083\n    test 1546 line 172 lat2: 13.414522997032\n    test 1547 line 172 lon2: 39.322992706733\n    test 1548 line 172 azi2: 144.276515542083\n    test 1549 line 173 lat: -49.831353\n    test 1550 line 173 lon: 72.426738\n    test 1551 line 173 fb: 126.251620\n    test 1552 line 173 lat2: -49.831353332108\n    test 1553 line 173 lon2: 72.426737728887\n    test 1554 line 173 azi2: 126.251620412456\n    test 1555 line 173 lat2: -49.831353332108\n    test 1556 line 173 lon2: 72.426737728887\n    test 1557 line 173 azi2: 126.251620412456\n    test 1558 line 174 lat: 1.822589\n    test 1559 line 174 lon: 53.589208\n    test 1560 line 174 fb: 97.925176\n    test 1561 line 174 lat2: 1.822589208021\n    test 1562 line 174 lon2: 53.589207810481\n    test 1563 line 174 azi2: 97.925176229124\n    test 1564 line 174 lat2: 1.822589208021\n    test 1565 line 174 lon2: 53.589207810481\n    test 1566 line 174 azi2: 97.925176229124\n    test 1567 line 175 lat: -7.987194\n    test 1568 line 175 lon: 49.318809\n    test 1569 line 175 fb: 128.386595\n    test 1570 line 175 lat2: -7.987193900849\n    test 1571 line 175 lon2: 49.318809304076\n    test 1572 line 175 azi2: 128.386594768748\n    test 1573 line 175 lat2: -7.987193900849\n    test 1574 line 175 lon2: 49.318809304075  FAILED, KNOWN, expected 49.318809304076\n    test 1575 line 175 azi2: 128.386594768748\n    test 1576 line 176 lat: -56.807375\n    test 1577 line 176 lon: 4.521802\n    test 1578 line 176 fb: 176.806063\n    test 1579 line 176 lat2: -56.807375049864\n    test 1580 line 176 lon2: 4.521801986353\n    test 1581 line 176 azi2: 176.806062785470\n    test 1582 line 176 lat2: -56.807375049864\n    test 1583 line 176 lon2: 4.521801986353\n    test 1584 line 176 azi2: 176.806062785470\n    test 1585 line 177 lat: -25.969834\n    test 1586 line 177 lon: 64.903749\n    test 1587 line 177 fb: 124.103844\n    test 1588 line 177 lat2: -25.969833883721\n    test 1589 line 177 lon2: 64.903749477059\n    test 1590 line 177 azi2: 124.103844353942\n    test 1591 line 177 lat2: -25.969833883721\n    test 1592 line 177 lon2: 64.903749477059\n    test 1593 line 177 azi2: 124.103844353942\n    test 1594 line 178 lat: 32.807360\n    test 1595 line 178 lon: 65.107962\n    test 1596 line 178 fb: 124.577990\n    test 1597 line 178 lat2: 32.807359742667\n    test 1598 line 178 lon2: 65.107961864983\n    test 1599 line 178 azi2: 124.577990419073\n    test 1600 line 178 lat2: 32.807359742667\n    test 1601 line 178 lon2: 65.107961864983\n    test 1602 line 178 azi2: 124.577990419073\n    test 1603 line 179 lat: -21.552138\n    test 1604 line 179 lon: 102.466022\n    test 1605 line 179 fb: 109.640197\n    test 1606 line 179 lat2: -21.552137872353\n    test 1607 line 179 lon2: 102.466021945025\n    test 1608 line 179 azi2: 109.640197455958\n    test 1609 line 179 lat2: -21.552137872353\n    test 1610 line 179 lon2: 102.466021945025\n    test 1611 line 179 azi2: 109.640197455958\n    test 1612 line 180 lat: -26.271741\n    test 1613 line 180 lon: 158.321581\n    test 1614 line 180 fb: 165.993649\n    test 1615 line 180 lat2: -26.271741383677\n    test 1616 line 180 lon2: 158.321581345077\n    test 1617 line 180 azi2: 165.993649158304  FAILED, KNOWN, expected 165.993649158305\n    test 1618 line 180 lat2: -26.271741383677\n    test 1619 line 180 lon2: 158.321581345077\n    test 1620 line 180 azi2: 165.993649158305\n    test 1621 line 181 lat: 41.023069\n    test 1622 line 181 lon: 155.562542\n    test 1623 line 181 fb: 153.407414\n    test 1624 line 181 lat2: 41.023069113496\n    test 1625 line 181 lon2: 155.562542134179\n    test 1626 line 181 azi2: 153.407413608014\n    test 1627 line 181 lat2: 41.023069113496\n    test 1628 line 181 lon2: 155.562542134179\n    test 1629 line 181 azi2: 153.407413608014\n    test 1630 line 182 lat: 16.445471\n    test 1631 line 182 lon: 165.261461\n    test 1632 line 182 fb: 165.424806\n    test 1633 line 182 lat2: 16.445470954340\n    test 1634 line 182 lon2: 165.261461448873\n    test 1635 line 182 azi2: 165.424806257119\n    test 1636 line 182 lat2: 16.445470954340\n    test 1637 line 182 lon2: 165.261461448873\n    test 1638 line 182 azi2: 165.424806257119\n    test 1639 line 183 lat: -3.222107\n    test 1640 line 183 lon: 84.129727\n    test 1641 line 183 fb: 154.083851\n    test 1642 line 183 lat2: -3.222107095788\n    test 1643 line 183 lon2: 84.129726900596\n    test 1644 line 183 azi2: 154.083851495688\n    test 1645 line 183 lat2: -3.222107095788\n    test 1646 line 183 lon2: 84.129726900596\n    test 1647 line 183 azi2: 154.083851495688\n    test 1648 line 184 lat: 7.811710\n    test 1649 line 184 lon: 123.143308\n    test 1650 line 184 fb: 123.998106\n    test 1651 line 184 lat2: 7.811709739638\n    test 1652 line 184 lon2: 123.143308309660\n    test 1653 line 184 azi2: 123.998105582525\n    test 1654 line 184 lat2: 7.811709739638\n    test 1655 line 184 lon2: 123.143308309660\n    test 1656 line 184 azi2: 123.998105582525\n    test 1657 line 185 lat: -45.235922\n    test 1658 line 185 lon: 129.419283\n    test 1659 line 185 fb: 91.493406\n    test 1660 line 185 lat2: -45.235922276879\n    test 1661 line 185 lon2: 129.419282696458\n    test 1662 line 185 azi2: 91.493405946969  FAILED, KNOWN, expected 91.493405946970\n    test 1663 line 185 lat2: -45.235922276879\n    test 1664 line 185 lon2: 129.419282696458\n    test 1665 line 185 azi2: 91.493405946970\n    test 1666 line 186 lat: -43.047563\n    test 1667 line 186 lon: 121.565541\n    test 1668 line 186 fb: 99.850543\n    test 1669 line 186 lat2: -43.047563118772\n    test 1670 line 186 lon2: 121.565540573788\n    test 1671 line 186 azi2: 99.850542926816\n    test 1672 line 186 lat2: -43.047563118772\n    test 1673 line 186 lon2: 121.565540573788\n    test 1674 line 186 azi2: 99.850542926816\n    test 1675 line 187 lat: -22.881002\n    test 1676 line 187 lon: 159.765030\n    test 1677 line 187 fb: 60.474878\n    test 1678 line 187 lat2: -22.881001889671\n    test 1679 line 187 lon2: 159.765030106650\n    test 1680 line 187 azi2: 60.474878214384\n    test 1681 line 187 lat2: -22.881001889671\n    test 1682 line 187 lon2: 159.765030106650\n    test 1683 line 187 azi2: 60.474878214384\n    test 1684 line 188 lat: -15.011946\n    test 1685 line 188 lon: 55.594746\n    test 1686 line 188 fb: 121.838839\n    test 1687 line 188 lat2: -15.011946251300\n    test 1688 line 188 lon2: 55.594746074667\n    test 1689 line 188 azi2: 121.838839080255\n    test 1690 line 188 lat2: -15.011946251300\n    test 1691 line 188 lon2: 55.594746074667\n    test 1692 line 188 azi2: 121.838839080255\n    test 1693 line 189 lat: -29.011142\n    test 1694 line 189 lon: 0.856639\n    test 1695 line 189 fb: 178.744943\n    test 1696 line 189 lat2: -29.011142183887\n    test 1697 line 189 lon2: 0.856639457160\n    test 1698 line 189 azi2: 178.744943180805\n    test 1699 line 189 lat2: -29.011142183887\n    test 1700 line 189 lon2: 0.856639457160\n    test 1701 line 189 azi2: 178.744943180805\n    test 1702 line 190 lat: -0.353001\n    test 1703 line 190 lon: 48.401255\n    test 1704 line 190 fb: 95.612551\n    test 1705 line 190 lat2: -0.353000909367\n    test 1706 line 190 lon2: 48.401254652488  FAILED, KNOWN, expected 48.401254652487\n    test 1707 line 190 azi2: 95.612551044908\n    test 1708 line 190 lat2: -0.353000909367\n    test 1709 line 190 lon2: 48.401254652487\n    test 1710 line 190 azi2: 95.612551044908\n    test 1711 line 191 lat: 18.843341\n    test 1712 line 191 lon: 105.405456\n    test 1713 line 191 fb: 145.215722\n    test 1714 line 191 lat2: 18.843340962664\n    test 1715 line 191 lon2: 105.405456105476\n    test 1716 line 191 azi2: 145.215722323742\n    test 1717 line 191 lat2: 18.843340962664\n    test 1718 line 191 lon2: 105.405456105476\n    test 1719 line 191 azi2: 145.215722323742\n    test 1720 line 192 lat: 19.672225\n    test 1721 line 192 lon: 64.132980\n    test 1722 line 192 fb: 131.894863\n    test 1723 line 192 lat2: 19.672224913225\n    test 1724 line 192 lon2: 64.132979510420\n    test 1725 line 192 azi2: 131.894863434272\n    test 1726 line 192 lat2: 19.672224913225\n    test 1727 line 192 lon2: 64.132979510420\n    test 1728 line 192 azi2: 131.894863434272\n    test 1729 line 193 lat: -44.315074\n    test 1730 line 193 lon: 132.711860\n    test 1731 line 193 fb: 57.236875\n    test 1732 line 193 lat2: -44.315073617889\n    test 1733 line 193 lon2: 132.711860436437\n    test 1734 line 193 azi2: 57.236875169148\n    test 1735 line 193 lat2: -44.315073617889\n    test 1736 line 193 lon2: 132.711860436437\n    test 1737 line 193 azi2: 57.236875169148\n    test 1738 line 194 lat: 71.956294\n    test 1739 line 194 lon: 23.707587\n    test 1740 line 194 fb: 28.235947\n    test 1741 line 194 lat2: 71.956293555096\n    test 1742 line 194 lon2: 23.707587498943\n    test 1743 line 194 azi2: 28.235946630177\n    test 1744 line 194 lat2: 71.956293555096\n    test 1745 line 194 lon2: 23.707587498943\n    test 1746 line 194 azi2: 28.235946630177\n    test 1747 line 195 lat: -1.372652\n    test 1748 line 195 lon: 37.704231\n    test 1749 line 195 fb: 92.737862\n    test 1750 line 195 lat2: -1.372652195171\n    test 1751 line 195 lon2: 37.704230798676\n    test 1752 line 195 azi2: 92.737862264368\n    test 1753 line 195 lat2: -1.372652195171\n    test 1754 line 195 lon2: 37.704230798676\n    test 1755 line 195 azi2: 92.737862264368\n    test 1756 line 196 lat: 32.377148\n    test 1757 line 196 lon: 148.638709\n    test 1758 line 196 fb: 164.415210\n    test 1759 line 196 lat2: 32.377147634362\n    test 1760 line 196 lon2: 148.638709383249\n    test 1761 line 196 azi2: 164.415210005459\n    test 1762 line 196 lat2: 32.377147634362\n    test 1763 line 196 lon2: 148.638709383249\n    test 1764 line 196 azi2: 164.415210005459\n    test 1765 line 197 lat: 77.876832\n    test 1766 line 197 lon: 86.074591\n    test 1767 line 197 fb: 93.017705\n    test 1768 line 197 lat2: 77.876831887051\n    test 1769 line 197 lon2: 86.074590642864\n    test 1770 line 197 azi2: 93.017704501543\n    test 1771 line 197 lat2: 77.876831887051\n    test 1772 line 197 lon2: 86.074590642864\n    test 1773 line 197 azi2: 93.017704501543\n    test 1774 line 198 lat: -7.405195\n    test 1775 line 198 lon: 11.962469\n    test 1776 line 198 fb: 123.788484\n    test 1777 line 198 lat2: -7.405194804958\n    test 1778 line 198 lon2: 11.962468510681\n    test 1779 line 198 azi2: 123.788484407208\n    test 1780 line 198 lat2: -7.405194804958\n    test 1781 line 198 lon2: 11.962468510681\n    test 1782 line 198 azi2: 123.788484407208\n    test 1783 line 199 lat: -75.001311\n    test 1784 line 199 lon: 173.334144\n    test 1785 line 199 fb: 8.916523\n    test 1786 line 199 lat2: -75.001310556015\n    test 1787 line 199 lon2: 173.334144385512\n    test 1788 line 199 azi2: 8.916523271572\n    test 1789 line 199 lat2: -75.001310556015\n    test 1790 line 199 lon2: 173.334144385512\n    test 1791 line 199 azi2: 8.916523271572\n    test 1792 line 200 lat: -33.145967\n    test 1793 line 200 lon: 32.349241\n    test 1794 line 200 fb: 154.035798\n    test 1795 line 200 lat2: -33.145966631435\n    test 1796 line 200 lon2: 32.349240627001\n    test 1797 line 200 azi2: 154.035798269631\n    test 1798 line 200 lat2: -33.145966631435\n    test 1799 line 200 lon2: 32.349240627001\n    test 1800 line 200 azi2: 154.035798269631\n    test 1801 line 201 lat: 32.938605\n    test 1802 line 201 lon: 98.042857\n    test 1803 line 201 fb: 124.954750\n    test 1804 line 201 lat2: 32.938605083648\n    test 1805 line 201 lon2: 98.042857137838\n    test 1806 line 201 azi2: 124.954750401990\n    test 1807 line 201 lat2: 32.938605083648\n    test 1808 line 201 lon2: 98.042857137838\n    test 1809 line 201 azi2: 124.954750401990\n    test 1810 line 202 lat: 18.924315\n    test 1811 line 202 lon: 20.712136\n    test 1812 line 202 fb: 118.058457\n    test 1813 line 202 lat2: 18.924314631117\n    test 1814 line 202 lon2: 20.712135699713\n    test 1815 line 202 azi2: 118.058457437327\n    test 1816 line 202 lat2: 18.924314631117\n    test 1817 line 202 lon2: 20.712135699713\n    test 1818 line 202 azi2: 118.058457437327\n    test 1819 line 203 lat: 34.281652\n    test 1820 line 203 lon: 66.815398\n    test 1821 line 203 fb: 147.693080\n    test 1822 line 203 lat2: 34.281652047931\n    test 1823 line 203 lon2: 66.815398066147\n    test 1824 line 203 azi2: 147.693079659533\n    test 1825 line 203 lat2: 34.281652047931\n    test 1826 line 203 lon2: 66.815398066147\n    test 1827 line 203 azi2: 147.693079659533\n    test 1828 line 204 lat: -56.830635\n    test 1829 line 204 lon: 2.137046\n    test 1830 line 204 fb: 178.041562\n    test 1831 line 204 lat2: -56.830634769513\n    test 1832 line 204 lon2: 2.137046322217\n    test 1833 line 204 azi2: 178.041562126305\n    test 1834 line 204 lat2: -56.830634769513\n    test 1835 line 204 lon2: 2.137046322217\n    test 1836 line 204 azi2: 178.041562126305\n    test 1837 line 205 lat: -68.481893\n    test 1838 line 205 lon: 107.036720\n    test 1839 line 205 fb: 152.384477\n    test 1840 line 205 lat2: -68.481892540174\n    test 1841 line 205 lon2: 107.036720123074\n    test 1842 line 205 azi2: 152.384476595412\n    test 1843 line 205 lat2: -68.481892540174\n    test 1844 line 205 lon2: 107.036720123074\n    test 1845 line 205 azi2: 152.384476595412\n    test 1846 line 206 lat: -22.502042\n    test 1847 line 206 lon: 171.827566\n    test 1848 line 206 fb: 158.834328\n    test 1849 line 206 lat2: -22.502042312255\n    test 1850 line 206 lon2: 171.827566033608\n    test 1851 line 206 azi2: 158.834327972407\n    test 1852 line 206 lat2: -22.502042312255\n    test 1853 line 206 lon2: 171.827566033608\n    test 1854 line 206 azi2: 158.834327972407\n    test 1855 line 207 lat: -4.504199\n    test 1856 line 207 lon: 138.544338\n    test 1857 line 207 fb: 123.633526\n    test 1858 line 207 lat2: -4.504199404775\n    test 1859 line 207 lon2: 138.544338028736\n    test 1860 line 207 azi2: 123.633526406205\n    test 1861 line 207 lat2: -4.504199404775\n    test 1862 line 207 lon2: 138.544338028736\n    test 1863 line 207 azi2: 123.633526406205\n    test 1864 line 208 lat: -9.226343\n    test 1865 line 208 lon: 120.310050\n    test 1866 line 208 fb: 142.789186\n    test 1867 line 208 lat2: -9.226343110712\n    test 1868 line 208 lon2: 120.310050148004\n    test 1869 line 208 azi2: 142.789186422068\n    test 1870 line 208 lat2: -9.226343110712\n    test 1871 line 208 lon2: 120.310050148004\n    test 1872 line 208 azi2: 142.789186422068\n    test 1873 line 209 lat: -51.684044\n    test 1874 line 209 lon: 137.764140\n    test 1875 line 209 fb: 56.844891\n    test 1876 line 209 lat2: -51.684044075582\n    test 1877 line 209 lon2: 137.764139808689\n    test 1878 line 209 azi2: 56.844890846790\n    test 1879 line 209 lat2: -51.684044075582\n    test 1880 line 209 lon2: 137.764139808689\n    test 1881 line 209 azi2: 56.844890846790\n    test 1882 line 210 lat: 19.467357\n    test 1883 line 210 lon: 93.870087\n    test 1884 line 210 fb: 129.125491\n    test 1885 line 210 lat2: 19.467357090193\n    test 1886 line 210 lon2: 93.870087361293\n    test 1887 line 210 azi2: 129.125490840370\n    test 1888 line 210 lat2: 19.467357090193\n    test 1889 line 210 lon2: 93.870087361293\n    test 1890 line 210 azi2: 129.125490840370\n    test 1891 line 211 lat: 33.594608\n    test 1892 line 211 lon: 58.324143\n    test 1893 line 211 fb: 101.975372\n    test 1894 line 211 lat2: 33.594607695347\n    test 1895 line 211 lon2: 58.324143410893\n    test 1896 line 211 azi2: 101.975372004111\n    test 1897 line 211 lat2: 33.594607695347\n    test 1898 line 211 lon2: 58.324143410893\n    test 1899 line 211 azi2: 101.975372004111\n    test 1900 line 212 lat: -1.184701\n    test 1901 line 212 lon: 92.834285\n    test 1902 line 212 fb: 134.201097\n    test 1903 line 212 lat2: -1.184701423910\n    test 1904 line 212 lon2: 92.834285031504\n    test 1905 line 212 azi2: 134.201097217000\n    test 1906 line 212 lat2: -1.184701423910\n    test 1907 line 212 lon2: 92.834285031504\n    test 1908 line 212 azi2: 134.201097217000\n    test 1909 line 213 lat: 5.878639\n    test 1910 line 213 lon: 90.756173\n    test 1911 line 213 fb: 156.936699\n    test 1912 line 213 lat2: 5.878638801092\n    test 1913 line 213 lon2: 90.756172727682\n    test 1914 line 213 azi2: 156.936698928215\n    test 1915 line 213 lat2: 5.878638801092\n    test 1916 line 213 lon2: 90.756172727682\n    test 1917 line 213 azi2: 156.936698928215\n    test 1918 line 214 lat: 47.611646\n    test 1919 line 214 lon: 131.482218\n    test 1920 line 214 fb: 152.077667\n    test 1921 line 214 lat2: 47.611646039058\n    test 1922 line 214 lon2: 131.482217984255\n    test 1923 line 214 azi2: 152.077667341138\n    test 1924 line 214 lat2: 47.611646039058\n    test 1925 line 214 lon2: 131.482217984255\n    test 1926 line 214 azi2: 152.077667341138\n    test 1927 line 215 lat: 13.906234\n    test 1928 line 215 lon: 115.526238\n    test 1929 line 215 fb: 130.769627\n    test 1930 line 215 lat2: 13.906233945801\n    test 1931 line 215 lon2: 115.526238064488\n    test 1932 line 215 azi2: 130.769627488545\n    test 1933 line 215 lat2: 13.906233945801\n    test 1934 line 215 lon2: 115.526238064488\n    test 1935 line 215 azi2: 130.769627488545\n    test 1936 line 216 lat: 3.675485\n    test 1937 line 216 lon: 80.781862\n    test 1938 line 216 fb: 94.188426\n    test 1939 line 216 lat2: 3.675485213596\n    test 1940 line 216 lon2: 80.781861923838\n    test 1941 line 216 azi2: 94.188426367881\n    test 1942 line 216 lat2: 3.675485213596\n    test 1943 line 216 lon2: 80.781861923838\n    test 1944 line 216 azi2: 94.188426367881\n    test 1945 line 217 lat: 68.665600\n    test 1946 line 217 lon: 21.503123\n    test 1947 line 217 fb: 107.667810\n    test 1948 line 217 lat2: 68.665599857810\n    test 1949 line 217 lon2: 21.503123449290\n    test 1950 line 217 azi2: 107.667809564608\n    test 1951 line 217 lat2: 68.665599857810\n    test 1952 line 217 lon2: 21.503123449290\n    test 1953 line 217 azi2: 107.667809564608\n    test 1954 line 218 lat: -60.791732\n    test 1955 line 218 lon: 82.476063\n    test 1956 line 218 fb: 117.665953\n    test 1957 line 218 lat2: -60.791732218314\n    test 1958 line 218 lon2: 82.476062801971\n    test 1959 line 218 azi2: 117.665952598924\n    test 1960 line 218 lat2: -60.791732218314\n    test 1961 line 218 lon2: 82.476062801971\n    test 1962 line 218 azi2: 117.665952598924\n    test 1963 line 219 lat: -33.122376\n    test 1964 line 219 lon: 89.871476\n    test 1965 line 219 fb: 124.068098\n    test 1966 line 219 lat2: -33.122375734012\n    test 1967 line 219 lon2: 89.871476211443\n    test 1968 line 219 azi2: 124.068098444465\n    test 1969 line 219 lat2: -33.122375734012\n    test 1970 line 219 lon2: 89.871476211443\n    test 1971 line 219 azi2: 124.068098444465\n    test 1972 line 220 lat: -34.085934\n    test 1973 line 220 lon: 117.886549\n    test 1974 line 220 fb: 93.366647\n    test 1975 line 220 lat2: -34.085934037207\n    test 1976 line 220 lon2: 117.886548615401\n    test 1977 line 220 azi2: 93.366647127153\n    test 1978 line 220 lat2: -34.085934037207\n    test 1979 line 220 lon2: 117.886548615401\n    test 1980 line 220 azi2: 93.366647127153\n    test 1981 line 221 lat: -43.746811\n    test 1982 line 221 lon: 107.199939\n    test 1983 line 221 fb: 101.218435\n    test 1984 line 221 lat2: -43.746811413059\n    test 1985 line 221 lon2: 107.199938541143\n    test 1986 line 221 azi2: 101.218434581373\n    test 1987 line 221 lat2: -43.746811413059\n    test 1988 line 221 lon2: 107.199938541143\n    test 1989 line 221 azi2: 101.218434581373\n    test 1990 line 222 lat: -44.514857\n    test 1991 line 222 lon: 19.560361\n    test 1992 line 222 fb: 166.449925\n    test 1993 line 222 lat2: -44.514857277517\n    test 1994 line 222 lon2: 19.560360617266\n    test 1995 line 222 azi2: 166.449925135617\n    test 1996 line 222 lat2: -44.514857277517\n    test 1997 line 222 lon2: 19.560360617266\n    test 1998 line 222 azi2: 166.449925135617\n    test 1999 line 223 lat: -18.049262\n    test 2000 line 223 lon: 42.099193\n    test 2001 line 223 fb: 158.127141\n    test 2002 line 223 lat2: -18.049261796697\n    test 2003 line 223 lon2: 42.099193394607\n    test 2004 line 223 azi2: 158.127140901909\n    test 2005 line 223 lat2: -18.049261796697\n    test 2006 line 223 lon2: 42.099193394607\n    test 2007 line 223 azi2: 158.127140901909\n    test 2008 line 224 lat: 9.832902\n    test 2009 line 224 lon: 51.448057\n    test 2010 line 224 fb: 114.348703\n    test 2011 line 224 lat2: 9.832901687662\n    test 2012 line 224 lon2: 51.448057387281\n    test 2013 line 224 azi2: 114.348702917675\n    test 2014 line 224 lat2: 9.832901687662\n    test 2015 line 224 lon2: 51.448057387281\n    test 2016 line 224 azi2: 114.348702917675\n    test 2017 line 225 lat: -57.516443\n    test 2018 line 225 lon: 64.700933\n    test 2019 line 225 fb: 137.459801\n    test 2020 line 225 lat2: -57.516443280706\n    test 2021 line 225 lon2: 64.700933124813\n    test 2022 line 225 azi2: 137.459801078685\n    test 2023 line 225 lat2: -57.516443280706\n    test 2024 line 225 lon2: 64.700933124813\n    test 2025 line 225 azi2: 137.459801078685\n    test 2026 line 226 lat: -23.072600\n    test 2027 line 226 lon: 95.392602\n    test 2028 line 226 fb: 140.119143\n    test 2029 line 226 lat2: -23.072599811854\n    test 2030 line 226 lon2: 95.392601883769\n    test 2031 line 226 azi2: 140.119143469104\n    test 2032 line 226 lat2: -23.072599811854\n    test 2033 line 226 lon2: 95.392601883769\n    test 2034 line 226 azi2: 140.119143469104\n    test 2035 line 227 lat: -45.117254\n    test 2036 line 227 lon: 97.361647\n    test 2037 line 227 fb: 97.339041\n    test 2038 line 227 lat2: -45.117253614100\n    test 2039 line 227 lon2: 97.361647352714\n    test 2040 line 227 azi2: 97.339040559115\n    test 2041 line 227 lat2: -45.117253614100\n    test 2042 line 227 lon2: 97.361647352714\n    test 2043 line 227 azi2: 97.339040559115\n    test 2044 line 228 lat: -11.277328\n    test 2045 line 228 lon: 19.602358\n    test 2046 line 228 fb: 156.779730\n    test 2047 line 228 lat2: -11.277328262947\n    test 2048 line 228 lon2: 19.602358024471\n    test 2049 line 228 azi2: 156.779729902321\n    test 2050 line 228 lat2: -11.277328262947\n    test 2051 line 228 lon2: 19.602358024471\n    test 2052 line 228 azi2: 156.779729902321\n    test 2053 line 229 lat: -4.823524\n    test 2054 line 229 lon: 164.626842\n    test 2055 line 229 fb: 151.314797\n    test 2056 line 229 lat2: -4.823524348693\n    test 2057 line 229 lon2: 164.626841855534\n    test 2058 line 229 azi2: 151.314796841238\n    test 2059 line 229 lat2: -4.823524348693\n    test 2060 line 229 lon2: 164.626841855534\n    test 2061 line 229 azi2: 151.314796841238\n    test 2062 line 230 lat: 36.317088\n    test 2063 line 230 lon: 89.326155\n    test 2064 line 230 fb: 94.589052\n    test 2065 line 230 lat2: 36.317087922282\n    test 2066 line 230 lon2: 89.326155365943\n    test 2067 line 230 azi2: 94.589051951235\n    test 2068 line 230 lat2: 36.317087922282\n    test 2069 line 230 lon2: 89.326155365943\n    test 2070 line 230 azi2: 94.589051951235\n    test 2071 line 231 lat: 3.975433\n    test 2072 line 231 lon: 105.460359\n    test 2073 line 231 fb: 126.257925\n    test 2074 line 231 lat2: 3.975432760073\n    test 2075 line 231 lon2: 105.460358584149\n    test 2076 line 231 azi2: 126.257925455058\n    test 2077 line 231 lat2: 3.975432760073\n    test 2078 line 231 lon2: 105.460358584149\n    test 2079 line 231 azi2: 126.257925455058\n    test 2080 line 232 lat: 28.815984\n    test 2081 line 232 lon: 89.807394\n    test 2082 line 232 fb: 116.984375\n    test 2083 line 232 lat2: 28.815983592511\n    test 2084 line 232 lon2: 89.807393686834\n    test 2085 line 232 azi2: 116.984374981602\n    test 2086 line 232 lat2: 28.815983592511\n    test 2087 line 232 lon2: 89.807393686834\n    test 2088 line 232 azi2: 116.984374981602\n    test 2089 line 233 lat: 66.161717\n    test 2090 line 233 lon: 63.218655\n    test 2091 line 233 fb: 88.869959\n    test 2092 line 233 lat2: 66.161716765270\n    test 2093 line 233 lon2: 63.218655052918\n    test 2094 line 233 azi2: 88.869959091488\n    test 2095 line 233 lat2: 66.161716765270\n    test 2096 line 233 lon2: 63.218655052918\n    test 2097 line 233 azi2: 88.869959091488\n    test 2098 line 234 lat: 74.859972\n    test 2099 line 234 lon: 53.523361\n    test 2100 line 234 fb: 58.125008\n    test 2101 line 234 lat2: 74.859971601090\n    test 2102 line 234 lon2: 53.523360738831\n    test 2103 line 234 azi2: 58.125008091802\n    test 2104 line 234 lat2: 74.859971601090\n    test 2105 line 234 lon2: 53.523360738831\n    test 2106 line 234 azi2: 58.125008091802\n    test 2107 line 235 lat: -0.265481\n    test 2108 line 235 lon: 79.537677\n    test 2109 line 235 fb: 112.945830\n    test 2110 line 235 lat2: -0.265481234322\n    test 2111 line 235 lon2: 79.537677388981\n    test 2112 line 235 azi2: 112.945829781102\n    test 2113 line 235 lat2: -0.265481234322\n    test 2114 line 235 lon2: 79.537677388981\n    test 2115 line 235 azi2: 112.945829781102\n    test 2116 line 236 lat: -12.099598\n    test 2117 line 236 lon: 155.371356\n    test 2118 line 236 fb: 76.454292\n    test 2119 line 236 lat2: -12.099598021004\n    test 2120 line 236 lon2: 155.371356164845\n    test 2121 line 236 azi2: 76.454291606612\n    test 2122 line 236 lat2: -12.099598021004\n    test 2123 line 236 lon2: 155.371356164845\n    test 2124 line 236 azi2: 76.454291606612\n    test 2125 line 237 lat: -6.746465\n    test 2126 line 237 lon: 19.102484\n    test 2127 line 237 fb: 149.342236\n    test 2128 line 237 lat2: -6.746464854112\n    test 2129 line 237 lon2: 19.102484309526\n    test 2130 line 237 azi2: 149.342236428405\n    test 2131 line 237 lat2: -6.746464854112\n    test 2132 line 237 lon2: 19.102484309526\n    test 2133 line 237 azi2: 149.342236428405\n    test 2134 line 238 lat: 0.663830\n    test 2135 line 238 lon: 101.295721\n    test 2136 line 238 fb: 133.862626\n    test 2137 line 238 lat2: 0.663830251510\n    test 2138 line 238 lon2: 101.295720736944\n    test 2139 line 238 azi2: 133.862626019473\n    test 2140 line 238 lat2: 0.663830251510\n    test 2141 line 238 lon2: 101.295720736944\n    test 2142 line 238 azi2: 133.862626019473\n    test 2143 line 239 lat: -61.764624\n    test 2144 line 239 lon: 148.537522\n    test 2145 line 239 fb: 149.298772\n    test 2146 line 239 lat2: -61.764623993813\n    test 2147 line 239 lon2: 148.537521922087\n    test 2148 line 239 azi2: 149.298771734214\n    test 2149 line 239 lat2: -61.764623993813\n    test 2150 line 239 lon2: 148.537521922087\n    test 2151 line 239 azi2: 149.298771734214\n    test 2152 line 240 lat: 14.505122\n    test 2153 line 240 lon: 111.665519\n    test 2154 line 240 fb: 97.740222\n    test 2155 line 240 lat2: 14.505121777043\n    test 2156 line 240 lon2: 111.665518774379\n    test 2157 line 240 azi2: 97.740221959573\n    test 2158 line 240 lat2: 14.505121777043\n    test 2159 line 240 lon2: 111.665518774379\n    test 2160 line 240 azi2: 97.740221959573\n    test 2161 line 241 lat: -24.713205\n    test 2162 line 241 lon: 34.159384\n    test 2163 line 241 fb: 125.866132\n    test 2164 line 241 lat2: -24.713205327375\n    test 2165 line 241 lon2: 34.159384140577\n    test 2166 line 241 azi2: 125.866132443875\n    test 2167 line 241 lat2: -24.713205327375\n    test 2168 line 241 lon2: 34.159384140577\n    test 2169 line 241 azi2: 125.866132443875\n    test 2170 line 242 lat: 50.480262\n    test 2171 line 242 lon: 42.263850\n    test 2172 line 242 fb: 153.395659\n    test 2173 line 242 lat2: 50.480261762893\n    test 2174 line 242 lon2: 42.263849601327\n    test 2175 line 242 azi2: 153.395658919028\n    test 2176 line 242 lat2: 50.480261762893\n    test 2177 line 242 lon2: 42.263849601327\n    test 2178 line 242 azi2: 153.395658919028\n    test 2179 line 243 lat: 11.787247\n    test 2180 line 243 lon: 49.506460\n    test 2181 line 243 fb: 120.836778\n    test 2182 line 243 lat2: 11.787247309610\n    test 2183 line 243 lon2: 49.506459509702\n    test 2184 line 243 azi2: 120.836778496206\n    test 2185 line 243 lat2: 11.787247309610\n    test 2186 line 243 lon2: 49.506459509702\n    test 2187 line 243 azi2: 120.836778496206\n    test 2188 line 244 lat: -19.956674\n    test 2189 line 244 lon: 14.599479\n    test 2190 line 244 fb: 177.883855\n    test 2191 line 244 lat2: -19.956673621927\n    test 2192 line 244 lon2: 14.599479227718\n    test 2193 line 244 azi2: 177.883855088778\n    test 2194 line 244 lat2: -19.956673621927\n    test 2195 line 244 lon2: 14.599479227718\n    test 2196 line 244 azi2: 177.883855088778\n    test 2197 line 245 lat: 0.738566\n    test 2198 line 245 lon: 12.600972\n    test 2199 line 245 fb: 176.085445\n    test 2200 line 245 lat2: 0.738565517815\n    test 2201 line 245 lon2: 12.600972006927\n    test 2202 line 245 azi2: 176.085445031797\n    test 2203 line 245 lat2: 0.738565517815\n    test 2204 line 245 lon2: 12.600972006927\n    test 2205 line 245 azi2: 176.085445031797\n    test 2206 line 246 lat: 25.799128\n    test 2207 line 246 lon: 9.800259\n    test 2208 line 246 fb: 166.282764\n    test 2209 line 246 lat2: 25.799128425384\n    test 2210 line 246 lon2: 9.800259258495\n    test 2211 line 246 azi2: 166.282764024264\n    test 2212 line 246 lat2: 25.799128425384\n    test 2213 line 246 lon2: 9.800259258495\n    test 2214 line 246 azi2: 166.282764024264\n    test 2215 line 247 lat: -3.897277\n    test 2216 line 247 lon: 16.693319\n    test 2217 line 247 fb: 168.780736\n    test 2218 line 247 lat2: -3.897277132184\n    test 2219 line 247 lon2: 16.693318601970\n    test 2220 line 247 azi2: 168.780736094343\n    test 2221 line 247 lat2: -3.897277132184\n    test 2222 line 247 lon2: 16.693318601970\n    test 2223 line 247 azi2: 168.780736094343\n    test 2224 line 248 lat: 2.479585\n    test 2225 line 248 lon: 72.317321\n    test 2226 line 248 fb: 126.935932\n    test 2227 line 248 lat2: 2.479585385319\n    test 2228 line 248 lon2: 72.317321261259\n    test 2229 line 248 azi2: 126.935932221711\n    test 2230 line 248 lat2: 2.479585385319\n    test 2231 line 248 lon2: 72.317321261259\n    test 2232 line 248 azi2: 126.935932221711\n    test 2233 line 249 lat: -0.836621\n    test 2234 line 249 lon: 2.490193\n    test 2235 line 249 fb: 150.640498\n    test 2236 line 249 lat2: -0.836621274662\n    test 2237 line 249 lon2: 2.490192836679\n    test 2238 line 249 azi2: 150.640498065221\n    test 2239 line 249 lat2: -0.836621274662\n    test 2240 line 249 lon2: 2.490192836679\n    test 2241 line 249 azi2: 150.640498065221\n    test 2242 line 250 lat: -69.098227\n    test 2243 line 250 lon: 43.929874\n    test 2244 line 250 fb: 143.378404\n    test 2245 line 250 lat2: -69.098226894675\n    test 2246 line 250 lon2: 43.929873562507\n    test 2247 line 250 azi2: 143.378403982035\n    test 2248 line 250 lat2: -69.098226894675\n    test 2249 line 250 lon2: 43.929873562507\n    test 2250 line 250 azi2: 143.378403982035\n    test 2251 line 251 lat: 19.156121\n    test 2252 line 251 lon: 130.658473\n    test 2253 line 251 fb: 136.204475\n    test 2254 line 251 lat2: 19.156121137418\n    test 2255 line 251 lon2: 130.658473280949\n    test 2256 line 251 azi2: 136.204475163250\n    test 2257 line 251 lat2: 19.156121137418\n    test 2258 line 251 lon2: 130.658473280949\n    test 2259 line 251 azi2: 136.204475163250\n    test 2260 line 252 lat: 68.881949\n    test 2261 line 252 lon: 79.375865\n    test 2262 line 252 fb: 99.052732\n    test 2263 line 252 lat2: 68.881948915820\n    test 2264 line 252 lon2: 79.375865154434  FAILED, KNOWN, expected 79.375865154433\n    test 2265 line 252 azi2: 99.052731550675\n    test 2266 line 252 lat2: 68.881948915820\n    test 2267 line 252 lon2: 79.375865154434  FAILED, KNOWN, expected 79.375865154433\n    test 2268 line 252 azi2: 99.052731550675\n    test 2269 line 253 lat: -23.509016\n    test 2270 line 253 lon: 122.232226\n    test 2271 line 253 fb: 90.354604\n    test 2272 line 253 lat2: -23.509015988874\n    test 2273 line 253 lon2: 122.232226283491\n    test 2274 line 253 azi2: 90.354603607380\n    test 2275 line 253 lat2: -23.509015988874\n    test 2276 line 253 lon2: 122.232226283491\n    test 2277 line 253 azi2: 90.354603607380\n    test 2278 line 254 lat: -64.950636\n    test 2279 line 254 lon: 70.184354\n    test 2280 line 254 fb: 122.478937\n    test 2281 line 254 lat2: -64.950635804577\n    test 2282 line 254 lon2: 70.184354384370\n    test 2283 line 254 azi2: 122.478937039089\n    test 2284 line 254 lat2: -64.950635804577\n    test 2285 line 254 lon2: 70.184354384370\n    test 2286 line 254 azi2: 122.478937039089\n    test 2287 line 255 lat: 4.931109\n    test 2288 line 255 lon: 176.100221\n    test 2289 line 255 fb: 175.754221\n    test 2290 line 255 lat2: 4.931108669549\n    test 2291 line 255 lon2: 176.100220910178\n    test 2292 line 255 azi2: 175.754221027085\n    test 2293 line 255 lat2: 4.931108669549\n    test 2294 line 255 lon2: 176.100220910178\n    test 2295 line 255 azi2: 175.754221027085\n    test 2296 line 256 lat: -35.503236\n    test 2297 line 256 lon: 122.767107\n    test 2298 line 256 fb: 94.201020\n    test 2299 line 256 lat2: -35.503236005727\n    test 2300 line 256 lon2: 122.767107174014\n    test 2301 line 256 azi2: 94.201020059324\n    test 2302 line 256 lat2: -35.503236005727\n    test 2303 line 256 lon2: 122.767107174014\n    test 2304 line 256 azi2: 94.201020059324\n    test 2305 line 257 lat: 58.728016\n    test 2306 line 257 lon: 76.607531\n    test 2307 line 257 fb: 114.353509\n    test 2308 line 257 lat2: 58.728016150448\n    test 2309 line 257 lon2: 76.607530844045\n    test 2310 line 257 azi2: 114.353508957613\n    test 2311 line 257 lat2: 58.728016150448\n    test 2312 line 257 lon2: 76.607530844045\n    test 2313 line 257 azi2: 114.353508957613\n    test 2314 line 258 lat: 13.725793\n    test 2315 line 258 lon: 60.384503\n    test 2316 line 258 fb: 102.783242\n    test 2317 line 258 lat2: 13.725792757601\n    test 2318 line 258 lon2: 60.384502867486\n    test 2319 line 258 azi2: 102.783241874789\n    test 2320 line 258 lat2: 13.725792757601\n    test 2321 line 258 lon2: 60.384502867486\n    test 2322 line 258 azi2: 102.783241874789\n    test 2323 line 259 lat: 40.298524\n    test 2324 line 259 lon: 59.957993\n    test 2325 line 259 fb: 90.056366\n    test 2326 line 259 lat2: 40.298523592677\n    test 2327 line 259 lon2: 59.957993458231\n    test 2328 line 259 azi2: 90.056365696933\n    test 2329 line 259 lat2: 40.298523592677\n    test 2330 line 259 lon2: 59.957993458231\n    test 2331 line 259 azi2: 90.056365696933\n    test 2332 line 260 lat: 21.526222\n    test 2333 line 260 lon: 19.836420\n    test 2334 line 260 fb: 89.081274\n    test 2335 line 260 lat2: 21.526221960544\n    test 2336 line 260 lon2: 19.836419824899\n    test 2337 line 260 azi2: 89.081274273400\n    test 2338 line 260 lat2: 21.526221960544\n    test 2339 line 260 lon2: 19.836419824899\n    test 2340 line 260 azi2: 89.081274273400\n    test 2341 line 261 lat: -65.269872\n    test 2342 line 261 lon: 134.049515\n    test 2343 line 261 fb: 54.613515\n    test 2344 line 261 lat2: -65.269872123888\n    test 2345 line 261 lon2: 134.049514626723\n    test 2346 line 261 azi2: 54.613514542799\n    test 2347 line 261 lat2: -65.269872123888\n    test 2348 line 261 lon2: 134.049514626723\n    test 2349 line 261 azi2: 54.613514542799\n    test 2350 line 262 lat: -47.687068\n    test 2351 line 262 lon: 86.855941\n    test 2352 line 262 fb: 115.133532\n    test 2353 line 262 lat2: -47.687068378110\n    test 2354 line 262 lon2: 86.855941174728\n    test 2355 line 262 azi2: 115.133531572693\n    test 2356 line 262 lat2: -47.687068378110\n    test 2357 line 262 lon2: 86.855941174728\n    test 2358 line 262 azi2: 115.133531572693\n    test 2359 line 263 lat: -56.637273\n    test 2360 line 263 lon: 158.001121\n    test 2361 line 263 fb: 35.013276\n    test 2362 line 263 lat2: -56.637272907294\n    test 2363 line 263 lon2: 158.001120751267\n    test 2364 line 263 azi2: 35.013276119319\n    test 2365 line 263 lat2: -56.637272907294\n    test 2366 line 263 lon2: 158.001120751267\n    test 2367 line 263 azi2: 35.013276119319\n    test 2368 line 264 lat: 6.880772\n    test 2369 line 264 lon: 36.289125\n    test 2370 line 264 fb: 144.499557\n    test 2371 line 264 lat2: 6.880771895178\n    test 2372 line 264 lon2: 36.289124705135\n    test 2373 line 264 azi2: 144.499557452454\n    test 2374 line 264 lat2: 6.880771895178\n    test 2375 line 264 lon2: 36.289124705135\n    test 2376 line 264 azi2: 144.499557452454\n    test 2377 line 265 lat: 59.205527\n    test 2378 line 265 lon: 115.787268\n    test 2379 line 265 fb: 116.793619\n    test 2380 line 265 lat2: 59.205526512430\n    test 2381 line 265 lon2: 115.787267608171\n    test 2382 line 265 azi2: 116.793618855456\n    test 2383 line 265 lat2: 59.205526512430\n    test 2384 line 265 lon2: 115.787267608171\n    test 2385 line 265 azi2: 116.793618855456\n    test 2386 line 266 lat: 29.463206\n    test 2387 line 266 lon: 68.742710\n    test 2388 line 266 fb: 113.906069\n    test 2389 line 266 lat2: 29.463206450868\n    test 2390 line 266 lon2: 68.742710218988\n    test 2391 line 266 azi2: 113.906069374400\n    test 2392 line 266 lat2: 29.463206450868\n    test 2393 line 266 lon2: 68.742710218988\n    test 2394 line 266 azi2: 113.906069374400\n    test 2395 line 267 lat: 5.507960\n    test 2396 line 267 lon: 2.913367\n    test 2397 line 267 fb: 175.225892\n    test 2398 line 267 lat2: 5.507959555355\n    test 2399 line 267 lon2: 2.913367209347\n    test 2400 line 267 azi2: 175.225891805562\n    test 2401 line 267 lat2: 5.507959555355\n    test 2402 line 267 lon2: 2.913367209347\n    test 2403 line 267 azi2: 175.225891805562\n    test 2404 line 268 lat: 32.568215\n    test 2405 line 268 lon: 107.814340\n    test 2406 line 268 fb: 126.321687\n    test 2407 line 268 lat2: 32.568215067951\n    test 2408 line 268 lon2: 107.814340389788\n    test 2409 line 268 azi2: 126.321687264203\n    test 2410 line 268 lat2: 32.568215067951\n    test 2411 line 268 lon2: 107.814340389788\n    test 2412 line 268 azi2: 126.321687264203\n    test 2413 line 269 lat: 48.941036\n    test 2414 line 269 lon: 170.309380\n    test 2415 line 269 fb: 170.816057\n    test 2416 line 269 lat2: 48.941036400994\n    test 2417 line 269 lon2: 170.309379989564\n    test 2418 line 269 azi2: 170.816056872564\n    test 2419 line 269 lat2: 48.941036400994\n    test 2420 line 269 lon2: 170.309379989564\n    test 2421 line 269 azi2: 170.816056872564\n    test 2422 line 270 lat: 32.657811\n    test 2423 line 270 lon: 174.401372\n    test 2424 line 270 fb: 173.967029\n    test 2425 line 270 lat2: 32.657810935795\n    test 2426 line 270 lon2: 174.401372292954\n    test 2427 line 270 azi2: 173.967029189838\n    test 2428 line 270 lat2: 32.657810935795\n    test 2429 line 270 lon2: 174.401372292954\n    test 2430 line 270 azi2: 173.967029189838\n    test 2431 line 271 lat: -30.959342\n    test 2432 line 271 lon: 144.596945\n    test 2433 line 271 fb: 157.635539\n    test 2434 line 271 lat2: -30.959341511189\n    test 2435 line 271 lon2: 144.596944855700\n    test 2436 line 271 azi2: 157.635538872114\n    test 2437 line 271 lat2: -30.959341511189\n    test 2438 line 271 lon2: 144.596944855700\n    test 2439 line 271 azi2: 157.635538872114\n    test 2440 line 272 lat: 52.180060\n    test 2441 line 272 lon: 68.363538\n    test 2442 line 272 fb: 82.619820\n    test 2443 line 272 lat2: 52.180060488771\n    test 2444 line 272 lon2: 68.363538073511\n    test 2445 line 272 azi2: 82.619819936898\n    test 2446 line 272 lat2: 52.180060488771\n    test 2447 line 272 lon2: 68.363538073511\n    test 2448 line 272 azi2: 82.619819936898\n    test 2449 line 273 lat: -49.230655\n    test 2450 line 273 lon: 119.085123\n    test 2451 line 273 fb: 81.553785\n    test 2452 line 273 lat2: -49.230654785601\n    test 2453 line 273 lon2: 119.085122995371\n    test 2454 line 273 azi2: 81.553785297210\n    test 2455 line 273 lat2: -49.230654785601\n    test 2456 line 273 lon2: 119.085122995371\n    test 2457 line 273 azi2: 81.553785297210\n    test 2458 line 274 lat: 12.315309\n    test 2459 line 274 lon: 21.800337\n    test 2460 line 274 fb: 86.572317\n    test 2461 line 274 lat2: 12.315308710130\n    test 2462 line 274 lon2: 21.800336803956\n    test 2463 line 274 azi2: 86.572316548512\n    test 2464 line 274 lat2: 12.315308710130\n    test 2465 line 274 lon2: 21.800336803956\n    test 2466 line 274 azi2: 86.572316548512\n    test 2467 line 275 lat: 0.074875\n    test 2468 line 275 lon: 122.092567\n    test 2469 line 275 fb: 93.940324\n    test 2470 line 275 lat2: 0.074874782626\n    test 2471 line 275 lon2: 122.092567299352\n    test 2472 line 275 azi2: 93.940323652996\n    test 2473 line 275 lat2: 0.074874782626\n    test 2474 line 275 lon2: 122.092567299352\n    test 2475 line 275 azi2: 93.940323652996\n    test 2476 line 276 lat: -32.420609\n    test 2477 line 276 lon: 80.147417\n    test 2478 line 276 fb: 123.183256\n    test 2479 line 276 lat2: -32.420609134175\n    test 2480 line 276 lon2: 80.147416945184\n    test 2481 line 276 azi2: 123.183256201588\n    test 2482 line 276 lat2: -32.420609134175\n    test 2483 line 276 lon2: 80.147416945184\n    test 2484 line 276 azi2: 123.183256201588\n    test 2485 line 277 lat: 82.600418\n    test 2486 line 277 lon: 34.418367\n    test 2487 line 277 fb: 35.057122\n    test 2488 line 277 lat2: 82.600418456713\n    test 2489 line 277 lon2: 34.418367124569\n    test 2490 line 277 azi2: 35.057122384192\n    test 2491 line 277 lat2: 82.600418456713\n    test 2492 line 277 lon2: 34.418367124569\n    test 2493 line 277 azi2: 35.057122384192\n    test 2494 line 278 lat: 26.274633\n    test 2495 line 278 lon: 93.043032\n    test 2496 line 278 fb: 114.480069\n    test 2497 line 278 lat2: 26.274632977288\n    test 2498 line 278 lon2: 93.043031668414\n    test 2499 line 278 azi2: 114.480069066657\n    test 2500 line 278 lat2: 26.274632977288\n    test 2501 line 278 lon2: 93.043031668414\n    test 2502 line 278 azi2: 114.480069066657\n    test 2503 line 279 lat: 28.433986\n    test 2504 line 279 lon: 132.962042\n    test 2505 line 279 fb: 118.817242\n    test 2506 line 279 lat2: 28.433985598740\n    test 2507 line 279 lon2: 132.962041543078\n    test 2508 line 279 azi2: 118.817241997246\n    test 2509 line 279 lat2: 28.433985598740\n    test 2510 line 279 lon2: 132.962041543078\n    test 2511 line 279 azi2: 118.817241997246\n    test 2512 line 280 lat: 32.426459\n    test 2513 line 280 lon: 65.171889\n    test 2514 line 280 fb: 113.230923\n    test 2515 line 280 lat2: 32.426458512822\n    test 2516 line 280 lon2: 65.171889395963\n    test 2517 line 280 azi2: 113.230923394172\n    test 2518 line 280 lat2: 32.426458512822\n    test 2519 line 280 lon2: 65.171889395963\n    test 2520 line 280 azi2: 113.230923394172\n    test 2521 line 281 lat: 8.427284\n    test 2522 line 281 lon: 20.342496\n    test 2523 line 281 fb: 140.993359\n    test 2524 line 281 lat2: 8.427284359102\n    test 2525 line 281 lon2: 20.342496251702\n    test 2526 line 281 azi2: 140.993359066103\n    test 2527 line 281 lat2: 8.427284359102\n    test 2528 line 281 lon2: 20.342496251702\n    test 2529 line 281 azi2: 140.993359066103\n    test 2530 line 282 lat: -16.412702\n    test 2531 line 282 lon: 47.392542\n    test 2532 line 282 fb: 167.389705\n    test 2533 line 282 lat2: -16.412702228950\n    test 2534 line 282 lon2: 47.392541669265\n    test 2535 line 282 azi2: 167.389704666322\n    test 2536 line 282 lat2: -16.412702228950\n    test 2537 line 282 lon2: 47.392541669265\n    test 2538 line 282 azi2: 167.389704666322\n    test 2539 line 283 lat: -54.082376\n    test 2540 line 283 lon: 159.985466\n    test 2541 line 283 fb: 56.023710\n    test 2542 line 283 lat2: -54.082375801659\n    test 2543 line 283 lon2: 159.985465829683\n    test 2544 line 283 azi2: 56.023710499162\n    test 2545 line 283 lat2: -54.082375801659\n    test 2546 line 283 lon2: 159.985465829683\n    test 2547 line 283 azi2: 56.023710499162\n    test 2548 line 284 lat: 38.704319\n    test 2549 line 284 lon: 78.307551\n    test 2550 line 284 fb: 106.582126\n    test 2551 line 284 lat2: 38.704318557557\n    test 2552 line 284 lon2: 78.307550831333\n    test 2553 line 284 azi2: 106.582125725743\n    test 2554 line 284 lat2: 38.704318557557\n    test 2555 line 284 lon2: 78.307550831333\n    test 2556 line 284 azi2: 106.582125725743\n    test 2557 line 285 lat: 15.206275\n    test 2558 line 285 lon: 59.878378\n    test 2559 line 285 fb: 114.460428\n    test 2560 line 285 lat2: 15.206274688849\n    test 2561 line 285 lon2: 59.878378252292\n    test 2562 line 285 azi2: 114.460428216582\n    test 2563 line 285 lat2: 15.206274688849\n    test 2564 line 285 lon2: 59.878378252292\n    test 2565 line 285 azi2: 114.460428216582\n    test 2566 line 286 lat: -62.789550\n    test 2567 line 286 lon: 66.649185\n    test 2568 line 286 fb: 119.232672\n    test 2569 line 286 lat2: -62.789549909136\n    test 2570 line 286 lon2: 66.649184622337\n    test 2571 line 286 azi2: 119.232671643971\n    test 2572 line 286 lat2: -62.789549909136\n    test 2573 line 286 lon2: 66.649184622337\n    test 2574 line 286 azi2: 119.232671643971\n    test 2575 line 287 lat: 31.235252\n    test 2576 line 287 lon: 19.933468\n    test 2577 line 287 fb: 145.488470\n    test 2578 line 287 lat2: 31.235252170087\n    test 2579 line 287 lon2: 19.933467970517\n    test 2580 line 287 azi2: 145.488469796544\n    test 2581 line 287 lat2: 31.235252170087\n    test 2582 line 287 lon2: 19.933467970517\n    test 2583 line 287 azi2: 145.488469796544\n    test 2584 line 288 lat: 11.983236\n    test 2585 line 288 lon: 145.307369\n    test 2586 line 288 fb: 151.192641\n    test 2587 line 288 lat2: 11.983236088753\n    test 2588 line 288 lon2: 145.307368849730\n    test 2589 line 288 azi2: 151.192640854621\n    test 2590 line 288 lat2: 11.983236088753\n    test 2591 line 288 lon2: 145.307368849730\n    test 2592 line 288 azi2: 151.192640854621\n    test 2593 line 289 lat: 27.629694\n    test 2594 line 289 lon: 16.148459\n    test 2595 line 289 fb: 63.008012\n    test 2596 line 289 lat2: 27.629693628283\n    test 2597 line 289 lon2: 16.148459400244\n    test 2598 line 289 azi2: 63.008012267521\n    test 2599 line 289 lat2: 27.629693628283\n    test 2600 line 289 lon2: 16.148459400244\n    test 2601 line 289 azi2: 63.008012267521\n    test 2602 line 290 lat: 34.077784\n    test 2603 line 290 lon: 115.693210\n    test 2604 line 290 fb: 112.252264\n    test 2605 line 290 lat2: 34.077783768135\n    test 2606 line 290 lon2: 115.693209573427\n    test 2607 line 290 azi2: 112.252263721679\n    test 2608 line 290 lat2: 34.077783768135\n    test 2609 line 290 lon2: 115.693209573427\n    test 2610 line 290 azi2: 112.252263721679\n    test 2611 line 291 lat: 17.100340\n    test 2612 line 291 lon: 26.538643\n    test 2613 line 291 fb: 131.391925\n    test 2614 line 291 lat2: 17.100339523444\n    test 2615 line 291 lon2: 26.538642768875\n    test 2616 line 291 azi2: 131.391925094902\n    test 2617 line 291 lat2: 17.100339523444\n    test 2618 line 291 lon2: 26.538642768875\n    test 2619 line 291 azi2: 131.391925094902\n    test 2620 line 292 lat: -8.128040\n    test 2621 line 292 lon: 28.609615\n    test 2622 line 292 fb: 144.189095\n    test 2623 line 292 lat2: -8.128039572354\n    test 2624 line 292 lon2: 28.609615412806\n    test 2625 line 292 azi2: 144.189095481788\n    test 2626 line 292 lat2: -8.128039572354\n    test 2627 line 292 lon2: 28.609615412806\n    test 2628 line 292 azi2: 144.189095481788\n    test 2629 line 293 lat: 17.307082\n    test 2630 line 293 lon: 150.748550\n    test 2631 line 293 fb: 172.334611\n    test 2632 line 293 lat2: 17.307081581668\n    test 2633 line 293 lon2: 150.748549863580\n    test 2634 line 293 azi2: 172.334611079260\n    test 2635 line 293 lat2: 17.307081581668\n    test 2636 line 293 lon2: 150.748549863580\n    test 2637 line 293 azi2: 172.334611079260\n    test 2638 line 294 lat: 4.135230\n    test 2639 line 294 lon: 142.094814\n    test 2640 line 294 fb: 170.513214\n    test 2641 line 294 lat2: 4.135229575811\n    test 2642 line 294 lon2: 142.094814225629\n    test 2643 line 294 azi2: 170.513213518678\n    test 2644 line 294 lat2: 4.135229575811\n    test 2645 line 294 lon2: 142.094814225629\n    test 2646 line 294 azi2: 170.513213518678\n    test 2647 line 295 lat: -61.544041\n    test 2648 line 295 lon: 167.154866\n    test 2649 line 295 fb: 51.415676\n    test 2650 line 295 lat2: -61.544040804472\n    test 2651 line 295 lon2: 167.154866481811\n    test 2652 line 295 azi2: 51.415675504866\n    test 2653 line 295 lat2: -61.544040804472\n    test 2654 line 295 lon2: 167.154866481811\n    test 2655 line 295 azi2: 51.415675504866\n    test 2656 line 296 lat: 27.782466\n    test 2657 line 296 lon: 53.844550\n    test 2658 line 296 fb: 78.357665\n    test 2659 line 296 lat2: 27.782465760718\n    test 2660 line 296 lon2: 53.844549799795\n    test 2661 line 296 azi2: 78.357665271795\n    test 2662 line 296 lat2: 27.782465760718\n    test 2663 line 296 lon2: 53.844549799795\n    test 2664 line 296 azi2: 78.357665271795\n    test 2665 line 297 lat: -30.157337\n    test 2666 line 297 lon: 14.759636\n    test 2667 line 297 fb: 157.487063\n    test 2668 line 297 lat2: -30.157336788088\n    test 2669 line 297 lon2: 14.759635614931\n    test 2670 line 297 azi2: 157.487063280783\n    test 2671 line 297 lat2: -30.157336788088\n    test 2672 line 297 lon2: 14.759635614931\n    test 2673 line 297 azi2: 157.487063280783\n    test 2674 line 298 lat: -16.819268\n    test 2675 line 298 lon: 22.734618\n    test 2676 line 298 fb: 167.761663\n    test 2677 line 298 lat2: -16.819268371139\n    test 2678 line 298 lon2: 22.734618221531\n    test 2679 line 298 azi2: 167.761663436059\n    test 2680 line 298 lat2: -16.819268371139\n    test 2681 line 298 lon2: 22.734618221531\n    test 2682 line 298 azi2: 167.761663436059\n    test 2683 line 299 lat: 58.190743\n    test 2684 line 299 lon: 15.576363\n    test 2685 line 299 fb: 71.213972\n    test 2686 line 299 lat2: 58.190742593673\n    test 2687 line 299 lon2: 15.576363250416\n    test 2688 line 299 azi2: 71.213972172079\n    test 2689 line 299 lat2: 58.190742593673\n    test 2690 line 299 lon2: 15.576363250416\n    test 2691 line 299 azi2: 71.213972172079\n    test 2692 line 300 lat: 57.214981\n    test 2693 line 300 lon: 163.530752\n    test 2694 line 300 fb: 162.056064\n    test 2695 line 300 lat2: 57.214981133823\n    test 2696 line 300 lon2: 163.530751680014\n    test 2697 line 300 azi2: 162.056064225923\n    test 2698 line 300 lat2: 57.214981133823\n    test 2699 line 300 lon2: 163.530751680014\n    test 2700 line 300 azi2: 162.056064225923\n    test 2701 line 301 lat: 31.811818\n    test 2702 line 301 lon: 81.663494\n    test 2703 line 301 fb: 112.546404\n    test 2704 line 301 lat2: 31.811817748936\n    test 2705 line 301 lon2: 81.663494432962\n    test 2706 line 301 azi2: 112.546403824977\n    test 2707 line 301 lat2: 31.811817748936\n    test 2708 line 301 lon2: 81.663494432962\n    test 2709 line 301 azi2: 112.546403824977\n    test 2710 line 302 lat: -11.315727\n    test 2711 line 302 lon: 48.409490\n    test 2712 line 302 fb: 121.434574\n    test 2713 line 302 lat2: -11.315726799012\n    test 2714 line 302 lon2: 48.409489590525\n    test 2715 line 302 azi2: 121.434573764585\n    test 2716 line 302 lat2: -11.315726799012\n    test 2717 line 302 lon2: 48.409489590525\n    test 2718 line 302 azi2: 121.434573764585\n    test 2719 line 303 lat: 6.119956\n    test 2720 line 303 lon: 5.687908\n    test 2721 line 303 fb: 94.977171\n    test 2722 line 303 lat2: 6.119956010623\n    test 2723 line 303 lon2: 5.687908365969\n    test 2724 line 303 azi2: 94.977170961146\n    test 2725 line 303 lat2: 6.119956010623\n    test 2726 line 303 lon2: 5.687908365969\n    test 2727 line 303 azi2: 94.977170961146\n    test 2728 line 304 lat: -13.455263\n    test 2729 line 304 lon: 92.797729\n    test 2730 line 304 fb: 125.067595\n    test 2731 line 304 lat2: -13.455262906771\n    test 2732 line 304 lon2: 92.797729354548\n    test 2733 line 304 azi2: 125.067595131171\n    test 2734 line 304 lat2: -13.455262906771\n    test 2735 line 304 lon2: 92.797729354548\n    test 2736 line 304 azi2: 125.067595131171\n    test 2737 line 305 lat: -61.258454\n    test 2738 line 305 lon: 32.464613\n    test 2739 line 305 fb: 153.578300\n    test 2740 line 305 lat2: -61.258454070259\n    test 2741 line 305 lon2: 32.464613321886\n    test 2742 line 305 azi2: 153.578299580216\n    test 2743 line 305 lat2: -61.258454070259\n    test 2744 line 305 lon2: 32.464613321886\n    test 2745 line 305 azi2: 153.578299580216\n    test 2746 line 306 lat: 76.656194\n    test 2747 line 306 lon: 147.658262\n    test 2748 line 306 fb: 154.870277\n    test 2749 line 306 lat2: 76.656194303754\n    test 2750 line 306 lon2: 147.658261698859\n    test 2751 line 306 azi2: 154.870276891567\n    test 2752 line 306 lat2: 76.656194303754\n    test 2753 line 306 lon2: 147.658261698859\n    test 2754 line 306 azi2: 154.870276891567\n    test 2755 line 307 lat: 38.020470\n    test 2756 line 307 lon: 22.502210\n    test 2757 line 307 fb: 164.603876\n    test 2758 line 307 lat2: 38.020470355438\n    test 2759 line 307 lon2: 22.502210018002\n    test 2760 line 307 azi2: 164.603876406614\n    test 2761 line 307 lat2: 38.020470355438\n    test 2762 line 307 lon2: 22.502210018002\n    test 2763 line 307 azi2: 164.603876406614\n    test 2764 line 308 lat: -28.475186\n    test 2765 line 308 lon: 125.031589\n    test 2766 line 308 fb: 71.946314\n    test 2767 line 308 lat2: -28.475185707347\n    test 2768 line 308 lon2: 125.031589334958\n    test 2769 line 308 azi2: 71.946313988393\n    test 2770 line 308 lat2: -28.475185707347\n    test 2771 line 308 lon2: 125.031589334958\n    test 2772 line 308 azi2: 71.946313988393\n    test 2773 line 309 lat: 33.123700\n    test 2774 line 309 lon: 47.796870\n    test 2775 line 309 fb: 66.233041\n    test 2776 line 309 lat2: 33.123699771125\n    test 2777 line 309 lon2: 47.796870281285\n    test 2778 line 309 azi2: 66.233040505915\n    test 2779 line 309 lat2: 33.123699771125\n    test 2780 line 309 lon2: 47.796870281285\n    test 2781 line 309 azi2: 66.233040505915\n    test 2782 line 310 lat: 36.967606\n    test 2783 line 310 lon: 91.462107\n    test 2784 line 310 fb: 113.555931\n    test 2785 line 310 lat2: 36.967605507925\n    test 2786 line 310 lon2: 91.462107367844\n    test 2787 line 310 azi2: 113.555931272414\n    test 2788 line 310 lat2: 36.967605507925\n    test 2789 line 310 lon2: 91.462107367844\n    test 2790 line 310 azi2: 113.555931272414\n    test 2791 line 311 lat: -3.784112\n    test 2792 line 311 lon: 75.465096\n    test 2793 line 311 fb: 146.940895\n    test 2794 line 311 lat2: -3.784112064078\n    test 2795 line 311 lon2: 75.465096433718\n    test 2796 line 311 azi2: 146.940895363525\n    test 2797 line 311 lat2: -3.784112064078\n    test 2798 line 311 lon2: 75.465096433718\n    test 2799 line 311 azi2: 146.940895363525\n    test 2800 line 312 lat: 10.772454\n    test 2801 line 312 lon: 162.137695\n    test 2802 line 312 fb: 176.774643\n    test 2803 line 312 lat2: 10.772454234710\n    test 2804 line 312 lon2: 162.137694811372\n    test 2805 line 312 azi2: 176.774642770857\n    test 2806 line 312 lat2: 10.772454234711  FAILED, KNOWN, expected 10.772454234710\n    test 2807 line 312 lon2: 162.137694811372\n    test 2808 line 312 azi2: 176.774642770857\n    test 2809 line 313 lat: 23.928740\n    test 2810 line 313 lon: 28.953169\n    test 2811 line 313 fb: 143.614710\n    test 2812 line 313 lat2: 23.928739648982\n    test 2813 line 313 lon2: 28.953169497861\n    test 2814 line 313 azi2: 143.614709768381\n    test 2815 line 313 lat2: 23.928739648982\n    test 2816 line 313 lon2: 28.953169497861\n    test 2817 line 313 azi2: 143.614709768381\n    test 2818 line 314 lat: 5.199377\n    test 2819 line 314 lon: 162.802668\n    test 2820 line 314 fb: 146.857520\n    test 2821 line 314 lat2: 5.199376594428\n    test 2822 line 314 lon2: 162.802668362269\n    test 2823 line 314 azi2: 146.857519761344\n    test 2824 line 314 lat2: 5.199376594428\n    test 2825 line 314 lon2: 162.802668362269\n    test 2826 line 314 azi2: 146.857519761344\n    test 2827 line 315 lat: 6.285334\n    test 2828 line 315 lon: 164.204548\n    test 2829 line 315 fb: 159.451359\n    test 2830 line 315 lat2: 6.285334322282\n    test 2831 line 315 lon2: 164.204548022855\n    test 2832 line 315 azi2: 159.451359223111\n    test 2833 line 315 lat2: 6.285334322282\n    test 2834 line 315 lon2: 164.204548022855\n    test 2835 line 315 azi2: 159.451359223111\n    test 2836 line 316 lat: -8.151874\n    test 2837 line 316 lon: 43.923539\n    test 2838 line 316 fb: 121.501273\n    test 2839 line 316 lat2: -8.151873580306\n    test 2840 line 316 lon2: 43.923539410568\n    test 2841 line 316 azi2: 121.501272690158\n    test 2842 line 316 lat2: -8.151873580306\n    test 2843 line 316 lon2: 43.923539410568\n    test 2844 line 316 azi2: 121.501272690158\n    test 2845 line 317 lat: 20.145480\n    test 2846 line 317 lon: 92.310645\n    test 2847 line 317 fb: 97.369333\n    test 2848 line 317 lat2: 20.145480383316\n    test 2849 line 317 lon2: 92.310644735772\n    test 2850 line 317 azi2: 97.369333245027\n    test 2851 line 317 lat2: 20.145480383316\n    test 2852 line 317 lon2: 92.310644735772\n    test 2853 line 317 azi2: 97.369333245027\n    test 2854 line 318 lat: 38.715579\n    test 2855 line 318 lon: 89.141427\n    test 2856 line 318 fb: 100.831087\n    test 2857 line 318 lat2: 38.715578802658\n    test 2858 line 318 lon2: 89.141426830360\n    test 2859 line 318 azi2: 100.831086703170\n    test 2860 line 318 lat2: 38.715578802658\n    test 2861 line 318 lon2: 89.141426830360\n    test 2862 line 318 azi2: 100.831086703170\n    test 2863 line 319 lat: -25.760685\n    test 2864 line 319 lon: 145.864001\n    test 2865 line 319 fb: 142.714674\n    test 2866 line 319 lat2: -25.760685020607\n    test 2867 line 319 lon2: 145.864001048187\n    test 2868 line 319 azi2: 142.714673928912\n    test 2869 line 319 lat2: -25.760685020607\n    test 2870 line 319 lon2: 145.864001048187\n    test 2871 line 319 azi2: 142.714673928912\n    test 2872 line 320 lat: 49.387283\n    test 2873 line 320 lon: 28.917044\n    test 2874 line 320 fb: 61.545235\n    test 2875 line 320 lat2: 49.387283074155\n    test 2876 line 320 lon2: 28.917043656754\n    test 2877 line 320 azi2: 61.545235148403\n    test 2878 line 320 lat2: 49.387283074155\n    test 2879 line 320 lon2: 28.917043656754\n    test 2880 line 320 azi2: 61.545235148403\n    test 2881 line 321 lat: 10.120685\n    test 2882 line 321 lon: 2.869738\n    test 2883 line 321 fb: 176.526916\n    test 2884 line 321 lat2: 10.120685293027\n    test 2885 line 321 lon2: 2.869737593886\n    test 2886 line 321 azi2: 176.526915822865\n    test 2887 line 321 lat2: 10.120685293027\n    test 2888 line 321 lon2: 2.869737593886\n    test 2889 line 321 azi2: 176.526915822865\n    test 2890 line 322 lat: 2.463216\n    test 2891 line 322 lon: 102.917600\n    test 2892 line 322 fb: 170.609004\n    test 2893 line 322 lat2: 2.463216066166\n    test 2894 line 322 lon2: 102.917599852201\n    test 2895 line 322 azi2: 170.609003610639\n    test 2896 line 322 lat2: 2.463216066166\n    test 2897 line 322 lon2: 102.917599852201\n    test 2898 line 322 azi2: 170.609003610639\n    test 2899 line 323 lat: 58.201294\n    test 2900 line 323 lon: 155.022079\n    test 2901 line 323 fb: 153.181269\n    test 2902 line 323 lat2: 58.201293688923\n    test 2903 line 323 lon2: 155.022079105501\n    test 2904 line 323 azi2: 153.181268692773\n    test 2905 line 323 lat2: 58.201293688923\n    test 2906 line 323 lon2: 155.022079105501\n    test 2907 line 323 azi2: 153.181268692773\n    test 2908 line 324 lat: 3.089608\n    test 2909 line 324 lon: 20.686800\n    test 2910 line 324 fb: 144.857820\n    test 2911 line 324 lat2: 3.089607756265\n    test 2912 line 324 lon2: 20.686800266169\n    test 2913 line 324 azi2: 144.857820265585\n    test 2914 line 324 lat2: 3.089607756265\n    test 2915 line 324 lon2: 20.686800266169\n    test 2916 line 324 azi2: 144.857820265585\n    test 2917 line 325 lat: 48.232274\n    test 2918 line 325 lon: 18.567244\n    test 2919 line 325 fb: 24.556438\n    test 2920 line 325 lat2: 48.232274219515\n    test 2921 line 325 lon2: 18.567244222293\n    test 2922 line 325 azi2: 24.556437713520\n    test 2923 line 325 lat2: 48.232274219515\n    test 2924 line 325 lon2: 18.567244222293\n    test 2925 line 325 azi2: 24.556437713520\n    test 2926 line 326 lat: 30.265261\n    test 2927 line 326 lon: 7.440738\n    test 2928 line 326 fb: 142.022972\n    test 2929 line 326 lat2: 30.265261486767\n    test 2930 line 326 lon2: 7.440737656545\n    test 2931 line 326 azi2: 142.022971576270\n    test 2932 line 326 lat2: 30.265261486767\n    test 2933 line 326 lon2: 7.440737656545\n    test 2934 line 326 azi2: 142.022971576270\n    test 2935 line 327 lat: -11.166197\n    test 2936 line 327 lon: 176.728934\n    test 2937 line 327 fb: 24.287273\n    test 2938 line 327 lat2: -11.166197413148\n    test 2939 line 327 lon2: 176.728933575636\n    test 2940 line 327 azi2: 24.287272842989\n    test 2941 line 327 lat2: -11.166197413148\n    test 2942 line 327 lon2: 176.728933575636\n    test 2943 line 327 azi2: 24.287272842989\n    test 2944 line 328 lat: 84.645539\n    test 2945 line 328 lon: 90.023922\n    test 2946 line 328 fb: 92.786262\n    test 2947 line 328 lat2: 84.645539196082\n    test 2948 line 328 lon2: 90.023922499395\n    test 2949 line 328 azi2: 92.786261566827\n    test 2950 line 328 lat2: 84.645539196082\n    test 2951 line 328 lon2: 90.023922499396  FAILED, KNOWN, expected 90.023922499395\n    test 2952 line 328 azi2: 92.786261566828  FAILED, KNOWN, expected 92.786261566827\n    test 2953 line 329 lat: 61.618717\n    test 2954 line 329 lon: 162.510959\n    test 2955 line 329 fb: 160.923940\n    test 2956 line 329 lat2: 61.618716728051\n    test 2957 line 329 lon2: 162.510958917359\n    test 2958 line 329 azi2: 160.923939760553\n    test 2959 line 329 lat2: 61.618716728051\n    test 2960 line 329 lon2: 162.510958917359\n    test 2961 line 329 azi2: 160.923939760553\n    test 2962 line 330 lat: 27.643242\n    test 2963 line 330 lon: 45.376215\n    test 2964 line 330 fb: 147.964522\n    test 2965 line 330 lat2: 27.643242341173\n    test 2966 line 330 lon2: 45.376215094118\n    test 2967 line 330 azi2: 147.964522484664\n    test 2968 line 330 lat2: 27.643242341173\n    test 2969 line 330 lon2: 45.376215094118\n    test 2970 line 330 azi2: 147.964522484664\n    test 2971 line 331 lat: 2.218750\n    test 2972 line 331 lon: 170.358342\n    test 2973 line 331 fb: 141.658474\n    test 2974 line 331 lat2: 2.218749985364\n    test 2975 line 331 lon2: 170.358342078292\n    test 2976 line 331 azi2: 141.658474129787\n    test 2977 line 331 lat2: 2.218749985364\n    test 2978 line 331 lon2: 170.358342078292\n    test 2979 line 331 azi2: 141.658474129787\n    test 2980 line 332 lat: 26.019142\n    test 2981 line 332 lon: 32.534760\n    test 2982 line 332 fb: 128.159784\n    test 2983 line 332 lat2: 26.019142329663\n    test 2984 line 332 lon2: 32.534760195963\n    test 2985 line 332 azi2: 128.159784291645\n    test 2986 line 332 lat2: 26.019142329663\n    test 2987 line 332 lon2: 32.534760195963\n    test 2988 line 332 azi2: 128.159784291645\n    test 2989 line 333 lat: 10.049636\n    test 2990 line 333 lon: 72.205347\n    test 2991 line 333 fb: 143.602160\n    test 2992 line 333 lat2: 10.049636247749\n    test 2993 line 333 lon2: 72.205346955818\n    test 2994 line 333 azi2: 143.602159725306\n    test 2995 line 333 lat2: 10.049636247749\n    test 2996 line 333 lon2: 72.205346955818\n    test 2997 line 333 azi2: 143.602159725306\n    test 2998 line 334 lat: -31.030497\n    test 2999 line 334 lon: 91.539195\n    test 3000 line 334 fb: 109.891398\n    test 3001 line 334 lat2: -31.030496743715\n    test 3002 line 334 lon2: 91.539195292896\n    test 3003 line 334 azi2: 109.891398221790\n    test 3004 line 334 lat2: -31.030496743715\n    test 3005 line 334 lon2: 91.539195292896\n    test 3006 line 334 azi2: 109.891398221790\n    test 3007 line 335 lat: 30.113796\n    test 3008 line 335 lon: 109.096982\n    test 3009 line 335 fb: 146.779343\n    test 3010 line 335 lat2: 30.113795853671\n    test 3011 line 335 lon2: 109.096981631502\n    test 3012 line 335 azi2: 146.779343066541\n    test 3013 line 335 lat2: 30.113795853670  FAILED, KNOWN, expected 30.113795853671\n    test 3014 line 335 lon2: 109.096981631502\n    test 3015 line 335 azi2: 146.779343066541\n    test 3016 line 336 lat: -73.967996\n    test 3017 line 336 lon: 65.944243\n    test 3018 line 336 fb: 120.592999\n    test 3019 line 336 lat2: -73.967996185770\n    test 3020 line 336 lon2: 65.944242524678\n    test 3021 line 336 azi2: 120.592998665529\n    test 3022 line 336 lat2: -73.967996185770\n    test 3023 line 336 lon2: 65.944242524678\n    test 3024 line 336 azi2: 120.592998665529\n    test 3025 line 337 lat: 52.211150\n    test 3026 line 337 lon: 168.054185\n    test 3027 line 337 fb: 172.425992\n    test 3028 line 337 lat2: 52.211149755494\n    test 3029 line 337 lon2: 168.054184827868\n    test 3030 line 337 azi2: 172.425991612467\n    test 3031 line 337 lat2: 52.211149755494\n    test 3032 line 337 lon2: 168.054184827868\n    test 3033 line 337 azi2: 172.425991612467\n    test 3034 line 338 lat: -64.497146\n    test 3035 line 338 lon: 72.073419\n    test 3036 line 338 fb: 114.249129\n    test 3037 line 338 lat2: -64.497146189688\n    test 3038 line 338 lon2: 72.073418936581\n    test 3039 line 338 azi2: 114.249128850219\n    test 3040 line 338 lat2: -64.497146189688\n    test 3041 line 338 lon2: 72.073418936581\n    test 3042 line 338 azi2: 114.249128850219\n    test 3043 line 339 lat: -25.711399\n    test 3044 line 339 lon: 6.036423\n    test 3045 line 339 fb: 169.464098\n    test 3046 line 339 lat2: -25.711398997503\n    test 3047 line 339 lon2: 6.036423474639\n    test 3048 line 339 azi2: 169.464098294263\n    test 3049 line 339 lat2: -25.711398997503\n    test 3050 line 339 lon2: 6.036423474639\n    test 3051 line 339 azi2: 169.464098294263\n    test 3052 line 340 lat: 33.904613\n    test 3053 line 340 lon: 30.989094\n    test 3054 line 340 fb: 124.896016\n    test 3055 line 340 lat2: 33.904613360449\n    test 3056 line 340 lon2: 30.989094387217\n    test 3057 line 340 azi2: 124.896016003640\n    test 3058 line 340 lat2: 33.904613360449\n    test 3059 line 340 lon2: 30.989094387217\n    test 3060 line 340 azi2: 124.896016003640\n    test 3061 line 341 lat: -25.053080\n    test 3062 line 341 lon: 137.078639\n    test 3063 line 341 fb: 115.960750\n    test 3064 line 341 lat2: -25.053079543516\n    test 3065 line 341 lon2: 137.078638665495\n    test 3066 line 341 azi2: 115.960750169086\n    test 3067 line 341 lat2: -25.053079543516\n    test 3068 line 341 lon2: 137.078638665495\n    test 3069 line 341 azi2: 115.960750169086\n    test 3070 line 342 lat: 10.298031\n    test 3071 line 342 lon: 27.737374\n    test 3072 line 342 fb: 142.265457\n    test 3073 line 342 lat2: 10.298031202629\n    test 3074 line 342 lon2: 27.737373649973\n    test 3075 line 342 azi2: 142.265457288483\n    test 3076 line 342 lat2: 10.298031202629\n    test 3077 line 342 lon2: 27.737373649973\n    test 3078 line 342 azi2: 142.265457288483\n    test 3079 line 343 lat: -0.738692\n    test 3080 line 343 lon: 150.933627\n    test 3081 line 343 fb: 174.004688\n    test 3082 line 343 lat2: -0.738692377457\n    test 3083 line 343 lon2: 150.933627031610\n    test 3084 line 343 azi2: 174.004687728765\n    test 3085 line 343 lat2: -0.738692377457\n    test 3086 line 343 lon2: 150.933627031610\n    test 3087 line 343 azi2: 174.004687728765\n    test 3088 line 344 lat: 50.619289\n    test 3089 line 344 lon: 67.178203\n    test 3090 line 344 fb: 105.177353\n    test 3091 line 344 lat2: 50.619289349009\n    test 3092 line 344 lon2: 67.178203328135\n    test 3093 line 344 azi2: 105.177353051107\n    test 3094 line 344 lat2: 50.619289349009\n    test 3095 line 344 lon2: 67.178203328135\n    test 3096 line 344 azi2: 105.177353051107\n    test 3097 line 345 lat: -2.127739\n    test 3098 line 345 lon: 38.604245\n    test 3099 line 345 fb: 118.657849\n    test 3100 line 345 lat2: -2.127739360728\n    test 3101 line 345 lon2: 38.604245449983\n    test 3102 line 345 azi2: 118.657849063154\n    test 3103 line 345 lat2: -2.127739360728\n    test 3104 line 345 lon2: 38.604245449983\n    test 3105 line 345 azi2: 118.657849063154\n    test 3106 line 346 lat: 37.188367\n    test 3107 line 346 lon: 90.865255\n    test 3108 line 346 fb: 104.826548\n    test 3109 line 346 lat2: 37.188366752551\n    test 3110 line 346 lon2: 90.865255121714\n    test 3111 line 346 azi2: 104.826548310924\n    test 3112 line 346 lat2: 37.188366752551\n    test 3113 line 346 lon2: 90.865255121714\n    test 3114 line 346 azi2: 104.826548310924\n    test 3115 line 347 lat: 46.019257\n    test 3116 line 347 lon: 20.402591\n    test 3117 line 347 fb: 31.068588\n    test 3118 line 347 lat2: 46.019256998097\n    test 3119 line 347 lon2: 20.402590686048\n    test 3120 line 347 azi2: 31.068587858373\n    test 3121 line 347 lat2: 46.019256998097\n    test 3122 line 347 lon2: 20.402590686048\n    test 3123 line 347 azi2: 31.068587858373\n    test 3124 line 348 lat: 9.023356\n    test 3125 line 348 lon: 106.678645\n    test 3126 line 348 fb: 141.375490\n    test 3127 line 348 lat2: 9.023355647006\n    test 3128 line 348 lon2: 106.678645473545\n    test 3129 line 348 azi2: 141.375490245645\n    test 3130 line 348 lat2: 9.023355647006\n    test 3131 line 348 lon2: 106.678645473545\n    test 3132 line 348 azi2: 141.375490245645\n    test 3133 line 349 lat: -1.321473\n    test 3134 line 349 lon: 67.418879\n    test 3135 line 349 fb: 105.590913\n    test 3136 line 349 lat2: -1.321473235187\n    test 3137 line 349 lon2: 67.418878731595\n    test 3138 line 349 azi2: 105.590912857546\n    test 3139 line 349 lat2: -1.321473235187\n    test 3140 line 349 lon2: 67.418878731595\n    test 3141 line 349 azi2: 105.590912857546\n    test 3142 line 350 lat: 7.459339\n    test 3143 line 350 lon: 30.150648\n    test 3144 line 350 fb: 109.667752\n    test 3145 line 350 lat2: 7.459338626177\n    test 3146 line 350 lon2: 30.150648477470\n    test 3147 line 350 azi2: 109.667751753912\n    test 3148 line 350 lat2: 7.459338626177\n    test 3149 line 350 lon2: 30.150648477470\n    test 3150 line 350 azi2: 109.667751753912\n    test 3151 line 351 lat: 16.344755\n    test 3152 line 351 lon: 146.829160\n    test 3153 line 351 fb: 128.666192\n    test 3154 line 351 lat2: 16.344755038185\n    test 3155 line 351 lon2: 146.829159972334\n    test 3156 line 351 azi2: 128.666191953616\n    test 3157 line 351 lat2: 16.344755038185\n    test 3158 line 351 lon2: 146.829159972334\n    test 3159 line 351 azi2: 128.666191953616\n    test 3160 line 352 lat: -55.785670\n    test 3161 line 352 lon: 158.086173\n    test 3162 line 352 fb: 33.903277\n    test 3163 line 352 lat2: -55.785670347270\n    test 3164 line 352 lon2: 158.086173376809\n    test 3165 line 352 azi2: 33.903276835071\n    test 3166 line 352 lat2: -55.785670347270\n    test 3167 line 352 lon2: 158.086173376809\n    test 3168 line 352 azi2: 33.903276835071\n    test 3169 line 353 lat: -74.409604\n    test 3170 line 353 lon: 111.280935\n    test 3171 line 353 fb: 78.510830\n    test 3172 line 353 lat2: -74.409603561050\n    test 3173 line 353 lon2: 111.280934985965\n    test 3174 line 353 azi2: 78.510830028461\n    test 3175 line 353 lat2: -74.409603561050\n    test 3176 line 353 lon2: 111.280934985965\n    test 3177 line 353 azi2: 78.510830028461\n    test 3178 line 354 lat: 9.922204\n    test 3179 line 354 lon: 138.538334\n    test 3180 line 354 fb: 125.268473\n    test 3181 line 354 lat2: 9.922203731557\n    test 3182 line 354 lon2: 138.538333703571\n    test 3183 line 354 azi2: 125.268473410634\n    test 3184 line 354 lat2: 9.922203731557\n    test 3185 line 354 lon2: 138.538333703571\n    test 3186 line 354 azi2: 125.268473410634\n    test 3187 line 355 lat: -27.082389\n    test 3188 line 355 lon: 91.425844\n    test 3189 line 355 fb: 153.267616\n    test 3190 line 355 lat2: -27.082389068807\n    test 3191 line 355 lon2: 91.425843733185\n    test 3192 line 355 azi2: 153.267616113653\n    test 3193 line 355 lat2: -27.082389068808  FAILED, KNOWN, expected -27.082389068807\n    test 3194 line 355 lon2: 91.425843733185\n    test 3195 line 355 azi2: 153.267616113653\n    test 3196 line 356 lat: 14.627508\n    test 3197 line 356 lon: 74.629605\n    test 3198 line 356 fb: 159.825211\n    test 3199 line 356 lat2: 14.627507744773\n    test 3200 line 356 lon2: 74.629604673488\n    test 3201 line 356 azi2: 159.825210987464\n    test 3202 line 356 lat2: 14.627507744773\n    test 3203 line 356 lon2: 74.629604673488\n    test 3204 line 356 azi2: 159.825210987464\n    test 3205 line 357 lat: 46.941087\n    test 3206 line 357 lon: 18.833436\n    test 3207 line 357 fb: 63.924917\n    test 3208 line 357 lat2: 46.941086934169\n    test 3209 line 357 lon2: 18.833435620675\n    test 3210 line 357 azi2: 63.924916745148\n    test 3211 line 357 lat2: 46.941086934169\n    test 3212 line 357 lon2: 18.833435620675\n    test 3213 line 357 azi2: 63.924916745148\n    test 3214 line 358 lat: 42.371666\n    test 3215 line 358 lon: 126.270074\n    test 3216 line 358 fb: 117.352107\n    test 3217 line 358 lat2: 42.371665615782\n    test 3218 line 358 lon2: 126.270074354353\n    test 3219 line 358 azi2: 117.352106840236\n    test 3220 line 358 lat2: 42.371665615782\n    test 3221 line 358 lon2: 126.270074354353\n    test 3222 line 358 azi2: 117.352106840236\n    test 3223 line 359 lat: 60.888684\n    test 3224 line 359 lon: 106.363657\n    test 3225 line 359 fb: 108.973271\n    test 3226 line 359 lat2: 60.888683732870\n    test 3227 line 359 lon2: 106.363656697522\n    test 3228 line 359 azi2: 108.973271101790\n    test 3229 line 359 lat2: 60.888683732870\n    test 3230 line 359 lon2: 106.363656697522\n    test 3231 line 359 azi2: 108.973271101790\n    test 3232 line 360 lat: 53.972090\n    test 3233 line 360 lon: 136.000658\n    test 3234 line 360 fb: 138.361589\n    test 3235 line 360 lat2: 53.972089572795\n    test 3236 line 360 lon2: 136.000657911062\n    test 3237 line 360 azi2: 138.361588598638\n    test 3238 line 360 lat2: 53.972089572795\n    test 3239 line 360 lon2: 136.000657911062\n    test 3240 line 360 azi2: 138.361588598638\n    test 3241 line 361 lat: 47.850867\n    test 3242 line 361 lon: 25.277934\n    test 3243 line 361 fb: 71.284668\n    test 3244 line 361 lat2: 47.850866585267\n    test 3245 line 361 lon2: 25.277933660114\n    test 3246 line 361 azi2: 71.284667717290\n    test 3247 line 361 lat2: 47.850866585267\n    test 3248 line 361 lon2: 25.277933660114\n    test 3249 line 361 azi2: 71.284667717290\n    test 3250 line 362 lat: 64.280614\n    test 3251 line 362 lon: 16.447697\n    test 3252 line 362 fb: 35.692750\n    test 3253 line 362 lat2: 64.280614171157\n    test 3254 line 362 lon2: 16.447696559380\n    test 3255 line 362 azi2: 35.692750218622\n    test 3256 line 362 lat2: 64.280614171157\n    test 3257 line 362 lon2: 16.447696559380\n    test 3258 line 362 azi2: 35.692750218622\n    test 3259 line 363 lat: -3.339044\n    test 3260 line 363 lon: 91.646260\n    test 3261 line 363 fb: 95.928001\n    test 3262 line 363 lat2: -3.339044133285\n    test 3263 line 363 lon2: 91.646260438368\n    test 3264 line 363 azi2: 95.928000721064\n    test 3265 line 363 lat2: -3.339044133285\n    test 3266 line 363 lon2: 91.646260438368\n    test 3267 line 363 azi2: 95.928000721064\n    test 3268 line 364 lat: -46.029875\n    test 3269 line 364 lon: 30.599197\n    test 3270 line 364 fb: 146.810525\n    test 3271 line 364 lat2: -46.029874698950\n    test 3272 line 364 lon2: 30.599196661458\n    test 3273 line 364 azi2: 146.810525207719\n    test 3274 line 364 lat2: -46.029874698950\n    test 3275 line 364 lon2: 30.599196661458\n    test 3276 line 364 azi2: 146.810525207719\n    test 3277 line 365 lat: 25.605076\n    test 3278 line 365 lon: 14.382003\n    test 3279 line 365 fb: 116.566847\n    test 3280 line 365 lat2: 25.605076391429\n    test 3281 line 365 lon2: 14.382002787798\n    test 3282 line 365 azi2: 116.566847403824\n    test 3283 line 365 lat2: 25.605076391429\n    test 3284 line 365 lon2: 14.382002787798\n    test 3285 line 365 azi2: 116.566847403824\n    test 3286 line 366 lat: -15.052413\n    test 3287 line 366 lon: 150.673460\n    test 3288 line 366 fb: 64.906721\n    test 3289 line 366 lat2: -15.052412502534\n    test 3290 line 366 lon2: 150.673460237577\n    test 3291 line 366 azi2: 64.906720897603\n    test 3292 line 366 lat2: -15.052412502534\n    test 3293 line 366 lon2: 150.673460237577\n    test 3294 line 366 azi2: 64.906720897603\n    test 3295 line 367 lat: -24.631882\n    test 3296 line 367 lon: 170.403348\n    test 3297 line 367 fb: 38.497784\n    test 3298 line 367 lat2: -24.631881773331\n    test 3299 line 367 lon2: 170.403348095216\n    test 3300 line 367 azi2: 38.497783925432\n    test 3301 line 367 lat2: -24.631881773331\n    test 3302 line 367 lon2: 170.403348095216\n    test 3303 line 367 azi2: 38.497783925432\n    test 3304 line 368 lat: 84.347730\n    test 3305 line 368 lon: 37.352130\n    test 3306 line 368 fb: 38.599794\n    test 3307 line 368 lat2: 84.347730272741\n    test 3308 line 368 lon2: 37.352130023033\n    test 3309 line 368 azi2: 38.599794179850\n    test 3310 line 368 lat2: 84.347730272741\n    test 3311 line 368 lon2: 37.352130023033\n    test 3312 line 368 azi2: 38.599794179850\n    test 3313 line 369 lat: 11.680773\n    test 3314 line 369 lon: 170.552617\n    test 3315 line 369 fb: 174.460436\n    test 3316 line 369 lat2: 11.680772997529\n    test 3317 line 369 lon2: 170.552617119135\n    test 3318 line 369 azi2: 174.460435573783\n    test 3319 line 369 lat2: 11.680772997529\n    test 3320 line 369 lon2: 170.552617119135\n    test 3321 line 369 azi2: 174.460435573783\n    test 3322 line 370 lat: -4.129058\n    test 3323 line 370 lon: 136.743627\n    test 3324 line 370 fb: 142.147604\n    test 3325 line 370 lat2: -4.129057873299\n    test 3326 line 370 lon2: 136.743626644380\n    test 3327 line 370 azi2: 142.147603954035\n    test 3328 line 370 lat2: -4.129057873299\n    test 3329 line 370 lon2: 136.743626644380\n    test 3330 line 370 azi2: 142.147603954035\n    test 3331 line 371 lat: 22.191782\n    test 3332 line 371 lon: 164.962392\n    test 3333 line 371 fb: 163.266967\n    test 3334 line 371 lat2: 22.191782097783\n    test 3335 line 371 lon2: 164.962391587580\n    test 3336 line 371 azi2: 163.266967353376\n    test 3337 line 371 lat2: 22.191782097783\n    test 3338 line 371 lon2: 164.962391587580\n    test 3339 line 371 azi2: 163.266967353376\n    test 3340 line 372 lat: -20.517212\n    test 3341 line 372 lon: 128.116444\n    test 3342 line 372 fb: 110.769757\n    test 3343 line 372 lat2: -20.517212185628\n    test 3344 line 372 lon2: 128.116443546305\n    test 3345 line 372 azi2: 110.769757212730\n    test 3346 line 372 lat2: -20.517212185628\n    test 3347 line 372 lon2: 128.116443546305\n    test 3348 line 372 azi2: 110.769757212730\n    test 3349 line 373 lat: -71.269219\n    test 3350 line 373 lon: 117.744329\n    test 3351 line 373 fb: 81.341006\n    test 3352 line 373 lat2: -71.269218648518\n    test 3353 line 373 lon2: 117.744328537214\n    test 3354 line 373 azi2: 81.341005509003\n    test 3355 line 373 lat2: -71.269218648518\n    test 3356 line 373 lon2: 117.744328537214\n    test 3357 line 373 azi2: 81.341005509003\n    test 3358 line 374 lat: -28.381893\n    test 3359 line 374 lon: 4.526029\n    test 3360 line 374 fb: 176.348678\n    test 3361 line 374 lat2: -28.381892766057\n    test 3362 line 374 lon2: 4.526028955177\n    test 3363 line 374 azi2: 176.348678015377\n    test 3364 line 374 lat2: -28.381892766057\n    test 3365 line 374 lon2: 4.526028955177\n    test 3366 line 374 azi2: 176.348678015377\n    test 3367 line 375 lat: -28.786090\n    test 3368 line 375 lon: 25.937634\n    test 3369 line 375 fb: 147.973102\n    test 3370 line 375 lat2: -28.786089606638\n    test 3371 line 375 lon2: 25.937634058027\n    test 3372 line 375 azi2: 147.973102126478\n    test 3373 line 375 lat2: -28.786089606638\n    test 3374 line 375 lon2: 25.937634058027\n    test 3375 line 375 azi2: 147.973102126478\n    test 3376 line 376 lat: -37.872672\n    test 3377 line 376 lon: 116.904193\n    test 3378 line 376 fb: 88.568636\n    test 3379 line 376 lat2: -37.872671755645\n    test 3380 line 376 lon2: 116.904192578457\n    test 3381 line 376 azi2: 88.568636418662\n    test 3382 line 376 lat2: -37.872671755645\n    test 3383 line 376 lon2: 116.904192578457\n    test 3384 line 376 azi2: 88.568636418662\n    test 3385 line 377 lat: -26.321447\n    test 3386 line 377 lon: 85.206987\n    test 3387 line 377 fb: 112.408109\n    test 3388 line 377 lat2: -26.321446841940\n    test 3389 line 377 lon2: 85.206986852002  FAILED, KNOWN, expected 85.206986852001\n    test 3390 line 377 azi2: 112.408108683681\n    test 3391 line 377 lat2: -26.321446841940\n    test 3392 line 377 lon2: 85.206986852001\n    test 3393 line 377 azi2: 112.408108683681\n    test 3394 line 378 lat: -54.824260\n    test 3395 line 378 lon: 156.561574\n    test 3396 line 378 fb: 45.534810\n    test 3397 line 378 lat2: -54.824260467184\n    test 3398 line 378 lon2: 156.561573965853\n    test 3399 line 378 azi2: 45.534810497878\n    test 3400 line 378 lat2: -54.824260467184\n    test 3401 line 378 lon2: 156.561573965853\n    test 3402 line 378 azi2: 45.534810497878\n    test 3403 line 379 lat: -16.423550\n    test 3404 line 379 lon: 36.685134\n    test 3405 line 379 fb: 149.426790\n    test 3406 line 379 lat2: -16.423550298805\n    test 3407 line 379 lon2: 36.685133578511\n    test 3408 line 379 azi2: 149.426789575292\n    test 3409 line 379 lat2: -16.423550298805\n    test 3410 line 379 lon2: 36.685133578511\n    test 3411 line 379 azi2: 149.426789575292\n    test 3412 line 380 lat: -16.806591\n    test 3413 line 380 lon: 149.738610\n    test 3414 line 380 fb: 108.898472\n    test 3415 line 380 lat2: -16.806590952462\n    test 3416 line 380 lon2: 149.738610286185\n    test 3417 line 380 azi2: 108.898472198507\n    test 3418 line 380 lat2: -16.806590952462\n    test 3419 line 380 lon2: 149.738610286185\n    test 3420 line 380 azi2: 108.898472198507\n    test 3421 line 381 lat: 61.200095\n    test 3422 line 381 lon: 179.666196\n    test 3423 line 381 fb: 179.746894\n    test 3424 line 381 lat2: 61.200095175201\n    test 3425 line 381 lon2: 179.666196014679\n    test 3426 line 381 azi2: 179.746893753530\n    test 3427 line 381 lat2: 61.200095175201\n    test 3428 line 381 lon2: 179.666196014679\n    test 3429 line 381 azi2: 179.746893753530\n    test 3430 line 382 lat: 66.474418\n    test 3431 line 382 lon: 1.552183\n    test 3432 line 382 fb: 2.088868\n    test 3433 line 382 lat2: 66.474418401288\n    test 3434 line 382 lon2: 1.552183188407\n    test 3435 line 382 azi2: 2.088868324926\n    test 3436 line 382 lat2: 66.474418401288\n    test 3437 line 382 lon2: 1.552183188407\n    test 3438 line 382 azi2: 2.088868324926\n    test 3439 line 383 lat: -75.177220\n    test 3440 line 383 lon: 158.741597\n    test 3441 line 383 fb: 24.127094\n    test 3442 line 383 lat2: -75.177219719926\n    test 3443 line 383 lon2: 158.741596988185\n    test 3444 line 383 azi2: 24.127093846134\n    test 3445 line 383 lat2: -75.177219719926\n    test 3446 line 383 lon2: 158.741596988185\n    test 3447 line 383 azi2: 24.127093846134\n    test 3448 line 384 lat: 43.592977\n    test 3449 line 384 lon: 90.684526\n    test 3450 line 384 fb: 91.539242\n    test 3451 line 384 lat2: 43.592976578444\n    test 3452 line 384 lon2: 90.684525887486\n    test 3453 line 384 azi2: 91.539242394540\n    test 3454 line 384 lat2: 43.592976578444\n    test 3455 line 384 lon2: 90.684525887486\n    test 3456 line 384 azi2: 91.539242394541  FAILED, KNOWN, expected 91.539242394540\n    test 3457 line 385 lat: -5.075415\n    test 3458 line 385 lon: 101.127103\n    test 3459 line 385 fb: 107.948022\n    test 3460 line 385 lat2: -5.075415464229\n    test 3461 line 385 lon2: 101.127103351067\n    test 3462 line 385 azi2: 107.948021613622\n    test 3463 line 385 lat2: -5.075415464229\n    test 3464 line 385 lon2: 101.127103351067\n    test 3465 line 385 azi2: 107.948021613622\n    test 3466 line 386 lat: 50.406166\n    test 3467 line 386 lon: 135.501939\n    test 3468 line 386 fb: 162.003144\n    test 3469 line 386 lat2: 50.406165949083\n    test 3470 line 386 lon2: 135.501938931444\n    test 3471 line 386 azi2: 162.003144394969\n    test 3472 line 386 lat2: 50.406165949083\n    test 3473 line 386 lon2: 135.501938931444\n    test 3474 line 386 azi2: 162.003144394969\n    test 3475 line 387 lat: -17.207733\n    test 3476 line 387 lon: 43.634692\n    test 3477 line 387 fb: 136.506793\n    test 3478 line 387 lat2: -17.207732564306\n    test 3479 line 387 lon2: 43.634692466982\n    test 3480 line 387 azi2: 136.506792603897\n    test 3481 line 387 lat2: -17.207732564306\n    test 3482 line 387 lon2: 43.634692466982\n    test 3483 line 387 azi2: 136.506792603897\n    test 3484 line 388 lat: -28.917723\n    test 3485 line 388 lon: 163.486470\n    test 3486 line 388 fb: 38.990274\n    test 3487 line 388 lat2: -28.917723347931\n    test 3488 line 388 lon2: 163.486470248682\n    test 3489 line 388 azi2: 38.990273918754\n    test 3490 line 388 lat2: -28.917723347931\n    test 3491 line 388 lon2: 163.486470248682\n    test 3492 line 388 azi2: 38.990273918754\n    test 3493 line 389 lat: -32.592414\n    test 3494 line 389 lon: 76.048812\n    test 3495 line 389 fb: 98.024249\n    test 3496 line 389 lat2: -32.592414472935\n    test 3497 line 389 lon2: 76.048812057267\n    test 3498 line 389 azi2: 98.024248734062\n    test 3499 line 389 lat2: -32.592414472935\n    test 3500 line 389 lon2: 76.048812057267\n    test 3501 line 389 azi2: 98.024248734062\n    test 3502 line 390 lat: 50.602735\n    test 3503 line 390 lon: 49.792893\n    test 3504 line 390 fb: 110.500761\n    test 3505 line 390 lat2: 50.602735331532\n    test 3506 line 390 lon2: 49.792893095354\n    test 3507 line 390 azi2: 110.500760610103\n    test 3508 line 390 lat2: 50.602735331532\n    test 3509 line 390 lon2: 49.792893095354\n    test 3510 line 390 azi2: 110.500760610103\n    test 3511 line 391 lat: -4.912232\n    test 3512 line 391 lon: 142.681744\n    test 3513 line 391 fb: 119.428358\n    test 3514 line 391 lat2: -4.912231564840\n    test 3515 line 391 lon2: 142.681743549937\n    test 3516 line 391 azi2: 119.428358444443\n    test 3517 line 391 lat2: -4.912231564840\n    test 3518 line 391 lon2: 142.681743549937\n    test 3519 line 391 azi2: 119.428358444443\n    test 3520 line 392 lat: -45.213515\n    test 3521 line 392 lon: 131.987859\n    test 3522 line 392 fb: 96.014100\n    test 3523 line 392 lat2: -45.213514932524\n    test 3524 line 392 lon2: 131.987859404857\n    test 3525 line 392 azi2: 96.014100177112\n    test 3526 line 392 lat2: -45.213514932524\n    test 3527 line 392 lon2: 131.987859404857\n    test 3528 line 392 azi2: 96.014100177112\n    test 3529 line 393 lat: -27.151096\n    test 3530 line 393 lon: 127.729463\n    test 3531 line 393 fb: 85.960623\n    test 3532 line 393 lat2: -27.151095883523\n    test 3533 line 393 lon2: 127.729463064736\n    test 3534 line 393 azi2: 85.960623495334\n    test 3535 line 393 lat2: -27.151095883523\n    test 3536 line 393 lon2: 127.729463064736\n    test 3537 line 393 azi2: 85.960623495334\n    test 3538 line 394 lat: 8.000358\n    test 3539 line 394 lon: 144.233747\n    test 3540 line 394 fb: 142.364017\n    test 3541 line 394 lat2: 8.000357843774\n    test 3542 line 394 lon2: 144.233746766535\n    test 3543 line 394 azi2: 142.364016793767\n    test 3544 line 394 lat2: 8.000357843774\n    test 3545 line 394 lon2: 144.233746766535\n    test 3546 line 394 azi2: 142.364016793767\n    test 3547 line 395 lat: -6.431774\n    test 3548 line 395 lon: 170.549196\n    test 3549 line 395 fb: 122.180851\n    test 3550 line 395 lat2: -6.431773707290\n    test 3551 line 395 lon2: 170.549196384306\n    test 3552 line 395 azi2: 122.180850600243\n    test 3553 line 395 lat2: -6.431773707290\n    test 3554 line 395 lon2: 170.549196384306\n    test 3555 line 395 azi2: 122.180850600243\n    test 3556 line 396 lat: 62.834146\n    test 3557 line 396 lon: 171.218298\n    test 3558 line 396 fb: 175.117433\n    test 3559 line 396 lat2: 62.834146216572\n    test 3560 line 396 lon2: 171.218297548713\n    test 3561 line 396 azi2: 175.117432600362\n    test 3562 line 396 lat2: 62.834146216572\n    test 3563 line 396 lon2: 171.218297548713\n    test 3564 line 396 azi2: 175.117432600362\n    test 3565 line 397 lat: 22.902814\n    test 3566 line 397 lon: 70.233438\n    test 3567 line 397 fb: 120.935912\n    test 3568 line 397 lat2: 22.902813652262\n    test 3569 line 397 lon2: 70.233438162142\n    test 3570 line 397 azi2: 120.935911762169\n    test 3571 line 397 lat2: 22.902813652262\n    test 3572 line 397 lon2: 70.233438162142\n    test 3573 line 397 azi2: 120.935911762169\n    test 3574 line 398 lat: 22.584853\n    test 3575 line 398 lon: 31.616865\n    test 3576 line 398 fb: 107.124038\n    test 3577 line 398 lat2: 22.584853282541\n    test 3578 line 398 lon2: 31.616864803984\n    test 3579 line 398 azi2: 107.124038156545\n    test 3580 line 398 lat2: 22.584853282541\n    test 3581 line 398 lon2: 31.616864803984\n    test 3582 line 398 azi2: 107.124038156545\n    test 3583 line 399 lat: 31.269173\n    test 3584 line 399 lon: 65.399306\n    test 3585 line 399 fb: 151.892600\n    test 3586 line 399 lat2: 31.269173344204\n    test 3587 line 399 lon2: 65.399305777763\n    test 3588 line 399 azi2: 151.892599739667\n    test 3589 line 399 lat2: 31.269173344204\n    test 3590 line 399 lon2: 65.399305777763\n    test 3591 line 399 azi2: 151.892599739668  FAILED, KNOWN, expected 151.892599739667\n    test 3592 line 400 lat: 35.519614\n    test 3593 line 400 lon: 143.165122\n    test 3594 line 400 fb: 161.479891\n    test 3595 line 400 lat2: 35.519613515115\n    test 3596 line 400 lon2: 143.165121509798\n    test 3597 line 400 azi2: 161.479891246031\n    test 3598 line 400 lat2: 35.519613515115\n    test 3599 line 400 lon2: 143.165121509798\n    test 3600 line 400 azi2: 161.479891246031\n    test 3601 line 401 lat: -53.741922\n    test 3602 line 401 lon: 67.121402\n    test 3603 line 401 fb: 130.871188\n    test 3604 line 401 lat2: -53.741921506580\n    test 3605 line 401 lon2: 67.121402135047\n    test 3606 line 401 azi2: 130.871188003209\n    test 3607 line 401 lat2: -53.741921506580\n    test 3608 line 401 lon2: 67.121402135047\n    test 3609 line 401 azi2: 130.871188003209\n    test 3610 line 402 lat: 9.046227\n    test 3611 line 402 lon: 35.933737\n    test 3612 line 402 fb: 175.770789\n    test 3613 line 402 lat2: 9.046227267580\n    test 3614 line 402 lon2: 35.933736921417\n    test 3615 line 402 azi2: 175.770788535406\n    test 3616 line 402 lat2: 9.046227267580\n    test 3617 line 402 lon2: 35.933736921417\n    test 3618 line 402 azi2: 175.770788535406\n    test 3619 line 403 lat: 75.917034\n    test 3620 line 403 lon: 125.150808\n    test 3621 line 403 fb: 135.354467\n    test 3622 line 403 lat2: 75.917034235438\n    test 3623 line 403 lon2: 125.150808062636\n    test 3624 line 403 azi2: 135.354466840051\n    test 3625 line 403 lat2: 75.917034235438\n    test 3626 line 403 lon2: 125.150808062636\n    test 3627 line 403 azi2: 135.354466840051\n    test 3628 line 404 lat: -39.724826\n    test 3629 line 404 lon: 77.372087\n    test 3630 line 404 fb: 111.852577\n    test 3631 line 404 lat2: -39.724825618504  FAILED, KNOWN, expected -39.724825618503\n    test 3632 line 404 lon2: 77.372086855267\n    test 3633 line 404 azi2: 111.852577362108\n    test 3634 line 404 lat2: -39.724825618504  FAILED, KNOWN, expected -39.724825618503\n    test 3635 line 404 lon2: 77.372086855267\n    test 3636 line 404 azi2: 111.852577362108\n    test 3637 line 405 lat: 3.917212\n    test 3638 line 405 lon: 142.621752\n    test 3639 line 405 fb: 124.176952\n    test 3640 line 405 lat2: 3.917212154431\n    test 3641 line 405 lon2: 142.621751764236\n    test 3642 line 405 azi2: 124.176952499321\n    test 3643 line 405 lat2: 3.917212154431\n    test 3644 line 405 lon2: 142.621751764236\n    test 3645 line 405 azi2: 124.176952499321\n    test 3646 line 406 lat: 60.230364\n    test 3647 line 406 lon: 26.245689\n    test 3648 line 406 fb: 48.509486\n    test 3649 line 406 lat2: 60.230364486607\n    test 3650 line 406 lon2: 26.245688508507\n    test 3651 line 406 azi2: 48.509486474608\n    test 3652 line 406 lat2: 60.230364486607\n    test 3653 line 406 lon2: 26.245688508507\n    test 3654 line 406 azi2: 48.509486474608\n    test 3655 line 407 lat: 29.597322\n    test 3656 line 407 lon: 29.129808\n    test 3657 line 407 fb: 79.288539\n    test 3658 line 407 lat2: 29.597322070518\n    test 3659 line 407 lon2: 29.129807944898\n    test 3660 line 407 azi2: 79.288538667829\n    test 3661 line 407 lat2: 29.597322070518\n    test 3662 line 407 lon2: 29.129807944898\n    test 3663 line 407 azi2: 79.288538667829\n    test 3664 line 408 lat: -62.913760\n    test 3665 line 408 lon: 14.845859\n    test 3666 line 408 fb: 165.794536\n    test 3667 line 408 lat2: -62.913759669564\n    test 3668 line 408 lon2: 14.845859018930\n    test 3669 line 408 azi2: 165.794535940950\n    test 3670 line 408 lat2: -62.913759669564\n    test 3671 line 408 lon2: 14.845859018930\n    test 3672 line 408 azi2: 165.794535940950\n    test 3673 line 409 lat: 15.360446\n    test 3674 line 409 lon: 161.450680\n    test 3675 line 409 fb: 164.457024\n    test 3676 line 409 lat2: 15.360445685187\n    test 3677 line 409 lon2: 161.450680426049\n    test 3678 line 409 azi2: 164.457024354600\n    test 3679 line 409 lat2: 15.360445685187\n    test 3680 line 409 lon2: 161.450680426049\n    test 3681 line 409 azi2: 164.457024354600\n    test 3682 line 410 lat: -58.330109\n    test 3683 line 410 lon: 17.628134\n    test 3684 line 410 fb: 161.349788\n    test 3685 line 410 lat2: -58.330108507597\n    test 3686 line 410 lon2: 17.628133627705\n    test 3687 line 410 azi2: 161.349788081184\n    test 3688 line 410 lat2: -58.330108507597\n    test 3689 line 410 lon2: 17.628133627705\n    test 3690 line 410 azi2: 161.349788081184\n    test 3691 line 411 lat: -68.514277\n    test 3692 line 411 lon: 19.958792\n    test 3693 line 411 fb: 162.262811\n    test 3694 line 411 lat2: -68.514276940652\n    test 3695 line 411 lon2: 19.958792438281\n    test 3696 line 411 azi2: 162.262811488702\n    test 3697 line 411 lat2: -68.514276940652\n    test 3698 line 411 lon2: 19.958792438281\n    test 3699 line 411 azi2: 162.262811488702\n    test 3700 line 412 lat: -23.686766\n    test 3701 line 412 lon: 77.544158\n    test 3702 line 412 fb: 97.517041\n    test 3703 line 412 lat2: -23.686765736999\n    test 3704 line 412 lon2: 77.544158137101\n    test 3705 line 412 azi2: 97.517041033585\n    test 3706 line 412 lat2: -23.686765736999\n    test 3707 line 412 lon2: 77.544158137101\n    test 3708 line 412 azi2: 97.517041033585\n    test 3709 line 413 lat: -50.843575\n    test 3710 line 413 lon: 118.404202\n    test 3711 line 413 fb: 75.928950\n    test 3712 line 413 lat2: -50.843574559525\n    test 3713 line 413 lon2: 118.404202153051\n    test 3714 line 413 azi2: 75.928950296488\n    test 3715 line 413 lat2: -50.843574559525\n    test 3716 line 413 lon2: 118.404202153051\n    test 3717 line 413 azi2: 75.928950296488\n    test 3718 line 414 lat: 44.438742\n    test 3719 line 414 lon: 152.028260\n    test 3720 line 414 fb: 156.092336\n    test 3721 line 414 lat2: 44.438741945021\n    test 3722 line 414 lon2: 152.028260148130\n    test 3723 line 414 azi2: 156.092336139519\n    test 3724 line 414 lat2: 44.438741945021\n    test 3725 line 414 lon2: 152.028260148130\n    test 3726 line 414 azi2: 156.092336139519\n    test 3727 line 415 lat: 33.820395\n    test 3728 line 415 lon: 178.008342\n    test 3729 line 415 fb: 177.679586\n    test 3730 line 415 lat2: 33.820395378014\n    test 3731 line 415 lon2: 178.008341908011\n    test 3732 line 415 azi2: 177.679585823345\n    test 3733 line 415 lat2: 33.820395378014\n    test 3734 line 415 lon2: 178.008341908011\n    test 3735 line 415 azi2: 177.679585823345\n    test 3736 line 416 lat: 27.506735\n    test 3737 line 416 lon: 153.242452\n    test 3738 line 416 fb: 150.262824\n    test 3739 line 416 lat2: 27.506735286152\n    test 3740 line 416 lon2: 153.242452449881\n    test 3741 line 416 azi2: 150.262824421351\n    test 3742 line 416 lat2: 27.506735286152\n    test 3743 line 416 lon2: 153.242452449881\n    test 3744 line 416 azi2: 150.262824421351\n    test 3745 line 417 lat: -31.250437\n    test 3746 line 417 lon: 179.014499\n    test 3747 line 417 fb: 178.103046\n    test 3748 line 417 lat2: -31.250436707468\n    test 3749 line 417 lon2: 179.014498940190\n    test 3750 line 417 azi2: 178.103045898455\n    test 3751 line 417 lat2: -31.250436707468\n    test 3752 line 417 lon2: 179.014498940190\n    test 3753 line 417 azi2: 178.103045898455\n    test 3754 line 418 lat: 40.341542\n    test 3755 line 418 lon: 109.605984\n    test 3756 line 418 fb: 105.401958\n    test 3757 line 418 lat2: 40.341542234586\n    test 3758 line 418 lon2: 109.605984313079\n    test 3759 line 418 azi2: 105.401958406556\n    test 3760 line 418 lat2: 40.341542234586\n    test 3761 line 418 lon2: 109.605984313079\n    test 3762 line 418 azi2: 105.401958406556\n    test 3763 line 419 lat: 48.318632\n    test 3764 line 419 lon: 92.282799\n    test 3765 line 419 fb: 111.987482\n    test 3766 line 419 lat2: 48.318632112439\n    test 3767 line 419 lon2: 92.282799489208\n    test 3768 line 419 azi2: 111.987482299261\n    test 3769 line 419 lat2: 48.318632112439\n    test 3770 line 419 lon2: 92.282799489208\n    test 3771 line 419 azi2: 111.987482299261\n    test 3772 line 420 lat: 0.675299\n    test 3773 line 420 lon: 6.789301\n    test 3774 line 420 fb: 164.921926\n    test 3775 line 420 lat2: 0.675299289459\n    test 3776 line 420 lon2: 6.789300798072\n    test 3777 line 420 azi2: 164.921926385405\n    test 3778 line 420 lat2: 0.675299289459\n    test 3779 line 420 lon2: 6.789300798072\n    test 3780 line 420 azi2: 164.921926385405\n    test 3781 line 421 lat: 33.232812\n    test 3782 line 421 lon: 170.163205\n    test 3783 line 421 fb: 175.445424\n    test 3784 line 421 lat2: 33.232811536179\n    test 3785 line 421 lon2: 170.163205247232  FAILED, KNOWN, expected 170.163205247231\n    test 3786 line 421 azi2: 175.445424087910\n    test 3787 line 421 lat2: 33.232811536179\n    test 3788 line 421 lon2: 170.163205247232  FAILED, KNOWN, expected 170.163205247231\n    test 3789 line 421 azi2: 175.445424087910\n    test 3790 line 422 lat: 51.425532\n    test 3791 line 422 lon: 167.128188\n    test 3792 line 422 fb: 169.431307\n    test 3793 line 422 lat2: 51.425532151818\n    test 3794 line 422 lon2: 167.128188073883\n    test 3795 line 422 azi2: 169.431306547043\n    test 3796 line 422 lat2: 51.425532151818\n    test 3797 line 422 lon2: 167.128188073883\n    test 3798 line 422 azi2: 169.431306547043\n    test 3799 line 423 lat: 72.043795\n    test 3800 line 423 lon: 23.320161\n    test 3801 line 423 fb: 85.002463\n    test 3802 line 423 lat2: 72.043794732818\n    test 3803 line 423 lon2: 23.320160820556\n    test 3804 line 423 azi2: 85.002463342037\n    test 3805 line 423 lat2: 72.043794732818\n    test 3806 line 423 lon2: 23.320160820556\n    test 3807 line 423 azi2: 85.002463342037\n    test 3808 line 424 lat: 55.279253\n    test 3809 line 424 lon: 148.483684\n    test 3810 line 424 fb: 155.614243\n    test 3811 line 424 lat2: 55.279252586695\n    test 3812 line 424 lon2: 148.483684405588\n    test 3813 line 424 azi2: 155.614243012977\n    test 3814 line 424 lat2: 55.279252586695\n    test 3815 line 424 lon2: 148.483684405588\n    test 3816 line 424 azi2: 155.614243012977\n    test 3817 line 425 lat: 50.054601\n    test 3818 line 425 lon: 43.609545\n    test 3819 line 425 fb: 100.758451\n    test 3820 line 425 lat2: 50.054601019930\n    test 3821 line 425 lon2: 43.609545475731\n    test 3822 line 425 azi2: 100.758450815354\n    test 3823 line 425 lat2: 50.054601019930\n    test 3824 line 425 lon2: 43.609545475731\n    test 3825 line 425 azi2: 100.758450815354\n    test 3826 line 426 lat: 31.194436\n    test 3827 line 426 lon: 31.458476\n    test 3828 line 426 fb: 92.204244\n    test 3829 line 426 lat2: 31.194436445411\n    test 3830 line 426 lon2: 31.458476146984\n    test 3831 line 426 azi2: 92.204244235305\n    test 3832 line 426 lat2: 31.194436445411\n    test 3833 line 426 lon2: 31.458476146984\n    test 3834 line 426 azi2: 92.204244235305\n    test 3835 line 427 lat: 57.758262\n    test 3836 line 427 lon: 164.499274\n    test 3837 line 427 fb: 162.877999\n    test 3838 line 427 lat2: 57.758262113137\n    test 3839 line 427 lon2: 164.499274258053\n    test 3840 line 427 azi2: 162.877999232894\n    test 3841 line 427 lat2: 57.758262113137\n    test 3842 line 427 lon2: 164.499274258053\n    test 3843 line 427 azi2: 162.877999232894\n    test 3844 line 428 lat: 27.006898\n    test 3845 line 428 lon: 173.173812\n    test 3846 line 428 fb: 177.878074\n    test 3847 line 428 lat2: 27.006897756516\n    test 3848 line 428 lon2: 173.173811781657\n    test 3849 line 428 azi2: 177.878073603766\n    test 3850 line 428 lat2: 27.006897756516\n    test 3851 line 428 lon2: 173.173811781657\n    test 3852 line 428 azi2: 177.878073603766\n    test 3853 line 429 lat: -62.917581\n    test 3854 line 429 lon: 18.990464\n    test 3855 line 429 fb: 169.629168\n    test 3856 line 429 lat2: -62.917580953804\n    test 3857 line 429 lon2: 18.990464058493\n    test 3858 line 429 azi2: 169.629168390979\n    test 3859 line 429 lat2: -62.917580953804\n    test 3860 line 429 lon2: 18.990464058493\n    test 3861 line 429 azi2: 169.629168390979\n    test 3862 line 430 lat: -43.128167\n    test 3863 line 430 lon: 61.680974\n    test 3864 line 430 fb: 135.269008\n    test 3865 line 430 lat2: -43.128166633902\n    test 3866 line 430 lon2: 61.680974170546\n    test 3867 line 430 azi2: 135.269008366092\n    test 3868 line 430 lat2: -43.128166633902\n    test 3869 line 430 lon2: 61.680974170546\n    test 3870 line 430 azi2: 135.269008366092\n    test 3871 line 431 lat: -49.314417\n    test 3872 line 431 lon: 55.826072\n    test 3873 line 431 fb: 131.974574\n    test 3874 line 431 lat2: -49.314417365795\n    test 3875 line 431 lon2: 55.826071541563\n    test 3876 line 431 azi2: 131.974573587520\n    test 3877 line 431 lat2: -49.314417365795\n    test 3878 line 431 lon2: 55.826071541563\n    test 3879 line 431 azi2: 131.974573587520\n    test 3880 line 432 lat: -24.322411\n    test 3881 line 432 lon: 103.867391\n    test 3882 line 432 fb: 139.458674\n    test 3883 line 432 lat2: -24.322411486444\n    test 3884 line 432 lon2: 103.867391100271\n    test 3885 line 432 azi2: 139.458674175181\n    test 3886 line 432 lat2: -24.322411486444\n    test 3887 line 432 lon2: 103.867391100271\n    test 3888 line 432 azi2: 139.458674175181\n    test 3889 line 433 lat: -19.557319\n    test 3890 line 433 lon: 81.358495\n    test 3891 line 433 fb: 134.029610\n    test 3892 line 433 lat2: -19.557318635270\n    test 3893 line 433 lon2: 81.358494523202\n    test 3894 line 433 azi2: 134.029609915778\n    test 3895 line 433 lat2: -19.557318635270\n    test 3896 line 433 lon2: 81.358494523202\n    test 3897 line 433 azi2: 134.029609915778\n    test 3898 line 434 lat: 7.830115\n    test 3899 line 434 lon: 5.114172\n    test 3900 line 434 fb: 175.025641\n    test 3901 line 434 lat2: 7.830115253087\n    test 3902 line 434 lon2: 5.114172330857\n    test 3903 line 434 azi2: 175.025640902819\n    test 3904 line 434 lat2: 7.830115253087\n    test 3905 line 434 lon2: 5.114172330857\n    test 3906 line 434 azi2: 175.025640902819\n    test 3907 line 435 lat: -65.834623\n    test 3908 line 435 lon: 41.772796\n    test 3909 line 435 fb: 143.178050\n    test 3910 line 435 lat2: -65.834622858584\n    test 3911 line 435 lon2: 41.772796000787\n    test 3912 line 435 azi2: 143.178050120951\n    test 3913 line 435 lat2: -65.834622858584\n    test 3914 line 435 lon2: 41.772796000787\n    test 3915 line 435 azi2: 143.178050120951\n    test 3916 line 436 lat: -7.997604\n    test 3917 line 436 lon: 31.723397\n    test 3918 line 436 fb: 153.896388\n    test 3919 line 436 lat2: -7.997604143032\n    test 3920 line 436 lon2: 31.723396618974\n    test 3921 line 436 azi2: 153.896387549518\n    test 3922 line 436 lat2: -7.997604143032\n    test 3923 line 436 lon2: 31.723396618974\n    test 3924 line 436 azi2: 153.896387549518\n    test 3925 line 437 lat: -22.173130\n    test 3926 line 437 lon: 164.896770\n    test 3927 line 437 fb: 152.675597\n    test 3928 line 437 lat2: -22.173129586699\n    test 3929 line 437 lon2: 164.896770399383\n    test 3930 line 437 azi2: 152.675596916021\n    test 3931 line 437 lat2: -22.173129586699\n    test 3932 line 437 lon2: 164.896770399383\n    test 3933 line 437 azi2: 152.675596916021\n    test 3934 line 438 lat: 35.085786\n    test 3935 line 438 lon: 173.892271\n    test 3936 line 438 fb: 171.931231\n    test 3937 line 438 lat2: 35.085785799083\n    test 3938 line 438 lon2: 173.892270533009\n    test 3939 line 438 azi2: 171.931230872910\n    test 3940 line 438 lat2: 35.085785799083\n    test 3941 line 438 lon2: 173.892270533009\n    test 3942 line 438 azi2: 171.931230872910\n    test 3943 line 439 lat: -25.378865\n    test 3944 line 439 lon: 2.197740\n    test 3945 line 439 fb: 178.756775\n    test 3946 line 439 lat2: -25.378865450268\n    test 3947 line 439 lon2: 2.197739985587\n    test 3948 line 439 azi2: 178.756775063163\n    test 3949 line 439 lat2: -25.378865450269  FAILED, KNOWN, expected -25.378865450268\n    test 3950 line 439 lon2: 2.197739985587\n    test 3951 line 439 azi2: 178.756775063163\n    test 3952 line 440 lat: -13.782608\n    test 3953 line 440 lon: 143.084799\n    test 3954 line 440 fb: 141.818572\n    test 3955 line 440 lat2: -13.782608118540\n    test 3956 line 440 lon2: 143.084798779239\n    test 3957 line 440 azi2: 141.818572490275\n    test 3958 line 440 lat2: -13.782608118540\n    test 3959 line 440 lon2: 143.084798779239\n    test 3960 line 440 azi2: 141.818572490275\n    test 3961 line 441 lat: -16.657589\n    test 3962 line 441 lon: 100.829440\n    test 3963 line 441 fb: 94.804409\n    test 3964 line 441 lat2: -16.657588778768\n    test 3965 line 441 lon2: 100.829440071396\n    test 3966 line 441 azi2: 94.804408628371\n    test 3967 line 441 lat2: -16.657588778768\n    test 3968 line 441 lon2: 100.829440071396\n    test 3969 line 441 azi2: 94.804408628371\n    test 3970 line 442 lat: 23.629666\n    test 3971 line 442 lon: 148.675531\n    test 3972 line 442 fb: 169.091767\n    test 3973 line 442 lat2: 23.629665922502\n    test 3974 line 442 lon2: 148.675530832608\n    test 3975 line 442 azi2: 169.091766635020\n    test 3976 line 442 lat2: 23.629665922502\n    test 3977 line 442 lon2: 148.675530832608\n    test 3978 line 442 azi2: 169.091766635020\n    test 3979 line 443 lat: 4.022724\n    test 3980 line 443 lon: 161.803702\n    test 3981 line 443 fb: 141.272785\n    test 3982 line 443 lat2: 4.022724409294\n    test 3983 line 443 lon2: 161.803702045621\n    test 3984 line 443 azi2: 141.272784545678\n    test 3985 line 443 lat2: 4.022724409294\n    test 3986 line 443 lon2: 161.803702045621\n    test 3987 line 443 azi2: 141.272784545678\n    test 3988 line 444 lat: 13.280168\n    test 3989 line 444 lon: 20.120413\n    test 3990 line 444 fb: 158.170551\n    test 3991 line 444 lat2: 13.280167579164\n    test 3992 line 444 lon2: 20.120413486875\n    test 3993 line 444 azi2: 158.170551379189\n    test 3994 line 444 lat2: 13.280167579164\n    test 3995 line 444 lon2: 20.120413486875\n    test 3996 line 444 azi2: 158.170551379189\n    test 3997 line 445 lat: -47.521450\n    test 3998 line 445 lon: 150.549196\n    test 3999 line 445 fb: 44.718791\n    test 4000 line 445 lat2: -47.521449956879\n    test 4001 line 445 lon2: 150.549196046351\n    test 4002 line 445 azi2: 44.718791294775\n    test 4003 line 445 lat2: -47.521449956879\n    test 4004 line 445 lon2: 150.549196046351\n    test 4005 line 445 azi2: 44.718791294775\n    test 4006 line 446 lat: 17.790615\n    test 4007 line 446 lon: 141.461006\n    test 4008 line 446 fb: 115.746784\n    test 4009 line 446 lat2: 17.790615163216\n    test 4010 line 446 lon2: 141.461005551791\n    test 4011 line 446 azi2: 115.746784352318\n    test 4012 line 446 lat2: 17.790615163216\n    test 4013 line 446 lon2: 141.461005551791\n    test 4014 line 446 azi2: 115.746784352318\n    test 4015 line 447 lat: -26.519374\n    test 4016 line 447 lon: 98.067906\n    test 4017 line 447 fb: 113.253929\n    test 4018 line 447 lat2: -26.519374288386\n    test 4019 line 447 lon2: 98.067906321718\n    test 4020 line 447 azi2: 113.253928642653\n    test 4021 line 447 lat2: -26.519374288386\n    test 4022 line 447 lon2: 98.067906321718\n    test 4023 line 447 azi2: 113.253928642653\n    test 4024 line 448 lat: -12.401139\n    test 4025 line 448 lon: 73.327970\n    test 4026 line 448 fb: 124.879499\n    test 4027 line 448 lat2: -12.401138571717\n    test 4028 line 448 lon2: 73.327969848986\n    test 4029 line 448 azi2: 124.879499241464\n    test 4030 line 448 lat2: -12.401138571717\n    test 4031 line 448 lon2: 73.327969848986\n    test 4032 line 448 azi2: 124.879499241464\n    test 4033 line 449 lat: 61.619396\n    test 4034 line 449 lon: 99.785406\n    test 4035 line 449 fb: 107.998380\n    test 4036 line 449 lat2: 61.619396375102\n    test 4037 line 449 lon2: 99.785406498835\n    test 4038 line 449 azi2: 107.998379654880\n    test 4039 line 449 lat2: 61.619396375102\n    test 4040 line 449 lon2: 99.785406498835\n    test 4041 line 449 azi2: 107.998379654880\n    test 4042 line 450 lat: 36.997252\n    test 4043 line 450 lon: 56.015643\n    test 4044 line 450 fb: 103.921663\n    test 4045 line 450 lat2: 36.997252125041\n    test 4046 line 450 lon2: 56.015642631106\n    test 4047 line 450 azi2: 103.921662760483\n    test 4048 line 450 lat2: 36.997252125041\n    test 4049 line 450 lon2: 56.015642631106\n    test 4050 line 450 azi2: 103.921662760483\n    test 4051 line 451 lat: 37.824447\n    test 4052 line 451 lon: 83.438440\n    test 4053 line 451 fb: 89.229164\n    test 4054 line 451 lat2: 37.824446788544\n    test 4055 line 451 lon2: 83.438439603294\n    test 4056 line 451 azi2: 89.229164462127\n    test 4057 line 451 lat2: 37.824446788544\n    test 4058 line 451 lon2: 83.438439603294\n    test 4059 line 451 azi2: 89.229164462127\n    test 4060 line 452 lat: 78.387864\n    test 4061 line 452 lon: 118.814812\n    test 4062 line 452 fb: 133.706108\n    test 4063 line 452 lat2: 78.387863550790\n    test 4064 line 452 lon2: 118.814812128945\n    test 4065 line 452 azi2: 133.706108131229\n    test 4066 line 452 lat2: 78.387863550790\n    test 4067 line 452 lon2: 118.814812128944  FAILED, KNOWN, expected 118.814812128945\n    test 4068 line 452 azi2: 133.706108131229\n    test 4069 line 453 lat: -21.219381\n    test 4070 line 453 lon: 53.544400\n    test 4071 line 453 fb: 108.462517\n    test 4072 line 453 lat2: -21.219381398156\n    test 4073 line 453 lon2: 53.544399883561\n    test 4074 line 453 azi2: 108.462517491505\n    test 4075 line 453 lat2: -21.219381398156\n    test 4076 line 453 lon2: 53.544399883561\n    test 4077 line 453 azi2: 108.462517491505\n    test 4078 line 454 lat: 63.304502\n    test 4079 line 454 lon: 132.034926\n    test 4080 line 454 fb: 139.912627\n    test 4081 line 454 lat2: 63.304502042590\n    test 4082 line 454 lon2: 132.034925840674\n    test 4083 line 454 azi2: 139.912627269623\n    test 4084 line 454 lat2: 63.304502042590\n    test 4085 line 454 lon2: 132.034925840674\n    test 4086 line 454 azi2: 139.912627269623\n    test 4087 line 455 lat: 13.515663\n    test 4088 line 455 lon: 8.989766\n    test 4089 line 455 fb: 35.949535\n    test 4090 line 455 lat2: 13.515662875313\n    test 4091 line 455 lon2: 8.989765670730\n    test 4092 line 455 azi2: 35.949534634702\n    test 4093 line 455 lat2: 13.515662875313\n    test 4094 line 455 lon2: 8.989765670730\n    test 4095 line 455 azi2: 35.949534634702\n    test 4096 line 456 lat: -6.742624\n    test 4097 line 456 lon: 4.531931\n    test 4098 line 456 fb: 171.306863\n    test 4099 line 456 lat2: -6.742624347861\n    test 4100 line 456 lon2: 4.531931315168\n    test 4101 line 456 azi2: 171.306863155411\n    test 4102 line 456 lat2: -6.742624347861\n    test 4103 line 456 lon2: 4.531931315168\n    test 4104 line 456 azi2: 171.306863155411\n    test 4105 line 457 lat: -24.910509\n    test 4106 line 457 lon: 128.137682\n    test 4107 line 457 fb: 121.711631\n    test 4108 line 457 lat2: -24.910509138681\n    test 4109 line 457 lon2: 128.137681811633\n    test 4110 line 457 azi2: 121.711631340407\n    test 4111 line 457 lat2: -24.910509138681\n    test 4112 line 457 lon2: 128.137681811633\n    test 4113 line 457 azi2: 121.711631340407\n    test 4114 line 458 lat: -40.687591\n    test 4115 line 458 lon: 76.389897\n    test 4116 line 458 fb: 116.394433\n    test 4117 line 458 lat2: -40.687590598372\n    test 4118 line 458 lon2: 76.389897347637\n    test 4119 line 458 azi2: 116.394432846311\n    test 4120 line 458 lat2: -40.687590598372\n    test 4121 line 458 lon2: 76.389897347637\n    test 4122 line 458 azi2: 116.394432846311\n    test 4123 line 459 lat: 50.593808\n    test 4124 line 459 lon: 155.175630\n    test 4125 line 459 fb: 149.533910\n    test 4126 line 459 lat2: 50.593807692461\n    test 4127 line 459 lon2: 155.175629862288\n    test 4128 line 459 azi2: 149.533910451363\n    test 4129 line 459 lat2: 50.593807692461\n    test 4130 line 459 lon2: 155.175629862288\n    test 4131 line 459 azi2: 149.533910451363\n    test 4132 line 460 lat: 12.198222\n    test 4133 line 460 lon: 165.839456\n    test 4134 line 460 fb: 172.783459\n    test 4135 line 460 lat2: 12.198221826512\n    test 4136 line 460 lon2: 165.839456381799\n    test 4137 line 460 azi2: 172.783459292833\n    test 4138 line 460 lat2: 12.198221826512\n    test 4139 line 460 lon2: 165.839456381799\n    test 4140 line 460 azi2: 172.783459292833\n    test 4141 line 461 lat: 34.436568\n    test 4142 line 461 lon: 7.117338\n    test 4143 line 461 fb: 169.786492\n    test 4144 line 461 lat2: 34.436568298724\n    test 4145 line 461 lon2: 7.117337693395\n    test 4146 line 461 azi2: 169.786491850891\n    test 4147 line 461 lat2: 34.436568298724\n    test 4148 line 461 lon2: 7.117337693395\n    test 4149 line 461 azi2: 169.786491850891\n    test 4150 line 462 lat: -3.145255\n    test 4151 line 462 lon: 30.502293\n    test 4152 line 462 fb: 103.563749\n    test 4153 line 462 lat2: -3.145254788627\n    test 4154 line 462 lon2: 30.502293345016\n    test 4155 line 462 azi2: 103.563748974525\n    test 4156 line 462 lat2: -3.145254788627\n    test 4157 line 462 lon2: 30.502293345016\n    test 4158 line 462 azi2: 103.563748974525\n    test 4159 line 463 lat: 16.264722\n    test 4160 line 463 lon: 85.497207\n    test 4161 line 463 fb: 116.933863\n    test 4162 line 463 lat2: 16.264722156696\n    test 4163 line 463 lon2: 85.497207496626\n    test 4164 line 463 azi2: 116.933862512764  FAILED, KNOWN, expected 116.933862512763\n    test 4165 line 463 lat2: 16.264722156696\n    test 4166 line 463 lon2: 85.497207496627  FAILED, KNOWN, expected 85.497207496626\n    test 4167 line 463 azi2: 116.933862512764  FAILED, KNOWN, expected 116.933862512763\n    test 4168 line 464 lat: 1.433605\n    test 4169 line 464 lon: 4.165940\n    test 4170 line 464 fb: 170.272462\n    test 4171 line 464 lat2: 1.433605151882\n    test 4172 line 464 lon2: 4.165940219923\n    test 4173 line 464 azi2: 170.272462365963\n    test 4174 line 464 lat2: 1.433605151882\n    test 4175 line 464 lon2: 4.165940219923\n    test 4176 line 464 azi2: 170.272462365963\n    test 4177 line 465 lat: -43.326676\n    test 4178 line 465 lon: 153.148367\n    test 4179 line 465 fb: 42.921394\n    test 4180 line 465 lat2: -43.326676023438\n    test 4181 line 465 lon2: 153.148366512832\n    test 4182 line 465 azi2: 42.921393854868\n    test 4183 line 465 lat2: -43.326676023438\n    test 4184 line 465 lon2: 153.148366512832\n    test 4185 line 465 azi2: 42.921393854868\n    test 4186 line 466 lat: 20.405242\n    test 4187 line 466 lon: 178.247549\n    test 4188 line 466 fb: 178.801033\n    test 4189 line 466 lat2: 20.405242225208\n    test 4190 line 466 lon2: 178.247549230810\n    test 4191 line 466 azi2: 178.801032702563\n    test 4192 line 466 lat2: 20.405242225208\n    test 4193 line 466 lon2: 178.247549230810\n    test 4194 line 466 azi2: 178.801032702563\n    test 4195 line 467 lat: -22.482832\n    test 4196 line 467 lon: 140.761211\n    test 4197 line 467 fb: 82.371737\n    test 4198 line 467 lat2: -22.482831544520\n    test 4199 line 467 lon2: 140.761210729739\n    test 4200 line 467 azi2: 82.371736722715\n    test 4201 line 467 lat2: -22.482831544520\n    test 4202 line 467 lon2: 140.761210729739\n    test 4203 line 467 azi2: 82.371736722715\n    test 4204 line 468 lat: -41.151672\n    test 4205 line 468 lon: 38.419124\n    test 4206 line 468 fb: 148.221356\n    test 4207 line 468 lat2: -41.151672070525\n    test 4208 line 468 lon2: 38.419124284860\n    test 4209 line 468 azi2: 148.221356053664\n    test 4210 line 468 lat2: -41.151672070525\n    test 4211 line 468 lon2: 38.419124284860\n    test 4212 line 468 azi2: 148.221356053664\n    test 4213 line 469 lat: -63.212817\n    test 4214 line 469 lon: 15.714998\n    test 4215 line 469 fb: 166.777356\n    test 4216 line 469 lat2: -63.212816746477\n    test 4217 line 469 lon2: 15.714998156904\n    test 4218 line 469 azi2: 166.777356149473\n    test 4219 line 469 lat2: -63.212816746477\n    test 4220 line 469 lon2: 15.714998156904\n    test 4221 line 469 azi2: 166.777356149473\n    test 4222 line 470 lat: -33.892681\n    test 4223 line 470 lon: 120.971496\n    test 4224 line 470 fb: 170.404814\n    test 4225 line 470 lat2: -33.892680517408\n    test 4226 line 470 lon2: 120.971495805190\n    test 4227 line 470 azi2: 170.404813772447\n    test 4228 line 470 lat2: -33.892680517408\n    test 4229 line 470 lon2: 120.971495805190\n    test 4230 line 470 azi2: 170.404813772447\n    test 4231 line 471 lat: -17.570093\n    test 4232 line 471 lon: 137.259693\n    test 4233 line 471 fb: 175.973637\n    test 4234 line 471 lat2: -17.570092516031\n    test 4235 line 471 lon2: 137.259693182063\n    test 4236 line 471 azi2: 175.973637230107\n    test 4237 line 471 lat2: -17.570092516031\n    test 4238 line 471 lon2: 137.259693182063\n    test 4239 line 471 azi2: 175.973637230107\n    test 4240 line 472 lat: -24.221028\n    test 4241 line 472 lon: 33.960052\n    test 4242 line 472 fb: 130.753279\n    test 4243 line 472 lat2: -24.221027716301  FAILED, KNOWN, expected -24.221027716300\n    test 4244 line 472 lon2: 33.960051796001\n    test 4245 line 472 azi2: 130.753279335550\n    test 4246 line 472 lat2: -24.221027716301  FAILED, KNOWN, expected -24.221027716300\n    test 4247 line 472 lon2: 33.960051796001\n    test 4248 line 472 azi2: 130.753279335550\n    test 4249 line 473 lat: -48.849133\n    test 4250 line 473 lon: 176.601435\n    test 4251 line 473 fb: 5.037779\n    test 4252 line 473 lat2: -48.849132604777\n    test 4253 line 473 lon2: 176.601435366477\n    test 4254 line 473 azi2: 5.037779120578\n    test 4255 line 473 lat2: -48.849132604777\n    test 4256 line 473 lon2: 176.601435366477\n    test 4257 line 473 azi2: 5.037779120578\n    test 4258 line 474 lat: -50.620233\n    test 4259 line 474 lon: 22.061011\n    test 4260 line 474 fb: 159.730881\n    test 4261 line 474 lat2: -50.620232529081\n    test 4262 line 474 lon2: 22.061010504617\n    test 4263 line 474 azi2: 159.730880799186\n    test 4264 line 474 lat2: -50.620232529081\n    test 4265 line 474 lon2: 22.061010504617\n    test 4266 line 474 azi2: 159.730880799186\n    test 4267 line 475 lat: -11.354875\n    test 4268 line 475 lon: 76.258812\n    test 4269 line 475 fb: 104.014357\n    test 4270 line 475 lat2: -11.354875472483\n    test 4271 line 475 lon2: 76.258812283705\n    test 4272 line 475 azi2: 104.014356938495\n    test 4273 line 475 lat2: -11.354875472483\n    test 4274 line 475 lon2: 76.258812283705\n    test 4275 line 475 azi2: 104.014356938495\n    test 4276 line 476 lat: -19.640051\n    test 4277 line 476 lon: 105.698979\n    test 4278 line 476 fb: 156.650619\n    test 4279 line 476 lat2: -19.640050782646\n    test 4280 line 476 lon2: 105.698978700604\n    test 4281 line 476 azi2: 156.650619021389\n    test 4282 line 476 lat2: -19.640050782646\n    test 4283 line 476 lon2: 105.698978700604\n    test 4284 line 476 azi2: 156.650619021389\n    test 4285 line 477 lat: 83.855267\n    test 4286 line 477 lon: 112.674858\n    test 4287 line 477 fb: 122.383784\n    test 4288 line 477 lat2: 83.855266840098\n    test 4289 line 477 lon2: 112.674858066810\n    test 4290 line 477 azi2: 122.383784147681\n    test 4291 line 477 lat2: 83.855266840098\n    test 4292 line 477 lon2: 112.674858066811  FAILED, KNOWN, expected 112.674858066810\n    test 4293 line 477 azi2: 122.383784147681\n    test 4294 line 478 lat: 48.296558\n    test 4295 line 478 lon: 34.072463\n    test 4296 line 478 fb: 61.415867\n    test 4297 line 478 lat2: 48.296557545891\n    test 4298 line 478 lon2: 34.072462542900\n    test 4299 line 478 azi2: 61.415867309157\n    test 4300 line 478 lat2: 48.296557545891\n    test 4301 line 478 lon2: 34.072462542900\n    test 4302 line 478 azi2: 61.415867309157\n    test 4303 line 479 lat: 20.173772\n    test 4304 line 479 lon: 12.682422\n    test 4305 line 479 fb: 165.220898\n    test 4306 line 479 lat2: 20.173772376863\n    test 4307 line 479 lon2: 12.682422408956\n    test 4308 line 479 azi2: 165.220897942891\n    test 4309 line 479 lat2: 20.173772376863\n    test 4310 line 479 lon2: 12.682422408956\n    test 4311 line 479 azi2: 165.220897942891\n    test 4312 line 480 lat: 47.501521\n    test 4313 line 480 lon: 54.338775\n    test 4314 line 480 fb: 80.572388\n    test 4315 line 480 lat2: 47.501521345953\n    test 4316 line 480 lon2: 54.338775236773\n    test 4317 line 480 azi2: 80.572387690286\n    test 4318 line 480 lat2: 47.501521345953\n    test 4319 line 480 lon2: 54.338775236773\n    test 4320 line 480 azi2: 80.572387690286\n    test 4321 line 481 lat: -34.023172\n    test 4322 line 481 lon: 174.310259\n    test 4323 line 481 fb: 123.138509\n    test 4324 line 481 lat2: -34.023171607796\n    test 4325 line 481 lon2: 174.310258612178\n    test 4326 line 481 azi2: 123.138509441522\n    test 4327 line 481 lat2: -34.023171607796\n    test 4328 line 481 lon2: 174.310258612178\n    test 4329 line 481 azi2: 123.138509441522\n    test 4330 line 482 lat: -31.540913\n    test 4331 line 482 lon: 52.441924\n    test 4332 line 482 fb: 155.194513\n    test 4333 line 482 lat2: -31.540912691186\n    test 4334 line 482 lon2: 52.441923606881  FAILED, KNOWN, expected 52.441923606882\n    test 4335 line 482 azi2: 155.194512958367\n    test 4336 line 482 lat2: -31.540912691186\n    test 4337 line 482 lon2: 52.441923606881  FAILED, KNOWN, expected 52.441923606882\n    test 4338 line 482 azi2: 155.194512958367\n    test 4339 line 483 lat: 64.121649\n    test 4340 line 483 lon: 21.295234\n    test 4341 line 483 fb: 51.966943\n    test 4342 line 483 lat2: 64.121648788158\n    test 4343 line 483 lon2: 21.295234110583\n    test 4344 line 483 azi2: 51.966943039534\n    test 4345 line 483 lat2: 64.121648788158\n    test 4346 line 483 lon2: 21.295234110583\n    test 4347 line 483 azi2: 51.966943039534\n    test 4348 line 484 lat: -4.599613\n    test 4349 line 484 lon: 107.727091\n    test 4350 line 484 fb: 109.270070\n    test 4351 line 484 lat2: -4.599612537190\n    test 4352 line 484 lon2: 107.727090701893\n    test 4353 line 484 azi2: 109.270070124629\n    test 4354 line 484 lat2: -4.599612537190\n    test 4355 line 484 lon2: 107.727090701893\n    test 4356 line 484 azi2: 109.270070124629\n    test 4357 line 485 lat: -16.799515\n    test 4358 line 485 lon: 43.675397\n    test 4359 line 485 fb: 144.940350\n    test 4360 line 485 lat2: -16.799514501718\n    test 4361 line 485 lon2: 43.675397103786  FAILED, KNOWN, expected 43.675397103785\n    test 4362 line 485 azi2: 144.940350340820\n    test 4363 line 485 lat2: -16.799514501718\n    test 4364 line 485 lon2: 43.675397103786  FAILED, KNOWN, expected 43.675397103785\n    test 4365 line 485 azi2: 144.940350340820\n    test 4366 line 486 lat: -16.337411\n    test 4367 line 486 lon: 13.110283\n    test 4368 line 486 fb: 167.467077\n    test 4369 line 486 lat2: -16.337410785184\n    test 4370 line 486 lon2: 13.110282576579\n    test 4371 line 486 azi2: 167.467077049713\n    test 4372 line 486 lat2: -16.337410785184\n    test 4373 line 486 lon2: 13.110282576579\n    test 4374 line 486 azi2: 167.467077049713\n    test 4375 line 487 lat: -26.145379\n    test 4376 line 487 lon: 9.977868\n    test 4377 line 487 fb: 171.929335\n    test 4378 line 487 lat2: -26.145378737931\n    test 4379 line 487 lon2: 9.977868070750\n    test 4380 line 487 azi2: 171.929335050809\n    test 4381 line 487 lat2: -26.145378737931\n    test 4382 line 487 lon2: 9.977868070750\n    test 4383 line 487 azi2: 171.929335050809\n    test 4384 line 488 lat: -3.245748\n    test 4385 line 488 lon: 71.931981\n    test 4386 line 488 fb: 124.120047\n    test 4387 line 488 lat2: -3.245748416402\n    test 4388 line 488 lon2: 71.931980979620\n    test 4389 line 488 azi2: 124.120046609527\n    test 4390 line 488 lat2: -3.245748416402\n    test 4391 line 488 lon2: 71.931980979620\n    test 4392 line 488 azi2: 124.120046609527\n    test 4393 line 489 lat: 72.975644\n    test 4394 line 489 lon: 36.459313\n    test 4395 line 489 fb: 49.411324\n    test 4396 line 489 lat2: 72.975644407376\n    test 4397 line 489 lon2: 36.459312843012\n    test 4398 line 489 azi2: 49.411324496539\n    test 4399 line 489 lat2: 72.975644407376\n    test 4400 line 489 lon2: 36.459312843012\n    test 4401 line 489 azi2: 49.411324496539\n    test 4402 line 490 lat: 50.342418\n    test 4403 line 490 lon: 35.445910\n    test 4404 line 490 fb: 43.087650\n    test 4405 line 490 lat2: 50.342417843481\n    test 4406 line 490 lon2: 35.445910446930\n    test 4407 line 490 azi2: 43.087650398316\n    test 4408 line 490 lat2: 50.342417843481\n    test 4409 line 490 lon2: 35.445910446930\n    test 4410 line 490 azi2: 43.087650398316\n    test 4411 line 491 lat: -22.878804\n    test 4412 line 491 lon: 69.376306\n    test 4413 line 491 fb: 102.211558\n    test 4414 line 491 lat2: -22.878804028267\n    test 4415 line 491 lon2: 69.376306288000\n    test 4416 line 491 azi2: 102.211557813582\n    test 4417 line 491 lat2: -22.878804028267\n    test 4418 line 491 lon2: 69.376306288000\n    test 4419 line 491 azi2: 102.211557813582\n    test 4420 line 492 lat: 21.254912\n    test 4421 line 492 lon: 21.899215\n    test 4422 line 492 fb: 92.966926\n    test 4423 line 492 lat2: 21.254912121078\n    test 4424 line 492 lon2: 21.899214754868\n    test 4425 line 492 azi2: 92.966926161390\n    test 4426 line 492 lat2: 21.254912121078\n    test 4427 line 492 lon2: 21.899214754868\n    test 4428 line 492 azi2: 92.966926161390\n    test 4429 line 493 lat: 26.486641\n    test 4430 line 493 lon: 19.097603\n    test 4431 line 493 fb: 158.053447\n    test 4432 line 493 lat2: 26.486640906235\n    test 4433 line 493 lon2: 19.097602913800\n    test 4434 line 493 azi2: 158.053446850267\n    test 4435 line 493 lat2: 26.486640906235\n    test 4436 line 493 lon2: 19.097602913800\n    test 4437 line 493 azi2: 158.053446850267\n    test 4438 line 494 lat: 43.041538\n    test 4439 line 494 lon: 114.186950\n    test 4440 line 494 fb: 155.795323\n    test 4441 line 494 lat2: 43.041538374784\n    test 4442 line 494 lon2: 114.186949886941\n    test 4443 line 494 azi2: 155.795322500736\n    test 4444 line 494 lat2: 43.041538374784\n    test 4445 line 494 lon2: 114.186949886941\n    test 4446 line 494 azi2: 155.795322500736\n    test 4447 line 495 lat: -10.570764\n    test 4448 line 495 lon: 107.625834\n    test 4449 line 495 fb: 98.142401\n    test 4450 line 495 lat2: -10.570763915882\n    test 4451 line 495 lon2: 107.625834147204\n    test 4452 line 495 azi2: 98.142400502747\n    test 4453 line 495 lat2: -10.570763915882\n    test 4454 line 495 lon2: 107.625834147204\n    test 4455 line 495 azi2: 98.142400502747\n    test 4456 line 496 lat: 12.624313\n    test 4457 line 496 lon: 139.841077\n    test 4458 line 496 fb: 148.385662\n    test 4459 line 496 lat2: 12.624313141297\n    test 4460 line 496 lon2: 139.841076840613\n    test 4461 line 496 azi2: 148.385661923898\n    test 4462 line 496 lat2: 12.624313141297\n    test 4463 line 496 lon2: 139.841076840613\n    test 4464 line 496 azi2: 148.385661923898\n    test 4465 line 497 lat: -25.169999\n    test 4466 line 497 lon: 33.175749\n    test 4467 line 497 fb: 169.905377\n    test 4468 line 497 lat2: -25.169998746665\n    test 4469 line 497 lon2: 33.175749310362\n    test 4470 line 497 azi2: 169.905376778384\n    test 4471 line 497 lat2: -25.169998746665\n    test 4472 line 497 lon2: 33.175749310362\n    test 4473 line 497 azi2: 169.905376778384\n    test 4474 line 498 lat: -41.360282\n    test 4475 line 498 lon: 147.341948\n    test 4476 line 498 fb: 136.551910\n    test 4477 line 498 lat2: -41.360281944908\n    test 4478 line 498 lon2: 147.341948469937\n    test 4479 line 498 azi2: 136.551910060918\n    test 4480 line 498 lat2: -41.360281944908\n    test 4481 line 498 lon2: 147.341948469937\n    test 4482 line 498 azi2: 136.551910060918\n    test 4483 line 499 lat: 39.182099\n    test 4484 line 499 lon: 150.590705\n    test 4485 line 499 fb: 165.522951\n    test 4486 line 499 lat2: 39.182099298590\n    test 4487 line 499 lon2: 150.590705311219\n    test 4488 line 499 azi2: 165.522950851635\n    test 4489 line 499 lat2: 39.182099298590\n    test 4490 line 499 lon2: 150.590705311219\n    test 4491 line 499 azi2: 165.522950851635\n    test 4492 line 500 lat: -57.494441\n    test 4493 line 500 lon: 113.054057\n    test 4494 line 500 fb: 130.988277\n    test 4495 line 500 lat2: -57.494440629886\n    test 4496 line 500 lon2: 113.054056725195\n    test 4497 line 500 azi2: 130.988276746436\n    test 4498 line 500 lat2: -57.494440629886\n    test 4499 line 500 lon2: 113.054056725195\n    test 4500 line 500 azi2: 130.988276746436\n    test 4501 WGS84.KsOrder: 8\n\n    545 of 4501 testEllipsoidalGeodTest.py tests (12.1%) FAILED, incl. 45 KNOWN plus 500 DeprecationWarnings (pygeodesy 26.3.26 Python 3.12.10 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 2.1.0 scipy 1.14.1 Math 2 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 isLazy 3 -W  default) 21.553 sec\nrunning /usr/local/bin/p....n3.12 -W default ~/PyGeodesy/test/testEllipsoids.py\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.EcefKarney from .ecef by testEllipsoids.py line 11\n# lazily imported pygeodesy.Ellipsoid from .ellipsoids by testEllipsoids.py line 11\n# lazily imported pygeodesy.Ellipsoid2 from .ellipsoids by testEllipsoids.py line 11\n# lazily imported pygeodesy.Ellipsoids from .ellipsoids by testEllipsoids.py line 11\n# lazily imported pygeodesy.Vector3d from .vector3d by testEllipsoids.py line 11\n# lazily imported pygeodesy.a_b2f_ from .ellipsoids by testEllipsoids.py line 11\n# lazily imported pygeodesy.a_b2f2 from .ellipsoids by testEllipsoids.py line 11\n# lazily imported pygeodesy.a_b2n from .ellipsoids by testEllipsoids.py line 11\n# lazily imported pygeodesy.a_f2Tuple from .ellipsoids by testEllipsoids.py line 11\n# lazily imported pygeodesy.b_f2a from .ellipsoids by testEllipsoids.py line 11\n# lazily imported pygeodesy.b_f_2a from .ellipsoids by testEllipsoids.py line 11\n# lazily imported pygeodesy.circle4 from .utily by testEllipsoids.py line 11\n# lazily imported pygeodesy.e2f from .ellipsoids by testEllipsoids.py line 11\n# lazily imported pygeodesy.f_2f from .ellipsoids by testEllipsoids.py line 11\n# lazily imported pygeodesy.fstr from .streprs by testEllipsoids.py line 11\n# lazily imported pygeodesy.hypot_ from .fmath by testEllipsoids.py line 11\n# lazily imported pygeodesy.n2e2 from .ellipsoids by testEllipsoids.py line 11\n# lazily imported pygeodesy.n2f from .ellipsoids by testEllipsoids.py line 11\n# lazily imported pygeodesy.PI_2 from .constants by testEllipsoids.py line 11\n# lazily imported pygeodesy.R_M from .constants by testEllipsoids.py line 11\n# lazily imported pygeodesy.sincos2d from .utily by testEllipsoids.py line 11\n# lazily imported pygeodesy.unstr from .streprs by testEllipsoids.py line 11\n\n    testing testEllipsoids.py 25.08.28 (module pygeodesy.ellipsoids 26.03.25) isLazy=3\n    test 1 ellipsoid: True\n    test 2 TestEllipsoid: name='TestEllipsoid', a=1000, f=0, f_=0, b=1000\n\n    testWGS84(pygeodesy.ellipsoids, 26.03.25)\n    test 3 R1: 6371008.7714\n    test 4 R2: 6371007.2\n    test 5 R3: 6371000.8\n    test 6 A: 6367449.1\n# lazily imported pygeodesy.elliptic by ellipsoids.py line 856\n    test 7 L: 10001965.7\n    test 8 Rrectifying: 6367449.1\n    test 9 Rgeometric: 6367435.7\n    test 10 Rgeocentric: 6378137.000\n    test 11 Rgeocentric: 6367489.544\n    test 12 Rgeocentric: 6356752.314\n# lazily imported pygeodesy.angles by units.py line 633\n    test 13 Rlat: 6378137.000\n    test 14 Rlat: 6367444.657\n    test 15 Rlat: 6356752.314\n    test 16 circle4.radius: 6378137.000\n    test 17 circle4.radius: 4517590.879\n    test 18 circle4.radius: 0.000\n    test 19 distance2: 156903.472, 45.192\n    test 20 distance2: 1569034.719, 45.192\n    test 21 distance2: 1400742.676, 37.563\n    test 22 distance2: 1179164.848, 18.896\n    test 23 roc2: 6335439.327, 6378137.0\n    test 24 roc2: 6367381.816, 6388838.29\n    test 25 roc2: 6399593.626, 6399593.626\n    test 26 rocBearing: 6335439.327\n    test 27 rocBearing: 6378092.008\n    test 28 rocBearing: 6399593.626\n    test 29 rocGauss: 6356752.314\n    test 30 rocGauss: 6378101.030\n    test 31 rocGauss: 6399593.626\n    test 32 rocMean: 6356716.465\n    test 33 rocMean: 6378092.008\n    test 34 rocMean: 6399593.626\n    test 35 rocMeridional: 6335439.327\n    test 36 rocMeridional: 6367381.816\n    test 37 rocMeridional: 6399593.626\n    test 38 rocPrimeVertical: 6378137.0\n    test 39 rocPrimeVertical: 6388838.29\n    test 40 rocPrimeVertical: 6399593.626\n\n    testGRS80(pygeodesy.ellipsoids, 26.03.25)\n    test 41 R1: 6371008.7714\n    test 42 R2: 6371007.2\n    test 43 R3: 6371000.8\n    test 44 A: 6367449.1\n    test 45 L: 10001965.7\n    test 46 Rrectifying: 6367449.1\n    test 47 Rgeometric: 6367435.7\n    test 48 Rgeocentric: 6378137.000\n    test 49 Rgeocentric: 6367489.544\n    test 50 Rgeocentric: 6356752.314\n    test 51 Rlat: 6378137.000\n    test 52 Rlat: 6367444.657\n    test 53 Rlat: 6356752.314\n    test 54 circle4.radius: 6378137.000\n    test 55 circle4.radius: 4517590.879\n    test 56 circle4.radius: 0.000\n    test 57 distance2: 156903.472, 45.192\n    test 58 distance2: 1569034.719, 45.192\n    test 59 distance2: 1400742.676, 37.563\n    test 60 distance2: 1179164.848, 18.896\n    test 61 roc2: 6335439.327, 6378137.0\n    test 62 roc2: 6367381.816, 6388838.29\n    test 63 roc2: 6399593.626, 6399593.626\n    test 64 rocBearing: 6335439.327\n    test 65 rocBearing: 6378092.008\n    test 66 rocBearing: 6399593.626\n    test 67 rocGauss: 6356752.314\n    test 68 rocGauss: 6378101.030\n    test 69 rocGauss: 6399593.626\n    test 70 rocMean: 6356716.465\n    test 71 rocMean: 6378092.008\n    test 72 rocMean: 6399593.626\n    test 73 rocMeridional: 6335439.327\n    test 74 rocMeridional: 6367381.816\n    test 75 rocMeridional: 6399593.626\n    test 76 rocPrimeVertical: 6378137.0\n    test 77 rocPrimeVertical: 6388838.29\n    test 78 rocPrimeVertical: 6399593.626\n\n    test<function Ellipsoid.__init__ at 0x10655aca0>(pygeodesy.ellipsoids, 26.03.25)\n    test 79 a, b, None: 2.0\n    test 80 a, None, f_: 500.0\n\n    testWGS84(pygeodesy.ellipsoids, 26.03.25)\n    test 81 WGS84.copy: True\n    test 82 WGS84.copy: True\n    test 83 WGS84.find: None\n    test 84 WGS84.a2_b: 6399593.625758\n    test 85 WGS84.b2_a: 6335439.327293\n    test 86 WGS84.R2: 6371007.180918\n    test 87 WGS84.c2: 40589732499315\n    test 88 WGS84.es: 0.081819\n    test 89 WGS84.e22: 0.006739\n    test 90 WGS84.f2: 0.003364\n    test 91 WGS84.m2degrees: 90\n    test 92 WGS84.degrees2m: 10018754\n    test 93 WGS84.area: 5.101e+14\n    test 94 WGS84.volume: 1.083e+21\n    test 95 WGS84.ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 96 WGS84.ecef: WGS84\n    test 97 WGS84: name='WGS84', a=6378137, f=0.0033528107, f_=298.257223563, b=6356752.3142451793, f2=0.0033640898, n=0.0016792204, e=0.0818191908, e2=0.00669438, e21=0.99330562, e22=0.0067394967, e32=0.0033584313, A=6367449.1458234144, L=10001965.7293127235, R1=6371008.7714150595, R2=6371007.1809184738, R3=6371000.7900091587, Rbiaxial=6367453.6345163295, Rtriaxial=6372797.5559594007\n    test 98 WGS84.: A=6367449.1458234144, e=0.0818191908, f_=298.2572235630, n=0.0016792204 (1.5612511284e-17)\n\n    testKruegers(pygeodesy.ellipsoids, 26.03.25)\n    test 99 WGS84.AlphaKs: 8.377318206245e-04, 7.608527773572e-07, 1.197645503242e-09, 2.429170680397e-12, 5.711818370428e-15, 1.47999793138e-17, 4.107624109371e-20, 1.210785038923e-22\n    test 100 WGS84.BetaKs : 8.377321640579e-04, 5.90587015222e-08, 1.673482665344e-10, 2.164798110491e-13, 3.787930968626e-16, 7.236769021816e-19, 1.493479824778e-21, 3.259522545838e-24\n    test 101 WGS84.AlphaKs: 8.377318206245e-04, 7.608527773572e-07, 1.197645503329e-09, 2.429170607201e-12, 5.711757677866e-15, 1.491117731258e-17\n    test 102 WGS84.BetaKs : 8.377321640579e-04, 5.90587015222e-08, 1.673482665284e-10, 2.164798040063e-13, 3.787978046169e-16, 7.248748890694e-19\n    test 103 WGS84.AlphaKs: 8.377318206304e-04, 7.608527714249e-07, 1.197638001561e-09, 2.443376194522e-12\n    test 104 WGS84.BetaKs : 8.377321640601e-04, 5.905869567934e-08, 1.673488880355e-10, 2.167737763022e-13\n\n    testProlate(pygeodesy.ellipsoids, 26.03.25)\n    test 105 a [Radius_]: 6356752.314\n    test 106 b [Radius_]: 6378137.000\n    test 107 n [Float]: -0.002\n    test 108 R1 [Radius]: 6363880.543\n    test 109 R2 [Radius]: 6363878.941\n    test 110 R3 [Radius]: 6363872.564\n    test 111 Rbiaxial [Radius]: 6367453.635\n    test 112 Rgeometric [Radius]: 6367435.680\n    test 113 c2 [Meter2]: 40498955180263.188\n    test 114 area [Meter2]: 508924880289508.500\n    test 115 volume [Meter3]: 1079575530747445379072.000\n\n    testauxLats WGS84(pygeodesy.ellipsoids, 26.03.25)\n    test 116 isEllipsoidal: True\n    test 117 isOblate: True\n    test 118 isProlate: False\n    test 119 isSpherical: False\n# lazily imported pygeodesy.albers by ellipsoids.py line 383\n    test 120 auxAuthalic(-90): -90.0\n    test 121 name: auxAuthalic\n    test 122 inverse: lat (-90.0)\n    test 123 auxConformal(-90): -90.0\n    test 124 name: auxConformal\n    test 125 inverse: lat (-90.0)\n    test 126 auxRectifying(-90): -90.0\n    test 127 name: auxRectifying\n    test 128 inverse: lat (-90.0)\n    test 129 auxIsometric(-90): -2178.287790219\n    test 130 name: auxIsometric\n    test 131 inverse: lat (-90.0)\n    test 132 auxParametric(-90): -90.0\n    test 133 name: auxParametric\n    test 134 inverse: lat (-90.0)\n    test 135 auxGeocentric(-90): -90.0\n    test 136 name: auxGeocentric\n    test 137 inverse: lat (-90.0)\n    test 138 auxGeocentric(-90, height=1.0e+06): -90.0\n    test 139 name: auxGeocentric\n    test 140 inverse: lat (-90.0)\n    test 141 auxAuthalic(-61): -60.891087993\n    test 142 name: auxAuthalic\n    test 143 inverse: lat (-61.0)\n    test 144 auxConformal(-61): -60.836664626\n    test 145 name: auxConformal\n    test 146 inverse: lat (-61.0)\n    test 147 auxRectifying(-61): -60.877475063\n    test 148 name: auxRectifying\n    test 149 inverse: lat (-61.0)\n    test 150 auxIsometric(-61): -77.151044895\n    test 151 name: auxIsometric\n    test 152 inverse: lat (-61.0)\n    test 153 auxParametric(-61): -60.918334778\n    test 154 name: auxParametric\n    test 155 inverse: lat (-61.0)\n    test 156 auxGeocentric(-61): -60.836524751\n    test 157 name: auxGeocentric\n    test 158 inverse: lat (-61.0)\n    test 159 auxGeocentric(-61, height=1.0e+06): -60.858730579\n    test 160 name: auxGeocentric\n    test 161 inverse: lat (-61.0)\n    test 162 auxAuthalic(-32): -31.884783413\n    test 163 name: auxAuthalic\n    test 164 inverse: lat (-32.0)\n    test 165 auxConformal(-32): -31.827359208\n    test 166 name: auxConformal\n    test 167 inverse: lat (-32.0)\n    test 168 auxRectifying(-32): -31.870407049\n    test 169 name: auxRectifying\n    test 170 inverse: lat (-32.0)\n    test 171 auxIsometric(-32): -33.603011359\n    test 172 name: auxIsometric\n    test 173 inverse: lat (-32.0)\n    test 174 auxParametric(-32): -31.913588685\n    test 175 name: auxParametric\n    test 176 inverse: lat (-32.0)\n    test 177 auxGeocentric(-32): -31.827305281\n    test 178 name: auxGeocentric\n    test 179 inverse: lat (-32.0)\n    test 180 auxGeocentric(-32, height=1.0e+06): -31.850730486\n    test 181 name: auxGeocentric\n    test 182 inverse: lat (-32.0)\n    test 183 auxAuthalic(-3): -2.986614622\n    test 184 name: auxAuthalic\n    test 185 inverse: lat (-3.0)\n    test 186 auxConformal(-3): -2.97995324\n    test 187 name: auxConformal\n    test 188 inverse: lat (-3.0)\n    test 189 auxRectifying(-3): -2.984946069\n    test 190 name: auxRectifying\n    test 191 inverse: lat (-3.0)\n    test 192 auxIsometric(-3): -2.981297631\n    test 193 name: auxIsometric\n    test 194 inverse: lat (-3.0)\n    test 195 auxParametric(-3): -2.98995985\n    test 196 name: auxParametric\n    test 197 inverse: lat (-3.0)\n    test 198 auxGeocentric(-3): -2.979953179\n    test 199 name: auxGeocentric\n    test 200 inverse: lat (-3.0)\n    test 201 auxGeocentric(-3, height=1.0e+06): -2.982670258\n    test 202 name: auxGeocentric\n    test 203 inverse: lat (-3.0)\n    test 204 auxAuthalic(26): 25.899018772\n    test 205 name: auxAuthalic\n    test 206 inverse: lat (26.0)\n    test 207 auxConformal(26): 25.848713396\n    test 208 name: auxConformal\n    test 209 inverse: lat (26.0)\n    test 210 auxRectifying(26): 25.886422583\n    test 211 name: auxRectifying\n    test 212 inverse: lat (26.0)\n    test 213 auxIsometric(26): 26.772988826\n    test 214 name: auxIsometric\n    test 215 inverse: lat (26.0)\n    test 216 auxParametric(26): 25.924262064\n    test 217 name: auxParametric\n    test 218 inverse: lat (26.0)\n    test 219 auxGeocentric(26): 25.848681095\n    test 220 name: auxGeocentric\n    test 221 inverse: lat (26.0)\n    test 222 auxGeocentric(26, height=1.0e+06): 25.869201526\n    test 223 name: auxGeocentric\n    test 224 inverse: lat (26.0)\n    test 225 auxAuthalic(55): 54.879361595\n    test 226 name: auxAuthalic\n    test 227 inverse: lat (55.0)\n    test 228 auxConformal(55): 54.819109025\n    test 229 name: auxConformal\n    test 230 inverse: lat (55.0)\n    test 231 auxRectifying(55): 54.864287984\n    test 232 name: auxRectifying\n    test 233 inverse: lat (55.0)\n    test 234 auxIsometric(55): 65.818103037\n    test 235 name: auxIsometric\n    test 236 inverse: lat (55.0)\n    test 237 auxParametric(55): 54.909538188\n    test 238 name: auxParametric\n    test 239 inverse: lat (55.0)\n    test 240 auxGeocentric(55): 54.818973309\n    test 241 name: auxGeocentric\n    test 242 inverse: lat (55.0)\n    test 243 auxGeocentric(55, height=1.0e+06): 54.843556517\n    test 244 name: auxGeocentric\n    test 245 inverse: lat (55.0)\n    test 246 auxAuthalic(84): 83.973275752\n    test 247 name: auxAuthalic\n    test 248 inverse: lat (84.0)\n    test 249 auxConformal(84): 83.959905489\n    test 250 name: auxConformal\n    test 251 inverse: lat (84.0)\n    test 252 auxRectifying(84): 83.969932835\n    test 253 name: auxRectifying\n    test 254 inverse: lat (84.0)\n    test 255 auxIsometric(84): 168.565774939\n    test 256 name: auxIsometric\n    test 257 inverse: lat (84.0)\n    test 258 auxParametric(84): 83.979963441\n    test 259 name: auxParametric\n    test 260 inverse: lat (84.0)\n    test 261 auxGeocentric(84): 83.959860962\n    test 262 name: auxGeocentric\n    test 263 inverse: lat (84.0)\n    test 264 auxGeocentric(84, height=1.0e+06): 83.965316868\n    test 265 name: auxGeocentric\n    test 266 inverse: lat (84.0)\n\n    testauxLats Prolate(pygeodesy.ellipsoids, 26.03.25)\n    test 267 isEllipsoidal: True\n    test 268 isOblate: False\n    test 269 isProlate: True\n    test 270 isSpherical: False\n    test 271 auxAuthalic(-90): -90.0\n    test 272 name: auxAuthalic\n    test 273 inverse: lat (-90.0)\n    test 274 auxConformal(-90): -90.0\n    test 275 name: auxConformal\n    test 276 inverse: lat (-90.0)\n    test 277 auxRectifying(-90): -90.0\n    test 278 name: auxRectifying\n    test 279 inverse: lat (-90.0)\n    test 280 auxIsometric(-90): -2179.057490028\n    test 281 name: auxIsometric\n    test 282 inverse: lat (-90.0)\n    test 283 auxParametric(-90): -90.0\n    test 284 name: auxParametric\n    test 285 inverse: lat (-90.0)\n    test 286 auxGeocentric(-90): -90.0\n    test 287 name: auxGeocentric\n    test 288 inverse: lat (-90.0)\n    test 289 auxGeocentric(-90, height=1.0e+06): -90.0\n    test 290 name: auxGeocentric\n    test 291 inverse: lat (-90.0)\n    test 292 auxAuthalic(-61): -61.10866822\n    test 293 name: auxAuthalic\n    test 294 inverse: lat (-61.0)\n    test 295 auxConformal(-61): -61.163034022\n    test 296 name: auxConformal\n    test 297 inverse: lat (-61.0)\n    test 298 auxRectifying(-61): -61.041077146\n    test 299 name: auxRectifying\n    test 300 inverse: lat (-61.0)\n    test 301 auxIsometric(-61): -77.824239376\n    test 302 name: auxIsometric\n    test 303 inverse: lat (-61.0)\n    test 304 auxParametric(-61): -61.081520012\n    test 305 name: auxParametric\n    test 306 inverse: lat (-61.0)\n    test 307 auxGeocentric(-61): -61.162894413\n    test 308 name: auxGeocentric\n    test 309 inverse: lat (-61.0)\n    test 310 auxGeocentric(-61, height=1.0e+06): -61.140801491\n    test 311 name: auxGeocentric\n    test 312 inverse: lat (-61.0)\n    test 313 auxAuthalic(-32): -32.115383155\n    test 314 name: auxAuthalic\n    test 315 inverse: lat (-32.0)\n    test 316 auxConformal(-32): -32.173258776\n    test 317 name: auxConformal\n    test 318 inverse: lat (-32.0)\n    test 319 auxRectifying(-32): -32.043518766\n    test 320 name: auxRectifying\n    test 321 inverse: lat (-32.0)\n    test 322 auxIsometric(-32): -34.010891137\n    test 323 name: auxIsometric\n    test 324 inverse: lat (-32.0)\n    test 325 auxParametric(-32): -32.086538627\n    test 326 name: auxParametric\n    test 327 inverse: lat (-32.0)\n    test 328 auxGeocentric(-32): -32.173203962\n    test 329 name: auxGeocentric\n    test 330 inverse: lat (-32.0)\n    test 331 auxGeocentric(-32, height=1.0e+06): -32.149679767\n    test 332 name: auxGeocentric\n    test 333 inverse: lat (-32.0)\n    test 334 auxAuthalic(-3): -3.013433135\n    test 335 name: auxAuthalic\n    test 336 inverse: lat (-3.0)\n    test 337 auxConformal(-3): -3.020181246\n    test 338 name: auxConformal\n    test 339 inverse: lat (-3.0)\n    test 340 auxRectifying(-3): -3.005060047\n    test 341 name: auxRectifying\n    test 342 inverse: lat (-3.0)\n    test 343 auxIsometric(-3): -3.021580847\n    test 344 name: auxIsometric\n    test 345 inverse: lat (-3.0)\n    test 346 auxParametric(-3): -3.010073741\n    test 347 name: auxParametric\n    test 348 inverse: lat (-3.0)\n    test 349 auxGeocentric(-3): -3.020181184\n    test 350 name: auxGeocentric\n    test 351 inverse: lat (-3.0)\n    test 352 auxGeocentric(-3, height=1.0e+06): -3.017437987\n    test 353 name: auxGeocentric\n    test 354 inverse: lat (-3.0)\n    test 355 auxAuthalic(26): 26.10119548\n    test 356 name: auxAuthalic\n    test 357 inverse: lat (26.0)\n    test 358 auxConformal(26): 26.151978892\n    test 359 name: auxConformal\n    test 360 inverse: lat (26.0)\n    test 361 auxRectifying(26): 26.038152061\n    test 362 name: auxRectifying\n    test 363 inverse: lat (26.0)\n    test 364 auxIsometric(26): 27.110404181\n    test 365 name: auxIsometric\n    test 366 inverse: lat (26.0)\n    test 367 auxParametric(26): 26.075894699\n    test 368 name: auxParametric\n    test 369 inverse: lat (26.0)\n    test 370 auxGeocentric(26): 26.15194595\n    test 371 name: auxGeocentric\n    test 372 inverse: lat (26.0)\n    test 373 auxGeocentric(26, height=1.0e+06): 26.131303631\n    test 374 name: auxGeocentric\n    test 375 inverse: lat (26.0)\n    test 376 auxAuthalic(55): 55.120454487\n    test 377 name: auxAuthalic\n    test 378 inverse: lat (55.0)\n    test 379 auxConformal(55): 55.180747234\n    test 380 name: auxConformal\n    test 381 inverse: lat (55.0)\n    test 382 auxRectifying(55): 55.045512882\n    test 383 name: auxRectifying\n    test 384 inverse: lat (55.0)\n    test 385 auxIsometric(55): 66.448604201\n    test 386 name: auxIsometric\n    test 387 inverse: lat (55.0)\n    test 388 auxParametric(55): 55.090357963\n    test 389 name: auxParametric\n    test 390 inverse: lat (55.0)\n    test 391 auxGeocentric(55): 55.180611298\n    test 392 name: auxGeocentric\n    test 393 inverse: lat (55.0)\n    test 394 auxGeocentric(55, height=1.0e+06): 55.156108835\n    test 395 name: auxGeocentric\n    test 396 inverse: lat (55.0)\n    test 397 auxAuthalic(84): 84.026618976\n    test 398 name: auxAuthalic\n    test 399 inverse: lat (84.0)\n    test 400 auxConformal(84): 84.039920255\n    test 401 name: auxConformal\n    test 402 inverse: lat (84.0)\n    test 403 auxRectifying(84): 84.010072387\n    test 404 name: auxRectifying\n    test 405 inverse: lat (84.0)\n    test 406 auxIsometric(84): 169.331258228\n    test 407 name: auxIsometric\n    test 408 inverse: lat (84.0)\n    test 409 auxParametric(84): 84.019970846\n    test 410 name: auxParametric\n    test 411 inverse: lat (84.0)\n    test 412 auxGeocentric(84): 84.039876185\n    test 413 name: auxGeocentric\n    test 414 inverse: lat (84.0)\n    test 415 auxGeocentric(84, height=1.0e+06): 84.034471374\n    test 416 name: auxGeocentric\n    test 417 inverse: lat (84.0)\n\n    testauxLats Sphere(pygeodesy.ellipsoids, 26.03.25)\n    test 418 isEllipsoidal: False\n    test 419 isOblate: False\n    test 420 isProlate: False\n    test 421 isSpherical: True\n    test 422 auxAuthalic(-90): -90.0\n    test 423 name: auxAuthalic\n    test 424 inverse: lat (-90.0)\n    test 425 auxConformal(-90): -90.0\n    test 426 name: auxConformal\n    test 427 inverse: lat (-90.0)\n    test 428 auxRectifying(-90): -90.0\n    test 429 name: auxRectifying\n    test 430 inverse: lat (-90.0)\n    test 431 auxIsometric(-90): -90.0\n    test 432 name: auxIsometric\n    test 433 inverse: lat (-90.0)\n    test 434 auxParametric(-90): -90.0\n    test 435 name: auxParametric\n    test 436 inverse: lat (-90.0)\n    test 437 auxGeocentric(-90): -90.0\n    test 438 name: auxGeocentric\n    test 439 inverse: lat (-90.0)\n    test 440 auxGeocentric(-90, height=1.0e+06): -90.0\n    test 441 name: auxGeocentric\n    test 442 inverse: lat (-90.0)\n    test 443 auxAuthalic(-61): -61.0\n    test 444 name: auxAuthalic\n    test 445 inverse: lat (-61.0)\n    test 446 auxConformal(-61): -61.0\n    test 447 name: auxConformal\n    test 448 inverse: lat (-61.0)\n    test 449 auxRectifying(-61): -61.0\n    test 450 name: auxRectifying\n    test 451 inverse: lat (-61.0)\n    test 452 auxIsometric(-61): -61.0\n    test 453 name: auxIsometric\n    test 454 inverse: lat (-61.0)\n    test 455 auxParametric(-61): -61.0\n    test 456 name: auxParametric\n    test 457 inverse: lat (-61.0)\n    test 458 auxGeocentric(-61): -61.0\n    test 459 name: auxGeocentric\n    test 460 inverse: lat (-61.0)\n    test 461 auxGeocentric(-61, height=1.0e+06): -61.0\n    test 462 name: auxGeocentric\n    test 463 inverse: lat (-61.0)\n    test 464 auxAuthalic(-32): -32.0\n    test 465 name: auxAuthalic\n    test 466 inverse: lat (-32.0)\n    test 467 auxConformal(-32): -32.0\n    test 468 name: auxConformal\n    test 469 inverse: lat (-32.0)\n    test 470 auxRectifying(-32): -32.0\n    test 471 name: auxRectifying\n    test 472 inverse: lat (-32.0)\n    test 473 auxIsometric(-32): -32.0\n    test 474 name: auxIsometric\n    test 475 inverse: lat (-32.0)\n    test 476 auxParametric(-32): -32.0\n    test 477 name: auxParametric\n    test 478 inverse: lat (-32.0)\n    test 479 auxGeocentric(-32): -32.0\n    test 480 name: auxGeocentric\n    test 481 inverse: lat (-32.0)\n    test 482 auxGeocentric(-32, height=1.0e+06): -32.0\n    test 483 name: auxGeocentric\n    test 484 inverse: lat (-32.0)\n    test 485 auxAuthalic(-3): -3.0\n    test 486 name: auxAuthalic\n    test 487 inverse: lat (-3.0)\n    test 488 auxConformal(-3): -3.0\n    test 489 name: auxConformal\n    test 490 inverse: lat (-3.0)\n    test 491 auxRectifying(-3): -3.0\n    test 492 name: auxRectifying\n    test 493 inverse: lat (-3.0)\n    test 494 auxIsometric(-3): -3.0\n    test 495 name: auxIsometric\n    test 496 inverse: lat (-3.0)\n    test 497 auxParametric(-3): -3.0\n    test 498 name: auxParametric\n    test 499 inverse: lat (-3.0)\n    test 500 auxGeocentric(-3): -3.0\n    test 501 name: auxGeocentric\n    test 502 inverse: lat (-3.0)\n    test 503 auxGeocentric(-3, height=1.0e+06): -3.0\n    test 504 name: auxGeocentric\n    test 505 inverse: lat (-3.0)\n    test 506 auxAuthalic(26): 26.0\n    test 507 name: auxAuthalic\n    test 508 inverse: lat (26.0)\n    test 509 auxConformal(26): 26.0\n    test 510 name: auxConformal\n    test 511 inverse: lat (26.0)\n    test 512 auxRectifying(26): 26.0\n    test 513 name: auxRectifying\n    test 514 inverse: lat (26.0)\n    test 515 auxIsometric(26): 26.0\n    test 516 name: auxIsometric\n    test 517 inverse: lat (26.0)\n    test 518 auxParametric(26): 26.0\n    test 519 name: auxParametric\n    test 520 inverse: lat (26.0)\n    test 521 auxGeocentric(26): 26.0\n    test 522 name: auxGeocentric\n    test 523 inverse: lat (26.0)\n    test 524 auxGeocentric(26, height=1.0e+06): 26.0\n    test 525 name: auxGeocentric\n    test 526 inverse: lat (26.0)\n    test 527 auxAuthalic(55): 55.0\n    test 528 name: auxAuthalic\n    test 529 inverse: lat (55.0)\n    test 530 auxConformal(55): 55.0\n    test 531 name: auxConformal\n    test 532 inverse: lat (55.0)\n    test 533 auxRectifying(55): 55.0\n    test 534 name: auxRectifying\n    test 535 inverse: lat (55.0)\n    test 536 auxIsometric(55): 55.0\n    test 537 name: auxIsometric\n    test 538 inverse: lat (55.0)\n    test 539 auxParametric(55): 55.0\n    test 540 name: auxParametric\n    test 541 inverse: lat (55.0)\n    test 542 auxGeocentric(55): 55.0\n    test 543 name: auxGeocentric\n    test 544 inverse: lat (55.0)\n    test 545 auxGeocentric(55, height=1.0e+06): 55.0\n    test 546 name: auxGeocentric\n    test 547 inverse: lat (55.0)\n    test 548 auxAuthalic(84): 84.0\n    test 549 name: auxAuthalic\n    test 550 inverse: lat (84.0)\n    test 551 auxConformal(84): 84.0\n    test 552 name: auxConformal\n    test 553 inverse: lat (84.0)\n    test 554 auxRectifying(84): 84.0\n    test 555 name: auxRectifying\n    test 556 inverse: lat (84.0)\n    test 557 auxIsometric(84): 84.0\n    test 558 name: auxIsometric\n    test 559 inverse: lat (84.0)\n    test 560 auxParametric(84): 84.0\n    test 561 name: auxParametric\n    test 562 inverse: lat (84.0)\n    test 563 auxGeocentric(84): 84.0\n    test 564 name: auxGeocentric\n    test 565 inverse: lat (84.0)\n    test 566 auxGeocentric(84, height=1.0e+06): 84.0\n    test 567 name: auxGeocentric\n    test 568 inverse: lat (84.0)\n\n    testFlattenings(pygeodesy.ellipsoids, 26.03.25)\n    test 569 all: all\n    test 570 _TOL: 1.4901161193847657e-09\n\n    test 571 Airy1830.f_ - 1 / .f: 0.0\n    test 572 Airy1830.f - 1 / .f_: 0.0\n\n    test 573 AiryModified.f_ - 1 / .f: 0.0\n    test 574 AiryModified.f - 1 / .f_: 0.0\n\n    test 575 ATS1977.f_ - 1 / .f: 0.0\n    test 576 ATS1977.f - 1 / .f_: 0.0\n\n    test 577 Australia1966.f_ - 1 / .f: 0.0\n    test 578 Australia1966.f - 1 / .f_: 0.0\n\n    test 579 Bessel1841.f_ - 1 / .f: -3.6334313335828483e-10\n    test 580 Bessel1841.f - 1 / .f_: -4.060120295523717e-15\n\n    test 581 BesselModified.f_ - 1 / .f: 0.0\n    test 582 BesselModified.f - 1 / .f_: 0.0\n\n    test 583 CGCS2000.f_ - 1 / .f: 0.0\n    test 584 CGCS2000.f - 1 / .f_: 0.0\n\n    test 585 Clarke1866.f_ - 1 / .f: 1.0180656317970715e-10\n    test 586 Clarke1866.f - 1 / .f_: 1.1700709845463564e-15\n\n    test 587 Clarke1880.f_ - 1 / .f: -6.275513442233205e-11\n    test 588 Clarke1880.f - 1 / .f_: -7.28583859910259e-16\n\n    test 589 Clarke1880IGN.f_ - 1 / .f: 3.73063357983483e-10\n    test 590 Clarke1880IGN.f - 1 / .f_: 4.3320382003830815e-15\n\n    test 591 Clarke1880Mod.f_ - 1 / .f: 6.866684998385608e-11\n    test 592 Clarke1880Mod.f - 1 / .f_: 7.971054372113429e-16\n\n    test 593 CPM1799.f_ - 1 / .f: -4.774847184307873e-11\n    test 594 CPM1799.f - 1 / .f_: -4.2674197509029455e-16\n\n    test 595 Delambre1810.f_ - 1 / .f: 6.008349373587407e-11\n    test 596 Delambre1810.f - 1 / .f_: 6.192962809237201e-16\n\n    test 597 Engelis1985.f_ - 1 / .f: 3.171862772433087e-11\n    test 598 Engelis1985.f - 1 / .f_: 3.5691935518222806e-16\n\n    test 599 Everest1969.f_ - 1 / .f: -1.0334133548894897e-10\n    test 600 Everest1969.f - 1 / .f_: -1.1418817280617333e-15\n\n    test 601 Everest1975.f_ - 1 / .f: 2.1088908397359774e-11\n    test 602 Everest1975.f - 1 / .f_: 2.3288662664988635e-16\n\n    test 603 Fisher1968.f_ - 1 / .f: 6.394884621840902e-11\n    test 604 Fisher1968.f - 1 / .f_: 7.186091999233923e-16\n\n    test 605 GEM10C.f_ - 1 / .f: 3.501554601825774e-11\n    test 606 GEM10C.f - 1 / .f_: 3.937822290467352e-16\n\n    test 607 GRS67.f_ - 1 / .f: 0.0\n    test 608 GRS67.f - 1 / .f_: 0.0\n\n    test 609 GRS80.f_ - 1 / .f: 5.7980287238024175e-12\n    test 610 GRS80.f - 1 / .f_: 6.505213034913027e-17\n\n    test 611 Helmert1906.f_ - 1 / .f: 1.944044925039634e-11\n    test 612 Helmert1906.f - 1 / .f_: 2.185751579730777e-16\n\n    test 613 IAU76.f_ - 1 / .f: 0.0\n    test 614 IAU76.f - 1 / .f_: 0.0\n\n    test 615 IERS1989.f_ - 1 / .f: 0.0\n    test 616 IERS1989.f - 1 / .f_: 0.0\n\n    test 617 IERS1992TOPEX.f_ - 1 / .f: -4.746425474877469e-11\n    test 618 IERS1992TOPEX.f - 1 / .f_: -5.334274688628682e-16\n\n    test 619 IERS2003.f_ - 1 / .f: -3.6777692002942786e-11\n    test 620 IERS2003.f - 1 / .f_: -4.137315490204685e-16\n\n    test 621 Intl1924.f_ - 1 / .f: 0.0\n    test 622 Intl1924.f - 1 / .f_: 0.0\n\n    test 623 Intl1967.f_ - 1 / .f: -1.3528733688872308e-11\n    test 624 Intl1967.f - 1 / .f_: -1.5222198501696482e-16\n\n    test 625 Krassovski1940.f_ - 1 / .f: -3.8767211663071066e-11\n    test 626 Krassovski1940.f - 1 / .f_: -4.358492733391728e-16\n\n    test 627 Krassowsky1940.f_ - 1 / .f: -3.8767211663071066e-11\n    test 628 Krassowsky1940.f - 1 / .f_: -4.358492733391728e-16\n\n    test 629 Maupertuis1738.f_ - 1 / .f: 1.5347723092418164e-11\n    test 630 Maupertuis1738.f - 1 / .f_: 4.206704429243757e-16\n\n    test 631 Mercury1960.f_ - 1 / .f: -4.803268893738277e-11\n    test 632 Mercury1960.f - 1 / .f_: -5.39499001028787e-16\n\n    test 633 Mercury1968Mod.f_ - 1 / .f: 6.394884621840902e-11\n    test 634 Mercury1968Mod.f - 1 / .f_: 7.186091999233923e-16\n\n    test 635 NWL1965.f_ - 1 / .f: 5.32054400537163e-11\n    test 636 NWL1965.f - 1 / .f_: 5.980459183430042e-16\n\n    test 637 OSU86F.f_ - 1 / .f: 1.460875864722766e-11\n    test 638 OSU86F.f - 1 / .f_: 1.6436504934880247e-16\n\n    test 639 OSU91A.f_ - 1 / .f: -2.2737367544323206e-12\n    test 640 OSU91A.f - 1 / .f_: -2.5587171270657905e-17\n\n    test 641 Plessis1817.f_ - 1 / .f: 4.2234660213580355e-11\n    test 642 Plessis1817.f - 1 / .f_: 4.432218481120742e-16\n\n    test 643 Prolate.f_ - 1 / .f: 0.0\n    test 644 Prolate.f - 1 / .f_: 0.0\n\n    test 645 PZ90.f_ - 1 / .f: 0.0\n    test 646 PZ90.f - 1 / .f_: 0.0\n\n    test 647 SGS85.f_ - 1 / .f: 1.659827830735594e-11\n    test 648 SGS85.f - 1 / .f_: 1.8691645453650096e-16\n\n    test 649 SoAmerican1969.f_ - 1 / .f: -5.6843418860808015e-11\n    test 650 SoAmerican1969.f - 1 / .f_: -6.388119200284592e-16\n\n    test 651 Struve1860.f_ - 1 / .f: 1.9042545318370685e-11\n    test 652 Struve1860.f - 1 / .f_: 2.194425197110661e-16\n\n    test 653 WGS60.f_ - 1 / .f: -5.076117304270156e-11\n    test 654 WGS60.f - 1 / .f_: -5.702903427273753e-16\n\n    test 655 WGS66.f_ - 1 / .f: 5.32054400537163e-11\n    test 656 WGS66.f - 1 / .f_: 5.980459183430042e-16\n\n    test 657 WGS72.f_ - 1 / .f: 0.0\n    test 658 WGS72.f - 1 / .f_: 0.0\n\n    test 659 WGS84.f_ - 1 / .f: 0.0\n    test 660 WGS84.f - 1 / .f_: 0.0\n\n    test 661 WGS84_NGS.f_ - 1 / .f: 0.0\n    test 662 WGS84_NGS.f - 1 / .f_: 0.0\n\n    testEllipsoid2(pygeodesy.ellipsoids, 26.03.25)\n    test 663 _2_Airy1830: a=6377563.396, f=0.0033409, f_=299.3249646, b=6356256.9092373\n    test 664 _2_AiryModified: a=6377340.189, f=0.0033409, f_=299.3249646, b=6356034.4479385\n    test 665 _2_ATS1977: a=6378135, f=0.0033528, f_=298.257, b=6356750.3049216\n    test 666 _2_Australia1966: a=6378160, f=0.0033529, f_=298.25, b=6356774.7191953\n    test 667 _2_Bessel1841: a=6377397.155, f=0.0033428, f_=299.1528128, b=6356078.962818\n    test 668 _2_BesselModified: a=6377492.018, f=0.0033428, f_=299.1528128, b=6356173.5087127\n    test 669 _2_CGCS2000: a=6378137, f=0.0033528, f_=298.2572221, b=6356752.3141404\n    test 670 _2_Clarke1866: a=6378206.4, f=0.0033901, f_=294.9786982, b=6356583.8\n    test 671 _2_Clarke1880: a=6378249.145, f=0.0034076, f_=293.465, b=6356514.8695498\n    test 672 _2_Clarke1880IGN: a=6378249.2, f=0.0034075, f_=293.4660213, b=6356515\n    test 673 _2_Clarke1880Mod: a=6378249.145, f=0.0034075, f_=293.4663077, b=6356514.9663955\n    test 674 _2_CPM1799: a=6375738.7, f=0.0029905, f_=334.39, b=6356671.9255749\n    test 675 _2_Delambre1810: a=6376428, f=0.0032103, f_=311.5, b=6355957.9261637\n    test 676 _2_Engelis1985: a=6378136.05, f=0.0033528, f_=298.2566, b=6356751.3227215\n    test 677 _2_Everest1969: a=6377295.664, f=0.0033244, f_=300.8017, b=6356094.667915\n    test 678 _2_Everest1975: a=6377299.151, f=0.0033244, f_=300.8017255, b=6356098.1451201\n    test 679 _2_Fisher1968: a=6378150, f=0.0033523, f_=298.3, b=6356768.3372444\n    test 680 _2_GEM10C: a=6378137, f=0.0033528, f_=298.2572236, b=6356752.3142478\n    test 681 _2_GPES: a=6378135, f=0, f_=0, b=6378135\n    test 682 _2_GRS67: a=6378160, f=0.0033529, f_=298.2471674, b=6356774.5160907\n    test 683 _2_GRS80: a=6378137, f=0.0033528, f_=298.2572221, b=6356752.3141403\n    test 684 _2_Helmert1906: a=6378200, f=0.0033523, f_=298.3, b=6356818.1696279\n    test 685 _2_IAU76: a=6378140, f=0.0033528, f_=298.257, b=6356755.2881575\n    test 686 _2_IERS1989: a=6378136, f=0.0033528, f_=298.257, b=6356751.3015688\n    test 687 _2_IERS1992TOPEX: a=6378136.3, f=0.0033528, f_=298.2572236, b=6356751.6165922\n    test 688 _2_IERS2003: a=6378136.6, f=0.0033528, f_=298.25642, b=6356751.8579716\n    test 689 _2_Intl1924: a=6378388, f=0.003367, f_=297, b=6356911.9461279\n    test 690 _2_Intl1967: a=6378157.5, f=0.0033529, f_=298.2496154, b=6356772.2\n    test 691 _2_Krassovski1940: a=6378245, f=0.0033523, f_=298.3, b=6356863.0187731\n    test 692 _2_Krassowsky1940: a=6378245, f=0.0033523, f_=298.3, b=6356863.0187731\n    test 693 _2_Maupertuis1738: a=6397300, f=0.0052356, f_=191, b=6363806.2827225\n    test 694 _2_Mercury1960: a=6378166, f=0.0033523, f_=298.3, b=6356784.2836071\n    test 695 _2_Mercury1968Mod: a=6378150, f=0.0033523, f_=298.3, b=6356768.3372444\n    test 696 _2_NWL1965: a=6378145, f=0.0033529, f_=298.25, b=6356759.7694887\n    test 697 _2_OSU86F: a=6378136.2, f=0.0033528, f_=298.2572236, b=6356751.5169301\n    test 698 _2_OSU91A: a=6378136.3, f=0.0033528, f_=298.2572236, b=6356751.6165948\n    test 699 _2_Plessis1817: a=6376523, f=0.00324, f_=308.64, b=6355862.9332556\n    test 700 _2_Prolate: a=6356752.3142452, f=-0.0033641, f_=-297.2572236, b=6378137\n    test 701 _2_PZ90: a=6378136, f=0.0033528, f_=298.2578393, b=6356751.3617457\n    test 702 _2_SGS85: a=6378136, f=0.0033528, f_=298.257, b=6356751.3015688\n    test 703 _2_SoAmerican1969: a=6378160, f=0.0033529, f_=298.25, b=6356774.7191953\n    test 704 _2_Sphere: a=6371008.771415, f=0, f_=0, b=6371008.771415\n    test 705 _2_SphereAuthalic: a=6371000, f=0, f_=0, b=6371000\n    test 706 _2_SpherePopular: a=6378137, f=0, f_=0, b=6378137\n    test 707 _2_Struve1860: a=6378298.3, f=0.0033929, f_=294.73, b=6356657.1426696\n    test 708 _2_WGS60: a=6378165, f=0.0033523, f_=298.3, b=6356783.2869594\n    test 709 _2_WGS66: a=6378145, f=0.0033529, f_=298.25, b=6356759.7694887\n    test 710 _2_WGS72: a=6378135, f=0.0033528, f_=298.26, b=6356750.5200161\n    test 711 _2_WGS84: a=6378137, f=0.0033528, f_=298.2572236, b=6356752.3142452\n    test 712 _2_WGS84_NGS: a=6378137, f=0.0033528, f_=298.2572221, b=6356752.3141403\n\n    testa_f2Tuple(pygeodesy.ellipsoids, 26.03.25)\n    test 713 a_b_Airy1830: a=6377563.396, f=0.0033409, f_=299.3249646, b=6356256.9092373\n    test 714 a_b_AiryModified: a=6377340.189, f=0.0033409, f_=299.3249646, b=6356034.4479385\n    test 715 a_b_ATS1977: a=6378135, f=0.0033528, f_=298.257, b=6356750.3049216\n    test 716 a_b_Australia1966: a=6378160, f=0.0033529, f_=298.25, b=6356774.7191953\n    test 717 a_b_Bessel1841: a=6377397.155, f=0.0033428, f_=299.1528128, b=6356078.962818\n    test 718 a_b_BesselModified: a=6377492.018, f=0.0033428, f_=299.1528128, b=6356173.5087127\n    test 719 a_b_CGCS2000: a=6378137, f=0.0033528, f_=298.2572221, b=6356752.3141404\n    test 720 a_b_Clarke1866: a=6378206.4, f=0.0033901, f_=294.9786982, b=6356583.8\n    test 721 a_b_Clarke1880: a=6378249.145, f=0.0034076, f_=293.465, b=6356514.8695498\n    test 722 a_b_Clarke1880IGN: a=6378249.2, f=0.0034075, f_=293.4660213, b=6356515\n    test 723 a_b_Clarke1880Mod: a=6378249.145, f=0.0034075, f_=293.4663077, b=6356514.9663955\n    test 724 a_b_CPM1799: a=6375738.7, f=0.0029905, f_=334.39, b=6356671.9255749\n    test 725 a_b_Delambre1810: a=6376428, f=0.0032103, f_=311.5, b=6355957.9261637\n    test 726 a_b_Engelis1985: a=6378136.05, f=0.0033528, f_=298.2566, b=6356751.3227215\n    test 727 a_b_Everest1969: a=6377295.664, f=0.0033244, f_=300.8017, b=6356094.667915\n    test 728 a_b_Everest1975: a=6377299.151, f=0.0033244, f_=300.8017255, b=6356098.1451201\n    test 729 a_b_Fisher1968: a=6378150, f=0.0033523, f_=298.3, b=6356768.3372444\n    test 730 a_b_GEM10C: a=6378137, f=0.0033528, f_=298.2572236, b=6356752.3142478\n    test 731 a_b_GPES: a=6378135, f=0, f_=0, b=6378135\n    test 732 a_b_GRS67: a=6378160, f=0.0033529, f_=298.2471674, b=6356774.5160907\n    test 733 a_b_GRS80: a=6378137, f=0.0033528, f_=298.2572221, b=6356752.3141403\n    test 734 a_b_Helmert1906: a=6378200, f=0.0033523, f_=298.3, b=6356818.1696279\n    test 735 a_b_IAU76: a=6378140, f=0.0033528, f_=298.257, b=6356755.2881575\n    test 736 a_b_IERS1989: a=6378136, f=0.0033528, f_=298.257, b=6356751.3015688\n    test 737 a_b_IERS1992TOPEX: a=6378136.3, f=0.0033528, f_=298.2572236, b=6356751.6165922\n    test 738 a_b_IERS2003: a=6378136.6, f=0.0033528, f_=298.25642, b=6356751.8579716\n    test 739 a_b_Intl1924: a=6378388, f=0.003367, f_=297, b=6356911.9461279\n    test 740 a_b_Intl1967: a=6378157.5, f=0.0033529, f_=298.2496154, b=6356772.2\n    test 741 a_b_Krassovski1940: a=6378245, f=0.0033523, f_=298.3, b=6356863.0187731\n    test 742 a_b_Krassowsky1940: a=6378245, f=0.0033523, f_=298.3, b=6356863.0187731\n    test 743 a_b_Maupertuis1738: a=6397300, f=0.0052356, f_=191, b=6363806.2827225\n    test 744 a_b_Mercury1960: a=6378166, f=0.0033523, f_=298.3, b=6356784.2836071\n    test 745 a_b_Mercury1968Mod: a=6378150, f=0.0033523, f_=298.3, b=6356768.3372444\n    test 746 a_b_NWL1965: a=6378145, f=0.0033529, f_=298.25, b=6356759.7694887\n    test 747 a_b_OSU86F: a=6378136.2, f=0.0033528, f_=298.2572236, b=6356751.5169301\n    test 748 a_b_OSU91A: a=6378136.3, f=0.0033528, f_=298.2572236, b=6356751.6165948\n    test 749 a_b_Plessis1817: a=6376523, f=0.00324, f_=308.64, b=6355862.9332556\n    test 750 a_b_Prolate: a=6356752.3142452, f=-0.0033641, f_=-297.2572236, b=6378137\n    test 751 a_b_PZ90: a=6378136, f=0.0033528, f_=298.2578393, b=6356751.3617457\n    test 752 a_b_SGS85: a=6378136, f=0.0033528, f_=298.257, b=6356751.3015688\n    test 753 a_b_SoAmerican1969: a=6378160, f=0.0033529, f_=298.25, b=6356774.7191953\n    test 754 a_b_Sphere: a=6371008.771415, f=0, f_=0, b=6371008.771415\n    test 755 a_b_SphereAuthalic: a=6371000, f=0, f_=0, b=6371000\n    test 756 a_b_SpherePopular: a=6378137, f=0, f_=0, b=6378137\n    test 757 a_b_Struve1860: a=6378298.3, f=0.0033929, f_=294.73, b=6356657.1426696\n    test 758 a_b_WGS60: a=6378165, f=0.0033523, f_=298.3, b=6356783.2869594\n    test 759 a_b_WGS66: a=6378145, f=0.0033529, f_=298.25, b=6356759.7694887\n    test 760 a_b_WGS72: a=6378135, f=0.0033528, f_=298.26, b=6356750.5200161\n    test 761 a_b_WGS84: a=6378137, f=0.0033528, f_=298.2572236, b=6356752.3142452\n    test 762 a_b_WGS84_NGS: a=6378137, f=0.0033528, f_=298.2572221, b=6356752.3141403\n    test 763 _a_f_ellipsoid: a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518\n    test 764 _toEllipsoid2: a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518\n\n    testFunctions(pygeodesy.ellipsoids, 26.03.25)\n\n    test 765 a_b2f_(Airy1830): 299.32496460\n    test 766 a_b2f2(Airy1830): 0.00335205\n    test 767 a_b2n(Airy1830): 0.00167322\n    test 768 b_f2a(Airy1830): 6377563.396\n    test 769 b_f_2a(Airy1830): 6377563.396\n    test 770 f_2f(Airy1830): 0.00334085\n    test 771 e2f(Airy1830): 0.00334085\n    test 772 n2e2(Airy1830): 0.00667054\n    test 773 n2f(Airy1830): 0.00334085\n\n    test 774 a_b2f_(AiryModified): 299.32496460\n    test 775 a_b2f2(AiryModified): 0.00335205\n    test 776 a_b2n(AiryModified): 0.00167322\n    test 777 b_f2a(AiryModified): 6377340.189\n    test 778 b_f_2a(AiryModified): 6377340.189\n    test 779 f_2f(AiryModified): 0.00334085\n    test 780 e2f(AiryModified): 0.00334085\n    test 781 n2e2(AiryModified): 0.00667054\n    test 782 n2f(AiryModified): 0.00334085\n\n    test 783 a_b2f_(ATS1977): 298.25700000\n    test 784 a_b2f2(ATS1977): 0.00336409\n    test 785 a_b2n(ATS1977): 0.00167922\n    test 786 b_f2a(ATS1977): 6378135.000\n    test 787 b_f_2a(ATS1977): 6378135.000\n    test 788 f_2f(ATS1977): 0.00335281\n    test 789 e2f(ATS1977): 0.00335281\n    test 790 n2e2(ATS1977): 0.00669438\n    test 791 n2f(ATS1977): 0.00335281\n\n    test 792 a_b2f_(Australia1966): 298.25000000\n    test 793 a_b2f2(Australia1966): 0.00336417\n    test 794 a_b2n(Australia1966): 0.00167926\n    test 795 b_f2a(Australia1966): 6378160.000\n    test 796 b_f_2a(Australia1966): 6378160.000\n    test 797 f_2f(Australia1966): 0.00335289\n    test 798 e2f(Australia1966): 0.00335289\n    test 799 n2e2(Australia1966): 0.00669454\n    test 800 n2f(Australia1966): 0.00335289\n\n    test 801 a_b2f_(Bessel1841): 299.15281280\n    test 802 a_b2f2(Bessel1841): 0.00335398\n    test 803 a_b2n(Bessel1841): 0.00167418\n    test 804 b_f2a(Bessel1841): 6377397.155\n    test 805 b_f_2a(Bessel1841): 6377397.155\n    test 806 f_2f(Bessel1841): 0.00334277\n    test 807 e2f(Bessel1841): 0.00334277\n    test 808 n2e2(Bessel1841): 0.00667437\n    test 809 n2f(Bessel1841): 0.00334277\n\n    test 810 a_b2f_(BesselModified): 299.15281280\n    test 811 a_b2f2(BesselModified): 0.00335398\n    test 812 a_b2n(BesselModified): 0.00167418\n    test 813 b_f2a(BesselModified): 6377492.018\n    test 814 b_f_2a(BesselModified): 6377492.018\n    test 815 f_2f(BesselModified): 0.00334277\n    test 816 e2f(BesselModified): 0.00334277\n    test 817 n2e2(BesselModified): 0.00667437\n    test 818 n2f(BesselModified): 0.00334277\n\n    test 819 a_b2f_(CGCS2000): 298.25722210\n    test 820 a_b2f2(CGCS2000): 0.00336409\n    test 821 a_b2n(CGCS2000): 0.00167922\n    test 822 b_f2a(CGCS2000): 6378137.000\n    test 823 b_f_2a(CGCS2000): 6378137.000\n    test 824 f_2f(CGCS2000): 0.00335281\n    test 825 e2f(CGCS2000): 0.00335281\n    test 826 n2e2(CGCS2000): 0.00669438\n    test 827 n2f(CGCS2000): 0.00335281\n\n    test 828 a_b2f_(Clarke1866): 294.97869821\n    test 829 a_b2f2(Clarke1866): 0.00340161\n    test 830 a_b2n(Clarke1866): 0.00169792\n    test 831 b_f2a(Clarke1866): 6378206.400\n    test 832 b_f_2a(Clarke1866): 6378206.400\n    test 833 f_2f(Clarke1866): 0.00339008\n    test 834 e2f(Clarke1866): 0.00339008\n    test 835 n2e2(Clarke1866): 0.00676866\n    test 836 n2f(Clarke1866): 0.00339008\n\n    test 837 a_b2f_(Clarke1880): 293.46500000\n    test 838 a_b2f2(Clarke1880): 0.00341921\n    test 839 a_b2n(Clarke1880): 0.00170669\n    test 840 b_f2a(Clarke1880): 6378249.145\n    test 841 b_f_2a(Clarke1880): 6378249.145\n    test 842 f_2f(Clarke1880): 0.00340756\n    test 843 e2f(Clarke1880): 0.00340756\n    test 844 n2e2(Clarke1880): 0.00680351\n    test 845 n2f(Clarke1880): 0.00340756\n\n    test 846 a_b2f_(Clarke1880IGN): 293.46602129\n    test 847 a_b2f2(Clarke1880IGN): 0.00341920\n    test 848 a_b2n(Clarke1880IGN): 0.00170668\n    test 849 b_f2a(Clarke1880IGN): 6378249.200\n    test 850 b_f_2a(Clarke1880IGN): 6378249.200\n    test 851 f_2f(Clarke1880IGN): 0.00340755\n    test 852 e2f(Clarke1880IGN): 0.00340755\n    test 853 n2e2(Clarke1880IGN): 0.00680349\n    test 854 n2f(Clarke1880IGN): 0.00340755\n\n    test 855 a_b2f_(Clarke1880Mod): 293.46630766\n    test 856 a_b2f2(Clarke1880Mod): 0.00341920\n    test 857 a_b2n(Clarke1880Mod): 0.00170668\n    test 858 b_f2a(Clarke1880Mod): 6378249.145\n    test 859 b_f_2a(Clarke1880Mod): 6378249.145\n    test 860 f_2f(Clarke1880Mod): 0.00340755\n    test 861 e2f(Clarke1880Mod): 0.00340755\n    test 862 n2e2(Clarke1880Mod): 0.00680348\n    test 863 n2f(Clarke1880Mod): 0.00340755\n\n    test 864 a_b2f_(CPM1799): 334.39000000\n    test 865 a_b2f2(CPM1799): 0.00299949\n    test 866 a_b2n(CPM1799): 0.00149750\n    test 867 b_f2a(CPM1799): 6375738.700\n    test 868 b_f_2a(CPM1799): 6375738.700\n    test 869 f_2f(CPM1799): 0.00299052\n    test 870 e2f(CPM1799): 0.00299052\n    test 871 n2e2(CPM1799): 0.00597210\n    test 872 n2f(CPM1799): 0.00299052\n\n    test 873 a_b2f_(Delambre1810): 311.50000000\n    test 874 a_b2f2(Delambre1810): 0.00322061\n    test 875 a_b2n(Delambre1810): 0.00160772\n    test 876 b_f2a(Delambre1810): 6376428.000\n    test 877 b_f_2a(Delambre1810): 6376428.000\n    test 878 f_2f(Delambre1810): 0.00321027\n    test 879 e2f(Delambre1810): 0.00321027\n    test 880 n2e2(Delambre1810): 0.00641024\n    test 881 n2f(Delambre1810): 0.00321027\n\n    test 882 a_b2f_(Engelis1985): 298.25660000\n    test 883 a_b2f2(Engelis1985): 0.00336410\n    test 884 a_b2n(Engelis1985): 0.00167922\n    test 885 b_f2a(Engelis1985): 6378136.050\n    test 886 b_f_2a(Engelis1985): 6378136.050\n    test 887 f_2f(Engelis1985): 0.00335282\n    test 888 e2f(Engelis1985): 0.00335282\n    test 889 n2e2(Engelis1985): 0.00669439\n    test 890 n2f(Engelis1985): 0.00335282\n\n    test 891 a_b2f_(Everest1969): 300.80170000\n    test 892 a_b2f2(Everest1969): 0.00333554\n    test 893 a_b2n(Everest1969): 0.00166499\n    test 894 b_f2a(Everest1969): 6377295.664\n    test 895 b_f_2a(Everest1969): 6377295.664\n    test 896 f_2f(Everest1969): 0.00332445\n    test 897 e2f(Everest1969): 0.00332445\n    test 898 n2e2(Everest1969): 0.00663785\n    test 899 n2f(Everest1969): 0.00332445\n\n    test 900 a_b2f_(Everest1975): 300.80172550\n    test 901 a_b2f2(Everest1975): 0.00333554\n    test 902 a_b2n(Everest1975): 0.00166499\n    test 903 b_f2a(Everest1975): 6377299.151\n    test 904 b_f_2a(Everest1975): 6377299.151\n    test 905 f_2f(Everest1975): 0.00332445\n    test 906 e2f(Everest1975): 0.00332445\n    test 907 n2e2(Everest1975): 0.00663785\n    test 908 n2f(Everest1975): 0.00332445\n\n    test 909 a_b2f_(Fisher1968): 298.30000000\n    test 910 a_b2f2(Fisher1968): 0.00336361\n    test 911 a_b2n(Fisher1968): 0.00167898\n    test 912 b_f2a(Fisher1968): 6378150.000\n    test 913 b_f_2a(Fisher1968): 6378150.000\n    test 914 f_2f(Fisher1968): 0.00335233\n    test 915 e2f(Fisher1968): 0.00335233\n    test 916 n2e2(Fisher1968): 0.00669342\n    test 917 n2f(Fisher1968): 0.00335233\n\n    test 918 a_b2f_(GEM10C): 298.25722360\n    test 919 a_b2f2(GEM10C): 0.00336409\n    test 920 a_b2n(GEM10C): 0.00167922\n    test 921 b_f2a(GEM10C): 6378137.000\n    test 922 b_f_2a(GEM10C): 6378137.000\n    test 923 f_2f(GEM10C): 0.00335281\n    test 924 e2f(GEM10C): 0.00335281\n    test 925 n2e2(GEM10C): 0.00669438\n    test 926 n2f(GEM10C): 0.00335281\n\n    test 927 a_b2f_(GPES): 0.00000000\n    test 928 a_b2f2(GPES): 0.00000000\n    test 929 a_b2n(GPES): 0.00000000\n    test 930 b_f2a(GPES): 6378135.000\n    test 931 b_f_2a(GPES): 6378135.000\n    test 932 f_2f(GPES): 0.00000000\n    test 933 e2f(GPES): 0.00000000\n    test 934 n2e2(GPES): 0.00000000\n    test 935 n2f(GPES): 0.00000000\n\n    test 936 a_b2f_(GRS67): 298.24716743\n    test 937 a_b2f2(GRS67): 0.00336420\n    test 938 a_b2n(GRS67): 0.00167928\n    test 939 b_f2a(GRS67): 6378160.000\n    test 940 b_f_2a(GRS67): 6378160.000\n    test 941 f_2f(GRS67): 0.00335292\n    test 942 e2f(GRS67): 0.00335292\n    test 943 n2e2(GRS67): 0.00669461\n    test 944 n2f(GRS67): 0.00335292\n\n    test 945 a_b2f_(GRS80): 298.25722210\n    test 946 a_b2f2(GRS80): 0.00336409\n    test 947 a_b2n(GRS80): 0.00167922\n    test 948 b_f2a(GRS80): 6378137.000\n    test 949 b_f_2a(GRS80): 6378137.000\n    test 950 f_2f(GRS80): 0.00335281\n    test 951 e2f(GRS80): 0.00335281\n    test 952 n2e2(GRS80): 0.00669438\n    test 953 n2f(GRS80): 0.00335281\n\n    test 954 a_b2f_(Helmert1906): 298.30000000\n    test 955 a_b2f2(Helmert1906): 0.00336361\n    test 956 a_b2n(Helmert1906): 0.00167898\n    test 957 b_f2a(Helmert1906): 6378200.000\n    test 958 b_f_2a(Helmert1906): 6378200.000\n    test 959 f_2f(Helmert1906): 0.00335233\n    test 960 e2f(Helmert1906): 0.00335233\n    test 961 n2e2(Helmert1906): 0.00669342\n    test 962 n2f(Helmert1906): 0.00335233\n\n    test 963 a_b2f_(IAU76): 298.25700000\n    test 964 a_b2f2(IAU76): 0.00336409\n    test 965 a_b2n(IAU76): 0.00167922\n    test 966 b_f2a(IAU76): 6378140.000\n    test 967 b_f_2a(IAU76): 6378140.000\n    test 968 f_2f(IAU76): 0.00335281\n    test 969 e2f(IAU76): 0.00335281\n    test 970 n2e2(IAU76): 0.00669438\n    test 971 n2f(IAU76): 0.00335281\n\n    test 972 a_b2f_(IERS1989): 298.25700000\n    test 973 a_b2f2(IERS1989): 0.00336409\n    test 974 a_b2n(IERS1989): 0.00167922\n    test 975 b_f2a(IERS1989): 6378136.000\n    test 976 b_f_2a(IERS1989): 6378136.000\n    test 977 f_2f(IERS1989): 0.00335281\n    test 978 e2f(IERS1989): 0.00335281\n    test 979 n2e2(IERS1989): 0.00669438\n    test 980 n2f(IERS1989): 0.00335281\n\n    test 981 a_b2f_(IERS1992TOPEX): 298.25722356\n    test 982 a_b2f2(IERS1992TOPEX): 0.00336409\n    test 983 a_b2n(IERS1992TOPEX): 0.00167922\n    test 984 b_f2a(IERS1992TOPEX): 6378136.300\n    test 985 b_f_2a(IERS1992TOPEX): 6378136.300\n    test 986 f_2f(IERS1992TOPEX): 0.00335281\n    test 987 e2f(IERS1992TOPEX): 0.00335281\n    test 988 n2e2(IERS1992TOPEX): 0.00669438\n    test 989 n2f(IERS1992TOPEX): 0.00335281\n\n    test 990 a_b2f_(IERS2003): 298.25642000\n    test 991 a_b2f2(IERS2003): 0.00336410\n    test 992 a_b2n(IERS2003): 0.00167922\n    test 993 b_f2a(IERS2003): 6378136.600\n    test 994 b_f_2a(IERS2003): 6378136.600\n    test 995 f_2f(IERS2003): 0.00335282\n    test 996 e2f(IERS2003): 0.00335282\n    test 997 n2e2(IERS2003): 0.00669440\n    test 998 n2f(IERS2003): 0.00335282\n\n    test 999 a_b2f_(Intl1924): 297.00000000\n    test 1000 a_b2f2(Intl1924): 0.00337838\n    test 1001 a_b2n(Intl1924): 0.00168634\n    test 1002 b_f2a(Intl1924): 6378388.000\n    test 1003 b_f_2a(Intl1924): 6378388.000\n    test 1004 f_2f(Intl1924): 0.00336700\n    test 1005 e2f(Intl1924): 0.00336700\n    test 1006 n2e2(Intl1924): 0.00672267\n    test 1007 n2f(Intl1924): 0.00336700\n\n    test 1008 a_b2f_(Intl1967): 298.24961539\n    test 1009 a_b2f2(Intl1967): 0.00336418\n    test 1010 a_b2n(Intl1967): 0.00167926\n    test 1011 b_f2a(Intl1967): 6378157.500\n    test 1012 b_f_2a(Intl1967): 6378157.500\n    test 1013 f_2f(Intl1967): 0.00335290\n    test 1014 e2f(Intl1967): 0.00335290\n    test 1015 n2e2(Intl1967): 0.00669455\n    test 1016 n2f(Intl1967): 0.00335290\n\n    test 1017 a_b2f_(Krassovski1940): 298.30000000\n    test 1018 a_b2f2(Krassovski1940): 0.00336361\n    test 1019 a_b2n(Krassovski1940): 0.00167898\n    test 1020 b_f2a(Krassovski1940): 6378245.000\n    test 1021 b_f_2a(Krassovski1940): 6378245.000\n    test 1022 f_2f(Krassovski1940): 0.00335233\n    test 1023 e2f(Krassovski1940): 0.00335233\n    test 1024 n2e2(Krassovski1940): 0.00669342\n    test 1025 n2f(Krassovski1940): 0.00335233\n\n    test 1026 a_b2f_(Krassowsky1940): 298.30000000\n    test 1027 a_b2f2(Krassowsky1940): 0.00336361\n    test 1028 a_b2n(Krassowsky1940): 0.00167898\n    test 1029 b_f2a(Krassowsky1940): 6378245.000\n    test 1030 b_f_2a(Krassowsky1940): 6378245.000\n    test 1031 f_2f(Krassowsky1940): 0.00335233\n    test 1032 e2f(Krassowsky1940): 0.00335233\n    test 1033 n2e2(Krassowsky1940): 0.00669342\n    test 1034 n2f(Krassowsky1940): 0.00335233\n\n    test 1035 a_b2f_(Maupertuis1738): 191.00000000\n    test 1036 a_b2f2(Maupertuis1738): 0.00526316\n    test 1037 a_b2n(Maupertuis1738): 0.00262467\n    test 1038 b_f2a(Maupertuis1738): 6397300.000\n    test 1039 b_f_2a(Maupertuis1738): 6397300.000\n    test 1040 f_2f(Maupertuis1738): 0.00523560\n    test 1041 e2f(Maupertuis1738): 0.00523560\n    test 1042 n2e2(Maupertuis1738): 0.01044379\n    test 1043 n2f(Maupertuis1738): 0.00523560\n\n    test 1044 a_b2f_(Mercury1960): 298.30000000\n    test 1045 a_b2f2(Mercury1960): 0.00336361\n    test 1046 a_b2n(Mercury1960): 0.00167898\n    test 1047 b_f2a(Mercury1960): 6378166.000\n    test 1048 b_f_2a(Mercury1960): 6378166.000\n    test 1049 f_2f(Mercury1960): 0.00335233\n    test 1050 e2f(Mercury1960): 0.00335233\n    test 1051 n2e2(Mercury1960): 0.00669342\n    test 1052 n2f(Mercury1960): 0.00335233\n\n    test 1053 a_b2f_(Mercury1968Mod): 298.30000000\n    test 1054 a_b2f2(Mercury1968Mod): 0.00336361\n    test 1055 a_b2n(Mercury1968Mod): 0.00167898\n    test 1056 b_f2a(Mercury1968Mod): 6378150.000\n    test 1057 b_f_2a(Mercury1968Mod): 6378150.000\n    test 1058 f_2f(Mercury1968Mod): 0.00335233\n    test 1059 e2f(Mercury1968Mod): 0.00335233\n    test 1060 n2e2(Mercury1968Mod): 0.00669342\n    test 1061 n2f(Mercury1968Mod): 0.00335233\n\n    test 1062 a_b2f_(NWL1965): 298.25000000\n    test 1063 a_b2f2(NWL1965): 0.00336417\n    test 1064 a_b2n(NWL1965): 0.00167926\n    test 1065 b_f2a(NWL1965): 6378145.000\n    test 1066 b_f_2a(NWL1965): 6378145.000\n    test 1067 f_2f(NWL1965): 0.00335289\n    test 1068 e2f(NWL1965): 0.00335289\n    test 1069 n2e2(NWL1965): 0.00669454\n    test 1070 n2f(NWL1965): 0.00335289\n\n    test 1071 a_b2f_(OSU86F): 298.25722360\n    test 1072 a_b2f2(OSU86F): 0.00336409\n    test 1073 a_b2n(OSU86F): 0.00167922\n    test 1074 b_f2a(OSU86F): 6378136.200\n    test 1075 b_f_2a(OSU86F): 6378136.200\n    test 1076 f_2f(OSU86F): 0.00335281\n    test 1077 e2f(OSU86F): 0.00335281\n    test 1078 n2e2(OSU86F): 0.00669438\n    test 1079 n2f(OSU86F): 0.00335281\n\n    test 1080 a_b2f_(OSU91A): 298.25722360\n    test 1081 a_b2f2(OSU91A): 0.00336409\n    test 1082 a_b2n(OSU91A): 0.00167922\n    test 1083 b_f2a(OSU91A): 6378136.300\n    test 1084 b_f_2a(OSU91A): 6378136.300\n    test 1085 f_2f(OSU91A): 0.00335281\n    test 1086 e2f(OSU91A): 0.00335281\n    test 1087 n2e2(OSU91A): 0.00669438\n    test 1088 n2f(OSU91A): 0.00335281\n\n    test 1089 a_b2f_(Plessis1817): 308.64000000\n    test 1090 a_b2f2(Plessis1817): 0.00325055\n    test 1091 a_b2n(Plessis1817): 0.00162264\n    test 1092 b_f2a(Plessis1817): 6376523.000\n    test 1093 b_f_2a(Plessis1817): 6376523.000\n    test 1094 f_2f(Plessis1817): 0.00324002\n    test 1095 e2f(Plessis1817): 0.00324002\n    test 1096 n2e2(Plessis1817): 0.00646954\n    test 1097 n2f(Plessis1817): 0.00324002\n\n    test 1098 a_b2f_(Prolate): -297.25722356\n    test 1099 a_b2f2(Prolate): -0.00335281\n    test 1100 a_b2n(Prolate): -0.00167922\n    test 1101 b_f2a(Prolate): 6356752.314\n    test 1102 b_f_2a(Prolate): 6356752.314\n    test 1103 f_2f(Prolate): -0.00336409\n    test 1104 e2f(Prolate): 0.00337545  FAILED, KNOWN, expected -0.00336409\n    test 1105 n2e2(Prolate): -0.00673950\n    test 1106 n2f(Prolate): -0.00336409\n\n    test 1107 a_b2f_(PZ90): 298.25783930\n    test 1108 a_b2f2(PZ90): 0.00336408\n    test 1109 a_b2n(PZ90): 0.00167922\n    test 1110 b_f2a(PZ90): 6378136.000\n    test 1111 b_f_2a(PZ90): 6378136.000\n    test 1112 f_2f(PZ90): 0.00335280\n    test 1113 e2f(PZ90): 0.00335280\n    test 1114 n2e2(PZ90): 0.00669437\n    test 1115 n2f(PZ90): 0.00335280\n\n    test 1116 a_b2f_(SGS85): 298.25700000\n    test 1117 a_b2f2(SGS85): 0.00336409\n    test 1118 a_b2n(SGS85): 0.00167922\n    test 1119 b_f2a(SGS85): 6378136.000\n    test 1120 b_f_2a(SGS85): 6378136.000\n    test 1121 f_2f(SGS85): 0.00335281\n    test 1122 e2f(SGS85): 0.00335281\n    test 1123 n2e2(SGS85): 0.00669438\n    test 1124 n2f(SGS85): 0.00335281\n\n    test 1125 a_b2f_(SoAmerican1969): 298.25000000\n    test 1126 a_b2f2(SoAmerican1969): 0.00336417\n    test 1127 a_b2n(SoAmerican1969): 0.00167926\n    test 1128 b_f2a(SoAmerican1969): 6378160.000\n    test 1129 b_f_2a(SoAmerican1969): 6378160.000\n    test 1130 f_2f(SoAmerican1969): 0.00335289\n    test 1131 e2f(SoAmerican1969): 0.00335289\n    test 1132 n2e2(SoAmerican1969): 0.00669454\n    test 1133 n2f(SoAmerican1969): 0.00335289\n\n    test 1134 a_b2f_(Sphere): 0.00000000\n    test 1135 a_b2f2(Sphere): 0.00000000\n    test 1136 a_b2n(Sphere): 0.00000000\n    test 1137 b_f2a(Sphere): 6371008.771\n    test 1138 b_f_2a(Sphere): 6371008.771\n    test 1139 f_2f(Sphere): 0.00000000\n    test 1140 e2f(Sphere): 0.00000000\n    test 1141 n2e2(Sphere): 0.00000000\n    test 1142 n2f(Sphere): 0.00000000\n\n    test 1143 a_b2f_(SphereAuthalic): 0.00000000\n    test 1144 a_b2f2(SphereAuthalic): 0.00000000\n    test 1145 a_b2n(SphereAuthalic): 0.00000000\n    test 1146 b_f2a(SphereAuthalic): 6371000.000\n    test 1147 b_f_2a(SphereAuthalic): 6371000.000\n    test 1148 f_2f(SphereAuthalic): 0.00000000\n    test 1149 e2f(SphereAuthalic): 0.00000000\n    test 1150 n2e2(SphereAuthalic): 0.00000000\n    test 1151 n2f(SphereAuthalic): 0.00000000\n\n    test 1152 a_b2f_(SpherePopular): 0.00000000\n    test 1153 a_b2f2(SpherePopular): 0.00000000\n    test 1154 a_b2n(SpherePopular): 0.00000000\n    test 1155 b_f2a(SpherePopular): 6378137.000\n    test 1156 b_f_2a(SpherePopular): 6378137.000\n    test 1157 f_2f(SpherePopular): 0.00000000\n    test 1158 e2f(SpherePopular): 0.00000000\n    test 1159 n2e2(SpherePopular): 0.00000000\n    test 1160 n2f(SpherePopular): 0.00000000\n\n    test 1161 a_b2f_(Struve1860): 294.73000000\n    test 1162 a_b2f2(Struve1860): 0.00340449\n    test 1163 a_b2n(Struve1860): 0.00169935\n    test 1164 b_f2a(Struve1860): 6378298.300\n    test 1165 b_f_2a(Struve1860): 6378298.300\n    test 1166 f_2f(Struve1860): 0.00339294\n    test 1167 e2f(Struve1860): 0.00339294\n    test 1168 n2e2(Struve1860): 0.00677436\n    test 1169 n2f(Struve1860): 0.00339294\n\n    test 1170 a_b2f_(WGS60): 298.30000000\n    test 1171 a_b2f2(WGS60): 0.00336361\n    test 1172 a_b2n(WGS60): 0.00167898\n    test 1173 b_f2a(WGS60): 6378165.000\n    test 1174 b_f_2a(WGS60): 6378165.000\n    test 1175 f_2f(WGS60): 0.00335233\n    test 1176 e2f(WGS60): 0.00335233\n    test 1177 n2e2(WGS60): 0.00669342\n    test 1178 n2f(WGS60): 0.00335233\n\n    test 1179 a_b2f_(WGS66): 298.25000000\n    test 1180 a_b2f2(WGS66): 0.00336417\n    test 1181 a_b2n(WGS66): 0.00167926\n    test 1182 b_f2a(WGS66): 6378145.000\n    test 1183 b_f_2a(WGS66): 6378145.000\n    test 1184 f_2f(WGS66): 0.00335289\n    test 1185 e2f(WGS66): 0.00335289\n    test 1186 n2e2(WGS66): 0.00669454\n    test 1187 n2f(WGS66): 0.00335289\n\n    test 1188 a_b2f_(WGS72): 298.26000000\n    test 1189 a_b2f2(WGS72): 0.00336406\n    test 1190 a_b2n(WGS72): 0.00167920\n    test 1191 b_f2a(WGS72): 6378135.000\n    test 1192 b_f_2a(WGS72): 6378135.000\n    test 1193 f_2f(WGS72): 0.00335278\n    test 1194 e2f(WGS72): 0.00335278\n    test 1195 n2e2(WGS72): 0.00669432\n    test 1196 n2f(WGS72): 0.00335278\n\n    test 1197 a_b2f_(WGS84): 298.25722356\n    test 1198 a_b2f2(WGS84): 0.00336409\n    test 1199 a_b2n(WGS84): 0.00167922\n    test 1200 b_f2a(WGS84): 6378137.000\n    test 1201 b_f_2a(WGS84): 6378137.000\n    test 1202 f_2f(WGS84): 0.00335281\n    test 1203 e2f(WGS84): 0.00335281\n    test 1204 n2e2(WGS84): 0.00669438\n    test 1205 n2f(WGS84): 0.00335281\n\n    test 1206 a_b2f_(WGS84_NGS): 298.25722210\n    test 1207 a_b2f2(WGS84_NGS): 0.00336409\n    test 1208 a_b2n(WGS84_NGS): 0.00167922\n    test 1209 b_f2a(WGS84_NGS): 6378137.000\n    test 1210 b_f_2a(WGS84_NGS): 6378137.000\n    test 1211 f_2f(WGS84_NGS): 0.00335281\n    test 1212 e2f(WGS84_NGS): 0.00335281\n    test 1213 n2e2(WGS84_NGS): 0.00669438\n    test 1214 n2f(WGS84_NGS): 0.00335281\n\n    test 1215 total: 50\n\n    testWGS84(pygeodesy.ellipsoids, 26.03.25)\n    test 1216 roc1_ 0: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1217 roc1_ 0: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1218 roc1_ 5: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1219 roc1_ 5: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1220 roc1_ 10: 9.313225746154785e-10  FAILED, KNOWN, expected 1.863e-09\n    test 1221 roc1_ 10: 9.313225746154785e-10  FAILED, KNOWN, expected 1.863e-09\n    test 1222 roc1_ 15: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1223 roc1_ 15: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1224 roc1_ 20: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1225 roc1_ 20: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1226 roc1_ 25: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1227 roc1_ 25: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1228 roc1_ 30: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1229 roc1_ 30: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1230 roc1_ 35: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1231 roc1_ 35: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1232 roc1_ 40: 9.313225746154785e-10  FAILED, KNOWN, expected 1.863e-09\n    test 1233 roc1_ 40: 9.313225746154785e-10  FAILED, KNOWN, expected 1.863e-09\n    test 1234 roc1_ 45: 9.313225746154785e-10  FAILED, KNOWN, expected 1.863e-09\n    test 1235 roc1_ 45: 9.313225746154785e-10  FAILED, KNOWN, expected 1.863e-09\n    test 1236 roc1_ 50: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1237 roc1_ 50: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1238 roc1_ 55: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1239 roc1_ 55: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1240 roc1_ 60: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1241 roc1_ 60: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1242 roc1_ 65: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1243 roc1_ 65: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1244 roc1_ 70: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1245 roc1_ 70: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1246 roc1_ 75: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1247 roc1_ 75: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1248 roc1_ 80: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1249 roc1_ 80: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1250 roc1_ 85: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1251 roc1_ 85: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1252 roc1_ 90: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1253 roc1_ 90: 0.0  FAILED, KNOWN, expected 1.863e-09\n\n    testProlate(pygeodesy.ellipsoids, 26.03.25)\n    test 1254 roc1_ 0: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1255 roc1_ 0: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1256 roc1_ 5: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1257 roc1_ 5: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1258 roc1_ 10: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1259 roc1_ 10: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1260 roc1_ 15: 9.313225746154785e-10  FAILED, KNOWN, expected 1.863e-09\n    test 1261 roc1_ 15: 9.313225746154785e-10  FAILED, KNOWN, expected 1.863e-09\n    test 1262 roc1_ 20: 9.313225746154785e-10  FAILED, KNOWN, expected 1.863e-09\n    test 1263 roc1_ 20: 9.313225746154785e-10  FAILED, KNOWN, expected 1.863e-09\n    test 1264 roc1_ 25: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1265 roc1_ 25: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1266 roc1_ 30: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1267 roc1_ 30: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1268 roc1_ 35: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1269 roc1_ 35: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1270 roc1_ 40: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1271 roc1_ 40: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1272 roc1_ 45: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1273 roc1_ 45: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1274 roc1_ 50: 9.313225746154785e-10  FAILED, KNOWN, expected 1.863e-09\n    test 1275 roc1_ 50: 9.313225746154785e-10  FAILED, KNOWN, expected 1.863e-09\n    test 1276 roc1_ 55: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1277 roc1_ 55: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1278 roc1_ 60: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1279 roc1_ 60: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1280 roc1_ 65: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1281 roc1_ 65: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1282 roc1_ 70: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1283 roc1_ 70: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1284 roc1_ 75: 9.313225746154785e-10  FAILED, KNOWN, expected 1.863e-09\n    test 1285 roc1_ 75: 9.313225746154785e-10  FAILED, KNOWN, expected 1.863e-09\n    test 1286 roc1_ 80: 9.313225746154785e-10  FAILED, KNOWN, expected 1.863e-09\n    test 1287 roc1_ 80: 9.313225746154785e-10  FAILED, KNOWN, expected 1.863e-09\n    test 1288 roc1_ 85: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1289 roc1_ 85: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1290 roc1_ 90: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1291 roc1_ 90: 0.0  FAILED, KNOWN, expected 1.863e-09\n\n    testSphereAuthalic(pygeodesy.ellipsoids, 26.03.25)\n    test 1292 roc1_ 0: 0.0\n    test 1293 roc1_ 0: 0.0\n    test 1294 roc1_ 5: 0.0\n    test 1295 roc1_ 5: 0.0\n    test 1296 roc1_ 10: 0.0\n    test 1297 roc1_ 10: 0.0\n    test 1298 roc1_ 15: 0.0\n    test 1299 roc1_ 15: 0.0\n    test 1300 roc1_ 20: 0.0\n    test 1301 roc1_ 20: 0.0\n    test 1302 roc1_ 25: 0.0\n    test 1303 roc1_ 25: 0.0\n    test 1304 roc1_ 30: 0.0\n    test 1305 roc1_ 30: 0.0\n    test 1306 roc1_ 35: 0.0\n    test 1307 roc1_ 35: 0.0\n    test 1308 roc1_ 40: 0.0\n    test 1309 roc1_ 40: 0.0\n    test 1310 roc1_ 45: 0.0\n    test 1311 roc1_ 45: 0.0\n    test 1312 roc1_ 50: 0.0\n    test 1313 roc1_ 50: 0.0\n    test 1314 roc1_ 55: 0.0\n    test 1315 roc1_ 55: 0.0\n    test 1316 roc1_ 60: 0.0\n    test 1317 roc1_ 60: 0.0\n    test 1318 roc1_ 65: 0.0\n    test 1319 roc1_ 65: 0.0\n    test 1320 roc1_ 70: 0.0\n    test 1321 roc1_ 70: 0.0\n    test 1322 roc1_ 75: 0.0\n    test 1323 roc1_ 75: 0.0\n    test 1324 roc1_ 80: 0.0\n    test 1325 roc1_ 80: 0.0\n    test 1326 roc1_ 85: 0.0\n    test 1327 roc1_ 85: 0.0\n    test 1328 roc1_ 90: 0.0\n    test 1329 roc1_ 90: 0.0\n\n    testcircle4(pygeodesy.ellipsoids, 26.03.25)\n\n    testWGS84(pygeodesy.ellipsoids, 26.03.25)\n    test 1330 circle4 0: 6378137.000000\n    test 1331 circle4 0: 6378137.000000\n    test 1332 circle4 10: 6377497.402124\n    test 1333 circle4 10: 6377497.402124\n    test 1334 circle4 20: 6375653.951276\n    test 1335 circle4 20: 6375653.951276\n    test 1336 circle4 30: 6372824.420294\n    test 1337 circle4 30: 6372824.420294\n    test 1338 circle4 40: 6369344.863240\n    test 1339 circle4 40: 6369344.863240\n    test 1340 circle4 50: 6365631.517537\n    test 1341 circle4 50: 6365631.517537\n    test 1342 circle4 60: 6362132.224397\n    test 1343 circle4 60: 6362132.224397\n    test 1344 circle4 70: 6359272.455642\n    test 1345 circle4 70: 6359272.455642\n    test 1346 circle4 80: 6357402.413808\n    test 1347 circle4 80: 6357402.413808\n    test 1348 circle4 90: 6356752.314245\n    test 1349 circle4 90: 6356752.314245\n\n    testSphere(pygeodesy.ellipsoids, 26.03.25)\n    test 1350 circle4 0: 6371008.771415\n    test 1351 circle4 0: 6371008.771415\n    test 1352 circle4 10: 6371008.771415\n    test 1353 circle4 10: 6371008.771415\n    test 1354 circle4 20: 6371008.771415\n    test 1355 circle4 20: 6371008.771415\n    test 1356 circle4 30: 6371008.771415\n    test 1357 circle4 30: 6371008.771415\n    test 1358 circle4 40: 6371008.771415\n    test 1359 circle4 40: 6371008.771415\n    test 1360 circle4 50: 6371008.771415\n    test 1361 circle4 50: 6371008.771415\n    test 1362 circle4 60: 6371008.771415\n    test 1363 circle4 60: 6371008.771415\n    test 1364 circle4 70: 6371008.771415\n    test 1365 circle4 70: 6371008.771415\n    test 1366 circle4 80: 6371008.771415\n    test 1367 circle4 80: 6371008.771415\n    test 1368 circle4 90: 6371008.771415\n    test 1369 circle4 90: 6371008.771415\n# lazily imported pygeodesy.triaxials by lazily.py line 529\n# lazily imported pygeodesy.Triaxial from .triaxials.triaxial5 by ellipsoids.py line 1905\n# lazily imported pygeodesy.latlonBase by basics.py line 473\n\n    test 1370 hartzell4: (3642031.283571, 3678090.99925, 3714150.714929, 11296639.666827)\n\n    77 of 1370 testEllipsoids.py tests (5.6%) FAILED, ALL KNOWN (pygeodesy 26.3.26 Python 3.12.10 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 2.1.0 scipy 1.14.1 Math 2 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 isLazy 3 -W  default) 186.828 ms\nrunning /usr/local/bin/p....n3.12 -W default ~/PyGeodesy/test/testElliptic.py\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.elliptic by testElliptic.py line 11\n# lazily imported pygeodesy.Elliptic from .elliptic by testElliptic.py line 11\n# lazily imported pygeodesy.EllipticError from .elliptic by testElliptic.py line 11\n# lazily imported pygeodesy.Elliptic3Tuple from .elliptic by testElliptic.py line 11\n# lazily imported pygeodesy.EPS from .constants by testElliptic.py line 11\n# lazily imported pygeodesy.fstr from .streprs by testElliptic.py line 11\n# lazily imported pygeodesy.PI_2 from .constants by testElliptic.py line 11\n# lazily imported pygeodesy.PI_4 from .constants by testElliptic.py line 11\n# lazily imported pygeodesy.radians from .utily by testElliptic.py line 11\n# lazily imported pygeodesy.Scalar from .units by testElliptic.py line 11\n# lazily imported pygeodesy.sincos2 from .utily by testElliptic.py line 11\n\n    testing testElliptic.py 26.02.12 isLazy=3\n    test 1 eps4: 8.881784197e-16\n    test 2 RC, RF(0.020, ...): 3.914361830671\n    test 3 RC, RF(0.030, ...): 6.584789484624\n    test 4 RC, RF(0.040, ...): 5.493061443341\n    test 5 RC, RF(0.050, ...): 4.812118250596\n    test 6 RC, RF(0.060, ...): 4.335073632453\n    test 7 RC, RF(0.070, ...): 3.976827306120\n    test 8 RC, RF(0.080, ...): 3.694989719259\n    test 9 RC, RF(0.090, ...): 3.465735902800\n    test 10 RC, RF(0.100, ...): 3.274501502373\n    test 11 RC, RF(0.110, ...): 3.111812518574\n    test 12 RC, RF(0.120, ...): 2.971203516685\n    test 13 RC, RF(0.130, ...): 2.848090500183\n    test 14 RC, RF(0.140, ...): 2.739120555165\n    test 15 RC, RF(0.150, ...): 2.641776814832\n    test 16 RC, RF(0.160, ...): 2.554128118830\n    test 17 RC, RF(0.170, ...): 2.474664615473\n    test 18 RC, RF(0.180, ...): 2.402186472893\n    test 19 RC, RF(0.190, ...): 2.335726540516\n    test 20 RC, RF(0.200, ...): 2.274495360058\n    test 21 RC, RF(0.210, ...): 2.217841271926\n    test 22 RC, RF(0.220, ...): 2.165220951174\n    test 23 RC, RF(0.230, ...): 2.116177296054\n    test 24 RC, RF(0.240, ...): 2.070322594382\n    test 25 RC, RF(0.250, ...): 2.027325540541\n    test 26 RC, RF(0.260, ...): 1.986901103492\n    test 27 RC, RF(0.270, ...): 1.948802534199\n    test 28 RC, RF(0.280, ...): 1.912814998209\n    test 29 RC, RF(0.290, ...): 1.878750456745\n    test 30 RC, RF(0.300, ...): 1.846443516895\n    test 31 RC, RF(0.310, ...): 1.815748041271\n    test 32 RC, RF(0.320, ...): 1.786534358134\n    test 33 RC, RF(0.330, ...): 1.758686950216\n    test 34 RC, RF(0.340, ...): 1.732102528083\n    test 35 RC, RF(0.350, ...): 1.706688414643\n    test 36 RC, RF(0.360, ...): 1.682361183106\n    test 37 RC, RF(0.370, ...): 1.659045502693\n    test 38 RC, RF(0.380, ...): 1.636673155658\n    test 39 RC, RF(0.390, ...): 1.615182196359\n    test 40 RC, RF(0.400, ...): 1.594516228743\n    test 41 RC, RF(0.410, ...): 1.574623783019\n    test 42 RC, RF(0.420, ...): 1.555457775830\n    test 43 RC, RF(0.430, ...): 1.536975041007\n    test 44 RC, RF(0.440, ...): 1.519135920258\n    test 45 RC, RF(0.450, ...): 1.501903904951\n    test 46 RC, RF(0.460, ...): 1.485245321610\n    test 47 RC, RF(0.470, ...): 1.469129054970\n    test 48 RC, RF(0.480, ...): 1.453526303390\n    test 49 RC, RF(0.490, ...): 1.438410362259\n    test 50 RC, RF(0.500, ...): 1.423756431678\n    test 51 RC, RF(0.510, ...): 1.409541445271\n    test 52 RC, RF(0.520, ...): 1.395743917431\n    test 53 RC, RF(0.530, ...): 1.382343806706\n    test 54 RC, RF(0.540, ...): 1.369322393343\n    test 55 RC, RF(0.550, ...): 1.356662169284\n    test 56 RC, RF(0.560, ...): 1.344346739158\n    test 57 RC, RF(0.570, ...): 1.332360730978\n    test 58 RC, RF(0.580, ...): 1.320689715446\n    test 59 RC, RF(0.590, ...): 1.309320132904\n    test 60 RC, RF(0.600, ...): 1.298239227085\n    test 61 RC, RF(0.610, ...): 1.287434984930\n    test 62 RC, RF(0.620, ...): 1.276896081822\n    test 63 RC, RF(0.630, ...): 1.266611831682\n    test 64 RC, RF(0.640, ...): 1.256572141405\n    test 65 RC, RF(0.650, ...): 1.246767469214\n    test 66 RC, RF(0.660, ...): 1.237188786540\n    test 67 RC, RF(0.670, ...): 1.227827543058\n    test 68 RC, RF(0.680, ...): 1.218675634611\n    test 69 RC, RF(0.690, ...): 1.209725373708\n    test 70 RC, RF(0.700, ...): 1.200969462383\n    test 71 RC, RF(0.710, ...): 1.192400967179\n    test 72 RC, RF(0.720, ...): 1.184013296070\n    test 73 RC, RF(0.730, ...): 1.175800177139\n    test 74 RC, RF(0.740, ...): 1.167755638871\n    test 75 RC, RF(0.750, ...): 1.159873991901\n    test 76 RC, RF(0.760, ...): 1.152149812097\n    test 77 RC, RF(0.770, ...): 1.144577924881\n    test 78 RC, RF(0.780, ...): 1.137153390647\n    test 79 RC, RF(0.790, ...): 1.129871491226\n    test 80 RC, RF(0.800, ...): 1.122727717281\n    test 81 RC, RF(0.810, ...): 1.115717756571\n    test 82 RC, RF(0.820, ...): 1.108837483013\n    test 83 RC, RF(0.830, ...): 1.102082946473\n    test 84 RC, RF(0.840, ...): 1.095450363236\n    test 85 RC, RF(0.850, ...): 1.088936107101\n    test 86 RC, RF(0.860, ...): 1.082536701044\n    test 87 RC, RF(0.870, ...): 1.076248809425\n    test 88 RC, RF(0.880, ...): 1.070069230678\n    test 89 RC, RF(0.890, ...): 1.063994890459\n    test 90 RC, RF(0.900, ...): 1.058022835225\n    test 91 RC, RF(0.910, ...): 1.052150226192\n    test 92 RC, RF(0.920, ...): 1.046374333669\n    test 93 RC, RF(0.930, ...): 1.040692531726\n    test 94 RC, RF(0.940, ...): 1.035102293176\n    test 95 RC, RF(0.950, ...): 1.029601184852\n    test 96 RC, RF(0.960, ...): 1.024186863158\n    test 97 RC, RF(0.970, ...): 1.018857069872\n    test 98 RC, RF(0.980, ...): 1.013609628192\n    test 99 RC, RF(0.990, ...): 1.008442438994\n    test 100 RD, RJ(0.010, ...): 8.120132781711\n    test 101 RD, RJ(0.020, ...): 7.119021204087\n    test 102 RD, RJ(0.030, ...): 6.544107485563\n    test 103 RD, RJ(0.040, ...): 6.142532079666\n    test 104 RD, RJ(0.050, ...): 5.835358486352\n    test 105 RD, RJ(0.060, ...): 5.587552234737\n    test 106 RD, RJ(0.070, ...): 5.380489023690\n    test 107 RD, RJ(0.080, ...): 5.203088814832\n    test 108 RD, RJ(0.090, ...): 5.048227960523\n    test 109 RD, RJ(0.100, ...): 4.911057935480\n    test 110 RD, RJ(0.110, ...): 4.788131254930\n    test 111 RD, RJ(0.120, ...): 4.676910208210\n    test 112 RD, RJ(0.130, ...): 4.575473423301\n    test 113 RD, RJ(0.140, ...): 4.482331804788\n    test 114 RD, RJ(0.150, ...): 4.396308333326\n    test 115 RD, RJ(0.160, ...): 4.316456874863\n    test 116 RD, RJ(0.170, ...): 4.242005741804\n    test 117 RD, RJ(0.180, ...): 4.172317477477\n    test 118 RD, RJ(0.190, ...): 4.106859576449\n    test 119 RD, RJ(0.200, ...): 4.045182759349\n    test 120 RD, RJ(0.210, ...): 3.986904580308\n    test 121 RD, RJ(0.220, ...): 3.931696871490\n    test 122 RD, RJ(0.230, ...): 3.879275996390\n    test 123 RD, RJ(0.240, ...): 3.829395191121\n    test 124 RD, RJ(0.250, ...): 3.781838479725\n    test 125 RD, RJ(0.260, ...): 3.736415791191\n    test 126 RD, RJ(0.270, ...): 3.692959004641\n    test 127 RD, RJ(0.280, ...): 3.651318719062\n    test 128 RD, RJ(0.290, ...): 3.611361594199\n    test 129 RD, RJ(0.300, ...): 3.572968145771\n    test 130 RD, RJ(0.310, ...): 3.536030905108\n    test 131 RD, RJ(0.320, ...): 3.500452873386\n    test 132 RD, RJ(0.330, ...): 3.466146215741\n    test 133 RD, RJ(0.340, ...): 3.433031152013\n    test 134 RD, RJ(0.350, ...): 3.401035009727\n    test 135 RD, RJ(0.360, ...): 3.370091411694\n    test 136 RD, RJ(0.370, ...): 3.340139575961\n    test 137 RD, RJ(0.380, ...): 3.311123710009\n    test 138 RD, RJ(0.390, ...): 3.282992484411\n    test 139 RD, RJ(0.400, ...): 3.255698573796\n    test 140 RD, RJ(0.410, ...): 3.229198255060\n    test 141 RD, RJ(0.420, ...): 3.203451054514\n    test 142 RD, RJ(0.430, ...): 3.178419436977\n    test 143 RD, RJ(0.440, ...): 3.154068531006\n    test 144 RD, RJ(0.450, ...): 3.130365885345\n    test 145 RD, RJ(0.460, ...): 3.107281252437\n    test 146 RD, RJ(0.470, ...): 3.084786395490\n    test 147 RD, RJ(0.480, ...): 3.062854916088\n    test 148 RD, RJ(0.490, ...): 3.041462099793\n    test 149 RD, RJ(0.500, ...): 3.020584777522\n    test 150 RD, RJ(0.510, ...): 3.000201200833\n    test 151 RD, RJ(0.520, ...): 2.980290929460\n    test 152 RD, RJ(0.530, ...): 2.960834729701\n    test 153 RD, RJ(0.540, ...): 2.941814482427\n    test 154 RD, RJ(0.550, ...): 2.923213099639\n    test 155 RD, RJ(0.560, ...): 2.905014448642\n    test 156 RD, RJ(0.570, ...): 2.887203283023\n    test 157 RD, RJ(0.580, ...): 2.869765179714\n    test 158 RD, RJ(0.590, ...): 2.852686481504\n    test 159 RD, RJ(0.600, ...): 2.835954244454\n    test 160 RD, RJ(0.610, ...): 2.819556189720\n    test 161 RD, RJ(0.620, ...): 2.803480659351\n    test 162 RD, RJ(0.630, ...): 2.787716575666\n    test 163 RD, RJ(0.640, ...): 2.772253403892\n    test 164 RD, RJ(0.650, ...): 2.757081117726\n    test 165 RD, RJ(0.660, ...): 2.742190167580\n    test 166 RD, RJ(0.670, ...): 2.727571451237\n    test 167 RD, RJ(0.680, ...): 2.713216286727\n    test 168 RD, RJ(0.690, ...): 2.699116387203\n    test 169 RD, RJ(0.700, ...): 2.685263837661\n    test 170 RD, RJ(0.710, ...): 2.671651073335\n    test 171 RD, RJ(0.720, ...): 2.658270859623\n    test 172 RD, RJ(0.730, ...): 2.645116273430\n    test 173 RD, RJ(0.740, ...): 2.632180685789\n    test 174 RD, RJ(0.750, ...): 2.619457745678\n    test 175 RD, RJ(0.760, ...): 2.606941364924\n    test 176 RD, RJ(0.770, ...): 2.594625704104\n    test 177 RD, RJ(0.780, ...): 2.582505159384\n    test 178 RD, RJ(0.790, ...): 2.570574350197\n    test 179 RD, RJ(0.800, ...): 2.558828107720\n    test 180 RD, RJ(0.810, ...): 2.547261464073\n    test 181 RD, RJ(0.820, ...): 2.535869642198\n    test 182 RD, RJ(0.830, ...): 2.524648046356\n    test 183 RD, RJ(0.840, ...): 2.513592253209\n    test 184 RD, RJ(0.850, ...): 2.502698003435\n    test 185 RD, RJ(0.860, ...): 2.491961193848\n    test 186 RD, RJ(0.870, ...): 2.481377869975\n    test 187 RD, RJ(0.880, ...): 2.470944219069\n    test 188 RD, RJ(0.890, ...): 2.460656563526\n    test 189 RD, RJ(0.900, ...): 2.450511354674\n    test 190 RD, RJ(0.910, ...): 2.440505166909\n    test 191 RD, RJ(0.920, ...): 2.430634692166\n    test 192 RD, RJ(0.930, ...): 2.420896734686\n    test 193 RD, RJ(0.940, ...): 2.411288206073\n    test 194 RD, RJ(0.950, ...): 2.401806120619\n    test 195 RD, RJ(0.960, ...): 2.392447590873\n    test 196 RD, RJ(0.970, ...): 2.383209823448\n    test 197 RD, RJ(0.980, ...): 2.374090115050\n    test 198 RD, RJ(0.990, ...): 2.365085848706\n\n    test 199 eps4: 8.881784197e-16\n    test 200 k2: 0.1000000\n    test 201 kp2: 0.9000000\n    test 202 eps: 0.0263340\n    test 203 cD: 0.816837118\n    test 204 cE: 1.530757637\n    test 205 cG: 1.530757637\n    test 206 cH: 0.795604230\n    test 207 cK: 1.612441349\n    test 208 cKE: 0.081683712\n    test 209 cPi: 1.612441349\n    test 210 fE(phi): 0.348372822\n    test 211 fDelta(sn, cn): 0.994133906\n    test 212 fD(sn, cn, dn): 0.013885234\n    test 213 fE(sn, cn, dn): 0.348372822\n    test 214 fEd(PI_2): 0.027415224\n    test 215 fEinv(PI_2): 1.612999420\n    test 216 fF(sn, cn, dn): 0.349761345\n    test 217 fG(sn, cn, dn): 0.348372822\n    test 218 fH(sn, cn, dn): 0.335876111\n    test 219 fPi(sn, cn, dn): 0.349761345\n    test 220 fPi(sn, None, dn): invokation Elliptic.fPi(0, None, 1): invalid\n    test 221 fPi(sn, dn, None): invokation Elliptic.fH(0, 1, None): invalid\n\n    test 222 deltaD(sn, cn, dn): -0.3223642\n    test 223 deltaE(sn, cn, dn): 0.0084191\n    test 224 deltaEinv(sn, cn): -0.0082518\n    test 225 deltaF(sn, cn, dn): -0.0083379\n    test 226 deltaG(sn, cn, dn): 0.0084191\n    test 227 deltaH(sn, cn, dn): 0.3140691\n    test 228 deltaPi(sn, cn, dn): -0.0083379\n    test 229 deltaPi(sn, None, dn): invokation Elliptic.deltaPi(0, None, 1): invalid\n    test 230 deltaPi(sn, dn, None): invokation Elliptic.deltaPi(0, 1, None): invalid\n\n    test 231 RF(1,   2, 0): 1.3110287771461\n    test 232 RF(0.5, 1, 0): 1.8540746773014\n    test 233 RF(2,   3, 4): 0.58408284167715\n\n    test 234 RC(0,  1/4): 3.1415926535898\n    test 235 RC(9/4,  2): 0.69314718055995\n    test 236 RC(1/4, -2): 0.23104906018665\n\n    test 237 RJ(0, 1, 2, 3): 0.77688623778582\n    test 238 RJ(2, 3, 4, 5): 0.14297579667157\n\n    test 239 RD(0, 2, 1): 1.7972103521034\n    test 240 RD(2, 3, 4): 0.16510527294261\n\n    test 241 RG(0, 16, 16): 3.1415926535898\n    test 242 RG(2,  3,  4): 1.7255030280692\n    test 243 RG(0,  0.0796, 4): 1.0284758090288\n\n    test 244 reset: 5\n\n    test 245 sncndn(x, jam=True): 0.0, 1.0, 1.0\n    test 246 sncndn(x, jam=True): 0.998602459, 0.052850065, 0.948830497\n    test 247 sncndn(x, jam=True): 0.0, 1.0, 1.0\n    test 248 sncndn(x, jam=True): 0.917152336, 0.398536815, 0.398536815\n    test 249 sncndn(x, jam=True): <class 'pygeodesy.elliptic.Elliptic3Tuple'>\n\n    test 250 sncndn(x, jam=False): 0.0, 1.0, 1.0\n    test 251 sncndn(x, jam=False): 0.999219618, 0.0394988, 0.948765522\n    test 252 sncndn(x, jam=False): 0.0, 1.0, 1.0\n    test 253 sncndn(x, jam=False): 0.917152336, 0.398536815, 0.398536815\n    test 254 sncndn(x, jam=False): <class 'pygeodesy.elliptic.Elliptic3Tuple'>\n\n    test 255 copy(<class 'type'>): (<class 'pygeodesy.elliptic.Elliptic'>, True)\n    test 256 Elliptic.copy(): (<class 'pygeodesy.elliptic.Elliptic'>, True)\n    test 257 k2 alpha2 kp2 alphap2: (0.0, 0.0, 0.0, 0.0)\n    test 258 k2 alpha2 kp2 alphap2: (0.25, 0.25, 0.25, 0.25)\n    test 259 k2 alpha2 kp2 alphap2: (0.5, 0.5, 0.5, 0.5)\n    test 260 k2 alpha2 kp2 alphap2: (0.75, 0.75, 0.75, 0.75)\n# imported pygeodesy.streprs into errors.py line 99\n# imported pygeodesy.basics into errors.py line 443\n\n    test 261 ConvergenceError: maxit (9): no convergence (1), tolerance (2)\n\n    test 262 _ellipticError: invokation Elliptic.testElliptic(None): test\n    test 263 _ellipticError: invokation Elliptic._ellipticError(None): invokation Elliptic.testElliptic(None): test\n\n    all 263 testElliptic.py tests passed (pygeodesy 26.3.26 Python 3.12.10 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 2.1.0 scipy 1.14.1 Math 2 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 isLazy 3 -W  default) 1.142 sec\nrunning /usr/local/bin/p....n3.12 -W default ~/PyGeodesy/test/testEpsg.py\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.Epsg from .epsg by testEpsg.py line 11\n# lazily imported pygeodesy.toUtmUps8 from .utmups by testEpsg.py line 11\n# lazily imported pygeodesy.Ellipsoids from .ellipsoids by testTMcoords.py line 14\n# lazily imported pygeodesy.EPS from .constants by testTMcoords.py line 14\n# lazily imported pygeodesy.RangeError from .errors by testTMcoords.py line 14\n\n    testing testEpsg.py 23.03.27 isLazy=3\n    test 1 Epsg: Epsg(32661)\n    test 2 0 N: (0, 'N')\n    test 3 1 N: (1, 'N')\n    test 4 2 N: (2, 'N')\n    test 5 3 N: (3, 'N')\n    test 6 4 N: (4, 'N')\n    test 7 5 N: (5, 'N')\n    test 8 6 N: (6, 'N')\n    test 9 7 N: (7, 'N')\n    test 10 8 N: (8, 'N')\n    test 11 9 N: (9, 'N')\n    test 12 10 N: (10, 'N')\n    test 13 11 N: (11, 'N')\n    test 14 12 N: (12, 'N')\n    test 15 13 N: (13, 'N')\n    test 16 14 N: (14, 'N')\n    test 17 15 N: (15, 'N')\n    test 18 16 N: (16, 'N')\n    test 19 17 N: (17, 'N')\n    test 20 18 N: (18, 'N')\n    test 21 19 N: (19, 'N')\n    test 22 20 N: (20, 'N')\n    test 23 21 N: (21, 'N')\n    test 24 22 N: (22, 'N')\n    test 25 23 N: (23, 'N')\n    test 26 24 N: (24, 'N')\n    test 27 25 N: (25, 'N')\n    test 28 26 N: (26, 'N')\n    test 29 27 N: (27, 'N')\n    test 30 28 N: (28, 'N')\n    test 31 29 N: (29, 'N')\n    test 32 30 N: (30, 'N')\n    test 33 31 N: (31, 'N')\n    test 34 32 N: (32, 'N')\n    test 35 33 N: (33, 'N')\n    test 36 34 N: (34, 'N')\n    test 37 35 N: (35, 'N')\n    test 38 36 N: (36, 'N')\n    test 39 37 N: (37, 'N')\n    test 40 38 N: (38, 'N')\n    test 41 39 N: (39, 'N')\n    test 42 40 N: (40, 'N')\n    test 43 41 N: (41, 'N')\n    test 44 42 N: (42, 'N')\n    test 45 43 N: (43, 'N')\n    test 46 44 N: (44, 'N')\n    test 47 45 N: (45, 'N')\n    test 48 46 N: (46, 'N')\n    test 49 47 N: (47, 'N')\n    test 50 48 N: (48, 'N')\n    test 51 49 N: (49, 'N')\n    test 52 50 N: (50, 'N')\n    test 53 51 N: (51, 'N')\n    test 54 52 N: (52, 'N')\n    test 55 53 N: (53, 'N')\n    test 56 54 N: (54, 'N')\n    test 57 55 N: (55, 'N')\n    test 58 56 N: (56, 'N')\n    test 59 57 N: (57, 'N')\n    test 60 58 N: (58, 'N')\n    test 61 59 N: (59, 'N')\n    test 62 60 N: (60, 'N')\n    test 63 Epsg: Epsg(32761)\n    test 64 0 S: (0, 'S')\n    test 65 1 S: (1, 'S')\n    test 66 2 S: (2, 'S')\n    test 67 3 S: (3, 'S')\n    test 68 4 S: (4, 'S')\n    test 69 5 S: (5, 'S')\n    test 70 6 S: (6, 'S')\n    test 71 7 S: (7, 'S')\n    test 72 8 S: (8, 'S')\n    test 73 9 S: (9, 'S')\n    test 74 10 S: (10, 'S')\n    test 75 11 S: (11, 'S')\n    test 76 12 S: (12, 'S')\n    test 77 13 S: (13, 'S')\n    test 78 14 S: (14, 'S')\n    test 79 15 S: (15, 'S')\n    test 80 16 S: (16, 'S')\n    test 81 17 S: (17, 'S')\n    test 82 18 S: (18, 'S')\n    test 83 19 S: (19, 'S')\n    test 84 20 S: (20, 'S')\n    test 85 21 S: (21, 'S')\n    test 86 22 S: (22, 'S')\n    test 87 23 S: (23, 'S')\n    test 88 24 S: (24, 'S')\n    test 89 25 S: (25, 'S')\n    test 90 26 S: (26, 'S')\n    test 91 27 S: (27, 'S')\n    test 92 28 S: (28, 'S')\n    test 93 29 S: (29, 'S')\n    test 94 30 S: (30, 'S')\n    test 95 31 S: (31, 'S')\n    test 96 32 S: (32, 'S')\n    test 97 33 S: (33, 'S')\n    test 98 34 S: (34, 'S')\n    test 99 35 S: (35, 'S')\n    test 100 36 S: (36, 'S')\n    test 101 37 S: (37, 'S')\n    test 102 38 S: (38, 'S')\n    test 103 39 S: (39, 'S')\n    test 104 40 S: (40, 'S')\n    test 105 41 S: (41, 'S')\n    test 106 42 S: (42, 'S')\n    test 107 43 S: (43, 'S')\n    test 108 44 S: (44, 'S')\n    test 109 45 S: (45, 'S')\n    test 110 46 S: (46, 'S')\n    test 111 47 S: (47, 'S')\n    test 112 48 S: (48, 'S')\n    test 113 49 S: (49, 'S')\n    test 114 50 S: (50, 'S')\n    test 115 51 S: (51, 'S')\n    test 116 52 S: (52, 'S')\n    test 117 53 S: (53, 'S')\n    test 118 54 S: (54, 'S')\n    test 119 55 S: (55, 'S')\n    test 120 56 S: (56, 'S')\n    test 121 57 S: (57, 'S')\n    test 122 58 S: (58, 'S')\n    test 123 59 S: (59, 'S')\n    test 124 60 S: (60, 'S')\n    test 125 Ups: Epsg(32761)\n    test 126 Ups: 00A S\n    test 127 copy(<class 'type'>): (<class 'pygeodesy.epsg.Epsg'>, True)\n    test 128 Epsg.copy(): (<class 'pygeodesy.epsg.Epsg'>, True)\n    test 129 Ups: Epsg(32761)\n    test 130 Ups: 00B S\n    test 131 copy(<class 'type'>): (<class 'pygeodesy.epsg.Epsg'>, True)\n    test 132 Epsg.copy(): (<class 'pygeodesy.epsg.Epsg'>, True)\n    test 133 Ups: Epsg(32661)\n    test 134 Ups: 00Y N\n    test 135 copy(<class 'type'>): (<class 'pygeodesy.epsg.Epsg'>, True)\n    test 136 Epsg.copy(): (<class 'pygeodesy.epsg.Epsg'>, True)\n    test 137 Ups: Epsg(32661)\n    test 138 Ups: 00Z N\n    test 139 copy(<class 'type'>): (<class 'pygeodesy.epsg.Epsg'>, True)\n    test 140 Epsg.copy(): (<class 'pygeodesy.epsg.Epsg'>, True)\n    test 141 TMcoord 1: 38W N\n    test 142 TMcoord 2: 34P N\n    test 143 TMcoord 3: 43Q N\n    test 144 TMcoord 4: 35Q N\n    test 145 TMcoord 5: 37N N\n    test 146 TMcoord 6: 34W N\n    test 147 TMcoord 7: 40V N\n    test 148 TMcoord 8: 34P N\n    test 149 TMcoord 9: 41S N\n    test 150 TMcoord 10: 41X N\n    test 151 TMcoord 11: 43X N\n    test 152 TMcoord 12: 44Q N\n    test 153 TMcoord 13: 44R N\n    test 154 TMcoord 14: 39U N\n    test 155 TMcoord 15: 44P N\n    test 156 TMcoord 16: 39R N\n    test 157 TMcoord 17: 41W N\n    test 158 TMcoord 18: 45U N\n    test 159 TMcoord 19: 32R N\n    test 160 TMcoord 20: 44X N\n    test 161 TMcoord 21: 35T N\n    test 162 TMcoord 22: 32T N\n    test 163 TMcoord 23: 31T N\n    test 164 TMcoord 24: 35N N\n    test 165 TMcoord 25: 45P N\n    test 166 TMcoord 26: 33V N\n    test 167 TMcoord 27: 41Q N\n    test 168 TMcoord 28: 40X N\n    test 169 TMcoord 29: 33P N\n    test 170 TMcoord 30: 40S N\n    test 171 TMcoord 31: 37T N\n    test 172 TMcoord 32: 33X N\n    test 173 TMcoord 33: 41U N\n    test 174 TMcoord 34: 43Q N\n    test 175 TMcoord 35: 42S N\n    test 176 TMcoord 36: 33S N\n    test 177 TMcoord 37: 35X N\n    test 178 TMcoord 38: 38N N\n    test 179 TMcoord 39: 44P N\n    test 180 TMcoord 40: 33U N\n    test 181 TMcoord 41: 37W N\n    test 182 TMcoord 42: 36T N\n    test 183 TMcoord 43: 36Q N\n    test 184 TMcoord 44: 34S N\n    test 185 TMcoord 45: 37S N\n    test 186 TMcoord 46: 34N N\n    test 187 TMcoord 47: 34T N\n    test 188 TMcoord 48: 43Q N\n    test 189 TMcoord 49: 32N N\n    test 190 TMcoord 50: 31Q N\n    test 191 TMcoord 51: 45R N\n    test 192 TMcoord 52: 45R N\n    test 193 TMcoord 53: 34W N\n    test 194 TMcoord 54: 44V N\n    test 195 TMcoord 55: 44S N\n    test 196 TMcoord 56: 39R N\n# imported pygeodesy.basics into errors.py line 443\n    test 197 TMcoord 57: 00Z N\n    test 198 TMcoord 58: 36R N\n    test 199 TMcoord 59: 41V N\n    test 200 TMcoord 60: 42N N\n    test 201 TMcoord 61: 43S N\n    test 202 TMcoord 62: 34N N\n    test 203 TMcoord 63: 34U N\n    test 204 TMcoord 64: 38V N\n    test 205 TMcoord 65: 34Q N\n    test 206 TMcoord 66: 38P N\n    test 207 TMcoord 67: 42S N\n    test 208 TMcoord 68: 44S N\n    test 209 TMcoord 69: 31Q N\n    test 210 TMcoord 70: 40W N\n    test 211 TMcoord 71: 35X N\n    test 212 TMcoord 72: 32T N\n    test 213 TMcoord 73: 45U N\n    test 214 TMcoord 74: 40Q N\n    test 215 TMcoord 75: 31T N\n    test 216 TMcoord 76: 44R N\n    test 217 TMcoord 77: 34U N\n    test 218 TMcoord 78: 38P N\n    test 219 TMcoord 79: 38Q N\n    test 220 TMcoord 80: 45N N\n    test 221 TMcoord 81: 31S N\n    test 222 TMcoord 82: 41U N\n    test 223 TMcoord 83: 40V N\n    test 224 TMcoord 84: 43X N\n    test 225 TMcoord 85: 35N N\n    test 226 TMcoord 86: 44P N\n    test 227 TMcoord 87: 41N N\n    test 228 TMcoord 88: 38Q N\n    test 229 TMcoord 89: 43X N\n    test 230 TMcoord 90: 36V N\n    test 231 TMcoord 91: 34Q N\n    test 232 TMcoord 92: 35W N\n    test 233 TMcoord 93: 45U N\n    test 234 TMcoord 94: 40R N\n    test 235 TMcoord 95: 36R N\n    test 236 TMcoord 96: 35S N\n    test 237 TMcoord 97: 41R N\n    test 238 TMcoord 98: 39Q N\n    test 239 TMcoord 99: 37T N\n    test 240 TMcoord 100: 42P N\n    test 241 TMcoord 101: 35T N\n    test 242 TMcoord 102: 34Q N\n    test 243 TMcoord 103: 41T N\n    test 244 TMcoord 104: 43R N\n    test 245 TMcoord 105: 34Q N\n    test 246 TMcoord 106: 45P N\n    test 247 TMcoord 107: 31P N\n    test 248 TMcoord 108: 44V N\n    test 249 TMcoord 109: 42X N\n    test 250 TMcoord 110: 33R N\n    test 251 TMcoord 111: 37W N\n    test 252 TMcoord 112: 31S N\n    test 253 TMcoord 113: 42N N\n    test 254 TMcoord 114: 39N N\n    test 255 TMcoord 115: 39T N\n    test 256 TMcoord 116: 39P N\n    test 257 TMcoord 117: 34U N\n    test 258 TMcoord 118: 41P N\n    test 259 TMcoord 119: 37R N\n    test 260 TMcoord 120: 44Q N\n    test 261 TMcoord 121: 32V N\n    test 262 TMcoord 122: 41R N\n    test 263 TMcoord 123: 36T N\n    test 264 TMcoord 124: 42U N\n    test 265 TMcoord 125: 42U N\n    test 266 TMcoord 126: 39T N\n    test 267 TMcoord 127: 32T N\n    test 268 TMcoord 128: 32Q N\n    test 269 TMcoord 129: 38P N\n    test 270 TMcoord 130: 34Q N\n    test 271 TMcoord 131: 36V N\n    test 272 TMcoord 132: 36T N\n    test 273 TMcoord 133: 43T N\n    test 274 TMcoord 134: 41W N\n    test 275 TMcoord 135: 32V N\n    test 276 TMcoord 136: 39X N\n    test 277 TMcoord 137: 32U N\n    test 278 TMcoord 138: 37X N\n    test 279 TMcoord 139: 35N N\n    test 280 TMcoord 140: 36P N\n    test 281 TMcoord 141: 31S N\n    test 282 TMcoord 142: 36N N\n    test 283 TMcoord 143: 42S N\n    test 284 TMcoord 144: 44N N\n    test 285 TMcoord 145: 44P N\n    test 286 TMcoord 146: 39U N\n    test 287 TMcoord 147: 45Q N\n    test 288 TMcoord 148: 41W N\n    test 289 TMcoord 149: 41N N\n    test 290 TMcoord 150: 32S N\n    test 291 TMcoord 151: 32N N\n    test 292 TMcoord 152: 32T N\n    test 293 TMcoord 153: 38R N\n    test 294 TMcoord 154: 32V N\n    test 295 TMcoord 155: 37Q N\n    test 296 TMcoord 156: 44N N\n    test 297 TMcoord 157: 34W N\n    test 298 TMcoord 158: 45N N\n    test 299 TMcoord 159: 42S N\n    test 300 TMcoord 160: 40T N\n    test 301 TMcoord 161: 31U N\n    test 302 TMcoord 162: 45Q N\n    test 303 TMcoord 163: 40U N\n    test 304 TMcoord 164: 45T N\n    test 305 TMcoord 165: 40R N\n    test 306 TMcoord 166: 31V N\n    test 307 TMcoord 167: 45P N\n    test 308 TMcoord 168: 43W N\n    test 309 TMcoord 169: 43U N\n    test 310 TMcoord 170: 44V N\n    test 311 TMcoord 171: 40P N\n    test 312 TMcoord 172: 36Q N\n    test 313 TMcoord 173: 42Q N\n    test 314 TMcoord 174: 41Q N\n    test 315 TMcoord 175: 32S N\n    test 316 TMcoord 176: 39P N\n    test 317 TMcoord 177: 39Q N\n    test 318 TMcoord 178: 39T N\n    test 319 TMcoord 179: 34U N\n    test 320 TMcoord 180: 32W N\n    test 321 TMcoord 181: 41U N\n    test 322 TMcoord 182: 31Q N\n    test 323 TMcoord 183: 40N N\n    test 324 TMcoord 184: 40T N\n    test 325 TMcoord 185: 38P N\n    test 326 TMcoord 186: 44P N\n    test 327 TMcoord 187: 40N N\n    test 328 TMcoord 188: 44V N\n    test 329 TMcoord 189: 41V N\n    test 330 TMcoord 190: 43Q N\n    test 331 TMcoord 191: 43X N\n    test 332 TMcoord 192: 39N N\n    test 333 TMcoord 193: 38T N\n    test 334 TMcoord 194: 32R N\n    test 335 TMcoord 195: 37S N\n    test 336 TMcoord 196: 44W N\n    test 337 TMcoord 197: 43V N\n    test 338 TMcoord 198: 35T N\n    test 339 TMcoord 199: 44W N\n    test 340 TMcoord 200: 44X N\n    test 341 TMcoord 201: 33Q N\n    test 342 TMcoord 202: 40W N\n    test 343 TMcoord 203: 43S N\n    test 344 TMcoord 204: 32U N\n    test 345 TMcoord 205: 33V N\n    test 346 TMcoord 206: 34R N\n    test 347 TMcoord 207: 39S N\n    test 348 TMcoord 208: 43W N\n    test 349 TMcoord 209: 39T N\n    test 350 TMcoord 210: 31W N\n    test 351 TMcoord 211: 45R N\n    test 352 TMcoord 212: 34W N\n    test 353 TMcoord 213: 32T N\n    test 354 TMcoord 214: 31P N\n    test 355 TMcoord 215: 44V N\n    test 356 TMcoord 216: 45U N\n    test 357 TMcoord 217: 43R N\n    test 358 TMcoord 218: 31N N\n    test 359 TMcoord 219: 43T N\n    test 360 TMcoord 220: 45R N\n    test 361 TMcoord 221: 39N N\n    test 362 TMcoord 222: 37S N\n    test 363 TMcoord 223: 31R N\n    test 364 TMcoord 224: 38Q N\n    test 365 TMcoord 225: 40V N\n    test 366 TMcoord 226: 45N N\n    test 367 TMcoord 227: 44R N\n    test 368 TMcoord 228: 43P N\n    test 369 TMcoord 229: 42P N\n    test 370 TMcoord 230: 45S N\n    test 371 TMcoord 231: 42N N\n    test 372 TMcoord 232: 38S N\n    test 373 TMcoord 233: 32T N\n    test 374 TMcoord 234: 41T N\n    test 375 TMcoord 235: 34S N\n    test 376 TMcoord 236: 40R N\n    test 377 TMcoord 237: 35V N\n    test 378 TMcoord 238: 38N N\n    test 379 TMcoord 239: 40V N\n    test 380 TMcoord 240: 36R N\n    test 381 TMcoord 241: 37W N\n    test 382 TMcoord 242: 45R N\n    test 383 TMcoord 243: 37V N\n    test 384 TMcoord 244: 33P N\n    test 385 TMcoord 245: 32U N\n    test 386 TMcoord 246: 38T N\n    test 387 TMcoord 247: 37N N\n    test 388 TMcoord 248: 36R N\n    test 389 TMcoord 249: 44R N\n    test 390 TMcoord 250: 44Q N\n    test 391 TMcoord 251: 45R N\n    test 392 TMcoord 252: 34N N\n    test 393 TMcoord 253: 43S N\n    test 394 TMcoord 254: 40Q N\n    test 395 TMcoord 255: 33T N\n    test 396 TMcoord 256: 44P N\n    test 397 TMcoord 257: 39N N\n    test 398 TMcoord 258: 40Q N\n\n    all 398 testEpsg.py tests passed (pygeodesy 26.3.26 Python 3.12.10 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 2.1.0 scipy 1.14.1 Math 2 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 isLazy 3 -W  default) 344.011 ms\nrunning /usr/local/bin/p....n3.12 -W default ~/PyGeodesy/test/testErrors.py\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.crosserrors from .errors by testErrors.py line 11\n# lazily imported pygeodesy.exception_chaining from .errors by testErrors.py line 11\n# lazily imported pygeodesy.LenError from .errors by testErrors.py line 11\n# lazily imported pygeodesy.LimitError from .errors by testErrors.py line 11\n# lazily imported pygeodesy.limiterrors from .errors by testErrors.py line 11\n# lazily imported pygeodesy.RangeError from .errors by testErrors.py line 11\n# lazily imported pygeodesy.rangerrors from .errors by testErrors.py line 11\n# lazily imported pygeodesy.ClipError from .errors by testErrors.py line 93\n# lazily imported pygeodesy.CrossError from .errors by testErrors.py line 93\n# lazily imported pygeodesy.CSSError from .css by testErrors.py line 93\n# lazily imported pygeodesy.EcefError from .ecef by testErrors.py line 93\n# lazily imported pygeodesy.EllipticError from .elliptic by testErrors.py line 93\n# lazily imported pygeodesy.EPSGError from .epsg by testErrors.py line 93\n# lazily imported pygeodesy.ETMError from .etm by testErrors.py line 93\n# lazily imported pygeodesy.FrechetError from .frechet by testErrors.py line 93\n# lazily imported pygeodesy.GARSError from .gars by testErrors.py line 93\n# lazily imported pygeodesy.GeohashError from .geohash by testErrors.py line 93\n# lazily imported pygeodesy.GeoidError from .geoids by testErrors.py line 93\n# lazily imported pygeodesy.HausdorffError from .hausdorff by testErrors.py line 93\n# lazily imported pygeodesy.HeightError from .heights by testErrors.py line 93\n# lazily imported pygeodesy.LCCError from .lcc by testErrors.py line 93\n# lazily imported pygeodesy.MGRSError from .errors by testErrors.py line 93\n# lazily imported pygeodesy.OSGRError from .osgr by testErrors.py line 93\n# lazily imported pygeodesy.PGMError from .geoids by testErrors.py line 93\n# lazily imported pygeodesy.PointsError from .errors by testErrors.py line 93\n# lazily imported pygeodesy.SciPyError from .errors by testErrors.py line 93\n# lazily imported pygeodesy.SciPyWarning from .errors by testErrors.py line 93\n# lazily imported pygeodesy.TRFError from .errors by testErrors.py line 93\n# lazily imported pygeodesy.UnitError from .errors by testErrors.py line 93\n# lazily imported pygeodesy.UPSError from .ups by testErrors.py line 93\n# lazily imported pygeodesy.UTMError from .utm by testErrors.py line 93\n# lazily imported pygeodesy.UTMUPSError from .utmups by testErrors.py line 93\n# lazily imported pygeodesy.VectorError from .errors by testErrors.py line 93\n# lazily imported pygeodesy.VincentyError from .ellipsoidalVincenty by testErrors.py line 93\n# lazily imported pygeodesy.WebMercatorError from .webmercator by testErrors.py line 93\n# lazily imported pygeodesy.WGRSError from .wgrs by testErrors.py line 93\n\n    testing testErrors.py 23.03.27 (module pygeodesy.errors 26.02.12) isLazy=3\n    test 1 AssertionError: name ('value'): test1 txt\n    test 2 AssertionError: 'name=value' MISSING: test2 txt\n    test 3 AttributeError: name ('value'): test1 txt\n    test 4 AttributeError: 'name=value' MISSING: test2 txt\n    test 5 IndexError: name ('value'): test1 txt\n    test 6 IndexError: 'name=value' MISSING: test2 txt\n    test 7 LimitError: name ('value'): test1 txt\n    test 8 LimitError: 'name=value' MISSING: test2 txt\n    test 9 NameError: name ('value'): test1 txt\n    test 10 NameError: 'name=value' MISSING: test2 txt\n    test 11 ParseError: name ('value'): test1 txt\n    test 12 ParseError: 'name=value' MISSING: test2 txt\n    test 13 TypeError: type(name) ('value'): test1 txt\n    test 14 TypeError: 'name=value' MISSING: test2 txt\n    test 15 ClipError: name ('value'): test1 txt\n    test 16 ClipError: 'name=value' MISSING: test2 txt\n    test 17 CrossError: name ('value'): test1 txt\n    test 18 CrossError: 'name=value' MISSING: test2 txt\n    test 19 CSSError: name ('value'): test1 txt\n    test 20 CSSError: 'name=value' MISSING: test2 txt\n    test 21 EcefError: name ('value'): test1 txt\n    test 22 EcefError: 'name=value' MISSING: test2 txt\n    test 23 EllipticError: name ('value'): test1 txt\n    test 24 EllipticError: 'name=value' MISSING: test2 txt\n    test 25 EPSGError: name ('value'): test1 txt\n    test 26 EPSGError: 'name=value' MISSING: test2 txt\n    test 27 ETMError: name ('value'): test1 txt\n    test 28 ETMError: 'name=value' MISSING: test2 txt\n    test 29 FrechetError: name ('value'): test1 txt\n    test 30 FrechetError: 'name=value' MISSING: test2 txt\n    test 31 GARSError: name ('value'): test1 txt\n    test 32 GARSError: 'name=value' MISSING: test2 txt\n    test 33 GeohashError: name ('value'): test1 txt\n    test 34 GeohashError: 'name=value' MISSING: test2 txt\n    test 35 GeoidError: name ('value'): test1 txt\n    test 36 GeoidError: 'name=value' MISSING: test2 txt\n    test 37 HausdorffError: name ('value'): test1 txt\n    test 38 HausdorffError: 'name=value' MISSING: test2 txt\n    test 39 HeightError: name ('value'): test1 txt\n    test 40 HeightError: 'name=value' MISSING: test2 txt\n    test 41 LazyImportError: name ('value'): test1 txt\n    test 42 LazyImportError: 'name=value' MISSING: test2 txt\n    test 43 LCCError: name ('value'): test1 txt\n    test 44 LCCError: 'name=value' MISSING: test2 txt\n    test 45 MGRSError: name ('value'): test1 txt\n    test 46 MGRSError: 'name=value' MISSING: test2 txt\n    test 47 OSGRError: name ('value'): test1 txt\n    test 48 OSGRError: 'name=value' MISSING: test2 txt\n    test 49 PGMError: name ('value'): test1 txt\n    test 50 PGMError: 'name=value' MISSING: test2 txt\n    test 51 PointsError: name ('value'): test1 txt\n    test 52 PointsError: 'name=value' MISSING: test2 txt\n    test 53 SciPyError: name ('value'): test1 txt\n    test 54 SciPyError: 'name=value' MISSING: test2 txt\n    test 55 SciPyWarning: name ('value'): test1 txt\n    test 56 SciPyWarning: 'name=value' MISSING: test2 txt\n    test 57 TRFError: name ('value'): test1 txt\n    test 58 TRFError: 'name=value' MISSING: test2 txt\n    test 59 UnitError: name ('value'): test1 txt\n    test 60 UnitError: 'name=value' MISSING: test2 txt\n    test 61 UPSError: name ('value'): test1 txt\n    test 62 UPSError: 'name=value' MISSING: test2 txt\n    test 63 UTMError: name ('value'): test1 txt\n    test 64 UTMError: 'name=value' MISSING: test2 txt\n    test 65 UTMUPSError: name ('value'): test1 txt\n    test 66 UTMUPSError: 'name=value' MISSING: test2 txt\n    test 67 VectorError: name ('value'): test1 txt\n    test 68 VectorError: 'name=value' MISSING: test2 txt\n    test 69 VincentyError: name ('value'): test1 txt\n    test 70 VincentyError: 'name=value' MISSING: test2 txt\n    test 71 WebMercatorError: name ('value'): test1 txt\n    test 72 WebMercatorError: 'name=value' MISSING: test2 txt\n    test 73 WGRSError: name ('value'): test1 txt\n    test 74 WGRSError: 'name=value' MISSING: test2 txt\n# imported pygeodesy.basics into errors.py line 443\n    test 75 _InvalidError: zero (1): invalid\n    test 76 _InvalidError: ValueError('zero (1): invalid')\n    test 77 _InvalidError: one (2) or zero (1): outside\n    test 78 _InvalidError: ValueError('one (2) or zero (1): outside')\n    test 79 _InvalidError: one (2) or zero (1): outside\n    test 80 _InvalidError: RangeError('one (2) or zero (1): outside')\n# imported pygeodesy.streprs into errors.py line 553\n    test 81 _IsnotError: _None (None): not an int or float\n    test 82 _IsnotError: TypeError('_None (None): not an int or float')\n    test 83 _IsnotError: _None (None): not a scalar\n    test 84 _IsnotError: TypeError('_None (None): not a scalar')\n    test 85 _IsnotError: _None (None): not a scalar\n    test 86 _IsnotError: LimitError('_None (None): not a scalar')\n    test 87 LenError: LenError(a, b, c, d) len 1 vs 2 vs 3 vs 4: invalid\n    test 88 crosserrors: True\n    test 89 crosserrors: False\n    test 90 limiterrors: True\n    test 91 limiterrors: False\n    test 92 rangerrors: True\n    test 93 rangerrors: False\n    test 94 exception_chaining: False\n    test 95 exception_chaining: None\n    test 96 exception_chaining: None\n    test 97 _xkwds_get: test1\n    test 98 _xkwds_get: test2\n    test 99 _xkwds_get: _xkwds_get({})\n    test 100 _xkwds_get: _xkwds_get({}, n1='d1', n2='d2')\n    test 101 _xkwds_pop: test1\n    test 102 _xkwds_pop: test2\n    test 103 _xkwds_pop: _xkwds_pop2({})\n    test 104 _xkwds_pop: _xkwds_pop2({}, n1='d1', n2='d2')\n\n    all 104 testErrors.py tests passed (pygeodesy 26.3.26 Python 3.12.10 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 2.1.0 scipy 1.14.1 Math 2 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 isLazy 3 -W  default) 1.178 ms\nrunning /usr/local/bin/p....n3.12 -W default ~/PyGeodesy/test/testEtm.py\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.etm by testEtm.py line 11\n# lazily imported pygeodesy.ExactTransverseMercator from .etm by testEtm.py line 11\n# lazily imported pygeodesy.ellipsoidalNvector by testEtm.py line 115\n# lazily imported pygeodesy.ellipsoidalVincenty by testEtm.py line 115\n\n    testing testEtm.py 23.08.30 (module pygeodesy.etm 25.09.15) isLazy=3\n\n    testExactTransverseMercator(pygeodesy.etm, 25.09.15)\n    test 1 name: test\n    test 2 toStr: datum='WGS84', extendp=True, k0=0.9996, lon0=0.0, name='test'\n# lazily imported pygeodesy.elliptic by etm.py line 354\n\n    test 3 easting: -59401.921148\n    test 4 northing: 4472390.031129\n    test 5 gamma: -0.453697\n    test 6 scale: 0.999643\n    test 7 lat: 40.400000\n    test 8 lon: -3.700000\n    test 9 gamma: -0.453697\n    test 10 scale: 0.999643\n    test 11 easting: -59401.921148\n    test 12 northing: 4472390.031129\n    test 13 gamma: -0.453697\n    test 14 scale: 0.999643\n\n    test 15 easting: 25495.511523\n    test 16 northing: 4461098.320889\n    test 17 gamma: 0.194038\n    test 18 scale: 0.999608\n    test 19 lat: 40.300000\n    test 20 lon: -74.700000\n    test 21 gamma: 0.194038\n    test 22 scale: 0.999608\n    test 23 easting: 25495.511523\n    test 24 northing: 4461098.320889\n    test 25 gamma: 0.194038\n    test 26 scale: 0.999608\n\n    test 27 lat: -2.00000000\n    test 28 lon: 88.00000000\n    test 29 gamma: 67.63332900\n    test 30 scale: 26.33699547\n    test 31 easting: 29735142.378357\n    test 32 northing: 4235043.607933\n    test 33 gamma: 67.633329\n    test 34 scale: 26.336995\n\n    test 35 copy(<class 'type'>): (<class 'pygeodesy.etm.ExactTransverseMercator'>, True)\n    test 36 ExactTransverseMercator.copy(): (<class 'pygeodesy.etm.ExactTransverseMercator'>, True)\n\n    testExactTransverseMercator(pygeodesy.etm, 25.09.15)\n    test 37 name: test\n    test 38 toStr: datum='WGS84', extendp=False, k0=0.9996, lon0=0.0, name='test'\n\n    test 39 easting: -59401.921148\n    test 40 northing: 4472390.031129\n    test 41 gamma: -0.453697\n    test 42 scale: 0.999643\n    test 43 lat: 40.400000\n    test 44 lon: -3.700000\n    test 45 gamma: -0.453697\n    test 46 scale: 0.999643\n    test 47 easting: -59401.921148\n    test 48 northing: 4472390.031129\n    test 49 gamma: -0.453697\n    test 50 scale: 0.999643\n\n    test 51 easting: 25495.511523\n    test 52 northing: 4461098.320889\n    test 53 gamma: 0.194038\n    test 54 scale: 0.999608\n    test 55 lat: 40.300000\n    test 56 lon: -74.700000\n    test 57 gamma: 0.194038\n    test 58 scale: 0.999608\n    test 59 easting: 25495.511523\n    test 60 northing: 4461098.320889\n    test 61 gamma: 0.194038\n    test 62 scale: 0.999608\n\n    test 63 lat: -2.00000000\n    test 64 lon: 88.00000000\n    test 65 gamma: 67.63332900\n    test 66 scale: 26.33699547\n\n    test 67 easting: 0.000\n    test 68 northing: -9997964.943\n    test 69 gamma: 120.000\n    test 70 scale: 1.000\n    test 71 lat: -90.000\n    test 72 lon: 180.000  FAILED, KNOWN, expected 0.000\n    test 73 gamma: -180.000\n    test 74 scale: 1.000\n\n    test 75 copy(<class 'type'>): (<class 'pygeodesy.etm.ExactTransverseMercator'>, True)\n    test 76 ExactTransverseMercator.copy(): (<class 'pygeodesy.etm.ExactTransverseMercator'>, True)\n\n    testLatLon(pygeodesy.etm, 25.09.15)\n    test 77 toEtm8: 45 S -20297797 5336899\n    test 78 name: test\n    test 79 toUtm: 45 S -20297797 5336899\n    test 80 name: test\n    test 81 toETM5: 45 S -20297797 5336899\n    test 82 copy(<class 'type'>): (<class 'pygeodesy.etm.Etm'>, True)\n    test 83 .name: test\n    test 84 Etm.copy(): (<class 'pygeodesy.etm.Etm'>, True)\n    test 85 .name: test\n    test 86 parse: 31 N 448251 5411932\n    test 87 name: parse\n    test 88 parse: 31 N 448251 5411932\n    test 89 name: parse\n\n    testLatLon(pygeodesy.etm, 25.09.15)\n    test 90 toEtm8: 45 S -20297797 5336899\n    test 91 name: test\n    test 92 toUtm: 45 S -20297797 5336899\n    test 93 name: test\n    test 94 toETM5: 45 S -20297797 5336899\n    test 95 copy(<class 'type'>): (<class 'pygeodesy.etm.Etm'>, True)\n    test 96 .name: test\n    test 97 Etm.copy(): (<class 'pygeodesy.etm.Etm'>, True)\n    test 98 .name: test\n    test 99 parse: 31 N 448251 5411932\n    test 100 name: parse\n    test 101 parse: 31 N 448251 5411932\n    test 102 name: parse\n\n    1 of 102 testEtm.py tests (1.0%) FAILED, ALL KNOWN (pygeodesy 26.3.26 Python 3.12.10 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 2.1.0 scipy 1.14.1 Math 2 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 isLazy 3 -W  default) 449.234 ms\nrunning /usr/local/bin/p....n3.12 -W default ~/PyGeodesy/test/testEtmTMcoords.py\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.Ellipsoids from .ellipsoids by testTMcoords.py line 14\n# lazily imported pygeodesy.EPS from .constants by testTMcoords.py line 14\n# lazily imported pygeodesy.RangeError from .errors by testTMcoords.py line 14\n# lazily imported pygeodesy.etm by testEtmTMcoords.py line 17\n# lazily imported pygeodesy.Etm from .etm by testEtmTMcoords.py line 17\n# lazily imported pygeodesy.toEtm8 from .etm by testEtmTMcoords.py line 17\n\n    testing testEtmTMcoords.py 24.03.22 (module pygeodesy.etm 25.09.15) isLazy=3\n# lazily imported pygeodesy.elliptic by etm.py line 354\n    test 1 line 1 toEtm8.easting: 1548706.791619\n    test 2 line 1 toEtm8.northing: 8451449.198772\n    test 3 line 1 toEtm8.gamma: 43.922790\n    test 4 line 1 toEtm8.scale: 1.029060\n    test 5 line 1 toEtm8.lat: 70.579277\n    test 6 line 1 toEtm8.lon: 45.599420\n    test 7 line 2 toEtm8.easting: 2624150.740929\n    test 8 line 2 toEtm8.northing: 1204434.041605\n    test 9 line 2 toEtm8.gamma: 4.292619\n    test 10 line 2 toEtm8.scale: 1.086051\n    test 11 line 2 toEtm8.lat: 10.018894\n    test 12 line 2 toEtm8.lon: 23.313324\n    test 13 line 3 toEtm8.easting: 9855841.232935\n    test 14 line 3 toEtm8.northing: 6145496.115155\n    test 15 line 3 toEtm8.gamma: 53.348315\n    test 16 line 3 toEtm8.scale: 2.445098\n    test 17 line 3 toEtm8.lat: 19.479896\n    test 18 line 3 toEtm8.lon: 75.662049\n    test 19 line 4 toEtm8.easting: 3206390.691996\n    test 20 line 4 toEtm8.northing: 2650745.400406\n    test 21 line 4 toEtm8.gamma: 11.666950\n    test 22 line 4 toEtm8.scale: 1.129359\n    test 23 line 4 toEtm8.lat: 21.072465\n    test 24 line 4 toEtm8.lon: 29.828684\n    test 25 line 5 toEtm8.easting: 4328154.083501\n    test 26 line 5 toEtm8.northing: 749647.623690\n    test 27 line 5 toEtm8.gamma: 4.024317\n    test 28 line 5 toEtm8.scale: 1.240829\n    test 29 line 5 toEtm8.lat: 5.458957\n    test 30 line 5 toEtm8.lon: 36.385237\n    test 31 line 6 toEtm8.easting: 847598.266514\n    test 32 line 6 toEtm8.northing: 7947180.962440\n    test 33 line 6 toEtm8.gamma: 21.639091\n    test 34 line 6 toEtm8.scale: 1.008399\n    test 35 line 6 toEtm8.lat: 70.175454\n    test 36 line 6 toEtm8.lon: 22.865350\n    test 37 line 7 toEtm8.easting: 2727657.337974\n    test 38 line 7 toEtm8.northing: 8283916.696410\n    test 39 line 7 toEtm8.gamma: 55.690909\n    test 40 line 7 toEtm8.scale: 1.091942\n    test 41 line 7 toEtm8.lat: 61.965605\n    test 42 line 7 toEtm8.lon: 58.931371\n    test 43 line 8 toEtm8.easting: 2331001.751890\n    test 44 line 8 toEtm8.northing: 1313608.224751\n    test 45 line 8 toEtm8.gamma: 4.214690\n    test 46 line 8 toEtm8.scale: 1.067599\n    test 47 line 8 toEtm8.lat: 11.116050\n    test 48 line 8 toEtm8.lon: 20.901069\n    test 49 line 9 toEtm8.easting: 6035557.239480\n    test 50 line 9 toEtm8.northing: 5791770.791879\n    test 51 line 9 toEtm8.gamma: 43.698170\n    test 52 line 9 toEtm8.scale: 1.481260\n    test 53 line 9 toEtm8.lat: 32.210543\n    test 54 line 9 toEtm8.lon: 60.705849\n    test 55 line 10 toEtm8.easting: 1064553.125852\n    test 56 line 10 toEtm8.northing: 9417273.737208\n    test 57 line 10 toEtm8.gamma: 61.100380\n    test 58 line 10 toEtm8.scale: 1.013475\n    test 59 line 10 toEtm8.lat: 79.187451\n    test 60 line 10 toEtm8.lon: 61.532382\n    test 61 line 11 toEtm8.easting: 1400137.116164\n    test 62 line 11 toEtm8.northing: 9616907.017686\n    test 63 line 11 toEtm8.gamma: 74.527087\n    test 64 line 11 toEtm8.scale: 1.023640\n    test 65 line 11 toEtm8.lat: 77.103759\n    test 66 line 11 toEtm8.lon: 74.899105\n    test 67 line 12 toEtm8.easting: 9860691.016626\n    test 68 line 12 toEtm8.northing: 7433039.143328\n    test 69 line 12 toEtm8.gamma: 65.357693\n    test 70 line 12 toEtm8.scale: 2.438973\n    test 71 line 12 toEtm8.lat: 21.889514\n    test 72 line 12 toEtm8.lon: 80.019886\n    test 73 line 13 toEtm8.easting: 8076501.833695\n    test 74 line 13 toEtm8.northing: 8561614.174782\n    test 75 line 13 toEtm8.gamma: 75.073393\n    test 76 line 13 toEtm8.scale: 1.906202\n    test 77 line 13 toEtm8.lat: 30.536296\n    test 78 line 13 toEtm8.lon: 82.186178\n    test 79 line 14 toEtm8.easting: 3335099.866623\n    test 80 line 14 toEtm8.northing: 6740519.084015\n    test 81 line 14 toEtm8.gamma: 40.611821\n    test 82 line 14 toEtm8.scale: 1.139021\n    test 83 line 14 toEtm8.lat: 49.990485\n    test 84 line 14 toEtm8.lon: 48.203179\n    test 85 line 15 toEtm8.easting: 12051574.928500\n    test 86 line 15 toEtm8.northing: 6587213.051951\n    test 87 line 15 toEtm8.gamma: 59.033237\n    test 88 line 15 toEtm8.scale: 3.357469\n    test 89 line 15 toEtm8.lat: 14.486312\n    test 90 line 15 toEtm8.lon: 80.905137\n    test 91 line 16 toEtm8.easting: 5387578.735298\n    test 92 line 16 toEtm8.northing: 4111216.907168\n    test 93 line 16 toEtm8.gamma: 27.574337\n    test 94 line 16 toEtm8.scale: 1.379357\n    test 95 line 16 toEtm8.lat: 25.936824\n    test 96 line 16 toEtm8.lon: 49.913598\n    test 97 line 17 toEtm8.easting: 2622214.380233\n    test 98 line 17 toEtm8.northing: 8678923.984567\n    test 99 line 17 toEtm8.gamma: 61.697275\n    test 100 line 17 toEtm8.scale: 1.084810\n    test 101 line 17 toEtm8.lat: 64.402196\n    test 102 line 17 toEtm8.lon: 64.091395\n    test 103 line 18 toEtm8.easting: 5068474.169633\n    test 104 line 18 toEtm8.northing: 9492066.993709\n    test 105 line 18 toEtm8.gamma: 83.156740\n    test 106 line 18 toEtm8.scale: 1.329990\n    test 107 line 18 toEtm8.lat: 48.451354\n    test 108 line 18 toEtm8.lon: 84.856198\n    test 109 line 19 toEtm8.easting: 738062.047779\n    test 110 line 19 toEtm8.northing: 3031007.074116\n    test 111 line 19 toEtm8.gamma: 3.416802\n    test 112 line 19 toEtm8.scale: 1.006332\n    test 113 line 19 toEtm8.lat: 27.203895\n    test 114 line 19 toEtm8.lon: 7.440229\n    test 115 line 20 toEtm8.easting: 1944413.834565\n    test 116 line 20 toEtm8.northing: 9613299.224493\n    test 117 line 20 toEtm8.gamma: 78.462831\n    test 118 line 20 toEtm8.scale: 1.046134\n    test 119 line 20 toEtm8.lat: 72.509000\n    test 120 line 20 toEtm8.lon: 78.982283\n    test 121 line 21 toEtm8.easting: 2114521.418406\n    test 122 line 21 toEtm8.northing: 4954077.440098\n    test 123 line 21 toEtm8.gamma: 17.571878\n    test 124 line 21 toEtm8.scale: 1.055093\n    test 125 line 21 toEtm8.lat: 41.824954\n    test 126 line 21 toEtm8.lon: 25.392744\n    test 127 line 22 toEtm8.easting: 620365.905090\n    test 128 line 22 toEtm8.northing: 4755542.026562\n    test 129 line 22 toEtm8.gamma: 5.152022\n    test 130 line 22 toEtm8.scale: 1.004338\n    test 131 line 22 toEtm8.lat: 42.701376\n    test 132 line 22 toEtm8.lon: 7.572738\n    test 133 line 23 toEtm8.easting: 263004.770989\n    test 134 line 23 toEtm8.northing: 4493669.762451\n    test 135 line 23 toEtm8.gamma: 2.020523\n    test 136 line 23 toEtm8.scale: 1.000452\n    test 137 line 23 toEtm8.lat: 40.552052\n    test 138 line 23 toEtm8.lon: 3.106056\n    test 139 line 24 toEtm8.easting: 3217221.739462\n    test 140 line 24 toEtm8.northing: 437776.119161\n    test 141 line 24 toEtm8.gamma: 1.848169\n    test 142 line 24 toEtm8.scale: 1.130558\n    test 143 line 24 toEtm8.lat: 3.501242\n    test 144 line 24 toEtm8.lon: 27.806507\n    test 145 line 25 toEtm8.easting: 14661142.444961\n    test 146 line 25 toEtm8.northing: 7476100.824185\n    test 147 line 25 toEtm8.gamma: 68.376669\n    test 148 line 25 toEtm8.scale: 4.896650\n    test 149 line 25 toEtm8.lat: 10.148715\n    test 150 line 25 toEtm8.lon: 85.373768\n    test 151 line 26 toEtm8.easting: 967777.158554\n    test 152 line 26 toEtm8.northing: 6615684.266592\n    test 153 line 26 toEtm8.gamma: 14.410044\n    test 154 line 26 toEtm8.scale: 1.011100\n    test 155 line 26 toEtm8.lat: 58.582623\n    test 156 line 26 toEtm8.lon: 16.755558\n    test 157 line 27 toEtm8.easting: 7558840.728461\n    test 158 line 27 toEtm8.northing: 4144728.130764\n    test 159 line 27 toEtm8.gamma: 32.557264\n    test 160 line 27 toEtm8.scale: 1.791490\n    test 161 line 27 toEtm8.lat: 19.793004\n    test 162 line 27 toEtm8.lon: 61.746763\n    test 163 line 28 toEtm8.easting: 1056008.314161\n    test 164 line 28 toEtm8.northing: 9290799.692669\n    test 165 line 28 toEtm8.gamma: 55.843278\n    test 166 line 28 toEtm8.scale: 1.013253\n    test 167 line 28 toEtm8.lat: 78.666776\n    test 168 line 28 toEtm8.lon: 56.365355\n    test 169 line 29 toEtm8.easting: 1943965.134687\n    test 170 line 29 toEtm8.northing: 1389972.228690\n    test 171 line 29 toEtm8.gamma: 3.774869\n    test 172 line 29 toEtm8.scale: 1.046724\n    test 173 line 29 toEtm8.lat: 11.998788\n    test 174 line 29 toEtm8.lon: 17.597873\n    test 175 line 30 toEtm8.easting: 5803077.072902\n    test 176 line 30 toEtm8.northing: 5649957.943659\n    test 177 line 30 toEtm8.gamma: 41.717943\n    test 178 line 30 toEtm8.scale: 1.442572\n    test 179 line 30 toEtm8.lat: 32.540378\n    test 180 line 30 toEtm8.lon: 58.764613\n    test 181 line 31 toEtm8.easting: 2928716.986009\n    test 182 line 31 toEtm8.northing: 5731835.058317\n    test 183 line 31 toEtm8.gamma: 28.538550\n    test 184 line 31 toEtm8.scale: 1.106780\n    test 185 line 31 toEtm8.lat: 45.160356\n    test 186 line 31 toEtm8.lon: 37.465285\n    test 187 line 32 toEtm8.easting: 326141.975756\n    test 188 line 32 toEtm8.northing: 8881325.164543\n    test 189 line 32 toEtm8.gamma: 16.111415\n    test 190 line 32 toEtm8.scale: 1.000900\n    test 191 line 32 toEtm8.lat: 79.584190\n    test 192 line 32 toEtm8.lon: 16.367006\n    test 193 line 33 toEtm8.easting: 3933015.267450\n    test 194 line 33 toEtm8.northing: 7932373.909512\n    test 195 line 33 toEtm8.gamma: 58.577424\n    test 196 line 33 toEtm8.scale: 1.194811\n    test 197 line 33 toEtm8.lat: 52.470664\n    test 198 line 33 toEtm8.lon: 64.125580\n    test 199 line 34 toEtm8.easting: 8598926.983213\n    test 200 line 34 toEtm8.northing: 6214135.167503\n    test 201 line 34 toEtm8.gamma: 52.612878\n    test 202 line 34 toEtm8.scale: 2.051367\n    test 203 line 34 toEtm8.lat: 23.702673\n    test 204 line 34 toEtm8.lon: 72.630363\n    test 205 line 35 toEtm8.easting: 6620553.333772\n    test 206 line 35 toEtm8.northing: 6540527.122948\n    test 207 line 35 toEtm8.gamma: 52.350140\n    test 208 line 35 toEtm8.scale: 1.586614\n    test 209 line 35 toEtm8.lat: 32.603520\n    test 210 line 35 toEtm8.lon: 67.280123\n    test 211 line 36 toEtm8.easting: 1515136.758292\n    test 212 line 36 toEtm8.northing: 3858996.087537\n    test 213 line 36 toEtm8.gamma: 9.225127\n    test 214 line 36 toEtm8.scale: 1.028029\n    test 215 line 36 toEtm8.lat: 33.776224\n    test 216 line 36 toEtm8.lon: 16.280993\n    test 217 line 37 toEtm8.easting: 479854.373445\n    test 218 line 37 toEtm8.northing: 8980501.389896\n    test 219 line 37 toEtm8.gamma: 25.021222\n    test 220 line 37 toEtm8.scale: 1.002415\n    test 221 line 37 toEtm8.lat: 79.932747\n    test 222 line 37 toEtm8.lon: 25.363622\n    test 223 line 38 toEtm8.easting: 5243446.564940\n    test 224 line 38 toEtm8.northing: 140657.213960\n    test 225 line 38 toEtm8.gamma: 0.862817\n    test 226 line 38 toEtm8.scale: 1.360358\n    test 227 line 38 toEtm8.lat: 0.935056\n    test 228 line 38 toEtm8.lon: 42.538824\n    test 229 line 39 toEtm8.easting: 12806457.923218\n    test 230 line 39 toEtm8.northing: 7170118.684675\n    test 231 line 39 toEtm8.gamma: 64.708921\n    test 232 line 39 toEtm8.scale: 3.740588\n    test 233 line 39 toEtm8.lat: 13.490862\n    test 234 line 39 toEtm8.lon: 83.178380\n    test 235 line 40 toEtm8.easting: 1202993.459158\n    test 236 line 40 toEtm8.northing: 5557316.053599\n    test 237 line 40 toEtm8.gamma: 12.579061\n    test 238 line 40 toEtm8.scale: 1.017426\n    test 239 line 40 toEtm8.lat: 48.979057\n    test 240 line 40 toEtm8.lon: 16.474542\n    test 241 line 41 toEtm8.easting: 1729088.710196\n    test 242 line 41 toEtm8.northing: 7770874.289954\n    test 243 line 41 toEtm8.gamma: 36.021783\n    test 244 line 41 toEtm8.scale: 1.036397\n    test 245 line 41 toEtm8.lat: 65.036016\n    test 246 line 41 toEtm8.lon: 38.729091\n    test 247 line 42 toEtm8.easting: 2437301.517425\n    test 248 line 42 toEtm8.northing: 5539327.748318\n    test 249 line 42 toEtm8.gamma: 23.461879\n    test 250 line 42 toEtm8.scale: 1.073459\n    test 251 line 42 toEtm8.lat: 45.510091\n    test 252 line 42 toEtm8.lon: 31.303729\n    test 253 line 43 toEtm8.easting: 3647186.135066\n    test 254 line 43 toEtm8.northing: 2086412.330983\n    test 255 line 43 toEtm8.gamma: 10.023991\n    test 256 line 43 toEtm8.scale: 1.168707\n    test 257 line 43 toEtm8.lat: 16.058010\n    test 258 line 43 toEtm8.lon: 32.520026\n    test 259 line 44 toEtm8.easting: 1818497.243556\n    test 260 line 44 toEtm8.northing: 4275471.745057\n    test 261 line 44 toEtm8.gamma: 12.499656\n    test 262 line 44 toEtm8.scale: 1.040604\n    test 263 line 44 toEtm8.lat: 36.845200\n    test 264 line 44 toEtm8.lon: 20.282283\n    test 265 line 45 toEtm8.easting: 3751304.113783\n    test 266 line 45 toEtm8.northing: 5130454.001592\n    test 267 line 45 toEtm8.gamma: 28.959707\n    test 268 line 45 toEtm8.scale: 1.177681\n    test 269 line 45 toEtm8.lat: 37.865481\n    test 270 line 45 toEtm8.lon: 41.990402\n    test 271 line 46 toEtm8.easting: 2616733.138544\n    test 272 line 46 toEtm8.northing: 394644.463815\n    test 273 line 46 toEtm8.gamma: 1.390425\n    test 274 line 46 toEtm8.scale: 1.085595\n    test 275 line 46 toEtm8.lat: 3.287272\n    test 276 line 46 toEtm8.lon: 22.917604\n    test 277 line 47 toEtm8.easting: 1756506.573942\n    test 278 line 47 toEtm8.northing: 5570393.986394\n    test 279 line 47 toEtm8.gamma: 17.897894\n    test 280 line 47 toEtm8.scale: 1.037732\n    test 281 line 47 toEtm8.lat: 47.813686\n    test 282 line 47 toEtm8.lon: 23.545092\n    test 283 line 48 toEtm8.easting: 8752461.894711\n    test 284 line 48 toEtm8.northing: 6087728.152284\n    test 285 line 48 toEtm8.gamma: 51.628465\n    test 286 line 48 toEtm8.scale: 2.095465\n    test 287 line 48 toEtm8.lat: 22.836853\n    test 288 line 48 toEtm8.lon: 72.604385\n    test 289 line 49 toEtm8.easting: 1309272.216432\n    test 290 line 49 toEtm8.northing: 59520.028899\n    test 291 line 49 toEtm8.gamma: 0.109069\n    test 292 line 49 toEtm8.scale: 1.020897\n    test 293 line 49 toEtm8.lat: 0.527262\n    test 294 line 49 toEtm8.lon: 11.684209\n    test 295 line 50 toEtm8.easting: 328652.277129\n    test 296 line 50 toEtm8.northing: 2233043.958874\n    test 297 line 50 toEtm8.gamma: 1.084863\n    test 298 line 50 toEtm8.scale: 1.000935\n    test 299 line 50 toEtm8.lat: 20.166742\n    test 300 line 50 toEtm8.lon: 3.143948\n    test 301 line 51 toEtm8.easting: 8637959.716447\n    test 302 line 51 toEtm8.northing: 9190635.156031\n    test 303 line 51 toEtm8.gamma: 81.802563\n    test 304 line 51 toEtm8.scale: 2.054329\n    test 305 line 51 toEtm8.lat: 28.604629\n    test 306 line 51 toEtm8.lon: 85.988721\n    test 307 line 52 toEtm8.easting: 8548521.455147\n    test 308 line 52 toEtm8.northing: 9172410.943282\n    test 309 line 52 toEtm8.gamma: 81.583928\n    test 310 line 52 toEtm8.scale: 2.029641\n    test 311 line 52 toEtm8.lat: 28.984048\n    test 312 line 52 toEtm8.lon: 85.833448\n    test 313 line 53 toEtm8.easting: 796987.281104\n    test 314 line 53 toEtm8.northing: 7677446.357675\n    test 315 line 53 toEtm8.gamma: 18.084472\n    test 316 line 53 toEtm8.scale: 1.007381\n    test 317 line 53 toEtm8.lat: 68.071020\n    test 318 line 53 toEtm8.lon: 19.392823\n    test 319 line 54 toEtm8.easting: 3291036.496762\n    test 320 line 54 toEtm8.northing: 9513199.600666\n    test 321 line 54 toEtm8.gamma: 80.890254\n    test 322 line 54 toEtm8.scale: 1.134826\n    test 323 line 54 toEtm8.lat: 61.416576\n    test 324 line 54 toEtm8.lon: 81.981611\n    test 325 line 55 toEtm8.easting: 7087225.330906\n    test 326 line 55 toEtm8.northing: 8382823.855822\n    test 327 line 55 toEtm8.gamma: 72.253756\n    test 328 line 55 toEtm8.scale: 1.678070\n    test 329 line 55 toEtm8.lat: 35.074753\n    test 330 line 55 toEtm8.lon: 79.496003\n    test 331 line 56 toEtm8.easting: 5090358.125724\n    test 332 line 56 toEtm8.northing: 4318294.133489\n    test 333 line 56 toEtm8.gamma: 28.266280\n    test 334 line 56 toEtm8.scale: 1.336264\n    test 335 line 56 toEtm8.lat: 28.078790\n    test 336 line 56 toEtm8.lon: 48.684350\n\n    test skipped (1): line 57 toEtm8.'84.986930137199 2.067177857261 20163.0752214330146 9438635.9888499043815 2.059277291707588222 .99960496589466017622'\n    test 337 line 58 toEtm8.easting: 3447670.550785\n    test 338 line 58 toEtm8.northing: 3680238.888223\n    test 339 line 58 toEtm8.gamma: 17.934948\n    test 340 line 58 toEtm8.scale: 1.149831\n    test 341 line 58 toEtm8.lat: 28.473948\n    test 342 line 58 toEtm8.lon: 34.127306\n    test 343 line 59 toEtm8.easting: 3396522.906798\n    test 344 line 59 toEtm8.northing: 8093659.687593\n    test 345 line 59 toEtm8.gamma: 57.747117\n    test 346 line 59 toEtm8.scale: 1.144006\n    test 347 line 59 toEtm8.lat: 56.629354\n    test 348 line 59 toEtm8.lon: 62.196474\n    test 349 line 60 toEtm8.easting: 11249894.100784\n    test 350 line 60 toEtm8.northing: 1619226.506299\n    test 351 line 60 toEtm8.gamma: 14.210358\n    test 352 line 60 toEtm8.scale: 3.048347\n    test 353 line 60 toEtm8.lat: 4.747762\n    test 354 line 60 toEtm8.lon: 70.932555\n    test 355 line 61 toEtm8.easting: 6808805.230950\n    test 356 line 61 toEtm8.northing: 8044779.777369\n    test 357 line 61 toEtm8.gamma: 68.242008\n    test 358 line 61 toEtm8.scale: 1.621464\n    test 359 line 61 toEtm8.lat: 35.882113\n    test 360 line 61 toEtm8.lon: 76.741849\n    test 361 line 62 toEtm8.easting: 2306021.556506\n    test 362 line 62 toEtm8.northing: 757191.592866\n    test 363 line 62 toEtm8.gamma: 2.385686\n    test 364 line 62 toEtm8.scale: 1.066159\n    test 365 line 62 toEtm8.lat: 6.420705\n    test 366 line 62 toEtm8.lon: 20.416028\n    test 367 line 63 toEtm8.easting: 1547406.313862\n    test 368 line 63 toEtm8.northing: 6048712.751824\n    test 369 line 63 toEtm8.gamma: 18.474372\n    test 370 line 63 toEtm8.scale: 1.029123\n    test 371 line 63 toEtm8.lat: 52.335248\n    test 372 line 63 toEtm8.lon: 22.879294\n    test 373 line 64 toEtm8.easting: 2430467.650383\n    test 374 line 64 toEtm8.northing: 7557167.613972\n    test 375 line 64 toEtm8.gamma: 42.110021\n    test 376 line 64 toEtm8.scale: 1.072759\n    test 377 line 64 toEtm8.lat: 59.846391\n    test 378 line 64 toEtm8.lon: 46.262536\n    test 379 line 65 toEtm8.easting: 2334053.905830\n    test 380 line 65 toEtm8.northing: 1948076.966582\n    test 381 line 65 toEtm8.gamma: 6.353185\n    test 382 line 65 toEtm8.scale: 1.067733\n    test 383 line 65 toEtm8.lat: 16.461790\n    test 384 line 65 toEtm8.lon: 21.433269\n    test 385 line 66 toEtm8.easting: 5564175.186737\n    test 386 line 66 toEtm8.northing: 1836851.660412\n    test 387 line 66 toEtm8.gamma: 11.870682\n    test 388 line 66 toEtm8.scale: 1.408265\n    test 389 line 66 toEtm8.lat: 11.707905\n    test 390 line 66 toEtm8.lon: 45.827075\n    test 391 line 67 toEtm8.easting: 6118505.590359\n    test 392 line 67 toEtm8.northing: 7631684.552421\n    test 393 line 67 toEtm8.gamma: 62.477323\n    test 394 line 67 toEtm8.scale: 1.493420\n    test 395 line 67 toEtm8.lat: 38.519075\n    test 396 line 67 toEtm8.lon: 71.935918\n    test 397 line 68 toEtm8.easting: 7365359.294665\n    test 398 line 68 toEtm8.northing: 8818194.451531\n    test 399 line 68 toEtm8.gamma: 77.207042\n    test 400 line 68 toEtm8.scale: 1.737639\n    test 401 line 68 toEtm8.lat: 34.264007\n    test 402 line 68 toEtm8.lon: 82.647878\n    test 403 line 69 toEtm8.easting: 36187.342415\n    test 404 line 69 toEtm8.northing: 2142565.324802\n    test 405 line 69 toEtm8.gamma: 0.114334\n    test 406 line 69 toEtm8.scale: 0.999616\n    test 407 line 69 toEtm8.lat: 19.376880\n    test 408 line 69 toEtm8.lon: 0.344605\n    test 409 line 70 toEtm8.easting: 2380328.546851\n    test 410 line 70 toEtm8.northing: 8440109.872384\n    test 411 line 70 toEtm8.gamma: 55.076067\n    test 412 line 70 toEtm8.scale: 1.069658\n    test 413 line 70 toEtm8.lat: 65.075805\n    test 414 line 70 toEtm8.lon: 57.653438\n    test 415 line 71 toEtm8.easting: 582511.608826\n    test 416 line 71 toEtm8.northing: 8876047.217071\n    test 417 line 71 toEtm8.gamma: 27.133300\n    test 418 line 71 toEtm8.scale: 1.003749\n    test 419 line 71 toEtm8.lat: 78.691870\n    test 420 line 71 toEtm8.lon: 27.591736\n    test 421 line 72 toEtm8.easting: 899441.350477\n    test 422 line 72 toEtm8.northing: 4582046.430516\n    test 423 line 72 toEtm8.gamma: 7.031211\n    test 424 line 72 toEtm8.scale: 1.009573\n    test 425 line 72 toEtm8.lat: 40.893022\n    test 426 line 72 toEtm8.lon: 10.668804\n    test 427 line 73 toEtm8.easting: 5022485.124337\n    test 428 line 73 toEtm8.northing: 9741774.933721\n    test 429 line 73 toEtm8.gamma: 86.505947\n    test 430 line 73 toEtm8.scale: 1.323700\n    test 431 line 73 toEtm8.lat: 48.914279\n    test 432 line 73 toEtm8.lon: 87.359268\n    test 433 line 74 toEtm8.easting: 6701004.587204\n    test 434 line 74 toEtm8.northing: 2954368.258231\n    test 435 line 74 toEtm8.gamma: 21.560153\n    test 436 line 74 toEtm8.scale: 1.608554\n    test 437 line 74 toEtm8.lat: 16.208377\n    test 438 line 74 toEtm8.lon: 54.494282\n    test 439 line 75 toEtm8.easting: 454986.218897\n    test 440 line 75 toEtm8.northing: 4885087.887884\n    test 441 line 75 toEtm8.gamma: 3.945648\n    test 442 line 75 toEtm8.scale: 1.002147\n    test 443 line 75 toEtm8.lat: 43.977936\n    test 444 line 75 toEtm8.lon: 5.672541\n    test 445 line 76 toEtm8.easting: 8903956.140311\n    test 446 line 76 toEtm8.northing: 8470608.577482\n    test 447 line 76 toEtm8.gamma: 74.723116\n    test 448 line 76 toEtm8.scale: 2.131311\n    test 449 line 76 toEtm8.lat: 26.850861\n    test 450 line 76 toEtm8.lon: 82.834480\n    test 451 line 77 toEtm8.easting: 1547627.594741\n    test 452 line 77 toEtm8.northing: 6036584.538347\n    test 453 line 77 toEtm8.gamma: 18.407629\n    test 454 line 77 toEtm8.scale: 1.029132\n    test 455 line 77 toEtm8.lat: 52.234165\n    test 456 line 77 toEtm8.lon: 22.827655\n    test 457 line 78 toEtm8.easting: 5221488.778597\n    test 458 line 78 toEtm8.northing: 1762592.044392\n    test 459 line 78 toEtm8.gamma: 10.927880\n    test 460 line 78 toEtm8.scale: 1.356721\n    test 461 line 78 toEtm8.lat: 11.674646\n    test 462 line 78 toEtm8.lon: 43.500147\n    test 463 line 79 toEtm8.easting: 4880570.297161\n    test 464 line 79 toEtm8.northing: 3325433.988867\n    test 465 line 79 toEtm8.gamma: 20.469862\n    test 466 line 79 toEtm8.scale: 1.308476\n    test 467 line 79 toEtm8.lat: 22.492753\n    test 468 line 79 toEtm8.lon: 44.179153\n    test 469 line 80 toEtm8.easting: 23930680.082694\n    test 470 line 80 toEtm8.northing: 7491462.099038\n    test 471 line 80 toEtm8.gamma: 75.937628\n    test 472 line 80 toEtm8.scale: 15.556365\n    test 473 line 80 toEtm8.lat: 0.910999\n    test 474 line 80 toEtm8.lon: 88.548823\n    test 475 line 81 toEtm8.easting: 71519.450458\n    test 476 line 81 toEtm8.northing: 3654740.444852\n    test 477 line 81 toEtm8.gamma: 0.417448\n    test 478 line 81 toEtm8.scale: 0.999663\n    test 479 line 81 toEtm8.lat: 33.028802\n    test 480 line 81 toEtm8.lon: 0.765843\n    test 481 line 82 toEtm8.easting: 4152797.795220\n    test 482 line 82 toEtm8.northing: 7823098.502751\n    test 483 line 82 toEtm8.gamma: 58.238901\n    test 484 line 82 toEtm8.scale: 1.218052\n    test 485 line 82 toEtm8.lat: 50.649195\n    test 486 line 82 toEtm8.lon: 64.389076\n    test 487 line 83 toEtm8.easting: 2926725.707639\n    test 488 line 83 toEtm8.northing: 7904918.072844\n    test 489 line 83 toEtm8.gamma: 51.592748\n    test 490 line 83 toEtm8.scale: 1.106206\n    test 491 line 83 toEtm8.lat: 58.820640\n    test 492 line 83 toEtm8.lon: 55.841048\n    test 493 line 84 toEtm8.easting: 1325509.113869\n    test 494 line 84 toEtm8.northing: 9675214.948213\n    test 495 line 84 toEtm8.gamma: 76.116213\n    test 496 line 84 toEtm8.scale: 1.021136\n    test 497 line 84 toEtm8.lat: 77.865762\n    test 498 line 84 toEtm8.lon: 76.414618\n    test 499 line 85 toEtm8.easting: 3045296.448926\n    test 500 line 85 toEtm8.northing: 542153.443280\n    test 501 line 85 toEtm8.gamma: 2.185095\n    test 502 line 85 toEtm8.scale: 1.116664\n    test 503 line 85 toEtm8.lat: 4.389639\n    test 504 line 85 toEtm8.lon: 26.458976\n    test 505 line 86 toEtm8.easting: 11843870.887518\n    test 506 line 86 toEtm8.northing: 5912803.073343\n    test 507 line 86 toEtm8.gamma: 52.814259\n    test 508 line 86 toEtm8.scale: 3.267256\n    test 509 line 86 toEtm8.lat: 13.924448\n    test 510 line 86 toEtm8.lon: 79.017873\n    test 511 line 87 toEtm8.easting: 8891099.704936\n    test 512 line 87 toEtm8.northing: 162160.142227\n    test 513 line 87 toEtm8.gamma: 1.312094\n    test 514 line 87 toEtm8.scale: 2.157363\n    test 515 line 87 toEtm8.lat: 0.679713\n    test 516 line 87 toEtm8.lon: 62.036792\n    test 517 line 88 toEtm8.easting: 4784814.214449\n    test 518 line 88 toEtm8.northing: 2984497.432580\n    test 519 line 88 toEtm8.gamma: 17.946545\n    test 520 line 88 toEtm8.scale: 1.296116\n    test 521 line 88 toEtm8.lat: 20.478281\n    test 522 line 88 toEtm8.lon: 42.678234\n    test 523 line 89 toEtm8.easting: 1772074.682154\n    test 524 line 89 toEtm8.northing: 9491552.560143\n    test 525 line 89 toEtm8.gamma: 73.634830\n    test 526 line 89 toEtm8.scale: 1.038202\n    test 527 line 89 toEtm8.lat: 73.695703\n    test 528 line 89 toEtm8.lon: 74.259097\n    test 529 line 90 toEtm8.easting: 1907649.782106\n    test 530 line 90 toEtm8.northing: 6994232.429379\n    test 531 line 90 toEtm8.gamma: 29.718929\n    test 532 line 90 toEtm8.scale: 1.044503\n    test 533 line 90 toEtm8.lat: 58.569370\n    test 534 line 90 toEtm8.lon: 33.777549\n    test 535 line 91 toEtm8.easting: 2084423.818962\n    test 536 line 91 toEtm8.northing: 2211816.035619\n    test 537 line 91 toEtm8.gamma: 6.556448\n    test 538 line 91 toEtm8.scale: 1.053793\n    test 539 line 91 toEtm8.lat: 18.933881\n    test 540 line 91 toEtm8.lon: 19.492695\n    test 541 line 92 toEtm8.easting: 1064373.671729\n    test 542 line 92 toEtm8.northing: 7812482.547461\n    test 543 line 92 toEtm8.gamma: 24.874124\n    test 544 line 92 toEtm8.scale: 1.013490\n    test 545 line 92 toEtm8.lat: 68.317934\n    test 546 line 92 toEtm8.lon: 26.515687\n    test 547 line 93 toEtm8.easting: 4770385.479297\n    test 548 line 93 toEtm8.northing: 9734318.902980\n    test 549 line 93 toEtm8.gamma: 86.273119\n    test 550 line 93 toEtm8.scale: 1.290553\n    test 551 line 93 toEtm8.lat: 50.641941\n    test 552 line 93 toEtm8.lon: 87.111557\n    test 553 line 94 toEtm8.easting: 6398096.677297\n    test 554 line 94 toEtm8.northing: 4410894.752104\n    test 555 line 94 toEtm8.gamma: 32.558023\n    test 556 line 94 toEtm8.scale: 1.548004\n    test 557 line 94 toEtm8.lat: 24.411298\n    test 558 line 94 toEtm8.lon: 56.881823\n    test 559 line 95 toEtm8.easting: 3138623.300415\n    test 560 line 95 toEtm8.northing: 3082960.600798\n    test 561 line 95 toEtm8.gamma: 13.557672\n    test 562 line 95 toEtm8.scale: 1.123724\n    test 563 line 95 toEtm8.lat: 24.571871\n    test 564 line 95 toEtm8.lon: 30.073097\n    test 565 line 96 toEtm8.easting: 2748325.794651\n    test 566 line 96 toEtm8.northing: 4202811.912668\n    test 567 line 96 toEtm8.gamma: 17.578706\n    test 568 line 96 toEtm8.scale: 1.094102\n    test 569 line 96 toEtm8.lat: 34.202576\n    test 570 line 96 toEtm8.lon: 29.383166\n    test 571 line 97 toEtm8.easting: 6677830.630367\n    test 572 line 97 toEtm8.northing: 5350071.837395\n    test 573 line 97 toEtm8.gamma: 41.306641\n    test 574 line 97 toEtm8.scale: 1.599774\n    test 575 line 97 toEtm8.lat: 27.756285\n    test 576 line 97 toEtm8.lon: 61.881905\n    test 577 line 98 toEtm8.easting: 5941536.667431\n    test 578 line 98 toEtm8.northing: 3293112.175140\n    test 579 line 98 toEtm8.gamma: 22.752845\n    test 580 line 98 toEtm8.scale: 1.468473\n    test 581 line 98 toEtm8.lat: 19.742270\n    test 582 line 98 toEtm8.lon: 50.957821\n    test 583 line 99 toEtm8.easting: 3152481.792567\n    test 584 line 99 toEtm8.northing: 5903048.837978\n    test 585 line 99 toEtm8.gamma: 31.494606\n    test 586 line 99 toEtm8.scale: 1.124085\n    test 587 line 99 toEtm8.lat: 45.453582\n    test 588 line 99 toEtm8.lon: 40.659833\n    test 589 line 100 toEtm8.easting: 10460475.897730\n    test 590 line 100 toEtm8.northing: 2553463.624391\n    test 591 line 100 toEtm8.gamma: 21.965869\n    test 592 line 100 toEtm8.scale: 2.700296\n    test 593 line 100 toEtm8.lat: 8.322144\n    test 594 line 100 toEtm8.lon: 69.488157\n    test 595 line 101 toEtm8.easting: 1964010.778021\n    test 596 line 101 toEtm8.northing: 5634042.923056\n    test 597 line 101 toEtm8.gamma: 20.117800\n    test 598 line 101 toEtm8.scale: 1.047344\n    test 599 line 101 toEtm8.lat: 47.749831\n    test 600 line 101 toEtm8.lon: 26.322002\n    test 601 line 102 toEtm8.easting: 2065306.424934\n    test 602 line 102 toEtm8.northing: 2135008.468651\n    test 603 line 102 toEtm8.gamma: 6.258981\n    test 604 line 102 toEtm8.scale: 1.052800\n    test 605 line 102 toEtm8.lat: 18.297493\n    test 606 line 102 toEtm8.lon: 19.244669\n    test 607 line 103 toEtm8.easting: 5127738.132976\n    test 608 line 103 toEtm8.northing: 6793804.304411\n    test 609 line 103 toEtm8.gamma: 50.557915\n    test 610 line 103 toEtm8.scale: 1.339412\n    test 611 line 103 toEtm8.lat: 40.834541\n    test 612 line 103 toEtm8.lon: 61.650750\n    test 613 line 104 toEtm8.easting: 8385525.148166\n    test 614 line 104 toEtm8.northing: 6924932.344306\n    test 615 line 104 toEtm8.gamma: 59.087561\n    test 616 line 104 toEtm8.scale: 1.990364\n    test 617 line 104 toEtm8.lat: 26.273247\n    test 618 line 104 toEtm8.lon: 74.926694\n    test 619 line 105 toEtm8.easting: 2297510.791909\n    test 620 line 105 toEtm8.northing: 2805666.962834\n    test 621 line 105 toEtm8.gamma: 9.301553\n    test 622 line 105 toEtm8.scale: 1.065508\n    test 623 line 105 toEtm8.lat: 23.698347\n    test 624 line 105 toEtm8.lon: 22.155657\n    test 625 line 106 toEtm8.easting: 13749544.917635\n    test 626 line 106 toEtm8.northing: 8288728.384650\n    test 627 line 106 toEtm8.gamma: 75.033970\n    test 628 line 106 toEtm8.scale: 4.270588\n    test 629 line 106 toEtm8.lat: 12.364113\n    test 630 line 106 toEtm8.lon: 86.348578\n    test 631 line 107 toEtm8.easting: 317518.455546\n    test 632 line 107 toEtm8.northing: 1097517.583745\n    test 633 line 107 toEtm8.gamma: 0.499004\n    test 634 line 107 toEtm8.scale: 1.000848\n    test 635 line 107 toEtm8.lat: 9.916091\n    test 636 line 107 toEtm8.lon: 2.895277\n    test 637 line 108 toEtm8.easting: 3856035.184888\n    test 638 line 108 toEtm8.northing: 9141364.450290\n    test 639 line 108 toEtm8.gamma: 75.972763\n    test 640 line 108 toEtm8.scale: 1.186786\n    test 641 line 108 toEtm8.lat: 56.553876\n    test 642 line 108 toEtm8.lon: 78.215077\n    test 643 line 109 toEtm8.easting: 1457484.942823\n    test 644 line 109 toEtm8.northing: 9385297.101973\n    test 645 line 109 toEtm8.gamma: 66.784662\n    test 646 line 109 toEtm8.scale: 1.025660\n    test 647 line 109 toEtm8.lat: 75.957631\n    test 648 line 109 toEtm8.lon: 67.407383\n    test 649 line 110 toEtm8.easting: 1304934.901841\n    test 650 line 110 toEtm8.northing: 3604655.155715\n    test 651 line 110 toEtm8.gamma: 7.343989\n    test 652 line 110 toEtm8.scale: 1.020672\n    test 653 line 110 toEtm8.lat: 31.826531\n    test 654 line 110 toEtm8.lon: 13.731050\n    test 655 line 111 toEtm8.easting: 1399093.491792\n    test 656 line 111 toEtm8.northing: 8314607.120342\n    test 657 line 111 toEtm8.gamma: 38.630161\n    test 658 line 111 toEtm8.scale: 1.023625\n    test 659 line 111 toEtm8.lat: 70.542985\n    test 660 line 111 toEtm8.lon: 40.282055\n    test 661 line 112 toEtm8.easting: 356983.618540\n    test 662 line 112 toEtm8.northing: 4282309.048994\n    test 663 line 112 toEtm8.gamma: 2.561485\n    test 664 line 112 toEtm8.scale: 1.001170\n    test 665 line 112 toEtm8.lat: 38.617487\n    test 666 line 112 toEtm8.lon: 4.099838\n    test 667 line 113 toEtm8.easting: 9952911.325091\n    test 668 line 113 toEtm8.northing: 1510288.212229\n    test 669 line 113 toEtm8.gamma: 12.752154\n    test 670 line 113 toEtm8.scale: 2.511357\n    test 671 line 113 toEtm8.lat: 5.389447\n    test 672 line 113 toEtm8.lon: 66.729612\n    test 673 line 114 toEtm8.easting: 6367592.504007\n    test 674 line 114 toEtm8.northing: 1200437.077672\n    test 675 line 114 toEtm8.gamma: 8.338041\n    test 676 line 114 toEtm8.scale: 1.546210\n    test 677 line 114 toEtm8.lat: 6.995168\n    test 678 line 114 toEtm8.lon: 50.014763\n    test 679 line 115 toEtm8.easting: 4391263.676460\n    test 680 line 115 toEtm8.northing: 6325455.989408\n    test 681 line 115 toEtm8.gamma: 42.653541\n    test 682 line 115 toEtm8.scale: 1.245560\n    test 683 line 115 toEtm8.lat: 42.321894\n    test 684 line 115 toEtm8.lon: 53.784040\n    test 685 line 116 toEtm8.easting: 6209880.527527\n    test 686 line 116 toEtm8.northing: 2154754.449747\n    test 687 line 116 toEtm8.gamma: 14.919512\n    test 688 line 116 toEtm8.scale: 1.516560\n    test 689 line 116 toEtm8.lat: 12.698515\n    test 690 line 116 toEtm8.lon: 50.242047\n    test 691 line 117 toEtm8.easting: 1507053.688772\n    test 692 line 117 toEtm8.northing: 6261383.513280\n    test 693 line 117 toEtm8.gamma: 19.280373\n    test 694 line 117 toEtm8.scale: 1.027584\n    test 695 line 117 toEtm8.lat: 54.207636\n    test 696 line 117 toEtm8.lon: 23.325731\n    test 697 line 118 toEtm8.easting: 8332725.003777\n    test 698 line 118 toEtm8.northing: 3002712.329753\n    test 699 line 118 toEtm8.gamma: 24.059212\n    test 700 line 118 toEtm8.scale: 1.990450\n    test 701 line 118 toEtm8.lat: 13.224787\n    test 702 line 118 toEtm8.lon: 62.426698\n    test 703 line 119 toEtm8.easting: 3958910.085235\n    test 704 line 119 toEtm8.northing: 3462284.926102\n    test 705 line 119 toEtm8.gamma: 18.546398\n    test 706 line 119 toEtm8.scale: 1.199351\n    test 707 line 119 toEtm8.lat: 25.650282\n    test 708 line 119 toEtm8.lon: 37.710391\n    test 709 line 120 toEtm8.easting: 10452892.282083\n    test 710 line 120 toEtm8.northing: 8000059.605114\n    test 711 line 120 toEtm8.gamma: 71.075240\n    test 712 line 120 toEtm8.scale: 2.650111\n    test 713 line 120 toEtm8.lat: 20.684773\n    test 714 line 120 toEtm8.lon: 82.849734\n    test 715 line 121 toEtm8.easting: 496148.253731\n    test 716 line 121 toEtm8.northing: 6388503.365043\n    test 717 line 121 toEtm8.gamma: 6.970955\n    test 718 line 121 toEtm8.scale: 1.002620\n    test 719 line 121 toEtm8.lat: 57.367533\n    test 720 line 121 toEtm8.lon: 8.260866\n    test 721 line 122 toEtm8.easting: 7375792.085850\n    test 722 line 122 toEtm8.northing: 5544624.072155\n    test 723 line 122 toEtm8.gamma: 44.510851\n    test 724 line 122 toEtm8.scale: 1.745898\n    test 725 line 122 toEtm8.lat: 25.958757\n    test 726 line 122 toEtm8.lon: 65.760477\n    test 727 line 123 toEtm8.easting: 2826258.041979\n    test 728 line 123 toEtm8.northing: 5167759.816959\n    test 729 line 123 toEtm8.gamma: 23.783897\n    test 730 line 123 toEtm8.scale: 1.099415\n    test 731 line 123 toEtm8.lat: 41.395848\n    test 732 line 123 toEtm8.lon: 33.661790\n    test 733 line 124 toEtm8.easting: 3958563.378851\n    test 734 line 124 toEtm8.northing: 8499923.231243\n    test 735 line 124 toEtm8.gamma: 66.570945\n    test 736 line 124 toEtm8.scale: 1.197296\n    test 737 line 124 toEtm8.lat: 54.266617\n    test 738 line 124 toEtm8.lon: 70.602199\n    test 739 line 125 toEtm8.easting: 4408189.533462\n    test 740 line 125 toEtm8.northing: 8046312.003642\n    test 741 line 125 toEtm8.gamma: 62.216959\n    test 742 line 125 toEtm8.scale: 1.246750\n    test 743 line 125 toEtm8.lat: 49.840393\n    test 744 line 125 toEtm8.lon: 68.036728\n    test 745 line 126 toEtm8.easting: 3629225.627512\n    test 746 line 126 toEtm8.northing: 6371258.454645\n    test 747 line 126 toEtm8.gamma: 38.881675\n    test 748 line 126 toEtm8.scale: 1.165511\n    test 749 line 126 toEtm8.lat: 46.306035\n    test 750 line 126 toEtm8.lon: 48.085828\n    test 751 line 127 toEtm8.easting: 602838.450710\n    test 752 line 127 toEtm8.northing: 4851370.637205\n    test 753 line 127 toEtm8.gamma: 5.160395\n    test 754 line 127 toEtm8.scale: 1.004073\n    test 755 line 127 toEtm8.lat: 43.570988\n    test 756 line 127 toEtm8.lon: 7.464494\n    test 757 line 128 toEtm8.easting: 764616.665051\n    test 758 line 128 toEtm8.northing: 2164299.337945\n    test 759 line 128 toEtm8.gamma: 2.429300\n    test 760 line 128 toEtm8.scale: 1.006835\n    test 761 line 128 toEtm8.lat: 19.427290\n    test 762 line 128 toEtm8.lon: 7.268247\n    test 763 line 129 toEtm8.easting: 5048953.021931\n    test 764 line 129 toEtm8.northing: 1885974.057398\n    test 765 line 129 toEtm8.gamma: 11.459804\n    test 766 line 129 toEtm8.scale: 1.332207\n    test 767 line 129 toEtm8.lat: 12.713794\n    test 768 line 129 toEtm8.lon: 42.507018\n    test 769 line 130 toEtm8.easting: 2293996.601155\n    test 770 line 130 toEtm8.northing: 2392408.644221\n    test 771 line 130 toEtm8.gamma: 7.791838\n    test 772 line 130 toEtm8.scale: 1.065348\n    test 773 line 130 toEtm8.lat: 20.238782\n    test 774 line 130 toEtm8.lon: 21.566068\n    test 775 line 131 toEtm8.easting: 1530603.839418\n    test 776 line 131 toEtm8.northing: 7287841.459898\n    test 777 line 131 toEtm8.gamma: 27.502921\n    test 778 line 131 toEtm8.scale: 1.028416\n    test 779 line 131 toEtm8.lat: 62.367847\n    test 780 line 131 toEtm8.lon: 30.438849\n    test 781 line 132 toEtm8.easting: 2660000.093152\n    test 782 line 132 toEtm8.northing: 5161982.213248\n    test 783 line 132 toEtm8.gamma: 22.629836\n    test 784 line 132 toEtm8.scale: 1.087851\n    test 785 line 132 toEtm8.lat: 41.891569\n    test 786 line 132 toEtm8.lon: 31.959547\n    test 787 line 133 toEtm8.easting: 5037478.329414\n    test 788 line 133 toEtm8.northing: 8768172.379908\n    test 789 line 133 toEtm8.gamma: 73.511182\n    test 790 line 133 toEtm8.scale: 1.325919\n    test 791 line 133 toEtm8.lat: 47.664248\n    test 792 line 133 toEtm8.lon: 77.630062\n    test 793 line 134 toEtm8.easting: 2289650.957799\n    test 794 line 134 toEtm8.northing: 8784328.593607\n    test 795 line 134 toEtm8.gamma: 60.786067\n    test 796 line 134 toEtm8.scale: 1.064346\n    test 797 line 134 toEtm8.lat: 67.259559\n    test 798 line 134 toEtm8.lon: 62.715293\n    test 799 line 135 toEtm8.easting: 647913.889744\n    test 800 line 135 toEtm8.northing: 6742382.228217\n    test 801 line 135 toEtm8.gamma: 10.252667\n    test 802 line 135 toEtm8.scale: 1.004748\n    test 803 line 135 toEtm8.lat: 60.295381\n    test 804 line 135 toEtm8.lon: 11.763097\n    test 805 line 136 toEtm8.easting: 1118372.698566\n    test 806 line 136 toEtm8.northing: 9040627.942263\n    test 807 line 136 toEtm8.gamma: 48.936803\n    test 808 line 136 toEtm8.scale: 1.014920\n    test 809 line 136 toEtm8.lat: 76.878914\n    test 810 line 136 toEtm8.lon: 49.685773\n    test 811 line 137 toEtm8.easting: 440696.510070\n    test 812 line 137 toEtm8.northing: 5500355.826297\n    test 813 line 137 toEtm8.gamma: 4.636104\n    test 814 line 137 toEtm8.scale: 1.001986\n    test 815 line 137 toEtm8.lat: 49.495349\n    test 816 line 137 toEtm8.lon: 6.087551\n    test 817 line 138 toEtm8.easting: 601728.149727\n    test 818 line 138 toEtm8.northing: 9095352.048149\n    test 819 line 138 toEtm8.gamma: 33.435771\n    test 820 line 138 toEtm8.scale: 1.004027\n    test 821 line 138 toEtm8.lat: 80.297265\n    test 822 line 138 toEtm8.lon: 33.816372\n    test 823 line 139 toEtm8.easting: 3481444.777827\n    test 824 line 139 toEtm8.northing: 291665.708749\n    test 825 line 139 toEtm8.gamma: 1.314726\n    test 826 line 139 toEtm8.scale: 1.153534\n    test 827 line 139 toEtm8.lat: 2.286437\n    test 828 line 139 toEtm8.lon: 29.855149\n    test 829 line 140 toEtm8.easting: 3515304.901524\n    test 830 line 140 toEtm8.northing: 1443981.882918\n    test 831 line 140 toEtm8.gamma: 6.641638\n    test 832 line 140 toEtm8.scale: 1.156509\n    test 833 line 140 toEtm8.lat: 11.264457\n    test 834 line 140 toEtm8.lon: 30.743907\n    test 835 line 141 toEtm8.easting: 160012.186959\n    test 836 line 141 toEtm8.northing: 3922609.253231\n    test 837 line 141 toEtm8.gamma: 1.022225\n    test 838 line 141 toEtm8.scale: 0.999916\n    test 839 line 141 toEtm8.lat: 35.434073\n    test 840 line 141 toEtm8.lon: 1.762795\n    test 841 line 142 toEtm8.easting: 4163744.245622\n    test 842 line 142 toEtm8.northing: 936884.674804\n    test 843 line 142 toEtm8.gamma: 4.892559\n    test 844 line 142 toEtm8.scale: 1.222164\n    test 845 line 142 toEtm8.lat: 6.923695\n    test 846 line 142 toEtm8.lon: 35.289456\n    test 847 line 143 toEtm8.easting: 6155200.017926\n    test 848 line 143 toEtm8.northing: 6926306.628390\n    test 849 line 143 toEtm8.gamma: 55.103258\n    test 850 line 143 toEtm8.scale: 1.500556\n    test 851 line 143 toEtm8.lat: 36.129672\n    test 852 line 143 toEtm8.lon: 67.533176\n    test 853 line 144 toEtm8.easting: 16263383.285440\n    test 854 line 144 toEtm8.northing: 3591296.731341\n    test 855 line 144 toEtm8.gamma: 36.040254\n    test 856 line 144 toEtm8.scale: 6.589288\n    test 857 line 144 toEtm8.lat: 4.406529\n    test 858 line 144 toEtm8.lon: 81.965734\n    test 859 line 145 toEtm8.easting: 14220995.515398\n    test 860 line 145 toEtm8.northing: 5100587.457503\n    test 861 line 145 toEtm8.gamma: 47.314258\n    test 862 line 145 toEtm8.scale: 4.693202\n    test 863 line 145 toEtm8.lat: 8.474589\n    test 864 line 145 toEtm8.lon: 81.129945\n    test 865 line 146 toEtm8.easting: 3173034.802372\n    test 866 line 146 toEtm8.northing: 7263421.942957\n    test 867 line 146 toEtm8.gamma: 45.215808\n    test 868 line 146 toEtm8.scale: 1.125410\n    test 869 line 146 toEtm8.lat: 53.907276\n    test 870 line 146 toEtm8.lon: 51.252904\n    test 871 line 147 toEtm8.easting: 10253274.092204\n    test 872 line 147 toEtm8.northing: 8867574.299792\n    test 873 line 147 toEtm8.gamma: 79.198250\n    test 874 line 147 toEtm8.scale: 2.572372\n    test 875 line 147 toEtm8.lat: 22.120545\n    test 876 line 147 toEtm8.lon: 85.756782\n    test 877 line 148 toEtm8.easting: 2415561.483230\n    test 878 line 148 toEtm8.northing: 8813225.217097\n    test 879 line 148 toEtm8.gamma: 62.548978\n    test 880 line 148 toEtm8.scale: 1.071748\n    test 881 line 148 toEtm8.lat: 66.444100\n    test 882 line 148 toEtm8.lon: 64.532960\n    test 883 line 149 toEtm8.easting: 9589179.293295\n    test 884 line 149 toEtm8.northing: 1777680.784143\n    test 885 line 149 toEtm8.gamma: 14.838483\n    test 886 line 149 toEtm8.scale: 2.380716\n    test 887 line 149 toEtm8.lat: 6.670965\n    test 888 line 149 toEtm8.lon: 65.660408\n    test 889 line 150 toEtm8.easting: 727939.438391\n    test 890 line 150 toEtm8.northing: 3684363.236810\n    test 891 line 150 toEtm8.gamma: 4.266227\n    test 892 line 150 toEtm8.scale: 1.006140\n    test 893 line 150 toEtm8.lat: 33.054057\n    test 894 line 150 toEtm8.lon: 7.787458\n    test 895 line 151 toEtm8.easting: 1250765.991085\n    test 896 line 151 toEtm8.northing: 792869.242719\n    test 897 line 151 toEtm8.gamma: 1.396497\n    test 898 line 151 toEtm8.scale: 1.019026\n    test 899 line 151 toEtm8.lat: 7.035525\n    test 900 line 151 toEtm8.lon: 11.253707\n    test 901 line 152 toEtm8.easting: 710421.705887\n    test 902 line 152 toEtm8.northing: 5019406.075928\n    test 903 line 152 toEtm8.gamma: 6.393949\n    test 904 line 152 toEtm8.scale: 1.005812\n    test 905 line 152 toEtm8.lat: 44.971340\n    test 906 line 152 toEtm8.lon: 9.009304\n    test 907 line 153 toEtm8.easting: 4600995.074643\n    test 908 line 153 toEtm8.northing: 4505712.084593\n    test 909 line 153 toEtm8.gamma: 27.997458\n    test 910 line 153 toEtm8.scale: 1.271841\n    test 911 line 153 toEtm8.lat: 30.821397\n    test 912 line 153 toEtm8.lon: 45.970577\n    test 913 line 154 toEtm8.easting: 557642.627782\n    test 914 line 154 toEtm8.northing: 7006911.251644\n    test 915 line 154 toEtm8.gamma: 9.769903\n    test 916 line 154 toEtm8.scale: 1.003411\n    test 917 line 154 toEtm8.lat: 62.763886\n    test 918 line 154 toEtm8.lon: 10.960144\n    test 919 line 155 toEtm8.easting: 4635062.294291\n    test 920 line 155 toEtm8.northing: 2702556.153311\n    test 921 line 155 toEtm8.gamma: 15.779547\n    test 922 line 155 toEtm8.scale: 1.277178\n    test 923 line 155 toEtm8.lat: 18.888611\n    test 924 line 155 toEtm8.lon: 41.009871\n    test 925 line 156 toEtm8.easting: 14554962.255919\n    test 926 line 156 toEtm8.northing: 4716639.908572\n    test 927 line 156 toEtm8.gamma: 44.192751\n    test 928 line 156 toEtm8.scale: 4.960020\n    test 929 line 156 toEtm8.lat: 7.524119\n    test 930 line 156 toEtm8.lon: 81.050715\n    test 931 line 157 toEtm8.easting: 882126.661736\n    test 932 line 157 toEtm8.northing: 7947612.369506\n    test 933 line 157 toEtm8.gamma: 22.429487\n    test 934 line 157 toEtm8.scale: 1.009132\n    test 935 line 157 toEtm8.lat: 70.063902\n    test 936 line 157 toEtm8.lon: 23.705255\n    test 937 line 158 toEtm8.easting: 20262021.645983\n    test 938 line 158 toEtm8.northing: 8113827.820796\n    test 939 line 158 toEtm8.gamma: 76.936057\n    test 940 line 158 toEtm8.scale: 10.349092\n    test 941 line 158 toEtm8.lat: 3.556526\n    test 942 line 158 toEtm8.lon: 88.363529\n    test 943 line 159 toEtm8.easting: 6500508.399850\n    test 944 line 159 toEtm8.northing: 6956476.342368\n    test 945 line 159 toEtm8.gamma: 56.237116\n    test 946 line 159 toEtm8.scale: 1.563162\n    test 947 line 159 toEtm8.lat: 34.551257\n    test 948 line 159 toEtm8.lon: 69.111091\n    test 949 line 160 toEtm8.easting: 3884036.641314\n    test 950 line 160 toEtm8.northing: 6890167.411733\n    test 951 line 160 toEtm8.gamma: 45.760130\n    test 952 line 160 toEtm8.scale: 1.190167\n    test 953 line 160 toEtm8.lat: 47.929051\n    test 954 line 160 toEtm8.lon: 54.103418\n    test 955 line 161 toEtm8.easting: 217855.546078\n    test 956 line 161 toEtm8.northing: 6184108.122568\n    test 957 line 161 toEtm8.gamma: 2.870993\n    test 958 line 161 toEtm8.scale: 1.000182\n    test 959 line 161 toEtm8.lat: 55.753536\n    test 960 line 161 toEtm8.lon: 3.471798\n    test 961 line 162 toEtm8.easting: 11384139.290402\n    test 962 line 162 toEtm8.northing: 8893889.949556\n    test 963 line 162 toEtm8.gamma: 79.774854\n    test 964 line 162 toEtm8.scale: 3.024672\n    test 965 line 162 toEtm8.lat: 18.530847\n    test 966 line 162 toEtm8.lon: 86.555312\n    test 967 line 163 toEtm8.easting: 3469855.989805\n    test 968 line 163 toEtm8.northing: 7723193.799228\n    test 969 line 163 toEtm8.gamma: 53.114700\n    test 970 line 163 toEtm8.scale: 1.150540\n    test 971 line 163 toEtm8.lat: 54.510125\n    test 972 line 163 toEtm8.lon: 58.556056\n    test 973 line 164 toEtm8.easting: 5926165.994939\n    test 974 line 164 toEtm8.northing: 9385463.732747\n    test 975 line 164 toEtm8.gamma: 82.506981\n    test 976 line 164 toEtm8.scale: 1.459758\n    test 977 line 164 toEtm8.lat: 42.864162\n    test 978 line 164 toEtm8.lon: 84.866326\n    test 979 line 165 toEtm8.easting: 5798639.662224\n    test 980 line 165 toEtm8.northing: 5305387.640916\n    test 981 line 165 toEtm8.gamma: 38.617257\n    test 982 line 165 toEtm8.scale: 1.442263\n    test 983 line 165 toEtm8.lat: 30.911943\n    test 984 line 165 toEtm8.lon: 57.114102\n    test 985 line 166 toEtm8.easting: 9464.934388\n    test 986 line 166 toEtm8.northing: 6489121.624944\n    test 987 line 166 toEtm8.gamma: 0.138696\n    test 988 line 166 toEtm8.scale: 0.999601\n    test 989 line 166 toEtm8.lat: 58.542493\n    test 990 line 166 toEtm8.lon: 0.162593\n    test 991 line 167 toEtm8.easting: 12575834.275614\n    test 992 line 167 toEtm8.northing: 8356610.895486\n    test 993 line 167 toEtm8.gamma: 75.235223\n    test 994 line 167 toEtm8.scale: 3.599442\n    test 995 line 167 toEtm8.lat: 15.022689\n    test 996 line 167 toEtm8.lon: 85.792615\n    test 997 line 168 toEtm8.easting: 2719653.543469\n    test 998 line 168 toEtm8.northing: 9362389.163495\n    test 999 line 168 toEtm8.gamma: 76.049670\n    test 1000 line 168 toEtm8.scale: 1.091315\n    test 1001 line 168 toEtm8.lat: 65.692275\n    test 1002 line 168 toEtm8.lon: 77.241377\n    test 1003 line 169 toEtm8.easting: 4845341.924698\n    test 1004 line 169 toEtm8.northing: 8710522.326901\n    test 1005 line 169 toEtm8.gamma: 72.320942\n    test 1006 line 169 toEtm8.scale: 1.300382\n    test 1007 line 169 toEtm8.lat: 48.806211\n    test 1008 line 169 toEtm8.lon: 76.486365\n    test 1009 line 170 toEtm8.easting: 3935261.522763\n    test 1010 line 170 toEtm8.northing: 9454271.649062\n    test 1011 line 170 toEtm8.gamma: 81.162334\n    test 1012 line 170 toEtm8.scale: 1.194767\n    test 1013 line 170 toEtm8.lat: 56.436025\n    test 1014 line 170 toEtm8.lon: 82.611568\n    test 1015 line 171 toEtm8.easting: 7074299.823000\n    test 1016 line 171 toEtm8.northing: 1648736.065055\n    test 1017 line 171 toEtm8.gamma: 12.145925\n    test 1018 line 171 toEtm8.scale: 1.687551\n    test 1019 line 171 toEtm8.lat: 8.766053\n    test 1020 line 171 toEtm8.lon: 54.367539\n    test 1021 line 172 toEtm8.easting: 3689072.579308\n    test 1022 line 172 toEtm8.northing: 2230802.665211\n    test 1023 line 172 toEtm8.gamma: 10.856248\n    test 1024 line 172 toEtm8.scale: 1.172689\n    test 1025 line 172 toEtm8.lat: 17.095495\n    test 1026 line 172 toEtm8.lon: 33.059128\n    test 1027 line 173 toEtm8.easting: 8102565.885587\n    test 1028 line 173 toEtm8.northing: 5167396.617580\n    test 1029 line 173 toEtm8.gamma: 42.324886\n    test 1030 line 173 toEtm8.scale: 1.921927\n    test 1031 line 173 toEtm8.lat: 22.142861\n    test 1032 line 173 toEtm8.lon: 67.200684\n    test 1033 line 174 toEtm8.easting: 8181271.353564\n    test 1034 line 174 toEtm8.northing: 4425436.547185\n    test 1035 line 174 toEtm8.gamma: 35.900845\n    test 1036 line 174 toEtm8.scale: 1.945017\n    test 1037 line 174 toEtm8.lat: 19.222623\n    test 1038 line 174 toEtm8.lon: 65.180785\n    test 1039 line 175 toEtm8.easting: 767067.394003\n    test 1040 line 175 toEtm8.northing: 3701745.857296\n    test 1041 line 175 toEtm8.gamma: 4.519201\n    test 1042 line 175 toEtm8.scale: 1.006863\n    test 1043 line 175 toEtm8.lat: 33.182474\n    test 1044 line 175 toEtm8.lon: 8.216952\n    test 1045 line 176 toEtm8.easting: 6688114.168572\n    test 1046 line 176 toEtm8.northing: 2052857.299639\n    test 1047 line 176 toEtm8.gamma: 14.766191\n    test 1048 line 176 toEtm8.scale: 1.607200\n    test 1049 line 176 toEtm8.lat: 11.417963\n    test 1050 line 176 toEtm8.lon: 52.808691\n    test 1051 line 177 toEtm8.easting: 5608408.773761\n    test 1052 line 177 toEtm8.northing: 3859055.659110\n    test 1053 line 177 toEtm8.gamma: 26.244151\n    test 1054 line 177 toEtm8.scale: 1.413463\n    test 1055 line 177 toEtm8.lat: 23.836688\n    test 1056 line 177 toEtm8.lon: 50.500180\n    test 1057 line 178 toEtm8.easting: 3836942.765275\n    test 1058 line 178 toEtm8.northing: 6415467.634326\n    test 1059 line 178 toEtm8.gamma: 40.575885\n    test 1060 line 178 toEtm8.scale: 1.185615\n    test 1061 line 178 toEtm8.lat: 45.550020\n    test 1062 line 178 toEtm8.lon: 50.148036\n    test 1063 line 179 toEtm8.easting: 1298730.366025\n    test 1064 line 179 toEtm8.northing: 6021453.000792\n    test 1065 line 179 toEtm8.gamma: 15.613320\n    test 1066 line 179 toEtm8.scale: 1.020367\n    test 1067 line 179 toEtm8.lat: 52.746079\n    test 1068 line 179 toEtm8.lon: 19.343926\n    test 1069 line 180 toEtm8.easting: 416934.289208\n    test 1070 line 180 toEtm8.northing: 7295683.451705\n    test 1071 line 180 toEtm8.gamma: 8.238232\n    test 1072 line 180 toEtm8.scale: 1.001729\n    test 1073 line 180 toEtm8.lat: 65.513348\n    test 1074 line 180 toEtm8.lon: 9.039529\n    test 1075 line 181 toEtm8.easting: 4336076.850889\n    test 1076 line 181 toEtm8.northing: 7617975.722779\n    test 1077 line 181 toEtm8.gamma: 56.537088\n    test 1078 line 181 toEtm8.scale: 1.238582\n    test 1079 line 181 toEtm8.lat: 48.709795\n    test 1080 line 181 toEtm8.lon: 63.554005\n    test 1081 line 182 toEtm8.easting: 168047.336980\n    test 1082 line 182 toEtm8.northing: 2185000.046530\n    test 1083 line 182 toEtm8.gamma: 0.542187\n    test 1084 line 182 toEtm8.scale: 0.999949\n    test 1085 line 182 toEtm8.lat: 19.753509\n    test 1086 line 182 toEtm8.lon: 1.603846\n    test 1087 line 183 toEtm8.easting: 8276281.328790\n    test 1088 line 183 toEtm8.northing: 263444.350545\n    test 1089 line 183 toEtm8.gamma: 2.071435\n    test 1090 line 183 toEtm8.scale: 1.980314\n    test 1091 line 183 toEtm8.lat: 1.202816\n    test 1092 line 183 toEtm8.lon: 59.377276\n    test 1093 line 184 toEtm8.easting: 4772573.810710\n    test 1094 line 184 toEtm8.northing: 6765710.336002\n    test 1095 line 184 toEtm8.gamma: 48.857561\n    test 1096 line 184 toEtm8.scale: 1.291911\n    test 1097 line 184 toEtm8.lat: 42.564975\n    test 1098 line 184 toEtm8.lon: 59.356947\n    test 1099 line 185 toEtm8.easting: 5427755.074639\n    test 1100 line 185 toEtm8.northing: 1556055.820924\n    test 1101 line 185 toEtm8.gamma: 9.862178\n    test 1102 line 185 toEtm8.scale: 1.387394\n    test 1103 line 185 toEtm8.lat: 10.090572\n    test 1104 line 185 toEtm8.lon: 44.604132\n    test 1105 line 186 toEtm8.easting: 11588458.616041\n    test 1106 line 186 toEtm8.northing: 5707993.922613\n    test 1107 line 186 toEtm8.gamma: 50.784827\n    test 1108 line 186 toEtm8.scale: 3.149567\n    test 1109 line 186 toEtm8.lat: 14.133028\n    test 1110 line 186 toEtm8.lon: 78.097533\n    test 1111 line 187 toEtm8.easting: 7152433.802688\n    test 1112 line 187 toEtm8.northing: 761390.695844\n    test 1113 line 187 toEtm8.gamma: 5.607350\n    test 1114 line 187 toEtm8.scale: 1.705261\n    test 1115 line 187 toEtm8.lat: 4.031123\n    test 1116 line 187 toEtm8.lon: 54.048782\n    test 1117 line 188 toEtm8.easting: 3105651.390901\n    test 1118 line 188 toEtm8.northing: 9426026.169064\n    test 1119 line 188 toEtm8.gamma: 78.750206\n    test 1120 line 188 toEtm8.scale: 1.119737\n    test 1121 line 188 toEtm8.lat: 62.746603\n    test 1122 line 188 toEtm8.lon: 79.968641\n    test 1123 line 189 toEtm8.easting: 2959009.639022\n    test 1124 line 189 toEtm8.northing: 8339242.269282\n    test 1125 line 189 toEtm8.gamma: 58.460865\n    test 1126 line 189 toEtm8.scale: 1.108554\n    test 1127 line 189 toEtm8.lat: 60.626429\n    test 1128 line 189 toEtm8.lon: 61.851551\n    test 1129 line 190 toEtm8.easting: 8640472.267145\n    test 1130 line 190 toEtm8.northing: 6230320.417931\n    test 1131 line 190 toEtm8.gamma: 52.816810\n    test 1132 line 190 toEtm8.scale: 2.062973\n    test 1133 line 190 toEtm8.lat: 23.600626\n    test 1134 line 190 toEtm8.lon: 72.811634\n    test 1135 line 191 toEtm8.easting: 811352.108932\n    test 1136 line 191 toEtm8.northing: 9816129.813481\n    test 1137 line 191 toEtm8.gamma: 77.299184\n    test 1138 line 191 toEtm8.scale: 1.007651\n    test 1139 line 191 toEtm8.lat: 82.572236\n    test 1140 line 191 toEtm8.lon: 77.402323\n    test 1141 line 192 toEtm8.easting: 6521874.973458\n    test 1142 line 192 toEtm8.northing: 1053612.479744\n    test 1143 line 192 toEtm8.gamma: 7.407328\n    test 1144 line 192 toEtm8.scale: 1.575529\n    test 1145 line 192 toEtm8.lat: 6.030051\n    test 1146 line 192 toEtm8.lon: 50.783505\n    test 1147 line 193 toEtm8.easting: 3477983.997875\n    test 1148 line 193 toEtm8.northing: 5651613.325947\n    test 1149 line 193 toEtm8.gamma: 31.530673\n    test 1150 line 193 toEtm8.scale: 1.151875\n    test 1151 line 193 toEtm8.lat: 42.411523\n    test 1152 line 193 toEtm8.lon: 42.258009\n    test 1153 line 194 toEtm8.easting: 629892.822243\n    test 1154 line 194 toEtm8.northing: 3283914.910451\n    test 1155 line 194 toEtm8.gamma: 3.210482\n    test 1156 line 194 toEtm8.scale: 1.004499\n    test 1157 line 194 toEtm8.lat: 29.526120\n    test 1158 line 194 toEtm8.lon: 6.493069\n    test 1159 line 195 toEtm8.easting: 3381879.687227\n    test 1160 line 195 toEtm8.northing: 5103629.325665\n    test 1161 line 195 toEtm8.gamma: 26.748108\n    test 1162 line 195 toEtm8.scale: 1.143559\n    test 1163 line 195 toEtm8.lat: 39.021853\n    test 1164 line 195 toEtm8.lon: 38.641779\n    test 1165 line 196 toEtm8.easting: 2815986.534177\n    test 1166 line 196 toEtm8.northing: 9387029.120718\n    test 1167 line 196 toEtm8.gamma: 76.967262\n    test 1168 line 196 toEtm8.scale: 1.098032\n    test 1169 line 196 toEtm8.lat: 64.971850\n    test 1170 line 196 toEtm8.lon: 78.151893\n    test 1171 line 197 toEtm8.easting: 3398195.889603\n    test 1172 line 197 toEtm8.northing: 9138936.031490\n    test 1173 line 197 toEtm8.gamma: 74.477499\n    test 1174 line 197 toEtm8.scale: 1.144009\n    test 1175 line 197 toEtm8.lat: 59.961819\n    test 1176 line 197 toEtm8.lon: 76.473422\n    test 1177 line 198 toEtm8.easting: 2421734.754637\n    test 1178 line 198 toEtm8.northing: 5002372.094991\n    test 1179 line 198 toEtm8.gamma: 20.017082\n    test 1180 line 198 toEtm8.scale: 1.072592\n    test 1181 line 198 toEtm8.lat: 41.374040\n    test 1182 line 198 toEtm8.lon: 28.848343\n    test 1183 line 199 toEtm8.easting: 2360869.895525\n    test 1184 line 199 toEtm8.northing: 9553298.449536\n    test 1185 line 199 toEtm8.gamma: 78.848205\n    test 1186 line 199 toEtm8.scale: 1.068453\n    test 1187 line 199 toEtm8.lat: 68.946087\n    test 1188 line 199 toEtm8.lon: 79.574523\n    test 1189 line 200 toEtm8.easting: 1196539.972194\n    test 1190 line 200 toEtm8.northing: 9861920.836230\n    test 1191 line 200 toEtm8.gamma: 83.437668\n    test 1192 line 200 toEtm8.scale: 1.017137\n    test 1193 line 200 toEtm8.lat: 79.275096\n    test 1194 line 200 toEtm8.lon: 83.551272\n    test 1195 line 201 toEtm8.easting: 1327758.704795\n    test 1196 line 201 toEtm8.northing: 2375509.241683\n    test 1197 line 201 toEtm8.gamma: 4.617572\n    test 1198 line 201 toEtm8.scale: 1.021465\n    test 1199 line 201 toEtm8.lat: 21.000252\n    test 1200 line 201 toEtm8.lon: 12.697444\n    test 1201 line 202 toEtm8.easting: 2070860.327644\n    test 1202 line 202 toEtm8.northing: 8604500.719581\n    test 1203 line 202 toEtm8.gamma: 54.722761\n    test 1204 line 202 toEtm8.scale: 1.052469\n    test 1205 line 202 toEtm8.lat: 68.015227\n    test 1206 line 202 toEtm8.lon: 56.732419\n    test 1207 line 203 toEtm8.easting: 6564776.654864\n    test 1208 line 203 toEtm8.northing: 8171207.177379\n    test 1209 line 203 toEtm8.gamma: 69.237523\n    test 1210 line 203 toEtm8.scale: 1.573894\n    test 1211 line 203 toEtm8.lat: 37.423675\n    test 1212 line 203 toEtm8.lon: 76.947359\n    test 1213 line 204 toEtm8.easting: 592653.553821\n    test 1214 line 204 toEtm8.northing: 6125529.810052\n    test 1215 line 204 toEtm8.gamma: 7.600785\n    test 1216 line 204 toEtm8.scale: 1.003912\n    test 1217 line 204 toEtm8.lat: 54.922707\n    test 1218 line 204 toEtm8.lon: 9.260818\n    test 1219 line 205 toEtm8.easting: 693459.671821\n    test 1220 line 205 toEtm8.northing: 6943779.991032\n    test 1221 line 205 toEtm8.gamma: 11.787587\n    test 1222 line 205 toEtm8.scale: 1.005496\n    test 1223 line 205 toEtm8.lat: 61.982810\n    test 1224 line 205 toEtm8.lon: 13.299659\n    test 1225 line 206 toEtm8.easting: 1838956.187625\n    test 1226 line 206 toEtm8.northing: 3511959.612381\n    test 1227 line 206 toEtm8.gamma: 9.844313\n    test 1228 line 206 toEtm8.scale: 1.041603\n    test 1229 line 206 toEtm8.lat: 30.324214\n    test 1230 line 206 toEtm8.lon: 18.959769\n    test 1231 line 207 toEtm8.easting: 4460690.884597\n    test 1232 line 207 toEtm8.northing: 5541873.235403\n    test 1233 line 207 toEtm8.gamma: 35.768613\n    test 1234 line 207 toEtm8.scale: 1.254179\n    test 1235 line 207 toEtm8.lat: 37.629667\n    test 1236 line 207 toEtm8.lon: 49.649131\n    test 1237 line 208 toEtm8.easting: 2311168.998941\n    test 1238 line 208 toEtm8.northing: 9480561.869119\n    test 1239 line 208 toEtm8.gamma: 76.828257\n    test 1240 line 208 toEtm8.scale: 1.065556\n    test 1241 line 208 toEtm8.lat: 69.225574\n    test 1242 line 208 toEtm8.lon: 77.656135\n    test 1243 line 209 toEtm8.easting: 4111775.114451\n    test 1244 line 209 toEtm8.northing: 6509014.348792\n    test 1245 line 209 toEtm8.gamma: 43.052130\n    test 1246 line 209 toEtm8.scale: 1.214125\n    test 1247 line 209 toEtm8.lat: 44.698478\n    test 1248 line 209 toEtm8.lon: 52.979304\n    test 1249 line 210 toEtm8.easting: 75358.261962\n    test 1250 line 210 toEtm8.northing: 7711258.662251\n    test 1251 line 210 toEtm8.gamma: 1.806297\n    test 1252 line 210 toEtm8.scale: 0.999669\n    test 1253 line 210 toEtm8.lat: 69.499594\n    test 1254 line 210 toEtm8.lon: 1.928336\n    test 1255 line 211 toEtm8.easting: 8781885.229116\n    test 1256 line 211 toEtm8.northing: 9184776.452211\n    test 1257 line 211 toEtm8.gamma: 81.795539\n    test 1258 line 211 toEtm8.scale: 2.094908\n    test 1259 line 211 toEtm8.lat: 27.981364\n    test 1260 line 211 toEtm8.lon: 86.061113\n    test 1261 line 212 toEtm8.easting: 954378.415174\n    test 1262 line 212 toEtm8.northing: 7449110.669807\n    test 1263 line 212 toEtm8.gamma: 19.380657\n    test 1264 line 212 toEtm8.scale: 1.010768\n    test 1265 line 212 toEtm8.lat: 65.699839\n    test 1266 line 212 toEtm8.lon: 21.104725\n    test 1267 line 213 toEtm8.easting: 720971.793706\n    test 1268 line 213 toEtm8.northing: 5265195.121555\n    test 1269 line 213 toEtm8.gamma: 7.002995\n    test 1270 line 213 toEtm8.scale: 1.005995\n    test 1271 line 213 toEtm8.lat: 47.143648\n    test 1272 line 213 toEtm8.lon: 9.512189\n    test 1273 line 214 toEtm8.easting: 561561.493937\n    test 1274 line 214 toEtm8.northing: 989910.236221\n    test 1275 line 214 toEtm8.gamma: 0.793118\n    test 1276 line 214 toEtm8.scale: 1.003505\n    test 1277 line 214 toEtm8.lat: 8.920167\n    test 1278 line 214 toEtm8.lon: 5.101513\n    test 1279 line 215 toEtm8.easting: 3446829.634468\n    test 1280 line 215 toEtm8.northing: 9232868.155664\n    test 1281 line 215 toEtm8.gamma: 76.279075\n    test 1282 line 215 toEtm8.scale: 1.148263\n    test 1283 line 215 toEtm8.lat: 59.778971\n    test 1284 line 215 toEtm8.lon: 78.080322\n    test 1285 line 216 toEtm8.easting: 4048307.545909\n    test 1286 line 216 toEtm8.northing: 9800416.422998\n    test 1287 line 216 toEtm8.gamma: 86.843918\n    test 1288 line 216 toEtm8.scale: 1.206495\n    test 1289 line 216 toEtm8.lat: 55.865310\n    test 1290 line 216 toEtm8.lon: 87.384288\n    test 1291 line 217 toEtm8.easting: 8973188.480293\n    test 1292 line 217 toEtm8.northing: 7042230.087021\n    test 1293 line 217 toEtm8.gamma: 60.872456\n    test 1294 line 217 toEtm8.scale: 2.156098\n    test 1295 line 217 toEtm8.lat: 24.310973\n    test 1296 line 217 toEtm8.lon: 76.823777\n    test 1297 line 218 toEtm8.easting: 126314.191618\n    test 1298 line 218 toEtm8.northing: 396006.687921\n    test 1299 line 218 toEtm8.gamma: 0.071065\n    test 1300 line 218 toEtm8.scale: 0.999798\n    test 1301 line 218 toEtm8.lat: 3.582041\n    test 1302 line 218 toEtm8.lon: 1.137286\n    test 1303 line 219 toEtm8.easting: 5247652.345647\n    test 1304 line 219 toEtm8.northing: 8670513.359752\n    test 1305 line 219 toEtm8.gamma: 72.700498\n    test 1306 line 219 toEtm8.scale: 1.355272\n    test 1307 line 219 toEtm8.lat: 46.124233\n    test 1308 line 219 toEtm8.lon: 77.313118\n    test 1309 line 220 toEtm8.easting: 8103656.838119\n    test 1310 line 220 toEtm8.northing: 9469794.014737\n    test 1311 line 220 toEtm8.gamma: 84.490673\n    test 1312 line 220 toEtm8.scale: 1.912164\n    test 1313 line 220 toEtm8.lat: 31.171391\n    test 1314 line 220 toEtm8.lon: 87.104504\n    test 1315 line 221 toEtm8.easting: 6300112.758236\n    test 1316 line 221 toEtm8.northing: 93835.917364\n    test 1317 line 221 toEtm8.gamma: 0.644805\n    test 1318 line 221 toEtm8.scale: 1.534073\n    test 1319 line 221 toEtm8.lat: 0.553171\n    test 1320 line 221 toEtm8.lon: 49.117104\n    test 1321 line 222 toEtm8.easting: 3894813.593782\n    test 1322 line 222 toEtm8.northing: 4833832.341027\n    test 1323 line 222 toEtm8.gamma: 27.453298\n    test 1324 line 222 toEtm8.scale: 1.192135\n    test 1325 line 222 toEtm8.lat: 35.361587\n    test 1326 line 222 toEtm8.lon: 41.860599\n    test 1327 line 223 toEtm8.easting: 402511.346712\n    test 1328 line 223 toEtm8.northing: 3520621.561911\n    test 1329 line 223 toEtm8.gamma: 2.238474\n    test 1330 line 223 toEtm8.scale: 1.001599\n    test 1331 line 223 toEtm8.lat: 31.750314\n    test 1332 line 223 toEtm8.lon: 4.248167\n    test 1333 line 224 toEtm8.easting: 5357378.503148\n    test 1334 line 224 toEtm8.northing: 2772997.602234\n    test 1335 line 224 toEtm8.gamma: 17.823560\n    test 1336 line 224 toEtm8.scale: 1.376031\n    test 1337 line 224 toEtm8.lat: 17.924336\n    test 1338 line 224 toEtm8.lon: 46.096402\n    test 1339 line 225 toEtm8.easting: 2807553.985866\n    test 1340 line 225 toEtm8.northing: 8177847.980275\n    test 1341 line 225 toEtm8.gamma: 54.680045\n    test 1342 line 225 toEtm8.scale: 1.097531\n    test 1343 line 225 toEtm8.lat: 60.931488\n    test 1344 line 225 toEtm8.lon: 58.221214\n    test 1345 line 226 toEtm8.easting: 18289045.166501\n    test 1346 line 226 toEtm8.northing: 7792942.339604\n    test 1347 line 226 toEtm8.gamma: 73.216494\n    test 1348 line 226 toEtm8.scale: 8.098009\n    test 1349 line 226 toEtm8.lat: 5.358151\n    test 1350 line 226 toEtm8.lon: 87.556213\n    test 1351 line 227 toEtm8.easting: 8376822.459538\n    test 1352 line 227 toEtm8.northing: 8128174.623878\n    test 1353 line 227 toEtm8.gamma: 70.920117\n    test 1354 line 227 toEtm8.scale: 1.984873\n    test 1355 line 227 toEtm8.lat: 28.616673\n    test 1356 line 227 toEtm8.lon: 80.452426\n    test 1357 line 228 toEtm8.easting: 11898068.353272\n    test 1358 line 228 toEtm8.northing: 4772439.493697\n    test 1359 line 228 toEtm8.gamma: 42.613968\n    test 1360 line 228 toEtm8.scale: 3.314412\n    test 1361 line 228 toEtm8.lat: 11.709763\n    test 1362 line 228 toEtm8.lon: 76.760295\n    test 1363 line 229 toEtm8.easting: 10550946.939050\n    test 1364 line 229 toEtm8.northing: 3851968.815295\n    test 1365 line 229 toEtm8.gamma: 33.383025\n    test 1366 line 229 toEtm8.scale: 2.724754\n    test 1367 line 229 toEtm8.lat: 12.009498\n    test 1368 line 229 toEtm8.lon: 71.782351\n    test 1369 line 230 toEtm8.easting: 6828299.123607\n    test 1370 line 230 toEtm8.northing: 9394803.227463\n    test 1371 line 230 toEtm8.gamma: 83.181386\n    test 1372 line 230 toEtm8.scale: 1.624359\n    test 1373 line 230 toEtm8.lat: 37.629784\n    test 1374 line 230 toEtm8.lon: 85.795687\n    test 1375 line 231 toEtm8.easting: 11162550.334022\n    test 1376 line 231 toEtm8.northing: 2640267.279593\n    test 1377 line 231 toEtm8.gamma: 23.145404\n    test 1378 line 231 toEtm8.scale: 2.998408\n    test 1379 line 231 toEtm8.lat: 7.721128\n    test 1380 line 231 toEtm8.lon: 71.662731\n    test 1381 line 232 toEtm8.easting: 4411584.447941\n    test 1382 line 232 toEtm8.northing: 4956173.694407\n    test 1383 line 232 toEtm8.gamma: 30.713919\n    test 1384 line 232 toEtm8.scale: 1.248736\n    test 1385 line 232 toEtm8.lat: 34.295026\n    test 1386 line 232 toEtm8.lon: 46.442191\n    test 1387 line 233 toEtm8.easting: 672108.897905\n    test 1388 line 233 toEtm8.northing: 4751554.657054\n    test 1389 line 233 toEtm8.gamma: 5.569178\n    test 1390 line 233 toEtm8.scale: 1.005162\n    test 1391 line 233 toEtm8.lat: 42.622496\n    test 1392 line 233 toEtm8.lon: 8.193605\n    test 1393 line 234 toEtm8.easting: 5022964.290579\n    test 1394 line 234 toEtm8.northing: 6860418.199502\n    test 1395 line 234 toEtm8.gamma: 50.862230\n    test 1396 line 234 toEtm8.scale: 1.324925\n    test 1397 line 234 toEtm8.lat: 41.667780\n    test 1398 line 234 toEtm8.lon: 61.518288\n    test 1399 line 235 toEtm8.easting: 1669655.595207\n    test 1400 line 235 toEtm8.northing: 4152086.537021\n    test 1401 line 235 toEtm8.gamma: 11.110237\n    test 1402 line 235 toEtm8.scale: 1.034138\n    test 1403 line 235 toEtm8.lat: 36.060369\n    test 1404 line 235 toEtm8.lon: 18.444112\n    test 1405 line 236 toEtm8.easting: 6055876.729655\n    test 1406 line 236 toEtm8.northing: 4896837.552619\n    test 1407 line 236 toEtm8.gamma: 35.799747\n    test 1408 line 236 toEtm8.scale: 1.485967\n    test 1409 line 236 toEtm8.lat: 27.948091\n    test 1410 line 236 toEtm8.lon: 56.816429\n    test 1411 line 237 toEtm8.easting: 1209214.164379\n    test 1412 line 237 toEtm8.northing: 7266409.859178\n    test 1413 line 237 toEtm8.gamma: 22.319633\n    test 1414 line 237 toEtm8.scale: 1.017554\n    test 1415 line 237 toEtm8.lat: 63.386030\n    test 1416 line 237 toEtm8.lon: 24.662716\n    test 1417 line 238 toEtm8.easting: 5154564.559584\n    test 1418 line 238 toEtm8.northing: 698118.349975\n    test 1419 line 238 toEtm8.gamma: 4.242360\n    test 1420 line 238 toEtm8.scale: 1.347481\n    test 1421 line 238 toEtm8.lat: 4.680922\n    test 1422 line 238 toEtm8.lon: 42.114426\n    test 1423 line 239 toEtm8.easting: 2695149.806543\n    test 1424 line 239 toEtm8.northing: 8208197.765605\n    test 1425 line 239 toEtm8.gamma: 54.178615\n    test 1426 line 239 toEtm8.scale: 1.089730\n    test 1427 line 239 toEtm8.lat: 61.826625\n    test 1428 line 239 toEtm8.lon: 57.525096\n    test 1429 line 240 toEtm8.easting: 3394792.327820\n    test 1430 line 240 toEtm8.northing: 3217583.415552\n    test 1431 line 240 toEtm8.gamma: 15.165863\n    test 1432 line 240 toEtm8.scale: 1.145285\n    test 1433 line 240 toEtm8.lat: 25.104353\n    test 1434 line 240 toEtm8.lon: 32.528660\n    test 1435 line 241 toEtm8.easting: 1429160.966985\n    test 1436 line 241 toEtm8.northing: 8212685.362032\n    test 1437 line 241 toEtm8.gamma: 37.484904\n    test 1438 line 241 toEtm8.scale: 1.024676\n    test 1439 line 241 toEtm8.lat: 69.678351\n    test 1440 line 241 toEtm8.lon: 39.275513\n    test 1441 line 242 toEtm8.easting: 8343387.998065\n    test 1442 line 242 toEtm8.northing: 8885196.954578\n    test 1443 line 242 toEtm8.gamma: 78.561937\n    test 1444 line 242 toEtm8.scale: 1.974733\n    test 1445 line 242 toEtm8.lat: 29.671384\n    test 1446 line 242 toEtm8.lon: 84.196595\n    test 1447 line 243 toEtm8.easting: 1990722.928606\n    test 1448 line 243 toEtm8.northing: 7569202.065162\n    test 1449 line 243 toEtm8.gamma: 37.075276\n    test 1450 line 243 toEtm8.scale: 1.048486\n    test 1451 line 243 toEtm8.lat: 62.300208\n    test 1452 line 243 toEtm8.lon: 40.474051\n    test 1453 line 244 toEtm8.easting: 1554980.099559\n    test 1454 line 244 toEtm8.northing: 1449423.919586\n    test 1455 line 244 toEtm8.gamma: 3.188328\n    test 1456 line 244 toEtm8.scale: 1.029664\n    test 1457 line 244 toEtm8.lat: 12.721776\n    test 1458 line 244 toEtm8.lon: 14.190003\n    test 1459 line 245 toEtm8.easting: 785205.450196\n    test 1460 line 245 toEtm8.northing: 5575158.423096\n    test 1461 line 245 toEtm8.gamma: 8.388417\n    test 1462 line 245 toEtm8.scale: 1.007181\n    test 1463 line 245 toEtm8.lat: 49.811296\n    test 1464 line 245 toEtm8.lon: 10.925011\n    test 1465 line 246 toEtm8.easting: 3310405.988313\n    test 1466 line 246 toEtm8.northing: 5955022.233881\n    test 1467 line 246 toEtm8.gamma: 33.007587\n    test 1468 line 246 toEtm8.scale: 1.137141\n    test 1469 line 246 toEtm8.lat: 45.132680\n    test 1470 line 246 toEtm8.lon: 42.478624\n    test 1471 line 247 toEtm8.easting: 4733460.960666\n    test 1472 line 247 toEtm8.northing: 129034.889816\n    test 1473 line 247 toEtm8.gamma: 0.737551\n    test 1474 line 247 toEtm8.scale: 1.290439\n    test 1475 line 247 toEtm8.lat: 0.904279\n    test 1476 line 247 toEtm8.lon: 39.078412\n    test 1477 line 248 toEtm8.easting: 3322708.343909\n    test 1478 line 248 toEtm8.northing: 3864738.078742\n    test 1479 line 248 toEtm8.gamma: 18.472566\n    test 1480 line 248 toEtm8.scale: 1.138838\n    test 1481 line 248 toEtm8.lat: 30.163605\n    test 1482 line 248 toEtm8.lon: 33.577996\n    test 1483 line 249 toEtm8.easting: 8672864.417204\n    test 1484 line 249 toEtm8.northing: 8333465.983444\n    test 1485 line 249 toEtm8.gamma: 73.206273\n    test 1486 line 249 toEtm8.scale: 2.065441\n    test 1487 line 249 toEtm8.lat: 27.643244\n    test 1488 line 249 toEtm8.lon: 81.892859\n    test 1489 line 250 toEtm8.easting: 11126818.231196\n    test 1490 line 250 toEtm8.northing: 7618712.174991\n    test 1491 line 250 toEtm8.gamma: 67.887173\n    test 1492 line 250 toEtm8.scale: 2.922417\n    test 1493 line 250 toEtm8.lat: 18.201208\n    test 1494 line 250 toEtm8.lon: 82.434618\n    test 1495 line 251 toEtm8.easting: 8650100.981797\n    test 1496 line 251 toEtm8.northing: 9975084.168997\n    test 1497 line 251 toEtm8.gamma: 89.767446\n    test 1498 line 251 toEtm8.scale: 2.057289\n    test 1499 line 251 toEtm8.lat: 28.804576\n    test 1500 line 251 toEtm8.lon: 89.886072\n    test 1501 line 252 toEtm8.easting: 2212701.180192\n    test 1502 line 252 toEtm8.northing: 650348.100229\n    test 1503 line 252 toEtm8.gamma: 1.970441\n    test 1504 line 252 toEtm8.scale: 1.060830\n    test 1505 line 252 toEtm8.lat: 5.542998\n    test 1506 line 252 toEtm8.lon: 19.589578\n    test 1507 line 253 toEtm8.easting: 6890222.326618\n    test 1508 line 253 toEtm8.northing: 7506813.499547\n    test 1509 line 253 toEtm8.gamma: 62.684825\n    test 1510 line 253 toEtm8.scale: 1.638488\n    test 1511 line 253 toEtm8.lat: 34.237147\n    test 1512 line 253 toEtm8.lon: 73.678164\n    test 1513 line 254 toEtm8.easting: 6692260.067325\n    test 1514 line 254 toEtm8.northing: 4244174.008110\n    test 1515 line 254 toEtm8.gamma: 31.812920\n    test 1516 line 254 toEtm8.scale: 1.604640\n    test 1517 line 254 toEtm8.lat: 22.704949\n    test 1518 line 254 toEtm8.lon: 57.877010\n    test 1519 line 255 toEtm8.easting: 1225564.137190\n    test 1520 line 255 toEtm8.northing: 4778923.924144\n    test 1521 line 255 toEtm8.gamma: 10.083419\n    test 1522 line 255 toEtm8.scale: 1.018134\n    test 1523 line 255 toEtm8.lat: 42.192424\n    test 1524 line 255 toEtm8.lon: 14.828196\n    test 1525 line 256 toEtm8.easting: 12341116.154950\n    test 1526 line 256 toEtm8.northing: 5081855.521966\n    test 1527 line 256 toEtm8.gamma: 45.712546\n    test 1528 line 256 toEtm8.scale: 3.535170\n    test 1529 line 256 toEtm8.lat: 11.481151\n    test 1530 line 256 toEtm8.lon: 78.189236\n    test 1531 line 257 toEtm8.easting: 6673845.021771\n    test 1532 line 257 toEtm8.northing: 1177587.190565\n    test 1533 line 257 toEtm8.gamma: 8.389141\n    test 1534 line 257 toEtm8.scale: 1.605171\n    test 1535 line 257 toEtm8.lat: 6.609626\n    test 1536 line 257 toEtm8.lon: 51.735783\n    test 1537 line 258 toEtm8.easting: 6966354.690417\n    test 1538 line 258 toEtm8.northing: 3641802.005093\n    test 1539 line 258 toEtm8.gamma: 27.409636\n    test 1540 line 258 toEtm8.scale: 1.661469\n    test 1541 line 258 toEtm8.lat: 19.059369\n    test 1542 line 258 toEtm8.lon: 57.526439\n    test 1543 max forward error: 2.235174e-08\n    test 1544 max reverse error: 8.526513e-14\n    test 1545 Etm.scale0: 0.9996\n    test 1546 Etm.datum: WGS84\n    test 1547 Etm.datum.ellipsoid.KsOrder: 8\n    test 1548 WGS84.KsOrder: 8\n\n    all 1548 testEtmTMcoords.py tests passed, 1 skipped (pygeodesy 26.3.26 Python 3.12.10 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 2.1.0 scipy 1.14.1 Math 2 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 isLazy 3 -W  default) 8.733 sec\nrunning /usr/local/bin/p....n3.12 -W default ~/PyGeodesy/test/testExactTMcoords.py\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.Ellipsoids from .ellipsoids by testTMcoords.py line 14\n# lazily imported pygeodesy.EPS from .constants by testTMcoords.py line 14\n# lazily imported pygeodesy.RangeError from .errors by testTMcoords.py line 14\n# lazily imported pygeodesy.etm by testExactTMcoords.py line 14\n# lazily imported pygeodesy.ExactTransverseMercator from .etm by testExactTMcoords.py line 14\n# lazily imported pygeodesy.LatLon_ from .points by testExactTMcoords.py line 14\n\n    testing testExactTMcoords.py 24.03.22 (module pygeodesy.etm 25.09.15) isLazy=3\n# lazily imported pygeodesy.elliptic by etm.py line 354\n    test 1 line 1 _ExactTM.easting: 1548706.791619\n    test 2 line 1 _ExactTM.northing: 8451449.198772\n    test 3 line 1 _ExactTM.gamma: 43.922790\n    test 4 line 1 _ExactTM.scale: 1.029060\n    test 5 line 1 _ExactTM.lat: 70.579277\n    test 6 line 1 _ExactTM.lon: 45.599420\n    test 7 line 2 _ExactTM.easting: 2624150.740929\n    test 8 line 2 _ExactTM.northing: 1204434.041605\n    test 9 line 2 _ExactTM.gamma: 4.292619\n    test 10 line 2 _ExactTM.scale: 1.086051\n    test 11 line 2 _ExactTM.lat: 10.018894\n    test 12 line 2 _ExactTM.lon: 23.313324\n    test 13 line 3 _ExactTM.easting: 9855841.232935\n    test 14 line 3 _ExactTM.northing: 6145496.115155\n    test 15 line 3 _ExactTM.gamma: 53.348315\n    test 16 line 3 _ExactTM.scale: 2.445098\n    test 17 line 3 _ExactTM.lat: 19.479896\n    test 18 line 3 _ExactTM.lon: 75.662049\n    test 19 line 4 _ExactTM.easting: 3206390.691996\n    test 20 line 4 _ExactTM.northing: 2650745.400406\n    test 21 line 4 _ExactTM.gamma: 11.666950\n    test 22 line 4 _ExactTM.scale: 1.129359\n    test 23 line 4 _ExactTM.lat: 21.072465\n    test 24 line 4 _ExactTM.lon: 29.828684\n    test 25 line 5 _ExactTM.easting: 4328154.083501\n    test 26 line 5 _ExactTM.northing: 749647.623690\n    test 27 line 5 _ExactTM.gamma: 4.024317\n    test 28 line 5 _ExactTM.scale: 1.240829\n    test 29 line 5 _ExactTM.lat: 5.458957\n    test 30 line 5 _ExactTM.lon: 36.385237\n    test 31 line 6 _ExactTM.easting: 847598.266514\n    test 32 line 6 _ExactTM.northing: 7947180.962440\n    test 33 line 6 _ExactTM.gamma: 21.639091\n    test 34 line 6 _ExactTM.scale: 1.008399\n    test 35 line 6 _ExactTM.lat: 70.175454\n    test 36 line 6 _ExactTM.lon: 22.865350\n    test 37 line 7 _ExactTM.easting: 2727657.337974\n    test 38 line 7 _ExactTM.northing: 8283916.696410\n    test 39 line 7 _ExactTM.gamma: 55.690909\n    test 40 line 7 _ExactTM.scale: 1.091942\n    test 41 line 7 _ExactTM.lat: 61.965605\n    test 42 line 7 _ExactTM.lon: 58.931371\n    test 43 line 8 _ExactTM.easting: 2331001.751890\n    test 44 line 8 _ExactTM.northing: 1313608.224751\n    test 45 line 8 _ExactTM.gamma: 4.214690\n    test 46 line 8 _ExactTM.scale: 1.067599\n    test 47 line 8 _ExactTM.lat: 11.116050\n    test 48 line 8 _ExactTM.lon: 20.901069\n    test 49 line 9 _ExactTM.easting: 6035557.239480\n    test 50 line 9 _ExactTM.northing: 5791770.791879\n    test 51 line 9 _ExactTM.gamma: 43.698170\n    test 52 line 9 _ExactTM.scale: 1.481260\n    test 53 line 9 _ExactTM.lat: 32.210543\n    test 54 line 9 _ExactTM.lon: 60.705849\n    test 55 line 10 _ExactTM.easting: 1064553.125852\n    test 56 line 10 _ExactTM.northing: 9417273.737208\n    test 57 line 10 _ExactTM.gamma: 61.100380\n    test 58 line 10 _ExactTM.scale: 1.013475\n    test 59 line 10 _ExactTM.lat: 79.187451\n    test 60 line 10 _ExactTM.lon: 61.532382\n    test 61 line 11 _ExactTM.easting: 1400137.116164\n    test 62 line 11 _ExactTM.northing: 9616907.017686\n    test 63 line 11 _ExactTM.gamma: 74.527087\n    test 64 line 11 _ExactTM.scale: 1.023640\n    test 65 line 11 _ExactTM.lat: 77.103759\n    test 66 line 11 _ExactTM.lon: 74.899105\n    test 67 line 12 _ExactTM.easting: 9860691.016626\n    test 68 line 12 _ExactTM.northing: 7433039.143328\n    test 69 line 12 _ExactTM.gamma: 65.357693\n    test 70 line 12 _ExactTM.scale: 2.438973\n    test 71 line 12 _ExactTM.lat: 21.889514\n    test 72 line 12 _ExactTM.lon: 80.019886\n    test 73 line 13 _ExactTM.easting: 8076501.833695\n    test 74 line 13 _ExactTM.northing: 8561614.174782\n    test 75 line 13 _ExactTM.gamma: 75.073393\n    test 76 line 13 _ExactTM.scale: 1.906202\n    test 77 line 13 _ExactTM.lat: 30.536296\n    test 78 line 13 _ExactTM.lon: 82.186178\n    test 79 line 14 _ExactTM.easting: 3335099.866623\n    test 80 line 14 _ExactTM.northing: 6740519.084015\n    test 81 line 14 _ExactTM.gamma: 40.611821\n    test 82 line 14 _ExactTM.scale: 1.139021\n    test 83 line 14 _ExactTM.lat: 49.990485\n    test 84 line 14 _ExactTM.lon: 48.203179\n    test 85 line 15 _ExactTM.easting: 12051574.928500\n    test 86 line 15 _ExactTM.northing: 6587213.051951\n    test 87 line 15 _ExactTM.gamma: 59.033237\n    test 88 line 15 _ExactTM.scale: 3.357469\n    test 89 line 15 _ExactTM.lat: 14.486312\n    test 90 line 15 _ExactTM.lon: 80.905137\n    test 91 line 16 _ExactTM.easting: 5387578.735298\n    test 92 line 16 _ExactTM.northing: 4111216.907168\n    test 93 line 16 _ExactTM.gamma: 27.574337\n    test 94 line 16 _ExactTM.scale: 1.379357\n    test 95 line 16 _ExactTM.lat: 25.936824\n    test 96 line 16 _ExactTM.lon: 49.913598\n    test 97 line 17 _ExactTM.easting: 2622214.380233\n    test 98 line 17 _ExactTM.northing: 8678923.984567\n    test 99 line 17 _ExactTM.gamma: 61.697275\n    test 100 line 17 _ExactTM.scale: 1.084810\n    test 101 line 17 _ExactTM.lat: 64.402196\n    test 102 line 17 _ExactTM.lon: 64.091395\n    test 103 line 18 _ExactTM.easting: 5068474.169633\n    test 104 line 18 _ExactTM.northing: 9492066.993709\n    test 105 line 18 _ExactTM.gamma: 83.156740\n    test 106 line 18 _ExactTM.scale: 1.329990\n    test 107 line 18 _ExactTM.lat: 48.451354\n    test 108 line 18 _ExactTM.lon: 84.856198\n    test 109 line 19 _ExactTM.easting: 738062.047779\n    test 110 line 19 _ExactTM.northing: 3031007.074116\n    test 111 line 19 _ExactTM.gamma: 3.416802\n    test 112 line 19 _ExactTM.scale: 1.006332\n    test 113 line 19 _ExactTM.lat: 27.203895\n    test 114 line 19 _ExactTM.lon: 7.440229\n    test 115 line 20 _ExactTM.easting: 1944413.834565\n    test 116 line 20 _ExactTM.northing: 9613299.224493\n    test 117 line 20 _ExactTM.gamma: 78.462831\n    test 118 line 20 _ExactTM.scale: 1.046134\n    test 119 line 20 _ExactTM.lat: 72.509000\n    test 120 line 20 _ExactTM.lon: 78.982283\n    test 121 line 21 _ExactTM.easting: 2114521.418406\n    test 122 line 21 _ExactTM.northing: 4954077.440098\n    test 123 line 21 _ExactTM.gamma: 17.571878\n    test 124 line 21 _ExactTM.scale: 1.055093\n    test 125 line 21 _ExactTM.lat: 41.824954\n    test 126 line 21 _ExactTM.lon: 25.392744\n    test 127 line 22 _ExactTM.easting: 620365.905090\n    test 128 line 22 _ExactTM.northing: 4755542.026562\n    test 129 line 22 _ExactTM.gamma: 5.152022\n    test 130 line 22 _ExactTM.scale: 1.004338\n    test 131 line 22 _ExactTM.lat: 42.701376\n    test 132 line 22 _ExactTM.lon: 7.572738\n    test 133 line 23 _ExactTM.easting: 263004.770989\n    test 134 line 23 _ExactTM.northing: 4493669.762451\n    test 135 line 23 _ExactTM.gamma: 2.020523\n    test 136 line 23 _ExactTM.scale: 1.000452\n    test 137 line 23 _ExactTM.lat: 40.552052\n    test 138 line 23 _ExactTM.lon: 3.106056\n    test 139 line 24 _ExactTM.easting: 3217221.739462\n    test 140 line 24 _ExactTM.northing: 437776.119161\n    test 141 line 24 _ExactTM.gamma: 1.848169\n    test 142 line 24 _ExactTM.scale: 1.130558\n    test 143 line 24 _ExactTM.lat: 3.501242\n    test 144 line 24 _ExactTM.lon: 27.806507\n    test 145 line 25 _ExactTM.easting: 14661142.444961\n    test 146 line 25 _ExactTM.northing: 7476100.824185\n    test 147 line 25 _ExactTM.gamma: 68.376669\n    test 148 line 25 _ExactTM.scale: 4.896650\n    test 149 line 25 _ExactTM.lat: 10.148715\n    test 150 line 25 _ExactTM.lon: 85.373768\n    test 151 line 26 _ExactTM.easting: 967777.158554\n    test 152 line 26 _ExactTM.northing: 6615684.266592\n    test 153 line 26 _ExactTM.gamma: 14.410044\n    test 154 line 26 _ExactTM.scale: 1.011100\n    test 155 line 26 _ExactTM.lat: 58.582623\n    test 156 line 26 _ExactTM.lon: 16.755558\n    test 157 line 27 _ExactTM.easting: 7558840.728461\n    test 158 line 27 _ExactTM.northing: 4144728.130764\n    test 159 line 27 _ExactTM.gamma: 32.557264\n    test 160 line 27 _ExactTM.scale: 1.791490\n    test 161 line 27 _ExactTM.lat: 19.793004\n    test 162 line 27 _ExactTM.lon: 61.746763\n    test 163 line 28 _ExactTM.easting: 1056008.314161\n    test 164 line 28 _ExactTM.northing: 9290799.692669\n    test 165 line 28 _ExactTM.gamma: 55.843278\n    test 166 line 28 _ExactTM.scale: 1.013253\n    test 167 line 28 _ExactTM.lat: 78.666776\n    test 168 line 28 _ExactTM.lon: 56.365355\n    test 169 line 29 _ExactTM.easting: 1943965.134687\n    test 170 line 29 _ExactTM.northing: 1389972.228690\n    test 171 line 29 _ExactTM.gamma: 3.774869\n    test 172 line 29 _ExactTM.scale: 1.046724\n    test 173 line 29 _ExactTM.lat: 11.998788\n    test 174 line 29 _ExactTM.lon: 17.597873\n    test 175 line 30 _ExactTM.easting: 5803077.072902\n    test 176 line 30 _ExactTM.northing: 5649957.943659\n    test 177 line 30 _ExactTM.gamma: 41.717943\n    test 178 line 30 _ExactTM.scale: 1.442572\n    test 179 line 30 _ExactTM.lat: 32.540378\n    test 180 line 30 _ExactTM.lon: 58.764613\n    test 181 line 31 _ExactTM.easting: 2928716.986009\n    test 182 line 31 _ExactTM.northing: 5731835.058317\n    test 183 line 31 _ExactTM.gamma: 28.538550\n    test 184 line 31 _ExactTM.scale: 1.106780\n    test 185 line 31 _ExactTM.lat: 45.160356\n    test 186 line 31 _ExactTM.lon: 37.465285\n    test 187 line 32 _ExactTM.easting: 326141.975756\n    test 188 line 32 _ExactTM.northing: 8881325.164543\n    test 189 line 32 _ExactTM.gamma: 16.111415\n    test 190 line 32 _ExactTM.scale: 1.000900\n    test 191 line 32 _ExactTM.lat: 79.584190\n    test 192 line 32 _ExactTM.lon: 16.367006\n    test 193 line 33 _ExactTM.easting: 3933015.267450\n    test 194 line 33 _ExactTM.northing: 7932373.909512\n    test 195 line 33 _ExactTM.gamma: 58.577424\n    test 196 line 33 _ExactTM.scale: 1.194811\n    test 197 line 33 _ExactTM.lat: 52.470664\n    test 198 line 33 _ExactTM.lon: 64.125580\n    test 199 line 34 _ExactTM.easting: 8598926.983213\n    test 200 line 34 _ExactTM.northing: 6214135.167503\n    test 201 line 34 _ExactTM.gamma: 52.612878\n    test 202 line 34 _ExactTM.scale: 2.051367\n    test 203 line 34 _ExactTM.lat: 23.702673\n    test 204 line 34 _ExactTM.lon: 72.630363\n    test 205 line 35 _ExactTM.easting: 6620553.333772\n    test 206 line 35 _ExactTM.northing: 6540527.122948\n    test 207 line 35 _ExactTM.gamma: 52.350140\n    test 208 line 35 _ExactTM.scale: 1.586614\n    test 209 line 35 _ExactTM.lat: 32.603520\n    test 210 line 35 _ExactTM.lon: 67.280123\n    test 211 line 36 _ExactTM.easting: 1515136.758292\n    test 212 line 36 _ExactTM.northing: 3858996.087537\n    test 213 line 36 _ExactTM.gamma: 9.225127\n    test 214 line 36 _ExactTM.scale: 1.028029\n    test 215 line 36 _ExactTM.lat: 33.776224\n    test 216 line 36 _ExactTM.lon: 16.280993\n    test 217 line 37 _ExactTM.easting: 479854.373445\n    test 218 line 37 _ExactTM.northing: 8980501.389896\n    test 219 line 37 _ExactTM.gamma: 25.021222\n    test 220 line 37 _ExactTM.scale: 1.002415\n    test 221 line 37 _ExactTM.lat: 79.932747\n    test 222 line 37 _ExactTM.lon: 25.363622\n    test 223 line 38 _ExactTM.easting: 5243446.564940\n    test 224 line 38 _ExactTM.northing: 140657.213960\n    test 225 line 38 _ExactTM.gamma: 0.862817\n    test 226 line 38 _ExactTM.scale: 1.360358\n    test 227 line 38 _ExactTM.lat: 0.935056\n    test 228 line 38 _ExactTM.lon: 42.538824\n    test 229 line 39 _ExactTM.easting: 12806457.923218\n    test 230 line 39 _ExactTM.northing: 7170118.684675\n    test 231 line 39 _ExactTM.gamma: 64.708921\n    test 232 line 39 _ExactTM.scale: 3.740588\n    test 233 line 39 _ExactTM.lat: 13.490862\n    test 234 line 39 _ExactTM.lon: 83.178380\n    test 235 line 40 _ExactTM.easting: 1202993.459158\n    test 236 line 40 _ExactTM.northing: 5557316.053599\n    test 237 line 40 _ExactTM.gamma: 12.579061\n    test 238 line 40 _ExactTM.scale: 1.017426\n    test 239 line 40 _ExactTM.lat: 48.979057\n    test 240 line 40 _ExactTM.lon: 16.474542\n    test 241 line 41 _ExactTM.easting: 1729088.710196\n    test 242 line 41 _ExactTM.northing: 7770874.289954\n    test 243 line 41 _ExactTM.gamma: 36.021783\n    test 244 line 41 _ExactTM.scale: 1.036397\n    test 245 line 41 _ExactTM.lat: 65.036016\n    test 246 line 41 _ExactTM.lon: 38.729091\n    test 247 line 42 _ExactTM.easting: 2437301.517425\n    test 248 line 42 _ExactTM.northing: 5539327.748318\n    test 249 line 42 _ExactTM.gamma: 23.461879\n    test 250 line 42 _ExactTM.scale: 1.073459\n    test 251 line 42 _ExactTM.lat: 45.510091\n    test 252 line 42 _ExactTM.lon: 31.303729\n    test 253 line 43 _ExactTM.easting: 3647186.135066\n    test 254 line 43 _ExactTM.northing: 2086412.330983\n    test 255 line 43 _ExactTM.gamma: 10.023991\n    test 256 line 43 _ExactTM.scale: 1.168707\n    test 257 line 43 _ExactTM.lat: 16.058010\n    test 258 line 43 _ExactTM.lon: 32.520026\n    test 259 line 44 _ExactTM.easting: 1818497.243556\n    test 260 line 44 _ExactTM.northing: 4275471.745057\n    test 261 line 44 _ExactTM.gamma: 12.499656\n    test 262 line 44 _ExactTM.scale: 1.040604\n    test 263 line 44 _ExactTM.lat: 36.845200\n    test 264 line 44 _ExactTM.lon: 20.282283\n    test 265 line 45 _ExactTM.easting: 3751304.113783\n    test 266 line 45 _ExactTM.northing: 5130454.001592\n    test 267 line 45 _ExactTM.gamma: 28.959707\n    test 268 line 45 _ExactTM.scale: 1.177681\n    test 269 line 45 _ExactTM.lat: 37.865481\n    test 270 line 45 _ExactTM.lon: 41.990402\n    test 271 line 46 _ExactTM.easting: 2616733.138544\n    test 272 line 46 _ExactTM.northing: 394644.463815\n    test 273 line 46 _ExactTM.gamma: 1.390425\n    test 274 line 46 _ExactTM.scale: 1.085595\n    test 275 line 46 _ExactTM.lat: 3.287272\n    test 276 line 46 _ExactTM.lon: 22.917604\n    test 277 line 47 _ExactTM.easting: 1756506.573942\n    test 278 line 47 _ExactTM.northing: 5570393.986394\n    test 279 line 47 _ExactTM.gamma: 17.897894\n    test 280 line 47 _ExactTM.scale: 1.037732\n    test 281 line 47 _ExactTM.lat: 47.813686\n    test 282 line 47 _ExactTM.lon: 23.545092\n    test 283 line 48 _ExactTM.easting: 8752461.894711\n    test 284 line 48 _ExactTM.northing: 6087728.152284\n    test 285 line 48 _ExactTM.gamma: 51.628465\n    test 286 line 48 _ExactTM.scale: 2.095465\n    test 287 line 48 _ExactTM.lat: 22.836853\n    test 288 line 48 _ExactTM.lon: 72.604385\n    test 289 line 49 _ExactTM.easting: 1309272.216432\n    test 290 line 49 _ExactTM.northing: 59520.028899\n    test 291 line 49 _ExactTM.gamma: 0.109069\n    test 292 line 49 _ExactTM.scale: 1.020897\n    test 293 line 49 _ExactTM.lat: 0.527262\n    test 294 line 49 _ExactTM.lon: 11.684209\n    test 295 line 50 _ExactTM.easting: 328652.277129\n    test 296 line 50 _ExactTM.northing: 2233043.958874\n    test 297 line 50 _ExactTM.gamma: 1.084863\n    test 298 line 50 _ExactTM.scale: 1.000935\n    test 299 line 50 _ExactTM.lat: 20.166742\n    test 300 line 50 _ExactTM.lon: 3.143948\n    test 301 line 51 _ExactTM.easting: 8637959.716447\n    test 302 line 51 _ExactTM.northing: 9190635.156031\n    test 303 line 51 _ExactTM.gamma: 81.802563\n    test 304 line 51 _ExactTM.scale: 2.054329\n    test 305 line 51 _ExactTM.lat: 28.604629\n    test 306 line 51 _ExactTM.lon: 85.988721\n    test 307 line 52 _ExactTM.easting: 8548521.455147\n    test 308 line 52 _ExactTM.northing: 9172410.943282\n    test 309 line 52 _ExactTM.gamma: 81.583928\n    test 310 line 52 _ExactTM.scale: 2.029641\n    test 311 line 52 _ExactTM.lat: 28.984048\n    test 312 line 52 _ExactTM.lon: 85.833448\n    test 313 line 53 _ExactTM.easting: 796987.281104\n    test 314 line 53 _ExactTM.northing: 7677446.357675\n    test 315 line 53 _ExactTM.gamma: 18.084472\n    test 316 line 53 _ExactTM.scale: 1.007381\n    test 317 line 53 _ExactTM.lat: 68.071020\n    test 318 line 53 _ExactTM.lon: 19.392823\n    test 319 line 54 _ExactTM.easting: 3291036.496762\n    test 320 line 54 _ExactTM.northing: 9513199.600666\n    test 321 line 54 _ExactTM.gamma: 80.890254\n    test 322 line 54 _ExactTM.scale: 1.134826\n    test 323 line 54 _ExactTM.lat: 61.416576\n    test 324 line 54 _ExactTM.lon: 81.981611\n    test 325 line 55 _ExactTM.easting: 7087225.330906\n    test 326 line 55 _ExactTM.northing: 8382823.855822\n    test 327 line 55 _ExactTM.gamma: 72.253756\n    test 328 line 55 _ExactTM.scale: 1.678070\n    test 329 line 55 _ExactTM.lat: 35.074753\n    test 330 line 55 _ExactTM.lon: 79.496003\n    test 331 line 56 _ExactTM.easting: 5090358.125724\n    test 332 line 56 _ExactTM.northing: 4318294.133489\n    test 333 line 56 _ExactTM.gamma: 28.266280\n    test 334 line 56 _ExactTM.scale: 1.336264\n    test 335 line 56 _ExactTM.lat: 28.078790\n    test 336 line 56 _ExactTM.lon: 48.684350\n\n    test skipped (1): line 57 _ExactTM.'84.986930137199 2.067177857261 20163.0752214330146 9438635.9888499043815 2.059277291707588222 .99960496589466017622'\n    test 337 line 58 _ExactTM.easting: 3447670.550785\n    test 338 line 58 _ExactTM.northing: 3680238.888223\n    test 339 line 58 _ExactTM.gamma: 17.934948\n    test 340 line 58 _ExactTM.scale: 1.149831\n    test 341 line 58 _ExactTM.lat: 28.473948\n    test 342 line 58 _ExactTM.lon: 34.127306\n    test 343 line 59 _ExactTM.easting: 3396522.906798\n    test 344 line 59 _ExactTM.northing: 8093659.687593\n    test 345 line 59 _ExactTM.gamma: 57.747117\n    test 346 line 59 _ExactTM.scale: 1.144006\n    test 347 line 59 _ExactTM.lat: 56.629354\n    test 348 line 59 _ExactTM.lon: 62.196474\n    test 349 line 60 _ExactTM.easting: 11249894.100784\n    test 350 line 60 _ExactTM.northing: 1619226.506299\n    test 351 line 60 _ExactTM.gamma: 14.210358\n    test 352 line 60 _ExactTM.scale: 3.048347\n    test 353 line 60 _ExactTM.lat: 4.747762\n    test 354 line 60 _ExactTM.lon: 70.932555\n    test 355 line 61 _ExactTM.easting: 6808805.230950\n    test 356 line 61 _ExactTM.northing: 8044779.777369\n    test 357 line 61 _ExactTM.gamma: 68.242008\n    test 358 line 61 _ExactTM.scale: 1.621464\n    test 359 line 61 _ExactTM.lat: 35.882113\n    test 360 line 61 _ExactTM.lon: 76.741849\n    test 361 line 62 _ExactTM.easting: 2306021.556506\n    test 362 line 62 _ExactTM.northing: 757191.592866\n    test 363 line 62 _ExactTM.gamma: 2.385686\n    test 364 line 62 _ExactTM.scale: 1.066159\n    test 365 line 62 _ExactTM.lat: 6.420705\n    test 366 line 62 _ExactTM.lon: 20.416028\n    test 367 line 63 _ExactTM.easting: 1547406.313862\n    test 368 line 63 _ExactTM.northing: 6048712.751824\n    test 369 line 63 _ExactTM.gamma: 18.474372\n    test 370 line 63 _ExactTM.scale: 1.029123\n    test 371 line 63 _ExactTM.lat: 52.335248\n    test 372 line 63 _ExactTM.lon: 22.879294\n    test 373 line 64 _ExactTM.easting: 2430467.650383\n    test 374 line 64 _ExactTM.northing: 7557167.613972\n    test 375 line 64 _ExactTM.gamma: 42.110021\n    test 376 line 64 _ExactTM.scale: 1.072759\n    test 377 line 64 _ExactTM.lat: 59.846391\n    test 378 line 64 _ExactTM.lon: 46.262536\n    test 379 line 65 _ExactTM.easting: 2334053.905830\n    test 380 line 65 _ExactTM.northing: 1948076.966582\n    test 381 line 65 _ExactTM.gamma: 6.353185\n    test 382 line 65 _ExactTM.scale: 1.067733\n    test 383 line 65 _ExactTM.lat: 16.461790\n    test 384 line 65 _ExactTM.lon: 21.433269\n    test 385 line 66 _ExactTM.easting: 5564175.186737\n    test 386 line 66 _ExactTM.northing: 1836851.660412\n    test 387 line 66 _ExactTM.gamma: 11.870682\n    test 388 line 66 _ExactTM.scale: 1.408265\n    test 389 line 66 _ExactTM.lat: 11.707905\n    test 390 line 66 _ExactTM.lon: 45.827075\n    test 391 line 67 _ExactTM.easting: 6118505.590359\n    test 392 line 67 _ExactTM.northing: 7631684.552421\n    test 393 line 67 _ExactTM.gamma: 62.477323\n    test 394 line 67 _ExactTM.scale: 1.493420\n    test 395 line 67 _ExactTM.lat: 38.519075\n    test 396 line 67 _ExactTM.lon: 71.935918\n    test 397 line 68 _ExactTM.easting: 7365359.294665\n    test 398 line 68 _ExactTM.northing: 8818194.451531\n    test 399 line 68 _ExactTM.gamma: 77.207042\n    test 400 line 68 _ExactTM.scale: 1.737639\n    test 401 line 68 _ExactTM.lat: 34.264007\n    test 402 line 68 _ExactTM.lon: 82.647878\n    test 403 line 69 _ExactTM.easting: 36187.342415\n    test 404 line 69 _ExactTM.northing: 2142565.324802\n    test 405 line 69 _ExactTM.gamma: 0.114334\n    test 406 line 69 _ExactTM.scale: 0.999616\n    test 407 line 69 _ExactTM.lat: 19.376880\n    test 408 line 69 _ExactTM.lon: 0.344605\n    test 409 line 70 _ExactTM.easting: 2380328.546851\n    test 410 line 70 _ExactTM.northing: 8440109.872384\n    test 411 line 70 _ExactTM.gamma: 55.076067\n    test 412 line 70 _ExactTM.scale: 1.069658\n    test 413 line 70 _ExactTM.lat: 65.075805\n    test 414 line 70 _ExactTM.lon: 57.653438\n    test 415 line 71 _ExactTM.easting: 582511.608826\n    test 416 line 71 _ExactTM.northing: 8876047.217071\n    test 417 line 71 _ExactTM.gamma: 27.133300\n    test 418 line 71 _ExactTM.scale: 1.003749\n    test 419 line 71 _ExactTM.lat: 78.691870\n    test 420 line 71 _ExactTM.lon: 27.591736\n    test 421 line 72 _ExactTM.easting: 899441.350477\n    test 422 line 72 _ExactTM.northing: 4582046.430516\n    test 423 line 72 _ExactTM.gamma: 7.031211\n    test 424 line 72 _ExactTM.scale: 1.009573\n    test 425 line 72 _ExactTM.lat: 40.893022\n    test 426 line 72 _ExactTM.lon: 10.668804\n    test 427 line 73 _ExactTM.easting: 5022485.124337\n    test 428 line 73 _ExactTM.northing: 9741774.933721\n    test 429 line 73 _ExactTM.gamma: 86.505947\n    test 430 line 73 _ExactTM.scale: 1.323700\n    test 431 line 73 _ExactTM.lat: 48.914279\n    test 432 line 73 _ExactTM.lon: 87.359268\n    test 433 line 74 _ExactTM.easting: 6701004.587204\n    test 434 line 74 _ExactTM.northing: 2954368.258231\n    test 435 line 74 _ExactTM.gamma: 21.560153\n    test 436 line 74 _ExactTM.scale: 1.608554\n    test 437 line 74 _ExactTM.lat: 16.208377\n    test 438 line 74 _ExactTM.lon: 54.494282\n    test 439 line 75 _ExactTM.easting: 454986.218897\n    test 440 line 75 _ExactTM.northing: 4885087.887884\n    test 441 line 75 _ExactTM.gamma: 3.945648\n    test 442 line 75 _ExactTM.scale: 1.002147\n    test 443 line 75 _ExactTM.lat: 43.977936\n    test 444 line 75 _ExactTM.lon: 5.672541\n    test 445 line 76 _ExactTM.easting: 8903956.140311\n    test 446 line 76 _ExactTM.northing: 8470608.577482\n    test 447 line 76 _ExactTM.gamma: 74.723116\n    test 448 line 76 _ExactTM.scale: 2.131311\n    test 449 line 76 _ExactTM.lat: 26.850861\n    test 450 line 76 _ExactTM.lon: 82.834480\n    test 451 line 77 _ExactTM.easting: 1547627.594741\n    test 452 line 77 _ExactTM.northing: 6036584.538347\n    test 453 line 77 _ExactTM.gamma: 18.407629\n    test 454 line 77 _ExactTM.scale: 1.029132\n    test 455 line 77 _ExactTM.lat: 52.234165\n    test 456 line 77 _ExactTM.lon: 22.827655\n    test 457 line 78 _ExactTM.easting: 5221488.778597\n    test 458 line 78 _ExactTM.northing: 1762592.044392\n    test 459 line 78 _ExactTM.gamma: 10.927880\n    test 460 line 78 _ExactTM.scale: 1.356721\n    test 461 line 78 _ExactTM.lat: 11.674646\n    test 462 line 78 _ExactTM.lon: 43.500147\n    test 463 line 79 _ExactTM.easting: 4880570.297161\n    test 464 line 79 _ExactTM.northing: 3325433.988867\n    test 465 line 79 _ExactTM.gamma: 20.469862\n    test 466 line 79 _ExactTM.scale: 1.308476\n    test 467 line 79 _ExactTM.lat: 22.492753\n    test 468 line 79 _ExactTM.lon: 44.179153\n    test 469 line 80 _ExactTM.easting: 23930680.082694\n    test 470 line 80 _ExactTM.northing: 7491462.099038\n    test 471 line 80 _ExactTM.gamma: 75.937628\n    test 472 line 80 _ExactTM.scale: 15.556365\n    test 473 line 80 _ExactTM.lat: 0.910999\n    test 474 line 80 _ExactTM.lon: 88.548823\n    test 475 line 81 _ExactTM.easting: 71519.450458\n    test 476 line 81 _ExactTM.northing: 3654740.444852\n    test 477 line 81 _ExactTM.gamma: 0.417448\n    test 478 line 81 _ExactTM.scale: 0.999663\n    test 479 line 81 _ExactTM.lat: 33.028802\n    test 480 line 81 _ExactTM.lon: 0.765843\n    test 481 line 82 _ExactTM.easting: 4152797.795220\n    test 482 line 82 _ExactTM.northing: 7823098.502751\n    test 483 line 82 _ExactTM.gamma: 58.238901\n    test 484 line 82 _ExactTM.scale: 1.218052\n    test 485 line 82 _ExactTM.lat: 50.649195\n    test 486 line 82 _ExactTM.lon: 64.389076\n    test 487 line 83 _ExactTM.easting: 2926725.707639\n    test 488 line 83 _ExactTM.northing: 7904918.072844\n    test 489 line 83 _ExactTM.gamma: 51.592748\n    test 490 line 83 _ExactTM.scale: 1.106206\n    test 491 line 83 _ExactTM.lat: 58.820640\n    test 492 line 83 _ExactTM.lon: 55.841048\n    test 493 line 84 _ExactTM.easting: 1325509.113869\n    test 494 line 84 _ExactTM.northing: 9675214.948213\n    test 495 line 84 _ExactTM.gamma: 76.116213\n    test 496 line 84 _ExactTM.scale: 1.021136\n    test 497 line 84 _ExactTM.lat: 77.865762\n    test 498 line 84 _ExactTM.lon: 76.414618\n    test 499 line 85 _ExactTM.easting: 3045296.448926\n    test 500 line 85 _ExactTM.northing: 542153.443280\n    test 501 line 85 _ExactTM.gamma: 2.185095\n    test 502 line 85 _ExactTM.scale: 1.116664\n    test 503 line 85 _ExactTM.lat: 4.389639\n    test 504 line 85 _ExactTM.lon: 26.458976\n    test 505 line 86 _ExactTM.easting: 11843870.887518\n    test 506 line 86 _ExactTM.northing: 5912803.073343\n    test 507 line 86 _ExactTM.gamma: 52.814259\n    test 508 line 86 _ExactTM.scale: 3.267256\n    test 509 line 86 _ExactTM.lat: 13.924448\n    test 510 line 86 _ExactTM.lon: 79.017873\n    test 511 line 87 _ExactTM.easting: 8891099.704936\n    test 512 line 87 _ExactTM.northing: 162160.142227\n    test 513 line 87 _ExactTM.gamma: 1.312094\n    test 514 line 87 _ExactTM.scale: 2.157363\n    test 515 line 87 _ExactTM.lat: 0.679713\n    test 516 line 87 _ExactTM.lon: 62.036792\n    test 517 line 88 _ExactTM.easting: 4784814.214449\n    test 518 line 88 _ExactTM.northing: 2984497.432580\n    test 519 line 88 _ExactTM.gamma: 17.946545\n    test 520 line 88 _ExactTM.scale: 1.296116\n    test 521 line 88 _ExactTM.lat: 20.478281\n    test 522 line 88 _ExactTM.lon: 42.678234\n    test 523 line 89 _ExactTM.easting: 1772074.682154\n    test 524 line 89 _ExactTM.northing: 9491552.560143\n    test 525 line 89 _ExactTM.gamma: 73.634830\n    test 526 line 89 _ExactTM.scale: 1.038202\n    test 527 line 89 _ExactTM.lat: 73.695703\n    test 528 line 89 _ExactTM.lon: 74.259097\n    test 529 line 90 _ExactTM.easting: 1907649.782106\n    test 530 line 90 _ExactTM.northing: 6994232.429379\n    test 531 line 90 _ExactTM.gamma: 29.718929\n    test 532 line 90 _ExactTM.scale: 1.044503\n    test 533 line 90 _ExactTM.lat: 58.569370\n    test 534 line 90 _ExactTM.lon: 33.777549\n    test 535 line 91 _ExactTM.easting: 2084423.818962\n    test 536 line 91 _ExactTM.northing: 2211816.035619\n    test 537 line 91 _ExactTM.gamma: 6.556448\n    test 538 line 91 _ExactTM.scale: 1.053793\n    test 539 line 91 _ExactTM.lat: 18.933881\n    test 540 line 91 _ExactTM.lon: 19.492695\n    test 541 line 92 _ExactTM.easting: 1064373.671729\n    test 542 line 92 _ExactTM.northing: 7812482.547461\n    test 543 line 92 _ExactTM.gamma: 24.874124\n    test 544 line 92 _ExactTM.scale: 1.013490\n    test 545 line 92 _ExactTM.lat: 68.317934\n    test 546 line 92 _ExactTM.lon: 26.515687\n    test 547 line 93 _ExactTM.easting: 4770385.479297\n    test 548 line 93 _ExactTM.northing: 9734318.902980\n    test 549 line 93 _ExactTM.gamma: 86.273119\n    test 550 line 93 _ExactTM.scale: 1.290553\n    test 551 line 93 _ExactTM.lat: 50.641941\n    test 552 line 93 _ExactTM.lon: 87.111557\n    test 553 line 94 _ExactTM.easting: 6398096.677297\n    test 554 line 94 _ExactTM.northing: 4410894.752104\n    test 555 line 94 _ExactTM.gamma: 32.558023\n    test 556 line 94 _ExactTM.scale: 1.548004\n    test 557 line 94 _ExactTM.lat: 24.411298\n    test 558 line 94 _ExactTM.lon: 56.881823\n    test 559 line 95 _ExactTM.easting: 3138623.300415\n    test 560 line 95 _ExactTM.northing: 3082960.600798\n    test 561 line 95 _ExactTM.gamma: 13.557672\n    test 562 line 95 _ExactTM.scale: 1.123724\n    test 563 line 95 _ExactTM.lat: 24.571871\n    test 564 line 95 _ExactTM.lon: 30.073097\n    test 565 line 96 _ExactTM.easting: 2748325.794651\n    test 566 line 96 _ExactTM.northing: 4202811.912668\n    test 567 line 96 _ExactTM.gamma: 17.578706\n    test 568 line 96 _ExactTM.scale: 1.094102\n    test 569 line 96 _ExactTM.lat: 34.202576\n    test 570 line 96 _ExactTM.lon: 29.383166\n    test 571 line 97 _ExactTM.easting: 6677830.630367\n    test 572 line 97 _ExactTM.northing: 5350071.837395\n    test 573 line 97 _ExactTM.gamma: 41.306641\n    test 574 line 97 _ExactTM.scale: 1.599774\n    test 575 line 97 _ExactTM.lat: 27.756285\n    test 576 line 97 _ExactTM.lon: 61.881905\n    test 577 line 98 _ExactTM.easting: 5941536.667431\n    test 578 line 98 _ExactTM.northing: 3293112.175140\n    test 579 line 98 _ExactTM.gamma: 22.752845\n    test 580 line 98 _ExactTM.scale: 1.468473\n    test 581 line 98 _ExactTM.lat: 19.742270\n    test 582 line 98 _ExactTM.lon: 50.957821\n    test 583 line 99 _ExactTM.easting: 3152481.792567\n    test 584 line 99 _ExactTM.northing: 5903048.837978\n    test 585 line 99 _ExactTM.gamma: 31.494606\n    test 586 line 99 _ExactTM.scale: 1.124085\n    test 587 line 99 _ExactTM.lat: 45.453582\n    test 588 line 99 _ExactTM.lon: 40.659833\n    test 589 line 100 _ExactTM.easting: 10460475.897730\n    test 590 line 100 _ExactTM.northing: 2553463.624391\n    test 591 line 100 _ExactTM.gamma: 21.965869\n    test 592 line 100 _ExactTM.scale: 2.700296\n    test 593 line 100 _ExactTM.lat: 8.322144\n    test 594 line 100 _ExactTM.lon: 69.488157\n    test 595 line 101 _ExactTM.easting: 1964010.778021\n    test 596 line 101 _ExactTM.northing: 5634042.923056\n    test 597 line 101 _ExactTM.gamma: 20.117800\n    test 598 line 101 _ExactTM.scale: 1.047344\n    test 599 line 101 _ExactTM.lat: 47.749831\n    test 600 line 101 _ExactTM.lon: 26.322002\n    test 601 line 102 _ExactTM.easting: 2065306.424934\n    test 602 line 102 _ExactTM.northing: 2135008.468651\n    test 603 line 102 _ExactTM.gamma: 6.258981\n    test 604 line 102 _ExactTM.scale: 1.052800\n    test 605 line 102 _ExactTM.lat: 18.297493\n    test 606 line 102 _ExactTM.lon: 19.244669\n    test 607 line 103 _ExactTM.easting: 5127738.132976\n    test 608 line 103 _ExactTM.northing: 6793804.304411\n    test 609 line 103 _ExactTM.gamma: 50.557915\n    test 610 line 103 _ExactTM.scale: 1.339412\n    test 611 line 103 _ExactTM.lat: 40.834541\n    test 612 line 103 _ExactTM.lon: 61.650750\n    test 613 line 104 _ExactTM.easting: 8385525.148166\n    test 614 line 104 _ExactTM.northing: 6924932.344306\n    test 615 line 104 _ExactTM.gamma: 59.087561\n    test 616 line 104 _ExactTM.scale: 1.990364\n    test 617 line 104 _ExactTM.lat: 26.273247\n    test 618 line 104 _ExactTM.lon: 74.926694\n    test 619 line 105 _ExactTM.easting: 2297510.791909\n    test 620 line 105 _ExactTM.northing: 2805666.962834\n    test 621 line 105 _ExactTM.gamma: 9.301553\n    test 622 line 105 _ExactTM.scale: 1.065508\n    test 623 line 105 _ExactTM.lat: 23.698347\n    test 624 line 105 _ExactTM.lon: 22.155657\n    test 625 line 106 _ExactTM.easting: 13749544.917635\n    test 626 line 106 _ExactTM.northing: 8288728.384650\n    test 627 line 106 _ExactTM.gamma: 75.033970\n    test 628 line 106 _ExactTM.scale: 4.270588\n    test 629 line 106 _ExactTM.lat: 12.364113\n    test 630 line 106 _ExactTM.lon: 86.348578\n    test 631 line 107 _ExactTM.easting: 317518.455546\n    test 632 line 107 _ExactTM.northing: 1097517.583745\n    test 633 line 107 _ExactTM.gamma: 0.499004\n    test 634 line 107 _ExactTM.scale: 1.000848\n    test 635 line 107 _ExactTM.lat: 9.916091\n    test 636 line 107 _ExactTM.lon: 2.895277\n    test 637 line 108 _ExactTM.easting: 3856035.184888\n    test 638 line 108 _ExactTM.northing: 9141364.450290\n    test 639 line 108 _ExactTM.gamma: 75.972763\n    test 640 line 108 _ExactTM.scale: 1.186786\n    test 641 line 108 _ExactTM.lat: 56.553876\n    test 642 line 108 _ExactTM.lon: 78.215077\n    test 643 line 109 _ExactTM.easting: 1457484.942823\n    test 644 line 109 _ExactTM.northing: 9385297.101973\n    test 645 line 109 _ExactTM.gamma: 66.784662\n    test 646 line 109 _ExactTM.scale: 1.025660\n    test 647 line 109 _ExactTM.lat: 75.957631\n    test 648 line 109 _ExactTM.lon: 67.407383\n    test 649 line 110 _ExactTM.easting: 1304934.901841\n    test 650 line 110 _ExactTM.northing: 3604655.155715\n    test 651 line 110 _ExactTM.gamma: 7.343989\n    test 652 line 110 _ExactTM.scale: 1.020672\n    test 653 line 110 _ExactTM.lat: 31.826531\n    test 654 line 110 _ExactTM.lon: 13.731050\n    test 655 line 111 _ExactTM.easting: 1399093.491792\n    test 656 line 111 _ExactTM.northing: 8314607.120342\n    test 657 line 111 _ExactTM.gamma: 38.630161\n    test 658 line 111 _ExactTM.scale: 1.023625\n    test 659 line 111 _ExactTM.lat: 70.542985\n    test 660 line 111 _ExactTM.lon: 40.282055\n    test 661 line 112 _ExactTM.easting: 356983.618540\n    test 662 line 112 _ExactTM.northing: 4282309.048994\n    test 663 line 112 _ExactTM.gamma: 2.561485\n    test 664 line 112 _ExactTM.scale: 1.001170\n    test 665 line 112 _ExactTM.lat: 38.617487\n    test 666 line 112 _ExactTM.lon: 4.099838\n    test 667 line 113 _ExactTM.easting: 9952911.325091\n    test 668 line 113 _ExactTM.northing: 1510288.212229\n    test 669 line 113 _ExactTM.gamma: 12.752154\n    test 670 line 113 _ExactTM.scale: 2.511357\n    test 671 line 113 _ExactTM.lat: 5.389447\n    test 672 line 113 _ExactTM.lon: 66.729612\n    test 673 line 114 _ExactTM.easting: 6367592.504007\n    test 674 line 114 _ExactTM.northing: 1200437.077672\n    test 675 line 114 _ExactTM.gamma: 8.338041\n    test 676 line 114 _ExactTM.scale: 1.546210\n    test 677 line 114 _ExactTM.lat: 6.995168\n    test 678 line 114 _ExactTM.lon: 50.014763\n    test 679 line 115 _ExactTM.easting: 4391263.676460\n    test 680 line 115 _ExactTM.northing: 6325455.989408\n    test 681 line 115 _ExactTM.gamma: 42.653541\n    test 682 line 115 _ExactTM.scale: 1.245560\n    test 683 line 115 _ExactTM.lat: 42.321894\n    test 684 line 115 _ExactTM.lon: 53.784040\n    test 685 line 116 _ExactTM.easting: 6209880.527527\n    test 686 line 116 _ExactTM.northing: 2154754.449747\n    test 687 line 116 _ExactTM.gamma: 14.919512\n    test 688 line 116 _ExactTM.scale: 1.516560\n    test 689 line 116 _ExactTM.lat: 12.698515\n    test 690 line 116 _ExactTM.lon: 50.242047\n    test 691 line 117 _ExactTM.easting: 1507053.688772\n    test 692 line 117 _ExactTM.northing: 6261383.513280\n    test 693 line 117 _ExactTM.gamma: 19.280373\n    test 694 line 117 _ExactTM.scale: 1.027584\n    test 695 line 117 _ExactTM.lat: 54.207636\n    test 696 line 117 _ExactTM.lon: 23.325731\n    test 697 line 118 _ExactTM.easting: 8332725.003777\n    test 698 line 118 _ExactTM.northing: 3002712.329753\n    test 699 line 118 _ExactTM.gamma: 24.059212\n    test 700 line 118 _ExactTM.scale: 1.990450\n    test 701 line 118 _ExactTM.lat: 13.224787\n    test 702 line 118 _ExactTM.lon: 62.426698\n    test 703 line 119 _ExactTM.easting: 3958910.085235\n    test 704 line 119 _ExactTM.northing: 3462284.926102\n    test 705 line 119 _ExactTM.gamma: 18.546398\n    test 706 line 119 _ExactTM.scale: 1.199351\n    test 707 line 119 _ExactTM.lat: 25.650282\n    test 708 line 119 _ExactTM.lon: 37.710391\n    test 709 line 120 _ExactTM.easting: 10452892.282083\n    test 710 line 120 _ExactTM.northing: 8000059.605114\n    test 711 line 120 _ExactTM.gamma: 71.075240\n    test 712 line 120 _ExactTM.scale: 2.650111\n    test 713 line 120 _ExactTM.lat: 20.684773\n    test 714 line 120 _ExactTM.lon: 82.849734\n    test 715 line 121 _ExactTM.easting: 496148.253731\n    test 716 line 121 _ExactTM.northing: 6388503.365043\n    test 717 line 121 _ExactTM.gamma: 6.970955\n    test 718 line 121 _ExactTM.scale: 1.002620\n    test 719 line 121 _ExactTM.lat: 57.367533\n    test 720 line 121 _ExactTM.lon: 8.260866\n    test 721 line 122 _ExactTM.easting: 7375792.085850\n    test 722 line 122 _ExactTM.northing: 5544624.072155\n    test 723 line 122 _ExactTM.gamma: 44.510851\n    test 724 line 122 _ExactTM.scale: 1.745898\n    test 725 line 122 _ExactTM.lat: 25.958757\n    test 726 line 122 _ExactTM.lon: 65.760477\n    test 727 line 123 _ExactTM.easting: 2826258.041979\n    test 728 line 123 _ExactTM.northing: 5167759.816959\n    test 729 line 123 _ExactTM.gamma: 23.783897\n    test 730 line 123 _ExactTM.scale: 1.099415\n    test 731 line 123 _ExactTM.lat: 41.395848\n    test 732 line 123 _ExactTM.lon: 33.661790\n    test 733 line 124 _ExactTM.easting: 3958563.378851\n    test 734 line 124 _ExactTM.northing: 8499923.231243\n    test 735 line 124 _ExactTM.gamma: 66.570945\n    test 736 line 124 _ExactTM.scale: 1.197296\n    test 737 line 124 _ExactTM.lat: 54.266617\n    test 738 line 124 _ExactTM.lon: 70.602199\n    test 739 line 125 _ExactTM.easting: 4408189.533462\n    test 740 line 125 _ExactTM.northing: 8046312.003642\n    test 741 line 125 _ExactTM.gamma: 62.216959\n    test 742 line 125 _ExactTM.scale: 1.246750\n    test 743 line 125 _ExactTM.lat: 49.840393\n    test 744 line 125 _ExactTM.lon: 68.036728\n    test 745 line 126 _ExactTM.easting: 3629225.627512\n    test 746 line 126 _ExactTM.northing: 6371258.454645\n    test 747 line 126 _ExactTM.gamma: 38.881675\n    test 748 line 126 _ExactTM.scale: 1.165511\n    test 749 line 126 _ExactTM.lat: 46.306035\n    test 750 line 126 _ExactTM.lon: 48.085828\n    test 751 line 127 _ExactTM.easting: 602838.450710\n    test 752 line 127 _ExactTM.northing: 4851370.637205\n    test 753 line 127 _ExactTM.gamma: 5.160395\n    test 754 line 127 _ExactTM.scale: 1.004073\n    test 755 line 127 _ExactTM.lat: 43.570988\n    test 756 line 127 _ExactTM.lon: 7.464494\n    test 757 line 128 _ExactTM.easting: 764616.665051\n    test 758 line 128 _ExactTM.northing: 2164299.337945\n    test 759 line 128 _ExactTM.gamma: 2.429300\n    test 760 line 128 _ExactTM.scale: 1.006835\n    test 761 line 128 _ExactTM.lat: 19.427290\n    test 762 line 128 _ExactTM.lon: 7.268247\n    test 763 line 129 _ExactTM.easting: 5048953.021931\n    test 764 line 129 _ExactTM.northing: 1885974.057398\n    test 765 line 129 _ExactTM.gamma: 11.459804\n    test 766 line 129 _ExactTM.scale: 1.332207\n    test 767 line 129 _ExactTM.lat: 12.713794\n    test 768 line 129 _ExactTM.lon: 42.507018\n    test 769 line 130 _ExactTM.easting: 2293996.601155\n    test 770 line 130 _ExactTM.northing: 2392408.644221\n    test 771 line 130 _ExactTM.gamma: 7.791838\n    test 772 line 130 _ExactTM.scale: 1.065348\n    test 773 line 130 _ExactTM.lat: 20.238782\n    test 774 line 130 _ExactTM.lon: 21.566068\n    test 775 line 131 _ExactTM.easting: 1530603.839418\n    test 776 line 131 _ExactTM.northing: 7287841.459898\n    test 777 line 131 _ExactTM.gamma: 27.502921\n    test 778 line 131 _ExactTM.scale: 1.028416\n    test 779 line 131 _ExactTM.lat: 62.367847\n    test 780 line 131 _ExactTM.lon: 30.438849\n    test 781 line 132 _ExactTM.easting: 2660000.093152\n    test 782 line 132 _ExactTM.northing: 5161982.213248\n    test 783 line 132 _ExactTM.gamma: 22.629836\n    test 784 line 132 _ExactTM.scale: 1.087851\n    test 785 line 132 _ExactTM.lat: 41.891569\n    test 786 line 132 _ExactTM.lon: 31.959547\n    test 787 line 133 _ExactTM.easting: 5037478.329414\n    test 788 line 133 _ExactTM.northing: 8768172.379908\n    test 789 line 133 _ExactTM.gamma: 73.511182\n    test 790 line 133 _ExactTM.scale: 1.325919\n    test 791 line 133 _ExactTM.lat: 47.664248\n    test 792 line 133 _ExactTM.lon: 77.630062\n    test 793 line 134 _ExactTM.easting: 2289650.957799\n    test 794 line 134 _ExactTM.northing: 8784328.593607\n    test 795 line 134 _ExactTM.gamma: 60.786067\n    test 796 line 134 _ExactTM.scale: 1.064346\n    test 797 line 134 _ExactTM.lat: 67.259559\n    test 798 line 134 _ExactTM.lon: 62.715293\n    test 799 line 135 _ExactTM.easting: 647913.889744\n    test 800 line 135 _ExactTM.northing: 6742382.228217\n    test 801 line 135 _ExactTM.gamma: 10.252667\n    test 802 line 135 _ExactTM.scale: 1.004748\n    test 803 line 135 _ExactTM.lat: 60.295381\n    test 804 line 135 _ExactTM.lon: 11.763097\n    test 805 line 136 _ExactTM.easting: 1118372.698566\n    test 806 line 136 _ExactTM.northing: 9040627.942263\n    test 807 line 136 _ExactTM.gamma: 48.936803\n    test 808 line 136 _ExactTM.scale: 1.014920\n    test 809 line 136 _ExactTM.lat: 76.878914\n    test 810 line 136 _ExactTM.lon: 49.685773\n    test 811 line 137 _ExactTM.easting: 440696.510070\n    test 812 line 137 _ExactTM.northing: 5500355.826297\n    test 813 line 137 _ExactTM.gamma: 4.636104\n    test 814 line 137 _ExactTM.scale: 1.001986\n    test 815 line 137 _ExactTM.lat: 49.495349\n    test 816 line 137 _ExactTM.lon: 6.087551\n    test 817 line 138 _ExactTM.easting: 601728.149727\n    test 818 line 138 _ExactTM.northing: 9095352.048149\n    test 819 line 138 _ExactTM.gamma: 33.435771\n    test 820 line 138 _ExactTM.scale: 1.004027\n    test 821 line 138 _ExactTM.lat: 80.297265\n    test 822 line 138 _ExactTM.lon: 33.816372\n    test 823 line 139 _ExactTM.easting: 3481444.777827\n    test 824 line 139 _ExactTM.northing: 291665.708749\n    test 825 line 139 _ExactTM.gamma: 1.314726\n    test 826 line 139 _ExactTM.scale: 1.153534\n    test 827 line 139 _ExactTM.lat: 2.286437\n    test 828 line 139 _ExactTM.lon: 29.855149\n    test 829 line 140 _ExactTM.easting: 3515304.901524\n    test 830 line 140 _ExactTM.northing: 1443981.882918\n    test 831 line 140 _ExactTM.gamma: 6.641638\n    test 832 line 140 _ExactTM.scale: 1.156509\n    test 833 line 140 _ExactTM.lat: 11.264457\n    test 834 line 140 _ExactTM.lon: 30.743907\n    test 835 line 141 _ExactTM.easting: 160012.186959\n    test 836 line 141 _ExactTM.northing: 3922609.253231\n    test 837 line 141 _ExactTM.gamma: 1.022225\n    test 838 line 141 _ExactTM.scale: 0.999916\n    test 839 line 141 _ExactTM.lat: 35.434073\n    test 840 line 141 _ExactTM.lon: 1.762795\n    test 841 line 142 _ExactTM.easting: 4163744.245622\n    test 842 line 142 _ExactTM.northing: 936884.674804\n    test 843 line 142 _ExactTM.gamma: 4.892559\n    test 844 line 142 _ExactTM.scale: 1.222164\n    test 845 line 142 _ExactTM.lat: 6.923695\n    test 846 line 142 _ExactTM.lon: 35.289456\n    test 847 line 143 _ExactTM.easting: 6155200.017926\n    test 848 line 143 _ExactTM.northing: 6926306.628390\n    test 849 line 143 _ExactTM.gamma: 55.103258\n    test 850 line 143 _ExactTM.scale: 1.500556\n    test 851 line 143 _ExactTM.lat: 36.129672\n    test 852 line 143 _ExactTM.lon: 67.533176\n    test 853 line 144 _ExactTM.easting: 16263383.285440\n    test 854 line 144 _ExactTM.northing: 3591296.731341\n    test 855 line 144 _ExactTM.gamma: 36.040254\n    test 856 line 144 _ExactTM.scale: 6.589288\n    test 857 line 144 _ExactTM.lat: 4.406529\n    test 858 line 144 _ExactTM.lon: 81.965734\n    test 859 line 145 _ExactTM.easting: 14220995.515398\n    test 860 line 145 _ExactTM.northing: 5100587.457503\n    test 861 line 145 _ExactTM.gamma: 47.314258\n    test 862 line 145 _ExactTM.scale: 4.693202\n    test 863 line 145 _ExactTM.lat: 8.474589\n    test 864 line 145 _ExactTM.lon: 81.129945\n    test 865 line 146 _ExactTM.easting: 3173034.802372\n    test 866 line 146 _ExactTM.northing: 7263421.942957\n    test 867 line 146 _ExactTM.gamma: 45.215808\n    test 868 line 146 _ExactTM.scale: 1.125410\n    test 869 line 146 _ExactTM.lat: 53.907276\n    test 870 line 146 _ExactTM.lon: 51.252904\n    test 871 line 147 _ExactTM.easting: 10253274.092204\n    test 872 line 147 _ExactTM.northing: 8867574.299792\n    test 873 line 147 _ExactTM.gamma: 79.198250\n    test 874 line 147 _ExactTM.scale: 2.572372\n    test 875 line 147 _ExactTM.lat: 22.120545\n    test 876 line 147 _ExactTM.lon: 85.756782\n    test 877 line 148 _ExactTM.easting: 2415561.483230\n    test 878 line 148 _ExactTM.northing: 8813225.217097\n    test 879 line 148 _ExactTM.gamma: 62.548978\n    test 880 line 148 _ExactTM.scale: 1.071748\n    test 881 line 148 _ExactTM.lat: 66.444100\n    test 882 line 148 _ExactTM.lon: 64.532960\n    test 883 line 149 _ExactTM.easting: 9589179.293295\n    test 884 line 149 _ExactTM.northing: 1777680.784143\n    test 885 line 149 _ExactTM.gamma: 14.838483\n    test 886 line 149 _ExactTM.scale: 2.380716\n    test 887 line 149 _ExactTM.lat: 6.670965\n    test 888 line 149 _ExactTM.lon: 65.660408\n    test 889 line 150 _ExactTM.easting: 727939.438391\n    test 890 line 150 _ExactTM.northing: 3684363.236810\n    test 891 line 150 _ExactTM.gamma: 4.266227\n    test 892 line 150 _ExactTM.scale: 1.006140\n    test 893 line 150 _ExactTM.lat: 33.054057\n    test 894 line 150 _ExactTM.lon: 7.787458\n    test 895 line 151 _ExactTM.easting: 1250765.991085\n    test 896 line 151 _ExactTM.northing: 792869.242719\n    test 897 line 151 _ExactTM.gamma: 1.396497\n    test 898 line 151 _ExactTM.scale: 1.019026\n    test 899 line 151 _ExactTM.lat: 7.035525\n    test 900 line 151 _ExactTM.lon: 11.253707\n    test 901 line 152 _ExactTM.easting: 710421.705887\n    test 902 line 152 _ExactTM.northing: 5019406.075928\n    test 903 line 152 _ExactTM.gamma: 6.393949\n    test 904 line 152 _ExactTM.scale: 1.005812\n    test 905 line 152 _ExactTM.lat: 44.971340\n    test 906 line 152 _ExactTM.lon: 9.009304\n    test 907 line 153 _ExactTM.easting: 4600995.074643\n    test 908 line 153 _ExactTM.northing: 4505712.084593\n    test 909 line 153 _ExactTM.gamma: 27.997458\n    test 910 line 153 _ExactTM.scale: 1.271841\n    test 911 line 153 _ExactTM.lat: 30.821397\n    test 912 line 153 _ExactTM.lon: 45.970577\n    test 913 line 154 _ExactTM.easting: 557642.627782\n    test 914 line 154 _ExactTM.northing: 7006911.251644\n    test 915 line 154 _ExactTM.gamma: 9.769903\n    test 916 line 154 _ExactTM.scale: 1.003411\n    test 917 line 154 _ExactTM.lat: 62.763886\n    test 918 line 154 _ExactTM.lon: 10.960144\n    test 919 line 155 _ExactTM.easting: 4635062.294291\n    test 920 line 155 _ExactTM.northing: 2702556.153311\n    test 921 line 155 _ExactTM.gamma: 15.779547\n    test 922 line 155 _ExactTM.scale: 1.277178\n    test 923 line 155 _ExactTM.lat: 18.888611\n    test 924 line 155 _ExactTM.lon: 41.009871\n    test 925 line 156 _ExactTM.easting: 14554962.255919\n    test 926 line 156 _ExactTM.northing: 4716639.908572\n    test 927 line 156 _ExactTM.gamma: 44.192751\n    test 928 line 156 _ExactTM.scale: 4.960020\n    test 929 line 156 _ExactTM.lat: 7.524119\n    test 930 line 156 _ExactTM.lon: 81.050715\n    test 931 line 157 _ExactTM.easting: 882126.661736\n    test 932 line 157 _ExactTM.northing: 7947612.369506\n    test 933 line 157 _ExactTM.gamma: 22.429487\n    test 934 line 157 _ExactTM.scale: 1.009132\n    test 935 line 157 _ExactTM.lat: 70.063902\n    test 936 line 157 _ExactTM.lon: 23.705255\n    test 937 line 158 _ExactTM.easting: 20262021.645983\n    test 938 line 158 _ExactTM.northing: 8113827.820796\n    test 939 line 158 _ExactTM.gamma: 76.936057\n    test 940 line 158 _ExactTM.scale: 10.349092\n    test 941 line 158 _ExactTM.lat: 3.556526\n    test 942 line 158 _ExactTM.lon: 88.363529\n    test 943 line 159 _ExactTM.easting: 6500508.399850\n    test 944 line 159 _ExactTM.northing: 6956476.342368\n    test 945 line 159 _ExactTM.gamma: 56.237116\n    test 946 line 159 _ExactTM.scale: 1.563162\n    test 947 line 159 _ExactTM.lat: 34.551257\n    test 948 line 159 _ExactTM.lon: 69.111091\n    test 949 line 160 _ExactTM.easting: 3884036.641314\n    test 950 line 160 _ExactTM.northing: 6890167.411733\n    test 951 line 160 _ExactTM.gamma: 45.760130\n    test 952 line 160 _ExactTM.scale: 1.190167\n    test 953 line 160 _ExactTM.lat: 47.929051\n    test 954 line 160 _ExactTM.lon: 54.103418\n    test 955 line 161 _ExactTM.easting: 217855.546078\n    test 956 line 161 _ExactTM.northing: 6184108.122568\n    test 957 line 161 _ExactTM.gamma: 2.870993\n    test 958 line 161 _ExactTM.scale: 1.000182\n    test 959 line 161 _ExactTM.lat: 55.753536\n    test 960 line 161 _ExactTM.lon: 3.471798\n    test 961 line 162 _ExactTM.easting: 11384139.290402\n    test 962 line 162 _ExactTM.northing: 8893889.949556\n    test 963 line 162 _ExactTM.gamma: 79.774854\n    test 964 line 162 _ExactTM.scale: 3.024672\n    test 965 line 162 _ExactTM.lat: 18.530847\n    test 966 line 162 _ExactTM.lon: 86.555312\n    test 967 line 163 _ExactTM.easting: 3469855.989805\n    test 968 line 163 _ExactTM.northing: 7723193.799228\n    test 969 line 163 _ExactTM.gamma: 53.114700\n    test 970 line 163 _ExactTM.scale: 1.150540\n    test 971 line 163 _ExactTM.lat: 54.510125\n    test 972 line 163 _ExactTM.lon: 58.556056\n    test 973 line 164 _ExactTM.easting: 5926165.994939\n    test 974 line 164 _ExactTM.northing: 9385463.732747\n    test 975 line 164 _ExactTM.gamma: 82.506981\n    test 976 line 164 _ExactTM.scale: 1.459758\n    test 977 line 164 _ExactTM.lat: 42.864162\n    test 978 line 164 _ExactTM.lon: 84.866326\n    test 979 line 165 _ExactTM.easting: 5798639.662224\n    test 980 line 165 _ExactTM.northing: 5305387.640916\n    test 981 line 165 _ExactTM.gamma: 38.617257\n    test 982 line 165 _ExactTM.scale: 1.442263\n    test 983 line 165 _ExactTM.lat: 30.911943\n    test 984 line 165 _ExactTM.lon: 57.114102\n    test 985 line 166 _ExactTM.easting: 9464.934388\n    test 986 line 166 _ExactTM.northing: 6489121.624944\n    test 987 line 166 _ExactTM.gamma: 0.138696\n    test 988 line 166 _ExactTM.scale: 0.999601\n    test 989 line 166 _ExactTM.lat: 58.542493\n    test 990 line 166 _ExactTM.lon: 0.162593\n    test 991 line 167 _ExactTM.easting: 12575834.275614\n    test 992 line 167 _ExactTM.northing: 8356610.895486\n    test 993 line 167 _ExactTM.gamma: 75.235223\n    test 994 line 167 _ExactTM.scale: 3.599442\n    test 995 line 167 _ExactTM.lat: 15.022689\n    test 996 line 167 _ExactTM.lon: 85.792615\n    test 997 line 168 _ExactTM.easting: 2719653.543469\n    test 998 line 168 _ExactTM.northing: 9362389.163495\n    test 999 line 168 _ExactTM.gamma: 76.049670\n    test 1000 line 168 _ExactTM.scale: 1.091315\n    test 1001 line 168 _ExactTM.lat: 65.692275\n    test 1002 line 168 _ExactTM.lon: 77.241377\n    test 1003 line 169 _ExactTM.easting: 4845341.924698\n    test 1004 line 169 _ExactTM.northing: 8710522.326901\n    test 1005 line 169 _ExactTM.gamma: 72.320942\n    test 1006 line 169 _ExactTM.scale: 1.300382\n    test 1007 line 169 _ExactTM.lat: 48.806211\n    test 1008 line 169 _ExactTM.lon: 76.486365\n    test 1009 line 170 _ExactTM.easting: 3935261.522763\n    test 1010 line 170 _ExactTM.northing: 9454271.649062\n    test 1011 line 170 _ExactTM.gamma: 81.162334\n    test 1012 line 170 _ExactTM.scale: 1.194767\n    test 1013 line 170 _ExactTM.lat: 56.436025\n    test 1014 line 170 _ExactTM.lon: 82.611568\n    test 1015 line 171 _ExactTM.easting: 7074299.823000\n    test 1016 line 171 _ExactTM.northing: 1648736.065055\n    test 1017 line 171 _ExactTM.gamma: 12.145925\n    test 1018 line 171 _ExactTM.scale: 1.687551\n    test 1019 line 171 _ExactTM.lat: 8.766053\n    test 1020 line 171 _ExactTM.lon: 54.367539\n    test 1021 line 172 _ExactTM.easting: 3689072.579308\n    test 1022 line 172 _ExactTM.northing: 2230802.665211\n    test 1023 line 172 _ExactTM.gamma: 10.856248\n    test 1024 line 172 _ExactTM.scale: 1.172689\n    test 1025 line 172 _ExactTM.lat: 17.095495\n    test 1026 line 172 _ExactTM.lon: 33.059128\n    test 1027 line 173 _ExactTM.easting: 8102565.885587\n    test 1028 line 173 _ExactTM.northing: 5167396.617580\n    test 1029 line 173 _ExactTM.gamma: 42.324886\n    test 1030 line 173 _ExactTM.scale: 1.921927\n    test 1031 line 173 _ExactTM.lat: 22.142861\n    test 1032 line 173 _ExactTM.lon: 67.200684\n    test 1033 line 174 _ExactTM.easting: 8181271.353564\n    test 1034 line 174 _ExactTM.northing: 4425436.547185\n    test 1035 line 174 _ExactTM.gamma: 35.900845\n    test 1036 line 174 _ExactTM.scale: 1.945017\n    test 1037 line 174 _ExactTM.lat: 19.222623\n    test 1038 line 174 _ExactTM.lon: 65.180785\n    test 1039 line 175 _ExactTM.easting: 767067.394003\n    test 1040 line 175 _ExactTM.northing: 3701745.857296\n    test 1041 line 175 _ExactTM.gamma: 4.519201\n    test 1042 line 175 _ExactTM.scale: 1.006863\n    test 1043 line 175 _ExactTM.lat: 33.182474\n    test 1044 line 175 _ExactTM.lon: 8.216952\n    test 1045 line 176 _ExactTM.easting: 6688114.168572\n    test 1046 line 176 _ExactTM.northing: 2052857.299639\n    test 1047 line 176 _ExactTM.gamma: 14.766191\n    test 1048 line 176 _ExactTM.scale: 1.607200\n    test 1049 line 176 _ExactTM.lat: 11.417963\n    test 1050 line 176 _ExactTM.lon: 52.808691\n    test 1051 line 177 _ExactTM.easting: 5608408.773761\n    test 1052 line 177 _ExactTM.northing: 3859055.659110\n    test 1053 line 177 _ExactTM.gamma: 26.244151\n    test 1054 line 177 _ExactTM.scale: 1.413463\n    test 1055 line 177 _ExactTM.lat: 23.836688\n    test 1056 line 177 _ExactTM.lon: 50.500180\n    test 1057 line 178 _ExactTM.easting: 3836942.765275\n    test 1058 line 178 _ExactTM.northing: 6415467.634326\n    test 1059 line 178 _ExactTM.gamma: 40.575885\n    test 1060 line 178 _ExactTM.scale: 1.185615\n    test 1061 line 178 _ExactTM.lat: 45.550020\n    test 1062 line 178 _ExactTM.lon: 50.148036\n    test 1063 line 179 _ExactTM.easting: 1298730.366025\n    test 1064 line 179 _ExactTM.northing: 6021453.000792\n    test 1065 line 179 _ExactTM.gamma: 15.613320\n    test 1066 line 179 _ExactTM.scale: 1.020367\n    test 1067 line 179 _ExactTM.lat: 52.746079\n    test 1068 line 179 _ExactTM.lon: 19.343926\n    test 1069 line 180 _ExactTM.easting: 416934.289208\n    test 1070 line 180 _ExactTM.northing: 7295683.451705\n    test 1071 line 180 _ExactTM.gamma: 8.238232\n    test 1072 line 180 _ExactTM.scale: 1.001729\n    test 1073 line 180 _ExactTM.lat: 65.513348\n    test 1074 line 180 _ExactTM.lon: 9.039529\n    test 1075 line 181 _ExactTM.easting: 4336076.850889\n    test 1076 line 181 _ExactTM.northing: 7617975.722779\n    test 1077 line 181 _ExactTM.gamma: 56.537088\n    test 1078 line 181 _ExactTM.scale: 1.238582\n    test 1079 line 181 _ExactTM.lat: 48.709795\n    test 1080 line 181 _ExactTM.lon: 63.554005\n    test 1081 line 182 _ExactTM.easting: 168047.336980\n    test 1082 line 182 _ExactTM.northing: 2185000.046530\n    test 1083 line 182 _ExactTM.gamma: 0.542187\n    test 1084 line 182 _ExactTM.scale: 0.999949\n    test 1085 line 182 _ExactTM.lat: 19.753509\n    test 1086 line 182 _ExactTM.lon: 1.603846\n    test 1087 line 183 _ExactTM.easting: 8276281.328790\n    test 1088 line 183 _ExactTM.northing: 263444.350545\n    test 1089 line 183 _ExactTM.gamma: 2.071435\n    test 1090 line 183 _ExactTM.scale: 1.980314\n    test 1091 line 183 _ExactTM.lat: 1.202816\n    test 1092 line 183 _ExactTM.lon: 59.377276\n    test 1093 line 184 _ExactTM.easting: 4772573.810710\n    test 1094 line 184 _ExactTM.northing: 6765710.336002\n    test 1095 line 184 _ExactTM.gamma: 48.857561\n    test 1096 line 184 _ExactTM.scale: 1.291911\n    test 1097 line 184 _ExactTM.lat: 42.564975\n    test 1098 line 184 _ExactTM.lon: 59.356947\n    test 1099 line 185 _ExactTM.easting: 5427755.074639\n    test 1100 line 185 _ExactTM.northing: 1556055.820924\n    test 1101 line 185 _ExactTM.gamma: 9.862178\n    test 1102 line 185 _ExactTM.scale: 1.387394\n    test 1103 line 185 _ExactTM.lat: 10.090572\n    test 1104 line 185 _ExactTM.lon: 44.604132\n    test 1105 line 186 _ExactTM.easting: 11588458.616041\n    test 1106 line 186 _ExactTM.northing: 5707993.922613\n    test 1107 line 186 _ExactTM.gamma: 50.784827\n    test 1108 line 186 _ExactTM.scale: 3.149567\n    test 1109 line 186 _ExactTM.lat: 14.133028\n    test 1110 line 186 _ExactTM.lon: 78.097533\n    test 1111 line 187 _ExactTM.easting: 7152433.802688\n    test 1112 line 187 _ExactTM.northing: 761390.695844\n    test 1113 line 187 _ExactTM.gamma: 5.607350\n    test 1114 line 187 _ExactTM.scale: 1.705261\n    test 1115 line 187 _ExactTM.lat: 4.031123\n    test 1116 line 187 _ExactTM.lon: 54.048782\n    test 1117 line 188 _ExactTM.easting: 3105651.390901\n    test 1118 line 188 _ExactTM.northing: 9426026.169064\n    test 1119 line 188 _ExactTM.gamma: 78.750206\n    test 1120 line 188 _ExactTM.scale: 1.119737\n    test 1121 line 188 _ExactTM.lat: 62.746603\n    test 1122 line 188 _ExactTM.lon: 79.968641\n    test 1123 line 189 _ExactTM.easting: 2959009.639022\n    test 1124 line 189 _ExactTM.northing: 8339242.269282\n    test 1125 line 189 _ExactTM.gamma: 58.460865\n    test 1126 line 189 _ExactTM.scale: 1.108554\n    test 1127 line 189 _ExactTM.lat: 60.626429\n    test 1128 line 189 _ExactTM.lon: 61.851551\n    test 1129 line 190 _ExactTM.easting: 8640472.267145\n    test 1130 line 190 _ExactTM.northing: 6230320.417931\n    test 1131 line 190 _ExactTM.gamma: 52.816810\n    test 1132 line 190 _ExactTM.scale: 2.062973\n    test 1133 line 190 _ExactTM.lat: 23.600626\n    test 1134 line 190 _ExactTM.lon: 72.811634\n    test 1135 line 191 _ExactTM.easting: 811352.108932\n    test 1136 line 191 _ExactTM.northing: 9816129.813481\n    test 1137 line 191 _ExactTM.gamma: 77.299184\n    test 1138 line 191 _ExactTM.scale: 1.007651\n    test 1139 line 191 _ExactTM.lat: 82.572236\n    test 1140 line 191 _ExactTM.lon: 77.402323\n    test 1141 line 192 _ExactTM.easting: 6521874.973458\n    test 1142 line 192 _ExactTM.northing: 1053612.479744\n    test 1143 line 192 _ExactTM.gamma: 7.407328\n    test 1144 line 192 _ExactTM.scale: 1.575529\n    test 1145 line 192 _ExactTM.lat: 6.030051\n    test 1146 line 192 _ExactTM.lon: 50.783505\n    test 1147 line 193 _ExactTM.easting: 3477983.997875\n    test 1148 line 193 _ExactTM.northing: 5651613.325947\n    test 1149 line 193 _ExactTM.gamma: 31.530673\n    test 1150 line 193 _ExactTM.scale: 1.151875\n    test 1151 line 193 _ExactTM.lat: 42.411523\n    test 1152 line 193 _ExactTM.lon: 42.258009\n    test 1153 line 194 _ExactTM.easting: 629892.822243\n    test 1154 line 194 _ExactTM.northing: 3283914.910451\n    test 1155 line 194 _ExactTM.gamma: 3.210482\n    test 1156 line 194 _ExactTM.scale: 1.004499\n    test 1157 line 194 _ExactTM.lat: 29.526120\n    test 1158 line 194 _ExactTM.lon: 6.493069\n    test 1159 line 195 _ExactTM.easting: 3381879.687227\n    test 1160 line 195 _ExactTM.northing: 5103629.325665\n    test 1161 line 195 _ExactTM.gamma: 26.748108\n    test 1162 line 195 _ExactTM.scale: 1.143559\n    test 1163 line 195 _ExactTM.lat: 39.021853\n    test 1164 line 195 _ExactTM.lon: 38.641779\n    test 1165 line 196 _ExactTM.easting: 2815986.534177\n    test 1166 line 196 _ExactTM.northing: 9387029.120718\n    test 1167 line 196 _ExactTM.gamma: 76.967262\n    test 1168 line 196 _ExactTM.scale: 1.098032\n    test 1169 line 196 _ExactTM.lat: 64.971850\n    test 1170 line 196 _ExactTM.lon: 78.151893\n    test 1171 line 197 _ExactTM.easting: 3398195.889603\n    test 1172 line 197 _ExactTM.northing: 9138936.031490\n    test 1173 line 197 _ExactTM.gamma: 74.477499\n    test 1174 line 197 _ExactTM.scale: 1.144009\n    test 1175 line 197 _ExactTM.lat: 59.961819\n    test 1176 line 197 _ExactTM.lon: 76.473422\n    test 1177 line 198 _ExactTM.easting: 2421734.754637\n    test 1178 line 198 _ExactTM.northing: 5002372.094991\n    test 1179 line 198 _ExactTM.gamma: 20.017082\n    test 1180 line 198 _ExactTM.scale: 1.072592\n    test 1181 line 198 _ExactTM.lat: 41.374040\n    test 1182 line 198 _ExactTM.lon: 28.848343\n    test 1183 line 199 _ExactTM.easting: 2360869.895525\n    test 1184 line 199 _ExactTM.northing: 9553298.449536\n    test 1185 line 199 _ExactTM.gamma: 78.848205\n    test 1186 line 199 _ExactTM.scale: 1.068453\n    test 1187 line 199 _ExactTM.lat: 68.946087\n    test 1188 line 199 _ExactTM.lon: 79.574523\n    test 1189 line 200 _ExactTM.easting: 1196539.972194\n    test 1190 line 200 _ExactTM.northing: 9861920.836230\n    test 1191 line 200 _ExactTM.gamma: 83.437668\n    test 1192 line 200 _ExactTM.scale: 1.017137\n    test 1193 line 200 _ExactTM.lat: 79.275096\n    test 1194 line 200 _ExactTM.lon: 83.551272\n    test 1195 line 201 _ExactTM.easting: 1327758.704795\n    test 1196 line 201 _ExactTM.northing: 2375509.241683\n    test 1197 line 201 _ExactTM.gamma: 4.617572\n    test 1198 line 201 _ExactTM.scale: 1.021465\n    test 1199 line 201 _ExactTM.lat: 21.000252\n    test 1200 line 201 _ExactTM.lon: 12.697444\n    test 1201 line 202 _ExactTM.easting: 2070860.327644\n    test 1202 line 202 _ExactTM.northing: 8604500.719581\n    test 1203 line 202 _ExactTM.gamma: 54.722761\n    test 1204 line 202 _ExactTM.scale: 1.052469\n    test 1205 line 202 _ExactTM.lat: 68.015227\n    test 1206 line 202 _ExactTM.lon: 56.732419\n    test 1207 line 203 _ExactTM.easting: 6564776.654864\n    test 1208 line 203 _ExactTM.northing: 8171207.177379\n    test 1209 line 203 _ExactTM.gamma: 69.237523\n    test 1210 line 203 _ExactTM.scale: 1.573894\n    test 1211 line 203 _ExactTM.lat: 37.423675\n    test 1212 line 203 _ExactTM.lon: 76.947359\n    test 1213 line 204 _ExactTM.easting: 592653.553821\n    test 1214 line 204 _ExactTM.northing: 6125529.810052\n    test 1215 line 204 _ExactTM.gamma: 7.600785\n    test 1216 line 204 _ExactTM.scale: 1.003912\n    test 1217 line 204 _ExactTM.lat: 54.922707\n    test 1218 line 204 _ExactTM.lon: 9.260818\n    test 1219 line 205 _ExactTM.easting: 693459.671821\n    test 1220 line 205 _ExactTM.northing: 6943779.991032\n    test 1221 line 205 _ExactTM.gamma: 11.787587\n    test 1222 line 205 _ExactTM.scale: 1.005496\n    test 1223 line 205 _ExactTM.lat: 61.982810\n    test 1224 line 205 _ExactTM.lon: 13.299659\n    test 1225 line 206 _ExactTM.easting: 1838956.187625\n    test 1226 line 206 _ExactTM.northing: 3511959.612381\n    test 1227 line 206 _ExactTM.gamma: 9.844313\n    test 1228 line 206 _ExactTM.scale: 1.041603\n    test 1229 line 206 _ExactTM.lat: 30.324214\n    test 1230 line 206 _ExactTM.lon: 18.959769\n    test 1231 line 207 _ExactTM.easting: 4460690.884597\n    test 1232 line 207 _ExactTM.northing: 5541873.235403\n    test 1233 line 207 _ExactTM.gamma: 35.768613\n    test 1234 line 207 _ExactTM.scale: 1.254179\n    test 1235 line 207 _ExactTM.lat: 37.629667\n    test 1236 line 207 _ExactTM.lon: 49.649131\n    test 1237 line 208 _ExactTM.easting: 2311168.998941\n    test 1238 line 208 _ExactTM.northing: 9480561.869119\n    test 1239 line 208 _ExactTM.gamma: 76.828257\n    test 1240 line 208 _ExactTM.scale: 1.065556\n    test 1241 line 208 _ExactTM.lat: 69.225574\n    test 1242 line 208 _ExactTM.lon: 77.656135\n    test 1243 line 209 _ExactTM.easting: 4111775.114451\n    test 1244 line 209 _ExactTM.northing: 6509014.348792\n    test 1245 line 209 _ExactTM.gamma: 43.052130\n    test 1246 line 209 _ExactTM.scale: 1.214125\n    test 1247 line 209 _ExactTM.lat: 44.698478\n    test 1248 line 209 _ExactTM.lon: 52.979304\n    test 1249 line 210 _ExactTM.easting: 75358.261962\n    test 1250 line 210 _ExactTM.northing: 7711258.662251\n    test 1251 line 210 _ExactTM.gamma: 1.806297\n    test 1252 line 210 _ExactTM.scale: 0.999669\n    test 1253 line 210 _ExactTM.lat: 69.499594\n    test 1254 line 210 _ExactTM.lon: 1.928336\n    test 1255 line 211 _ExactTM.easting: 8781885.229116\n    test 1256 line 211 _ExactTM.northing: 9184776.452211\n    test 1257 line 211 _ExactTM.gamma: 81.795539\n    test 1258 line 211 _ExactTM.scale: 2.094908\n    test 1259 line 211 _ExactTM.lat: 27.981364\n    test 1260 line 211 _ExactTM.lon: 86.061113\n    test 1261 line 212 _ExactTM.easting: 954378.415174\n    test 1262 line 212 _ExactTM.northing: 7449110.669807\n    test 1263 line 212 _ExactTM.gamma: 19.380657\n    test 1264 line 212 _ExactTM.scale: 1.010768\n    test 1265 line 212 _ExactTM.lat: 65.699839\n    test 1266 line 212 _ExactTM.lon: 21.104725\n    test 1267 line 213 _ExactTM.easting: 720971.793706\n    test 1268 line 213 _ExactTM.northing: 5265195.121555\n    test 1269 line 213 _ExactTM.gamma: 7.002995\n    test 1270 line 213 _ExactTM.scale: 1.005995\n    test 1271 line 213 _ExactTM.lat: 47.143648\n    test 1272 line 213 _ExactTM.lon: 9.512189\n    test 1273 line 214 _ExactTM.easting: 561561.493937\n    test 1274 line 214 _ExactTM.northing: 989910.236221\n    test 1275 line 214 _ExactTM.gamma: 0.793118\n    test 1276 line 214 _ExactTM.scale: 1.003505\n    test 1277 line 214 _ExactTM.lat: 8.920167\n    test 1278 line 214 _ExactTM.lon: 5.101513\n    test 1279 line 215 _ExactTM.easting: 3446829.634468\n    test 1280 line 215 _ExactTM.northing: 9232868.155664\n    test 1281 line 215 _ExactTM.gamma: 76.279075\n    test 1282 line 215 _ExactTM.scale: 1.148263\n    test 1283 line 215 _ExactTM.lat: 59.778971\n    test 1284 line 215 _ExactTM.lon: 78.080322\n    test 1285 line 216 _ExactTM.easting: 4048307.545909\n    test 1286 line 216 _ExactTM.northing: 9800416.422998\n    test 1287 line 216 _ExactTM.gamma: 86.843918\n    test 1288 line 216 _ExactTM.scale: 1.206495\n    test 1289 line 216 _ExactTM.lat: 55.865310\n    test 1290 line 216 _ExactTM.lon: 87.384288\n    test 1291 line 217 _ExactTM.easting: 8973188.480293\n    test 1292 line 217 _ExactTM.northing: 7042230.087021\n    test 1293 line 217 _ExactTM.gamma: 60.872456\n    test 1294 line 217 _ExactTM.scale: 2.156098\n    test 1295 line 217 _ExactTM.lat: 24.310973\n    test 1296 line 217 _ExactTM.lon: 76.823777\n    test 1297 line 218 _ExactTM.easting: 126314.191618\n    test 1298 line 218 _ExactTM.northing: 396006.687921\n    test 1299 line 218 _ExactTM.gamma: 0.071065\n    test 1300 line 218 _ExactTM.scale: 0.999798\n    test 1301 line 218 _ExactTM.lat: 3.582041\n    test 1302 line 218 _ExactTM.lon: 1.137286\n    test 1303 line 219 _ExactTM.easting: 5247652.345647\n    test 1304 line 219 _ExactTM.northing: 8670513.359752\n    test 1305 line 219 _ExactTM.gamma: 72.700498\n    test 1306 line 219 _ExactTM.scale: 1.355272\n    test 1307 line 219 _ExactTM.lat: 46.124233\n    test 1308 line 219 _ExactTM.lon: 77.313118\n    test 1309 line 220 _ExactTM.easting: 8103656.838119\n    test 1310 line 220 _ExactTM.northing: 9469794.014737\n    test 1311 line 220 _ExactTM.gamma: 84.490673\n    test 1312 line 220 _ExactTM.scale: 1.912164\n    test 1313 line 220 _ExactTM.lat: 31.171391\n    test 1314 line 220 _ExactTM.lon: 87.104504\n    test 1315 line 221 _ExactTM.easting: 6300112.758236\n    test 1316 line 221 _ExactTM.northing: 93835.917364\n    test 1317 line 221 _ExactTM.gamma: 0.644805\n    test 1318 line 221 _ExactTM.scale: 1.534073\n    test 1319 line 221 _ExactTM.lat: 0.553171\n    test 1320 line 221 _ExactTM.lon: 49.117104\n    test 1321 line 222 _ExactTM.easting: 3894813.593782\n    test 1322 line 222 _ExactTM.northing: 4833832.341027\n    test 1323 line 222 _ExactTM.gamma: 27.453298\n    test 1324 line 222 _ExactTM.scale: 1.192135\n    test 1325 line 222 _ExactTM.lat: 35.361587\n    test 1326 line 222 _ExactTM.lon: 41.860599\n    test 1327 line 223 _ExactTM.easting: 402511.346712\n    test 1328 line 223 _ExactTM.northing: 3520621.561911\n    test 1329 line 223 _ExactTM.gamma: 2.238474\n    test 1330 line 223 _ExactTM.scale: 1.001599\n    test 1331 line 223 _ExactTM.lat: 31.750314\n    test 1332 line 223 _ExactTM.lon: 4.248167\n    test 1333 line 224 _ExactTM.easting: 5357378.503148\n    test 1334 line 224 _ExactTM.northing: 2772997.602234\n    test 1335 line 224 _ExactTM.gamma: 17.823560\n    test 1336 line 224 _ExactTM.scale: 1.376031\n    test 1337 line 224 _ExactTM.lat: 17.924336\n    test 1338 line 224 _ExactTM.lon: 46.096402\n    test 1339 line 225 _ExactTM.easting: 2807553.985866\n    test 1340 line 225 _ExactTM.northing: 8177847.980275\n    test 1341 line 225 _ExactTM.gamma: 54.680045\n    test 1342 line 225 _ExactTM.scale: 1.097531\n    test 1343 line 225 _ExactTM.lat: 60.931488\n    test 1344 line 225 _ExactTM.lon: 58.221214\n    test 1345 line 226 _ExactTM.easting: 18289045.166501\n    test 1346 line 226 _ExactTM.northing: 7792942.339604\n    test 1347 line 226 _ExactTM.gamma: 73.216494\n    test 1348 line 226 _ExactTM.scale: 8.098009\n    test 1349 line 226 _ExactTM.lat: 5.358151\n    test 1350 line 226 _ExactTM.lon: 87.556213\n    test 1351 line 227 _ExactTM.easting: 8376822.459538\n    test 1352 line 227 _ExactTM.northing: 8128174.623878\n    test 1353 line 227 _ExactTM.gamma: 70.920117\n    test 1354 line 227 _ExactTM.scale: 1.984873\n    test 1355 line 227 _ExactTM.lat: 28.616673\n    test 1356 line 227 _ExactTM.lon: 80.452426\n    test 1357 line 228 _ExactTM.easting: 11898068.353272\n    test 1358 line 228 _ExactTM.northing: 4772439.493697\n    test 1359 line 228 _ExactTM.gamma: 42.613968\n    test 1360 line 228 _ExactTM.scale: 3.314412\n    test 1361 line 228 _ExactTM.lat: 11.709763\n    test 1362 line 228 _ExactTM.lon: 76.760295\n    test 1363 line 229 _ExactTM.easting: 10550946.939050\n    test 1364 line 229 _ExactTM.northing: 3851968.815295\n    test 1365 line 229 _ExactTM.gamma: 33.383025\n    test 1366 line 229 _ExactTM.scale: 2.724754\n    test 1367 line 229 _ExactTM.lat: 12.009498\n    test 1368 line 229 _ExactTM.lon: 71.782351\n    test 1369 line 230 _ExactTM.easting: 6828299.123607\n    test 1370 line 230 _ExactTM.northing: 9394803.227463\n    test 1371 line 230 _ExactTM.gamma: 83.181386\n    test 1372 line 230 _ExactTM.scale: 1.624359\n    test 1373 line 230 _ExactTM.lat: 37.629784\n    test 1374 line 230 _ExactTM.lon: 85.795687\n    test 1375 line 231 _ExactTM.easting: 11162550.334022\n    test 1376 line 231 _ExactTM.northing: 2640267.279593\n    test 1377 line 231 _ExactTM.gamma: 23.145404\n    test 1378 line 231 _ExactTM.scale: 2.998408\n    test 1379 line 231 _ExactTM.lat: 7.721128\n    test 1380 line 231 _ExactTM.lon: 71.662731\n    test 1381 line 232 _ExactTM.easting: 4411584.447941\n    test 1382 line 232 _ExactTM.northing: 4956173.694407\n    test 1383 line 232 _ExactTM.gamma: 30.713919\n    test 1384 line 232 _ExactTM.scale: 1.248736\n    test 1385 line 232 _ExactTM.lat: 34.295026\n    test 1386 line 232 _ExactTM.lon: 46.442191\n    test 1387 line 233 _ExactTM.easting: 672108.897905\n    test 1388 line 233 _ExactTM.northing: 4751554.657054\n    test 1389 line 233 _ExactTM.gamma: 5.569178\n    test 1390 line 233 _ExactTM.scale: 1.005162\n    test 1391 line 233 _ExactTM.lat: 42.622496\n    test 1392 line 233 _ExactTM.lon: 8.193605\n    test 1393 line 234 _ExactTM.easting: 5022964.290579\n    test 1394 line 234 _ExactTM.northing: 6860418.199502\n    test 1395 line 234 _ExactTM.gamma: 50.862230\n    test 1396 line 234 _ExactTM.scale: 1.324925\n    test 1397 line 234 _ExactTM.lat: 41.667780\n    test 1398 line 234 _ExactTM.lon: 61.518288\n    test 1399 line 235 _ExactTM.easting: 1669655.595207\n    test 1400 line 235 _ExactTM.northing: 4152086.537021\n    test 1401 line 235 _ExactTM.gamma: 11.110237\n    test 1402 line 235 _ExactTM.scale: 1.034138\n    test 1403 line 235 _ExactTM.lat: 36.060369\n    test 1404 line 235 _ExactTM.lon: 18.444112\n    test 1405 line 236 _ExactTM.easting: 6055876.729655\n    test 1406 line 236 _ExactTM.northing: 4896837.552619\n    test 1407 line 236 _ExactTM.gamma: 35.799747\n    test 1408 line 236 _ExactTM.scale: 1.485967\n    test 1409 line 236 _ExactTM.lat: 27.948091\n    test 1410 line 236 _ExactTM.lon: 56.816429\n    test 1411 line 237 _ExactTM.easting: 1209214.164379\n    test 1412 line 237 _ExactTM.northing: 7266409.859178\n    test 1413 line 237 _ExactTM.gamma: 22.319633\n    test 1414 line 237 _ExactTM.scale: 1.017554\n    test 1415 line 237 _ExactTM.lat: 63.386030\n    test 1416 line 237 _ExactTM.lon: 24.662716\n    test 1417 line 238 _ExactTM.easting: 5154564.559584\n    test 1418 line 238 _ExactTM.northing: 698118.349975\n    test 1419 line 238 _ExactTM.gamma: 4.242360\n    test 1420 line 238 _ExactTM.scale: 1.347481\n    test 1421 line 238 _ExactTM.lat: 4.680922\n    test 1422 line 238 _ExactTM.lon: 42.114426\n    test 1423 line 239 _ExactTM.easting: 2695149.806543\n    test 1424 line 239 _ExactTM.northing: 8208197.765605\n    test 1425 line 239 _ExactTM.gamma: 54.178615\n    test 1426 line 239 _ExactTM.scale: 1.089730\n    test 1427 line 239 _ExactTM.lat: 61.826625\n    test 1428 line 239 _ExactTM.lon: 57.525096\n    test 1429 line 240 _ExactTM.easting: 3394792.327820\n    test 1430 line 240 _ExactTM.northing: 3217583.415552\n    test 1431 line 240 _ExactTM.gamma: 15.165863\n    test 1432 line 240 _ExactTM.scale: 1.145285\n    test 1433 line 240 _ExactTM.lat: 25.104353\n    test 1434 line 240 _ExactTM.lon: 32.528660\n    test 1435 line 241 _ExactTM.easting: 1429160.966985\n    test 1436 line 241 _ExactTM.northing: 8212685.362032\n    test 1437 line 241 _ExactTM.gamma: 37.484904\n    test 1438 line 241 _ExactTM.scale: 1.024676\n    test 1439 line 241 _ExactTM.lat: 69.678351\n    test 1440 line 241 _ExactTM.lon: 39.275513\n    test 1441 line 242 _ExactTM.easting: 8343387.998065\n    test 1442 line 242 _ExactTM.northing: 8885196.954578\n    test 1443 line 242 _ExactTM.gamma: 78.561937\n    test 1444 line 242 _ExactTM.scale: 1.974733\n    test 1445 line 242 _ExactTM.lat: 29.671384\n    test 1446 line 242 _ExactTM.lon: 84.196595\n    test 1447 line 243 _ExactTM.easting: 1990722.928606\n    test 1448 line 243 _ExactTM.northing: 7569202.065162\n    test 1449 line 243 _ExactTM.gamma: 37.075276\n    test 1450 line 243 _ExactTM.scale: 1.048486\n    test 1451 line 243 _ExactTM.lat: 62.300208\n    test 1452 line 243 _ExactTM.lon: 40.474051\n    test 1453 line 244 _ExactTM.easting: 1554980.099559\n    test 1454 line 244 _ExactTM.northing: 1449423.919586\n    test 1455 line 244 _ExactTM.gamma: 3.188328\n    test 1456 line 244 _ExactTM.scale: 1.029664\n    test 1457 line 244 _ExactTM.lat: 12.721776\n    test 1458 line 244 _ExactTM.lon: 14.190003\n    test 1459 line 245 _ExactTM.easting: 785205.450196\n    test 1460 line 245 _ExactTM.northing: 5575158.423096\n    test 1461 line 245 _ExactTM.gamma: 8.388417\n    test 1462 line 245 _ExactTM.scale: 1.007181\n    test 1463 line 245 _ExactTM.lat: 49.811296\n    test 1464 line 245 _ExactTM.lon: 10.925011\n    test 1465 line 246 _ExactTM.easting: 3310405.988313\n    test 1466 line 246 _ExactTM.northing: 5955022.233881\n    test 1467 line 246 _ExactTM.gamma: 33.007587\n    test 1468 line 246 _ExactTM.scale: 1.137141\n    test 1469 line 246 _ExactTM.lat: 45.132680\n    test 1470 line 246 _ExactTM.lon: 42.478624\n    test 1471 line 247 _ExactTM.easting: 4733460.960666\n    test 1472 line 247 _ExactTM.northing: 129034.889816\n    test 1473 line 247 _ExactTM.gamma: 0.737551\n    test 1474 line 247 _ExactTM.scale: 1.290439\n    test 1475 line 247 _ExactTM.lat: 0.904279\n    test 1476 line 247 _ExactTM.lon: 39.078412\n    test 1477 line 248 _ExactTM.easting: 3322708.343909\n    test 1478 line 248 _ExactTM.northing: 3864738.078742\n    test 1479 line 248 _ExactTM.gamma: 18.472566\n    test 1480 line 248 _ExactTM.scale: 1.138838\n    test 1481 line 248 _ExactTM.lat: 30.163605\n    test 1482 line 248 _ExactTM.lon: 33.577996\n    test 1483 line 249 _ExactTM.easting: 8672864.417204\n    test 1484 line 249 _ExactTM.northing: 8333465.983444\n    test 1485 line 249 _ExactTM.gamma: 73.206273\n    test 1486 line 249 _ExactTM.scale: 2.065441\n    test 1487 line 249 _ExactTM.lat: 27.643244\n    test 1488 line 249 _ExactTM.lon: 81.892859\n    test 1489 line 250 _ExactTM.easting: 11126818.231196\n    test 1490 line 250 _ExactTM.northing: 7618712.174991\n    test 1491 line 250 _ExactTM.gamma: 67.887173\n    test 1492 line 250 _ExactTM.scale: 2.922417\n    test 1493 line 250 _ExactTM.lat: 18.201208\n    test 1494 line 250 _ExactTM.lon: 82.434618\n    test 1495 line 251 _ExactTM.easting: 8650100.981797\n    test 1496 line 251 _ExactTM.northing: 9975084.168997\n    test 1497 line 251 _ExactTM.gamma: 89.767446\n    test 1498 line 251 _ExactTM.scale: 2.057289\n    test 1499 line 251 _ExactTM.lat: 28.804576\n    test 1500 line 251 _ExactTM.lon: 89.886072\n    test 1501 line 252 _ExactTM.easting: 2212701.180192\n    test 1502 line 252 _ExactTM.northing: 650348.100229\n    test 1503 line 252 _ExactTM.gamma: 1.970441\n    test 1504 line 252 _ExactTM.scale: 1.060830\n    test 1505 line 252 _ExactTM.lat: 5.542998\n    test 1506 line 252 _ExactTM.lon: 19.589578\n    test 1507 line 253 _ExactTM.easting: 6890222.326618\n    test 1508 line 253 _ExactTM.northing: 7506813.499547\n    test 1509 line 253 _ExactTM.gamma: 62.684825\n    test 1510 line 253 _ExactTM.scale: 1.638488\n    test 1511 line 253 _ExactTM.lat: 34.237147\n    test 1512 line 253 _ExactTM.lon: 73.678164\n    test 1513 line 254 _ExactTM.easting: 6692260.067325\n    test 1514 line 254 _ExactTM.northing: 4244174.008110\n    test 1515 line 254 _ExactTM.gamma: 31.812920\n    test 1516 line 254 _ExactTM.scale: 1.604640\n    test 1517 line 254 _ExactTM.lat: 22.704949\n    test 1518 line 254 _ExactTM.lon: 57.877010\n    test 1519 line 255 _ExactTM.easting: 1225564.137190\n    test 1520 line 255 _ExactTM.northing: 4778923.924144\n    test 1521 line 255 _ExactTM.gamma: 10.083419\n    test 1522 line 255 _ExactTM.scale: 1.018134\n    test 1523 line 255 _ExactTM.lat: 42.192424\n    test 1524 line 255 _ExactTM.lon: 14.828196\n    test 1525 line 256 _ExactTM.easting: 12341116.154950\n    test 1526 line 256 _ExactTM.northing: 5081855.521966\n    test 1527 line 256 _ExactTM.gamma: 45.712546\n    test 1528 line 256 _ExactTM.scale: 3.535170\n    test 1529 line 256 _ExactTM.lat: 11.481151\n    test 1530 line 256 _ExactTM.lon: 78.189236\n    test 1531 line 257 _ExactTM.easting: 6673845.021771\n    test 1532 line 257 _ExactTM.northing: 1177587.190565\n    test 1533 line 257 _ExactTM.gamma: 8.389141\n    test 1534 line 257 _ExactTM.scale: 1.605171\n    test 1535 line 257 _ExactTM.lat: 6.609626\n    test 1536 line 257 _ExactTM.lon: 51.735783\n    test 1537 line 258 _ExactTM.easting: 6966354.690417\n    test 1538 line 258 _ExactTM.northing: 3641802.005093\n    test 1539 line 258 _ExactTM.gamma: 27.409636\n    test 1540 line 258 _ExactTM.scale: 1.661469\n    test 1541 line 258 _ExactTM.lat: 19.059369\n    test 1542 line 258 _ExactTM.lon: 57.526439\n    test 1543 max forward error: 2.048910e-08\n    test 1544 max reverse error: 8.526513e-14\n    test 1545 _ExactTM.scale0: 0.9996\n    test 1546 _ExactTM.datum: WGS84\n    test 1547 _ExactTM.datum.ellipsoid.KsOrder: 8\n    test 1548 WGS84.KsOrder: 8\n\n    all 1548 testExactTMcoords.py tests passed, 1 skipped (pygeodesy 26.3.26 Python 3.12.10 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 2.1.0 scipy 1.14.1 Math 2 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 isLazy 3 -W  default) 8.829 sec\nrunning /usr/local/bin/p....n3.12 -W default ~/PyGeodesy/test/testFmath.py\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.EPS from .constants by testFmath.py line 11\n# lazily imported pygeodesy.Fcbrt from .fmath by testFmath.py line 11\n# lazily imported pygeodesy.Fhypot from .fmath by testFmath.py line 11\n# lazily imported pygeodesy.INF from .constants by testFmath.py line 11\n# lazily imported pygeodesy.Fpowers from .fmath by testFmath.py line 11\n# lazily imported pygeodesy.Froot from .fmath by testFmath.py line 11\n# lazily imported pygeodesy.Fsqrt from .fmath by testFmath.py line 11\n# lazily imported pygeodesy.Fsum from .fsums by testFmath.py line 11\n# lazily imported pygeodesy.bqrt from .fmath by testFmath.py line 11\n# lazily imported pygeodesy.cbrt from .fmath by testFmath.py line 11\n# lazily imported pygeodesy.cbrt2 from .fmath by testFmath.py line 11\n# lazily imported pygeodesy.euclid_ from .fmath by testFmath.py line 11\n# lazily imported pygeodesy.Ellipsoids from .ellipsoids by testFmath.py line 11\n# lazily imported pygeodesy.facos1 from .fmath by testFmath.py line 11\n# lazily imported pygeodesy.fasin1 from .fmath by testFmath.py line 11\n# lazily imported pygeodesy.fatan from .fmath by testFmath.py line 11\n# lazily imported pygeodesy.fatan1 from .fmath by testFmath.py line 11\n# lazily imported pygeodesy.fatan2 from .fmath by testFmath.py line 11\n# lazily imported pygeodesy.fhorner from .fmath by testFmath.py line 11\n# lazily imported pygeodesy.fma from .fmath by testFmath.py line 11\n# lazily imported pygeodesy.f2mul_ from .fmath by testFmath.py line 11\n# lazily imported pygeodesy.fpolynomial from .fmath by testFmath.py line 11\n# lazily imported pygeodesy.fpowers from .fmath by testFmath.py line 11\n# lazily imported pygeodesy.frandoms from .fmath by testFmath.py line 11\n# lazily imported pygeodesy.fsum_ from .fsums by testFmath.py line 11\n# lazily imported pygeodesy.hypot from .fmath by testFmath.py line 11\n# lazily imported pygeodesy.hypot_ from .fmath by testFmath.py line 11\n# lazily imported pygeodesy.hypot2_ from .fmath by testFmath.py line 11\n# lazily imported pygeodesy.isinf from .constants by testFmath.py line 11\n# lazily imported pygeodesy.norm_ from .fmath by testFmath.py line 11\n# lazily imported pygeodesy.signOf from .basics by testFmath.py line 11\n# lazily imported pygeodesy.sqrt3 from .fmath by testFmath.py line 11\n# lazily imported pygeodesy.sqrt_a from .fmath by testFmath.py line 11\n# lazily imported pygeodesy.zcrt from .fmath by testFmath.py line 11\n# lazily imported pygeodesy.zqrt from .fmath by testFmath.py line 11\n\n    testing testFmath.py 25.09.09 (module pygeodesy.fmath 26.03.25) isLazy=3\n    test 1 fpolynomialA: 1.21197509765625\n    test 2 fhornerA: 1.21197509765625\n    test 3 fpolynomialB: 0.1513671875\n    test 4 fhornerB: 0.1513671875\n\n    test 5 fpolynomialA: 1.21197509765625\n    test 6 fhornerA: 1.21197509765625\n    test 7 fpolynomialB: 0.1513671875\n    test 8 fhornerB: 0.1513671875\n\n    test 9 fpolynomialA: 1.21197509765625\n    test 10 fhornerA: 1.21197509765625\n    test 11 fpolynomialB: 0.1513671875\n    test 12 fhornerB: 0.1513671875\n\n    test 13 fpolynomialA: 1.21197509765625\n    test 14 fhornerA: 1.21197509765625\n    test 15 fpolynomialB: 0.1513671875\n    test 16 fhornerB: 0.1513671875\n\n    test 17 fpolynomialA: 1.21197509765625\n    test 18 fhornerA: 1.21197509765625\n    test 19 fpolynomialB: 0.1513671875\n    test 20 fhornerB: 0.1513671875\n\n    test 21 fpolynomialA: 1.21197509765625\n    test 22 fhornerA: 1.21197509765625\n    test 23 fpolynomialB: 0.1513671875\n    test 24 fhornerB: 0.1513671875\n\n    test 25 fpolynomialA: 1.21197509765625\n    test 26 fhornerA: 1.21197509765625\n    test 27 fpolynomialB: 0.1513671875\n    test 28 fhornerB: 0.1513671875\n\n    test 29 fpolynomialA: 1.21197509765625\n    test 30 fhornerA: 1.21197509765625\n    test 31 fpolynomialB: 0.1513671875\n    test 32 fhornerB: 0.1513671875\n\n    test 33 fpolynomialA: 1.21197509765625\n    test 34 fhornerA: 1.21197509765625\n    test 35 fpolynomialB: 0.1513671875\n    test 36 fhornerB: 0.1513671875\n\n    test 37 fpolynomialA: 1.21197509765625\n    test 38 fhornerA: 1.21197509765625\n    test 39 fpolynomialB: 0.1513671875\n    test 40 fhornerB: 0.1513671875\n\n    test 41 fpolynomialA: 1.21197509765625\n    test 42 fhornerA: 1.21197509765625\n    test 43 fpolynomialB: 0.1513671875\n    test 44 fhornerB: 0.1513671875\n\n    test 45 fpolynomialA: 1.21197509765625\n    test 46 fhornerA: 1.21197509765625\n    test 47 fpolynomialB: 0.1513671875\n    test 48 fhornerB: 0.1513671875\n\n    test 49 fpolynomialA: 1.21197509765625\n    test 50 fhornerA: 1.21197509765625\n    test 51 fpolynomialB: 0.1513671875\n    test 52 fhornerB: 0.1513671875\n\n    test 53 fpolynomialA: 1.21197509765625\n    test 54 fhornerA: 1.21197509765625\n    test 55 fpolynomialB: 0.1513671875\n    test 56 fhornerB: 0.1513671875\n\n    test 57 fpolynomialA: 1.21197509765625\n    test 58 fhornerA: 1.21197509765625\n    test 59 fpolynomialB: 0.1513671875\n    test 60 fhornerB: 0.1513671875\n\n    test 61 fpolynomialA: 1.21197509765625\n    test 62 fhornerA: 1.21197509765625\n    test 63 fpolynomialB: 0.1513671875\n    test 64 fhornerB: 0.1513671875\n\n    test 65 fpolynomialA: 1.21197509765625\n    test 66 fhornerA: 1.21197509765625\n    test 67 fpolynomialB: 0.1513671875\n    test 68 fhornerB: 0.1513671875\n\n    test 69 fpolynomialA: 1.21197509765625\n    test 70 fhornerA: 1.21197509765625\n    test 71 fpolynomialB: 0.1513671875\n    test 72 fhornerB: 0.1513671875\n\n    test 73 fpolynomialA: 1.21197509765625\n    test 74 fhornerA: 1.21197509765625\n    test 75 fpolynomialB: 0.1513671875\n    test 76 fhornerB: 0.1513671875\n\n    test 77 fpolynomialA: 1.21197509765625\n    test 78 fhornerA: 1.21197509765625\n    test 79 fpolynomialB: 0.1513671875\n    test 80 fhornerB: 0.1513671875\n\n    test 81 fpolynomialA: 1.21197509765625\n    test 82 fhornerA: 1.21197509765625\n    test 83 fpolynomialB: 0.1513671875\n    test 84 fhornerB: 0.1513671875\n\n    test 85 fpolynomialA: 1.21197509765625\n    test 86 fhornerA: 1.21197509765625\n    test 87 fpolynomialB: 0.1513671875\n    test 88 fhornerB: 0.1513671875\n\n    test 89 fpolynomialA: 1.21197509765625\n    test 90 fhornerA: 1.21197509765625\n    test 91 fpolynomialB: 0.1513671875\n    test 92 fhornerB: 0.1513671875\n\n    test 93 fpolynomialA: 1.21197509765625\n    test 94 fhornerA: 1.21197509765625\n    test 95 fpolynomialB: 0.1513671875\n    test 96 fhornerB: 0.1513671875\n\n    test 97 fpolynomialA: 1.21197509765625\n    test 98 fhornerA: 1.21197509765625\n    test 99 fpolynomialB: 0.1513671875\n    test 100 fhornerB: 0.1513671875\n\n    test 101 fpolynomialA: 1.21197509765625\n    test 102 fhornerA: 1.21197509765625\n    test 103 fpolynomialB: 0.1513671875\n    test 104 fhornerB: 0.1513671875\n\n    test 105 fpolynomialA: 1.21197509765625\n    test 106 fhornerA: 1.21197509765625\n    test 107 fpolynomialB: 0.1513671875\n    test 108 fhornerB: 0.1513671875\n\n    test 109 fpolynomialA: 1.21197509765625\n    test 110 fhornerA: 1.21197509765625\n    test 111 fpolynomialB: 0.1513671875\n    test 112 fhornerB: 0.1513671875\n\n    test 113 fpolynomialA: 1.21197509765625\n    test 114 fhornerA: 1.21197509765625\n    test 115 fpolynomialB: 0.1513671875\n    test 116 fhornerB: 0.1513671875\n\n    test 117 fpolynomialA: 1.21197509765625\n    test 118 fhornerA: 1.21197509765625\n    test 119 fpolynomialB: 0.1513671875\n    test 120 fhornerB: 0.1513671875\n\n    test 121 fpolynomialA: 1.21197509765625\n    test 122 fhornerA: 1.21197509765625\n    test 123 fpolynomialB: 0.1513671875\n    test 124 fhornerB: 0.1513671875\n\n    test 125 fpolynomialA: 1.21197509765625\n    test 126 fhornerA: 1.21197509765625\n    test 127 fpolynomialB: 0.1513671875\n    test 128 fhornerB: 0.1513671875\n\n    test 129 fpolynomialA: 1.21197509765625\n    test 130 fhornerA: 1.21197509765625\n    test 131 fpolynomialB: 0.1513671875\n    test 132 fhornerB: 0.1513671875\n\n    test 133 fpowers: 10\n    test 134 fpowers: 2\n    test 135 fpowers: 1024\n    test 136 fpowers: 4\n    test 137 fpowers: 16\n    test 138 fpowers: 1024\n    test 139 fpowers: 4\n    test 140 fpowers: 8\n    test 141 fpowers: 512\n\n    test 142 Airy1830: 6366914.608925221\n    test 143 Airy1830: 6366914.608925221\n    test 144 Airy1830: 6366914.608925221\n    test 145 Airy1830: 6366914.608925221\n\n    test 146 AiryModified: 6366691.774619882  FAILED, KNOWN, expected 6366691.774619881\n    test 147 AiryModified: 6366691.774619882  FAILED, KNOWN, expected 6366691.774619881\n    test 148 AiryModified: 6366691.774619882  FAILED, KNOWN, expected 6366691.774619881\n    test 149 AiryModified: 6366691.774619882  FAILED, KNOWN, expected 6366691.774619881\n\n    test 150 ATS1977: 6367447.141166951  FAILED, KNOWN, expected 6367447.141166950\n    test 151 ATS1977: 6367447.141166951  FAILED, KNOWN, expected 6367447.141166950\n    test 152 ATS1977: 6367447.141166951  FAILED, KNOWN, expected 6367447.141166950\n    test 153 ATS1977: 6367447.141166951  FAILED, KNOWN, expected 6367447.141166950\n\n    test 154 Australia1966: 6367471.848532283  FAILED, KNOWN, expected 6367471.848532284\n    test 155 Australia1966: 6367471.848532283  FAILED, KNOWN, expected 6367471.848532284\n    test 156 Australia1966: 6367471.848532283  FAILED, KNOWN, expected 6367471.848532284\n    test 157 Australia1966: 6367471.848532283  FAILED, KNOWN, expected 6367471.848532284\n\n    test 158 Bessel1841: 6366742.520233950\n    test 159 Bessel1841: 6366742.520233950\n    test 160 Bessel1841: 6366742.520233950\n    test 161 Bessel1841: 6366742.520233950\n\n    test 162 BesselModified: 6366837.224747659  FAILED, KNOWN, expected 6366837.224747658\n    test 163 BesselModified: 6366837.224747659  FAILED, KNOWN, expected 6366837.224747658\n    test 164 BesselModified: 6366837.224747659  FAILED, KNOWN, expected 6366837.224747658\n    test 165 BesselModified: 6366837.224747659  FAILED, KNOWN, expected 6366837.224747658\n\n    test 166 CGCS2000: 6367449.145771047  FAILED, KNOWN, expected 6367449.145771048\n    test 167 CGCS2000: 6367449.145771047  FAILED, KNOWN, expected 6367449.145771048\n    test 168 CGCS2000: 6367449.145771047  FAILED, KNOWN, expected 6367449.145771048\n    test 169 CGCS2000: 6367449.145771047  FAILED, KNOWN, expected 6367449.145771048\n\n    test 170 Clarke1866: 6367399.689169783\n    test 171 Clarke1866: 6367399.689169783\n    test 172 Clarke1866: 6367399.689169783\n    test 173 Clarke1866: 6367399.689169783\n\n    test 174 Clarke1880: 6367386.643980513\n    test 175 Clarke1880: 6367386.643980513\n    test 176 Clarke1880: 6367386.643980513\n    test 177 Clarke1880: 6367386.643980513\n\n    test 178 Clarke1880IGN: 6367386.736673363\n    test 179 Clarke1880IGN: 6367386.736673363\n    test 180 Clarke1880IGN: 6367386.736673363\n    test 181 Clarke1880IGN: 6367386.736673363\n\n    test 182 Clarke1880Mod: 6367386.692362010  FAILED, KNOWN, expected 6367386.692362011\n    test 183 Clarke1880Mod: 6367386.692362010  FAILED, KNOWN, expected 6367386.692362011\n    test 184 Clarke1880Mod: 6367386.692362010  FAILED, KNOWN, expected 6367386.692362011\n    test 185 Clarke1880Mod: 6367386.692362010  FAILED, KNOWN, expected 6367386.692362011\n\n    test 186 CPM1799: 6366208.881847842  FAILED, KNOWN, expected 6366208.881847841\n    test 187 CPM1799: 6366208.881847842  FAILED, KNOWN, expected 6366208.881847841\n    test 188 CPM1799: 6366208.881847842  FAILED, KNOWN, expected 6366208.881847841\n    test 189 CPM1799: 6366208.881847842  FAILED, KNOWN, expected 6366208.881847841\n\n    test 190 Delambre1810: 6366197.076843344\n    test 191 Delambre1810: 6366197.076843344\n    test 192 Delambre1810: 6366197.076843344\n    test 193 Delambre1810: 6366197.076843344\n\n    test 194 Engelis1985: 6367448.175079710  FAILED, KNOWN, expected 6367448.175079712\n    test 195 Engelis1985: 6367448.175079710  FAILED, KNOWN, expected 6367448.175079712\n    test 196 Engelis1985: 6367448.175079710  FAILED, KNOWN, expected 6367448.175079712\n    test 197 Engelis1985: 6367448.175079710  FAILED, KNOWN, expected 6367448.175079712\n\n    test 198 Everest1969: 6366699.578395008  FAILED, KNOWN, expected 6366699.578395010\n    test 199 Everest1969: 6366699.578395008  FAILED, KNOWN, expected 6366699.578395010\n    test 200 Everest1969: 6366699.578395008  FAILED, KNOWN, expected 6366699.578395010\n    test 201 Everest1969: 6366699.578395008  FAILED, KNOWN, expected 6366699.578395010\n\n    test 202 Everest1975: 6366703.060499237\n    test 203 Everest1975: 6366703.060499237\n    test 204 Everest1975: 6366703.060499237\n    test 205 Everest1975: 6366703.060499237\n\n    test 206 Fisher1968: 6367463.656043807\n    test 207 Fisher1968: 6367463.656043807\n    test 208 Fisher1968: 6367463.656043807\n    test 209 Fisher1968: 6367463.656043807\n\n    test 210 GEM10C: 6367449.145824739  FAILED, KNOWN, expected 6367449.145824740\n    test 211 GEM10C: 6367449.145824739  FAILED, KNOWN, expected 6367449.145824740\n    test 212 GEM10C: 6367449.145824739  FAILED, KNOWN, expected 6367449.145824740\n    test 213 GEM10C: 6367449.145824739  FAILED, KNOWN, expected 6367449.145824740\n\n    test 214 GPES: 6378135.000000000\n    test 215 GPES: 6378135.000000000\n    test 216 GPES: 6378135.000000000\n    test 217 GPES: 6378135.000000000\n\n    test 218 GRS67: 6367471.747065325\n    test 219 GRS67: 6367471.747065325\n    test 220 GRS67: 6367471.747065325\n    test 221 GRS67: 6367471.747065325\n\n    test 222 GRS80: 6367449.145771043\n    test 223 GRS80: 6367449.145771043\n    test 224 GRS80: 6367449.145771043\n    test 225 GRS80: 6367449.145771043\n\n    test 226 Helmert1906: 6367513.572270742\n    test 227 Helmert1906: 6367513.572270742\n    test 228 Helmert1906: 6367513.572270742\n    test 229 Helmert1906: 6367513.572270742\n\n    test 230 IAU76: 6367452.132788436\n    test 231 IAU76: 6367452.132788436\n    test 232 IAU76: 6367452.132788436\n    test 233 IAU76: 6367452.132788436\n\n    test 234 IERS1989: 6367448.139491247\n    test 235 IERS1989: 6367448.139491247\n    test 236 IERS1989: 6367448.139491247\n    test 237 IERS1989: 6367448.139491247\n\n    test 238 IERS1992TOPEX: 6367448.446996409\n    test 239 IERS1992TOPEX: 6367448.446996409\n    test 240 IERS1992TOPEX: 6367448.446996409\n    test 241 IERS1992TOPEX: 6367448.446996409\n\n    test 242 IERS2003: 6367448.717710576  FAILED, KNOWN, expected 6367448.717710577\n    test 243 IERS2003: 6367448.717710576  FAILED, KNOWN, expected 6367448.717710577\n    test 244 IERS2003: 6367448.717710576  FAILED, KNOWN, expected 6367448.717710577\n    test 245 IERS2003: 6367448.717710576  FAILED, KNOWN, expected 6367448.717710577\n\n    test 246 Intl1924: 6367654.500057585  FAILED, KNOWN, expected 6367654.500057584\n    test 247 Intl1924: 6367654.500057585  FAILED, KNOWN, expected 6367654.500057584\n    test 248 Intl1924: 6367654.500057585  FAILED, KNOWN, expected 6367654.500057584\n    test 249 Intl1924: 6367654.500057585  FAILED, KNOWN, expected 6367654.500057584\n\n    test 250 Intl1967: 6367469.338944457\n    test 251 Intl1967: 6367469.338944457\n    test 252 Intl1967: 6367469.338944457\n    test 253 Intl1967: 6367469.338944457\n\n    test 254 Krassovski1940: 6367558.496874981\n    test 255 Krassovski1940: 6367558.496874981\n    test 256 Krassovski1940: 6367558.496874981\n    test 257 Krassovski1940: 6367558.496874981\n\n    test 258 Krassowsky1940: 6367558.496874981\n    test 259 Krassowsky1940: 6367558.496874981\n    test 260 Krassowsky1940: 6367558.496874981\n    test 261 Krassowsky1940: 6367558.496874981\n\n    test 262 Maupertuis1738: 6380564.130118373\n    test 263 Maupertuis1738: 6380564.130118373\n    test 264 Maupertuis1738: 6380564.130118373\n    test 265 Maupertuis1738: 6380564.130118373\n\n    test 266 Mercury1960: 6367479.629236430\n    test 267 Mercury1960: 6367479.629236430\n    test 268 Mercury1960: 6367479.629236430\n    test 269 Mercury1960: 6367479.629236430\n\n    test 270 Mercury1968Mod: 6367463.656043807\n    test 271 Mercury1968Mod: 6367463.656043807\n    test 272 Mercury1968Mod: 6367463.656043807\n    test 273 Mercury1968Mod: 6367463.656043807\n\n    test 274 NWL1965: 6367456.873668412\n    test 275 NWL1965: 6367456.873668412\n    test 276 NWL1965: 6367456.873668412\n    test 277 NWL1965: 6367456.873668412\n\n    test 278 OSU86F: 6367448.347165301\n    test 279 OSU86F: 6367448.347165301\n    test 280 OSU86F: 6367448.347165301\n    test 281 OSU86F: 6367448.347165301\n\n    test 282 OSU91A: 6367448.446997731  FAILED, KNOWN, expected 6367448.446997732\n    test 283 OSU91A: 6367448.446997731  FAILED, KNOWN, expected 6367448.446997732\n    test 284 OSU91A: 6367448.446997731  FAILED, KNOWN, expected 6367448.446997732\n    test 285 OSU91A: 6367448.446997731  FAILED, KNOWN, expected 6367448.446997732\n\n    test 286 Plessis1817: 6366197.157107386  FAILED, KNOWN, expected 6366197.157107385\n    test 287 Plessis1817: 6366197.157107386  FAILED, KNOWN, expected 6366197.157107385\n    test 288 Plessis1817: 6366197.157107386  FAILED, KNOWN, expected 6366197.157107385\n    test 289 Plessis1817: 6366197.157107386  FAILED, KNOWN, expected 6366197.157107385\n\n    test 290 PZ90: 6367448.169554430  FAILED, KNOWN, expected 6367448.169554429\n    test 291 PZ90: 6367448.169554430  FAILED, KNOWN, expected 6367448.169554429\n    test 292 PZ90: 6367448.169554430  FAILED, KNOWN, expected 6367448.169554429\n    test 293 PZ90: 6367448.169554430  FAILED, KNOWN, expected 6367448.169554429\n\n    test 294 SGS85: 6367448.139491247\n    test 295 SGS85: 6367448.139491247\n    test 296 SGS85: 6367448.139491247\n    test 297 SGS85: 6367448.139491247\n\n    test 298 SoAmerican1969: 6367471.848532285\n    test 299 SoAmerican1969: 6367471.848532285\n    test 300 SoAmerican1969: 6367471.848532285\n    test 301 SoAmerican1969: 6367471.848532285\n\n    test 302 Sphere: 6371008.771415000\n    test 303 Sphere: 6371008.771415000\n    test 304 Sphere: 6371008.771415000\n    test 305 Sphere: 6371008.771415000\n\n    test 306 SphereAuthalic: 6371000.000000000\n    test 307 SphereAuthalic: 6371000.000000000\n    test 308 SphereAuthalic: 6371000.000000000\n    test 309 SphereAuthalic: 6371000.000000000\n\n    test 310 SpherePopular: 6378137.000000000\n    test 311 SpherePopular: 6378137.000000000\n    test 312 SpherePopular: 6378137.000000000\n    test 313 SpherePopular: 6378137.000000000\n\n    test 314 Struve1860: 6367482.318325493\n    test 315 Struve1860: 6367482.318325493\n    test 316 Struve1860: 6367482.318325493\n    test 317 Struve1860: 6367482.318325493\n\n    test 318 WGS60: 6367478.630911891  FAILED, KNOWN, expected 6367478.630911890\n    test 319 WGS60: 6367478.630911891  FAILED, KNOWN, expected 6367478.630911890\n    test 320 WGS60: 6367478.630911891  FAILED, KNOWN, expected 6367478.630911890\n    test 321 WGS60: 6367478.630911891  FAILED, KNOWN, expected 6367478.630911890\n\n    test 322 WGS66: 6367456.873668412\n    test 323 WGS66: 6367456.873668412\n    test 324 WGS66: 6367456.873668412\n    test 325 WGS66: 6367456.873668412\n\n    test 326 WGS72: 6367447.248623827  FAILED, KNOWN, expected 6367447.248623826\n    test 327 WGS72: 6367447.248623827  FAILED, KNOWN, expected 6367447.248623826\n    test 328 WGS72: 6367447.248623827  FAILED, KNOWN, expected 6367447.248623826\n    test 329 WGS72: 6367447.248623827  FAILED, KNOWN, expected 6367447.248623826\n\n    test 330 WGS84: 6367449.145823414\n    test 331 WGS84: 6367449.145823414\n    test 332 WGS84: 6367449.145823414\n    test 333 WGS84: 6367449.145823414\n\n    test 334 WGS84_NGS: 6367449.145771043\n    test 335 WGS84_NGS: 6367449.145771043\n    test 336 WGS84_NGS: 6367449.145771043\n    test 337 WGS84_NGS: 6367449.145771043\n\n    test 338 hypot: 1\n    test 339 sqrt_a: 0.6102683302836\n    test 340 sqrt_a: 0.6102683302836\n    test 341 hypot_ : 1.00001250\n    test 342 euclid_: 1.00207107  FAILED, KNOWN, expected 1.00001250\n    test 343 hypot2_: 1.00002500\n    test 344 norm_  : 1.00000000\n    test 345 hypot_ : 3606.937759\n    test 346 euclid_: 3845.584412  FAILED, KNOWN, expected 3859.423403\n    test 347 hypot2_: 13010000.0\n    test 348 norm_  : 1.0\n    test 349 hypot_ : 40112.842\n    test 350 hypot2_: 1609040100.0\n    test 351 euclid_: 41277.666  FAILED, KNOWN, expected 41316.227\n    test 352 bqrt: 2.00\n    test 353 cbrt: 3.00\n    test 354 cbrt: -3.00\n    test 355 cbrt2: 9.00\n    test 356 cbrt2: 9.00\n    test 357 sqrt3: 27.00\n    test 358 zcrt: 2.00\n    test 359 zqrt: 2.00\n    test 360 facos1: 0.005%\n    test 361 fasin1: 0.439%\n    test 362 fatan : 0.134%\n    test 363 fatan1: 2.834%\n    test 364 fatan2: 0.321%\n\n    test 365 Fhypot: Fhypot[1] (5.0, 0)\n    test 366 Fhypot: Fhypot[1] (9.43398, 0)\n    test 367 Fhypot: Fhypot[1] (5.0, 0)\n    test 368 Fhypot: Fhypot[1] (-2.18182, 0)\n    test 369 Fhypot: Fhypot[1] (-12, 0)\n    test 370 Fhypot: Fhypot[1] (1.41421, 0)\n    test 371 Fhypot: Fhypot[1] (-0.5, 0)\n    test 372 Fhypot: Fhypot[1] (-0.333333, 0)\n# imported pygeodesy.basics into errors.py line 531\n    test 373 Fhypot: fmath.Fhypot(<Fsum[1] (-1, 0) at 0x1024f0620>, -1, root=0): 1.0 / 0: float division by zero\n\n    test 374 Fsqrt: Fsqrt[1] (3.0, 0)\n    test 375 Fsqrt: Fcbrt[1] (3.0, 0)\n    test 376 Fsqrt: Fsqrt[1] (1.41421, 0)\n    test 377 Fsqrt: Fsqrt[1] (1.41421, 0)\n    test 378 Froot: Froot[1] (0.5, 0)\n    test 379 Froot: Froot[1] (0.5, 0)\n    test 380 Fsqrt: fmath.Fsqrt(<Fsum[1] (-1, 0) at 0x101db94c0>, -1, root=2): -2.0 root Fsum[1] (0.5, 0): complex (8.659560562354934e-17+1.4142135623730951j) from 2-arg pow(-2, 0.5)\n    test 381 Fsqrt: fmath.Froot(<Fsum[1] (-1, 0) at 0x101db94c0>, -1, root=0): 1.0 / 0: float division by zero\n    test 382 Froot: Froot[1] (-0.25, 0)\n\n    test 383 Fhypot2: 3.74165739e+100\n    test 384 Fpowers2: -1467.89542\n    test 385 Fsqrt2: 0.0541578006\n    test 386 Fcbrt2: 0.143144285\n\n    test 387 Fhypot3: 3.74165739e+100\n    test 388 Fpowers3: -16881.7154\n    test 389 Fsqrt3: 5.36080943e-05\n    test 390 Fcbrt3: 0.00142174021\n\n    test 391 Fhypot4: 3.74165739e+100\n    test 392 Fpowers4: -1723.70141\n    test 393 Fsqrt4: 0.00484039916\n    test 394 Fcbrt4: 0.028614585\n\n    test 395 Fhypot5: 3.74165739e+100\n    test 396 Fpowers5: 365.124737\n    test 397 Fsqrt5: 0.448148418\n    test 398 Fcbrt5: 0.585618218\n\n    test 399 Fhypot6: 3.74165739e+100\n    test 400 Fpowers6: 523.671403\n    test 401 Fsqrt6: 0.0430933845\n    test 402 Fcbrt6: 0.122915618\n\n    test 403 Fhypot8: 3.74165739e+100\n    test 404 Fpowers8: -23525.9173\n    test 405 Fsqrt8: 0.121977256\n    test 406 Fcbrt8: 0.245953254\n\n    test 407 fma: 2.4412441982659e-05\n    test 408 fma: 6.365860485903399\n    test 409 abc: 6.3658604845404625  FAILED, KNOWN, expected 6.365860485903399\n\n    test 410 f2mul_: 24.0\n    test 411 f2mul_: inf\n    test 412 f2mul_: inf\n\n    72 of 412 testFmath.py tests (17.5%) FAILED, ALL KNOWN (pygeodesy 26.3.26 Python 3.12.10 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 2.1.0 scipy 1.14.1 Math 2 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 isLazy 3 -W  default) 225.126 ms\nrunning /usr/local/bin/p....n3.12 -W default ~/PyGeodesy/test/testFormy.py\n./test/testFormy.py:28: DeprecationWarning: function L{cosineAndoyerLambert<pygeodesy.deprecated.functions.cosineAndoyerLambert>} has been DEPRECATED on 2024.12.31, use function L{pygeodesy.cosineLaw} with C{B{corr}=1}.\n  d = f(lat1, lon1, lat2, lon2, wrap=True, **kwds)\n./test/testFormy.py:28: DeprecationWarning: function L{cosineForsytheAndoyerLambert<pygeodesy.deprecated.functions.cosineForsytheAndoyerLambert>} has been DEPRECATED on 2024.12.31, use function L{pygeodesy.cosineLaw} with C{B{corr}=2}.\n  d = f(lat1, lon1, lat2, lon2, wrap=True, **kwds)\n./pygeodesy/formy.py:1097: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  if d.ellipsoid.geodesic:\n./pygeodesy/azimuthal.py:636: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return self.datum.ellipsoid.geodesic\n./pygeodesy/ellipsoidalKarney.py:94: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return self.datum.ellipsoid.geodesic\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.PI from .constants by testFormy.py line 11\n# lazily imported pygeodesy.PI_2 from .constants by testFormy.py line 11\n# lazily imported pygeodesy.R_M from .constants by testFormy.py line 11\n# lazily imported pygeodesy.angle2chord from .formy by testFormy.py line 11\n# lazily imported pygeodesy.antipode from .formy by testFormy.py line 11\n# lazily imported pygeodesy.bearing from .formy by testFormy.py line 11\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by <frozen importlib._bootstrap> line 1412\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by <frozen importlib._bootstrap> line 1412\n# lazily imported pygeodesy.Conformal2Tuple from .triaxials.triaxial5 by <frozen importlib._bootstrap> line 1412\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by classes.py line 21\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by classes.py line 21\n# lazily imported pygeodesy.Conformal2Tuple from .triaxials.triaxial5 by classes.py line 21\n# lazily imported pygeodesy.cosineAndoyerLambert from .deprecated.functions by testFormy.py line 11\n# lazily imported pygeodesy.chord2angle from .formy by testFormy.py line 11\n# lazily imported pygeodesy.cosineForsytheAndoyerLambert from .deprecated.functions by testFormy.py line 11\n# lazily imported pygeodesy.cosineLaw from .formy by testFormy.py line 11\n# lazily imported pygeodesy.Datums from .datums by testFormy.py line 11\n# lazily imported pygeodesy.equirectangular from .formy by testFormy.py line 11\n# lazily imported pygeodesy.euclidean from .formy by testFormy.py line 11\n# lazily imported pygeodesy.excessAbc_ from .formy by testFormy.py line 11\n# lazily imported pygeodesy.excessCagnoli_ from .formy by testFormy.py line 11\n# lazily imported pygeodesy.excessGirard_ from .formy by testFormy.py line 11\n# lazily imported pygeodesy.excessLHuilier_ from .formy by testFormy.py line 11\n# lazily imported pygeodesy.excessKarney from .formy by testFormy.py line 11\n# lazily imported pygeodesy.excessQuad from .formy by testFormy.py line 11\n# lazily imported pygeodesy.Degrees from .units by testFormy.py line 11\n# lazily imported pygeodesy.flatLocal from .formy by testFormy.py line 11\n# lazily imported pygeodesy.flatPolar from .formy by testFormy.py line 11\n# lazily imported pygeodesy.hartzell from .formy by testFormy.py line 11\n# lazily imported pygeodesy.haversine from .formy by testFormy.py line 11\n# lazily imported pygeodesy.heightOf from .formy by testFormy.py line 11\n# lazily imported pygeodesy.heightOrthometric from .formy by testFormy.py line 11\n# lazily imported pygeodesy.horizon from .formy by testFormy.py line 11\n# lazily imported pygeodesy.hubeny from .formy by testFormy.py line 11\n# lazily imported pygeodesy.IntersectionError from .errors by testFormy.py line 11\n# lazily imported pygeodesy.intersection2 from .formy by testFormy.py line 11\n# lazily imported pygeodesy.intersections2 from .formy by testFormy.py line 11\n# lazily imported pygeodesy.isantipode from .formy by testFormy.py line 11\n# lazily imported pygeodesy.isantipode_ from .formy by testFormy.py line 11\n# lazily imported pygeodesy.isnormal from .formy by testFormy.py line 11\n# lazily imported pygeodesy.isnormal_ from .formy by testFormy.py line 11\n# lazily imported pygeodesy.LatLon_ from .points by testFormy.py line 11\n# lazily imported pygeodesy.latlonDMS from .dms by testFormy.py line 11\n# lazily imported pygeodesy.LimitError from .errors by testFormy.py line 11\n# lazily imported pygeodesy.limiterrors from .errors by testFormy.py line 11\n# lazily imported pygeodesy.map1 from .basics by testFormy.py line 11\n# lazily imported pygeodesy.normal from .formy by testFormy.py line 11\n# lazily imported pygeodesy.parseDMS from .dms by testFormy.py line 11\n# lazily imported pygeodesy.radical2 from .formy by testFormy.py line 11\n# lazily imported pygeodesy.thomas from .formy by testFormy.py line 11\n# lazily imported pygeodesy.Vector3d from .vector3d by testFormy.py line 11\n# lazily imported pygeodesy.vincentys from .formy by testFormy.py line 11\n\n    testing testFormy.py 26.01.05 isLazy=3\n    test 1 angle2chord: 9009967.011\n    test 2 chord2angle: 1.570796\n    test 3 antipode1: (-89.0, -1.0)\n    test 4 antipode2: (89.0, 1.0)\n    test 5 bearing1: 251.364\n    test 6 bearing2: 251.364\n    test 7 bearing3: 249.614\n    test 8 excessAbc_: 11.9698\n    test 9 excessAbc_: 11.9698\n    test 10 excessCagnoli_: 11.9698\n    test 11 excessGirard_: 11.9698\n    test 12 excessLHuilier_: 11.9698\n    test 13 excessKarney: 56.9625\n    test 14 excessQuad: 56.9625\n    test 15 excessKarney: 44.0235\n    test 16 excessQuad: 44.0235\n    test 17 excessKarney: -44.0235\n    test 18 excessQuad: -44.0235\n\n    test 19 isantipode1: True\n    test 20 isantipode2: True\n    test 21 isantipode3: False\n    test 22 isantipode4: True\n    test 23 isantipode5: True\n    test 24 isantipode6: True\n    test 25 isantipode7: False\n    test 26 isantipode8: True\n\n    test 27 isnormal1: True\n    test 28 isnormal2: False\n    test 29 isnormal3: True\n    test 30 isnormal4: True\n    test 31 isnormal5: True\n    test 32 isnormal6: False\n    test 33 isnormal7: True\n    test 34 isnormal8: True\n# lazily imported pygeodesy.Triaxial from .triaxials.triaxial5 by ellipsoids.py line 1905\n# lazily imported pygeodesy.cartesianBase by formy.py line 933\n\n    test 35 hartzell: (884080.396945, 5592040.198472, 2927517.711001)\n# lazily imported pygeodesy.Triaxial from .triaxials.triaxial5 by ellipsoids.py line 1905\n# lazily imported pygeodesy.ecef by ecefLocals.py line 34\n    test 36 hartzell: 27.500482°N, 081.016111°E, +12669647.30  FAILED, KNOWN, expected 27.500482°N, 081.016111°E, +12669647.30, 'hartzell'\n# lazily imported pygeodesy.Triaxial from .triaxials.triaxial5 by ellipsoids.py line 1905\n    test 37 hartzell: (3642031.283571, 3678090.99925, 3714150.714929)\n# lazily imported pygeodesy.Triaxial from .triaxials.triaxial5 by ellipsoids.py line 1905\n    test 38 hartzell: 35.843738°N, 045.282243°E, +11296639.67  FAILED, KNOWN, expected 35.843738°N, 045.282243°E, +11296639.67, 'hartzell'\n# lazily imported pygeodesy.Triaxial from .triaxials.triaxial5 by ellipsoids.py line 1905\n    test 39 hartzell: (3647362.058328, 3683474.553955, 3703640.299338)\n# lazily imported pygeodesy.Triaxial from .triaxials.triaxial5 by ellipsoids.py line 1905\n    test 40 hartzell: 35.726966°N, 045.282243°E, +11296619.03  FAILED, KNOWN, expected 35.726966°N, 045.282243°E, +11296619.03, 'hartzell'\n    test 41 heightOf0: 2638958.23912\n    test 42 heightOf45: 5401080.43931\n    test 43 heightOf90: 6371008.77141\n    test 44 heightOf135: 5401080.43931\n    test 45 horizon0: 0.0\n    test 46 horizon10Km: 357099.672\n    test 47 horizon30Kft: 392310.704\n    test 48 horizon10Kft: 214877.422\n    test 49 normal1: (-89.0, 179.0)\n    test 50 normal2: (81.0, 180.0)\n    test 51 normal3: (81.0, -19.0)\n    test 52 normal4: (-81.0, 0.0)\n\n    test 53 haversine1 (0.00%): 298009.404\n    test 54 vincentys1 (0.00%): 298009.404\n    test 55 vincentys1 (0.00%): 298009.404\n    test 56 cosineAndoyerLambert1 (0.13%): 298395.796  FAILED, KNOWN, expected 298009.404\n    test 57 cosineForsytheAndoyerLambert1 (0.13%): 298396.056  FAILED, KNOWN, expected 298009.404\n    test 58 cosineLaw1 (0.00%): 298009.404\n    test 59 equirectangular1 (0.01%): 298039.206  FAILED, KNOWN, expected 298009.404\n    test 60 euclidean1 (5.26%): 313698.901  FAILED, KNOWN, expected 298009.404\n    test 61 flatLocal1 (0.14%): 298425.999  FAILED, KNOWN, expected 298009.404\n    test 62 flatPolar1 (8.67%): 323841.582  FAILED, KNOWN, expected 298009.404\n    test 63 thomas1 (0.13%): 298396.261  FAILED, KNOWN, expected 298009.404\n    test 64 hubeny1: <function flatLocal at 0x104771120>\n\n    test 65 haversine2 (0.00%): 98164.988\n    test 66 vincentys2 (0.00%): 98164.988\n    test 67 vincentys2 (0.00%): 98164.988\n    test 68 cosineAndoyerLambert2 (0.10%): 98071.421  FAILED, KNOWN, expected 98164.988\n    test 69 cosineForsytheAndoyerLambert2 (0.10%): 98071.560  FAILED, KNOWN, expected 98164.988\n    test 70 cosineLaw2 (0.00%): 98164.988\n    test 71 equirectangular2 (0.00%): 98165.123  FAILED, KNOWN, expected 98164.988\n    test 72 euclidean2 (6.37%): 104419.458  FAILED, KNOWN, expected 98164.988\n    test 73 flatLocal2 (0.10%): 98071.693  FAILED, KNOWN, expected 98164.988\n    test 74 flatPolar2 (0.57%): 98725.040  FAILED, KNOWN, expected 98164.988\n    test 75 thomas2 (0.10%): 98071.535  FAILED, KNOWN, expected 98164.988\n    test 76 hubeny2: <function flatLocal at 0x104771120>\n\n    test 77 haversine3 (0.00%): 651816.987\n    test 78 vincentys3 (0.00%): 651816.987\n    test 79 vincentys3 (0.00%): 651816.987\n    test 80 cosineAndoyerLambert3 (0.25%): 653456.144  FAILED, KNOWN, expected 651816.987\n    test 81 cosineForsytheAndoyerLambert3 (0.25%): 653456.175  FAILED, KNOWN, expected 651816.987\n    test 82 cosineLaw3 (0.00%): 651816.987\n    test 83 equirectangular3 (0.03%): 652041.760  FAILED, KNOWN, expected 651816.987\n    test 84 euclidean3 (4.37%): 680281.470  FAILED, KNOWN, expected 651816.987\n    test 85 flatLocal3 (0.29%): 653681.559  FAILED, KNOWN, expected 651816.987\n    test 86 flatPolar3 (13.00%): 736534.840  FAILED, KNOWN, expected 651816.987\n    test 87 thomas3 (0.25%): 653456.933  FAILED, KNOWN, expected 651816.987\n    test 88 hubeny3: <function flatLocal at 0x104771120>\n\n    test 89 haversine4 (0.00%): 4084985.780\n    test 90 vincentys4 (0.00%): 4084985.780\n    test 91 vincentys4 (0.00%): 4084985.780\n    test 92 cosineAndoyerLambert4 (0.24%): 4094954.008  FAILED, KNOWN, expected 4084985.780\n    test 93 cosineForsytheAndoyerLambert4 (0.24%): 4094953.639  FAILED, KNOWN, expected 4084985.780\n    test 94 cosineLaw4 (0.00%): 4084985.780\n    test 95 equirectangular4 (1.26%): 4136407.022  FAILED, KNOWN, expected 4084985.780\n    test 96 euclidean4 (4.22%): 4257296.511  FAILED, KNOWN, expected 4084985.780\n    test 97 flatLocal4 (1.51%): 4146513.247  FAILED, KNOWN, expected 4084985.780\n    test 98 flatPolar4 (12.31%): 4587896.452  FAILED, KNOWN, expected 4084985.780\n    test 99 thomas4 (0.24%): 4094958.301  FAILED, KNOWN, expected 4084985.780\n    test 100 hubeny4: <function flatLocal at 0x104771120>\n\n    test 101 haversine5 (0.00%): 9670051.606\n    test 102 vincentys5 (0.00%): 9670051.606\n    test 103 vincentys5 (0.00%): 9670051.606\n    test 104 cosineAndoyerLambert5 (0.21%): 9690752.610  FAILED, KNOWN, expected 9670051.606\n    test 105 cosineForsytheAndoyerLambert5 (0.21%): 9690746.120  FAILED, KNOWN, expected 9670051.606\n    test 106 cosineLaw5 (0.00%): 9670051.606\n    test 107 equirectangular5 (7.79%): 10423307.214  FAILED, KNOWN, expected 9670051.606\n    test 108 euclidean5 (9.34%): 10573030.726  FAILED, KNOWN, expected 9670051.606\n    test 109 flatLocal5 (8.03%): 10446503.342  FAILED, KNOWN, expected 9670051.606\n    test 110 flatPolar5 (55.59%): 15045906.074  FAILED, KNOWN, expected 9670051.606\n    test 111 thomas5 (0.21%): 9690767.767  FAILED, KNOWN, expected 9670051.606\n    test 112 hubeny5: <function flatLocal at 0x104771120>\n\n    test 113 haversine6 (0.00%): 10496496.577\n    test 114 vincentys6 (0.00%): 10496496.577\n    test 115 vincentys6 (0.00%): 10496496.577\n    test 116 cosineAndoyerLambert6 (0.18%): 10477328.664  FAILED, KNOWN, expected 10496496.577\n    test 117 cosineForsytheAndoyerLambert6 (0.18%): 10477342.084  FAILED, KNOWN, expected 10496496.577\n    test 118 cosineLaw6 (0.00%): 10496496.577\n    test 119 equirectangular6 (3.32%): 10844969.236  FAILED, KNOWN, expected 10496496.577\n    test 120 euclidean6 (4.50%): 10968488.107  FAILED, KNOWN, expected 10496496.577\n    test 121 flatLocal6 (3.07%): 10818798.605  FAILED, KNOWN, expected 10496496.577\n    test 122 flatPolar6 (23.87%): 13002288.857  FAILED, KNOWN, expected 10496496.577\n    test 123 thomas6 (0.18%): 10477316.498  FAILED, KNOWN, expected 10496496.577\n    test 124 hubeny6: <function flatLocal at 0x104771120>\n\n    test 125 haversine7 (0.00%): 8998396.669\n    test 126 vincentys7 (0.00%): 8998396.669\n    test 127 vincentys7 (0.00%): 8998396.669\n    test 128 cosineAndoyerLambert7 (0.27%): 8974227.489  FAILED, KNOWN, expected 8998396.669\n    test 129 cosineForsytheAndoyerLambert7 (0.27%): 8974238.592  FAILED, KNOWN, expected 8998396.669\n    test 130 cosineLaw7 (0.00%): 8998396.669\n    test 131 equirectangular7 (2.05%): 9182626.289  FAILED, KNOWN, expected 8998396.669\n    test 132 euclidean7 (7.76%): 9696965.812  FAILED, KNOWN, expected 8998396.669\n    test 133 flatLocal7 (1.71%): 9151831.117  FAILED, KNOWN, expected 8998396.669\n    test 134 flatPolar7 (17.56%): 10578638.162  FAILED, KNOWN, expected 8998396.669\n    test 135 thomas7 (0.27%): 8974216.867  FAILED, KNOWN, expected 8998396.669\n    test 136 hubeny7: <function flatLocal at 0x104771120>\n\n    test 137 haversine8 (0.00%): 6906867.946\n    test 138 vincentys8 (0.00%): 6906867.946\n    test 139 vincentys8 (0.00%): 6906867.946\n    test 140 cosineAndoyerLambert8 (0.13%): 6916085.969  FAILED, KNOWN, expected 6906867.946\n    test 141 cosineForsytheAndoyerLambert8 (0.13%): 6916085.333  FAILED, KNOWN, expected 6906867.946\n    test 142 cosineLaw8 (0.00%): 6906867.946\n    test 143 equirectangular8 (0.91%): 6969581.760  FAILED, KNOWN, expected 6906867.946\n    test 144 euclidean8 (6.54%): 7358706.022  FAILED, KNOWN, expected 6906867.946\n    test 145 flatLocal8 (1.04%): 6978905.097  FAILED, KNOWN, expected 6906867.946\n    test 146 flatPolar8 (23.23%): 8511564.321  FAILED, KNOWN, expected 6906867.946\n    test 147 thomas8 (0.13%): 6916087.828  FAILED, KNOWN, expected 6906867.946\n    test 148 hubeny8: <function flatLocal at 0x104771120>\n\n    test 149 haversine9 (0.01%): 8045325.213  FAILED, KNOWN, expected 8044806.076\n    test 150 vincentys9 (0.01%): 8045325.213  FAILED, KNOWN, expected 8044806.076\n    test 151 cosineAndoyerLambert9 (0.07%): 8050357.566  FAILED, KNOWN, expected 8044806.076\n    test 152 cosineForsytheAndoyerLambert9 (0.07%): 8050363.635  FAILED, KNOWN, expected 8044806.076\n    test 153 cosineLaw9 (0.01%): 8045325.213  FAILED, KNOWN, expected 8044806.076\n    test 154 flatLocal9 (15.21%): 9268128.573  FAILED, KNOWN, expected 8044806.076\n    test 155 thomas9 (0.07%): 8050370.796  FAILED, KNOWN, expected 8044806.076\n    test 156 hubeny9: <function flatLocal at 0x104771120>\n\n    test 157 intersection2: pygeodesy.formy\n    test 158 intersection2(None): (25.980762, 15.0)  FAILED, KNOWN, expected (24.284126, 15.0)\n# lazily imported pygeodesy.sphericalTrigonometry by formy.py line 1093\n    test 159 intersection2(6371008.771415): (24.146108, 15.0)  FAILED, KNOWN, expected (24.284126, 15.0)\n# lazily imported pygeodesy.sphericalNvector by formy.py line 1088\n    test 160 intersection2(-6371008.771415): (24.146108, 15.0)  FAILED, KNOWN, expected (24.284126, 15.0)\n# lazily imported pygeodesy.geodesicw by ellipsoids.py line 1074\n# lazily imported pygeodesy.ellipsoidalKarney by formy.py line 1099\n# lazily imported pygeodesy.azimuthal by ellipsoidalKarney.py line 85\n    test 161 intersection2(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84): (24.284126, 15.0)\n\n    test 162 intersections2: pygeodesy.formy\n    test 163 intersections2(None) 1: (1.0003, 1.0003), (-1.0003, -1.0003)\n    test 164 intersections2(None) 2: (2.0024, 2.0024), (-2.0024, -2.0024)\n    test 165 intersections2(None) 5: (5.0381, 5.0381), (-5.0381, -5.0381)\n    test 166 intersections2(None) 10: (10.3062, 10.3062), (-10.3062, -10.3062)\n    test 167 intersections2(None) 20: (-22.494, -22.494), (22.494, 22.494)\n    test 168 intersections2(None) 30: (38.7298, 38.7298), (-38.7298, -38.7298)\n    test 169 intersections2(None) 40: (62.0732, 62.0732), (-62.0732, -62.0732)\n    test 170 intersections2(R_M) 1: (-1.0, -1.0003), (1.0, 1.0003)\n    test 171 intersections2(R_M) 2: (-2.0, -2.0024), (2.0, 2.0024)\n    test 172 intersections2(R_M) 5: (-4.9999, -5.0383), (4.9999, 5.0383)\n    test 173 intersections2(R_M) 10: (-9.9976, -10.3117), (9.9976, 10.3117)\n    test 174 intersections2(R_M) 20: (-19.914, -22.6761), (19.914, 22.6761)\n    test 175 intersections2(R_M) 30: (-29.2059, -40.203), (29.2059, 40.203)\n    test 176 intersections2(R_M) 40: (-35.5129, -68.6826), (35.5129, 68.6826)\n    test 177 intersections2(WGS84) 1: (-1.0112, -0.998), (1.0112, 0.998)\n    test 178 intersections2(WGS84) 2: (-2.0224, -1.9979), (2.0224, 1.9979)\n    test 179 intersections2(WGS84) 5: (-5.0558, -5.0271), (5.0558, 5.0271)\n    test 180 intersections2(WGS84) 10: (-10.1081, -10.2901), (10.1081, 10.2901)\n    test 181 intersections2(WGS84) 20: (-20.1241, -22.6411), (20.1241, 22.6411)\n    test 182 intersections2(WGS84) 30: (-29.4898, -40.1785), (29.4898, 40.1785)\n    test 183 intersections2(WGS84) 40: (-35.8146, -68.7149), (35.8146, 68.7149)\n\n    test 184 radical2: (0.26, 2.6)\n    test 185 radical2: (0.74, 7.4)\n    test 186 radical2: (0.5, 5.0)\n    test 187 radical2: (0.5, 0.0)\n# imported pygeodesy.basics into errors.py line 443\n    test 188 IntersectionError: distance (10.0), radius1 (5.0) or radius2 (4.0): too distant  FAILED, KNOWN, expected distance (10.0), ...\n\n    test 189 LimitError: equirectangular4(0.0, 0.0, 60.0, 120.0, limit=45, wrap=False): delta (120) exceeds limit (45)  FAILED, KNOWN, expected delta exceeds ...\n\n    test 190 heightOrthometric: -1.0\n    test 191 heightOrthometric: 1.0\n\n    161 of 191 testFormy.py tests (84.3%) FAILED, incl. 71 KNOWN plus 90 DeprecationWarnings (pygeodesy 26.3.26 Python 3.12.10 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 2.1.0 scipy 1.14.1 Math 2 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 isLazy 3 -W  default) 98.983 ms\nrunning /usr/local/bin/p....n3.12 -W default ~/PyGeodesy/test/testFrechet.py\n./pygeodesy/frechet.py:644: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  self._func = self.datum.ellipsoid.geodesic.Inverse1\n./pygeodesy/ellipsoidalKarney.py:94: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return self.datum.ellipsoid.geodesic\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.FrechetError from .frechet by testFrechet.py line 12\n# lazily imported pygeodesy.fstr from .streprs by testFrechet.py line 12\n# lazily imported pygeodesy.LatLon_ from .points by testFrechet.py line 12\n# lazily imported pygeodesy.randomrangenerator from .hausdorff by testFrechet.py line 12\n# lazily imported pygeodesy.fractional from .points by testFrechet.py line 59\n# lazily imported pygeodesy.frechet_ from .frechet by testFrechet.py line 59\n# lazily imported pygeodesy.FrechetCosineLaw from .frechet by testFrechet.py line 59\n# lazily imported pygeodesy.FrechetDegrees from .frechet by testFrechet.py line 59\n# lazily imported pygeodesy.FrechetDistanceTo from .frechet by testFrechet.py line 59\n# lazily imported pygeodesy.FrechetEquirectangular from .frechet by testFrechet.py line 59\n# lazily imported pygeodesy.FrechetEuclidean from .frechet by testFrechet.py line 59\n# lazily imported pygeodesy.FrechetExact from .frechet by testFrechet.py line 59\n# lazily imported pygeodesy.FrechetFlatLocal from .frechet by testFrechet.py line 59\n# lazily imported pygeodesy.FrechetFlatPolar from .frechet by testFrechet.py line 59\n# lazily imported pygeodesy.FrechetKarney from .frechet by testFrechet.py line 59\n# lazily imported pygeodesy.FrechetHaversine from .frechet by testFrechet.py line 59\n# lazily imported pygeodesy.FrechetHubeny from .frechet by testFrechet.py line 59\n# lazily imported pygeodesy.FrechetRadians from .frechet by testFrechet.py line 59\n# lazily imported pygeodesy.FrechetThomas from .frechet by testFrechet.py line 59\n# lazily imported pygeodesy.FrechetVincentys from .frechet by testFrechet.py line 59\n\n    testing testFrechet.py 25.04.21 isLazy=3\n# lazily imported pygeodesy.booleans by iters.py line 503\n\n    test 1 FrechetDegrees_ (degrees): (178.5, 74, 56, 0, 5400)\n    test 2 FrechetDegrees_ (degrees): (175.5, 74, 52.5, 29, 10710)\n    test 3 copy(<class 'type'>): (<class '__main__.FrechetDegrees_'>, True)\n    test 4 FrechetDegrees_.copy(): (<class '__main__.FrechetDegrees_'>, True)\n\n    test 5 FrechetRadians_ (radians): (3.11541, 74, 56, 0, 5400)\n    test 6 FrechetRadians_ (radians): (3.06305, 74, 52.5, 29, 10710)\n    test 7 copy(<class 'type'>): (<class '__main__.FrechetRadians_'>, True)\n    test 8 FrechetRadians_.copy(): (<class '__main__.FrechetRadians_'>, True)\n# imported pygeodesy.formy into frechet.py line 424\n\n    test 9 FrechetCosineLaw (radians): (2.63867, 0, 13, 0, 5400)\n    test 10 FrechetCosineLaw (radians): (2.63867, 0, 0, 208, 10710)\n    test 11 copy(<class 'type'>): (<class 'pygeodesy.frechet.FrechetCosineLaw'>, True)\n    test 12 FrechetCosineLaw.copy(): (<class 'pygeodesy.frechet.FrechetCosineLaw'>, True)\n\n    test 13 FrechetCosineLaw (radians): (2.6319, 0, 13, 0, 5400)\n    test 14 FrechetCosineLaw (radians): (2.6319, 0, 0, 208, 10710)\n    test 15 copy(<class 'type'>): (<class 'pygeodesy.frechet.FrechetCosineLaw'>, True)\n    test 16 FrechetCosineLaw.copy(): (<class 'pygeodesy.frechet.FrechetCosineLaw'>, True)\n\n    test 17 FrechetCosineLaw (radians): (2.6319, 0, 13, 0, 5400)\n    test 18 FrechetCosineLaw (radians): (2.6319, 0, 0, 208, 10710)\n    test 19 copy(<class 'type'>): (<class 'pygeodesy.frechet.FrechetCosineLaw'>, True)\n    test 20 FrechetCosineLaw.copy(): (<class 'pygeodesy.frechet.FrechetCosineLaw'>, True)\n\n    test 21 FrechetEquirectangular (radians2): (7.1331, 8, 3, 0, 5400)\n    test 22 FrechetEquirectangular (radians2): (7.01295, 0, 0, 208, 10710)\n    test 23 copy(<class 'type'>): (<class 'pygeodesy.frechet.FrechetEquirectangular'>, True)\n    test 24 FrechetEquirectangular.copy(): (<class 'pygeodesy.frechet.FrechetEquirectangular'>, True)\n\n    test 25 FrechetEuclidean (radians): (2.81124, 8, 3, 0, 5400)\n    test 26 FrechetEuclidean (radians): (2.74296, 0, 0, 208, 10710)\n    test 27 copy(<class 'type'>): (<class 'pygeodesy.frechet.FrechetEuclidean'>, True)\n    test 28 FrechetEuclidean.copy(): (<class 'pygeodesy.frechet.FrechetEuclidean'>, True)\n\n    test 29 FrechetFlatLocal (radians2): (7.13778, 8, 3, 0, 5400)\n    test 30 FrechetFlatLocal (radians2): (6.92262, 0, 0, 208, 10710)\n    test 31 copy(<class 'type'>): (<class 'pygeodesy.frechet.FrechetFlatLocal'>, True)\n    test 32 FrechetFlatLocal.copy(): (<class 'pygeodesy.frechet.FrechetFlatLocal'>, True)\n\n    test 33 FrechetFlatPolar (radians): (2.65039, 0, 4, 0, 5400)\n    test 34 FrechetFlatPolar (radians): (2.65039, 0, 0, 208, 10710)\n    test 35 copy(<class 'type'>): (<class 'pygeodesy.frechet.FrechetFlatPolar'>, True)\n    test 36 FrechetFlatPolar.copy(): (<class 'pygeodesy.frechet.FrechetFlatPolar'>, True)\n\n    test 37 FrechetHaversine (radians): (2.63867, 0, 13, 0, 5400)\n    test 38 FrechetHaversine (radians): (2.63867, 0, 0, 208, 10710)\n    test 39 copy(<class 'type'>): (<class 'pygeodesy.frechet.FrechetHaversine'>, True)\n    test 40 FrechetHaversine.copy(): (<class 'pygeodesy.frechet.FrechetHaversine'>, True)\n\n    test 41 FrechetHubeny (radians2): (7.13778, 8, 3, 0, 5400)\n    test 42 FrechetHubeny (radians2): (6.92262, 0, 0, 208, 10710)\n    test 43 copy(<class 'type'>): (<class 'pygeodesy.frechet.FrechetHubeny'>, True)\n    test 44 FrechetHubeny.copy(): (<class 'pygeodesy.frechet.FrechetHubeny'>, True)\n\n    test 45 FrechetThomas (radians): (2.63187, 0, 13, 0, 5400)\n    test 46 FrechetThomas (radians): (2.63187, 0, 0, 208, 10710)\n    test 47 copy(<class 'type'>): (<class 'pygeodesy.frechet.FrechetThomas'>, True)\n    test 48 FrechetThomas.copy(): (<class 'pygeodesy.frechet.FrechetThomas'>, True)\n\n    test 49 FrechetVincentys (radians): (2.63867, 0, 13, 0, 5400)\n    test 50 FrechetVincentys (radians): (2.63867, 0, 0, 208, 10710)\n    test 51 copy(<class 'type'>): (<class 'pygeodesy.frechet.FrechetVincentys'>, True)\n    test 52 FrechetVincentys.copy(): (<class 'pygeodesy.frechet.FrechetVincentys'>, True)\n# lazily imported pygeodesy.geodesicw by ellipsoids.py line 1074\n\n    test 53 FrechetKarney (degrees): (151.09508, 0, 13, 0, 5400)\n    test 54 FrechetKarney (degrees): (151.09508, 0, 0, 208, 10710)\n    test 55 copy(<class 'type'>): (<class 'pygeodesy.frechet.FrechetKarney'>, True)\n    test 56 FrechetKarney.copy(): (<class 'pygeodesy.frechet.FrechetKarney'>, True)\n# lazily imported pygeodesy.ellipsoidalNvector by testFrechet.py line 218\n# lazily imported pygeodesy.ellipsoidalVincenty by testFrechet.py line 218\n# lazily imported pygeodesy.sphericalNvector by testFrechet.py line 218\n# lazily imported pygeodesy.sphericalTrigonometry by testFrechet.py line 218\n# lazily imported pygeodesy.ellipsoidalKarney by testFrechet.py line 223\n\n    test 57 FrechetDistanceTo (meter): (16786640.7064, 0, 13, 0, 5400)\n    test 58 FrechetDistanceTo (meter): (16786640.7064, 0, 0, 208, 10710)\n    test 59 copy(<class 'type'>): (<class 'pygeodesy.frechet.FrechetDistanceTo'>, True)\n    test 60 FrechetDistanceTo.copy(): (<class 'pygeodesy.frechet.FrechetDistanceTo'>, True)\n\n    test 61 FrechetDistanceTo (meter): (16786640.7064, 0, 13, 0, 5400)\n    test 62 FrechetDistanceTo (meter): (16786640.7064, 0, 0, 208, 10710)\n    test 63 copy(<class 'type'>): (<class 'pygeodesy.frechet.FrechetDistanceTo'>, True)\n    test 64 FrechetDistanceTo.copy(): (<class 'pygeodesy.frechet.FrechetDistanceTo'>, True)\n\n    test 65 FrechetDistanceTo (meter): (16810959.0015, 0, 13, 0, 5400)\n    test 66 FrechetDistanceTo (meter): (16810959.0015, 0, 0, 208, 10710)\n    test 67 copy(<class 'type'>): (<class 'pygeodesy.frechet.FrechetDistanceTo'>, True)\n    test 68 FrechetDistanceTo.copy(): (<class 'pygeodesy.frechet.FrechetDistanceTo'>, True)\n\n    test 69 FrechetDistanceTo (meter): (16810959.0015, 0, 13, 0, 5400)\n    test 70 FrechetDistanceTo (meter): (16810959.0015, 0, 0, 208, 10710)\n    test 71 copy(<class 'type'>): (<class 'pygeodesy.frechet.FrechetDistanceTo'>, True)\n    test 72 FrechetDistanceTo.copy(): (<class 'pygeodesy.frechet.FrechetDistanceTo'>, True)\n\n    test 73 FrechetDistanceTo (meter): (16810959.0015, 0, 13, 0, 5400)\n    test 74 FrechetDistanceTo (meter): (16810959.0015, 0, 0, 208, 10710)\n    test 75 copy(<class 'type'>): (<class 'pygeodesy.frechet.FrechetDistanceTo'>, True)\n    test 76 FrechetDistanceTo.copy(): (<class 'pygeodesy.frechet.FrechetDistanceTo'>, True)\n\n    test 77 frechet_: (178.5, 74, 56, 19, 5400, 'recursive')\n    test 78 [fi1]: 64.0°S, 096.0°E\n    test 79 [fi2]: 41.0°S, 071.0°W\n    test 80 [fi1]: LatLon_(64.0°S, 096.0°E)\n    test 81 [fi2]: LatLon_(41.0°S, 071.0°W)\n\n    test 82 frechet_: (178.5, 74, 56, 0, 5400, 'non-recursive')\n    test 83 frechet_: (178.5, 15, 3, 0, 5400, 'non-recursive-reversed')\n\n    91 of 83 testFrechet.py tests (109.6%) FAILED, incl. 91 DeprecationWarnings (pygeodesy 26.3.26 Python 3.12.10 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 2.1.0 scipy 1.14.1 Math 2 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 isLazy 3 -W  default) 62.865 sec\nrunning /usr/local/bin/p....n3.12 -W default ~/PyGeodesy/test/testFrozen.py\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n\n    testing testFrozen.py 24.03.03 isLazy=3\n    test 1 cmd: /usr/local/bin/python3.12 -c 'import sys; sys.frozen = True; import pygeodesy; sys.exit(0 if pygeodesy._isfrozen else 1)'\n    test 2 PYGEODESY_LAZY_IMPORT=0: 0\n    test 3 PYGEODESY_LAZY_IMPORT=1: 0\n    test 4 PYGEODESY_LAZY_IMPORT=2: 0\n\n    all 4 testFrozen.py tests passed (pygeodesy 26.3.26 Python 3.12.10 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 2.1.0 scipy 1.14.1 Math 2 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 isLazy 3 -W  default) 253.281 ms\nrunning /usr/local/bin/p....n3.12 -W default ~/PyGeodesy/test/testFstats.py\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.EPS0 from .constants by testFstats.py line 11\n# lazily imported pygeodesy.Fcook from .fstats by testFstats.py line 11\n# lazily imported pygeodesy.Flinear from .fstats by testFstats.py line 11\n# lazily imported pygeodesy.Fsum from .fsums by testFstats.py line 11\n# lazily imported pygeodesy.Fsum2Tuple from .fsums by testFstats.py line 11\n# lazily imported pygeodesy.Fwelford from .fstats by testFstats.py line 11\n\n    testing testFstats.py 23.05.08 (module pygeodesy.fstats 25.05.12) isLazy=3\n    test 1 Fcook: 8\n    test 2 Fcook: -0.218750\n    test 3 Fcook: 4.562500\n    test 4 Fcook: 5.0\n    test 5 Fcook: 0.656250\n    test 6 Fcook: 2.0\n    test 7 Fcook: 4.0\n    test 8 Fcook: 1.039635\n\n    test 9 copy: Fcook copy[8]\n    test 10 copy: 5.0\n    test 11 copy: 2.0\n    test 12 Fcook: 8\n\n    test 13 Doubled: 16\n    test 14 Doubled: -0.218750\n    test 15 Doubled: 4.5625\n    test 16 Doubled: 5.0\n    test 17 Doubled: 0.656250\n    test 18 Doubled: 2.0\n    test 19 Doubled: 4.0\n    test 20 Doubled: 1.340453  FAILED, KNOWN, expected 1.039635\n\n    test 21 Empty: Fcook Empty[16]\n    test 22 Empty: 18\n    test 23 Empty: TypeError('Fcook Empty[18] += None: None: not iterable')\n\n    test 24 Excel: 8\n    test 25 Excel: -1.114187\n    test 26 Excel: -0.939792\n    test 27 Excel: 2.735294\n    test 28 Excel: 2.50\n    test 29 Excel: -0.342403\n    test 30 Excel: -0.427052\n    test 31 Excel: 2.061553\n    test 32 Excel: 4.2\n    test 33 Excel: 0.470372\n\n    test 34 Fwelford: 8\n    test 35 Fwelford: 5.0\n    test 36 Fwelford: 2.0\n    test 37 Fwelford: 4.0\n\n    test 38 copy: Fwelford copy[8]\n    test 39 copy: 5.0\n    test 40 copy: 2.0\n    test 41 copy: 4.0\n    test 42 copy: 8\n    test 43 __add__: 18\n    test 44 __add__: TypeError('Fwelford __add__[18] += None: None: not iterable')\n\n    test 45 Flinear: 9\n    test 46 Flinear: 0.988288\n    test 47 Flinear: 167.682949\n    test 48 Flinear: 23.422786\n    test 49 __add__: 10\n    test 50 __add__: 21\n    test 51 __add__: TypeError('Flinear __add__[21] += None: None: not iterable')\n    test 52 __add__: ValueError('Flinear __add__[21] += (1, 2, 3): odd len (3): invalid')\n\n    1 of 52 testFstats.py tests (1.9%) FAILED, ALL KNOWN (pygeodesy 26.3.26 Python 3.12.10 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 2.1.0 scipy 1.14.1 Math 2 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 isLazy 3 -W  default) 1.948 sec\nrunning /usr/local/bin/p....n3.12 -W default ~/PyGeodesy/test/testFsums.py\n./test/testFsums.py:30: DeprecationWarning: function L{Fsum2product<pygeodesy.deprecated.functions.Fsum2product>} has been DEPRECATED on 2024.09.19, use L{Fsum}C{(*B{xs}, B{f2product}=True, ...)}.\n  self.test('Fsum', Fsum().fsum(t), s)\n./test/testFsums.py:39: DeprecationWarning: function L{Fsum2product<pygeodesy.deprecated.functions.Fsum2product>} has been DEPRECATED on 2024.09.19, use L{Fsum}C{(*B{xs}, B{f2product}=True, ...)}.\n  self.test('Fsum', Fsum().fsum(t), s)\n./test/testFsums.py:45: DeprecationWarning: function L{Fsum2product<pygeodesy.deprecated.functions.Fsum2product>} has been DEPRECATED on 2024.09.19, use L{Fsum}C{(*B{xs}, B{f2product}=True, ...)}.\n  self.test('Fsum', Fsum().fsum(t),  s, prec=-16)\n./test/testFsums.py:46: DeprecationWarning: function L{Fsum2product<pygeodesy.deprecated.functions.Fsum2product>} has been DEPRECATED on 2024.09.19, use L{Fsum}C{(*B{xs}, B{f2product}=True, ...)}.\n  self.test('Fsum', float(Fsum(*t)), s, prec=-16, nt=1)\n./test/testFsums.py:54: DeprecationWarning: function L{Fsum2product<pygeodesy.deprecated.functions.Fsum2product>} has been DEPRECATED on 2024.09.19, use L{Fsum}C{(*B{xs}, B{f2product}=True, ...)}.\n  f = Fsum(*t)\n./test/testFsums.py:74: DeprecationWarning: function L{Fsum2product<pygeodesy.deprecated.functions.Fsum2product>} has been DEPRECATED on 2024.09.19, use L{Fsum}C{(*B{xs}, B{f2product}=True, ...)}.\n  self.test('divmod', f, _x(Fsum(0), f), known=f == 0)\n./test/testFsums.py:80: DeprecationWarning: function L{Fsum2product<pygeodesy.deprecated.functions.Fsum2product>} has been DEPRECATED on 2024.09.19, use L{Fsum}C{(*B{xs}, B{f2product}=True, ...)}.\n  f = Fsum()\n./test/testFsums.py:83: DeprecationWarning: function L{Fsum2product<pygeodesy.deprecated.functions.Fsum2product>} has been DEPRECATED on 2024.09.19, use L{Fsum}C{(*B{xs}, B{f2product}=True, ...)}.\n  f = Fsum()\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.EPS from .constants by testFsums.py line 11\n# lazily imported pygeodesy.INF from .constants by testFsums.py line 11\n# lazily imported pygeodesy.NAN from .constants by testFsums.py line 11\n# lazily imported pygeodesy.Fsum from .fsums by testFsums.py line 11\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by <frozen importlib._bootstrap> line 1412\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by <frozen importlib._bootstrap> line 1412\n# lazily imported pygeodesy.Conformal2Tuple from .triaxials.triaxial5 by <frozen importlib._bootstrap> line 1412\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by classes.py line 21\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by classes.py line 21\n# lazily imported pygeodesy.Conformal2Tuple from .triaxials.triaxial5 by classes.py line 21\n# lazily imported pygeodesy.Fsum2product from .deprecated.functions by testFsums.py line 11\n# lazily imported pygeodesy.Fsum2Tuple from .fsums by testFsums.py line 11\n# lazily imported pygeodesy.ResidualError from .fsums by testFsums.py line 11\n# lazily imported pygeodesy.f2product from .fsums by testFsums.py line 11\n# lazily imported pygeodesy.frandoms from .fmath by testFsums.py line 11\n# lazily imported pygeodesy.fsum from .fsums by testFsums.py line 11\n# lazily imported pygeodesy.fsum_ from .fsums by testFsums.py line 11\n# lazily imported pygeodesy.isfinite from .constants by testFsums.py line 11\n# lazily imported pygeodesy.nonfiniterrors from .fsums by testFsums.py line 11\n\n    testing testFsums.py 25.06.02 (module pygeodesy.fsums 26.02.02) isLazy=3\n    test 1 sum1: 0.0  FAILED, KNOWN, expected 2.0\n    test 2 fsum: 2.0\n    test 3 Fsum: 2.0\n    test 4 sum2: 1.0  FAILED, KNOWN, expected 4.0\n    test 5 fsum: 4.0\n    test 6 Fsum: 4.0\n    test 7 sum3: 3.0  FAILED, KNOWN, expected 8.0\n    test 8 fsum: 8.0\n    test 9 Fsum: 8.0\n    test 10 sum4: 7.0  FAILED, KNOWN, expected 16.0\n    test 11 fsum: 16.0\n    test 12 Fsum: 16.0\n    test 13 sum5: 15.0  FAILED, KNOWN, expected 32.0\n    test 14 fsum: 32.0\n    test 15 Fsum: 32.0\n    test 16 sum6: 31.0  FAILED, KNOWN, expected 64.0\n    test 17 fsum: 64.0\n    test 18 Fsum: 64.0\n    test 19 sum7: 63.0  FAILED, KNOWN, expected 128.0\n    test 20 fsum: 128.0\n    test 21 Fsum: 128.0\n    test 22 sum8: 127.0  FAILED, KNOWN, expected 256.0\n    test 23 fsum: 256.0\n    test 24 Fsum: 256.0\n    test 25 sum9: 255.0  FAILED, KNOWN, expected 512.0\n    test 26 fsum: 512.0\n    test 27 Fsum: 512.0\n    test 28 sum10: 511.0  FAILED, KNOWN, expected 1024.0\n    test 29 fsum: 1024.0\n    test 30 Fsum: 1024.0\n    test 31 sum: 1.005000000001\n    test 32 fsum: 1.005000000001\n    test 33 Fsum: 1.005000000001\n    test 34 fsum: 1.0000000000000002e+16\n    test 35 Fsum: 1.0000000000000002e+16\n    test 36 Fsum: 1.0000000000000002e+16\n\n\n    test 37 fsum: 1.4203229439040998e-06\n    test 38 sum1: 14.000001420323569  FAILED, KNOWN, expected 1.4203229439040998e-06\n    test 39 pow(4): Fsum[24] pow(4.06957e-24, 2.33188e-40)\n    test 40 pow(1): Fsum[842] pow(1.42032e-06, 4.98687e-23)\n    test 41 pow(0): Fsum[1] pow(1.0, 0)\n    test 42 ceil: True\n    test 43 floor: True\n    test 44 divmod: Fsum[847] (0.0, 0)\n    test 45 residual: 0\n    test 46 is_exact: True\n    test 47 Fsum: 1.4203229439040998e-06\n    test 48 Fsum: 1.4203229439040998e-06\n\n    test 49 fsum: 0.017239254941143905\n    test 50 sum2: 0.0  FAILED, KNOWN, expected 0.017239254941143905\n    test 51 pow(4): Fsum[51] pow(8.8323e-08, 2.46487e-26)\n    test 52 pow(1): Fsum[842] pow(0.0172393, -6.15105e-19)\n    test 53 pow(0): Fsum[1] pow(1.0, 0)\n    test 54 ceil: True\n    test 55 floor: True\n    test 56 divmod: Fsum[849] (0.0, 0)\n    test 57 residual: 0\n    test 58 is_exact: True\n    test 59 Fsum: 0.017239254941143905\n    test 60 Fsum: 0.017239254941143905\n\n    test 61 fsum: -4.399912565500297\n    test 62 sum3: -11.399912565499886  FAILED, KNOWN, expected -4.399912565500297\n    test 63 pow(4): Fsum[54] pow(374.78, -2.78761e-14)\n    test 64 pow(1): Fsum[842] pow(-4.39991, -9.03137e-17)\n    test 65 pow(0): Fsum[1] pow(1.0, 0)\n    test 66 ceil: True\n    test 67 floor: True\n    test 68 divmod: Fsum[852] (0.0, 0)\n    test 69 residual: 0\n    test 70 is_exact: True\n    test 71 Fsum: -4.399912565500297\n    test 72 Fsum: -4.399912565500297\n\n    test 73 fsum: 4.2324766388316953e-11\n    test 74 sum4: 0.0  FAILED, KNOWN, expected 4.2324766388316953e-11\n    test 75 pow(4): Fsum[17] pow(3.20906e-42, -1.32347e-58)\n    test 76 pow(1): Fsum[842] pow(4.23248e-11, 2.93802e-28)\n    test 77 pow(0): Fsum[1] pow(1.0, 0)\n    test 78 ceil: True\n    test 79 floor: True\n    test 80 divmod: Fsum[845] (0.0, 0)\n    test 81 residual: 0\n    test 82 is_exact: True\n    test 83 Fsum: 4.2324766388316953e-11\n    test 84 Fsum: 4.2324766388316953e-11\n\n    test 85 fsum: -0.008914133182563242\n    test 86 sum5: -14.008914133182614  FAILED, KNOWN, expected -0.008914133182563242\n    test 87 pow(4): Fsum[76] pow(6.31417e-09, 4.22286e-27)\n    test 88 pow(1): Fsum[842] pow(-0.00891413, -5.71362e-19)\n    test 89 pow(0): Fsum[1] pow(1.0, 0)\n    test 90 ceil: True\n    test 91 floor: True\n    test 92 divmod: Fsum[854] (0.0, 0)\n    test 93 residual: 0\n    test 94 is_exact: True\n    test 95 Fsum: -0.008914133182563242\n    test 96 Fsum: -0.008914133182563242\n\n    test 97 fsum: 0.2668150469030887\n    test 98 sum6: 7.2668150469033606  FAILED, KNOWN, expected 0.2668150469030887\n    test 99 pow(4): Fsum[52] pow(0.00506805, -6.31247e-20)\n    test 100 pow(1): Fsum[842] pow(0.266815, 2.51382e-17)\n    test 101 pow(0): Fsum[1] pow(1.0, 0)\n    test 102 ceil: True\n    test 103 floor: True\n    test 104 divmod: Fsum[849] (0.0, 0)\n    test 105 residual: 0\n    test 106 is_exact: True\n    test 107 Fsum: 0.2668150469030887\n    test 108 Fsum: 0.2668150469030887\n\n    test 109 fsum: -1.8483996395074306e-08\n    test 110 sum7: 0.0  FAILED, KNOWN, expected -1.8483996395074306e-08\n    test 111 pow(4): Fsum[19] pow(1.1673e-31, -2.07516e-49)\n    test 112 pow(1): Fsum[842] pow(-1.8484e-08, -1.41426e-24)\n    test 113 pow(0): Fsum[1] pow(1.0, 0)\n    test 114 ceil: True\n    test 115 floor: True\n    test 116 divmod: Fsum[847] (0.0, 0)\n    test 117 residual: 0\n    test 118 is_exact: True\n    test 119 Fsum: -1.8483996395074306e-08\n    test 120 Fsum: -1.8483996395074306e-08\n\n    test 121 fsum: -0.0005853306979721807\n    test 122 sum8: 0.0  FAILED, KNOWN, expected -0.0005853306979721807\n    test 123 pow(4): Fsum[33] pow(1.17383e-13, 8.69761e-30)\n    test 124 pow(1): Fsum[842] pow(-0.000585331, -4.27854e-21)\n    test 125 pow(0): Fsum[1] pow(1.0, 0)\n    test 126 ceil: True\n    test 127 floor: True\n    test 128 divmod: Fsum[848] (0.0, 0)\n    test 129 residual: 0\n    test 130 is_exact: True\n    test 131 Fsum: -0.0005853306979721807\n    test 132 Fsum: -0.0005853306979721807\n\n    test 133 fsum: 0.28395513510726667\n    test 134 sum9: 0.0  FAILED, KNOWN, expected 0.28395513510726667\n    test 135 pow(4): Fsum[46] pow(0.00650128, -2.68753e-19)\n    test 136 pow(1): Fsum[842] pow(0.283955, 2.59189e-18)\n    test 137 pow(0): Fsum[1] pow(1.0, 0)\n    test 138 ceil: True\n    test 139 floor: True\n    test 140 divmod: Fsum[848] (0.0, 0)\n    test 141 residual: 0\n    test 142 is_exact: True\n    test 143 Fsum: 0.28395513510726667\n    test 144 Fsum: 0.28395513510726667\n\n    test 145 fsum: 0.00019154119665364008\n    test 146 sum10: 0.0  FAILED, KNOWN, expected 0.00019154119665364008\n    test 147 pow(4): Fsum[42] pow(1.34601e-15, -3.08746e-32)\n    test 148 pow(1): Fsum[842] pow(0.000191541, -1.15795e-20)\n    test 149 pow(0): Fsum[1] pow(1.0, 0)\n    test 150 ceil: True\n    test 151 floor: True\n    test 152 divmod: Fsum[848] (0.0, 0)\n    test 153 residual: 0\n    test 154 is_exact: True\n    test 155 Fsum: 0.00019154119665364008\n    test 156 Fsum: 0.00019154119665364008\n\n    test 157 fsum: 5.358490922383404e-08\n    test 158 sum11: 0.0  FAILED, KNOWN, expected 5.358490922383404e-08\n    test 159 pow(4): Fsum[24] pow(8.24461e-30, 4.46501e-46)\n    test 160 pow(1): Fsum[842] pow(5.35849e-08, 2.67612e-24)\n    test 161 pow(0): Fsum[1] pow(1.0, 0)\n    test 162 ceil: True\n    test 163 floor: True\n    test 164 divmod: Fsum[846] (0.0, 0)\n    test 165 residual: 0\n    test 166 is_exact: True\n    test 167 Fsum: 5.358490922383404e-08\n    test 168 Fsum: 5.358490922383404e-08\n\n    test 169 fsum: -1.9453763248695655\n    test 170 sum12: 12.05462367513087  FAILED, KNOWN, expected -1.9453763248695655\n    test 171 pow(4): Fsum[34] pow(14.3224, 7.12534e-16)\n    test 172 pow(1): Fsum[842] pow(-1.94538, 8.67095e-17)\n    test 173 pow(0): Fsum[1] pow(1.0, 0)\n    test 174 ceil: True\n    test 175 floor: True\n    test 176 divmod: Fsum[847] (0.0, 0)\n    test 177 residual: 0\n    test 178 is_exact: True\n    test 179 Fsum: -1.9453763248695655\n    test 180 Fsum: -1.9453763248695655\n\n    test 181 fsum: 4.161773385984235e-09\n    test 182 sum13: 0.0  FAILED, KNOWN, expected 4.161773385984235e-09\n    test 183 pow(4): Fsum[23] pow(2.99995e-34, -1.62273e-50)\n    test 184 pow(1): Fsum[842] pow(4.16177e-09, -5.2347e-26)\n    test 185 pow(0): Fsum[1] pow(1.0, 0)\n    test 186 ceil: True\n    test 187 floor: True\n    test 188 divmod: Fsum[846] (0.0, 0)\n    test 189 residual: 0\n    test 190 is_exact: True\n    test 191 Fsum: 4.161773385984235e-09\n    test 192 Fsum: 4.161773385984235e-09\n\n    test 193 fsum: -5.330669493335932e-08\n    test 194 sum14: 0.0  FAILED, KNOWN, expected -5.330669493335932e-08\n    test 195 pow(4): Fsum[40] pow(8.07471e-30, -6.13932e-46)\n    test 196 pow(1): Fsum[842] pow(-5.33067e-08, 1.37312e-24)\n    test 197 pow(0): Fsum[1] pow(1.0, 0)\n    test 198 ceil: True\n    test 199 floor: True\n    test 200 divmod: Fsum[851] (0.0, 0)\n    test 201 residual: 0\n    test 202 is_exact: True\n    test 203 Fsum: -5.330669493335932e-08\n    test 204 Fsum: -5.330669493335932e-08\n\n    test 205 fsum: -6.4410389150402375e-09\n    test 206 sum15: 0.0  FAILED, KNOWN, expected -6.4410389150402375e-09\n    test 207 pow(4): Fsum[22] pow(1.72117e-33, -4.5197e-50)\n    test 208 pow(1): Fsum[842] pow(-6.44104e-09, -2.62447e-25)\n    test 209 pow(0): Fsum[1] pow(1.0, 0)\n    test 210 ceil: True\n    test 211 floor: True\n    test 212 divmod: Fsum[846] (0.0, 0)\n    test 213 residual: 0\n    test 214 is_exact: True\n    test 215 Fsum: -6.4410389150402375e-09\n    test 216 Fsum: -6.4410389150402375e-09\n\n    test 217 fsum: -100.70449671778515\n    test 218 sum16: -114.70449671778545  FAILED, KNOWN, expected -100.70449671778515\n    test 219 pow(4): Fsum[47] pow(1.02848e+08, -7.80444e-10)\n    test 220 pow(1): Fsum[842] pow(-100.704, 6.85494e-15)\n    test 221 pow(0): Fsum[1] pow(1.0, 0)\n    test 222 ceil: True\n    test 223 floor: True\n    test 224 divmod: Fsum[851] (0.0, 0)\n    test 225 residual: 0\n    test 226 is_exact: True\n    test 227 Fsum: -100.70449671778515\n    test 228 Fsum: -100.70449671778515\n\n    test 229 fsum: 0.031430096586523674\n    test 230 sum17: 14.031430096586924  FAILED, KNOWN, expected 0.031430096586523674\n    test 231 pow(4): Fsum[46] pow(9.7585e-07, -9.07106e-24)\n    test 232 pow(1): Fsum[842] pow(0.0314301, 3.07914e-18)\n    test 233 pow(0): Fsum[1] pow(1.0, 0)\n    test 234 ceil: True\n    test 235 floor: True\n    test 236 divmod: Fsum[853] (0.0, 0)\n    test 237 residual: 0\n    test 238 is_exact: True\n    test 239 Fsum: 0.031430096586523674\n    test 240 Fsum: 0.031430096586523674\n\n    test 241 fsum: 4.749236242624645e-07\n    test 242 sum18: 21.000000474922864  FAILED, KNOWN, expected 4.749236242624645e-07\n    test 243 pow(4): Fsum[40] pow(5.08739e-26, 1.39809e-42)\n    test 244 pow(1): Fsum[842] pow(4.74924e-07, -1.8261e-24)\n    test 245 pow(0): Fsum[1] pow(1.0, 0)\n    test 246 ceil: True\n    test 247 floor: True\n    test 248 divmod: Fsum[848] (0.0, 0)\n    test 249 residual: 0\n    test 250 is_exact: True\n    test 251 Fsum: 4.749236242624645e-07\n    test 252 Fsum: 4.749236242624645e-07\n\n    test 253 fsum: 4.020975754301224e-09\n    test 254 sum19: 0.0  FAILED, KNOWN, expected 4.020975754301224e-09\n    test 255 pow(4): Fsum[23] pow(2.61412e-34, 1.54533e-50)\n    test 256 pow(1): Fsum[842] pow(4.02098e-09, 3.15474e-25)\n    test 257 pow(0): Fsum[1] pow(1.0, 0)\n    test 258 ceil: True\n    test 259 floor: True\n    test 260 divmod: Fsum[846] (0.0, 0)\n    test 261 residual: 0\n    test 262 is_exact: True\n    test 263 Fsum: 4.020975754301224e-09\n    test 264 Fsum: 4.020975754301224e-09\n\n    test 265 fsum: 0.048270757278626016\n    test 266 sum20: -6.95172924272201  FAILED, KNOWN, expected 0.048270757278626016\n    test 267 pow(4): Fsum[48] pow(5.42921e-06, 2.03035e-22)\n    test 268 pow(1): Fsum[842] pow(0.0482708, -2.89109e-18)\n    test 269 pow(0): Fsum[1] pow(1.0, 0)\n    test 270 ceil: True\n    test 271 floor: True\n    test 272 divmod: Fsum[849] (0.0, 0)\n    test 273 residual: 0\n    test 274 is_exact: True\n    test 275 Fsum: 0.048270757278626016\n    test 276 Fsum: 0.048270757278626016\n\n    test 277 fsum: 1.2425017682661341e-09\n    test 278 sum21: -13.999999998757396  FAILED, KNOWN, expected 1.2425017682661341e-09\n    test 279 pow(4): Fsum[21] pow(2.38335e-36, -8.97596e-53)\n    test 280 pow(1): Fsum[842] pow(1.2425e-09, -7.95438e-26)\n    test 281 pow(0): Fsum[1] pow(1.0, 0)\n    test 282 ceil: True\n    test 283 floor: True\n    test 284 divmod: Fsum[847] (0.0, 0)\n    test 285 residual: 0\n    test 286 is_exact: True\n    test 287 Fsum: 1.2425017682661341e-09\n    test 288 Fsum: 1.2425017682661341e-09\n\n    test 289 fsum: -1.8530858503343324e-06\n    test 290 sum22: 13.999998146914375  FAILED, KNOWN, expected -1.8530858503343324e-06\n    test 291 pow(4): Fsum[28] pow(1.17919e-23, 7.1125e-40)\n    test 292 pow(1): Fsum[842] pow(-1.85309e-06, -1.00107e-23)\n    test 293 pow(0): Fsum[1] pow(1.0, 0)\n    test 294 ceil: True\n    test 295 floor: True\n    test 296 divmod: Fsum[847] (0.0, 0)\n    test 297 residual: 0\n    test 298 is_exact: True\n    test 299 Fsum: -1.8530858503343324e-06\n    test 300 Fsum: -1.8530858503343324e-06\n\n    test 301 fsum: -4.916695735069353e-09\n    test 302 sum23: 0.0  FAILED, KNOWN, expected -4.916695735069353e-09\n    test 303 pow(4): Fsum[26] pow(5.84377e-34, -2.28233e-50)\n    test 304 pow(1): Fsum[842] pow(-4.9167e-09, -2.81786e-25)\n    test 305 pow(0): Fsum[1] pow(1.0, 0)\n    test 306 ceil: True\n    test 307 floor: True\n    test 308 divmod: Fsum[849] (0.0, 0)\n    test 309 residual: 0\n    test 310 is_exact: True\n    test 311 Fsum: -4.916695735069353e-09\n    test 312 Fsum: -4.916695735069353e-09\n\n    test 313 fsum: 0.006121711945771237\n    test 314 sum24: 7.006121711946501  FAILED, KNOWN, expected 0.006121711945771237\n    test 315 pow(4): Fsum[31] pow(1.4044e-09, -4.91356e-26)\n    test 316 pow(1): Fsum[842] pow(0.00612171, -4.08653e-19)\n    test 317 pow(0): Fsum[1] pow(1.0, 0)\n    test 318 ceil: True\n    test 319 floor: True\n    test 320 divmod: Fsum[849] (0.0, 0)\n    test 321 residual: 0\n    test 322 is_exact: True\n    test 323 Fsum: 0.006121711945771237\n    test 324 Fsum: 0.006121711945771237\n\n    test 325 fsum: 4.220812132230373e-06\n    test 326 sum25: 0.0  FAILED, KNOWN, expected 4.220812132230373e-06\n    test 327 pow(4): Fsum[35] pow(3.17383e-22, 1.41457e-38)\n    test 328 pow(1): Fsum[842] pow(4.22081e-06, 1.93379e-22)\n    test 329 pow(0): Fsum[1] pow(1.0, 0)\n    test 330 ceil: True\n    test 331 floor: True\n    test 332 divmod: Fsum[850] (0.0, 0)\n    test 333 residual: 0\n    test 334 is_exact: True\n    test 335 Fsum: 4.220812132230373e-06\n    test 336 Fsum: 4.220812132230373e-06\n\n    test 337 fsum: 8.867746101512408e-13\n    test 338 sum26: 0.0  FAILED, KNOWN, expected 8.867746101512408e-13\n    test 339 pow(4): Fsum[14] pow(6.18377e-49, -1.97301e-65)\n    test 340 pow(1): Fsum[842] pow(8.86775e-13, -4.73128e-29)\n    test 341 pow(0): Fsum[1] pow(1.0, 0)\n    test 342 ceil: True\n    test 343 floor: True\n    test 344 divmod: Fsum[845] (0.0, 0)\n    test 345 residual: 0\n    test 346 is_exact: True\n    test 347 Fsum: 8.867746101512408e-13\n    test 348 Fsum: 8.867746101512408e-13\n\n    test 349 fsum: -6.398629890964825e-08\n    test 350 sum27: 0.0  FAILED, KNOWN, expected -6.398629890964825e-08\n    test 351 pow(4): Fsum[29] pow(1.67629e-29, 6.7953e-46)\n    test 352 pow(1): Fsum[842] pow(-6.39863e-08, -6.52054e-24)\n    test 353 pow(0): Fsum[1] pow(1.0, 0)\n    test 354 ceil: True\n    test 355 floor: True\n    test 356 divmod: Fsum[847] (0.0, 0)\n    test 357 residual: 0\n    test 358 is_exact: True\n    test 359 Fsum: -6.398629890964825e-08\n    test 360 Fsum: -6.398629890964825e-08\n\n    test 361 fsum: -0.17897224932807945\n    test 362 sum28: 0.0  FAILED, KNOWN, expected -0.17897224932807945\n    test 363 pow(4): Fsum[40] pow(0.00102599, -8.96384e-20)\n    test 364 pow(1): Fsum[842] pow(-0.178972, 9.98442e-18)\n    test 365 pow(0): Fsum[1] pow(1.0, 0)\n    test 366 ceil: True\n    test 367 floor: True\n    test 368 divmod: Fsum[849] (0.0, 0)\n    test 369 residual: 0\n    test 370 is_exact: True\n    test 371 Fsum: -0.17897224932807945\n    test 372 Fsum: -0.17897224932807945\n\n    test 373 fsum: 5.7855200966644714e-05\n    test 374 sum29: 0.0  FAILED, KNOWN, expected 5.7855200966644714e-05\n    test 375 pow(4): Fsum[32] pow(1.12039e-17, -3.07461e-34)\n    test 376 pow(1): Fsum[842] pow(5.78552e-05, -1.28468e-21)\n    test 377 pow(0): Fsum[1] pow(1.0, 0)\n    test 378 ceil: True\n    test 379 floor: True\n    test 380 divmod: Fsum[848] (0.0, 0)\n    test 381 residual: 0\n    test 382 is_exact: True\n    test 383 Fsum: 5.7855200966644714e-05\n    test 384 Fsum: 5.7855200966644714e-05\n\n    test 385 fsum: -0.1696709590636187\n    test 386 sum30: 0.0  FAILED, KNOWN, expected -0.1696709590636187\n    test 387 pow(4): Fsum[47] pow(0.000828762, 1.4922e-20)\n    test 388 pow(1): Fsum[842] pow(-0.169671, 8.42014e-18)\n    test 389 pow(0): Fsum[1] pow(1.0, 0)\n    test 390 ceil: True\n    test 391 floor: True\n    test 392 divmod: Fsum[851] (0.0, 0)\n    test 393 residual: 0\n    test 394 is_exact: True\n    test 395 Fsum: -0.1696709590636187\n    test 396 Fsum: -0.1696709590636187\n\n    test 397 fsum: -0.012598183978412492\n    test 398 sum31: 0.0  FAILED, KNOWN, expected -0.012598183978412492\n    test 399 pow(4): Fsum[43] pow(2.51902e-08, 1.6108e-25)\n    test 400 pow(1): Fsum[842] pow(-0.0125982, -6.63642e-19)\n    test 401 pow(0): Fsum[1] pow(1.0, 0)\n    test 402 ceil: True\n    test 403 floor: True\n    test 404 divmod: Fsum[849] (0.0, 0)\n    test 405 residual: 0\n    test 406 is_exact: True\n    test 407 Fsum: -0.012598183978412492\n    test 408 Fsum: -0.012598183978412492\n\n    test 409 fsum: 3.093510407095073e-12\n    test 410 sum32: 0.0  FAILED, KNOWN, expected 3.093510407095073e-12\n    test 411 pow(4): Fsum[17] pow(9.15812e-47, -1.12933e-64)\n    test 412 pow(1): Fsum[842] pow(3.09351e-12, -1.4592e-28)\n    test 413 pow(0): Fsum[1] pow(1.0, 0)\n    test 414 ceil: True\n    test 415 floor: True\n    test 416 divmod: Fsum[847] (0.0, 0)\n    test 417 residual: 0\n    test 418 is_exact: True\n    test 419 Fsum: 3.093510407095073e-12\n    test 420 Fsum: 3.093510407095073e-12\n\n    test 421 fsum: 0.0017197856474203425\n    test 422 sum33: -6.99828021435249  FAILED, KNOWN, expected 0.0017197856474203425\n    test 423 pow(4): Fsum[35] pow(8.74777e-12, -4.52575e-28)\n    test 424 pow(1): Fsum[842] pow(0.00171979, 5.34528e-20)\n    test 425 pow(0): Fsum[1] pow(1.0, 0)\n    test 426 ceil: True\n    test 427 floor: True\n    test 428 divmod: Fsum[848] (0.0, 0)\n    test 429 residual: 0\n    test 430 is_exact: True\n    test 431 Fsum: 0.0017197856474203425\n    test 432 Fsum: 0.0017197856474203425\n\n    test 433 fsum: -0.2959541337937912\n    test 434 sum34: 0.0  FAILED, KNOWN, expected -0.2959541337937912\n    test 435 pow(4): Fsum[46] pow(0.00767181, -2.77125e-19)\n    test 436 pow(1): Fsum[842] pow(-0.295954, 6.44717e-18)\n    test 437 pow(0): Fsum[1] pow(1.0, 0)\n    test 438 ceil: True\n    test 439 floor: True\n    test 440 divmod: Fsum[851] (0.0, 0)\n    test 441 residual: 0\n    test 442 is_exact: True\n    test 443 Fsum: -0.2959541337937912\n    test 444 Fsum: -0.2959541337937912\n\n    test 445 fsum: 1.1234860549063546e-09\n    test 446 sum35: 0.0  FAILED, KNOWN, expected 1.1234860549063546e-09\n    test 447 pow(4): Fsum[21] pow(1.5932e-36, 5.49567e-53)\n    test 448 pow(1): Fsum[842] pow(1.12349e-09, 2.18605e-26)\n    test 449 pow(0): Fsum[1] pow(1.0, 0)\n    test 450 ceil: True\n    test 451 floor: True\n    test 452 divmod: Fsum[845] (0.0, 0)\n    test 453 residual: 0\n    test 454 is_exact: True\n    test 455 Fsum: 1.1234860549063546e-09\n    test 456 Fsum: 1.1234860549063546e-09\n\n    test 457 fsum: 3.0216063258744465e-09\n    test 458 sum36: 42.00000000302131  FAILED, KNOWN, expected 3.0216063258744465e-09\n    test 459 pow(4): Fsum[27] pow(8.33588e-35, -2.21935e-51)\n    test 460 pow(1): Fsum[842] pow(3.02161e-09, 1.76e-25)\n    test 461 pow(0): Fsum[1] pow(1.0, 0)\n    test 462 ceil: True\n    test 463 floor: True\n    test 464 divmod: Fsum[848] (0.0, 0)\n    test 465 residual: 0\n    test 466 is_exact: True\n    test 467 Fsum: 3.0216063258744465e-09\n    test 468 Fsum: 3.0216063258744465e-09\n\n    test 469 fsum: -40.38391063402946\n    test 470 sum37: -19.383910634030144  FAILED, KNOWN, expected -40.38391063402946\n    test 471 pow(4): Fsum[43] pow(2.65971e+06, -1.14693e-10)\n    test 472 pow(1): Fsum[842] pow(-40.3839, -1.00384e-15)\n    test 473 pow(0): Fsum[1] pow(1.0, 0)\n    test 474 ceil: True\n    test 475 floor: True\n    test 476 divmod: Fsum[848] (0.0, 0)\n    test 477 residual: 0\n    test 478 is_exact: True\n    test 479 Fsum: -40.38391063402946\n    test 480 Fsum: -40.38391063402946\n\n    test 481 fsum: -8.315323065039467e-09\n    test 482 sum38: -21.00000000831581  FAILED, KNOWN, expected -8.315323065039467e-09\n    test 483 pow(4): Fsum[23] pow(4.78098e-33, -3.13806e-50)\n    test 484 pow(1): Fsum[842] pow(-8.31532e-09, -7.87767e-25)\n    test 485 pow(0): Fsum[1] pow(1.0, 0)\n    test 486 ceil: True\n    test 487 floor: True\n    test 488 divmod: Fsum[848] (0.0, 0)\n    test 489 residual: 0\n    test 490 is_exact: True\n    test 491 Fsum: -8.315323065039467e-09\n    test 492 Fsum: -8.315323065039467e-09\n\n    test 493 fsum: 0.00025425233271824874\n    test 494 sum39: -6.999745747667447  FAILED, KNOWN, expected 0.00025425233271824874\n    test 495 pow(4): Fsum[43] pow(4.17888e-15, 1.21236e-31)\n    test 496 pow(1): Fsum[842] pow(0.000254252, -1.33013e-20)\n    test 497 pow(0): Fsum[1] pow(1.0, 0)\n    test 498 ceil: True\n    test 499 floor: True\n    test 500 divmod: Fsum[848] (0.0, 0)\n    test 501 residual: 0\n    test 502 is_exact: True\n    test 503 Fsum: 0.00025425233271824874\n    test 504 Fsum: 0.00025425233271824874\n\n    test 505 fsum: 0.010596031823027785\n    test 506 sum40: 0.0  FAILED, KNOWN, expected 0.010596031823027785\n    test 507 pow(4): Fsum[40] pow(1.26059e-08, 3.63943e-25)\n    test 508 pow(1): Fsum[842] pow(0.010596, 8.02159e-19)\n    test 509 pow(0): Fsum[1] pow(1.0, 0)\n    test 510 ceil: True\n    test 511 floor: True\n    test 512 divmod: Fsum[847] (0.0, 0)\n    test 513 residual: 0\n    test 514 is_exact: True\n    test 515 Fsum: 0.010596031823027785\n    test 516 Fsum: 0.010596031823027785\n\n    test 517 fsum: 7.833592181697467e-09\n    test 518 sum41: 7.000000007833364  FAILED, KNOWN, expected 7.833592181697467e-09\n    test 519 pow(4): Fsum[26] pow(3.76568e-33, 1.40079e-49)\n    test 520 pow(1): Fsum[842] pow(7.83359e-09, -7.43605e-26)\n    test 521 pow(0): Fsum[1] pow(1.0, 0)\n    test 522 ceil: True\n    test 523 floor: True\n    test 524 divmod: Fsum[846] (0.0, 0)\n    test 525 residual: 0\n    test 526 is_exact: True\n    test 527 Fsum: 7.833592181697467e-09\n    test 528 Fsum: 7.833592181697467e-09\n\n    test 529 fsum: 6.610846222782073e-13\n    test 530 sum42: 14.000000000000867  FAILED, KNOWN, expected 6.610846222782073e-13\n    test 531 pow(4): Fsum[12] pow(1.90998e-49, -1.46724e-65)\n    test 532 pow(1): Fsum[842] pow(6.61085e-13, 4.14257e-29)\n    test 533 pow(0): Fsum[1] pow(1.0, 0)\n    test 534 ceil: True\n    test 535 floor: True\n    test 536 divmod: Fsum[844] (0.0, 0)\n    test 537 residual: 0\n    test 538 is_exact: True\n    test 539 Fsum: 6.610846222782073e-13\n    test 540 Fsum: 6.610846222782073e-13\n\n    test 541 fsum: -0.0061295368005402735\n    test 542 sum43: 0.0  FAILED, KNOWN, expected -0.0061295368005402735\n    test 543 pow(4): Fsum[21] pow(1.4116e-09, 2.25116e-26)\n    test 544 pow(1): Fsum[842] pow(-0.00612954, -3.65373e-19)\n    test 545 pow(0): Fsum[1] pow(1.0, 0)\n    test 546 ceil: True\n    test 547 floor: True\n    test 548 divmod: Fsum[846] (0.0, 0)\n    test 549 residual: 0\n    test 550 is_exact: True\n    test 551 Fsum: -0.0061295368005402735\n    test 552 Fsum: -0.0061295368005402735\n\n    test 553 fsum: 7.515207385115806e-05\n    test 554 sum44: 0.0  FAILED, KNOWN, expected 7.515207385115806e-05\n    test 555 pow(4): Fsum[33] pow(3.1898e-17, -1.42121e-33)\n    test 556 pow(1): Fsum[842] pow(7.51521e-05, -1.86692e-21)\n    test 557 pow(0): Fsum[1] pow(1.0, 0)\n    test 558 ceil: True\n    test 559 floor: True\n    test 560 divmod: Fsum[849] (0.0, 0)\n    test 561 residual: 0\n    test 562 is_exact: True\n    test 563 Fsum: 7.515207385115806e-05\n    test 564 Fsum: 7.515207385115806e-05\n\n    test 565 fsum: -0.003654295215608957\n    test 566 sum45: 6.996345704782144  FAILED, KNOWN, expected -0.003654295215608957\n    test 567 pow(4): Fsum[37] pow(1.78326e-10, -6.45194e-27)\n    test 568 pow(1): Fsum[842] pow(-0.0036543, -1.28938e-19)\n    test 569 pow(0): Fsum[1] pow(1.0, 0)\n    test 570 ceil: True\n    test 571 floor: True\n    test 572 divmod: Fsum[850] (0.0, 0)\n    test 573 residual: 0\n    test 574 is_exact: True\n    test 575 Fsum: -0.003654295215608957\n    test 576 Fsum: -0.003654295215608957\n\n    test 577 fsum: -1.5402369794874465e-07\n    test 578 sum46: -7.000000154023212  FAILED, KNOWN, expected -1.5402369794874465e-07\n    test 579 pow(4): Fsum[17] pow(5.62795e-28, 1.65807e-44)\n    test 580 pow(1): Fsum[842] pow(-1.54024e-07, 8.44467e-24)\n    test 581 pow(0): Fsum[1] pow(1.0, 0)\n    test 582 ceil: True\n    test 583 floor: True\n    test 584 divmod: Fsum[847] (0.0, 0)\n    test 585 residual: 0\n    test 586 is_exact: True\n    test 587 Fsum: -1.5402369794874465e-07\n    test 588 Fsum: -1.5402369794874465e-07\n\n    test 589 fsum: 0.0031351073041314135\n    test 590 sum47: -20.996864892696124  FAILED, KNOWN, expected 0.0031351073041314135\n    test 591 pow(4): Fsum[34] pow(9.66072e-11, 1.76042e-27)\n    test 592 pow(1): Fsum[842] pow(0.00313511, 1.16991e-19)\n    test 593 pow(0): Fsum[1] pow(1.0, 0)\n    test 594 ceil: True\n    test 595 floor: True\n    test 596 divmod: Fsum[849] (0.0, 0)\n    test 597 residual: 0\n    test 598 is_exact: True\n    test 599 Fsum: 0.0031351073041314135\n    test 600 Fsum: 0.0031351073041314135\n\n    test 601 fsum: -1.0195462358526644e-12\n    test 602 sum48: 0.0  FAILED, KNOWN, expected -1.0195462358526644e-12\n    test 603 pow(4): Fsum[17] pow(1.08051e-48, -1.76047e-65)\n    test 604 pow(1): Fsum[842] pow(-1.01955e-12, -3.41487e-29)\n    test 605 pow(0): Fsum[1] pow(1.0, 0)\n    test 606 ceil: True\n    test 607 floor: True\n    test 608 divmod: Fsum[847] (0.0, 0)\n    test 609 residual: 0\n    test 610 is_exact: True\n    test 611 Fsum: -1.0195462358526644e-12\n    test 612 Fsum: -1.0195462358526644e-12\n\n    test 613 fsum: -2.762699041302757\n    test 614 sum49: 0.0  FAILED, KNOWN, expected -2.762699041302757\n    test 615 pow(4): Fsum[51] pow(58.2551, -2.32244e-15)\n    test 616 pow(1): Fsum[842] pow(-2.7627, -2.8164e-17)\n    test 617 pow(0): Fsum[1] pow(1.0, 0)\n    test 618 ceil: True\n    test 619 floor: True\n    test 620 divmod: Fsum[851] (0.0, 0)\n    test 621 residual: 0\n    test 622 is_exact: True\n    test 623 Fsum: -2.762699041302757\n    test 624 Fsum: -2.762699041302757\n\n    test 625 fsum: -0.004373577971488287\n    test 626 sum50: 0.0  FAILED, KNOWN, expected -0.004373577971488287\n    test 627 pow(4): Fsum[48] pow(3.65887e-10, -1.55116e-26)\n    test 628 pow(1): Fsum[842] pow(-0.00437358, -6.81992e-20)\n    test 629 pow(0): Fsum[1] pow(1.0, 0)\n    test 630 ceil: True\n    test 631 floor: True\n    test 632 divmod: Fsum[850] (0.0, 0)\n    test 633 residual: 0\n    test 634 is_exact: True\n    test 635 Fsum: -0.004373577971488287\n    test 636 Fsum: -0.004373577971488287\n\n    test 637 fsum: -1.5970499450308288e-05\n    test 638 sum51: 0.0  FAILED, KNOWN, expected -1.5970499450308288e-05\n    test 639 pow(4): Fsum[34] pow(6.5054e-20, 2.00273e-36)\n    test 640 pow(1): Fsum[842] pow(-1.59705e-05, -4.34169e-22)\n    test 641 pow(0): Fsum[1] pow(1.0, 0)\n    test 642 ceil: True\n    test 643 floor: True\n    test 644 divmod: Fsum[850] (0.0, 0)\n    test 645 residual: 0\n    test 646 is_exact: True\n    test 647 Fsum: -1.5970499450308288e-05\n    test 648 Fsum: -1.5970499450308288e-05\n\n    test 649 fsum: 0.032100297320307135\n    test 650 sum52: 0.0  FAILED, KNOWN, expected 0.032100297320307135\n    test 651 pow(4): Fsum[33] pow(1.06178e-06, 3.51272e-24)\n    test 652 pow(1): Fsum[842] pow(0.0321003, 1.23842e-18)\n    test 653 pow(0): Fsum[1] pow(1.0, 0)\n    test 654 ceil: True\n    test 655 floor: True\n    test 656 divmod: Fsum[849] (0.0, 0)\n    test 657 residual: 0\n    test 658 is_exact: True\n    test 659 Fsum: 0.032100297320307135\n    test 660 Fsum: 0.032100297320307135\n\n    test 661 fsum: -0.0014902560786330264\n    test 662 sum53: 0.0  FAILED, KNOWN, expected -0.0014902560786330264\n    test 663 pow(4): Fsum[38] pow(4.93223e-12, -5.12988e-29)\n    test 664 pow(1): Fsum[842] pow(-0.00149026, 1.02621e-19)\n    test 665 pow(0): Fsum[1] pow(1.0, 0)\n    test 666 ceil: True\n    test 667 floor: True\n    test 668 divmod: Fsum[848] (0.0, 0)\n    test 669 residual: 0\n    test 670 is_exact: True\n    test 671 Fsum: -0.0014902560786330264\n    test 672 Fsum: -0.0014902560786330264\n\n    test 673 fsum: -6.93260830709721e-07\n    test 674 sum54: 0.0  FAILED, KNOWN, expected -6.93260830709721e-07\n    test 675 pow(4): Fsum[20] pow(2.30987e-25, -1.94477e-41)\n    test 676 pow(1): Fsum[842] pow(-6.93261e-07, 1.07769e-23)\n    test 677 pow(0): Fsum[1] pow(1.0, 0)\n    test 678 ceil: True\n    test 679 floor: True\n    test 680 divmod: Fsum[847] (0.0, 0)\n    test 681 residual: 0\n    test 682 is_exact: True\n    test 683 Fsum: -6.93260830709721e-07\n    test 684 Fsum: -6.93260830709721e-07\n\n    test 685 fsum: 2.9080913265077775e-14\n    test 686 sum55: 0.0  FAILED, KNOWN, expected 2.9080913265077775e-14\n    test 687 pow(4): Fsum[22] pow(7.15208e-55, 1.38481e-71)\n    test 688 pow(1): Fsum[842] pow(2.90809e-14, -2.36504e-30)\n    test 689 pow(0): Fsum[1] pow(1.0, 0)\n    test 690 ceil: True\n    test 691 floor: True\n    test 692 divmod: Fsum[848] (0.0, 0)\n    test 693 residual: 0\n    test 694 is_exact: True\n    test 695 Fsum: 2.9080913265077775e-14\n    test 696 Fsum: 2.9080913265077775e-14\n\n    test 697 fsum: -5.3637224787681174e-08\n    test 698 sum56: 13.999999946363232  FAILED, KNOWN, expected -5.3637224787681174e-08\n    test 699 pow(4): Fsum[27] pow(8.27685e-30, 1.57615e-46)\n    test 700 pow(1): Fsum[842] pow(-5.36372e-08, -6.77893e-25)\n    test 701 pow(0): Fsum[1] pow(1.0, 0)\n    test 702 ceil: True\n    test 703 floor: True\n    test 704 divmod: Fsum[849] (0.0, 0)\n    test 705 residual: 0\n    test 706 is_exact: True\n    test 707 Fsum: -5.3637224787681174e-08\n    test 708 Fsum: -5.3637224787681174e-08\n\n    test 709 fsum: -0.4665950454344666\n    test 710 sum57: 6.533404954565597  FAILED, KNOWN, expected -0.4665950454344666\n    test 711 pow(4): Fsum[37] pow(0.0473981, 4.66047e-19)\n    test 712 pow(1): Fsum[842] pow(-0.466595, 2.28423e-17)\n    test 713 pow(0): Fsum[1] pow(1.0, 0)\n    test 714 ceil: True\n    test 715 floor: True\n    test 716 divmod: Fsum[849] (0.0, 0)\n    test 717 residual: 0\n    test 718 is_exact: True\n    test 719 Fsum: -0.4665950454344666\n    test 720 Fsum: -0.4665950454344666\n\n    test 721 fsum: -1.097912213493587\n    test 722 sum58: 33.90208778650687  FAILED, KNOWN, expected -1.097912213493587\n    test 723 pow(4): Fsum[55] pow(1.45302, 1.00912e-16)\n    test 724 pow(1): Fsum[842] pow(-1.09791, 5.96349e-18)\n    test 725 pow(0): Fsum[1] pow(1.0, 0)\n    test 726 ceil: True\n    test 727 floor: True\n    test 728 divmod: Fsum[851] (0.0, 0)\n    test 729 residual: 0\n    test 730 is_exact: True\n    test 731 Fsum: -1.097912213493587\n    test 732 Fsum: -1.097912213493587\n\n    test 733 fsum: 0.0008318527265511295\n    test 734 sum59: 14.000831852726346  FAILED, KNOWN, expected 0.0008318527265511295\n    test 735 pow(4): Fsum[32] pow(4.78835e-13, -2.74362e-29)\n    test 736 pow(1): Fsum[842] pow(0.000831853, 2.70689e-20)\n    test 737 pow(0): Fsum[1] pow(1.0, 0)\n    test 738 ceil: True\n    test 739 floor: True\n    test 740 divmod: Fsum[848] (0.0, 0)\n    test 741 residual: 0\n    test 742 is_exact: True\n    test 743 Fsum: 0.0008318527265511295\n    test 744 Fsum: 0.0008318527265511295\n\n    test 745 fsum: 2.0048130696662265\n    test 746 sum60: -11.995186930327211  FAILED, KNOWN, expected 2.0048130696662265\n    test 747 pow(4): Fsum[37] pow(16.1546, 2.0711e-16)\n    test 748 pow(1): Fsum[842] pow(2.00481, -1.77471e-17)\n    test 749 pow(0): Fsum[1] pow(1.0, 0)\n    test 750 ceil: True\n    test 751 floor: True\n    test 752 divmod: Fsum[849] (0.0, 0)\n    test 753 residual: 0\n    test 754 is_exact: True\n    test 755 Fsum: 2.0048130696662265\n    test 756 Fsum: 2.0048130696662265\n\n    test 757 fsum: -8.91303377980622e-08\n    test 758 sum61: -8.912970184127289e-08  FAILED, KNOWN, expected -8.91303377980622e-08\n    test 759 pow(4): Fsum[17] pow(6.31106e-29, -4.66422e-45)\n    test 760 pow(1): Fsum[842] pow(-8.91303e-08, 4.34956e-24)\n    test 761 pow(0): Fsum[1] pow(1.0, 0)\n    test 762 ceil: True\n    test 763 floor: True\n    test 764 divmod: Fsum[846] (0.0, 0)\n    test 765 residual: 0\n    test 766 is_exact: True\n    test 767 Fsum: -8.91303377980622e-08\n    test 768 Fsum: -8.91303377980622e-08\n\n    test 769 fsum: -1.0430211818701006e-08\n    test 770 sum62: -7.000000010429346  FAILED, KNOWN, expected -1.0430211818701006e-08\n    test 771 pow(4): Fsum[25] pow(1.18351e-32, 5.56889e-49)\n    test 772 pow(1): Fsum[842] pow(-1.04302e-08, 5.94016e-25)\n    test 773 pow(0): Fsum[1] pow(1.0, 0)\n    test 774 ceil: True\n    test 775 floor: True\n    test 776 divmod: Fsum[848] (0.0, 0)\n    test 777 residual: 0\n    test 778 is_exact: True\n    test 779 Fsum: -1.0430211818701006e-08\n    test 780 Fsum: -1.0430211818701006e-08\n\n    test 781 fsum: 1.2492275836146128e-14\n    test 782 sum63: 13.99999999999882  FAILED, KNOWN, expected 1.2492275836146128e-14\n    test 783 pow(4): Fsum[29] pow(2.43538e-56, -3.40779e-73)\n    test 784 pow(1): Fsum[842] pow(1.24923e-14, -4.40539e-31)\n    test 785 pow(0): Fsum[1] pow(1.0, 0)\n    test 786 ceil: True\n    test 787 floor: True\n    test 788 divmod: Fsum[850] (0.0, 0)\n    test 789 residual: 0\n    test 790 is_exact: True\n    test 791 Fsum: 1.2492275836146128e-14\n    test 792 Fsum: 1.2492275836146128e-14\n\n    test 793 fsum: 1.2779036473104664e-08\n    test 794 sum64: 14.00000001277921  FAILED, KNOWN, expected 1.2779036473104664e-08\n    test 795 pow(4): Fsum[30] pow(2.66681e-32, -2.21257e-48)\n    test 796 pow(1): Fsum[842] pow(1.2779e-08, 3.69114e-25)\n    test 797 pow(0): Fsum[1] pow(1.0, 0)\n    test 798 ceil: True\n    test 799 floor: True\n    test 800 divmod: Fsum[848] (0.0, 0)\n    test 801 residual: 0\n    test 802 is_exact: True\n    test 803 Fsum: 1.2779036473104664e-08\n    test 804 Fsum: 1.2779036473104664e-08\n\n    test 805 fsum: 0.04191632620812525\n    test 806 sum65: 0.0  FAILED, KNOWN, expected 0.04191632620812525\n    test 807 pow(4): Fsum[34] pow(3.08697e-06, -1.28339e-22)\n    test 808 pow(1): Fsum[842] pow(0.0419163, -2.09349e-19)\n    test 809 pow(0): Fsum[1] pow(1.0, 0)\n    test 810 ceil: True\n    test 811 floor: True\n    test 812 divmod: Fsum[848] (0.0, 0)\n    test 813 residual: 0\n    test 814 is_exact: True\n    test 815 Fsum: 0.04191632620812525\n    test 816 Fsum: 0.04191632620812525\n\n    test 817 fsum: 3.5267358478583304e-07\n    test 818 sum66: 0.0  FAILED, KNOWN, expected 3.5267358478583304e-07\n    test 819 pow(4): Fsum[16] pow(1.54701e-26, -4.41296e-43)\n    test 820 pow(1): Fsum[842] pow(3.52674e-07, 1.05929e-23)\n    test 821 pow(0): Fsum[1] pow(1.0, 0)\n    test 822 ceil: True\n    test 823 floor: True\n    test 824 divmod: Fsum[845] (0.0, 0)\n    test 825 residual: 0\n    test 826 is_exact: True\n    test 827 Fsum: 3.5267358478583304e-07\n    test 828 Fsum: 3.5267358478583304e-07\n\n    test 829 fsum: -3.252533092497974e-05\n    test 830 sum67: -3.2525331205235375e-05  FAILED, KNOWN, expected -3.252533092497974e-05\n    test 831 pow(4): Fsum[37] pow(1.11915e-18, 6.16139e-35)\n    test 832 pow(1): Fsum[842] pow(-3.25253e-05, -2.32756e-21)\n    test 833 pow(0): Fsum[1] pow(1.0, 0)\n    test 834 ceil: True\n    test 835 floor: True\n    test 836 divmod: Fsum[850] (0.0, 0)\n    test 837 residual: 0\n    test 838 is_exact: True\n    test 839 Fsum: -3.252533092497974e-05\n    test 840 Fsum: -3.252533092497974e-05\n\n    test 841 fsum: 165.34478448565338\n    test 842 sum68: 0.0  FAILED, KNOWN, expected 165.34478448565338\n    test 843 pow(4): Fsum[56] pow(7.47415e+08, 4.93484e-08)\n    test 844 pow(1): Fsum[842] pow(165.345, -6.4152e-15)\n    test 845 pow(0): Fsum[1] pow(1.0, 0)\n    test 846 ceil: True\n    test 847 floor: True\n    test 848 divmod: Fsum[853] (0.0, 0)\n    test 849 residual: 0\n    test 850 is_exact: True\n    test 851 Fsum: 165.34478448565338\n    test 852 Fsum: 165.34478448565338\n\n    test 853 fsum: -0.0001757526565796681\n    test 854 sum69: 0.0  FAILED, KNOWN, expected -0.0001757526565796681\n    test 855 pow(4): Fsum[32] pow(9.5413e-16, 1.40348e-32)\n    test 856 pow(1): Fsum[842] pow(-0.000175753, 5.39102e-21)\n    test 857 pow(0): Fsum[1] pow(1.0, 0)\n    test 858 ceil: True\n    test 859 floor: True\n    test 860 divmod: Fsum[850] (0.0, 0)\n    test 861 residual: 0\n    test 862 is_exact: True\n    test 863 Fsum: -0.0001757526565796681\n    test 864 Fsum: -0.0001757526565796681\n\n    test 865 fsum: -0.05553150797701166\n    test 866 sum70: 0.0  FAILED, KNOWN, expected -0.05553150797701166\n    test 867 pow(4): Fsum[58] pow(9.5095e-06, 4.39972e-22)\n    test 868 pow(1): Fsum[842] pow(-0.0555315, 1.80786e-18)\n    test 869 pow(0): Fsum[1] pow(1.0, 0)\n    test 870 ceil: True\n    test 871 floor: True\n    test 872 divmod: Fsum[852] (0.0, 0)\n    test 873 residual: 0\n    test 874 is_exact: True\n    test 875 Fsum: -0.05553150797701166\n    test 876 Fsum: -0.05553150797701166\n\n    test 877 fsum: 5.886312795661918e-05\n    test 878 sum71: 7.000058863129631  FAILED, KNOWN, expected 5.886312795661918e-05\n    test 879 pow(4): Fsum[36] pow(1.20053e-17, 5.83407e-34)\n    test 880 pow(1): Fsum[842] pow(5.88631e-05, -4.59058e-22)\n    test 881 pow(0): Fsum[1] pow(1.0, 0)\n    test 882 ceil: True\n    test 883 floor: True\n    test 884 divmod: Fsum[849] (0.0, 0)\n    test 885 residual: 0\n    test 886 is_exact: True\n    test 887 Fsum: 5.886312795661918e-05\n    test 888 Fsum: 5.886312795661918e-05\n\n    test 889 fsum: -0.00016888123419475597\n    test 890 sum72: -21.00016888123484  FAILED, KNOWN, expected -0.00016888123419475597\n    test 891 pow(4): Fsum[28] pow(8.1344e-16, -8.39452e-33)\n    test 892 pow(1): Fsum[842] pow(-0.000168881, 7.90085e-21)\n    test 893 pow(0): Fsum[1] pow(1.0, 0)\n    test 894 ceil: True\n    test 895 floor: True\n    test 896 divmod: Fsum[848] (0.0, 0)\n    test 897 residual: 0\n    test 898 is_exact: True\n    test 899 Fsum: -0.00016888123419475597\n    test 900 Fsum: -0.00016888123419475597\n\n    test 901 fsum: -1.4062586274292843e-08\n    test 902 sum73: 27.999999985935858  FAILED, KNOWN, expected -1.4062586274292843e-08\n    test 903 pow(4): Fsum[29] pow(3.91076e-32, -2.47068e-48)\n    test 904 pow(1): Fsum[842] pow(-1.40626e-08, 4.95379e-25)\n    test 905 pow(0): Fsum[1] pow(1.0, 0)\n    test 906 ceil: True\n    test 907 floor: True\n    test 908 divmod: Fsum[848] (0.0, 0)\n    test 909 residual: 0\n    test 910 is_exact: True\n    test 911 Fsum: -1.4062586274292843e-08\n    test 912 Fsum: -1.4062586274292843e-08\n\n    test 913 fsum: -0.01196513456467219\n    test 914 sum74: 27.988034865435623  FAILED, KNOWN, expected -0.01196513456467219\n    test 915 pow(4): Fsum[35] pow(2.04961e-08, 1.49577e-24)\n./test/testFsums.py:92: DeprecationWarning: function L{Fsum2product<pygeodesy.deprecated.functions.Fsum2product>} has been DEPRECATED on 2024.09.19, use L{Fsum}C{(*B{xs}, B{f2product}=True, ...)}.\n  a = Fsum(*t)\n    test 916 pow(1): Fsum[842] pow(-0.0119651, -4.93275e-20)\n    test 917 pow(0): Fsum[1] pow(1.0, 0)\n    test 918 ceil: True\n    test 919 floor: True\n    test 920 divmod: Fsum[852] (0.0, 0)\n    test 921 residual: 0\n    test 922 is_exact: True\n    test 923 Fsum: -0.01196513456467219\n    test 924 Fsum: -0.01196513456467219\n\n    test 925 fsum: -6.925513760895447e-07\n    test 926 sum75: 0.0  FAILED, KNOWN, expected -6.925513760895447e-07\n    test 927 pow(4): Fsum[34] pow(2.30042e-25, 6.53338e-42)\n    test 928 pow(1): Fsum[842] pow(-6.92551e-07, 1.41639e-23)\n    test 929 pow(0): Fsum[1] pow(1.0, 0)\n    test 930 ceil: True\n    test 931 floor: True\n    test 932 divmod: Fsum[849] (0.0, 0)\n    test 933 residual: 0\n    test 934 is_exact: True\n    test 935 Fsum: -6.925513760895447e-07\n    test 936 Fsum: -6.925513760895447e-07\n\n    test 937 fsum: 9.957524498585636e-06\n    test 938 sum76: 0.0  FAILED, KNOWN, expected 9.957524498585636e-06\n    test 939 pow(4): Fsum[37] pow(9.83118e-21, -1.4554e-37)\n    test 940 pow(1): Fsum[842] pow(9.95752e-06, -4.85105e-22)\n    test 941 pow(0): Fsum[1] pow(1.0, 0)\n    test 942 ceil: True\n    test 943 floor: True\n    test 944 divmod: Fsum[848] (0.0, 0)\n    test 945 residual: 0\n    test 946 is_exact: True\n    test 947 Fsum: 9.957524498585636e-06\n    test 948 Fsum: 9.957524498585636e-06\n\n    test 949 fsum: 0.0014631781981059653\n    test 950 sum77: 0.001463178199713866  FAILED, KNOWN, expected 0.0014631781981059653\n    test 951 pow(4): Fsum[38] pow(4.58341e-12, 1.61625e-28)\n    test 952 pow(1): Fsum[842] pow(0.00146318, -9.64519e-20)\n    test 953 pow(0): Fsum[1] pow(1.0, 0)\n    test 954 ceil: True\n    test 955 floor: True\n    test 956 divmod: Fsum[847] (0.0, 0)\n    test 957 residual: 0\n    test 958 is_exact: True\n    test 959 Fsum: 0.0014631781981059653\n    test 960 Fsum: 0.0014631781981059653\n\n    test 961 fsum: -5.992658029434769e-10\n    test 962 sum78: 0.0  FAILED, KNOWN, expected -5.992658029434769e-10\n    test 963 pow(4): Fsum[29] pow(1.28967e-37, 8.12815e-54)\n    test 964 pow(1): Fsum[842] pow(-5.99266e-10, 1.0121e-26)\n    test 965 pow(0): Fsum[1] pow(1.0, 0)\n    test 966 ceil: True\n    test 967 floor: True\n    test 968 divmod: Fsum[849] (0.0, 0)\n    test 969 residual: 0\n    test 970 is_exact: True\n    test 971 Fsum: -5.992658029434769e-10\n    test 972 Fsum: -5.992658029434769e-10\n\n    test 973 fsum: 0.016908889311496828\n    test 974 sum79: 0.0  FAILED, KNOWN, expected 0.016908889311496828\n    test 975 pow(4): Fsum[43] pow(8.17448e-08, -1.79158e-24)\n    test 976 pow(1): Fsum[842] pow(0.0169089, 4.89016e-19)\n    test 977 pow(0): Fsum[1] pow(1.0, 0)\n    test 978 ceil: True\n    test 979 floor: True\n    test 980 divmod: Fsum[851] (0.0, 0)\n    test 981 residual: 0\n    test 982 is_exact: True\n    test 983 Fsum: 0.016908889311496828\n    test 984 Fsum: 0.016908889311496828\n\n    test 985 fsum: -1.708398806013404\n    test 986 sum80: 5.291601193986246  FAILED, KNOWN, expected -1.708398806013404\n    test 987 pow(4): Fsum[43] pow(8.51838, 7.35711e-16)\n    test 988 pow(1): Fsum[842] pow(-1.7084, -1.71182e-17)\n    test 989 pow(0): Fsum[1] pow(1.0, 0)\n    test 990 ceil: True\n    test 991 floor: True\n    test 992 divmod: Fsum[850] (0.0, 0)\n    test 993 residual: 0\n    test 994 is_exact: True\n    test 995 Fsum: -1.708398806013404\n    test 996 Fsum: -1.708398806013404\n\n    test 997 fsum: 7.930658007200038e-09\n    test 998 sum81: 0.0  FAILED, KNOWN, expected 7.930658007200038e-09\n    test 999 pow(4): Fsum[22] pow(3.95582e-33, -5.78802e-50)\n    test 1000 pow(1): Fsum[842] pow(7.93066e-09, -6.17986e-25)\n    test 1001 pow(0): Fsum[1] pow(1.0, 0)\n    test 1002 ceil: True\n    test 1003 floor: True\n    test 1004 divmod: Fsum[847] (0.0, 0)\n    test 1005 residual: 0\n    test 1006 is_exact: True\n    test 1007 Fsum: 7.930658007200038e-09\n    test 1008 Fsum: 7.930658007200038e-09\n\n    test 1009 fsum: 1.849496426352178e-05\n    test 1010 sum82: 14.000018494961864  FAILED, KNOWN, expected 1.849496426352178e-05\n    test 1011 pow(4): Fsum[37] pow(1.17008e-19, 8.6168e-36)\n    test 1012 pow(1): Fsum[842] pow(1.8495e-05, -3.13643e-22)\n    test 1013 pow(0): Fsum[1] pow(1.0, 0)\n    test 1014 ceil: True\n    test 1015 floor: True\n    test 1016 divmod: Fsum[848] (0.0, 0)\n    test 1017 residual: 0\n    test 1018 is_exact: True\n    test 1019 Fsum: 1.849496426352178e-05\n    test 1020 Fsum: 1.849496426352178e-05\n\n    test 1021 fsum: -1.144351548810233e-09\n    test 1022 sum83: 0.0  FAILED, KNOWN, expected -1.144351548810233e-09\n    test 1023 pow(4): Fsum[18] pow(1.7149e-36, -1.31575e-52)\n    test 1024 pow(1): Fsum[842] pow(-1.14435e-09, 7.57464e-26)\n    test 1025 pow(0): Fsum[1] pow(1.0, 0)\n    test 1026 ceil: True\n    test 1027 floor: True\n    test 1028 divmod: Fsum[847] (0.0, 0)\n    test 1029 residual: 0\n    test 1030 is_exact: True\n    test 1031 Fsum: -1.144351548810233e-09\n    test 1032 Fsum: -1.144351548810233e-09\n\n    test 1033 fsum: 0.0018078863936274512\n    test 1034 sum84: 0.0  FAILED, KNOWN, expected 0.0018078863936274512\n    test 1035 pow(4): Fsum[42] pow(1.06828e-11, -2.05339e-28)\n    test 1036 pow(1): Fsum[842] pow(0.00180789, 2.03635e-20)\n    test 1037 pow(0): Fsum[1] pow(1.0, 0)\n    test 1038 ceil: True\n    test 1039 floor: True\n    test 1040 divmod: Fsum[851] (0.0, 0)\n    test 1041 residual: 0\n    test 1042 is_exact: True\n    test 1043 Fsum: 0.0018078863936274512\n    test 1044 Fsum: 0.0018078863936274512\n\n    test 1045 fsum: -0.004949726479280443\n    test 1046 sum85: 0.0  FAILED, KNOWN, expected -0.004949726479280443\n    test 1047 pow(4): Fsum[43] pow(6.0024e-10, 1.15936e-26)\n    test 1048 pow(1): Fsum[842] pow(-0.00494973, 2.53198e-19)\n    test 1049 pow(0): Fsum[1] pow(1.0, 0)\n    test 1050 ceil: True\n    test 1051 floor: True\n    test 1052 divmod: Fsum[850] (0.0, 0)\n    test 1053 residual: 0\n    test 1054 is_exact: True\n    test 1055 Fsum: -0.004949726479280443\n    test 1056 Fsum: -0.004949726479280443\n\n    test 1057 fsum: 9.862280823221828e-08\n    test 1058 sum86: 14.000000098622898  FAILED, KNOWN, expected 9.862280823221828e-08\n    test 1059 pow(4): Fsum[27] pow(9.4604e-29, -3.33182e-45)\n    test 1060 pow(1): Fsum[842] pow(9.86228e-08, -5.42095e-24)\n    test 1061 pow(0): Fsum[1] pow(1.0, 0)\n    test 1062 ceil: True\n    test 1063 floor: True\n    test 1064 divmod: Fsum[848] (0.0, 0)\n    test 1065 residual: 0\n    test 1066 is_exact: True\n    test 1067 Fsum: 9.862280823221828e-08\n    test 1068 Fsum: 9.862280823221828e-08\n\n    test 1069 fsum: 1.746884968367393e-06\n    test 1070 sum87: -6.999998253115393  FAILED, KNOWN, expected 1.746884968367393e-06\n    test 1071 pow(4): Fsum[28] pow(9.31231e-24, 4.4825e-40)\n    test 1072 pow(1): Fsum[842] pow(1.74688e-06, 6.89839e-23)\n    test 1073 pow(0): Fsum[1] pow(1.0, 0)\n    test 1074 ceil: True\n    test 1075 floor: True\n    test 1076 divmod: Fsum[848] (0.0, 0)\n    test 1077 residual: 0\n    test 1078 is_exact: True\n    test 1079 Fsum: 1.746884968367393e-06\n    test 1080 Fsum: 1.746884968367393e-06\n\n    test 1081 fsum: 1.716932512935431e-05\n    test 1082 sum88: 0.0  FAILED, KNOWN, expected 1.716932512935431e-05\n    test 1083 pow(4): Fsum[31] pow(8.68986e-20, 2.7511e-36)\n    test 1084 pow(1): Fsum[842] pow(1.71693e-05, 1.04923e-21)\n    test 1085 pow(0): Fsum[1] pow(1.0, 0)\n    test 1086 ceil: True\n    test 1087 floor: True\n    test 1088 divmod: Fsum[847] (0.0, 0)\n    test 1089 residual: 0\n    test 1090 is_exact: True\n    test 1091 Fsum: 1.716932512935431e-05\n    test 1092 Fsum: 1.716932512935431e-05\n\n    test 1093 fsum: 1.3746860967291014e-14\n    test 1094 sum89: 0.0  FAILED, KNOWN, expected 1.3746860967291014e-14\n    test 1095 pow(4): Fsum[8] pow(3.5712e-56, -2.2157e-72)\n    test 1096 pow(1): Fsum[842] pow(1.37469e-14, -5.32098e-31)\n    test 1097 pow(0): Fsum[1] pow(1.0, 0)\n    test 1098 ceil: True\n    test 1099 floor: True\n    test 1100 divmod: Fsum[846] (0.0, 0)\n    test 1101 residual: 0\n    test 1102 is_exact: True\n    test 1103 Fsum: 1.3746860967291014e-14\n    test 1104 Fsum: 1.3746860967291014e-14\n\n    test 1105 fsum: 9.398950587440378e-07\n    test 1106 sum90: 0.0  FAILED, KNOWN, expected 9.398950587440378e-07\n    test 1107 pow(4): Fsum[24] pow(7.804e-25, -1.26761e-41)\n    test 1108 pow(1): Fsum[842] pow(9.39895e-07, 4.04483e-23)\n./test/testFsums.py:116: DeprecationWarning: function L{Fsum2product<pygeodesy.deprecated.functions.Fsum2product>} has been DEPRECATED on 2024.09.19, use L{Fsum}C{(*B{xs}, B{f2product}=True, ...)}.\n  c *= Fsum(1.0)\n./test/testFsums.py:142: DeprecationWarning: function L{Fsum2product<pygeodesy.deprecated.functions.Fsum2product>} has been DEPRECATED on 2024.09.19, use L{Fsum}C{(*B{xs}, B{f2product}=True, ...)}.\n  self.test('F(\"nan\")', Fsum(\"nan\"), TypeError.__name__)\n./test/testFsums.py:146: DeprecationWarning: function L{Fsum2product<pygeodesy.deprecated.functions.Fsum2product>} has been DEPRECATED on 2024.09.19, use L{Fsum}C{(*B{xs}, B{f2product}=True, ...)}.\n  self.test('F(None)', Fsum(None).fsum(), TypeError.__name__)\n./test/testFsums.py:160: DeprecationWarning: function L{Fsum2product<pygeodesy.deprecated.functions.Fsum2product>} has been DEPRECATED on 2024.09.19, use L{Fsum}C{(*B{xs}, B{f2product}=True, ...)}.\n  self.test('Fsum ', Fsum().fsum_(*t), '1.0', prec=-8, known=True)\n./test/testFsums.py:163: DeprecationWarning: function L{Fsum2product<pygeodesy.deprecated.functions.Fsum2product>} has been DEPRECATED on 2024.09.19, use L{Fsum}C{(*B{xs}, B{f2product}=True, ...)}.\n  t = Fsum(1, 1e101, 1, -1e101)\n./test/testFsums.py:168: DeprecationWarning: function L{Fsum2product<pygeodesy.deprecated.functions.Fsum2product>} has been DEPRECATED on 2024.09.19, use L{Fsum}C{(*B{xs}, B{f2product}=True, ...)}.\n  self.test('F / F', s / s == Fsum(1.0), True, known=True)  # PYCHOK \"s / s is always 1 or ZeroDivisionError\"\n./test/testFsums.py:200: DeprecationWarning: function L{Fsum2product<pygeodesy.deprecated.functions.Fsum2product>} has been DEPRECATED on 2024.09.19, use L{Fsum}C{(*B{xs}, B{f2product}=True, ...)}.\n  self.test('divmod ', divmod(Fsum(-3), 2), ('(-2%s, <Fsum[2] __divmod__(1' % _dot0), known=startswith)\n./test/testFsums.py:212: DeprecationWarning: function L{Fsum2product<pygeodesy.deprecated.functions.Fsum2product>} has been DEPRECATED on 2024.09.19, use L{Fsum}C{(*B{xs}, B{f2product}=True, ...)}.\n  x = Fsum(1, 1e-101, -1, -1e-102)\n./test/testFsums.py:218: DeprecationWarning: function L{Fsum2product<pygeodesy.deprecated.functions.Fsum2product>} has been DEPRECATED on 2024.09.19, use L{Fsum}C{(*B{xs}, B{f2product}=True, ...)}.\n  m = Fsum(1, 1e-101, -4, -1e-102, name='m')  # about -3\n./test/testFsums.py:244: DeprecationWarning: function L{Fsum2product<pygeodesy.deprecated.functions.Fsum2product>} has been DEPRECATED on 2024.09.19, use L{Fsum}C{(*B{xs}, B{f2product}=True, ...)}.\n  self.test('pow(F, F)', pow(-m, x), Fsum(1.0, name='__pow__'))  # -m = 2, x = 0.+\n./test/testFsums.py:252: DeprecationWarning: function L{Fsum2product<pygeodesy.deprecated.functions.Fsum2product>} has been DEPRECATED on 2024.09.19, use L{Fsum}C{(*B{xs}, B{f2product}=True, ...)}.\n  self.test('pow(F, F, i)', m.pow(Fsum(2.1), 2), TypeError.__name__)\n./test/testFsums.py:257: DeprecationWarning: function L{Fsum2product<pygeodesy.deprecated.functions.Fsum2product>} has been DEPRECATED on 2024.09.19, use L{Fsum}C{(*B{xs}, B{f2product}=True, ...)}.\n  self.test('Z**-2', Fsum(0.0)**-2, ZeroDivisionError.__name__)\n./test/testFsums.py:261: DeprecationWarning: function L{Fsum2product<pygeodesy.deprecated.functions.Fsum2product>} has been DEPRECATED on 2024.09.19, use L{Fsum}C{(*B{xs}, B{f2product}=True, ...)}.\n  x = Fsum(1, 1e-101, -4, -1e-102)  # about -3\n./test/testFsums.py:270: DeprecationWarning: function L{Fsum2product<pygeodesy.deprecated.functions.Fsum2product>} has been DEPRECATED on 2024.09.19, use L{Fsum}C{(*B{xs}, B{f2product}=True, ...)}.\n  x = Fsum()\n./test/testFsums.py:282: DeprecationWarning: function L{Fsum2product<pygeodesy.deprecated.functions.Fsum2product>} has been DEPRECATED on 2024.09.19, use L{Fsum}C{(*B{xs}, B{f2product}=True, ...)}.\n  t = Fsum()._fset(2)\n./test/testFsums.py:283: DeprecationWarning: function L{Fsum2product<pygeodesy.deprecated.functions.Fsum2product>} has been DEPRECATED on 2024.09.19, use L{Fsum}C{(*B{xs}, B{f2product}=True, ...)}.\n  self.test('2**F0',  (2**Fsum()).toStr(),   'Fsum[1] __rpow__(1.0, 0)')\n./test/testFsums.py:284: DeprecationWarning: function L{Fsum2product<pygeodesy.deprecated.functions.Fsum2product>} has been DEPRECATED on 2024.09.19, use L{Fsum}C{(*B{xs}, B{f2product}=True, ...)}.\n  self.test('2.**F0', (2.**Fsum()).toStr(),  'Fsum[1] __rpow__(1.0, 0)')\n./test/testFsums.py:286: DeprecationWarning: function L{Fsum2product<pygeodesy.deprecated.functions.Fsum2product>} has been DEPRECATED on 2024.09.19, use L{Fsum}C{(*B{xs}, B{f2product}=True, ...)}.\n  self.test('F2.**0', (Fsum(2.)**0).toStr(), 'Fsum[1] __pow__(1, 0)')\n./test/testFsums.py:290: DeprecationWarning: function L{Fsum2product<pygeodesy.deprecated.functions.Fsum2product>} has been DEPRECATED on 2024.09.19, use L{Fsum}C{(*B{xs}, B{f2product}=True, ...)}.\n  x = Fsum(2, 3)\n./test/testFsums.py:318: DeprecationWarning: function L{Fsum2product<pygeodesy.deprecated.functions.Fsum2product>} has been DEPRECATED on 2024.09.19, use L{Fsum}C{(*B{xs}, B{f2product}=True, ...)}.\n  self.test('fmul(F)', x.fmul(Fsum(2.5)),  '62.5', prec=1)\n./test/testFsums.py:319: DeprecationWarning: function L{Fsum2product<pygeodesy.deprecated.functions.Fsum2product>} has been DEPRECATED on 2024.09.19, use L{Fsum}C{(*B{xs}, B{f2product}=True, ...)}.\n  self.test('fadd(F)', x.fadd(Fsum(2.5)),  '65.0', prec=1)\n./test/testFsums.py:320: DeprecationWarning: function L{Fsum2product<pygeodesy.deprecated.functions.Fsum2product>} has been DEPRECATED on 2024.09.19, use L{Fsum}C{(*B{xs}, B{f2product}=True, ...)}.\n  self.test('fsub(F)', x.fsub(Fsum(2.5)),  '62.5', prec=1)  # iter(Fsum)\n./test/testFsums.py:321: DeprecationWarning: function L{Fsum2product<pygeodesy.deprecated.functions.Fsum2product>} has been DEPRECATED on 2024.09.19, use L{Fsum}C{(*B{xs}, B{f2product}=True, ...)}.\n  self.test('Fsum(F)', Fsum(x, x).fsum(), '125.0', prec=1, nt=1)\n./test/testFsums.py:323: DeprecationWarning: function L{Fsum2product<pygeodesy.deprecated.functions.Fsum2product>} has been DEPRECATED on 2024.09.19, use L{Fsum}C{(*B{xs}, B{f2product}=True, ...)}.\n  f = Fsum(1, 1e-11, -4, -1e-12)  # about -3\n./test/testFsums.py:326: DeprecationWarning: function L{Fsum2product<pygeodesy.deprecated.functions.Fsum2product>} has been DEPRECATED on 2024.09.19, use L{Fsum}C{(*B{xs}, B{f2product}=True, ...)}.\n  t = Fsum(r[0] / r[1])  # C{int} in Python 2\n./test/testFsums.py:345: DeprecationWarning: function L{Fsum2product<pygeodesy.deprecated.functions.Fsum2product>} has been DEPRECATED on 2024.09.19, use L{Fsum}C{(*B{xs}, B{f2product}=True, ...)}.\n  f = Fsum(3) // 1\n./test/testFsums.py:359: DeprecationWarning: function L{Fsum2product<pygeodesy.deprecated.functions.Fsum2product>} has been DEPRECATED on 2024.09.19, use L{Fsum}C{(*B{xs}, B{f2product}=True, ...)}.\n  f = Fsum(1e17, 1., name=n, RESIDUAL=9)\n./test/testFsums.py:369: DeprecationWarning: function L{Fsum2product<pygeodesy.deprecated.functions.Fsum2product>} has been DEPRECATED on 2024.09.19, use L{Fsum}C{(*B{xs}, B{f2product}=True, ...)}.\n  f = Fsum(2, Fsum2Tuple(1, -1))\n    test 1109 pow(0): Fsum[1] pow(1.0, 0)\n    test 1110 ceil: True\n    test 1111 floor: True\n    test 1112 divmod: Fsum[846] (0.0, 0)\n    test 1113 residual: 0\n    test 1114 is_exact: True\n    test 1115 Fsum: 9.398950587440378e-07\n    test 1116 Fsum: 9.398950587440378e-07\n\n    test 1117 fsum: -3.845334870378444e-12\n    test 1118 sum91: -7.000000000004434  FAILED, KNOWN, expected -3.845334870378444e-12\n    test 1119 pow(4): Fsum[18] pow(2.18644e-46, 1.5833e-62)\n    test 1120 pow(1): Fsum[842] pow(-3.84533e-12, -1.71882e-29)\n    test 1121 pow(0): Fsum[1] pow(1.0, 0)\n    test 1122 ceil: True\n    test 1123 floor: True\n    test 1124 divmod: Fsum[847] (0.0, 0)\n    test 1125 residual: 0\n    test 1126 is_exact: True\n    test 1127 Fsum: -3.845334870378444e-12\n    test 1128 Fsum: -3.845334870378444e-12\n\n    test 1129 fsum: -0.014953425762466112\n    test 1130 sum92: 0.0  FAILED, KNOWN, expected -0.014953425762466112\n    test 1131 pow(4): Fsum[40] pow(4.99992e-08, 1.91214e-24)\n    test 1132 pow(1): Fsum[842] pow(-0.0149534, 2.85809e-19)\n    test 1133 pow(0): Fsum[1] pow(1.0, 0)\n    test 1134 ceil: True\n    test 1135 floor: True\n    test 1136 divmod: Fsum[850] (0.0, 0)\n    test 1137 residual: 0\n    test 1138 is_exact: True\n    test 1139 Fsum: -0.014953425762466112\n    test 1140 Fsum: -0.014953425762466112\n\n    test 1141 fsum: -2.181482332993425e-05\n    test 1142 sum93: 0.0  FAILED, KNOWN, expected -2.181482332993425e-05\n    test 1143 pow(4): Fsum[29] pow(2.26468e-19, 1.30909e-35)\n    test 1144 pow(1): Fsum[842] pow(-2.18148e-05, -4.93833e-22)\n    test 1145 pow(0): Fsum[1] pow(1.0, 0)\n    test 1146 ceil: True\n    test 1147 floor: True\n    test 1148 divmod: Fsum[847] (0.0, 0)\n    test 1149 residual: 0\n    test 1150 is_exact: True\n    test 1151 Fsum: -2.181482332993425e-05\n    test 1152 Fsum: -2.181482332993425e-05\n\n    test 1153 fsum: 0.1796640595568802\n    test 1154 sum94: 0.0  FAILED, KNOWN, expected 0.1796640595568802\n    test 1155 pow(4): Fsum[37] pow(0.00104195, -4.88791e-20)\n    test 1156 pow(1): Fsum[842] pow(0.179664, 9.89054e-18)\n    test 1157 pow(0): Fsum[1] pow(1.0, 0)\n    test 1158 ceil: True\n    test 1159 floor: True\n    test 1160 divmod: Fsum[849] (0.0, 0)\n    test 1161 residual: 0\n    test 1162 is_exact: True\n    test 1163 Fsum: 0.1796640595568802\n    test 1164 Fsum: 0.1796640595568802\n\n    test 1165 fsum: -0.26056206166280493\n    test 1166 sum95: 0.0  FAILED, KNOWN, expected -0.26056206166280493\n    test 1167 pow(4): Fsum[50] pow(0.0046094, 3.05581e-19)\n    test 1168 pow(1): Fsum[842] pow(-0.260562, -2.11672e-17)\n    test 1169 pow(0): Fsum[1] pow(1.0, 0)\n    test 1170 ceil: True\n    test 1171 floor: True\n    test 1172 divmod: Fsum[850] (0.0, 0)\n    test 1173 residual: 0\n    test 1174 is_exact: True\n    test 1175 Fsum: -0.26056206166280493\n    test 1176 Fsum: -0.26056206166280493\n\n    test 1177 fsum: -1.3288325397540682e-10\n    test 1178 sum96: 20.999999999866247  FAILED, KNOWN, expected -1.3288325397540682e-10\n    test 1179 pow(4): Fsum[20] pow(3.11804e-40, 6.88257e-57)\n    test 1180 pow(1): Fsum[842] pow(-1.32883e-10, 1.33468e-27)\n    test 1181 pow(0): Fsum[1] pow(1.0, 0)\n    test 1182 ceil: True\n    test 1183 floor: True\n    test 1184 divmod: Fsum[847] (0.0, 0)\n    test 1185 residual: 0\n    test 1186 is_exact: True\n    test 1187 Fsum: -1.3288325397540682e-10\n    test 1188 Fsum: -1.3288325397540682e-10\n\n    test 1189 fsum: -2.1153789389272494e-05\n    test 1190 sum97: 0.0  FAILED, KNOWN, expected -2.1153789389272494e-05\n    test 1191 pow(4): Fsum[27] pow(2.00241e-19, -1.12698e-36)\n    test 1192 pow(1): Fsum[842] pow(-2.11538e-05, 6.85903e-22)\n    test 1193 pow(0): Fsum[1] pow(1.0, 0)\n    test 1194 ceil: True\n    test 1195 floor: True\n    test 1196 divmod: Fsum[847] (0.0, 0)\n    test 1197 residual: 0\n    test 1198 is_exact: True\n    test 1199 Fsum: -2.1153789389272494e-05\n    test 1200 Fsum: -2.1153789389272494e-05\n\n    test 1201 fsum: -7.135903088885889e-05\n    test 1202 sum98: 34.999928640968136  FAILED, KNOWN, expected -7.135903088885889e-05\n    test 1203 pow(4): Fsum[34] pow(2.59296e-17, -1.13303e-33)\n    test 1204 pow(1): Fsum[842] pow(-7.1359e-05, -5.24526e-21)\n    test 1205 pow(0): Fsum[1] pow(1.0, 0)\n    test 1206 ceil: True\n    test 1207 floor: True\n    test 1208 divmod: Fsum[850] (0.0, 0)\n    test 1209 residual: 0\n    test 1210 is_exact: True\n    test 1211 Fsum: -7.135903088885889e-05\n    test 1212 Fsum: -7.135903088885889e-05\n\n    test 1213 fsum: -0.00039188050506964707\n    test 1214 sum99: 0.0  FAILED, KNOWN, expected -0.00039188050506964707\n    test 1215 pow(4): Fsum[34] pow(2.35838e-14, -1.06578e-30)\n    test 1216 pow(1): Fsum[842] pow(-0.000391881, -1.76219e-20)\n    test 1217 pow(0): Fsum[1] pow(1.0, 0)\n    test 1218 ceil: True\n    test 1219 floor: True\n    test 1220 divmod: Fsum[850] (0.0, 0)\n    test 1221 residual: 0\n    test 1222 is_exact: True\n    test 1223 Fsum: -0.00039188050506964707\n    test 1224 Fsum: -0.00039188050506964707\n\n    test 1225 fsum: -2.659736477135389e-11\n    test 1226 sum100: 0.0  FAILED, KNOWN, expected -2.659736477135389e-11\n    test 1227 pow(4): Fsum[12] pow(5.00443e-43, 9.18713e-60)\n    test 1228 pow(1): Fsum[842] pow(-2.65974e-11, -4.86868e-28)\n    test 1229 pow(0): Fsum[1] pow(1.0, 0)\n    test 1230 ceil: True\n    test 1231 floor: True\n    test 1232 divmod: Fsum[846] (0.0, 0)\n    test 1233 residual: 0\n    test 1234 is_exact: True\n    test 1235 Fsum: -2.659736477135389e-11\n    test 1236 Fsum: -2.659736477135389e-11\n    test 1237 fmul: 0.00000000\n\n    test 1238 len1: 4\n    test 1239 FSum+: 4.0\n    test 1240 FSum-: 2.0\n    test 1241 FSum-: 0.0\n    test 1242 FSum*: 4.0\n    test 1243 copy(<class 'type'>): (<class 'pygeodesy.fsums.Fsum'>, True)\n    test 1244 ._fint2: (4, 0)\n    test 1245 ._fprs: 4.0\n    test 1246 ._fprs2: (4.0, 0)\n    test 1247 ._n: 5\n    test 1248 ._ps: [4.0]\n    test 1249 Fsum.copy(): (<class 'pygeodesy.fsums.Fsum'>, True)\n    test 1250 ._fint2: (4, 0)\n    test 1251 ._fprs: 4.0\n    test 1252 ._fprs2: (4.0, 0)\n    test 1253 ._n: 5\n    test 1254 ._ps: [4.0]\n    test 1255 len2: 8\n    test 1256 FSum+: 8.0\n    test 1257 FSum-: 4.0\n    test 1258 FSum-: 0.0\n    test 1259 FSum*: 8.0\n    test 1260 copy(<class 'type'>): (<class 'pygeodesy.fsums.Fsum'>, True)\n    test 1261 ._fint2: (8, 0)\n    test 1262 ._fprs: 8.0\n    test 1263 ._fprs2: (8.0, 0)\n    test 1264 ._n: 9\n    test 1265 ._ps: [8.0]\n    test 1266 Fsum.copy(): (<class 'pygeodesy.fsums.Fsum'>, True)\n    test 1267 ._fint2: (8, 0)\n    test 1268 ._fprs: 8.0\n    test 1269 ._fprs2: (8.0, 0)\n    test 1270 ._n: 9\n    test 1271 ._ps: [8.0]\n    test 1272 len3: 16\n    test 1273 FSum+: 16.0\n    test 1274 FSum-: 8.0\n    test 1275 FSum-: 0.0\n    test 1276 FSum*: 16.0\n    test 1277 copy(<class 'type'>): (<class 'pygeodesy.fsums.Fsum'>, True)\n    test 1278 ._fint2: (16, 0)\n    test 1279 ._fprs: 16.0\n    test 1280 ._fprs2: (16.0, 0)\n    test 1281 ._n: 17\n    test 1282 ._ps: [16.0]\n    test 1283 Fsum.copy(): (<class 'pygeodesy.fsums.Fsum'>, True)\n    test 1284 ._fint2: (16, 0)\n    test 1285 ._fprs: 16.0\n    test 1286 ._fprs2: (16.0, 0)\n    test 1287 ._n: 17\n    test 1288 ._ps: [16.0]\n    test 1289 len4: 32\n    test 1290 FSum+: 32.0\n    test 1291 FSum-: 16.0\n    test 1292 FSum-: 0.0\n    test 1293 FSum*: 32.0\n    test 1294 copy(<class 'type'>): (<class 'pygeodesy.fsums.Fsum'>, True)\n    test 1295 ._fint2: (32, 0)\n    test 1296 ._fprs: 32.0\n    test 1297 ._fprs2: (32.0, 0)\n    test 1298 ._n: 33\n    test 1299 ._ps: [32.0]\n    test 1300 Fsum.copy(): (<class 'pygeodesy.fsums.Fsum'>, True)\n    test 1301 ._fint2: (32, 0)\n    test 1302 ._fprs: 32.0\n    test 1303 ._fprs2: (32.0, 0)\n    test 1304 ._n: 33\n    test 1305 ._ps: [32.0]\n    test 1306 len5: 64\n    test 1307 FSum+: 64.0\n    test 1308 FSum-: 32.0\n    test 1309 FSum-: 0.0\n    test 1310 FSum*: 64.0\n    test 1311 copy(<class 'type'>): (<class 'pygeodesy.fsums.Fsum'>, True)\n    test 1312 ._fint2: (64, 0)\n    test 1313 ._fprs: 64.0\n    test 1314 ._fprs2: (64.0, 0)\n    test 1315 ._n: 65\n    test 1316 ._ps: [64.0]\n    test 1317 Fsum.copy(): (<class 'pygeodesy.fsums.Fsum'>, True)\n    test 1318 ._fint2: (64, 0)\n    test 1319 ._fprs: 64.0\n    test 1320 ._fprs2: (64.0, 0)\n    test 1321 ._n: 65\n    test 1322 ._ps: [64.0]\n./test/testFsums.py:419: DeprecationWarning: function L{Fsum2product<pygeodesy.deprecated.functions.Fsum2product>} has been DEPRECATED on 2024.09.19, use L{Fsum}C{(*B{xs}, B{f2product}=True, ...)}.\n  f = Fsum()\n./test/testFsums.py:429: DeprecationWarning: function L{Fsum2product<pygeodesy.deprecated.functions.Fsum2product>} has been DEPRECATED on 2024.09.19, use L{Fsum}C{(*B{xs}, B{f2product}=True, ...)}.\n  self.test('fma_', Fsum(1).fma_(2, 3, 4, 5, 6, 7), Fsum(69.0), nl=1)\n    test 1323 len6: 128\n    test 1324 FSum+: 128.0\n    test 1325 FSum-: 64.0\n    test 1326 FSum-: 0.0\n    test 1327 FSum*: 128.0\n    test 1328 copy(<class 'type'>): (<class 'pygeodesy.fsums.Fsum'>, True)\n    test 1329 ._fint2: (128, 0)\n    test 1330 ._fprs: 128.0\n    test 1331 ._fprs2: (128.0, 0)\n    test 1332 ._n: 129\n    test 1333 ._ps: [128.0]\n    test 1334 Fsum.copy(): (<class 'pygeodesy.fsums.Fsum'>, True)\n    test 1335 ._fint2: (128, 0)\n    test 1336 ._fprs: 128.0\n    test 1337 ._fprs2: (128.0, 0)\n    test 1338 ._n: 129\n    test 1339 ._ps: [128.0]\n    test 1340 len7: 256\n    test 1341 FSum+: 256.0\n    test 1342 FSum-: 128.0\n    test 1343 FSum-: 0.0\n    test 1344 FSum*: 256.0\n    test 1345 copy(<class 'type'>): (<class 'pygeodesy.fsums.Fsum'>, True)\n    test 1346 ._fint2: (256, 0)\n    test 1347 ._fprs: 256.0\n    test 1348 ._fprs2: (256.0, 0)\n    test 1349 ._n: 257\n    test 1350 ._ps: [256.0]\n    test 1351 Fsum.copy(): (<class 'pygeodesy.fsums.Fsum'>, True)\n    test 1352 ._fint2: (256, 0)\n    test 1353 ._fprs: 256.0\n    test 1354 ._fprs2: (256.0, 0)\n    test 1355 ._n: 257\n    test 1356 ._ps: [256.0]\n    test 1357 len8: 512\n    test 1358 FSum+: 512.0\n    test 1359 FSum-: 256.0\n    test 1360 FSum-: 0.0\n    test 1361 FSum*: 512.0\n    test 1362 copy(<class 'type'>): (<class 'pygeodesy.fsums.Fsum'>, True)\n    test 1363 ._fint2: (512, 0)\n    test 1364 ._fprs: 512.0\n    test 1365 ._fprs2: (512.0, 0)\n    test 1366 ._n: 513\n    test 1367 ._ps: [512.0]\n    test 1368 Fsum.copy(): (<class 'pygeodesy.fsums.Fsum'>, True)\n    test 1369 ._fint2: (512, 0)\n    test 1370 ._fprs: 512.0\n    test 1371 ._fprs2: (512.0, 0)\n    test 1372 ._n: 513\n    test 1373 ._ps: [512.0]\n    test 1374 len: 513\n    test 1375 partials: (512.0,)\n\n    test 1376 FSum0: 0.0\n    test 1377 FSum0: 0.0\n    test 1378 FSum0: 0.0\n    test 1379 FSum0: 0.0\n    test 1380 FSum0: 0.0\n    test 1381 sizeof: 441  FAILED, KNOWN, expected 413\n    test 1382 FSum0: 0.0\n    test 1383 Fsum#: 514\n    test 1384 Fsum#: 1\n    test 1385 FSum.: Fsum[514] (0.0, 0)\n    test 1386 FsumI: 0.0\n    test 1387 FsumR: 0.0\n    test 1388 radd: 514.0\n    test 1389 rdiv: 3.91e-03\n    test 1390 rmul: 1024.0\n    test 1391 rpow: 1.0\n    test 1392 rsub: -510.0\n    test 1393 _2sum: OverflowError('_2sum(1.0e+308, inf): not finite (inf)')\n    test 1394 F(\"nan\"): TypeError('0.0 + nan: invalid')\n    test 1395 F(None): TypeError('0.0 + None: invalid')\n\n    test 1396 ints: 1\n    test 1397 ints: 1\n    test 1398 fsum : -3.58905099e+19  FAILED, KNOWN, expected 1.0\n    test 1399 fsum_: -3.58905099e+19  FAILED, KNOWN, expected 1.0\n    test 1400 Fsum : -3.58905099e+19  FAILED, KNOWN, expected 1.0\n    test 1401 sum  : -3.58905099e+19  FAILED, KNOWN, expected 1.0\n    test 1402 F * 2: 4.0000\n    test 1403 F / 2: 2.0000\n    test 1404 F / F: True\n    test 1405 F / F: 1.0\n    test 1406 F / F: 2.0\n    test 1407 abs  : Fsum[4] __abs__(2.0, 0)  FAILED, KNOWN, expected Fsum[4] (2.0, 0)\n    test 1408 int  : 2\n    test 1409 eq F: True\n    test 1410 ge F: True\n    test 1411 gt F: False\n    test 1412 le F: True\n    test 1413 lt F: False\n    test 1414 ne F: False\n    test 1415 if F: True\n    test 1416 gt 0: True\n    test 1417 lt 0: False\n    test 1418 eq 0: False\n    test 1419 lt 0: True\n    test 1420 gt 0: True\n    test 1421 gt 0: False\n    test 1422 signOf: 1\n    test 1423 signOf: -1\n    test 1424 ceil : 3\n    test 1425 floor: 2\n\n    test 1426 divmod : (2, <Fsum[2] __divmod__(0.0, 0) at 0x102f8e780>)\n    test 1427 divmod : (2, <Fsum[2] __divmod__(0.0, 0) at 0x102f8f170>)\n    test 1428 rdivmod : (0, <Fsum[1] __rdivmod__(2, 0) at 0x102f8e120>)\n    test 1429 divmod : (-2, <Fsum[2] __divmod__(1.0, 0) at 0x102f8e780>)\n    test 1430 imod: Fsum[2] __imod__(0.0, 0)\n    test 1431 mod : Fsum[2] __mod__(0.0, 0)\n    test 1432 rmod: Fsum[1] __rmod__(2, 0)\n    test 1433 neg : Fsum[1] __neg__(-2, 0)\n    test 1434 pos : Fsum[4] (2.0, 0)\n    test 1435 is_int: True\n    test 1436 float: 9e-102\n    test 1437 is_int: False\n    test 1438 round1: 0.0\n    test 1439 fset_: Fsum[4] (9.0e-102, 5.9483e-118)\n\n    test 1440 F //: Fsum[1] __floordiv__(-1, 0)\n    test 1441 // F: Fsum[1] __rfloordiv__(-2, 0)\n    test 1442 F //=: Fsum[1] m(-2, 0)\n# imported pygeodesy.basics into errors.py line 531\n    test 1443 F / 0: ZeroDivisionError('Fsum[2] __truediv__(9.0e-102, 5.9483e-118) / 0: float division by zero')\n    test 1444 pow(F, +): Fsum[1] __pow__(6.36662e-213, 0)\n    test 1445 pow(F, -): Fsum[1] __pow__(1.11111e+101, 0)\n    test 1446 pow(-F, F): ValueError('-2 ** 9e-102: complex (1+2.8274333882308138e-101j) from 2-arg pow(-2, 9.0e-102)')\n    test 1447 pow(F, F): Fsum[1] __pow__(1.0, 0)\n    test 1448 pow(F, f, i): TypeError('Fsum[2] __pow__(9.0e-102, 5.9483e-118) ** 2.1: mod (2), pow() 3rd argument not allowed unless all arguments are integers')\n    test 1449 pow(F, F, i): TypeError('-2 ** Fsum[1] (2.1, 0): mod (2), pow() 3rd argument not allowed unless all arguments are integers')\n    test 1450 pow(F, i, None): Fsum[1] __pow__(4, 0)\n    test 1451 Z**-2: ZeroDivisionError('0.0 ** -2: 0.0 cannot be raised to a negative power')\n    test 1452 pow(0): 1.000\n    test 1453 pow(1): -3.000\n    test 1454 pow(2): 9.000\n    test 1455 pow(21): -10460353203.000\n    test 1456 pow(-5): -0.004\n    test 1457 **= 2: 9.000\n    test 1458 F0**0: Fsum[1] __pow__(1, 0)\n    test 1459 F0**0.: Fsum[1] __pow__(1.0, 0)\n    test 1460 0**F0: Fsum[1] __rpow__(1.0, 0)\n    test 1461 0.**F0: Fsum[1] __rpow__(1.0, 0)\n    test 1462 F0**0: Fsum[1] pow(1, 0)\n    test 1463 F0**2: Fsum[1] pow(0.0, 0)\n    test 1464 F0**0.: Fsum[1] pow(1.0, 0)\n    test 1465 F0**3.: Fsum[1] pow(0.0, 0)\n    test 1466 F0**0.: Fsum[1] pow(1, 0)\n    test 1467 2**F0: Fsum[1] __rpow__(1.0, 0)\n    test 1468 2.**F0: Fsum[1] __rpow__(1.0, 0)\n    test 1469 F2**0: Fsum[1] __pow__(1, 0)\n    test 1470 F2.**0: Fsum[1] __pow__(1, 0)\n    test 1471 F2**F2: Fsum[1] __pow__(4, 0)\n    test 1472 F2**F2: Fsum[1] __rpow__(4, 0)\n    test 1473 F**2: 3125.000\n    test 1474 F**-1: 0.200\n    test 1475 F**-2: 0.040\n    test 1476 F**-2.5: 0.018\n    test 1477 F** 2.5: 55.902\n    test 1478 pow(2): 25.000\n    test 1479 pow(2.5): 55.902\n    test 1480 pow(F): 3125.000\n    test 1481 3pow(2, None): Fsum[1] pow(25, 0)\n    test 1482 3pow(2.5, None): Fsum[1] pow(55.902, 0)\n    test 1483 3pow(2, 20): Fsum[1] pow(5, 0)\n\n    test 1484 fsum(): 5.0\n    test 1485 fsum(): True\n    test 1486 fsum2(): (5.0, 0)\n    test 1487 fsum2(): True\n    test 1488 fsum2(): Fsum2Tuple(fsum=5.0, residual=0)\n    test 1489 Fsum2Tuple: ('fsum', 5.0, <class 'pygeodesy.unitsBase.Float'>)\n    test 1490 Fsum2Tuple: ('residual', 0, <class 'pygeodesy.unitsBase.Int'>)\n    test 1491 fmul(x): 25.0\n    test 1492 fmul(F): 62.5\n    test 1493 fadd(F): 65.0\n    test 1494 fsub(F): 62.5\n    test 1495 Fsum(F): 125.0\n\n    test 1496 ratio: (-27021597764141911, 9007199254740992)\n    test 1497 ratio: Fsum[1] (-3, 0)  FAILED, KNOWN, expected Fsum[4] (-3, 8.80732e-17)\n    test 1498 int_float: -3.000\n    test 1499 fint: Fsum[1] fint(-2, 0)\n    test 1500 fint2: (-2, -1)\n    test 1501 f2mul_: Fsum[15] f2mul_(12.0, -3.52293e-16)  FAILED, KNOWN, expected (12.0, ...\n    test 1502 f2mul_: Fsum[4] f2mul_(nan, 0.0)  FAILED, KNOWN, expected NINF\n    test 1503 f2mul_: Fsum[11] f2mul_(nan, 0.0)  FAILED, KNOWN, expected NAN\n    test 1504 += NAN: Fsum[5] (nan, 0.0)  FAILED, KNOWN, expected nan\n    test 1505 -= NAN: Fsum[5] (nan, 0.0)  FAILED, KNOWN, expected nan\n    test 1506 pow3: Fsum[1] __pow__(3, 0)\n\n    test 1507 is_math_fsum: True\n\n    test 1508 RESIDUAL: 0.0\n    test 1509 RESIDUAL: 0.0\n    test 1510 RESIDUAL: 1e-32\n    test 1511 RESIDUAL: 9.0\n    test 1512 RESIDUAL: sorted\n\n    test 1513 ResidualError: 1 / Fsum[2] sorted(1.0e+17, 1.0): non-zero residual (1.0), ratio (1.0e-17) exceeds RESIDUAL (-1e-18) threshold\n\n    test 1514 recursive: 8.0\n    test 1515 recursive: 16.0\n\n    test 1516 +=F2T: 17.0\n    test 1517 -=F2T: 16.0\n    test 1518 *=F2T: 16.000000000000004\n    test 1519 /=F2T: 16.0\n    test 1520 **F2T: 16.0\n    test 1521 %=F2T: 16.0\n\n    test 1522 abs(T): Fsum[2] __abs__(1.0, 0)\n    test 1523 bool(T): True\n    test 1524 float(T): 1.0000000000000002\n    test 1525 T.Fsum_: Fsum[2] (2.0, 0)\n    test 1526 int(T): 1\n    test 1527 -T: Fsum[1] __neg__(-1, 0)\n    test 1528 +T: Fsum[2] (1.0, 0)\n    test 1529 as_i_: (4503599627370497, 4503599627370496)\n    test 1530 is_x?: True\n    test 1531 is_i?: False\n\n    test 1532 F==T: False\n    test 1533 F>=T: True\n    test 1534 F> T: True\n    test 1535 F<=T: False\n    test 1536 F< T: False\n    test 1537 F!=T: True\n\n    test 1538 T._fint2: (1, 2.220446049250313e-16)\n    test 1539 T._fprs2: (1.0, 0)\n    test 1540 T._n: 2\n    test 1541 T._ps: [1.0000000000000002]\n    test 1542 T._ps_neg: [-1.0000000000000002]\n    test 1543 T.signOf: 1\n\n    test 1544 f2product: (True, True)\n    test 1545 nonfinite*: (False, None)\n    test 1546 Nones: (None, None)\n\n    test 1547 fma_: Fsum[1] (69.0, 0)\n\n    test 1548 True: True\n    test 1549 False: False\n\n    574 of 1549 testFsums.py tests (37.1%) FAILED, incl. 122 KNOWN plus 452 DeprecationWarnings (pygeodesy 26.3.26 Python 3.12.10 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 2.1.0 scipy 1.14.1 Math 2 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 isLazy 3 -W  default) 2.257 sec\nrunning /usr/local/bin/p....n3.12 -W default ~/PyGeodesy/test/testGars.py\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.degDMS from .dms by testGars.py line 11\n# lazily imported pygeodesy.fstr from .streprs by testGars.py line 11\n# lazily imported pygeodesy.gars by testGars.py line 11\n# lazily imported pygeodesy.Garef from .gars by testGars.py line 11\n# lazily imported pygeodesy.S_MIN from .dms by testGars.py line 11\n# lazily imported pygeodesy.ellipsoidalVincenty by testGars.py line 56\n\n    testing testGars.py 23.03.27 (module pygeodesy.gars 25.05.07) isLazy=3\n    test 1 Garef: 381NH45\n    test 2 Garef: 381NH45\n    test 3 Garef: Garef('381NH45')\n    test 4 Garef: '381NH45'\n    test 5 Garef: '381NH45'  FAILED, KNOWN, expected Garef('381NH45')\n    test 6 Garef.precision: 2\n    test 7 copy(<class 'type'>): (<class 'pygeodesy.gars.Garef'>, True)\n    test 8 Garef.copy(): (<class 'pygeodesy.gars.Garef'>, True)\n    test 9 Garef.latlon: 57.64911, 10.40744\n    test 10 Garef.toLatLon: LatLon(57°38′56.8″N, 010°24′26.78″E)\n    test 11 codec3: 381NH45\n    test 12 decode3: 57.625, 10.375, 2.0\n    test 13 encode: 381NH45\n    test 14 Garef(LatLon): 381NH45\n    test 15 copy(<class 'type'>): (<class 'pygeodesy.gars.Garef'>, True)\n    test 16 Garef.copy(): (<class 'pygeodesy.gars.Garef'>, True)\n    test 17 precision: -1  FAILED, KNOWN, expected 0\n    test 18 resolution: 30′\n    test 19 precision: 0\n    test 20 resolution: 30′\n    test 21 precision: 1\n    test 22 resolution: 15′\n    test 23 precision: 2\n    test 24 resolution: 5′\n    test 25 precision: 3  FAILED, KNOWN, expected 2\n    test 26 resolution: 5′\n\n    3 of 26 testGars.py tests (11.5%) FAILED, ALL KNOWN (pygeodesy 26.3.26 Python 3.12.10 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 2.1.0 scipy 1.14.1 Math 2 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 isLazy 3 -W  default) 820.875 us\nrunning /usr/local/bin/p....n3.12 -W default ~/PyGeodesy/test/testGeodesici.py\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.euclid from .fmath by testGeodesici.py line 11\n# lazily imported pygeodesy.geodesici by testGeodesici.py line 11\n# lazily imported pygeodesy.Intersectool from .geodesici by testGeodesici.py line 11\n# lazily imported pygeodesy.Intersector from .geodesici by testGeodesici.py line 11\n# lazily imported pygeodesy.LatLon_ from .points by testGeodesici.py line 11\n# lazily imported pygeodesy.GeodesicExact from .geodesicx by testGeodesici.py line 135\n\n    testing testGeodesici.py 25.05.09 (module pygeodesy.geodesici 26.02.04) isLazy=3\n\n    testGeodesicExact(pygeodesy.geodesici, 26.02.04)\n# lazily imported pygeodesy.geodsolve by ellipsoids.py line 1057\n# lazily imported pygeodesy.geodesicw by ellipsoids.py line 1059\n    test 1 Intersectool: geodesic=GeodesicExact(name='', caps=0, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), C4order=30), IntersectTool='/opt/local/bin/IntersectTool', invokation=0, status=None\n\n    test 2 Closest.1.sA: 4.2253e+06\n    test 3 Closest.1.sB: 2.70933e+06\n    test 4 Closest.1.c: 0\n# lazily imported pygeodesy.elliptic by gx.py line 421\n# imported pygeodesy.basics into errors.py line 443\n\n    test 5 Closest5.1.A: {azi1: 45.0, lat1: 0.0, latX: 25.92918, lon1: 0.0, lonX: 28.89426, s1X: 4225301.108897}\n    test 6 Closest5.1.B: {azi1: 135.0, lat1: 45.0, latX: 25.92918, lon1: 10.0, lonX: 28.89426, s1X: 2709328.885611}\n    test 7 Closest5.1.sAB: 0\n    test 8 Closest5.1.aAB: 0\n    test 9 Closest5.1.c: 0\n\n    test 10 Closest.2.sA: 6.05805e+06\n    test 11 Closest.2.sB: -3.31125e+06\n    test 12 Closest.2.c: 0\n\n    test 13 Closest5.2.A: {azi1: 212.3, lat1: 50.0, latX: -0.0, lon1: -4.0, lonX: -29.745492, s1X: 6058048.653081}\n    test 14 Closest5.2.B: {azi1: 90.0, lat1: 0.0, latX: -0.0, lon1: 0.0, lonX: -29.745492, s1X: -3311252.995823}\n    test 15 Closest5.2.sAB: 1e-09\n    test 16 Closest5.2.aAB: 9.01337e-15\n    test 17 Closest5.2.c: 0\n\n    test 18 All[0].sA: -494582\n    test 19 All[0].sB: 1.40522e+07\n    test 20 All[0].c: 0\n    test 21 All[0].sX0: 1.45468e+07\n    test 22 All[0].iteration: 0\n\n    test 23 All[1].sA: 1.95291e+07\n    test 24 All[1].sB: -5.93234e+06\n    test 25 All[1].c: 0\n    test 26 All[1].sX0: 2.54615e+07\n    test 27 All[1].iteration: 1\n\n    test 28 All[2].sA: -494582\n    test 29 All[2].sB: -2.59556e+07\n    test 30 All[2].c: 0\n    test 31 All[2].sX0: 2.64502e+07\n    test 32 All[2].iteration: 2\n\n    test 33 All[3].sA: -2.05181e+07\n    test 34 All[3].sB: -5.97086e+06\n    test 35 All[3].c: 0\n    test 36 All[3].sX0: 2.64889e+07\n    test 37 All[3].iteration: 3\n\n    test 38 All5[0].A: {azi1: 212.3, lat1: 50.0, latX: 53.692598, lon1: -4.0, lonX: -0.0, s1X: -494582.492241}\n    test 39 All5[0].B: {azi1: 0.0, lat1: 0.0, latX: 53.692598, lon1: 180.0, lonX: 0.0, s1X: 14052229.965229}\n    test 40 All5[0].sAB: 1.2e-09\n    test 41 All5[0].aAB: 1.07925e-14\n    test 42 All5[0].c: 0\n    test 43 All5[0].iteration: None\n\n    test 44 All5[1].A: {azi1: 212.3, lat1: 50.0, latX: -53.518675, lon1: -4.0, lonX: 180.0, s1X: 19529110.042937}\n    test 45 All5[1].B: {azi1: 0.0, lat1: 0.0, latX: -53.518675, lon1: 180.0, lonX: 180.0, s1X: -5932344.259165}\n    test 46 All5[1].sAB: 3e-09\n    test 47 All5[1].aAB: 2.69815e-14\n    test 48 All5[1].c: 0\n    test 49 All5[1].iteration: None\n\n    test 50 All5[2].A: {azi1: 212.3, lat1: 50.0, latX: 53.692598, lon1: -4.0, lonX: -0.0, s1X: -494582.492241}\n    test 51 All5[2].B: {azi1: 0.0, lat1: 0.0, latX: 53.692598, lon1: 180.0, lonX: 0.0, s1X: -25955632.952022}\n    test 52 All5[2].sAB: 2.7e-09\n    test 53 All5[2].aAB: 2.42832e-14\n    test 54 All5[2].c: 0\n    test 55 All5[2].iteration: None\n\n    test 56 All5[3].A: {azi1: 212.3, lat1: 50.0, latX: -53.864737, lon1: -4.0, lonX: -180.0, s1X: -20518081.166643}\n    test 57 All5[3].B: {azi1: 0.0, lat1: 0.0, latX: -53.864737, lon1: 180.0, lonX: 180.0, s1X: -5970860.779079}\n    test 58 All5[3].sAB: 4.2e-09\n    test 59 All5[3].aAB: 3.77926e-14\n    test 60 All5[3].c: 0\n    test 61 All5[3].iteration: None\n\n    test 62 Middle.sA: 782555\n    test 63 Middle.sB: 5.53684e+06\n    test 64 Middle.c: 0\n    test 65 Middle.sX0: 0\n    test 66 Middle.kA: 0\n    test 67 Middle.kB: 0\n    test 68 Middle.k: 0\n\n    test 69 Middle5.A: {a12: 14.106434, a1M: 7.053396, azi1: 44.75191, azi2: 45.629037, aziM: 44.969535, lat1: 0.0, lat2: 10.0, latM: 5.019509, lon1: 0.0, lon2: 10.0, lonM: 4.961883, m12: 780579.492953, M12: 0.992432, M21: 0.992432, s12: 1565109.099218, s1M: 782554.549609}\n    test 70 Middle5.B: {a12: 99.810444, a1M: 49.869061, azi1: 180.0, azi2: 180.0, aziM: 180.0, lat1: 50.0, lat2: -50.0, latM: 0.036282, lon1: -4.0, lon2: -4.0, lonM: -4.0, m12: 4864571.105922, M12: 0.645508, M21: 0.644537, s12: 11073670.322999, s1M: 5536835.161499}\n    test 71 Middle5.sMM: 1.13857e+06\n    test 72 Middle5.aMM: 10.2623\n    test 73 Middle5.c: 0\n\n    test 74 Segment.sA: -631414\n    test 75 Segment.sB: 5.98889e+06\n    test 76 Segment.c: 0\n    test 77 Segment.k: -3\n    test 78 Segment.kA: -1\n    test 79 Segment.kB: 0\n\n    test 80 Segment5.A: {k2: -1, lat1: 0.0, lat2: 10.0, latX: -4.051871, lon1: 0.0, lon2: 10.0, lonX: -4.0, s1X: -631414.26877}\n    test 81 Segment5.B: {k2: 0, lat1: 50.0, lat2: -50.0, latX: -4.051871, lon1: -4.0, lon2: -4.0, lonX: -4.0, s1X: 5988887.278435}\n    test 82 Segment5.sAB: 3e-10\n    test 83 Segment5.aAB: 2.70397e-15\n    test 84 Segment5.c: 0\n\n    test 85 intersect7s[0].A: 04.051871°S, 004.0°W\n    test 86 intersect7s[0].B: 04.051871°S, 004.0°W\n    test 87 intersect7s[0].sAB: 3e-10\n    test 88 intersect7s[0].aAB: 2.70397e-15\n    test 89 intersect7s[0].c: 0\n    test 90 intersect7s[0].kA: 0\n    test 91 intersect7s[0].kB: 0\n    test 92 intersect7s[0].iteration: None\n\n    test 93 intersect7s[1].A: 03.623464°N, 176.0°E\n    test 94 intersect7s[1].B: 03.623464°N, 176.0°E\n    test 95 intersect7s[1].sAB: 1.9e-09\n    test 96 intersect7s[1].aAB: 1.71186e-14\n    test 97 intersect7s[1].c: 0\n    test 98 intersect7s[1].kA: 0\n    test 99 intersect7s[1].kB: 0\n    test 100 intersect7s[1].iteration: None\n\n    test 101 intersect7s[2].A: 03.623464°N, 176.0°E\n    test 102 intersect7s[2].B: 03.623464°N, 176.0°E\n    test 103 intersect7s[2].sAB: 8e-10\n    test 104 intersect7s[2].aAB: 7.20783e-15\n    test 105 intersect7s[2].c: 0\n    test 106 intersect7s[2].kA: 0\n    test 107 intersect7s[2].kB: 0\n    test 108 intersect7s[2].iteration: None\n\n    test 109 intersect7s[3].A: 03.19445°S, 004.0°W\n    test 110 intersect7s[3].B: 03.19445°S, 004.0°W\n    test 111 intersect7s[3].sAB: 2.9e-09\n    test 112 intersect7s[3].aAB: 2.61385e-14\n    test 113 intersect7s[3].c: 0\n    test 114 intersect7s[3].kA: 0\n    test 115 intersect7s[3].kB: 0\n    test 116 intersect7s[3].iteration: None\n\n    test 117 Sphere.Closest.sA: 6.07719e+06\n    test 118 Sphere.Closest.sB: -3.31802e+06\n    test 119 Sphere.Closest.c: 0\n\n    test 120 Sphere.Closest5.A: {azi1: 212.3, lat1: 50.0, latX: 0.0, lon1: -4.0, lonX: -29.839663, s1X: 6077190.710199}\n    test 121 Sphere.Closest5.B: {azi1: 90.0, lat1: 0.0, latX: -0.0, lon1: 0.0, lonX: -29.839663, s1X: -3318019.115902}\n    test 122 Sphere.Closest5.sAB: 8e-10\n    test 123 Sphere.Closest5.aAB: 7.19457e-15\n    test 124 Sphere.Closest5.c: 0\n\n    test 125 invokations: 9\n\n    test 126 _Xdict2: 123\n\n    testGeodesicSolve(pygeodesy.geodesici, 26.02.04)\n    test 127 Intersector: name='', geodesic=GeodesicSolve(ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), GeodSolve='/opt/local/bin/GeodSolve', invokation=15, status=0)\n\n    test 128 Closest.1.sA: 4.2253e+06\n    test 129 Closest.1.sB: 2.70933e+06\n    test 130 Closest.1.c: 0\n    test 131 Closest.1.sX0: 6.93463e+06\n\n    test 132 Closest5.1.A: {a1X: 38.075573, azi1: 45.0, aziX: 51.790249, lat1: 0.0, latX: 25.92918, lon1: 0.0, lonX: 28.89426, s1X: 4225301.108897}  FAILED, KNOWN, expected {azi1: 45.0, lat1: 0.0, latX: 25.92918, lon1: 0.0, lonX: 28.89426, s1X: 4225301.108897}\n    test 133 Closest5.1.B: {a1X: 24.392077, azi1: 135.0, aziX: 146.182975, lat1: 45.0, latX: 25.92918, lon1: 10.0, lonX: 28.89426, s1X: 2709328.885611}  FAILED, KNOWN, expected {azi1: 135.0, lat1: 45.0, latX: 25.92918, lon1: 10.0, lonX: 28.89426, s1X: 2709328.885611}\n    test 134 Closest5.1.sAB: 0\n    test 135 Closest5.1.aAB: 0\n    test 136 Closest5.1.c: 0\n\n    test 137 Closest.2.sA: 6.05805e+06\n    test 138 Closest.2.sB: -3.31125e+06\n    test 139 Closest.2.c: 0\n    test 140 Closest.2.sX0: 9.3693e+06\n\n    test 141 Closest5.2.A: {a1X: 54.562637, azi1: -147.7, aziX: -159.869978, lat1: 50.0, latX: -0.0, lon1: -4.0, lonX: -29.745492, s1X: 6058048.653081}  FAILED, KNOWN, expected {azi1: 212.3, lat1: 50.0, latX: -0.0, lon1: -4.0, lonX: -29.745492, s1X: 6058048.653081}\n    test 142 Closest5.2.A.azi1: 212.3  FAILED, KNOWN (1.69571), expected -147.7\n    test 143 Closest5.2.B: {a1X: -29.845558, azi1: 90.0, aziX: 90.0, lat1: 0.0, latX: -0.0, lon1: 0.0, lonX: -29.745492, s1X: -3311252.995823}  FAILED, KNOWN, expected {azi1: 90.0, lat1: 0.0, latX: -0.0, lon1: 0.0, lonX: -29.745492, s1X: -3311252.995823}\n    test 144 Closest5.2.sAB: 1.2e-09  FAILED, KNOWN (2e-10), expected 1e-09\n    test 145 Closest5.2.aAB: 1.1e-14  FAILED, KNOWN (1.98663e-15), expected 9.01337e-15\n    test 146 Closest5.2.c: 0\n\n    test 147 All[0].sA: -494582\n    test 148 All[0].sB: 1.40522e+07\n    test 149 All[0].c: 0\n    test 150 All[0].sX0: 1.45468e+07\n    test 151 All[0].iteration: 4  FAILED, KNOWN (1), expected 0\n\n    test 152 All[1].sA: 1.95291e+07\n    test 153 All[1].sB: -5.93234e+06\n    test 154 All[1].c: 0\n    test 155 All[1].sX0: 2.54615e+07\n    test 156 All[1].iteration: 4  FAILED, KNOWN (0.75), expected 1\n\n    test 157 All[2].sA: -494582\n    test 158 All[2].sB: -2.59556e+07\n    test 159 All[2].c: 0\n    test 160 All[2].sX0: 2.64502e+07\n    test 161 All[2].iteration: 4  FAILED, KNOWN (0.5), expected 2\n\n    test 162 All[3].sA: -2.05181e+07\n    test 163 All[3].sB: -5.97086e+06\n    test 164 All[3].c: 0\n    test 165 All[3].sX0: 2.64889e+07\n    test 166 All[3].iteration: 4  FAILED, KNOWN (0.25), expected 3\n\n    test 167 All5[0].A: {a1X: -4.448619, azi1: -147.7, aziX: -144.55245, lat1: 50.0, latX: 53.692598, lon1: -4.0, lonX: -0.0, s1X: -494582.492241}  FAILED, KNOWN, expected {azi1: 212.3, lat1: 50.0, latX: 53.692598, lon1: -4.0, lonX: -0.0, s1X: -494582.492241}\n    test 168 All5[0].A.azi1: 212.3  FAILED, KNOWN (1.69571), expected -147.7\n    test 169 All5[0].B: {a1X: 126.399265, azi1: 0.0, aziX: 180.0, lat1: 0.0, latX: 53.692598, lon1: 180.0, lonX: 0.0, s1X: 14052229.965229}  FAILED, KNOWN, expected {azi1: 0.0, lat1: 0.0, latX: 53.692598, lon1: 180.0, lonX: 0.0, s1X: 14052229.965229}\n    test 170 All5[0].sAB: 2.6e-09  FAILED, KNOWN (1.4e-09), expected 1.2e-09\n    test 171 All5[0].aAB: 3.7e-14  FAILED, KNOWN (2.62075e-14), expected 1.07925e-14\n    test 172 All5[0].c: 0\n    test 173 All5[0].iteration: 4  FAILED, KNOWN, expected None\n\n    test 174 All5[1].A: {a1X: 175.764866, azi1: -147.7, aziX: -35.280487, lat1: 50.0, latX: -53.518675, lon1: -4.0, lonX: 180.0, s1X: 19529110.042937}  FAILED, KNOWN, expected {azi1: 212.3, lat1: 50.0, latX: -53.518675, lon1: -4.0, lonX: 180.0, s1X: 19529110.042937}\n    test 175 All5[1].A.azi1: 212.3  FAILED, KNOWN (1.69571), expected -147.7\n    test 176 All5[1].B: {a1X: -53.426639, azi1: 0.0, aziX: 0.0, lat1: 0.0, latX: -53.518675, lon1: 180.0, lonX: 180.0, s1X: -5932344.259165}  FAILED, KNOWN, expected {azi1: 0.0, lat1: 0.0, latX: -53.518675, lon1: 180.0, lonX: 180.0, s1X: -5932344.259165}\n    test 177 All5[1].sAB: 3e-09\n    test 178 All5[1].aAB: 2.7e-14  FAILED, KNOWN (1.8458e-17), expected 2.69815e-14\n    test 179 All5[1].c: 0\n    test 180 All5[1].iteration: 4  FAILED, KNOWN, expected None\n\n    test 181 All5[2].A: {a1X: -4.448619, azi1: -147.7, aziX: -144.55245, lat1: 50.0, latX: 53.692598, lon1: -4.0, lonX: 0.0, s1X: -494582.492241}  FAILED, KNOWN, expected {azi1: 212.3, lat1: 50.0, latX: 53.692598, lon1: -4.0, lonX: -0.0, s1X: -494582.492241}\n    test 182 All5[2].A.azi1: 212.3  FAILED, KNOWN (1.69571), expected -147.7\n    test 183 All5[2].B: {a1X: -233.600735, azi1: 0.0, aziX: 180.0, lat1: 0.0, latX: 53.692598, lon1: 180.0, lonX: 0.0, s1X: -25955632.952022}  FAILED, KNOWN, expected {azi1: 0.0, lat1: 0.0, latX: 53.692598, lon1: 180.0, lonX: 0.0, s1X: -25955632.952022}\n    test 184 All5[2].sAB: 1.6e-09  FAILED, KNOWN (1.1e-09), expected 2.7e-09\n    test 185 All5[2].aAB: 1.5e-14  FAILED, KNOWN (9.28315e-15), expected 2.42832e-14\n    test 186 All5[2].c: 0\n    test 187 All5[2].iteration: 4  FAILED, KNOWN, expected None\n\n    test 188 All5[3].A: {a1X: -184.660358, azi1: -147.7, aziX: -35.614985, lat1: 50.0, latX: -53.864737, lon1: -4.0, lonX: -180.0, s1X: -20518081.166643}  FAILED, KNOWN, expected {azi1: 212.3, lat1: 50.0, latX: -53.864737, lon1: -4.0, lonX: -180.0, s1X: -20518081.166643}\n    test 189 All5[3].A.azi1: 212.3  FAILED, KNOWN (1.69571), expected -147.7\n    test 190 All5[3].B: {a1X: -53.773048, azi1: 0.0, aziX: 0.0, lat1: 0.0, latX: -53.864737, lon1: 180.0, lonX: 180.0, s1X: -5970860.779079}  FAILED, KNOWN, expected {azi1: 0.0, lat1: 0.0, latX: -53.864737, lon1: 180.0, lonX: 180.0, s1X: -5970860.779079}\n    test 191 All5[3].sAB: 3.7e-09  FAILED, KNOWN (5e-10), expected 4.2e-09\n    test 192 All5[3].aAB: 4e-14  FAILED, KNOWN (2.20743e-15), expected 3.77926e-14\n    test 193 All5[3].c: 0\n    test 194 All5[3].iteration: 4  FAILED, KNOWN, expected None\n\n    test 195 Middle.sA: 782555\n    test 196 Middle.sB: 5.54085e+06  FAILED, KNOWN (0.000724055), expected 5.53684e+06\n    test 197 Middle.c: 0\n    test 198 Middle.sX0: 0\n\n    test 199 Middle5.A: {a12: 14.106434, a1M: 7.053396, azi1: 44.75191, azi2: 45.629037, aziM: 44.969535, lat1: 0.0, lat2: 10.0, latM: 5.019509, lon1: 0.0, lon2: 10.0, lonM: 4.961883, s12: 1565109.099218, s1M: 782554.549609}  FAILED, KNOWN, expected {a12: 14.106434, a1M: 7.053396, azi1: 44.75191, azi2: 45.629037, aziM: 44.969535, lat1: 0.0, lat2: 10.0, latM: 5.019509, lon1: 0.0, lon2: 10.0, lonM: 4.961883, m12: 780579.492953, M12: 0.992432, M21: 0.992432, s12: 1565109.099218, s1M: 782554.549609}\n    test 200 Middle5.B: {a12: 99.810444, a1M: 49.905222, azi1: 180.0, azi2: 180.0, aziM: 180.0, lat1: 50.0, lat2: -50.0, latM: 0.0, lon1: -4.0, lon2: -4.0, lonM: -4.0, s12: 11081694.083368, s1M: 5540847.041684}  FAILED, KNOWN, expected {a12: 99.810444, a1M: 49.869061, azi1: 180.0, azi2: 180.0, aziM: 180.0, lat1: 50.0, lat2: -50.0, latM: 0.036282, lon1: -4.0, lon2: -4.0, lonM: -4.0, m12: 4864571.105922, M12: 0.645508, M21: 0.644537, s12: 11073670.322999, s1M: 5536835.161499}\n    test 201 Middle5.B.latM: 1e-15  FAILED, KNOWN (0.0362822), expected 0.03628221979727372\n    test 202 Middle5.B.s1M: 5540847.041684149  FAILED, KNOWN (0.000724055), expected 5536835.161499482\n    test 203 Middle5.B.a1M: 49.905221888853184  FAILED, KNOWN (0.000724585), expected 49.869061316437026\n    test 204 Middle5.B.s12: 11081694.083368298  FAILED, KNOWN (0.000724055), expected 11073670.322998963\n    test 205 Middle5.sMM: 1.14053e+06  FAILED, KNOWN (0.0017142), expected 1.13857e+06\n    test 206 Middle5.aMM: 10.2799  FAILED, KNOWN (0.00171426), expected 10.2623\n    test 207 Middle5.c: 0\n\n    test 208 Segment.sA: -631414\n    test 209 Segment.sB: 5.98889e+06\n    test 210 Segment.c: 0\n    test 211 Segment.sX0: 1.86201e+06\n    test 212 Segment.kA: -1\n    test 213 Segment.kB: 0\n    test 214 Segment.k: -3\n\n    test 215 Segment5.A: {a1X: -5.691141, azi1: 44.75191, aziX: 44.893464, k2: -1, lat1: 0.0, latX: -4.051871, lon1: 0.0, lonX: -4.0, s1X: -631414.26877}  FAILED, KNOWN, expected {k2: -1, lat1: 0.0, lat2: 10.0, latX: -4.051871, lon1: 0.0, lon2: 10.0, lonX: -4.0, s1X: -631414.26877}\n    test 216 Segment5.B: {a1X: 53.943553, azi1: 180.0, aziX: 180.0, k2: 0, lat1: 50.0, latX: -4.051871, lon1: -4.0, lonX: -4.0, s1X: 5988887.278435}  FAILED, KNOWN, expected {k2: 0, lat1: 50.0, lat2: -50.0, latX: -4.051871, lon1: -4.0, lon2: -4.0, lonX: -4.0, s1X: 5988887.278435}\n    test 217 Segment5.sAB: 0  FAILED, KNOWN (3e-10), expected 3e-10\n    test 218 Segment5.aAB: 0  FAILED, KNOWN (2.70397e-15), expected 2.70397e-15\n    test 219 Segment5.c: 0\n\n    test 220 intersect7s[0].A: 04.051871°S, 004.0°W\n    test 221 intersect7s[0].B: 04.051871°S, 004.0°W\n    test 222 intersect7s[0].sAB: 1.5e-09  FAILED, KNOWN (1.2e-09), expected 3e-10\n    test 223 intersect7s[0].aAB: 1.3e-14  FAILED, KNOWN (1.0296e-14), expected 2.70397e-15\n    test 224 intersect7s[0].c: 0\n    test 225 intersect7s[0].kA: 0\n    test 226 intersect7s[0].kB: 0\n    test 227 intersect7s[0].iteration: None\n\n    test 228 intersect7s[1].A: 03.623464°N, 176.0°E\n    test 229 intersect7s[1].B: 03.623464°N, 176.0°E\n    test 230 intersect7s[1].sAB: 1.3e-09  FAILED, KNOWN (6e-10), expected 1.9e-09\n    test 231 intersect7s[1].aAB: 1.1e-14  FAILED, KNOWN (6.1186e-15), expected 1.71186e-14\n    test 232 intersect7s[1].c: 0\n    test 233 intersect7s[1].kA: 0\n    test 234 intersect7s[1].kB: 0\n    test 235 intersect7s[1].iteration: None\n\n    test 236 intersect7s[2].A: 04.051871°S, 004.0°W  FAILED, KNOWN (1.03199), expected 03.623464°N, 176.0°E\n    test 237 intersect7s[2].B: 04.051871°S, 004.0°W  FAILED, KNOWN (1.03199), expected 03.623464°N, 176.0°E\n    test 238 intersect7s[2].sAB: 1.6e-09  FAILED, KNOWN (8e-10), expected 8e-10\n    test 239 intersect7s[2].aAB: 1.4e-14  FAILED, KNOWN (6.79217e-15), expected 7.20783e-15\n    test 240 intersect7s[2].c: 0\n    test 241 intersect7s[2].kA: 0\n    test 242 intersect7s[2].kB: 0\n    test 243 intersect7s[2].iteration: None\n\n    test 244 intersect7s[3].A: 04.4796°N, 176.0°E  FAILED, KNOWN (1.02993), expected 03.19445°S, 004.0°W\n    test 245 intersect7s[3].B: 04.4796°N, 176.0°E  FAILED, KNOWN (1.02993), expected 03.19445°S, 004.0°W\n    test 246 intersect7s[3].sAB: 3.4e-09  FAILED, KNOWN (5e-10), expected 2.9e-09\n    test 247 intersect7s[3].aAB: 3.1e-14  FAILED, KNOWN (4.86149e-15), expected 2.61385e-14\n    test 248 intersect7s[3].c: 0\n    test 249 intersect7s[3].kA: 0\n    test 250 intersect7s[3].kB: 0\n    test 251 intersect7s[3].iteration: None\n\n    test 252 Sphere.Closest.sA: 6.07719e+06\n    test 253 Sphere.Closest.sB: -3.31802e+06\n    test 254 Sphere.Closest.c: 0\n    test 255 Sphere.Closest.sX0: 9.39521e+06\n\n    test 256 Sphere.Closest5.A: {a1X: 54.653489, azi1: -147.7, aziX: -159.911264, lat1: 50.0, latX: 0.0, lon1: -4.0, lonX: -29.839663, s1X: 6077190.710199}  FAILED, KNOWN, expected {azi1: 212.3, lat1: 50.0, latX: 0.0, lon1: -4.0, lonX: -29.839663, s1X: 6077190.710199}\n    test 257 Sphere.Closest5.A.azi1: 212.3  FAILED, KNOWN (1.69571), expected -147.7\n    test 258 Sphere.Closest5.B: {a1X: -29.839663, azi1: 90.0, aziX: 90.0, lat1: 0.0, latX: -0.0, lon1: 0.0, lonX: -29.839663, s1X: -3318019.115902}  FAILED, KNOWN, expected {azi1: 90.0, lat1: 0.0, latX: -0.0, lon1: 0.0, lonX: -29.839663, s1X: -3318019.115902}\n    test 259 Sphere.Closest5.sAB: 0  FAILED, KNOWN (8e-10), expected 8e-10\n    test 260 Sphere.Closest5.aAB: 0  FAILED, KNOWN (7.19457e-15), expected 7.19457e-15\n    test 261 Sphere.Closest5.c: 0\n\n    test 262 _Xdict2: 127\n\n    testGeodesicExact(pygeodesy.geodesici, 26.02.04)\n    test 263 Intersector: name='', geodesic=GeodesicExact(name='', caps=0, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), C4order=30)\n\n    test 264 Closest.1.sA: 4.2253e+06\n    test 265 Closest.1.sB: 2.70933e+06\n    test 266 Closest.1.c: 0\n    test 267 Closest.1.sX0: 6.93463e+06\n\n    test 268 Closest5.1.A: {a1X: 38.075573, azi1: 45.0, aziX: 51.790249, lat1: 0.0, latX: 25.92918, lon1: 0.0, lonX: 28.89426, m12: 3921213.171755, M12: 0.787198, M21: 0.787384, s1X: 4225301.108897}  FAILED, KNOWN, expected {azi1: 45.0, lat1: 0.0, latX: 25.92918, lon1: 0.0, lonX: 28.89426, s1X: 4225301.108897}\n    test 269 Closest5.1.B: {a1X: 24.392077, azi1: 135.0, aziX: 146.182975, lat1: 45.0, latX: 25.92918, lon1: 10.0, lonX: 28.89426, m12: 2628412.372503, M12: 0.911005, M21: 0.910881, s1X: 2709328.885611}  FAILED, KNOWN, expected {azi1: 135.0, lat1: 45.0, latX: 25.92918, lon1: 10.0, lonX: 28.89426, s1X: 2709328.885611}\n    test 270 Closest5.1.sAB: 7.94571e-10  FAILED, KNOWN (7.94571e-10), expected 0\n    test 271 Closest5.1.aAB: 7.15718e-15  FAILED, KNOWN (7.15718e-15), expected 0\n    test 272 Closest5.1.c: 0\n\n    test 273 Closest.2.sA: 6.05805e+06\n    test 274 Closest.2.sB: -3.31125e+06\n    test 275 Closest.2.c: 0\n    test 276 Closest.2.sX0: 9.3693e+06\n\n    test 277 Closest5.2.A: {a1X: 54.562637, azi1: -147.7, aziX: -159.869978, lat1: 50.0, latX: 0.0, lon1: -4.0, lonX: -29.745492, m12: 5184118.430287, M12: 0.58097, M21: 0.579813, s1X: 6058048.653081}  FAILED, KNOWN, expected {azi1: 212.3, lat1: 50.0, latX: -0.0, lon1: -4.0, lonX: -29.745492, s1X: 6058048.653081}\n    test 278 Closest5.2.A.azi1: 212.3  FAILED, KNOWN (1.69571), expected -147.7\n    test 279 Closest5.2.B: {a1X: -29.845558, azi1: 90.0, aziX: 90.0, lat1: 0.0, latX: -0.0, lon1: 0.0, lonX: -29.745492, m12: -3163525.514556, M12: 0.86737, M21: 0.86737, s1X: -3311252.995823}  FAILED, KNOWN, expected {azi1: 90.0, lat1: 0.0, latX: -0.0, lon1: 0.0, lonX: -29.745492, s1X: -3311252.995823}\n    test 280 Closest5.2.sAB: 3.95486e-10  FAILED, KNOWN (6.04514e-10), expected 1e-09\n    test 281 Closest5.2.aAB: 3.56467e-15  FAILED, KNOWN (5.44871e-15), expected 9.01337e-15\n    test 282 Closest5.2.c: 0\n\n    test 283 All[0].sA: -494582\n    test 284 All[0].sB: 1.40522e+07\n    test 285 All[0].c: 0\n    test 286 All[0].sX0: 1.45468e+07\n    test 287 All[0].iteration: 4  FAILED, KNOWN (1), expected 0\n\n    test 288 All[1].sA: 1.95291e+07\n    test 289 All[1].sB: -5.93234e+06\n    test 290 All[1].c: 0\n    test 291 All[1].sX0: 2.54615e+07\n    test 292 All[1].iteration: 4  FAILED, KNOWN (0.75), expected 1\n\n    test 293 All[2].sA: -494582\n    test 294 All[2].sB: -2.59556e+07\n    test 295 All[2].c: 0\n    test 296 All[2].sX0: 2.64502e+07\n    test 297 All[2].iteration: 4  FAILED, KNOWN (0.5), expected 2\n\n    test 298 All[3].sA: -2.05181e+07\n    test 299 All[3].sB: -5.97086e+06\n    test 300 All[3].c: 0\n    test 301 All[3].sX0: 2.64889e+07\n    test 302 All[3].iteration: 4  FAILED, KNOWN (0.25), expected 3\n\n    test 303 All5[0].A: {a1X: -4.448619, azi1: -147.7, aziX: -144.55245, lat1: 50.0, latX: 53.692598, lon1: -4.0, lonX: 0.0, m12: -494087.771694, M12: 0.996999, M21: 0.997, s1X: -494582.492241}  FAILED, KNOWN, expected {azi1: 212.3, lat1: 50.0, latX: 53.692598, lon1: -4.0, lonX: -0.0, s1X: -494582.492241}\n    test 304 All5[0].A.azi1: 212.3  FAILED, KNOWN (1.69571), expected -147.7\n    test 305 All5[0].B: {a1X: 126.399265, azi1: 0.0, aziX: 180.0, lat1: 0.0, latX: 53.692598, lon1: 180.0, lonX: 0.0, m12: 5161737.753947, M12: -0.593409, M21: -0.586165, s1X: 14052229.965229}  FAILED, KNOWN, expected {azi1: 0.0, lat1: 0.0, latX: 53.692598, lon1: 180.0, lonX: 0.0, s1X: 14052229.965229}\n    test 306 All5[0].sAB: 3.54078e-09  FAILED, KNOWN (2.34078e-09), expected 1.2e-09\n    test 307 All5[0].aAB: 3.18449e-14  FAILED, KNOWN (2.10524e-14), expected 1.07925e-14\n    test 308 All5[0].c: 0\n    test 309 All5[0].iteration: 4  FAILED, KNOWN, expected None\n\n    test 310 All5[1].A: {a1X: 175.764866, azi1: -147.7, aziX: -35.280487, lat1: 50.0, latX: -53.518675, lon1: -4.0, lonX: 180.0, m12: 488198.978244, M12: -1.001203, M21: -0.992673, s1X: 19529110.042937}  FAILED, KNOWN, expected {azi1: 212.3, lat1: 50.0, latX: -53.518675, lon1: -4.0, lonX: 180.0, s1X: 19529110.042937}\n    test 311 All5[1].A.azi1: 212.3  FAILED, KNOWN (1.69571), expected -147.7\n    test 312 All5[1].B: {a1X: -53.426639, azi1: 0.0, aziX: 0.0, lat1: 0.0, latX: -53.518675, lon1: 180.0, lonX: 180.0, m12: -5110370.613686, M12: 0.595852, M21: 0.597076, s1X: -5932344.259165}  FAILED, KNOWN, expected {azi1: 0.0, lat1: 0.0, latX: -53.518675, lon1: 180.0, lonX: 180.0, s1X: -5932344.259165}\n    test 313 All5[1].sAB: 4.00748e-09  FAILED, KNOWN (1.00748e-09), expected 3e-09\n    test 314 All5[1].aAB: 3.60427e-14  FAILED, KNOWN (9.06113e-15), expected 2.69815e-14\n    test 315 All5[1].c: 0\n    test 316 All5[1].iteration: 4  FAILED, KNOWN, expected None\n\n    test 317 All5[2].A: {a1X: -4.448619, azi1: -147.7, aziX: -144.55245, lat1: 50.0, latX: 53.692598, lon1: -4.0, lonX: -0.0, m12: -494087.771694, M12: 0.996999, M21: 0.997, s1X: -494582.492241}  FAILED, KNOWN, expected {azi1: 212.3, lat1: 50.0, latX: 53.692598, lon1: -4.0, lonX: -0.0, s1X: -494582.492241}\n    test 318 All5[2].A.azi1: 212.3  FAILED, KNOWN (1.69571), expected -147.7\n    test 319 All5[2].B: {a1X: -233.600735, azi1: 0.0, aziX: 180.0, lat1: 0.0, latX: 53.692598, lon1: 180.0, lonX: 0.0, m12: 5082071.927222, M12: -0.593409, M21: -0.603127, s1X: -25955632.952022}  FAILED, KNOWN, expected {azi1: 0.0, lat1: 0.0, latX: 53.692598, lon1: 180.0, lonX: 0.0, s1X: -25955632.952022}\n    test 320 All5[2].sAB: 1.78008e-09  FAILED, KNOWN (9.19915e-10), expected 2.7e-09\n    test 321 All5[2].aAB: 1.60097e-14  FAILED, KNOWN (8.27349e-15), expected 2.42832e-14\n    test 322 All5[2].c: 0\n    test 323 All5[2].iteration: 4  FAILED, KNOWN, expected None\n\n    test 324 All5[3].A: {a1X: -184.660358, azi1: -147.7, aziX: -35.614985, lat1: 50.0, latX: -53.864737, lon1: -4.0, lonX: -180.0, m12: 499994.868419, M12: -0.992833, M21: -1.001337, s1X: -20518081.166643}  FAILED, KNOWN, expected {azi1: 212.3, lat1: 50.0, latX: -53.864737, lon1: -4.0, lonX: -180.0, s1X: -20518081.166643}\n    test 325 All5[3].A.azi1: 212.3  FAILED, KNOWN (1.69571), expected -147.7\n    test 326 All5[3].B: {a1X: -53.773048, azi1: 0.0, aziX: 0.0, lat1: 0.0, latX: -53.864737, lon1: 180.0, lonX: 180.0, m12: -5133274.754826, M12: 0.590985, M21: 0.592236, s1X: -5970860.779079}  FAILED, KNOWN, expected {azi1: 0.0, lat1: 0.0, latX: -53.864737, lon1: 180.0, lonX: 180.0, s1X: -5970860.779079}\n    test 327 All5[3].sAB: 2.34461e-09  FAILED, KNOWN (1.85539e-09), expected 4.2e-09\n    test 328 All5[3].aAB: 2.10867e-14  FAILED, KNOWN (1.67059e-14), expected 3.77926e-14\n    test 329 All5[3].c: 0\n    test 330 All5[3].iteration: 4  FAILED, KNOWN, expected None\n\n    test 331 Middle.sA: 782555\n    test 332 Middle.sB: 5.53684e+06\n    test 333 Middle.c: 0\n    test 334 Middle.sX0: 0\n\n    test 335 Middle5.A: {a12: 14.106434, a1M: 7.053396, azi1: 44.75191, azi2: 45.629037, aziM: 44.969535, lat1: 0.0, lat2: 10.0, latM: 5.019509, lon1: 0.0, lon2: 10.0, lonM: 4.961883, m12: 780579.492953, M12: 0.992432, M21: 0.992432, s12: 1565109.099218, s1M: 782554.549609}\n    test 336 Middle5.B: {a12: 99.810444, a1M: 49.869061, azi1: 180.0, azi2: 180.0, aziM: 180.0, lat1: 50.0, lat2: -50.0, latM: 0.036282, lon1: -4.0, lon2: -4.0, lonM: -4.0, m12: 4864571.105922, M12: 0.645508, M21: 0.644537, s12: 11073670.322999, s1M: 5536835.161499}\n    test 337 Middle5.sMM: 1.13857e+06\n    test 338 Middle5.aMM: 10.2623\n    test 339 Middle5.c: 0\n\n    test 340 Segment.sA: -631414\n    test 341 Segment.sB: 5.98889e+06\n    test 342 Segment.c: 0\n    test 343 Segment.sX0: 1.86602e+06  FAILED, KNOWN (0.00214997), expected 1.86201e+06\n    test 344 Segment.kA: -1\n    test 345 Segment.kB: 0\n    test 346 Segment.k: -3\n\n    test 347 Segment5.A: {a1X: -5.691141, azi1: 44.75191, azi2: 45.629037, aziX: 44.893464, k2: -1, lat1: 0.0, lat2: 10.0, latX: -4.051871, lon1: 0.0, lon2: 10.0, lonX: -4.0, m12: -630376.505305, M12: 0.995071, M21: 0.995071, s1X: -631414.26877}  FAILED, KNOWN, expected {k2: -1, lat1: 0.0, lat2: 10.0, latX: -4.051871, lon1: 0.0, lon2: 10.0, lonX: -4.0, s1X: -631414.26877}\n    test 348 Segment5.B: {a1X: 53.943553, azi1: 180.0, azi2: 180.0, aziX: 180.0, k2: 0, lat1: 50.0, lat2: -50.0, latX: -4.051871, lon1: -4.0, lon2: -4.0, lonX: -4.0, m12: 5143394.782542, M12: 0.589657, M21: 0.588535, s1X: 5988887.278435}  FAILED, KNOWN, expected {k2: 0, lat1: 50.0, lat2: -50.0, latX: -4.051871, lon1: -4.0, lon2: -4.0, lonX: -4.0, s1X: 5988887.278435}\n    test 349 Segment5.sAB: 1.36757e-09  FAILED, KNOWN (1.06757e-09), expected 3e-10\n    test 350 Segment5.aAB: 1.23262e-14  FAILED, KNOWN (9.62224e-15), expected 2.70397e-15\n    test 351 Segment5.c: 0\n\n    test 352 intersect7s[0].A: 04.051871°S, 004.0°W\n    test 353 intersect7s[0].B: 04.051871°S, 004.0°W\n    test 354 intersect7s[0].sAB: 1.4124e-09  FAILED, KNOWN (1.1124e-09), expected 3e-10\n    test 355 intersect7s[0].aAB: 1.27222e-14  FAILED, KNOWN (1.00183e-14), expected 2.70397e-15\n    test 356 intersect7s[0].c: 0\n    test 357 intersect7s[0].kA: 0\n    test 358 intersect7s[0].kB: 0\n    test 359 intersect7s[0].iteration: None\n\n    test 360 intersect7s[1].A: 03.623464°N, 176.0°E\n    test 361 intersect7s[1].B: 03.623464°N, 176.0°E\n    test 362 intersect7s[1].sAB: 1.67723e-09  FAILED, KNOWN (2.22771e-10), expected 1.9e-09\n    test 363 intersect7s[1].aAB: 1.51076e-14  FAILED, KNOWN (2.01096e-15), expected 1.71186e-14\n    test 364 intersect7s[1].c: 0\n    test 365 intersect7s[1].kA: 0\n    test 366 intersect7s[1].kB: 0\n    test 367 intersect7s[1].iteration: None\n\n    test 368 intersect7s[2].A: 04.051871°S, 004.0°W  FAILED, KNOWN (1.03199), expected 03.623464°N, 176.0°E\n    test 369 intersect7s[2].B: 04.051871°S, 004.0°W  FAILED, KNOWN (1.03199), expected 03.623464°N, 176.0°E\n    test 370 intersect7s[2].sAB: 3.53101e-10  FAILED, KNOWN (4.46899e-10), expected 8e-10\n    test 371 intersect7s[2].aAB: 3.18055e-15  FAILED, KNOWN (4.02728e-15), expected 7.20783e-15\n    test 372 intersect7s[2].c: 0\n    test 373 intersect7s[2].kA: 0\n    test 374 intersect7s[2].kB: 0\n    test 375 intersect7s[2].iteration: None\n\n    test 376 intersect7s[3].A: 04.4796°N, 176.0°E  FAILED, KNOWN (1.02993), expected 03.19445°S, 004.0°W\n    test 377 intersect7s[3].B: 04.4796°N, 176.0°E  FAILED, KNOWN (1.02993), expected 03.19445°S, 004.0°W\n    test 378 intersect7s[3].sAB: 3.19839e-09  FAILED, KNOWN (2.98393e-10), expected 2.9e-09\n    test 379 intersect7s[3].aAB: 2.88277e-14  FAILED, KNOWN (2.68921e-15), expected 2.61385e-14\n    test 380 intersect7s[3].c: 0\n    test 381 intersect7s[3].kA: 0\n    test 382 intersect7s[3].kB: 0\n    test 383 intersect7s[3].iteration: None\n\n    test 384 Sphere.Closest.sA: 6.07719e+06\n    test 385 Sphere.Closest.sB: -3.31802e+06\n    test 386 Sphere.Closest.c: 0\n    test 387 Sphere.Closest.sX0: 9.39521e+06\n\n    test 388 Sphere.Closest5.A: {a1X: 54.653489, azi1: -147.7, aziX: -159.911264, lat1: 50.0, latX: -0.0, lon1: -4.0, lonX: -29.839663, m12: 5196622.322619, M12: 0.57852, M21: 0.57852, s1X: 6077190.710199}  FAILED, KNOWN, expected {azi1: 212.3, lat1: 50.0, latX: 0.0, lon1: -4.0, lonX: -29.839663, s1X: 6077190.710199}\n    test 389 Sphere.Closest5.A.azi1: 212.3  FAILED, KNOWN (1.69571), expected -147.7\n    test 390 Sphere.Closest5.B: {a1X: -29.839663, azi1: 90.0, aziX: 90.0, lat1: 0.0, latX: -0.0, lon1: 0.0, lonX: -29.839663, m12: -3170047.454389, M12: 0.867421, M21: 0.867421, s1X: -3318019.115902}  FAILED, KNOWN, expected {azi1: 90.0, lat1: 0.0, latX: -0.0, lon1: 0.0, lonX: -29.839663, s1X: -3318019.115902}\n    test 391 Sphere.Closest5.sAB: 2.06452e-09  FAILED, KNOWN (1.26452e-09), expected 8e-10\n    test 392 Sphere.Closest5.aAB: 1.85667e-14  FAILED, KNOWN (1.13721e-14), expected 7.19457e-15\n    test 393 Sphere.Closest5.c: 0\n\n    test 394 _Xdict2: 127\n\n    testGeodesic(pygeodesy.geodesici, 26.02.04)\n    test 395 Intersector: name='', geodesic=<pygeodesy.geodesicw._gWrapped.Geodesic.<locals>.Geodesic object at 0x103438c20>\n\n    test 396 Closest.1.sA: 4.2253e+06\n    test 397 Closest.1.sB: 2.70933e+06\n    test 398 Closest.1.c: 0\n    test 399 Closest.1.sX0: 6.93463e+06\n\n    test 400 Closest5.1.A: {a1X: 38.075573, azi1: 45.0, aziX: 51.790249, lat1: 0.0, latX: 25.92918, lon1: 0.0, lonX: 28.89426, s1X: 4225301.108897}  FAILED, KNOWN, expected {azi1: 45.0, lat1: 0.0, latX: 25.92918, lon1: 0.0, lonX: 28.89426, s1X: 4225301.108897}\n    test 401 Closest5.1.B: {a1X: 24.392077, azi1: 135.0, aziX: 146.182975, lat1: 45.0, latX: 25.92918, lon1: 10.0, lonX: 28.89426, s1X: 2709328.885611}  FAILED, KNOWN, expected {azi1: 135.0, lat1: 45.0, latX: 25.92918, lon1: 10.0, lonX: 28.89426, s1X: 2709328.885611}\n    test 402 Closest5.1.sAB: 7.11805e-10  FAILED, KNOWN (7.11805e-10), expected 0\n    test 403 Closest5.1.aAB: 6.41166e-15  FAILED, KNOWN (6.41166e-15), expected 0\n    test 404 Closest5.1.c: 0\n\n    test 405 Closest.2.sA: 6.05805e+06\n    test 406 Closest.2.sB: -3.31125e+06\n    test 407 Closest.2.c: 0\n    test 408 Closest.2.sX0: 9.3693e+06\n\n    test 409 Closest5.2.A: {a1X: 54.562637, azi1: -147.7, aziX: -159.869978, lat1: 50.0, latX: -0.0, lon1: -4.0, lonX: -29.745492, s1X: 6058048.653081}  FAILED, KNOWN, expected {azi1: 212.3, lat1: 50.0, latX: -0.0, lon1: -4.0, lonX: -29.745492, s1X: 6058048.653081}\n    test 410 Closest5.2.A.azi1: 212.3  FAILED, KNOWN (1.69571), expected -147.7\n    test 411 Closest5.2.B: {a1X: -29.845558, azi1: 90.0, aziX: 90.0, lat1: 0.0, latX: -0.0, lon1: 0.0, lonX: -29.745492, s1X: -3311252.995823}  FAILED, KNOWN, expected {azi1: 90.0, lat1: 0.0, latX: -0.0, lon1: 0.0, lonX: -29.745492, s1X: -3311252.995823}\n    test 412 Closest5.2.sAB: 1.27e-09  FAILED, KNOWN (2.69996e-10), expected 1e-09\n    test 413 Closest5.2.aAB: 1.14469e-14  FAILED, KNOWN (2.43358e-15), expected 9.01337e-15\n    test 414 Closest5.2.c: 0\n\n    test 415 All[0].sA: -494582\n    test 416 All[0].sB: 1.40522e+07\n    test 417 All[0].c: 0\n    test 418 All[0].sX0: 1.45468e+07\n    test 419 All[0].iteration: 4  FAILED, KNOWN (1), expected 0\n\n    test 420 All[1].sA: 1.95291e+07\n    test 421 All[1].sB: -5.93234e+06\n    test 422 All[1].c: 0\n    test 423 All[1].sX0: 2.54615e+07\n    test 424 All[1].iteration: 4  FAILED, KNOWN (0.75), expected 1\n\n    test 425 All[2].sA: -494582\n    test 426 All[2].sB: -2.59556e+07\n    test 427 All[2].c: 0\n    test 428 All[2].sX0: 2.64502e+07\n    test 429 All[2].iteration: 4  FAILED, KNOWN (0.5), expected 2\n\n    test 430 All[3].sA: -2.05181e+07\n    test 431 All[3].sB: -5.97086e+06\n    test 432 All[3].c: 0\n    test 433 All[3].sX0: 2.64889e+07\n    test 434 All[3].iteration: 4  FAILED, KNOWN (0.25), expected 3\n\n    test 435 All5[0].A: {a1X: -4.448619, azi1: -147.7, aziX: -144.55245, lat1: 50.0, latX: 53.692598, lon1: -4.0, lonX: 0.0, s1X: -494582.492241}  FAILED, KNOWN, expected {azi1: 212.3, lat1: 50.0, latX: 53.692598, lon1: -4.0, lonX: -0.0, s1X: -494582.492241}\n    test 436 All5[0].A.azi1: 212.3  FAILED, KNOWN (1.69571), expected -147.7\n    test 437 All5[0].B: {a1X: 126.399265, azi1: 0.0, aziX: 180.0, lat1: 0.0, latX: 53.692598, lon1: 180.0, lonX: 0.0, s1X: 14052229.965229}  FAILED, KNOWN, expected {azi1: 0.0, lat1: 0.0, latX: 53.692598, lon1: 180.0, lonX: 0.0, s1X: 14052229.965229}\n    test 438 All5[0].sAB: 1.44466e-09  FAILED, KNOWN (2.44659e-10), expected 1.2e-09\n    test 439 All5[0].aAB: 1.29929e-14  FAILED, KNOWN (2.2004e-15), expected 1.07925e-14\n    test 440 All5[0].c: 0\n    test 441 All5[0].iteration: 4  FAILED, KNOWN, expected None\n\n    test 442 All5[1].A: {a1X: 175.764866, azi1: -147.7, aziX: -35.280487, lat1: 50.0, latX: -53.518675, lon1: -4.0, lonX: 180.0, s1X: 19529110.042937}  FAILED, KNOWN, expected {azi1: 212.3, lat1: 50.0, latX: -53.518675, lon1: -4.0, lonX: 180.0, s1X: 19529110.042937}\n    test 443 All5[1].A.azi1: 212.3  FAILED, KNOWN (1.69571), expected -147.7\n    test 444 All5[1].B: {a1X: -53.426639, azi1: 0.0, aziX: 0.0, lat1: 0.0, latX: -53.518675, lon1: 180.0, lonX: 180.0, s1X: -5932344.259165}  FAILED, KNOWN, expected {azi1: 0.0, lat1: 0.0, latX: -53.518675, lon1: 180.0, lonX: 180.0, s1X: -5932344.259165}\n    test 445 All5[1].sAB: 4.71379e-09  FAILED, KNOWN (1.71379e-09), expected 3e-09\n    test 446 All5[1].aAB: 4.23951e-14  FAILED, KNOWN (1.54136e-14), expected 2.69815e-14\n    test 447 All5[1].c: 0\n    test 448 All5[1].iteration: 4  FAILED, KNOWN, expected None\n\n    test 449 All5[2].A: {a1X: -4.448619, azi1: -147.7, aziX: -144.55245, lat1: 50.0, latX: 53.692598, lon1: -4.0, lonX: 0.0, s1X: -494582.492241}  FAILED, KNOWN, expected {azi1: 212.3, lat1: 50.0, latX: 53.692598, lon1: -4.0, lonX: -0.0, s1X: -494582.492241}\n    test 450 All5[2].A.azi1: 212.3  FAILED, KNOWN (1.69571), expected -147.7\n    test 451 All5[2].B: {a1X: -233.600735, azi1: 0.0, aziX: 180.0, lat1: 0.0, latX: 53.692598, lon1: 180.0, lonX: 0.0, s1X: -25955632.952022}  FAILED, KNOWN, expected {azi1: 0.0, lat1: 0.0, latX: 53.692598, lon1: 180.0, lonX: 0.0, s1X: -25955632.952022}\n    test 452 All5[2].sAB: 1.8823e-09  FAILED, KNOWN (8.177e-10), expected 2.7e-09\n    test 453 All5[2].aAB: 1.6929e-14  FAILED, KNOWN (7.3542e-15), expected 2.42832e-14\n    test 454 All5[2].c: 0\n    test 455 All5[2].iteration: 4  FAILED, KNOWN, expected None\n\n    test 456 All5[3].A: {a1X: -184.660358, azi1: -147.7, aziX: -35.614985, lat1: 50.0, latX: -53.864737, lon1: -4.0, lonX: 180.0, s1X: -20518081.166643}  FAILED, KNOWN, expected {azi1: 212.3, lat1: 50.0, latX: -53.864737, lon1: -4.0, lonX: -180.0, s1X: -20518081.166643}\n    test 457 All5[3].A.azi1: 212.3  FAILED, KNOWN (1.69571), expected -147.7\n    test 458 All5[3].A.lonX: -180.0  FAILED, KNOWN (2), expected 179.99999999999994\n    test 459 All5[3].B: {a1X: -53.773048, azi1: 0.0, aziX: 0.0, lat1: 0.0, latX: -53.864737, lon1: 180.0, lonX: 180.0, s1X: -5970860.779079}  FAILED, KNOWN, expected {azi1: 0.0, lat1: 0.0, latX: -53.864737, lon1: 180.0, lonX: 180.0, s1X: -5970860.779079}\n    test 460 All5[3].sAB: 3.99823e-09  FAILED, KNOWN (2.01774e-10), expected 4.2e-09\n    test 461 All5[3].aAB: 3.59587e-14  FAILED, KNOWN (1.83383e-15), expected 3.77926e-14\n    test 462 All5[3].c: 0\n    test 463 All5[3].iteration: 4  FAILED, KNOWN, expected None\n\n    test 464 Middle.sA: 782555\n    test 465 Middle.sB: 5.54085e+06  FAILED, KNOWN (0.000724055), expected 5.53684e+06\n    test 466 Middle.c: 0\n    test 467 Middle.sX0: 0\n\n    test 468 Middle5.A: {a12: 14.106434, a1M: 7.053396, azi1: 44.75191, azi2: 45.629037, aziM: 44.969535, lat1: 0.0, lat2: 10.0, latM: 5.019509, lon1: 0.0, lon2: 10.0, lonM: 4.961883, s12: 1565109.099218, s1M: 782554.549609}  FAILED, KNOWN, expected {a12: 14.106434, a1M: 7.053396, azi1: 44.75191, azi2: 45.629037, aziM: 44.969535, lat1: 0.0, lat2: 10.0, latM: 5.019509, lon1: 0.0, lon2: 10.0, lonM: 4.961883, m12: 780579.492953, M12: 0.992432, M21: 0.992432, s12: 1565109.099218, s1M: 782554.549609}\n    test 469 Middle5.B: {a12: 99.810444, a1M: 49.905222, azi1: 180.0, azi2: 180.0, aziM: 180.0, lat1: 50.0, lat2: -50.0, latM: 0.0, lon1: -4.0, lon2: -4.0, lonM: -4.0, s12: 11081694.083368, s1M: 5540847.041684}  FAILED, KNOWN, expected {a12: 99.810444, a1M: 49.869061, azi1: 180.0, azi2: 180.0, aziM: 180.0, lat1: 50.0, lat2: -50.0, latM: 0.036282, lon1: -4.0, lon2: -4.0, lonM: -4.0, m12: 4864571.105922, M12: 0.645508, M21: 0.644537, s12: 11073670.322999, s1M: 5536835.161499}\n    test 470 Middle5.B.latM: 0.0  FAILED, KNOWN (0.0362822), expected 0.03628221979727372\n    test 471 Middle5.B.s1M: 5540847.04168415  FAILED, KNOWN (0.000724055), expected 5536835.161499482\n    test 472 Middle5.B.a1M: 49.905221888853184  FAILED, KNOWN (0.000724585), expected 49.869061316437026\n    test 473 Middle5.B.s12: 11081694.0833683  FAILED, KNOWN (0.000724055), expected 11073670.322998963\n    test 474 Middle5.sMM: 1.14053e+06  FAILED, KNOWN (0.0017142), expected 1.13857e+06\n    test 475 Middle5.aMM: 10.2799  FAILED, KNOWN (0.00171426), expected 10.2623\n    test 476 Middle5.c: 0\n\n    test 477 Segment.sA: -631414\n    test 478 Segment.sB: 5.98889e+06\n    test 479 Segment.c: 0\n    test 480 Segment.sX0: 1.86201e+06\n    test 481 Segment.kA: -1\n    test 482 Segment.kB: 0\n    test 483 Segment.k: -3\n\n    test 484 Segment5.A: {a1X: -5.691141, azi1: 44.75191, aziX: 44.893464, k2: -1, lat1: 0.0, latX: -4.051871, lon1: 0.0, lonX: -4.0, s1X: -631414.26877}  FAILED, KNOWN, expected {k2: -1, lat1: 0.0, lat2: 10.0, latX: -4.051871, lon1: 0.0, lon2: 10.0, lonX: -4.0, s1X: -631414.26877}\n    test 485 Segment5.B: {a1X: 53.943553, azi1: 180.0, aziX: 180.0, k2: 0, lat1: 50.0, latX: -4.051871, lon1: -4.0, lonX: -4.0, s1X: 5988887.278435}  FAILED, KNOWN, expected {k2: 0, lat1: 50.0, lat2: -50.0, latX: -4.051871, lon1: -4.0, lon2: -4.0, lonX: -4.0, s1X: 5988887.278435}\n    test 486 Segment5.sAB: 5.496e-10  FAILED, KNOWN (2.496e-10), expected 3e-10\n    test 487 Segment5.aAB: 4.95367e-15  FAILED, KNOWN (2.2497e-15), expected 2.70397e-15\n    test 488 Segment5.c: 0\n\n    test 489 intersect7s[0].A: 04.051871°S, 004.0°W\n    test 490 intersect7s[0].B: 04.051871°S, 004.0°W\n    test 491 intersect7s[0].sAB: 2.64649e-10  FAILED, KNOWN (3.53514e-11), expected 3e-10\n    test 492 intersect7s[0].aAB: 2.38534e-15  FAILED, KNOWN (3.1863e-16), expected 2.70397e-15\n    test 493 intersect7s[0].c: 0\n    test 494 intersect7s[0].kA: 0\n    test 495 intersect7s[0].kB: 0\n    test 496 intersect7s[0].iteration: None\n\n    test 497 intersect7s[1].A: 03.623464°N, 176.0°E\n    test 498 intersect7s[1].B: 03.623464°N, 176.0°E\n    test 499 intersect7s[1].sAB: 1.67611e-09  FAILED, KNOWN (2.23892e-10), expected 1.9e-09\n    test 500 intersect7s[1].aAB: 1.51076e-14  FAILED, KNOWN (2.01096e-15), expected 1.71186e-14\n    test 501 intersect7s[1].c: 0\n    test 502 intersect7s[1].kA: 0\n    test 503 intersect7s[1].kB: 0\n    test 504 intersect7s[1].iteration: None\n\n    test 505 intersect7s[2].A: 04.051871°S, 004.0°W  FAILED, KNOWN (1.03199), expected 03.623464°N, 176.0°E\n    test 506 intersect7s[2].B: 04.051871°S, 004.0°W  FAILED, KNOWN (1.03199), expected 03.623464°N, 176.0°E\n    test 507 intersect7s[2].sAB: 5.83925e-10  FAILED, KNOWN (2.16075e-10), expected 8e-10\n    test 508 intersect7s[2].aAB: 5.26305e-15  FAILED, KNOWN (1.94478e-15), expected 7.20783e-15\n    test 509 intersect7s[2].c: 0\n    test 510 intersect7s[2].kA: 0\n    test 511 intersect7s[2].kB: 0\n    test 512 intersect7s[2].iteration: None\n\n    test 513 intersect7s[3].A: 04.4796°N, 176.0°E  FAILED, KNOWN (1.02993), expected 03.19445°S, 004.0°W\n    test 514 intersect7s[3].B: 04.4796°N, 176.0°E  FAILED, KNOWN (1.02993), expected 03.19445°S, 004.0°W\n    test 515 intersect7s[3].sAB: 3.49267e-09  FAILED, KNOWN (5.92669e-10), expected 2.9e-09\n    test 516 intersect7s[3].aAB: 3.14801e-14  FAILED, KNOWN (5.34157e-15), expected 2.61385e-14\n    test 517 intersect7s[3].c: 0\n    test 518 intersect7s[3].kA: 0\n    test 519 intersect7s[3].kB: 0\n    test 520 intersect7s[3].iteration: None\n\n    test 521 Sphere.Closest.sA: 6.07719e+06\n    test 522 Sphere.Closest.sB: -3.31802e+06\n    test 523 Sphere.Closest.c: 0\n    test 524 Sphere.Closest.sX0: 9.39521e+06\n\n    test 525 Sphere.Closest5.A: {a1X: 54.653489, azi1: -147.7, aziX: -159.911264, lat1: 50.0, latX: -0.0, lon1: -4.0, lonX: -29.839663, s1X: 6077190.710199}  FAILED, KNOWN, expected {azi1: 212.3, lat1: 50.0, latX: 0.0, lon1: -4.0, lonX: -29.839663, s1X: 6077190.710199}\n    test 526 Sphere.Closest5.A.azi1: 212.3  FAILED, KNOWN (1.69571), expected -147.7\n    test 527 Sphere.Closest5.B: {a1X: -29.839663, azi1: 90.0, aziX: 90.0, lat1: 0.0, latX: -0.0, lon1: 0.0, lonX: -29.839663, s1X: -3318019.115902}  FAILED, KNOWN, expected {azi1: 90.0, lat1: 0.0, latX: -0.0, lon1: 0.0, lonX: -29.839663, s1X: -3318019.115902}\n    test 528 Sphere.Closest5.sAB: 8.56921e-10  FAILED, KNOWN (5.69206e-11), expected 8e-10\n    test 529 Sphere.Closest5.aAB: 7.70647e-15  FAILED, KNOWN (5.11899e-16), expected 7.19457e-15\n    test 530 Sphere.Closest5.c: 0\n\n    test 531 _Xdict2: 127\n\n    testGeodesicExact(pygeodesy.geodesici, 26.02.04)\n    test 532 Intersectool: geodesic=GeodesicExact(name='', caps=0, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), C4order=30), IntersectTool='/opt/local/bin/IntersectTool', invokation=0, status=None\n\n    test 533 Closest.1.sA: 4.2253e+06\n    test 534 Closest.1.sB: 2.70933e+06\n    test 535 Closest.1.c: 0\n    test 536 Closest.1.latA: 25.9292\n    test 537 Closest.1.lonA: 28.8943\n    test 538 Closest.1.latB: 25.9292\n    test 539 Closest.1.lonB: 28.8943\n    test 540 Closest.1.sAB: 0\n\n    test 541 Closest5.1.A: {azi1: 45.0, lat1: 0.0, latX: 25.92918, lon1: 0.0, lonX: 28.89426, s1X: 4225301.108897}\n    test 542 Closest5.1.B: {azi1: 135.0, lat1: 45.0, latX: 25.92918, lon1: 10.0, lonX: 28.89426, s1X: 2709328.885611}\n    test 543 Closest5.1.sAB: 0\n    test 544 Closest5.1.aAB: 0\n    test 545 Closest5.1.c: 0\n\n    test 546 Closest.2.sA: 6.05805e+06\n    test 547 Closest.2.sB: -3.31125e+06\n    test 548 Closest.2.c: 0\n    test 549 Closest.2.latA: -9e-15\n    test 550 Closest.2.lonA: -29.7455\n    test 551 Closest.2.latB: -0\n    test 552 Closest.2.lonB: -29.7455\n    test 553 Closest.2.sAB: 1e-09\n\n    test 554 Closest5.2.A: {azi1: 212.3, lat1: 50.0, latX: -0.0, lon1: -4.0, lonX: -29.745492, s1X: 6058048.653081}\n    test 555 Closest5.2.B: {azi1: 90.0, lat1: 0.0, latX: -0.0, lon1: 0.0, lonX: -29.745492, s1X: -3311252.995823}\n    test 556 Closest5.2.sAB: 1e-09\n    test 557 Closest5.2.aAB: 9.01337e-15\n    test 558 Closest5.2.c: 0\n\n    test 559 All[0].sA: -494582\n    test 560 All[0].sB: 1.40522e+07\n    test 561 All[0].c: 0\n    test 562 All[0].sX0: 1.45468e+07\n    test 563 All[0].latA: 53.6926\n    test 564 All[0].lonA: -1.2e-14\n    test 565 All[0].latB: 53.6926\n    test 566 All[0].lonB: 0\n    test 567 All[0].sAB: 1.2e-09\n    test 568 All[0].aAB: 1.07925e-14\n    test 569 All[0].iteration: 0\n\n    test 570 All[1].sA: 1.95291e+07\n    test 571 All[1].sB: -5.93234e+06\n    test 572 All[1].c: 0\n    test 573 All[1].sX0: 2.54615e+07\n    test 574 All[1].latA: -53.5187\n    test 575 All[1].lonA: 180\n    test 576 All[1].latB: -53.5187\n    test 577 All[1].lonB: 180\n    test 578 All[1].sAB: 3e-09\n    test 579 All[1].aAB: 2.69815e-14\n    test 580 All[1].iteration: 1\n\n    test 581 All[2].sA: -494582\n    test 582 All[2].sB: -2.59556e+07\n    test 583 All[2].c: 0\n    test 584 All[2].sX0: 2.64502e+07\n    test 585 All[2].latA: 53.6926\n    test 586 All[2].lonA: -1.7e-14\n    test 587 All[2].latB: 53.6926\n    test 588 All[2].lonB: 0\n    test 589 All[2].sAB: 2.7e-09\n    test 590 All[2].aAB: 2.42832e-14\n    test 591 All[2].iteration: 2\n\n    test 592 All[3].sA: -2.05181e+07\n    test 593 All[3].sB: -5.97086e+06\n    test 594 All[3].c: 0\n    test 595 All[3].sX0: 2.64889e+07\n    test 596 All[3].latA: -53.8647\n    test 597 All[3].lonA: -180\n    test 598 All[3].latB: -53.8647\n    test 599 All[3].lonB: 180\n    test 600 All[3].sAB: 4.2e-09\n    test 601 All[3].aAB: 3.77926e-14\n    test 602 All[3].iteration: 3\n\n    test 603 All5[0].A: {azi1: 212.3, lat1: 50.0, latX: 53.692598, lon1: -4.0, lonX: -0.0, s1X: -494582.492241}\n    test 604 All5[0].B: {azi1: 0.0, lat1: 0.0, latX: 53.692598, lon1: 180.0, lonX: 0.0, s1X: 14052229.965229}\n    test 605 All5[0].sAB: 1.2e-09\n    test 606 All5[0].aAB: 1.07925e-14\n    test 607 All5[0].c: 0\n    test 608 All5[0].iteration: None\n\n    test 609 All5[1].A: {azi1: 212.3, lat1: 50.0, latX: -53.518675, lon1: -4.0, lonX: 180.0, s1X: 19529110.042937}\n    test 610 All5[1].B: {azi1: 0.0, lat1: 0.0, latX: -53.518675, lon1: 180.0, lonX: 180.0, s1X: -5932344.259165}\n    test 611 All5[1].sAB: 3e-09\n    test 612 All5[1].aAB: 2.69815e-14\n    test 613 All5[1].c: 0\n    test 614 All5[1].iteration: None\n\n    test 615 All5[2].A: {azi1: 212.3, lat1: 50.0, latX: 53.692598, lon1: -4.0, lonX: -0.0, s1X: -494582.492241}\n    test 616 All5[2].B: {azi1: 0.0, lat1: 0.0, latX: 53.692598, lon1: 180.0, lonX: 0.0, s1X: -25955632.952022}\n    test 617 All5[2].sAB: 2.7e-09\n    test 618 All5[2].aAB: 2.42832e-14\n    test 619 All5[2].c: 0\n    test 620 All5[2].iteration: None\n\n    test 621 All5[3].A: {azi1: 212.3, lat1: 50.0, latX: -53.864737, lon1: -4.0, lonX: -180.0, s1X: -20518081.166643}\n    test 622 All5[3].B: {azi1: 0.0, lat1: 0.0, latX: -53.864737, lon1: 180.0, lonX: 180.0, s1X: -5970860.779079}\n    test 623 All5[3].sAB: 4.2e-09\n    test 624 All5[3].aAB: 3.77926e-14\n    test 625 All5[3].c: 0\n    test 626 All5[3].iteration: None\n\n    test 627 Middle.sA: 782555\n    test 628 Middle.sB: 5.53684e+06\n    test 629 Middle.c: 0\n    test 630 Middle.sX0: 0\n    test 631 Middle.kA: 0\n    test 632 Middle.kB: 0\n    test 633 Middle.k: 0\n    test 634 Middle.latA: 5.01951\n    test 635 Middle.lonA: 4.96188\n    test 636 Middle.aMM: 10.2623\n    test 637 Middle.latB: 0.0362822\n    test 638 Middle.lonB: -4\n    test 639 Middle.sMM: 1.13857e+06\n\n    test 640 Middle5.A: {a12: 14.106434, a1M: 7.053396, azi1: 44.75191, azi2: 45.629037, aziM: 44.969535, lat1: 0.0, lat2: 10.0, latM: 5.019509, lon1: 0.0, lon2: 10.0, lonM: 4.961883, m12: 780579.492953, M12: 0.992432, M21: 0.992432, s12: 1565109.099218, s1M: 782554.549609}\n    test 641 Middle5.B: {a12: 99.810444, a1M: 49.869061, azi1: 180.0, azi2: 180.0, aziM: 180.0, lat1: 50.0, lat2: -50.0, latM: 0.036282, lon1: -4.0, lon2: -4.0, lonM: -4.0, m12: 4864571.105922, M12: 0.645508, M21: 0.644537, s12: 11073670.322999, s1M: 5536835.161499}\n    test 642 Middle5.sMM: 1.13857e+06\n    test 643 Middle5.aMM: 10.2623\n    test 644 Middle5.c: 0\n\n    test 645 Segment.sA: -631414\n    test 646 Segment.sB: 5.98889e+06\n    test 647 Segment.c: 0\n    test 648 Segment.k: -3\n    test 649 Segment.latA: -4.05187\n    test 650 Segment.lonA: -4\n    test 651 Segment.latB: -4.05187\n    test 652 Segment.lonB: -4\n    test 653 Segment.sAB: 3e-10\n    test 654 Segment.kA: -1\n    test 655 Segment.kB: 0\n\n    test 656 Segment5.A: {k2: -1, lat1: 0.0, lat2: 10.0, latX: -4.051871, lon1: 0.0, lon2: 10.0, lonX: -4.0, s1X: -631414.26877}\n    test 657 Segment5.B: {k2: 0, lat1: 50.0, lat2: -50.0, latX: -4.051871, lon1: -4.0, lon2: -4.0, lonX: -4.0, s1X: 5988887.278435}\n    test 658 Segment5.sAB: 3e-10\n    test 659 Segment5.aAB: 2.70397e-15\n    test 660 Segment5.c: 0\n\n    test 661 intersect7s[0].A: 04.051871°S, 004.0°W\n    test 662 intersect7s[0].B: 04.051871°S, 004.0°W\n    test 663 intersect7s[0].sAB: 3e-10\n    test 664 intersect7s[0].aAB: 2.70397e-15\n    test 665 intersect7s[0].c: 0\n    test 666 intersect7s[0].kA: 0\n    test 667 intersect7s[0].kB: 0\n    test 668 intersect7s[0].iteration: None\n\n    test 669 intersect7s[1].A: 03.623464°N, 176.0°E\n    test 670 intersect7s[1].B: 03.623464°N, 176.0°E\n    test 671 intersect7s[1].sAB: 1.9e-09\n    test 672 intersect7s[1].aAB: 1.71186e-14\n    test 673 intersect7s[1].c: 0\n    test 674 intersect7s[1].kA: 0\n    test 675 intersect7s[1].kB: 0\n    test 676 intersect7s[1].iteration: None\n\n    test 677 intersect7s[2].A: 03.623464°N, 176.0°E\n    test 678 intersect7s[2].B: 03.623464°N, 176.0°E\n    test 679 intersect7s[2].sAB: 8e-10\n    test 680 intersect7s[2].aAB: 7.20783e-15\n    test 681 intersect7s[2].c: 0\n    test 682 intersect7s[2].kA: 0\n    test 683 intersect7s[2].kB: 0\n    test 684 intersect7s[2].iteration: None\n\n    test 685 intersect7s[3].A: 03.19445°S, 004.0°W\n    test 686 intersect7s[3].B: 03.19445°S, 004.0°W\n    test 687 intersect7s[3].sAB: 2.9e-09\n    test 688 intersect7s[3].aAB: 2.61385e-14\n    test 689 intersect7s[3].c: 0\n    test 690 intersect7s[3].kA: 0\n    test 691 intersect7s[3].kB: 0\n    test 692 intersect7s[3].iteration: None\n\n    test 693 Sphere.Closest.sA: 6.07719e+06\n    test 694 Sphere.Closest.sB: -3.31802e+06\n    test 695 Sphere.Closest.c: 0\n    test 696 Sphere.Closest.latA: 1e-15\n    test 697 Sphere.Closest.lonA: -29.8397\n    test 698 Sphere.Closest.latB: -0\n    test 699 Sphere.Closest.lonB: -29.8397\n    test 700 Sphere.Closest.sAB: 8e-10\n\n    test 701 Sphere.Closest5.A: {azi1: 212.3, lat1: 50.0, latX: 0.0, lon1: -4.0, lonX: -29.839663, s1X: 6077190.710199}\n    test 702 Sphere.Closest5.B: {azi1: 90.0, lat1: 0.0, latX: -0.0, lon1: 0.0, lonX: -29.839663, s1X: -3318019.115902}\n    test 703 Sphere.Closest5.sAB: 8e-10\n    test 704 Sphere.Closest5.aAB: 7.19457e-15\n    test 705 Sphere.Closest5.c: 0\n\n    test 706 invokations: 9\n\n    test 707 _Xdict2: 173\n\n    testGeodesicSolve(pygeodesy.geodesici, 26.02.04)\n    test 708 Intersector: name='', geodesic=GeodesicSolve(ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), GeodSolve='/opt/local/bin/GeodSolve', invokation=15, status=0)\n\n    test 709 Closest.1.sA: 4.2253e+06\n    test 710 Closest.1.sB: 2.70933e+06\n    test 711 Closest.1.c: 0\n    test 712 Closest.1.sX0: 6.93463e+06\n    test 713 Closest.1.latA: 25.9292\n    test 714 Closest.1.lonA: 28.8943\n    test 715 Closest.1.latB: 25.9292\n    test 716 Closest.1.lonB: 28.8943\n    test 717 Closest.1.sAB: 0\n    test 718 Closest.1.aAB: 0\n\n    test 719 Closest5.1.A: {a1X: 38.075573, azi1: 45.0, aziX: 51.790249, lat1: 0.0, latX: 25.92918, lon1: 0.0, lonX: 28.89426, s1X: 4225301.108897}  FAILED, KNOWN, expected {azi1: 45.0, lat1: 0.0, latX: 25.92918, lon1: 0.0, lonX: 28.89426, s1X: 4225301.108897}\n    test 720 Closest5.1.B: {a1X: 24.392077, azi1: 135.0, aziX: 146.182975, lat1: 45.0, latX: 25.92918, lon1: 10.0, lonX: 28.89426, s1X: 2709328.885611}  FAILED, KNOWN, expected {azi1: 135.0, lat1: 45.0, latX: 25.92918, lon1: 10.0, lonX: 28.89426, s1X: 2709328.885611}\n    test 721 Closest5.1.sAB: 0\n    test 722 Closest5.1.aAB: 0\n    test 723 Closest5.1.c: 0\n\n    test 724 Closest.2.sA: 6.05805e+06\n    test 725 Closest.2.sB: -3.31125e+06\n    test 726 Closest.2.c: 0\n    test 727 Closest.2.sX0: 9.3693e+06\n    test 728 Closest.2.latA: -1e-15  FAILED, KNOWN (8e-15), expected -9e-15\n    test 729 Closest.2.lonA: -29.7455\n    test 730 Closest.2.latB: -0\n    test 731 Closest.2.lonB: -29.7455\n    test 732 Closest.2.sAB: 1.2e-09  FAILED, KNOWN (2e-10), expected 1e-09\n    test 733 Closest.2.aAB: 1.1e-14\n\n    test 734 Closest5.2.A: {a1X: 54.562637, azi1: -147.7, aziX: -159.869978, lat1: 50.0, latX: -0.0, lon1: -4.0, lonX: -29.745492, s1X: 6058048.653081}  FAILED, KNOWN, expected {azi1: 212.3, lat1: 50.0, latX: -0.0, lon1: -4.0, lonX: -29.745492, s1X: 6058048.653081}\n    test 735 Closest5.2.A.azi1: 212.3  FAILED, KNOWN (1.69571), expected -147.7\n    test 736 Closest5.2.B: {a1X: -29.845558, azi1: 90.0, aziX: 90.0, lat1: 0.0, latX: -0.0, lon1: 0.0, lonX: -29.745492, s1X: -3311252.995823}  FAILED, KNOWN, expected {azi1: 90.0, lat1: 0.0, latX: -0.0, lon1: 0.0, lonX: -29.745492, s1X: -3311252.995823}\n    test 737 Closest5.2.sAB: 1.2e-09  FAILED, KNOWN (2e-10), expected 1e-09\n    test 738 Closest5.2.aAB: 1.1e-14  FAILED, KNOWN (1.98663e-15), expected 9.01337e-15\n    test 739 Closest5.2.c: 0\n\n    test 740 All[0].sA: -494582\n    test 741 All[0].sB: 1.40522e+07\n    test 742 All[0].c: 0\n    test 743 All[0].sX0: 1.45468e+07\n    test 744 All[0].latA: 53.6926\n    test 745 All[0].lonA: -2e-15  FAILED, KNOWN (1e-14), expected -1.2e-14\n    test 746 All[0].latB: 53.6926\n    test 747 All[0].lonB: 0\n    test 748 All[0].sAB: 2.6e-09  FAILED, KNOWN (1.4e-09), expected 1.2e-09\n    test 749 All[0].aAB: 3.7e-14  FAILED, KNOWN (2.62075e-14), expected 1.07925e-14\n    test 750 All[0].iteration: 4  FAILED, KNOWN (1), expected 0\n\n    test 751 All[1].sA: 1.95291e+07\n    test 752 All[1].sB: -5.93234e+06\n    test 753 All[1].c: 0\n    test 754 All[1].sX0: 2.54615e+07\n    test 755 All[1].latA: -53.5187\n    test 756 All[1].lonA: 180\n    test 757 All[1].latB: -53.5187\n    test 758 All[1].lonB: 180\n    test 759 All[1].sAB: 3e-09\n    test 760 All[1].aAB: 2.7e-14  FAILED, KNOWN (1.8458e-17), expected 2.69815e-14\n    test 761 All[1].iteration: 4  FAILED, KNOWN (0.75), expected 1\n\n    test 762 All[2].sA: -494582\n    test 763 All[2].sB: -2.59556e+07\n    test 764 All[2].c: 0\n    test 765 All[2].sX0: 2.64502e+07\n    test 766 All[2].latA: 53.6926\n    test 767 All[2].lonA: 1.8e-14  FAILED, KNOWN (1.8e-14), expected -1.7e-14\n    test 768 All[2].latB: 53.6926\n    test 769 All[2].lonB: 0\n    test 770 All[2].sAB: 1.6e-09  FAILED, KNOWN (1.1e-09), expected 2.7e-09\n    test 771 All[2].aAB: 1.5e-14  FAILED, KNOWN (9.28315e-15), expected 2.42832e-14\n    test 772 All[2].iteration: 4  FAILED, KNOWN (0.5), expected 2\n\n    test 773 All[3].sA: -2.05181e+07\n    test 774 All[3].sB: -5.97086e+06\n    test 775 All[3].c: 0\n    test 776 All[3].sX0: 2.64889e+07\n    test 777 All[3].latA: -53.8647\n    test 778 All[3].lonA: -180\n    test 779 All[3].latB: -53.8647\n    test 780 All[3].lonB: 180\n    test 781 All[3].sAB: 3.7e-09  FAILED, KNOWN (5e-10), expected 4.2e-09\n    test 782 All[3].aAB: 4e-14  FAILED, KNOWN (2.20743e-15), expected 3.77926e-14\n    test 783 All[3].iteration: 4  FAILED, KNOWN (0.25), expected 3\n\n    test 784 All5[0].A: {a1X: -4.448619, azi1: -147.7, aziX: -144.55245, lat1: 50.0, latX: 53.692598, lon1: -4.0, lonX: -0.0, s1X: -494582.492241}  FAILED, KNOWN, expected {azi1: 212.3, lat1: 50.0, latX: 53.692598, lon1: -4.0, lonX: -0.0, s1X: -494582.492241}\n    test 785 All5[0].A.azi1: 212.3  FAILED, KNOWN (1.69571), expected -147.7\n    test 786 All5[0].B: {a1X: 126.399265, azi1: 0.0, aziX: 180.0, lat1: 0.0, latX: 53.692598, lon1: 180.0, lonX: 0.0, s1X: 14052229.965229}  FAILED, KNOWN, expected {azi1: 0.0, lat1: 0.0, latX: 53.692598, lon1: 180.0, lonX: 0.0, s1X: 14052229.965229}\n    test 787 All5[0].sAB: 2.6e-09  FAILED, KNOWN (1.4e-09), expected 1.2e-09\n    test 788 All5[0].aAB: 3.7e-14  FAILED, KNOWN (2.62075e-14), expected 1.07925e-14\n    test 789 All5[0].c: 0\n    test 790 All5[0].iteration: 4  FAILED, KNOWN, expected None\n\n    test 791 All5[1].A: {a1X: 175.764866, azi1: -147.7, aziX: -35.280487, lat1: 50.0, latX: -53.518675, lon1: -4.0, lonX: 180.0, s1X: 19529110.042937}  FAILED, KNOWN, expected {azi1: 212.3, lat1: 50.0, latX: -53.518675, lon1: -4.0, lonX: 180.0, s1X: 19529110.042937}\n    test 792 All5[1].A.azi1: 212.3  FAILED, KNOWN (1.69571), expected -147.7\n    test 793 All5[1].B: {a1X: -53.426639, azi1: 0.0, aziX: 0.0, lat1: 0.0, latX: -53.518675, lon1: 180.0, lonX: 180.0, s1X: -5932344.259165}  FAILED, KNOWN, expected {azi1: 0.0, lat1: 0.0, latX: -53.518675, lon1: 180.0, lonX: 180.0, s1X: -5932344.259165}\n    test 794 All5[1].sAB: 3e-09\n    test 795 All5[1].aAB: 2.7e-14  FAILED, KNOWN (1.8458e-17), expected 2.69815e-14\n    test 796 All5[1].c: 0\n    test 797 All5[1].iteration: 4  FAILED, KNOWN, expected None\n\n    test 798 All5[2].A: {a1X: -4.448619, azi1: -147.7, aziX: -144.55245, lat1: 50.0, latX: 53.692598, lon1: -4.0, lonX: 0.0, s1X: -494582.492241}  FAILED, KNOWN, expected {azi1: 212.3, lat1: 50.0, latX: 53.692598, lon1: -4.0, lonX: -0.0, s1X: -494582.492241}\n    test 799 All5[2].A.azi1: 212.3  FAILED, KNOWN (1.69571), expected -147.7\n    test 800 All5[2].B: {a1X: -233.600735, azi1: 0.0, aziX: 180.0, lat1: 0.0, latX: 53.692598, lon1: 180.0, lonX: 0.0, s1X: -25955632.952022}  FAILED, KNOWN, expected {azi1: 0.0, lat1: 0.0, latX: 53.692598, lon1: 180.0, lonX: 0.0, s1X: -25955632.952022}\n    test 801 All5[2].sAB: 1.6e-09  FAILED, KNOWN (1.1e-09), expected 2.7e-09\n    test 802 All5[2].aAB: 1.5e-14  FAILED, KNOWN (9.28315e-15), expected 2.42832e-14\n    test 803 All5[2].c: 0\n    test 804 All5[2].iteration: 4  FAILED, KNOWN, expected None\n\n    test 805 All5[3].A: {a1X: -184.660358, azi1: -147.7, aziX: -35.614985, lat1: 50.0, latX: -53.864737, lon1: -4.0, lonX: -180.0, s1X: -20518081.166643}  FAILED, KNOWN, expected {azi1: 212.3, lat1: 50.0, latX: -53.864737, lon1: -4.0, lonX: -180.0, s1X: -20518081.166643}\n    test 806 All5[3].A.azi1: 212.3  FAILED, KNOWN (1.69571), expected -147.7\n    test 807 All5[3].B: {a1X: -53.773048, azi1: 0.0, aziX: 0.0, lat1: 0.0, latX: -53.864737, lon1: 180.0, lonX: 180.0, s1X: -5970860.779079}  FAILED, KNOWN, expected {azi1: 0.0, lat1: 0.0, latX: -53.864737, lon1: 180.0, lonX: 180.0, s1X: -5970860.779079}\n    test 808 All5[3].sAB: 3.7e-09  FAILED, KNOWN (5e-10), expected 4.2e-09\n    test 809 All5[3].aAB: 4e-14  FAILED, KNOWN (2.20743e-15), expected 3.77926e-14\n    test 810 All5[3].c: 0\n    test 811 All5[3].iteration: 4  FAILED, KNOWN, expected None\n\n    test 812 Middle.sA: 782555\n    test 813 Middle.sB: 5.54085e+06  FAILED, KNOWN (0.000724055), expected 5.53684e+06\n    test 814 Middle.c: 0\n    test 815 Middle.sX0: 0\n    test 816 Middle.latA: 5.01951\n    test 817 Middle.lonA: 4.96188\n    test 818 Middle.latB: 1e-15  FAILED, KNOWN (0.0362822), expected 0.0362822\n    test 819 Middle.lonB: -4\n    test 820 Middle.sAB: 1.14053e+06\n    test 821 Middle.aAB: 10.2799\n\n    test 822 Middle5.A: {a12: 14.106434, a1M: 7.053396, azi1: 44.75191, azi2: 45.629037, aziM: 44.969535, lat1: 0.0, lat2: 10.0, latM: 5.019509, lon1: 0.0, lon2: 10.0, lonM: 4.961883, s12: 1565109.099218, s1M: 782554.549609}  FAILED, KNOWN, expected {a12: 14.106434, a1M: 7.053396, azi1: 44.75191, azi2: 45.629037, aziM: 44.969535, lat1: 0.0, lat2: 10.0, latM: 5.019509, lon1: 0.0, lon2: 10.0, lonM: 4.961883, m12: 780579.492953, M12: 0.992432, M21: 0.992432, s12: 1565109.099218, s1M: 782554.549609}\n    test 823 Middle5.B: {a12: 99.810444, a1M: 49.905222, azi1: 180.0, azi2: 180.0, aziM: 180.0, lat1: 50.0, lat2: -50.0, latM: 0.0, lon1: -4.0, lon2: -4.0, lonM: -4.0, s12: 11081694.083368, s1M: 5540847.041684}  FAILED, KNOWN, expected {a12: 99.810444, a1M: 49.869061, azi1: 180.0, azi2: 180.0, aziM: 180.0, lat1: 50.0, lat2: -50.0, latM: 0.036282, lon1: -4.0, lon2: -4.0, lonM: -4.0, m12: 4864571.105922, M12: 0.645508, M21: 0.644537, s12: 11073670.322999, s1M: 5536835.161499}\n    test 824 Middle5.B.latM: 1e-15  FAILED, KNOWN (0.0362822), expected 0.03628221979727372\n    test 825 Middle5.B.s1M: 5540847.041684149  FAILED, KNOWN (0.000724055), expected 5536835.161499482\n    test 826 Middle5.B.a1M: 49.905221888853184  FAILED, KNOWN (0.000724585), expected 49.869061316437026\n    test 827 Middle5.B.s12: 11081694.083368298  FAILED, KNOWN (0.000724055), expected 11073670.322998963\n    test 828 Middle5.sMM: 1.14053e+06  FAILED, KNOWN (0.0017142), expected 1.13857e+06\n    test 829 Middle5.aMM: 10.2799  FAILED, KNOWN (0.00171426), expected 10.2623\n    test 830 Middle5.c: 0\n\n    test 831 Segment.sA: -631414\n    test 832 Segment.sB: 5.98889e+06\n    test 833 Segment.c: 0\n    test 834 Segment.sX0: 1.86201e+06\n    test 835 Segment.kA: -1\n    test 836 Segment.kB: 0\n    test 837 Segment.k: -3\n    test 838 Segment.latA: -4.05187\n    test 839 Segment.lonA: -4\n    test 840 Segment.latB: -4.05187\n    test 841 Segment.lonB: -4\n    test 842 Segment.sAB: 0  FAILED, KNOWN (3e-10), expected 3e-10\n    test 843 Segment.aAB: 0\n\n    test 844 Segment5.A: {a1X: -5.691141, azi1: 44.75191, aziX: 44.893464, k2: -1, lat1: 0.0, latX: -4.051871, lon1: 0.0, lonX: -4.0, s1X: -631414.26877}  FAILED, KNOWN, expected {k2: -1, lat1: 0.0, lat2: 10.0, latX: -4.051871, lon1: 0.0, lon2: 10.0, lonX: -4.0, s1X: -631414.26877}\n    test 845 Segment5.B: {a1X: 53.943553, azi1: 180.0, aziX: 180.0, k2: 0, lat1: 50.0, latX: -4.051871, lon1: -4.0, lonX: -4.0, s1X: 5988887.278435}  FAILED, KNOWN, expected {k2: 0, lat1: 50.0, lat2: -50.0, latX: -4.051871, lon1: -4.0, lon2: -4.0, lonX: -4.0, s1X: 5988887.278435}\n    test 846 Segment5.sAB: 0  FAILED, KNOWN (3e-10), expected 3e-10\n    test 847 Segment5.aAB: 0  FAILED, KNOWN (2.70397e-15), expected 2.70397e-15\n    test 848 Segment5.c: 0\n\n    test 849 intersect7s[0].A: 04.051871°S, 004.0°W\n    test 850 intersect7s[0].B: 04.051871°S, 004.0°W\n    test 851 intersect7s[0].sAB: 1.5e-09  FAILED, KNOWN (1.2e-09), expected 3e-10\n    test 852 intersect7s[0].aAB: 1.3e-14  FAILED, KNOWN (1.0296e-14), expected 2.70397e-15\n    test 853 intersect7s[0].c: 0\n    test 854 intersect7s[0].kA: 0\n    test 855 intersect7s[0].kB: 0\n    test 856 intersect7s[0].iteration: None\n\n    test 857 intersect7s[1].A: 03.623464°N, 176.0°E\n    test 858 intersect7s[1].B: 03.623464°N, 176.0°E\n    test 859 intersect7s[1].sAB: 1.3e-09  FAILED, KNOWN (6e-10), expected 1.9e-09\n    test 860 intersect7s[1].aAB: 1.1e-14  FAILED, KNOWN (6.1186e-15), expected 1.71186e-14\n    test 861 intersect7s[1].c: 0\n    test 862 intersect7s[1].kA: 0\n    test 863 intersect7s[1].kB: 0\n    test 864 intersect7s[1].iteration: None\n\n    test 865 intersect7s[2].A: 04.051871°S, 004.0°W  FAILED, KNOWN (1.03199), expected 03.623464°N, 176.0°E\n    test 866 intersect7s[2].B: 04.051871°S, 004.0°W  FAILED, KNOWN (1.03199), expected 03.623464°N, 176.0°E\n    test 867 intersect7s[2].sAB: 1.6e-09  FAILED, KNOWN (8e-10), expected 8e-10\n    test 868 intersect7s[2].aAB: 1.4e-14  FAILED, KNOWN (6.79217e-15), expected 7.20783e-15\n    test 869 intersect7s[2].c: 0\n    test 870 intersect7s[2].kA: 0\n    test 871 intersect7s[2].kB: 0\n    test 872 intersect7s[2].iteration: None\n\n    test 873 intersect7s[3].A: 04.4796°N, 176.0°E  FAILED, KNOWN (1.02993), expected 03.19445°S, 004.0°W\n    test 874 intersect7s[3].B: 04.4796°N, 176.0°E  FAILED, KNOWN (1.02993), expected 03.19445°S, 004.0°W\n    test 875 intersect7s[3].sAB: 3.4e-09  FAILED, KNOWN (5e-10), expected 2.9e-09\n    test 876 intersect7s[3].aAB: 3.1e-14  FAILED, KNOWN (4.86149e-15), expected 2.61385e-14\n    test 877 intersect7s[3].c: 0\n    test 878 intersect7s[3].kA: 0\n    test 879 intersect7s[3].kB: 0\n    test 880 intersect7s[3].iteration: None\n\n    test 881 Sphere.Closest.sA: 6.07719e+06\n    test 882 Sphere.Closest.sB: -3.31802e+06\n    test 883 Sphere.Closest.c: 0\n    test 884 Sphere.Closest.sX0: 9.39521e+06\n    test 885 Sphere.Closest.latA: 1e-15\n    test 886 Sphere.Closest.lonA: -29.8397\n    test 887 Sphere.Closest.latB: -0\n    test 888 Sphere.Closest.lonB: -29.8397\n    test 889 Sphere.Closest.sAB: 0  FAILED, KNOWN (8e-10), expected 8e-10\n    test 890 Sphere.Closest.aAB: 0\n\n    test 891 Sphere.Closest5.A: {a1X: 54.653489, azi1: -147.7, aziX: -159.911264, lat1: 50.0, latX: 0.0, lon1: -4.0, lonX: -29.839663, s1X: 6077190.710199}  FAILED, KNOWN, expected {azi1: 212.3, lat1: 50.0, latX: 0.0, lon1: -4.0, lonX: -29.839663, s1X: 6077190.710199}\n    test 892 Sphere.Closest5.A.azi1: 212.3  FAILED, KNOWN (1.69571), expected -147.7\n    test 893 Sphere.Closest5.B: {a1X: -29.839663, azi1: 90.0, aziX: 90.0, lat1: 0.0, latX: -0.0, lon1: 0.0, lonX: -29.839663, s1X: -3318019.115902}  FAILED, KNOWN, expected {azi1: 90.0, lat1: 0.0, latX: -0.0, lon1: 0.0, lonX: -29.839663, s1X: -3318019.115902}\n    test 894 Sphere.Closest5.sAB: 0  FAILED, KNOWN (8e-10), expected 8e-10\n    test 895 Sphere.Closest5.aAB: 0  FAILED, KNOWN (7.19457e-15), expected 7.19457e-15\n    test 896 Sphere.Closest5.c: 0\n\n    test 897 _Xdict2: 183\n\n    testGeodesicExact(pygeodesy.geodesici, 26.02.04)\n    test 898 Intersector: name='', geodesic=GeodesicExact(name='', caps=0, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), C4order=30)\n\n    test 899 Closest.1.sA: 4.2253e+06\n    test 900 Closest.1.sB: 2.70933e+06\n    test 901 Closest.1.c: 0\n    test 902 Closest.1.sX0: 6.93463e+06\n\n    test 903 Closest5.1.A: {a1X: 38.075573, azi1: 45.0, aziX: 51.790249, lat1: 0.0, latX: 25.92918, lon1: 0.0, lonX: 28.89426, m12: 3921213.171755, M12: 0.787198, M21: 0.787384, s1X: 4225301.108897}  FAILED, KNOWN, expected {azi1: 45.0, lat1: 0.0, latX: 25.92918, lon1: 0.0, lonX: 28.89426, s1X: 4225301.108897}\n    test 904 Closest5.1.B: {a1X: 24.392077, azi1: 135.0, aziX: 146.182975, lat1: 45.0, latX: 25.92918, lon1: 10.0, lonX: 28.89426, m12: 2628412.372503, M12: 0.911005, M21: 0.910881, s1X: 2709328.885611}  FAILED, KNOWN, expected {azi1: 135.0, lat1: 45.0, latX: 25.92918, lon1: 10.0, lonX: 28.89426, s1X: 2709328.885611}\n    test 905 Closest5.1.sAB: 7.94571e-10  FAILED, KNOWN (7.94571e-10), expected 0\n    test 906 Closest5.1.aAB: 7.15718e-15  FAILED, KNOWN (7.15718e-15), expected 0\n    test 907 Closest5.1.c: 0\n\n    test 908 Closest.2.sA: 6.05805e+06\n    test 909 Closest.2.sB: -3.31125e+06\n    test 910 Closest.2.c: 0\n    test 911 Closest.2.sX0: 9.3693e+06\n\n    test 912 Closest5.2.A: {a1X: 54.562637, azi1: -147.7, aziX: -159.869978, lat1: 50.0, latX: 0.0, lon1: -4.0, lonX: -29.745492, m12: 5184118.430287, M12: 0.58097, M21: 0.579813, s1X: 6058048.653081}  FAILED, KNOWN, expected {azi1: 212.3, lat1: 50.0, latX: -0.0, lon1: -4.0, lonX: -29.745492, s1X: 6058048.653081}\n    test 913 Closest5.2.A.azi1: 212.3  FAILED, KNOWN (1.69571), expected -147.7\n    test 914 Closest5.2.B: {a1X: -29.845558, azi1: 90.0, aziX: 90.0, lat1: 0.0, latX: -0.0, lon1: 0.0, lonX: -29.745492, m12: -3163525.514556, M12: 0.86737, M21: 0.86737, s1X: -3311252.995823}  FAILED, KNOWN, expected {azi1: 90.0, lat1: 0.0, latX: -0.0, lon1: 0.0, lonX: -29.745492, s1X: -3311252.995823}\n    test 915 Closest5.2.sAB: 3.95486e-10  FAILED, KNOWN (6.04514e-10), expected 1e-09\n    test 916 Closest5.2.aAB: 3.56467e-15  FAILED, KNOWN (5.44871e-15), expected 9.01337e-15\n    test 917 Closest5.2.c: 0\n\n    test 918 All[0].sA: -494582\n    test 919 All[0].sB: 1.40522e+07\n    test 920 All[0].c: 0\n    test 921 All[0].sX0: 1.45468e+07\n    test 922 All[0].iteration: 4  FAILED, KNOWN (1), expected 0\n\n    test 923 All[1].sA: 1.95291e+07\n    test 924 All[1].sB: -5.93234e+06\n    test 925 All[1].c: 0\n    test 926 All[1].sX0: 2.54615e+07\n    test 927 All[1].iteration: 4  FAILED, KNOWN (0.75), expected 1\n\n    test 928 All[2].sA: -494582\n    test 929 All[2].sB: -2.59556e+07\n    test 930 All[2].c: 0\n    test 931 All[2].sX0: 2.64502e+07\n    test 932 All[2].iteration: 4  FAILED, KNOWN (0.5), expected 2\n\n    test 933 All[3].sA: -2.05181e+07\n    test 934 All[3].sB: -5.97086e+06\n    test 935 All[3].c: 0\n    test 936 All[3].sX0: 2.64889e+07\n    test 937 All[3].iteration: 4  FAILED, KNOWN (0.25), expected 3\n\n    test 938 All5[0].A: {a1X: -4.448619, azi1: -147.7, aziX: -144.55245, lat1: 50.0, latX: 53.692598, lon1: -4.0, lonX: 0.0, m12: -494087.771694, M12: 0.996999, M21: 0.997, s1X: -494582.492241}  FAILED, KNOWN, expected {azi1: 212.3, lat1: 50.0, latX: 53.692598, lon1: -4.0, lonX: -0.0, s1X: -494582.492241}\n    test 939 All5[0].A.azi1: 212.3  FAILED, KNOWN (1.69571), expected -147.7\n    test 940 All5[0].B: {a1X: 126.399265, azi1: 0.0, aziX: 180.0, lat1: 0.0, latX: 53.692598, lon1: 180.0, lonX: 0.0, m12: 5161737.753947, M12: -0.593409, M21: -0.586165, s1X: 14052229.965229}  FAILED, KNOWN, expected {azi1: 0.0, lat1: 0.0, latX: 53.692598, lon1: 180.0, lonX: 0.0, s1X: 14052229.965229}\n    test 941 All5[0].sAB: 3.54078e-09  FAILED, KNOWN (2.34078e-09), expected 1.2e-09\n    test 942 All5[0].aAB: 3.18449e-14  FAILED, KNOWN (2.10524e-14), expected 1.07925e-14\n    test 943 All5[0].c: 0\n    test 944 All5[0].iteration: 4  FAILED, KNOWN, expected None\n\n    test 945 All5[1].A: {a1X: 175.764866, azi1: -147.7, aziX: -35.280487, lat1: 50.0, latX: -53.518675, lon1: -4.0, lonX: 180.0, m12: 488198.978244, M12: -1.001203, M21: -0.992673, s1X: 19529110.042937}  FAILED, KNOWN, expected {azi1: 212.3, lat1: 50.0, latX: -53.518675, lon1: -4.0, lonX: 180.0, s1X: 19529110.042937}\n    test 946 All5[1].A.azi1: 212.3  FAILED, KNOWN (1.69571), expected -147.7\n    test 947 All5[1].B: {a1X: -53.426639, azi1: 0.0, aziX: 0.0, lat1: 0.0, latX: -53.518675, lon1: 180.0, lonX: 180.0, m12: -5110370.613686, M12: 0.595852, M21: 0.597076, s1X: -5932344.259165}  FAILED, KNOWN, expected {azi1: 0.0, lat1: 0.0, latX: -53.518675, lon1: 180.0, lonX: 180.0, s1X: -5932344.259165}\n    test 948 All5[1].sAB: 4.00748e-09  FAILED, KNOWN (1.00748e-09), expected 3e-09\n    test 949 All5[1].aAB: 3.60427e-14  FAILED, KNOWN (9.06113e-15), expected 2.69815e-14\n    test 950 All5[1].c: 0\n    test 951 All5[1].iteration: 4  FAILED, KNOWN, expected None\n\n    test 952 All5[2].A: {a1X: -4.448619, azi1: -147.7, aziX: -144.55245, lat1: 50.0, latX: 53.692598, lon1: -4.0, lonX: -0.0, m12: -494087.771694, M12: 0.996999, M21: 0.997, s1X: -494582.492241}  FAILED, KNOWN, expected {azi1: 212.3, lat1: 50.0, latX: 53.692598, lon1: -4.0, lonX: -0.0, s1X: -494582.492241}\n    test 953 All5[2].A.azi1: 212.3  FAILED, KNOWN (1.69571), expected -147.7\n    test 954 All5[2].B: {a1X: -233.600735, azi1: 0.0, aziX: 180.0, lat1: 0.0, latX: 53.692598, lon1: 180.0, lonX: 0.0, m12: 5082071.927222, M12: -0.593409, M21: -0.603127, s1X: -25955632.952022}  FAILED, KNOWN, expected {azi1: 0.0, lat1: 0.0, latX: 53.692598, lon1: 180.0, lonX: 0.0, s1X: -25955632.952022}\n    test 955 All5[2].sAB: 1.78008e-09  FAILED, KNOWN (9.19915e-10), expected 2.7e-09\n    test 956 All5[2].aAB: 1.60097e-14  FAILED, KNOWN (8.27349e-15), expected 2.42832e-14\n    test 957 All5[2].c: 0\n    test 958 All5[2].iteration: 4  FAILED, KNOWN, expected None\n\n    test 959 All5[3].A: {a1X: -184.660358, azi1: -147.7, aziX: -35.614985, lat1: 50.0, latX: -53.864737, lon1: -4.0, lonX: -180.0, m12: 499994.868419, M12: -0.992833, M21: -1.001337, s1X: -20518081.166643}  FAILED, KNOWN, expected {azi1: 212.3, lat1: 50.0, latX: -53.864737, lon1: -4.0, lonX: -180.0, s1X: -20518081.166643}\n    test 960 All5[3].A.azi1: 212.3  FAILED, KNOWN (1.69571), expected -147.7\n    test 961 All5[3].B: {a1X: -53.773048, azi1: 0.0, aziX: 0.0, lat1: 0.0, latX: -53.864737, lon1: 180.0, lonX: 180.0, m12: -5133274.754826, M12: 0.590985, M21: 0.592236, s1X: -5970860.779079}  FAILED, KNOWN, expected {azi1: 0.0, lat1: 0.0, latX: -53.864737, lon1: 180.0, lonX: 180.0, s1X: -5970860.779079}\n    test 962 All5[3].sAB: 2.34461e-09  FAILED, KNOWN (1.85539e-09), expected 4.2e-09\n    test 963 All5[3].aAB: 2.10867e-14  FAILED, KNOWN (1.67059e-14), expected 3.77926e-14\n    test 964 All5[3].c: 0\n    test 965 All5[3].iteration: 4  FAILED, KNOWN, expected None\n\n    test 966 Middle.sA: 782555\n    test 967 Middle.sB: 5.53684e+06\n    test 968 Middle.c: 0\n    test 969 Middle.sX0: 0\n\n    test 970 Middle5.A: {a12: 14.106434, a1M: 7.053396, azi1: 44.75191, azi2: 45.629037, aziM: 44.969535, lat1: 0.0, lat2: 10.0, latM: 5.019509, lon1: 0.0, lon2: 10.0, lonM: 4.961883, m12: 780579.492953, M12: 0.992432, M21: 0.992432, s12: 1565109.099218, s1M: 782554.549609}\n    test 971 Middle5.B: {a12: 99.810444, a1M: 49.869061, azi1: 180.0, azi2: 180.0, aziM: 180.0, lat1: 50.0, lat2: -50.0, latM: 0.036282, lon1: -4.0, lon2: -4.0, lonM: -4.0, m12: 4864571.105922, M12: 0.645508, M21: 0.644537, s12: 11073670.322999, s1M: 5536835.161499}\n    test 972 Middle5.sMM: 1.13857e+06\n    test 973 Middle5.aMM: 10.2623\n    test 974 Middle5.c: 0\n\n    test 975 Segment.sA: -631414\n    test 976 Segment.sB: 5.98889e+06\n    test 977 Segment.c: 0\n    test 978 Segment.sX0: 1.86602e+06  FAILED, KNOWN (0.00214997), expected 1.86201e+06\n    test 979 Segment.kA: -1\n    test 980 Segment.kB: 0\n    test 981 Segment.k: -3\n\n    test 982 Segment5.A: {a1X: -5.691141, azi1: 44.75191, azi2: 45.629037, aziX: 44.893464, k2: -1, lat1: 0.0, lat2: 10.0, latX: -4.051871, lon1: 0.0, lon2: 10.0, lonX: -4.0, m12: -630376.505305, M12: 0.995071, M21: 0.995071, s1X: -631414.26877}  FAILED, KNOWN, expected {k2: -1, lat1: 0.0, lat2: 10.0, latX: -4.051871, lon1: 0.0, lon2: 10.0, lonX: -4.0, s1X: -631414.26877}\n    test 983 Segment5.B: {a1X: 53.943553, azi1: 180.0, azi2: 180.0, aziX: 180.0, k2: 0, lat1: 50.0, lat2: -50.0, latX: -4.051871, lon1: -4.0, lon2: -4.0, lonX: -4.0, m12: 5143394.782542, M12: 0.589657, M21: 0.588535, s1X: 5988887.278435}  FAILED, KNOWN, expected {k2: 0, lat1: 50.0, lat2: -50.0, latX: -4.051871, lon1: -4.0, lon2: -4.0, lonX: -4.0, s1X: 5988887.278435}\n    test 984 Segment5.sAB: 1.36757e-09  FAILED, KNOWN (1.06757e-09), expected 3e-10\n    test 985 Segment5.aAB: 1.23262e-14  FAILED, KNOWN (9.62224e-15), expected 2.70397e-15\n    test 986 Segment5.c: 0\n\n    test 987 intersect7s[0].A: 04.051871°S, 004.0°W\n    test 988 intersect7s[0].B: 04.051871°S, 004.0°W\n    test 989 intersect7s[0].sAB: 1.4124e-09  FAILED, KNOWN (1.1124e-09), expected 3e-10\n    test 990 intersect7s[0].aAB: 1.27222e-14  FAILED, KNOWN (1.00183e-14), expected 2.70397e-15\n    test 991 intersect7s[0].c: 0\n    test 992 intersect7s[0].kA: 0\n    test 993 intersect7s[0].kB: 0\n    test 994 intersect7s[0].iteration: None\n\n    test 995 intersect7s[1].A: 03.623464°N, 176.0°E\n    test 996 intersect7s[1].B: 03.623464°N, 176.0°E\n    test 997 intersect7s[1].sAB: 1.67723e-09  FAILED, KNOWN (2.22771e-10), expected 1.9e-09\n    test 998 intersect7s[1].aAB: 1.51076e-14  FAILED, KNOWN (2.01096e-15), expected 1.71186e-14\n    test 999 intersect7s[1].c: 0\n    test 1000 intersect7s[1].kA: 0\n    test 1001 intersect7s[1].kB: 0\n    test 1002 intersect7s[1].iteration: None\n\n    test 1003 intersect7s[2].A: 04.051871°S, 004.0°W  FAILED, KNOWN (1.03199), expected 03.623464°N, 176.0°E\n    test 1004 intersect7s[2].B: 04.051871°S, 004.0°W  FAILED, KNOWN (1.03199), expected 03.623464°N, 176.0°E\n    test 1005 intersect7s[2].sAB: 3.53101e-10  FAILED, KNOWN (4.46899e-10), expected 8e-10\n    test 1006 intersect7s[2].aAB: 3.18055e-15  FAILED, KNOWN (4.02728e-15), expected 7.20783e-15\n    test 1007 intersect7s[2].c: 0\n    test 1008 intersect7s[2].kA: 0\n    test 1009 intersect7s[2].kB: 0\n    test 1010 intersect7s[2].iteration: None\n\n    test 1011 intersect7s[3].A: 04.4796°N, 176.0°E  FAILED, KNOWN (1.02993), expected 03.19445°S, 004.0°W\n    test 1012 intersect7s[3].B: 04.4796°N, 176.0°E  FAILED, KNOWN (1.02993), expected 03.19445°S, 004.0°W\n    test 1013 intersect7s[3].sAB: 3.19839e-09  FAILED, KNOWN (2.98393e-10), expected 2.9e-09\n    test 1014 intersect7s[3].aAB: 2.88277e-14  FAILED, KNOWN (2.68921e-15), expected 2.61385e-14\n    test 1015 intersect7s[3].c: 0\n    test 1016 intersect7s[3].kA: 0\n    test 1017 intersect7s[3].kB: 0\n    test 1018 intersect7s[3].iteration: None\n\n    test 1019 Sphere.Closest.sA: 6.07719e+06\n    test 1020 Sphere.Closest.sB: -3.31802e+06\n    test 1021 Sphere.Closest.c: 0\n    test 1022 Sphere.Closest.sX0: 9.39521e+06\n\n    test 1023 Sphere.Closest5.A: {a1X: 54.653489, azi1: -147.7, aziX: -159.911264, lat1: 50.0, latX: -0.0, lon1: -4.0, lonX: -29.839663, m12: 5196622.322619, M12: 0.57852, M21: 0.57852, s1X: 6077190.710199}  FAILED, KNOWN, expected {azi1: 212.3, lat1: 50.0, latX: 0.0, lon1: -4.0, lonX: -29.839663, s1X: 6077190.710199}\n    test 1024 Sphere.Closest5.A.azi1: 212.3  FAILED, KNOWN (1.69571), expected -147.7\n    test 1025 Sphere.Closest5.B: {a1X: -29.839663, azi1: 90.0, aziX: 90.0, lat1: 0.0, latX: -0.0, lon1: 0.0, lonX: -29.839663, m12: -3170047.454389, M12: 0.867421, M21: 0.867421, s1X: -3318019.115902}  FAILED, KNOWN, expected {azi1: 90.0, lat1: 0.0, latX: -0.0, lon1: 0.0, lonX: -29.839663, s1X: -3318019.115902}\n    test 1026 Sphere.Closest5.sAB: 2.06452e-09  FAILED, KNOWN (1.26452e-09), expected 8e-10\n    test 1027 Sphere.Closest5.aAB: 1.85667e-14  FAILED, KNOWN (1.13721e-14), expected 7.19457e-15\n    test 1028 Sphere.Closest5.c: 0\n\n    test 1029 _Xdict2: 183\n\n    testGeodesic(pygeodesy.geodesici, 26.02.04)\n    test 1030 Intersector: name='', geodesic=<pygeodesy.geodesicw._gWrapped.Geodesic.<locals>.Geodesic object at 0x103457b00>\n\n    test 1031 Closest.1.sA: 4.2253e+06\n    test 1032 Closest.1.sB: 2.70933e+06\n    test 1033 Closest.1.c: 0\n    test 1034 Closest.1.sX0: 6.93463e+06\n    test 1035 Closest.1.latA: 25.9292\n    test 1036 Closest.1.lonA: 28.8943\n    test 1037 Closest.1.latB: 25.9292\n    test 1038 Closest.1.lonB: 28.8943\n    test 1039 Closest.1.sAB: 7.11805e-10  FAILED, KNOWN (7.11805e-10), expected 0\n    test 1040 Closest.1.aAB: 6.41166e-15  FAILED, KNOWN (6.41166e-15), expected 0\n\n    test 1041 Closest5.1.A: {a1X: 38.075573, azi1: 45.0, aziX: 51.790249, lat1: 0.0, latX: 25.92918, lon1: 0.0, lonX: 28.89426, s1X: 4225301.108897}  FAILED, KNOWN, expected {azi1: 45.0, lat1: 0.0, latX: 25.92918, lon1: 0.0, lonX: 28.89426, s1X: 4225301.108897}\n    test 1042 Closest5.1.B: {a1X: 24.392077, azi1: 135.0, aziX: 146.182975, lat1: 45.0, latX: 25.92918, lon1: 10.0, lonX: 28.89426, s1X: 2709328.885611}  FAILED, KNOWN, expected {azi1: 135.0, lat1: 45.0, latX: 25.92918, lon1: 10.0, lonX: 28.89426, s1X: 2709328.885611}\n    test 1043 Closest5.1.sAB: 7.11805e-10  FAILED, KNOWN (7.11805e-10), expected 0\n    test 1044 Closest5.1.aAB: 6.41166e-15  FAILED, KNOWN (6.41166e-15), expected 0\n    test 1045 Closest5.1.c: 0\n\n    test 1046 Closest.2.sA: 6.05805e+06\n    test 1047 Closest.2.sB: -3.31125e+06\n    test 1048 Closest.2.c: 0\n    test 1049 Closest.2.sX0: 9.3693e+06\n    test 1050 Closest.2.latA: -8.98894e-15  FAILED, KNOWN (1.10594e-17), expected -9e-15\n    test 1051 Closest.2.lonA: -29.7455\n    test 1052 Closest.2.latB: -0\n    test 1053 Closest.2.lonB: -29.7455\n    test 1054 Closest.2.sAB: 1.27e-09  FAILED, KNOWN (2.69996e-10), expected 1e-09\n    test 1055 Closest.2.aAB: 1.14469e-14  FAILED, KNOWN (4.46948e-16), expected 1.1e-14\n\n    test 1056 Closest5.2.A: {a1X: 54.562637, azi1: -147.7, aziX: -159.869978, lat1: 50.0, latX: -0.0, lon1: -4.0, lonX: -29.745492, s1X: 6058048.653081}  FAILED, KNOWN, expected {azi1: 212.3, lat1: 50.0, latX: -0.0, lon1: -4.0, lonX: -29.745492, s1X: 6058048.653081}\n    test 1057 Closest5.2.A.azi1: 212.3  FAILED, KNOWN (1.69571), expected -147.7\n    test 1058 Closest5.2.B: {a1X: -29.845558, azi1: 90.0, aziX: 90.0, lat1: 0.0, latX: -0.0, lon1: 0.0, lonX: -29.745492, s1X: -3311252.995823}  FAILED, KNOWN, expected {azi1: 90.0, lat1: 0.0, latX: -0.0, lon1: 0.0, lonX: -29.745492, s1X: -3311252.995823}\n    test 1059 Closest5.2.sAB: 1.27e-09  FAILED, KNOWN (2.69996e-10), expected 1e-09\n    test 1060 Closest5.2.aAB: 1.14469e-14  FAILED, KNOWN (2.43358e-15), expected 9.01337e-15\n    test 1061 Closest5.2.c: 0\n\n    test 1062 All[0].sA: -494582\n    test 1063 All[0].sB: 1.40522e+07\n    test 1064 All[0].c: 0\n    test 1065 All[0].sX0: 1.45468e+07\n    test 1066 All[0].latA: 53.6926\n    test 1067 All[0].lonA: 4.44089e-15  FAILED, KNOWN (1.2e-14), expected -1.2e-14\n    test 1068 All[0].latB: 53.6926\n    test 1069 All[0].lonB: 0\n    test 1070 All[0].sAB: 1.44466e-09  FAILED, KNOWN (2.44659e-10), expected 1.2e-09\n    test 1071 All[0].aAB: 1.29929e-14  FAILED, KNOWN (2.2004e-15), expected 1.07925e-14\n    test 1072 All[0].iteration: 4  FAILED, KNOWN (1), expected 0\n\n    test 1073 All[1].sA: 1.95291e+07\n    test 1074 All[1].sB: -5.93234e+06\n    test 1075 All[1].c: 0\n    test 1076 All[1].sX0: 2.54615e+07\n    test 1077 All[1].latA: -53.5187\n    test 1078 All[1].lonA: 180\n    test 1079 All[1].latB: -53.5187\n    test 1080 All[1].lonB: 180\n    test 1081 All[1].sAB: 4.71379e-09  FAILED, KNOWN (1.71379e-09), expected 3e-09\n    test 1082 All[1].aAB: 4.23951e-14  FAILED, KNOWN (1.54136e-14), expected 2.69815e-14\n    test 1083 All[1].iteration: 4  FAILED, KNOWN (0.75), expected 1\n\n    test 1084 All[2].sA: -494582\n    test 1085 All[2].sB: -2.59556e+07\n    test 1086 All[2].c: 0\n    test 1087 All[2].sX0: 2.64502e+07\n    test 1088 All[2].latA: 53.6926\n    test 1089 All[2].lonA: 9.76996e-15  FAILED, KNOWN (1.7e-14), expected -1.7e-14\n    test 1090 All[2].latB: 53.6926\n    test 1091 All[2].lonB: 0\n    test 1092 All[2].sAB: 1.8823e-09  FAILED, KNOWN (8.177e-10), expected 2.7e-09\n    test 1093 All[2].aAB: 1.6929e-14  FAILED, KNOWN (7.3542e-15), expected 2.42832e-14\n    test 1094 All[2].iteration: 4  FAILED, KNOWN (0.5), expected 2\n\n    test 1095 All[3].sA: -2.05181e+07\n    test 1096 All[3].sB: -5.97086e+06\n    test 1097 All[3].c: 0\n    test 1098 All[3].sX0: 2.64889e+07\n    test 1099 All[3].latA: -53.8647\n    test 1100 All[3].lonA: 180  FAILED, KNOWN (2), expected -180\n    test 1101 All[3].latB: -53.8647\n    test 1102 All[3].lonB: 180\n    test 1103 All[3].sAB: 3.99823e-09  FAILED, KNOWN (2.01774e-10), expected 4.2e-09\n    test 1104 All[3].aAB: 3.59587e-14  FAILED, KNOWN (1.83383e-15), expected 3.77926e-14\n    test 1105 All[3].iteration: 4  FAILED, KNOWN (0.25), expected 3\n\n    test 1106 All5[0].A: {a1X: -4.448619, azi1: -147.7, aziX: -144.55245, lat1: 50.0, latX: 53.692598, lon1: -4.0, lonX: 0.0, s1X: -494582.492241}  FAILED, KNOWN, expected {azi1: 212.3, lat1: 50.0, latX: 53.692598, lon1: -4.0, lonX: -0.0, s1X: -494582.492241}\n    test 1107 All5[0].A.azi1: 212.3  FAILED, KNOWN (1.69571), expected -147.7\n    test 1108 All5[0].B: {a1X: 126.399265, azi1: 0.0, aziX: 180.0, lat1: 0.0, latX: 53.692598, lon1: 180.0, lonX: 0.0, s1X: 14052229.965229}  FAILED, KNOWN, expected {azi1: 0.0, lat1: 0.0, latX: 53.692598, lon1: 180.0, lonX: 0.0, s1X: 14052229.965229}\n    test 1109 All5[0].sAB: 1.44466e-09  FAILED, KNOWN (2.44659e-10), expected 1.2e-09\n    test 1110 All5[0].aAB: 1.29929e-14  FAILED, KNOWN (2.2004e-15), expected 1.07925e-14\n    test 1111 All5[0].c: 0\n    test 1112 All5[0].iteration: 4  FAILED, KNOWN, expected None\n\n    test 1113 All5[1].A: {a1X: 175.764866, azi1: -147.7, aziX: -35.280487, lat1: 50.0, latX: -53.518675, lon1: -4.0, lonX: 180.0, s1X: 19529110.042937}  FAILED, KNOWN, expected {azi1: 212.3, lat1: 50.0, latX: -53.518675, lon1: -4.0, lonX: 180.0, s1X: 19529110.042937}\n    test 1114 All5[1].A.azi1: 212.3  FAILED, KNOWN (1.69571), expected -147.7\n    test 1115 All5[1].B: {a1X: -53.426639, azi1: 0.0, aziX: 0.0, lat1: 0.0, latX: -53.518675, lon1: 180.0, lonX: 180.0, s1X: -5932344.259165}  FAILED, KNOWN, expected {azi1: 0.0, lat1: 0.0, latX: -53.518675, lon1: 180.0, lonX: 180.0, s1X: -5932344.259165}\n    test 1116 All5[1].sAB: 4.71379e-09  FAILED, KNOWN (1.71379e-09), expected 3e-09\n    test 1117 All5[1].aAB: 4.23951e-14  FAILED, KNOWN (1.54136e-14), expected 2.69815e-14\n    test 1118 All5[1].c: 0\n    test 1119 All5[1].iteration: 4  FAILED, KNOWN, expected None\n\n    test 1120 All5[2].A: {a1X: -4.448619, azi1: -147.7, aziX: -144.55245, lat1: 50.0, latX: 53.692598, lon1: -4.0, lonX: 0.0, s1X: -494582.492241}  FAILED, KNOWN, expected {azi1: 212.3, lat1: 50.0, latX: 53.692598, lon1: -4.0, lonX: -0.0, s1X: -494582.492241}\n    test 1121 All5[2].A.azi1: 212.3  FAILED, KNOWN (1.69571), expected -147.7\n    test 1122 All5[2].B: {a1X: -233.600735, azi1: 0.0, aziX: 180.0, lat1: 0.0, latX: 53.692598, lon1: 180.0, lonX: 0.0, s1X: -25955632.952022}  FAILED, KNOWN, expected {azi1: 0.0, lat1: 0.0, latX: 53.692598, lon1: 180.0, lonX: 0.0, s1X: -25955632.952022}\n    test 1123 All5[2].sAB: 1.8823e-09  FAILED, KNOWN (8.177e-10), expected 2.7e-09\n    test 1124 All5[2].aAB: 1.6929e-14  FAILED, KNOWN (7.3542e-15), expected 2.42832e-14\n    test 1125 All5[2].c: 0\n    test 1126 All5[2].iteration: 4  FAILED, KNOWN, expected None\n\n    test 1127 All5[3].A: {a1X: -184.660358, azi1: -147.7, aziX: -35.614985, lat1: 50.0, latX: -53.864737, lon1: -4.0, lonX: 180.0, s1X: -20518081.166643}  FAILED, KNOWN, expected {azi1: 212.3, lat1: 50.0, latX: -53.864737, lon1: -4.0, lonX: -180.0, s1X: -20518081.166643}\n    test 1128 All5[3].A.azi1: 212.3  FAILED, KNOWN (1.69571), expected -147.7\n    test 1129 All5[3].A.lonX: -180.0  FAILED, KNOWN (2), expected 179.99999999999994\n    test 1130 All5[3].B: {a1X: -53.773048, azi1: 0.0, aziX: 0.0, lat1: 0.0, latX: -53.864737, lon1: 180.0, lonX: 180.0, s1X: -5970860.779079}  FAILED, KNOWN, expected {azi1: 0.0, lat1: 0.0, latX: -53.864737, lon1: 180.0, lonX: 180.0, s1X: -5970860.779079}\n    test 1131 All5[3].sAB: 3.99823e-09  FAILED, KNOWN (2.01774e-10), expected 4.2e-09\n    test 1132 All5[3].aAB: 3.59587e-14  FAILED, KNOWN (1.83383e-15), expected 3.77926e-14\n    test 1133 All5[3].c: 0\n    test 1134 All5[3].iteration: 4  FAILED, KNOWN, expected None\n\n    test 1135 Middle.sA: 782555\n    test 1136 Middle.sB: 5.54085e+06  FAILED, KNOWN (0.000724055), expected 5.53684e+06\n    test 1137 Middle.c: 0\n    test 1138 Middle.sX0: 0\n    test 1139 Middle.latA: 5.01951\n    test 1140 Middle.lonA: 4.96188\n    test 1141 Middle.latB: 0  FAILED, KNOWN (0.0362822), expected 0.0362822\n    test 1142 Middle.lonB: -4\n    test 1143 Middle.sAB: 1.14053e+06\n    test 1144 Middle.aAB: 10.2799\n\n    test 1145 Middle5.A: {a12: 14.106434, a1M: 7.053396, azi1: 44.75191, azi2: 45.629037, aziM: 44.969535, lat1: 0.0, lat2: 10.0, latM: 5.019509, lon1: 0.0, lon2: 10.0, lonM: 4.961883, s12: 1565109.099218, s1M: 782554.549609}  FAILED, KNOWN, expected {a12: 14.106434, a1M: 7.053396, azi1: 44.75191, azi2: 45.629037, aziM: 44.969535, lat1: 0.0, lat2: 10.0, latM: 5.019509, lon1: 0.0, lon2: 10.0, lonM: 4.961883, m12: 780579.492953, M12: 0.992432, M21: 0.992432, s12: 1565109.099218, s1M: 782554.549609}\n    test 1146 Middle5.B: {a12: 99.810444, a1M: 49.905222, azi1: 180.0, azi2: 180.0, aziM: 180.0, lat1: 50.0, lat2: -50.0, latM: 0.0, lon1: -4.0, lon2: -4.0, lonM: -4.0, s12: 11081694.083368, s1M: 5540847.041684}  FAILED, KNOWN, expected {a12: 99.810444, a1M: 49.869061, azi1: 180.0, azi2: 180.0, aziM: 180.0, lat1: 50.0, lat2: -50.0, latM: 0.036282, lon1: -4.0, lon2: -4.0, lonM: -4.0, m12: 4864571.105922, M12: 0.645508, M21: 0.644537, s12: 11073670.322999, s1M: 5536835.161499}\n    test 1147 Middle5.B.latM: 0.0  FAILED, KNOWN (0.0362822), expected 0.03628221979727372\n    test 1148 Middle5.B.s1M: 5540847.04168415  FAILED, KNOWN (0.000724055), expected 5536835.161499482\n    test 1149 Middle5.B.a1M: 49.905221888853184  FAILED, KNOWN (0.000724585), expected 49.869061316437026\n    test 1150 Middle5.B.s12: 11081694.0833683  FAILED, KNOWN (0.000724055), expected 11073670.322998963\n    test 1151 Middle5.sMM: 1.14053e+06  FAILED, KNOWN (0.0017142), expected 1.13857e+06\n    test 1152 Middle5.aMM: 10.2799  FAILED, KNOWN (0.00171426), expected 10.2623\n    test 1153 Middle5.c: 0\n\n    test 1154 Segment.sA: -631414\n    test 1155 Segment.sB: 5.98889e+06\n    test 1156 Segment.c: 0\n    test 1157 Segment.sX0: 1.86201e+06\n    test 1158 Segment.kA: -1\n    test 1159 Segment.kB: 0\n    test 1160 Segment.k: -3\n    test 1161 Segment.latA: -4.05187\n    test 1162 Segment.lonA: -4\n    test 1163 Segment.latB: -4.05187\n    test 1164 Segment.lonB: -4\n    test 1165 Segment.sAB: 5.496e-10  FAILED, KNOWN (2.496e-10), expected 3e-10\n    test 1166 Segment.aAB: 4.95367e-15  FAILED, KNOWN (4.95367e-15), expected 0\n\n    test 1167 Segment5.A: {a1X: -5.691141, azi1: 44.75191, aziX: 44.893464, k2: -1, lat1: 0.0, latX: -4.051871, lon1: 0.0, lonX: -4.0, s1X: -631414.26877}  FAILED, KNOWN, expected {k2: -1, lat1: 0.0, lat2: 10.0, latX: -4.051871, lon1: 0.0, lon2: 10.0, lonX: -4.0, s1X: -631414.26877}\n    test 1168 Segment5.B: {a1X: 53.943553, azi1: 180.0, aziX: 180.0, k2: 0, lat1: 50.0, latX: -4.051871, lon1: -4.0, lonX: -4.0, s1X: 5988887.278435}  FAILED, KNOWN, expected {k2: 0, lat1: 50.0, lat2: -50.0, latX: -4.051871, lon1: -4.0, lon2: -4.0, lonX: -4.0, s1X: 5988887.278435}\n    test 1169 Segment5.sAB: 5.496e-10  FAILED, KNOWN (2.496e-10), expected 3e-10\n    test 1170 Segment5.aAB: 4.95367e-15  FAILED, KNOWN (2.2497e-15), expected 2.70397e-15\n    test 1171 Segment5.c: 0\n\n    test 1172 intersect7s[0].A: 04.051871°S, 004.0°W\n    test 1173 intersect7s[0].B: 04.051871°S, 004.0°W\n    test 1174 intersect7s[0].sAB: 2.64649e-10  FAILED, KNOWN (3.53514e-11), expected 3e-10\n    test 1175 intersect7s[0].aAB: 2.38534e-15  FAILED, KNOWN (3.1863e-16), expected 2.70397e-15\n    test 1176 intersect7s[0].c: 0\n    test 1177 intersect7s[0].kA: 0\n    test 1178 intersect7s[0].kB: 0\n    test 1179 intersect7s[0].iteration: None\n\n    test 1180 intersect7s[1].A: 03.623464°N, 176.0°E\n    test 1181 intersect7s[1].B: 03.623464°N, 176.0°E\n    test 1182 intersect7s[1].sAB: 1.67611e-09  FAILED, KNOWN (2.23892e-10), expected 1.9e-09\n    test 1183 intersect7s[1].aAB: 1.51076e-14  FAILED, KNOWN (2.01096e-15), expected 1.71186e-14\n    test 1184 intersect7s[1].c: 0\n    test 1185 intersect7s[1].kA: 0\n    test 1186 intersect7s[1].kB: 0\n    test 1187 intersect7s[1].iteration: None\n\n    test 1188 intersect7s[2].A: 04.051871°S, 004.0°W  FAILED, KNOWN (1.03199), expected 03.623464°N, 176.0°E\n    test 1189 intersect7s[2].B: 04.051871°S, 004.0°W  FAILED, KNOWN (1.03199), expected 03.623464°N, 176.0°E\n    test 1190 intersect7s[2].sAB: 5.83925e-10  FAILED, KNOWN (2.16075e-10), expected 8e-10\n    test 1191 intersect7s[2].aAB: 5.26305e-15  FAILED, KNOWN (1.94478e-15), expected 7.20783e-15\n    test 1192 intersect7s[2].c: 0\n    test 1193 intersect7s[2].kA: 0\n    test 1194 intersect7s[2].kB: 0\n    test 1195 intersect7s[2].iteration: None\n\n    test 1196 intersect7s[3].A: 04.4796°N, 176.0°E  FAILED, KNOWN (1.02993), expected 03.19445°S, 004.0°W\n    test 1197 intersect7s[3].B: 04.4796°N, 176.0°E  FAILED, KNOWN (1.02993), expected 03.19445°S, 004.0°W\n    test 1198 intersect7s[3].sAB: 3.49267e-09  FAILED, KNOWN (5.92669e-10), expected 2.9e-09\n    test 1199 intersect7s[3].aAB: 3.14801e-14  FAILED, KNOWN (5.34157e-15), expected 2.61385e-14\n    test 1200 intersect7s[3].c: 0\n    test 1201 intersect7s[3].kA: 0\n    test 1202 intersect7s[3].kB: 0\n    test 1203 intersect7s[3].iteration: None\n\n    test 1204 Sphere.Closest.sA: 6.07719e+06\n    test 1205 Sphere.Closest.sB: -3.31802e+06\n    test 1206 Sphere.Closest.c: 0\n    test 1207 Sphere.Closest.sX0: 9.39521e+06\n    test 1208 Sphere.Closest.latA: -2.98706e-15  FAILED, KNOWN (2.98706e-15), expected 1e-15\n    test 1209 Sphere.Closest.lonA: -29.8397\n    test 1210 Sphere.Closest.latB: -0\n    test 1211 Sphere.Closest.lonB: -29.8397\n    test 1212 Sphere.Closest.sAB: 8.56921e-10  FAILED, KNOWN (5.69206e-11), expected 8e-10\n    test 1213 Sphere.Closest.aAB: 7.70647e-15  FAILED, KNOWN (7.70647e-15), expected 0\n\n    test 1214 Sphere.Closest5.A: {a1X: 54.653489, azi1: -147.7, aziX: -159.911264, lat1: 50.0, latX: -0.0, lon1: -4.0, lonX: -29.839663, s1X: 6077190.710199}  FAILED, KNOWN, expected {azi1: 212.3, lat1: 50.0, latX: 0.0, lon1: -4.0, lonX: -29.839663, s1X: 6077190.710199}\n    test 1215 Sphere.Closest5.A.azi1: 212.3  FAILED, KNOWN (1.69571), expected -147.7\n    test 1216 Sphere.Closest5.B: {a1X: -29.839663, azi1: 90.0, aziX: 90.0, lat1: 0.0, latX: -0.0, lon1: 0.0, lonX: -29.839663, s1X: -3318019.115902}  FAILED, KNOWN, expected {azi1: 90.0, lat1: 0.0, latX: -0.0, lon1: 0.0, lonX: -29.839663, s1X: -3318019.115902}\n    test 1217 Sphere.Closest5.sAB: 8.56921e-10  FAILED, KNOWN (5.69206e-11), expected 8e-10\n    test 1218 Sphere.Closest5.aAB: 7.70647e-15  FAILED, KNOWN (5.11899e-16), expected 7.19457e-15\n    test 1219 Sphere.Closest5.c: 0\n\n    test 1220 _Xdict2: 183\n\n    418 of 1220 testGeodesici.py tests (34.3%) FAILED, ALL KNOWN (pygeodesy 26.3.26 Python 3.12.10 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 2.1.0 scipy 1.14.1 Math 2 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 isLazy 3 -W  default) 21.525 sec\nrunning /usr/local/bin/p....n3.12 -W default ~/PyGeodesy/test/testGeodesicx.py\n./test/testGeodesicx.py:49: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  gP = E.geodesic\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.classname from .named by testGeodesicx.py line 12\n# lazily imported pygeodesy.DIG from .constants by testGeodesicx.py line 12\n# lazily imported pygeodesy.Ellipsoid from .ellipsoids by testGeodesicx.py line 12\n# lazily imported pygeodesy.GDict from .karney by testGeodesicx.py line 12\n# lazily imported pygeodesy.GeodesicLineExact from .geodesicx by testGeodesicx.py line 12\n# lazily imported pygeodesy.itemsorted from .basics by testGeodesicx.py line 12\n# lazily imported pygeodesy.Ellipsoids from .ellipsoids by testGeodesicx.py line 263\n# lazily imported pygeodesy.geodesicw by testGeodesicx.py line 263\n# lazily imported pygeodesy.geodsolve by testGeodesicx.py line 263\n\n    testing testGeodesicx.py 25.09.03 (module pygeodesy.geodesicx 25.12.23) isLazy=3\n\n    testDirectX vs ...(pygeodesy.geodesicx, 25.12.23)\n# lazily imported pygeodesy.elliptic by gxline.py line 289\n    test 1 C++X.a12: 49.4755274632515\n    test 2 C++X.azi1: 51\n    test 3 C++X.azi2: 107.189397162606\n    test 4 C++X.lat1: 40.6\n    test 5 C++X.lat2: 51.8845645056068\n    test 6 C++X.lon1: -73.8\n    test 7 C++X.lon2: -1.14117286120084  FAILED, KNOWN, expected -1.14117286120083\n    test 8 C++X.m12: 4844148.70310149\n    test 9 C++X.M12: 0.650910566998086\n    test 10 C++X.M21: 0.651228658921966\n    test 11 C++X.s12: 5500000\n    test 12 C++X.S12: 39735075134877.1\n    test 13 iteration: None\n\n    test 14 Python.a12: 49.4755274632515\n    test 15 Python.azi1: 51\n    test 16 Python.azi2: 107.189397162606\n    test 17 Python.lat1: 40.6\n    test 18 Python.lat2: 51.8845645056068\n    test 19 Python.lon1: -73.8\n    test 20 Python.lon2: -1.14117286120084\n    test 21 Python.m12: 4844148.70310149\n    test 22 Python.M12: 0.650910566998086\n    test 23 Python.M21: 0.651228658921966\n    test 24 Python.s12: 5500000\n    test 25 Python.S12: 39735075134877.1\n    test 26 iteration: None\n\n    test 27 GeodSolve.a12: 49.4755274632515\n    test 28 GeodSolve.azi1: 51\n    test 29 GeodSolve.azi2: 107.189397162606\n    test 30 GeodSolve.lat1: 40.6\n    test 31 GeodSolve.lat2: 51.8845645056068\n    test 32 GeodSolve.lon1: -73.8\n    test 33 GeodSolve.lon2: -1.14117286120084\n    test 34 GeodSolve.m12: 4844148.70310149\n    test 35 GeodSolve.M12: 0.650910566998086\n    test 36 GeodSolve.M21: 0.651228658921966\n    test 37 GeodSolve.s12: 5500000\n    test 38 GeodSolve.S12: 39735075134877.1\n    test 39 iteration: None\n\n    test 40 f(-0.7)proLate.a12: 41.284510993253\n    test 41 f(-0.7)proLate.azi1: 51\n    test 42 f(-0.7)proLate.azi2: 122.151604420253\n    test 43 f(-0.7)proLate.lat1: 40.6\n    test 44 f(-0.7)proLate.lat2: 44.0611144929704  FAILED, KNOWN, expected 44.0611144929705\n    test 45 f(-0.7)proLate.lon1: -73.8\n    test 46 f(-0.7)proLate.lon2: 22.642936371381\n    test 47 f(-0.7)proLate.m12: 4556060.22546814\n    test 48 f(-0.7)proLate.M12: 0.5292041366919\n    test 49 f(-0.7)proLate.M21: 0.508852016715467\n    test 50 f(-0.7)proLate.s12: 5500000\n    test 51 f(-0.7)proLate.S12: 92958550148866.4\n\n    test 52 f(-0.6)proLate.a12: 41.9855065431433  FAILED, KNOWN, expected 41.9855065431432\n    test 53 f(-0.6)proLate.azi1: 51\n    test 54 f(-0.6)proLate.azi2: 120.049569615163\n    test 55 f(-0.6)proLate.lat1: 40.6\n    test 56 f(-0.6)proLate.lat2: 45.0761455124556\n    test 57 f(-0.6)proLate.lon1: -73.8\n    test 58 f(-0.6)proLate.lon2: 19.3243907915446  FAILED, KNOWN, expected 19.3243907915445\n    test 59 f(-0.6)proLate.m12: 4607523.91009243\n    test 60 f(-0.6)proLate.M12: 0.553483535239665  FAILED, KNOWN, expected 0.553483535239666\n    test 61 f(-0.6)proLate.M21: 0.531159755627539  FAILED, KNOWN, expected 0.53115975562754\n    test 62 f(-0.6)proLate.s12: 5500000\n    test 63 f(-0.6)proLate.S12: 84342570067148.5  FAILED, KNOWN, expected 84342570067148.4\n\n    test 64 f(-0.5)proLate.a12: 42.7835406714305\n    test 65 f(-0.5)proLate.azi1: 51\n    test 66 f(-0.5)proLate.azi2: 117.89451986943\n    test 67 f(-0.5)proLate.lat1: 40.6\n    test 68 f(-0.5)proLate.lat2: 46.1086918613931\n    test 69 f(-0.5)proLate.lon1: -73.8\n    test 70 f(-0.5)proLate.lon2: 15.9398177760259\n    test 71 f(-0.5)proLate.m12: 4656181.1495523\n    test 72 f(-0.5)proLate.M12: 0.575884086565632\n    test 73 f(-0.5)proLate.M21: 0.553184499769342\n    test 74 f(-0.5)proLate.s12: 5500000\n    test 75 f(-0.5)proLate.S12: 76020929892733.4\n\n    test 76 f(-0.4)proLate.a12: 43.7036853028434\n    test 77 f(-0.4)proLate.azi1: 51\n    test 78 f(-0.4)proLate.azi2: 115.706685237732\n    test 79 f(-0.4)proLate.lat1: 40.6\n    test 80 f(-0.4)proLate.lat2: 47.1623837243428\n    test 81 f(-0.4)proLate.lon1: -73.8\n    test 82 f(-0.4)proLate.lon2: 12.5108734214613\n    test 83 f(-0.4)proLate.m12: 4701617.48531727\n    test 84 f(-0.4)proLate.M12: 0.596186986538198  FAILED, KNOWN, expected 0.596186986538199\n    test 85 f(-0.4)proLate.M21: 0.57467855536679\n    test 86 f(-0.4)proLate.s12: 5500000\n    test 87 f(-0.4)proLate.S12: 68024911861224.7\n\n    test 88 f(-0.3)proLate.a12: 44.778142996055\n    test 89 f(-0.3)proLate.azi1: 51\n    test 90 f(-0.3)proLate.azi2: 113.512221079884\n    test 91 f(-0.3)proLate.lat1: 40.6\n    test 92 f(-0.3)proLate.lat2: 48.2448394088334\n    test 93 f(-0.3)proLate.lon1: -73.8\n    test 94 f(-0.3)proLate.lon2: 9.06439641717145  FAILED, KNOWN, expected 9.06439641717139\n    test 95 f(-0.3)proLate.m12: 4743418.11467172  FAILED, KNOWN, expected 4743418.11467171\n    test 96 f(-0.3)proLate.M12: 0.614141109926638\n    test 97 f(-0.3)proLate.M21: 0.595388570443547  FAILED, KNOWN, expected 0.595388570443548\n    test 98 f(-0.3)proLate.s12: 5500000\n    test 99 f(-0.3)proLate.S12: 60386769588050.2\n\n    test 100 f(-0.2)proLate.a12: 46.0484287767579  FAILED, KNOWN, expected 46.0484287767578\n    test 101 f(-0.2)proLate.azi1: 51\n    test 102 f(-0.2)proLate.azi2: 111.343872400749\n    test 103 f(-0.2)proLate.lat1: 40.6\n    test 104 f(-0.2)proLate.lat2: 49.3693479292292\n    test 105 f(-0.2)proLate.lon1: -73.8\n    test 106 f(-0.2)proLate.lon2: 5.63252938443212  FAILED, KNOWN, expected 5.63252938443208\n    test 107 f(-0.2)proLate.m12: 4781182.84779737  FAILED, KNOWN, expected 4781182.84779736\n    test 108 f(-0.2)proLate.M12: 0.629452843380053\n    test 109 f(-0.2)proLate.M21: 0.615074420205344  FAILED, KNOWN, expected 0.615074420205345\n    test 110 f(-0.2)proLate.s12: 5500000\n    test 111 f(-0.2)proLate.S12: 53138975764711\n\n    test 112 f(-0.1)proLate.a12: 47.5682594059394\n    test 113 f(-0.1)proLate.azi1: 51\n    test 114 f(-0.1)proLate.azi2: 109.241628907367\n    test 115 f(-0.1)proLate.lat1: 40.6\n    test 116 f(-0.1)proLate.lat2: 50.5570087568933\n    test 117 f(-0.1)proLate.lon1: -73.8\n    test 118 f(-0.1)proLate.lon2: 2.25260962354911  FAILED, KNOWN, expected 2.25260962354909\n    test 119 f(-0.1)proLate.m12: 4814553.53489422\n    test 120 f(-0.1)proLate.M12: 0.641772419411799\n    test 121 f(-0.1)proLate.M21: 0.6335390304747\n    test 122 f(-0.1)proLate.s12: 5500000\n    test 123 f(-0.1)proLate.S12: 46313407380218.5\n\n    test 124 f(0.0)sphere.a12: 49.4073406265737  FAILED, KNOWN, expected 49.4073406265736\n    test 125 f(0.0)sphere.azi1: 51\n./test/testGeodesicx.py:143: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  gP = E.geodesic\n    test 126 f(0.0)sphere.azi2: 107.253441084194\n    test 127 f(0.0)sphere.lat1: 40.6\n    test 128 f(0.0)sphere.lat2: 51.8394367533853\n    test 129 f(0.0)sphere.lon1: -73.8\n    test 130 f(0.0)sphere.lon2: -1.03317283695992  FAILED, KNOWN, expected -1.03317283695993\n    test 131 f(0.0)sphere.m12: 4843268.16188793\n    test 132 f(0.0)sphere.M12: 0.650676935525673\n    test 133 f(0.0)sphere.M21: 0.650676935525673\n    test 134 f(0.0)sphere.s12: 5500000\n    test 135 f(0.0)sphere.S12: 39940559879050\n\n    test 136 f(0.1)obLate.a12: 51.6562009348442\n    test 137 f(0.1)obLate.azi1: 51\n    test 138 f(0.1)obLate.azi2: 105.436101360918\n    test 139 f(0.1)obLate.lat1: 40.6\n    test 140 f(0.1)obLate.lat2: 53.2621488352775\n    test 141 f(0.1)obLate.lon1: -73.8\n    test 142 f(0.1)obLate.lon2: -4.17831797695514\n    test 143 f(0.1)obLate.m12: 4867271.01535067\n    test 144 f(0.1)obLate.M12: 0.655652471115945\n    test 145 f(0.1)obLate.M21: 0.666556146155552\n    test 146 f(0.1)obLate.s12: 5500000\n    test 147 f(0.1)obLate.S12: 34048882687460.5\n\n    test 148 f(0.2)obLate.a12: 54.4319984205255\n    test 149 f(0.2)obLate.azi1: 51\n    test 150 f(0.2)obLate.azi2: 103.8563593825  FAILED, KNOWN, expected 103.856359382499\n    test 151 f(0.2)obLate.lat1: 40.6\n    test 152 f(0.2)obLate.lat2: 54.8886869301292\n    test 153 f(0.2)obLate.lon1: -73.8\n    test 154 f(0.2)obLate.lon2: -7.13270532079325  FAILED, KNOWN, expected -7.13270532079328\n    test 155 f(0.2)obLate.m12: 4886937.77404685\n    test 156 f(0.2)obLate.M12: 0.65608338247866\n    test 157 f(0.2)obLate.M21: 0.681558941812475\n    test 158 f(0.2)obLate.s12: 5500000\n    test 159 f(0.2)obLate.S12: 28664292324534.6\n\n    test 160 f(0.3)obLate.a12: 57.8845459603905\n    test 161 f(0.3)obLate.azi1: 51\n    test 162 f(0.3)obLate.azi2: 102.592096849744\n    test 163 f(0.3)obLate.lat1: 40.6\n    test 164 f(0.3)obLate.lat2: 56.8052789737725\n    test 165 f(0.3)obLate.lon1: -73.8\n    test 166 f(0.3)obLate.lon2: -9.8433935024507  FAILED, KNOWN, expected -9.84339350245068\n    test 167 f(0.3)obLate.m12: 4903527.26055769\n    test 168 f(0.3)obLate.M12: 0.651269895561088\n    test 169 f(0.3)obLate.M21: 0.696621153271262\n    test 170 f(0.3)obLate.s12: 5500000\n    test 171 f(0.3)obLate.S12: 23809838803598.7\n\n    test 172 f(0.4)obLate.a12: 62.2000535802232\n    test 173 f(0.4)obLate.azi1: 51\n    test 174 f(0.4)obLate.azi2: 101.732620462068\n    test 175 f(0.4)obLate.lat1: 40.6\n    test 176 f(0.4)obLate.lat2: 59.1251996985707\n    test 177 f(0.4)obLate.lon1: -73.8\n    test 178 f(0.4)obLate.lon2: -12.2555967438742\n    test 179 f(0.4)obLate.m12: 4920049.29725335\n    test 180 f(0.4)obLate.M12: 0.640521897686656\n    test 181 f(0.4)obLate.M21: 0.713612775606923\n    test 182 f(0.4)obLate.s12: 5500000\n    test 183 f(0.4)obLate.S12: 19505392269428.9\n\n    test 184 f(0.5)obLate.a12: 67.5961360204058\n    test 185 f(0.5)obLate.azi1: 51\n    test 186 f(0.5)obLate.azi2: 101.375214059512\n    test 187 f(0.5)obLate.lat1: 40.6\n    test 188 f(0.5)obLate.lat2: 61.9908246599488\n    test 189 f(0.5)obLate.lon1: -73.8\n    test 190 f(0.5)obLate.lon2: -14.314173457934\n    test 191 f(0.5)obLate.m12: 4942782.22410672  FAILED, KNOWN, expected 4942782.22410673\n    test 192 f(0.5)obLate.M12: 0.62342153427984\n    test 193 f(0.5)obLate.M21: 0.735840684527278\n    test 194 f(0.5)obLate.s12: 5500000\n    test 195 f(0.5)obLate.S12: 15767156271751.5\n\n    test 196 f(0.6)obLate.a12: 74.293940742003\n    test 197 f(0.6)obLate.azi1: 51\n    test 198 f(0.6)obLate.azi2: 101.611122905479\n    test 199 f(0.6)obLate.lat1: 40.6\n    test 200 f(0.6)obLate.lat2: 65.570125882359\n    test 201 f(0.6)obLate.lon1: -73.8\n    test 202 f(0.6)obLate.lon2: -15.9664855590569\n    test 203 f(0.6)obLate.m12: 4983385.70418856\n    test 204 f(0.6)obLate.M12: 0.600385896682554\n    test 205 f(0.6)obLate.M21: 0.768372005314338\n    test 206 f(0.6)obLate.s12: 5500000\n    test 207 f(0.6)obLate.S12: 12607032773613.6\n\n    test 208 f(0.7)obLate.a12: 82.4416835202881\n    test 209 f(0.7)obLate.azi1: 51\n    test 210 f(0.7)obLate.azi2: 102.488060130252\n    test 211 f(0.7)obLate.lat1: 40.6\n    test 212 f(0.7)obLate.lat2: 70.0446694858328\n    test 213 f(0.7)obLate.lon1: -73.8\n    test 214 f(0.7)obLate.lon2: -17.1682178841074\n    test 215 f(0.7)obLate.m12: 5059996.37065633\n    test 216 f(0.7)obLate.M12: 0.573565786722513\n    test 217 f(0.7)obLate.M21: 0.817099782347416\n    test 218 f(0.7)obLate.s12: 5500000\n    test 219 f(0.7)obLate.S12: 10032955148624.8  FAILED, KNOWN, expected 10032955148494\n\n    test 220 f(0.8)obLate.a12: 91.9549069618777\n    test 221 f(0.8)obLate.azi1: 51\n    test 222 f(0.8)obLate.azi2: 103.932282361181\n    test 223 f(0.8)obLate.lat1: 40.6\n    test 224 f(0.8)obLate.lat2: 75.5867314102627\n    test 225 f(0.8)obLate.lon1: -73.8\n    test 226 f(0.8)obLate.lon2: -17.8943807275634\n    test 227 f(0.8)obLate.m12: 5191227.434783\n    test 228 f(0.8)obLate.M12: 0.547588120961581\n    test 229 f(0.8)obLate.M21: 0.88423165114083\n    test 230 f(0.8)obLate.s12: 5500000\n    test 231 f(0.8)obLate.S12: 8054551454844.58  FAILED, KNOWN, expected 8054551222919.28\n\n    test 232 f(0.9)obLate.a12: 102.246152032153\n    test 233 f(0.9)obLate.azi1: 51\n    test 234 f(0.9)obLate.azi2: 105.618016083621\n    test 235 f(0.9)obLate.lat1: 40.6\n    test 236 f(0.9)obLate.lat2: 82.2999319410311\n    test 237 f(0.9)obLate.lon1: -73.8\n    test 238 f(0.9)obLate.lon2: -18.1607604123894  FAILED, KNOWN, expected -18.1607604123892\n    test 239 f(0.9)obLate.m12: 5370336.10833014\n    test 240 f(0.9)obLate.M12: 0.528679454698809\n    test 241 f(0.9)obLate.M21: 0.958073002020686  FAILED, KNOWN, expected 0.958073002020685\n    test 242 f(0.9)obLate.s12: 5500000\n    test 243 f(0.9)obLate.S12: 6706997024987.37  FAILED, KNOWN, expected 6706617604760.9\n\n    test 244 GeodesicLineExact: name='', lat1=40.6, lon1=-73.8, azi1=51, a13=49.475527, s13=5500000, caps=36747, geodesic=GeodesicExact(name='WGS84', caps=0, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), C4order=30)\n    test 245 GeodesicExact: GeodesicExact(name='WGS84', caps=0, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), C4order=30)\n    test 246 GeodesicLineExact: Direct9Tuple(a12=49.475527, lat2=51.884565, lon2=-1.141173, azi2=107.189397, s12=5500000.0, m12=4844148.703101, M12=0.650911, M21=0.651229, S12=NAN)\n\n    test 247 GeodesicExact: {a12: 49.475527, azi1: 51.0, azi2: 107.189397, lat1: 40.6, lat2: 51.884565, lon1: -73.8, lon2: -1.141173, m12: 4844148.703101, M12: 0.650911, M21: 0.651229, s12: 5500000.0}\n    test 248 GeodesicExact: (49.475527, 51.884565, -1.141173, 107.189397, 5500000.0, 4844148.703101, 0.650911, 0.651229, NAN)\n    test 249 GeodesicExact: {a12: 49.475527, azi2: 107.189397, lat2: 51.884565, lon2: -1.141173, m12: 4844148.703101, M12: 0.650911, M21: 0.651229, s12: 5500000.0, S12: NAN}  FAILED, KNOWN, expected {a12: 49.475527, azi1: 51.0, azi2: 107.189397, lat1: 40.6, lat2: 51.884565, lon1: -73.8, lon2: -1.141173, m12: 4844148.703101, M12: 0.650911, M21: 0.651229, s12: 5500000.0}\n\n    test 250 Geodesic: {a12: 49.475527, azi2: 107.189397, lat2: 51.884565, lon2: -1.141173, m12: NAN, M12: NAN, M21: NAN, s12: 5500000.0, S12: NAN}\n    test 251 Geodesic: (49.475527, 51.884565, -1.141173, 107.189397, 5500000.0, NAN, NAN, NAN, NAN)\n    test 252 Geodesic: {a12: 49.475527, azi2: 107.189397, lat2: 51.884565, lon2: -1.141173, m12: NAN, M12: NAN, M21: NAN, s12: 5500000.0, S12: NAN}\n\n    test 253 GeodesicSolve: {a12: 49.475527, azi1: 51.0, azi2: 107.189397, lat1: 40.6, lat2: 51.884565, lon1: -73.8, lon2: -1.141173, m12: 4844148.703101, M12: 0.650911, M21: 0.651229, s12: 5500000.0, S12: 39735075134877.078125}\n    test 254 GeodesicSolve: (49.475527, 51.884565, -1.141173, 107.189397, 5500000.0, 4844148.703101, 0.650911, 0.651229, 39735075134877.078125)\n    test 255 GeodesicSolve: {a12: 49.475527, azi2: 107.189397, lat2: 51.884565, lon2: -1.141173, m12: 4844148.703101, M12: 0.650911, M21: 0.651229, s12: 5500000.0, S12: 39735075134877.078125}  FAILED, KNOWN, expected {a12: 49.475527, azi1: 51.0, azi2: 107.189397, lat1: 40.6, lat2: 51.884565, lon1: -73.8, lon2: -1.141173, m12: 4844148.703101, M12: 0.650911, M21: 0.651229, s12: 5500000.0, S12: 39735075134877.078125}\n\n    test 256 ArcDirect.a12: 49.8\n    test 257 ArcDirect.azi1: 51\n    test 258 ArcDirect.azi2: 107.582082475406  FAILED, KNOWN, expected 107.5820825\n    test 259 ArcDirect.lat1: 40.6\n    test 260 ArcDirect.lat2: 51.7876866587893  FAILED, KNOWN, expected 51.7876867\n    test 261 ArcDirect.lon1: -73.8\n    test 262 ArcDirect.lon2: -0.641731343091337  FAILED, KNOWN, expected -0.641731\n    test 263 ArcDirect.s12: 5536073.73439267  FAILED, KNOWN, expected 5536073.734393\n    test 264 iteration: None\n\n    test 265 ArcDirectLine: name='', lat1=40.6, lon1=-73.8, azi1=51, a13=49.8, s13=5536073.734393, caps=36747, geodesic=GeodesicExact(name='WGS84', caps=0, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), C4order=30)\n    test 266 iteration: None\n\n    test 267 GeodesicLineExact: name='', lat1=40.6, lon1=-73.8, azi1=51, a13=NAN, s13=NAN, caps=65439, geodesic=GeodesicExact(name='WGS84', caps=0, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), C4order=30)\n    test 268 iteration: None\n\n    testInverseX vs ...(pygeodesy.geodesicx, 25.12.23)\n    test 269 C++X.a12: 49.941310217899\n    test 270 C++X.azi1: 51.1988828455798\n    test 271 C++X.azi2: 107.821776735514\n    test 272 C++X.lat1: 40.6\n    test 273 C++X.lat2: 51.6\n    test 274 C++X.lon1: -73.8\n    test 275 C++X.lon2: -0.5\n    test 276 C++X.m12: 4877684.6027062\n    test 277 C++X.M12: 0.644729692059482\n    test 278 C++X.M21: 0.645045678521344\n    test 279 C++X.s12: 5551759.40031868\n    test 280 C++X.S12: 40041368848742.5\n    test 281 iteration: 3\n\n    test 282 Python.a12: 49.941310217899\n    test 283 Python.azi1: 51.1988828455798\n    test 284 Python.azi2: 107.821776735514\n    test 285 Python.lat1: 40.6\n    test 286 Python.lat2: 51.6\n    test 287 Python.lon1: -73.8\n    test 288 Python.lon2: -0.5\n    test 289 Python.m12: 4877684.6027062\n    test 290 Python.M12: 0.644729692059482\n    test 291 Python.M21: 0.645045678521344\n    test 292 Python.s12: 5551759.40031868\n    test 293 Python.S12: 40041368848742.5\n    test 294 iteration: None\n\n    test 295 GeodSolve.a12: 49.941310217899\n    test 296 GeodSolve.azi1: 51.1988828455798\n    test 297 GeodSolve.azi2: 107.821776735514\n    test 298 GeodSolve.lat1: 40.6\n    test 299 GeodSolve.lat2: 51.6\n    test 300 GeodSolve.lon1: -73.8\n    test 301 GeodSolve.lon2: -0.5\n    test 302 GeodSolve.m12: 4877684.6027062\n    test 303 GeodSolve.M12: 0.644729692059482\n    test 304 GeodSolve.M21: 0.645045678521344\n    test 305 GeodSolve.s12: 5551759.40031868\n    test 306 GeodSolve.S12: 40041368848742.5\n    test 307 iteration: None\n\n    test 308 f(-0.7)proLate.a12: 30.8498450229685\n    test 309 f(-0.7)proLate.azi1: 46.8390771777767\n    test 310 f(-0.7)proLate.azi2: 102.364845341617\n    test 311 f(-0.7)proLate.lat1: 40.6\n    test 312 f(-0.7)proLate.lat2: 51.6\n    test 313 f(-0.7)proLate.lon1: -73.8\n    test 314 f(-0.7)proLate.lon2: -0.5\n    test 315 f(-0.7)proLate.m12: 3663075.31071237\n    test 316 f(-0.7)proLate.M12: 0.731807954033609\n    test 317 f(-0.7)proLate.M21: 0.696381877483542\n    test 318 f(-0.7)proLate.s12: 4064374.72733529  FAILED, KNOWN, expected 4064374.7273353\n    test 319 f(-0.7)proLate.S12: 71321909298423.2\n\n    test 320 f(-0.6)proLate.a12: 32.624467259717\n    test 321 f(-0.6)proLate.azi1: 47.2626025379604\n    test 322 f(-0.6)proLate.azi2: 102.867650046856\n    test 323 f(-0.6)proLate.lat1: 40.6\n    test 324 f(-0.6)proLate.lat2: 51.6\n    test 325 f(-0.6)proLate.lon1: -73.8\n    test 326 f(-0.6)proLate.lon2: -0.5\n    test 327 f(-0.6)proLate.m12: 3811547.14779174\n    test 328 f(-0.6)proLate.M12: 0.725390840887561\n    test 329 f(-0.6)proLate.M21: 0.692782702624977\n    test 330 f(-0.6)proLate.s12: 4237106.26798552\n    test 331 f(-0.6)proLate.S12: 67003980896186\n\n    test 332 f(-0.5)proLate.a12: 34.6143539838512\n    test 333 f(-0.5)proLate.azi1: 47.7400036902753\n    test 334 f(-0.5)proLate.azi2: 103.43951372754\n    test 335 f(-0.5)proLate.lat1: 40.6\n    test 336 f(-0.5)proLate.lat2: 51.6\n    test 337 f(-0.5)proLate.lon1: -73.8\n    test 338 f(-0.5)proLate.lon2: -0.5\n    test 339 f(-0.5)proLate.m12: 3968659.90647178\n    test 340 f(-0.5)proLate.M12: 0.717750671080257\n    test 341 f(-0.5)proLate.M21: 0.688437867237199  FAILED, KNOWN, expected 0.688437867237198\n    test 342 f(-0.5)proLate.s12: 4421695.86157285  FAILED, KNOWN, expected 4421695.86157283\n    test 343 f(-0.5)proLate.S12: 62647679908513.7\n\n    test 344 f(-0.4)proLate.a12: 36.8617108475833\n    test 345 f(-0.4)proLate.azi1: 48.2782940313591\n    test 346 f(-0.4)proLate.azi2: 104.091557707465\n    test 347 f(-0.4)proLate.lat1: 40.6\n    test 348 f(-0.4)proLate.lat2: 51.6\n    test 349 f(-0.4)proLate.lon1: -73.8\n    test 350 f(-0.4)proLate.lon2: -0.5\n    test 351 f(-0.4)proLate.m12: 4134433.86723881\n    test 352 f(-0.4)proLate.M12: 0.708569458041405\n    test 353 f(-0.4)proLate.M21: 0.683143770036343\n    test 354 f(-0.4)proLate.s12: 4618861.32295258\n    test 355 f(-0.4)proLate.S12: 58248979819324.2\n\n    test 356 f(-0.3)proLate.a12: 39.420657884794\n    test 357 f(-0.3)proLate.azi1: 48.8846677001672\n    test 358 f(-0.3)proLate.azi2: 104.836563775286\n    test 359 f(-0.3)proLate.lat1: 40.6\n    test 360 f(-0.3)proLate.lat2: 51.6\n    test 361 f(-0.3)proLate.lon1: -73.8\n    test 362 f(-0.3)proLate.lon2: -0.5\n    test 363 f(-0.3)proLate.m12: 4308600.98113564\n    test 364 f(-0.3)proLate.M12: 0.697425644708898\n    test 365 f(-0.3)proLate.M21: 0.676630205430698\n    test 366 f(-0.3)proLate.s12: 4829239.13386067\n    test 367 f(-0.3)proLate.S12: 53804526775605.1\n\n    test 368 f(-0.2)proLate.a12: 42.3616492820545\n    test 369 f(-0.2)proLate.azi1: 49.5658543493026\n    test 370 f(-0.2)proLate.azi2: 105.689010365627\n    test 371 f(-0.2)proLate.lat1: 40.6\n    test 372 f(-0.2)proLate.lat2: 51.6\n    test 373 f(-0.2)proLate.lon1: -73.8\n    test 374 f(-0.2)proLate.lon2: -0.5\n    test 375 f(-0.2)proLate.m12: 4490465.96891757\n    test 376 f(-0.2)proLate.M12: 0.68375529812055\n    test 377 f(-0.2)proLate.M21: 0.668536876326996\n    test 378 f(-0.2)proLate.s12: 5053314.98382881\n    test 379 f(-0.2)proLate.S12: 49312505255330.1\n\n    test 380 f(-0.1)proLate.a12: 45.7778520084076\n    test 381 f(-0.1)proLate.azi1: 50.3269341833279\n    test 382 f(-0.1)proLate.azi2: 106.664955696455\n    test 383 f(-0.1)proLate.lat1: 40.6\n    test 384 f(-0.1)proLate.lat2: 51.6\n    test 385 f(-0.1)proLate.lon1: -73.8\n    test 386 f(-0.1)proLate.lon2: -0.5\n    test 387 f(-0.1)proLate.m12: 4678718.41576326\n    test 388 f(-0.1)proLate.M12: 0.666798996688209\n    test 389 f(-0.1)proLate.M21: 0.658383098263921\n    test 390 f(-0.1)proLate.s12: 5291321.5507197\n    test 391 f(-0.1)proLate.S12: 44774044241120.1\n\n    test 392 f(0.0)sphere.a12: 49.7943971585704\n    test 393 f(0.0)sphere.azi1: 51.1692726724686\n    test 394 f(0.0)sphere.azi2: 107.781686005324\n    test 395 f(0.0)sphere.lat1: 40.6\n    test 396 f(0.0)sphere.lat2: 51.6\n    test 397 f(0.0)sphere.lon1: -73.8\n    test 398 f(0.0)sphere.lon2: -0.5\n    test 399 f(0.0)sphere.m12: 4871193.11191523\n    test 400 f(0.0)sphere.M12: 0.645532374747016\n    test 401 f(0.0)sphere.M21: 0.645532374747016\n    test 402 f(0.0)sphere.s12: 5543086.93605008\n    test 403 f(0.0)sphere.S12: 40195434111030.4\n\n    test 404 f(0.1)obLate.a12: 54.5817311860469\n    test 405 f(0.1)obLate.azi1: 52.0870591681387\n    test 406 f(0.1)obLate.azi2: 109.057061572538\n    test 407 f(0.1)obLate.lat1: 40.6\n    test 408 f(0.1)obLate.lat2: 51.6\n    test 409 f(0.1)obLate.lon1: -73.8\n    test 410 f(0.1)obLate.lon2: -0.5\n    test 411 f(0.1)obLate.m12: 5064606.53235912\n    test 412 f(0.1)obLate.M12: 0.618585517999412\n    test 413 f(0.1)obLate.M21: 0.629161725809446\n    test 414 f(0.1)obLate.s12: 5807806.81178111\n    test 415 f(0.1)obLate.S12: 35591517394916.9\n\n    test 416 f(0.2)obLate.a12: 60.3743912113748\n    test 417 f(0.2)obLate.azi1: 53.0617122520881\n    test 418 f(0.2)obLate.azi2: 110.508586502508\n    test 419 f(0.2)obLate.lat1: 40.6\n    test 420 f(0.2)obLate.lat2: 51.6\n    test 421 f(0.2)obLate.lon1: -73.8\n    test 422 f(0.2)obLate.lon2: -0.5\n    test 423 f(0.2)obLate.m12: 5254398.40150138  FAILED, KNOWN, expected 5254398.40150139\n    test 424 f(0.2)obLate.M12: 0.58418152964186\n    test 425 f(0.2)obLate.M21: 0.608269542318507\n./test/testGeodesicx.py:284: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  t.testPolygon(geodesicw, E.geodesic, K=True)  # XXX geographiclib 1.49 issue?\n    test 426 f(0.2)obLate.s12: 6083696.88909232\n    test 427 f(0.2)obLate.S12: 30990690116402.8\n\n    test 428 f(0.3)obLate.a12: 67.495457095946\n    test 429 f(0.3)obLate.azi1: 54.0532224017487\n    test 430 f(0.3)obLate.azi2: 112.152465760492\n    test 431 f(0.3)obLate.lat1: 40.6\n    test 432 f(0.3)obLate.lat2: 51.6\n    test 433 f(0.3)obLate.lon1: -73.8\n    test 434 f(0.3)obLate.lon2: -0.5\n    test 435 f(0.3)obLate.m12: 5435105.88682598\n    test 436 f(0.3)obLate.M12: 0.540200055593844\n    test 437 f(0.3)obLate.M21: 0.58182050999746\n    test 438 f(0.3)obLate.s12: 6367459.71879627\n    test 439 f(0.3)obLate.S12: 26441913266022.4\n\n    test 440 f(0.4)obLate.a12: 76.3815180684531\n    test 441 f(0.4)obLate.azi1: 54.9876967652191\n    test 442 f(0.4)obLate.azi2: 114.003234978639\n    test 443 f(0.4)obLate.lat1: 40.6\n    test 444 f(0.4)obLate.lat2: 51.6\n    test 445 f(0.4)obLate.lon1: -73.8\n    test 446 f(0.4)obLate.lon2: -0.5\n    test 447 f(0.4)obLate.m12: 5602495.83037188\n    test 448 f(0.4)obLate.M12: 0.484674381110201\n    test 449 f(0.4)obLate.M21: 0.549286273467489\n    test 450 f(0.4)obLate.s12: 6653478.68267745\n    test 451 f(0.4)obLate.S12: 22023748427134.9\n\n    test 452 f(0.5)obLate.a12: 87.5840623039456  FAILED, KNOWN, expected 87.5840623039457\n    test 453 f(0.5)obLate.azi1: 55.7424301998074  FAILED, KNOWN, expected 55.7424301998073\n    test 454 f(0.5)obLate.azi2: 116.074074324746\n    test 455 f(0.5)obLate.lat1: 40.6\n    test 456 f(0.5)obLate.lat2: 51.6\n    test 457 f(0.5)obLate.lon1: -73.8\n    test 458 f(0.5)obLate.lon2: -0.5\n    test 459 f(0.5)obLate.m12: 5760420.96055483  FAILED, KNOWN, expected 5760420.96055484\n    test 460 f(0.5)obLate.M12: 0.417476669533174\n    test 461 f(0.5)obLate.M21: 0.512154548261849\n    test 462 f(0.5)obLate.s12: 6932661.04065593\n    test 463 f(0.5)obLate.S12: 17854087370054.8\n\n    test 464 f(0.6)obLate.a12: 101.672789393317\n    test 465 f(0.6)obLate.azi1: 56.1390154131257\n    test 466 f(0.6)obLate.azi2: 118.372753418033\n    test 467 f(0.6)obLate.lat1: 40.6\n    test 468 f(0.6)obLate.lat2: 51.6\n    test 469 f(0.6)obLate.lon1: -73.8\n    test 470 f(0.6)obLate.lon2: -0.5\n    test 471 f(0.6)obLate.m12: 5936976.93923961  FAILED, KNOWN, expected 5936976.9392396\n    test 472 f(0.6)obLate.M12: 0.344399833962436\n    test 473 f(0.6)obLate.M21: 0.477141269812572\n    test 474 f(0.6)obLate.s12: 7190974.04293755\n    test 475 f(0.6)obLate.S12: 14095435741511.4\n\n    test 476 f(0.7)obLate.a12: 118.899974433249\n    test 477 f(0.7)obLate.azi1: 55.9822604941527\n    test 478 f(0.7)obLate.azi2: 120.870267694794\n    test 479 f(0.7)obLate.lat1: 40.6\n    test 480 f(0.7)obLate.lat2: 51.6\n    test 481 f(0.7)obLate.lon1: -73.8\n    test 482 f(0.7)obLate.lon2: -0.5\n    test 483 f(0.7)obLate.m12: 6204736.82362484\n    test 484 f(0.7)obLate.M12: 0.282767834544914\n    test 485 f(0.7)obLate.M21: 0.459629432484044\n    test 486 f(0.7)obLate.s12: 7408209.3953438\n    test 487 f(0.7)obLate.S12: 10942220257436.1  FAILED, KNOWN, expected 10942220257394\n\n    test 488 f(0.8)obLate.a12: 138.654874707967\n    test 489 f(0.8)obLate.azi1: 55.2084184735526\n    test 490 f(0.8)obLate.azi2: 123.405114674792\n    test 491 f(0.8)obLate.lat1: 40.6\n    test 492 f(0.8)obLate.lat2: 51.6\n    test 493 f(0.8)obLate.lon1: -73.8\n    test 494 f(0.8)obLate.lon2: -0.5\n    test 495 f(0.8)obLate.m12: 6652110.16869957\n    test 496 f(0.8)obLate.M12: 0.257661231584227  FAILED, KNOWN, expected 0.257661231584228\n    test 497 f(0.8)obLate.M21: 0.47762576985866  FAILED, KNOWN, expected 0.477625769858661\n    test 498 f(0.8)obLate.s12: 7559119.64995391\n    test 499 f(0.8)obLate.S12: 8571969475833.53  FAILED, KNOWN, expected 8571969367509.22\n\n    test 500 f(0.9)obLate.a12: 159.448156899958\n    test 501 f(0.9)obLate.azi1: 54.0916012255364\n    test 502 f(0.9)obLate.azi2: 125.571065515772\n    test 503 f(0.9)obLate.lat1: 40.6\n    test 504 f(0.9)obLate.lat2: 51.6\n    test 505 f(0.9)obLate.lon1: -73.8\n    test 506 f(0.9)obLate.lon2: -0.5\n    test 507 f(0.9)obLate.m12: 7235195.22082336  FAILED, KNOWN, expected 7235195.22082337\n    test 508 f(0.9)obLate.M12: 0.275665516678923\n    test 509 f(0.9)obLate.M21: 0.527869883058878\n    test 510 f(0.9)obLate.s12: 7622715.60282402\n    test 511 f(0.9)obLate.S12: 7084875642239.07  FAILED, KNOWN, expected 7084594959626\n\n    test 512 GeodesicLineExact: GeodesicLineExact(name='', lat1=40.6, lon1=-73.8, azi1=51.198883, a13=49.94131, s13=5551759.400319, caps=36747, geodesic=GeodesicExact(name='WGS84', caps=0, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), C4order=30))\n    test 513 GeodesicExact: name='WGS84', caps=0, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), C4order=30\n    test 514 GeodesicLineExact: Direct9Tuple(a12=49.94131, lat2=51.6, lon2=-0.5, azi2=107.821777, s12=5551759.400319, m12=4877684.602706, M12=0.64473, M21=0.645046, S12=NAN)\n\n    test 515 GeodesicExact: GDict(a12=49.94131, azi1=51.198883, azi2=107.821777, lat1=40.6, lat2=51.6, lon1=-73.8, lon2=-0.5, m12=4877684.602706, M12=0.64473, M21=0.645046, s12=5551759.400319)\n    test 516 GeodesicExact: Inverse10Tuple(a12=49.94131, s12=5551759.400319, salp1=NAN, calp1=NAN, salp2=NAN, calp2=NAN, m12=4877684.602706, M12=0.64473, M21=0.645046, S12=NAN)\n    test 517 GeodesicExact: {a12: 49.94131, azi1: NAN, azi2: NAN, calp1: NAN, calp2: NAN, m12: 4877684.602706, M12: 0.64473, M21: 0.645046, s12: 5551759.400319, S12: NAN, salp1: NAN, salp2: NAN}  FAILED, KNOWN, expected {a12: 49.94131, azi1: 51.198883, azi2: 107.821777, lat1: 40.6, lat2: 51.6, lon1: -73.8, lon2: -0.5, m12: 4877684.602706, M12: 0.64473, M21: 0.645046, s12: 5551759.400319}\n\n    test 518 Geodesic: GDict(a12=49.94131, azi1=51.198883, azi2=107.821777, calp1=0.626619, calp2=-0.306057, lon1=-73.8, lon2=-0.5, m12=NAN, M12=NAN, M21=NAN, s12=5551759.400319, S12=NAN, salp1=0.779326, salp2=0.952013)\n    test 519 Geodesic: Inverse10Tuple(a12=49.94131, s12=5551759.400319, salp1=0.779326, calp1=0.626619, salp2=0.952013, calp2=-0.306057, m12=NAN, M12=NAN, M21=NAN, S12=NAN)\n    test 520 Geodesic: {a12: 49.94131, azi1: 51.198883, azi2: 107.821777, calp1: 0.626619, calp2: -0.306057, m12: NAN, M12: NAN, M21: NAN, s12: 5551759.400319, S12: NAN, salp1: 0.779326, salp2: 0.952013}  FAILED, KNOWN, expected {a12: 49.94131, azi1: 51.198883, azi2: 107.821777, calp1: 0.626619, calp2: -0.306057, lon1: -73.8, lon2: -0.5, m12: NAN, M12: NAN, M21: NAN, s12: 5551759.400319, S12: NAN, salp1: 0.779326, salp2: 0.952013}\n\n    test 521 GeodesicSolve: GDict(a12=49.94131, azi1=51.198883, azi2=107.821777, lat1=40.6, lat2=51.6, lon1=-73.8, lon2=-0.5, m12=4877684.602706, M12=0.64473, M21=0.645046, s12=5551759.400319, S12=40041368848742.53125)\n    test 522 GeodesicSolve: Inverse10Tuple(a12=49.94131, s12=5551759.400319, salp1=NAN, calp1=NAN, salp2=NAN, calp2=NAN, m12=4877684.602706, M12=0.64473, M21=0.645046, S12=40041368848742.53125)\n    test 523 GeodesicSolve: {a12: 49.94131, azi1: NAN, azi2: NAN, calp1: NAN, calp2: NAN, m12: 4877684.602706, M12: 0.64473, M21: 0.645046, s12: 5551759.400319, S12: 40041368848742.53125, salp1: NAN, salp2: NAN}  FAILED, KNOWN, expected {a12: 49.94131, azi1: 51.198883, azi2: 107.821777, lat1: 40.6, lat2: 51.6, lon1: -73.8, lon2: -0.5, m12: 4877684.602706, M12: 0.64473, M21: 0.645046, s12: 5551759.400319, S12: 40041368848742.53125}\n\n    test 524 Inverse: {a12: 49.647855, azi1: 51.139649, azi2: 107.74164, lat1: 40.6, lat2: 51.6, lon1: -73.8, lon2: -0.5, m12: 4848370.615026, M12: 0.646331, M21: 0.646017, s12: 5515844.227497}\n    test 525 Inverse1: 49.647854761166144\n\n    testPolygon24(pygeodesy.geodesicx, 25.12.23)\n    test 526 Compute: (1, 0, 0)\n    test 527 AddEdges: (4, 4000, 1000000)\n    test 528 TestEdge: (5, 4000, 1000000)\n    test 529 Clear: 0\n    test 530 TestPoint: (1, 0, 0)\n    test 531 AddPoints: (4, 29506941, 65690027591346)\n    test 532 TestPoint: (5, 29506941, 65690027591346)\n    test 533 toStr: area=65690027591345.671875, geodesic=GeodesicExact(name='WGS84', caps=0, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), C4order=24), num=4, perimeter=29506941.155178, polyline=False\n\n    testPolygon27(pygeodesy.geodesicx, 25.12.23)\n    test 534 Compute: (1, 0, 0)\n    test 535 AddEdges: (4, 4000, 1000000)\n    test 536 TestEdge: (5, 4000, 1000000)\n    test 537 Clear: 0\n    test 538 TestPoint: (1, 0, 0)\n    test 539 AddPoints: (4, 29506941, 65690027591346)\n    test 540 TestPoint: (5, 29506941, 65690027591346)\n    test 541 toStr: area=65690027591345.671875, geodesic=GeodesicExact(name='WGS84', caps=0, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), C4order=27), num=4, perimeter=29506941.155178, polyline=False\n\n    testPolygon30(pygeodesy.geodesicx, 25.12.23)\n    test 542 Compute: (1, 0, 0)\n    test 543 AddEdges: (4, 4000, 1000000)\n    test 544 TestEdge: (5, 4000, 1000000)\n    test 545 Clear: 0\n    test 546 TestPoint: (1, 0, 0)\n    test 547 AddPoints: (4, 29506941, 65690027591346)\n    test 548 TestPoint: (5, 29506941, 65690027591346)\n    test 549 toStr: area=65690027591345.671875, geodesic=GeodesicExact(name='WGS84', caps=0, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), C4order=30), num=4, perimeter=29506941.155178, polyline=False\n\n    testPolygon(pygeodesy.geodsolve, 25.12.31)\n    test 550 Compute: (1, 0, 0)\n    test 551 AddEdges: (4, 4000, 1000000)\n    test 552 TestEdge: (5, 4000, 1000000)\n    test 553 Clear: 0\n    test 554 TestPoint: (1, 0, 0)\n    test 555 AddPoints: (4, 29506941, 65690027591346)\n    test 556 TestPoint: (5, 29506941, 65690027591346)\n    test 557 toStr: area=65690027591345.664062, geodesic=GeodesicSolve(ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), GeodSolve='/opt/local/bin/GeodSolve', invokation=13, status=0), num=4, perimeter=29506941.155178, polyline=False\n\n    testPolygon(pygeodesy.geodesicw, 25.05.28)\n    test 558 Compute: (1, 0, 0)\n    test 559 AddEdges: (4, 4000, 1000000)\n    test 560 TestEdge: (5, 4000, 1000000)\n    test 561 Clear: None  FAILED, KNOWN, expected 0\n    test 562 TestPoint: (1, 0, 0)\n    test 563 AddPoints: (4, 29506941, 65690027591346)\n    test 564 TestPoint: (5, 29506941, 65690027591346)\n\n    testPlumbTo ...(pygeodesy.geodesicx, 25.12.23)\n# lazily imported pygeodesy.rhumb by geodesicw.py line 606\n# imported pygeodesy.basics into errors.py line 443\n    test 565 lat2: 51.846089\n    test 566 lon2: 5.260428\n    test 567 s12: 24784.288415\n    test 568 at: -270.000000\n    test 569 iteration: 6\n\n    test 570 lat2: 54.928531\n    test 571 lon2: -21.937291\n    test 572 s12: 3928788.572003\n    test 573 at: 270.000000\n    test 574 iteration: 27\n\n    test 575 lat2: 37.976203  FAILED, KNOWN, expected 37.976217\n    test 576 lon2: 18.344790  FAILED, KNOWN, expected 18.344820\n    test 577 s12: 1012793.617854  FAILED, KNOWN, expected 1012790.599291\n    test 578 at: 270.005476  FAILED, KNOWN, expected 270.005437\n    test 579 iteration: 128\n\n    58 of 579 testGeodesicx.py tests (10.0%) FAILED, incl. 55 KNOWN plus 3 DeprecationWarnings (pygeodesy 26.3.26 Python 3.12.10 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 2.1.0 scipy 1.14.1 Math 2 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 isLazy 3 -W  default) 46.660 sec\nrunning /usr/local/bin/p....n3.12 -W default ~/PyGeodesy/test/testGeohash.py\n./test/testGeohash.py:38: DeprecationWarning: function L{decode_error<pygeodesy.geohash.decode_error>} has been DEPRECATED on 2024.07.28, use L{geohash.decode_error2}.\n  self.test('decode_error',  fstr(geohash.decode_error( g), fmt='%.*e'), '2.145767e-05, 2.145767e-05')  # DEPRECATED\n./test/testGeohash.py:45: DeprecationWarning: property_RO L{sizes<pygeodesy.geohash.Geohash.sizes>} has been DEPRECATED on 2024.07.28, use property C{Geohash.sizes3}.\n  self.test('sizes', fstr(g.sizes, prec=1), '4.8, 4.8')\n./test/testGeohash.py:87: DeprecationWarning: function L{decode_error<pygeodesy.geohash.decode_error>} has been DEPRECATED on 2024.07.28, use L{geohash.decode_error2}.\n  self.test('decode_error',  fstr(geohash.decode_error( 'u120fxw'), fmt='%.*e'), '6.866455e-04, 6.866455e-04')  # DEPRECATED\n./test/testGeohash.py:94: DeprecationWarning: function L{sizes<pygeodesy.geohash.sizes>} has been DEPRECATED on 2024.07.28, use function L{pygeodesy.geohash.sizes3}.\n  self.test('sizes',  fstr(geohash.sizes( 'u120fxw'), prec=1), '153.0, 153.0')  # DEPRECATED\n./test/testGeohash.py:102: DeprecationWarning: function L{sizes<pygeodesy.geohash.sizes>} has been DEPRECATED on 2024.07.28, use function L{pygeodesy.geohash.sizes3}.\n  self.test('sizes',  fstr(geohash.sizes( g), prec=1), '610.0, 1220.0')  # DEPRECATED\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.classname from .named by testGeohash.py line 11\n# lazily imported pygeodesy.fstr from .streprs by testGeohash.py line 11\n# lazily imported pygeodesy.geohash by testGeohash.py line 11\n# lazily imported pygeodesy.Geohash from .geohash by testGeohash.py line 11\n# lazily imported pygeodesy.Geohashed from .geohash by testGeohash.py line 11\n# lazily imported pygeodesy.ellipsoidalVincenty by testGeohash.py line 161\n\n    testing testGeohash.py 24.08.01 (module pygeodesy.geohash 25.09.16) isLazy=3\n    test 1 Geohash: geek\n    test 2 Geohash: geek\n    test 3 Geohash: 'geek'\n    test 4 Geohash: Geohash('geek')\n    test 5 Geohash: geek\n    test 6 bounds: (LatLon(65°23′26.25″N, 017°55′46.88″W), LatLon(65°33′59.06″N, 017°34′41.25″W))\n    test 7 toLatLon: 65.478516°N, 017.753906°W\n    test 8 latlon: 65.4785156, -17.7539062\n    test 9 philam: 1.1428157, -0.3098641\n    test 10 copy(<class 'type'>): (<class 'pygeodesy.geohash.Geohash'>, True)\n    test 11 Geohash.copy(): (<class 'pygeodesy.geohash.Geohash'>, True)\n    test 12 Geohash: geehpbpbp\n    test 13 toLatLon: 65.390625°N, 017.929689°W\n    test 14 latlon: 65.390625, -17.929689\n    test 15 ab: 1.1412817, -0.3129321\n    test 16 decode: ('65.390646', '-17.929709')\n    test 17 decode2: (65.390646, -17.929709)\n    test 18 decode_error: 2.145767e-05, 2.145767e-05\n    test 19 decode_error2: 2.145767e-05, 2.145767e-05\n    test 20 distance1To: 2758.887\n# imported pygeodesy.formy into geohash.py line 444\n    test 21 distance2To: 682.760\n    test 22 distance3To: 410.732\n    test 23 distance4To: 397.404\n    test 24 distance5To: 397.404\n    test 25 sizes: 4.8, 4.8\n    test 26 copy(<class 'type'>): (<class 'pygeodesy.geohash.Geohash'>, True)\n    test 27 Geohash.copy(): (<class 'pygeodesy.geohash.Geohash'>, True)\n    test 28 N: geehpbpbr\n    test 29 NE: geek00002\n    test 30 E: geek00000\n    test 31 SE: gee7bpbpb\n    test 32 S: gee5zzzzz\n    test 33 SW: gee5zzzzy\n    test 34 W: geehpbpbn\n    test 35 NW: geehpbpbq\n    test 36 N: geehpbpbr\n    test 37 NE: geek00002\n    test 38 E: geek00000\n    test 39 SE: gee7bpbpb\n    test 40 S: gee5zzzzz\n    test 41 SW: gee5zzzzy\n    test 42 W: geehpbpbn\n    test 43 NW: geehpbpbq\n    test 44 N: geehpbpbr\n    test 45 NE: geek00002\n    test 46 E: geek00000\n    test 47 SE: gee7bpbpb\n    test 48 S: gee5zzzzz\n    test 49 SW: gee5zzzzy\n    test 50 W: geehpbpbn\n    test 51 NW: geehpbpbq\n    test 52 N: geehpbpbr\n    test 53 NE: geek00002\n    test 54 E: geek00000\n    test 55 SE: gee7bpbpb\n    test 56 S: gee5zzzzz\n    test 57 SW: gee5zzzzy\n    test 58 W: geehpbpbn\n    test 59 NW: geehpbpbq\n\n    test 60 bounds: 52.20428467, 0.11810303, 52.20565796, 0.11947632\n    test 61 decode: 52.205, 0.1188\n    test 62 encode-decode: u120fxw\n    test 63 encode-decode: geek\n    test 64 encode-decode: fur\n    test 65 encode-decode: geehpbpbp\n    test 66 encode-decode: u4pruydqqvj8\n    test 67 encode-decode: bgr96qxvpd46\n    test 68 encode-decode: 0123456789\n    test 69 encode-decode: zzzzzz\n    test 70 Geohash: u4pruydq\n    test 71 N.E.S.W: True\n    test 72 E.S.W.N: True\n    test 73 S.W.N.E: True\n    test 74 W.N.E.S: True\n    test 75 N.E.S.S.W.W.N.N.E.S: True\n    test 76 Geohash: u4pruydqq\n    test 77 N.E.S.W: True\n    test 78 E.S.W.N: True\n    test 79 S.W.N.E: True\n    test 80 W.N.E.S: True\n    test 81 N.E.S.S.W.W.N.N.E.S: True\n    test 82 Geohash: u4pruydqqv\n    test 83 N.E.S.W: True\n    test 84 E.S.W.N: True\n    test 85 S.W.N.E: True\n    test 86 W.N.E.S: True\n    test 87 N.E.S.S.W.W.N.N.E.S: True\n    test 88 Geohash: u4pruydqqvj\n    test 89 N.E.S.W: True\n    test 90 E.S.W.N: True\n    test 91 S.W.N.E: True\n    test 92 W.N.E.S: True\n    test 93 N.E.S.S.W.W.N.N.E.S: True\n    test 94 Geohash: u4pruydqqvj8\n    test 95 N.E.S.W: True\n    test 96 E.S.W.N: True\n    test 97 S.W.N.E: True\n    test 98 W.N.E.S: True\n    test 99 N.E.S.S.W.W.N.N.E.S: True\n\n    test 100 encode: u120fxw\n    test 101 decode: ('52.205', '0.1188')\n    test 102 decode2: (52.205, 0.1188)\n    test 103 decode_error: 6.866455e-04, 6.866455e-04\n    test 104 decode_error2: 6.866455e-04, 6.866455e-04\n    test 105 distance_: 486.710\n    test 106 distance2: 3.374\n    test 107 distance3: 2.992\n    test 108 distance4: 2.798\n    test 109 distance5: 2.798\n    test 110 sizes: 153.0, 153.0\n    test 111 sizes3: 153.0, 153.0, 86.3\n\n    test 112 Geohash: u336xv\n    test 113 encode: u336xv\n    test 114 equal: True\n    test 115 sizes: 610.0, 1220.0\n    test 116 sizes3: 610.0, 1220.0, 486.7\n    test 117 encode: fur\n    test 118 decode: ('69.6', '-45.7')\n    test 119 decode: ('70.3', '-51')\n    test 120 decode: ('68', '-68')\n    test 121 decode_error2: (0.703125, 0.703125)\n    test 122 decode_error2: (2.8125, 5.625)\n    test 123 decode_error2: (22.5, 22.5)\n    test 124 encode: ezs42e44yx96\n    test 125 decode: ('42.60000003', '-5.59999997')\n    test 126 encode: ezs42\n    test 127 decode: ('42.605', '-5.603')\n    test 128 distance1: 503442.4\n    test 129 distance2: 303317.6\n    test 130 distance3: 185425.4\n    test 131 distance4: 179940.1\n    test 132 distance5: 179940.1\n\n    test 133 precision: 0  FAILED, KNOWN, expected 1\n    test 134 resolution: 360.0, 180.0\n    test 135 inferred: w\n    test 136 precision: 1\n    test 137 resolution: 45.0, 45.0\n    test 138 inferred: wp\n    test 139 precision: 2\n    test 140 resolution: 11.25, 5.625\n    test 141 inferred: wpy\n    test 142 precision: 3\n    test 143 resolution: 1.4062, 1.4062\n    test 144 inferred: wpy6\n    test 145 precision: 4\n    test 146 resolution: 0.35156, 0.17578\n    test 147 inferred: wpy6kc\n    test 148 precision: 5\n    test 149 resolution: 0.043945, 0.043945\n    test 150 inferred: wpy6kcc\n    test 151 precision: 6\n    test 152 resolution: 0.0109863, 0.0054932\n    test 153 inferred: wpy6kccw\n    test 154 precision: 7\n    test 155 resolution: 0.00137329, 0.00137329\n    test 156 inferred: wpy6kccwe4\n    test 157 precision: 8\n    test 158 resolution: 0.000343323, 0.000171661\n    test 159 inferred: wpy6kccwe4q\n    test 160 precision: 9\n    test 161 resolution: 0.0000429153, 0.0000429153\n    test 162 inferred: wpy6kccwe4qr\n    test 163 precision: 10\n    test 164 resolution: 0.00001072884, 0.00000536442\n    test 165 inferred: wpy6kccwe4qr\n    test 166 precision: 11\n    test 167 resolution: 0.000001341105, 0.000001341105\n    test 168 inferred: wpy6kccwe4qr\n    test 169 precision: 12\n    test 170 resolution: 0.0000003352761, 0.0000001676381\n    test 171 inferred: wpy6kccwe4qr\n    test 172 precision: 13  FAILED, KNOWN, expected 12\n    test 173 resolution: 0.00000033527613, 0.00000016763806\n    test 174 inferred: wpy6kccwe4qr\n\n    test 175 precision: 12\n    test 176 ndigits: None\n    test 177 encoded: tuvz4p141zc1\n    test 178 encoded: tuvz4p141zc1\n    test 179 encoded: True\n    test 180 encoded: tuvz4p141zc1\n    test 181 encoded: True\n    test 182 decoded: (27.988056, 86.925278)\n    test 183 decoded: (27.988056, 86.925278)\n    test 184 decoded: True\n    test 185 len: 1\n    test 186 len2: (1, 1)\n\n    test 187 precision: 12\n    test 188 ndigits: 12\n    test 189 encoded: tuvz4p141zc1\n    test 190 encoded: tuvz4p141zc1\n    test 191 encoded: True\n    test 192 encoded: tuvz4p141zc1\n    test 193 encoded: True\n    test 194 decoded: (27.988056, 86.925278)\n    test 195 decoded: (27.988056, 86.925278)\n    test 196 decoded: True\n    test 197 len: 1\n    test 198 len2: (1, 1)\n\n    7 of 198 testGeohash.py tests (3.5%) FAILED, incl. 2 KNOWN plus 5 DeprecationWarnings (pygeodesy 26.3.26 Python 3.12.10 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 2.1.0 scipy 1.14.1 Math 2 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 isLazy 3 -W  default) 13.585 ms\nrunning /usr/local/bin/p....n3.12 -W default ~/PyGeodesy/test/testGeoids.py\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.fstr from .streprs by testGeoids.py line 17\n# lazily imported pygeodesy.len2 from .basics by testGeoids.py line 17\n# lazily imported pygeodesy.egmGeoidHeights from .geoids by testGeoids.py line 17\n# lazily imported pygeodesy.Fwelford from .fstats by testGeoids.py line 17\n# lazily imported pygeodesy.GeoidEGM96 from .geoids by testGeoids.py line 17\n# lazily imported pygeodesy.GeoidError from .geoids by testGeoids.py line 17\n# lazily imported pygeodesy.GeoidG2012B from .geoids by testGeoids.py line 17\n# lazily imported pygeodesy.GeoidKarney from .geoids by testGeoids.py line 17\n# lazily imported pygeodesy.GeoidPGM from .geoids by testGeoids.py line 17\n# lazily imported pygeodesy.LatLon_ from .points by testGeoids.py line 17\n# lazily imported pygeodesy.RangeError from .errors by testGeoids.py line 17\n# lazily imported pygeodesy.reprs from .streprs by testGeoids.py line 17\n\n    testing testGeoids.py 26.01.21 isLazy=3\n    test 1 GeoidKarney('egm96-5.pgm').height(-76.981, 34.17) kind 2: 11.422  FAILED, KNOWN, expected 11.423\n    test 2 GeoidKarney('egm96-5.pgm').height(79.695, 88.806) kind 2: 0.887  FAILED, KNOWN, expected 0.892\n    test 3 GeoidKarney('egm96-5.pgm').height(-15.245, 168.748) kind 2: 65.226\n    test 4 GeoidKarney('egm96-5.pgm').height(-19.379, 15.855) kind 2: 24.460  FAILED, KNOWN, expected 24.463\n    test 5 GeoidKarney('egm96-5.pgm').height(43.378, -130.552) kind 2: -29.682\n    test 6 GeoidKarney('egm96-5.pgm').height(-16.075, 21.795) kind 2: 10.503\n    test 7 GeoidKarney('egm96-5.pgm').height(-11.256, -73.75) kind 2: 29.325  FAILED, KNOWN, expected 29.326\n    test 8 GeoidKarney('egm96-5.pgm').height(69.017, -15.921) kind 2: 60.423  FAILED, KNOWN, expected 60.424\n    test 9 GeoidKarney('egm96-5.pgm').height(2.221, 139.739) kind 2: 68.997  FAILED, KNOWN, expected 68.996\n    test 10 GeoidKarney('egm96-5.pgm').height(-9.097, 119.142) kind 2: 36.295  FAILED, KNOWN, expected 36.287\n    test 11 GeoidKarney('egm96-5.pgm').height(-28.524, -22.192) kind 2: 6.627  FAILED, KNOWN, expected 6.626\n    test 12 GeoidKarney('egm96-5.pgm').height(12.272, -136.424) kind 2: -20.860\n    test 13 GeoidKarney('egm96-5.pgm').height(-15.203, -85.604) kind 2: -3.266  FAILED, KNOWN, expected -3.267\n    test 14 GeoidKarney('egm96-5.pgm').height(-63.736, -77.17) kind 2: -1.296  FAILED, KNOWN, expected -1.294\n    test 15 GeoidKarney('egm96-5.pgm').height(-48.771, -90.102) kind 2: -2.322\n    test 16 GeoidKarney('egm96-5.pgm').height(-0.179, -126.368) kind 2: -17.556  FAILED, KNOWN, expected -17.557\n    test 17 GeoidKarney('egm96-5.pgm').height(1.586, -128.887) kind 2: -16.594\n    test 18 GeoidKarney('egm96-5.pgm').height(-48.781, -2.684) kind 2: 24.455  FAILED, KNOWN, expected 24.453\n    test 19 GeoidKarney('egm96-5.pgm').height(-49.092, 136.862) kind 2: -18.591  FAILED, KNOWN, expected -18.592\n    test 20 GeoidKarney('egm96-5.pgm').height(47.732, 17.552) kind 2: 44.051  FAILED, KNOWN, expected 44.049\n    test 21 GeoidKarney('egm96-5.pgm').height(-49.11, 85.706) kind 2: 18.582  FAILED, KNOWN, expected 18.581\n    test 22 GeoidKarney('egm96-5.pgm').height(-49.162, 40.321) kind 2: 44.290  FAILED, KNOWN, expected 44.289\n    test 23 GeoidKarney('egm96-5.pgm').height(3.498, 158.118) kind 2: 49.821  FAILED, KNOWN, expected 49.816\n    test 24 GeoidKarney('egm96-5.pgm').height(-35.616, 122.648) kind 2: -36.108  FAILED, KNOWN, expected -36.114\n    test 25 GeoidKarney('egm96-5.pgm').height(56.598, -96.114) kind 2: -41.046  FAILED, KNOWN, expected -41.048\n    test 26 GeoidKarney('egm96-5.pgm').height(-31.85, 149.121) kind 2: 26.457  FAILED, KNOWN, expected 26.456\n    test 27 GeoidKarney('egm96-5.pgm').height(-26.569, -177.792) kind 2: 49.309  FAILED, KNOWN, expected 49.317\n    test 28 GeoidKarney('egm96-5.pgm').height(76.735, -65.753) kind 2: 20.706  FAILED, KNOWN, expected 20.714\n    test 29 GeoidKarney('egm96-5.pgm').height(-21.404, -122.268) kind 2: -7.363  FAILED, KNOWN, expected -7.362\n    test 30 GeoidKarney('egm96-5.pgm').height(-77.133, -65.474) kind 2: -16.499  FAILED, KNOWN, expected -16.492\n    test 31 GeoidKarney('egm96-5.pgm').height(-58.812, 2.276) kind 2: 18.108  FAILED, KNOWN, expected 18.110\n    test 32 GeoidKarney('egm96-5.pgm').height(4.415, 155.683) kind 2: 51.859  FAILED, KNOWN, expected 51.858\n    test 33 GeoidKarney('egm96-5.pgm').height(-28.146, 107.081) kind 2: -38.979  FAILED, KNOWN, expected -38.981\n    test 34 GeoidKarney('egm96-5.pgm').height(-10.551, -126.69) kind 2: -9.912  FAILED, KNOWN, expected -9.913\n    test 35 GeoidKarney('egm96-5.pgm').height(-25.444, -103.337) kind 2: -2.827  FAILED, KNOWN, expected -2.828\n    test 36 GeoidKarney('egm96-5.pgm').height(24.436, 46.159) kind 2: -5.719\n    test 37 GeoidKarney('egm96-5.pgm').height(-72.889, 37.107) kind 2: 22.420  FAILED, KNOWN, expected 22.426\n    test 38 GeoidKarney('egm96-5.pgm').height(-19.629, 13.245) kind 2: 24.546  FAILED, KNOWN, expected 24.545\n    test 39 GeoidKarney('egm96-5.pgm').height(-7.602, 171.265) kind 2: 40.651  FAILED, KNOWN, expected 40.652\n    test 40 GeoidKarney('egm96-5.pgm').height(-45.364, -1.876) kind 2: 22.380  FAILED, KNOWN, expected 22.383\n    test 41 GeoidKarney('egm96-5.pgm').height(-7.292, -69.18) kind 2: 22.185  FAILED, KNOWN, expected 22.182\n    test 42 GeoidKarney('egm96-5.pgm').height(-31.566, -166.689) kind 2: 14.927  FAILED, KNOWN, expected 14.930\n    test 43 GeoidKarney('egm96-5.pgm').height(-82.751, -162.085) kind 2: -47.093  FAILED, KNOWN, expected -47.094\n    test 44 GeoidKarney('egm96-5.pgm').height(-40.7, 99.466) kind 2: -18.421\n    test 45 GeoidKarney('egm96-5.pgm').height(48.676, 39.69) kind 2: 10.060  FAILED, KNOWN, expected 10.055\n    test 46 GeoidKarney('egm96-5.pgm').height(74.817, -78.404) kind 2: 5.784  FAILED, KNOWN, expected 5.786\n    test 47 GeoidKarney('egm96-5.pgm').height(-81.032, -63.865) kind 2: -22.840  FAILED, KNOWN, expected -22.838\n    test 48 GeoidKarney('egm96-5.pgm').height(74.022, 9.432) kind 2: 42.988  FAILED, KNOWN, expected 42.989\n    test 49 GeoidKarney('egm96-5.pgm').height(-75.071, 17.579) kind 2: 15.351  FAILED, KNOWN, expected 15.353\n    test 50 GeoidKarney('egm96-5.pgm').height(-12.546, -54.851) kind 2: -6.341  FAILED, KNOWN, expected -6.337\n    test 51 GeoidKarney('egm96-5.pgm').height(-13.621, 42.408) kind 2: -25.551  FAILED, KNOWN, expected -25.555\n    test 52 GeoidKarney('egm96-5.pgm').height(-2.266, -91.951) kind 2: -9.921  FAILED, KNOWN, expected -9.923\n    test 53 GeoidKarney('egm96-5.pgm').height(-18.672, 42.547) kind 2: -10.861  FAILED, KNOWN, expected -10.852\n    test 54 GeoidKarney('egm96-5.pgm').height(-41.44, 157.413) kind 2: -0.136  FAILED, KNOWN, expected -0.135\n    test 55 GeoidKarney('egm96-5.pgm').height(53.686, -79.375) kind 2: -43.808  FAILED, KNOWN, expected -43.809\n    test 56 GeoidKarney('egm96-5.pgm').height(39.26, -30.351) kind 2: 57.151  FAILED, KNOWN, expected 57.150\n    test 57 GeoidKarney('egm96-5.pgm').height(-51.699, -141.493) kind 2: -17.660  FAILED, KNOWN, expected -17.657\n    test 58 GeoidKarney('egm96-5.pgm').height(36.585, 4.515) kind 2: 46.356  FAILED, KNOWN, expected 46.358\n    test 59 GeoidKarney('egm96-5.pgm').height(39.642, -54.659) kind 2: -14.404\n    test 60 GeoidKarney('egm96-5.pgm').height(59.761, 166.567) kind 2: 11.239  FAILED, KNOWN, expected 11.242\n    test 61 GeoidKarney('egm96-5.pgm').height(51.83, 13.357) kind 2: 42.236  FAILED, KNOWN, expected 42.237\n    test 62 GeoidKarney('egm96-5.pgm').height(-36.531, -175.431) kind 2: 22.148  FAILED, KNOWN, expected 22.147\n    test 63 GeoidKarney('egm96-5.pgm').height(-37.08, 125.264) kind 2: -33.395  FAILED, KNOWN, expected -33.396\n    test 64 GeoidKarney('egm96-5.pgm').height(-68.651, 92.732) kind 2: 7.965  FAILED, KNOWN, expected 7.961\n    test 65 GeoidKarney('egm96-5.pgm').height(35.087, 45.336) kind 2: 7.228  FAILED, KNOWN, expected 7.229\n    test 66 GeoidKarney('egm96-5.pgm').height(-61.356, -169.379) kind 2: -44.289  FAILED, KNOWN, expected -44.292\n    test 67 GeoidKarney('egm96-5.pgm').height(-36.955, 179.12) kind 2: 21.872  FAILED, KNOWN, expected 21.875\n    test 68 GeoidKarney('egm96-5.pgm').height(10.248, -6.714) kind 2: 28.935  FAILED, KNOWN, expected 28.933\n    test 69 GeoidKarney('egm96-5.pgm').height(36.868, 84.602) kind 2: -41.255  FAILED, KNOWN, expected -41.238\n    test 70 GeoidKarney('egm96-5.pgm').height(28.637, 88.933) kind 2: -31.334  FAILED, KNOWN, expected -31.331\n    test 71 GeoidKarney('egm96-5.pgm').height(54.811, -99.968) kind 2: -32.702\n    test 72 GeoidKarney('egm96-5.pgm').height(7.611, 145.911) kind 2: 60.118  FAILED, KNOWN, expected 60.117\n    test 73 GeoidKarney('egm96-5.pgm').height(59.412, 170.102) kind 2: 6.456  FAILED, KNOWN, expected 6.457\n    test 74 GeoidKarney('egm96-5.pgm').height(-61.469, 126.144) kind 2: -31.959  FAILED, KNOWN, expected -31.961\n    test 75 GeoidKarney('egm96-5.pgm').height(18.514, -137.083) kind 2: -26.572  FAILED, KNOWN, expected -26.571\n    test 76 GeoidKarney('egm96-5.pgm').height(7.854, -126.799) kind 2: -29.761  FAILED, KNOWN, expected -29.760\n    test 77 GeoidKarney('egm96-5.pgm').height(47.489, 134.183) kind 2: 21.980\n    test 78 GeoidKarney('egm96-5.pgm').height(-34.144, -11.922) kind 2: 16.849\n    test 79 GeoidKarney('egm96-5.pgm').height(-58.389, 117.458) kind 2: -20.922  FAILED, KNOWN, expected -20.923\n    test 80 GeoidKarney('egm96-5.pgm').height(9.773, 95.846) kind 2: -42.745  FAILED, KNOWN, expected -42.749\n    test 81 GeoidKarney('egm96-5.pgm').height(-53.12, 136.994) kind 2: -21.839  FAILED, KNOWN, expected -21.841\n    test 82 GeoidKarney('egm96-5.pgm').height(-50.35, 0.075) kind 2: 25.482\n    test 83 GeoidKarney('egm96-5.pgm').height(31.438, -170.879) kind 2: -8.845  FAILED, KNOWN, expected -8.847\n    test 84 GeoidKarney('egm96-5.pgm').height(37.541, -153.024) kind 2: -19.600  FAILED, KNOWN, expected -19.604\n    test 85 GeoidKarney('egm96-5.pgm').height(27.586, 2.444) kind 2: 25.672  FAILED, KNOWN, expected 25.668\n    test 86 GeoidKarney('egm96-5.pgm').height(-26.139, -106.201) kind 2: -3.772\n    test 87 GeoidKarney('egm96-5.pgm').height(-33.426, -14.84) kind 2: 17.747  FAILED, KNOWN, expected 17.748\n    test 88 GeoidKarney('egm96-5.pgm').height(39.586, -153.019) kind 2: -17.838  FAILED, KNOWN, expected -17.839\n    test 89 GeoidKarney('egm96-5.pgm').height(-60.79, -2.578) kind 2: 14.293  FAILED, KNOWN, expected 14.292\n    test 90 GeoidKarney('egm96-5.pgm').height(-20.131, 21.975) kind 2: 16.529\n    test 91 GeoidKarney('egm96-5.pgm').height(75.649, 99.921) kind 2: -8.230  FAILED, KNOWN, expected -8.229\n    test 92 GeoidKarney('egm96-5.pgm').height(-0.385, -23.788) kind 2: 9.828  FAILED, KNOWN, expected 9.830\n    test 93 GeoidKarney('egm96-5.pgm').height(-51.56, -50.327) kind 2: 6.213  FAILED, KNOWN, expected 6.215\n    test 94 GeoidKarney('egm96-5.pgm').height(-43.129, -167.271) kind 2: -2.957  FAILED, KNOWN, expected -2.960\n    test 95 GeoidKarney('egm96-5.pgm').height(46.374, 71.948) kind 2: -42.326  FAILED, KNOWN, expected -42.323\n    test 96 GeoidKarney('egm96-5.pgm').height(-22.783, 140.657) kind 2: 38.352  FAILED, KNOWN, expected 38.356\n    test 97 GeoidKarney('egm96-5.pgm').height(-12.056, 122.804) kind 2: 34.242  FAILED, KNOWN, expected 34.259\n    test 98 GeoidKarney('egm96-5.pgm').height(30.127, 94.738) kind 2: -37.390  FAILED, KNOWN, expected -37.397\n    test 99 GeoidKarney('egm96-5.pgm').height(46.296, -174.479) kind 2: -2.015  FAILED, KNOWN, expected -2.016\n    test 100 GeoidKarney('egm96-5.pgm').height(34.99, 15.052) kind 2: 33.915  FAILED, KNOWN, expected 33.912\n    test 101 GeoidKarney('egm96-5.pgm').height(-51.287, 90.565) kind 2: 12.676\n    test 102 GeoidKarney('egm96-5.pgm').height(34.217, 141.302) kind 2: 15.729  FAILED, KNOWN, expected 15.692\n    test 103 GeoidKarney('egm96-5.pgm').height(-40.423, -142.787) kind 2: -11.117\n    test 104 GeoidKarney('egm96-5.pgm').height(-17.854, -170.216) kind 2: 27.443  FAILED, KNOWN, expected 27.437\n    test 105 GeoidKarney('egm96-5.pgm').height(47.803, 112.701) kind 2: -23.893  FAILED, KNOWN, expected -23.894\n    test 106 GeoidKarney('egm96-5.pgm').height(-23.276, 133.454) kind 2: 18.749  FAILED, KNOWN, expected 18.766\n    test 107 GeoidKarney('egm96-5.pgm').height(-26.884, -36.571) kind 2: -7.452\n    test 108 GeoidKarney('egm96-5.pgm').height(-37.106, 31.128) kind 2: 30.141  FAILED, KNOWN, expected 30.143\n    test 109 GeoidKarney('egm96-5.pgm').height(-75.363, -173.674) kind 2: -61.176  FAILED, KNOWN, expected -61.172\n    test 110 GeoidKarney('egm96-5.pgm').height(-18.305, 69.016) kind 2: -24.892  FAILED, KNOWN, expected -24.890\n    test 111 GeoidKarney('egm96-5.pgm').height(39.527, 23.58) kind 2: 39.523  FAILED, KNOWN, expected 39.519\n    test 112 GeoidKarney('egm96-5.pgm').height(68.903, 30.97) kind 2: 19.417  FAILED, KNOWN, expected 19.419\n    test 113 GeoidKarney('egm96-5.pgm').height(53.937, 168.318) kind 2: 2.069\n    test 114 GeoidKarney('egm96-5.pgm').height(-38.6, 64.812) kind 2: 25.048\n    test 115 GeoidKarney('egm96-5.pgm').height(-41.396, -69.739) kind 2: 22.547\n    test 116 GeoidKarney('egm96-5.pgm').height(50.158, 72.319) kind 2: -34.359\n    test 117 GeoidKarney('egm96-5.pgm').height(27.692, 176.153) kind 2: -5.454  FAILED, KNOWN, expected -5.453\n    test 118 GeoidKarney('egm96-5.pgm').height(-48.419, 170.454) kind 2: -6.802  FAILED, KNOWN, expected -6.804\n    test 119 GeoidKarney('egm96-5.pgm').height(-65.346, -124.976) kind 2: -35.053  FAILED, KNOWN, expected -35.054\n    test 120 GeoidKarney('egm96-5.pgm').height(-51.873, 167.266) kind 2: -15.417  FAILED, KNOWN, expected -15.418\n    test 121 GeoidKarney('egm96-5.pgm').height(-7.263, 84.308) kind 2: -79.556  FAILED, KNOWN, expected -79.557\n    test 122 GeoidKarney('egm96-5.pgm').height(-1.461, -105.458) kind 2: -16.894\n    test 123 GeoidKarney('egm96-5.pgm').height(7.684, 161.873) kind 2: 36.213  FAILED, KNOWN, expected 36.215\n    test 124 GeoidKarney('egm96-5.pgm').height(-31.475, -158.52) kind 2: 3.524  FAILED, KNOWN, expected 3.523\n    test 125 GeoidKarney('egm96-5.pgm').height(-36.187, 62.917) kind 2: 23.796  FAILED, KNOWN, expected 23.797\n    test 126 GeoidKarney('egm96-5.pgm').height(16.003, 141.687) kind 2: 51.587  FAILED, KNOWN, expected 51.586\n    test 127 GeoidKarney('egm96-5.pgm').height(30.182, 86.261) kind 2: -30.131\n    test 128 GeoidKarney('egm96-5.pgm').height(-77.304, 159.498) kind 2: -51.853  FAILED, KNOWN, expected -51.848\n    test 129 GeoidKarney('egm96-5.pgm').height(39.536, 139.795) kind 2: 37.200  FAILED, KNOWN, expected 37.192\n    test 130 GeoidKarney('egm96-5.pgm').height(8.569, 134.618) kind 2: 63.583  FAILED, KNOWN, expected 63.597\n    test 131 GeoidKarney('egm96-5.pgm').height(14.473, 90.596) kind 2: -62.636\n    test 132 GeoidKarney('egm96-5.pgm').height(-13.138, -99.589) kind 2: -8.717\n    test 133 GeoidKarney('egm96-5.pgm').height(34.212, -26.307) kind 2: 40.649  FAILED, KNOWN, expected 40.645\n    test 134 GeoidKarney('egm96-5.pgm').height(21.89, 76.371) kind 2: -60.730  FAILED, KNOWN, expected -60.729\n    test 135 GeoidKarney('egm96-5.pgm').height(29.793, 120.487) kind 2: 8.784  FAILED, KNOWN, expected 8.783\n    test 136 GeoidKarney('egm96-5.pgm').height(15.724, 122.714) kind 2: 31.569  FAILED, KNOWN, expected 31.523\n    test 137 GeoidKarney('egm96-5.pgm').height(-66.208, -78.499) kind 2: -6.249  FAILED, KNOWN, expected -6.250\n    test 138 GeoidKarney('egm96-5.pgm').height(-39.507, 55.809) kind 2: 32.599\n    test 139 GeoidKarney('egm96-5.pgm').height(28.159, 51.476) kind 2: -24.531  FAILED, KNOWN, expected -24.536\n    test 140 GeoidKarney('egm96-5.pgm').height(-36.207, 120.205) kind 2: -38.863  FAILED, KNOWN, expected -38.869\n    test 141 GeoidKarney('egm96-5.pgm').height(30.575, -99.998) kind 2: -23.214  FAILED, KNOWN, expected -23.213\n    test 142 GeoidKarney('egm96-5.pgm').height(-16.993, 37.136) kind 2: -11.824\n    test 143 GeoidKarney('egm96-5.pgm').height(-11.477, 12.039) kind 2: 16.712  FAILED, KNOWN, expected 16.709\n    test 144 GeoidKarney('egm96-5.pgm').height(30.428, -144.765) kind 2: -22.380  FAILED, KNOWN, expected -22.379\n    test 145 GeoidKarney('egm96-5.pgm').height(-17.44, -92.424) kind 2: -4.941\n    test 146 GeoidKarney('egm96-5.pgm').height(40.203, 143.43) kind 2: 19.382  FAILED, KNOWN, expected 19.394\n    test 147 GeoidKarney('egm96-5.pgm').height(-37.098, -106.574) kind 2: -9.381\n    test 148 GeoidKarney('egm96-5.pgm').height(54.62, -68.413) kind 2: -23.319\n    test 149 GeoidKarney('egm96-5.pgm').height(-31.633, 148.182) kind 2: 24.470  FAILED, KNOWN, expected 24.468\n    test 150 GeoidKarney('egm96-5.pgm').height(-56.07, -141.407) kind 2: -21.762  FAILED, KNOWN, expected -21.761\n    test 151 GeoidKarney('egm96-5.pgm').height(-8.195, -52.691) kind 2: -18.798\n    test 152 GeoidKarney('egm96-5.pgm').height(17.851, 24.749) kind 2: 12.611  FAILED, KNOWN, expected 12.612\n    test 153 GeoidKarney('egm96-5.pgm').height(0.349, -108.333) kind 2: -19.708  FAILED, KNOWN, expected -19.706\n    test 154 GeoidKarney('egm96-5.pgm').height(15.038, 126.191) kind 2: 45.794  FAILED, KNOWN, expected 45.792\n    test 155 GeoidKarney('egm96-5.pgm').height(-21.111, -123.696) kind 2: -8.408  FAILED, KNOWN, expected -8.406\n    test 156 GeoidKarney('egm96-5.pgm').height(30.947, 173.002) kind 2: -8.366  FAILED, KNOWN, expected -8.367\n    test 157 GeoidKarney('egm96-5.pgm').height(-10.698, -144.091) kind 2: -2.026  FAILED, KNOWN, expected -2.025\n    test 158 GeoidKarney('egm96-5.pgm').height(-29.412, 124.753) kind 2: -16.569\n    test 159 GeoidKarney('egm96-5.pgm').height(38.224, -137.189) kind 2: -35.434  FAILED, KNOWN, expected -35.435\n    test 160 GeoidKarney('egm96-5.pgm').height(36.064, -132.409) kind 2: -39.009\n    test 161 GeoidKarney('egm96-5.pgm').height(29.975, 178.076) kind 2: -6.921\n    test 162 GeoidKarney('egm96-5.pgm').height(-21.346, 169.26) kind 2: 50.811  FAILED, KNOWN, expected 50.795\n    test 163 GeoidKarney('egm96-5.pgm').height(49.282, -152.934) kind 2: 1.069  FAILED, KNOWN, expected 1.070\n    test 164 GeoidKarney('egm96-5.pgm').height(16.349, -99.962) kind 2: -14.198  FAILED, KNOWN, expected -14.214\n    test 165 GeoidKarney('egm96-5.pgm').height(-14.293, -167.34) kind 2: 17.603  FAILED, KNOWN, expected 17.600\n    test 166 GeoidKarney('egm96-5.pgm').height(47.166, -38.523) kind 2: 44.803  FAILED, KNOWN, expected 44.804\n    test 167 GeoidKarney('egm96-5.pgm').height(-58.911, 114.347) kind 2: -17.924  FAILED, KNOWN, expected -17.922\n    test 168 GeoidKarney('egm96-5.pgm').height(-9.055, 111.294) kind 2: 10.681  FAILED, KNOWN, expected 10.662\n    test 169 GeoidKarney('egm96-5.pgm').height(18.391, 29.692) kind 2: 7.672  FAILED, KNOWN, expected 7.670\n    test 170 GeoidKarney('egm96-5.pgm').height(-15.074, 22.153) kind 2: 8.622  FAILED, KNOWN, expected 8.623\n    test 171 GeoidKarney('egm96-5.pgm').height(-4.235, 62.001) kind 2: -60.723\n    test 172 GeoidKarney('egm96-5.pgm').height(15.171, -86.583) kind 2: 3.818\n    test 173 GeoidKarney('egm96-5.pgm').height(79.254, 112.116) kind 2: -1.870  FAILED, KNOWN, expected -1.871\n    test 174 GeoidKarney('egm96-5.pgm').height(15.947, 156.093) kind 2: 30.642  FAILED, KNOWN, expected 30.633\n    test 175 GeoidKarney('egm96-5.pgm').height(68.371, -177.382) kind 2: 2.801\n    test 176 GeoidKarney('egm96-5.pgm').height(-41.931, -72.093) kind 2: 19.858  FAILED, KNOWN, expected 19.859\n    test 177 GeoidKarney('egm96-5.pgm').height(-1.193, -143.133) kind 2: 5.347  FAILED, KNOWN, expected 5.348\n    test 178 GeoidKarney('egm96-5.pgm').height(-37.006, 154.513) kind 2: 9.940  FAILED, KNOWN, expected 9.941\n    test 179 GeoidKarney('egm96-5.pgm').height(-22.148, 9.938) kind 2: 22.322  FAILED, KNOWN, expected 22.321\n    test 180 GeoidKarney('egm96-5.pgm').height(24.329, 109.044) kind 2: -24.136  FAILED, KNOWN, expected -24.135\n    test 181 GeoidKarney('egm96-5.pgm').height(-54.878, 114.691) kind 2: -17.680  FAILED, KNOWN, expected -17.679\n    test 182 GeoidKarney('egm96-5.pgm').height(45.601, -80.458) kind 2: -37.149  FAILED, KNOWN, expected -37.150\n    test 183 GeoidKarney('egm96-5.pgm').height(2.372, 58.974) kind 2: -61.158\n    test 184 GeoidKarney('egm96-5.pgm').height(15.937, 165.854) kind 2: 20.600  FAILED, KNOWN, expected 20.602\n    test 185 GeoidKarney('egm96-5.pgm').height(4.889, -24.213) kind 2: 13.054  FAILED, KNOWN, expected 13.055\n    test 186 GeoidKarney('egm96-5.pgm').height(-11.392, 179.558) kind 2: 40.138  FAILED, KNOWN, expected 40.132\n    test 187 GeoidKarney('egm96-5.pgm').height(58.246, 4.862) kind 2: 43.263\n    test 188 GeoidKarney('egm96-5.pgm').height(34.302, -109.109) kind 2: -23.129  FAILED, KNOWN, expected -23.126\n    test 189 GeoidKarney('egm96-5.pgm').height(-58.196, 117.306) kind 2: -20.677  FAILED, KNOWN, expected -20.678\n    test 190 GeoidKarney('egm96-5.pgm').height(44.5, 173.769) kind 2: -8.531  FAILED, KNOWN, expected -8.529\n    test 191 GeoidKarney('egm96-5.pgm').height(-28.863, -139.775) kind 2: -8.669  FAILED, KNOWN, expected -8.666\n    test 192 GeoidKarney('egm96-5.pgm').height(19.507, -96.099) kind 2: -12.798  FAILED, KNOWN, expected -12.796\n    test 193 GeoidKarney('egm96-5.pgm').height(-42.488, -73.907) kind 2: 15.770  FAILED, KNOWN, expected 15.773\n    test 194 GeoidKarney('egm96-5.pgm').height(46.138, -141.429) kind 2: -19.955  FAILED, KNOWN, expected -19.954\n    test 195 GeoidKarney('egm96-5.pgm').height(60.507, 93.743) kind 2: -31.479  FAILED, KNOWN, expected -31.480\n    test 196 GeoidKarney('egm96-5.pgm').height(26.219, -145.434) kind 2: -17.428  FAILED, KNOWN, expected -17.429\n    test 197 GeoidKarney('egm96-5.pgm').height(-28.687, 3.37) kind 2: 24.037\n    test 198 GeoidKarney('egm96-5.pgm').height(-15.008, 117.45) kind 2: 4.522  FAILED, KNOWN, expected 4.520\n    test 199 GeoidKarney('egm96-5.pgm').height(40.71, 144.095) kind 2: 11.403  FAILED, KNOWN, expected 11.394\n    test 200 GeoidKarney('egm96-5.pgm').height(20.823, -173.611) kind 2: 5.676  FAILED, KNOWN, expected 5.679\n    test 201 GeoidKarney('egm96-5.pgm').height(16.776, -3.009) kind 2: 28.705  FAILED, KNOWN, expected 28.707\n    test 202 GeoidKarney('egm96-5.pgm').height(41.0, -95.0) kind 2: -30.261  FAILED, KNOWN, expected -30.262\n    test 203 GeoidKarney('egm96-5.pgm').height(49.0, -120.5) kind 2: -15.984\n    test 204 GeoidKarney('egm96-5.pgm').height(49.0, -103.5) kind 2: -18.636  FAILED, KNOWN, expected -18.635\n    test 205 GeoidKarney('egm96-5.pgm').height(49.0, -86.5) kind 2: -37.749\n    test 206 GeoidKarney('egm96-5.pgm').height(49.0, -69.5) kind 2: -26.691\n    test 207 GeoidKarney('egm96-5.pgm').height(33.0, -120.5) kind 2: -39.561\n    test 208 GeoidKarney('egm96-5.pgm').height(33.0, -103.5) kind 2: -22.563  FAILED, KNOWN, expected -22.562\n    test 209 GeoidKarney('egm96-5.pgm').height(33.0, -86.5) kind 2: -30.012\n    test 210 GeoidKarney('egm96-5.pgm').height(33.0, -69.5) kind 2: -48.039\n\n    test 211 GeoidKarney('egm96-5.pgm').height() kind 2, hits 0, eps max (in 0 FAILED): 0.046496\n    test 212 GeoidKarney('egm96-5.pgm').height() kind 2, hits 0, eps mean (of 210 total): 0.002766\n    test 213 GeoidKarney('egm96-5.pgm').height() kind 2, hits 0, eps stdev (of 210 total): 0.005116\n    test 214 GeoidKarney('egm96-5.pgm').highest(): -8.167, 147.25, 85.422\n    test 215 GeoidKarney('egm96-5.pgm').lowerleft(): -90.0, -180.0, -29.535\n    test 216 GeoidKarney('egm96-5.pgm').lowerright(): -90.0, 180.0, -29.535\n    test 217 GeoidKarney('egm96-5.pgm').lowest(): 4.667, 78.833, -107.043\n    test 218 GeoidKarney('egm96-5.pgm').upperleft(): 90.0, -180.0, 13.605\n    test 219 GeoidKarney('egm96-5.pgm').upperright(): 90.0, 180.0, 13.605\n    test 220 GeoidKarney('egm96-5.pgm').dtype: (\"'ushort'\",)\n    test 221 GeoidKarney('egm96-5.pgm').knots: ('9335520',)\n    test 222 GeoidKarney('egm96-5.pgm').mean: ('-1.317',)\n    test 223 GeoidKarney('egm96-5.pgm').nBytes: ('None',)\n    test 224 GeoidKarney('egm96-5.pgm').smooth: ('None',)\n    test 225 GeoidKarney('egm96-5.pgm').stdev: ('29.244',)\n    test 226 GeoidKarney('egm96-5.pgm')._g2ll2(180, 360): (180, 0.0)\n    test 227 GeoidKarney('egm96-5.pgm')._ll2g2(180, 360): (180, 360)\n    test 228 GeoidKarney('egm96-5.pgm')._swne: (-10.0, -100.0, 10.0, 100.0)\n    test 229 GeoidKarney('egm96-5.pgm')._swne: (-10.0, -100.0, 10.0, 100.0)\n    test 230 GeoidKarney('egm96-5.pgm').toStr: GeoidKarney('egm96-5.pgm'): lowerleft(-90.0, -180.0, -29.535), upperright(90.0, 180.0, 13.605), center(0.0, 0.0, 17.163), highest(-8.167, 147.25, 85.422), lowest(4.667, 78.833, -107.043)\n\n    test 231 closed: True\n    test 232 copy(<class 'type'>): (<class 'pygeodesy.geoids.GeoidKarney'>, True)\n    test 233 GeoidKarney.copy(): (<class 'pygeodesy.geoids.GeoidKarney'>, True)\n    test 234 GeoidKarney('egm96-5.pgm').height(-76.981, 34.17) kind 3: 11.424  FAILED, KNOWN, expected 11.423\n    test 235 GeoidKarney('egm96-5.pgm').height(79.695, 88.806) kind 3: 0.892\n    test 236 GeoidKarney('egm96-5.pgm').height(-15.245, 168.748) kind 3: 65.225  FAILED, KNOWN, expected 65.226\n    test 237 GeoidKarney('egm96-5.pgm').height(-19.379, 15.855) kind 3: 24.464  FAILED, KNOWN, expected 24.463\n    test 238 GeoidKarney('egm96-5.pgm').height(43.378, -130.552) kind 3: -29.682\n    test 239 GeoidKarney('egm96-5.pgm').height(-16.075, 21.795) kind 3: 10.503\n    test 240 GeoidKarney('egm96-5.pgm').height(-11.256, -73.75) kind 3: 29.325  FAILED, KNOWN, expected 29.326\n    test 241 GeoidKarney('egm96-5.pgm').height(69.017, -15.921) kind 3: 60.423  FAILED, KNOWN, expected 60.424\n    test 242 GeoidKarney('egm96-5.pgm').height(2.221, 139.739) kind 3: 68.996\n    test 243 GeoidKarney('egm96-5.pgm').height(-9.097, 119.142) kind 3: 36.287\n    test 244 GeoidKarney('egm96-5.pgm').height(-28.524, -22.192) kind 3: 6.626\n    test 245 GeoidKarney('egm96-5.pgm').height(12.272, -136.424) kind 3: -20.861  FAILED, KNOWN, expected -20.860\n    test 246 GeoidKarney('egm96-5.pgm').height(-15.203, -85.604) kind 3: -3.267\n    test 247 GeoidKarney('egm96-5.pgm').height(-63.736, -77.17) kind 3: -1.295  FAILED, KNOWN, expected -1.294\n    test 248 GeoidKarney('egm96-5.pgm').height(-48.771, -90.102) kind 3: -2.323  FAILED, KNOWN, expected -2.322\n    test 249 GeoidKarney('egm96-5.pgm').height(-0.179, -126.368) kind 3: -17.555  FAILED, KNOWN, expected -17.557\n    test 250 GeoidKarney('egm96-5.pgm').height(1.586, -128.887) kind 3: -16.594\n    test 251 GeoidKarney('egm96-5.pgm').height(-48.781, -2.684) kind 3: 24.454  FAILED, KNOWN, expected 24.453\n    test 252 GeoidKarney('egm96-5.pgm').height(-49.092, 136.862) kind 3: -18.592\n    test 253 GeoidKarney('egm96-5.pgm').height(47.732, 17.552) kind 3: 44.048  FAILED, KNOWN, expected 44.049\n    test 254 GeoidKarney('egm96-5.pgm').height(-49.11, 85.706) kind 3: 18.582  FAILED, KNOWN, expected 18.581\n    test 255 GeoidKarney('egm96-5.pgm').height(-49.162, 40.321) kind 3: 44.290  FAILED, KNOWN, expected 44.289\n    test 256 GeoidKarney('egm96-5.pgm').height(3.498, 158.118) kind 3: 49.817  FAILED, KNOWN, expected 49.816\n    test 257 GeoidKarney('egm96-5.pgm').height(-35.616, 122.648) kind 3: -36.114\n    test 258 GeoidKarney('egm96-5.pgm').height(56.598, -96.114) kind 3: -41.047  FAILED, KNOWN, expected -41.048\n    test 259 GeoidKarney('egm96-5.pgm').height(-31.85, 149.121) kind 3: 26.456\n    test 260 GeoidKarney('egm96-5.pgm').height(-26.569, -177.792) kind 3: 49.317\n    test 261 GeoidKarney('egm96-5.pgm').height(76.735, -65.753) kind 3: 20.714\n    test 262 GeoidKarney('egm96-5.pgm').height(-21.404, -122.268) kind 3: -7.362\n    test 263 GeoidKarney('egm96-5.pgm').height(-77.133, -65.474) kind 3: -16.491  FAILED, KNOWN, expected -16.492\n    test 264 GeoidKarney('egm96-5.pgm').height(-58.812, 2.276) kind 3: 18.110\n    test 265 GeoidKarney('egm96-5.pgm').height(4.415, 155.683) kind 3: 51.858\n    test 266 GeoidKarney('egm96-5.pgm').height(-28.146, 107.081) kind 3: -38.979  FAILED, KNOWN, expected -38.981\n    test 267 GeoidKarney('egm96-5.pgm').height(-10.551, -126.69) kind 3: -9.913\n    test 268 GeoidKarney('egm96-5.pgm').height(-25.444, -103.337) kind 3: -2.828\n    test 269 GeoidKarney('egm96-5.pgm').height(24.436, 46.159) kind 3: -5.718  FAILED, KNOWN, expected -5.719\n    test 270 GeoidKarney('egm96-5.pgm').height(-72.889, 37.107) kind 3: 22.427  FAILED, KNOWN, expected 22.426\n    test 271 GeoidKarney('egm96-5.pgm').height(-19.629, 13.245) kind 3: 24.545\n    test 272 GeoidKarney('egm96-5.pgm').height(-7.602, 171.265) kind 3: 40.651  FAILED, KNOWN, expected 40.652\n    test 273 GeoidKarney('egm96-5.pgm').height(-45.364, -1.876) kind 3: 22.383\n    test 274 GeoidKarney('egm96-5.pgm').height(-7.292, -69.18) kind 3: 22.183  FAILED, KNOWN, expected 22.182\n    test 275 GeoidKarney('egm96-5.pgm').height(-31.566, -166.689) kind 3: 14.929  FAILED, KNOWN, expected 14.930\n    test 276 GeoidKarney('egm96-5.pgm').height(-82.751, -162.085) kind 3: -47.094\n    test 277 GeoidKarney('egm96-5.pgm').height(-40.7, 99.466) kind 3: -18.421\n    test 278 GeoidKarney('egm96-5.pgm').height(48.676, 39.69) kind 3: 10.055\n    test 279 GeoidKarney('egm96-5.pgm').height(74.817, -78.404) kind 3: 5.786\n    test 280 GeoidKarney('egm96-5.pgm').height(-81.032, -63.865) kind 3: -22.838\n    test 281 GeoidKarney('egm96-5.pgm').height(74.022, 9.432) kind 3: 42.989\n    test 282 GeoidKarney('egm96-5.pgm').height(-75.071, 17.579) kind 3: 15.352  FAILED, KNOWN, expected 15.353\n    test 283 GeoidKarney('egm96-5.pgm').height(-12.546, -54.851) kind 3: -6.338  FAILED, KNOWN, expected -6.337\n    test 284 GeoidKarney('egm96-5.pgm').height(-13.621, 42.408) kind 3: -25.554  FAILED, KNOWN, expected -25.555\n    test 285 GeoidKarney('egm96-5.pgm').height(-2.266, -91.951) kind 3: -9.922  FAILED, KNOWN, expected -9.923\n    test 286 GeoidKarney('egm96-5.pgm').height(-18.672, 42.547) kind 3: -10.853  FAILED, KNOWN, expected -10.852\n    test 287 GeoidKarney('egm96-5.pgm').height(-41.44, 157.413) kind 3: -0.135\n    test 288 GeoidKarney('egm96-5.pgm').height(53.686, -79.375) kind 3: -43.809\n    test 289 GeoidKarney('egm96-5.pgm').height(39.26, -30.351) kind 3: 57.150\n    test 290 GeoidKarney('egm96-5.pgm').height(-51.699, -141.493) kind 3: -17.656  FAILED, KNOWN, expected -17.657\n    test 291 GeoidKarney('egm96-5.pgm').height(36.585, 4.515) kind 3: 46.359  FAILED, KNOWN, expected 46.358\n    test 292 GeoidKarney('egm96-5.pgm').height(39.642, -54.659) kind 3: -14.404\n    test 293 GeoidKarney('egm96-5.pgm').height(59.761, 166.567) kind 3: 11.242\n    test 294 GeoidKarney('egm96-5.pgm').height(51.83, 13.357) kind 3: 42.237\n    test 295 GeoidKarney('egm96-5.pgm').height(-36.531, -175.431) kind 3: 22.147\n    test 296 GeoidKarney('egm96-5.pgm').height(-37.08, 125.264) kind 3: -33.396\n    test 297 GeoidKarney('egm96-5.pgm').height(-68.651, 92.732) kind 3: 7.961\n    test 298 GeoidKarney('egm96-5.pgm').height(35.087, 45.336) kind 3: 7.228  FAILED, KNOWN, expected 7.229\n    test 299 GeoidKarney('egm96-5.pgm').height(-61.356, -169.379) kind 3: -44.290  FAILED, KNOWN, expected -44.292\n    test 300 GeoidKarney('egm96-5.pgm').height(-36.955, 179.12) kind 3: 21.874  FAILED, KNOWN, expected 21.875\n    test 301 GeoidKarney('egm96-5.pgm').height(10.248, -6.714) kind 3: 28.933\n    test 302 GeoidKarney('egm96-5.pgm').height(36.868, 84.602) kind 3: -41.238\n    test 303 GeoidKarney('egm96-5.pgm').height(28.637, 88.933) kind 3: -31.331\n    test 304 GeoidKarney('egm96-5.pgm').height(54.811, -99.968) kind 3: -32.702\n    test 305 GeoidKarney('egm96-5.pgm').height(7.611, 145.911) kind 3: 60.117\n    test 306 GeoidKarney('egm96-5.pgm').height(59.412, 170.102) kind 3: 6.457\n    test 307 GeoidKarney('egm96-5.pgm').height(-61.469, 126.144) kind 3: -31.961\n    test 308 GeoidKarney('egm96-5.pgm').height(18.514, -137.083) kind 3: -26.572  FAILED, KNOWN, expected -26.571\n    test 309 GeoidKarney('egm96-5.pgm').height(7.854, -126.799) kind 3: -29.761  FAILED, KNOWN, expected -29.760\n    test 310 GeoidKarney('egm96-5.pgm').height(47.489, 134.183) kind 3: 21.981  FAILED, KNOWN, expected 21.980\n    test 311 GeoidKarney('egm96-5.pgm').height(-34.144, -11.922) kind 3: 16.849\n    test 312 GeoidKarney('egm96-5.pgm').height(-58.389, 117.458) kind 3: -20.923\n    test 313 GeoidKarney('egm96-5.pgm').height(9.773, 95.846) kind 3: -42.749\n    test 314 GeoidKarney('egm96-5.pgm').height(-53.12, 136.994) kind 3: -21.840  FAILED, KNOWN, expected -21.841\n    test 315 GeoidKarney('egm96-5.pgm').height(-50.35, 0.075) kind 3: 25.481  FAILED, KNOWN, expected 25.482\n    test 316 GeoidKarney('egm96-5.pgm').height(31.438, -170.879) kind 3: -8.846  FAILED, KNOWN, expected -8.847\n    test 317 GeoidKarney('egm96-5.pgm').height(37.541, -153.024) kind 3: -19.603  FAILED, KNOWN, expected -19.604\n    test 318 GeoidKarney('egm96-5.pgm').height(27.586, 2.444) kind 3: 25.668\n    test 319 GeoidKarney('egm96-5.pgm').height(-26.139, -106.201) kind 3: -3.772\n    test 320 GeoidKarney('egm96-5.pgm').height(-33.426, -14.84) kind 3: 17.747  FAILED, KNOWN, expected 17.748\n    test 321 GeoidKarney('egm96-5.pgm').height(39.586, -153.019) kind 3: -17.838  FAILED, KNOWN, expected -17.839\n    test 322 GeoidKarney('egm96-5.pgm').height(-60.79, -2.578) kind 3: 14.292\n    test 323 GeoidKarney('egm96-5.pgm').height(-20.131, 21.975) kind 3: 16.529\n    test 324 GeoidKarney('egm96-5.pgm').height(75.649, 99.921) kind 3: -8.230  FAILED, KNOWN, expected -8.229\n    test 325 GeoidKarney('egm96-5.pgm').height(-0.385, -23.788) kind 3: 9.831  FAILED, KNOWN, expected 9.830\n    test 326 GeoidKarney('egm96-5.pgm').height(-51.56, -50.327) kind 3: 6.215\n    test 327 GeoidKarney('egm96-5.pgm').height(-43.129, -167.271) kind 3: -2.960\n    test 328 GeoidKarney('egm96-5.pgm').height(46.374, 71.948) kind 3: -42.323\n    test 329 GeoidKarney('egm96-5.pgm').height(-22.783, 140.657) kind 3: 38.356\n    test 330 GeoidKarney('egm96-5.pgm').height(-12.056, 122.804) kind 3: 34.259\n    test 331 GeoidKarney('egm96-5.pgm').height(30.127, 94.738) kind 3: -37.397\n    test 332 GeoidKarney('egm96-5.pgm').height(46.296, -174.479) kind 3: -2.017  FAILED, KNOWN, expected -2.016\n    test 333 GeoidKarney('egm96-5.pgm').height(34.99, 15.052) kind 3: 33.912\n    test 334 GeoidKarney('egm96-5.pgm').height(-51.287, 90.565) kind 3: 12.676\n    test 335 GeoidKarney('egm96-5.pgm').height(34.217, 141.302) kind 3: 15.692\n    test 336 GeoidKarney('egm96-5.pgm').height(-40.423, -142.787) kind 3: -11.117\n    test 337 GeoidKarney('egm96-5.pgm').height(-17.854, -170.216) kind 3: 27.437\n    test 338 GeoidKarney('egm96-5.pgm').height(47.803, 112.701) kind 3: -23.894\n    test 339 GeoidKarney('egm96-5.pgm').height(-23.276, 133.454) kind 3: 18.765  FAILED, KNOWN, expected 18.766\n    test 340 GeoidKarney('egm96-5.pgm').height(-26.884, -36.571) kind 3: -7.452\n    test 341 GeoidKarney('egm96-5.pgm').height(-37.106, 31.128) kind 3: 30.143\n    test 342 GeoidKarney('egm96-5.pgm').height(-75.363, -173.674) kind 3: -61.172\n    test 343 GeoidKarney('egm96-5.pgm').height(-18.305, 69.016) kind 3: -24.890\n    test 344 GeoidKarney('egm96-5.pgm').height(39.527, 23.58) kind 3: 39.519\n    test 345 GeoidKarney('egm96-5.pgm').height(68.903, 30.97) kind 3: 19.420  FAILED, KNOWN, expected 19.419\n    test 346 GeoidKarney('egm96-5.pgm').height(53.937, 168.318) kind 3: 2.067  FAILED, KNOWN, expected 2.069\n    test 347 GeoidKarney('egm96-5.pgm').height(-38.6, 64.812) kind 3: 25.049  FAILED, KNOWN, expected 25.048\n    test 348 GeoidKarney('egm96-5.pgm').height(-41.396, -69.739) kind 3: 22.546  FAILED, KNOWN, expected 22.547\n    test 349 GeoidKarney('egm96-5.pgm').height(50.158, 72.319) kind 3: -34.358  FAILED, KNOWN, expected -34.359\n    test 350 GeoidKarney('egm96-5.pgm').height(27.692, 176.153) kind 3: -5.454  FAILED, KNOWN, expected -5.453\n    test 351 GeoidKarney('egm96-5.pgm').height(-48.419, 170.454) kind 3: -6.804\n    test 352 GeoidKarney('egm96-5.pgm').height(-65.346, -124.976) kind 3: -35.053  FAILED, KNOWN, expected -35.054\n    test 353 GeoidKarney('egm96-5.pgm').height(-51.873, 167.266) kind 3: -15.417  FAILED, KNOWN, expected -15.418\n    test 354 GeoidKarney('egm96-5.pgm').height(-7.263, 84.308) kind 3: -79.557\n    test 355 GeoidKarney('egm96-5.pgm').height(-1.461, -105.458) kind 3: -16.894\n    test 356 GeoidKarney('egm96-5.pgm').height(7.684, 161.873) kind 3: 36.215\n    test 357 GeoidKarney('egm96-5.pgm').height(-31.475, -158.52) kind 3: 3.523\n    test 358 GeoidKarney('egm96-5.pgm').height(-36.187, 62.917) kind 3: 23.797\n    test 359 GeoidKarney('egm96-5.pgm').height(16.003, 141.687) kind 3: 51.587  FAILED, KNOWN, expected 51.586\n    test 360 GeoidKarney('egm96-5.pgm').height(30.182, 86.261) kind 3: -30.131\n    test 361 GeoidKarney('egm96-5.pgm').height(-77.304, 159.498) kind 3: -51.849  FAILED, KNOWN, expected -51.848\n    test 362 GeoidKarney('egm96-5.pgm').height(39.536, 139.795) kind 3: 37.191  FAILED, KNOWN, expected 37.192\n    test 363 GeoidKarney('egm96-5.pgm').height(8.569, 134.618) kind 3: 63.596  FAILED, KNOWN, expected 63.597\n    test 364 GeoidKarney('egm96-5.pgm').height(14.473, 90.596) kind 3: -62.636\n    test 365 GeoidKarney('egm96-5.pgm').height(-13.138, -99.589) kind 3: -8.718  FAILED, KNOWN, expected -8.717\n    test 366 GeoidKarney('egm96-5.pgm').height(34.212, -26.307) kind 3: 40.645\n    test 367 GeoidKarney('egm96-5.pgm').height(21.89, 76.371) kind 3: -60.729\n    test 368 GeoidKarney('egm96-5.pgm').height(29.793, 120.487) kind 3: 8.784  FAILED, KNOWN, expected 8.783\n    test 369 GeoidKarney('egm96-5.pgm').height(15.724, 122.714) kind 3: 31.523\n    test 370 GeoidKarney('egm96-5.pgm').height(-66.208, -78.499) kind 3: -6.251  FAILED, KNOWN, expected -6.250\n    test 371 GeoidKarney('egm96-5.pgm').height(-39.507, 55.809) kind 3: 32.598  FAILED, KNOWN, expected 32.599\n    test 372 GeoidKarney('egm96-5.pgm').height(28.159, 51.476) kind 3: -24.536\n    test 373 GeoidKarney('egm96-5.pgm').height(-36.207, 120.205) kind 3: -38.869\n    test 374 GeoidKarney('egm96-5.pgm').height(30.575, -99.998) kind 3: -23.212  FAILED, KNOWN, expected -23.213\n    test 375 GeoidKarney('egm96-5.pgm').height(-16.993, 37.136) kind 3: -11.824\n    test 376 GeoidKarney('egm96-5.pgm').height(-11.477, 12.039) kind 3: 16.710  FAILED, KNOWN, expected 16.709\n    test 377 GeoidKarney('egm96-5.pgm').height(30.428, -144.765) kind 3: -22.378  FAILED, KNOWN, expected -22.379\n    test 378 GeoidKarney('egm96-5.pgm').height(-17.44, -92.424) kind 3: -4.941\n    test 379 GeoidKarney('egm96-5.pgm').height(40.203, 143.43) kind 3: 19.394\n    test 380 GeoidKarney('egm96-5.pgm').height(-37.098, -106.574) kind 3: -9.381\n    test 381 GeoidKarney('egm96-5.pgm').height(54.62, -68.413) kind 3: -23.318  FAILED, KNOWN, expected -23.319\n    test 382 GeoidKarney('egm96-5.pgm').height(-31.633, 148.182) kind 3: 24.467  FAILED, KNOWN, expected 24.468\n    test 383 GeoidKarney('egm96-5.pgm').height(-56.07, -141.407) kind 3: -21.761\n    test 384 GeoidKarney('egm96-5.pgm').height(-8.195, -52.691) kind 3: -18.798\n    test 385 GeoidKarney('egm96-5.pgm').height(17.851, 24.749) kind 3: 12.612\n    test 386 GeoidKarney('egm96-5.pgm').height(0.349, -108.333) kind 3: -19.708  FAILED, KNOWN, expected -19.706\n    test 387 GeoidKarney('egm96-5.pgm').height(15.038, 126.191) kind 3: 45.792\n    test 388 GeoidKarney('egm96-5.pgm').height(-21.111, -123.696) kind 3: -8.406\n    test 389 GeoidKarney('egm96-5.pgm').height(30.947, 173.002) kind 3: -8.367\n    test 390 GeoidKarney('egm96-5.pgm').height(-10.698, -144.091) kind 3: -2.026  FAILED, KNOWN, expected -2.025\n    test 391 GeoidKarney('egm96-5.pgm').height(-29.412, 124.753) kind 3: -16.567  FAILED, KNOWN, expected -16.569\n    test 392 GeoidKarney('egm96-5.pgm').height(38.224, -137.189) kind 3: -35.435\n    test 393 GeoidKarney('egm96-5.pgm').height(36.064, -132.409) kind 3: -39.008  FAILED, KNOWN, expected -39.009\n    test 394 GeoidKarney('egm96-5.pgm').height(29.975, 178.076) kind 3: -6.921\n    test 395 GeoidKarney('egm96-5.pgm').height(-21.346, 169.26) kind 3: 50.795\n    test 396 GeoidKarney('egm96-5.pgm').height(49.282, -152.934) kind 3: 1.071  FAILED, KNOWN, expected 1.070\n    test 397 GeoidKarney('egm96-5.pgm').height(16.349, -99.962) kind 3: -14.214\n    test 398 GeoidKarney('egm96-5.pgm').height(-14.293, -167.34) kind 3: 17.600\n    test 399 GeoidKarney('egm96-5.pgm').height(47.166, -38.523) kind 3: 44.803  FAILED, KNOWN, expected 44.804\n    test 400 GeoidKarney('egm96-5.pgm').height(-58.911, 114.347) kind 3: -17.923  FAILED, KNOWN, expected -17.922\n    test 401 GeoidKarney('egm96-5.pgm').height(-9.055, 111.294) kind 3: 10.662\n    test 402 GeoidKarney('egm96-5.pgm').height(18.391, 29.692) kind 3: 7.670\n    test 403 GeoidKarney('egm96-5.pgm').height(-15.074, 22.153) kind 3: 8.624  FAILED, KNOWN, expected 8.623\n    test 404 GeoidKarney('egm96-5.pgm').height(-4.235, 62.001) kind 3: -60.722  FAILED, KNOWN, expected -60.723\n    test 405 GeoidKarney('egm96-5.pgm').height(15.171, -86.583) kind 3: 3.820  FAILED, KNOWN, expected 3.818\n    test 406 GeoidKarney('egm96-5.pgm').height(79.254, 112.116) kind 3: -1.871\n    test 407 GeoidKarney('egm96-5.pgm').height(15.947, 156.093) kind 3: 30.634  FAILED, KNOWN, expected 30.633\n    test 408 GeoidKarney('egm96-5.pgm').height(68.371, -177.382) kind 3: 2.800  FAILED, KNOWN, expected 2.801\n    test 409 GeoidKarney('egm96-5.pgm').height(-41.931, -72.093) kind 3: 19.858  FAILED, KNOWN, expected 19.859\n    test 410 GeoidKarney('egm96-5.pgm').height(-1.193, -143.133) kind 3: 5.347  FAILED, KNOWN, expected 5.348\n    test 411 GeoidKarney('egm96-5.pgm').height(-37.006, 154.513) kind 3: 9.941\n    test 412 GeoidKarney('egm96-5.pgm').height(-22.148, 9.938) kind 3: 22.322  FAILED, KNOWN, expected 22.321\n    test 413 GeoidKarney('egm96-5.pgm').height(24.329, 109.044) kind 3: -24.135\n    test 414 GeoidKarney('egm96-5.pgm').height(-54.878, 114.691) kind 3: -17.680  FAILED, KNOWN, expected -17.679\n    test 415 GeoidKarney('egm96-5.pgm').height(45.601, -80.458) kind 3: -37.151  FAILED, KNOWN, expected -37.150\n    test 416 GeoidKarney('egm96-5.pgm').height(2.372, 58.974) kind 3: -61.158\n    test 417 GeoidKarney('egm96-5.pgm').height(15.937, 165.854) kind 3: 20.603  FAILED, KNOWN, expected 20.602\n    test 418 GeoidKarney('egm96-5.pgm').height(4.889, -24.213) kind 3: 13.056  FAILED, KNOWN, expected 13.055\n    test 419 GeoidKarney('egm96-5.pgm').height(-11.392, 179.558) kind 3: 40.133  FAILED, KNOWN, expected 40.132\n    test 420 GeoidKarney('egm96-5.pgm').height(58.246, 4.862) kind 3: 43.263\n    test 421 GeoidKarney('egm96-5.pgm').height(34.302, -109.109) kind 3: -23.126\n    test 422 GeoidKarney('egm96-5.pgm').height(-58.196, 117.306) kind 3: -20.678\n    test 423 GeoidKarney('egm96-5.pgm').height(44.5, 173.769) kind 3: -8.530  FAILED, KNOWN, expected -8.529\n    test 424 GeoidKarney('egm96-5.pgm').height(-28.863, -139.775) kind 3: -8.666\n    test 425 GeoidKarney('egm96-5.pgm').height(19.507, -96.099) kind 3: -12.795  FAILED, KNOWN, expected -12.796\n    test 426 GeoidKarney('egm96-5.pgm').height(-42.488, -73.907) kind 3: 15.774  FAILED, KNOWN, expected 15.773\n    test 427 GeoidKarney('egm96-5.pgm').height(46.138, -141.429) kind 3: -19.955  FAILED, KNOWN, expected -19.954\n    test 428 GeoidKarney('egm96-5.pgm').height(60.507, 93.743) kind 3: -31.480\n    test 429 GeoidKarney('egm96-5.pgm').height(26.219, -145.434) kind 3: -17.428  FAILED, KNOWN, expected -17.429\n    test 430 GeoidKarney('egm96-5.pgm').height(-28.687, 3.37) kind 3: 24.037\n    test 431 GeoidKarney('egm96-5.pgm').height(-15.008, 117.45) kind 3: 4.519  FAILED, KNOWN, expected 4.520\n    test 432 GeoidKarney('egm96-5.pgm').height(40.71, 144.095) kind 3: 11.393  FAILED, KNOWN, expected 11.394\n    test 433 GeoidKarney('egm96-5.pgm').height(20.823, -173.611) kind 3: 5.678  FAILED, KNOWN, expected 5.679\n    test 434 GeoidKarney('egm96-5.pgm').height(16.776, -3.009) kind 3: 28.707\n    test 435 GeoidKarney('egm96-5.pgm').height(41.0, -95.0) kind 3: -30.261  FAILED, KNOWN, expected -30.262\n    test 436 GeoidKarney('egm96-5.pgm').height(49.0, -120.5) kind 3: -15.984\n    test 437 GeoidKarney('egm96-5.pgm').height(49.0, -103.5) kind 3: -18.635\n    test 438 GeoidKarney('egm96-5.pgm').height(49.0, -86.5) kind 3: -37.749\n    test 439 GeoidKarney('egm96-5.pgm').height(49.0, -69.5) kind 3: -26.691\n    test 440 GeoidKarney('egm96-5.pgm').height(33.0, -120.5) kind 3: -39.561\n    test 441 GeoidKarney('egm96-5.pgm').height(33.0, -103.5) kind 3: -22.562\n    test 442 GeoidKarney('egm96-5.pgm').height(33.0, -86.5) kind 3: -30.012\n    test 443 GeoidKarney('egm96-5.pgm').height(33.0, -69.5) kind 3: -48.039\n\n    test 444 GeoidKarney('egm96-5.pgm').height() kind 3, hits 0, eps max (in 0 FAILED): 0.001756\n    test 445 GeoidKarney('egm96-5.pgm').height() kind 3, hits 0, eps mean (of 210 total): 0.000524\n    test 446 GeoidKarney('egm96-5.pgm').height() kind 3, hits 0, eps stdev (of 210 total): 0.000371\n    test 447 GeoidKarney('egm96-5.pgm').highest(): -8.167, 147.25, 85.422\n    test 448 GeoidKarney('egm96-5.pgm').lowerleft(): -90.0, -180.0, -29.535\n    test 449 GeoidKarney('egm96-5.pgm').lowerright(): -90.0, 180.0, -29.535\n    test 450 GeoidKarney('egm96-5.pgm').lowest(): 4.667, 78.833, -107.043\n    test 451 GeoidKarney('egm96-5.pgm').upperleft(): 90.0, -180.0, 13.605\n    test 452 GeoidKarney('egm96-5.pgm').upperright(): 90.0, 180.0, 13.605\n    test 453 GeoidKarney('egm96-5.pgm').dtype: (\"'ushort'\",)\n    test 454 GeoidKarney('egm96-5.pgm').knots: ('9335520',)\n    test 455 GeoidKarney('egm96-5.pgm').mean: ('-1.317',)\n    test 456 GeoidKarney('egm96-5.pgm').nBytes: ('None',)\n    test 457 GeoidKarney('egm96-5.pgm').smooth: ('None',)\n    test 458 GeoidKarney('egm96-5.pgm').stdev: ('29.244',)\n    test 459 GeoidKarney('egm96-5.pgm')._g2ll2(180, 360): (180, 0.0)\n    test 460 GeoidKarney('egm96-5.pgm')._ll2g2(180, 360): (180, 360)\n    test 461 GeoidKarney('egm96-5.pgm')._swne: (-10.0, -100.0, 10.0, 100.0)\n    test 462 GeoidKarney('egm96-5.pgm')._swne: (-10.0, -100.0, 10.0, 100.0)\n    test 463 GeoidKarney('egm96-5.pgm').toStr: GeoidKarney('egm96-5.pgm'): lowerleft(-90.0, -180.0, -29.535), upperright(90.0, 180.0, 13.605), center(0.0, 0.0, 17.163), highest(-8.167, 147.25, 85.422), lowest(4.667, 78.833, -107.043)\n\n    test 464 closed: True\n    test 465 copy(<class 'type'>): (<class 'pygeodesy.geoids.GeoidKarney'>, True)\n    test 466 GeoidKarney.copy(): (<class 'pygeodesy.geoids.GeoidKarney'>, True)\n# imported pygeodesy.basics into errors.py line 443\n    test 467 GeoidPGM('egm96-5.pgm').height(-76.981, 34.17) kind 3: lli ('-76.981466, 34.17016'), H (False) or wrap (False): lli ('-76.981466, 34.17016'): outside on SE  FAILED, KNOWN, expected 11.423\n    test 468 GeoidPGM('egm96-5.pgm').height(79.695, 88.806) kind 3: lli ('79.695484, 88.805571'), H (False) or wrap (False): lli ('79.695484, 88.805571'): outside on NE  FAILED, KNOWN, expected 0.892\n    test 469 GeoidPGM('egm96-5.pgm').height(-15.245, 168.748) kind 3: lli ('-15.244804, 168.747961'), H (False) or wrap (False): lli ('-15.244804, 168.747961'): outside on SE  FAILED, KNOWN, expected 65.226\n    test 470 GeoidPGM('egm96-5.pgm').height(-19.379, 15.855) kind 3: lli ('-19.379357, 15.85511'), H (False) or wrap (False): lli ('-19.379357, 15.85511'): outside on SE  FAILED, KNOWN, expected 24.463\n    test 471 GeoidPGM('egm96-5.pgm').height(43.378, -130.552) kind 3: lli ('43.377784, -130.551582'), H (False) or wrap (False): lli ('43.377784, -130.551582'): outside on W  FAILED, KNOWN, expected -29.682\n    test 472 GeoidPGM('egm96-5.pgm').height(-16.075, 21.795) kind 3: lli ('-16.074554, 21.79547'), H (False) or wrap (False): lli ('-16.074554, 21.79547'): outside on SE  FAILED, KNOWN, expected 10.503\n    test 473 GeoidPGM('egm96-5.pgm').height(-11.256, -73.75) kind 3: lli ('-11.256389, -73.750255'), H (False) or wrap (False): lli ('-11.256389, -73.750255'): outside on S  FAILED, KNOWN, expected 29.326\n    test 474 GeoidPGM('egm96-5.pgm').height(69.017, -15.921) kind 3: lli ('69.016564, -15.921115'), H (False) or wrap (False): lli ('69.016564, -15.921115'): outside on NE  FAILED, KNOWN, expected 60.424\n    test 475 GeoidPGM('egm96-5.pgm').height(2.221, 139.739) kind 3: lli ('2.221008, 139.73935'), H (False) or wrap (False): lli ('2.221008, 139.73935'): outside on SE  FAILED, KNOWN, expected 68.996\n    test 476 GeoidPGM('egm96-5.pgm').height(-9.097, 119.142) kind 3: lli ('-9.096878, 119.141551'), H (False) or wrap (False): lli ('-9.096878, 119.141551'): outside on SE  FAILED, KNOWN, expected 36.287\n    test 477 GeoidPGM('egm96-5.pgm').height(-28.524, -22.192) kind 3: lli ('-28.523717, -22.1925'), H (False) or wrap (False): lli ('-28.523717, -22.1925'): outside on SE  FAILED, KNOWN, expected 6.626\n    test 478 GeoidPGM('egm96-5.pgm').height(12.272, -136.424) kind 3: lli ('12.27231, -136.424168'), H (False) or wrap (False): lli ('12.27231, -136.424168'): outside on SW  FAILED, KNOWN, expected -20.860\n    test 479 GeoidPGM('egm96-5.pgm').height(-15.203, -85.604) kind 3: lli ('-15.20317, -85.603753'), H (False) or wrap (False): lli ('-15.20317, -85.603753'): outside on S  FAILED, KNOWN, expected -3.267\n    test 480 GeoidPGM('egm96-5.pgm').height(-63.736, -77.17) kind 3: lli ('-63.735565, -77.169636'), H (False) or wrap (False): lli ('-63.735565, -77.169636'): outside on S  FAILED, KNOWN, expected -1.294\n    test 481 GeoidPGM('egm96-5.pgm').height(-48.771, -90.102) kind 3: lli ('-48.770825, -90.102117'), H (False) or wrap (False): lli ('-48.770825, -90.102117'): outside on S  FAILED, KNOWN, expected -2.322\n    test 482 GeoidPGM('egm96-5.pgm').height(-0.179, -126.368) kind 3: lli ('-0.178524, -126.368279'), H (False) or wrap (False): lli ('-0.178524, -126.368279'): outside on SW  FAILED, KNOWN, expected -17.557\n    test 483 GeoidPGM('egm96-5.pgm').height(1.586, -128.887) kind 3: lli ('1.585536, -128.886967'), H (False) or wrap (False): lli ('1.585536, -128.886967'): outside on SW  FAILED, KNOWN, expected -16.594\n    test 484 GeoidPGM('egm96-5.pgm').height(-48.781, -2.684) kind 3: lli ('-48.780705, -2.684224'), H (False) or wrap (False): lli ('-48.780705, -2.684224'): outside on SE  FAILED, KNOWN, expected 24.453\n    test 485 GeoidPGM('egm96-5.pgm').height(-49.092, 136.862) kind 3: lli ('-49.091632, 136.862256'), H (False) or wrap (False): lli ('-49.091632, 136.862256'): outside on SE  FAILED, KNOWN, expected -18.592\n    test 486 GeoidPGM('egm96-5.pgm').height(47.732, 17.552) kind 3: lli ('47.731727, 17.552416'), H (False) or wrap (False): lli ('47.731727, 17.552416'): outside on E  FAILED, KNOWN, expected 44.049\n    test 487 GeoidPGM('egm96-5.pgm').height(-49.11, 85.706) kind 3: lli ('-49.109549, 85.706437'), H (False) or wrap (False): lli ('-49.109549, 85.706437'): outside on SE  FAILED, KNOWN, expected 18.581\n    test 488 GeoidPGM('egm96-5.pgm').height(-49.162, 40.321) kind 3: lli ('-49.162281, 40.321209'), H (False) or wrap (False): lli ('-49.162281, 40.321209'): outside on SE  FAILED, KNOWN, expected 44.289\n    test 489 GeoidPGM('egm96-5.pgm').height(3.498, 158.118) kind 3: lli ('3.498333, 158.117699'), H (False) or wrap (False): lli ('3.498333, 158.117699'): outside on SE  FAILED, KNOWN, expected 49.816\n    test 490 GeoidPGM('egm96-5.pgm').height(-35.616, 122.648) kind 3: lli ('-35.616495, 122.648407'), H (False) or wrap (False): lli ('-35.616495, 122.648407'): outside on SE  FAILED, KNOWN, expected -36.114\n    test 491 GeoidPGM('egm96-5.pgm').height(56.598, -96.114) kind 3: lli ('56.598256, -96.113696'), H (False) or wrap (False): lli ('56.598256, -96.113696'): outside on N  FAILED, KNOWN, expected -41.048\n    test 492 GeoidPGM('egm96-5.pgm').height(-31.85, 149.121) kind 3: lli ('-31.850231, 149.120596'), H (False) or wrap (False): lli ('-31.850231, 149.120596'): outside on SE  FAILED, KNOWN, expected 26.456\n    test 493 GeoidPGM('egm96-5.pgm').height(-26.569, -177.792) kind 3: lli ('-26.568996, -177.792196'), H (False) or wrap (False): lli ('-26.568996, -177.792196'): outside on SW  FAILED, KNOWN, expected 49.317\n    test 494 GeoidPGM('egm96-5.pgm').height(76.735, -65.753) kind 3: lli ('76.734699, -65.752952'), H (False) or wrap (False): lli ('76.734699, -65.752952'): outside on N  FAILED, KNOWN, expected 20.714\n    test 495 GeoidPGM('egm96-5.pgm').height(-21.404, -122.268) kind 3: lli ('-21.404166, -122.267869'), H (False) or wrap (False): lli ('-21.404166, -122.267869'): outside on S  FAILED, KNOWN, expected -7.362\n    test 496 GeoidPGM('egm96-5.pgm').height(-77.133, -65.474) kind 3: lli ('-77.133426, -65.473819'), H (False) or wrap (False): lli ('-77.133426, -65.473819'): outside on S  FAILED, KNOWN, expected -16.492\n    test 497 GeoidPGM('egm96-5.pgm').height(-58.812, 2.276) kind 3: lli ('-58.811779, 2.276142'), H (False) or wrap (False): lli ('-58.811779, 2.276142'): outside on SE  FAILED, KNOWN, expected 18.110\n    test 498 GeoidPGM('egm96-5.pgm').height(4.415, 155.683) kind 3: lli ('4.415102, 155.683336'), H (False) or wrap (False): lli ('4.415102, 155.683336'): outside on SE  FAILED, KNOWN, expected 51.858\n    test 499 GeoidPGM('egm96-5.pgm').height(-28.146, 107.081) kind 3: lli ('-28.145768, 107.081334'), H (False) or wrap (False): lli ('-28.145768, 107.081334'): outside on SE  FAILED, KNOWN, expected -38.981\n    test 500 GeoidPGM('egm96-5.pgm').height(-10.551, -126.69) kind 3: lli ('-10.551267, -126.690468'), H (False) or wrap (False): lli ('-10.551267, -126.690468'): outside on SW  FAILED, KNOWN, expected -9.913\n    test 501 GeoidPGM('egm96-5.pgm').height(-25.444, -103.337) kind 3: lli ('-25.444344, -103.337184'), H (False) or wrap (False): lli ('-25.444344, -103.337184'): outside on S  FAILED, KNOWN, expected -2.828\n    test 502 GeoidPGM('egm96-5.pgm').height(24.436, 46.159) kind 3: lli ('24.435896, 46.158715'), H (False) or wrap (False): lli ('24.435896, 46.158715'): outside on SE  FAILED, KNOWN, expected -5.719\n    test 503 GeoidPGM('egm96-5.pgm').height(-72.889, 37.107) kind 3: lli ('-72.888898, 37.106907'), H (False) or wrap (False): lli ('-72.888898, 37.106907'): outside on SE  FAILED, KNOWN, expected 22.426\n    test 504 GeoidPGM('egm96-5.pgm').height(-19.629, 13.245) kind 3: lli ('-19.628762, 13.244525'), H (False) or wrap (False): lli ('-19.628762, 13.244525'): outside on SE  FAILED, KNOWN, expected 24.545\n    test 505 GeoidPGM('egm96-5.pgm').height(-7.602, 171.265) kind 3: lli ('-7.602449, 171.264763'), H (False) or wrap (False): lli ('-7.602449, 171.264763'): outside on SE  FAILED, KNOWN, expected 40.652\n    test 506 GeoidPGM('egm96-5.pgm').height(-45.364, -1.876) kind 3: lli ('-45.364396, -1.876412'), H (False) or wrap (False): lli ('-45.364396, -1.876412'): outside on SE  FAILED, KNOWN, expected 22.383\n    test 507 GeoidPGM('egm96-5.pgm').height(-7.292, -69.18) kind 3: lli ('-7.292121, -69.179565'), H (False) or wrap (False): lli ('-7.292121, -69.179565'): outside on S  FAILED, KNOWN, expected 22.182\n    test 508 GeoidPGM('egm96-5.pgm').height(-31.566, -166.689) kind 3: lli ('-31.566264, -166.688985'), H (False) or wrap (False): lli ('-31.566264, -166.688985'): outside on SW  FAILED, KNOWN, expected 14.930\n    test 509 GeoidPGM('egm96-5.pgm').height(-82.751, -162.085) kind 3: lli ('-82.751144, -162.08523'), H (False) or wrap (False): lli ('-82.751144, -162.08523'): outside on SW  FAILED, KNOWN, expected -47.094\n    test 510 GeoidPGM('egm96-5.pgm').height(-40.7, 99.466) kind 3: lli ('-40.699637, 99.465509'), H (False) or wrap (False): lli ('-40.699637, 99.465509'): outside on SE  FAILED, KNOWN, expected -18.421\n    test 511 GeoidPGM('egm96-5.pgm').height(48.676, 39.69) kind 3: lli ('48.675771, 39.690012'), H (False) or wrap (False): lli ('48.675771, 39.690012'): outside on E  FAILED, KNOWN, expected 10.055\n    test 512 GeoidPGM('egm96-5.pgm').height(74.817, -78.404) kind 3: lli ('74.817287, -78.404187'), H (False) or wrap (False): lli ('74.817287, -78.404187'): outside on N  FAILED, KNOWN, expected 5.786\n    test 513 GeoidPGM('egm96-5.pgm').height(-81.032, -63.865) kind 3: lli ('-81.032306, -63.864898'), H (False) or wrap (False): lli ('-81.032306, -63.864898'): outside on SE  FAILED, KNOWN, expected -22.838\n    test 514 GeoidPGM('egm96-5.pgm').height(74.022, 9.432) kind 3: lli ('74.021785, 9.431926'), H (False) or wrap (False): lli ('74.021785, 9.431926'): outside on NE  FAILED, KNOWN, expected 42.989\n    test 515 GeoidPGM('egm96-5.pgm').height(-75.071, 17.579) kind 3: lli ('-75.070563, 17.57935'), H (False) or wrap (False): lli ('-75.070563, 17.57935'): outside on SE  FAILED, KNOWN, expected 15.353\n    test 516 GeoidPGM('egm96-5.pgm').height(-12.546, -54.851) kind 3: lli ('-12.54612, -54.850614'), H (False) or wrap (False): lli ('-12.54612, -54.850614'): outside on SE  FAILED, KNOWN, expected -6.337\n    test 517 GeoidPGM('egm96-5.pgm').height(-13.621, 42.408) kind 3: lli ('-13.621418, 42.407805'), H (False) or wrap (False): lli ('-13.621418, 42.407805'): outside on SE  FAILED, KNOWN, expected -25.555\n    test 518 GeoidPGM('egm96-5.pgm').height(-2.266, -91.951) kind 3: lli ('-2.265774, -91.951437'), H (False) or wrap (False): lli ('-2.265774, -91.951437'): outside on S  FAILED, KNOWN, expected -9.923\n    test 519 GeoidPGM('egm96-5.pgm').height(-18.672, 42.547) kind 3: lli ('-18.672316, 42.547125'), H (False) or wrap (False): lli ('-18.672316, 42.547125'): outside on SE  FAILED, KNOWN, expected -10.852\n    test 520 GeoidPGM('egm96-5.pgm').height(-41.44, 157.413) kind 3: lli ('-41.439867, 157.413161'), H (False) or wrap (False): lli ('-41.439867, 157.413161'): outside on SE  FAILED, KNOWN, expected -0.135\n    test 521 GeoidPGM('egm96-5.pgm').height(53.686, -79.375) kind 3: -43.809\n    test 522 GeoidPGM('egm96-5.pgm').height(39.26, -30.351) kind 3: lli ('39.260397, -30.351359'), H (False) or wrap (False): lli ('39.260397, -30.351359'): outside on E  FAILED, KNOWN, expected 57.150\n    test 523 GeoidPGM('egm96-5.pgm').height(-51.699, -141.493) kind 3: lli ('-51.699195, -141.493082'), H (False) or wrap (False): lli ('-51.699195, -141.493082'): outside on SW  FAILED, KNOWN, expected -17.657\n    test 524 GeoidPGM('egm96-5.pgm').height(36.585, 4.515) kind 3: lli ('36.584861, 4.515157'), H (False) or wrap (False): lli ('36.584861, 4.515157'): outside on E  FAILED, KNOWN, expected 46.358\n    test 525 GeoidPGM('egm96-5.pgm').height(39.642, -54.659) kind 3: lli ('39.641638, -54.658846'), H (False) or wrap (False): lli ('39.641638, -54.658846'): outside on E  FAILED, KNOWN, expected -14.404\n    test 526 GeoidPGM('egm96-5.pgm').height(59.761, 166.567) kind 3: lli ('59.761024, 166.566646'), H (False) or wrap (False): lli ('59.761024, 166.566646'): outside on NE  FAILED, KNOWN, expected 11.242\n    test 527 GeoidPGM('egm96-5.pgm').height(51.83, 13.357) kind 3: lli ('51.830001, 13.357464'), H (False) or wrap (False): lli ('51.830001, 13.357464'): outside on E  FAILED, KNOWN, expected 42.237\n    test 528 GeoidPGM('egm96-5.pgm').height(-36.531, -175.431) kind 3: lli ('-36.530912, -175.430804'), H (False) or wrap (False): lli ('-36.530912, -175.430804'): outside on SW  FAILED, KNOWN, expected 22.147\n    test 529 GeoidPGM('egm96-5.pgm').height(-37.08, 125.264) kind 3: lli ('-37.079518, 125.263901'), H (False) or wrap (False): lli ('-37.079518, 125.263901'): outside on SE  FAILED, KNOWN, expected -33.396\n    test 530 GeoidPGM('egm96-5.pgm').height(-68.651, 92.732) kind 3: lli ('-68.650762, 92.731524'), H (False) or wrap (False): lli ('-68.650762, 92.731524'): outside on SE  FAILED, KNOWN, expected 7.961\n    test 531 GeoidPGM('egm96-5.pgm').height(35.087, 45.336) kind 3: lli ('35.086645, 45.335611'), H (False) or wrap (False): lli ('35.086645, 45.335611'): outside on E  FAILED, KNOWN, expected 7.229\n    test 532 GeoidPGM('egm96-5.pgm').height(-61.356, -169.379) kind 3: lli ('-61.355646, -169.378929'), H (False) or wrap (False): lli ('-61.355646, -169.378929'): outside on SW  FAILED, KNOWN, expected -44.292\n    test 533 GeoidPGM('egm96-5.pgm').height(-36.955, 179.12) kind 3: lli ('-36.954967, 179.11982'), H (False) or wrap (False): lli ('-36.954967, 179.11982'): outside on SE  FAILED, KNOWN, expected 21.875\n    test 534 GeoidPGM('egm96-5.pgm').height(10.248, -6.714) kind 3: lli ('10.248399, -6.713559'), H (False) or wrap (False): lli ('10.248399, -6.713559'): outside on SE  FAILED, KNOWN, expected 28.933\n    test 535 GeoidPGM('egm96-5.pgm').height(36.868, 84.602) kind 3: lli ('36.868193, 84.602243'), H (False) or wrap (False): lli ('36.868193, 84.602243'): outside on E  FAILED, KNOWN, expected -41.238\n    test 536 GeoidPGM('egm96-5.pgm').height(28.637, 88.933) kind 3: lli ('28.636703, 88.932955'), H (False) or wrap (False): lli ('28.636703, 88.932955'): outside on E  FAILED, KNOWN, expected -31.331\n    test 537 GeoidPGM('egm96-5.pgm').height(54.811, -99.968) kind 3: -32.702\n    test 538 GeoidPGM('egm96-5.pgm').height(7.611, 145.911) kind 3: lli ('7.610621, 145.911188'), H (False) or wrap (False): lli ('7.610621, 145.911188'): outside on SE  FAILED, KNOWN, expected 60.117\n    test 539 GeoidPGM('egm96-5.pgm').height(59.412, 170.102) kind 3: lli ('59.411557, 170.102394'), H (False) or wrap (False): lli ('59.411557, 170.102394'): outside on NE  FAILED, KNOWN, expected 6.457\n    test 540 GeoidPGM('egm96-5.pgm').height(-61.469, 126.144) kind 3: lli ('-61.468618, 126.144056'), H (False) or wrap (False): lli ('-61.468618, 126.144056'): outside on SE  FAILED, KNOWN, expected -31.961\n    test 541 GeoidPGM('egm96-5.pgm').height(18.514, -137.083) kind 3: lli ('18.514019, -137.083301'), H (False) or wrap (False): lli ('18.514019, -137.083301'): outside on SW  FAILED, KNOWN, expected -26.571\n    test 542 GeoidPGM('egm96-5.pgm').height(7.854, -126.799) kind 3: lli ('7.854318, -126.799148'), H (False) or wrap (False): lli ('7.854318, -126.799148'): outside on SW  FAILED, KNOWN, expected -29.760\n    test 543 GeoidPGM('egm96-5.pgm').height(47.489, 134.183) kind 3: lli ('47.489222, 134.182527'), H (False) or wrap (False): lli ('47.489222, 134.182527'): outside on E  FAILED, KNOWN, expected 21.980\n    test 544 GeoidPGM('egm96-5.pgm').height(-34.144, -11.922) kind 3: lli ('-34.143602, -11.921567'), H (False) or wrap (False): lli ('-34.143602, -11.921567'): outside on SE  FAILED, KNOWN, expected 16.849\n    test 545 GeoidPGM('egm96-5.pgm').height(-58.389, 117.458) kind 3: lli ('-58.388787, 117.457755'), H (False) or wrap (False): lli ('-58.388787, 117.457755'): outside on SE  FAILED, KNOWN, expected -20.923\n    test 546 GeoidPGM('egm96-5.pgm').height(9.773, 95.846) kind 3: lli ('9.772764, 95.845943'), H (False) or wrap (False): lli ('9.772764, 95.845943'): outside on SE  FAILED, KNOWN, expected -42.749\n    test 547 GeoidPGM('egm96-5.pgm').height(-53.12, 136.994) kind 3: lli ('-53.120381, 136.993994'), H (False) or wrap (False): lli ('-53.120381, 136.993994'): outside on SE  FAILED, KNOWN, expected -21.841\n    test 548 GeoidPGM('egm96-5.pgm').height(-50.35, 0.075) kind 3: lli ('-50.349867, 0.07532'), H (False) or wrap (False): lli ('-50.349867, 0.07532'): outside on SE  FAILED, KNOWN, expected 25.482\n    test 549 GeoidPGM('egm96-5.pgm').height(31.438, -170.879) kind 3: lli ('31.438387, -170.878548'), H (False) or wrap (False): lli ('31.438387, -170.878548'): outside on W  FAILED, KNOWN, expected -8.847\n    test 550 GeoidPGM('egm96-5.pgm').height(37.541, -153.024) kind 3: lli ('37.540689, -153.024228'), H (False) or wrap (False): lli ('37.540689, -153.024228'): outside on W  FAILED, KNOWN, expected -19.604\n    test 551 GeoidPGM('egm96-5.pgm').height(27.586, 2.444) kind 3: lli ('27.586088, 2.443556'), H (False) or wrap (False): lli ('27.586088, 2.443556'): outside on E  FAILED, KNOWN, expected 25.668\n    test 552 GeoidPGM('egm96-5.pgm').height(-26.139, -106.201) kind 3: lli ('-26.139126, -106.20081'), H (False) or wrap (False): lli ('-26.139126, -106.20081'): outside on S  FAILED, KNOWN, expected -3.772\n    test 553 GeoidPGM('egm96-5.pgm').height(-33.426, -14.84) kind 3: lli ('-33.425976, -14.840359'), H (False) or wrap (False): lli ('-33.425976, -14.840359'): outside on SE  FAILED, KNOWN, expected 17.748\n    test 554 GeoidPGM('egm96-5.pgm').height(39.586, -153.019) kind 3: lli ('39.586286, -153.018974'), H (False) or wrap (False): lli ('39.586286, -153.018974'): outside on W  FAILED, KNOWN, expected -17.839\n    test 555 GeoidPGM('egm96-5.pgm').height(-60.79, -2.578) kind 3: lli ('-60.790289, -2.578163'), H (False) or wrap (False): lli ('-60.790289, -2.578163'): outside on SE  FAILED, KNOWN, expected 14.292\n    test 556 GeoidPGM('egm96-5.pgm').height(-20.131, 21.975) kind 3: lli ('-20.130538, 21.974941'), H (False) or wrap (False): lli ('-20.130538, 21.974941'): outside on SE  FAILED, KNOWN, expected 16.529\n    test 557 GeoidPGM('egm96-5.pgm').height(75.649, 99.921) kind 3: lli ('75.64878, 99.920587'), H (False) or wrap (False): lli ('75.64878, 99.920587'): outside on NE  FAILED, KNOWN, expected -8.229\n    test 558 GeoidPGM('egm96-5.pgm').height(-0.385, -23.788) kind 3: lli ('-0.385453, -23.788336'), H (False) or wrap (False): lli ('-0.385453, -23.788336'): outside on SE  FAILED, KNOWN, expected 9.830\n    test 559 GeoidPGM('egm96-5.pgm').height(-51.56, -50.327) kind 3: lli ('-51.559564, -50.32687'), H (False) or wrap (False): lli ('-51.559564, -50.32687'): outside on SE  FAILED, KNOWN, expected 6.215\n    test 560 GeoidPGM('egm96-5.pgm').height(-43.129, -167.271) kind 3: lli ('-43.129209, -167.27147'), H (False) or wrap (False): lli ('-43.129209, -167.27147'): outside on SW  FAILED, KNOWN, expected -2.960\n    test 561 GeoidPGM('egm96-5.pgm').height(46.374, 71.948) kind 3: lli ('46.374177, 71.947616'), H (False) or wrap (False): lli ('46.374177, 71.947616'): outside on E  FAILED, KNOWN, expected -42.323\n    test 562 GeoidPGM('egm96-5.pgm').height(-22.783, 140.657) kind 3: lli ('-22.783085, 140.657444'), H (False) or wrap (False): lli ('-22.783085, 140.657444'): outside on SE  FAILED, KNOWN, expected 38.356\n    test 563 GeoidPGM('egm96-5.pgm').height(-12.056, 122.804) kind 3: lli ('-12.05584, 122.80402'), H (False) or wrap (False): lli ('-12.05584, 122.80402'): outside on SE  FAILED, KNOWN, expected 34.259\n    test 564 GeoidPGM('egm96-5.pgm').height(30.127, 94.738) kind 3: lli ('30.127372, 94.738186'), H (False) or wrap (False): lli ('30.127372, 94.738186'): outside on E  FAILED, KNOWN, expected -37.397\n    test 565 GeoidPGM('egm96-5.pgm').height(46.296, -174.479) kind 3: lli ('46.296018, -174.478616'), H (False) or wrap (False): lli ('46.296018, -174.478616'): outside on W  FAILED, KNOWN, expected -2.016\n    test 566 GeoidPGM('egm96-5.pgm').height(34.99, 15.052) kind 3: lli ('34.989646, 15.051646'), H (False) or wrap (False): lli ('34.989646, 15.051646'): outside on E  FAILED, KNOWN, expected 33.912\n    test 567 GeoidPGM('egm96-5.pgm').height(-51.287, 90.565) kind 3: lli ('-51.287168, 90.564711'), H (False) or wrap (False): lli ('-51.287168, 90.564711'): outside on SE  FAILED, KNOWN, expected 12.676\n    test 568 GeoidPGM('egm96-5.pgm').height(34.217, 141.302) kind 3: lli ('34.217016, 141.301548'), H (False) or wrap (False): lli ('34.217016, 141.301548'): outside on E  FAILED, KNOWN, expected 15.692\n    test 569 GeoidPGM('egm96-5.pgm').height(-40.423, -142.787) kind 3: lli ('-40.423023, -142.786592'), H (False) or wrap (False): lli ('-40.423023, -142.786592'): outside on SW  FAILED, KNOWN, expected -11.117\n    test 570 GeoidPGM('egm96-5.pgm').height(-17.854, -170.216) kind 3: lli ('-17.854486, -170.216354'), H (False) or wrap (False): lli ('-17.854486, -170.216354'): outside on SW  FAILED, KNOWN, expected 27.437\n    test 571 GeoidPGM('egm96-5.pgm').height(47.803, 112.701) kind 3: lli ('47.803271, 112.700942'), H (False) or wrap (False): lli ('47.803271, 112.700942'): outside on E  FAILED, KNOWN, expected -23.894\n    test 572 GeoidPGM('egm96-5.pgm').height(-23.276, 133.454) kind 3: lli ('-23.275962, 133.453821'), H (False) or wrap (False): lli ('-23.275962, 133.453821'): outside on SE  FAILED, KNOWN, expected 18.766\n    test 573 GeoidPGM('egm96-5.pgm').height(-26.884, -36.571) kind 3: lli ('-26.884369, -36.570654'), H (False) or wrap (False): lli ('-26.884369, -36.570654'): outside on SE  FAILED, KNOWN, expected -7.452\n    test 574 GeoidPGM('egm96-5.pgm').height(-37.106, 31.128) kind 3: lli ('-37.106468, 31.127939'), H (False) or wrap (False): lli ('-37.106468, 31.127939'): outside on SE  FAILED, KNOWN, expected 30.143\n    test 575 GeoidPGM('egm96-5.pgm').height(-75.363, -173.674) kind 3: lli ('-75.363185, -173.673649'), H (False) or wrap (False): lli ('-75.363185, -173.673649'): outside on SW  FAILED, KNOWN, expected -61.172\n    test 576 GeoidPGM('egm96-5.pgm').height(-18.305, 69.016) kind 3: lli ('-18.30485, 69.015565'), H (False) or wrap (False): lli ('-18.30485, 69.015565'): outside on SE  FAILED, KNOWN, expected -24.890\n    test 577 GeoidPGM('egm96-5.pgm').height(39.527, 23.58) kind 3: lli ('39.527401, 23.580206'), H (False) or wrap (False): lli ('39.527401, 23.580206'): outside on E  FAILED, KNOWN, expected 39.519\n    test 578 GeoidPGM('egm96-5.pgm').height(68.903, 30.97) kind 3: lli ('68.903148, 30.970247'), H (False) or wrap (False): lli ('68.903148, 30.970247'): outside on NE  FAILED, KNOWN, expected 19.419\n    test 579 GeoidPGM('egm96-5.pgm').height(53.937, 168.318) kind 3: lli ('53.936937, 168.318201'), H (False) or wrap (False): lli ('53.936937, 168.318201'): outside on E  FAILED, KNOWN, expected 2.069\n    test 580 GeoidPGM('egm96-5.pgm').height(-38.6, 64.812) kind 3: lli ('-38.600098, 64.811532'), H (False) or wrap (False): lli ('-38.600098, 64.811532'): outside on SE  FAILED, KNOWN, expected 25.048\n    test 581 GeoidPGM('egm96-5.pgm').height(-41.396, -69.739) kind 3: lli ('-41.395739, -69.739418'), H (False) or wrap (False): lli ('-41.395739, -69.739418'): outside on S  FAILED, KNOWN, expected 22.547\n    test 582 GeoidPGM('egm96-5.pgm').height(50.158, 72.319) kind 3: lli ('50.157749, 72.319017'), H (False) or wrap (False): lli ('50.157749, 72.319017'): outside on E  FAILED, KNOWN, expected -34.359\n    test 583 GeoidPGM('egm96-5.pgm').height(27.692, 176.153) kind 3: lli ('27.691879, 176.152884'), H (False) or wrap (False): lli ('27.691879, 176.152884'): outside on E  FAILED, KNOWN, expected -5.453\n    test 584 GeoidPGM('egm96-5.pgm').height(-48.419, 170.454) kind 3: lli ('-48.419449, 170.454472'), H (False) or wrap (False): lli ('-48.419449, 170.454472'): outside on SE  FAILED, KNOWN, expected -6.804\n    test 585 GeoidPGM('egm96-5.pgm').height(-65.346, -124.976) kind 3: lli ('-65.34567, -124.975961'), H (False) or wrap (False): lli ('-65.34567, -124.975961'): outside on S  FAILED, KNOWN, expected -35.054\n    test 586 GeoidPGM('egm96-5.pgm').height(-51.873, 167.266) kind 3: lli ('-51.873009, 167.265613'), H (False) or wrap (False): lli ('-51.873009, 167.265613'): outside on SE  FAILED, KNOWN, expected -15.418\n    test 587 GeoidPGM('egm96-5.pgm').height(-7.263, 84.308) kind 3: lli ('-7.262544, 84.307626'), H (False) or wrap (False): lli ('-7.262544, 84.307626'): outside on SE  FAILED, KNOWN, expected -79.557\n    test 588 GeoidPGM('egm96-5.pgm').height(-1.461, -105.458) kind 3: lli ('-1.461003, -105.458323'), H (False) or wrap (False): lli ('-1.461003, -105.458323'): outside on S  FAILED, KNOWN, expected -16.894\n    test 589 GeoidPGM('egm96-5.pgm').height(7.684, 161.873) kind 3: lli ('7.684324, 161.87293'), H (False) or wrap (False): lli ('7.684324, 161.87293'): outside on SE  FAILED, KNOWN, expected 36.215\n    test 590 GeoidPGM('egm96-5.pgm').height(-31.475, -158.52) kind 3: lli ('-31.474549, -158.520033'), H (False) or wrap (False): lli ('-31.474549, -158.520033'): outside on SW  FAILED, KNOWN, expected 3.523\n    test 591 GeoidPGM('egm96-5.pgm').height(-36.187, 62.917) kind 3: lli ('-36.187212, 62.917075'), H (False) or wrap (False): lli ('-36.187212, 62.917075'): outside on SE  FAILED, KNOWN, expected 23.797\n    test 592 GeoidPGM('egm96-5.pgm').height(16.003, 141.687) kind 3: lli ('16.002975, 141.686552'), H (False) or wrap (False): lli ('16.002975, 141.686552'): outside on SE  FAILED, KNOWN, expected 51.586\n    test 593 GeoidPGM('egm96-5.pgm').height(30.182, 86.261) kind 3: lli ('30.182218, 86.260576'), H (False) or wrap (False): lli ('30.182218, 86.260576'): outside on E  FAILED, KNOWN, expected -30.131\n    test 594 GeoidPGM('egm96-5.pgm').height(-77.304, 159.498) kind 3: lli ('-77.303842, 159.497665'), H (False) or wrap (False): lli ('-77.303842, 159.497665'): outside on SE  FAILED, KNOWN, expected -51.848\n    test 595 GeoidPGM('egm96-5.pgm').height(39.536, 139.795) kind 3: lli ('39.536, 139.795358'), H (False) or wrap (False): lli ('39.536, 139.795358'): outside on E  FAILED, KNOWN, expected 37.192\n    test 596 GeoidPGM('egm96-5.pgm').height(8.569, 134.618) kind 3: lli ('8.569309, 134.618403'), H (False) or wrap (False): lli ('8.569309, 134.618403'): outside on SE  FAILED, KNOWN, expected 63.597\n    test 597 GeoidPGM('egm96-5.pgm').height(14.473, 90.596) kind 3: lli ('14.473483, 90.595663'), H (False) or wrap (False): lli ('14.473483, 90.595663'): outside on SE  FAILED, KNOWN, expected -62.636\n    test 598 GeoidPGM('egm96-5.pgm').height(-13.138, -99.589) kind 3: lli ('-13.13767, -99.589202'), H (False) or wrap (False): lli ('-13.13767, -99.589202'): outside on S  FAILED, KNOWN, expected -8.717\n    test 599 GeoidPGM('egm96-5.pgm').height(34.212, -26.307) kind 3: lli ('34.211572, -26.307194'), H (False) or wrap (False): lli ('34.211572, -26.307194'): outside on E  FAILED, KNOWN, expected 40.645\n    test 600 GeoidPGM('egm96-5.pgm').height(21.89, 76.371) kind 3: lli ('21.889732, 76.371362'), H (False) or wrap (False): lli ('21.889732, 76.371362'): outside on SE  FAILED, KNOWN, expected -60.729\n    test 601 GeoidPGM('egm96-5.pgm').height(29.793, 120.487) kind 3: lli ('29.792909, 120.48703'), H (False) or wrap (False): lli ('29.792909, 120.48703'): outside on E  FAILED, KNOWN, expected 8.783\n    test 602 GeoidPGM('egm96-5.pgm').height(15.724, 122.714) kind 3: lli ('15.723814, 122.713685'), H (False) or wrap (False): lli ('15.723814, 122.713685'): outside on SE  FAILED, KNOWN, expected 31.523\n    test 603 GeoidPGM('egm96-5.pgm').height(-66.208, -78.499) kind 3: lli ('-66.20776, -78.498807'), H (False) or wrap (False): lli ('-66.20776, -78.498807'): outside on S  FAILED, KNOWN, expected -6.250\n    test 604 GeoidPGM('egm96-5.pgm').height(-39.507, 55.809) kind 3: lli ('-39.507049, 55.808743'), H (False) or wrap (False): lli ('-39.507049, 55.808743'): outside on SE  FAILED, KNOWN, expected 32.599\n    test 605 GeoidPGM('egm96-5.pgm').height(28.159, 51.476) kind 3: lli ('28.159494, 51.476474'), H (False) or wrap (False): lli ('28.159494, 51.476474'): outside on E  FAILED, KNOWN, expected -24.536\n    test 606 GeoidPGM('egm96-5.pgm').height(-36.207, 120.205) kind 3: lli ('-36.206825, 120.205019'), H (False) or wrap (False): lli ('-36.206825, 120.205019'): outside on SE  FAILED, KNOWN, expected -38.869\n    test 607 GeoidPGM('egm96-5.pgm').height(30.575, -99.998) kind 3: -23.213\n    test 608 GeoidPGM('egm96-5.pgm').height(-16.993, 37.136) kind 3: lli ('-16.992515, 37.135881'), H (False) or wrap (False): lli ('-16.992515, 37.135881'): outside on SE  FAILED, KNOWN, expected -11.824\n    test 609 GeoidPGM('egm96-5.pgm').height(-11.477, 12.039) kind 3: lli ('-11.476997, 12.038708'), H (False) or wrap (False): lli ('-11.476997, 12.038708'): outside on SE  FAILED, KNOWN, expected 16.709\n    test 610 GeoidPGM('egm96-5.pgm').height(30.428, -144.765) kind 3: lli ('30.428465, -144.765049'), H (False) or wrap (False): lli ('30.428465, -144.765049'): outside on W  FAILED, KNOWN, expected -22.379\n    test 611 GeoidPGM('egm96-5.pgm').height(-17.44, -92.424) kind 3: lli ('-17.439773, -92.424339'), H (False) or wrap (False): lli ('-17.439773, -92.424339'): outside on S  FAILED, KNOWN, expected -4.941\n    test 612 GeoidPGM('egm96-5.pgm').height(40.203, 143.43) kind 3: lli ('40.203164, 143.429799'), H (False) or wrap (False): lli ('40.203164, 143.429799'): outside on E  FAILED, KNOWN, expected 19.394\n    test 613 GeoidPGM('egm96-5.pgm').height(-37.098, -106.574) kind 3: lli ('-37.098392, -106.573712'), H (False) or wrap (False): lli ('-37.098392, -106.573712'): outside on S  FAILED, KNOWN, expected -9.381\n    test 614 GeoidPGM('egm96-5.pgm').height(54.62, -68.413) kind 3: -23.318  FAILED, KNOWN, expected -23.319\n    test 615 GeoidPGM('egm96-5.pgm').height(-31.633, 148.182) kind 3: lli ('-31.633252, 148.181926'), H (False) or wrap (False): lli ('-31.633252, 148.181926'): outside on SE  FAILED, KNOWN, expected 24.468\n    test 616 GeoidPGM('egm96-5.pgm').height(-56.07, -141.407) kind 3: lli ('-56.069748, -141.406778'), H (False) or wrap (False): lli ('-56.069748, -141.406778'): outside on SW  FAILED, KNOWN, expected -21.761\n    test 617 GeoidPGM('egm96-5.pgm').height(-8.195, -52.691) kind 3: lli ('-8.195214, -52.691177'), H (False) or wrap (False): lli ('-8.195214, -52.691177'): outside on SE  FAILED, KNOWN, expected -18.798\n    test 618 GeoidPGM('egm96-5.pgm').height(17.851, 24.749) kind 3: lli ('17.850526, 24.748606'), H (False) or wrap (False): lli ('17.850526, 24.748606'): outside on SE  FAILED, KNOWN, expected 12.612\n    test 619 GeoidPGM('egm96-5.pgm').height(0.349, -108.333) kind 3: lli ('0.349465, -108.332667'), H (False) or wrap (False): lli ('0.349465, -108.332667'): outside on S  FAILED, KNOWN, expected -19.706\n    test 620 GeoidPGM('egm96-5.pgm').height(15.038, 126.191) kind 3: lli ('15.037932, 126.190545'), H (False) or wrap (False): lli ('15.037932, 126.190545'): outside on SE  FAILED, KNOWN, expected 45.792\n    test 621 GeoidPGM('egm96-5.pgm').height(-21.111, -123.696) kind 3: lli ('-21.111105, -123.695981'), H (False) or wrap (False): lli ('-21.111105, -123.695981'): outside on S  FAILED, KNOWN, expected -8.406\n    test 622 GeoidPGM('egm96-5.pgm').height(30.947, 173.002) kind 3: lli ('30.946618, 173.002137'), H (False) or wrap (False): lli ('30.946618, 173.002137'): outside on E  FAILED, KNOWN, expected -8.367\n    test 623 GeoidPGM('egm96-5.pgm').height(-10.698, -144.091) kind 3: lli ('-10.698334, -144.091109'), H (False) or wrap (False): lli ('-10.698334, -144.091109'): outside on SW  FAILED, KNOWN, expected -2.025\n    test 624 GeoidPGM('egm96-5.pgm').height(-29.412, 124.753) kind 3: lli ('-29.412071, 124.75279'), H (False) or wrap (False): lli ('-29.412071, 124.75279'): outside on SE  FAILED, KNOWN, expected -16.569\n    test 625 GeoidPGM('egm96-5.pgm').height(38.224, -137.189) kind 3: lli ('38.223621, -137.189376'), H (False) or wrap (False): lli ('38.223621, -137.189376'): outside on W  FAILED, KNOWN, expected -35.435\n    test 626 GeoidPGM('egm96-5.pgm').height(36.064, -132.409) kind 3: lli ('36.063775, -132.409284'), H (False) or wrap (False): lli ('36.063775, -132.409284'): outside on W  FAILED, KNOWN, expected -39.009\n    test 627 GeoidPGM('egm96-5.pgm').height(29.975, 178.076) kind 3: lli ('29.974676, 178.075894'), H (False) or wrap (False): lli ('29.974676, 178.075894'): outside on E  FAILED, KNOWN, expected -6.921\n    test 628 GeoidPGM('egm96-5.pgm').height(-21.346, 169.26) kind 3: lli ('-21.346396, 169.259508'), H (False) or wrap (False): lli ('-21.346396, 169.259508'): outside on SE  FAILED, KNOWN, expected 50.795\n    test 629 GeoidPGM('egm96-5.pgm').height(49.282, -152.934) kind 3: lli ('49.282472, -152.934409'), H (False) or wrap (False): lli ('49.282472, -152.934409'): outside on W  FAILED, KNOWN, expected 1.070\n    test 630 GeoidPGM('egm96-5.pgm').height(16.349, -99.962) kind 3: lli ('16.349121, -99.962229'), H (False) or wrap (False): lli ('16.349121, -99.962229'): outside on S  FAILED, KNOWN, expected -14.214\n    test 631 GeoidPGM('egm96-5.pgm').height(-14.293, -167.34) kind 3: lli ('-14.293325, -167.339799'), H (False) or wrap (False): lli ('-14.293325, -167.339799'): outside on SW  FAILED, KNOWN, expected 17.600\n    test 632 GeoidPGM('egm96-5.pgm').height(47.166, -38.523) kind 3: lli ('47.165911, -38.522629'), H (False) or wrap (False): lli ('47.165911, -38.522629'): outside on E  FAILED, KNOWN, expected 44.804\n    test 633 GeoidPGM('egm96-5.pgm').height(-58.911, 114.347) kind 3: lli ('-58.910597, 114.346927'), H (False) or wrap (False): lli ('-58.910597, 114.346927'): outside on SE  FAILED, KNOWN, expected -17.922\n    test 634 GeoidPGM('egm96-5.pgm').height(-9.055, 111.294) kind 3: lli ('-9.055095, 111.294422'), H (False) or wrap (False): lli ('-9.055095, 111.294422'): outside on SE  FAILED, KNOWN, expected 10.662\n    test 635 GeoidPGM('egm96-5.pgm').height(18.391, 29.692) kind 3: lli ('18.390988, 29.691577'), H (False) or wrap (False): lli ('18.390988, 29.691577'): outside on SE  FAILED, KNOWN, expected 7.670\n    test 636 GeoidPGM('egm96-5.pgm').height(-15.074, 22.153) kind 3: lli ('-15.074412, 22.152663'), H (False) or wrap (False): lli ('-15.074412, 22.152663'): outside on SE  FAILED, KNOWN, expected 8.623\n    test 637 GeoidPGM('egm96-5.pgm').height(-4.235, 62.001) kind 3: lli ('-4.234571, 62.001081'), H (False) or wrap (False): lli ('-4.234571, 62.001081'): outside on SE  FAILED, KNOWN, expected -60.723\n    test 638 GeoidPGM('egm96-5.pgm').height(15.171, -86.583) kind 3: lli ('15.170822, -86.582929'), H (False) or wrap (False): lli ('15.170822, -86.582929'): outside on S  FAILED, KNOWN, expected 3.818\n    test 639 GeoidPGM('egm96-5.pgm').height(79.254, 112.116) kind 3: lli ('79.254009, 112.115515'), H (False) or wrap (False): lli ('79.254009, 112.115515'): outside on NE  FAILED, KNOWN, expected -1.871\n    test 640 GeoidPGM('egm96-5.pgm').height(15.947, 156.093) kind 3: lli ('15.947068, 156.092678'), H (False) or wrap (False): lli ('15.947068, 156.092678'): outside on SE  FAILED, KNOWN, expected 30.633\n    test 641 GeoidPGM('egm96-5.pgm').height(68.371, -177.382) kind 3: lli ('68.370605, -177.382127'), H (False) or wrap (False): lli ('68.370605, -177.382127'): outside on NW  FAILED, KNOWN, expected 2.801\n    test 642 GeoidPGM('egm96-5.pgm').height(-41.931, -72.093) kind 3: lli ('-41.931009, -72.093413'), H (False) or wrap (False): lli ('-41.931009, -72.093413'): outside on S  FAILED, KNOWN, expected 19.859\n    test 643 GeoidPGM('egm96-5.pgm').height(-1.193, -143.133) kind 3: lli ('-1.192967, -143.133078'), H (False) or wrap (False): lli ('-1.192967, -143.133078'): outside on SW  FAILED, KNOWN, expected 5.348\n    test 644 GeoidPGM('egm96-5.pgm').height(-37.006, 154.513) kind 3: lli ('-37.006115, 154.512534'), H (False) or wrap (False): lli ('-37.006115, 154.512534'): outside on SE  FAILED, KNOWN, expected 9.941\n    test 645 GeoidPGM('egm96-5.pgm').height(-22.148, 9.938) kind 3: lli ('-22.148493, 9.938408'), H (False) or wrap (False): lli ('-22.148493, 9.938408'): outside on SE  FAILED, KNOWN, expected 22.321\n    test 646 GeoidPGM('egm96-5.pgm').height(24.329, 109.044) kind 3: lli ('24.328746, 109.043774'), H (False) or wrap (False): lli ('24.328746, 109.043774'): outside on SE  FAILED, KNOWN, expected -24.135\n    test 647 GeoidPGM('egm96-5.pgm').height(-54.878, 114.691) kind 3: lli ('-54.877699, 114.691444'), H (False) or wrap (False): lli ('-54.877699, 114.691444'): outside on SE  FAILED, KNOWN, expected -17.679\n    test 648 GeoidPGM('egm96-5.pgm').height(45.601, -80.458) kind 3: -37.151  FAILED, KNOWN, expected -37.150\n    test 649 GeoidPGM('egm96-5.pgm').height(2.372, 58.974) kind 3: lli ('2.371766, 58.974082'), H (False) or wrap (False): lli ('2.371766, 58.974082'): outside on SE  FAILED, KNOWN, expected -61.158\n    test 650 GeoidPGM('egm96-5.pgm').height(15.937, 165.854) kind 3: lli ('15.936522, 165.854035'), H (False) or wrap (False): lli ('15.936522, 165.854035'): outside on SE  FAILED, KNOWN, expected 20.602\n    test 651 GeoidPGM('egm96-5.pgm').height(4.889, -24.213) kind 3: lli ('4.889499, -24.213194'), H (False) or wrap (False): lli ('4.889499, -24.213194'): outside on SE  FAILED, KNOWN, expected 13.055\n    test 652 GeoidPGM('egm96-5.pgm').height(-11.392, 179.558) kind 3: lli ('-11.392365, 179.558198'), H (False) or wrap (False): lli ('-11.392365, 179.558198'): outside on SE  FAILED, KNOWN, expected 40.132\n    test 653 GeoidPGM('egm96-5.pgm').height(58.246, 4.862) kind 3: lli ('58.24629, 4.862128'), H (False) or wrap (False): lli ('58.24629, 4.862128'): outside on NE  FAILED, KNOWN, expected 43.263\n    test 654 GeoidPGM('egm96-5.pgm').height(34.302, -109.109) kind 3: -23.126\n    test 655 GeoidPGM('egm96-5.pgm').height(-58.196, 117.306) kind 3: lli ('-58.195787, 117.305696'), H (False) or wrap (False): lli ('-58.195787, 117.305696'): outside on SE  FAILED, KNOWN, expected -20.678\n    test 656 GeoidPGM('egm96-5.pgm').height(44.5, 173.769) kind 3: lli ('44.499876, 173.768568'), H (False) or wrap (False): lli ('44.499876, 173.768568'): outside on E  FAILED, KNOWN, expected -8.529\n    test 657 GeoidPGM('egm96-5.pgm').height(-28.863, -139.775) kind 3: lli ('-28.862539, -139.774812'), H (False) or wrap (False): lli ('-28.862539, -139.774812'): outside on SW  FAILED, KNOWN, expected -8.666\n    test 658 GeoidPGM('egm96-5.pgm').height(19.507, -96.099) kind 3: lli ('19.507043, -96.099433'), H (False) or wrap (False): lli ('19.507043, -96.099433'): outside on S  FAILED, KNOWN, expected -12.796\n    test 659 GeoidPGM('egm96-5.pgm').height(-42.488, -73.907) kind 3: lli ('-42.487604, -73.906602'), H (False) or wrap (False): lli ('-42.487604, -73.906602'): outside on S  FAILED, KNOWN, expected 15.773\n    test 660 GeoidPGM('egm96-5.pgm').height(46.138, -141.429) kind 3: lli ('46.138437, -141.429193'), H (False) or wrap (False): lli ('46.138437, -141.429193'): outside on W  FAILED, KNOWN, expected -19.954\n    test 661 GeoidPGM('egm96-5.pgm').height(60.507, 93.743) kind 3: lli ('60.506969, 93.74336'), H (False) or wrap (False): lli ('60.506969, 93.74336'): outside on NE  FAILED, KNOWN, expected -31.480\n    test 662 GeoidPGM('egm96-5.pgm').height(26.219, -145.434) kind 3: lli ('26.219081, -145.434391'), H (False) or wrap (False): lli ('26.219081, -145.434391'): outside on W  FAILED, KNOWN, expected -17.429\n    test 663 GeoidPGM('egm96-5.pgm').height(-28.687, 3.37) kind 3: lli ('-28.68714, 3.370196'), H (False) or wrap (False): lli ('-28.68714, 3.370196'): outside on SE  FAILED, KNOWN, expected 24.037\n    test 664 GeoidPGM('egm96-5.pgm').height(-15.008, 117.45) kind 3: lli ('-15.007944, 117.449536'), H (False) or wrap (False): lli ('-15.007944, 117.449536'): outside on SE  FAILED, KNOWN, expected 4.520\n    test 665 GeoidPGM('egm96-5.pgm').height(40.71, 144.095) kind 3: lli ('40.710024, 144.095126'), H (False) or wrap (False): lli ('40.710024, 144.095126'): outside on E  FAILED, KNOWN, expected 11.394\n    test 666 GeoidPGM('egm96-5.pgm').height(20.823, -173.611) kind 3: lli ('20.823096, -173.610797'), H (False) or wrap (False): lli ('20.823096, -173.610797'): outside on SW  FAILED, KNOWN, expected 5.679\n    test 667 GeoidPGM('egm96-5.pgm').height(16.776, -3.009) kind 3: lli ('16.776, -3.009'), H (False) or wrap (False): lli ('16.776, -3.009'): outside on SE  FAILED, KNOWN, expected 28.707\n    test 668 GeoidPGM('egm96-5.pgm').height(41.0, -95.0) kind 3: -30.261  FAILED, KNOWN, expected -30.262\n    test 669 GeoidPGM('egm96-5.pgm').height(49.0, -120.5) kind 3: -15.984\n    test 670 GeoidPGM('egm96-5.pgm').height(49.0, -103.5) kind 3: -18.636  FAILED, KNOWN, expected -18.635\n    test 671 GeoidPGM('egm96-5.pgm').height(49.0, -86.5) kind 3: -37.749\n    test 672 GeoidPGM('egm96-5.pgm').height(49.0, -69.5) kind 3: -26.691\n    test 673 GeoidPGM('egm96-5.pgm').height(33.0, -120.5) kind 3: -39.561\n    test 674 GeoidPGM('egm96-5.pgm').height(33.0, -103.5) kind 3: -22.563  FAILED, KNOWN, expected -22.562\n    test 675 GeoidPGM('egm96-5.pgm').height(33.0, -86.5) kind 3: -30.012\n    test 676 GeoidPGM('egm96-5.pgm').height(33.0, -69.5) kind 3: -48.039\n\n    test 677 GeoidPGM('egm96-5.pgm').height() kind 3, eps max (in 0 FAILED): 0.001116\n    test 678 GeoidPGM('egm96-5.pgm').height() kind 3, eps mean (of 15 total): 0.000383\n    test 679 GeoidPGM('egm96-5.pgm').height() kind 3, eps stdev (of 15 total): 0.000294\n    test 680 GeoidPGM('egm96-5.pgm').highest(): 45.0, -110.083, -7.479\n    test 681 GeoidPGM('egm96-5.pgm').lowerleft(): 25.0, -125.0, -45.543\n    test 682 GeoidPGM('egm96-5.pgm').lowerright(): 25.0, -64.917, -51.106\n    test 683 GeoidPGM('egm96-5.pgm').lowest(): 25.75, -69.583, -52.671\n    test 684 GeoidPGM('egm96-5.pgm').upperleft(): 55.0, -125.0, -10.221\n    test 685 GeoidPGM('egm96-5.pgm').upperright(): 55.0, -64.917, -16.097\n    test 686 GeoidPGM('egm96-5.pgm').dtype: (\"dtype('float64')\",)\n    test 687 GeoidPGM('egm96-5.pgm').knots: ('260281',)\n    test 688 GeoidPGM('egm96-5.pgm').mean: ('-29.816',)\n    test 689 GeoidPGM('egm96-5.pgm').nBytes: ('2082248',)\n    test 690 GeoidPGM('egm96-5.pgm').smooth: ('0',)\n    test 691 GeoidPGM('egm96-5.pgm').stdev: ('9.503',)\n    test 692 GeoidPGM('egm96-5.pgm')._g2ll2(180, 360): (180, 0.0)\n    test 693 GeoidPGM('egm96-5.pgm')._ll2g2(180, 360): (180, 720.0)\n    test 694 GeoidPGM('egm96-5.pgm')._swne: (-10.0, -100.0, 10.0, 100.0)\n    test 695 GeoidPGM('egm96-5.pgm')._swne: (-10.0, -100.0, 10.0, 100.0)\n    test 696 GeoidPGM('egm96-5.pgm').toStr: GeoidPGM('egm96-5.pgm'): lowerleft(25.0, -125.0, -45.543), upperright(55.0, -64.917, -16.097), center(40.0, -94.958, -32.13), highest(45.0, -110.083, -7.479), lowest(25.75, -69.583, -52.671)\n\n    test 697 closed: True\n    test 698 copy(<class 'type'>): (<class 'pygeodesy.geoids.GeoidPGM'>, True)\n    test 699 GeoidPGM.copy(): (<class 'pygeodesy.geoids.GeoidPGM'>, True)\n    test 700 GeoidKarney('egm2008-1.pgm').height(-76.981, 34.17) kind 2: 12.637  FAILED, KNOWN, expected 12.636\n    test 701 GeoidKarney('egm2008-1.pgm').height(79.695, 88.806) kind 2: 0.749\n    test 702 GeoidKarney('egm2008-1.pgm').height(-15.245, 168.748) kind 2: 65.110  FAILED, KNOWN, expected 65.109\n    test 703 GeoidKarney('egm2008-1.pgm').height(-19.379, 15.855) kind 2: 24.889\n    test 704 GeoidKarney('egm2008-1.pgm').height(43.378, -130.552) kind 2: -29.557\n    test 705 GeoidKarney('egm2008-1.pgm').height(-16.075, 21.795) kind 2: 9.741  FAILED, KNOWN, expected 9.742\n    test 706 GeoidKarney('egm2008-1.pgm').height(-11.256, -73.75) kind 2: 30.061  FAILED, KNOWN, expected 30.059\n    test 707 GeoidKarney('egm2008-1.pgm').height(69.017, -15.921) kind 2: 60.691  FAILED, KNOWN, expected 60.690\n    test 708 GeoidKarney('egm2008-1.pgm').height(2.221, 139.739) kind 2: 69.134  FAILED, KNOWN, expected 69.133\n    test 709 GeoidKarney('egm2008-1.pgm').height(-9.097, 119.142) kind 2: 36.522  FAILED, KNOWN, expected 36.520\n    test 710 GeoidKarney('egm2008-1.pgm').height(-28.524, -22.192) kind 2: 6.801\n    test 711 GeoidKarney('egm2008-1.pgm').height(12.272, -136.424) kind 2: -20.652  FAILED, KNOWN, expected -20.651\n    test 712 GeoidKarney('egm2008-1.pgm').height(-15.203, -85.604) kind 2: -3.040\n    test 713 GeoidKarney('egm2008-1.pgm').height(-63.736, -77.17) kind 2: -1.329  FAILED, KNOWN, expected -1.328\n    test 714 GeoidKarney('egm2008-1.pgm').height(-48.771, -90.102) kind 2: -2.171  FAILED, KNOWN, expected -2.172\n    test 715 GeoidKarney('egm2008-1.pgm').height(-0.179, -126.368) kind 2: -17.411\n    test 716 GeoidKarney('egm2008-1.pgm').height(1.586, -128.887) kind 2: -16.426  FAILED, KNOWN, expected -16.425\n    test 717 GeoidKarney('egm2008-1.pgm').height(-48.781, -2.684) kind 2: 24.699  FAILED, KNOWN, expected 24.698\n    test 718 GeoidKarney('egm2008-1.pgm').height(-49.092, 136.862) kind 2: -18.328  FAILED, KNOWN, expected -18.329\n    test 719 GeoidKarney('egm2008-1.pgm').height(47.732, 17.552) kind 2: 43.802\n    test 720 GeoidKarney('egm2008-1.pgm').height(-49.11, 85.706) kind 2: 18.716\n    test 721 GeoidKarney('egm2008-1.pgm').height(-49.162, 40.321) kind 2: 44.468  FAILED, KNOWN, expected 44.469\n    test 722 GeoidKarney('egm2008-1.pgm').height(3.498, 158.118) kind 2: 49.943  FAILED, KNOWN, expected 49.944\n    test 723 GeoidKarney('egm2008-1.pgm').height(-35.616, 122.648) kind 2: -35.878\n    test 724 GeoidKarney('egm2008-1.pgm').height(56.598, -96.114) kind 2: -40.777\n    test 725 GeoidKarney('egm2008-1.pgm').height(-31.85, 149.121) kind 2: 26.560  FAILED, KNOWN, expected 26.559\n    test 726 GeoidKarney('egm2008-1.pgm').height(-26.569, -177.792) kind 2: 49.361\n    test 727 GeoidKarney('egm2008-1.pgm').height(76.735, -65.753) kind 2: 21.106  FAILED, KNOWN, expected 21.107\n    test 728 GeoidKarney('egm2008-1.pgm').height(-21.404, -122.268) kind 2: -7.202\n    test 729 GeoidKarney('egm2008-1.pgm').height(-77.133, -65.474) kind 2: -17.168\n    test 730 GeoidKarney('egm2008-1.pgm').height(-58.812, 2.276) kind 2: 18.359\n    test 731 GeoidKarney('egm2008-1.pgm').height(4.415, 155.683) kind 2: 52.118\n    test 732 GeoidKarney('egm2008-1.pgm').height(-28.146, 107.081) kind 2: -38.949  FAILED, KNOWN, expected -38.950\n    test 733 GeoidKarney('egm2008-1.pgm').height(-10.551, -126.69) kind 2: -9.935  FAILED, KNOWN, expected -9.934\n    test 734 GeoidKarney('egm2008-1.pgm').height(-25.444, -103.337) kind 2: -2.879\n    test 735 GeoidKarney('egm2008-1.pgm').height(24.436, 46.159) kind 2: -5.025\n    test 736 GeoidKarney('egm2008-1.pgm').height(-72.889, 37.107) kind 2: 24.296\n    test 737 GeoidKarney('egm2008-1.pgm').height(-19.629, 13.245) kind 2: 25.131\n    test 738 GeoidKarney('egm2008-1.pgm').height(-7.602, 171.265) kind 2: 40.720  FAILED, KNOWN, expected 40.721\n    test 739 GeoidKarney('egm2008-1.pgm').height(-45.364, -1.876) kind 2: 22.388\n    test 740 GeoidKarney('egm2008-1.pgm').height(-7.292, -69.18) kind 2: 22.485  FAILED, KNOWN, expected 22.486\n    test 741 GeoidKarney('egm2008-1.pgm').height(-31.566, -166.689) kind 2: 14.942  FAILED, KNOWN, expected 14.943\n    test 742 GeoidKarney('egm2008-1.pgm').height(-82.751, -162.085) kind 2: -47.387\n    test 743 GeoidKarney('egm2008-1.pgm').height(-40.7, 99.466) kind 2: -18.404  FAILED, KNOWN, expected -18.403\n    test 744 GeoidKarney('egm2008-1.pgm').height(48.676, 39.69) kind 2: 10.186  FAILED, KNOWN, expected 10.185\n    test 745 GeoidKarney('egm2008-1.pgm').height(74.817, -78.404) kind 2: 5.671\n    test 746 GeoidKarney('egm2008-1.pgm').height(-81.032, -63.865) kind 2: -24.577\n    test 747 GeoidKarney('egm2008-1.pgm').height(74.022, 9.432) kind 2: 43.288\n    test 748 GeoidKarney('egm2008-1.pgm').height(-75.071, 17.579) kind 2: 13.747  FAILED, KNOWN, expected 13.748\n    test 749 GeoidKarney('egm2008-1.pgm').height(-12.546, -54.851) kind 2: -5.342\n    test 750 GeoidKarney('egm2008-1.pgm').height(-13.621, 42.408) kind 2: -25.579\n    test 751 GeoidKarney('egm2008-1.pgm').height(-2.266, -91.951) kind 2: -9.849\n    test 752 GeoidKarney('egm2008-1.pgm').height(-18.672, 42.547) kind 2: -10.491\n    test 753 GeoidKarney('egm2008-1.pgm').height(-41.44, 157.413) kind 2: 0.243  FAILED, KNOWN, expected 0.244\n    test 754 GeoidKarney('egm2008-1.pgm').height(53.686, -79.375) kind 2: -43.820  FAILED, KNOWN, expected -43.821\n    test 755 GeoidKarney('egm2008-1.pgm').height(39.26, -30.351) kind 2: 57.400  FAILED, KNOWN, expected 57.401\n    test 756 GeoidKarney('egm2008-1.pgm').height(-51.699, -141.493) kind 2: -17.889  FAILED, KNOWN, expected -17.890\n    test 757 GeoidKarney('egm2008-1.pgm').height(36.585, 4.515) kind 2: 46.422  FAILED, KNOWN, expected 46.421\n    test 758 GeoidKarney('egm2008-1.pgm').height(39.642, -54.659) kind 2: -14.475\n    test 759 GeoidKarney('egm2008-1.pgm').height(59.761, 166.567) kind 2: 11.119  FAILED, KNOWN, expected 11.118\n    test 760 GeoidKarney('egm2008-1.pgm').height(51.83, 13.357) kind 2: 42.291\n    test 761 GeoidKarney('egm2008-1.pgm').height(-36.531, -175.431) kind 2: 22.327  FAILED, KNOWN, expected 22.326\n    test 762 GeoidKarney('egm2008-1.pgm').height(-37.08, 125.264) kind 2: -33.098\n    test 763 GeoidKarney('egm2008-1.pgm').height(-68.651, 92.732) kind 2: 9.431  FAILED, KNOWN, expected 9.430\n    test 764 GeoidKarney('egm2008-1.pgm').height(35.087, 45.336) kind 2: 6.032\n    test 765 GeoidKarney('egm2008-1.pgm').height(-61.356, -169.379) kind 2: -44.330\n    test 766 GeoidKarney('egm2008-1.pgm').height(-36.955, 179.12) kind 2: 21.775\n    test 767 GeoidKarney('egm2008-1.pgm').height(10.248, -6.714) kind 2: 29.243\n    test 768 GeoidKarney('egm2008-1.pgm').height(36.868, 84.602) kind 2: -40.677  FAILED, KNOWN, expected -40.676\n    test 769 GeoidKarney('egm2008-1.pgm').height(28.637, 88.933) kind 2: -31.353\n    test 770 GeoidKarney('egm2008-1.pgm').height(54.811, -99.968) kind 2: -32.700  FAILED, KNOWN, expected -32.701\n    test 771 GeoidKarney('egm2008-1.pgm').height(7.611, 145.911) kind 2: 60.628  FAILED, KNOWN, expected 60.629\n    test 772 GeoidKarney('egm2008-1.pgm').height(59.412, 170.102) kind 2: 6.617\n    test 773 GeoidKarney('egm2008-1.pgm').height(-61.469, 126.144) kind 2: -31.888  FAILED, KNOWN, expected -31.887\n    test 774 GeoidKarney('egm2008-1.pgm').height(18.514, -137.083) kind 2: -26.536  FAILED, KNOWN, expected -26.535\n    test 775 GeoidKarney('egm2008-1.pgm').height(7.854, -126.799) kind 2: -29.631  FAILED, KNOWN, expected -29.630\n    test 776 GeoidKarney('egm2008-1.pgm').height(47.489, 134.183) kind 2: 22.274  FAILED, KNOWN, expected 22.275\n    test 777 GeoidKarney('egm2008-1.pgm').height(-34.144, -11.922) kind 2: 17.095  FAILED, KNOWN, expected 17.094\n    test 778 GeoidKarney('egm2008-1.pgm').height(-58.389, 117.458) kind 2: -20.940  FAILED, KNOWN, expected -20.941\n    test 779 GeoidKarney('egm2008-1.pgm').height(9.773, 95.846) kind 2: -42.740\n    test 780 GeoidKarney('egm2008-1.pgm').height(-53.12, 136.994) kind 2: -21.651\n    test 781 GeoidKarney('egm2008-1.pgm').height(-50.35, 0.075) kind 2: 25.240\n    test 782 GeoidKarney('egm2008-1.pgm').height(31.438, -170.879) kind 2: -8.758\n    test 783 GeoidKarney('egm2008-1.pgm').height(37.541, -153.024) kind 2: -19.606  FAILED, KNOWN, expected -19.607\n    test 784 GeoidKarney('egm2008-1.pgm').height(27.586, 2.444) kind 2: 26.258\n    test 785 GeoidKarney('egm2008-1.pgm').height(-26.139, -106.201) kind 2: -3.824\n    test 786 GeoidKarney('egm2008-1.pgm').height(-33.426, -14.84) kind 2: 18.194  FAILED, KNOWN, expected 18.195\n    test 787 GeoidKarney('egm2008-1.pgm').height(39.586, -153.019) kind 2: -17.724  FAILED, KNOWN, expected -17.725\n    test 788 GeoidKarney('egm2008-1.pgm').height(-60.79, -2.578) kind 2: 14.511  FAILED, KNOWN, expected 14.513\n    test 789 GeoidKarney('egm2008-1.pgm').height(-20.131, 21.975) kind 2: 16.808  FAILED, KNOWN, expected 16.809\n    test 790 GeoidKarney('egm2008-1.pgm').height(75.649, 99.921) kind 2: -8.025  FAILED, KNOWN, expected -8.026\n    test 791 GeoidKarney('egm2008-1.pgm').height(-0.385, -23.788) kind 2: 9.688\n    test 792 GeoidKarney('egm2008-1.pgm').height(-51.56, -50.327) kind 2: 6.218\n    test 793 GeoidKarney('egm2008-1.pgm').height(-43.129, -167.271) kind 2: -2.725  FAILED, KNOWN, expected -2.724\n    test 794 GeoidKarney('egm2008-1.pgm').height(46.374, 71.948) kind 2: -42.566  FAILED, KNOWN, expected -42.565\n    test 795 GeoidKarney('egm2008-1.pgm').height(-22.783, 140.657) kind 2: 38.341\n    test 796 GeoidKarney('egm2008-1.pgm').height(-12.056, 122.804) kind 2: 33.888  FAILED, KNOWN, expected 33.889\n    test 797 GeoidKarney('egm2008-1.pgm').height(30.127, 94.738) kind 2: -37.382  FAILED, KNOWN, expected -37.380\n    test 798 GeoidKarney('egm2008-1.pgm').height(46.296, -174.479) kind 2: -1.857  FAILED, KNOWN, expected -1.858\n    test 799 GeoidKarney('egm2008-1.pgm').height(34.99, 15.052) kind 2: 34.196  FAILED, KNOWN, expected 34.195\n    test 800 GeoidKarney('egm2008-1.pgm').height(-51.287, 90.565) kind 2: 12.767\n    test 801 GeoidKarney('egm2008-1.pgm').height(34.217, 141.302) kind 2: 15.612\n    test 802 GeoidKarney('egm2008-1.pgm').height(-40.423, -142.787) kind 2: -11.063\n    test 803 GeoidKarney('egm2008-1.pgm').height(-17.854, -170.216) kind 2: 27.387\n    test 804 GeoidKarney('egm2008-1.pgm').height(47.803, 112.701) kind 2: -23.817\n    test 805 GeoidKarney('egm2008-1.pgm').height(-23.276, 133.454) kind 2: 18.713  FAILED, KNOWN, expected 18.712\n    test 806 GeoidKarney('egm2008-1.pgm').height(-26.884, -36.571) kind 2: -7.343  FAILED, KNOWN, expected -7.344\n    test 807 GeoidKarney('egm2008-1.pgm').height(-37.106, 31.128) kind 2: 29.997  FAILED, KNOWN, expected 29.998\n    test 808 GeoidKarney('egm2008-1.pgm').height(-75.363, -173.674) kind 2: -61.869\n    test 809 GeoidKarney('egm2008-1.pgm').height(-18.305, 69.016) kind 2: -24.937\n    test 810 GeoidKarney('egm2008-1.pgm').height(39.527, 23.58) kind 2: 38.558  FAILED, KNOWN, expected 38.556\n    test 811 GeoidKarney('egm2008-1.pgm').height(68.903, 30.97) kind 2: 19.672  FAILED, KNOWN, expected 19.671\n    test 812 GeoidKarney('egm2008-1.pgm').height(53.937, 168.318) kind 2: 2.273  FAILED, KNOWN, expected 2.272\n    test 813 GeoidKarney('egm2008-1.pgm').height(-38.6, 64.812) kind 2: 24.863\n    test 814 GeoidKarney('egm2008-1.pgm').height(-41.396, -69.739) kind 2: 21.637  FAILED, KNOWN, expected 21.636\n    test 815 GeoidKarney('egm2008-1.pgm').height(50.158, 72.319) kind 2: -33.851\n    test 816 GeoidKarney('egm2008-1.pgm').height(27.692, 176.153) kind 2: -5.299\n    test 817 GeoidKarney('egm2008-1.pgm').height(-48.419, 170.454) kind 2: -6.789\n    test 818 GeoidKarney('egm2008-1.pgm').height(-65.346, -124.976) kind 2: -35.030\n    test 819 GeoidKarney('egm2008-1.pgm').height(-51.873, 167.266) kind 2: -15.338\n    test 820 GeoidKarney('egm2008-1.pgm').height(-7.263, 84.308) kind 2: -79.356\n    test 821 GeoidKarney('egm2008-1.pgm').height(-1.461, -105.458) kind 2: -16.650\n    test 822 GeoidKarney('egm2008-1.pgm').height(7.684, 161.873) kind 2: 36.358  FAILED, KNOWN, expected 36.359\n    test 823 GeoidKarney('egm2008-1.pgm').height(-31.475, -158.52) kind 2: 3.614  FAILED, KNOWN, expected 3.615\n    test 824 GeoidKarney('egm2008-1.pgm').height(-36.187, 62.917) kind 2: 23.946  FAILED, KNOWN, expected 23.947\n    test 825 GeoidKarney('egm2008-1.pgm').height(16.003, 141.687) kind 2: 51.495\n    test 826 GeoidKarney('egm2008-1.pgm').height(30.182, 86.261) kind 2: -30.909  FAILED, KNOWN, expected -30.910\n    test 827 GeoidKarney('egm2008-1.pgm').height(-77.304, 159.498) kind 2: -52.131\n    test 828 GeoidKarney('egm2008-1.pgm').height(39.536, 139.795) kind 2: 37.046  FAILED, KNOWN, expected 37.045\n    test 829 GeoidKarney('egm2008-1.pgm').height(8.569, 134.618) kind 2: 64.181  FAILED, KNOWN, expected 64.180\n    test 830 GeoidKarney('egm2008-1.pgm').height(14.473, 90.596) kind 2: -62.475\n    test 831 GeoidKarney('egm2008-1.pgm').height(-13.138, -99.589) kind 2: -8.454\n    test 832 GeoidKarney('egm2008-1.pgm').height(34.212, -26.307) kind 2: 40.834\n    test 833 GeoidKarney('egm2008-1.pgm').height(21.89, 76.371) kind 2: -60.456  FAILED, KNOWN, expected -60.455\n    test 834 GeoidKarney('egm2008-1.pgm').height(29.793, 120.487) kind 2: 9.727\n    test 835 GeoidKarney('egm2008-1.pgm').height(15.724, 122.714) kind 2: 32.143  FAILED, KNOWN, expected 32.142\n    test 836 GeoidKarney('egm2008-1.pgm').height(-66.208, -78.499) kind 2: -6.221  FAILED, KNOWN, expected -6.220\n    test 837 GeoidKarney('egm2008-1.pgm').height(-39.507, 55.809) kind 2: 32.489\n    test 838 GeoidKarney('egm2008-1.pgm').height(28.159, 51.476) kind 2: -24.692\n    test 839 GeoidKarney('egm2008-1.pgm').height(-36.207, 120.205) kind 2: -38.748  FAILED, KNOWN, expected -38.749\n    test 840 GeoidKarney('egm2008-1.pgm').height(30.575, -99.998) kind 2: -23.254  FAILED, KNOWN, expected -23.255\n    test 841 GeoidKarney('egm2008-1.pgm').height(-16.993, 37.136) kind 2: -13.454  FAILED, KNOWN, expected -13.455\n    test 842 GeoidKarney('egm2008-1.pgm').height(-11.477, 12.039) kind 2: 16.627\n    test 843 GeoidKarney('egm2008-1.pgm').height(30.428, -144.765) kind 2: -22.221\n    test 844 GeoidKarney('egm2008-1.pgm').height(-17.44, -92.424) kind 2: -4.836\n    test 845 GeoidKarney('egm2008-1.pgm').height(40.203, 143.43) kind 2: 19.571\n    test 846 GeoidKarney('egm2008-1.pgm').height(-37.098, -106.574) kind 2: -9.227\n    test 847 GeoidKarney('egm2008-1.pgm').height(54.62, -68.413) kind 2: -23.248\n    test 848 GeoidKarney('egm2008-1.pgm').height(-31.633, 148.182) kind 2: 24.829\n    test 849 GeoidKarney('egm2008-1.pgm').height(-56.07, -141.407) kind 2: -21.706  FAILED, KNOWN, expected -21.705\n    test 850 GeoidKarney('egm2008-1.pgm').height(-8.195, -52.691) kind 2: -17.054  FAILED, KNOWN, expected -17.053\n    test 851 GeoidKarney('egm2008-1.pgm').height(17.851, 24.749) kind 2: 11.716\n    test 852 GeoidKarney('egm2008-1.pgm').height(0.349, -108.333) kind 2: -19.529  FAILED, KNOWN, expected -19.530\n    test 853 GeoidKarney('egm2008-1.pgm').height(15.038, 126.191) kind 2: 45.929\n    test 854 GeoidKarney('egm2008-1.pgm').height(-21.111, -123.696) kind 2: -8.283\n    test 855 GeoidKarney('egm2008-1.pgm').height(30.947, 173.002) kind 2: -8.467\n    test 856 GeoidKarney('egm2008-1.pgm').height(-10.698, -144.091) kind 2: -1.829\n    test 857 GeoidKarney('egm2008-1.pgm').height(-29.412, 124.753) kind 2: -16.505  FAILED, KNOWN, expected -16.506\n    test 858 GeoidKarney('egm2008-1.pgm').height(38.224, -137.189) kind 2: -35.384\n    test 859 GeoidKarney('egm2008-1.pgm').height(36.064, -132.409) kind 2: -38.962  FAILED, KNOWN, expected -38.963\n    test 860 GeoidKarney('egm2008-1.pgm').height(29.975, 178.076) kind 2: -6.956\n    test 861 GeoidKarney('egm2008-1.pgm').height(-21.346, 169.26) kind 2: 51.006  FAILED, KNOWN, expected 51.005\n    test 862 GeoidKarney('egm2008-1.pgm').height(49.282, -152.934) kind 2: 1.193  FAILED, KNOWN, expected 1.192\n    test 863 GeoidKarney('egm2008-1.pgm').height(16.349, -99.962) kind 2: -15.038\n    test 864 GeoidKarney('egm2008-1.pgm').height(-14.293, -167.34) kind 2: 17.792  FAILED, KNOWN, expected 17.791\n    test 865 GeoidKarney('egm2008-1.pgm').height(47.166, -38.523) kind 2: 44.653  FAILED, KNOWN, expected 44.652\n    test 866 GeoidKarney('egm2008-1.pgm').height(-58.911, 114.347) kind 2: -17.972  FAILED, KNOWN, expected -17.971\n    test 867 GeoidKarney('egm2008-1.pgm').height(-9.055, 111.294) kind 2: 11.631\n    test 868 GeoidKarney('egm2008-1.pgm').height(18.391, 29.692) kind 2: 7.394\n    test 869 GeoidKarney('egm2008-1.pgm').height(-15.074, 22.153) kind 2: 7.932\n    test 870 GeoidKarney('egm2008-1.pgm').height(-4.235, 62.001) kind 2: -60.594  FAILED, KNOWN, expected -60.593\n    test 871 GeoidKarney('egm2008-1.pgm').height(15.171, -86.583) kind 2: 4.382  FAILED, KNOWN, expected 4.384\n    test 872 GeoidKarney('egm2008-1.pgm').height(79.254, 112.116) kind 2: 1.296  FAILED, KNOWN, expected 1.297\n    test 873 GeoidKarney('egm2008-1.pgm').height(15.947, 156.093) kind 2: 30.852\n    test 874 GeoidKarney('egm2008-1.pgm').height(68.371, -177.382) kind 2: 2.705  FAILED, KNOWN, expected 2.704\n    test 875 GeoidKarney('egm2008-1.pgm').height(-41.931, -72.093) kind 2: 21.263  FAILED, KNOWN, expected 21.264\n    test 876 GeoidKarney('egm2008-1.pgm').height(-1.193, -143.133) kind 2: 5.443\n    test 877 GeoidKarney('egm2008-1.pgm').height(-37.006, 154.513) kind 2: 9.998\n    test 878 GeoidKarney('egm2008-1.pgm').height(-22.148, 9.938) kind 2: 22.428\n    test 879 GeoidKarney('egm2008-1.pgm').height(24.329, 109.044) kind 2: -23.156  FAILED, KNOWN, expected -23.154\n    test 880 GeoidKarney('egm2008-1.pgm').height(-54.878, 114.691) kind 2: -17.662\n    test 881 GeoidKarney('egm2008-1.pgm').height(45.601, -80.458) kind 2: -36.840  FAILED, KNOWN, expected -36.839\n    test 882 GeoidKarney('egm2008-1.pgm').height(2.372, 58.974) kind 2: -61.220  FAILED, KNOWN, expected -61.221\n    test 883 GeoidKarney('egm2008-1.pgm').height(15.937, 165.854) kind 2: 20.355\n    test 884 GeoidKarney('egm2008-1.pgm').height(4.889, -24.213) kind 2: 13.147\n    test 885 GeoidKarney('egm2008-1.pgm').height(-11.392, 179.558) kind 2: 41.072\n    test 886 GeoidKarney('egm2008-1.pgm').height(58.246, 4.862) kind 2: 42.982\n    test 887 GeoidKarney('egm2008-1.pgm').height(34.302, -109.109) kind 2: -22.997  FAILED, KNOWN, expected -22.998\n    test 888 GeoidKarney('egm2008-1.pgm').height(-58.196, 117.306) kind 2: -20.662\n    test 889 GeoidKarney('egm2008-1.pgm').height(44.5, 173.769) kind 2: -8.438\n    test 890 GeoidKarney('egm2008-1.pgm').height(-28.863, -139.775) kind 2: -8.711  FAILED, KNOWN, expected -8.712\n    test 891 GeoidKarney('egm2008-1.pgm').height(19.507, -96.099) kind 2: -12.654  FAILED, KNOWN, expected -12.653\n    test 892 GeoidKarney('egm2008-1.pgm').height(-42.488, -73.907) kind 2: 17.163  FAILED, KNOWN, expected 17.166\n    test 893 GeoidKarney('egm2008-1.pgm').height(46.138, -141.429) kind 2: -19.873  FAILED, KNOWN, expected -19.874\n    test 894 GeoidKarney('egm2008-1.pgm').height(60.507, 93.743) kind 2: -31.124\n    test 895 GeoidKarney('egm2008-1.pgm').height(26.219, -145.434) kind 2: -17.307\n    test 896 GeoidKarney('egm2008-1.pgm').height(-28.687, 3.37) kind 2: 23.437  FAILED, KNOWN, expected 23.434\n    test 897 GeoidKarney('egm2008-1.pgm').height(-15.008, 117.45) kind 2: 4.508\n    test 898 GeoidKarney('egm2008-1.pgm').height(40.71, 144.095) kind 2: 11.550  FAILED, KNOWN, expected 11.549\n    test 899 GeoidKarney('egm2008-1.pgm').height(20.823, -173.611) kind 2: 5.749  FAILED, KNOWN, expected 5.748\n    test 900 GeoidKarney('egm2008-1.pgm').height(16.776, -3.009) kind 2: 28.788\n    test 901 GeoidKarney('egm2008-1.pgm').height(41.0, -95.0) kind 2: -30.588  FAILED, KNOWN, expected -30.589\n    test 902 GeoidKarney('egm2008-1.pgm').height(49.0, -120.5) kind 2: -15.273\n    test 903 GeoidKarney('egm2008-1.pgm').height(49.0, -103.5) kind 2: -18.624\n    test 904 GeoidKarney('egm2008-1.pgm').height(49.0, -86.5) kind 2: -37.872  FAILED, KNOWN, expected -37.873\n    test 905 GeoidKarney('egm2008-1.pgm').height(49.0, -69.5) kind 2: -26.511\n    test 906 GeoidKarney('egm2008-1.pgm').height(33.0, -120.5) kind 2: -39.600\n    test 907 GeoidKarney('egm2008-1.pgm').height(33.0, -103.5) kind 2: -22.689\n    test 908 GeoidKarney('egm2008-1.pgm').height(33.0, -86.5) kind 2: -30.066  FAILED, KNOWN, expected -30.067\n    test 909 GeoidKarney('egm2008-1.pgm').height(33.0, -69.5) kind 2: -48.093\n\n    test 910 GeoidKarney('egm2008-1.pgm').height() kind 2, hits 0, eps max (in 0 FAILED): 0.002537\n    test 911 GeoidKarney('egm2008-1.pgm').height() kind 2, hits 0, eps mean (of 210 total): 0.000543\n    test 912 GeoidKarney('egm2008-1.pgm').height() kind 2, hits 0, eps stdev (of 210 total): 0.000458\n    test 913 GeoidKarney('egm2008-1.pgm').highest(): -8.4, 147.367, 85.839\n    test 914 GeoidKarney('egm2008-1.pgm').lowerleft(): -90.0, -180.0, -30.15\n    test 915 GeoidKarney('egm2008-1.pgm').lowerright(): -90.0, 180.0, -30.15\n    test 916 GeoidKarney('egm2008-1.pgm').lowest(): 4.7, 78.767, -106.911\n    test 917 GeoidKarney('egm2008-1.pgm').upperleft(): 90.0, -180.0, 14.898\n    test 918 GeoidKarney('egm2008-1.pgm').upperright(): 90.0, 180.0, 14.898\n    test 919 GeoidKarney('egm2008-1.pgm').dtype: (\"'ushort'\",)\n    test 920 GeoidKarney('egm2008-1.pgm').knots: ('233301600',)\n    test 921 GeoidKarney('egm2008-1.pgm').mean: ('-1.317',)\n    test 922 GeoidKarney('egm2008-1.pgm').nBytes: ('None',)\n    test 923 GeoidKarney('egm2008-1.pgm').smooth: ('None',)\n    test 924 GeoidKarney('egm2008-1.pgm').stdev: ('29.244',)\n    test 925 GeoidKarney('egm2008-1.pgm')._g2ll2(180, 360): (180, 0.0)\n    test 926 GeoidKarney('egm2008-1.pgm')._ll2g2(180, 360): (180, 360)\n    test 927 GeoidKarney('egm2008-1.pgm')._swne: (-10.0, -100.0, 10.0, 100.0)\n    test 928 GeoidKarney('egm2008-1.pgm')._swne: (-10.0, -100.0, 10.0, 100.0)\n    test 929 GeoidKarney('egm2008-1.pgm').toStr: GeoidKarney('egm2008-1.pgm'): lowerleft(-90.0, -180.0, -30.15), upperright(90.0, 180.0, 14.898), center(0.0, 0.0, 17.226), highest(-8.4, 147.367, 85.839), lowest(4.7, 78.767, -106.911)\n\n    test 930 closed: True\n    test 931 copy(<class 'type'>): (<class 'pygeodesy.geoids.GeoidKarney'>, True)\n    test 932 GeoidKarney.copy(): (<class 'pygeodesy.geoids.GeoidKarney'>, True)\n    test 933 GeoidKarney('egm2008-1.pgm').height(-76.981, 34.17) kind 3: 12.637  FAILED, KNOWN, expected 12.636\n    test 934 GeoidKarney('egm2008-1.pgm').height(79.695, 88.806) kind 3: 0.749\n    test 935 GeoidKarney('egm2008-1.pgm').height(-15.245, 168.748) kind 3: 65.110  FAILED, KNOWN, expected 65.109\n    test 936 GeoidKarney('egm2008-1.pgm').height(-19.379, 15.855) kind 3: 24.889\n    test 937 GeoidKarney('egm2008-1.pgm').height(43.378, -130.552) kind 3: -29.556  FAILED, KNOWN, expected -29.557\n    test 938 GeoidKarney('egm2008-1.pgm').height(-16.075, 21.795) kind 3: 9.741  FAILED, KNOWN, expected 9.742\n    test 939 GeoidKarney('egm2008-1.pgm').height(-11.256, -73.75) kind 3: 30.060  FAILED, KNOWN, expected 30.059\n    test 940 GeoidKarney('egm2008-1.pgm').height(69.017, -15.921) kind 3: 60.690\n    test 941 GeoidKarney('egm2008-1.pgm').height(2.221, 139.739) kind 3: 69.134  FAILED, KNOWN, expected 69.133\n    test 942 GeoidKarney('egm2008-1.pgm').height(-9.097, 119.142) kind 3: 36.521  FAILED, KNOWN, expected 36.520\n    test 943 GeoidKarney('egm2008-1.pgm').height(-28.524, -22.192) kind 3: 6.801\n    test 944 GeoidKarney('egm2008-1.pgm').height(12.272, -136.424) kind 3: -20.652  FAILED, KNOWN, expected -20.651\n    test 945 GeoidKarney('egm2008-1.pgm').height(-15.203, -85.604) kind 3: -3.040\n    test 946 GeoidKarney('egm2008-1.pgm').height(-63.736, -77.17) kind 3: -1.329  FAILED, KNOWN, expected -1.328\n    test 947 GeoidKarney('egm2008-1.pgm').height(-48.771, -90.102) kind 3: -2.171  FAILED, KNOWN, expected -2.172\n    test 948 GeoidKarney('egm2008-1.pgm').height(-0.179, -126.368) kind 3: -17.411\n    test 949 GeoidKarney('egm2008-1.pgm').height(1.586, -128.887) kind 3: -16.426  FAILED, KNOWN, expected -16.425\n    test 950 GeoidKarney('egm2008-1.pgm').height(-48.781, -2.684) kind 3: 24.699  FAILED, KNOWN, expected 24.698\n    test 951 GeoidKarney('egm2008-1.pgm').height(-49.092, 136.862) kind 3: -18.328  FAILED, KNOWN, expected -18.329\n    test 952 GeoidKarney('egm2008-1.pgm').height(47.732, 17.552) kind 3: 43.802\n    test 953 GeoidKarney('egm2008-1.pgm').height(-49.11, 85.706) kind 3: 18.716\n    test 954 GeoidKarney('egm2008-1.pgm').height(-49.162, 40.321) kind 3: 44.468  FAILED, KNOWN, expected 44.469\n    test 955 GeoidKarney('egm2008-1.pgm').height(3.498, 158.118) kind 3: 49.943  FAILED, KNOWN, expected 49.944\n    test 956 GeoidKarney('egm2008-1.pgm').height(-35.616, 122.648) kind 3: -35.878\n    test 957 GeoidKarney('egm2008-1.pgm').height(56.598, -96.114) kind 3: -40.777\n    test 958 GeoidKarney('egm2008-1.pgm').height(-31.85, 149.121) kind 3: 26.559\n    test 959 GeoidKarney('egm2008-1.pgm').height(-26.569, -177.792) kind 3: 49.362  FAILED, KNOWN, expected 49.361\n    test 960 GeoidKarney('egm2008-1.pgm').height(76.735, -65.753) kind 3: 21.106  FAILED, KNOWN, expected 21.107\n    test 961 GeoidKarney('egm2008-1.pgm').height(-21.404, -122.268) kind 3: -7.203  FAILED, KNOWN, expected -7.202\n    test 962 GeoidKarney('egm2008-1.pgm').height(-77.133, -65.474) kind 3: -17.167  FAILED, KNOWN, expected -17.168\n    test 963 GeoidKarney('egm2008-1.pgm').height(-58.812, 2.276) kind 3: 18.359\n    test 964 GeoidKarney('egm2008-1.pgm').height(4.415, 155.683) kind 3: 52.117  FAILED, KNOWN, expected 52.118\n    test 965 GeoidKarney('egm2008-1.pgm').height(-28.146, 107.081) kind 3: -38.950\n    test 966 GeoidKarney('egm2008-1.pgm').height(-10.551, -126.69) kind 3: -9.935  FAILED, KNOWN, expected -9.934\n    test 967 GeoidKarney('egm2008-1.pgm').height(-25.444, -103.337) kind 3: -2.879\n    test 968 GeoidKarney('egm2008-1.pgm').height(24.436, 46.159) kind 3: -5.025\n    test 969 GeoidKarney('egm2008-1.pgm').height(-72.889, 37.107) kind 3: 24.296\n    test 970 GeoidKarney('egm2008-1.pgm').height(-19.629, 13.245) kind 3: 25.131\n    test 971 GeoidKarney('egm2008-1.pgm').height(-7.602, 171.265) kind 3: 40.720  FAILED, KNOWN, expected 40.721\n    test 972 GeoidKarney('egm2008-1.pgm').height(-45.364, -1.876) kind 3: 22.387  FAILED, KNOWN, expected 22.388\n    test 973 GeoidKarney('egm2008-1.pgm').height(-7.292, -69.18) kind 3: 22.485  FAILED, KNOWN, expected 22.486\n    test 974 GeoidKarney('egm2008-1.pgm').height(-31.566, -166.689) kind 3: 14.942  FAILED, KNOWN, expected 14.943\n    test 975 GeoidKarney('egm2008-1.pgm').height(-82.751, -162.085) kind 3: -47.387\n    test 976 GeoidKarney('egm2008-1.pgm').height(-40.7, 99.466) kind 3: -18.404  FAILED, KNOWN, expected -18.403\n    test 977 GeoidKarney('egm2008-1.pgm').height(48.676, 39.69) kind 3: 10.185\n    test 978 GeoidKarney('egm2008-1.pgm').height(74.817, -78.404) kind 3: 5.670  FAILED, KNOWN, expected 5.671\n    test 979 GeoidKarney('egm2008-1.pgm').height(-81.032, -63.865) kind 3: -24.577\n    test 980 GeoidKarney('egm2008-1.pgm').height(74.022, 9.432) kind 3: 43.288\n    test 981 GeoidKarney('egm2008-1.pgm').height(-75.071, 17.579) kind 3: 13.747  FAILED, KNOWN, expected 13.748\n    test 982 GeoidKarney('egm2008-1.pgm').height(-12.546, -54.851) kind 3: -5.342\n    test 983 GeoidKarney('egm2008-1.pgm').height(-13.621, 42.408) kind 3: -25.579\n    test 984 GeoidKarney('egm2008-1.pgm').height(-2.266, -91.951) kind 3: -9.849\n    test 985 GeoidKarney('egm2008-1.pgm').height(-18.672, 42.547) kind 3: -10.490  FAILED, KNOWN, expected -10.491\n    test 986 GeoidKarney('egm2008-1.pgm').height(-41.44, 157.413) kind 3: 0.243  FAILED, KNOWN, expected 0.244\n    test 987 GeoidKarney('egm2008-1.pgm').height(53.686, -79.375) kind 3: -43.820  FAILED, KNOWN, expected -43.821\n    test 988 GeoidKarney('egm2008-1.pgm').height(39.26, -30.351) kind 3: 57.401\n    test 989 GeoidKarney('egm2008-1.pgm').height(-51.699, -141.493) kind 3: -17.889  FAILED, KNOWN, expected -17.890\n    test 990 GeoidKarney('egm2008-1.pgm').height(36.585, 4.515) kind 3: 46.423  FAILED, KNOWN, expected 46.421\n    test 991 GeoidKarney('egm2008-1.pgm').height(39.642, -54.659) kind 3: -14.475\n    test 992 GeoidKarney('egm2008-1.pgm').height(59.761, 166.567) kind 3: 11.118\n    test 993 GeoidKarney('egm2008-1.pgm').height(51.83, 13.357) kind 3: 42.291\n    test 994 GeoidKarney('egm2008-1.pgm').height(-36.531, -175.431) kind 3: 22.327  FAILED, KNOWN, expected 22.326\n    test 995 GeoidKarney('egm2008-1.pgm').height(-37.08, 125.264) kind 3: -33.098\n    test 996 GeoidKarney('egm2008-1.pgm').height(-68.651, 92.732) kind 3: 9.431  FAILED, KNOWN, expected 9.430\n    test 997 GeoidKarney('egm2008-1.pgm').height(35.087, 45.336) kind 3: 6.032\n    test 998 GeoidKarney('egm2008-1.pgm').height(-61.356, -169.379) kind 3: -44.330\n    test 999 GeoidKarney('egm2008-1.pgm').height(-36.955, 179.12) kind 3: 21.775\n    test 1000 GeoidKarney('egm2008-1.pgm').height(10.248, -6.714) kind 3: 29.243\n    test 1001 GeoidKarney('egm2008-1.pgm').height(36.868, 84.602) kind 3: -40.677  FAILED, KNOWN, expected -40.676\n    test 1002 GeoidKarney('egm2008-1.pgm').height(28.637, 88.933) kind 3: -31.352  FAILED, KNOWN, expected -31.353\n    test 1003 GeoidKarney('egm2008-1.pgm').height(54.811, -99.968) kind 3: -32.700  FAILED, KNOWN, expected -32.701\n    test 1004 GeoidKarney('egm2008-1.pgm').height(7.611, 145.911) kind 3: 60.628  FAILED, KNOWN, expected 60.629\n    test 1005 GeoidKarney('egm2008-1.pgm').height(59.412, 170.102) kind 3: 6.617\n    test 1006 GeoidKarney('egm2008-1.pgm').height(-61.469, 126.144) kind 3: -31.887\n    test 1007 GeoidKarney('egm2008-1.pgm').height(18.514, -137.083) kind 3: -26.536  FAILED, KNOWN, expected -26.535\n    test 1008 GeoidKarney('egm2008-1.pgm').height(7.854, -126.799) kind 3: -29.631  FAILED, KNOWN, expected -29.630\n    test 1009 GeoidKarney('egm2008-1.pgm').height(47.489, 134.183) kind 3: 22.274  FAILED, KNOWN, expected 22.275\n    test 1010 GeoidKarney('egm2008-1.pgm').height(-34.144, -11.922) kind 3: 17.095  FAILED, KNOWN, expected 17.094\n    test 1011 GeoidKarney('egm2008-1.pgm').height(-58.389, 117.458) kind 3: -20.940  FAILED, KNOWN, expected -20.941\n    test 1012 GeoidKarney('egm2008-1.pgm').height(9.773, 95.846) kind 3: -42.740\n    test 1013 GeoidKarney('egm2008-1.pgm').height(-53.12, 136.994) kind 3: -21.651\n    test 1014 GeoidKarney('egm2008-1.pgm').height(-50.35, 0.075) kind 3: 25.240\n    test 1015 GeoidKarney('egm2008-1.pgm').height(31.438, -170.879) kind 3: -8.758\n    test 1016 GeoidKarney('egm2008-1.pgm').height(37.541, -153.024) kind 3: -19.606  FAILED, KNOWN, expected -19.607\n    test 1017 GeoidKarney('egm2008-1.pgm').height(27.586, 2.444) kind 3: 26.258\n    test 1018 GeoidKarney('egm2008-1.pgm').height(-26.139, -106.201) kind 3: -3.823  FAILED, KNOWN, expected -3.824\n    test 1019 GeoidKarney('egm2008-1.pgm').height(-33.426, -14.84) kind 3: 18.195\n    test 1020 GeoidKarney('egm2008-1.pgm').height(39.586, -153.019) kind 3: -17.724  FAILED, KNOWN, expected -17.725\n    test 1021 GeoidKarney('egm2008-1.pgm').height(-60.79, -2.578) kind 3: 14.512  FAILED, KNOWN, expected 14.513\n    test 1022 GeoidKarney('egm2008-1.pgm').height(-20.131, 21.975) kind 3: 16.808  FAILED, KNOWN, expected 16.809\n    test 1023 GeoidKarney('egm2008-1.pgm').height(75.649, 99.921) kind 3: -8.025  FAILED, KNOWN, expected -8.026\n    test 1024 GeoidKarney('egm2008-1.pgm').height(-0.385, -23.788) kind 3: 9.689  FAILED, KNOWN, expected 9.688\n    test 1025 GeoidKarney('egm2008-1.pgm').height(-51.56, -50.327) kind 3: 6.218\n    test 1026 GeoidKarney('egm2008-1.pgm').height(-43.129, -167.271) kind 3: -2.725  FAILED, KNOWN, expected -2.724\n    test 1027 GeoidKarney('egm2008-1.pgm').height(46.374, 71.948) kind 3: -42.566  FAILED, KNOWN, expected -42.565\n    test 1028 GeoidKarney('egm2008-1.pgm').height(-22.783, 140.657) kind 3: 38.342  FAILED, KNOWN, expected 38.341\n    test 1029 GeoidKarney('egm2008-1.pgm').height(-12.056, 122.804) kind 3: 33.888  FAILED, KNOWN, expected 33.889\n    test 1030 GeoidKarney('egm2008-1.pgm').height(30.127, 94.738) kind 3: -37.381  FAILED, KNOWN, expected -37.380\n    test 1031 GeoidKarney('egm2008-1.pgm').height(46.296, -174.479) kind 3: -1.857  FAILED, KNOWN, expected -1.858\n    test 1032 GeoidKarney('egm2008-1.pgm').height(34.99, 15.052) kind 3: 34.196  FAILED, KNOWN, expected 34.195\n    test 1033 GeoidKarney('egm2008-1.pgm').height(-51.287, 90.565) kind 3: 12.767\n    test 1034 GeoidKarney('egm2008-1.pgm').height(34.217, 141.302) kind 3: 15.612\n    test 1035 GeoidKarney('egm2008-1.pgm').height(-40.423, -142.787) kind 3: -11.063\n    test 1036 GeoidKarney('egm2008-1.pgm').height(-17.854, -170.216) kind 3: 27.386  FAILED, KNOWN, expected 27.387\n    test 1037 GeoidKarney('egm2008-1.pgm').height(47.803, 112.701) kind 3: -23.817\n    test 1038 GeoidKarney('egm2008-1.pgm').height(-23.276, 133.454) kind 3: 18.713  FAILED, KNOWN, expected 18.712\n    test 1039 GeoidKarney('egm2008-1.pgm').height(-26.884, -36.571) kind 3: -7.343  FAILED, KNOWN, expected -7.344\n    test 1040 GeoidKarney('egm2008-1.pgm').height(-37.106, 31.128) kind 3: 29.997  FAILED, KNOWN, expected 29.998\n    test 1041 GeoidKarney('egm2008-1.pgm').height(-75.363, -173.674) kind 3: -61.869\n    test 1042 GeoidKarney('egm2008-1.pgm').height(-18.305, 69.016) kind 3: -24.938  FAILED, KNOWN, expected -24.937\n    test 1043 GeoidKarney('egm2008-1.pgm').height(39.527, 23.58) kind 3: 38.557  FAILED, KNOWN, expected 38.556\n    test 1044 GeoidKarney('egm2008-1.pgm').height(68.903, 30.97) kind 3: 19.671\n    test 1045 GeoidKarney('egm2008-1.pgm').height(53.937, 168.318) kind 3: 2.273  FAILED, KNOWN, expected 2.272\n    test 1046 GeoidKarney('egm2008-1.pgm').height(-38.6, 64.812) kind 3: 24.863\n    test 1047 GeoidKarney('egm2008-1.pgm').height(-41.396, -69.739) kind 3: 21.636\n    test 1048 GeoidKarney('egm2008-1.pgm').height(50.158, 72.319) kind 3: -33.850  FAILED, KNOWN, expected -33.851\n    test 1049 GeoidKarney('egm2008-1.pgm').height(27.692, 176.153) kind 3: -5.299\n    test 1050 GeoidKarney('egm2008-1.pgm').height(-48.419, 170.454) kind 3: -6.789\n    test 1051 GeoidKarney('egm2008-1.pgm').height(-65.346, -124.976) kind 3: -35.030\n    test 1052 GeoidKarney('egm2008-1.pgm').height(-51.873, 167.266) kind 3: -15.338\n    test 1053 GeoidKarney('egm2008-1.pgm').height(-7.263, 84.308) kind 3: -79.356\n    test 1054 GeoidKarney('egm2008-1.pgm').height(-1.461, -105.458) kind 3: -16.649  FAILED, KNOWN, expected -16.650\n    test 1055 GeoidKarney('egm2008-1.pgm').height(7.684, 161.873) kind 3: 36.359\n    test 1056 GeoidKarney('egm2008-1.pgm').height(-31.475, -158.52) kind 3: 3.614  FAILED, KNOWN, expected 3.615\n    test 1057 GeoidKarney('egm2008-1.pgm').height(-36.187, 62.917) kind 3: 23.946  FAILED, KNOWN, expected 23.947\n    test 1058 GeoidKarney('egm2008-1.pgm').height(16.003, 141.687) kind 3: 51.494  FAILED, KNOWN, expected 51.495\n    test 1059 GeoidKarney('egm2008-1.pgm').height(30.182, 86.261) kind 3: -30.909  FAILED, KNOWN, expected -30.910\n    test 1060 GeoidKarney('egm2008-1.pgm').height(-77.304, 159.498) kind 3: -52.131\n    test 1061 GeoidKarney('egm2008-1.pgm').height(39.536, 139.795) kind 3: 37.046  FAILED, KNOWN, expected 37.045\n    test 1062 GeoidKarney('egm2008-1.pgm').height(8.569, 134.618) kind 3: 64.181  FAILED, KNOWN, expected 64.180\n    test 1063 GeoidKarney('egm2008-1.pgm').height(14.473, 90.596) kind 3: -62.475\n    test 1064 GeoidKarney('egm2008-1.pgm').height(-13.138, -99.589) kind 3: -8.454\n    test 1065 GeoidKarney('egm2008-1.pgm').height(34.212, -26.307) kind 3: 40.834\n    test 1066 GeoidKarney('egm2008-1.pgm').height(21.89, 76.371) kind 3: -60.455\n    test 1067 GeoidKarney('egm2008-1.pgm').height(29.793, 120.487) kind 3: 9.728  FAILED, KNOWN, expected 9.727\n    test 1068 GeoidKarney('egm2008-1.pgm').height(15.724, 122.714) kind 3: 32.141  FAILED, KNOWN, expected 32.142\n    test 1069 GeoidKarney('egm2008-1.pgm').height(-66.208, -78.499) kind 3: -6.221  FAILED, KNOWN, expected -6.220\n    test 1070 GeoidKarney('egm2008-1.pgm').height(-39.507, 55.809) kind 3: 32.488  FAILED, KNOWN, expected 32.489\n    test 1071 GeoidKarney('egm2008-1.pgm').height(28.159, 51.476) kind 3: -24.692\n    test 1072 GeoidKarney('egm2008-1.pgm').height(-36.207, 120.205) kind 3: -38.749\n    test 1073 GeoidKarney('egm2008-1.pgm').height(30.575, -99.998) kind 3: -23.254  FAILED, KNOWN, expected -23.255\n    test 1074 GeoidKarney('egm2008-1.pgm').height(-16.993, 37.136) kind 3: -13.454  FAILED, KNOWN, expected -13.455\n    test 1075 GeoidKarney('egm2008-1.pgm').height(-11.477, 12.039) kind 3: 16.627\n    test 1076 GeoidKarney('egm2008-1.pgm').height(30.428, -144.765) kind 3: -22.221\n    test 1077 GeoidKarney('egm2008-1.pgm').height(-17.44, -92.424) kind 3: -4.836\n    test 1078 GeoidKarney('egm2008-1.pgm').height(40.203, 143.43) kind 3: 19.571\n    test 1079 GeoidKarney('egm2008-1.pgm').height(-37.098, -106.574) kind 3: -9.227\n    test 1080 GeoidKarney('egm2008-1.pgm').height(54.62, -68.413) kind 3: -23.248\n    test 1081 GeoidKarney('egm2008-1.pgm').height(-31.633, 148.182) kind 3: 24.829\n    test 1082 GeoidKarney('egm2008-1.pgm').height(-56.07, -141.407) kind 3: -21.706  FAILED, KNOWN, expected -21.705\n    test 1083 GeoidKarney('egm2008-1.pgm').height(-8.195, -52.691) kind 3: -17.054  FAILED, KNOWN, expected -17.053\n    test 1084 GeoidKarney('egm2008-1.pgm').height(17.851, 24.749) kind 3: 11.715  FAILED, KNOWN, expected 11.716\n    test 1085 GeoidKarney('egm2008-1.pgm').height(0.349, -108.333) kind 3: -19.529  FAILED, KNOWN, expected -19.530\n    test 1086 GeoidKarney('egm2008-1.pgm').height(15.038, 126.191) kind 3: 45.929\n    test 1087 GeoidKarney('egm2008-1.pgm').height(-21.111, -123.696) kind 3: -8.283\n    test 1088 GeoidKarney('egm2008-1.pgm').height(30.947, 173.002) kind 3: -8.467\n    test 1089 GeoidKarney('egm2008-1.pgm').height(-10.698, -144.091) kind 3: -1.829\n    test 1090 GeoidKarney('egm2008-1.pgm').height(-29.412, 124.753) kind 3: -16.505  FAILED, KNOWN, expected -16.506\n    test 1091 GeoidKarney('egm2008-1.pgm').height(38.224, -137.189) kind 3: -35.384\n    test 1092 GeoidKarney('egm2008-1.pgm').height(36.064, -132.409) kind 3: -38.962  FAILED, KNOWN, expected -38.963\n    test 1093 GeoidKarney('egm2008-1.pgm').height(29.975, 178.076) kind 3: -6.956\n    test 1094 GeoidKarney('egm2008-1.pgm').height(-21.346, 169.26) kind 3: 51.006  FAILED, KNOWN, expected 51.005\n    test 1095 GeoidKarney('egm2008-1.pgm').height(49.282, -152.934) kind 3: 1.193  FAILED, KNOWN, expected 1.192\n    test 1096 GeoidKarney('egm2008-1.pgm').height(16.349, -99.962) kind 3: -15.038\n    test 1097 GeoidKarney('egm2008-1.pgm').height(-14.293, -167.34) kind 3: 17.791\n    test 1098 GeoidKarney('egm2008-1.pgm').height(47.166, -38.523) kind 3: 44.653  FAILED, KNOWN, expected 44.652\n    test 1099 GeoidKarney('egm2008-1.pgm').height(-58.911, 114.347) kind 3: -17.972  FAILED, KNOWN, expected -17.971\n    test 1100 GeoidKarney('egm2008-1.pgm').height(-9.055, 111.294) kind 3: 11.630  FAILED, KNOWN, expected 11.631\n    test 1101 GeoidKarney('egm2008-1.pgm').height(18.391, 29.692) kind 3: 7.394\n    test 1102 GeoidKarney('egm2008-1.pgm').height(-15.074, 22.153) kind 3: 7.932\n    test 1103 GeoidKarney('egm2008-1.pgm').height(-4.235, 62.001) kind 3: -60.594  FAILED, KNOWN, expected -60.593\n    test 1104 GeoidKarney('egm2008-1.pgm').height(15.171, -86.583) kind 3: 4.384\n    test 1105 GeoidKarney('egm2008-1.pgm').height(79.254, 112.116) kind 3: 1.296  FAILED, KNOWN, expected 1.297\n    test 1106 GeoidKarney('egm2008-1.pgm').height(15.947, 156.093) kind 3: 30.852\n    test 1107 GeoidKarney('egm2008-1.pgm').height(68.371, -177.382) kind 3: 2.705  FAILED, KNOWN, expected 2.704\n    test 1108 GeoidKarney('egm2008-1.pgm').height(-41.931, -72.093) kind 3: 21.264\n    test 1109 GeoidKarney('egm2008-1.pgm').height(-1.193, -143.133) kind 3: 5.443\n    test 1110 GeoidKarney('egm2008-1.pgm').height(-37.006, 154.513) kind 3: 9.998\n    test 1111 GeoidKarney('egm2008-1.pgm').height(-22.148, 9.938) kind 3: 22.428\n    test 1112 GeoidKarney('egm2008-1.pgm').height(24.329, 109.044) kind 3: -23.155  FAILED, KNOWN, expected -23.154\n    test 1113 GeoidKarney('egm2008-1.pgm').height(-54.878, 114.691) kind 3: -17.662\n    test 1114 GeoidKarney('egm2008-1.pgm').height(45.601, -80.458) kind 3: -36.840  FAILED, KNOWN, expected -36.839\n    test 1115 GeoidKarney('egm2008-1.pgm').height(2.372, 58.974) kind 3: -61.220  FAILED, KNOWN, expected -61.221\n    test 1116 GeoidKarney('egm2008-1.pgm').height(15.937, 165.854) kind 3: 20.355\n    test 1117 GeoidKarney('egm2008-1.pgm').height(4.889, -24.213) kind 3: 13.147\n    test 1118 GeoidKarney('egm2008-1.pgm').height(-11.392, 179.558) kind 3: 41.073  FAILED, KNOWN, expected 41.072\n    test 1119 GeoidKarney('egm2008-1.pgm').height(58.246, 4.862) kind 3: 42.982\n    test 1120 GeoidKarney('egm2008-1.pgm').height(34.302, -109.109) kind 3: -22.997  FAILED, KNOWN, expected -22.998\n    test 1121 GeoidKarney('egm2008-1.pgm').height(-58.196, 117.306) kind 3: -20.662\n    test 1122 GeoidKarney('egm2008-1.pgm').height(44.5, 173.769) kind 3: -8.438\n    test 1123 GeoidKarney('egm2008-1.pgm').height(-28.863, -139.775) kind 3: -8.711  FAILED, KNOWN, expected -8.712\n    test 1124 GeoidKarney('egm2008-1.pgm').height(19.507, -96.099) kind 3: -12.653\n    test 1125 GeoidKarney('egm2008-1.pgm').height(-42.488, -73.907) kind 3: 17.166\n    test 1126 GeoidKarney('egm2008-1.pgm').height(46.138, -141.429) kind 3: -19.873  FAILED, KNOWN, expected -19.874\n    test 1127 GeoidKarney('egm2008-1.pgm').height(60.507, 93.743) kind 3: -31.124\n    test 1128 GeoidKarney('egm2008-1.pgm').height(26.219, -145.434) kind 3: -17.306  FAILED, KNOWN, expected -17.307\n    test 1129 GeoidKarney('egm2008-1.pgm').height(-28.687, 3.37) kind 3: 23.435  FAILED, KNOWN, expected 23.434\n    test 1130 GeoidKarney('egm2008-1.pgm').height(-15.008, 117.45) kind 3: 4.508\n    test 1131 GeoidKarney('egm2008-1.pgm').height(40.71, 144.095) kind 3: 11.550  FAILED, KNOWN, expected 11.549\n    test 1132 GeoidKarney('egm2008-1.pgm').height(20.823, -173.611) kind 3: 5.749  FAILED, KNOWN, expected 5.748\n    test 1133 GeoidKarney('egm2008-1.pgm').height(16.776, -3.009) kind 3: 28.788\n    test 1134 GeoidKarney('egm2008-1.pgm').height(41.0, -95.0) kind 3: -30.589\n    test 1135 GeoidKarney('egm2008-1.pgm').height(49.0, -120.5) kind 3: -15.273\n    test 1136 GeoidKarney('egm2008-1.pgm').height(49.0, -103.5) kind 3: -18.624\n    test 1137 GeoidKarney('egm2008-1.pgm').height(49.0, -86.5) kind 3: -37.872  FAILED, KNOWN, expected -37.873\n    test 1138 GeoidKarney('egm2008-1.pgm').height(49.0, -69.5) kind 3: -26.511\n    test 1139 GeoidKarney('egm2008-1.pgm').height(33.0, -120.5) kind 3: -39.600\n    test 1140 GeoidKarney('egm2008-1.pgm').height(33.0, -103.5) kind 3: -22.689\n    test 1141 GeoidKarney('egm2008-1.pgm').height(33.0, -86.5) kind 3: -30.067\n    test 1142 GeoidKarney('egm2008-1.pgm').height(33.0, -69.5) kind 3: -48.093\n\n    test 1143 GeoidKarney('egm2008-1.pgm').height() kind 3, hits 0, eps max (in 0 FAILED): 0.001323\n    test 1144 GeoidKarney('egm2008-1.pgm').height() kind 3, hits 0, eps mean (of 210 total): 0.000468\n    test 1145 GeoidKarney('egm2008-1.pgm').height() kind 3, hits 0, eps stdev (of 210 total): 0.000333\n    test 1146 GeoidKarney('egm2008-1.pgm').highest(): -8.4, 147.367, 85.839\n    test 1147 GeoidKarney('egm2008-1.pgm').lowerleft(): -90.0, -180.0, -30.15\n    test 1148 GeoidKarney('egm2008-1.pgm').lowerright(): -90.0, 180.0, -30.15\n    test 1149 GeoidKarney('egm2008-1.pgm').lowest(): 4.7, 78.767, -106.911\n    test 1150 GeoidKarney('egm2008-1.pgm').upperleft(): 90.0, -180.0, 14.898\n    test 1151 GeoidKarney('egm2008-1.pgm').upperright(): 90.0, 180.0, 14.898\n    test 1152 GeoidKarney('egm2008-1.pgm').dtype: (\"'ushort'\",)\n    test 1153 GeoidKarney('egm2008-1.pgm').knots: ('233301600',)\n    test 1154 GeoidKarney('egm2008-1.pgm').mean: ('-1.317',)\n    test 1155 GeoidKarney('egm2008-1.pgm').nBytes: ('None',)\n    test 1156 GeoidKarney('egm2008-1.pgm').smooth: ('None',)\n    test 1157 GeoidKarney('egm2008-1.pgm').stdev: ('29.244',)\n    test 1158 GeoidKarney('egm2008-1.pgm')._g2ll2(180, 360): (180, 0.0)\n    test 1159 GeoidKarney('egm2008-1.pgm')._ll2g2(180, 360): (180, 360)\n    test 1160 GeoidKarney('egm2008-1.pgm')._swne: (-10.0, -100.0, 10.0, 100.0)\n    test 1161 GeoidKarney('egm2008-1.pgm')._swne: (-10.0, -100.0, 10.0, 100.0)\n    test 1162 GeoidKarney('egm2008-1.pgm').toStr: GeoidKarney('egm2008-1.pgm'): lowerleft(-90.0, -180.0, -30.15), upperright(90.0, 180.0, 14.898), center(0.0, 0.0, 17.226), highest(-8.4, 147.367, 85.839), lowest(4.7, 78.767, -106.911)\n\n    test 1163 closed: True\n    test 1164 copy(<class 'type'>): (<class 'pygeodesy.geoids.GeoidKarney'>, True)\n    test 1165 GeoidKarney.copy(): (<class 'pygeodesy.geoids.GeoidKarney'>, True)\n    test 1166 GeoidPGM('egm2008-1.pgm').height(-76.981, 34.17) kind 3: lli ('-76.981466, 34.17016'), H (False) or wrap (False): lli ('-76.981466, 34.17016'): outside on SE  FAILED, KNOWN, expected 12.636\n    test 1167 GeoidPGM('egm2008-1.pgm').height(79.695, 88.806) kind 3: lli ('79.695484, 88.805571'), H (False) or wrap (False): lli ('79.695484, 88.805571'): outside on NE  FAILED, KNOWN, expected 0.749\n    test 1168 GeoidPGM('egm2008-1.pgm').height(-15.245, 168.748) kind 3: lli ('-15.244804, 168.747961'), H (False) or wrap (False): lli ('-15.244804, 168.747961'): outside on SE  FAILED, KNOWN, expected 65.109\n    test 1169 GeoidPGM('egm2008-1.pgm').height(-19.379, 15.855) kind 3: lli ('-19.379357, 15.85511'), H (False) or wrap (False): lli ('-19.379357, 15.85511'): outside on SE  FAILED, KNOWN, expected 24.889\n    test 1170 GeoidPGM('egm2008-1.pgm').height(43.378, -130.552) kind 3: lli ('43.377784, -130.551582'), H (False) or wrap (False): lli ('43.377784, -130.551582'): outside on W  FAILED, KNOWN, expected -29.557\n    test 1171 GeoidPGM('egm2008-1.pgm').height(-16.075, 21.795) kind 3: lli ('-16.074554, 21.79547'), H (False) or wrap (False): lli ('-16.074554, 21.79547'): outside on SE  FAILED, KNOWN, expected 9.742\n    test 1172 GeoidPGM('egm2008-1.pgm').height(-11.256, -73.75) kind 3: lli ('-11.256389, -73.750255'), H (False) or wrap (False): lli ('-11.256389, -73.750255'): outside on S  FAILED, KNOWN, expected 30.059\n    test 1173 GeoidPGM('egm2008-1.pgm').height(69.017, -15.921) kind 3: lli ('69.016564, -15.921115'), H (False) or wrap (False): lli ('69.016564, -15.921115'): outside on NE  FAILED, KNOWN, expected 60.690\n    test 1174 GeoidPGM('egm2008-1.pgm').height(2.221, 139.739) kind 3: lli ('2.221008, 139.73935'), H (False) or wrap (False): lli ('2.221008, 139.73935'): outside on SE  FAILED, KNOWN, expected 69.133\n    test 1175 GeoidPGM('egm2008-1.pgm').height(-9.097, 119.142) kind 3: lli ('-9.096878, 119.141551'), H (False) or wrap (False): lli ('-9.096878, 119.141551'): outside on SE  FAILED, KNOWN, expected 36.520\n    test 1176 GeoidPGM('egm2008-1.pgm').height(-28.524, -22.192) kind 3: lli ('-28.523717, -22.1925'), H (False) or wrap (False): lli ('-28.523717, -22.1925'): outside on SE  FAILED, KNOWN, expected 6.801\n    test 1177 GeoidPGM('egm2008-1.pgm').height(12.272, -136.424) kind 3: lli ('12.27231, -136.424168'), H (False) or wrap (False): lli ('12.27231, -136.424168'): outside on SW  FAILED, KNOWN, expected -20.651\n    test 1178 GeoidPGM('egm2008-1.pgm').height(-15.203, -85.604) kind 3: lli ('-15.20317, -85.603753'), H (False) or wrap (False): lli ('-15.20317, -85.603753'): outside on S  FAILED, KNOWN, expected -3.040\n    test 1179 GeoidPGM('egm2008-1.pgm').height(-63.736, -77.17) kind 3: lli ('-63.735565, -77.169636'), H (False) or wrap (False): lli ('-63.735565, -77.169636'): outside on S  FAILED, KNOWN, expected -1.328\n    test 1180 GeoidPGM('egm2008-1.pgm').height(-48.771, -90.102) kind 3: lli ('-48.770825, -90.102117'), H (False) or wrap (False): lli ('-48.770825, -90.102117'): outside on S  FAILED, KNOWN, expected -2.172\n    test 1181 GeoidPGM('egm2008-1.pgm').height(-0.179, -126.368) kind 3: lli ('-0.178524, -126.368279'), H (False) or wrap (False): lli ('-0.178524, -126.368279'): outside on SW  FAILED, KNOWN, expected -17.411\n    test 1182 GeoidPGM('egm2008-1.pgm').height(1.586, -128.887) kind 3: lli ('1.585536, -128.886967'), H (False) or wrap (False): lli ('1.585536, -128.886967'): outside on SW  FAILED, KNOWN, expected -16.425\n    test 1183 GeoidPGM('egm2008-1.pgm').height(-48.781, -2.684) kind 3: lli ('-48.780705, -2.684224'), H (False) or wrap (False): lli ('-48.780705, -2.684224'): outside on SE  FAILED, KNOWN, expected 24.698\n    test 1184 GeoidPGM('egm2008-1.pgm').height(-49.092, 136.862) kind 3: lli ('-49.091632, 136.862256'), H (False) or wrap (False): lli ('-49.091632, 136.862256'): outside on SE  FAILED, KNOWN, expected -18.329\n    test 1185 GeoidPGM('egm2008-1.pgm').height(47.732, 17.552) kind 3: lli ('47.731727, 17.552416'), H (False) or wrap (False): lli ('47.731727, 17.552416'): outside on E  FAILED, KNOWN, expected 43.802\n    test 1186 GeoidPGM('egm2008-1.pgm').height(-49.11, 85.706) kind 3: lli ('-49.109549, 85.706437'), H (False) or wrap (False): lli ('-49.109549, 85.706437'): outside on SE  FAILED, KNOWN, expected 18.716\n    test 1187 GeoidPGM('egm2008-1.pgm').height(-49.162, 40.321) kind 3: lli ('-49.162281, 40.321209'), H (False) or wrap (False): lli ('-49.162281, 40.321209'): outside on SE  FAILED, KNOWN, expected 44.469\n    test 1188 GeoidPGM('egm2008-1.pgm').height(3.498, 158.118) kind 3: lli ('3.498333, 158.117699'), H (False) or wrap (False): lli ('3.498333, 158.117699'): outside on SE  FAILED, KNOWN, expected 49.944\n    test 1189 GeoidPGM('egm2008-1.pgm').height(-35.616, 122.648) kind 3: lli ('-35.616495, 122.648407'), H (False) or wrap (False): lli ('-35.616495, 122.648407'): outside on SE  FAILED, KNOWN, expected -35.878\n    test 1190 GeoidPGM('egm2008-1.pgm').height(56.598, -96.114) kind 3: lli ('56.598256, -96.113696'), H (False) or wrap (False): lli ('56.598256, -96.113696'): outside on N  FAILED, KNOWN, expected -40.777\n    test 1191 GeoidPGM('egm2008-1.pgm').height(-31.85, 149.121) kind 3: lli ('-31.850231, 149.120596'), H (False) or wrap (False): lli ('-31.850231, 149.120596'): outside on SE  FAILED, KNOWN, expected 26.559\n    test 1192 GeoidPGM('egm2008-1.pgm').height(-26.569, -177.792) kind 3: lli ('-26.568996, -177.792196'), H (False) or wrap (False): lli ('-26.568996, -177.792196'): outside on SW  FAILED, KNOWN, expected 49.361\n    test 1193 GeoidPGM('egm2008-1.pgm').height(76.735, -65.753) kind 3: lli ('76.734699, -65.752952'), H (False) or wrap (False): lli ('76.734699, -65.752952'): outside on N  FAILED, KNOWN, expected 21.107\n    test 1194 GeoidPGM('egm2008-1.pgm').height(-21.404, -122.268) kind 3: lli ('-21.404166, -122.267869'), H (False) or wrap (False): lli ('-21.404166, -122.267869'): outside on S  FAILED, KNOWN, expected -7.202\n    test 1195 GeoidPGM('egm2008-1.pgm').height(-77.133, -65.474) kind 3: lli ('-77.133426, -65.473819'), H (False) or wrap (False): lli ('-77.133426, -65.473819'): outside on S  FAILED, KNOWN, expected -17.168\n    test 1196 GeoidPGM('egm2008-1.pgm').height(-58.812, 2.276) kind 3: lli ('-58.811779, 2.276142'), H (False) or wrap (False): lli ('-58.811779, 2.276142'): outside on SE  FAILED, KNOWN, expected 18.359\n    test 1197 GeoidPGM('egm2008-1.pgm').height(4.415, 155.683) kind 3: lli ('4.415102, 155.683336'), H (False) or wrap (False): lli ('4.415102, 155.683336'): outside on SE  FAILED, KNOWN, expected 52.118\n    test 1198 GeoidPGM('egm2008-1.pgm').height(-28.146, 107.081) kind 3: lli ('-28.145768, 107.081334'), H (False) or wrap (False): lli ('-28.145768, 107.081334'): outside on SE  FAILED, KNOWN, expected -38.950\n    test 1199 GeoidPGM('egm2008-1.pgm').height(-10.551, -126.69) kind 3: lli ('-10.551267, -126.690468'), H (False) or wrap (False): lli ('-10.551267, -126.690468'): outside on SW  FAILED, KNOWN, expected -9.934\n    test 1200 GeoidPGM('egm2008-1.pgm').height(-25.444, -103.337) kind 3: lli ('-25.444344, -103.337184'), H (False) or wrap (False): lli ('-25.444344, -103.337184'): outside on S  FAILED, KNOWN, expected -2.879\n    test 1201 GeoidPGM('egm2008-1.pgm').height(24.436, 46.159) kind 3: lli ('24.435896, 46.158715'), H (False) or wrap (False): lli ('24.435896, 46.158715'): outside on SE  FAILED, KNOWN, expected -5.025\n    test 1202 GeoidPGM('egm2008-1.pgm').height(-72.889, 37.107) kind 3: lli ('-72.888898, 37.106907'), H (False) or wrap (False): lli ('-72.888898, 37.106907'): outside on SE  FAILED, KNOWN, expected 24.296\n    test 1203 GeoidPGM('egm2008-1.pgm').height(-19.629, 13.245) kind 3: lli ('-19.628762, 13.244525'), H (False) or wrap (False): lli ('-19.628762, 13.244525'): outside on SE  FAILED, KNOWN, expected 25.131\n    test 1204 GeoidPGM('egm2008-1.pgm').height(-7.602, 171.265) kind 3: lli ('-7.602449, 171.264763'), H (False) or wrap (False): lli ('-7.602449, 171.264763'): outside on SE  FAILED, KNOWN, expected 40.721\n    test 1205 GeoidPGM('egm2008-1.pgm').height(-45.364, -1.876) kind 3: lli ('-45.364396, -1.876412'), H (False) or wrap (False): lli ('-45.364396, -1.876412'): outside on SE  FAILED, KNOWN, expected 22.388\n    test 1206 GeoidPGM('egm2008-1.pgm').height(-7.292, -69.18) kind 3: lli ('-7.292121, -69.179565'), H (False) or wrap (False): lli ('-7.292121, -69.179565'): outside on S  FAILED, KNOWN, expected 22.486\n    test 1207 GeoidPGM('egm2008-1.pgm').height(-31.566, -166.689) kind 3: lli ('-31.566264, -166.688985'), H (False) or wrap (False): lli ('-31.566264, -166.688985'): outside on SW  FAILED, KNOWN, expected 14.943\n    test 1208 GeoidPGM('egm2008-1.pgm').height(-82.751, -162.085) kind 3: lli ('-82.751144, -162.08523'), H (False) or wrap (False): lli ('-82.751144, -162.08523'): outside on SW  FAILED, KNOWN, expected -47.387\n    test 1209 GeoidPGM('egm2008-1.pgm').height(-40.7, 99.466) kind 3: lli ('-40.699637, 99.465509'), H (False) or wrap (False): lli ('-40.699637, 99.465509'): outside on SE  FAILED, KNOWN, expected -18.403\n    test 1210 GeoidPGM('egm2008-1.pgm').height(48.676, 39.69) kind 3: lli ('48.675771, 39.690012'), H (False) or wrap (False): lli ('48.675771, 39.690012'): outside on E  FAILED, KNOWN, expected 10.185\n    test 1211 GeoidPGM('egm2008-1.pgm').height(74.817, -78.404) kind 3: lli ('74.817287, -78.404187'), H (False) or wrap (False): lli ('74.817287, -78.404187'): outside on N  FAILED, KNOWN, expected 5.671\n    test 1212 GeoidPGM('egm2008-1.pgm').height(-81.032, -63.865) kind 3: lli ('-81.032306, -63.864898'), H (False) or wrap (False): lli ('-81.032306, -63.864898'): outside on SE  FAILED, KNOWN, expected -24.577\n    test 1213 GeoidPGM('egm2008-1.pgm').height(74.022, 9.432) kind 3: lli ('74.021785, 9.431926'), H (False) or wrap (False): lli ('74.021785, 9.431926'): outside on NE  FAILED, KNOWN, expected 43.288\n    test 1214 GeoidPGM('egm2008-1.pgm').height(-75.071, 17.579) kind 3: lli ('-75.070563, 17.57935'), H (False) or wrap (False): lli ('-75.070563, 17.57935'): outside on SE  FAILED, KNOWN, expected 13.748\n    test 1215 GeoidPGM('egm2008-1.pgm').height(-12.546, -54.851) kind 3: lli ('-12.54612, -54.850614'), H (False) or wrap (False): lli ('-12.54612, -54.850614'): outside on SE  FAILED, KNOWN, expected -5.342\n    test 1216 GeoidPGM('egm2008-1.pgm').height(-13.621, 42.408) kind 3: lli ('-13.621418, 42.407805'), H (False) or wrap (False): lli ('-13.621418, 42.407805'): outside on SE  FAILED, KNOWN, expected -25.579\n    test 1217 GeoidPGM('egm2008-1.pgm').height(-2.266, -91.951) kind 3: lli ('-2.265774, -91.951437'), H (False) or wrap (False): lli ('-2.265774, -91.951437'): outside on S  FAILED, KNOWN, expected -9.849\n    test 1218 GeoidPGM('egm2008-1.pgm').height(-18.672, 42.547) kind 3: lli ('-18.672316, 42.547125'), H (False) or wrap (False): lli ('-18.672316, 42.547125'): outside on SE  FAILED, KNOWN, expected -10.491\n    test 1219 GeoidPGM('egm2008-1.pgm').height(-41.44, 157.413) kind 3: lli ('-41.439867, 157.413161'), H (False) or wrap (False): lli ('-41.439867, 157.413161'): outside on SE  FAILED, KNOWN, expected 0.244\n    test 1220 GeoidPGM('egm2008-1.pgm').height(53.686, -79.375) kind 3: -43.820  FAILED, KNOWN, expected -43.821\n    test 1221 GeoidPGM('egm2008-1.pgm').height(39.26, -30.351) kind 3: lli ('39.260397, -30.351359'), H (False) or wrap (False): lli ('39.260397, -30.351359'): outside on E  FAILED, KNOWN, expected 57.401\n    test 1222 GeoidPGM('egm2008-1.pgm').height(-51.699, -141.493) kind 3: lli ('-51.699195, -141.493082'), H (False) or wrap (False): lli ('-51.699195, -141.493082'): outside on SW  FAILED, KNOWN, expected -17.890\n    test 1223 GeoidPGM('egm2008-1.pgm').height(36.585, 4.515) kind 3: lli ('36.584861, 4.515157'), H (False) or wrap (False): lli ('36.584861, 4.515157'): outside on E  FAILED, KNOWN, expected 46.421\n    test 1224 GeoidPGM('egm2008-1.pgm').height(39.642, -54.659) kind 3: lli ('39.641638, -54.658846'), H (False) or wrap (False): lli ('39.641638, -54.658846'): outside on E  FAILED, KNOWN, expected -14.475\n    test 1225 GeoidPGM('egm2008-1.pgm').height(59.761, 166.567) kind 3: lli ('59.761024, 166.566646'), H (False) or wrap (False): lli ('59.761024, 166.566646'): outside on NE  FAILED, KNOWN, expected 11.118\n    test 1226 GeoidPGM('egm2008-1.pgm').height(51.83, 13.357) kind 3: lli ('51.830001, 13.357464'), H (False) or wrap (False): lli ('51.830001, 13.357464'): outside on E  FAILED, KNOWN, expected 42.291\n    test 1227 GeoidPGM('egm2008-1.pgm').height(-36.531, -175.431) kind 3: lli ('-36.530912, -175.430804'), H (False) or wrap (False): lli ('-36.530912, -175.430804'): outside on SW  FAILED, KNOWN, expected 22.326\n    test 1228 GeoidPGM('egm2008-1.pgm').height(-37.08, 125.264) kind 3: lli ('-37.079518, 125.263901'), H (False) or wrap (False): lli ('-37.079518, 125.263901'): outside on SE  FAILED, KNOWN, expected -33.098\n    test 1229 GeoidPGM('egm2008-1.pgm').height(-68.651, 92.732) kind 3: lli ('-68.650762, 92.731524'), H (False) or wrap (False): lli ('-68.650762, 92.731524'): outside on SE  FAILED, KNOWN, expected 9.430\n    test 1230 GeoidPGM('egm2008-1.pgm').height(35.087, 45.336) kind 3: lli ('35.086645, 45.335611'), H (False) or wrap (False): lli ('35.086645, 45.335611'): outside on E  FAILED, KNOWN, expected 6.032\n    test 1231 GeoidPGM('egm2008-1.pgm').height(-61.356, -169.379) kind 3: lli ('-61.355646, -169.378929'), H (False) or wrap (False): lli ('-61.355646, -169.378929'): outside on SW  FAILED, KNOWN, expected -44.330\n    test 1232 GeoidPGM('egm2008-1.pgm').height(-36.955, 179.12) kind 3: lli ('-36.954967, 179.11982'), H (False) or wrap (False): lli ('-36.954967, 179.11982'): outside on SE  FAILED, KNOWN, expected 21.775\n    test 1233 GeoidPGM('egm2008-1.pgm').height(10.248, -6.714) kind 3: lli ('10.248399, -6.713559'), H (False) or wrap (False): lli ('10.248399, -6.713559'): outside on SE  FAILED, KNOWN, expected 29.243\n    test 1234 GeoidPGM('egm2008-1.pgm').height(36.868, 84.602) kind 3: lli ('36.868193, 84.602243'), H (False) or wrap (False): lli ('36.868193, 84.602243'): outside on E  FAILED, KNOWN, expected -40.676\n    test 1235 GeoidPGM('egm2008-1.pgm').height(28.637, 88.933) kind 3: lli ('28.636703, 88.932955'), H (False) or wrap (False): lli ('28.636703, 88.932955'): outside on E  FAILED, KNOWN, expected -31.353\n    test 1236 GeoidPGM('egm2008-1.pgm').height(54.811, -99.968) kind 3: -32.700  FAILED, KNOWN, expected -32.701\n    test 1237 GeoidPGM('egm2008-1.pgm').height(7.611, 145.911) kind 3: lli ('7.610621, 145.911188'), H (False) or wrap (False): lli ('7.610621, 145.911188'): outside on SE  FAILED, KNOWN, expected 60.629\n    test 1238 GeoidPGM('egm2008-1.pgm').height(59.412, 170.102) kind 3: lli ('59.411557, 170.102394'), H (False) or wrap (False): lli ('59.411557, 170.102394'): outside on NE  FAILED, KNOWN, expected 6.617\n    test 1239 GeoidPGM('egm2008-1.pgm').height(-61.469, 126.144) kind 3: lli ('-61.468618, 126.144056'), H (False) or wrap (False): lli ('-61.468618, 126.144056'): outside on SE  FAILED, KNOWN, expected -31.887\n    test 1240 GeoidPGM('egm2008-1.pgm').height(18.514, -137.083) kind 3: lli ('18.514019, -137.083301'), H (False) or wrap (False): lli ('18.514019, -137.083301'): outside on SW  FAILED, KNOWN, expected -26.535\n    test 1241 GeoidPGM('egm2008-1.pgm').height(7.854, -126.799) kind 3: lli ('7.854318, -126.799148'), H (False) or wrap (False): lli ('7.854318, -126.799148'): outside on SW  FAILED, KNOWN, expected -29.630\n    test 1242 GeoidPGM('egm2008-1.pgm').height(47.489, 134.183) kind 3: lli ('47.489222, 134.182527'), H (False) or wrap (False): lli ('47.489222, 134.182527'): outside on E  FAILED, KNOWN, expected 22.275\n    test 1243 GeoidPGM('egm2008-1.pgm').height(-34.144, -11.922) kind 3: lli ('-34.143602, -11.921567'), H (False) or wrap (False): lli ('-34.143602, -11.921567'): outside on SE  FAILED, KNOWN, expected 17.094\n    test 1244 GeoidPGM('egm2008-1.pgm').height(-58.389, 117.458) kind 3: lli ('-58.388787, 117.457755'), H (False) or wrap (False): lli ('-58.388787, 117.457755'): outside on SE  FAILED, KNOWN, expected -20.941\n    test 1245 GeoidPGM('egm2008-1.pgm').height(9.773, 95.846) kind 3: lli ('9.772764, 95.845943'), H (False) or wrap (False): lli ('9.772764, 95.845943'): outside on SE  FAILED, KNOWN, expected -42.740\n    test 1246 GeoidPGM('egm2008-1.pgm').height(-53.12, 136.994) kind 3: lli ('-53.120381, 136.993994'), H (False) or wrap (False): lli ('-53.120381, 136.993994'): outside on SE  FAILED, KNOWN, expected -21.651\n    test 1247 GeoidPGM('egm2008-1.pgm').height(-50.35, 0.075) kind 3: lli ('-50.349867, 0.07532'), H (False) or wrap (False): lli ('-50.349867, 0.07532'): outside on SE  FAILED, KNOWN, expected 25.240\n    test 1248 GeoidPGM('egm2008-1.pgm').height(31.438, -170.879) kind 3: lli ('31.438387, -170.878548'), H (False) or wrap (False): lli ('31.438387, -170.878548'): outside on W  FAILED, KNOWN, expected -8.758\n    test 1249 GeoidPGM('egm2008-1.pgm').height(37.541, -153.024) kind 3: lli ('37.540689, -153.024228'), H (False) or wrap (False): lli ('37.540689, -153.024228'): outside on W  FAILED, KNOWN, expected -19.607\n    test 1250 GeoidPGM('egm2008-1.pgm').height(27.586, 2.444) kind 3: lli ('27.586088, 2.443556'), H (False) or wrap (False): lli ('27.586088, 2.443556'): outside on E  FAILED, KNOWN, expected 26.258\n    test 1251 GeoidPGM('egm2008-1.pgm').height(-26.139, -106.201) kind 3: lli ('-26.139126, -106.20081'), H (False) or wrap (False): lli ('-26.139126, -106.20081'): outside on S  FAILED, KNOWN, expected -3.824\n    test 1252 GeoidPGM('egm2008-1.pgm').height(-33.426, -14.84) kind 3: lli ('-33.425976, -14.840359'), H (False) or wrap (False): lli ('-33.425976, -14.840359'): outside on SE  FAILED, KNOWN, expected 18.195\n    test 1253 GeoidPGM('egm2008-1.pgm').height(39.586, -153.019) kind 3: lli ('39.586286, -153.018974'), H (False) or wrap (False): lli ('39.586286, -153.018974'): outside on W  FAILED, KNOWN, expected -17.725\n    test 1254 GeoidPGM('egm2008-1.pgm').height(-60.79, -2.578) kind 3: lli ('-60.790289, -2.578163'), H (False) or wrap (False): lli ('-60.790289, -2.578163'): outside on SE  FAILED, KNOWN, expected 14.513\n    test 1255 GeoidPGM('egm2008-1.pgm').height(-20.131, 21.975) kind 3: lli ('-20.130538, 21.974941'), H (False) or wrap (False): lli ('-20.130538, 21.974941'): outside on SE  FAILED, KNOWN, expected 16.809\n    test 1256 GeoidPGM('egm2008-1.pgm').height(75.649, 99.921) kind 3: lli ('75.64878, 99.920587'), H (False) or wrap (False): lli ('75.64878, 99.920587'): outside on NE  FAILED, KNOWN, expected -8.026\n    test 1257 GeoidPGM('egm2008-1.pgm').height(-0.385, -23.788) kind 3: lli ('-0.385453, -23.788336'), H (False) or wrap (False): lli ('-0.385453, -23.788336'): outside on SE  FAILED, KNOWN, expected 9.688\n    test 1258 GeoidPGM('egm2008-1.pgm').height(-51.56, -50.327) kind 3: lli ('-51.559564, -50.32687'), H (False) or wrap (False): lli ('-51.559564, -50.32687'): outside on SE  FAILED, KNOWN, expected 6.218\n    test 1259 GeoidPGM('egm2008-1.pgm').height(-43.129, -167.271) kind 3: lli ('-43.129209, -167.27147'), H (False) or wrap (False): lli ('-43.129209, -167.27147'): outside on SW  FAILED, KNOWN, expected -2.724\n    test 1260 GeoidPGM('egm2008-1.pgm').height(46.374, 71.948) kind 3: lli ('46.374177, 71.947616'), H (False) or wrap (False): lli ('46.374177, 71.947616'): outside on E  FAILED, KNOWN, expected -42.565\n    test 1261 GeoidPGM('egm2008-1.pgm').height(-22.783, 140.657) kind 3: lli ('-22.783085, 140.657444'), H (False) or wrap (False): lli ('-22.783085, 140.657444'): outside on SE  FAILED, KNOWN, expected 38.341\n    test 1262 GeoidPGM('egm2008-1.pgm').height(-12.056, 122.804) kind 3: lli ('-12.05584, 122.80402'), H (False) or wrap (False): lli ('-12.05584, 122.80402'): outside on SE  FAILED, KNOWN, expected 33.889\n    test 1263 GeoidPGM('egm2008-1.pgm').height(30.127, 94.738) kind 3: lli ('30.127372, 94.738186'), H (False) or wrap (False): lli ('30.127372, 94.738186'): outside on E  FAILED, KNOWN, expected -37.380\n    test 1264 GeoidPGM('egm2008-1.pgm').height(46.296, -174.479) kind 3: lli ('46.296018, -174.478616'), H (False) or wrap (False): lli ('46.296018, -174.478616'): outside on W  FAILED, KNOWN, expected -1.858\n    test 1265 GeoidPGM('egm2008-1.pgm').height(34.99, 15.052) kind 3: lli ('34.989646, 15.051646'), H (False) or wrap (False): lli ('34.989646, 15.051646'): outside on E  FAILED, KNOWN, expected 34.195\n    test 1266 GeoidPGM('egm2008-1.pgm').height(-51.287, 90.565) kind 3: lli ('-51.287168, 90.564711'), H (False) or wrap (False): lli ('-51.287168, 90.564711'): outside on SE  FAILED, KNOWN, expected 12.767\n    test 1267 GeoidPGM('egm2008-1.pgm').height(34.217, 141.302) kind 3: lli ('34.217016, 141.301548'), H (False) or wrap (False): lli ('34.217016, 141.301548'): outside on E  FAILED, KNOWN, expected 15.612\n    test 1268 GeoidPGM('egm2008-1.pgm').height(-40.423, -142.787) kind 3: lli ('-40.423023, -142.786592'), H (False) or wrap (False): lli ('-40.423023, -142.786592'): outside on SW  FAILED, KNOWN, expected -11.063\n    test 1269 GeoidPGM('egm2008-1.pgm').height(-17.854, -170.216) kind 3: lli ('-17.854486, -170.216354'), H (False) or wrap (False): lli ('-17.854486, -170.216354'): outside on SW  FAILED, KNOWN, expected 27.387\n    test 1270 GeoidPGM('egm2008-1.pgm').height(47.803, 112.701) kind 3: lli ('47.803271, 112.700942'), H (False) or wrap (False): lli ('47.803271, 112.700942'): outside on E  FAILED, KNOWN, expected -23.817\n    test 1271 GeoidPGM('egm2008-1.pgm').height(-23.276, 133.454) kind 3: lli ('-23.275962, 133.453821'), H (False) or wrap (False): lli ('-23.275962, 133.453821'): outside on SE  FAILED, KNOWN, expected 18.712\n    test 1272 GeoidPGM('egm2008-1.pgm').height(-26.884, -36.571) kind 3: lli ('-26.884369, -36.570654'), H (False) or wrap (False): lli ('-26.884369, -36.570654'): outside on SE  FAILED, KNOWN, expected -7.344\n    test 1273 GeoidPGM('egm2008-1.pgm').height(-37.106, 31.128) kind 3: lli ('-37.106468, 31.127939'), H (False) or wrap (False): lli ('-37.106468, 31.127939'): outside on SE  FAILED, KNOWN, expected 29.998\n    test 1274 GeoidPGM('egm2008-1.pgm').height(-75.363, -173.674) kind 3: lli ('-75.363185, -173.673649'), H (False) or wrap (False): lli ('-75.363185, -173.673649'): outside on SW  FAILED, KNOWN, expected -61.869\n    test 1275 GeoidPGM('egm2008-1.pgm').height(-18.305, 69.016) kind 3: lli ('-18.30485, 69.015565'), H (False) or wrap (False): lli ('-18.30485, 69.015565'): outside on SE  FAILED, KNOWN, expected -24.937\n    test 1276 GeoidPGM('egm2008-1.pgm').height(39.527, 23.58) kind 3: lli ('39.527401, 23.580206'), H (False) or wrap (False): lli ('39.527401, 23.580206'): outside on E  FAILED, KNOWN, expected 38.556\n    test 1277 GeoidPGM('egm2008-1.pgm').height(68.903, 30.97) kind 3: lli ('68.903148, 30.970247'), H (False) or wrap (False): lli ('68.903148, 30.970247'): outside on NE  FAILED, KNOWN, expected 19.671\n    test 1278 GeoidPGM('egm2008-1.pgm').height(53.937, 168.318) kind 3: lli ('53.936937, 168.318201'), H (False) or wrap (False): lli ('53.936937, 168.318201'): outside on E  FAILED, KNOWN, expected 2.272\n    test 1279 GeoidPGM('egm2008-1.pgm').height(-38.6, 64.812) kind 3: lli ('-38.600098, 64.811532'), H (False) or wrap (False): lli ('-38.600098, 64.811532'): outside on SE  FAILED, KNOWN, expected 24.863\n    test 1280 GeoidPGM('egm2008-1.pgm').height(-41.396, -69.739) kind 3: lli ('-41.395739, -69.739418'), H (False) or wrap (False): lli ('-41.395739, -69.739418'): outside on S  FAILED, KNOWN, expected 21.636\n    test 1281 GeoidPGM('egm2008-1.pgm').height(50.158, 72.319) kind 3: lli ('50.157749, 72.319017'), H (False) or wrap (False): lli ('50.157749, 72.319017'): outside on E  FAILED, KNOWN, expected -33.851\n    test 1282 GeoidPGM('egm2008-1.pgm').height(27.692, 176.153) kind 3: lli ('27.691879, 176.152884'), H (False) or wrap (False): lli ('27.691879, 176.152884'): outside on E  FAILED, KNOWN, expected -5.299\n    test 1283 GeoidPGM('egm2008-1.pgm').height(-48.419, 170.454) kind 3: lli ('-48.419449, 170.454472'), H (False) or wrap (False): lli ('-48.419449, 170.454472'): outside on SE  FAILED, KNOWN, expected -6.789\n    test 1284 GeoidPGM('egm2008-1.pgm').height(-65.346, -124.976) kind 3: lli ('-65.34567, -124.975961'), H (False) or wrap (False): lli ('-65.34567, -124.975961'): outside on S  FAILED, KNOWN, expected -35.030\n    test 1285 GeoidPGM('egm2008-1.pgm').height(-51.873, 167.266) kind 3: lli ('-51.873009, 167.265613'), H (False) or wrap (False): lli ('-51.873009, 167.265613'): outside on SE  FAILED, KNOWN, expected -15.338\n    test 1286 GeoidPGM('egm2008-1.pgm').height(-7.263, 84.308) kind 3: lli ('-7.262544, 84.307626'), H (False) or wrap (False): lli ('-7.262544, 84.307626'): outside on SE  FAILED, KNOWN, expected -79.356\n    test 1287 GeoidPGM('egm2008-1.pgm').height(-1.461, -105.458) kind 3: lli ('-1.461003, -105.458323'), H (False) or wrap (False): lli ('-1.461003, -105.458323'): outside on S  FAILED, KNOWN, expected -16.650\n    test 1288 GeoidPGM('egm2008-1.pgm').height(7.684, 161.873) kind 3: lli ('7.684324, 161.87293'), H (False) or wrap (False): lli ('7.684324, 161.87293'): outside on SE  FAILED, KNOWN, expected 36.359\n    test 1289 GeoidPGM('egm2008-1.pgm').height(-31.475, -158.52) kind 3: lli ('-31.474549, -158.520033'), H (False) or wrap (False): lli ('-31.474549, -158.520033'): outside on SW  FAILED, KNOWN, expected 3.615\n    test 1290 GeoidPGM('egm2008-1.pgm').height(-36.187, 62.917) kind 3: lli ('-36.187212, 62.917075'), H (False) or wrap (False): lli ('-36.187212, 62.917075'): outside on SE  FAILED, KNOWN, expected 23.947\n    test 1291 GeoidPGM('egm2008-1.pgm').height(16.003, 141.687) kind 3: lli ('16.002975, 141.686552'), H (False) or wrap (False): lli ('16.002975, 141.686552'): outside on SE  FAILED, KNOWN, expected 51.495\n    test 1292 GeoidPGM('egm2008-1.pgm').height(30.182, 86.261) kind 3: lli ('30.182218, 86.260576'), H (False) or wrap (False): lli ('30.182218, 86.260576'): outside on E  FAILED, KNOWN, expected -30.910\n    test 1293 GeoidPGM('egm2008-1.pgm').height(-77.304, 159.498) kind 3: lli ('-77.303842, 159.497665'), H (False) or wrap (False): lli ('-77.303842, 159.497665'): outside on SE  FAILED, KNOWN, expected -52.131\n    test 1294 GeoidPGM('egm2008-1.pgm').height(39.536, 139.795) kind 3: lli ('39.536, 139.795358'), H (False) or wrap (False): lli ('39.536, 139.795358'): outside on E  FAILED, KNOWN, expected 37.045\n    test 1295 GeoidPGM('egm2008-1.pgm').height(8.569, 134.618) kind 3: lli ('8.569309, 134.618403'), H (False) or wrap (False): lli ('8.569309, 134.618403'): outside on SE  FAILED, KNOWN, expected 64.180\n    test 1296 GeoidPGM('egm2008-1.pgm').height(14.473, 90.596) kind 3: lli ('14.473483, 90.595663'), H (False) or wrap (False): lli ('14.473483, 90.595663'): outside on SE  FAILED, KNOWN, expected -62.475\n    test 1297 GeoidPGM('egm2008-1.pgm').height(-13.138, -99.589) kind 3: lli ('-13.13767, -99.589202'), H (False) or wrap (False): lli ('-13.13767, -99.589202'): outside on S  FAILED, KNOWN, expected -8.454\n    test 1298 GeoidPGM('egm2008-1.pgm').height(34.212, -26.307) kind 3: lli ('34.211572, -26.307194'), H (False) or wrap (False): lli ('34.211572, -26.307194'): outside on E  FAILED, KNOWN, expected 40.834\n    test 1299 GeoidPGM('egm2008-1.pgm').height(21.89, 76.371) kind 3: lli ('21.889732, 76.371362'), H (False) or wrap (False): lli ('21.889732, 76.371362'): outside on SE  FAILED, KNOWN, expected -60.455\n    test 1300 GeoidPGM('egm2008-1.pgm').height(29.793, 120.487) kind 3: lli ('29.792909, 120.48703'), H (False) or wrap (False): lli ('29.792909, 120.48703'): outside on E  FAILED, KNOWN, expected 9.727\n    test 1301 GeoidPGM('egm2008-1.pgm').height(15.724, 122.714) kind 3: lli ('15.723814, 122.713685'), H (False) or wrap (False): lli ('15.723814, 122.713685'): outside on SE  FAILED, KNOWN, expected 32.142\n    test 1302 GeoidPGM('egm2008-1.pgm').height(-66.208, -78.499) kind 3: lli ('-66.20776, -78.498807'), H (False) or wrap (False): lli ('-66.20776, -78.498807'): outside on S  FAILED, KNOWN, expected -6.220\n    test 1303 GeoidPGM('egm2008-1.pgm').height(-39.507, 55.809) kind 3: lli ('-39.507049, 55.808743'), H (False) or wrap (False): lli ('-39.507049, 55.808743'): outside on SE  FAILED, KNOWN, expected 32.489\n    test 1304 GeoidPGM('egm2008-1.pgm').height(28.159, 51.476) kind 3: lli ('28.159494, 51.476474'), H (False) or wrap (False): lli ('28.159494, 51.476474'): outside on E  FAILED, KNOWN, expected -24.692\n    test 1305 GeoidPGM('egm2008-1.pgm').height(-36.207, 120.205) kind 3: lli ('-36.206825, 120.205019'), H (False) or wrap (False): lli ('-36.206825, 120.205019'): outside on SE  FAILED, KNOWN, expected -38.749\n    test 1306 GeoidPGM('egm2008-1.pgm').height(30.575, -99.998) kind 3: -23.254  FAILED, KNOWN, expected -23.255\n    test 1307 GeoidPGM('egm2008-1.pgm').height(-16.993, 37.136) kind 3: lli ('-16.992515, 37.135881'), H (False) or wrap (False): lli ('-16.992515, 37.135881'): outside on SE  FAILED, KNOWN, expected -13.455\n    test 1308 GeoidPGM('egm2008-1.pgm').height(-11.477, 12.039) kind 3: lli ('-11.476997, 12.038708'), H (False) or wrap (False): lli ('-11.476997, 12.038708'): outside on SE  FAILED, KNOWN, expected 16.627\n    test 1309 GeoidPGM('egm2008-1.pgm').height(30.428, -144.765) kind 3: lli ('30.428465, -144.765049'), H (False) or wrap (False): lli ('30.428465, -144.765049'): outside on W  FAILED, KNOWN, expected -22.221\n    test 1310 GeoidPGM('egm2008-1.pgm').height(-17.44, -92.424) kind 3: lli ('-17.439773, -92.424339'), H (False) or wrap (False): lli ('-17.439773, -92.424339'): outside on S  FAILED, KNOWN, expected -4.836\n    test 1311 GeoidPGM('egm2008-1.pgm').height(40.203, 143.43) kind 3: lli ('40.203164, 143.429799'), H (False) or wrap (False): lli ('40.203164, 143.429799'): outside on E  FAILED, KNOWN, expected 19.571\n    test 1312 GeoidPGM('egm2008-1.pgm').height(-37.098, -106.574) kind 3: lli ('-37.098392, -106.573712'), H (False) or wrap (False): lli ('-37.098392, -106.573712'): outside on S  FAILED, KNOWN, expected -9.227\n    test 1313 GeoidPGM('egm2008-1.pgm').height(54.62, -68.413) kind 3: -23.248\n    test 1314 GeoidPGM('egm2008-1.pgm').height(-31.633, 148.182) kind 3: lli ('-31.633252, 148.181926'), H (False) or wrap (False): lli ('-31.633252, 148.181926'): outside on SE  FAILED, KNOWN, expected 24.829\n    test 1315 GeoidPGM('egm2008-1.pgm').height(-56.07, -141.407) kind 3: lli ('-56.069748, -141.406778'), H (False) or wrap (False): lli ('-56.069748, -141.406778'): outside on SW  FAILED, KNOWN, expected -21.705\n    test 1316 GeoidPGM('egm2008-1.pgm').height(-8.195, -52.691) kind 3: lli ('-8.195214, -52.691177'), H (False) or wrap (False): lli ('-8.195214, -52.691177'): outside on SE  FAILED, KNOWN, expected -17.053\n    test 1317 GeoidPGM('egm2008-1.pgm').height(17.851, 24.749) kind 3: lli ('17.850526, 24.748606'), H (False) or wrap (False): lli ('17.850526, 24.748606'): outside on SE  FAILED, KNOWN, expected 11.716\n    test 1318 GeoidPGM('egm2008-1.pgm').height(0.349, -108.333) kind 3: lli ('0.349465, -108.332667'), H (False) or wrap (False): lli ('0.349465, -108.332667'): outside on S  FAILED, KNOWN, expected -19.530\n    test 1319 GeoidPGM('egm2008-1.pgm').height(15.038, 126.191) kind 3: lli ('15.037932, 126.190545'), H (False) or wrap (False): lli ('15.037932, 126.190545'): outside on SE  FAILED, KNOWN, expected 45.929\n    test 1320 GeoidPGM('egm2008-1.pgm').height(-21.111, -123.696) kind 3: lli ('-21.111105, -123.695981'), H (False) or wrap (False): lli ('-21.111105, -123.695981'): outside on S  FAILED, KNOWN, expected -8.283\n    test 1321 GeoidPGM('egm2008-1.pgm').height(30.947, 173.002) kind 3: lli ('30.946618, 173.002137'), H (False) or wrap (False): lli ('30.946618, 173.002137'): outside on E  FAILED, KNOWN, expected -8.467\n    test 1322 GeoidPGM('egm2008-1.pgm').height(-10.698, -144.091) kind 3: lli ('-10.698334, -144.091109'), H (False) or wrap (False): lli ('-10.698334, -144.091109'): outside on SW  FAILED, KNOWN, expected -1.829\n    test 1323 GeoidPGM('egm2008-1.pgm').height(-29.412, 124.753) kind 3: lli ('-29.412071, 124.75279'), H (False) or wrap (False): lli ('-29.412071, 124.75279'): outside on SE  FAILED, KNOWN, expected -16.506\n    test 1324 GeoidPGM('egm2008-1.pgm').height(38.224, -137.189) kind 3: lli ('38.223621, -137.189376'), H (False) or wrap (False): lli ('38.223621, -137.189376'): outside on W  FAILED, KNOWN, expected -35.384\n    test 1325 GeoidPGM('egm2008-1.pgm').height(36.064, -132.409) kind 3: lli ('36.063775, -132.409284'), H (False) or wrap (False): lli ('36.063775, -132.409284'): outside on W  FAILED, KNOWN, expected -38.963\n    test 1326 GeoidPGM('egm2008-1.pgm').height(29.975, 178.076) kind 3: lli ('29.974676, 178.075894'), H (False) or wrap (False): lli ('29.974676, 178.075894'): outside on E  FAILED, KNOWN, expected -6.956\n    test 1327 GeoidPGM('egm2008-1.pgm').height(-21.346, 169.26) kind 3: lli ('-21.346396, 169.259508'), H (False) or wrap (False): lli ('-21.346396, 169.259508'): outside on SE  FAILED, KNOWN, expected 51.005\n    test 1328 GeoidPGM('egm2008-1.pgm').height(49.282, -152.934) kind 3: lli ('49.282472, -152.934409'), H (False) or wrap (False): lli ('49.282472, -152.934409'): outside on W  FAILED, KNOWN, expected 1.192\n    test 1329 GeoidPGM('egm2008-1.pgm').height(16.349, -99.962) kind 3: lli ('16.349121, -99.962229'), H (False) or wrap (False): lli ('16.349121, -99.962229'): outside on S  FAILED, KNOWN, expected -15.038\n    test 1330 GeoidPGM('egm2008-1.pgm').height(-14.293, -167.34) kind 3: lli ('-14.293325, -167.339799'), H (False) or wrap (False): lli ('-14.293325, -167.339799'): outside on SW  FAILED, KNOWN, expected 17.791\n    test 1331 GeoidPGM('egm2008-1.pgm').height(47.166, -38.523) kind 3: lli ('47.165911, -38.522629'), H (False) or wrap (False): lli ('47.165911, -38.522629'): outside on E  FAILED, KNOWN, expected 44.652\n    test 1332 GeoidPGM('egm2008-1.pgm').height(-58.911, 114.347) kind 3: lli ('-58.910597, 114.346927'), H (False) or wrap (False): lli ('-58.910597, 114.346927'): outside on SE  FAILED, KNOWN, expected -17.971\n    test 1333 GeoidPGM('egm2008-1.pgm').height(-9.055, 111.294) kind 3: lli ('-9.055095, 111.294422'), H (False) or wrap (False): lli ('-9.055095, 111.294422'): outside on SE  FAILED, KNOWN, expected 11.631\n    test 1334 GeoidPGM('egm2008-1.pgm').height(18.391, 29.692) kind 3: lli ('18.390988, 29.691577'), H (False) or wrap (False): lli ('18.390988, 29.691577'): outside on SE  FAILED, KNOWN, expected 7.394\n    test 1335 GeoidPGM('egm2008-1.pgm').height(-15.074, 22.153) kind 3: lli ('-15.074412, 22.152663'), H (False) or wrap (False): lli ('-15.074412, 22.152663'): outside on SE  FAILED, KNOWN, expected 7.932\n    test 1336 GeoidPGM('egm2008-1.pgm').height(-4.235, 62.001) kind 3: lli ('-4.234571, 62.001081'), H (False) or wrap (False): lli ('-4.234571, 62.001081'): outside on SE  FAILED, KNOWN, expected -60.593\n    test 1337 GeoidPGM('egm2008-1.pgm').height(15.171, -86.583) kind 3: lli ('15.170822, -86.582929'), H (False) or wrap (False): lli ('15.170822, -86.582929'): outside on S  FAILED, KNOWN, expected 4.384\n    test 1338 GeoidPGM('egm2008-1.pgm').height(79.254, 112.116) kind 3: lli ('79.254009, 112.115515'), H (False) or wrap (False): lli ('79.254009, 112.115515'): outside on NE  FAILED, KNOWN, expected 1.297\n    test 1339 GeoidPGM('egm2008-1.pgm').height(15.947, 156.093) kind 3: lli ('15.947068, 156.092678'), H (False) or wrap (False): lli ('15.947068, 156.092678'): outside on SE  FAILED, KNOWN, expected 30.852\n    test 1340 GeoidPGM('egm2008-1.pgm').height(68.371, -177.382) kind 3: lli ('68.370605, -177.382127'), H (False) or wrap (False): lli ('68.370605, -177.382127'): outside on NW  FAILED, KNOWN, expected 2.704\n    test 1341 GeoidPGM('egm2008-1.pgm').height(-41.931, -72.093) kind 3: lli ('-41.931009, -72.093413'), H (False) or wrap (False): lli ('-41.931009, -72.093413'): outside on S  FAILED, KNOWN, expected 21.264\n    test 1342 GeoidPGM('egm2008-1.pgm').height(-1.193, -143.133) kind 3: lli ('-1.192967, -143.133078'), H (False) or wrap (False): lli ('-1.192967, -143.133078'): outside on SW  FAILED, KNOWN, expected 5.443\n    test 1343 GeoidPGM('egm2008-1.pgm').height(-37.006, 154.513) kind 3: lli ('-37.006115, 154.512534'), H (False) or wrap (False): lli ('-37.006115, 154.512534'): outside on SE  FAILED, KNOWN, expected 9.998\n    test 1344 GeoidPGM('egm2008-1.pgm').height(-22.148, 9.938) kind 3: lli ('-22.148493, 9.938408'), H (False) or wrap (False): lli ('-22.148493, 9.938408'): outside on SE  FAILED, KNOWN, expected 22.428\n    test 1345 GeoidPGM('egm2008-1.pgm').height(24.329, 109.044) kind 3: lli ('24.328746, 109.043774'), H (False) or wrap (False): lli ('24.328746, 109.043774'): outside on SE  FAILED, KNOWN, expected -23.154\n    test 1346 GeoidPGM('egm2008-1.pgm').height(-54.878, 114.691) kind 3: lli ('-54.877699, 114.691444'), H (False) or wrap (False): lli ('-54.877699, 114.691444'): outside on SE  FAILED, KNOWN, expected -17.662\n    test 1347 GeoidPGM('egm2008-1.pgm').height(45.601, -80.458) kind 3: -36.840  FAILED, KNOWN, expected -36.839\n    test 1348 GeoidPGM('egm2008-1.pgm').height(2.372, 58.974) kind 3: lli ('2.371766, 58.974082'), H (False) or wrap (False): lli ('2.371766, 58.974082'): outside on SE  FAILED, KNOWN, expected -61.221\n    test 1349 GeoidPGM('egm2008-1.pgm').height(15.937, 165.854) kind 3: lli ('15.936522, 165.854035'), H (False) or wrap (False): lli ('15.936522, 165.854035'): outside on SE  FAILED, KNOWN, expected 20.355\n    test 1350 GeoidPGM('egm2008-1.pgm').height(4.889, -24.213) kind 3: lli ('4.889499, -24.213194'), H (False) or wrap (False): lli ('4.889499, -24.213194'): outside on SE  FAILED, KNOWN, expected 13.147\n    test 1351 GeoidPGM('egm2008-1.pgm').height(-11.392, 179.558) kind 3: lli ('-11.392365, 179.558198'), H (False) or wrap (False): lli ('-11.392365, 179.558198'): outside on SE  FAILED, KNOWN, expected 41.072\n    test 1352 GeoidPGM('egm2008-1.pgm').height(58.246, 4.862) kind 3: lli ('58.24629, 4.862128'), H (False) or wrap (False): lli ('58.24629, 4.862128'): outside on NE  FAILED, KNOWN, expected 42.982\n    test 1353 GeoidPGM('egm2008-1.pgm').height(34.302, -109.109) kind 3: -22.997  FAILED, KNOWN, expected -22.998\n    test 1354 GeoidPGM('egm2008-1.pgm').height(-58.196, 117.306) kind 3: lli ('-58.195787, 117.305696'), H (False) or wrap (False): lli ('-58.195787, 117.305696'): outside on SE  FAILED, KNOWN, expected -20.662\n    test 1355 GeoidPGM('egm2008-1.pgm').height(44.5, 173.769) kind 3: lli ('44.499876, 173.768568'), H (False) or wrap (False): lli ('44.499876, 173.768568'): outside on E  FAILED, KNOWN, expected -8.438\n    test 1356 GeoidPGM('egm2008-1.pgm').height(-28.863, -139.775) kind 3: lli ('-28.862539, -139.774812'), H (False) or wrap (False): lli ('-28.862539, -139.774812'): outside on SW  FAILED, KNOWN, expected -8.712\n    test 1357 GeoidPGM('egm2008-1.pgm').height(19.507, -96.099) kind 3: lli ('19.507043, -96.099433'), H (False) or wrap (False): lli ('19.507043, -96.099433'): outside on S  FAILED, KNOWN, expected -12.653\n    test 1358 GeoidPGM('egm2008-1.pgm').height(-42.488, -73.907) kind 3: lli ('-42.487604, -73.906602'), H (False) or wrap (False): lli ('-42.487604, -73.906602'): outside on S  FAILED, KNOWN, expected 17.166\n    test 1359 GeoidPGM('egm2008-1.pgm').height(46.138, -141.429) kind 3: lli ('46.138437, -141.429193'), H (False) or wrap (False): lli ('46.138437, -141.429193'): outside on W  FAILED, KNOWN, expected -19.874\n    test 1360 GeoidPGM('egm2008-1.pgm').height(60.507, 93.743) kind 3: lli ('60.506969, 93.74336'), H (False) or wrap (False): lli ('60.506969, 93.74336'): outside on NE  FAILED, KNOWN, expected -31.124\n    test 1361 GeoidPGM('egm2008-1.pgm').height(26.219, -145.434) kind 3: lli ('26.219081, -145.434391'), H (False) or wrap (False): lli ('26.219081, -145.434391'): outside on W  FAILED, KNOWN, expected -17.307\n    test 1362 GeoidPGM('egm2008-1.pgm').height(-28.687, 3.37) kind 3: lli ('-28.68714, 3.370196'), H (False) or wrap (False): lli ('-28.68714, 3.370196'): outside on SE  FAILED, KNOWN, expected 23.434\n    test 1363 GeoidPGM('egm2008-1.pgm').height(-15.008, 117.45) kind 3: lli ('-15.007944, 117.449536'), H (False) or wrap (False): lli ('-15.007944, 117.449536'): outside on SE  FAILED, KNOWN, expected 4.508\n    test 1364 GeoidPGM('egm2008-1.pgm').height(40.71, 144.095) kind 3: lli ('40.710024, 144.095126'), H (False) or wrap (False): lli ('40.710024, 144.095126'): outside on E  FAILED, KNOWN, expected 11.549\n    test 1365 GeoidPGM('egm2008-1.pgm').height(20.823, -173.611) kind 3: lli ('20.823096, -173.610797'), H (False) or wrap (False): lli ('20.823096, -173.610797'): outside on SW  FAILED, KNOWN, expected 5.748\n    test 1366 GeoidPGM('egm2008-1.pgm').height(16.776, -3.009) kind 3: lli ('16.776, -3.009'), H (False) or wrap (False): lli ('16.776, -3.009'): outside on SE  FAILED, KNOWN, expected 28.788\n    test 1367 GeoidPGM('egm2008-1.pgm').height(41.0, -95.0) kind 3: -30.588  FAILED, KNOWN, expected -30.589\n    test 1368 GeoidPGM('egm2008-1.pgm').height(49.0, -120.5) kind 3: -15.273\n    test 1369 GeoidPGM('egm2008-1.pgm').height(49.0, -103.5) kind 3: -18.624\n    test 1370 GeoidPGM('egm2008-1.pgm').height(49.0, -86.5) kind 3: -37.872  FAILED, KNOWN, expected -37.873\n    test 1371 GeoidPGM('egm2008-1.pgm').height(49.0, -69.5) kind 3: -26.511\n    test 1372 GeoidPGM('egm2008-1.pgm').height(33.0, -120.5) kind 3: -39.600\n    test 1373 GeoidPGM('egm2008-1.pgm').height(33.0, -103.5) kind 3: -22.689\n    test 1374 GeoidPGM('egm2008-1.pgm').height(33.0, -86.5) kind 3: -30.066  FAILED, KNOWN, expected -30.067\n    test 1375 GeoidPGM('egm2008-1.pgm').height(33.0, -69.5) kind 3: -48.093\n\n    test 1376 GeoidPGM('egm2008-1.pgm').height() kind 3, eps max (in 0 FAILED): 0.001386\n    test 1377 GeoidPGM('egm2008-1.pgm').height() kind 3, eps mean (of 15 total): 0.000532\n    test 1378 GeoidPGM('egm2008-1.pgm').height() kind 3, eps stdev (of 15 total): 0.000380\n    test 1379 GeoidPGM('egm2008-1.pgm').highest(): 44.15, -109.817, -7.089\n    test 1380 GeoidPGM('egm2008-1.pgm').lowerleft(): 25.0, -125.0, -45.45\n    test 1381 GeoidPGM('egm2008-1.pgm').lowerright(): 25.0, -64.983, -50.831\n    test 1382 GeoidPGM('egm2008-1.pgm').lowest(): 25.733, -69.767, -52.518\n    test 1383 GeoidPGM('egm2008-1.pgm').upperleft(): 55.0, -125.0, -10.722\n    test 1384 GeoidPGM('egm2008-1.pgm').upperright(): 55.0, -64.983, -16.223\n    test 1385 GeoidPGM('egm2008-1.pgm').dtype: (\"dtype('float64')\",)\n    test 1386 GeoidPGM('egm2008-1.pgm').knots: ('6485401',)\n    test 1387 GeoidPGM('egm2008-1.pgm').mean: ('-29.707',)\n    test 1388 GeoidPGM('egm2008-1.pgm').nBytes: ('51883208',)\n    test 1389 GeoidPGM('egm2008-1.pgm').smooth: ('0',)\n    test 1390 GeoidPGM('egm2008-1.pgm').stdev: ('9.505',)\n    test 1391 GeoidPGM('egm2008-1.pgm')._g2ll2(180, 360): (180, 0.0)\n    test 1392 GeoidPGM('egm2008-1.pgm')._ll2g2(180, 360): (180, 720.0)\n    test 1393 GeoidPGM('egm2008-1.pgm')._swne: (-10.0, -100.0, 10.0, 100.0)\n    test 1394 GeoidPGM('egm2008-1.pgm')._swne: (-10.0, -100.0, 10.0, 100.0)\n    test 1395 GeoidPGM('egm2008-1.pgm').toStr: GeoidPGM('egm2008-1.pgm'): lowerleft(25.0, -125.0, -45.45), upperright(55.0, -64.983, -16.223), center(40.0, -94.992, -31.838), highest(44.15, -109.817, -7.089), lowest(25.733, -69.767, -52.518)\n\n    test 1396 closed: True\n    test 1397 copy(<class 'type'>): (<class 'pygeodesy.geoids.GeoidPGM'>, True)\n    test 1398 GeoidPGM.copy(): (<class 'pygeodesy.geoids.GeoidPGM'>, True)\n    test 1399 GeoidKarney('egm84-15.pgm').height(-76.981, 34.17) kind 2: 11.727  FAILED, KNOWN, expected 11.729\n    test 1400 GeoidKarney('egm84-15.pgm').height(79.695, 88.806) kind 2: 0.280  FAILED, KNOWN, expected 0.270\n    test 1401 GeoidKarney('egm84-15.pgm').height(-15.245, 168.748) kind 2: 67.071  FAILED, KNOWN, expected 67.074\n    test 1402 GeoidKarney('egm84-15.pgm').height(-19.379, 15.855) kind 2: 25.366  FAILED, KNOWN, expected 25.344\n    test 1403 GeoidKarney('egm84-15.pgm').height(43.378, -130.552) kind 2: -28.913  FAILED, KNOWN, expected -28.919\n    test 1404 GeoidKarney('egm84-15.pgm').height(-16.075, 21.795) kind 2: 14.383  FAILED, KNOWN, expected 14.386\n    test 1405 GeoidKarney('egm84-15.pgm').height(-11.256, -73.75) kind 2: 30.701  FAILED, KNOWN, expected 30.700\n    test 1406 GeoidKarney('egm84-15.pgm').height(69.017, -15.921) kind 2: 62.222  FAILED, KNOWN, expected 62.225\n    test 1407 GeoidKarney('egm84-15.pgm').height(2.221, 139.739) kind 2: 70.221  FAILED, KNOWN, expected 70.222\n    test 1408 GeoidKarney('egm84-15.pgm').height(-9.097, 119.142) kind 2: 34.290  FAILED, KNOWN, expected 34.336\n    test 1409 GeoidKarney('egm84-15.pgm').height(-28.524, -22.192) kind 2: 8.205  FAILED, KNOWN, expected 8.206\n    test 1410 GeoidKarney('egm84-15.pgm').height(12.272, -136.424) kind 2: -20.068  FAILED, KNOWN, expected -20.074\n    test 1411 GeoidKarney('egm84-15.pgm').height(-15.203, -85.604) kind 2: -3.129\n    test 1412 GeoidKarney('egm84-15.pgm').height(-63.736, -77.17) kind 2: -3.214  FAILED, KNOWN, expected -3.217\n    test 1413 GeoidKarney('egm84-15.pgm').height(-48.771, -90.102) kind 2: -1.536  FAILED, KNOWN, expected -1.531\n    test 1414 GeoidKarney('egm84-15.pgm').height(-0.179, -126.368) kind 2: -16.742\n    test 1415 GeoidKarney('egm84-15.pgm').height(1.586, -128.887) kind 2: -15.418  FAILED, KNOWN, expected -15.412\n    test 1416 GeoidKarney('egm84-15.pgm').height(-48.781, -2.684) kind 2: 25.077  FAILED, KNOWN, expected 25.078\n    test 1417 GeoidKarney('egm84-15.pgm').height(-49.092, 136.862) kind 2: -18.114  FAILED, KNOWN, expected -18.120\n    test 1418 GeoidKarney('egm84-15.pgm').height(47.732, 17.552) kind 2: 46.230  FAILED, KNOWN, expected 46.224\n    test 1419 GeoidKarney('egm84-15.pgm').height(-49.11, 85.706) kind 2: 18.648  FAILED, KNOWN, expected 18.649\n    test 1420 GeoidKarney('egm84-15.pgm').height(-49.162, 40.321) kind 2: 44.759  FAILED, KNOWN, expected 44.764\n    test 1421 GeoidKarney('egm84-15.pgm').height(3.498, 158.118) kind 2: 51.095  FAILED, KNOWN, expected 51.089\n    test 1422 GeoidKarney('egm84-15.pgm').height(-35.616, 122.648) kind 2: -34.436  FAILED, KNOWN, expected -34.471\n    test 1423 GeoidKarney('egm84-15.pgm').height(56.598, -96.114) kind 2: -39.124\n    test 1424 GeoidKarney('egm84-15.pgm').height(-31.85, 149.121) kind 2: 28.131  FAILED, KNOWN, expected 28.142\n    test 1425 GeoidKarney('egm84-15.pgm').height(-26.569, -177.792) kind 2: 49.606  FAILED, KNOWN, expected 49.619\n    test 1426 GeoidKarney('egm84-15.pgm').height(76.735, -65.753) kind 2: 22.568  FAILED, KNOWN, expected 22.575\n    test 1427 GeoidKarney('egm84-15.pgm').height(-21.404, -122.268) kind 2: -6.894  FAILED, KNOWN, expected -6.893\n    test 1428 GeoidKarney('egm84-15.pgm').height(-77.133, -65.474) kind 2: -15.017  FAILED, KNOWN, expected -15.012\n    test 1429 GeoidKarney('egm84-15.pgm').height(-58.812, 2.276) kind 2: 18.777  FAILED, KNOWN, expected 18.776\n    test 1430 GeoidKarney('egm84-15.pgm').height(4.415, 155.683) kind 2: 53.644  FAILED, KNOWN, expected 53.645\n    test 1431 GeoidKarney('egm84-15.pgm').height(-28.146, 107.081) kind 2: -39.058  FAILED, KNOWN, expected -39.074\n    test 1432 GeoidKarney('egm84-15.pgm').height(-10.551, -126.69) kind 2: -9.643  FAILED, KNOWN, expected -9.645\n    test 1433 GeoidKarney('egm84-15.pgm').height(-25.444, -103.337) kind 2: -2.520  FAILED, KNOWN, expected -2.528\n    test 1434 GeoidKarney('egm84-15.pgm').height(24.436, 46.159) kind 2: -6.918  FAILED, KNOWN, expected -6.907\n    test 1435 GeoidKarney('egm84-15.pgm').height(-72.889, 37.107) kind 2: 21.758  FAILED, KNOWN, expected 21.711\n    test 1436 GeoidKarney('egm84-15.pgm').height(-19.629, 13.245) kind 2: 25.617  FAILED, KNOWN, expected 25.611\n    test 1437 GeoidKarney('egm84-15.pgm').height(-7.602, 171.265) kind 2: 41.585  FAILED, KNOWN, expected 41.569\n    test 1438 GeoidKarney('egm84-15.pgm').height(-45.364, -1.876) kind 2: 23.283  FAILED, KNOWN, expected 23.280\n    test 1439 GeoidKarney('egm84-15.pgm').height(-7.292, -69.18) kind 2: 24.497  FAILED, KNOWN, expected 24.502\n    test 1440 GeoidKarney('egm84-15.pgm').height(-31.566, -166.689) kind 2: 14.825  FAILED, KNOWN, expected 14.826\n    test 1441 GeoidKarney('egm84-15.pgm').height(-82.751, -162.085) kind 2: -45.104\n    test 1442 GeoidKarney('egm84-15.pgm').height(-40.7, 99.466) kind 2: -17.254  FAILED, KNOWN, expected -17.252\n    test 1443 GeoidKarney('egm84-15.pgm').height(48.676, 39.69) kind 2: 12.984  FAILED, KNOWN, expected 12.972\n    test 1444 GeoidKarney('egm84-15.pgm').height(74.817, -78.404) kind 2: 4.773  FAILED, KNOWN, expected 4.776\n    test 1445 GeoidKarney('egm84-15.pgm').height(-81.032, -63.865) kind 2: -23.577\n    test 1446 GeoidKarney('egm84-15.pgm').height(74.022, 9.432) kind 2: 43.884  FAILED, KNOWN, expected 43.885\n    test 1447 GeoidKarney('egm84-15.pgm').height(-75.071, 17.579) kind 2: 17.064  FAILED, KNOWN, expected 17.072\n    test 1448 GeoidKarney('egm84-15.pgm').height(-12.546, -54.851) kind 2: -6.637  FAILED, KNOWN, expected -6.643\n    test 1449 GeoidKarney('egm84-15.pgm').height(-13.621, 42.408) kind 2: -23.332  FAILED, KNOWN, expected -23.325\n    test 1450 GeoidKarney('egm84-15.pgm').height(-2.266, -91.951) kind 2: -10.689  FAILED, KNOWN, expected -10.698\n    test 1451 GeoidKarney('egm84-15.pgm').height(-18.672, 42.547) kind 2: -10.305  FAILED, KNOWN, expected -10.265\n    test 1452 GeoidKarney('egm84-15.pgm').height(-41.44, 157.413) kind 2: 0.692  FAILED, KNOWN, expected 0.689\n    test 1453 GeoidKarney('egm84-15.pgm').height(53.686, -79.375) kind 2: -43.763  FAILED, KNOWN, expected -43.758\n    test 1454 GeoidKarney('egm84-15.pgm').height(39.26, -30.351) kind 2: 57.551  FAILED, KNOWN, expected 57.554\n    test 1455 GeoidKarney('egm84-15.pgm').height(-51.699, -141.493) kind 2: -16.939  FAILED, KNOWN, expected -16.936\n    test 1456 GeoidKarney('egm84-15.pgm').height(36.585, 4.515) kind 2: 45.227  FAILED, KNOWN, expected 45.295\n    test 1457 GeoidKarney('egm84-15.pgm').height(39.642, -54.659) kind 2: -13.585  FAILED, KNOWN, expected -13.586\n    test 1458 GeoidKarney('egm84-15.pgm').height(59.761, 166.567) kind 2: 11.469  FAILED, KNOWN, expected 11.468\n    test 1459 GeoidKarney('egm84-15.pgm').height(51.83, 13.357) kind 2: 42.090  FAILED, KNOWN, expected 42.092\n    test 1460 GeoidKarney('egm84-15.pgm').height(-36.531, -175.431) kind 2: 22.828  FAILED, KNOWN, expected 22.830\n    test 1461 GeoidKarney('egm84-15.pgm').height(-37.08, 125.264) kind 2: -32.300  FAILED, KNOWN, expected -32.302\n    test 1462 GeoidKarney('egm84-15.pgm').height(-68.651, 92.732) kind 2: 9.212  FAILED, KNOWN, expected 9.228\n    test 1463 GeoidKarney('egm84-15.pgm').height(35.087, 45.336) kind 2: 6.000  FAILED, KNOWN, expected 5.965\n    test 1464 GeoidKarney('egm84-15.pgm').height(-61.356, -169.379) kind 2: -45.000  FAILED, KNOWN, expected -45.013\n    test 1465 GeoidKarney('egm84-15.pgm').height(-36.955, 179.12) kind 2: 21.148  FAILED, KNOWN, expected 21.118\n    test 1466 GeoidKarney('egm84-15.pgm').height(10.248, -6.714) kind 2: 30.500  FAILED, KNOWN, expected 30.497\n    test 1467 GeoidKarney('egm84-15.pgm').height(36.868, 84.602) kind 2: -40.416  FAILED, KNOWN, expected -40.396\n    test 1468 GeoidKarney('egm84-15.pgm').height(28.637, 88.933) kind 2: -31.726  FAILED, KNOWN, expected -31.704\n    test 1469 GeoidKarney('egm84-15.pgm').height(54.811, -99.968) kind 2: -32.271  FAILED, KNOWN, expected -32.277\n    test 1470 GeoidKarney('egm84-15.pgm').height(7.611, 145.911) kind 2: 61.016  FAILED, KNOWN, expected 61.024\n    test 1471 GeoidKarney('egm84-15.pgm').height(59.412, 170.102) kind 2: 5.017  FAILED, KNOWN, expected 4.994\n    test 1472 GeoidKarney('egm84-15.pgm').height(-61.469, 126.144) kind 2: -30.240  FAILED, KNOWN, expected -30.237\n    test 1473 GeoidKarney('egm84-15.pgm').height(18.514, -137.083) kind 2: -26.007  FAILED, KNOWN, expected -26.006\n    test 1474 GeoidKarney('egm84-15.pgm').height(7.854, -126.799) kind 2: -29.280  FAILED, KNOWN, expected -29.283\n    test 1475 GeoidKarney('egm84-15.pgm').height(47.489, 134.183) kind 2: 22.400  FAILED, KNOWN, expected 22.394\n    test 1476 GeoidKarney('egm84-15.pgm').height(-34.144, -11.922) kind 2: 17.549  FAILED, KNOWN, expected 17.550\n    test 1477 GeoidKarney('egm84-15.pgm').height(-58.389, 117.458) kind 2: -20.621  FAILED, KNOWN, expected -20.622\n    test 1478 GeoidKarney('egm84-15.pgm').height(9.773, 95.846) kind 2: -41.463  FAILED, KNOWN, expected -41.484\n    test 1479 GeoidKarney('egm84-15.pgm').height(-53.12, 136.994) kind 2: -20.969  FAILED, KNOWN, expected -20.968\n    test 1480 GeoidKarney('egm84-15.pgm').height(-50.35, 0.075) kind 2: 25.561  FAILED, KNOWN, expected 25.568\n    test 1481 GeoidKarney('egm84-15.pgm').height(31.438, -170.879) kind 2: -8.574  FAILED, KNOWN, expected -8.581\n    test 1482 GeoidKarney('egm84-15.pgm').height(37.541, -153.024) kind 2: -18.329\n    test 1483 GeoidKarney('egm84-15.pgm').height(27.586, 2.444) kind 2: 25.003  FAILED, KNOWN, expected 25.001\n    test 1484 GeoidKarney('egm84-15.pgm').height(-26.139, -106.201) kind 2: -2.945  FAILED, KNOWN, expected -2.940\n    test 1485 GeoidKarney('egm84-15.pgm').height(-33.426, -14.84) kind 2: 18.220  FAILED, KNOWN, expected 18.228\n    test 1486 GeoidKarney('egm84-15.pgm').height(39.586, -153.019) kind 2: -16.511  FAILED, KNOWN, expected -16.507\n    test 1487 GeoidKarney('egm84-15.pgm').height(-60.79, -2.578) kind 2: 14.277  FAILED, KNOWN, expected 14.275\n    test 1488 GeoidKarney('egm84-15.pgm').height(-20.131, 21.975) kind 2: 16.866  FAILED, KNOWN, expected 16.852\n    test 1489 GeoidKarney('egm84-15.pgm').height(75.649, 99.921) kind 2: -6.870  FAILED, KNOWN, expected -6.872\n    test 1490 GeoidKarney('egm84-15.pgm').height(-0.385, -23.788) kind 2: 8.987  FAILED, KNOWN, expected 9.006\n    test 1491 GeoidKarney('egm84-15.pgm').height(-51.56, -50.327) kind 2: 6.277  FAILED, KNOWN, expected 6.296\n    test 1492 GeoidKarney('egm84-15.pgm').height(-43.129, -167.271) kind 2: -1.483  FAILED, KNOWN, expected -1.481\n    test 1493 GeoidKarney('egm84-15.pgm').height(46.374, 71.948) kind 2: -40.929  FAILED, KNOWN, expected -40.915\n    test 1494 GeoidKarney('egm84-15.pgm').height(-22.783, 140.657) kind 2: 37.481  FAILED, KNOWN, expected 37.495\n    test 1495 GeoidKarney('egm84-15.pgm').height(-12.056, 122.804) kind 2: 32.222  FAILED, KNOWN, expected 32.258\n    test 1496 GeoidKarney('egm84-15.pgm').height(30.127, 94.738) kind 2: -41.529\n    test 1497 GeoidKarney('egm84-15.pgm').height(46.296, -174.479) kind 2: -1.377\n    test 1498 GeoidKarney('egm84-15.pgm').height(34.99, 15.052) kind 2: 35.263  FAILED, KNOWN, expected 35.280\n    test 1499 GeoidKarney('egm84-15.pgm').height(-51.287, 90.565) kind 2: 12.958\n    test 1500 GeoidKarney('egm84-15.pgm').height(34.217, 141.302) kind 2: 18.423  FAILED, KNOWN, expected 18.307\n    test 1501 GeoidKarney('egm84-15.pgm').height(-40.423, -142.787) kind 2: -10.400\n    test 1502 GeoidKarney('egm84-15.pgm').height(-17.854, -170.216) kind 2: 28.649  FAILED, KNOWN, expected 28.638\n    test 1503 GeoidKarney('egm84-15.pgm').height(47.803, 112.701) kind 2: -24.060  FAILED, KNOWN, expected -24.059\n    test 1504 GeoidKarney('egm84-15.pgm').height(-23.276, 133.454) kind 2: 18.800  FAILED, KNOWN, expected 18.806\n    test 1505 GeoidKarney('egm84-15.pgm').height(-26.884, -36.571) kind 2: -6.808  FAILED, KNOWN, expected -6.820\n    test 1506 GeoidKarney('egm84-15.pgm').height(-37.106, 31.128) kind 2: 31.485  FAILED, KNOWN, expected 31.486\n    test 1507 GeoidKarney('egm84-15.pgm').height(-75.363, -173.674) kind 2: -62.021  FAILED, KNOWN, expected -62.024\n    test 1508 GeoidKarney('egm84-15.pgm').height(-18.305, 69.016) kind 2: -24.246  FAILED, KNOWN, expected -24.248\n    test 1509 GeoidKarney('egm84-15.pgm').height(39.527, 23.58) kind 2: 43.246  FAILED, KNOWN, expected 43.255\n    test 1510 GeoidKarney('egm84-15.pgm').height(68.903, 30.97) kind 2: 18.496  FAILED, KNOWN, expected 18.498\n    test 1511 GeoidKarney('egm84-15.pgm').height(53.937, 168.318) kind 2: 4.100  FAILED, KNOWN, expected 4.067\n    test 1512 GeoidKarney('egm84-15.pgm').height(-38.6, 64.812) kind 2: 25.456  FAILED, KNOWN, expected 25.454\n    test 1513 GeoidKarney('egm84-15.pgm').height(-41.396, -69.739) kind 2: 26.619  FAILED, KNOWN, expected 26.657\n    test 1514 GeoidKarney('egm84-15.pgm').height(50.158, 72.319) kind 2: -32.003  FAILED, KNOWN, expected -31.966\n    test 1515 GeoidKarney('egm84-15.pgm').height(27.692, 176.153) kind 2: -4.422  FAILED, KNOWN, expected -4.415\n    test 1516 GeoidKarney('egm84-15.pgm').height(-48.419, 170.454) kind 2: -6.717  FAILED, KNOWN, expected -6.741\n    test 1517 GeoidKarney('egm84-15.pgm').height(-65.346, -124.976) kind 2: -34.915  FAILED, KNOWN, expected -34.900\n    test 1518 GeoidKarney('egm84-15.pgm').height(-51.873, 167.266) kind 2: -14.214  FAILED, KNOWN, expected -14.223\n    test 1519 GeoidKarney('egm84-15.pgm').height(-7.263, 84.308) kind 2: -79.313  FAILED, KNOWN, expected -79.317\n    test 1520 GeoidKarney('egm84-15.pgm').height(-1.461, -105.458) kind 2: -16.163\n    test 1521 GeoidKarney('egm84-15.pgm').height(7.684, 161.873) kind 2: 36.296  FAILED, KNOWN, expected 36.287\n    test 1522 GeoidKarney('egm84-15.pgm').height(-31.475, -158.52) kind 2: 4.066  FAILED, KNOWN, expected 4.068\n    test 1523 GeoidKarney('egm84-15.pgm').height(-36.187, 62.917) kind 2: 24.401  FAILED, KNOWN, expected 24.407\n    test 1524 GeoidKarney('egm84-15.pgm').height(16.003, 141.687) kind 2: 53.051  FAILED, KNOWN, expected 53.054\n    test 1525 GeoidKarney('egm84-15.pgm').height(30.182, 86.261) kind 2: -30.616  FAILED, KNOWN, expected -30.622\n    test 1526 GeoidKarney('egm84-15.pgm').height(-77.304, 159.498) kind 2: -53.544  FAILED, KNOWN, expected -53.540\n    test 1527 GeoidKarney('egm84-15.pgm').height(39.536, 139.795) kind 2: 36.274  FAILED, KNOWN, expected 36.262\n    test 1528 GeoidKarney('egm84-15.pgm').height(8.569, 134.618) kind 2: 64.339  FAILED, KNOWN, expected 64.369\n    test 1529 GeoidKarney('egm84-15.pgm').height(14.473, 90.596) kind 2: -61.320  FAILED, KNOWN, expected -61.300\n    test 1530 GeoidKarney('egm84-15.pgm').height(-13.138, -99.589) kind 2: -7.996  FAILED, KNOWN, expected -7.999\n    test 1531 GeoidKarney('egm84-15.pgm').height(34.212, -26.307) kind 2: 41.489  FAILED, KNOWN, expected 41.477\n    test 1532 GeoidKarney('egm84-15.pgm').height(21.89, 76.371) kind 2: -59.881  FAILED, KNOWN, expected -59.876\n    test 1533 GeoidKarney('egm84-15.pgm').height(29.793, 120.487) kind 2: 8.422  FAILED, KNOWN, expected 8.404\n    test 1534 GeoidKarney('egm84-15.pgm').height(15.724, 122.714) kind 2: 39.200  FAILED, KNOWN, expected 39.152\n    test 1535 GeoidKarney('egm84-15.pgm').height(-66.208, -78.499) kind 2: -7.068  FAILED, KNOWN, expected -7.076\n    test 1536 GeoidKarney('egm84-15.pgm').height(-39.507, 55.809) kind 2: 33.179  FAILED, KNOWN, expected 33.178\n    test 1537 GeoidKarney('egm84-15.pgm').height(28.159, 51.476) kind 2: -23.801  FAILED, KNOWN, expected -23.832\n    test 1538 GeoidKarney('egm84-15.pgm').height(-36.207, 120.205) kind 2: -38.175  FAILED, KNOWN, expected -38.206\n    test 1539 GeoidKarney('egm84-15.pgm').height(30.575, -99.998) kind 2: -22.171  FAILED, KNOWN, expected -22.142\n    test 1540 GeoidKarney('egm84-15.pgm').height(-16.993, 37.136) kind 2: -13.746  FAILED, KNOWN, expected -13.765\n    test 1541 GeoidKarney('egm84-15.pgm').height(-11.477, 12.039) kind 2: 16.909  FAILED, KNOWN, expected 16.898\n    test 1542 GeoidKarney('egm84-15.pgm').height(30.428, -144.765) kind 2: -22.479  FAILED, KNOWN, expected -22.474\n    test 1543 GeoidKarney('egm84-15.pgm').height(-17.44, -92.424) kind 2: -4.710  FAILED, KNOWN, expected -4.718\n    test 1544 GeoidKarney('egm84-15.pgm').height(40.203, 143.43) kind 2: 16.680  FAILED, KNOWN, expected 16.635\n    test 1545 GeoidKarney('egm84-15.pgm').height(-37.098, -106.574) kind 2: -9.012\n    test 1546 GeoidKarney('egm84-15.pgm').height(54.62, -68.413) kind 2: -23.556  FAILED, KNOWN, expected -23.543\n    test 1547 GeoidKarney('egm84-15.pgm').height(-31.633, 148.182) kind 2: 26.240  FAILED, KNOWN, expected 26.236\n    test 1548 GeoidKarney('egm84-15.pgm').height(-56.07, -141.407) kind 2: -21.963  FAILED, KNOWN, expected -21.953\n    test 1549 GeoidKarney('egm84-15.pgm').height(-8.195, -52.691) kind 2: -17.959\n    test 1550 GeoidKarney('egm84-15.pgm').height(17.851, 24.749) kind 2: 9.072  FAILED, KNOWN, expected 9.078\n    test 1551 GeoidKarney('egm84-15.pgm').height(0.349, -108.333) kind 2: -19.160  FAILED, KNOWN, expected -19.158\n    test 1552 GeoidKarney('egm84-15.pgm').height(15.038, 126.191) kind 2: 46.776\n    test 1553 GeoidKarney('egm84-15.pgm').height(-21.111, -123.696) kind 2: -8.053  FAILED, KNOWN, expected -8.055\n    test 1554 GeoidKarney('egm84-15.pgm').height(30.947, 173.002) kind 2: -7.681  FAILED, KNOWN, expected -7.696\n    test 1555 GeoidKarney('egm84-15.pgm').height(-10.698, -144.091) kind 2: -1.052  FAILED, KNOWN, expected -1.049\n    test 1556 GeoidKarney('egm84-15.pgm').height(-29.412, 124.753) kind 2: -16.081\n    test 1557 GeoidKarney('egm84-15.pgm').height(38.224, -137.189) kind 2: -35.429  FAILED, KNOWN, expected -35.427\n    test 1558 GeoidKarney('egm84-15.pgm').height(36.064, -132.409) kind 2: -38.648\n    test 1559 GeoidKarney('egm84-15.pgm').height(29.975, 178.076) kind 2: -5.524  FAILED, KNOWN, expected -5.519\n    test 1560 GeoidKarney('egm84-15.pgm').height(-21.346, 169.26) kind 2: 53.448  FAILED, KNOWN, expected 53.431\n    test 1561 GeoidKarney('egm84-15.pgm').height(49.282, -152.934) kind 2: 1.977  FAILED, KNOWN, expected 1.979\n    test 1562 GeoidKarney('egm84-15.pgm').height(16.349, -99.962) kind 2: -13.131  FAILED, KNOWN, expected -13.197\n    test 1563 GeoidKarney('egm84-15.pgm').height(-14.293, -167.34) kind 2: 18.953  FAILED, KNOWN, expected 18.945\n    test 1564 GeoidKarney('egm84-15.pgm').height(47.166, -38.523) kind 2: 45.180  FAILED, KNOWN, expected 45.187\n    test 1565 GeoidKarney('egm84-15.pgm').height(-58.911, 114.347) kind 2: -17.155  FAILED, KNOWN, expected -17.145\n    test 1566 GeoidKarney('egm84-15.pgm').height(-9.055, 111.294) kind 2: 13.136  FAILED, KNOWN, expected 13.146\n    test 1567 GeoidKarney('egm84-15.pgm').height(18.391, 29.692) kind 2: 4.933\n    test 1568 GeoidKarney('egm84-15.pgm').height(-15.074, 22.153) kind 2: 12.313  FAILED, KNOWN, expected 12.326\n    test 1569 GeoidKarney('egm84-15.pgm').height(-4.235, 62.001) kind 2: -60.029  FAILED, KNOWN, expected -60.030\n    test 1570 GeoidKarney('egm84-15.pgm').height(15.171, -86.583) kind 2: 3.034  FAILED, KNOWN, expected 3.110\n    test 1571 GeoidKarney('egm84-15.pgm').height(79.254, 112.116) kind 2: -2.741\n    test 1572 GeoidKarney('egm84-15.pgm').height(15.947, 156.093) kind 2: 32.108  FAILED, KNOWN, expected 32.085\n    test 1573 GeoidKarney('egm84-15.pgm').height(68.371, -177.382) kind 2: 2.069  FAILED, KNOWN, expected 2.060\n    test 1574 GeoidKarney('egm84-15.pgm').height(-41.931, -72.093) kind 2: 22.901  FAILED, KNOWN, expected 22.916\n    test 1575 GeoidKarney('egm84-15.pgm').height(-1.193, -143.133) kind 2: 5.526  FAILED, KNOWN, expected 5.519\n    test 1576 GeoidKarney('egm84-15.pgm').height(-37.006, 154.513) kind 2: 11.019  FAILED, KNOWN, expected 11.020\n    test 1577 GeoidKarney('egm84-15.pgm').height(-22.148, 9.938) kind 2: 22.181  FAILED, KNOWN, expected 22.171\n    test 1578 GeoidKarney('egm84-15.pgm').height(24.329, 109.044) kind 2: -22.957  FAILED, KNOWN, expected -22.944\n    test 1579 GeoidKarney('egm84-15.pgm').height(-54.878, 114.691) kind 2: -17.583  FAILED, KNOWN, expected -17.580\n    test 1580 GeoidKarney('egm84-15.pgm').height(45.601, -80.458) kind 2: -35.728  FAILED, KNOWN, expected -35.738\n    test 1581 GeoidKarney('egm84-15.pgm').height(2.372, 58.974) kind 2: -61.036  FAILED, KNOWN, expected -61.040\n    test 1582 GeoidKarney('egm84-15.pgm').height(15.937, 165.854) kind 2: 20.897  FAILED, KNOWN, expected 20.907\n    test 1583 GeoidKarney('egm84-15.pgm').height(4.889, -24.213) kind 2: 13.865  FAILED, KNOWN, expected 13.874\n    test 1584 GeoidKarney('egm84-15.pgm').height(-11.392, 179.558) kind 2: 40.920  FAILED, KNOWN, expected 40.929\n    test 1585 GeoidKarney('egm84-15.pgm').height(58.246, 4.862) kind 2: 43.196  FAILED, KNOWN, expected 43.191\n    test 1586 GeoidKarney('egm84-15.pgm').height(34.302, -109.109) kind 2: -22.016  FAILED, KNOWN, expected -22.006\n    test 1587 GeoidKarney('egm84-15.pgm').height(-58.196, 117.306) kind 2: -20.378  FAILED, KNOWN, expected -20.375\n    test 1588 GeoidKarney('egm84-15.pgm').height(44.5, 173.769) kind 2: -7.856  FAILED, KNOWN, expected -7.852\n    test 1589 GeoidKarney('egm84-15.pgm').height(-28.863, -139.775) kind 2: -8.680  FAILED, KNOWN, expected -8.674\n    test 1590 GeoidKarney('egm84-15.pgm').height(19.507, -96.099) kind 2: -14.089  FAILED, KNOWN, expected -14.117\n    test 1591 GeoidKarney('egm84-15.pgm').height(-42.488, -73.907) kind 2: 17.249  FAILED, KNOWN, expected 17.251\n    test 1592 GeoidKarney('egm84-15.pgm').height(46.138, -141.429) kind 2: -19.434  FAILED, KNOWN, expected -19.436\n    test 1593 GeoidKarney('egm84-15.pgm').height(60.507, 93.743) kind 2: -31.333  FAILED, KNOWN, expected -31.330\n    test 1594 GeoidKarney('egm84-15.pgm').height(26.219, -145.434) kind 2: -17.088  FAILED, KNOWN, expected -17.090\n    test 1595 GeoidKarney('egm84-15.pgm').height(-28.687, 3.37) kind 2: 24.177  FAILED, KNOWN, expected 24.184\n    test 1596 GeoidKarney('egm84-15.pgm').height(-15.008, 117.45) kind 2: 6.146  FAILED, KNOWN, expected 6.142\n    test 1597 GeoidKarney('egm84-15.pgm').height(40.71, 144.095) kind 2: 11.771  FAILED, KNOWN, expected 11.693\n    test 1598 GeoidKarney('egm84-15.pgm').height(20.823, -173.611) kind 2: 6.830  FAILED, KNOWN, expected 6.840\n    test 1599 GeoidKarney('egm84-15.pgm').height(16.776, -3.009) kind 2: 31.293  FAILED, KNOWN, expected 31.298\n    test 1600 GeoidKarney('egm84-15.pgm').height(41.0, -95.0) kind 2: -31.953  FAILED, KNOWN, expected -31.952\n    test 1601 GeoidKarney('egm84-15.pgm').height(49.0, -120.5) kind 2: -14.946\n    test 1602 GeoidKarney('egm84-15.pgm').height(49.0, -103.5) kind 2: -17.031  FAILED, KNOWN, expected -17.032\n    test 1603 GeoidKarney('egm84-15.pgm').height(49.0, -86.5) kind 2: -37.962\n    test 1604 GeoidKarney('egm84-15.pgm').height(49.0, -69.5) kind 2: -26.493  FAILED, KNOWN, expected -26.492\n    test 1605 GeoidKarney('egm84-15.pgm').height(33.0, -120.5) kind 2: -39.543\n    test 1606 GeoidKarney('egm84-15.pgm').height(33.0, -103.5) kind 2: -22.557  FAILED, KNOWN, expected -22.556\n    test 1607 GeoidKarney('egm84-15.pgm').height(33.0, -86.5) kind 2: -28.710\n    test 1608 GeoidKarney('egm84-15.pgm').height(33.0, -69.5) kind 2: -46.590\n\n    test 1609 GeoidKarney('egm84-15.pgm').height() kind 2, hits 0, eps max (in 0 FAILED): 0.115669\n    test 1610 GeoidKarney('egm84-15.pgm').height() kind 2, hits 0, eps mean (of 210 total): 0.010307\n    test 1611 GeoidKarney('egm84-15.pgm').height() kind 2, hits 0, eps stdev (of 210 total): 0.015203\n    test 1612 GeoidKarney('egm84-15.pgm').highest(): -4.5, 148.75, 81.33\n    test 1613 GeoidKarney('egm84-15.pgm').lowerleft(): -90.0, -180.0, -29.712\n    test 1614 GeoidKarney('egm84-15.pgm').lowerright(): -90.0, 180.0, -29.712\n    test 1615 GeoidKarney('egm84-15.pgm').lowest(): 4.75, 79.25, -107.34\n    test 1616 GeoidKarney('egm84-15.pgm').upperleft(): 90.0, -180.0, 13.098\n    test 1617 GeoidKarney('egm84-15.pgm').upperright(): 90.0, 180.0, 13.098\n    test 1618 GeoidKarney('egm84-15.pgm').dtype: (\"'ushort'\",)\n    test 1619 GeoidKarney('egm84-15.pgm').knots: ('1038240',)\n    test 1620 GeoidKarney('egm84-15.pgm').mean: ('-1.317',)\n    test 1621 GeoidKarney('egm84-15.pgm').nBytes: ('None',)\n    test 1622 GeoidKarney('egm84-15.pgm').smooth: ('None',)\n    test 1623 GeoidKarney('egm84-15.pgm').stdev: ('29.244',)\n    test 1624 GeoidKarney('egm84-15.pgm')._g2ll2(180, 360): (180, 0.0)\n    test 1625 GeoidKarney('egm84-15.pgm')._ll2g2(180, 360): (180, 360)\n    test 1626 GeoidKarney('egm84-15.pgm')._swne: (-10.0, -100.0, 10.0, 100.0)\n    test 1627 GeoidKarney('egm84-15.pgm')._swne: (-10.0, -100.0, 10.0, 100.0)\n    test 1628 GeoidKarney('egm84-15.pgm').toStr: GeoidKarney('egm84-15.pgm'): lowerleft(-90.0, -180.0, -29.712), upperright(90.0, 180.0, 13.098), center(0.0, 0.0, 18.33), highest(-4.5, 148.75, 81.33), lowest(4.75, 79.25, -107.34)\n\n    test 1629 closed: True\n    test 1630 copy(<class 'type'>): (<class 'pygeodesy.geoids.GeoidKarney'>, True)\n    test 1631 GeoidKarney.copy(): (<class 'pygeodesy.geoids.GeoidKarney'>, True)\n    test 1632 GeoidKarney('egm84-15.pgm').height(-76.981, 34.17) kind 3: 11.729\n    test 1633 GeoidKarney('egm84-15.pgm').height(79.695, 88.806) kind 3: 0.271  FAILED, KNOWN, expected 0.270\n    test 1634 GeoidKarney('egm84-15.pgm').height(-15.245, 168.748) kind 3: 67.074\n    test 1635 GeoidKarney('egm84-15.pgm').height(-19.379, 15.855) kind 3: 25.345  FAILED, KNOWN, expected 25.344\n    test 1636 GeoidKarney('egm84-15.pgm').height(43.378, -130.552) kind 3: -28.919\n    test 1637 GeoidKarney('egm84-15.pgm').height(-16.075, 21.795) kind 3: 14.386\n    test 1638 GeoidKarney('egm84-15.pgm').height(-11.256, -73.75) kind 3: 30.699  FAILED, KNOWN, expected 30.700\n    test 1639 GeoidKarney('egm84-15.pgm').height(69.017, -15.921) kind 3: 62.226  FAILED, KNOWN, expected 62.225\n    test 1640 GeoidKarney('egm84-15.pgm').height(2.221, 139.739) kind 3: 70.222\n    test 1641 GeoidKarney('egm84-15.pgm').height(-9.097, 119.142) kind 3: 34.334  FAILED, KNOWN, expected 34.336\n    test 1642 GeoidKarney('egm84-15.pgm').height(-28.524, -22.192) kind 3: 8.206\n    test 1643 GeoidKarney('egm84-15.pgm').height(12.272, -136.424) kind 3: -20.073  FAILED, KNOWN, expected -20.074\n    test 1644 GeoidKarney('egm84-15.pgm').height(-15.203, -85.604) kind 3: -3.129\n    test 1645 GeoidKarney('egm84-15.pgm').height(-63.736, -77.17) kind 3: -3.216  FAILED, KNOWN, expected -3.217\n    test 1646 GeoidKarney('egm84-15.pgm').height(-48.771, -90.102) kind 3: -1.532  FAILED, KNOWN, expected -1.531\n    test 1647 GeoidKarney('egm84-15.pgm').height(-0.179, -126.368) kind 3: -16.741  FAILED, KNOWN, expected -16.742\n    test 1648 GeoidKarney('egm84-15.pgm').height(1.586, -128.887) kind 3: -15.413  FAILED, KNOWN, expected -15.412\n    test 1649 GeoidKarney('egm84-15.pgm').height(-48.781, -2.684) kind 3: 25.079  FAILED, KNOWN, expected 25.078\n    test 1650 GeoidKarney('egm84-15.pgm').height(-49.092, 136.862) kind 3: -18.120\n    test 1651 GeoidKarney('egm84-15.pgm').height(47.732, 17.552) kind 3: 46.225  FAILED, KNOWN, expected 46.224\n    test 1652 GeoidKarney('egm84-15.pgm').height(-49.11, 85.706) kind 3: 18.649\n    test 1653 GeoidKarney('egm84-15.pgm').height(-49.162, 40.321) kind 3: 44.763  FAILED, KNOWN, expected 44.764\n    test 1654 GeoidKarney('egm84-15.pgm').height(3.498, 158.118) kind 3: 51.090  FAILED, KNOWN, expected 51.089\n    test 1655 GeoidKarney('egm84-15.pgm').height(-35.616, 122.648) kind 3: -34.470  FAILED, KNOWN, expected -34.471\n    test 1656 GeoidKarney('egm84-15.pgm').height(56.598, -96.114) kind 3: -39.125  FAILED, KNOWN, expected -39.124\n    test 1657 GeoidKarney('egm84-15.pgm').height(-31.85, 149.121) kind 3: 28.142\n    test 1658 GeoidKarney('egm84-15.pgm').height(-26.569, -177.792) kind 3: 49.620  FAILED, KNOWN, expected 49.619\n    test 1659 GeoidKarney('egm84-15.pgm').height(76.735, -65.753) kind 3: 22.576  FAILED, KNOWN, expected 22.575\n    test 1660 GeoidKarney('egm84-15.pgm').height(-21.404, -122.268) kind 3: -6.893\n    test 1661 GeoidKarney('egm84-15.pgm').height(-77.133, -65.474) kind 3: -15.013  FAILED, KNOWN, expected -15.012\n    test 1662 GeoidKarney('egm84-15.pgm').height(-58.812, 2.276) kind 3: 18.777  FAILED, KNOWN, expected 18.776\n    test 1663 GeoidKarney('egm84-15.pgm').height(4.415, 155.683) kind 3: 53.645\n    test 1664 GeoidKarney('egm84-15.pgm').height(-28.146, 107.081) kind 3: -39.073  FAILED, KNOWN, expected -39.074\n    test 1665 GeoidKarney('egm84-15.pgm').height(-10.551, -126.69) kind 3: -9.645\n    test 1666 GeoidKarney('egm84-15.pgm').height(-25.444, -103.337) kind 3: -2.527  FAILED, KNOWN, expected -2.528\n    test 1667 GeoidKarney('egm84-15.pgm').height(24.436, 46.159) kind 3: -6.907\n    test 1668 GeoidKarney('egm84-15.pgm').height(-72.889, 37.107) kind 3: 21.715  FAILED, KNOWN, expected 21.711\n    test 1669 GeoidKarney('egm84-15.pgm').height(-19.629, 13.245) kind 3: 25.612  FAILED, KNOWN, expected 25.611\n    test 1670 GeoidKarney('egm84-15.pgm').height(-7.602, 171.265) kind 3: 41.570  FAILED, KNOWN, expected 41.569\n    test 1671 GeoidKarney('egm84-15.pgm').height(-45.364, -1.876) kind 3: 23.280\n    test 1672 GeoidKarney('egm84-15.pgm').height(-7.292, -69.18) kind 3: 24.502\n    test 1673 GeoidKarney('egm84-15.pgm').height(-31.566, -166.689) kind 3: 14.825  FAILED, KNOWN, expected 14.826\n    test 1674 GeoidKarney('egm84-15.pgm').height(-82.751, -162.085) kind 3: -45.104\n    test 1675 GeoidKarney('egm84-15.pgm').height(-40.7, 99.466) kind 3: -17.252\n    test 1676 GeoidKarney('egm84-15.pgm').height(48.676, 39.69) kind 3: 12.972\n    test 1677 GeoidKarney('egm84-15.pgm').height(74.817, -78.404) kind 3: 4.777  FAILED, KNOWN, expected 4.776\n    test 1678 GeoidKarney('egm84-15.pgm').height(-81.032, -63.865) kind 3: -23.578  FAILED, KNOWN, expected -23.577\n    test 1679 GeoidKarney('egm84-15.pgm').height(74.022, 9.432) kind 3: 43.886  FAILED, KNOWN, expected 43.885\n    test 1680 GeoidKarney('egm84-15.pgm').height(-75.071, 17.579) kind 3: 17.071  FAILED, KNOWN, expected 17.072\n    test 1681 GeoidKarney('egm84-15.pgm').height(-12.546, -54.851) kind 3: -6.643\n    test 1682 GeoidKarney('egm84-15.pgm').height(-13.621, 42.408) kind 3: -23.326  FAILED, KNOWN, expected -23.325\n    test 1683 GeoidKarney('egm84-15.pgm').height(-2.266, -91.951) kind 3: -10.699  FAILED, KNOWN, expected -10.698\n    test 1684 GeoidKarney('egm84-15.pgm').height(-18.672, 42.547) kind 3: -10.268  FAILED, KNOWN, expected -10.265\n    test 1685 GeoidKarney('egm84-15.pgm').height(-41.44, 157.413) kind 3: 0.690  FAILED, KNOWN, expected 0.689\n    test 1686 GeoidKarney('egm84-15.pgm').height(53.686, -79.375) kind 3: -43.759  FAILED, KNOWN, expected -43.758\n    test 1687 GeoidKarney('egm84-15.pgm').height(39.26, -30.351) kind 3: 57.553  FAILED, KNOWN, expected 57.554\n    test 1688 GeoidKarney('egm84-15.pgm').height(-51.699, -141.493) kind 3: -16.937  FAILED, KNOWN, expected -16.936\n    test 1689 GeoidKarney('egm84-15.pgm').height(36.585, 4.515) kind 3: 45.291  FAILED, KNOWN, expected 45.295\n    test 1690 GeoidKarney('egm84-15.pgm').height(39.642, -54.659) kind 3: -13.585  FAILED, KNOWN, expected -13.586\n    test 1691 GeoidKarney('egm84-15.pgm').height(59.761, 166.567) kind 3: 11.467  FAILED, KNOWN, expected 11.468\n    test 1692 GeoidKarney('egm84-15.pgm').height(51.83, 13.357) kind 3: 42.092\n    test 1693 GeoidKarney('egm84-15.pgm').height(-36.531, -175.431) kind 3: 22.830\n    test 1694 GeoidKarney('egm84-15.pgm').height(-37.08, 125.264) kind 3: -32.302\n    test 1695 GeoidKarney('egm84-15.pgm').height(-68.651, 92.732) kind 3: 9.228\n    test 1696 GeoidKarney('egm84-15.pgm').height(35.087, 45.336) kind 3: 5.966  FAILED, KNOWN, expected 5.965\n    test 1697 GeoidKarney('egm84-15.pgm').height(-61.356, -169.379) kind 3: -45.012  FAILED, KNOWN, expected -45.013\n    test 1698 GeoidKarney('egm84-15.pgm').height(-36.955, 179.12) kind 3: 21.118\n    test 1699 GeoidKarney('egm84-15.pgm').height(10.248, -6.714) kind 3: 30.497\n    test 1700 GeoidKarney('egm84-15.pgm').height(36.868, 84.602) kind 3: -40.397  FAILED, KNOWN, expected -40.396\n    test 1701 GeoidKarney('egm84-15.pgm').height(28.637, 88.933) kind 3: -31.701  FAILED, KNOWN, expected -31.704\n    test 1702 GeoidKarney('egm84-15.pgm').height(54.811, -99.968) kind 3: -32.276  FAILED, KNOWN, expected -32.277\n    test 1703 GeoidKarney('egm84-15.pgm').height(7.611, 145.911) kind 3: 61.024\n    test 1704 GeoidKarney('egm84-15.pgm').height(59.412, 170.102) kind 3: 4.996  FAILED, KNOWN, expected 4.994\n    test 1705 GeoidKarney('egm84-15.pgm').height(-61.469, 126.144) kind 3: -30.238  FAILED, KNOWN, expected -30.237\n    test 1706 GeoidKarney('egm84-15.pgm').height(18.514, -137.083) kind 3: -26.006\n    test 1707 GeoidKarney('egm84-15.pgm').height(7.854, -126.799) kind 3: -29.283\n    test 1708 GeoidKarney('egm84-15.pgm').height(47.489, 134.183) kind 3: 22.393  FAILED, KNOWN, expected 22.394\n    test 1709 GeoidKarney('egm84-15.pgm').height(-34.144, -11.922) kind 3: 17.550\n    test 1710 GeoidKarney('egm84-15.pgm').height(-58.389, 117.458) kind 3: -20.623  FAILED, KNOWN, expected -20.622\n    test 1711 GeoidKarney('egm84-15.pgm').height(9.773, 95.846) kind 3: -41.482  FAILED, KNOWN, expected -41.484\n    test 1712 GeoidKarney('egm84-15.pgm').height(-53.12, 136.994) kind 3: -20.968\n    test 1713 GeoidKarney('egm84-15.pgm').height(-50.35, 0.075) kind 3: 25.567  FAILED, KNOWN, expected 25.568\n    test 1714 GeoidKarney('egm84-15.pgm').height(31.438, -170.879) kind 3: -8.581\n    test 1715 GeoidKarney('egm84-15.pgm').height(37.541, -153.024) kind 3: -18.330  FAILED, KNOWN, expected -18.329\n    test 1716 GeoidKarney('egm84-15.pgm').height(27.586, 2.444) kind 3: 25.000  FAILED, KNOWN, expected 25.001\n    test 1717 GeoidKarney('egm84-15.pgm').height(-26.139, -106.201) kind 3: -2.941  FAILED, KNOWN, expected -2.940\n    test 1718 GeoidKarney('egm84-15.pgm').height(-33.426, -14.84) kind 3: 18.229  FAILED, KNOWN, expected 18.228\n    test 1719 GeoidKarney('egm84-15.pgm').height(39.586, -153.019) kind 3: -16.507\n    test 1720 GeoidKarney('egm84-15.pgm').height(-60.79, -2.578) kind 3: 14.275\n    test 1721 GeoidKarney('egm84-15.pgm').height(-20.131, 21.975) kind 3: 16.853  FAILED, KNOWN, expected 16.852\n    test 1722 GeoidKarney('egm84-15.pgm').height(75.649, 99.921) kind 3: -6.872\n    test 1723 GeoidKarney('egm84-15.pgm').height(-0.385, -23.788) kind 3: 9.005  FAILED, KNOWN, expected 9.006\n    test 1724 GeoidKarney('egm84-15.pgm').height(-51.56, -50.327) kind 3: 6.294  FAILED, KNOWN, expected 6.296\n    test 1725 GeoidKarney('egm84-15.pgm').height(-43.129, -167.271) kind 3: -1.482  FAILED, KNOWN, expected -1.481\n    test 1726 GeoidKarney('egm84-15.pgm').height(46.374, 71.948) kind 3: -40.916  FAILED, KNOWN, expected -40.915\n    test 1727 GeoidKarney('egm84-15.pgm').height(-22.783, 140.657) kind 3: 37.495\n    test 1728 GeoidKarney('egm84-15.pgm').height(-12.056, 122.804) kind 3: 32.255  FAILED, KNOWN, expected 32.258\n    test 1729 GeoidKarney('egm84-15.pgm').height(30.127, 94.738) kind 3: -41.528  FAILED, KNOWN, expected -41.529\n    test 1730 GeoidKarney('egm84-15.pgm').height(46.296, -174.479) kind 3: -1.376  FAILED, KNOWN, expected -1.377\n    test 1731 GeoidKarney('egm84-15.pgm').height(34.99, 15.052) kind 3: 35.279  FAILED, KNOWN, expected 35.280\n    test 1732 GeoidKarney('egm84-15.pgm').height(-51.287, 90.565) kind 3: 12.958\n    test 1733 GeoidKarney('egm84-15.pgm').height(34.217, 141.302) kind 3: 18.313  FAILED, KNOWN, expected 18.307\n    test 1734 GeoidKarney('egm84-15.pgm').height(-40.423, -142.787) kind 3: -10.400\n    test 1735 GeoidKarney('egm84-15.pgm').height(-17.854, -170.216) kind 3: 28.640  FAILED, KNOWN, expected 28.638\n    test 1736 GeoidKarney('egm84-15.pgm').height(47.803, 112.701) kind 3: -24.059\n    test 1737 GeoidKarney('egm84-15.pgm').height(-23.276, 133.454) kind 3: 18.806\n    test 1738 GeoidKarney('egm84-15.pgm').height(-26.884, -36.571) kind 3: -6.819  FAILED, KNOWN, expected -6.820\n    test 1739 GeoidKarney('egm84-15.pgm').height(-37.106, 31.128) kind 3: 31.486\n    test 1740 GeoidKarney('egm84-15.pgm').height(-75.363, -173.674) kind 3: -62.024\n    test 1741 GeoidKarney('egm84-15.pgm').height(-18.305, 69.016) kind 3: -24.247  FAILED, KNOWN, expected -24.248\n    test 1742 GeoidKarney('egm84-15.pgm').height(39.527, 23.58) kind 3: 43.255\n    test 1743 GeoidKarney('egm84-15.pgm').height(68.903, 30.97) kind 3: 18.499  FAILED, KNOWN, expected 18.498\n    test 1744 GeoidKarney('egm84-15.pgm').height(53.937, 168.318) kind 3: 4.069  FAILED, KNOWN, expected 4.067\n    test 1745 GeoidKarney('egm84-15.pgm').height(-38.6, 64.812) kind 3: 25.455  FAILED, KNOWN, expected 25.454\n    test 1746 GeoidKarney('egm84-15.pgm').height(-41.396, -69.739) kind 3: 26.655  FAILED, KNOWN, expected 26.657\n    test 1747 GeoidKarney('egm84-15.pgm').height(50.158, 72.319) kind 3: -31.967  FAILED, KNOWN, expected -31.966\n    test 1748 GeoidKarney('egm84-15.pgm').height(27.692, 176.153) kind 3: -4.416  FAILED, KNOWN, expected -4.415\n    test 1749 GeoidKarney('egm84-15.pgm').height(-48.419, 170.454) kind 3: -6.741\n    test 1750 GeoidKarney('egm84-15.pgm').height(-65.346, -124.976) kind 3: -34.902  FAILED, KNOWN, expected -34.900\n    test 1751 GeoidKarney('egm84-15.pgm').height(-51.873, 167.266) kind 3: -14.223\n    test 1752 GeoidKarney('egm84-15.pgm').height(-7.263, 84.308) kind 3: -79.317\n    test 1753 GeoidKarney('egm84-15.pgm').height(-1.461, -105.458) kind 3: -16.162  FAILED, KNOWN, expected -16.163\n    test 1754 GeoidKarney('egm84-15.pgm').height(7.684, 161.873) kind 3: 36.288  FAILED, KNOWN, expected 36.287\n    test 1755 GeoidKarney('egm84-15.pgm').height(-31.475, -158.52) kind 3: 4.067  FAILED, KNOWN, expected 4.068\n    test 1756 GeoidKarney('egm84-15.pgm').height(-36.187, 62.917) kind 3: 24.406  FAILED, KNOWN, expected 24.407\n    test 1757 GeoidKarney('egm84-15.pgm').height(16.003, 141.687) kind 3: 53.053  FAILED, KNOWN, expected 53.054\n    test 1758 GeoidKarney('egm84-15.pgm').height(30.182, 86.261) kind 3: -30.621  FAILED, KNOWN, expected -30.622\n    test 1759 GeoidKarney('egm84-15.pgm').height(-77.304, 159.498) kind 3: -53.540\n    test 1760 GeoidKarney('egm84-15.pgm').height(39.536, 139.795) kind 3: 36.262\n    test 1761 GeoidKarney('egm84-15.pgm').height(8.569, 134.618) kind 3: 64.367  FAILED, KNOWN, expected 64.369\n    test 1762 GeoidKarney('egm84-15.pgm').height(14.473, 90.596) kind 3: -61.301  FAILED, KNOWN, expected -61.300\n    test 1763 GeoidKarney('egm84-15.pgm').height(-13.138, -99.589) kind 3: -8.000  FAILED, KNOWN, expected -7.999\n    test 1764 GeoidKarney('egm84-15.pgm').height(34.212, -26.307) kind 3: 41.479  FAILED, KNOWN, expected 41.477\n    test 1765 GeoidKarney('egm84-15.pgm').height(21.89, 76.371) kind 3: -59.875  FAILED, KNOWN, expected -59.876\n    test 1766 GeoidKarney('egm84-15.pgm').height(29.793, 120.487) kind 3: 8.404\n    test 1767 GeoidKarney('egm84-15.pgm').height(15.724, 122.714) kind 3: 39.154  FAILED, KNOWN, expected 39.152\n    test 1768 GeoidKarney('egm84-15.pgm').height(-66.208, -78.499) kind 3: -7.076\n    test 1769 GeoidKarney('egm84-15.pgm').height(-39.507, 55.809) kind 3: 33.179  FAILED, KNOWN, expected 33.178\n    test 1770 GeoidKarney('egm84-15.pgm').height(28.159, 51.476) kind 3: -23.832\n    test 1771 GeoidKarney('egm84-15.pgm').height(-36.207, 120.205) kind 3: -38.206\n    test 1772 GeoidKarney('egm84-15.pgm').height(30.575, -99.998) kind 3: -22.144  FAILED, KNOWN, expected -22.142\n    test 1773 GeoidKarney('egm84-15.pgm').height(-16.993, 37.136) kind 3: -13.763  FAILED, KNOWN, expected -13.765\n    test 1774 GeoidKarney('egm84-15.pgm').height(-11.477, 12.039) kind 3: 16.899  FAILED, KNOWN, expected 16.898\n    test 1775 GeoidKarney('egm84-15.pgm').height(30.428, -144.765) kind 3: -22.475  FAILED, KNOWN, expected -22.474\n    test 1776 GeoidKarney('egm84-15.pgm').height(-17.44, -92.424) kind 3: -4.717  FAILED, KNOWN, expected -4.718\n    test 1777 GeoidKarney('egm84-15.pgm').height(40.203, 143.43) kind 3: 16.635\n    test 1778 GeoidKarney('egm84-15.pgm').height(-37.098, -106.574) kind 3: -9.011  FAILED, KNOWN, expected -9.012\n    test 1779 GeoidKarney('egm84-15.pgm').height(54.62, -68.413) kind 3: -23.544  FAILED, KNOWN, expected -23.543\n    test 1780 GeoidKarney('egm84-15.pgm').height(-31.633, 148.182) kind 3: 26.236\n    test 1781 GeoidKarney('egm84-15.pgm').height(-56.07, -141.407) kind 3: -21.955  FAILED, KNOWN, expected -21.953\n    test 1782 GeoidKarney('egm84-15.pgm').height(-8.195, -52.691) kind 3: -17.959\n    test 1783 GeoidKarney('egm84-15.pgm').height(17.851, 24.749) kind 3: 9.078\n    test 1784 GeoidKarney('egm84-15.pgm').height(0.349, -108.333) kind 3: -19.157  FAILED, KNOWN, expected -19.158\n    test 1785 GeoidKarney('egm84-15.pgm').height(15.038, 126.191) kind 3: 46.776\n    test 1786 GeoidKarney('egm84-15.pgm').height(-21.111, -123.696) kind 3: -8.055\n    test 1787 GeoidKarney('egm84-15.pgm').height(30.947, 173.002) kind 3: -7.695  FAILED, KNOWN, expected -7.696\n    test 1788 GeoidKarney('egm84-15.pgm').height(-10.698, -144.091) kind 3: -1.048  FAILED, KNOWN, expected -1.049\n    test 1789 GeoidKarney('egm84-15.pgm').height(-29.412, 124.753) kind 3: -16.082  FAILED, KNOWN, expected -16.081\n    test 1790 GeoidKarney('egm84-15.pgm').height(38.224, -137.189) kind 3: -35.426  FAILED, KNOWN, expected -35.427\n    test 1791 GeoidKarney('egm84-15.pgm').height(36.064, -132.409) kind 3: -38.648\n    test 1792 GeoidKarney('egm84-15.pgm').height(29.975, 178.076) kind 3: -5.519\n    test 1793 GeoidKarney('egm84-15.pgm').height(-21.346, 169.26) kind 3: 53.430  FAILED, KNOWN, expected 53.431\n    test 1794 GeoidKarney('egm84-15.pgm').height(49.282, -152.934) kind 3: 1.978  FAILED, KNOWN, expected 1.979\n    test 1795 GeoidKarney('egm84-15.pgm').height(16.349, -99.962) kind 3: -13.194  FAILED, KNOWN, expected -13.197\n    test 1796 GeoidKarney('egm84-15.pgm').height(-14.293, -167.34) kind 3: 18.945\n    test 1797 GeoidKarney('egm84-15.pgm').height(47.166, -38.523) kind 3: 45.185  FAILED, KNOWN, expected 45.187\n    test 1798 GeoidKarney('egm84-15.pgm').height(-58.911, 114.347) kind 3: -17.146  FAILED, KNOWN, expected -17.145\n    test 1799 GeoidKarney('egm84-15.pgm').height(-9.055, 111.294) kind 3: 13.145  FAILED, KNOWN, expected 13.146\n    test 1800 GeoidKarney('egm84-15.pgm').height(18.391, 29.692) kind 3: 4.932  FAILED, KNOWN, expected 4.933\n    test 1801 GeoidKarney('egm84-15.pgm').height(-15.074, 22.153) kind 3: 12.327  FAILED, KNOWN, expected 12.326\n    test 1802 GeoidKarney('egm84-15.pgm').height(-4.235, 62.001) kind 3: -60.029  FAILED, KNOWN, expected -60.030\n    test 1803 GeoidKarney('egm84-15.pgm').height(15.171, -86.583) kind 3: 3.107  FAILED, KNOWN, expected 3.110\n    test 1804 GeoidKarney('egm84-15.pgm').height(79.254, 112.116) kind 3: -2.741\n    test 1805 GeoidKarney('egm84-15.pgm').height(15.947, 156.093) kind 3: 32.086  FAILED, KNOWN, expected 32.085\n    test 1806 GeoidKarney('egm84-15.pgm').height(68.371, -177.382) kind 3: 2.060\n    test 1807 GeoidKarney('egm84-15.pgm').height(-41.931, -72.093) kind 3: 22.916\n    test 1808 GeoidKarney('egm84-15.pgm').height(-1.193, -143.133) kind 3: 5.519\n    test 1809 GeoidKarney('egm84-15.pgm').height(-37.006, 154.513) kind 3: 11.021  FAILED, KNOWN, expected 11.020\n    test 1810 GeoidKarney('egm84-15.pgm').height(-22.148, 9.938) kind 3: 22.171\n    test 1811 GeoidKarney('egm84-15.pgm').height(24.329, 109.044) kind 3: -22.945  FAILED, KNOWN, expected -22.944\n    test 1812 GeoidKarney('egm84-15.pgm').height(-54.878, 114.691) kind 3: -17.579  FAILED, KNOWN, expected -17.580\n    test 1813 GeoidKarney('egm84-15.pgm').height(45.601, -80.458) kind 3: -35.737  FAILED, KNOWN, expected -35.738\n    test 1814 GeoidKarney('egm84-15.pgm').height(2.372, 58.974) kind 3: -61.040\n    test 1815 GeoidKarney('egm84-15.pgm').height(15.937, 165.854) kind 3: 20.906  FAILED, KNOWN, expected 20.907\n    test 1816 GeoidKarney('egm84-15.pgm').height(4.889, -24.213) kind 3: 13.874\n    test 1817 GeoidKarney('egm84-15.pgm').height(-11.392, 179.558) kind 3: 40.928  FAILED, KNOWN, expected 40.929\n    test 1818 GeoidKarney('egm84-15.pgm').height(58.246, 4.862) kind 3: 43.191\n    test 1819 GeoidKarney('egm84-15.pgm').height(34.302, -109.109) kind 3: -22.006\n    test 1820 GeoidKarney('egm84-15.pgm').height(-58.196, 117.306) kind 3: -20.375\n    test 1821 GeoidKarney('egm84-15.pgm').height(44.5, 173.769) kind 3: -7.851  FAILED, KNOWN, expected -7.852\n    test 1822 GeoidKarney('egm84-15.pgm').height(-28.863, -139.775) kind 3: -8.675  FAILED, KNOWN, expected -8.674\n    test 1823 GeoidKarney('egm84-15.pgm').height(19.507, -96.099) kind 3: -14.116  FAILED, KNOWN, expected -14.117\n    test 1824 GeoidKarney('egm84-15.pgm').height(-42.488, -73.907) kind 3: 17.252  FAILED, KNOWN, expected 17.251\n    test 1825 GeoidKarney('egm84-15.pgm').height(46.138, -141.429) kind 3: -19.435  FAILED, KNOWN, expected -19.436\n    test 1826 GeoidKarney('egm84-15.pgm').height(60.507, 93.743) kind 3: -31.331  FAILED, KNOWN, expected -31.330\n    test 1827 GeoidKarney('egm84-15.pgm').height(26.219, -145.434) kind 3: -17.091  FAILED, KNOWN, expected -17.090\n    test 1828 GeoidKarney('egm84-15.pgm').height(-28.687, 3.37) kind 3: 24.184\n    test 1829 GeoidKarney('egm84-15.pgm').height(-15.008, 117.45) kind 3: 6.142\n    test 1830 GeoidKarney('egm84-15.pgm').height(40.71, 144.095) kind 3: 11.693\n    test 1831 GeoidKarney('egm84-15.pgm').height(20.823, -173.611) kind 3: 6.839  FAILED, KNOWN, expected 6.840\n    test 1832 GeoidKarney('egm84-15.pgm').height(16.776, -3.009) kind 3: 31.298\n    test 1833 GeoidKarney('egm84-15.pgm').height(41.0, -95.0) kind 3: -31.952\n    test 1834 GeoidKarney('egm84-15.pgm').height(49.0, -120.5) kind 3: -14.946\n    test 1835 GeoidKarney('egm84-15.pgm').height(49.0, -103.5) kind 3: -17.032\n    test 1836 GeoidKarney('egm84-15.pgm').height(49.0, -86.5) kind 3: -37.962\n    test 1837 GeoidKarney('egm84-15.pgm').height(49.0, -69.5) kind 3: -26.492\n    test 1838 GeoidKarney('egm84-15.pgm').height(33.0, -120.5) kind 3: -39.543\n    test 1839 GeoidKarney('egm84-15.pgm').height(33.0, -103.5) kind 3: -22.556\n    test 1840 GeoidKarney('egm84-15.pgm').height(33.0, -86.5) kind 3: -28.710\n    test 1841 GeoidKarney('egm84-15.pgm').height(33.0, -69.5) kind 3: -46.590\n\n    test 1842 GeoidKarney('egm84-15.pgm').height() kind 3, hits 0, eps max (in 0 FAILED): 0.005459\n    test 1843 GeoidKarney('egm84-15.pgm').height() kind 3, hits 0, eps mean (of 210 total): 0.000736\n    test 1844 GeoidKarney('egm84-15.pgm').height() kind 3, hits 0, eps stdev (of 210 total): 0.000728\n    test 1845 GeoidKarney('egm84-15.pgm').highest(): -4.5, 148.75, 81.33\n    test 1846 GeoidKarney('egm84-15.pgm').lowerleft(): -90.0, -180.0, -29.712\n    test 1847 GeoidKarney('egm84-15.pgm').lowerright(): -90.0, 180.0, -29.712\n    test 1848 GeoidKarney('egm84-15.pgm').lowest(): 4.75, 79.25, -107.34\n    test 1849 GeoidKarney('egm84-15.pgm').upperleft(): 90.0, -180.0, 13.098\n    test 1850 GeoidKarney('egm84-15.pgm').upperright(): 90.0, 180.0, 13.098\n    test 1851 GeoidKarney('egm84-15.pgm').dtype: (\"'ushort'\",)\n    test 1852 GeoidKarney('egm84-15.pgm').knots: ('1038240',)\n    test 1853 GeoidKarney('egm84-15.pgm').mean: ('-1.317',)\n    test 1854 GeoidKarney('egm84-15.pgm').nBytes: ('None',)\n    test 1855 GeoidKarney('egm84-15.pgm').smooth: ('None',)\n    test 1856 GeoidKarney('egm84-15.pgm').stdev: ('29.244',)\n    test 1857 GeoidKarney('egm84-15.pgm')._g2ll2(180, 360): (180, 0.0)\n    test 1858 GeoidKarney('egm84-15.pgm')._ll2g2(180, 360): (180, 360)\n    test 1859 GeoidKarney('egm84-15.pgm')._swne: (-10.0, -100.0, 10.0, 100.0)\n    test 1860 GeoidKarney('egm84-15.pgm')._swne: (-10.0, -100.0, 10.0, 100.0)\n    test 1861 GeoidKarney('egm84-15.pgm').toStr: GeoidKarney('egm84-15.pgm'): lowerleft(-90.0, -180.0, -29.712), upperright(90.0, 180.0, 13.098), center(0.0, 0.0, 18.33), highest(-4.5, 148.75, 81.33), lowest(4.75, 79.25, -107.34)\n\n    test 1862 closed: True\n    test 1863 copy(<class 'type'>): (<class 'pygeodesy.geoids.GeoidKarney'>, True)\n    test 1864 GeoidKarney.copy(): (<class 'pygeodesy.geoids.GeoidKarney'>, True)\n    test 1865 GeoidPGM('egm84-15.pgm').height(-76.981, 34.17) kind 3: lli ('-76.981466, 34.17016'), H (False) or wrap (False): lli ('-76.981466, 34.17016'): outside on SE  FAILED, KNOWN, expected 11.729\n    test 1866 GeoidPGM('egm84-15.pgm').height(79.695, 88.806) kind 3: lli ('79.695484, 88.805571'), H (False) or wrap (False): lli ('79.695484, 88.805571'): outside on NE  FAILED, KNOWN, expected 0.270\n    test 1867 GeoidPGM('egm84-15.pgm').height(-15.245, 168.748) kind 3: lli ('-15.244804, 168.747961'), H (False) or wrap (False): lli ('-15.244804, 168.747961'): outside on SE  FAILED, KNOWN, expected 67.074\n    test 1868 GeoidPGM('egm84-15.pgm').height(-19.379, 15.855) kind 3: lli ('-19.379357, 15.85511'), H (False) or wrap (False): lli ('-19.379357, 15.85511'): outside on SE  FAILED, KNOWN, expected 25.344\n    test 1869 GeoidPGM('egm84-15.pgm').height(43.378, -130.552) kind 3: lli ('43.377784, -130.551582'), H (False) or wrap (False): lli ('43.377784, -130.551582'): outside on W  FAILED, KNOWN, expected -28.919\n    test 1870 GeoidPGM('egm84-15.pgm').height(-16.075, 21.795) kind 3: lli ('-16.074554, 21.79547'), H (False) or wrap (False): lli ('-16.074554, 21.79547'): outside on SE  FAILED, KNOWN, expected 14.386\n    test 1871 GeoidPGM('egm84-15.pgm').height(-11.256, -73.75) kind 3: lli ('-11.256389, -73.750255'), H (False) or wrap (False): lli ('-11.256389, -73.750255'): outside on S  FAILED, KNOWN, expected 30.700\n    test 1872 GeoidPGM('egm84-15.pgm').height(69.017, -15.921) kind 3: lli ('69.016564, -15.921115'), H (False) or wrap (False): lli ('69.016564, -15.921115'): outside on NE  FAILED, KNOWN, expected 62.225\n    test 1873 GeoidPGM('egm84-15.pgm').height(2.221, 139.739) kind 3: lli ('2.221008, 139.73935'), H (False) or wrap (False): lli ('2.221008, 139.73935'): outside on SE  FAILED, KNOWN, expected 70.222\n    test 1874 GeoidPGM('egm84-15.pgm').height(-9.097, 119.142) kind 3: lli ('-9.096878, 119.141551'), H (False) or wrap (False): lli ('-9.096878, 119.141551'): outside on SE  FAILED, KNOWN, expected 34.336\n    test 1875 GeoidPGM('egm84-15.pgm').height(-28.524, -22.192) kind 3: lli ('-28.523717, -22.1925'), H (False) or wrap (False): lli ('-28.523717, -22.1925'): outside on SE  FAILED, KNOWN, expected 8.206\n    test 1876 GeoidPGM('egm84-15.pgm').height(12.272, -136.424) kind 3: lli ('12.27231, -136.424168'), H (False) or wrap (False): lli ('12.27231, -136.424168'): outside on SW  FAILED, KNOWN, expected -20.074\n    test 1877 GeoidPGM('egm84-15.pgm').height(-15.203, -85.604) kind 3: lli ('-15.20317, -85.603753'), H (False) or wrap (False): lli ('-15.20317, -85.603753'): outside on S  FAILED, KNOWN, expected -3.129\n    test 1878 GeoidPGM('egm84-15.pgm').height(-63.736, -77.17) kind 3: lli ('-63.735565, -77.169636'), H (False) or wrap (False): lli ('-63.735565, -77.169636'): outside on S  FAILED, KNOWN, expected -3.217\n    test 1879 GeoidPGM('egm84-15.pgm').height(-48.771, -90.102) kind 3: lli ('-48.770825, -90.102117'), H (False) or wrap (False): lli ('-48.770825, -90.102117'): outside on S  FAILED, KNOWN, expected -1.531\n    test 1880 GeoidPGM('egm84-15.pgm').height(-0.179, -126.368) kind 3: lli ('-0.178524, -126.368279'), H (False) or wrap (False): lli ('-0.178524, -126.368279'): outside on SW  FAILED, KNOWN, expected -16.742\n    test 1881 GeoidPGM('egm84-15.pgm').height(1.586, -128.887) kind 3: lli ('1.585536, -128.886967'), H (False) or wrap (False): lli ('1.585536, -128.886967'): outside on SW  FAILED, KNOWN, expected -15.412\n    test 1882 GeoidPGM('egm84-15.pgm').height(-48.781, -2.684) kind 3: lli ('-48.780705, -2.684224'), H (False) or wrap (False): lli ('-48.780705, -2.684224'): outside on SE  FAILED, KNOWN, expected 25.078\n    test 1883 GeoidPGM('egm84-15.pgm').height(-49.092, 136.862) kind 3: lli ('-49.091632, 136.862256'), H (False) or wrap (False): lli ('-49.091632, 136.862256'): outside on SE  FAILED, KNOWN, expected -18.120\n    test 1884 GeoidPGM('egm84-15.pgm').height(47.732, 17.552) kind 3: lli ('47.731727, 17.552416'), H (False) or wrap (False): lli ('47.731727, 17.552416'): outside on E  FAILED, KNOWN, expected 46.224\n    test 1885 GeoidPGM('egm84-15.pgm').height(-49.11, 85.706) kind 3: lli ('-49.109549, 85.706437'), H (False) or wrap (False): lli ('-49.109549, 85.706437'): outside on SE  FAILED, KNOWN, expected 18.649\n    test 1886 GeoidPGM('egm84-15.pgm').height(-49.162, 40.321) kind 3: lli ('-49.162281, 40.321209'), H (False) or wrap (False): lli ('-49.162281, 40.321209'): outside on SE  FAILED, KNOWN, expected 44.764\n    test 1887 GeoidPGM('egm84-15.pgm').height(3.498, 158.118) kind 3: lli ('3.498333, 158.117699'), H (False) or wrap (False): lli ('3.498333, 158.117699'): outside on SE  FAILED, KNOWN, expected 51.089\n    test 1888 GeoidPGM('egm84-15.pgm').height(-35.616, 122.648) kind 3: lli ('-35.616495, 122.648407'), H (False) or wrap (False): lli ('-35.616495, 122.648407'): outside on SE  FAILED, KNOWN, expected -34.471\n    test 1889 GeoidPGM('egm84-15.pgm').height(56.598, -96.114) kind 3: lli ('56.598256, -96.113696'), H (False) or wrap (False): lli ('56.598256, -96.113696'): outside on N  FAILED, KNOWN, expected -39.124\n    test 1890 GeoidPGM('egm84-15.pgm').height(-31.85, 149.121) kind 3: lli ('-31.850231, 149.120596'), H (False) or wrap (False): lli ('-31.850231, 149.120596'): outside on SE  FAILED, KNOWN, expected 28.142\n    test 1891 GeoidPGM('egm84-15.pgm').height(-26.569, -177.792) kind 3: lli ('-26.568996, -177.792196'), H (False) or wrap (False): lli ('-26.568996, -177.792196'): outside on SW  FAILED, KNOWN, expected 49.619\n    test 1892 GeoidPGM('egm84-15.pgm').height(76.735, -65.753) kind 3: lli ('76.734699, -65.752952'), H (False) or wrap (False): lli ('76.734699, -65.752952'): outside on N  FAILED, KNOWN, expected 22.575\n    test 1893 GeoidPGM('egm84-15.pgm').height(-21.404, -122.268) kind 3: lli ('-21.404166, -122.267869'), H (False) or wrap (False): lli ('-21.404166, -122.267869'): outside on S  FAILED, KNOWN, expected -6.893\n    test 1894 GeoidPGM('egm84-15.pgm').height(-77.133, -65.474) kind 3: lli ('-77.133426, -65.473819'), H (False) or wrap (False): lli ('-77.133426, -65.473819'): outside on S  FAILED, KNOWN, expected -15.012\n    test 1895 GeoidPGM('egm84-15.pgm').height(-58.812, 2.276) kind 3: lli ('-58.811779, 2.276142'), H (False) or wrap (False): lli ('-58.811779, 2.276142'): outside on SE  FAILED, KNOWN, expected 18.776\n    test 1896 GeoidPGM('egm84-15.pgm').height(4.415, 155.683) kind 3: lli ('4.415102, 155.683336'), H (False) or wrap (False): lli ('4.415102, 155.683336'): outside on SE  FAILED, KNOWN, expected 53.645\n    test 1897 GeoidPGM('egm84-15.pgm').height(-28.146, 107.081) kind 3: lli ('-28.145768, 107.081334'), H (False) or wrap (False): lli ('-28.145768, 107.081334'): outside on SE  FAILED, KNOWN, expected -39.074\n    test 1898 GeoidPGM('egm84-15.pgm').height(-10.551, -126.69) kind 3: lli ('-10.551267, -126.690468'), H (False) or wrap (False): lli ('-10.551267, -126.690468'): outside on SW  FAILED, KNOWN, expected -9.645\n    test 1899 GeoidPGM('egm84-15.pgm').height(-25.444, -103.337) kind 3: lli ('-25.444344, -103.337184'), H (False) or wrap (False): lli ('-25.444344, -103.337184'): outside on S  FAILED, KNOWN, expected -2.528\n    test 1900 GeoidPGM('egm84-15.pgm').height(24.436, 46.159) kind 3: lli ('24.435896, 46.158715'), H (False) or wrap (False): lli ('24.435896, 46.158715'): outside on SE  FAILED, KNOWN, expected -6.907\n    test 1901 GeoidPGM('egm84-15.pgm').height(-72.889, 37.107) kind 3: lli ('-72.888898, 37.106907'), H (False) or wrap (False): lli ('-72.888898, 37.106907'): outside on SE  FAILED, KNOWN, expected 21.711\n    test 1902 GeoidPGM('egm84-15.pgm').height(-19.629, 13.245) kind 3: lli ('-19.628762, 13.244525'), H (False) or wrap (False): lli ('-19.628762, 13.244525'): outside on SE  FAILED, KNOWN, expected 25.611\n    test 1903 GeoidPGM('egm84-15.pgm').height(-7.602, 171.265) kind 3: lli ('-7.602449, 171.264763'), H (False) or wrap (False): lli ('-7.602449, 171.264763'): outside on SE  FAILED, KNOWN, expected 41.569\n    test 1904 GeoidPGM('egm84-15.pgm').height(-45.364, -1.876) kind 3: lli ('-45.364396, -1.876412'), H (False) or wrap (False): lli ('-45.364396, -1.876412'): outside on SE  FAILED, KNOWN, expected 23.280\n    test 1905 GeoidPGM('egm84-15.pgm').height(-7.292, -69.18) kind 3: lli ('-7.292121, -69.179565'), H (False) or wrap (False): lli ('-7.292121, -69.179565'): outside on S  FAILED, KNOWN, expected 24.502\n    test 1906 GeoidPGM('egm84-15.pgm').height(-31.566, -166.689) kind 3: lli ('-31.566264, -166.688985'), H (False) or wrap (False): lli ('-31.566264, -166.688985'): outside on SW  FAILED, KNOWN, expected 14.826\n    test 1907 GeoidPGM('egm84-15.pgm').height(-82.751, -162.085) kind 3: lli ('-82.751144, -162.08523'), H (False) or wrap (False): lli ('-82.751144, -162.08523'): outside on SW  FAILED, KNOWN, expected -45.104\n    test 1908 GeoidPGM('egm84-15.pgm').height(-40.7, 99.466) kind 3: lli ('-40.699637, 99.465509'), H (False) or wrap (False): lli ('-40.699637, 99.465509'): outside on SE  FAILED, KNOWN, expected -17.252\n    test 1909 GeoidPGM('egm84-15.pgm').height(48.676, 39.69) kind 3: lli ('48.675771, 39.690012'), H (False) or wrap (False): lli ('48.675771, 39.690012'): outside on E  FAILED, KNOWN, expected 12.972\n    test 1910 GeoidPGM('egm84-15.pgm').height(74.817, -78.404) kind 3: lli ('74.817287, -78.404187'), H (False) or wrap (False): lli ('74.817287, -78.404187'): outside on N  FAILED, KNOWN, expected 4.776\n    test 1911 GeoidPGM('egm84-15.pgm').height(-81.032, -63.865) kind 3: lli ('-81.032306, -63.864898'), H (False) or wrap (False): lli ('-81.032306, -63.864898'): outside on SE  FAILED, KNOWN, expected -23.577\n    test 1912 GeoidPGM('egm84-15.pgm').height(74.022, 9.432) kind 3: lli ('74.021785, 9.431926'), H (False) or wrap (False): lli ('74.021785, 9.431926'): outside on NE  FAILED, KNOWN, expected 43.885\n    test 1913 GeoidPGM('egm84-15.pgm').height(-75.071, 17.579) kind 3: lli ('-75.070563, 17.57935'), H (False) or wrap (False): lli ('-75.070563, 17.57935'): outside on SE  FAILED, KNOWN, expected 17.072\n    test 1914 GeoidPGM('egm84-15.pgm').height(-12.546, -54.851) kind 3: lli ('-12.54612, -54.850614'), H (False) or wrap (False): lli ('-12.54612, -54.850614'): outside on SE  FAILED, KNOWN, expected -6.643\n    test 1915 GeoidPGM('egm84-15.pgm').height(-13.621, 42.408) kind 3: lli ('-13.621418, 42.407805'), H (False) or wrap (False): lli ('-13.621418, 42.407805'): outside on SE  FAILED, KNOWN, expected -23.325\n    test 1916 GeoidPGM('egm84-15.pgm').height(-2.266, -91.951) kind 3: lli ('-2.265774, -91.951437'), H (False) or wrap (False): lli ('-2.265774, -91.951437'): outside on S  FAILED, KNOWN, expected -10.698\n    test 1917 GeoidPGM('egm84-15.pgm').height(-18.672, 42.547) kind 3: lli ('-18.672316, 42.547125'), H (False) or wrap (False): lli ('-18.672316, 42.547125'): outside on SE  FAILED, KNOWN, expected -10.265\n    test 1918 GeoidPGM('egm84-15.pgm').height(-41.44, 157.413) kind 3: lli ('-41.439867, 157.413161'), H (False) or wrap (False): lli ('-41.439867, 157.413161'): outside on SE  FAILED, KNOWN, expected 0.689\n    test 1919 GeoidPGM('egm84-15.pgm').height(53.686, -79.375) kind 3: -43.759  FAILED, KNOWN, expected -43.758\n    test 1920 GeoidPGM('egm84-15.pgm').height(39.26, -30.351) kind 3: lli ('39.260397, -30.351359'), H (False) or wrap (False): lli ('39.260397, -30.351359'): outside on E  FAILED, KNOWN, expected 57.554\n    test 1921 GeoidPGM('egm84-15.pgm').height(-51.699, -141.493) kind 3: lli ('-51.699195, -141.493082'), H (False) or wrap (False): lli ('-51.699195, -141.493082'): outside on SW  FAILED, KNOWN, expected -16.936\n    test 1922 GeoidPGM('egm84-15.pgm').height(36.585, 4.515) kind 3: lli ('36.584861, 4.515157'), H (False) or wrap (False): lli ('36.584861, 4.515157'): outside on E  FAILED, KNOWN, expected 45.295\n    test 1923 GeoidPGM('egm84-15.pgm').height(39.642, -54.659) kind 3: lli ('39.641638, -54.658846'), H (False) or wrap (False): lli ('39.641638, -54.658846'): outside on E  FAILED, KNOWN, expected -13.586\n    test 1924 GeoidPGM('egm84-15.pgm').height(59.761, 166.567) kind 3: lli ('59.761024, 166.566646'), H (False) or wrap (False): lli ('59.761024, 166.566646'): outside on NE  FAILED, KNOWN, expected 11.468\n    test 1925 GeoidPGM('egm84-15.pgm').height(51.83, 13.357) kind 3: lli ('51.830001, 13.357464'), H (False) or wrap (False): lli ('51.830001, 13.357464'): outside on E  FAILED, KNOWN, expected 42.092\n    test 1926 GeoidPGM('egm84-15.pgm').height(-36.531, -175.431) kind 3: lli ('-36.530912, -175.430804'), H (False) or wrap (False): lli ('-36.530912, -175.430804'): outside on SW  FAILED, KNOWN, expected 22.830\n    test 1927 GeoidPGM('egm84-15.pgm').height(-37.08, 125.264) kind 3: lli ('-37.079518, 125.263901'), H (False) or wrap (False): lli ('-37.079518, 125.263901'): outside on SE  FAILED, KNOWN, expected -32.302\n    test 1928 GeoidPGM('egm84-15.pgm').height(-68.651, 92.732) kind 3: lli ('-68.650762, 92.731524'), H (False) or wrap (False): lli ('-68.650762, 92.731524'): outside on SE  FAILED, KNOWN, expected 9.228\n    test 1929 GeoidPGM('egm84-15.pgm').height(35.087, 45.336) kind 3: lli ('35.086645, 45.335611'), H (False) or wrap (False): lli ('35.086645, 45.335611'): outside on E  FAILED, KNOWN, expected 5.965\n    test 1930 GeoidPGM('egm84-15.pgm').height(-61.356, -169.379) kind 3: lli ('-61.355646, -169.378929'), H (False) or wrap (False): lli ('-61.355646, -169.378929'): outside on SW  FAILED, KNOWN, expected -45.013\n    test 1931 GeoidPGM('egm84-15.pgm').height(-36.955, 179.12) kind 3: lli ('-36.954967, 179.11982'), H (False) or wrap (False): lli ('-36.954967, 179.11982'): outside on SE  FAILED, KNOWN, expected 21.118\n    test 1932 GeoidPGM('egm84-15.pgm').height(10.248, -6.714) kind 3: lli ('10.248399, -6.713559'), H (False) or wrap (False): lli ('10.248399, -6.713559'): outside on SE  FAILED, KNOWN, expected 30.497\n    test 1933 GeoidPGM('egm84-15.pgm').height(36.868, 84.602) kind 3: lli ('36.868193, 84.602243'), H (False) or wrap (False): lli ('36.868193, 84.602243'): outside on E  FAILED, KNOWN, expected -40.396\n    test 1934 GeoidPGM('egm84-15.pgm').height(28.637, 88.933) kind 3: lli ('28.636703, 88.932955'), H (False) or wrap (False): lli ('28.636703, 88.932955'): outside on E  FAILED, KNOWN, expected -31.704\n    test 1935 GeoidPGM('egm84-15.pgm').height(54.811, -99.968) kind 3: -32.277\n    test 1936 GeoidPGM('egm84-15.pgm').height(7.611, 145.911) kind 3: lli ('7.610621, 145.911188'), H (False) or wrap (False): lli ('7.610621, 145.911188'): outside on SE  FAILED, KNOWN, expected 61.024\n    test 1937 GeoidPGM('egm84-15.pgm').height(59.412, 170.102) kind 3: lli ('59.411557, 170.102394'), H (False) or wrap (False): lli ('59.411557, 170.102394'): outside on NE  FAILED, KNOWN, expected 4.994\n    test 1938 GeoidPGM('egm84-15.pgm').height(-61.469, 126.144) kind 3: lli ('-61.468618, 126.144056'), H (False) or wrap (False): lli ('-61.468618, 126.144056'): outside on SE  FAILED, KNOWN, expected -30.237\n    test 1939 GeoidPGM('egm84-15.pgm').height(18.514, -137.083) kind 3: lli ('18.514019, -137.083301'), H (False) or wrap (False): lli ('18.514019, -137.083301'): outside on SW  FAILED, KNOWN, expected -26.006\n    test 1940 GeoidPGM('egm84-15.pgm').height(7.854, -126.799) kind 3: lli ('7.854318, -126.799148'), H (False) or wrap (False): lli ('7.854318, -126.799148'): outside on SW  FAILED, KNOWN, expected -29.283\n    test 1941 GeoidPGM('egm84-15.pgm').height(47.489, 134.183) kind 3: lli ('47.489222, 134.182527'), H (False) or wrap (False): lli ('47.489222, 134.182527'): outside on E  FAILED, KNOWN, expected 22.394\n    test 1942 GeoidPGM('egm84-15.pgm').height(-34.144, -11.922) kind 3: lli ('-34.143602, -11.921567'), H (False) or wrap (False): lli ('-34.143602, -11.921567'): outside on SE  FAILED, KNOWN, expected 17.550\n    test 1943 GeoidPGM('egm84-15.pgm').height(-58.389, 117.458) kind 3: lli ('-58.388787, 117.457755'), H (False) or wrap (False): lli ('-58.388787, 117.457755'): outside on SE  FAILED, KNOWN, expected -20.622\n    test 1944 GeoidPGM('egm84-15.pgm').height(9.773, 95.846) kind 3: lli ('9.772764, 95.845943'), H (False) or wrap (False): lli ('9.772764, 95.845943'): outside on SE  FAILED, KNOWN, expected -41.484\n    test 1945 GeoidPGM('egm84-15.pgm').height(-53.12, 136.994) kind 3: lli ('-53.120381, 136.993994'), H (False) or wrap (False): lli ('-53.120381, 136.993994'): outside on SE  FAILED, KNOWN, expected -20.968\n    test 1946 GeoidPGM('egm84-15.pgm').height(-50.35, 0.075) kind 3: lli ('-50.349867, 0.07532'), H (False) or wrap (False): lli ('-50.349867, 0.07532'): outside on SE  FAILED, KNOWN, expected 25.568\n    test 1947 GeoidPGM('egm84-15.pgm').height(31.438, -170.879) kind 3: lli ('31.438387, -170.878548'), H (False) or wrap (False): lli ('31.438387, -170.878548'): outside on W  FAILED, KNOWN, expected -8.581\n    test 1948 GeoidPGM('egm84-15.pgm').height(37.541, -153.024) kind 3: lli ('37.540689, -153.024228'), H (False) or wrap (False): lli ('37.540689, -153.024228'): outside on W  FAILED, KNOWN, expected -18.329\n    test 1949 GeoidPGM('egm84-15.pgm').height(27.586, 2.444) kind 3: lli ('27.586088, 2.443556'), H (False) or wrap (False): lli ('27.586088, 2.443556'): outside on E  FAILED, KNOWN, expected 25.001\n    test 1950 GeoidPGM('egm84-15.pgm').height(-26.139, -106.201) kind 3: lli ('-26.139126, -106.20081'), H (False) or wrap (False): lli ('-26.139126, -106.20081'): outside on S  FAILED, KNOWN, expected -2.940\n    test 1951 GeoidPGM('egm84-15.pgm').height(-33.426, -14.84) kind 3: lli ('-33.425976, -14.840359'), H (False) or wrap (False): lli ('-33.425976, -14.840359'): outside on SE  FAILED, KNOWN, expected 18.228\n    test 1952 GeoidPGM('egm84-15.pgm').height(39.586, -153.019) kind 3: lli ('39.586286, -153.018974'), H (False) or wrap (False): lli ('39.586286, -153.018974'): outside on W  FAILED, KNOWN, expected -16.507\n    test 1953 GeoidPGM('egm84-15.pgm').height(-60.79, -2.578) kind 3: lli ('-60.790289, -2.578163'), H (False) or wrap (False): lli ('-60.790289, -2.578163'): outside on SE  FAILED, KNOWN, expected 14.275\n    test 1954 GeoidPGM('egm84-15.pgm').height(-20.131, 21.975) kind 3: lli ('-20.130538, 21.974941'), H (False) or wrap (False): lli ('-20.130538, 21.974941'): outside on SE  FAILED, KNOWN, expected 16.852\n    test 1955 GeoidPGM('egm84-15.pgm').height(75.649, 99.921) kind 3: lli ('75.64878, 99.920587'), H (False) or wrap (False): lli ('75.64878, 99.920587'): outside on NE  FAILED, KNOWN, expected -6.872\n    test 1956 GeoidPGM('egm84-15.pgm').height(-0.385, -23.788) kind 3: lli ('-0.385453, -23.788336'), H (False) or wrap (False): lli ('-0.385453, -23.788336'): outside on SE  FAILED, KNOWN, expected 9.006\n    test 1957 GeoidPGM('egm84-15.pgm').height(-51.56, -50.327) kind 3: lli ('-51.559564, -50.32687'), H (False) or wrap (False): lli ('-51.559564, -50.32687'): outside on SE  FAILED, KNOWN, expected 6.296\n    test 1958 GeoidPGM('egm84-15.pgm').height(-43.129, -167.271) kind 3: lli ('-43.129209, -167.27147'), H (False) or wrap (False): lli ('-43.129209, -167.27147'): outside on SW  FAILED, KNOWN, expected -1.481\n    test 1959 GeoidPGM('egm84-15.pgm').height(46.374, 71.948) kind 3: lli ('46.374177, 71.947616'), H (False) or wrap (False): lli ('46.374177, 71.947616'): outside on E  FAILED, KNOWN, expected -40.915\n    test 1960 GeoidPGM('egm84-15.pgm').height(-22.783, 140.657) kind 3: lli ('-22.783085, 140.657444'), H (False) or wrap (False): lli ('-22.783085, 140.657444'): outside on SE  FAILED, KNOWN, expected 37.495\n    test 1961 GeoidPGM('egm84-15.pgm').height(-12.056, 122.804) kind 3: lli ('-12.05584, 122.80402'), H (False) or wrap (False): lli ('-12.05584, 122.80402'): outside on SE  FAILED, KNOWN, expected 32.258\n    test 1962 GeoidPGM('egm84-15.pgm').height(30.127, 94.738) kind 3: lli ('30.127372, 94.738186'), H (False) or wrap (False): lli ('30.127372, 94.738186'): outside on E  FAILED, KNOWN, expected -41.529\n    test 1963 GeoidPGM('egm84-15.pgm').height(46.296, -174.479) kind 3: lli ('46.296018, -174.478616'), H (False) or wrap (False): lli ('46.296018, -174.478616'): outside on W  FAILED, KNOWN, expected -1.377\n    test 1964 GeoidPGM('egm84-15.pgm').height(34.99, 15.052) kind 3: lli ('34.989646, 15.051646'), H (False) or wrap (False): lli ('34.989646, 15.051646'): outside on E  FAILED, KNOWN, expected 35.280\n    test 1965 GeoidPGM('egm84-15.pgm').height(-51.287, 90.565) kind 3: lli ('-51.287168, 90.564711'), H (False) or wrap (False): lli ('-51.287168, 90.564711'): outside on SE  FAILED, KNOWN, expected 12.958\n    test 1966 GeoidPGM('egm84-15.pgm').height(34.217, 141.302) kind 3: lli ('34.217016, 141.301548'), H (False) or wrap (False): lli ('34.217016, 141.301548'): outside on E  FAILED, KNOWN, expected 18.307\n    test 1967 GeoidPGM('egm84-15.pgm').height(-40.423, -142.787) kind 3: lli ('-40.423023, -142.786592'), H (False) or wrap (False): lli ('-40.423023, -142.786592'): outside on SW  FAILED, KNOWN, expected -10.400\n    test 1968 GeoidPGM('egm84-15.pgm').height(-17.854, -170.216) kind 3: lli ('-17.854486, -170.216354'), H (False) or wrap (False): lli ('-17.854486, -170.216354'): outside on SW  FAILED, KNOWN, expected 28.638\n    test 1969 GeoidPGM('egm84-15.pgm').height(47.803, 112.701) kind 3: lli ('47.803271, 112.700942'), H (False) or wrap (False): lli ('47.803271, 112.700942'): outside on E  FAILED, KNOWN, expected -24.059\n    test 1970 GeoidPGM('egm84-15.pgm').height(-23.276, 133.454) kind 3: lli ('-23.275962, 133.453821'), H (False) or wrap (False): lli ('-23.275962, 133.453821'): outside on SE  FAILED, KNOWN, expected 18.806\n    test 1971 GeoidPGM('egm84-15.pgm').height(-26.884, -36.571) kind 3: lli ('-26.884369, -36.570654'), H (False) or wrap (False): lli ('-26.884369, -36.570654'): outside on SE  FAILED, KNOWN, expected -6.820\n    test 1972 GeoidPGM('egm84-15.pgm').height(-37.106, 31.128) kind 3: lli ('-37.106468, 31.127939'), H (False) or wrap (False): lli ('-37.106468, 31.127939'): outside on SE  FAILED, KNOWN, expected 31.486\n    test 1973 GeoidPGM('egm84-15.pgm').height(-75.363, -173.674) kind 3: lli ('-75.363185, -173.673649'), H (False) or wrap (False): lli ('-75.363185, -173.673649'): outside on SW  FAILED, KNOWN, expected -62.024\n    test 1974 GeoidPGM('egm84-15.pgm').height(-18.305, 69.016) kind 3: lli ('-18.30485, 69.015565'), H (False) or wrap (False): lli ('-18.30485, 69.015565'): outside on SE  FAILED, KNOWN, expected -24.248\n    test 1975 GeoidPGM('egm84-15.pgm').height(39.527, 23.58) kind 3: lli ('39.527401, 23.580206'), H (False) or wrap (False): lli ('39.527401, 23.580206'): outside on E  FAILED, KNOWN, expected 43.255\n    test 1976 GeoidPGM('egm84-15.pgm').height(68.903, 30.97) kind 3: lli ('68.903148, 30.970247'), H (False) or wrap (False): lli ('68.903148, 30.970247'): outside on NE  FAILED, KNOWN, expected 18.498\n    test 1977 GeoidPGM('egm84-15.pgm').height(53.937, 168.318) kind 3: lli ('53.936937, 168.318201'), H (False) or wrap (False): lli ('53.936937, 168.318201'): outside on E  FAILED, KNOWN, expected 4.067\n    test 1978 GeoidPGM('egm84-15.pgm').height(-38.6, 64.812) kind 3: lli ('-38.600098, 64.811532'), H (False) or wrap (False): lli ('-38.600098, 64.811532'): outside on SE  FAILED, KNOWN, expected 25.454\n    test 1979 GeoidPGM('egm84-15.pgm').height(-41.396, -69.739) kind 3: lli ('-41.395739, -69.739418'), H (False) or wrap (False): lli ('-41.395739, -69.739418'): outside on S  FAILED, KNOWN, expected 26.657\n    test 1980 GeoidPGM('egm84-15.pgm').height(50.158, 72.319) kind 3: lli ('50.157749, 72.319017'), H (False) or wrap (False): lli ('50.157749, 72.319017'): outside on E  FAILED, KNOWN, expected -31.966\n    test 1981 GeoidPGM('egm84-15.pgm').height(27.692, 176.153) kind 3: lli ('27.691879, 176.152884'), H (False) or wrap (False): lli ('27.691879, 176.152884'): outside on E  FAILED, KNOWN, expected -4.415\n    test 1982 GeoidPGM('egm84-15.pgm').height(-48.419, 170.454) kind 3: lli ('-48.419449, 170.454472'), H (False) or wrap (False): lli ('-48.419449, 170.454472'): outside on SE  FAILED, KNOWN, expected -6.741\n    test 1983 GeoidPGM('egm84-15.pgm').height(-65.346, -124.976) kind 3: lli ('-65.34567, -124.975961'), H (False) or wrap (False): lli ('-65.34567, -124.975961'): outside on S  FAILED, KNOWN, expected -34.900\n    test 1984 GeoidPGM('egm84-15.pgm').height(-51.873, 167.266) kind 3: lli ('-51.873009, 167.265613'), H (False) or wrap (False): lli ('-51.873009, 167.265613'): outside on SE  FAILED, KNOWN, expected -14.223\n    test 1985 GeoidPGM('egm84-15.pgm').height(-7.263, 84.308) kind 3: lli ('-7.262544, 84.307626'), H (False) or wrap (False): lli ('-7.262544, 84.307626'): outside on SE  FAILED, KNOWN, expected -79.317\n    test 1986 GeoidPGM('egm84-15.pgm').height(-1.461, -105.458) kind 3: lli ('-1.461003, -105.458323'), H (False) or wrap (False): lli ('-1.461003, -105.458323'): outside on S  FAILED, KNOWN, expected -16.163\n    test 1987 GeoidPGM('egm84-15.pgm').height(7.684, 161.873) kind 3: lli ('7.684324, 161.87293'), H (False) or wrap (False): lli ('7.684324, 161.87293'): outside on SE  FAILED, KNOWN, expected 36.287\n    test 1988 GeoidPGM('egm84-15.pgm').height(-31.475, -158.52) kind 3: lli ('-31.474549, -158.520033'), H (False) or wrap (False): lli ('-31.474549, -158.520033'): outside on SW  FAILED, KNOWN, expected 4.068\n    test 1989 GeoidPGM('egm84-15.pgm').height(-36.187, 62.917) kind 3: lli ('-36.187212, 62.917075'), H (False) or wrap (False): lli ('-36.187212, 62.917075'): outside on SE  FAILED, KNOWN, expected 24.407\n    test 1990 GeoidPGM('egm84-15.pgm').height(16.003, 141.687) kind 3: lli ('16.002975, 141.686552'), H (False) or wrap (False): lli ('16.002975, 141.686552'): outside on SE  FAILED, KNOWN, expected 53.054\n    test 1991 GeoidPGM('egm84-15.pgm').height(30.182, 86.261) kind 3: lli ('30.182218, 86.260576'), H (False) or wrap (False): lli ('30.182218, 86.260576'): outside on E  FAILED, KNOWN, expected -30.622\n    test 1992 GeoidPGM('egm84-15.pgm').height(-77.304, 159.498) kind 3: lli ('-77.303842, 159.497665'), H (False) or wrap (False): lli ('-77.303842, 159.497665'): outside on SE  FAILED, KNOWN, expected -53.540\n    test 1993 GeoidPGM('egm84-15.pgm').height(39.536, 139.795) kind 3: lli ('39.536, 139.795358'), H (False) or wrap (False): lli ('39.536, 139.795358'): outside on E  FAILED, KNOWN, expected 36.262\n    test 1994 GeoidPGM('egm84-15.pgm').height(8.569, 134.618) kind 3: lli ('8.569309, 134.618403'), H (False) or wrap (False): lli ('8.569309, 134.618403'): outside on SE  FAILED, KNOWN, expected 64.369\n    test 1995 GeoidPGM('egm84-15.pgm').height(14.473, 90.596) kind 3: lli ('14.473483, 90.595663'), H (False) or wrap (False): lli ('14.473483, 90.595663'): outside on SE  FAILED, KNOWN, expected -61.300\n    test 1996 GeoidPGM('egm84-15.pgm').height(-13.138, -99.589) kind 3: lli ('-13.13767, -99.589202'), H (False) or wrap (False): lli ('-13.13767, -99.589202'): outside on S  FAILED, KNOWN, expected -7.999\n    test 1997 GeoidPGM('egm84-15.pgm').height(34.212, -26.307) kind 3: lli ('34.211572, -26.307194'), H (False) or wrap (False): lli ('34.211572, -26.307194'): outside on E  FAILED, KNOWN, expected 41.477\n    test 1998 GeoidPGM('egm84-15.pgm').height(21.89, 76.371) kind 3: lli ('21.889732, 76.371362'), H (False) or wrap (False): lli ('21.889732, 76.371362'): outside on SE  FAILED, KNOWN, expected -59.876\n    test 1999 GeoidPGM('egm84-15.pgm').height(29.793, 120.487) kind 3: lli ('29.792909, 120.48703'), H (False) or wrap (False): lli ('29.792909, 120.48703'): outside on E  FAILED, KNOWN, expected 8.404\n    test 2000 GeoidPGM('egm84-15.pgm').height(15.724, 122.714) kind 3: lli ('15.723814, 122.713685'), H (False) or wrap (False): lli ('15.723814, 122.713685'): outside on SE  FAILED, KNOWN, expected 39.152\n    test 2001 GeoidPGM('egm84-15.pgm').height(-66.208, -78.499) kind 3: lli ('-66.20776, -78.498807'), H (False) or wrap (False): lli ('-66.20776, -78.498807'): outside on S  FAILED, KNOWN, expected -7.076\n    test 2002 GeoidPGM('egm84-15.pgm').height(-39.507, 55.809) kind 3: lli ('-39.507049, 55.808743'), H (False) or wrap (False): lli ('-39.507049, 55.808743'): outside on SE  FAILED, KNOWN, expected 33.178\n    test 2003 GeoidPGM('egm84-15.pgm').height(28.159, 51.476) kind 3: lli ('28.159494, 51.476474'), H (False) or wrap (False): lli ('28.159494, 51.476474'): outside on E  FAILED, KNOWN, expected -23.832\n    test 2004 GeoidPGM('egm84-15.pgm').height(-36.207, 120.205) kind 3: lli ('-36.206825, 120.205019'), H (False) or wrap (False): lli ('-36.206825, 120.205019'): outside on SE  FAILED, KNOWN, expected -38.206\n    test 2005 GeoidPGM('egm84-15.pgm').height(30.575, -99.998) kind 3: -22.143  FAILED, KNOWN, expected -22.142\n    test 2006 GeoidPGM('egm84-15.pgm').height(-16.993, 37.136) kind 3: lli ('-16.992515, 37.135881'), H (False) or wrap (False): lli ('-16.992515, 37.135881'): outside on SE  FAILED, KNOWN, expected -13.765\n    test 2007 GeoidPGM('egm84-15.pgm').height(-11.477, 12.039) kind 3: lli ('-11.476997, 12.038708'), H (False) or wrap (False): lli ('-11.476997, 12.038708'): outside on SE  FAILED, KNOWN, expected 16.898\n    test 2008 GeoidPGM('egm84-15.pgm').height(30.428, -144.765) kind 3: lli ('30.428465, -144.765049'), H (False) or wrap (False): lli ('30.428465, -144.765049'): outside on W  FAILED, KNOWN, expected -22.474\n    test 2009 GeoidPGM('egm84-15.pgm').height(-17.44, -92.424) kind 3: lli ('-17.439773, -92.424339'), H (False) or wrap (False): lli ('-17.439773, -92.424339'): outside on S  FAILED, KNOWN, expected -4.718\n    test 2010 GeoidPGM('egm84-15.pgm').height(40.203, 143.43) kind 3: lli ('40.203164, 143.429799'), H (False) or wrap (False): lli ('40.203164, 143.429799'): outside on E  FAILED, KNOWN, expected 16.635\n    test 2011 GeoidPGM('egm84-15.pgm').height(-37.098, -106.574) kind 3: lli ('-37.098392, -106.573712'), H (False) or wrap (False): lli ('-37.098392, -106.573712'): outside on S  FAILED, KNOWN, expected -9.012\n    test 2012 GeoidPGM('egm84-15.pgm').height(54.62, -68.413) kind 3: -23.544  FAILED, KNOWN, expected -23.543\n    test 2013 GeoidPGM('egm84-15.pgm').height(-31.633, 148.182) kind 3: lli ('-31.633252, 148.181926'), H (False) or wrap (False): lli ('-31.633252, 148.181926'): outside on SE  FAILED, KNOWN, expected 26.236\n    test 2014 GeoidPGM('egm84-15.pgm').height(-56.07, -141.407) kind 3: lli ('-56.069748, -141.406778'), H (False) or wrap (False): lli ('-56.069748, -141.406778'): outside on SW  FAILED, KNOWN, expected -21.953\n    test 2015 GeoidPGM('egm84-15.pgm').height(-8.195, -52.691) kind 3: lli ('-8.195214, -52.691177'), H (False) or wrap (False): lli ('-8.195214, -52.691177'): outside on SE  FAILED, KNOWN, expected -17.959\n    test 2016 GeoidPGM('egm84-15.pgm').height(17.851, 24.749) kind 3: lli ('17.850526, 24.748606'), H (False) or wrap (False): lli ('17.850526, 24.748606'): outside on SE  FAILED, KNOWN, expected 9.078\n    test 2017 GeoidPGM('egm84-15.pgm').height(0.349, -108.333) kind 3: lli ('0.349465, -108.332667'), H (False) or wrap (False): lli ('0.349465, -108.332667'): outside on S  FAILED, KNOWN, expected -19.158\n    test 2018 GeoidPGM('egm84-15.pgm').height(15.038, 126.191) kind 3: lli ('15.037932, 126.190545'), H (False) or wrap (False): lli ('15.037932, 126.190545'): outside on SE  FAILED, KNOWN, expected 46.776\n    test 2019 GeoidPGM('egm84-15.pgm').height(-21.111, -123.696) kind 3: lli ('-21.111105, -123.695981'), H (False) or wrap (False): lli ('-21.111105, -123.695981'): outside on S  FAILED, KNOWN, expected -8.055\n    test 2020 GeoidPGM('egm84-15.pgm').height(30.947, 173.002) kind 3: lli ('30.946618, 173.002137'), H (False) or wrap (False): lli ('30.946618, 173.002137'): outside on E  FAILED, KNOWN, expected -7.696\n    test 2021 GeoidPGM('egm84-15.pgm').height(-10.698, -144.091) kind 3: lli ('-10.698334, -144.091109'), H (False) or wrap (False): lli ('-10.698334, -144.091109'): outside on SW  FAILED, KNOWN, expected -1.049\n    test 2022 GeoidPGM('egm84-15.pgm').height(-29.412, 124.753) kind 3: lli ('-29.412071, 124.75279'), H (False) or wrap (False): lli ('-29.412071, 124.75279'): outside on SE  FAILED, KNOWN, expected -16.081\n    test 2023 GeoidPGM('egm84-15.pgm').height(38.224, -137.189) kind 3: lli ('38.223621, -137.189376'), H (False) or wrap (False): lli ('38.223621, -137.189376'): outside on W  FAILED, KNOWN, expected -35.427\n    test 2024 GeoidPGM('egm84-15.pgm').height(36.064, -132.409) kind 3: lli ('36.063775, -132.409284'), H (False) or wrap (False): lli ('36.063775, -132.409284'): outside on W  FAILED, KNOWN, expected -38.648\n    test 2025 GeoidPGM('egm84-15.pgm').height(29.975, 178.076) kind 3: lli ('29.974676, 178.075894'), H (False) or wrap (False): lli ('29.974676, 178.075894'): outside on E  FAILED, KNOWN, expected -5.519\n    test 2026 GeoidPGM('egm84-15.pgm').height(-21.346, 169.26) kind 3: lli ('-21.346396, 169.259508'), H (False) or wrap (False): lli ('-21.346396, 169.259508'): outside on SE  FAILED, KNOWN, expected 53.431\n    test 2027 GeoidPGM('egm84-15.pgm').height(49.282, -152.934) kind 3: lli ('49.282472, -152.934409'), H (False) or wrap (False): lli ('49.282472, -152.934409'): outside on W  FAILED, KNOWN, expected 1.979\n    test 2028 GeoidPGM('egm84-15.pgm').height(16.349, -99.962) kind 3: lli ('16.349121, -99.962229'), H (False) or wrap (False): lli ('16.349121, -99.962229'): outside on S  FAILED, KNOWN, expected -13.197\n    test 2029 GeoidPGM('egm84-15.pgm').height(-14.293, -167.34) kind 3: lli ('-14.293325, -167.339799'), H (False) or wrap (False): lli ('-14.293325, -167.339799'): outside on SW  FAILED, KNOWN, expected 18.945\n    test 2030 GeoidPGM('egm84-15.pgm').height(47.166, -38.523) kind 3: lli ('47.165911, -38.522629'), H (False) or wrap (False): lli ('47.165911, -38.522629'): outside on E  FAILED, KNOWN, expected 45.187\n    test 2031 GeoidPGM('egm84-15.pgm').height(-58.911, 114.347) kind 3: lli ('-58.910597, 114.346927'), H (False) or wrap (False): lli ('-58.910597, 114.346927'): outside on SE  FAILED, KNOWN, expected -17.145\n    test 2032 GeoidPGM('egm84-15.pgm').height(-9.055, 111.294) kind 3: lli ('-9.055095, 111.294422'), H (False) or wrap (False): lli ('-9.055095, 111.294422'): outside on SE  FAILED, KNOWN, expected 13.146\n    test 2033 GeoidPGM('egm84-15.pgm').height(18.391, 29.692) kind 3: lli ('18.390988, 29.691577'), H (False) or wrap (False): lli ('18.390988, 29.691577'): outside on SE  FAILED, KNOWN, expected 4.933\n    test 2034 GeoidPGM('egm84-15.pgm').height(-15.074, 22.153) kind 3: lli ('-15.074412, 22.152663'), H (False) or wrap (False): lli ('-15.074412, 22.152663'): outside on SE  FAILED, KNOWN, expected 12.326\n    test 2035 GeoidPGM('egm84-15.pgm').height(-4.235, 62.001) kind 3: lli ('-4.234571, 62.001081'), H (False) or wrap (False): lli ('-4.234571, 62.001081'): outside on SE  FAILED, KNOWN, expected -60.030\n    test 2036 GeoidPGM('egm84-15.pgm').height(15.171, -86.583) kind 3: lli ('15.170822, -86.582929'), H (False) or wrap (False): lli ('15.170822, -86.582929'): outside on S  FAILED, KNOWN, expected 3.110\n    test 2037 GeoidPGM('egm84-15.pgm').height(79.254, 112.116) kind 3: lli ('79.254009, 112.115515'), H (False) or wrap (False): lli ('79.254009, 112.115515'): outside on NE  FAILED, KNOWN, expected -2.741\n    test 2038 GeoidPGM('egm84-15.pgm').height(15.947, 156.093) kind 3: lli ('15.947068, 156.092678'), H (False) or wrap (False): lli ('15.947068, 156.092678'): outside on SE  FAILED, KNOWN, expected 32.085\n    test 2039 GeoidPGM('egm84-15.pgm').height(68.371, -177.382) kind 3: lli ('68.370605, -177.382127'), H (False) or wrap (False): lli ('68.370605, -177.382127'): outside on NW  FAILED, KNOWN, expected 2.060\n    test 2040 GeoidPGM('egm84-15.pgm').height(-41.931, -72.093) kind 3: lli ('-41.931009, -72.093413'), H (False) or wrap (False): lli ('-41.931009, -72.093413'): outside on S  FAILED, KNOWN, expected 22.916\n    test 2041 GeoidPGM('egm84-15.pgm').height(-1.193, -143.133) kind 3: lli ('-1.192967, -143.133078'), H (False) or wrap (False): lli ('-1.192967, -143.133078'): outside on SW  FAILED, KNOWN, expected 5.519\n    test 2042 GeoidPGM('egm84-15.pgm').height(-37.006, 154.513) kind 3: lli ('-37.006115, 154.512534'), H (False) or wrap (False): lli ('-37.006115, 154.512534'): outside on SE  FAILED, KNOWN, expected 11.020\n    test 2043 GeoidPGM('egm84-15.pgm').height(-22.148, 9.938) kind 3: lli ('-22.148493, 9.938408'), H (False) or wrap (False): lli ('-22.148493, 9.938408'): outside on SE  FAILED, KNOWN, expected 22.171\n    test 2044 GeoidPGM('egm84-15.pgm').height(24.329, 109.044) kind 3: lli ('24.328746, 109.043774'), H (False) or wrap (False): lli ('24.328746, 109.043774'): outside on SE  FAILED, KNOWN, expected -22.944\n    test 2045 GeoidPGM('egm84-15.pgm').height(-54.878, 114.691) kind 3: lli ('-54.877699, 114.691444'), H (False) or wrap (False): lli ('-54.877699, 114.691444'): outside on SE  FAILED, KNOWN, expected -17.580\n    test 2046 GeoidPGM('egm84-15.pgm').height(45.601, -80.458) kind 3: -35.737  FAILED, KNOWN, expected -35.738\n    test 2047 GeoidPGM('egm84-15.pgm').height(2.372, 58.974) kind 3: lli ('2.371766, 58.974082'), H (False) or wrap (False): lli ('2.371766, 58.974082'): outside on SE  FAILED, KNOWN, expected -61.040\n    test 2048 GeoidPGM('egm84-15.pgm').height(15.937, 165.854) kind 3: lli ('15.936522, 165.854035'), H (False) or wrap (False): lli ('15.936522, 165.854035'): outside on SE  FAILED, KNOWN, expected 20.907\n    test 2049 GeoidPGM('egm84-15.pgm').height(4.889, -24.213) kind 3: lli ('4.889499, -24.213194'), H (False) or wrap (False): lli ('4.889499, -24.213194'): outside on SE  FAILED, KNOWN, expected 13.874\n    test 2050 GeoidPGM('egm84-15.pgm').height(-11.392, 179.558) kind 3: lli ('-11.392365, 179.558198'), H (False) or wrap (False): lli ('-11.392365, 179.558198'): outside on SE  FAILED, KNOWN, expected 40.929\n    test 2051 GeoidPGM('egm84-15.pgm').height(58.246, 4.862) kind 3: lli ('58.24629, 4.862128'), H (False) or wrap (False): lli ('58.24629, 4.862128'): outside on NE  FAILED, KNOWN, expected 43.191\n    test 2052 GeoidPGM('egm84-15.pgm').height(34.302, -109.109) kind 3: -22.005  FAILED, KNOWN, expected -22.006\n    test 2053 GeoidPGM('egm84-15.pgm').height(-58.196, 117.306) kind 3: lli ('-58.195787, 117.305696'), H (False) or wrap (False): lli ('-58.195787, 117.305696'): outside on SE  FAILED, KNOWN, expected -20.375\n    test 2054 GeoidPGM('egm84-15.pgm').height(44.5, 173.769) kind 3: lli ('44.499876, 173.768568'), H (False) or wrap (False): lli ('44.499876, 173.768568'): outside on E  FAILED, KNOWN, expected -7.852\n    test 2055 GeoidPGM('egm84-15.pgm').height(-28.863, -139.775) kind 3: lli ('-28.862539, -139.774812'), H (False) or wrap (False): lli ('-28.862539, -139.774812'): outside on SW  FAILED, KNOWN, expected -8.674\n    test 2056 GeoidPGM('egm84-15.pgm').height(19.507, -96.099) kind 3: lli ('19.507043, -96.099433'), H (False) or wrap (False): lli ('19.507043, -96.099433'): outside on S  FAILED, KNOWN, expected -14.117\n    test 2057 GeoidPGM('egm84-15.pgm').height(-42.488, -73.907) kind 3: lli ('-42.487604, -73.906602'), H (False) or wrap (False): lli ('-42.487604, -73.906602'): outside on S  FAILED, KNOWN, expected 17.251\n    test 2058 GeoidPGM('egm84-15.pgm').height(46.138, -141.429) kind 3: lli ('46.138437, -141.429193'), H (False) or wrap (False): lli ('46.138437, -141.429193'): outside on W  FAILED, KNOWN, expected -19.436\n    test 2059 GeoidPGM('egm84-15.pgm').height(60.507, 93.743) kind 3: lli ('60.506969, 93.74336'), H (False) or wrap (False): lli ('60.506969, 93.74336'): outside on NE  FAILED, KNOWN, expected -31.330\n    test 2060 GeoidPGM('egm84-15.pgm').height(26.219, -145.434) kind 3: lli ('26.219081, -145.434391'), H (False) or wrap (False): lli ('26.219081, -145.434391'): outside on W  FAILED, KNOWN, expected -17.090\n    test 2061 GeoidPGM('egm84-15.pgm').height(-28.687, 3.37) kind 3: lli ('-28.68714, 3.370196'), H (False) or wrap (False): lli ('-28.68714, 3.370196'): outside on SE  FAILED, KNOWN, expected 24.184\n    test 2062 GeoidPGM('egm84-15.pgm').height(-15.008, 117.45) kind 3: lli ('-15.007944, 117.449536'), H (False) or wrap (False): lli ('-15.007944, 117.449536'): outside on SE  FAILED, KNOWN, expected 6.142\n    test 2063 GeoidPGM('egm84-15.pgm').height(40.71, 144.095) kind 3: lli ('40.710024, 144.095126'), H (False) or wrap (False): lli ('40.710024, 144.095126'): outside on E  FAILED, KNOWN, expected 11.693\n    test 2064 GeoidPGM('egm84-15.pgm').height(20.823, -173.611) kind 3: lli ('20.823096, -173.610797'), H (False) or wrap (False): lli ('20.823096, -173.610797'): outside on SW  FAILED, KNOWN, expected 6.840\n    test 2065 GeoidPGM('egm84-15.pgm').height(16.776, -3.009) kind 3: lli ('16.776, -3.009'), H (False) or wrap (False): lli ('16.776, -3.009'): outside on SE  FAILED, KNOWN, expected 31.298\n    test 2066 GeoidPGM('egm84-15.pgm').height(41.0, -95.0) kind 3: -31.953  FAILED, KNOWN, expected -31.952\n    test 2067 GeoidPGM('egm84-15.pgm').height(49.0, -120.5) kind 3: -14.946\n    test 2068 GeoidPGM('egm84-15.pgm').height(49.0, -103.5) kind 3: -17.031  FAILED, KNOWN, expected -17.032\n    test 2069 GeoidPGM('egm84-15.pgm').height(49.0, -86.5) kind 3: -37.962\n    test 2070 GeoidPGM('egm84-15.pgm').height(49.0, -69.5) kind 3: -26.493  FAILED, KNOWN, expected -26.492\n    test 2071 GeoidPGM('egm84-15.pgm').height(33.0, -120.5) kind 3: -39.543\n    test 2072 GeoidPGM('egm84-15.pgm').height(33.0, -103.5) kind 3: -22.557  FAILED, KNOWN, expected -22.556\n    test 2073 GeoidPGM('egm84-15.pgm').height(33.0, -86.5) kind 3: -28.710\n    test 2074 GeoidPGM('egm84-15.pgm').height(33.0, -69.5) kind 3: -46.590\n\n    test 2075 GeoidPGM('egm84-15.pgm').height() kind 3, eps max (in 0 FAILED): 0.001055\n    test 2076 GeoidPGM('egm84-15.pgm').height() kind 3, eps mean (of 15 total): 0.000534\n    test 2077 GeoidPGM('egm84-15.pgm').height() kind 3, eps stdev (of 15 total): 0.000293\n    test 2078 GeoidPGM('egm84-15.pgm').highest(): 44.0, -110.25, -6.927\n    test 2079 GeoidPGM('egm84-15.pgm').lowerleft(): 25.0, -125.0, -45.237\n    test 2080 GeoidPGM('egm84-15.pgm').lowerright(): 25.0, -64.75, -49.503\n    test 2081 GeoidPGM('egm84-15.pgm').lowest(): 26.0, -69.5, -52.293\n    test 2082 GeoidPGM('egm84-15.pgm').upperleft(): 55.0, -125.0, -11.157\n    test 2083 GeoidPGM('egm84-15.pgm').upperright(): 55.0, -64.75, -15.43\n    test 2084 GeoidPGM('egm84-15.pgm').dtype: (\"dtype('float64')\",)\n    test 2085 GeoidPGM('egm84-15.pgm').knots: ('29161',)\n    test 2086 GeoidPGM('egm84-15.pgm').mean: ('-29.223',)\n    test 2087 GeoidPGM('egm84-15.pgm').nBytes: ('233288',)\n    test 2088 GeoidPGM('egm84-15.pgm').smooth: ('0',)\n    test 2089 GeoidPGM('egm84-15.pgm').stdev: ('9.692',)\n    test 2090 GeoidPGM('egm84-15.pgm')._g2ll2(180, 360): (180, 0.0)\n    test 2091 GeoidPGM('egm84-15.pgm')._ll2g2(180, 360): (180, 720.0)\n    test 2092 GeoidPGM('egm84-15.pgm')._swne: (-10.0, -100.0, 10.0, 100.0)\n    test 2093 GeoidPGM('egm84-15.pgm')._swne: (-10.0, -100.0, 10.0, 100.0)\n    test 2094 GeoidPGM('egm84-15.pgm').toStr: GeoidPGM('egm84-15.pgm'): lowerleft(25.0, -125.0, -45.237), upperright(55.0, -64.75, -15.43), center(40.0, -94.875, -33.654), highest(44.0, -110.25, -6.927), lowest(26.0, -69.5, -52.293)\n\n    test 2095 closed: True\n    test 2096 copy(<class 'type'>): (<class 'pygeodesy.geoids.GeoidPGM'>, True)\n    test 2097 GeoidPGM.copy(): (<class 'pygeodesy.geoids.GeoidPGM'>, True)\n    test 2098 GeoidG2012B('g2012bu0.bin').height(41.0, -95.0) kind 3: -30.312\n    test 2099 GeoidG2012B('g2012bu0.bin').height(49.0, -120.5) kind 3: -16.112\n    test 2100 GeoidG2012B('g2012bu0.bin').height(49.0, -103.5) kind 3: -18.955\n    test 2101 GeoidG2012B('g2012bu0.bin').height(49.0, -86.5) kind 3: -37.584\n    test 2102 GeoidG2012B('g2012bu0.bin').height(49.0, -69.5) kind 3: -25.867\n    test 2103 GeoidG2012B('g2012bu0.bin').height(33.0, -120.5) kind 3: -39.554\n    test 2104 GeoidG2012B('g2012bu0.bin').height(33.0, -103.5) kind 3: -21.917\n    test 2105 GeoidG2012B('g2012bu0.bin').height(33.0, -86.5) kind 3: -29.001\n    test 2106 GeoidG2012B('g2012bu0.bin').height(33.0, -69.5) kind 3: -46.725\n\n    test 2107 GeoidG2012B('g2012bu0.bin').height() kind 3, eps max (in 0 FAILED): 0.000400\n    test 2108 GeoidG2012B('g2012bu0.bin').height() kind 3, eps mean (of 9 total): 0.000222\n    test 2109 GeoidG2012B('g2012bu0.bin').height() kind 3, eps stdev (of 9 total): 0.000139\n    test 2110 GeoidG2012B('g2012bu0.bin').highest(): 58.0, -60.0, 3.31\n    test 2111 GeoidG2012B('g2012bu0.bin').lowerleft(): 24.0, -130.0, -39.727\n    test 2112 GeoidG2012B('g2012bu0.bin').lowerright(): 24.0, -59.983, -47.981\n    test 2113 GeoidG2012B('g2012bu0.bin').lowest(): 25.9, -69.85, -50.709\n    test 2114 GeoidG2012B('g2012bu0.bin').upperleft(): 58.0, -130.0, -1.095\n    test 2115 GeoidG2012B('g2012bu0.bin').upperright(): 58.0, -59.983, 3.38\n    test 2116 GeoidG2012B('g2012bu0.bin').dtype: (\"dtype('>f4')\",)\n    test 2117 GeoidG2012B('g2012bu0.bin').knots: ('8574241',)\n    test 2118 GeoidG2012B('g2012bu0.bin').mean: ('-29.481',)\n    test 2119 GeoidG2012B('g2012bu0.bin').nBytes: ('34296964',)\n    test 2120 GeoidG2012B('g2012bu0.bin').smooth: ('0',)\n    test 2121 GeoidG2012B('g2012bu0.bin').stdev: ('10.063',)\n    test 2122 GeoidG2012B('g2012bu0.bin')._g2ll2(180, 360): (180, 360)\n    test 2123 GeoidG2012B('g2012bu0.bin')._ll2g2(180, 360): (180, 360)\n    test 2124 GeoidG2012B('g2012bu0.bin')._swne: (-10.0, -100.0, 10.0, 100.0)\n    test 2125 GeoidG2012B('g2012bu0.bin')._swne: (-10.0, -100.0, 10.0, 100.0)\n    test 2126 GeoidG2012B('g2012bu0.bin').toStr: GeoidG2012B('g2012bu0.bin'): lowerleft(24.0, -130.0, -39.727), upperright(58.0, -59.983, 3.38), center(41.0, -94.992, -30.328), highest(58.0, -60.0, 3.31), lowest(25.9, -69.85, -50.709)\n\n    test 2127 closed: True\n    test 2128 copy(<class 'type'>): (<class 'pygeodesy.geoids.GeoidG2012B'>, True)\n    test 2129 GeoidG2012B.copy(): (<class 'pygeodesy.geoids.GeoidG2012B'>, True)\n    test 2130 GeoidEGM96('WW15MGH.GRD').height(41.0, -95.0) kind 3: -30.262  FAILED, KNOWN, expected -30.312\n    test 2131 GeoidEGM96('WW15MGH.GRD').height(49.0, -120.5) kind 3: -15.984  FAILED, KNOWN, expected -16.112\n    test 2132 GeoidEGM96('WW15MGH.GRD').height(49.0, -103.5) kind 3: -18.635  FAILED, KNOWN, expected -18.955\n    test 2133 GeoidEGM96('WW15MGH.GRD').height(49.0, -86.5) kind 3: -37.748  FAILED, KNOWN, expected -37.584\n    test 2134 GeoidEGM96('WW15MGH.GRD').height(49.0, -69.5) kind 3: -26.691  FAILED, KNOWN, expected -25.867\n    test 2135 GeoidEGM96('WW15MGH.GRD').height(33.0, -120.5) kind 3: -39.562  FAILED, KNOWN, expected -39.554\n    test 2136 GeoidEGM96('WW15MGH.GRD').height(33.0, -103.5) kind 3: -22.562  FAILED, KNOWN, expected -21.917\n    test 2137 GeoidEGM96('WW15MGH.GRD').height(33.0, -86.5) kind 3: -30.013  FAILED, KNOWN, expected -29.001\n    test 2138 GeoidEGM96('WW15MGH.GRD').height(33.0, -69.5) kind 3: -48.038  FAILED, KNOWN, expected -46.725\n\n    test 2139 GeoidEGM96('WW15MGH.GRD').height() kind 3, eps max (in 0 FAILED): 1.313000\n    test 2140 GeoidEGM96('WW15MGH.GRD').height() kind 3, eps mean (of 9 total): 0.496000\n    test 2141 GeoidEGM96('WW15MGH.GRD').height() kind 3, eps stdev (of 9 total): 0.444374\n    test 2142 GeoidEGM96('WW15MGH.GRD').highest(): -8.25, -32.75, 85.391\n    test 2143 GeoidEGM96('WW15MGH.GRD').lowerleft(): -90.0, -180.0, -29.534\n    test 2144 GeoidEGM96('WW15MGH.GRD').lowerright(): -90.0, 180.25, -29.534\n    test 2145 GeoidEGM96('WW15MGH.GRD').lowest(): 4.75, -101.25, -106.991\n    test 2146 GeoidEGM96('WW15MGH.GRD').upperleft(): 90.0, -180.0, 13.606\n    test 2147 GeoidEGM96('WW15MGH.GRD').upperright(): 90.0, 180.25, 13.606\n    test 2148 GeoidEGM96('WW15MGH.GRD').dtype: (\"dtype('float64')\",)\n    test 2149 GeoidEGM96('WW15MGH.GRD').knots: ('1038961',)\n    test 2150 GeoidEGM96('WW15MGH.GRD').mean: ('-1.426',)\n    test 2151 GeoidEGM96('WW15MGH.GRD').nBytes: ('8311688',)\n    test 2152 GeoidEGM96('WW15MGH.GRD').smooth: ('0',)\n    test 2153 GeoidEGM96('WW15MGH.GRD').stdev: ('29.223',)\n    test 2154 GeoidEGM96('WW15MGH.GRD')._g2ll2(180, 360): (-180, 0.0)\n    test 2155 GeoidEGM96('WW15MGH.GRD')._ll2g2(180, 360): (-180, 360)\n    test 2156 GeoidEGM96('WW15MGH.GRD')._swne: (-10.0, -100.0, 10.0, 100.0)\n    test 2157 GeoidEGM96('WW15MGH.GRD')._swne: (-10.0, -100.0, 10.0, 100.0)\n    test 2158 GeoidEGM96('WW15MGH.GRD').toStr: GeoidEGM96('WW15MGH.GRD'): lowerleft(-90.0, -180.0, -29.534), upperright(90.0, 180.25, 13.606), center(0.0, 0.125, 17.125), highest(-8.25, -32.75, 85.391), lowest(4.75, -101.25, -106.991)\n\n    test 2159 closed: True\n    test 2160 copy(<class 'type'>): (<class 'pygeodesy.geoids.GeoidEGM96'>, True)\n    test 2161 GeoidEGM96.copy(): (<class 'pygeodesy.geoids.GeoidEGM96'>, True)\n\n    1394 of 2161 testGeoids.py tests (64.5%) FAILED, ALL KNOWN (pygeodesy 26.3.26 Python 3.12.10 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 2.1.0 scipy 1.14.1 Math 2 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 isLazy 3 -W  default) 85.242 sec\nrunning /usr/local/bin/p....n3.12 -W default ~/PyGeodesy/test/testGreatCircle.py\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.F_D from .dms by testGreatCircle.py line 40\n# lazily imported pygeodesy.F_DMS from .dms by testGreatCircle.py line 40\n# lazily imported pygeodesy.classname from .named by testGreatCircle.py line 40\n# lazily imported pygeodesy.bearingDMS from .dms by testGreatCircle.py line 40\n# lazily imported pygeodesy.CrossError from .errors by testGreatCircle.py line 40\n# lazily imported pygeodesy.crosserrors from .errors by testGreatCircle.py line 40\n# lazily imported pygeodesy.sphericalNvector by testGreatCircle.py line 190\n# lazily imported pygeodesy.sphericalTrigonometry by testGreatCircle.py line 190\n\n    testing testGreatCircle.py 23.05.05 isLazy=3\n\n    testGreatCircle(pygeodesy.sphericalNvector, 25.05.27)\n    test 1 InitialBearingSameLocations: 0.0\n    test 2 InitialBearingEqualLocations: 0.0\n    test 3 FinalBearingSameLocations: 180.0\n    test 4 FinalBearingEqualLocations: 180.0\n# imported pygeodesy.basics into errors.py line 443\n    test 5 FinalBearingCrossError: point (LatLon(43°55′51.28″N, 072°03′13.72″W)) or other (LatLon(43°55′51.28″N, 072°03′13.72″W)): coincident\n    test 6 DistanceSameLocations: 0.0\n    test 7 DistanceEqualLocations: 0.0\n    test 8 DistanceEiffelToVersailles: 14084.300096  FAILED, KNOWN, expected 14084.280705\n    test 9 DistanceVersaillesToEiffel: 14084.300096  FAILED, KNOWN, expected 14084.280705\n    test 10 InitialBearingEiffelToVersailles: 245.13460297\n    test 11 InitialBearingEiffelToVersailles(DMS): 245°08′04.5707″\n    test 12 InitialBearingVersaillesToEiffel: 65.003253951\n    test 13 InitialBearingVersaillesToEiffel(DMS): 65°00′11.7142″\n    test 14 FinalBearingEiffelToVersailles: 245.00325395\n    test 15 FinalBearingEiffelToVersailles(DMS): 245°00′11.7142″\n    test 16 FinalBearingVersaillesToEiffel: 65.134602969\n    test 17 FinalBearingVersaillesToEiffel(DMS): 65°08′04.5707″\n    test 18 GenerateLocationVersailles: 48.804766°N, 002.120339°E\n    test 19 GenerateLocationEiffel: 48.858158°N, 002.294825°E\n    test 20 MidpointEiffelToVersailles: 48.831495°N, 002.207536°E\n    test 21 MidpointEiffelToVersailles(DMS): 48°49′53.3817″N, 002°12′27.1279″E\n    test 22 MidpointEiffelToVersailles(m): 7042.15004788  FAILED, KNOWN, expected 7042.15974330\n    test 23 MidpointVersaillesToEiffel: 48.831495°N, 002.207536°E  FAILED, KNOWN, expected 48.831495°N, 002.207535°E\n    test 24 MidpointVersaillesToEiffel(DMS): 48°49′53.3817″N, 002°12′27.1279″E\n    test 25 MidpointVersaillesToEiffel(m): 7042.15004788  FAILED, KNOWN, expected 7042.15974330\n    test 26 Intersection: 48.83569095°N, 002.221252031°E\n    test 27 Intersection: 48.8356909498836°N, 002.2212520313074°E\n    test 28 CrossTrackDistance200m+90°: 200.0\n    test 29 CrossTrackDistance200m+270°: -200.0\n    test 30 CrossTrackDistanceCloseToZero: 0.0000000\n\n    testGreatCircle(pygeodesy.sphericalTrigonometry, 25.08.31)\n    test 31 InitialBearingSameLocations: 0.0\n    test 32 InitialBearingEqualLocations: 0.0\n    test 33 FinalBearingSameLocations: 180.0\n    test 34 FinalBearingEqualLocations: 180.0\n    test 35 FinalBearingCrossError: point (LatLon(43°55′51.28″N, 072°03′13.72″W)), other (LatLon(43°55′51.28″N, 072°03′13.72″W)) or wrap (False): coincident\n    test 36 DistanceSameLocations: 0.0\n    test 37 DistanceEqualLocations: 0.0\n    test 38 DistanceEiffelToVersailles: 14084.300096  FAILED, KNOWN, expected 14084.280705\n    test 39 DistanceVersaillesToEiffel: 14084.300096  FAILED, KNOWN, expected 14084.280705\n    test 40 InitialBearingEiffelToVersailles: 245.13460297\n    test 41 InitialBearingEiffelToVersailles(DMS): 245°08′04.5707″\n    test 42 InitialBearingVersaillesToEiffel: 65.003253951\n    test 43 InitialBearingVersaillesToEiffel(DMS): 65°00′11.7142″\n    test 44 FinalBearingEiffelToVersailles: 245.00325395\n    test 45 FinalBearingEiffelToVersailles(DMS): 245°00′11.7142″\n    test 46 FinalBearingVersaillesToEiffel: 65.134602969\n    test 47 FinalBearingVersaillesToEiffel(DMS): 65°08′04.5707″\n    test 48 GenerateLocationVersailles: 48.804766°N, 002.120339°E\n    test 49 GenerateLocationEiffel: 48.858158°N, 002.294825°E\n    test 50 MidpointEiffelToVersailles: 48.831495°N, 002.207536°E\n    test 51 MidpointEiffelToVersailles(DMS): 48°49′53.3817″N, 002°12′27.1279″E\n    test 52 MidpointEiffelToVersailles(m): 7042.15004788  FAILED, KNOWN, expected 7042.15974330\n    test 53 MidpointVersaillesToEiffel: 48.831495°N, 002.207536°E  FAILED, KNOWN, expected 48.831495°N, 002.207535°E\n    test 54 MidpointVersaillesToEiffel(DMS): 48°49′53.3817″N, 002°12′27.1279″E\n    test 55 MidpointVersaillesToEiffel(m): 7042.15004788  FAILED, KNOWN, expected 7042.15974330\n    test 56 Intersection: 48.83569095°N, 002.221252031°E\n    test 57 Intersection: 48.8356909498836°N, 002.2212520313074°E\n    test 58 CrossTrackDistance200m+90°: 200.0\n    test 59 CrossTrackDistance200m+270°: -200.0\n    test 60 CrossTrackDistanceCloseToZero: 0.0000000\n\n    10 of 60 testGreatCircle.py tests (16.7%) FAILED, ALL KNOWN (pygeodesy 26.3.26 Python 3.12.10 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 2.1.0 scipy 1.14.1 Math 2 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 isLazy 3 -W  default) 28.616 ms\nrunning /usr/local/bin/p....n3.12 -W default ~/PyGeodesy/test/testHausdorff.py\n./pygeodesy/hausdorff.py:605: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  self._func = self.datum.ellipsoid.geodesic.Inverse1\n./pygeodesy/ellipsoidalKarney.py:94: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return self.datum.ellipsoid.geodesic\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.Datums from .datums by testHausdorff.py line 12\n# lazily imported pygeodesy.fstr from .streprs by testHausdorff.py line 12\n# lazily imported pygeodesy.hausdorff_ from .hausdorff by testHausdorff.py line 12\n# lazily imported pygeodesy.HausdorffCosineLaw from .hausdorff by testHausdorff.py line 12\n# lazily imported pygeodesy.HausdorffDegrees from .hausdorff by testHausdorff.py line 12\n# lazily imported pygeodesy.HausdorffDistanceTo from .hausdorff by testHausdorff.py line 12\n# lazily imported pygeodesy.HausdorffEquirectangular from .hausdorff by testHausdorff.py line 12\n# lazily imported pygeodesy.HausdorffEuclidean from .hausdorff by testHausdorff.py line 12\n# lazily imported pygeodesy.HausdorffExact from .hausdorff by testHausdorff.py line 12\n# lazily imported pygeodesy.HausdorffFlatLocal from .hausdorff by testHausdorff.py line 12\n# lazily imported pygeodesy.HausdorffFlatPolar from .hausdorff by testHausdorff.py line 12\n# lazily imported pygeodesy.HausdorffHaversine from .hausdorff by testHausdorff.py line 12\n# lazily imported pygeodesy.HausdorffHubeny from .hausdorff by testHausdorff.py line 12\n# lazily imported pygeodesy.HausdorffKarney from .hausdorff by testHausdorff.py line 12\n# lazily imported pygeodesy.HausdorffRadians from .hausdorff by testHausdorff.py line 12\n# lazily imported pygeodesy.HausdorffThomas from .hausdorff by testHausdorff.py line 12\n# lazily imported pygeodesy.HausdorffVincentys from .hausdorff by testHausdorff.py line 12\n# lazily imported pygeodesy.LatLon_ from .points by testHausdorff.py line 12\n# lazily imported pygeodesy.randomrangenerator from .hausdorff by testHausdorff.py line 12\n\n    testing testHausdorff.py 24.12.31 isLazy=3\n    test 1 randomrange[0]: ()\n    test 2 randomrange[1]: (0,)\n    test 3 randomrange[2]: (0, 1)\n    test 4 randomrange[8]: (1, 4, 2, 6, 0, 3, 5, 7)\n    test 5 randomrange[32]: (11, 6, 30, 28, 21, 9, 13, 26, 4, 29, 8, 27, 31, 15, 1, 24, 0, 25, 22, 2, 20, 17, 3, 23, 12, 19, 18, 14, 7, 10, 16, 5)\n    test 6 randomrange[128]: (122, 62, 14, 24, 65, 57, 75, 84, 42, 32, 82, 43, 13, 34, 53, 104, 71, 22, 76, 15, 108, 113, 52, 79, 112, 54, 90, 106, 10, 87, 115, 123, 119, 120, 48, 61, 39, 19, 31, 94, 124, 98, 96, 3, 101, 25, 118, 30, 99, 105, 92, 66, 126, 114, 23, 117, 72, 67, 73, 64, 68, 50, 5, 74, 51, 9, 17, 21, 80, 95, 41, 37, 2, 11, 55, 127, 38, 85, 81, 109, 36, 121, 6, 102, 12, 1, 93, 91, 83, 16, 116, 103, 70, 56, 89, 35, 88, 86, 27, 20, 44, 110, 63, 28, 8, 4, 18, 45, 78, 100, 60, 125, 58, 33, 0, 7, 40, 59, 46, 69, 26, 77, 107, 47, 49, 97, 111, 29)\n# lazily imported pygeodesy.booleans by iters.py line 503\n    test 7 HausdorffDegrees_ (degrees): (40.0, 22, 6, 90, 18.16111)\n    test 8 HausdorffDegrees_ (degrees): (48.0, 38, 36, 150, 17.30667)\n    test 9 HausdorffDegrees_ (degrees): (40.0, 22, 6, 90, 18.16111)\n    test 10 HausdorffDegrees_ (degrees): (48.0, 38, 36, 150, 17.30667)\n    test 11 HausdorffDegrees_ (degrees): (40.0, 22, 6, 90, None)\n    test 12 HausdorffDegrees_ (degrees): (48.0, 38, 36, 150, None)\n    test 13 HausdorffDegrees_ (degrees): (40.0, 22, 6, 90, None)\n    test 14 HausdorffDegrees_ (degrees): (48.0, 38, 36, 150, None)\n    test 15 copy(<class 'type'>): (<class '__main__.HausdorffDegrees_'>, True)\n    test 16 HausdorffDegrees_.copy(): (<class '__main__.HausdorffDegrees_'>, True)\n    test 17 HausdorffRadians_ (radians): (0.69813, 22, 6, 90, 0.31697)\n    test 18 HausdorffRadians_ (radians): (0.83776, 38, 36, 150, 0.30206)\n    test 19 HausdorffRadians_ (radians): (0.69813, 22, 6, 90, 0.31697)\n    test 20 HausdorffRadians_ (radians): (0.83776, 38, 36, 150, 0.30206)\n    test 21 HausdorffRadians_ (radians): (0.69813, 22, 6, 90, None)\n    test 22 HausdorffRadians_ (radians): (0.83776, 38, 36, 150, None)\n    test 23 HausdorffRadians_ (radians): (0.69813, 22, 6, 90, None)\n    test 24 HausdorffRadians_ (radians): (0.83776, 38, 36, 150, None)\n    test 25 copy(<class 'type'>): (<class '__main__.HausdorffRadians_'>, True)\n    test 26 HausdorffRadians_.copy(): (<class '__main__.HausdorffRadians_'>, True)\n# imported pygeodesy.formy into hausdorff.py line 371\n    test 27 HausdorffCosineLaw (meter): (0.50097, 35, 3, 90, 0.212)\n    test 28 HausdorffCosineLaw (meter): (0.50097, 35, 3, 150, 0.20099)\n    test 29 HausdorffCosineLaw (meter): (0.50097, 35, 3, 90, 0.212)\n    test 30 HausdorffCosineLaw (meter): (0.50097, 35, 3, 150, 0.20099)\n    test 31 HausdorffCosineLaw (meter): (0.50097, 35, 3, 90, None)\n    test 32 HausdorffCosineLaw (meter): (0.50097, 35, 3, 150, None)\n    test 33 HausdorffCosineLaw (meter): (0.50097, 35, 3, 90, None)\n    test 34 HausdorffCosineLaw (meter): (0.50097, 35, 3, 150, None)\n    test 35 copy(<class 'type'>): (<class 'pygeodesy.hausdorff.HausdorffCosineLaw'>, True)\n    test 36 HausdorffCosineLaw.copy(): (<class 'pygeodesy.hausdorff.HausdorffCosineLaw'>, True)\n    test 37 HausdorffCosineLaw (meter): (0.501, 35, 3, 90, 0.21184)\n    test 38 HausdorffCosineLaw (meter): (0.501, 35, 3, 150, 0.20084)\n    test 39 HausdorffCosineLaw (meter): (0.501, 35, 3, 90, 0.21184)\n    test 40 HausdorffCosineLaw (meter): (0.501, 35, 3, 150, 0.20084)\n    test 41 HausdorffCosineLaw (meter): (0.501, 35, 3, 90, None)\n    test 42 HausdorffCosineLaw (meter): (0.501, 35, 3, 150, None)\n    test 43 HausdorffCosineLaw (meter): (0.501, 35, 3, 90, None)\n    test 44 HausdorffCosineLaw (meter): (0.501, 35, 3, 150, None)\n    test 45 copy(<class 'type'>): (<class 'pygeodesy.hausdorff.HausdorffCosineLaw'>, True)\n    test 46 HausdorffCosineLaw.copy(): (<class 'pygeodesy.hausdorff.HausdorffCosineLaw'>, True)\n    test 47 HausdorffCosineLaw (meter): (0.501, 35, 3, 90, 0.21184)\n    test 48 HausdorffCosineLaw (meter): (0.501, 35, 3, 150, 0.20084)\n    test 49 HausdorffCosineLaw (meter): (0.501, 35, 3, 90, 0.21184)\n    test 50 HausdorffCosineLaw (meter): (0.501, 35, 3, 150, 0.20084)\n    test 51 HausdorffCosineLaw (meter): (0.501, 35, 3, 90, None)\n    test 52 HausdorffCosineLaw (meter): (0.501, 35, 3, 150, None)\n    test 53 HausdorffCosineLaw (meter): (0.501, 35, 3, 90, None)\n    test 54 HausdorffCosineLaw (meter): (0.501, 35, 3, 150, None)\n    test 55 copy(<class 'type'>): (<class 'pygeodesy.hausdorff.HausdorffCosineLaw'>, True)\n    test 56 HausdorffCosineLaw.copy(): (<class 'pygeodesy.hausdorff.HausdorffCosineLaw'>, True)\n    test 57 HausdorffEquirectangular (degrees2): (0.25113, 35, 3, 90, 0.05965)\n    test 58 HausdorffEquirectangular (degrees2): (0.25113, 35, 3, 150, 0.05532)\n    test 59 HausdorffEquirectangular (degrees2): (0.25113, 35, 3, 90, 0.05965)\n    test 60 HausdorffEquirectangular (degrees2): (0.25113, 35, 3, 150, 0.05532)\n    test 61 HausdorffEquirectangular (degrees2): (0.25113, 35, 3, 90, None)\n    test 62 HausdorffEquirectangular (degrees2): (0.25113, 35, 3, 150, None)\n    test 63 HausdorffEquirectangular (degrees2): (0.25113, 35, 3, 90, None)\n    test 64 HausdorffEquirectangular (degrees2): (0.25113, 35, 3, 150, None)\n    test 65 copy(<class 'type'>): (<class 'pygeodesy.hausdorff.HausdorffEquirectangular'>, True)\n    test 66 HausdorffEquirectangular.copy(): (<class 'pygeodesy.hausdorff.HausdorffEquirectangular'>, True)\n    test 67 HausdorffEuclidean (meter): (0.52803, 56, 51, 90, 0.22571)\n    test 68 HausdorffEuclidean (meter): (0.52803, 56, 51, 150, 0.21579)\n    test 69 HausdorffEuclidean (meter): (0.52803, 56, 51, 90, 0.22571)\n    test 70 HausdorffEuclidean (meter): (0.52803, 56, 51, 150, 0.21579)\n    test 71 HausdorffEuclidean (meter): (0.52803, 56, 51, 90, None)\n    test 72 HausdorffEuclidean (meter): (0.52803, 56, 51, 150, None)\n    test 73 HausdorffEuclidean (meter): (0.52803, 56, 51, 90, None)\n    test 74 HausdorffEuclidean (meter): (0.52803, 56, 51, 150, None)\n    test 75 copy(<class 'type'>): (<class 'pygeodesy.hausdorff.HausdorffEuclidean'>, True)\n    test 76 HausdorffEuclidean.copy(): (<class 'pygeodesy.hausdorff.HausdorffEuclidean'>, True)\n    test 77 HausdorffFlatLocal (radians2): (0.25116, 35, 3, 90, 0.05951)\n    test 78 HausdorffFlatLocal (radians2): (0.25116, 35, 3, 150, 0.0552)\n    test 79 HausdorffFlatLocal (radians2): (0.25116, 35, 3, 90, 0.05951)\n    test 80 HausdorffFlatLocal (radians2): (0.25116, 35, 3, 150, 0.0552)\n    test 81 HausdorffFlatLocal (radians2): (0.25116, 35, 3, 90, None)\n    test 82 HausdorffFlatLocal (radians2): (0.25116, 35, 3, 150, None)\n    test 83 HausdorffFlatLocal (radians2): (0.25116, 35, 3, 90, None)\n    test 84 HausdorffFlatLocal (radians2): (0.25116, 35, 3, 150, None)\n    test 85 copy(<class 'type'>): (<class 'pygeodesy.hausdorff.HausdorffFlatLocal'>, True)\n    test 86 HausdorffFlatLocal.copy(): (<class 'pygeodesy.hausdorff.HausdorffFlatLocal'>, True)\n    test 87 HausdorffFlatPolar (meter): (0.69043, 4, 31, 90, 0.22286)\n    test 88 HausdorffFlatPolar (meter): (0.69043, 4, 31, 150, 0.21318)\n    test 89 HausdorffFlatPolar (meter): (0.69043, 4, 31, 90, 0.22286)\n    test 90 HausdorffFlatPolar (meter): (0.69043, 4, 31, 150, 0.21318)\n    test 91 HausdorffFlatPolar (meter): (0.69043, 4, 31, 90, None)\n    test 92 HausdorffFlatPolar (meter): (0.69043, 4, 31, 150, None)\n    test 93 HausdorffFlatPolar (meter): (0.69043, 4, 31, 90, None)\n    test 94 HausdorffFlatPolar (meter): (0.69043, 4, 31, 150, None)\n    test 95 copy(<class 'type'>): (<class 'pygeodesy.hausdorff.HausdorffFlatPolar'>, True)\n    test 96 HausdorffFlatPolar.copy(): (<class 'pygeodesy.hausdorff.HausdorffFlatPolar'>, True)\n    test 97 HausdorffHaversine (meter): (0.50097, 35, 3, 90, 0.212)\n    test 98 HausdorffHaversine (meter): (0.50097, 35, 3, 150, 0.20099)\n    test 99 HausdorffHaversine (meter): (0.50097, 35, 3, 90, 0.212)\n    test 100 HausdorffHaversine (meter): (0.50097, 35, 3, 150, 0.20099)\n    test 101 HausdorffHaversine (meter): (0.50097, 35, 3, 90, None)\n    test 102 HausdorffHaversine (meter): (0.50097, 35, 3, 150, None)\n    test 103 HausdorffHaversine (meter): (0.50097, 35, 3, 90, None)\n    test 104 HausdorffHaversine (meter): (0.50097, 35, 3, 150, None)\n    test 105 copy(<class 'type'>): (<class 'pygeodesy.hausdorff.HausdorffHaversine'>, True)\n    test 106 HausdorffHaversine.copy(): (<class 'pygeodesy.hausdorff.HausdorffHaversine'>, True)\n    test 107 HausdorffHubeny (radians2): (0.25116, 35, 3, 90, 0.05951)\n    test 108 HausdorffHubeny (radians2): (0.25116, 35, 3, 150, 0.0552)\n    test 109 HausdorffHubeny (radians2): (0.25116, 35, 3, 90, 0.05951)\n    test 110 HausdorffHubeny (radians2): (0.25116, 35, 3, 150, 0.0552)\n    test 111 HausdorffHubeny (radians2): (0.25116, 35, 3, 90, None)\n    test 112 HausdorffHubeny (radians2): (0.25116, 35, 3, 150, None)\n    test 113 HausdorffHubeny (radians2): (0.25116, 35, 3, 90, None)\n    test 114 HausdorffHubeny (radians2): (0.25116, 35, 3, 150, None)\n    test 115 copy(<class 'type'>): (<class 'pygeodesy.hausdorff.HausdorffHubeny'>, True)\n    test 116 HausdorffHubeny.copy(): (<class 'pygeodesy.hausdorff.HausdorffHubeny'>, True)\n    test 117 HausdorffThomas (meter): (0.501, 35, 3, 90, 0.21184)\n    test 118 HausdorffThomas (meter): (0.501, 35, 3, 150, 0.20084)\n    test 119 HausdorffThomas (meter): (0.501, 35, 3, 90, 0.21184)\n    test 120 HausdorffThomas (meter): (0.501, 35, 3, 150, 0.20084)\n    test 121 HausdorffThomas (meter): (0.501, 35, 3, 90, None)\n    test 122 HausdorffThomas (meter): (0.501, 35, 3, 150, None)\n    test 123 HausdorffThomas (meter): (0.501, 35, 3, 90, None)\n    test 124 HausdorffThomas (meter): (0.501, 35, 3, 150, None)\n    test 125 copy(<class 'type'>): (<class 'pygeodesy.hausdorff.HausdorffThomas'>, True)\n    test 126 HausdorffThomas.copy(): (<class 'pygeodesy.hausdorff.HausdorffThomas'>, True)\n    test 127 HausdorffVincentys (meter): (0.50097, 35, 3, 90, 0.212)\n    test 128 HausdorffVincentys (meter): (0.50097, 35, 3, 150, 0.20099)\n    test 129 HausdorffVincentys (meter): (0.50097, 35, 3, 90, 0.212)\n    test 130 HausdorffVincentys (meter): (0.50097, 35, 3, 150, 0.20099)\n    test 131 HausdorffVincentys (meter): (0.50097, 35, 3, 90, None)\n    test 132 HausdorffVincentys (meter): (0.50097, 35, 3, 150, None)\n    test 133 HausdorffVincentys (meter): (0.50097, 35, 3, 90, None)\n    test 134 HausdorffVincentys (meter): (0.50097, 35, 3, 150, None)\n    test 135 copy(<class 'type'>): (<class 'pygeodesy.hausdorff.HausdorffVincentys'>, True)\n    test 136 HausdorffVincentys.copy(): (<class 'pygeodesy.hausdorff.HausdorffVincentys'>, True)\n# lazily imported pygeodesy.geodesicw by ellipsoids.py line 1074\n    test 137 HausdorffKarney (degrees): (28.79903, 35, 3, 90, 12.16138)\n    test 138 HausdorffKarney (degrees): (28.79903, 35, 3, 150, 11.53021)\n    test 139 HausdorffKarney (degrees): (28.79903, 35, 3, 90, 12.16138)\n    test 140 HausdorffKarney (degrees): (28.79903, 35, 3, 150, 11.53021)\n    test 141 HausdorffKarney (degrees): (28.79903, 35, 3, 90, None)\n    test 142 HausdorffKarney (degrees): (28.79903, 35, 3, 150, None)\n    test 143 HausdorffKarney (degrees): (28.79903, 35, 3, 90, None)\n    test 144 HausdorffKarney (degrees): (28.79903, 35, 3, 150, None)\n    test 145 copy(<class 'type'>): (<class 'pygeodesy.hausdorff.HausdorffKarney'>, True)\n    test 146 HausdorffKarney.copy(): (<class 'pygeodesy.hausdorff.HausdorffKarney'>, True)\n    test 147 hausdorff_: (40.0, 22, 6, 90, 18.16111)\n    test 148 hausdorff_: (48.0, 38, 36, 150, 17.30667)\n    test 149 hausdorff_: (40.0, 22, 6, 90, 18.16111)\n    test 150 hausdorff_: (48.0, 38, 36, 150, 17.30667)\n    test 151 hausdorff_: (40.0, 22, 6, 90, None)\n    test 152 hausdorff_: (48.0, 38, 36, 150, None)\n    test 153 hausdorff_: (40.0, 22, 6, 90, None)\n    test 154 hausdorff_: (48.0, 38, 36, 150, None)\n# lazily imported pygeodesy.ellipsoidalNvector by testHausdorff.py line 257\n# lazily imported pygeodesy.ellipsoidalVincenty by testHausdorff.py line 257\n# lazily imported pygeodesy.sphericalNvector by testHausdorff.py line 257\n# lazily imported pygeodesy.sphericalTrigonometry by testHausdorff.py line 257\n# lazily imported pygeodesy.ellipsoidalKarney by testHausdorff.py line 262\n    test 155 HausdorffDistanceTo (meter): (3195418.34044, 35, 3, 90, 1351164.35982)  FAILED, KNOWN, expected (3195418.34044, 35, 3, 90, 1351164.35981)\n    test 156 HausdorffDistanceTo (meter): (3195418.34044, 35, 3, 150, 1280992.80341)\n    test 157 HausdorffDistanceTo (meter): (3195418.34044, 35, 3, 90, 1351164.35982)  FAILED, KNOWN, expected (3195418.34044, 35, 3, 90, 1351164.35981)\n    test 158 HausdorffDistanceTo (meter): (3195418.34044, 35, 3, 150, 1280992.80341)\n    test 159 HausdorffDistanceTo (meter): (3195418.34044, 35, 3, 90, None)\n    test 160 HausdorffDistanceTo (meter): (3195418.34044, 35, 3, 150, None)\n    test 161 HausdorffDistanceTo (meter): (3195418.34044, 35, 3, 90, None)\n    test 162 HausdorffDistanceTo (meter): (3195418.34044, 35, 3, 150, None)\n    test 163 copy(<class 'type'>): (<class 'pygeodesy.hausdorff.HausdorffDistanceTo'>, True)\n    test 164 HausdorffDistanceTo.copy(): (<class 'pygeodesy.hausdorff.HausdorffDistanceTo'>, True)\n    test 165 HausdorffDistanceTo (meter): (3195418.34044, 35, 3, 90, 1351164.35981)\n    test 166 HausdorffDistanceTo (meter): (3195418.34044, 35, 3, 150, 1280992.80341)\n    test 167 HausdorffDistanceTo (meter): (3195418.34044, 35, 3, 90, 1351164.35981)\n    test 168 HausdorffDistanceTo (meter): (3195418.34044, 35, 3, 150, 1280992.80341)\n    test 169 HausdorffDistanceTo (meter): (3195418.34044, 35, 3, 90, None)\n    test 170 HausdorffDistanceTo (meter): (3195418.34044, 35, 3, 150, None)\n    test 171 HausdorffDistanceTo (meter): (3195418.34044, 35, 3, 90, None)\n    test 172 HausdorffDistanceTo (meter): (3195418.34044, 35, 3, 150, None)\n    test 173 copy(<class 'type'>): (<class 'pygeodesy.hausdorff.HausdorffDistanceTo'>, True)\n    test 174 HausdorffDistanceTo.copy(): (<class 'pygeodesy.hausdorff.HausdorffDistanceTo'>, True)\n    test 175 HausdorffDistanceTo (meter): (3191685.70841, 35, 3, 90, 1350684.04012)\n    test 176 HausdorffDistanceTo (meter): (3191685.70841, 35, 3, 150, 1280478.58707)\n    test 177 HausdorffDistanceTo (meter): (3191685.70841, 35, 3, 90, 1350684.04012)\n    test 178 HausdorffDistanceTo (meter): (3191685.70841, 35, 3, 150, 1280478.58707)\n    test 179 HausdorffDistanceTo (meter): (3191685.70841, 35, 3, 90, None)\n    test 180 HausdorffDistanceTo (meter): (3191685.70841, 35, 3, 150, None)\n    test 181 HausdorffDistanceTo (meter): (3191685.70841, 35, 3, 90, None)\n    test 182 HausdorffDistanceTo (meter): (3191685.70841, 35, 3, 150, None)\n    test 183 copy(<class 'type'>): (<class 'pygeodesy.hausdorff.HausdorffDistanceTo'>, True)\n    test 184 HausdorffDistanceTo.copy(): (<class 'pygeodesy.hausdorff.HausdorffDistanceTo'>, True)\n    test 185 HausdorffDistanceTo (meter): (3191685.70841, 35, 3, 90, 1350684.04012)\n    test 186 HausdorffDistanceTo (meter): (3191685.70841, 35, 3, 150, 1280478.58707)\n    test 187 HausdorffDistanceTo (meter): (3191685.70841, 35, 3, 90, 1350684.04012)\n    test 188 HausdorffDistanceTo (meter): (3191685.70841, 35, 3, 150, 1280478.58707)\n    test 189 HausdorffDistanceTo (meter): (3191685.70841, 35, 3, 90, None)\n    test 190 HausdorffDistanceTo (meter): (3191685.70841, 35, 3, 150, None)\n    test 191 HausdorffDistanceTo (meter): (3191685.70841, 35, 3, 90, None)\n    test 192 HausdorffDistanceTo (meter): (3191685.70841, 35, 3, 150, None)\n    test 193 copy(<class 'type'>): (<class 'pygeodesy.hausdorff.HausdorffDistanceTo'>, True)\n    test 194 HausdorffDistanceTo.copy(): (<class 'pygeodesy.hausdorff.HausdorffDistanceTo'>, True)\n    test 195 HausdorffDistanceTo (meter): (3191685.70841, 35, 3, 90, 1350684.04012)\n    test 196 HausdorffDistanceTo (meter): (3191685.70841, 35, 3, 150, 1280478.58707)\n    test 197 HausdorffDistanceTo (meter): (3191685.70841, 35, 3, 90, 1350684.04012)\n    test 198 HausdorffDistanceTo (meter): (3191685.70841, 35, 3, 150, 1280478.58707)\n    test 199 HausdorffDistanceTo (meter): (3191685.70841, 35, 3, 90, None)\n    test 200 HausdorffDistanceTo (meter): (3191685.70841, 35, 3, 150, None)\n    test 201 HausdorffDistanceTo (meter): (3191685.70841, 35, 3, 90, None)\n    test 202 HausdorffDistanceTo (meter): (3191685.70841, 35, 3, 150, None)\n    test 203 copy(<class 'type'>): (<class 'pygeodesy.hausdorff.HausdorffDistanceTo'>, True)\n    test 204 HausdorffDistanceTo.copy(): (<class 'pygeodesy.hausdorff.HausdorffDistanceTo'>, True)\n\n    156 of 204 testHausdorff.py tests (76.5%) FAILED, incl. 2 KNOWN plus 154 DeprecationWarnings (pygeodesy 26.3.26 Python 3.12.10 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 2.1.0 scipy 1.14.1 Math 2 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 isLazy 3 -W  default) 1:43.979\nrunning /usr/local/bin/p....n3.12 -W default ~/PyGeodesy/test/testHeights.py\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.Datums from .datums by testHeights.py line 17\n# lazily imported pygeodesy.fstr from .streprs by testHeights.py line 17\n# lazily imported pygeodesy.SciPyError from .errors by testHeights.py line 17\n# lazily imported pygeodesy.HeightError from .heights by testHeights.py line 17\n# lazily imported pygeodesy.HeightIDWcosineLaw from .heights by testHeights.py line 17\n# lazily imported pygeodesy.HeightCubic from .heights by testHeights.py line 17\n# lazily imported pygeodesy.HeightIDWdistanceTo from .heights by testHeights.py line 17\n# lazily imported pygeodesy.HeightIDWequirectangular from .heights by testHeights.py line 17\n# lazily imported pygeodesy.HeightIDWeuclidean from .heights by testHeights.py line 17\n# lazily imported pygeodesy.HeightIDWexact from .heights by testHeights.py line 17\n# lazily imported pygeodesy.HeightIDWflatLocal from .heights by testHeights.py line 17\n# lazily imported pygeodesy.HeightIDWflatPolar from .heights by testHeights.py line 17\n# lazily imported pygeodesy.HeightIDWhaversine from .heights by testHeights.py line 17\n# lazily imported pygeodesy.HeightIDWhubeny from .heights by testHeights.py line 17\n# lazily imported pygeodesy.HeightIDWkarney from .heights by testHeights.py line 17\n# lazily imported pygeodesy.HeightIDWthomas from .heights by testHeights.py line 17\n# lazily imported pygeodesy.HeightIDWvincentys from .heights by testHeights.py line 17\n# lazily imported pygeodesy.HeightLinear from .heights by testHeights.py line 17\n# lazily imported pygeodesy.HeightLSQBiSpline from .heights by testHeights.py line 17\n# lazily imported pygeodesy.HeightSmoothBiSpline from .heights by testHeights.py line 17\n\n    testing testHeights.py 24.12.31 isLazy=3\n# imported pygeodesy.formy into heights.py line 789\n\n    test 1 HeightIDWcosineLaw(wrap=True): 6.108538037\n    test 2 HeightIDWcosineLaw(float): <class 'float'>\n    test 3 HeightIDWcosineLaw(latlon): True\n    test 4 HeightIDWcosineLaw_(tuple): True\n    test 5 HeightIDWcosineLaw(wrap=True): 5.0\n    test 6 HeightIDWcosineLaw(float): <class 'float'>\n    test 7 HeightIDWcosineLaw(latlon): True\n    test 8 HeightIDWcosineLaw(wrap=True): (6.108538037, 5.0,)\n    test 9 HeightIDWcosineLaw(tuple): <class 'tuple'>\n    test 10 HeightIDWcosineLaw(tuple-float): <class 'float'>\n    test 11 HeightIDWcosineLaw(tuple-float): <class 'float'>\n    test 12 HeightIDWcosineLaw(wrap=True): [6.108538037, 5.0]\n    test 13 HeightIDWcosineLaw(list: <class 'list'>\n    test 14 HeightIDWcosineLaw(list-float): <class 'float'>\n    test 15 HeightIDWcosineLaw(list-float): <class 'float'>\n    test 16 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWcosineLaw'>, True)\n    test 17 HeightIDWcosineLaw.copy(): (<class 'pygeodesy.heights.HeightIDWcosineLaw'>, True)\n    test 18 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 19 HeightIDWcosineLaw.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 20 HeightIDWcosineLaw.kmin: 2\n    test 21 HeightIDWcosineLaw.wrap: True\n    test 22 HeightIDWcosineLaw.beta: 2\n    test 23 HeightIDWcosineLaw.adjust: None\n    test 24 HeightIDWcosineLaw.beta: 2\n    test 25 HeightIDWcosineLaw.kmin: 2\n    test 26 HeightIDWcosineLaw.wrap: True\n\n    test 27 HeightIDWcosineLaw(wrap=False): 6.108538037\n    test 28 HeightIDWcosineLaw(float): <class 'float'>\n    test 29 HeightIDWcosineLaw(latlon): True\n    test 30 HeightIDWcosineLaw_(tuple): True\n    test 31 HeightIDWcosineLaw(wrap=False): 5.0\n    test 32 HeightIDWcosineLaw(float): <class 'float'>\n    test 33 HeightIDWcosineLaw(latlon): True\n    test 34 HeightIDWcosineLaw(wrap=False): (6.108538037, 5.0,)\n    test 35 HeightIDWcosineLaw(tuple): <class 'tuple'>\n    test 36 HeightIDWcosineLaw(tuple-float): <class 'float'>\n    test 37 HeightIDWcosineLaw(tuple-float): <class 'float'>\n    test 38 HeightIDWcosineLaw(wrap=False): [6.108538037, 5.0]\n    test 39 HeightIDWcosineLaw(list: <class 'list'>\n    test 40 HeightIDWcosineLaw(list-float): <class 'float'>\n    test 41 HeightIDWcosineLaw(list-float): <class 'float'>\n    test 42 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWcosineLaw'>, True)\n    test 43 HeightIDWcosineLaw.copy(): (<class 'pygeodesy.heights.HeightIDWcosineLaw'>, True)\n    test 44 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 45 HeightIDWcosineLaw.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 46 HeightIDWcosineLaw.kmin: 2\n    test 47 HeightIDWcosineLaw.wrap: False\n    test 48 HeightIDWcosineLaw.beta: 2\n    test 49 HeightIDWcosineLaw.adjust: None\n    test 50 HeightIDWcosineLaw.beta: 2\n    test 51 HeightIDWcosineLaw.kmin: 2\n    test 52 HeightIDWcosineLaw.wrap: False\n\n    test 53 HeightIDWcosineLaw(corr=1, wrap=False): 6.111157919\n    test 54 HeightIDWcosineLaw(float): <class 'float'>\n    test 55 HeightIDWcosineLaw(latlon): True\n    test 56 HeightIDWcosineLaw_(tuple): True\n    test 57 HeightIDWcosineLaw(corr=1, wrap=False): 5.0\n    test 58 HeightIDWcosineLaw(float): <class 'float'>\n    test 59 HeightIDWcosineLaw(latlon): True\n    test 60 HeightIDWcosineLaw(corr=1, wrap=False): (6.111157919, 5.0,)\n    test 61 HeightIDWcosineLaw(tuple): <class 'tuple'>\n    test 62 HeightIDWcosineLaw(tuple-float): <class 'float'>\n    test 63 HeightIDWcosineLaw(tuple-float): <class 'float'>\n    test 64 HeightIDWcosineLaw(corr=1, wrap=False): [6.111157919, 5.0]\n    test 65 HeightIDWcosineLaw(list: <class 'list'>\n    test 66 HeightIDWcosineLaw(list-float): <class 'float'>\n    test 67 HeightIDWcosineLaw(list-float): <class 'float'>\n    test 68 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWcosineLaw'>, True)\n    test 69 HeightIDWcosineLaw.copy(): (<class 'pygeodesy.heights.HeightIDWcosineLaw'>, True)\n    test 70 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 71 HeightIDWcosineLaw.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 72 HeightIDWcosineLaw.kmin: 2\n    test 73 HeightIDWcosineLaw.wrap: False\n    test 74 HeightIDWcosineLaw.beta: 2\n    test 75 HeightIDWcosineLaw.adjust: None\n    test 76 HeightIDWcosineLaw.beta: 2\n    test 77 HeightIDWcosineLaw.kmin: 2\n    test 78 HeightIDWcosineLaw.wrap: False\n\n    test 79 HeightIDWcosineLaw(corr=2, wrap=False): 6.111158354\n    test 80 HeightIDWcosineLaw(float): <class 'float'>\n    test 81 HeightIDWcosineLaw(latlon): True\n    test 82 HeightIDWcosineLaw_(tuple): True\n    test 83 HeightIDWcosineLaw(corr=2, wrap=False): 5.0\n    test 84 HeightIDWcosineLaw(float): <class 'float'>\n    test 85 HeightIDWcosineLaw(latlon): True\n    test 86 HeightIDWcosineLaw(corr=2, wrap=False): (6.111158354, 5.0,)\n    test 87 HeightIDWcosineLaw(tuple): <class 'tuple'>\n    test 88 HeightIDWcosineLaw(tuple-float): <class 'float'>\n    test 89 HeightIDWcosineLaw(tuple-float): <class 'float'>\n    test 90 HeightIDWcosineLaw(corr=2, wrap=False): [6.111158354, 5.0]\n    test 91 HeightIDWcosineLaw(list: <class 'list'>\n    test 92 HeightIDWcosineLaw(list-float): <class 'float'>\n    test 93 HeightIDWcosineLaw(list-float): <class 'float'>\n    test 94 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWcosineLaw'>, True)\n    test 95 HeightIDWcosineLaw.copy(): (<class 'pygeodesy.heights.HeightIDWcosineLaw'>, True)\n    test 96 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 97 HeightIDWcosineLaw.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 98 HeightIDWcosineLaw.kmin: 2\n    test 99 HeightIDWcosineLaw.wrap: False\n    test 100 HeightIDWcosineLaw.beta: 2\n    test 101 HeightIDWcosineLaw.adjust: None\n    test 102 HeightIDWcosineLaw.beta: 2\n    test 103 HeightIDWcosineLaw.kmin: 2\n    test 104 HeightIDWcosineLaw.wrap: False\n\n    test 105 HeightIDWdistanceTo(): 6.108538037\n    test 106 HeightIDWdistanceTo(float): <class 'float'>\n    test 107 HeightIDWdistanceTo(latlon): True\n    test 108 HeightIDWdistanceTo_(tuple): True\n    test 109 HeightIDWdistanceTo(): 5.0\n    test 110 HeightIDWdistanceTo(float): <class 'float'>\n    test 111 HeightIDWdistanceTo(latlon): True\n    test 112 HeightIDWdistanceTo(): (6.108538037, 5.0,)\n    test 113 HeightIDWdistanceTo(tuple): <class 'tuple'>\n    test 114 HeightIDWdistanceTo(tuple-float): <class 'float'>\n    test 115 HeightIDWdistanceTo(tuple-float): <class 'float'>\n    test 116 HeightIDWdistanceTo(): [6.108538037, 5.0]\n    test 117 HeightIDWdistanceTo(list: <class 'list'>\n    test 118 HeightIDWdistanceTo(list-float): <class 'float'>\n    test 119 HeightIDWdistanceTo(list-float): <class 'float'>\n    test 120 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWdistanceTo'>, True)\n    test 121 HeightIDWdistanceTo.copy(): (<class 'pygeodesy.heights.HeightIDWdistanceTo'>, True)\n    test 122 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 123 HeightIDWdistanceTo.datum: name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84\n    test 124 HeightIDWdistanceTo.kmin: 2\n    test 125 HeightIDWdistanceTo.wrap: None\n    test 126 HeightIDWdistanceTo.beta: 2\n    test 127 HeightIDWdistanceTo.adjust: None\n    test 128 HeightIDWdistanceTo.beta: 2\n    test 129 HeightIDWdistanceTo.kmin: 2\n    test 130 HeightIDWdistanceTo.wrap: None\n\n    test 131 HeightIDWequirectangular(adjust=True, wrap=True): 6.860459007\n    test 132 HeightIDWequirectangular(float): <class 'float'>\n    test 133 HeightIDWequirectangular(latlon): True\n    test 134 HeightIDWequirectangular_(tuple): True\n    test 135 HeightIDWequirectangular(adjust=True, wrap=True): 5.0\n    test 136 HeightIDWequirectangular(float): <class 'float'>\n    test 137 HeightIDWequirectangular(latlon): True\n    test 138 HeightIDWequirectangular(adjust=True, wrap=True): (6.860459007, 5.0,)\n    test 139 HeightIDWequirectangular(tuple): <class 'tuple'>\n    test 140 HeightIDWequirectangular(tuple-float): <class 'float'>\n    test 141 HeightIDWequirectangular(tuple-float): <class 'float'>\n    test 142 HeightIDWequirectangular(adjust=True, wrap=True): [6.860459007, 5.0]\n    test 143 HeightIDWequirectangular(list: <class 'list'>\n    test 144 HeightIDWequirectangular(list-float): <class 'float'>\n    test 145 HeightIDWequirectangular(list-float): <class 'float'>\n    test 146 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWequirectangular'>, True)\n    test 147 HeightIDWequirectangular.copy(): (<class 'pygeodesy.heights.HeightIDWequirectangular'>, True)\n    test 148 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 149 HeightIDWequirectangular.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 150 HeightIDWequirectangular.kmin: 2\n    test 151 HeightIDWequirectangular.wrap: True\n    test 152 HeightIDWequirectangular.beta: 2\n    test 153 HeightIDWequirectangular.adjust: True\n    test 154 HeightIDWequirectangular.beta: 2\n    test 155 HeightIDWequirectangular.kmin: 2\n    test 156 HeightIDWequirectangular.wrap: True\n\n    test 157 HeightIDWequirectangular(adjust=False, wrap=True): 6.860498092\n    test 158 HeightIDWequirectangular(float): <class 'float'>\n    test 159 HeightIDWequirectangular(latlon): True\n    test 160 HeightIDWequirectangular_(tuple): True\n    test 161 HeightIDWequirectangular(adjust=False, wrap=True): 5.0\n    test 162 HeightIDWequirectangular(float): <class 'float'>\n    test 163 HeightIDWequirectangular(latlon): True\n    test 164 HeightIDWequirectangular(adjust=False, wrap=True): (6.860498092, 5.0,)\n    test 165 HeightIDWequirectangular(tuple): <class 'tuple'>\n    test 166 HeightIDWequirectangular(tuple-float): <class 'float'>\n    test 167 HeightIDWequirectangular(tuple-float): <class 'float'>\n    test 168 HeightIDWequirectangular(adjust=False, wrap=True): [6.860498092, 5.0]\n    test 169 HeightIDWequirectangular(list: <class 'list'>\n    test 170 HeightIDWequirectangular(list-float): <class 'float'>\n    test 171 HeightIDWequirectangular(list-float): <class 'float'>\n    test 172 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWequirectangular'>, True)\n    test 173 HeightIDWequirectangular.copy(): (<class 'pygeodesy.heights.HeightIDWequirectangular'>, True)\n    test 174 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 175 HeightIDWequirectangular.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 176 HeightIDWequirectangular.kmin: 2\n    test 177 HeightIDWequirectangular.wrap: True\n    test 178 HeightIDWequirectangular.beta: 2\n    test 179 HeightIDWequirectangular.adjust: False\n    test 180 HeightIDWequirectangular.beta: 2\n    test 181 HeightIDWequirectangular.kmin: 2\n    test 182 HeightIDWequirectangular.wrap: True\n\n    test 183 HeightIDWeuclidean(): 6.142945781\n    test 184 HeightIDWeuclidean(float): <class 'float'>\n    test 185 HeightIDWeuclidean(latlon): True\n    test 186 HeightIDWeuclidean_(tuple): True\n    test 187 HeightIDWeuclidean(): 5.0\n    test 188 HeightIDWeuclidean(float): <class 'float'>\n    test 189 HeightIDWeuclidean(latlon): True\n    test 190 HeightIDWeuclidean(): (6.142945781, 5.0,)\n    test 191 HeightIDWeuclidean(tuple): <class 'tuple'>\n    test 192 HeightIDWeuclidean(tuple-float): <class 'float'>\n    test 193 HeightIDWeuclidean(tuple-float): <class 'float'>\n    test 194 HeightIDWeuclidean(): [6.142945781, 5.0]\n    test 195 HeightIDWeuclidean(list: <class 'list'>\n    test 196 HeightIDWeuclidean(list-float): <class 'float'>\n    test 197 HeightIDWeuclidean(list-float): <class 'float'>\n    test 198 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWeuclidean'>, True)\n    test 199 HeightIDWeuclidean.copy(): (<class 'pygeodesy.heights.HeightIDWeuclidean'>, True)\n    test 200 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 201 HeightIDWeuclidean.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 202 HeightIDWeuclidean.kmin: 2\n    test 203 HeightIDWeuclidean.wrap: None\n    test 204 HeightIDWeuclidean.beta: 2\n    test 205 HeightIDWeuclidean.adjust: None\n    test 206 HeightIDWeuclidean.beta: 2\n    test 207 HeightIDWeuclidean.kmin: 2\n    test 208 HeightIDWeuclidean.wrap: None\n# lazily imported pygeodesy.geodesicx by ellipsoids.py line 1082\n# lazily imported pygeodesy.elliptic by gx.py line 421\n\n    test 209 HeightIDWexact(): 6.108538037\n    test 210 HeightIDWexact(float): <class 'float'>\n    test 211 HeightIDWexact(latlon): True\n    test 212 HeightIDWexact_(tuple): True\n    test 213 HeightIDWexact(): 5.0\n    test 214 HeightIDWexact(float): <class 'float'>\n    test 215 HeightIDWexact(latlon): True\n    test 216 HeightIDWexact(): (6.108538037, 5.0,)\n    test 217 HeightIDWexact(tuple): <class 'tuple'>\n    test 218 HeightIDWexact(tuple-float): <class 'float'>\n    test 219 HeightIDWexact(tuple-float): <class 'float'>\n    test 220 HeightIDWexact(): [6.108538037, 5.0]\n    test 221 HeightIDWexact(list: <class 'list'>\n    test 222 HeightIDWexact(list-float): <class 'float'>\n    test 223 HeightIDWexact(list-float): <class 'float'>\n    test 224 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWexact'>, True)\n    test 225 HeightIDWexact.copy(): (<class 'pygeodesy.heights.HeightIDWexact'>, True)\n    test 226 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 227 HeightIDWexact.datum: name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84\n    test 228 HeightIDWexact.kmin: 2\n    test 229 HeightIDWexact.wrap: None\n    test 230 HeightIDWexact.beta: 2\n    test 231 HeightIDWexact.adjust: None\n    test 232 HeightIDWexact.beta: 2\n    test 233 HeightIDWexact.kmin: 2\n    test 234 HeightIDWexact.wrap: None\n\n    test 235 HeightIDWflatLocal(): 6.111158784\n    test 236 HeightIDWflatLocal(float): <class 'float'>\n    test 237 HeightIDWflatLocal(latlon): True\n    test 238 HeightIDWflatLocal_(tuple): True\n    test 239 HeightIDWflatLocal(): 5.0\n    test 240 HeightIDWflatLocal(float): <class 'float'>\n    test 241 HeightIDWflatLocal(latlon): True\n    test 242 HeightIDWflatLocal(): (6.111158784, 5.0,)\n    test 243 HeightIDWflatLocal(tuple): <class 'tuple'>\n    test 244 HeightIDWflatLocal(tuple-float): <class 'float'>\n    test 245 HeightIDWflatLocal(tuple-float): <class 'float'>\n    test 246 HeightIDWflatLocal(): [6.111158784, 5.0]\n    test 247 HeightIDWflatLocal(list: <class 'list'>\n    test 248 HeightIDWflatLocal(list-float): <class 'float'>\n    test 249 HeightIDWflatLocal(list-float): <class 'float'>\n    test 250 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWflatLocal'>, True)\n    test 251 HeightIDWflatLocal.copy(): (<class 'pygeodesy.heights.HeightIDWflatLocal'>, True)\n    test 252 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 253 HeightIDWflatLocal.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 254 HeightIDWflatLocal.kmin: 2\n    test 255 HeightIDWflatLocal.wrap: None\n    test 256 HeightIDWflatLocal.beta: 2\n    test 257 HeightIDWflatLocal.adjust: None\n    test 258 HeightIDWflatLocal.beta: 2\n    test 259 HeightIDWflatLocal.kmin: 2\n    test 260 HeightIDWflatLocal.wrap: None\n\n    test 261 HeightIDWflatPolar(): 6.261469975\n    test 262 HeightIDWflatPolar(float): <class 'float'>\n    test 263 HeightIDWflatPolar(latlon): True\n    test 264 HeightIDWflatPolar_(tuple): True\n    test 265 HeightIDWflatPolar(): 5.0\n    test 266 HeightIDWflatPolar(float): <class 'float'>\n    test 267 HeightIDWflatPolar(latlon): True\n    test 268 HeightIDWflatPolar(): (6.261469975, 5.0,)\n    test 269 HeightIDWflatPolar(tuple): <class 'tuple'>\n    test 270 HeightIDWflatPolar(tuple-float): <class 'float'>\n    test 271 HeightIDWflatPolar(tuple-float): <class 'float'>\n    test 272 HeightIDWflatPolar(): [6.261469975, 5.0]\n    test 273 HeightIDWflatPolar(list: <class 'list'>\n    test 274 HeightIDWflatPolar(list-float): <class 'float'>\n    test 275 HeightIDWflatPolar(list-float): <class 'float'>\n    test 276 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWflatPolar'>, True)\n    test 277 HeightIDWflatPolar.copy(): (<class 'pygeodesy.heights.HeightIDWflatPolar'>, True)\n    test 278 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 279 HeightIDWflatPolar.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 280 HeightIDWflatPolar.kmin: 2\n    test 281 HeightIDWflatPolar.wrap: None\n    test 282 HeightIDWflatPolar.beta: 2\n    test 283 HeightIDWflatPolar.adjust: None\n    test 284 HeightIDWflatPolar.beta: 2\n    test 285 HeightIDWflatPolar.kmin: 2\n    test 286 HeightIDWflatPolar.wrap: None\n\n    test 287 HeightIDWhaversine(): 6.108538037\n    test 288 HeightIDWhaversine(float): <class 'float'>\n    test 289 HeightIDWhaversine(latlon): True\n    test 290 HeightIDWhaversine_(tuple): True\n    test 291 HeightIDWhaversine(): 5.0\n    test 292 HeightIDWhaversine(float): <class 'float'>\n    test 293 HeightIDWhaversine(latlon): True\n    test 294 HeightIDWhaversine(): (6.108538037, 5.0,)\n    test 295 HeightIDWhaversine(tuple): <class 'tuple'>\n    test 296 HeightIDWhaversine(tuple-float): <class 'float'>\n    test 297 HeightIDWhaversine(tuple-float): <class 'float'>\n    test 298 HeightIDWhaversine(): [6.108538037, 5.0]\n    test 299 HeightIDWhaversine(list: <class 'list'>\n    test 300 HeightIDWhaversine(list-float): <class 'float'>\n    test 301 HeightIDWhaversine(list-float): <class 'float'>\n    test 302 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWhaversine'>, True)\n    test 303 HeightIDWhaversine.copy(): (<class 'pygeodesy.heights.HeightIDWhaversine'>, True)\n    test 304 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 305 HeightIDWhaversine.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 306 HeightIDWhaversine.kmin: 2\n    test 307 HeightIDWhaversine.wrap: None\n    test 308 HeightIDWhaversine.beta: 2\n    test 309 HeightIDWhaversine.adjust: None\n    test 310 HeightIDWhaversine.beta: 2\n    test 311 HeightIDWhaversine.kmin: 2\n    test 312 HeightIDWhaversine.wrap: None\n\n    test 313 HeightIDWhubeny(): 6.111158784\n    test 314 HeightIDWhubeny(float): <class 'float'>\n    test 315 HeightIDWhubeny(latlon): True\n    test 316 HeightIDWhubeny_(tuple): True\n    test 317 HeightIDWhubeny(): 5.0\n    test 318 HeightIDWhubeny(float): <class 'float'>\n    test 319 HeightIDWhubeny(latlon): True\n    test 320 HeightIDWhubeny(): (6.111158784, 5.0,)\n    test 321 HeightIDWhubeny(tuple): <class 'tuple'>\n    test 322 HeightIDWhubeny(tuple-float): <class 'float'>\n    test 323 HeightIDWhubeny(tuple-float): <class 'float'>\n    test 324 HeightIDWhubeny(): [6.111158784, 5.0]\n    test 325 HeightIDWhubeny(list: <class 'list'>\n    test 326 HeightIDWhubeny(list-float): <class 'float'>\n    test 327 HeightIDWhubeny(list-float): <class 'float'>\n    test 328 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWhubeny'>, True)\n    test 329 HeightIDWhubeny.copy(): (<class 'pygeodesy.heights.HeightIDWhubeny'>, True)\n    test 330 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 331 HeightIDWhubeny.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 332 HeightIDWhubeny.kmin: 2\n    test 333 HeightIDWhubeny.wrap: None\n    test 334 HeightIDWhubeny.beta: 2\n    test 335 HeightIDWhubeny.adjust: None\n    test 336 HeightIDWhubeny.beta: 2\n    test 337 HeightIDWhubeny.kmin: 2\n    test 338 HeightIDWhubeny.wrap: None\n# lazily imported pygeodesy.geodesicw by ellipsoids.py line 1074\n\n    test 339 HeightIDWkarney(datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), wrap=True): 6.111158743\n    test 340 HeightIDWkarney(float): <class 'float'>\n    test 341 HeightIDWkarney(latlon): True\n    test 342 HeightIDWkarney_(tuple): True\n    test 343 HeightIDWkarney(datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), wrap=True): 5.0\n    test 344 HeightIDWkarney(float): <class 'float'>\n    test 345 HeightIDWkarney(latlon): True\n    test 346 HeightIDWkarney(datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), wrap=True): (6.111158743, 5.0,)\n    test 347 HeightIDWkarney(tuple): <class 'tuple'>\n    test 348 HeightIDWkarney(tuple-float): <class 'float'>\n    test 349 HeightIDWkarney(tuple-float): <class 'float'>\n    test 350 HeightIDWkarney(datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), wrap=True): [6.111158743, 5.0]\n    test 351 HeightIDWkarney(list: <class 'list'>\n    test 352 HeightIDWkarney(list-float): <class 'float'>\n    test 353 HeightIDWkarney(list-float): <class 'float'>\n    test 354 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWkarney'>, True)\n    test 355 HeightIDWkarney.copy(): (<class 'pygeodesy.heights.HeightIDWkarney'>, True)\n    test 356 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 357 HeightIDWkarney.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 358 HeightIDWkarney.kmin: 2\n    test 359 HeightIDWkarney.wrap: True\n    test 360 HeightIDWkarney.beta: 2\n    test 361 HeightIDWkarney.adjust: None\n    test 362 HeightIDWkarney.beta: 2\n    test 363 HeightIDWkarney.kmin: 2\n    test 364 HeightIDWkarney.wrap: True\n\n    test 365 HeightIDWkarney(datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), wrap=False): 6.111158743\n    test 366 HeightIDWkarney(float): <class 'float'>\n    test 367 HeightIDWkarney(latlon): True\n    test 368 HeightIDWkarney_(tuple): True\n    test 369 HeightIDWkarney(datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), wrap=False): 5.0\n    test 370 HeightIDWkarney(float): <class 'float'>\n    test 371 HeightIDWkarney(latlon): True\n    test 372 HeightIDWkarney(datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), wrap=False): (6.111158743, 5.0,)\n    test 373 HeightIDWkarney(tuple): <class 'tuple'>\n    test 374 HeightIDWkarney(tuple-float): <class 'float'>\n    test 375 HeightIDWkarney(tuple-float): <class 'float'>\n    test 376 HeightIDWkarney(datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), wrap=False): [6.111158743, 5.0]\n    test 377 HeightIDWkarney(list: <class 'list'>\n    test 378 HeightIDWkarney(list-float): <class 'float'>\n    test 379 HeightIDWkarney(list-float): <class 'float'>\n    test 380 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWkarney'>, True)\n    test 381 HeightIDWkarney.copy(): (<class 'pygeodesy.heights.HeightIDWkarney'>, True)\n    test 382 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 383 HeightIDWkarney.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 384 HeightIDWkarney.kmin: 2\n    test 385 HeightIDWkarney.wrap: False\n    test 386 HeightIDWkarney.beta: 2\n    test 387 HeightIDWkarney.adjust: None\n    test 388 HeightIDWkarney.beta: 2\n    test 389 HeightIDWkarney.kmin: 2\n    test 390 HeightIDWkarney.wrap: False\n\n    test 391 HeightIDWkarney(datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84), wrap=True): 6.108538037\n    test 392 HeightIDWkarney(float): <class 'float'>\n    test 393 HeightIDWkarney(latlon): True\n    test 394 HeightIDWkarney_(tuple): True\n    test 395 HeightIDWkarney(datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84), wrap=True): 5.0\n    test 396 HeightIDWkarney(float): <class 'float'>\n    test 397 HeightIDWkarney(latlon): True\n    test 398 HeightIDWkarney(datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84), wrap=True): (6.108538037, 5.0,)\n    test 399 HeightIDWkarney(tuple): <class 'tuple'>\n    test 400 HeightIDWkarney(tuple-float): <class 'float'>\n    test 401 HeightIDWkarney(tuple-float): <class 'float'>\n    test 402 HeightIDWkarney(datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84), wrap=True): [6.108538037, 5.0]\n    test 403 HeightIDWkarney(list: <class 'list'>\n    test 404 HeightIDWkarney(list-float): <class 'float'>\n    test 405 HeightIDWkarney(list-float): <class 'float'>\n    test 406 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWkarney'>, True)\n    test 407 HeightIDWkarney.copy(): (<class 'pygeodesy.heights.HeightIDWkarney'>, True)\n    test 408 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 409 HeightIDWkarney.datum: name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84\n    test 410 HeightIDWkarney.kmin: 2\n    test 411 HeightIDWkarney.wrap: True\n    test 412 HeightIDWkarney.beta: 2\n    test 413 HeightIDWkarney.adjust: None\n    test 414 HeightIDWkarney.beta: 2\n    test 415 HeightIDWkarney.kmin: 2\n    test 416 HeightIDWkarney.wrap: True\n\n    test 417 HeightIDWkarney(datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84), wrap=False): 6.108538037\n    test 418 HeightIDWkarney(float): <class 'float'>\n    test 419 HeightIDWkarney(latlon): True\n    test 420 HeightIDWkarney_(tuple): True\n    test 421 HeightIDWkarney(datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84), wrap=False): 5.0\n    test 422 HeightIDWkarney(float): <class 'float'>\n    test 423 HeightIDWkarney(latlon): True\n    test 424 HeightIDWkarney(datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84), wrap=False): (6.108538037, 5.0,)\n    test 425 HeightIDWkarney(tuple): <class 'tuple'>\n    test 426 HeightIDWkarney(tuple-float): <class 'float'>\n    test 427 HeightIDWkarney(tuple-float): <class 'float'>\n    test 428 HeightIDWkarney(datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84), wrap=False): [6.108538037, 5.0]\n    test 429 HeightIDWkarney(list: <class 'list'>\n    test 430 HeightIDWkarney(list-float): <class 'float'>\n    test 431 HeightIDWkarney(list-float): <class 'float'>\n    test 432 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWkarney'>, True)\n    test 433 HeightIDWkarney.copy(): (<class 'pygeodesy.heights.HeightIDWkarney'>, True)\n    test 434 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 435 HeightIDWkarney.datum: name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84\n    test 436 HeightIDWkarney.kmin: 2\n    test 437 HeightIDWkarney.wrap: False\n    test 438 HeightIDWkarney.beta: 2\n    test 439 HeightIDWkarney.adjust: None\n    test 440 HeightIDWkarney.beta: 2\n    test 441 HeightIDWkarney.kmin: 2\n    test 442 HeightIDWkarney.wrap: False\n\n    test 443 HeightIDWthomas(wrap=True): 6.111159454\n    test 444 HeightIDWthomas(float): <class 'float'>\n    test 445 HeightIDWthomas(latlon): True\n    test 446 HeightIDWthomas_(tuple): True\n    test 447 HeightIDWthomas(wrap=True): 5.0\n    test 448 HeightIDWthomas(float): <class 'float'>\n    test 449 HeightIDWthomas(latlon): True\n    test 450 HeightIDWthomas(wrap=True): (6.111159454, 5.0,)\n    test 451 HeightIDWthomas(tuple): <class 'tuple'>\n    test 452 HeightIDWthomas(tuple-float): <class 'float'>\n    test 453 HeightIDWthomas(tuple-float): <class 'float'>\n    test 454 HeightIDWthomas(wrap=True): [6.111159454, 5.0]\n    test 455 HeightIDWthomas(list: <class 'list'>\n    test 456 HeightIDWthomas(list-float): <class 'float'>\n    test 457 HeightIDWthomas(list-float): <class 'float'>\n    test 458 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWthomas'>, True)\n    test 459 HeightIDWthomas.copy(): (<class 'pygeodesy.heights.HeightIDWthomas'>, True)\n    test 460 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 461 HeightIDWthomas.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 462 HeightIDWthomas.kmin: 2\n    test 463 HeightIDWthomas.wrap: True\n    test 464 HeightIDWthomas.beta: 2\n    test 465 HeightIDWthomas.adjust: None\n    test 466 HeightIDWthomas.beta: 2\n    test 467 HeightIDWthomas.kmin: 2\n    test 468 HeightIDWthomas.wrap: True\n\n    test 469 HeightIDWthomas(wrap=False): 6.111159454\n    test 470 HeightIDWthomas(float): <class 'float'>\n    test 471 HeightIDWthomas(latlon): True\n    test 472 HeightIDWthomas_(tuple): True\n    test 473 HeightIDWthomas(wrap=False): 5.0\n    test 474 HeightIDWthomas(float): <class 'float'>\n    test 475 HeightIDWthomas(latlon): True\n    test 476 HeightIDWthomas(wrap=False): (6.111159454, 5.0,)\n    test 477 HeightIDWthomas(tuple): <class 'tuple'>\n    test 478 HeightIDWthomas(tuple-float): <class 'float'>\n    test 479 HeightIDWthomas(tuple-float): <class 'float'>\n    test 480 HeightIDWthomas(wrap=False): [6.111159454, 5.0]\n    test 481 HeightIDWthomas(list: <class 'list'>\n    test 482 HeightIDWthomas(list-float): <class 'float'>\n    test 483 HeightIDWthomas(list-float): <class 'float'>\n    test 484 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWthomas'>, True)\n    test 485 HeightIDWthomas.copy(): (<class 'pygeodesy.heights.HeightIDWthomas'>, True)\n    test 486 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 487 HeightIDWthomas.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 488 HeightIDWthomas.kmin: 2\n    test 489 HeightIDWthomas.wrap: False\n    test 490 HeightIDWthomas.beta: 2\n    test 491 HeightIDWthomas.adjust: None\n    test 492 HeightIDWthomas.beta: 2\n    test 493 HeightIDWthomas.kmin: 2\n    test 494 HeightIDWthomas.wrap: False\n\n    test 495 HeightIDWvincentys(wrap=True): 6.108538037\n    test 496 HeightIDWvincentys(float): <class 'float'>\n    test 497 HeightIDWvincentys(latlon): True\n    test 498 HeightIDWvincentys_(tuple): True\n    test 499 HeightIDWvincentys(wrap=True): 5.0\n    test 500 HeightIDWvincentys(float): <class 'float'>\n    test 501 HeightIDWvincentys(latlon): True\n    test 502 HeightIDWvincentys(wrap=True): (6.108538037, 5.0,)\n    test 503 HeightIDWvincentys(tuple): <class 'tuple'>\n    test 504 HeightIDWvincentys(tuple-float): <class 'float'>\n    test 505 HeightIDWvincentys(tuple-float): <class 'float'>\n    test 506 HeightIDWvincentys(wrap=True): [6.108538037, 5.0]\n    test 507 HeightIDWvincentys(list: <class 'list'>\n    test 508 HeightIDWvincentys(list-float): <class 'float'>\n    test 509 HeightIDWvincentys(list-float): <class 'float'>\n    test 510 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWvincentys'>, True)\n    test 511 HeightIDWvincentys.copy(): (<class 'pygeodesy.heights.HeightIDWvincentys'>, True)\n    test 512 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 513 HeightIDWvincentys.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 514 HeightIDWvincentys.kmin: 2\n    test 515 HeightIDWvincentys.wrap: True\n    test 516 HeightIDWvincentys.beta: 2\n    test 517 HeightIDWvincentys.adjust: None\n    test 518 HeightIDWvincentys.beta: 2\n    test 519 HeightIDWvincentys.kmin: 2\n    test 520 HeightIDWvincentys.wrap: True\n\n    test 521 HeightIDWvincentys(wrap=False): 6.108538037\n    test 522 HeightIDWvincentys(float): <class 'float'>\n    test 523 HeightIDWvincentys(latlon): True\n    test 524 HeightIDWvincentys_(tuple): True\n    test 525 HeightIDWvincentys(wrap=False): 5.0\n    test 526 HeightIDWvincentys(float): <class 'float'>\n    test 527 HeightIDWvincentys(latlon): True\n    test 528 HeightIDWvincentys(wrap=False): (6.108538037, 5.0,)\n    test 529 HeightIDWvincentys(tuple): <class 'tuple'>\n    test 530 HeightIDWvincentys(tuple-float): <class 'float'>\n    test 531 HeightIDWvincentys(tuple-float): <class 'float'>\n    test 532 HeightIDWvincentys(wrap=False): [6.108538037, 5.0]\n    test 533 HeightIDWvincentys(list: <class 'list'>\n    test 534 HeightIDWvincentys(list-float): <class 'float'>\n    test 535 HeightIDWvincentys(list-float): <class 'float'>\n    test 536 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWvincentys'>, True)\n    test 537 HeightIDWvincentys.copy(): (<class 'pygeodesy.heights.HeightIDWvincentys'>, True)\n    test 538 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 539 HeightIDWvincentys.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 540 HeightIDWvincentys.kmin: 2\n    test 541 HeightIDWvincentys.wrap: False\n    test 542 HeightIDWvincentys.beta: 2\n    test 543 HeightIDWvincentys.adjust: None\n    test 544 HeightIDWvincentys.beta: 2\n    test 545 HeightIDWvincentys.kmin: 2\n    test 546 HeightIDWvincentys.wrap: False\n    test 547 intersection: 02.64932°N, 002.550079°E, +2.50m\n\n\n    test 548 HeightIDWcosineLaw(wrap=True): 2.592742938\n    test 549 HeightIDWcosineLaw(float): <class 'float'>\n    test 550 HeightIDWcosineLaw(latlon): True\n    test 551 HeightIDWcosineLaw_(tuple): True\n    test 552 HeightIDWcosineLaw(wrap=True): 3.0\n    test 553 HeightIDWcosineLaw(float): <class 'float'>\n    test 554 HeightIDWcosineLaw(latlon): True\n    test 555 HeightIDWcosineLaw(wrap=True): (2.592742938, 3.0,)\n    test 556 HeightIDWcosineLaw(tuple): <class 'tuple'>\n    test 557 HeightIDWcosineLaw(tuple-float): <class 'float'>\n    test 558 HeightIDWcosineLaw(tuple-float): <class 'float'>\n    test 559 HeightIDWcosineLaw(wrap=True): [2.592742938, 3.0]\n    test 560 HeightIDWcosineLaw(list: <class 'list'>\n    test 561 HeightIDWcosineLaw(list-float): <class 'float'>\n    test 562 HeightIDWcosineLaw(list-float): <class 'float'>\n    test 563 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWcosineLaw'>, True)\n    test 564 HeightIDWcosineLaw.copy(): (<class 'pygeodesy.heights.HeightIDWcosineLaw'>, True)\n    test 565 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 566 HeightIDWcosineLaw.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 567 HeightIDWcosineLaw.kmin: 2\n    test 568 HeightIDWcosineLaw.wrap: True\n    test 569 HeightIDWcosineLaw.beta: 2\n    test 570 HeightIDWcosineLaw.adjust: None\n    test 571 HeightIDWcosineLaw.beta: 2\n    test 572 HeightIDWcosineLaw.kmin: 2\n    test 573 HeightIDWcosineLaw.wrap: True\n\n    test 574 HeightIDWcosineLaw(wrap=False): 2.592742938\n    test 575 HeightIDWcosineLaw(float): <class 'float'>\n    test 576 HeightIDWcosineLaw(latlon): True\n    test 577 HeightIDWcosineLaw_(tuple): True\n    test 578 HeightIDWcosineLaw(wrap=False): 3.0\n    test 579 HeightIDWcosineLaw(float): <class 'float'>\n    test 580 HeightIDWcosineLaw(latlon): True\n    test 581 HeightIDWcosineLaw(wrap=False): (2.592742938, 3.0,)\n    test 582 HeightIDWcosineLaw(tuple): <class 'tuple'>\n    test 583 HeightIDWcosineLaw(tuple-float): <class 'float'>\n    test 584 HeightIDWcosineLaw(tuple-float): <class 'float'>\n    test 585 HeightIDWcosineLaw(wrap=False): [2.592742938, 3.0]\n    test 586 HeightIDWcosineLaw(list: <class 'list'>\n    test 587 HeightIDWcosineLaw(list-float): <class 'float'>\n    test 588 HeightIDWcosineLaw(list-float): <class 'float'>\n    test 589 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWcosineLaw'>, True)\n    test 590 HeightIDWcosineLaw.copy(): (<class 'pygeodesy.heights.HeightIDWcosineLaw'>, True)\n    test 591 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 592 HeightIDWcosineLaw.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 593 HeightIDWcosineLaw.kmin: 2\n    test 594 HeightIDWcosineLaw.wrap: False\n    test 595 HeightIDWcosineLaw.beta: 2\n    test 596 HeightIDWcosineLaw.adjust: None\n    test 597 HeightIDWcosineLaw.beta: 2\n    test 598 HeightIDWcosineLaw.kmin: 2\n    test 599 HeightIDWcosineLaw.wrap: False\n\n    test 600 HeightIDWcosineLaw(corr=1, wrap=False): 2.592742781\n    test 601 HeightIDWcosineLaw(float): <class 'float'>\n    test 602 HeightIDWcosineLaw(latlon): True\n    test 603 HeightIDWcosineLaw_(tuple): True\n    test 604 HeightIDWcosineLaw(corr=1, wrap=False): 3.0\n    test 605 HeightIDWcosineLaw(float): <class 'float'>\n    test 606 HeightIDWcosineLaw(latlon): True\n    test 607 HeightIDWcosineLaw(corr=1, wrap=False): (2.592742781, 3.0,)\n    test 608 HeightIDWcosineLaw(tuple): <class 'tuple'>\n    test 609 HeightIDWcosineLaw(tuple-float): <class 'float'>\n    test 610 HeightIDWcosineLaw(tuple-float): <class 'float'>\n    test 611 HeightIDWcosineLaw(corr=1, wrap=False): [2.592742781, 3.0]\n    test 612 HeightIDWcosineLaw(list: <class 'list'>\n    test 613 HeightIDWcosineLaw(list-float): <class 'float'>\n    test 614 HeightIDWcosineLaw(list-float): <class 'float'>\n    test 615 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWcosineLaw'>, True)\n    test 616 HeightIDWcosineLaw.copy(): (<class 'pygeodesy.heights.HeightIDWcosineLaw'>, True)\n    test 617 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 618 HeightIDWcosineLaw.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 619 HeightIDWcosineLaw.kmin: 2\n    test 620 HeightIDWcosineLaw.wrap: False\n    test 621 HeightIDWcosineLaw.beta: 2\n    test 622 HeightIDWcosineLaw.adjust: None\n    test 623 HeightIDWcosineLaw.beta: 2\n    test 624 HeightIDWcosineLaw.kmin: 2\n    test 625 HeightIDWcosineLaw.wrap: False\n\n    test 626 HeightIDWcosineLaw(corr=2, wrap=False): 2.592742781\n    test 627 HeightIDWcosineLaw(float): <class 'float'>\n    test 628 HeightIDWcosineLaw(latlon): True\n    test 629 HeightIDWcosineLaw_(tuple): True\n    test 630 HeightIDWcosineLaw(corr=2, wrap=False): 3.0\n    test 631 HeightIDWcosineLaw(float): <class 'float'>\n    test 632 HeightIDWcosineLaw(latlon): True\n    test 633 HeightIDWcosineLaw(corr=2, wrap=False): (2.592742781, 3.0,)\n    test 634 HeightIDWcosineLaw(tuple): <class 'tuple'>\n    test 635 HeightIDWcosineLaw(tuple-float): <class 'float'>\n    test 636 HeightIDWcosineLaw(tuple-float): <class 'float'>\n    test 637 HeightIDWcosineLaw(corr=2, wrap=False): [2.592742781, 3.0]\n    test 638 HeightIDWcosineLaw(list: <class 'list'>\n    test 639 HeightIDWcosineLaw(list-float): <class 'float'>\n    test 640 HeightIDWcosineLaw(list-float): <class 'float'>\n    test 641 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWcosineLaw'>, True)\n    test 642 HeightIDWcosineLaw.copy(): (<class 'pygeodesy.heights.HeightIDWcosineLaw'>, True)\n    test 643 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 644 HeightIDWcosineLaw.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 645 HeightIDWcosineLaw.kmin: 2\n    test 646 HeightIDWcosineLaw.wrap: False\n    test 647 HeightIDWcosineLaw.beta: 2\n    test 648 HeightIDWcosineLaw.adjust: None\n    test 649 HeightIDWcosineLaw.beta: 2\n    test 650 HeightIDWcosineLaw.kmin: 2\n    test 651 HeightIDWcosineLaw.wrap: False\n\n    test 652 HeightIDWequirectangular(adjust=True, wrap=True): 2.689429914\n    test 653 HeightIDWequirectangular(float): <class 'float'>\n    test 654 HeightIDWequirectangular(latlon): True\n    test 655 HeightIDWequirectangular_(tuple): True\n    test 656 HeightIDWequirectangular(adjust=True, wrap=True): 3.0\n    test 657 HeightIDWequirectangular(float): <class 'float'>\n    test 658 HeightIDWequirectangular(latlon): True\n    test 659 HeightIDWequirectangular(adjust=True, wrap=True): (2.689429914, 3.0,)\n    test 660 HeightIDWequirectangular(tuple): <class 'tuple'>\n    test 661 HeightIDWequirectangular(tuple-float): <class 'float'>\n    test 662 HeightIDWequirectangular(tuple-float): <class 'float'>\n    test 663 HeightIDWequirectangular(adjust=True, wrap=True): [2.689429914, 3.0]\n    test 664 HeightIDWequirectangular(list: <class 'list'>\n    test 665 HeightIDWequirectangular(list-float): <class 'float'>\n    test 666 HeightIDWequirectangular(list-float): <class 'float'>\n    test 667 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWequirectangular'>, True)\n    test 668 HeightIDWequirectangular.copy(): (<class 'pygeodesy.heights.HeightIDWequirectangular'>, True)\n    test 669 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 670 HeightIDWequirectangular.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 671 HeightIDWequirectangular.kmin: 2\n    test 672 HeightIDWequirectangular.wrap: True\n    test 673 HeightIDWequirectangular.beta: 2\n    test 674 HeightIDWequirectangular.adjust: True\n    test 675 HeightIDWequirectangular.beta: 2\n    test 676 HeightIDWequirectangular.kmin: 2\n    test 677 HeightIDWequirectangular.wrap: True\n\n    test 678 HeightIDWequirectangular(adjust=False, wrap=True): 2.689413401\n    test 679 HeightIDWequirectangular(float): <class 'float'>\n    test 680 HeightIDWequirectangular(latlon): True\n    test 681 HeightIDWequirectangular_(tuple): True\n    test 682 HeightIDWequirectangular(adjust=False, wrap=True): 3.0\n    test 683 HeightIDWequirectangular(float): <class 'float'>\n    test 684 HeightIDWequirectangular(latlon): True\n    test 685 HeightIDWequirectangular(adjust=False, wrap=True): (2.689413401, 3.0,)\n    test 686 HeightIDWequirectangular(tuple): <class 'tuple'>\n    test 687 HeightIDWequirectangular(tuple-float): <class 'float'>\n    test 688 HeightIDWequirectangular(tuple-float): <class 'float'>\n    test 689 HeightIDWequirectangular(adjust=False, wrap=True): [2.689413401, 3.0]\n    test 690 HeightIDWequirectangular(list: <class 'list'>\n    test 691 HeightIDWequirectangular(list-float): <class 'float'>\n    test 692 HeightIDWequirectangular(list-float): <class 'float'>\n    test 693 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWequirectangular'>, True)\n    test 694 HeightIDWequirectangular.copy(): (<class 'pygeodesy.heights.HeightIDWequirectangular'>, True)\n    test 695 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 696 HeightIDWequirectangular.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 697 HeightIDWequirectangular.kmin: 2\n    test 698 HeightIDWequirectangular.wrap: True\n    test 699 HeightIDWequirectangular.beta: 2\n    test 700 HeightIDWequirectangular.adjust: False\n    test 701 HeightIDWequirectangular.beta: 2\n    test 702 HeightIDWequirectangular.kmin: 2\n    test 703 HeightIDWequirectangular.wrap: True\n\n    test 704 HeightIDWeuclidean(adjust=False): 2.592735541\n    test 705 HeightIDWeuclidean(float): <class 'float'>\n    test 706 HeightIDWeuclidean(latlon): True\n    test 707 HeightIDWeuclidean_(tuple): True\n    test 708 HeightIDWeuclidean(adjust=False): 3.0\n    test 709 HeightIDWeuclidean(float): <class 'float'>\n    test 710 HeightIDWeuclidean(latlon): True\n    test 711 HeightIDWeuclidean(adjust=False): (2.592735541, 3.0,)\n    test 712 HeightIDWeuclidean(tuple): <class 'tuple'>\n    test 713 HeightIDWeuclidean(tuple-float): <class 'float'>\n    test 714 HeightIDWeuclidean(tuple-float): <class 'float'>\n    test 715 HeightIDWeuclidean(adjust=False): [2.592735541, 3.0]\n    test 716 HeightIDWeuclidean(list: <class 'list'>\n    test 717 HeightIDWeuclidean(list-float): <class 'float'>\n    test 718 HeightIDWeuclidean(list-float): <class 'float'>\n    test 719 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWeuclidean'>, True)\n    test 720 HeightIDWeuclidean.copy(): (<class 'pygeodesy.heights.HeightIDWeuclidean'>, True)\n    test 721 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 722 HeightIDWeuclidean.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 723 HeightIDWeuclidean.kmin: 2\n    test 724 HeightIDWeuclidean.wrap: None\n    test 725 HeightIDWeuclidean.beta: 2\n    test 726 HeightIDWeuclidean.adjust: False\n    test 727 HeightIDWeuclidean.beta: 2\n    test 728 HeightIDWeuclidean.kmin: 2\n    test 729 HeightIDWeuclidean.wrap: None\n\n    test 730 HeightIDWexact(): 2.592742938\n    test 731 HeightIDWexact(float): <class 'float'>\n    test 732 HeightIDWexact(latlon): True\n    test 733 HeightIDWexact_(tuple): True\n    test 734 HeightIDWexact(): 3.0\n    test 735 HeightIDWexact(float): <class 'float'>\n    test 736 HeightIDWexact(latlon): True\n    test 737 HeightIDWexact(): (2.592742938, 3.0,)\n    test 738 HeightIDWexact(tuple): <class 'tuple'>\n    test 739 HeightIDWexact(tuple-float): <class 'float'>\n    test 740 HeightIDWexact(tuple-float): <class 'float'>\n    test 741 HeightIDWexact(): [2.592742938, 3.0]\n    test 742 HeightIDWexact(list: <class 'list'>\n    test 743 HeightIDWexact(list-float): <class 'float'>\n    test 744 HeightIDWexact(list-float): <class 'float'>\n    test 745 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWexact'>, True)\n    test 746 HeightIDWexact.copy(): (<class 'pygeodesy.heights.HeightIDWexact'>, True)\n    test 747 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 748 HeightIDWexact.datum: name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84\n    test 749 HeightIDWexact.kmin: 2\n    test 750 HeightIDWexact.wrap: None\n    test 751 HeightIDWexact.beta: 2\n    test 752 HeightIDWexact.adjust: None\n    test 753 HeightIDWexact.beta: 2\n    test 754 HeightIDWexact.kmin: 2\n    test 755 HeightIDWexact.wrap: None\n\n    test 756 HeightIDWflatLocal(): 2.592743288\n    test 757 HeightIDWflatLocal(float): <class 'float'>\n    test 758 HeightIDWflatLocal(latlon): True\n    test 759 HeightIDWflatLocal_(tuple): True\n    test 760 HeightIDWflatLocal(): 3.0\n    test 761 HeightIDWflatLocal(float): <class 'float'>\n    test 762 HeightIDWflatLocal(latlon): True\n    test 763 HeightIDWflatLocal(): (2.592743288, 3.0,)\n    test 764 HeightIDWflatLocal(tuple): <class 'tuple'>\n    test 765 HeightIDWflatLocal(tuple-float): <class 'float'>\n    test 766 HeightIDWflatLocal(tuple-float): <class 'float'>\n    test 767 HeightIDWflatLocal(): [2.592743288, 3.0]\n    test 768 HeightIDWflatLocal(list: <class 'list'>\n    test 769 HeightIDWflatLocal(list-float): <class 'float'>\n    test 770 HeightIDWflatLocal(list-float): <class 'float'>\n    test 771 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWflatLocal'>, True)\n    test 772 HeightIDWflatLocal.copy(): (<class 'pygeodesy.heights.HeightIDWflatLocal'>, True)\n    test 773 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 774 HeightIDWflatLocal.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 775 HeightIDWflatLocal.kmin: 2\n    test 776 HeightIDWflatLocal.wrap: None\n    test 777 HeightIDWflatLocal.beta: 2\n    test 778 HeightIDWflatLocal.adjust: None\n    test 779 HeightIDWflatLocal.beta: 2\n    test 780 HeightIDWflatLocal.kmin: 2\n    test 781 HeightIDWflatLocal.wrap: None\n\n    test 782 HeightIDWflatPolar(): 2.592973059\n    test 783 HeightIDWflatPolar(float): <class 'float'>\n    test 784 HeightIDWflatPolar(latlon): True\n    test 785 HeightIDWflatPolar_(tuple): True\n    test 786 HeightIDWflatPolar(): 3.0\n    test 787 HeightIDWflatPolar(float): <class 'float'>\n    test 788 HeightIDWflatPolar(latlon): True\n    test 789 HeightIDWflatPolar(): (2.592973059, 3.0,)\n    test 790 HeightIDWflatPolar(tuple): <class 'tuple'>\n    test 791 HeightIDWflatPolar(tuple-float): <class 'float'>\n    test 792 HeightIDWflatPolar(tuple-float): <class 'float'>\n    test 793 HeightIDWflatPolar(): [2.592973059, 3.0]\n    test 794 HeightIDWflatPolar(list: <class 'list'>\n    test 795 HeightIDWflatPolar(list-float): <class 'float'>\n    test 796 HeightIDWflatPolar(list-float): <class 'float'>\n    test 797 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWflatPolar'>, True)\n    test 798 HeightIDWflatPolar.copy(): (<class 'pygeodesy.heights.HeightIDWflatPolar'>, True)\n    test 799 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 800 HeightIDWflatPolar.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 801 HeightIDWflatPolar.kmin: 2\n    test 802 HeightIDWflatPolar.wrap: None\n    test 803 HeightIDWflatPolar.beta: 2\n    test 804 HeightIDWflatPolar.adjust: None\n    test 805 HeightIDWflatPolar.beta: 2\n    test 806 HeightIDWflatPolar.kmin: 2\n    test 807 HeightIDWflatPolar.wrap: None\n\n    test 808 HeightIDWhaversine(): 2.592742938\n    test 809 HeightIDWhaversine(float): <class 'float'>\n    test 810 HeightIDWhaversine(latlon): True\n    test 811 HeightIDWhaversine_(tuple): True\n    test 812 HeightIDWhaversine(): 3.0\n    test 813 HeightIDWhaversine(float): <class 'float'>\n    test 814 HeightIDWhaversine(latlon): True\n    test 815 HeightIDWhaversine(): (2.592742938, 3.0,)\n    test 816 HeightIDWhaversine(tuple): <class 'tuple'>\n    test 817 HeightIDWhaversine(tuple-float): <class 'float'>\n    test 818 HeightIDWhaversine(tuple-float): <class 'float'>\n    test 819 HeightIDWhaversine(): [2.592742938, 3.0]\n    test 820 HeightIDWhaversine(list: <class 'list'>\n    test 821 HeightIDWhaversine(list-float): <class 'float'>\n    test 822 HeightIDWhaversine(list-float): <class 'float'>\n    test 823 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWhaversine'>, True)\n    test 824 HeightIDWhaversine.copy(): (<class 'pygeodesy.heights.HeightIDWhaversine'>, True)\n    test 825 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 826 HeightIDWhaversine.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 827 HeightIDWhaversine.kmin: 2\n    test 828 HeightIDWhaversine.wrap: None\n    test 829 HeightIDWhaversine.beta: 2\n    test 830 HeightIDWhaversine.adjust: None\n    test 831 HeightIDWhaversine.beta: 2\n    test 832 HeightIDWhaversine.kmin: 2\n    test 833 HeightIDWhaversine.wrap: None\n\n    test 834 HeightIDWhubeny(): 2.592743288\n    test 835 HeightIDWhubeny(float): <class 'float'>\n    test 836 HeightIDWhubeny(latlon): True\n    test 837 HeightIDWhubeny_(tuple): True\n    test 838 HeightIDWhubeny(): 3.0\n    test 839 HeightIDWhubeny(float): <class 'float'>\n    test 840 HeightIDWhubeny(latlon): True\n    test 841 HeightIDWhubeny(): (2.592743288, 3.0,)\n    test 842 HeightIDWhubeny(tuple): <class 'tuple'>\n    test 843 HeightIDWhubeny(tuple-float): <class 'float'>\n    test 844 HeightIDWhubeny(tuple-float): <class 'float'>\n    test 845 HeightIDWhubeny(): [2.592743288, 3.0]\n    test 846 HeightIDWhubeny(list: <class 'list'>\n    test 847 HeightIDWhubeny(list-float): <class 'float'>\n    test 848 HeightIDWhubeny(list-float): <class 'float'>\n    test 849 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWhubeny'>, True)\n    test 850 HeightIDWhubeny.copy(): (<class 'pygeodesy.heights.HeightIDWhubeny'>, True)\n    test 851 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 852 HeightIDWhubeny.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 853 HeightIDWhubeny.kmin: 2\n    test 854 HeightIDWhubeny.wrap: None\n    test 855 HeightIDWhubeny.beta: 2\n    test 856 HeightIDWhubeny.adjust: None\n    test 857 HeightIDWhubeny.beta: 2\n    test 858 HeightIDWhubeny.kmin: 2\n    test 859 HeightIDWhubeny.wrap: None\n\n    test 860 HeightIDWkarney(datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), wrap=True): 2.592742915\n    test 861 HeightIDWkarney(float): <class 'float'>\n    test 862 HeightIDWkarney(latlon): True\n    test 863 HeightIDWkarney_(tuple): True\n    test 864 HeightIDWkarney(datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), wrap=True): 3.0\n    test 865 HeightIDWkarney(float): <class 'float'>\n    test 866 HeightIDWkarney(latlon): True\n    test 867 HeightIDWkarney(datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), wrap=True): (2.592742915, 3.0,)\n    test 868 HeightIDWkarney(tuple): <class 'tuple'>\n    test 869 HeightIDWkarney(tuple-float): <class 'float'>\n    test 870 HeightIDWkarney(tuple-float): <class 'float'>\n    test 871 HeightIDWkarney(datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), wrap=True): [2.592742915, 3.0]\n    test 872 HeightIDWkarney(list: <class 'list'>\n    test 873 HeightIDWkarney(list-float): <class 'float'>\n    test 874 HeightIDWkarney(list-float): <class 'float'>\n    test 875 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWkarney'>, True)\n    test 876 HeightIDWkarney.copy(): (<class 'pygeodesy.heights.HeightIDWkarney'>, True)\n    test 877 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 878 HeightIDWkarney.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 879 HeightIDWkarney.kmin: 2\n    test 880 HeightIDWkarney.wrap: True\n    test 881 HeightIDWkarney.beta: 2\n    test 882 HeightIDWkarney.adjust: None\n    test 883 HeightIDWkarney.beta: 2\n    test 884 HeightIDWkarney.kmin: 2\n    test 885 HeightIDWkarney.wrap: True\n\n    test 886 HeightIDWkarney(datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), wrap=False): 2.592742915\n    test 887 HeightIDWkarney(float): <class 'float'>\n    test 888 HeightIDWkarney(latlon): True\n    test 889 HeightIDWkarney_(tuple): True\n    test 890 HeightIDWkarney(datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), wrap=False): 3.0\n    test 891 HeightIDWkarney(float): <class 'float'>\n    test 892 HeightIDWkarney(latlon): True\n    test 893 HeightIDWkarney(datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), wrap=False): (2.592742915, 3.0,)\n    test 894 HeightIDWkarney(tuple): <class 'tuple'>\n    test 895 HeightIDWkarney(tuple-float): <class 'float'>\n    test 896 HeightIDWkarney(tuple-float): <class 'float'>\n    test 897 HeightIDWkarney(datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), wrap=False): [2.592742915, 3.0]\n    test 898 HeightIDWkarney(list: <class 'list'>\n    test 899 HeightIDWkarney(list-float): <class 'float'>\n    test 900 HeightIDWkarney(list-float): <class 'float'>\n    test 901 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWkarney'>, True)\n    test 902 HeightIDWkarney.copy(): (<class 'pygeodesy.heights.HeightIDWkarney'>, True)\n    test 903 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 904 HeightIDWkarney.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 905 HeightIDWkarney.kmin: 2\n    test 906 HeightIDWkarney.wrap: False\n    test 907 HeightIDWkarney.beta: 2\n    test 908 HeightIDWkarney.adjust: None\n    test 909 HeightIDWkarney.beta: 2\n    test 910 HeightIDWkarney.kmin: 2\n    test 911 HeightIDWkarney.wrap: False\n\n    test 912 HeightIDWkarney(datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84), wrap=True): 2.592742938\n    test 913 HeightIDWkarney(float): <class 'float'>\n    test 914 HeightIDWkarney(latlon): True\n    test 915 HeightIDWkarney_(tuple): True\n    test 916 HeightIDWkarney(datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84), wrap=True): 3.0\n    test 917 HeightIDWkarney(float): <class 'float'>\n    test 918 HeightIDWkarney(latlon): True\n    test 919 HeightIDWkarney(datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84), wrap=True): (2.592742938, 3.0,)\n    test 920 HeightIDWkarney(tuple): <class 'tuple'>\n    test 921 HeightIDWkarney(tuple-float): <class 'float'>\n    test 922 HeightIDWkarney(tuple-float): <class 'float'>\n    test 923 HeightIDWkarney(datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84), wrap=True): [2.592742938, 3.0]\n    test 924 HeightIDWkarney(list: <class 'list'>\n    test 925 HeightIDWkarney(list-float): <class 'float'>\n    test 926 HeightIDWkarney(list-float): <class 'float'>\n    test 927 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWkarney'>, True)\n    test 928 HeightIDWkarney.copy(): (<class 'pygeodesy.heights.HeightIDWkarney'>, True)\n    test 929 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 930 HeightIDWkarney.datum: name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84\n    test 931 HeightIDWkarney.kmin: 2\n    test 932 HeightIDWkarney.wrap: True\n    test 933 HeightIDWkarney.beta: 2\n    test 934 HeightIDWkarney.adjust: None\n    test 935 HeightIDWkarney.beta: 2\n    test 936 HeightIDWkarney.kmin: 2\n    test 937 HeightIDWkarney.wrap: True\n\n    test 938 HeightIDWkarney(datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84), wrap=False): 2.592742938\n    test 939 HeightIDWkarney(float): <class 'float'>\n    test 940 HeightIDWkarney(latlon): True\n    test 941 HeightIDWkarney_(tuple): True\n    test 942 HeightIDWkarney(datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84), wrap=False): 3.0\n    test 943 HeightIDWkarney(float): <class 'float'>\n    test 944 HeightIDWkarney(latlon): True\n    test 945 HeightIDWkarney(datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84), wrap=False): (2.592742938, 3.0,)\n    test 946 HeightIDWkarney(tuple): <class 'tuple'>\n    test 947 HeightIDWkarney(tuple-float): <class 'float'>\n    test 948 HeightIDWkarney(tuple-float): <class 'float'>\n    test 949 HeightIDWkarney(datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84), wrap=False): [2.592742938, 3.0]\n    test 950 HeightIDWkarney(list: <class 'list'>\n    test 951 HeightIDWkarney(list-float): <class 'float'>\n    test 952 HeightIDWkarney(list-float): <class 'float'>\n    test 953 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWkarney'>, True)\n    test 954 HeightIDWkarney.copy(): (<class 'pygeodesy.heights.HeightIDWkarney'>, True)\n    test 955 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 956 HeightIDWkarney.datum: name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84\n    test 957 HeightIDWkarney.kmin: 2\n    test 958 HeightIDWkarney.wrap: False\n    test 959 HeightIDWkarney.beta: 2\n    test 960 HeightIDWkarney.adjust: None\n    test 961 HeightIDWkarney.beta: 2\n    test 962 HeightIDWkarney.kmin: 2\n    test 963 HeightIDWkarney.wrap: False\n\n    test 964 HeightIDWthomas(wrap=True): 2.592742781\n    test 965 HeightIDWthomas(float): <class 'float'>\n    test 966 HeightIDWthomas(latlon): True\n    test 967 HeightIDWthomas_(tuple): True\n    test 968 HeightIDWthomas(wrap=True): 3.0\n    test 969 HeightIDWthomas(float): <class 'float'>\n    test 970 HeightIDWthomas(latlon): True\n    test 971 HeightIDWthomas(wrap=True): (2.592742781, 3.0,)\n    test 972 HeightIDWthomas(tuple): <class 'tuple'>\n    test 973 HeightIDWthomas(tuple-float): <class 'float'>\n    test 974 HeightIDWthomas(tuple-float): <class 'float'>\n    test 975 HeightIDWthomas(wrap=True): [2.592742781, 3.0]\n    test 976 HeightIDWthomas(list: <class 'list'>\n    test 977 HeightIDWthomas(list-float): <class 'float'>\n    test 978 HeightIDWthomas(list-float): <class 'float'>\n    test 979 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWthomas'>, True)\n    test 980 HeightIDWthomas.copy(): (<class 'pygeodesy.heights.HeightIDWthomas'>, True)\n    test 981 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 982 HeightIDWthomas.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 983 HeightIDWthomas.kmin: 2\n    test 984 HeightIDWthomas.wrap: True\n    test 985 HeightIDWthomas.beta: 2\n    test 986 HeightIDWthomas.adjust: None\n    test 987 HeightIDWthomas.beta: 2\n    test 988 HeightIDWthomas.kmin: 2\n    test 989 HeightIDWthomas.wrap: True\n\n    test 990 HeightIDWthomas(wrap=False): 2.592742781\n    test 991 HeightIDWthomas(float): <class 'float'>\n    test 992 HeightIDWthomas(latlon): True\n    test 993 HeightIDWthomas_(tuple): True\n    test 994 HeightIDWthomas(wrap=False): 3.0\n    test 995 HeightIDWthomas(float): <class 'float'>\n    test 996 HeightIDWthomas(latlon): True\n    test 997 HeightIDWthomas(wrap=False): (2.592742781, 3.0,)\n    test 998 HeightIDWthomas(tuple): <class 'tuple'>\n    test 999 HeightIDWthomas(tuple-float): <class 'float'>\n    test 1000 HeightIDWthomas(tuple-float): <class 'float'>\n    test 1001 HeightIDWthomas(wrap=False): [2.592742781, 3.0]\n    test 1002 HeightIDWthomas(list: <class 'list'>\n    test 1003 HeightIDWthomas(list-float): <class 'float'>\n    test 1004 HeightIDWthomas(list-float): <class 'float'>\n    test 1005 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWthomas'>, True)\n    test 1006 HeightIDWthomas.copy(): (<class 'pygeodesy.heights.HeightIDWthomas'>, True)\n    test 1007 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 1008 HeightIDWthomas.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 1009 HeightIDWthomas.kmin: 2\n    test 1010 HeightIDWthomas.wrap: False\n    test 1011 HeightIDWthomas.beta: 2\n    test 1012 HeightIDWthomas.adjust: None\n    test 1013 HeightIDWthomas.beta: 2\n    test 1014 HeightIDWthomas.kmin: 2\n    test 1015 HeightIDWthomas.wrap: False\n\n    test 1016 HeightIDWvincentys(wrap=True): 2.592742938\n    test 1017 HeightIDWvincentys(float): <class 'float'>\n    test 1018 HeightIDWvincentys(latlon): True\n    test 1019 HeightIDWvincentys_(tuple): True\n    test 1020 HeightIDWvincentys(wrap=True): 3.0\n    test 1021 HeightIDWvincentys(float): <class 'float'>\n    test 1022 HeightIDWvincentys(latlon): True\n    test 1023 HeightIDWvincentys(wrap=True): (2.592742938, 3.0,)\n    test 1024 HeightIDWvincentys(tuple): <class 'tuple'>\n    test 1025 HeightIDWvincentys(tuple-float): <class 'float'>\n    test 1026 HeightIDWvincentys(tuple-float): <class 'float'>\n    test 1027 HeightIDWvincentys(wrap=True): [2.592742938, 3.0]\n    test 1028 HeightIDWvincentys(list: <class 'list'>\n    test 1029 HeightIDWvincentys(list-float): <class 'float'>\n    test 1030 HeightIDWvincentys(list-float): <class 'float'>\n    test 1031 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWvincentys'>, True)\n    test 1032 HeightIDWvincentys.copy(): (<class 'pygeodesy.heights.HeightIDWvincentys'>, True)\n    test 1033 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 1034 HeightIDWvincentys.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 1035 HeightIDWvincentys.kmin: 2\n    test 1036 HeightIDWvincentys.wrap: True\n    test 1037 HeightIDWvincentys.beta: 2\n    test 1038 HeightIDWvincentys.adjust: None\n    test 1039 HeightIDWvincentys.beta: 2\n    test 1040 HeightIDWvincentys.kmin: 2\n    test 1041 HeightIDWvincentys.wrap: True\n\n    test 1042 HeightIDWvincentys(wrap=False): 2.592742938\n    test 1043 HeightIDWvincentys(float): <class 'float'>\n    test 1044 HeightIDWvincentys(latlon): True\n    test 1045 HeightIDWvincentys_(tuple): True\n    test 1046 HeightIDWvincentys(wrap=False): 3.0\n    test 1047 HeightIDWvincentys(float): <class 'float'>\n    test 1048 HeightIDWvincentys(latlon): True\n    test 1049 HeightIDWvincentys(wrap=False): (2.592742938, 3.0,)\n    test 1050 HeightIDWvincentys(tuple): <class 'tuple'>\n    test 1051 HeightIDWvincentys(tuple-float): <class 'float'>\n    test 1052 HeightIDWvincentys(tuple-float): <class 'float'>\n    test 1053 HeightIDWvincentys(wrap=False): [2.592742938, 3.0]\n    test 1054 HeightIDWvincentys(list: <class 'list'>\n    test 1055 HeightIDWvincentys(list-float): <class 'float'>\n    test 1056 HeightIDWvincentys(list-float): <class 'float'>\n    test 1057 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWvincentys'>, True)\n    test 1058 HeightIDWvincentys.copy(): (<class 'pygeodesy.heights.HeightIDWvincentys'>, True)\n    test 1059 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 1060 HeightIDWvincentys.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 1061 HeightIDWvincentys.kmin: 2\n    test 1062 HeightIDWvincentys.wrap: False\n    test 1063 HeightIDWvincentys.beta: 2\n    test 1064 HeightIDWvincentys.adjust: None\n    test 1065 HeightIDWvincentys.beta: 2\n    test 1066 HeightIDWvincentys.kmin: 2\n    test 1067 HeightIDWvincentys.wrap: False\n    test 1068 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightLinear'>, True)\n    test 1069 HeightLinear.copy(): (<class 'pygeodesy.heights.HeightLinear'>, True)\n    test 1070 HeightLinear: 2.536626441\n    test 1071 HeightLinear(float): <class 'float'>\n    test 1072 HeightLinear(latlon): True\n    test 1073 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightCubic'>, True)\n    test 1074 HeightCubic.copy(): (<class 'pygeodesy.heights.HeightCubic'>, True)\n    test 1075 HeightError: llis[0] (9.0): 'float' object has no attribute 'lat'\n    test 1076 HeightCubic.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 1077 HeightCubic.kmin: 16\n    test 1078 HeightCubic.wrap: None\n    test 1079 HeightCubic: 3.000000000\n    test 1080 HeightCubic(float): <class 'float'>\n    test 1081 HeightCubic(latlon): True\n    test 1082 HeightCubic_(tuple): True\n    test 1083 HeightCubic(tuple): <class 'tuple'>\n    test 1084 HeightCubic(tuple-float): <class 'float'>\n    test 1085 HeightCubic(tuple-float): <class 'float'>\n    test 1086 HeightCubic(list): <class 'list'>\n    test 1087 HeightCubic(list-float): <class 'float'>\n    test 1088 HeightCubic(list-float): <class 'float'>\n    test 1089 HeightCubic(latlon): True\n\n    test 1090 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWcosineLaw'>, True)\n    test 1091 HeightIDWcosineLaw.copy(): (<class 'pygeodesy.heights.HeightIDWcosineLaw'>, True)\n    test 1092 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 1093 HeightIDWcosineLaw.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 1094 HeightIDWcosineLaw.kmin: 2\n    test 1095 HeightIDWcosineLaw.wrap: None\n    test 1096 HeightIDWcosineLaw: 2.402157442\n    test 1097 HeightIDWcosineLaw(float): <class 'float'>\n    test 1098 HeightIDWcosineLaw(latlon): True\n    test 1099 HeightIDWcosineLaw_(tuple): True\n    test 1100 HeightIDWcosineLaw(tuple): <class 'tuple'>\n    test 1101 HeightIDWcosineLaw(tuple-float): <class 'float'>\n    test 1102 HeightIDWcosineLaw(tuple-float): <class 'float'>\n    test 1103 HeightIDWcosineLaw(list): <class 'list'>\n    test 1104 HeightIDWcosineLaw(list-float): <class 'float'>\n    test 1105 HeightIDWcosineLaw(list-float): <class 'float'>\n    test 1106 HeightIDWcosineLaw(latlon): True\n\n    test 1107 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWcosineLaw'>, True)\n    test 1108 HeightIDWcosineLaw.copy(): (<class 'pygeodesy.heights.HeightIDWcosineLaw'>, True)\n    test 1109 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 1110 HeightIDWcosineLaw.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 1111 HeightIDWcosineLaw.kmin: 2\n    test 1112 HeightIDWcosineLaw.wrap: None\n    test 1113 HeightIDWcosineLaw: 2.401661864\n    test 1114 HeightIDWcosineLaw(float): <class 'float'>\n    test 1115 HeightIDWcosineLaw(latlon): True\n    test 1116 HeightIDWcosineLaw_(tuple): True\n    test 1117 HeightIDWcosineLaw(tuple): <class 'tuple'>\n    test 1118 HeightIDWcosineLaw(tuple-float): <class 'float'>\n    test 1119 HeightIDWcosineLaw(tuple-float): <class 'float'>\n    test 1120 HeightIDWcosineLaw(list): <class 'list'>\n    test 1121 HeightIDWcosineLaw(list-float): <class 'float'>\n    test 1122 HeightIDWcosineLaw(list-float): <class 'float'>\n    test 1123 HeightIDWcosineLaw(latlon): True\n\n    test 1124 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWcosineLaw'>, True)\n    test 1125 HeightIDWcosineLaw.copy(): (<class 'pygeodesy.heights.HeightIDWcosineLaw'>, True)\n    test 1126 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 1127 HeightIDWcosineLaw.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 1128 HeightIDWcosineLaw.kmin: 2\n    test 1129 HeightIDWcosineLaw.wrap: None\n    test 1130 HeightIDWcosineLaw: 2.401661859\n    test 1131 HeightIDWcosineLaw(float): <class 'float'>\n    test 1132 HeightIDWcosineLaw(latlon): True\n    test 1133 HeightIDWcosineLaw_(tuple): True\n    test 1134 HeightIDWcosineLaw(tuple): <class 'tuple'>\n    test 1135 HeightIDWcosineLaw(tuple-float): <class 'float'>\n    test 1136 HeightIDWcosineLaw(tuple-float): <class 'float'>\n    test 1137 HeightIDWcosineLaw(list): <class 'list'>\n    test 1138 HeightIDWcosineLaw(list-float): <class 'float'>\n    test 1139 HeightIDWcosineLaw(list-float): <class 'float'>\n    test 1140 HeightIDWcosineLaw(latlon): True\n\n    test 1141 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWequirectangular'>, True)\n    test 1142 HeightIDWequirectangular.copy(): (<class 'pygeodesy.heights.HeightIDWequirectangular'>, True)\n    test 1143 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 1144 HeightIDWequirectangular.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 1145 HeightIDWequirectangular.kmin: 2\n    test 1146 HeightIDWequirectangular.wrap: None\n    test 1147 HeightIDWequirectangular: 2.469718302\n    test 1148 HeightIDWequirectangular(float): <class 'float'>\n    test 1149 HeightIDWequirectangular(latlon): True\n    test 1150 HeightIDWequirectangular_(tuple): True\n    test 1151 HeightIDWequirectangular(tuple): <class 'tuple'>\n    test 1152 HeightIDWequirectangular(tuple-float): <class 'float'>\n    test 1153 HeightIDWequirectangular(tuple-float): <class 'float'>\n    test 1154 HeightIDWequirectangular(list): <class 'list'>\n    test 1155 HeightIDWequirectangular(list-float): <class 'float'>\n    test 1156 HeightIDWequirectangular(list-float): <class 'float'>\n    test 1157 HeightIDWequirectangular(latlon): True\n\n    test 1158 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWeuclidean'>, True)\n    test 1159 HeightIDWeuclidean.copy(): (<class 'pygeodesy.heights.HeightIDWeuclidean'>, True)\n    test 1160 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 1161 HeightIDWeuclidean.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 1162 HeightIDWeuclidean.kmin: 2\n    test 1163 HeightIDWeuclidean.wrap: None\n    test 1164 HeightIDWeuclidean: 2.409288552\n    test 1165 HeightIDWeuclidean(float): <class 'float'>\n    test 1166 HeightIDWeuclidean(latlon): True\n    test 1167 HeightIDWeuclidean_(tuple): True\n    test 1168 HeightIDWeuclidean(tuple): <class 'tuple'>\n    test 1169 HeightIDWeuclidean(tuple-float): <class 'float'>\n    test 1170 HeightIDWeuclidean(tuple-float): <class 'float'>\n    test 1171 HeightIDWeuclidean(list): <class 'list'>\n    test 1172 HeightIDWeuclidean(list-float): <class 'float'>\n    test 1173 HeightIDWeuclidean(list-float): <class 'float'>\n    test 1174 HeightIDWeuclidean(latlon): True\n\n    test 1175 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWexact'>, True)\n    test 1176 HeightIDWexact.copy(): (<class 'pygeodesy.heights.HeightIDWexact'>, True)\n    test 1177 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 1178 HeightIDWexact.datum: name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84\n    test 1179 HeightIDWexact.kmin: 2\n    test 1180 HeightIDWexact.wrap: None\n    test 1181 HeightIDWexact: 2.402157442\n    test 1182 HeightIDWexact(float): <class 'float'>\n    test 1183 HeightIDWexact(latlon): True\n    test 1184 HeightIDWexact_(tuple): True\n    test 1185 HeightIDWexact(tuple): <class 'tuple'>\n    test 1186 HeightIDWexact(tuple-float): <class 'float'>\n    test 1187 HeightIDWexact(tuple-float): <class 'float'>\n    test 1188 HeightIDWexact(list): <class 'list'>\n    test 1189 HeightIDWexact(list-float): <class 'float'>\n    test 1190 HeightIDWexact(list-float): <class 'float'>\n    test 1191 HeightIDWexact(latlon): True\n\n    test 1192 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWflatLocal'>, True)\n    test 1193 HeightIDWflatLocal.copy(): (<class 'pygeodesy.heights.HeightIDWflatLocal'>, True)\n    test 1194 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 1195 HeightIDWflatLocal.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 1196 HeightIDWflatLocal.kmin: 2\n    test 1197 HeightIDWflatLocal.wrap: None\n    test 1198 HeightIDWflatLocal: 2.401661562\n    test 1199 HeightIDWflatLocal(float): <class 'float'>\n    test 1200 HeightIDWflatLocal(latlon): True\n    test 1201 HeightIDWflatLocal_(tuple): True\n    test 1202 HeightIDWflatLocal(tuple): <class 'tuple'>\n    test 1203 HeightIDWflatLocal(tuple-float): <class 'float'>\n    test 1204 HeightIDWflatLocal(tuple-float): <class 'float'>\n    test 1205 HeightIDWflatLocal(list): <class 'list'>\n    test 1206 HeightIDWflatLocal(list-float): <class 'float'>\n    test 1207 HeightIDWflatLocal(list-float): <class 'float'>\n    test 1208 HeightIDWflatLocal(latlon): True\n\n    test 1209 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWflatPolar'>, True)\n    test 1210 HeightIDWflatPolar.copy(): (<class 'pygeodesy.heights.HeightIDWflatPolar'>, True)\n    test 1211 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 1212 HeightIDWflatPolar.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 1213 HeightIDWflatPolar.kmin: 2\n    test 1214 HeightIDWflatPolar.wrap: None\n    test 1215 HeightIDWflatPolar: 2.370266641\n    test 1216 HeightIDWflatPolar(float): <class 'float'>\n    test 1217 HeightIDWflatPolar(latlon): True\n    test 1218 HeightIDWflatPolar_(tuple): True\n    test 1219 HeightIDWflatPolar(tuple): <class 'tuple'>\n    test 1220 HeightIDWflatPolar(tuple-float): <class 'float'>\n    test 1221 HeightIDWflatPolar(tuple-float): <class 'float'>\n    test 1222 HeightIDWflatPolar(list): <class 'list'>\n    test 1223 HeightIDWflatPolar(list-float): <class 'float'>\n    test 1224 HeightIDWflatPolar(list-float): <class 'float'>\n    test 1225 HeightIDWflatPolar(latlon): True\n\n    test 1226 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWhaversine'>, True)\n    test 1227 HeightIDWhaversine.copy(): (<class 'pygeodesy.heights.HeightIDWhaversine'>, True)\n    test 1228 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 1229 HeightIDWhaversine.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 1230 HeightIDWhaversine.kmin: 2\n    test 1231 HeightIDWhaversine.wrap: None\n    test 1232 HeightIDWhaversine: 2.402157442\n    test 1233 HeightIDWhaversine(float): <class 'float'>\n    test 1234 HeightIDWhaversine(latlon): True\n    test 1235 HeightIDWhaversine_(tuple): True\n    test 1236 HeightIDWhaversine(tuple): <class 'tuple'>\n    test 1237 HeightIDWhaversine(tuple-float): <class 'float'>\n    test 1238 HeightIDWhaversine(tuple-float): <class 'float'>\n    test 1239 HeightIDWhaversine(list): <class 'list'>\n    test 1240 HeightIDWhaversine(list-float): <class 'float'>\n    test 1241 HeightIDWhaversine(list-float): <class 'float'>\n    test 1242 HeightIDWhaversine(latlon): True\n\n    test 1243 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWhubeny'>, True)\n    test 1244 HeightIDWhubeny.copy(): (<class 'pygeodesy.heights.HeightIDWhubeny'>, True)\n    test 1245 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 1246 HeightIDWhubeny.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 1247 HeightIDWhubeny.kmin: 2\n    test 1248 HeightIDWhubeny.wrap: None\n    test 1249 HeightIDWhubeny: 2.401661562\n    test 1250 HeightIDWhubeny(float): <class 'float'>\n    test 1251 HeightIDWhubeny(latlon): True\n    test 1252 HeightIDWhubeny_(tuple): True\n    test 1253 HeightIDWhubeny(tuple): <class 'tuple'>\n    test 1254 HeightIDWhubeny(tuple-float): <class 'float'>\n    test 1255 HeightIDWhubeny(tuple-float): <class 'float'>\n    test 1256 HeightIDWhubeny(list): <class 'list'>\n    test 1257 HeightIDWhubeny(list-float): <class 'float'>\n    test 1258 HeightIDWhubeny(list-float): <class 'float'>\n    test 1259 HeightIDWhubeny(latlon): True\n\n    test 1260 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWkarney'>, True)\n    test 1261 HeightIDWkarney.copy(): (<class 'pygeodesy.heights.HeightIDWkarney'>, True)\n    test 1262 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 1263 HeightIDWkarney.datum: name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84\n    test 1264 HeightIDWkarney.kmin: 2\n    test 1265 HeightIDWkarney.wrap: None\n    test 1266 HeightIDWkarney: 2.402157442\n    test 1267 HeightIDWkarney(float): <class 'float'>\n    test 1268 HeightIDWkarney(latlon): True\n    test 1269 HeightIDWkarney_(tuple): True\n    test 1270 HeightIDWkarney(tuple): <class 'tuple'>\n    test 1271 HeightIDWkarney(tuple-float): <class 'float'>\n    test 1272 HeightIDWkarney(tuple-float): <class 'float'>\n    test 1273 HeightIDWkarney(list): <class 'list'>\n    test 1274 HeightIDWkarney(list-float): <class 'float'>\n    test 1275 HeightIDWkarney(list-float): <class 'float'>\n    test 1276 HeightIDWkarney(latlon): True\n\n    test 1277 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWthomas'>, True)\n    test 1278 HeightIDWthomas.copy(): (<class 'pygeodesy.heights.HeightIDWthomas'>, True)\n    test 1279 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 1280 HeightIDWthomas.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 1281 HeightIDWthomas.kmin: 2\n    test 1282 HeightIDWthomas.wrap: None\n    test 1283 HeightIDWthomas: 2.401661653\n    test 1284 HeightIDWthomas(float): <class 'float'>\n    test 1285 HeightIDWthomas(latlon): True\n    test 1286 HeightIDWthomas_(tuple): True\n    test 1287 HeightIDWthomas(tuple): <class 'tuple'>\n    test 1288 HeightIDWthomas(tuple-float): <class 'float'>\n    test 1289 HeightIDWthomas(tuple-float): <class 'float'>\n    test 1290 HeightIDWthomas(list): <class 'list'>\n    test 1291 HeightIDWthomas(list-float): <class 'float'>\n    test 1292 HeightIDWthomas(list-float): <class 'float'>\n    test 1293 HeightIDWthomas(latlon): True\n\n    test 1294 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWvincentys'>, True)\n    test 1295 HeightIDWvincentys.copy(): (<class 'pygeodesy.heights.HeightIDWvincentys'>, True)\n    test 1296 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 1297 HeightIDWvincentys.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 1298 HeightIDWvincentys.kmin: 2\n    test 1299 HeightIDWvincentys.wrap: None\n    test 1300 HeightIDWvincentys: 2.402157442\n    test 1301 HeightIDWvincentys(float): <class 'float'>\n    test 1302 HeightIDWvincentys(latlon): True\n    test 1303 HeightIDWvincentys_(tuple): True\n    test 1304 HeightIDWvincentys(tuple): <class 'tuple'>\n    test 1305 HeightIDWvincentys(tuple-float): <class 'float'>\n    test 1306 HeightIDWvincentys(tuple-float): <class 'float'>\n    test 1307 HeightIDWvincentys(list): <class 'list'>\n    test 1308 HeightIDWvincentys(list-float): <class 'float'>\n    test 1309 HeightIDWvincentys(list-float): <class 'float'>\n    test 1310 HeightIDWvincentys(latlon): True\n\n    test 1311 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightLinear'>, True)\n    test 1312 HeightLinear.copy(): (<class 'pygeodesy.heights.HeightLinear'>, True)\n    test 1313 HeightError: llis[0] (9.0): 'float' object has no attribute 'lat'\n    test 1314 HeightLinear.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 1315 HeightLinear.kmin: 2\n    test 1316 HeightLinear.wrap: None\n    test 1317 HeightLinear: 2.294914622\n    test 1318 HeightLinear(float): <class 'float'>\n    test 1319 HeightLinear(latlon): True\n    test 1320 HeightLinear_(tuple): True\n    test 1321 HeightLinear(tuple): <class 'tuple'>\n    test 1322 HeightLinear(tuple-float): <class 'float'>\n    test 1323 HeightLinear(tuple-float): <class 'float'>\n    test 1324 HeightLinear(list): <class 'list'>\n    test 1325 HeightLinear(list-float): <class 'float'>\n    test 1326 HeightLinear(list-float): <class 'float'>\n    test 1327 HeightLinear(latlon): True\n\n    test 1328 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightLSQBiSpline'>, True)\n    test 1329 HeightLSQBiSpline.copy(): (<class 'pygeodesy.heights.HeightLSQBiSpline'>, True)\n    test 1330 HeightError: llis[0] (9.0): 'float' object has no attribute 'lat'\n    test 1331 HeightLSQBiSpline.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 1332 HeightLSQBiSpline.kmin: 16\n    test 1333 HeightLSQBiSpline.wrap: None\n    test 1334 HeightLSQBiSpline: 6.419251669\n    test 1335 HeightLSQBiSpline(float): <class 'float'>\n    test 1336 HeightLSQBiSpline(latlon): True\n    test 1337 HeightLSQBiSpline_(tuple): True\n    test 1338 HeightLSQBiSpline(tuple): <class 'tuple'>\n    test 1339 HeightLSQBiSpline(tuple-float): <class 'float'>\n    test 1340 HeightLSQBiSpline(tuple-float): <class 'float'>\n    test 1341 HeightLSQBiSpline(list): <class 'list'>\n    test 1342 HeightLSQBiSpline(list-float): <class 'float'>\n    test 1343 HeightLSQBiSpline(list-float): <class 'float'>\n    test 1344 HeightLSQBiSpline(latlon): True\n\n    test 1345 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightLSQBiSpline'>, True)\n    test 1346 HeightLSQBiSpline.copy(): (<class 'pygeodesy.heights.HeightLSQBiSpline'>, True)\n    test 1347 HeightError: llis[0] (9.0): 'float' object has no attribute 'lat'\n    test 1348 HeightLSQBiSpline.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 1349 HeightLSQBiSpline.kmin: 16\n    test 1350 HeightLSQBiSpline.wrap: None\n    test 1351 HeightLSQBiSpline: 6.419251669\n    test 1352 HeightLSQBiSpline(float): <class 'float'>\n    test 1353 HeightLSQBiSpline(latlon): True\n    test 1354 HeightLSQBiSpline_(tuple): True\n    test 1355 HeightLSQBiSpline(tuple): <class 'tuple'>\n    test 1356 HeightLSQBiSpline(tuple-float): <class 'float'>\n    test 1357 HeightLSQBiSpline(tuple-float): <class 'float'>\n    test 1358 HeightLSQBiSpline(list): <class 'list'>\n    test 1359 HeightLSQBiSpline(list-float): <class 'float'>\n    test 1360 HeightLSQBiSpline(list-float): <class 'float'>\n    test 1361 HeightLSQBiSpline(latlon): True\n\n    test 1362 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightLSQBiSpline'>, True)\n    test 1363 HeightLSQBiSpline.copy(): (<class 'pygeodesy.heights.HeightLSQBiSpline'>, True)\n    test 1364 HeightError: llis[0] (9.0): 'float' object has no attribute 'lat'\n    test 1365 HeightLSQBiSpline.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 1366 HeightLSQBiSpline.kmin: 16\n    test 1367 HeightLSQBiSpline.wrap: None\n    test 1368 HeightLSQBiSpline: 6.419251669\n    test 1369 HeightLSQBiSpline(float): <class 'float'>\n    test 1370 HeightLSQBiSpline(latlon): True\n    test 1371 HeightLSQBiSpline_(tuple): True\n    test 1372 HeightLSQBiSpline(tuple): <class 'tuple'>\n    test 1373 HeightLSQBiSpline(tuple-float): <class 'float'>\n    test 1374 HeightLSQBiSpline(tuple-float): <class 'float'>\n    test 1375 HeightLSQBiSpline(list): <class 'list'>\n    test 1376 HeightLSQBiSpline(list-float): <class 'float'>\n    test 1377 HeightLSQBiSpline(list-float): <class 'float'>\n    test 1378 HeightLSQBiSpline(latlon): True\n\n    test 1379 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightSmoothBiSpline'>, True)\n    test 1380 HeightSmoothBiSpline.copy(): (<class 'pygeodesy.heights.HeightSmoothBiSpline'>, True)\n    test 1381 HeightError: llis[0] (9.0): 'float' object has no attribute 'lat'\n    test 1382 HeightSmoothBiSpline.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 1383 HeightSmoothBiSpline.kmin: 16\n    test 1384 HeightSmoothBiSpline.wrap: None\n    test 1385 HeightSmoothBiSpline: 2.598922541\n    test 1386 HeightSmoothBiSpline(float): <class 'float'>\n    test 1387 HeightSmoothBiSpline(latlon): True\n    test 1388 HeightSmoothBiSpline_(tuple): True\n    test 1389 HeightSmoothBiSpline(tuple): <class 'tuple'>\n    test 1390 HeightSmoothBiSpline(tuple-float): <class 'float'>\n    test 1391 HeightSmoothBiSpline(tuple-float): <class 'float'>\n    test 1392 HeightSmoothBiSpline(list): <class 'list'>\n    test 1393 HeightSmoothBiSpline(list-float): <class 'float'>\n    test 1394 HeightSmoothBiSpline(list-float): <class 'float'>\n    test 1395 HeightSmoothBiSpline(latlon): True\n\n\n    9 of 1395 testHeights.py tests (0.6%) FAILED, incl. 9 DeprecationWarnings (pygeodesy 26.3.26 Python 3.12.10 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 2.1.0 scipy 1.14.1 Math 2 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 isLazy 3 -W  default) 13.311 sec\nrunning /usr/local/bin/p....n3.12 -W default ~/PyGeodesy/test/testInterns.py\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.machine from .internals by testInterns.py line 11\n\n    testing testInterns.py 25.04.12 (module pygeodesy.interns 25.11.07) isLazy=3\n    test 1 _0_ = '0': True\n    test 2 _0_ = '0': 0\n    test 3 _0to9_ = '0123456789': True\n    test 4 _0to9_ = '0123456789': 0123456789  FAILED, KNOWN, expected 0to9\n    test 5 _1_ = '1': True\n    test 6 _1_ = '1': 1\n    test 7 _2_ = '2': True\n    test 8 _2_ = '2': 2\n    test 9 _3_ = '3': True\n    test 10 _3_ = '3': 3\n    test 11 _4_ = '4': True\n    test 12 _4_ = '4': 4\n    test 13 __all__ = ('NN', 'Str_'): False  FAILED, KNOWN, expected True\n    test 14 __builtins__ = {'__name__': 'builtins', ....) for help about object.}: False  FAILED, KNOWN, expected True\n    test 15 __cached__ = './pygeodesy/__pycache__/interns.cpython-312.pyc': True\n    test 16 __doc__ = \"Single C{str}ing constan.... L{pygeodesy.machine}.\\n\": True\n    test 17 __file__ = './pygeodesy/interns.py': True\n    test 18 __loader__ = <_frozen_importlib_extern....er object at 0x105756630>: False  FAILED, KNOWN, expected True\n    test 19 __name__ = 'pygeodesy.interns': True\n    test 20 __package__ = 'pygeodesy': True\n    test 21 __spec__ = ModuleSpec(name='pygeodes....'./pygeodesy/interns.py'): False  FAILED, KNOWN, expected True\n    test 22 __version__ = '25.11.07': True\n    test 23 _a12_ = 'a12': True\n    test 24 _a12_ = 'a12': a12\n    test 25 _A_ = 'A': True\n    test 26 _A_ = 'A': a\n    test 27 _a_ = 'a': True\n    test 28 _a_ = 'a': a\n    test 29 _Airy1830_ = 'Airy1830': True\n    test 30 _Airy1830_ = 'Airy1830': airy1830\n    test 31 _AiryModified_ = 'AiryModified': True\n    test 32 _AiryModified_ = 'AiryModified': airymodified\n    test 33 _ambiguous_ = 'ambiguous': True\n    test 34 _ambiguous_ = 'ambiguous': ambiguous\n    test 35 _AMPERSAND_ = '&': True\n    test 36 _AMPERSAND_ = '&': &  FAILED, KNOWN, expected ampersand\n    test 37 _an_ = 'an': True\n    test 38 _an_ = 'an': an\n    test 39 _and_ = 'and': True\n    test 40 _and_ = 'and': and\n    test 41 _angle_ = 'angle': True\n    test 42 _angle_ = 'angle': angle\n    test 43 _antipodal_ = 'antipodal': True\n    test 44 _antipodal_ = 'antipodal': antipodal\n    test 45 _area_ = 'area': True\n    test 46 _area_ = 'area': area\n    test 47 _arg_ = 'arg': True\n    test 48 _arg_ = 'arg': arg\n    test 49 _AT_ = '@': True\n    test 50 _AT_ = '@': @  FAILED, KNOWN, expected at\n    test 51 _AtoZnoIO_ = 'ABCDEFGHJKLMNPQRSTUVWXYZ': True\n    test 52 _AtoZnoIO_ = 'ABCDEFGHJKLMNPQRSTUVWXYZ': abcdefghjklmnpqrstuvwxyz  FAILED, KNOWN, expected atoznoio\n    test 53 _attribute_ = 'attribute': True\n    test 54 _attribute_ = 'attribute': attribute\n    test 55 _azi12_ = 'azi12': True\n    test 56 _azi12_ = 'azi12': azi12\n    test 57 _azi1_ = 'azi1': True\n    test 58 _azi1_ = 'azi1': azi1\n    test 59 _azi2_ = 'azi2': True\n    test 60 _azi2_ = 'azi2': azi2\n    test 61 _azimuth_ = 'azimuth': True\n    test 62 _azimuth_ = 'azimuth': azimuth\n    test 63 _B_ = 'B': True\n    test 64 _B_ = 'B': b\n    test 65 _b_ = 'b': True\n    test 66 _b_ = 'b': b\n    test 67 _BACKSLASH_ = '\\\\': True\n    test 68 _BACKSLASH_ = '\\\\': \\  FAILED, KNOWN, expected backslash\n    test 69 _band_ = 'band': True\n    test 70 _band_ = 'band': band\n    test 71 _BANG_ = '!': True\n    test 72 _BANG_ = '!': !  FAILED, KNOWN, expected bang\n    test 73 _BAR_ = '|': True\n    test 74 _BAR_ = '|': |  FAILED, KNOWN, expected bar\n    test 75 _bearing_ = 'bearing': True\n    test 76 _bearing_ = 'bearing': bearing\n    test 77 _Bessel1841_ = 'Bessel1841': True\n    test 78 _Bessel1841_ = 'Bessel1841': bessel1841\n    test 79 _beta_ = 'beta': True\n    test 80 _beta_ = 'beta': beta\n    test 81 _by_ = 'by': True\n    test 82 _by_ = 'by': by\n    test 83 _C_ = 'C': True\n    test 84 _C_ = 'C': c\n    test 85 _c_ = 'c': True\n    test 86 _c_ = 'c': c\n    test 87 _cartesian_ = 'cartesian': True\n    test 88 _cartesian_ = 'cartesian': cartesian\n    test 89 _center_ = 'center': True\n    test 90 _center_ = 'center': center\n    test 91 _Clarke1866_ = 'Clarke1866': True\n    test 92 _Clarke1866_ = 'Clarke1866': clarke1866\n    test 93 _Clarke1880IGN_ = 'Clarke1880IGN': True\n    test 94 _Clarke1880IGN_ = 'Clarke1880IGN': clarke1880ign\n    test 95 _clip_ = 'clip': True\n    test 96 _clip_ = 'clip': clip\n    test 97 _clipid_ = 'clipid': True\n    test 98 _clipid_ = 'clipid': clipid\n    test 99 _coincident_ = 'coincident': True\n    test 100 _coincident_ = 'coincident': coincident\n    test 101 _colinear_ = 'colinear': True\n    test 102 _colinear_ = 'colinear': colinear\n    test 103 _COLON_ = ':': True\n    test 104 _COLON_ = ':': :  FAILED, KNOWN, expected colon\n    test 105 _COLONSPACE_ = ': ': True\n    test 106 _COLONSPACE_ = ': ': :   FAILED, KNOWN, expected colonspace\n    test 107 _COMMA_ = ',': True\n    test 108 _COMMA_ = ',': ,  FAILED, KNOWN, expected comma\n    test 109 _COMMASPACE_ = ', ': True\n    test 110 _COMMASPACE_ = ', ': ,   FAILED, KNOWN, expected commaspace\n    test 111 _composite_ = 'composite': True\n    test 112 _composite_ = 'composite': composite\n    test 113 _concentric_ = 'concentric': True\n    test 114 _concentric_ = 'concentric': concentric\n    test 115 _convergence_ = 'convergence': True\n    test 116 _convergence_ = 'convergence': convergence\n    test 117 _conversion_ = 'conversion': True\n    test 118 _conversion_ = 'conversion': conversion\n    test 119 _convex_ = 'convex': True\n    test 120 _convex_ = 'convex': convex\n    test 121 _D_ = 'D': True\n    test 122 _D_ = 'D': d\n    test 123 _d_ = 'd': True\n    test 124 _d_ = 'd': d\n    test 125 _DALL_ = '__all__': True\n    test 126 _DALL_ = '__all__': __all__  FAILED, KNOWN, expected dall\n    test 127 _DASH_ = '-': True\n    test 128 _DASH_ = '-': -  FAILED, KNOWN, expected dash\n    test 129 _datum_ = 'datum': True\n    test 130 _datum_ = 'datum': datum\n    test 131 _DDOT_ = '..': True\n    test 132 _DDOT_ = '..': ..  FAILED, KNOWN, expected ddot\n    test 133 _decode3_ = 'decode3': True\n    test 134 _decode3_ = 'decode3': decode3\n    test 135 _deg_ = 'deg': True\n    test 136 _deg_ = 'deg': deg\n    test 137 _degrees2_ = 'degrees2': True\n    test 138 _degrees2_ = 'degrees2': degrees2\n    test 139 _degrees_ = 'degrees': True\n    test 140 _degrees_ = 'degrees': degrees\n    test 141 _delta_ = 'delta': True\n    test 142 _delta_ = 'delta': delta\n    test 143 _DEPRECATED_ = 'DEPRECATED': True\n    test 144 _DEPRECATED_ = 'DEPRECATED': deprecated\n    test 145 _DEQUALSPACED_ = ' == ': True\n    test 146 _DEQUALSPACED_ = ' == ':  ==   FAILED, KNOWN, expected dequalspaced\n    test 147 _distance_ = 'distance': True\n    test 148 _distance_ = 'distance': distance\n    test 149 _distant_ = 'distant': True\n    test 150 _distant_ = 'distant': distant\n    test 151 _DMAIN_ = '__main__': True\n    test 152 _DMAIN_ = '__main__': __main__  FAILED, KNOWN, expected dmain\n    test 153 _DNAME_ = '__name__': True\n    test 154 _DNAME_ = '__name__': __name__  FAILED, KNOWN, expected dname\n    test 155 _doesn_t_exist_ = \"doesn't exist\": True\n    test 156 _doesn_t_exist_ = \"doesn't exist\": doesn't exist  FAILED, KNOWN, expected doesn_t_exist\n    test 157 _DOT_ = '.': True\n    test 158 _DOT_ = '.': .  FAILED, KNOWN, expected dot\n    test 159 _DSLASH_ = '//': True\n    test 160 _DSLASH_ = '//': //  FAILED, KNOWN, expected dslash\n    test 161 _DSTAR_ = '**': True\n    test 162 _DSTAR_ = '**': **  FAILED, KNOWN, expected dstar\n    test 163 _DUNDER_ = '__': True\n    test 164 _DUNDER_ = '__': __  FAILED, KNOWN, expected dunder\n    test 165 _duplicate_ = 'duplicate': True\n    test 166 _duplicate_ = 'duplicate': duplicate\n    test 167 _E_ = 'E': True\n    test 168 _E_ = 'E': e\n    test 169 _e_ = 'e': True\n    test 170 _e_ = 'e': e\n    test 171 _earth_ = 'earth': True\n    test 172 _earth_ = 'earth': earth\n    test 173 _easting_ = 'easting': True\n    test 174 _easting_ = 'easting': easting\n    test 175 _ecef_ = 'ecef': True\n    test 176 _ecef_ = 'ecef': ecef\n    test 177 _edge_ = 'edge': True\n    test 178 _edge_ = 'edge': edge\n    test 179 _elevation_ = 'elevation': True\n    test 180 _elevation_ = 'elevation': elevation\n    test 181 _ELLIPSIS4_ = '....': True\n    test 182 _ELLIPSIS4_ = '....': ....  FAILED, KNOWN, expected ellipsis4\n    test 183 _ELLIPSIS_ = '...': True\n    test 184 _ELLIPSIS_ = '...': ...  FAILED, KNOWN, expected ellipsis\n    test 185 _ellipsoid_ = 'ellipsoid': True\n    test 186 _ellipsoid_ = 'ellipsoid': ellipsoid\n    test 187 _ellipsoidal_ = 'ellipsoidal': True\n    test 188 _ellipsoidal_ = 'ellipsoidal': ellipsoidal\n    test 189 _encode_ = 'encode': True\n    test 190 _encode_ = 'encode': encode\n    test 191 _end_ = 'end': True\n    test 192 _end_ = 'end': end\n    test 193 _epoch_ = 'epoch': True\n    test 194 _epoch_ = 'epoch': epoch\n    test 195 _EQUAL_ = '=': True\n    test 196 _EQUAL_ = '=': =  FAILED, KNOWN, expected equal\n    test 197 _EQUALSPACED_ = ' = ': True\n    test 198 _EQUALSPACED_ = ' = ':  =   FAILED, KNOWN, expected equalspaced\n    test 199 _Error_ = 'Error': True\n    test 200 _Error_ = 'Error': error\n    test 201 _EW_ = 'EW': True\n    test 202 _EW_ = 'EW': ew\n    test 203 _exceed_PI_radians_ = 'exceed PI radians': True\n    test 204 _exceed_PI_radians_ = 'exceed PI radians': exceed pi radians  FAILED, KNOWN, expected exceed_pi_radians\n    test 205 _exceeds_ = 'exceeds': True\n    test 206 _exceeds_ = 'exceeds': exceeds\n    test 207 _exists_ = 'exists': True\n    test 208 _exists_ = 'exists': exists\n    test 209 _F_ = 'F': True\n    test 210 _F_ = 'F': f\n    test 211 _f_ = 'f': True\n    test 212 _f_ = 'f': f\n    test 213 _feet_ = 'feet': True\n    test 214 _feet_ = 'feet': feet\n    test 215 _few_ = 'few': True\n    test 216 _few_ = 'few': few\n    test 217 _fi_ = 'fi': True\n    test 218 _fi_ = 'fi': fi\n    test 219 _finite_ = 'finite': True\n    test 220 _finite_ = 'finite': finite\n    test 221 _from_ = 'from': True\n    test 222 _from_ = 'from': from\n    test 223 _g_ = 'g': True\n    test 224 _g_ = 'g': g\n    test 225 _gamma_ = 'gamma': True\n    test 226 _gamma_ = 'gamma': gamma\n    test 227 _GRS80_ = 'GRS80': True\n    test 228 _GRS80_ = 'GRS80': grs80\n    test 229 _H_ = 'H': True\n    test 230 _H_ = 'H': h\n    test 231 _h_ = 'h': True\n    test 232 _h_ = 'h': h\n    test 233 _HASH_ = '#': True\n    test 234 _HASH_ = '#': #  FAILED, KNOWN, expected hash\n    test 235 _height_ = 'height': True\n    test 236 _height_ = 'height': height\n    test 237 _hemipole_ = 'hemipole': True\n    test 238 _hemipole_ = 'hemipole': hemipole\n    test 239 _i_ = 'i': True\n    test 240 _i_ = 'i': i\n    test 241 _immutable_ = 'immutable': True\n    test 242 _immutable_ = 'immutable': immutable\n    test 243 _in_ = 'in': True\n    test 244 _in_ = 'in': in\n    test 245 _incompatible_ = 'incompatible': True\n    test 246 _incompatible_ = 'incompatible': incompatible\n    test 247 _INF_ = 'INF': True\n    test 248 _INF_ = 'INF': inf\n    test 249 _infinite_ = 'infinite': True\n    test 250 _infinite_ = 'infinite': infinite\n    test 251 _initial_ = 'initial': True\n    test 252 _initial_ = 'initial': initial\n    test 253 _inside_ = 'inside': True\n    test 254 _inside_ = 'inside': inside\n    test 255 _insufficient_ = 'insufficient': True\n    test 256 _insufficient_ = 'insufficient': insufficient\n    test 257 _intersection_ = 'intersection': True\n    test 258 _intersection_ = 'intersection': intersection\n    test 259 _Intl1924_ = 'Intl1924': True\n    test 260 _Intl1924_ = 'Intl1924': intl1924\n    test 261 _INV_ = 'INV': True\n    test 262 _INV_ = 'INV': inv\n    test 263 _invalid_ = 'invalid': True\n    test 264 _invalid_ = 'invalid': invalid\n    test 265 _invokation_ = 'invokation': True\n    test 266 _invokation_ = 'invokation': invokation\n    test 267 _j_ = 'j': True\n    test 268 _j_ = 'j': j\n    test 269 _k0_ = 'k0': True\n    test 270 _k0_ = 'k0': k0\n    test 271 _keyword_ = 'keyword': True\n    test 272 _keyword_ = 'keyword': keyword\n    test 273 _kind_ = 'kind': True\n    test 274 _kind_ = 'kind': kind\n    test 275 _Krassovski1940_ = 'Krassovski1940': True\n    test 276 _Krassovski1940_ = 'Krassovski1940': krassovski1940\n    test 277 _Krassowsky1940_ = 'Krassowsky1940': True\n    test 278 _Krassowsky1940_ = 'Krassowsky1940': krassowsky1940\n    test 279 _lam_ = 'lam': True\n    test 280 _lam_ = 'lam': lam\n    test 281 _LANGLE_ = '<': True\n    test 282 _LANGLE_ = '<': <  FAILED, KNOWN, expected langle\n    test 283 _lat0_ = 'lat0': True\n    test 284 _lat0_ = 'lat0': lat0\n    test 285 _lat1_ = 'lat1': True\n    test 286 _lat1_ = 'lat1': lat1\n    test 287 _lat2_ = 'lat2': True\n    test 288 _lat2_ = 'lat2': lat2\n    test 289 _lat_ = 'lat': True\n    test 290 _lat_ = 'lat': lat\n    test 291 _LatLon_ = 'LatLon': True\n    test 292 _LatLon_ = 'LatLon': latlon\n    test 293 _latlon_ = 'latlon': True\n    test 294 _latlon_ = 'latlon': latlon\n    test 295 _LCURLY_ = '{': True\n    test 296 _LCURLY_ = '{': {  FAILED, KNOWN, expected lcurly\n    test 297 _len_ = 'len': True\n    test 298 _len_ = 'len': len\n    test 299 _limit_ = 'limit': True\n    test 300 _limit_ = 'limit': limit\n    test 301 _line_ = 'line': True\n    test 302 _line_ = 'line': line\n    test 303 _lon0_ = 'lon0': True\n    test 304 _lon0_ = 'lon0': lon0\n    test 305 _lon1_ = 'lon1': True\n    test 306 _lon1_ = 'lon1': lon1\n    test 307 _lon2_ = 'lon2': True\n    test 308 _lon2_ = 'lon2': lon2\n    test 309 _lon_ = 'lon': True\n    test 310 _lon_ = 'lon': lon\n    test 311 _low_ = 'low': True\n    test 312 _low_ = 'low': low\n    test 313 _LPAREN_ = '(': True\n    test 314 _LPAREN_ = '(': (  FAILED, KNOWN, expected lparen\n    test 315 _LSQUARE_ = '[': True\n    test 316 _LSQUARE_ = '[': [  FAILED, KNOWN, expected lsquare\n    test 317 _ltp_ = 'ltp': True\n    test 318 _ltp_ = 'ltp': ltp\n    test 319 _M12_ = 'M12': True\n    test 320 _M12_ = 'M12': m12\n    test 321 _m12_ = 'm12': True\n    test 322 _m12_ = 'm12': m12\n    test 323 _M21_ = 'M21': True\n    test 324 _M21_ = 'M21': m21\n    test 325 _M_ = 'M': True\n    test 326 _M_ = 'M': m\n    test 327 _m_ = 'm': True\n    test 328 _m_ = 'm': m\n    test 329 _MANT_DIG_ = 'MANT_DIG': True\n    test 330 _MANT_DIG_ = 'MANT_DIG': mant_dig\n    test 331 _MAX_ = 'MAX': True\n    test 332 _MAX_ = 'MAX': max\n    test 333 _mean_ = 'mean': True\n    test 334 _mean_ = 'mean': mean\n    test 335 _meanOf_ = 'meanOf': True\n    test 336 _meanOf_ = 'meanOf': meanof\n    test 337 _meridional_ = 'meridional': True\n    test 338 _meridional_ = 'meridional': meridional\n    test 339 _meter2_ = 'meter2': True\n    test 340 _meter2_ = 'meter2': meter2\n    test 341 _meter_ = 'meter': True\n    test 342 _meter_ = 'meter': meter\n    test 343 _MGRS_ = 'MGRS': True\n    test 344 _MGRS_ = 'MGRS': mgrs\n    test 345 _MIN_ = 'MIN': True\n    test 346 _MIN_ = 'MIN': min\n    test 347 _MINUS_ = '-': True\n    test 348 _MINUS_ = '-': -  FAILED, KNOWN, expected minus\n    test 349 _module_ = 'module': True\n    test 350 _module_ = 'module': module\n    test 351 _N_ = 'N': True\n    test 352 _N_ = 'N': n\n    test 353 _n_ = 'n': True\n    test 354 _n_ = 'n': n\n    test 355 _N_A_ = 'N/A': True\n    test 356 _N_A_ = 'N/A': n/a  FAILED, KNOWN, expected n_a\n    test 357 _n_a_ = 'n/a': True\n    test 358 _n_a_ = 'n/a': n/a  FAILED, KNOWN, expected n_a\n    test 359 _NAD27_ = 'NAD27': True\n    test 360 _NAD27_ = 'NAD27': nad27\n    test 361 _NAD83_ = 'NAD83': True\n    test 362 _NAD83_ = 'NAD83': nad83\n    test 363 _name_ = 'name': True\n    test 364 _name_ = 'name': name\n    test 365 _NAN_ = 'NAN': True\n    test 366 _NAN_ = 'NAN': nan\n    test 367 _NE_ = 'NE': True\n    test 368 _NE_ = 'NE': ne\n    test 369 _near_ = 'near': True\n    test 370 _near_ = 'near': near\n    test 371 _nearestOn2_ = 'nearestOn2': True\n    test 372 _nearestOn2_ = 'nearestOn2': neareston2\n    test 373 _negative_ = 'negative': True\n    test 374 _negative_ = 'negative': negative\n    test 375 _NL_ = '\\n': True\n    test 376 _NL_ = '\\n': \n  FAILED, KNOWN, expected nl\n    test 377 _NLATvar_ = '\\n@var ': True\n    test 378 _NLATvar_ = '\\n@var ': \n@var   FAILED, KNOWN, expected nlatvar\n    test 379 _NLHASH_ = '\\n# ': True\n    test 380 _NLHASH_ = '\\n# ': \n#   FAILED, KNOWN, expected nlhash\n    test 381 _NN_ = 'NN': True\n    test 382 _NN_ = 'NN': nn\n    test 383 _no_ = 'no': True\n    test 384 _no_ = 'no': no\n    test 385 _northing_ = 'northing': True\n    test 386 _northing_ = 'northing': northing\n    test 387 _not_ = 'not': True\n    test 388 _not_ = 'not': not\n    test 389 _not_finite_ = 'not finite': True\n    test 390 _not_finite_ = 'not finite': not finite  FAILED, KNOWN, expected not_finite\n    test 391 _not_scalar_ = 'not scalar': True\n    test 392 _not_scalar_ = 'not scalar': not scalar  FAILED, KNOWN, expected not_scalar\n    test 393 _NOTEQUAL_ = '!=': True\n    test 394 _NOTEQUAL_ = '!=': !=  FAILED, KNOWN, expected notequal\n    test 395 _NS_ = 'NS': True\n    test 396 _NS_ = 'NS': ns\n    test 397 _NSEW_ = 'NSEW': True\n    test 398 _NSEW_ = 'NSEW': nsew\n    test 399 _NTF_ = 'NTF': True\n    test 400 _NTF_ = 'NTF': ntf\n    test 401 _null_ = 'null': True\n    test 402 _null_ = 'null': null\n    test 403 _number_ = 'number': True\n    test 404 _number_ = 'number': number\n    test 405 _numpy_ = 'numpy': True\n    test 406 _numpy_ = 'numpy': numpy\n    test 407 _Nv00_ = 'Nv00': True\n    test 408 _Nv00_ = 'Nv00': nv00\n    test 409 _NW_ = 'NW': True\n    test 410 _NW_ = 'NW': nw\n    test 411 _odd_ = 'odd': True\n    test 412 _odd_ = 'odd': odd\n    test 413 _of_ = 'of': True\n    test 414 _of_ = 'of': of\n    test 415 _on_ = 'on': True\n    test 416 _on_ = 'on': on\n    test 417 _opposite_ = 'opposite': True\n    test 418 _opposite_ = 'opposite': opposite\n    test 419 _or_ = 'or': True\n    test 420 _or_ = 'or': or\n    test 421 _other_ = 'other': True\n    test 422 _other_ = 'other': other\n    test 423 _outside_ = 'outside': True\n    test 424 _outside_ = 'outside': outside\n    test 425 _overlap_ = 'overlap': True\n    test 426 _overlap_ = 'overlap': overlap\n    test 427 _parallel_ = 'parallel': True\n    test 428 _parallel_ = 'parallel': parallel\n    test 429 _PERCENT_ = '%': True\n    test 430 _PERCENT_ = '%': %  FAILED, KNOWN, expected percent\n    test 431 _PERCENTDOTSTAR_ = '%.*': True\n    test 432 _PERCENTDOTSTAR_ = '%.*': %.*  FAILED, KNOWN, expected percentdotstar\n    test 433 _phi_ = 'phi': True\n    test 434 _phi_ = 'phi': phi\n    test 435 _PLUS_ = '+': True\n    test 436 _PLUS_ = '+': +  FAILED, KNOWN, expected plus\n    test 437 _PLUSMINUS_ = '+-': True\n    test 438 _PLUSMINUS_ = '+-': +-  FAILED, KNOWN, expected plusminus\n    test 439 _point_ = 'point': True\n    test 440 _point_ = 'point': point\n    test 441 _points_ = 'points': True\n    test 442 _points_ = 'points': points\n    test 443 _pole_ = 'pole': True\n    test 444 _pole_ = 'pole': pole\n    test 445 _precision_ = 'precision': True\n    test 446 _precision_ = 'precision': precision\n    test 447 _prime_vertical_ = 'prime_vertical': True\n    test 448 _prime_vertical_ = 'prime_vertical': prime_vertical\n    test 449 _pygeodesy_ = 'pygeodesy': True\n    test 450 _pygeodesy_ = 'pygeodesy': pygeodesy\n    test 451 _pygeodesy_abspath_ = 'pygeodesy_abspath': True\n    test 452 _pygeodesy_abspath_ = 'pygeodesy_abspath': pygeodesy_abspath\n    test 453 _PyPy__ = 'PyPy ': True\n    test 454 _PyPy__ = 'PyPy ': pypy   FAILED, KNOWN, expected pypy\n    test 455 _Python_ = 'Python': True\n    test 456 _Python_ = 'Python': python\n    test 457 _python_ = 'python': True\n    test 458 _python_ = 'python': python\n    test 459 _QUOTE1_ = \"'\": True\n    test 460 _QUOTE1_ = \"'\": '  FAILED, KNOWN, expected quote1\n    test 461 _QUOTE2_ = '\"': True\n    test 462 _QUOTE2_ = '\"': \"  FAILED, KNOWN, expected quote2\n    test 463 _QUOTE3_ = \"'''\": True\n    test 464 _QUOTE3_ = \"'''\": '''  FAILED, KNOWN, expected quote3\n    test 465 _R_ = 'R': True\n    test 466 _R_ = 'R': r\n    test 467 _radians2_ = 'radians2': True\n    test 468 _radians2_ = 'radians2': radians2\n    test 469 _radians_ = 'radians': True\n    test 470 _radians_ = 'radians': radians\n    test 471 _radius1_ = 'radius1': True\n    test 472 _radius1_ = 'radius1': radius1\n    test 473 _radius2_ = 'radius2': True\n    test 474 _radius2_ = 'radius2': radius2\n    test 475 _radius_ = 'radius': True\n    test 476 _radius_ = 'radius': radius\n    test 477 _range_ = 'range': True\n    test 478 _range_ = 'range': range\n    test 479 _RANGLE_ = '>': True\n    test 480 _RANGLE_ = '>': >  FAILED, KNOWN, expected rangle\n    test 481 _RCURLY_ = '}': True\n    test 482 _RCURLY_ = '}': }  FAILED, KNOWN, expected rcurly\n    test 483 _reciprocal_ = 'reciprocal': True\n    test 484 _reciprocal_ = 'reciprocal': reciprocal\n    test 485 _reframe_ = 'reframe': True\n    test 486 _reframe_ = 'reframe': reframe\n    test 487 _resolution_ = 'resolution': True\n    test 488 _resolution_ = 'resolution': resolution\n    test 489 _rIn_ = 'rIn': True\n    test 490 _rIn_ = 'rIn': rin\n    test 491 _RPAREN_ = ')': True\n    test 492 _RPAREN_ = ')': )  FAILED, KNOWN, expected rparen\n    test 493 _RSQUARE_ = ']': True\n    test 494 _RSQUARE_ = ']': ]  FAILED, KNOWN, expected rsquare\n    test 495 _S12_ = 'S12': True\n    test 496 _S12_ = 'S12': s12\n    test 497 _s12_ = 's12': True\n    test 498 _s12_ = 's12': s12\n    test 499 _S_ = 'S': True\n    test 500 _S_ = 'S': s\n    test 501 _s_ = 's': True\n    test 502 _s_ = 's': s\n    test 503 _scalar_ = 'scalar': True\n    test 504 _scalar_ = 'scalar': scalar\n    test 505 _scale0_ = 'scale0': True\n    test 506 _scale0_ = 'scale0': scale0\n    test 507 _scale_ = 'scale': True\n    test 508 _scale_ = 'scale': scale\n    test 509 _scipy_ = 'scipy': True\n    test 510 _scipy_ = 'scipy': scipy\n    test 511 _SE_ = 'SE': True\n    test 512 _SE_ = 'SE': se\n    test 513 _semi_circular_ = 'semi-circular': True\n    test 514 _semi_circular_ = 'semi-circular': semi-circular  FAILED, KNOWN, expected semi_circular\n    test 515 _sep_ = 'sep': True\n    test 516 _sep_ = 'sep': sep\n    test 517 _singular_ = 'singular': True\n    test 518 _singular_ = 'singular': singular\n    test 519 _SLASH_ = '/': True\n    test 520 _SLASH_ = '/': /  FAILED, KNOWN, expected slash\n    test 521 _small_ = 'small': True\n    test 522 _small_ = 'small': small\n    test 523 _SPACE_ = ' ': True\n    test 524 _SPACE_ = ' ':    FAILED, KNOWN, expected space\n    test 525 _specified_ = 'specified': True\n    test 526 _specified_ = 'specified': specified\n    test 527 _Sphere_ = 'Sphere': True\n    test 528 _Sphere_ = 'Sphere': sphere\n    test 529 _spherical_ = 'spherical': True\n    test 530 _spherical_ = 'spherical': spherical\n    test 531 _STAR_ = '*': True\n    test 532 _STAR_ = '*': *  FAILED, KNOWN, expected star\n    test 533 _start_ = 'start': True\n    test 534 _start_ = 'start': start\n    test 535 _std_ = 'std': True\n    test 536 _std_ = 'std': std\n    test 537 _stdev_ = 'stdev': True\n    test 538 _stdev_ = 'stdev': stdev\n    test 539 _SW_ = 'SW': True\n    test 540 _SW_ = 'SW': sw\n    test 541 _tbd_ = 'tbd': True\n    test 542 _tbd_ = 'tbd': tbd\n    test 543 _TILDE_ = '~': True\n    test 544 _TILDE_ = '~': ~  FAILED, KNOWN, expected tilde\n    test 545 _to_ = 'to': True\n    test 546 _to_ = 'to': to\n    test 547 _tolerance_ = 'tolerance': True\n    test 548 _tolerance_ = 'tolerance': tolerance\n    test 549 _too_ = 'too': True\n    test 550 _too_ = 'too': too\n    test 551 _transform_ = 'transform': True\n    test 552 _transform_ = 'transform': transform\n    test 553 _UNDER_ = '_': True\n    test 554 _UNDER_ = '_': _  FAILED, KNOWN, expected under\n    test 555 _units_ = 'units': True\n    test 556 _units_ = 'units': units\n    test 557 _UNUSED_ = 'UNUSED': True\n    test 558 _UNUSED_ = 'UNUSED': unused\n    test 559 _up_ = 'up': True\n    test 560 _up_ = 'up': up\n    test 561 _UPS_ = 'UPS': True\n    test 562 _UPS_ = 'UPS': ups\n    test 563 _utf_8_ = 'utf-8': True\n    test 564 _utf_8_ = 'utf-8': utf-8  FAILED, KNOWN, expected utf_8\n    test 565 _UTM_ = 'UTM': True\n    test 566 _UTM_ = 'UTM': utm\n    test 567 _V_ = 'V': True\n    test 568 _V_ = 'V': v\n    test 569 _valid_ = 'valid': True\n    test 570 _valid_ = 'valid': valid\n    test 571 _value_ = 'value': True\n    test 572 _value_ = 'value': value\n    test 573 _version_ = 'version': True\n    test 574 _version_ = 'version': version\n    test 575 _vs_ = 'vs': True\n    test 576 _vs_ = 'vs': vs\n    test 577 _W_ = 'W': True\n    test 578 _W_ = 'W': w\n    test 579 _WGS72_ = 'WGS72': True\n    test 580 _WGS72_ = 'WGS72': wgs72\n    test 581 _WGS84_ = 'WGS84': True\n    test 582 _WGS84_ = 'WGS84': wgs84\n    test 583 _width_ = 'width': True\n    test 584 _width_ = 'width': width\n    test 585 _with_ = 'with': True\n    test 586 _with_ = 'with': with\n    test 587 _X_ = 'X': True\n    test 588 _X_ = 'X': x\n    test 589 _x_ = 'x': True\n    test 590 _x_ = 'x': x\n    test 591 _xyz_ = 'xyz': True\n    test 592 _xyz_ = 'xyz': xyz\n    test 593 _Y_ = 'Y': True\n    test 594 _Y_ = 'Y': y\n    test 595 _y_ = 'y': True\n    test 596 _y_ = 'y': y\n    test 597 _Z_ = 'Z': True\n    test 598 _Z_ = 'Z': z\n    test 599 _z_ = 'z': True\n    test 600 _z_ = 'z': z\n    test 601 _zone_ = 'zone': True\n    test 602 _zone_ = 'zone': zone\n    test 603 .tillC: ABC\n    test 604 .fromX: XYZ\n    test 605 .fromH.tillJ: HJ\n    test 606 .fromN.tillP: NP\n\n    test 607 machine: arm64\n    test 608 sysctl: 0\n    test 609 usage: python3 -m pygeodesy.interns\n    test 610 version: (3, 12)\n\n    64 of 610 testInterns.py tests (10.5%) FAILED, ALL KNOWN (pygeodesy 26.3.26 Python 3.12.10 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 2.1.0 scipy 1.14.1 Math 2 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 isLazy 3 -W  default) 8.932 ms\nrunning /usr/local/bin/p....n3.12 -W default ~/PyGeodesy/test/testIters.py\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.PointsError from .errors by testIters.py line 11\n# lazily imported pygeodesy.PointsIter from .iters by testIters.py line 11\n\n    testing testIters.py 23.03.27 (module pygeodesy.iters 25.05.19) isLazy=3\n# lazily imported pygeodesy.booleans by iters.py line 76\n    test 1 i : 7\n    test 2 dedup: False\n    test 3 i : 0\n    test 4 p0: True\n    test 5 dedup: True\n    test 6 copies: [0, 1, 2, 3, 4, 5, 6, 7]\n    test 7 i : 0\n    test 8 copies: 9\n    test 9 p0: True\n    test 10 copies: True\n    test 11 copies: (0, 1, 2, 3, 4, 5, 6, 7)\n    test 12 iter: 1\n    test 13 iter: 2\n    test 14 iter: 3\n    test 15 re-iter: PointsError('points (0): too few')\n\n    all 15 testIters.py tests passed (pygeodesy 26.3.26 Python 3.12.10 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 2.1.0 scipy 1.14.1 Math 2 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 isLazy 3 -W  default) 8.140 ms\nrunning /usr/local/bin/p....n3.12 -W default ~/PyGeodesy/test/testKarney.py\n./pygeodesy/ellipsoidalKarney.py:139: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return fabs(_polygon(datum.ellipsoid.geodesic, points, True, False, wrap, polar))\n./pygeodesy/ellipsoidalKarney.py:347: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return _polygon(datum.ellipsoid.geodesic, points, closed, True, wrap, False)\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.fsum_ from .fsums by testKarney.py line 11\n# lazily imported pygeodesy.LatLon_ from .points by testKarney.py line 11\n# lazily imported pygeodesy.sincos2d from .utily by testKarney.py line 11\n# lazily imported pygeodesy.unroll180 from .utily by testKarney.py line 11\n# lazily imported pygeodesy.wrap180 from .utily by testKarney.py line 11\n# lazily imported pygeodesy.ellipsoidalExact by testKarney.py line 220\n# lazily imported pygeodesy.geodesicw by testKarney.py line 220\n# lazily imported pygeodesy.geodesicx by testKarney.py line 220\n\n    testing testKarney.py 25.12.20 (module pygeodesy.karney 25.12.23) isLazy=3\n# lazily imported pygeodesy.ellipsoidalKarney by testKarney.py line 225\n    test 1 Geodesic: True\n    test 2 Geodesic: True\n\n    testDirect(pygeodesy.geodesicw, 25.05.28)\n    test 3 Direct.lat2: -11.174910000000\n    test 4 Direct.lon2: -69.959210000000\n    test 5 Direct.azi2: 129.289270889709\n    test 6 Direct.a12: 80.507297142820\n    test 7 Direct.m12: 6273170.205530384555  FAILED, KNOWN (1.48461e-14), expected 6273170.205530383624\n    test 8 Direct.M12: 0.166063184474\n    test 9 Direct.M21: 0.164791169456\n    test 10 Direct.S12: 12841384694976.431640625000\n    test 11 Direct.lat2: 77.031960000000\n    test 12 Direct.lon2: 197.182340000000\n    test 13 Direct.azi2: 109.112041110672\n    test 14 Direct.a12: 36.892740690446\n    test 15 Direct.m12: 3828869.334438760299  FAILED, KNOWN (1.21618e-14), expected 3828869.334438760765\n    test 16 Direct.M12: 0.800763496081\n    test 17 Direct.M21: 0.801010069842\n    test 18 Direct.S12: 61674961290615.609375000000  FAILED, KNOWN (1.26672e-14), expected 61674961290615.617187500000\n    test 19 Direct.lat2: 41.841380000000\n    test 20 Direct.lon2: 98.566350000000\n    test 21 Direct.azi2: -41.843599514405\n    test 22 Direct.a12: 75.629304910115\n    test 23 Direct.m12: 6161154.577311060391  FAILED, KNOWN (1.5116e-14), expected 6161154.577311061323\n    test 24 Direct.M12: 0.248163392340\n    test 25 Direct.M21: 0.249302512036\n    test 26 Direct.S12: -6637997720646.715820312500  FAILED, KNOWN (1.47117e-14), expected -6637997720646.716796875000\n    test 27 Direct.lat2: -12.706310000000\n    test 28 Direct.lon2: 285.903440000000\n    test 29 Direct.azi2: 2.512956620914\n    test 30 Direct.a12: 100.278634181156\n    test 31 Direct.m12: 6289939.567044666968  FAILED, KNOWN (2.96131e-14), expected 6289939.567044668831\n    test 32 Direct.M12: -0.171994902747\n    test 33 Direct.M21: -0.177225695263\n    test 34 Direct.S12: -121287239862139.734375000000  FAILED, KNOWN (1.28826e-14), expected -121287239862139.750000000000\n    test 35 Direct.lat2: -15.847840000000\n    test 36 Direct.lon2: 5.935570000000\n    test 37 Direct.azi2: -20.787484651537\n    test 38 Direct.a12: 144.640108810286\n    test 39 Direct.m12: 3732902.158387716860  FAILED, KNOWN (4.9898e-14), expected 3732902.158387718722\n    test 40 Direct.M12: -0.812736387001\n    test 41 Direct.M21: -0.812998005192\n    test 42 Direct.S12: 97825992354058.703125000000\n\n    testInverse(pygeodesy.geodesicw, 25.05.28)\n    test 43 Inverse.lat2: -11.174910000000\n    test 44 Inverse.lon2: -69.959210000000\n    test 45 Inverse.azi1: 111.098748429560\n    test 46 Inverse.azi2: 129.289270889709\n    test 47 Inverse.s12: 8935244.560481829569\n    test 48 Inverse.a12: 80.507297142820\n    test 49 Inverse.m12: 6273170.205530383624\n    test 50 Inverse.M12: 0.166063184474\n    test 51 Inverse.M21: 0.164791169456\n    test 52 Inverse.S12: 12841384694976.433593750000  FAILED, KNOWN (1.52096e-14), expected 12841384694976.431640625000\n    test 53 Inverse.lat2: 77.031960000000\n    test 54 Inverse.lon2: 197.182340000000\n    test 55 Inverse.azi1: 22.020059880983\n    test 56 Inverse.azi2: 109.112041110672\n    test 57 Inverse.s12: 4105086.171392441727  FAILED, KNOWN (2.2687e-14), expected 4105086.171392440796\n    test 58 Inverse.a12: 36.892740690446\n    test 59 Inverse.m12: 3828869.334438761696  FAILED, KNOWN (2.43237e-14), expected 3828869.334438760765\n    test 60 Inverse.M12: 0.800763496081\n    test 61 Inverse.M21: 0.801010069842\n    test 62 Inverse.S12: 61674961290615.617187500000\n    test 63 Inverse.lat2: 41.841380000000\n    test 64 Inverse.lon2: 98.566350000000\n    test 65 Inverse.azi1: -32.444568764332\n    test 66 Inverse.azi2: -41.843599514405\n    test 67 Inverse.s12: 8394328.894657669589  FAILED, KNOWN (2.21893e-14), expected 8394328.894657671452\n    test 68 Inverse.a12: 75.629304910115\n    test 69 Inverse.m12: 6161154.577311060391  FAILED, KNOWN (1.5116e-14), expected 6161154.577311061323\n    test 70 Inverse.M12: 0.248163392340\n    test 71 Inverse.M21: 0.249302512036\n    test 72 Inverse.S12: -6637997720646.717773437500  FAILED, KNOWN (1.47117e-14), expected -6637997720646.716796875000\n    test 73 Inverse.lat2: -12.706310000000\n    test 74 Inverse.lon2: 285.903440000000\n    test 75 Inverse.azi1: 173.734912408784\n    test 76 Inverse.azi2: 2.512956620914\n    test 77 Inverse.s12: 11150344.231208024547\n    test 78 Inverse.a12: 100.278634181156\n    test 79 Inverse.m12: 6289939.567044666968  FAILED, KNOWN (2.96131e-14), expected 6289939.567044668831\n    test 80 Inverse.M12: -0.171994902747\n    test 81 Inverse.M21: -0.177225695263\n    test 82 Inverse.S12: -121287239862139.718750000000  FAILED, KNOWN (2.57653e-14), expected -121287239862139.750000000000\n    test 83 Inverse.lat2: -15.847840000000\n    test 84 Inverse.lon2: 5.935570000000\n    test 85 Inverse.azi1: -159.033557661193\n    test 86 Inverse.azi2: -20.787484651537\n    test 87 Inverse.s12: 16076603.163118068129\n    test 88 Inverse.a12: 144.640108810286\n    test 89 Inverse.m12: 3732902.158387719188  FAILED, KNOWN (1.24745e-14), expected 3732902.158387718722\n    test 90 Inverse.M12: -0.812736387001\n    test 91 Inverse.M21: -0.812998005192\n    test 92 Inverse.S12: 97825992354058.703125000000\n    test 93 Inverse.lat2: 90.000000000000\n    test 94 Inverse.lon2: 0.000000000000\n    test 95 Inverse.azi1: 0.000000000000\n    test 96 Inverse.azi2: 0.000000000000\n    test 97 Inverse.s12: 558455.588646476739  FAILED, KNOWN (8.53641e-11), expected 558455.588646000018\n    test 98 Inverse.a12: 5.016734754264  FAILED, KNOWN (4.89833e-06), expected 5.016735000000\n    test 99 Inverse.m12: 557747.059253584128  FAILED, KNOWN (7.45563e-11), expected 557747.059253999963\n    test 100 Inverse.M12: 0.996194698092  FAILED, KNOWN (3.03061e-05), expected 0.996195000000\n    test 101 Inverse.M21: 0.996194828008  FAILED, KNOWN (1.72648e-05), expected 0.996195000000\n    test 102 Inverse.S12: 0.000000000000\n    test 103 Inverse.lat2: 90.000000000000\n    test 104 Inverse.lon2: 10.000000000000\n    test 105 Inverse.azi1: 0.000000000000\n    test 106 Inverse.azi2: 10.000000000000\n    test 107 Inverse.s12: 558455.588646476739  FAILED, KNOWN (8.53641e-11), expected 558455.588646000018\n    test 108 Inverse.a12: 5.016734754264  FAILED, KNOWN (4.89833e-06), expected 5.016735000000\n    test 109 Inverse.m12: 557747.059253584128  FAILED, KNOWN (7.45563e-11), expected 557747.059253999963\n    test 110 Inverse.M12: 0.996194698092  FAILED, KNOWN (3.03061e-05), expected 0.996195000000\n    test 111 Inverse.M21: 0.996194828008  FAILED, KNOWN (1.72648e-05), expected 0.996195000000\n    test 112 Inverse.S12: 7084244746167.895507812500\n\n    testInverseLine(pygeodesy.geodesicw, 25.05.28)\n    test 113 InverseLine[0].lat: 40.640\n    test 114 InverseLine[0].lon: -73.779\n    test 115 InverseLine[1].lat: 49.825  FAILED, KNOWN (0.00641087), expected 49.829\n    test 116 InverseLine[1].lon: -72.962\n    test 117 InverseLine[2].lat: 58.992  FAILED, KNOWN (0.0026387), expected 58.994\n    test 118 InverseLine[2].lon: -71.759\n    test 119 InverseLine[3].lat: 68.132  FAILED, KNOWN (0.00640093), expected 68.127\n    test 120 InverseLine[3].lon: -69.677  FAILED, KNOWN (0.0019843), expected -69.678\n    test 121 InverseLine[4].lat: 77.203  FAILED, KNOWN (0.0174018), expected 77.190\n    test 122 InverseLine[4].lon: -64.830  FAILED, KNOWN (0.0188051), expected -64.842\n    test 123 InverseLine[5].lat: 85.794  FAILED, KNOWN (0.023512), expected 85.774\n    test 124 InverseLine[5].lon: -39.425  FAILED, KNOWN (0.511977), expected -39.628\n    test 125 InverseLine[6].lat: 83.690  FAILED, KNOWN (0.0405821), expected 83.724\n    test 126 InverseLine[6].lon: 80.754  FAILED, KNOWN (0.167168), expected 80.619\n    test 127 InverseLine[7].lat: 74.828  FAILED, KNOWN (0.0632801), expected 74.875\n    test 128 InverseLine[7].lon: 94.774  FAILED, KNOWN (0.0324631), expected 94.743\n    test 129 InverseLine[8].lat: 65.730  FAILED, KNOWN (0.0856355), expected 65.786\n    test 130 InverseLine[8].lon: 98.489  FAILED, KNOWN (0.0149102), expected 98.474\n    test 131 InverseLine[9].lat: 56.582  FAILED, KNOWN (0.108466), expected 56.643\n    test 132 InverseLine[9].lon: 100.254  FAILED, KNOWN (0.0088657), expected 100.246\n    test 133 InverseLine[10].lat: 47.409  FAILED, KNOWN (0.13059), expected 47.471\n    test 134 InverseLine[10].lon: 101.327  FAILED, KNOWN (0.00584966), expected 101.321\n    test 135 InverseLine[11].lat: 38.220  FAILED, KNOWN (0.150547), expected 38.277\n    test 136 InverseLine[11].lon: 102.079  FAILED, KNOWN (0.00399913), expected 102.075\n    test 137 InverseLine[12].lat: 29.017  FAILED, KNOWN (0.166648), expected 29.066\n    test 138 InverseLine[12].lon: 102.662  FAILED, KNOWN (0.0026948), expected 102.659\n    test 139 InverseLine[13].lat: 19.804  FAILED, KNOWN (0.176529), expected 19.839\n    test 140 InverseLine[13].lon: 103.148  FAILED, KNOWN (0.00167385), expected 103.147\n    test 141 InverseLine[14].lat: 10.584  FAILED, KNOWN (0.173707), expected 10.602\n    test 142 InverseLine[14].lon: 103.581\n    test 143 InverseLine[15].lat: 1.359\n    test 144 InverseLine[15].lon: 103.989\n\n    testGeodCalc(pygeodesy.ellipsoidalKarney, 25.05.27)\n# lazily imported pygeodesy.booleans by karney.py line 875\n    test 145 area: 13662703680020\n    test 146 perimeter: 16831067.892791\n\n    testMask(pygeodesy.geodesicw, 25.05.28)\n    test 147 Geodesic.EMPTY: 0b0\n    test 148 Geodesic.LATITUDE: 0b10000000\n    test 149 Geodesic.LONGITUDE: 0b100001000\n    test 150 Geodesic.AZIMUTH: 0b1000000000\n    test 151 Geodesic.AREA: 0b100000000010000\n    test 152 Geodesic.DISTANCE: 0b10000000001\n    test 153 Geodesic.DISTANCE_IN: 0b100000000011\n    test 154 Geodesic.REDUCEDLENGTH: 0b1000000000101\n    test 155 Geodesic.GEODESICSCALE: 0b10000000000101\n    test 156 Geodesic.STANDARD: 0b11110001001\n    test 157 Geodesic.STANDARD_LINE: 0b111110001011\n    test 158 Geodesic.ALL: 0b111111110011111\n    test 159 Caps: ALL|AREA|AZIMUTH|AZIMUTH_DISTANCE|AZIMUTH_DISTANCE_AREA|DISTANCE|DISTANCE_IN|GEODESICSCALE|LATITUDE|LATITUDE_LONGITUDE|LATITUDE_LONGITUDE_AREA|LINE_CAPS|LONGITUDE|REDUCEDLENGTH|STANDARD|STANDARD_LINE\n    test 160 Caps: ALL|AREA|AZIMUTH|AZIMUTH_DISTANCE|AZIMUTH_DISTANCE_AREA|DISTANCE|DISTANCE_IN|GEODESICSCALE|LATITUDE|LATITUDE_LONGITUDE|LATITUDE_LONGITUDE_AREA|LINE_CAPS|LONGITUDE|REDUCEDLENGTH|STANDARD|STANDARD_LINE\n\n    testDirect(pygeodesy.geodesicx, 25.12.23)\n# lazily imported pygeodesy.elliptic by gxline.py line 289\n    test 161 Direct.lat2: -11.174910000000\n    test 162 Direct.lon2: -69.959210000000\n    test 163 Direct.azi2: 129.289270889709\n    test 164 Direct.a12: 80.507297142820\n    test 165 Direct.m12: 6273170.205530384555  FAILED, KNOWN (1.48461e-14), expected 6273170.205530383624\n    test 166 Direct.M12: 0.166063184474\n    test 167 Direct.M21: 0.164791169456\n    test 168 Direct.S12: 12841384694976.431640625000\n    test 169 Direct.lat2: 77.031960000000\n    test 170 Direct.lon2: 197.182340000000\n    test 171 Direct.azi2: 109.112041110672\n    test 172 Direct.a12: 36.892740690446\n    test 173 Direct.m12: 3828869.334438760299  FAILED, KNOWN (1.21618e-14), expected 3828869.334438760765\n    test 174 Direct.M12: 0.800763496081\n    test 175 Direct.M21: 0.801010069842\n    test 176 Direct.S12: 61674961290615.609375000000  FAILED, KNOWN (1.26672e-14), expected 61674961290615.617187500000\n    test 177 Direct.lat2: 41.841380000000\n    test 178 Direct.lon2: 98.566350000000\n    test 179 Direct.azi2: -41.843599514405\n    test 180 Direct.a12: 75.629304910115\n    test 181 Direct.m12: 6161154.577311059460  FAILED, KNOWN (3.02321e-14), expected 6161154.577311061323\n    test 182 Direct.M12: 0.248163392340\n    test 183 Direct.M21: 0.249302512036\n    test 184 Direct.S12: -6637997720646.717773437500  FAILED, KNOWN (1.47117e-14), expected -6637997720646.716796875000\n    test 185 Direct.lat2: -12.706310000000\n    test 186 Direct.lon2: 285.903440000000\n    test 187 Direct.azi2: 2.512956620914\n    test 188 Direct.a12: 100.278634181156\n    test 189 Direct.m12: 6289939.567044666968  FAILED, KNOWN (2.96131e-14), expected 6289939.567044668831\n    test 190 Direct.M12: -0.171994902747\n    test 191 Direct.M21: -0.177225695263\n    test 192 Direct.S12: -121287239862139.734375000000  FAILED, KNOWN (1.28826e-14), expected -121287239862139.750000000000\n    test 193 Direct.lat2: -15.847840000000\n    test 194 Direct.lon2: 5.935570000000\n    test 195 Direct.azi2: -20.787484651537\n    test 196 Direct.a12: 144.640108810286\n    test 197 Direct.m12: 3732902.158387716860  FAILED, KNOWN (4.9898e-14), expected 3732902.158387718722\n    test 198 Direct.M12: -0.812736387001\n    test 199 Direct.M21: -0.812998005192\n    test 200 Direct.S12: 97825992354058.703125000000\n\n    testInverse(pygeodesy.geodesicx, 25.12.23)\n    test 201 Inverse.lat2: -11.174910000000\n    test 202 Inverse.lon2: -69.959210000000\n    test 203 Inverse.azi1: 111.098748429560\n    test 204 Inverse.azi2: 129.289270889709\n    test 205 Inverse.s12: 8935244.560481829569\n    test 206 Inverse.a12: 80.507297142820\n    test 207 Inverse.m12: 6273170.205530382693  FAILED, KNOWN (1.48461e-14), expected 6273170.205530383624\n    test 208 Inverse.M12: 0.166063184474\n    test 209 Inverse.M21: 0.164791169456\n    test 210 Inverse.S12: 12841384694976.433593750000  FAILED, KNOWN (1.52096e-14), expected 12841384694976.431640625000\n    test 211 Inverse.lat2: 77.031960000000\n    test 212 Inverse.lon2: 197.182340000000\n    test 213 Inverse.azi1: 22.020059880983\n    test 214 Inverse.azi2: 109.112041110672\n    test 215 Inverse.s12: 4105086.171392441727  FAILED, KNOWN (2.2687e-14), expected 4105086.171392440796\n    test 216 Inverse.a12: 36.892740690446\n    test 217 Inverse.m12: 3828869.334438761696  FAILED, KNOWN (2.43237e-14), expected 3828869.334438760765\n    test 218 Inverse.M12: 0.800763496081\n    test 219 Inverse.M21: 0.801010069842\n    test 220 Inverse.S12: 61674961290615.617187500000\n    test 221 Inverse.lat2: 41.841380000000\n    test 222 Inverse.lon2: 98.566350000000\n    test 223 Inverse.azi1: -32.444568764332\n    test 224 Inverse.azi2: -41.843599514405\n    test 225 Inverse.s12: 8394328.894657669589  FAILED, KNOWN (2.21893e-14), expected 8394328.894657671452\n    test 226 Inverse.a12: 75.629304910115\n    test 227 Inverse.m12: 6161154.577311059460  FAILED, KNOWN (3.02321e-14), expected 6161154.577311061323\n    test 228 Inverse.M12: 0.248163392340\n    test 229 Inverse.M21: 0.249302512036\n    test 230 Inverse.S12: -6637997720646.717773437500  FAILED, KNOWN (1.47117e-14), expected -6637997720646.716796875000\n    test 231 Inverse.lat2: -12.706310000000\n    test 232 Inverse.lon2: 285.903440000000\n    test 233 Inverse.azi1: 173.734912408784\n    test 234 Inverse.azi2: 2.512956620914\n    test 235 Inverse.s12: 11150344.231208024547\n    test 236 Inverse.a12: 100.278634181156\n    test 237 Inverse.m12: 6289939.567044666968  FAILED, KNOWN (2.96131e-14), expected 6289939.567044668831\n    test 238 Inverse.M12: -0.171994902747\n    test 239 Inverse.M21: -0.177225695263\n    test 240 Inverse.S12: -121287239862139.718750000000  FAILED, KNOWN (2.57653e-14), expected -121287239862139.750000000000\n    test 241 Inverse.lat2: -15.847840000000\n    test 242 Inverse.lon2: 5.935570000000\n    test 243 Inverse.azi1: -159.033557661193\n    test 244 Inverse.azi2: -20.787484651537\n    test 245 Inverse.s12: 16076603.163118068129\n    test 246 Inverse.a12: 144.640108810286\n    test 247 Inverse.m12: 3732902.158387718257  FAILED, KNOWN (1.24745e-14), expected 3732902.158387718722\n    test 248 Inverse.M12: -0.812736387001\n    test 249 Inverse.M21: -0.812998005192\n    test 250 Inverse.S12: 97825992354058.703125000000\n    test 251 Inverse.lat2: 90.000000000000\n    test 252 Inverse.lon2: 0.000000000000\n    test 253 Inverse.azi1: 0.000000000000\n    test 254 Inverse.azi2: 0.000000000000\n    test 255 Inverse.s12: 558020.704208072624  FAILED, KNOWN (0.0778727), expected 558455.588646000018\n    test 256 Inverse.a12: 5.016734754264  FAILED, KNOWN (4.89833e-06), expected 5.016735000000\n    test 257 Inverse.m12: 557747.059253584128  FAILED, KNOWN (7.45563e-11), expected 557747.059253999963\n    test 258 Inverse.M12: 0.996194698092  FAILED, KNOWN (3.03061e-05), expected 0.996195000000\n    test 259 Inverse.M21: 0.996188865576  FAILED, KNOWN (0.000615785), expected 0.996195000000\n    test 260 Inverse.S12: 0.000000000000\n    test 261 Inverse.lat2: 90.000000000000\n    test 262 Inverse.lon2: 10.000000000000\n    test 263 Inverse.azi1: 0.000000000000\n    test 264 Inverse.azi2: 10.000000000000\n    test 265 Inverse.s12: 558020.704208072624  FAILED, KNOWN (0.0778727), expected 558455.588646000018\n    test 266 Inverse.a12: 5.016734754264  FAILED, KNOWN (4.89833e-06), expected 5.016735000000\n    test 267 Inverse.m12: 557747.059253584128  FAILED, KNOWN (7.45563e-11), expected 557747.059253999963\n    test 268 Inverse.M12: 0.996194698092  FAILED, KNOWN (3.03061e-05), expected 0.996195000000\n    test 269 Inverse.M21: 0.996188865576  FAILED, KNOWN (0.000615785), expected 0.996195000000\n    test 270 Inverse.S12: 7084244746167.895507812500\n\n    testInverseLine(pygeodesy.geodesicx, 25.12.23)\n    test 271 InverseLine[0].lat: 40.640\n    test 272 InverseLine[0].lon: -73.779\n    test 273 InverseLine[1].lat: 49.825  FAILED, KNOWN (0.00641087), expected 49.829\n    test 274 InverseLine[1].lon: -72.962\n    test 275 InverseLine[2].lat: 58.992  FAILED, KNOWN (0.0026387), expected 58.994\n    test 276 InverseLine[2].lon: -71.759\n    test 277 InverseLine[3].lat: 68.132  FAILED, KNOWN (0.00640093), expected 68.127\n    test 278 InverseLine[3].lon: -69.677  FAILED, KNOWN (0.0019843), expected -69.678\n    test 279 InverseLine[4].lat: 77.203  FAILED, KNOWN (0.0174018), expected 77.190\n    test 280 InverseLine[4].lon: -64.830  FAILED, KNOWN (0.0188051), expected -64.842\n    test 281 InverseLine[5].lat: 85.794  FAILED, KNOWN (0.023512), expected 85.774\n    test 282 InverseLine[5].lon: -39.425  FAILED, KNOWN (0.511977), expected -39.628\n    test 283 InverseLine[6].lat: 83.690  FAILED, KNOWN (0.0405821), expected 83.724\n    test 284 InverseLine[6].lon: 80.754  FAILED, KNOWN (0.167168), expected 80.619\n    test 285 InverseLine[7].lat: 74.828  FAILED, KNOWN (0.0632801), expected 74.875\n    test 286 InverseLine[7].lon: 94.774  FAILED, KNOWN (0.0324631), expected 94.743\n    test 287 InverseLine[8].lat: 65.730  FAILED, KNOWN (0.0856355), expected 65.786\n    test 288 InverseLine[8].lon: 98.489  FAILED, KNOWN (0.0149102), expected 98.474\n    test 289 InverseLine[9].lat: 56.582  FAILED, KNOWN (0.108466), expected 56.643\n    test 290 InverseLine[9].lon: 100.254  FAILED, KNOWN (0.0088657), expected 100.246\n    test 291 InverseLine[10].lat: 47.409  FAILED, KNOWN (0.13059), expected 47.471\n    test 292 InverseLine[10].lon: 101.327  FAILED, KNOWN (0.00584966), expected 101.321\n    test 293 InverseLine[11].lat: 38.220  FAILED, KNOWN (0.150547), expected 38.277\n    test 294 InverseLine[11].lon: 102.079  FAILED, KNOWN (0.00399913), expected 102.075\n    test 295 InverseLine[12].lat: 29.017  FAILED, KNOWN (0.166648), expected 29.066\n    test 296 InverseLine[12].lon: 102.662  FAILED, KNOWN (0.0026948), expected 102.659\n    test 297 InverseLine[13].lat: 19.804  FAILED, KNOWN (0.176529), expected 19.839\n    test 298 InverseLine[13].lon: 103.148  FAILED, KNOWN (0.00167385), expected 103.147\n    test 299 InverseLine[14].lat: 10.584  FAILED, KNOWN (0.173707), expected 10.602\n    test 300 InverseLine[14].lon: 103.581\n    test 301 InverseLine[15].lat: 1.359\n    test 302 InverseLine[15].lon: 103.989\n\n    testGeodCalc(pygeodesy.ellipsoidalExact, 25.08.28)\n    test 303 area: 13662703680020\n    test 304 perimeter: 16830891.356049\n\n    testMask(pygeodesy.geodesicx, 25.12.23)\n    test 305 Geodesic.EMPTY: 0b0\n    test 306 Geodesic.LATITUDE: 0b10000000\n    test 307 Geodesic.LONGITUDE: 0b100001000\n    test 308 Geodesic.AZIMUTH: 0b1000000000\n    test 309 Geodesic.AREA: 0b100000000010000\n    test 310 Geodesic.DISTANCE: 0b10000000001\n    test 311 Geodesic.DISTANCE_IN: 0b100000000011\n    test 312 Geodesic.REDUCEDLENGTH: 0b1000000000101\n    test 313 Geodesic.GEODESICSCALE: 0b10000000000101\n    test 314 Geodesic.STANDARD: 0b11110001001\n    test 315 Geodesic.STANDARD_LINE: 0b111110001011\n    test 316 Geodesic.ALL: 0b111111110011111\n    test 317 Caps: ALL|AREA|AZIMUTH|AZIMUTH_DISTANCE|AZIMUTH_DISTANCE_AREA|DISTANCE|DISTANCE_IN|GEODESICSCALE|LATITUDE|LATITUDE_LONGITUDE|LATITUDE_LONGITUDE_AREA|LINE_CAPS|LONGITUDE|REDUCEDLENGTH|STANDARD|STANDARD_LINE\n    test 318 Caps: ALL|AREA|AZIMUTH|AZIMUTH_DISTANCE|AZIMUTH_DISTANCE_AREA|DISTANCE|DISTANCE_IN|GEODESICSCALE|LATITUDE|LATITUDE_LONGITUDE|LATITUDE_LONGITUDE_AREA|LINE_CAPS|LONGITUDE|REDUCEDLENGTH|STANDARD|STANDARD_LINE\n# lazily imported pygeodesy.ellipsoidalGeodSolve by testKarney.py line 246\n# lazily imported pygeodesy.GeodesicSolve from .geodsolve by testKarney.py line 246\n\n    testDirect(pygeodesy.geodsolve, 25.12.31)\n    test 319 Direct.lat2: -11.174910000000\n    test 320 Direct.lon2: -69.959210000000\n    test 321 Direct.azi2: 129.289270889709\n    test 322 Direct.a12: 80.507297142820\n    test 323 Direct.m12: 6273170.205530384555  FAILED, KNOWN (1.48461e-14), expected 6273170.205530383624\n    test 324 Direct.M12: 0.166063184474\n    test 325 Direct.M21: 0.164791169456\n    test 326 Direct.S12: 12841384694976.431640625000\n    test 327 Direct.lat2: 77.031960000000\n    test 328 Direct.lon2: -162.817660000000  FAILED, KNOWN, expected 197.182340000000\n    test 329 Direct.azi2: 109.112041110672\n    test 330 Direct.a12: 36.892740690446\n    test 331 Direct.m12: 3828869.334438762162  FAILED, KNOWN (3.64855e-14), expected 3828869.334438760765\n    test 332 Direct.M12: 0.800763496081\n    test 333 Direct.M21: 0.801010069842\n    test 334 Direct.S12: 61674961290615.632812500000  FAILED, KNOWN (2.53344e-14), expected 61674961290615.617187500000\n    test 335 Direct.lat2: 41.841380000000\n    test 336 Direct.lon2: 98.566350000000\n    test 337 Direct.azi2: -41.843599514405\n    test 338 Direct.a12: 75.629304910115\n    test 339 Direct.m12: 6161154.577311061323\n    test 340 Direct.M12: 0.248163392340\n    test 341 Direct.M21: 0.249302512036\n    test 342 Direct.S12: -6637997720646.725585937500  FAILED, KNOWN (1.32405e-13), expected -6637997720646.716796875000\n    test 343 Direct.lat2: -12.706310000000\n    test 344 Direct.lon2: -74.096560000000  FAILED, KNOWN, expected 285.903440000000\n    test 345 Direct.azi2: 2.512956620914\n    test 346 Direct.a12: 100.278634181156\n    test 347 Direct.m12: 6289939.567044666968  FAILED, KNOWN (2.96131e-14), expected 6289939.567044668831\n    test 348 Direct.M12: -0.171994902747\n    test 349 Direct.M21: -0.177225695263\n    test 350 Direct.S12: -121287239862139.734375000000  FAILED, KNOWN (1.28826e-14), expected -121287239862139.750000000000\n    test 351 Direct.lat2: -15.847840000000\n    test 352 Direct.lon2: 5.935570000000\n    test 353 Direct.azi2: -20.787484651537\n    test 354 Direct.a12: 144.640108810286\n    test 355 Direct.m12: 3732902.158387716860  FAILED, KNOWN (4.9898e-14), expected 3732902.158387718722\n    test 356 Direct.M12: -0.812736387001\n    test 357 Direct.M21: -0.812998005192\n    test 358 Direct.S12: 97825992354058.703125000000\n\n    testInverse(pygeodesy.geodsolve, 25.12.31)\n    test 359 Inverse.lat2: -11.174910000000\n    test 360 Inverse.lon2: -69.959210000000\n    test 361 Inverse.azi1: 111.098748429560\n    test 362 Inverse.azi2: 129.289270889709\n    test 363 Inverse.s12: 8935244.560481827706  FAILED, KNOWN (2.0846e-14), expected 8935244.560481829569\n    test 364 Inverse.a12: 80.507297142820\n    test 365 Inverse.m12: 6273170.205530384555  FAILED, KNOWN (1.48461e-14), expected 6273170.205530383624\n    test 366 Inverse.M12: 0.166063184474\n    test 367 Inverse.M21: 0.164791169456\n    test 368 Inverse.S12: 12841384694976.433593750000  FAILED, KNOWN (1.52096e-14), expected 12841384694976.431640625000\n    test 369 Inverse.lat2: 77.031960000000\n    test 370 Inverse.lon2: -162.817660000000  FAILED, KNOWN, expected 197.182340000000\n    test 371 Inverse.azi1: 22.020059880983\n    test 372 Inverse.azi2: 109.112041110672\n    test 373 Inverse.s12: 4105086.171392441262  FAILED, KNOWN (1.13435e-14), expected 4105086.171392440796\n    test 374 Inverse.a12: 36.892740690446\n    test 375 Inverse.m12: 3828869.334438761696  FAILED, KNOWN (2.43237e-14), expected 3828869.334438760765\n    test 376 Inverse.M12: 0.800763496081\n    test 377 Inverse.M21: 0.801010069842\n    test 378 Inverse.S12: 61674961290615.617187500000\n    test 379 Inverse.lat2: 41.841380000000\n    test 380 Inverse.lon2: 98.566350000000\n    test 381 Inverse.azi1: -32.444568764332\n    test 382 Inverse.azi2: -41.843599514405\n    test 383 Inverse.s12: 8394328.894657669589  FAILED, KNOWN (2.21893e-14), expected 8394328.894657671452\n    test 384 Inverse.a12: 75.629304910115\n    test 385 Inverse.m12: 6161154.577311061323\n    test 386 Inverse.M12: 0.248163392340\n    test 387 Inverse.M21: 0.249302512036\n    test 388 Inverse.S12: -6637997720646.717773437500  FAILED, KNOWN (1.47117e-14), expected -6637997720646.716796875000\n    test 389 Inverse.lat2: -12.706310000000\n    test 390 Inverse.lon2: -74.096560000000  FAILED, KNOWN, expected 285.903440000000\n    test 391 Inverse.azi1: 173.734912408784\n    test 392 Inverse.azi2: 2.512956620914\n    test 393 Inverse.s12: 11150344.231208024547\n    test 394 Inverse.a12: 100.278634181156\n    test 395 Inverse.m12: 6289939.567044666968  FAILED, KNOWN (2.96131e-14), expected 6289939.567044668831\n    test 396 Inverse.M12: -0.171994902747\n    test 397 Inverse.M21: -0.177225695263\n    test 398 Inverse.S12: -121287239862139.718750000000  FAILED, KNOWN (2.57653e-14), expected -121287239862139.750000000000\n    test 399 Inverse.lat2: -15.847840000000\n    test 400 Inverse.lon2: 5.935570000000\n    test 401 Inverse.azi1: -159.033557661193\n    test 402 Inverse.azi2: -20.787484651537\n    test 403 Inverse.s12: 16076603.163118068129\n    test 404 Inverse.a12: 144.640108810286\n    test 405 Inverse.m12: 3732902.158387719188  FAILED, KNOWN (1.24745e-14), expected 3732902.158387718722\n    test 406 Inverse.M12: -0.812736387001\n    test 407 Inverse.M21: -0.812998005192\n    test 408 Inverse.S12: 97825992354058.703125000000\n    test 409 Inverse.lat2: 90.000000000000\n    test 410 Inverse.lon2: 0.000000000000\n    test 411 Inverse.azi1: 0.000000000000\n    test 412 Inverse.azi2: 0.000000000000\n    test 413 Inverse.s12: 558455.588646478485  FAILED, KNOWN (8.56768e-11), expected 558455.588646000018\n    test 414 Inverse.a12: 5.016734754264  FAILED, KNOWN (4.89833e-06), expected 5.016735000000\n    test 415 Inverse.m12: 557747.059253584128  FAILED, KNOWN (7.45563e-11), expected 557747.059253999963\n    test 416 Inverse.M12: 0.996194698092  FAILED, KNOWN (3.03061e-05), expected 0.996195000000\n    test 417 Inverse.M21: 0.996194828008  FAILED, KNOWN (1.72648e-05), expected 0.996195000000\n    test 418 Inverse.S12: 0.000000000000\n    test 419 Inverse.lat2: 90.000000000000\n    test 420 Inverse.lon2: 10.000000000000\n    test 421 Inverse.azi1: 0.000000000000\n    test 422 Inverse.azi2: 10.000000000000\n    test 423 Inverse.s12: 558455.588646478485  FAILED, KNOWN (8.56768e-11), expected 558455.588646000018\n    test 424 Inverse.a12: 5.016734754264  FAILED, KNOWN (4.89833e-06), expected 5.016735000000\n    test 425 Inverse.m12: 557747.059253584128  FAILED, KNOWN (7.45563e-11), expected 557747.059253999963\n    test 426 Inverse.M12: 0.996194698092  FAILED, KNOWN (3.03061e-05), expected 0.996195000000\n    test 427 Inverse.M21: 0.996194828008  FAILED, KNOWN (1.72648e-05), expected 0.996195000000\n    test 428 Inverse.S12: 7084244746167.896484375000  FAILED, KNOWN (1.3785e-14), expected 7084244746167.895507812500\n\n    testGeodCalc(pygeodesy.ellipsoidalGeodSolve, 25.08.28)\n    test 429 area: 13662703680020\n    test 430 perimeter: 16831067.892791\n\n    testMask(pygeodesy.geodsolve, 25.12.31)\n    test 431 Geodesic.EMPTY: 0b0\n    test 432 Geodesic.LATITUDE: 0b10000000\n    test 433 Geodesic.LONGITUDE: 0b100001000\n    test 434 Geodesic.AZIMUTH: 0b1000000000\n    test 435 Geodesic.AREA: 0b100000000010000\n    test 436 Geodesic.DISTANCE: 0b10000000001\n    test 437 Geodesic.DISTANCE_IN: 0b100000000011\n    test 438 Geodesic.REDUCEDLENGTH: 0b1000000000101\n    test 439 Geodesic.GEODESICSCALE: 0b10000000000101\n    test 440 Geodesic.STANDARD: 0b11110001001\n    test 441 Geodesic.STANDARD_LINE: 0b111110001011\n    test 442 Geodesic.ALL: 0b111111110011111\n    test 443 Caps: ALL|AREA|AZIMUTH|AZIMUTH_DISTANCE|AZIMUTH_DISTANCE_AREA|DISTANCE|DISTANCE_IN|GEODESICSCALE|LATITUDE|LATITUDE_LONGITUDE|LATITUDE_LONGITUDE_AREA|LINE_CAPS|LONGITUDE|REDUCEDLENGTH|STANDARD|STANDARD_LINE\n    test 444 Caps: ALL|AREA|AZIMUTH|AZIMUTH_DISTANCE|AZIMUTH_DISTANCE_AREA|DISTANCE|DISTANCE_IN|GEODESICSCALE|LATITUDE|LATITUDE_LONGITUDE|LATITUDE_LONGITUDE_AREA|LINE_CAPS|LONGITUDE|REDUCEDLENGTH|STANDARD|STANDARD_LINE\n\n    testMath(pygeodesy.karney, 25.12.23)\n    test 445 sin(-360): -0.0\n    test 446 cos(-360): 1.0\n    test 447 sin(-345): 0.25881904510252074\n    test 448 cos(-345): 0.9659258262890683\n    test 449 sin(-330): 0.5  FAILED, KNOWN, expected 0.49999999999999994\n    test 450 cos(-330): 0.8660254037844386\n    test 451 sin(-315): 0.7071067811865476  FAILED, KNOWN, expected 0.7071067811865475\n    test 452 cos(-315): 0.7071067811865476\n    test 453 sin(-300): 0.8660254037844386  FAILED, KNOWN, expected 0.8660254037844387\n    test 454 cos(-300): 0.5000000000000001\n    test 455 sin(-285): 0.9659258262890683\n    test 456 cos(-285): 0.25881904510252074\n    test 457 sin(-270): 1.0\n    test 458 cos(-270): 0.0\n    test 459 sin(-255): 0.9659258262890683\n    test 460 cos(-255): -0.25881904510252074\n    test 461 sin(-240): 0.8660254037844386  FAILED, KNOWN, expected 0.8660254037844387\n    test 462 cos(-240): -0.5\n    test 463 sin(-225): 0.7071067811865476  FAILED, KNOWN, expected 0.7071067811865475\n    test 464 cos(-225): -0.7071067811865476\n    test 465 sin(-210): 0.5000000000000001  FAILED, KNOWN, expected 0.49999999999999994\n    test 466 cos(-210): -0.8660254037844386\n    test 467 sin(-195): 0.25881904510252074\n    test 468 cos(-195): -0.9659258262890683\n    test 469 sin(-180): -0.0\n    test 470 cos(-180): -1.0\n    test 471 sin(-165): -0.25881904510252074\n    test 472 cos(-165): -0.9659258262890683\n    test 473 sin(-150): -0.5  FAILED, KNOWN, expected -0.49999999999999994\n    test 474 cos(-150): -0.8660254037844386\n    test 475 sin(-135): -0.7071067811865476  FAILED, KNOWN, expected -0.7071067811865475\n    test 476 cos(-135): -0.7071067811865476\n    test 477 sin(-120): -0.8660254037844386  FAILED, KNOWN, expected -0.8660254037844387\n    test 478 cos(-120): -0.5000000000000001\n    test 479 sin(-105): -0.9659258262890683\n    test 480 cos(-105): -0.25881904510252074\n    test 481 sin(-90): -1.0\n    test 482 cos(-90): 0.0\n    test 483 sin(-75): -0.9659258262890683\n    test 484 cos(-75): 0.25881904510252074\n    test 485 sin(-60): -0.8660254037844386  FAILED, KNOWN, expected -0.8660254037844387\n    test 486 cos(-60): 0.5\n    test 487 sin(-45): -0.7071067811865476  FAILED, KNOWN, expected -0.7071067811865475\n    test 488 cos(-45): 0.7071067811865476\n    test 489 sin(-30): -0.5000000000000001  FAILED, KNOWN, expected -0.49999999999999994\n    test 490 cos(-30): 0.8660254037844386\n    test 491 sin(-15): -0.25881904510252074\n    test 492 cos(-15): 0.9659258262890683\n    test 493 sin(0): 0.0\n    test 494 cos(0): 1.0\n    test 495 sin(15): 0.25881904510252074\n    test 496 cos(15): 0.9659258262890683\n    test 497 sin(30): 0.5  FAILED, KNOWN, expected 0.49999999999999994\n    test 498 cos(30): 0.8660254037844386\n    test 499 sin(45): 0.7071067811865476  FAILED, KNOWN, expected 0.7071067811865475\n    test 500 cos(45): 0.7071067811865476\n    test 501 sin(60): 0.8660254037844386  FAILED, KNOWN, expected 0.8660254037844387\n    test 502 cos(60): 0.5000000000000001\n    test 503 sin(75): 0.9659258262890683\n    test 504 cos(75): 0.25881904510252074\n    test 505 sin(90): 1.0\n    test 506 cos(90): 0.0\n    test 507 sin(105): 0.9659258262890683\n    test 508 cos(105): -0.25881904510252074\n    test 509 sin(120): 0.8660254037844386  FAILED, KNOWN, expected 0.8660254037844387\n    test 510 cos(120): -0.5\n    test 511 sin(135): 0.7071067811865476  FAILED, KNOWN, expected 0.7071067811865475\n    test 512 cos(135): -0.7071067811865476\n    test 513 sin(150): 0.5000000000000001  FAILED, KNOWN, expected 0.49999999999999994\n    test 514 cos(150): -0.8660254037844386\n    test 515 sin(165): 0.25881904510252074\n    test 516 cos(165): -0.9659258262890683\n    test 517 sin(180): 0.0\n    test 518 cos(180): -1.0\n    test 519 sin(195): -0.25881904510252074\n    test 520 cos(195): -0.9659258262890683\n    test 521 sin(210): -0.5  FAILED, KNOWN, expected -0.49999999999999994\n    test 522 cos(210): -0.8660254037844386\n    test 523 sin(225): -0.7071067811865476  FAILED, KNOWN, expected -0.7071067811865475\n    test 524 cos(225): -0.7071067811865476\n    test 525 sin(240): -0.8660254037844386  FAILED, KNOWN, expected -0.8660254037844387\n    test 526 cos(240): -0.5000000000000001\n    test 527 sin(255): -0.9659258262890683\n    test 528 cos(255): -0.25881904510252074\n    test 529 sin(270): -1.0\n    test 530 cos(270): 0.0\n    test 531 sin(285): -0.9659258262890683\n    test 532 cos(285): 0.25881904510252074\n    test 533 sin(300): -0.8660254037844386  FAILED, KNOWN, expected -0.8660254037844387\n    test 534 cos(300): 0.5\n    test 535 sin(315): -0.7071067811865476  FAILED, KNOWN, expected -0.7071067811865475\n    test 536 cos(315): 0.7071067811865476\n    test 537 sin(330): -0.5000000000000001  FAILED, KNOWN, expected -0.49999999999999994\n    test 538 cos(330): 0.8660254037844386\n    test 539 sin(345): -0.25881904510252074\n    test 540 cos(345): 0.9659258262890683\n    test 541 sin(360): 0.0\n    test 542 cos(360): 1.0\n    test 543 sin(375): 0.25881904510252074\n    test 544 cos(375): 0.9659258262890683\n    test 545 sin(390): 0.5  FAILED, KNOWN, expected 0.49999999999999994\n    test 546 cos(390): 0.8660254037844386\n    test 547 _diff182(-180, -180): 0.0  FAILED, KNOWN, expected -0.0\n    test 548 _diff182(-180, -90): 90.0\n    test 549 _diff182(-180, 0): 180.0\n    test 550 _diff182(-180, 90): -90.0\n    test 551 _diff182(-180, 180): 0.0\n    test 552 _diff182(-90, -180): -90.0\n    test 553 _diff182(-90, -90): 0.0  FAILED, KNOWN, expected -0.0\n    test 554 _diff182(-90, 0): 90.0\n    test 555 _diff182(-90, 90): 180.0\n    test 556 _diff182(-90, 180): -90.0\n    test 557 _diff182(0, -180): -180.0\n    test 558 _diff182(0, -90): -90.0\n    test 559 _diff182(0, 0): 0.0  FAILED, KNOWN, expected -0.0\n    test 560 _diff182(0, 90): 90.0\n    test 561 _diff182(0, 180): 180.0\n    test 562 _diff182(90, -180): 90.0\n    test 563 _diff182(90, -90): -180.0\n    test 564 _diff182(90, 0): -90.0\n    test 565 _diff182(90, 90): 0.0  FAILED, KNOWN, expected -0.0\n    test 566 _diff182(90, 180): 90.0\n    test 567 _diff182(180, -180): -0.0\n    test 568 _diff182(180, -90): 90.0\n    test 569 _diff182(180, 0): -180.0\n    test 570 _diff182(180, 90): -90.0\n    test 571 _diff182(180, 180): 0.0  FAILED, KNOWN, expected -0.0\n    test 572 _norm180(-361): -1.0\n    test 573  wrap180(-361): -1.0\n    test 574 _norm180(-360): -0.0\n    test 575  wrap180(-360): 0.0  FAILED, KNOWN, expected -0.0\n    test 576 _norm180(-180): -180.0  FAILED, KNOWN, expected 180.0\n    test 577  wrap180(-180): -180.0  FAILED, KNOWN, expected 180.0\n    test 578 _norm180(-90): -90.0\n    test 579  wrap180(-90): -90.0\n    test 580 _norm180(0): 0.0\n    test 581  wrap180(0): 0.0\n    test 582 _norm180(0): 0.0\n    test 583  wrap180(0): 0.0\n    test 584 _norm180(90): 90.0\n    test 585  wrap180(90): 90.0\n    test 586 _norm180(180): 180.0\n    test 587  wrap180(180): 180.0\n    test 588 _norm180(360): 0.0\n    test 589  wrap180(360): 0.0\n    test 590 _norm180(361): 1.0\n    test 591  wrap180(361): 1.0\n    test 592 unroll(-30, 0): (30.0, 0.0)\n    test 593 unroll(-30, 30): (60.0, 30.0)\n    test 594 unroll(-30, 60): (90.0, 60.0)\n    test 595 unroll(-30, 90): (120.0, 90.0)\n    test 596 unroll(-30, 120): (150.0, 120.0)\n    test 597 unroll(-30, 150): (180.0, 150.0)\n    test 598 unroll(-30, 180): (-150.0, -180.0)\n    test 599 unroll(-30, 210): (-120.0, -150.0)\n    test 600 unroll(-30, 240): (-90.0, -120.0)\n    test 601 unroll(-30, 270): (-60.0, -90.0)\n    test 602 unroll(-30, 300): (-30.0, -60.0)\n    test 603 unroll(-30, 330): (0.0, -30.0)\n    test 604 unroll(-30, 360): (30.0, 0.0)\n\n    test 605 _sum3.s: 1.000e-20\n    test 606 _sum3.t: 0.000e+00\n    test 607 fsum_: 1.000e-20\n\n    test 608 _sum3.s: 1.000e-20\n    test 609 _sum3.t: 0.000e+00\n    test 610 fsum_: 1.000e-20\n\n    test 611 _sum3.s: 1.000e-20\n    test 612 _sum3.t: 0.000e+00\n    test 613 fsum_: 1.000e-20\n\n    test 614 _sum3.s: -3.589e+19  FAILED, KNOWN, expected 1.0\n    test 615 _sum3.t: -2.048e+03  FAILED, KNOWN, expected 0.000e+00\n    test 616 fsum_: -3.589e+19  FAILED, KNOWN, expected 1.0\n\n    175 of 616 testKarney.py tests (28.4%) FAILED, incl. 173 KNOWN plus 2 DeprecationWarnings (pygeodesy 26.3.26 Python 3.12.10 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 2.1.0 scipy 1.14.1 Math 2 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 isLazy 3 -W  default) 7.628 sec\nrunning /usr/local/bin/p....n3.12 -W default ~/PyGeodesy/test/testKarneySigns.py\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.EPS from .constants by testKarneySigns.py line 12\n# lazily imported pygeodesy.INF from .constants by testKarneySigns.py line 12\n# lazily imported pygeodesy.NAN from .constants by testKarneySigns.py line 12\n# lazily imported pygeodesy.signBit from .basics by testKarneySigns.py line 12\n\n    testing testKarneySigns.py 25.12.23 isLazy=3\n\n    test 1 test_AngDiff: ...\n    test 2 test_1: 0.0\n    test 3 test_2: -0.0\n    test 4 test_3: 0.0\n    test 5 test_4: 0.0\n    test 6 test_5: 0.0\n    test 7 test_6: -0.0\n    test 8 test_7: 180.0\n    test 9 test_8: -180.0\n    test 10 test_9: 180.0\n    test 11 test_10: -180.0\n    test 12 test_11: 180.0\n    test 13 test_12: -180.0\n    test 14 test_13: 57.99999999999997\n\n    test 15 test_AngNormalize: ...\n    test 16 test_1: -180.0\n    test 17 test_2: -0.0\n    test 18 test_3: -180.0\n    test 19 test_4: -0.0\n    test 20 test_5: -180.0\n    test 21 test_6: -0.0\n    test 22 test_7: 0.0\n    test 23 test_8: 180.0\n    test 24 test_9: 0.0\n    test 25 test_10: 180.0\n    test 26 test_11: 0.0\n    test 27 test_12: 180.0\n\n    test 28 test_AngRound: ...\n    test 29 test_1: 6.938893903907228e-18\n    test 30 test_2: -6.938893903907228e-18\n    test 31 test_3: -0.0\n    test 32 test_4: -0.0\n    test 33 test_5: 0.0\n    test 34 test_6: 0.0\n    test 35 test_7: 0.015624999999999993\n    test 36 test_8: 0.015625\n    test 37 test_9: 0.015625\n    test 38 test_10: 0.015625\n    test 39 test_11: 0.015625\n    test 40 test_12: 0.015625\n    test 41 test_13: 0.015625\n    test 42 test_14: 0.015625000000000007\n    test 43 test_15: 0.031249999999999993\n    test 44 test_16: 0.03125\n    test 45 test_17: 0.03125\n    test 46 test_18: 0.03125\n    test 47 test_19: 0.03125\n    test 48 test_20: 0.03125000000000001\n    test 49 test_21: 0.062499999999999986\n    test 50 test_22: 0.06249999999999999\n    test 51 test_23: 0.0625\n    test 52 test_24: 0.0625\n    test 53 test_25: 0.0625\n    test 54 test_26: 0.0625\n    test 55 test_27: 0.06250000000000001\n    test 56 test_28: 0.12499999999999997\n    test 57 test_29: 0.12499999999999999\n    test 58 test_30: 0.125\n    test 59 test_31: 0.125\n    test 60 test_32: 0.12500000000000003\n    test 61 test_33: 0.9999999999999998\n    test 62 test_34: 0.9999999999999999\n    test 63 test_35: 1.0\n    test 64 test_36: 1.0\n    test 65 test_37: 1.0\n    test 66 test_38: 1.0\n    test 67 test_39: 1.0000000000000002\n    test 68 test_40: 89.99999999999999\n    test 69 test_41: 90.0\n    test 70 test_42: 90.0\n\n    test 71 test_antipodal: ...\n# lazily imported pygeodesy.elliptic by gx.py line 421\n    test 72 test_1: 0.0\n    test 73 test_1: 180.0\n    test 74 test_2: 180.0\n    test 75 test_2: 0.0\n    test 76 test_3: -0.0\n    test 77 test_3: -180.0\n    test 78 test_4: -180.0\n    test 79 test_4: -0.0\n\n    test 80 test_antipodal_prolate: ...\n    test 81 test_1: 90.0\n    test 82 test_1: 90.0\n    test 83 test_2: -90.0\n    test 84 test_2: -90.0\n\n    test 85 test_azimuth_0_180: ...\n    test 86 test_1: 180.0\n    test 87 test_1: 180.0\n    test 88 test_2: -180.0\n    test 89 test_2: -180.0\n    test 90 test_3: 180.0\n    test 91 test_3: 0.0\n    test 92 test_4: -180.0\n    test 93 test_4: -0.0\n\n    test 94 test_equatorial_coincident: ...\n    test 95 test_1: 180.0\n    test 96 test_1: 180.0\n    test 97 test_2: 0.0\n    test 98 test_2: 0.0\n\n    test 99 test_equatorial_NS: ...\n    test 100 test_1: 55.97  FAILED, KNOWN, expected 56.00\n    test 101 test_1: 124.03  FAILED, KNOWN, expected 124.00\n    test 102 test_2: 124.03  FAILED, KNOWN, expected 124.00\n    test 103 test_2: 55.97  FAILED, KNOWN, expected 56.00\n\n    test 104 test_atan2d: ...\n    test 105 test_1: 179.99999999999997\n    test 106 test_2: 180.0\n    test 107 test_3: -180.0\n    test 108 test_4: 0.0\n    test 109 test_5: -0.0\n    test 110 test_6: 180.0\n    test 111 test_7: -180.0\n    test 112 test_8: 0.0\n    test 113 test_9: -0.0\n    test 114 test_10: -90.0\n    test 115 test_11: -90.0\n    test 116 test_12: 90.0\n    test 117 test_13: 90.0\n    test 118 test_14: 180.0\n    test 119 test_15: -180.0\n    test 120 test_16: 0.0\n    test 121 test_17: -0.0\n    test 122 test_18: 90.0\n    test 123 test_19: 90.0\n    test 124 test_20: -90.0\n    test 125 test_21: -90.0\n    test 126 test_22: 135.0\n    test 127 test_23: -135.0\n    test 128 test_24: 45.0\n    test 129 test_25: -45.0\n    test 130 test_26: nan\n    test 131 test_27: nan\n\n    test 132 test_sincosd: ...\n    test 133 test_1: -1.0000000000000000\n    test 134 test_1: 0.0\n    test 135 test_2: -0.0000000000000000\n    test 136 test_2: 1.0\n    test 137 test_3: 1.0000000000000000\n    test 138 test_3: 0.0\n    test 139 test_4: -0.0000000000000000\n    test 140 test_4: -1.0\n    test 141 test_5: -1.0000000000000000\n    test 142 test_5: 0.0\n    test 143 test_6: -0.0000000000000000\n    test 144 test_6: 1.0\n    test 145 test_7: 1.0000000000000000\n    test 146 test_7: 0.0\n    test 147 test_8: -0.0000000000000000\n    test 148 test_8: -1.0\n    test 149 test_9: -1.0000000000000000\n    test 150 test_9: 0.0\n    test 151 test_10: -0.0000000000000000\n    test 152 test_10: 1.0\n    test 153 test_11: 0.0000000000000000\n    test 154 test_11: 1.0\n    test 155 test_12: 1.0000000000000000\n    test 156 test_12: 0.0\n    test 157 test_13: 0.0000000000000000\n    test 158 test_13: -1.0\n    test 159 test_14: -1.0000000000000000\n    test 160 test_14: 0.0\n    test 161 test_15: 0.0000000000000000\n    test 162 test_15: 1.0\n    test 163 test_16: 1.0000000000000000\n    test 164 test_16: 0.0\n    test 165 test_17: 0.0000000000000000\n    test 166 test_17: -1.0\n    test 167 test_18: -1.0000000000000000\n    test 168 test_18: 0.0\n    test 169 test_19: 0.0000000000000000\n    test 170 test_19: 1.0\n    test 171 test_20: 1.0000000000000000\n    test 172 test_20: 0.0\n    test 173 test_21: nan\n    test 174 test_21: nan\n    test 175 test_22: nan\n    test 176 test_22: nan\n    test 177 test_23: nan\n    test 178 test_23: nan\n    test 179 test_23: 0.1564344650402309\n    test 180 test_23: 0.9876883405951378\n    test 181 test_23: 0.1564344650402309\n    test 182 test_23: 0.9876883405951378\n\n    test 183 test_sum2: ...\n    test 184 test_1: 0.0\n    test 185 test_2: 0.0\n    test 186 test_3: 0.0\n    test 187 test_4: 0.0\n    test 188 test_5: -0.0\n    test 189 test_6: 0.0\n\n    test 190 Accu: 5103.0\n\n    4 of 190 testKarneySigns.py tests (2.1%) FAILED, ALL KNOWN (pygeodesy 26.3.26 Python 3.12.10 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 2.1.0 scipy 1.14.1 Math 2 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 isLazy 3 -W  default) 244.822 ms\nrunning /usr/local/bin/p....n3.12 -W default ~/PyGeodesy/test/testKtm.py\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.fstr from .streprs by testKtm.py line 10\n# lazily imported pygeodesy.hypot from .fmath by testKtm.py line 10\n# lazily imported pygeodesy.sincos2d from .utily by testKtm.py line 10\n# lazily imported pygeodesy.Ellipsoids from .ellipsoids by testKtm.py line 56\n# lazily imported pygeodesy.ExactTransverseMercator from .etm by testKtm.py line 56\n# lazily imported pygeodesy.ktm by testKtm.py line 56\n# lazily imported pygeodesy.KTransverseMercator from .ktm by testKtm.py line 56\n\n    testing testKtm.py 23.03.27 (module pygeodesy.ktm 25.08.31) isLazy=3\n# imported pygeodesy.basics into errors.py line 915\n\n    test 1 _TM: KTransverseMercator(ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), k0=0.9996, TMorder=7)\n    test 2 forward 0N (80.000, 0.000) -/-: 0.0, 8881585.815988, 0.0, 0.9996\n    test 3 reverse 0N (80.000, 0.000) -/-: 0.0\n    test 4 forward 3N (79.890, 8.374) -/-: 163544.38007, 8881136.361771, 8.245542, 0.999927\n    test 5 reverse 3N (79.890, 8.374) -/-: 1.7763568394002505e-15\n    test 6 forward 6N (79.562, 16.725) -/-: 333788.634116, 8880946.730424, 16.462884, 1.000962\n    test 7 reverse 6N (79.562, 16.725) -/-: 7.105427357601002e-15\n    test 8 forward 9N (79.015, 25.030) -/-: 516782.400098, 8884389.933155, 24.625783, 1.002865\n    test 9 reverse 9N (79.015, 25.030) -/-: 2.1316282072803006e-14\n    test 10 forward 12N (78.252, 33.266) -/-: 717349.637417, 8896761.249834, 32.712011, 1.005894\n    test 11 reverse 12N (78.252, 33.266) -/-: 5.1728291973635394e-14\n    test 12 forward 15N (77.274, 41.411) -/-: 938645.229361, 8924845.3123, 40.705476, 1.010384\n    test 13 reverse 15N (77.274, 41.411) -/-: 0.0\n    test 14 forward 18N (76.085, 49.443) -/-: 1181870.215451, 8976407.252949, 48.598167, 1.016714\n    test 15 reverse 18N (76.085, 49.443) -/-: 3.8263897345803626e-14\n    test 16 forward 21N (74.686, 57.339) -/-: 1446137.252018, 9059670.735504, 56.391495, 1.025259\n    test 17 reverse 21N (74.686, 57.339) -/-: 5.684341886080802e-14\n    test 18 forward 24N (73.084, 65.078) -/-: 1728450.251911, 9182823.938232, 64.096558, 1.036319\n    test 19 reverse 24N (73.084, 65.078) -/-: 1.4210854715202004e-14\n    test 20 forward 27N (71.281, 72.638) -/-: 2023752.790526, 9353559.771346, 71.732868, 1.050046\n    test 21 reverse 27N (71.281, 72.638) -/-: 1.4210854715202004e-14\n    test 22 forward 30N (69.282, 80.000) -/-: 2325015.074835, 9578621.128889, 79.325231, 1.066355\n    test 23 reverse 30N (69.282, 80.000) -/-: 2.842170943040401e-14\n    test 24 forward 33N (67.094, 87.142) -/-: 2623368.28288, 9863301.12097, 86.898617, 1.084836\n    test 25 reverse 33N (67.094, 87.142) -/-: 0.0\n    test 26 forward 36N (64.721, 94.046) -/-: 2908348.733697, 10210857.598605, 94.471204, 1.104695\n    test 27 reverse 36N (64.721, 94.046) -/-: 0.0\n    test 28 forward 39N (62.172, 100.691) -/-: 3168362.707459, 10621853.317461, 102.04623, 1.124739\n    test 29 reverse 39N (62.172, 100.691) -/-: 7.105427357601002e-15\n    test 30 forward 42N (59.452, 107.061) -/-: 3391492.622467, 11093528.387239, 109.604086, 1.14345\n    test 31 reverse 42N (59.452, 107.061) -/-: 1.5888218580782548e-14\n    test 32 forward 45N (56.569, 113.137) -/-: 3566696.824822, 11619422.467571, 117.096854, 1.159166\n    test 33 reverse 45N (56.569, 113.137) -/-: 0.0\n    test 34 forward 48N (53.530, 118.903) -/-: 3685290.742854, 12189522.028618, 124.447841, 1.170375\n    test 35 reverse 48N (53.530, 118.903) -/-: 1.5888218580782548e-14\n    test 36 forward 51N (50.346, 124.343) -/-: 3742386.824274, 12791126.616764, 131.557863, 1.176031\n    test 37 reverse 51N (50.346, 124.343) -/-: 1.4210854715202004e-14\n    test 38 forward 54N (47.023, 129.443) -/-: 3737846.053669, 13410380.03778, 138.317827, 1.175799\n    test 39 reverse 54N (47.023, 129.443) -/-: 2.929642751054232e-14\n    test 40 forward 57N (43.571, 134.187) -/-: 3676387.634221, 14034104.572541, 144.624552, 1.170121\n    test 41 reverse 57N (43.571, 134.187) -/-: 0.0\n    test 42 forward 60N (40.000, 138.564) -/-: 3566810.754496, 14651410.305646, 150.395289, 1.16007\n    test 43 reverse 60N (40.000, 138.564) -/-: 0.0\n    test 44 forward 63N (36.319, 142.561) -/-: 3420621.906486, 15254653.660248, 155.577129, 1.147079\n    test 45 reverse 63N (36.319, 142.561) -/-: 7.105427357601002e-15\n    test 46 forward 66N (32.539, 146.167) -/-: 3250522.133697, 15839614.666766, 160.149958, 1.132638\n    test 47 reverse 66N (32.539, 146.167) -/-: 7.105427357601002e-15\n    test 48 forward 69N (28.669, 149.373) -/-: 3069132.144368, 16405050.640186, 164.124094, 1.118063\n    test 49 reverse 69N (28.669, 149.373) -/-: 3.552713678800501e-15\n    test 50 forward 72N (24.721, 152.169) -/-: 2888128.173431, 16951919.948156, 167.534978, 1.104377\n    test 51 reverse 72N (24.721, 152.169) -/-: 1.0658141036401503e-14\n    test 52 forward 75N (20.706, 154.548) -/-: 2717773.256417, 17482549.021439, 170.437193, 1.09228\n    test 53 reverse 75N (20.706, 154.548) -/-: 1.7763568394002505e-14\n    test 54 forward 78N (16.633, 156.504) -/-: 2566730.586316, 17999918.486885, 172.899178, 1.082187\n    test 55 reverse 78N (16.633, 156.504) -/-: 1.7763568394002505e-14\n    test 56 forward 81N (12.515, 158.030) -/-: 2442031.891673, 18507145.758, 174.99917, 1.074303\n    test 57 reverse 81N (12.515, 158.030) -/-: 1.2434497875801753e-14\n    test 58 forward 84N (8.362, 159.124) -/-: 2349105.316925, 19007174.828239, 176.822266, 1.068689\n    test 59 reverse 84N (8.362, 159.124) -/-: 1.7763568394002505e-14\n    test 60 forward 87N (4.187, 159.781) -/-: 2291809.478825, 19502649.329559, 178.458273, 1.06534\n    test 61 reverse 87N (4.187, 159.781) -/-: 8.881784197001252e-15\n    test 62 forward 90N (0.000, 160.000) -/-: 2272454.379192, -19995929.886042, -180.0, 1.064227\n    test 63 reverse 90N (0.000, 160.000) -/-: 2.4016501336544057e-14\n    test 64 forward 93N (-4.187, 159.781) -/-: 2291809.478825, -19502649.329559, -178.458273, 1.06534\n    test 65 reverse 93N (-4.187, 159.781) -/-: 6.217248937900877e-15\n    test 66 forward 96N (-8.362, 159.124) -/-: 2349105.316925, -19007174.828239, -176.822266, 1.068689\n    test 67 reverse 96N (-8.362, 159.124) -/-: 1.5987211554602254e-14\n    test 68 forward 99N (-12.515, 158.030) -/-: 2442031.891673, -18507145.758, -174.99917, 1.074303\n    test 69 reverse 99N (-12.515, 158.030) -/-: 7.105427357601002e-15\n    test 70 forward 102N (-16.633, 156.504) -/-: 2566730.586316, -17999918.486885, -172.899178, 1.082187\n    test 71 reverse 102N (-16.633, 156.504) -/-: 2.842170943040401e-14\n    test 72 forward 105N (-20.706, 154.548) -/-: 2717773.256417, -17482549.021439, -170.437193, 1.09228\n    test 73 reverse 105N (-20.706, 154.548) -/-: 1.7763568394002505e-14\n    test 74 forward 108N (-24.721, 152.169) -/-: 2888128.173431, -16951919.948156, -167.534978, 1.104377\n    test 75 reverse 108N (-24.721, 152.169) -/-: 7.105427357601002e-15\n    test 76 forward 111N (-28.669, 149.373) -/-: 3069132.144368, -16405050.640186, -164.124094, 1.118063\n    test 77 reverse 111N (-28.669, 149.373) -/-: 7.105427357601002e-15\n    test 78 forward 114N (-32.539, 146.167) -/-: 3250522.133697, -15839614.666766, -160.149958, 1.132638\n    test 79 reverse 114N (-32.539, 146.167) -/-: 7.105427357601002e-15\n    test 80 forward 117N (-36.319, 142.561) -/-: 3420621.906486, -15254653.660248, -155.577129, 1.147079\n    test 81 reverse 117N (-36.319, 142.561) -/-: 7.105427357601002e-15\n    test 82 forward 120N (-40.000, 138.564) -/-: 3566810.754496, -14651410.305646, -150.395289, 1.16007\n    test 83 reverse 120N (-40.000, 138.564) -/-: 0.0\n    test 84 forward 123N (-43.571, 134.187) -/-: 3676387.634221, -14034104.572541, -144.624552, 1.170121\n    test 85 reverse 123N (-43.571, 134.187) -/-: 0.0\n    test 86 forward 126N (-47.023, 129.443) -/-: 3737846.053669, -13410380.03778, -138.317827, 1.175799\n    test 87 reverse 126N (-47.023, 129.443) -/-: 2.929642751054232e-14\n    test 88 forward 129N (-50.346, 124.343) -/-: 3742386.824274, -12791126.616764, -131.557863, 1.176031\n    test 89 reverse 129N (-50.346, 124.343) -/-: 1.4210854715202004e-14\n    test 90 forward 132N (-53.530, 118.903) -/-: 3685290.742854, -12189522.028618, -124.447841, 1.170375\n    test 91 reverse 132N (-53.530, 118.903) -/-: 1.5888218580782548e-14\n    test 92 forward 135N (-56.569, 113.137) -/-: 3566696.824822, -11619422.467571, -117.096854, 1.159166\n    test 93 reverse 135N (-56.569, 113.137) -/-: 0.0\n    test 94 forward 138N (-59.452, 107.061) -/-: 3391492.622467, -11093528.387239, -109.604086, 1.14345\n    test 95 reverse 138N (-59.452, 107.061) -/-: 1.5888218580782548e-14\n    test 96 forward 141N (-62.172, 100.691) -/-: 3168362.707459, -10621853.317461, -102.04623, 1.124739\n    test 97 reverse 141N (-62.172, 100.691) -/-: 7.105427357601002e-15\n    test 98 forward 144N (-64.721, 94.046) -/-: 2908348.733697, -10210857.598605, -94.471204, 1.104695\n    test 99 reverse 144N (-64.721, 94.046) -/-: 0.0\n    test 100 forward 147N (-67.094, 87.142) -/-: 2623368.28288, -9863301.12097, -86.898617, 1.084836\n    test 101 reverse 147N (-67.094, 87.142) -/-: 0.0\n    test 102 forward 150N (-69.282, 80.000) -/-: 2325015.074835, -9578621.128889, -79.325231, 1.066355\n    test 103 reverse 150N (-69.282, 80.000) -/-: 2.842170943040401e-14\n    test 104 forward 153N (-71.281, 72.638) -/-: 2023752.790526, -9353559.771346, -71.732868, 1.050046\n    test 105 reverse 153N (-71.281, 72.638) -/-: 1.4210854715202004e-14\n    test 106 forward 156N (-73.084, 65.078) -/-: 1728450.251911, -9182823.938232, -64.096558, 1.036319\n    test 107 reverse 156N (-73.084, 65.078) -/-: 1.4210854715202004e-14\n    test 108 forward 159N (-74.686, 57.339) -/-: 1446137.252018, -9059670.735504, -56.391495, 1.025259\n    test 109 reverse 159N (-74.686, 57.339) -/-: 1.4210854715202004e-14\n    test 110 forward 162N (-76.085, 49.443) -/-: 1181870.215451, -8976407.252949, -48.598167, 1.016714\n    test 111 reverse 162N (-76.085, 49.443) -/-: 3.552713678800501e-14\n    test 112 forward 165N (-77.274, 41.411) -/-: 938645.229361, -8924845.3123, -40.705476, 1.010384\n    test 113 reverse 165N (-77.274, 41.411) -/-: 0.0\n    test 114 forward 168N (-78.252, 33.266) -/-: 717349.637417, -8896761.249834, -32.712011, 1.005894\n    test 115 reverse 168N (-78.252, 33.266) -/-: 2.5618982671915014e-14\n    test 116 forward 171N (-79.015, 25.030) -/-: 516782.400098, -8884389.933155, -24.625783, 1.002865\n    test 117 reverse 171N (-79.015, 25.030) -/-: 2.842170943040401e-14\n    test 118 forward 174N (-79.562, 16.725) -/-: 333788.634116, -8880946.730424, -16.462884, 1.000962\n    test 119 reverse 174N (-79.562, 16.725) -/-: 1.0658141036401503e-14\n    test 120 forward 177N (-79.890, 8.374) -/-: 163544.38007, -8881136.361771, -8.245542, 0.999927\n    test 121 reverse 177N (-79.890, 8.374) -/-: 1.7763568394002505e-15\n    test 122 forward 180N (-80.000, 0.000) -/-: 0.0, -8881585.815988, 0.0, 0.9996\n    test 123 reverse 180N (-80.000, 0.000) -/-: 0.0\n    test 124 forward 183N (-79.890, -8.374) -/-: -163544.38007, -8881136.361771, 8.245542, 0.999927\n    test 125 reverse 183N (-79.890, -8.374) -/-: 1.7763568394002505e-15\n    test 126 forward 186N (-79.562, -16.725) -/-: -333788.634116, -8880946.730424, 16.462884, 1.000962\n    test 127 reverse 186N (-79.562, -16.725) -/-: 7.105427357601002e-15\n    test 128 forward 189N (-79.015, -25.030) -/-: -516782.400098, -8884389.933155, 24.625783, 1.002865\n    test 129 reverse 189N (-79.015, -25.030) -/-: 2.1316282072803006e-14\n    test 130 forward 192N (-78.252, -33.266) -/-: -717349.637417, -8896761.249834, 32.712011, 1.005894\n    test 131 reverse 192N (-78.252, -33.266) -/-: 5.1728291973635394e-14\n    test 132 forward 195N (-77.274, -41.411) -/-: -938645.229361, -8924845.3123, 40.705476, 1.010384\n    test 133 reverse 195N (-77.274, -41.411) -/-: 0.0\n    test 134 forward 198N (-76.085, -49.443) -/-: -1181870.215451, -8976407.252949, 48.598167, 1.016714\n    test 135 reverse 198N (-76.085, -49.443) -/-: 3.8263897345803626e-14\n    test 136 forward 201N (-74.686, -57.339) -/-: -1446137.252018, -9059670.735504, 56.391495, 1.025259\n    test 137 reverse 201N (-74.686, -57.339) -/-: 5.684341886080802e-14\n    test 138 forward 204N (-73.084, -65.078) -/-: -1728450.251911, -9182823.938232, 64.096558, 1.036319\n    test 139 reverse 204N (-73.084, -65.078) -/-: 1.4210854715202004e-14\n    test 140 forward 207N (-71.281, -72.638) -/-: -2023752.790526, -9353559.771346, 71.732868, 1.050046\n    test 141 reverse 207N (-71.281, -72.638) -/-: 1.4210854715202004e-14\n    test 142 forward 210N (-69.282, -80.000) -/-: -2325015.074835, -9578621.128889, 79.325231, 1.066355\n    test 143 reverse 210N (-69.282, -80.000) -/-: 2.842170943040401e-14\n    test 144 forward 213N (-67.094, -87.142) -/-: -2623368.28288, -9863301.12097, 86.898617, 1.084836\n    test 145 reverse 213N (-67.094, -87.142) -/-: 0.0\n    test 146 forward 216N (-64.721, -94.046) -/-: -2908348.733697, -10210857.598605, 94.471204, 1.104695\n    test 147 reverse 216N (-64.721, -94.046) -/-: 0.0\n    test 148 forward 219N (-62.172, -100.691) -/-: -3168362.707459, -10621853.317461, 102.04623, 1.124739\n    test 149 reverse 219N (-62.172, -100.691) -/-: 7.105427357601002e-15\n    test 150 forward 222N (-59.452, -107.061) -/-: -3391492.622467, -11093528.387239, 109.604086, 1.14345\n    test 151 reverse 222N (-59.452, -107.061) -/-: 1.5888218580782548e-14\n    test 152 forward 225N (-56.569, -113.137) -/-: -3566696.824822, -11619422.467571, 117.096854, 1.159166\n    test 153 reverse 225N (-56.569, -113.137) -/-: 0.0\n    test 154 forward 228N (-53.530, -118.903) -/-: -3685290.742854, -12189522.028618, 124.447841, 1.170375\n    test 155 reverse 228N (-53.530, -118.903) -/-: 1.5888218580782548e-14\n    test 156 forward 231N (-50.346, -124.343) -/-: -3742386.824274, -12791126.616764, 131.557863, 1.176031\n    test 157 reverse 231N (-50.346, -124.343) -/-: 1.4210854715202004e-14\n    test 158 forward 234N (-47.023, -129.443) -/-: -3737846.053669, -13410380.03778, 138.317827, 1.175799\n    test 159 reverse 234N (-47.023, -129.443) -/-: 2.929642751054232e-14\n    test 160 forward 237N (-43.571, -134.187) -/-: -3676387.634221, -14034104.572541, 144.624552, 1.170121\n    test 161 reverse 237N (-43.571, -134.187) -/-: 0.0\n    test 162 forward 240N (-40.000, -138.564) -/-: -3566810.754496, -14651410.305646, 150.395289, 1.16007\n    test 163 reverse 240N (-40.000, -138.564) -/-: 0.0\n    test 164 forward 243N (-36.319, -142.561) -/-: -3420621.906486, -15254653.660248, 155.577129, 1.147079\n    test 165 reverse 243N (-36.319, -142.561) -/-: 7.105427357601002e-15\n    test 166 forward 246N (-32.539, -146.167) -/-: -3250522.133697, -15839614.666766, 160.149958, 1.132638\n    test 167 reverse 246N (-32.539, -146.167) -/-: 7.105427357601002e-15\n    test 168 forward 249N (-28.669, -149.373) -/-: -3069132.144368, -16405050.640186, 164.124094, 1.118063\n    test 169 reverse 249N (-28.669, -149.373) -/-: 3.552713678800501e-15\n    test 170 forward 252N (-24.721, -152.169) -/-: -2888128.173431, -16951919.948156, 167.534978, 1.104377\n    test 171 reverse 252N (-24.721, -152.169) -/-: 1.0658141036401503e-14\n    test 172 forward 255N (-20.706, -154.548) -/-: -2717773.256417, -17482549.021439, 170.437193, 1.09228\n    test 173 reverse 255N (-20.706, -154.548) -/-: 1.7763568394002505e-14\n    test 174 forward 258N (-16.633, -156.504) -/-: -2566730.586316, -17999918.486885, 172.899178, 1.082187\n    test 175 reverse 258N (-16.633, -156.504) -/-: 1.7763568394002505e-14\n    test 176 forward 261N (-12.515, -158.030) -/-: -2442031.891673, -18507145.758, 174.99917, 1.074303\n    test 177 reverse 261N (-12.515, -158.030) -/-: 1.2434497875801753e-14\n    test 178 forward 264N (-8.362, -159.124) -/-: -2349105.316925, -19007174.828239, 176.822266, 1.068689\n    test 179 reverse 264N (-8.362, -159.124) -/-: 1.7763568394002505e-14\n    test 180 forward 267N (-4.187, -159.781) -/-: -2291809.478825, -19502649.329559, 178.458273, 1.06534\n    test 181 reverse 267N (-4.187, -159.781) -/-: 8.881784197001252e-15\n    test 182 forward 270N (0.000, -160.000) -/-: -2272454.379192, -19995929.886042, 180.0, 1.064227\n    test 183 reverse 270N (0.000, -160.000) -/-: 2.4016501336544057e-14\n    test 184 forward 273N (4.187, -159.781) -/-: -2291809.478825, 19502649.329559, -178.458273, 1.06534\n    test 185 reverse 273N (4.187, -159.781) -/-: 6.217248937900877e-15\n    test 186 forward 276N (8.362, -159.124) -/-: -2349105.316925, 19007174.828239, -176.822266, 1.068689\n    test 187 reverse 276N (8.362, -159.124) -/-: 1.5987211554602254e-14\n    test 188 forward 279N (12.515, -158.030) -/-: -2442031.891673, 18507145.758, -174.99917, 1.074303\n    test 189 reverse 279N (12.515, -158.030) -/-: 7.105427357601002e-15\n    test 190 forward 282N (16.633, -156.504) -/-: -2566730.586316, 17999918.486885, -172.899178, 1.082187\n    test 191 reverse 282N (16.633, -156.504) -/-: 2.842170943040401e-14\n    test 192 forward 285N (20.706, -154.548) -/-: -2717773.256417, 17482549.021439, -170.437193, 1.09228\n    test 193 reverse 285N (20.706, -154.548) -/-: 1.7763568394002505e-14\n    test 194 forward 288N (24.721, -152.169) -/-: -2888128.173431, 16951919.948156, -167.534978, 1.104377\n    test 195 reverse 288N (24.721, -152.169) -/-: 7.105427357601002e-15\n    test 196 forward 291N (28.669, -149.373) -/-: -3069132.144368, 16405050.640186, -164.124094, 1.118063\n    test 197 reverse 291N (28.669, -149.373) -/-: 7.105427357601002e-15\n    test 198 forward 294N (32.539, -146.167) -/-: -3250522.133697, 15839614.666766, -160.149958, 1.132638\n    test 199 reverse 294N (32.539, -146.167) -/-: 7.105427357601002e-15\n    test 200 forward 297N (36.319, -142.561) -/-: -3420621.906486, 15254653.660248, -155.577129, 1.147079\n    test 201 reverse 297N (36.319, -142.561) -/-: 7.105427357601002e-15\n    test 202 forward 300N (40.000, -138.564) -/-: -3566810.754496, 14651410.305646, -150.395289, 1.16007\n    test 203 reverse 300N (40.000, -138.564) -/-: 0.0\n    test 204 forward 303N (43.571, -134.187) -/-: -3676387.634221, 14034104.572541, -144.624552, 1.170121\n    test 205 reverse 303N (43.571, -134.187) -/-: 0.0\n    test 206 forward 306N (47.023, -129.443) -/-: -3737846.053669, 13410380.03778, -138.317827, 1.175799\n    test 207 reverse 306N (47.023, -129.443) -/-: 2.929642751054232e-14\n    test 208 forward 309N (50.346, -124.343) -/-: -3742386.824274, 12791126.616764, -131.557863, 1.176031\n    test 209 reverse 309N (50.346, -124.343) -/-: 1.4210854715202004e-14\n    test 210 forward 312N (53.530, -118.903) -/-: -3685290.742854, 12189522.028618, -124.447841, 1.170375\n    test 211 reverse 312N (53.530, -118.903) -/-: 1.5888218580782548e-14\n    test 212 forward 315N (56.569, -113.137) -/-: -3566696.824822, 11619422.467571, -117.096854, 1.159166\n    test 213 reverse 315N (56.569, -113.137) -/-: 0.0\n    test 214 forward 318N (59.452, -107.061) -/-: -3391492.622467, 11093528.387239, -109.604086, 1.14345\n    test 215 reverse 318N (59.452, -107.061) -/-: 1.5888218580782548e-14\n    test 216 forward 321N (62.172, -100.691) -/-: -3168362.707459, 10621853.317461, -102.04623, 1.124739\n    test 217 reverse 321N (62.172, -100.691) -/-: 7.105427357601002e-15\n    test 218 forward 324N (64.721, -94.046) -/-: -2908348.733697, 10210857.598605, -94.471204, 1.104695\n    test 219 reverse 324N (64.721, -94.046) -/-: 0.0\n    test 220 forward 327N (67.094, -87.142) -/-: -2623368.28288, 9863301.12097, -86.898617, 1.084836\n    test 221 reverse 327N (67.094, -87.142) -/-: 0.0\n    test 222 forward 330N (69.282, -80.000) -/-: -2325015.074835, 9578621.128889, -79.325231, 1.066355\n    test 223 reverse 330N (69.282, -80.000) -/-: 2.842170943040401e-14\n    test 224 forward 333N (71.281, -72.638) -/-: -2023752.790526, 9353559.771346, -71.732868, 1.050046\n    test 225 reverse 333N (71.281, -72.638) -/-: 1.4210854715202004e-14\n    test 226 forward 336N (73.084, -65.078) -/-: -1728450.251911, 9182823.938232, -64.096558, 1.036319\n    test 227 reverse 336N (73.084, -65.078) -/-: 1.4210854715202004e-14\n    test 228 forward 339N (74.686, -57.339) -/-: -1446137.252018, 9059670.735504, -56.391495, 1.025259\n    test 229 reverse 339N (74.686, -57.339) -/-: 1.4210854715202004e-14\n    test 230 forward 342N (76.085, -49.443) -/-: -1181870.215451, 8976407.252949, -48.598167, 1.016714\n    test 231 reverse 342N (76.085, -49.443) -/-: 3.552713678800501e-14\n    test 232 forward 345N (77.274, -41.411) -/-: -938645.229361, 8924845.3123, -40.705476, 1.010384\n    test 233 reverse 345N (77.274, -41.411) -/-: 0.0\n    test 234 forward 348N (78.252, -33.266) -/-: -717349.637417, 8896761.249834, -32.712011, 1.005894\n    test 235 reverse 348N (78.252, -33.266) -/-: 2.5618982671915014e-14\n    test 236 forward 351N (79.015, -25.030) -/-: -516782.400098, 8884389.933155, -24.625783, 1.002865\n    test 237 reverse 351N (79.015, -25.030) -/-: 2.842170943040401e-14\n    test 238 forward 354N (79.562, -16.725) -/-: -333788.634116, 8880946.730424, -16.462884, 1.000962\n    test 239 reverse 354N (79.562, -16.725) -/-: 1.0658141036401503e-14\n    test 240 forward 357N (79.890, -8.374) -/-: -163544.38007, 8881136.361771, -8.245542, 0.999927\n    test 241 reverse 357N (79.890, -8.374) -/-: 1.7763568394002505e-15\n    test 242 forward 360N (80.000, 0.000) -/-: 0.0, 8881585.815988, 0.0, 0.9996\n    test 243 reverse 360N (80.000, 0.000) -/-: 0.0\n    test 244 max: 5.684341886080802e-14  FAILED, KNOWN, expected 6e-14\n\n    test 245 forward: 6208422.5374, 5452954.287187, 41.077484, 1.511911\n    test 246 reverse: 30.244228, 60.169664, 41.479185, 1.510346\n\n    test 247 _TM: KTransverseMercator(ellipsoid=Ellipsoid(name='Sphere', a=6371008.771415, f=0, f_=0, b=6371008.771415), k0=0.9996, TMorder=4)\n    test 248 forward 0N (80.000, 0.000) -/-: 0.0, 8892048.136219, 0.0, 0.9996\n    test 249 reverse 0N (80.000, 0.000) -/-: 0.0\n    test 250 forward 3N (79.890, 8.374) -/-: 162830.781916, 8891598.152508, 8.245541, 0.999927\n    test 251 reverse 3N (79.890, 8.374) -/-: 3.552713678800501e-15\n    test 252 forward 6N (79.562, 16.725) -/-: 332334.438121, 8891401.702739, 16.462875, 1.000961\n    test 253 reverse 6N (79.562, 16.725) -/-: 3.552713678800501e-15\n    test 254 forward 9N (79.015, 25.030) -/-: 514536.969405, 8894816.626946, 24.625748, 1.002864\n    test 255 reverse 9N (79.015, 25.030) -/-: 3.552713678800501e-15\n    test 256 forward 12N (78.252, 33.266) -/-: 714245.109628, 8907114.580812, 32.711919, 1.005893\n    test 257 reverse 12N (78.252, 33.266) -/-: 1.4210854715202004e-14\n    test 258 forward 15N (77.274, 41.411) -/-: 934605.427053, 8935050.398758, 40.705275, 1.010384\n    test 259 reverse 15N (77.274, 41.411) -/-: 2.1316282072803006e-14\n    test 260 forward 18N (76.085, 49.443) -/-: 1176821.393989, 8986356.098856, 48.597784, 1.016715\n    test 261 reverse 18N (76.085, 49.443) -/-: 7.105427357601002e-15\n    test 262 forward 21N (74.686, 57.339) -/-: 1440020.023752, 9069222.197918, 56.390849, 1.025263\n    test 263 reverse 21N (74.686, 57.339) -/-: 2.0097183471152322e-14\n    test 264 forward 24N (73.084, 65.078) -/-: 1721232.03303, 9191807.409386, 64.095597, 1.036332\n    test 265 reverse 24N (73.084, 65.078) -/-: 4.4938668397781776e-14\n    test 266 forward 27N (71.281, 72.638) -/-: 2015439.94304, 9361783.139474, 71.731644, 1.050076\n    test 267 reverse 27N (71.281, 72.638) -/-: 0.0\n    test 268 forward 30N (69.282, 80.000) -/-: 2315663.380439, 9585883.63353, 79.324018, 1.066413\n    test 269 reverse 30N (69.282, 80.000) -/-: 1.4210854715202004e-14\n    test 270 forward 33N (67.094, 87.142) -/-: 2613089.50746, 9869411.258858, 86.898056, 1.084934\n    test 271 reverse 33N (67.094, 87.142) -/-: 1.4210854715202004e-14\n    test 272 forward 36N (64.721, 94.046) -/-: 2897310.302591, 10215654.794479, 94.472414, 1.104843\n    test 273 reverse 36N (64.721, 94.046) -/-: 4.263256414560601e-14\n    test 274 forward 39N (62.172, 100.691) -/-: 3156777.9732, 10625229.653451, 102.050793, 1.12494\n    test 275 reverse 39N (62.172, 100.691) -/-: 7.105427357601002e-15\n    test 276 forward 42N (59.452, 107.061) -/-: 3379601.994821, 11095444.501021, 109.613799, 1.143688\n    test 277 reverse 42N (59.452, 107.061) -/-: 1.5888218580782548e-14\n    test 278 forward 45N (56.569, 113.137) -/-: 3554744.82183, 11619912.294696, 117.113212, 1.159405\n    test 279 reverse 45N (56.569, 113.137) -/-: 7.105427357601002e-15\n    test 280 forward 48N (53.530, 118.903) -/-: 3673507.549162, 12188686.186502, 124.471401, 1.170561\n    test 281 reverse 48N (53.530, 118.903) -/-: 1.4210854715202004e-14\n    test 282 forward 51N (50.346, 124.343) -/-: 3730980.59573, 12789121.454112, 131.587794, 1.176106\n    test 283 reverse 51N (50.346, 124.343) -/-: 1.4210854715202004e-14\n    test 284 forward 54N (47.023, 129.443) -/-: 3727003.760242, 13407411.821957, 138.351947, 1.175719\n    test 285 reverse 54N (47.023, 129.443) -/-: 7.105427357601002e-15\n    test 286 forward 57N (43.571, 134.187) -/-: 3666275.084648, 14030431.844036, 144.659906, 1.16987\n    test 287 reverse 57N (43.571, 134.187) -/-: 0.0\n    test 288 forward 60N (40.000, 138.564) -/-: 3557564.445775, 14647347.719581, 150.428973, 1.159665\n    test 289 reverse 60N (40.000, 138.564) -/-: 7.105427357601002e-15\n    test 290 forward 63N (36.319, 142.561) -/-: 3412334.48396, 15250567.642625, 155.606964, 1.146559\n    test 291 reverse 63N (36.319, 142.561) -/-: 0.0\n    test 292 forward 66N (32.539, 146.167) -/-: 3243229.892204, 15835907.12812, 160.174784, 1.132049\n    test 293 reverse 66N (32.539, 146.167) -/-: 3.1776437161565096e-14\n    test 294 forward 69N (28.669, 149.373) -/-: 3062811.744735, 16402134.803105, 164.143685, 1.117448\n    test 295 reverse 69N (28.669, 149.373) -/-: 3.552713678800501e-15\n    test 296 forward 72N (24.721, 152.169) -/-: 2882703.816659, 16950195.447611, 167.549757, 1.103767\n    test 297 reverse 72N (24.721, 152.169) -/-: 0.0\n    test 298 forward 75N (20.706, 154.548) -/-: 2713130.658999, 17482381.525728, 170.447906, 1.091693\n    test 299 reverse 75N (20.706, 154.548) -/-: 1.0658141036401503e-14\n    test 300 forward 78N (16.633, 156.504) -/-: 2562732.651149, 18001625.534999, 172.906642, 1.081633\n    test 301 reverse 78N (16.633, 156.504) -/-: 7.105427357601002e-15\n    test 302 forward 81N (12.515, 158.030) -/-: 2438532.075646, 18510987.984533, 175.004113, 1.07378\n    test 303 reverse 81N (12.515, 158.030) -/-: 3.552713678800501e-15\n    test 304 forward 84N (8.362, 159.124) -/-: 2345956.628332, 19013350.872509, 176.82525, 1.068192\n    test 305 reverse 84N (8.362, 159.124) -/-: 8.881784197001252e-15\n    test 306 forward 87N (4.187, 159.781) -/-: 2288868.720832, 19511292.939628, 178.459673, 1.064859\n    test 307 reverse 87N (4.187, 159.781) -/-: 1.9539925233402755e-14\n    test 308 forward 90N (0.000, 160.000) -/-: 2269582.383311, -20007108.306493, -180.0, 1.063752\n    test 309 reverse 90N (0.000, 160.000) -/-: 0.0\n    test 310 forward 93N (-4.187, 159.781) -/-: 2288868.720832, -19511292.939628, -178.459673, 1.064859\n    test 311 reverse 93N (-4.187, 159.781) -/-: 3.019806626980426e-14\n    test 312 forward 96N (-8.362, 159.124) -/-: 2345956.628332, -19013350.872509, -176.82525, 1.068192\n    test 313 reverse 96N (-8.362, 159.124) -/-: 1.0658141036401503e-14\n    test 314 forward 99N (-12.515, 158.030) -/-: 2438532.075646, -18510987.984533, -175.004113, 1.07378\n    test 315 reverse 99N (-12.515, 158.030) -/-: 8.881784197001252e-15\n    test 316 forward 102N (-16.633, 156.504) -/-: 2562732.651149, -18001625.534999, -172.906642, 1.081633\n    test 317 reverse 102N (-16.633, 156.504) -/-: 3.552713678800501e-15\n    test 318 forward 105N (-20.706, 154.548) -/-: 2713130.658999, -17482381.525728, -170.447906, 1.091693\n    test 319 reverse 105N (-20.706, 154.548) -/-: 1.0658141036401503e-14\n    test 320 forward 108N (-24.721, 152.169) -/-: 2882703.816659, -16950195.447611, -167.549757, 1.103767\n    test 321 reverse 108N (-24.721, 152.169) -/-: 3.552713678800501e-15\n    test 322 forward 111N (-28.669, 149.373) -/-: 3062811.744735, -16402134.803105, -164.143685, 1.117448\n    test 323 reverse 111N (-28.669, 149.373) -/-: 1.0658141036401503e-14\n    test 324 forward 114N (-32.539, 146.167) -/-: 3243229.892204, -15835907.12812, -160.174784, 1.132049\n    test 325 reverse 114N (-32.539, 146.167) -/-: 3.1776437161565096e-14\n    test 326 forward 117N (-36.319, 142.561) -/-: 3412334.48396, -15250567.642625, -155.606964, 1.146559\n    test 327 reverse 117N (-36.319, 142.561) -/-: 0.0\n    test 328 forward 120N (-40.000, 138.564) -/-: 3557564.445775, -14647347.719581, -150.428973, 1.159665\n    test 329 reverse 120N (-40.000, 138.564) -/-: 0.0\n    test 330 forward 123N (-43.571, 134.187) -/-: 3666275.084648, -14030431.844036, -144.659906, 1.16987\n    test 331 reverse 123N (-43.571, 134.187) -/-: 0.0\n    test 332 forward 126N (-47.023, 129.443) -/-: 3727003.760242, -13407411.821957, -138.351947, 1.175719\n    test 333 reverse 126N (-47.023, 129.443) -/-: 7.105427357601002e-15\n    test 334 forward 129N (-50.346, 124.343) -/-: 3730980.59573, -12789121.454112, -131.587794, 1.176106\n    test 335 reverse 129N (-50.346, 124.343) -/-: 1.4210854715202004e-14\n    test 336 forward 132N (-53.530, 118.903) -/-: 3673507.549162, -12188686.186502, -124.471401, 1.170561\n    test 337 reverse 132N (-53.530, 118.903) -/-: 1.4210854715202004e-14\n    test 338 forward 135N (-56.569, 113.137) -/-: 3554744.82183, -11619912.294696, -117.113212, 1.159405\n    test 339 reverse 135N (-56.569, 113.137) -/-: 7.105427357601002e-15\n    test 340 forward 138N (-59.452, 107.061) -/-: 3379601.994821, -11095444.501021, -109.613799, 1.143688\n    test 341 reverse 138N (-59.452, 107.061) -/-: 1.5888218580782548e-14\n    test 342 forward 141N (-62.172, 100.691) -/-: 3156777.9732, -10625229.653451, -102.050793, 1.12494\n    test 343 reverse 141N (-62.172, 100.691) -/-: 7.105427357601002e-15\n    test 344 forward 144N (-64.721, 94.046) -/-: 2897310.302591, -10215654.794479, -94.472414, 1.104843\n    test 345 reverse 144N (-64.721, 94.046) -/-: 4.263256414560601e-14\n    test 346 forward 147N (-67.094, 87.142) -/-: 2613089.50746, -9869411.258858, -86.898056, 1.084934\n    test 347 reverse 147N (-67.094, 87.142) -/-: 1.4210854715202004e-14\n    test 348 forward 150N (-69.282, 80.000) -/-: 2315663.380439, -9585883.63353, -79.324018, 1.066413\n    test 349 reverse 150N (-69.282, 80.000) -/-: 2.842170943040401e-14\n    test 350 forward 153N (-71.281, 72.638) -/-: 2015439.94304, -9361783.139474, -71.731644, 1.050076\n    test 351 reverse 153N (-71.281, 72.638) -/-: 0.0\n    test 352 forward 156N (-73.084, 65.078) -/-: 1721232.03303, -9191807.409386, -64.095597, 1.036332\n    test 353 reverse 156N (-73.084, 65.078) -/-: 4.4938668397781776e-14\n    test 354 forward 159N (-74.686, 57.339) -/-: 1440020.023752, -9069222.197918, -56.390849, 1.025263\n    test 355 reverse 159N (-74.686, 57.339) -/-: 7.105427357601002e-15\n    test 356 forward 162N (-76.085, 49.443) -/-: 1176821.393989, -8986356.098856, -48.597784, 1.016715\n    test 357 reverse 162N (-76.085, 49.443) -/-: 7.105427357601002e-15\n    test 358 forward 165N (-77.274, 41.411) -/-: 934605.427053, -8935050.398758, -40.705275, 1.010384\n    test 359 reverse 165N (-77.274, 41.411) -/-: 2.1316282072803006e-14\n    test 360 forward 168N (-78.252, 33.266) -/-: 714245.109628, -8907114.580812, -32.711919, 1.005893\n    test 361 reverse 168N (-78.252, 33.266) -/-: 1.4210854715202004e-14\n    test 362 forward 171N (-79.015, 25.030) -/-: 514536.969405, -8894816.626946, -24.625748, 1.002864\n    test 363 reverse 171N (-79.015, 25.030) -/-: 3.552713678800501e-15\n    test 364 forward 174N (-79.562, 16.725) -/-: 332334.438121, -8891401.702739, -16.462875, 1.000961\n    test 365 reverse 174N (-79.562, 16.725) -/-: 3.552713678800501e-15\n    test 366 forward 177N (-79.890, 8.374) -/-: 162830.781916, -8891598.152508, -8.245541, 0.999927\n    test 367 reverse 177N (-79.890, 8.374) -/-: 1.7763568394002505e-15\n    test 368 forward 180N (-80.000, 0.000) -/-: 0.0, -8892048.136219, 0.0, 0.9996\n    test 369 reverse 180N (-80.000, 0.000) -/-: 0.0\n    test 370 forward 183N (-79.890, -8.374) -/-: -162830.781916, -8891598.152508, 8.245541, 0.999927\n    test 371 reverse 183N (-79.890, -8.374) -/-: 3.552713678800501e-15\n    test 372 forward 186N (-79.562, -16.725) -/-: -332334.438121, -8891401.702739, 16.462875, 1.000961\n    test 373 reverse 186N (-79.562, -16.725) -/-: 3.552713678800501e-15\n    test 374 forward 189N (-79.015, -25.030) -/-: -514536.969405, -8894816.626946, 24.625748, 1.002864\n    test 375 reverse 189N (-79.015, -25.030) -/-: 3.552713678800501e-15\n    test 376 forward 192N (-78.252, -33.266) -/-: -714245.109628, -8907114.580812, 32.711919, 1.005893\n    test 377 reverse 192N (-78.252, -33.266) -/-: 1.4210854715202004e-14\n    test 378 forward 195N (-77.274, -41.411) -/-: -934605.427053, -8935050.398758, 40.705275, 1.010384\n    test 379 reverse 195N (-77.274, -41.411) -/-: 2.1316282072803006e-14\n    test 380 forward 198N (-76.085, -49.443) -/-: -1176821.393989, -8986356.098856, 48.597784, 1.016715\n    test 381 reverse 198N (-76.085, -49.443) -/-: 7.105427357601002e-15\n    test 382 forward 201N (-74.686, -57.339) -/-: -1440020.023752, -9069222.197918, 56.390849, 1.025263\n    test 383 reverse 201N (-74.686, -57.339) -/-: 2.0097183471152322e-14\n    test 384 forward 204N (-73.084, -65.078) -/-: -1721232.03303, -9191807.409386, 64.095597, 1.036332\n    test 385 reverse 204N (-73.084, -65.078) -/-: 4.4938668397781776e-14\n    test 386 forward 207N (-71.281, -72.638) -/-: -2015439.94304, -9361783.139474, 71.731644, 1.050076\n    test 387 reverse 207N (-71.281, -72.638) -/-: 0.0\n    test 388 forward 210N (-69.282, -80.000) -/-: -2315663.380439, -9585883.63353, 79.324018, 1.066413\n    test 389 reverse 210N (-69.282, -80.000) -/-: 1.4210854715202004e-14\n    test 390 forward 213N (-67.094, -87.142) -/-: -2613089.50746, -9869411.258858, 86.898056, 1.084934\n    test 391 reverse 213N (-67.094, -87.142) -/-: 1.4210854715202004e-14\n    test 392 forward 216N (-64.721, -94.046) -/-: -2897310.302591, -10215654.794479, 94.472414, 1.104843\n    test 393 reverse 216N (-64.721, -94.046) -/-: 4.263256414560601e-14\n    test 394 forward 219N (-62.172, -100.691) -/-: -3156777.9732, -10625229.653451, 102.050793, 1.12494\n    test 395 reverse 219N (-62.172, -100.691) -/-: 7.105427357601002e-15\n    test 396 forward 222N (-59.452, -107.061) -/-: -3379601.994821, -11095444.501021, 109.613799, 1.143688\n    test 397 reverse 222N (-59.452, -107.061) -/-: 1.5888218580782548e-14\n    test 398 forward 225N (-56.569, -113.137) -/-: -3554744.82183, -11619912.294696, 117.113212, 1.159405\n    test 399 reverse 225N (-56.569, -113.137) -/-: 7.105427357601002e-15\n    test 400 forward 228N (-53.530, -118.903) -/-: -3673507.549162, -12188686.186502, 124.471401, 1.170561\n    test 401 reverse 228N (-53.530, -118.903) -/-: 1.4210854715202004e-14\n    test 402 forward 231N (-50.346, -124.343) -/-: -3730980.59573, -12789121.454112, 131.587794, 1.176106\n    test 403 reverse 231N (-50.346, -124.343) -/-: 1.4210854715202004e-14\n    test 404 forward 234N (-47.023, -129.443) -/-: -3727003.760242, -13407411.821957, 138.351947, 1.175719\n    test 405 reverse 234N (-47.023, -129.443) -/-: 7.105427357601002e-15\n    test 406 forward 237N (-43.571, -134.187) -/-: -3666275.084648, -14030431.844036, 144.659906, 1.16987\n    test 407 reverse 237N (-43.571, -134.187) -/-: 0.0\n    test 408 forward 240N (-40.000, -138.564) -/-: -3557564.445775, -14647347.719581, 150.428973, 1.159665\n    test 409 reverse 240N (-40.000, -138.564) -/-: 7.105427357601002e-15\n    test 410 forward 243N (-36.319, -142.561) -/-: -3412334.48396, -15250567.642625, 155.606964, 1.146559\n    test 411 reverse 243N (-36.319, -142.561) -/-: 0.0\n    test 412 forward 246N (-32.539, -146.167) -/-: -3243229.892204, -15835907.12812, 160.174784, 1.132049\n    test 413 reverse 246N (-32.539, -146.167) -/-: 3.1776437161565096e-14\n    test 414 forward 249N (-28.669, -149.373) -/-: -3062811.744735, -16402134.803105, 164.143685, 1.117448\n    test 415 reverse 249N (-28.669, -149.373) -/-: 3.552713678800501e-15\n    test 416 forward 252N (-24.721, -152.169) -/-: -2882703.816659, -16950195.447611, 167.549757, 1.103767\n    test 417 reverse 252N (-24.721, -152.169) -/-: 0.0\n    test 418 forward 255N (-20.706, -154.548) -/-: -2713130.658999, -17482381.525728, 170.447906, 1.091693\n    test 419 reverse 255N (-20.706, -154.548) -/-: 1.0658141036401503e-14\n    test 420 forward 258N (-16.633, -156.504) -/-: -2562732.651149, -18001625.534999, 172.906642, 1.081633\n    test 421 reverse 258N (-16.633, -156.504) -/-: 7.105427357601002e-15\n    test 422 forward 261N (-12.515, -158.030) -/-: -2438532.075646, -18510987.984533, 175.004113, 1.07378\n    test 423 reverse 261N (-12.515, -158.030) -/-: 3.552713678800501e-15\n    test 424 forward 264N (-8.362, -159.124) -/-: -2345956.628332, -19013350.872509, 176.82525, 1.068192\n    test 425 reverse 264N (-8.362, -159.124) -/-: 8.881784197001252e-15\n    test 426 forward 267N (-4.187, -159.781) -/-: -2288868.720832, -19511292.939628, 178.459673, 1.064859\n    test 427 reverse 267N (-4.187, -159.781) -/-: 1.9539925233402755e-14\n    test 428 forward 270N (0.000, -160.000) -/-: -2269582.383311, -20007108.306493, 180.0, 1.063752\n    test 429 reverse 270N (0.000, -160.000) -/-: 0.0\n    test 430 forward 273N (4.187, -159.781) -/-: -2288868.720832, 19511292.939628, -178.459673, 1.064859\n    test 431 reverse 273N (4.187, -159.781) -/-: 3.019806626980426e-14\n    test 432 forward 276N (8.362, -159.124) -/-: -2345956.628332, 19013350.872509, -176.82525, 1.068192\n    test 433 reverse 276N (8.362, -159.124) -/-: 1.0658141036401503e-14\n    test 434 forward 279N (12.515, -158.030) -/-: -2438532.075646, 18510987.984533, -175.004113, 1.07378\n    test 435 reverse 279N (12.515, -158.030) -/-: 8.881784197001252e-15\n    test 436 forward 282N (16.633, -156.504) -/-: -2562732.651149, 18001625.534999, -172.906642, 1.081633\n    test 437 reverse 282N (16.633, -156.504) -/-: 3.552713678800501e-15\n    test 438 forward 285N (20.706, -154.548) -/-: -2713130.658999, 17482381.525728, -170.447906, 1.091693\n    test 439 reverse 285N (20.706, -154.548) -/-: 1.0658141036401503e-14\n    test 440 forward 288N (24.721, -152.169) -/-: -2882703.816659, 16950195.447611, -167.549757, 1.103767\n    test 441 reverse 288N (24.721, -152.169) -/-: 3.552713678800501e-15\n    test 442 forward 291N (28.669, -149.373) -/-: -3062811.744735, 16402134.803105, -164.143685, 1.117448\n    test 443 reverse 291N (28.669, -149.373) -/-: 1.0658141036401503e-14\n    test 444 forward 294N (32.539, -146.167) -/-: -3243229.892204, 15835907.12812, -160.174784, 1.132049\n    test 445 reverse 294N (32.539, -146.167) -/-: 3.1776437161565096e-14\n    test 446 forward 297N (36.319, -142.561) -/-: -3412334.48396, 15250567.642625, -155.606964, 1.146559\n    test 447 reverse 297N (36.319, -142.561) -/-: 0.0\n    test 448 forward 300N (40.000, -138.564) -/-: -3557564.445775, 14647347.719581, -150.428973, 1.159665\n    test 449 reverse 300N (40.000, -138.564) -/-: 0.0\n    test 450 forward 303N (43.571, -134.187) -/-: -3666275.084648, 14030431.844036, -144.659906, 1.16987\n    test 451 reverse 303N (43.571, -134.187) -/-: 0.0\n    test 452 forward 306N (47.023, -129.443) -/-: -3727003.760242, 13407411.821957, -138.351947, 1.175719\n    test 453 reverse 306N (47.023, -129.443) -/-: 7.105427357601002e-15\n    test 454 forward 309N (50.346, -124.343) -/-: -3730980.59573, 12789121.454112, -131.587794, 1.176106\n    test 455 reverse 309N (50.346, -124.343) -/-: 1.4210854715202004e-14\n    test 456 forward 312N (53.530, -118.903) -/-: -3673507.549162, 12188686.186502, -124.471401, 1.170561\n    test 457 reverse 312N (53.530, -118.903) -/-: 1.4210854715202004e-14\n    test 458 forward 315N (56.569, -113.137) -/-: -3554744.82183, 11619912.294696, -117.113212, 1.159405\n    test 459 reverse 315N (56.569, -113.137) -/-: 7.105427357601002e-15\n    test 460 forward 318N (59.452, -107.061) -/-: -3379601.994821, 11095444.501021, -109.613799, 1.143688\n    test 461 reverse 318N (59.452, -107.061) -/-: 1.5888218580782548e-14\n    test 462 forward 321N (62.172, -100.691) -/-: -3156777.9732, 10625229.653451, -102.050793, 1.12494\n    test 463 reverse 321N (62.172, -100.691) -/-: 7.105427357601002e-15\n    test 464 forward 324N (64.721, -94.046) -/-: -2897310.302591, 10215654.794479, -94.472414, 1.104843\n    test 465 reverse 324N (64.721, -94.046) -/-: 4.263256414560601e-14\n    test 466 forward 327N (67.094, -87.142) -/-: -2613089.50746, 9869411.258858, -86.898056, 1.084934\n    test 467 reverse 327N (67.094, -87.142) -/-: 1.4210854715202004e-14\n    test 468 forward 330N (69.282, -80.000) -/-: -2315663.380439, 9585883.63353, -79.324018, 1.066413\n    test 469 reverse 330N (69.282, -80.000) -/-: 2.842170943040401e-14\n    test 470 forward 333N (71.281, -72.638) -/-: -2015439.94304, 9361783.139474, -71.731644, 1.050076\n    test 471 reverse 333N (71.281, -72.638) -/-: 0.0\n    test 472 forward 336N (73.084, -65.078) -/-: -1721232.03303, 9191807.409386, -64.095597, 1.036332\n    test 473 reverse 336N (73.084, -65.078) -/-: 4.4938668397781776e-14\n    test 474 forward 339N (74.686, -57.339) -/-: -1440020.023752, 9069222.197918, -56.390849, 1.025263\n    test 475 reverse 339N (74.686, -57.339) -/-: 7.105427357601002e-15\n    test 476 forward 342N (76.085, -49.443) -/-: -1176821.393989, 8986356.098856, -48.597784, 1.016715\n    test 477 reverse 342N (76.085, -49.443) -/-: 7.105427357601002e-15\n    test 478 forward 345N (77.274, -41.411) -/-: -934605.427053, 8935050.398758, -40.705275, 1.010384\n    test 479 reverse 345N (77.274, -41.411) -/-: 2.1316282072803006e-14\n    test 480 forward 348N (78.252, -33.266) -/-: -714245.109628, 8907114.580812, -32.711919, 1.005893\n    test 481 reverse 348N (78.252, -33.266) -/-: 1.4210854715202004e-14\n    test 482 forward 351N (79.015, -25.030) -/-: -514536.969405, 8894816.626946, -24.625748, 1.002864\n    test 483 reverse 351N (79.015, -25.030) -/-: 3.552713678800501e-15\n    test 484 forward 354N (79.562, -16.725) -/-: -332334.438121, 8891401.702739, -16.462875, 1.000961\n    test 485 reverse 354N (79.562, -16.725) -/-: 3.552713678800501e-15\n    test 486 forward 357N (79.890, -8.374) -/-: -162830.781916, 8891598.152508, -8.245541, 0.999927\n    test 487 reverse 357N (79.890, -8.374) -/-: 1.7763568394002505e-15\n    test 488 forward 360N (80.000, 0.000) -/-: 0.0, 8892048.136219, 0.0, 0.9996\n    test 489 reverse 360N (80.000, 0.000) -/-: 0.0\n    test 490 max: 4.4938668397781776e-14  FAILED, KNOWN, expected 5e-14\n\n    test 491 forward: 6196225.831883, 5458228.732328, 40.893395, 1.511253\n    test 492 reverse: 30.172556, 60.208316, 41.279729, 1.511925\n\n    test 493 _TM: ExactTransverseMercator(datum='WGS84', extendp=False, k0=0.9996, lon0=0.0)\n# lazily imported pygeodesy.elliptic by etm.py line 354\n    test 494 forward 0N (80.000, 0.000) 3/3: 0.0, 8881585.815988, 0.0, 0.9996\n    test 495 reverse 0N (80.000, 0.000) 3/3: 0.0\n    test 496 forward 3N (79.890, 8.374) 3/4: 163544.38007, 8881136.361771, 8.245542, 0.999927\n    test 497 reverse 3N (79.890, 8.374) 3/3: 5.123796534383003e-14\n    test 498 forward 6N (79.562, 16.725) 3/4: 333788.634116, 8880946.730424, 16.462884, 1.000962\n    test 499 reverse 6N (79.562, 16.725) 3/3: 6.039613253960852e-14\n    test 500 forward 9N (79.015, 25.030) 3/4: 516782.400098, 8884389.933155, 24.625783, 1.002865\n    test 501 reverse 9N (79.015, 25.030) 3/3: 1.5888218580782548e-14\n    test 502 forward 12N (78.252, 33.266) 3/4: 717349.637417, 8896761.249834, 32.712011, 1.005894\n    test 503 reverse 12N (78.252, 33.266) 3/3: 1.4210854715202004e-14\n    test 504 forward 15N (77.274, 41.411) 3/4: 938645.229361, 8924845.3123, 40.705476, 1.010384\n    test 505 reverse 15N (77.274, 41.411) 3/3: 4.4938668397781776e-14\n    test 506 forward 18N (76.085, 49.443) 3/4: 1181870.215451, 8976407.252949, 48.598167, 1.016714\n    test 507 reverse 18N (76.085, 49.443) 3/3: 7.105427357601002e-15\n    test 508 forward 21N (74.686, 57.339) 3/4: 1446137.252018, 9059670.735504, 56.391495, 1.025259\n    test 509 reverse 21N (74.686, 57.339) 3/3: 7.944109290391274e-14\n    test 510 forward 24N (73.084, 65.078) 3/4: 1728450.251911, 9182823.938232, 64.096558, 1.036319\n    test 511 reverse 24N (73.084, 65.078) 3/3: 1.4210854715202004e-14\n    test 512 forward 27N (71.281, 72.638) 3/4: 2023752.790526, 9353559.771346, 71.732868, 1.050046\n    test 513 reverse 27N (71.281, 72.638) 3/3: 2.842170943040401e-14\n    test 514 forward 30N (69.282, 80.000) 3/4: 2325015.074835, 9578621.128889, 79.325231, 1.066355\n    test 515 reverse 30N (69.282, 80.000) 3/4: 5.684341886080802e-14\n    test 516 forward 33N (67.094, 87.142) 3/4: 2623368.28288, 9863301.12097, 86.898617, 1.084836\n    test 517 reverse 33N (67.094, 87.142) 3/4: 1.4210854715202004e-14\n    test 518 forward 36N (64.721, 94.046) 3/4: 2908348.733697, 10210857.598605, 94.471204, 1.104695\n    test 519 reverse 36N (64.721, 94.046) 3/4: 1.4210854715202004e-14\n    test 520 forward 39N (62.172, 100.691) 3/4: 3168362.707459, 10621853.317461, 102.04623, 1.124739\n    test 521 reverse 39N (62.172, 100.691) 3/4: 2.929642751054232e-14\n    test 522 forward 42N (59.452, 107.061) 3/4: 3391492.622467, 11093528.387239, 109.604086, 1.14345\n    test 523 reverse 42N (59.452, 107.061) 3/4: 7.105427357601002e-15\n    test 524 forward 45N (56.569, 113.137) 3/4: 3566696.824822, 11619422.467571, 117.096854, 1.159166\n    test 525 reverse 45N (56.569, 113.137) 3/4: 2.0097183471152322e-14\n    test 526 forward 48N (53.530, 118.903) 3/4: 3685290.742854, 12189522.028618, 124.447841, 1.170375\n    test 527 reverse 48N (53.530, 118.903) 3/4: 2.842170943040401e-14\n    test 528 forward 51N (50.346, 124.343) 3/4: 3742386.824274, 12791126.616764, 131.557863, 1.176031\n    test 529 reverse 51N (50.346, 124.343) 3/4: 5.684341886080802e-14\n    test 530 forward 54N (47.023, 129.443) 3/4: 3737846.053669, 13410380.03778, 138.317827, 1.175799\n    test 531 reverse 54N (47.023, 129.443) 3/4: 4.0194366942304644e-14\n    test 532 forward 57N (43.571, 134.187) 3/4: 3676387.634221, 14034104.572541, 144.624552, 1.170121\n    test 533 reverse 57N (43.571, 134.187) 3/4: 0.0\n    test 534 forward 60N (40.000, 138.564) 3/4: 3566810.754496, 14651410.305646, 150.395289, 1.16007\n    test 535 reverse 60N (40.000, 138.564) 3/4: 1.4210854715202004e-14\n    test 536 forward 63N (36.319, 142.561) 3/4: 3420621.906486, 15254653.660248, 155.577129, 1.147079\n    test 537 reverse 63N (36.319, 142.561) 3/4: 7.105427357601002e-15\n    test 538 forward 66N (32.539, 146.167) 3/4: 3250522.133697, 15839614.666766, 160.149958, 1.132638\n    test 539 reverse 66N (32.539, 146.167) 3/4: 1.4210854715202004e-14\n    test 540 forward 69N (28.669, 149.373) 3/4: 3069132.144368, 16405050.640186, 164.124094, 1.118063\n    test 541 reverse 69N (28.669, 149.373) 3/4: 1.0658141036401503e-14\n    test 542 forward 72N (24.721, 152.169) 3/4: 2888128.173431, 16951919.948156, 167.534978, 1.104377\n    test 543 reverse 72N (24.721, 152.169) 3/4: 7.105427357601002e-15\n    test 544 forward 75N (20.706, 154.548) 3/4: 2717773.256417, 17482549.021439, 170.437193, 1.09228\n    test 545 reverse 75N (20.706, 154.548) 3/4: 3.552713678800501e-15\n    test 546 forward 78N (16.633, 156.504) 3/4: 2566730.586316, 17999918.486885, 172.899178, 1.082187\n    test 547 reverse 78N (16.633, 156.504) 3/4: 3.552713678800501e-15\n    test 548 forward 81N (12.515, 158.030) 3/4: 2442031.891673, 18507145.758, 174.99917, 1.074303\n    test 549 reverse 81N (12.515, 158.030) 3/4: 5.329070518200751e-15\n    test 550 forward 84N (8.362, 159.124) 3/4: 2349105.316925, 19007174.828239, 176.822266, 1.068689\n    test 551 reverse 84N (8.362, 159.124) 3/4: 8.881784197001252e-15\n    test 552 forward 87N (4.187, 159.781) 3/4: 2291809.478825, 19502649.329559, 178.458273, 1.06534\n    test 553 reverse 87N (4.187, 159.781) 3/4: 9.769962616701378e-15\n    test 554 forward 90N (0.000, 160.000) 3/4: 2272454.379192, -19995929.886042, -180.0, 1.064227\n    test 555 reverse 90N (0.000, 160.000) 3/3: 0.0\n    test 556 forward 93N (-4.187, 159.781) 3/4: 2291809.478825, -19502649.329559, -178.458273, 1.06534\n    test 557 reverse 93N (-4.187, 159.781) 3/4: 2.842170943040401e-14\n    test 558 forward 96N (-8.362, 159.124) 3/4: 2349105.316925, -19007174.828239, -176.822266, 1.068689\n    test 559 reverse 96N (-8.362, 159.124) 3/4: 1.0658141036401503e-14\n    test 560 forward 99N (-12.515, 158.030) 3/4: 2442031.891673, -18507145.758, -174.99917, 1.074303\n    test 561 reverse 99N (-12.515, 158.030) 3/4: 1.0658141036401503e-14\n    test 562 forward 102N (-16.633, 156.504) 3/4: 2566730.586316, -17999918.486885, -172.899178, 1.082187\n    test 563 reverse 102N (-16.633, 156.504) 3/4: 1.4210854715202004e-14\n    test 564 forward 105N (-20.706, 154.548) 3/4: 2717773.256417, -17482549.021439, -170.437193, 1.09228\n    test 565 reverse 105N (-20.706, 154.548) 3/4: 3.552713678800501e-15\n    test 566 forward 108N (-24.721, 152.169) 3/4: 2888128.173431, -16951919.948156, -167.534978, 1.104377\n    test 567 reverse 108N (-24.721, 152.169) 3/4: 1.7763568394002505e-14\n    test 568 forward 111N (-28.669, 149.373) 3/4: 3069132.144368, -16405050.640186, -164.124094, 1.118063\n    test 569 reverse 111N (-28.669, 149.373) 3/4: 7.105427357601002e-15\n    test 570 forward 114N (-32.539, 146.167) 3/4: 3250522.133697, -15839614.666766, -160.149958, 1.132638\n    test 571 reverse 114N (-32.539, 146.167) 3/4: 1.4210854715202004e-14\n    test 572 forward 117N (-36.319, 142.561) 3/4: 3420621.906486, -15254653.660248, -155.577129, 1.147079\n    test 573 reverse 117N (-36.319, 142.561) 3/4: 7.105427357601002e-15\n    test 574 forward 120N (-40.000, 138.564) 3/4: 3566810.754496, -14651410.305646, -150.395289, 1.16007\n    test 575 reverse 120N (-40.000, 138.564) 3/4: 7.105427357601002e-15\n    test 576 forward 123N (-43.571, 134.187) 3/4: 3676387.634221, -14034104.572541, -144.624552, 1.170121\n    test 577 reverse 123N (-43.571, 134.187) 3/4: 0.0\n    test 578 forward 126N (-47.023, 129.443) 3/4: 3737846.053669, -13410380.03778, -138.317827, 1.175799\n    test 579 reverse 126N (-47.023, 129.443) 3/4: 4.0194366942304644e-14\n    test 580 forward 129N (-50.346, 124.343) 3/4: 3742386.824274, -12791126.616764, -131.557863, 1.176031\n    test 581 reverse 129N (-50.346, 124.343) 3/4: 5.684341886080802e-14\n    test 582 forward 132N (-53.530, 118.903) 3/4: 3685290.742854, -12189522.028618, -124.447841, 1.170375\n    test 583 reverse 132N (-53.530, 118.903) 3/4: 2.842170943040401e-14\n    test 584 forward 135N (-56.569, 113.137) 3/4: 3566696.824822, -11619422.467571, -117.096854, 1.159166\n    test 585 reverse 135N (-56.569, 113.137) 3/4: 2.0097183471152322e-14\n    test 586 forward 138N (-59.452, 107.061) 3/4: 3391492.622467, -11093528.387239, -109.604086, 1.14345\n    test 587 reverse 138N (-59.452, 107.061) 3/4: 7.105427357601002e-15\n    test 588 forward 141N (-62.172, 100.691) 3/4: 3168362.707459, -10621853.317461, -102.04623, 1.124739\n    test 589 reverse 141N (-62.172, 100.691) 3/4: 2.929642751054232e-14\n    test 590 forward 144N (-64.721, 94.046) 3/4: 2908348.733697, -10210857.598605, -94.471204, 1.104695\n    test 591 reverse 144N (-64.721, 94.046) 3/4: 1.4210854715202004e-14\n    test 592 forward 147N (-67.094, 87.142) 3/4: 2623368.28288, -9863301.12097, -86.898617, 1.084836\n    test 593 reverse 147N (-67.094, 87.142) 3/4: 1.4210854715202004e-14\n    test 594 forward 150N (-69.282, 80.000) 3/4: 2325015.074835, -9578621.128889, -79.325231, 1.066355\n    test 595 reverse 150N (-69.282, 80.000) 3/4: 7.105427357601002e-14\n    test 596 forward 153N (-71.281, 72.638) 3/4: 2023752.790526, -9353559.771346, -71.732868, 1.050046\n    test 597 reverse 153N (-71.281, 72.638) 3/3: 2.842170943040401e-14\n    test 598 forward 156N (-73.084, 65.078) 3/4: 1728450.251911, -9182823.938232, -64.096558, 1.036319\n    test 599 reverse 156N (-73.084, 65.078) 3/3: 1.4210854715202004e-14\n    test 600 forward 159N (-74.686, 57.339) 3/4: 1446137.252018, -9059670.735504, -56.391495, 1.025259\n    test 601 reverse 159N (-74.686, 57.339) 3/3: 5.859285502108464e-14\n    test 602 forward 162N (-76.085, 49.443) 3/4: 1181870.215451, -8976407.252949, -48.598167, 1.016714\n    test 603 reverse 162N (-76.085, 49.443) 3/3: 0.0\n    test 604 forward 165N (-77.274, 41.411) 3/4: 938645.229361, -8924845.3123, -40.705476, 1.010384\n    test 605 reverse 165N (-77.274, 41.411) 3/3: 4.4938668397781776e-14\n    test 606 forward 168N (-78.252, 33.266) 3/4: 717349.637417, -8896761.249834, -32.712011, 1.005894\n    test 607 reverse 168N (-78.252, 33.266) 3/3: 3.1776437161565096e-14\n    test 608 forward 171N (-79.015, 25.030) 3/4: 516782.400098, -8884389.933155, -24.625783, 1.002865\n    test 609 reverse 171N (-79.015, 25.030) 3/3: 1.4210854715202004e-14\n    test 610 forward 174N (-79.562, 16.725) 3/4: 333788.634116, -8880946.730424, -16.462884, 1.000962\n    test 611 reverse 174N (-79.562, 16.725) 3/3: 5.728578676879116e-14\n    test 612 forward 177N (-79.890, 8.374) 3/4: 163544.38007, -8881136.361771, -8.245542, 0.999927\n    test 613 reverse 177N (-79.890, 8.374) 3/3: 5.224422199693188e-14\n    test 614 forward 180N (-80.000, 0.000) 3/3: 0.0, -8881585.815988, 0.0, 0.9996\n    test 615 reverse 180N (-80.000, 0.000) 3/3: 0.0\n    test 616 forward 183N (-79.890, -8.374) 3/4: -163544.38007, -8881136.361771, 8.245542, 0.999927\n    test 617 reverse 183N (-79.890, -8.374) 3/3: 5.123796534383003e-14\n    test 618 forward 186N (-79.562, -16.725) 3/4: -333788.634116, -8880946.730424, 16.462884, 1.000962\n    test 619 reverse 186N (-79.562, -16.725) 3/3: 6.039613253960852e-14\n    test 620 forward 189N (-79.015, -25.030) 3/4: -516782.400098, -8884389.933155, 24.625783, 1.002865\n    test 621 reverse 189N (-79.015, -25.030) 3/3: 1.5888218580782548e-14\n    test 622 forward 192N (-78.252, -33.266) 3/4: -717349.637417, -8896761.249834, 32.712011, 1.005894\n    test 623 reverse 192N (-78.252, -33.266) 3/3: 1.4210854715202004e-14\n    test 624 forward 195N (-77.274, -41.411) 3/4: -938645.229361, -8924845.3123, 40.705476, 1.010384\n    test 625 reverse 195N (-77.274, -41.411) 3/3: 4.4938668397781776e-14\n    test 626 forward 198N (-76.085, -49.443) 3/4: -1181870.215451, -8976407.252949, 48.598167, 1.016714\n    test 627 reverse 198N (-76.085, -49.443) 3/3: 7.105427357601002e-15\n    test 628 forward 201N (-74.686, -57.339) 3/4: -1446137.252018, -9059670.735504, 56.391495, 1.025259\n    test 629 reverse 201N (-74.686, -57.339) 3/3: 7.944109290391274e-14\n    test 630 forward 204N (-73.084, -65.078) 3/4: -1728450.251911, -9182823.938232, 64.096558, 1.036319\n    test 631 reverse 204N (-73.084, -65.078) 3/3: 1.4210854715202004e-14\n    test 632 forward 207N (-71.281, -72.638) 3/4: -2023752.790526, -9353559.771346, 71.732868, 1.050046\n    test 633 reverse 207N (-71.281, -72.638) 3/3: 2.842170943040401e-14\n    test 634 forward 210N (-69.282, -80.000) 3/4: -2325015.074835, -9578621.128889, 79.325231, 1.066355\n    test 635 reverse 210N (-69.282, -80.000) 3/4: 5.684341886080802e-14\n    test 636 forward 213N (-67.094, -87.142) 3/4: -2623368.28288, -9863301.12097, 86.898617, 1.084836\n    test 637 reverse 213N (-67.094, -87.142) 3/4: 1.4210854715202004e-14\n    test 638 forward 216N (-64.721, -94.046) 3/4: -2908348.733697, -10210857.598605, 94.471204, 1.104695\n    test 639 reverse 216N (-64.721, -94.046) 3/4: 1.4210854715202004e-14\n    test 640 forward 219N (-62.172, -100.691) 3/4: -3168362.707459, -10621853.317461, 102.04623, 1.124739\n    test 641 reverse 219N (-62.172, -100.691) 3/4: 2.929642751054232e-14\n    test 642 forward 222N (-59.452, -107.061) 3/4: -3391492.622467, -11093528.387239, 109.604086, 1.14345\n    test 643 reverse 222N (-59.452, -107.061) 3/4: 7.105427357601002e-15\n    test 644 forward 225N (-56.569, -113.137) 3/4: -3566696.824822, -11619422.467571, 117.096854, 1.159166\n    test 645 reverse 225N (-56.569, -113.137) 3/4: 2.0097183471152322e-14\n    test 646 forward 228N (-53.530, -118.903) 3/4: -3685290.742854, -12189522.028618, 124.447841, 1.170375\n    test 647 reverse 228N (-53.530, -118.903) 3/4: 2.842170943040401e-14\n    test 648 forward 231N (-50.346, -124.343) 3/4: -3742386.824274, -12791126.616764, 131.557863, 1.176031\n    test 649 reverse 231N (-50.346, -124.343) 3/4: 5.684341886080802e-14\n    test 650 forward 234N (-47.023, -129.443) 3/4: -3737846.053669, -13410380.03778, 138.317827, 1.175799\n    test 651 reverse 234N (-47.023, -129.443) 3/4: 4.0194366942304644e-14\n    test 652 forward 237N (-43.571, -134.187) 3/4: -3676387.634221, -14034104.572541, 144.624552, 1.170121\n    test 653 reverse 237N (-43.571, -134.187) 3/4: 0.0\n    test 654 forward 240N (-40.000, -138.564) 3/4: -3566810.754496, -14651410.305646, 150.395289, 1.16007\n    test 655 reverse 240N (-40.000, -138.564) 3/4: 1.4210854715202004e-14\n    test 656 forward 243N (-36.319, -142.561) 3/4: -3420621.906486, -15254653.660248, 155.577129, 1.147079\n    test 657 reverse 243N (-36.319, -142.561) 3/4: 7.105427357601002e-15\n    test 658 forward 246N (-32.539, -146.167) 3/4: -3250522.133697, -15839614.666766, 160.149958, 1.132638\n    test 659 reverse 246N (-32.539, -146.167) 3/4: 1.4210854715202004e-14\n    test 660 forward 249N (-28.669, -149.373) 3/4: -3069132.144368, -16405050.640186, 164.124094, 1.118063\n    test 661 reverse 249N (-28.669, -149.373) 3/4: 1.0658141036401503e-14\n    test 662 forward 252N (-24.721, -152.169) 3/4: -2888128.173431, -16951919.948156, 167.534978, 1.104377\n    test 663 reverse 252N (-24.721, -152.169) 3/4: 7.105427357601002e-15\n    test 664 forward 255N (-20.706, -154.548) 3/4: -2717773.256417, -17482549.021439, 170.437193, 1.09228\n    test 665 reverse 255N (-20.706, -154.548) 3/4: 3.552713678800501e-15\n    test 666 forward 258N (-16.633, -156.504) 3/4: -2566730.586316, -17999918.486885, 172.899178, 1.082187\n    test 667 reverse 258N (-16.633, -156.504) 3/4: 3.552713678800501e-15\n    test 668 forward 261N (-12.515, -158.030) 3/4: -2442031.891673, -18507145.758, 174.99917, 1.074303\n    test 669 reverse 261N (-12.515, -158.030) 3/4: 5.329070518200751e-15\n    test 670 forward 264N (-8.362, -159.124) 3/4: -2349105.316925, -19007174.828239, 176.822266, 1.068689\n    test 671 reverse 264N (-8.362, -159.124) 3/4: 8.881784197001252e-15\n    test 672 forward 267N (-4.187, -159.781) 3/4: -2291809.478825, -19502649.329559, 178.458273, 1.06534\n    test 673 reverse 267N (-4.187, -159.781) 3/4: 9.769962616701378e-15\n    test 674 forward 270N (0.000, -160.000) 3/4: -2272454.379192, -19995929.886042, 180.0, 1.064227\n    test 675 reverse 270N (0.000, -160.000) 3/3: 0.0\n    test 676 forward 273N (4.187, -159.781) 3/4: -2291809.478825, 19502649.329559, -178.458273, 1.06534\n    test 677 reverse 273N (4.187, -159.781) 3/4: 2.842170943040401e-14\n    test 678 forward 276N (8.362, -159.124) 3/4: -2349105.316925, 19007174.828239, -176.822266, 1.068689\n    test 679 reverse 276N (8.362, -159.124) 3/4: 1.0658141036401503e-14\n    test 680 forward 279N (12.515, -158.030) 3/4: -2442031.891673, 18507145.758, -174.99917, 1.074303\n    test 681 reverse 279N (12.515, -158.030) 3/4: 1.0658141036401503e-14\n    test 682 forward 282N (16.633, -156.504) 3/4: -2566730.586316, 17999918.486885, -172.899178, 1.082187\n    test 683 reverse 282N (16.633, -156.504) 3/4: 1.4210854715202004e-14\n    test 684 forward 285N (20.706, -154.548) 3/4: -2717773.256417, 17482549.021439, -170.437193, 1.09228\n    test 685 reverse 285N (20.706, -154.548) 3/4: 3.552713678800501e-15\n    test 686 forward 288N (24.721, -152.169) 3/4: -2888128.173431, 16951919.948156, -167.534978, 1.104377\n    test 687 reverse 288N (24.721, -152.169) 3/4: 1.7763568394002505e-14\n    test 688 forward 291N (28.669, -149.373) 3/4: -3069132.144368, 16405050.640186, -164.124094, 1.118063\n    test 689 reverse 291N (28.669, -149.373) 3/4: 7.105427357601002e-15\n    test 690 forward 294N (32.539, -146.167) 3/4: -3250522.133697, 15839614.666766, -160.149958, 1.132638\n    test 691 reverse 294N (32.539, -146.167) 3/4: 1.4210854715202004e-14\n    test 692 forward 297N (36.319, -142.561) 3/4: -3420621.906486, 15254653.660248, -155.577129, 1.147079\n    test 693 reverse 297N (36.319, -142.561) 3/4: 7.105427357601002e-15\n    test 694 forward 300N (40.000, -138.564) 3/4: -3566810.754496, 14651410.305646, -150.395289, 1.16007\n    test 695 reverse 300N (40.000, -138.564) 3/4: 7.105427357601002e-15\n    test 696 forward 303N (43.571, -134.187) 3/4: -3676387.634221, 14034104.572541, -144.624552, 1.170121\n    test 697 reverse 303N (43.571, -134.187) 3/4: 0.0\n    test 698 forward 306N (47.023, -129.443) 3/4: -3737846.053669, 13410380.03778, -138.317827, 1.175799\n    test 699 reverse 306N (47.023, -129.443) 3/4: 4.0194366942304644e-14\n    test 700 forward 309N (50.346, -124.343) 3/4: -3742386.824274, 12791126.616764, -131.557863, 1.176031\n    test 701 reverse 309N (50.346, -124.343) 3/4: 5.684341886080802e-14\n    test 702 forward 312N (53.530, -118.903) 3/4: -3685290.742854, 12189522.028618, -124.447841, 1.170375\n    test 703 reverse 312N (53.530, -118.903) 3/4: 2.842170943040401e-14\n    test 704 forward 315N (56.569, -113.137) 3/4: -3566696.824822, 11619422.467571, -117.096854, 1.159166\n    test 705 reverse 315N (56.569, -113.137) 3/4: 2.0097183471152322e-14\n    test 706 forward 318N (59.452, -107.061) 3/4: -3391492.622467, 11093528.387239, -109.604086, 1.14345\n    test 707 reverse 318N (59.452, -107.061) 3/4: 7.105427357601002e-15\n    test 708 forward 321N (62.172, -100.691) 3/4: -3168362.707459, 10621853.317461, -102.04623, 1.124739\n    test 709 reverse 321N (62.172, -100.691) 3/4: 2.929642751054232e-14\n    test 710 forward 324N (64.721, -94.046) 3/4: -2908348.733697, 10210857.598605, -94.471204, 1.104695\n    test 711 reverse 324N (64.721, -94.046) 3/4: 1.4210854715202004e-14\n    test 712 forward 327N (67.094, -87.142) 3/4: -2623368.28288, 9863301.12097, -86.898617, 1.084836\n    test 713 reverse 327N (67.094, -87.142) 3/4: 1.4210854715202004e-14\n    test 714 forward 330N (69.282, -80.000) 3/4: -2325015.074835, 9578621.128889, -79.325231, 1.066355\n    test 715 reverse 330N (69.282, -80.000) 3/4: 7.105427357601002e-14\n    test 716 forward 333N (71.281, -72.638) 3/4: -2023752.790526, 9353559.771346, -71.732868, 1.050046\n    test 717 reverse 333N (71.281, -72.638) 3/3: 2.842170943040401e-14\n    test 718 forward 336N (73.084, -65.078) 3/4: -1728450.251911, 9182823.938232, -64.096558, 1.036319\n    test 719 reverse 336N (73.084, -65.078) 3/3: 1.4210854715202004e-14\n    test 720 forward 339N (74.686, -57.339) 3/4: -1446137.252018, 9059670.735504, -56.391495, 1.025259\n    test 721 reverse 339N (74.686, -57.339) 3/3: 5.859285502108464e-14\n    test 722 forward 342N (76.085, -49.443) 3/4: -1181870.215451, 8976407.252949, -48.598167, 1.016714\n    test 723 reverse 342N (76.085, -49.443) 3/3: 0.0\n    test 724 forward 345N (77.274, -41.411) 3/4: -938645.229361, 8924845.3123, -40.705476, 1.010384\n    test 725 reverse 345N (77.274, -41.411) 3/3: 4.4938668397781776e-14\n    test 726 forward 348N (78.252, -33.266) 3/4: -717349.637417, 8896761.249834, -32.712011, 1.005894\n    test 727 reverse 348N (78.252, -33.266) 3/3: 3.1776437161565096e-14\n    test 728 forward 351N (79.015, -25.030) 3/4: -516782.400098, 8884389.933155, -24.625783, 1.002865\n    test 729 reverse 351N (79.015, -25.030) 3/3: 1.4210854715202004e-14\n    test 730 forward 354N (79.562, -16.725) 3/4: -333788.634116, 8880946.730424, -16.462884, 1.000962\n    test 731 reverse 354N (79.562, -16.725) 3/3: 5.728578676879116e-14\n    test 732 forward 357N (79.890, -8.374) 3/4: -163544.38007, 8881136.361771, -8.245542, 0.999927\n    test 733 reverse 357N (79.890, -8.374) 3/3: 5.224422199693188e-14\n    test 734 forward 360N (80.000, 0.000) 3/3: 0.0, 8881585.815988, 0.0, 0.9996\n    test 735 reverse 360N (80.000, 0.000) 3/3: 0.0\n    test 736 max: 7.944109290391274e-14  FAILED, KNOWN, expected 9e-14\n\n    test 737 forward: 6208422.5374, 5452954.287187, 41.077484, 1.511911\n    test 738 reverse: 30.244228, 60.169664, 41.479185, 1.510346\n\n    3 of 738 testKtm.py tests (0.4%) FAILED, ALL KNOWN (pygeodesy 26.3.26 Python 3.12.10 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 2.1.0 scipy 1.14.1 Math 2 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 isLazy 3 -W  default) 4.503 sec\nrunning /usr/local/bin/p....n3.12 -W default ~/PyGeodesy/test/testLatLon.py\n./test/testLatLon.py:276: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.sphericalNvector.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', p.cosineAndoyerLambertTo(q), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:277: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.sphericalNvector.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', q.cosineAndoyerLambertTo(p), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:279: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.sphericalNvector.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', p.cosineForsytheAndoyerLambertTo(q), '124801.098' if Sph else '125205.965', fmt='%.3f')\n./test/testLatLon.py:280: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.sphericalNvector.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', q.cosineForsytheAndoyerLambertTo(p), '124801.098' if Sph else '125205.965', fmt='%.3f')\n./pygeodesy/basics.py:637: DeprecationWarning: Conversion of an array with ndim > 0 to a scalar is deprecated, and will error in future. Ensure you extract a single element from your array before performing this operation. (Deprecated NumPy 1.25.)\n  return tuple(map(fun, *xs, **strict) if strict else map(fun, *xs))\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.Aer from .ltpTuples by testLatLon.py line 12\n# lazily imported pygeodesy.Enu from .ltpTuples by testLatLon.py line 12\n# lazily imported pygeodesy.F_D from .dms by testLatLon.py line 12\n# lazily imported pygeodesy.F_DM from .dms by testLatLon.py line 12\n# lazily imported pygeodesy.F_DMS from .dms by testLatLon.py line 12\n# lazily imported pygeodesy.F_RAD from .dms by testLatLon.py line 12\n# lazily imported pygeodesy.R_M from .constants by testLatLon.py line 12\n# lazily imported pygeodesy.R_NM from .constants by testLatLon.py line 12\n# lazily imported pygeodesy.degrees from .utily by testLatLon.py line 12\n# lazily imported pygeodesy.fstr from .streprs by testLatLon.py line 12\n# lazily imported pygeodesy.isclockwise from .points by testLatLon.py line 12\n# lazily imported pygeodesy.isconvex from .points by testLatLon.py line 12\n# lazily imported pygeodesy.isenclosedBy from .points by testLatLon.py line 12\n# lazily imported pygeodesy.isnear0 from .constants by testLatLon.py line 12\n# lazily imported pygeodesy.ispolar from .points by testLatLon.py line 12\n# lazily imported pygeodesy.Local9Tuple from .ltpTuples by testLatLon.py line 12\n# lazily imported pygeodesy.Ltp from .ltp by testLatLon.py line 12\n# lazily imported pygeodesy.m2km from .utily by testLatLon.py line 12\n# lazily imported pygeodesy.m2NM from .utily by testLatLon.py line 12\n# lazily imported pygeodesy.Ned from .ltpTuples by testLatLon.py line 12\n# lazily imported pygeodesy.XyzLocal from .ltpTuples by testLatLon.py line 12\n# lazily imported pygeodesy.IntersectionError from .errors by testLatLon.py line 12\n# lazily imported pygeodesy.VincentyError from .ellipsoidalVincenty by testLatLon.py line 12\n# lazily imported pygeodesy.ellipsoidalExact by testLatLon.py line 639\n# lazily imported pygeodesy.ellipsoidalNvector by testLatLon.py line 639\n# lazily imported pygeodesy.sphericalNvector by testLatLon.py line 639\n# lazily imported pygeodesy.sphericalTrigonometry by testLatLon.py line 639\n\n    testing testLatLon.py 25.05.09 isLazy=3\n\n    testLatLon(pygeodesy.sphericalNvector, 25.05.27)\n    test 1 isEllipsoidal: False\n    test 2 isSpherical: True\n    test 3 lat/lonDMS: 52.20472°N, 000.14056°E\n    test 4 lat/lonDMS F_DM: 52°12.283′N, 000°08.434′E\n    test 5 lat/lonDMS F_DM: 52°12.2832′N, 000°08.4336′E\n    test 6 lat/lonDMS F_DMS: 52°12′17″N, 000°08′26″E\n    test 7 lat/lonDMS F_DMS: 52°12′17.0″N, 000°08′26.0″E\n    test 8 lat/lonDMS F_RAD: 0.911144N, 0.002453E\n# imported pygeodesy.formy into latlonBase.py line 756\n    test 9 isequalTo: True\n    test 10 isequalTo: True\n    test 11 latlon2: 52.20472, 0.14056\n    test 12 latlon2: 52.2047, 0.1406\n    test 13 latlon2: 52.205, 0.141\n    test 14 latlon2: 52.2, 0.14\n    test 15 latlon2: 52.2, 0.1\n    test 16 latlon2: 52.0, 0.0\n    test 17 chordTo: 12036677.26\n    test 18 chordTo: 12036463.78\n    test 19 initialBearingTo: 156.1666\n    test 20 initialBearingTo: 65.8921\n    test 21 initialBearingTo: 0.0\n    test 22 initialBearingTo: 180.0\n    test 23 finalBearingTo: 157.8904\n    test 24 finalBearingTo: 93.8581\n    test 25 bearingTo2: 156.1666, 157.8904\n    test 26 ispolar: True\n    test 27 copy: True\n    test 28 __eq__: True\n    test 29 __ne__: False\n# lazily imported pygeodesy.angles by units.py line 633\n    test 30 equirectangularTo: 404329.56\n    test 31 distanceTo: 404279.720589\n    test 32 distanceTo: 404279.720589\n    test 33 distanceTo: 2145\n    test 34 distanceTo: 18013602.92\n    test 35 distanceTo: 20015114.35\n    test 36 intermediateTo: 51.372084°N, 000.707337°E\n    test 37 intermediateTo: True\n    test 38 intermediateTo: 404279.721\n    test 39 intermediateTo+5: 35.160975°N, 008.989542°E\n    test 40 intermediateTo+5: 5.000\n    test 41 intermediateTo-4: 64.911647°N, 013.726301°W\n    test 42 intermediateTo-4: 4.000\n    test 43 intermediateTo-h: 125.000\n    test 44 intermediateChordTo: 51.372294°N, 000.707192°E\n    test 45 intermediateChordTo: True\n    test 46 intermediateChordTo-h: 125.000\n    test 47 midpointTo: 50.536327°N, 001.274614°E\n    test 48 destination: 51.513546°N, 000.098345°W\n    test 49 destination: 51°30′49″N, 000°05′54″W\n    test 50 destination: 34°37′N, 116°33′W\n    test 51 destination: 34.613647°N, 116.55116°W\n    test 52 destination: 0.604122N, 2.034201W\n    test 53 destination: 31.96383509°N, 064.37329146°E\n    test 54 alongTrackDistanceTo: 62331.59\n    test 55 alongTrackDistanceTo: 62331.58\n    test 56 alongTrackDistanceTo: 99.588\n    test 57 alongTrackDistanceTo: -7702.7\n    test 58 alongTrackDistanceTo: 7587.6\n    test 59 crossTrackDistanceTo: -305.66528160755445  FAILED, KNOWN, expected TypeError\n    test 60 crossTrackDistanceTo: -307.55\n    test 61 crossTrackDistanceTo: 7.4524\n    test 62 greatCircle: (-0.79408, 0.12856, 0.59406)\n# lazily imported pygeodesy.booleans by iters.py line 76\n    test 63 neareston6: (LatLon(45°00′00.0″N, 001°00′00.0″E), 4773243.784965, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E))  FAILED, KNOWN, expected (LatLon(45°00′00.0″N, 001°00′00.0″E), 4755443.4294, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E))\n    test 64 neareston6: (LatLon(45°30′03.93″N, 002°00′00.0″E), 38968.531578, 1.501091, 2, LatLon(45°00′00.0″N, 002°00′00.0″E), LatLon(46°00′00.0″N, 002°00′00.0″E))  FAILED, KNOWN, expected (LatLon(45°30′03.94″N, 002°00′00.0″E), 39078.729285, 1.501072, 2, LatLon(45°00′00.0″N, 002°00′00.0″E), LatLon(46°00′00.0″N, 002°00′00.0″E))\n    test 65 chordTo: 124799.103\n    test 66 cosineAndoyerLambertTo: 124801.098\n    test 67 cosineAndoyerLambertTo: 124801.098\n    test 68 cosineForsyheAndoyerLambertTo: 124801.098\n    test 69 cosineForsyheAndoyerLambertTo: 124801.098\n    test 70 cosineLawTo: 124801.098\n    test 71 cosineLawTo: 124801.098\n    test 72 equirectangularTo: 124804.754\n    test 73 equirectangularTo: 124804.754\n    test 74 euclideanTo: 130015.089\n    test 75 euclideanTo: 130015.089\n    test 76 flatLocalTo: 124804.754\n    test 77 flatLocalTo: 124804.754\n    test 78 flatPolarTo: 133663.257\n    test 79 flatPolarTo: 133663.257\n    test 80 hartzell: 53.3206°N, 001.7297°W\n# lazily imported pygeodesy.triaxials by lazily.py line 529\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by ellipsoids.py line 1905\n    test 81 hartzell: 53.3206°N, 001.7297°W\n    test 82 height4: 0.0\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by cartesianBase.py line 364\n    test 83 height4: (3803904.2, -114870.8, 5109488.3, 0.0)\n    test 84 height4: 53°19′14.2″N, 001°43′46.9″W\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by cartesianBase.py line 364\n    test 85 height4: 53°19′14.2″N, 001°43′46.9″W\n    test 86 haversineTo: 124801.098\n    test 87 haversineTo: 124801.098\n    test 88 hubenyTo: <bound method LatLonBase.flatLocalTo of LatLon(53°19′14.16″N, 001°43′46.92″W)>\n./test/testLatLon.py:276: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.sphericalTrigonometry.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', p.cosineAndoyerLambertTo(q), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:277: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.sphericalTrigonometry.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', q.cosineAndoyerLambertTo(p), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:279: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.sphericalTrigonometry.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', p.cosineForsytheAndoyerLambertTo(q), '124801.098' if Sph else '125205.965', fmt='%.3f')\n./test/testLatLon.py:280: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.sphericalTrigonometry.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', q.cosineForsytheAndoyerLambertTo(p), '124801.098' if Sph else '125205.965', fmt='%.3f')\n    test 89 hubenyTo: <bound method LatLonBase.flatLocalTo of LatLon(53°11′19.32″N, 000°08′00.24″E)>\n    test 90 thomasTo: 124801.098\n    test 91 thomasTo: 124801.098\n    test 92 vincentysTo: 124801.098\n    test 93 vincentysTo: 124801.098\n    test 94 greatCircleTo: (-0.79408, 0.12859, 0.59406)\n    test 95 isclockwise: False\n    test 96 isclockwise*: False\n    test 97 isclockwise: True\n    test 98 isclockwise*: True\n    test 99 isclockwise: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 100 isclockwise*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 101 isclockwise: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 102 isclockwise*: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 103 isconvex: False\n    test 104 isconvex*: False\n    test 105 isconvex: True\n    test 106 isconvex*: True\n    test 107 isconvex: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 108 isconvex*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 109 isenclosedBy1: True\n    test 110 isenclosedBy1*: True\n    test 111 isenclosedBy2: False\n    test 112 isenclosedBy2*: False\n    test 113 isenclosedBy3: False\n    test 114 isenclosedBy3*: False\n    test 115 isenclosedBy4: False\n    test 116 isenclosedBy4*: False\n    test 117 isenclosedBy5: False\n    test 118 isenclosedBy5*: False\n    test 119 isenclosedBy6: True\n    test 120 isenclosedBy6*: True\n    test 121 isenclosedBy7: True\n    test 122 isenclosedBy7*: True\n    test 123 isenclosedBy-CCW: True\n    test 124 isenclosedBy-CW : True\n    test 125 isenclosedBy-CCW: True\n    test 126 initialBearingTo: 102.432182\n    test 127 compassAngleTo: 100.017\n    test 128 compassAngleTo: 105.599\n    test 129 initialBearingTo: 288.715918\n    test 130 compassAngleTo: 280.017\n    test 131 compassAngleTo: 285.599\n    test 132 equirectangularTo: 592.185\n    test 133 distanceTo: 591.831\n    test 134 compassAngleTo: 0.0\n    test 135 compassAngleTo: 45.0\n    test 136 compassAngleTo: 90.0\n    test 137 compassAngleTo: 180.0\n    test 138 compassAngleTo: 225.0\n    test 139 compassAngleTo: 315.0\n    test 140 compassAngleTo: 270.0\n    test 141 compassAngleTo: 359.4\n    test 142 latlon2: (53.0, 1.0)\n    test 143 philam2: (0.93, 0.02)\n    test 144 compassAngleTo: 31\n    test 145 compassAngleTo: 45\n\n    test 146 boundsOf: <class 'pygeodesy.namedTuples.Bounds2Tuple'>\n    test 147 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 148 latlon2: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 149 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 150 isequalTo: <class 'bool'>\n    test 151 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 152 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 153 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 154 xyz3: <class 'tuple'>\n    test 155 xyzh: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 156 compassAngleTo: <class 'float'>\n    test 157 cosineLawTo: <class 'float'>\n    test 158 euclideanTo: <class 'float'>\n    test 159 flatLocalTo: <class 'float'>\n    test 160 flatPolarTo: <class 'float'>\n    test 161 haversineTo: <class 'float'>\n    test 162 hubenyTo: <class 'float'>\n    test 163 vincentysTo: <class 'float'>\n# imported pygeodesy.ltpTuples into ecefLocals.py line 80\n# imported pygeodesy.ltp into ecefLocals.py line 63\n# imported pygeodesy.ltp into ltpTuples.py line 1585\n    test 164 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 165 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 166 toLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 167 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 168 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 169 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 170 toVector: (3922384.659522, 0.0, 5020423.423198)\n    test 171 toVector3d: (0.61566, 0.0, 0.78801)\n    test 172 trilaterate5 (pygeodesy.sphericalNvector) .min: 223.305\n    test 173 trilaterate5 (pygeodesy.sphericalNvector) .point: 42.67456065°N, 002.49539502°E\n    test 174 trilaterate5 (pygeodesy.sphericalNvector) .min- is .maxPoint: True\n    test 175 trilaterate5 (pygeodesy.sphericalNvector) .n: 1\n    test 176 trilaterate5 (pygeodesy.sphericalNvector) .error: sphericalNvector.LatLon.trilaterate5(area=True), MRO(nvectorBase.LatLonNvectorBase, sphericalBase.LatLonSphericalBase, latlonBase.LatLonBase, named._NamedBase, ecefLocals._EcefLocal, named._Named): not implemented\n# lazily imported pygeodesy.vector2d by latlonBase.py line 1074\n\n    test 177 radii11: Radii11Tuple(rA=7701.409157, rB=1361.530045, rC=499.257353, cR=4886.694635, rIn=739.915482, riS=179.523525, roS=6087.250896, a=1860.787398, b=8200.666509, c=9062.939201, s=9562.196554)\n    test 178 circum4 (pygeodesy.sphericalNvector) .radius: 3185505.323  FAILED, KNOWN, expected 3184256.748\n    test 179 circum4 (pygeodesy.sphericalNvector) .center: 42.674561°N, 002.495395°E, -3185503.45m  FAILED, KNOWN, expected 43.054367°N, 002.942573°E, -3183993.92m\n    test 180 circum4 (pygeodesy.sphericalNvector) .rank: 3\n    test 181 circum4 (pygeodesy.sphericalNvector) .residuals: ()\n    test 182 circum4 (pygeodesy.sphericalNvector) .d1: 4886.695  FAILED, KNOWN, expected 57818.033\n    test 183 circum4 (pygeodesy.sphericalNvector) .d2: 4886.695  FAILED, KNOWN, expected 57834.176\n    test 184 circum4 (pygeodesy.sphericalNvector) .d3: 4886.695  FAILED, KNOWN, expected 57830.992\n    test 185 circum4 (pygeodesy.sphericalNvector) .datum: name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84\n    test 186 circum4 (pygeodesy.sphericalNvector) .Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 187 radii11: Radii11Tuple(rA=328257.82694, rB=782282.176109, rC=782282.176109, cR=782304.746354, rIn=325773.738834, riS=85162.638484, roS=INF, a=1564564.352218, b=1110540.003049, c=1110540.003049, s=1892822.179158)\n    test 188 circin6 (pygeodesy.sphericalNvector) .rB+rC: 1564564.352\n    test 189 circin6 (pygeodesy.sphericalNvector) .rC+pA: 1110540.003\n    test 190 circin6 (pygeodesy.sphericalNvector) .rA+rB: 1110540.003\n    test 191 circin6 (pygeodesy.sphericalNvector) .radius: 325773.739  FAILED, KNOWN, expected 325058.721\n    test 192 circin6 (pygeodesy.sphericalNvector) .center: 02.938473°N, 002.942346°E, -40128.57m  FAILED, KNOWN, expected 02.948531°N, 002.932537°E, -40041.19m\n    test 193 circin6 (pygeodesy.sphericalNvector) .deltas: (0.0, 0.0, 0.421782)  FAILED, KNOWN, expected (0.0, 0.0, 0.090491)\n    test 194 circin6 (pygeodesy.sphericalNvector) .cA: 05.019001°N, 005.038369°E, -48209.76m  FAILED, KNOWN, expected 05.04314°N, 005.014578°E, -48104.09m\n    test 195 circin6 (pygeodesy.sphericalNvector) .cB: 00.0°N, 002.951508°E, -20185.00m  FAILED, KNOWN, expected 00.0°N, 002.941713°E, -20168.62m\n    test 196 circin6 (pygeodesy.sphericalNvector) .cC: 02.951508°N, 000.0°E, -20185.00m  FAILED, KNOWN, expected 02.961566°N, 000.0°E, -20113.46m\n    test 197 circin6 (pygeodesy.sphericalNvector) .dA: 327983.380  FAILED, KNOWN, expected 327263.596\n    test 198 circin6 (pygeodesy.sphericalNvector) .dB: 326745.373  FAILED, KNOWN, expected 326036.153\n    test 199 circin6 (pygeodesy.sphericalNvector) .dC: 326745.373  FAILED, KNOWN, expected 326020.432\n\n    test 200 area cw/ccw: 1.0\n\n    testLatLon(pygeodesy.sphericalTrigonometry, 25.08.31)\n    test 201 isEllipsoidal: False\n    test 202 isSpherical: True\n    test 203 lat/lonDMS: 52.20472°N, 000.14056°E\n    test 204 lat/lonDMS F_DM: 52°12.283′N, 000°08.434′E\n    test 205 lat/lonDMS F_DM: 52°12.2832′N, 000°08.4336′E\n    test 206 lat/lonDMS F_DMS: 52°12′17″N, 000°08′26″E\n    test 207 lat/lonDMS F_DMS: 52°12′17.0″N, 000°08′26.0″E\n    test 208 lat/lonDMS F_RAD: 0.911144N, 0.002453E\n    test 209 isequalTo: True\n    test 210 isequalTo: True\n    test 211 latlon2: 52.20472, 0.14056\n    test 212 latlon2: 52.2047, 0.1406\n    test 213 latlon2: 52.205, 0.141\n    test 214 latlon2: 52.2, 0.14\n    test 215 latlon2: 52.2, 0.1\n    test 216 latlon2: 52.0, 0.0\n    test 217 chordTo: 12036677.26\n    test 218 chordTo: 12036463.78\n    test 219 initialBearingTo: 156.1666\n    test 220 initialBearingTo: 65.8921\n    test 221 initialBearingTo: 0.0\n    test 222 initialBearingTo: 180.0\n    test 223 finalBearingTo: 157.8904\n    test 224 finalBearingTo: 93.8581\n    test 225 bearingTo2: 156.1666, 157.8904\n    test 226 ispolar: True\n    test 227 copy: True\n    test 228 __eq__: True\n    test 229 __ne__: False\n    test 230 equirectangularTo: 404329.56\n    test 231 distanceTo: 404279.720589\n    test 232 distanceTo: 404279.720589\n    test 233 distanceTo: 2145\n    test 234 antipodal: False\n    test 235 distanceTo dateline: 19967403.498  FAILED, KNOWN, expected 19119590.551\n    test 236 distanceTo unrolled: 19967403.498  FAILED, KNOWN, expected 19119590.551\n    test 237 antipodal: False\n    test 238 distanceTo dateline: 9491735\n    test 239 distanceTo unrolled: 9491735\n    test 240 distanceTo: 18013602.92\n    test 241 distanceTo: 20015114.35\n    test 242 intermediateTo: 51.372084°N, 000.707337°E\n    test 243 intermediateTo: True\n    test 244 intermediateTo: 404279.721\n    test 245 intermediateTo+5: 35.160975°N, 008.989542°E\n    test 246 intermediateTo+5: 5.000\n    test 247 intermediateTo-4: 64.911647°N, 013.726301°W\n    test 248 intermediateTo-4: 4.000\n    test 249 intermediateTo-h: 125.000\n    test 250 midpointTo: 50.536327°N, 001.274614°E\n    test 251 destination: 51.513546°N, 000.098345°W\n    test 252 destination: 51°30′49″N, 000°05′54″W\n    test 253 destination: 34°37′N, 116°33′W\n    test 254 destination: 34.613647°N, 116.55116°W\n    test 255 destination: 0.604122N, 2.034201W\n    test 256 destination: 31.96383509°N, 064.37329146°E\n    test 257 alongTrackDistanceTo: type(end) (96): incompatible with sphericalTrigonometry.LatLon.alongTrackDistanceTo(end)  FAILED, KNOWN, expected incompatible ...\n    test 258 alongTrackDistanceTo: 62331.58\n    test 259 alongTrackDistanceTo: 99.588\n    test 260 alongTrackDistanceTo: -7702.7\n    test 261 alongTrackDistanceTo: 7587.6\n    test 262 crossTrackDistanceTo: type(end) (96): incompatible with sphericalTrigonometry.LatLon.crossTrackDistanceTo(end)  FAILED, KNOWN, expected incompatible ...\n    test 263 crossTrackDistanceTo: -307.55\n    test 264 crossTrackDistanceTo: 7.4524\n    test 265 greatCircle: (-0.79408, 0.12856, 0.59406)\n    test 266 neareston6: (LatLon(45°00′00.0″N, 001°00′00.0″E), 4773243.784965, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E))  FAILED, KNOWN, expected (LatLon(45°00′00.0″N, 001°00′00.0″E), 4755443.4294, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E))\n    test 267 neareston6: (LatLon(45°30′03.93″N, 002°00′00.0″E), 38968.531578, 1.501091, 2, LatLon(45°00′00.0″N, 002°00′00.0″E), LatLon(46°00′00.0″N, 002°00′00.0″E))  FAILED, KNOWN, expected (LatLon(45°30′03.94″N, 002°00′00.0″E), 39078.729285, 1.501072, 2, LatLon(45°00′00.0″N, 002°00′00.0″E), LatLon(46°00′00.0″N, 002°00′00.0″E))\n    test 268 chordTo: 124799.103\n    test 269 cosineAndoyerLambertTo: 124801.098\n    test 270 cosineAndoyerLambertTo: 124801.098\n    test 271 cosineForsyheAndoyerLambertTo: 124801.098\n    test 272 cosineForsyheAndoyerLambertTo: 124801.098\n    test 273 cosineLawTo: 124801.098\n    test 274 cosineLawTo: 124801.098\n    test 275 equirectangularTo: 124804.754\n    test 276 equirectangularTo: 124804.754\n    test 277 euclideanTo: 130015.089\n    test 278 euclideanTo: 130015.089\n    test 279 flatLocalTo: 124804.754\n    test 280 flatLocalTo: 124804.754\n    test 281 flatPolarTo: 133663.257\n    test 282 flatPolarTo: 133663.257\n    test 283 hartzell: 53.3206°N, 001.7297°W\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by ellipsoids.py line 1905\n    test 284 hartzell: 53.3206°N, 001.7297°W\n    test 285 height4: 0.0\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by cartesianBase.py line 364\n    test 286 height4: (3803904.2, -114870.8, 5109488.3, 0.0)\n    test 287 height4: 53°19′14.2″N, 001°43′46.9″W\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by cartesianBase.py line 364\n    test 288 height4: 53°19′14.2″N, 001°43′46.9″W\n    test 289 haversineTo: 124801.098\n    test 290 haversineTo: 124801.098\n    test 291 hubenyTo: <bound method LatLonBase.flatLocalTo of LatLon(53°19′14.16″N, 001°43′46.92″W)>\n    test 292 hubenyTo: <bound method LatLonBase.flatLocalTo of LatLon(53°11′19.32″N, 000°08′00.24″E)>\n    test 293 thomasTo: 124801.098\n    test 294 thomasTo: 124801.098\n    test 295 vincentysTo: 124801.098\n    test 296 vincentysTo: 124801.098\n    test 297 isclockwise: False\n    test 298 isclockwise*: False\n    test 299 isclockwise: True\n    test 300 isclockwise*: True\n    test 301 isclockwise: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 302 isclockwise*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 303 isclockwise: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 304 isclockwise*: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 305 isconvex: False\n    test 306 isconvex*: False\n    test 307 isconvex: True\n    test 308 isconvex*: True\n    test 309 isconvex: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 310 isconvex*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 311 isenclosedBy1: True\n    test 312 isenclosedBy1*: True\n    test 313 isenclosedBy2: False\n    test 314 isenclosedBy2*: False\n    test 315 isenclosedBy3: False\n    test 316 isenclosedBy3*: False\n    test 317 isenclosedBy4: False\n    test 318 isenclosedBy4*: False\n    test 319 isenclosedBy5: False\n    test 320 isenclosedBy5*: False\n    test 321 isenclosedBy6: True\n    test 322 isenclosedBy6*: True\n    test 323 isenclosedBy7: True\n    test 324 isenclosedBy7*: True\n    test 325 isenclosedBy-CCW: True\n    test 326 isenclosedBy-CW : True\n    test 327 isenclosedBy-CCW: True\n    test 328 initialBearingTo: 102.432182\n    test 329 compassAngleTo: 100.017\n    test 330 compassAngleTo: 105.599\n    test 331 initialBearingTo: 288.715918\n    test 332 compassAngleTo: 280.017\n    test 333 compassAngleTo: 285.599\n    test 334 equirectangularTo: 592.185\n    test 335 distanceTo: 591.831\n    test 336 bearingTo: 0.0\n    test 337 compassAngleTo: 0.0\n    test 338 bearingTo: 45.0\n    test 339 compassAngleTo: 45.0\n    test 340 bearingTo: 90.0\n    test 341 compassAngleTo: 90.0\n    test 342 bearingTo: 180.0\n    test 343 compassAngleTo: 180.0\n    test 344 bearingTo: 225.0\n    test 345 compassAngleTo: 225.0\n    test 346 bearingTo: 315.0\n    test 347 compassAngleTo: 315.0\n    test 348 bearingTo: 270.0\n    test 349 compassAngleTo: 270.0\n    test 350 bearingTo: 0.0  FAILED, KNOWN, expected 359.4\n    test 351 compassAngleTo: 359.4\n    test 352 latlon2: (53.0, 1.0)\n    test 353 philam2: (0.93, 0.02)\n    test 354 bearingTo: 31\n    test 355 compassAngleTo: 31\n    test 356 compassAngleTo: 45\n\n    test 357 boundsOf: <class 'pygeodesy.namedTuples.Bounds2Tuple'>\n    test 358 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 359 latlon2: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 360 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 361 isequalTo: <class 'bool'>\n    test 362 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 363 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 364 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 365 xyz3: <class 'tuple'>\n    test 366 xyzh: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n./test/testLatLon.py:276: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.ellipsoidalNvector.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', p.cosineAndoyerLambertTo(q), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:277: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.ellipsoidalNvector.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', q.cosineAndoyerLambertTo(p), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:279: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.ellipsoidalNvector.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', p.cosineForsytheAndoyerLambertTo(q), '124801.098' if Sph else '125205.965', fmt='%.3f')\n./test/testLatLon.py:280: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.ellipsoidalNvector.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', q.cosineForsytheAndoyerLambertTo(p), '124801.098' if Sph else '125205.965', fmt='%.3f')\n    test 367 compassAngleTo: <class 'float'>\n    test 368 cosineLawTo: <class 'float'>\n    test 369 euclideanTo: <class 'float'>\n    test 370 flatLocalTo: <class 'float'>\n    test 371 flatPolarTo: <class 'float'>\n    test 372 haversineTo: <class 'float'>\n    test 373 hubenyTo: <class 'float'>\n    test 374 vincentysTo: <class 'float'>\n    test 375 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 376 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 377 toLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 378 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 379 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 380 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 381 toNvector: (0.61566, 0.0, 0.78801)\n    test 382 toVector: (3922384.659522, 0.0, 5020423.423198)\n    test 383 toVector3d: (0.61566, 0.0, 0.78801)\n\n    test 384 trilaterate5 (pygeodesy.sphericalTrigonometry) .min: 313.671\n    test 385 trilaterate5 (pygeodesy.sphericalTrigonometry) .point: 42.66937229°N, 002.48639477°E\n    test 386 trilaterate5 (pygeodesy.sphericalTrigonometry) .max: 1591.044\n    test 387 trilaterate5 (pygeodesy.sphericalTrigonometry) .point: 42.65153054°N, 002.46822157°E\n    test 388 trilaterate5 (pygeodesy.sphericalTrigonometry) .n: 3\n    test 389 trilaterate5 (pygeodesy.sphericalTrigonometry) .min: 133.815\n    test 390 trilaterate5 (pygeodesy.sphericalTrigonometry) .max: 160.242\n    test 391 trilaterate5 (pygeodesy.sphericalTrigonometry) .point: 42.67817811°N, 002.49966641°E\n    test 392 trilaterate5 (pygeodesy.sphericalTrigonometry) .n: 2\n    test 393 trilaterate5 (pygeodesy.sphericalTrigonometry) .min: 2403.293\n    test 394 trilaterate5 (pygeodesy.sphericalTrigonometry) .max: 2403.293\n    test 395 trilaterate5 (pygeodesy.sphericalTrigonometry) .point: 42.66135649°N, 002.47981645°E\n    test 396 trilaterate5 (pygeodesy.sphericalTrigonometry) .min- is .maxPoint: True\n    test 397 trilaterate5 (pygeodesy.sphericalTrigonometry) .n: 1\n    test 398 trilaterate5 (pygeodesy.sphericalTrigonometry) .min: 1340.608\n    test 399 trilaterate5 (pygeodesy.sphericalTrigonometry) .point: 42.69128229°N, 002.50129001°E\n    test 400 trilaterate5 (pygeodesy.sphericalTrigonometry) .max: 1499.220\n    test 401 trilaterate5 (pygeodesy.sphericalTrigonometry) .point: 42.64295864°N, 002.44242391°E\n    test 402 trilaterate5 (pygeodesy.sphericalTrigonometry) .n: 3\n    test 403 radii11: Radii11Tuple(rA=7237.243793, rB=1825.695409, rC=2.255158, cR=57690.493993, rIn=57.33247, riS=2.087691, roS=2.443616, a=1827.950567, b=7239.49895, c=9062.939201, s=9065.194359)\n    test 404 circum3 (pygeodesy.sphericalTrigonometry) .radius: 57690.494  FAILED, KNOWN, expected 57792.067\n    test 405 circum3 (pygeodesy.sphericalTrigonometry) .center: 43.051859°N, 002.94463°E, -261.20m  FAILED, KNOWN, expected 43.053532°N, 002.943255°E, -261.66m\n    test 406 circum3 (pygeodesy.sphericalTrigonometry) .deltas: (0.0, -0.0, 28.304)  FAILED, KNOWN, expected (0.0, 0.0, 11.383)\n    test 407 circum3 (pygeodesy.sphericalTrigonometry) .d1: 57691.282  FAILED, KNOWN, expected 57792.858\n    test 408 circum3 (pygeodesy.sphericalTrigonometry) .d2: 57691.282  FAILED, KNOWN, expected 57792.859\n    test 409 circum3 (pygeodesy.sphericalTrigonometry) .d3: 57691.282  FAILED, KNOWN, expected 57792.859\n    test 410 circum3 (pygeodesy.sphericalTrigonometry) .datum: name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84\n    test 411 circum3 (pygeodesy.sphericalTrigonometry) .Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n\n    test 412 radii11: Radii11Tuple(rA=7237.243793, rB=1825.695409, rC=2.255158, cR=57690.493993, rIn=57.33247, riS=2.087691, roS=2.443616, a=1827.950567, b=7239.49895, c=9062.939201, s=9065.194359)\n    test 413 circum4 (pygeodesy.sphericalTrigonometry) .radius: 3185634.993  FAILED, KNOWN, expected 3184256.748\n    test 414 circum4 (pygeodesy.sphericalTrigonometry) .center: 43.051859°N, 002.94463°E, -3185373.78m  FAILED, KNOWN, expected 43.054367°N, 002.942573°E, -3183993.92m\n    test 415 circum4 (pygeodesy.sphericalTrigonometry) .rank: 3\n    test 416 circum4 (pygeodesy.sphericalTrigonometry) .residuals: ()\n    test 417 circum4 (pygeodesy.sphericalTrigonometry) .d1: 57691.282  FAILED, KNOWN, expected 57818.033\n    test 418 circum4 (pygeodesy.sphericalTrigonometry) .d2: 57691.282  FAILED, KNOWN, expected 57834.176\n    test 419 circum4 (pygeodesy.sphericalTrigonometry) .d3: 57691.282  FAILED, KNOWN, expected 57830.992\n    test 420 circum4 (pygeodesy.sphericalTrigonometry) .datum: name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84\n    test 421 circum4 (pygeodesy.sphericalTrigonometry) .Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 422 radii11: Radii11Tuple(rA=328257.82694, rB=782282.176109, rC=782282.176109, cR=782304.746354, rIn=325773.738834, riS=85162.638484, roS=INF, a=1564564.352218, b=1110540.003049, c=1110540.003049, s=1892822.179158)\n    test 423 circin6 (pygeodesy.sphericalTrigonometry) .rB+rC: 1564564.352\n    test 424 circin6 (pygeodesy.sphericalTrigonometry) .rC+pA: 1110540.003\n    test 425 circin6 (pygeodesy.sphericalTrigonometry) .rA+rB: 1110540.003\n    test 426 circin6 (pygeodesy.sphericalTrigonometry) .radius: 325773.739  FAILED, KNOWN, expected 325058.721\n    test 427 circin6 (pygeodesy.sphericalTrigonometry) .center: 02.938473°N, 002.942346°E, -40128.57m  FAILED, KNOWN, expected 02.948531°N, 002.932537°E, -40041.19m\n    test 428 circin6 (pygeodesy.sphericalTrigonometry) .deltas: (0.0, 0.0, 0.421782)  FAILED, KNOWN, expected (0.0, 0.0, 0.090491)\n    test 429 circin6 (pygeodesy.sphericalTrigonometry) .cA: 05.019001°N, 005.038369°E, -48209.76m  FAILED, KNOWN, expected 05.04314°N, 005.014578°E, -48104.09m\n    test 430 circin6 (pygeodesy.sphericalTrigonometry) .cB: 00.0°N, 002.951508°E, -20185.00m  FAILED, KNOWN, expected 00.0°N, 002.941713°E, -20168.62m\n    test 431 circin6 (pygeodesy.sphericalTrigonometry) .cC: 02.951508°N, 000.0°E, -20185.00m  FAILED, KNOWN, expected 02.961566°N, 000.0°E, -20113.46m\n    test 432 circin6 (pygeodesy.sphericalTrigonometry) .dA: 327983.380  FAILED, KNOWN, expected 327263.596\n    test 433 circin6 (pygeodesy.sphericalTrigonometry) .dB: 326745.373  FAILED, KNOWN, expected 326036.153\n    test 434 circin6 (pygeodesy.sphericalTrigonometry) .dC: 326745.373  FAILED, KNOWN, expected 326020.432\n\n    test 435 area cw/ccw: 1.0\n\n    testLatLon(pygeodesy.ellipsoidalNvector, 25.05.12)\n    test 436 isEllipsoidal: True\n    test 437 isSpherical: False\n    test 438 lat/lonDMS: 52.20472°N, 000.14056°E\n    test 439 lat/lonDMS F_DM: 52°12.283′N, 000°08.434′E\n    test 440 lat/lonDMS F_DM: 52°12.2832′N, 000°08.4336′E\n    test 441 lat/lonDMS F_DMS: 52°12′17″N, 000°08′26″E\n    test 442 lat/lonDMS F_DMS: 52°12′17.0″N, 000°08′26.0″E\n    test 443 lat/lonDMS F_RAD: 0.911144N, 0.002453E\n    test 444 isequalTo: True\n    test 445 isequalTo: True\n    test 446 latlon2: 52.20472, 0.14056\n    test 447 latlon2: 52.2047, 0.1406\n    test 448 latlon2: 52.205, 0.141\n    test 449 latlon2: 52.2, 0.14\n    test 450 latlon2: 52.2, 0.1\n    test 451 latlon2: 52.0, 0.0\n    test 452 chordTo: 12029263.15\n    test 453 chordTo: 12029049.69\n    test 454 copy: True\n    test 455 __eq__: True\n    test 456 __ne__: False\n    test 457 equirectangularTo: 404329.56\n    test 458 distanceTo: 404279.720589\n    test 459 distanceTo: 404279.720589\n    test 460 distanceTo: 3972863\n    test 461 distanceTo: 18013602.92\n    test 462 distanceTo: 20015114.35  FAILED, KNOWN, expected 20003931.46\n    test 463 intermediateTo: 51.372294°N, 000.707192°E\n    test 464 intermediateTo: True\n    test 465 intermediateTo: 404279.721\n    test 466 intermediateTo+5: 35.560239°N, 008.833512°E\n    test 467 intermediateTo+5: 4.885\n    test 468 intermediateTo-4: 64.570387°N, 013.156352°W\n    test 469 intermediateTo-4: 3.885\n    test 470 intermediateTo-h: 125.000\n    test 471 midpointTo: 50.536327°N, 001.274614°E\n    test 472 neareston6: (LatLon(45°00′00.0″N, 001°00′00.0″E), 4755443.4294, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E))\n    test 473 neareston6: (LatLon(45°30′03.94″N, 002°00′00.0″E), 39078.729285, 1.501072, 2, LatLon(45°00′00.0″N, 002°00′00.0″E), LatLon(46°00′00.0″N, 002°00′00.0″E))\n./test/testLatLon.py:276: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.ellipsoidalVincenty.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', p.cosineAndoyerLambertTo(q), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:277: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.ellipsoidalVincenty.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', q.cosineAndoyerLambertTo(p), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:279: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.ellipsoidalVincenty.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', p.cosineForsytheAndoyerLambertTo(q), '124801.098' if Sph else '125205.965', fmt='%.3f')\n./test/testLatLon.py:280: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.ellipsoidalVincenty.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', q.cosineForsytheAndoyerLambertTo(p), '124801.098' if Sph else '125205.965', fmt='%.3f')\n    test 474 chordTo: 125203.963\n    test 475 cosineAndoyerLambertTo: 125205.962\n    test 476 cosineAndoyerLambertTo: 125205.962\n    test 477 cosineForsyheAndoyerLambertTo: 125205.965\n    test 478 cosineForsyheAndoyerLambertTo: 125205.965\n    test 479 cosineLawTo: 124801.098\n    test 480 cosineLawTo: 124801.098\n    test 481 equirectangularTo: 124804.754\n    test 482 equirectangularTo: 124804.754\n    test 483 euclideanTo: 130015.089\n    test 484 euclideanTo: 130015.089\n    test 485 flatLocalTo: 125209.633\n    test 486 flatLocalTo: 125209.633\n    test 487 flatPolarTo: 133663.257\n    test 488 flatPolarTo: 133663.257\n    test 489 hartzell: 53.3206°N, 001.7297°W\n# lazily imported pygeodesy.Triaxial from .triaxials.triaxial5 by ellipsoids.py line 1905\n    test 490 hartzell: 53.349541°N, 001.7297°W\n    test 491 height4: 0.0\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by cartesianBase.py line 364\n    test 492 height4: (3820333.9, -115367.0, 5097204.4, -6584.9)\n    test 493 height4: 53°19′14.2″N, 001°43′46.9″W\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by cartesianBase.py line 364\n    test 494 height4: 53°19′14.2″N, 001°43′46.9″W\n    test 495 haversineTo: 124801.098\n    test 496 haversineTo: 124801.098\n    test 497 hubenyTo: <bound method LatLonBase.flatLocalTo of LatLon(53°19′14.16″N, 001°43′46.92″W)>\n    test 498 hubenyTo: <bound method LatLonBase.flatLocalTo of LatLon(53°11′19.32″N, 000°08′00.24″E)>\n    test 499 thomasTo: 125206.188\n    test 500 thomasTo: 125206.188\n    test 501 vincentysTo: 124801.098\n    test 502 vincentysTo: 124801.098\n    test 503 isclockwise: False\n    test 504 isclockwise*: False\n    test 505 isclockwise: True\n    test 506 isclockwise*: True\n    test 507 isclockwise: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 508 isclockwise*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 509 isclockwise: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 510 isclockwise*: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 511 isconvex: False\n    test 512 isconvex*: False\n    test 513 isconvex: True\n    test 514 isconvex*: True\n    test 515 isconvex: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 516 isconvex*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 517 isenclosedBy1: True\n    test 518 isenclosedBy1*: True\n    test 519 isenclosedBy2: False\n    test 520 isenclosedBy2*: False\n    test 521 isenclosedBy3: False\n    test 522 isenclosedBy3*: False\n    test 523 isenclosedBy4: False\n    test 524 isenclosedBy4*: False\n    test 525 isenclosedBy5: False\n    test 526 isenclosedBy5*: False\n    test 527 isenclosedBy6: True\n    test 528 isenclosedBy6*: True\n    test 529 isenclosedBy7: True\n    test 530 isenclosedBy7*: True\n    test 531 isenclosedBy-CCW: True\n    test 532 isenclosedBy-CW : True\n    test 533 isenclosedBy-CCW: True\n    test 534 compassAngleTo: 100.017\n    test 535 compassAngleTo: 105.599\n    test 536 compassAngleTo: 280.017\n    test 537 compassAngleTo: 285.599\n    test 538 equirectangularTo: 592.185\n    test 539 distanceTo: 591.831\n    test 540 compassAngleTo: 0.0\n    test 541 compassAngleTo: 45.0\n    test 542 compassAngleTo: 90.0\n    test 543 compassAngleTo: 180.0\n    test 544 compassAngleTo: 225.0\n    test 545 compassAngleTo: 315.0\n    test 546 compassAngleTo: 270.0\n    test 547 compassAngleTo: 359.4\n    test 548 latlon2: (53.0, 1.0)\n    test 549 philam2: (0.93, 0.02)\n    test 550 compassAngleTo: 31\n    test 551 compassAngleTo: 45\n\n    test 552 boundsOf: <class 'pygeodesy.namedTuples.Bounds2Tuple'>\n    test 553 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 554 latlon2: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 555 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 556 isequalTo: <class 'bool'>\n    test 557 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 558 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 559 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 560 xyz3: <class 'tuple'>\n    test 561 xyzh: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 562 compassAngleTo: <class 'float'>\n    test 563 cosineLawTo: <class 'float'>\n    test 564 euclideanTo: <class 'float'>\n    test 565 flatLocalTo: <class 'float'>\n    test 566 flatPolarTo: <class 'float'>\n    test 567 haversineTo: <class 'float'>\n    test 568 hubenyTo: <class 'float'>\n    test 569 vincentysTo: <class 'float'>\n    test 570 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 571 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 572 toLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 573 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 574 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 575 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 576 toVector: (3934960.466675, 0.0, 5002803.345483)\n    test 577 toVector3d: (0.61823, 0.0, 0.786)\n    test 578 trilaterate5 (pygeodesy.ellipsoidalNvector) .min: 223.305\n    test 579 trilaterate5 (pygeodesy.ellipsoidalNvector) .point: 42.67456065°N, 002.49539502°E\n    test 580 trilaterate5 (pygeodesy.ellipsoidalNvector) .min- is .maxPoint: True\n    test 581 trilaterate5 (pygeodesy.ellipsoidalNvector) .n: 1\n    test 582 trilaterate5 (pygeodesy.ellipsoidalNvector) .error: ellipsoidalNvector.LatLon.trilaterate5(area=True), MRO(nvectorBase.LatLonNvectorBase, ellipsoidalBase.LatLonEllipsoidalBase, latlonBase.LatLonBase, named._NamedBase, ecefLocals._EcefLocal, named._Named): not implemented\n\n    test 583 radii11: Radii11Tuple(rA=7705.84217, rB=1367.057272, rC=498.160185, cR=4897.488519, rIn=740.470746, riS=179.544791, roS=5964.029657, a=1865.217457, b=8204.002354, c=9072.899442, s=9571.059626)\n    test 584 circum4 (pygeodesy.ellipsoidalNvector) .radius: 3184196.839  FAILED, KNOWN, expected 3184256.748\n    test 585 circum4 (pygeodesy.ellipsoidalNvector) .center: 42.674776°N, 002.495488°E, -3184194.95m  FAILED, KNOWN, expected 43.054367°N, 002.942573°E, -3183993.92m\n    test 586 circum4 (pygeodesy.ellipsoidalNvector) .rank: 3\n    test 587 circum4 (pygeodesy.ellipsoidalNvector) .residuals: ()\n    test 588 circum4 (pygeodesy.ellipsoidalNvector) .d1: 4886.122  FAILED, KNOWN, expected 57818.033\n    test 589 circum4 (pygeodesy.ellipsoidalNvector) .d2: 4904.641  FAILED, KNOWN, expected 57834.176\n    test 590 circum4 (pygeodesy.ellipsoidalNvector) .d3: 4909.920  FAILED, KNOWN, expected 57830.992\n    test 591 circum4 (pygeodesy.ellipsoidalNvector) .datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 592 circum4 (pygeodesy.ellipsoidalNvector) .Ecef: <class 'pygeodesy.ecef.EcefVeness'>\n    test 593 radii11: Radii11Tuple(rA=327537.482637, rB=776914.262482, rC=784245.052526, cR=780602.180901, rIn=325058.721103, riS=84975.664195, roS=INF, a=1561159.315008, b=1111782.535163, c=1104451.745119, s=1888696.797645)\n    test 594 circin6 (pygeodesy.ellipsoidalNvector) .rB+rC: 1561159.315\n    test 595 circin6 (pygeodesy.ellipsoidalNvector) .rC+pA: 1111782.535\n    test 596 circin6 (pygeodesy.ellipsoidalNvector) .rA+rB: 1104451.745\n    test 597 circin6 (pygeodesy.ellipsoidalNvector) .radius: 325058.721\n    test 598 circin6 (pygeodesy.ellipsoidalNvector) .center: 02.948531°N, 002.932537°E, -40041.19m\n    test 599 circin6 (pygeodesy.ellipsoidalNvector) .deltas: (0.0, 0.0, 0.224326)  FAILED, KNOWN, expected (0.0, 0.0, 0.090491)\n    test 600 circin6 (pygeodesy.ellipsoidalNvector) .cA: 05.04314°N, 005.014578°E, -48104.09m\n    test 601 circin6 (pygeodesy.ellipsoidalNvector) .cB: 00.0°N, 002.941713°E, -20168.62m\n    test 602 circin6 (pygeodesy.ellipsoidalNvector) .cC: 02.961566°N, 000.0°E, -20113.46m\n    test 603 circin6 (pygeodesy.ellipsoidalNvector) .dA: 327992.318  FAILED, KNOWN, expected 327263.596\n    test 604 circin6 (pygeodesy.ellipsoidalNvector) .dB: 327863.711  FAILED, KNOWN, expected 326036.153\n./pygeodesy/ellipsoidalBase.py:443: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  _ = self.datum.ellipsoid.geodesic\n./pygeodesy/azimuthal.py:636: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return self.datum.ellipsoid.geodesic\n./test/testLatLon.py:627: DeprecationWarning: function L{areaOf<pygeodesy.ellipsoidalVincenty.areaOf>} has been DEPRECATED, use function L{ellipsoidalExact.areaOf} or L{ellipsoidalKarney.areaOf}.\n  r = a(reversed(b))\n./pygeodesy/ellipsoidalKarney.py:139: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return fabs(_polygon(datum.ellipsoid.geodesic, points, True, False, wrap, polar))\n./test/testLatLon.py:628: DeprecationWarning: function L{areaOf<pygeodesy.ellipsoidalVincenty.areaOf>} has been DEPRECATED, use function L{ellipsoidalExact.areaOf} or L{ellipsoidalKarney.areaOf}.\n  f = a(b)  # ccw\n./pygeodesy/ellipsoidalKarney.py:94: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return self.datum.ellipsoid.geodesic\n    test 605 circin6 (pygeodesy.ellipsoidalNvector) .dC: 325653.216  FAILED, KNOWN, expected 326020.432\n\n    testLatLon(pygeodesy.ellipsoidalVincenty, 25.05.26)\n    test 606 isEllipsoidal: True\n    test 607 isSpherical: False\n    test 608 lat/lonDMS: 52.20472°N, 000.14056°E\n    test 609 lat/lonDMS F_DM: 52°12.283′N, 000°08.434′E\n    test 610 lat/lonDMS F_DM: 52°12.2832′N, 000°08.4336′E\n    test 611 lat/lonDMS F_DMS: 52°12′17″N, 000°08′26″E\n    test 612 lat/lonDMS F_DMS: 52°12′17.0″N, 000°08′26.0″E\n    test 613 lat/lonDMS F_RAD: 0.911144N, 0.002453E\n    test 614 isequalTo: True\n    test 615 isequalTo: True\n    test 616 latlon2: 52.20472, 0.14056\n    test 617 latlon2: 52.2047, 0.1406\n    test 618 latlon2: 52.205, 0.141\n    test 619 latlon2: 52.2, 0.14\n    test 620 latlon2: 52.2, 0.1\n    test 621 latlon2: 52.0, 0.0\n    test 622 chordTo: 12029263.15\n    test 623 chordTo: 12029049.69\n    test 624 initialBearingTo: 156.1106\n    test 625 initialBearingTo: 65.9335\n    test 626 initialBearingTo: 0.0\n    test 627 initialBearingTo: 180.0\n    test 628 finalBearingTo: 157.8345\n    test 629 finalBearingTo: 93.9034\n    test 630 bearingTo2: 156.1106, 157.8345\n    test 631 ispolar: True\n    test 632 copy: True\n    test 633 __eq__: True\n    test 634 __ne__: False\n    test 635 equirectangularTo: 404329.56\n    test 636 distanceTo: 404607.805988\n    test 637 distanceTo: 404607.805988\n    test 638 distanceTo: 3981601\n    test 639 antipodal: False\n    test 640 distanceTo dateline: 19959679.267\n    test 641 distanceTo unrolled: 19959679.267\n    test 642 antipodal: False\n    test 643 distanceTo dateline: 9513998\n    test 644 distanceTo unrolled: 9513998\n    test 645 distanceTo: 18012714.66\n    test 646 distanceTo: ambiguous: LatLon(00°00′00.0″N, 000°00′00.0″E) antipodal to LatLon(00°00′00.0″N, 180°00′00.0″E)  FAILED, KNOWN, expected ambiguous, antipodal ...\n    test 647 distanceTo3 dateline: 19959679.2674, 161.0677, 18.8252\n    test 648 distanceTo3 dateline: 9513997.9901, 42.9164, 138.8903\n    test 649 distanceTo3 dateline: 19959679.2674, 161.0677, 18.8252\n    test 650 distanceTo3 dateline: 9513997.9901, 42.9164, 138.8903\n    test 651 intermediateTo: 51.372275°N, 000.707253°E\n    test 652 intermediateTo: True\n    test 653 intermediateTo: 404607.806\n    test 654 intermediateTo+5: 35.139582°N, 008.994368°E\n    test 655 intermediateTo+5: 5.000\n    test 656 intermediateTo-4: 64.894124°N, 013.705689°W\n    test 657 intermediateTo-4: 4.000\n    test 658 intermediateTo-h: 125.000\n    test 659 midpointTo: 50.536583°N, 001.274507°E\n    test 660 destination: 51.513526°N, 000.098038°W\n    test 661 destination: 51°30′49″N, 000°05′53″W\n    test 662 destination: 33°57′N, 118°24′W\n    test 663 destination: 33.950367°N, 118.399012°W\n    test 664 destination: 0.592546N, 2.066453W\n    test 665 destination: 32.11195529°N, 064.56074722°E  FAILED, KNOWN, expected 32.11195529°N, 063.95925278°E\n    test 666 neareston6: (LatLon(45°00′00.0″N, 001°00′00.0″E), 4755443.4294, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E))\n    test 667 neareston6: (LatLon(45°30′03.94″N, 002°00′00.0″E), 39078.729285, 1.501072, 2, LatLon(45°00′00.0″N, 002°00′00.0″E), LatLon(46°00′00.0″N, 002°00′00.0″E))\n    test 668 chordTo: 125203.963\n    test 669 cosineAndoyerLambertTo: 125205.962\n    test 670 cosineAndoyerLambertTo: 125205.962\n    test 671 cosineForsyheAndoyerLambertTo: 125205.965\n    test 672 cosineForsyheAndoyerLambertTo: 125205.965\n    test 673 cosineLawTo: 124801.098\n    test 674 cosineLawTo: 124801.098\n    test 675 equirectangularTo: 124804.754\n    test 676 equirectangularTo: 124804.754\n    test 677 euclideanTo: 130015.089\n    test 678 euclideanTo: 130015.089\n    test 679 flatLocalTo: 125209.633\n    test 680 flatLocalTo: 125209.633\n    test 681 flatPolarTo: 133663.257\n    test 682 flatPolarTo: 133663.257\n    test 683 hartzell: 53.3206°N, 001.7297°W\n# lazily imported pygeodesy.Triaxial from .triaxials.triaxial5 by ellipsoids.py line 1905\n    test 684 hartzell: 53.349541°N, 001.7297°W\n    test 685 height4: 0.0\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by cartesianBase.py line 364\n    test 686 height4: (3820333.9, -115367.0, 5097204.4, -6584.9)\n    test 687 height4: 53°19′14.2″N, 001°43′46.9″W\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by cartesianBase.py line 364\n    test 688 height4: 53°19′14.2″N, 001°43′46.9″W\n    test 689 haversineTo: 124801.098\n    test 690 haversineTo: 124801.098\n    test 691 hubenyTo: <bound method LatLonBase.flatLocalTo of LatLon(53°19′14.16″N, 001°43′46.92″W)>\n    test 692 hubenyTo: <bound method LatLonBase.flatLocalTo of LatLon(53°11′19.32″N, 000°08′00.24″E)>\n    test 693 thomasTo: 125206.188\n    test 694 thomasTo: 125206.188\n    test 695 vincentysTo: 124801.098\n    test 696 vincentysTo: 124801.098\n    test 697 isclockwise: False\n    test 698 isclockwise*: False\n    test 699 isclockwise: True\n    test 700 isclockwise*: True\n    test 701 isclockwise: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 702 isclockwise*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 703 isclockwise: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 704 isclockwise*: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 705 isconvex: False\n    test 706 isconvex*: False\n    test 707 isconvex: True\n    test 708 isconvex*: True\n    test 709 isconvex: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 710 isconvex*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 711 isenclosedBy1: True\n    test 712 isenclosedBy1*: True\n    test 713 isenclosedBy2: False\n    test 714 isenclosedBy2*: False\n    test 715 isenclosedBy3: False\n    test 716 isenclosedBy3*: False\n    test 717 isenclosedBy4: False\n    test 718 isenclosedBy4*: False\n    test 719 isenclosedBy5: False\n    test 720 isenclosedBy5*: False\n    test 721 isenclosedBy6: True\n    test 722 isenclosedBy6*: True\n    test 723 isenclosedBy7: True\n    test 724 isenclosedBy7*: True\n    test 725 isenclosedBy-CCW: True\n    test 726 isenclosedBy-CW : True\n    test 727 isenclosedBy-CCW: True\n    test 728 initialBearingTo: 102.392291\n    test 729 compassAngleTo: 100.017\n    test 730 compassAngleTo: 105.599\n    test 731 initialBearingTo: 288.676039\n    test 732 compassAngleTo: 280.017\n    test 733 compassAngleTo: 285.599\n    test 734 equirectangularTo: 592.185\n    test 735 distanceTo: 593.571\n    test 736 bearingTo: 0.0\n    test 737 compassAngleTo: 0.0\n    test 738 bearingTo: 45.2  FAILED, KNOWN, expected 45.0\n    test 739 compassAngleTo: 45.0\n    test 740 bearingTo: 90.0\n    test 741 compassAngleTo: 90.0\n    test 742 bearingTo: 180.0\n    test 743 compassAngleTo: 180.0\n    test 744 bearingTo: 225.2  FAILED, KNOWN, expected 225.0\n    test 745 compassAngleTo: 225.0\n    test 746 bearingTo: 314.8  FAILED, KNOWN, expected 315.0\n    test 747 compassAngleTo: 315.0\n    test 748 bearingTo: 270.0\n    test 749 compassAngleTo: 270.0\n    test 750 bearingTo: 360.0  FAILED, KNOWN, expected 359.4\n    test 751 compassAngleTo: 359.4\n    test 752 latlon2: (53.0, 1.0)\n    test 753 philam2: (0.93, 0.02)\n    test 754 bearingTo: 31\n    test 755 compassAngleTo: 31\n    test 756 compassAngleTo: 45\n\n    test 757 boundsOf: <class 'pygeodesy.namedTuples.Bounds2Tuple'>\n    test 758 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 759 latlon2: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 760 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 761 isequalTo: <class 'bool'>\n    test 762 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 763 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n./test/testLatLon.py:276: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.ellipsoidalKarney.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', p.cosineAndoyerLambertTo(q), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:277: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.ellipsoidalKarney.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', q.cosineAndoyerLambertTo(p), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:279: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.ellipsoidalKarney.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', p.cosineForsytheAndoyerLambertTo(q), '124801.098' if Sph else '125205.965', fmt='%.3f')\n./test/testLatLon.py:280: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.ellipsoidalKarney.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', q.cosineForsytheAndoyerLambertTo(p), '124801.098' if Sph else '125205.965', fmt='%.3f')\n    test 764 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 765 xyz3: <class 'tuple'>\n    test 766 xyzh: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 767 compassAngleTo: <class 'float'>\n    test 768 cosineLawTo: <class 'float'>\n    test 769 euclideanTo: <class 'float'>\n    test 770 flatLocalTo: <class 'float'>\n    test 771 flatPolarTo: <class 'float'>\n    test 772 haversineTo: <class 'float'>\n    test 773 hubenyTo: <class 'float'>\n    test 774 vincentysTo: <class 'float'>\n    test 775 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 776 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 777 toLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 778 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 779 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 780 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 781 toNvector: (0.615661, 0.0, 0.788011, 0)\n    test 782 toVector: (3934960.466675, 0.0, 5002803.345483)\n    test 783 toVector3d: (0.61823, 0.0, 0.786)\n# lazily imported pygeodesy.geodesicw by ellipsoids.py line 1074\n# lazily imported pygeodesy.azimuthal by ellipsoidalBase.py line 444\n\n    test 784 trilaterate5 (pygeodesy.ellipsoidalVincenty) .min: 305.091\n    test 785 trilaterate5 (pygeodesy.ellipsoidalVincenty) .point: 42.66933643°N, 002.48620262°E\n    test 786 trilaterate5 (pygeodesy.ellipsoidalVincenty) .max: 1592.545\n    test 787 trilaterate5 (pygeodesy.ellipsoidalVincenty) .point: 42.65141232°N, 002.46816989°E\n    test 788 trilaterate5 (pygeodesy.ellipsoidalVincenty) .n: 3\n    test 789 trilaterate5 (pygeodesy.ellipsoidalVincenty) .min: 127.229\n    test 790 trilaterate5 (pygeodesy.ellipsoidalVincenty) .max: 152.612\n    test 791 trilaterate5 (pygeodesy.ellipsoidalVincenty) .point: 42.67815375°N, 002.49950041°E\n    test 792 trilaterate5 (pygeodesy.ellipsoidalVincenty) .n: 2\n    test 793 trilaterate5 (pygeodesy.ellipsoidalVincenty) .min: 2400.293\n    test 794 trilaterate5 (pygeodesy.ellipsoidalVincenty) .max: 2400.293\n    test 795 trilaterate5 (pygeodesy.ellipsoidalVincenty) .point: 42.66128984°N, 002.47973818°E\n    test 796 trilaterate5 (pygeodesy.ellipsoidalVincenty) .min- is .maxPoint: True\n    test 797 trilaterate5 (pygeodesy.ellipsoidalVincenty) .n: 1\n    test 798 trilaterate5 (pygeodesy.ellipsoidalVincenty) .min: 1343.743\n    test 799 trilaterate5 (pygeodesy.ellipsoidalVincenty) .point: 42.69131964°N, 002.50112167°E\n    test 800 trilaterate5 (pygeodesy.ellipsoidalVincenty) .max: 1445.554\n    test 801 trilaterate5 (pygeodesy.ellipsoidalVincenty) .point: 42.67815375°N, 002.49950041°E\n    test 802 trilaterate5 (pygeodesy.ellipsoidalVincenty) .n: 2\n    test 803 radii11: Radii11Tuple(rA=7244.792747, rB=1828.106695, rC=2.25502, cR=57792.067128, rIn=57.366968, riS=2.087668, roS=2.443334, a=1830.361715, b=7247.047766, c=9072.899442, s=9075.154461)\n    test 804 circum3 (pygeodesy.ellipsoidalVincenty) .radius: 57792.067\n    test 805 circum3 (pygeodesy.ellipsoidalVincenty) .center: 43.053532°N, 002.943255°E, -261.66m\n    test 806 circum3 (pygeodesy.ellipsoidalVincenty) .deltas: (-0.0, 0.0, 9.827)  FAILED, KNOWN, expected (0.0, 0.0, 11.383)\n    test 807 circum3 (pygeodesy.ellipsoidalVincenty) .d1: 57792.858\n    test 808 circum3 (pygeodesy.ellipsoidalVincenty) .d2: 57792.859\n    test 809 circum3 (pygeodesy.ellipsoidalVincenty) .d3: 57792.859\n    test 810 circum3 (pygeodesy.ellipsoidalVincenty) .datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 811 circum3 (pygeodesy.ellipsoidalVincenty) .Ecef: <class 'pygeodesy.ecef.EcefVeness'>\n\n    test 812 radii11: Radii11Tuple(rA=7244.792747, rB=1828.106695, rC=2.25502, cR=57792.067128, rIn=57.366968, riS=2.087668, roS=2.443334, a=1830.361715, b=7247.047766, c=9072.899442, s=9075.154461)\n    test 813 circum4 (pygeodesy.ellipsoidalVincenty) .radius: 3184256.748\n    test 814 circum4 (pygeodesy.ellipsoidalVincenty) .center: 43.054367°N, 002.942573°E, -3183993.92m\n    test 815 circum4 (pygeodesy.ellipsoidalVincenty) .rank: 3\n    test 816 circum4 (pygeodesy.ellipsoidalVincenty) .residuals: ()\n    test 817 circum4 (pygeodesy.ellipsoidalVincenty) .d1: 57818.033\n    test 818 circum4 (pygeodesy.ellipsoidalVincenty) .d2: 57834.176\n    test 819 circum4 (pygeodesy.ellipsoidalVincenty) .d3: 57830.992\n    test 820 circum4 (pygeodesy.ellipsoidalVincenty) .datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 821 circum4 (pygeodesy.ellipsoidalVincenty) .Ecef: <class 'pygeodesy.ecef.EcefVeness'>\n    test 822 radii11: Radii11Tuple(rA=327537.482637, rB=776914.262482, rC=784245.052526, cR=780602.180901, rIn=325058.721103, riS=84975.664195, roS=INF, a=1561159.315008, b=1111782.535163, c=1104451.745119, s=1888696.797645)\n    test 823 circin6 (pygeodesy.ellipsoidalVincenty) .rB+rC: 1561159.315\n    test 824 circin6 (pygeodesy.ellipsoidalVincenty) .rC+pA: 1111782.535\n    test 825 circin6 (pygeodesy.ellipsoidalVincenty) .rA+rB: 1104451.745\n    test 826 circin6 (pygeodesy.ellipsoidalVincenty) .radius: 325058.721\n    test 827 circin6 (pygeodesy.ellipsoidalVincenty) .center: 02.948531°N, 002.932537°E, -40041.19m\n    test 828 circin6 (pygeodesy.ellipsoidalVincenty) .deltas: (0.0, 0.0, 0.224326)  FAILED, KNOWN, expected (0.0, 0.0, 0.090491)\n    test 829 circin6 (pygeodesy.ellipsoidalVincenty) .cA: 05.04314°N, 005.014578°E, -48104.09m\n    test 830 circin6 (pygeodesy.ellipsoidalVincenty) .cB: 00.0°N, 002.941713°E, -20168.62m\n    test 831 circin6 (pygeodesy.ellipsoidalVincenty) .cC: 02.961566°N, 000.0°E, -20113.46m\n    test 832 circin6 (pygeodesy.ellipsoidalVincenty) .dA: 327263.596\n    test 833 circin6 (pygeodesy.ellipsoidalVincenty) .dB: 326036.153\n    test 834 circin6 (pygeodesy.ellipsoidalVincenty) .dC: 326020.432\n# lazily imported pygeodesy.ellipsoidalKarney by ellipsoidalVincenty.py line 383\n\n    test 835 area cw/ccw: 1.0\n\n    testLatLon(pygeodesy.ellipsoidalKarney, 25.05.27)\n    test 836 isEllipsoidal: True\n    test 837 isSpherical: False\n    test 838 lat/lonDMS: 52.20472°N, 000.14056°E\n    test 839 lat/lonDMS F_DM: 52°12.283′N, 000°08.434′E\n    test 840 lat/lonDMS F_DM: 52°12.2832′N, 000°08.4336′E\n    test 841 lat/lonDMS F_DMS: 52°12′17″N, 000°08′26″E\n    test 842 lat/lonDMS F_DMS: 52°12′17.0″N, 000°08′26.0″E\n    test 843 lat/lonDMS F_RAD: 0.911144N, 0.002453E\n    test 844 isequalTo: True\n    test 845 isequalTo: True\n    test 846 latlon2: 52.20472, 0.14056\n    test 847 latlon2: 52.2047, 0.1406\n    test 848 latlon2: 52.205, 0.141\n    test 849 latlon2: 52.2, 0.14\n    test 850 latlon2: 52.2, 0.1\n    test 851 latlon2: 52.0, 0.0\n    test 852 chordTo: 12029263.15\n    test 853 chordTo: 12029049.69\n    test 854 initialBearingTo: 156.1106\n    test 855 initialBearingTo: 65.9335\n    test 856 initialBearingTo: 0.0\n    test 857 initialBearingTo: 180.0\n    test 858 finalBearingTo: 157.8345\n    test 859 finalBearingTo: 93.9034\n    test 860 bearingTo2: 156.1106, 157.8345\n    test 861 ispolar: True\n    test 862 copy: True\n    test 863 __eq__: True\n    test 864 __ne__: False\n    test 865 equirectangularTo: 404329.56\n    test 866 distanceTo: 404607.805988\n    test 867 distanceTo: 404607.805988\n    test 868 distanceTo: 3981601\n    test 869 antipodal: False\n    test 870 distanceTo dateline: 19959679.267\n    test 871 distanceTo unrolled: 19959679.267\n    test 872 antipodal: False\n    test 873 distanceTo dateline: 9513998\n    test 874 distanceTo unrolled: 9513998\n    test 875 distanceTo: 18012714.66\n    test 876 distanceTo: 20003931.46\n    test 877 distanceTo3 dateline: 19959679.2674, 161.0677, 18.8252\n    test 878 distanceTo3 dateline: 9513997.9901, 42.9164, 138.8903\n    test 879 distanceTo3 dateline: 19959679.2674, 161.0677, 18.8252\n    test 880 distanceTo3 dateline: 9513997.9901, 42.9164, 138.8903\n    test 881 intermediateTo: 51.372275°N, 000.707253°E\n    test 882 intermediateTo: True\n    test 883 intermediateTo: 404607.806\n    test 884 intermediateTo+5: 35.139582°N, 008.994368°E\n    test 885 intermediateTo+5: 5.000\n    test 886 intermediateTo-4: 64.894124°N, 013.705689°W\n    test 887 intermediateTo-4: 4.000\n    test 888 intermediateTo-h: 125.000\n    test 889 midpointTo: 50.536583°N, 001.274507°E\n./test/testLatLon.py:276: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.ellipsoidalGeodSolve.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', p.cosineAndoyerLambertTo(q), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:277: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.ellipsoidalGeodSolve.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', q.cosineAndoyerLambertTo(p), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:279: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.ellipsoidalGeodSolve.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', p.cosineForsytheAndoyerLambertTo(q), '124801.098' if Sph else '125205.965', fmt='%.3f')\n./test/testLatLon.py:280: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.ellipsoidalGeodSolve.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', q.cosineForsytheAndoyerLambertTo(p), '124801.098' if Sph else '125205.965', fmt='%.3f')\n    test 890 destination: 51.513526°N, 000.098038°W\n    test 891 destination: 51°30′49″N, 000°05′53″W\n    test 892 destination: 33°57′N, 118°24′W\n    test 893 destination: 33.950367°N, 118.399012°W\n    test 894 destination: 0.592546N, 2.066453W\n    test 895 destination: 32.11195529°N, 064.56074722°E  FAILED, KNOWN, expected 32.11195529°N, 063.95925278°E\n    test 896 neareston6: (LatLon(45°00′00.0″N, 001°00′00.0″E), 4755443.4294, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E))\n    test 897 neareston6: (LatLon(45°30′03.94″N, 002°00′00.0″E), 39078.729285, 1.501072, 2, LatLon(45°00′00.0″N, 002°00′00.0″E), LatLon(46°00′00.0″N, 002°00′00.0″E))\n    test 898 chordTo: 125203.963\n    test 899 cosineAndoyerLambertTo: 125205.962\n    test 900 cosineAndoyerLambertTo: 125205.962\n    test 901 cosineForsyheAndoyerLambertTo: 125205.965\n    test 902 cosineForsyheAndoyerLambertTo: 125205.965\n    test 903 cosineLawTo: 124801.098\n    test 904 cosineLawTo: 124801.098\n    test 905 equirectangularTo: 124804.754\n    test 906 equirectangularTo: 124804.754\n    test 907 euclideanTo: 130015.089\n    test 908 euclideanTo: 130015.089\n    test 909 flatLocalTo: 125209.633\n    test 910 flatLocalTo: 125209.633\n    test 911 flatPolarTo: 133663.257\n    test 912 flatPolarTo: 133663.257\n    test 913 hartzell: 53.3206°N, 001.7297°W\n# lazily imported pygeodesy.Triaxial from .triaxials.triaxial5 by ellipsoids.py line 1905\n    test 914 hartzell: 53.349541°N, 001.7297°W\n    test 915 height4: 0.0\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by cartesianBase.py line 364\n    test 916 height4: (3820333.9, -115367.0, 5097204.4, -6584.9)\n    test 917 height4: 53°19′14.2″N, 001°43′46.9″W\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by cartesianBase.py line 364\n    test 918 height4: 53°19′14.2″N, 001°43′46.9″W\n    test 919 haversineTo: 124801.098\n    test 920 haversineTo: 124801.098\n    test 921 hubenyTo: <bound method LatLonBase.flatLocalTo of LatLon(53°19′14.16″N, 001°43′46.92″W)>\n    test 922 hubenyTo: <bound method LatLonBase.flatLocalTo of LatLon(53°11′19.32″N, 000°08′00.24″E)>\n    test 923 thomasTo: 125206.188\n    test 924 thomasTo: 125206.188\n    test 925 vincentysTo: 124801.098\n    test 926 vincentysTo: 124801.098\n    test 927 isclockwise: False\n    test 928 isclockwise*: False\n    test 929 isclockwise: True\n    test 930 isclockwise*: True\n    test 931 isclockwise: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 932 isclockwise*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 933 isclockwise: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 934 isclockwise*: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 935 isconvex: False\n    test 936 isconvex*: False\n    test 937 isconvex: True\n    test 938 isconvex*: True\n    test 939 isconvex: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 940 isconvex*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 941 isenclosedBy1: True\n    test 942 isenclosedBy1*: True\n    test 943 isenclosedBy2: False\n    test 944 isenclosedBy2*: False\n    test 945 isenclosedBy3: False\n    test 946 isenclosedBy3*: False\n    test 947 isenclosedBy4: False\n    test 948 isenclosedBy4*: False\n    test 949 isenclosedBy5: False\n    test 950 isenclosedBy5*: False\n    test 951 isenclosedBy6: True\n    test 952 isenclosedBy6*: True\n    test 953 isenclosedBy7: True\n    test 954 isenclosedBy7*: True\n    test 955 isenclosedBy-CCW: True\n    test 956 isenclosedBy-CW : True\n    test 957 isenclosedBy-CCW: True\n    test 958 initialBearingTo: 102.392291\n    test 959 compassAngleTo: 100.017\n    test 960 compassAngleTo: 105.599\n    test 961 initialBearingTo: 288.676039\n    test 962 compassAngleTo: 280.017\n    test 963 compassAngleTo: 285.599\n    test 964 equirectangularTo: 592.185\n    test 965 distanceTo: 593.571\n    test 966 bearingTo: 0.0\n    test 967 compassAngleTo: 0.0\n    test 968 bearingTo: 45.2  FAILED, KNOWN, expected 45.0\n    test 969 compassAngleTo: 45.0\n    test 970 bearingTo: 90.0\n    test 971 compassAngleTo: 90.0\n    test 972 bearingTo: 180.0\n    test 973 compassAngleTo: 180.0\n    test 974 bearingTo: 225.2  FAILED, KNOWN, expected 225.0\n    test 975 compassAngleTo: 225.0\n    test 976 bearingTo: 314.8  FAILED, KNOWN, expected 315.0\n    test 977 compassAngleTo: 315.0\n    test 978 bearingTo: 270.0\n    test 979 compassAngleTo: 270.0\n    test 980 bearingTo: 0.0  FAILED, KNOWN, expected 359.4\n    test 981 compassAngleTo: 359.4\n    test 982 latlon2: (53.0, 1.0)\n    test 983 philam2: (0.93, 0.02)\n    test 984 bearingTo: 31\n    test 985 compassAngleTo: 31\n    test 986 compassAngleTo: 45\n\n    test 987 boundsOf: <class 'pygeodesy.namedTuples.Bounds2Tuple'>\n    test 988 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 989 latlon2: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 990 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 991 isequalTo: <class 'bool'>\n    test 992 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 993 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 994 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 995 xyz3: <class 'tuple'>\n    test 996 xyzh: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 997 compassAngleTo: <class 'float'>\n    test 998 cosineLawTo: <class 'float'>\n    test 999 euclideanTo: <class 'float'>\n    test 1000 flatLocalTo: <class 'float'>\n    test 1001 flatPolarTo: <class 'float'>\n    test 1002 haversineTo: <class 'float'>\n    test 1003 hubenyTo: <class 'float'>\n    test 1004 vincentysTo: <class 'float'>\n    test 1005 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 1006 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 1007 toLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 1008 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 1009 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 1010 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 1011 toNvector: (0.615661, 0.0, 0.788011, 0)\n    test 1012 toVector: (3934960.466675, 0.0, 5002803.345483)\n    test 1013 toVector3d: (0.61823, 0.0, 0.786)\n\n    test 1014 trilaterate5 (pygeodesy.ellipsoidalKarney) .min: 305.091\n    test 1015 trilaterate5 (pygeodesy.ellipsoidalKarney) .point: 42.66933643°N, 002.48620262°E\n    test 1016 trilaterate5 (pygeodesy.ellipsoidalKarney) .max: 1592.545\n    test 1017 trilaterate5 (pygeodesy.ellipsoidalKarney) .point: 42.65141232°N, 002.46816989°E\n    test 1018 trilaterate5 (pygeodesy.ellipsoidalKarney) .n: 3\n    test 1019 trilaterate5 (pygeodesy.ellipsoidalKarney) .min: 127.229\n    test 1020 trilaterate5 (pygeodesy.ellipsoidalKarney) .max: 152.612\n    test 1021 trilaterate5 (pygeodesy.ellipsoidalKarney) .point: 42.67815375°N, 002.49950041°E\n    test 1022 trilaterate5 (pygeodesy.ellipsoidalKarney) .n: 2\n    test 1023 trilaterate5 (pygeodesy.ellipsoidalKarney) .min: 2400.293\n    test 1024 trilaterate5 (pygeodesy.ellipsoidalKarney) .max: 2400.293\n    test 1025 trilaterate5 (pygeodesy.ellipsoidalKarney) .point: 42.66128984°N, 002.47973818°E\n    test 1026 trilaterate5 (pygeodesy.ellipsoidalKarney) .min- is .maxPoint: True\n    test 1027 trilaterate5 (pygeodesy.ellipsoidalKarney) .n: 1\n    test 1028 trilaterate5 (pygeodesy.ellipsoidalKarney) .min: 1343.743\n    test 1029 trilaterate5 (pygeodesy.ellipsoidalKarney) .point: 42.69131964°N, 002.50112167°E\n    test 1030 trilaterate5 (pygeodesy.ellipsoidalKarney) .max: 1445.554\n    test 1031 trilaterate5 (pygeodesy.ellipsoidalKarney) .point: 42.67815375°N, 002.49950041°E\n    test 1032 trilaterate5 (pygeodesy.ellipsoidalKarney) .n: 2\n    test 1033 radii11: Radii11Tuple(rA=7244.792747, rB=1828.106695, rC=2.25502, cR=57792.067128, rIn=57.366968, riS=2.087668, roS=2.443334, a=1830.361715, b=7247.047766, c=9072.899442, s=9075.154461)\n    test 1034 circum3 (pygeodesy.ellipsoidalKarney) .radius: 57792.067\n    test 1035 circum3 (pygeodesy.ellipsoidalKarney) .center: 43.053532°N, 002.943255°E, -261.66m\n    test 1036 circum3 (pygeodesy.ellipsoidalKarney) .deltas: (-0.0, 0.0, 9.827)  FAILED, KNOWN, expected (0.0, 0.0, 11.383)\n    test 1037 circum3 (pygeodesy.ellipsoidalKarney) .d1: 57792.858\n    test 1038 circum3 (pygeodesy.ellipsoidalKarney) .d2: 57792.859\n    test 1039 circum3 (pygeodesy.ellipsoidalKarney) .d3: 57792.859\n    test 1040 circum3 (pygeodesy.ellipsoidalKarney) .datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 1041 circum3 (pygeodesy.ellipsoidalKarney) .Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n\n    test 1042 radii11: Radii11Tuple(rA=7244.792747, rB=1828.106695, rC=2.25502, cR=57792.067128, rIn=57.366968, riS=2.087668, roS=2.443334, a=1830.361715, b=7247.047766, c=9072.899442, s=9075.154461)\n    test 1043 circum4 (pygeodesy.ellipsoidalKarney) .radius: 3184256.748\n    test 1044 circum4 (pygeodesy.ellipsoidalKarney) .center: 43.054367°N, 002.942573°E, -3183993.92m\n    test 1045 circum4 (pygeodesy.ellipsoidalKarney) .rank: 3\n    test 1046 circum4 (pygeodesy.ellipsoidalKarney) .residuals: ()\n    test 1047 circum4 (pygeodesy.ellipsoidalKarney) .d1: 57818.033\n    test 1048 circum4 (pygeodesy.ellipsoidalKarney) .d2: 57834.176\n    test 1049 circum4 (pygeodesy.ellipsoidalKarney) .d3: 57830.992\n    test 1050 circum4 (pygeodesy.ellipsoidalKarney) .datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 1051 circum4 (pygeodesy.ellipsoidalKarney) .Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 1052 radii11: Radii11Tuple(rA=327537.482637, rB=776914.262482, rC=784245.052526, cR=780602.180901, rIn=325058.721103, riS=84975.664195, roS=INF, a=1561159.315008, b=1111782.535163, c=1104451.745119, s=1888696.797645)\n    test 1053 circin6 (pygeodesy.ellipsoidalKarney) .rB+rC: 1561159.315\n    test 1054 circin6 (pygeodesy.ellipsoidalKarney) .rC+pA: 1111782.535\n    test 1055 circin6 (pygeodesy.ellipsoidalKarney) .rA+rB: 1104451.745\n    test 1056 circin6 (pygeodesy.ellipsoidalKarney) .radius: 325058.721\n    test 1057 circin6 (pygeodesy.ellipsoidalKarney) .center: 02.948531°N, 002.932537°E, -40041.19m\n    test 1058 circin6 (pygeodesy.ellipsoidalKarney) .deltas: (0.0, 0.0, 0.224326)  FAILED, KNOWN, expected (0.0, 0.0, 0.090491)\n    test 1059 circin6 (pygeodesy.ellipsoidalKarney) .cA: 05.04314°N, 005.014578°E, -48104.09m\n    test 1060 circin6 (pygeodesy.ellipsoidalKarney) .cB: 00.0°N, 002.941713°E, -20168.62m\n    test 1061 circin6 (pygeodesy.ellipsoidalKarney) .cC: 02.961566°N, 000.0°E, -20113.46m\n    test 1062 circin6 (pygeodesy.ellipsoidalKarney) .dA: 327263.596\n    test 1063 circin6 (pygeodesy.ellipsoidalKarney) .dB: 326036.153\n    test 1064 circin6 (pygeodesy.ellipsoidalKarney) .dC: 326020.432\n\n    test 1065 area cw/ccw: 1.0\n# lazily imported pygeodesy.ellipsoidalGeodSolve by testLatLon.py line 655\n\n    testLatLon(pygeodesy.ellipsoidalGeodSolve, 25.08.28)\n    test 1066 isEllipsoidal: True\n    test 1067 isSpherical: False\n    test 1068 lat/lonDMS: 52.20472°N, 000.14056°E\n    test 1069 lat/lonDMS F_DM: 52°12.283′N, 000°08.434′E\n    test 1070 lat/lonDMS F_DM: 52°12.2832′N, 000°08.4336′E\n    test 1071 lat/lonDMS F_DMS: 52°12′17″N, 000°08′26″E\n    test 1072 lat/lonDMS F_DMS: 52°12′17.0″N, 000°08′26.0″E\n    test 1073 lat/lonDMS F_RAD: 0.911144N, 0.002453E\n    test 1074 isequalTo: True\n    test 1075 isequalTo: True\n    test 1076 latlon2: 52.20472, 0.14056\n    test 1077 latlon2: 52.2047, 0.1406\n    test 1078 latlon2: 52.205, 0.141\n    test 1079 latlon2: 52.2, 0.14\n    test 1080 latlon2: 52.2, 0.1\n    test 1081 latlon2: 52.0, 0.0\n    test 1082 chordTo: 12029263.15\n    test 1083 chordTo: 12029049.69\n# lazily imported pygeodesy.geodsolve by ellipsoids.py line 1093\n    test 1084 initialBearingTo: 156.1106\n    test 1085 initialBearingTo: 65.9335\n    test 1086 initialBearingTo: 0.0\n    test 1087 initialBearingTo: 180.0\n    test 1088 finalBearingTo: 157.8345\n    test 1089 finalBearingTo: 93.9034\n    test 1090 bearingTo2: 156.1106, 157.8345\n    test 1091 ispolar: True\n    test 1092 copy: True\n    test 1093 __eq__: True\n    test 1094 __ne__: False\n    test 1095 equirectangularTo: 404329.56\n    test 1096 distanceTo: 404607.805988\n    test 1097 distanceTo: 404607.805988\n    test 1098 distanceTo: 3981601\n    test 1099 antipodal: False\n    test 1100 distanceTo dateline: 19959679.267\n    test 1101 distanceTo unrolled: 19959679.267\n    test 1102 antipodal: False\n    test 1103 distanceTo dateline: 9513998\n    test 1104 distanceTo unrolled: 9513998\n    test 1105 distanceTo: 18012714.66\n    test 1106 distanceTo: 20003931.46\n    test 1107 distanceTo3 dateline: 19959679.2674, 161.0677, 18.8252\n    test 1108 distanceTo3 dateline: 9513997.9901, 42.9164, 138.8903\n    test 1109 distanceTo3 dateline: 19959679.2674, 161.0677, 18.8252\n    test 1110 distanceTo3 dateline: 9513997.9901, 42.9164, 138.8903\n    test 1111 intermediateTo: 51.372275°N, 000.707253°E\n    test 1112 intermediateTo: True\n    test 1113 intermediateTo: 404607.806\n    test 1114 intermediateTo+5: 35.139582°N, 008.994368°E\n    test 1115 intermediateTo+5: 5.000\n    test 1116 intermediateTo-4: 64.894124°N, 013.705689°W\n    test 1117 intermediateTo-4: 4.000\n    test 1118 intermediateTo-h: 125.000\n    test 1119 midpointTo: 50.536583°N, 001.274507°E\n    test 1120 destination: 51.513526°N, 000.098038°W\n    test 1121 destination: 51°30′49″N, 000°05′53″W\n    test 1122 destination: 33°57′N, 118°24′W\n    test 1123 destination: 33.950367°N, 118.399012°W\n    test 1124 destination: 0.592546N, 2.066453W\n    test 1125 destination: 32.11195529°N, 064.56074722°E  FAILED, KNOWN, expected 32.11195529°N, 063.95925278°E\n    test 1126 neareston6: (LatLon(45°00′00.0″N, 001°00′00.0″E), 4755443.4294, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E))\n    test 1127 neareston6: (LatLon(45°30′03.94″N, 002°00′00.0″E), 39078.729285, 1.501072, 2, LatLon(45°00′00.0″N, 002°00′00.0″E), LatLon(46°00′00.0″N, 002°00′00.0″E))\n    test 1128 chordTo: 125203.963\n    test 1129 cosineAndoyerLambertTo: 125205.962\n    test 1130 cosineAndoyerLambertTo: 125205.962\n    test 1131 cosineForsyheAndoyerLambertTo: 125205.965\n    test 1132 cosineForsyheAndoyerLambertTo: 125205.965\n    test 1133 cosineLawTo: 124801.098\n    test 1134 cosineLawTo: 124801.098\n    test 1135 equirectangularTo: 124804.754\n    test 1136 equirectangularTo: 124804.754\n    test 1137 euclideanTo: 130015.089\n    test 1138 euclideanTo: 130015.089\n    test 1139 flatLocalTo: 125209.633\n    test 1140 flatLocalTo: 125209.633\n    test 1141 flatPolarTo: 133663.257\n    test 1142 flatPolarTo: 133663.257\n    test 1143 hartzell: 53.3206°N, 001.7297°W\n# lazily imported pygeodesy.Triaxial from .triaxials.triaxial5 by ellipsoids.py line 1905\n    test 1144 hartzell: 53.349541°N, 001.7297°W\n    test 1145 height4: 0.0\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by cartesianBase.py line 364\n    test 1146 height4: (3820333.9, -115367.0, 5097204.4, -6584.9)\n    test 1147 height4: 53°19′14.2″N, 001°43′46.9″W\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by cartesianBase.py line 364\n    test 1148 height4: 53°19′14.2″N, 001°43′46.9″W\n    test 1149 haversineTo: 124801.098\n    test 1150 haversineTo: 124801.098\n    test 1151 hubenyTo: <bound method LatLonBase.flatLocalTo of LatLon(53°19′14.16″N, 001°43′46.92″W)>\n    test 1152 hubenyTo: <bound method LatLonBase.flatLocalTo of LatLon(53°11′19.32″N, 000°08′00.24″E)>\n    test 1153 thomasTo: 125206.188\n    test 1154 thomasTo: 125206.188\n    test 1155 vincentysTo: 124801.098\n    test 1156 vincentysTo: 124801.098\n    test 1157 isclockwise: False\n    test 1158 isclockwise*: False\n    test 1159 isclockwise: True\n    test 1160 isclockwise*: True\n    test 1161 isclockwise: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 1162 isclockwise*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n./test/testLatLon.py:276: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.ellipsoidalExact.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', p.cosineAndoyerLambertTo(q), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:277: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.ellipsoidalExact.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', q.cosineAndoyerLambertTo(p), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:279: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.ellipsoidalExact.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', p.cosineForsytheAndoyerLambertTo(q), '124801.098' if Sph else '125205.965', fmt='%.3f')\n./test/testLatLon.py:280: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.ellipsoidalExact.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', q.cosineForsytheAndoyerLambertTo(p), '124801.098' if Sph else '125205.965', fmt='%.3f')\n    test 1163 isclockwise: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 1164 isclockwise*: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 1165 isconvex: False\n    test 1166 isconvex*: False\n    test 1167 isconvex: True\n    test 1168 isconvex*: True\n    test 1169 isconvex: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 1170 isconvex*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 1171 isenclosedBy1: True\n    test 1172 isenclosedBy1*: True\n    test 1173 isenclosedBy2: False\n    test 1174 isenclosedBy2*: False\n    test 1175 isenclosedBy3: False\n    test 1176 isenclosedBy3*: False\n    test 1177 isenclosedBy4: False\n    test 1178 isenclosedBy4*: False\n    test 1179 isenclosedBy5: False\n    test 1180 isenclosedBy5*: False\n    test 1181 isenclosedBy6: True\n    test 1182 isenclosedBy6*: True\n    test 1183 isenclosedBy7: True\n    test 1184 isenclosedBy7*: True\n    test 1185 isenclosedBy-CCW: True\n    test 1186 isenclosedBy-CW : True\n    test 1187 isenclosedBy-CCW: True\n    test 1188 initialBearingTo: 102.392291\n    test 1189 compassAngleTo: 100.017\n    test 1190 compassAngleTo: 105.599\n    test 1191 initialBearingTo: 288.676039\n    test 1192 compassAngleTo: 280.017\n    test 1193 compassAngleTo: 285.599\n    test 1194 equirectangularTo: 592.185\n    test 1195 distanceTo: 593.571\n    test 1196 bearingTo: 0.0\n    test 1197 compassAngleTo: 0.0\n    test 1198 bearingTo: 45.2  FAILED, KNOWN, expected 45.0\n    test 1199 compassAngleTo: 45.0\n    test 1200 bearingTo: 90.0\n    test 1201 compassAngleTo: 90.0\n    test 1202 bearingTo: 180.0\n    test 1203 compassAngleTo: 180.0\n    test 1204 bearingTo: 225.2  FAILED, KNOWN, expected 225.0\n    test 1205 compassAngleTo: 225.0\n    test 1206 bearingTo: 314.8  FAILED, KNOWN, expected 315.0\n    test 1207 compassAngleTo: 315.0\n    test 1208 bearingTo: 270.0\n    test 1209 compassAngleTo: 270.0\n    test 1210 bearingTo: 0.0  FAILED, KNOWN, expected 359.4\n    test 1211 compassAngleTo: 359.4\n    test 1212 latlon2: (53.0, 1.0)\n    test 1213 philam2: (0.93, 0.02)\n    test 1214 bearingTo: 31\n    test 1215 compassAngleTo: 31\n    test 1216 compassAngleTo: 45\n\n    test 1217 boundsOf: <class 'pygeodesy.namedTuples.Bounds2Tuple'>\n    test 1218 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 1219 latlon2: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 1220 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 1221 isequalTo: <class 'bool'>\n    test 1222 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 1223 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 1224 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 1225 xyz3: <class 'tuple'>\n    test 1226 xyzh: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 1227 compassAngleTo: <class 'float'>\n    test 1228 cosineLawTo: <class 'float'>\n    test 1229 euclideanTo: <class 'float'>\n    test 1230 flatLocalTo: <class 'float'>\n    test 1231 flatPolarTo: <class 'float'>\n    test 1232 haversineTo: <class 'float'>\n    test 1233 hubenyTo: <class 'float'>\n    test 1234 vincentysTo: <class 'float'>\n    test 1235 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 1236 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 1237 toLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 1238 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 1239 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 1240 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 1241 toNvector: (0.615661, 0.0, 0.788011, 0)\n    test 1242 toVector: (3934960.466675, 0.0, 5002803.345483)\n    test 1243 toVector3d: (0.61823, 0.0, 0.786)\n\n    test 1244 trilaterate5 (pygeodesy.ellipsoidalGeodSolve) .min: 305.091\n    test 1245 trilaterate5 (pygeodesy.ellipsoidalGeodSolve) .point: 42.66933643°N, 002.48620262°E\n    test 1246 trilaterate5 (pygeodesy.ellipsoidalGeodSolve) .max: 1592.545\n    test 1247 trilaterate5 (pygeodesy.ellipsoidalGeodSolve) .point: 42.65141232°N, 002.46816989°E\n    test 1248 trilaterate5 (pygeodesy.ellipsoidalGeodSolve) .n: 3\n    test 1249 trilaterate5 (pygeodesy.ellipsoidalGeodSolve) .min: 127.229\n    test 1250 trilaterate5 (pygeodesy.ellipsoidalGeodSolve) .max: 152.612\n    test 1251 trilaterate5 (pygeodesy.ellipsoidalGeodSolve) .point: 42.67815375°N, 002.49950041°E\n    test 1252 trilaterate5 (pygeodesy.ellipsoidalGeodSolve) .n: 2\n    test 1253 trilaterate5 (pygeodesy.ellipsoidalGeodSolve) .min: 2400.293\n    test 1254 trilaterate5 (pygeodesy.ellipsoidalGeodSolve) .max: 2400.293\n    test 1255 trilaterate5 (pygeodesy.ellipsoidalGeodSolve) .point: 42.66128984°N, 002.47973818°E\n    test 1256 trilaterate5 (pygeodesy.ellipsoidalGeodSolve) .min- is .maxPoint: True\n    test 1257 trilaterate5 (pygeodesy.ellipsoidalGeodSolve) .n: 1\n    test 1258 trilaterate5 (pygeodesy.ellipsoidalGeodSolve) .min: 1343.743\n    test 1259 trilaterate5 (pygeodesy.ellipsoidalGeodSolve) .point: 42.69131964°N, 002.50112167°E\n    test 1260 trilaterate5 (pygeodesy.ellipsoidalGeodSolve) .max: 1445.554\n    test 1261 trilaterate5 (pygeodesy.ellipsoidalGeodSolve) .point: 42.67815375°N, 002.49950041°E\n    test 1262 trilaterate5 (pygeodesy.ellipsoidalGeodSolve) .n: 2\n    test 1263 radii11: Radii11Tuple(rA=7244.792747, rB=1828.106695, rC=2.25502, cR=57792.067128, rIn=57.366968, riS=2.087668, roS=2.443334, a=1830.361715, b=7247.047766, c=9072.899442, s=9075.154461)\n    test 1264 circum3 (pygeodesy.ellipsoidalGeodSolve) .radius: 57792.067\n    test 1265 circum3 (pygeodesy.ellipsoidalGeodSolve) .center: 43.053532°N, 002.943255°E, -261.66m\n    test 1266 circum3 (pygeodesy.ellipsoidalGeodSolve) .deltas: (-0.0, 0.0, 9.827)  FAILED, KNOWN, expected (0.0, 0.0, 11.383)\n    test 1267 circum3 (pygeodesy.ellipsoidalGeodSolve) .d1: 57792.858\n    test 1268 circum3 (pygeodesy.ellipsoidalGeodSolve) .d2: 57792.859\n    test 1269 circum3 (pygeodesy.ellipsoidalGeodSolve) .d3: 57792.859\n    test 1270 circum3 (pygeodesy.ellipsoidalGeodSolve) .datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 1271 circum3 (pygeodesy.ellipsoidalGeodSolve) .Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n\n    test 1272 radii11: Radii11Tuple(rA=7244.792747, rB=1828.106695, rC=2.25502, cR=57792.067128, rIn=57.366968, riS=2.087668, roS=2.443334, a=1830.361715, b=7247.047766, c=9072.899442, s=9075.154461)\n    test 1273 circum4 (pygeodesy.ellipsoidalGeodSolve) .radius: 3184256.748\n    test 1274 circum4 (pygeodesy.ellipsoidalGeodSolve) .center: 43.054367°N, 002.942573°E, -3183993.92m\n    test 1275 circum4 (pygeodesy.ellipsoidalGeodSolve) .rank: 3\n    test 1276 circum4 (pygeodesy.ellipsoidalGeodSolve) .residuals: ()\n    test 1277 circum4 (pygeodesy.ellipsoidalGeodSolve) .d1: 57818.033\n    test 1278 circum4 (pygeodesy.ellipsoidalGeodSolve) .d2: 57834.176\n    test 1279 circum4 (pygeodesy.ellipsoidalGeodSolve) .d3: 57830.992\n    test 1280 circum4 (pygeodesy.ellipsoidalGeodSolve) .datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 1281 circum4 (pygeodesy.ellipsoidalGeodSolve) .Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 1282 radii11: Radii11Tuple(rA=327537.482637, rB=776914.262482, rC=784245.052526, cR=780602.180901, rIn=325058.721103, riS=84975.664195, roS=INF, a=1561159.315008, b=1111782.535163, c=1104451.745119, s=1888696.797645)\n    test 1283 circin6 (pygeodesy.ellipsoidalGeodSolve) .rB+rC: 1561159.315\n    test 1284 circin6 (pygeodesy.ellipsoidalGeodSolve) .rC+pA: 1111782.535\n    test 1285 circin6 (pygeodesy.ellipsoidalGeodSolve) .rA+rB: 1104451.745\n    test 1286 circin6 (pygeodesy.ellipsoidalGeodSolve) .radius: 325058.721\n    test 1287 circin6 (pygeodesy.ellipsoidalGeodSolve) .center: 02.948531°N, 002.932537°E, -40041.19m\n    test 1288 circin6 (pygeodesy.ellipsoidalGeodSolve) .deltas: (0.0, 0.0, 0.224326)  FAILED, KNOWN, expected (0.0, 0.0, 0.090491)\n    test 1289 circin6 (pygeodesy.ellipsoidalGeodSolve) .cA: 05.04314°N, 005.014578°E, -48104.09m\n    test 1290 circin6 (pygeodesy.ellipsoidalGeodSolve) .cB: 00.0°N, 002.941713°E, -20168.62m\n    test 1291 circin6 (pygeodesy.ellipsoidalGeodSolve) .cC: 02.961566°N, 000.0°E, -20113.46m\n    test 1292 circin6 (pygeodesy.ellipsoidalGeodSolve) .dA: 327263.596\n    test 1293 circin6 (pygeodesy.ellipsoidalGeodSolve) .dB: 326036.153\n    test 1294 circin6 (pygeodesy.ellipsoidalGeodSolve) .dC: 326020.432\n# lazily imported pygeodesy.geodesicx by geodsolve.py line 118\n\n    test 1295 area cw/ccw: 1.0\n\n    testLatLon(pygeodesy.ellipsoidalExact, 25.08.28)\n    test 1296 isEllipsoidal: True\n    test 1297 isSpherical: False\n    test 1298 lat/lonDMS: 52.20472°N, 000.14056°E\n    test 1299 lat/lonDMS F_DM: 52°12.283′N, 000°08.434′E\n    test 1300 lat/lonDMS F_DM: 52°12.2832′N, 000°08.4336′E\n    test 1301 lat/lonDMS F_DMS: 52°12′17″N, 000°08′26″E\n    test 1302 lat/lonDMS F_DMS: 52°12′17.0″N, 000°08′26.0″E\n    test 1303 lat/lonDMS F_RAD: 0.911144N, 0.002453E\n    test 1304 isequalTo: True\n    test 1305 isequalTo: True\n    test 1306 latlon2: 52.20472, 0.14056\n    test 1307 latlon2: 52.2047, 0.1406\n    test 1308 latlon2: 52.205, 0.141\n    test 1309 latlon2: 52.2, 0.14\n    test 1310 latlon2: 52.2, 0.1\n    test 1311 latlon2: 52.0, 0.0\n    test 1312 chordTo: 12029263.15\n    test 1313 chordTo: 12029049.69\n# lazily imported pygeodesy.elliptic by gx.py line 421\n    test 1314 initialBearingTo: 156.1106\n    test 1315 initialBearingTo: 65.9335\n    test 1316 initialBearingTo: 0.0\n    test 1317 initialBearingTo: 180.0\n    test 1318 finalBearingTo: 157.8345\n    test 1319 finalBearingTo: 93.9034\n    test 1320 bearingTo2: 156.1106, 157.8345\n    test 1321 ispolar: True\n    test 1322 copy: True\n    test 1323 __eq__: True\n    test 1324 __ne__: False\n    test 1325 equirectangularTo: 404329.56\n    test 1326 distanceTo: 404607.805988\n    test 1327 distanceTo: 404607.805988\n    test 1328 distanceTo: 3981601\n    test 1329 antipodal: False\n    test 1330 distanceTo dateline: 19959679.267\n    test 1331 distanceTo unrolled: 19959679.267\n    test 1332 antipodal: False\n    test 1333 distanceTo dateline: 9513998\n    test 1334 distanceTo unrolled: 9513998\n    test 1335 distanceTo: 18012714.66\n    test 1336 distanceTo: 20003931.46\n    test 1337 distanceTo3 dateline: 19959679.2674, 161.0677, 18.8252\n    test 1338 distanceTo3 dateline: 9513997.9901, 42.9164, 138.8903\n    test 1339 distanceTo3 dateline: 19959679.2674, 161.0677, 18.8252\n    test 1340 distanceTo3 dateline: 9513997.9901, 42.9164, 138.8903\n    test 1341 intermediateTo: 51.372275°N, 000.707253°E\n    test 1342 intermediateTo: True\n    test 1343 intermediateTo: 404607.806\n    test 1344 intermediateTo+5: 35.139582°N, 008.994368°E\n    test 1345 intermediateTo+5: 5.000\n    test 1346 intermediateTo-4: 64.894124°N, 013.705689°W\n    test 1347 intermediateTo-4: 4.000\n    test 1348 intermediateTo-h: 125.000\n    test 1349 midpointTo: 50.536583°N, 001.274507°E\n    test 1350 destination: 51.513526°N, 000.098038°W\n    test 1351 destination: 51°30′49″N, 000°05′53″W\n    test 1352 destination: 33°57′N, 118°24′W\n    test 1353 destination: 33.950367°N, 118.399012°W\n    test 1354 destination: 0.592546N, 2.066453W\n    test 1355 destination: 32.11195529°N, 064.56074722°E  FAILED, KNOWN, expected 32.11195529°N, 063.95925278°E\n    test 1356 neareston6: (LatLon(45°00′00.0″N, 001°00′00.0″E), 4755443.4294, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E))\n    test 1357 neareston6: (LatLon(45°30′03.94″N, 002°00′00.0″E), 39078.729285, 1.501072, 2, LatLon(45°00′00.0″N, 002°00′00.0″E), LatLon(46°00′00.0″N, 002°00′00.0″E))\n    test 1358 chordTo: 125203.963\n    test 1359 cosineAndoyerLambertTo: 125205.962\n    test 1360 cosineAndoyerLambertTo: 125205.962\n    test 1361 cosineForsyheAndoyerLambertTo: 125205.965\n    test 1362 cosineForsyheAndoyerLambertTo: 125205.965\n    test 1363 cosineLawTo: 124801.098\n    test 1364 cosineLawTo: 124801.098\n    test 1365 equirectangularTo: 124804.754\n    test 1366 equirectangularTo: 124804.754\n    test 1367 euclideanTo: 130015.089\n    test 1368 euclideanTo: 130015.089\n    test 1369 flatLocalTo: 125209.633\n    test 1370 flatLocalTo: 125209.633\n    test 1371 flatPolarTo: 133663.257\n    test 1372 flatPolarTo: 133663.257\n    test 1373 hartzell: 53.3206°N, 001.7297°W\n# lazily imported pygeodesy.Triaxial from .triaxials.triaxial5 by ellipsoids.py line 1905\n    test 1374 hartzell: 53.349541°N, 001.7297°W\n    test 1375 height4: 0.0\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by cartesianBase.py line 364\n    test 1376 height4: (3820333.9, -115367.0, 5097204.4, -6584.9)\n    test 1377 height4: 53°19′14.2″N, 001°43′46.9″W\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by cartesianBase.py line 364\n    test 1378 height4: 53°19′14.2″N, 001°43′46.9″W\n    test 1379 haversineTo: 124801.098\n    test 1380 haversineTo: 124801.098\n    test 1381 hubenyTo: <bound method LatLonBase.flatLocalTo of LatLon(53°19′14.16″N, 001°43′46.92″W)>\n    test 1382 hubenyTo: <bound method LatLonBase.flatLocalTo of LatLon(53°11′19.32″N, 000°08′00.24″E)>\n    test 1383 thomasTo: 125206.188\n    test 1384 thomasTo: 125206.188\n    test 1385 vincentysTo: 124801.098\n    test 1386 vincentysTo: 124801.098\n    test 1387 isclockwise: False\n    test 1388 isclockwise*: False\n    test 1389 isclockwise: True\n    test 1390 isclockwise*: True\n    test 1391 isclockwise: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 1392 isclockwise*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 1393 isclockwise: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 1394 isclockwise*: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 1395 isconvex: False\n    test 1396 isconvex*: False\n    test 1397 isconvex: True\n    test 1398 isconvex*: True\n    test 1399 isconvex: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 1400 isconvex*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 1401 isenclosedBy1: True\n    test 1402 isenclosedBy1*: True\n    test 1403 isenclosedBy2: False\n    test 1404 isenclosedBy2*: False\n    test 1405 isenclosedBy3: False\n    test 1406 isenclosedBy3*: False\n    test 1407 isenclosedBy4: False\n    test 1408 isenclosedBy4*: False\n    test 1409 isenclosedBy5: False\n    test 1410 isenclosedBy5*: False\n    test 1411 isenclosedBy6: True\n    test 1412 isenclosedBy6*: True\n    test 1413 isenclosedBy7: True\n    test 1414 isenclosedBy7*: True\n    test 1415 isenclosedBy-CCW: True\n    test 1416 isenclosedBy-CW : True\n    test 1417 isenclosedBy-CCW: True\n    test 1418 initialBearingTo: 102.392291\n    test 1419 compassAngleTo: 100.017\n    test 1420 compassAngleTo: 105.599\n    test 1421 initialBearingTo: 288.676039\n    test 1422 compassAngleTo: 280.017\n    test 1423 compassAngleTo: 285.599\n    test 1424 equirectangularTo: 592.185\n    test 1425 distanceTo: 593.571\n    test 1426 bearingTo: 0.0\n    test 1427 compassAngleTo: 0.0\n    test 1428 bearingTo: 45.2  FAILED, KNOWN, expected 45.0\n    test 1429 compassAngleTo: 45.0\n    test 1430 bearingTo: 90.0\n    test 1431 compassAngleTo: 90.0\n    test 1432 bearingTo: 180.0\n    test 1433 compassAngleTo: 180.0\n    test 1434 bearingTo: 225.2  FAILED, KNOWN, expected 225.0\n    test 1435 compassAngleTo: 225.0\n    test 1436 bearingTo: 314.8  FAILED, KNOWN, expected 315.0\n    test 1437 compassAngleTo: 315.0\n    test 1438 bearingTo: 270.0\n    test 1439 compassAngleTo: 270.0\n    test 1440 bearingTo: 0.0  FAILED, KNOWN, expected 359.4\n    test 1441 compassAngleTo: 359.4\n    test 1442 latlon2: (53.0, 1.0)\n    test 1443 philam2: (0.93, 0.02)\n    test 1444 bearingTo: 31\n    test 1445 compassAngleTo: 31\n    test 1446 compassAngleTo: 45\n\n    test 1447 boundsOf: <class 'pygeodesy.namedTuples.Bounds2Tuple'>\n    test 1448 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 1449 latlon2: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 1450 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 1451 isequalTo: <class 'bool'>\n    test 1452 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 1453 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 1454 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 1455 xyz3: <class 'tuple'>\n    test 1456 xyzh: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 1457 compassAngleTo: <class 'float'>\n    test 1458 cosineLawTo: <class 'float'>\n    test 1459 euclideanTo: <class 'float'>\n    test 1460 flatLocalTo: <class 'float'>\n    test 1461 flatPolarTo: <class 'float'>\n    test 1462 haversineTo: <class 'float'>\n    test 1463 hubenyTo: <class 'float'>\n    test 1464 vincentysTo: <class 'float'>\n    test 1465 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 1466 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 1467 toLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 1468 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 1469 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 1470 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 1471 toNvector: (0.615661, 0.0, 0.788011, 0)\n    test 1472 toVector: (3934960.466675, 0.0, 5002803.345483)\n    test 1473 toVector3d: (0.61823, 0.0, 0.786)\n\n    test 1474 trilaterate5 (pygeodesy.ellipsoidalExact) .min: 305.091\n    test 1475 trilaterate5 (pygeodesy.ellipsoidalExact) .point: 42.66933643°N, 002.48620262°E\n    test 1476 trilaterate5 (pygeodesy.ellipsoidalExact) .max: 1592.545\n    test 1477 trilaterate5 (pygeodesy.ellipsoidalExact) .point: 42.65141232°N, 002.46816989°E\n    test 1478 trilaterate5 (pygeodesy.ellipsoidalExact) .n: 3\n    test 1479 trilaterate5 (pygeodesy.ellipsoidalExact) .min: 127.229\n    test 1480 trilaterate5 (pygeodesy.ellipsoidalExact) .max: 152.612\n    test 1481 trilaterate5 (pygeodesy.ellipsoidalExact) .point: 42.67815375°N, 002.49950041°E\n    test 1482 trilaterate5 (pygeodesy.ellipsoidalExact) .n: 2\n    test 1483 trilaterate5 (pygeodesy.ellipsoidalExact) .min: 2400.293\n    test 1484 trilaterate5 (pygeodesy.ellipsoidalExact) .max: 2400.293\n    test 1485 trilaterate5 (pygeodesy.ellipsoidalExact) .point: 42.66128984°N, 002.47973818°E\n    test 1486 trilaterate5 (pygeodesy.ellipsoidalExact) .min- is .maxPoint: True\n    test 1487 trilaterate5 (pygeodesy.ellipsoidalExact) .n: 1\n    test 1488 trilaterate5 (pygeodesy.ellipsoidalExact) .min: 1343.743\n    test 1489 trilaterate5 (pygeodesy.ellipsoidalExact) .point: 42.69131964°N, 002.50112167°E\n    test 1490 trilaterate5 (pygeodesy.ellipsoidalExact) .max: 1445.554\n    test 1491 trilaterate5 (pygeodesy.ellipsoidalExact) .point: 42.67815375°N, 002.49950041°E\n    test 1492 trilaterate5 (pygeodesy.ellipsoidalExact) .n: 2\n    test 1493 radii11: Radii11Tuple(rA=7244.792747, rB=1828.106695, rC=2.25502, cR=57792.067128, rIn=57.366968, riS=2.087668, roS=2.443334, a=1830.361715, b=7247.047766, c=9072.899442, s=9075.154461)\n    test 1494 circum3 (pygeodesy.ellipsoidalExact) .radius: 57792.067\n    test 1495 circum3 (pygeodesy.ellipsoidalExact) .center: 43.053532°N, 002.943255°E, -261.66m\n    test 1496 circum3 (pygeodesy.ellipsoidalExact) .deltas: (-0.0, 0.0, 9.827)  FAILED, KNOWN, expected (0.0, 0.0, 11.383)\n    test 1497 circum3 (pygeodesy.ellipsoidalExact) .d1: 57792.858\n    test 1498 circum3 (pygeodesy.ellipsoidalExact) .d2: 57792.859\n    test 1499 circum3 (pygeodesy.ellipsoidalExact) .d3: 57792.859\n    test 1500 circum3 (pygeodesy.ellipsoidalExact) .datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 1501 circum3 (pygeodesy.ellipsoidalExact) .Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n\n    test 1502 radii11: Radii11Tuple(rA=7244.792747, rB=1828.106695, rC=2.25502, cR=57792.067128, rIn=57.366968, riS=2.087668, roS=2.443334, a=1830.361715, b=7247.047766, c=9072.899442, s=9075.154461)\n    test 1503 circum4 (pygeodesy.ellipsoidalExact) .radius: 3184256.748\n    test 1504 circum4 (pygeodesy.ellipsoidalExact) .center: 43.054367°N, 002.942573°E, -3183993.92m\n    test 1505 circum4 (pygeodesy.ellipsoidalExact) .rank: 3\n    test 1506 circum4 (pygeodesy.ellipsoidalExact) .residuals: ()\n    test 1507 circum4 (pygeodesy.ellipsoidalExact) .d1: 57818.033\n    test 1508 circum4 (pygeodesy.ellipsoidalExact) .d2: 57834.176\n    test 1509 circum4 (pygeodesy.ellipsoidalExact) .d3: 57830.992\n    test 1510 circum4 (pygeodesy.ellipsoidalExact) .datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 1511 circum4 (pygeodesy.ellipsoidalExact) .Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 1512 radii11: Radii11Tuple(rA=327537.482637, rB=776914.262482, rC=784245.052526, cR=780602.180901, rIn=325058.721103, riS=84975.664195, roS=INF, a=1561159.315008, b=1111782.535163, c=1104451.745119, s=1888696.797645)\n    test 1513 circin6 (pygeodesy.ellipsoidalExact) .rB+rC: 1561159.315\n    test 1514 circin6 (pygeodesy.ellipsoidalExact) .rC+pA: 1111782.535\n    test 1515 circin6 (pygeodesy.ellipsoidalExact) .rA+rB: 1104451.745\n    test 1516 circin6 (pygeodesy.ellipsoidalExact) .radius: 325058.721\n    test 1517 circin6 (pygeodesy.ellipsoidalExact) .center: 02.948531°N, 002.932537°E, -40041.19m\n    test 1518 circin6 (pygeodesy.ellipsoidalExact) .deltas: (0.0, 0.0, 0.224326)  FAILED, KNOWN, expected (0.0, 0.0, 0.090491)\n    test 1519 circin6 (pygeodesy.ellipsoidalExact) .cA: 05.04314°N, 005.014578°E, -48104.09m\n    test 1520 circin6 (pygeodesy.ellipsoidalExact) .cB: 00.0°N, 002.941713°E, -20168.62m\n    test 1521 circin6 (pygeodesy.ellipsoidalExact) .cC: 02.961566°N, 000.0°E, -20113.46m\n    test 1522 circin6 (pygeodesy.ellipsoidalExact) .dA: 327263.596\n    test 1523 circin6 (pygeodesy.ellipsoidalExact) .dB: 326036.153\n    test 1524 circin6 (pygeodesy.ellipsoidalExact) .dC: 326020.432\n\n    test 1525 area cw/ccw: 1.0\n\n    341 of 1525 testLatLon.py tests (22.4%) FAILED, incl. 125 KNOWN plus 216 DeprecationWarnings (pygeodesy 26.3.26 Python 3.12.10 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 2.1.0 scipy 1.14.1 Math 2 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 isLazy 3 -W  default) 28.463 sec\nrunning /usr/local/bin/p....n3.12 -W default ~/PyGeodesy/test/testLatLonBase.py\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.F_D from .dms by testLatLonBase.py line 11\n# lazily imported pygeodesy.F_DMS from .dms by testLatLonBase.py line 11\n# lazily imported pygeodesy.isCartesian from .basics by testLatLonBase.py line 11\n# lazily imported pygeodesy.isLatLon from .basics by testLatLonBase.py line 11\n# lazily imported pygeodesy.isNvector from .basics by testLatLonBase.py line 11\n# lazily imported pygeodesy.precision from .dms by testLatLonBase.py line 11\n# lazily imported pygeodesy.ellipsoidalExact by testLatLonBase.py line 140\n# lazily imported pygeodesy.ellipsoidalKarney by testLatLonBase.py line 140\n# lazily imported pygeodesy.ellipsoidalNvector by testLatLonBase.py line 140\n# lazily imported pygeodesy.ellipsoidalVincenty by testLatLonBase.py line 140\n# lazily imported pygeodesy.sphericalNvector by testLatLonBase.py line 140\n# lazily imported pygeodesy.sphericalTrigonometry by testLatLonBase.py line 140\n\n    testing testLatLonBase.py 23.10.15 isLazy=3\n\n    testLatLon(pygeodesy.sphericalNvector, 25.05.27)\n    test 1 lat, lon: 50.06632°N, 005.71475°W\n    test 2 lat, lon: 50.066389°N, 005.714722°W\n# imported pygeodesy.formy into latlonBase.py line 756\n    test 3 isequalTo: True\n    test 4 isequalTo3: True\n    test 5 latlon: (52.205, 0.119)\n    test 6 latlonheight: (52.205, 0.119, 0)\n    test 7 phimlam: (0.911149, 0.002077)\n    test 8 phimlamheight: (0.911149, 0.002077, 0)\n    test 9 isequalTo: False\n    test 10 antipode1: 52.205°S, 179.881°W\n    test 11 antipode2: True\n    test 12 antipode3: 52.205°N, 000.119°E\n    test 13 antipode4: True\n    test 14 antipode5: 52.205°N, 000.119°E\n    test 15 isnormal1: True\n    test 16 isnormal2: False\n    test 17 normal1: False\n    test 18 normal2: True\n    test 19 toStr: 51°28′40″N, 000°00′06″W\n    test 20 toStr: 51.4778°N, 000.0016°W\n    test 21 precision: 0\n    test 22 toStr: 51°28′40″N, 000°00′06″W, +42.00m\n    test 23 isequalTo: True\n    test 24 isequalTo3: False\n    test 25 latlon: (51.4778, -0.0016)\n    test 26 phimlam: (0.898457, -0.000028)\n    test 27 isequalTo: True\n    test 28 isequalTo3: True\n    test 29 latlon: (51.4778, -0.0016)\n    test 30 latlonheight: (51.4778, -0.0016, 42.0)\n    test 31 phimlam: (0.898457, -0.000028)\n    test 32 phimlamheight: (0.898457, -0.000028, 42.0)\n    test 33 latlon: LatLon2Tuple(lat=51.4778, lon=-0.0016)\n    test 34 latlonheight: LatLon3Tuple(lat=51.4778, lon=-0.0016, height=42.0)\n    test 35 phimlam: PhiLam2Tuple(phi=0.898457, lam=-0.000028)\n    test 36 phimlamheight: PhiLam3Tuple(phi=0.898457, lam=-0.000028, height=42.0)\n    test 37 ellipsoidalLatLon: True\n    test 38 sphericalLatLon: True\n# lazily imported pygeodesy.rhumb by ellipsoids.py line 1518\n\n    test 39 rhumbLine: TMorder=6, azi12=30.0, exact=False, lat1=51.4778, lon1=-0.0016, rhumb=Rhumb....ere', a=6371008.771415, f=0, f_=0, b=6371008.771415), k0=0.9996, TMorder=6)\n    test 40 rhumbLine: TMorder=6, azi12=105.484906, exact=False, lat1=51.4778, lon1=-0.0016, rhumb....ere', a=6371008.771415, f=0, f_=0, b=6371008.771415), k0=0.9996, TMorder=6)\n    test 41 rhumbAzimuthTo: 107.563\n    test 42 rhumbDestination: 50.964155°N, 001.853°E\n    test 43 rhumbDestination: True\n    test 44 rhumbDistanceTo: 42186.1\n# lazily imported pygeodesy.elliptic by ellipsoids.py line 850\n    test 45 rhumbIntersecant2: (LatLon(58°40′08.68″N, 042°42′40.63″E), LatLon(18°47′05.09″N, 011°00′15.53″W))\n    test 46 rhumbMidpointo-0.5: 51.069759°N, 001.625988°E\n    test 47 rhumbMidpointo: True\n    test 48 rhumbMidpointo-0.0: 51.127°N, 001.338°E\n    test 49 rhumbMidpointo-0.25: 51.09838°N, 001.482038°E\n    test 50 rhumbMidpointo-0.75: 51.041139°N, 001.769848°E\n    test 51 rhumbMidpointo-1.0: 51.012519°N, 001.913619°E\n    test 52 rhumbMidpointo-2.0: 50.898038°N, 002.48782°E\n\n    testLatLon(pygeodesy.sphericalTrigonometry, 25.08.31)\n    test 53 lat, lon: 50.06632°N, 005.71475°W\n    test 54 lat, lon: 50.066389°N, 005.714722°W\n    test 55 isequalTo: True\n    test 56 isequalTo3: True\n    test 57 latlon: (52.205, 0.119)\n    test 58 latlonheight: (52.205, 0.119, 0)\n    test 59 phimlam: (0.911149, 0.002077)\n    test 60 phimlamheight: (0.911149, 0.002077, 0)\n    test 61 isequalTo: False\n    test 62 antipode1: 52.205°S, 179.881°W\n    test 63 antipode2: True\n    test 64 antipode3: 52.205°N, 000.119°E\n    test 65 antipode4: True\n    test 66 antipode5: 52.205°N, 000.119°E\n    test 67 isnormal1: True\n    test 68 isnormal2: False\n    test 69 normal1: False\n    test 70 normal2: True\n    test 71 toStr: 51°28′40″N, 000°00′06″W\n    test 72 toStr: 51.4778°N, 000.0016°W\n    test 73 precision: 0\n    test 74 toStr: 51°28′40″N, 000°00′06″W, +42.00m\n    test 75 isequalTo: True\n    test 76 isequalTo3: False\n    test 77 latlon: (51.4778, -0.0016)\n    test 78 phimlam: (0.898457, -0.000028)\n    test 79 isequalTo: True\n    test 80 isequalTo3: True\n    test 81 latlon: (51.4778, -0.0016)\n    test 82 latlonheight: (51.4778, -0.0016, 42.0)\n    test 83 phimlam: (0.898457, -0.000028)\n    test 84 phimlamheight: (0.898457, -0.000028, 42.0)\n    test 85 latlon: LatLon2Tuple(lat=51.4778, lon=-0.0016)\n    test 86 latlonheight: LatLon3Tuple(lat=51.4778, lon=-0.0016, height=42.0)\n    test 87 phimlam: PhiLam2Tuple(phi=0.898457, lam=-0.000028)\n    test 88 phimlamheight: PhiLam3Tuple(phi=0.898457, lam=-0.000028, height=42.0)\n    test 89 ellipsoidalLatLon: True\n    test 90 sphericalLatLon: True\n\n    test 91 rhumbLine: TMorder=6, azi12=30.0, exact=False, lat1=51.4778, lon1=-0.0016, rhumb=Rhumb....ere', a=6371008.771415, f=0, f_=0, b=6371008.771415), k0=0.9996, TMorder=6)\n    test 92 rhumbLine: TMorder=6, azi12=105.484906, exact=False, lat1=51.4778, lon1=-0.0016, rhumb....ere', a=6371008.771415, f=0, f_=0, b=6371008.771415), k0=0.9996, TMorder=6)\n    test 93 rhumbAzimuthTo: 107.563\n    test 94 rhumbDestination: 50.964155°N, 001.853°E\n    test 95 rhumbDestination: True\n    test 96 rhumbDistanceTo: 42186.1\n    test 97 rhumbIntersecant2: (LatLon(58°40′08.68″N, 042°42′40.63″E), LatLon(18°47′05.09″N, 011°00′15.53″W))\n    test 98 rhumbMidpointo-0.5: 51.069759°N, 001.625988°E\n    test 99 rhumbMidpointo: True\n    test 100 rhumbMidpointo-0.0: 51.127°N, 001.338°E\n    test 101 rhumbMidpointo-0.25: 51.09838°N, 001.482038°E\n    test 102 rhumbMidpointo-0.75: 51.041139°N, 001.769848°E\n    test 103 rhumbMidpointo-1.0: 51.012519°N, 001.913619°E\n    test 104 rhumbMidpointo-2.0: 50.898038°N, 002.48782°E\n\n    testLatLon(pygeodesy.ellipsoidalNvector, 25.05.12)\n    test 105 lat, lon: 50.06632°N, 005.71475°W\n    test 106 lat, lon: 50.066389°N, 005.714722°W\n    test 107 isequalTo: True\n    test 108 isequalTo3: True\n    test 109 latlon: (52.205, 0.119)\n    test 110 latlonheight: (52.205, 0.119, 0)\n    test 111 phimlam: (0.911149, 0.002077)\n    test 112 phimlamheight: (0.911149, 0.002077, 0)\n    test 113 isequalTo: False\n    test 114 antipode1: 52.205°S, 179.881°W\n    test 115 antipode2: True\n    test 116 antipode3: 52.205°N, 000.119°E\n    test 117 antipode4: True\n    test 118 antipode5: 52.205°N, 000.119°E\n    test 119 isnormal1: True\n    test 120 isnormal2: False\n    test 121 normal1: False\n    test 122 normal2: True\n    test 123 toStr: 51°28′40″N, 000°00′06″W\n    test 124 toStr: 51.4778°N, 000.0016°W\n    test 125 precision: 0\n    test 126 toStr: 51°28′40″N, 000°00′06″W, +42.00m\n    test 127 isequalTo: True\n    test 128 isequalTo3: False\n    test 129 latlon: (51.4778, -0.0016)\n    test 130 phimlam: (0.898457, -0.000028)\n    test 131 isequalTo: True\n    test 132 isequalTo3: True\n    test 133 latlon: (51.4778, -0.0016)\n    test 134 latlonheight: (51.4778, -0.0016, 42.0)\n    test 135 phimlam: (0.898457, -0.000028)\n    test 136 phimlamheight: (0.898457, -0.000028, 42.0)\n    test 137 latlon: LatLon2Tuple(lat=51.4778, lon=-0.0016)\n    test 138 latlonheight: LatLon3Tuple(lat=51.4778, lon=-0.0016, height=42.0)\n    test 139 phimlam: PhiLam2Tuple(phi=0.898457, lam=-0.000028)\n    test 140 phimlamheight: PhiLam3Tuple(phi=0.898457, lam=-0.000028, height=42.0)\n    test 141 ellipsoidalLatLon: True\n    test 142 sphericalLatLon: True\n\n    test 143 rhumbLine: TMorder=6, azi12=30.0, exact=False, lat1=51.4778, lon1=-0.0016, rhumb=Rhumb...., f=0.00335281, f_=298.25722356, b=6356752.31424518), k0=0.9996, TMorder=6)\n    test 144 rhumbLine: TMorder=6, azi12=113.805696, exact=False, lat1=51.4778, lon1=-0.0016, rhumb...., f=0.00335281, f_=298.25722356, b=6356752.31424518), k0=0.9996, TMorder=6)\n    test 145 rhumbAzimuthTo: 116.661\n    test 146 rhumbDestination: 50.964234°N, 001.851383°E\n    test 147 rhumbDestination: True\n    test 148 rhumbDistanceTo: 40413.1\n    test 149 rhumbIntersecant2: (LatLon(58°59′33.52″N, 043°11′56.62″E), LatLon(20°25′12.01″N, 009°12′37.27″W))\n    test 150 rhumbMidpointo-0.5: 51.045501°N, 001.595726°E\n    test 151 rhumbMidpointo: True\n    test 152 rhumbMidpointo-0.0: 51.127°N, 001.338°E\n    test 153 rhumbMidpointo-0.25: 51.08625°N, 001.46692°E\n    test 154 rhumbMidpointo-0.75: 51.00475°N, 001.724419°E\n    test 155 rhumbMidpointo-1.0: 50.964°N, 001.853°E\n    test 156 rhumbMidpointo-2.0: 50.800995°N, 002.366201°E\n\n    testLatLon(pygeodesy.ellipsoidalVincenty, 25.05.26)\n    test 157 lat, lon: 50.06632°N, 005.71475°W\n    test 158 lat, lon: 50.066389°N, 005.714722°W\n    test 159 isequalTo: True\n    test 160 isequalTo3: True\n    test 161 latlon: (52.205, 0.119)\n    test 162 latlonheight: (52.205, 0.119, 0)\n    test 163 phimlam: (0.911149, 0.002077)\n    test 164 phimlamheight: (0.911149, 0.002077, 0)\n    test 165 isequalTo: False\n    test 166 antipode1: 52.205°S, 179.881°W\n    test 167 antipode2: True\n    test 168 antipode3: 52.205°N, 000.119°E\n    test 169 antipode4: True\n    test 170 antipode5: 52.205°N, 000.119°E\n    test 171 isnormal1: True\n    test 172 isnormal2: False\n    test 173 normal1: False\n    test 174 normal2: True\n    test 175 toStr: 51°28′40″N, 000°00′06″W\n    test 176 toStr: 51.4778°N, 000.0016°W\n    test 177 precision: 0\n    test 178 toStr: 51°28′40″N, 000°00′06″W, +42.00m\n    test 179 isequalTo: True\n    test 180 isequalTo3: False\n    test 181 latlon: (51.4778, -0.0016)\n    test 182 phimlam: (0.898457, -0.000028)\n    test 183 isequalTo: True\n    test 184 isequalTo3: True\n    test 185 latlon: (51.4778, -0.0016)\n    test 186 latlonheight: (51.4778, -0.0016, 42.0)\n    test 187 phimlam: (0.898457, -0.000028)\n    test 188 phimlamheight: (0.898457, -0.000028, 42.0)\n    test 189 latlon: LatLon2Tuple(lat=51.4778, lon=-0.0016)\n    test 190 latlonheight: LatLon3Tuple(lat=51.4778, lon=-0.0016, height=42.0)\n    test 191 phimlam: PhiLam2Tuple(phi=0.898457, lam=-0.000028)\n    test 192 phimlamheight: PhiLam3Tuple(phi=0.898457, lam=-0.000028, height=42.0)\n    test 193 ellipsoidalLatLon: True\n    test 194 sphericalLatLon: True\n\n    test 195 rhumbLine: TMorder=6, azi12=30.0, exact=False, lat1=51.4778, lon1=-0.0016, rhumb=Rhumb...., f=0.00335281, f_=298.25722356, b=6356752.31424518), k0=0.9996, TMorder=6)\n    test 196 rhumbLine: TMorder=6, azi12=113.805696, exact=False, lat1=51.4778, lon1=-0.0016, rhumb...., f=0.00335281, f_=298.25722356, b=6356752.31424518), k0=0.9996, TMorder=6)\n    test 197 rhumbAzimuthTo: 116.661\n    test 198 rhumbDestination: 50.964234°N, 001.851383°E\n    test 199 rhumbDestination: True\n    test 200 rhumbDistanceTo: 40413.1\n    test 201 rhumbIntersecant2: (LatLon(58°59′33.52″N, 043°11′56.62″E), LatLon(20°25′12.01″N, 009°12′37.27″W))\n    test 202 rhumbMidpointo-0.5: 51.045501°N, 001.595726°E\n    test 203 rhumbMidpointo: True\n    test 204 rhumbMidpointo-0.0: 51.127°N, 001.338°E\n    test 205 rhumbMidpointo-0.25: 51.08625°N, 001.46692°E\n    test 206 rhumbMidpointo-0.75: 51.00475°N, 001.724419°E\n    test 207 rhumbMidpointo-1.0: 50.964°N, 001.853°E\n    test 208 rhumbMidpointo-2.0: 50.800995°N, 002.366201°E\n\n    testLatLon(pygeodesy.ellipsoidalKarney, 25.05.27)\n    test 209 lat, lon: 50.06632°N, 005.71475°W\n    test 210 lat, lon: 50.066389°N, 005.714722°W\n    test 211 isequalTo: True\n    test 212 isequalTo3: True\n    test 213 latlon: (52.205, 0.119)\n    test 214 latlonheight: (52.205, 0.119, 0)\n    test 215 phimlam: (0.911149, 0.002077)\n    test 216 phimlamheight: (0.911149, 0.002077, 0)\n    test 217 isequalTo: False\n    test 218 antipode1: 52.205°S, 179.881°W\n    test 219 antipode2: True\n    test 220 antipode3: 52.205°N, 000.119°E\n    test 221 antipode4: True\n    test 222 antipode5: 52.205°N, 000.119°E\n    test 223 isnormal1: True\n    test 224 isnormal2: False\n    test 225 normal1: False\n    test 226 normal2: True\n    test 227 toStr: 51°28′40″N, 000°00′06″W\n    test 228 toStr: 51.4778°N, 000.0016°W\n    test 229 precision: 0\n    test 230 toStr: 51°28′40″N, 000°00′06″W, +42.00m\n    test 231 isequalTo: True\n    test 232 isequalTo3: False\n    test 233 latlon: (51.4778, -0.0016)\n    test 234 phimlam: (0.898457, -0.000028)\n    test 235 isequalTo: True\n    test 236 isequalTo3: True\n    test 237 latlon: (51.4778, -0.0016)\n    test 238 latlonheight: (51.4778, -0.0016, 42.0)\n    test 239 phimlam: (0.898457, -0.000028)\n    test 240 phimlamheight: (0.898457, -0.000028, 42.0)\n    test 241 latlon: LatLon2Tuple(lat=51.4778, lon=-0.0016)\n    test 242 latlonheight: LatLon3Tuple(lat=51.4778, lon=-0.0016, height=42.0)\n    test 243 phimlam: PhiLam2Tuple(phi=0.898457, lam=-0.000028)\n    test 244 phimlamheight: PhiLam3Tuple(phi=0.898457, lam=-0.000028, height=42.0)\n    test 245 ellipsoidalLatLon: True\n    test 246 sphericalLatLon: True\n\n    test 247 rhumbLine: TMorder=6, azi12=30.0, exact=False, lat1=51.4778, lon1=-0.0016, rhumb=Rhumb...., f=0.00335281, f_=298.25722356, b=6356752.31424518), k0=0.9996, TMorder=6)\n    test 248 rhumbLine: TMorder=6, azi12=113.805696, exact=False, lat1=51.4778, lon1=-0.0016, rhumb...., f=0.00335281, f_=298.25722356, b=6356752.31424518), k0=0.9996, TMorder=6)\n    test 249 rhumbAzimuthTo: 116.661\n    test 250 rhumbDestination: 50.964234°N, 001.851383°E\n    test 251 rhumbDestination: True\n    test 252 rhumbDistanceTo: 40413.1\n    test 253 rhumbIntersecant2: (LatLon(58°59′33.52″N, 043°11′56.62″E), LatLon(20°25′12.01″N, 009°12′37.27″W))\n    test 254 rhumbMidpointo-0.5: 51.045501°N, 001.595726°E\n    test 255 rhumbMidpointo: True\n    test 256 rhumbMidpointo-0.0: 51.127°N, 001.338°E\n    test 257 rhumbMidpointo-0.25: 51.08625°N, 001.46692°E\n    test 258 rhumbMidpointo-0.75: 51.00475°N, 001.724419°E\n    test 259 rhumbMidpointo-1.0: 50.964°N, 001.853°E\n    test 260 rhumbMidpointo-2.0: 50.800995°N, 002.366201°E\n\n    testLatLon(pygeodesy.ellipsoidalExact, 25.08.28)\n    test 261 lat, lon: 50.06632°N, 005.71475°W\n    test 262 lat, lon: 50.066389°N, 005.714722°W\n    test 263 isequalTo: True\n    test 264 isequalTo3: True\n    test 265 latlon: (52.205, 0.119)\n    test 266 latlonheight: (52.205, 0.119, 0)\n    test 267 phimlam: (0.911149, 0.002077)\n    test 268 phimlamheight: (0.911149, 0.002077, 0)\n    test 269 isequalTo: False\n    test 270 antipode1: 52.205°S, 179.881°W\n    test 271 antipode2: True\n    test 272 antipode3: 52.205°N, 000.119°E\n    test 273 antipode4: True\n    test 274 antipode5: 52.205°N, 000.119°E\n    test 275 isnormal1: True\n    test 276 isnormal2: False\n    test 277 normal1: False\n    test 278 normal2: True\n    test 279 toStr: 51°28′40″N, 000°00′06″W\n    test 280 toStr: 51.4778°N, 000.0016°W\n    test 281 precision: 0\n    test 282 toStr: 51°28′40″N, 000°00′06″W, +42.00m\n    test 283 isequalTo: True\n    test 284 isequalTo3: False\n    test 285 latlon: (51.4778, -0.0016)\n    test 286 phimlam: (0.898457, -0.000028)\n    test 287 isequalTo: True\n    test 288 isequalTo3: True\n    test 289 latlon: (51.4778, -0.0016)\n    test 290 latlonheight: (51.4778, -0.0016, 42.0)\n    test 291 phimlam: (0.898457, -0.000028)\n    test 292 phimlamheight: (0.898457, -0.000028, 42.0)\n    test 293 latlon: LatLon2Tuple(lat=51.4778, lon=-0.0016)\n    test 294 latlonheight: LatLon3Tuple(lat=51.4778, lon=-0.0016, height=42.0)\n    test 295 phimlam: PhiLam2Tuple(phi=0.898457, lam=-0.000028)\n    test 296 phimlamheight: PhiLam3Tuple(phi=0.898457, lam=-0.000028, height=42.0)\n    test 297 ellipsoidalLatLon: True\n    test 298 sphericalLatLon: True\n\n    test 299 rhumbLine: TMorder=6, azi12=30.0, exact=False, lat1=51.4778, lon1=-0.0016, rhumb=Rhumb...., f=0.00335281, f_=298.25722356, b=6356752.31424518), k0=0.9996, TMorder=6)\n    test 300 rhumbLine: TMorder=6, azi12=113.805696, exact=False, lat1=51.4778, lon1=-0.0016, rhumb...., f=0.00335281, f_=298.25722356, b=6356752.31424518), k0=0.9996, TMorder=6)\n    test 301 rhumbAzimuthTo: 116.661\n    test 302 rhumbDestination: 50.964234°N, 001.851383°E\n    test 303 rhumbDestination: True\n    test 304 rhumbDistanceTo: 40413.1\n    test 305 rhumbIntersecant2: (LatLon(58°59′33.52″N, 043°11′56.62″E), LatLon(20°25′12.01″N, 009°12′37.27″W))\n    test 306 rhumbMidpointo-0.5: 51.045501°N, 001.595726°E\n    test 307 rhumbMidpointo: True\n    test 308 rhumbMidpointo-0.0: 51.127°N, 001.338°E\n    test 309 rhumbMidpointo-0.25: 51.08625°N, 001.46692°E\n    test 310 rhumbMidpointo-0.75: 51.00475°N, 001.724419°E\n    test 311 rhumbMidpointo-1.0: 50.964°N, 001.853°E\n    test 312 rhumbMidpointo-2.0: 50.800995°N, 002.366201°E\n# lazily imported pygeodesy.ellipsoidalGeodSolve by testLatLonBase.py line 156\n\n    testLatLon(pygeodesy.ellipsoidalGeodSolve, 25.08.28)\n    test 313 lat, lon: 50.06632°N, 005.71475°W\n    test 314 lat, lon: 50.066389°N, 005.714722°W\n    test 315 isequalTo: True\n    test 316 isequalTo3: True\n    test 317 latlon: (52.205, 0.119)\n    test 318 latlonheight: (52.205, 0.119, 0)\n    test 319 phimlam: (0.911149, 0.002077)\n    test 320 phimlamheight: (0.911149, 0.002077, 0)\n    test 321 isequalTo: False\n    test 322 antipode1: 52.205°S, 179.881°W\n    test 323 antipode2: True\n    test 324 antipode3: 52.205°N, 000.119°E\n    test 325 antipode4: True\n    test 326 antipode5: 52.205°N, 000.119°E\n    test 327 isnormal1: True\n    test 328 isnormal2: False\n    test 329 normal1: False\n    test 330 normal2: True\n    test 331 toStr: 51°28′40″N, 000°00′06″W\n    test 332 toStr: 51.4778°N, 000.0016°W\n    test 333 precision: 0\n    test 334 toStr: 51°28′40″N, 000°00′06″W, +42.00m\n    test 335 isequalTo: True\n    test 336 isequalTo3: False\n    test 337 latlon: (51.4778, -0.0016)\n    test 338 phimlam: (0.898457, -0.000028)\n    test 339 isequalTo: True\n    test 340 isequalTo3: True\n    test 341 latlon: (51.4778, -0.0016)\n    test 342 latlonheight: (51.4778, -0.0016, 42.0)\n    test 343 phimlam: (0.898457, -0.000028)\n    test 344 phimlamheight: (0.898457, -0.000028, 42.0)\n    test 345 latlon: LatLon2Tuple(lat=51.4778, lon=-0.0016)\n    test 346 latlonheight: LatLon3Tuple(lat=51.4778, lon=-0.0016, height=42.0)\n    test 347 phimlam: PhiLam2Tuple(phi=0.898457, lam=-0.000028)\n    test 348 phimlamheight: PhiLam3Tuple(phi=0.898457, lam=-0.000028, height=42.0)\n    test 349 ellipsoidalLatLon: True\n    test 350 sphericalLatLon: True\n\n    test 351 rhumbLine: TMorder=6, azi12=30.0, exact=False, lat1=51.4778, lon1=-0.0016, rhumb=Rhumb...., f=0.00335281, f_=298.25722356, b=6356752.31424518), k0=0.9996, TMorder=6)\n    test 352 rhumbLine: TMorder=6, azi12=113.805696, exact=False, lat1=51.4778, lon1=-0.0016, rhumb...., f=0.00335281, f_=298.25722356, b=6356752.31424518), k0=0.9996, TMorder=6)\n    test 353 rhumbAzimuthTo: 116.661\n    test 354 rhumbDestination: 50.964234°N, 001.851383°E\n    test 355 rhumbDestination: True\n    test 356 rhumbDistanceTo: 40413.1\n    test 357 rhumbIntersecant2: (LatLon(58°59′33.52″N, 043°11′56.62″E), LatLon(20°25′12.01″N, 009°12′37.27″W))\n    test 358 rhumbMidpointo-0.5: 51.045501°N, 001.595726°E\n    test 359 rhumbMidpointo: True\n    test 360 rhumbMidpointo-0.0: 51.127°N, 001.338°E\n    test 361 rhumbMidpointo-0.25: 51.08625°N, 001.46692°E\n    test 362 rhumbMidpointo-0.75: 51.00475°N, 001.724419°E\n    test 363 rhumbMidpointo-1.0: 50.964°N, 001.853°E\n    test 364 rhumbMidpointo-2.0: 50.800995°N, 002.366201°E\n\n    testLatLonEllipsoidalBase(pygeodesy.ellipsoidalBase, 25.07.21)\n    test 365 lat, lon: 50.06632°N, 005.71475°W\n    test 366 lat, lon: 50.066389°N, 005.714722°W\n    test 367 isequalTo: True\n    test 368 isequalTo3: True\n    test 369 latlon: (52.205, 0.119)\n    test 370 latlonheight: (52.205, 0.119, 0)\n    test 371 phimlam: (0.911149, 0.002077)\n    test 372 phimlamheight: (0.911149, 0.002077, 0)\n    test 373 isequalTo: False\n    test 374 antipode1: 52.205°S, 179.881°W\n    test 375 antipode2: True\n    test 376 antipode3: 52.205°N, 000.119°E\n    test 377 antipode4: True\n    test 378 antipode5: 52.205°N, 000.119°E\n    test 379 isnormal1: True\n    test 380 isnormal2: False\n    test 381 normal1: False\n    test 382 normal2: True\n    test 383 toStr: 51°28′40″N, 000°00′06″W\n    test 384 toStr: 51.4778°N, 000.0016°W\n    test 385 precision: 0\n    test 386 toStr: 51°28′40″N, 000°00′06″W, +42.00m\n    test 387 isequalTo: True\n    test 388 isequalTo3: False\n    test 389 latlon: (51.4778, -0.0016)\n    test 390 phimlam: (0.898457, -0.000028)\n    test 391 isequalTo: True\n    test 392 isequalTo3: True\n    test 393 latlon: (51.4778, -0.0016)\n    test 394 latlonheight: (51.4778, -0.0016, 42.0)\n    test 395 phimlam: (0.898457, -0.000028)\n    test 396 phimlamheight: (0.898457, -0.000028, 42.0)\n    test 397 latlon: LatLon2Tuple(lat=51.4778, lon=-0.0016)\n    test 398 latlonheight: LatLon3Tuple(lat=51.4778, lon=-0.0016, height=42.0)\n    test 399 phimlam: PhiLam2Tuple(phi=0.898457, lam=-0.000028)\n    test 400 phimlamheight: PhiLam3Tuple(phi=0.898457, lam=-0.000028, height=42.0)\n    test 401 ellipsoidalLatLon: True\n    test 402 sphericalLatLon: True\n\n    test 403 rhumbLine: TMorder=6, azi12=30.0, exact=False, lat1=51.4778, lon1=-0.0016, rhumb=Rhumb...., f=0.00335281, f_=298.25722356, b=6356752.31424518), k0=0.9996, TMorder=6)\n    test 404 rhumbLine: TMorder=6, azi12=113.805696, exact=False, lat1=51.4778, lon1=-0.0016, rhumb...., f=0.00335281, f_=298.25722356, b=6356752.31424518), k0=0.9996, TMorder=6)\n    test 405 rhumbAzimuthTo: 116.661\n    test 406 rhumbDestination: 50.964234°N, 001.851383°E\n    test 407 rhumbDestination: True\n    test 408 rhumbDistanceTo: 40413.1\n    test 409 rhumbIntersecant2: (LatLonEllipsoidalBase(58°59′33.52″N, 043°11′56.62″E), LatLonEllipsoidalBase(20°25′12.01″N, 009°12′37.27″W))\n    test 410 rhumbMidpointo-0.5: 51.045501°N, 001.595726°E\n    test 411 rhumbMidpointo: True\n    test 412 rhumbMidpointo-0.0: 51.127°N, 001.338°E\n    test 413 rhumbMidpointo-0.25: 51.08625°N, 001.46692°E\n    test 414 rhumbMidpointo-0.75: 51.00475°N, 001.724419°E\n    test 415 rhumbMidpointo-1.0: 50.964°N, 001.853°E\n    test 416 rhumbMidpointo-2.0: 50.800995°N, 002.366201°E\n\n    testLatLonEllipsoidalBaseDI(pygeodesy.ellipsoidalBaseDI, 25.05.23)\n    test 417 lat, lon: 50.06632°N, 005.71475°W\n    test 418 lat, lon: 50.066389°N, 005.714722°W\n    test 419 isequalTo: True\n    test 420 isequalTo3: True\n    test 421 latlon: (52.205, 0.119)\n    test 422 latlonheight: (52.205, 0.119, 0)\n    test 423 phimlam: (0.911149, 0.002077)\n    test 424 phimlamheight: (0.911149, 0.002077, 0)\n    test 425 isequalTo: False\n    test 426 antipode1: 52.205°S, 179.881°W\n    test 427 antipode2: True\n    test 428 antipode3: 52.205°N, 000.119°E\n    test 429 antipode4: True\n    test 430 antipode5: 52.205°N, 000.119°E\n    test 431 isnormal1: True\n    test 432 isnormal2: False\n    test 433 normal1: False\n    test 434 normal2: True\n    test 435 toStr: 51°28′40″N, 000°00′06″W\n    test 436 toStr: 51.4778°N, 000.0016°W\n    test 437 precision: 0\n    test 438 toStr: 51°28′40″N, 000°00′06″W, +42.00m\n    test 439 isequalTo: True\n    test 440 isequalTo3: False\n    test 441 latlon: (51.4778, -0.0016)\n    test 442 phimlam: (0.898457, -0.000028)\n    test 443 isequalTo: True\n    test 444 isequalTo3: True\n    test 445 latlon: (51.4778, -0.0016)\n    test 446 latlonheight: (51.4778, -0.0016, 42.0)\n    test 447 phimlam: (0.898457, -0.000028)\n    test 448 phimlamheight: (0.898457, -0.000028, 42.0)\n    test 449 latlon: LatLon2Tuple(lat=51.4778, lon=-0.0016)\n    test 450 latlonheight: LatLon3Tuple(lat=51.4778, lon=-0.0016, height=42.0)\n    test 451 phimlam: PhiLam2Tuple(phi=0.898457, lam=-0.000028)\n    test 452 phimlamheight: PhiLam3Tuple(phi=0.898457, lam=-0.000028, height=42.0)\n    test 453 ellipsoidalLatLon: True\n    test 454 sphericalLatLon: True\n\n    test 455 rhumbLine: TMorder=6, azi12=30.0, exact=False, lat1=51.4778, lon1=-0.0016, rhumb=Rhumb...., f=0.00335281, f_=298.25722356, b=6356752.31424518), k0=0.9996, TMorder=6)\n    test 456 rhumbLine: TMorder=6, azi12=113.805696, exact=False, lat1=51.4778, lon1=-0.0016, rhumb...., f=0.00335281, f_=298.25722356, b=6356752.31424518), k0=0.9996, TMorder=6)\n    test 457 rhumbAzimuthTo: 116.661\n    test 458 rhumbDestination: 50.964234°N, 001.851383°E\n    test 459 rhumbDestination: True\n    test 460 rhumbDistanceTo: 40413.1\n    test 461 rhumbIntersecant2: (LatLonEllipsoidalBaseDI(58°59′33.52″N, 043°11′56.62″E), LatLonEllipsoidalBaseDI(20°25′12.01″N, 009°12′37.27″W))\n    test 462 rhumbMidpointo-0.5: 51.045501°N, 001.595726°E\n    test 463 rhumbMidpointo: True\n    test 464 rhumbMidpointo-0.0: 51.127°N, 001.338°E\n    test 465 rhumbMidpointo-0.25: 51.08625°N, 001.46692°E\n    test 466 rhumbMidpointo-0.75: 51.00475°N, 001.724419°E\n    test 467 rhumbMidpointo-1.0: 50.964°N, 001.853°E\n    test 468 rhumbMidpointo-2.0: 50.800995°N, 002.366201°E\n\n    testLatLonBase(pygeodesy.latlonBase, 25.08.18)\n    test 469 lat, lon: 50.06632°N, 005.71475°W\n    test 470 lat, lon: 50.066389°N, 005.714722°W\n    test 471 isequalTo: True\n    test 472 isequalTo3: True\n    test 473 latlon: (52.205, 0.119)\n    test 474 latlonheight: (52.205, 0.119, 0)\n    test 475 phimlam: (0.911149, 0.002077)\n    test 476 phimlamheight: (0.911149, 0.002077, 0)\n    test 477 isequalTo: False\n    test 478 antipode1: 52.205°S, 179.881°W\n    test 479 antipode2: True\n    test 480 antipode3: 52.205°N, 000.119°E\n    test 481 antipode4: True\n    test 482 antipode5: 52.205°N, 000.119°E\n    test 483 isnormal1: True\n    test 484 isnormal2: False\n    test 485 normal1: False\n    test 486 normal2: True\n    test 487 toStr: 51°28′40″N, 000°00′06″W\n    test 488 toStr: 51.4778°N, 000.0016°W\n    test 489 precision: 0\n    test 490 toStr: 51°28′40″N, 000°00′06″W, +42.00m\n    test 491 isequalTo: True\n    test 492 isequalTo3: False\n    test 493 latlon: (51.4778, -0.0016)\n    test 494 phimlam: (0.898457, -0.000028)\n    test 495 isequalTo: True\n    test 496 isequalTo3: True\n    test 497 latlon: (51.4778, -0.0016)\n    test 498 latlonheight: (51.4778, -0.0016, 42.0)\n    test 499 phimlam: (0.898457, -0.000028)\n    test 500 phimlamheight: (0.898457, -0.000028, 42.0)\n    test 501 latlon: LatLon2Tuple(lat=51.4778, lon=-0.0016)\n    test 502 latlonheight: LatLon3Tuple(lat=51.4778, lon=-0.0016, height=42.0)\n    test 503 phimlam: PhiLam2Tuple(phi=0.898457, lam=-0.000028)\n    test 504 phimlamheight: PhiLam3Tuple(phi=0.898457, lam=-0.000028, height=42.0)\n    test 505 ellipsoidalLatLon: True\n    test 506 sphericalLatLon: True\n    test 507 isCartesian(LatLonBase, None): None\n    test 508 isCartesian(LatLonBase, True): None\n    test 509 isCartesian(LatLonBase, False): None\n    test 510 isLatLon(LatLonBase, None): <class 'pygeodesy.latlonBase.LatLonBase'>\n    test 511 isLatLon(LatLonBase, True): False\n    test 512 isLatLon(LatLonBase, False): False\n    test 513 isNvector(LatLonBase, None): None\n    test 514 isNvector(LatLonBase, True): None\n    test 515 isNvector(LatLonBase, False): None\n\n    testLatLonNvectorBase(pygeodesy.nvectorBase, 25.08.18)\n    test 516 lat, lon: 50.06632°N, 005.71475°W\n    test 517 lat, lon: 50.066389°N, 005.714722°W\n    test 518 isequalTo: True\n    test 519 isequalTo3: True\n    test 520 latlon: (52.205, 0.119)\n    test 521 latlonheight: (52.205, 0.119, 0)\n    test 522 phimlam: (0.911149, 0.002077)\n    test 523 phimlamheight: (0.911149, 0.002077, 0)\n    test 524 isequalTo: False\n    test 525 antipode1: 52.205°S, 179.881°W\n    test 526 antipode2: True\n    test 527 antipode3: 52.205°N, 000.119°E\n    test 528 antipode4: True\n    test 529 antipode5: 52.205°N, 000.119°E\n    test 530 isnormal1: True\n    test 531 isnormal2: False\n    test 532 normal1: False\n    test 533 normal2: True\n    test 534 toStr: 51°28′40″N, 000°00′06″W\n    test 535 toStr: 51.4778°N, 000.0016°W\n    test 536 precision: 0\n    test 537 toStr: 51°28′40″N, 000°00′06″W, +42.00m\n    test 538 isequalTo: True\n    test 539 isequalTo3: False\n    test 540 latlon: (51.4778, -0.0016)\n    test 541 phimlam: (0.898457, -0.000028)\n    test 542 isequalTo: True\n    test 543 isequalTo3: True\n    test 544 latlon: (51.4778, -0.0016)\n    test 545 latlonheight: (51.4778, -0.0016, 42.0)\n    test 546 phimlam: (0.898457, -0.000028)\n    test 547 phimlamheight: (0.898457, -0.000028, 42.0)\n    test 548 latlon: LatLon2Tuple(lat=51.4778, lon=-0.0016)\n    test 549 latlonheight: LatLon3Tuple(lat=51.4778, lon=-0.0016, height=42.0)\n    test 550 phimlam: PhiLam2Tuple(phi=0.898457, lam=-0.000028)\n    test 551 phimlamheight: PhiLam3Tuple(phi=0.898457, lam=-0.000028, height=42.0)\n    test 552 ellipsoidalLatLon: True\n    test 553 sphericalLatLon: True\n    test 554 isCartesian(LatLonNvectorBase, None): None\n    test 555 isCartesian(LatLonNvectorBase, True): None\n    test 556 isCartesian(LatLonNvectorBase, False): None\n    test 557 isLatLon(LatLonNvectorBase, None): <class 'pygeodesy.nvectorBase.LatLonNvectorBase'>\n    test 558 isLatLon(LatLonNvectorBase, True): False\n    test 559 isLatLon(LatLonNvectorBase, False): False\n    test 560 isNvector(LatLonNvectorBase, None): None\n    test 561 isNvector(LatLonNvectorBase, True): None\n    test 562 isNvector(LatLonNvectorBase, False): None\n\n    testLatLonSphericalBase(pygeodesy.sphericalBase, 25.05.26)\n    test 563 lat, lon: 50.06632°N, 005.71475°W\n    test 564 lat, lon: 50.066389°N, 005.714722°W\n    test 565 isequalTo: True\n    test 566 isequalTo3: True\n    test 567 latlon: (52.205, 0.119)\n    test 568 latlonheight: (52.205, 0.119, 0)\n    test 569 phimlam: (0.911149, 0.002077)\n    test 570 phimlamheight: (0.911149, 0.002077, 0)\n    test 571 isequalTo: False\n    test 572 antipode1: 52.205°S, 179.881°W\n    test 573 antipode2: True\n    test 574 antipode3: 52.205°N, 000.119°E\n    test 575 antipode4: True\n    test 576 antipode5: 52.205°N, 000.119°E\n    test 577 isnormal1: True\n    test 578 isnormal2: False\n    test 579 normal1: False\n    test 580 normal2: True\n    test 581 toStr: 51°28′40″N, 000°00′06″W\n    test 582 toStr: 51.4778°N, 000.0016°W\n    test 583 precision: 0\n    test 584 toStr: 51°28′40″N, 000°00′06″W, +42.00m\n    test 585 isequalTo: True\n    test 586 isequalTo3: False\n    test 587 latlon: (51.4778, -0.0016)\n    test 588 phimlam: (0.898457, -0.000028)\n    test 589 isequalTo: True\n    test 590 isequalTo3: True\n    test 591 latlon: (51.4778, -0.0016)\n    test 592 latlonheight: (51.4778, -0.0016, 42.0)\n    test 593 phimlam: (0.898457, -0.000028)\n    test 594 phimlamheight: (0.898457, -0.000028, 42.0)\n    test 595 latlon: LatLon2Tuple(lat=51.4778, lon=-0.0016)\n    test 596 latlonheight: LatLon3Tuple(lat=51.4778, lon=-0.0016, height=42.0)\n    test 597 phimlam: PhiLam2Tuple(phi=0.898457, lam=-0.000028)\n    test 598 phimlamheight: PhiLam3Tuple(phi=0.898457, lam=-0.000028, height=42.0)\n    test 599 ellipsoidalLatLon: True\n    test 600 sphericalLatLon: True\n\n    test 601 rhumbLine: TMorder=6, azi12=30.0, exact=False, lat1=51.4778, lon1=-0.0016, rhumb=Rhumb....ere', a=6371008.771415, f=0, f_=0, b=6371008.771415), k0=0.9996, TMorder=6)\n    test 602 rhumbLine: TMorder=6, azi12=105.484906, exact=False, lat1=51.4778, lon1=-0.0016, rhumb....ere', a=6371008.771415, f=0, f_=0, b=6371008.771415), k0=0.9996, TMorder=6)\n    test 603 rhumbAzimuthTo: 107.563\n    test 604 rhumbDestination: 50.964155°N, 001.853°E\n    test 605 rhumbDestination: True\n    test 606 rhumbDistanceTo: 42186.1\n    test 607 rhumbIntersecant2: (LatLonSphericalBase(58°40′08.68″N, 042°42′40.63″E), LatLonSphericalBase(18°47′05.09″N, 011°00′15.53″W))\n    test 608 rhumbMidpointo-0.5: 51.069759°N, 001.625988°E\n    test 609 rhumbMidpointo: True\n    test 610 rhumbMidpointo-0.0: 51.127°N, 001.338°E\n    test 611 rhumbMidpointo-0.25: 51.09838°N, 001.482038°E\n    test 612 rhumbMidpointo-0.75: 51.041139°N, 001.769848°E\n    test 613 rhumbMidpointo-1.0: 51.012519°N, 001.913619°E\n    test 614 rhumbMidpointo-2.0: 50.898038°N, 002.48782°E\n\n    all 614 testLatLonBase.py tests passed (pygeodesy 26.3.26 Python 3.12.10 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 2.1.0 scipy 1.14.1 Math 2 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 isLazy 3 -W  default) 1.935 sec\nrunning /usr/local/bin/p....n3.12 -W default ~/PyGeodesy/test/testLazily.py\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n\n    testing testLazily.py 25.12.06 isLazy=3\n\n    test 1 isLazy: 3\n\n    test 2 cmd: /usr/local/bin/python3.12 -c 'import sys; import pygeodesy; sys.exit(0 if pygeodesy.isLazy == %s else 1)'\n    test 3 PYGEODESY_LAZY_IMPORT=0: 0\n    test 4 PYGEODESY_LAZY_IMPORT=1: 0\n    test 5 PYGEODESY_LAZY_IMPORT=2: 0\n    test 6 PYGEODESY_LAZY_IMPORT=3: 0\n    test 7 PYGEODESY_LAZY_IMPORT=4: 0\n\n    test 8 items: _ALL_MODS\n    test 9 pygeodesy: <module 'pygeodesy' from './pygeodesy/__init__.py'>\n    test 10 pygeodesy.basics: <module 'pygeodesy.basics' from './pygeodesy/basics.py'>\n    test 11 pygeodesy.constants: <module 'pygeodesy.constants' from './pygeodesy/constants.py'>\n    test 12 pygeodesy.dms: <module 'pygeodesy.dms' from './pygeodesy/dms.py'>\n    test 13 pygeodesy.errors: <module 'pygeodesy.errors' from './pygeodesy/errors.py'>\n    test 14 pygeodesy.fmath: <module 'pygeodesy.fmath' from './pygeodesy/fmath.py'>\n    test 15 pygeodesy.fsums: <module 'pygeodesy.fsums' from './pygeodesy/fsums.py'>\n    test 16 pygeodesy.internals: <module 'pygeodesy.internals' from './pygeodesy/internals.py'>\n    test 17 pygeodesy.interns: <module 'pygeodesy.interns' from './pygeodesy/interns.py'>\n    test 18 pygeodesy.iters: <module 'pygeodesy.iters' from './pygeodesy/iters.py'>\n    test 19 pygeodesy.karney: <module 'pygeodesy.karney' from './pygeodesy/karney.py'>\n    test 20 pygeodesy.lazily: <module 'pygeodesy.lazily' from './pygeodesy/lazily.py'>\n    test 21 pygeodesy.named: <module 'pygeodesy.named' from './pygeodesy/named.py'>\n    test 22 pygeodesy.namedTuples: <module 'pygeodesy.namedTuples' from './pygeodesy/namedTuples.py'>\n    test 23 pygeodesy.props: <module 'pygeodesy.props' from './pygeodesy/props.py'>\n    test 24 pygeodesy.streprs: <module 'pygeodesy.streprs' from './pygeodesy/streprs.py'>\n    test 25 pygeodesy.units: <module 'pygeodesy.units' from './pygeodesy/units.py'>\n    test 26 pygeodesy.unitsBase: <module 'pygeodesy.unitsBase' from './pygeodesy/unitsBase.py'>\n    test 27 pygeodesy.utily: <module 'pygeodesy.utily' from './pygeodesy/utily.py'>\n\n    all 27 testLazily.py tests passed (pygeodesy 26.3.26 Python 3.12.10 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 2.1.0 scipy 1.14.1 Math 2 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 isLazy 3 -W  default) 158.154 ms\nrunning /usr/local/bin/p....n3.12 -W default ~/PyGeodesy/test/testLcc.py\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.F_D from .dms by testLcc.py line 11\n# lazily imported pygeodesy.F_DMS from .dms by testLcc.py line 11\n# lazily imported pygeodesy.Conic from .lcc by testLcc.py line 11\n# lazily imported pygeodesy.Conics from .lcc by testLcc.py line 11\n# lazily imported pygeodesy.Datums from .datums by testLcc.py line 11\n# lazily imported pygeodesy.Lcc from .lcc by testLcc.py line 11\n# lazily imported pygeodesy.toLcc from .lcc by testLcc.py line 11\n# lazily imported pygeodesy.ellipsoidalNvector by testLcc.py line 92\n# lazily imported pygeodesy.ellipsoidalVincenty by testLcc.py line 92\n\n    testing testLcc.py 23.03.27 (module pygeodesy.lcc 25.08.31) isLazy=3\n\n    testLcc(pygeodesy.ellipsoidalNvector, 25.05.12)\n    test 1 lb1: 448251.0 5411932.0001\n    test 2 lb1: 448251, 5411932\n    test 3 lb1: [E:448251, N:5411932]\n    test 4 lb1: WRF_Lb.WGS84\n    test 5 lb1: lb1\n    test 6 lb1: (81.929348, -79.558697)\n    test 7 lb1: (1.429937, -1.388561)\n    test 8 LatLon: 46.5°N, 003.0°E\n    test 9 LatLon: 46°30′00.0″N, 003°00′00.0″E\n    test 10 toLcc1: 700000 6600000\n    test 11 toLcc1: 46.5°N, 003.0°E\n    test 12 lb2: 1894411 1564650\n    test 13 lb2: Clarke1866\n    test 14 lb2: lb2\n    test 15 toLatLon2: 35.0°N, 075.0°W\n    test 16 toLatLon2: 35°00′00.0007″N, 074°59′59.9997″W\n    test 17 toLatLon2: NAD27\n    test 18 toLcc2: 1894410.9 1564649.5\n    test 19 toLcc2: [E:1894411, N:1564649]\n    test 20 toLcc2: Snyder.NAD27\n\n    test 21 Be08Lb: 49.833334°N, 003.025883°E\n    test 22 Be08Lb: GRS80\n\n    test 23 Be08Lb: 49.833334°N, 004.359216°E\n    test 24 Be08Lb: GRS80\n\n    test 25 Be08Lb: 49.833334°N, 005.692549°E\n    test 26 Be08Lb: GRS80\n\n    test 27 Be08Lb: 51.166667°N, 003.025883°E\n    test 28 Be08Lb: GRS80\n\n    test 29 Be08Lb: 51.166667°N, 004.359216°E\n    test 30 Be08Lb: GRS80\n\n    test 31 Be08Lb: 51.166667°N, 005.692549°E\n    test 32 Be08Lb: GRS80\n\n    test 33 Be72Lb: 49.833334°N, 003.034153°E\n    test 34 Be72Lb: NAD83\n\n    test 35 Be72Lb: 49.833334°N, 004.367487°E\n    test 36 Be72Lb: NAD83\n\n    test 37 Be72Lb: 49.833334°N, 005.70082°E\n    test 38 Be72Lb: NAD83\n\n    test 39 Be72Lb: 51.166667°N, 003.034153°E\n    test 40 Be72Lb: NAD83\n\n    test 41 Be72Lb: 51.166667°N, 004.367487°E\n    test 42 Be72Lb: NAD83\n\n    test 43 Be72Lb: 51.166667°N, 005.70082°E\n    test 44 Be72Lb: NAD83\n\n    test 45 Fr93Lb: 49.0°N, 002.0°W\n    test 46 Fr93Lb: WGS84\n\n    test 47 Fr93Lb: 49.0°N, 003.0°E\n    test 48 Fr93Lb: WGS84\n\n    test 49 Fr93Lb: 49.0°N, 008.0°E\n    test 50 Fr93Lb: WGS84\n\n    test 51 Fr93Lb: 44.0°N, 002.0°W\n    test 52 Fr93Lb: WGS84\n\n    test 53 Fr93Lb: 44.0°N, 003.0°E\n    test 54 Fr93Lb: WGS84\n\n    test 55 Fr93Lb: 44.0°N, 008.0°E\n    test 56 Fr93Lb: WGS84\n\n    test 57 MaNLb: 31.73°N, 008.54°W\n    test 58 MaNLb: NTF\n\n    test 59 MaNLb: 31.73°N, 005.4°W\n    test 60 MaNLb: NTF\n\n    test 61 MaNLb: 31.73°N, 002.26°W\n    test 62 MaNLb: NTF\n\n    test 63 MaNLb: 34.87°N, 008.54°W\n    test 64 MaNLb: NTF\n\n    test 65 MaNLb: 34.87°N, 005.4°W\n    test 66 MaNLb: NTF\n\n    test 67 MaNLb: 34.87°N, 002.26°W\n    test 68 MaNLb: NTF\n\n    test 69 MxLb: 17.5°N, 114.0°W\n    test 70 MxLb: WGS84\n\n    test 71 MxLb: 17.5°N, 102.0°W\n    test 72 MxLb: WGS84\n\n    test 73 MxLb: 17.5°N, 090.0°W\n    test 74 MxLb: WGS84\n\n    test 75 MxLb: 29.5°N, 114.0°W\n    test 76 MxLb: WGS84\n\n    test 77 MxLb: 29.5°N, 102.0°W\n    test 78 MxLb: WGS84\n\n    test 79 MxLb: 29.5°N, 090.0°W\n    test 80 MxLb: WGS84\n\n    test 81 PyT_Lb: 45.898939°N, 000.540154°E\n    test 82 PyT_Lb: NTF\n\n    test 83 PyT_Lb: 45.898939°N, 002.337229°E\n    test 84 PyT_Lb: NTF\n\n    test 85 PyT_Lb: 45.898939°N, 004.134305°E\n    test 86 PyT_Lb: NTF\n\n    test 87 PyT_Lb: 47.696014°N, 000.540154°E\n    test 88 PyT_Lb: NTF\n\n    test 89 PyT_Lb: 47.696014°N, 002.337229°E\n    test 90 PyT_Lb: NTF\n\n    test 91 PyT_Lb: 47.696014°N, 004.134305°E\n    test 92 PyT_Lb: NTF\n\n    test 93 Snyder: 33.0°N, 108.0°W\n    test 94 Snyder: NAD27\n\n    test 95 Snyder: 33.0°N, 096.0°W\n    test 96 Snyder: NAD27\n\n    test 97 Snyder: 33.0°N, 084.0°W\n    test 98 Snyder: NAD27\n\n    test 99 Snyder: 45.0°N, 108.0°W\n    test 100 Snyder: NAD27\n\n    test 101 Snyder: 45.0°N, 096.0°W\n    test 102 Snyder: NAD27\n\n    test 103 Snyder: 45.0°N, 084.0°W\n    test 104 Snyder: NAD27\n\n    test 105 USA_Lb: 33.0°N, 108.0°W\n    test 106 USA_Lb: WGS84\n\n    test 107 USA_Lb: 33.0°N, 096.0°W\n    test 108 USA_Lb: WGS84\n\n    test 109 USA_Lb: 33.0°N, 084.0°W\n    test 110 USA_Lb: WGS84\n\n    test 111 USA_Lb: 45.0°N, 108.0°W\n    test 112 USA_Lb: WGS84\n\n    test 113 USA_Lb: 45.0°N, 096.0°W\n    test 114 USA_Lb: WGS84\n\n    test 115 USA_Lb: 45.0°N, 084.0°W\n    test 116 USA_Lb: WGS84\n\n    test 117 WRF_Lb: 33.0°N, 109.0°W\n    test 118 WRF_Lb: WGS84\n\n    test 119 WRF_Lb: 33.0°N, 097.0°W\n    test 120 WRF_Lb: WGS84\n\n    test 121 WRF_Lb: 33.0°N, 085.0°W\n    test 122 WRF_Lb: WGS84\n\n    test 123 WRF_Lb: 45.0°N, 109.0°W\n    test 124 WRF_Lb: WGS84\n\n    test 125 WRF_Lb: 45.0°N, 097.0°W\n    test 126 WRF_Lb: WGS84\n\n    test 127 WRF_Lb: 45.0°N, 085.0°W\n    test 128 WRF_Lb: WGS84\n\n\n    testLcc(pygeodesy.ellipsoidalVincenty, 25.05.26)\n    test 129 lb1: 448251.0 5411932.0001\n    test 130 lb1: 448251, 5411932\n    test 131 lb1: [E:448251, N:5411932]\n    test 132 lb1: WRF_Lb.WGS84\n    test 133 lb1: lb1\n    test 134 lb1: (81.929348, -79.558697)\n    test 135 lb1: (1.429937, -1.388561)\n    test 136 LatLon: 46.5°N, 003.0°E\n    test 137 LatLon: 46°30′00.0″N, 003°00′00.0″E\n    test 138 toLcc1: 700000 6600000\n    test 139 toLcc1: 46.5°N, 003.0°E\n    test 140 lb2: 1894411 1564650\n    test 141 lb2: Clarke1866\n    test 142 lb2: lb2\n    test 143 toLatLon2: 35.0°N, 075.0°W\n    test 144 toLatLon2: 35°00′00.0007″N, 074°59′59.9997″W\n    test 145 toLatLon2: NAD27\n    test 146 toLcc2: 1894410.9 1564649.5\n    test 147 toLcc2: [E:1894411, N:1564649]\n    test 148 toLcc2: Snyder.NAD27\n\n    test 149 Be08Lb: 49.833334°N, 003.025883°E\n    test 150 Be08Lb: GRS80\n\n    test 151 Be08Lb: 49.833334°N, 004.359216°E\n    test 152 Be08Lb: GRS80\n\n    test 153 Be08Lb: 49.833334°N, 005.692549°E\n    test 154 Be08Lb: GRS80\n\n    test 155 Be08Lb: 51.166667°N, 003.025883°E\n    test 156 Be08Lb: GRS80\n\n    test 157 Be08Lb: 51.166667°N, 004.359216°E\n    test 158 Be08Lb: GRS80\n\n    test 159 Be08Lb: 51.166667°N, 005.692549°E\n    test 160 Be08Lb: GRS80\n\n    test 161 Be72Lb: 49.833334°N, 003.034153°E\n    test 162 Be72Lb: NAD83\n\n    test 163 Be72Lb: 49.833334°N, 004.367487°E\n    test 164 Be72Lb: NAD83\n\n    test 165 Be72Lb: 49.833334°N, 005.70082°E\n    test 166 Be72Lb: NAD83\n\n    test 167 Be72Lb: 51.166667°N, 003.034153°E\n    test 168 Be72Lb: NAD83\n\n    test 169 Be72Lb: 51.166667°N, 004.367487°E\n    test 170 Be72Lb: NAD83\n\n    test 171 Be72Lb: 51.166667°N, 005.70082°E\n    test 172 Be72Lb: NAD83\n\n    test 173 Fr93Lb: 49.0°N, 002.0°W\n    test 174 Fr93Lb: WGS84\n\n    test 175 Fr93Lb: 49.0°N, 003.0°E\n    test 176 Fr93Lb: WGS84\n\n    test 177 Fr93Lb: 49.0°N, 008.0°E\n    test 178 Fr93Lb: WGS84\n\n    test 179 Fr93Lb: 44.0°N, 002.0°W\n    test 180 Fr93Lb: WGS84\n\n    test 181 Fr93Lb: 44.0°N, 003.0°E\n    test 182 Fr93Lb: WGS84\n\n    test 183 Fr93Lb: 44.0°N, 008.0°E\n    test 184 Fr93Lb: WGS84\n\n    test 185 MaNLb: 31.73°N, 008.54°W\n    test 186 MaNLb: NTF\n\n    test 187 MaNLb: 31.73°N, 005.4°W\n    test 188 MaNLb: NTF\n\n    test 189 MaNLb: 31.73°N, 002.26°W\n    test 190 MaNLb: NTF\n\n    test 191 MaNLb: 34.87°N, 008.54°W\n    test 192 MaNLb: NTF\n\n    test 193 MaNLb: 34.87°N, 005.4°W\n    test 194 MaNLb: NTF\n\n    test 195 MaNLb: 34.87°N, 002.26°W\n    test 196 MaNLb: NTF\n\n    test 197 MxLb: 17.5°N, 114.0°W\n    test 198 MxLb: WGS84\n\n    test 199 MxLb: 17.5°N, 102.0°W\n    test 200 MxLb: WGS84\n\n    test 201 MxLb: 17.5°N, 090.0°W\n    test 202 MxLb: WGS84\n\n    test 203 MxLb: 29.5°N, 114.0°W\n    test 204 MxLb: WGS84\n\n    test 205 MxLb: 29.5°N, 102.0°W\n    test 206 MxLb: WGS84\n\n    test 207 MxLb: 29.5°N, 090.0°W\n    test 208 MxLb: WGS84\n\n    test 209 PyT_Lb: 45.898939°N, 000.540154°E\n    test 210 PyT_Lb: NTF\n\n    test 211 PyT_Lb: 45.898939°N, 002.337229°E\n    test 212 PyT_Lb: NTF\n\n    test 213 PyT_Lb: 45.898939°N, 004.134305°E\n    test 214 PyT_Lb: NTF\n\n    test 215 PyT_Lb: 47.696014°N, 000.540154°E\n    test 216 PyT_Lb: NTF\n\n    test 217 PyT_Lb: 47.696014°N, 002.337229°E\n    test 218 PyT_Lb: NTF\n\n    test 219 PyT_Lb: 47.696014°N, 004.134305°E\n    test 220 PyT_Lb: NTF\n\n    test 221 Snyder: 33.0°N, 108.0°W\n    test 222 Snyder: NAD27\n\n    test 223 Snyder: 33.0°N, 096.0°W\n    test 224 Snyder: NAD27\n\n    test 225 Snyder: 33.0°N, 084.0°W\n    test 226 Snyder: NAD27\n\n    test 227 Snyder: 45.0°N, 108.0°W\n    test 228 Snyder: NAD27\n\n    test 229 Snyder: 45.0°N, 096.0°W\n    test 230 Snyder: NAD27\n\n    test 231 Snyder: 45.0°N, 084.0°W\n    test 232 Snyder: NAD27\n\n    test 233 USA_Lb: 33.0°N, 108.0°W\n    test 234 USA_Lb: WGS84\n\n    test 235 USA_Lb: 33.0°N, 096.0°W\n    test 236 USA_Lb: WGS84\n\n    test 237 USA_Lb: 33.0°N, 084.0°W\n    test 238 USA_Lb: WGS84\n\n    test 239 USA_Lb: 45.0°N, 108.0°W\n    test 240 USA_Lb: WGS84\n\n    test 241 USA_Lb: 45.0°N, 096.0°W\n    test 242 USA_Lb: WGS84\n\n    test 243 USA_Lb: 45.0°N, 084.0°W\n    test 244 USA_Lb: WGS84\n\n    test 245 WRF_Lb: 33.0°N, 109.0°W\n    test 246 WRF_Lb: WGS84\n\n    test 247 WRF_Lb: 33.0°N, 097.0°W\n    test 248 WRF_Lb: WGS84\n\n    test 249 WRF_Lb: 33.0°N, 085.0°W\n    test 250 WRF_Lb: WGS84\n\n    test 251 WRF_Lb: 45.0°N, 109.0°W\n    test 252 WRF_Lb: WGS84\n\n    test 253 WRF_Lb: 45.0°N, 097.0°W\n    test 254 WRF_Lb: WGS84\n\n    test 255 WRF_Lb: 45.0°N, 085.0°W\n    test 256 WRF_Lb: WGS84\n\n\n    testConic(pygeodesy.ellipsoidalNvector, 25.05.12)\n    test 257 SnyderN: name='SnyderN', lat0=23, lon0=-96, par1=33, par2=45, E0=0, N0=0, k0=1, SP=2, datum=Datum(name='NAD27', ellipsoid=Ellipsoids.Clarke1866, transform=Transforms.NAD27)\n    test 258 _SnyderN: name='_SnyderN', lat0=23, lon0=-96, par1=33, E0=0, N0=0, k0=1, SP=1, datum=Datum(name='NAD27', ellipsoid=Ellipsoids.Clarke1866, transform=Transforms.NAD27)\n    test 259 _SnyderN: name='_SnyderN', lat0=23, lon0=-96, par1=33, E0=0, N0=0, k0=1, SP=1, datum=Datum(name='NAD83', ellipsoid=Ellipsoids.GRS80, transform=Transforms.NAD83)\n    test 260 _SnyderN .auth: ''\n    test 261 _SnyderN .opt3: 0.0\n    test 262 _SnyderN .latlon0: (23.0, -96.0)\n    test 263 _SnyderN .philam0: (0.401426, -1.675516)\n\n    testConic(pygeodesy.ellipsoidalVincenty, 25.05.26)\n    test 264 SnyderV: name='SnyderV', lat0=23, lon0=-96, par1=33, par2=45, E0=0, N0=0, k0=1, SP=2, datum=Datum(name='NAD27', ellipsoid=Ellipsoids.Clarke1866, transform=Transforms.NAD27)\n    test 265 _SnyderV: name='_SnyderV', lat0=23, lon0=-96, par1=33, E0=0, N0=0, k0=1, SP=1, datum=Datum(name='NAD27', ellipsoid=Ellipsoids.Clarke1866, transform=Transforms.NAD27)\n    test 266 _SnyderV: name='_SnyderV', lat0=23, lon0=-96, par1=33, E0=0, N0=0, k0=1, SP=1, datum=Datum(name='NAD83', ellipsoid=Ellipsoids.GRS80, transform=Transforms.NAD83)\n    test 267 _SnyderV .auth: ''\n    test 268 _SnyderV .opt3: 0.0\n    test 269 _SnyderV .latlon0: (23.0, -96.0)\n    test 270 _SnyderV .philam0: (0.401426, -1.675516)\n\n    all 270 testLcc.py tests passed (pygeodesy 26.3.26 Python 3.12.10 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 2.1.0 scipy 1.14.1 Math 2 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 isLazy 3 -W  default) 24.284 ms\nrunning /usr/local/bin/p....n3.12 -W default ~/PyGeodesy/test/testLtp.py\n./pygeodesy/deprecated/classes.py:75: DeprecationWarning: class L{EcefCartesian_<pygeodesy.deprecated.classes.EcefCartesian_>} has been DEPRECATED, use class L{LocalCartesian} or L{Ltp}.\n  deprecated_class(self.__class__)\n./test/testLtp.py:41: DeprecationWarning: method L{forward<pygeodesy.deprecated.classes.EcefCartesian_.forward>} has been DEPRECATED, use method L{LocalCartesian.forward} or L{Ltp.forward}.\n  t = c.forward(33.3, 44.4, 6000)\n./test/testLtp.py:45: DeprecationWarning: method L{reverse<pygeodesy.deprecated.classes.EcefCartesian_.reverse>} has been DEPRECATED, use method L{LocalCartesian.reverse} or L{Ltp.reverse}.\n  t = c.reverse(37288.97, 33374.29, 5783.65)\n./test/testLtp.py:54: DeprecationWarning: method L{forward<pygeodesy.deprecated.classes.EcefCartesian_.forward>} has been DEPRECATED, use method L{LocalCartesian.forward} or L{Ltp.forward}.\n  t = c.forward(LatLon_(50.9, 1.8, name='Calais'))  # Local9Tuple\n./test/testLtp.py:58: DeprecationWarning: method L{reverse<pygeodesy.deprecated.classes.EcefCartesian_.reverse>} has been DEPRECATED, use method L{LocalCartesian.reverse} or L{Ltp.reverse}.\n  t = c.reverse(-37518.64, 229949.65, -4260.43)  # Local9Tuple\n./test/testLtp.py:62: DeprecationWarning: method L{reverse<pygeodesy.deprecated.classes.EcefCartesian_.reverse>} has been DEPRECATED, use method L{LocalCartesian.reverse} or L{Ltp.reverse}.\n  t = c.reverse(-38e3, 230e3, -4e3)\n./test/testLtp.py:66: DeprecationWarning: method L{forward<pygeodesy.deprecated.classes.EcefCartesian_.forward>} has been DEPRECATED, use method L{LocalCartesian.forward} or L{Ltp.forward}.\n  t = c.forward(50.9, 1.79, 264.92)  # Local9Tuple\n./test/testLtp.py:74: DeprecationWarning: method L{reverse<pygeodesy.deprecated.classes.EcefCartesian_.reverse>} has been DEPRECATED, use method L{LocalCartesian.reverse} or L{Ltp.reverse}.\n  t = Z.reverse(M).toLatLon(datum=None)  # Matterhorn Xyz to LatLon\n./test/testLtp.py:76: DeprecationWarning: method L{forward<pygeodesy.deprecated.classes.EcefCartesian_.forward>} has been DEPRECATED, use method L{LocalCartesian.forward} or L{Ltp.forward}.\n  self.test('xyz', Z.forward(t).xyz.toStr(prec=1), '(-7134.8, -4556.3, 2852.4)', known=Sudano)\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.Aer from .ltpTuples by testLtp.py line 11\n# lazily imported pygeodesy.Attitude from .ltp by testLtp.py line 11\n# lazily imported pygeodesy.ChLV from .ltp by testLtp.py line 11\n# lazily imported pygeodesy.ChLVa from .ltp by testLtp.py line 11\n# lazily imported pygeodesy.ChLVe from .ltp by testLtp.py line 11\n# lazily imported pygeodesy.EcefFarrell21 from .ecef by testLtp.py line 11\n# lazily imported pygeodesy.EcefFarrell22 from .ecef by testLtp.py line 11\n# lazily imported pygeodesy.EcefKarney from .ecef by testLtp.py line 11\n# lazily imported pygeodesy.EcefVeness from .ecef by testLtp.py line 11\n# lazily imported pygeodesy.EcefSudano from .ecef by testLtp.py line 11\n# lazily imported pygeodesy.Ecef9Tuple from .ecef by testLtp.py line 11\n# lazily imported pygeodesy.EcefYou from .ecef by testLtp.py line 11\n# lazily imported pygeodesy.Enu from .ltpTuples by testLtp.py line 11\n# lazily imported pygeodesy.Frustum from .ltp by testLtp.py line 11\n# lazily imported pygeodesy.fstr from .streprs by testLtp.py line 11\n# lazily imported pygeodesy.LatLon_ from .points by testLtp.py line 11\n# lazily imported pygeodesy.LocalCartesian from .ltp by testLtp.py line 11\n# lazily imported pygeodesy.Local9Tuple from .ltpTuples by testLtp.py line 11\n# lazily imported pygeodesy.Ltp from .ltp by testLtp.py line 11\n# lazily imported pygeodesy.Ned from .ltpTuples by testLtp.py line 11\n# lazily imported pygeodesy.tyr3d from .ltp by testLtp.py line 11\n# lazily imported pygeodesy.XyzLocal from .ltpTuples by testLtp.py line 11\n# lazily imported pygeodesy.latDMS from .dms by testLtp.py line 11\n# lazily imported pygeodesy.lonDMS from .dms by testLtp.py line 11\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by <frozen importlib._bootstrap> line 1412\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by <frozen importlib._bootstrap> line 1412\n# lazily imported pygeodesy.Conformal2Tuple from .triaxials.triaxial5 by <frozen importlib._bootstrap> line 1412\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by classes.py line 21\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by classes.py line 21\n# lazily imported pygeodesy.Conformal2Tuple from .triaxials.triaxial5 by classes.py line 21\n# lazily imported pygeodesy.Ellipsoids from .ellipsoids by testLtp.py line 286\n\n    testing testLtp.py 23.11.21 isLazy=3\n\n    test 1 EcefCartesian: {}\n    test 2 name: Test\n    test 3 toStr: EcefCartesian_(lat0=33.0, lon0=44.0, height0=20.0, M=EcefMatrix(_0_0_=-0.694658, _0_1_=-0.391781, _0_2_=0.603289, _1_0_=0.71934, _1_1_=-0.378338, _1_2_=0.58259, _2_0_=0.0, _2_1_=0.838671, _2_2_=0.544639), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Test')  FAILED, KNOWN, expected EcefCartesian_\n    test 4 copy(<class 'type'>): (<class 'pygeodesy.deprecated.classes.EcefCartesian.<locals>.EcefCartesian_'>, True)\n    test 5 EcefCartesian_.copy(): (<class 'pygeodesy.deprecated.classes.EcefCartesian.<locals>.EcefCartesian_'>, True)\n    test 6 New: lat0=33.0, lon0=44.0, height0=20.0, M=EcefMatrix(_0_0_=-0.694658, _0_1_=-0.391781, _0_2_=0.603289, _1_0_=0.71934, _1_1_=-0.378338, _1_2_=0.58259, _2_0_=0.0, _2_1_=0.838671, _2_2_=0.544639), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Test'\n    test 7 forward: 37288.97, 33374.29, 5783.65\n    test 8 name: Test\n    test 9 reverse: 33.3, 44.4, 6000.0\n    test 10 name: Test\n    test 11 name: Paris\n    test 12 Paris: 48.833, 2.333, 0.0\n    test 13 forward: -37518.64, 229949.65, -4260.43\n    test 14 name: Calais\n    test 15 reverse: 50.9, 1.8, -0.0\n    test 16 name: Paris\n    test 17 reverse: -38000.0, 230000.0, -4000.0\n    test 18 reverse: 50.9, 1.79, 264.92\n    test 19 forward: -38223.7, 229964.2, -4000.0\n\n    test 20 Zermatt: lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'  FAILED, KNOWN, expected EcefCartesian_\n    test 21 Matterhorn: (45.976, 7.658, 4531.01)\n    test 22 xyz: (-7134.8, -4556.3, 2852.4)\n    test 23 _local2ecef: 4403757.602, 592124.536, 4566652.082\n    test 24 _local2ecef: (4403757.602, 592124.536, 4566652.082, 45.976, 7.658, 4531.01, 1, None, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))  FAILED, KNOWN, expected Ecef9Tuple\n    test 25 _local2ecef: Ecef9Tuple\n    test 26 _ecef2local: (-7134.8, -4556.3, 2852.4, 45.976, 7.658, 4531.01, EcefCartesian_(lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'), Ecef9Tuple(x=4403757.601549, y=592124.535536, z=4566652.082005, lat=45.976, lon=7.657999, height=4531.009608, C=1, M=None, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84)), None)  FAILED, KNOWN, expected Local9Tuple\n    test 27 _ecef2local: Local9Tuple\n    test 28 Xyz: (-7134.8, -4556.3, 2852.4, None)\n    test 29 Aer: (-7134.912, -4444.548, 2852.474, None)\n    test 30 Enu: (-7134.8, -4556.3, 2852.4, None)\n    test 31 Ned: [-4556.3, -7134.8, -2852.4]\n    test 32 Enu: [-7134.8, -4556.3, 2852.4]\n    test 33 Ned: [-4556.3, -7134.8, -2852.4]\n\n    test 34 lon00: (90.0, 57.3, 0.0, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 35 lon00: (90.0, 3.75, 0.0, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n\n    test 36 Frustum: 90.0, 90.0\n    test 37 hfov: 90.0\n    test 38 vfov: 90.0\n    test 39 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None))\n    test 40 footprint.xyzLocal5: ([X:0.0, Y:0.0, Z:0.0], [X:1000.0, Y:1000.0, Z:0.0], [X:1000.0, Y:1000.0, Z:0.0], [X:-1000.0, Y:-1000.0, Z:0.0], [X:-1000.0, Y:-1000.0, Z:0.0])\n# imported pygeodesy.ltp into ltpTuples.py line 1534\n    test 41 footprint.toLatLon5: (LatLon_(00.0°N, 000.0°E), LatLon_(00.009044°N, 000.008983°E, +0.16), LatLon_(00.009044°N, 000.008983°E, +0.16), LatLon_(00.009044°S, 000.008983°W, +0.16), LatLon_(00.009044°S, 000.008983°W, +0.16))\n\n    test 42 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None))\n    test 43 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=414.213562, y=414.213562, z=0.0, ltp=None), Xyz4Tuple(x=414.213562, y=414.213562, z=0.0, ltp=None), Xyz4Tuple(x=-414.213562, y=-414.213562, z=0.0, ltp=None), Xyz4Tuple(x=-414.213562, y=-414.213562, z=0.0, ltp=None))\n    test 44 footprint: (Xyz4Tuple(x=-57289.961631, y=-57289.961631, z=0.0, ltp=None), Xyz4Tuple(x=2538.647896, y=2538.647896, z=0.0, ltp=None), Xyz4Tuple(x=2538.647896, y=2538.647896, z=0.0, ltp=None), Xyz4Tuple(x=-2299.842547, y=-2299.842547, z=0.0, ltp=None), Xyz4Tuple(x=-2299.842547, y=-2299.842547, z=0.0, ltp=None))\n\n    test 45 Attitude: (0.0, -10.0, 330.0, -20.0)\n    test 46 alt: 0.0\n    test 47 tilt: -10.0\n    test 48 roll: -20.0\n    test 49 yaw: 330.0\n    test 50 matrix: ((0.8137976813493736, -0.44096961052988237, -0.37852230636979256), (0.46984631039295416, 0.8825641192593855, -0.018028311236297286), (0.3420201433256688, -0.16317591116653488, 0.9254165783983233))  FAILED, KNOWN, expected ((0.8137976813493737, -0.4409696105298823, -0.3785223063697926), (0.4698463103929541, 0.8825641192593856, -0.01802831123629725), (0.3420201433256688, -0.16317591116653488, 0.9254165783983233))\n    test 51 rotate: (-0.005694, 1.334382, 1.104261)\n    test 52 tyr3d: (0.0, 0.0, 0.0)\n    test 53 tyr3d: (0.0, -2.0, 0.0)\n    test 54 tyr3d: (0.0, -2.0, 0.0)\n    test 55 tyr3d: (0.0, 0.0, -2.0)\n\n    test 56 LocalCartesian: {}\n    test 57 name: Test\n    test 58 toStr: LocalCartesian(lat0=33.0, lon0=44.0, height0=20.0, M=EcefMatrix(_0_0_=-0.694658, _0_1_=-0.391781, _0_2_=0.603289, _1_0_=0.71934, _1_1_=-0.378338, _1_2_=0.58259, _2_0_=0.0, _2_1_=0.838671, _2_2_=0.544639), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Test')  FAILED, KNOWN, expected LocalCartesian\n    test 59 copy(<class 'type'>): (<class 'pygeodesy.ltp.LocalCartesian'>, True)\n    test 60 LocalCartesian.copy(): (<class 'pygeodesy.ltp.LocalCartesian'>, True)\n    test 61 New: lat0=33.0, lon0=44.0, height0=20.0, M=EcefMatrix(_0_0_=-0.694658, _0_1_=-0.391781, _0_2_=0.603289, _1_0_=0.71934, _1_1_=-0.378338, _1_2_=0.58259, _2_0_=0.0, _2_1_=0.838671, _2_2_=0.544639), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Test'\n    test 62 forward: 37288.97, 33374.29, 5783.65\n    test 63 name: Test\n    test 64 reverse: 33.3, 44.4, 6000.0\n    test 65 name: Test\n    test 66 name: Paris\n    test 67 Paris: 48.833, 2.333, 0.0\n    test 68 forward: -37518.64, 229949.65, -4260.43\n    test 69 name: Calais\n    test 70 reverse: 50.9, 1.8, -0.0\n    test 71 name: Paris\n    test 72 reverse: -38000.0, 230000.0, -4000.0\n    test 73 reverse: 50.9, 1.79, 264.92\n    test 74 forward: -38223.7, 229964.2, -4000.0\n\n    test 75 Zermatt: lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'  FAILED, KNOWN, expected LocalCartesian\n    test 76 Matterhorn: (45.976, 7.658, 4531.01)\n    test 77 xyz: (-7134.8, -4556.3, 2852.4)\n    test 78 _local2ecef: 4403757.602, 592124.536, 4566652.082\n    test 79 _local2ecef: (4403757.602, 592124.536, 4566652.082, 45.976, 7.658, 4531.01, 1, None, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))  FAILED, KNOWN, expected Ecef9Tuple\n    test 80 _local2ecef: Ecef9Tuple\n    test 81 _ecef2local: (-7134.8, -4556.3, 2852.4, 45.976, 7.658, 4531.01, LocalCartesian(lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'), Ecef9Tuple(x=4403757.601549, y=592124.535536, z=4566652.082005, lat=45.976, lon=7.657999, height=4531.009608, C=1, M=None, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84)), None)  FAILED, KNOWN, expected Local9Tuple\n    test 82 _ecef2local: Local9Tuple\n    test 83 Xyz: (-7134.8, -4556.3, 2852.4, None)\n    test 84 Aer: (-7134.912, -4444.548, 2852.474, None)\n    test 85 Enu: (-7134.8, -4556.3, 2852.4, None)\n    test 86 Ned: [-4556.3, -7134.8, -2852.4]\n    test 87 Enu: [-7134.8, -4556.3, 2852.4]\n    test 88 Ned: [-4556.3, -7134.8, -2852.4]\n\n    test 89 lon00: (90.0, 57.3, 0.0, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 90 lon00: (90.0, 3.75, 0.0, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n\n    test 91 Frustum: 90.0, 90.0\n    test 92 hfov: 90.0\n    test 93 vfov: 90.0\n    test 94 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None))\n    test 95 footprint.xyzLocal5: ([X:0.0, Y:0.0, Z:0.0], [X:1000.0, Y:1000.0, Z:0.0], [X:1000.0, Y:1000.0, Z:0.0], [X:-1000.0, Y:-1000.0, Z:0.0], [X:-1000.0, Y:-1000.0, Z:0.0])\n    test 96 footprint.toLatLon5: (LatLon_(00.0°N, 000.0°E), LatLon_(00.009044°N, 000.008983°E, +0.16), LatLon_(00.009044°N, 000.008983°E, +0.16), LatLon_(00.009044°S, 000.008983°W, +0.16), LatLon_(00.009044°S, 000.008983°W, +0.16))\n\n    test 97 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None))\n    test 98 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=414.213562, y=414.213562, z=0.0, ltp=None), Xyz4Tuple(x=414.213562, y=414.213562, z=0.0, ltp=None), Xyz4Tuple(x=-414.213562, y=-414.213562, z=0.0, ltp=None), Xyz4Tuple(x=-414.213562, y=-414.213562, z=0.0, ltp=None))\n    test 99 footprint: (Xyz4Tuple(x=-57289.961631, y=-57289.961631, z=0.0, ltp=None), Xyz4Tuple(x=2538.647896, y=2538.647896, z=0.0, ltp=None), Xyz4Tuple(x=2538.647896, y=2538.647896, z=0.0, ltp=None), Xyz4Tuple(x=-2299.842547, y=-2299.842547, z=0.0, ltp=None), Xyz4Tuple(x=-2299.842547, y=-2299.842547, z=0.0, ltp=None))\n\n    test 100 Attitude: (0.0, -10.0, 330.0, -20.0)\n    test 101 alt: 0.0\n    test 102 tilt: -10.0\n    test 103 roll: -20.0\n    test 104 yaw: 330.0\n    test 105 matrix: ((0.8137976813493736, -0.44096961052988237, -0.37852230636979256), (0.46984631039295416, 0.8825641192593855, -0.018028311236297286), (0.3420201433256688, -0.16317591116653488, 0.9254165783983233))  FAILED, KNOWN, expected ((0.8137976813493737, -0.4409696105298823, -0.3785223063697926), (0.4698463103929541, 0.8825641192593856, -0.01802831123629725), (0.3420201433256688, -0.16317591116653488, 0.9254165783983233))\n    test 106 rotate: (-0.005694, 1.334382, 1.104261)\n    test 107 tyr3d: (0.0, 0.0, 0.0)\n    test 108 tyr3d: (0.0, -2.0, 0.0)\n    test 109 tyr3d: (0.0, -2.0, 0.0)\n    test 110 tyr3d: (0.0, 0.0, -2.0)\n\n    test 111 Ltp: {}\n    test 112 name: Test\n    test 113 toStr: Ltp(lat0=33.0, lon0=44.0, height0=20.0, M=EcefMatrix(_0_0_=-0.694658, _0_1_=-0.391781, _0_2_=0.603289, _1_0_=0.71934, _1_1_=-0.378338, _1_2_=0.58259, _2_0_=0.0, _2_1_=0.838671, _2_2_=0.544639), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Test')  FAILED, KNOWN, expected Ltp\n    test 114 copy(<class 'type'>): (<class 'pygeodesy.ltp.Ltp'>, True)\n    test 115 Ltp.copy(): (<class 'pygeodesy.ltp.Ltp'>, True)\n    test 116 New: lat0=33.0, lon0=44.0, height0=20.0, M=EcefMatrix(_0_0_=-0.694658, _0_1_=-0.391781, _0_2_=0.603289, _1_0_=0.71934, _1_1_=-0.378338, _1_2_=0.58259, _2_0_=0.0, _2_1_=0.838671, _2_2_=0.544639), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Test'\n    test 117 forward: 37288.97, 33374.29, 5783.65\n    test 118 name: Test\n    test 119 reverse: 33.3, 44.4, 6000.0\n    test 120 name: Test\n    test 121 name: Paris\n    test 122 Paris: 48.833, 2.333, 0.0\n    test 123 forward: -37518.64, 229949.65, -4260.43\n    test 124 name: Calais\n    test 125 reverse: 50.9, 1.8, -0.0\n    test 126 name: Paris\n    test 127 reverse: -38000.0, 230000.0, -4000.0\n    test 128 reverse: 50.9, 1.79, 264.92\n    test 129 forward: -38223.7, 229964.2, -4000.0\n\n    test 130 Zermatt: lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'  FAILED, KNOWN, expected Ltp\n    test 131 Matterhorn: (45.976, 7.658, 4531.01)\n    test 132 xyz: (-7134.8, -4556.3, 2852.4)\n    test 133 _local2ecef: 4403757.602, 592124.536, 4566652.082\n    test 134 _local2ecef: (4403757.602, 592124.536, 4566652.082, 45.976, 7.658, 4531.01, 1, None, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))  FAILED, KNOWN, expected Ecef9Tuple\n    test 135 _local2ecef: Ecef9Tuple\n    test 136 _ecef2local: (-7134.8, -4556.3, 2852.4, 45.976, 7.658, 4531.01, Ltp(lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'), Ecef9Tuple(x=4403757.601549, y=592124.535536, z=4566652.082005, lat=45.976, lon=7.657999, height=4531.009608, C=1, M=None, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84)), None)  FAILED, KNOWN, expected Local9Tuple\n    test 137 _ecef2local: Local9Tuple\n    test 138 Xyz: (-7134.8, -4556.3, 2852.4, None)\n    test 139 Aer: (-7134.912, -4444.548, 2852.474, None)\n    test 140 Enu: (-7134.8, -4556.3, 2852.4, None)\n    test 141 Ned: [-4556.3, -7134.8, -2852.4]\n    test 142 Enu: [-7134.8, -4556.3, 2852.4]\n    test 143 Ned: [-4556.3, -7134.8, -2852.4]\n\n    test 144 lon00: (90.0, 57.3, 0.0, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 145 lon00: (90.0, 3.75, 0.0, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n\n    test 146 Frustum: 90.0, 90.0\n    test 147 hfov: 90.0\n    test 148 vfov: 90.0\n    test 149 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None))\n    test 150 footprint.xyzLocal5: ([X:0.0, Y:0.0, Z:0.0], [X:1000.0, Y:1000.0, Z:0.0], [X:1000.0, Y:1000.0, Z:0.0], [X:-1000.0, Y:-1000.0, Z:0.0], [X:-1000.0, Y:-1000.0, Z:0.0])\n    test 151 footprint.toLatLon5: (LatLon_(00.0°N, 000.0°E), LatLon_(00.009044°N, 000.008983°E, +0.16), LatLon_(00.009044°N, 000.008983°E, +0.16), LatLon_(00.009044°S, 000.008983°W, +0.16), LatLon_(00.009044°S, 000.008983°W, +0.16))\n\n    test 152 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None))\n    test 153 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=414.213562, y=414.213562, z=0.0, ltp=None), Xyz4Tuple(x=414.213562, y=414.213562, z=0.0, ltp=None), Xyz4Tuple(x=-414.213562, y=-414.213562, z=0.0, ltp=None), Xyz4Tuple(x=-414.213562, y=-414.213562, z=0.0, ltp=None))\n    test 154 footprint: (Xyz4Tuple(x=-57289.961631, y=-57289.961631, z=0.0, ltp=None), Xyz4Tuple(x=2538.647896, y=2538.647896, z=0.0, ltp=None), Xyz4Tuple(x=2538.647896, y=2538.647896, z=0.0, ltp=None), Xyz4Tuple(x=-2299.842547, y=-2299.842547, z=0.0, ltp=None), Xyz4Tuple(x=-2299.842547, y=-2299.842547, z=0.0, ltp=None))\n\n    test 155 Attitude: (0.0, -10.0, 330.0, -20.0)\n    test 156 alt: 0.0\n    test 157 tilt: -10.0\n    test 158 roll: -20.0\n    test 159 yaw: 330.0\n    test 160 matrix: ((0.8137976813493736, -0.44096961052988237, -0.37852230636979256), (0.46984631039295416, 0.8825641192593855, -0.018028311236297286), (0.3420201433256688, -0.16317591116653488, 0.9254165783983233))  FAILED, KNOWN, expected ((0.8137976813493737, -0.4409696105298823, -0.3785223063697926), (0.4698463103929541, 0.8825641192593856, -0.01802831123629725), (0.3420201433256688, -0.16317591116653488, 0.9254165783983233))\n    test 161 rotate: (-0.005694, 1.334382, 1.104261)\n    test 162 tyr3d: (0.0, 0.0, 0.0)\n    test 163 tyr3d: (0.0, -2.0, 0.0)\n    test 164 tyr3d: (0.0, -2.0, 0.0)\n    test 165 tyr3d: (0.0, 0.0, -2.0)\n\n    test 166 Ltp: {'ecef': EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name='')}\n    test 167 name: Test\n    test 168 toStr: Ltp(lat0=33.0, lon0=44.0, height0=20.0, M=EcefMatrix(_0_0_=-0.694658, _0_1_=-0.391781, _0_2_=0.603289, _1_0_=0.71934, _1_1_=-0.378338, _1_2_=0.58259, _2_0_=0.0, _2_1_=0.838671, _2_2_=0.544639), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Test')  FAILED, KNOWN, expected Ltp\n    test 169 copy(<class 'type'>): (<class 'pygeodesy.ltp.Ltp'>, True)\n    test 170 Ltp.copy(): (<class 'pygeodesy.ltp.Ltp'>, True)\n    test 171 New: lat0=33.0, lon0=44.0, height0=20.0, M=EcefMatrix(_0_0_=-0.694658, _0_1_=-0.391781, _0_2_=0.603289, _1_0_=0.71934, _1_1_=-0.378338, _1_2_=0.58259, _2_0_=0.0, _2_1_=0.838671, _2_2_=0.544639), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Test'\n    test 172 forward: 37288.97, 33374.29, 5783.65\n    test 173 name: Test\n    test 174 reverse: 33.3, 44.4, 6000.0\n    test 175 name: Test\n    test 176 name: Paris\n    test 177 Paris: 48.833, 2.333, 0.0\n    test 178 forward: -37518.64, 229949.65, -4260.43\n    test 179 name: Calais\n    test 180 reverse: 50.9, 1.8, -0.0\n    test 181 name: Paris\n    test 182 reverse: -38000.0, 230000.0, -4000.0\n    test 183 reverse: 50.9, 1.79, 264.92\n    test 184 forward: -38223.7, 229964.2, -4000.0\n\n    test 185 Zermatt: lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'  FAILED, KNOWN, expected Ltp\n    test 186 Matterhorn: (45.976, 7.658, 4531.01)\n    test 187 xyz: (-7134.8, -4556.3, 2852.4)\n    test 188 _local2ecef: 4403757.602, 592124.536, 4566652.082\n    test 189 _local2ecef: (4403757.602, 592124.536, 4566652.082, 45.976, 7.658, 4531.01, 1, None, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))  FAILED, KNOWN, expected Ecef9Tuple\n    test 190 _local2ecef: Ecef9Tuple\n    test 191 _ecef2local: (-7134.8, -4556.3, 2852.4, 45.976, 7.658, 4531.01, Ltp(lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'), Ecef9Tuple(x=4403757.601549, y=592124.535536, z=4566652.082005, lat=45.976, lon=7.657999, height=4531.009608, C=1, M=None, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84)), None)  FAILED, KNOWN, expected Local9Tuple\n    test 192 _ecef2local: Local9Tuple\n    test 193 Xyz: (-7134.8, -4556.3, 2852.4, None)\n    test 194 Aer: (-7134.912, -4444.548, 2852.474, None)\n    test 195 Enu: (-7134.8, -4556.3, 2852.4, None)\n    test 196 Ned: [-4556.3, -7134.8, -2852.4]\n    test 197 Enu: [-7134.8, -4556.3, 2852.4]\n    test 198 Ned: [-4556.3, -7134.8, -2852.4]\n\n    test 199 lon00: (90.0, 57.3, 0.0, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 200 lon00: (90.0, 3.75, 0.0, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n\n    test 201 Frustum: 90.0, 90.0\n    test 202 hfov: 90.0\n    test 203 vfov: 90.0\n    test 204 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None))\n    test 205 footprint.xyzLocal5: ([X:0.0, Y:0.0, Z:0.0], [X:1000.0, Y:1000.0, Z:0.0], [X:1000.0, Y:1000.0, Z:0.0], [X:-1000.0, Y:-1000.0, Z:0.0], [X:-1000.0, Y:-1000.0, Z:0.0])\n    test 206 footprint.toLatLon5: (LatLon_(00.0°N, 000.0°E), LatLon_(00.009044°N, 000.008983°E, +0.16), LatLon_(00.009044°N, 000.008983°E, +0.16), LatLon_(00.009044°S, 000.008983°W, +0.16), LatLon_(00.009044°S, 000.008983°W, +0.16))\n\n    test 207 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None))\n    test 208 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=414.213562, y=414.213562, z=0.0, ltp=None), Xyz4Tuple(x=414.213562, y=414.213562, z=0.0, ltp=None), Xyz4Tuple(x=-414.213562, y=-414.213562, z=0.0, ltp=None), Xyz4Tuple(x=-414.213562, y=-414.213562, z=0.0, ltp=None))\n    test 209 footprint: (Xyz4Tuple(x=-57289.961631, y=-57289.961631, z=0.0, ltp=None), Xyz4Tuple(x=2538.647896, y=2538.647896, z=0.0, ltp=None), Xyz4Tuple(x=2538.647896, y=2538.647896, z=0.0, ltp=None), Xyz4Tuple(x=-2299.842547, y=-2299.842547, z=0.0, ltp=None), Xyz4Tuple(x=-2299.842547, y=-2299.842547, z=0.0, ltp=None))\n\n    test 210 Attitude: (0.0, -10.0, 330.0, -20.0)\n    test 211 alt: 0.0\n    test 212 tilt: -10.0\n    test 213 roll: -20.0\n    test 214 yaw: 330.0\n    test 215 matrix: ((0.8137976813493736, -0.44096961052988237, -0.37852230636979256), (0.46984631039295416, 0.8825641192593855, -0.018028311236297286), (0.3420201433256688, -0.16317591116653488, 0.9254165783983233))  FAILED, KNOWN, expected ((0.8137976813493737, -0.4409696105298823, -0.3785223063697926), (0.4698463103929541, 0.8825641192593856, -0.01802831123629725), (0.3420201433256688, -0.16317591116653488, 0.9254165783983233))\n    test 216 rotate: (-0.005694, 1.334382, 1.104261)\n    test 217 tyr3d: (0.0, 0.0, 0.0)\n    test 218 tyr3d: (0.0, -2.0, 0.0)\n    test 219 tyr3d: (0.0, -2.0, 0.0)\n    test 220 tyr3d: (0.0, 0.0, -2.0)\n\n    test 221 Ltp: {'ecef': EcefFarrell21(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name='')}\n    test 222 name: Test\n    test 223 toStr: Ltp(lat0=33.0, lon0=44.0, height0=20.0, M=EcefMatrix(_0_0_=-0.694658, _0_1_=-0.391781, _0_2_=0.603289, _1_0_=0.71934, _1_1_=-0.378338, _1_2_=0.58259, _2_0_=0.0, _2_1_=0.838671, _2_2_=0.544639), ecef=EcefFarrell21(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Test')  FAILED, KNOWN, expected Ltp\n    test 224 copy(<class 'type'>): (<class 'pygeodesy.ltp.Ltp'>, True)\n    test 225 Ltp.copy(): (<class 'pygeodesy.ltp.Ltp'>, True)\n    test 226 New: lat0=33.0, lon0=44.0, height0=20.0, M=EcefMatrix(_0_0_=-0.694658, _0_1_=-0.391781, _0_2_=0.603289, _1_0_=0.71934, _1_1_=-0.378338, _1_2_=0.58259, _2_0_=0.0, _2_1_=0.838671, _2_2_=0.544639), ecef=EcefFarrell21(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Test'\n    test 227 forward: 37288.97, 33374.29, 5783.65\n    test 228 name: Test\n    test 229 reverse: 33.3, 44.4, 6000.0\n    test 230 name: Test\n    test 231 name: Paris\n    test 232 Paris: 48.833, 2.333, 0.0\n    test 233 forward: -37518.64, 229949.65, -4260.43\n    test 234 name: Calais\n    test 235 reverse: 50.9, 1.8, -0.0\n    test 236 name: Paris\n    test 237 reverse: -38000.0, 230000.0, -4000.0\n    test 238 reverse: 50.9, 1.79, 264.92\n    test 239 forward: -38223.7, 229964.2, -4000.0\n\n    test 240 Zermatt: lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefFarrell21(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'  FAILED, KNOWN, expected Ltp\n    test 241 Matterhorn: (45.976, 7.658, 4531.01)\n    test 242 xyz: (-7134.8, -4556.3, 2852.4)\n    test 243 _local2ecef: 4403757.602, 592124.536, 4566652.082\n    test 244 _local2ecef: (4403757.602, 592124.536, 4566652.082, 45.976, 7.658, 4531.01, 1, None, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))  FAILED, KNOWN, expected Ecef9Tuple\n    test 245 _local2ecef: Ecef9Tuple\n    test 246 _ecef2local: (-7134.8, -4556.3, 2852.4, 45.976, 7.658, 4531.01, Ltp(lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefFarrell21(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'), Ecef9Tuple(x=4403757.601549, y=592124.535536, z=4566652.082005, lat=45.976, lon=7.657999, height=4531.009608, C=1, M=None, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84)), None)  FAILED, KNOWN, expected Local9Tuple\n    test 247 _ecef2local: Local9Tuple\n    test 248 Xyz: (-7134.8, -4556.3, 2852.4, None)\n    test 249 Aer: (-7134.912, -4444.548, 2852.474, None)\n    test 250 Enu: (-7134.8, -4556.3, 2852.4, None)\n    test 251 Ned: [-4556.3, -7134.8, -2852.4]\n    test 252 Enu: [-7134.8, -4556.3, 2852.4]\n    test 253 Ned: [-4556.3, -7134.8, -2852.4]\n\n    test 254 lon00: (90.0, 57.3, 0.0, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 255 lon00: (90.0, 3.75, 0.0, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n\n    test 256 Frustum: 90.0, 90.0\n    test 257 hfov: 90.0\n    test 258 vfov: 90.0\n    test 259 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None))\n    test 260 footprint.xyzLocal5: ([X:0.0, Y:0.0, Z:0.0], [X:1000.0, Y:1000.0, Z:0.0], [X:1000.0, Y:1000.0, Z:0.0], [X:-1000.0, Y:-1000.0, Z:0.0], [X:-1000.0, Y:-1000.0, Z:0.0])\n    test 261 footprint.toLatLon5: (LatLon_(00.0°N, 000.0°E), LatLon_(00.009044°N, 000.008983°E, +0.16), LatLon_(00.009044°N, 000.008983°E, +0.16), LatLon_(00.009044°S, 000.008983°W, +0.16), LatLon_(00.009044°S, 000.008983°W, +0.16))\n\n    test 262 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None))\n    test 263 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=414.213562, y=414.213562, z=0.0, ltp=None), Xyz4Tuple(x=414.213562, y=414.213562, z=0.0, ltp=None), Xyz4Tuple(x=-414.213562, y=-414.213562, z=0.0, ltp=None), Xyz4Tuple(x=-414.213562, y=-414.213562, z=0.0, ltp=None))\n    test 264 footprint: (Xyz4Tuple(x=-57289.961631, y=-57289.961631, z=0.0, ltp=None), Xyz4Tuple(x=2538.647896, y=2538.647896, z=0.0, ltp=None), Xyz4Tuple(x=2538.647896, y=2538.647896, z=0.0, ltp=None), Xyz4Tuple(x=-2299.842547, y=-2299.842547, z=0.0, ltp=None), Xyz4Tuple(x=-2299.842547, y=-2299.842547, z=0.0, ltp=None))\n\n    test 265 Attitude: (0.0, -10.0, 330.0, -20.0)\n    test 266 alt: 0.0\n    test 267 tilt: -10.0\n    test 268 roll: -20.0\n    test 269 yaw: 330.0\n    test 270 matrix: ((0.8137976813493736, -0.44096961052988237, -0.37852230636979256), (0.46984631039295416, 0.8825641192593855, -0.018028311236297286), (0.3420201433256688, -0.16317591116653488, 0.9254165783983233))  FAILED, KNOWN, expected ((0.8137976813493737, -0.4409696105298823, -0.3785223063697926), (0.4698463103929541, 0.8825641192593856, -0.01802831123629725), (0.3420201433256688, -0.16317591116653488, 0.9254165783983233))\n    test 271 rotate: (-0.005694, 1.334382, 1.104261)\n    test 272 tyr3d: (0.0, 0.0, 0.0)\n    test 273 tyr3d: (0.0, -2.0, 0.0)\n    test 274 tyr3d: (0.0, -2.0, 0.0)\n    test 275 tyr3d: (0.0, 0.0, -2.0)\n\n    test 276 Ltp: {'ecef': EcefFarrell22(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name='')}\n    test 277 name: Test\n    test 278 toStr: Ltp(lat0=33.0, lon0=44.0, height0=20.0, M=EcefMatrix(_0_0_=-0.694658, _0_1_=-0.391781, _0_2_=0.603289, _1_0_=0.71934, _1_1_=-0.378338, _1_2_=0.58259, _2_0_=0.0, _2_1_=0.838671, _2_2_=0.544639), ecef=EcefFarrell22(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Test')  FAILED, KNOWN, expected Ltp\n    test 279 copy(<class 'type'>): (<class 'pygeodesy.ltp.Ltp'>, True)\n    test 280 Ltp.copy(): (<class 'pygeodesy.ltp.Ltp'>, True)\n    test 281 New: lat0=33.0, lon0=44.0, height0=20.0, M=EcefMatrix(_0_0_=-0.694658, _0_1_=-0.391781, _0_2_=0.603289, _1_0_=0.71934, _1_1_=-0.378338, _1_2_=0.58259, _2_0_=0.0, _2_1_=0.838671, _2_2_=0.544639), ecef=EcefFarrell22(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Test'\n    test 282 forward: 37288.97, 33374.29, 5783.65\n    test 283 name: Test\n    test 284 reverse: 33.3, 44.4, 6000.0\n    test 285 name: Test\n    test 286 name: Paris\n    test 287 Paris: 48.833, 2.333, 0.0\n    test 288 forward: -37518.64, 229949.65, -4260.43\n    test 289 name: Calais\n    test 290 reverse: 50.9, 1.8, -0.0\n    test 291 name: Paris\n    test 292 reverse: -38000.0, 230000.0, -4000.0\n    test 293 reverse: 50.9, 1.79, 264.92\n    test 294 forward: -38223.7, 229964.2, -4000.0\n\n    test 295 Zermatt: lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefFarrell22(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'  FAILED, KNOWN, expected Ltp\n    test 296 Matterhorn: (45.976, 7.658, 4531.01)\n    test 297 xyz: (-7134.8, -4556.3, 2852.4)\n    test 298 _local2ecef: 4403757.602, 592124.536, 4566652.082\n    test 299 _local2ecef: (4403757.602, 592124.536, 4566652.082, 45.976, 7.658, 4531.01, 1, None, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))  FAILED, KNOWN, expected Ecef9Tuple\n    test 300 _local2ecef: Ecef9Tuple\n    test 301 _ecef2local: (-7134.8, -4556.3, 2852.4, 45.976, 7.658, 4531.01, Ltp(lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefFarrell22(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'), Ecef9Tuple(x=4403757.601549, y=592124.535536, z=4566652.082005, lat=45.976, lon=7.657999, height=4531.009609, C=1, M=None, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84)), None)  FAILED, KNOWN, expected Local9Tuple\n    test 302 _ecef2local: Local9Tuple\n    test 303 Xyz: (-7134.8, -4556.3, 2852.4, None)\n    test 304 Aer: (-7134.912, -4444.548, 2852.474, None)\n    test 305 Enu: (-7134.8, -4556.3, 2852.4, None)\n    test 306 Ned: [-4556.3, -7134.8, -2852.4]\n    test 307 Enu: [-7134.8, -4556.3, 2852.4]\n    test 308 Ned: [-4556.3, -7134.8, -2852.4]\n\n    test 309 lon00: (90.0, 57.3, 0.0, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 310 lon00: (90.0, 3.75, 0.0, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n\n    test 311 Frustum: 90.0, 90.0\n    test 312 hfov: 90.0\n    test 313 vfov: 90.0\n    test 314 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None))\n    test 315 footprint.xyzLocal5: ([X:0.0, Y:0.0, Z:0.0], [X:1000.0, Y:1000.0, Z:0.0], [X:1000.0, Y:1000.0, Z:0.0], [X:-1000.0, Y:-1000.0, Z:0.0], [X:-1000.0, Y:-1000.0, Z:0.0])\n    test 316 footprint.toLatLon5: (LatLon_(00.0°N, 000.0°E), LatLon_(00.009044°N, 000.008983°E, +0.16), LatLon_(00.009044°N, 000.008983°E, +0.16), LatLon_(00.009044°S, 000.008983°W, +0.16), LatLon_(00.009044°S, 000.008983°W, +0.16))\n\n    test 317 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None))\n    test 318 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=414.213562, y=414.213562, z=0.0, ltp=None), Xyz4Tuple(x=414.213562, y=414.213562, z=0.0, ltp=None), Xyz4Tuple(x=-414.213562, y=-414.213562, z=0.0, ltp=None), Xyz4Tuple(x=-414.213562, y=-414.213562, z=0.0, ltp=None))\n    test 319 footprint: (Xyz4Tuple(x=-57289.961631, y=-57289.961631, z=0.0, ltp=None), Xyz4Tuple(x=2538.647896, y=2538.647896, z=0.0, ltp=None), Xyz4Tuple(x=2538.647896, y=2538.647896, z=0.0, ltp=None), Xyz4Tuple(x=-2299.842547, y=-2299.842547, z=0.0, ltp=None), Xyz4Tuple(x=-2299.842547, y=-2299.842547, z=0.0, ltp=None))\n\n    test 320 Attitude: (0.0, -10.0, 330.0, -20.0)\n    test 321 alt: 0.0\n    test 322 tilt: -10.0\n    test 323 roll: -20.0\n    test 324 yaw: 330.0\n    test 325 matrix: ((0.8137976813493736, -0.44096961052988237, -0.37852230636979256), (0.46984631039295416, 0.8825641192593855, -0.018028311236297286), (0.3420201433256688, -0.16317591116653488, 0.9254165783983233))  FAILED, KNOWN, expected ((0.8137976813493737, -0.4409696105298823, -0.3785223063697926), (0.4698463103929541, 0.8825641192593856, -0.01802831123629725), (0.3420201433256688, -0.16317591116653488, 0.9254165783983233))\n    test 326 rotate: (-0.005694, 1.334382, 1.104261)\n    test 327 tyr3d: (0.0, 0.0, 0.0)\n    test 328 tyr3d: (0.0, -2.0, 0.0)\n    test 329 tyr3d: (0.0, -2.0, 0.0)\n    test 330 tyr3d: (0.0, 0.0, -2.0)\n\n    test 331 Ltp: {'ecef': EcefVeness(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name='')}\n    test 332 name: Test\n    test 333 toStr: Ltp(lat0=33.0, lon0=44.0, height0=20.0, M=EcefMatrix(_0_0_=-0.694658, _0_1_=-0.391781, _0_2_=0.603289, _1_0_=0.71934, _1_1_=-0.378338, _1_2_=0.58259, _2_0_=0.0, _2_1_=0.838671, _2_2_=0.544639), ecef=EcefVeness(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Test')  FAILED, KNOWN, expected Ltp\n    test 334 copy(<class 'type'>): (<class 'pygeodesy.ltp.Ltp'>, True)\n    test 335 Ltp.copy(): (<class 'pygeodesy.ltp.Ltp'>, True)\n    test 336 New: lat0=33.0, lon0=44.0, height0=20.0, M=EcefMatrix(_0_0_=-0.694658, _0_1_=-0.391781, _0_2_=0.603289, _1_0_=0.71934, _1_1_=-0.378338, _1_2_=0.58259, _2_0_=0.0, _2_1_=0.838671, _2_2_=0.544639), ecef=EcefVeness(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Test'\n    test 337 forward: 37288.97, 33374.29, 5783.65\n    test 338 name: Test\n    test 339 reverse: 33.3, 44.4, 6000.0\n    test 340 name: Test\n    test 341 name: Paris\n    test 342 Paris: 48.833, 2.333, 0.0\n    test 343 forward: -37518.64, 229949.65, -4260.43\n    test 344 name: Calais\n    test 345 reverse: 50.9, 1.8, -0.0\n    test 346 name: Paris\n    test 347 reverse: -38000.0, 230000.0, -4000.0\n    test 348 reverse: 50.9, 1.79, 264.92\n    test 349 forward: -38223.7, 229964.2, -4000.0\n\n    test 350 Zermatt: lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefVeness(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'  FAILED, KNOWN, expected Ltp\n    test 351 Matterhorn: (45.976, 7.658, 4531.01)\n    test 352 xyz: (-7134.8, -4556.3, 2852.4)\n    test 353 _local2ecef: 4403757.602, 592124.536, 4566652.082\n    test 354 _local2ecef: (4403757.602, 592124.536, 4566652.082, 45.976, 7.658, 4531.01, 1, None, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))  FAILED, KNOWN, expected Ecef9Tuple\n    test 355 _local2ecef: Ecef9Tuple\n    test 356 _ecef2local: (-7134.8, -4556.3, 2852.4, 45.976, 7.658, 4531.01, Ltp(lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefVeness(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'), Ecef9Tuple(x=4403757.601549, y=592124.535536, z=4566652.082005, lat=45.976, lon=7.657999, height=4531.009608, C=1, M=None, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84)), None)  FAILED, KNOWN, expected Local9Tuple\n    test 357 _ecef2local: Local9Tuple\n    test 358 Xyz: (-7134.8, -4556.3, 2852.4, None)\n    test 359 Aer: (-7134.912, -4444.548, 2852.474, None)\n    test 360 Enu: (-7134.8, -4556.3, 2852.4, None)\n    test 361 Ned: [-4556.3, -7134.8, -2852.4]\n    test 362 Enu: [-7134.8, -4556.3, 2852.4]\n    test 363 Ned: [-4556.3, -7134.8, -2852.4]\n\n    test 364 lon00: (90.0, 57.3, 0.0, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 365 lon00: (90.0, 3.75, 0.0, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n\n    test 366 Frustum: 90.0, 90.0\n    test 367 hfov: 90.0\n    test 368 vfov: 90.0\n    test 369 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None))\n    test 370 footprint.xyzLocal5: ([X:0.0, Y:0.0, Z:0.0], [X:1000.0, Y:1000.0, Z:0.0], [X:1000.0, Y:1000.0, Z:0.0], [X:-1000.0, Y:-1000.0, Z:0.0], [X:-1000.0, Y:-1000.0, Z:0.0])\n    test 371 footprint.toLatLon5: (LatLon_(00.0°N, 000.0°E), LatLon_(00.009044°N, 000.008983°E, +0.16), LatLon_(00.009044°N, 000.008983°E, +0.16), LatLon_(00.009044°S, 000.008983°W, +0.16), LatLon_(00.009044°S, 000.008983°W, +0.16))\n\n    test 372 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None))\n    test 373 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=414.213562, y=414.213562, z=0.0, ltp=None), Xyz4Tuple(x=414.213562, y=414.213562, z=0.0, ltp=None), Xyz4Tuple(x=-414.213562, y=-414.213562, z=0.0, ltp=None), Xyz4Tuple(x=-414.213562, y=-414.213562, z=0.0, ltp=None))\n    test 374 footprint: (Xyz4Tuple(x=-57289.961631, y=-57289.961631, z=0.0, ltp=None), Xyz4Tuple(x=2538.647896, y=2538.647896, z=0.0, ltp=None), Xyz4Tuple(x=2538.647896, y=2538.647896, z=0.0, ltp=None), Xyz4Tuple(x=-2299.842547, y=-2299.842547, z=0.0, ltp=None), Xyz4Tuple(x=-2299.842547, y=-2299.842547, z=0.0, ltp=None))\n\n    test 375 Attitude: (0.0, -10.0, 330.0, -20.0)\n    test 376 alt: 0.0\n    test 377 tilt: -10.0\n    test 378 roll: -20.0\n    test 379 yaw: 330.0\n    test 380 matrix: ((0.8137976813493736, -0.44096961052988237, -0.37852230636979256), (0.46984631039295416, 0.8825641192593855, -0.018028311236297286), (0.3420201433256688, -0.16317591116653488, 0.9254165783983233))  FAILED, KNOWN, expected ((0.8137976813493737, -0.4409696105298823, -0.3785223063697926), (0.4698463103929541, 0.8825641192593856, -0.01802831123629725), (0.3420201433256688, -0.16317591116653488, 0.9254165783983233))\n    test 381 rotate: (-0.005694, 1.334382, 1.104261)\n    test 382 tyr3d: (0.0, 0.0, 0.0)\n    test 383 tyr3d: (0.0, -2.0, 0.0)\n    test 384 tyr3d: (0.0, -2.0, 0.0)\n    test 385 tyr3d: (0.0, 0.0, -2.0)\n\n    test 386 Ltp: {'ecef': EcefSudano(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name='')}\n    test 387 name: Test\n    test 388 toStr: Ltp(lat0=33.0, lon0=44.0, height0=20.0, M=EcefMatrix(_0_0_=-0.694658, _0_1_=-0.391781, _0_2_=0.603289, _1_0_=0.71934, _1_1_=-0.378338, _1_2_=0.58259, _2_0_=0.0, _2_1_=0.838671, _2_2_=0.544639), ecef=EcefSudano(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Test')  FAILED, KNOWN, expected Ltp\n    test 389 copy(<class 'type'>): (<class 'pygeodesy.ltp.Ltp'>, True)\n    test 390 Ltp.copy(): (<class 'pygeodesy.ltp.Ltp'>, True)\n    test 391 New: lat0=33.0, lon0=44.0, height0=20.0, M=EcefMatrix(_0_0_=-0.694658, _0_1_=-0.391781, _0_2_=0.603289, _1_0_=0.71934, _1_1_=-0.378338, _1_2_=0.58259, _2_0_=0.0, _2_1_=0.838671, _2_2_=0.544639), ecef=EcefSudano(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Test'\n    test 392 forward: 37288.97, 33374.29, 5783.65\n    test 393 name: Test\n    test 394 reverse: 33.33, 44.4, 5998.84  FAILED, KNOWN, expected 33.3, 44.4, 6000.0\n    test 395 name: Test\n    test 396 name: Paris\n    test 397 Paris: 48.833, 2.333, 0.0\n    test 398 forward: -37518.64, 229949.65, -4260.43\n    test 399 name: Calais\n    test 400 reverse: 51.01, 1.8, -11.8  FAILED, KNOWN, expected 50.9, 1.8, -0.0\n    test 401 name: Paris\n    test 402 reverse: -38000.0, 230000.0, -4000.0\n    test 403 reverse: 51.01, 1.79, 253.12  FAILED, KNOWN, expected 50.9, 1.79, 264.92\n    test 404 forward: -38223.7, 229964.2, -4000.0\n\n    test 405 Zermatt: lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefSudano(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'  FAILED, KNOWN, expected Ltp\n    test 406 Matterhorn: (46.06, 7.658, 4524.116)  FAILED, KNOWN, expected (45.976, 7.658, 4531.01)\n    test 407 xyz: (-7124.0, 4817.7, 2845.3)  FAILED, KNOWN, expected (-7134.8, -4556.3, 2852.4)\n    test 408 _local2ecef: 4403757.602, 592124.536, 4566652.082\n    test 409 _local2ecef: (4403757.602, 592124.536, 4566652.082, 46.06, 7.658, 4524.116, 1, None, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))  FAILED, KNOWN, expected Ecef9Tuple\n    test 410 _local2ecef: Ecef9Tuple\n    test 411 _ecef2local: (-7134.8, -4556.3, 2852.4, 46.06, 7.658, 4524.116, Ltp(lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefSudano(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'), Ecef9Tuple(x=4403757.601549, y=592124.535536, z=4566652.082005, lat=46.060275, lon=7.657999, height=4524.115631, C=1, M=None, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84)), None)  FAILED, KNOWN, expected Local9Tuple\n    test 412 _ecef2local: Local9Tuple\n    test 413 Xyz: (-7134.8, -4556.3, 2852.4, None)\n    test 414 Aer: (-7134.912, -4444.548, 2852.474, None)\n    test 415 Enu: (-7134.8, -4556.3, 2852.4, None)\n    test 416 Ned: [-4556.3, -7134.8, -2852.4]\n    test 417 Enu: [-7134.8, -4556.3, 2852.4]\n    test 418 Ned: [-4556.3, -7134.8, -2852.4]\n\n    test 419 lon00: (90.0, 57.3, 0.0, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 420 lon00: (90.0, 3.75, 0.0, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n\n    test 421 Frustum: 90.0, 90.0\n    test 422 hfov: 90.0\n    test 423 vfov: 90.0\n    test 424 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None))\n    test 425 footprint.xyzLocal5: ([X:0.0, Y:0.0, Z:0.0], [X:1000.0, Y:1000.0, Z:0.0], [X:1000.0, Y:1000.0, Z:0.0], [X:-1000.0, Y:-1000.0, Z:0.0], [X:-1000.0, Y:-1000.0, Z:0.0])\n    test 426 footprint.toLatLon5: (LatLon_(00.0°N, 000.0°E), LatLon_(00.009044°N, 000.008983°E, +0.16), LatLon_(00.009044°N, 000.008983°E, +0.16), LatLon_(00.009044°S, 000.008983°W, +0.16), LatLon_(00.009044°S, 000.008983°W, +0.16))\n\n    test 427 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None))\n    test 428 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=414.213562, y=414.213562, z=0.0, ltp=None), Xyz4Tuple(x=414.213562, y=414.213562, z=0.0, ltp=None), Xyz4Tuple(x=-414.213562, y=-414.213562, z=0.0, ltp=None), Xyz4Tuple(x=-414.213562, y=-414.213562, z=0.0, ltp=None))\n    test 429 footprint: (Xyz4Tuple(x=-57289.961631, y=-57289.961631, z=0.0, ltp=None), Xyz4Tuple(x=2538.647896, y=2538.647896, z=0.0, ltp=None), Xyz4Tuple(x=2538.647896, y=2538.647896, z=0.0, ltp=None), Xyz4Tuple(x=-2299.842547, y=-2299.842547, z=0.0, ltp=None), Xyz4Tuple(x=-2299.842547, y=-2299.842547, z=0.0, ltp=None))\n\n    test 430 Attitude: (0.0, -10.0, 330.0, -20.0)\n    test 431 alt: 0.0\n    test 432 tilt: -10.0\n    test 433 roll: -20.0\n    test 434 yaw: 330.0\n    test 435 matrix: ((0.8137976813493736, -0.44096961052988237, -0.37852230636979256), (0.46984631039295416, 0.8825641192593855, -0.018028311236297286), (0.3420201433256688, -0.16317591116653488, 0.9254165783983233))  FAILED, KNOWN, expected ((0.8137976813493737, -0.4409696105298823, -0.3785223063697926), (0.4698463103929541, 0.8825641192593856, -0.01802831123629725), (0.3420201433256688, -0.16317591116653488, 0.9254165783983233))\n    test 436 rotate: (-0.005694, 1.334382, 1.104261)\n    test 437 tyr3d: (0.0, 0.0, 0.0)\n    test 438 tyr3d: (0.0, -2.0, 0.0)\n    test 439 tyr3d: (0.0, -2.0, 0.0)\n    test 440 tyr3d: (0.0, 0.0, -2.0)\n\n    test 441 Ltp: {'ecef': EcefYou(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name='')}\n    test 442 name: Test\n    test 443 toStr: Ltp(lat0=33.0, lon0=44.0, height0=20.0, M=EcefMatrix(_0_0_=-0.694658, _0_1_=-0.391781, _0_2_=0.603289, _1_0_=0.71934, _1_1_=-0.378338, _1_2_=0.58259, _2_0_=0.0, _2_1_=0.838671, _2_2_=0.544639), ecef=EcefYou(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Test')  FAILED, KNOWN, expected Ltp\n    test 444 copy(<class 'type'>): (<class 'pygeodesy.ltp.Ltp'>, True)\n    test 445 Ltp.copy(): (<class 'pygeodesy.ltp.Ltp'>, True)\n    test 446 New: lat0=33.0, lon0=44.0, height0=20.0, M=EcefMatrix(_0_0_=-0.694658, _0_1_=-0.391781, _0_2_=0.603289, _1_0_=0.71934, _1_1_=-0.378338, _1_2_=0.58259, _2_0_=0.0, _2_1_=0.838671, _2_2_=0.544639), ecef=EcefYou(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Test'\n    test 447 forward: 37288.97, 33374.29, 5783.65\n    test 448 name: Test\n    test 449 reverse: 33.3, 44.4, 6000.0\n    test 450 name: Test\n    test 451 name: Paris\n    test 452 Paris: 48.833, 2.333, 0.0\n    test 453 forward: -37518.64, 229949.65, -4260.43\n    test 454 name: Calais\n    test 455 reverse: 50.9, 1.8, -0.0\n    test 456 name: Paris\n    test 457 reverse: -38000.0, 230000.0, -4000.0\n    test 458 reverse: 50.9, 1.79, 264.92\n    test 459 forward: -38223.7, 229964.2, -4000.0\n\n    test 460 Zermatt: lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefYou(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'  FAILED, KNOWN, expected Ltp\n    test 461 Matterhorn: (45.976, 7.658, 4531.01)\n    test 462 xyz: (-7134.8, -4556.3, 2852.4)\n    test 463 _local2ecef: 4403757.602, 592124.536, 4566652.082\n    test 464 _local2ecef: (4403757.602, 592124.536, 4566652.082, 45.976, 7.658, 4531.01, 1, None, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))  FAILED, KNOWN, expected Ecef9Tuple\n    test 465 _local2ecef: Ecef9Tuple\n    test 466 _ecef2local: (-7134.8, -4556.3, 2852.4, 45.976, 7.658, 4531.01, Ltp(lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefYou(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'), Ecef9Tuple(x=4403757.601549, y=592124.535536, z=4566652.082005, lat=45.976, lon=7.657999, height=4531.009608, C=1, M=None, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84)), None)  FAILED, KNOWN, expected Local9Tuple\n    test 467 _ecef2local: Local9Tuple\n    test 468 Xyz: (-7134.8, -4556.3, 2852.4, None)\n    test 469 Aer: (-7134.912, -4444.548, 2852.474, None)\n    test 470 Enu: (-7134.8, -4556.3, 2852.4, None)\n    test 471 Ned: [-4556.3, -7134.8, -2852.4]\n    test 472 Enu: [-7134.8, -4556.3, 2852.4]\n    test 473 Ned: [-4556.3, -7134.8, -2852.4]\n\n    test 474 lon00: (90.0, 57.3, 0.0, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 475 lon00: (90.0, 3.75, 0.0, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n\n    test 476 Frustum: 90.0, 90.0\n    test 477 hfov: 90.0\n    test 478 vfov: 90.0\n    test 479 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None))\n    test 480 footprint.xyzLocal5: ([X:0.0, Y:0.0, Z:0.0], [X:1000.0, Y:1000.0, Z:0.0], [X:1000.0, Y:1000.0, Z:0.0], [X:-1000.0, Y:-1000.0, Z:0.0], [X:-1000.0, Y:-1000.0, Z:0.0])\n    test 481 footprint.toLatLon5: (LatLon_(00.0°N, 000.0°E), LatLon_(00.009044°N, 000.008983°E, +0.16), LatLon_(00.009044°N, 000.008983°E, +0.16), LatLon_(00.009044°S, 000.008983°W, +0.16), LatLon_(00.009044°S, 000.008983°W, +0.16))\n\n    test 482 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None))\n    test 483 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=414.213562, y=414.213562, z=0.0, ltp=None), Xyz4Tuple(x=414.213562, y=414.213562, z=0.0, ltp=None), Xyz4Tuple(x=-414.213562, y=-414.213562, z=0.0, ltp=None), Xyz4Tuple(x=-414.213562, y=-414.213562, z=0.0, ltp=None))\n    test 484 footprint: (Xyz4Tuple(x=-57289.961631, y=-57289.961631, z=0.0, ltp=None), Xyz4Tuple(x=2538.647896, y=2538.647896, z=0.0, ltp=None), Xyz4Tuple(x=2538.647896, y=2538.647896, z=0.0, ltp=None), Xyz4Tuple(x=-2299.842547, y=-2299.842547, z=0.0, ltp=None), Xyz4Tuple(x=-2299.842547, y=-2299.842547, z=0.0, ltp=None))\n\n    test 485 Attitude: (0.0, -10.0, 330.0, -20.0)\n    test 486 alt: 0.0\n    test 487 tilt: -10.0\n    test 488 roll: -20.0\n    test 489 yaw: 330.0\n    test 490 matrix: ((0.8137976813493736, -0.44096961052988237, -0.37852230636979256), (0.46984631039295416, 0.8825641192593855, -0.018028311236297286), (0.3420201433256688, -0.16317591116653488, 0.9254165783983233))  FAILED, KNOWN, expected ((0.8137976813493737, -0.4409696105298823, -0.3785223063697926), (0.4698463103929541, 0.8825641192593856, -0.01802831123629725), (0.3420201433256688, -0.16317591116653488, 0.9254165783983233))\n    test 491 rotate: (-0.005694, 1.334382, 1.104261)\n    test 492 tyr3d: (0.0, 0.0, 0.0)\n    test 493 tyr3d: (0.0, -2.0, 0.0)\n    test 494 tyr3d: (0.0, -2.0, 0.0)\n    test 495 tyr3d: (0.0, 0.0, -2.0)\n\n    test 496 ChLV: ...\n    test 497 name: Test\n    test 498 ChLV_: ChLV\n\n    test 499 forward1: (-72.039994, -147.361444, -49.552111, 46.95108, 7.438637, 0.0, ChLV(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n    test 500 Y, X, h_: (-72.03999403763596, -147.36144397473055, -49.5521107337268)\n    test 501 EN2_LV95: (2599927.960006, 1199852.638556)\n    test 502 yx2_LV03: (599927.960006, 199852.638556)\n    test 503 reverse1: (-72.039994, -147.361444, -49.552111, 46.95108, 7.438637, 0.0, ChLV(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n\n    test 504 reverse2: (100000.0, 0.0, 600.0, 46.944873, 8.752874, 1431.948128, ChLV(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n    test 505 forward2: (100000.0, 0.0, 600.0, 46.944873, 8.752874, 1431.948128, ChLV(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n    test 506 Y, X, h_: (100000.00000000006, -6.588459045415719e-10, 600.0000000007242)\n    test 507 EN2_LV95: (2700000.0, 1200000.0)\n    test 508 yx2_LV03: (700000.0, 200000.0)\n\n    test 509 forward3: (99920.639806, -100148.24791, -967.661696, 46.044131, 8.730497, 650.6, ChLV(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n    test 510 Y, X, h_: (99920.63980649532, -100148.24791021261, -967.6616955399912)\n    test 511 EN2_LV95: (2699920.639806, 1099851.75209)\n    test 512 yx2_LV03: (699920.639806, 99851.75209)\n    test 513 reverse3: (99920.639806, -100148.24791, -967.661696, 46.044131, 8.730497, 650.6, ChLV(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n\n    test 514 forward4: (79527.502386, 12274.804229, -556.312155, 47.058043, 8.48642, 0.0, ChLV(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n    test 515 Y, X, h_: (79527.50238583283, 12274.80422893927, -556.3121548987446)\n    test 516 EN2_LV95: (2679527.502386, 1212274.804229)\n    test 517 yx2_LV03: (679527.502386, 212274.804229)\n    test 518 reverse4: (79527.502386, 12274.804229, -556.312155, 47.058043, 8.48642, -0.0, ChLV(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n\n    test 519 REFRAME1: (8.616351530455896, 46.654750670631664, 3083.4064441197074)  FAILED, KNOWN, expected (8.61588452888461, 46.6532932166132, 2367.70367439557)\n    test 520 REFRAME1:  0.00146 m\n    test 521 REFRAME2: (10.204043023734306, 46.777835938708535, 5053.168786317753)  FAILED, KNOWN, expected (10.2046874099038, 46.7763864160066, 1546.62256775331)\n    test 522 REFRAME2:  0.00145 m\n    test 523 REFRAME3: (7.231565437123991, 47.395386713752515, 1150.358929550846)  FAILED, KNOWN, expected (7.23058814336896, 47.3941353658685, 940.206020880491)\n    test 524 REFRAME3:  0.00125 m\n    test 525 REFRAME4: (9.843252123471997, 46.814319314291666, 4291.256736215736)  FAILED, KNOWN, expected (9.84351348200287, 46.8129146868336, 1645.59174753912)\n    test 526 REFRAME4:  0.0014 m\n    test 527 REFRAME5: (6.568908171267955, 46.52284580890318, 985.7597106108213)  FAILED, KNOWN, expected (6.56789363190021, 46.5214647527993, 460.491580192)\n    test 528 REFRAME5:  0.00138 m\n    test 529 REFRAME6: (8.731242095241983, 46.04567715552448, 2216.7888714367236)  FAILED, KNOWN, expected (8.73049738375132, 46.0441209510033, 650.012275829911)\n    test 530 REFRAME6:  0.00156 m\n\n    test 531 Bollinger.lat: 46°11′13.03444″N  FAILED, KNOWN, expected 46°11′12.03969″N\n    test 532 Bollinger.lon: 009°07′55.69155″E  FAILED, KNOWN, expected 009°07′57.29664″E\n    test 533 Zermatt: (46.01693292843191, 7.7455811694023975, 2629.5454517406183)  FAILED, KNOWN, expected (46.015314107, 7.74720273, 1742.449)\n    test 534 Zermatt:  0.00162 m\n    test 535 Zimmerwald: (46.878427446046224, 7.466218796566257, 953.0972897404835)  FAILED, KNOWN, expected (46.878427446, 7.466218797, 953.0973)\n    test 536 Zimmerwald:  4.34e-10 m\n    test 537 Chrischona: (47.56830864684501, 7.66954858440231, 897.4060435656095)  FAILED, KNOWN, expected (47.568308647, 7.6695485844, 897.406)\n    test 538 Chrischona:  1.55e-10 m\n    test 539 Pfaender: (47.516320169780975, 9.784378737247414, 3868.8598426346603)  FAILED, KNOWN, expected (47.5163201698, 9.7843787372, 3868.8599)\n    test 540 Pfaender:  4.74e-11 m\n    test 541 La Givrine: (46.45557406857667, 6.103316269663712, 2313.9449708991415)  FAILED, KNOWN, expected (46.4555740686, 6.1033162697, 2313.94497)\n    test 542 La Givrine:  3.63e-11 m\n    test 543 Monte Generoso: (45.93111844449693, 9.021602047098654, 3855.4332412055323)  FAILED, KNOWN, expected (45.9311184445, 9.0216020471, 3855.4332)\n    test 544 Monte Generoso:  3.07e-12 m\n\n    test 545 ChLVa: ...\n    test 546 name: Test\n    test 547 ChLV_: ChLVa\n\n    test 548 forward1: (0.329415, -0.292702, -49.554242, 46.95108, 7.438637, 0.0, ChLVa(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n    test 549 Y, X, h_: (0.3294154685019251, -0.2927016084473205, -49.554241824400016)\n    test 550 EN2_LV95: (2600000.329415, 1199999.707298)\n    test 551 yx2_LV03: (600000.329415, 199999.707298)\n    test 552 reverse1: (0.329415, -0.292702, -49.554242, 46.951078, 7.438642, -0.004239, ChLVa(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n\n    test 553 reverse2: (100000.0, -100000.0, 600.0, 46.044127, 8.730499, 650.554, ChLVa(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n    test 554 forward2: (99999.933937, -100000.44412, 600.003469, 46.044127, 8.730499, 650.554, ChLVa(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n    test 555 Y, X, h_: (99999.93393731702, -100000.44412019118, 600.0034685464)\n    test 556 EN2_LV95: (2699999.933937, 1099999.55588)\n    test 557 yx2_LV03: (699999.933937, 99999.55588)\n\n    test 558 forward3: (99999.763621, -100000.026905, 600.049476, 46.044131, 8.730497, 650.6, ChLVa(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n    test 559 Y, X, h_: (99999.76362116335, -100000.0269049639, 600.0494759100001)\n    test 560 EN2_LV95: (2699999.763621, 1099999.973095)\n    test 561 yx2_LV03: (699999.763621, 99999.973095)\n    test 562 reverse3: (99999.763621, -100000.026905, 600.049476, 46.044127, 8.730496, 650.603479, ChLVa(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n\n    test 563 forward4: (79602.736359, 12421.914221, -48.257243, 47.058043, 8.48642, 0.0, ChLVa(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n    test 564 Y, X, h_: (79602.73635877526, 12421.914220824743, -48.25724328779257)\n    test 565 EN2_LV95: (2679602.736359, 1212421.914221)\n    test 566 yx2_LV03: (679602.736359, 212421.914221)\n    test 567 reverse4: (79602.736359, 12421.914221, -48.257243, 47.058038, 8.486421, 0.00853, ChLVa(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n\n    test 568 REFRAME1: (8.615878879495897, 46.65329026883798, 2365.31877736998)  FAILED, KNOWN, expected (8.61588452888461, 46.6532932166132, 2367.70367439557)\n    test 569 REFRAME1:  5.65e-06 m\n    test 570 REFRAME2: (10.204675703252203, 46.77638487390875, 1542.5231657804)  FAILED, KNOWN, expected (10.2046874099038, 46.7763864160066, 1546.62256775331)\n    test 571 REFRAME2:  1.17e-05 m\n    test 572 REFRAME3: (7.230597895755378, 47.39413163959343, 939.5622657947999)  FAILED, KNOWN, expected (7.23058814336896, 47.3941353658685, 940.206020880491)\n    test 573 REFRAME3:  9.75e-06 m\n    test 574 REFRAME4: (9.843502988079765, 46.812913925274714, 1642.70478811448)  FAILED, KNOWN, expected (9.84351348200287, 46.8129146868336, 1645.59174753912)\n    test 575 REFRAME4:  1.05e-05 m\n    test 576 REFRAME5: (6.5678939352793595, 46.521468558550154, 462.1027394584)  FAILED, KNOWN, expected (6.56789363190021, 46.5214647527993, 460.491580192)\n    test 577 REFRAME5:  3.81e-06 m\n    test 578 REFRAME6: (8.730499333333333, 46.04412677777777, 650.554)  FAILED, KNOWN, expected (8.73049738375132, 46.0441209510033, 650.012275829911)\n    test 579 REFRAME6:  5.83e-06 m\n\n    test 580 Bollinger.lat: 46°11′07.65425″N  FAILED, KNOWN, expected 46°11′12.03969″N\n    test 581 Bollinger.lon: 009°07′52.99874″E  FAILED, KNOWN, expected 009°07′57.29664″E\n    test 582 Zermatt: (46.01531297876282, 7.744712831892469, 1739.1724096628)  FAILED, KNOWN, expected (46.015314107, 7.74720273, 1742.449)\n    test 583 Zermatt:  0.00249 m\n    test 584 Zimmerwald: (46.877092307814216, 7.465275686541408, 947.6256267527999)  FAILED, KNOWN, expected (46.878427446, 7.466218797, 953.0973)\n    test 585 Zimmerwald:  0.00134 m\n    test 586 Chrischona: (47.56704452300608, 7.668609312668058, 503.84493534800004)  FAILED, KNOWN, expected (47.568308647, 7.6695485844, 897.406)\n    test 587 Chrischona:  0.00126 m\n    test 588 Pfaender: (47.51533372240414, 9.784358161933797, 1088.46794437916)  FAILED, KNOWN, expected (47.5163201698, 9.7843787372, 3868.8599)\n    test 589 Pfaender:  0.000986 m\n    test 590 La Givrine: (46.45409066669543, 6.1020351431347315, 1259.50889260448)  FAILED, KNOWN, expected (46.4555740686, 6.1033162697, 2313.94497)\n    test 591 La Givrine:  0.00148 m\n    test 592 Monte Generoso: (45.92930092608269, 9.021219925007552, 1687.1468504651998)  FAILED, KNOWN, expected (45.9311184445, 9.0216020471, 3855.4332)\n    test 593 Monte Generoso:  0.00182 m\n\n    test 594 ChLVe: ...\n    test 595 name: Test\n    test 596 ChLV_: ChLVe\n\n    test 597 forward1: (-72.031251, -147.344948, -49.554242, 46.95108, 7.438637, 0.0, ChLVe(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n    test 598 Y, X, h_: (-72.031251437589, -147.3449483831346, -49.554241824400016)\n    test 599 EN2_LV95: (2599927.968749, 1199852.655052)\n    test 600 yx2_LV03: (599927.968749, 199852.655052)\n    test 601 reverse1: (-72.031251, -147.344948, -49.554242, 46.95108, 7.438637, 0.000002, ChLVe(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n\n    test 602 reverse2: (100000.0, 0.0, 600.0, 46.944869, 8.753274, 648.29, ChLVe(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n    test 603 forward2: (100000.000001, 0.0, 600.012265, 46.944869, 8.753274, 648.29, ChLVe(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n    test 604 Y, X, h_: (100000.00000057962, 1.8112537807228997e-07, 600.0122653531955)\n    test 605 EN2_LV95: (2700000.000001, 1200000.0)\n    test 606 yx2_LV03: (700000.000001, 200000.0)\n\n    test 607 forward3: (99914.740455, -100135.079382, 600.049476, 46.044131, 8.730497, 650.6, ChLVe(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n    test 608 Y, X, h_: (99914.74045471674, -100135.07938181335, 600.0494759100001)\n    test 609 EN2_LV95: (2699914.740455, 1099864.920618)\n    test 610 yx2_LV03: (699914.740455, 99864.920618)\n    test 611 reverse3: (99914.740455, -100135.079382, 600.049476, 46.044131, 8.730497, 650.607608, ChLVe(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n\n    test 612 forward4: (79520.050001, 12273.439993, -48.257243, 47.058043, 8.48642, 0.0, ChLVe(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n    test 613 Y, X, h_: (79520.05000103211, 12273.439993103837, -48.25724328779257)\n    test 614 EN2_LV95: (2679520.050001, 1212273.439993)\n    test 615 yx2_LV03: (679520.050001, 212273.439993)\n    test 616 reverse4: (79520.050001, 12273.439993, -48.257243, 47.058043, 8.48642, 0.012933, ChLVe(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n\n    test 617 REFRAME1: (8.617004216786864, 46.65457267826783, 2365.31877736998)  FAILED, KNOWN, expected (8.61588452888461, 46.6532932166132, 2367.70367439557)\n    test 618 REFRAME1:  0.00128 m\n    test 619 REFRAME2: (10.206045201491072, 46.77766011924391, 1542.5231657804)  FAILED, KNOWN, expected (10.2046874099038, 46.7763864160066, 1546.62256775331)\n    test 620 REFRAME2:  0.00136 m\n    test 621 REFRAME3: (7.231508661195409, 47.39550748841831, 939.5622657947999)  FAILED, KNOWN, expected (7.23058814336896, 47.3941353658685, 940.206020880491)\n    test 622 REFRAME3:  0.00137 m\n    test 623 REFRAME4: (9.844818386934287, 46.81419800173997, 1642.70478811448)  FAILED, KNOWN, expected (9.84351348200287, 46.8129146868336, 1645.59174753912)\n    test 624 REFRAME4:  0.0013 m\n    test 625 REFRAME5: (6.568709824649145, 46.52273852064229, 462.1027394584)  FAILED, KNOWN, expected (6.56789363190021, 46.5214647527993, 460.491580192)\n    test 626 REFRAME5:  0.00127 m\n    test 627 REFRAME6: (8.731627351611777, 46.04533300622347, 650.554)  FAILED, KNOWN, expected (8.73049738375132, 46.0441209510033, 650.012275829911)\n    test 628 REFRAME6:  0.00121 m\n\n    test 629 Bollinger.lat: 46°11′12.03969″N\n    test 630 Bollinger.lon: 009°07′57.29664″E\n    test 631 Bollinger.gamma: 1.3747154949761575\n\n    test 632 Zermatt: (46.016524980589146, 7.745700583699864, 1739.1724096628)  FAILED, KNOWN, expected (46.015314107, 7.74720273, 1742.449)\n    test 633 Zermatt:  0.0015 m\n    test 634 Zimmerwald: (46.878408134660475, 7.46622597045386, 947.6256267527999)  FAILED, KNOWN, expected (46.878427446, 7.466218797, 953.0973)\n    test 635 Zimmerwald:  1.93e-05 m\n    test 636 Chrischona: (47.56844071309313, 7.66959585429788, 503.84493534800004)  FAILED, KNOWN, expected (47.568308647, 7.6695485844, 897.406)\n    test 637 Chrischona:  0.000132 m\n    test 638 Pfaender: (47.51669640784962, 9.785678729594727, 1088.46794437916)  FAILED, KNOWN, expected (47.5163201698, 9.7843787372, 3868.8599)\n    test 639 Pfaender:  0.0013 m\n    test 640 La Givrine: (46.45534732351903, 6.102781792813615, 1259.50889260448)  FAILED, KNOWN, expected (46.4555740686, 6.1033162697, 2313.94497)\n    test 641 La Givrine:  0.000534 m\n    test 642 Monte Generoso: (45.93048753878003, 9.022387820586593, 1687.1468504651998)  FAILED, KNOWN, expected (45.9311184445, 9.0216020471, 3855.4332)\n    test 643 Monte Generoso:  0.000786 m\n\n    102 of 643 testLtp.py tests (15.9%) FAILED, incl. 90 KNOWN plus 12 DeprecationWarnings (pygeodesy 26.3.26 Python 3.12.10 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 2.1.0 scipy 1.14.1 Math 2 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 isLazy 3 -W  default) 280.674 ms\nrunning /usr/local/bin/p....n3.12 -W default ~/PyGeodesy/test/testLtpTuples.py\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.Aer from .ltpTuples by testLtpTuples.py line 11\n# lazily imported pygeodesy.Enu from .ltpTuples by testLtpTuples.py line 11\n# lazily imported pygeodesy.fstr from .streprs by testLtpTuples.py line 11\n# lazily imported pygeodesy.Local9Tuple from .ltpTuples by testLtpTuples.py line 11\n# lazily imported pygeodesy.Los from .ltpTuples by testLtpTuples.py line 11\n# lazily imported pygeodesy.Ltp from .ltp by testLtpTuples.py line 11\n# lazily imported pygeodesy.Ned from .ltpTuples by testLtpTuples.py line 11\n# lazily imported pygeodesy.XyzLocal from .ltpTuples by testLtpTuples.py line 11\n\n    testing testLtpTuples.py 23.11.21 isLazy=3\n# imported pygeodesy.ltp into ltpTuples.py line 1585\n\n    test 1 Aer.toRepr: [A:60.0°, E:40.0°, R:1000.0]\n    test 2 Aer.toStr: [60.0, 40.0, 1000.0]\n    test 3 Aer.xyzLocal.toAer: [60.0, 40.0, 1000.0]\n    test 4 Aer.xyzLocal.toAer: [60.0, 40.0, 1000.0]\n    test 5 Aer.xyzLocal.toEnu: [663.41, 383.02, 642.79]\n    test 6 Enu.xyzLocal.toAer: [60.0, 40.0, 1000.0]\n    test 7 Aer.xyzLocal.toNed: [383.02, 663.41, -642.79]\n    test 8 Ned.xyzLocal.toAer: [60.0, 40.0, 1000.0]\n    test 9 Aer.xyzLocal.toXyz: [663.41, 383.02, 642.79]\n    test 10 Xyz.xyzLocal.toAer: [60.0, 40.0, 1000.0]\n    test 11 Aer.toCartesian: [4397663.96, 599165.33, 4568492.25]\n# imported pygeodesy.ltp into ecefLocals.py line 63\n    test 12 Cartesian.toLocal Aer: [60.0, 40.0, 1000.0]\n    test 13 Aer.toLatLon: 46°01′13.6″N, 007°45′30.83″E, +2315.83m\n    test 14 LatLon.toLocal Aer: [60.0, 40.0, 1000.0]\n    test 15 Aer.azimuth: 60.0\n    test 16 Aer.elevation: 40.0\n    test 17 Aer.slantrange: 1000.0\n    test 18 Aer.groundrange: 766.044\n    test 19 Aer.east: 663.414\n    test 20 Aer.north: 383.022\n    test 21 Aer.up: 642.788\n    test 22 Aer.down: -642.788\n    test 23 Aer.x: 663.414\n    test 24 Aer.y: 383.022\n    test 25 Aer.z: 642.788\n    test 26 Aer.xyz: 663.414, 383.022, 642.788\n\n    test 27 Los: [A:45.0°, E:-45.0°, R:1.0]\n    test 28 Los: [E:0.5, N:0.5, U:-0.707]\n    test 29 Los: [U:-0.707, V:0.5, W:0.5]\n    test 30 Los: [E:0.5, N:0.5, U:-0.707]\n\n    test 31 Enu.toRepr: [E:100.0, N:200.0, U:1000.0]\n    test 32 Enu.toStr: [100.0, 200.0, 1000.0]\n    test 33 Enu.xyzLocal.toAer: [26.57, 77.4, 1024.7]\n    test 34 Aer.xyzLocal.toEnu: [100.0, 200.0, 1000.0]\n    test 35 Enu.xyzLocal.toEnu: [100.0, 200.0, 1000.0]\n    test 36 Enu.xyzLocal.toEnu: [100.0, 200.0, 1000.0]\n    test 37 Enu.xyzLocal.toNed: [200.0, 100.0, -1000.0]\n    test 38 Ned.xyzLocal.toEnu: [100.0, 200.0, 1000.0]\n    test 39 Enu.xyzLocal.toXyz: [100.0, 200.0, 1000.0]\n    test 40 Xyz.xyzLocal.toEnu: [100.0, 200.0, 1000.0]\n    test 41 Enu.toCartesian: [4398116.23, 598658.27, 4568622.18]\n    test 42 Cartesian.toLocal Enu: [100.0, 200.0, 1000.0]\n    test 43 Enu.toLatLon: 46°01′07.67″N, 007°45′04.65″E, +2673.00m\n    test 44 LatLon.toLocal Enu: [100.0, 200.0, 1000.0]\n    test 45 Enu.azimuth: 26.565\n    test 46 Enu.elevation: 77.396\n    test 47 Enu.slantrange: 1024.695\n    test 48 Enu.groundrange: 223.607\n    test 49 Enu.east: 100.0\n    test 50 Enu.north: 200.0\n    test 51 Enu.up: 1000.0\n    test 52 Enu.down: -1000.0\n    test 53 Enu.x: 100.0\n    test 54 Enu.y: 200.0\n    test 55 Enu.z: 1000.0\n    test 56 Enu.xyz: 100.0, 200.0, 1000.0\n\n    test 57 Los: [A:45.0°, E:-45.0°, R:1.0]\n    test 58 Los: [E:0.5, N:0.5, U:-0.707]\n    test 59 Los: [U:-0.707, V:0.5, W:0.5]\n    test 60 Los: [E:0.5, N:0.5, U:-0.707]\n\n    test 61 Ned.toRepr: [N:200.0, E:100.0, D:1000.0]\n    test 62 Ned.toStr: [200.0, 100.0, 1000.0]\n    test 63 Ned.xyzLocal.toAer: [26.57, -77.4, 1024.7]\n    test 64 Aer.xyzLocal.toNed: [200.0, 100.0, 1000.0]\n    test 65 Ned.xyzLocal.toEnu: [100.0, 200.0, -1000.0]\n    test 66 Enu.xyzLocal.toNed: [200.0, 100.0, 1000.0]\n    test 67 Ned.xyzLocal.toNed: [200.0, 100.0, 1000.0]\n    test 68 Ned.xyzLocal.toNed: [200.0, 100.0, 1000.0]\n    test 69 Ned.xyzLocal.toXyz: [100.0, 200.0, -1000.0]\n    test 70 Xyz.xyzLocal.toNed: [200.0, 100.0, 1000.0]\n    test 71 Ned.toCartesian: [4396740.02, 598470.98, 4567183.09]\n    test 72 Cartesian.toLocal Ned: [200.0, 100.0, 1000.0]\n    test 73 Ned.toLatLon: 46°01′07.68″N, 007°45′04.65″E, +673.00m\n    test 74 LatLon.toLocal Ned: [200.0, 100.0, 1000.0]\n    test 75 Ned.azimuth: 26.565\n    test 76 Ned.elevation: -77.396\n    test 77 Ned.slantrange: 1024.695\n    test 78 Ned.groundrange: 223.607\n    test 79 Ned.east: 100.0\n    test 80 Ned.north: 200.0\n    test 81 Ned.up: -1000.0\n    test 82 Ned.down: 1000.0\n    test 83 Ned.x: 100.0\n    test 84 Ned.y: 200.0\n    test 85 Ned.z: -1000.0\n    test 86 Ned.xyz: 100.0, 200.0, -1000.0\n\n    test 87 Los: [A:45.0°, E:-45.0°, R:1.0]\n    test 88 Los: [E:0.5, N:0.5, U:-0.707]\n    test 89 Los: [U:-0.707, V:0.5, W:0.5]\n    test 90 Los: [E:0.5, N:0.5, U:-0.707]\n\n    test 91 Xyz.toRepr: [X:10.0, Y:20.0, Z:100.0]\n    test 92 Xyz.toStr: [10.0, 20.0, 100.0]\n    test 93 Xyz.xyzLocal.toAer: [26.57, 77.4, 102.47]\n    test 94 Aer.xyzLocal.toXyz: [10.0, 20.0, 100.0]\n    test 95 Xyz.xyzLocal.toEnu: [10.0, 20.0, 100.0]\n    test 96 Enu.xyzLocal.toXyz: [10.0, 20.0, 100.0]\n    test 97 Xyz.xyzLocal.toNed: [20.0, 10.0, -100.0]\n    test 98 Ned.xyzLocal.toXyz: [10.0, 20.0, 100.0]\n    test 99 Xyz.xyzLocal.toXyz: [10.0, 20.0, 100.0]\n    test 100 Xyz.xyzLocal.toXyz: [10.0, 20.0, 100.0]\n    test 101 Xyz.toCartesian: [4397637.41, 598502.28, 4567849.59]\n    test 102 Cartesian.toLocal Xyz: [10.0, 20.0, 100.0]\n    test 103 Xyz.toLatLon: 46°01′01.85″N, 007°45′00.46″E, +1773.00m\n    test 104 LatLon.toLocal Xyz: [10.0, 20.0, 100.0]\n    test 105 Xyz.azimuth: 26.565\n    test 106 Xyz.elevation: 77.396\n    test 107 Xyz.slantrange: 102.47\n    test 108 Xyz.groundrange: 22.361\n    test 109 Xyz.east: 10.0\n    test 110 Xyz.north: 20.0\n    test 111 Xyz.up: 100.0\n    test 112 Xyz.down: -100.0\n    test 113 Xyz.x: 10.0\n    test 114 Xyz.y: 20.0\n    test 115 Xyz.z: 100.0\n    test 116 Xyz.xyz: 10.0, 20.0, 100.0\n\n    test 117 Los: [A:45.0°, E:-45.0°, R:1.0]\n    test 118 Los: [E:0.5, N:0.5, U:-0.707]\n    test 119 Los: [U:-0.707, V:0.5, W:0.5]\n    test 120 Los: [E:0.5, N:0.5, U:-0.707]\n\n    test 121 Local9Tuple.toRepr: Local9Tuple(x=10.0, y=20.0, z=100.0, lat=46.02, lon=7.75, height=1773.0, ltp=Ltp(lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transfo\n    test 122 Local9Tuple.toStr: (10.0, 20.0, 100.0, 46.02, 7.75, 1773.0, Ltp(lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'\n    test 123 Local9Tuple.xyzLocal.toAer: [26.57, 77.4, 102.47]\n    test 124 Aer.xyzLocal.toLocal9Tuple: (10.0, 20.0, 100.0, 46.02, 7.75, 1773.0, Ltp(lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'\n    test 125 Local9Tuple.xyzLocal.toEnu: [10.0, 20.0, 100.0]\n    test 126 Enu.xyzLocal.toLocal9Tuple: (10.0, 20.0, 100.0, 46.02, 7.75, 1773.0, Ltp(lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'\n    test 127 Local9Tuple.xyzLocal.toNed: [20.0, 10.0, -100.0]\n    test 128 Ned.xyzLocal.toLocal9Tuple: (10.0, 20.0, 100.0, 46.02, 7.75, 1773.0, Ltp(lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'\n    test 129 Local9Tuple.xyzLocal.toXyz: [10.0, 20.0, 100.0]\n    test 130 Xyz.xyzLocal.toLocal9Tuple: (10.0, 20.0, 100.0, 46.02, 7.75, 1773.0, Ltp(lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'\n    test 131 Local9Tuple.toCartesian: [4397637.41, 598502.28, 4567849.59]\n    test 132 Local9Tuple.toLatLon: 46°01′01.85″N, 007°45′00.46″E, +1773.00m\n    test 133 Local9Tuple.azimuth: 26.565\n    test 134 Local9Tuple.elevation: 77.396\n    test 135 Local9Tuple.slantrange: 102.47\n    test 136 Local9Tuple.groundrange: 22.361\n    test 137 Local9Tuple.east: 10.0\n    test 138 Local9Tuple.north: 20.0\n    test 139 Local9Tuple.up: 100.0\n    test 140 Local9Tuple.down: -100.0\n    test 141 Local9Tuple.x: 10.0\n    test 142 Local9Tuple.y: 20.0\n    test 143 Local9Tuple.z: 100.0\n    test 144 Local9Tuple.xyz: 10.0, 20.0, 100.0\n    test 145 Local9Tuple.lat: 46.02\n    test 146 Local9Tuple.lon: 7.75\n    test 147 Local9Tuple.latlon: 46.02, 7.75\n    test 148 Local9Tuple.latlonheight: 46.02, 7.75, 1773.0\n    test 149 Local9Tuple.phi: 0.803\n    test 150 Local9Tuple.lam: 0.135\n    test 151 Local9Tuple.philam: 0.803, 0.135\n    test 152 Local9Tuple.philamheight: 0.803, 0.135, 1773.0\n\n    test 153 Los: [A:45.0°, E:-45.0°, R:1.0]\n    test 154 Los: [E:0.5, N:0.5, U:-0.707]\n    test 155 Los: [U:-0.707, V:0.5, W:0.5]\n    test 156 Los: [E:0.5, N:0.5, U:-0.707]\n\n    all 156 testLtpTuples.py tests passed (pygeodesy 26.3.26 Python 3.12.10 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 2.1.0 scipy 1.14.1 Math 2 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 isLazy 3 -W  default) 29.125 ms\nrunning /usr/local/bin/p....n3.12 -W default ~/PyGeodesy/test/testMgrs.py\n./test/testMgrs.py:88: DeprecationWarning: property_RO L{en100k<pygeodesy.mgrs.Mgrs.en100k>} has been DEPRECATED, use property C{EN}.\n  self.test(a, getattr(p, a), x)\n./test/testMgrs.py:88: DeprecationWarning: property_RO L{digraph<pygeodesy.mgrs.Mgrs.digraph>} has been DEPRECATED, use property C{EN}.\n  self.test(a, getattr(p, a), x)\n./test/testMgrs.py:94: DeprecationWarning: property_RO L{digraph<pygeodesy.mgrs.Mgrs6Tuple.digraph>} has been DEPRECATED, use attribute C{EN}.\n  self.test('digraph', m.digraph, m.EN, nt=1)  # DEPRECATED\n./test/testMgrs.py:117: DeprecationWarning: property_RO L{digraph<pygeodesy.mgrs.Mgrs4Tuple.digraph>} has been DEPRECATED, use attribute C{EN}.\n  self.test('digraph', t.digraph, t.EN)  # DEPRECATED\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.mgrs by testMgrs.py line 11\n# lazily imported pygeodesy.Mgrs from .mgrs by testMgrs.py line 11\n# lazily imported pygeodesy.parseMGRS from .mgrs by testMgrs.py line 11\n# lazily imported pygeodesy.ellipsoidalVincenty by testMgrs.py line 204\n\n    testing testMgrs.py 24.10.13 (module pygeodesy.mgrs 25.05.12) isLazy=3\n    test 1 Mgrs1: 42S XD 09705 38646\n    test 2 Mgrs1: [Z:42S, G:XD, E:09705, N:38646]\n    test 3 Mgrs2: 42S XD 19705 08646\n    test 4 Mgrs2: [Z:42S, G:XD, E:19705, N:08646]\n    test 5 Mgrs3: 42S XD 19000 38000\n    test 6 Mgrs3: [Z:42S, G:XD, E:19000, N:38000]\n    test 7 Mgrs4: 31U DQ 48251 11932\n    test 8 Mgrs4: [Z:31U, G:DQ, E:48251, N:11932]\n    test 9 Mgrs5: 31U DQ 48251 11932\n    test 10 Mgrs5: [Z:31U, G:DQ, E:48251, N:11932]\n    test 11 Mgrs6: 31U DQ 48251 11932\n    test 12 Mgrs6: [Z:31U, G:DQ, E:48251, N:11932]\n    test 13 Mgrs7: 31U DQ 48251 11932\n    test 14 Mgrs7: [Z:31U, G:DQ, E:48251, N:11932]\n    test 15 Mgrs8: 31 N 431000 4582000\n    test 16 Mgrs8: (41.38657, 2.174726, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), -0.54564, 0.999659)\n    test 17 Mgrs8: 31 N 431500 4582500\n    test 18 Mgrs8: 31T DF 31000 82000\n    test 19 Mgrs8: 41.391116°N, 002.180649°E\n    test 20 Mgrs8: 31T DF 31000 82000\n    test 21 Mgrs9: 31U DQ 48251 11932\n    test 22 Mgrs9: [Z:31U, G:DQ, E:48251, N:11932]\n    test 23 toUtm1: 31 N 448251 5411932\n    test 24 toUtm1: [Z:31U, H:N, E:448251, N:5411932]\n    test 25 toMgrs1: 31U DQ 48251 11932\n    test 26 toMgrs1: [Z:31U, G:DQ, E:48251, N:11932]\n\n    test 27 toUtm(None): (31, 'N', 448251.0, 5411932.0, 'U')\n    test 28 easting: 48251.0\n    test 29 northing: 11932.0\n    test 30 EN: DQ\n    test 31 en100k: DQ\n    test 32 digraph: DQ\n    test 33 zone: 31\n    test 34 band: U\n    test 35 bandLatitude: 48\n    test 36 eastingnorthing: (48251.0, 11932.0)\n    test 37 resolution: 1.0\n# lazily imported pygeodesy.utmups by mgrs.py line 278\n    test 38 tilesize: 100000.0\n\n    test 39 toMgrs: 31U DQ 48251 11932\n    test 40 toMgrs(None): Mgrs6Tuple\n    test 41 digraph: DQ\n\n    test 42 (60.0°N, 001.0°E).toUtmUps.toMgrs: 31V CG 88455 53097\n    test 43 (60.0°N, 003.0°E).toUtmUps.toMgrs: 32V JM 65640 66593\n    test 44 (60.0°N, 009.0°E).toUtmUps.toMgrs: 32V NM 00000 51411\n    test 45 (76.0°N, 001.0°E).toUtmUps.toMgrs: 31X DE 45999 36099\n    test 46 (76.0°N, 013.0°E).toUtmUps.toMgrs: 33X VE 45999 36099\n    test 47 (76.0°N, 025.0°E).toUtmUps.toMgrs: 35X ME 45999 36099\n    test 48 (76.0°N, 037.0°E).toUtmUps.toMgrs: 37X DE 45999 36099\n# imported pygeodesy.basics into errors.py line 443\n    test 49 (84.0°N, 042.0°E).toUtmUps.toMgrs: Z GC 46127 04524\n    test 50 (90.0°S, 000.0°E).toUtmUps.toMgrs: B AN 00000 00000\n\n    test 51 Mgrs: BAN00\n    test 52 Mgrs4Tuple: ('B', 'AN', 0.0, 0.0)\n    test 53 Mgrs4Tuple: SouthPole(zone='B', EN='AN', easting=0.0, northing=0.0)\n    test 54 digraph: AN\n    test 55 toMgrs.toLatLon: SouthPole(lat=-90.0, lon=0.0, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), gamma=-0.0, scale=0.994)\n\n    test 56 Ups: 00 S 2000000 2000000\n    test 57 Ups: 00 S 2000500 2000500\n    test 58 Mgrs: 0.1\n\n    test 59 Mgrs: Y UB 17770 03800\n    test 60 Mgrs: [Z:Y, G:UB, E:17770, N:03800]\n    test 61 toUtmUps: 00 N 1617775 1403805\n    test 62 toUtmUps: [Z:00Y, H:N, E:1617775, N:1403805]\n    test 63 toLatLon: (83.627518, -32.664231, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), -0.570098, 0.99708)\n    test 64 toLatLon: LatLonDatum5Tuple(lat=83.627518, lon=-32.664231, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), gamma=-0.570098, scale=0.99708)\n    test 65 toMgrs!: 25X EN 04160 86523\n\n    test 66 Mgrs: B FS 77514 99182\n    test 67 Mgrs: [Z:B, G:FS, E:77514, N:99182]\n    test 68 toUtmUps: 00 S 2377514 2499182\n    test 69 toUtmUps: [Z:00B, H:S, E:2377514, N:2499182]\n    test 70 toLatLon: (-84.367192, 37.098959, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), -0.647499, 0.996406)\n    test 71 toLatLon: LatLonDatum5Tuple(lat=-84.367192, lon=37.098959, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), gamma=-0.647499, scale=0.996406)\n    test 72 toMgrs: B FS 77514 99182\n\n    test 73 Mgrs: 45S XT 47000 91000\n    test 74 Mgrs: [Z:45S, G:XT, E:47000, N:91000]\n    test 75 toUtmUps: 45 N 647500 3791500\n    test 76 toUtmUps: [Z:45S, H:N, E:647500, N:3791500]\n    test 77 toLatLon: (34.254177, 88.601932, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), 0.901835, 0.999868)\n    test 78 toLatLon: LatLonDatum5Tuple(lat=34.254177, lon=88.601932, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), gamma=0.901835, scale=0.999868)\n    test 79 toMgrs: 45S XT 47499 91499\n\n    test 80 Mgrs: Y XK 35000 43000\n    test 81 Mgrs: [Z:Y, G:XK, E:35000, N:43000]\n    test 82 toUtmUps: 00 N 1735500 2243500\n    test 83 toUtmUps: [Z:00Y, H:N, E:1735500, N:2243500]\n    test 84 toLatLon: (86.762629, -132.632821, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), -2.314879, 0.994794)\n    test 85 toLatLon: LatLonDatum5Tuple(lat=86.762629, lon=-132.632821, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), gamma=-2.314879, scale=0.994794)\n    test 86 toMgrs: Y XK 35499 43500\n\n    4 of 86 testMgrs.py tests (4.7%) FAILED, incl. 4 DeprecationWarnings (pygeodesy 26.3.26 Python 3.12.10 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 2.1.0 scipy 1.14.1 Math 2 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 isLazy 3 -W  default) 40.119 ms\nrunning /usr/local/bin/p....n3.12 -W default ~/PyGeodesy/test/testModules.py\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n\n    testing testModules.py 24.06.05 isLazy=3\n\n    2805 tests skipped (2805): pygeodesy\n\n    all testModules.py tests passed, 2805 skipped (pygeodesy 26.3.26 Python 3.12.10 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 2.1.0 scipy 1.14.1 Math 2 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 isLazy 3 -W  default) 16.689 us\nrunning /usr/local/bin/p....n3.12 -W default ~/PyGeodesy/test/testNamed.py\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.angles by testNamed.py line 10\n# lazily imported pygeodesy.geohash by testNamed.py line 10\n# lazily imported pygeodesy.Datum from .datums by testNamed.py line 10\n# lazily imported pygeodesy.Datums from .datums by testNamed.py line 10\n# lazily imported pygeodesy.ltpTuples by testNamed.py line 10\n# lazily imported pygeodesy.nameof from .named by testNamed.py line 10\n# lazily imported pygeodesy.ub2str from .basics by testNamed.py line 10\n\n    testing testNamed.py 25.12.06 isLazy=3\n\n    testing _Named() (pygeodesy.named, 26.01.14)\n    test 1 _Named: _Named\n    test 2 _Named: True\n    test 3 _Named: ''\n    test 4 Test: Test\n    test 5 _Named 'Test': _Named 'Test'\n    test 6 named._Named 'Test': named._Named 'Test'\n    test 7 pygeodesy.named._Named 'Test': pygeodesy.named._Named 'Test'\n    test 8 Test: _Named.name = 'X' (was 'Test'): use _Named.rename('X')\n    test 9 Test: _Named 'Test'\n    test 10 _Named 'Test': Test\n    test 11 _Named 'Test': Test\n    test 12 _Named 'Test': _Named 'Test'\n    test 13 _Named 'Test': <_Named 'Test' at 0x105b473e0>  FAILED, KNOWN, expected _Named 'Test'\n    test 14 _Named 'Test': ''\n\n    testing _NamedBase() (pygeodesy.named, 26.01.14)\n    test 15 _NamedBase: _NamedBase\n    test 16 _NamedBase: True\n    test 17 _NamedBase: ''\n    test 18 Test: Test\n    test 19 _NamedBase 'Test': _NamedBase 'Test'\n    test 20 named._NamedBase 'Test': named._NamedBase 'Test'\n    test 21 pygeodesy.named._NamedBase 'Test': pygeodesy.named._NamedBase 'Test'\n    test 22 Test: _NamedBase.name = 'X' (was 'Test'): use _NamedBase.rename('X')\n    test 23 Test: named._NamedBase.toStr(), MRO(named._Named): not overloaded\n    test 24 _NamedBase 'Test': Test\n    test 25 _NamedBase 'Test': Test\n    test 26 _NamedBase 'Test': named._NamedBase.toStr(), MRO(named._Named): not overloaded\n    test 27 _NamedBase 'Test': named._NamedBase.toStr(), MRO(named._Named): not overloaded\n    test 28 _NamedBase 'Test': ''\n\n    testing _NamedDict() (pygeodesy.named, 26.01.14)\n    test 29 _NamedDict: _NamedDict\n    test 30 _NamedDict: True\n    test 31 _NamedDict: ''\n    test 32 Test: Test\n    test 33 _NamedDict 'Test': _NamedDict 'Test'\n    test 34 named._NamedDict 'Test': named._NamedDict 'Test'\n    test 35 pygeodesy.named._NamedDict 'Test': pygeodesy.named._NamedDict 'Test'\n    test 36 Test: _NamedDict.name = 'X' (was 'Test'): use _NamedDict.rename('X')\n    test 37 Test: {}\n    test 38 _NamedDict 'Test': Test\n    test 39 _NamedDict 'Test': Test\n    test 40 _NamedDict 'Test': {}\n    test 41 _NamedDict 'Test': Test()  FAILED, KNOWN, expected {}\n    test 42 _NamedDict: ''\n\n    testing _NamedEnum(<class 'pygeodesy.datums.Datum'>,) (pygeodesy.named, 26.01.14)\n    test 43 Datums: _NamedEnum\n    test 44 Datums: True\n    test 45 Datums: 'Datums'  FAILED, KNOWN, expected ''\n    test 46 Test: Test\n    test 47 _NamedEnum 'Test': _NamedEnum 'Test'\n    test 48 named._NamedEnum 'Test': named._NamedEnum 'Test'\n    test 49 pygeodesy.named._NamedEnum 'Test': pygeodesy.named._NamedEnum 'Test'\n    test 50 Test: _NamedEnum.name = 'X' (was 'Test'): use _NamedEnum.rename('X')\n    test 51 Test: Test.\n    test 52 _NamedEnum 'Test': Test\n    test 53 _NamedEnum 'Test': Test\n    test 54 _NamedEnum 'Test': Test.\n    test 55 _NamedEnum 'Test':   FAILED, KNOWN, expected Test.\n    test 56 _NamedEnum: ''\n\n    testing _NamedEnumItem() (pygeodesy.named, 26.01.14)\n    test 57 _NamedEnumItem: _NamedEnumItem\n    test 58 _NamedEnumItem: True\n    test 59 _NamedEnumItem: ''\n    test 60 Test: Test\n    test 61 _NamedEnumItem 'Test': _NamedEnumItem 'Test'\n    test 62 named._NamedEnumItem 'Test': named._NamedEnumItem 'Test'\n    test 63 pygeodesy.named._NamedEnumItem 'Test': pygeodesy.named._NamedEnumItem 'Test'\n    test 64 _NamedEnumItem 'Test': Test\n    test 65 _NamedEnumItem 'Test': Test\n    test 66 _NamedEnumItem 'Test': named._NamedEnumItem.toStr(), MRO(named._NamedBase, named._Named): not overloaded\n    test 67 _NamedEnumItem 'Test': named._NamedEnumItem.toStr(), MRO(named._NamedBase, named._Named): not overloaded\n    test 68 _NamedEnumItem 'Test': ''\n\n    testing LatLon2Tuple(0, 0) (pygeodesy.named, 26.01.14)\n    test 69 LatLon2Tuple: LatLon2Tuple\n    test 70 LatLon2Tuple: True\n    test 71 LatLon2Tuple: ''\n    test 72 Test: Test\n    test 73 LatLon2Tuple 'Test': LatLon2Tuple 'Test'\n    test 74 namedTuples.LatLon2Tuple 'Test': namedTuples.LatLon2Tuple 'Test'\n    test 75 pygeodesy.namedTuples.LatLon2Tuple 'Test': pygeodesy.namedTuples.LatLon2Tuple 'Test'\n    test 76 Test: LatLon2Tuple.name = 'X' (was 'Test'): use LatLon2Tuple.rename('X')\n    test 77 Test: (0, 0)\n    test 78 LatLon2Tuple 'Test': Test\n    test 79 LatLon2Tuple 'Test': Test\n    test 80 LatLon2Tuple 'Test': (0, 0)\n    test 81 LatLon2Tuple 'Test': Test(lat=0, lon=0)  FAILED, KNOWN, expected (0, 0)\n    test 82 LatLon2Tuple 'Test': ''\n\n    testing NamedDicts (pygeodesy.named, 26.01.14)\n# lazily imported pygeodesy.albers by bases.py line 199\n# lazily imported pygeodesy.azimuthal by bases.py line 199\n# lazily imported pygeodesy.booleans by bases.py line 199\n# lazily imported pygeodesy.clipy by bases.py line 199\n# lazily imported pygeodesy.css by bases.py line 199\n# lazily imported pygeodesy.ecef by bases.py line 199\n# lazily imported pygeodesy.elevations by bases.py line 199\n# lazily imported pygeodesy.ellipses by bases.py line 199\n# lazily imported pygeodesy.ellipsoidalBaseDI by bases.py line 199\n# lazily imported pygeodesy.ellipsoidalExact by bases.py line 199\n# lazily imported pygeodesy.ellipsoidalGeodSolve by bases.py line 199\n# lazily imported pygeodesy.ellipsoidalKarney by bases.py line 199\n# lazily imported pygeodesy.ellipsoidalNvector by bases.py line 199\n# lazily imported pygeodesy.ellipsoidalVincenty by bases.py line 199\n# lazily imported pygeodesy.elliptic by bases.py line 199\n# lazily imported pygeodesy.epsg by bases.py line 199\n# lazily imported pygeodesy.etm by bases.py line 199\n# lazily imported pygeodesy.frechet by bases.py line 199\n# lazily imported pygeodesy.fstats by bases.py line 199\n# lazily imported pygeodesy.gars by bases.py line 199\n# lazily imported pygeodesy.geod3solve by bases.py line 199\n# lazily imported pygeodesy.geodesici by bases.py line 199\n# lazily imported pygeodesy.geodesicw by bases.py line 199\n# lazily imported pygeodesy.geodsolve by bases.py line 199\n    test 83 Neighbors8Dict: Neighbors8Dict\n    test 84 Neighbors8Dict: 8-Dict C{(N, NE, E, SE, S, SW, W, NW)}\n    test 85 Neighbors8Dict: 8\n# lazily imported pygeodesy.geoids by bases.py line 199\n# lazily imported pygeodesy.hausdorff by bases.py line 199\n# lazily imported pygeodesy.ktm by bases.py line 199\n# lazily imported pygeodesy.lcc by bases.py line 199\n# lazily imported pygeodesy.ltp by bases.py line 199\n# lazily imported pygeodesy.mgrs by bases.py line 199\n# lazily imported pygeodesy.osgr by bases.py line 199\n# lazily imported pygeodesy.resections by bases.py line 199\n# lazily imported pygeodesy.simplify by bases.py line 199\n# lazily imported pygeodesy.sphericalBase by bases.py line 199\n# lazily imported pygeodesy.sphericalNvector by bases.py line 199\n# lazily imported pygeodesy.sphericalTrigonometry by bases.py line 199\n# lazily imported pygeodesy.trf by bases.py line 199\n# lazily imported pygeodesy.utmups by bases.py line 199\n# lazily imported pygeodesy.vector2d by bases.py line 199\n# lazily imported pygeodesy.webmercator by bases.py line 199\n# lazily imported pygeodesy.wgrs by bases.py line 199\n# lazily imported pygeodesy.auxilats by bases.py line 199\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by <frozen importlib._bootstrap> line 1412\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by <frozen importlib._bootstrap> line 1412\n# lazily imported pygeodesy.Conformal2Tuple from .triaxials.triaxial5 by <frozen importlib._bootstrap> line 1412\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by classes.py line 21\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by classes.py line 21\n# lazily imported pygeodesy.Conformal2Tuple from .triaxials.triaxial5 by classes.py line 21\n# lazily imported pygeodesy.deprecated by bases.py line 199\n# lazily imported pygeodesy.geodesicx by bases.py line 199\n\n    testing NamedTuples (pygeodesy.namedTuples, 26.03.12)\n    test 86 Albers7Tuple: Albers7Tuple\n    test 87 Albers7Tuple: 7-Tuple C{(x, y, lat, lon, gamma, scale, datum)}\n    test 88 Albers7Tuple: 7\n    test 89 Azimuthal7Tuple: Azimuthal7Tuple\n    test 90 Azimuthal7Tuple: 7-Tuple C{(x, y, lat, lon, azimuth, scale, datum)}\n    test 91 Azimuthal7Tuple: 7\n    test 92 RadiusThetaPhi3Tuple: RadiusThetaPhi3Tuple\n    test 93 RadiusThetaPhi3Tuple: 3-Tuple C{(r, theta, phi)}\n    test 94 RadiusThetaPhi3Tuple: 3\n    test 95 ClipCS4Tuple: ClipCS4Tuple\n    test 96 ClipCS4Tuple: 4-Tuple C{(start, end, i, j)}\n    test 97 ClipCS4Tuple: 4\n    test 98 ClipFHP4Tuple: ClipFHP4Tuple\n    test 99 ClipFHP4Tuple: 4-Tuple C{(lat, lon, height, clipid)}\n    test 100 ClipFHP4Tuple: 4\n    test 101 ClipGH4Tuple: ClipGH4Tuple\n    test 102 ClipGH4Tuple: 4-Tuple C{(lat, lon, height, clipid)}\n    test 103 ClipGH4Tuple: 4\n    test 104 ClipLB6Tuple: ClipLB6Tuple\n    test 105 ClipLB6Tuple: 6-Tuple C{(start, end, i, fi, fj, j)}\n    test 106 ClipLB6Tuple: 6\n    test 107 ClipSH3Tuple: ClipSH3Tuple\n    test 108 ClipSH3Tuple: 3-Tuple C{(start, end, original)}\n    test 109 ClipSH3Tuple: 3\n    test 110 EasNorAziRk4Tuple: EasNorAziRk4Tuple\n    test 111 EasNorAziRk4Tuple: 4-Tuple C{(easting, northing, azimuth, reciprocal)}\n    test 112 EasNorAziRk4Tuple: 4\n    test 113 EasNorAziRkEqu6Tuple: EasNorAziRkEqu6Tuple\n    test 114 EasNorAziRkEqu6Tuple: 6-Tuple C{(easting, northing, azimuth, reciprocal, equatorarc, equatorazimuth)}\n    test 115 EasNorAziRkEqu6Tuple: 6\n    test 116 LatLonAziRk4Tuple: LatLonAziRk4Tuple\n    test 117 LatLonAziRk4Tuple: 4-Tuple C{(lat, lon, azimuth, reciprocal)}\n    test 118 LatLonAziRk4Tuple: 4\n    test 119 Ecef9Tuple: Ecef9Tuple\n    test 120 Ecef9Tuple: 9-Tuple C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 121 Ecef9Tuple: 9\n    test 122 Elevation2Tuple: Elevation2Tuple\n    test 123 Elevation2Tuple: 2-Tuple C{(elevation, data_source)}\n    test 124 Elevation2Tuple: 2\n    test 125 GeoidHeight2Tuple: GeoidHeight2Tuple\n    test 126 GeoidHeight2Tuple: 2-Tuple C{(height, model_name)}\n    test 127 GeoidHeight2Tuple: 2\n    test 128 Curvature2Tuple: Curvature2Tuple\n    test 129 Curvature2Tuple: 2-Tuple C{(meridional, prime_vertical)}\n    test 130 Curvature2Tuple: 2\n    test 131 a_f2Tuple: a_f2Tuple\n    test 132 a_f2Tuple: 2-Tuple C{(a, f)}\n    test 133 a_f2Tuple: 2\n    test 134 Elliptic3Tuple: Elliptic3Tuple\n    test 135 Elliptic3Tuple: 3-Tuple C{(sn, cn, dn)}\n    test 136 Elliptic3Tuple: 3\n    test 137 Radical2Tuple: Radical2Tuple\n    test 138 Radical2Tuple: 2-Tuple C{(ratio, xline)}\n    test 139 Radical2Tuple: 2\n    test 140 Frechet6Tuple: Frechet6Tuple\n    test 141 Frechet6Tuple: 6-Tuple C{(fd, fi1, fi2, r, n, units)}\n    test 142 Frechet6Tuple: 6\n    test 143 DivMod2Tuple: DivMod2Tuple\n    test 144 DivMod2Tuple: 2-Tuple C{(div, mod)}\n    test 145 DivMod2Tuple: 2\n    test 146 Fsum2Tuple: Fsum2Tuple\n    test 147 Fsum2Tuple: 2-Tuple C{(fsum, residual)}\n    test 148 Fsum2Tuple: 2\n    test 149 Geod3Solve8Tuple: Geod3Solve8Tuple\n    test 150 Geod3Solve8Tuple: 8-Tuple C{(bet1, omg1, alp1, bet2, omg2, alp2, s12, a12)}\n    test 151 Geod3Solve8Tuple: 8\n    test 152 Intersect7Tuple: Intersect7Tuple\n    test 153 Intersect7Tuple: 7-Tuple C{(A, B, sAB, aAB, c, kA, kB)}\n    test 154 Intersect7Tuple: 7\n    test 155 Intersectool5Tuple: Intersectool5Tuple\n    test 156 Intersectool5Tuple: 5-Tuple C{(A, B, sAB, aAB, c)}\n    test 157 Intersectool5Tuple: 5\n    test 158 Intersector5Tuple: Intersector5Tuple\n    test 159 Intersector5Tuple: 5-Tuple C{(A, B, sAB, aAB, c)}\n    test 160 Intersector5Tuple: 5\n    test 161 Middle5Tuple: Middle5Tuple\n    test 162 Middle5Tuple: 5-Tuple C{(A, B, sMM, aMM, c)}\n    test 163 Middle5Tuple: 5\n    test 164 GeodSolve12Tuple: GeodSolve12Tuple\n    test 165 GeodSolve12Tuple: 12-Tuple C{(lat1, lon1, azi1, lat2, lon2, azi2, s12, a12, m12, M12, M21, S12)}\n    test 166 GeodSolve12Tuple: 12\n    test 167 Resolutions2Tuple: Resolutions2Tuple\n    test 168 Resolutions2Tuple: 2-Tuple C{(res1, res2)}\n    test 169 Resolutions2Tuple: 2\n    test 170 Sizes3Tuple: Sizes3Tuple\n    test 171 Sizes3Tuple: 3-Tuple C{(height, width, radius)}\n    test 172 Sizes3Tuple: 3\n    test 173 GeoidHeight5Tuple: GeoidHeight5Tuple\n    test 174 GeoidHeight5Tuple: 5-Tuple C{(lat, lon, egm84, egm96, egm2008)}\n    test 175 GeoidHeight5Tuple: 5\n    test 176 Hausdorff6Tuple: Hausdorff6Tuple\n    test 177 Hausdorff6Tuple: 6-Tuple C{(hd, i, j, mn, md, units)}\n    test 178 Hausdorff6Tuple: 6\n    test 179 Area3Tuple: Area3Tuple\n    test 180 Area3Tuple: 3-Tuple C{(number, perimeter, area)}\n    test 181 Area3Tuple: 3\n    test 182 Direct9Tuple: Direct9Tuple\n    test 183 Direct9Tuple: 9-Tuple C{(a12, lat2, lon2, azi2, s12, m12, M12, M21, S12)}\n    test 184 Direct9Tuple: 9\n    test 185 Inverse10Tuple: Inverse10Tuple\n    test 186 Inverse10Tuple: 10-Tuple C{(a12, s12, salp1, calp1, salp2, calp2, m12, M12, M21, S12)}\n    test 187 Inverse10Tuple: 10\n    test 188 Rhumb8Tuple: Rhumb8Tuple\n    test 189 Rhumb8Tuple: 8-Tuple C{(lat1, lon1, lat2, lon2, azi12, s12, S12, a12)}\n    test 190 Rhumb8Tuple: 8\n    test 191 Aer4Tuple: Aer4Tuple\n    test 192 Aer4Tuple: 4-Tuple C{(azimuth, elevation, slantrange, ltp)}\n    test 193 Aer4Tuple: 4\n    test 194 Attitude4Tuple: Attitude4Tuple\n    test 195 Attitude4Tuple: 4-Tuple C{(alt, tilt, yaw, roll)}\n    test 196 Attitude4Tuple: 4\n    test 197 ChLV9Tuple: ChLV9Tuple\n    test 198 ChLV9Tuple: 9-Tuple C{(Y, X, h_, lat, lon, height, ltp, ecef, M)}\n    test 199 ChLV9Tuple: 9\n    test 200 ChLVEN2Tuple: ChLVEN2Tuple\n    test 201 ChLVEN2Tuple: 2-Tuple C{(E_LV95, N_LV95)}\n    test 202 ChLVEN2Tuple: 2\n    test 203 ChLVYX2Tuple: ChLVYX2Tuple\n    test 204 ChLVYX2Tuple: 2-Tuple C{(Y, X)}\n    test 205 ChLVYX2Tuple: 2\n    test 206 ChLVyx2Tuple: ChLVyx2Tuple\n    test 207 ChLVyx2Tuple: 2-Tuple C{(y_LV03, x_LV03)}\n    test 208 ChLVyx2Tuple: 2\n    test 209 Enu4Tuple: Enu4Tuple\n    test 210 Enu4Tuple: 4-Tuple C{(east, north, up, ltp)}\n    test 211 Enu4Tuple: 4\n    test 212 Footprint5Tuple: Footprint5Tuple\n    test 213 Footprint5Tuple: 5-Tuple C{(center, upperleft, upperight, loweright, lowerleft)}\n    test 214 Footprint5Tuple: 5\n    test 215 Local9Tuple: Local9Tuple\n    test 216 Local9Tuple: 9-Tuple C{(x, y, z, lat, lon, height, ltp, ecef, M)}\n    test 217 Local9Tuple: 9\n    test 218 Ned4Tuple: Ned4Tuple\n    test 219 Ned4Tuple: 4-Tuple C{(north, east, down, ltp)}\n    test 220 Ned4Tuple: 4\n    test 221 Uvw3Tuple: Uvw3Tuple\n    test 222 Uvw3Tuple: 3-Tuple C{(u, v, w)}\n    test 223 Uvw3Tuple: 3\n    test 224 Xyz4Tuple: Xyz4Tuple\n    test 225 Xyz4Tuple: 4-Tuple C{(x, y, z, ltp)}\n    test 226 Xyz4Tuple: 4\n    test 227 Mgrs4Tuple: Mgrs4Tuple\n    test 228 Mgrs4Tuple: 4-Tuple C{(zone, EN, easting, northing)}\n    test 229 Mgrs4Tuple: 4\n    test 230 Mgrs6Tuple: Mgrs6Tuple\n    test 231 Mgrs6Tuple: 6-Tuple C{(zone, EN, easting, northing, band, datum)}\n    test 232 Mgrs6Tuple: 6\n    test 233 Bearing2Tuple: Bearing2Tuple\n    test 234 Bearing2Tuple: 2-Tuple C{(initial, final)}\n    test 235 Bearing2Tuple: 2\n    test 236 Bounds2Tuple: Bounds2Tuple\n    test 237 Bounds2Tuple: 2-Tuple C{(latlonSW, latlonNE)}\n    test 238 Bounds2Tuple: 2\n    test 239 Bounds4Tuple: Bounds4Tuple\n    test 240 Bounds4Tuple: 4-Tuple C{(latS, lonW, latN, lonE)}\n    test 241 Bounds4Tuple: 4\n    test 242 Circle4Tuple: Circle4Tuple\n    test 243 Circle4Tuple: 4-Tuple C{(radius, height, lat, beta)}\n    test 244 Circle4Tuple: 4\n    test 245 Destination2Tuple: Destination2Tuple\n    test 246 Destination2Tuple: 2-Tuple C{(destination, final)}\n    test 247 Destination2Tuple: 2\n    test 248 Destination3Tuple: Destination3Tuple\n    test 249 Destination3Tuple: 3-Tuple C{(lat, lon, final)}\n    test 250 Destination3Tuple: 3\n    test 251 Distance2Tuple: Distance2Tuple\n    test 252 Distance2Tuple: 2-Tuple C{(distance, initial)}\n    test 253 Distance2Tuple: 2\n    test 254 Distance3Tuple: Distance3Tuple\n    test 255 Distance3Tuple: 3-Tuple C{(distance, initial, final)}\n    test 256 Distance3Tuple: 3\n    test 257 Distance4Tuple: Distance4Tuple\n    test 258 Distance4Tuple: 4-Tuple C{(distance2, delta_lat, delta_lon, unroll_lon2)}\n    test 259 Distance4Tuple: 4\n    test 260 EasNor2Tuple: EasNor2Tuple\n    test 261 EasNor2Tuple: 2-Tuple C{(easting, northing)}\n    test 262 EasNor2Tuple: 2\n    test 263 EasNor3Tuple: EasNor3Tuple\n    test 264 EasNor3Tuple: 3-Tuple C{(easting, northing, height)}\n    test 265 EasNor3Tuple: 3\n    test 266 Ellipse5Tuple: Ellipse5Tuple\n    test 267 Ellipse5Tuple: 5-Tuple C{(a, b, height, lat, beta)}\n    test 268 Ellipse5Tuple: 5\n    test 269 Forward4Tuple: Forward4Tuple\n    test 270 Forward4Tuple: 4-Tuple C{(easting, northing, gamma, scale)}\n    test 271 Forward4Tuple: 4\n    test 272 Intersection3Tuple: Intersection3Tuple\n    test 273 Intersection3Tuple: 3-Tuple C{(point, outside1, outside2)}\n    test 274 Intersection3Tuple: 3\n    test 275 LatLon2Tuple: LatLon2Tuple\n    test 276 LatLon2Tuple: 2-Tuple C{(lat, lon)}\n    test 277 LatLon2Tuple: 2\n    test 278 LatLon3Tuple: LatLon3Tuple\n    test 279 LatLon3Tuple: 3-Tuple C{(lat, lon, height)}\n    test 280 LatLon3Tuple: 3\n    test 281 LatLon4Tuple: LatLon4Tuple\n    test 282 LatLon4Tuple: 4-Tuple C{(lat, lon, height, datum)}\n    test 283 LatLon4Tuple: 4\n    test 284 LatLonDatum3Tuple: LatLonDatum3Tuple\n    test 285 LatLonDatum3Tuple: 3-Tuple C{(lat, lon, datum)}\n    test 286 LatLonDatum3Tuple: 3\n    test 287 LatLonDatum5Tuple: LatLonDatum5Tuple\n    test 288 LatLonDatum5Tuple: 5-Tuple C{(lat, lon, datum, gamma, scale)}\n    test 289 LatLonDatum5Tuple: 5\n    test 290 LatLonPrec3Tuple: LatLonPrec3Tuple\n    test 291 LatLonPrec3Tuple: 3-Tuple C{(lat, lon, precision)}\n    test 292 LatLonPrec3Tuple: 3\n    test 293 LatLonPrec5Tuple: LatLonPrec5Tuple\n    test 294 LatLonPrec5Tuple: 5-Tuple C{(lat, lon, precision, height, radius)}\n    test 295 LatLonPrec5Tuple: 5\n    test 296 NearestOn2Tuple: NearestOn2Tuple\n    test 297 NearestOn2Tuple: 2-Tuple C{(closest, fraction)}\n    test 298 NearestOn2Tuple: 2\n    test 299 NearestOn3Tuple: NearestOn3Tuple\n    test 300 NearestOn3Tuple: 3-Tuple C{(closest, distance, angle)}\n    test 301 NearestOn3Tuple: 3\n    test 302 NearestOn5Tuple: NearestOn5Tuple\n    test 303 NearestOn5Tuple: 5-Tuple C{(lat, lon, distance, angle, height)}\n    test 304 NearestOn5Tuple: 5\n    test 305 NearestOn6Tuple: NearestOn6Tuple\n    test 306 NearestOn6Tuple: 6-Tuple C{(closest, distance, fi, j, start, end)}\n    test 307 NearestOn6Tuple: 6\n    test 308 NearestOn8Tuple: NearestOn8Tuple\n    test 309 NearestOn8Tuple: 8-Tuple C{(closest, distance, fi, j, start, end, initial, final)}\n    test 310 NearestOn8Tuple: 8\n    test 311 PhiLam2Tuple: PhiLam2Tuple\n    test 312 PhiLam2Tuple: 2-Tuple C{(phi, lam)}\n    test 313 PhiLam2Tuple: 2\n    test 314 PhiLam3Tuple: PhiLam3Tuple\n    test 315 PhiLam3Tuple: 3-Tuple C{(phi, lam, height)}\n    test 316 PhiLam3Tuple: 3\n    test 317 PhiLam4Tuple: PhiLam4Tuple\n    test 318 PhiLam4Tuple: 4-Tuple C{(phi, lam, height, datum)}\n    test 319 PhiLam4Tuple: 4\n    test 320 Point3Tuple: Point3Tuple\n    test 321 Point3Tuple: 3-Tuple C{(x, y, ll)}\n    test 322 Point3Tuple: 3\n    test 323 Points2Tuple: Points2Tuple\n    test 324 Points2Tuple: 2-Tuple C{(number, points)}\n    test 325 Points2Tuple: 2\n    test 326 Reverse4Tuple: Reverse4Tuple\n    test 327 Reverse4Tuple: 4-Tuple C{(lat, lon, gamma, scale)}\n    test 328 Reverse4Tuple: 4\n    test 329 Triangle7Tuple: Triangle7Tuple\n    test 330 Triangle7Tuple: 7-Tuple C{(A, a, B, b, C, c, area)}\n    test 331 Triangle7Tuple: 7\n    test 332 Triangle8Tuple: Triangle8Tuple\n    test 333 Triangle8Tuple: 8-Tuple C{(A, a, B, b, C, c, D, E)}\n    test 334 Triangle8Tuple: 8\n    test 335 Trilaterate5Tuple: Trilaterate5Tuple\n    test 336 Trilaterate5Tuple: 5-Tuple C{(min, minPoint, max, maxPoint, n)}\n    test 337 Trilaterate5Tuple: 5\n    test 338 UtmUps2Tuple: UtmUps2Tuple\n    test 339 UtmUps2Tuple: 2-Tuple C{(zone, hemipole)}\n    test 340 UtmUps2Tuple: 2\n    test 341 UtmUps5Tuple: UtmUps5Tuple\n    test 342 UtmUps5Tuple: 5-Tuple C{(zone, hemipole, easting, northing, band)}\n    test 343 UtmUps5Tuple: 5\n    test 344 UtmUps8Tuple: UtmUps8Tuple\n    test 345 UtmUps8Tuple: 8-Tuple C{(zone, hemipole, easting, northing, band, datum, gamma, scale)}\n    test 346 UtmUps8Tuple: 8\n    test 347 UtmUpsLatLon5Tuple: UtmUpsLatLon5Tuple\n    test 348 UtmUpsLatLon5Tuple: 5-Tuple C{(zone, band, hemipole, lat, lon)}\n    test 349 UtmUpsLatLon5Tuple: 5\n    test 350 Vector2Tuple: Vector2Tuple\n    test 351 Vector2Tuple: 2-Tuple C{(x, y)}\n    test 352 Vector2Tuple: 2\n    test 353 Vector3Tuple: Vector3Tuple\n    test 354 Vector3Tuple: 3-Tuple C{(x, y, z)}\n    test 355 Vector3Tuple: 3\n    test 356 Vector4Tuple: Vector4Tuple\n    test 357 Vector4Tuple: 4-Tuple C{(x, y, z, h)}\n    test 358 Vector4Tuple: 4\n    test 359 Shape2Tuple: Shape2Tuple\n    test 360 Shape2Tuple: 2-Tuple C{(nrows, ncols)}\n    test 361 Shape2Tuple: 2\n    test 362 Collins5Tuple: Collins5Tuple\n    test 363 Collins5Tuple: 5-Tuple C{(pointP, pointH, a, b, c)}\n    test 364 Collins5Tuple: 5\n    test 365 Survey3Tuple: Survey3Tuple\n    test 366 Survey3Tuple: 3-Tuple C{(PA, PB, PC)}\n    test 367 Survey3Tuple: 3\n    test 368 Tienstra7Tuple: Tienstra7Tuple\n    test 369 Tienstra7Tuple: 7-Tuple C{(pointP, A, B, C, a, b, c)}\n    test 370 Tienstra7Tuple: 7\n    test 371 TriAngle5Tuple: TriAngle5Tuple\n    test 372 TriAngle5Tuple: 5-Tuple C{(radA, radB, radC, rIn, area)}\n    test 373 TriAngle5Tuple: 5\n    test 374 TriSide2Tuple: TriSide2Tuple\n    test 375 TriSide2Tuple: 2-Tuple C{(a, radA)}\n    test 376 TriSide2Tuple: 2\n    test 377 TriSide4Tuple: TriSide4Tuple\n    test 378 TriSide4Tuple: 4-Tuple C{(a, b, radC, d)}\n    test 379 TriSide4Tuple: 4\n    test 380 TRFXform7Tuple: TRFXform7Tuple\n    test 381 TRFXform7Tuple: 7-Tuple C{(tx, ty, tz, s, sx, sy, sz)}\n    test 382 TRFXform7Tuple: 7\n    test 383 Circin6Tuple: Circin6Tuple\n    test 384 Circin6Tuple: 6-Tuple C{(radius, center, deltas, cA, cB, cC)}\n    test 385 Circin6Tuple: 6\n    test 386 Circum3Tuple: Circum3Tuple\n    test 387 Circum3Tuple: 3-Tuple C{(radius, center, deltas)}\n    test 388 Circum3Tuple: 3\n    test 389 Circum4Tuple: Circum4Tuple\n    test 390 Circum4Tuple: 4-Tuple C{(radius, center, rank, residuals)}\n    test 391 Circum4Tuple: 4\n    test 392 Meeus2Tuple: Meeus2Tuple\n    test 393 Meeus2Tuple: 2-Tuple C{(radius, Type)}\n    test 394 Meeus2Tuple: 2\n    test 395 Radii11Tuple: Radii11Tuple\n    test 396 Radii11Tuple: 11-Tuple C{(rA, rB, rC, cR, rIn, riS, roS, a, b, c, s)}\n    test 397 Radii11Tuple: 11\n    test 398 Soddy4Tuple: Soddy4Tuple\n    test 399 Soddy4Tuple: 4-Tuple C{(radius, center, deltas, outer)}\n    test 400 Soddy4Tuple: 4\n    test 401 Triaxum5Tuple: Triaxum5Tuple\n    test 402 Triaxum5Tuple: 5-Tuple C{(a, b, c, rank, residuals)}\n    test 403 Triaxum5Tuple: 5\n    test 404 EasNorRadius3Tuple: EasNorRadius3Tuple\n    test 405 EasNorRadius3Tuple: 3-Tuple C{(easting, northing, radius)}\n    test 406 EasNorRadius3Tuple: 3\n    test 407 ClipCS3Tuple: DEPRECATED, see I{DEPRECATED} function L{pygeodesy.deprecated.clipCS3}.\n    test 408 EasNorExact4Tuple: DEPRECATED, use class L{Forward4Tuple}, item C{gamma} for C{convergence}.\n    test 409 Transform7Tuple: DEPRECATED on 2024.02.02, use class L{TRFXform7Tuple}, I{without} keyword arguments.\n    test 410 Jacobi2Tuple: DEPRECATED on 25.11.11, use class L{Conformal2Tuple}.\n    test 411 LatLonExact4Tuple: DEPRECATED, use class L{Reverse4Tuple}, item C{gamma} for C{convergence}.\n    test 412 NearestOn4Tuple: DEPRECATED on 2023.10.10, see methods L{RhumbLine.nearestOn4} and L{RhumbLineAux.nearestOn4}.\n    test 413 Ned3Tuple: DEPRECATED, use class L{Ned4Tuple}, ignoring item C{ltp}.\n    test 414 Rhumb7Tuple: DEPRECATED, use class L{Rhumb8Tuple}, ignoring item C{a12}.\n    test 415 RhumbOrder2Tuple: DEPRECATED, see deprecated method L{Rhumb.orders}.\n    test 416 Transform7Tuple: DEPRECATED on 2024.02.02, use class L{TRFXform7Tuple}, I{without} keyword arguments.\n    test 417 TriAngle4Tuple: DEPRECATED on 2023.09.14, use class L{TriAngle5Tuple}, ignoring item C{area}.\n    test 418 UtmUps4Tuple: DEPRECATED and OBSOLETE, expect a L{UtmUps5Tuple} from method C{pygeodesy.Mgrs.toUtm(utm=None)}. 4-Tuple C{(zone, hemipole, easting, northing)} with as C{zone} B{C{str}} and no C{band}.\n    test 419 RhumbSolve7Tuple: RhumbSolve7Tuple\n    test 420 RhumbSolve7Tuple: 7-Tuple C{(lat1, lon1, lat2, lon2, azi12, s12, S12)}\n    test 421 RhumbSolve7Tuple: 7\n    test 422 Conformal5Tuple: Conformal5Tuple\n    test 423 Conformal5Tuple: 5-Tuple C{(x, y, z, scale, llk)}\n    test 424 Conformal5Tuple: 5\n    test 425 BetOmgGam5Tuple: BetOmgGam5Tuple\n    test 426 BetOmgGam5Tuple: 5-Tuple C{(bet, omg, gam, scale, llk)}\n    test 427 BetOmgGam5Tuple: 5\n    test 428 BetOmgAlp5Tuple: BetOmgAlp5Tuple\n    test 429 BetOmgAlp5Tuple: 5-Tuple C{(bet, omg, alp, h, llk)}\n    test 430 BetOmgAlp5Tuple: 5\n    test 431 Cartesian5Tuple: Cartesian5Tuple\n    test 432 Cartesian5Tuple: 5-Tuple C{(x, y, z, h, llk)}\n    test 433 Cartesian5Tuple: 5\n    test 434 PhiLamZet5Tuple: PhiLamZet5Tuple\n    test 435 PhiLamZet5Tuple: 5-Tuple C{(phi, lam, zet, h, llk)}\n    test 436 PhiLamZet5Tuple: 5\n    test 437 BetaOmega2Tuple: BetaOmega2Tuple\n    test 438 BetaOmega2Tuple: 2-Tuple C{(beta, omega)}\n    test 439 BetaOmega2Tuple: 2\n    test 440 BetaOmega3Tuple: BetaOmega3Tuple\n    test 441 BetaOmega3Tuple: 3-Tuple C{(beta, omega, height)}\n    test 442 BetaOmega3Tuple: 3\n    test 443 Conformal2Tuple: Conformal2Tuple\n    test 444 Conformal2Tuple: 2-Tuple C{(x, y)}\n    test 445 Conformal2Tuple: 2\n\n    testing __init__.py (pygeodesy.named, 26.01.14)\n\n    testing __main__.py (pygeodesy.named, 26.01.14)\n\n    testing albers.py (pygeodesy.named, 26.01.14)\n    test 446 albers.py:235: L{Albers7Tuple}C{(x, y, lat, lon, gamma, scale, datum)}\n    test 447 albers.py:356: L{Albers7Tuple}C{(x, y, lat, lon, gamma, scale, datum)}\n\n    testing angles.py (pygeodesy.named, 26.01.14)\n\n    testing azimuthal.py (pygeodesy.named, 26.01.14)\n    test 448 azimuthal.py:185: L{LatLon2Tuple}C{(lat, lon)}\n    test 449 azimuthal.py:361: L{Azimuthal7Tuple}C{(x, y, lat, lon, azimuth, scale, datum)}\n    test 450 azimuthal.py:394: L{Azimuthal7Tuple}C{(x, y, lat, lon, azimuth, scale, datum)}\n    test 451 azimuthal.py:487: L{Azimuthal7Tuple}C{(x, y, lat, lon, azimuth, scale, datum)}\n    test 452 azimuthal.py:513: L{Azimuthal7Tuple}C{(x, y, lat, lon, azimuth, scale, datum)}\n    test 453 azimuthal.py:658: L{Azimuthal7Tuple}C{(x, y, lat, lon, azimuth, scale, datum)}\n    test 454 azimuthal.py:683: L{Azimuthal7Tuple}C{(x, y, lat, lon, azimuth, scale, datum)}\n    test 455 azimuthal.py:753: L{Azimuthal7Tuple}C{(x, y, lat, lon, azimuth, scale, datum)}\n    test 456 azimuthal.py:791: L{Azimuthal7Tuple}C{(x, y, lat, lon, azimuth, scale, datum)}\n    test 457 azimuthal.py:956: L{Azimuthal7Tuple}C{(x, y, lat, lon, azimuth, scale, datum)}\n    test 458 azimuthal.py:982: L{Azimuthal7Tuple}C{(x, y, lat, lon, azimuth, scale, datum)}\n    test 459 azimuthal.py:1011: L{Azimuthal7Tuple}C{(x, y, lat, lon, azimuth, scale, datum)}\n    test 460 azimuthal.py:1034: L{Azimuthal7Tuple}C{(x, y, lat, lon, azimuth, scale, datum)}\n    test 461 azimuthal.py:1065: L{Azimuthal7Tuple}C{(x, y, lat, lon, azimuth, scale, datum)}\n    test 462 azimuthal.py:1105: L{Azimuthal7Tuple}C{(x, y, lat, lon, azimuth, scale, datum)}\n\n    testing basics.py (pygeodesy.named, 26.01.14)\n\n    testing booleans.py (pygeodesy.named, 26.01.14)\n\n    testing cartesianBase.py (pygeodesy.named, 26.01.14)\n    test 463 cartesianBase.py:141: L{Collins5Tuple}C{(pointP, pointH, a, b, c)}\n    test 464 cartesianBase.py:196: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 465 cartesianBase.py:296: L{Vector3Tuple}C{(x, y, z)}\n    test 466 cartesianBase.py:348: L{Vector4Tuple}C{(x, y, z, h)}\n    test 467 cartesianBase.py:393: L{LatLon2Tuple}C{(lat, lon)}\n    test 468 cartesianBase.py:399: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 469 cartesianBase.py:405: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n    test 470 cartesianBase.py:466: L{PhiLam2Tuple}C{(phi, lam)}\n    test 471 cartesianBase.py:472: L{PhiLam3Tuple}C{(phi, lam, height)}\n    test 472 cartesianBase.py:478: L{PhiLam4Tuple}C{(phi, lam, height, datum)}\n    test 473 cartesianBase.py:598: L{Tienstra7Tuple}C{(pointP, A, B, C, a, b, c)}\n    test 474 cartesianBase.py:618: L{PhiLam2Tuple}C{(phi, lam)}\n    test 475 cartesianBase.py:626: L{LatLon2Tuple}C{(lat, lon)}\n    test 476 cartesianBase.py:634: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n    test 477 cartesianBase.py:691: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 478 cartesianBase.py:709: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 479 cartesianBase.py:739: L{Vector4Tuple}C{(x, y, z, h)}\n    test 480 cartesianBase.py:765: L{RadiusThetaPhi3Tuple}C{(r, theta, phi)}\n    test 481 cartesianBase.py:815: L{Vector3Tuple}C{(x, y, z)}\n    test 482 cartesianBase.py:841: L{Vector3Tuple}C{(x, y, z)}\n    test 483 cartesianBase.py:855: L{RadiusThetaPhi3Tuple}C{(r, theta, phi)}\n    test 484 cartesianBase.py:865: L{RadiusThetaPhi3Tuple}C{(r, theta, phi)}\n    test 485 cartesianBase.py:912: L{Vector3Tuple}C{(x, y, z)}\n    test 486 cartesianBase.py:965: L{RadiusThetaPhi3Tuple}C{(r, theta, phi)}\n    test 487 cartesianBase.py:983: L{RadiusThetaPhi3Tuple}C{(r, theta, phi)}\n\n    testing clipy.py (pygeodesy.named, 26.01.14)\n    test 488 clipy.py:197: L{ClipCS4Tuple}C{(start, end, i, j)}\n    test 489 clipy.py:276: L{ClipFHP4Tuple}C{(lat, lon, height, clipid)}\n    test 490 clipy.py:318: L{ClipGH4Tuple}C{(lat, lon, height, clipid)}\n    test 491 clipy.py:382: L{ClipLB6Tuple}C{(start, end, i, fi, fj, j)}\n    test 492 clipy.py:660: L{ClipSH3Tuple}C{(start, end, original)}\n\n    testing constants.py (pygeodesy.named, 26.01.14)\n\n    testing css.py (pygeodesy.named, 26.01.14)\n    test 493 css.py:138: L{EasNor2Tuple}C{(easting, northing)}\n    test 494 css.py:157: L{EasNorAziRk4Tuple}C{(easting, northing, azimuth, reciprocal)}\n    test 495 css.py:178: L{EasNorAziRkEqu6Tuple}C{(easting, northing, azimuth, reciprocal, equatorarc, equatorazimuth)}\n    test 496 css.py:265: L{LatLon2Tuple}C{(lat, lon)}\n    test 497 css.py:330: L{LatLon2Tuple}C{(lat, lon)}\n    test 498 css.py:359: L{LatLonAziRk4Tuple}C{(lat, lon, azimuth, reciprocal)}\n    test 499 css.py:525: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n    test 500 css.py:619: L{EasNor3Tuple}C{(easting, northing, height)}\n\n    testing datums.py (pygeodesy.named, 26.01.14)\n    test 501 datums.py:275: L{Vector3Tuple}C{(x, y, z)}\n\n    testing dms.py (pygeodesy.named, 26.01.14)\n    test 502 dms.py:760: L{LatLon2Tuple}C{(lat, lon)}\n    test 503 dms.py:813: L{LatLon3Tuple}C{(lat, lon, height)}\n\n    testing ecef.py (pygeodesy.named, 26.01.14)\n    test 504 ecef.py:233: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 505 ecef.py:259: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 506 ecef.py:369: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 507 ecef.py:441: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 508 ecef.py:491: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 509 ecef.py:621: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 510 ecef.py:703: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 511 ecef.py:769: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 512 ecef.py:838: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 513 ecef.py:1099: L{LatLon2Tuple}C{(lat, lon)}\n    test 514 ecef.py:1105: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 515 ecef.py:1111: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n    test 516 ecef.py:1117: L{LatLon2Tuple}C{(lat, lon)}\n    test 517 ecef.py:1147: L{PhiLam2Tuple}C{(phi, lam)}\n    test 518 ecef.py:1153: L{PhiLam3Tuple}C{(phi, lam, height)}\n    test 519 ecef.py:1159: L{PhiLam4Tuple}C{(phi, lam, height, datum)}\n    test 520 ecef.py:1165: L{PhiLam2Tuple}C{(phi, lam)}\n    test 521 ecef.py:1184: L{Vector4Tuple}C{(x, y, z, h)}\n    test 522 ecef.py:1225: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n    test 523 ecef.py:1226: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 524 ecef.py:1254: L{Vector3Tuple}C{(x, y, z)}\n    test 525 ecef.py:1271: L{Vector3Tuple}C{(x, y, z)}\n    test 526 ecef.py:1277: L{Vector4Tuple}C{(x, y, z, h)}\n\n    testing ecefLocals.py (pygeodesy.named, 26.01.14)\n    test 527 ecefLocals.py:108: L{Local9Tuple}C{(x, y, z, lat, lon, height, ltp, ecef, M)}\n\n    testing elevations.py (pygeodesy.named, 26.01.14)\n    test 528 elevations.py:151: L{Elevation2Tuple}C{(elevation, data_source)}\n    test 529 elevations.py:207: L{GeoidHeight2Tuple}C{(height, model_name)}\n\n    testing ellipses.py (pygeodesy.named, 26.01.14)\n    test 530 ellipses.py:240: L{Vector4Tuple}C{(x, y, z, h)}\n    test 531 ellipses.py:267: L{Vector4Tuple}C{(x, y, z, h)}\n    test 532 ellipses.py:361: L{Vector4Tuple}C{(x, y, z, h)}\n\n    testing ellipsoidalBase.py (pygeodesy.named, 26.01.14)\n    test 533 ellipsoidalBase.py:332: L{Distance2Tuple}C{(distance, initial)}\n    test 534 ellipsoidalBase.py:367: L{Elevation2Tuple}C{(elevation, data_source)}\n    test 535 ellipsoidalBase.py:479: L{GeoidHeight2Tuple}C{(height, model_name)}\n    test 536 ellipsoidalBase.py:521: L{Intersection3Tuple}C{(point, outside1, outside2)}\n    test 537 ellipsoidalBase.py:998: L{Vector3Tuple}C{(x, y, z)}\n    test 538 ellipsoidalBase.py:1042: L{Trilaterate5Tuple}C{(min, minPoint, max, maxPoint, n)}\n\n    testing ellipsoidalBaseDI.py (pygeodesy.named, 26.01.14)\n    test 539 ellipsoidalBaseDI.py:60: L{Bearing2Tuple}C{(initial, final)}\n    test 540 ellipsoidalBaseDI.py:102: L{Destination2Tuple}C{(destination, final)}\n    test 541 ellipsoidalBaseDI.py:109: L{Destination2Tuple}C{(destination, final)}\n    test 542 ellipsoidalBaseDI.py:110: L{Destination3Tuple}C{(lat, lon, final)}\n    test 543 ellipsoidalBaseDI.py:162: L{Distance3Tuple}C{(distance, initial, final)}\n    test 544 ellipsoidalBaseDI.py:316: L{Distance3Tuple}C{(distance, initial, final)}\n    test 545 ellipsoidalBaseDI.py:341: L{NearestOn8Tuple}C{(closest, distance, fi, j, start, end, initial, final)}\n\n    testing ellipsoidalExact.py (pygeodesy.named, 26.01.14)\n    test 546 ellipsoidalExact.py:43: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 547 ellipsoidalExact.py:81: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 548 ellipsoidalExact.py:143: L{Intersection3Tuple}C{(point, outside1, outside2)}\n    test 549 ellipsoidalExact.py:144: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n    test 550 ellipsoidalExact.py:193: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n    test 551 ellipsoidalExact.py:270: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n\n    testing ellipsoidalGeodSolve.py (pygeodesy.named, 26.01.14)\n    test 552 ellipsoidalGeodSolve.py:43: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 553 ellipsoidalGeodSolve.py:81: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 554 ellipsoidalGeodSolve.py:141: L{Intersection3Tuple}C{(point, outside1, outside2)}\n    test 555 ellipsoidalGeodSolve.py:142: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n    test 556 ellipsoidalGeodSolve.py:193: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n    test 557 ellipsoidalGeodSolve.py:270: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n\n    testing ellipsoidalKarney.py (pygeodesy.named, 26.01.14)\n    test 558 ellipsoidalKarney.py:60: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 559 ellipsoidalKarney.py:104: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 560 ellipsoidalKarney.py:168: L{Intersection3Tuple}C{(point, outside1, outside2)}\n    test 561 ellipsoidalKarney.py:169: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n    test 562 ellipsoidalKarney.py:220: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n    test 563 ellipsoidalKarney.py:301: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n\n    testing ellipsoidalNvector.py (pygeodesy.named, 26.01.14)\n    test 564 ellipsoidalNvector.py:102: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 565 ellipsoidalNvector.py:119: L{Vector4Tuple}C{(x, y, z, h)}\n    test 566 ellipsoidalNvector.py:398: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 567 ellipsoidalNvector.py:415: L{Vector4Tuple}C{(x, y, z, h)}\n    test 568 ellipsoidalNvector.py:483: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 569 ellipsoidalNvector.py:501: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 570 ellipsoidalNvector.py:542: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 571 ellipsoidalNvector.py:580: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n    test 572 ellipsoidalNvector.py:636: L{Ned3Tuple}C{(north, east, down)}  FAILED, KNOWN, expected DEPRECATED\n\n    testing ellipsoidalVincenty.py (pygeodesy.named, 26.01.14)\n    test 573 ellipsoidalVincenty.py:110: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 574 ellipsoidalVincenty.py:190: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 575 ellipsoidalVincenty.py:439: L{Intersection3Tuple}C{(point, outside1, outside2)}\n    test 576 ellipsoidalVincenty.py:440: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n    test 577 ellipsoidalVincenty.py:491: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n    test 578 ellipsoidalVincenty.py:541: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n\n    testing ellipsoids.py (pygeodesy.named, 26.01.14)\n    test 579 ellipsoids.py:146: L{a_f2Tuple}C{(a, f)}\n    test 580 ellipsoids.py:678: L{Circle4Tuple}C{(radius, height, lat, beta)}\n    test 581 ellipsoids.py:739: L{Distance2Tuple}C{(distance, initial)}\n    test 582 ellipsoids.py:1113: L{Vector4Tuple}C{(x, y, z, h)}\n    test 583 ellipsoids.py:1149: L{Vector4Tuple}C{(x, y, z, h)}\n    test 584 ellipsoids.py:1635: L{Curvature2Tuple}C{(meridional, prime_vertical)}\n    test 585 ellipsoids.py:1654: L{Curvature2Tuple}C{(meridional, prime_vertical)}\n    test 586 ellipsoids.py:1723: L{Curvature2Tuple}C{(meridional, prime_vertical)}\n\n    testing elliptic.py (pygeodesy.named, 26.01.14)\n    test 587 elliptic.py:830: L{Elliptic3Tuple}C{(sn, cn, dn)}\n\n    testing epsg.py (pygeodesy.named, 26.01.14)\n    test 588 epsg.py:148: L{UtmUps2Tuple}C{(zone, hemipole)}\n\n    testing errors.py (pygeodesy.named, 26.01.14)\n\n    testing etm.py (pygeodesy.named, 26.01.14)\n    test 589 etm.py:185: L{LatLonDatum5Tuple}C{(lat, lon, datum, gamma, scale)}\n    test 590 etm.py:446: L{Forward4Tuple}C{(easting, northing, gamma, scale)}\n    test 591 etm.py:685: L{Reverse4Tuple}C{(lat, lon, gamma, scale)}\n    test 592 etm.py:1048: L{UtmUps5Tuple}C{(zone, hemipole, easting, northing, band)}\n    test 593 etm.py:1079: L{UtmUps8Tuple}C{(zone, hemipole, easting, northing, band, datum, gamma, scale)}\n\n    testing fmath.py (pygeodesy.named, 26.01.14)\n\n    testing formy.py (pygeodesy.named, 26.01.14)\n    test 594 formy.py:90: L{LatLon2Tuple}C{(lat, lon)}\n    test 595 formy.py:106: L{PhiLam2Tuple}C{(phi, lam)}\n    test 596 formy.py:433: L{Distance4Tuple}C{(distance2, delta_lat, delta_lon, unroll_lon2)}\n    test 597 formy.py:1149: L{LatLon2Tuple}C{(lat, lon)}\n    test 598 formy.py:1212: L{LatLon2Tuple}C{(lat, lon)}\n    test 599 formy.py:1361: L{LatLon2Tuple}C{(lat, lon)}\n    test 600 formy.py:1377: L{PhiLam2Tuple}C{(phi, lam)}\n    test 601 formy.py:1460: L{Radical2Tuple}C{(ratio, xline)}\n\n    testing frechet.py (pygeodesy.named, 26.01.14)\n    test 602 frechet.py:199: L{Frechet6Tuple}C{(fd, fi1, fi2, r, n, units)}\n    test 603 frechet.py:371: L{PhiLam2Tuple}C{(phi, lam)}\n    test 604 frechet.py:745: L{Frechet6Tuple}C{(fd, fi1, fi2, r, n, units)}\n\n    testing fstats.py (pygeodesy.named, 26.01.14)\n\n    testing fsums.py (pygeodesy.named, 26.01.14)\n    test 605 fsums.py:1395: L{Fsum2Tuple}C{(fsum, residual)}\n    test 606 fsums.py:1848: L{Fsum2Tuple}C{(fsum, residual)}\n\n    testing gars.py (pygeodesy.named, 26.01.14)\n    test 607 gars.py:206: L{LatLonPrec3Tuple}C{(lat, lon, precision)}\n\n    testing geod3solve.py (pygeodesy.named, 26.01.14)\n\n    testing geodesici.py (pygeodesy.named, 26.01.14)\n    test 608 geodesici.py:347: L{Intersect7Tuple}C{(A, B, sAB, aAB, c, kA, kB)}\n    test 609 geodesici.py:349: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n    test 610 geodesici.py:904: L{Intersector5Tuple}C{(A, B, sAB, aAB, c)}\n    test 611 geodesici.py:975: L{Intersector5Tuple}C{(A, B, sAB, aAB, c)}\n    test 612 geodesici.py:1132: L{Middle5Tuple}C{(A, B, sMM, aMM, c)}\n    test 613 geodesici.py:1204: L{Intersector5Tuple}C{(A, B, sAB, aAB, c)}\n    test 614 geodesici.py:1331: L{Intersector5Tuple}C{(A, B, sAB, aAB, c)}\n    test 615 geodesici.py:1424: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n\n    testing geodesicw.py (pygeodesy.named, 26.01.14)\n\n    testing geodsolve.py (pygeodesy.named, 26.01.14)\n    test 616 geodsolve.py:129: L{Destination3Tuple}C{(lat, lon, final)}\n    test 617 geodsolve.py:175: L{Distance3Tuple}C{(distance, initial, final)}\n\n    testing geohash.py (pygeodesy.named, 26.01.14)\n    test 618 geohash.py:489: L{Neighbors8Dict}C{(N, NE, E, SE, S, SW, W, NW)}\n    test 619 geohash.py:972: L{Neighbors8Dict}C{(N, NE, E, SE, S, SW, W, NW)}\n    test 620 geohash.py:365: L{Bounds2Tuple}C{(latlonSW, latlonNE)}\n    test 621 geohash.py:366: L{Bounds4Tuple}C{(latS, lonW, latN, lonE)}\n    test 622 geohash.py:482: L{LatLon2Tuple}C{(lat, lon)}\n    test 623 geohash.py:499: L{PhiLam2Tuple}C{(phi, lam)}\n    test 624 geohash.py:512: L{Resolutions2Tuple}C{(res1, res2)}\n    test 625 geohash.py:525: L{Sizes3Tuple}C{(height, width, radius)}\n    test 626 geohash.py:540: L{LatLon2Tuple}C{(lat, lon)}\n    test 627 geohash.py:781: L{Bounds2Tuple}C{(latlonSW, latlonNE)}\n    test 628 geohash.py:782: L{Bounds4Tuple}C{(latS, lonW, latN, lonE)}\n    test 629 geohash.py:824: L{LatLon2Tuple}C{(lat, lon)}\n    test 630 geohash.py:849: L{LatLon2Tuple}C{(lat, lon)}\n    test 631 geohash.py:1015: L{Resolutions2Tuple}C{(res1, res2)}\n    test 632 geohash.py:1042: L{Sizes3Tuple}C{(height, width, radius)}\n\n    testing geoids.py (pygeodesy.named, 26.01.14)\n    test 633 geoids.py:352: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 634 geoids.py:478: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 635 geoids.py:543: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 636 geoids.py:561: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 637 geoids.py:581: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 638 geoids.py:726: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 639 geoids.py:744: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 640 geoids.py:1210: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 641 geoids.py:1265: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 642 geoids.py:1724: L{GeoidHeight5Tuple}C{(lat, lon, egm84, egm96, egm2008)}\n\n    testing hausdorff.py (pygeodesy.named, 26.01.14)\n    test 643 hausdorff.py:166: L{Hausdorff6Tuple}C{(hd, i, j, mn, md, units)}\n    test 644 hausdorff.py:244: L{Hausdorff6Tuple}C{(hd, i, j, mn, md, units)}\n    test 645 hausdorff.py:309: L{PhiLam2Tuple}C{(phi, lam)}\n    test 646 hausdorff.py:733: L{Hausdorff6Tuple}C{(hd, i, j, mn, md, units)}\n\n    testing heights.py (pygeodesy.named, 26.01.14)\n\n    testing internals.py (pygeodesy.named, 26.01.14)\n\n    testing interns.py (pygeodesy.named, 26.01.14)\n\n    testing iters.py (pygeodesy.named, 26.01.14)\n    test 647 iters.py:375: L{Point3Tuple}C{(x, y, ll)}\n    test 648 iters.py:495: L{Points2Tuple}C{(number, points)}\n\n    testing karney.py (pygeodesy.named, 26.01.14)\n    test 649 karney.py:453: L{Direct9Tuple}C{(a12, lat2, lon2, azi2, s12, m12, M12, M21, S12)}\n    test 650 karney.py:465: L{GeodSolve12Tuple}C{(lat1, lon1, azi1, lat2, lon2, azi2, s12, a12, m12, M12, M21, S12)}\n    test 651 karney.py:477: L{Geod3Solve8Tuple}C{(bet1, omg1, alp1, bet2, omg2, alp2, s12, a12)}\n    test 652 karney.py:487: L{Inverse10Tuple}C{(a12, s12, salp1, calp1, salp2, calp2, m12, M12, M21, S12)}\n    test 653 karney.py:517: L{Rhumb8Tuple}C{(lat1, lon1, lat2, lon2, azi12, s12, S12, a12)}\n    test 654 karney.py:527: L{RhumbSolve7Tuple}C{(lat1, lon1, lat2, lon2, azi12, s12, S12)}\n    test 655 karney.py:595: L{Direct9Tuple}C{(a12, lat2, lon2, azi2, s12, m12, M12, M21, S12)}\n    test 656 karney.py:612: L{Inverse10Tuple}C{(a12, s12, salp1, calp1, salp2, calp2, m12, M12, M21, S12)}\n\n    testing ktm.py (pygeodesy.named, 26.01.14)\n    test 657 ktm.py:230: L{Forward4Tuple}C{(easting, northing, gamma, scale)}\n    test 658 ktm.py:361: L{Reverse4Tuple}C{(lat, lon, gamma, scale)}\n\n    testing latlonBase.py (pygeodesy.named, 26.01.14)\n    test 659 latlonBase.py:148: L{Bounds2Tuple}C{(latlonSW, latlonNE)}\n    test 660 latlonBase.py:202: L{Circin6Tuple}C{(radius, center, deltas, cA, cB, cC)}\n    test 661 latlonBase.py:219: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 662 latlonBase.py:250: L{Circum3Tuple}C{(radius, center, deltas)}\n    test 663 latlonBase.py:253: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 664 latlonBase.py:270: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 665 latlonBase.py:292: L{Circum4Tuple}C{(radius, center, rank, residuals)}\n    test 666 latlonBase.py:409: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n    test 667 latlonBase.py:409: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 668 latlonBase.py:654: L{Vector4Tuple}C{(x, y, z, h)}\n    test 669 latlonBase.py:816: L{LatLon2Tuple}C{(lat, lon)}\n    test 670 latlonBase.py:855: L{LatLon2Tuple}C{(lat, lon)}\n    test 671 latlonBase.py:873: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 672 latlonBase.py:920: L{NearestOn6Tuple}C{(closest, distance, fi, j, start, end)}\n    test 673 latlonBase.py:993: L{PhiLam2Tuple}C{(phi, lam)}\n    test 674 latlonBase.py:1002: L{PhiLam2Tuple}C{(phi, lam)}\n    test 675 latlonBase.py:1012: L{PhiLam3Tuple}C{(phi, lam, height)}\n    test 676 latlonBase.py:1028: L{Points2Tuple}C{(number, points)}\n    test 677 latlonBase.py:1062: L{Radii11Tuple}C{(rA, rB, rC, cR, rIn, riS, roS, a, b, c, s)}\n    test 678 latlonBase.py:1299: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 679 latlonBase.py:1340: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 680 latlonBase.py:1381: L{Vector4Tuple}C{(x, y, z, h)}\n    test 681 latlonBase.py:1435: L{Vector3Tuple}C{(x, y, z)}\n    test 682 latlonBase.py:1512: L{Vector3Tuple}C{(x, y, z)}\n    test 683 latlonBase.py:1524: L{Vector4Tuple}C{(x, y, z, h)}\n    test 684 latlonBase.py:1567: L{Vector3Tuple}C{(x, y, z)}\n    test 685 latlonBase.py:1593: L{Vector3Tuple}C{(x, y, z)}\n\n    testing lazily.py (pygeodesy.named, 26.01.14)\n\n    testing lcc.py (pygeodesy.named, 26.01.14)\n    test 686 lcc.py:168: L{LatLon2Tuple}C{(lat, lon)}\n    test 687 lcc.py:222: L{PhiLam2Tuple}C{(phi, lam)}\n    test 688 lcc.py:483: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 689 lcc.py:489: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n    test 690 lcc.py:508: L{PhiLam3Tuple}C{(phi, lam, height)}\n    test 691 lcc.py:514: L{PhiLam4Tuple}C{(phi, lam, height, datum)}\n    test 692 lcc.py:525: L{LatLonDatum3Tuple}C{(lat, lon, datum)}\n    test 693 lcc.py:552: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n    test 694 lcc.py:630: L{EasNor3Tuple}C{(easting, northing, height)}\n\n    testing ltp.py (pygeodesy.named, 26.01.14)\n    test 695 ltp.py:163: L{Vector3Tuple}C{(x, y, z)}\n    test 696 ltp.py:292: L{Footprint5Tuple}C{(center, upperleft, upperight, loweright, lowerleft)}\n    test 697 ltp.py:484: L{Local9Tuple}C{(x, y, z, lat, lon, height, ltp, ecef, M)}\n    test 698 ltp.py:524: L{Local9Tuple}C{(x, y, z, lat, lon, height, ltp, ecef, M)}\n    test 699 ltp.py:556: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 700 ltp.py:568: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 701 ltp.py:646: L{Local9Tuple}C{(x, y, z, lat, lon, height, ltp, ecef, M)}\n    test 702 ltp.py:756: L{ChLV9Tuple}C{(Y, X, h_, lat, lon, height, ltp, ecef, M)}\n    test 703 ltp.py:778: L{ChLV9Tuple}C{(Y, X, h_, lat, lon, height, ltp, ecef, M)}\n    test 704 ltp.py:892: L{ChLVEN2Tuple}C{(E_LV95, N_LV95)}\n    test 705 ltp.py:893: L{ChLVyx2Tuple}C{(y_LV03, x_LV03)}\n    test 706 ltp.py:894: L{ChLVYX2Tuple}C{(Y, X)}\n    test 707 ltp.py:944: L{ChLVYX2Tuple}C{(Y, X)}\n    test 708 ltp.py:1100: L{Vector3Tuple}C{(x, y, z)}\n\n    testing ltpTuples.py (pygeodesy.named, 26.01.14)\n    test 709 ltpTuples.py:79: L{Aer4Tuple}C{(azimuth, elevation, slantrange, ltp)}\n    test 710 ltpTuples.py:94: L{Enu4Tuple}C{(east, north, up, ltp)}\n    test 711 ltpTuples.py:109: L{Ned4Tuple}C{(north, east, down, ltp)}\n    test 712 ltpTuples.py:125: L{Xyz4Tuple}C{(x, y, z, ltp)}\n    test 713 ltpTuples.py:134: L{Vector3Tuple}C{(x, y, z)}\n    test 714 ltpTuples.py:767: L{Aer4Tuple}C{(azimuth, elevation, slantrange, ltp)}\n    test 715 ltpTuples.py:786: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 716 ltpTuples.py:809: L{Enu4Tuple}C{(east, north, up, ltp)}\n    test 717 ltpTuples.py:827: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 718 ltpTuples.py:847: L{Local9Tuple}C{(x, y, z, lat, lon, height, ltp, ecef, M)}\n    test 719 ltpTuples.py:865: L{Ned4Tuple}C{(north, east, down, ltp)}\n    test 720 ltpTuples.py:881: L{Xyz4Tuple}C{(x, y, z, ltp)}\n    test 721 ltpTuples.py:902: L{Vector3Tuple}C{(x, y, z)}\n    test 722 ltpTuples.py:995: L{Uvw3Tuple}C{(u, v, w)}\n    test 723 ltpTuples.py:1090: L{LatLon2Tuple}C{(lat, lon)}\n    test 724 ltpTuples.py:1096: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 725 ltpTuples.py:1114: L{PhiLam2Tuple}C{(phi, lam)}\n    test 726 ltpTuples.py:1120: L{PhiLam3Tuple}C{(phi, lam, height)}\n    test 727 ltpTuples.py:1138: L{Aer4Tuple}C{(azimuth, elevation, slantrange, ltp)}\n    test 728 ltpTuples.py:1155: L{Vector4Tuple}C{(x, y, z, h)}\n    test 729 ltpTuples.py:1170: L{Enu4Tuple}C{(east, north, up, ltp)}\n    test 730 ltpTuples.py:1186: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n    test 731 ltpTuples.py:1187: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 732 ltpTuples.py:1202: L{Ned4Tuple}C{(north, east, down, ltp)}\n    test 733 ltpTuples.py:1217: L{Xyz4Tuple}C{(x, y, z, ltp)}\n    test 734 ltpTuples.py:1232: L{Vector3Tuple}C{(x, y, z)}\n    test 735 ltpTuples.py:1279: L{Enu4Tuple}C{(east, north, up, ltp)}\n    test 736 ltpTuples.py:1305: L{Uvw3Tuple}C{(u, v, w)}\n    test 737 ltpTuples.py:1526: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 738 ltpTuples.py:1527: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n\n    testing mgrs.py (pygeodesy.named, 26.01.14)\n    test 739 mgrs.py:207: L{EasNor2Tuple}C{(easting, northing)}\n    test 740 mgrs.py:292: L{LatLonDatum5Tuple}C{(lat, lon, datum, gamma, scale)}\n    test 741 mgrs.py:353: L{UtmUps5Tuple}C{(zone, hemipole, easting, northing, band)}\n    test 742 mgrs.py:371: L{UtmUps5Tuple}C{(zone, hemipole, easting, northing, band)}\n    test 743 mgrs.py:391: L{UtmUps5Tuple}C{(zone, hemipole, easting, northing, band)}\n    test 744 mgrs.py:465: L{Mgrs6Tuple}C{(zone, EN, easting, northing, band, datum)}\n    test 745 mgrs.py:549: L{Mgrs4Tuple}C{(zone, EN, easting, northing)}\n    test 746 mgrs.py:605: L{Mgrs6Tuple}C{(zone, EN, easting, northing, band, datum)}\n\n    testing named.py (pygeodesy.named, 26.01.14)\n\n    testing namedTuples.py (pygeodesy.named, 26.01.14)\n    test 747 namedTuples.py:279: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 748 namedTuples.py:293: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n    test 749 namedTuples.py:316: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n    test 750 namedTuples.py:383: L{LatLonPrec5Tuple}C{(lat, lon, precision, height, radius)}\n    test 751 namedTuples.py:442: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 752 namedTuples.py:510: L{PhiLam3Tuple}C{(phi, lam, height)}\n    test 753 namedTuples.py:522: L{PhiLam4Tuple}C{(phi, lam, height, datum)}\n    test 754 namedTuples.py:550: L{PhiLam4Tuple}C{(phi, lam, height, datum)}\n    test 755 namedTuples.py:727: L{Vector3Tuple}C{(x, y, z)}\n    test 756 namedTuples.py:771: L{Vector4Tuple}C{(x, y, z, h)}\n    test 757 namedTuples.py:811: L{Vector3Tuple}C{(x, y, z)}\n\n    testing nvectorBase.py (pygeodesy.named, 26.01.14)\n    test 758 nvectorBase.py:160: L{LatLon2Tuple}C{(lat, lon)}\n    test 759 nvectorBase.py:166: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 760 nvectorBase.py:172: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n    test 761 nvectorBase.py:190: L{PhiLam2Tuple}C{(phi, lam)}\n    test 762 nvectorBase.py:196: L{PhiLam3Tuple}C{(phi, lam, height)}\n    test 763 nvectorBase.py:202: L{PhiLam4Tuple}C{(phi, lam, height, datum)}\n    test 764 nvectorBase.py:233: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 765 nvectorBase.py:291: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 766 nvectorBase.py:353: L{Vector4Tuple}C{(x, y, z, h)}\n    test 767 nvectorBase.py:427: L{Vector4Tuple}C{(x, y, z, h)}\n    test 768 nvectorBase.py:496: L{Trilaterate5Tuple}C{(min, minPoint, max, maxPoint, n)}\n    test 769 nvectorBase.py:531: L{LatLon2Tuple}C{(lat, lon)}\n    test 770 nvectorBase.py:549: L{PhiLam2Tuple}C{(phi, lam)}\n    test 771 nvectorBase.py:589: L{Vector4Tuple}C{(x, y, z, h)}\n\n    testing osgr.py (pygeodesy.named, 26.01.14)\n    test 772 osgr.py:301: L{LatLonDatum3Tuple}C{(lat, lon, datum)}\n    test 773 osgr.py:522: L{EasNor2Tuple}C{(easting, northing)}\n    test 774 osgr.py:600: L{EasNor2Tuple}C{(easting, northing)}\n\n    testing points.py (pygeodesy.named, 26.01.14)\n    test 775 points.py:559: L{Shape2Tuple}C{(nrows, ncols)}\n    test 776 points.py:761: L{Point3Tuple}C{(x, y, ll)}\n    test 777 points.py:995: L{Bounds2Tuple}C{(latlonSW, latlonNE)}\n    test 778 points.py:997: L{Bounds4Tuple}C{(latS, lonW, latN, lonE)}\n    test 779 points.py:1037: L{LatLon2Tuple}C{(lat, lon)}\n    test 780 points.py:1117: L{LatLon2Tuple}C{(lat, lon)}\n    test 781 points.py:1485: L{NearestOn3Tuple}C{(closest, distance, angle)}\n    test 782 points.py:1487: L{NearestOn5Tuple}C{(lat, lon, distance, angle, height)}\n\n    testing props.py (pygeodesy.named, 26.01.14)\n\n    testing resections.py (pygeodesy.named, 26.01.14)\n    test 783 resections.py:229: L{Collins5Tuple}C{(pointP, pointH, a, b, c)}\n    test 784 resections.py:549: L{Survey3Tuple}C{(PA, PB, PC)}\n    test 785 resections.py:613: L{Tienstra7Tuple}C{(pointP, A, B, C, a, b, c)}\n    test 786 resections.py:733: L{TriAngle5Tuple}C{(radA, radB, radC, rIn, area)}\n    test 787 resections.py:864: L{TriSide2Tuple}C{(a, radA)}\n    test 788 resections.py:910: L{TriSide4Tuple}C{(a, b, radC, d)}\n    test 789 resections.py:956: L{Survey3Tuple}C{(PA, PB, PC)}\n\n    testing simplify.py (pygeodesy.named, 26.01.14)\n\n    testing solveBase.py (pygeodesy.named, 26.01.14)\n\n    testing sphericalBase.py (pygeodesy.named, 26.01.14)\n    test 790 sphericalBase.py:151: L{Bearing2Tuple}C{(initial, final)}\n    test 791 sphericalBase.py:579: L{Vector4Tuple}C{(x, y, z, h)}\n\n    testing sphericalNvector.py (pygeodesy.named, 26.01.14)\n    test 792 sphericalNvector.py:83: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 793 sphericalNvector.py:99: L{Vector4Tuple}C{(x, y, z, h)}\n    test 794 sphericalNvector.py:641: L{NearestOn3Tuple}C{(closest, distance, angle)}\n    test 795 sphericalNvector.py:677: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 796 sphericalNvector.py:692: L{Vector4Tuple}C{(x, y, z, h)}\n    test 797 sphericalNvector.py:731: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 798 sphericalNvector.py:748: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 799 sphericalNvector.py:882: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 800 sphericalNvector.py:913: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 801 sphericalNvector.py:1045: L{NearestOn3Tuple}C{(closest, distance, angle)}\n\n    testing sphericalTrigonometry.py (pygeodesy.named, 26.01.14)\n    test 802 sphericalTrigonometry.py:80: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 803 sphericalTrigonometry.py:622: L{NearestOn3Tuple}C{(closest, distance, angle)}\n    test 804 sphericalTrigonometry.py:653: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 805 sphericalTrigonometry.py:671: L{Triangle7Tuple}C{(A, a, B, b, C, c, area)}\n    test 806 sphericalTrigonometry.py:672: L{Triangle8Tuple}C{(A, a, B, b, C, c, D, E)}\n    test 807 sphericalTrigonometry.py:722: L{Trilaterate5Tuple}C{(min, minPoint, max, maxPoint, n)}\n    test 808 sphericalTrigonometry.py:1010: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 809 sphericalTrigonometry.py:1054: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 810 sphericalTrigonometry.py:1172: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 811 sphericalTrigonometry.py:1197: L{LatLon2Tuple}C{(lat, lon)}\n    test 812 sphericalTrigonometry.py:1228: L{NearestOn3Tuple}C{(closest, distance, angle)}\n    test 813 sphericalTrigonometry.py:1229: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 814 sphericalTrigonometry.py:1325: L{Triangle7Tuple}C{(A, a, B, b, C, c, area)}\n    test 815 sphericalTrigonometry.py:1330: L{Triangle8Tuple}C{(A, a, B, b, C, c, D, E)}\n    test 816 sphericalTrigonometry.py:1357: L{Triangle8Tuple}C{(A, a, B, b, C, c, D, E)}\n\n    testing streprs.py (pygeodesy.named, 26.01.14)\n\n    testing trf.py (pygeodesy.named, 26.01.14)\n    test 817 trf.py:472: L{Vector3Tuple}C{(x, y, z)}\n    test 818 trf.py:514: L{Vector3Tuple}C{(x, y, z)}\n\n    testing units.py (pygeodesy.named, 26.01.14)\n\n    testing unitsBase.py (pygeodesy.named, 26.01.14)\n\n    testing ups.py (pygeodesy.named, 26.01.14)\n    test 819 ups.py:147: L{EasNor2Tuple}C{(easting, northing)}\n    test 820 ups.py:209: L{LatLonDatum5Tuple}C{(lat, lon, datum, gamma, scale)}\n    test 821 ups.py:355: L{UtmUps5Tuple}C{(zone, hemipole, easting, northing, band)}\n    test 822 ups.py:402: L{UtmUps8Tuple}C{(zone, hemipole, easting, northing, band, datum, gamma, scale)}\n    test 823 ups.py:477: L{UtmUpsLatLon5Tuple}C{(zone, band, hemipole, lat, lon)}\n\n    testing utily.py (pygeodesy.named, 26.01.14)\n    test 824 utily.py:203: L{Circle4Tuple}C{(radius, height, lat, beta)}\n\n    testing utm.py (pygeodesy.named, 26.01.14)\n    test 825 utm.py:252: L{EasNor2Tuple}C{(easting, northing)}\n    test 826 utm.py:306: L{LatLonDatum5Tuple}C{(lat, lon, datum, gamma, scale)}\n    test 827 utm.py:512: L{UtmUps5Tuple}C{(zone, hemipole, easting, northing, band)}\n    test 828 utm.py:542: L{UtmUps8Tuple}C{(zone, hemipole, easting, northing, band, datum, gamma, scale)}\n    test 829 utm.py:721: L{UtmUpsLatLon5Tuple}C{(zone, band, hemipole, lat, lon)}\n\n    testing utmups.py (pygeodesy.named, 26.01.14)\n    test 830 utmups.py:89: L{UtmUps5Tuple}C{(zone, hemipole, easting, northing, band)}\n    test 831 utmups.py:129: L{UtmUps8Tuple}C{(zone, hemipole, easting, northing, band, datum, gamma, scale)}\n    test 832 utmups.py:278: L{UtmUpsLatLon5Tuple}C{(zone, band, hemipole, lat, lon)}\n\n    testing utmupsBase.py (pygeodesy.named, 26.01.14)\n    test 833 utmupsBase.py:158: L{EasNor2Tuple}C{(easting, northing)}\n    test 834 utmupsBase.py:168: L{EasNor2Tuple}C{(easting, northing)}\n    test 835 utmupsBase.py:366: L{EasNor2Tuple}C{(easting, northing)}\n\n    testing vector2d.py (pygeodesy.named, 26.01.14)\n    test 836 vector2d.py:148: L{Circin6Tuple}C{(radius, center, deltas, cA, cB, cC)}\n    test 837 vector2d.py:212: L{Circum3Tuple}C{(radius, center, deltas)}\n    test 838 vector2d.py:262: L{Circum4Tuple}C{(radius, center, rank, residuals)}\n    test 839 vector2d.py:338: L{Meeus2Tuple}C{(radius, Type)}\n    test 840 vector2d.py:513: L{Radii11Tuple}C{(rA, rB, rC, cR, rIn, riS, roS, a, b, c, s)}\n    test 841 vector2d.py:590: L{Soddy4Tuple}C{(radius, center, deltas, outer)}\n    test 842 vector2d.py:623: L{Triaxum5Tuple}C{(a, b, c, rank, residuals)}\n    test 843 vector2d.py:705: L{Vector2Tuple}C{(x, y)}\n\n    testing vector3d.py (pygeodesy.named, 26.01.14)\n    test 844 vector3d.py:75: L{Circin6Tuple}C{(radius, center, deltas, cA, cB, cC)}\n    test 845 vector3d.py:109: L{Circum3Tuple}C{(radius, center, deltas)}\n    test 846 vector3d.py:135: L{Circum4Tuple}C{(radius, center, rank, residuals)}\n    test 847 vector3d.py:182: L{Meeus2Tuple}C{(radius, Type)}\n    test 848 vector3d.py:228: L{NearestOn6Tuple}C{(closest, distance, fi, j, start, end)}\n    test 849 vector3d.py:264: L{Radii11Tuple}C{(rA, rB, rC, cR, rIn, riS, roS, a, b, c, s)}\n    test 850 vector3d.py:291: L{Soddy4Tuple}C{(radius, center, deltas, outer)}\n    test 851 vector3d.py:516: L{Intersection3Tuple}C{(point, outside1, outside2)}\n    test 852 vector3d.py:742: L{NearestOn6Tuple}C{(closest, distance, fi, j, start, end)}\n    test 853 vector3d.py:813: L{Vector3Tuple}C{(x, y, z)}\n    test 854 vector3d.py:837: L{Vector3Tuple}C{(x, y, z)}\n\n    testing vector3dBase.py (pygeodesy.named, 26.01.14)\n    test 855 vector3dBase.py:1039: L{PhiLam2Tuple}C{(phi, lam)}\n    test 856 vector3dBase.py:1047: L{LatLon2Tuple}C{(lat, lon)}\n    test 857 vector3dBase.py:1113: L{Vector3Tuple}C{(x, y, z)}\n\n    testing webmercator.py (pygeodesy.named, 26.01.14)\n    test 858 webmercator.py:121: L{LatLon2Tuple}C{(lat, lon)}\n    test 859 webmercator.py:179: L{LatLon2Tuple}C{(lat, lon)}\n    test 860 webmercator.py:288: L{EasNorRadius3Tuple}C{(easting, northing, radius)}\n    test 861 webmercator.py:324: L{EasNorRadius3Tuple}C{(easting, northing, radius)}\n\n    testing wgrs.py (pygeodesy.named, 26.01.14)\n    test 862 wgrs.py:221: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 863 wgrs.py:239: L{LatLonPrec3Tuple}C{(lat, lon, precision)}\n    test 864 wgrs.py:292: L{LatLonPrec5Tuple}C{(lat, lon, precision, height, radius)}\n\n    testing auxilats._CX_4.py (pygeodesy.named, 26.01.14)\n\n    testing auxilats._CX_6.py (pygeodesy.named, 26.01.14)\n\n    testing auxilats._CX_8.py (pygeodesy.named, 26.01.14)\n\n    testing auxilats._CX_Rs.py (pygeodesy.named, 26.01.14)\n\n    testing auxilats.__init__.py (pygeodesy.named, 26.01.14)\n\n    testing auxilats.__main__.py (pygeodesy.named, 26.01.14)\n\n    testing auxilats.auxAngle.py (pygeodesy.named, 26.01.14)\n\n    testing auxilats.auxDLat.py (pygeodesy.named, 26.01.14)\n\n    testing auxilats.auxDST.py (pygeodesy.named, 26.01.14)\n\n    testing auxilats.auxLat.py (pygeodesy.named, 26.01.14)\n\n    testing auxilats.auxily.py (pygeodesy.named, 26.01.14)\n\n    testing deprecated.__init__.py (pygeodesy.named, 26.01.14)\n\n    testing deprecated.bases.py (pygeodesy.named, 26.01.14)\n\n    testing deprecated.classes.py (pygeodesy.named, 26.01.14)\n    test 865 deprecated.classes.py:82: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 866 deprecated.classes.py:96: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n\n    testing deprecated.consterns.py (pygeodesy.named, 26.01.14)\n\n    testing deprecated.datum.py (pygeodesy.named, 26.01.14)\n\n    testing deprecated.functions.py (pygeodesy.named, 26.01.14)\n    test 867 deprecated.functions.py:56: L{ClipCS3Tuple}C{(start, end, index)}  FAILED, KNOWN, expected DEPRECATED\n    test 868 deprecated.functions.py:390: L{TriAngle4Tuple}C{(radA, radB, radC, rIn)}  FAILED, KNOWN, expected DEPRECATED\n\n    testing deprecated.nvector.py (pygeodesy.named, 26.01.14)\n\n    testing deprecated.rhumbBase.py (pygeodesy.named, 26.01.14)\n\n    testing deprecated.rhumbaux.py (pygeodesy.named, 26.01.14)\n\n    testing deprecated.rhumbsolve.py (pygeodesy.named, 26.01.14)\n\n    testing deprecated.rhumbx.py (pygeodesy.named, 26.01.14)\n\n    testing geodesicx._C4_24.py (pygeodesy.named, 26.01.14)\n\n    testing geodesicx._C4_27.py (pygeodesy.named, 26.01.14)\n\n    testing geodesicx._C4_30.py (pygeodesy.named, 26.01.14)\n\n    testing geodesicx.__init__.py (pygeodesy.named, 26.01.14)\n\n    testing geodesicx.__main__.py (pygeodesy.named, 26.01.14)\n\n    testing geodesicx.gx.py (pygeodesy.named, 26.01.14)\n    test 869 geodesicx.gx.py:357: L{Destination3Tuple}C{(lat, lon, final)}\n    test 870 geodesicx.gx.py:710: L{Direct9Tuple}C{(a12, lat2, lon2, azi2, s12, m12, M12, M21, S12)}\n    test 871 geodesicx.gx.py:719: L{Inverse10Tuple}C{(a12, s12, salp1, calp1, salp2, calp2, m12, M12, M21, S12)}\n    test 872 geodesicx.gx.py:774: L{Distance3Tuple}C{(distance, initial, final)}\n\n    testing geodesicx.gxarea.py (pygeodesy.named, 26.01.14)\n    test 873 geodesicx.gxarea.py:161: L{Area3Tuple}C{(number, perimeter, area)}\n    test 874 geodesicx.gxarea.py:323: L{Area3Tuple}C{(number, perimeter, area)}\n    test 875 geodesicx.gxarea.py:350: L{Area3Tuple}C{(number, perimeter, area)}\n\n    testing geodesicx.gxbases.py (pygeodesy.named, 26.01.14)\n\n    testing geodesicx.gxline.py (pygeodesy.named, 26.01.14)\n    test 876 geodesicx.gxline.py:464: L{Direct9Tuple}C{(a12, lat2, lon2, azi2, s12, m12, M12, M21, S12)}\n\n    testing rhumb.__init__.py (pygeodesy.named, 26.01.14)\n\n    testing rhumb.aux_.py (pygeodesy.named, 26.01.14)\n\n    testing rhumb.bases.py (pygeodesy.named, 26.01.14)\n    test 877 rhumb.bases.py:589: L{Distance2Tuple}C{(distance, initial)}\n    test 878 rhumb.bases.py:782: L{LatLon2Tuple}C{(lat, lon)}\n\n    testing rhumb.ekx.py (pygeodesy.named, 26.01.14)\n    test 879 rhumb.ekx.py:201: L{RhumbOrder2Tuple}C{(RAorder, TMorder)}  FAILED, KNOWN, expected DEPRECATED\n\n    testing rhumb.solve.py (pygeodesy.named, 26.01.14)\n    test 880 rhumb.solve.py:120: L{Destination3Tuple}C{(lat, lon, final)}\n    test 881 rhumb.solve.py:184: L{Distance3Tuple}C{(distance, initial, final)}\n\n    testing triaxials.__init__.py (pygeodesy.named, 26.01.14)\n\n    testing triaxials.bases.py (pygeodesy.named, 26.01.14)\n    test 882 triaxials.bases.py:379: L{Ellipse5Tuple}C{(a, b, height, lat, beta)}\n    test 883 triaxials.bases.py:508: L{Vector4Tuple}C{(x, y, z, h)}\n\n    testing triaxials.conformal3.py (pygeodesy.named, 26.01.14)\n    test 884 triaxials.conformal3.py:174: L{Conformal5Tuple}C{(x, y, z, scale, llk)}\n    test 885 triaxials.conformal3.py:190: L{BetOmgGam5Tuple}C{(bet, omg, gam, scale, llk)}\n    test 886 triaxials.conformal3.py:216: L{Cartesian5Tuple}C{(x, y, z, h, llk)}\n    test 887 triaxials.conformal3.py:248: L{BetOmgGam5Tuple}C{(bet, omg, gam, scale, llk)}\n    test 888 triaxials.conformal3.py:269: L{BetOmgGam5Tuple}C{(bet, omg, gam, scale, llk)}\n    test 889 triaxials.conformal3.py:290: L{BetOmgGam5Tuple}C{(bet, omg, gam, scale, llk)}\n\n    testing triaxials.triaxial3.py (pygeodesy.named, 26.01.14)\n    test 890 triaxials.triaxial3.py:175: L{Cartesian5Tuple}C{(x, y, z, h, llk)}\n    test 891 triaxials.triaxial3.py:203: L{Cartesian5Tuple}C{(x, y, z, h, llk)}\n    test 892 triaxials.triaxial3.py:277: L{Cartesian5Tuple}C{(x, y, z, h, llk)}\n    test 893 triaxials.triaxial3.py:303: L{Cartesian5Tuple}C{(x, y, z, h, llk)}\n    test 894 triaxials.triaxial3.py:323: L{Cartesian5Tuple}C{(x, y, z, h, llk)}\n    test 895 triaxials.triaxial3.py:347: L{Cartesian5Tuple}C{(x, y, z, h, llk)}\n    test 896 triaxials.triaxial3.py:421: L{Cartesian5Tuple}C{(x, y, z, h, llk)}\n    test 897 triaxials.triaxial3.py:458: L{BetOmgAlp5Tuple}C{(bet, omg, alp, h, llk)}\n    test 898 triaxials.triaxial3.py:497: L{BetOmgAlp5Tuple}C{(bet, omg, alp, h, llk)}\n    test 899 triaxials.triaxial3.py:580: L{Cartesian5Tuple}C{(x, y, z, h, llk)}\n    test 900 triaxials.triaxial3.py:607: L{BetOmgAlp5Tuple}C{(bet, omg, alp, h, llk)}\n    test 901 triaxials.triaxial3.py:608: L{PhiLamZet5Tuple}C{(phi, lam, zet, h, llk)}\n    test 902 triaxials.triaxial3.py:630: L{PhiLamZet5Tuple}C{(phi, lam, zet, h, llk)}\n    test 903 triaxials.triaxial3.py:649: L{PhiLamZet5Tuple}C{(phi, lam, zet, h, llk)}\n    test 904 triaxials.triaxial3.py:683: L{Cartesian5Tuple}C{(x, y, z, h, llk)}\n    test 905 triaxials.triaxial3.py:738: L{BetOmgAlp5Tuple}C{(bet, omg, alp, h, llk)}\n    test 906 triaxials.triaxial3.py:739: L{PhiLamZet5Tuple}C{(phi, lam, zet, h, llk)}\n    test 907 triaxials.triaxial3.py:767: L{Cartesian5Tuple}C{(x, y, z, h, llk)}\n\n    testing triaxials.triaxial5.py (pygeodesy.named, 26.01.14)\n    test 908 triaxials.triaxial5.py:107: L{BetaOmega2Tuple}C{(beta, omega)}\n    test 909 triaxials.triaxial5.py:119: L{BetaOmega2Tuple}C{(beta, omega)}\n    test 910 triaxials.triaxial5.py:140: L{BetaOmega3Tuple}C{(beta, omega, height)}\n    test 911 triaxials.triaxial5.py:152: L{BetaOmega3Tuple}C{(beta, omega, height)}\n    test 912 triaxials.triaxial5.py:177: L{Conformal2Tuple}C{(x, y)}\n    test 913 triaxials.triaxial5.py:188: L{Conformal2Tuple}C{(x, y)}\n    test 914 triaxials.triaxial5.py:250: L{Vector3Tuple}C{(x, y, z)}\n    test 915 triaxials.triaxial5.py:286: L{Vector3Tuple}C{(x, y, z)}\n    test 916 triaxials.triaxial5.py:311: L{Vector4Tuple}C{(x, y, z, h)}\n    test 917 triaxials.triaxial5.py:328: L{Vector3Tuple}C{(x, y, z)}\n    test 918 triaxials.triaxial5.py:348: L{Vector3Tuple}C{(x, y, z)}\n    test 919 triaxials.triaxial5.py:388: L{BetaOmega3Tuple}C{(beta, omega, height)}\n    test 920 triaxials.triaxial5.py:416: L{Vector3Tuple}C{(x, y, z)}\n    test 921 triaxials.triaxial5.py:444: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 922 triaxials.triaxial5.py:572: L{Vector2Tuple}C{(x, y)}\n    test 923 triaxials.triaxial5.py:583: L{Vector2Tuple}C{(x, y)}\n    test 924 triaxials.triaxial5.py:592: L{Conformal2Tuple}C{(x, y)}\n    test 925 triaxials.triaxial5.py:606: L{Conformal2Tuple}C{(x, y)}\n    test 926 triaxials.triaxial5.py:621: L{Conformal2Tuple}C{(x, y)}\n    test 927 triaxials.triaxial5.py:829: L{Vector4Tuple}C{(x, y, z, h)}\n    test 928 triaxials.triaxial5.py:872: L{Vector4Tuple}C{(x, y, z, h)}\n\n    testing xtend (pygeodesy.namedTuples, 26.03.12)\n    test 929 LatLon2Tuple(lat=0, lon=1): (0, 1, 2)\n    test 930 LatLon2Tuple(lat=0, lon=1): <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 931 LatLon2Tuple(lat=0, lon=1): (0, 1, 2, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 932 LatLon2Tuple(lat=0, lon=1): <class 'pygeodesy.namedTuples.LatLon4Tuple'>\n    test 933 LatLon3Tuple(lat=0, lon=1, height=2): (0, 1, 2, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 934 LatLon3Tuple(lat=0, lon=1, height=2): <class 'pygeodesy.namedTuples.LatLon4Tuple'>\n    test 935 PhiLam2Tuple(phi=0, lam=1): (0, 1, 2)\n    test 936 PhiLam2Tuple(phi=0, lam=1): <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 937 Vector3Tuple(x=0, y=1, z=2): (0, 1, 2, 4)\n    test 938 Vector3Tuple(x=0, y=1, z=2): <class 'pygeodesy.namedTuples.Vector4Tuple'>\n\n    testing bases (pygeodesy.named, 26.01.14)\n    test 939 nd.dict: test(1=1, 2=2)\n    test 940 nd.name: test\n    test 941 nd.dict: test(1=1, 2=2)\n    test 942 nd.name: test\n    test 943 nd.kwds: test(one=1, two=2)\n    test 944 nd.name: test\n    test 945 nd.dict: test(1=1, 2=2)\n    test 946 nd.name: test\n    test 947 nd.list: test(1=1, 2=2)\n    test 948 nd.name: test\n    test 949 nd.updated: test(1=1, 2=2, name='kwds')\n    test 950 nd.name: test\n\n    testing coverage (pygeodesy.named, 26.01.14)\n{E: 'E', N: 'N', NE: 'NE', NW: 'NW', S: 'S', SE: 'SE', SW: 'SW', W: 'W'}\n    test 951 nd.name: name\n    test 952 nd.named: name\n    test 953 nd.named: Neighbors8Dict\n    test 954 nd.name: test\n    test 955 nd.test: test\n# imported pygeodesy.basics into errors.py line 443\n    test 956 nd.test: None\n    test 957 nd.classnaming: False\n    test 958 nd.classname: Neighbors8Dict\n    test 959 nd.named2: Neighbors8Dict 'test'\n    test 960 nd.classnaming: True\n    test 961 nd.classname: geohash.Neighbors8Dict\n    test 962 nd.named2: geohash.Neighbors8Dict 'test'\n    test 963 delattr: None\n    test 964 classnaming: False\n    test 965 classnaming: True\n\n    testing unregister (pygeodesy.named, 26.01.14)\n# lazily imported pygeodesy.Conics from .lcc by testNamed.py line 198\n# lazily imported pygeodesy.Ellipsoid from .ellipsoids by testNamed.py line 198\n# lazily imported pygeodesy.Ellipsoids from .ellipsoids by testNamed.py line 198\n# lazily imported pygeodesy.RefFrames from .trf by testNamed.py line 198\n# lazily imported pygeodesy.Transforms from .datums by testNamed.py line 198\n    test 966 Conics: 1\n    test 967 Conics: 8\n    test 968 Conics.Be08Lb.unregister: None\n    test 969 Conics.Be72Lb.unregister: None\n    test 970 Conics.Fr93Lb.unregister: None\n    test 971 Conics.MaNLb.unregister: None\n    test 972 Conics.MxLb.unregister: None\n    test 973 Conics.PyT_Lb.unregister: None\n    test 974 Conics.USA_Lb.unregister: None\n    test 975 Conics.WRF_Lb.unregister: None\n    test 976 Conics: 0\n\n    test 977 Datums: 6\n    test 978 Datums: 18\n    test 979 Datums.unregister(BD72): None\n    test 980 Datums.unregister(DHDN): None\n    test 981 Datums.unregister(ED50): None\n    test 982 Datums.unregister(GDA2020): None\n    test 983 Datums.unregister(GRS80): None\n    test 984 Datums.unregister(Irl1975): None\n    test 985 Datums.unregister(Krassovski1940): None\n    test 986 Datums.unregister(Krassowsky1940): None\n    test 987 Datums.unregister(MGI): None\n    test 988 Datums.unregister(NAD27): None\n    test 989 Datums.unregister(NAD83): None\n    test 990 Datums.unregister(NTF): None\n    test 991 Datums.unregister(OSGB36): None\n    test 992 Datums.unregister(Potsdam): None\n    test 993 Datums.unregister(Sphere): None\n    test 994 Datums.unregister(TokyoJapan): None\n    test 995 Datums.unregister(WGS72): None\n    test 996 Datums.unregister(WGS84): None\n    test 997 Datums: 0\n\n    test 998 RefFrames: 32  FAILED, KNOWN, expected 0\n    test 999 RefFrames: 36\n    test 1000 RefFrames.ETRF2000.unregister: None\n    test 1001 RefFrames.ETRF2005.unregister: None\n    test 1002 RefFrames.ETRF2008.unregister: None\n    test 1003 RefFrames.ETRF2014.unregister: None\n    test 1004 RefFrames.ETRF2020.unregister: None\n    test 1005 RefFrames.ETRF88.unregister: None\n    test 1006 RefFrames.ETRF89.unregister: None\n    test 1007 RefFrames.ETRF90.unregister: None\n    test 1008 RefFrames.ETRF91.unregister: None\n    test 1009 RefFrames.ETRF92.unregister: None\n    test 1010 RefFrames.ETRF93.unregister: None\n    test 1011 RefFrames.ETRF94.unregister: None\n    test 1012 RefFrames.ETRF96.unregister: None\n    test 1013 RefFrames.ETRF97.unregister: None\n    test 1014 RefFrames.GDA2020.unregister: None\n    test 1015 RefFrames.GDA94.unregister: None\n    test 1016 RefFrames.ITRF2000.unregister: None\n    test 1017 RefFrames.ITRF2005.unregister: None\n    test 1018 RefFrames.ITRF2008.unregister: None\n    test 1019 RefFrames.ITRF2014.unregister: None\n    test 1020 RefFrames.ITRF2020.unregister: None\n    test 1021 RefFrames.ITRF88.unregister: None\n    test 1022 RefFrames.ITRF89.unregister: None\n    test 1023 RefFrames.ITRF90.unregister: None\n    test 1024 RefFrames.ITRF91.unregister: None\n    test 1025 RefFrames.ITRF92.unregister: None\n    test 1026 RefFrames.ITRF93.unregister: None\n    test 1027 RefFrames.ITRF94.unregister: None\n    test 1028 RefFrames.ITRF96.unregister: None\n    test 1029 RefFrames.ITRF97.unregister: None\n    test 1030 RefFrames.NAD83.unregister: None\n    test 1031 RefFrames.NAD83cors96.unregister: None\n    test 1032 RefFrames.WGS84.unregister: None\n    test 1033 RefFrames.WGS84g1150.unregister: None\n    test 1034 RefFrames.WGS84g1674.unregister: None\n    test 1035 RefFrames.WGS84g1762.unregister: None\n    test 1036 RefFrames: 0\n\n    test 1037 Ellipsoids: 12\n    test 1038 Ellipsoids: 49\n    test 1039 Ellipsoids.Airy1830.unregister: None\n    test 1040 Ellipsoids.AiryModified.unregister: None\n    test 1041 Ellipsoids.ATS1977.unregister: None\n    test 1042 Ellipsoids.Australia1966.unregister: None\n    test 1043 Ellipsoids.Bessel1841.unregister: None\n    test 1044 Ellipsoids.BesselModified.unregister: None\n    test 1045 Ellipsoids.CGCS2000.unregister: None\n    test 1046 Ellipsoids.Clarke1866.unregister: None\n    test 1047 Ellipsoids.Clarke1880.unregister: None\n    test 1048 Ellipsoids.Clarke1880IGN.unregister: None\n    test 1049 Ellipsoids.Clarke1880Mod.unregister: None\n    test 1050 Ellipsoids.CPM1799.unregister: None\n    test 1051 Ellipsoids.Delambre1810.unregister: None\n    test 1052 Ellipsoids.Engelis1985.unregister: None\n    test 1053 Ellipsoids.Everest1969.unregister: None\n    test 1054 Ellipsoids.Everest1975.unregister: None\n    test 1055 Ellipsoids.Fisher1968.unregister: None\n    test 1056 Ellipsoids.GEM10C.unregister: None\n    test 1057 Ellipsoids.GPES.unregister: None\n    test 1058 Ellipsoids.GRS67.unregister: None\n    test 1059 Ellipsoids.GRS80.unregister: None\n    test 1060 Ellipsoids.Helmert1906.unregister: None\n    test 1061 Ellipsoids.IAU76.unregister: None\n    test 1062 Ellipsoids.IERS1989.unregister: None\n    test 1063 Ellipsoids.IERS1992TOPEX.unregister: None\n    test 1064 Ellipsoids.IERS2003.unregister: None\n    test 1065 Ellipsoids.Intl1924.unregister: None\n    test 1066 Ellipsoids.Intl1967.unregister: None\n    test 1067 Ellipsoids.Krassovski1940.unregister: None\n    test 1068 Ellipsoids.Krassowsky1940.unregister: None\n    test 1069 Ellipsoids.Maupertuis1738.unregister: None\n    test 1070 Ellipsoids.Mercury1960.unregister: None\n    test 1071 Ellipsoids.Mercury1968Mod.unregister: None\n    test 1072 Ellipsoids.NWL1965.unregister: None\n    test 1073 Ellipsoids.OSU86F.unregister: None\n    test 1074 Ellipsoids.OSU91A.unregister: None\n    test 1075 Ellipsoids.Plessis1817.unregister: None\n    test 1076 Ellipsoids.PZ90.unregister: None\n    test 1077 Ellipsoids.SGS85.unregister: None\n    test 1078 Ellipsoids.SoAmerican1969.unregister: None\n    test 1079 Ellipsoids.Sphere.unregister: None\n    test 1080 Ellipsoids.SphereAuthalic.unregister: None\n    test 1081 Ellipsoids.SpherePopular.unregister: None\n    test 1082 Ellipsoids.Struve1860.unregister: None\n    test 1083 Ellipsoids.WGS60.unregister: None\n    test 1084 Ellipsoids.WGS66.unregister: None\n    test 1085 Ellipsoids.WGS72.unregister: None\n    test 1086 Ellipsoids.WGS84.unregister: None\n    test 1087 Ellipsoids.WGS84_NGS.unregister: None\n    test 1088 Ellipsoids: 0\n\n    test 1089 Transforms: 16\n    test 1090 Transforms: 20\n    test 1091 Transforms.BD72.unregister: None\n    test 1092 Transforms.Bessel1841.unregister: None\n    test 1093 Transforms.Clarke1866.unregister: None\n    test 1094 Transforms.DHDN.unregister: None\n    test 1095 Transforms.DHDNE.unregister: None\n    test 1096 Transforms.DHDNW.unregister: None\n    test 1097 Transforms.ED50.unregister: None\n    test 1098 Transforms.Identity.unregister: None\n    test 1099 Transforms.Irl1965.unregister: None\n    test 1100 Transforms.Irl1975.unregister: None\n    test 1101 Transforms.Krassovski1940.unregister: None\n    test 1102 Transforms.Krassowsky1940.unregister: None\n    test 1103 Transforms.MGI.unregister: None\n    test 1104 Transforms.NAD27.unregister: None\n    test 1105 Transforms.NAD83.unregister: None\n    test 1106 Transforms.NTF.unregister: None\n    test 1107 Transforms.OSGB36.unregister: None\n    test 1108 Transforms.TokyoJapan.unregister: None\n    test 1109 Transforms.WGS72.unregister: None\n    test 1110 Transforms.WGS84.unregister: None\n    test 1111 Transforms: 0\n\n    test 1112 nameof: KsOrder\n\n    10 of 1112 testNamed.py tests (0.9%) FAILED, ALL KNOWN (pygeodesy 26.3.26 Python 3.12.10 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 2.1.0 scipy 1.14.1 Math 2 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 isLazy 3 -W  default) 111.424 ms\nrunning /usr/local/bin/p....n3.12 -W default ~/PyGeodesy/test/testNamedTuples.py\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.FIx from .units by testNamedTuples.py line 10\n\n    testing testNamedTuples.py 25.12.06 isLazy=3\n    test 1 pygeodesy.albers: Albers7Tuple(x=0.5, y=0.5, lat=0.5, lon=0.5, gamma=0.5, scale=0.5, datum=0.5)\n    test 2 pygeodesy.albers: Albers7Tuple(x=Meter, y=Meter, lat=Lat, lon=Lon, gamma=Bearing, scale=_Pass, datum=_Pass)\n    test 3 pygeodesy.albers.Albers7Tuple.x: 0.5\n    test 4 pygeodesy.albers.Albers7Tuple.y: 0.5\n    test 5 pygeodesy.albers.Albers7Tuple.lat: 0.5\n    test 6 pygeodesy.albers.Albers7Tuple.lon: 0.5\n    test 7 pygeodesy.albers.Albers7Tuple.gamma: 0.5\n    test 8 pygeodesy.albers.Albers7Tuple.scale: 0.5\n    test 9 pygeodesy.albers.Albers7Tuple.datum: 0.5\n    test 10 pygeodesy.albers.Albers7Tuple._validated: True\n    test 11 pygeodesy.albers.Albers7Tuple._validated: True\n    test 12 pygeodesy.angles: _Ang3Tuple(Ang=Ang, Ang=Ang, Ang=_Pass)\n    test 13 pygeodesy.angles._Ang3Tuple.Ang: 0.5\n    test 14 pygeodesy.angles._Ang3Tuple.Ang: 0.5\n    test 15 pygeodesy.angles._Ang3Tuple.Ang: 0.5\n    test 16 pygeodesy.angles._Ang3Tuple._validated: True\n    test 17 pygeodesy.angles._Ang3Tuple._validated: True\n# lazily imported pygeodesy.azimuthal by bases.py line 199\n    test 18 pygeodesy.azimuthal: Azimuthal7Tuple(x=0.5, y=0.5, lat=0.5, lon=0.5, azimuth=0.5, scale=0.5, datum=0.5)\n    test 19 pygeodesy.azimuthal: Azimuthal7Tuple(x=Easting, y=Northing, lat=Lat_, lon=Lon_, azimuth=Azimuth, scale=Scalar, datum=_Pass)\n    test 20 pygeodesy.azimuthal.Azimuthal7Tuple.x: 0.5\n    test 21 pygeodesy.azimuthal.Azimuthal7Tuple.y: 0.5\n    test 22 pygeodesy.azimuthal.Azimuthal7Tuple.lat: 0.5\n    test 23 pygeodesy.azimuthal.Azimuthal7Tuple.lon: 0.5\n    test 24 pygeodesy.azimuthal.Azimuthal7Tuple.azimuth: 0.5\n    test 25 pygeodesy.azimuthal.Azimuthal7Tuple.scale: 0.5\n    test 26 pygeodesy.azimuthal.Azimuthal7Tuple.datum: 0.5\n    test 27 pygeodesy.azimuthal.Azimuthal7Tuple._validated: True\n    test 28 pygeodesy.azimuthal.Azimuthal7Tuple._validated: True\n# lazily imported pygeodesy.booleans by bases.py line 199\n    test 29 pygeodesy.cartesianBase: RadiusThetaPhi3Tuple(r=0.5, theta=0.5, phi=0.5)\n    test 30 pygeodesy.cartesianBase: RadiusThetaPhi3Tuple(r=Meter, theta=_Pass, phi=_Pass)\n    test 31 pygeodesy.cartesianBase.RadiusThetaPhi3Tuple.r: 0.5\n    test 32 pygeodesy.cartesianBase.RadiusThetaPhi3Tuple.theta: 0.5\n    test 33 pygeodesy.cartesianBase.RadiusThetaPhi3Tuple.phi: 0.5\n    test 34 pygeodesy.cartesianBase.RadiusThetaPhi3Tuple._validated: True\n    test 35 pygeodesy.cartesianBase.RadiusThetaPhi3Tuple._validated: True\n# lazily imported pygeodesy.clipy by bases.py line 199\n    test 36 pygeodesy.clipy: ClipCS4Tuple(start=0.5, end=0.5, i=0, j=0)\n    test 37 pygeodesy.clipy: ClipCS4Tuple(start=_Pass, end=_Pass, i=Number_, j=Number_)\n    test 38 pygeodesy.clipy.ClipCS4Tuple.start: 0.5\n    test 39 pygeodesy.clipy.ClipCS4Tuple.end: 0.5\n    test 40 pygeodesy.clipy.ClipCS4Tuple.i: 0.5\n    test 41 pygeodesy.clipy.ClipCS4Tuple.j: 0.5\n    test 42 pygeodesy.clipy.ClipCS4Tuple._validated: True\n    test 43 pygeodesy.clipy.ClipCS4Tuple._validated: True\n    test 44 pygeodesy.clipy: ClipFHP4Tuple(lat=0.5, lon=0.5, height=0.5, clipid=0)\n    test 45 pygeodesy.clipy: ClipFHP4Tuple(lat=Lat, lon=Lon, height=_Pass, clipid=Number_)\n    test 46 pygeodesy.clipy.ClipFHP4Tuple.lat: 0.5\n    test 47 pygeodesy.clipy.ClipFHP4Tuple.lon: 0.5\n    test 48 pygeodesy.clipy.ClipFHP4Tuple.height: 0.5\n    test 49 pygeodesy.clipy.ClipFHP4Tuple.clipid: 0.5\n    test 50 pygeodesy.clipy.ClipFHP4Tuple._validated: True\n    test 51 pygeodesy.clipy.ClipFHP4Tuple._validated: True\n    test 52 pygeodesy.clipy: ClipGH4Tuple(lat=0.5, lon=0.5, height=0.5, clipid=0)\n    test 53 pygeodesy.clipy: ClipGH4Tuple(lat=Lat, lon=Lon, height=_Pass, clipid=Number_)\n    test 54 pygeodesy.clipy.ClipGH4Tuple.lat: 0.5\n    test 55 pygeodesy.clipy.ClipGH4Tuple.lon: 0.5\n    test 56 pygeodesy.clipy.ClipGH4Tuple.height: 0.5\n    test 57 pygeodesy.clipy.ClipGH4Tuple.clipid: 0.5\n    test 58 pygeodesy.clipy.ClipGH4Tuple._validated: True\n    test 59 pygeodesy.clipy.ClipGH4Tuple._validated: True\n    test 60 pygeodesy.clipy: ClipLB6Tuple(start=0.5, end=0.5, i=0, fi=0.5, fj=0.5, j=0)\n    test 61 pygeodesy.clipy: ClipLB6Tuple(start=_Pass, end=_Pass, i=Number_, fi=_Pass, fj=_Pass, j=Number_)\n    test 62 pygeodesy.clipy.ClipLB6Tuple.start: 0.5\n    test 63 pygeodesy.clipy.ClipLB6Tuple.end: 0.5\n    test 64 pygeodesy.clipy.ClipLB6Tuple.i: 0.5\n    test 65 pygeodesy.clipy.ClipLB6Tuple.fi: 0.5\n    test 66 pygeodesy.clipy.ClipLB6Tuple.fj: 0.5\n    test 67 pygeodesy.clipy.ClipLB6Tuple.j: 0.5\n    test 68 pygeodesy.clipy.ClipLB6Tuple._validated: True\n    test 69 pygeodesy.clipy.ClipLB6Tuple._validated: True\n    test 70 pygeodesy.clipy: ClipSH3Tuple(start=0.5, end=0.5, original=True)\n    test 71 pygeodesy.clipy: ClipSH3Tuple(start=_Pass, end=_Pass, original=Bool)\n    test 72 pygeodesy.clipy.ClipSH3Tuple.start: 0.5\n    test 73 pygeodesy.clipy.ClipSH3Tuple.end: 0.5\n    test 74 pygeodesy.clipy.ClipSH3Tuple.original: 0.5\n    test 75 pygeodesy.clipy.ClipSH3Tuple._validated: True\n    test 76 pygeodesy.clipy.ClipSH3Tuple._validated: True\n# lazily imported pygeodesy.css by bases.py line 199\n    test 77 pygeodesy.css: EasNorAziRk4Tuple(easting=0.5, northing=0.5, azimuth=0.5, reciprocal=0.5)\n    test 78 pygeodesy.css: EasNorAziRk4Tuple(easting=Easting, northing=Northing, azimuth=Azimuth, reciprocal=Scalar)\n    test 79 pygeodesy.css.EasNorAziRk4Tuple.easting: 0.5\n    test 80 pygeodesy.css.EasNorAziRk4Tuple.northing: 0.5\n    test 81 pygeodesy.css.EasNorAziRk4Tuple.azimuth: 0.5\n    test 82 pygeodesy.css.EasNorAziRk4Tuple.reciprocal: 0.5\n    test 83 pygeodesy.css.EasNorAziRk4Tuple._validated: True\n    test 84 pygeodesy.css.EasNorAziRk4Tuple._validated: True\n    test 85 pygeodesy.css: EasNorAziRkEqu6Tuple(easting=0.5, northing=0.5, azimuth=0.5, reciprocal=0.5, equatorarc=0.5, equatorazimuth=0.5)\n    test 86 pygeodesy.css: EasNorAziRkEqu6Tuple(easting=Easting, northing=Northing, azimuth=Azimuth, reciprocal=Scalar, equatorarc=Degrees, equatorazimuth=Azimuth)\n    test 87 pygeodesy.css.EasNorAziRkEqu6Tuple.easting: 0.5\n    test 88 pygeodesy.css.EasNorAziRkEqu6Tuple.northing: 0.5\n    test 89 pygeodesy.css.EasNorAziRkEqu6Tuple.azimuth: 0.5\n    test 90 pygeodesy.css.EasNorAziRkEqu6Tuple.reciprocal: 0.5\n    test 91 pygeodesy.css.EasNorAziRkEqu6Tuple.equatorarc: 0.5\n    test 92 pygeodesy.css.EasNorAziRkEqu6Tuple.equatorazimuth: 0.5\n    test 93 pygeodesy.css.EasNorAziRkEqu6Tuple._validated: True\n    test 94 pygeodesy.css.EasNorAziRkEqu6Tuple._validated: True\n    test 95 pygeodesy.css: LatLonAziRk4Tuple(lat=0.5, lon=0.5, azimuth=0.5, reciprocal=0.5)\n    test 96 pygeodesy.css: LatLonAziRk4Tuple(lat=Lat_, lon=Lon_, azimuth=Azimuth, reciprocal=Scalar)\n    test 97 pygeodesy.css.LatLonAziRk4Tuple.lat: 0.5\n    test 98 pygeodesy.css.LatLonAziRk4Tuple.lon: 0.5\n    test 99 pygeodesy.css.LatLonAziRk4Tuple.azimuth: 0.5\n    test 100 pygeodesy.css.LatLonAziRk4Tuple.reciprocal: 0.5\n    test 101 pygeodesy.css.LatLonAziRk4Tuple._validated: True\n    test 102 pygeodesy.css.LatLonAziRk4Tuple._validated: True\n# lazily imported pygeodesy.ecef by bases.py line 199\n    test 103 pygeodesy.ecef: Ecef9Tuple(x=0.5, y=0.5, z=0.5, lat=0.5, lon=0.5, height=0.5, C=0, M=0.5, datum=0.5)\n    test 104 pygeodesy.ecef: Ecef9Tuple(x=Meter, y=Meter, z=Meter, lat=Lat, lon=Lon, height=Height, C=Int, M=_Pass, datum=_Pass)\n    test 105 pygeodesy.ecef.Ecef9Tuple.x: 0.5\n    test 106 pygeodesy.ecef.Ecef9Tuple.y: 0.5\n    test 107 pygeodesy.ecef.Ecef9Tuple.z: 0.5\n    test 108 pygeodesy.ecef.Ecef9Tuple.lat: 0.5\n    test 109 pygeodesy.ecef.Ecef9Tuple.lon: 0.5\n    test 110 pygeodesy.ecef.Ecef9Tuple.height: 0.5\n    test 111 pygeodesy.ecef.Ecef9Tuple.C: 0.5\n    test 112 pygeodesy.ecef.Ecef9Tuple.M: 0.5\n    test 113 pygeodesy.ecef.Ecef9Tuple.datum: 0.5\n    test 114 pygeodesy.ecef.Ecef9Tuple._validated: True\n    test 115 pygeodesy.ecef.Ecef9Tuple._validated: True\n    test 116 pygeodesy.ecef: EcefMatrix(_0_0_=0.5, _0_1_=0.5, _0_2_=0.5, _1_0_=0.5, _1_1_=0.5, _1_2_=0.5, _2_0_=0.5, _2_1_=0.5, _2_2_=0.5)\n    test 117 pygeodesy.ecef: EcefMatrix(_0_0_=Scalar, _0_1_=Scalar, _0_2_=Scalar, _1_0_=Scalar, _1_1_=Scalar, _1_2_=Scalar, _2_0_=Scalar, _2_1_=Scalar, _2_2_=Scalar)\n    test 118 pygeodesy.ecef.EcefMatrix._0_0_: 0.5\n    test 119 pygeodesy.ecef.EcefMatrix._0_1_: 0.5\n    test 120 pygeodesy.ecef.EcefMatrix._0_2_: 0.5\n    test 121 pygeodesy.ecef.EcefMatrix._1_0_: 0.5\n    test 122 pygeodesy.ecef.EcefMatrix._1_1_: 0.5\n    test 123 pygeodesy.ecef.EcefMatrix._1_2_: 0.5\n    test 124 pygeodesy.ecef.EcefMatrix._2_0_: 0.5\n    test 125 pygeodesy.ecef.EcefMatrix._2_1_: 0.5\n    test 126 pygeodesy.ecef.EcefMatrix._2_2_: 0.5\n    test 127 pygeodesy.ecef.EcefMatrix._validated: True\n    test 128 pygeodesy.ecef.EcefMatrix._validated: True\n# lazily imported pygeodesy.elevations by bases.py line 199\n    test 129 pygeodesy.elevations: Elevation2Tuple(elevation=0.5, data_source='0.5')\n    test 130 pygeodesy.elevations: Elevation2Tuple(elevation=Meter, data_source=Str)\n    test 131 pygeodesy.elevations.Elevation2Tuple.elevation: 0.5\n    test 132 pygeodesy.elevations.Elevation2Tuple.data_source: 0.5\n    test 133 pygeodesy.elevations.Elevation2Tuple._validated: True\n    test 134 pygeodesy.elevations.Elevation2Tuple._validated: True\n    test 135 pygeodesy.elevations: GeoidHeight2Tuple(height=0.5, model_name='0.5')\n    test 136 pygeodesy.elevations: GeoidHeight2Tuple(height=Meter, model_name=Str)\n    test 137 pygeodesy.elevations.GeoidHeight2Tuple.height: 0.5\n    test 138 pygeodesy.elevations.GeoidHeight2Tuple.model_name: 0.5\n    test 139 pygeodesy.elevations.GeoidHeight2Tuple._validated: True\n    test 140 pygeodesy.elevations.GeoidHeight2Tuple._validated: True\n# lazily imported pygeodesy.ellipses by bases.py line 199\n# lazily imported pygeodesy.ellipsoidalBaseDI by bases.py line 199\n# lazily imported pygeodesy.ellipsoidalExact by bases.py line 199\n# lazily imported pygeodesy.ellipsoidalGeodSolve by bases.py line 199\n# lazily imported pygeodesy.ellipsoidalKarney by bases.py line 199\n# lazily imported pygeodesy.ellipsoidalNvector by bases.py line 199\n# lazily imported pygeodesy.ellipsoidalVincenty by bases.py line 199\n    test 141 pygeodesy.ellipsoids: Curvature2Tuple(meridional=0.5, prime_vertical=0.5)\n    test 142 pygeodesy.ellipsoids: Curvature2Tuple(meridional=Meter, prime_vertical=Meter)\n    test 143 pygeodesy.ellipsoids.Curvature2Tuple.meridional: 0.5\n    test 144 pygeodesy.ellipsoids.Curvature2Tuple.prime_vertical: 0.5\n    test 145 pygeodesy.ellipsoids.Curvature2Tuple._validated: True\n    test 146 pygeodesy.ellipsoids.Curvature2Tuple._validated: True\n    test 147 pygeodesy.ellipsoids: a_f2Tuple(a=0.5, f=0.5)\n    test 148 pygeodesy.ellipsoids: a_f2Tuple(a=_Pass, f=_Pass)\n    test 149 pygeodesy.ellipsoids.a_f2Tuple.a: 0.5\n    test 150 pygeodesy.ellipsoids.a_f2Tuple.f: 0.5\n    test 151 pygeodesy.ellipsoids.a_f2Tuple._validated: True\n    test 152 pygeodesy.ellipsoids.a_f2Tuple._validated: True\n# lazily imported pygeodesy.elliptic by bases.py line 199\n    test 153 pygeodesy.elliptic: Elliptic3Tuple(sn=0.5, cn=0.5, dn=0.5)\n    test 154 pygeodesy.elliptic: Elliptic3Tuple(sn=Scalar, cn=Scalar, dn=Scalar)\n    test 155 pygeodesy.elliptic.Elliptic3Tuple.sn: 0.5\n    test 156 pygeodesy.elliptic.Elliptic3Tuple.cn: 0.5\n    test 157 pygeodesy.elliptic.Elliptic3Tuple.dn: 0.5\n    test 158 pygeodesy.elliptic.Elliptic3Tuple._validated: True\n    test 159 pygeodesy.elliptic.Elliptic3Tuple._validated: True\n# lazily imported pygeodesy.epsg by bases.py line 199\n# lazily imported pygeodesy.etm by bases.py line 199\n    test 160 pygeodesy.formy: Radical2Tuple(ratio=0.5, xline=0.5)\n    test 161 pygeodesy.formy: Radical2Tuple(ratio=Scalar, xline=Scalar)\n    test 162 pygeodesy.formy.Radical2Tuple.ratio: 0.5\n    test 163 pygeodesy.formy.Radical2Tuple.xline: 0.5\n    test 164 pygeodesy.formy.Radical2Tuple._validated: True\n    test 165 pygeodesy.formy.Radical2Tuple._validated: True\n    test 166 pygeodesy.frechet: Frechet6Tuple(fd=0.5, fi1=0.5, fi2=0.5, r=0, n=0, units='test')\n    test 167 pygeodesy.frechet: Frechet6Tuple(fd=_Pass, fi1=FIx, fi2=FIx, r=Number_, n=Number_, units=_Pass)\n    test 168 pygeodesy.frechet.Frechet6Tuple.fd: 0.5\n    test 169 pygeodesy.frechet.Frechet6Tuple.fi1: 0.5\n    test 170 pygeodesy.frechet.Frechet6Tuple.fi2: 0.5\n    test 171 pygeodesy.frechet.Frechet6Tuple.r: 0.5\n    test 172 pygeodesy.frechet.Frechet6Tuple.n: 0.5\n    test 173 pygeodesy.frechet.Frechet6Tuple.units: <bound method _NamedTuple.units of Frechet6Tuple(fd=0.5, fi1=0.5, fi2=0.5, r=0.5, n=0.5, units='test')>\n    test 174 pygeodesy.frechet.Frechet6Tuple._validated: True\n    test 175 pygeodesy.frechet.Frechet6Tuple._validated: True\n# lazily imported pygeodesy.fstats by bases.py line 199\n    test 176 pygeodesy.fsums: Fsum2Tuple(fsum=0.5, residual=0.5)\n    test 177 pygeodesy.fsums: Fsum2Tuple(fsum=_Float_Int, residual=_Float_Int)\n    test 178 pygeodesy.fsums.Fsum2Tuple.fsum: 0.5\n    test 179 pygeodesy.fsums.Fsum2Tuple.residual: 0.5\n    test 180 pygeodesy.fsums.Fsum2Tuple._validated: True\n    test 181 pygeodesy.fsums.Fsum2Tuple._validated: True\n# lazily imported pygeodesy.gars by bases.py line 199\n# lazily imported pygeodesy.geod3solve by bases.py line 199\n    test 182 pygeodesy.geod3solve: Geod3Solve8Tuple(bet1=Deg, omg1=Deg, alp1=Deg, bet2=Deg, omg2=Deg, alp2=Deg, s12=Meter, a12=Deg)\n    test 183 pygeodesy.geod3solve.Geod3Solve8Tuple.bet1: 0.5\n    test 184 pygeodesy.geod3solve.Geod3Solve8Tuple.omg1: 0.5\n    test 185 pygeodesy.geod3solve.Geod3Solve8Tuple.alp1: 0.5\n    test 186 pygeodesy.geod3solve.Geod3Solve8Tuple.bet2: 0.5\n    test 187 pygeodesy.geod3solve.Geod3Solve8Tuple.omg2: 0.5\n    test 188 pygeodesy.geod3solve.Geod3Solve8Tuple.alp2: 0.5\n    test 189 pygeodesy.geod3solve.Geod3Solve8Tuple.s12: 0.5\n    test 190 pygeodesy.geod3solve.Geod3Solve8Tuple.a12: 0.5\n    test 191 pygeodesy.geod3solve.Geod3Solve8Tuple._validated: True\n    test 192 pygeodesy.geod3solve.Geod3Solve8Tuple._validated: True\n# lazily imported pygeodesy.geodesici by bases.py line 199\n    test 193 pygeodesy.geodesici: Intersect7Tuple(A=0.5, B=0.5, sAB=0.5, aAB=0.5, c=0, kA=0, kB=0)\n    test 194 pygeodesy.geodesici: Intersect7Tuple(A=_Pass, B=_Pass, sAB=Meter, aAB=Degrees, c=Int, kA=Int, kB=Int)\n    test 195 pygeodesy.geodesici.Intersect7Tuple.A: 0.5\n    test 196 pygeodesy.geodesici.Intersect7Tuple.B: 0.5\n    test 197 pygeodesy.geodesici.Intersect7Tuple.sAB: 0.5\n    test 198 pygeodesy.geodesici.Intersect7Tuple.aAB: 0.5\n    test 199 pygeodesy.geodesici.Intersect7Tuple.c: 0.5\n    test 200 pygeodesy.geodesici.Intersect7Tuple.kA: 0.5\n    test 201 pygeodesy.geodesici.Intersect7Tuple.kB: 0.5\n    test 202 pygeodesy.geodesici.Intersect7Tuple._validated: True\n    test 203 pygeodesy.geodesici.Intersect7Tuple._validated: True\n    test 204 pygeodesy.geodesici: Intersectool5Tuple(A=0.5, B=0.5, sAB=0.5, aAB=0.5, c=0)\n    test 205 pygeodesy.geodesici: Intersectool5Tuple(A=_Pass, B=_Pass, sAB=Meter, aAB=Degrees, c=Int)\n    test 206 pygeodesy.geodesici.Intersectool5Tuple.A: 0.5\n    test 207 pygeodesy.geodesici.Intersectool5Tuple.B: 0.5\n    test 208 pygeodesy.geodesici.Intersectool5Tuple.sAB: 0.5\n    test 209 pygeodesy.geodesici.Intersectool5Tuple.aAB: 0.5\n    test 210 pygeodesy.geodesici.Intersectool5Tuple.c: 0.5\n    test 211 pygeodesy.geodesici.Intersectool5Tuple._validated: True\n    test 212 pygeodesy.geodesici.Intersectool5Tuple._validated: True\n    test 213 pygeodesy.geodesici: Intersector5Tuple(A=0.5, B=0.5, sAB=0.5, aAB=0.5, c=0)\n    test 214 pygeodesy.geodesici: Intersector5Tuple(A=_Pass, B=_Pass, sAB=Meter, aAB=Degrees, c=Int)\n    test 215 pygeodesy.geodesici.Intersector5Tuple.A: 0.5\n    test 216 pygeodesy.geodesici.Intersector5Tuple.B: 0.5\n    test 217 pygeodesy.geodesici.Intersector5Tuple.sAB: 0.5\n    test 218 pygeodesy.geodesici.Intersector5Tuple.aAB: 0.5\n    test 219 pygeodesy.geodesici.Intersector5Tuple.c: 0.5\n    test 220 pygeodesy.geodesici.Intersector5Tuple._validated: True\n    test 221 pygeodesy.geodesici.Intersector5Tuple._validated: True\n    test 222 pygeodesy.geodesici: Middle5Tuple(A=0.5, B=0.5, sMM=0.5, aMM=0.5, c=0)\n    test 223 pygeodesy.geodesici: Middle5Tuple(A=_Pass, B=_Pass, sMM=Meter, aMM=Degrees, c=Int)\n    test 224 pygeodesy.geodesici.Middle5Tuple.A: 0.5\n    test 225 pygeodesy.geodesici.Middle5Tuple.B: 0.5\n    test 226 pygeodesy.geodesici.Middle5Tuple.sMM: 0.5\n    test 227 pygeodesy.geodesici.Middle5Tuple.aMM: 0.5\n    test 228 pygeodesy.geodesici.Middle5Tuple.c: 0.5\n    test 229 pygeodesy.geodesici.Middle5Tuple._validated: True\n    test 230 pygeodesy.geodesici.Middle5Tuple._validated: True\n# lazily imported pygeodesy.geodesicw by bases.py line 199\n# lazily imported pygeodesy.geodsolve by bases.py line 199\n    test 231 pygeodesy.geodsolve: GeodSolve12Tuple(lat1=0.5, lon1=0.5, azi1=0.5, lat2=0.5, lon2=0.5, azi2=0.5, s12=0.5, a12=0.5, m12=0.5, M12=0.5, M21=0.5, S12=0.5)\n    test 232 pygeodesy.geodsolve: GeodSolve12Tuple(lat1=_Lat, lon1=_Lon, azi1=Azimuth, lat2=_Lat, lon2=_Lon, azi2=Azimuth, s12=Meter, a12=Degrees, m12=_Pass, M12=_Pass, M21=_Pass, S12=Meter2)\n    test 233 pygeodesy.geodsolve.GeodSolve12Tuple.lat1: 0.5\n    test 234 pygeodesy.geodsolve.GeodSolve12Tuple.lon1: 0.5\n    test 235 pygeodesy.geodsolve.GeodSolve12Tuple.azi1: 0.5\n    test 236 pygeodesy.geodsolve.GeodSolve12Tuple.lat2: 0.5\n    test 237 pygeodesy.geodsolve.GeodSolve12Tuple.lon2: 0.5\n    test 238 pygeodesy.geodsolve.GeodSolve12Tuple.azi2: 0.5\n    test 239 pygeodesy.geodsolve.GeodSolve12Tuple.s12: 0.5\n    test 240 pygeodesy.geodsolve.GeodSolve12Tuple.a12: 0.5\n    test 241 pygeodesy.geodsolve.GeodSolve12Tuple.m12: 0.5\n    test 242 pygeodesy.geodsolve.GeodSolve12Tuple.M12: 0.5\n    test 243 pygeodesy.geodsolve.GeodSolve12Tuple.M21: 0.5\n    test 244 pygeodesy.geodsolve.GeodSolve12Tuple.S12: 0.5\n    test 245 pygeodesy.geodsolve.GeodSolve12Tuple._validated: True\n    test 246 pygeodesy.geodsolve.GeodSolve12Tuple._validated: True\n# lazily imported pygeodesy.geohash by bases.py line 199\n    test 247 pygeodesy.geohash: Resolutions2Tuple(res1=0.5, res2=0.5)\n    test 248 pygeodesy.geohash: Resolutions2Tuple(res1=Degrees_, res2=Degrees_)\n    test 249 pygeodesy.geohash.Resolutions2Tuple.res1: 0.5\n    test 250 pygeodesy.geohash.Resolutions2Tuple.res2: 0.5\n    test 251 pygeodesy.geohash.Resolutions2Tuple._validated: True\n    test 252 pygeodesy.geohash.Resolutions2Tuple._validated: True\n    test 253 pygeodesy.geohash: Sizes3Tuple(height=0.5, width=0.5, radius=0.5)\n    test 254 pygeodesy.geohash: Sizes3Tuple(height=Meter, width=Meter, radius=Meter)\n    test 255 pygeodesy.geohash.Sizes3Tuple.height: 0.5\n    test 256 pygeodesy.geohash.Sizes3Tuple.width: 0.5\n    test 257 pygeodesy.geohash.Sizes3Tuple.radius: 0.5\n    test 258 pygeodesy.geohash.Sizes3Tuple._validated: True\n    test 259 pygeodesy.geohash.Sizes3Tuple._validated: True\n# lazily imported pygeodesy.geoids by bases.py line 199\n    test 260 pygeodesy.geoids: GeoidHeight5Tuple(lat=0.5, lon=0.5, egm84=0.5, egm96=0.5, egm2008=0.5)\n    test 261 pygeodesy.geoids: GeoidHeight5Tuple(lat=Lat, lon=Lon, egm84=Height, egm96=Height, egm2008=Height)\n    test 262 pygeodesy.geoids.GeoidHeight5Tuple.lat: 0.5\n    test 263 pygeodesy.geoids.GeoidHeight5Tuple.lon: 0.5\n    test 264 pygeodesy.geoids.GeoidHeight5Tuple.egm84: 0.5\n    test 265 pygeodesy.geoids.GeoidHeight5Tuple.egm96: 0.5\n    test 266 pygeodesy.geoids.GeoidHeight5Tuple.egm2008: 0.5\n    test 267 pygeodesy.geoids.GeoidHeight5Tuple._validated: True\n    test 268 pygeodesy.geoids.GeoidHeight5Tuple._validated: True\n    test 269 pygeodesy.hausdorff: Hausdorff6Tuple(hd=0.5, i=0, j=0, mn=0, md=0.5, units='test')\n    test 270 pygeodesy.hausdorff: Hausdorff6Tuple(hd=_Pass, i=Number_, j=Number_, mn=Number_, md=_Pass, units=_Pass)\n    test 271 pygeodesy.hausdorff.Hausdorff6Tuple.hd: 0.5\n    test 272 pygeodesy.hausdorff.Hausdorff6Tuple.i: 0.5\n    test 273 pygeodesy.hausdorff.Hausdorff6Tuple.j: 0.5\n    test 274 pygeodesy.hausdorff.Hausdorff6Tuple.mn: 0.5\n    test 275 pygeodesy.hausdorff.Hausdorff6Tuple.md: 0.5\n    test 276 pygeodesy.hausdorff.Hausdorff6Tuple.units: <bound method _NamedTuple.units of Hausdorff6Tuple(hd=0.5, i=0.5, j=0.5, mn=0.5, md=0.5, units='test')>\n    test 277 pygeodesy.hausdorff.Hausdorff6Tuple._validated: True\n    test 278 pygeodesy.hausdorff.Hausdorff6Tuple._validated: True\n    test 279 pygeodesy.karney: Area3Tuple(number=0, perimeter=0.5, area=0.5)\n    test 280 pygeodesy.karney: Area3Tuple(number=Number_, perimeter=Meter, area=Meter2)\n    test 281 pygeodesy.karney.Area3Tuple.number: 0.5\n    test 282 pygeodesy.karney.Area3Tuple.perimeter: 0.5\n    test 283 pygeodesy.karney.Area3Tuple.area: 0.5\n    test 284 pygeodesy.karney.Area3Tuple._validated: True\n    test 285 pygeodesy.karney.Area3Tuple._validated: True\n    test 286 pygeodesy.karney: Direct9Tuple(a12=0.5, lat2=0.5, lon2=0.5, azi2=0.5, s12=0.5, m12=0.5, M12=0.5, M21=0.5, S12=0.5)\n    test 287 pygeodesy.karney: Direct9Tuple(a12=Azimuth, lat2=_Lat, lon2=_Lon, azi2=Azimuth, s12=Meter, m12=_Pass, M12=_Pass, M21=_Pass, S12=Meter2)\n    test 288 pygeodesy.karney.Direct9Tuple.a12: 0.5\n    test 289 pygeodesy.karney.Direct9Tuple.lat2: 0.5\n    test 290 pygeodesy.karney.Direct9Tuple.lon2: 0.5\n    test 291 pygeodesy.karney.Direct9Tuple.azi2: 0.5\n    test 292 pygeodesy.karney.Direct9Tuple.s12: 0.5\n    test 293 pygeodesy.karney.Direct9Tuple.m12: 0.5\n    test 294 pygeodesy.karney.Direct9Tuple.M12: 0.5\n    test 295 pygeodesy.karney.Direct9Tuple.M21: 0.5\n    test 296 pygeodesy.karney.Direct9Tuple.S12: 0.5\n    test 297 pygeodesy.karney.Direct9Tuple._validated: True\n    test 298 pygeodesy.karney.Direct9Tuple._validated: True\n    test 299 pygeodesy.karney: Inverse10Tuple(a12=0.5, s12=0.5, salp1=0.5, calp1=0.5, salp2=0.5, calp2=0.5, m12=0.5, M12=0.5, M21=0.5, S12=0.5)\n    test 300 pygeodesy.karney: Inverse10Tuple(a12=Azimuth, s12=Meter, salp1=_Pass, calp1=_Pass, salp2=_Pass, calp2=_Pass, m12=_Pass, M12=_Pass, M21=_Pass, S12=Meter2)\n    test 301 pygeodesy.karney.Inverse10Tuple.a12: 0.5\n    test 302 pygeodesy.karney.Inverse10Tuple.s12: 0.5\n    test 303 pygeodesy.karney.Inverse10Tuple.salp1: 0.5\n    test 304 pygeodesy.karney.Inverse10Tuple.calp1: 0.5\n    test 305 pygeodesy.karney.Inverse10Tuple.salp2: 0.5\n    test 306 pygeodesy.karney.Inverse10Tuple.calp2: 0.5\n    test 307 pygeodesy.karney.Inverse10Tuple.m12: 0.5\n    test 308 pygeodesy.karney.Inverse10Tuple.M12: 0.5\n    test 309 pygeodesy.karney.Inverse10Tuple.M21: 0.5\n    test 310 pygeodesy.karney.Inverse10Tuple.S12: 0.5\n    test 311 pygeodesy.karney.Inverse10Tuple._validated: True\n    test 312 pygeodesy.karney.Inverse10Tuple._validated: True\n    test 313 pygeodesy.karney: Rhumb8Tuple(lat1=0.5, lon1=0.5, lat2=0.5, lon2=0.5, azi12=0.5, s12=0.5, S12=0.5, a12=0.5)\n    test 314 pygeodesy.karney: Rhumb8Tuple(lat1=Lat, lon1=Lon, lat2=Lat, lon2=Lon, azi12=Azimuth, s12=Meter, S12=Meter2, a12=Degrees)\n    test 315 pygeodesy.karney.Rhumb8Tuple.lat1: 0.5\n    test 316 pygeodesy.karney.Rhumb8Tuple.lon1: 0.5\n    test 317 pygeodesy.karney.Rhumb8Tuple.lat2: 0.5\n    test 318 pygeodesy.karney.Rhumb8Tuple.lon2: 0.5\n    test 319 pygeodesy.karney.Rhumb8Tuple.azi12: 0.5\n    test 320 pygeodesy.karney.Rhumb8Tuple.s12: 0.5\n    test 321 pygeodesy.karney.Rhumb8Tuple.S12: 0.5\n    test 322 pygeodesy.karney.Rhumb8Tuple.a12: 0.5\n    test 323 pygeodesy.karney.Rhumb8Tuple._validated: True\n    test 324 pygeodesy.karney.Rhumb8Tuple._validated: True\n# lazily imported pygeodesy.ktm by bases.py line 199\n# lazily imported pygeodesy.lcc by bases.py line 199\n# lazily imported pygeodesy.ltp by bases.py line 199\n    test 325 pygeodesy.ltpTuples: Aer4Tuple(azimuth=0.5, elevation=0.5, slantrange=0.5, ltp=0.5)\n    test 326 pygeodesy.ltpTuples: Aer4Tuple(azimuth=Meter, elevation=Meter, slantrange=Meter, ltp=_Pass)\n    test 327 pygeodesy.ltpTuples.Aer4Tuple.azimuth: 0.5\n    test 328 pygeodesy.ltpTuples.Aer4Tuple.elevation: 0.5\n    test 329 pygeodesy.ltpTuples.Aer4Tuple.slantrange: 0.5\n    test 330 pygeodesy.ltpTuples.Aer4Tuple.ltp: 0.5\n    test 331 pygeodesy.ltpTuples.Aer4Tuple._validated: True\n    test 332 pygeodesy.ltpTuples.Aer4Tuple._validated: True\n    test 333 pygeodesy.ltpTuples: Attitude4Tuple(alt=0.5, tilt=0.5, yaw=0.5, roll=0.5)\n    test 334 pygeodesy.ltpTuples: Attitude4Tuple(alt=Meter, tilt=Degrees, yaw=Bearing, roll=Degrees)\n    test 335 pygeodesy.ltpTuples.Attitude4Tuple.alt: 0.5\n    test 336 pygeodesy.ltpTuples.Attitude4Tuple.tilt: 0.5\n    test 337 pygeodesy.ltpTuples.Attitude4Tuple.yaw: 0.5\n    test 338 pygeodesy.ltpTuples.Attitude4Tuple.roll: 0.5\n    test 339 pygeodesy.ltpTuples.Attitude4Tuple._validated: True\n    test 340 pygeodesy.ltpTuples.Attitude4Tuple._validated: True\n    test 341 pygeodesy.ltpTuples: ChLV9Tuple(Y=0.5, X=0.5, h_=0.5, lat=0.5, lon=0.5, height=0.5, ltp=0.5, ecef=0.5, M=0.5)\n    test 342 pygeodesy.ltpTuples: ChLV9Tuple(Y=Meter, X=Meter, h_=Meter, lat=Lat, lon=Lon, height=Height, ltp=_Pass, ecef=_Pass, M=_Pass)\n    test 343 pygeodesy.ltpTuples.ChLV9Tuple.Y: 0.5\n    test 344 pygeodesy.ltpTuples.ChLV9Tuple.X: 0.5\n    test 345 pygeodesy.ltpTuples.ChLV9Tuple.h_: 0.5\n    test 346 pygeodesy.ltpTuples.ChLV9Tuple.lat: 0.5\n    test 347 pygeodesy.ltpTuples.ChLV9Tuple.lon: 0.5\n    test 348 pygeodesy.ltpTuples.ChLV9Tuple.height: 0.5\n    test 349 pygeodesy.ltpTuples.ChLV9Tuple.ltp: 0.5\n    test 350 pygeodesy.ltpTuples.ChLV9Tuple.ecef: 0.5\n    test 351 pygeodesy.ltpTuples.ChLV9Tuple.M: 0.5\n    test 352 pygeodesy.ltpTuples.ChLV9Tuple._validated: True\n    test 353 pygeodesy.ltpTuples.ChLV9Tuple._validated: True\n    test 354 pygeodesy.ltpTuples: ChLVEN2Tuple(E_LV95=0.5, N_LV95=0.5)\n    test 355 pygeodesy.ltpTuples: ChLVEN2Tuple(E_LV95=Meter, N_LV95=Meter)\n    test 356 pygeodesy.ltpTuples.ChLVEN2Tuple.E_LV95: 0.5\n    test 357 pygeodesy.ltpTuples.ChLVEN2Tuple.N_LV95: 0.5\n    test 358 pygeodesy.ltpTuples.ChLVEN2Tuple._validated: True\n    test 359 pygeodesy.ltpTuples.ChLVEN2Tuple._validated: True\n    test 360 pygeodesy.ltpTuples: ChLVYX2Tuple(Y=0.5, X=0.5)\n    test 361 pygeodesy.ltpTuples: ChLVYX2Tuple(Y=Meter, X=Meter)\n    test 362 pygeodesy.ltpTuples.ChLVYX2Tuple.Y: 0.5\n    test 363 pygeodesy.ltpTuples.ChLVYX2Tuple.X: 0.5\n    test 364 pygeodesy.ltpTuples.ChLVYX2Tuple._validated: True\n    test 365 pygeodesy.ltpTuples.ChLVYX2Tuple._validated: True\n    test 366 pygeodesy.ltpTuples: ChLVyx2Tuple(y_LV03=0.5, x_LV03=0.5)\n    test 367 pygeodesy.ltpTuples: ChLVyx2Tuple(y_LV03=Meter, x_LV03=Meter)\n    test 368 pygeodesy.ltpTuples.ChLVyx2Tuple.y_LV03: 0.5\n    test 369 pygeodesy.ltpTuples.ChLVyx2Tuple.x_LV03: 0.5\n    test 370 pygeodesy.ltpTuples.ChLVyx2Tuple._validated: True\n    test 371 pygeodesy.ltpTuples.ChLVyx2Tuple._validated: True\n    test 372 pygeodesy.ltpTuples: Enu4Tuple(east=0.5, north=0.5, up=0.5, ltp=0.5)\n    test 373 pygeodesy.ltpTuples: Enu4Tuple(east=Meter, north=Meter, up=Meter, ltp=_Pass)\n    test 374 pygeodesy.ltpTuples.Enu4Tuple.east: 0.5\n    test 375 pygeodesy.ltpTuples.Enu4Tuple.north: 0.5\n    test 376 pygeodesy.ltpTuples.Enu4Tuple.up: 0.5\n    test 377 pygeodesy.ltpTuples.Enu4Tuple.ltp: 0.5\n    test 378 pygeodesy.ltpTuples.Enu4Tuple._validated: True\n    test 379 pygeodesy.ltpTuples.Enu4Tuple._validated: True\n    test 380 pygeodesy.ltpTuples: Footprint5Tuple(center=0.5, upperleft=0.5, upperight=0.5, loweright=0.5, lowerleft=0.5)\n    test 381 pygeodesy.ltpTuples: Footprint5Tuple(center=_Pass, upperleft=_Pass, upperight=_Pass, loweright=_Pass, lowerleft=_Pass)\n    test 382 pygeodesy.ltpTuples.Footprint5Tuple.center: 0.5\n    test 383 pygeodesy.ltpTuples.Footprint5Tuple.upperleft: 0.5\n    test 384 pygeodesy.ltpTuples.Footprint5Tuple.upperight: 0.5\n    test 385 pygeodesy.ltpTuples.Footprint5Tuple.loweright: 0.5\n    test 386 pygeodesy.ltpTuples.Footprint5Tuple.lowerleft: 0.5\n    test 387 pygeodesy.ltpTuples.Footprint5Tuple._validated: True\n    test 388 pygeodesy.ltpTuples.Footprint5Tuple._validated: True\n    test 389 pygeodesy.ltpTuples: Local9Tuple(x=0.5, y=0.5, z=0.5, lat=0.5, lon=0.5, height=0.5, ltp=0.5, ecef=0.5, M=0.5)\n    test 390 pygeodesy.ltpTuples: Local9Tuple(x=Meter, y=Meter, z=Meter, lat=Lat, lon=Lon, height=Height, ltp=_Pass, ecef=_Pass, M=_Pass)\n    test 391 pygeodesy.ltpTuples.Local9Tuple.x: 0.5\n    test 392 pygeodesy.ltpTuples.Local9Tuple.y: 0.5\n    test 393 pygeodesy.ltpTuples.Local9Tuple.z: 0.5\n    test 394 pygeodesy.ltpTuples.Local9Tuple.lat: 0.5\n    test 395 pygeodesy.ltpTuples.Local9Tuple.lon: 0.5\n    test 396 pygeodesy.ltpTuples.Local9Tuple.height: 0.5\n    test 397 pygeodesy.ltpTuples.Local9Tuple.ltp: 0.5\n    test 398 pygeodesy.ltpTuples.Local9Tuple.ecef: 0.5\n    test 399 pygeodesy.ltpTuples.Local9Tuple.M: 0.5\n    test 400 pygeodesy.ltpTuples.Local9Tuple._validated: True\n    test 401 pygeodesy.ltpTuples.Local9Tuple._validated: True\n    test 402 pygeodesy.ltpTuples: Ned4Tuple(north=0.5, east=0.5, down=0.5, ltp=0.5)\n    test 403 pygeodesy.ltpTuples: Ned4Tuple(north=Meter, east=Meter, down=Meter, ltp=_Pass)\n    test 404 pygeodesy.ltpTuples.Ned4Tuple.north: 0.5\n    test 405 pygeodesy.ltpTuples.Ned4Tuple.east: 0.5\n    test 406 pygeodesy.ltpTuples.Ned4Tuple.down: 0.5\n    test 407 pygeodesy.ltpTuples.Ned4Tuple.ltp: 0.5\n    test 408 pygeodesy.ltpTuples.Ned4Tuple._validated: True\n    test 409 pygeodesy.ltpTuples.Ned4Tuple._validated: True\n    test 410 pygeodesy.ltpTuples: Uvw3Tuple(u=0.5, v=0.5, w=0.5)\n    test 411 pygeodesy.ltpTuples: Uvw3Tuple(u=Meter, v=Meter, w=Meter)\n    test 412 pygeodesy.ltpTuples.Uvw3Tuple.u: 0.5\n    test 413 pygeodesy.ltpTuples.Uvw3Tuple.v: 0.5\n    test 414 pygeodesy.ltpTuples.Uvw3Tuple.w: 0.5\n    test 415 pygeodesy.ltpTuples.Uvw3Tuple._validated: True\n    test 416 pygeodesy.ltpTuples.Uvw3Tuple._validated: True\n    test 417 pygeodesy.ltpTuples: Xyz4Tuple(x=0.5, y=0.5, z=0.5, ltp=0.5)\n    test 418 pygeodesy.ltpTuples: Xyz4Tuple(x=Meter, y=Meter, z=Meter, ltp=_Pass)\n    test 419 pygeodesy.ltpTuples.Xyz4Tuple.x: 0.5\n    test 420 pygeodesy.ltpTuples.Xyz4Tuple.y: 0.5\n    test 421 pygeodesy.ltpTuples.Xyz4Tuple.z: 0.5\n    test 422 pygeodesy.ltpTuples.Xyz4Tuple.ltp: 0.5\n    test 423 pygeodesy.ltpTuples.Xyz4Tuple._validated: True\n    test 424 pygeodesy.ltpTuples.Xyz4Tuple._validated: True\n# lazily imported pygeodesy.mgrs by bases.py line 199\n    test 425 pygeodesy.mgrs: Mgrs4Tuple(zone='0.5', EN='0.5', easting=0.5, northing=0.5)\n    test 426 pygeodesy.mgrs: Mgrs4Tuple(zone=Str, EN=Str, easting=Easting, northing=Northing)\n    test 427 pygeodesy.mgrs.Mgrs4Tuple.zone: 0.5\n    test 428 pygeodesy.mgrs.Mgrs4Tuple.EN: 0.5\n    test 429 pygeodesy.mgrs.Mgrs4Tuple.easting: 0.5\n    test 430 pygeodesy.mgrs.Mgrs4Tuple.northing: 0.5\n    test 431 pygeodesy.mgrs.Mgrs4Tuple._validated: True\n    test 432 pygeodesy.mgrs.Mgrs4Tuple._validated: True\n    test 433 pygeodesy.mgrs: Mgrs6Tuple(zone='0.5', EN='0.5', easting=0.5, northing=0.5, band='0.5', datum=0.5)\n    test 434 pygeodesy.mgrs: Mgrs6Tuple(zone=Str, EN=Str, easting=Easting, northing=Northing, band=Str, datum=_Pass)\n    test 435 pygeodesy.mgrs.Mgrs6Tuple.zone: 0.5\n    test 436 pygeodesy.mgrs.Mgrs6Tuple.EN: 0.5\n    test 437 pygeodesy.mgrs.Mgrs6Tuple.easting: 0.5\n    test 438 pygeodesy.mgrs.Mgrs6Tuple.northing: 0.5\n    test 439 pygeodesy.mgrs.Mgrs6Tuple.band: 0.5\n    test 440 pygeodesy.mgrs.Mgrs6Tuple.datum: 0.5\n    test 441 pygeodesy.mgrs.Mgrs6Tuple._validated: True\n    test 442 pygeodesy.mgrs.Mgrs6Tuple._validated: True\n    test 443 pygeodesy.namedTuples: Bearing2Tuple(initial=0.5, final=0.5)\n    test 444 pygeodesy.namedTuples: Bearing2Tuple(initial=Bearing, final=Bearing)\n    test 445 pygeodesy.namedTuples.Bearing2Tuple.initial: 0.5\n    test 446 pygeodesy.namedTuples.Bearing2Tuple.final: 0.5\n    test 447 pygeodesy.namedTuples.Bearing2Tuple._validated: True\n    test 448 pygeodesy.namedTuples.Bearing2Tuple._validated: True\n    test 449 pygeodesy.namedTuples: Bounds2Tuple(latlonSW=0.5, latlonNE=0.5)\n    test 450 pygeodesy.namedTuples: Bounds2Tuple(latlonSW=_Pass, latlonNE=_Pass)\n    test 451 pygeodesy.namedTuples.Bounds2Tuple.latlonSW: 0.5\n    test 452 pygeodesy.namedTuples.Bounds2Tuple.latlonNE: 0.5\n    test 453 pygeodesy.namedTuples.Bounds2Tuple._validated: True\n    test 454 pygeodesy.namedTuples.Bounds2Tuple._validated: True\n    test 455 pygeodesy.namedTuples: Bounds4Tuple(latS=0.5, lonW=0.5, latN=0.5, lonE=0.5)\n    test 456 pygeodesy.namedTuples: Bounds4Tuple(latS=Lat, lonW=Lon, latN=Lat, lonE=Lon)\n    test 457 pygeodesy.namedTuples.Bounds4Tuple.latS: 0.5\n    test 458 pygeodesy.namedTuples.Bounds4Tuple.lonW: 0.5\n    test 459 pygeodesy.namedTuples.Bounds4Tuple.latN: 0.5\n    test 460 pygeodesy.namedTuples.Bounds4Tuple.lonE: 0.5\n    test 461 pygeodesy.namedTuples.Bounds4Tuple._validated: True\n    test 462 pygeodesy.namedTuples.Bounds4Tuple._validated: True\n    test 463 pygeodesy.namedTuples: Circle4Tuple(radius=0.5, height=0.5, lat=0.5, beta=0.5)\n    test 464 pygeodesy.namedTuples: Circle4Tuple(radius=Radius, height=Height, lat=Lat, beta=Lat)\n    test 465 pygeodesy.namedTuples.Circle4Tuple.radius: 0.5\n    test 466 pygeodesy.namedTuples.Circle4Tuple.height: 0.5\n    test 467 pygeodesy.namedTuples.Circle4Tuple.lat: 0.5\n    test 468 pygeodesy.namedTuples.Circle4Tuple.beta: 0.5\n    test 469 pygeodesy.namedTuples.Circle4Tuple._validated: True\n    test 470 pygeodesy.namedTuples.Circle4Tuple._validated: True\n    test 471 pygeodesy.namedTuples: Destination2Tuple(destination=0.5, final=0.5)\n    test 472 pygeodesy.namedTuples: Destination2Tuple(destination=_Pass, final=Bearing)\n    test 473 pygeodesy.namedTuples.Destination2Tuple.destination: 0.5\n    test 474 pygeodesy.namedTuples.Destination2Tuple.final: 0.5\n    test 475 pygeodesy.namedTuples.Destination2Tuple._validated: True\n    test 476 pygeodesy.namedTuples.Destination2Tuple._validated: True\n    test 477 pygeodesy.namedTuples: Destination3Tuple(lat=0.5, lon=0.5, final=0.5)\n    test 478 pygeodesy.namedTuples: Destination3Tuple(lat=Lat, lon=Lon, final=Bearing)\n    test 479 pygeodesy.namedTuples.Destination3Tuple.lat: 0.5\n    test 480 pygeodesy.namedTuples.Destination3Tuple.lon: 0.5\n    test 481 pygeodesy.namedTuples.Destination3Tuple.final: 0.5\n    test 482 pygeodesy.namedTuples.Destination3Tuple._validated: True\n    test 483 pygeodesy.namedTuples.Destination3Tuple._validated: True\n    test 484 pygeodesy.namedTuples: Distance2Tuple(distance=0.5, initial=0.5)\n    test 485 pygeodesy.namedTuples: Distance2Tuple(distance=Meter, initial=Bearing)\n    test 486 pygeodesy.namedTuples.Distance2Tuple.distance: 0.5\n    test 487 pygeodesy.namedTuples.Distance2Tuple.initial: 0.5\n    test 488 pygeodesy.namedTuples.Distance2Tuple._validated: True\n    test 489 pygeodesy.namedTuples.Distance2Tuple._validated: True\n    test 490 pygeodesy.namedTuples: Distance3Tuple(distance=0.5, initial=0.5, final=0.5)\n    test 491 pygeodesy.namedTuples: Distance3Tuple(distance=Meter, initial=Bearing, final=Bearing)\n    test 492 pygeodesy.namedTuples.Distance3Tuple.distance: 0.5\n    test 493 pygeodesy.namedTuples.Distance3Tuple.initial: 0.5\n    test 494 pygeodesy.namedTuples.Distance3Tuple.final: 0.5\n    test 495 pygeodesy.namedTuples.Distance3Tuple._validated: True\n    test 496 pygeodesy.namedTuples.Distance3Tuple._validated: True\n    test 497 pygeodesy.namedTuples: Distance4Tuple(distance2=0.5, delta_lat=0.5, delta_lon=0.5, unroll_lon2=0.5)\n    test 498 pygeodesy.namedTuples: Distance4Tuple(distance2=Degrees2, delta_lat=Degrees, delta_lon=Degrees, unroll_lon2=Degrees)\n    test 499 pygeodesy.namedTuples.Distance4Tuple.distance2: 0.5\n    test 500 pygeodesy.namedTuples.Distance4Tuple.delta_lat: 0.5\n    test 501 pygeodesy.namedTuples.Distance4Tuple.delta_lon: 0.5\n    test 502 pygeodesy.namedTuples.Distance4Tuple.unroll_lon2: 0.5\n    test 503 pygeodesy.namedTuples.Distance4Tuple._validated: True\n    test 504 pygeodesy.namedTuples.Distance4Tuple._validated: True\n    test 505 pygeodesy.namedTuples: EasNor2Tuple(easting=0.5, northing=0.5)\n    test 506 pygeodesy.namedTuples: EasNor2Tuple(easting=Easting, northing=Northing)\n    test 507 pygeodesy.namedTuples.EasNor2Tuple.easting: 0.5\n    test 508 pygeodesy.namedTuples.EasNor2Tuple.northing: 0.5\n    test 509 pygeodesy.namedTuples.EasNor2Tuple._validated: True\n    test 510 pygeodesy.namedTuples.EasNor2Tuple._validated: True\n    test 511 pygeodesy.namedTuples: EasNor3Tuple(easting=0.5, northing=0.5, height=0.5)\n    test 512 pygeodesy.namedTuples: EasNor3Tuple(easting=Easting, northing=Northing, height=Height)\n    test 513 pygeodesy.namedTuples.EasNor3Tuple.easting: 0.5\n    test 514 pygeodesy.namedTuples.EasNor3Tuple.northing: 0.5\n    test 515 pygeodesy.namedTuples.EasNor3Tuple.height: 0.5\n    test 516 pygeodesy.namedTuples.EasNor3Tuple._validated: True\n    test 517 pygeodesy.namedTuples.EasNor3Tuple._validated: True\n    test 518 pygeodesy.namedTuples: Ellipse5Tuple(a=0.5, b=0.5, height=0.5, lat=0.5, beta=0.5)\n    test 519 pygeodesy.namedTuples: Ellipse5Tuple(a=Radius, b=Radius, height=Height, lat=Lat, beta=Lat)\n    test 520 pygeodesy.namedTuples.Ellipse5Tuple.a: 0.5\n    test 521 pygeodesy.namedTuples.Ellipse5Tuple.b: 0.5\n    test 522 pygeodesy.namedTuples.Ellipse5Tuple.height: 0.5\n    test 523 pygeodesy.namedTuples.Ellipse5Tuple.lat: 0.5\n    test 524 pygeodesy.namedTuples.Ellipse5Tuple.beta: 0.5\n    test 525 pygeodesy.namedTuples.Ellipse5Tuple._validated: True\n    test 526 pygeodesy.namedTuples.Ellipse5Tuple._validated: True\n    test 527 pygeodesy.namedTuples: Forward4Tuple(easting=0.5, northing=0.5, gamma=0.5, scale=0.5)\n    test 528 pygeodesy.namedTuples: Forward4Tuple(easting=Easting, northing=Northing, gamma=Degrees, scale=Scalar)\n    test 529 pygeodesy.namedTuples.Forward4Tuple.easting: 0.5\n    test 530 pygeodesy.namedTuples.Forward4Tuple.northing: 0.5\n    test 531 pygeodesy.namedTuples.Forward4Tuple.gamma: 0.5\n    test 532 pygeodesy.namedTuples.Forward4Tuple.scale: 0.5\n    test 533 pygeodesy.namedTuples.Forward4Tuple._validated: True\n    test 534 pygeodesy.namedTuples.Forward4Tuple._validated: True\n    test 535 pygeodesy.namedTuples: Intersection3Tuple(point=0.5, outside1=0, outside2=0)\n    test 536 pygeodesy.namedTuples: Intersection3Tuple(point=_Pass, outside1=Int, outside2=Int)\n    test 537 pygeodesy.namedTuples.Intersection3Tuple.point: 0.5\n    test 538 pygeodesy.namedTuples.Intersection3Tuple.outside1: 0.5\n    test 539 pygeodesy.namedTuples.Intersection3Tuple.outside2: 0.5\n    test 540 pygeodesy.namedTuples.Intersection3Tuple._validated: True\n    test 541 pygeodesy.namedTuples.Intersection3Tuple._validated: True\n    test 542 pygeodesy.namedTuples: LatLon2Tuple(lat=0.5, lon=0.5)\n    test 543 pygeodesy.namedTuples: LatLon2Tuple(lat=Lat, lon=Lon)\n    test 544 pygeodesy.namedTuples.LatLon2Tuple.lat: 0.5\n    test 545 pygeodesy.namedTuples.LatLon2Tuple.lon: 0.5\n    test 546 pygeodesy.namedTuples.LatLon2Tuple._validated: True\n    test 547 pygeodesy.namedTuples.LatLon2Tuple._validated: True\n    test 548 pygeodesy.namedTuples: LatLon3Tuple(lat=0.5, lon=0.5, height=0.5)\n    test 549 pygeodesy.namedTuples: LatLon3Tuple(lat=Lat, lon=Lon, height=Height)\n    test 550 pygeodesy.namedTuples.LatLon3Tuple.lat: 0.5\n    test 551 pygeodesy.namedTuples.LatLon3Tuple.lon: 0.5\n    test 552 pygeodesy.namedTuples.LatLon3Tuple.height: 0.5\n    test 553 pygeodesy.namedTuples.LatLon3Tuple._validated: True\n    test 554 pygeodesy.namedTuples.LatLon3Tuple._validated: True\n    test 555 pygeodesy.namedTuples: LatLon4Tuple(lat=0.5, lon=0.5, height=0.5, datum=0.5)\n    test 556 pygeodesy.namedTuples: LatLon4Tuple(lat=Lat, lon=Lon, height=Height, datum=_Pass)\n    test 557 pygeodesy.namedTuples.LatLon4Tuple.lat: 0.5\n    test 558 pygeodesy.namedTuples.LatLon4Tuple.lon: 0.5\n    test 559 pygeodesy.namedTuples.LatLon4Tuple.height: 0.5\n    test 560 pygeodesy.namedTuples.LatLon4Tuple.datum: 0.5\n    test 561 pygeodesy.namedTuples.LatLon4Tuple._validated: True\n    test 562 pygeodesy.namedTuples.LatLon4Tuple._validated: True\n    test 563 pygeodesy.namedTuples: LatLonDatum3Tuple(lat=0.5, lon=0.5, datum=0.5)\n    test 564 pygeodesy.namedTuples: LatLonDatum3Tuple(lat=Lat, lon=Lon, datum=_Pass)\n    test 565 pygeodesy.namedTuples.LatLonDatum3Tuple.lat: 0.5\n    test 566 pygeodesy.namedTuples.LatLonDatum3Tuple.lon: 0.5\n    test 567 pygeodesy.namedTuples.LatLonDatum3Tuple.datum: 0.5\n    test 568 pygeodesy.namedTuples.LatLonDatum3Tuple._validated: True\n    test 569 pygeodesy.namedTuples.LatLonDatum3Tuple._validated: True\n    test 570 pygeodesy.namedTuples: LatLonDatum5Tuple(lat=0.5, lon=0.5, datum=0.5, gamma=0.5, scale=0.5)\n    test 571 pygeodesy.namedTuples: LatLonDatum5Tuple(lat=Lat, lon=Lon, datum=_Pass, gamma=Degrees, scale=Scalar)\n    test 572 pygeodesy.namedTuples.LatLonDatum5Tuple.lat: 0.5\n    test 573 pygeodesy.namedTuples.LatLonDatum5Tuple.lon: 0.5\n    test 574 pygeodesy.namedTuples.LatLonDatum5Tuple.datum: 0.5\n    test 575 pygeodesy.namedTuples.LatLonDatum5Tuple.gamma: 0.5\n    test 576 pygeodesy.namedTuples.LatLonDatum5Tuple.scale: 0.5\n    test 577 pygeodesy.namedTuples.LatLonDatum5Tuple._validated: True\n    test 578 pygeodesy.namedTuples.LatLonDatum5Tuple._validated: True\n    test 579 pygeodesy.namedTuples: LatLonPrec3Tuple(lat=0.5, lon=0.5, precision=0)\n    test 580 pygeodesy.namedTuples: LatLonPrec3Tuple(lat=Lat, lon=Lon, precision=Precision_)\n    test 581 pygeodesy.namedTuples.LatLonPrec3Tuple.lat: 0.5\n    test 582 pygeodesy.namedTuples.LatLonPrec3Tuple.lon: 0.5\n    test 583 pygeodesy.namedTuples.LatLonPrec3Tuple.precision: 0.5\n    test 584 pygeodesy.namedTuples.LatLonPrec3Tuple._validated: True\n    test 585 pygeodesy.namedTuples.LatLonPrec3Tuple._validated: True\n    test 586 pygeodesy.namedTuples: LatLonPrec5Tuple(lat=0.5, lon=0.5, precision=0, height=0.5, radius=0.5)\n    test 587 pygeodesy.namedTuples: LatLonPrec5Tuple(lat=Lat, lon=Lon, precision=Precision_, height=Height, radius=Radius)\n    test 588 pygeodesy.namedTuples.LatLonPrec5Tuple.lat: 0.5\n    test 589 pygeodesy.namedTuples.LatLonPrec5Tuple.lon: 0.5\n    test 590 pygeodesy.namedTuples.LatLonPrec5Tuple.precision: 0.5\n    test 591 pygeodesy.namedTuples.LatLonPrec5Tuple.height: 0.5\n    test 592 pygeodesy.namedTuples.LatLonPrec5Tuple.radius: 0.5\n    test 593 pygeodesy.namedTuples.LatLonPrec5Tuple._validated: True\n    test 594 pygeodesy.namedTuples.LatLonPrec5Tuple._validated: True\n    test 595 pygeodesy.namedTuples: NearestOn2Tuple(closest=0.5, fraction=0.5)\n    test 596 pygeodesy.namedTuples: NearestOn2Tuple(closest=_Pass, fraction=_Pass)\n    test 597 pygeodesy.namedTuples.NearestOn2Tuple.closest: 0.5\n    test 598 pygeodesy.namedTuples.NearestOn2Tuple.fraction: 0.5\n    test 599 pygeodesy.namedTuples.NearestOn2Tuple._validated: True\n    test 600 pygeodesy.namedTuples.NearestOn2Tuple._validated: True\n    test 601 pygeodesy.namedTuples: NearestOn3Tuple(closest=0.5, distance=0.5, angle=0.5)\n    test 602 pygeodesy.namedTuples: NearestOn3Tuple(closest=_Pass, distance=Meter, angle=Degrees)\n    test 603 pygeodesy.namedTuples.NearestOn3Tuple.closest: 0.5\n    test 604 pygeodesy.namedTuples.NearestOn3Tuple.distance: 0.5\n    test 605 pygeodesy.namedTuples.NearestOn3Tuple.angle: 0.5\n    test 606 pygeodesy.namedTuples.NearestOn3Tuple._validated: True\n    test 607 pygeodesy.namedTuples.NearestOn3Tuple._validated: True\n    test 608 pygeodesy.namedTuples: NearestOn5Tuple(lat=0.5, lon=0.5, distance=0.5, angle=0.5, height=0.5)\n    test 609 pygeodesy.namedTuples: NearestOn5Tuple(lat=Lat, lon=Lon, distance=Degrees, angle=Degrees, height=Meter)\n    test 610 pygeodesy.namedTuples.NearestOn5Tuple.lat: 0.5\n    test 611 pygeodesy.namedTuples.NearestOn5Tuple.lon: 0.5\n    test 612 pygeodesy.namedTuples.NearestOn5Tuple.distance: 0.5\n    test 613 pygeodesy.namedTuples.NearestOn5Tuple.angle: 0.5\n    test 614 pygeodesy.namedTuples.NearestOn5Tuple.height: 0.5\n    test 615 pygeodesy.namedTuples.NearestOn5Tuple._validated: True\n    test 616 pygeodesy.namedTuples.NearestOn5Tuple._validated: True\n    test 617 pygeodesy.namedTuples: NearestOn6Tuple(closest=0.5, distance=0.5, fi=0.5, j=0, start=0.5, end=0.5)\n    test 618 pygeodesy.namedTuples: NearestOn6Tuple(closest=_Pass, distance=Meter, fi=FIx, j=Number_, start=_Pass, end=_Pass)\n    test 619 pygeodesy.namedTuples.NearestOn6Tuple.closest: 0.5\n    test 620 pygeodesy.namedTuples.NearestOn6Tuple.distance: 0.5\n    test 621 pygeodesy.namedTuples.NearestOn6Tuple.fi: 0.5\n    test 622 pygeodesy.namedTuples.NearestOn6Tuple.j: 0.5\n    test 623 pygeodesy.namedTuples.NearestOn6Tuple.start: 0.5\n    test 624 pygeodesy.namedTuples.NearestOn6Tuple.end: 0.5\n    test 625 pygeodesy.namedTuples.NearestOn6Tuple._validated: True\n    test 626 pygeodesy.namedTuples.NearestOn6Tuple._validated: True\n    test 627 pygeodesy.namedTuples: NearestOn8Tuple(closest=0.5, distance=0.5, fi=0.5, j=0, start=0.5, end=0.5, initial=0.5, final=0.5)\n    test 628 pygeodesy.namedTuples: NearestOn8Tuple(closest=_Pass, distance=Meter, fi=FIx, j=Number_, start=_Pass, end=_Pass, initial=Bearing, final=Bearing)\n    test 629 pygeodesy.namedTuples.NearestOn8Tuple.closest: 0.5\n    test 630 pygeodesy.namedTuples.NearestOn8Tuple.distance: 0.5\n    test 631 pygeodesy.namedTuples.NearestOn8Tuple.fi: 0.5\n    test 632 pygeodesy.namedTuples.NearestOn8Tuple.j: 0.5\n    test 633 pygeodesy.namedTuples.NearestOn8Tuple.start: 0.5\n    test 634 pygeodesy.namedTuples.NearestOn8Tuple.end: 0.5\n    test 635 pygeodesy.namedTuples.NearestOn8Tuple.initial: 0.5\n    test 636 pygeodesy.namedTuples.NearestOn8Tuple.final: 0.5\n    test 637 pygeodesy.namedTuples.NearestOn8Tuple._validated: True\n    test 638 pygeodesy.namedTuples.NearestOn8Tuple._validated: True\n    test 639 pygeodesy.namedTuples: PhiLam2Tuple(phi=0.5, lam=0.5)\n    test 640 pygeodesy.namedTuples: PhiLam2Tuple(phi=Phi, lam=Lam)\n    test 641 pygeodesy.namedTuples.PhiLam2Tuple.phi: 0.5\n    test 642 pygeodesy.namedTuples.PhiLam2Tuple.lam: 0.5\n    test 643 pygeodesy.namedTuples.PhiLam2Tuple._validated: True\n    test 644 pygeodesy.namedTuples.PhiLam2Tuple._validated: True\n    test 645 pygeodesy.namedTuples: PhiLam3Tuple(phi=0.5, lam=0.5, height=0.5)\n    test 646 pygeodesy.namedTuples: PhiLam3Tuple(phi=Phi, lam=Lam, height=Height)\n    test 647 pygeodesy.namedTuples.PhiLam3Tuple.phi: 0.5\n    test 648 pygeodesy.namedTuples.PhiLam3Tuple.lam: 0.5\n    test 649 pygeodesy.namedTuples.PhiLam3Tuple.height: 0.5\n    test 650 pygeodesy.namedTuples.PhiLam3Tuple._validated: True\n    test 651 pygeodesy.namedTuples.PhiLam3Tuple._validated: True\n    test 652 pygeodesy.namedTuples: PhiLam4Tuple(phi=0.5, lam=0.5, height=0.5, datum=0.5)\n    test 653 pygeodesy.namedTuples: PhiLam4Tuple(phi=Phi, lam=Lam, height=Height, datum=_Pass)\n    test 654 pygeodesy.namedTuples.PhiLam4Tuple.phi: 0.5\n    test 655 pygeodesy.namedTuples.PhiLam4Tuple.lam: 0.5\n    test 656 pygeodesy.namedTuples.PhiLam4Tuple.height: 0.5\n    test 657 pygeodesy.namedTuples.PhiLam4Tuple.datum: 0.5\n    test 658 pygeodesy.namedTuples.PhiLam4Tuple._validated: True\n    test 659 pygeodesy.namedTuples.PhiLam4Tuple._validated: True\n    test 660 pygeodesy.namedTuples: Point3Tuple(x=0.5, y=0.5, ll=0.5)\n    test 661 pygeodesy.namedTuples: Point3Tuple(x=Meter, y=Meter, ll=_Pass)\n    test 662 pygeodesy.namedTuples.Point3Tuple.x: 0.5\n    test 663 pygeodesy.namedTuples.Point3Tuple.y: 0.5\n    test 664 pygeodesy.namedTuples.Point3Tuple.ll: 0.5\n    test 665 pygeodesy.namedTuples.Point3Tuple._validated: True\n    test 666 pygeodesy.namedTuples.Point3Tuple._validated: True\n    test 667 pygeodesy.namedTuples: Points2Tuple(number=0, points=0.5)\n    test 668 pygeodesy.namedTuples: Points2Tuple(number=Number_, points=_Pass)\n    test 669 pygeodesy.namedTuples.Points2Tuple.number: 0.5\n    test 670 pygeodesy.namedTuples.Points2Tuple.points: 0.5\n    test 671 pygeodesy.namedTuples.Points2Tuple._validated: True\n    test 672 pygeodesy.namedTuples.Points2Tuple._validated: True\n    test 673 pygeodesy.namedTuples: Reverse4Tuple(lat=0.5, lon=0.5, gamma=0.5, scale=0.5)\n    test 674 pygeodesy.namedTuples: Reverse4Tuple(lat=Lat, lon=Lon, gamma=Degrees, scale=Scalar)\n    test 675 pygeodesy.namedTuples.Reverse4Tuple.lat: 0.5\n    test 676 pygeodesy.namedTuples.Reverse4Tuple.lon: 0.5\n    test 677 pygeodesy.namedTuples.Reverse4Tuple.gamma: 0.5\n    test 678 pygeodesy.namedTuples.Reverse4Tuple.scale: 0.5\n    test 679 pygeodesy.namedTuples.Reverse4Tuple._validated: True\n    test 680 pygeodesy.namedTuples.Reverse4Tuple._validated: True\n    test 681 pygeodesy.namedTuples: Triangle7Tuple(A=0.5, a=0.5, B=0.5, b=0.5, C=0.5, c=0.5, area=0.5)\n    test 682 pygeodesy.namedTuples: Triangle7Tuple(A=Degrees, a=Meter, B=Degrees, b=Meter, C=Degrees, c=Meter, area=Meter2)\n    test 683 pygeodesy.namedTuples.Triangle7Tuple.A: 0.5\n    test 684 pygeodesy.namedTuples.Triangle7Tuple.a: 0.5\n    test 685 pygeodesy.namedTuples.Triangle7Tuple.B: 0.5\n    test 686 pygeodesy.namedTuples.Triangle7Tuple.b: 0.5\n    test 687 pygeodesy.namedTuples.Triangle7Tuple.C: 0.5\n    test 688 pygeodesy.namedTuples.Triangle7Tuple.c: 0.5\n    test 689 pygeodesy.namedTuples.Triangle7Tuple.area: 0.5\n    test 690 pygeodesy.namedTuples.Triangle7Tuple._validated: True\n    test 691 pygeodesy.namedTuples.Triangle7Tuple._validated: True\n    test 692 pygeodesy.namedTuples: Triangle8Tuple(A=0.5, a=0.5, B=0.5, b=0.5, C=0.5, c=0.5, D=0.5, E=0.5)\n    test 693 pygeodesy.namedTuples: Triangle8Tuple(A=Radians, a=Radians, B=Radians, b=Radians, C=Radians, c=Radians, D=Radians, E=Radians)\n    test 694 pygeodesy.namedTuples.Triangle8Tuple.A: 0.5\n    test 695 pygeodesy.namedTuples.Triangle8Tuple.a: 0.5\n    test 696 pygeodesy.namedTuples.Triangle8Tuple.B: 0.5\n    test 697 pygeodesy.namedTuples.Triangle8Tuple.b: 0.5\n    test 698 pygeodesy.namedTuples.Triangle8Tuple.C: 0.5\n    test 699 pygeodesy.namedTuples.Triangle8Tuple.c: 0.5\n    test 700 pygeodesy.namedTuples.Triangle8Tuple.D: 0.5\n    test 701 pygeodesy.namedTuples.Triangle8Tuple.E: 0.5\n    test 702 pygeodesy.namedTuples.Triangle8Tuple._validated: True\n    test 703 pygeodesy.namedTuples.Triangle8Tuple._validated: True\n    test 704 pygeodesy.namedTuples: Trilaterate5Tuple(min=0.5, minPoint=0.5, max=0.5, maxPoint=0.5, n=0)\n    test 705 pygeodesy.namedTuples: Trilaterate5Tuple(min=Meter, minPoint=_Pass, max=Meter, maxPoint=_Pass, n=Number_)\n    test 706 pygeodesy.namedTuples.Trilaterate5Tuple.min: 0.5\n    test 707 pygeodesy.namedTuples.Trilaterate5Tuple.minPoint: 0.5\n    test 708 pygeodesy.namedTuples.Trilaterate5Tuple.max: 0.5\n    test 709 pygeodesy.namedTuples.Trilaterate5Tuple.maxPoint: 0.5\n    test 710 pygeodesy.namedTuples.Trilaterate5Tuple.n: 0.5\n    test 711 pygeodesy.namedTuples.Trilaterate5Tuple._validated: True\n    test 712 pygeodesy.namedTuples.Trilaterate5Tuple._validated: True\n    test 713 pygeodesy.namedTuples: UtmUps2Tuple(zone=0, hemipole='0.5')\n    test 714 pygeodesy.namedTuples: UtmUps2Tuple(zone=Number_, hemipole=Str)\n    test 715 pygeodesy.namedTuples.UtmUps2Tuple.zone: 0.5\n    test 716 pygeodesy.namedTuples.UtmUps2Tuple.hemipole: 0.5\n    test 717 pygeodesy.namedTuples.UtmUps2Tuple._validated: True\n    test 718 pygeodesy.namedTuples.UtmUps2Tuple._validated: True\n    test 719 pygeodesy.namedTuples: UtmUps5Tuple(zone=0, hemipole='0.5', easting=0.5, northing=0.5, band='0.5')\n    test 720 pygeodesy.namedTuples: UtmUps5Tuple(zone=Number_, hemipole=Str, easting=Easting, northing=Northing, band=Band)\n    test 721 pygeodesy.namedTuples.UtmUps5Tuple.zone: 0.5\n    test 722 pygeodesy.namedTuples.UtmUps5Tuple.hemipole: 0.5\n    test 723 pygeodesy.namedTuples.UtmUps5Tuple.easting: 0.5\n    test 724 pygeodesy.namedTuples.UtmUps5Tuple.northing: 0.5\n    test 725 pygeodesy.namedTuples.UtmUps5Tuple.band: 0.5\n    test 726 pygeodesy.namedTuples.UtmUps5Tuple._validated: True\n    test 727 pygeodesy.namedTuples.UtmUps5Tuple._validated: True\n    test 728 pygeodesy.namedTuples: UtmUps8Tuple(zone=0, hemipole='0.5', easting=0.5, northing=0.5, band='0.5', datum=0.5, gamma=0.5, scale=0.5)\n    test 729 pygeodesy.namedTuples: UtmUps8Tuple(zone=Number_, hemipole=Str, easting=Easting, northing=Northing, band=Band, datum=_Pass, gamma=Degrees, scale=Scalar)\n    test 730 pygeodesy.namedTuples.UtmUps8Tuple.zone: 0.5\n    test 731 pygeodesy.namedTuples.UtmUps8Tuple.hemipole: 0.5\n    test 732 pygeodesy.namedTuples.UtmUps8Tuple.easting: 0.5\n    test 733 pygeodesy.namedTuples.UtmUps8Tuple.northing: 0.5\n    test 734 pygeodesy.namedTuples.UtmUps8Tuple.band: 0.5\n    test 735 pygeodesy.namedTuples.UtmUps8Tuple.datum: 0.5\n    test 736 pygeodesy.namedTuples.UtmUps8Tuple.gamma: 0.5\n    test 737 pygeodesy.namedTuples.UtmUps8Tuple.scale: 0.5\n    test 738 pygeodesy.namedTuples.UtmUps8Tuple._validated: True\n    test 739 pygeodesy.namedTuples.UtmUps8Tuple._validated: True\n    test 740 pygeodesy.namedTuples: UtmUpsLatLon5Tuple(zone=0, band='0.5', hemipole='0.5', lat=0.5, lon=0.5)\n    test 741 pygeodesy.namedTuples: UtmUpsLatLon5Tuple(zone=Number_, band=Band, hemipole=Str, lat=Lat, lon=Lon)\n    test 742 pygeodesy.namedTuples.UtmUpsLatLon5Tuple.zone: 0.5\n    test 743 pygeodesy.namedTuples.UtmUpsLatLon5Tuple.band: 0.5\n    test 744 pygeodesy.namedTuples.UtmUpsLatLon5Tuple.hemipole: 0.5\n    test 745 pygeodesy.namedTuples.UtmUpsLatLon5Tuple.lat: 0.5\n    test 746 pygeodesy.namedTuples.UtmUpsLatLon5Tuple.lon: 0.5\n    test 747 pygeodesy.namedTuples.UtmUpsLatLon5Tuple._validated: True\n    test 748 pygeodesy.namedTuples.UtmUpsLatLon5Tuple._validated: True\n    test 749 pygeodesy.namedTuples: Vector2Tuple(x=0.5, y=0.5)\n    test 750 pygeodesy.namedTuples: Vector2Tuple(x=Scalar, y=Scalar)\n    test 751 pygeodesy.namedTuples.Vector2Tuple.x: 0.5\n    test 752 pygeodesy.namedTuples.Vector2Tuple.y: 0.5\n    test 753 pygeodesy.namedTuples.Vector2Tuple._validated: True\n    test 754 pygeodesy.namedTuples.Vector2Tuple._validated: True\n    test 755 pygeodesy.namedTuples: Vector3Tuple(x=0.5, y=0.5, z=0.5)\n    test 756 pygeodesy.namedTuples: Vector3Tuple(x=Scalar, y=Scalar, z=Scalar)\n    test 757 pygeodesy.namedTuples.Vector3Tuple.x: 0.5\n    test 758 pygeodesy.namedTuples.Vector3Tuple.y: 0.5\n    test 759 pygeodesy.namedTuples.Vector3Tuple.z: 0.5\n    test 760 pygeodesy.namedTuples.Vector3Tuple._validated: True\n    test 761 pygeodesy.namedTuples.Vector3Tuple._validated: True\n    test 762 pygeodesy.namedTuples: Vector4Tuple(x=0.5, y=0.5, z=0.5, h=0.5)\n    test 763 pygeodesy.namedTuples: Vector4Tuple(x=Scalar, y=Scalar, z=Scalar, h=Height)\n    test 764 pygeodesy.namedTuples.Vector4Tuple.x: 0.5\n    test 765 pygeodesy.namedTuples.Vector4Tuple.y: 0.5\n    test 766 pygeodesy.namedTuples.Vector4Tuple.z: 0.5\n    test 767 pygeodesy.namedTuples.Vector4Tuple.h: 0.5\n    test 768 pygeodesy.namedTuples.Vector4Tuple._validated: True\n    test 769 pygeodesy.namedTuples.Vector4Tuple._validated: True\n# lazily imported pygeodesy.osgr by bases.py line 199\n    test 770 pygeodesy.points: Shape2Tuple(nrows=0, ncols=0)\n    test 771 pygeodesy.points: Shape2Tuple(nrows=Number_, ncols=Number_)\n    test 772 pygeodesy.points.Shape2Tuple.nrows: 0.5\n    test 773 pygeodesy.points.Shape2Tuple.ncols: 0.5\n    test 774 pygeodesy.points.Shape2Tuple._validated: True\n    test 775 pygeodesy.points.Shape2Tuple._validated: True\n# lazily imported pygeodesy.resections by bases.py line 199\n    test 776 pygeodesy.resections: Collins5Tuple(pointP=0.5, pointH=0.5, a=0.5, b=0.5, c=0.5)\n    test 777 pygeodesy.resections: Collins5Tuple(pointP=_Pass, pointH=_Pass, a=Distance, b=Distance, c=Distance)\n    test 778 pygeodesy.resections.Collins5Tuple.pointP: 0.5\n    test 779 pygeodesy.resections.Collins5Tuple.pointH: 0.5\n    test 780 pygeodesy.resections.Collins5Tuple.a: 0.5\n    test 781 pygeodesy.resections.Collins5Tuple.b: 0.5\n    test 782 pygeodesy.resections.Collins5Tuple.c: 0.5\n    test 783 pygeodesy.resections.Collins5Tuple._validated: True\n    test 784 pygeodesy.resections.Collins5Tuple._validated: True\n    test 785 pygeodesy.resections: Survey3Tuple(PA=0.5, PB=0.5, PC=0.5)\n    test 786 pygeodesy.resections: Survey3Tuple(PA=Distance, PB=Distance, PC=Distance)\n    test 787 pygeodesy.resections.Survey3Tuple.PA: 0.5\n    test 788 pygeodesy.resections.Survey3Tuple.PB: 0.5\n    test 789 pygeodesy.resections.Survey3Tuple.PC: 0.5\n    test 790 pygeodesy.resections.Survey3Tuple._validated: True\n    test 791 pygeodesy.resections.Survey3Tuple._validated: True\n    test 792 pygeodesy.resections: Tienstra7Tuple(pointP=0.5, A=0.5, B=0.5, C=0.5, a=0.5, b=0.5, c=0.5)\n    test 793 pygeodesy.resections: Tienstra7Tuple(pointP=_Pass, A=Degrees, B=Degrees, C=Degrees, a=Distance, b=Distance, c=Distance)\n    test 794 pygeodesy.resections.Tienstra7Tuple.pointP: 0.5\n    test 795 pygeodesy.resections.Tienstra7Tuple.A: 0.5\n    test 796 pygeodesy.resections.Tienstra7Tuple.B: 0.5\n    test 797 pygeodesy.resections.Tienstra7Tuple.C: 0.5\n    test 798 pygeodesy.resections.Tienstra7Tuple.a: 0.5\n    test 799 pygeodesy.resections.Tienstra7Tuple.b: 0.5\n    test 800 pygeodesy.resections.Tienstra7Tuple.c: 0.5\n    test 801 pygeodesy.resections.Tienstra7Tuple._validated: True\n    test 802 pygeodesy.resections.Tienstra7Tuple._validated: True\n    test 803 pygeodesy.resections: TriAngle5Tuple(radA=0.5, radB=0.5, radC=0.5, rIn=0.5, area=0.5)\n    test 804 pygeodesy.resections: TriAngle5Tuple(radA=Radians, radB=Radians, radC=Radians, rIn=Distance, area=_Pass)\n    test 805 pygeodesy.resections.TriAngle5Tuple.radA: 0.5\n    test 806 pygeodesy.resections.TriAngle5Tuple.radB: 0.5\n    test 807 pygeodesy.resections.TriAngle5Tuple.radC: 0.5\n    test 808 pygeodesy.resections.TriAngle5Tuple.rIn: 0.5\n    test 809 pygeodesy.resections.TriAngle5Tuple.area: 0.5\n    test 810 pygeodesy.resections.TriAngle5Tuple._validated: True\n    test 811 pygeodesy.resections.TriAngle5Tuple._validated: True\n    test 812 pygeodesy.resections: TriSide2Tuple(a=0.5, radA=0.5)\n    test 813 pygeodesy.resections: TriSide2Tuple(a=Distance, radA=Radians)\n    test 814 pygeodesy.resections.TriSide2Tuple.a: 0.5\n    test 815 pygeodesy.resections.TriSide2Tuple.radA: 0.5\n    test 816 pygeodesy.resections.TriSide2Tuple._validated: True\n    test 817 pygeodesy.resections.TriSide2Tuple._validated: True\n    test 818 pygeodesy.resections: TriSide4Tuple(a=0.5, b=0.5, radC=0.5, d=0.5)\n    test 819 pygeodesy.resections: TriSide4Tuple(a=Distance, b=Distance, radC=Radians, d=Distance)\n    test 820 pygeodesy.resections.TriSide4Tuple.a: 0.5\n    test 821 pygeodesy.resections.TriSide4Tuple.b: 0.5\n    test 822 pygeodesy.resections.TriSide4Tuple.radC: 0.5\n    test 823 pygeodesy.resections.TriSide4Tuple.d: 0.5\n    test 824 pygeodesy.resections.TriSide4Tuple._validated: True\n    test 825 pygeodesy.resections.TriSide4Tuple._validated: True\n# lazily imported pygeodesy.simplify by bases.py line 199\n# lazily imported pygeodesy.sphericalBase by bases.py line 199\n# lazily imported pygeodesy.sphericalNvector by bases.py line 199\n# lazily imported pygeodesy.sphericalTrigonometry by bases.py line 199\n# lazily imported pygeodesy.trf by bases.py line 199\n    test 826 pygeodesy.trf: TRFXform7Tuple(tx=0.5, ty=0.5, tz=0.5, s=0.5, sx=0.5, sy=0.5, sz=0.5)\n    test 827 pygeodesy.trf: TRFXform7Tuple(tx=Float, ty=Float, tz=Float, s=Float, sx=Float, sy=Float, sz=Float)\n    test 828 pygeodesy.trf.TRFXform7Tuple.tx: 0.5\n    test 829 pygeodesy.trf.TRFXform7Tuple.ty: 0.5\n    test 830 pygeodesy.trf.TRFXform7Tuple.tz: 0.5\n    test 831 pygeodesy.trf.TRFXform7Tuple.s: 0.5\n    test 832 pygeodesy.trf.TRFXform7Tuple.sx: 0.5\n    test 833 pygeodesy.trf.TRFXform7Tuple.sy: 0.5\n    test 834 pygeodesy.trf.TRFXform7Tuple.sz: 0.5\n    test 835 pygeodesy.trf.TRFXform7Tuple._validated: True\n    test 836 pygeodesy.trf.TRFXform7Tuple._validated: True\n# lazily imported pygeodesy.utmups by bases.py line 199\n# lazily imported pygeodesy.vector2d by bases.py line 199\n    test 837 pygeodesy.vector2d: Circin6Tuple(radius=0.5, center=0.5, deltas=0.5, cA=0.5, cB=0.5, cC=0.5)\n    test 838 pygeodesy.vector2d: Circin6Tuple(radius=Radius, center=_Pass, deltas=_Pass, cA=_Pass, cB=_Pass, cC=_Pass)\n    test 839 pygeodesy.vector2d.Circin6Tuple.radius: 0.5\n    test 840 pygeodesy.vector2d.Circin6Tuple.center: 0.5\n    test 841 pygeodesy.vector2d.Circin6Tuple.deltas: 0.5\n    test 842 pygeodesy.vector2d.Circin6Tuple.cA: 0.5\n    test 843 pygeodesy.vector2d.Circin6Tuple.cB: 0.5\n    test 844 pygeodesy.vector2d.Circin6Tuple.cC: 0.5\n    test 845 pygeodesy.vector2d.Circin6Tuple._validated: True\n    test 846 pygeodesy.vector2d.Circin6Tuple._validated: True\n    test 847 pygeodesy.vector2d: Circum3Tuple(radius=0.5, center=0.5, deltas=0.5)\n    test 848 pygeodesy.vector2d: Circum3Tuple(radius=Radius, center=_Pass, deltas=_Pass)\n    test 849 pygeodesy.vector2d.Circum3Tuple.radius: 0.5\n    test 850 pygeodesy.vector2d.Circum3Tuple.center: 0.5\n    test 851 pygeodesy.vector2d.Circum3Tuple.deltas: 0.5\n    test 852 pygeodesy.vector2d.Circum3Tuple._validated: True\n    test 853 pygeodesy.vector2d.Circum3Tuple._validated: True\n    test 854 pygeodesy.vector2d: Circum4Tuple(radius=0.5, center=0.5, rank=0, residuals=0.5)\n    test 855 pygeodesy.vector2d: Circum4Tuple(radius=Radius, center=_Pass, rank=Int, residuals=_Pass)\n    test 856 pygeodesy.vector2d.Circum4Tuple.radius: 0.5\n    test 857 pygeodesy.vector2d.Circum4Tuple.center: 0.5\n    test 858 pygeodesy.vector2d.Circum4Tuple.rank: 0.5\n    test 859 pygeodesy.vector2d.Circum4Tuple.residuals: 0.5\n    test 860 pygeodesy.vector2d.Circum4Tuple._validated: True\n    test 861 pygeodesy.vector2d.Circum4Tuple._validated: True\n    test 862 pygeodesy.vector2d: Meeus2Tuple(radius=0.5, Type=0.5)\n    test 863 pygeodesy.vector2d: Meeus2Tuple(radius=Radius, Type=_Pass)\n    test 864 pygeodesy.vector2d.Meeus2Tuple.radius: 0.5\n    test 865 pygeodesy.vector2d.Meeus2Tuple.Type: 0.5\n    test 866 pygeodesy.vector2d.Meeus2Tuple._validated: True\n    test 867 pygeodesy.vector2d.Meeus2Tuple._validated: True\n    test 868 pygeodesy.vector2d: Radii11Tuple(rA=0.5, rB=0.5, rC=0.5, cR=0.5, rIn=0.5, riS=0.5, roS=0.5, a=0.5, b=0.5, c=0.5, s=0.5)\n    test 869 pygeodesy.vector2d: Radii11Tuple(rA=Meter, rB=Meter, rC=Meter, cR=Meter, rIn=Meter, riS=Meter, roS=Meter, a=Meter, b=Meter, c=Meter, s=Meter)\n    test 870 pygeodesy.vector2d.Radii11Tuple.rA: 0.5\n    test 871 pygeodesy.vector2d.Radii11Tuple.rB: 0.5\n    test 872 pygeodesy.vector2d.Radii11Tuple.rC: 0.5\n    test 873 pygeodesy.vector2d.Radii11Tuple.cR: 0.5\n    test 874 pygeodesy.vector2d.Radii11Tuple.rIn: 0.5\n    test 875 pygeodesy.vector2d.Radii11Tuple.riS: 0.5\n    test 876 pygeodesy.vector2d.Radii11Tuple.roS: 0.5\n    test 877 pygeodesy.vector2d.Radii11Tuple.a: 0.5\n    test 878 pygeodesy.vector2d.Radii11Tuple.b: 0.5\n    test 879 pygeodesy.vector2d.Radii11Tuple.c: 0.5\n    test 880 pygeodesy.vector2d.Radii11Tuple.s: 0.5\n    test 881 pygeodesy.vector2d.Radii11Tuple._validated: True\n    test 882 pygeodesy.vector2d.Radii11Tuple._validated: True\n    test 883 pygeodesy.vector2d: Soddy4Tuple(radius=0.5, center=0.5, deltas=0.5, outer=0.5)\n    test 884 pygeodesy.vector2d: Soddy4Tuple(radius=Radius, center=_Pass, deltas=_Pass, outer=Radius)\n    test 885 pygeodesy.vector2d.Soddy4Tuple.radius: 0.5\n    test 886 pygeodesy.vector2d.Soddy4Tuple.center: 0.5\n    test 887 pygeodesy.vector2d.Soddy4Tuple.deltas: 0.5\n    test 888 pygeodesy.vector2d.Soddy4Tuple.outer: 0.5\n    test 889 pygeodesy.vector2d.Soddy4Tuple._validated: True\n    test 890 pygeodesy.vector2d.Soddy4Tuple._validated: True\n    test 891 pygeodesy.vector2d: Triaxum5Tuple(a=0.5, b=0.5, c=0.5, rank=0, residuals=0.5)\n    test 892 pygeodesy.vector2d: Triaxum5Tuple(a=Radius, b=Radius, c=Radius, rank=Int, residuals=_Pass)\n    test 893 pygeodesy.vector2d.Triaxum5Tuple.a: 0.5\n    test 894 pygeodesy.vector2d.Triaxum5Tuple.b: 0.5\n    test 895 pygeodesy.vector2d.Triaxum5Tuple.c: 0.5\n    test 896 pygeodesy.vector2d.Triaxum5Tuple.rank: 0.5\n    test 897 pygeodesy.vector2d.Triaxum5Tuple.residuals: 0.5\n    test 898 pygeodesy.vector2d.Triaxum5Tuple._validated: True\n    test 899 pygeodesy.vector2d.Triaxum5Tuple._validated: True\n# lazily imported pygeodesy.webmercator by bases.py line 199\n    test 900 pygeodesy.webmercator: EasNorRadius3Tuple(easting=0.5, northing=0.5, radius=0.5)\n    test 901 pygeodesy.webmercator: EasNorRadius3Tuple(easting=Easting, northing=Northing, radius=Radius)\n    test 902 pygeodesy.webmercator.EasNorRadius3Tuple.easting: 0.5\n    test 903 pygeodesy.webmercator.EasNorRadius3Tuple.northing: 0.5\n    test 904 pygeodesy.webmercator.EasNorRadius3Tuple.radius: 0.5\n    test 905 pygeodesy.webmercator.EasNorRadius3Tuple._validated: True\n    test 906 pygeodesy.webmercator.EasNorRadius3Tuple._validated: True\n# lazily imported pygeodesy.wgrs by bases.py line 199\n# lazily imported pygeodesy.auxilats by bases.py line 199\n# lazily imported pygeodesy.geodesicx by bases.py line 199\n# lazily imported pygeodesy.rhumb by bases.py line 199\n    test 907 pygeodesy.rhumb.solve: RhumbSolve7Tuple(lat1=0.5, lon1=0.5, lat2=0.5, lon2=0.5, azi12=0.5, s12=0.5, S12=0.5)\n    test 908 pygeodesy.rhumb.solve: RhumbSolve7Tuple(lat1=Lat, lon1=Lon, lat2=Lat, lon2=Lon, azi12=Azimuth, s12=Meter, S12=Meter2)\n    test 909 pygeodesy.rhumb.solve.RhumbSolve7Tuple.lat1: 0.5\n    test 910 pygeodesy.rhumb.solve.RhumbSolve7Tuple.lon1: 0.5\n    test 911 pygeodesy.rhumb.solve.RhumbSolve7Tuple.lat2: 0.5\n    test 912 pygeodesy.rhumb.solve.RhumbSolve7Tuple.lon2: 0.5\n    test 913 pygeodesy.rhumb.solve.RhumbSolve7Tuple.azi12: 0.5\n    test 914 pygeodesy.rhumb.solve.RhumbSolve7Tuple.s12: 0.5\n    test 915 pygeodesy.rhumb.solve.RhumbSolve7Tuple.S12: 0.5\n    test 916 pygeodesy.rhumb.solve.RhumbSolve7Tuple._validated: True\n    test 917 pygeodesy.rhumb.solve.RhumbSolve7Tuple._validated: True\n    test 918 pygeodesy.triaxials.bases: Conformal5Tuple(x=0.5, y=0.5, z=0.5, scale=0.5, llk=0.5)\n    test 919 pygeodesy.triaxials.bases: Conformal5Tuple(x=Easting, y=Northing, z=_Pass, scale=Scalar, llk=_Pass)\n    test 920 pygeodesy.triaxials.bases.Conformal5Tuple.x: 0.5\n    test 921 pygeodesy.triaxials.bases.Conformal5Tuple.y: 0.5\n    test 922 pygeodesy.triaxials.bases.Conformal5Tuple.z: 0.5\n    test 923 pygeodesy.triaxials.bases.Conformal5Tuple.scale: 0.5\n    test 924 pygeodesy.triaxials.bases.Conformal5Tuple.llk: 0.5\n    test 925 pygeodesy.triaxials.bases.Conformal5Tuple._validated: True\n    test 926 pygeodesy.triaxials.bases.Conformal5Tuple._validated: True\n    test 927 pygeodesy.triaxials.conformal3: BetOmgGam5Tuple(bet=Ang, omg=Ang, gam=_Pass, scale=Scalar, llk=_Pass)\n    test 928 pygeodesy.triaxials.conformal3.BetOmgGam5Tuple.bet: 0.5\n    test 929 pygeodesy.triaxials.conformal3.BetOmgGam5Tuple.omg: 0.5\n    test 930 pygeodesy.triaxials.conformal3.BetOmgGam5Tuple.gam: 0.5\n    test 931 pygeodesy.triaxials.conformal3.BetOmgGam5Tuple.scale: 0.5\n    test 932 pygeodesy.triaxials.conformal3.BetOmgGam5Tuple.llk: 0.5\n    test 933 pygeodesy.triaxials.conformal3.BetOmgGam5Tuple._validated: True\n    test 934 pygeodesy.triaxials.conformal3.BetOmgGam5Tuple._validated: True\n    test 935 pygeodesy.triaxials.triaxial3: BetOmgAlp5Tuple(bet=Ang, omg=Ang, alp=_Pass, h=_HeightINT0, llk=_Pass)\n    test 936 pygeodesy.triaxials.triaxial3.BetOmgAlp5Tuple.bet: 0.5\n    test 937 pygeodesy.triaxials.triaxial3.BetOmgAlp5Tuple.omg: 0.5\n    test 938 pygeodesy.triaxials.triaxial3.BetOmgAlp5Tuple.alp: 0.5\n    test 939 pygeodesy.triaxials.triaxial3.BetOmgAlp5Tuple.h: 0.5\n    test 940 pygeodesy.triaxials.triaxial3.BetOmgAlp5Tuple.llk: 0.5\n    test 941 pygeodesy.triaxials.triaxial3.BetOmgAlp5Tuple._validated: True\n    test 942 pygeodesy.triaxials.triaxial3.BetOmgAlp5Tuple._validated: True\n    test 943 pygeodesy.triaxials.triaxial3: Cartesian5Tuple(x=0.5, y=0.5, z=0.5, h=0.5, llk=0.5)\n    test 944 pygeodesy.triaxials.triaxial3: Cartesian5Tuple(x=Scalar, y=Scalar, z=Scalar, h=Height, llk=_Pass)\n    test 945 pygeodesy.triaxials.triaxial3.Cartesian5Tuple.x: 0.5\n    test 946 pygeodesy.triaxials.triaxial3.Cartesian5Tuple.y: 0.5\n    test 947 pygeodesy.triaxials.triaxial3.Cartesian5Tuple.z: 0.5\n    test 948 pygeodesy.triaxials.triaxial3.Cartesian5Tuple.h: 0.5\n    test 949 pygeodesy.triaxials.triaxial3.Cartesian5Tuple.llk: 0.5\n    test 950 pygeodesy.triaxials.triaxial3.Cartesian5Tuple._validated: True\n    test 951 pygeodesy.triaxials.triaxial3.Cartesian5Tuple._validated: True\n    test 952 pygeodesy.triaxials.triaxial3: PhiLamZet5Tuple(phi=Ang, lam=Ang, zet=_Pass, h=_HeightINT0, llk=_Pass)\n    test 953 pygeodesy.triaxials.triaxial3.PhiLamZet5Tuple.phi: 0.5\n    test 954 pygeodesy.triaxials.triaxial3.PhiLamZet5Tuple.lam: 0.5\n    test 955 pygeodesy.triaxials.triaxial3.PhiLamZet5Tuple.zet: 0.5\n    test 956 pygeodesy.triaxials.triaxial3.PhiLamZet5Tuple.h: 0.5\n    test 957 pygeodesy.triaxials.triaxial3.PhiLamZet5Tuple.llk: 0.5\n    test 958 pygeodesy.triaxials.triaxial3.PhiLamZet5Tuple._validated: True\n    test 959 pygeodesy.triaxials.triaxial3.PhiLamZet5Tuple._validated: True\n    test 960 pygeodesy.triaxials.triaxial5: BetaOmega2Tuple(beta=0.5, omega=0.5)\n    test 961 pygeodesy.triaxials.triaxial5: BetaOmega2Tuple(beta=_Pass, omega=_Pass)\n    test 962 pygeodesy.triaxials.triaxial5.BetaOmega2Tuple.beta: 0.5\n    test 963 pygeodesy.triaxials.triaxial5.BetaOmega2Tuple.omega: 0.5\n    test 964 pygeodesy.triaxials.triaxial5.BetaOmega2Tuple._validated: True\n    test 965 pygeodesy.triaxials.triaxial5.BetaOmega2Tuple._validated: True\n    test 966 pygeodesy.triaxials.triaxial5: BetaOmega3Tuple(beta=0.5, omega=0.5, height=0.5)\n    test 967 pygeodesy.triaxials.triaxial5: BetaOmega3Tuple(beta=_Pass, omega=_Pass, height=Meter)\n    test 968 pygeodesy.triaxials.triaxial5.BetaOmega3Tuple.beta: 0.5\n    test 969 pygeodesy.triaxials.triaxial5.BetaOmega3Tuple.omega: 0.5\n    test 970 pygeodesy.triaxials.triaxial5.BetaOmega3Tuple.height: 0.5\n    test 971 pygeodesy.triaxials.triaxial5.BetaOmega3Tuple._validated: True\n    test 972 pygeodesy.triaxials.triaxial5.BetaOmega3Tuple._validated: True\n    test 973 pygeodesy.triaxials.triaxial5: Conformal2Tuple(x=0.5, y=0.5)\n    test 974 pygeodesy.triaxials.triaxial5: Conformal2Tuple(x=_Pass, y=_Pass)\n    test 975 pygeodesy.triaxials.triaxial5.Conformal2Tuple.x: 0.5\n    test 976 pygeodesy.triaxials.triaxial5.Conformal2Tuple.y: 0.5\n    test 977 pygeodesy.triaxials.triaxial5.Conformal2Tuple._validated: True\n    test 978 pygeodesy.triaxials.triaxial5.Conformal2Tuple._validated: True\n    test 979 pygeodesy.named._NamedTuple._validated: False\n\n    all 979 testNamedTuples.py tests passed (pygeodesy 26.3.26 Python 3.12.10 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 2.1.0 scipy 1.14.1 Math 2 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 isLazy 3 -W  default) 64.862 ms\nrunning /usr/local/bin/p....n3.12 -W default ~/PyGeodesy/test/testNavlabExamples.py\n./pygeodesy/ellipsoidalNvector.py:61: DeprecationWarning: class L{Ned<pygeodesy.ellipsoidalNvector.Ned>} has been DEPRECATED on 2024.02.04, use class L{pygeodesy.Ned}.\n  deprecated_class(self.__class__)\n./test/testNavlabExamples.py:41: DeprecationWarning: method L{toRepr<pygeodesy.ellipsoidalNvector.Ned.toRepr>} has been DEPRECATED, use class L{pygeodesy.Ned}.\n  t.test(1, 'delta', delta.toRepr(prec=3), '[L:470357.384, B:45.109°, E:-2.12°]')  # DEPRECATED\n./test/testNavlabExamples.py:43: DeprecationWarning: Property_RO L{bearing<pygeodesy.ellipsoidalNvector.Ned.bearing>} has been DEPRECATED, use C{azimuth}.\n  t.test(1, 'bearing', delta.bearing, 45.109, fmt='%.3f')  # 45.109°\n./test/testNavlabExamples.py:44: DeprecationWarning: Property_RO L{length<pygeodesy.ellipsoidalNvector.Ned.length>} has been DEPRECATED, use C{slantrange}.\n  t.test(1, 'length', delta.length, 470357.384, fmt='%.3f')  # 470357.384 m\n./test/testNavlabExamples.py:63: DeprecationWarning: method L{toRepr<pygeodesy.ellipsoidalNvector.Ned.toRepr>} has been DEPRECATED, use class L{pygeodesy.Ned}.\n  t.test(2, 'delta', delta.toRepr(prec=3), '[L:3606.938, B:33.69°, E:-1.589°]')  # DEPRECATED\n./pygeodesy/ellipsoidalNvector.py:247: DeprecationWarning: Property_RO L{ned<pygeodesy.ellipsoidalNvector.Ned.ned>} has been DEPRECATED, use property C{ned4}.\n  dn = delta.ned[:3]  # XXX Ned4Tuple.to3Tuple\n./pygeodesy/deprecated/classes.py:33: DeprecationWarning: class L{Ned3Tuple<pygeodesy.deprecated.classes.Ned3Tuple>} has been DEPRECATED, use class L{Ned4Tuple}, ignoring item C{ltp}.\n  deprecated_class(cls)\n./test/testNavlabExamples.py:71: DeprecationWarning: method L{toRepr<pygeodesy.ellipsoidalNvector.Ned.toRepr>} has been DEPRECATED, use class L{pygeodesy.Ned}.\n  t.test(2, 'delta', delta.toRepr(prec=3), '[L:116807.681, B:222.493°, E:-0.524°]')  # DEPRECATED\n./pygeodesy/ellipsoidalKarney.py:94: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return self.datum.ellipsoid.geodesic\n./test/testNavlabExamples.py:143: DeprecationWarning: function L{toNed<pygeodesy.ellipsoidalNvector.toNed>} has been DEPRECATED, use L{pygeodesy.Aer}C{(bearing, elevation, distance).xyzLocal.toNed(B{Ned}, name=B{name})} or L{XyzLocal}C{(pygeodesy.Aer(bearing, elevation, distance)).toNed(B{Ned}, name=B{name})}.\n  d = ellipsoidalNvector.toNed(116809.178, 222.493, -0.5416)\n./test/testNavlabExamples.py:145: DeprecationWarning: Property_RO L{bearing<pygeodesy.ellipsoidalNvector.Ned.bearing>} has been DEPRECATED, use C{azimuth}.\n  TestsBase.test(t, 'bearing',   d.bearing, '227.507',  fmt='%.3f')  # '222.493'\n./test/testNavlabExamples.py:147: DeprecationWarning: Property_RO L{length<pygeodesy.ellipsoidalNvector.Ned.length>} has been DEPRECATED, use C{slantrange}.\n  TestsBase.test(t, 'length',    d.length, '116809.178',  fmt='%.3f')\n./test/testNavlabExamples.py:148: DeprecationWarning: method L{toVector3d<pygeodesy.ellipsoidalNvector.Ned.toVector3d>} has been DEPRECATED, use property L{xyz}.\n  v = d.toVector3d()\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.Datums from .datums by testNavlabExamples.py line 18\n# lazily imported pygeodesy.F_D from .dms by testNavlabExamples.py line 18\n# lazily imported pygeodesy.ellipsoidalExact by testNavlabExamples.py line 18\n# lazily imported pygeodesy.ellipsoidalNvector by testNavlabExamples.py line 18\n# lazily imported pygeodesy.ellipsoidalVincenty by testNavlabExamples.py line 18\n# lazily imported pygeodesy.sphericalNvector by testNavlabExamples.py line 18\n# lazily imported pygeodesy.sphericalTrigonometry by testNavlabExamples.py line 18\n# lazily imported pygeodesy.EcefVeness from .ecef by testNavlabExamples.py line 18\n# lazily imported pygeodesy.Ned from .ltpTuples by testNavlabExamples.py line 18\n# lazily imported pygeodesy.Ned4Tuple from .ltpTuples by testNavlabExamples.py line 18\n\n    testing testNavlabExamples.py 23.03.27 isLazy=3\n    test 1 Example 1 delta: [331730.863, 332998.501, 17398.304]\n    test 2 Example 1 delta: [L:470357.384, B:45.109°, E:-2.12°]\n    test 3 Example 1 elevation: -2.1198\n    test 4 Example 1 bearing: 45.109\n    test 5 Example 1 length: 470357.384\n\n    test 6 Example 1 delta: [331730.863, 332998.501, 17398.304]\n    test 7 Example 1 delta: <class 'pygeodesy.ltpTuples.Ned'>\n# lazily imported pygeodesy.ltp by ellipsoidalNvector.py line 201\n    test 8 Example 1 delta: (331730.863099, 332998.501491, 17398.304211, Ltp(lat0=1.0, lon0=2.0, height0=3.0, M=EcefMatrix(_0_0_=-0.034899, _0_1_=-0.017442, _0_2_=0.999239, _1_0_=0.999391, _1_1_=-0.000609, _1_2_=0.034894, _2_0_=0.0, _2_1_=0.999848, _2_2_=0.017452), ecef=EcefVeness(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name=''))\n    test 9 Example 1 delta: <class 'pygeodesy.ltpTuples.Ned4Tuple'>\n    test 10 Example 1 delta: <class 'pygeodesy.ecef.EcefVeness'>\n\n    test 11 Example 2 LatLon: 53.301°N, 063.435°E, +400.00m\n    test 12 Example 2 toNvector: (0.267, 0.535, 0.802, +400.00)\n    test 13 Example 2 delta: [3000.0, 2000.0, 100.0]\n    test 14 Example 2 delta: [L:3606.938, B:33.69°, E:-1.589°]\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by <frozen importlib._bootstrap> line 1412\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by <frozen importlib._bootstrap> line 1412\n# lazily imported pygeodesy.Conformal2Tuple from .triaxials.triaxial5 by <frozen importlib._bootstrap> line 1412\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by classes.py line 21\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by classes.py line 21\n# lazily imported pygeodesy.Conformal2Tuple from .triaxials.triaxial5 by classes.py line 21\n# lazily imported pygeodesy.deprecated by ltpTuples.py line 483\n    test 15 Example 2 destinationNed: 53.327702°N, 063.465119°E, +296.01m  FAILED, KNOWN, expected 53.327726°N, 063.464965°E, +299.138m\n    test 16 Example 2 delta: [-86126, -78900, 1069]\n    test 17 Example 2 delta: [L:116807.681, B:222.493°, E:-0.524°]\n    test 18 Example 2 destinationNed: 48.88667°N, 002.37472°E\n\n    test 19 Example 3 toLatLon: 39.379°N, 048.013°W, +4702059.83m\n\n    test 20 Example 4 toCartesian: [6373290.277, 222560.201, 110568.827]\n\n    test 21 Example 5 distanceTo: 332457\n\n    test 22 Example 6 intermediateChordTo: 89.799981°N, 180.0°E\n    test 23 Example 6 intermediateTo: 89.8°N, 180.0°E\n    test 24 Example 6 intermediateChordTo: 51.372294°N, 000.707192°E\n    test 25 Example 6 intermediateTo: 51.372084°N, 000.707337°E\n\n    test 26 Example 7 meanOf: 67.2362°N, 006.9175°W\n\n    test 27 Example 8 destination(pygeodesy.sphericalNvector): 79.991549°N, 090.017698°W\n    test 28 Example 8 destination(pygeodesy.sphericalTrigonometry): 79.991549°N, 090.017698°W\n    test 29 Example 8 destination(pygeodesy.ellipsoidalVincenty): 79.991584°N, 090.017621°W\n# lazily imported pygeodesy.ellipsoidalKarney by testNavlabExamples.py line 120\n# lazily imported pygeodesy.geodesicw by ellipsoids.py line 1074\n    test 30 Example 8 destination(pygeodesy.ellipsoidalKarney): 79.991584°N, 090.017621°W\n# lazily imported pygeodesy.geodesicx by ellipsoids.py line 1082\n# lazily imported pygeodesy.elliptic by gxline.py line 289\n    test 31 Example 8 destination(pygeodesy.ellipsoidalExact): 79.991584°N, 090.017621°W\n# lazily imported pygeodesy.ellipsoidalGeodSolve by testNavlabExamples.py line 124\n# lazily imported pygeodesy.geodsolve by ellipsoids.py line 1093\n    test 32 Example 8 destination(pygeodesy.ellipsoidalGeodSolve): 79.991584°N, 090.017621°W\n\n    test 33 Example 9 intersection: 40.318643°N, 055.901868°E\n\n    test 34 Example 10 crossTrackDistance: 11118\n\n    test 35 toNed: [-78901.1, -86126.6, 1104.1]\n    test 36 bearing: 227.507\n    test 37 elevation: -0.5416\n    test 38 length: 116809.178\n    test 39 toVector3d: (-86126.6, -78901.1, -1104.1)\n\n    19 of 39 testNavlabExamples.py tests (48.7%) FAILED, incl. 1 KNOWN plus 18 DeprecationWarnings (pygeodesy 26.3.26 Python 3.12.10 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 2.1.0 scipy 1.14.1 Math 2 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 isLazy 3 -W  default) 90.295 ms\nrunning /usr/local/bin/p....n3.12 -W default ~/PyGeodesy/test/testOsgr.py\n./test/testOsgr.py:25: DeprecationWarning: method L{convertDatum<pygeodesy.ellipsoidalNvector.LatLon.convertDatum>} has been DEPRECATED, use method L{toDatum}.\n  r = p.convertDatum(Datums.OSGB36)\n./test/testOsgr.py:27: DeprecationWarning: method L{convertDatum<pygeodesy.ellipsoidalNvector.LatLon.convertDatum>} has been DEPRECATED, use method L{toDatum}.\n  r = r.convertDatum(Datums.WGS84)\n./test/testOsgr.py:25: DeprecationWarning: method L{convertDatum<pygeodesy.ellipsoidalVincenty.LatLon.convertDatum>} has been DEPRECATED, use method L{toDatum}.\n  r = p.convertDatum(Datums.OSGB36)\n./test/testOsgr.py:27: DeprecationWarning: method L{convertDatum<pygeodesy.ellipsoidalVincenty.LatLon.convertDatum>} has been DEPRECATED, use method L{toDatum}.\n  r = r.convertDatum(Datums.WGS84)\n./test/testOsgr.py:25: DeprecationWarning: method L{convertDatum<pygeodesy.ellipsoidalKarney.LatLon.convertDatum>} has been DEPRECATED, use method L{toDatum}.\n  r = p.convertDatum(Datums.OSGB36)\n./test/testOsgr.py:27: DeprecationWarning: method L{convertDatum<pygeodesy.ellipsoidalKarney.LatLon.convertDatum>} has been DEPRECATED, use method L{toDatum}.\n  r = r.convertDatum(Datums.WGS84)\n./pygeodesy/ellipsoidalKarney.py:94: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return self.datum.ellipsoid.geodesic\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.F_D from .dms by testOsgr.py line 11\n# lazily imported pygeodesy.F_DEG from .dms by testOsgr.py line 11\n# lazily imported pygeodesy.F_DMS from .dms by testOsgr.py line 11\n# lazily imported pygeodesy.fstr from .streprs by testOsgr.py line 11\n# lazily imported pygeodesy.Datums from .datums by testOsgr.py line 11\n# lazily imported pygeodesy.Osgr from .osgr by testOsgr.py line 11\n# lazily imported pygeodesy.parseOSGR from .osgr by testOsgr.py line 11\n# lazily imported pygeodesy.toOsgr from .osgr by testOsgr.py line 11\n# lazily imported pygeodesy.ellipsoidalExact by testOsgr.py line 221\n# lazily imported pygeodesy.ellipsoidalKarney by testOsgr.py line 221\n# lazily imported pygeodesy.ellipsoidalNvector by testOsgr.py line 221\n# lazily imported pygeodesy.ellipsoidalVincenty by testOsgr.py line 221\n\n    testing testOsgr.py 23.03.27 (module pygeodesy.osgr 25.05.12) isLazy=3\n\n    testOSgr(pygeodesy.ellipsoidalNvector, 25.05.12)\n    test 1 WGS84: 51.4778°N, 000.0016°W\n# lazily imported pygeodesy.ecef by ellipsoidalNvector.py line 524\n    test 2 OSGB36: 51.477284°N, 000.00002°E\n    test 3 WGS84: 51.4778°N, 000.0016°W\n    test 4 OSgr1: TG 51409 13177\n    test 5 OSgr1: [G:TG, E:51409, N:13177]\n    test 6 iteration: None\n    test 7 toLatLon1: 52°39′28.72″N, 001°42′57.79″E\n    test 8 toLatLon1: 52.657979°N, 001.716052°E\n    test 9 iteration: 4\n    test 10 toOsgr1: 651409.903,313177.270\n    test 11 toOsgr1: 651409.903,313177.270\n    test 12 toOsgr1: TG5140990313177270\n    test 13 toLatLon2: 52°39′27.25″N, 001°43′04.52″E\n    test 14 toLatLon2: 52.65757°N, 001.717922°E  FAILED, KNOWN, expected 52.657570°N, 001.717922°E\n    test 15 iteration: 4\n    test 16 toOsgr2: 651409,313177\n    test 17 toOsgr2: 651409,313177\n    test 18 toOsgr3: TG 51409 13177\n    test 19 toLatLon3: (52.65798, 1.71605, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n# lazily imported pygeodesy.ktm by osgr.py line 108\n    test 20 toOsgr4: TG 51409 13177\n    test 21 toLatLon4: (52.657570000, 1.717910000, Datum(name='OSGB36', ellipsoid=Ellipsoids.Airy1830, transform=Transforms.OSGB36))\n    test 22 toLatLon4: (52.657569999, 1.717910045, Datum(name='OSGB36', ellipsoid=Ellipsoids.Airy1830, transform=Transforms.OSGB36))\n    test 23 toLatLon4: (52.657978296, 1.716040366, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 24 toLatLon4: (52.657978295, 1.716040411, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 25 toOsgr5: 0.001\n    test 26 toOsgr5: TG5140900013177000\n    test 27 toOsgr5: 651409.000,313177.000\n    test 28 toLatLon5: (52.657976595, 1.716038422, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n\n    test 29 OSGR1: TG 48251 11932\n    test 30 OSGR1: [G:TG, E:48251, N:11932]\n    test 31 OSGR2: TG 51409 13177\n    test 32 OSGR2: [G:TG, E:51409, N:13177]\n    test 33 OSGR3: TG 51409 13177\n    test 34 OSGR3: [G:TG, E:51409, N:13177]\n    test 35 OSGR4: TG 51409 13177\n    test 36 OSGR4: [G:TG, E:51409, N:13177]\n    test 37 OSGR5: 651409,313177\n    test 38 OSGR5: TG51409001317700\n    test 39 OSGR5: 651409,313177\n    test 40 OSGR5: 651409.000000,313177.000000\n    test 41 OSGR5: 651409.00,313177.00\n    test 42 OSGR5: [OSGR:651409.000,313177.000]\n    test 43 OSGR5: [OSGR:651409,313177]\n    test 44 OSGR5: [OSGR:651409.000,313177.000]\n    test 45 OSGR5: [OSGR:651,313]\n    test 46 OSGR6: 651409.000,313177.000\n    test 47 OSGR6: 651409,313177\n    test 48 OSGR6: (651409, 313177)\n    test 49 OSGR6: 651409,313177\n    test 50 OSGR6: 651409,313177\n    test 51 OSGR6: (651409, 313177)\n    test 52 OSGR6: 651409 313177\n\n    test 53 issue: 38\n    test 54 toOsgr: [G:TL, E:29158, N:35174]\n    test 55 toOsgr: 529158.072, 235174.785\n    test 56 toOsgr: OSGB36\n    test 57 toLatLonOSGB36: 51°59′58.37″N, 000°07′06.14″W\n    test 58 toLatLonOSGB36: OSGB36\n    test 59 toLatLonWGS84 : 52°00′00.0″N, 000°07′12.0″W\n    test 60 toLatLonWGS84 : WGS84\n\n    test 61 Osgr: [G:TQ, E:32014, N:23971]\n    test 62 Osgr: 532014.0, 123971.0\n    test 63 Osgr: OSGB36\n    test 64 toLatLonOSGB36: 50.999425N, 000.118417W\n    test 65 toLatLonOSGB36: OSGB36\n    test 66 toLatLonWGS84 : 50.999995N, 000.120004W\n    test 67 toLatLonWGS84 : WGS84\n    test 68 parseOSGR: [G:TQ, E:32014, N:23971]\n    test 69 parseOSGR: 532014.0, 123971.0\n    test 70 parseOSGR: OSGB36\n    test 71 toLatLonOSGB36: 50.999425N, 000.118417W\n    test 72 toLatLonOSGB36: OSGB36\n    test 73 toLatLonWGS84: 50.999995N, 000.120004W\n    test 74 toLatLonWGS84: WGS84\n    test 75 toOsgr: [G:TQ, E:32013, N:23971]\n    test 76 toOsgr: 532013.969, 123971.046\n    test 77 toOsgr: OSGB36\n    test 78 toLatLonOSGB36: 50.999426N, 000.118417W\n    test 79 toLatLonOSGB36: OSGB36\n    test 80 toLatLonWGS84 : 50.999995N, 000.120004W\n    test 81 toLatLonWGS84 : WGS84\n    test 82 toOsgr: [G:TQ, E:48853, N:24427]\n    test 83 toOsgr: 548853.602, 124427.985\n    test 84 toOsgr: OSGB36\n    test 85 toLatLonOSGB36: 50.999422N, 000.121618E\n    test 86 toLatLonOSGB36: OSGB36\n    test 87 toLatLonWGS84 : 50.999995N, 000.120004E\n    test 88 toLatLonWGS84 : WGS84\n\n    test 89 LatLon: 49.926244°N, 006.297934°W\n    test 90 datum: WGS84\n    test 91 datum: OSGB36\n    test 92 toOsgr: [G:SV, E:91645, N:11753]\n    test 93 datum: OSGB36\n    test 94 LatLon: 49.926244°N, 006.297934°W\n    test 95 datum: WGS84\n    test 96 distanceTo: 0.0103  FAILED, KNOWN, expected 0.0104\n\n    test 97 prec=-2: [G:SV, E:91600, N:11700]\n\n    test 98 toLatLon: 52.0N, 000.12W\n    test 99 toLatLon: 52.0N, 000.12W\n    test 100 toLatLon: 52.0N, 000.12W\n    test 101 toLatLon: 52.0N, 000.12W\n    test 102 toLatLon: 52.0N, 000.12W\n    test 103 toLatLon: 52.0N, 000.12W\n    test 104 toLatLon: 52.0N, 000.12W\n    test 105 toLatLon: 52.0N, 000.12W\n\n    testOSgr(pygeodesy.ellipsoidalVincenty, 25.05.26)\n    test 106 WGS84: 51.4778°N, 000.0016°W\n    test 107 OSGB36: 51.477284°N, 000.00002°E\n    test 108 WGS84: 51.4778°N, 000.0016°W\n    test 109 OSgr1: TG 51409 13177\n    test 110 OSgr1: [G:TG, E:51409, N:13177]\n    test 111 iteration: None\n    test 112 toLatLon1: 52°39′28.72″N, 001°42′57.79″E\n    test 113 toLatLon1: 52.657979°N, 001.716052°E\n    test 114 iteration: 4\n    test 115 toOsgr1: 651409.903,313177.270\n    test 116 toOsgr1: 651409.903,313177.270\n    test 117 toOsgr1: TG5140990313177270\n    test 118 toLatLon2: 52°39′27.25″N, 001°43′04.52″E\n    test 119 toLatLon2: 52.65757°N, 001.717922°E  FAILED, KNOWN, expected 52.657570°N, 001.717922°E\n    test 120 iteration: 4\n    test 121 toOsgr2: 651409,313177\n    test 122 toOsgr2: 651409,313177\n    test 123 toOsgr3: TG 51409 13177\n    test 124 toLatLon3: (52.65798, 1.71605, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 125 toOsgr4: TG 51409 13177\n    test 126 toLatLon4: (52.657570000, 1.717910000, Datum(name='OSGB36', ellipsoid=Ellipsoids.Airy1830, transform=Transforms.OSGB36))\n    test 127 toLatLon4: (52.657569999, 1.717910045, Datum(name='OSGB36', ellipsoid=Ellipsoids.Airy1830, transform=Transforms.OSGB36))\n./test/testOsgr.py:25: DeprecationWarning: method L{convertDatum<pygeodesy.ellipsoidalExact.LatLon.convertDatum>} has been DEPRECATED, use method L{toDatum}.\n  r = p.convertDatum(Datums.OSGB36)\n./test/testOsgr.py:27: DeprecationWarning: method L{convertDatum<pygeodesy.ellipsoidalExact.LatLon.convertDatum>} has been DEPRECATED, use method L{toDatum}.\n  r = r.convertDatum(Datums.WGS84)\n./test/testOsgr.py:25: DeprecationWarning: method L{convertDatum<pygeodesy.ellipsoidalGeodSolve.LatLon.convertDatum>} has been DEPRECATED, use method L{toDatum}.\n  r = p.convertDatum(Datums.OSGB36)\n./test/testOsgr.py:27: DeprecationWarning: method L{convertDatum<pygeodesy.ellipsoidalGeodSolve.LatLon.convertDatum>} has been DEPRECATED, use method L{toDatum}.\n  r = r.convertDatum(Datums.WGS84)\n    test 128 toLatLon4: (52.657978296, 1.716040366, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 129 toLatLon4: (52.657978295, 1.716040411, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 130 toOsgr5: 0.001\n    test 131 toOsgr5: TG5140900013177000\n    test 132 toOsgr5: 651409.000,313177.000\n    test 133 toLatLon5: (52.657976595, 1.716038422, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n\n    test 134 OSGR1: TG 48251 11932\n    test 135 OSGR1: [G:TG, E:48251, N:11932]\n    test 136 OSGR2: TG 51409 13177\n    test 137 OSGR2: [G:TG, E:51409, N:13177]\n    test 138 OSGR3: TG 51409 13177\n    test 139 OSGR3: [G:TG, E:51409, N:13177]\n    test 140 OSGR4: TG 51409 13177\n    test 141 OSGR4: [G:TG, E:51409, N:13177]\n    test 142 OSGR5: 651409,313177\n    test 143 OSGR5: TG51409001317700\n    test 144 OSGR5: 651409,313177\n    test 145 OSGR5: 651409.000000,313177.000000\n    test 146 OSGR5: 651409.00,313177.00\n    test 147 OSGR5: [OSGR:651409.000,313177.000]\n    test 148 OSGR5: [OSGR:651409,313177]\n    test 149 OSGR5: [OSGR:651409.000,313177.000]\n    test 150 OSGR5: [OSGR:651,313]\n    test 151 OSGR6: 651409.000,313177.000\n    test 152 OSGR6: 651409,313177\n    test 153 OSGR6: (651409, 313177)\n    test 154 OSGR6: 651409,313177\n    test 155 OSGR6: 651409,313177\n    test 156 OSGR6: (651409, 313177)\n    test 157 OSGR6: 651409 313177\n\n    test 158 issue: 38\n    test 159 toOsgr: [G:TL, E:29158, N:35174]\n    test 160 toOsgr: 529158.072, 235174.785\n    test 161 toOsgr: OSGB36\n    test 162 toLatLonOSGB36: 51°59′58.37″N, 000°07′06.14″W\n    test 163 toLatLonOSGB36: OSGB36\n    test 164 toLatLonWGS84 : 52°00′00.0″N, 000°07′12.0″W\n    test 165 toLatLonWGS84 : WGS84\n\n    test 166 Osgr: [G:TQ, E:32014, N:23971]\n    test 167 Osgr: 532014.0, 123971.0\n    test 168 Osgr: OSGB36\n    test 169 toLatLonOSGB36: 50.999425N, 000.118417W\n    test 170 toLatLonOSGB36: OSGB36\n    test 171 toLatLonWGS84 : 50.999995N, 000.120004W\n    test 172 toLatLonWGS84 : WGS84\n    test 173 parseOSGR: [G:TQ, E:32014, N:23971]\n    test 174 parseOSGR: 532014.0, 123971.0\n    test 175 parseOSGR: OSGB36\n    test 176 toLatLonOSGB36: 50.999425N, 000.118417W\n    test 177 toLatLonOSGB36: OSGB36\n    test 178 toLatLonWGS84: 50.999995N, 000.120004W\n    test 179 toLatLonWGS84: WGS84\n    test 180 toOsgr: [G:TQ, E:32013, N:23971]\n    test 181 toOsgr: 532013.969, 123971.046\n    test 182 toOsgr: OSGB36\n    test 183 toLatLonOSGB36: 50.999426N, 000.118417W\n    test 184 toLatLonOSGB36: OSGB36\n    test 185 toLatLonWGS84 : 50.999995N, 000.120004W\n    test 186 toLatLonWGS84 : WGS84\n    test 187 toOsgr: [G:TQ, E:48853, N:24427]\n    test 188 toOsgr: 548853.602, 124427.985\n    test 189 toOsgr: OSGB36\n    test 190 toLatLonOSGB36: 50.999422N, 000.121618E\n    test 191 toLatLonOSGB36: OSGB36\n    test 192 toLatLonWGS84 : 50.999995N, 000.120004E\n    test 193 toLatLonWGS84 : WGS84\n\n    test 194 LatLon: 49.926244°N, 006.297934°W\n    test 195 datum: WGS84\n    test 196 datum: OSGB36\n    test 197 toOsgr: [G:SV, E:91645, N:11753]\n    test 198 datum: OSGB36\n    test 199 LatLon: 49.926244°N, 006.297934°W\n    test 200 datum: WGS84\n    test 201 distanceTo: 0.0104\n\n    test 202 prec=-2: [G:SV, E:91600, N:11700]\n\n    test 203 toLatLon: 52.0N, 000.12W\n    test 204 toLatLon: 52.0N, 000.12W\n    test 205 toLatLon: 52.0N, 000.12W\n    test 206 toLatLon: 52.0N, 000.12W\n    test 207 toLatLon: 52.0N, 000.12W\n    test 208 toLatLon: 52.0N, 000.12W\n    test 209 toLatLon: 52.0N, 000.12W\n    test 210 toLatLon: 52.0N, 000.12W\n\n    testOSgr(pygeodesy.ellipsoidalKarney, 25.05.27)\n    test 211 WGS84: 51.4778°N, 000.0016°W\n    test 212 OSGB36: 51.477284°N, 000.00002°E\n    test 213 WGS84: 51.4778°N, 000.0016°W\n    test 214 OSgr1: TG 51409 13177\n    test 215 OSgr1: [G:TG, E:51409, N:13177]\n    test 216 iteration: None\n    test 217 toLatLon1: 52°39′28.72″N, 001°42′57.79″E\n    test 218 toLatLon1: 52.657979°N, 001.716052°E\n    test 219 iteration: 4\n    test 220 toOsgr1: 651409.903,313177.270\n    test 221 toOsgr1: 651409.903,313177.270\n    test 222 toOsgr1: TG5140990313177270\n    test 223 toLatLon2: 52°39′27.25″N, 001°43′04.52″E\n    test 224 toLatLon2: 52.65757°N, 001.717922°E  FAILED, KNOWN, expected 52.657570°N, 001.717922°E\n    test 225 iteration: 4\n    test 226 toOsgr2: 651409,313177\n    test 227 toOsgr2: 651409,313177\n    test 228 toOsgr3: TG 51409 13177\n    test 229 toLatLon3: (52.65798, 1.71605, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 230 toOsgr4: TG 51409 13177\n    test 231 toLatLon4: (52.657570000, 1.717910000, Datum(name='OSGB36', ellipsoid=Ellipsoids.Airy1830, transform=Transforms.OSGB36))\n    test 232 toLatLon4: (52.657569999, 1.717910045, Datum(name='OSGB36', ellipsoid=Ellipsoids.Airy1830, transform=Transforms.OSGB36))\n    test 233 toLatLon4: (52.657978296, 1.716040366, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 234 toLatLon4: (52.657978295, 1.716040411, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 235 toOsgr5: 0.001\n    test 236 toOsgr5: TG5140900013177000\n    test 237 toOsgr5: 651409.000,313177.000\n    test 238 toLatLon5: (52.657976595, 1.716038422, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n\n    test 239 OSGR1: TG 48251 11932\n    test 240 OSGR1: [G:TG, E:48251, N:11932]\n    test 241 OSGR2: TG 51409 13177\n    test 242 OSGR2: [G:TG, E:51409, N:13177]\n    test 243 OSGR3: TG 51409 13177\n    test 244 OSGR3: [G:TG, E:51409, N:13177]\n    test 245 OSGR4: TG 51409 13177\n    test 246 OSGR4: [G:TG, E:51409, N:13177]\n    test 247 OSGR5: 651409,313177\n    test 248 OSGR5: TG51409001317700\n    test 249 OSGR5: 651409,313177\n    test 250 OSGR5: 651409.000000,313177.000000\n    test 251 OSGR5: 651409.00,313177.00\n    test 252 OSGR5: [OSGR:651409.000,313177.000]\n    test 253 OSGR5: [OSGR:651409,313177]\n    test 254 OSGR5: [OSGR:651409.000,313177.000]\n    test 255 OSGR5: [OSGR:651,313]\n    test 256 OSGR6: 651409.000,313177.000\n    test 257 OSGR6: 651409,313177\n    test 258 OSGR6: (651409, 313177)\n    test 259 OSGR6: 651409,313177\n    test 260 OSGR6: 651409,313177\n    test 261 OSGR6: (651409, 313177)\n    test 262 OSGR6: 651409 313177\n\n    test 263 issue: 38\n    test 264 toOsgr: [G:TL, E:29158, N:35174]\n    test 265 toOsgr: 529158.072, 235174.785\n    test 266 toOsgr: OSGB36\n    test 267 toLatLonOSGB36: 51°59′58.37″N, 000°07′06.14″W\n    test 268 toLatLonOSGB36: OSGB36\n    test 269 toLatLonWGS84 : 52°00′00.0″N, 000°07′12.0″W\n    test 270 toLatLonWGS84 : WGS84\n\n    test 271 Osgr: [G:TQ, E:32014, N:23971]\n    test 272 Osgr: 532014.0, 123971.0\n    test 273 Osgr: OSGB36\n    test 274 toLatLonOSGB36: 50.999425N, 000.118417W\n    test 275 toLatLonOSGB36: OSGB36\n    test 276 toLatLonWGS84 : 50.999995N, 000.120004W\n    test 277 toLatLonWGS84 : WGS84\n    test 278 parseOSGR: [G:TQ, E:32014, N:23971]\n    test 279 parseOSGR: 532014.0, 123971.0\n    test 280 parseOSGR: OSGB36\n    test 281 toLatLonOSGB36: 50.999425N, 000.118417W\n    test 282 toLatLonOSGB36: OSGB36\n    test 283 toLatLonWGS84: 50.999995N, 000.120004W\n    test 284 toLatLonWGS84: WGS84\n    test 285 toOsgr: [G:TQ, E:32013, N:23971]\n    test 286 toOsgr: 532013.969, 123971.046\n    test 287 toOsgr: OSGB36\n    test 288 toLatLonOSGB36: 50.999426N, 000.118417W\n    test 289 toLatLonOSGB36: OSGB36\n    test 290 toLatLonWGS84 : 50.999995N, 000.120004W\n    test 291 toLatLonWGS84 : WGS84\n    test 292 toOsgr: [G:TQ, E:48853, N:24427]\n    test 293 toOsgr: 548853.602, 124427.985\n    test 294 toOsgr: OSGB36\n    test 295 toLatLonOSGB36: 50.999422N, 000.121618E\n    test 296 toLatLonOSGB36: OSGB36\n    test 297 toLatLonWGS84 : 50.999995N, 000.120004E\n    test 298 toLatLonWGS84 : WGS84\n\n    test 299 LatLon: 49.926244°N, 006.297934°W\n    test 300 datum: WGS84\n    test 301 datum: OSGB36\n    test 302 toOsgr: [G:SV, E:91645, N:11753]\n    test 303 datum: OSGB36\n# lazily imported pygeodesy.geodesicw by ellipsoids.py line 1074\n    test 304 LatLon: 49.926244°N, 006.297934°W\n    test 305 datum: WGS84\n    test 306 distanceTo: 0.0104\n\n    test 307 prec=-2: [G:SV, E:91600, N:11700]\n\n    test 308 toLatLon: 52.0N, 000.12W\n    test 309 toLatLon: 52.0N, 000.12W\n    test 310 toLatLon: 52.0N, 000.12W\n    test 311 toLatLon: 52.0N, 000.12W\n    test 312 toLatLon: 52.0N, 000.12W\n    test 313 toLatLon: 52.0N, 000.12W\n    test 314 toLatLon: 52.0N, 000.12W\n    test 315 toLatLon: 52.0N, 000.12W\n\n    testOSgr(pygeodesy.ellipsoidalExact, 25.08.28)\n    test 316 WGS84: 51.4778°N, 000.0016°W\n    test 317 OSGB36: 51.477284°N, 000.00002°E\n    test 318 WGS84: 51.4778°N, 000.0016°W\n    test 319 OSgr1: TG 51409 13177\n    test 320 OSgr1: [G:TG, E:51409, N:13177]\n    test 321 iteration: None\n    test 322 toLatLon1: 52°39′28.72″N, 001°42′57.79″E\n    test 323 toLatLon1: 52.657979°N, 001.716052°E\n    test 324 iteration: 4\n    test 325 toOsgr1: 651409.903,313177.270\n    test 326 toOsgr1: 651409.903,313177.270\n    test 327 toOsgr1: TG5140990313177270\n    test 328 toLatLon2: 52°39′27.25″N, 001°43′04.52″E\n    test 329 toLatLon2: 52.65757°N, 001.717922°E  FAILED, KNOWN, expected 52.657570°N, 001.717922°E\n    test 330 iteration: 4\n    test 331 toOsgr2: 651409,313177\n    test 332 toOsgr2: 651409,313177\n    test 333 toOsgr3: TG 51409 13177\n    test 334 toLatLon3: (52.65798, 1.71605, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 335 toOsgr4: TG 51409 13177\n    test 336 toLatLon4: (52.657570000, 1.717910000, Datum(name='OSGB36', ellipsoid=Ellipsoids.Airy1830, transform=Transforms.OSGB36))\n    test 337 toLatLon4: (52.657569999, 1.717910045, Datum(name='OSGB36', ellipsoid=Ellipsoids.Airy1830, transform=Transforms.OSGB36))\n    test 338 toLatLon4: (52.657978296, 1.716040366, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 339 toLatLon4: (52.657978295, 1.716040411, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 340 toOsgr5: 0.001\n    test 341 toOsgr5: TG5140900013177000\n    test 342 toOsgr5: 651409.000,313177.000\n    test 343 toLatLon5: (52.657976595, 1.716038422, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n\n    test 344 OSGR1: TG 48251 11932\n    test 345 OSGR1: [G:TG, E:48251, N:11932]\n    test 346 OSGR2: TG 51409 13177\n    test 347 OSGR2: [G:TG, E:51409, N:13177]\n    test 348 OSGR3: TG 51409 13177\n    test 349 OSGR3: [G:TG, E:51409, N:13177]\n    test 350 OSGR4: TG 51409 13177\n    test 351 OSGR4: [G:TG, E:51409, N:13177]\n    test 352 OSGR5: 651409,313177\n    test 353 OSGR5: TG51409001317700\n    test 354 OSGR5: 651409,313177\n    test 355 OSGR5: 651409.000000,313177.000000\n    test 356 OSGR5: 651409.00,313177.00\n    test 357 OSGR5: [OSGR:651409.000,313177.000]\n    test 358 OSGR5: [OSGR:651409,313177]\n    test 359 OSGR5: [OSGR:651409.000,313177.000]\n    test 360 OSGR5: [OSGR:651,313]\n    test 361 OSGR6: 651409.000,313177.000\n    test 362 OSGR6: 651409,313177\n    test 363 OSGR6: (651409, 313177)\n    test 364 OSGR6: 651409,313177\n    test 365 OSGR6: 651409,313177\n    test 366 OSGR6: (651409, 313177)\n    test 367 OSGR6: 651409 313177\n\n    test 368 issue: 38\n    test 369 toOsgr: [G:TL, E:29158, N:35174]\n    test 370 toOsgr: 529158.072, 235174.785\n    test 371 toOsgr: OSGB36\n    test 372 toLatLonOSGB36: 51°59′58.37″N, 000°07′06.14″W\n    test 373 toLatLonOSGB36: OSGB36\n    test 374 toLatLonWGS84 : 52°00′00.0″N, 000°07′12.0″W\n    test 375 toLatLonWGS84 : WGS84\n\n    test 376 Osgr: [G:TQ, E:32014, N:23971]\n    test 377 Osgr: 532014.0, 123971.0\n    test 378 Osgr: OSGB36\n    test 379 toLatLonOSGB36: 50.999425N, 000.118417W\n    test 380 toLatLonOSGB36: OSGB36\n    test 381 toLatLonWGS84 : 50.999995N, 000.120004W\n    test 382 toLatLonWGS84 : WGS84\n    test 383 parseOSGR: [G:TQ, E:32014, N:23971]\n    test 384 parseOSGR: 532014.0, 123971.0\n    test 385 parseOSGR: OSGB36\n    test 386 toLatLonOSGB36: 50.999425N, 000.118417W\n    test 387 toLatLonOSGB36: OSGB36\n    test 388 toLatLonWGS84: 50.999995N, 000.120004W\n    test 389 toLatLonWGS84: WGS84\n    test 390 toOsgr: [G:TQ, E:32013, N:23971]\n    test 391 toOsgr: 532013.969, 123971.046\n    test 392 toOsgr: OSGB36\n    test 393 toLatLonOSGB36: 50.999426N, 000.118417W\n    test 394 toLatLonOSGB36: OSGB36\n    test 395 toLatLonWGS84 : 50.999995N, 000.120004W\n    test 396 toLatLonWGS84 : WGS84\n    test 397 toOsgr: [G:TQ, E:48853, N:24427]\n    test 398 toOsgr: 548853.602, 124427.985\n    test 399 toOsgr: OSGB36\n    test 400 toLatLonOSGB36: 50.999422N, 000.121618E\n    test 401 toLatLonOSGB36: OSGB36\n    test 402 toLatLonWGS84 : 50.999995N, 000.120004E\n    test 403 toLatLonWGS84 : WGS84\n\n    test 404 LatLon: 49.926244°N, 006.297934°W\n    test 405 datum: WGS84\n    test 406 datum: OSGB36\n    test 407 toOsgr: [G:SV, E:91645, N:11753]\n    test 408 datum: OSGB36\n# lazily imported pygeodesy.geodesicx by ellipsoids.py line 1082\n    test 409 LatLon: 49.926244°N, 006.297934°W\n    test 410 datum: WGS84\n    test 411 distanceTo: 0.0104\n\n    test 412 prec=-2: [G:SV, E:91600, N:11700]\n\n    test 413 toLatLon: 52.0N, 000.12W\n    test 414 toLatLon: 52.0N, 000.12W\n    test 415 toLatLon: 52.0N, 000.12W\n    test 416 toLatLon: 52.0N, 000.12W\n    test 417 toLatLon: 52.0N, 000.12W\n    test 418 toLatLon: 52.0N, 000.12W\n    test 419 toLatLon: 52.0N, 000.12W\n    test 420 toLatLon: 52.0N, 000.12W\n# lazily imported pygeodesy.ellipsoidalGeodSolve by testOsgr.py line 233\n\n    testOSgr(pygeodesy.ellipsoidalGeodSolve, 25.08.28)\n    test 421 WGS84: 51.4778°N, 000.0016°W\n    test 422 OSGB36: 51.477284°N, 000.00002°E\n    test 423 WGS84: 51.4778°N, 000.0016°W\n    test 424 OSgr1: TG 51409 13177\n    test 425 OSgr1: [G:TG, E:51409, N:13177]\n    test 426 iteration: None\n    test 427 toLatLon1: 52°39′28.72″N, 001°42′57.79″E\n    test 428 toLatLon1: 52.657979°N, 001.716052°E\n    test 429 iteration: 4\n    test 430 toOsgr1: 651409.903,313177.270\n    test 431 toOsgr1: 651409.903,313177.270\n    test 432 toOsgr1: TG5140990313177270\n    test 433 toLatLon2: 52°39′27.25″N, 001°43′04.52″E\n    test 434 toLatLon2: 52.65757°N, 001.717922°E  FAILED, KNOWN, expected 52.657570°N, 001.717922°E\n    test 435 iteration: 4\n    test 436 toOsgr2: 651409,313177\n    test 437 toOsgr2: 651409,313177\n    test 438 toOsgr3: TG 51409 13177\n    test 439 toLatLon3: (52.65798, 1.71605, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 440 toOsgr4: TG 51409 13177\n    test 441 toLatLon4: (52.657570000, 1.717910000, Datum(name='OSGB36', ellipsoid=Ellipsoids.Airy1830, transform=Transforms.OSGB36))\n    test 442 toLatLon4: (52.657569999, 1.717910045, Datum(name='OSGB36', ellipsoid=Ellipsoids.Airy1830, transform=Transforms.OSGB36))\n    test 443 toLatLon4: (52.657978296, 1.716040366, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 444 toLatLon4: (52.657978295, 1.716040411, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 445 toOsgr5: 0.001\n    test 446 toOsgr5: TG5140900013177000\n    test 447 toOsgr5: 651409.000,313177.000\n    test 448 toLatLon5: (52.657976595, 1.716038422, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n\n    test 449 OSGR1: TG 48251 11932\n    test 450 OSGR1: [G:TG, E:48251, N:11932]\n    test 451 OSGR2: TG 51409 13177\n    test 452 OSGR2: [G:TG, E:51409, N:13177]\n    test 453 OSGR3: TG 51409 13177\n    test 454 OSGR3: [G:TG, E:51409, N:13177]\n    test 455 OSGR4: TG 51409 13177\n    test 456 OSGR4: [G:TG, E:51409, N:13177]\n    test 457 OSGR5: 651409,313177\n    test 458 OSGR5: TG51409001317700\n    test 459 OSGR5: 651409,313177\n    test 460 OSGR5: 651409.000000,313177.000000\n    test 461 OSGR5: 651409.00,313177.00\n    test 462 OSGR5: [OSGR:651409.000,313177.000]\n    test 463 OSGR5: [OSGR:651409,313177]\n    test 464 OSGR5: [OSGR:651409.000,313177.000]\n    test 465 OSGR5: [OSGR:651,313]\n    test 466 OSGR6: 651409.000,313177.000\n    test 467 OSGR6: 651409,313177\n    test 468 OSGR6: (651409, 313177)\n    test 469 OSGR6: 651409,313177\n    test 470 OSGR6: 651409,313177\n    test 471 OSGR6: (651409, 313177)\n    test 472 OSGR6: 651409 313177\n\n    test 473 issue: 38\n    test 474 toOsgr: [G:TL, E:29158, N:35174]\n    test 475 toOsgr: 529158.072, 235174.785\n    test 476 toOsgr: OSGB36\n    test 477 toLatLonOSGB36: 51°59′58.37″N, 000°07′06.14″W\n    test 478 toLatLonOSGB36: OSGB36\n    test 479 toLatLonWGS84 : 52°00′00.0″N, 000°07′12.0″W\n    test 480 toLatLonWGS84 : WGS84\n\n    test 481 Osgr: [G:TQ, E:32014, N:23971]\n    test 482 Osgr: 532014.0, 123971.0\n    test 483 Osgr: OSGB36\n    test 484 toLatLonOSGB36: 50.999425N, 000.118417W\n    test 485 toLatLonOSGB36: OSGB36\n    test 486 toLatLonWGS84 : 50.999995N, 000.120004W\n    test 487 toLatLonWGS84 : WGS84\n    test 488 parseOSGR: [G:TQ, E:32014, N:23971]\n    test 489 parseOSGR: 532014.0, 123971.0\n    test 490 parseOSGR: OSGB36\n    test 491 toLatLonOSGB36: 50.999425N, 000.118417W\n    test 492 toLatLonOSGB36: OSGB36\n    test 493 toLatLonWGS84: 50.999995N, 000.120004W\n    test 494 toLatLonWGS84: WGS84\n    test 495 toOsgr: [G:TQ, E:32013, N:23971]\n    test 496 toOsgr: 532013.969, 123971.046\n    test 497 toOsgr: OSGB36\n    test 498 toLatLonOSGB36: 50.999426N, 000.118417W\n    test 499 toLatLonOSGB36: OSGB36\n    test 500 toLatLonWGS84 : 50.999995N, 000.120004W\n    test 501 toLatLonWGS84 : WGS84\n    test 502 toOsgr: [G:TQ, E:48853, N:24427]\n    test 503 toOsgr: 548853.602, 124427.985\n    test 504 toOsgr: OSGB36\n    test 505 toLatLonOSGB36: 50.999422N, 000.121618E\n    test 506 toLatLonOSGB36: OSGB36\n    test 507 toLatLonWGS84 : 50.999995N, 000.120004E\n    test 508 toLatLonWGS84 : WGS84\n\n    test 509 LatLon: 49.926244°N, 006.297934°W\n    test 510 datum: WGS84\n    test 511 datum: OSGB36\n    test 512 toOsgr: [G:SV, E:91645, N:11753]\n    test 513 datum: OSGB36\n# lazily imported pygeodesy.geodsolve by ellipsoids.py line 1093\n    test 514 LatLon: 49.926244°N, 006.297934°W\n    test 515 datum: WGS84\n    test 516 distanceTo: 0.0104\n\n    test 517 prec=-2: [G:SV, E:91600, N:11700]\n\n    test 518 toLatLon: 52.0N, 000.12W\n    test 519 toLatLon: 52.0N, 000.12W\n    test 520 toLatLon: 52.0N, 000.12W\n    test 521 toLatLon: 52.0N, 000.12W\n    test 522 toLatLon: 52.0N, 000.12W\n    test 523 toLatLon: 52.0N, 000.12W\n    test 524 toLatLon: 52.0N, 000.12W\n    test 525 toLatLon: 52.0N, 000.12W\n\n    17 of 525 testOsgr.py tests (3.2%) FAILED, incl. 6 KNOWN plus 11 DeprecationWarnings (pygeodesy 26.3.26 Python 3.12.10 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 2.1.0 scipy 1.14.1 Math 2 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 isLazy 3 -W  default) 260.016 ms\nrunning /usr/local/bin/p....n3.12 -W default ~/PyGeodesy/test/testPoints.py\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.EPS from .constants by testPoints.py line 12\n# lazily imported pygeodesy.R_M from .constants by testPoints.py line 12\n# lazily imported pygeodesy.R_MA from .constants by testPoints.py line 12\n# lazily imported pygeodesy.LatLon_ from .points by testPoints.py line 12\n# lazily imported pygeodesy.LatLon2psxy from .points by testPoints.py line 12\n# lazily imported pygeodesy.Numpy2LatLon from .points by testPoints.py line 12\n# lazily imported pygeodesy.Tuple2LatLon from .points by testPoints.py line 12\n# lazily imported pygeodesy.areaOf from .points by testPoints.py line 12\n# lazily imported pygeodesy.boundsOf from .points by testPoints.py line 12\n# lazily imported pygeodesy.centroidOf from .points by testPoints.py line 12\n# lazily imported pygeodesy.classname from .named by testPoints.py line 12\n# lazily imported pygeodesy.fstr from .streprs by testPoints.py line 12\n# lazily imported pygeodesy.isclockwise from .points by testPoints.py line 12\n# lazily imported pygeodesy.isconvex from .points by testPoints.py line 12\n# lazily imported pygeodesy.ispolar from .points by testPoints.py line 12\n# lazily imported pygeodesy.luneOf from .points by testPoints.py line 12\n# lazily imported pygeodesy.nearestOn5 from .points by testPoints.py line 12\n# lazily imported pygeodesy.perimeterOf from .points by testPoints.py line 12\n# lazily imported pygeodesy.quadOf from .points by testPoints.py line 12\n# lazily imported pygeodesy.R_KM from .constants by testRoutes.py line 13\n# lazily imported pygeodesy.ellipsoidalVincenty by testRoutes.py line 13\n# lazily imported pygeodesy.sphericalTrigonometry by testRoutes.py line 13\n# lazily imported pygeodesy.unstr from .streprs by testRoutes.py line 13\n\n    testing testPoints.py 23.12.03 (module pygeodesy.points 25.05.12) isLazy=3\n    test 1 sizeof(LatLon_.__dict__): 48\n# lazily imported pygeodesy.booleans by iters.py line 503\n    test 2 LatLon2psxy.ABC: True\n    test 3 LatLon2psxy.epsilon: 2.220446049250313e-16\n    test 4 LatLon2psxy.epsilon: 0.0\n    test 5 LatLon2psxy.len: 69\n    test 6 LatLon2psxy.iter: 69\n    test 7 LatLon2psxy.slice1: 11\n    test 8 LatLon2psxy.slice2: <class 'pygeodesy.points.LatLon2psxy'>\n    test 9 LatLon2psxy.slice3: (-0.701418, 52.220485, LatLon_(52.220485°N, 000.701418°W))\n    test 10 LatLon2psxy.str/repr: LatLon2psxy('[LatLon_(52.220489°N, 000.701206°W) ... ][69]', closed=False, radius=None, wrap=False)\n    test 11 LatLon2psxy.find LL: 10\n    test 12 LatLon2psxy.find LL: -1\n    test 13 LatLon2psxy.count: 1\n    test 14 LatLon2psxy.index: 10\n    test 15 LatLon2psxy.rfind: 10\n    test 16 LatLon2psxy.in: True\n    test 17 LatLon2psxy.count: 0\n    test 18 LatLon2psxy.find: -1\n    test 19 LatLon2psxy.rfind: -1\n    test 20 LatLon2psxy.not in: True\n    test 21 LatLon2psxy.find LL: 20\n    test 22 LatLon2psxy.find LL: -1\n    test 23 LatLon2psxy.count: 1\n    test 24 LatLon2psxy.index: 20\n    test 25 LatLon2psxy.rfind: 20\n    test 26 LatLon2psxy.in: True\n    test 27 LatLon2psxy.count: 0\n    test 28 LatLon2psxy.find: -1\n    test 29 LatLon2psxy.rfind: -1\n    test 30 LatLon2psxy.not in: True\n    test 31 LatLon2psxy.find LL: 30\n    test 32 LatLon2psxy.find LL: -1\n    test 33 LatLon2psxy.count: 1\n    test 34 LatLon2psxy.index: 30\n    test 35 LatLon2psxy.rfind: 30\n    test 36 LatLon2psxy.in: True\n    test 37 LatLon2psxy.count: 0\n    test 38 LatLon2psxy.find: -1\n    test 39 LatLon2psxy.rfind: -1\n    test 40 LatLon2psxy.not in: True\n    test 41 LatLon2psxy.find LL: 40\n    test 42 LatLon2psxy.find LL: -1\n    test 43 LatLon2psxy.count: 1\n    test 44 LatLon2psxy.index: 40\n    test 45 LatLon2psxy.rfind: 40\n    test 46 LatLon2psxy.in: True\n    test 47 LatLon2psxy.count: 0\n    test 48 LatLon2psxy.find: -1\n    test 49 LatLon2psxy.rfind: -1\n    test 50 LatLon2psxy.not in: True\n    test 51 LatLon2psxy.find LL: 50\n    test 52 LatLon2psxy.find LL: -1\n    test 53 LatLon2psxy.count: 1\n    test 54 LatLon2psxy.index: 50\n    test 55 LatLon2psxy.rfind: 50\n    test 56 LatLon2psxy.in: True\n    test 57 LatLon2psxy.count: 0\n    test 58 LatLon2psxy.find: -1\n    test 59 LatLon2psxy.rfind: -1\n    test 60 LatLon2psxy.not in: True\n    test 61 LatLon2psxy.find LL: 60\n    test 62 LatLon2psxy.find LL: -1\n    test 63 LatLon2psxy.count: 1\n    test 64 LatLon2psxy.index: 60\n    test 65 LatLon2psxy.rfind: 60\n    test 66 LatLon2psxy.in: True\n    test 67 LatLon2psxy.count: 0\n    test 68 LatLon2psxy.find: -1\n    test 69 LatLon2psxy.rfind: -1\n    test 70 LatLon2psxy.not in: True\n    test 71 LatLon2psxy.enumerate[0]: (-0.701206, 52.220489, LatLon_(52.220489°N, 000.701206°W))\n    test 72 LatLon2psxy.enumerate[1]: (-0.705456, 52.221916, LatLon_(52.221916°N, 000.705456°W))\n    test 73 LatLon2psxy.enumerate[2]: (-0.71, 52.225944, LatLon_(52.225944°N, 000.71°W))\n    test 74 LatLon2psxy.enumerate[3]: (-0.71446, 52.232448, LatLon_(52.232448°N, 000.71446°W))\n    test 75 LatLon2psxy.enumerate[4]: (-0.71486, 52.233013, LatLon_(52.233013°N, 000.71486°W))\n    test 76 LatLon2psxy.enumerate[5]: (-0.714348, 52.234375, LatLon_(52.234375°N, 000.714348°W))\n    test 77 LatLon2psxy.enumerate[6]: (-0.713572, 52.235607, LatLon_(52.235607°N, 000.713572°W))\n    test 78 LatLon2psxy.enumerate[7]: (-0.71233, 52.237495, LatLon_(52.237495°N, 000.71233°W))\n    test 79 LatLon2psxy.enumerate[8]: (-0.710784, 52.239315, LatLon_(52.239315°N, 000.710784°W))\n    test 80 LatLon2psxy.enumerate[9]: (-0.708684, 52.240627, LatLon_(52.240627°N, 000.708684°W))\n    test 81 LatLon2psxy.enumerate[10]: (-0.707042, 52.240745, LatLon_(52.240745°N, 000.707042°W))\n    test 82 LatLon2psxy.enumerate[11]: (-0.704945, 52.240863, LatLon_(52.240863°N, 000.704945°W))\n    test 83 LatLon2psxy.enumerate[*]: 11\n    test 84 LatLon2psxy.reversed[11]: (-0.704945, 52.240863, LatLon_(52.240863°N, 000.704945°W))\n    test 85 LatLon2psxy.reversed[10]: (-0.707042, 52.240745, LatLon_(52.240745°N, 000.707042°W))\n    test 86 LatLon2psxy.reversed[9]: (-0.708684, 52.240627, LatLon_(52.240627°N, 000.708684°W))\n    test 87 LatLon2psxy.reversed[8]: (-0.710784, 52.239315, LatLon_(52.239315°N, 000.710784°W))\n    test 88 LatLon2psxy.reversed[7]: (-0.71233, 52.237495, LatLon_(52.237495°N, 000.71233°W))\n    test 89 LatLon2psxy.reversed[6]: (-0.713572, 52.235607, LatLon_(52.235607°N, 000.713572°W))\n    test 90 LatLon2psxy.reversed[5]: (-0.714348, 52.234375, LatLon_(52.234375°N, 000.714348°W))\n    test 91 LatLon2psxy.reversed[4]: (-0.71486, 52.233013, LatLon_(52.233013°N, 000.71486°W))\n    test 92 LatLon2psxy.reversed[3]: (-0.71446, 52.232448, LatLon_(52.232448°N, 000.71446°W))\n    test 93 LatLon2psxy.reversed[2]: (-0.71, 52.225944, LatLon_(52.225944°N, 000.71°W))\n    test 94 LatLon2psxy.reversed[1]: (-0.705456, 52.221916, LatLon_(52.221916°N, 000.705456°W))\n    test 95 LatLon2psxy.reversed[0]: (-0.701206, 52.220489, LatLon_(52.220489°N, 000.701206°W))\n    test 96 LatLon2psxy.findall[0]: (0,)\n    test 97 LatLon2psxy.findall[1]: (1,)\n    test 98 LatLon2psxy.findall[2]: (2,)\n    test 99 LatLon2psxy.findall[3]: (3,)\n    test 100 LatLon2psxy.findall[4]: (4,)\n    test 101 LatLon2psxy.findall[5]: (5,)\n    test 102 LatLon2psxy.findall[6]: (6,)\n    test 103 LatLon2psxy.findall[7]: (7,)\n    test 104 LatLon2psxy.findall[8]: (8,)\n    test 105 LatLon2psxy.findall[9]: (9,)\n    test 106 LatLon2psxy.findall[10]: (10,)\n    test 107 LatLon2psxy.findall[11]: (11,)\n    test 108 LatLon2psxy.findall[*]: 11\n    test 109 LatLon2psxy.isNumpy2: False\n    test 110 LatLon2psxy.isPoints2: True\n    test 111 LatLon2psxy.isTuple2: False\n    test 112 numpy.__version__: 2.1.0\n    test 113 Numpy2LatLon.ABC: True\n    test 114 Numpy2LatLon.epsilon: 2.220446049250313e-16\n    test 115 Numpy2LatLon.epsilon: 0.0\n    test 116 Numpy2LatLon.len: 69\n    test 117 Numpy2LatLon.iter: 69\n    test 118 Numpy2LatLon.shape: (69, 4)\n    test 119 Numpy2LatLon.slice1: 11\n    test 120 Numpy2LatLon.slice2: <class 'pygeodesy.points.Numpy2LatLon'>\n    test 121 Numpy2LatLon.slice3: 52.220485°N, 000.701418°W\n    test 122 Numpy2LatLon.str/repr: Numpy2LatLon('array([[-0.701206, 0. , 52.220489, 0. ]] ... )[69]', ilat=2, ilon=0)\n    test 123 Numpy2LatLon.subset: <class 'numpy.ndarray'>\n    test 124 Numpy2LatLon.count: 1\n    test 125 Numpy2LatLon.index: 10\n    test 126 Numpy2LatLon.rfind: 10\n    test 127 Numpy2LatLon.in: True\n    test 128 Numpy2LatLon.count: 0\n    test 129 Numpy2LatLon.find: -1\n    test 130 Numpy2LatLon.rfind: -1\n    test 131 Numpy2LatLon.not in: True\n    test 132 Numpy2LatLon.count: 1\n    test 133 Numpy2LatLon.index: 20\n    test 134 Numpy2LatLon.rfind: 20\n    test 135 Numpy2LatLon.in: True\n    test 136 Numpy2LatLon.count: 0\n    test 137 Numpy2LatLon.find: -1\n    test 138 Numpy2LatLon.rfind: -1\n    test 139 Numpy2LatLon.not in: True\n    test 140 Numpy2LatLon.count: 1\n    test 141 Numpy2LatLon.index: 30\n    test 142 Numpy2LatLon.rfind: 30\n    test 143 Numpy2LatLon.in: True\n    test 144 Numpy2LatLon.count: 0\n    test 145 Numpy2LatLon.find: -1\n    test 146 Numpy2LatLon.rfind: -1\n    test 147 Numpy2LatLon.not in: True\n    test 148 Numpy2LatLon.count: 1\n    test 149 Numpy2LatLon.index: 40\n    test 150 Numpy2LatLon.rfind: 40\n    test 151 Numpy2LatLon.in: True\n    test 152 Numpy2LatLon.count: 0\n    test 153 Numpy2LatLon.find: -1\n    test 154 Numpy2LatLon.rfind: -1\n    test 155 Numpy2LatLon.not in: True\n    test 156 Numpy2LatLon.count: 1\n    test 157 Numpy2LatLon.index: 50\n    test 158 Numpy2LatLon.rfind: 50\n    test 159 Numpy2LatLon.in: True\n    test 160 Numpy2LatLon.count: 0\n    test 161 Numpy2LatLon.find: -1\n    test 162 Numpy2LatLon.rfind: -1\n    test 163 Numpy2LatLon.not in: True\n    test 164 Numpy2LatLon.count: 1\n    test 165 Numpy2LatLon.index: 60\n    test 166 Numpy2LatLon.rfind: 60\n    test 167 Numpy2LatLon.in: True\n    test 168 Numpy2LatLon.count: 0\n    test 169 Numpy2LatLon.find: -1\n    test 170 Numpy2LatLon.rfind: -1\n    test 171 Numpy2LatLon.not in: True\n    test 172 Numpy2LatLon.enumerate[0]: 52.220489°N, 000.701206°W\n    test 173 Numpy2LatLon.enumerate[1]: 52.221916°N, 000.705456°W\n    test 174 Numpy2LatLon.enumerate[2]: 52.225944°N, 000.71°W\n    test 175 Numpy2LatLon.enumerate[3]: 52.232448°N, 000.71446°W\n    test 176 Numpy2LatLon.enumerate[4]: 52.233013°N, 000.71486°W\n    test 177 Numpy2LatLon.enumerate[5]: 52.234375°N, 000.714348°W\n    test 178 Numpy2LatLon.enumerate[6]: 52.235607°N, 000.713572°W\n    test 179 Numpy2LatLon.enumerate[7]: 52.237495°N, 000.71233°W\n    test 180 Numpy2LatLon.enumerate[8]: 52.239315°N, 000.710784°W\n    test 181 Numpy2LatLon.enumerate[9]: 52.240627°N, 000.708684°W\n    test 182 Numpy2LatLon.enumerate[10]: 52.240745°N, 000.707042°W\n    test 183 Numpy2LatLon.enumerate[11]: 52.240863°N, 000.704945°W\n    test 184 Numpy2LatLon.enumerate[*]: 11\n    test 185 Numpy2LatLon.reversed[11]: 52.240863°N, 000.704945°W\n    test 186 Numpy2LatLon.reversed[10]: 52.240745°N, 000.707042°W\n    test 187 Numpy2LatLon.reversed[9]: 52.240627°N, 000.708684°W\n    test 188 Numpy2LatLon.reversed[8]: 52.239315°N, 000.710784°W\n    test 189 Numpy2LatLon.reversed[7]: 52.237495°N, 000.71233°W\n    test 190 Numpy2LatLon.reversed[6]: 52.235607°N, 000.713572°W\n    test 191 Numpy2LatLon.reversed[5]: 52.234375°N, 000.714348°W\n    test 192 Numpy2LatLon.reversed[4]: 52.233013°N, 000.71486°W\n    test 193 Numpy2LatLon.reversed[3]: 52.232448°N, 000.71446°W\n    test 194 Numpy2LatLon.reversed[2]: 52.225944°N, 000.71°W\n    test 195 Numpy2LatLon.reversed[1]: 52.221916°N, 000.705456°W\n    test 196 Numpy2LatLon.reversed[0]: 52.220489°N, 000.701206°W\n    test 197 Numpy2LatLon.findall[0]: (0,)\n    test 198 Numpy2LatLon.findall[1]: (1,)\n    test 199 Numpy2LatLon.findall[2]: (2,)\n    test 200 Numpy2LatLon.findall[3]: (3,)\n    test 201 Numpy2LatLon.findall[4]: (4,)\n    test 202 Numpy2LatLon.findall[5]: (5,)\n    test 203 Numpy2LatLon.findall[6]: (6,)\n    test 204 Numpy2LatLon.findall[7]: (7,)\n    test 205 Numpy2LatLon.findall[8]: (8,)\n    test 206 Numpy2LatLon.findall[9]: (9,)\n    test 207 Numpy2LatLon.findall[10]: (10,)\n    test 208 Numpy2LatLon.findall[11]: (11,)\n    test 209 Numpy2LatLon.findall[*]: 11\n    test 210 Numpy2LatLon.isNumpy2: True\n    test 211 Numpy2LatLon.isPoints2: False\n    test 212 Numpy2LatLon.isTuple2: False\n    test 213 Tuple2LatLon.ABC: True\n    test 214 Tuple2LatLon.epsilon: 2.220446049250313e-16\n    test 215 Tuple2LatLon.epsilon: 0.0\n    test 216 Tuple2LatLon.len: 69\n    test 217 Tuple2LatLon.iter: 69\n    test 218 Tuple2LatLon.slice1: 11\n    test 219 Tuple2LatLon.slice2: <class 'pygeodesy.points.Tuple2LatLon'>\n    test 220 Tuple2LatLon.slice3: 52.220485°N, 000.701418°W\n    test 221 Tuple2LatLon.str/repr: Tuple2LatLon('[(0, -0.701206, 0, 52.220489) ... ][69]', ilat=3, ilon=1)\n    test 222 Tuple2LatLon.subset: <class 'list'>\n    test 223 Tuple2LatLon.count: 1\n    test 224 Tuple2LatLon.index: 10\n    test 225 Tuple2LatLon.rfind: 10\n    test 226 Tuple2LatLon.in: True\n    test 227 Tuple2LatLon.count: 0\n    test 228 Tuple2LatLon.find: -1\n    test 229 Tuple2LatLon.rfind: -1\n    test 230 Tuple2LatLon.not in: True\n    test 231 Tuple2LatLon.count: 1\n    test 232 Tuple2LatLon.index: 20\n    test 233 Tuple2LatLon.rfind: 20\n    test 234 Tuple2LatLon.in: True\n    test 235 Tuple2LatLon.count: 0\n    test 236 Tuple2LatLon.find: -1\n    test 237 Tuple2LatLon.rfind: -1\n    test 238 Tuple2LatLon.not in: True\n    test 239 Tuple2LatLon.count: 1\n    test 240 Tuple2LatLon.index: 30\n    test 241 Tuple2LatLon.rfind: 30\n    test 242 Tuple2LatLon.in: True\n    test 243 Tuple2LatLon.count: 0\n    test 244 Tuple2LatLon.find: -1\n    test 245 Tuple2LatLon.rfind: -1\n    test 246 Tuple2LatLon.not in: True\n    test 247 Tuple2LatLon.count: 1\n    test 248 Tuple2LatLon.index: 40\n    test 249 Tuple2LatLon.rfind: 40\n    test 250 Tuple2LatLon.in: True\n    test 251 Tuple2LatLon.count: 0\n    test 252 Tuple2LatLon.find: -1\n    test 253 Tuple2LatLon.rfind: -1\n    test 254 Tuple2LatLon.not in: True\n    test 255 Tuple2LatLon.count: 1\n    test 256 Tuple2LatLon.index: 50\n    test 257 Tuple2LatLon.rfind: 50\n    test 258 Tuple2LatLon.in: True\n    test 259 Tuple2LatLon.count: 0\n    test 260 Tuple2LatLon.find: -1\n    test 261 Tuple2LatLon.rfind: -1\n    test 262 Tuple2LatLon.not in: True\n    test 263 Tuple2LatLon.count: 1\n    test 264 Tuple2LatLon.index: 60\n    test 265 Tuple2LatLon.rfind: 60\n    test 266 Tuple2LatLon.in: True\n    test 267 Tuple2LatLon.count: 0\n    test 268 Tuple2LatLon.find: -1\n    test 269 Tuple2LatLon.rfind: -1\n    test 270 Tuple2LatLon.not in: True\n    test 271 Tuple2LatLon.enumerate[0]: 52.220489°N, 000.701206°W\n    test 272 Tuple2LatLon.enumerate[1]: 52.221916°N, 000.705456°W\n    test 273 Tuple2LatLon.enumerate[2]: 52.225944°N, 000.71°W\n    test 274 Tuple2LatLon.enumerate[3]: 52.232448°N, 000.71446°W\n    test 275 Tuple2LatLon.enumerate[4]: 52.233013°N, 000.71486°W\n    test 276 Tuple2LatLon.enumerate[5]: 52.234375°N, 000.714348°W\n    test 277 Tuple2LatLon.enumerate[6]: 52.235607°N, 000.713572°W\n    test 278 Tuple2LatLon.enumerate[7]: 52.237495°N, 000.71233°W\n    test 279 Tuple2LatLon.enumerate[8]: 52.239315°N, 000.710784°W\n    test 280 Tuple2LatLon.enumerate[9]: 52.240627°N, 000.708684°W\n    test 281 Tuple2LatLon.enumerate[10]: 52.240745°N, 000.707042°W\n    test 282 Tuple2LatLon.enumerate[11]: 52.240863°N, 000.704945°W\n./pygeodesy/ellipsoidalKarney.py:94: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return self.datum.ellipsoid.geodesic\n    test 283 Tuple2LatLon.enumerate[*]: 11\n    test 284 Tuple2LatLon.reversed[11]: 52.240863°N, 000.704945°W\n    test 285 Tuple2LatLon.reversed[10]: 52.240745°N, 000.707042°W\n    test 286 Tuple2LatLon.reversed[9]: 52.240627°N, 000.708684°W\n    test 287 Tuple2LatLon.reversed[8]: 52.239315°N, 000.710784°W\n    test 288 Tuple2LatLon.reversed[7]: 52.237495°N, 000.71233°W\n    test 289 Tuple2LatLon.reversed[6]: 52.235607°N, 000.713572°W\n    test 290 Tuple2LatLon.reversed[5]: 52.234375°N, 000.714348°W\n    test 291 Tuple2LatLon.reversed[4]: 52.233013°N, 000.71486°W\n    test 292 Tuple2LatLon.reversed[3]: 52.232448°N, 000.71446°W\n    test 293 Tuple2LatLon.reversed[2]: 52.225944°N, 000.71°W\n    test 294 Tuple2LatLon.reversed[1]: 52.221916°N, 000.705456°W\n    test 295 Tuple2LatLon.reversed[0]: 52.220489°N, 000.701206°W\n    test 296 Tuple2LatLon.findall[0]: (0,)\n    test 297 Tuple2LatLon.findall[1]: (1,)\n    test 298 Tuple2LatLon.findall[2]: (2,)\n    test 299 Tuple2LatLon.findall[3]: (3,)\n    test 300 Tuple2LatLon.findall[4]: (4,)\n    test 301 Tuple2LatLon.findall[5]: (5,)\n    test 302 Tuple2LatLon.findall[6]: (6,)\n    test 303 Tuple2LatLon.findall[7]: (7,)\n    test 304 Tuple2LatLon.findall[8]: (8,)\n    test 305 Tuple2LatLon.findall[9]: (9,)\n    test 306 Tuple2LatLon.findall[10]: (10,)\n    test 307 Tuple2LatLon.findall[11]: (11,)\n    test 308 Tuple2LatLon.findall[*]: 11\n    test 309 Tuple2LatLon.isNumpy2: False\n    test 310 Tuple2LatLon.isPoints2: False\n    test 311 Tuple2LatLon.isTuple2: True\n# lazily imported pygeodesy.ellipsoidalExact by testPoints.py line 276\n# lazily imported pygeodesy.ellipsoidalKarney by testPoints.py line 276\n# lazily imported pygeodesy.ellipsoidalNvector by testPoints.py line 276\n# lazily imported pygeodesy.Ellipsoids from .ellipsoids by testPoints.py line 276\n# lazily imported pygeodesy.sphericalNvector by testPoints.py line 276\n\n    testing(pygeodesy.points, 25.05.12, LatLon=<class 'pygeodesy.points.LatLon_'>)\n# lazily imported pygeodesy.angles by units.py line 633\n    test 312 areaOf: 8.811228e+09\n    test 313 centroidOf: 45.5, 1.5\n    test 314 perimeterOf: 2.673633e+05\n    test 315 isclockwise: False\n    test 316 isconvex: True\n# imported pygeodesy.formy into latlonBase.py line 756\n    test 317 ispolar: False\n    test 318 areaOf: 7.086883e+09\n    test 319 perimeterOf: 2.687460e+05\n    test 320 centroidOf: 0.333333, 0.333333\n    test 321 isclockwise: True\n    test 322 isconvex: True\n    test 323 ispolar: False\n    test 324 areaOf: 2.827856e+10\n    test 325 perimeterOf: 4.717039e+05\n    test 326 centroidOf: 1.0, 1.0\n    test 327 isclockwise: False\n    test 328 isconvex: True\n    test 329 ispolar: False\n    test 330 areaOf: 2.747297e+13\n    test 331 perimeterOf: 2.332643e+07\n    test 332 centroidOf: 52.113, 102.123\n    test 333 isclockwise: False\n    test 334 isconvex: False\n    test 335 ispolar: True\n    test 336 areaOf: 8.482014e+10\n    test 337 perimeterOf: 1.334104e+06\n    test 338 centroidOf: 1.167, 1.667\n    test 339 isclockwise: False\n    test 340 isconvex: False\n    test 341 ispolar: False\n    test 342 areaOf: 5.151974e+13\n    test 343 perimeterOf: 2.638608e+07\n    test 344 centroidOf: -19.444, -133.333\n    test 345 isclockwise: True\n    test 346 isconvex: True\n    test 347 ispolar: False\n    test 348 areaOf: 1.751694e+12  FAILED, KNOWN, expected 4.469277e+12\n    test 349 perimeterOf: 1.562029e+07\n    test 350 centroidOf: -72.926, 46.47\n    test 351 isclockwise: True\n    test 352 isconvex: False\n    test 353 ispolar: True\n    test 354 points2: 18\n    test 355 nearestOn5: (-77.455114, -16.67063, 4.134666, 307.988253, 0)\n    test 356 areaCO: 2.83192062868e+11  FAILED, KNOWN, expected 2.69601367661e+11\n    test 357 isclockwise: True\n    test 358 perimeterCO: 2098630.956053  FAILED, KNOWN, expected 2099854.381923\n    test 359 boundsOf: (-77.9, -163.0, -63.1, 172.0)\n    test 360 quadOf: 77.9°S, 163.0°W, 63.1°S, 163.0°W, 63.1°S, 172.0°E, 77.9°S, 172.0°E\n    test 361 intermediateTo: 51.368°N, 000.677°E, 'intermediateTo'\n    test 362 intermediateTo: True\n    test 363 intermediateTo: 51.368°N, 000.677°E\n    test 364 intermediateTo: 52.205°N, 000.119°E\n    test 365 intermediateTo: 48.857°N, 002.351°E\n    test 366 _isLatLon_: _Array2LatLon('[ ... ][1]', ilat=0, ilon=1)\n    test 367 latlon: (-66.6, -88.0)\n    test 368 philam: (-1.162389, -1.53589)\n    test 369 toStr: 66.6°S, 088.0°W\n    test 370 __ne__: False\n    test 371 isequalTo: True\n    test 372 isequalTo: True\n    test 373 latlonheight: (-66.6, -88.0, 0)\n    test 374 philamheight: (-1.162389, -1.53589, 0)\n    test 375 _N_vector: (0.01386, -0.39691, -0.91775)\n    test 376 toNvector: (0.01386, -0.39691, -0.91775, 0)\n    test 377 toNvector: (0.01386, -0.396906, -0.917755, 0)\n    test 378 classof: 66.6°S, 088.0°W\n    test 379 others: 66.6°S, 088.0°W\n    test 380 copy(<class 'type'>): (<class 'pygeodesy.points.LatLon_'>, True)\n    test 381 LatLon_.copy(): (<class 'pygeodesy.points.LatLon_'>, True)\n\n    testing(pygeodesy.points, 25.05.12, LatLon=<class 'pygeodesy.sphericalNvector.LatLon'>)\n    test 382 areaOf: 8.811228e+09\n    test 383 centroidOf: 45.5, 1.5\n    test 384 perimeterOf: 2.673633e+05\n    test 385 isclockwise: False\n    test 386 isconvex: True\n    test 387 ispolar: False\n    test 388 areaOf: 7.086883e+09\n    test 389 perimeterOf: 2.687460e+05\n    test 390 centroidOf: 0.333333, 0.333333\n    test 391 isclockwise: True\n    test 392 isconvex: True\n    test 393 ispolar: False\n    test 394 areaOf: 2.827856e+10\n    test 395 perimeterOf: 4.717039e+05\n    test 396 centroidOf: 1.0, 1.0\n    test 397 isclockwise: False\n    test 398 isconvex: True\n    test 399 ispolar: False\n    test 400 areaOf: 2.747297e+13\n    test 401 perimeterOf: 2.332643e+07\n    test 402 centroidOf: 52.113, 102.123\n    test 403 isclockwise: False\n    test 404 isconvex: False\n    test 405 ispolar: True\n    test 406 areaOf: 8.482014e+10\n    test 407 perimeterOf: 1.334104e+06\n    test 408 centroidOf: 1.167, 1.667\n    test 409 isclockwise: False\n    test 410 isconvex: False\n    test 411 ispolar: False\n    test 412 areaOf: 5.151974e+13\n    test 413 perimeterOf: 2.638608e+07\n    test 414 centroidOf: -19.444, -133.333\n    test 415 isclockwise: True\n    test 416 isconvex: True\n    test 417 ispolar: False\n    test 418 areaOf: 1.751694e+12  FAILED, KNOWN, expected 4.469277e+12\n    test 419 perimeterOf: 1.562029e+07\n    test 420 centroidOf: -72.926, 46.47\n    test 421 isclockwise: True\n    test 422 isconvex: False\n    test 423 ispolar: True\n    test 424 points2: 18\n    test 425 nearestOn5: (-77.455114, -16.67063, 4.134666, 307.988253, 0)\n    test 426 areaCO: 2.83192062868e+11  FAILED, KNOWN, expected 2.69601367661e+11\n    test 427 isclockwise: True\n    test 428 perimeterCO: 2098630.956053  FAILED, KNOWN, expected 2099854.381923\n    test 429 latlon: (-66.6, -88.0)\n    test 430 philam: (-1.162389, -1.53589)\n    test 431 latlonheight: (-66.6, -88.0, 0)\n    test 432 philamheight: (-1.162389, -1.53589, 0)\n    test 433 _N_vector: (0.01386, -0.39691, -0.91775)\n    test 434 toNvector: (0.01386, -0.39691, -0.91775)\n    test 435 toNvector: (0.01386, -0.396906, -0.917755, 0)\n    test 436 classof: 66.6°S, 088.0°W\n    test 437 others: 66.6°S, 088.0°W\n    test 438 copy(<class 'type'>): (<class 'pygeodesy.sphericalNvector.LatLon'>, True)\n    test 439 LatLon.copy(): (<class 'pygeodesy.sphericalNvector.LatLon'>, True)\n\n    testing(pygeodesy.points, 25.05.12, LatLon=<class 'pygeodesy.sphericalTrigonometry.LatLon'>)\n    test 440 areaOf: 8.811228e+09\n    test 441 centroidOf: 45.5, 1.5\n    test 442 perimeterOf: 2.673633e+05\n    test 443 isclockwise: False\n    test 444 isconvex: True\n    test 445 ispolar: False\n    test 446 areaOf: 7.086883e+09\n    test 447 perimeterOf: 2.687460e+05\n    test 448 centroidOf: 0.333333, 0.333333\n    test 449 isclockwise: True\n    test 450 isconvex: True\n    test 451 ispolar: False\n    test 452 areaOf: 2.827856e+10\n    test 453 perimeterOf: 4.717039e+05\n    test 454 centroidOf: 1.0, 1.0\n    test 455 isclockwise: False\n    test 456 isconvex: True\n    test 457 ispolar: False\n    test 458 areaOf: 2.747297e+13\n    test 459 perimeterOf: 2.332643e+07\n    test 460 centroidOf: 52.113, 102.123\n./pygeodesy/ellipsoidalKarney.py:139: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return fabs(_polygon(datum.ellipsoid.geodesic, points, True, False, wrap, polar))\n    test 461 isclockwise: False\n    test 462 isconvex: False\n    test 463 ispolar: True\n    test 464 areaOf: 8.482014e+10\n    test 465 perimeterOf: 1.334104e+06\n    test 466 centroidOf: 1.167, 1.667\n    test 467 isclockwise: False\n    test 468 isconvex: False\n    test 469 ispolar: False\n    test 470 areaOf: 5.151974e+13\n    test 471 perimeterOf: 2.638608e+07\n    test 472 centroidOf: -19.444, -133.333\n    test 473 isclockwise: True\n    test 474 isconvex: True\n    test 475 ispolar: False\n    test 476 areaOf: 1.751694e+12  FAILED, KNOWN, expected 4.469277e+12\n    test 477 perimeterOf: 1.562029e+07\n    test 478 centroidOf: -72.926, 46.47\n    test 479 isclockwise: True\n    test 480 isconvex: False\n    test 481 ispolar: True\n    test 482 points2: 18\n    test 483 nearestOn5: (-77.455114, -16.67063, 4.134666, 307.988253, 0)\n    test 484 areaCO: 2.83192062868e+11  FAILED, KNOWN, expected 2.69601367661e+11\n    test 485 isclockwise: True\n    test 486 perimeterCO: 2098630.956053  FAILED, KNOWN, expected 2099854.381923\n    test 487 latlon: (-66.6, -88.0)\n    test 488 philam: (-1.162389, -1.53589)\n    test 489 latlonheight: (-66.6, -88.0, 0)\n    test 490 philamheight: (-1.162389, -1.53589, 0)\n    test 491 _N_vector: (0.01386, -0.39691, -0.91775)\n    test 492 toNvector: (0.01386, -0.39691, -0.91775)\n    test 493 toNvector: (0.01386, -0.396906, -0.917755, 0)\n    test 494 classof: 66.6°S, 088.0°W\n    test 495 others: 66.6°S, 088.0°W\n    test 496 copy(<class 'type'>): (<class 'pygeodesy.sphericalTrigonometry.LatLon'>, True)\n    test 497 LatLon.copy(): (<class 'pygeodesy.sphericalTrigonometry.LatLon'>, True)\n\n    testing(pygeodesy.points, 25.05.12, LatLon=<class 'pygeodesy.ellipsoidalNvector.LatLon'>)\n    test 498 areaOf: 8.811228e+09\n    test 499 centroidOf: 45.5, 1.5\n    test 500 perimeterOf: 2.673633e+05\n    test 501 isclockwise: False\n    test 502 isconvex: True\n    test 503 ispolar: False\n    test 504 areaOf: 7.086883e+09\n    test 505 perimeterOf: 2.687460e+05\n    test 506 centroidOf: 0.333333, 0.333333\n    test 507 isclockwise: True\n    test 508 isconvex: True\n    test 509 ispolar: False\n    test 510 areaOf: 2.827856e+10\n    test 511 perimeterOf: 4.717039e+05\n    test 512 centroidOf: 1.0, 1.0\n    test 513 isclockwise: False\n    test 514 isconvex: True\n    test 515 ispolar: False\n    test 516 areaOf: 2.747297e+13\n    test 517 perimeterOf: 2.332643e+07\n    test 518 centroidOf: 52.113, 102.123\n    test 519 isclockwise: False\n    test 520 isconvex: False\n    test 521 ispolar: True\n    test 522 areaOf: 8.482014e+10\n    test 523 perimeterOf: 1.334104e+06\n    test 524 centroidOf: 1.167, 1.667\n    test 525 isclockwise: False\n    test 526 isconvex: False\n    test 527 ispolar: False\n    test 528 areaOf: 5.151974e+13\n    test 529 perimeterOf: 2.638608e+07\n    test 530 centroidOf: -19.444, -133.333\n    test 531 isclockwise: True\n    test 532 isconvex: True\n    test 533 ispolar: False\n    test 534 areaOf: 1.751694e+12  FAILED, KNOWN, expected 4.469277e+12\n    test 535 perimeterOf: 1.562029e+07\n    test 536 centroidOf: -72.926, 46.47\n    test 537 isclockwise: True\n    test 538 isconvex: False\n    test 539 ispolar: True\n    test 540 points2: 18\n    test 541 nearestOn5: (-77.455114, -16.67063, 4.134666, 307.988253, 0)\n    test 542 areaCO: 2.83192062868e+11  FAILED, KNOWN, expected 2.69601367661e+11\n    test 543 isclockwise: True\n    test 544 perimeterCO: 2098630.956053  FAILED, KNOWN, expected 2099854.381923\n    test 545 latlon: (-66.6, -88.0)\n    test 546 philam: (-1.162389, -1.53589)\n    test 547 latlonheight: (-66.6, -88.0, 0)\n    test 548 philamheight: (-1.162389, -1.53589, 0)\n    test 549 _N_vector: (0.01386, -0.39691, -0.91775)\n    test 550 toNvector: (0.01386, -0.39691, -0.91775)\n    test 551 toNvector: (0.01386, -0.396906, -0.917755, 0)\n    test 552 classof: 66.6°S, 088.0°W\n    test 553 others: 66.6°S, 088.0°W\n    test 554 copy(<class 'type'>): (<class 'pygeodesy.ellipsoidalNvector.LatLon'>, True)\n    test 555 LatLon.copy(): (<class 'pygeodesy.ellipsoidalNvector.LatLon'>, True)\n\n    testing(pygeodesy.points, 25.05.12, LatLon=<class 'pygeodesy.ellipsoidalVincenty.LatLon'>)\n    test 556 areaOf: 8.811228e+09\n    test 557 centroidOf: 45.5, 1.5\n    test 558 perimeterOf: 2.673633e+05\n    test 559 isclockwise: False\n    test 560 isconvex: True\n    test 561 ispolar: False\n    test 562 areaOf: 7.086883e+09\n    test 563 perimeterOf: 2.687460e+05\n    test 564 centroidOf: 0.333333, 0.333333\n    test 565 isclockwise: True\n    test 566 isconvex: True\n    test 567 ispolar: False\n    test 568 areaOf: 2.827856e+10\n    test 569 perimeterOf: 4.717039e+05\n    test 570 centroidOf: 1.0, 1.0\n    test 571 isclockwise: False\n    test 572 isconvex: True\n    test 573 ispolar: False\n    test 574 areaOf: 2.747297e+13\n    test 575 perimeterOf: 2.332643e+07\n    test 576 centroidOf: 52.113, 102.123\n    test 577 isclockwise: False\n    test 578 isconvex: False\n    test 579 ispolar: True\n    test 580 areaOf: 8.482014e+10\n    test 581 perimeterOf: 1.334104e+06\n    test 582 centroidOf: 1.167, 1.667\n    test 583 isclockwise: False\n    test 584 isconvex: False\n    test 585 ispolar: False\n    test 586 areaOf: 5.151974e+13\n    test 587 perimeterOf: 2.638608e+07\n    test 588 centroidOf: -19.444, -133.333\n    test 589 isclockwise: True\n    test 590 isconvex: True\n    test 591 ispolar: False\n    test 592 areaOf: 1.751694e+12  FAILED, KNOWN, expected 4.469277e+12\n    test 593 perimeterOf: 1.562029e+07\n    test 594 centroidOf: -72.926, 46.47\n    test 595 isclockwise: True\n    test 596 isconvex: False\n    test 597 ispolar: True\n    test 598 points2: 18\n    test 599 nearestOn5: (-77.455114, -16.67063, 4.134666, 307.988253, 0)\n    test 600 areaCO: 2.83192062868e+11  FAILED, KNOWN, expected 2.69601367661e+11\n    test 601 isclockwise: True\n    test 602 perimeterCO: 2098630.956053  FAILED, KNOWN, expected 2099854.381923\n    test 603 latlon: (-66.6, -88.0)\n    test 604 philam: (-1.162389, -1.53589)\n    test 605 latlonheight: (-66.6, -88.0, 0)\n    test 606 philamheight: (-1.162389, -1.53589, 0)\n    test 607 _N_vector: (0.01386, -0.39691, -0.91775)\n    test 608 toNvector: (0.01386, -0.39691, -0.91775, 0)\n    test 609 toNvector: (0.01386, -0.396906, -0.917755, 0)\n    test 610 classof: 66.6°S, 088.0°W\n    test 611 others: 66.6°S, 088.0°W\n    test 612 copy(<class 'type'>): (<class 'pygeodesy.ellipsoidalVincenty.LatLon'>, True)\n    test 613 LatLon.copy(): (<class 'pygeodesy.ellipsoidalVincenty.LatLon'>, True)\n\n    testing(pygeodesy.points, 25.05.12, LatLon=<class 'pygeodesy.ellipsoidalKarney.LatLon'>)\n    test 614 areaOf: 8.811228e+09\n    test 615 centroidOf: 45.5, 1.5\n    test 616 perimeterOf: 2.673633e+05\n    test 617 isclockwise: False\n    test 618 isconvex: True\n# lazily imported pygeodesy.geodesicw by ellipsoids.py line 1074\n    test 619 ispolar: False\n    test 620 areaOf: 7.086883e+09\n    test 621 perimeterOf: 2.687460e+05\n    test 622 centroidOf: 0.333333, 0.333333\n    test 623 isclockwise: True\n    test 624 isconvex: True\n    test 625 ispolar: False\n    test 626 areaOf: 2.827856e+10\n    test 627 perimeterOf: 4.717039e+05\n    test 628 centroidOf: 1.0, 1.0\n    test 629 isclockwise: False\n    test 630 isconvex: True\n    test 631 ispolar: False\n    test 632 areaOf: 2.747297e+13\n    test 633 perimeterOf: 2.332643e+07\n    test 634 centroidOf: 52.113, 102.123\n    test 635 isclockwise: False\n    test 636 isconvex: False\n    test 637 ispolar: True\n    test 638 areaOf: 8.482014e+10\n    test 639 perimeterOf: 1.334104e+06\n    test 640 centroidOf: 1.167, 1.667\n    test 641 isclockwise: False\n    test 642 isconvex: False\n    test 643 ispolar: False\n    test 644 areaOf: 5.151974e+13\n    test 645 perimeterOf: 2.638608e+07\n    test 646 centroidOf: -19.444, -133.333\n    test 647 isclockwise: True\n    test 648 isconvex: True\n    test 649 ispolar: False\n    test 650 areaOf: 1.751694e+12  FAILED, KNOWN, expected 4.469277e+12\n    test 651 perimeterOf: 1.562029e+07\n    test 652 centroidOf: -72.926, 46.47\n    test 653 isclockwise: True\n    test 654 isconvex: False\n    test 655 ispolar: True\n    test 656 points2: 18\n    test 657 nearestOn5: (-77.455114, -16.67063, 4.134666, 307.988253, 0)\n    test 658 areaCO: 2.83192062868e+11  FAILED, KNOWN, expected 2.69601367661e+11\n    test 659 isclockwise: True\n    test 660 perimeterCO: 2098630.956053  FAILED, KNOWN, expected 2099854.381923\n    test 661 latlon: (-66.6, -88.0)\n    test 662 philam: (-1.162389, -1.53589)\n    test 663 latlonheight: (-66.6, -88.0, 0)\n    test 664 philamheight: (-1.162389, -1.53589, 0)\n    test 665 _N_vector: (0.01386, -0.39691, -0.91775)\n    test 666 toNvector: (0.01386, -0.39691, -0.91775, 0)\n    test 667 toNvector: (0.01386, -0.396906, -0.917755, 0)\n    test 668 classof: 66.6°S, 088.0°W\n    test 669 others: 66.6°S, 088.0°W\n    test 670 copy(<class 'type'>): (<class 'pygeodesy.ellipsoidalKarney.LatLon'>, True)\n    test 671 LatLon.copy(): (<class 'pygeodesy.ellipsoidalKarney.LatLon'>, True)\n\n    testing(pygeodesy.points, 25.05.12, LatLon=<class 'pygeodesy.ellipsoidalExact.LatLon'>)\n    test 672 areaOf: 8.811228e+09\n    test 673 centroidOf: 45.5, 1.5\n    test 674 perimeterOf: 2.673633e+05\n    test 675 isclockwise: False\n    test 676 isconvex: True\n# lazily imported pygeodesy.geodesicx by ellipsoids.py line 1082\n# lazily imported pygeodesy.elliptic by gx.py line 421\n    test 677 ispolar: False\n    test 678 areaOf: 7.086883e+09\n    test 679 perimeterOf: 2.687460e+05\n    test 680 centroidOf: 0.333333, 0.333333\n    test 681 isclockwise: True\n    test 682 isconvex: True\n    test 683 ispolar: False\n    test 684 areaOf: 2.827856e+10\n    test 685 perimeterOf: 4.717039e+05\n    test 686 centroidOf: 1.0, 1.0\n    test 687 isclockwise: False\n    test 688 isconvex: True\n    test 689 ispolar: False\n    test 690 areaOf: 2.747297e+13\n    test 691 perimeterOf: 2.332643e+07\n    test 692 centroidOf: 52.113, 102.123\n    test 693 isclockwise: False\n    test 694 isconvex: False\n    test 695 ispolar: True\n    test 696 areaOf: 8.482014e+10\n    test 697 perimeterOf: 1.334104e+06\n    test 698 centroidOf: 1.167, 1.667\n    test 699 isclockwise: False\n    test 700 isconvex: False\n    test 701 ispolar: False\n    test 702 areaOf: 5.151974e+13\n    test 703 perimeterOf: 2.638608e+07\n    test 704 centroidOf: -19.444, -133.333\n    test 705 isclockwise: True\n    test 706 isconvex: True\n    test 707 ispolar: False\n    test 708 areaOf: 1.751694e+12  FAILED, KNOWN, expected 4.469277e+12\n    test 709 perimeterOf: 1.562029e+07\n    test 710 centroidOf: -72.926, 46.47\n    test 711 isclockwise: True\n    test 712 isconvex: False\n    test 713 ispolar: True\n    test 714 points2: 18\n    test 715 nearestOn5: (-77.455114, -16.67063, 4.134666, 307.988253, 0)\n    test 716 areaCO: 2.83192062868e+11  FAILED, KNOWN, expected 2.69601367661e+11\n    test 717 isclockwise: True\n    test 718 perimeterCO: 2098630.956053  FAILED, KNOWN, expected 2098430.887891\n    test 719 latlon: (-66.6, -88.0)\n    test 720 philam: (-1.162389, -1.53589)\n    test 721 latlonheight: (-66.6, -88.0, 0)\n    test 722 philamheight: (-1.162389, -1.53589, 0)\n    test 723 _N_vector: (0.01386, -0.39691, -0.91775)\n    test 724 toNvector: (0.01386, -0.39691, -0.91775, 0)\n    test 725 toNvector: (0.01386, -0.396906, -0.917755, 0)\n    test 726 classof: 66.6°S, 088.0°W\n    test 727 others: 66.6°S, 088.0°W\n    test 728 copy(<class 'type'>): (<class 'pygeodesy.ellipsoidalExact.LatLon'>, True)\n    test 729 LatLon.copy(): (<class 'pygeodesy.ellipsoidalExact.LatLon'>, True)\n\n    testArea(pygeodesy.ellipsoidalKarney, 25.05.27)\n    test 730 luneOf: 1.27516405431022e+14\n\n    testArea(pygeodesy.ellipsoidalExact, 25.08.28)\n    test 731 luneOf: 1.27516405431022e+14\n# lazily imported pygeodesy.ellipsoidalGeodSolve by testPoints.py line 293\n\n    testArea(pygeodesy.ellipsoidalGeodSolve, 25.08.28)\n# lazily imported pygeodesy.geodsolve by ellipsoids.py line 1093\n    test 732 luneOf: 1.27516405431022e+14\n\n    67 of 732 testPoints.py tests (9.2%) FAILED, incl. 21 KNOWN plus 46 DeprecationWarnings (pygeodesy 26.3.26 Python 3.12.10 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 2.1.0 scipy 1.14.1 Math 2 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 isLazy 3 -W  default) 6.107 sec\nrunning /usr/local/bin/p....n3.12 -W default ~/PyGeodesy/test/testProps.py\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.Property from .props by testProps.py line 11\n# lazily imported pygeodesy.Property_RO from .props by testProps.py line 11\n# lazily imported pygeodesy.Ellipsoid from .ellipsoids by testProps.py line 149\n# lazily imported pygeodesy.R_M from .constants by testProps.py line 149\n\n    testing testProps.py 23.03.27 isLazy=3\n\n    test<class 'pygeodesy.named._NamedBase'>(pygeodesy.props, 25.12.31)\n    test 1 P1: 1\n    test 2 p1: 2\n    test 3 P2: 1\n    test 4 p2: 3\n    test 5 q1: 1\n    test 6 q2: 2\n    test 7 q3: True\n    test 8 u1: None\n    test 9 u2: U\n    test 10 P3: 4\n    test 11 p3: 5\n    test 12 q4: False\n    test 13 q5: 2\n    test 14 u3: None\n    test 15 u4: U\n    test 16 X1: immutable Property_RO: X.setter X\n    test 17 X2: invalid Property_RO: X.deleter X\n    test 18 y1: immutable property_RO: y.setter y\n    test 19 y2: invalid property_RO: y.deleter y\n    test 20 Z1: invalid Property: Z.deleter Z\n    test 21 Z2: invalid Property: Z.getter Z\n\n    test<class 'pygeodesy.ellipsoids.Ellipsoid'>(pygeodesy.props, 25.12.31)\n    test 22 P1: 1\n    test 23 p1: 2\n    test 24 P2: 1\n    test 25 p2: 3\n    test 26 q1: 1\n    test 27 q2: 2\n    test 28 q3: True\n    test 29 u1: None\n    test 30 u2: U\n    test 31 P3: 4\n    test 32 p3: 5\n    test 33 q4: False\n    test 34 q5: 2\n    test 35 u3: None\n    test 36 u4: U\n    test 37 X1: immutable Property_RO: X.setter X\n    test 38 X2: invalid Property_RO: X.deleter X\n    test 39 y1: immutable property_RO: y.setter y\n    test 40 y2: invalid property_RO: y.deleter y\n    test 41 Z1: invalid Property: Z.deleter Z\n    test 42 Z2: invalid Property: Z.getter Z\n\n    all 42 testProps.py tests passed (pygeodesy 26.3.26 Python 3.12.10 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 2.1.0 scipy 1.14.1 Math 2 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 isLazy 3 -W  default) 572.205 us\nrunning /usr/local/bin/p....n3.12 -W default ~/PyGeodesy/test/testResections.py\n./test/testResections.py:40: DeprecationWarning: method L{collins<__main__.Cartesian_.collins>} has been DEPRECATED, use method L{collins5}.\n  self.test(collins.__name__, C_(A).collins(C, B, 109.5125, 115.0889), t, nl=1)  # DEPRECATED\n./test/testResections.py:63: DeprecationWarning: method L{tienstra<__main__.Cartesian_.tienstra>} has been DEPRECATED, use method L{tienstra7}.\n  self.test(tienstra.__name__, C_(A).tienstra(B, C, 115.0889, None, 109.5125), t, nl=1)  # DEPRECATED\n./test/testResections.py:72: DeprecationWarning: function L{collins<pygeodesy.deprecated.functions.collins>} has been DEPRECATED, use function L{pygeodesy.collins5}.\n  self.test(collins.__name__, collins(A, C, B, 109.3, 115.1), t, nl=1)  # DEPRECATED\n./test/testResections.py:94: DeprecationWarning: function L{tienstra<pygeodesy.deprecated.functions.tienstra>} has been DEPRECATED, use function L{pygeodesy.tienstra7}.\n  self.test(tienstra.__name__, tienstra(A, B, C, 115.1, beta=135.6, gamma=109.3), t, nl=1)  # DEPRECATED\n./test/testResections.py:100: DeprecationWarning: function L{triAngle4<pygeodesy.deprecated.functions.triAngle4>} has been DEPRECATED on 2023.09.14, use function L{pygeodesy.triAngle5}.\n  rA, rB, rC, _ = triAngle4(10, 30, c)\n./pygeodesy/deprecated/classes.py:33: DeprecationWarning: class L{TriAngle4Tuple<pygeodesy.deprecated.classes.TriAngle4Tuple>} has been DEPRECATED on 2023.09.14, use class L{TriAngle5Tuple}, ignoring item C{area}.\n  deprecated_class(cls)\n./test/testResections.py:107: DeprecationWarning: function L{triAngle4<pygeodesy.deprecated.functions.triAngle4>} has been DEPRECATED on 2023.09.14, use function L{pygeodesy.triAngle5}.\n  rA, rB, rC, _ = triAngle4(320, 435, 598)\n./test/testResections.py:111: DeprecationWarning: function L{triAngle4<pygeodesy.deprecated.functions.triAngle4>} has been DEPRECATED on 2023.09.14, use function L{pygeodesy.triAngle5}.\n  rA, rB, rC, _ = triAngle4(100, 100, 100)\n./test/testResections.py:115: DeprecationWarning: function L{triAngle4<pygeodesy.deprecated.functions.triAngle4>} has been DEPRECATED on 2023.09.14, use function L{pygeodesy.triAngle5}.\n  rA, rB, rC, _ = triAngle4(435, 320, 600)\n./test/testResections.py:119: DeprecationWarning: function L{triAngle4<pygeodesy.deprecated.functions.triAngle4>} has been DEPRECATED on 2023.09.14, use function L{pygeodesy.triAngle5}.\n  rA, rB, rC, _ = triAngle4(1716, 924, 1056)\n./test/testResections.py:126: DeprecationWarning: function L{triAngle4<pygeodesy.deprecated.functions.triAngle4>} has been DEPRECATED on 2023.09.14, use function L{pygeodesy.triAngle5}.\n  t = triAngle4(1, 2, EPS0 / 2)  # DEPRECATED\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.EPS0 from .constants by testResections.py line 11\n# lazily imported pygeodesy.PI from .constants by testResections.py line 11\n# lazily imported pygeodesy.PI_4 from .constants by testResections.py line 11\n# lazily imported pygeodesy.cassini from .resections by testResections.py line 11\n# lazily imported pygeodesy.collins5 from .resections by testResections.py line 11\n# lazily imported pygeodesy.fstr from .streprs by testResections.py line 11\n# lazily imported pygeodesy.pierlot from .resections by testResections.py line 11\n# lazily imported pygeodesy.pierlotx from .resections by testResections.py line 11\n# lazily imported pygeodesy.ResectionError from .resections by testResections.py line 11\n# lazily imported pygeodesy.snellius3 from .resections by testResections.py line 11\n# lazily imported pygeodesy.tienstra7 from .resections by testResections.py line 11\n# lazily imported pygeodesy.triAngle from .resections by testResections.py line 11\n# lazily imported pygeodesy.triAngle5 from .resections by testResections.py line 11\n# lazily imported pygeodesy.triArea from .resections by testResections.py line 11\n# lazily imported pygeodesy.triSide from .resections by testResections.py line 11\n# lazily imported pygeodesy.triSide2 from .resections by testResections.py line 11\n# lazily imported pygeodesy.triSide4 from .resections by testResections.py line 11\n# lazily imported pygeodesy.Vector3d from .vector3d by testResections.py line 11\n# lazily imported pygeodesy.wildberger3 from .resections by testResections.py line 11\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by <frozen importlib._bootstrap> line 1412\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by <frozen importlib._bootstrap> line 1412\n# lazily imported pygeodesy.Conformal2Tuple from .triaxials.triaxial5 by <frozen importlib._bootstrap> line 1412\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by classes.py line 21\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by classes.py line 21\n# lazily imported pygeodesy.Conformal2Tuple from .triaxials.triaxial5 by classes.py line 21\n\n    testing testResections.py 25.05.04 isLazy=3\n    test 1 cassini: (2128.3903, 5578.1443, 0)\n# imported pygeodesy.resections into cartesianBase.py line 116\n    test 2 cassini: Cartesian_(2128.3903, 5578.1443, 0)\n\n    test 3 collins5: (2128.3903, 5578.1443, 0)\n    test 4 collins5: (1830.5948, 2576.2429, 0)\n    test 5 collins5: 1581.1388, 1562.0499, 2121.3203\n    test 6 collins5: Cartesian_(2128.3903, 5578.1443, 0)\n    test 7 collins5: Cartesian_(1830.5948, 2576.2429, 0)\n    test 8 collins5: 1581.1388, 1562.0499, 2121.3203\n    test 9 collins5: 1581.1388, 1562.0499, 2121.3203\n\n    test 10 collins: (Cartesian_(2128.39, 5578.144, 0), Cartesian_(1830.595, 2576.243, 0), 1581.13883, 1562.049935, 2121.320344)\n\n    test 11 pierlot: (2128.3903, 5578.1443, 0)\n    test 12 pierlot: Cartesian_(2128.3903, 5578.1443, 0)\n    test 13 pierlot: Cartesian_(2128.3903, 5578.1443, 0.0)\n\n    test 14 pierlotx: (2128.3903, 5578.1443, 0)\n    test 15 pierlotx: Cartesian_(2128.3903, 5578.1443, 0)\n    test 16 pierlotx: Cartesian_(2128.3903, 5578.1443, 0.0)\n\n    test 17 tienstra7: (2128.3903, 5578.1443, 0)\n    test 18 tienstra7: 47.9357, 84.8896, 47.1747, 1581.1388, 2121.3203, 1562.0499\n    test 19 tienstra7: Cartesian_(2128.3903, 5578.1443, 0)\n    test 20 tienstra7: 47.9357, 84.8896, 47.1747, 1581.1388, 2121.3203, 1562.0499\n\n    test 21 tienstra: (Cartesian_(2128.39, 5578.144, 0), 47.935673, 84.889582, 47.174744, 1581.13883, 2121.320344, 1562.049935)\n\n    test 22 cassini: (2129.3018, 5575.8016, 0)\n\n    test 23 collins5: (2129.3018, 5575.8016, 0)\n    test 24 collins5: (1835.1911, 2563.0708, 0)\n    test 25 collins5: 1581.1388, 1562.0499, 2121.3203\n\n    test 26 collins: (Vector3d(2129.30185, 5575.80164, 0), Vector3d(1835.19112, 2563.07083, 0), 1581.13883, 1562.049935, 2121.320344)\n\n    test 27 pierlot: (2129.3018, 5575.8016, 0)\n# imported pygeodesy.basics into errors.py line 443\n    test 28 pierlot: alpha12 (115.1), alpha23 (109.3), eps (0), point1 (Vector3d(3100.0, 5000.0, 0)), point2 (Vector3d(2200.0, 6300.0, 0)) or point3 (Vector3d(1000.0, 5300.0, 0)): eps (0) invalid\n\n    test 29 pierlotx: (2129.3018, 5575.8016, 0)\n    test 30 pierlotx: (2128.2026, 4708.1218, 0)\n    test 31 pierlotx: (1969.0673, 6633.5695, 0)\n    test 32 pierlotx: (2438.0239, 5094.568, 0)\n\n    test 33 tienstra7: (2129.3018, 5575.8016, 0)\n    test 34 tienstra7: 47.9357, 84.8896, 47.1747, 1581.1388, 2121.3203, 1562.0499\n\n    test 35 tienstra: (Vector3d(2129.30185, 5575.80164, 0), 47.935673, 84.889582, 47.174744, 1581.13883, 2121.320344, 1562.049935)\n\n    test 36 triSide4: (10.0, 30.0, 0.785398, 8.840862)\n\n    test 37 snellius3: (17.54582, 38.564239, 46.317675)\n    test 38 snellius3: (844.880591, 571.107418, 835.462796)\n    test 39 snellius3: (128.557522, 100.0, 187.938524)\n    test 40 snellius3: (567.480866, 847.344375, 832.446688)\n    test 41 snellius3: (4064.197388, 3652.539386, 4988.197388)\n\n    test 42 wildberger3: (17.54582, 38.56424, 46.317675)\n    test 43 wildberger3: (844.880591, 571.107418, 835.462796)\n    test 44 wildberger3: (128.557522, 100.0, 187.938524)\n    test 45 wildberger3: (567.480866, 847.344375, 832.446688)\n    test 46 wildberger3: (4064.197358, 3652.539342, 4988.197355)  FAILED, KNOWN, expected (4064.197343, 3652.539342, 4988.197355)\n\n    test 47 triAngle: 3.141592654\n    test 48 triAngle4: (1.570796, 1.570796, 0.0, 0.0)\n    test 49 triAngle5: (1.570796, 1.570796, 0.0, 0.0, 0.0)\n    test 50 triAngle5: (0.24871, 0.927295, 1.965587, 1.5, 24.0)\n    test 51 triArea: 24.0\n    test 52 triSide2: (2.0, 0.0)\n    test 53 triSide2: (2.0, 3.141593)\n\n    17 of 53 testResections.py tests (32.1%) FAILED, incl. 1 KNOWN plus 16 DeprecationWarnings (pygeodesy 26.3.26 Python 3.12.10 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 2.1.0 scipy 1.14.1 Math 2 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 isLazy 3 -W  default) 28.655 ms\nrunning /usr/local/bin/p....n3.12 -W default ~/PyGeodesy/test/testRhumb_aux_.py\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.Caps from .karney by testRhumb_aux_.py line 11\n# lazily imported pygeodesy.classname from .named by testRhumb_aux_.py line 11\n# lazily imported pygeodesy.DIG from .constants by testRhumb_aux_.py line 11\n# lazily imported pygeodesy.Ellipsoid from .ellipsoids by testRhumb_aux_.py line 11\n# lazily imported pygeodesy.Ellipsoids from .ellipsoids by testRhumb_aux_.py line 11\n# lazily imported pygeodesy.GDict from .karney by testRhumb_aux_.py line 11\n# lazily imported pygeodesy.isfinite from .constants by testRhumb_aux_.py line 11\n# lazily imported pygeodesy.itemsorted from .basics by testRhumb_aux_.py line 11\n# lazily imported pygeodesy.latDMS from .dms by testRhumb_aux_.py line 11\n# lazily imported pygeodesy.lonDMS from .dms by testRhumb_aux_.py line 11\n# lazily imported pygeodesy.parseDMS from .dms by testRhumb_aux_.py line 11\n# lazily imported pygeodesy.parseDMS2 from .dms by testRhumb_aux_.py line 11\n# lazily imported pygeodesy.RhumbAux from .rhumb.aux_ by testRhumb_aux_.py line 11\n# lazily imported pygeodesy.RhumbLineAux from .rhumb.aux_ by testRhumb_aux_.py line 11\n# lazily imported pygeodesy.RhumbLineSolve from .rhumb.solve by testRhumb_aux_.py line 11\n# lazily imported pygeodesy.R_M from .constants by testRhumb_aux_.py line 11\n# lazily imported pygeodesy.Fwelford from .fstats by testRhumb_aux_.py line 11\n# lazily imported pygeodesy.fremainder from .fmath by testRhumb_aux_.py line 11\n\n    testing testRhumb_aux_.py 24.08.30 (module pygeodesy.rhumb.aux_ 25.08.31) isLazy=3\n\n    testDirectX vs ...(pygeodesy.rhumb.aux_, 25.08.31)\n    test 1 Direct.azi12: -92.38889\n    test 2 Direct.lat1: 40.6\n    test 3 Direct.lat2: 21.3781208262067  FAILED, KNOWN (0.402846), expected 35.79999595\n    test 4 Direct.lon1: -73.8\n    test 5 Direct.lon2: -102.999609498889  FAILED, KNOWN (1.73414), expected 140.3000041\n    test 6 Direct.s12: 12782581.068\n\n    test 7 GDict.azi12: 51\n    test 8 GDict.lat1: 40.6\n    test 9 GDict.lat2: 71.688899882813\n    test 10 GDict.lon1: -73.8\n    test 11 GDict.lon2: 0.255519824423459  FAILED, KNOWN (3.90829e-13), expected 0.255519824423359\n    test 12 GDict.s12: 5500000\n    test 13 GDict.S12: 44095641862956.1\n# lazily imported pygeodesy.etm by bases.py line 1013\n\n    test 14 RhumbLineAux: TMorder=6, azi12=51.0, exact=True, lat1=40.6, lon1=-73.8, rhumb=RhumbAux(RAorder=None, TMorder=6, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), exact=True), xTM=ExactTransverseMercator(datum='WGS84', extendp=False, k0=0.9996, lon0=0.0)\n    test 15 RhumbAux: RhumbAux(RAorder=None, TMorder=6, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), exact=True)\n    test 16 isLoxodrome: True\n\n    test 17 ArcPosition.a12: 51\n    test 18 ArcPosition.azi12: 51\n    test 19 ArcPosition.lat1: 40.6\n    test 20 ArcPosition.lat2: 72.6351275818438  FAILED, KNOWN (5.75694e-09), expected 72.635128\n    test 21 ArcPosition.lon1: -73.8\n    test 22 ArcPosition.lon2: 4.06852757947448  FAILED, KNOWN (1.03361e-07), expected 4.068528\n    test 23 ArcPosition.s12: 5667780.57994388  FAILED, KNOWN (2.16901e-14), expected 5667780.579944\n    test 24 ArcPosition.S12: 46665957571716.3  FAILED, KNOWN (1.17189e-15), expected 46665957571716.4\n\n    test 25 Position.a12: 51\n    test 26 Position.azi12: 51\n    test 27 Position.lat1: 40.6\n    test 28 Position.lat2: 72.6351275818438  FAILED, KNOWN (5.75694e-09), expected 72.635128\n    test 29 Position.lon1: -73.8\n    test 30 Position.lon2: 4.06852757947448  FAILED, KNOWN (1.03361e-07), expected 4.068528\n    test 31 Position.s12: 5667780.57994388\n    test 32 Position.S12: 46665957571716.3  FAILED, KNOWN (1.17189e-15), expected 46665957571716.4\n\n    test 33 Direct.a12: 115.020619671634  FAILED, KNOWN (2.85484e-09), expected 115.02062\n    test 34 Direct.azi12: -92.38889\n    test 35 Direct.lat1: 40.6\n    test 36 Direct.lat2: 35.799995945206  FAILED, KNOWN (1.13262e-07), expected 35.8\n    test 37 Direct.lon1: -73.8\n    test 38 Direct.lon2: 140.300004102052  FAILED, KNOWN (2.92377e-08), expected 140.3\n    test 39 Direct.s12: 12782581.068\n\n    test 40 ArcDirect.a12: 115.020619671634\n    test 41 ArcDirect.azi12: -92.38889\n    test 42 ArcDirect.lat1: 40.6\n    test 43 ArcDirect.lat2: 35.799995945206  FAILED, KNOWN (1.13262e-07), expected 35.8\n    test 44 ArcDirect.lon1: -73.8\n    test 45 ArcDirect.lon2: 140.300004102052  FAILED, KNOWN (2.92377e-08), expected 140.3\n    test 46 ArcDirect.s12: 12782581.068\n\n    test 47 Direct8: (40.6, -73.8, 35.799996, 140.300004, -92.38889, 12782581.068, -63760638302268.710938, 115.02062)\n    test 48 toDirect9Tuple: (115.02062, 35.799996, 140.300004, -92.38889, 12782581.068, 12782581.068, 1.0, 1.0, -63760638302268.710938)\n    test 49 DirectLine: (40.6, -73.8, 35.799996, 140.300004, -92.38889, 12782581.068, -63760638302268.710938, 115.02062)\n\n    test 50 RhumbLineAux: TMorder=6, azi12=51.0, exact=True, lat1=40.6, lon1=-73.8, rhumb=RhumbAux(RAorder=None, TMorder=6, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), exact=True), xTM=ExactTransverseMercator(datum='WGS84', extendp=False, k0=0.9996, lon0=0.0)\n    test 51 DirectLine: TMorder=6, azi12=-51.0, exact=True, lat1=35.8, lon1=140.3, rhumb=RhumbAux(RAorder=None, TMorder=6, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), exact=True), xTM=ExactTransverseMercator(datum='WGS84', extendp=False, k0=0.9996, lon0=0.0)\n    test 52 Direct3: (71.6889, 0.25552, 231.0)\n    test 53 Direct3: (71.6889, 0.25552, 51.0)\n\n    test 54 RhumbSolve.azi12: 51\n    test 55 RhumbSolve.lat1: 40.6\n    test 56 RhumbSolve.lat2: 71.688899882813\n    test 57 RhumbSolve.lon1: -73.8\n    test 58 RhumbSolve.lon2: 0.255519824423359  FAILED, KNOWN (3.36517e-13), expected 0.255519824423445\n    test 59 RhumbSolve.s12: 5500000\n    test 60 RhumbSolve.S12: 44095641862956.1\n    test 61 iteration: None\n\n    test 62 f(-0.7)proLate.azi12: 51\n    test 63 f(-0.7)proLate.lat1: 40.6\n    test 64 f(-0.7)proLate.lat2: 78.6870542863008  FAILED, KNOWN (0.000114902), expected 78.696096602308\n    test 65 f(-0.7)proLate.lon1: -73.8\n    test 66 f(-0.7)proLate.lon2: 132.44205049586  FAILED, KNOWN (1.44112), expected 54.2545319022978\n    test 67 f(-0.7)proLate.s12: 5500000\n    test 68 f(-0.7)proLate.S12: 209315447531516  FAILED, KNOWN (0.610789), expected 129945920715013\n\n    test 69 f(-0.6)proLate.azi12: 51\n    test 70 f(-0.6)proLate.lat1: 40.6\n    test 71 f(-0.6)proLate.lat2: 77.0737375316749  FAILED, KNOWN (2.70291e-05), expected 77.0758208198502\n    test 72 f(-0.6)proLate.lon1: -73.8\n    test 73 f(-0.6)proLate.lon2: 108.996612444383  FAILED, KNOWN (1.53686), expected 42.9652115291808\n    test 74 f(-0.6)proLate.s12: 5500000\n    test 75 f(-0.6)proLate.S12: 174817851524522  FAILED, KNOWN (0.565321), expected 111681786580088\n\n    test 76 f(-0.5)proLate.azi12: 51\n    test 77 f(-0.5)proLate.lat1: 40.6\n    test 78 f(-0.5)proLate.lat2: 75.63654242861  FAILED, KNOWN (3.03146e-06), expected 75.6363131401036\n    test 79 f(-0.5)proLate.lon1: -73.8\n    test 80 f(-0.5)proLate.lon2: 90.011541797051  FAILED, KNOWN (1.70185), expected 33.3148081627488\n    test 81 f(-0.5)proLate.s12: 5500000\n    test 82 f(-0.5)proLate.S12: 147005574087075  FAILED, KNOWN (0.52915), expected 96135478582826.5\n\n    test 83 f(-0.4)proLate.azi12: 51\n    test 84 f(-0.4)proLate.lat1: 40.6\n    test 85 f(-0.4)proLate.lat2: 74.3898318477814  FAILED, KNOWN (5.38096e-06), expected 74.3894315611718\n    test 86 f(-0.4)proLate.lon1: -73.8\n    test 87 f(-0.4)proLate.lon2: 74.4254114298034  FAILED, KNOWN (1.98405), expected 24.9411017728723\n    test 88 f(-0.4)proLate.s12: 5500000\n    test 89 f(-0.4)proLate.S12: 124219462485918  FAILED, KNOWN (0.501104), expected 82752093205157.9\n\n    test 90 f(-0.3)proLate.azi12: 51\n    test 91 f(-0.3)proLate.lat1: 40.6\n    test 92 f(-0.3)proLate.lat2: 73.3500188213462  FAILED, KNOWN (1.7981e-06), expected 73.3498869306659\n    test 93 f(-0.3)proLate.lon1: -73.8\n    test 94 f(-0.3)proLate.lon2: 61.5442409361244  FAILED, KNOWN (2.4944), expected 17.6122521235805\n    test 95 f(-0.3)proLate.s12: 5500000\n    test 96 f(-0.3)proLate.S12: 105334974210801  FAILED, KNOWN (0.480588), expected 71144036920514.8\n\n    test 97 f(-0.2)proLate.azi12: 51\n    test 98 f(-0.2)proLate.lat1: 40.6\n    test 99 f(-0.2)proLate.lat2: 72.5367798354745  FAILED, KNOWN (1.88667e-07), expected 72.5367661501826\n    test 100 f(-0.2)proLate.lon1: -73.8\n    test 101 f(-0.2)proLate.lon2: 50.9090128514195  FAILED, KNOWN (3.56215), expected 11.158986522496\n    test 102 f(-0.2)proLate.s12: 5500000\n    test 103 f(-0.2)proLate.S12: 89560298510403.4  FAILED, KNOWN (0.467873), expected 61013644644445.4\n\n    test 104 f(-0.1)proLate.azi12: 51\n    test 105 f(-0.1)proLate.lat1: 40.6\n    test 106 f(-0.1)proLate.lat2: 71.9743861286059  FAILED, KNOWN (1.96334e-09), expected 71.9743859872954\n    test 107 f(-0.1)proLate.lon1: -73.8\n    test 108 f(-0.1)proLate.lon2: 42.2282694141303  FAILED, KNOWN (6.74025), expected 5.45567570418933\n    test 109 f(-0.1)proLate.s12: 5500000\n    test 110 f(-0.1)proLate.S12: 76324373625473  FAILED, KNOWN (0.463974), expected 52135051380432.5\n\n    test 111 f(0.0)sphere.azi12: 51\n    test 112 f(0.0)sphere.lat1: 40.6\n    test 113 f(0.0)sphere.lat2: 71.6930469238479\n    test 114 f(0.0)sphere.lon1: -73.8\n    test 115 f(0.0)sphere.lon2: 0.413867159481015  FAILED, KNOWN (6.96124e-14), expected 0.413867159480986\n    test 116 f(0.0)sphere.s12: 5500000\n    test 117 f(0.0)sphere.S12: 44339815922640.7\n\n    test 118 f(0.1)obLate.azi12: 51\n    test 119 f(0.1)obLate.lat1: 40.6\n    test 120 f(0.1)obLate.lat2: 71.7299877651149  FAILED, KNOWN (1.75062e-09), expected 71.7299876395427\n    test 121 f(0.1)obLate.lon1: -73.8\n    test 122 f(0.1)obLate.lon2: -4.02572626073511  FAILED, KNOWN (7.9475e-08), expected -4.0257265806798\n    test 123 f(0.1)obLate.s12: 5500000\n    test 124 f(0.1)obLate.S12: 37501325846672.1  FAILED, KNOWN (2.71713e-09), expected 37501325744776.3\n\n    test 125 f(0.2)obLate.azi12: 51\n    test 126 f(0.2)obLate.lat1: 40.6\n    test 127 f(0.2)obLate.lat2: 72.1296406403857  FAILED, KNOWN (1.232e-06), expected 72.129551777134\n    test 128 f(0.2)obLate.lon1: -73.8\n    test 129 f(0.2)obLate.lon2: -7.89959865727292  FAILED, KNOWN (1.33451e-05), expected -7.89970407960843\n    test 130 f(0.2)obLate.s12: 5500000\n    test 131 f(0.2)obLate.S12: 31524351627370.3  FAILED, KNOWN (1.66893e-06), expected 31524299015475.5\n\n    test 132 f(0.3)obLate.azi12: 51\n    test 133 f(0.3)obLate.lat1: 40.6\n    test 134 f(0.3)obLate.lat2: 72.9417108424475  FAILED, KNOWN (5.10483e-05), expected 72.9379874834441\n    test 135 f(0.3)obLate.lon1: -73.8\n    test 136 f(0.3)obLate.lon2: -11.2251277212334  FAILED, KNOWN (0.000280182), expected -11.2282736868989\n    test 137 f(0.3)obLate.s12: 5500000\n    test 138 f(0.3)obLate.S12: 26338446304263  FAILED, KNOWN (9.11203e-05), expected 26336046555855\n\n    test 139 f(0.4)obLate.azi12: 51\n    test 140 f(0.4)obLate.lat1: 40.6\n    test 141 f(0.4)obLate.lat2: 74.2150181648285  FAILED, KNOWN (0.000669614), expected 74.1653559732625\n    test 142 f(0.4)obLate.lon1: -73.8\n    test 143 f(0.4)obLate.lon2: -14.0025161670195  FAILED, KNOWN (0.0022368), expected -14.0339071426255\n    test 144 f(0.4)obLate.s12: 5500000\n    test 145 f(0.4)obLate.S12: 21893453097833.3  FAILED, KNOWN (0.00179024), expected 21854328668749.7\n\n    test 146 f(0.5)obLate.azi12: 51\n    test 147 f(0.5)obLate.lat1: 40.6\n    test 148 f(0.5)obLate.lat2: 75.9843423530564  FAILED, KNOWN (0.00435925), expected 75.6545456515098\n    test 149 f(0.5)obLate.lon1: -73.8\n    test 150 f(0.5)obLate.lon2: -16.2158875285255  FAILED, KNOWN (0.00971109), expected -16.3749056931627\n    test 151 f(0.5)obLate.s12: 5500000\n    test 152 f(0.5)obLate.S12: 18156125381149.1  FAILED, KNOWN (0.0170267), expected 17852162633650.3\n\n    test 153 f(0.6)obLate.azi12: 51\n    test 154 f(0.6)obLate.lat1: 40.6\n    test 155 f(0.6)obLate.lat2: 78.2485809971866  FAILED, KNOWN (0.0166816), expected 76.9646871723422\n    test 156 f(0.6)obLate.lon1: -73.8\n    test 157 f(0.6)obLate.lon2: -17.8350956076784  FAILED, KNOWN (0.027693), expected -18.3430698506249\n    test 158 f(0.6)obLate.s12: 5500000\n    test 159 f(0.6)obLate.S12: 15107154263233.1  FAILED, KNOWN (0.018399), expected 14834219095347.8\n\n    test 160 f(0.7)obLate.azi12: 51\n    test 161 f(0.7)obLate.lat1: 40.6\n    test 162 f(0.7)obLate.lat2: 80.9441758588144  FAILED, KNOWN (0.0375368), expected 78.0157145651534\n    test 163 f(0.7)obLate.lon1: -73.8\n    test 164 f(0.7)obLate.lon2: -18.8222432743228  FAILED, KNOWN (0.114723), expected -21.2614142472982\n    test 165 f(0.7)obLate.s12: 5500000\n    test 166 f(0.7)obLate.S12: 12738166063845.6  FAILED, KNOWN (0.461584), expected 8715315180697.08\n\n    test 167 f(0.8)obLate.azi12: 51\n    test 168 f(0.8)obLate.lat1: 40.6\n    test 169 f(0.8)obLate.lat2: 83.929256887239  FAILED, KNOWN (0.0240398), expected 81.9589810957133\n    test 170 f(0.8)obLate.lon1: -73.8\n    test 171 f(0.8)obLate.lon2: -19.1538144966026  FAILED, KNOWN (1.2482), expected 77.1693745258283\n    test 172 f(0.8)obLate.s12: 5500000\n    test 173 f(0.8)obLate.S12: 11048687499494.5  FAILED, KNOWN (0.56772), expected 25559099120347.3\n\n    test 174 f(0.9)obLate.azi12: 51\n    test 175 f(0.9)obLate.lat1: 40.6\n    test 176 f(0.9)obLate.lat2: 87.0045804494549  FAILED, KNOWN (0.120324), expected 98.9052225246142\n    test 177 f(0.9)obLate.lon1: -73.8\n    test 178 f(0.9)obLate.lon2: -18.8902657154805  FAILED, KNOWN (0.231307), expected -15.3416430304294\n    test 179 f(0.9)obLate.s12: 5500000\n    test 180 f(0.9)obLate.S12: 10042890721594  FAILED, KNOWN (1.9161), expected -10962672407243.4\n\n    testInverseX vs ...(pygeodesy.rhumb.aux_, 25.08.31)\n    test 181 Inverse.azi12: -92.3888879816996  FAILED, KNOWN (2.18457e-08), expected -92.38889\n    test 182 Inverse.lat1: 40.6\n    test 183 Inverse.lat2: 35.8\n    test 184 Inverse.lon1: -73.8\n    test 185 Inverse.lon2: 140.3\n    test 186 Inverse.s12: 1282.19384243156  FAILED, KNOWN (1.8964e-09), expected 1282.19384\n    test 187 Inverse.S12: 21234695071407.8  FAILED, KNOWN (0.00128112), expected 21207525604650.8\n\n    test 188 GDict.azi12: 77.7683897102557\n    test 189 GDict.lat1: 40.6\n    test 190 GDict.lat2: 51.6\n    test 191 GDict.lon1: -73.8\n    test 192 GDict.lon2: -0.5\n    test 193 GDict.s12: 5771083.38332803\n    test 194 GDict.S12: 37395209100030.4\n\n    test 195 Inverse.azi12: 103.582833003411  FAILED, KNOWN (3.18511e-09), expected 103.582833333333\n    test 196 Inverse.lat1: 40.6397222222222  FAILED, KNOWN (5.4681e-09), expected 40.639722\n    test 197 Inverse.lat2: 1.35916666666667  FAILED, KNOWN (2.45248e-07), expected 1.359167\n    test 198 Inverse.lon2: 103.989444444444  FAILED, KNOWN (4.27394e-09), expected 103.989444\n    test 199 Inverse.s12: 18523563.0423774  FAILED, KNOWN (2.28776e-09), expected 18523563\n\n    test 200 0,000 Km lat2: 40:38:23.0N\n    test 201 0,000 Km lon2: 073:46:44.0W\n    test 202 0,000 Km S12 : 0\n    test 203 1,000 Km lat2: 36:24:30.3N\n    test 204 1,000 Km lon2: 051:28:26.4W\n    test 205 1,000 Km S12 : 9817078307820  FAILED, KNOWN, expected 9817078307821\n    test 206 2,000 Km lat2: 32:10:26.8N\n    test 207 2,000 Km lon2: 030:20:57.3W\n    test 208 2,000 Km S12 : 18224745682004  FAILED, KNOWN, expected 18224745682005\n./test/testRhumb_aux_.py:267: DeprecationWarning: method L{distance2<pygeodesy.rhumb.aux_.RhumbLineAux.distance2>} has been DEPRECATED on 23.09.23, use method L{RhumbLineAux.Inverse} or L{RhumbLine.Inverse}.\n  t = r.distance2(p.lat2, p.lon2)\n    test 209 3,000 Km lat2: 27:56:13.2N\n    test 210 3,000 Km lon2: 010:10:54.2W\n    test 211 3,000 Km S12 : 25358020327741\n    test 212 4,000 Km lat2: 23:41:50.1N\n    test 213 4,000 Km lon2: 009:12:45.5E\n    test 214 4,000 Km S12 : 31321269267101  FAILED, KNOWN, expected 31321269267102\n    test 215 5,000 Km lat2: 19:27:18.7N\n    test 216 5,000 Km lon2: 027:59:22.1E\n    test 217 5,000 Km S12 : 36195163180159\n    test 218 6,000 Km lat2: 15:12:40.2N\n    test 219 6,000 Km lon2: 046:17:01.1E\n    test 220 6,000 Km S12 : 40041499143669\n    test 221 7,000 Km lat2: 10:57:55.9N\n    test 222 7,000 Km lon2: 064:12:52.8E\n    test 223 7,000 Km S12 : 42906570007050\n    test 224 8,000 Km lat2: 06:43:07.3N\n    test 225 8,000 Km lon2: 081:53:28.8E\n    test 226 8,000 Km S12 : 44823504180199  FAILED, KNOWN, expected 44823504180200\n    test 227 9,000 Km lat2: 02:28:16.2N\n    test 228 9,000 Km lon2: 099:24:54.5E\n    test 229 9,000 Km S12 : 45813843358737\n    test 230 10,000 Km lat2: 01:46:36.0S\n    test 231 10,000 Km lon2: 116:52:59.7E\n    test 232 10,000 Km S12 : 45888525219677\n\n    test 233 Inverse: {a12: 49.663661, azi12: 77.692032, azi21: -102.307968, lat1: 40.6, lat2: 51.6, lon1: -73.8, lon2: -0.5, name: '_Prolate', s12: 5519269.307383}\n    test 234 Inverse8: (40.6, -73.8, 51.6, -0.5, 77.692032, 5519269.307383, 37469093881942.304688, 49.663661)\n    test 235 toInverse10Tuple: (49.663661, 5519269.307383, 0.977016, 0.213166, 0.977016, 0.213166, 5519269.307383, 1.0, 1.0, 37469093881942.304688)\n    test 236 InverseLine: -102.23161028974434\n\n    test 237 Inverse1: 51.9295425\n    test 238 Inverse3: (5771083.383328, 77.76839, 77.76839)\n\n    test 239 RhumbSolve.azi12: 77.7683897102557\n    test 240 RhumbSolve.lat1: 40.6\n    test 241 RhumbSolve.lat2: 51.6\n    test 242 RhumbSolve.lon1: -73.8\n    test 243 RhumbSolve.lon2: -0.5\n    test 244 RhumbSolve.s12: 5771083.38332803\n    test 245 RhumbSolve.S12: 37395209100030.4\n    test 246 iteration: None\n\n    test 247 f(-0.7)proLate.a12: 19.4691438255745  FAILED, KNOWN (0.273006), expected 26.7803214175776\n    test 248 f(-0.7)proLate.azi12: 72.245160090458  FAILED, KNOWN (0.00216383), expected 72.4018253121172\n    test 249 f(-0.7)proLate.lat1: 40.6\n    test 250 f(-0.7)proLate.lat2: 51.6\n    test 251 f(-0.7)proLate.lon1: -73.8\n    test 252 f(-0.7)proLate.lon2: -0.5\n    test 253 f(-0.7)proLate.s12: 4227905.47113213  FAILED, KNOWN (0.0330864), expected 4092499.29481447\n    test 254 f(-0.7)proLate.S12: 69930230457646.9  FAILED, KNOWN (0.000156019), expected 69941142612586.3\n\n    test 255 f(-0.6)proLate.a12: 21.6957794143251  FAILED, KNOWN (0.25395), expected 29.0808745598975\n    test 256 f(-0.6)proLate.azi12: 72.8447176862056  FAILED, KNOWN (0.000864542), expected 72.9077494979405\n    test 257 f(-0.6)proLate.lat1: 40.6\n    test 258 f(-0.6)proLate.lat2: 51.6\n    test 259 f(-0.6)proLate.lon1: -73.8\n    test 260 f(-0.6)proLate.lon2: -0.5\n    test 261 f(-0.6)proLate.s12: 4398629.48315431  FAILED, KNOWN (0.0314121), expected 4264667.25827321\n    test 262 f(-0.6)proLate.S12: 65532336784621.8  FAILED, KNOWN (0.00049044), expected 65500212889173.8\n\n    test 263 f(-0.5)proLate.a12: 24.3873218521504  FAILED, KNOWN (0.229466), expected 31.6499102327978\n    test 264 f(-0.5)proLate.azi12: 73.45973097209  FAILED, KNOWN (0.000287211), expected 73.4808354630838\n    test 265 f(-0.5)proLate.lat1: 40.6\n    test 266 f(-0.5)proLate.lat2: 51.6\n    test 267 f(-0.5)proLate.lon1: -73.8\n    test 268 f(-0.5)proLate.lon2: -0.5\n    test 269 f(-0.5)proLate.s12: 4589390.62703027  FAILED, KNOWN (0.0317372), expected 4448216.73228058\n    test 270 f(-0.5)proLate.S12: 61028486473535.8  FAILED, KNOWN (0.000367922), expected 61006040985934.2\n\n    test 271 f(-0.4)proLate.a12: 27.648678517054  FAILED, KNOWN (0.199104), expected 34.5221772753245\n    test 272 f(-0.4)proLate.azi12: 74.1256528590435  FAILED, KNOWN (7.26714e-05), expected 74.1310400671426\n    test 273 f(-0.4)proLate.lat1: 40.6\n    test 274 f(-0.4)proLate.lat2: 51.6\n    test 275 f(-0.4)proLate.lon1: -73.8\n    test 276 f(-0.4)proLate.lon2: -0.5\n    test 277 f(-0.4)proLate.s12: 4795999.00733361  FAILED, KNOWN (0.0328035), expected 4643670.35024648\n    test 278 f(-0.4)proLate.S12: 56459162579463.4  FAILED, KNOWN (0.000117641), expected 56452521439924.1\n\n    test 279 f(-0.3)proLate.a12: 31.644951499171  FAILED, KNOWN (0.161403), expected 37.7355934079112\n    test 280 f(-0.3)proLate.azi12: 74.8684851385499  FAILED, KNOWN (1.18735e-05), expected 74.8693740965484\n    test 281 f(-0.3)proLate.lat1: 40.6\n    test 282 f(-0.3)proLate.lat2: 51.6\n    test 283 f(-0.3)proLate.lon1: -73.8\n    test 284 f(-0.3)proLate.lon2: -0.5\n    test 285 f(-0.3)proLate.s12: 5016163.41790208  FAILED, KNOWN (0.0339659), expected 4851381.97767908\n    test 286 f(-0.3)proLate.S12: 51834653769507.8  FAILED, KNOWN (1.38889e-05), expected 51833933851469.2\n\n    test 287 f(-0.2)proLate.a12: 36.6456555579816  FAILED, KNOWN (0.113347), expected 41.3303335380468\n    test 288 f(-0.2)proLate.azi12: 75.707541532189  FAILED, KNOWN (8.63785e-07), expected 75.7076069272899\n    test 289 f(-0.2)proLate.lat1: 40.6\n    test 290 f(-0.2)proLate.lat2: 51.6\n    test 291 f(-0.2)proLate.lon1: -73.8\n    test 292 f(-0.2)proLate.lon2: -0.5\n    test 293 f(-0.2)proLate.s12: 5250114.26186747  FAILED, KNOWN (0.0352354), expected 5071420.79099659\n    test 294 f(-0.2)proLate.S12: 47145799674098  FAILED, KNOWN (1.47731e-07), expected 47145792709215\n\n    test 295 f(-0.1)proLate.a12: 43.0921529976013  FAILED, KNOWN (0.0497211), expected 45.3468481547493\n    test 296 f(-0.1)proLate.azi12: 76.657619712308  FAILED, KNOWN (8.52686e-09), expected 76.6576203659566\n    test 297 f(-0.1)proLate.lat1: 40.6\n    test 298 f(-0.1)proLate.lat2: 51.6\n    test 299 f(-0.1)proLate.lon1: -73.8\n    test 300 f(-0.1)proLate.lon2: -0.5\n    test 301 f(-0.1)proLate.s12: 5498686.10901062  FAILED, KNOWN (0.0368243), expected 5303392.62882456\n    test 302 f(-0.1)proLate.S12: 42386228150766.8  FAILED, KNOWN (3.28252e-09), expected 42386228289900.3\n\n    test 303 f(0.0)sphere.a12: 51.7609673604566  FAILED, KNOWN (5.49095e-16), expected 51.7609673604565\n    test 304 f(0.0)sphere.azi12: 77.7302010637481\n    test 305 f(0.0)sphere.lat1: 40.6\n    test 306 f(0.0)sphere.lat2: 51.6\n    test 307 f(0.0)sphere.lon1: -73.8\n    test 308 f(0.0)sphere.lon2: -0.5\n    test 309 f(0.0)sphere.s12: 5762004.52953328\n    test 310 f(0.0)sphere.S12: 37558171832842.8\n\n    test 311 f(0.1)obLate.a12: 57.0691016382906  FAILED, KNOWN (4.0732e-08), expected 57.0691039628295\n    test 312 f(0.1)obLate.azi12: 78.9329887995079  FAILED, KNOWN (1.43563e-08), expected 78.93298766632\n    test 313 f(0.1)obLate.lat1: 40.6\n    test 314 f(0.1)obLate.lat2: 51.6\n    test 315 f(0.1)obLate.lon1: -73.8\n    test 316 f(0.1)obLate.lon2: -0.5\n    test 317 f(0.1)obLate.s12: 6039438.43345776  FAILED, KNOWN (4.0732e-08), expected 6039438.67945619\n    test 318 f(0.1)obLate.S12: 32672705345900.1  FAILED, KNOWN (2.74923e-10), expected 32672705354882.6\n\n    test 319 f(0.2)obLate.a12: 62.9812798810273  FAILED, KNOWN (2.12874e-06), expected 62.9814139522912\n    test 320 f(0.2)obLate.azi12: 80.2674399313414  FAILED, KNOWN (2.45267e-06), expected 80.2672430625978\n    test 321 f(0.2)obLate.lat1: 40.6\n    test 322 f(0.2)obLate.lat2: 51.6\n    test 323 f(0.2)obLate.lon1: -73.8\n    test 324 f(0.2)obLate.lon2: -0.5\n    test 325 f(0.2)obLate.s12: 6329429.80122212  FAILED, KNOWN (2.12874e-06), expected 6329443.27498218\n    test 326 f(0.2)obLate.S12: 27754099677104.7  FAILED, KNOWN (3.67056e-06), expected 27753997804515.6\n\n    test 327 f(0.3)obLate.a12: 69.5187833694955  FAILED, KNOWN (2.87423e-05), expected 69.5167852965365\n    test 328 f(0.3)obLate.azi12: 81.727845079412  FAILED, KNOWN (5.70433e-05), expected 81.723183320486\n    test 329 f(0.3)obLate.lat1: 40.6\n    test 330 f(0.3)obLate.lat2: 51.6\n    test 331 f(0.3)obLate.lon1: -73.8\n    test 332 f(0.3)obLate.lon2: -0.5\n    test 333 f(0.3)obLate.s12: 6629289.31235135  FAILED, KNOWN (2.87423e-05), expected 6629098.77674255\n    test 334 f(0.3)obLate.S12: 22849066200619.3  FAILED, KNOWN (0.000125134), expected 22846207364622.2\n\n    test 335 f(0.4)obLate.a12: 76.6668761893773  FAILED, KNOWN (0.000184585), expected 76.6527272755987\n    test 336 f(0.4)obLate.azi12: 83.3233422838214  FAILED, KNOWN (0.000593611), expected 83.2739099818904\n    test 337 f(0.4)obLate.lat1: 40.6\n    test 338 f(0.4)obLate.lat2: 51.6\n    test 339 f(0.4)obLate.lon1: -73.8\n    test 340 f(0.4)obLate.lon2: -0.5\n    test 341 f(0.4)obLate.s12: 6934718.96454384  FAILED, KNOWN (0.000184585), expected 6933439.15838001\n    test 342 f(0.4)obLate.S12: 18021142604226.8  FAILED, KNOWN (6.99801e-05), expected 18022403814356\n\n    test 343 f(0.5)obLate.a12: 84.1879143342343  FAILED, KNOWN (0.00125982), expected 84.2941094970901\n    test 344 f(0.5)obLate.azi12: 85.209638808327  FAILED, KNOWN (0.00401656), expected 84.8687585722893\n    test 345 f(0.5)obLate.lat1: 40.6\n    test 346 f(0.5)obLate.lat2: 51.6\n    test 347 f(0.5)obLate.lon1: -73.8\n    test 348 f(0.5)obLate.lon2: -0.5\n    test 349 f(0.5)obLate.s12: 7225456.98760837  FAILED, KNOWN (0.00125982), expected 7234571.22434383\n    test 350 f(0.5)obLate.S12: 13330376215278.6  FAILED, KNOWN (0.00479727), expected 13394633943853.9\n\n    test 351 f(0.6)obLate.a12: 91.2748602594913  FAILED, KNOWN (0.010337), expected 92.2282212329554\n    test 352 f(0.6)obLate.azi12: 88.2352064317911  FAILED, KNOWN (0.0209076), expected 86.428203134645\n    test 353 f(0.6)obLate.lat1: 40.6\n    test 354 f(0.6)obLate.lat2: 51.6\n    test 355 f(0.6)obLate.lon1: -73.8\n    test 356 f(0.6)obLate.lon2: -0.5\n    test 357 f(0.6)obLate.s12: 7442997.57411557  FAILED, KNOWN (0.010337), expected 7520739.2807868\n    test 358 f(0.6)obLate.S12: 9465183863577.65  FAILED, KNOWN (0.0376023), expected 9122169096644.63\n\n    test 359 f(0.7)obLate.a12: 96.2356480551612  FAILED, KNOWN (0.0382968), expected 100.067930534571\n    test 360 f(0.7)obLate.azi12: 95.8849205715045  FAILED, KNOWN (0.0915361), expected 87.8440216245934\n    test 361 f(0.7)obLate.lat1: 40.6\n    test 362 f(0.7)obLate.lat2: 51.6\n    test 363 f(0.7)obLate.lon1: -73.8\n    test 364 f(0.7)obLate.lon2: -0.5\n    test 365 f(0.7)obLate.s12: 7478027.19892371  FAILED, KNOWN (0.0382968), expected 7775816.14921537\n    test 366 f(0.7)obLate.S12: 6562901235483.6  FAILED, KNOWN (0.212668), expected 5411952373368.14\n\n    test 367 f(0.8)obLate.a12: 102.64879564776  FAILED, KNOWN (0.0423786), expected 107.191415254442\n    test 368 f(0.8)obLate.azi12: 119.3880292385  FAILED, KNOWN (0.341604), expected 88.9890486193666\n    test 369 f(0.8)obLate.lat1: 40.6\n    test 370 f(0.8)obLate.lat2: 51.6\n    test 371 f(0.8)obLate.lon1: -73.8\n    test 372 f(0.8)obLate.lon2: -0.5\n    test 373 f(0.8)obLate.s12: 7641914.41853579  FAILED, KNOWN (0.0423786), expected 7980099.68462837\n    test 374 f(0.8)obLate.S12: 4756594610716.28  FAILED, KNOWN (0.897727), expected 2506469143363.47\n\n    test 375 f(0.9)obLate.a12: 63.2182522839011  FAILED, KNOWN (0.43897), expected 112.682385936062\n    test 376 f(0.9)obLate.azi12: 58.1823785248744  FAILED, KNOWN (0.351646), expected 89.7386359477264\n    test 377 f(0.9)obLate.lat1: 40.6\n    test 378 f(0.9)obLate.lat2: 51.6\n    test 379 f(0.9)obLate.lon1: -73.8\n    test 380 f(0.9)obLate.lon2: -0.5\n    test 381 f(0.9)obLate.s12: 4551816.73344679  FAILED, KNOWN (0.43897), expected 8113314.60991829\n    test 382 f(0.9)obLate.S12: -15708333250087.5  FAILED, KNOWN (25.1264), expected 651083632161.443\n\n    test 383 R.exact: True\n    test 384 R.exact: False\n    test 385 R: RhumbAux(RAorder=None, TMorder=6, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), exact=False)\n\n    test 386 R.exact: True\n    test 387 R.Line.exact: True\n    test 388 R.Line: RhumbLineAux(TMorder=6, azi12=3.0, exact=True, lat1=1.0, lon1=2.0, rhumb=RhumbAux(RAorder=None, TMorder=6, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), exact=True), xTM=ExactTransverseMercator(datum='WGS84', extendp=False, k0=0.9996, lon0=0.0))\n# lazily imported pygeodesy.ktm by bases.py line 448\n# imported pygeodesy.basics into errors.py line 915\n# lazily imported pygeodesy.geodesicx by ellipsoids.py line 1043\n\n    test 389 PlumbTo(exact=False, est=1000000.0): PlumbTo(a02=17.967658, a12=27.74256, at=90.0, azi0=113.73626, azi12=45.0, lat0=60, lat1=30.0, lat2=49.634582, lon0=0, lon1=0.0, lon2=25.767876, name='PlumbTo', s02=1997960.116871, s12=3083112.636236)\n    test 390 a02: 17.967658\n    test 391 s02: 1997960.116871\n    test 392 s12: 3083112.636236\n    test 393 azi0: 113.736\n    test 394 azi2: 135.000\n    test 395 iteration: 7\n\n    test 396 PlumbTo(exact=False, est=None): PlumbTo(a02=17.967658, a12=27.74256, at=90.0, azi0=113.73626, azi12=45.0, lat0=60, lat1=30.0, lat2=49.634582, lon0=0, lon1=0.0, lon2=25.767876, name='PlumbTo', s02=1997960.116871, s12=3083112.636236)\n    test 397 a02: 17.967658\n    test 398 s02: 1997960.116871\n    test 399 s12: 3083112.636236\n    test 400 azi0: 113.736\n    test 401 azi2: 135.000\n    test 402 iteration: 5\n# lazily imported pygeodesy.formy by bases.py line 705\n\n    test 403 Intersecant2: (Intersecant2(a03=17.798332, a12=44.076956, azi03=135.0, azi12=45.0, lat0=30.0, lat1=30.0, lat2=61.164348, lat3=45.0, lon0=0.0, lon1=0.0, lon2=46.209348, lon3=15.830286, name='Intersecant2', s03=1977981.142985, s12=4898402.305119), Intersecant2(a03=17.798332, a12=-5.034244, azi03=135.0, azi12=45.0, lat0=30.0, lat1=30.0, lat2=26.4303, lat3=45.0, lon0=0.0, lon1=0.0, lon2=-4.030999, lon3=15.830286, name='Intersecant2', s03=1977981.142985, s12=-559470.390057))\n    test 404 azi0*=-90.000: exact=False, iteration=4, max=0, mean=0.0, min=0, stdev=0.0\n\n    test 405 PlumbTo(exact=True, est=1000000.0): PlumbTo(a02=17.967658, a12=27.74256, at=90.0, azi0=113.73626, azi12=45.0, lat0=60, lat1=30.0, lat2=49.634582, lon0=0, lon1=0.0, lon2=25.767876, name='PlumbTo', s02=1997960.116871, s12=3083112.636236)\n    test 406 a02: 17.967658\n    test 407 s02: 1997960.116871\n    test 408 s12: 3083112.636236\n    test 409 azi0: 113.736\n    test 410 azi2: 135.000\n    test 411 iteration: 7\n\n    test 412 PlumbTo(exact=True, est=None): PlumbTo(a02=17.967658, a12=27.74256, at=90.0, azi0=113.73626, azi12=45.0, lat0=60, lat1=30.0, lat2=49.634582, lon0=0, lon1=0.0, lon2=25.767876, name='PlumbTo', s02=1997960.116871, s12=3083112.636236)\n    test 413 a02: 17.967658\n    test 414 s02: 1997960.116871\n    test 415 s12: 3083112.636236\n    test 416 azi0: 113.736\n    test 417 azi2: 135.000\n    test 418 iteration: 5\n\n    test 419 Intersecant2: (Intersecant2(a03=17.798332, a12=44.076956, azi03=135.0, azi12=45.0, lat0=30.0, lat1=30.0, lat2=61.164348, lat3=45.0, lon0=0.0, lon1=0.0, lon2=46.209348, lon3=15.830286, name='Intersecant2', s03=1977981.142985, s12=4898402.305119), Intersecant2(a03=17.798332, a12=-5.034244, azi03=135.0, azi12=45.0, lat0=30.0, lat1=30.0, lat2=26.4303, lat3=45.0, lon0=0.0, lon1=0.0, lon2=-4.030999, lon3=15.830286, name='Intersecant2', s03=1977981.142985, s12=-559470.390057))\n    test 420 azi0*=-90.000: exact=True, iteration=4, max=0, mean=0.0, min=0, stdev=0.0\n\n    test 421 PlumbTo(exact=None, est=None): Intersection(a02=17.798332, a12=19.521356, at=90.0, azi02=135.0, azi12=45.0, lat0=60.0, lat1=30.0, lat2=45.0, lon0=0.0, lon1=0.0, lon2=15.830286, name='Intersection', s02=1977981.142985, s12=2169465.957531)\n    test 422 a02: 17.798332\n    test 423 s02: 1977981.142985\n    test 424 s12: 2169465.957531\n    test 425 azi02: 135.000\n    test 426 iteration: 9\n\n    test 427 Intersecant2: (Intersecant2(a03=17.798332, a12=44.076956, azi03=135.0, azi12=45.0, lat0=30.0, lat1=30.0, lat2=61.164348, lat3=45.0, lon0=0.0, lon1=0.0, lon2=46.209348, lon3=15.830286, name='Intersecant2', s03=1977981.142985, s12=4898402.305119), Intersecant2(a03=17.798332, a12=-5.034244, azi03=135.0, azi12=45.0, lat0=30.0, lat1=30.0, lat2=26.4303, lat3=45.0, lon0=0.0, lon1=0.0, lon2=-4.030999, lon3=15.830286, name='Intersecant2', s03=1977981.142985, s12=-559470.390057))\n    test 428 azi0*=90.000: exact=None, iteration=15, max=0, mean=-1.802066, min=-5.060016, stdev=2.124232\n\n    test 429 xTM: ExactTransverseMercator(datum='WGS84', extendp=False, k0=0.9996, lon0=0.0)\n\n    test 430 Intersection: Intersection(a02=42.220588, a12=16.98358, at=-85.0, azi02=-50.0, azi12=35.0, lat0=0.0, lat1=10.0, lat2=23.944114, lon0=-10.0, lon1=-56.0, lon2=-45.833131, name='Intersection', s02=4694721.624938, s12=1888490.587742)  FAILED, KNOWN, expected (26.9774, -43.4088)\n    test 431 PlumbTo: Intersection(a02=0.0, a12=16.98358, at=90.0, azi02=125.0, azi12=35.0, lat0=23.944114, lat1=10.0, lat2=23.944114, lon0=-45.833131, lon1=-56.0, lon2=-45.833131, name='Intersection', s02=0.000044, s12=1888490.587743)\n    test 432 PlumbTo: Intersection(a02=0.0, a12=42.220588, at=90.0, azi02=40.0, azi12=-50.0, lat0=23.944114, lat1=0.0, lat2=23.944114, lon0=-45.833131, lon1=-10.0, lon2=-45.833131, name='Intersection', s02=0.00026, s12=4694721.624901)\n    test 433 xTM: KTransverseMercator(ellipsoid=Ellipsoid(name='Sphere', a=6371008.771415, f=0, f_=0, b=6371008.771415), k0=0.9996, TMorder=6)\n\n    test 434 Intersection: Intersection(a02=31.539478, a12=26.853309, at=-135.0, azi02=-45.0, azi12=90.0, lat0=15.0, lat1=37.0, lat2=37.0, lon0=-17.0, lon1=-76.0, lon2=-42.376015, name='Intersection', s02=3507034.715572, s12=2985955.796006)  FAILED, KNOWN, expected (37.0, -41.7028)\n    test 435 PlumbTo: Intersection(a02=0.0, a12=26.853309, at=90.0, azi02=180.0, azi12=90.0, lat0=37.0, lat1=37.0, lat2=37.0, lon0=-42.376015, lon1=-76.0, lon2=-42.376015, name='Intersection', s02=0.000162, s12=2985955.795978)\n    test 436 PlumbTo: Intersection(a02=0.0, a12=31.539478, at=90.0, azi02=45.0, azi12=-45.0, lat0=37.0, lat1=15.0, lat2=37.0, lon0=-42.376015, lon1=-17.0, lon2=-42.376015, name='Intersection', s02=0.000092, s12=3507034.71557)\n    test 437 xTM: KTransverseMercator(ellipsoid=Ellipsoid(name='Sphere', a=6371008.771415, f=0, f_=0, b=6371008.771415), k0=0.9996, TMorder=6)\n\n    test 438 toStr: invokation=1, rhumb=RhumbSolve(ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), invokation=0, RhumbSolve='/opt/local/bin/RhumbSolve', status=None), status=0\n    test 439 lat1: 1\n    test 440 lon1: 2\n    test 441 a: 6378137.0\n    test 442 f: 0.003352810664747481\n    test 443 Position: {azi12: 3, lat1: 1, lat2: 10.030279, lon1: 2, lon2: 2.472809, s12: 1000000.0, S12: 32084050047.178001}\n    test 444 prec: 9\n    test 445 reverse2: True\n    test 446 unroll: True\n    test 447 verbose: True\n\n    test 448 toStr: invokation=1, rhumb=RhumbSolve(ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), invokation=0, RhumbSolve='/opt/local/bin/RhumbSolve', status=None), status=0\n    test 449 lat1: 1\n    test 450 lon1: 2\n    test 451 a: 6378137.0\n    test 452 f: 0.003352810664747481\n    test 453 Position: {azi12: 3, lat1: 1, lat2: 10.030279, lon1: 2, lon2: 2.472809, s12: 1000000.0, S12: 32084050047.178001}\n    test 454 prec: 9\n    test 455 reverse2: True\n    test 456 unroll: True\n    test 457 verbose: True\n\n    165 of 457 testRhumb_aux_.py tests (36.1%) FAILED, incl. 144 KNOWN plus 21 DeprecationWarnings (pygeodesy 26.3.26 Python 3.12.10 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 2.1.0 scipy 1.14.1 Math 2 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 isLazy 3 -W  default) 17.195 sec\nrunning /usr/local/bin/p....n3.12 -W default ~/PyGeodesy/test/testRhumb_ekx.py\n./test/testRhumb_ekx.py:37: DeprecationWarning: property_RO L{rhumbx<pygeodesy.ellipsoids.Ellipsoid.rhumbx>} has been DEPRECATED on 2023.11.28, use property C{rhumbekx}.\n  R = E.rhumbx\n./test/testRhumb_ekx.py:129: DeprecationWarning: property_RO L{rhumbx<pygeodesy.ellipsoids.Ellipsoid.rhumbx>} has been DEPRECATED on 2023.11.28, use property C{rhumbekx}.\n  R = E.rhumbx\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.Caps from .karney by testRhumb_ekx.py line 11\n# lazily imported pygeodesy.classname from .named by testRhumb_ekx.py line 11\n# lazily imported pygeodesy.DIG from .constants by testRhumb_ekx.py line 11\n# lazily imported pygeodesy.Ellipsoid from .ellipsoids by testRhumb_ekx.py line 11\n# lazily imported pygeodesy.GDict from .karney by testRhumb_ekx.py line 11\n# lazily imported pygeodesy.isfinite from .constants by testRhumb_ekx.py line 11\n# lazily imported pygeodesy.itemsorted from .basics by testRhumb_ekx.py line 11\n# lazily imported pygeodesy.latDMS from .dms by testRhumb_ekx.py line 11\n# lazily imported pygeodesy.lonDMS from .dms by testRhumb_ekx.py line 11\n# lazily imported pygeodesy.parseDMS from .dms by testRhumb_ekx.py line 11\n# lazily imported pygeodesy.parseDMS2 from .dms by testRhumb_ekx.py line 11\n# lazily imported pygeodesy.Rhumb from .rhumb.ekx by testRhumb_ekx.py line 11\n# lazily imported pygeodesy.RhumbLine from .rhumb.ekx by testRhumb_ekx.py line 11\n# lazily imported pygeodesy.RhumbLineSolve from .rhumb.solve by testRhumb_ekx.py line 11\n# lazily imported pygeodesy.R_M from .constants by testRhumb_ekx.py line 11\n# lazily imported pygeodesy.Fwelford from .fstats by testRhumb_ekx.py line 11\n# lazily imported pygeodesy.fremainder from .fmath by testRhumb_ekx.py line 11\n# lazily imported pygeodesy.Ellipsoids from .ellipsoids by testRhumb_ekx.py line 346\n\n    testing testRhumb_ekx.py 23.11.30 (module pygeodesy.rhumb.ekx 25.08.31) isLazy=3\n\n    testDirectX vs ...(pygeodesy.rhumb.ekx, 25.08.31)\n# lazily imported pygeodesy.elliptic by ellipsoids.py line 856\n    test 1 Direct.azi12: -92.38889\n    test 2 Direct.lat1: 40.6\n    test 3 Direct.lat2: 35.799995945206  FAILED, KNOWN, expected 35.79999\n    test 4 Direct.lon1: -73.8\n    test 5 Direct.lon2: 140.300004102052  FAILED, KNOWN, expected 140.23651\n    test 6 Direct.s12: 12782581.068\n\n    test 7 GDict.azi12: 51\n    test 8 GDict.lat1: 40.6\n    test 9 GDict.lat2: 71.688899882813\n    test 10 GDict.lon1: -73.8\n    test 11 GDict.lon2: 0.255519824423402  FAILED, KNOWN, expected 0.255519824423359\n    test 12 GDict.s12: 5500000\n    test 13 GDict.S12: 44095641862956.1\n# lazily imported pygeodesy.etm by bases.py line 1013\n\n    test 14 RhumbLine: TMorder=6, azi12=51.0, exact=True, lat1=40.6, lon1=-73.8, rhumb=Rhumb(RAorder=6, TMorder=6, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), exact=True), xTM=ExactTransverseMercator(datum='WGS84', extendp=False, k0=0.9996, lon0=0.0)\n    test 15 Rhumb: Rhumb(RAorder=6, TMorder=6, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), exact=True)\n    test 16 isLoxodrome: True\n\n    test 17 ArcPosition.a12: 51\n    test 18 ArcPosition.azi12: 51\n    test 19 ArcPosition.lat1: 40.6\n    test 20 ArcPosition.lat2: 72.6351275818438  FAILED, KNOWN, expected 72.635128\n    test 21 ArcPosition.lon1: -73.8\n    test 22 ArcPosition.lon2: 4.06852757947455  FAILED, KNOWN, expected 4.068528\n    test 23 ArcPosition.s12: 5667780.57994388  FAILED, KNOWN, expected 5667780.579944\n    test 24 ArcPosition.S12: 46665957571716.4\n\n    test 25 Position.a12: 51\n    test 26 Position.azi12: 51\n    test 27 Position.lat1: 40.6\n    test 28 Position.lat2: 72.6351275818438  FAILED, KNOWN, expected 72.635128\n    test 29 Position.lon1: -73.8\n    test 30 Position.lon2: 4.06852757947455  FAILED, KNOWN, expected 4.068528\n    test 31 Position.s12: 5667780.57994388\n    test 32 Position.S12: 46665957571716.4\n\n    test 33 Direct.a12: 115.020619671634  FAILED, KNOWN, expected 115.02062\n    test 34 Direct.azi12: -92.38889\n    test 35 Direct.lat1: 40.6\n    test 36 Direct.lat2: 35.799995945206  FAILED, KNOWN, expected 35.8\n    test 37 Direct.lon1: -73.8\n    test 38 Direct.lon2: 140.300004102052  FAILED, KNOWN, expected 140.3\n    test 39 Direct.s12: 12782581.068\n\n    test 40 ArcDirect.a12: 115.020619671634\n    test 41 ArcDirect.azi12: -92.38889\n    test 42 ArcDirect.lat1: 40.6\n    test 43 ArcDirect.lat2: 35.799995945206  FAILED, KNOWN, expected 35.8\n    test 44 ArcDirect.lon1: -73.8\n    test 45 ArcDirect.lon2: 140.300004102052  FAILED, KNOWN, expected 140.3\n    test 46 ArcDirect.s12: 12782581.068\n\n    test 47 Direct8: (40.6, -73.8, 35.799996, 140.300004, -92.38889, 12782581.068, -63760638302268.796875, 115.02062)\n    test 48 toDirect9Tuple: (115.02062, 35.799996, 140.300004, -92.38889, 12782581.068, 12782581.068, 1.0, 1.0, -63760638302268.796875)\n    test 49 DirectLine: (40.6, -73.8, 35.799996, 140.300004, -92.38889, 12782581.068, -63760638302268.796875, 115.02062)\n\n    test 50 RhumbLine: TMorder=6, azi12=51.0, exact=True, lat1=40.6, lon1=-73.8, rhumb=Rhumb(RAorder=6, TMorder=6, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), exact=True), xTM=ExactTransverseMercator(datum='WGS84', extendp=False, k0=0.9996, lon0=0.0)\n    test 51 DirectLine: TMorder=6, azi12=-51.0, exact=True, lat1=35.8, lon1=140.3, rhumb=Rhumb(RAorder=6, TMorder=6, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), exact=True), xTM=ExactTransverseMercator(datum='WGS84', extendp=False, k0=0.9996, lon0=0.0)\n    test 52 Direct3: (71.6889, 0.25552, 231.0)\n    test 53 Direct3: (71.6889, 0.25552, 51.0)\n\n    test 54 RhumbSolve.azi12: 51\n    test 55 RhumbSolve.lat1: 40.6\n    test 56 RhumbSolve.lat2: 71.688899882813\n    test 57 RhumbSolve.lon1: -73.8\n    test 58 RhumbSolve.lon2: 0.255519824423359  FAILED, KNOWN, expected 0.255519824423445\n    test 59 RhumbSolve.s12: 5500000\n    test 60 RhumbSolve.S12: 44095641862956.1\n    test 61 iteration: None\n\n    test 62 f(-0.7)proLate.azi12: 51\n    test 63 f(-0.7)proLate.lat1: 40.6\n    test 64 f(-0.7)proLate.lat2: 58.7982808854284  FAILED, KNOWN, expected 78.696096602308\n    test 65 f(-0.7)proLate.lon1: -73.8\n    test 66 f(-0.7)proLate.lon2: 12.295971664913  FAILED, KNOWN, expected 54.2545319022978\n    test 67 f(-0.7)proLate.s12: 5500000\n    test 68 f(-0.7)proLate.S12: 85955048077081.7  FAILED, KNOWN, expected 129945920715013\n\n    test 69 f(-0.6)proLate.azi12: 51\n    test 70 f(-0.6)proLate.lat1: 40.6\n    test 71 f(-0.6)proLate.lat2: 59.6758767683446  FAILED, KNOWN, expected 77.0758208198502\n    test 72 f(-0.6)proLate.lon1: -73.8\n    test 73 f(-0.6)proLate.lon2: 9.48880576416988  FAILED, KNOWN, expected 42.9652115291808\n    test 74 f(-0.6)proLate.s12: 5500000\n    test 75 f(-0.6)proLate.S12: 78359763655379.7  FAILED, KNOWN, expected 111681786580088\n\n    test 76 f(-0.5)proLate.azi12: 51\n    test 77 f(-0.5)proLate.lat1: 40.6\n    test 78 f(-0.5)proLate.lat2: 60.7320576076725  FAILED, KNOWN, expected 75.6363131401036\n    test 79 f(-0.5)proLate.lon1: -73.8\n    test 80 f(-0.5)proLate.lon2: 6.85513593259097  FAILED, KNOWN, expected 33.3148081627488\n    test 81 f(-0.5)proLate.s12: 5500000\n    test 82 f(-0.5)proLate.S12: 71227659550846.8  FAILED, KNOWN, expected 96135478582826.5\n\n    test 83 f(-0.4)proLate.azi12: 51\n    test 84 f(-0.4)proLate.lat1: 40.6\n    test 85 f(-0.4)proLate.lat2: 62.0190418933995  FAILED, KNOWN, expected 74.3894315611718\n./test/testRhumb_ekx.py:184: DeprecationWarning: property_RO L{rhumbx<pygeodesy.ellipsoids.Ellipsoid.rhumbx>} has been DEPRECATED on 2023.11.28, use property C{rhumbekx}.\n  P = Ellipsoid(E.b, E.a, name='_Prolate').rhumbx  # '_...' for iOS\n    test 86 f(-0.4)proLate.lon1: -73.8\n    test 87 f(-0.4)proLate.lon2: 4.44846787150588  FAILED, KNOWN, expected 24.9411017728723\n    test 88 f(-0.4)proLate.s12: 5500000\n    test 89 f(-0.4)proLate.S12: 64573794048271  FAILED, KNOWN, expected 82752093205157.9\n\n    test 90 f(-0.3)proLate.azi12: 51\n    test 91 f(-0.3)proLate.lat1: 40.6\n    test 92 f(-0.3)proLate.lat2: 63.6106723951872  FAILED, KNOWN, expected 73.3498869306659\n    test 93 f(-0.3)proLate.lon1: -73.8\n    test 94 f(-0.3)proLate.lon2: 2.35374337182196  FAILED, KNOWN, expected 17.6122521235805\n    test 95 f(-0.3)proLate.s12: 5500000\n    test 96 f(-0.3)proLate.S12: 58433524691072.3  FAILED, KNOWN, expected 71144036920514.8\n\n    test 97 f(-0.2)proLate.azi12: 51\n    test 98 f(-0.2)proLate.lat1: 40.6\n    test 99 f(-0.2)proLate.lat2: 65.6160222842253  FAILED, KNOWN, expected 72.5367661501826\n    test 100 f(-0.2)proLate.lon1: -73.8\n    test 101 f(-0.2)proLate.lon2: 0.718817308756996  FAILED, KNOWN, expected 11.158986522496\n    test 102 f(-0.2)proLate.s12: 5500000\n    test 103 f(-0.2)proLate.S12: 52877638949075.5  FAILED, KNOWN, expected 61013644644445.4\n\n    test 104 f(-0.1)proLate.azi12: 51\n    test 105 f(-0.1)proLate.lat1: 40.6\n    test 106 f(-0.1)proLate.lat2: 68.2076549239682  FAILED, KNOWN, expected 71.9743859872954\n    test 107 f(-0.1)proLate.lon1: -73.8\n    test 108 f(-0.1)proLate.lon2: -0.163380731511992  FAILED, KNOWN, expected 5.45567570418933\n    test 109 f(-0.1)proLate.s12: 5500000\n    test 110 f(-0.1)proLate.S12: 48054974256549.6  FAILED, KNOWN, expected 52135051380432.5\n\n    test 111 f(0.0)sphere.azi12: 51\n    test 112 f(0.0)sphere.lat1: 40.6\n    test 113 f(0.0)sphere.lat2: 71.6930469238479\n    test 114 f(0.0)sphere.lon1: -73.8\n    test 115 f(0.0)sphere.lon2: 0.413867159480986\n    test 116 f(0.0)sphere.s12: 5500000\n    test 117 f(0.0)sphere.S12: 43262138303107.9  FAILED, KNOWN, expected 44339815922640.7\n\n    test 118 f(0.1)obLate.azi12: 51\n    test 119 f(0.1)obLate.lat1: 40.6\n    test 120 f(0.1)obLate.lat2: 71.729987765115  FAILED, KNOWN, expected 71.7299876395427\n    test 121 f(0.1)obLate.lon1: -73.8\n    test 122 f(0.1)obLate.lon2: -4.02572626073498  FAILED, KNOWN, expected -4.0257265806798\n    test 123 f(0.1)obLate.s12: 5500000\n    test 124 f(0.1)obLate.S12: 37501325852980.9  FAILED, KNOWN, expected 37501325744776.3\n\n    test 125 f(0.2)obLate.azi12: 51\n    test 126 f(0.2)obLate.lat1: 40.6\n    test 127 f(0.2)obLate.lat2: 72.1296406403857  FAILED, KNOWN, expected 72.129551777134\n    test 128 f(0.2)obLate.lon1: -73.8\n    test 129 f(0.2)obLate.lon2: -7.89959865727285  FAILED, KNOWN, expected -7.89970407960843\n    test 130 f(0.2)obLate.s12: 5500000\n    test 131 f(0.2)obLate.S12: 31524344809128.8  FAILED, KNOWN, expected 31524299015475.5\n\n    test 132 f(0.3)obLate.azi12: 51\n    test 133 f(0.3)obLate.lat1: 40.6\n    test 134 f(0.3)obLate.lat2: 72.9417108424475  FAILED, KNOWN, expected 72.9379874834441\n    test 135 f(0.3)obLate.lon1: -73.8\n    test 136 f(0.3)obLate.lon2: -11.2251277212334  FAILED, KNOWN, expected -11.2282736868989\n    test 137 f(0.3)obLate.s12: 5500000\n    test 138 f(0.3)obLate.S12: 26338142645683.4  FAILED, KNOWN, expected 26336046555855\n\n    test 139 f(0.4)obLate.azi12: 51\n    test 140 f(0.4)obLate.lat1: 40.6\n    test 141 f(0.4)obLate.lat2: 74.2150181648285  FAILED, KNOWN, expected 74.1653559732625\n    test 142 f(0.4)obLate.lon1: -73.8\n    test 143 f(0.4)obLate.lon2: -14.0025161670195  FAILED, KNOWN, expected -14.0339071426255\n    test 144 f(0.4)obLate.s12: 5500000\n    test 145 f(0.4)obLate.S12: 21889987441293.2  FAILED, KNOWN, expected 21854328668749.7\n\n    test 146 f(0.5)obLate.azi12: 51\n    test 147 f(0.5)obLate.lat1: 40.6\n    test 148 f(0.5)obLate.lat2: 75.9843423530564  FAILED, KNOWN, expected 75.6545456515098\n    test 149 f(0.5)obLate.lon1: -73.8\n    test 150 f(0.5)obLate.lon2: -16.2158875285255  FAILED, KNOWN, expected -16.3749056931627\n    test 151 f(0.5)obLate.s12: 5500000\n    test 152 f(0.5)obLate.S12: 18138546882520.4  FAILED, KNOWN, expected 17852162633650.3\n\n    test 153 f(0.6)obLate.azi12: 51\n    test 154 f(0.6)obLate.lat1: 40.6\n    test 155 f(0.6)obLate.lat2: 78.2485809971865  FAILED, KNOWN, expected 76.9646871723422\n    test 156 f(0.6)obLate.lon1: -73.8\n    test 157 f(0.6)obLate.lon2: -17.8350956076784  FAILED, KNOWN, expected -18.3430698506249\n    test 158 f(0.6)obLate.s12: 5500000\n    test 159 f(0.6)obLate.S12: 15058514719182.2  FAILED, KNOWN, expected 14834219095347.8\n\n    test 160 f(0.7)obLate.azi12: 51\n    test 161 f(0.7)obLate.lat1: 40.6\n    test 162 f(0.7)obLate.lat2: 80.9441758588144  FAILED, KNOWN, expected 78.0157145651534\n    test 163 f(0.7)obLate.lon1: -73.8\n    test 164 f(0.7)obLate.lon2: -18.8222432743227  FAILED, KNOWN, expected -21.2614142472982\n    test 165 f(0.7)obLate.s12: 5500000\n    test 166 f(0.7)obLate.S12: 12662980433240.5  FAILED, KNOWN, expected 8715315180697.08\n\n    test 167 f(0.8)obLate.azi12: 51\n    test 168 f(0.8)obLate.lat1: 40.6\n    test 169 f(0.8)obLate.lat2: 83.929256887239  FAILED, KNOWN, expected 81.9589810957133\n    test 170 f(0.8)obLate.lon1: -73.8\n    test 171 f(0.8)obLate.lon2: -19.1538144966024  FAILED, KNOWN, expected 77.1693745258283\n    test 172 f(0.8)obLate.s12: 5500000\n    test 173 f(0.8)obLate.S12: 11016227806772.5  FAILED, KNOWN, expected 25559099120347.3\n\n    test 174 f(0.9)obLate.azi12: 51\n    test 175 f(0.9)obLate.lat1: 40.6\n    test 176 f(0.9)obLate.lat2: 87.0045804494549  FAILED, KNOWN, expected 98.9052225246142\n    test 177 f(0.9)obLate.lon1: -73.8\n    test 178 f(0.9)obLate.lon2: -18.8902657154815  FAILED, KNOWN, expected -15.3416430304294\n    test 179 f(0.9)obLate.s12: 5500000\n    test 180 f(0.9)obLate.S12: 10140058806389.6  FAILED, KNOWN, expected -10962672407243.4\n\n    testInverseX vs ...(pygeodesy.rhumb.ekx, 25.08.31)\n    test 181 Inverse.azi12: -92.3888879816997  FAILED, KNOWN, expected -92.38889\n    test 182 Inverse.lat1: 40.6\n    test 183 Inverse.lat2: 35.8\n    test 184 Inverse.lon1: -73.8\n    test 185 Inverse.lon2: 140.3\n    test 186 Inverse.s12: 12782581.0676842\n    test 187 Inverse.S12: -63760642939072.5  FAILED, KNOWN, expected -63760642939073\n\n    test 188 GDict.azi12: 77.7683897102557\n    test 189 GDict.lat1: 40.6\n    test 190 GDict.lat2: 51.6\n    test 191 GDict.lon1: -73.8\n    test 192 GDict.lon2: -0.5\n    test 193 GDict.s12: 5771083.38332803\n    test 194 GDict.S12: 37395209100030.4\n\n    test 195 Inverse.azi12: 103.582833003411  FAILED, KNOWN, expected 103.582833333333\n    test 196 Inverse.lat1: 40.6397222222222  FAILED, KNOWN, expected 40.639722\n    test 197 Inverse.lat2: 1.35916666666667  FAILED, KNOWN, expected 1.359167\n    test 198 Inverse.lon2: 103.989444444444  FAILED, KNOWN, expected 103.989444\n    test 199 Inverse.s12: 18523563.0423774  FAILED, KNOWN, expected 18523563\n\n    test 200 0,000 Km lat2: 40:38:23.0N\n    test 201 0,000 Km lon2: 073:46:44.0W\n    test 202 0,000 Km S12 : 0\n    test 203 1,000 Km lat2: 36:24:30.3N\n    test 204 1,000 Km lon2: 051:28:26.4W\n    test 205 1,000 Km S12 : 9817078307820  FAILED, KNOWN, expected 9817078307821\n    test 206 2,000 Km lat2: 32:10:26.8N\n    test 207 2,000 Km lon2: 030:20:57.3W\n    test 208 2,000 Km S12 : 18224745682004  FAILED, KNOWN, expected 18224745682005\n    test 209 3,000 Km lat2: 27:56:13.2N\n    test 210 3,000 Km lon2: 010:10:54.2W\n    test 211 3,000 Km S12 : 25358020327741\n    test 212 4,000 Km lat2: 23:41:50.1N\n    test 213 4,000 Km lon2: 009:12:45.5E\n    test 214 4,000 Km S12 : 31321269267101  FAILED, KNOWN, expected 31321269267102\n    test 215 5,000 Km lat2: 19:27:18.7N\n    test 216 5,000 Km lon2: 027:59:22.1E\n    test 217 5,000 Km S12 : 36195163180159\n    test 218 6,000 Km lat2: 15:12:40.2N\n    test 219 6,000 Km lon2: 046:17:01.1E\n    test 220 6,000 Km S12 : 40041499143669\n    test 221 7,000 Km lat2: 10:57:55.9N\n    test 222 7,000 Km lon2: 064:12:52.8E\n    test 223 7,000 Km S12 : 42906570007050\n    test 224 8,000 Km lat2: 06:43:07.3N\n    test 225 8,000 Km lon2: 081:53:28.8E\n    test 226 8,000 Km S12 : 44823504180199  FAILED, KNOWN, expected 44823504180200\n    test 227 9,000 Km lat2: 02:28:16.2N\n    test 228 9,000 Km lon2: 099:24:54.5E\n    test 229 9,000 Km S12 : 45813843358737\n    test 230 10,000 Km lat2: 01:46:36.0S\n./test/testRhumb_ekx.py:218: DeprecationWarning: property_RO L{rhumbx<pygeodesy.ellipsoids.Ellipsoid.rhumbx>} has been DEPRECATED on 2023.11.28, use property C{rhumbekx}.\n  R = E.rhumbx\n./test/testRhumb_ekx.py:228: DeprecationWarning: method L{orders<pygeodesy.rhumb.ekx.Rhumb.orders>} has been DEPRECATED, use properties C{RAorder} and/or C{TMorder}.\n  t = R.orders(4, 8)\n./pygeodesy/deprecated/classes.py:33: DeprecationWarning: class L{RhumbOrder2Tuple<pygeodesy.deprecated.classes.RhumbOrder2Tuple>} has been DEPRECATED, see deprecated method L{Rhumb.orders}.\n  deprecated_class(cls)\n./test/testRhumb_ekx.py:230: DeprecationWarning: method L{orders<pygeodesy.rhumb.ekx.Rhumb.orders>} has been DEPRECATED, use properties C{RAorder} and/or C{TMorder}.\n  t = R.orders(6, 6)\n./test/testRhumb_ekx.py:269: DeprecationWarning: method L{distance2<pygeodesy.rhumb.ekx.RhumbLine.distance2>} has been DEPRECATED on 23.09.23, use method L{RhumbLineAux.Inverse} or L{RhumbLine.Inverse}.\n  t = r.distance2(p.lat2, p.lon2)\n    test 231 10,000 Km lon2: 116:52:59.7E\n    test 232 10,000 Km S12 : 45888525219677\n\n    test 233 Inverse: {a12: 51.420061, azi12: 77.692032, azi21: -102.307968, lat1: 40.6, lat2: 51.6, lon1: -73.8, lon2: -0.5, name: '_Prolate', s12: 5733622.743165}\n    test 234 Inverse8: (40.6, -73.8, 51.6, -0.5, 77.692032, 5733622.743165, 37469093881942.273438, 51.420061)\n    test 235 toInverse10Tuple: (51.420061, 5733622.743165, 0.977016, 0.213166, 0.977016, 0.213166, 5733622.743165, 1.0, 1.0, 37469093881942.273438)\n    test 236 InverseLine: -102.23161028974432\n\n    test 237 Inverse1: 51.9295425\n    test 238 Inverse3: (5771083.383328, 77.76839, 77.76839)\n\n    test 239 RhumbSolve.azi12: 77.7683897102557\n    test 240 RhumbSolve.lat1: 40.6\n    test 241 RhumbSolve.lat2: 51.6\n    test 242 RhumbSolve.lon1: -73.8\n    test 243 RhumbSolve.lon2: -0.5\n    test 244 RhumbSolve.s12: 5771083.38332803\n    test 245 RhumbSolve.S12: 37395209100030.4\n    test 246 iteration: None\n\n    test 247 f(-0.7)proLate.a12: 19.4691438255745  FAILED, KNOWN, expected 19.4316661725214\n    test 248 f(-0.7)proLate.azi12: 72.245160090458  FAILED, KNOWN, expected 72.4018253121172\n    test 249 f(-0.7)proLate.lat1: 40.6\n    test 250 f(-0.7)proLate.lat2: 51.6\n    test 251 f(-0.7)proLate.lon1: -73.8\n    test 252 f(-0.7)proLate.lon2: -0.5\n    test 253 f(-0.7)proLate.s12: 4227905.47113213  FAILED, KNOWN, expected 4219766.85056372\n    test 254 f(-0.7)proLate.S12: 69930230457646.9  FAILED, KNOWN, expected 69908513962657.7\n\n    test 255 f(-0.6)proLate.a12: 21.6957794143251  FAILED, KNOWN, expected 21.7001783174047\n    test 256 f(-0.6)proLate.azi12: 72.8447176862056  FAILED, KNOWN, expected 72.9077494979405\n    test 257 f(-0.6)proLate.lat1: 40.6\n    test 258 f(-0.6)proLate.lat2: 51.6\n    test 259 f(-0.6)proLate.lon1: -73.8\n    test 260 f(-0.6)proLate.lon2: -0.5\n    test 261 f(-0.6)proLate.s12: 4398629.48315431  FAILED, KNOWN, expected 4399521.32227242\n    test 262 f(-0.6)proLate.S12: 65532336784621.8  FAILED, KNOWN, expected 65479293553218.2\n\n    test 263 f(-0.5)proLate.a12: 24.3873218521504  FAILED, KNOWN, expected 24.3995870573009\n    test 264 f(-0.5)proLate.azi12: 73.45973097209  FAILED, KNOWN, expected 73.4808354630839\n    test 265 f(-0.5)proLate.lat1: 40.6\n    test 266 f(-0.5)proLate.lat2: 51.6\n    test 267 f(-0.5)proLate.lon1: -73.8\n    test 268 f(-0.5)proLate.lon2: -0.5\n    test 269 f(-0.5)proLate.s12: 4589390.62703027  FAILED, KNOWN, expected 4591698.78607691\n    test 270 f(-0.5)proLate.S12: 61028486473535.8  FAILED, KNOWN, expected 60997593633709.1\n\n    test 271 f(-0.4)proLate.a12: 27.648678517054  FAILED, KNOWN, expected 27.6548959759732\n    test 272 f(-0.4)proLate.azi12: 74.1256528590435  FAILED, KNOWN, expected 74.1310400671426\n    test 273 f(-0.4)proLate.lat1: 40.6\n    test 274 f(-0.4)proLate.lat2: 51.6\n    test 275 f(-0.4)proLate.lon1: -73.8\n    test 276 f(-0.4)proLate.lon2: -0.5\n    test 277 f(-0.4)proLate.s12: 4795999.00733361  FAILED, KNOWN, expected 4797077.50107739\n    test 278 f(-0.4)proLate.S12: 56459162579463.4  FAILED, KNOWN, expected 56450667480819.8\n\n    test 279 f(-0.3)proLate.a12: 31.644951499171  FAILED, KNOWN, expected 31.6462120754835\n    test 280 f(-0.3)proLate.azi12: 74.8684851385499  FAILED, KNOWN, expected 74.8693740965484\n    test 281 f(-0.3)proLate.lat1: 40.6\n    test 282 f(-0.3)proLate.lat2: 51.6\n    test 283 f(-0.3)proLate.lon1: -73.8\n    test 284 f(-0.3)proLate.lon2: -0.5\n    test 285 f(-0.3)proLate.s12: 5016163.41790208  FAILED, KNOWN, expected 5016363.23671944\n    test 286 f(-0.3)proLate.S12: 51834653769507.8  FAILED, KNOWN, expected 51833817791680\n\n    test 287 f(-0.2)proLate.a12: 36.6456555579816  FAILED, KNOWN, expected 36.6457142472518\n    test 288 f(-0.2)proLate.azi12: 75.707541532189  FAILED, KNOWN, expected 75.7076069272899\n    test 289 f(-0.2)proLate.lat1: 40.6\n    test 290 f(-0.2)proLate.lat2: 51.6\n    test 291 f(-0.2)proLate.lon1: -73.8\n    test 292 f(-0.2)proLate.lon2: -0.5\n    test 293 f(-0.2)proLate.s12: 5250114.26186747  FAILED, KNOWN, expected 5250122.67010496\n    test 294 f(-0.2)proLate.S12: 47145799674098  FAILED, KNOWN, expected 47145803785208.4\n\n    test 295 f(-0.1)proLate.a12: 43.0921529976013  FAILED, KNOWN, expected 43.0921526610931\n    test 296 f(-0.1)proLate.azi12: 76.657619712308  FAILED, KNOWN, expected 76.6576203659566\n    test 297 f(-0.1)proLate.lat1: 40.6\n    test 298 f(-0.1)proLate.lat2: 51.6\n    test 299 f(-0.1)proLate.lon1: -73.8\n    test 300 f(-0.1)proLate.lon2: -0.5\n    test 301 f(-0.1)proLate.s12: 5498686.10901062  FAILED, KNOWN, expected 5498686.06607117\n    test 302 f(-0.1)proLate.S12: 42386228150766.8  FAILED, KNOWN, expected 42386228533605.6\n\n    test 303 f(0.0)sphere.a12: 51.7609673604566  FAILED, KNOWN, expected 51.1449856169523\n    test 304 f(0.0)sphere.azi12: 77.7302010637481  FAILED, KNOWN, expected 81.4654121232455\n    test 305 f(0.0)sphere.lat1: 40.6\n    test 306 f(0.0)sphere.lat2: 51.6\n    test 307 f(0.0)sphere.lon1: -73.8\n    test 308 f(0.0)sphere.lon2: -0.5\n    test 309 f(0.0)sphere.s12: 5762004.52953328  FAILED, KNOWN, expected 5693433.75550843\n    test 310 f(0.0)sphere.S12: 37558171832842.8  FAILED, KNOWN, expected 34633199829004.9\n\n    test 311 f(0.1)obLate.a12: 57.0691016382906  FAILED, KNOWN, expected 57.0691039628294\n    test 312 f(0.1)obLate.azi12: 78.9329887995079  FAILED, KNOWN, expected 78.93298766632\n    test 313 f(0.1)obLate.lat1: 40.6\n    test 314 f(0.1)obLate.lat2: 51.6\n    test 315 f(0.1)obLate.lon1: -73.8\n    test 316 f(0.1)obLate.lon2: -0.5\n    test 317 f(0.1)obLate.s12: 6039438.43345776  FAILED, KNOWN, expected 6039438.67945619\n    test 318 f(0.1)obLate.S12: 32672705345900.1  FAILED, KNOWN, expected 32672705271834.1\n\n    test 319 f(0.2)obLate.a12: 62.9812798810273  FAILED, KNOWN, expected 62.9814139522912\n    test 320 f(0.2)obLate.azi12: 80.2674399313414  FAILED, KNOWN, expected 80.2672430625978\n    test 321 f(0.2)obLate.lat1: 40.6\n    test 322 f(0.2)obLate.lat2: 51.6\n    test 323 f(0.2)obLate.lon1: -73.8\n    test 324 f(0.2)obLate.lon2: -0.5\n    test 325 f(0.2)obLate.s12: 6329429.80122212  FAILED, KNOWN, expected 6329443.27498218\n    test 326 f(0.2)obLate.S12: 27754099677104.7  FAILED, KNOWN, expected 27754021074333.5\n\n    test 327 f(0.3)obLate.a12: 69.5187833694955  FAILED, KNOWN, expected 69.5167852965364\n    test 328 f(0.3)obLate.azi12: 81.727845079412  FAILED, KNOWN, expected 81.723183320486\n    test 329 f(0.3)obLate.lat1: 40.6\n    test 330 f(0.3)obLate.lat2: 51.6\n    test 331 f(0.3)obLate.lon1: -73.8\n    test 332 f(0.3)obLate.lon2: -0.5\n    test 333 f(0.3)obLate.s12: 6629289.31235135  FAILED, KNOWN, expected 6629098.77674254\n    test 334 f(0.3)obLate.S12: 22849066200619.3  FAILED, KNOWN, expected 22846728659359.5\n\n    test 335 f(0.4)obLate.a12: 76.6668761893773  FAILED, KNOWN, expected 76.6527272755988\n    test 336 f(0.4)obLate.azi12: 83.3233422838214  FAILED, KNOWN, expected 83.2739099818904\n    test 337 f(0.4)obLate.lat1: 40.6\n    test 338 f(0.4)obLate.lat2: 51.6\n    test 339 f(0.4)obLate.lon1: -73.8\n    test 340 f(0.4)obLate.lon2: -0.5\n    test 341 f(0.4)obLate.s12: 6934718.96454384  FAILED, KNOWN, expected 6933439.15838002\n    test 342 f(0.4)obLate.S12: 18021142604226.8  FAILED, KNOWN, expected 18023503773553\n\n    test 343 f(0.5)obLate.a12: 84.1879143342343  FAILED, KNOWN, expected 84.29410949709\n    test 344 f(0.5)obLate.azi12: 85.209638808327  FAILED, KNOWN, expected 84.8687585722893\n    test 345 f(0.5)obLate.lat1: 40.6\n    test 346 f(0.5)obLate.lat2: 51.6\n    test 347 f(0.5)obLate.lon1: -73.8\n    test 348 f(0.5)obLate.lon2: -0.5\n    test 349 f(0.5)obLate.s12: 7225456.98760837  FAILED, KNOWN, expected 7234571.22434382\n    test 350 f(0.5)obLate.S12: 13330376215278.6  FAILED, KNOWN, expected 13389555976791.8\n\n    test 351 f(0.6)obLate.a12: 91.2748602594913  FAILED, KNOWN, expected 92.2282212329554\n    test 352 f(0.6)obLate.azi12: 88.2352064317911  FAILED, KNOWN, expected 86.428203134645\n    test 353 f(0.6)obLate.lat1: 40.6\n    test 354 f(0.6)obLate.lat2: 51.6\n    test 355 f(0.6)obLate.lon1: -73.8\n    test 356 f(0.6)obLate.lon2: -0.5\n    test 357 f(0.6)obLate.s12: 7442997.57411557  FAILED, KNOWN, expected 7520739.2807868\n    test 358 f(0.6)obLate.S12: 9465183863577.65  FAILED, KNOWN, expected 9108118533020.06\n\n    test 359 f(0.7)obLate.a12: 96.2356480551612  FAILED, KNOWN, expected 100.06793053457\n    test 360 f(0.7)obLate.azi12: 95.8849205715045  FAILED, KNOWN, expected 87.8440216245934\n    test 361 f(0.7)obLate.lat1: 40.6\n    test 362 f(0.7)obLate.lat2: 51.6\n    test 363 f(0.7)obLate.lon1: -73.8\n    test 364 f(0.7)obLate.lon2: -0.5\n    test 365 f(0.7)obLate.s12: 7478027.19892371  FAILED, KNOWN, expected 7775816.14921533\n    test 366 f(0.7)obLate.S12: 6562901235483.6  FAILED, KNOWN, expected 5406604570185.03\n\n    test 367 f(0.8)obLate.a12: 102.64879564776  FAILED, KNOWN, expected 107.191415254441\n    test 368 f(0.8)obLate.azi12: 119.3880292385  FAILED, KNOWN, expected 88.9890486193666\n    test 369 f(0.8)obLate.lat1: 40.6\n    test 370 f(0.8)obLate.lat2: 51.6\n    test 371 f(0.8)obLate.lon1: -73.8\n    test 372 f(0.8)obLate.lon2: -0.5\n    test 373 f(0.8)obLate.s12: 7641914.41853579  FAILED, KNOWN, expected 7980099.68462831\n    test 374 f(0.8)obLate.S12: 4756594610716.28  FAILED, KNOWN, expected 2511038845917.85\n\n    test 375 f(0.9)obLate.a12: 63.2182522839011  FAILED, KNOWN, expected 112.682385936076\n    test 376 f(0.9)obLate.azi12: 58.1823785248744  FAILED, KNOWN, expected 89.7386359477264\n    test 377 f(0.9)obLate.lat1: 40.6\n    test 378 f(0.9)obLate.lat2: 51.6\n    test 379 f(0.9)obLate.lon1: -73.8\n    test 380 f(0.9)obLate.lon2: -0.5\n    test 381 f(0.9)obLate.s12: 4551816.73344679  FAILED, KNOWN, expected 8113314.6099193\n    test 382 f(0.9)obLate.S12: -15708333250087.5  FAILED, KNOWN, expected 643969911402.408\n\n    test 383 R.exact: True\n    test 384 R.exact: False\n    test 385 R: Rhumb(RAorder=6, TMorder=6, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), exact=False)\n\n    test 386 R.exact: True\n    test 387 R.Line.exact: True\n    test 388 R.Line: RhumbLine(TMorder=6, azi12=3.0, exact=True, lat1=1.0, lon1=2.0, rhumb=Rhumb(RAorder=6, TMorder=6, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), exact=True), xTM=ExactTransverseMercator(datum='WGS84', extendp=False, k0=0.9996, lon0=0.0))\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by <frozen importlib._bootstrap> line 1412\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by <frozen importlib._bootstrap> line 1412\n# lazily imported pygeodesy.Conformal2Tuple from .triaxials.triaxial5 by <frozen importlib._bootstrap> line 1412\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by classes.py line 21\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by classes.py line 21\n# lazily imported pygeodesy.Conformal2Tuple from .triaxials.triaxial5 by classes.py line 21\n# lazily imported pygeodesy.deprecated by ekx.py line 204\n# imported pygeodesy.basics into errors.py line 915\n    test 389 orders: (6, 6)\n    test 390 orders: (4, 8)\n\n# lazily imported pygeodesy.geodesicx by ellipsoids.py line 1043\n\n    test 391 PlumbTo(exact=False, est=1000000.0): PlumbTo(a02=17.967658, a12=27.74256, at=90.0, azi0=113.73626, azi12=45.0, lat0=60, lat1=30.0, lat2=49.634582, lon0=0, lon1=0.0, lon2=25.767876, name='PlumbTo', s02=1997960.116871, s12=3083112.636236)\n    test 392 a02: 17.967658\n    test 393 s02: 1997960.116871\n    test 394 s12: 3083112.636236\n    test 395 azi0: 113.736\n    test 396 azi2: 135.000\n    test 397 iteration: 7\n\n    test 398 PlumbTo(exact=False, est=None): PlumbTo(a02=17.967658, a12=27.74256, at=90.0, azi0=113.73626, azi12=45.0, lat0=60, lat1=30.0, lat2=49.634582, lon0=0, lon1=0.0, lon2=25.767876, name='PlumbTo', s02=1997960.116871, s12=3083112.636236)\n    test 399 a02: 17.967658\n    test 400 s02: 1997960.116871\n    test 401 s12: 3083112.636236\n    test 402 azi0: 113.736\n    test 403 azi2: 135.000\n    test 404 iteration: 5\n\n    test 405 Intersecant2: (Intersecant2(a03=17.798332, a12=44.076956, azi03=135.0, azi12=45.0, lat0=30.0, lat1=30.0, lat2=61.164348, lat3=45.0, lon0=0.0, lon1=0.0, lon2=46.209348, lon3=15.830286, name='Intersecant2', s03=1977981.142985, s12=4898402.305119), Intersecant2(a03=17.798332, a12=-5.034244, azi03=135.0, azi12=45.0, lat0=30.0, lat1=30.0, lat2=26.4303, lat3=45.0, lon0=0.0, lon1=0.0, lon2=-4.030999, lon3=15.830286, name='Intersecant2', s03=1977981.142985, s12=-559470.390057))\n    test 406 azi0*=-90.000: exact=False, iteration=4, max=0, mean=-0.0, min=-0.0, stdev=0.0\n\n    test 407 PlumbTo(exact=True, est=1000000.0): PlumbTo(a02=17.967658, a12=27.74256, at=90.0, azi0=113.73626, azi12=45.0, lat0=60, lat1=30.0, lat2=49.634582, lon0=0, lon1=0.0, lon2=25.767876, name='PlumbTo', s02=1997960.116871, s12=3083112.636236)\n    test 408 a02: 17.967658\n    test 409 s02: 1997960.116871\n    test 410 s12: 3083112.636236\n    test 411 azi0: 113.736\n    test 412 azi2: 135.000\n    test 413 iteration: 7\n\n    test 414 PlumbTo(exact=True, est=None): PlumbTo(a02=17.967658, a12=27.74256, at=90.0, azi0=113.73626, azi12=45.0, lat0=60, lat1=30.0, lat2=49.634582, lon0=0, lon1=0.0, lon2=25.767876, name='PlumbTo', s02=1997960.116871, s12=3083112.636236)\n    test 415 a02: 17.967658\n    test 416 s02: 1997960.116871\n    test 417 s12: 3083112.636236\n    test 418 azi0: 113.736\n    test 419 azi2: 135.000\n    test 420 iteration: 5\n\n    test 421 Intersecant2: (Intersecant2(a03=17.798332, a12=44.076956, azi03=135.0, azi12=45.0, lat0=30.0, lat1=30.0, lat2=61.164348, lat3=45.0, lon0=0.0, lon1=0.0, lon2=46.209348, lon3=15.830286, name='Intersecant2', s03=1977981.142985, s12=4898402.305119), Intersecant2(a03=17.798332, a12=-5.034244, azi03=135.0, azi12=45.0, lat0=30.0, lat1=30.0, lat2=26.4303, lat3=45.0, lon0=0.0, lon1=0.0, lon2=-4.030999, lon3=15.830286, name='Intersecant2', s03=1977981.142985, s12=-559470.390057))\n    test 422 azi0*=-90.000: exact=True, iteration=4, max=0, mean=-0.0, min=-0.0, stdev=0.0\n\n    test 423 PlumbTo(exact=None, est=None): Intersection(a02=17.798332, a12=19.521356, at=90.0, azi02=135.0, azi12=45.0, lat0=60.0, lat1=30.0, lat2=45.0, lon0=0.0, lon1=0.0, lon2=15.830286, name='Intersection', s02=1977981.142985, s12=2169465.957531)\n    test 424 a02: 17.798332\n    test 425 s02: 1977981.142985\n    test 426 s12: 2169465.957531\n    test 427 azi02: 135.000\n    test 428 iteration: 9\n\n    test 429 Intersecant2: (Intersecant2(a03=17.798332, a12=44.076956, azi03=135.0, azi12=45.0, lat0=30.0, lat1=30.0, lat2=61.164348, lat3=45.0, lon0=0.0, lon1=0.0, lon2=46.209348, lon3=15.830286, name='Intersecant2', s03=1977981.142985, s12=4898402.305119), Intersecant2(a03=17.798332, a12=-5.034244, azi03=135.0, azi12=45.0, lat0=30.0, lat1=30.0, lat2=26.4303, lat3=45.0, lon0=0.0, lon1=0.0, lon2=-4.030999, lon3=15.830286, name='Intersecant2', s03=1977981.142985, s12=-559470.390057))\n    test 430 azi0*=90.000: exact=None, iteration=15, max=0, mean=-1.802066, min=-5.060016, stdev=2.124232\n\n    test 431 xTM: KTransverseMercator(ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), k0=0.9996, TMorder=7)\n\n    test 432 Intersection: Intersection(a02=41.823427, a12=16.45698, at=-85.0, azi02=-50.0, azi12=35.0, lat0=0.0, lat1=10.0, lat2=23.944114, lon0=-10.0, lon1=-56.0, lon2=-45.833131, name='Intersection', s02=4650559.291378, s12=1829935.168035)  FAILED, KNOWN, expected (26.9774, -43.4088)\n    test 433 PlumbTo: Intersection(a02=0.0, a12=16.45698, at=90.0, azi02=125.0, azi12=35.0, lat0=23.944114, lat1=10.0, lat2=23.944114, lon0=-45.833131, lon1=-56.0, lon2=-45.833131, name='Intersection', s02=0.000043, s12=1829935.168032)\n    test 434 PlumbTo: Intersection(a02=0.0, a12=41.823427, at=90.0, azi02=40.0, azi12=-50.0, lat0=23.944114, lat1=0.0, lat2=23.944114, lon0=-45.833131, lon1=-10.0, lon2=-45.833131, name='Intersection', s02=0.000246, s12=4650559.291327)\n    test 435 xTM: KTransverseMercator(ellipsoid=Ellipsoid(name='Sphere', a=6371008.771415, f=0, f_=0, b=6371008.771415), k0=0.9996, TMorder=6)\n\n    test 436 Intersection: Intersection(a02=29.910202, a12=26.853309, at=-135.0, azi02=-45.0, azi12=90.0, lat0=15.0, lat1=37.0, lat2=37.0, lon0=-17.0, lon1=-76.0, lon2=-42.376015, name='Intersection', s02=3325867.316604, s12=2985955.796006)  FAILED, KNOWN, expected (37.0, -41.7028)\n    test 437 PlumbTo: Intersection(a02=0.0, a12=26.853309, at=90.0, azi02=180.0, azi12=90.0, lat0=37.0, lat1=37.0, lat2=37.0, lon0=-42.376015, lon1=-76.0, lon2=-42.376015, name='Intersection', s02=0.000129, s12=2985955.795978)\n    test 438 PlumbTo: Intersection(a02=0.0, a12=29.910202, at=90.0, azi02=45.0, azi12=-45.0, lat0=37.0, lat1=15.0, lat2=37.0, lon0=-42.376015, lon1=-17.0, lon2=-42.376015, name='Intersection', s02=0.000081, s12=3325867.316586)\n    test 439 xTM: KTransverseMercator(ellipsoid=Ellipsoid(name='Sphere', a=6371008.771415, f=0, f_=0, b=6371008.771415), k0=0.9996, TMorder=6)\n\n    test 440 toStr: invokation=1, rhumb=RhumbSolve(ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), invokation=0, RhumbSolve='/opt/local/bin/RhumbSolve', status=None), status=0\n    test 441 lat1: 1\n    test 442 lon1: 2\n    test 443 a: 6378137.0\n    test 444 f: 0.003352810664747481\n    test 445 Position: {azi12: 3, lat1: 1, lat2: 10.030279, lon1: 2, lon2: 2.472809, s12: 1000000.0, S12: 32084050047.178001}\n    test 446 prec: 9\n    test 447 reverse2: True\n    test 448 unroll: True\n    test 449 verbose: True\n\n    test 450 toStr: invokation=1, rhumb=RhumbSolve(ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), invokation=0, RhumbSolve='/opt/local/bin/RhumbSolve', status=None), status=0\n    test 451 lat1: 1\n    test 452 lon1: 2\n    test 453 a: 6378137.0\n    test 454 f: 0.003352810664747481\n    test 455 Position: {azi12: 3, lat1: 1, lat2: 10.030279, lon1: 2, lon2: 2.472809, s12: 1000000.0, S12: 32084050047.178001}\n    test 456 prec: 9\n    test 457 reverse2: True\n    test 458 unroll: True\n    test 459 verbose: True\n\n    173 of 459 testRhumb_ekx.py tests (37.7%) FAILED, incl. 144 KNOWN plus 29 DeprecationWarnings (pygeodesy 26.3.26 Python 3.12.10 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 2.1.0 scipy 1.14.1 Math 2 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 isLazy 3 -W  default) 14.134 sec\nrunning /usr/local/bin/p....n3.12 -W default ~/PyGeodesy/test/testRoutes.py\n./test/testRoutes.py:17103: DeprecationWarning: function L{areaOf<pygeodesy.ellipsoidalVincenty.areaOf>} has been DEPRECATED, use function L{ellipsoidalExact.areaOf} or L{ellipsoidalKarney.areaOf}.\n  r = f(pts, wrap=True, **kwds)\n./pygeodesy/ellipsoidalKarney.py:139: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return fabs(_polygon(datum.ellipsoid.geodesic, points, True, False, wrap, polar))\n./test/testRoutes.py:17103: DeprecationWarning: function L{perimeterOf<pygeodesy.ellipsoidalVincenty.perimeterOf>} has been DEPRECATED, use function L{ellipsoidalExact.perimeterOf} or L{ellipsoidalKarney.perimeterOf}.\n  r = f(pts, wrap=True, **kwds)\n./pygeodesy/ellipsoidalKarney.py:347: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return _polygon(datum.ellipsoid.geodesic, points, closed, True, wrap, False)\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.LatLon_ from .points by testRoutes.py line 13\n# lazily imported pygeodesy.R_KM from .constants by testRoutes.py line 13\n# lazily imported pygeodesy.R_M from .constants by testRoutes.py line 13\n# lazily imported pygeodesy.ellipsoidalVincenty by testRoutes.py line 13\n# lazily imported pygeodesy.sphericalTrigonometry by testRoutes.py line 13\n# lazily imported pygeodesy.areaOf from .points by testRoutes.py line 13\n# lazily imported pygeodesy.isclockwise from .points by testRoutes.py line 13\n# lazily imported pygeodesy.perimeterOf from .points by testRoutes.py line 13\n# lazily imported pygeodesy.unstr from .streprs by testRoutes.py line 13\n\n    testing testRoutes.py 23.08.23 isLazy=3\n# lazily imported pygeodesy.booleans by points.py line 978\n# lazily imported pygeodesy.angles by units.py line 633\n    test 1 points.areaOf('Antarctica', adjust=True, radius=6371.01, wrap=True): 1751693.701  FAILED, KNOWN, expected 13552524.800\n    test 2 points.areaOf('PtsFFI', adjust=True, radius=6371.01, wrap=True): 1.288\n    test 3 points.areaOf('RdpFFI', adjust=True, radius=6371.01, wrap=True): 1.241\n    test 4 points.areaOf('Pts', adjust=True, radius=6371.01, wrap=True): 131184.240\n    test 5 points.areaOf('VwPts', adjust=True, radius=6371.01, wrap=True): 140310.144\n    test 6 points.areaOf('_JFK_LHR1', adjust=True, radius=6371.01, wrap=True): 41383852.921  FAILED, KNOWN, expected 40041368.849\n    test 7 points.areaOf('_JFK_LHR2', adjust=True, radius=6371.01, wrap=True): 82767705.842  FAILED, KNOWN, expected 80082737.697\n    test 8 points.areaOf('Antarctica', adjust=False, radius=6371.01, wrap=True): 10446635.730  FAILED, KNOWN, expected 13552524.800\n    test 9 points.areaOf('PtsFFI', adjust=False, radius=6371.01, wrap=True): 2.185  FAILED, KNOWN, expected 1.288\n    test 10 points.areaOf('RdpFFI', adjust=False, radius=6371.01, wrap=True): 2.105  FAILED, KNOWN, expected 1.241\n    test 11 points.areaOf('Pts', adjust=False, radius=6371.01, wrap=True): 233595.011  FAILED, KNOWN, expected 131184.240\n    test 12 points.areaOf('VwPts', adjust=False, radius=6371.01, wrap=True): 258465.911  FAILED, KNOWN, expected 140310.144\n    test 13 points.areaOf('_JFK_LHR1', adjust=False, radius=6371.01, wrap=True): 41780731.678  FAILED, KNOWN, expected 40041368.849\n    test 14 points.areaOf('_JFK_LHR2', adjust=False, radius=6371.01, wrap=True): 83561463.357  FAILED, KNOWN, expected 80082737.697\n# imported pygeodesy.formy into latlonBase.py line 756\n    test 15 sphericalTrigonometry.areaOf('Antarctica', radius=6371.01, wrap=True): 241480413.388\n    test 16 sphericalTrigonometry.areaOf('PtsFFI', radius=6371.01, wrap=True): 1.338\n    test 17 sphericalTrigonometry.areaOf('RdpFFI', radius=6371.01, wrap=True): 1.289\n    test 18 sphericalTrigonometry.areaOf('Pts', radius=6371.01, wrap=True): 125942.444\n    test 19 sphericalTrigonometry.areaOf('VwPts', radius=6371.01, wrap=True): 118897.757\n    test 20 sphericalTrigonometry.areaOf('_JFK_LHR1', radius=6371.01, wrap=True): 40105639.197\n    test 21 sphericalTrigonometry.areaOf('_JFK_LHR2', radius=6371.01, wrap=True): 80211278.393\n# lazily imported pygeodesy.ellipsoidalKarney by ellipsoidalVincenty.py line 383\n# lazily imported pygeodesy.geodesicw by ellipsoids.py line 1074\n    test 22 ellipsoidalVincenty.areaOf('Antarctica', wrap=True): 1.366270e+13\n    test 23 ellipsoidalVincenty.areaOf('PtsFFI', wrap=True): 1.343272e+06\n    test 24 ellipsoidalVincenty.areaOf('RdpFFI', wrap=True): 1.294375e+06\n    test 25 ellipsoidalVincenty.areaOf('Pts', wrap=True): 1.271286e+11\n    test 26 ellipsoidalVincenty.areaOf('VwPts', wrap=True): 1.200540e+11\n    test 27 ellipsoidalVincenty.areaOf('_JFK_LHR1', wrap=True): 4.004137e+13\n    test 28 ellipsoidalVincenty.areaOf('_JFK_LHR2', wrap=True): 8.008274e+13\n    test 29 ellipsoidalVincenty.areaOf('Antarctica', wrap=True): 1.366270e+13\n    test 30 ellipsoidalVincenty.areaOf('PtsFFI', wrap=True): 1.343272e+06\n    test 31 ellipsoidalVincenty.areaOf('RdpFFI', wrap=True): 1.294375e+06\n    test 32 ellipsoidalVincenty.areaOf('Pts', wrap=True): 1.271286e+11\n    test 33 ellipsoidalVincenty.areaOf('VwPts', wrap=True): 1.200540e+11\n    test 34 ellipsoidalVincenty.areaOf('_JFK_LHR1', wrap=True): 4.004137e+13\n    test 35 ellipsoidalVincenty.areaOf('_JFK_LHR2', wrap=True): 8.008274e+13\n    test 36 points.perimeterOf('Antarctica', closed=False, radius=6.37101e+06, wrap=True): 15620294.792  FAILED, KNOWN, expected 16765661.499\n    test 37 points.perimeterOf('PtsFFI', closed=False, radius=6.37101e+06, wrap=True): 3224.123\n    test 38 points.perimeterOf('RdpFFI', closed=False, radius=6.37101e+06, wrap=True): 3185.467\n    test 39 points.perimeterOf('Pts', closed=False, radius=6.37101e+06, wrap=True): 2762313.129\n    test 40 points.perimeterOf('VwPts', closed=False, radius=6.37101e+06, wrap=True): 2672557.850\n    test 41 points.perimeterOf('_JFK_LHR1', closed=False, radius=6.37101e+06, wrap=True): 16034670.768  FAILED, KNOWN, expected 15766750.804\n    test 42 points.perimeterOf('_JFK_LHR2', closed=False, radius=6.37101e+06, wrap=True): 26286857.120  FAILED, KNOWN, expected 25981742.208\n    test 43 sphericalTrigonometry.perimeterOf('Antarctica', closed=False, radius=6.37101e+06, wrap=True): 15470624.834\n    test 44 sphericalTrigonometry.perimeterOf('PtsFFI', closed=False, radius=6.37101e+06, wrap=True): 3224.123\n    test 45 sphericalTrigonometry.perimeterOf('RdpFFI', closed=False, radius=6.37101e+06, wrap=True): 3185.467\n    test 46 sphericalTrigonometry.perimeterOf('Pts', closed=False, radius=6.37101e+06, wrap=True): 2762313.116\n    test 47 sphericalTrigonometry.perimeterOf('VwPts', closed=False, radius=6.37101e+06, wrap=True): 2672556.441\n    test 48 sphericalTrigonometry.perimeterOf('_JFK_LHR1', closed=False, radius=6.37101e+06, wrap=True): 15789078.314\n    test 49 sphericalTrigonometry.perimeterOf('_JFK_LHR2', closed=False, radius=6.37101e+06, wrap=True): 26041264.665\n    test 50 ellipsoidalVincenty.perimeterOf('Antarctica', closed=False, wrap=True): 15531947.149  FAILED, KNOWN, expected 15531770.613\n    test 51 ellipsoidalVincenty.perimeterOf('PtsFFI', closed=False, wrap=True): 3229.337\n    test 52 ellipsoidalVincenty.perimeterOf('RdpFFI', closed=False, wrap=True): 3190.602\n    test 53 ellipsoidalVincenty.perimeterOf('Pts', closed=False, wrap=True): 2769709.679  FAILED, KNOWN, expected 2769709.412\n    test 54 ellipsoidalVincenty.perimeterOf('VwPts', closed=False, wrap=True): 2679915.858\n    test 55 ellipsoidalVincenty.perimeterOf('_JFK_LHR1', closed=False, wrap=True): 15766750.804  FAILED, KNOWN, expected 15763434.962\n    test 56 ellipsoidalVincenty.perimeterOf('_JFK_LHR2', closed=False, wrap=True): 25981742.208  FAILED, KNOWN, expected 25972353.155\n    test 57 ellipsoidalVincenty.perimeterOf('Antarctica', closed=True, wrap=True): 16831067.893  FAILED, KNOWN, expected 16830891.356\n    test 58 ellipsoidalVincenty.perimeterOf('PtsFFI', closed=True, wrap=True): 5491.045\n    test 59 ellipsoidalVincenty.perimeterOf('RdpFFI', closed=True, wrap=True): 5452.310\n    test 60 ellipsoidalVincenty.perimeterOf('Pts', closed=True, wrap=True): 5259077.510  FAILED, KNOWN, expected 5259077.242\n    test 61 ellipsoidalVincenty.perimeterOf('VwPts', closed=True, wrap=True): 5171947.931\n    test 62 ellipsoidalVincenty.perimeterOf('_JFK_LHR1', closed=True, wrap=True): 23926469.479  FAILED, KNOWN, expected 23921931.540\n    test 63 ellipsoidalVincenty.perimeterOf('_JFK_LHR2', closed=True, wrap=True): 31533501.608  FAILED, KNOWN, expected 31524112.555\n    test 64 geographiclib.WNZ-SAL(WGS84): 19959679.267\n    test 65 geographiclib.WNZ-SAL(WGS84): 354.50\n    test 66 geographiclib.WNZ-SAL(Sphere): 19967403.498\n    test 67 geographiclib.WNZ-SAL(Sphere): 354.50\n    test 68 geographiclib.BJS-SFO(WGS84): 9513998.0\n    test 69 geographiclib.BJS-SFO(WGS84): 237.6\n    test 70 geographiclib.BJS-SFO(Sphere): 9491734.6\n    test 71 geographiclib.BJS-SFO(Sphere): 237.6\n    test 72 geographiclib.SW-Perth(WGS84): 32.11195529\n    test 73 geographiclib.SW-Perth(WGS84): -63.95925278\n    test 74 geographiclib.SW-Perth(Sphere): 31.96383509\n    test 75 geographiclib.SW-Perth(Sphere): -64.14670854\n    test 76 geographiclib.JFK-LHR(WGS84): 40041368848742.5\n    test 77 geographiclib.JFK-LHR(WGS84): 5551759.4\n    test 78 geographiclib.JFK-LHR(Sphere): 40105639196534.8\n    test 79 geographiclib.JFK-LHR(Sphere): 5536892.0\n    test 80 geographiclib.Antarctica Peri(WGS84): 16831067.893\n    test 81 geographiclib.Antarctica Area(WGS84): 13662703680020.1\n    test 82 geographiclib.Antarctica Peri(Sphere): 16765661.499\n    test 83 geographiclib.Antarctica Area(Sphere): 13552524809674.8\n    test 84 isclockwise('Antarctica', adjust=False, wrap=True): 1.000\n    test 85 isclockwise('PtsFFI', adjust=False, wrap=True): 1.000\n    test 86 isclockwise('RdpFFI', adjust=False, wrap=True): 1.000\n    test 87 isclockwise('Pts', adjust=False, wrap=True): 1.000\n    test 88 isclockwise('VwPts', adjust=False, wrap=True): 1.000\n    test 89 isclockwise('_JFK_LHR1', adjust=False, wrap=True): 0.000\n    test 90 isclockwise('_JFK_LHR2', adjust=False, wrap=True): 0.000\n\n    77 of 90 testRoutes.py tests (85.6%) FAILED, incl. 21 KNOWN plus 56 DeprecationWarnings (pygeodesy 26.3.26 Python 3.12.10 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 2.1.0 scipy 1.14.1 Math 2 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 isLazy 3 -W  default) 7.119 sec\nrunning /usr/local/bin/p....n3.12 -W default ~/PyGeodesy/test/testSimplify.py\n./test/testSimplify.py:37: DeprecationWarning: function L{simplifyVWm<pygeodesy.deprecated.functions.simplifyVWm>} has been DEPRECATED on 2024.11.28, use function L{pygeodesy.simplifyVW}C{(points, modified=True, ...)}.\n  r = function(points, m, **kwds)\n./test/testSimplify.py:37: DeprecationWarning: function L{simplifyRDPm<pygeodesy.deprecated.functions.simplifyRDPm>} has been DEPRECATED on 2024.11.28, use function L{pygeodesy.simplifyRDP}C{(points, modified=True, ...)}.\n  r = function(points, m, **kwds)\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.EPS from .constants by testSimplify.py line 11\n# lazily imported pygeodesy.R_M from .constants by testSimplify.py line 11\n# lazily imported pygeodesy.LatLon_ from .points by testSimplify.py line 11\n# lazily imported pygeodesy.Numpy2LatLon from .points by testSimplify.py line 11\n# lazily imported pygeodesy.simplify1 from .simplify by testSimplify.py line 11\n# lazily imported pygeodesy.simplifyRW from .simplify by testSimplify.py line 11\n# lazily imported pygeodesy.simplifyRDP from .simplify by testSimplify.py line 11\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by <frozen importlib._bootstrap> line 1412\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by <frozen importlib._bootstrap> line 1412\n# lazily imported pygeodesy.Conformal2Tuple from .triaxials.triaxial5 by <frozen importlib._bootstrap> line 1412\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by classes.py line 21\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by classes.py line 21\n# lazily imported pygeodesy.Conformal2Tuple from .triaxials.triaxial5 by classes.py line 21\n# lazily imported pygeodesy.simplifyRDPm from .deprecated.functions by testSimplify.py line 11\n# lazily imported pygeodesy.simplifyVW from .simplify by testSimplify.py line 11\n# lazily imported pygeodesy.simplifyVWm from .deprecated.functions by testSimplify.py line 11\n# lazily imported pygeodesy.R_KM from .constants by testRoutes.py line 13\n# lazily imported pygeodesy.ellipsoidalVincenty by testRoutes.py line 13\n# lazily imported pygeodesy.sphericalTrigonometry by testRoutes.py line 13\n# lazily imported pygeodesy.areaOf from .points by testRoutes.py line 13\n# lazily imported pygeodesy.isclockwise from .points by testRoutes.py line 13\n# lazily imported pygeodesy.perimeterOf from .points by testRoutes.py line 13\n# lazily imported pygeodesy.unstr from .streprs by testRoutes.py line 13\n\n    testing testSimplify.py 23.03.27 (module pygeodesy.simplify 25.05.12) isLazy=3\n    test 1 simplify1(16614, adjust=True) 1m (123.098 ms): 16597\n    test 2 simplifyRW(16614, adjust=True, shortest=False, indices=True) 1m (987.922 ms): 7095\n    test 3 simplifyRW(16614, adjust=True, shortest=False) 1m (987.597 ms): 7095\n    test 4 simplifyRW(16614, adjust=True, shortest=True) 1m (943.008 ms): 8302\n    test 5 simplifyVWm(16614, adjust=True, indices=True) 1m (1.804 sec): 16328\n    test 6 simplifyVWm(16614, adjust=True) 1m (1.803 sec): 16328\n    test 7 simplifyVWm(16614, adjust=False) 1m (1.782 sec): 16373\n    test 8 simplifyRDPm(16614, adjust=True, shortest=False) 1m (1.781 sec): 15864\n    test 9 simplifyRDPm(16614, adjust=True, shortest=True) 1m (3.333 sec): 15867\n    test 10 simplifyRDPgr(16614, adjust=True, shortest=True, modified=True) 1m (118.960 ms): 15867\n    test 11 simplifyRDPm(16614, adjust=False, shortest=False) 1m (1.765 sec): 15869\n    test 12 simplifyRDPfw(16614, adjust=False, shortest=False, modified=True) 1m (65.166 ms): 15869\n    test 13 simplifyRDP(16614, adjust=True, shortest=True, indices=True) 1m (48.746 sec): 10960\n    test 14 simplifyRDP(16614, adjust=True, shortest=True) 1m (48.747 sec): 10960\n    test 15 simplifyRDPgr(16614, adjust=True, shortest=True, modified=False) 1m (1.209 sec): 10960\n    test 16 simplifyRDP(16614, adjust=False, shortest=False, indices=True) 1m (24.770 sec): 11248\n    test 17 simplifyRDP(16614, adjust=False, shortest=False) 1m (24.751 sec): 11248\n    test 18 simplifyRDPfw(16614, adjust=False, shortest=False, modified=False) 1m (482.044 ms): 11248\n    test 19 simplifyVW(1661, adjust=True) 1m (182.786 ms): 1641\n    test 20 simplifyVW(1661, adjust=False) 1m (178.618 ms): 1646\n    test 21 simplifyRDP(1661, adjust=True, shortest=False) 1m (1.861 sec): 1231\n    test 22 simplifyRDP(1661, adjust=True, shortest=True) 1m (3.641 sec): 1231\n    test 23 simplifyRDPgr(1661, adjust=True, shortest=True) 1m (90.937 ms): 1231\n    test 24 simplifyRDP(1661, adjust=False, shortest=False) 1m (1.860 sec): 1267\n    test 25 simplifyRDPfw(1661, adjust=False, shortest=False) 1m (37.212 ms): 1267\n    test 26 simplifyRDPgr(1661, adjust=False, shortest=True) 1m (67.228 ms): 1267\n    test 27 simplifyVW(69, adjust=False) 1m (7.240 ms): 69\n    test 28 simplifyRDP(69, adjust=False, shortest=False) 1m (38.868 ms): 50\n    test 29 simplifyRDPfw(69, adjust=False, shortest=False) 1m (834.942 us): 50\n    test 30 simplifyRDPgr(69, adjust=False, shortest=True) 1m (1.453 ms): 50\n    test 31 simplifyRDPgr(69, adjust=True, shortest=True) 1m (1.953 ms): 45\n    test 32 simplifyRDP(5, adjust=False, shortest=True) 1m (607.967 us): 5\n    test 33 simplifyVW(5, adjust=False, attr='name') 30m (398.159 us): 5\n    test 34 numpy.__version__: 2.1.0\n    test 35 simplify1(69, adjust=False) 1m (891.209 us): 69\n    test 36 simplify1(69, adjust=False) result: <class 'numpy.ndarray'>\n    test 37 simplifyRW(69, adjust=False) 1m (4.314 ms): 33\n    test 38 simplifyRW(69, adjust=False) result: <class 'numpy.ndarray'>\n    test 39 simplifyRDP(69, adjust=False) 1m (41.974 ms): 50\n    test 40 simplifyRDP(69, adjust=False) result: <class 'numpy.ndarray'>\n    test 41 simplifyRDPm(69, adjust=False) 1m (8.221 ms): 67\n    test 42 simplifyRDPm(69, adjust=False) result: <class 'numpy.ndarray'>\n    test 43 simplifyRDPfw(69, adjust=False) 1m (3.707 ms): 50\n    test 44 simplifyRDPgr(69, adjust=False) 1m (6.709 ms): 50\n    test 45 simplifyVW(69, adjust=False) 1m (8.078 ms): 69\n    test 46 simplifyVW(69, adjust=False) result: <class 'numpy.ndarray'>\n    test 47 simplifyVWm(69, adjust=False) 1m (8.054 ms): 69\n    test 48 simplifyVWm(69, adjust=False) result: <class 'numpy.ndarray'>\n    test 49 simplify1(69, adjust=True) 1m (867.128 us): 69\n    test 50 simplify1(69, adjust=True) result: <class 'numpy.ndarray'>\n    test 51 simplifyRW(69, adjust=True) 1m (4.491 ms): 31\n    test 52 simplifyRW(69, adjust=True) result: <class 'numpy.ndarray'>\n    test 53 simplifyRDP(69, adjust=True) 1m (41.602 ms): 45\n    test 54 simplifyRDP(69, adjust=True) result: <class 'numpy.ndarray'>\n    test 55 simplifyRDPm(69, adjust=True) 1m (8.147 ms): 67\n    test 56 simplifyRDPm(69, adjust=True) result: <class 'numpy.ndarray'>\n    test 57 simplifyRDPfw(69, adjust=True) 1m (3.943 ms): 45\n    test 58 simplifyRDPgr(69, adjust=True) 1m (7.182 ms): 45\n    test 59 simplifyVW(69, adjust=True) 1m (7.996 ms): 69\n    test 60 simplifyVW(69, adjust=True) result: <class 'numpy.ndarray'>\n    test 61 simplifyVWm(69, adjust=True) 1m (7.985 ms): 69\n    test 62 simplifyVWm(69, adjust=True) result: <class 'numpy.ndarray'>\n    test 63 simplify1(69, adjust=False, indices=True) 1m (767.946 us): 69\n    test 64 simplify1(69, adjust=False, indices=True) result: <class 'list'>\n    test 65 simplifyRW(69, adjust=False, indices=True) 1m (4.175 ms): 33\n    test 66 simplifyRW(69, adjust=False, indices=True) result: <class 'list'>\n    test 67 simplifyRDP(69, adjust=False, indices=True) 1m (41.149 ms): 50\n    test 68 simplifyRDP(69, adjust=False, indices=True) result: <class 'list'>\n    test 69 simplifyRDPm(69, adjust=False, indices=True) 1m (8.011 ms): 67\n    test 70 simplifyRDPm(69, adjust=False, indices=True) result: <class 'list'>\n    test 71 simplifyRDPfw(69, adjust=True, indices=True) 1m (3.883 ms): 45\n    test 72 simplifyRDPgr(69, adjust=True, indices=True) 1m (7.192 ms): 45\n    test 73 simplifyVW(69, adjust=False, indices=True) 1m (7.877 ms): 69\n    test 74 simplifyVW(69, adjust=False, indices=True) result: <class 'list'>\n    test 75 simplifyVWm(69, adjust=False, indices=True) 1m (7.865 ms): 69\n    test 76 simplifyVWm(69, adjust=False, indices=True) result: <class 'list'>\n\n    12 of 76 testSimplify.py tests (15.8%) FAILED, incl. 12 DeprecationWarnings (pygeodesy 26.3.26 Python 3.12.10 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 2.1.0 scipy 1.14.1 Math 2 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 isLazy 3 -W  default) 2:52.416\nrunning /usr/local/bin/p....n3.12 -W default ~/PyGeodesy/test/testSpherical.py\n./test/testLatLon.py:276: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.sphericalNvector.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', p.cosineAndoyerLambertTo(q), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:277: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.sphericalNvector.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', q.cosineAndoyerLambertTo(p), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:279: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.sphericalNvector.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', p.cosineForsytheAndoyerLambertTo(q), '124801.098' if Sph else '125205.965', fmt='%.3f')\n./test/testLatLon.py:280: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.sphericalNvector.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', q.cosineForsytheAndoyerLambertTo(p), '124801.098' if Sph else '125205.965', fmt='%.3f')\n./pygeodesy/basics.py:637: DeprecationWarning: Conversion of an array with ndim > 0 to a scalar is deprecated, and will error in future. Ensure you extract a single element from your array before performing this operation. (Deprecated NumPy 1.25.)\n  return tuple(map(fun, *xs, **strict) if strict else map(fun, *xs))\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.Aer from .ltpTuples by testLatLon.py line 12\n# lazily imported pygeodesy.Enu from .ltpTuples by testLatLon.py line 12\n# lazily imported pygeodesy.F_D from .dms by testLatLon.py line 12\n# lazily imported pygeodesy.F_DM from .dms by testLatLon.py line 12\n# lazily imported pygeodesy.F_DMS from .dms by testLatLon.py line 12\n# lazily imported pygeodesy.F_RAD from .dms by testLatLon.py line 12\n# lazily imported pygeodesy.R_M from .constants by testLatLon.py line 12\n# lazily imported pygeodesy.R_NM from .constants by testLatLon.py line 12\n# lazily imported pygeodesy.degrees from .utily by testLatLon.py line 12\n# lazily imported pygeodesy.fstr from .streprs by testLatLon.py line 12\n# lazily imported pygeodesy.isclockwise from .points by testLatLon.py line 12\n# lazily imported pygeodesy.isconvex from .points by testLatLon.py line 12\n# lazily imported pygeodesy.isenclosedBy from .points by testLatLon.py line 12\n# lazily imported pygeodesy.isnear0 from .constants by testLatLon.py line 12\n# lazily imported pygeodesy.ispolar from .points by testLatLon.py line 12\n# lazily imported pygeodesy.Local9Tuple from .ltpTuples by testLatLon.py line 12\n# lazily imported pygeodesy.Ltp from .ltp by testLatLon.py line 12\n# lazily imported pygeodesy.m2km from .utily by testLatLon.py line 12\n# lazily imported pygeodesy.m2NM from .utily by testLatLon.py line 12\n# lazily imported pygeodesy.Ned from .ltpTuples by testLatLon.py line 12\n# lazily imported pygeodesy.XyzLocal from .ltpTuples by testLatLon.py line 12\n# lazily imported pygeodesy.IntersectionError from .errors by testLatLon.py line 12\n# lazily imported pygeodesy.VincentyError from .ellipsoidalVincenty by testLatLon.py line 12\n# lazily imported pygeodesy.EPS from .constants by testVectorial.py line 11\n# lazily imported pygeodesy.EPS4 from .constants by testVectorial.py line 11\n# lazily imported pygeodesy.NEG0 from .constants by testVectorial.py line 11\n# lazily imported pygeodesy.circin6 from .vector2d by testVectorial.py line 11\n# lazily imported pygeodesy.circum3 from .vector2d by testVectorial.py line 11\n# lazily imported pygeodesy.circum4_ from .vector2d by testVectorial.py line 11\n# lazily imported pygeodesy.intersection3d3 from .vector3d by testVectorial.py line 11\n# lazily imported pygeodesy.meeus2 from .vector2d by testVectorial.py line 11\n# lazily imported pygeodesy.radii11 from .vector2d by testVectorial.py line 11\n# lazily imported pygeodesy.sincos2d from .utily by testVectorial.py line 11\n# lazily imported pygeodesy.sphericalNvector by testVectorial.py line 11\n# lazily imported pygeodesy.soddy4 from .vector2d by testVectorial.py line 11\n# lazily imported pygeodesy.trilaterate2d2 from .vector2d by testVectorial.py line 11\n# lazily imported pygeodesy.trilaterate3d2 from .vector3d by testVectorial.py line 11\n# lazily imported pygeodesy.Vector3d from .vector3d by testVectorial.py line 11\n# lazily imported pygeodesy.VectorError from .errors by testVectorial.py line 11\n# lazily imported pygeodesy.F_DEG_ from .dms by testSpherical.py line 13\n# lazily imported pygeodesy.PI_4 from .constants by testSpherical.py line 13\n# lazily imported pygeodesy.classname from .named by testSpherical.py line 13\n# lazily imported pygeodesy.degrees2m from .utily by testSpherical.py line 13\n# lazily imported pygeodesy.Ellipsoids from .ellipsoids by testSpherical.py line 13\n# lazily imported pygeodesy.latlonDMS from .dms by testSpherical.py line 13\n# lazily imported pygeodesy.lonDMS from .dms by testSpherical.py line 13\n# lazily imported pygeodesy.sphericalTrigonometry by testSpherical.py line 446\n\n    testing testSpherical.py 23.10.23 isLazy=3\n\n    testLatLon(pygeodesy.sphericalNvector, 25.05.27)\n    test 1 isEllipsoidal: False\n    test 2 isSpherical: True\n    test 3 lat/lonDMS: 52.20472°N, 000.14056°E\n    test 4 lat/lonDMS F_DM: 52°12.283′N, 000°08.434′E\n    test 5 lat/lonDMS F_DM: 52°12.2832′N, 000°08.4336′E\n    test 6 lat/lonDMS F_DMS: 52°12′17″N, 000°08′26″E\n    test 7 lat/lonDMS F_DMS: 52°12′17.0″N, 000°08′26.0″E\n    test 8 lat/lonDMS F_RAD: 0.911144N, 0.002453E\n# imported pygeodesy.formy into latlonBase.py line 756\n    test 9 isequalTo: True\n    test 10 isequalTo: True\n    test 11 latlon2: 52.20472, 0.14056\n    test 12 latlon2: 52.2047, 0.1406\n    test 13 latlon2: 52.205, 0.141\n    test 14 latlon2: 52.2, 0.14\n    test 15 latlon2: 52.2, 0.1\n    test 16 latlon2: 52.0, 0.0\n    test 17 chordTo: 12036677.26\n    test 18 chordTo: 12036463.78\n    test 19 initialBearingTo: 156.1666\n    test 20 initialBearingTo: 65.8921\n    test 21 initialBearingTo: 0.0\n    test 22 initialBearingTo: 180.0\n    test 23 finalBearingTo: 157.8904\n    test 24 finalBearingTo: 93.8581\n    test 25 bearingTo2: 156.1666, 157.8904\n    test 26 ispolar: True\n    test 27 copy: True\n    test 28 __eq__: True\n    test 29 __ne__: False\n# lazily imported pygeodesy.angles by units.py line 633\n    test 30 equirectangularTo: 404329.56\n    test 31 distanceTo: 404279.720589\n    test 32 distanceTo: 404279.720589\n    test 33 distanceTo: 2145\n    test 34 distanceTo: 18013602.92\n    test 35 distanceTo: 20015114.35\n    test 36 intermediateTo: 51.372084°N, 000.707337°E\n    test 37 intermediateTo: True\n    test 38 intermediateTo: 404279.721\n    test 39 intermediateTo+5: 35.160975°N, 008.989542°E\n    test 40 intermediateTo+5: 5.000\n    test 41 intermediateTo-4: 64.911647°N, 013.726301°W\n    test 42 intermediateTo-4: 4.000\n    test 43 intermediateTo-h: 125.000\n    test 44 intermediateChordTo: 51.372294°N, 000.707192°E\n    test 45 intermediateChordTo: True\n    test 46 intermediateChordTo-h: 125.000\n    test 47 midpointTo: 50.536327°N, 001.274614°E\n    test 48 destination: 51.513546°N, 000.098345°W\n    test 49 destination: 51°30′49″N, 000°05′54″W\n    test 50 destination: 34°37′N, 116°33′W\n    test 51 destination: 34.613647°N, 116.55116°W\n    test 52 destination: 0.604122N, 2.034201W\n    test 53 destination: 31.96383509°N, 064.37329146°E\n    test 54 alongTrackDistanceTo: 62331.59\n    test 55 alongTrackDistanceTo: 62331.58\n    test 56 alongTrackDistanceTo: 99.588\n    test 57 alongTrackDistanceTo: -7702.7\n    test 58 alongTrackDistanceTo: 7587.6\n    test 59 crossTrackDistanceTo: -305.66528160755445  FAILED, KNOWN, expected TypeError\n    test 60 crossTrackDistanceTo: -307.55\n    test 61 crossTrackDistanceTo: 7.4524\n    test 62 greatCircle: (-0.79408, 0.12856, 0.59406)\n# lazily imported pygeodesy.booleans by iters.py line 76\n    test 63 neareston6: (LatLon(45°00′00.0″N, 001°00′00.0″E), 4773243.784965, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E))  FAILED, KNOWN, expected (LatLon(45°00′00.0″N, 001°00′00.0″E), 4755443.4294, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E))\n    test 64 neareston6: (LatLon(45°30′03.93″N, 002°00′00.0″E), 38968.531578, 1.501091, 2, LatLon(45°00′00.0″N, 002°00′00.0″E), LatLon(46°00′00.0″N, 002°00′00.0″E))  FAILED, KNOWN, expected (LatLon(45°30′03.94″N, 002°00′00.0″E), 39078.729285, 1.501072, 2, LatLon(45°00′00.0″N, 002°00′00.0″E), LatLon(46°00′00.0″N, 002°00′00.0″E))\n./test/testVectorial.py:128: DeprecationWarning: function L{nearestOn<pygeodesy.vector2d.nearestOn>} has been DEPRECATED on 2025.05.06, use L{pygeodesy.nearestOn<pygeodesy.vector3d.nearestOn>}.\n  t = vector2d.nearestOn(Nvector(0, 0, 0), p1, p2)\n    test 65 chordTo: 124799.103\n    test 66 cosineAndoyerLambertTo: 124801.098\n    test 67 cosineAndoyerLambertTo: 124801.098\n    test 68 cosineForsyheAndoyerLambertTo: 124801.098\n    test 69 cosineForsyheAndoyerLambertTo: 124801.098\n    test 70 cosineLawTo: 124801.098\n    test 71 cosineLawTo: 124801.098\n    test 72 equirectangularTo: 124804.754\n    test 73 equirectangularTo: 124804.754\n    test 74 euclideanTo: 130015.089\n    test 75 euclideanTo: 130015.089\n    test 76 flatLocalTo: 124804.754\n    test 77 flatLocalTo: 124804.754\n    test 78 flatPolarTo: 133663.257\n    test 79 flatPolarTo: 133663.257\n    test 80 hartzell: 53.3206°N, 001.7297°W\n# lazily imported pygeodesy.triaxials by lazily.py line 529\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by ellipsoids.py line 1905\n    test 81 hartzell: 53.3206°N, 001.7297°W\n    test 82 height4: 0.0\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by cartesianBase.py line 364\n    test 83 height4: (3803904.2, -114870.8, 5109488.3, 0.0)\n    test 84 height4: 53°19′14.2″N, 001°43′46.9″W\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by cartesianBase.py line 364\n    test 85 height4: 53°19′14.2″N, 001°43′46.9″W\n    test 86 haversineTo: 124801.098\n    test 87 haversineTo: 124801.098\n    test 88 hubenyTo: <bound method LatLonBase.flatLocalTo of LatLon(53°19′14.16″N, 001°43′46.92″W)>\n    test 89 hubenyTo: <bound method LatLonBase.flatLocalTo of LatLon(53°11′19.32″N, 000°08′00.24″E)>\n    test 90 thomasTo: 124801.098\n    test 91 thomasTo: 124801.098\n    test 92 vincentysTo: 124801.098\n    test 93 vincentysTo: 124801.098\n    test 94 greatCircleTo: (-0.79408, 0.12859, 0.59406)\n    test 95 isclockwise: False\n    test 96 isclockwise*: False\n    test 97 isclockwise: True\n    test 98 isclockwise*: True\n    test 99 isclockwise: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 100 isclockwise*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 101 isclockwise: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 102 isclockwise*: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 103 isconvex: False\n    test 104 isconvex*: False\n    test 105 isconvex: True\n    test 106 isconvex*: True\n    test 107 isconvex: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 108 isconvex*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 109 isenclosedBy1: True\n    test 110 isenclosedBy1*: True\n    test 111 isenclosedBy2: False\n    test 112 isenclosedBy2*: False\n    test 113 isenclosedBy3: False\n    test 114 isenclosedBy3*: False\n    test 115 isenclosedBy4: False\n    test 116 isenclosedBy4*: False\n    test 117 isenclosedBy5: False\n    test 118 isenclosedBy5*: False\n    test 119 isenclosedBy6: True\n    test 120 isenclosedBy6*: True\n    test 121 isenclosedBy7: True\n    test 122 isenclosedBy7*: True\n    test 123 isenclosedBy-CCW: True\n    test 124 isenclosedBy-CW : True\n    test 125 isenclosedBy-CCW: True\n    test 126 initialBearingTo: 102.432182\n    test 127 compassAngleTo: 100.017\n    test 128 compassAngleTo: 105.599\n    test 129 initialBearingTo: 288.715918\n    test 130 compassAngleTo: 280.017\n    test 131 compassAngleTo: 285.599\n    test 132 equirectangularTo: 592.185\n    test 133 distanceTo: 591.831\n    test 134 compassAngleTo: 0.0\n    test 135 compassAngleTo: 45.0\n    test 136 compassAngleTo: 90.0\n    test 137 compassAngleTo: 180.0\n    test 138 compassAngleTo: 225.0\n    test 139 compassAngleTo: 315.0\n    test 140 compassAngleTo: 270.0\n    test 141 compassAngleTo: 359.4\n    test 142 latlon2: (53.0, 1.0)\n    test 143 philam2: (0.93, 0.02)\n    test 144 compassAngleTo: 31\n    test 145 compassAngleTo: 45\n\n    test 146 boundsOf: <class 'pygeodesy.namedTuples.Bounds2Tuple'>\n    test 147 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 148 latlon2: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 149 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 150 isequalTo: <class 'bool'>\n    test 151 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 152 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 153 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 154 xyz3: <class 'tuple'>\n    test 155 xyzh: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 156 compassAngleTo: <class 'float'>\n    test 157 cosineLawTo: <class 'float'>\n    test 158 euclideanTo: <class 'float'>\n    test 159 flatLocalTo: <class 'float'>\n    test 160 flatPolarTo: <class 'float'>\n    test 161 haversineTo: <class 'float'>\n    test 162 hubenyTo: <class 'float'>\n    test 163 vincentysTo: <class 'float'>\n# imported pygeodesy.ltpTuples into ecefLocals.py line 80\n# imported pygeodesy.ltp into ecefLocals.py line 63\n# imported pygeodesy.ltp into ltpTuples.py line 1585\n    test 164 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 165 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 166 toLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 167 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 168 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 169 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 170 toVector: (3922384.659522, 0.0, 5020423.423198)\n    test 171 toVector3d: (0.61566, 0.0, 0.78801)\n    test 172 trilaterate5 (pygeodesy.sphericalNvector) .min: 223.305\n    test 173 trilaterate5 (pygeodesy.sphericalNvector) .point: 42.67456065°N, 002.49539502°E\n    test 174 trilaterate5 (pygeodesy.sphericalNvector) .min- is .maxPoint: True\n    test 175 trilaterate5 (pygeodesy.sphericalNvector) .n: 1\n    test 176 trilaterate5 (pygeodesy.sphericalNvector) .error: sphericalNvector.LatLon.trilaterate5(area=True), MRO(nvectorBase.LatLonNvectorBase, sphericalBase.LatLonSphericalBase, latlonBase.LatLonBase, named._NamedBase, ecefLocals._EcefLocal, named._Named): not implemented\n\n    test 177 radii11: Radii11Tuple(rA=7701.409157, rB=1361.530045, rC=499.257353, cR=4886.694635, rIn=739.915482, riS=179.523525, roS=6087.250896, a=1860.787398, b=8200.666509, c=9062.939201, s=9562.196554)\n    test 178 circum4 (pygeodesy.sphericalNvector) .radius: 3185505.323  FAILED, KNOWN, expected 3184256.748\n    test 179 circum4 (pygeodesy.sphericalNvector) .center: 42.674561°N, 002.495395°E, -3185503.45m  FAILED, KNOWN, expected 43.054367°N, 002.942573°E, -3183993.92m\n    test 180 circum4 (pygeodesy.sphericalNvector) .rank: 3\n    test 181 circum4 (pygeodesy.sphericalNvector) .residuals: ()\n    test 182 circum4 (pygeodesy.sphericalNvector) .d1: 4886.695  FAILED, KNOWN, expected 57818.033\n    test 183 circum4 (pygeodesy.sphericalNvector) .d2: 4886.695  FAILED, KNOWN, expected 57834.176\n    test 184 circum4 (pygeodesy.sphericalNvector) .d3: 4886.695  FAILED, KNOWN, expected 57830.992\n    test 185 circum4 (pygeodesy.sphericalNvector) .datum: name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84\n    test 186 circum4 (pygeodesy.sphericalNvector) .Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 187 radii11: Radii11Tuple(rA=328257.82694, rB=782282.176109, rC=782282.176109, cR=782304.746354, rIn=325773.738834, riS=85162.638484, roS=INF, a=1564564.352218, b=1110540.003049, c=1110540.003049, s=1892822.179158)\n    test 188 circin6 (pygeodesy.sphericalNvector) .rB+rC: 1564564.352\n    test 189 circin6 (pygeodesy.sphericalNvector) .rC+pA: 1110540.003\n    test 190 circin6 (pygeodesy.sphericalNvector) .rA+rB: 1110540.003\n    test 191 circin6 (pygeodesy.sphericalNvector) .radius: 325773.739  FAILED, KNOWN, expected 325058.721\n    test 192 circin6 (pygeodesy.sphericalNvector) .center: 02.938473°N, 002.942346°E, -40128.57m  FAILED, KNOWN, expected 02.948531°N, 002.932537°E, -40041.19m\n    test 193 circin6 (pygeodesy.sphericalNvector) .deltas: (0.0, 0.0, 0.421782)  FAILED, KNOWN, expected (0.0, 0.0, 0.090491)\n    test 194 circin6 (pygeodesy.sphericalNvector) .cA: 05.019001°N, 005.038369°E, -48209.76m  FAILED, KNOWN, expected 05.04314°N, 005.014578°E, -48104.09m\n./test/testSpherical.py:318: DeprecationWarning: method L{rhumbBearingTo<pygeodesy.sphericalNvector.LatLon.rhumbBearingTo>} has been DEPRECATED, use method C{.rhumbAzimuthTo}.\n  b = p.rhumbBearingTo(q)  # rhumbAzimuthTo\n    test 195 circin6 (pygeodesy.sphericalNvector) .cB: 00.0°N, 002.951508°E, -20185.00m  FAILED, KNOWN, expected 00.0°N, 002.941713°E, -20168.62m\n    test 196 circin6 (pygeodesy.sphericalNvector) .cC: 02.951508°N, 000.0°E, -20185.00m  FAILED, KNOWN, expected 02.961566°N, 000.0°E, -20113.46m\n    test 197 circin6 (pygeodesy.sphericalNvector) .dA: 327983.380  FAILED, KNOWN, expected 327263.596\n    test 198 circin6 (pygeodesy.sphericalNvector) .dB: 326745.373  FAILED, KNOWN, expected 326036.153\n    test 199 circin6 (pygeodesy.sphericalNvector) .dC: 326745.373  FAILED, KNOWN, expected 326020.432\n\n    test 200 area cw/ccw: 1.0\n\n    testVectorial(pygeodesy.sphericalNvector, 25.05.27)\n    test 201 crossTrackDistanceTo: -305.67\n    test 202 crossTrackDistanceTo: -307.55\n\n    test 203 toLatLon: 44.995674°N, 045.0°E\n    test 204 toNvector: (0.50004, 0.50004, 0.70705)\n    test 205 isequalTo: False\n    test 206 isequalTo: True\n    test 207 length: 0.99992449715\n    test 208 euclid: 0.99995577\n    test 209 length: 1.00\n    test 210 euclid: 1.0000\n    test 211 meanOf: 44.995674°N, 045.0°E\n    test 212 meanOf: LatLon\n    test 213 apply: (0.5, 0.5, 0.707)\n    test 214 init: (0.5, 0.5, 0.707)\n    test 215 i***: (0.5, 0.5, 0.707)\n    test 216 abs: 0.99992449715\n    test 217 sumOf: (52.70504, 0.61904, 0.70705)\n    test 218 sumOf: Nv\n    test 219 sumOf: sumOf\n    test 220 length: 52.7134151513\n    test 221 sizeof: 217  FAILED, KNOWN, expected 128\n    test 222 length: 52.2051356286\n    test 223 sizeof: 320  FAILED, KNOWN, expected 247\n    test 224 copy: True\n    test 225 length: 52.2051356286\n    test 226 sizeof: 320\n\n    test 227 toCartesian: [3185744.919, 3185744.919, 4504643.315]\n    test 228 toLatLon: 44.995674°N, 045.0°E\n    test 229 toNvector: (0.50004, 0.50004, 0.70705)  FAILED, KNOWN, expected (0.50004, 0.50004, 0.70705, -0.00)\n\n    test 230 intersection: 02.499372°N, 002.5°E\n\n    test 231 intersection1: 02.499372°N, 002.5°E\n    test 232 intersection2: 02.499372°S, 177.5°W\n\n    test 233 isenclosedBy: True\n    test 234 isenclosedBy*: True\n    test 235 isenclosedBy: True\n    test 236 isenclosedBy*: True\n\n    test 237 iswithin: False\n    test 238 iswithin: True\n\n    test 239 nearestOn: 51.0°N, 001.0°E\n    test 240 nearestOn: 50.987°N, 000.298°W\n    test 241 nearestOn: 51.0°N, 002.0°E\n    test 242 nearestOn: 50.995°N, 002.655°E\n    test 243 nearestOn: 51.0°N, 001.9°E\n    test 244 nearestOn: True\n    test 245 distanceTo: 42.712\n    test 246 nearestOn: 51.0°N, 002.0°E\n    test 247 nearestOn: True\n    test 248 nearestOn: 00.0°N, 000.0°E\n    test 249 nearestOn: True\n    test 250 nearestOn: 00.0°N, 020.0°E\n    test 251 nearestOn: True\n    test 252 nearestOn: 02.0°N, 002.0°E\n    test 253 nearestOn: 02.0°N, 002.0°E\n\n    test 254 neareston6: (LatLon(45°00′00.0″N, 001°00′00.0″E), 4773243.784965, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E))\n    test 255 neareston6: (LatLon(45°30′03.93″N, 002°00′00.0″E), 38968.531578, 1.501091, 2, LatLon(45°00′00.0″N, 002°00′00.0″E), LatLon(46°00′00.0″N, 002°00′00.0″E))\n\n    test 256 BasseC: 47.3038°N, 002.5721°W\n    test 257 BasseH: 47.311067°N, 002.528617°W\n    test 258 triangulate: 47.323667°N, 002.568501°W\n    test 259 triangulate: True\n\n    test 260 trilaterate: 37.419078°N, 121.960579°W\n    test 261 trilaterate: True\n    test 262 trilaterate: 08.068912°S, 034.888699°W\n    test 263 trilaterate: True\n    test 264 trilaterate: 08.068912°S, 034.888695°W  FAILED, KNOWN, expected 08.068912°S, 034.888699°W\n    test 265 trilaterate: True\n    test 266 trilaterate: 42.67456065°N, 002.49539502°E\n# imported pygeodesy.basics into errors.py line 443\n    test 267 trilaterate: distance1 (5110), distance2 (5110), distance3 (5110), point1 (LatLon(42°41′19.82″N, 002°26′19.89″E)), point2 (LatLon(42°38′07.52″N, 002°31′21.25″E)) or point3 (LatLon(42°38′43.44″N, 002°30′17.32″E)): no intersection (useZ=False, wrap=False, z=-8.13526e-05)\n\n    testNvector(pygeodesy.sphericalNvector, 25.05.27)\n    test 268 sumOf: Nvector\n    test 269 ecef.x, .y, .z: 3185744.91853, 3185744.91853, 4504643.3148\n    test 270 ecef.lat, .lon: 44.995674, 45.0\n    test 271 ecef.height: -0.0\n    test 272 ecef.M: -0.707106781, -0.499962243, 0.500037754, 0.707106781, -0.499962243, 0.500037754, 0.0, 0.707160174, 0.707053385\n    test 273 .isEllipsoidal: False\n    test 274 .isSpherical: True\n    test 275 .latlon: (44.995674, 45.0)\n    test 276 .philam: (0.785323, 0.785398)\n    test 277 .latlonheight: (44.995674, 45.0, 0.0)\n    test 278 .philamheight: (0.785323, 0.785398, 0.0)\n    test 279 parse: (0.5, 0.5, 0.707)\n    test 280 cmp: 0\n    test 281 eq: True\n    test 282 ge: True\n    test 283 gt: False\n    test 284 le: True\n    test 285 lt: False\n    test 286 ne: False\n    test 287 *: (1.0, 1.0, 1.414)\n    test 288 +: (1.0, 1.0, 1.414)\n    test 289 /: (0.5, 0.5, 0.707)\n    test 290 -: (0.5, 0.5, 0.707)\n    test 291 @: (0.0, 0.0, 0.0)\n    test 292 @: (0.0, 0.0, 0.0)\n    test 293 rotate: (0.26268, 0.26268, 0.37143)\n    test 294 crosserrors: True\n    test 295 0: divisor (0): float division by zero\n    test 296 intersections2: (500.0, 0.0, 0.0)\n    test 297 nearestOn: (0.0, 0.0, 0.0)\n    test 298 nearestOn: True\n    test 299 nearestOn: (100.0, 100.0, 100.0)\n    test 300 nearestOn: True\n# imported pygeodesy.vector2d into vector3d.py line 659\n    test 301 iscolinearWith: False\n    test 302 iscolinearWith: True\n    test 303 nearestOn: (0.0, 0.0, 0.0)\n    test 304 nearestOn: True\n    test 305 nearestOn: (100.0, 100.0, 100.0)\n    test 306 nearestOn: True\n    test 307 iscolinearWith: False\n    test 308 iscolinearWith: True\n\n    testSpherical(pygeodesy.sphericalNvector, 25.05.27)\n    test 309 isSpherical: True\n    test 310 isEllipsoidal: False\n    test 311 datum: name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84\n    test 312 ellipsoid: name='SphereAuthalic', a=6371000, f=0, f_=0, b=6371000\n    test 313 datum: name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84\n    test 314 isSpherical: True\n    test 315 isEllipsoidal: False\n    test 316 intersection1: 50.907608°N, 004.508575°E\n    test 317 intersection1: 50°54′27.39″N, 004°30′30.87″E\n    test 318 intersection1: True\n    test 319 intersection2: True\n    test 320 intersection2: 43.5719°N, 116.188757°W\n    test 321 intersection2: 43°34′18.84″N, 116°11′19.53″W\n    test 322 intersection3: 51.882166°N, 000.267801°E\n    test 323 intersection4: 00.0°S, 026.565051°E  FAILED, KNOWN, expected 00.0°N, 026.565051°E\n    test 324 intersection5: 26.565051°N, 000.0°W\n    test 325 intersection6: 50.907809°N, 004.50841°E\n    test 326 intersection7: 01°52′46.41″S, 005°39′06.87″E\n    test 327 intersection8: 28°15′40.35″S, 032°14′33.2″E\n    test 328 toward 1,1 N,E nearest: 00.999848°N, 001.0°E\n    test 329 toward 1,1 E,N nearest: 00.999848°N, 001.0°E\n    test 330 toward 1,1 N,E antipodal: 00.999848°S, 179.0°W\n    test 331 toward/away 1,1 N,W antipodal: 00.999848°N, 001.0°E\n    test 332 toward/away 1,1 W,N antipodal: 00.999848°S, 179.0°W\n    test 333 toward/away 1,1 S,E antipodal: 00.999848°S, 179.0°W\n    test 334 toward/away 1,1 E,S antipodal: 00.999848°N, 001.0°E\n    test 335 away 1,1 S,W antipodal: 00.999848°S, 179.0°W\n    test 336 away 1,1 W,S antipodal: 00.999848°S, 179.0°W\n    test 337 1E/90E N,E antipodal: 00.017454°N, 001.0°E\n    test 338 1E/90E N,E nearest: 00.017454°N, 179.0°W\n    test 339 brng+end 1a: 01.000305°N, 002.0°E\n    test 340 brng+end 1b: 01.000305°N, 002.0°E\n    test 341 brng+end 2a: 01.000305°S, 178.0°W\n    test 342 brng+end 2b: 01.000305°S, 178.0°W\n    test 343 intersection7: 02.499372°N, 002.5°E\n    test 344 maxLat0: 90.0\n    test 345 maxLat1: 89.0\n    test 346 maxLat90: 0.0\n    test 347 minLat0: -90.0\n    test 348 minLat1: -89.0\n    test 349 minLat90: -0.0\n    test 350 parse: 00.0°N, 000.0°E\n\n    test 351 intersecant2: 04.260346°N, 006.272173°E and 01.250608°S, 000.749094°E\n    test 352 intersecant2: 700000\n    test 353 intersecant2: 699999  FAILED, KNOWN, expected 700000\n./test/testLatLon.py:276: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.sphericalTrigonometry.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', p.cosineAndoyerLambertTo(q), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:277: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.sphericalTrigonometry.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', q.cosineAndoyerLambertTo(p), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:279: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.sphericalTrigonometry.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', p.cosineForsytheAndoyerLambertTo(q), '124801.098' if Sph else '125205.965', fmt='%.3f')\n./test/testLatLon.py:280: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.sphericalTrigonometry.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', q.cosineForsytheAndoyerLambertTo(p), '124801.098' if Sph else '125205.965', fmt='%.3f')\n    test 354 intersecant2: 45.014  FAILED, KNOWN, expected 45.000\n\n    test 355 intersecant2: 04.261539°N, 006.265474°E and 00.0°N, 002.0°E\n    test 356 intersecant2: 699248  FAILED, KNOWN, expected 700000\n    test 357 intersecant2: 598698  FAILED, KNOWN, expected 700000\n    test 358 intersecant2: 45.000\n# lazily imported pygeodesy.rhumb by ellipsoids.py line 1518\n\n    test 359 intersecant2: 04.262363°N, 006.2663°E and 01.258709°S, 000.74119°E\n    test 360 intersecant2: 699302  FAILED, KNOWN, expected 700000\n    test 361 intersecant2: 700080  FAILED, KNOWN, expected 700000\n    test 362 intersecant2: 45.021  FAILED, KNOWN, expected 45.000\n\n    test 363 intersecant4: 02.375133°N, 024.894142°E and 25.0°S, 000.0°E  FAILED, KNOWN, expected 00.0°N, 025.0°E and 25.0°S, 000.0°E\n    test 364 intersecant4: 00.0°S, 025.0°E and 25.0°S, 000.0°E  FAILED, KNOWN, expected 00.0°N, 025.0°E and 25.0°S, 000.0°E\n    test 365 intersecant4: 02.375133°N, 024.894142°E and 25.0°S, 000.0°E  FAILED, KNOWN, expected 00.0°N, 025.0°E and 25.0°S, 000.0°E\n    test 366 intersecant4: 00.0°S, 025.0°E and 25.0°S, 000.0°E  FAILED, KNOWN, expected 00.0°N, 025.0°E and 25.0°S, 000.0°E\n\n    test 367 intersecant4: 00.725365°N, 026.558638°E and 25.747°S, 000.826763°W  FAILED, KNOWN, expected 00.0°N, 025.0°E and 25.0°S, 000.0°E\n    test 368 intersecant4: 00.725365°N, 026.558638°E and 25.747°S, 000.826763°W  FAILED, KNOWN, expected 00.0°N, 025.0°E and 25.0°S, 000.0°E\n    test 369 intersecant4: 00.021635°S, 025.811619°E and 25.0°S, 000.0°E  FAILED, KNOWN, expected 00.0°N, 025.0°E and 25.0°S, 000.0°E\n    test 370 intersecant4: 00.021635°S, 025.811619°E and 25.0°S, 000.0°E  FAILED, KNOWN, expected 00.0°N, 025.0°E and 25.0°S, 000.0°E\n\n    test 371 intersecant4: 00.807845°N, 026.641126°E and 25.0°S, 000.0°E  FAILED, KNOWN, expected 00.0°N, 025.0°E and 25.0°S, 000.0°E\n    test 372 intersecant4: 01.624807°N, 026.572609°E and 25.0°S, 000.0°E  FAILED, KNOWN, expected 00.0°N, 025.0°E and 25.0°S, 000.0°E\n    test 373 intersecant4: 00.807845°N, 026.641126°E and 25.0°S, 000.0°E  FAILED, KNOWN, expected 00.0°N, 025.0°E and 25.0°S, 000.0°E\n    test 374 intersecant4: 01.624807°N, 026.572609°E and 25.0°S, 000.0°E  FAILED, KNOWN, expected 00.0°N, 025.0°E and 25.0°S, 000.0°E\n\n    test 375 intersecant2.1: LatLon(04°04′02.63″S, 029°43′21.16″W) Napier: 3333000.000\n    test 376 intersecant2.1: LatLon(29°58′27.6″N, 000°01′46.65″W) Napier: 3333000.000\n    test 377 intersecant2.1: LatLon(29°58′27.6″N, 000°01′46.65″W) : 3332999.886  FAILED, KNOWN, expected 3333000.000\n    test 378 intersecant2.1: LatLon(02°29′47.81″S, 028°30′01.84″W) : 3180236.460  FAILED, KNOWN, expected 3333000.000\n\n    test 379 intersecant2.2: LatLon(04°04′02.63″S, 029°43′21.16″E) Napier: 3333000.000\n    test 380 intersecant2.2: LatLon(29°58′27.6″N, 000°01′46.65″E) Napier: 3333000.000\n    test 381 intersecant2.2: LatLon(02°29′47.81″S, 028°30′01.84″E) : 3180236.460  FAILED, KNOWN, expected 3333000.000\n    test 382 intersecant2.2: LatLon(29°58′27.6″N, 000°01′46.65″E) : 3332999.886  FAILED, KNOWN, expected 3333000.000\n\n    test 383 intersecant2.3: LatLon(04°04′02.63″N, 029°43′21.16″W) Napier: 3333000.000\n    test 384 intersecant2.3: LatLon(29°58′27.6″S, 000°01′46.65″W) Napier: 3333000.000\n    test 385 intersecant2.3: LatLon(29°58′27.6″S, 000°01′46.65″W) : 3332999.886  FAILED, KNOWN, expected 3333000.000\n    test 386 intersecant2.3: LatLon(02°29′47.81″N, 028°30′01.84″W) : 3180236.460  FAILED, KNOWN, expected 3333000.000\n\n    test 387 intersecant2.4: LatLon(29°50′37.22″S, 002°56′03.42″W) Napier: 3333000.000\n    test 388 intersecant2.4: LatLon(00°29′30.34″N, 029°58′14.48″E) Napier: 3333000.000\n    test 389 intersecant2.4: LatLon(00°08′01.47″N, 029°38′09.18″E) : 3295394.784  FAILED, KNOWN, expected 3333000.000\n    test 390 intersecant2.4: LatLon(29°31′09.01″S, 002°27′32.93″W) : 3292733.874  FAILED, KNOWN, expected 3333000.000\n\n    test 391 intersecant2.5: LatLon(00°01′46.69″S, 029°58′27.6″E) Napier: 3333000.000\n    test 392 intersecant2.5: LatLon(29°58′27.59″S, 000°02′03.16″E) Napier: 3333000.000\n    test 393 intersecant2.5: LatLon(01°38′23.65″S, 028°34′45.37″E) : 3182660.966  FAILED, KNOWN, expected 3333000.000\n    test 394 intersecant2.5: LatLon(29°58′27.58″S, 000°02′03.17″E) : 3332999.848  FAILED, KNOWN, expected 3333000.000\n\n    test 395 intersecant2.6: LatLon(05°08′54.91″S, 029°34′09.94″E) Napier: 3333000.000\n    test 396 intersecant2.6: LatLon(28°36′28.71″S, 009°21′04.99″E) Napier: 3333000.000\n    test 397 intersecant2.6: LatLon(11°51′13.84″S, 024°23′59.0″E) : 2998636.503  FAILED, KNOWN, expected 3333000.000\n    test 398 intersecant2.6: LatLon(26°53′11.53″S, 011°08′26.36″E) : 3218384.739  FAILED, KNOWN, expected 3333000.000\n    test 399 isenclosedBy: True\n    test 400 isenclosedBy*: True\n    test 401 isenclosedBy: True\n    test 402 isenclosedBy*: True\n    test 403 rhumbBearingTo: 116.722\n    test 404 rhumbDestination: 50.964155°N, 001.853°E\n    test 405 rhumbDestination: True\n    test 406 rhumbDistanceTo: 40307.8\n    test 407 rhumbMidpointo-0.5: 51.0455°N, 001.595727°E\n    test 408 rhumbMidpointo: True\n    test 409 rhumbMidpointo-0.0: 51.127°N, 001.338°E\n    test 410 rhumbMidpointo-0.25: 51.08625°N, 001.46692°E\n    test 411 rhumbMidpointo-0.75: 51.00475°N, 001.72442°E\n    test 412 rhumbMidpointo-1.0: 50.964°N, 001.853°E\n    test 413 rhumbMidpointo-2.0: 50.801°N, 002.366196°E\n    test 414 areaOf: 8.66605875e+09\n    test 415 perimeterOf: 3.78258541e+05\n    test 416 perimeterOf: 2.67063461e+05\n    test 417 areaOf: 6.18e+09\n    test 418 perimeterOf: 3.79639757e+05\n    test 419 perimeterOf: 2.68444678e+05\n    test 420 nearestOn3: 46.000996°N, 001.353049°E\n    test 421 nearestOn3: 569987.49\n    test 422 distanceTo: 569987.49\n    test 423 nearestOn3: 46.0°N, 002.0°E\n    test 424 nearestOn3: 134989.80\n    test 425 distanceTo: 134989.80\n    test 426 nearestOn3: 45.330691°N, 001.318551°E\n    test 427 distance: 64856.28\n    test 428 distanceTo: 64856.28\n    test 429 compassAngleTo: 304.54\n    test 430 difference: 1000.53\n    test 431 ispolar: True\n    test 432 ispolar*: True\n    test 433 ispolar: False  FAILED, KNOWN, expected True\n    test 434 ispolar*: False  FAILED, KNOWN, expected True\n    test 435 ispolar: True\n    test 436 ispolar*: True\n    test 437 nearestOn: 01.5°N, 001.5°E, +149.99m\n    test 438 nearestOn3: 01.5°N, 001.5°E, +149.99m\n    test 439 midpointTo: 50.5363°N, 001.2746°E, +150.00m\n    test 440 intermediateTo: 50.5363°N, 001.2746°E, +150.00m\n\n    testLatLon(pygeodesy.sphericalTrigonometry, 25.08.31)\n    test 441 isEllipsoidal: False\n    test 442 isSpherical: True\n    test 443 lat/lonDMS: 52.20472°N, 000.14056°E\n    test 444 lat/lonDMS F_DM: 52°12.283′N, 000°08.434′E\n    test 445 lat/lonDMS F_DM: 52°12.2832′N, 000°08.4336′E\n    test 446 lat/lonDMS F_DMS: 52°12′17″N, 000°08′26″E\n    test 447 lat/lonDMS F_DMS: 52°12′17.0″N, 000°08′26.0″E\n    test 448 lat/lonDMS F_RAD: 0.911144N, 0.002453E\n    test 449 isequalTo: True\n    test 450 isequalTo: True\n    test 451 latlon2: 52.20472, 0.14056\n    test 452 latlon2: 52.2047, 0.1406\n    test 453 latlon2: 52.205, 0.141\n    test 454 latlon2: 52.2, 0.14\n    test 455 latlon2: 52.2, 0.1\n    test 456 latlon2: 52.0, 0.0\n    test 457 chordTo: 12036677.26\n    test 458 chordTo: 12036463.78\n    test 459 initialBearingTo: 156.1666\n    test 460 initialBearingTo: 65.8921\n    test 461 initialBearingTo: 0.0\n    test 462 initialBearingTo: 180.0\n    test 463 finalBearingTo: 157.8904\n    test 464 finalBearingTo: 93.8581\n    test 465 bearingTo2: 156.1666, 157.8904\n    test 466 ispolar: True\n    test 467 copy: True\n    test 468 __eq__: True\n    test 469 __ne__: False\n    test 470 equirectangularTo: 404329.56\n    test 471 distanceTo: 404279.720589\n    test 472 distanceTo: 404279.720589\n    test 473 distanceTo: 2145\n    test 474 antipodal: False\n    test 475 distanceTo dateline: 19967403.498  FAILED, KNOWN, expected 19119590.551\n    test 476 distanceTo unrolled: 19967403.498  FAILED, KNOWN, expected 19119590.551\n    test 477 antipodal: False\n    test 478 distanceTo dateline: 9491735\n    test 479 distanceTo unrolled: 9491735\n    test 480 distanceTo: 18013602.92\n    test 481 distanceTo: 20015114.35\n    test 482 intermediateTo: 51.372084°N, 000.707337°E\n    test 483 intermediateTo: True\n    test 484 intermediateTo: 404279.721\n    test 485 intermediateTo+5: 35.160975°N, 008.989542°E\n    test 486 intermediateTo+5: 5.000\n    test 487 intermediateTo-4: 64.911647°N, 013.726301°W\n    test 488 intermediateTo-4: 4.000\n    test 489 intermediateTo-h: 125.000\n    test 490 midpointTo: 50.536327°N, 001.274614°E\n    test 491 destination: 51.513546°N, 000.098345°W\n    test 492 destination: 51°30′49″N, 000°05′54″W\n    test 493 destination: 34°37′N, 116°33′W\n    test 494 destination: 34.613647°N, 116.55116°W\n    test 495 destination: 0.604122N, 2.034201W\n    test 496 destination: 31.96383509°N, 064.37329146°E\n    test 497 alongTrackDistanceTo: type(end) (96): incompatible with sphericalTrigonometry.LatLon.alongTrackDistanceTo(end)  FAILED, KNOWN, expected incompatible ...\n    test 498 alongTrackDistanceTo: 62331.58\n    test 499 alongTrackDistanceTo: 99.588\n    test 500 alongTrackDistanceTo: -7702.7\n    test 501 alongTrackDistanceTo: 7587.6\n    test 502 crossTrackDistanceTo: type(end) (96): incompatible with sphericalTrigonometry.LatLon.crossTrackDistanceTo(end)  FAILED, KNOWN, expected incompatible ...\n    test 503 crossTrackDistanceTo: -307.55\n    test 504 crossTrackDistanceTo: 7.4524\n    test 505 greatCircle: (-0.79408, 0.12856, 0.59406)\n    test 506 neareston6: (LatLon(45°00′00.0″N, 001°00′00.0″E), 4773243.784965, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E))  FAILED, KNOWN, expected (LatLon(45°00′00.0″N, 001°00′00.0″E), 4755443.4294, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E))\n    test 507 neareston6: (LatLon(45°30′03.93″N, 002°00′00.0″E), 38968.531578, 1.501091, 2, LatLon(45°00′00.0″N, 002°00′00.0″E), LatLon(46°00′00.0″N, 002°00′00.0″E))  FAILED, KNOWN, expected (LatLon(45°30′03.94″N, 002°00′00.0″E), 39078.729285, 1.501072, 2, LatLon(45°00′00.0″N, 002°00′00.0″E), LatLon(46°00′00.0″N, 002°00′00.0″E))\n    test 508 chordTo: 124799.103\n    test 509 cosineAndoyerLambertTo: 124801.098\n    test 510 cosineAndoyerLambertTo: 124801.098\n    test 511 cosineForsyheAndoyerLambertTo: 124801.098\n    test 512 cosineForsyheAndoyerLambertTo: 124801.098\n    test 513 cosineLawTo: 124801.098\n    test 514 cosineLawTo: 124801.098\n    test 515 equirectangularTo: 124804.754\n    test 516 equirectangularTo: 124804.754\n    test 517 euclideanTo: 130015.089\n    test 518 euclideanTo: 130015.089\n    test 519 flatLocalTo: 124804.754\n    test 520 flatLocalTo: 124804.754\n    test 521 flatPolarTo: 133663.257\n    test 522 flatPolarTo: 133663.257\n    test 523 hartzell: 53.3206°N, 001.7297°W\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by ellipsoids.py line 1905\n    test 524 hartzell: 53.3206°N, 001.7297°W\n    test 525 height4: 0.0\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by cartesianBase.py line 364\n    test 526 height4: (3803904.2, -114870.8, 5109488.3, 0.0)\n    test 527 height4: 53°19′14.2″N, 001°43′46.9″W\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by cartesianBase.py line 364\n    test 528 height4: 53°19′14.2″N, 001°43′46.9″W\n    test 529 haversineTo: 124801.098\n    test 530 haversineTo: 124801.098\n    test 531 hubenyTo: <bound method LatLonBase.flatLocalTo of LatLon(53°19′14.16″N, 001°43′46.92″W)>\n    test 532 hubenyTo: <bound method LatLonBase.flatLocalTo of LatLon(53°11′19.32″N, 000°08′00.24″E)>\n    test 533 thomasTo: 124801.098\n    test 534 thomasTo: 124801.098\n    test 535 vincentysTo: 124801.098\n    test 536 vincentysTo: 124801.098\n    test 537 isclockwise: False\n    test 538 isclockwise*: False\n    test 539 isclockwise: True\n    test 540 isclockwise*: True\n    test 541 isclockwise: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 542 isclockwise*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 543 isclockwise: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 544 isclockwise*: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 545 isconvex: False\n    test 546 isconvex*: False\n    test 547 isconvex: True\n    test 548 isconvex*: True\n    test 549 isconvex: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 550 isconvex*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 551 isenclosedBy1: True\n    test 552 isenclosedBy1*: True\n    test 553 isenclosedBy2: False\n    test 554 isenclosedBy2*: False\n    test 555 isenclosedBy3: False\n    test 556 isenclosedBy3*: False\n    test 557 isenclosedBy4: False\n    test 558 isenclosedBy4*: False\n    test 559 isenclosedBy5: False\n    test 560 isenclosedBy5*: False\n    test 561 isenclosedBy6: True\n    test 562 isenclosedBy6*: True\n    test 563 isenclosedBy7: True\n    test 564 isenclosedBy7*: True\n    test 565 isenclosedBy-CCW: True\n    test 566 isenclosedBy-CW : True\n    test 567 isenclosedBy-CCW: True\n    test 568 initialBearingTo: 102.432182\n    test 569 compassAngleTo: 100.017\n    test 570 compassAngleTo: 105.599\n    test 571 initialBearingTo: 288.715918\n    test 572 compassAngleTo: 280.017\n    test 573 compassAngleTo: 285.599\n    test 574 equirectangularTo: 592.185\n    test 575 distanceTo: 591.831\n    test 576 bearingTo: 0.0\n    test 577 compassAngleTo: 0.0\n    test 578 bearingTo: 45.0\n    test 579 compassAngleTo: 45.0\n    test 580 bearingTo: 90.0\n    test 581 compassAngleTo: 90.0\n    test 582 bearingTo: 180.0\n    test 583 compassAngleTo: 180.0\n    test 584 bearingTo: 225.0\n    test 585 compassAngleTo: 225.0\n    test 586 bearingTo: 315.0\n    test 587 compassAngleTo: 315.0\n    test 588 bearingTo: 270.0\n    test 589 compassAngleTo: 270.0\n    test 590 bearingTo: 0.0  FAILED, KNOWN, expected 359.4\n    test 591 compassAngleTo: 359.4\n    test 592 latlon2: (53.0, 1.0)\n    test 593 philam2: (0.93, 0.02)\n    test 594 bearingTo: 31\n    test 595 compassAngleTo: 31\n    test 596 compassAngleTo: 45\n\n    test 597 boundsOf: <class 'pygeodesy.namedTuples.Bounds2Tuple'>\n    test 598 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 599 latlon2: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 600 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 601 isequalTo: <class 'bool'>\n    test 602 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 603 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 604 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 605 xyz3: <class 'tuple'>\n    test 606 xyzh: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 607 compassAngleTo: <class 'float'>\n    test 608 cosineLawTo: <class 'float'>\n    test 609 euclideanTo: <class 'float'>\n    test 610 flatLocalTo: <class 'float'>\n    test 611 flatPolarTo: <class 'float'>\n    test 612 haversineTo: <class 'float'>\n    test 613 hubenyTo: <class 'float'>\n    test 614 vincentysTo: <class 'float'>\n    test 615 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 616 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 617 toLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 618 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 619 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 620 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 621 toNvector: (0.61566, 0.0, 0.78801)\n    test 622 toVector: (3922384.659522, 0.0, 5020423.423198)\n    test 623 toVector3d: (0.61566, 0.0, 0.78801)\n\n    test 624 trilaterate5 (pygeodesy.sphericalTrigonometry) .min: 313.671\n    test 625 trilaterate5 (pygeodesy.sphericalTrigonometry) .point: 42.66937229°N, 002.48639477°E\n    test 626 trilaterate5 (pygeodesy.sphericalTrigonometry) .max: 1591.044\n    test 627 trilaterate5 (pygeodesy.sphericalTrigonometry) .point: 42.65153054°N, 002.46822157°E\n    test 628 trilaterate5 (pygeodesy.sphericalTrigonometry) .n: 3\n    test 629 trilaterate5 (pygeodesy.sphericalTrigonometry) .min: 133.815\n    test 630 trilaterate5 (pygeodesy.sphericalTrigonometry) .max: 160.242\n    test 631 trilaterate5 (pygeodesy.sphericalTrigonometry) .point: 42.67817811°N, 002.49966641°E\n    test 632 trilaterate5 (pygeodesy.sphericalTrigonometry) .n: 2\n    test 633 trilaterate5 (pygeodesy.sphericalTrigonometry) .min: 2403.293\n    test 634 trilaterate5 (pygeodesy.sphericalTrigonometry) .max: 2403.293\n    test 635 trilaterate5 (pygeodesy.sphericalTrigonometry) .point: 42.66135649°N, 002.47981645°E\n    test 636 trilaterate5 (pygeodesy.sphericalTrigonometry) .min- is .maxPoint: True\n    test 637 trilaterate5 (pygeodesy.sphericalTrigonometry) .n: 1\n    test 638 trilaterate5 (pygeodesy.sphericalTrigonometry) .min: 1340.608\n    test 639 trilaterate5 (pygeodesy.sphericalTrigonometry) .point: 42.69128229°N, 002.50129001°E\n    test 640 trilaterate5 (pygeodesy.sphericalTrigonometry) .max: 1499.220\n    test 641 trilaterate5 (pygeodesy.sphericalTrigonometry) .point: 42.64295864°N, 002.44242391°E\n    test 642 trilaterate5 (pygeodesy.sphericalTrigonometry) .n: 3\n    test 643 radii11: Radii11Tuple(rA=7237.243793, rB=1825.695409, rC=2.255158, cR=57690.493993, rIn=57.33247, riS=2.087691, roS=2.443616, a=1827.950567, b=7239.49895, c=9062.939201, s=9065.194359)\n    test 644 circum3 (pygeodesy.sphericalTrigonometry) .radius: 57690.494  FAILED, KNOWN, expected 57792.067\n    test 645 circum3 (pygeodesy.sphericalTrigonometry) .center: 43.051859°N, 002.94463°E, -261.20m  FAILED, KNOWN, expected 43.053532°N, 002.943255°E, -261.66m\n    test 646 circum3 (pygeodesy.sphericalTrigonometry) .deltas: (0.0, -0.0, 28.304)  FAILED, KNOWN, expected (0.0, 0.0, 11.383)\n    test 647 circum3 (pygeodesy.sphericalTrigonometry) .d1: 57691.282  FAILED, KNOWN, expected 57792.858\n    test 648 circum3 (pygeodesy.sphericalTrigonometry) .d2: 57691.282  FAILED, KNOWN, expected 57792.859\n    test 649 circum3 (pygeodesy.sphericalTrigonometry) .d3: 57691.282  FAILED, KNOWN, expected 57792.859\n    test 650 circum3 (pygeodesy.sphericalTrigonometry) .datum: name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84\n    test 651 circum3 (pygeodesy.sphericalTrigonometry) .Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n\n    test 652 radii11: Radii11Tuple(rA=7237.243793, rB=1825.695409, rC=2.255158, cR=57690.493993, rIn=57.33247, riS=2.087691, roS=2.443616, a=1827.950567, b=7239.49895, c=9062.939201, s=9065.194359)\n    test 653 circum4 (pygeodesy.sphericalTrigonometry) .radius: 3185634.993  FAILED, KNOWN, expected 3184256.748\n    test 654 circum4 (pygeodesy.sphericalTrigonometry) .center: 43.051859°N, 002.94463°E, -3185373.78m  FAILED, KNOWN, expected 43.054367°N, 002.942573°E, -3183993.92m\n    test 655 circum4 (pygeodesy.sphericalTrigonometry) .rank: 3\n    test 656 circum4 (pygeodesy.sphericalTrigonometry) .residuals: ()\n    test 657 circum4 (pygeodesy.sphericalTrigonometry) .d1: 57691.282  FAILED, KNOWN, expected 57818.033\n    test 658 circum4 (pygeodesy.sphericalTrigonometry) .d2: 57691.282  FAILED, KNOWN, expected 57834.176\n    test 659 circum4 (pygeodesy.sphericalTrigonometry) .d3: 57691.282  FAILED, KNOWN, expected 57830.992\n    test 660 circum4 (pygeodesy.sphericalTrigonometry) .datum: name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84\n    test 661 circum4 (pygeodesy.sphericalTrigonometry) .Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 662 radii11: Radii11Tuple(rA=328257.82694, rB=782282.176109, rC=782282.176109, cR=782304.746354, rIn=325773.738834, riS=85162.638484, roS=INF, a=1564564.352218, b=1110540.003049, c=1110540.003049, s=1892822.179158)\n    test 663 circin6 (pygeodesy.sphericalTrigonometry) .rB+rC: 1564564.352\n    test 664 circin6 (pygeodesy.sphericalTrigonometry) .rC+pA: 1110540.003\n    test 665 circin6 (pygeodesy.sphericalTrigonometry) .rA+rB: 1110540.003\n    test 666 circin6 (pygeodesy.sphericalTrigonometry) .radius: 325773.739  FAILED, KNOWN, expected 325058.721\n    test 667 circin6 (pygeodesy.sphericalTrigonometry) .center: 02.938473°N, 002.942346°E, -40128.57m  FAILED, KNOWN, expected 02.948531°N, 002.932537°E, -40041.19m\n    test 668 circin6 (pygeodesy.sphericalTrigonometry) .deltas: (0.0, 0.0, 0.421782)  FAILED, KNOWN, expected (0.0, 0.0, 0.090491)\n    test 669 circin6 (pygeodesy.sphericalTrigonometry) .cA: 05.019001°N, 005.038369°E, -48209.76m  FAILED, KNOWN, expected 05.04314°N, 005.014578°E, -48104.09m\n    test 670 circin6 (pygeodesy.sphericalTrigonometry) .cB: 00.0°N, 002.951508°E, -20185.00m  FAILED, KNOWN, expected 00.0°N, 002.941713°E, -20168.62m\n    test 671 circin6 (pygeodesy.sphericalTrigonometry) .cC: 02.951508°N, 000.0°E, -20185.00m  FAILED, KNOWN, expected 02.961566°N, 000.0°E, -20113.46m\n    test 672 circin6 (pygeodesy.sphericalTrigonometry) .dA: 327983.380  FAILED, KNOWN, expected 327263.596\n    test 673 circin6 (pygeodesy.sphericalTrigonometry) .dB: 326745.373  FAILED, KNOWN, expected 326036.153\n    test 674 circin6 (pygeodesy.sphericalTrigonometry) .dC: 326745.373  FAILED, KNOWN, expected 326020.432\n\n    test 675 area cw/ccw: 1.0\n\n    testSpherical(pygeodesy.sphericalTrigonometry, 25.08.31)\n    test 676 isSpherical: True\n    test 677 isEllipsoidal: False\n    test 678 datum: name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84\n    test 679 ellipsoid: name='SphereAuthalic', a=6371000, f=0, f_=0, b=6371000\n    test 680 datum: name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84\n    test 681 isSpherical: True\n    test 682 isEllipsoidal: False\n    test 683 intersection1: 50.907608°N, 004.508575°E\n    test 684 intersection1: 50°54′27.39″N, 004°30′30.87″E\n    test 685 intersection1: True\n    test 686 intersection2: True\n    test 687 intersection2: 43.5719°N, 116.188757°W\n    test 688 intersection2: 43°34′18.84″N, 116°11′19.53″W\n    test 689 intersection3: 51.882166°N, 000.267801°E\n    test 690 intersection4: 00.0°N, 026.565051°E\n    test 691 intersection5: 26.565051°N, 000.0°E  FAILED, KNOWN, expected 26.565051°N, 000.0°W\n    test 692 intersection6: 50.907809°N, 004.50841°E\n    test 693 intersection7: 01°52′46.41″S, 005°39′06.87″E\n    test 694 intersection8: 28°15′40.35″S, 032°14′33.2″E\n    test 695 toward 1,1 N,E nearest: 00.999848°N, 001.0°E\n    test 696 toward 1,1 E,N nearest: 00.999848°N, 001.0°E\n    test 697 toward 1,1 N,E antipodal: 00.999848°S, 179.0°W\n    test 698 toward/away 1,1 N,W antipodal: 00.999848°N, 001.0°E\n    test 699 toward/away 1,1 W,N antipodal: 00.999848°S, 179.0°W\n    test 700 toward/away 1,1 S,E antipodal: 00.999848°S, 179.0°W\n    test 701 toward/away 1,1 E,S antipodal: 00.999848°N, 001.0°E\n    test 702 away 1,1 S,W antipodal: 00.999848°S, 179.0°W\n    test 703 away 1,1 W,S antipodal: 00.999848°S, 179.0°W\n    test 704 1E/90E N,E antipodal: 00.017454°N, 001.0°E\n    test 705 1E/90E N,E nearest: 00.017454°N, 179.0°W\n    test 706 brng+end 1a: 01.000305°N, 002.0°E\n    test 707 brng+end 1b: 01.000305°N, 002.0°E\n    test 708 brng+end 2a: 01.000305°S, 178.0°W\n    test 709 brng+end 2b: 01.000305°S, 178.0°W\n    test 710 intersection7: 02.499372°N, 002.5°E\n    test 711 maxLat0: 90.0\n    test 712 maxLat1: 89.0\n    test 713 maxLat90: 0.0\n    test 714 minLat0: -90.0\n    test 715 minLat1: -89.0\n    test 716 minLat90: -0.0\n    test 717 parse: 00.0°N, 000.0°E\n    test 718 crossingParallels: 009°35′38.65″E, 170°24′21.35″E\n\n    test 719 intersecant2: 04.260346°N, 006.272173°E and 01.250608°S, 000.749094°E\n    test 720 intersecant2: 700000\n    test 721 intersecant2: 699999  FAILED, KNOWN, expected 700000\n    test 722 intersecant2: 45.014  FAILED, KNOWN, expected 45.000\n./test/testSpherical.py:318: DeprecationWarning: method L{rhumbBearingTo<pygeodesy.sphericalTrigonometry.LatLon.rhumbBearingTo>} has been DEPRECATED, use method C{.rhumbAzimuthTo}.\n  b = p.rhumbBearingTo(q)  # rhumbAzimuthTo\n\n    test 723 intersecant2: 04.261539°N, 006.265474°E and 00.0°N, 002.0°E\n    test 724 intersecant2: 699248  FAILED, KNOWN, expected 700000\n    test 725 intersecant2: 598698  FAILED, KNOWN, expected 700000\n    test 726 intersecant2: 45.000\n\n    test 727 intersecant2: 04.262363°N, 006.2663°E and 01.258709°S, 000.74119°E\n    test 728 intersecant2: 699302  FAILED, KNOWN, expected 700000\n    test 729 intersecant2: 700080  FAILED, KNOWN, expected 700000\n    test 730 intersecant2: 45.021  FAILED, KNOWN, expected 45.000\n\n    test 731 intersecant4: 02.375133°N, 024.894142°E and 25.0°S, 000.0°E  FAILED, KNOWN, expected 00.0°N, 025.0°E and 25.0°S, 000.0°E\n    test 732 intersecant4: 00.0°N, 025.0°E and 25.0°S, 000.0°E\n    test 733 intersecant4: 02.375133°N, 024.894142°E and 25.0°S, 000.0°E  FAILED, KNOWN, expected 00.0°N, 025.0°E and 25.0°S, 000.0°E\n    test 734 intersecant4: 00.0°N, 025.0°E and 25.0°S, 000.0°E\n\n    test 735 intersecant4: 00.725365°N, 026.558638°E and 25.747°S, 000.826763°W  FAILED, KNOWN, expected 00.0°N, 025.0°E and 25.0°S, 000.0°E\n    test 736 intersecant4: 00.725365°N, 026.558638°E and 25.747°S, 000.826763°W  FAILED, KNOWN, expected 00.0°N, 025.0°E and 25.0°S, 000.0°E\n    test 737 intersecant4: 00.021635°S, 025.811619°E and 25.0°S, 000.0°E  FAILED, KNOWN, expected 00.0°N, 025.0°E and 25.0°S, 000.0°E\n    test 738 intersecant4: 00.021635°S, 025.811619°E and 25.0°S, 000.0°E  FAILED, KNOWN, expected 00.0°N, 025.0°E and 25.0°S, 000.0°E\n\n    test 739 intersecant4: 00.807845°N, 026.641126°E and 25.0°S, 000.0°E  FAILED, KNOWN, expected 00.0°N, 025.0°E and 25.0°S, 000.0°E\n    test 740 intersecant4: 01.624807°N, 026.572609°E and 25.0°S, 000.0°E  FAILED, KNOWN, expected 00.0°N, 025.0°E and 25.0°S, 000.0°E\n    test 741 intersecant4: 00.807845°N, 026.641126°E and 25.0°S, 000.0°E  FAILED, KNOWN, expected 00.0°N, 025.0°E and 25.0°S, 000.0°E\n    test 742 intersecant4: 01.624807°N, 026.572609°E and 25.0°S, 000.0°E  FAILED, KNOWN, expected 00.0°N, 025.0°E and 25.0°S, 000.0°E\n\n    test 743 intersecant2.1: LatLon(04°04′02.63″S, 029°43′21.16″W) Napier: 3333000.000\n    test 744 intersecant2.1: LatLon(29°58′27.6″N, 000°01′46.65″W) Napier: 3333000.000\n    test 745 intersecant2.1: LatLon(29°58′27.6″N, 000°01′46.65″W) : 3332999.886  FAILED, KNOWN, expected 3333000.000\n    test 746 intersecant2.1: LatLon(02°29′47.81″S, 028°30′01.84″W) : 3180236.460  FAILED, KNOWN, expected 3333000.000\n\n    test 747 intersecant2.2: LatLon(04°04′02.63″S, 029°43′21.16″E) Napier: 3333000.000\n    test 748 intersecant2.2: LatLon(29°58′27.6″N, 000°01′46.65″E) Napier: 3333000.000\n    test 749 intersecant2.2: LatLon(02°29′47.81″S, 028°30′01.84″E) : 3180236.460  FAILED, KNOWN, expected 3333000.000\n    test 750 intersecant2.2: LatLon(29°58′27.6″N, 000°01′46.65″E) : 3332999.886  FAILED, KNOWN, expected 3333000.000\n\n    test 751 intersecant2.3: LatLon(04°04′02.63″N, 029°43′21.16″W) Napier: 3333000.000\n    test 752 intersecant2.3: LatLon(29°58′27.6″S, 000°01′46.65″W) Napier: 3333000.000\n    test 753 intersecant2.3: LatLon(29°58′27.6″S, 000°01′46.65″W) : 3332999.886  FAILED, KNOWN, expected 3333000.000\n    test 754 intersecant2.3: LatLon(02°29′47.81″N, 028°30′01.84″W) : 3180236.460  FAILED, KNOWN, expected 3333000.000\n\n    test 755 intersecant2.4: LatLon(29°50′37.22″S, 002°56′03.42″W) Napier: 3333000.000\n    test 756 intersecant2.4: LatLon(00°29′30.34″N, 029°58′14.48″E) Napier: 3333000.000\n    test 757 intersecant2.4: LatLon(00°08′01.47″N, 029°38′09.18″E) : 3295394.784  FAILED, KNOWN, expected 3333000.000\n    test 758 intersecant2.4: LatLon(29°31′09.01″S, 002°27′32.93″W) : 3292733.874  FAILED, KNOWN, expected 3333000.000\n\n    test 759 intersecant2.5: LatLon(00°01′46.69″S, 029°58′27.6″E) Napier: 3333000.000\n    test 760 intersecant2.5: LatLon(29°58′27.59″S, 000°02′03.16″E) Napier: 3333000.000\n    test 761 intersecant2.5: LatLon(01°38′23.65″S, 028°34′45.37″E) : 3182660.966  FAILED, KNOWN, expected 3333000.000\n    test 762 intersecant2.5: LatLon(29°58′27.58″S, 000°02′03.17″E) : 3332999.848  FAILED, KNOWN, expected 3333000.000\n\n    test 763 intersecant2.6: LatLon(05°08′54.91″S, 029°34′09.94″E) Napier: 3333000.000\n    test 764 intersecant2.6: LatLon(28°36′28.71″S, 009°21′04.99″E) Napier: 3333000.000\n    test 765 intersecant2.6: LatLon(11°51′13.84″S, 024°23′59.0″E) : 2998636.503  FAILED, KNOWN, expected 3333000.000\n    test 766 intersecant2.6: LatLon(26°53′11.53″S, 011°08′26.36″E) : 3218384.739  FAILED, KNOWN, expected 3333000.000\n\n    test 767 intersections2 (pygeodesy.sphericalTrigonometry): 36.98931°N, 088.151425°W, 38.23838°N, 092.390487°W\n    test 768 intersections2 (pygeodesy.sphericalTrigonometry): 36.989310429, -088.151425243, 38.238379679, -092.390486808\n    test 769 intersections2 (pygeodesy.sphericalTrigonometry): 00.0°N, 035.26439°W, 00.0°N, 035.26439°E\n    test 770 intersections2 (pygeodesy.sphericalTrigonometry): 22.622036°N, 000.0°E, 22.622036°S, 000.0°E\n    test 771 intersections2 (pygeodesy.sphericalTrigonometry): 14.612841°N, 026.110934°W, 14.612841°S, 026.110934°E\n    test 772 intersections2 (pygeodesy.sphericalTrigonometry): 00.000001°S, 045.0°E, 00.000001°N, 045.0°E\n    test 773 intersections2 (pygeodesy.sphericalTrigonometry) 5: 04.999927°S, 005.038296°W, 04.999927°N, 005.038296°E\n    test 774 intersections2 (pygeodesy.sphericalTrigonometry) 5: 1.67511e-15 (% of radius)\n    test 775 intersections2 (pygeodesy.sphericalTrigonometry) 10: 09.997596°S, 010.311703°W, 09.997596°N, 010.311703°E\n    test 776 intersections2 (pygeodesy.sphericalTrigonometry) 10: 6.28168e-16 (% of radius)\n    test 777 intersections2 (pygeodesy.sphericalTrigonometry) 15: 14.98089°S, 016.083107°W, 14.98089°N, 016.083107°E\n    test 778 intersections2 (pygeodesy.sphericalTrigonometry) 15: 6.97964e-16 (% of radius)\n    test 779 intersections2 (pygeodesy.sphericalTrigonometry) 20: 19.914036°S, 022.676142°W, 19.914036°N, 022.676142°E\n    test 780 intersections2 (pygeodesy.sphericalTrigonometry) 20: 1.46573e-15 (% of radius)\n    test 781 intersections2 (pygeodesy.sphericalTrigonometry) 25: 24.713956°S, 030.518915°W, 24.713956°N, 030.518915°E\n    test 782 intersections2 (pygeodesy.sphericalTrigonometry) 25: 6.70046e-16 (% of radius)\n    test 783 intersections2 (pygeodesy.sphericalTrigonometry) 30: 29.205932°S, 040.202966°W, 29.205932°N, 040.202966°E\n    test 784 intersections2 (pygeodesy.sphericalTrigonometry) 30: 8.37557e-16 (% of radius)\n    test 785 intersections2 (pygeodesy.sphericalTrigonometry) 35: 33.037697°S, 052.55362°W, 33.037697°N, 052.55362°E\n    test 786 intersections2 (pygeodesy.sphericalTrigonometry) 35: 8.37557e-16 (% of radius)\n    test 787 intersections2 (pygeodesy.sphericalTrigonometry) 40: 35.512876°S, 068.682565°W, 35.512876°N, 068.682565°E\n    test 788 intersections2 (pygeodesy.sphericalTrigonometry) 40: 4.18779e-16 (% of radius)\n    test 789 intersections2 (pygeodesy.sphericalTrigonometry) 45: 35.26439°S, 090.0°W, 35.26439°N, 090.0°E\n    test 790 intersections2 (pygeodesy.sphericalTrigonometry) 45: 3.72248e-16 (% of radius)\n    test 791 intersections2 (pygeodesy.sphericalTrigonometry) 50: 29.382901°S, 118.837195°W, 29.382901°N, 118.837195°E\n    test 792 intersections2 (pygeodesy.sphericalTrigonometry) 50: 1.67511e-16 (% of radius)\n    test 793 intersections2 (pygeodesy.sphericalTrigonometry) 55: 00.687458°S, 179.605668°E abutting\n    test 794 intersections2 (pygeodesy.sphericalTrigonometry) 55: 0.0144095 (% of radius)\n    test 795 intersections2 (pygeodesy.sphericalTrigonometry) 60: 13.848979°S, 172.919423°E abutting\n    test 796 intersections2 (pygeodesy.sphericalTrigonometry) 60: 0.258708 (% of radius)\n    test 797 intersections2 (pygeodesy.sphericalTrigonometry) 65: 27.163786°S, 167.475402°E abutting\n    test 798 intersections2 (pygeodesy.sphericalTrigonometry) 65: 0.457099 (% of radius)\n    test 799 intersections2 (pygeodesy.sphericalTrigonometry): 41.212541°N, 073.702999°E Random +/- 89\n    test 800 intersections2 (pygeodesy.sphericalTrigonometry): 41.212541°N, 073.702999°E, 42.652043°N, 130.245275°E  d 1.70272e-08 meter\n    test 801 intersections2 (pygeodesy.sphericalTrigonometry): 41.212541°N, 073.702999°E, 49.563295°N, 057.220788°E  d 6.84831e-09 meter\n    test 802 intersections2 (pygeodesy.sphericalTrigonometry): 41.212541°N, 073.702999°E, 29.348825°S, 027.178886°W  d 3.18296e-09 meter\n    test 803 intersections2 (pygeodesy.sphericalTrigonometry): 41.212541°N, 073.702999°E, 00.919397°S, 022.582538°E  d 0 meter\n    test 804 intersections2 (pygeodesy.sphericalTrigonometry): 41.212541°N, 073.702999°E, 37.789721°N, 113.551077°E  d 0 meter\n    test 805 intersections2 (pygeodesy.sphericalTrigonometry): 41.212541°N, 073.702999°E, 45.8391°N, 062.488233°W  d 2.64407e-09 meter\n    test 806 intersections2 (pygeodesy.sphericalTrigonometry): 41.212541°N, 073.702999°E, 42.836396°N, 147.679061°W  d 7.94221e-09 meter\n    test 807 intersections2 (pygeodesy.sphericalTrigonometry): 41.212541°N, 073.702999°E, 76.602903°N, 073.829073°W  d 5.42574e-09 meter\n    test 808 intersections2 (pygeodesy.sphericalTrigonometry): 41.212541°N, 073.702999°E, 46.089655°N, 103.356557°E  d 3.82901e-09 meter\n    test 809 intersections2 (pygeodesy.sphericalTrigonometry): 41.212541°N, 073.702999°E, 04.154973°N, 044.386256°E  d 2.47563e-09 meter\n    test 810 intersections2 (pygeodesy.sphericalTrigonometry): 41.212541°N, 073.702999°E, 02.95074°N, 159.308477°W  d 2.99873e-09 meter\n    test 811 intersections2 (pygeodesy.sphericalTrigonometry): 41.212541°N, 073.702999°E, 33.791406°N, 143.40539°W  d 7.12163e-09 meter\n    test 812 trilaterate5 (pygeodesy.sphericalTrigonometry) .min: 313.671\n    test 813 trilaterate5 (pygeodesy.sphericalTrigonometry) .point: 42.66937229°N, 002.48639477°E\n    test 814 trilaterate5 (pygeodesy.sphericalTrigonometry) .max: 1591.044\n    test 815 trilaterate5 (pygeodesy.sphericalTrigonometry) .point: 42.65153054°N, 002.46822157°E\n    test 816 trilaterate5 (pygeodesy.sphericalTrigonometry) .n: 3\n    test 817 trilaterate5 (pygeodesy.sphericalTrigonometry) .min: 133.815\n    test 818 trilaterate5 (pygeodesy.sphericalTrigonometry) .inter: 42.6767291°N, 002.49916157°E\n    test 819 trilaterate5 (pygeodesy.sphericalTrigonometry) .n: 2\n    test 820 trilaterate5 (pygeodesy.sphericalTrigonometry) .min: 2403.293\n    test 821 trilaterate5 (pygeodesy.sphericalTrigonometry) .max: 2403.293\n    test 822 trilaterate5 (pygeodesy.sphericalTrigonometry) .point: 42.66135649°N, 002.47981645°E\n    test 823 trilaterate5 (pygeodesy.sphericalTrigonometry) .min- is .maxPoint: True\n    test 824 trilaterate5 (pygeodesy.sphericalTrigonometry) .n: 1\n    test 825 trilaterate5 (pygeodesy.sphericalTrigonometry) .inter: area (False), eps (1000) or wrap (False): no intersection, min 1.34e+03\n    test 826 isenclosedBy: True\n    test 827 isenclosedBy*: True\n    test 828 isenclosedBy: points[3] (LatLon(47°00′00.0″N, 003°00′00.0″E)) or wrap (False): not convex\n    test 829 isenclosedBy*: points[3] (LatLon(47°00′00.0″N, 003°00′00.0″E)) or wrap (False): not convex\n    test 830 rhumbBearingTo: 116.722\n    test 831 rhumbDestination: 50.964155°N, 001.853°E\n    test 832 rhumbDestination: True\n    test 833 rhumbDistanceTo: 40307.8\n    test 834 rhumbMidpointo-0.5: 51.0455°N, 001.595727°E\n    test 835 rhumbMidpointo: True\n    test 836 rhumbMidpointo-0.0: 51.127°N, 001.338°E\n    test 837 rhumbMidpointo-0.25: 51.08625°N, 001.46692°E\n    test 838 rhumbMidpointo-0.75: 51.00475°N, 001.72442°E\n    test 839 rhumbMidpointo-1.0: 50.964°N, 001.853°E\n    test 840 rhumbMidpointo-2.0: 50.801°N, 002.366196°E\n    test 841 areaOf: 8.66605875e+09\n    test 842 perimeterOf: 3.78258541e+05\n    test 843 perimeterOf: 2.67063461e+05\n    test 844 areaOf: 6.18e+09\n    test 845 perimeterOf: 3.79639757e+05\n    test 846 perimeterOf: 2.68444678e+05\n    test 847 nearestOn3: 46.0°N, 001.369324°E\n    test 848 nearestOn3: 570101.83\n    test 849 distanceTo: 570101.82\n    test 850 nearestOn3: 46.0°N, 002.0°E\n    test 851 nearestOn3: 134992.48\n    test 852 distanceTo: 134989.80\n    test 853 nearestOn3: 45.5°N, 001.5°E\n    test 854 distance: 78626.79\n    test 855 angle: 315.00\n    test 856 compassAngleTo: 315.00\n    test 857 nearestOn3: 45.331319°N, 001.331319°E\n    test 858 distance: 64074.48\n    test 859 angle: 305.10\n    test 860 distanceTo: 64074.12\n    test 861 compassAngleTo: 305.10\n    test 862 difference: 1000.53\n    test 863 nearestOn3: 00.5°N, 001.5°E\n    test 864 distance: 235880.385\n    test 865 angle: 135.00\n    test 866 nearestOn3: 01.5°N, 002.5°E\n    test 867 distance: 235880.385\n    test 868 angle: 135.00\n    test 869 nearestOn3: 02.5°N, 003.5°E\n    test 870 distance: 235880.385\n    test 871 angle: 135.00\n    test 872 nearestOn3: 03.5°N, 004.5°E\n    test 873 distance: 235880.385\n    test 874 angle: 135.00\n    test 875 nearestOn3: 04.5°N, 005.5°E\n    test 876 distance: 235880.385\n    test 877 angle: 135.00\n    test 878 nearestOn3: 05.5°N, 006.5°E\n    test 879 distance: 235880.385\n    test 880 angle: 135.00\n    test 881 nearestOn3: 06.5°N, 007.5°E\n    test 882 distance: 235880.385\n    test 883 angle: 135.00\n    test 884 nearestOn3: 07.5°N, 008.5°E\n    test 885 distance: 235880.385\n    test 886 angle: 135.00\n    test 887 meanOf: 04.004858°N, 004.990226°E\n    test 888 nearestOn3: 07.5°N, 008.5°E\n    test 889 toCartesian: [6245667.211, 766871.506, 996645.349]\n    test 890 ispolar: True\n    test 891 ispolar*: True\n    test 892 ispolar: False  FAILED, KNOWN, expected True\n    test 893 ispolar*: False  FAILED, KNOWN, expected True\n    test 894 ispolar: True\n    test 895 ispolar*: True\n    test 896 triangle7: (22.142114, 2189776.256122, 84.91384, 6998970.168483, 84.91384, 6998970.168483, 8479698853790.72168)\n    test 897 triangle7: Triangle8Tuple(A=0.38645, a=0.34371, B=1.48203, b=1.09857, C=1.48203, c=1.09857, D=3.74234, E=0.20891)\n    test 898 nearestOn: 01.5°N, 001.5°E, +149.99m\n    test 899 nearestOn3: 01.5°N, 001.5°E, +149.99m\n    test 900 midpointTo: 50.5363°N, 001.2746°E, +150.00m\n    test 901 intermediateTo: 50.5363°N, 001.2746°E, +150.00m\n\n    137 of 901 testSpherical.py tests (15.2%) FAILED, incl. 126 KNOWN plus 11 DeprecationWarnings (pygeodesy 26.3.26 Python 3.12.10 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 2.1.0 scipy 1.14.1 Math 2 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 isLazy 3 -W  default) 549.196 ms\nrunning /usr/local/bin/p....n3.12 -W default ~/PyGeodesy/test/testStreprs.py\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.INF from .constants by testStreprs.py line 11\n# lazily imported pygeodesy.NEG0 from .constants by testStreprs.py line 11\n# lazily imported pygeodesy.NAN from .constants by testStreprs.py line 11\n# lazily imported pygeodesy.fstr from .streprs by testStreprs.py line 11\n# lazily imported pygeodesy.fstrzs from .streprs by testStreprs.py line 11\n# lazily imported pygeodesy.instr from .streprs by testStreprs.py line 11\n# lazily imported pygeodesy.LatLon_ from .points by testStreprs.py line 11\n# lazily imported pygeodesy.unstr from .streprs by testStreprs.py line 11\n\n    testing testStreprs.py 23.03.27 (module pygeodesy.streprs 25.11.24) isLazy=3\n    test 1 anstr: a-b__\n    test 2 fstr: 0.123000\n    test 3 fstr: 0.123\n    test 4 fstr: 0.123, 456.789\n    test 5 fstr: 1.23000e-01\n    test 6 fstr: 1.23e-01\n# imported pygeodesy.basics into errors.py line 443\n    test 7 fstr: fmt ('X'): not '[%[<flags>][<width>].*]F|f|E|e|G|g'\n    test 8 fstr(1.000000): 1.0\n    test 9 fstr(1.000000): 1.0\n    test 10 fstr(-1.000000): -1.0\n    test 11 fstr(INF): INF\n    test 12 fstr(INF): INF\n    test 13 fstr(NAN): NAN\n    test 14 fstr(-0.000000): -0.0\n    test 15 fstr(0.000000): 0.0\n    test 16 fstrzs(0.0): 0.0\n    test 17 fstrzs(0.00): 0.0\n    test 18 fstrzs(0.000): 0.0\n    test 19 fstrzs(00.0): 00.0\n    test 20 fstrzs(000.00): 000.0\n    test 21 fstrzs(0.000): 0.0\n    test 22 fstrzs(0.010): 0.01\n    test 23 fstrzs(0.0200): 0.02\n    test 24 fstrzs(0.0e+01): 0.0e+01\n    test 25 fstrzs(0.00e+02): 0.0e+02\n    test 26 fstrzs(0.000e+03): 0.0e+03\n    test 27 fstrzs(00.0e+00): 00.0e+00\n    test 28 fstrzs(000.00e+01): 000.0e+01\n    test 29 fstrzs(0.000e+02): 0.0e+02\n    test 30 fstrzs(0.010e+03): 0.01e+03\n    test 31 fstrzs(0.0200e+00): 0.02e+00\n    test 32 fstrzs(0, ap1z=True): 0.0\n    test 33 fstrzs(0.0, ap1z=True): 0.0\n    test 34 fstrzs(0., ap1z=True): 0.\n    test 35 fstrzs(1e10, ap1z=True): 1.0e10\n    test 36 fstrzs(2E+2, ap1z=True): 2.0E+2\n    test 37 fstrzs(3.E3, ap1z=True): 3.E3\n    test 38 instr: LatLon_(45.0°N, 090.0°E, +1.20)\n    test 39 instr: LatLon_(45, 90, h=1.2)\n    test 40 unstr: f(1.1, 2.2)\n    test 41 unstr: f(x=1.1, y=2.2)\n    test 42 F: 0.001\n    test 43 F: 0.001\n    test 44 F: 0.001\n    test 45 F: 0.001\n    test 46 f: 0.001\n    test 47 f: 0.001\n    test 48 f: 0.001\n    test 49 f: 0.001\n    test 50 E: 1.0E-03\n    test 51 E: 1.0E-03\n    test 52 E: 1.0E-03\n    test 53 E: 1.0E-03\n    test 54 e: 1.0e-03\n    test 55 e: 1.0e-03\n    test 56 e: 1.0e-03\n    test 57 e: 1.0e-03\n    test 58 G: 0.001\n    test 59 G: 0.001\n    test 60 G: 0.001\n    test 61 G: 0.001\n    test 62 g: 0.001\n    test 63 g: 0.001\n    test 64 g: 0.001\n    test 65 g: 0.001\n\n    all 65 testStreprs.py tests passed (pygeodesy 26.3.26 Python 3.12.10 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 2.1.0 scipy 1.14.1 Math 2 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 isLazy 3 -W  default) 874.043 us\nrunning /usr/local/bin/p....n3.12 -W default ~/PyGeodesy/test/testTMcoords.py\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.Ellipsoids from .ellipsoids by testTMcoords.py line 14\n# lazily imported pygeodesy.EPS from .constants by testTMcoords.py line 14\n# lazily imported pygeodesy.RangeError from .errors by testTMcoords.py line 14\n\n    testing testTMcoords.py 24.03.22 isLazy=3\n    test 1 TMcoords: 258\n\n    all 1 testTMcoords.py tests passed (pygeodesy 26.3.26 Python 3.12.10 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 2.1.0 scipy 1.14.1 Math 2 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 isLazy 3 -W  default) 50.068 us\nrunning /usr/local/bin/p....n3.12 -W default ~/PyGeodesy/test/testTrf.py\n./test/testTrf.py:29: DeprecationWarning: method L{convertRefFrame<pygeodesy.ellipsoidalNvector.LatLon.convertRefFrame>} has been DEPRECATED, use method L{toRefFrame}.\n  x = p.convertRefFrame(RefFrames.ETRF2000)\n./test/testTrf.py:136: DeprecationWarning: method L{convertRefFrame<pygeodesy.ellipsoidalNvector.LatLon.convertRefFrame>} has been DEPRECATED, use method L{toRefFrame}.\n  t = LatLon(0, 0, reframe=RefFrames.ITRF2000).convertRefFrame('ITRF2000')\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.date2epoch from .trf by testTrf.py line 15\n# lazily imported pygeodesy.Epoch from .units by testTrf.py line 15\n# lazily imported pygeodesy.epoch2date from .trf by testTrf.py line 15\n# lazily imported pygeodesy.F_D from .dms by testTrf.py line 15\n# lazily imported pygeodesy.F_DMS from .dms by testTrf.py line 15\n# lazily imported pygeodesy.fstr from .streprs by testTrf.py line 15\n# lazily imported pygeodesy.RefFrames from .trf by testTrf.py line 15\n# lazily imported pygeodesy.TRFError from .errors by testTrf.py line 15\n# lazily imported pygeodesy.trfTransform0 from .trf by testTrf.py line 15\n# lazily imported pygeodesy.trfTransforms from .trf by testTrf.py line 15\n# lazily imported pygeodesy.trfXform from .trf by testTrf.py line 15\n# lazily imported pygeodesy.Vector3d from .vector3d by testTrf.py line 15\n# lazily imported pygeodesy.ellipsoidalExact by testTrf.py line 392\n# lazily imported pygeodesy.ellipsoidalKarney by testTrf.py line 392\n# lazily imported pygeodesy.ellipsoidalNvector by testTrf.py line 392\n# lazily imported pygeodesy.ellipsoidalVincenty by testTrf.py line 392\n\n    testing testTrf.py 24.10.14 (module pygeodesy.trf 25.09.11) isLazy=3\n\n    testTrf(pygeodesy.ellipsoidalNvector, 25.05.12)\n# lazily imported pygeodesy.ecef by ellipsoidalNvector.py line 524\n    test 1 convertRefFrame: 51.47787826°N, 000.00147125°W, -0.00m  FAILED, KNOWN, expected 51.47787826°N, 000.00147125°W\n    test 2 copy(<class 'type'>): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 3 RefFrame.copy(): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 4 toLatLon: 50.7978°N, 004.3592°E, +148.96m\n# imported pygeodesy.basics into errors.py line 715\n    test 5 convertRefFrame: [3980574.395, -102.214, 4966829.941]\n    test 6 Nil: True\n    test 7 copy(<class 'type'>): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 8 RefFrame.copy(): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 9 Nil: True\n    test 10 reframe: True\n    test 11 Roundtrip: True\n    test 12 reframe: True\n    test 13 copy(<class 'type'>): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 14 RefFrame.copy(): (<class 'pygeodesy.trf.RefFrame'>, True)\n\n    test 15 Geodetic: 23°40′12.44582″S, 133°53′07.84795″E, +603.34m\n    test 16 Cartesian: [-4052051.7614, 4212836.1945, -2545106.0147]\n    test 17 Geodetic: 23°40′12.44582″S, 133°53′07.84795″E, +603.34m\n    test 18 Cartesian: [-4052051.7614, 4212836.1945, -2545106.0147]\n    test 19 Roundtrip: 23°40′12.41482″S, 133°53′07.86712″E, +603.26m\n    test 20 GNSStrans: [3370658.18892, 711877.42369, 5349787.1243]\n    test 21 Cartesian: [-734972.563, 4893188.492, 4011982.811]\n\n    test 22 EUREF EX1: [4027894.0444, 307045.6209, 4919474.8613]\n    test 23 transform0: ITRF2005@2015xETRF2020-ITRF91@2015xETRF2020@2007 max 9.3132e-10, epoched 8.0\n    test 24 transform1: ITRF2005@2015xETRF2014-ITRF91@2015xETRF2014@2007 max 0.048666, epoched 8.0\n    test 25 transform2: ITRF2005@2015xETRF2000-ITRF91@2015xETRF2000@2007 max 0.097331, epoched 8.0\n    test 26 transform3: ITRF2005@2000xITRF2000+ITRF2000@1988xITRF91@2000@2007 max 0.146, epoched 19.0\n    test 27 transform4: -ITRF2020@2015xITRF2005+ITRF2020@2015xITRF91@2007 max 0.19466, epoched 8.0\n    test 28 transform5: -ITRF2014@2010xITRF2005+ITRF2014@2010xITRF91@2007 max 0.24333, epoched 3.0\n    test 29 transform6: -ITRF2008@2005xITRF2005+ITRF2008@2000xITRF91@2005@2007 max 0.29199, epoched 7.0\n    test 30 transform7: ITRF2000@1988xITRF91+ITRF2005@2000xITRF2000@1988@2007 max 0.34066, epoched 31.0\n    test 31 transform8: ITRF2014@2010xITRF91-ITRF2014@2020xGDA2020@2010+ITRF2005@2020xGDA2020@2010@2007 max 0.98111, epoched 23.0\n    test 32 transform9: ITRF2008@2000xITRF91-ITRF2008@1994xGDA94@2000+ITRF2005@1994xGDA94@2000@2007 max 0.35972, epoched 19.0\n    test 33 transform10: ITRF2008@2000xITRF91-ITRF2008@1997xNAD83@2000+ITRF2005@1997xNAD83@2000@2007 max 0.40805, epoched 13.0\n    test 34 EUREF EX2: [4027894.0060, 307045.6000, 4919474.9100]\n    test 35 transform0: ITRF91@2015xETRF2020-ITRF2005@2015xETRF2020@2007 max 0.048666, epoched 8.0\n    test 36 transform1: ITRF91@2015xETRF2014-ITRF2005@2015xETRF2014@2007 max 1.8626e-09, epoched 8.0\n    test 37 transform2: ITRF91@2015xETRF2000-ITRF2005@2015xETRF2000@2007 max 0.048666, epoched 8.0\n    test 38 transform3: -ITRF2005@2000xITRF2000-ITRF2000@1988xITRF91@2000@2007 max 0.097331, epoched 19.0\n    test 39 EUREF EX4: [4027894.3559, 307045.2508, 4919474.6447]\n    test 40 transform0: -ITRF2000@2015xETRF2000@2012 max 4.5169e-08, epoched 3.0\n    test 41 transform1: -ITRF2000@1997xITRF97@2015-ITRF97@2015xETRF2000@2012 max 0.35826, epoched 21.0\n    test 42 transform2: -ITRF2000@1997xITRF96@2015-ITRF96@2015xETRF2000@2012 max 0.7048, epoched 21.0\n    test 43 transform3: -ITRF2000@1988xITRF93@2015-ITRF93@2015xETRF2000@2012 max 1.054, epoched 30.0\n    test 44 transform4: -ITRF2000@1988xITRF92@2015-ITRF92@2015xETRF2000@2012 max 1.4023, epoched 30.0\n    test 45 transform5: -ITRF2000@1988xITRF91@2015-ITRF91@2015xETRF2000@2012 max 1.7514, epoched 30.0\n    test 46 transform6: -ITRF2000@1988xITRF90@2015-ITRF90@2015xETRF2000@2012 max 2.1088, epoched 30.0\n    test 47 transform7: -ITRF2000@1988xITRF89@2015-ITRF89@2015xETRF2000@2012 max 2.4877, epoched 30.0\n    test 48 transform8: -ITRF2000@1988xITRF88@2015-ITRF88@2015xETRF2000@2012 max 2.8343, epoched 30.0\n    test 49 EUREF EX5: [4027893.6458, 307045.9470, 4919475.1937]  FAILED, KNOWN, expected [4027894.3662, 307045.2530, 4919474.6263]\n    test 50 transform0: ITRF2014@2015xETRF2000@2012 max 4.5169e-08, epoched 3.0\n    test 51 transform1: ITRF2014@2010xITRF2008@2015+ITRF2008@2015xETRF2000@2012 max 0.36023, epoched 8.0\n    test 52 transform2: ITRF2014@2010xITRF97@2015+ITRF97@2015xETRF2000@2012 max 0.72047, epoched 8.0\n    test 53 transform3: ITRF2014@2010xITRF93@2015+ITRF93@2015xETRF2000@2012 max 1.0807, epoched 8.0\n    test 54 transform4: ITRF2014@2010xITRF92@2015+ITRF92@2015xETRF2000@2012 max 1.4409, epoched 8.0\n    test 55 transform5: ITRF2014@2010xITRF91@2015+ITRF91@2015xETRF2000@2012 max 1.8012, epoched 8.0\n    test 56 transform6: ITRF2014@2010xITRF90@2015+ITRF90@2015xETRF2000@2012 max 2.1614, epoched 8.0\n    test 57 transform7: ITRF2014@2010xITRF89@2015+ITRF89@2015xETRF2000@2012 max 2.5216, epoched 8.0\n    test 58 transform8: ITRF2014@2010xITRF88@2015+ITRF88@2015xETRF2000@2012 max 2.8819, epoched 8.0\n\n    test 59 Case 1A: [4027893.9619, 307045.5481, 4919474.9553]\n    test 60 Case 1B: [4027894.0054, 307045.5938, 4919474.9083]\n    test 61 Case 2A: [4027893.9639, 307045.545, 4919474.9573]\n    test 62 Case 2B: [4027894.0033, 307045.5889, 4919474.9041]\n\n    test 63 TypeError: type(reframe) ('ITRF2000'): not a RefFrame\n    test 64 TRFError: epoch (1899): below 1900.0 limit\n    test 65 TypeError: type(reframe2) ('ITRF2000'): not a RefFrame\n    test 66 TRFError: no conversion: LatLon(00°00′00.0″N, 000°00′00.0″E).reframe MISSING\n    test 67 TypeError: type(reframe2) ('ITRF2000'): not a RefFrame\n    test 68 TypeError: type(reframe) ('ITRF2000'): not a RefFrame\n\n    test 69 ETRF89@1989: [4160476.944000, 653192.600000, 4774604.455000]\n    test 70 ITRF2014@2018.8: [4160476.415, 653193.057, 4774604.903]  FAILED, KNOWN, expected [4160476.485, 653193.021, 4774604.78]\n    test 71 TransformXform: -ITRF2014@2010xITRF89-ITRF89@1989xETRF89@2010@2018.8\n    test 72 Delta (m): [-0.06956, 0.035714, 0.122931]  FAILED, KNOWN, expected [0.01, 0.01, 0.01]\n    test 73 Error (m): 0.145692  FAILED, KNOWN, expected 0.01\n    test 74 Epoch range: 29.800  FAILED, KNOWN, expected 14.0\n    test 75 ETRF89@1989: [4160476.467836, 653193.103190, 4774604.868503]  FAILED, KNOWN, expected [4160476.944000, 653192.600000, 4774604.455000]\n    test 76 TransformXform: ITRF2014@2010xITRF89+ITRF89@1989xETRF89@2010@1989\n\n    test 77 inverse: -ITRF2014@2010xITRF89-ITRF89@1989xETRF89@2010@1989\n    test 78 inverse: ITRF2014@2010xITRF89+ITRF89@1989xETRF89@2010@1989\n    test 79 inverse: name='ITRF2014@2010xITRF89+ITRF89@1989xETRF89@2010@1989', tx=0.0283, ty=0.046, tz=-0.0615, s1=1.0, rx=0.0, ry=0.0, rz=-7.757e-10, s=0.00567, sx=0.0, sy=0.0, sz=-0.00016\n\n    test 80 ETRF2000@2000: [4160476.952000, 653192.582000, 4774604.441000]\n    test 81 ITRF2014@2018.8: [4160476.471, 653193.059, 4774604.804]  FAILED, KNOWN, expected [4160476.485, 653193.021, 4774604.78]\n    test 82 TransformXform: -ITRF2014@2015xETRF2000@2018.8\n    test 83 Delta (m): [-0.014174, 0.037835, 0.023963]  FAILED, KNOWN, expected [0.01, 0.01, 0.01]\n    test 84 Error (m): 0.046975  FAILED, KNOWN, expected 0.01\n    test 85 Epoch range: 18.800  FAILED, KNOWN, expected 14.0\n    test 86 ETRF2000@2000: [4160476.681125, 653192.914350, 4774604.647835]  FAILED, KNOWN, expected [4160476.952000, 653192.582000, 4774604.441000]\n    test 87 TransformXform: ITRF2014@2015xETRF2000@2000\n\n    test 88 inverse: -ITRF2014@2015xETRF2000@2000\n    test 89 inverse: ITRF2014@2015xETRF2000@2000\n    test 90 inverse: name='ITRF2014@2015xETRF2000@2000', tx=0.0537, ty=0.0512, tz=-0.0551, s1=1.0, rx=4.3197e-09, ry=2.6131e-08, rz=-4.2237e-08, s=0.00102, sx=0.000891, sy=0.00539, sz=-0.008712\n\n    test 91 ITRF2008@2005: [4160476.674000, 653192.806000, 4774604.648000]\n    test 92 ITRF2014@2018.8: [4160476.671, 653192.804, 4774604.645]  FAILED, KNOWN, expected [4160476.485, 653193.021, 4774604.78]\n    test 93 TransformXform: -ITRF2014@2010xITRF2008@2018.8\n    test 94 Delta (m): [0.186385, -0.217059, -0.134685]  FAILED, KNOWN, expected [0.01, 0.01, 0.01]\n    test 95 Error (m): 0.316218  FAILED, KNOWN, expected 0.01\n    test 96 Epoch range: 13.800  FAILED, KNOWN, expected 14.0\n    test 97 ITRF2008@2005: [4160476.672278, 653192.805730, 4774604.647403]  FAILED, KNOWN, expected [4160476.674000, 653192.806000, 4774604.648000]\n    test 98 TransformXform: ITRF2014@2010xITRF2008@2005\n\n    test 99 inverse: -ITRF2014@2010xITRF2008@2005\n    test 100 inverse: ITRF2014@2010xITRF2008@2005\n    test 101 inverse: name='ITRF2014@2010xITRF2008@2005', tx=0.0016, ty=0.0019, tz=0.0029, s1=1.0, rx=0.0, ry=0.0, rz=0.0, s=-0.00017, sx=0.0, sy=0.0, sz=0.0\n\n    test 102 toRefFrame1: ITRF2020@2015 2024.31 [0.0031474, 0.00210534, -0.00125667]\n    test 103 toRefFrame2: ITRF2014@2010 2024.32 [0.0031474, 0.00210634, -0.00125867]\n    test 104 transform0: -ITRF2020@2015xITRF2014@2010\n    test 105 transform0X: TRFXform(epoch=2010.0, name='-ITRF2020@2015xITRF2014@2010')\n    test 106 toRefFrame3: ITRF2020@2015 2010 [0.0031474, 0.00067434, 0.00160533]\n    test 107 transform2x: (4160476.488147, 653193.021674, 4774604.781605)\n    test 108 transform2v: (0.000, 0.000, 0.000)  FAILED, KNOWN, expected (0.004, 0.003, 0.004)\n\n    test 109 transform0: name='ITRF2020@2015xETRF2020@2010', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=8.75573508e-09, ry=5.28398431e-08, rz=-7.66635874e-08, s=0.0, sx=0.001806, sy=0.010899, sz=-0.015813\n    test 110 transform2c: (4027893.9585, 307045.5550, 4919474.9620)  FAILED, KNOWN, expected (4027893.9585, 307045.5550, 4919474.9619)\n    test 111     Error2c: (-0.000016463, 0.0000336, 0.000055143) max 5.514e-05, epoched 5.0\n    test 112 transform2v: (-0.00011, 0.00010, 0.00023)  FAILED, KNOWN, expected (0.00011, 0.00011, 0.00024)\n    test 113     Error2v: (-0.000220786, -0.000005544, -0.000006899) max 0.0002208\n    test 114 transform0v: (0.00009, 0.00052, -0.00075)  FAILED, KNOWN, expected (0.00011, 0.00011, 0.00024)\n    test 115     Error0v: (-0.000024, 0.000409, -0.000993) max 0.000993\n\n    test 116 transform0: name='-ITRF2014@2015xETRF2020@2010', tx=-0.0014, ty=-0.0004, tz=0.0004, s1=1.0, rx=-8.75573508e-09, ry=-5.28398431e-08, rz=7.66635874e-08, s=-0.00042, sx=-0.001806, sy=-0.010899, sz=0.015813\n    test 117 transform2c: (4027893.6719, 307045.9063, 4919475.1704)  FAILED, KNOWN, expected (4027893.6719, 307045.9064, 4919475.1704)\n    test 118     Error2c: (0.000024786, -0.000062539, -0.000021304) max 6.254e-05, epoched 5.0\n    test 119 transform2v: (-0.01339, 0.01677, 0.01045)  FAILED, KNOWN, expected (-0.01361, 0.01676, 0.01044)\n    test 120     Error2v: (0.000220784, 0.000005543, 0.000006898) max 0.0002208\n    test 121 transform0v: (-0.00009, -0.00052, 0.00075)  FAILED, KNOWN, expected (-0.01361, 0.01676, 0.01044)\n    test 122     Error0v: (0.013524, -0.017279, -0.009687) max 0.01728\n\n    test 123 transform0: name='ITRF2014@2015xETRF2014@2010', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=8.65392421e-09, ry=5.40615736e-08, rz=-7.83943722e-08, s=0.0, sx=0.001785, sy=0.011151, sz=-0.01617\n    test 124 transform2c: (4027893.9619, 307045.5481, 4919474.9553)  FAILED, KNOWN, expected (4027893.9620, 307045.5480, 4919474.9553)\n    test 125     Error2c: (-0.00007476, 0.000063039, 0.000002882) max 7.476e-05, epoched 5.0\n    test 126 transform2v: (0.00020, -0.00030, 0.00020)\n    test 127     Error2v: (0.000000724, -0.000003666, -0.000002721) max 3.666e-06\n    test 128 transform0v: (0.00009, 0.00053, -0.00077)  FAILED, KNOWN, expected (0.00020, -0.00030, 0.00020)\n    test 129     Error0v: (-0.000115, 0.000831, -0.00097) max 0.00097\n\n    test 130 transform0: name='-ITRF2000@2015xETRF2014@2010', tx=0.0007, ty=0.0012, tz=-0.0261, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 131 transform2c: (4027893.6812, 307045.9082, 4919475.1547)\n    test 132     Error2c: (0.000013934, -0.000012081, 0.000026423) max 2.642e-05, epoched 5.0\n    test 133 transform2v: (-0.01351, 0.01686, 0.00854)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 134     Error2v: (-0.000440726, -0.000036335, -0.00053728) max 0.0005373\n    test 135 transform0v: (-0.00008, -0.00053, 0.00077)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 136     Error0v: (0.012985, -0.017431, -0.00831) max 0.01743\n\n    test 137 transform0: name='ITRF2000@2015xETRF2000@2010', tx=0.054, ty=0.051, tz=-0.048, s1=1.0, rx=8.24668072e-09, ry=4.98873278e-08, rz=-8.06342114e-08, s=0.0, sx=0.001701, sy=0.01029, sz=-0.016632\n    test 138 transform2c: (4027894.0054, 307045.5938, 4919474.9083)  FAILED, KNOWN, expected (4027894.0053, 307045.5939, 4919474.9083)\n    test 139     Error2c: (0.000077874, -0.000055372, -0.000008743) max 7.787e-05, epoched 5.0\n    test 140 transform2v: (-0.00020, -0.00050, -0.00037)  FAILED, KNOWN, expected (-0.00020, -0.00050, -0.00036)\n    test 141     Error2v: (-0.000004389, 0.000002124, -0.000008036) max 8.036e-06\n    test 142 transform0v: (0.00008, 0.00049, -0.00079)  FAILED, KNOWN, expected (-0.00020, -0.00050, -0.00036)\n    test 143     Error0v: (0.000281, 0.00099, -0.000432) max 0.00099\n\n    test 144 transform0/: name='-ITRF2000@2015xETRF2014@2010', tx=0.0007, ty=0.0012, tz=-0.0261, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 145 transform2c: (4027893.6812, 307045.9082, 4919475.1547)\n    test 146     Error2c: (0.000013934, -0.000012081, 0.000026423) max 2.642e-05, epoched 5.0\n    test 147 transform2v: (-0.01351, 0.01686, 0.00854)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 148     Error2v: (-0.000440726, -0.000036335, -0.00053728) max 0.0005373\n\n    test 149 transform1/: name='-ITRF2000@1997xITRF97@2015-ITRF97@2015xETRF2014@2010', tx=0.00673, ty=-0.00033, tz=-0.05913, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=8.09154034e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01669\n./test/testTrf.py:29: DeprecationWarning: method L{convertRefFrame<pygeodesy.ellipsoidalVincenty.LatLon.convertRefFrame>} has been DEPRECATED, use method L{toRefFrame}.\n  x = p.convertRefFrame(RefFrames.ETRF2000)\n    test 150 transform2c: (4027893.6865, 307045.9168, 4919475.1217)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 151     Error2c: (0.005269863, 0.008612365, -0.033003577) max 0.033, epoched 23.0\n    test 152 transform2v: (-0.01357, 0.01710, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 153     Error2v: (-0.00050027, 0.000204776, -0.00179728) max 0.001797\n\n    test 154 transform2/: name='-ITRF2000@1997xITRF96@2015-ITRF96@2015xETRF2014@2010', tx=0.00673, ty=-0.00033, tz=-0.05913, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 155 transform2c: (4027893.6872, 307045.9067, 4919475.1217)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 156     Error2c: (0.006043935, -0.001542081, -0.033003577) max 0.033, epoched 23.0\n    test 157 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 158     Error2v: (-0.000440726, -0.000576335, -0.00179728) max 0.001797\n\n    test 159 transform3/: name='-ITRF2000@1988xITRF93@2015-ITRF93@2015xETRF2014@2010', tx=0.0007, ty=0.0012, tz=-0.0261, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 160 transform2c: (4027893.6812, 307045.9082, 4919475.1547)\n    test 161     Error2c: (0.000013934, -0.000012081, 0.000026423) max 2.642e-05, epoched 32.0\n    test 162 transform2v: (-0.01351, 0.01686, 0.00854)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 163     Error2v: (-0.000440726, -0.000036335, -0.00053728) max 0.0005373\n\n    test 164 transform4/: name='-ITRF2000@1988xITRF92@2015-ITRF92@2015xETRF2014@2010', tx=0.01393, ty=0.00147, tz=-0.06633, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 165 transform2c: (4027893.6944, 307045.9085, 4919475.1145)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 166     Error2c: (0.013243935, 0.000257919, -0.040203577) max 0.0402, epoched 32.0\n    test 167 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 168     Error2v: (-0.000440726, -0.000576335, -0.00179728) max 0.001797\n\n    test 169 transform5/: name='-ITRF2000@1988xITRF91@2015-ITRF91@2015xETRF2014@2010', tx=0.0007, ty=0.0012, tz=-0.0261, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 170 transform2c: (4027893.6812, 307045.9082, 4919475.1547)\n    test 171     Error2c: (0.000013934, -0.000012081, 0.000026423) max 2.642e-05, epoched 32.0\n    test 172 transform2v: (-0.01351, 0.01686, 0.00854)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 173     Error2v: (-0.000440726, -0.000036335, -0.00053728) max 0.0005373\n\n    test 174 transform6/: name='-ITRF2000@1988xITRF90@2015-ITRF90@2015xETRF2014@2010', tx=0.02293, ty=0.01047, tz=-0.08613, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 175 transform2c: (4027893.7034, 307045.9175, 4919475.0947)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 176     Error2c: (0.022243935, 0.009257919, -0.060003577) max 0.06, epoched 32.0\n    test 177 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 178     Error2v: (-0.000440726, -0.000576335, -0.00179728) max 0.001797\n\n    test 179 transform7/: name='-ITRF2000@1988xITRF89@2015-ITRF89@2015xETRF2014@2010', tx=0.02743, ty=0.03207, tz=-0.12033, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 180 transform2c: (4027893.7079, 307045.9391, 4919475.0605)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 181     Error2c: (0.026743934, 0.030857919, -0.094203576) max 0.0942, epoched 32.0\n    test 182 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 183     Error2v: (-0.000440726, -0.000576335, -0.00179728) max 0.001797\n\n    test 184 transform8/: name='-ITRF2000@1988xITRF88@2015-ITRF88@2015xETRF2014@2010', tx=0.02293, ty=-0.00033, tz=-0.14193, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 185 transform2c: (4027893.7034, 307045.9067, 4919475.0389)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 186     Error2c: (0.022243935, -0.001542081, -0.115803577) max 0.1158, epoched 32.0\n    test 187 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 188     Error2v: (-0.000440725, -0.000576335, -0.00179728) max 0.001797\n\n    test 189 transform0: name='ITRF2020@2015xETRF2020@2020', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=1.29251327e-08, ry=7.80016732e-08, rz=-1.13170058e-07, s=0.0, sx=0.002666, sy=0.016089, sz=-0.023343\n    test 190 transform2c: (4027893.9574, 307045.5561, 4919474.9643)\n    test 191     Error2c: (-0.000024276, -0.000021815, -0.000013824) max 2.428e-05, epoched 5.0\n    test 192 transform2v: (0.01350, -0.01676, -0.01001)\n\n    test 193 transform0: name='-ITRF2014@2015xETRF2020@2020', tx=-0.0014, ty=-0.0014, tz=0.0024, s1=1.0, rx=-1.29251327e-08, ry=-7.80016732e-08, rz=1.13170058e-07, s=-0.00042, sx=-0.002666, sy=-0.016089, sz=0.023343\n    test 194 transform2c: (4027893.5358, 307046.0740, 4919475.2748)\n    test 195     Error2c: (0.000032643, -0.000007101, 0.000047684) max 4.768e-05, epoched 5.0\n    test 196 transform2v: (-0.01350, 0.01666, 0.01021)\n\n    test 197 transform0: name='ITRF2014@2015xETRF2014@2020', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=1.27748405e-08, ry=7.980518e-08, rz=-1.15725026e-07, s=0.0, sx=0.002635, sy=0.016461, sz=-0.02387\n    test 198 transform2c: (4027893.9639, 307045.5450, 4919474.9573)\n    test 199     Error2c: (0.000032525, 0.000026405, -0.000024305) max 3.253e-05, epoched 5.0\n    test 200 transform2v: (0.01381, -0.01706, -0.01024)\n\n    test 201 transform0: name='-ITRF2000@2015xETRF2014@2020', tx=0.0017, ty=0.0022, tz=-0.0451, s1=1.0, rx=-1.27748405e-08, ry=-7.980518e-08, rz=1.15725026e-07, s=0.00322, sx=-0.002635, sy=-0.016461, sz=0.02387\n    test 202 transform2c: (4027893.5504, 307046.0772, 4919475.2456)  FAILED, KNOWN, expected (4027893.5505, 307046.0772, 4919475.2456)\n    test 203     Error2c: (-0.00006262, -0.000037673, -0.000034945) max 6.262e-05, epoched 5.0\n    test 204 transform2v: (-0.01371, 0.01716, 0.00834)\n\n    test 205 transform0: name='ITRF2000@2015xETRF2000@2020', tx=0.054, ty=0.051, tz=-0.048, s1=1.0, rx=1.21736715e-08, ry=7.36431982e-08, rz=-1.19031455e-07, s=0.0, sx=0.002511, sy=0.01519, sz=-0.024552\n    test 206 transform2c: (4027894.0033, 307045.5889, 4919474.9047)\n    test 207     Error2c: (0.000034031, -0.000034106, 0.000010915) max 3.411e-05, epoched 5.0\n    test 208 transform2v: (0.01287, -0.01740, -0.00945)\n\n    test 209 transform0*: name='-ITRF2014@2010xITRF89-ITRF89@1989xETRF89@2010@2018.8', tx=-0.03128, ty=-0.0311, tz=0.15984, s1=0.999999991, rx=-1.58921925e-08, ry=-8.23504519e-08, rz=1.00463091e-07, s=-0.009246, sx=-0.003278, sy=-0.016986, sz=0.020722\n    test 210 transform2c: (4160476.4154, 653193.0567, 4774604.9029)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 211     Error2c: (-0.069560351, 0.035713888, 0.122930501) max 0.1229, epoched 29.8\n    test 212 transform2v: (-0.01148, 0.01996, 0.01845)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 213     Error2v: (-0.015479395, 0.016963959, 0.014448874) max 0.01696\n\n    test 214 transform0*: name='-ITRF2014@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 215 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 216     Error2c: (-0.014174475, 0.037834952, 0.023962617) max 0.03783, epoched 3.8\n./test/testTrf.py:136: DeprecationWarning: method L{convertRefFrame<pygeodesy.ellipsoidalVincenty.LatLon.convertRefFrame>} has been DEPRECATED, use method L{toRefFrame}.\n  t = LatLon(0, 0, reframe=RefFrames.ITRF2000).convertRefFrame('ITRF2000')\n    test 217 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 218     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 219 transform1*: name='-ITRF2014@2010xITRF2008@2015-ITRF2008@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 220 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 221     Error2c: (-0.014174475, 0.037834952, 0.023962617) max 0.03783, epoched 8.8\n    test 222 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 223     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 224 transform2*: name='-ITRF2014@2010xITRF97@2015-ITRF97@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 225 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 226     Error2c: (-0.014174475, 0.037834952, 0.023962617) max 0.03783, epoched 8.8\n    test 227 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 228     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 229 transform3*: name='-ITRF2014@2010xITRF93@2015-ITRF93@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 230 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 231     Error2c: (-0.014174475, 0.037834952, 0.023962617) max 0.03783, epoched 8.8\n    test 232 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 233     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 234 transform4*: name='-ITRF2014@2010xITRF92@2015-ITRF92@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 235 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 236     Error2c: (-0.014174475, 0.037834952, 0.023962617) max 0.03783, epoched 8.8\n    test 237 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 238     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 239 transform5*: name='-ITRF2014@2010xITRF91@2015-ITRF91@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 240 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 241     Error2c: (-0.014174475, 0.037834952, 0.023962617) max 0.03783, epoched 8.8\n    test 242 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 243     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 244 transform6*: name='-ITRF2014@2010xITRF90@2015-ITRF90@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 245 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 246     Error2c: (-0.014174475, 0.037834952, 0.023962617) max 0.03783, epoched 8.8\n    test 247 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 248     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 249 transform7*: name='-ITRF2014@2010xITRF89@2015-ITRF89@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 250 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 251     Error2c: (-0.014174475, 0.037834952, 0.023962617) max 0.03783, epoched 8.8\n    test 252 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 253     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 254 transform8*: name='-ITRF2014@2010xITRF88@2015-ITRF88@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 255 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 256     Error2c: (-0.014174475, 0.037834952, 0.023962617) max 0.03783, epoched 8.8\n    test 257 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 258     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 259 toTransform: name='-ITRF2014@2010xITRF88@2015-ITRF88@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=1.0, rx=-1.1702e-08, ry=-7.0792e-08, rz=1.1442e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.023602\n    test 260 toTransform: name='-ITRF2014@2010xITRF88@2015-ITRF88@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=1.0, rx=-1.1702e-08, ry=-7.0792e-08, rz=1.1442e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.023602\n\n    test 261 Issue80: 48.77691577°N, 008.92257142°E, +476.05m\n    test 262 Issue80: 48.77692147°N, 008.92257868°E, +476.09m\n# imported pygeodesy.formy into latlonBase.py line 1503\n    test 263 Issue80: 48°46′36.915134″N, 008°55′21.285094″E, +476.10m  FAILED, KNOWN, expected 48°46′36.915134″N, 008°55′21.285094″E, +476.10\n    test 264 Issue80: 0.804  FAILED, KNOWN, expected 0.01\n    test 265 Issue80: [4160476.944064, 653192.600457, 4774604.455385]\n    test 266 Issue80: [4160476.415504, 653193.057171, 4774604.903316]\n    test 267 Issue80: [4160476.467901, 653193.103647, 4774604.868888]\n    test 268 Issue80: 48°46′36.915133″N, 008°55′21.285094″E, +476.10m\n\n    test 269 Issue80: 48.77692032°N, 008.92257804°E, +476.05m\n    test 270 Issue80: 48.77691971°N, 008.92257856°E, +476.06m\n    test 271 Issue80: 48°46′36.9315″N, 008°55′21.3089″E, +476.10m  FAILED, KNOWN, expected 48°46′36.9131″N, 008°55′21.28095″E, +476.05m\n    test 272 Issue80: 0.804  FAILED, KNOWN, expected 0.01\n    test 273 Issue80: [4160476.492633, 653193.021888, 4774604.78885]\n    test 274 Issue80: [4160476.54503, 653193.068365, 4774604.754422]\n    test 275 Issue80: [4160476.016469, 653193.525079, 4774605.202353]\n    test 276 Issue80: 48°46′36.9315″N, 008°55′21.3089″E, +476.10m\n\n    test 277 ITRF96@1997xNAD83: TRFXform(epoch=1997.0, name='ITRF96@1997xNAD83')\n    test 278 ITRF96@1997xNAD83: name='ITRF96@1997xNAD83', tx=0.991, ty=-0.19072, tz=-0.5129, s1=1.0, rx=1.2503e-07, ry=4.6785e-08, rz=5.6529e-08, s=0.0, sx=0.02579, sy=0.00965, sz=0.01166\n    test 279 ITRF96@1997xNAD83: name='ITRF96@1997xNAD83@2007', tx=0.991, ty=-0.19072, tz=-0.5129, s1=1.0, rx=1.2761e-07, ry=1.0797e-08, rz=5.4997e-08, s=0.0, sx=0.026322, sy=0.002227, sz=0.011344\n    test 280 ITRF96@1997xNAD83: rx=-2.5792e-10, ry=3.5988e-09, rz=1.532e-10\n\n    testTrf(pygeodesy.ellipsoidalVincenty, 25.05.26)\n    test 281 convertRefFrame: 51.47787826°N, 000.00147125°W, -0.00m  FAILED, KNOWN, expected 51.47787826°N, 000.00147125°W\n    test 282 copy(<class 'type'>): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 283 RefFrame.copy(): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 284 toLatLon: 50.7978°N, 004.3592°E, +148.96m\n    test 285 convertRefFrame: [3980574.395, -102.214, 4966829.941]\n    test 286 Nil: True\n    test 287 copy(<class 'type'>): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 288 RefFrame.copy(): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 289 Nil: True\n    test 290 reframe: True\n    test 291 Roundtrip: True\n    test 292 reframe: True\n    test 293 copy(<class 'type'>): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 294 RefFrame.copy(): (<class 'pygeodesy.trf.RefFrame'>, True)\n\n    test 295 Geodetic: 23°40′12.44582″S, 133°53′07.84795″E, +603.34m\n    test 296 Cartesian: [-4052051.7614, 4212836.1945, -2545106.0147]\n    test 297 Geodetic: 23°40′12.44582″S, 133°53′07.84795″E, +603.34m\n    test 298 Cartesian: [-4052051.7614, 4212836.1945, -2545106.0147]\n    test 299 Roundtrip: 23°40′12.41482″S, 133°53′07.86712″E, +603.26m\n    test 300 GNSStrans: [3370658.18892, 711877.42369, 5349787.1243]\n    test 301 Cartesian: [-734972.563, 4893188.492, 4011982.811]\n\n    test 302 EUREF EX1: [4027894.0444, 307045.6209, 4919474.8613]\n    test 303 transform0: ITRF2005@2015xETRF2020-ITRF91@2015xETRF2020@2007 max 9.3132e-10, epoched 8.0\n    test 304 transform1: ITRF2005@2015xETRF2014-ITRF91@2015xETRF2014@2007 max 0.048666, epoched 8.0\n    test 305 transform2: ITRF2005@2015xETRF2000-ITRF91@2015xETRF2000@2007 max 0.097331, epoched 8.0\n    test 306 transform3: ITRF2005@2000xITRF2000+ITRF2000@1988xITRF91@2000@2007 max 0.146, epoched 19.0\n    test 307 transform4: -ITRF2020@2015xITRF2005+ITRF2020@2015xITRF91@2007 max 0.19466, epoched 8.0\n    test 308 transform5: -ITRF2014@2010xITRF2005+ITRF2014@2010xITRF91@2007 max 0.24333, epoched 3.0\n    test 309 transform6: -ITRF2008@2005xITRF2005+ITRF2008@2000xITRF91@2005@2007 max 0.29199, epoched 7.0\n    test 310 transform7: ITRF2000@1988xITRF91+ITRF2005@2000xITRF2000@1988@2007 max 0.34066, epoched 31.0\n    test 311 transform8: ITRF2014@2010xITRF91-ITRF2014@2020xGDA2020@2010+ITRF2005@2020xGDA2020@2010@2007 max 0.98111, epoched 23.0\n    test 312 transform9: ITRF2008@2000xITRF91-ITRF2008@1994xGDA94@2000+ITRF2005@1994xGDA94@2000@2007 max 0.35972, epoched 19.0\n    test 313 transform10: ITRF2008@2000xITRF91-ITRF2008@1997xNAD83@2000+ITRF2005@1997xNAD83@2000@2007 max 0.40805, epoched 13.0\n    test 314 EUREF EX2: [4027894.0060, 307045.6000, 4919474.9100]\n    test 315 transform0: ITRF91@2015xETRF2020-ITRF2005@2015xETRF2020@2007 max 0.048666, epoched 8.0\n    test 316 transform1: ITRF91@2015xETRF2014-ITRF2005@2015xETRF2014@2007 max 1.8626e-09, epoched 8.0\n    test 317 transform2: ITRF91@2015xETRF2000-ITRF2005@2015xETRF2000@2007 max 0.048666, epoched 8.0\n    test 318 transform3: -ITRF2005@2000xITRF2000-ITRF2000@1988xITRF91@2000@2007 max 0.097331, epoched 19.0\n    test 319 EUREF EX4: [4027894.3559, 307045.2508, 4919474.6447]\n    test 320 transform0: -ITRF2000@2015xETRF2000@2012 max 4.5169e-08, epoched 3.0\n    test 321 transform1: -ITRF2000@1997xITRF97@2015-ITRF97@2015xETRF2000@2012 max 0.35826, epoched 21.0\n    test 322 transform2: -ITRF2000@1997xITRF96@2015-ITRF96@2015xETRF2000@2012 max 0.7048, epoched 21.0\n    test 323 transform3: -ITRF2000@1988xITRF93@2015-ITRF93@2015xETRF2000@2012 max 1.054, epoched 30.0\n    test 324 transform4: -ITRF2000@1988xITRF92@2015-ITRF92@2015xETRF2000@2012 max 1.4023, epoched 30.0\n    test 325 transform5: -ITRF2000@1988xITRF91@2015-ITRF91@2015xETRF2000@2012 max 1.7514, epoched 30.0\n    test 326 transform6: -ITRF2000@1988xITRF90@2015-ITRF90@2015xETRF2000@2012 max 2.1088, epoched 30.0\n    test 327 transform7: -ITRF2000@1988xITRF89@2015-ITRF89@2015xETRF2000@2012 max 2.4877, epoched 30.0\n    test 328 transform8: -ITRF2000@1988xITRF88@2015-ITRF88@2015xETRF2000@2012 max 2.8343, epoched 30.0\n    test 329 EUREF EX5: [4027893.6458, 307045.9470, 4919475.1937]  FAILED, KNOWN, expected [4027894.3662, 307045.2530, 4919474.6263]\n    test 330 transform0: ITRF2014@2015xETRF2000@2012 max 4.5169e-08, epoched 3.0\n    test 331 transform1: ITRF2014@2010xITRF2008@2015+ITRF2008@2015xETRF2000@2012 max 0.36023, epoched 8.0\n    test 332 transform2: ITRF2014@2010xITRF97@2015+ITRF97@2015xETRF2000@2012 max 0.72047, epoched 8.0\n    test 333 transform3: ITRF2014@2010xITRF93@2015+ITRF93@2015xETRF2000@2012 max 1.0807, epoched 8.0\n    test 334 transform4: ITRF2014@2010xITRF92@2015+ITRF92@2015xETRF2000@2012 max 1.4409, epoched 8.0\n    test 335 transform5: ITRF2014@2010xITRF91@2015+ITRF91@2015xETRF2000@2012 max 1.8012, epoched 8.0\n    test 336 transform6: ITRF2014@2010xITRF90@2015+ITRF90@2015xETRF2000@2012 max 2.1614, epoched 8.0\n    test 337 transform7: ITRF2014@2010xITRF89@2015+ITRF89@2015xETRF2000@2012 max 2.5216, epoched 8.0\n    test 338 transform8: ITRF2014@2010xITRF88@2015+ITRF88@2015xETRF2000@2012 max 2.8819, epoched 8.0\n\n    test 339 Case 1A: [4027893.9619, 307045.5481, 4919474.9553]\n    test 340 Case 1B: [4027894.0054, 307045.5938, 4919474.9083]\n    test 341 Case 2A: [4027893.9639, 307045.545, 4919474.9573]\n    test 342 Case 2B: [4027894.0033, 307045.5889, 4919474.9041]\n\n    test 343 TypeError: type(reframe) ('ITRF2000'): not a RefFrame\n    test 344 TRFError: epoch (1899): below 1900.0 limit\n    test 345 TypeError: type(reframe2) ('ITRF2000'): not a RefFrame\n    test 346 TRFError: no conversion: LatLon(00°00′00.0″N, 000°00′00.0″E).reframe MISSING\n    test 347 TypeError: type(reframe2) ('ITRF2000'): not a RefFrame\n    test 348 TypeError: type(reframe) ('ITRF2000'): not a RefFrame\n\n    test 349 ETRF89@1989: [4160476.944000, 653192.600000, 4774604.455000]\n    test 350 ITRF2014@2018.8: [4160476.415, 653193.057, 4774604.903]  FAILED, KNOWN, expected [4160476.485, 653193.021, 4774604.78]\n    test 351 TransformXform: -ITRF2014@2010xITRF89-ITRF89@1989xETRF89@2010@2018.8\n    test 352 Delta (m): [-0.06956, 0.035714, 0.122931]  FAILED, KNOWN, expected [0.01, 0.01, 0.01]\n    test 353 Error (m): 0.145692  FAILED, KNOWN, expected 0.01\n    test 354 Epoch range: 29.800  FAILED, KNOWN, expected 14.0\n    test 355 ETRF89@1989: [4160476.467836, 653193.103190, 4774604.868503]  FAILED, KNOWN, expected [4160476.944000, 653192.600000, 4774604.455000]\n    test 356 TransformXform: ITRF2014@2010xITRF89+ITRF89@1989xETRF89@2010@1989\n\n    test 357 inverse: -ITRF2014@2010xITRF89-ITRF89@1989xETRF89@2010@1989\n    test 358 inverse: ITRF2014@2010xITRF89+ITRF89@1989xETRF89@2010@1989\n    test 359 inverse: name='ITRF2014@2010xITRF89+ITRF89@1989xETRF89@2010@1989', tx=0.0283, ty=0.046, tz=-0.0615, s1=1.0, rx=0.0, ry=0.0, rz=-7.757e-10, s=0.00567, sx=0.0, sy=0.0, sz=-0.00016\n\n    test 360 ETRF2000@2000: [4160476.952000, 653192.582000, 4774604.441000]\n    test 361 ITRF2014@2018.8: [4160476.471, 653193.059, 4774604.804]  FAILED, KNOWN, expected [4160476.485, 653193.021, 4774604.78]\n    test 362 TransformXform: -ITRF2014@2015xETRF2000@2018.8\n    test 363 Delta (m): [-0.014174, 0.037835, 0.023963]  FAILED, KNOWN, expected [0.01, 0.01, 0.01]\n    test 364 Error (m): 0.046975  FAILED, KNOWN, expected 0.01\n    test 365 Epoch range: 18.800  FAILED, KNOWN, expected 14.0\n    test 366 ETRF2000@2000: [4160476.681125, 653192.914350, 4774604.647835]  FAILED, KNOWN, expected [4160476.952000, 653192.582000, 4774604.441000]\n    test 367 TransformXform: ITRF2014@2015xETRF2000@2000\n\n    test 368 inverse: -ITRF2014@2015xETRF2000@2000\n    test 369 inverse: ITRF2014@2015xETRF2000@2000\n    test 370 inverse: name='ITRF2014@2015xETRF2000@2000', tx=0.0537, ty=0.0512, tz=-0.0551, s1=1.0, rx=4.3197e-09, ry=2.6131e-08, rz=-4.2237e-08, s=0.00102, sx=0.000891, sy=0.00539, sz=-0.008712\n\n    test 371 ITRF2008@2005: [4160476.674000, 653192.806000, 4774604.648000]\n    test 372 ITRF2014@2018.8: [4160476.671, 653192.804, 4774604.645]  FAILED, KNOWN, expected [4160476.485, 653193.021, 4774604.78]\n    test 373 TransformXform: -ITRF2014@2010xITRF2008@2018.8\n    test 374 Delta (m): [0.186385, -0.217059, -0.134685]  FAILED, KNOWN, expected [0.01, 0.01, 0.01]\n    test 375 Error (m): 0.316218  FAILED, KNOWN, expected 0.01\n    test 376 Epoch range: 13.800  FAILED, KNOWN, expected 14.0\n    test 377 ITRF2008@2005: [4160476.672278, 653192.805730, 4774604.647403]  FAILED, KNOWN, expected [4160476.674000, 653192.806000, 4774604.648000]\n    test 378 TransformXform: ITRF2014@2010xITRF2008@2005\n\n    test 379 inverse: -ITRF2014@2010xITRF2008@2005\n    test 380 inverse: ITRF2014@2010xITRF2008@2005\n    test 381 inverse: name='ITRF2014@2010xITRF2008@2005', tx=0.0016, ty=0.0019, tz=0.0029, s1=1.0, rx=0.0, ry=0.0, rz=0.0, s=-0.00017, sx=0.0, sy=0.0, sz=0.0\n\n    test 382 toRefFrame1: ITRF2020@2015 2024.31 [0.0031474, 0.00210534, -0.00125667]\n    test 383 toRefFrame2: ITRF2014@2010 2024.32 [0.0031474, 0.00210634, -0.00125867]\n    test 384 transform0: -ITRF2020@2015xITRF2014@2010\n    test 385 transform0X: TRFXform(epoch=2010.0, name='-ITRF2020@2015xITRF2014@2010')\n    test 386 toRefFrame3: ITRF2020@2015 2010 [0.0031474, 0.00067434, 0.00160533]\n    test 387 transform2x: (4160476.488147, 653193.021674, 4774604.781605)\n    test 388 transform2v: (0.000, 0.000, 0.000)  FAILED, KNOWN, expected (0.004, 0.003, 0.004)\n\n    test 389 transform0: name='ITRF2020@2015xETRF2020@2010', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=8.75573508e-09, ry=5.28398431e-08, rz=-7.66635874e-08, s=0.0, sx=0.001806, sy=0.010899, sz=-0.015813\n    test 390 transform2c: (4027893.9585, 307045.5550, 4919474.9620)  FAILED, KNOWN, expected (4027893.9585, 307045.5550, 4919474.9619)\n    test 391     Error2c: (-0.000016463, 0.0000336, 0.000055143) max 5.514e-05, epoched 5.0\n    test 392 transform2v: (-0.00011, 0.00010, 0.00023)  FAILED, KNOWN, expected (0.00011, 0.00011, 0.00024)\n    test 393     Error2v: (-0.000220786, -0.000005544, -0.000006899) max 0.0002208\n    test 394 transform0v: (0.00009, 0.00052, -0.00075)  FAILED, KNOWN, expected (0.00011, 0.00011, 0.00024)\n    test 395     Error0v: (-0.000024, 0.000409, -0.000993) max 0.000993\n\n    test 396 transform0: name='-ITRF2014@2015xETRF2020@2010', tx=-0.0014, ty=-0.0004, tz=0.0004, s1=1.0, rx=-8.75573508e-09, ry=-5.28398431e-08, rz=7.66635874e-08, s=-0.00042, sx=-0.001806, sy=-0.010899, sz=0.015813\n    test 397 transform2c: (4027893.6719, 307045.9063, 4919475.1704)  FAILED, KNOWN, expected (4027893.6719, 307045.9064, 4919475.1704)\n    test 398     Error2c: (0.000024786, -0.000062539, -0.000021304) max 6.254e-05, epoched 5.0\n    test 399 transform2v: (-0.01339, 0.01677, 0.01045)  FAILED, KNOWN, expected (-0.01361, 0.01676, 0.01044)\n    test 400     Error2v: (0.000220784, 0.000005543, 0.000006898) max 0.0002208\n    test 401 transform0v: (-0.00009, -0.00052, 0.00075)  FAILED, KNOWN, expected (-0.01361, 0.01676, 0.01044)\n    test 402     Error0v: (0.013524, -0.017279, -0.009687) max 0.01728\n\n    test 403 transform0: name='ITRF2014@2015xETRF2014@2010', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=8.65392421e-09, ry=5.40615736e-08, rz=-7.83943722e-08, s=0.0, sx=0.001785, sy=0.011151, sz=-0.01617\n    test 404 transform2c: (4027893.9619, 307045.5481, 4919474.9553)  FAILED, KNOWN, expected (4027893.9620, 307045.5480, 4919474.9553)\n    test 405     Error2c: (-0.00007476, 0.000063039, 0.000002882) max 7.476e-05, epoched 5.0\n    test 406 transform2v: (0.00020, -0.00030, 0.00020)\n    test 407     Error2v: (0.000000724, -0.000003666, -0.000002721) max 3.666e-06\n    test 408 transform0v: (0.00009, 0.00053, -0.00077)  FAILED, KNOWN, expected (0.00020, -0.00030, 0.00020)\n    test 409     Error0v: (-0.000115, 0.000831, -0.00097) max 0.00097\n\n    test 410 transform0: name='-ITRF2000@2015xETRF2014@2010', tx=0.0007, ty=0.0012, tz=-0.0261, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 411 transform2c: (4027893.6812, 307045.9082, 4919475.1547)\n    test 412     Error2c: (0.000013934, -0.000012081, 0.000026423) max 2.642e-05, epoched 5.0\n    test 413 transform2v: (-0.01351, 0.01686, 0.00854)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 414     Error2v: (-0.000440726, -0.000036335, -0.00053728) max 0.0005373\n    test 415 transform0v: (-0.00008, -0.00053, 0.00077)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 416     Error0v: (0.012985, -0.017431, -0.00831) max 0.01743\n\n    test 417 transform0: name='ITRF2000@2015xETRF2000@2010', tx=0.054, ty=0.051, tz=-0.048, s1=1.0, rx=8.24668072e-09, ry=4.98873278e-08, rz=-8.06342114e-08, s=0.0, sx=0.001701, sy=0.01029, sz=-0.016632\n    test 418 transform2c: (4027894.0054, 307045.5938, 4919474.9083)  FAILED, KNOWN, expected (4027894.0053, 307045.5939, 4919474.9083)\n    test 419     Error2c: (0.000077874, -0.000055372, -0.000008743) max 7.787e-05, epoched 5.0\n    test 420 transform2v: (-0.00020, -0.00050, -0.00037)  FAILED, KNOWN, expected (-0.00020, -0.00050, -0.00036)\n    test 421     Error2v: (-0.000004389, 0.000002124, -0.000008036) max 8.036e-06\n    test 422 transform0v: (0.00008, 0.00049, -0.00079)  FAILED, KNOWN, expected (-0.00020, -0.00050, -0.00036)\n    test 423     Error0v: (0.000281, 0.00099, -0.000432) max 0.00099\n\n    test 424 transform0/: name='-ITRF2000@2015xETRF2014@2010', tx=0.0007, ty=0.0012, tz=-0.0261, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 425 transform2c: (4027893.6812, 307045.9082, 4919475.1547)\n    test 426     Error2c: (0.000013934, -0.000012081, 0.000026423) max 2.642e-05, epoched 5.0\n    test 427 transform2v: (-0.01351, 0.01686, 0.00854)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 428     Error2v: (-0.000440726, -0.000036335, -0.00053728) max 0.0005373\n\n    test 429 transform1/: name='-ITRF2000@1997xITRF97@2015-ITRF97@2015xETRF2014@2010', tx=0.00673, ty=-0.00033, tz=-0.05913, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=8.09154034e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01669\n    test 430 transform2c: (4027893.6865, 307045.9168, 4919475.1217)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 431     Error2c: (0.005269863, 0.008612365, -0.033003577) max 0.033, epoched 23.0\n    test 432 transform2v: (-0.01357, 0.01710, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 433     Error2v: (-0.00050027, 0.000204776, -0.00179728) max 0.001797\n\n    test 434 transform2/: name='-ITRF2000@1997xITRF96@2015-ITRF96@2015xETRF2014@2010', tx=0.00673, ty=-0.00033, tz=-0.05913, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 435 transform2c: (4027893.6872, 307045.9067, 4919475.1217)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 436     Error2c: (0.006043935, -0.001542081, -0.033003577) max 0.033, epoched 23.0\n    test 437 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 438     Error2v: (-0.000440726, -0.000576335, -0.00179728) max 0.001797\n\n    test 439 transform3/: name='-ITRF2000@1988xITRF93@2015-ITRF93@2015xETRF2014@2010', tx=0.0007, ty=0.0012, tz=-0.0261, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 440 transform2c: (4027893.6812, 307045.9082, 4919475.1547)\n    test 441     Error2c: (0.000013934, -0.000012081, 0.000026423) max 2.642e-05, epoched 32.0\n    test 442 transform2v: (-0.01351, 0.01686, 0.00854)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 443     Error2v: (-0.000440726, -0.000036335, -0.00053728) max 0.0005373\n\n    test 444 transform4/: name='-ITRF2000@1988xITRF92@2015-ITRF92@2015xETRF2014@2010', tx=0.01393, ty=0.00147, tz=-0.06633, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 445 transform2c: (4027893.6944, 307045.9085, 4919475.1145)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 446     Error2c: (0.013243935, 0.000257919, -0.040203577) max 0.0402, epoched 32.0\n    test 447 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 448     Error2v: (-0.000440726, -0.000576335, -0.00179728) max 0.001797\n\n    test 449 transform5/: name='-ITRF2000@1988xITRF91@2015-ITRF91@2015xETRF2014@2010', tx=0.0007, ty=0.0012, tz=-0.0261, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 450 transform2c: (4027893.6812, 307045.9082, 4919475.1547)\n./test/testTrf.py:29: DeprecationWarning: method L{convertRefFrame<pygeodesy.ellipsoidalKarney.LatLon.convertRefFrame>} has been DEPRECATED, use method L{toRefFrame}.\n  x = p.convertRefFrame(RefFrames.ETRF2000)\n    test 451     Error2c: (0.000013934, -0.000012081, 0.000026423) max 2.642e-05, epoched 32.0\n    test 452 transform2v: (-0.01351, 0.01686, 0.00854)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 453     Error2v: (-0.000440726, -0.000036335, -0.00053728) max 0.0005373\n\n    test 454 transform6/: name='-ITRF2000@1988xITRF90@2015-ITRF90@2015xETRF2014@2010', tx=0.02293, ty=0.01047, tz=-0.08613, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 455 transform2c: (4027893.7034, 307045.9175, 4919475.0947)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 456     Error2c: (0.022243935, 0.009257919, -0.060003577) max 0.06, epoched 32.0\n    test 457 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 458     Error2v: (-0.000440726, -0.000576335, -0.00179728) max 0.001797\n\n    test 459 transform7/: name='-ITRF2000@1988xITRF89@2015-ITRF89@2015xETRF2014@2010', tx=0.02743, ty=0.03207, tz=-0.12033, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 460 transform2c: (4027893.7079, 307045.9391, 4919475.0605)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 461     Error2c: (0.026743934, 0.030857919, -0.094203576) max 0.0942, epoched 32.0\n    test 462 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 463     Error2v: (-0.000440726, -0.000576335, -0.00179728) max 0.001797\n\n    test 464 transform8/: name='-ITRF2000@1988xITRF88@2015-ITRF88@2015xETRF2014@2010', tx=0.02293, ty=-0.00033, tz=-0.14193, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 465 transform2c: (4027893.7034, 307045.9067, 4919475.0389)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 466     Error2c: (0.022243935, -0.001542081, -0.115803577) max 0.1158, epoched 32.0\n    test 467 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 468     Error2v: (-0.000440725, -0.000576335, -0.00179728) max 0.001797\n\n    test 469 transform0: name='ITRF2020@2015xETRF2020@2020', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=1.29251327e-08, ry=7.80016732e-08, rz=-1.13170058e-07, s=0.0, sx=0.002666, sy=0.016089, sz=-0.023343\n    test 470 transform2c: (4027893.9574, 307045.5561, 4919474.9643)\n    test 471     Error2c: (-0.000024276, -0.000021815, -0.000013824) max 2.428e-05, epoched 5.0\n    test 472 transform2v: (0.01350, -0.01676, -0.01001)\n\n    test 473 transform0: name='-ITRF2014@2015xETRF2020@2020', tx=-0.0014, ty=-0.0014, tz=0.0024, s1=1.0, rx=-1.29251327e-08, ry=-7.80016732e-08, rz=1.13170058e-07, s=-0.00042, sx=-0.002666, sy=-0.016089, sz=0.023343\n    test 474 transform2c: (4027893.5358, 307046.0740, 4919475.2748)\n    test 475     Error2c: (0.000032643, -0.000007101, 0.000047684) max 4.768e-05, epoched 5.0\n    test 476 transform2v: (-0.01350, 0.01666, 0.01021)\n\n    test 477 transform0: name='ITRF2014@2015xETRF2014@2020', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=1.27748405e-08, ry=7.980518e-08, rz=-1.15725026e-07, s=0.0, sx=0.002635, sy=0.016461, sz=-0.02387\n    test 478 transform2c: (4027893.9639, 307045.5450, 4919474.9573)\n    test 479     Error2c: (0.000032525, 0.000026405, -0.000024305) max 3.253e-05, epoched 5.0\n    test 480 transform2v: (0.01381, -0.01706, -0.01024)\n\n    test 481 transform0: name='-ITRF2000@2015xETRF2014@2020', tx=0.0017, ty=0.0022, tz=-0.0451, s1=1.0, rx=-1.27748405e-08, ry=-7.980518e-08, rz=1.15725026e-07, s=0.00322, sx=-0.002635, sy=-0.016461, sz=0.02387\n    test 482 transform2c: (4027893.5504, 307046.0772, 4919475.2456)  FAILED, KNOWN, expected (4027893.5505, 307046.0772, 4919475.2456)\n    test 483     Error2c: (-0.00006262, -0.000037673, -0.000034945) max 6.262e-05, epoched 5.0\n    test 484 transform2v: (-0.01371, 0.01716, 0.00834)\n\n    test 485 transform0: name='ITRF2000@2015xETRF2000@2020', tx=0.054, ty=0.051, tz=-0.048, s1=1.0, rx=1.21736715e-08, ry=7.36431982e-08, rz=-1.19031455e-07, s=0.0, sx=0.002511, sy=0.01519, sz=-0.024552\n    test 486 transform2c: (4027894.0033, 307045.5889, 4919474.9047)\n    test 487     Error2c: (0.000034031, -0.000034106, 0.000010915) max 3.411e-05, epoched 5.0\n    test 488 transform2v: (0.01287, -0.01740, -0.00945)\n\n    test 489 transform0*: name='-ITRF2014@2010xITRF89-ITRF89@1989xETRF89@2010@2018.8', tx=-0.03128, ty=-0.0311, tz=0.15984, s1=0.999999991, rx=-1.58921925e-08, ry=-8.23504519e-08, rz=1.00463091e-07, s=-0.009246, sx=-0.003278, sy=-0.016986, sz=0.020722\n    test 490 transform2c: (4160476.4154, 653193.0567, 4774604.9029)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 491     Error2c: (-0.069560351, 0.035713888, 0.122930501) max 0.1229, epoched 29.8\n    test 492 transform2v: (-0.01148, 0.01996, 0.01845)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 493     Error2v: (-0.015479395, 0.016963959, 0.014448874) max 0.01696\n\n    test 494 transform0*: name='-ITRF2014@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 495 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 496     Error2c: (-0.014174475, 0.037834952, 0.023962617) max 0.03783, epoched 3.8\n    test 497 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 498     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 499 transform1*: name='-ITRF2014@2010xITRF2008@2015-ITRF2008@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 500 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 501     Error2c: (-0.014174475, 0.037834952, 0.023962617) max 0.03783, epoched 8.8\n    test 502 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 503     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 504 transform2*: name='-ITRF2014@2010xITRF97@2015-ITRF97@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 505 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 506     Error2c: (-0.014174475, 0.037834952, 0.023962617) max 0.03783, epoched 8.8\n    test 507 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 508     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 509 transform3*: name='-ITRF2014@2010xITRF93@2015-ITRF93@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 510 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 511     Error2c: (-0.014174475, 0.037834952, 0.023962617) max 0.03783, epoched 8.8\n    test 512 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 513     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 514 transform4*: name='-ITRF2014@2010xITRF92@2015-ITRF92@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 515 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 516     Error2c: (-0.014174475, 0.037834952, 0.023962617) max 0.03783, epoched 8.8\n./test/testTrf.py:136: DeprecationWarning: method L{convertRefFrame<pygeodesy.ellipsoidalKarney.LatLon.convertRefFrame>} has been DEPRECATED, use method L{toRefFrame}.\n  t = LatLon(0, 0, reframe=RefFrames.ITRF2000).convertRefFrame('ITRF2000')\n    test 517 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 518     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 519 transform5*: name='-ITRF2014@2010xITRF91@2015-ITRF91@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 520 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 521     Error2c: (-0.014174475, 0.037834952, 0.023962617) max 0.03783, epoched 8.8\n    test 522 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 523     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 524 transform6*: name='-ITRF2014@2010xITRF90@2015-ITRF90@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 525 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 526     Error2c: (-0.014174475, 0.037834952, 0.023962617) max 0.03783, epoched 8.8\n    test 527 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 528     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 529 transform7*: name='-ITRF2014@2010xITRF89@2015-ITRF89@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 530 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 531     Error2c: (-0.014174475, 0.037834952, 0.023962617) max 0.03783, epoched 8.8\n    test 532 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 533     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 534 transform8*: name='-ITRF2014@2010xITRF88@2015-ITRF88@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 535 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 536     Error2c: (-0.014174475, 0.037834952, 0.023962617) max 0.03783, epoched 8.8\n    test 537 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 538     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 539 toTransform: name='-ITRF2014@2010xITRF88@2015-ITRF88@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=1.0, rx=-1.1702e-08, ry=-7.0792e-08, rz=1.1442e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.023602\n    test 540 toTransform: name='-ITRF2014@2010xITRF88@2015-ITRF88@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=1.0, rx=-1.1702e-08, ry=-7.0792e-08, rz=1.1442e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.023602\n\n    test 541 Issue80: 48.77691577°N, 008.92257142°E, +476.05m\n    test 542 Issue80: 48.77692147°N, 008.92257868°E, +476.09m\n    test 543 Issue80: 48°46′36.915134″N, 008°55′21.285094″E, +476.10m  FAILED, KNOWN, expected 48°46′36.915134″N, 008°55′21.285094″E, +476.10\n    test 544 Issue80: 0.804  FAILED, KNOWN, expected 0.01\n    test 545 Issue80: [4160476.944064, 653192.600457, 4774604.455385]\n    test 546 Issue80: [4160476.415504, 653193.057171, 4774604.903316]\n    test 547 Issue80: [4160476.467901, 653193.103647, 4774604.868888]\n    test 548 Issue80: 48°46′36.915133″N, 008°55′21.285094″E, +476.10m\n\n    test 549 Issue80: 48.77692032°N, 008.92257804°E, +476.05m\n    test 550 Issue80: 48.77691971°N, 008.92257856°E, +476.06m\n    test 551 Issue80: 48°46′36.9315″N, 008°55′21.3089″E, +476.10m  FAILED, KNOWN, expected 48°46′36.9131″N, 008°55′21.28095″E, +476.05m\n    test 552 Issue80: 0.804  FAILED, KNOWN, expected 0.01\n    test 553 Issue80: [4160476.492633, 653193.021888, 4774604.78885]\n    test 554 Issue80: [4160476.54503, 653193.068365, 4774604.754422]\n    test 555 Issue80: [4160476.016469, 653193.525079, 4774605.202353]\n    test 556 Issue80: 48°46′36.9315″N, 008°55′21.3089″E, +476.10m\n\n    test 557 ITRF96@1997xNAD83: TRFXform(epoch=1997.0, name='ITRF96@1997xNAD83')\n    test 558 ITRF96@1997xNAD83: name='ITRF96@1997xNAD83', tx=0.991, ty=-0.19072, tz=-0.5129, s1=1.0, rx=1.2503e-07, ry=4.6785e-08, rz=5.6529e-08, s=0.0, sx=0.02579, sy=0.00965, sz=0.01166\n    test 559 ITRF96@1997xNAD83: name='ITRF96@1997xNAD83@2007', tx=0.991, ty=-0.19072, tz=-0.5129, s1=1.0, rx=1.2761e-07, ry=1.0797e-08, rz=5.4997e-08, s=0.0, sx=0.026322, sy=0.002227, sz=0.011344\n    test 560 ITRF96@1997xNAD83: rx=-2.5792e-10, ry=3.5988e-09, rz=1.532e-10\n\n    testTrf(pygeodesy.ellipsoidalKarney, 25.05.27)\n    test 561 convertRefFrame: 51.47787826°N, 000.00147125°W, -0.00m  FAILED, KNOWN, expected 51.47787826°N, 000.00147125°W\n    test 562 copy(<class 'type'>): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 563 RefFrame.copy(): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 564 toLatLon: 50.7978°N, 004.3592°E, +148.96m\n    test 565 convertRefFrame: [3980574.395, -102.214, 4966829.941]\n    test 566 Nil: True\n    test 567 copy(<class 'type'>): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 568 RefFrame.copy(): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 569 Nil: True\n    test 570 reframe: True\n    test 571 Roundtrip: True\n    test 572 reframe: True\n    test 573 copy(<class 'type'>): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 574 RefFrame.copy(): (<class 'pygeodesy.trf.RefFrame'>, True)\n\n    test 575 Geodetic: 23°40′12.44582″S, 133°53′07.84795″E, +603.34m\n    test 576 Cartesian: [-4052051.7614, 4212836.1945, -2545106.0147]\n    test 577 Geodetic: 23°40′12.44582″S, 133°53′07.84795″E, +603.34m\n    test 578 Cartesian: [-4052051.7614, 4212836.1945, -2545106.0147]\n    test 579 Roundtrip: 23°40′12.41482″S, 133°53′07.86712″E, +603.26m\n    test 580 GNSStrans: [3370658.18892, 711877.42369, 5349787.1243]\n    test 581 Cartesian: [-734972.563, 4893188.492, 4011982.811]\n\n    test 582 EUREF EX1: [4027894.0444, 307045.6209, 4919474.8613]\n    test 583 transform0: ITRF2005@2015xETRF2020-ITRF91@2015xETRF2020@2007 max 9.3132e-10, epoched 8.0\n    test 584 transform1: ITRF2005@2015xETRF2014-ITRF91@2015xETRF2014@2007 max 0.048666, epoched 8.0\n    test 585 transform2: ITRF2005@2015xETRF2000-ITRF91@2015xETRF2000@2007 max 0.097331, epoched 8.0\n    test 586 transform3: ITRF2005@2000xITRF2000+ITRF2000@1988xITRF91@2000@2007 max 0.146, epoched 19.0\n    test 587 transform4: -ITRF2020@2015xITRF2005+ITRF2020@2015xITRF91@2007 max 0.19466, epoched 8.0\n    test 588 transform5: -ITRF2014@2010xITRF2005+ITRF2014@2010xITRF91@2007 max 0.24333, epoched 3.0\n    test 589 transform6: -ITRF2008@2005xITRF2005+ITRF2008@2000xITRF91@2005@2007 max 0.29199, epoched 7.0\n    test 590 transform7: ITRF2000@1988xITRF91+ITRF2005@2000xITRF2000@1988@2007 max 0.34066, epoched 31.0\n    test 591 transform8: ITRF2014@2010xITRF91-ITRF2014@2020xGDA2020@2010+ITRF2005@2020xGDA2020@2010@2007 max 0.98111, epoched 23.0\n    test 592 transform9: ITRF2008@2000xITRF91-ITRF2008@1994xGDA94@2000+ITRF2005@1994xGDA94@2000@2007 max 0.35972, epoched 19.0\n    test 593 transform10: ITRF2008@2000xITRF91-ITRF2008@1997xNAD83@2000+ITRF2005@1997xNAD83@2000@2007 max 0.40805, epoched 13.0\n    test 594 EUREF EX2: [4027894.0060, 307045.6000, 4919474.9100]\n    test 595 transform0: ITRF91@2015xETRF2020-ITRF2005@2015xETRF2020@2007 max 0.048666, epoched 8.0\n    test 596 transform1: ITRF91@2015xETRF2014-ITRF2005@2015xETRF2014@2007 max 1.8626e-09, epoched 8.0\n    test 597 transform2: ITRF91@2015xETRF2000-ITRF2005@2015xETRF2000@2007 max 0.048666, epoched 8.0\n    test 598 transform3: -ITRF2005@2000xITRF2000-ITRF2000@1988xITRF91@2000@2007 max 0.097331, epoched 19.0\n    test 599 EUREF EX4: [4027894.3559, 307045.2508, 4919474.6447]\n    test 600 transform0: -ITRF2000@2015xETRF2000@2012 max 4.5169e-08, epoched 3.0\n    test 601 transform1: -ITRF2000@1997xITRF97@2015-ITRF97@2015xETRF2000@2012 max 0.35826, epoched 21.0\n    test 602 transform2: -ITRF2000@1997xITRF96@2015-ITRF96@2015xETRF2000@2012 max 0.7048, epoched 21.0\n    test 603 transform3: -ITRF2000@1988xITRF93@2015-ITRF93@2015xETRF2000@2012 max 1.054, epoched 30.0\n    test 604 transform4: -ITRF2000@1988xITRF92@2015-ITRF92@2015xETRF2000@2012 max 1.4023, epoched 30.0\n    test 605 transform5: -ITRF2000@1988xITRF91@2015-ITRF91@2015xETRF2000@2012 max 1.7514, epoched 30.0\n    test 606 transform6: -ITRF2000@1988xITRF90@2015-ITRF90@2015xETRF2000@2012 max 2.1088, epoched 30.0\n    test 607 transform7: -ITRF2000@1988xITRF89@2015-ITRF89@2015xETRF2000@2012 max 2.4877, epoched 30.0\n    test 608 transform8: -ITRF2000@1988xITRF88@2015-ITRF88@2015xETRF2000@2012 max 2.8343, epoched 30.0\n    test 609 EUREF EX5: [4027893.6458, 307045.9470, 4919475.1937]  FAILED, KNOWN, expected [4027894.3662, 307045.2530, 4919474.6263]\n    test 610 transform0: ITRF2014@2015xETRF2000@2012 max 4.5169e-08, epoched 3.0\n    test 611 transform1: ITRF2014@2010xITRF2008@2015+ITRF2008@2015xETRF2000@2012 max 0.36023, epoched 8.0\n    test 612 transform2: ITRF2014@2010xITRF97@2015+ITRF97@2015xETRF2000@2012 max 0.72047, epoched 8.0\n    test 613 transform3: ITRF2014@2010xITRF93@2015+ITRF93@2015xETRF2000@2012 max 1.0807, epoched 8.0\n    test 614 transform4: ITRF2014@2010xITRF92@2015+ITRF92@2015xETRF2000@2012 max 1.4409, epoched 8.0\n    test 615 transform5: ITRF2014@2010xITRF91@2015+ITRF91@2015xETRF2000@2012 max 1.8012, epoched 8.0\n    test 616 transform6: ITRF2014@2010xITRF90@2015+ITRF90@2015xETRF2000@2012 max 2.1614, epoched 8.0\n    test 617 transform7: ITRF2014@2010xITRF89@2015+ITRF89@2015xETRF2000@2012 max 2.5216, epoched 8.0\n    test 618 transform8: ITRF2014@2010xITRF88@2015+ITRF88@2015xETRF2000@2012 max 2.8819, epoched 8.0\n\n    test 619 Case 1A: [4027893.9619, 307045.5481, 4919474.9553]\n    test 620 Case 1B: [4027894.0054, 307045.5938, 4919474.9083]\n    test 621 Case 2A: [4027893.9639, 307045.545, 4919474.9573]\n    test 622 Case 2B: [4027894.0033, 307045.5889, 4919474.9041]\n\n    test 623 TypeError: type(reframe) ('ITRF2000'): not a RefFrame\n    test 624 TRFError: epoch (1899): below 1900.0 limit\n    test 625 TypeError: type(reframe2) ('ITRF2000'): not a RefFrame\n    test 626 TRFError: no conversion: LatLon(00°00′00.0″N, 000°00′00.0″E).reframe MISSING\n    test 627 TypeError: type(reframe2) ('ITRF2000'): not a RefFrame\n    test 628 TypeError: type(reframe) ('ITRF2000'): not a RefFrame\n\n    test 629 ETRF89@1989: [4160476.944000, 653192.600000, 4774604.455000]\n    test 630 ITRF2014@2018.8: [4160476.415, 653193.057, 4774604.903]  FAILED, KNOWN, expected [4160476.485, 653193.021, 4774604.78]\n    test 631 TransformXform: -ITRF2014@2010xITRF89-ITRF89@1989xETRF89@2010@2018.8\n    test 632 Delta (m): [-0.06956, 0.035714, 0.122931]  FAILED, KNOWN, expected [0.01, 0.01, 0.01]\n    test 633 Error (m): 0.145692  FAILED, KNOWN, expected 0.01\n    test 634 Epoch range: 29.800  FAILED, KNOWN, expected 14.0\n    test 635 ETRF89@1989: [4160476.467836, 653193.103190, 4774604.868503]  FAILED, KNOWN, expected [4160476.944000, 653192.600000, 4774604.455000]\n    test 636 TransformXform: ITRF2014@2010xITRF89+ITRF89@1989xETRF89@2010@1989\n\n    test 637 inverse: -ITRF2014@2010xITRF89-ITRF89@1989xETRF89@2010@1989\n    test 638 inverse: ITRF2014@2010xITRF89+ITRF89@1989xETRF89@2010@1989\n    test 639 inverse: name='ITRF2014@2010xITRF89+ITRF89@1989xETRF89@2010@1989', tx=0.0283, ty=0.046, tz=-0.0615, s1=1.0, rx=0.0, ry=0.0, rz=-7.757e-10, s=0.00567, sx=0.0, sy=0.0, sz=-0.00016\n\n    test 640 ETRF2000@2000: [4160476.952000, 653192.582000, 4774604.441000]\n    test 641 ITRF2014@2018.8: [4160476.471, 653193.059, 4774604.804]  FAILED, KNOWN, expected [4160476.485, 653193.021, 4774604.78]\n    test 642 TransformXform: -ITRF2014@2015xETRF2000@2018.8\n    test 643 Delta (m): [-0.014174, 0.037835, 0.023963]  FAILED, KNOWN, expected [0.01, 0.01, 0.01]\n    test 644 Error (m): 0.046975  FAILED, KNOWN, expected 0.01\n    test 645 Epoch range: 18.800  FAILED, KNOWN, expected 14.0\n    test 646 ETRF2000@2000: [4160476.681125, 653192.914350, 4774604.647835]  FAILED, KNOWN, expected [4160476.952000, 653192.582000, 4774604.441000]\n    test 647 TransformXform: ITRF2014@2015xETRF2000@2000\n\n    test 648 inverse: -ITRF2014@2015xETRF2000@2000\n    test 649 inverse: ITRF2014@2015xETRF2000@2000\n    test 650 inverse: name='ITRF2014@2015xETRF2000@2000', tx=0.0537, ty=0.0512, tz=-0.0551, s1=1.0, rx=4.3197e-09, ry=2.6131e-08, rz=-4.2237e-08, s=0.00102, sx=0.000891, sy=0.00539, sz=-0.008712\n\n    test 651 ITRF2008@2005: [4160476.674000, 653192.806000, 4774604.648000]\n    test 652 ITRF2014@2018.8: [4160476.671, 653192.804, 4774604.645]  FAILED, KNOWN, expected [4160476.485, 653193.021, 4774604.78]\n    test 653 TransformXform: -ITRF2014@2010xITRF2008@2018.8\n    test 654 Delta (m): [0.186385, -0.217059, -0.134685]  FAILED, KNOWN, expected [0.01, 0.01, 0.01]\n    test 655 Error (m): 0.316218  FAILED, KNOWN, expected 0.01\n    test 656 Epoch range: 13.800  FAILED, KNOWN, expected 14.0\n    test 657 ITRF2008@2005: [4160476.672278, 653192.805730, 4774604.647403]  FAILED, KNOWN, expected [4160476.674000, 653192.806000, 4774604.648000]\n    test 658 TransformXform: ITRF2014@2010xITRF2008@2005\n\n    test 659 inverse: -ITRF2014@2010xITRF2008@2005\n    test 660 inverse: ITRF2014@2010xITRF2008@2005\n    test 661 inverse: name='ITRF2014@2010xITRF2008@2005', tx=0.0016, ty=0.0019, tz=0.0029, s1=1.0, rx=0.0, ry=0.0, rz=0.0, s=-0.00017, sx=0.0, sy=0.0, sz=0.0\n\n    test 662 toRefFrame1: ITRF2020@2015 2024.31 [0.0031474, 0.00210534, -0.00125667]\n    test 663 toRefFrame2: ITRF2014@2010 2024.32 [0.0031474, 0.00210634, -0.00125867]\n    test 664 transform0: -ITRF2020@2015xITRF2014@2010\n    test 665 transform0X: TRFXform(epoch=2010.0, name='-ITRF2020@2015xITRF2014@2010')\n    test 666 toRefFrame3: ITRF2020@2015 2010 [0.0031474, 0.00067434, 0.00160533]\n    test 667 transform2x: (4160476.488147, 653193.021674, 4774604.781605)\n    test 668 transform2v: (0.000, 0.000, 0.000)  FAILED, KNOWN, expected (0.004, 0.003, 0.004)\n\n    test 669 transform0: name='ITRF2020@2015xETRF2020@2010', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=8.75573508e-09, ry=5.28398431e-08, rz=-7.66635874e-08, s=0.0, sx=0.001806, sy=0.010899, sz=-0.015813\n    test 670 transform2c: (4027893.9585, 307045.5550, 4919474.9620)  FAILED, KNOWN, expected (4027893.9585, 307045.5550, 4919474.9619)\n    test 671     Error2c: (-0.000016463, 0.0000336, 0.000055143) max 5.514e-05, epoched 5.0\n    test 672 transform2v: (-0.00011, 0.00010, 0.00023)  FAILED, KNOWN, expected (0.00011, 0.00011, 0.00024)\n    test 673     Error2v: (-0.000220786, -0.000005544, -0.000006899) max 0.0002208\n    test 674 transform0v: (0.00009, 0.00052, -0.00075)  FAILED, KNOWN, expected (0.00011, 0.00011, 0.00024)\n    test 675     Error0v: (-0.000024, 0.000409, -0.000993) max 0.000993\n\n    test 676 transform0: name='-ITRF2014@2015xETRF2020@2010', tx=-0.0014, ty=-0.0004, tz=0.0004, s1=1.0, rx=-8.75573508e-09, ry=-5.28398431e-08, rz=7.66635874e-08, s=-0.00042, sx=-0.001806, sy=-0.010899, sz=0.015813\n    test 677 transform2c: (4027893.6719, 307045.9063, 4919475.1704)  FAILED, KNOWN, expected (4027893.6719, 307045.9064, 4919475.1704)\n    test 678     Error2c: (0.000024786, -0.000062539, -0.000021304) max 6.254e-05, epoched 5.0\n    test 679 transform2v: (-0.01339, 0.01677, 0.01045)  FAILED, KNOWN, expected (-0.01361, 0.01676, 0.01044)\n    test 680     Error2v: (0.000220784, 0.000005543, 0.000006898) max 0.0002208\n    test 681 transform0v: (-0.00009, -0.00052, 0.00075)  FAILED, KNOWN, expected (-0.01361, 0.01676, 0.01044)\n    test 682     Error0v: (0.013524, -0.017279, -0.009687) max 0.01728\n\n    test 683 transform0: name='ITRF2014@2015xETRF2014@2010', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=8.65392421e-09, ry=5.40615736e-08, rz=-7.83943722e-08, s=0.0, sx=0.001785, sy=0.011151, sz=-0.01617\n    test 684 transform2c: (4027893.9619, 307045.5481, 4919474.9553)  FAILED, KNOWN, expected (4027893.9620, 307045.5480, 4919474.9553)\n    test 685     Error2c: (-0.00007476, 0.000063039, 0.000002882) max 7.476e-05, epoched 5.0\n    test 686 transform2v: (0.00020, -0.00030, 0.00020)\n    test 687     Error2v: (0.000000724, -0.000003666, -0.000002721) max 3.666e-06\n    test 688 transform0v: (0.00009, 0.00053, -0.00077)  FAILED, KNOWN, expected (0.00020, -0.00030, 0.00020)\n    test 689     Error0v: (-0.000115, 0.000831, -0.00097) max 0.00097\n\n    test 690 transform0: name='-ITRF2000@2015xETRF2014@2010', tx=0.0007, ty=0.0012, tz=-0.0261, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 691 transform2c: (4027893.6812, 307045.9082, 4919475.1547)\n    test 692     Error2c: (0.000013934, -0.000012081, 0.000026423) max 2.642e-05, epoched 5.0\n    test 693 transform2v: (-0.01351, 0.01686, 0.00854)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 694     Error2v: (-0.000440726, -0.000036335, -0.00053728) max 0.0005373\n    test 695 transform0v: (-0.00008, -0.00053, 0.00077)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 696     Error0v: (0.012985, -0.017431, -0.00831) max 0.01743\n\n    test 697 transform0: name='ITRF2000@2015xETRF2000@2010', tx=0.054, ty=0.051, tz=-0.048, s1=1.0, rx=8.24668072e-09, ry=4.98873278e-08, rz=-8.06342114e-08, s=0.0, sx=0.001701, sy=0.01029, sz=-0.016632\n    test 698 transform2c: (4027894.0054, 307045.5938, 4919474.9083)  FAILED, KNOWN, expected (4027894.0053, 307045.5939, 4919474.9083)\n    test 699     Error2c: (0.000077874, -0.000055372, -0.000008743) max 7.787e-05, epoched 5.0\n    test 700 transform2v: (-0.00020, -0.00050, -0.00037)  FAILED, KNOWN, expected (-0.00020, -0.00050, -0.00036)\n    test 701     Error2v: (-0.000004389, 0.000002124, -0.000008036) max 8.036e-06\n    test 702 transform0v: (0.00008, 0.00049, -0.00079)  FAILED, KNOWN, expected (-0.00020, -0.00050, -0.00036)\n    test 703     Error0v: (0.000281, 0.00099, -0.000432) max 0.00099\n\n    test 704 transform0/: name='-ITRF2000@2015xETRF2014@2010', tx=0.0007, ty=0.0012, tz=-0.0261, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 705 transform2c: (4027893.6812, 307045.9082, 4919475.1547)\n    test 706     Error2c: (0.000013934, -0.000012081, 0.000026423) max 2.642e-05, epoched 5.0\n    test 707 transform2v: (-0.01351, 0.01686, 0.00854)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 708     Error2v: (-0.000440726, -0.000036335, -0.00053728) max 0.0005373\n\n    test 709 transform1/: name='-ITRF2000@1997xITRF97@2015-ITRF97@2015xETRF2014@2010', tx=0.00673, ty=-0.00033, tz=-0.05913, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=8.09154034e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01669\n    test 710 transform2c: (4027893.6865, 307045.9168, 4919475.1217)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 711     Error2c: (0.005269863, 0.008612365, -0.033003577) max 0.033, epoched 23.0\n    test 712 transform2v: (-0.01357, 0.01710, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 713     Error2v: (-0.00050027, 0.000204776, -0.00179728) max 0.001797\n\n    test 714 transform2/: name='-ITRF2000@1997xITRF96@2015-ITRF96@2015xETRF2014@2010', tx=0.00673, ty=-0.00033, tz=-0.05913, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 715 transform2c: (4027893.6872, 307045.9067, 4919475.1217)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 716     Error2c: (0.006043935, -0.001542081, -0.033003577) max 0.033, epoched 23.0\n    test 717 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 718     Error2v: (-0.000440726, -0.000576335, -0.00179728) max 0.001797\n\n    test 719 transform3/: name='-ITRF2000@1988xITRF93@2015-ITRF93@2015xETRF2014@2010', tx=0.0007, ty=0.0012, tz=-0.0261, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 720 transform2c: (4027893.6812, 307045.9082, 4919475.1547)\n    test 721     Error2c: (0.000013934, -0.000012081, 0.000026423) max 2.642e-05, epoched 32.0\n    test 722 transform2v: (-0.01351, 0.01686, 0.00854)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 723     Error2v: (-0.000440726, -0.000036335, -0.00053728) max 0.0005373\n\n    test 724 transform4/: name='-ITRF2000@1988xITRF92@2015-ITRF92@2015xETRF2014@2010', tx=0.01393, ty=0.00147, tz=-0.06633, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 725 transform2c: (4027893.6944, 307045.9085, 4919475.1145)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 726     Error2c: (0.013243935, 0.000257919, -0.040203577) max 0.0402, epoched 32.0\n    test 727 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 728     Error2v: (-0.000440726, -0.000576335, -0.00179728) max 0.001797\n\n    test 729 transform5/: name='-ITRF2000@1988xITRF91@2015-ITRF91@2015xETRF2014@2010', tx=0.0007, ty=0.0012, tz=-0.0261, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 730 transform2c: (4027893.6812, 307045.9082, 4919475.1547)\n    test 731     Error2c: (0.000013934, -0.000012081, 0.000026423) max 2.642e-05, epoched 32.0\n    test 732 transform2v: (-0.01351, 0.01686, 0.00854)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 733     Error2v: (-0.000440726, -0.000036335, -0.00053728) max 0.0005373\n\n    test 734 transform6/: name='-ITRF2000@1988xITRF90@2015-ITRF90@2015xETRF2014@2010', tx=0.02293, ty=0.01047, tz=-0.08613, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 735 transform2c: (4027893.7034, 307045.9175, 4919475.0947)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 736     Error2c: (0.022243935, 0.009257919, -0.060003577) max 0.06, epoched 32.0\n    test 737 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 738     Error2v: (-0.000440726, -0.000576335, -0.00179728) max 0.001797\n\n    test 739 transform7/: name='-ITRF2000@1988xITRF89@2015-ITRF89@2015xETRF2014@2010', tx=0.02743, ty=0.03207, tz=-0.12033, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 740 transform2c: (4027893.7079, 307045.9391, 4919475.0605)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 741     Error2c: (0.026743934, 0.030857919, -0.094203576) max 0.0942, epoched 32.0\n    test 742 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 743     Error2v: (-0.000440726, -0.000576335, -0.00179728) max 0.001797\n\n    test 744 transform8/: name='-ITRF2000@1988xITRF88@2015-ITRF88@2015xETRF2014@2010', tx=0.02293, ty=-0.00033, tz=-0.14193, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 745 transform2c: (4027893.7034, 307045.9067, 4919475.0389)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 746     Error2c: (0.022243935, -0.001542081, -0.115803577) max 0.1158, epoched 32.0\n    test 747 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 748     Error2v: (-0.000440725, -0.000576335, -0.00179728) max 0.001797\n\n    test 749 transform0: name='ITRF2020@2015xETRF2020@2020', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=1.29251327e-08, ry=7.80016732e-08, rz=-1.13170058e-07, s=0.0, sx=0.002666, sy=0.016089, sz=-0.023343\n    test 750 transform2c: (4027893.9574, 307045.5561, 4919474.9643)\n    test 751     Error2c: (-0.000024276, -0.000021815, -0.000013824) max 2.428e-05, epoched 5.0\n    test 752 transform2v: (0.01350, -0.01676, -0.01001)\n\n    test 753 transform0: name='-ITRF2014@2015xETRF2020@2020', tx=-0.0014, ty=-0.0014, tz=0.0024, s1=1.0, rx=-1.29251327e-08, ry=-7.80016732e-08, rz=1.13170058e-07, s=-0.00042, sx=-0.002666, sy=-0.016089, sz=0.023343\n./test/testTrf.py:29: DeprecationWarning: method L{convertRefFrame<pygeodesy.ellipsoidalExact.LatLon.convertRefFrame>} has been DEPRECATED, use method L{toRefFrame}.\n  x = p.convertRefFrame(RefFrames.ETRF2000)\n./test/testTrf.py:136: DeprecationWarning: method L{convertRefFrame<pygeodesy.ellipsoidalExact.LatLon.convertRefFrame>} has been DEPRECATED, use method L{toRefFrame}.\n  t = LatLon(0, 0, reframe=RefFrames.ITRF2000).convertRefFrame('ITRF2000')\n    test 754 transform2c: (4027893.5358, 307046.0740, 4919475.2748)\n    test 755     Error2c: (0.000032643, -0.000007101, 0.000047684) max 4.768e-05, epoched 5.0\n    test 756 transform2v: (-0.01350, 0.01666, 0.01021)\n\n    test 757 transform0: name='ITRF2014@2015xETRF2014@2020', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=1.27748405e-08, ry=7.980518e-08, rz=-1.15725026e-07, s=0.0, sx=0.002635, sy=0.016461, sz=-0.02387\n    test 758 transform2c: (4027893.9639, 307045.5450, 4919474.9573)\n    test 759     Error2c: (0.000032525, 0.000026405, -0.000024305) max 3.253e-05, epoched 5.0\n    test 760 transform2v: (0.01381, -0.01706, -0.01024)\n\n    test 761 transform0: name='-ITRF2000@2015xETRF2014@2020', tx=0.0017, ty=0.0022, tz=-0.0451, s1=1.0, rx=-1.27748405e-08, ry=-7.980518e-08, rz=1.15725026e-07, s=0.00322, sx=-0.002635, sy=-0.016461, sz=0.02387\n    test 762 transform2c: (4027893.5504, 307046.0772, 4919475.2456)  FAILED, KNOWN, expected (4027893.5505, 307046.0772, 4919475.2456)\n    test 763     Error2c: (-0.00006262, -0.000037673, -0.000034945) max 6.262e-05, epoched 5.0\n    test 764 transform2v: (-0.01371, 0.01716, 0.00834)\n\n    test 765 transform0: name='ITRF2000@2015xETRF2000@2020', tx=0.054, ty=0.051, tz=-0.048, s1=1.0, rx=1.21736715e-08, ry=7.36431982e-08, rz=-1.19031455e-07, s=0.0, sx=0.002511, sy=0.01519, sz=-0.024552\n    test 766 transform2c: (4027894.0033, 307045.5889, 4919474.9047)\n    test 767     Error2c: (0.000034031, -0.000034106, 0.000010915) max 3.411e-05, epoched 5.0\n    test 768 transform2v: (0.01287, -0.01740, -0.00945)\n\n    test 769 transform0*: name='-ITRF2014@2010xITRF89-ITRF89@1989xETRF89@2010@2018.8', tx=-0.03128, ty=-0.0311, tz=0.15984, s1=0.999999991, rx=-1.58921925e-08, ry=-8.23504519e-08, rz=1.00463091e-07, s=-0.009246, sx=-0.003278, sy=-0.016986, sz=0.020722\n    test 770 transform2c: (4160476.4154, 653193.0567, 4774604.9029)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 771     Error2c: (-0.069560351, 0.035713888, 0.122930501) max 0.1229, epoched 29.8\n    test 772 transform2v: (-0.01148, 0.01996, 0.01845)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 773     Error2v: (-0.015479395, 0.016963959, 0.014448874) max 0.01696\n\n    test 774 transform0*: name='-ITRF2014@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 775 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 776     Error2c: (-0.014174475, 0.037834952, 0.023962617) max 0.03783, epoched 3.8\n    test 777 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 778     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 779 transform1*: name='-ITRF2014@2010xITRF2008@2015-ITRF2008@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 780 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 781     Error2c: (-0.014174475, 0.037834952, 0.023962617) max 0.03783, epoched 8.8\n    test 782 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 783     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 784 transform2*: name='-ITRF2014@2010xITRF97@2015-ITRF97@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 785 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 786     Error2c: (-0.014174475, 0.037834952, 0.023962617) max 0.03783, epoched 8.8\n    test 787 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 788     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 789 transform3*: name='-ITRF2014@2010xITRF93@2015-ITRF93@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 790 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 791     Error2c: (-0.014174475, 0.037834952, 0.023962617) max 0.03783, epoched 8.8\n    test 792 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 793     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 794 transform4*: name='-ITRF2014@2010xITRF92@2015-ITRF92@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 795 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 796     Error2c: (-0.014174475, 0.037834952, 0.023962617) max 0.03783, epoched 8.8\n    test 797 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 798     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 799 transform5*: name='-ITRF2014@2010xITRF91@2015-ITRF91@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 800 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 801     Error2c: (-0.014174475, 0.037834952, 0.023962617) max 0.03783, epoched 8.8\n    test 802 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 803     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 804 transform6*: name='-ITRF2014@2010xITRF90@2015-ITRF90@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 805 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 806     Error2c: (-0.014174475, 0.037834952, 0.023962617) max 0.03783, epoched 8.8\n    test 807 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 808     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 809 transform7*: name='-ITRF2014@2010xITRF89@2015-ITRF89@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 810 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 811     Error2c: (-0.014174475, 0.037834952, 0.023962617) max 0.03783, epoched 8.8\n    test 812 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 813     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 814 transform8*: name='-ITRF2014@2010xITRF88@2015-ITRF88@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 815 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 816     Error2c: (-0.014174475, 0.037834952, 0.023962617) max 0.03783, epoched 8.8\n    test 817 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 818     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 819 toTransform: name='-ITRF2014@2010xITRF88@2015-ITRF88@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=1.0, rx=-1.1702e-08, ry=-7.0792e-08, rz=1.1442e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.023602\n    test 820 toTransform: name='-ITRF2014@2010xITRF88@2015-ITRF88@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=1.0, rx=-1.1702e-08, ry=-7.0792e-08, rz=1.1442e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.023602\n\n    test 821 Issue80: 48.77691577°N, 008.92257142°E, +476.05m\n    test 822 Issue80: 48.77692147°N, 008.92257868°E, +476.09m\n    test 823 Issue80: 48°46′36.915133″N, 008°55′21.285094″E, +476.10m  FAILED, KNOWN, expected 48°46′36.915134″N, 008°55′21.285094″E, +476.10\n    test 824 Issue80: 0.804  FAILED, KNOWN, expected 0.01\n    test 825 Issue80: [4160476.944064, 653192.600457, 4774604.455385]\n    test 826 Issue80: [4160476.415504, 653193.057171, 4774604.903316]\n    test 827 Issue80: [4160476.467901, 653193.103647, 4774604.868888]\n    test 828 Issue80: 48°46′36.915133″N, 008°55′21.285094″E, +476.10m\n\n    test 829 Issue80: 48.77692032°N, 008.92257804°E, +476.05m\n    test 830 Issue80: 48.77691971°N, 008.92257856°E, +476.06m\n    test 831 Issue80: 48°46′36.9315″N, 008°55′21.3089″E, +476.10m  FAILED, KNOWN, expected 48°46′36.9131″N, 008°55′21.28095″E, +476.05m\n    test 832 Issue80: 0.804  FAILED, KNOWN, expected 0.01\n    test 833 Issue80: [4160476.492633, 653193.021888, 4774604.78885]\n    test 834 Issue80: [4160476.54503, 653193.068365, 4774604.754422]\n    test 835 Issue80: [4160476.016469, 653193.525079, 4774605.202353]\n    test 836 Issue80: 48°46′36.9315″N, 008°55′21.3089″E, +476.10m\n\n    test 837 ITRF96@1997xNAD83: TRFXform(epoch=1997.0, name='ITRF96@1997xNAD83')\n    test 838 ITRF96@1997xNAD83: name='ITRF96@1997xNAD83', tx=0.991, ty=-0.19072, tz=-0.5129, s1=1.0, rx=1.2503e-07, ry=4.6785e-08, rz=5.6529e-08, s=0.0, sx=0.02579, sy=0.00965, sz=0.01166\n    test 839 ITRF96@1997xNAD83: name='ITRF96@1997xNAD83@2007', tx=0.991, ty=-0.19072, tz=-0.5129, s1=1.0, rx=1.2761e-07, ry=1.0797e-08, rz=5.4997e-08, s=0.0, sx=0.026322, sy=0.002227, sz=0.011344\n    test 840 ITRF96@1997xNAD83: rx=-2.5792e-10, ry=3.5988e-09, rz=1.532e-10\n\n    testTrf(pygeodesy.ellipsoidalExact, 25.08.28)\n    test 841 convertRefFrame: 51.47787826°N, 000.00147125°W, -0.00m  FAILED, KNOWN, expected 51.47787826°N, 000.00147125°W\n    test 842 copy(<class 'type'>): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 843 RefFrame.copy(): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 844 toLatLon: 50.7978°N, 004.3592°E, +148.96m\n    test 845 convertRefFrame: [3980574.395, -102.214, 4966829.941]\n    test 846 Nil: True\n    test 847 copy(<class 'type'>): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 848 RefFrame.copy(): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 849 Nil: True\n    test 850 reframe: True\n    test 851 Roundtrip: True\n    test 852 reframe: True\n    test 853 copy(<class 'type'>): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 854 RefFrame.copy(): (<class 'pygeodesy.trf.RefFrame'>, True)\n\n    test 855 Geodetic: 23°40′12.44582″S, 133°53′07.84795″E, +603.34m\n    test 856 Cartesian: [-4052051.7614, 4212836.1945, -2545106.0147]\n    test 857 Geodetic: 23°40′12.44582″S, 133°53′07.84795″E, +603.34m\n    test 858 Cartesian: [-4052051.7614, 4212836.1945, -2545106.0147]\n    test 859 Roundtrip: 23°40′12.41482″S, 133°53′07.86712″E, +603.26m\n    test 860 GNSStrans: [3370658.18892, 711877.42369, 5349787.1243]\n    test 861 Cartesian: [-734972.563, 4893188.492, 4011982.811]\n\n    test 862 EUREF EX1: [4027894.0444, 307045.6209, 4919474.8613]\n    test 863 transform0: ITRF2005@2015xETRF2020-ITRF91@2015xETRF2020@2007 max 9.3132e-10, epoched 8.0\n    test 864 transform1: ITRF2005@2015xETRF2014-ITRF91@2015xETRF2014@2007 max 0.048666, epoched 8.0\n    test 865 transform2: ITRF2005@2015xETRF2000-ITRF91@2015xETRF2000@2007 max 0.097331, epoched 8.0\n    test 866 transform3: ITRF2005@2000xITRF2000+ITRF2000@1988xITRF91@2000@2007 max 0.146, epoched 19.0\n    test 867 transform4: -ITRF2020@2015xITRF2005+ITRF2020@2015xITRF91@2007 max 0.19466, epoched 8.0\n    test 868 transform5: -ITRF2014@2010xITRF2005+ITRF2014@2010xITRF91@2007 max 0.24333, epoched 3.0\n    test 869 transform6: -ITRF2008@2005xITRF2005+ITRF2008@2000xITRF91@2005@2007 max 0.29199, epoched 7.0\n    test 870 transform7: ITRF2000@1988xITRF91+ITRF2005@2000xITRF2000@1988@2007 max 0.34066, epoched 31.0\n    test 871 transform8: ITRF2014@2010xITRF91-ITRF2014@2020xGDA2020@2010+ITRF2005@2020xGDA2020@2010@2007 max 0.98111, epoched 23.0\n    test 872 transform9: ITRF2008@2000xITRF91-ITRF2008@1994xGDA94@2000+ITRF2005@1994xGDA94@2000@2007 max 0.35972, epoched 19.0\n    test 873 transform10: ITRF2008@2000xITRF91-ITRF2008@1997xNAD83@2000+ITRF2005@1997xNAD83@2000@2007 max 0.40805, epoched 13.0\n    test 874 EUREF EX2: [4027894.0060, 307045.6000, 4919474.9100]\n    test 875 transform0: ITRF91@2015xETRF2020-ITRF2005@2015xETRF2020@2007 max 0.048666, epoched 8.0\n    test 876 transform1: ITRF91@2015xETRF2014-ITRF2005@2015xETRF2014@2007 max 1.8626e-09, epoched 8.0\n    test 877 transform2: ITRF91@2015xETRF2000-ITRF2005@2015xETRF2000@2007 max 0.048666, epoched 8.0\n    test 878 transform3: -ITRF2005@2000xITRF2000-ITRF2000@1988xITRF91@2000@2007 max 0.097331, epoched 19.0\n    test 879 EUREF EX4: [4027894.3559, 307045.2508, 4919474.6447]\n    test 880 transform0: -ITRF2000@2015xETRF2000@2012 max 4.5169e-08, epoched 3.0\n    test 881 transform1: -ITRF2000@1997xITRF97@2015-ITRF97@2015xETRF2000@2012 max 0.35826, epoched 21.0\n    test 882 transform2: -ITRF2000@1997xITRF96@2015-ITRF96@2015xETRF2000@2012 max 0.7048, epoched 21.0\n    test 883 transform3: -ITRF2000@1988xITRF93@2015-ITRF93@2015xETRF2000@2012 max 1.054, epoched 30.0\n    test 884 transform4: -ITRF2000@1988xITRF92@2015-ITRF92@2015xETRF2000@2012 max 1.4023, epoched 30.0\n    test 885 transform5: -ITRF2000@1988xITRF91@2015-ITRF91@2015xETRF2000@2012 max 1.7514, epoched 30.0\n    test 886 transform6: -ITRF2000@1988xITRF90@2015-ITRF90@2015xETRF2000@2012 max 2.1088, epoched 30.0\n    test 887 transform7: -ITRF2000@1988xITRF89@2015-ITRF89@2015xETRF2000@2012 max 2.4877, epoched 30.0\n    test 888 transform8: -ITRF2000@1988xITRF88@2015-ITRF88@2015xETRF2000@2012 max 2.8343, epoched 30.0\n    test 889 EUREF EX5: [4027893.6458, 307045.9470, 4919475.1937]  FAILED, KNOWN, expected [4027894.3662, 307045.2530, 4919474.6263]\n    test 890 transform0: ITRF2014@2015xETRF2000@2012 max 4.5169e-08, epoched 3.0\n    test 891 transform1: ITRF2014@2010xITRF2008@2015+ITRF2008@2015xETRF2000@2012 max 0.36023, epoched 8.0\n    test 892 transform2: ITRF2014@2010xITRF97@2015+ITRF97@2015xETRF2000@2012 max 0.72047, epoched 8.0\n    test 893 transform3: ITRF2014@2010xITRF93@2015+ITRF93@2015xETRF2000@2012 max 1.0807, epoched 8.0\n    test 894 transform4: ITRF2014@2010xITRF92@2015+ITRF92@2015xETRF2000@2012 max 1.4409, epoched 8.0\n    test 895 transform5: ITRF2014@2010xITRF91@2015+ITRF91@2015xETRF2000@2012 max 1.8012, epoched 8.0\n    test 896 transform6: ITRF2014@2010xITRF90@2015+ITRF90@2015xETRF2000@2012 max 2.1614, epoched 8.0\n    test 897 transform7: ITRF2014@2010xITRF89@2015+ITRF89@2015xETRF2000@2012 max 2.5216, epoched 8.0\n    test 898 transform8: ITRF2014@2010xITRF88@2015+ITRF88@2015xETRF2000@2012 max 2.8819, epoched 8.0\n\n    test 899 Case 1A: [4027893.9619, 307045.5481, 4919474.9553]\n    test 900 Case 1B: [4027894.0054, 307045.5938, 4919474.9083]\n    test 901 Case 2A: [4027893.9639, 307045.545, 4919474.9573]\n    test 902 Case 2B: [4027894.0033, 307045.5889, 4919474.9041]\n\n    test 903 TypeError: type(reframe) ('ITRF2000'): not a RefFrame\n    test 904 TRFError: epoch (1899): below 1900.0 limit\n    test 905 TypeError: type(reframe2) ('ITRF2000'): not a RefFrame\n    test 906 TRFError: no conversion: LatLon(00°00′00.0″N, 000°00′00.0″E).reframe MISSING\n    test 907 TypeError: type(reframe2) ('ITRF2000'): not a RefFrame\n    test 908 TypeError: type(reframe) ('ITRF2000'): not a RefFrame\n\n    test 909 ETRF89@1989: [4160476.944000, 653192.600000, 4774604.455000]\n    test 910 ITRF2014@2018.8: [4160476.415, 653193.057, 4774604.903]  FAILED, KNOWN, expected [4160476.485, 653193.021, 4774604.78]\n    test 911 TransformXform: -ITRF2014@2010xITRF89-ITRF89@1989xETRF89@2010@2018.8\n    test 912 Delta (m): [-0.06956, 0.035714, 0.122931]  FAILED, KNOWN, expected [0.01, 0.01, 0.01]\n    test 913 Error (m): 0.145692  FAILED, KNOWN, expected 0.01\n    test 914 Epoch range: 29.800  FAILED, KNOWN, expected 14.0\n    test 915 ETRF89@1989: [4160476.467836, 653193.103190, 4774604.868503]  FAILED, KNOWN, expected [4160476.944000, 653192.600000, 4774604.455000]\n    test 916 TransformXform: ITRF2014@2010xITRF89+ITRF89@1989xETRF89@2010@1989\n\n    test 917 inverse: -ITRF2014@2010xITRF89-ITRF89@1989xETRF89@2010@1989\n    test 918 inverse: ITRF2014@2010xITRF89+ITRF89@1989xETRF89@2010@1989\n    test 919 inverse: name='ITRF2014@2010xITRF89+ITRF89@1989xETRF89@2010@1989', tx=0.0283, ty=0.046, tz=-0.0615, s1=1.0, rx=0.0, ry=0.0, rz=-7.757e-10, s=0.00567, sx=0.0, sy=0.0, sz=-0.00016\n\n    test 920 ETRF2000@2000: [4160476.952000, 653192.582000, 4774604.441000]\n    test 921 ITRF2014@2018.8: [4160476.471, 653193.059, 4774604.804]  FAILED, KNOWN, expected [4160476.485, 653193.021, 4774604.78]\n    test 922 TransformXform: -ITRF2014@2015xETRF2000@2018.8\n    test 923 Delta (m): [-0.014174, 0.037835, 0.023963]  FAILED, KNOWN, expected [0.01, 0.01, 0.01]\n    test 924 Error (m): 0.046975  FAILED, KNOWN, expected 0.01\n    test 925 Epoch range: 18.800  FAILED, KNOWN, expected 14.0\n    test 926 ETRF2000@2000: [4160476.681125, 653192.914350, 4774604.647835]  FAILED, KNOWN, expected [4160476.952000, 653192.582000, 4774604.441000]\n    test 927 TransformXform: ITRF2014@2015xETRF2000@2000\n\n    test 928 inverse: -ITRF2014@2015xETRF2000@2000\n    test 929 inverse: ITRF2014@2015xETRF2000@2000\n    test 930 inverse: name='ITRF2014@2015xETRF2000@2000', tx=0.0537, ty=0.0512, tz=-0.0551, s1=1.0, rx=4.3197e-09, ry=2.6131e-08, rz=-4.2237e-08, s=0.00102, sx=0.000891, sy=0.00539, sz=-0.008712\n\n    test 931 ITRF2008@2005: [4160476.674000, 653192.806000, 4774604.648000]\n    test 932 ITRF2014@2018.8: [4160476.671, 653192.804, 4774604.645]  FAILED, KNOWN, expected [4160476.485, 653193.021, 4774604.78]\n    test 933 TransformXform: -ITRF2014@2010xITRF2008@2018.8\n    test 934 Delta (m): [0.186385, -0.217059, -0.134685]  FAILED, KNOWN, expected [0.01, 0.01, 0.01]\n    test 935 Error (m): 0.316218  FAILED, KNOWN, expected 0.01\n    test 936 Epoch range: 13.800  FAILED, KNOWN, expected 14.0\n    test 937 ITRF2008@2005: [4160476.672278, 653192.805730, 4774604.647403]  FAILED, KNOWN, expected [4160476.674000, 653192.806000, 4774604.648000]\n    test 938 TransformXform: ITRF2014@2010xITRF2008@2005\n\n    test 939 inverse: -ITRF2014@2010xITRF2008@2005\n    test 940 inverse: ITRF2014@2010xITRF2008@2005\n    test 941 inverse: name='ITRF2014@2010xITRF2008@2005', tx=0.0016, ty=0.0019, tz=0.0029, s1=1.0, rx=0.0, ry=0.0, rz=0.0, s=-0.00017, sx=0.0, sy=0.0, sz=0.0\n\n    test 942 toRefFrame1: ITRF2020@2015 2024.31 [0.0031474, 0.00210534, -0.00125667]\n    test 943 toRefFrame2: ITRF2014@2010 2024.32 [0.0031474, 0.00210634, -0.00125867]\n    test 944 transform0: -ITRF2020@2015xITRF2014@2010\n    test 945 transform0X: TRFXform(epoch=2010.0, name='-ITRF2020@2015xITRF2014@2010')\n    test 946 toRefFrame3: ITRF2020@2015 2010 [0.0031474, 0.00067434, 0.00160533]\n    test 947 transform2x: (4160476.488147, 653193.021674, 4774604.781605)\n    test 948 transform2v: (0.000, 0.000, 0.000)  FAILED, KNOWN, expected (0.004, 0.003, 0.004)\n\n    test 949 transform0: name='ITRF2020@2015xETRF2020@2010', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=8.75573508e-09, ry=5.28398431e-08, rz=-7.66635874e-08, s=0.0, sx=0.001806, sy=0.010899, sz=-0.015813\n    test 950 transform2c: (4027893.9585, 307045.5550, 4919474.9620)  FAILED, KNOWN, expected (4027893.9585, 307045.5550, 4919474.9619)\n    test 951     Error2c: (-0.000016463, 0.0000336, 0.000055143) max 5.514e-05, epoched 5.0\n    test 952 transform2v: (-0.00011, 0.00010, 0.00023)  FAILED, KNOWN, expected (0.00011, 0.00011, 0.00024)\n    test 953     Error2v: (-0.000220786, -0.000005544, -0.000006899) max 0.0002208\n    test 954 transform0v: (0.00009, 0.00052, -0.00075)  FAILED, KNOWN, expected (0.00011, 0.00011, 0.00024)\n    test 955     Error0v: (-0.000024, 0.000409, -0.000993) max 0.000993\n\n    test 956 transform0: name='-ITRF2014@2015xETRF2020@2010', tx=-0.0014, ty=-0.0004, tz=0.0004, s1=1.0, rx=-8.75573508e-09, ry=-5.28398431e-08, rz=7.66635874e-08, s=-0.00042, sx=-0.001806, sy=-0.010899, sz=0.015813\n    test 957 transform2c: (4027893.6719, 307045.9063, 4919475.1704)  FAILED, KNOWN, expected (4027893.6719, 307045.9064, 4919475.1704)\n    test 958     Error2c: (0.000024786, -0.000062539, -0.000021304) max 6.254e-05, epoched 5.0\n    test 959 transform2v: (-0.01339, 0.01677, 0.01045)  FAILED, KNOWN, expected (-0.01361, 0.01676, 0.01044)\n    test 960     Error2v: (0.000220784, 0.000005543, 0.000006898) max 0.0002208\n    test 961 transform0v: (-0.00009, -0.00052, 0.00075)  FAILED, KNOWN, expected (-0.01361, 0.01676, 0.01044)\n    test 962     Error0v: (0.013524, -0.017279, -0.009687) max 0.01728\n\n    test 963 transform0: name='ITRF2014@2015xETRF2014@2010', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=8.65392421e-09, ry=5.40615736e-08, rz=-7.83943722e-08, s=0.0, sx=0.001785, sy=0.011151, sz=-0.01617\n    test 964 transform2c: (4027893.9619, 307045.5481, 4919474.9553)  FAILED, KNOWN, expected (4027893.9620, 307045.5480, 4919474.9553)\n    test 965     Error2c: (-0.00007476, 0.000063039, 0.000002882) max 7.476e-05, epoched 5.0\n    test 966 transform2v: (0.00020, -0.00030, 0.00020)\n    test 967     Error2v: (0.000000724, -0.000003666, -0.000002721) max 3.666e-06\n    test 968 transform0v: (0.00009, 0.00053, -0.00077)  FAILED, KNOWN, expected (0.00020, -0.00030, 0.00020)\n    test 969     Error0v: (-0.000115, 0.000831, -0.00097) max 0.00097\n\n    test 970 transform0: name='-ITRF2000@2015xETRF2014@2010', tx=0.0007, ty=0.0012, tz=-0.0261, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 971 transform2c: (4027893.6812, 307045.9082, 4919475.1547)\n    test 972     Error2c: (0.000013934, -0.000012081, 0.000026423) max 2.642e-05, epoched 5.0\n    test 973 transform2v: (-0.01351, 0.01686, 0.00854)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 974     Error2v: (-0.000440726, -0.000036335, -0.00053728) max 0.0005373\n    test 975 transform0v: (-0.00008, -0.00053, 0.00077)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 976     Error0v: (0.012985, -0.017431, -0.00831) max 0.01743\n\n    test 977 transform0: name='ITRF2000@2015xETRF2000@2010', tx=0.054, ty=0.051, tz=-0.048, s1=1.0, rx=8.24668072e-09, ry=4.98873278e-08, rz=-8.06342114e-08, s=0.0, sx=0.001701, sy=0.01029, sz=-0.016632\n    test 978 transform2c: (4027894.0054, 307045.5938, 4919474.9083)  FAILED, KNOWN, expected (4027894.0053, 307045.5939, 4919474.9083)\n    test 979     Error2c: (0.000077874, -0.000055372, -0.000008743) max 7.787e-05, epoched 5.0\n    test 980 transform2v: (-0.00020, -0.00050, -0.00037)  FAILED, KNOWN, expected (-0.00020, -0.00050, -0.00036)\n    test 981     Error2v: (-0.000004389, 0.000002124, -0.000008036) max 8.036e-06\n    test 982 transform0v: (0.00008, 0.00049, -0.00079)  FAILED, KNOWN, expected (-0.00020, -0.00050, -0.00036)\n    test 983     Error0v: (0.000281, 0.00099, -0.000432) max 0.00099\n\n    test 984 transform0/: name='-ITRF2000@2015xETRF2014@2010', tx=0.0007, ty=0.0012, tz=-0.0261, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 985 transform2c: (4027893.6812, 307045.9082, 4919475.1547)\n    test 986     Error2c: (0.000013934, -0.000012081, 0.000026423) max 2.642e-05, epoched 5.0\n    test 987 transform2v: (-0.01351, 0.01686, 0.00854)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 988     Error2v: (-0.000440726, -0.000036335, -0.00053728) max 0.0005373\n\n    test 989 transform1/: name='-ITRF2000@1997xITRF97@2015-ITRF97@2015xETRF2014@2010', tx=0.00673, ty=-0.00033, tz=-0.05913, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=8.09154034e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01669\n    test 990 transform2c: (4027893.6865, 307045.9168, 4919475.1217)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n./test/testTrf.py:29: DeprecationWarning: method L{convertRefFrame<pygeodesy.ellipsoidalGeodSolve.LatLon.convertRefFrame>} has been DEPRECATED, use method L{toRefFrame}.\n  x = p.convertRefFrame(RefFrames.ETRF2000)\n    test 991     Error2c: (0.005269863, 0.008612365, -0.033003577) max 0.033, epoched 23.0\n    test 992 transform2v: (-0.01357, 0.01710, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 993     Error2v: (-0.00050027, 0.000204776, -0.00179728) max 0.001797\n\n    test 994 transform2/: name='-ITRF2000@1997xITRF96@2015-ITRF96@2015xETRF2014@2010', tx=0.00673, ty=-0.00033, tz=-0.05913, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 995 transform2c: (4027893.6872, 307045.9067, 4919475.1217)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 996     Error2c: (0.006043935, -0.001542081, -0.033003577) max 0.033, epoched 23.0\n    test 997 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 998     Error2v: (-0.000440726, -0.000576335, -0.00179728) max 0.001797\n\n    test 999 transform3/: name='-ITRF2000@1988xITRF93@2015-ITRF93@2015xETRF2014@2010', tx=0.0007, ty=0.0012, tz=-0.0261, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 1000 transform2c: (4027893.6812, 307045.9082, 4919475.1547)\n    test 1001     Error2c: (0.000013934, -0.000012081, 0.000026423) max 2.642e-05, epoched 32.0\n    test 1002 transform2v: (-0.01351, 0.01686, 0.00854)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 1003     Error2v: (-0.000440726, -0.000036335, -0.00053728) max 0.0005373\n\n    test 1004 transform4/: name='-ITRF2000@1988xITRF92@2015-ITRF92@2015xETRF2014@2010', tx=0.01393, ty=0.00147, tz=-0.06633, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 1005 transform2c: (4027893.6944, 307045.9085, 4919475.1145)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 1006     Error2c: (0.013243935, 0.000257919, -0.040203577) max 0.0402, epoched 32.0\n    test 1007 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 1008     Error2v: (-0.000440726, -0.000576335, -0.00179728) max 0.001797\n\n    test 1009 transform5/: name='-ITRF2000@1988xITRF91@2015-ITRF91@2015xETRF2014@2010', tx=0.0007, ty=0.0012, tz=-0.0261, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 1010 transform2c: (4027893.6812, 307045.9082, 4919475.1547)\n    test 1011     Error2c: (0.000013934, -0.000012081, 0.000026423) max 2.642e-05, epoched 32.0\n    test 1012 transform2v: (-0.01351, 0.01686, 0.00854)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 1013     Error2v: (-0.000440726, -0.000036335, -0.00053728) max 0.0005373\n\n    test 1014 transform6/: name='-ITRF2000@1988xITRF90@2015-ITRF90@2015xETRF2014@2010', tx=0.02293, ty=0.01047, tz=-0.08613, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 1015 transform2c: (4027893.7034, 307045.9175, 4919475.0947)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 1016     Error2c: (0.022243935, 0.009257919, -0.060003577) max 0.06, epoched 32.0\n    test 1017 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 1018     Error2v: (-0.000440726, -0.000576335, -0.00179728) max 0.001797\n\n    test 1019 transform7/: name='-ITRF2000@1988xITRF89@2015-ITRF89@2015xETRF2014@2010', tx=0.02743, ty=0.03207, tz=-0.12033, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 1020 transform2c: (4027893.7079, 307045.9391, 4919475.0605)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 1021     Error2c: (0.026743934, 0.030857919, -0.094203576) max 0.0942, epoched 32.0\n    test 1022 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 1023     Error2v: (-0.000440726, -0.000576335, -0.00179728) max 0.001797\n\n    test 1024 transform8/: name='-ITRF2000@1988xITRF88@2015-ITRF88@2015xETRF2014@2010', tx=0.02293, ty=-0.00033, tz=-0.14193, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 1025 transform2c: (4027893.7034, 307045.9067, 4919475.0389)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 1026     Error2c: (0.022243935, -0.001542081, -0.115803577) max 0.1158, epoched 32.0\n    test 1027 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 1028     Error2v: (-0.000440725, -0.000576335, -0.00179728) max 0.001797\n\n    test 1029 transform0: name='ITRF2020@2015xETRF2020@2020', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=1.29251327e-08, ry=7.80016732e-08, rz=-1.13170058e-07, s=0.0, sx=0.002666, sy=0.016089, sz=-0.023343\n    test 1030 transform2c: (4027893.9574, 307045.5561, 4919474.9643)\n    test 1031     Error2c: (-0.000024276, -0.000021815, -0.000013824) max 2.428e-05, epoched 5.0\n    test 1032 transform2v: (0.01350, -0.01676, -0.01001)\n\n    test 1033 transform0: name='-ITRF2014@2015xETRF2020@2020', tx=-0.0014, ty=-0.0014, tz=0.0024, s1=1.0, rx=-1.29251327e-08, ry=-7.80016732e-08, rz=1.13170058e-07, s=-0.00042, sx=-0.002666, sy=-0.016089, sz=0.023343\n    test 1034 transform2c: (4027893.5358, 307046.0740, 4919475.2748)\n    test 1035     Error2c: (0.000032643, -0.000007101, 0.000047684) max 4.768e-05, epoched 5.0\n    test 1036 transform2v: (-0.01350, 0.01666, 0.01021)\n\n    test 1037 transform0: name='ITRF2014@2015xETRF2014@2020', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=1.27748405e-08, ry=7.980518e-08, rz=-1.15725026e-07, s=0.0, sx=0.002635, sy=0.016461, sz=-0.02387\n    test 1038 transform2c: (4027893.9639, 307045.5450, 4919474.9573)\n    test 1039     Error2c: (0.000032525, 0.000026405, -0.000024305) max 3.253e-05, epoched 5.0\n    test 1040 transform2v: (0.01381, -0.01706, -0.01024)\n\n    test 1041 transform0: name='-ITRF2000@2015xETRF2014@2020', tx=0.0017, ty=0.0022, tz=-0.0451, s1=1.0, rx=-1.27748405e-08, ry=-7.980518e-08, rz=1.15725026e-07, s=0.00322, sx=-0.002635, sy=-0.016461, sz=0.02387\n    test 1042 transform2c: (4027893.5504, 307046.0772, 4919475.2456)  FAILED, KNOWN, expected (4027893.5505, 307046.0772, 4919475.2456)\n    test 1043     Error2c: (-0.00006262, -0.000037673, -0.000034945) max 6.262e-05, epoched 5.0\n    test 1044 transform2v: (-0.01371, 0.01716, 0.00834)\n\n    test 1045 transform0: name='ITRF2000@2015xETRF2000@2020', tx=0.054, ty=0.051, tz=-0.048, s1=1.0, rx=1.21736715e-08, ry=7.36431982e-08, rz=-1.19031455e-07, s=0.0, sx=0.002511, sy=0.01519, sz=-0.024552\n    test 1046 transform2c: (4027894.0033, 307045.5889, 4919474.9047)\n    test 1047     Error2c: (0.000034031, -0.000034106, 0.000010915) max 3.411e-05, epoched 5.0\n    test 1048 transform2v: (0.01287, -0.01740, -0.00945)\n\n    test 1049 transform0*: name='-ITRF2014@2010xITRF89-ITRF89@1989xETRF89@2010@2018.8', tx=-0.03128, ty=-0.0311, tz=0.15984, s1=0.999999991, rx=-1.58921925e-08, ry=-8.23504519e-08, rz=1.00463091e-07, s=-0.009246, sx=-0.003278, sy=-0.016986, sz=0.020722\n    test 1050 transform2c: (4160476.4154, 653193.0567, 4774604.9029)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 1051     Error2c: (-0.069560351, 0.035713888, 0.122930501) max 0.1229, epoched 29.8\n    test 1052 transform2v: (-0.01148, 0.01996, 0.01845)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 1053     Error2v: (-0.015479395, 0.016963959, 0.014448874) max 0.01696\n\n    test 1054 transform0*: name='-ITRF2014@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 1055 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 1056     Error2c: (-0.014174475, 0.037834952, 0.023962617) max 0.03783, epoched 3.8\n    test 1057 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n./test/testTrf.py:136: DeprecationWarning: method L{convertRefFrame<pygeodesy.ellipsoidalGeodSolve.LatLon.convertRefFrame>} has been DEPRECATED, use method L{toRefFrame}.\n  t = LatLon(0, 0, reframe=RefFrames.ITRF2000).convertRefFrame('ITRF2000')\n    test 1058     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 1059 transform1*: name='-ITRF2014@2010xITRF2008@2015-ITRF2008@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 1060 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 1061     Error2c: (-0.014174475, 0.037834952, 0.023962617) max 0.03783, epoched 8.8\n    test 1062 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 1063     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 1064 transform2*: name='-ITRF2014@2010xITRF97@2015-ITRF97@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 1065 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 1066     Error2c: (-0.014174475, 0.037834952, 0.023962617) max 0.03783, epoched 8.8\n    test 1067 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 1068     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 1069 transform3*: name='-ITRF2014@2010xITRF93@2015-ITRF93@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 1070 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 1071     Error2c: (-0.014174475, 0.037834952, 0.023962617) max 0.03783, epoched 8.8\n    test 1072 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 1073     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 1074 transform4*: name='-ITRF2014@2010xITRF92@2015-ITRF92@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 1075 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 1076     Error2c: (-0.014174475, 0.037834952, 0.023962617) max 0.03783, epoched 8.8\n    test 1077 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 1078     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 1079 transform5*: name='-ITRF2014@2010xITRF91@2015-ITRF91@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 1080 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 1081     Error2c: (-0.014174475, 0.037834952, 0.023962617) max 0.03783, epoched 8.8\n    test 1082 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 1083     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 1084 transform6*: name='-ITRF2014@2010xITRF90@2015-ITRF90@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 1085 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 1086     Error2c: (-0.014174475, 0.037834952, 0.023962617) max 0.03783, epoched 8.8\n    test 1087 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 1088     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 1089 transform7*: name='-ITRF2014@2010xITRF89@2015-ITRF89@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 1090 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 1091     Error2c: (-0.014174475, 0.037834952, 0.023962617) max 0.03783, epoched 8.8\n    test 1092 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 1093     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 1094 transform8*: name='-ITRF2014@2010xITRF88@2015-ITRF88@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 1095 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 1096     Error2c: (-0.014174475, 0.037834952, 0.023962617) max 0.03783, epoched 8.8\n    test 1097 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 1098     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 1099 toTransform: name='-ITRF2014@2010xITRF88@2015-ITRF88@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=1.0, rx=-1.1702e-08, ry=-7.0792e-08, rz=1.1442e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.023602\n    test 1100 toTransform: name='-ITRF2014@2010xITRF88@2015-ITRF88@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=1.0, rx=-1.1702e-08, ry=-7.0792e-08, rz=1.1442e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.023602\n\n    test 1101 Issue80: 48.77691577°N, 008.92257142°E, +476.05m\n    test 1102 Issue80: 48.77692147°N, 008.92257868°E, +476.09m\n    test 1103 Issue80: 48°46′36.915133″N, 008°55′21.285094″E, +476.10m  FAILED, KNOWN, expected 48°46′36.915134″N, 008°55′21.285094″E, +476.10\n    test 1104 Issue80: 0.804  FAILED, KNOWN, expected 0.01\n    test 1105 Issue80: [4160476.944064, 653192.600457, 4774604.455385]\n    test 1106 Issue80: [4160476.415504, 653193.057171, 4774604.903316]\n    test 1107 Issue80: [4160476.467901, 653193.103647, 4774604.868888]\n    test 1108 Issue80: 48°46′36.915133″N, 008°55′21.285094″E, +476.10m\n\n    test 1109 Issue80: 48.77692032°N, 008.92257804°E, +476.05m\n    test 1110 Issue80: 48.77691971°N, 008.92257856°E, +476.06m\n    test 1111 Issue80: 48°46′36.9315″N, 008°55′21.3089″E, +476.10m  FAILED, KNOWN, expected 48°46′36.9131″N, 008°55′21.28095″E, +476.05m\n    test 1112 Issue80: 0.804  FAILED, KNOWN, expected 0.01\n    test 1113 Issue80: [4160476.492633, 653193.021888, 4774604.78885]\n    test 1114 Issue80: [4160476.54503, 653193.068365, 4774604.754422]\n    test 1115 Issue80: [4160476.016469, 653193.525079, 4774605.202353]\n    test 1116 Issue80: 48°46′36.9315″N, 008°55′21.3089″E, +476.10m\n\n    test 1117 ITRF96@1997xNAD83: TRFXform(epoch=1997.0, name='ITRF96@1997xNAD83')\n    test 1118 ITRF96@1997xNAD83: name='ITRF96@1997xNAD83', tx=0.991, ty=-0.19072, tz=-0.5129, s1=1.0, rx=1.2503e-07, ry=4.6785e-08, rz=5.6529e-08, s=0.0, sx=0.02579, sy=0.00965, sz=0.01166\n    test 1119 ITRF96@1997xNAD83: name='ITRF96@1997xNAD83@2007', tx=0.991, ty=-0.19072, tz=-0.5129, s1=1.0, rx=1.2761e-07, ry=1.0797e-08, rz=5.4997e-08, s=0.0, sx=0.026322, sy=0.002227, sz=0.011344\n    test 1120 ITRF96@1997xNAD83: rx=-2.5792e-10, ry=3.5988e-09, rz=1.532e-10\n# lazily imported pygeodesy.ellipsoidalGeodSolve by testTrf.py line 402\n\n    testTrf(pygeodesy.ellipsoidalGeodSolve, 25.08.28)\n    test 1121 convertRefFrame: 51.47787826°N, 000.00147125°W, -0.00m  FAILED, KNOWN, expected 51.47787826°N, 000.00147125°W\n    test 1122 copy(<class 'type'>): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 1123 RefFrame.copy(): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 1124 toLatLon: 50.7978°N, 004.3592°E, +148.96m\n    test 1125 convertRefFrame: [3980574.395, -102.214, 4966829.941]\n    test 1126 Nil: True\n    test 1127 copy(<class 'type'>): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 1128 RefFrame.copy(): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 1129 Nil: True\n    test 1130 reframe: True\n    test 1131 Roundtrip: True\n    test 1132 reframe: True\n    test 1133 copy(<class 'type'>): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 1134 RefFrame.copy(): (<class 'pygeodesy.trf.RefFrame'>, True)\n\n    test 1135 Geodetic: 23°40′12.44582″S, 133°53′07.84795″E, +603.34m\n    test 1136 Cartesian: [-4052051.7614, 4212836.1945, -2545106.0147]\n    test 1137 Geodetic: 23°40′12.44582″S, 133°53′07.84795″E, +603.34m\n    test 1138 Cartesian: [-4052051.7614, 4212836.1945, -2545106.0147]\n    test 1139 Roundtrip: 23°40′12.41482″S, 133°53′07.86712″E, +603.26m\n    test 1140 GNSStrans: [3370658.18892, 711877.42369, 5349787.1243]\n    test 1141 Cartesian: [-734972.563, 4893188.492, 4011982.811]\n\n    test 1142 EUREF EX1: [4027894.0444, 307045.6209, 4919474.8613]\n    test 1143 transform0: ITRF2005@2015xETRF2020-ITRF91@2015xETRF2020@2007 max 9.3132e-10, epoched 8.0\n    test 1144 transform1: ITRF2005@2015xETRF2014-ITRF91@2015xETRF2014@2007 max 0.048666, epoched 8.0\n    test 1145 transform2: ITRF2005@2015xETRF2000-ITRF91@2015xETRF2000@2007 max 0.097331, epoched 8.0\n    test 1146 transform3: ITRF2005@2000xITRF2000+ITRF2000@1988xITRF91@2000@2007 max 0.146, epoched 19.0\n    test 1147 transform4: -ITRF2020@2015xITRF2005+ITRF2020@2015xITRF91@2007 max 0.19466, epoched 8.0\n    test 1148 transform5: -ITRF2014@2010xITRF2005+ITRF2014@2010xITRF91@2007 max 0.24333, epoched 3.0\n    test 1149 transform6: -ITRF2008@2005xITRF2005+ITRF2008@2000xITRF91@2005@2007 max 0.29199, epoched 7.0\n    test 1150 transform7: ITRF2000@1988xITRF91+ITRF2005@2000xITRF2000@1988@2007 max 0.34066, epoched 31.0\n    test 1151 transform8: ITRF2014@2010xITRF91-ITRF2014@2020xGDA2020@2010+ITRF2005@2020xGDA2020@2010@2007 max 0.98111, epoched 23.0\n    test 1152 transform9: ITRF2008@2000xITRF91-ITRF2008@1994xGDA94@2000+ITRF2005@1994xGDA94@2000@2007 max 0.35972, epoched 19.0\n    test 1153 transform10: ITRF2008@2000xITRF91-ITRF2008@1997xNAD83@2000+ITRF2005@1997xNAD83@2000@2007 max 0.40805, epoched 13.0\n    test 1154 EUREF EX2: [4027894.0060, 307045.6000, 4919474.9100]\n    test 1155 transform0: ITRF91@2015xETRF2020-ITRF2005@2015xETRF2020@2007 max 0.048666, epoched 8.0\n    test 1156 transform1: ITRF91@2015xETRF2014-ITRF2005@2015xETRF2014@2007 max 1.8626e-09, epoched 8.0\n    test 1157 transform2: ITRF91@2015xETRF2000-ITRF2005@2015xETRF2000@2007 max 0.048666, epoched 8.0\n    test 1158 transform3: -ITRF2005@2000xITRF2000-ITRF2000@1988xITRF91@2000@2007 max 0.097331, epoched 19.0\n    test 1159 EUREF EX4: [4027894.3559, 307045.2508, 4919474.6447]\n    test 1160 transform0: -ITRF2000@2015xETRF2000@2012 max 4.5169e-08, epoched 3.0\n    test 1161 transform1: -ITRF2000@1997xITRF97@2015-ITRF97@2015xETRF2000@2012 max 0.35826, epoched 21.0\n    test 1162 transform2: -ITRF2000@1997xITRF96@2015-ITRF96@2015xETRF2000@2012 max 0.7048, epoched 21.0\n    test 1163 transform3: -ITRF2000@1988xITRF93@2015-ITRF93@2015xETRF2000@2012 max 1.054, epoched 30.0\n    test 1164 transform4: -ITRF2000@1988xITRF92@2015-ITRF92@2015xETRF2000@2012 max 1.4023, epoched 30.0\n    test 1165 transform5: -ITRF2000@1988xITRF91@2015-ITRF91@2015xETRF2000@2012 max 1.7514, epoched 30.0\n    test 1166 transform6: -ITRF2000@1988xITRF90@2015-ITRF90@2015xETRF2000@2012 max 2.1088, epoched 30.0\n    test 1167 transform7: -ITRF2000@1988xITRF89@2015-ITRF89@2015xETRF2000@2012 max 2.4877, epoched 30.0\n    test 1168 transform8: -ITRF2000@1988xITRF88@2015-ITRF88@2015xETRF2000@2012 max 2.8343, epoched 30.0\n    test 1169 EUREF EX5: [4027893.6458, 307045.9470, 4919475.1937]  FAILED, KNOWN, expected [4027894.3662, 307045.2530, 4919474.6263]\n    test 1170 transform0: ITRF2014@2015xETRF2000@2012 max 4.5169e-08, epoched 3.0\n    test 1171 transform1: ITRF2014@2010xITRF2008@2015+ITRF2008@2015xETRF2000@2012 max 0.36023, epoched 8.0\n    test 1172 transform2: ITRF2014@2010xITRF97@2015+ITRF97@2015xETRF2000@2012 max 0.72047, epoched 8.0\n    test 1173 transform3: ITRF2014@2010xITRF93@2015+ITRF93@2015xETRF2000@2012 max 1.0807, epoched 8.0\n    test 1174 transform4: ITRF2014@2010xITRF92@2015+ITRF92@2015xETRF2000@2012 max 1.4409, epoched 8.0\n    test 1175 transform5: ITRF2014@2010xITRF91@2015+ITRF91@2015xETRF2000@2012 max 1.8012, epoched 8.0\n    test 1176 transform6: ITRF2014@2010xITRF90@2015+ITRF90@2015xETRF2000@2012 max 2.1614, epoched 8.0\n    test 1177 transform7: ITRF2014@2010xITRF89@2015+ITRF89@2015xETRF2000@2012 max 2.5216, epoched 8.0\n    test 1178 transform8: ITRF2014@2010xITRF88@2015+ITRF88@2015xETRF2000@2012 max 2.8819, epoched 8.0\n\n    test 1179 Case 1A: [4027893.9619, 307045.5481, 4919474.9553]\n    test 1180 Case 1B: [4027894.0054, 307045.5938, 4919474.9083]\n    test 1181 Case 2A: [4027893.9639, 307045.545, 4919474.9573]\n    test 1182 Case 2B: [4027894.0033, 307045.5889, 4919474.9041]\n\n    test 1183 TypeError: type(reframe) ('ITRF2000'): not a RefFrame\n    test 1184 TRFError: epoch (1899): below 1900.0 limit\n    test 1185 TypeError: type(reframe2) ('ITRF2000'): not a RefFrame\n    test 1186 TRFError: no conversion: LatLon(00°00′00.0″N, 000°00′00.0″E).reframe MISSING\n    test 1187 TypeError: type(reframe2) ('ITRF2000'): not a RefFrame\n    test 1188 TypeError: type(reframe) ('ITRF2000'): not a RefFrame\n\n    test 1189 ETRF89@1989: [4160476.944000, 653192.600000, 4774604.455000]\n    test 1190 ITRF2014@2018.8: [4160476.415, 653193.057, 4774604.903]  FAILED, KNOWN, expected [4160476.485, 653193.021, 4774604.78]\n    test 1191 TransformXform: -ITRF2014@2010xITRF89-ITRF89@1989xETRF89@2010@2018.8\n    test 1192 Delta (m): [-0.06956, 0.035714, 0.122931]  FAILED, KNOWN, expected [0.01, 0.01, 0.01]\n    test 1193 Error (m): 0.145692  FAILED, KNOWN, expected 0.01\n    test 1194 Epoch range: 29.800  FAILED, KNOWN, expected 14.0\n    test 1195 ETRF89@1989: [4160476.467836, 653193.103190, 4774604.868503]  FAILED, KNOWN, expected [4160476.944000, 653192.600000, 4774604.455000]\n    test 1196 TransformXform: ITRF2014@2010xITRF89+ITRF89@1989xETRF89@2010@1989\n\n    test 1197 inverse: -ITRF2014@2010xITRF89-ITRF89@1989xETRF89@2010@1989\n    test 1198 inverse: ITRF2014@2010xITRF89+ITRF89@1989xETRF89@2010@1989\n    test 1199 inverse: name='ITRF2014@2010xITRF89+ITRF89@1989xETRF89@2010@1989', tx=0.0283, ty=0.046, tz=-0.0615, s1=1.0, rx=0.0, ry=0.0, rz=-7.757e-10, s=0.00567, sx=0.0, sy=0.0, sz=-0.00016\n\n    test 1200 ETRF2000@2000: [4160476.952000, 653192.582000, 4774604.441000]\n    test 1201 ITRF2014@2018.8: [4160476.471, 653193.059, 4774604.804]  FAILED, KNOWN, expected [4160476.485, 653193.021, 4774604.78]\n    test 1202 TransformXform: -ITRF2014@2015xETRF2000@2018.8\n    test 1203 Delta (m): [-0.014174, 0.037835, 0.023963]  FAILED, KNOWN, expected [0.01, 0.01, 0.01]\n    test 1204 Error (m): 0.046975  FAILED, KNOWN, expected 0.01\n    test 1205 Epoch range: 18.800  FAILED, KNOWN, expected 14.0\n    test 1206 ETRF2000@2000: [4160476.681125, 653192.914350, 4774604.647835]  FAILED, KNOWN, expected [4160476.952000, 653192.582000, 4774604.441000]\n    test 1207 TransformXform: ITRF2014@2015xETRF2000@2000\n\n    test 1208 inverse: -ITRF2014@2015xETRF2000@2000\n    test 1209 inverse: ITRF2014@2015xETRF2000@2000\n    test 1210 inverse: name='ITRF2014@2015xETRF2000@2000', tx=0.0537, ty=0.0512, tz=-0.0551, s1=1.0, rx=4.3197e-09, ry=2.6131e-08, rz=-4.2237e-08, s=0.00102, sx=0.000891, sy=0.00539, sz=-0.008712\n\n    test 1211 ITRF2008@2005: [4160476.674000, 653192.806000, 4774604.648000]\n    test 1212 ITRF2014@2018.8: [4160476.671, 653192.804, 4774604.645]  FAILED, KNOWN, expected [4160476.485, 653193.021, 4774604.78]\n    test 1213 TransformXform: -ITRF2014@2010xITRF2008@2018.8\n    test 1214 Delta (m): [0.186385, -0.217059, -0.134685]  FAILED, KNOWN, expected [0.01, 0.01, 0.01]\n    test 1215 Error (m): 0.316218  FAILED, KNOWN, expected 0.01\n    test 1216 Epoch range: 13.800  FAILED, KNOWN, expected 14.0\n    test 1217 ITRF2008@2005: [4160476.672278, 653192.805730, 4774604.647403]  FAILED, KNOWN, expected [4160476.674000, 653192.806000, 4774604.648000]\n    test 1218 TransformXform: ITRF2014@2010xITRF2008@2005\n\n    test 1219 inverse: -ITRF2014@2010xITRF2008@2005\n    test 1220 inverse: ITRF2014@2010xITRF2008@2005\n    test 1221 inverse: name='ITRF2014@2010xITRF2008@2005', tx=0.0016, ty=0.0019, tz=0.0029, s1=1.0, rx=0.0, ry=0.0, rz=0.0, s=-0.00017, sx=0.0, sy=0.0, sz=0.0\n\n    test 1222 toRefFrame1: ITRF2020@2015 2024.31 [0.0031474, 0.00210534, -0.00125667]\n    test 1223 toRefFrame2: ITRF2014@2010 2024.32 [0.0031474, 0.00210634, -0.00125867]\n    test 1224 transform0: -ITRF2020@2015xITRF2014@2010\n    test 1225 transform0X: TRFXform(epoch=2010.0, name='-ITRF2020@2015xITRF2014@2010')\n    test 1226 toRefFrame3: ITRF2020@2015 2010 [0.0031474, 0.00067434, 0.00160533]\n    test 1227 transform2x: (4160476.488147, 653193.021674, 4774604.781605)\n    test 1228 transform2v: (0.000, 0.000, 0.000)  FAILED, KNOWN, expected (0.004, 0.003, 0.004)\n\n    test 1229 transform0: name='ITRF2020@2015xETRF2020@2010', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=8.75573508e-09, ry=5.28398431e-08, rz=-7.66635874e-08, s=0.0, sx=0.001806, sy=0.010899, sz=-0.015813\n    test 1230 transform2c: (4027893.9585, 307045.5550, 4919474.9620)  FAILED, KNOWN, expected (4027893.9585, 307045.5550, 4919474.9619)\n    test 1231     Error2c: (-0.000016463, 0.0000336, 0.000055143) max 5.514e-05, epoched 5.0\n    test 1232 transform2v: (-0.00011, 0.00010, 0.00023)  FAILED, KNOWN, expected (0.00011, 0.00011, 0.00024)\n    test 1233     Error2v: (-0.000220786, -0.000005544, -0.000006899) max 0.0002208\n    test 1234 transform0v: (0.00009, 0.00052, -0.00075)  FAILED, KNOWN, expected (0.00011, 0.00011, 0.00024)\n    test 1235     Error0v: (-0.000024, 0.000409, -0.000993) max 0.000993\n\n    test 1236 transform0: name='-ITRF2014@2015xETRF2020@2010', tx=-0.0014, ty=-0.0004, tz=0.0004, s1=1.0, rx=-8.75573508e-09, ry=-5.28398431e-08, rz=7.66635874e-08, s=-0.00042, sx=-0.001806, sy=-0.010899, sz=0.015813\n    test 1237 transform2c: (4027893.6719, 307045.9063, 4919475.1704)  FAILED, KNOWN, expected (4027893.6719, 307045.9064, 4919475.1704)\n    test 1238     Error2c: (0.000024786, -0.000062539, -0.000021304) max 6.254e-05, epoched 5.0\n    test 1239 transform2v: (-0.01339, 0.01677, 0.01045)  FAILED, KNOWN, expected (-0.01361, 0.01676, 0.01044)\n    test 1240     Error2v: (0.000220784, 0.000005543, 0.000006898) max 0.0002208\n    test 1241 transform0v: (-0.00009, -0.00052, 0.00075)  FAILED, KNOWN, expected (-0.01361, 0.01676, 0.01044)\n    test 1242     Error0v: (0.013524, -0.017279, -0.009687) max 0.01728\n\n    test 1243 transform0: name='ITRF2014@2015xETRF2014@2010', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=8.65392421e-09, ry=5.40615736e-08, rz=-7.83943722e-08, s=0.0, sx=0.001785, sy=0.011151, sz=-0.01617\n    test 1244 transform2c: (4027893.9619, 307045.5481, 4919474.9553)  FAILED, KNOWN, expected (4027893.9620, 307045.5480, 4919474.9553)\n    test 1245     Error2c: (-0.00007476, 0.000063039, 0.000002882) max 7.476e-05, epoched 5.0\n    test 1246 transform2v: (0.00020, -0.00030, 0.00020)\n    test 1247     Error2v: (0.000000724, -0.000003666, -0.000002721) max 3.666e-06\n    test 1248 transform0v: (0.00009, 0.00053, -0.00077)  FAILED, KNOWN, expected (0.00020, -0.00030, 0.00020)\n    test 1249     Error0v: (-0.000115, 0.000831, -0.00097) max 0.00097\n\n    test 1250 transform0: name='-ITRF2000@2015xETRF2014@2010', tx=0.0007, ty=0.0012, tz=-0.0261, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 1251 transform2c: (4027893.6812, 307045.9082, 4919475.1547)\n    test 1252     Error2c: (0.000013934, -0.000012081, 0.000026423) max 2.642e-05, epoched 5.0\n    test 1253 transform2v: (-0.01351, 0.01686, 0.00854)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 1254     Error2v: (-0.000440726, -0.000036335, -0.00053728) max 0.0005373\n    test 1255 transform0v: (-0.00008, -0.00053, 0.00077)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 1256     Error0v: (0.012985, -0.017431, -0.00831) max 0.01743\n\n    test 1257 transform0: name='ITRF2000@2015xETRF2000@2010', tx=0.054, ty=0.051, tz=-0.048, s1=1.0, rx=8.24668072e-09, ry=4.98873278e-08, rz=-8.06342114e-08, s=0.0, sx=0.001701, sy=0.01029, sz=-0.016632\n    test 1258 transform2c: (4027894.0054, 307045.5938, 4919474.9083)  FAILED, KNOWN, expected (4027894.0053, 307045.5939, 4919474.9083)\n    test 1259     Error2c: (0.000077874, -0.000055372, -0.000008743) max 7.787e-05, epoched 5.0\n    test 1260 transform2v: (-0.00020, -0.00050, -0.00037)  FAILED, KNOWN, expected (-0.00020, -0.00050, -0.00036)\n    test 1261     Error2v: (-0.000004389, 0.000002124, -0.000008036) max 8.036e-06\n    test 1262 transform0v: (0.00008, 0.00049, -0.00079)  FAILED, KNOWN, expected (-0.00020, -0.00050, -0.00036)\n    test 1263     Error0v: (0.000281, 0.00099, -0.000432) max 0.00099\n\n    test 1264 transform0/: name='-ITRF2000@2015xETRF2014@2010', tx=0.0007, ty=0.0012, tz=-0.0261, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 1265 transform2c: (4027893.6812, 307045.9082, 4919475.1547)\n    test 1266     Error2c: (0.000013934, -0.000012081, 0.000026423) max 2.642e-05, epoched 5.0\n    test 1267 transform2v: (-0.01351, 0.01686, 0.00854)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 1268     Error2v: (-0.000440726, -0.000036335, -0.00053728) max 0.0005373\n\n    test 1269 transform1/: name='-ITRF2000@1997xITRF97@2015-ITRF97@2015xETRF2014@2010', tx=0.00673, ty=-0.00033, tz=-0.05913, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=8.09154034e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01669\n    test 1270 transform2c: (4027893.6865, 307045.9168, 4919475.1217)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 1271     Error2c: (0.005269863, 0.008612365, -0.033003577) max 0.033, epoched 23.0\n    test 1272 transform2v: (-0.01357, 0.01710, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 1273     Error2v: (-0.00050027, 0.000204776, -0.00179728) max 0.001797\n\n    test 1274 transform2/: name='-ITRF2000@1997xITRF96@2015-ITRF96@2015xETRF2014@2010', tx=0.00673, ty=-0.00033, tz=-0.05913, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 1275 transform2c: (4027893.6872, 307045.9067, 4919475.1217)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 1276     Error2c: (0.006043935, -0.001542081, -0.033003577) max 0.033, epoched 23.0\n    test 1277 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 1278     Error2v: (-0.000440726, -0.000576335, -0.00179728) max 0.001797\n\n    test 1279 transform3/: name='-ITRF2000@1988xITRF93@2015-ITRF93@2015xETRF2014@2010', tx=0.0007, ty=0.0012, tz=-0.0261, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 1280 transform2c: (4027893.6812, 307045.9082, 4919475.1547)\n    test 1281     Error2c: (0.000013934, -0.000012081, 0.000026423) max 2.642e-05, epoched 32.0\n    test 1282 transform2v: (-0.01351, 0.01686, 0.00854)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 1283     Error2v: (-0.000440726, -0.000036335, -0.00053728) max 0.0005373\n\n    test 1284 transform4/: name='-ITRF2000@1988xITRF92@2015-ITRF92@2015xETRF2014@2010', tx=0.01393, ty=0.00147, tz=-0.06633, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 1285 transform2c: (4027893.6944, 307045.9085, 4919475.1145)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 1286     Error2c: (0.013243935, 0.000257919, -0.040203577) max 0.0402, epoched 32.0\n    test 1287 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 1288     Error2v: (-0.000440726, -0.000576335, -0.00179728) max 0.001797\n\n    test 1289 transform5/: name='-ITRF2000@1988xITRF91@2015-ITRF91@2015xETRF2014@2010', tx=0.0007, ty=0.0012, tz=-0.0261, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 1290 transform2c: (4027893.6812, 307045.9082, 4919475.1547)\n    test 1291     Error2c: (0.000013934, -0.000012081, 0.000026423) max 2.642e-05, epoched 32.0\n    test 1292 transform2v: (-0.01351, 0.01686, 0.00854)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 1293     Error2v: (-0.000440726, -0.000036335, -0.00053728) max 0.0005373\n\n    test 1294 transform6/: name='-ITRF2000@1988xITRF90@2015-ITRF90@2015xETRF2014@2010', tx=0.02293, ty=0.01047, tz=-0.08613, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 1295 transform2c: (4027893.7034, 307045.9175, 4919475.0947)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 1296     Error2c: (0.022243935, 0.009257919, -0.060003577) max 0.06, epoched 32.0\n    test 1297 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 1298     Error2v: (-0.000440726, -0.000576335, -0.00179728) max 0.001797\n\n    test 1299 transform7/: name='-ITRF2000@1988xITRF89@2015-ITRF89@2015xETRF2014@2010', tx=0.02743, ty=0.03207, tz=-0.12033, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 1300 transform2c: (4027893.7079, 307045.9391, 4919475.0605)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 1301     Error2c: (0.026743934, 0.030857919, -0.094203576) max 0.0942, epoched 32.0\n    test 1302 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 1303     Error2v: (-0.000440726, -0.000576335, -0.00179728) max 0.001797\n\n    test 1304 transform8/: name='-ITRF2000@1988xITRF88@2015-ITRF88@2015xETRF2014@2010', tx=0.02293, ty=-0.00033, tz=-0.14193, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 1305 transform2c: (4027893.7034, 307045.9067, 4919475.0389)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 1306     Error2c: (0.022243935, -0.001542081, -0.115803577) max 0.1158, epoched 32.0\n    test 1307 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 1308     Error2v: (-0.000440725, -0.000576335, -0.00179728) max 0.001797\n\n    test 1309 transform0: name='ITRF2020@2015xETRF2020@2020', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=1.29251327e-08, ry=7.80016732e-08, rz=-1.13170058e-07, s=0.0, sx=0.002666, sy=0.016089, sz=-0.023343\n    test 1310 transform2c: (4027893.9574, 307045.5561, 4919474.9643)\n    test 1311     Error2c: (-0.000024276, -0.000021815, -0.000013824) max 2.428e-05, epoched 5.0\n    test 1312 transform2v: (0.01350, -0.01676, -0.01001)\n\n    test 1313 transform0: name='-ITRF2014@2015xETRF2020@2020', tx=-0.0014, ty=-0.0014, tz=0.0024, s1=1.0, rx=-1.29251327e-08, ry=-7.80016732e-08, rz=1.13170058e-07, s=-0.00042, sx=-0.002666, sy=-0.016089, sz=0.023343\n    test 1314 transform2c: (4027893.5358, 307046.0740, 4919475.2748)\n    test 1315     Error2c: (0.000032643, -0.000007101, 0.000047684) max 4.768e-05, epoched 5.0\n    test 1316 transform2v: (-0.01350, 0.01666, 0.01021)\n\n    test 1317 transform0: name='ITRF2014@2015xETRF2014@2020', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=1.27748405e-08, ry=7.980518e-08, rz=-1.15725026e-07, s=0.0, sx=0.002635, sy=0.016461, sz=-0.02387\n    test 1318 transform2c: (4027893.9639, 307045.5450, 4919474.9573)\n    test 1319     Error2c: (0.000032525, 0.000026405, -0.000024305) max 3.253e-05, epoched 5.0\n    test 1320 transform2v: (0.01381, -0.01706, -0.01024)\n\n    test 1321 transform0: name='-ITRF2000@2015xETRF2014@2020', tx=0.0017, ty=0.0022, tz=-0.0451, s1=1.0, rx=-1.27748405e-08, ry=-7.980518e-08, rz=1.15725026e-07, s=0.00322, sx=-0.002635, sy=-0.016461, sz=0.02387\n    test 1322 transform2c: (4027893.5504, 307046.0772, 4919475.2456)  FAILED, KNOWN, expected (4027893.5505, 307046.0772, 4919475.2456)\n    test 1323     Error2c: (-0.00006262, -0.000037673, -0.000034945) max 6.262e-05, epoched 5.0\n    test 1324 transform2v: (-0.01371, 0.01716, 0.00834)\n\n    test 1325 transform0: name='ITRF2000@2015xETRF2000@2020', tx=0.054, ty=0.051, tz=-0.048, s1=1.0, rx=1.21736715e-08, ry=7.36431982e-08, rz=-1.19031455e-07, s=0.0, sx=0.002511, sy=0.01519, sz=-0.024552\n    test 1326 transform2c: (4027894.0033, 307045.5889, 4919474.9047)\n    test 1327     Error2c: (0.000034031, -0.000034106, 0.000010915) max 3.411e-05, epoched 5.0\n    test 1328 transform2v: (0.01287, -0.01740, -0.00945)\n\n    test 1329 transform0*: name='-ITRF2014@2010xITRF89-ITRF89@1989xETRF89@2010@2018.8', tx=-0.03128, ty=-0.0311, tz=0.15984, s1=0.999999991, rx=-1.58921925e-08, ry=-8.23504519e-08, rz=1.00463091e-07, s=-0.009246, sx=-0.003278, sy=-0.016986, sz=0.020722\n    test 1330 transform2c: (4160476.4154, 653193.0567, 4774604.9029)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 1331     Error2c: (-0.069560351, 0.035713888, 0.122930501) max 0.1229, epoched 29.8\n    test 1332 transform2v: (-0.01148, 0.01996, 0.01845)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 1333     Error2v: (-0.015479395, 0.016963959, 0.014448874) max 0.01696\n\n    test 1334 transform0*: name='-ITRF2014@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 1335 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 1336     Error2c: (-0.014174475, 0.037834952, 0.023962617) max 0.03783, epoched 3.8\n    test 1337 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 1338     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 1339 transform1*: name='-ITRF2014@2010xITRF2008@2015-ITRF2008@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 1340 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 1341     Error2c: (-0.014174475, 0.037834952, 0.023962617) max 0.03783, epoched 8.8\n    test 1342 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 1343     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 1344 transform2*: name='-ITRF2014@2010xITRF97@2015-ITRF97@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 1345 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 1346     Error2c: (-0.014174475, 0.037834952, 0.023962617) max 0.03783, epoched 8.8\n    test 1347 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 1348     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 1349 transform3*: name='-ITRF2014@2010xITRF93@2015-ITRF93@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 1350 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 1351     Error2c: (-0.014174475, 0.037834952, 0.023962617) max 0.03783, epoched 8.8\n    test 1352 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 1353     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 1354 transform4*: name='-ITRF2014@2010xITRF92@2015-ITRF92@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 1355 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 1356     Error2c: (-0.014174475, 0.037834952, 0.023962617) max 0.03783, epoched 8.8\n    test 1357 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 1358     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 1359 transform5*: name='-ITRF2014@2010xITRF91@2015-ITRF91@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 1360 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 1361     Error2c: (-0.014174475, 0.037834952, 0.023962617) max 0.03783, epoched 8.8\n    test 1362 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 1363     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 1364 transform6*: name='-ITRF2014@2010xITRF90@2015-ITRF90@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 1365 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 1366     Error2c: (-0.014174475, 0.037834952, 0.023962617) max 0.03783, epoched 8.8\n    test 1367 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 1368     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 1369 transform7*: name='-ITRF2014@2010xITRF89@2015-ITRF89@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 1370 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 1371     Error2c: (-0.014174475, 0.037834952, 0.023962617) max 0.03783, epoched 8.8\n    test 1372 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 1373     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 1374 transform8*: name='-ITRF2014@2010xITRF88@2015-ITRF88@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 1375 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 1376     Error2c: (-0.014174475, 0.037834952, 0.023962617) max 0.03783, epoched 8.8\n    test 1377 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 1378     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 1379 toTransform: name='-ITRF2014@2010xITRF88@2015-ITRF88@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=1.0, rx=-1.1702e-08, ry=-7.0792e-08, rz=1.1442e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.023602\n    test 1380 toTransform: name='-ITRF2014@2010xITRF88@2015-ITRF88@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=1.0, rx=-1.1702e-08, ry=-7.0792e-08, rz=1.1442e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.023602\n\n    test 1381 Issue80: 48.77691577°N, 008.92257142°E, +476.05m\n    test 1382 Issue80: 48.77692147°N, 008.92257868°E, +476.09m\n    test 1383 Issue80: 48°46′36.915133″N, 008°55′21.285094″E, +476.10m  FAILED, KNOWN, expected 48°46′36.915134″N, 008°55′21.285094″E, +476.10\n    test 1384 Issue80: 0.804  FAILED, KNOWN, expected 0.01\n    test 1385 Issue80: [4160476.944064, 653192.600457, 4774604.455385]\n    test 1386 Issue80: [4160476.415504, 653193.057171, 4774604.903316]\n    test 1387 Issue80: [4160476.467901, 653193.103647, 4774604.868888]\n    test 1388 Issue80: 48°46′36.915133″N, 008°55′21.285094″E, +476.10m\n\n    test 1389 Issue80: 48.77692032°N, 008.92257804°E, +476.05m\n    test 1390 Issue80: 48.77691971°N, 008.92257856°E, +476.06m\n    test 1391 Issue80: 48°46′36.9315″N, 008°55′21.3089″E, +476.10m  FAILED, KNOWN, expected 48°46′36.9131″N, 008°55′21.28095″E, +476.05m\n    test 1392 Issue80: 0.804  FAILED, KNOWN, expected 0.01\n    test 1393 Issue80: [4160476.492633, 653193.021888, 4774604.78885]\n    test 1394 Issue80: [4160476.54503, 653193.068365, 4774604.754422]\n    test 1395 Issue80: [4160476.016469, 653193.525079, 4774605.202353]\n    test 1396 Issue80: 48°46′36.9315″N, 008°55′21.3089″E, +476.10m\n\n    test 1397 ITRF96@1997xNAD83: TRFXform(epoch=1997.0, name='ITRF96@1997xNAD83')\n    test 1398 ITRF96@1997xNAD83: name='ITRF96@1997xNAD83', tx=0.991, ty=-0.19072, tz=-0.5129, s1=1.0, rx=1.2503e-07, ry=4.6785e-08, rz=5.6529e-08, s=0.0, sx=0.02579, sy=0.00965, sz=0.01166\n    test 1399 ITRF96@1997xNAD83: name='ITRF96@1997xNAD83@2007', tx=0.991, ty=-0.19072, tz=-0.5129, s1=1.0, rx=1.2761e-07, ry=1.0797e-08, rz=5.4997e-08, s=0.0, sx=0.026322, sy=0.002227, sz=0.011344\n    test 1400 ITRF96@1997xNAD83: rx=-2.5792e-10, ry=3.5988e-09, rz=1.532e-10\n\n    test 1401 TRFError: day (2), month (1) or year (None): int() argument must be a string, a bytes-like object or a real number, not 'NoneType'\n    test 1402 toStr: name='GDA94', epoch=1994, datum=Datums.GRS80\n    test 1403 str: name='GDA94', epoch=1994, datum=Datums.GRS80\n    test 1404 toStr2: RefFrame(name='GDA94', epoch=1994, datum=Datums.GRS80)\n    test 1405 repr: RefFrame(name='GDA94', epoch=1994, datum=Datums.GRS80)\n\n    test 1406 epoch: 2020.003\n    test 1407 y-m-d: (2020, 1, 1)\n    test 1408 epoch: 2020.251\n    test 1409 y-m-d: (2020, 4, 1)\n    test 1410 epoch: 2020.500\n    test 1411 y-m-d: (2020, 7, 1)\n    test 1412 epoch: 2020.751\n    test 1413 y-m-d: (2020, 10, 1)\n    test 1414 epoch: 2021.000\n    test 1415 y-m-d: (2021, 1, 1)  FAILED, KNOWN, expected (2020, 12, 31)\n\n    test 1416 Epoch (2020).std_repr: False\n    test 1417 Epoch (2020.001): (2020, 1, 1)\n    test 1418 Epoch (2020.086): (2020, 2, 1)\n    test 1419 Epoch (2020.165): (2020, 3, 1)\n    test 1420 Epoch (2020.25): (2020, 4, 1)\n    test 1421 Epoch (2020.332): (2020, 5, 1)\n    test 1422 Epoch (2020.416): (2020, 6, 1)\n    test 1423 Epoch (2020.498): (2020, 7, 1)\n    test 1424 Epoch (2020.583): (2020, 8, 1)\n    test 1425 Epoch (2020.668): (2020, 9, 1)\n    test 1426 Epoch (2020.75): (2020, 10, 1)\n    test 1427 Epoch (2020.834): (2020, 11, 1)\n    test 1428 Epoch (2020.916): (2020, 12, 1)\n    test 1429 Epoch (2021.001): (2021, 1, 1)  FAILED, KNOWN, expected (2020, 13, 1)\n\n    367 of 1429 testTrf.py tests (25.7%) FAILED, incl. 357 KNOWN plus 10 DeprecationWarnings (pygeodesy 26.3.26 Python 3.12.10 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 2.1.0 scipy 1.14.1 Math 2 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 isLazy 3 -W  default) 613.311 ms\nrunning /usr/local/bin/p....n3.12 -W default ~/PyGeodesy/test/testTriaxials.py\n./test/testTriaxials.py:134: DeprecationWarning: method L{area_p<pygeodesy.triaxials.triaxial5.Conformal.area_p>} has been DEPRECATED on 2026-02-15, use method L{areaKT<Triaxial_.areaKT>}.\n  p = J.area_p()\n./test/testTriaxials.py:192: DeprecationWarning: method L{area_p<pygeodesy.triaxials.triaxial5.ConformalSphere.area_p>} has been DEPRECATED on 2026-02-15, use method L{areaKT<Triaxial_.areaKT>}.\n  p = J.area_p()\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.EPS4 from .constants by testTriaxials.py line 13\n# lazily imported pygeodesy.F_DEG_ from .dms by testTriaxials.py line 13\n# lazily imported pygeodesy.F_DMS from .dms by testTriaxials.py line 13\n# lazily imported pygeodesy.PI_2 from .constants by testTriaxials.py line 13\n# lazily imported pygeodesy.PI_4 from .constants by testTriaxials.py line 13\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by testTriaxials.py line 13\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by testTriaxials.py line 13\n# lazily imported pygeodesy.Degrees from .units by testTriaxials.py line 13\n# lazily imported pygeodesy.Ellipsoids from .ellipsoids by testTriaxials.py line 13\n# lazily imported pygeodesy.fstr from .streprs by testTriaxials.py line 13\n# lazily imported pygeodesy.LLK from .triaxials.bases by testTriaxials.py line 13\n# lazily imported pygeodesy.Los from .ltpTuples by testTriaxials.py line 13\n# lazily imported pygeodesy.map1 from .basics by testTriaxials.py line 13\n# lazily imported pygeodesy.signBit from .basics by testTriaxials.py line 13\n# lazily imported pygeodesy.sincos2d_ from .utily by testTriaxials.py line 13\n# lazily imported pygeodesy.Triaxial from .triaxials.triaxial5 by testTriaxials.py line 13\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by testTriaxials.py line 13\n# lazily imported pygeodesy.Triaxials from .triaxials.triaxial5 by testTriaxials.py line 13\n# lazily imported pygeodesy.Triaxial3s from .triaxials.triaxial3 by testTriaxials.py line 13\n# lazily imported pygeodesy.triaxum5 from .vector2d by testTriaxials.py line 13\n# lazily imported pygeodesy.Vector3d from .vector3d by testTriaxials.py line 13\n\n    testing testTriaxials.py 26.03.12 isLazy=3\n\n    testHartzell(pygeodesy.triaxials.triaxial5, 26.03.09)\n# lazily imported pygeodesy.hartzell4 from .triaxials.triaxial5 by bases.py line 411\n    test 1 hartzell4: (884268.349816, 5592134.174908, 2927668.068131, 12669388.912805)\n    test 2 hartzell4: 0\n# lazily imported pygeodesy.hartzell4 from .triaxials.triaxial5 by bases.py line 411\n    test 3 hartzell4: (3642143.609933, 3678204.437754, 3714265.265575, 11296443.179278)\n    test 4 hartzell4: 0\n# lazily imported pygeodesy.hartzell4 from .triaxials.triaxial5 by bases.py line 411\n\n    test 5 hartzell4: (888679.181482, 5594339.590741, 2931196.612187, 12663325.092381)\n    test 6 hartzell4: 0\n# lazily imported pygeodesy.hartzell4 from .triaxials.triaxial5 by bases.py line 411\n    test 7 hartzell4: (3642304.092727, 3678366.509487, 3714428.926247, 11296162.453809)\n    test 8 hartzell4: 0\n# lazily imported pygeodesy.Triaxial from .triaxials.triaxial5 by ellipsoids.py line 1905\n# lazily imported pygeodesy.hartzell4 from .triaxials.triaxial5 by bases.py line 411\n\n    test 9 hartzell4: (884080.396945, 5592040.198472, 2927517.711001, 12669647.302276)\n    test 10 hartzell4: 0\n# lazily imported pygeodesy.hartzell4 from .triaxials.triaxial5 by bases.py line 411\n    test 11 hartzell4: (3642031.283571, 3678090.99925, 3714150.714929, 11296639.666827)\n    test 12 hartzell4: 0\n# imported pygeodesy.formy into latlonBase.py line 577\n# lazily imported pygeodesy.Triaxial from .triaxials.triaxial5 by ellipsoids.py line 1905\n# lazily imported pygeodesy.ecef by ellipsoidalVincenty.py line 377\n\n    test 13 hartzell: 30°38′27.119″N, 060°44′36.777″E, +142549.69m\n    test 14 hartzell: 30.640866, 060.743549, +142549.69m\n    test 15 hartzell: [2807429.59, 4862610.688, 3220373.735]\n# lazily imported pygeodesy.Triaxial from .triaxials.triaxial5 by ellipsoids.py line 1905\n    test 16 hartzell: [2684238.298, 4791786.806, 3231700.636]\n    test 17 hartzell: 142549.69438493284  FAILED, KNOWN, expected 142549.6943849337\n# lazily imported pygeodesy.Triaxial from .triaxials.triaxial5 by ellipsoids.py line 1905\n\n    test 18 hartzell: 30°00′00.0″N, 060°00′00.0″E, +100000.00m\n    test 19 hartzell: 30.0, 060.0, +100000.00m\n    test 20 hartzell: [2807429.59, 4862610.688, 3220373.735]\n# lazily imported pygeodesy.Triaxial from .triaxials.triaxial5 by ellipsoids.py line 1905\n    test 21 hartzell: [2764128.32, 4787610.688, 3170373.735]\n    test 22 hartzell: 100000.00000000023  FAILED, KNOWN, expected 100000.0\n\n    testConformal(pygeodesy.triaxials.triaxial5, 26.03.09)\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n# lazily imported pygeodesy.elliptic by triaxial5.py line 542\n# lazily imported pygeodesy.ellipses by bases.py line 424\n    test 23 Conformal: Conformal(name='Test', a=6378172, b=6378102, c=6356752, e2ab=0.00002195, e2bc=0.006683577, e2ac=0.00670538, xyQ2=xyQ2(x=10026968.259439, y=27085126.866409), volume=1083207266220584468480, area=510065604942135.875, R2=6371007.076110449)\n    test 24 xR: 1.5720928043230937  FAILED, KNOWN, expected 1.572092804\n    test 25 yR: 4.246581015231323  FAILED, KNOWN, expected 4.246581015\n    test 26 xyR2.toDegrees: (90.074283, 243.31117)\n    test 27 xyR2.toDegrees: (90.074283, 243.311169)  FAILED, KNOWN, expected ('90°04′27.42″N', '243°18′40.21″E')\n    test 28 areaRG: 510065604942135\n    test 29 area_p: 510065609807745\n    test 30 error: 9.54e-09\n    test 31 volume: 1.083207e+21\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n\n    test 32 Conformal: Conformal(name='Itokawa25134', a=267.5, b=147, c=104.5, e2ab=0.6980138, e2bc=0.494643436, e2ac=0.847389292, xyQ2=xyQ2(x=460.426025, y=209.544083), volume=17212581.945495993, area=359464.659686278, R2=169.130980982)\n    test 33 xyR2: (0.0, 0.61539)\n    test 34 toDegrees: (0.0, 35.259243)\n    test 35 toDegrees: (0.0, 35.259242)  FAILED, KNOWN, expected ('00°00′00.0″N', '035°15′33.27″E')\n    test 36 xyQR2: (3.13215, 1.42547)\n    test 37 toDegrees: (179.458966, 81.673412)  FAILED, KNOWN, expected (179.4589659, 81.673412)\n    test 38 toDegrees: (179.458967, 81.673411)  FAILED, KNOWN, expected ('179°27′32.28″N', '081°40′24.28″E')\n\n    testConformalSphere(pygeodesy.triaxials.triaxial5, 26.03.09)\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 39 ConformalSphere: ConformalSphere(name='Test', a=6378172, ab=1, bc=2, e2ab=0, e2bc=0, e2ac=0, xyQ2=xyQ2(x=11059220.127879, y=12941050.138298), volume=1086869218894412120064, area=511213503913540.8125, R2=6378172)\n    test 40 xR: 1.7339168852579347  FAILED, KNOWN, expected 1.73391688526\n    test 41 yR: 2.028959102748815  FAILED, KNOWN, expected 2.02895910275\n    test 42 xyR2.toDegrees: (99.34612, 116.250793)\n    test 43 xyR2.toDegrees: (99.346119, 116.250794)  FAILED, KNOWN, expected ('99°20′46.03″N', '116°15′02.86″E')\n    test 44 areax: 511213503913540\n    test 45 area_p: 511213503913539  FAILED, KNOWN, expected 511213503913540\n    test 46 volume: 1.086869e+21\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n\n    test 47 ConformalSphere: ConformalSphere(name='Itokawa25134', a=267.5, ab=147, bc=104.5, e2ab=0, e2bc=0, e2ac=0, xyQ2=xyQ2(x=517.119524, y=478.404858), volume=80178876.856908351, area=899202.357273738, R2=267.5)\n    test 48 xyR2: (0.0, 0.818354)\n    test 49 toDegrees: (0.0, 46.888217)\n    test 50 toDegrees: (0.0, 46.888217)  FAILED, KNOWN, expected ('00°00′00.0″N', '046°53′17.58″E')\n    test 51 xyQR2: (1.933157, 1.788429)\n    test 52 toDegrees: (110.761743, 102.469455)  FAILED, KNOWN, expected (179.4589659, 81.673412)\n    test 53 toDegrees: (110.761742, 102.469456)  FAILED, KNOWN, expected ('110°45′42.27″N', '102°28′10.04″E')\n\n    testTriaxial(pygeodesy.triaxials.triaxial5, 26.03.09)\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 54 Triaxial: Triaxial(name='Test', a=6378388, b=6378318, c=6356911.9461, e2ab=0.000021949, e2bc=0.006700868, e2ac=0.00672267, volume=1083307891664673177600, area=510097198412933.0625, R2=6371204.383189477)\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 55 Triaxial: Triaxial_(name='Un', a=6356911.9461, b=6378388, c=6378318, e2ab=-0.00676817, e2bc=0.000021949, e2ac=-0.006746073, volume=1083307891664673308672, area=510097198412933.125, R2=6371204.383189478)\n\n    test 56 forwardBetaOmega: (4234607.381429, 3551286.590486, 3176009.080037)\n    test 57 forwardBetaOmega: (4233813.533025, 3550620.827453, 3175409.655093)\n    test 58 length: 1196.973671\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n\n    test 59 forwardCartesian: (4233813.533151, 3550620.827558, 3175409.654809, 1196.973671)\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 60 forwardCartesian: (4239665.951888, 3553574.566129, 3164352.410834, 12911.309173)\n\n    test 61 reverseCartesian: (4234607.381429, 3551286.590486, 3176009.080037)\n    test 62 reverseCartesian: (4248255.186992, 3560773.833183, 3170763.143924)  FAILED, KNOWN, expected (4234607.381429, 3551286.590486, 3176009.080037)\n\n    test 63 forwardBetaOmega_: (4233813.533025, 3550620.827453, 3175409.655093)\n\n    test 64 reverseLatLon: (30.051881, 39.984967, 0.0)\n    test 65 forwardLatLon: (4233813.533025, 3550620.827453, 3175409.655093)\n\n    test 66 reverseBetaOmega: (0.520687, 0.698121, 12892.55755)\n    test 67 reverseBetaOmega: (0.521162, 0.698437, 12918.032538)\n    test 68 toDegrees: (29.860398, 40.017494, 12918.032538)\n    test 69 toDegrees: (29.860397, 40.017494, 12918.032538)  FAILED, KNOWN, expected ('29°51′37.43″', '40°01′02.98″', 12918.032538)\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n\n    test 70 height4: (3909251.554667, 3909165.750567, 3170432.501602, 999.999996)\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n\n    test 71 height4: (1.206423, 1.61288, 0.433517, 3.593736)\n    test 72 height4: 52\n    test 73 height4: 0\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 74 height4: (-1.206423, -1.61288, -0.433517, 3.593736)\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 75 height4: (0.0, 1.746769, 0.487031, 3.375213)\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 76 height4: (1.563196, 0.0, 0.853517, 2.190477)\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 77 height4: (1.297504, 1.803267, 0.0, 2.306326)\n\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 78 height4(-2, -4, -3): (-1.206423, -1.61288, -0.433517, 3.593736) 52\n    test 79 signBit(-2, -4, -3): (True, True, True)\n\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 80 height4(-2, -4, 0): (-1.297504, -1.803267, 0.0, 2.306326) 52\n    test 81 signBit(-2, -4, 0): (True, True, False)\n\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 82 height4(-2, -4, 3): (-1.206423, -1.61288, 0.433517, 3.593736) 52\n    test 83 signBit(-2, -4, 3): (True, True, False)\n\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 84 height4(-2, 0, -3): (-1.563196, 0.0, -0.853517, 2.190477) 53\n    test 85 signBit(-2, 0, -3): (True, False, True)\n\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 86 height4(-2, 0, 0): (-3.0, 0.0, 0.0, -1.0) None\n    test 87 signBit(-2, 0, 0): (True, False, False)\n\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 88 height4(-2, 0, 3): (-1.563196, 0.0, 0.853517, 2.190477) 53\n    test 89 signBit(-2, 0, 3): (True, False, False)\n\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 90 height4(-2, 4, -3): (-1.206423, 1.61288, -0.433517, 3.593736) 52\n    test 91 signBit(-2, 4, -3): (True, False, True)\n\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 92 height4(-2, 4, 0): (-1.297504, 1.803267, 0.0, 2.306326) 52\n    test 93 signBit(-2, 4, 0): (True, False, False)\n\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 94 height4(-2, 4, 3): (-1.206423, 1.61288, 0.433517, 3.593736) 52\n    test 95 signBit(-2, 4, 3): (True, False, False)\n\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 96 height4(0, -4, -3): (0.0, -1.746769, -0.487031, 3.375213) 54\n    test 97 signBit(0, -4, -3): (False, True, True)\n\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 98 height4(0, -4, 0): (0.0, -2.0, 0.0, 2.0) None\n    test 99 signBit(0, -4, 0): (False, True, False)\n\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 100 height4(0, -4, 3): (0.0, -1.746769, 0.487031, 3.375213) 54\n    test 101 signBit(0, -4, 3): (False, True, False)\n\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 102 height4(0, 0, -3): (0.0, 0.0, -1.0, 2.0) None\n    test 103 signBit(0, 0, -3): (False, False, True)\n\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 104 height4(0, 0, 0): (0.0, 0.0, 0.0, -1.0) None\n    test 105 signBit(0, 0, 0): (False, False, False)\n\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 106 height4(0, 0, 3): (0.0, 0.0, 1.0, 2.0) None\n    test 107 signBit(0, 0, 3): (False, False, False)\n\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 108 height4(0, 4, -3): (0.0, 1.746769, -0.487031, 3.375213) 54\n    test 109 signBit(0, 4, -3): (False, False, True)\n\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 110 height4(0, 4, 0): (0.0, 2.0, 0.0, 2.0) None\n    test 111 signBit(0, 4, 0): (False, False, False)\n\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 112 height4(0, 4, 3): (0.0, 1.746769, 0.487031, 3.375213) 54\n    test 113 signBit(0, 4, 3): (False, False, False)\n\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 114 height4(2, -4, -3): (1.206423, -1.61288, -0.433517, 3.593736) 52\n    test 115 signBit(2, -4, -3): (False, True, True)\n\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 116 height4(2, -4, 0): (1.297504, -1.803267, 0.0, 2.306326) 52\n    test 117 signBit(2, -4, 0): (False, True, False)\n\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 118 height4(2, -4, 3): (1.206423, -1.61288, 0.433517, 3.593736) 52\n    test 119 signBit(2, -4, 3): (False, True, False)\n\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 120 height4(2, 0, -3): (1.563196, 0.0, -0.853517, 2.190477) 53\n    test 121 signBit(2, 0, -3): (False, False, True)\n\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 122 height4(2, 0, 0): (3.0, 0.0, 0.0, -1.0) None\n    test 123 signBit(2, 0, 0): (False, False, False)\n\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 124 height4(2, 0, 3): (1.563196, 0.0, 0.853517, 2.190477) 53\n    test 125 signBit(2, 0, 3): (False, False, False)\n\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 126 height4(2, 4, -3): (1.206423, 1.61288, -0.433517, 3.593736) 52\n    test 127 signBit(2, 4, -3): (False, False, True)\n\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 128 height4(2, 4, 0): (1.297504, 1.803267, 0.0, 2.306326) 52\n    test 129 signBit(2, 4, 0): (False, False, False)\n\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 130 height4(2, 4, 3): (1.206423, 1.61288, 0.433517, 3.593736) 52\n    test 131 signBit(2, 4, 3): (False, False, False)\n\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 132 _plumbTo5: 2.356, 1.116, 0.268, 6.503, 54\n    test 133 _plumbTo5: 2.356, 0.268, 1.116, 6.503, 54\n    test 134 _plumbTo5: 1.116, 2.356, 0.268, 6.503, 54\n    test 135 _plumbTo5: 1.116, 0.268, 2.356, 6.503, 54\n    test 136 _plumbTo5: 0.268, 2.356, 1.116, 6.503, 54\n    test 137 _plumbTo5: 0.268, 1.116, 2.356, 6.503, 54\n\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 138 _plumbTo5(-9300557.963570276, -11660481.511793813, 0.0): (-3962700.829072, -4987439.729515, 0.0, 8545303.120214) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 139 _plumbTo5(0.0, -12673220.90213298, 4063222.7994714356): (0.0, -6073846.031207, 1947342.96726, 6930273.887183) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 140 _plumbTo5(2499951.171555953, 6362115.170256343, -7034566.006072541): (1621709.788784, 4136852.378785, -4574066.473867, 3431786.759912) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 141 _plumbTo5(-9399021.583039021, -7763804.562755707, -6951119.751015274): (-4256878.854533, -3529258.643752, -3159791.771735, 7664670.823131) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 142 _plumbTo5(-9612922.39422538, 3333663.5145574105, 5962187.189486663): (-5182331.629107, 1802765.616547, 3224175.948651, 5428672.808065) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 143 _plumbTo5(-11328035.20390406, -9256612.246624056, -7692781.497645869): (-4355036.26798, -3573470.200045, -2969720.914727, 10160123.963414) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 144 _plumbTo5(1598946.114177574, -11973388.958217159, 0.0): (841594.384072, -6322243.162372, 0.0, 5701669.093257) 55\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 145 _plumbTo5(-10308543.102586422, 1905777.409769761, 6374385.685515664): (-5341300.900271, 990674.649223, 3313543.184377, 5905900.86063) 52\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 146 _plumbTo5(-8735659.812590662, -6834366.166941474, 0.0): (-5007671.762691, -3929037.172672, 0.0, 4726397.30293) 49\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 147 _plumbTo5(2573537.1013443363, 5389514.603678346, 3732045.3303140495): (2328470.382191, 4879418.28281, 3378814.925965, 667103.943892) 56\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 148 _plumbTo5(1431210.08717349, 1543852.068510235, -9327538.892237142): (952507.562384, 1029789.273711, -6221664.3004, 3184316.825389) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 149 _plumbTo5(-6918305.550287351, 5935533.8579224525, 0.0): (-4827349.027207, 4150037.850017, 0.0, 2749562.724445) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 150 _plumbTo5(-9690082.180926248, -12628809.340338562, -9286452.325150812): (-3340011.67621, -4372204.152622, -3215004.809673, 12056425.654973) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 151 _plumbTo5(6115158.880607812, -9076497.651064131, -8024493.905200128): (2863993.849608, -4266165.0229, -3771654.917276, 7196944.734371) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 152 _plumbTo5(1724581.719029579, -6998172.662048493, -7855478.093763296): (1028985.282031, -4186867.746033, -4699735.122818, 4283223.48619) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 153 _plumbTo5(2415660.719960912, 3370437.398145044, 4064858.8972798586): (2653346.350446, 3699619.79338, 4461873.310774, -567869.661801) 57\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 154 _plumbTo5(4680172.356713349, 3934108.248885277, -12216049.126176806): (2177456.956147, 1836953.284537, -5703973.450785, 7284831.701745) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 155 _plumbTo5(-11233201.5712916, 6234031.774633325, 2200909.912500357): (-5478411.907088, 3050833.099543, 1077077.210703, 6671833.168324) 51\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 156 _plumbTo5(-11715241.42141346, -10821620.410300551, 0.0): (-4668119.327083, -4329550.547309, 0.0, 9581696.139952) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 157 _plumbTo5(-10345293.423252314, 0.0, -10870372.84072365): (-4381253.482469, 0.0, -4621478.658329, 8638197.203006) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 158 _plumbTo5(-7557919.112373196, -11824465.154778786, -8112109.980877586): (-2962336.280569, -4653637.304907, -3192560.055644, 9835757.473797) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 159 _plumbTo5(1838805.8848315026, -6725371.874146875, -11338156.124049723): (878072.411204, -3222840.9156, -5433254.316061, 6932430.835206) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 160 _plumbTo5(4963022.036653666, -7903436.513628428, 4517677.539411903): (3044634.97533, -4861105.025942, 2778629.195588, 3995031.782124) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 161 _plumbTo5(-8457240.198937353, 4465676.5419738265, 3454646.1876322697): (-5288403.367483, 2799487.292288, 2165664.890427, 3805152.59414) 52\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 162 _plumbTo5(0.0, -11746093.313145366, -7753017.004196427): (0.0, -5323340.222224, -3513632.219973, 7695722.228332) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 163 _plumbTo5(-11330258.40928789, -8840032.800537905, 3934021.6803214545): (-4833061.479002, -3785417.937653, 1684578.516197, 8533621.383191) 52\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 164 _plumbTo5(896051.3721805144, -12424974.283212215, -11664464.01489593): (333488.669933, -4643875.404912, -4359572.240515, 10687535.748865) 55\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 165 _plumbTo5(-11487978.414727544, 4802532.579191126, -7527288.768773187): (-5018370.895409, 2105895.452992, -3300651.805118, 8184872.220563) 52\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 166 _plumbTo5(-9546307.350822354, 4184538.924485122, 3361649.2321092547): (-5541804.863402, 2436070.68603, 1956999.371538, 4589795.483837) 52\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 167 _plumbTo5(3304719.1006247634, 6368069.492745702, 5147486.989470732): (2382176.324136, 4598995.150383, 3717472.520953, 2454720.062131) 49\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 168 _plumbTo5(-11018841.687343763, -10458281.327678155, 1715534.1896014542): (-4580406.544453, -4364532.4739, 715931.106356, 8921122.603472) 52\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 169 _plumbTo5(3689058.5582935237, 5794731.588921194, -12171672.035017816): (1677443.495773, 2644603.971725, -5554850.5793, 7599488.492078) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 170 _plumbTo5(-10633023.927465683, 5600503.720165909, -10521933.62404787): (-4230098.528732, 2237084.904542, -4202862.773683, 9604202.007609) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 171 _plumbTo5(1581203.1457984832, 972784.2195132434, -11582061.407866646): (857161.119854, 528969.075136, -6297893.034445, 5351975.722701) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 172 _plumbTo5(2258768.8877436225, -10545885.529490544, -11638568.100146323): (904335.151273, -4239307.382901, -4678490.005432, 9489473.417954) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 173 _plumbTo5(5449452.583609067, 4374805.24215859, 0.0): (4962521.845408, 3986293.169835, 0.0, 622931.115089) 55\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 174 _plumbTo5(0.0, -12044606.76119266, -11107727.393653879): (0.0, -4688878.45938, -4324100.12185, 10006214.959356) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 175 _plumbTo5(1391615.2762485908, 4643471.617773707, -8524542.497803029): (902989.115857, 3020177.55943, -5544436.689757, 3428537.552897) 55\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 176 _plumbTo5(4553332.79516834, 0.0, -11948204.910893947): (2263714.441299, 0.0, -5960198.641149, 6410816.741483) 46\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 177 _plumbTo5(-6991240.9522123765, 3573758.163707412, -11499098.86986609): (-3191114.176552, 1637205.196693, -5267888.77311, 7551104.566556) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 178 _plumbTo5(4346071.768838822, -12676369.788059339, -8625714.865661299): (1732485.105983, -5073723.993416, -3452401.680407, 9560032.826084) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 179 _plumbTo5(-11796704.490959167, 4693605.909583221, -7755512.678621262): (-5039630.336279, 2012890.588977, -3325972.201965, 8512644.395034) 52\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 180 _plumbTo5(-9857935.929440495, -7083469.29429921, -7597293.530919445): (-4375144.938277, -3155581.107273, -3384441.033989, 7952196.477921) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 181 _plumbTo5(-7849265.43363731, -12296239.547632324, -11695203.666485839): (-2666327.692743, -4195550.606205, -3990415.860312, 12322652.315549) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 182 _plumbTo5(5782789.149559475, 4230398.681706039, -10100876.341130221): (2968611.562144, 2178815.561377, -5202278.543157, 6010395.093456) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 183 _plumbTo5(-6721627.728424339, 3921334.050215278, 4341917.669793846): (-4797940.587727, 2804468.92205, 3105243.492973, 2545058.535557) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 184 _plumbTo5(3103613.487675563, 3353974.9701309437, 6140525.238593257): (2582394.320743, 2793864.508925, 5115044.92371, 1279454.190248) 56\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 185 _plumbTo5(4871989.8030514065, 1511221.8994557532, -11374991.639695557): (2484500.466358, 773203.931791, -5819856.095636, 6091330.459456) 55\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 186 _plumbTo5(3983476.357183724, -11896358.651329251, -8874776.080755137): (1646939.314496, -4937934.337559, -3683690.128022, 8990353.032611) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 187 _plumbTo5(-12232241.75844025, -8896123.163864251, -12061095.74698321): (-4016778.735414, -2934526.024306, -3978483.447105, 12975480.52009) 51\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 188 _plumbTo5(6051890.922149057, -9138866.342165468, -7899662.153607158): (2846953.972979, -4314501.247901, -3729423.981743, 7137016.591055) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 189 _plumbTo5(0.0, -12018001.797308534, -9669847.362812674): (0.0, -4969484.39998, -3998463.12413, 9046888.784727) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 190 _plumbTo5(1104159.7450067785, -8933322.846628752, -8232288.85554826): (575505.363003, -4671223.175101, -4304608.312774, 5819935.009237) 55\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 191 _plumbTo5(-12285698.649100646, -6468839.019335532, 1111825.1234923722): (-5606534.170441, -2962859.976193, 509232.485363, 7567446.403608) 51\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 192 _plumbTo5(6164586.315447328, -6570993.547312566, -7009338.728096933): (3433836.285126, -3671148.330678, -3916009.463584, 5043290.983795) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 193 _plumbTo5(5810856.18558647, 0.0, 5443736.935053998): (4643539.338101, 0.0, 4356032.71558, 1595534.108531) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 194 _plumbTo5(3045291.2748601795, -12047166.523940891, 4145312.0264436): (1477707.357284, -5866107.404541, 2018447.381737, 6722080.361991) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 195 _plumbTo5(-12310686.861604113, 4490997.749010969, 4706333.140706941): (-5620100.827678, 2057758.070922, 2156398.283032, 7562193.106949) 51\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 196 _plumbTo5(0.0, -10417005.95004532, 1096043.9416744518): (0.0, -6343372.094827, 667423.529425, 4096121.121766) 55\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 197 _plumbTo5(-9328658.157408016, -8727445.91510853, -7164361.624406569): (-4047787.679128, -3801383.053863, -3120517.243101, 8276857.235783) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 198 _plumbTo5(4004540.7175387996, -11570302.120248156, -9648174.197345335): (1632110.000481, -4734504.672948, -3947929.189058, 9211370.549612) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 199 _plumbTo5(4951059.590957711, -10579905.153037313, 0.0): (2695071.612036, -5776786.518702, 0.0, 5306545.993067) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 200 _plumbTo5(-9817215.707186649, 1404424.6605718988, -7635711.877316512): (-4986241.366763, 715685.986293, -3891068.931154, 6151018.194862) 52\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 201 _plumbTo5(-9226958.012842577, -11904773.189821461, 1232606.3717949751): (-3879997.259142, -5025614.86624, 520339.719152, 8741860.918991) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 202 _plumbTo5(-9294215.903196817, -9475838.607438505, -7258008.370200141): (-3904243.12217, -3996117.310094, -3060782.896861, 8757616.899067) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 203 _plumbTo5(1813071.5166954175, -11870699.784259336, 0.0): (959984.408777, -6305237.986816, 0.0, 5630463.802609) 55\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 204 _plumbTo5(-8070414.213571079, 2121751.216468508, -11940859.681137668): (-3520659.244601, 929119.789927, -5228865.699716, 8195944.314347) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 205 _plumbTo5(1983182.8093028092, -7201637.66773865, 3707586.824689597): (1514301.762836, -5507719.018525, 2835499.643779, 1962076.929429) 55\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 206 _plumbTo5(5748153.737118241, -6882237.916418789, 2587629.85032861): (3918240.471327, -4701352.809943, 1767633.784285, 2962640.031508) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 207 _plumbTo5(3599567.4561901274, 3568156.378792255, 5087296.333534707): (3192628.239273, 3167175.349451, 4515586.787491, 808230.856373) 55\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 208 _plumbTo5(6332182.791791897, 650768.1906614412, 5229220.500981262): (4889934.279374, 503316.759349, 4044360.595285, 1872355.65326) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 209 _plumbTo5(-7686777.522571826, 5938745.815625527, 3226655.8410251727): (-4775676.603719, 3699069.150747, 2009771.869735, 3869297.96249) 52\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 210 _plumbTo5(-11334586.650609732, 3226213.631890666, -9803475.289560119): (-4699110.593827, 1342813.41715, -4080346.4914, 8962753.042975) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 211 _plumbTo5(1209250.1021613986, -7927451.295950009, -9884218.82879363): (603947.984131, -3972655.39577, -4953189.093461, 6349949.253097) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 212 _plumbTo5(-9468560.73748405, -7719648.903467059, 5285089.176401713): (-4521609.402029, -3699428.974742, 2532704.373933, 6943350.624269) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 213 _plumbTo5(-11609395.379492946, -12479358.161318503, -8004658.667638679): (-3916521.929023, -4228849.152327, -2712479.469611, 12460271.325154) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 214 _plumbTo5(-7482168.509654696, -10663969.206387935, -6775795.621459396): (-3238104.211183, -4632777.701726, -2943591.132153, 8311025.447159) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 215 _plumbTo5(-12051586.67131921, -7937133.918586954, 6171101.6767646205): (-4880071.659805, -3226907.639097, 2508879.900608, 9328918.881743) 50\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 216 _plumbTo5(2693704.1644080514, 5886511.878573126, -7713610.831206213): (1701853.791801, 3728264.716598, -4885431.688261, 3693290.570535) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 217 _plumbTo5(4191881.2603775556, 5756491.153644105, 3844435.861708639): (3297512.922422, 4534806.33283, 3028527.346869, 1719917.216012) 55\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 218 _plumbTo5(-7620050.690786623, 6233697.178296718, -11376300.748524757): (-3218491.145035, 2643199.220824, -4823694.2317, 8671911.795086) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 219 _plumbTo5(-10402923.998065077, -9278259.065432366, -10991960.007401204): (-3722932.992823, -3334840.833801, -3950732.720985, 11380921.834595) 52\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 220 _plumbTo5(1664289.6338429423, -10314363.339718409, -11403226.716545999): (683673.150532, -4253884.829219, -4702896.915317, 9087652.497142) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 221 _plumbTo5(-7218119.32792659, 1021119.5917858669, 2969411.4999289806): (-5831133.043799, 825974.955578, 2401921.639022, 1511243.568599) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 222 _plumbTo5(2362590.260898539, -11179920.812016979, 4029496.2855799953): (1239737.875911, -5885318.850543, 2121179.956116, 5738926.608889) 55\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 223 _plumbTo5(-6425902.437780579, 0.0, -7204483.762955237): (-4233887.154159, 0.0, -4757752.759748, 3285030.229037) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 224 _plumbTo5(-7027549.803612396, 1892547.8059282005, 2643227.812884008): (-5771696.602951, 1556211.005249, 2173474.378512, 1382374.0428) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 225 _plumbTo5(2231918.1899190005, 1142355.6533181877, -8953604.648739627): (1527716.907525, 783588.596899, -6141602.328426, 2920953.662136) 55\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 226 _plumbTo5(-6712867.954197352, -10099305.754589057, -6972710.889221444): (-3049882.60141, -4605349.612886, -3179563.898031, 7615049.56507) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 227 _plumbTo5(-11544512.912700232, 5172690.252464141, -6575481.046907441): (-5146737.608908, 2314695.737583, -2942386.38478, 7892973.983796) 52\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 228 _plumbTo5(-7231418.854726524, -6931901.764431111, 5928608.696365689): (-3949987.12744, -3797969.170954, 3248235.531947, 5270078.555566) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 229 _plumbTo5(2641171.1753598885, -8793189.37091239, -6725045.423073929): (1475827.679651, -4928056.107131, -3768948.901374, 5003577.445727) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 230 _plumbTo5(0.0, -9577834.41768268, 888799.0753286064): (0.0, -6351100.567623, 589361.88746, 3240597.779516) 55\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 231 _plumbTo5(4002145.9929036815, 2688128.1429674844, 4846498.54240657): (3728737.130986, 2505637.898739, 4517475.240442, 465092.924316) 56\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 232 _plumbTo5(3585868.545969172, 1409502.4515369476, 2541452.690286451): (4950202.413631, 1940818.862431, 3499490.281395, -1749725.70905) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 233 _plumbTo5(-8384452.668034479, 1341358.3925355002, 5593378.076872706): (-5243384.864758, 840963.227664, 3506733.764323, 3804048.731667) 52\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 234 _plumbTo5(-11127395.128320502, -7531662.078340402, -11376309.34465787): (-4015505.65089, -2729654.017282, -4122988.207916, 11236054.506381) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 235 _plumbTo5(3643497.5895474995, -7089488.769009512, -10173411.609088594): (1792017.513542, -3498846.225523, -5020786.16202, 6547537.044166) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 236 _plumbTo5(5284647.583569344, 3370368.361303387, 2734738.991192815): (4918192.413272, 3138118.630801, 2546286.185455, 473015.633089) 50\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 237 _plumbTo5(2165182.6086123274, -11519500.837459859, -9758941.874604877): (901938.174806, -4817510.368655, -4081184.069338, 8874085.667761) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 238 _plumbTo5(-12600826.927904561, -9290879.419657387, -12241523.357668605): (-4027695.375886, -2983357.849127, -3930768.977006, 13503779.150543) 50\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 239 _plumbTo5(5612095.245443665, -10677594.811703626, -11820492.387762226): (2110828.183871, -4032984.994641, -4464602.574506, 10512793.425261) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 240 _plumbTo5(4915145.849724457, -10885520.301474974, -6803086.4809331875): (2272648.496157, -5051467.360276, -3156961.182649, 7369748.684664) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 241 _plumbTo5(-6728975.719938926, 3345234.81829062, -12683648.048361583): (-2900434.964377, 1447455.164183, -5488040.230257, 8368755.212366) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 242 _plumbTo5(4910584.480358762, -12653948.216023926, 3085021.47222811): (2242049.885102, -5798659.883821, 1413691.381391, 7543831.869565) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 243 _plumbTo5(-8976906.995057743, -9619108.708378227, 5341574.496066876): (-4017806.465846, -4321285.931711, 2399618.549335, 7830370.93785) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 244 _plumbTo5(-8463830.60810678, -7621108.048355309, -12579467.635422356): (-3168636.328414, -2865193.748246, -4729249.094881, 10596401.956511) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 245 _plumbTo5(1096467.0995059202, -11549861.822415227, 0.0): (600978.394585, -6349819.993803, 0.0, 5223594.937973) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 246 _plumbTo5(-10948589.651644278, 4096868.3982894733, -9856144.814623823): (-4550546.687626, 1709491.36288, -4112599.499603, 8923162.873349) 52\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 247 _plumbTo5(4619417.249218382, 5237425.25954452, 3282666.6246967996): (3810828.926746, 4325750.377186, 2711244.825867, 1345915.687753) 55\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 248 _plumbTo5(-10352564.08620045, 2632384.685482822, -12615030.119492823): (-3979375.679008, 1016055.563474, -4869120.711095, 10160175.336446) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 249 _plumbTo5(-6374498.1621567765, 5714309.31746465, -12658681.207655726): (-2650451.17611, 2385319.632571, -5284035.74732, 8907081.112355) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 250 _plumbTo5(-9547671.32285483, 5249547.247491227, -10732297.281332353): (-3967173.537695, 2189855.357686, -4476934.281938, 8923745.63986) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 251 _plumbTo5(-11972987.62530657, -12507480.894571241, 1919466.9395276478): (-4366969.326822, -4581483.837835, 703089.976087, 11052262.963641) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 252 _plumbTo5(1652783.0323908583, 2840836.833053788, 0.0): (3220011.208786, 5499562.319795, 0.0, -3086263.982672) 52\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 253 _plumbTo5(6115935.680307476, 5225325.066884209, 4422997.138710556): (4238219.612231, 3628533.76556, 3071366.203986, 2811132.561087) 49\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 254 _plumbTo5(4786881.182332999, 5664841.95346354, -8266982.897206812): (2740994.147522, 3253066.066256, -4747315.184507, 4731847.15488) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 255 _plumbTo5(-6496617.750344593, 5554441.1092062695, 1471685.403438614): (-4764933.099421, 4081208.542633, 1081336.529752, 2306841.60025) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 256 _plumbTo5(-12176778.11646319, -9682834.344611239, 4347916.439438347): (-4790470.31358, -3824924.736874, 1717496.315524, 9787326.394866) 52\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 257 _plumbTo5(-9365644.216718012, 4733451.038753265, -11073116.001735907): (-3901241.006007, 1979474.085869, -4630588.989784, 8885395.084405) 52\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 258 _plumbTo5(4450309.889617256, 645982.6533403223, 3807808.3053228823): (4809066.396238, 697679.685853, 4112548.773739, -473545.7394) 56\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 259 _plumbTo5(-10897654.174125204, 3427500.0593593866, 4452955.484309489): (-5650155.448166, 1782842.575288, 2316217.322187, 5899728.052404) 52\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 260 _plumbTo5(-10300722.762891443, 4646709.354523863, 0.0): (-5795024.708596, 2621875.532137, 0.0, 4939763.857186) 52\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 261 _plumbTo5(-6407802.803643308, -11779837.799284488, 6016502.484862392): (-2770429.304206, -5112551.894435, 2611181.883109, 8323424.518318) 49\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 262 _plumbTo5(-9312220.916544143, 0.0, 2930677.098050242): (-6064270.366404, 0.0, 1912975.713433, 3403659.631104) 50\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 263 _plumbTo5(4223812.965309883, 4281649.191668366, 2485617.640313916): (4133584.137102, 4190786.705375, 2432868.281192, 138490.89408) 58\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 264 _plumbTo5(2997827.5860604886, 2363371.7748296508, 3693859.292852399): (3599054.380706, 2833535.475957, 4428726.434305, -1059508.036801) 55\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 265 _plumbTo5(-12671667.096779136, -8014332.614031527, -12514806.489256885): (-4121763.16835, -2618732.065372, -4089228.926937, 13160688.421384) 52\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 266 _plumbTo5(843842.4429774315, 5991376.498376857, 5431653.017581945): (660983.193097, 4699901.98138, 4260809.849692, 1752774.274433) 55\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 267 _plumbTo5(6048815.4644721355, -6531440.6165109, 2680947.655849851): (4138881.420978, -4478622.839951, 1838318.875985, 2927786.21742) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 268 _plumbTo5(4879174.123259943, 6178552.909205879, -9312714.500258692): (2543785.883293, 3231623.200863, -4870860.478112, 5819664.946658) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 269 _plumbTo5(5004240.984960998, 5008152.657427486, -7621306.588594056): (3059892.632886, 3070304.181009, -4672287.837379, 4028952.571922) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 270 _plumbTo5(1028902.8176837482, 1463749.009664159, -11899885.427998018): (543636.004436, 775853.372204, -6307414.004629, 5655477.071767) 55\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 271 _plumbTo5(-7824340.925363246, 0.0, 6317410.509504235): (-4947745.089333, 0.0, 4004698.984614, 3690994.202275) 50\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 272 _plumbTo5(2676863.5805767775, -11327824.769266207, 4593035.990907264): (1359964.170989, -5774128.632267, 2341181.627765, 6135846.552017) 55\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 273 _plumbTo5(2249619.3764058473, 0.0, 2000528.005466659): (4772982.699562, 0.0, 4212824.696466, -3355833.593856) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 274 _plumbTo5(4956193.912239468, -6662625.684179544, -12509472.725925844): (2097393.079693, -2830507.469295, -5314377.642959, 8638707.395552) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 275 _plumbTo5(-7710884.382492995, -8115183.079708684, -10228275.549669709): (-3231300.879861, -3414058.684292, -4302982.275302, 8790696.179798) 51\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 276 _plumbTo5(-11910621.648411252, 1849226.3777106311, -11164643.952148305): (-4606783.054862, 718203.441796, -4336071.648631, 10062537.989322) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 277 _plumbTo5(-8963429.03901859, -12098854.85488883, -12528055.925180355): (-2906246.229705, -3940759.795174, -4080495.9656, 13213827.903356) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 278 _plumbTo5(927303.6460785953, -8533293.54233783, 4443040.206372032): (610541.887073, -5631299.878717, 2932033.79078, 3287102.922578) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 279 _plumbTo5(-6431337.940867692, -7913672.569001737, 5828173.463683117): (-3481478.58698, -4297161.58015, 3164693.971997, 5373541.192067) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 280 _plumbTo5(-8448735.745283416, 5129243.357844096, -10571551.163388707): (-3710087.82749, 2260926.228049, -4659791.368339, 8101291.941429) 51\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 281 _plumbTo5(5393086.038674854, -8494853.68575136, 5585824.584238706): (2979754.3005, -4707685.779418, 3095527.08197, 5135016.307574) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 282 _plumbTo5(-11205486.606434723, -7011822.282899194, -10835770.19866757): (-4165498.890505, -2617612.609663, -4045090.906694, 10723051.381917) 52\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 283 _plumbTo5(6275896.587395679, -10723555.081638275, 3233841.235540427): (3107296.274643, -5327485.16049, 1606561.516206, 6465727.942069) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 284 _plumbTo5(3125485.316489174, -10929776.597293055, -12044882.966157196): (1198721.510979, -4209356.554006, -4638751.976627, 10184657.115216) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 285 _plumbTo5(1128407.9171078762, -11414403.065658463, 1389920.7991218064): (621055.484164, -6301329.382455, 767299.227734, 5175769.179769) 55\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 286 _plumbTo5(3289455.1444503507, -10532590.717592202, 768720.1252257226): (1891368.133389, -6073373.389023, 443260.456245, 4684569.400707) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 287 _plumbTo5(-8273239.3690780625, 4551919.260081756, 2824563.0226685693): (-5337507.566666, 2943707.935669, 1826619.417213, 3492958.104434) 52\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 288 _plumbTo5(-12133632.704022642, 2746254.8093428193, 2446007.3482782515): (-6083621.960558, 1381562.116047, 1230502.798798, 6320005.336468) 51\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 289 _plumbTo5(4775429.171595646, -9671093.87977823, -12524798.659580927): (1835296.133104, -3732249.080536, -4833479.934748, 10152371.32696) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 290 _plumbTo5(-10435782.82633078, -7925112.822431733, -8403700.54123353): (-4260067.658051, -3248090.663106, -3444194.209003, 9198407.317465) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 291 _plumbTo5(3603584.0845118295, 0.0, -10120993.933385288): (2133439.195914, 0.0, -6008383.520808, 4367481.013023) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 292 _plumbTo5(-9664916.035389349, -7917807.310617949, -12320730.836396314): (-3499114.577165, -2878933.301722, -4479784.042203, 11175321.271853) 52\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 293 _plumbTo5(-11223451.251595035, -11348169.077705335, -12213872.07898085): (-3546933.966741, -3602915.002067, -3877707.797474, 13726234.489077) 52\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 294 _plumbTo5(-6811282.166974648, -12177324.354896916, -8996003.148229187): (-2606422.576339, -4679225.458155, -3456732.925814, 10226722.1454) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 295 _plumbTo5(-11154863.461440096, -8947080.852138057, -11618316.715300346): (-3846146.833057, -3098561.610353, -4023608.842631, 12054132.22703) 51\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 296 _plumbTo5(4191966.3726614984, 3123849.0923887882, 2947354.2394098826): (4448807.200943, 3313881.641178, 3126654.283481, -366371.514279) 46\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 297 _plumbTo5(5665049.081532614, 2566892.2880729376, -9480432.800548682): (3177104.472307, 1443841.706181, -5332562.213074, 4965474.941886) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 298 _plumbTo5(5556124.743367095, 1168361.8576344524, 1187537.9875167399): (6091100.197387, 1280029.85706, 1301041.50474, -558168.009583) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 299 _plumbTo5(2276563.482327411, -8689794.726123603, -7465168.684773928): (1239389.701005, -4745367.133163, -4076576.523879, 5302527.257983) 55\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 300 _plumbTo5(-8734090.01152988, 0.0, 4418867.843251729): (-5673436.483401, 0.0, 2877136.978074, 3427029.921067) 52\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 301 _plumbTo5(1444387.4150171918, 0.0, 4211625.268281281): (2073822.401778, 0.0, 6029360.501319, -1923629.324996) 55\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 302 _plumbTo5(-11133071.204268023, -11781972.996607397, -11485371.789095623): (-3559439.343785, -3784211.083498, -3688891.806325, 13494784.003409) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 303 _plumbTo5(-9128602.027238317, -8530971.77034427, 3486461.3258541655): (-4473434.198708, -4194949.275765, 1714384.438693, 6603933.303668) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 304 _plumbTo5(-9720915.901739083, 3730342.60333391, 4413725.624805318): (-5464855.737041, 2103296.034562, 2488587.166636, 4946462.04328) 52\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 305 _plumbTo5(-10972481.63377289, -7697329.818069239, 6184679.253598231): (-4724306.631505, -3326894.662448, 2673072.410756, 8394746.984105) 52\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 306 _plumbTo5(-12027956.281505307, 1110329.7659182232, -9924933.257068772): (-4889552.230375, 453174.480113, -4050749.766503, 9267939.207164) 52\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 307 _plumbTo5(-8103963.2829771275, -10799194.916861724, -11397381.355404545): (-2913442.831149, -3899190.416976, -4115115.734203, 11295262.601508) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 308 _plumbTo5(937760.1549680583, 4827669.481438421, -8889403.069840351): (587287.716319, 3031022.799018, -5581111.835477, 3780947.119846) 55\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 309 _plumbTo5(-11922254.151162934, -11747879.35310438, -7441515.373637279): (-4135065.269048, -4092556.279272, -2592330.408245, 11948174.625401) 48\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 310 _plumbTo5(-7450856.414664825, -9366628.03196191, -11030656.150018612): (-2908303.9347, -3671136.457607, -4323274.43127, 9902644.941014) 50\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 311 _plumbTo5(1098222.4362153925, -8032723.312762036, 0.0): (862730.359678, -6319374.354403, 0.0, 1729456.900655) 55\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 312 _plumbTo5(1299127.4897925493, 2885681.3581270934, -12324231.3438349): (649043.363274, 1446551.021563, -6177894.257751, 6345956.592424) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 313 _plumbTo5(4456791.842035057, -9415133.72987674, -12287162.106862785): (1757647.802402, -3728273.817222, -4865496.206044, 9731745.93566) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 314 _plumbTo5(2071973.9900840144, -7049913.407619529, -7891732.311576463): (1222207.569923, -4170071.603383, -4667971.341485, 4405476.88435) 55\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 315 _plumbTo5(2046982.703788181, 6049444.90896574, 926986.7966164164): (2022381.277479, 5977223.284321, 915919.674686, 77095.229623) 59\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 316 _plumbTo5(5396414.831406125, -12570693.831675846, 764714.9246019324): (2503220.741109, -5852227.502514, 356005.267035, 7326350.076566) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 317 _plumbTo5(-9197102.75829913, 4846690.558383889, 2564943.113154864): (-5460989.53354, 2885713.750285, 1527150.493499, 4345225.608819) 52\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 318 _plumbTo5(0.0, 2318329.077963764, 3188269.6439349214): (0.0, 3751090.547009, 5158737.156961, -2436297.938897) 51\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 319 _plumbTo5(-12684552.315130716, 5543633.716783456, -11039834.326458577): (-4551950.193988, 1997987.751458, -3978824.221966, 11338813.265417) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 320 _plumbTo5(-6981850.679551049, -10229708.153014995, -12072336.553961737): (-2564251.063275, -3773153.649096, -4452732.082674, 10920652.669628) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 321 _plumbTo5(4717153.364383534, -11550204.852326058, -9687614.149053277): (1897251.699922, -4664268.017528, -3912055.079591, 9419397.754364) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 322 _plumbTo5(0.0, -9149649.80780371, -12025931.976038957): (0.0, -3862119.471301, -5076150.223256, 8732550.799781) 52\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 323 _plumbTo5(-10400971.886727747, -6619927.338470895, -9929357.98233453): (-4175137.323295, -2668094.583735, -4001874.608708, 9461134.03759) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 324 _plumbTo5(-11028176.160065496, -9020134.774358388, -12389868.361876594): (-3710317.814977, -3048330.981378, -4187062.798472, 12509976.435296) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 325 _plumbTo5(2160858.3727727593, -12142093.540891415, 1538265.3958220098): (1105327.992916, -6231419.001309, 789441.603717, 6050698.71728) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 326 _plumbTo5(-11778932.210256143, 2715666.6502514402, 3389402.4416597723): (-5964418.038968, 1379692.296524, 1721964.639273, 6194655.062775) 51\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 327 _plumbTo5(6242300.4629256865, -11609606.987093499, -11621007.296069987): (2256327.514534, -4214473.248211, -4218552.76137, 11196978.007461) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 328 _plumbTo5(5053610.033101153, 5726798.200078992, 1099811.8257685653): (4168403.736804, 4729243.125054, 908231.344581, 1347371.290878) 55\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 329 _plumbTo5(5294780.00028327, 6375398.744487379, 3043351.136814746): (3816120.677121, 4603600.762269, 2197554.80587, 2457859.417706) 51\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 330 _plumbTo5(2365954.408033079, 2905572.0641120616, 4151171.3655798878): (2699030.899007, 3311481.322775, 4731105.714541, -782320.98541) 57\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 331 _plumbTo5(-8069919.063106484, -11908872.159137841, -9885496.27648023): (-2936911.077608, -4352645.583092, -3613059.39678, 11080965.456924) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 332 _plumbTo5(5850495.9458770165, 5722036.744563128, 5843952.116368118): (3700618.844724, 3628327.771535, 3705604.212589, 3684850.142326) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 333 _plumbTo5(-10331153.415166039, -6434233.675718262, 0.0): (-5396216.804492, -3371586.314296, 0.0, 5808046.850001) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 334 _plumbTo5(3164853.877214977, 4939341.954363132, 1068091.655227124): (3383371.408421, 5277929.282849, 1141310.068827, -409575.666448) 56\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 335 _plumbTo5(5498517.17816853, -8925354.25639353, 2445953.3664836087): (3248545.573968, -5287680.224561, 1449052.124429, 4391908.089656) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 336 _plumbTo5(-8710547.801684523, -10332953.497187626, -8930947.738230154): (-3416510.721256, -4069489.151947, -3517282.003837, 9826779.273841) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 337 _plumbTo5(0.0, -11550920.057393795, -7768721.120777687): (0.0, -5292693.766022, -3559627.516598, 7542006.714579) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 338 _plumbTo5(0.0, -9803080.937976882, 4458103.176905968): (0.0, -5806187.167737, 2640430.082921, 4390796.657461) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 339 _plumbTo5(-7276509.183351506, -8917367.667206984, 6249199.0544481715): (-3531706.297866, -4343135.080566, 3043589.887632, 6724810.966727) 50\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 340 _plumbTo5(2823245.411586701, 4582795.479539332, 5350381.393488043): (2369418.395217, 3850287.623379, 4495167.868088, 1214049.790639) 56\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 341 _plumbTo5(-12528344.906528033, -12365699.29317108, -12617957.75277874): (-3673786.830107, -3643403.961568, -3717671.312057, 15287142.745043) 51\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 342 _plumbTo5(0.0, -7535383.558510379, 1584260.232439418): (0.0, -6241924.809388, 1312314.882847, 1321737.420536) 56\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 343 _plumbTo5(5681134.892072343, 0.0, 6021997.242841809): (4366420.627852, 0.0, 4635589.853592, 1910654.088398) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 344 _plumbTo5(-9036049.386057062, -6596315.918400789, 3304156.40609904): (-4924735.110083, -3606086.672545, 1806304.605855, 5299805.282658) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 345 _plumbTo5(-7336909.023578265, 6090889.994283991, 4150459.4186733067): (-4486421.146722, 3734250.570018, 2544574.576346, 4032108.2127) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 346 _plumbTo5(4362760.760163215, 5289584.135459404, -11656574.830657663): (2050393.728071, 2494868.309682, -5497838.988507, 7147552.379056) 52\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 347 _plumbTo5(-12461395.797481904, -7119758.596486539, -6921685.5837864615): (-4970253.759135, -2851253.421807, -2771894.543209, 9568600.270959) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 348 _plumbTo5(-7566143.677164096, 4543104.188867149, -9082596.857817126): (-3797966.248649, 2288156.447948, -4574444.100018, 6293440.373492) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 349 _plumbTo5(4842339.5176830925, -8813228.308928099, -6767263.109535832): (2539964.542317, -4637648.671583, -3560995.05181, 5746003.018881) 52\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 350 _plumbTo5(-9972761.31748726, 4662530.453764608, 4256112.435655717): (-5371604.589518, 2519181.262485, 2299569.004666, 5439912.792356) 52\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 351 _plumbTo5(3016605.4966718997, 1304241.0110947676, -11385253.216890456): (1618619.36137, 702003.401772, -6128012.702643, 5473173.960073) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 352 _plumbTo5(-11724918.431583608, -9261068.189347908, -7807596.816657645): (-4419360.915762, -3505368.646064, -2955180.890694, 10490242.521891) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 353 _plumbTo5(-12134588.631240936, 4242014.558076039, 2342159.198180888): (-5903546.269141, 2070913.070057, 1143408.0531, 6706457.701156) 50\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 354 _plumbTo5(0.0, 0.0, 3985743.815150218): (0.0, 0.0, 6378318.0, -2392574.18485) None\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 355 _plumbTo5(-7921057.044654415, -10864037.640105005, 2687706.006705687): (-3671872.603697, -5054343.586541, 1250403.451862, 7339887.740521) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 356 _plumbTo5(-10775405.47248439, -9368474.21826664, 5537083.69858114): (-4471463.249369, -3902980.164961, 2306763.151984, 8946858.869618) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 357 _plumbTo5(-8604739.504291004, -10561886.97668027, -7556399.07722975): (-3509688.285391, -4325183.658557, -3094370.379341, 9206829.818254) 52\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 358 _plumbTo5(3925721.009644486, 1893536.4839279293, 1316232.4249157286): (5489642.130955, 2640807.359749, 1835690.209158, -1809447.270617) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 359 _plumbTo5(-10543317.047290618, 4176583.939927537, -10467484.347941227): (-4341506.282918, 1726653.407504, -4327336.664623, 9064547.97239) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 360 _plumbTo5(5504910.383288863, 0.0, 3941980.7186291814): (5173606.529546, 0.0, 3706233.833182, 406618.786461) 55\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 361 _plumbTo5(-11576418.057469497, 5150121.48029749, -7199784.914373723): (-5048956.293486, 2254728.540757, -3152034.42804, 8208248.373083) 52\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 362 _plumbTo5(5747634.1165411, 3019800.754534434, -12588014.348788455): (2578891.377618, 1359987.253552, -5669027.170724, 7788985.490662) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 363 _plumbTo5(-10699975.163764765, -12469268.54123148, 5851074.412260858): (-3897604.102395, -4561587.603006, 2140447.685329, 11071242.955692) 51\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 364 _plumbTo5(-10008114.974938048, -11305255.24208844, -10856545.703370556): (-3418502.004548, -3878738.917149, -3724736.705294, 12224518.125847) 52\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 365 _plumbTo5(-11339708.501863228, 3353573.953624922, -11220486.396653067): (-4420373.384937, 1312653.581403, -4391856.30456, 9933415.493209) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 366 _plumbTo5(-11806013.5893758, 1206482.9786856282, -9638751.028646413): (-4907741.129485, 503510.885612, -4022563.173067, 8923110.372717) 52\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 367 _plumbTo5(-11812031.773843225, -6532810.614432961, 1153162.7559880565): (-5542356.608309, -3076255.443169, 543010.078875, 7185324.392308) 51\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 368 _plumbTo5(5552167.813835973, -8437735.788774159, -12516869.811745383): (2193043.778965, -3346421.513004, -4964147.812881, 9708182.369962) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 369 _plumbTo5(4323988.540673599, -10272313.882541187, 2984426.303452739): (2383050.041963, -5678445.211525, 1649748.547077, 5162580.395082) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 370 _plumbTo5(-12000563.945659896, -11375329.638874426, 0.0): (-4611901.004216, -4389788.847301, 0.0, 10168093.243721) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 371 _plumbTo5(-7084905.644767572, -9716801.529767435, -6734404.088522686): (-3267099.540117, -4497050.494859, -3116724.990249, 7410063.857837) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 372 _plumbTo5(-9299492.807924783, 0.0, -10038494.747635415): (-4319543.019846, 0.0, -4679595.851858, 7315579.0794) 52\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 373 _plumbTo5(5100849.267087828, -11657175.221031226, 4787967.534215877): (2384620.222134, -5469247.26915, 2246365.243671, 7219978.861854) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 374 _plumbTo5(4665159.392919396, 5463633.976949447, 1299180.9722421006): (4068010.18408, 4768381.775495, 1133855.890443, 931286.842985) 55\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 375 _plumbTo5(-8064858.445005396, -9388146.191553729, 1896093.2198699364): (-4094680.727043, -4782365.842125, 965868.406734, 6151491.034079) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 376 _plumbTo5(-10676921.034412017, 4434243.542993603, 0.0): (-5871035.613149, 2445706.819791, 0.0, 5201039.605871) 51\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 377 _plumbTo5(-9023055.192998646, 3544143.0538191493, -8462620.315925544): (-4457300.455779, 1756747.779582, -4194674.045764, 6500481.793821) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 378 _plumbTo5(3476291.033153091, -7950656.589750505, 6016638.684900147): (2094107.737736, -4802288.995187, 3634088.113927, 4183204.082504) 55\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 379 _plumbTo5(0.0, 3559646.7792214956, 0.0): (0.0, 6378388.0, 0.0, -2818741.220779) None\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 380 _plumbTo5(3095613.853824863, 3997508.4430838083, 2736568.083855892): (3432883.607156, 4429795.814097, 3032505.56924, -623058.78768) 56\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 381 _plumbTo5(2835926.5021857405, -9045140.68774168, 2002398.4306926245): (1862547.444274, -5954303.424435, 1318144.053108, 3311939.889531) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 382 _plumbTo5(2312432.2162906793, -9929107.155342186, -9788039.941453634): (1039780.026627, -4481180.685756, -4417461.370345, 7755169.927366) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 383 _plumbTo5(2677701.474612112, 3278501.0486438787, -12067198.879795307): (1331054.876184, 1635234.070052, -6018749.836018, 6410734.6895) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 384 _plumbTo5(-9173069.786116466, 2033137.2534150574, 1300061.1115269251): (-6148182.751552, 1365722.936214, 873286.091431, 3126902.678444) 51\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 385 _plumbTo5(-11242456.19353453, 1362723.5105300057, 4101669.110195199): (-5933679.471218, 721525.172334, 2171700.219653, 5684982.455098) 51\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 386 _plumbTo5(-12251486.837373294, 1314865.8046799877, -10257127.474041311): (-4856380.179641, 523324.665104, -4082345.783758, 9666543.786563) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 387 _plumbTo5(-6729347.354649825, -12449399.222153336, -6859252.117053115): (-2718698.294944, -5049868.071154, -2782292.201528, 9352003.490564) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 388 _plumbTo5(-11135625.716704542, -8627513.879856825, -8846859.068641137): (-4253677.71168, -3309357.919956, -3393448.844403, 10265655.080486) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 389 _plumbTo5(-7911438.471988227, 3565866.392270913, 697649.5073143232): (-5778364.042342, 2609170.203206, 510472.179023, 2345273.858808) 52\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 390 _plumbTo5(1149029.6659410016, -7426070.196785206, 1807972.6442612736): (947089.604808, -6128191.102689, 1491981.502415, 1350970.145084) 56\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 391 _plumbTo5(3455972.2292246306, 4869644.106263283, 0.0): (3688469.895537, 5194895.921711, 0.0, -399804.837755) 56\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 392 _plumbTo5(-12623751.72037495, -8608825.23727696, 3430978.0105257914): (-5123195.52213, -3507798.019804, 1397986.486447, 9295798.862573) 52\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 393 _plumbTo5(0.0, 4168993.1829979364, 3993212.66081889): (0.0, 4606235.374963, 4412029.224784, -605465.150678) 52\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n\n    test 394 _plumbTo5: (0.545455, 1.090909, 0.818182, 3.916483)\n    test 395 _plumbTo5: None\n    test 396 _plumbTo5: 0\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n\n    test 397 _plumbTo5: (1.090909, 0.545455, 0.818182, 3.916483)\n    test 398 _plumbTo5: None\n    test 399 _plumbTo5: 0\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n\n    test 400 _plumbTo5: (0.742781, 1.114172, 1.485563, 3.385165)\n    test 401 _plumbTo5: None\n    test 402 _plumbTo5: 0\n# lazily imported pygeodesy.Triaxial from .triaxials.triaxial5 by ellipsoids.py line 1905\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n\n    test 403 toTriaxial: name='WGS84', a=6378137, b=6378137, c=6356752.314245179, e2ab=0, e2bc=0.00669438, e2ac=0.00669438\n    test 404 toEllipsoid: name='_', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518\n    test 405 toEllipsoid: name='', a=2, f=-0.5, f_=-2, b=3\n\n    test 406 Triaxials: 14\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 407 Amalthea: name='Amalthea', a=125000, b=73000, c=64000, e2ab=0.658944, e2bc=0.231375493, e2ac=0.737856\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 408 Ariel: name='Ariel', a=581100, b=577900, c=577700, e2ab=0.01098327, e2bc=0.000692042, e2ac=0.011667711\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 409 Earth: name='Earth', a=6378173.435, b=6378103.9, c=6356754.399999999, e2ab=0.000021804, e2bc=0.006683418, e2ac=0.006705077\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 410 Enceladus: name='Enceladus', a=256600, b=251400, c=248300, e2ab=0.040119337, e2bc=0.024509841, e2ac=0.06364586\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 411 Europa: name='Europa', a=1564130, b=1561230, c=1560930, e2ab=0.003704694, e2bc=0.000384275, e2ac=0.004087546\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 412 Io: name='Io', a=1829400, b=1819300, c=1815700, e2ab=0.011011391, e2bc=0.003953651, e2ac=0.014921506\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 413 Mars: name='Mars', a=3394600, b=3393300, c=3376300, e2ab=0.000765776, e2bc=0.009994646, e2ac=0.010752768\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 414 Mimas: name='Mimas', a=207400, b=196800, c=190600, e2ab=0.09960581, e2bc=0.062015624, e2ac=0.155444317\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 415 Miranda: name='Miranda', a=240400, b=234200, c=232900, e2ab=0.050915557, e2bc=0.011070811, e2ac=0.061422691\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 416 Moon: name='Moon', a=1735550, b=1735324, c=1734898, e2ab=0.000260419, e2bc=0.000490914, e2ac=0.000751206\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 417 Tethys: name='Tethys', a=535600, b=528200, c=525800, e2ab=0.027441672, e2bc=0.009066821, e2ac=0.036259685\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 418 WGS84_3: name='WGS84_3', a=6378171.36, b=6378101.609999999, c=6356751.84, e2ab=0.000021871, e2bc=0.006683505, e2ac=0.00670523\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 419 WGS84_35: name='WGS84_35', a=6378172, b=6378102, c=6356752.314245179, e2ab=0.00002195, e2bc=0.006683478, e2ac=0.006705281\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 420 WGS84_3r: name='WGS84_3r', a=6378172, b=6378102, c=6356752, e2ab=0.00002195, e2bc=0.006683577, e2ac=0.00670538\n\n    testTriaxial3(pygeodesy.triaxials.triaxial3, 26.02.20)\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 421 Triaxial3: Triaxial3(name='', a=3, b=2, c=1, k2=0.375, kp2=0.625, volume=25.132741229, area=48.882146303, R2=1.972287405)\n    test 422 reverseLatLon: (Degrees(58.69140449), Degrees(75.11263103), None, 2.586065, 'ELLIPSOIDAL')\n    test 423 forwardLatLon: (1.0, 2.0, 3.0, 2.586065, 'ELLIPSOIDAL')\n\n    test 424 ELLIPSOIDAL: (58.691404, 75.112631, None, 2.586065, 'ELLIPSOIDAL')\n    test 425 ELLIPSOIDAL: (1.0, 2.0, 3.0, 2.586065, 'ELLIPSOIDAL')\n\n    test 426 GEOCENTRIC: (29.12663, 56.916602, None, 2.391078, 'GEOCENTRIC')\n    test 427 GEOCENTRIC: (1.0, 2.0, 3.0, 2.391078, 'GEOCENTRIC')\n\n    test 428 GEOCENTRIC_X: (28.478775, 123.624552, None, 2.391078, 'GEOCENTRIC_X')\n    test 429 GEOCENTRIC_X: (1.0, 2.0, 3.0, 2.391078, 'GEOCENTRIC_X')\n\n    test 430 GEODETIC: (68.626017, 73.851827, None, 2.391078, 'GEODETIC')\n    test 431 GEODETIC: (1.0, 2.0, 3.0, 2.391078, 'GEODETIC')\n\n    test 432 GEODETIC_X: (5.817652, 159.397221, None, 2.391078, 'GEODETIC_X')\n    test 433 GEODETIC_X: (1.0, 2.0, 3.0, 2.391078, 'GEODETIC_X')\n\n    test 434 PARAMETRIC: (50.658091, 66.523762, None, 2.391078, 'PARAMETRIC')\n    test 435 PARAMETRIC: (1.0, 2.0, 3.0, 2.391078, 'PARAMETRIC')\n\n    test 436 PARAMETRIC_X: (14.628136, 143.06191, None, 2.391078, 'PARAMETRIC_X')\n    test 437 PARAMETRIC_X: (1.0, 2.0, 3.0, 2.391078, 'PARAMETRIC_X')\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n\n    test 438 Triaxial3: Triaxial3(name='Bektas', a=6378388, b=6378318, c=6356911.9461, k2=0.996735077, kp2=0.003264923, volume=1083307891664673177600, area=510097198412933.0625, R2=6371204.383189477)\n    test 439 forwardBetOmg: (4234607.381429, 3551286.590486, 3176009.080037, 1200.0, 'ELLIPSOIDAL')\n    test 440 forwardBetOmg: (4233813.533025, 3550620.827453, 3175409.655093, 0, 'ELLIPSOIDAL')\n    test 441 length: 1196.973671\n    test 442 reverseBetOmg: (Degrees(30.0), Degrees(40.0), None, 1200.0, 'ELLIPSOIDAL')\n    test 443 reverseBetOmg: (Degrees(30.0), Degrees(40.0), None, 0.0, 'ELLIPSOIDAL')\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n\n    test 444 forwardCartesian: (4233813.533151, 3550620.827558, 3175409.654809, 1196.973671, 'ELLIPSOIDAL')\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 445 forwardCartesian: (4239665.951888, 3553574.566129, 3164352.410834, 12911.309173, 'ELLIPSOIDAL')\n\n    test 446 reverseCartesian: (4234607.381429, 3551286.590486, 3176009.080037, 1196.973671, 'ELLIPSOIDAL')\n    test 447 reverseCartesian: (4248255.186992, 3560773.833183, 3170763.143924, 12911.309173, 'ELLIPSOIDAL')  FAILED, KNOWN, expected (4234607.381429, 3551286.590486, 3176009.080037, 1200.0, 'ELLIPSOIDAL')\n\n    test 448 forwardBetaOmega_: (4233813.533025, 3550620.827453, 3175409.655093, 0, 'ELLIPSOIDAL')\n    test 449 reverseLatLon: (Degrees(30.0), Degrees(40.0), None, -0.0, 'ELLIPSOIDAL')\n    test 450 forwardLatLon: (4233813.533025, 3550620.827453, 3175409.655093, 0, 'ELLIPSOIDAL')\n\n    test 451 reverseBetOmg: (Degrees(29.94812666), Degrees(40.01497072), None, 1203.037176, 'ELLIPSOIDAL')\n    test 452 reverseBetOmg: (29°56′53.26″, 40°00′53.89″, None, 1203.037176, 'ELLIPSOIDAL')\n    test 453 reverseBetOmg: (Degrees(29.97539672), Degrees(40.03311872), None, 1387.637345, 'ELLIPSOIDAL')\n    test 454 reverseBetOmg: (29°58′31.43″, 40°01′59.23″, None, 1387.637345, 'ELLIPSOIDAL')\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n\n    test 455 height4: (3909251.554667, 3909165.750567, 3170432.501602, 999.999996)\n    test 456 height4: (3909251.554667, 3909165.750567, 3170432.501602, 0, None)\n    test 457 height4: (3909251.554667, 3909165.750567, 3170432.501602, 0, None)\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n\n    test 458 JFK-SIN: Triaxial3(name='WGS84_35', a=6378172, b=6378102, c=6356752.314245179, k2=0.996726499, kp2=0.003273501, volume=1083207319768789942272, area=510065621722018.25, R2=6371007.180905545)\n    test 459 JFK-SIN: -54.34889\n    test 460 JFK-SIN: (2824949.36608, -3938333.736799, 4132149.896611, 0, 'GEODETIC')\n    test 461 JFK-SIN: (40°38′23.0″, 54°20′56.0″, None, 0.0, 'GEODETIC')\n    test 462 JFK-SIN: (Degrees(40.57193395), Degrees(-54.38110954), None, 0, 'ELLIPSOIDAL')\n\n    test 463 JFK-SIN: 123.42\n    test 464 JFK-SIN: (-3511912.82574, 5322047.492059, 150275.382099, 0, 'GEODETIC')\n    test 465 JFK-SIN: (1°21′33.0″, 123°25′10.0″, None, -0.0, 'GEODETIC')\n    test 466 JFK-SIN: (1.355287, 123.419709, None, 0, 'ELLIPSOIDAL')\n    test 467 JFK-SIN: (2507237.249613, -4147833.171672, 4132151.785141, 0, 'GEODETIC_LON0')\n    test 468 JFK-SIN: (Degrees(40.56616585), Degrees(-58.87899203), None, 0, 'ELLIPSOIDAL')\n    test 469 JFK-SIN: (-3083516.921703, 5581181.10656, 150275.496647, 0, 'GEODETIC_LON0')\n    test 470 JFK-SIN: (Degrees(1.35513418), Degrees(118.9196884), None, 0.0, 'ELLIPSOIDAL')\n\n    test 471 ELLIPSOIDAL: (3339312.988437, 4478220.864583, 3067838.142785, 0, 'ELLIPSOIDAL')\n    test 472 ELLIPSOIDAL: (0.44727, 0.46133, -0.76624)\n    test 473 ELLIPSOIDAL: (Radians(6.78714104), Radians(7.21349568), Radians(3.22695739), 0, 'ELLIPSOIDAL')\n    test 474 ELLIPSOIDAL: (3339312.988437, 4478220.864583, 3067838.142785, 0, 'ELLIPSOIDAL')\n    test 475 ELLIPSOIDAL: (0.35577, 0.33613, -0.87203)  FAILED, KNOWN, expected (0.44727, 0.46133, -0.76624)\n\n    test 476 GEOCENTRIC: (3775053.602526, 4836453.809766, 1737203.829149, 0, 'GEOCENTRIC')\n    test 477 GEOCENTRIC: (0.06074, 0.18165, -0.98149)\n    test 478 GEOCENTRIC: (Radians(6.55911022), Radians(7.19121867), Radians(9.36055352), -0.0, 'GEOCENTRIC')\n    test 479 GEOCENTRIC: (3775053.602526, 4836453.809766, 1737203.829149, 0, 'GEOCENTRIC')\n    test 480 GEOCENTRIC: (0.11773, 0.25514, -0.95971)  FAILED, KNOWN, expected (0.06074, 0.18165, -0.98149)\n\n    test 481 GEOCENTRIC_X: (5353065.611375, 2253062.100284, 2627312.107704, 0, 'GEOCENTRIC_X')\n    test 482 GEOCENTRIC_X: (0.37533, 0.39753, -0.83732)\n    test 483 GEOCENTRIC_X: (Radians(7.28002857), Radians(8.7159147), Radians(4.84070319), 0.0, 'GEOCENTRIC_X')\n    test 484 GEOCENTRIC_X: (5353065.611375, 2253062.100284, 2627312.107704, 0, 'GEOCENTRIC_X')\n    test 485 GEOCENTRIC_X: (0.07117, 0.68362, -0.72636)  FAILED, KNOWN, expected (0.37533, 0.39753, -0.83732)\n\n    test 486 GEODETIC: (4614879.82592, 981039.629187, 4277613.939628, 0, 'GEODETIC')\n    test 487 GEODETIC: (0.24631, 0.35287, -0.90267)\n    test 488 GEODETIC: (Radians(7.02301499), Radians(6.49265346), Radians(9.10148726), -0.0, 'GEODETIC')\n    test 489 GEODETIC: (4614879.82592, 981039.629187, 4277613.939628, 0, 'GEODETIC')\n    test 490 GEODETIC: (0.55921, 0.44366, -0.70032)  FAILED, KNOWN, expected (0.24631, 0.35287, -0.90267)\n\n    test 491 GEODETIC_LON0: (1527233.792948, 1162869.651044, 6062035.023615, 0, 'GEODETIC_LON0')\n    test 492 GEODETIC_LON0: (0.24352, 0.24941, -0.93728)\n    test 493 GEODETIC_LON0: (Radians(7.54924666), Radians(6.67338953), Radians(9.34132632), -0.0, 'GEODETIC_LON0')\n    test 494 GEODETIC_LON0: (1527233.792948, 1162869.651044, 6062035.023615, 0, 'GEODETIC_LON0')\n    test 495 GEODETIC_LON0: (0.70582, 0.6422, -0.299)  FAILED, KNOWN, expected (0.24352, 0.24941, -0.93728)\n\n    test 496 GEODETIC_X: (5508220.332714, 315937.896032, 3189373.081358, 0, 'GEODETIC_X')\n    test 497 GEODETIC_X: (0.40682, 0.33156, -0.85121)\n    test 498 GEODETIC_X: (Radians(7.32411007), Radians(9.32669619), Radians(4.54631059), 0, 'GEODETIC_X')\n    test 499 GEODETIC_X: (5508220.332714, 315937.896032, 3189373.081358, 0, 'GEODETIC_X')\n    test 500 GEODETIC_X: (-0.08327, 0.99551, 0.0449)  FAILED, KNOWN, expected (0.40682, 0.33156, -0.85121)\n\n    test 501 GEOGRAPHIC: (3465116.507243, 5223158.607824, 1175894.05015, 0, 'GEODETIC')\n    test 502 GEOGRAPHIC: (0.11315, 0.09188, -0.98932)\n    test 503 GEOGRAPHIC: (Radians(6.46985144), Radians(7.26824437), Radians(3.18515516), -0.0, 'GEODETIC')\n    test 504 GEOGRAPHIC: (3465116.507243, 5223158.607824, 1175894.05015, 0, 'GEODETIC')\n    test 505 GEOGRAPHIC: (0.13879, 0.13043, -0.9817)  FAILED, KNOWN, expected (0.11315, 0.09188, -0.98932)\n\n    test 506 PARAMETRIC: (1264892.90797, 2527765.29909, 5698436.749422, 0, 'PARAMETRIC')\n    test 507 PARAMETRIC: (0.13554, 0.82486, -0.54885)\n    test 508 PARAMETRIC: (Radians(7.39485161), Radians(7.39001874), Radians(9.17168302), -0.0, 'PARAMETRIC')\n    test 509 PARAMETRIC: (1264892.90797, 2527765.29909, 5698436.749422, 0, 'PARAMETRIC')\n    test 510 PARAMETRIC: (0.1647, 0.8887, -0.42789)  FAILED, KNOWN, expected (0.13554, 0.82486, -0.54885)\n\n    test 511 PARAMETRIC_X: (3357601.186402, 4513866.391703, 2995261.616924, 0, 'PARAMETRIC_X')\n    test 512 PARAMETRIC_X: (0.22351, 0.72002, -0.65697)\n    test 513 PARAMETRIC_X: (Radians(6.83757042), Radians(8.44138234), Radians(5.00139262), 0, 'PARAMETRIC_X')\n    test 514 PARAMETRIC_X: (3357601.186402, 4513866.391703, 2995261.616924, 0, 'PARAMETRIC_X')\n    test 515 PARAMETRIC_X: (0.24371, 0.40685, -0.88039)  FAILED, KNOWN, expected (0.22351, 0.72002, -0.65697)\n\n    test 516 PLANETOCENTRIC: (948465.932689, 3598948.847101, 5162255.209493, 0, 'GEOCENTRIC')\n    test 517 PLANETOCENTRIC: (0.1521, 0.65147, -0.74328)\n    test 518 PLANETOCENTRIC: (Radians(7.22932016), Radians(7.59630087), Radians(9.40537788), -0.0, 'GEOCENTRIC')\n    test 519 PLANETOCENTRIC: (948465.932689, 3598948.847101, 5162255.209493, 0, 'GEOCENTRIC')\n    test 520 PLANETOCENTRIC: (0.18839, 0.79097, -0.58213)  FAILED, KNOWN, expected (0.1521, 0.65147, -0.74328)\n\n    test 521 PLANETODETIC: (6109868.111296, 1803588.145775, 311341.87994, 0, 'GEODETIC')\n    test 522 PLANETODETIC: (0.23071, 0.27671, -0.93285)\n    test 523 PLANETODETIC: (Radians(6.33234784), Radians(6.57023183), Radians(9.21647244), 0.0, 'GEODETIC')\n    test 524 PLANETODETIC: (6109868.111296, 1803588.145775, 311341.87994, 0, 'GEODETIC')\n    test 525 PLANETODETIC: (-0.01244, 0.21195, -0.9772)  FAILED, KNOWN, expected (0.23071, 0.27671, -0.93285)\n\n    test 526 Lon0: -14.93\n    test 527 forwardLatLon: (6162853.284268, -1643246.23441, 0.0, 0, 'ELLIPSOIDAL')\n    test 528 reverseLatLon: (Degrees(0.0), Degrees(-14.93), None, 0, 'ELLIPSOIDAL')\n    test 529 reverseLatLon: 1.590277340731758e-15  FAILED, KNOWN, expected 0\n\n    testConformal3(pygeodesy.triaxials.conformal3, 26.02.15)\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 530 Conformal3: name='WGS84_3', a=6378171.36, b=6378101.609999999, c=6356751.84, k2=0.996738165, kp2=0.003261835, xyQ2=xyQ2(x=10026938.243505, y=27096412.501236)\n    test 531 forwardBetOmg: (-5077726.43188, 3922574.86203, 0, 1.19703, 'CONFORMAL')\n    test 532 reverseBetOmg: (Degrees(33.3), Degrees(44.4), None, 1.197032, 'CONFORMAL')\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n\n    test 533 Conformal3: name='WGS84_3r', a=6378172, b=6378102, c=6356752, k2=0.996726547, kp2=0.003273453, xyQ2=xyQ2(x=10026968.259439, y=27085126.866409)\n    test 534 forwardBetOmg: (-5077732.396, 3922571.859, 0, 1.197, 'CONFORMAL')\n    test 535 reverseBetOmg: (Degrees(33.3), Degrees(44.4), None, 1.197034, 'CONFORMAL')\n    test 536 forwardOther: (33.299887, 44.399927, 0.000263, 1.000046, 'CONFORMAL')\n    test 537 reverseOther: (Degrees(33.3), Degrees(44.4), Degrees(0.00026262), 0.999954, 'CONFORMAL')\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n\n    test 538 Conformal3: name='WGS84+/-35', a=6378172, b=6378102, c=6356752.314245179, k2=0.996726499, kp2=0.003273501, xyQ2=xyQ2(x=10026968.379966, y=27085080.683786)\n    test 539 forwardBetOmg: (-5077732.419, 3922572.019, 0, 1.197, 'CONFORMAL')\n    test 540 reverseBetOmg: (Degrees(33.3), Degrees(44.4), None, 1.197034, 'CONFORMAL')\n\n    test 541 triaxum5: (1.2, 0.2, 0.9, 3, (6.632522885329242e-31,))\n    test 542 triaxum5: (1.244625, 0.145582, 0.0, 2, ())\n\n    test 543 Geodesic3Solve: Geod3Solve='/opt/local/bin/Geod3Solve', invokation=0, status=None\n    test 544 Direct: {a12: 137.869863, alp1: 3.20824, alp2: 177.483198, bet1: 40.57193, bet2: 1.355292, omg1: -54.38111, omg2: 123.419711, s12: 15347602.0}\n    test 545 Direct: (40.57193, -54.38111, 3.20824, 1.355292, 123.419711, 177.483198, 15347602.0, 137.869863)\n    test 546 Inverse: {a12: 137.869863, alp1: 3.20824, alp2: 177.483197, bet1: 40.57193, bet2: 1.355292, omg1: -54.38111, omg2: 123.419711, s12: 15347601.953655}\n    test 547 Inverse: (40.57193, -54.38111, 3.20824, 1.355292, 123.419711, 177.483197, 15347601.953655, 137.869863)\n    test 548 GeodesicLine3Solve: alp1=3.20824, bet1=40.57193, geodesic3=Geodesic3Solve(Geod3Solve='/opt/local/bin/Geod3Solve', invokation=2, status=0), invokation=1, omg1=-54.38111, status=0\n    test 549 Position: {a12: 137.869863, alp1: 3.20824, alp2: 177.483198, bet1: 40.57193, bet2: 1.355292, omg1: -54.38111, omg2: 123.419711, s12: 15347602.0}\n    test 550 Position: (40.57193, -54.38111, 3.20824, 1.355292, 123.419711, 177.483198, 15347602.0, 137.869863)\n    test 551 GeodesicLine3Solve: alp1=3.20824, bet1=40.57193, geodesic3=Geodesic3Solve(Geod3Solve='/opt/local/bin/Geod3Solve', invokation=3, status=0), invokation=1, omg1=-54.38111, status=0\n    test 552 Position: {a12: 137.869863, alp1: 3.20824, alp2: 177.483197, bet1: 40.57193, bet2: 1.355292, omg1: -54.38111, omg2: 123.419711, s12: 15347602.0}\n    test 553 Position: (40.57193, -54.38111, 3.20824, 1.355292, 123.419711, 177.483197, 15347602.0, 137.869863)\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n\n    test 554 Amalthea: name='Amalthea', a=125000, b=73000, c=64000, e2ab=0.658944, e2bc=0.231375493, e2ac=0.737856\n    test 555 Amalthea.area    : 93239507787.49036\n    test 556 Amalthea.areaKT  : 93212299402.67043\n    test 557 Amalthea.areaRG  : 93239507787.49036\n    test 558 Amalthea.area21k : 93239507787.49039  FAILED, KNOWN, expected 93239507787.49036\n    test 559 Amalthea.ellipse5: Ellipse5Tuple(a=111264.228133, b=64978.30923, height=29167.24982, lat=45.0, beta=27.112446)\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by namedTuples.py line 236\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 560 Amalthea.toTriaxial_: name='NN', a=111264.22813306, b=64978.309229707, c=29167.249819713, e2ab=0.658944, e2bc=0.798509697, e2ac=0.931280523\n# lazily imported pygeodesy.Triaxial from .triaxials.triaxial5 by namedTuples.py line 227\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 561 Amalthea.toTriaxial : name='NN', a=111264.22813306, b=64978.309229707, c=29167.249819713, e2ab=0.658944, e2bc=0.798509697, e2ac=0.931280523\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n\n    test 562 Ariel: name='Ariel', a=581100, b=577900, c=577700, e2ab=0.01098327, e2bc=0.000692042, e2ac=0.011667711\n    test 563 Ariel.area    : 4211301462766.58\n    test 564 Ariel.areaKT  : 4211301574065.8296\n    test 565 Ariel.areaRG  : 4211301462766.58\n    test 566 Ariel.area21k : 4211301462766.58\n    test 567 Ariel.ellipse5: Ellipse5Tuple(a=412103.585219, b=409834.214245, height=407295.279804, lat=45.0, beta=44.831891)\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by namedTuples.py line 236\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 568 Ariel.toTriaxial_: name='NN', a=412103.585218864, b=409834.214245365, c=407295.279803537, e2ab=0.01098327, e2bc=0.012351678, e2ac=0.023199286\n# lazily imported pygeodesy.Triaxial from .triaxials.triaxial5 by namedTuples.py line 227\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 569 Ariel.toTriaxial : name='NN', a=412103.585218864, b=409834.214245365, c=407295.279803537, e2ab=0.01098327, e2bc=0.012351678, e2ac=0.023199286\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n\n    test 570 Earth: name='Earth', a=6378173.435, b=6378103.9, c=6356754.399999999, e2ab=0.000021804, e2bc=0.006683418, e2ac=0.006705077\n    test 571 Earth.area    : 510065911057440.94\n    test 572 Earth.areaKT  : 510065915922713.7\n    test 573 Earth.areaRG  : 510065911057440.94\n    test 574 Earth.area21k : 510065911057441.06  FAILED, KNOWN, expected 510065911057440.94\n    test 575 Earth.ellipse5: Ellipse5Tuple(a=4517628.806864, b=4517579.555566, height=4487337.759918, lat=45.0, beta=44.903634)\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by namedTuples.py line 236\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 576 Earth.toTriaxial_: name='NN', a=4517628.806863861, b=4517579.55556609, c=4487337.759917997, e2ab=0.000021804, e2bc=0.013343682, e2ac=0.013365195\n# lazily imported pygeodesy.Triaxial from .triaxials.triaxial5 by namedTuples.py line 227\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 577 Earth.toTriaxial : name='NN', a=4517628.806863861, b=4517579.55556609, c=4487337.759917997, e2ab=0.000021804, e2bc=0.013343682, e2ac=0.013365195\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n\n    test 578 Enceladus: name='Enceladus', a=256600, b=251400, c=248300, e2ab=0.040119337, e2bc=0.024509841, e2ac=0.06364586\n    test 579 Enceladus.area    : 798618496278.5967\n    test 580 Enceladus.areaKT  : 798619018175.11\n    test 581 Enceladus.areaRG  : 798618496278.5967\n    test 582 Enceladus.area21k : 798618496278.5966  FAILED, KNOWN, expected 798618496278.5967\n    test 583 Enceladus.ellipse5: Ellipse5Tuple(a=184401.418634, b=180664.523167, height=172665.031764, lat=45.0, beta=44.058205)\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by namedTuples.py line 236\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 584 Enceladus.toTriaxial_: name='NN', a=184401.418633881, b=180664.523166631, c=172665.031764361, e2ab=0.040119337, e2bc=0.086595751, e2ac=0.123240924\n# lazily imported pygeodesy.Triaxial from .triaxials.triaxial5 by namedTuples.py line 227\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 585 Enceladus.toTriaxial : name='NN', a=184401.418633881, b=180664.523166631, c=172665.031764361, e2ab=0.040119337, e2bc=0.086595751, e2ac=0.123240924\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n\n    test 586 Europa: name='Europa', a=1564130, b=1561230, c=1560930, e2ab=0.003704694, e2bc=0.000384275, e2ac=0.004087546\n    test 587 Europa.area    : 30663773697323.52\n    test 588 Europa.areaKT  : 30663773794562.457\n    test 589 Europa.areaRG  : 30663773697323.52\n    test 590 Europa.area21k : 30663773697323.52\n    test 591 Europa.ellipse5: Ellipse5Tuple(a=1107138.878572, b=1105086.170198, height=1102613.397545, lat=45.0, beta=44.94133)\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by namedTuples.py line 236\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 592 Europa.toTriaxial_: name='NN', a=1107138.878571533, b=1105086.170198279, c=1102613.397544503, e2ab=0.003704694, e2bc=0.004470251, e2ac=0.008158384\n# lazily imported pygeodesy.Triaxial from .triaxials.triaxial5 by namedTuples.py line 227\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 593 Europa.toTriaxial : name='NN', a=1107138.878571533, b=1105086.170198279, c=1102613.397544503, e2ab=0.003704694, e2bc=0.004470251, e2ac=0.008158384\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n\n    test 594 Io: name='Io', a=1829400, b=1819300, c=1815700, e2ab=0.011011391, e2bc=0.003953651, e2ac=0.014921506\n    test 595 Io.area    : 41691875849096.734\n    test 596 Io.areaKT  : 41691877397441.21\n    test 597 Io.areaRG  : 41691875849096.734\n    test 598 Io.area21k : 41691875849096.734\n    test 599 Io.ellipse5: Ellipse5Tuple(a=1298433.860916, b=1291265.290896, height=1279059.271955, lat=45.0, beta=44.784657)\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by namedTuples.py line 236\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 600 Io.toTriaxial_: name='NN', a=1298433.860916433, b=1291265.290896068, c=1279059.271955118, e2ab=0.011011391, e2bc=0.018816162, e2ac=0.029620361\n# lazily imported pygeodesy.Triaxial from .triaxials.triaxial5 by namedTuples.py line 227\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 601 Io.toTriaxial : name='NN', a=1298433.860916433, b=1291265.290896068, c=1279059.271955118, e2ab=0.011011391, e2bc=0.018816162, e2ac=0.029620361\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n\n    test 602 Mars: name='Mars', a=3394600, b=3393300, c=3376300, e2ab=0.000765776, e2bc=0.009994646, e2ac=0.010752768\n    test 603 Mars.area    : 144249140795107.44\n    test 604 Mars.areaKT  : 144249144150662.16\n    test 605 Mars.areaRG  : 144249140795107.44\n    test 606 Mars.area21k : 144249140795107.44\n    test 607 Mars.ellipse5: Ellipse5Tuple(a=2406823.402595, b=2405901.68268, height=2380943.388927, lat=45.0, beta=44.845145)\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by namedTuples.py line 236\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 608 Mars.toTriaxial_: name='NN', a=2406823.402594559, b=2405901.682679585, c=2380943.38892735, e2ab=0.000765776, e2bc=0.020639944, e2ac=0.021389914\n# lazily imported pygeodesy.Triaxial from .triaxials.triaxial5 by namedTuples.py line 227\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 609 Mars.toTriaxial : name='NN', a=2406823.402594559, b=2405901.682679585, c=2380943.38892735, e2ab=0.000765776, e2bc=0.020639944, e2ac=0.021389914\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n\n    test 610 Mimas: name='Mimas', a=207400, b=196800, c=190600, e2ab=0.09960581, e2bc=0.062015624, e2ac=0.155444317\n    test 611 Mimas.area    : 493855762247.69183\n    test 612 Mimas.areaKT  : 493857714107.9375\n    test 613 Mimas.areaRG  : 493855762247.69183\n    test 614 Mimas.area21k : 493855762247.69183\n    test 615 Mimas.ellipse5: Ellipse5Tuple(a=152708.378956, b=144903.611276, height=128970.72925, lat=45.0, beta=42.58292)\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by namedTuples.py line 236\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 616 Mimas.toTriaxial_: name='NN', a=152708.378956057, b=144903.611275565, c=128970.729250426, e2ab=0.09960581, e2bc=0.207819965, e2ac=0.286725699\n# lazily imported pygeodesy.Triaxial from .triaxials.triaxial5 by namedTuples.py line 227\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 617 Mimas.toTriaxial : name='NN', a=152708.378956057, b=144903.611275565, c=128970.729250426, e2ab=0.09960581, e2bc=0.207819965, e2ac=0.286725699\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n\n    test 618 Miranda: name='Miranda', a=240400, b=234200, c=232900, e2ab=0.050915557, e2bc=0.011070811, e2ac=0.061422691\n    test 619 Miranda.area    : 698880863325.7571\n    test 620 Miranda.areaKT  : 698881306767.9503\n    test 621 Miranda.areaRG  : 698880863325.7571\n    test 622 Miranda.area21k : 698880863325.7571\n    test 623 Miranda.ellipse5: Ellipse5Tuple(a=172660.462873, b=168207.489205, height=162055.192572, lat=45.0, beta=44.092156)\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by namedTuples.py line 236\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 624 Miranda.toTriaxial_: name='NN', a=172660.462873061, b=168207.489204954, c=162055.192571975, e2ab=0.050915557, e2bc=0.071813503, e2ac=0.119072635\n# lazily imported pygeodesy.Triaxial from .triaxials.triaxial5 by namedTuples.py line 227\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 625 Miranda.toTriaxial : name='NN', a=172660.462873061, b=168207.489204954, c=162055.192571975, e2ab=0.050915557, e2bc=0.071813503, e2ac=0.119072635\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n\n    test 626 Moon: name='Moon', a=1735550, b=1735324, c=1734898, e2ab=0.000260419, e2bc=0.000490914, e2ac=0.000751206\n    test 627 Moon.area    : 37838824729886.09\n    test 628 Moon.areaKT  : 37838824733332.22\n    test 629 Moon.areaRG  : 37838824729886.09\n    test 630 Moon.area21k : 37838824729886.086  FAILED, KNOWN, expected 37838824729886.09\n    test 631 Moon.ellipse5: Ellipse5Tuple(a=1227449.712545, b=1227289.876392, height=1226527.645318, lat=45.0, beta=44.989236)\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by namedTuples.py line 236\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 632 Moon.toTriaxial_: name='NN', a=1227449.71254467, b=1227289.876391845, c=1226527.645318275, e2ab=0.000260419, e2bc=0.001241751, e2ac=0.001501847\n# lazily imported pygeodesy.Triaxial from .triaxials.triaxial5 by namedTuples.py line 227\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 633 Moon.toTriaxial : name='NN', a=1227449.71254467, b=1227289.876391845, c=1226527.645318275, e2ab=0.000260419, e2bc=0.001241751, e2ac=0.001501847\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n\n    test 634 Tethys: name='Tethys', a=535600, b=528200, c=525800, e2ab=0.027441672, e2bc=0.009066821, e2ac=0.036259685\n    test 635 Tethys.area    : 3528073490771.3936\n    test 636 Tethys.areaKT  : 3528074261832.739\n    test 637 Tethys.areaRG  : 3528073490771.3936\n    test 638 Tethys.area21k : 3528073490771.394  FAILED, KNOWN, expected 3528073490771.3936\n    test 639 Tethys.ellipse5: Ellipse5Tuple(a=382206.915043, b=376926.236979, height=368348.212846, lat=45.0, beta=44.470998)\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by namedTuples.py line 236\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 640 Tethys.toTriaxial_: name='NN', a=382206.915042949, b=376926.236978502, c=368348.212845736, e2ab=0.027441672, e2bc=0.044997746, e2ac=0.071204605\n# lazily imported pygeodesy.Triaxial from .triaxials.triaxial5 by namedTuples.py line 227\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 641 Tethys.toTriaxial : name='NN', a=382206.915042949, b=376926.236978502, c=368348.212845736, e2ab=0.027441672, e2bc=0.044997746, e2ac=0.071204605\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n\n    test 642 WGS84_3: name='WGS84_3', a=6378171.36, b=6378101.609999999, c=6356751.84, e2ab=0.000021871, e2bc=0.006683505, e2ac=0.00670523\n    test 643 WGS84_3.area    : 510065541435967.5\n    test 644 WGS84_3.areaKT  : 510065546301413.56\n    test 645 WGS84_3.areaRG  : 510065541435967.5\n    test 646 WGS84_3.area21k : 510065541435967.4  FAILED, KNOWN, expected 510065541435967.5\n    test 647 WGS84_3.ellipse5: Ellipse5Tuple(a=4517627.51138, b=4517578.107797, height=4487335.778543, lat=45.0, beta=44.903631)\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by namedTuples.py line 236\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 648 WGS84_3.toTriaxial_: name='NN', a=4517627.51137994, b=4517578.107796822, c=4487335.778543438, e2ab=0.000021871, e2bc=0.013343921, e2ac=0.0133655\n# lazily imported pygeodesy.Triaxial from .triaxials.triaxial5 by namedTuples.py line 227\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 649 WGS84_3.toTriaxial : name='NN', a=4517627.51137994, b=4517578.107796822, c=4487335.778543438, e2ab=0.000021871, e2bc=0.013343921, e2ac=0.0133655\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n\n    test 650 WGS84_35: name='WGS84_35', a=6378172, b=6378102, c=6356752.314245179, e2ab=0.00002195, e2bc=0.006683478, e2ac=0.006705281\n    test 651 WGS84_35.area    : 510065621722018.25\n    test 652 WGS84_35.areaKT  : 510065626587483.3\n    test 653 WGS84_35.areaRG  : 510065621722018.25\n    test 654 WGS84_35.area21k : 510065621722018.25\n    test 655 WGS84_35.ellipse5: Ellipse5Tuple(a=4517628.022629, b=4517578.441971, height=4487336.055381, lat=45.0, beta=44.903631)\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by namedTuples.py line 236\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 656 WGS84_35.toTriaxial_: name='NN', a=4517628.022628974, b=4517578.441971447, c=4487336.055380745, e2ab=0.00002195, e2bc=0.013343945, e2ac=0.013365602\n# lazily imported pygeodesy.Triaxial from .triaxials.triaxial5 by namedTuples.py line 227\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 657 WGS84_35.toTriaxial : name='NN', a=4517628.022628974, b=4517578.441971447, c=4487336.055380745, e2ab=0.00002195, e2bc=0.013343945, e2ac=0.013365602\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n\n    test 658 WGS84_3r: name='WGS84_3r', a=6378172, b=6378102, c=6356752, e2ab=0.00002195, e2bc=0.006683577, e2ac=0.00670538\n    test 659 WGS84_3r.area    : 510065604942135.9\n    test 660 WGS84_3r.areaKT  : 510065609807745.0\n    test 661 WGS84_3r.areaRG  : 510065604942135.9\n    test 662 WGS84_3r.area21k : 510065604942135.94  FAILED, KNOWN, expected 510065604942135.9\n    test 663 WGS84_3r.ellipse5: Ellipse5Tuple(a=4517628.133918, b=4517578.553259, height=4487335.722261, lat=45.0, beta=44.903629)\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by namedTuples.py line 236\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 664 WGS84_3r.toTriaxial_: name='NN', a=4517628.133917508, b=4517578.553258759, c=4487335.722261372, e2ab=0.00002195, e2bc=0.01334414, e2ac=0.013365797\n# lazily imported pygeodesy.Triaxial from .triaxials.triaxial5 by namedTuples.py line 227\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 665 WGS84_3r.toTriaxial : name='NN', a=4517628.133917508, b=4517578.553258759, c=4487335.722261372, e2ab=0.00002195, e2bc=0.01334414, e2ac=0.013365797\n\n    39 of 665 testTriaxials.py tests (5.9%) FAILED, incl. 37 KNOWN plus 2 DeprecationWarnings (pygeodesy 26.3.26 Python 3.12.10 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 2.1.0 scipy 1.14.1 Math 2 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 isLazy 3 -W  default) 1.342 sec\nrunning /usr/local/bin/p....n3.12 -W default ~/PyGeodesy/test/testUnits.py\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.Azimuth from .units by testUnits.py line 11\n# lazily imported pygeodesy.Band from .units by testUnits.py line 11\n# lazily imported pygeodesy.Bearing from .units by testUnits.py line 11\n# lazily imported pygeodesy.Bearing_ from .units by testUnits.py line 11\n# lazily imported pygeodesy.Bool from .units by testUnits.py line 11\n# lazily imported pygeodesy.Epoch from .units by testUnits.py line 11\n# lazily imported pygeodesy.Epsg from .epsg by testUnits.py line 11\n# lazily imported pygeodesy.FIx from .units by testUnits.py line 11\n# lazily imported pygeodesy.Garef from .gars by testUnits.py line 11\n# lazily imported pygeodesy.Geohash from .geohash by testUnits.py line 11\n# lazily imported pygeodesy.Georef from .wgrs by testUnits.py line 11\n# lazily imported pygeodesy.Int from .unitsBase by testUnits.py line 11\n# lazily imported pygeodesy.Int_ from .units by testUnits.py line 11\n# lazily imported pygeodesy.Number_ from .units by testUnits.py line 11\n# lazily imported pygeodesy.Precision_ from .units by testUnits.py line 11\n# lazily imported pygeodesy.Lamd from .units by testUnits.py line 11\n# lazily imported pygeodesy.Phid from .units by testUnits.py line 11\n# lazily imported pygeodesy.Str from .unitsBase by testUnits.py line 11\n# lazily imported pygeodesy.Zone from .units by testUnits.py line 11\n# lazily imported pygeodesy.Float from .unitsBase by testUnits.py line 11\n\n    testing testUnits.py 24.07.25 isLazy=3\n# lazily imported pygeodesy.albers by bases.py line 199\n# lazily imported pygeodesy.angles by bases.py line 199\n\n    testing Lambertian(1.0,) (pygeodesy.units, 26.03.12)\n    test 1 .classname: Lambertian\n    test 2 isinstance: True\n    test 3 .name: lambertian\n    test 4 .named: lambertian\n    test 5 .named2: Lambertian 'lambertian'\n    test 6 .str: 1.0\n    test 7 .toStr: 1.0\n    test 8 .std_repr: True\n    test 9 .repr: 1.0\n    test 10 .toRepr: lambertian (1.0)\n    test 11 .units: lambertian\n# imported pygeodesy.basics into errors.py line 531\n    test 12 lambertian: psi ('X'): strRad ('X') or suffix ('NSEW'): could not convert string to float: 'X'\n    test 13 lambertian: U ('X'): strRad ('X') or suffix ('NSEW'): could not convert string to float: 'X'\n    test 14 lambertian: TypeError\n    test 15 lambertian: psi ('X'): strRad ('X') or suffix ('NSEW'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 16 .named: Test\n    test 17 .named2: Lambertian 'Test'\n    test 18 .str: 1.0\n    test 19 .toStr: 1.0\n    test 20 .repr: 1.0\n    test 21 .toRepr: Test (1.0)\n    test 22 .units: lambertian\n    test 23 .name: Test\n    test 24 ._name: Test\n    test 25 .str: 1.0\n    test 26 .repr: 1.0\n    test 27 delattr: ''\n# lazily imported pygeodesy.azimuthal by bases.py line 199\n# lazily imported pygeodesy.booleans by bases.py line 199\n# lazily imported pygeodesy.clipy by bases.py line 199\n# lazily imported pygeodesy.css by bases.py line 199\n# lazily imported pygeodesy.ecef by bases.py line 199\n# lazily imported pygeodesy.elevations by bases.py line 199\n# lazily imported pygeodesy.ellipses by bases.py line 199\n# lazily imported pygeodesy.ellipsoidalBaseDI by bases.py line 199\n# lazily imported pygeodesy.ellipsoidalExact by bases.py line 199\n# lazily imported pygeodesy.ellipsoidalGeodSolve by bases.py line 199\n# lazily imported pygeodesy.ellipsoidalKarney by bases.py line 199\n# lazily imported pygeodesy.ellipsoidalNvector by bases.py line 199\n# lazily imported pygeodesy.ellipsoidalVincenty by bases.py line 199\n# lazily imported pygeodesy.elliptic by bases.py line 199\n# lazily imported pygeodesy.etm by bases.py line 199\n# lazily imported pygeodesy.frechet by bases.py line 199\n# lazily imported pygeodesy.fstats by bases.py line 199\n# lazily imported pygeodesy.geod3solve by bases.py line 199\n# lazily imported pygeodesy.geodesici by bases.py line 199\n# lazily imported pygeodesy.geodesicw by bases.py line 199\n# lazily imported pygeodesy.geodsolve by bases.py line 199\n# lazily imported pygeodesy.geoids by bases.py line 199\n# lazily imported pygeodesy.hausdorff by bases.py line 199\n\n    testing _Lat(1.0,) (pygeodesy.units, 26.03.12)\n    test 28 .classname: _Lat\n    test 29 isinstance: True\n    test 30 .name: _lat\n    test 31 .named: _lat\n    test 32 .named2: _Lat '_lat'\n    test 33 .str: 1.0\n    test 34 .toStr: 1.0\n    test 35 .std_repr: True\n    test 36 .repr: 1.0\n    test 37 .toRepr: _lat (1.0)\n    test 38 .units: _lat\n    test 39 _lat: lat ('X'): strDMS ('X') or suffix ('NS'): could not convert string to float: 'X'\n    test 40 _lat: U ('X'): strDMS ('X') or suffix ('NS'): could not convert string to float: 'X'\n    test 41 _lat: TypeError\n    test 42 _lat: lat ('X'): strDMS ('X') or suffix ('NS'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 43 .named: Test\n    test 44 .named2: _Lat 'Test'\n    test 45 .str: 1.0\n    test 46 .toStr: 1.0\n    test 47 .repr: 1.0\n    test 48 .toRepr: Test (1.0)\n    test 49 .units: _lat\n    test 50 .name: Test\n    test 51 ._name: Test\n    test 52 .str: 1.0\n    test 53 .repr: 1.0\n    test 54 delattr: ''\n\n    testing _Lon(1.0,) (pygeodesy.units, 26.03.12)\n    test 55 .classname: _Lon\n    test 56 isinstance: True\n    test 57 .name: _lon\n    test 58 .named: _lon\n    test 59 .named2: _Lon '_lon'\n    test 60 .str: 1.0\n    test 61 .toStr: 1.0\n    test 62 .std_repr: True\n    test 63 .repr: 1.0\n    test 64 .toRepr: _lon (1.0)\n    test 65 .units: _lon\n    test 66 _lon: lon ('X'): strDMS ('X') or suffix ('EW'): could not convert string to float: 'X'\n    test 67 _lon: U ('X'): strDMS ('X') or suffix ('EW'): could not convert string to float: 'X'\n    test 68 _lon: TypeError\n    test 69 _lon: lon ('X'): strDMS ('X') or suffix ('EW'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 70 .named: Test\n    test 71 .named2: _Lon 'Test'\n    test 72 .str: 1.0\n    test 73 .toStr: 1.0\n    test 74 .repr: 1.0\n    test 75 .toRepr: Test (1.0)\n    test 76 .units: _lon\n    test 77 .name: Test\n    test 78 ._name: Test\n    test 79 .str: 1.0\n    test 80 .repr: 1.0\n    test 81 delattr: ''\n# lazily imported pygeodesy.ktm by bases.py line 199\n# lazily imported pygeodesy.lcc by bases.py line 199\n# lazily imported pygeodesy.ltp by bases.py line 199\n# lazily imported pygeodesy.mgrs by bases.py line 199\n# lazily imported pygeodesy.osgr by bases.py line 199\n# lazily imported pygeodesy.resections by bases.py line 199\n# lazily imported pygeodesy.simplify by bases.py line 199\n# lazily imported pygeodesy.sphericalBase by bases.py line 199\n# lazily imported pygeodesy.sphericalNvector by bases.py line 199\n# lazily imported pygeodesy.sphericalTrigonometry by bases.py line 199\n# lazily imported pygeodesy.trf by bases.py line 199\n\n    testing Bearing(1.0,) (pygeodesy.units, 26.03.12)\n    test 82 .classname: Bearing\n    test 83 isinstance: True\n    test 84 .name: bearing\n    test 85 .named: bearing\n    test 86 .named2: Bearing 'bearing'\n    test 87 .str: 1.0\n    test 88 .toStr: 1.0\n    test 89 .std_repr: True\n    test 90 .repr: 1.0\n    test 91 .toRepr: bearing (1.0)\n    test 92 .units: bearing\n    test 93 bearing: bearing ('X'): strDMS ('X') or suffix ('N'): could not convert string to float: 'X'\n    test 94 bearing: U ('X'): strDMS ('X') or suffix ('N'): could not convert string to float: 'X'\n    test 95 bearing: TypeError\n    test 96 bearing: bearing ('X'): strDMS ('X') or suffix ('N'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 97 .named: Test\n    test 98 .named2: Bearing 'Test'\n    test 99 .str: 1.0\n    test 100 .toStr: 1.0\n    test 101 .repr: 1.0\n    test 102 .toRepr: Test (1.0)\n    test 103 .units: bearing\n    test 104 .name: Test\n    test 105 ._name: Test\n    test 106 .str: 1.0\n    test 107 .repr: 1.0\n    test 108 delattr: ''\n\n    testing Degrees(1.0,) (pygeodesy.units, 26.03.12)\n    test 109 .classname: Degrees\n    test 110 isinstance: True\n    test 111 .name: degrees\n    test 112 .named: degrees\n    test 113 .named2: Degrees 'degrees'\n    test 114 .str: 1.0\n    test 115 .toStr: 1.0\n    test 116 .std_repr: True\n    test 117 .repr: 1.0\n    test 118 .toRepr: degrees (1.0)\n    test 119 .units: degrees\n    test 120 degrees: degrees ('X'): strDMS ('X') or suffix ('NSEW'): could not convert string to float: 'X'\n    test 121 degrees: U ('X'): strDMS ('X') or suffix ('NSEW'): could not convert string to float: 'X'\n    test 122 degrees: TypeError\n    test 123 degrees: degrees ('X'): strDMS ('X') or suffix ('NSEW'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 124 .named: Test\n    test 125 .named2: Degrees 'Test'\n    test 126 .str: 1.0\n    test 127 .toStr: 1.0\n    test 128 .repr: 1.0\n    test 129 .toRepr: Test (1.0)\n    test 130 .units: degrees\n    test 131 .name: Test\n    test 132 ._name: Test\n    test 133 .str: 1.0\n    test 134 .repr: 1.0\n    test 135 delattr: ''\n\n    testing Degrees2(1.0,) (pygeodesy.units, 26.03.12)\n    test 136 .classname: Degrees2\n    test 137 isinstance: True\n    test 138 .name: degrees2\n    test 139 .named: degrees2\n    test 140 .named2: Degrees2 'degrees2'\n    test 141 .str: 1.0\n    test 142 .toStr: 1.0\n    test 143 .std_repr: True\n    test 144 .repr: 1.0\n    test 145 .toRepr: degrees2 (1.0)\n    test 146 .units: degrees2\n    test 147 degrees2: degrees2 ('X'): could not convert string to float: 'X'\n    test 148 degrees2: U ('X'): could not convert string to float: 'X'\n    test 149 degrees2: TypeError\n    test 150 degrees2: degrees2 ('X'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 151 .named: Test\n    test 152 .named2: Degrees2 'Test'\n    test 153 .str: 1.0\n    test 154 .toStr: 1.0\n    test 155 .repr: 1.0\n    test 156 .toRepr: Test (1.0)\n    test 157 .units: degrees2\n    test 158 .name: Test\n    test 159 ._name: Test\n    test 160 .str: 1.0\n    test 161 .repr: 1.0\n    test 162 delattr: ''\n\n    testing Degrees_(1.0,) (pygeodesy.units, 26.03.12)\n    test 163 .classname: Degrees_\n    test 164 isinstance: True\n    test 165 .name: degrees_\n    test 166 .named: degrees_\n    test 167 .named2: Degrees_ 'degrees_'\n    test 168 .str: 1.0\n    test 169 .toStr: 1.0\n    test 170 .std_repr: True\n    test 171 .repr: 1.0\n    test 172 .toRepr: degrees_ (1.0)\n    test 173 .units: degrees_\n    test 174 degrees_: degrees ('X'): strDMS ('X') or suffix ('NSEW'): could not convert string to float: 'X'\n    test 175 degrees_: U ('X'): strDMS ('X') or suffix ('NSEW'): could not convert string to float: 'X'\n    test 176 degrees_: TypeError\n    test 177 degrees_: degrees ('X'): strDMS ('X') or suffix ('NSEW'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 178 .named: Test\n    test 179 .named2: Degrees_ 'Test'\n    test 180 .str: 1.0\n    test 181 .toStr: 1.0\n    test 182 .repr: 1.0\n    test 183 .toRepr: Test (1.0)\n    test 184 .units: degrees_\n    test 185 .name: Test\n    test 186 ._name: Test\n    test 187 .str: 1.0\n    test 188 .repr: 1.0\n    test 189 delattr: ''\n\n    testing Distance(1.0,) (pygeodesy.units, 26.03.12)\n    test 190 .classname: Distance\n    test 191 isinstance: True\n    test 192 .name: distance\n    test 193 .named: distance\n    test 194 .named2: Distance 'distance'\n    test 195 .str: 1.0\n    test 196 .toStr: 1.0\n    test 197 .std_repr: True\n    test 198 .repr: 1.0\n    test 199 .toRepr: distance (1.0)\n    test 200 .units: distance\n    test 201 distance: distance ('X'): could not convert string to float: 'X'\n    test 202 distance: U ('X'): could not convert string to float: 'X'\n    test 203 distance: TypeError\n    test 204 distance: distance ('X'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 205 .named: Test\n    test 206 .named2: Distance 'Test'\n    test 207 .str: 1.0\n    test 208 .toStr: 1.0\n    test 209 .repr: 1.0\n    test 210 .toRepr: Test (1.0)\n    test 211 .units: distance\n    test 212 .name: Test\n    test 213 ._name: Test\n    test 214 .str: 1.0\n    test 215 .repr: 1.0\n    test 216 delattr: ''\n\n    testing Distance_(1.0,) (pygeodesy.units, 26.03.12)\n    test 217 .classname: Distance_\n    test 218 isinstance: True\n    test 219 .name: distance_\n    test 220 .named: distance_\n    test 221 .named2: Distance_ 'distance_'\n    test 222 .str: 1.0\n    test 223 .toStr: 1.0\n    test 224 .std_repr: True\n    test 225 .repr: 1.0\n    test 226 .toRepr: distance_ (1.0)\n    test 227 .units: distance_\n    test 228 distance_: distance ('X'): could not convert string to float: 'X'\n    test 229 distance_: U ('X'): could not convert string to float: 'X'\n    test 230 distance_: TypeError\n    test 231 distance_: distance ('X'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 232 .named: Test\n    test 233 .named2: Distance_ 'Test'\n    test 234 .str: 1.0\n    test 235 .toStr: 1.0\n    test 236 .repr: 1.0\n    test 237 .toRepr: Test (1.0)\n    test 238 .units: distance_\n    test 239 .name: Test\n    test 240 ._name: Test\n    test 241 .str: 1.0\n    test 242 .repr: 1.0\n    test 243 delattr: ''\n\n    testing Easting(1.0,) (pygeodesy.units, 26.03.12)\n    test 244 .classname: Easting\n    test 245 isinstance: True\n    test 246 .name: easting\n    test 247 .named: easting\n    test 248 .named2: Easting 'easting'\n    test 249 .str: 1.0\n    test 250 .toStr: 1.0\n    test 251 .std_repr: True\n    test 252 .repr: 1.0\n    test 253 .toRepr: easting (1.0)\n    test 254 .units: easting\n    test 255 easting: easting ('X'): could not convert string to float: 'X'\n    test 256 easting: U ('X'): could not convert string to float: 'X'\n    test 257 easting: TypeError\n    test 258 easting: easting ('X'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 259 .named: Test\n    test 260 .named2: Easting 'Test'\n    test 261 .str: 1.0\n    test 262 .toStr: 1.0\n    test 263 .repr: 1.0\n    test 264 .toRepr: Test (1.0)\n    test 265 .units: easting\n    test 266 .name: Test\n    test 267 ._name: Test\n    test 268 .str: 1.0\n    test 269 .repr: 1.0\n    test 270 delattr: ''\n\n    testing Feet(1.0,) (pygeodesy.units, 26.03.12)\n    test 271 .classname: Feet\n    test 272 isinstance: True\n    test 273 .name: feet\n    test 274 .named: feet\n    test 275 .named2: Feet 'feet'\n    test 276 .str: 1.0\n    test 277 .toStr: 1.0\n    test 278 .std_repr: True\n    test 279 .repr: 1.0\n    test 280 .toRepr: feet (1.0)\n    test 281 .units: feet\n    test 282 feet: feet ('X'): could not convert string to float: 'X'\n    test 283 feet: U ('X'): could not convert string to float: 'X'\n    test 284 feet: TypeError\n    test 285 feet: feet ('X'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 286 .named: Test\n    test 287 .named2: Feet 'Test'\n    test 288 .str: 1.0\n    test 289 .toStr: 1.0\n    test 290 .repr: 1.0\n    test 291 .toRepr: Test (1.0)\n    test 292 .units: feet\n    test 293 .name: Test\n    test 294 ._name: Test\n    test 295 .str: 1.0\n    test 296 .repr: 1.0\n    test 297 delattr: ''\n\n    testing Float_(1.0,) (pygeodesy.units, 26.03.12)\n    test 298 .classname: Float_\n    test 299 isinstance: True\n    test 300 .name: float_\n    test 301 .named: float_\n    test 302 .named2: Float_ 'float_'\n    test 303 .str: 1.0\n    test 304 .toStr: 1.0\n    test 305 .std_repr: True\n    test 306 .repr: 1.0\n    test 307 .toRepr: float_ (1.0)\n    test 308 .units: float_\n    test 309 float_: Float_ ('X'): could not convert string to float: 'X'\n    test 310 float_: U ('X'): could not convert string to float: 'X'\n    test 311 float_: TypeError\n    test 312 float_: Float_ ('X'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 313 .named: Test\n    test 314 .named2: Float_ 'Test'\n    test 315 .str: 1.0\n    test 316 .toStr: 1.0\n    test 317 .repr: 1.0\n    test 318 .toRepr: Test (1.0)\n    test 319 .units: float_\n    test 320 .name: Test\n    test 321 ._name: Test\n    test 322 .str: 1.0\n    test 323 .repr: 1.0\n    test 324 delattr: ''\n\n    testing Height(1.0,) (pygeodesy.units, 26.03.12)\n    test 325 .classname: Height\n    test 326 isinstance: True\n    test 327 .name: height\n    test 328 .named: height\n    test 329 .named2: Height 'height'\n    test 330 .str: 1.0\n    test 331 .toStr: 1.0\n    test 332 .std_repr: True\n    test 333 .repr: 1.0\n    test 334 .toRepr: height (1.0)\n    test 335 .units: height\n    test 336 height: height ('X'): could not convert string to float: 'X'\n    test 337 height: U ('X'): could not convert string to float: 'X'\n    test 338 height: TypeError\n    test 339 height: height ('X'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 340 .named: Test\n    test 341 .named2: Height 'Test'\n    test 342 .str: 1.0\n    test 343 .toStr: 1.0\n    test 344 .repr: 1.0\n    test 345 .toRepr: Test (1.0)\n    test 346 .units: height\n    test 347 .name: Test\n    test 348 ._name: Test\n    test 349 .str: 1.0\n    test 350 .repr: 1.0\n    test 351 delattr: ''\n\n    testing HeightX(1.0,) (pygeodesy.units, 26.03.12)\n    test 352 .classname: HeightX\n    test 353 isinstance: True\n    test 354 .name: heightx\n    test 355 .named: heightx\n    test 356 .named2: HeightX 'heightx'\n    test 357 .str: 1.0\n    test 358 .toStr: 1.0\n    test 359 .std_repr: True\n    test 360 .repr: 1.0\n    test 361 .toRepr: heightx (1.0)\n    test 362 .units: heightx\n    test 363 heightx: height ('X'): could not convert string to float: 'X'\n    test 364 heightx: U ('X'): could not convert string to float: 'X'\n    test 365 heightx: TypeError\n    test 366 heightx: height ('X'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 367 .named: Test\n    test 368 .named2: HeightX 'Test'\n    test 369 .str: 1.0\n    test 370 .toStr: 1.0\n    test 371 .repr: 1.0\n    test 372 .toRepr: Test (1.0)\n    test 373 .units: heightx\n    test 374 .name: Test\n    test 375 ._name: Test\n    test 376 .str: 1.0\n    test 377 .repr: 1.0\n    test 378 delattr: ''\n\n    testing Height_(1.0,) (pygeodesy.units, 26.03.12)\n    test 379 .classname: Height_\n    test 380 isinstance: True\n    test 381 .name: height_\n    test 382 .named: height_\n    test 383 .named2: Height_ 'height_'\n    test 384 .str: 1.0\n    test 385 .toStr: 1.0\n    test 386 .std_repr: True\n    test 387 .repr: 1.0\n    test 388 .toRepr: height_ (1.0)\n    test 389 .units: height_\n    test 390 height_: height ('X'): could not convert string to float: 'X'\n    test 391 height_: U ('X'): could not convert string to float: 'X'\n    test 392 height_: TypeError\n    test 393 height_: height ('X'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 394 .named: Test\n    test 395 .named2: Height_ 'Test'\n    test 396 .str: 1.0\n    test 397 .toStr: 1.0\n    test 398 .repr: 1.0\n    test 399 .toRepr: Test (1.0)\n    test 400 .units: height_\n    test 401 .name: Test\n    test 402 ._name: Test\n    test 403 .str: 1.0\n    test 404 .repr: 1.0\n    test 405 delattr: ''\n\n    testing Lam(1.0,) (pygeodesy.units, 26.03.12)\n    test 406 .classname: Lam\n    test 407 isinstance: True\n    test 408 .name: lam\n    test 409 .named: lam\n    test 410 .named2: Lam 'lam'\n    test 411 .str: 1.0\n    test 412 .toStr: 1.0\n    test 413 .std_repr: True\n    test 414 .repr: 1.0\n    test 415 .toRepr: lam (1.0)\n    test 416 .units: lam\n    test 417 lam: lam ('X'): strRad ('X') or suffix ('EW'): could not convert string to float: 'X'\n    test 418 lam: U ('X'): strRad ('X') or suffix ('EW'): could not convert string to float: 'X'\n    test 419 lam: TypeError\n    test 420 lam: lam ('X'): strRad ('X') or suffix ('EW'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 421 .named: Test\n    test 422 .named2: Lam 'Test'\n    test 423 .str: 1.0\n    test 424 .toStr: 1.0\n    test 425 .repr: 1.0\n    test 426 .toRepr: Test (1.0)\n    test 427 .units: lam\n    test 428 .name: Test\n    test 429 ._name: Test\n    test 430 .str: 1.0\n    test 431 .repr: 1.0\n    test 432 delattr: ''\n\n    testing Lat(1.0,) (pygeodesy.units, 26.03.12)\n    test 433 .classname: Lat\n    test 434 isinstance: True\n    test 435 .name: lat\n    test 436 .named: lat\n    test 437 .named2: Lat 'lat'\n    test 438 .str: 1.0\n    test 439 .toStr: 1.0\n    test 440 .std_repr: True\n    test 441 .repr: 1.0\n    test 442 .toRepr: lat (1.0)\n    test 443 .units: lat\n    test 444 lat: lat ('X'): strDMS ('X') or suffix ('NS'): could not convert string to float: 'X'\n    test 445 lat: U ('X'): strDMS ('X') or suffix ('NS'): could not convert string to float: 'X'\n    test 446 lat: TypeError\n    test 447 lat: lat ('X'): strDMS ('X') or suffix ('NS'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 448 .named: Test\n    test 449 .named2: Lat 'Test'\n    test 450 .str: 1.0\n    test 451 .toStr: 1.0\n    test 452 .repr: 1.0\n    test 453 .toRepr: Test (1.0)\n    test 454 .units: lat\n    test 455 .name: Test\n    test 456 ._name: Test\n    test 457 .str: 1.0\n    test 458 .repr: 1.0\n    test 459 delattr: ''\n\n    testing Lat_(1.0,) (pygeodesy.units, 26.03.12)\n    test 460 .classname: Lat_\n    test 461 isinstance: True\n    test 462 .name: lat_\n    test 463 .named: lat_\n    test 464 .named2: Lat_ 'lat_'\n    test 465 .str: 1.0\n    test 466 .toStr: 1.0\n    test 467 .std_repr: True\n    test 468 .repr: 1.0\n    test 469 .toRepr: lat_ (1.0)\n    test 470 .units: lat_\n    test 471 lat_: lat ('X'): strDMS ('X') or suffix ('NS'): could not convert string to float: 'X'\n    test 472 lat_: U ('X'): strDMS ('X') or suffix ('NS'): could not convert string to float: 'X'\n    test 473 lat_: TypeError\n    test 474 lat_: lat ('X'): strDMS ('X') or suffix ('NS'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 475 .named: Test\n    test 476 .named2: Lat_ 'Test'\n    test 477 .str: 1.0\n    test 478 .toStr: 1.0\n    test 479 .repr: 1.0\n    test 480 .toRepr: Test (1.0)\n    test 481 .units: lat_\n    test 482 .name: Test\n    test 483 ._name: Test\n    test 484 .str: 1.0\n    test 485 .repr: 1.0\n    test 486 delattr: ''\n\n    testing Lon(1.0,) (pygeodesy.units, 26.03.12)\n    test 487 .classname: Lon\n    test 488 isinstance: True\n    test 489 .name: lon\n    test 490 .named: lon\n    test 491 .named2: Lon 'lon'\n    test 492 .str: 1.0\n    test 493 .toStr: 1.0\n    test 494 .std_repr: True\n    test 495 .repr: 1.0\n    test 496 .toRepr: lon (1.0)\n    test 497 .units: lon\n    test 498 lon: lon ('X'): strDMS ('X') or suffix ('EW'): could not convert string to float: 'X'\n    test 499 lon: U ('X'): strDMS ('X') or suffix ('EW'): could not convert string to float: 'X'\n    test 500 lon: TypeError\n    test 501 lon: lon ('X'): strDMS ('X') or suffix ('EW'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 502 .named: Test\n    test 503 .named2: Lon 'Test'\n    test 504 .str: 1.0\n    test 505 .toStr: 1.0\n    test 506 .repr: 1.0\n    test 507 .toRepr: Test (1.0)\n    test 508 .units: lon\n    test 509 .name: Test\n    test 510 ._name: Test\n    test 511 .str: 1.0\n    test 512 .repr: 1.0\n    test 513 delattr: ''\n\n    testing Lon_(1.0,) (pygeodesy.units, 26.03.12)\n    test 514 .classname: Lon_\n    test 515 isinstance: True\n    test 516 .name: lon_\n    test 517 .named: lon_\n    test 518 .named2: Lon_ 'lon_'\n    test 519 .str: 1.0\n    test 520 .toStr: 1.0\n    test 521 .std_repr: True\n    test 522 .repr: 1.0\n    test 523 .toRepr: lon_ (1.0)\n    test 524 .units: lon_\n    test 525 lon_: lon ('X'): strDMS ('X') or suffix ('EW'): could not convert string to float: 'X'\n    test 526 lon_: U ('X'): strDMS ('X') or suffix ('EW'): could not convert string to float: 'X'\n    test 527 lon_: TypeError\n    test 528 lon_: lon ('X'): strDMS ('X') or suffix ('EW'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 529 .named: Test\n    test 530 .named2: Lon_ 'Test'\n    test 531 .str: 1.0\n    test 532 .toStr: 1.0\n    test 533 .repr: 1.0\n    test 534 .toRepr: Test (1.0)\n    test 535 .units: lon_\n    test 536 .name: Test\n    test 537 ._name: Test\n    test 538 .str: 1.0\n    test 539 .repr: 1.0\n    test 540 delattr: ''\n\n    testing Meter(1.0,) (pygeodesy.units, 26.03.12)\n    test 541 .classname: Meter\n    test 542 isinstance: True\n    test 543 .name: meter\n    test 544 .named: meter\n    test 545 .named2: Meter 'meter'\n    test 546 .str: 1.0\n    test 547 .toStr: 1.0\n    test 548 .std_repr: True\n    test 549 .repr: 1.0\n    test 550 .toRepr: meter (1.0)\n    test 551 .units: meter\n    test 552 meter: meter ('X'): could not convert string to float: 'X'\n    test 553 meter: U ('X'): could not convert string to float: 'X'\n    test 554 meter: TypeError\n    test 555 meter: meter ('X'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 556 .named: Test\n    test 557 .named2: Meter 'Test'\n    test 558 .str: 1.0\n    test 559 .toStr: 1.0\n    test 560 .repr: 1.0\n    test 561 .toRepr: Test (1.0)\n    test 562 .units: meter\n    test 563 .name: Test\n    test 564 ._name: Test\n    test 565 .str: 1.0\n    test 566 .repr: 1.0\n    test 567 delattr: ''\n\n    testing Meter2(1.0,) (pygeodesy.units, 26.03.12)\n    test 568 .classname: Meter2\n    test 569 isinstance: True\n    test 570 .name: meter2\n    test 571 .named: meter2\n    test 572 .named2: Meter2 'meter2'\n    test 573 .str: 1.0\n    test 574 .toStr: 1.0\n    test 575 .std_repr: True\n    test 576 .repr: 1.0\n    test 577 .toRepr: meter2 (1.0)\n    test 578 .units: meter2\n    test 579 meter2: meter2 ('X'): could not convert string to float: 'X'\n    test 580 meter2: U ('X'): could not convert string to float: 'X'\n    test 581 meter2: TypeError\n    test 582 meter2: meter2 ('X'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 583 .named: Test\n    test 584 .named2: Meter2 'Test'\n    test 585 .str: 1.0\n    test 586 .toStr: 1.0\n    test 587 .repr: 1.0\n    test 588 .toRepr: Test (1.0)\n    test 589 .units: meter2\n    test 590 .name: Test\n    test 591 ._name: Test\n    test 592 .str: 1.0\n    test 593 .repr: 1.0\n    test 594 delattr: ''\n\n    testing Meter3(1.0,) (pygeodesy.units, 26.03.12)\n    test 595 .classname: Meter3\n    test 596 isinstance: True\n    test 597 .name: meter3\n    test 598 .named: meter3\n    test 599 .named2: Meter3 'meter3'\n    test 600 .str: 1.0\n    test 601 .toStr: 1.0\n    test 602 .std_repr: True\n    test 603 .repr: 1.0\n    test 604 .toRepr: meter3 (1.0)\n    test 605 .units: meter3\n    test 606 meter3: meter3 ('X'): could not convert string to float: 'X'\n    test 607 meter3: U ('X'): could not convert string to float: 'X'\n    test 608 meter3: TypeError\n    test 609 meter3: meter3 ('X'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 610 .named: Test\n    test 611 .named2: Meter3 'Test'\n    test 612 .str: 1.0\n    test 613 .toStr: 1.0\n    test 614 .repr: 1.0\n    test 615 .toRepr: Test (1.0)\n    test 616 .units: meter3\n    test 617 .name: Test\n    test 618 ._name: Test\n    test 619 .str: 1.0\n    test 620 .repr: 1.0\n    test 621 delattr: ''\n\n    testing Meter_(1.0,) (pygeodesy.units, 26.03.12)\n    test 622 .classname: Meter_\n    test 623 isinstance: True\n    test 624 .name: meter_\n    test 625 .named: meter_\n    test 626 .named2: Meter_ 'meter_'\n    test 627 .str: 1.0\n    test 628 .toStr: 1.0\n    test 629 .std_repr: True\n    test 630 .repr: 1.0\n    test 631 .toRepr: meter_ (1.0)\n    test 632 .units: meter_\n    test 633 meter_: meter ('X'): could not convert string to float: 'X'\n    test 634 meter_: U ('X'): could not convert string to float: 'X'\n    test 635 meter_: TypeError\n    test 636 meter_: meter ('X'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 637 .named: Test\n    test 638 .named2: Meter_ 'Test'\n    test 639 .str: 1.0\n    test 640 .toStr: 1.0\n    test 641 .repr: 1.0\n    test 642 .toRepr: Test (1.0)\n    test 643 .units: meter_\n    test 644 .name: Test\n    test 645 ._name: Test\n    test 646 .str: 1.0\n    test 647 .repr: 1.0\n    test 648 delattr: ''\n\n    testing Northing(1.0,) (pygeodesy.units, 26.03.12)\n    test 649 .classname: Northing\n    test 650 isinstance: True\n    test 651 .name: northing\n    test 652 .named: northing\n    test 653 .named2: Northing 'northing'\n    test 654 .str: 1.0\n    test 655 .toStr: 1.0\n    test 656 .std_repr: True\n    test 657 .repr: 1.0\n    test 658 .toRepr: northing (1.0)\n    test 659 .units: northing\n    test 660 northing: northing ('X'): could not convert string to float: 'X'\n    test 661 northing: U ('X'): could not convert string to float: 'X'\n    test 662 northing: TypeError\n    test 663 northing: northing ('X'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 664 .named: Test\n    test 665 .named2: Northing 'Test'\n    test 666 .str: 1.0\n    test 667 .toStr: 1.0\n    test 668 .repr: 1.0\n    test 669 .toRepr: Test (1.0)\n    test 670 .units: northing\n    test 671 .name: Test\n    test 672 ._name: Test\n    test 673 .str: 1.0\n    test 674 .repr: 1.0\n    test 675 delattr: ''\n\n    testing Phi(1.0,) (pygeodesy.units, 26.03.12)\n    test 676 .classname: Phi\n    test 677 isinstance: True\n    test 678 .name: phi\n    test 679 .named: phi\n    test 680 .named2: Phi 'phi'\n    test 681 .str: 1.0\n    test 682 .toStr: 1.0\n    test 683 .std_repr: True\n    test 684 .repr: 1.0\n    test 685 .toRepr: phi (1.0)\n    test 686 .units: phi\n    test 687 phi: phi ('X'): strRad ('X') or suffix ('NS'): could not convert string to float: 'X'\n    test 688 phi: U ('X'): strRad ('X') or suffix ('NS'): could not convert string to float: 'X'\n    test 689 phi: TypeError\n    test 690 phi: phi ('X'): strRad ('X') or suffix ('NS'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 691 .named: Test\n    test 692 .named2: Phi 'Test'\n    test 693 .str: 1.0\n    test 694 .toStr: 1.0\n    test 695 .repr: 1.0\n    test 696 .toRepr: Test (1.0)\n    test 697 .units: phi\n    test 698 .name: Test\n    test 699 ._name: Test\n    test 700 .str: 1.0\n    test 701 .repr: 1.0\n    test 702 delattr: ''\n\n    testing Radians(1.0,) (pygeodesy.units, 26.03.12)\n    test 703 .classname: Radians\n    test 704 isinstance: True\n    test 705 .name: radians\n    test 706 .named: radians\n    test 707 .named2: Radians 'radians'\n    test 708 .str: 1.0\n    test 709 .toStr: 1.0\n    test 710 .std_repr: True\n    test 711 .repr: 1.0\n    test 712 .toRepr: radians (1.0)\n    test 713 .units: radians\n    test 714 radians: radians ('X'): strRad ('X') or suffix ('NSEW'): could not convert string to float: 'X'\n    test 715 radians: U ('X'): strRad ('X') or suffix ('NSEW'): could not convert string to float: 'X'\n    test 716 radians: TypeError\n    test 717 radians: radians ('X'): strRad ('X') or suffix ('NSEW'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 718 .named: Test\n    test 719 .named2: Radians 'Test'\n    test 720 .str: 1.0\n    test 721 .toStr: 1.0\n    test 722 .repr: 1.0\n    test 723 .toRepr: Test (1.0)\n    test 724 .units: radians\n    test 725 .name: Test\n    test 726 ._name: Test\n    test 727 .str: 1.0\n    test 728 .repr: 1.0\n    test 729 delattr: ''\n\n    testing Radians2(1.0,) (pygeodesy.units, 26.03.12)\n    test 730 .classname: Radians2\n    test 731 isinstance: True\n    test 732 .name: radians2\n    test 733 .named: radians2\n    test 734 .named2: Radians2 'radians2'\n    test 735 .str: 1.0\n    test 736 .toStr: 1.0\n    test 737 .std_repr: True\n    test 738 .repr: 1.0\n    test 739 .toRepr: radians2 (1.0)\n    test 740 .units: radians2\n    test 741 radians2: radians2 ('X'): could not convert string to float: 'X'\n    test 742 radians2: U ('X'): could not convert string to float: 'X'\n    test 743 radians2: TypeError\n    test 744 radians2: radians2 ('X'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 745 .named: Test\n    test 746 .named2: Radians2 'Test'\n    test 747 .str: 1.0\n    test 748 .toStr: 1.0\n    test 749 .repr: 1.0\n    test 750 .toRepr: Test (1.0)\n    test 751 .units: radians2\n    test 752 .name: Test\n    test 753 ._name: Test\n    test 754 .str: 1.0\n    test 755 .repr: 1.0\n    test 756 delattr: ''\n\n    testing Radians_(1.0,) (pygeodesy.units, 26.03.12)\n    test 757 .classname: Radians_\n    test 758 isinstance: True\n    test 759 .name: radians_\n    test 760 .named: radians_\n    test 761 .named2: Radians_ 'radians_'\n    test 762 .str: 1.0\n    test 763 .toStr: 1.0\n    test 764 .std_repr: True\n    test 765 .repr: 1.0\n    test 766 .toRepr: radians_ (1.0)\n    test 767 .units: radians_\n    test 768 radians_: radians ('X'): strRad ('X') or suffix ('NSEW'): could not convert string to float: 'X'\n    test 769 radians_: U ('X'): strRad ('X') or suffix ('NSEW'): could not convert string to float: 'X'\n    test 770 radians_: TypeError\n    test 771 radians_: radians ('X'): strRad ('X') or suffix ('NSEW'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 772 .named: Test\n    test 773 .named2: Radians_ 'Test'\n    test 774 .str: 1.0\n    test 775 .toStr: 1.0\n    test 776 .repr: 1.0\n    test 777 .toRepr: Test (1.0)\n    test 778 .units: radians_\n    test 779 .name: Test\n    test 780 ._name: Test\n    test 781 .str: 1.0\n    test 782 .repr: 1.0\n    test 783 delattr: ''\n\n    testing Radius_(1.0,) (pygeodesy.units, 26.03.12)\n    test 784 .classname: Radius_\n    test 785 isinstance: True\n    test 786 .name: radius_\n    test 787 .named: radius_\n    test 788 .named2: Radius_ 'radius_'\n    test 789 .str: 1.0\n    test 790 .toStr: 1.0\n    test 791 .std_repr: True\n    test 792 .repr: 1.0\n    test 793 .toRepr: radius_ (1.0)\n    test 794 .units: radius_\n    test 795 radius_: radius ('X'): could not convert string to float: 'X'\n    test 796 radius_: U ('X'): could not convert string to float: 'X'\n    test 797 radius_: TypeError\n    test 798 radius_: radius ('X'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 799 .named: Test\n    test 800 .named2: Radius_ 'Test'\n    test 801 .str: 1.0\n    test 802 .toStr: 1.0\n    test 803 .repr: 1.0\n    test 804 .toRepr: Test (1.0)\n    test 805 .units: radius_\n    test 806 .name: Test\n    test 807 ._name: Test\n    test 808 .str: 1.0\n    test 809 .repr: 1.0\n    test 810 delattr: ''\n\n    testing Scalar(1.0,) (pygeodesy.units, 26.03.12)\n    test 811 .classname: Scalar\n    test 812 isinstance: True\n    test 813 .name: scalar\n    test 814 .named: scalar\n    test 815 .named2: Scalar 'scalar'\n    test 816 .str: 1.0\n    test 817 .toStr: 1.0\n    test 818 .std_repr: True\n    test 819 .repr: 1.0\n    test 820 .toRepr: scalar (1.0)\n    test 821 .units: scalar\n    test 822 scalar: scalar ('X'): could not convert string to float: 'X'\n    test 823 scalar: U ('X'): could not convert string to float: 'X'\n    test 824 scalar: TypeError\n    test 825 scalar: scalar ('X'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 826 .named: Test\n    test 827 .named2: Scalar 'Test'\n    test 828 .str: 1.0\n    test 829 .toStr: 1.0\n    test 830 .repr: 1.0\n    test 831 .toRepr: Test (1.0)\n    test 832 .units: scalar\n    test 833 .name: Test\n    test 834 ._name: Test\n    test 835 .str: 1.0\n    test 836 .repr: 1.0\n    test 837 delattr: ''\n\n    testing Scalar_(1.0,) (pygeodesy.units, 26.03.12)\n    test 838 .classname: Scalar_\n    test 839 isinstance: True\n    test 840 .name: scalar_\n    test 841 .named: scalar_\n    test 842 .named2: Scalar_ 'scalar_'\n    test 843 .str: 1.0\n    test 844 .toStr: 1.0\n    test 845 .std_repr: True\n    test 846 .repr: 1.0\n    test 847 .toRepr: scalar_ (1.0)\n    test 848 .units: scalar_\n    test 849 scalar_: scalar ('X'): could not convert string to float: 'X'\n    test 850 scalar_: U ('X'): could not convert string to float: 'X'\n    test 851 scalar_: TypeError\n    test 852 scalar_: scalar ('X'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 853 .named: Test\n    test 854 .named2: Scalar_ 'Test'\n    test 855 .str: 1.0\n    test 856 .toStr: 1.0\n    test 857 .repr: 1.0\n    test 858 .toRepr: Test (1.0)\n    test 859 .units: scalar_\n    test 860 .name: Test\n    test 861 ._name: Test\n    test 862 .str: 1.0\n    test 863 .repr: 1.0\n    test 864 delattr: ''\n\n    testing Float(1.0,) (pygeodesy.units, 26.03.12)\n    test 865 .classname: Float\n    test 866 isinstance: True\n    test 867 .name: float\n    test 868 .named: float\n    test 869 .named2: Float 'float'\n    test 870 .str: 1.0\n    test 871 .toStr: 1.0\n    test 872 .std_repr: True\n    test 873 .repr: 1.0\n    test 874 .toRepr: float (1.0)\n    test 875 .units: float\n    test 876 float: Float ('X'): could not convert string to float: 'X'\n    test 877 float: U ('X'): could not convert string to float: 'X'\n    test 878 float: TypeError\n    test 879 float: Float ('X'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 880 .named: Test\n    test 881 .named2: Float 'Test'\n    test 882 .str: 1.0\n    test 883 .toStr: 1.0\n    test 884 .repr: 1.0\n    test 885 .toRepr: Test (1.0)\n    test 886 .units: float\n    test 887 .name: Test\n    test 888 ._name: Test\n    test 889 .str: 1.0\n    test 890 .repr: 1.0\n    test 891 delattr: ''\n\n    testing Radius(1.0,) (pygeodesy.units, 26.03.12)\n    test 892 .classname: Radius\n    test 893 isinstance: True\n    test 894 .name: radius\n    test 895 .named: radius\n    test 896 .named2: Radius 'radius'\n    test 897 .str: 1.0\n    test 898 .toStr: 1.0\n    test 899 .std_repr: True\n    test 900 .repr: 1.0\n    test 901 .toRepr: radius (1.0)\n    test 902 .units: radius\n    test 903 radius: radius ('X'): could not convert string to float: 'X'\n    test 904 radius: U ('X'): could not convert string to float: 'X'\n    test 905 radius: TypeError\n    test 906 radius: radius ('X'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 907 .named: Test\n    test 908 .named2: Radius 'Test'\n    test 909 .str: 1.0\n    test 910 .toStr: 1.0\n    test 911 .repr: 1.0\n    test 912 .toRepr: Test (1.0)\n    test 913 .units: radius\n    test 914 .name: Test\n    test 915 ._name: Test\n    test 916 .str: 1.0\n    test 917 .repr: 1.0\n    test 918 delattr: ''\n# lazily imported pygeodesy.utmups by bases.py line 199\n# lazily imported pygeodesy.vector2d by bases.py line 199\n# lazily imported pygeodesy.webmercator by bases.py line 199\n# lazily imported pygeodesy.auxilats by bases.py line 199\n# lazily imported pygeodesy.geodesicx by bases.py line 199\n# lazily imported pygeodesy.rhumb by bases.py line 199\n\n    testing _Lat(1.0,) (pygeodesy.units, 26.03.12)\n    test 919 .classname: _Lat\n    test 920 isinstance: True\n    test 921 .name: _lat\n    test 922 .named: _lat\n    test 923 .named2: _Lat '_lat'\n    test 924 .str: 1.0\n    test 925 .toStr: 1.0\n    test 926 .std_repr: True\n    test 927 .repr: 1.0\n    test 928 .toRepr: _lat (1.0)\n    test 929 .units: _lat\n    test 930 _lat: lat ('X'): strDMS ('X') or suffix ('NS'): could not convert string to float: 'X'\n    test 931 _lat: U ('X'): strDMS ('X') or suffix ('NS'): could not convert string to float: 'X'\n    test 932 _lat: TypeError\n    test 933 _lat: lat ('X'): strDMS ('X') or suffix ('NS'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 934 .named: Test\n    test 935 .named2: _Lat 'Test'\n    test 936 .str: 1.0\n    test 937 .toStr: 1.0\n    test 938 .repr: 1.0\n    test 939 .toRepr: Test (1.0)\n    test 940 .units: _lat\n    test 941 .name: Test\n    test 942 ._name: Test\n    test 943 .str: 1.0\n    test 944 .repr: 1.0\n    test 945 delattr: ''\n\n    testing _Lon(1.0,) (pygeodesy.units, 26.03.12)\n    test 946 .classname: _Lon\n    test 947 isinstance: True\n    test 948 .name: _lon\n    test 949 .named: _lon\n    test 950 .named2: _Lon '_lon'\n    test 951 .str: 1.0\n    test 952 .toStr: 1.0\n    test 953 .std_repr: True\n    test 954 .repr: 1.0\n    test 955 .toRepr: _lon (1.0)\n    test 956 .units: _lon\n    test 957 _lon: lon ('X'): strDMS ('X') or suffix ('EW'): could not convert string to float: 'X'\n    test 958 _lon: U ('X'): strDMS ('X') or suffix ('EW'): could not convert string to float: 'X'\n    test 959 _lon: TypeError\n    test 960 _lon: lon ('X'): strDMS ('X') or suffix ('EW'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 961 .named: Test\n    test 962 .named2: _Lon 'Test'\n    test 963 .str: 1.0\n    test 964 .toStr: 1.0\n    test 965 .repr: 1.0\n    test 966 .toRepr: Test (1.0)\n    test 967 .units: _lon\n    test 968 .name: Test\n    test 969 ._name: Test\n    test 970 .str: 1.0\n    test 971 .repr: 1.0\n    test 972 delattr: ''\n\n    testing Band('U',) (pygeodesy.units, 26.03.12)\n    test 973 .classname: Band\n    test 974 isinstance: True\n    test 975 .name: band\n    test 976 .named: band\n    test 977 .named2: Band 'band'\n    test 978 .str: U\n    test 979 .toStr: U\n    test 980 .std_repr: True\n    test 981 .repr: 'U'\n    test 982 .toRepr: band ('U')\n    test 983 .units: band\n    test 984 error: X  FAILED, KNOWN, expected <class 'ValueError'>\n    test 985 error: X  FAILED, KNOWN, expected <class 'ValueError'>\n    test 986 Error: X  FAILED, KNOWN, expected <class 'TypeError'>\n    test 987 .named: Test\n    test 988 .named2: Band 'Test'\n    test 989 .str: U\n    test 990 .toStr: U\n    test 991 .repr: 'U'\n    test 992 .toRepr: Test ('U')\n    test 993 .units: band\n    test 994 .name: Test\n    test 995 ._name: Test\n    test 996 .str: U\n    test 997 .repr: 'U'\n    test 998 delattr: ''\n\n    testing Str('U',) (pygeodesy.units, 26.03.12)\n    test 999 .classname: Str\n    test 1000 isinstance: True\n    test 1001 .name: str\n    test 1002 .named: str\n    test 1003 .named2: Str 'str'\n    test 1004 .str: U\n    test 1005 .toStr: U\n    test 1006 .std_repr: True\n    test 1007 .repr: 'U'\n    test 1008 .toRepr: str ('U')\n    test 1009 .units: str\n    test 1010 error: X  FAILED, KNOWN, expected <class 'ValueError'>\n    test 1011 error: X  FAILED, KNOWN, expected <class 'ValueError'>\n    test 1012 Error: X  FAILED, KNOWN, expected <class 'TypeError'>\n    test 1013 .named: Test\n    test 1014 .named2: Str 'Test'\n    test 1015 .str: U\n    test 1016 .toStr: U\n    test 1017 .repr: 'U'\n    test 1018 .toRepr: Test ('U')\n    test 1019 .units: str\n    test 1020 .name: Test\n    test 1021 ._name: Test\n    test 1022 .str: U\n    test 1023 .repr: 'U'\n    test 1024 delattr: ''\n\n    testing Bool(True,) (pygeodesy.units, 26.03.12)\n    test 1025 .classname: Bool\n    test 1026 isinstance: True\n    test 1027 .name: bool\n    test 1028 .named: bool\n    test 1029 .named2: Bool 'bool'\n    test 1030 .str: True\n    test 1031 .toStr: True\n    test 1032 .std_repr: True\n    test 1033 .repr: True\n    test 1034 .toRepr: bool (True)\n    test 1035 .units: bool\n    test 1036 error: True  FAILED, KNOWN, expected <class 'ValueError'>\n    test 1037 error: True  FAILED, KNOWN, expected <class 'ValueError'>\n    test 1038 Error: True  FAILED, KNOWN, expected <class 'TypeError'>\n    test 1039 .named: Test\n    test 1040 .named2: Bool 'Test'\n    test 1041 .str: True\n    test 1042 .toStr: True\n    test 1043 .repr: True\n    test 1044 .toRepr: Test (True)\n    test 1045 .units: bool\n    test 1046 .name: Test\n    test 1047 ._name: Test\n    test 1048 .str: True\n    test 1049 .repr: True\n    test 1050 delattr: ''\n\n    testing Int(2,) (pygeodesy.units, 26.03.12)\n    test 1051 .classname: Int\n    test 1052 isinstance: True\n    test 1053 .name: int\n    test 1054 .named: int\n    test 1055 .named2: Int 'int'\n    test 1056 .str: 2\n    test 1057 .toStr: 2\n    test 1058 .std_repr: True\n    test 1059 .repr: 2\n    test 1060 .toRepr: int (2)\n    test 1061 .units: int\n    test 1062 int: Int ('X'): invalid literal for int() with base 10: 'X'\n    test 1063 int: U ('X'): invalid literal for int() with base 10: 'X'\n    test 1064 int: TypeError\n    test 1065 int: Int ('X'): invalid literal for int() with base 10: 'X'  FAILED, KNOWN, expected 'X'\n    test 1066 .named: Test\n    test 1067 .named2: Int 'Test'\n    test 1068 .str: 2\n    test 1069 .toStr: 2\n    test 1070 .repr: 2\n    test 1071 .toRepr: Test (2)\n    test 1072 .units: int\n    test 1073 .name: Test\n    test 1074 ._name: Test\n    test 1075 .str: 2\n    test 1076 .repr: 2\n    test 1077 delattr: ''\n\n    testing Int_(2,) (pygeodesy.units, 26.03.12)\n    test 1078 .classname: Int_\n    test 1079 isinstance: True\n    test 1080 .name: int_\n    test 1081 .named: int_\n    test 1082 .named2: Int_ 'int_'\n    test 1083 .str: 2\n    test 1084 .toStr: 2\n    test 1085 .std_repr: True\n    test 1086 .repr: 2\n    test 1087 .toRepr: int_ (2)\n    test 1088 .units: int_\n    test 1089 int_: Int_ ('X'): invalid literal for int() with base 10: 'X'\n    test 1090 int_: U ('X'): invalid literal for int() with base 10: 'X'\n    test 1091 int_: TypeError\n    test 1092 int_: Int_ ('X'): invalid literal for int() with base 10: 'X'  FAILED, KNOWN, expected 'X'\n    test 1093 .named: Test\n    test 1094 .named2: Int_ 'Test'\n    test 1095 .str: 2\n    test 1096 .toStr: 2\n    test 1097 .repr: 2\n    test 1098 .toRepr: Test (2)\n    test 1099 .units: int_\n    test 1100 .name: Test\n    test 1101 ._name: Test\n    test 1102 .str: 2\n    test 1103 .repr: 2\n    test 1104 delattr: ''\n\n    testing Number_(2,) (pygeodesy.units, 26.03.12)\n    test 1105 .classname: Number_\n    test 1106 isinstance: True\n    test 1107 .name: number_\n    test 1108 .named: number_\n    test 1109 .named2: Number_ 'number_'\n    test 1110 .str: 2\n    test 1111 .toStr: 2\n    test 1112 .std_repr: True\n    test 1113 .repr: 2\n    test 1114 .toRepr: number_ (2)\n    test 1115 .units: number_\n    test 1116 number_: number ('X'): invalid literal for int() with base 10: 'X'\n    test 1117 number_: U ('X'): invalid literal for int() with base 10: 'X'\n    test 1118 number_: TypeError\n    test 1119 number_: number ('X'): invalid literal for int() with base 10: 'X'  FAILED, KNOWN, expected 'X'\n    test 1120 .named: Test\n    test 1121 .named2: Number_ 'Test'\n    test 1122 .str: 2\n    test 1123 .toStr: 2\n    test 1124 .repr: 2\n    test 1125 .toRepr: Test (2)\n    test 1126 .units: number_\n    test 1127 .name: Test\n    test 1128 ._name: Test\n    test 1129 .str: 2\n    test 1130 .repr: 2\n    test 1131 delattr: ''\n\n    testing Precision_(2,) (pygeodesy.units, 26.03.12)\n    test 1132 .classname: Precision_\n    test 1133 isinstance: True\n    test 1134 .name: precision_\n    test 1135 .named: precision_\n    test 1136 .named2: Precision_ 'precision_'\n    test 1137 .str: 2\n    test 1138 .toStr: 2\n    test 1139 .std_repr: True\n    test 1140 .repr: 2\n    test 1141 .toRepr: precision_ (2)\n    test 1142 .units: precision_\n    test 1143 precision_: precision ('X'): invalid literal for int() with base 10: 'X'\n    test 1144 precision_: U ('X'): invalid literal for int() with base 10: 'X'\n    test 1145 precision_: TypeError\n    test 1146 precision_: precision ('X'): invalid literal for int() with base 10: 'X'  FAILED, KNOWN, expected 'X'\n    test 1147 .named: Test\n    test 1148 .named2: Precision_ 'Test'\n    test 1149 .str: 2\n    test 1150 .toStr: 2\n    test 1151 .repr: 2\n    test 1152 .toRepr: Test (2)\n    test 1153 .units: precision_\n    test 1154 .name: Test\n    test 1155 ._name: Test\n    test 1156 .str: 2\n    test 1157 .repr: 2\n    test 1158 delattr: ''\n\n    testing Zone(2,) (pygeodesy.units, 26.03.12)\n    test 1159 .classname: Zone\n    test 1160 isinstance: True\n    test 1161 .name: zone\n    test 1162 .named: zone\n    test 1163 .named2: Zone 'zone'\n    test 1164 .str: 2\n    test 1165 .toStr: 2\n    test 1166 .std_repr: True\n    test 1167 .repr: 2\n    test 1168 .toRepr: zone (2)\n    test 1169 .units: zone\n    test 1170 zone: zone ('X'): invalid literal for int() with base 10: 'X'\n    test 1171 zone: U ('X'): invalid literal for int() with base 10: 'X'\n    test 1172 zone: TypeError\n    test 1173 zone: zone ('X'): invalid literal for int() with base 10: 'X'  FAILED, KNOWN, expected 'X'\n    test 1174 .named: Test\n    test 1175 .named2: Zone 'Test'\n    test 1176 .str: 2\n    test 1177 .toStr: 2\n    test 1178 .repr: 2\n    test 1179 .toRepr: Test (2)\n    test 1180 .units: zone\n    test 1181 .name: Test\n    test 1182 ._name: Test\n    test 1183 .str: 2\n    test 1184 .repr: 2\n    test 1185 delattr: ''\n\n    testing Epoch(1901,) (pygeodesy.units, 26.03.12)\n    test 1186 .classname: Epoch\n    test 1187 isinstance: True\n    test 1188 .name: epoch\n    test 1189 .named: epoch\n    test 1190 .named2: Epoch 'epoch'\n    test 1191 .str: 1901\n    test 1192 .toStr: 1901\n    test 1193 .std_repr: False\n    test 1194 .repr: epoch (1901)\n    test 1195 .toRepr: epoch (1901)\n    test 1196 .units: epoch\n    test 1197 epoch: epoch ('X'): could not convert string to float: 'X'\n    test 1198 epoch: U ('X'): could not convert string to float: 'X'\n    test 1199 epoch: TypeError\n    test 1200 epoch: epoch ('X'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 1201 .named: Test\n    test 1202 .named2: Epoch 'Test'\n    test 1203 .str: 1901\n    test 1204 .toStr: 1901\n    test 1205 .repr: Test (1901)\n    test 1206 .toRepr: Test (1901)\n    test 1207 .units: epoch\n    test 1208 .name: Test\n    test 1209 ._name: Test\n    test 1210 .str: 1901\n    test 1211 .repr: Test (1901)\n    test 1212 delattr: ''\n\n    testing(pygeodesy.units, 26.03.12)\n\n    test 1213 Azimuth: 1.0\n\n    test 1214 Bearing: 1.0\n    test 1215 Bearing_: 0.01745\n\n    test 1216 Lamd: 6.30\n    test 1217 Phid: 6.30\n\n    test 1218 FIx: 1.0  FAILED, KNOWN, expected 1\n    test 1219 FIx: 1.5\n\n    test 1220 Dash: -\n    test 1221 Dash: -\n\n    test 1222 Dash: '-'\n    test 1223 Dash: Dash ('-')\n\n    test 1224 Join_d: c-a-l-l\n    test 1225 Join_d: c-a-l-l\n\n    test 1226 Join_d: 'c-a-l-l'\n    test 1227 Join_d: Join_d ('c-a-l-l')\n\n    52 of 1227 testUnits.py tests (4.2%) FAILED, ALL KNOWN (pygeodesy 26.3.26 Python 3.12.10 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 2.1.0 scipy 1.14.1 Math 2 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 isLazy 3 -W  default) 62.794 ms\nrunning /usr/local/bin/p....n3.12 -W default ~/PyGeodesy/test/testUps.py\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.degDMS from .dms by testUps.py line 11\n# lazily imported pygeodesy.F_DMS from .dms by testUps.py line 11\n# lazily imported pygeodesy.parseUTMUPS5 from .utmups by testUps.py line 11\n# lazily imported pygeodesy.RangeError from .errors by testUps.py line 11\n# lazily imported pygeodesy.strs from .streprs by testUps.py line 11\n# lazily imported pygeodesy.toUps8 from .ups by testUps.py line 11\n# lazily imported pygeodesy.toUtmUps8 from .utmups by testUps.py line 11\n# lazily imported pygeodesy.Ups from .ups by testUps.py line 11\n# lazily imported pygeodesy.UtmUps from .utmups by testUps.py line 11\n# lazily imported pygeodesy.ellipsoidalVincenty by testUps.py line 195\n\n    testing testUps.py 23.03.27 (module pygeodesy.ups 25.04.14) isLazy=3\n    test 1 Ups: 00 N 448251.0 5411932.0001\n    test 2 Ups: 00 N 448252 5411933\n    test 3 Ups: 00 N 448251.795 5411932.678\n    test 4 Ups: 00Z N 448251.8 5411932.7 n/a n/a\n    test 5 Ups2: [Z:00, H:N, E:448252, N:5411933]\n    test 6 UtmUps.toLatLon: 43.610051°N, 004.46308°E\n    test 7 UtmUps.toLatLon: 43°36′36.18″N, 004°27′47.09″E\n# lazily imported pygeodesy.mgrs by utmupsBase.py line 523\n    test 8 UtmUps.toMgrs: 60T UP 60176 38249\n# imported pygeodesy.basics into errors.py line 443\n    test 9 toUps: lat ('43.684097°'): inside UTM range [-79.5, 83.5]\n    test 10 UtmUps.toUtm: 60 N 360177 4838249\n    test 11 toUpsID1: 00 N 1530125.78 2426773.6 -132.24798917° 0.99647445\n    test 12 toUtmUps8ID2: 38 N 467367.68 8100752.13 -57.37878422′ 0.99961302  FAILED, KNOWN, expected 38 N 3320416.75 632668.43 +44.0° 1.01619505\n    test 13 toUtmUps8ID2: 00 N 3320416.75 632668.43 +44.0° 1.01619505\n    test 14 toUpsID3: 00 S 2222979.47 1797474.9 -132.24786194° 0.99455723\n    test 15 Ups.toLatLonID4: 84°17′14.04″N, 132°14′52.76″W\n    test 16 Ups.toLatLonID4: 84.287234°N, 132.247989°W\n    test 17 Ups.toLatLonID5: 73°00′00.0″N, 044°00′00.0″E\n    test 18 Ups.toLatLonID5: 73.0°N, 044.0°E\n    test 19 Ups.toLatLonID6: 87°17′14.4″S, 132°14′52.3″E\n    test 20 Ups.toLatLonID6: 87.287333°S, 132.247861°E\n    test 21 latlon: 84.0°N, 084.0°E\n    test 22 toUps: 00 N 2663075 1930308\n    test 23 toUps: 00 N 2663075.299562 1930307.977716 +84.0° 0.99673\n    test 24 toUps(None): (0, 'N', 2663075.299562, 1930307.977716, 'Z', ...)\n    test 25 .scale0: 0.994000\n    test 26 rescale0: 0.997261\n    test 27 NGA-10.2-1: 00 N 2000000.0 2000000.0 +0.0″ 0.994\n    test 28 NGA-10.2-2: 00 N 1998062.320046 2111009.610243 -179.0° 0.994076\n    test 29 NGA-10.2-3: 00 N 1777930.731071 2000000.0 -90.0° 0.994303\n    test 30 NGA-10.2-4: 00 N 1994185.827038 1666906.254073 -1.0° 0.994682\n    test 31 NGA-10.2-5: 00 N 2000000.0 1555731.570643 +0.0″ 0.995212\n    test 32 NGA-10.2-6: 00 N 2009694.068153 1444627.207468 +1.0° 0.995895\n    test 33 NGA-10.2-7: 00 N 2666626.157825 1988363.997132 +89.0° 0.996730\n    test 34 NGA-10.2-8: 46 N 459200.256323 9217519.441609 -2.97767886° 0.997718\n    test 35 NGA-10.2-9: 46 N 468930.934996 9105366.008486 -1.98055172° 0.998860\n    test 36 NGA-10.2-10: 60 N 534921.971582 8993806.415149 +1.97539632° 1.000156\n    test 37 NGA-10.2-11: 01 N 441867.784867 8883084.955948 -2.95450468° 1.001608\n    test 38 NGA-10.2-12: 31 N 243900.35203 4432069.056899 -1.92940969° 1.0004075\n    test 39 NGA-10.2-13: 01 N 277707.830749 331796.291679 -6.28291137′ 1.00021172\n    test 40 NGA-10.2-14: 16 N 166223.907623 221366.16603 -6.28776606′ 1.00097936\n    test 41 NGA-10.2-15: 30 N 722561.736479 110597.972524 +2.09515682′ 1.00021322\n    test 42 NGA-10.2-16: 31 N 166021.443081 0.0 +0.0″ 1.00098106\n    test 43 NGA-10.2-17: 31 S 277438.263521 9889402.027476 +2.09515682′ 1.00021322\n    test 44 NGA-10.2-18: 46 S 166223.907623 9778633.83397 +6.28776606′ 1.00097936\n    test 45 NGA-10.2-19: 60 S 722292.169251 9668203.708321 -6.28291137′ 1.00021172\n    test 46 NGA-10.2-20: 01 S 166831.065275 9557263.747314 +12.56782777′ 1.00097428\n    test 47 NGA-10.3-1: -64.9164123332 -135.0\n    test 48 NGA-10.3-2: -70.0552944014 -153.4349488229\n    test 49 NGA-10.3-3: -72.1263610163 180.0  FAILED, KNOWN, expected -72.1263610163 -180.0\n    test 50 NGA-10.3-4: -70.0552944014 153.4349488229\n    test 51 NGA-10.3-5: -64.9164123332 135.0\n    test 52 NGA-10.3-6: -70.0552944014 -116.5650511771\n    test 53 NGA-10.3-7: -77.3120791908 -135.0\n    test 54 NGA-10.3-8: -81.0106632645 180.0\n    test 55 NGA-10.3-9: -77.3120791908 135.0\n    test 56 NGA-10.3-10: -70.0552944014 116.5650511771\n    test 57 NGA-10.3-11: -72.1263610163 -90.0\n    test 58 NGA-10.3-12: -81.0106632645 -90.0\n    test 59 NGA-10.3-13: -90.0 0.0\n    test 60 NGA-10.3-14: -81.0106632645 90.0\n    test 61 NGA-10.3-15: -72.1263610163 90.0\n    test 62 NGA-10.3-16: -70.0552944014 -63.4349488229\n    test 63 NGA-10.3-17: -77.3120791908 -45.0\n    test 64 NGA-10.3-18: -81.0106632645 0.0\n    test 65 NGA-10.3-19: -77.3120791908 45.0\n    test 66 NGA-10.3-20: -70.0552944014 63.4349488229\n    test 67 NGA-10.3-21: -64.9164123332 -45.0\n    test 68 NGA-10.3-22: -70.0552944014 -26.5650511771\n    test 69 NGA-10.3-23: -72.1263610163 0.0\n    test 70 NGA-10.3-24: -70.0552944014 26.5650511771\n    test 71 NGA-10.3-25: -64.9164123332 45.0\n    test 72 toUps: 00 N 2000000 1288738\n    test 73 toUtm: 02 N 611555 10703765\n    test 74 toUtm: [Z:00Z, H:N, E:2000000, N:2000000]\n\n    2 of 74 testUps.py tests (2.7%) FAILED, ALL KNOWN (pygeodesy 26.3.26 Python 3.12.10 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 2.1.0 scipy 1.14.1 Math 2 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 isLazy 3 -W  default) 40.681 ms\nrunning /usr/local/bin/p....n3.12 -W default ~/PyGeodesy/test/testUtily.py\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.EPS from .constants by testUtily.py line 11\n# lazily imported pygeodesy.INF from .constants by testUtily.py line 11\n# lazily imported pygeodesy.NEG0 from .constants by testUtily.py line 11\n# lazily imported pygeodesy.NINF from .constants by testUtily.py line 11\n# lazily imported pygeodesy.PI from .constants by testUtily.py line 11\n# lazily imported pygeodesy.PI2 from .constants by testUtily.py line 11\n# lazily imported pygeodesy.PI_2 from .constants by testUtily.py line 11\n# lazily imported pygeodesy.PI3_2 from .constants by testUtily.py line 11\n# lazily imported pygeodesy.acre2ha from .utily by testUtily.py line 11\n# lazily imported pygeodesy.acre2m2 from .utily by testUtily.py line 11\n# lazily imported pygeodesy.atan1 from .utily by testUtily.py line 11\n# lazily imported pygeodesy.atan2d from .utily by testUtily.py line 11\n# lazily imported pygeodesy.chain2m from .utily by testUtily.py line 11\n# lazily imported pygeodesy.cot from .utily by testUtily.py line 11\n# lazily imported pygeodesy.cot_ from .utily by testUtily.py line 11\n# lazily imported pygeodesy.cotd from .utily by testUtily.py line 11\n# lazily imported pygeodesy.cotd_ from .utily by testUtily.py line 11\n# lazily imported pygeodesy.degrees90 from .utily by testUtily.py line 11\n# lazily imported pygeodesy.degrees180 from .utily by testUtily.py line 11\n# lazily imported pygeodesy.degrees360 from .utily by testUtily.py line 11\n# lazily imported pygeodesy.degrees2m from .utily by testUtily.py line 11\n# lazily imported pygeodesy.fathom2m from .utily by testUtily.py line 11\n# lazily imported pygeodesy.fstr from .streprs by testUtily.py line 11\n# lazily imported pygeodesy.ft2m from .utily by testUtily.py line 11\n# lazily imported pygeodesy.furlong2m from .utily by testUtily.py line 11\n# lazily imported pygeodesy.grades400 from .utily by testUtily.py line 11\n# lazily imported pygeodesy.degrees2grades from .utily by testUtily.py line 11\n# lazily imported pygeodesy.grades2degrees from .utily by testUtily.py line 11\n# lazily imported pygeodesy.grades2radians from .utily by testUtily.py line 11\n# lazily imported pygeodesy.ha2acre from .utily by testUtily.py line 11\n# lazily imported pygeodesy.isPoints2 from .iters by testUtily.py line 11\n# lazily imported pygeodesy.map1 from .basics by testUtily.py line 11\n# lazily imported pygeodesy.m2chain from .utily by testUtily.py line 11\n# lazily imported pygeodesy.m2degrees from .utily by testUtily.py line 11\n# lazily imported pygeodesy.m2fathom from .utily by testUtily.py line 11\n# lazily imported pygeodesy.m2ft from .utily by testUtily.py line 11\n# lazily imported pygeodesy.m2furlong from .utily by testUtily.py line 11\n# lazily imported pygeodesy.m2ha from .utily by testUtily.py line 11\n# lazily imported pygeodesy.m2toise from .utily by testUtily.py line 11\n# lazily imported pygeodesy.m2yard from .utily by testUtily.py line 11\n# lazily imported pygeodesy.radiansPI from .utily by testUtily.py line 11\n# lazily imported pygeodesy.radiansPI2 from .utily by testUtily.py line 11\n# lazily imported pygeodesy.radiansPI_2 from .utily by testUtily.py line 11\n# lazily imported pygeodesy.sincos2 from .utily by testUtily.py line 11\n# lazily imported pygeodesy.sincos2d from .utily by testUtily.py line 11\n# lazily imported pygeodesy.sincostan3 from .utily by testUtily.py line 11\n# lazily imported pygeodesy.tan from .utily by testUtily.py line 11\n# lazily imported pygeodesy.tan_ from .utily by testUtily.py line 11\n# lazily imported pygeodesy.tan_2 from .utily by testUtily.py line 11\n# lazily imported pygeodesy.tand from .utily by testUtily.py line 11\n# lazily imported pygeodesy.tand_ from .utily by testUtily.py line 11\n# lazily imported pygeodesy.toise2m from .utily by testUtily.py line 11\n# lazily imported pygeodesy.unroll180 from .utily by testUtily.py line 11\n# lazily imported pygeodesy.wrap90 from .utily by testUtily.py line 11\n# lazily imported pygeodesy.wrap180 from .utily by testUtily.py line 11\n# lazily imported pygeodesy.wrap360 from .utily by testUtily.py line 11\n# lazily imported pygeodesy.wrapPI from .utily by testUtily.py line 11\n# lazily imported pygeodesy.wrapPI2 from .utily by testUtily.py line 11\n# lazily imported pygeodesy.wrapPI_2 from .utily by testUtily.py line 11\n# lazily imported pygeodesy.yard2m from .utily by testUtily.py line 11\n\n    testing testUtily.py 24.12.24 (module pygeodesy.utily 26.03.20) isLazy=3\n\n    test 1 degrees90(PI_2): 90.0\n    test 2 degrees90(PI): 0.0\n    test 3 degrees90(PI2): 0.0\n    test 4 degrees90(-PI_2): -90.0\n    test 5 degrees90(-PI): 0.0\n    test 6 degrees90(-PI2): 0.0\n\n    test 7 degrees180(PI_2): 90.0\n    test 8 degrees180(PI): 180.0\n    test 9 degrees180(PI2): 0.0\n    test 10 degrees180(-PI_2): -90.0\n    test 11 degrees180(-PI): -180.0\n    test 12 degrees180(-PI2): 0.0\n\n    test 13 degrees360(PI_2): 90.0\n    test 14 degrees360(PI): 180.0\n    test 15 degrees360(PI2): 0.0\n    test 16 degrees360(-PI_2): 270.0\n    test 17 degrees360(-PI): 180.0\n    test 18 degrees360(-PI2): 0.0\n\n    test 19 degrees2grades(90): 100.0\n    test 20 degrees2grades(180): 200.0\n    test 21 degrees2grades(360): 400.0\n    test 22 degrees2grades(-90): -100.0\n    test 23 degrees2grades(-180): -200.0\n    test 24 degrees2grades(-360): -400.0\n\n    test 25 grades400(PI_2): 100.0\n    test 26 grades400(PI): 200.0\n    test 27 grades400(PI2): 0.0\n    test 28 grades400(-PI_2): 300.0\n    test 29 grades400(-PI): 200.0\n    test 30 grades400(-PI2): 0.0\n\n    test 31 grades2degrees(100): 90.0\n    test 32 grades2degrees(200): 180.0\n    test 33 grades2degrees(400): 360.0\n    test 34 grades2degrees(-100): -90.0\n    test 35 grades2degrees(-200): -180.0\n    test 36 grades2degrees(-400): -360.0\n\n    test 37 grades2radians(100): 1.5707963267948966\n    test 38 grades2radians(200): 3.141592653589793\n    test 39 grades2radians(400): 6.283185307179586\n    test 40 grades2radians(-100): -1.5707963267948966\n    test 41 grades2radians(-200): -3.141592653589793\n    test 42 grades2radians(-400): -6.283185307179586\n\n    test 43 radiansPI_2(90): 1.5707963267948966\n    test 44 radiansPI_2(180): 0.0\n    test 45 radiansPI_2(360): 0.0\n    test 46 radiansPI_2(-90): -1.5707963267948966\n    test 47 radiansPI_2(-180): 0.0\n    test 48 radiansPI_2(-360): 0.0\n\n    test 49 radiansPI(90): 1.5707963267948966\n    test 50 radiansPI(180): 3.141592653589793\n    test 51 radiansPI(360): 0.0\n    test 52 radiansPI(-90): -1.5707963267948966\n    test 53 radiansPI(-180): -3.141592653589793\n    test 54 radiansPI(-360): 0.0\n\n    test 55 radiansPI2(90): 1.5707963267948966\n    test 56 radiansPI2(180): 3.141592653589793\n    test 57 radiansPI2(360): 0.0\n    test 58 radiansPI2(-90): 4.71238898038469\n    test 59 radiansPI2(-180): 3.141592653589793\n    test 60 radiansPI2(-360): 0.0\n\n    test 61 wrap90(90): 90.0\n    test 62 wrap90(180): 0.0\n    test 63 wrap90(360): 0.0\n    test 64 wrap90(-90): -90.0\n    test 65 wrap90(-180): 0.0\n    test 66 wrap90(-360): 0.0\n\n    test 67 wrap180(90): 90.0\n    test 68 wrap180(180): 180.0\n    test 69 wrap180(360): 0.0\n    test 70 wrap180(-90): -90.0\n    test 71 wrap180(-180): -180.0\n    test 72 wrap180(-360): 0.0\n\n    test 73 wrap360(90): 90.0\n    test 74 wrap360(180): 180.0\n    test 75 wrap360(360): 0.0\n    test 76 wrap360(-90): 270.0\n    test 77 wrap360(-180): 180.0\n    test 78 wrap360(-360): 0.0\n\n    test 79 wrapPI_2(PI_2): 1.5707963267948966\n    test 80 wrapPI_2(PI): 0.0\n    test 81 wrapPI_2(PI2): 0.0\n    test 82 wrapPI_2(-PI_2): -1.5707963267948966\n    test 83 wrapPI_2(-PI): 0.0\n    test 84 wrapPI_2(-PI2): 0.0\n\n    test 85 wrapPI(PI_2): 1.5707963267948966\n    test 86 wrapPI(PI): 3.141592653589793\n    test 87 wrapPI(PI2): 0.0\n    test 88 wrapPI(-PI_2): -1.5707963267948966\n    test 89 wrapPI(-PI): -3.141592653589793\n    test 90 wrapPI(-PI2): 0.0\n\n    test 91 wrapPI2(PI_2): 1.5707963267948966\n    test 92 wrapPI2(PI): 3.141592653589793\n    test 93 wrapPI2(PI2): 0.0\n    test 94 wrapPI2(-PI_2): 4.71238898038469\n    test 95 wrapPI2(-PI): 3.141592653589793\n    test 96 wrapPI2(-PI2): 0.0\n\n    test 97 unroll180: -160.0, -250.0\n    test 98 unroll180: 200.0, 110.0\n\n    test 99 unroll180: -160.0, -250.0\n    test 100 unroll180: 920.0, 830.0\n\n    test 101 unroll180: -160.0, -270.0\n    test 102 unroll180: 200.0, 90.0\n\n    test 103 unroll180: -160.0, -990.0\n    test 104 unroll180: 920.0, 90.0\n\n    test 105 atan1: 0.0\n    test 106 atan1: 0.0\n\n    test 107 cot  : -0.354707939906\n    test 108 cot_ : -0.354707939906\n\n    test 109 cotd : -0.354707939906\n    test 110 cotd_: -0.354707939906\n\n    test 111 sincos2: 3.885780586188048e-16  FAILED, KNOWN, expected 1.7763568394002505e-15\n    test 112 sincos2d: 9.992007221626409e-16  FAILED, KNOWN, expected 1.7763568394002505e-15\n\n    test 113 Matan2d : 2.842170943040401e-14  FAILED, KNOWN, expected 1.7763568394002505e-15\n    test 114 Msincosd: 8.881784197001252e-16  FAILED, KNOWN, expected 1.7763568394002505e-15\n    test 115 sincos*d: 2.7755575615628914e-16  FAILED, KNOWN, expected 1.7763568394002505e-15\n\n    test 116 tan  : -2.819220794060\n    test 117 tan_ : -2.819220794060\n\n    test 118 tand : -2.819220794060\n    test 119 tand_: -2.819220794060\n\n    test 120 iFt2m: 187441\n    test 121 iFt2m: 757050\n    test 122 sFt2m: 187441\n    test 123 sFt2m: 757050\n\n    test 124 m2iFt: 614963.91\n    test 125 m2iFt: 2483759.84\n    test 126 m2sFt: 614962.68\n    test 127 m2sFt: 2483754.88\n\n    test 128 acre2ha: 0.404686\n    test 129 acre2m2: 4046.856422\n    test 130 chain2m: 20.116800\n    test 131 fathom2m: 1.828800\n    test 132 furlong2m: 201.168000\n    test 133 ha2acre: 2.471054\n    test 134 toise2m: 1.949044\n    test 135 yard2m: 0.914400\n    test 136 m2chain: 0.049710\n    test 137 m2fathom: 0.546807\n    test 138 m2furlong: 0.004971\n    test 139 m2ha: 0.000100\n    test 140 m2toise: 0.513072\n    test 141 m2yard: 1.093613\n\n    test 142 degrees2m: 10007557.1761\n# lazily imported pygeodesy.datums by utily.py line 212\n# lazily imported pygeodesy.angles by units.py line 633\n    test 143 degrees2m: 8666798.7443\n    test 144 m2degrees: 90.0\n\n    test 145 degrees2m: 20015114.3522\n    test 146 degrees2m: 19987684.3336\n    test 147 m2degrees: 180.0\n\n    test 148 m2degrees2m(45, lat=0): 45.00\n    test 149 m2degrees2m(45, lat=7): 45.00\n    test 150 m2degrees2m(45, lat=14): 45.00\n    test 151 m2degrees2m(45, lat=21): 45.00\n    test 152 m2degrees2m(45, lat=28): 45.00\n    test 153 m2degrees2m(45, lat=35): 45.00\n    test 154 m2degrees2m(45, lat=42): 45.00\n    test 155 m2degrees2m(45, lat=49): 45.00\n    test 156 m2degrees2m(45, lat=56): 45.00\n    test 157 m2degrees2m(45, lat=63): 45.00\n    test 158 m2degrees2m(45, lat=70): 45.00\n    test 159 m2degrees2m(45, lat=77): 45.00\n    test 160 m2degrees2m(45, lat=84): 45.00\n\n    test 161 isPoints2: False\n\n    test 162 tan_2_semi: PI[1] edge (3.141592): semi-circular\n    test 163 sincostan3(+0.0000): (0.0, 1.0, 0.0)\n    test 164 sincostan3(-0.0000): (-0.0, 1.0, -0.0)  FAILED, KNOWN, expected (0.0, 1.0, 0.0)\n    test 165 sincostan3(+1.5708): (1.0, 0.0, inf)\n    test 166 sincostan3(-1.5708): (-1.0, 0.0, -inf)\n    test 167 sincostan3(+3.1416): (0.0, -1.0, -0.0)\n    test 168 sincostan3(-3.1416): (-0.0, -1.0, 0.0)\n    test 169 sincostan3(+4.7124): (-1.0, 0.0, -inf)  FAILED, KNOWN, expected (-1.0, -0.0, inf)\n    test 170 sincostan3(-1.5708): (-1.0, 0.0, -inf)\n    test 171 sincostan3(+6.2832): (0.0, 1.0, 0.0)  FAILED, KNOWN, expected (-0.0, 1.0, -0.0)\n    test 172 sincostan3(-6.2832): (-0.0, 1.0, -0.0)  FAILED, KNOWN, expected (0.0, 1.0, 0.0)\n\n    9 of 172 testUtily.py tests (5.2%) FAILED, ALL KNOWN (pygeodesy 26.3.26 Python 3.12.10 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 2.1.0 scipy 1.14.1 Math 2 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 isLazy 3 -W  default) 17.193 ms\nrunning /usr/local/bin/p....n3.12 -W default ~/PyGeodesy/test/testUtm.py\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.Ellipsoids from .ellipsoids by testUtm.py line 11\n# lazily imported pygeodesy.EPS from .constants by testUtm.py line 11\n# lazily imported pygeodesy.F_DEG from .dms by testUtm.py line 11\n# lazily imported pygeodesy.F_DMS from .dms by testUtm.py line 11\n# lazily imported pygeodesy.fstr from .streprs by testUtm.py line 11\n# lazily imported pygeodesy.parseUTM5 from .utm by testUtm.py line 11\n# lazily imported pygeodesy.toUtm8 from .utm by testUtm.py line 11\n# lazily imported pygeodesy.Utm from .utm by testUtm.py line 11\n# lazily imported pygeodesy.ellipsoidalVincenty by testUtm.py line 187\n\n    testing testUtm.py 25.04.25 (module pygeodesy.utm 24.11.26) isLazy=3\n    test 1 Utm1: 03 N 448251.0 5411932.0001\n    test 2 Utm2: 31 N 448252 5411933\n    test 3 Utm2: 31 N 448251.795 5411932.678\n    test 4 Utm2: 31 N 448251.8 5411932.7 n/a n/a\n    test 5 Utm.toLatLon1: 48.8582°N, 002.2945°E\n    test 6 Utm.toLatLon1: 48°51′29.52″N, 002°17′40.2″E\n    test 7 toUtm1: 31 N 448252 5411933\n    test 8 toUtm1: 31 N 448251.795 5411932.678\n    test 9 toUtm2: [Z:31U, H:N, E:448252, N:5411933, C:-31.87873265′, S:0.9996329]\n    test 10 toUtm4: 48 N 377302 1483035\n    test 11 toUtm5: 48P N 377302.354183 1483034.777084 -15.77480856′ 0.99978623\n    test 12 toUtm6: 13 S 622698 8516965\n    test 13 toUtm7: 13L S 622697.645817 8516965.222916 -15.77480856′ 0.99978623\n# lazily imported pygeodesy.etm by utm.py line 248\n    test 14 toEtm: 13 S 622698 8516965\n# lazily imported pygeodesy.mgrs by utmupsBase.py line 523\n    test 15 toMgrs1: 13L FF 22697 16965\n    test 16 toMgrs2: 31U DQ 48251 11932\n    test 17 toUtm14: 14 S -27436 8512042\n    test 18 Utm8: 18 N 516620 4574500\n    test 19 Utm8.toLatLon: 41.321801°N, 074.801413°W\n    test 20 Utm8.toLatLon: 41.321801N, 074.801413W\n    test 21 toUtm(61.44°N, 025.4°E): 35V N 414668 6812845\n    test 22 toUtm(47.04°S, 073.48°W): 18G S 615472 4789270\n    test 23 toUtm(40.4°N, 074.7°W): 18T N 525458 4472198\n    test 24 toUtm(44.5°N, 088.5°W): 16T N 380753 4928503\n    test 25 toUtm(50.8694°N, 115.6508°W): 11U N 594937 5636169\n    test 26 toUtm(00.0°N, 000.0°E): 31N N 166021 0\n    test 27 toUtm(00.13°N, 000.2324°W): 30N N 808084 14386\n    test 28 toUtm(45.6456°S, 023.3545°E): 34G S 683474 4942631\n    test 29 toUtm(12.765°S, 033.8765°W): 25L S 404859 8588691\n# imported pygeodesy.basics into errors.py line 443\n    test 30 toUtm(80.5434°S, 170.654°W): lat ('-80.5434°'): outside UTM range [-80, 84)\n    test 31 toUtm(90.0°N, 177.0°E): lat ('90.0°'): outside UTM range [-80, 84)\n    test 32 toUtm(90.0°S, 177.0°W): lat ('-90.0°'): outside UTM range [-80, 84)\n    test 33 toUtm(90.0°N, 003.0°E): lat ('90.0°'): outside UTM range [-80, 84)\n    test 34 toUtm(23.4578°N, 135.4545°W): 08Q N 453580 2594273\n    test 35 toUtm(77.345°N, 156.9876°E): 57X N 450794 8586116\n    test 36 toUtm(89.3454°S, 048.9306°W): lat ('-89.3454°'): outside UTM range [-80, 84)\n    test 37 toUtm(60.0°N, 001.0°E): 31V N 388456 6653097\n    test 38 toUtm(60.0°N, 003.0°E): 32V N 165640 6666594\n    test 39 toUtm(60.0°N, 006.0°E): 32V N 332705 6655205\n    test 40 toUtm(60.0°N, 009.0°E): 32V N 500000 6651411\n    test 41 toUtm(60.0°N, 012.0°E): 33V N 332705 6655205\n    test 42 toUtm(76.0°N, 001.0°E): 31X N 446000 8436100\n    test 43 toUtm(76.0°N, 007.0°E): 31X N 607943 8438843\n    test 44 toUtm(76.0°N, 013.0°E): 33X N 446000 8436100\n    test 45 toUtm(76.0°N, 019.0°E): 33X N 607943 8438843\n    test 46 toUtm(76.0°N, 025.0°E): 35X N 446000 8436100\n    test 47 toUtm(76.0°N, 031.0°E): 35X N 607943 8438843\n    test 48 toUtm(76.0°N, 037.0°E): 37X N 446000 8436100\n    test 49 toUtm(50.77535°N, 006.08389°E): 32U N 294409 5628898\n    test 50 toUtm(40.71435°N, 074.00597°W): 18T N 583960 4507523\n    test 51 toUtm(41.28646°S, 174.77624°E): 60G S 313784 5427057\n    test 52 toUtm(33.92487°S, 018.42406°E): 34H S 261878 6243186\n    test 53 toUtm(32.89018°S, 068.84405°W): 19H S 514586 6360877\n    test 54 toUtm(64.83778°N, 147.71639°W): 06W N 466013 7190568\n    test 55 toUtm(56.7968°N, 005.00601°W): 30V N 377486 6296562\n    test 56 toUtm(84.0°N, 005.00601°W): lat ('84.0°'): outside UTM range [-80, 84)\n    test 57 toUtm('Mt Assiniboine'): [Z:11U, H:N, E:594934, N:5636174]\n    test 58 Utm9: 55 S 321441 5810117\n    test 59 Utm9.toLatLon(eps=2.2204e-12): -37.83891644, 144.97077387\n    test 60 Utm9.toLatLon(eps=2.2204e-13): -37.83891644, 144.97077387\n    test 61 Utm9.toLatLon(eps=2.2204e-14): -37.83891644, 144.97077387\n    test 62 Utm9.toLatLon(eps=2.2204e-15): -37.83891644, 144.97077387\n    test 63 Utm9.toLatLon(eps=2.2204e-16): -37.83891644, 144.97077387\n    test 64 Utm9.toLatLon(eps=2.2204e-17): -37.83891644, 144.97077387\n    test 65 Utm9.toLatLon(eps=2.2204e-18): -37.83891644, 144.97077387\n    test 66 Utm9.toLatLon(eps=2.2204e-19): -37.83891644, 144.97077387\n    test 67 Utm9.toLatLon(eps=2.2204e-20): -37.83891644, 144.97077387\n    test 68 Utm10: 31 N 400000 5000000\n    test 69 Utm10.toLatLon(eps=2.2204e-12): 45.14639288, 1.72796704\n    test 70 Utm10.toLatLon(eps=2.2204e-13): 45.14639288, 1.72796704\n    test 71 Utm10.toLatLon(eps=2.2204e-14): 45.14639288, 1.72796704\n    test 72 Utm10.toLatLon(eps=2.2204e-15): 45.14639288, 1.72796704\n    test 73 Utm10.toLatLon(eps=2.2204e-16): 45.14639288, 1.72796704\n    test 74 Utm10.toLatLon(eps=2.2204e-17): 45.14639288, 1.72796704\n    test 75 Utm10.toLatLon(eps=2.2204e-18): 45.14639288, 1.72796704\n    test 76 Utm10.toLatLon(eps=2.2204e-19): 45.14639288, 1.72796704\n    test 77 Utm10.toLatLon(eps=2.2204e-20): 45.14639288, 1.72796704\n    test 78 Utm111: 37 N 1399093 8314607\n    test 79 Utm111.toLatLon(eps=2.2204e-12): 70.54298527, 40.28205459\n    test 80 Utm111.toLatLon(eps=2.2204e-13): 70.54298527, 40.28205459\n    test 81 Utm111.toLatLon(eps=2.2204e-14): 70.54298527, 40.28205459\n    test 82 Utm111.toLatLon(eps=2.2204e-15): 70.54298527, 40.28205459\n    test 83 Utm111.toLatLon(eps=2.2204e-16): 70.54298527, 40.28205459\n    test 84 Utm111.toLatLon(eps=2.2204e-17): 70.54298527, 40.28205459\n    test 85 Utm111.toLatLon(eps=2.2204e-18): 70.54298527, 40.28205459\n    test 86 Utm111.toLatLon(eps=2.2204e-19): 70.54298527, 40.28205459\n    test 87 Utm111.toLatLon(eps=2.2204e-20): 70.54298527, 40.28205459\n    test 88 CV#86: [Z:01, H:N, E:100000, N:0, C:n/a, S:n/a]\n    test 89 CV#86: 00.0°N, 179.407673°E\n    test 90 CV#86: [Z:60, H:N, E:767993, N:0, C:+0.0″, S:1.000489]  FAILED, KNOWN, expected [Z:01, H:N, E:100000, N:0, ...]\n    test 91 #63: 32 N 280000 5653000\n    test 92 toMgrs: 32U KB 80000 53000\n    test 93 toLatLon: (50.986484, 5.865326, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), -2.436605, 1.000194)\n    test 94 band: U\n    test 95 band: band ('?'): not 'C', 'D', 'E', 'F', 'G', 'H', 'J', 'K', 'L', 'M', 'N', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W' or 'X'\n    test 96 datum: Datum(name='_Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.Identity)  FAILED, KNOWN, expected same\n    test 97 repr: [Z:32U, H:N, E:280000, N:5653000]\n    test 98 E.N.: (280000.0, 5653000.0)\n# lazily imported pygeodesy.elliptic by ellipsoids.py line 856\n\n    test 99 latFootPoint: 59.97989371\n    test 100 latFootPoint: -59.97989371\n    test 101 latFootPoint: 59.97988614\n    test 102 latFootPoint: -59.97988614\n    test 103 phiFootPoint: 1.04407841\n    test 104 phiFootPoint: -1.04407841\n\n    2 of 104 testUtm.py tests (1.9%) FAILED, ALL KNOWN (pygeodesy 26.3.26 Python 3.12.10 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 2.1.0 scipy 1.14.1 Math 2 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 isLazy 3 -W  default) 87.254 ms\nrunning /usr/local/bin/p....n3.12 -W default ~/PyGeodesy/test/testUtmTMcoords.py\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.Ellipsoids from .ellipsoids by testTMcoords.py line 14\n# lazily imported pygeodesy.EPS from .constants by testTMcoords.py line 14\n# lazily imported pygeodesy.RangeError from .errors by testTMcoords.py line 14\n# lazily imported pygeodesy.toUtm8 from .utm by testUtmTMcoords.py line 17\n# lazily imported pygeodesy.Utm from .utm by testUtmTMcoords.py line 17\n\n    testing testUtmTMcoords.py 24.03.22 (module pygeodesy.utm 24.11.26) isLazy=3\n    test 1 line 1 toUtm8.easting: 1548706.791619\n    test 2 line 1 toUtm8.northing: 8451449.198772\n    test 3 line 1 toUtm8.gamma: 43.922790\n    test 4 line 1 toUtm8.scale: 1.029060\n    test 5 line 1 toUtm8.lat: 70.579277\n    test 6 line 1 toUtm8.lon: 45.599420\n    test 7 line 2 toUtm8.easting: 2624150.740929\n    test 8 line 2 toUtm8.northing: 1204434.041605\n    test 9 line 2 toUtm8.gamma: 4.292619\n    test 10 line 2 toUtm8.scale: 1.086051\n    test 11 line 2 toUtm8.lat: 10.018894\n    test 12 line 2 toUtm8.lon: 23.313324\n    test 13 line 3 toUtm8.easting: 9855841.232935\n    test 14 line 3 toUtm8.northing: 6145496.115157  FAILED, KNOWN, expected 6145496.115155\n    test 15 line 3 toUtm8.gamma: 53.348315\n    test 16 line 3 toUtm8.scale: 2.445098\n    test 17 line 3 toUtm8.lat: 19.479896\n    test 18 line 3 toUtm8.lon: 75.662049\n    test 19 line 4 toUtm8.easting: 3206390.691996\n    test 20 line 4 toUtm8.northing: 2650745.400406\n    test 21 line 4 toUtm8.gamma: 11.666950\n    test 22 line 4 toUtm8.scale: 1.129359\n    test 23 line 4 toUtm8.lat: 21.072465\n    test 24 line 4 toUtm8.lon: 29.828684\n    test 25 line 5 toUtm8.easting: 4328154.083501\n    test 26 line 5 toUtm8.northing: 749647.623690\n    test 27 line 5 toUtm8.gamma: 4.024317\n    test 28 line 5 toUtm8.scale: 1.240829\n    test 29 line 5 toUtm8.lat: 5.458957\n    test 30 line 5 toUtm8.lon: 36.385237\n    test 31 line 6 toUtm8.easting: 847598.266514\n    test 32 line 6 toUtm8.northing: 7947180.962440\n    test 33 line 6 toUtm8.gamma: 21.639091\n    test 34 line 6 toUtm8.scale: 1.008399\n    test 35 line 6 toUtm8.lat: 70.175454\n    test 36 line 6 toUtm8.lon: 22.865350\n    test 37 line 7 toUtm8.easting: 2727657.337974\n    test 38 line 7 toUtm8.northing: 8283916.696410\n    test 39 line 7 toUtm8.gamma: 55.690909\n    test 40 line 7 toUtm8.scale: 1.091942\n    test 41 line 7 toUtm8.lat: 61.965605\n    test 42 line 7 toUtm8.lon: 58.931371\n    test 43 line 8 toUtm8.easting: 2331001.751890\n    test 44 line 8 toUtm8.northing: 1313608.224751\n    test 45 line 8 toUtm8.gamma: 4.214690\n    test 46 line 8 toUtm8.scale: 1.067599\n    test 47 line 8 toUtm8.lat: 11.116050\n    test 48 line 8 toUtm8.lon: 20.901069\n    test 49 line 9 toUtm8.easting: 6035557.239480\n    test 50 line 9 toUtm8.northing: 5791770.791879\n    test 51 line 9 toUtm8.gamma: 43.698170\n    test 52 line 9 toUtm8.scale: 1.481260\n    test 53 line 9 toUtm8.lat: 32.210543\n    test 54 line 9 toUtm8.lon: 60.705849\n    test 55 line 10 toUtm8.easting: 1064553.125852\n    test 56 line 10 toUtm8.northing: 9417273.737208\n    test 57 line 10 toUtm8.gamma: 61.100380\n    test 58 line 10 toUtm8.scale: 1.013475\n    test 59 line 10 toUtm8.lat: 79.187451\n    test 60 line 10 toUtm8.lon: 61.532382\n    test 61 line 11 toUtm8.easting: 1400137.116164\n    test 62 line 11 toUtm8.northing: 9616907.017686\n    test 63 line 11 toUtm8.gamma: 74.527087\n    test 64 line 11 toUtm8.scale: 1.023640\n    test 65 line 11 toUtm8.lat: 77.103759\n    test 66 line 11 toUtm8.lon: 74.899105\n\n    test skipped (1): line 12 toUtm8.'21.889514024862 80.019885892785 9860691.0166261508479 7433039.1433282732643 65.357693372142649007 2.43897318400097845293'\n\n    test skipped (2): line 13 toUtm8.'30.53629567699 82.186177919416 8076501.8336948099169 8561614.1747819103782 75.073393190238557702 1.90620203595203984732'\n    test 67 line 14 toUtm8.easting: 3335099.866623\n    test 68 line 14 toUtm8.northing: 6740519.084015\n    test 69 line 14 toUtm8.gamma: 40.611821\n    test 70 line 14 toUtm8.scale: 1.139021\n    test 71 line 14 toUtm8.lat: 49.990485\n    test 72 line 14 toUtm8.lon: 48.203179\n\n    test skipped (3): line 15 toUtm8.'14.486311853451 80.905136710227 12051574.9284996192629 6587213.0519512810474 59.033236797073779959 3.3574686117030164354'\n    test 73 line 16 toUtm8.easting: 5387578.735298\n    test 74 line 16 toUtm8.northing: 4111216.907168\n    test 75 line 16 toUtm8.gamma: 27.574337\n    test 76 line 16 toUtm8.scale: 1.379357\n    test 77 line 16 toUtm8.lat: 25.936824\n    test 78 line 16 toUtm8.lon: 49.913598\n    test 79 line 17 toUtm8.easting: 2622214.380233\n    test 80 line 17 toUtm8.northing: 8678923.984567\n    test 81 line 17 toUtm8.gamma: 61.697275\n    test 82 line 17 toUtm8.scale: 1.084810\n    test 83 line 17 toUtm8.lat: 64.402196\n    test 84 line 17 toUtm8.lon: 64.091395\n\n    test skipped (4): line 18 toUtm8.'48.451353594584 84.856197560189 5068474.169632778036 9492066.9937094951003 83.156739839119105102 1.3299901985118008373'\n    test 85 line 19 toUtm8.easting: 738062.047779\n    test 86 line 19 toUtm8.northing: 3031007.074116\n    test 87 line 19 toUtm8.gamma: 3.416802\n    test 88 line 19 toUtm8.scale: 1.006332\n    test 89 line 19 toUtm8.lat: 27.203895\n    test 90 line 19 toUtm8.lon: 7.440229\n    test 91 line 20 toUtm8.easting: 1944413.834565\n    test 92 line 20 toUtm8.northing: 9613299.224493\n    test 93 line 20 toUtm8.gamma: 78.462831\n    test 94 line 20 toUtm8.scale: 1.046134\n    test 95 line 20 toUtm8.lat: 72.509000\n    test 96 line 20 toUtm8.lon: 78.982283\n    test 97 line 21 toUtm8.easting: 2114521.418406\n    test 98 line 21 toUtm8.northing: 4954077.440098\n    test 99 line 21 toUtm8.gamma: 17.571878\n    test 100 line 21 toUtm8.scale: 1.055093\n    test 101 line 21 toUtm8.lat: 41.824954\n    test 102 line 21 toUtm8.lon: 25.392744\n    test 103 line 22 toUtm8.easting: 620365.905090\n    test 104 line 22 toUtm8.northing: 4755542.026562\n    test 105 line 22 toUtm8.gamma: 5.152022\n    test 106 line 22 toUtm8.scale: 1.004338\n    test 107 line 22 toUtm8.lat: 42.701376\n    test 108 line 22 toUtm8.lon: 7.572738\n    test 109 line 23 toUtm8.easting: 263004.770989\n    test 110 line 23 toUtm8.northing: 4493669.762451\n    test 111 line 23 toUtm8.gamma: 2.020523\n    test 112 line 23 toUtm8.scale: 1.000452\n    test 113 line 23 toUtm8.lat: 40.552052\n    test 114 line 23 toUtm8.lon: 3.106056\n    test 115 line 24 toUtm8.easting: 3217221.739462\n    test 116 line 24 toUtm8.northing: 437776.119161\n    test 117 line 24 toUtm8.gamma: 1.848169\n    test 118 line 24 toUtm8.scale: 1.130558\n    test 119 line 24 toUtm8.lat: 3.501242\n    test 120 line 24 toUtm8.lon: 27.806507\n\n    test skipped (5): line 25 toUtm8.'10.148714782203 85.373767569431 14661142.4449607145297 7476100.8241849819567 68.376669038799719822 4.89664968310721668858'\n    test 121 line 26 toUtm8.easting: 967777.158554\n    test 122 line 26 toUtm8.northing: 6615684.266592\n    test 123 line 26 toUtm8.gamma: 14.410044\n    test 124 line 26 toUtm8.scale: 1.011100\n    test 125 line 26 toUtm8.lat: 58.582623\n    test 126 line 26 toUtm8.lon: 16.755558\n    test 127 line 27 toUtm8.easting: 7558840.728461\n    test 128 line 27 toUtm8.northing: 4144728.130764\n    test 129 line 27 toUtm8.gamma: 32.557264\n    test 130 line 27 toUtm8.scale: 1.791490\n    test 131 line 27 toUtm8.lat: 19.793004\n    test 132 line 27 toUtm8.lon: 61.746763\n    test 133 line 28 toUtm8.easting: 1056008.314161\n    test 134 line 28 toUtm8.northing: 9290799.692669\n    test 135 line 28 toUtm8.gamma: 55.843278\n    test 136 line 28 toUtm8.scale: 1.013253\n    test 137 line 28 toUtm8.lat: 78.666776\n    test 138 line 28 toUtm8.lon: 56.365355\n    test 139 line 29 toUtm8.easting: 1943965.134687\n    test 140 line 29 toUtm8.northing: 1389972.228690\n    test 141 line 29 toUtm8.gamma: 3.774869\n    test 142 line 29 toUtm8.scale: 1.046724\n    test 143 line 29 toUtm8.lat: 11.998788\n    test 144 line 29 toUtm8.lon: 17.597873\n    test 145 line 30 toUtm8.easting: 5803077.072902\n    test 146 line 30 toUtm8.northing: 5649957.943659\n    test 147 line 30 toUtm8.gamma: 41.717943\n    test 148 line 30 toUtm8.scale: 1.442572\n    test 149 line 30 toUtm8.lat: 32.540378\n    test 150 line 30 toUtm8.lon: 58.764613\n    test 151 line 31 toUtm8.easting: 2928716.986009\n    test 152 line 31 toUtm8.northing: 5731835.058317\n    test 153 line 31 toUtm8.gamma: 28.538550\n    test 154 line 31 toUtm8.scale: 1.106780\n    test 155 line 31 toUtm8.lat: 45.160356\n    test 156 line 31 toUtm8.lon: 37.465285\n    test 157 line 32 toUtm8.easting: 326141.975756\n    test 158 line 32 toUtm8.northing: 8881325.164543\n    test 159 line 32 toUtm8.gamma: 16.111415\n    test 160 line 32 toUtm8.scale: 1.000900\n    test 161 line 32 toUtm8.lat: 79.584190\n    test 162 line 32 toUtm8.lon: 16.367006\n    test 163 line 33 toUtm8.easting: 3933015.267450\n    test 164 line 33 toUtm8.northing: 7932373.909512\n    test 165 line 33 toUtm8.gamma: 58.577424\n    test 166 line 33 toUtm8.scale: 1.194811\n    test 167 line 33 toUtm8.lat: 52.470664\n    test 168 line 33 toUtm8.lon: 64.125580\n    test 169 line 34 toUtm8.easting: 8598926.983213\n    test 170 line 34 toUtm8.northing: 6214135.167503\n    test 171 line 34 toUtm8.gamma: 52.612878\n    test 172 line 34 toUtm8.scale: 2.051367\n    test 173 line 34 toUtm8.lat: 23.702673\n    test 174 line 34 toUtm8.lon: 72.630363\n    test 175 line 35 toUtm8.easting: 6620553.333772\n    test 176 line 35 toUtm8.northing: 6540527.122948\n    test 177 line 35 toUtm8.gamma: 52.350140\n    test 178 line 35 toUtm8.scale: 1.586614\n    test 179 line 35 toUtm8.lat: 32.603520\n    test 180 line 35 toUtm8.lon: 67.280123\n    test 181 line 36 toUtm8.easting: 1515136.758292\n    test 182 line 36 toUtm8.northing: 3858996.087537\n    test 183 line 36 toUtm8.gamma: 9.225127\n    test 184 line 36 toUtm8.scale: 1.028029\n    test 185 line 36 toUtm8.lat: 33.776224\n    test 186 line 36 toUtm8.lon: 16.280993\n    test 187 line 37 toUtm8.easting: 479854.373445\n    test 188 line 37 toUtm8.northing: 8980501.389896\n    test 189 line 37 toUtm8.gamma: 25.021222\n    test 190 line 37 toUtm8.scale: 1.002415\n    test 191 line 37 toUtm8.lat: 79.932747\n    test 192 line 37 toUtm8.lon: 25.363622\n    test 193 line 38 toUtm8.easting: 5243446.564940\n    test 194 line 38 toUtm8.northing: 140657.213960\n    test 195 line 38 toUtm8.gamma: 0.862817\n    test 196 line 38 toUtm8.scale: 1.360358\n    test 197 line 38 toUtm8.lat: 0.935056\n    test 198 line 38 toUtm8.lon: 42.538824\n\n    test skipped (6): line 39 toUtm8.'13.490862440668 83.178380075606 12806457.9232176809509 7170118.6846750266674 64.708921319446620085 3.7405880916836789809'\n    test 199 line 40 toUtm8.easting: 1202993.459158\n    test 200 line 40 toUtm8.northing: 5557316.053599\n    test 201 line 40 toUtm8.gamma: 12.579061\n    test 202 line 40 toUtm8.scale: 1.017426\n    test 203 line 40 toUtm8.lat: 48.979057\n    test 204 line 40 toUtm8.lon: 16.474542\n    test 205 line 41 toUtm8.easting: 1729088.710196\n    test 206 line 41 toUtm8.northing: 7770874.289954\n    test 207 line 41 toUtm8.gamma: 36.021783\n    test 208 line 41 toUtm8.scale: 1.036397\n    test 209 line 41 toUtm8.lat: 65.036016\n    test 210 line 41 toUtm8.lon: 38.729091\n    test 211 line 42 toUtm8.easting: 2437301.517425\n    test 212 line 42 toUtm8.northing: 5539327.748318\n    test 213 line 42 toUtm8.gamma: 23.461879\n    test 214 line 42 toUtm8.scale: 1.073459\n    test 215 line 42 toUtm8.lat: 45.510091\n    test 216 line 42 toUtm8.lon: 31.303729\n    test 217 line 43 toUtm8.easting: 3647186.135066\n    test 218 line 43 toUtm8.northing: 2086412.330983\n    test 219 line 43 toUtm8.gamma: 10.023991\n    test 220 line 43 toUtm8.scale: 1.168707\n    test 221 line 43 toUtm8.lat: 16.058010\n    test 222 line 43 toUtm8.lon: 32.520026\n    test 223 line 44 toUtm8.easting: 1818497.243556\n    test 224 line 44 toUtm8.northing: 4275471.745057\n    test 225 line 44 toUtm8.gamma: 12.499656\n    test 226 line 44 toUtm8.scale: 1.040604\n    test 227 line 44 toUtm8.lat: 36.845200\n    test 228 line 44 toUtm8.lon: 20.282283\n    test 229 line 45 toUtm8.easting: 3751304.113783\n    test 230 line 45 toUtm8.northing: 5130454.001592\n    test 231 line 45 toUtm8.gamma: 28.959707\n    test 232 line 45 toUtm8.scale: 1.177681\n    test 233 line 45 toUtm8.lat: 37.865481\n    test 234 line 45 toUtm8.lon: 41.990402\n    test 235 line 46 toUtm8.easting: 2616733.138544\n    test 236 line 46 toUtm8.northing: 394644.463815\n    test 237 line 46 toUtm8.gamma: 1.390425\n    test 238 line 46 toUtm8.scale: 1.085595\n    test 239 line 46 toUtm8.lat: 3.287272\n    test 240 line 46 toUtm8.lon: 22.917604\n    test 241 line 47 toUtm8.easting: 1756506.573942\n    test 242 line 47 toUtm8.northing: 5570393.986394\n    test 243 line 47 toUtm8.gamma: 17.897894\n    test 244 line 47 toUtm8.scale: 1.037732\n    test 245 line 47 toUtm8.lat: 47.813686\n    test 246 line 47 toUtm8.lon: 23.545092\n    test 247 line 48 toUtm8.easting: 8752461.894711\n    test 248 line 48 toUtm8.northing: 6087728.152284\n    test 249 line 48 toUtm8.gamma: 51.628465\n    test 250 line 48 toUtm8.scale: 2.095465\n    test 251 line 48 toUtm8.lat: 22.836853\n    test 252 line 48 toUtm8.lon: 72.604385\n    test 253 line 49 toUtm8.easting: 1309272.216432\n    test 254 line 49 toUtm8.northing: 59520.028899\n    test 255 line 49 toUtm8.gamma: 0.109069\n    test 256 line 49 toUtm8.scale: 1.020897\n    test 257 line 49 toUtm8.lat: 0.527262\n    test 258 line 49 toUtm8.lon: 11.684209\n    test 259 line 50 toUtm8.easting: 328652.277129\n    test 260 line 50 toUtm8.northing: 2233043.958874\n    test 261 line 50 toUtm8.gamma: 1.084863\n    test 262 line 50 toUtm8.scale: 1.000935\n    test 263 line 50 toUtm8.lat: 20.166742\n    test 264 line 50 toUtm8.lon: 3.143948\n\n    test skipped (7): line 51 toUtm8.'28.604629015528 85.988721094779 8637959.7164470998207 9190635.1560309800028 81.802562643198123218 2.05432863342852874819'\n\n    test skipped (8): line 52 toUtm8.'28.984047991106 85.833447775172 8548521.4551470334531 9172410.9432821880799 81.583928102890161419 2.02964145862183583179'\n    test 265 line 53 toUtm8.easting: 796987.281104\n    test 266 line 53 toUtm8.northing: 7677446.357675\n    test 267 line 53 toUtm8.gamma: 18.084472\n    test 268 line 53 toUtm8.scale: 1.007381\n    test 269 line 53 toUtm8.lat: 68.071020\n    test 270 line 53 toUtm8.lon: 19.392823\n\n    test skipped (9): line 54 toUtm8.'61.416576191872 81.981611413918 3291036.4967623295988 9513199.6006662170596 80.890253980644739593 1.13482563910814382209'\n    test 271 line 55 toUtm8.easting: 7087225.330906\n    test 272 line 55 toUtm8.northing: 8382823.855822\n    test 273 line 55 toUtm8.gamma: 72.253756\n    test 274 line 55 toUtm8.scale: 1.678070\n    test 275 line 55 toUtm8.lat: 35.074753\n    test 276 line 55 toUtm8.lon: 79.496003\n    test 277 line 56 toUtm8.easting: 5090358.125724\n    test 278 line 56 toUtm8.northing: 4318294.133489\n    test 279 line 56 toUtm8.gamma: 28.266280\n    test 280 line 56 toUtm8.scale: 1.336264\n    test 281 line 56 toUtm8.lat: 28.078790\n    test 282 line 56 toUtm8.lon: 48.684350\n\n    test skipped (10): line 57 toUtm8.'84.986930137199 2.067177857261 20163.0752214330146 9438635.9888499043815 2.059277291707588222 .99960496589466017622'\n    test 283 line 58 toUtm8.easting: 3447670.550785\n    test 284 line 58 toUtm8.northing: 3680238.888223\n    test 285 line 58 toUtm8.gamma: 17.934948\n    test 286 line 58 toUtm8.scale: 1.149831\n    test 287 line 58 toUtm8.lat: 28.473948\n    test 288 line 58 toUtm8.lon: 34.127306\n    test 289 line 59 toUtm8.easting: 3396522.906798\n    test 290 line 59 toUtm8.northing: 8093659.687593\n    test 291 line 59 toUtm8.gamma: 57.747117\n    test 292 line 59 toUtm8.scale: 1.144006\n    test 293 line 59 toUtm8.lat: 56.629354\n    test 294 line 59 toUtm8.lon: 62.196474\n    test 295 line 60 toUtm8.easting: 11249894.100794  FAILED, KNOWN, expected 11249894.100784\n    test 296 line 60 toUtm8.northing: 1619226.506360  FAILED, KNOWN, expected 1619226.506299\n    test 297 line 60 toUtm8.gamma: 14.210358\n    test 298 line 60 toUtm8.scale: 3.048347\n    test 299 line 60 toUtm8.lat: 4.747762\n    test 300 line 60 toUtm8.lon: 70.932555\n    test 301 line 61 toUtm8.easting: 6808805.230950\n    test 302 line 61 toUtm8.northing: 8044779.777369\n    test 303 line 61 toUtm8.gamma: 68.242008\n    test 304 line 61 toUtm8.scale: 1.621464\n    test 305 line 61 toUtm8.lat: 35.882113\n    test 306 line 61 toUtm8.lon: 76.741849\n    test 307 line 62 toUtm8.easting: 2306021.556506\n    test 308 line 62 toUtm8.northing: 757191.592866\n    test 309 line 62 toUtm8.gamma: 2.385686\n    test 310 line 62 toUtm8.scale: 1.066159\n    test 311 line 62 toUtm8.lat: 6.420705\n    test 312 line 62 toUtm8.lon: 20.416028\n    test 313 line 63 toUtm8.easting: 1547406.313862\n    test 314 line 63 toUtm8.northing: 6048712.751824\n    test 315 line 63 toUtm8.gamma: 18.474372\n    test 316 line 63 toUtm8.scale: 1.029123\n    test 317 line 63 toUtm8.lat: 52.335248\n    test 318 line 63 toUtm8.lon: 22.879294\n    test 319 line 64 toUtm8.easting: 2430467.650383\n    test 320 line 64 toUtm8.northing: 7557167.613972\n    test 321 line 64 toUtm8.gamma: 42.110021\n    test 322 line 64 toUtm8.scale: 1.072759\n    test 323 line 64 toUtm8.lat: 59.846391\n    test 324 line 64 toUtm8.lon: 46.262536\n    test 325 line 65 toUtm8.easting: 2334053.905830\n    test 326 line 65 toUtm8.northing: 1948076.966582\n    test 327 line 65 toUtm8.gamma: 6.353185\n    test 328 line 65 toUtm8.scale: 1.067733\n    test 329 line 65 toUtm8.lat: 16.461790\n    test 330 line 65 toUtm8.lon: 21.433269\n    test 331 line 66 toUtm8.easting: 5564175.186737\n    test 332 line 66 toUtm8.northing: 1836851.660412\n    test 333 line 66 toUtm8.gamma: 11.870682\n    test 334 line 66 toUtm8.scale: 1.408265\n    test 335 line 66 toUtm8.lat: 11.707905\n    test 336 line 66 toUtm8.lon: 45.827075\n    test 337 line 67 toUtm8.easting: 6118505.590359\n    test 338 line 67 toUtm8.northing: 7631684.552421\n    test 339 line 67 toUtm8.gamma: 62.477323\n    test 340 line 67 toUtm8.scale: 1.493420\n    test 341 line 67 toUtm8.lat: 38.519075\n    test 342 line 67 toUtm8.lon: 71.935918\n\n    test skipped (11): line 68 toUtm8.'34.264007222954 82.647878110272 7365359.2946646287171 8818194.4515306837741 77.207042218974141605 1.73763853091849729372'\n    test 343 line 69 toUtm8.easting: 36187.342415\n    test 344 line 69 toUtm8.northing: 2142565.324802\n    test 345 line 69 toUtm8.gamma: 0.114334\n    test 346 line 69 toUtm8.scale: 0.999616\n    test 347 line 69 toUtm8.lat: 19.376880\n    test 348 line 69 toUtm8.lon: 0.344605\n    test 349 line 70 toUtm8.easting: 2380328.546851\n    test 350 line 70 toUtm8.northing: 8440109.872384\n    test 351 line 70 toUtm8.gamma: 55.076067\n    test 352 line 70 toUtm8.scale: 1.069658\n    test 353 line 70 toUtm8.lat: 65.075805\n    test 354 line 70 toUtm8.lon: 57.653438\n    test 355 line 71 toUtm8.easting: 582511.608826\n    test 356 line 71 toUtm8.northing: 8876047.217071\n    test 357 line 71 toUtm8.gamma: 27.133300\n    test 358 line 71 toUtm8.scale: 1.003749\n    test 359 line 71 toUtm8.lat: 78.691870\n    test 360 line 71 toUtm8.lon: 27.591736\n    test 361 line 72 toUtm8.easting: 899441.350477\n    test 362 line 72 toUtm8.northing: 4582046.430516\n    test 363 line 72 toUtm8.gamma: 7.031211\n    test 364 line 72 toUtm8.scale: 1.009573\n    test 365 line 72 toUtm8.lat: 40.893022\n    test 366 line 72 toUtm8.lon: 10.668804\n\n    test skipped (12): line 73 toUtm8.'48.914278679322 87.35926802682 5022485.1243369246483 9741774.9337207800497 86.505947369926030588 1.32369954850478170836'\n    test 367 line 74 toUtm8.easting: 6701004.587204\n    test 368 line 74 toUtm8.northing: 2954368.258231\n    test 369 line 74 toUtm8.gamma: 21.560153\n    test 370 line 74 toUtm8.scale: 1.608554\n    test 371 line 74 toUtm8.lat: 16.208377\n    test 372 line 74 toUtm8.lon: 54.494282\n    test 373 line 75 toUtm8.easting: 454986.218897\n    test 374 line 75 toUtm8.northing: 4885087.887884\n    test 375 line 75 toUtm8.gamma: 3.945648\n    test 376 line 75 toUtm8.scale: 1.002147\n    test 377 line 75 toUtm8.lat: 43.977936\n    test 378 line 75 toUtm8.lon: 5.672541\n\n    test skipped (13): line 76 toUtm8.'26.850860749352 82.834479937822 8903956.1403106503714 8470608.5774824981183 74.723116471645531699 2.13131124920824155268'\n    test 379 line 77 toUtm8.easting: 1547627.594741\n    test 380 line 77 toUtm8.northing: 6036584.538347\n    test 381 line 77 toUtm8.gamma: 18.407629\n    test 382 line 77 toUtm8.scale: 1.029132\n    test 383 line 77 toUtm8.lat: 52.234165\n    test 384 line 77 toUtm8.lon: 22.827655\n    test 385 line 78 toUtm8.easting: 5221488.778597\n    test 386 line 78 toUtm8.northing: 1762592.044392\n    test 387 line 78 toUtm8.gamma: 10.927880\n    test 388 line 78 toUtm8.scale: 1.356721\n    test 389 line 78 toUtm8.lat: 11.674646\n    test 390 line 78 toUtm8.lon: 43.500147\n    test 391 line 79 toUtm8.easting: 4880570.297161\n    test 392 line 79 toUtm8.northing: 3325433.988867\n    test 393 line 79 toUtm8.gamma: 20.469862\n    test 394 line 79 toUtm8.scale: 1.308476\n    test 395 line 79 toUtm8.lat: 22.492753\n    test 396 line 79 toUtm8.lon: 44.179153\n\n    test skipped (14): line 80 toUtm8.'.910999463005 88.548822916123 23930680.0826936110445 7491462.0990379651261 75.937628056628715446 15.55636485152285563369'\n    test 397 line 81 toUtm8.easting: 71519.450458\n    test 398 line 81 toUtm8.northing: 3654740.444852\n    test 399 line 81 toUtm8.gamma: 0.417448\n    test 400 line 81 toUtm8.scale: 0.999663\n    test 401 line 81 toUtm8.lat: 33.028802\n    test 402 line 81 toUtm8.lon: 0.765843\n    test 403 line 82 toUtm8.easting: 4152797.795220\n    test 404 line 82 toUtm8.northing: 7823098.502751\n    test 405 line 82 toUtm8.gamma: 58.238901\n    test 406 line 82 toUtm8.scale: 1.218052\n    test 407 line 82 toUtm8.lat: 50.649195\n    test 408 line 82 toUtm8.lon: 64.389076\n    test 409 line 83 toUtm8.easting: 2926725.707639\n    test 410 line 83 toUtm8.northing: 7904918.072844\n    test 411 line 83 toUtm8.gamma: 51.592748\n    test 412 line 83 toUtm8.scale: 1.106206\n    test 413 line 83 toUtm8.lat: 58.820640\n    test 414 line 83 toUtm8.lon: 55.841048\n    test 415 line 84 toUtm8.easting: 1325509.113869\n    test 416 line 84 toUtm8.northing: 9675214.948213\n    test 417 line 84 toUtm8.gamma: 76.116213\n    test 418 line 84 toUtm8.scale: 1.021136\n    test 419 line 84 toUtm8.lat: 77.865762\n    test 420 line 84 toUtm8.lon: 76.414618\n    test 421 line 85 toUtm8.easting: 3045296.448926\n    test 422 line 85 toUtm8.northing: 542153.443280\n    test 423 line 85 toUtm8.gamma: 2.185095\n    test 424 line 85 toUtm8.scale: 1.116664\n    test 425 line 85 toUtm8.lat: 4.389639\n    test 426 line 85 toUtm8.lon: 26.458976\n    test 427 line 86 toUtm8.easting: 11843870.887791  FAILED, KNOWN, expected 11843870.887518\n    test 428 line 86 toUtm8.northing: 5912803.073690  FAILED, KNOWN, expected 5912803.073343\n    test 429 line 86 toUtm8.gamma: 52.814260  FAILED, KNOWN, expected 52.814259\n    test 430 line 86 toUtm8.scale: 3.267256\n    test 431 line 86 toUtm8.lat: 13.924448\n    test 432 line 86 toUtm8.lon: 79.017873\n    test 433 line 87 toUtm8.easting: 8891099.704936\n    test 434 line 87 toUtm8.northing: 162160.142227\n    test 435 line 87 toUtm8.gamma: 1.312094\n    test 436 line 87 toUtm8.scale: 2.157363\n    test 437 line 87 toUtm8.lat: 0.679713\n    test 438 line 87 toUtm8.lon: 62.036792\n    test 439 line 88 toUtm8.easting: 4784814.214449\n    test 440 line 88 toUtm8.northing: 2984497.432580\n    test 441 line 88 toUtm8.gamma: 17.946545\n    test 442 line 88 toUtm8.scale: 1.296116\n    test 443 line 88 toUtm8.lat: 20.478281\n    test 444 line 88 toUtm8.lon: 42.678234\n    test 445 line 89 toUtm8.easting: 1772074.682154\n    test 446 line 89 toUtm8.northing: 9491552.560143\n    test 447 line 89 toUtm8.gamma: 73.634830\n    test 448 line 89 toUtm8.scale: 1.038202\n    test 449 line 89 toUtm8.lat: 73.695703\n    test 450 line 89 toUtm8.lon: 74.259097\n    test 451 line 90 toUtm8.easting: 1907649.782106\n    test 452 line 90 toUtm8.northing: 6994232.429379\n    test 453 line 90 toUtm8.gamma: 29.718929\n    test 454 line 90 toUtm8.scale: 1.044503\n    test 455 line 90 toUtm8.lat: 58.569370\n    test 456 line 90 toUtm8.lon: 33.777549\n    test 457 line 91 toUtm8.easting: 2084423.818962\n    test 458 line 91 toUtm8.northing: 2211816.035619\n    test 459 line 91 toUtm8.gamma: 6.556448\n    test 460 line 91 toUtm8.scale: 1.053793\n    test 461 line 91 toUtm8.lat: 18.933881\n    test 462 line 91 toUtm8.lon: 19.492695\n    test 463 line 92 toUtm8.easting: 1064373.671729\n    test 464 line 92 toUtm8.northing: 7812482.547461\n    test 465 line 92 toUtm8.gamma: 24.874124\n    test 466 line 92 toUtm8.scale: 1.013490\n    test 467 line 92 toUtm8.lat: 68.317934\n    test 468 line 92 toUtm8.lon: 26.515687\n\n    test skipped (15): line 93 toUtm8.'50.641941364984 87.111556505544 4770385.4792965339274 9734318.9029801439364 86.27311877223132818 1.29055338238288419467'\n    test 469 line 94 toUtm8.easting: 6398096.677297\n    test 470 line 94 toUtm8.northing: 4410894.752104\n    test 471 line 94 toUtm8.gamma: 32.558023\n    test 472 line 94 toUtm8.scale: 1.548004\n    test 473 line 94 toUtm8.lat: 24.411298\n    test 474 line 94 toUtm8.lon: 56.881823\n    test 475 line 95 toUtm8.easting: 3138623.300415\n    test 476 line 95 toUtm8.northing: 3082960.600798\n    test 477 line 95 toUtm8.gamma: 13.557672\n    test 478 line 95 toUtm8.scale: 1.123724\n    test 479 line 95 toUtm8.lat: 24.571871\n    test 480 line 95 toUtm8.lon: 30.073097\n    test 481 line 96 toUtm8.easting: 2748325.794651\n    test 482 line 96 toUtm8.northing: 4202811.912668\n    test 483 line 96 toUtm8.gamma: 17.578706\n    test 484 line 96 toUtm8.scale: 1.094102\n    test 485 line 96 toUtm8.lat: 34.202576\n    test 486 line 96 toUtm8.lon: 29.383166\n    test 487 line 97 toUtm8.easting: 6677830.630367\n    test 488 line 97 toUtm8.northing: 5350071.837395\n    test 489 line 97 toUtm8.gamma: 41.306641\n    test 490 line 97 toUtm8.scale: 1.599774\n    test 491 line 97 toUtm8.lat: 27.756285\n    test 492 line 97 toUtm8.lon: 61.881905\n    test 493 line 98 toUtm8.easting: 5941536.667431\n    test 494 line 98 toUtm8.northing: 3293112.175140\n    test 495 line 98 toUtm8.gamma: 22.752845\n    test 496 line 98 toUtm8.scale: 1.468473\n    test 497 line 98 toUtm8.lat: 19.742270\n    test 498 line 98 toUtm8.lon: 50.957821\n    test 499 line 99 toUtm8.easting: 3152481.792567\n    test 500 line 99 toUtm8.northing: 5903048.837978\n    test 501 line 99 toUtm8.gamma: 31.494606\n    test 502 line 99 toUtm8.scale: 1.124085\n    test 503 line 99 toUtm8.lat: 45.453582\n    test 504 line 99 toUtm8.lon: 40.659833\n    test 505 line 100 toUtm8.easting: 10460475.897726  FAILED, KNOWN, expected 10460475.897730\n    test 506 line 100 toUtm8.northing: 2553463.624385  FAILED, KNOWN, expected 2553463.624391\n    test 507 line 100 toUtm8.gamma: 21.965869\n    test 508 line 100 toUtm8.scale: 2.700296\n    test 509 line 100 toUtm8.lat: 8.322144\n    test 510 line 100 toUtm8.lon: 69.488157\n    test 511 line 101 toUtm8.easting: 1964010.778021\n    test 512 line 101 toUtm8.northing: 5634042.923056\n    test 513 line 101 toUtm8.gamma: 20.117800\n    test 514 line 101 toUtm8.scale: 1.047344\n    test 515 line 101 toUtm8.lat: 47.749831\n    test 516 line 101 toUtm8.lon: 26.322002\n    test 517 line 102 toUtm8.easting: 2065306.424934\n    test 518 line 102 toUtm8.northing: 2135008.468651\n    test 519 line 102 toUtm8.gamma: 6.258981\n    test 520 line 102 toUtm8.scale: 1.052800\n    test 521 line 102 toUtm8.lat: 18.297493\n    test 522 line 102 toUtm8.lon: 19.244669\n    test 523 line 103 toUtm8.easting: 5127738.132976\n    test 524 line 103 toUtm8.northing: 6793804.304411\n    test 525 line 103 toUtm8.gamma: 50.557915\n    test 526 line 103 toUtm8.scale: 1.339412\n    test 527 line 103 toUtm8.lat: 40.834541\n    test 528 line 103 toUtm8.lon: 61.650750\n    test 529 line 104 toUtm8.easting: 8385525.148166\n    test 530 line 104 toUtm8.northing: 6924932.344306\n    test 531 line 104 toUtm8.gamma: 59.087561\n    test 532 line 104 toUtm8.scale: 1.990364\n    test 533 line 104 toUtm8.lat: 26.273247\n    test 534 line 104 toUtm8.lon: 74.926694\n    test 535 line 105 toUtm8.easting: 2297510.791909\n    test 536 line 105 toUtm8.northing: 2805666.962834\n    test 537 line 105 toUtm8.gamma: 9.301553\n    test 538 line 105 toUtm8.scale: 1.065508\n    test 539 line 105 toUtm8.lat: 23.698347\n    test 540 line 105 toUtm8.lon: 22.155657\n\n    test skipped (16): line 106 toUtm8.'12.364112546807 86.348578425071 13749544.9176345767153 8288728.3846500523233 75.033969786420407131 4.27058754359004466627'\n    test 541 line 107 toUtm8.easting: 317518.455546\n    test 542 line 107 toUtm8.northing: 1097517.583745\n    test 543 line 107 toUtm8.gamma: 0.499004\n    test 544 line 107 toUtm8.scale: 1.000848\n    test 545 line 107 toUtm8.lat: 9.916091\n    test 546 line 107 toUtm8.lon: 2.895277\n    test 547 line 108 toUtm8.easting: 3856035.184888\n    test 548 line 108 toUtm8.northing: 9141364.450290\n    test 549 line 108 toUtm8.gamma: 75.972763\n    test 550 line 108 toUtm8.scale: 1.186786\n    test 551 line 108 toUtm8.lat: 56.553876\n    test 552 line 108 toUtm8.lon: 78.215077\n    test 553 line 109 toUtm8.easting: 1457484.942823\n    test 554 line 109 toUtm8.northing: 9385297.101973\n    test 555 line 109 toUtm8.gamma: 66.784662\n    test 556 line 109 toUtm8.scale: 1.025660\n    test 557 line 109 toUtm8.lat: 75.957631\n    test 558 line 109 toUtm8.lon: 67.407383\n    test 559 line 110 toUtm8.easting: 1304934.901841\n    test 560 line 110 toUtm8.northing: 3604655.155715\n    test 561 line 110 toUtm8.gamma: 7.343989\n    test 562 line 110 toUtm8.scale: 1.020672\n    test 563 line 110 toUtm8.lat: 31.826531\n    test 564 line 110 toUtm8.lon: 13.731050\n    test 565 line 111 toUtm8.easting: 1399093.491792\n    test 566 line 111 toUtm8.northing: 8314607.120342\n    test 567 line 111 toUtm8.gamma: 38.630161\n    test 568 line 111 toUtm8.scale: 1.023625\n    test 569 line 111 toUtm8.lat: 70.542985\n    test 570 line 111 toUtm8.lon: 40.282055\n    test 571 line 112 toUtm8.easting: 356983.618540\n    test 572 line 112 toUtm8.northing: 4282309.048994\n    test 573 line 112 toUtm8.gamma: 2.561485\n    test 574 line 112 toUtm8.scale: 1.001170\n    test 575 line 112 toUtm8.lat: 38.617487\n    test 576 line 112 toUtm8.lon: 4.099838\n    test 577 line 113 toUtm8.easting: 9952911.325092  FAILED, KNOWN, expected 9952911.325091\n    test 578 line 113 toUtm8.northing: 1510288.212230  FAILED, KNOWN, expected 1510288.212229\n    test 579 line 113 toUtm8.gamma: 12.752154\n    test 580 line 113 toUtm8.scale: 2.511357\n    test 581 line 113 toUtm8.lat: 5.389447\n    test 582 line 113 toUtm8.lon: 66.729612\n    test 583 line 114 toUtm8.easting: 6367592.504007\n    test 584 line 114 toUtm8.northing: 1200437.077672\n    test 585 line 114 toUtm8.gamma: 8.338041\n    test 586 line 114 toUtm8.scale: 1.546210\n    test 587 line 114 toUtm8.lat: 6.995168\n    test 588 line 114 toUtm8.lon: 50.014763\n    test 589 line 115 toUtm8.easting: 4391263.676460\n    test 590 line 115 toUtm8.northing: 6325455.989408\n    test 591 line 115 toUtm8.gamma: 42.653541\n    test 592 line 115 toUtm8.scale: 1.245560\n    test 593 line 115 toUtm8.lat: 42.321894\n    test 594 line 115 toUtm8.lon: 53.784040\n    test 595 line 116 toUtm8.easting: 6209880.527527\n    test 596 line 116 toUtm8.northing: 2154754.449747\n    test 597 line 116 toUtm8.gamma: 14.919512\n    test 598 line 116 toUtm8.scale: 1.516560\n    test 599 line 116 toUtm8.lat: 12.698515\n    test 600 line 116 toUtm8.lon: 50.242047\n    test 601 line 117 toUtm8.easting: 1507053.688772\n    test 602 line 117 toUtm8.northing: 6261383.513280\n    test 603 line 117 toUtm8.gamma: 19.280373\n    test 604 line 117 toUtm8.scale: 1.027584\n    test 605 line 117 toUtm8.lat: 54.207636\n    test 606 line 117 toUtm8.lon: 23.325731\n    test 607 line 118 toUtm8.easting: 8332725.003777\n    test 608 line 118 toUtm8.northing: 3002712.329753\n    test 609 line 118 toUtm8.gamma: 24.059212\n    test 610 line 118 toUtm8.scale: 1.990450\n    test 611 line 118 toUtm8.lat: 13.224787\n    test 612 line 118 toUtm8.lon: 62.426698\n    test 613 line 119 toUtm8.easting: 3958910.085235\n    test 614 line 119 toUtm8.northing: 3462284.926102\n    test 615 line 119 toUtm8.gamma: 18.546398\n    test 616 line 119 toUtm8.scale: 1.199351\n    test 617 line 119 toUtm8.lat: 25.650282\n    test 618 line 119 toUtm8.lon: 37.710391\n\n    test skipped (17): line 120 toUtm8.'20.684773383075 82.849734261238 10452892.2820830090734 8000059.6051139389546 71.07524025411428855 2.6501109339363854772'\n    test 619 line 121 toUtm8.easting: 496148.253731\n    test 620 line 121 toUtm8.northing: 6388503.365043\n    test 621 line 121 toUtm8.gamma: 6.970955\n    test 622 line 121 toUtm8.scale: 1.002620\n    test 623 line 121 toUtm8.lat: 57.367533\n    test 624 line 121 toUtm8.lon: 8.260866\n    test 625 line 122 toUtm8.easting: 7375792.085850\n    test 626 line 122 toUtm8.northing: 5544624.072155\n    test 627 line 122 toUtm8.gamma: 44.510851\n    test 628 line 122 toUtm8.scale: 1.745898\n    test 629 line 122 toUtm8.lat: 25.958757\n    test 630 line 122 toUtm8.lon: 65.760477\n    test 631 line 123 toUtm8.easting: 2826258.041979\n    test 632 line 123 toUtm8.northing: 5167759.816959\n    test 633 line 123 toUtm8.gamma: 23.783897\n    test 634 line 123 toUtm8.scale: 1.099415\n    test 635 line 123 toUtm8.lat: 41.395848\n    test 636 line 123 toUtm8.lon: 33.661790\n    test 637 line 124 toUtm8.easting: 3958563.378851\n    test 638 line 124 toUtm8.northing: 8499923.231243\n    test 639 line 124 toUtm8.gamma: 66.570945\n    test 640 line 124 toUtm8.scale: 1.197296\n    test 641 line 124 toUtm8.lat: 54.266617\n    test 642 line 124 toUtm8.lon: 70.602199\n    test 643 line 125 toUtm8.easting: 4408189.533462\n    test 644 line 125 toUtm8.northing: 8046312.003642\n    test 645 line 125 toUtm8.gamma: 62.216959\n    test 646 line 125 toUtm8.scale: 1.246750\n    test 647 line 125 toUtm8.lat: 49.840393\n    test 648 line 125 toUtm8.lon: 68.036728\n    test 649 line 126 toUtm8.easting: 3629225.627512\n    test 650 line 126 toUtm8.northing: 6371258.454645\n    test 651 line 126 toUtm8.gamma: 38.881675\n    test 652 line 126 toUtm8.scale: 1.165511\n    test 653 line 126 toUtm8.lat: 46.306035\n    test 654 line 126 toUtm8.lon: 48.085828\n    test 655 line 127 toUtm8.easting: 602838.450710\n    test 656 line 127 toUtm8.northing: 4851370.637205\n    test 657 line 127 toUtm8.gamma: 5.160395\n    test 658 line 127 toUtm8.scale: 1.004073\n    test 659 line 127 toUtm8.lat: 43.570988\n    test 660 line 127 toUtm8.lon: 7.464494\n    test 661 line 128 toUtm8.easting: 764616.665051\n    test 662 line 128 toUtm8.northing: 2164299.337945\n    test 663 line 128 toUtm8.gamma: 2.429300\n    test 664 line 128 toUtm8.scale: 1.006835\n    test 665 line 128 toUtm8.lat: 19.427290\n    test 666 line 128 toUtm8.lon: 7.268247\n    test 667 line 129 toUtm8.easting: 5048953.021931\n    test 668 line 129 toUtm8.northing: 1885974.057398\n    test 669 line 129 toUtm8.gamma: 11.459804\n    test 670 line 129 toUtm8.scale: 1.332207\n    test 671 line 129 toUtm8.lat: 12.713794\n    test 672 line 129 toUtm8.lon: 42.507018\n    test 673 line 130 toUtm8.easting: 2293996.601155\n    test 674 line 130 toUtm8.northing: 2392408.644221\n    test 675 line 130 toUtm8.gamma: 7.791838\n    test 676 line 130 toUtm8.scale: 1.065348\n    test 677 line 130 toUtm8.lat: 20.238782\n    test 678 line 130 toUtm8.lon: 21.566068\n    test 679 line 131 toUtm8.easting: 1530603.839418\n    test 680 line 131 toUtm8.northing: 7287841.459898\n    test 681 line 131 toUtm8.gamma: 27.502921\n    test 682 line 131 toUtm8.scale: 1.028416\n    test 683 line 131 toUtm8.lat: 62.367847\n    test 684 line 131 toUtm8.lon: 30.438849\n    test 685 line 132 toUtm8.easting: 2660000.093152\n    test 686 line 132 toUtm8.northing: 5161982.213248\n    test 687 line 132 toUtm8.gamma: 22.629836\n    test 688 line 132 toUtm8.scale: 1.087851\n    test 689 line 132 toUtm8.lat: 41.891569\n    test 690 line 132 toUtm8.lon: 31.959547\n    test 691 line 133 toUtm8.easting: 5037478.329414\n    test 692 line 133 toUtm8.northing: 8768172.379908\n    test 693 line 133 toUtm8.gamma: 73.511182\n    test 694 line 133 toUtm8.scale: 1.325919\n    test 695 line 133 toUtm8.lat: 47.664248\n    test 696 line 133 toUtm8.lon: 77.630062\n    test 697 line 134 toUtm8.easting: 2289650.957799\n    test 698 line 134 toUtm8.northing: 8784328.593607\n    test 699 line 134 toUtm8.gamma: 60.786067\n    test 700 line 134 toUtm8.scale: 1.064346\n    test 701 line 134 toUtm8.lat: 67.259559\n    test 702 line 134 toUtm8.lon: 62.715293\n    test 703 line 135 toUtm8.easting: 647913.889744\n    test 704 line 135 toUtm8.northing: 6742382.228217\n    test 705 line 135 toUtm8.gamma: 10.252667\n    test 706 line 135 toUtm8.scale: 1.004748\n    test 707 line 135 toUtm8.lat: 60.295381\n    test 708 line 135 toUtm8.lon: 11.763097\n    test 709 line 136 toUtm8.easting: 1118372.698566\n    test 710 line 136 toUtm8.northing: 9040627.942263\n    test 711 line 136 toUtm8.gamma: 48.936803\n    test 712 line 136 toUtm8.scale: 1.014920\n    test 713 line 136 toUtm8.lat: 76.878914\n    test 714 line 136 toUtm8.lon: 49.685773\n    test 715 line 137 toUtm8.easting: 440696.510070\n    test 716 line 137 toUtm8.northing: 5500355.826297\n    test 717 line 137 toUtm8.gamma: 4.636104\n    test 718 line 137 toUtm8.scale: 1.001986\n    test 719 line 137 toUtm8.lat: 49.495349\n    test 720 line 137 toUtm8.lon: 6.087551\n    test 721 line 138 toUtm8.easting: 601728.149727\n    test 722 line 138 toUtm8.northing: 9095352.048149\n    test 723 line 138 toUtm8.gamma: 33.435771\n    test 724 line 138 toUtm8.scale: 1.004027\n    test 725 line 138 toUtm8.lat: 80.297265\n    test 726 line 138 toUtm8.lon: 33.816372\n    test 727 line 139 toUtm8.easting: 3481444.777827\n    test 728 line 139 toUtm8.northing: 291665.708749\n    test 729 line 139 toUtm8.gamma: 1.314726\n    test 730 line 139 toUtm8.scale: 1.153534\n    test 731 line 139 toUtm8.lat: 2.286437\n    test 732 line 139 toUtm8.lon: 29.855149\n    test 733 line 140 toUtm8.easting: 3515304.901524\n    test 734 line 140 toUtm8.northing: 1443981.882918\n    test 735 line 140 toUtm8.gamma: 6.641638\n    test 736 line 140 toUtm8.scale: 1.156509\n    test 737 line 140 toUtm8.lat: 11.264457\n    test 738 line 140 toUtm8.lon: 30.743907\n    test 739 line 141 toUtm8.easting: 160012.186959\n    test 740 line 141 toUtm8.northing: 3922609.253231\n    test 741 line 141 toUtm8.gamma: 1.022225\n    test 742 line 141 toUtm8.scale: 0.999916\n    test 743 line 141 toUtm8.lat: 35.434073\n    test 744 line 141 toUtm8.lon: 1.762795\n    test 745 line 142 toUtm8.easting: 4163744.245622\n    test 746 line 142 toUtm8.northing: 936884.674804\n    test 747 line 142 toUtm8.gamma: 4.892559\n    test 748 line 142 toUtm8.scale: 1.222164\n    test 749 line 142 toUtm8.lat: 6.923695\n    test 750 line 142 toUtm8.lon: 35.289456\n    test 751 line 143 toUtm8.easting: 6155200.017926\n    test 752 line 143 toUtm8.northing: 6926306.628390\n    test 753 line 143 toUtm8.gamma: 55.103258\n    test 754 line 143 toUtm8.scale: 1.500556\n    test 755 line 143 toUtm8.lat: 36.129672\n    test 756 line 143 toUtm8.lon: 67.533176\n\n    test skipped (18): line 144 toUtm8.'4.406528980638 81.965734206053 16263383.2854400911299 3591296.7313406507021 36.040254103487111035 6.58928781751888396522'\n\n    test skipped (19): line 145 toUtm8.'8.474589009114 81.129945130597 14220995.5153984992101 5100587.4575033509156 47.314258427760984573 4.69320221531225352172'\n    test 757 line 146 toUtm8.easting: 3173034.802372\n    test 758 line 146 toUtm8.northing: 7263421.942957\n    test 759 line 146 toUtm8.gamma: 45.215808\n    test 760 line 146 toUtm8.scale: 1.125410\n    test 761 line 146 toUtm8.lat: 53.907276\n    test 762 line 146 toUtm8.lon: 51.252904\n\n    test skipped (20): line 147 toUtm8.'22.120544817855 85.756781608119 10253274.0922039670098 8867574.2997916978265 79.198250285604314115 2.57237240666878171579'\n    test 763 line 148 toUtm8.easting: 2415561.483230\n    test 764 line 148 toUtm8.northing: 8813225.217097\n    test 765 line 148 toUtm8.gamma: 62.548978\n    test 766 line 148 toUtm8.scale: 1.071748\n    test 767 line 148 toUtm8.lat: 66.444100\n    test 768 line 148 toUtm8.lon: 64.532960\n    test 769 line 149 toUtm8.easting: 9589179.293294  FAILED, KNOWN, expected 9589179.293295\n    test 770 line 149 toUtm8.northing: 1777680.784144  FAILED, KNOWN, expected 1777680.784143\n    test 771 line 149 toUtm8.gamma: 14.838483\n    test 772 line 149 toUtm8.scale: 2.380716\n    test 773 line 149 toUtm8.lat: 6.670965\n    test 774 line 149 toUtm8.lon: 65.660408\n    test 775 line 150 toUtm8.easting: 727939.438391\n    test 776 line 150 toUtm8.northing: 3684363.236810\n    test 777 line 150 toUtm8.gamma: 4.266227\n    test 778 line 150 toUtm8.scale: 1.006140\n    test 779 line 150 toUtm8.lat: 33.054057\n    test 780 line 150 toUtm8.lon: 7.787458\n    test 781 line 151 toUtm8.easting: 1250765.991085\n    test 782 line 151 toUtm8.northing: 792869.242719\n    test 783 line 151 toUtm8.gamma: 1.396497\n    test 784 line 151 toUtm8.scale: 1.019026\n    test 785 line 151 toUtm8.lat: 7.035525\n    test 786 line 151 toUtm8.lon: 11.253707\n    test 787 line 152 toUtm8.easting: 710421.705887\n    test 788 line 152 toUtm8.northing: 5019406.075928\n    test 789 line 152 toUtm8.gamma: 6.393949\n    test 790 line 152 toUtm8.scale: 1.005812\n    test 791 line 152 toUtm8.lat: 44.971340\n    test 792 line 152 toUtm8.lon: 9.009304\n    test 793 line 153 toUtm8.easting: 4600995.074643\n    test 794 line 153 toUtm8.northing: 4505712.084593\n    test 795 line 153 toUtm8.gamma: 27.997458\n    test 796 line 153 toUtm8.scale: 1.271841\n    test 797 line 153 toUtm8.lat: 30.821397\n    test 798 line 153 toUtm8.lon: 45.970577\n    test 799 line 154 toUtm8.easting: 557642.627782\n    test 800 line 154 toUtm8.northing: 7006911.251644\n    test 801 line 154 toUtm8.gamma: 9.769903\n    test 802 line 154 toUtm8.scale: 1.003411\n    test 803 line 154 toUtm8.lat: 62.763886\n    test 804 line 154 toUtm8.lon: 10.960144\n    test 805 line 155 toUtm8.easting: 4635062.294291\n    test 806 line 155 toUtm8.northing: 2702556.153311\n    test 807 line 155 toUtm8.gamma: 15.779547\n    test 808 line 155 toUtm8.scale: 1.277178\n    test 809 line 155 toUtm8.lat: 18.888611\n    test 810 line 155 toUtm8.lon: 41.009871\n\n    test skipped (21): line 156 toUtm8.'7.524119461376 81.050715469439 14554962.2559189870471 4716639.9085720199214 44.192751352918149954 4.96001986321419027847'\n    test 811 line 157 toUtm8.easting: 882126.661736\n    test 812 line 157 toUtm8.northing: 7947612.369506\n    test 813 line 157 toUtm8.gamma: 22.429487\n    test 814 line 157 toUtm8.scale: 1.009132\n    test 815 line 157 toUtm8.lat: 70.063902\n    test 816 line 157 toUtm8.lon: 23.705255\n\n    test skipped (22): line 158 toUtm8.'3.556525834215 88.363529198819 20262021.6459832969292 8113827.8207957955275 76.936057264555500879 10.34909168211805703369'\n    test 817 line 159 toUtm8.easting: 6500508.399850\n    test 818 line 159 toUtm8.northing: 6956476.342368\n    test 819 line 159 toUtm8.gamma: 56.237116\n    test 820 line 159 toUtm8.scale: 1.563162\n    test 821 line 159 toUtm8.lat: 34.551257\n    test 822 line 159 toUtm8.lon: 69.111091\n    test 823 line 160 toUtm8.easting: 3884036.641314\n    test 824 line 160 toUtm8.northing: 6890167.411733\n    test 825 line 160 toUtm8.gamma: 45.760130\n    test 826 line 160 toUtm8.scale: 1.190167\n    test 827 line 160 toUtm8.lat: 47.929051\n    test 828 line 160 toUtm8.lon: 54.103418\n    test 829 line 161 toUtm8.easting: 217855.546078\n    test 830 line 161 toUtm8.northing: 6184108.122568\n    test 831 line 161 toUtm8.gamma: 2.870993\n    test 832 line 161 toUtm8.scale: 1.000182\n    test 833 line 161 toUtm8.lat: 55.753536\n    test 834 line 161 toUtm8.lon: 3.471798\n\n    test skipped (23): line 162 toUtm8.'18.530847071862 86.555312055898 11384139.290401676268 8893889.9495562311576 79.77485364572019046 3.02467156922968230025'\n    test 835 line 163 toUtm8.easting: 3469855.989805\n    test 836 line 163 toUtm8.northing: 7723193.799228\n    test 837 line 163 toUtm8.gamma: 53.114700\n    test 838 line 163 toUtm8.scale: 1.150540\n    test 839 line 163 toUtm8.lat: 54.510125\n    test 840 line 163 toUtm8.lon: 58.556056\n\n    test skipped (24): line 164 toUtm8.'42.864161881687 84.866325602975 5926165.994939154109 9385463.7327467371322 82.506981261616342016 1.45975761947329382411'\n    test 841 line 165 toUtm8.easting: 5798639.662224\n    test 842 line 165 toUtm8.northing: 5305387.640916\n    test 843 line 165 toUtm8.gamma: 38.617257\n    test 844 line 165 toUtm8.scale: 1.442263\n    test 845 line 165 toUtm8.lat: 30.911943\n    test 846 line 165 toUtm8.lon: 57.114102\n    test 847 line 166 toUtm8.easting: 9464.934388\n    test 848 line 166 toUtm8.northing: 6489121.624944\n    test 849 line 166 toUtm8.gamma: 0.138696\n    test 850 line 166 toUtm8.scale: 0.999601\n    test 851 line 166 toUtm8.lat: 58.542493\n    test 852 line 166 toUtm8.lon: 0.162593\n\n    test skipped (25): line 167 toUtm8.'15.022689088683 85.792615487152 12575834.2756139069875 8356610.8954857643175 75.235223160840771295 3.59944161831319404851'\n    test 853 line 168 toUtm8.easting: 2719653.543469\n    test 854 line 168 toUtm8.northing: 9362389.163495\n    test 855 line 168 toUtm8.gamma: 76.049670\n    test 856 line 168 toUtm8.scale: 1.091315\n    test 857 line 168 toUtm8.lat: 65.692275\n    test 858 line 168 toUtm8.lon: 77.241377\n    test 859 line 169 toUtm8.easting: 4845341.924698\n    test 860 line 169 toUtm8.northing: 8710522.326901\n    test 861 line 169 toUtm8.gamma: 72.320942\n    test 862 line 169 toUtm8.scale: 1.300382\n    test 863 line 169 toUtm8.lat: 48.806211\n    test 864 line 169 toUtm8.lon: 76.486365\n\n    test skipped (26): line 170 toUtm8.'56.436024794624 82.61156798689 3935261.5227628794258 9454271.6490618694486 81.162334302626197333 1.19476734082123451158'\n    test 865 line 171 toUtm8.easting: 7074299.823000\n    test 866 line 171 toUtm8.northing: 1648736.065055\n    test 867 line 171 toUtm8.gamma: 12.145925\n    test 868 line 171 toUtm8.scale: 1.687551\n    test 869 line 171 toUtm8.lat: 8.766053\n    test 870 line 171 toUtm8.lon: 54.367539\n    test 871 line 172 toUtm8.easting: 3689072.579308\n    test 872 line 172 toUtm8.northing: 2230802.665211\n    test 873 line 172 toUtm8.gamma: 10.856248\n    test 874 line 172 toUtm8.scale: 1.172689\n    test 875 line 172 toUtm8.lat: 17.095495\n    test 876 line 172 toUtm8.lon: 33.059128\n    test 877 line 173 toUtm8.easting: 8102565.885587\n    test 878 line 173 toUtm8.northing: 5167396.617580\n    test 879 line 173 toUtm8.gamma: 42.324886\n    test 880 line 173 toUtm8.scale: 1.921927\n    test 881 line 173 toUtm8.lat: 22.142861\n    test 882 line 173 toUtm8.lon: 67.200684\n    test 883 line 174 toUtm8.easting: 8181271.353564\n    test 884 line 174 toUtm8.northing: 4425436.547185\n    test 885 line 174 toUtm8.gamma: 35.900845\n    test 886 line 174 toUtm8.scale: 1.945017\n    test 887 line 174 toUtm8.lat: 19.222623\n    test 888 line 174 toUtm8.lon: 65.180785\n    test 889 line 175 toUtm8.easting: 767067.394003\n    test 890 line 175 toUtm8.northing: 3701745.857296\n    test 891 line 175 toUtm8.gamma: 4.519201\n    test 892 line 175 toUtm8.scale: 1.006863\n    test 893 line 175 toUtm8.lat: 33.182474\n    test 894 line 175 toUtm8.lon: 8.216952\n    test 895 line 176 toUtm8.easting: 6688114.168572\n    test 896 line 176 toUtm8.northing: 2052857.299639\n    test 897 line 176 toUtm8.gamma: 14.766191\n    test 898 line 176 toUtm8.scale: 1.607200\n    test 899 line 176 toUtm8.lat: 11.417963\n    test 900 line 176 toUtm8.lon: 52.808691\n    test 901 line 177 toUtm8.easting: 5608408.773761\n    test 902 line 177 toUtm8.northing: 3859055.659110\n    test 903 line 177 toUtm8.gamma: 26.244151\n    test 904 line 177 toUtm8.scale: 1.413463\n    test 905 line 177 toUtm8.lat: 23.836688\n    test 906 line 177 toUtm8.lon: 50.500180\n    test 907 line 178 toUtm8.easting: 3836942.765275\n    test 908 line 178 toUtm8.northing: 6415467.634326\n    test 909 line 178 toUtm8.gamma: 40.575885\n    test 910 line 178 toUtm8.scale: 1.185615\n    test 911 line 178 toUtm8.lat: 45.550020\n    test 912 line 178 toUtm8.lon: 50.148036\n    test 913 line 179 toUtm8.easting: 1298730.366025\n    test 914 line 179 toUtm8.northing: 6021453.000792\n    test 915 line 179 toUtm8.gamma: 15.613320\n    test 916 line 179 toUtm8.scale: 1.020367\n    test 917 line 179 toUtm8.lat: 52.746079\n    test 918 line 179 toUtm8.lon: 19.343926\n    test 919 line 180 toUtm8.easting: 416934.289208\n    test 920 line 180 toUtm8.northing: 7295683.451705\n    test 921 line 180 toUtm8.gamma: 8.238232\n    test 922 line 180 toUtm8.scale: 1.001729\n    test 923 line 180 toUtm8.lat: 65.513348\n    test 924 line 180 toUtm8.lon: 9.039529\n    test 925 line 181 toUtm8.easting: 4336076.850889\n    test 926 line 181 toUtm8.northing: 7617975.722779\n    test 927 line 181 toUtm8.gamma: 56.537088\n    test 928 line 181 toUtm8.scale: 1.238582\n    test 929 line 181 toUtm8.lat: 48.709795\n    test 930 line 181 toUtm8.lon: 63.554005\n    test 931 line 182 toUtm8.easting: 168047.336980\n    test 932 line 182 toUtm8.northing: 2185000.046530\n    test 933 line 182 toUtm8.gamma: 0.542187\n    test 934 line 182 toUtm8.scale: 0.999949\n    test 935 line 182 toUtm8.lat: 19.753509\n    test 936 line 182 toUtm8.lon: 1.603846\n    test 937 line 183 toUtm8.easting: 8276281.328790\n    test 938 line 183 toUtm8.northing: 263444.350545\n    test 939 line 183 toUtm8.gamma: 2.071435\n    test 940 line 183 toUtm8.scale: 1.980314\n    test 941 line 183 toUtm8.lat: 1.202816\n    test 942 line 183 toUtm8.lon: 59.377276\n    test 943 line 184 toUtm8.easting: 4772573.810710\n    test 944 line 184 toUtm8.northing: 6765710.336002\n    test 945 line 184 toUtm8.gamma: 48.857561\n    test 946 line 184 toUtm8.scale: 1.291911\n    test 947 line 184 toUtm8.lat: 42.564975\n    test 948 line 184 toUtm8.lon: 59.356947\n    test 949 line 185 toUtm8.easting: 5427755.074639\n    test 950 line 185 toUtm8.northing: 1556055.820924\n    test 951 line 185 toUtm8.gamma: 9.862178\n    test 952 line 185 toUtm8.scale: 1.387394\n    test 953 line 185 toUtm8.lat: 10.090572\n    test 954 line 185 toUtm8.lon: 44.604132\n    test 955 line 186 toUtm8.easting: 11588458.616240  FAILED, KNOWN, expected 11588458.616041\n    test 956 line 186 toUtm8.northing: 5707993.922683  FAILED, KNOWN, expected 5707993.922613\n    test 957 line 186 toUtm8.gamma: 50.784827\n    test 958 line 186 toUtm8.scale: 3.149567\n    test 959 line 186 toUtm8.lat: 14.133028\n    test 960 line 186 toUtm8.lon: 78.097533\n    test 961 line 187 toUtm8.easting: 7152433.802688\n    test 962 line 187 toUtm8.northing: 761390.695844\n    test 963 line 187 toUtm8.gamma: 5.607350\n    test 964 line 187 toUtm8.scale: 1.705261\n    test 965 line 187 toUtm8.lat: 4.031123\n    test 966 line 187 toUtm8.lon: 54.048782\n    test 967 line 188 toUtm8.easting: 3105651.390901\n    test 968 line 188 toUtm8.northing: 9426026.169064\n    test 969 line 188 toUtm8.gamma: 78.750206\n    test 970 line 188 toUtm8.scale: 1.119737\n    test 971 line 188 toUtm8.lat: 62.746603\n    test 972 line 188 toUtm8.lon: 79.968641\n    test 973 line 189 toUtm8.easting: 2959009.639022\n    test 974 line 189 toUtm8.northing: 8339242.269282\n    test 975 line 189 toUtm8.gamma: 58.460865\n    test 976 line 189 toUtm8.scale: 1.108554\n    test 977 line 189 toUtm8.lat: 60.626429\n    test 978 line 189 toUtm8.lon: 61.851551\n    test 979 line 190 toUtm8.easting: 8640472.267145\n    test 980 line 190 toUtm8.northing: 6230320.417931\n    test 981 line 190 toUtm8.gamma: 52.816810\n    test 982 line 190 toUtm8.scale: 2.062973\n    test 983 line 190 toUtm8.lat: 23.600626\n    test 984 line 190 toUtm8.lon: 72.811634\n    test 985 line 191 toUtm8.easting: 811352.108932\n    test 986 line 191 toUtm8.northing: 9816129.813481\n    test 987 line 191 toUtm8.gamma: 77.299184\n    test 988 line 191 toUtm8.scale: 1.007651\n    test 989 line 191 toUtm8.lat: 82.572236\n    test 990 line 191 toUtm8.lon: 77.402323\n    test 991 line 192 toUtm8.easting: 6521874.973458\n    test 992 line 192 toUtm8.northing: 1053612.479744\n    test 993 line 192 toUtm8.gamma: 7.407328\n    test 994 line 192 toUtm8.scale: 1.575529\n    test 995 line 192 toUtm8.lat: 6.030051\n    test 996 line 192 toUtm8.lon: 50.783505\n    test 997 line 193 toUtm8.easting: 3477983.997875\n    test 998 line 193 toUtm8.northing: 5651613.325947\n    test 999 line 193 toUtm8.gamma: 31.530673\n    test 1000 line 193 toUtm8.scale: 1.151875\n    test 1001 line 193 toUtm8.lat: 42.411523\n    test 1002 line 193 toUtm8.lon: 42.258009\n    test 1003 line 194 toUtm8.easting: 629892.822243\n    test 1004 line 194 toUtm8.northing: 3283914.910451\n    test 1005 line 194 toUtm8.gamma: 3.210482\n    test 1006 line 194 toUtm8.scale: 1.004499\n    test 1007 line 194 toUtm8.lat: 29.526120\n    test 1008 line 194 toUtm8.lon: 6.493069\n    test 1009 line 195 toUtm8.easting: 3381879.687227\n    test 1010 line 195 toUtm8.northing: 5103629.325665\n    test 1011 line 195 toUtm8.gamma: 26.748108\n    test 1012 line 195 toUtm8.scale: 1.143559\n    test 1013 line 195 toUtm8.lat: 39.021853\n    test 1014 line 195 toUtm8.lon: 38.641779\n    test 1015 line 196 toUtm8.easting: 2815986.534177\n    test 1016 line 196 toUtm8.northing: 9387029.120718\n    test 1017 line 196 toUtm8.gamma: 76.967262\n    test 1018 line 196 toUtm8.scale: 1.098032\n    test 1019 line 196 toUtm8.lat: 64.971850\n    test 1020 line 196 toUtm8.lon: 78.151893\n    test 1021 line 197 toUtm8.easting: 3398195.889603\n    test 1022 line 197 toUtm8.northing: 9138936.031490\n    test 1023 line 197 toUtm8.gamma: 74.477499\n    test 1024 line 197 toUtm8.scale: 1.144009\n    test 1025 line 197 toUtm8.lat: 59.961819\n    test 1026 line 197 toUtm8.lon: 76.473422\n    test 1027 line 198 toUtm8.easting: 2421734.754637\n    test 1028 line 198 toUtm8.northing: 5002372.094991\n    test 1029 line 198 toUtm8.gamma: 20.017082\n    test 1030 line 198 toUtm8.scale: 1.072592\n    test 1031 line 198 toUtm8.lat: 41.374040\n    test 1032 line 198 toUtm8.lon: 28.848343\n    test 1033 line 199 toUtm8.easting: 2360869.895525\n    test 1034 line 199 toUtm8.northing: 9553298.449536\n    test 1035 line 199 toUtm8.gamma: 78.848205\n    test 1036 line 199 toUtm8.scale: 1.068453\n    test 1037 line 199 toUtm8.lat: 68.946087\n    test 1038 line 199 toUtm8.lon: 79.574523\n\n    test skipped (27): line 200 toUtm8.'79.275096210569 83.551272329394 1196539.9721941076965 9861920.8362302532842 83.437668440198132309 1.01713723718699411107'\n    test 1039 line 201 toUtm8.easting: 1327758.704795\n    test 1040 line 201 toUtm8.northing: 2375509.241683\n    test 1041 line 201 toUtm8.gamma: 4.617572\n    test 1042 line 201 toUtm8.scale: 1.021465\n    test 1043 line 201 toUtm8.lat: 21.000252\n    test 1044 line 201 toUtm8.lon: 12.697444\n    test 1045 line 202 toUtm8.easting: 2070860.327644\n    test 1046 line 202 toUtm8.northing: 8604500.719581\n    test 1047 line 202 toUtm8.gamma: 54.722761\n    test 1048 line 202 toUtm8.scale: 1.052469\n    test 1049 line 202 toUtm8.lat: 68.015227\n    test 1050 line 202 toUtm8.lon: 56.732419\n    test 1051 line 203 toUtm8.easting: 6564776.654864\n    test 1052 line 203 toUtm8.northing: 8171207.177379\n    test 1053 line 203 toUtm8.gamma: 69.237523\n    test 1054 line 203 toUtm8.scale: 1.573894\n    test 1055 line 203 toUtm8.lat: 37.423675\n    test 1056 line 203 toUtm8.lon: 76.947359\n    test 1057 line 204 toUtm8.easting: 592653.553821\n    test 1058 line 204 toUtm8.northing: 6125529.810052\n    test 1059 line 204 toUtm8.gamma: 7.600785\n    test 1060 line 204 toUtm8.scale: 1.003912\n    test 1061 line 204 toUtm8.lat: 54.922707\n    test 1062 line 204 toUtm8.lon: 9.260818\n    test 1063 line 205 toUtm8.easting: 693459.671821\n    test 1064 line 205 toUtm8.northing: 6943779.991032\n    test 1065 line 205 toUtm8.gamma: 11.787587\n    test 1066 line 205 toUtm8.scale: 1.005496\n    test 1067 line 205 toUtm8.lat: 61.982810\n    test 1068 line 205 toUtm8.lon: 13.299659\n    test 1069 line 206 toUtm8.easting: 1838956.187625\n    test 1070 line 206 toUtm8.northing: 3511959.612381\n    test 1071 line 206 toUtm8.gamma: 9.844313\n    test 1072 line 206 toUtm8.scale: 1.041603\n    test 1073 line 206 toUtm8.lat: 30.324214\n    test 1074 line 206 toUtm8.lon: 18.959769\n    test 1075 line 207 toUtm8.easting: 4460690.884597\n    test 1076 line 207 toUtm8.northing: 5541873.235403\n    test 1077 line 207 toUtm8.gamma: 35.768613\n    test 1078 line 207 toUtm8.scale: 1.254179\n    test 1079 line 207 toUtm8.lat: 37.629667\n    test 1080 line 207 toUtm8.lon: 49.649131\n    test 1081 line 208 toUtm8.easting: 2311168.998941\n    test 1082 line 208 toUtm8.northing: 9480561.869119\n    test 1083 line 208 toUtm8.gamma: 76.828257\n    test 1084 line 208 toUtm8.scale: 1.065556\n    test 1085 line 208 toUtm8.lat: 69.225574\n    test 1086 line 208 toUtm8.lon: 77.656135\n    test 1087 line 209 toUtm8.easting: 4111775.114451\n    test 1088 line 209 toUtm8.northing: 6509014.348792\n    test 1089 line 209 toUtm8.gamma: 43.052130\n    test 1090 line 209 toUtm8.scale: 1.214125\n    test 1091 line 209 toUtm8.lat: 44.698478\n    test 1092 line 209 toUtm8.lon: 52.979304\n    test 1093 line 210 toUtm8.easting: 75358.261962\n    test 1094 line 210 toUtm8.northing: 7711258.662251\n    test 1095 line 210 toUtm8.gamma: 1.806297\n    test 1096 line 210 toUtm8.scale: 0.999669\n    test 1097 line 210 toUtm8.lat: 69.499594\n    test 1098 line 210 toUtm8.lon: 1.928336\n\n    test skipped (28): line 211 toUtm8.'27.981363604998 86.061112755721 8781885.2291162503299 9184776.4522114918448 81.795538514711932534 2.09490761781464961377'\n    test 1099 line 212 toUtm8.easting: 954378.415174\n    test 1100 line 212 toUtm8.northing: 7449110.669807\n    test 1101 line 212 toUtm8.gamma: 19.380657\n    test 1102 line 212 toUtm8.scale: 1.010768\n    test 1103 line 212 toUtm8.lat: 65.699839\n    test 1104 line 212 toUtm8.lon: 21.104725\n    test 1105 line 213 toUtm8.easting: 720971.793706\n    test 1106 line 213 toUtm8.northing: 5265195.121555\n    test 1107 line 213 toUtm8.gamma: 7.002995\n    test 1108 line 213 toUtm8.scale: 1.005995\n    test 1109 line 213 toUtm8.lat: 47.143648\n    test 1110 line 213 toUtm8.lon: 9.512189\n    test 1111 line 214 toUtm8.easting: 561561.493937\n    test 1112 line 214 toUtm8.northing: 989910.236221\n    test 1113 line 214 toUtm8.gamma: 0.793118\n    test 1114 line 214 toUtm8.scale: 1.003505\n    test 1115 line 214 toUtm8.lat: 8.920167\n    test 1116 line 214 toUtm8.lon: 5.101513\n    test 1117 line 215 toUtm8.easting: 3446829.634468\n    test 1118 line 215 toUtm8.northing: 9232868.155664\n    test 1119 line 215 toUtm8.gamma: 76.279075\n    test 1120 line 215 toUtm8.scale: 1.148263\n    test 1121 line 215 toUtm8.lat: 59.778971\n    test 1122 line 215 toUtm8.lon: 78.080322\n\n    test skipped (29): line 216 toUtm8.'55.865310107291 87.384288430943 4048307.5459092527942 9800416.4229977935137 86.843918034217523739 1.20649504624906774925'\n    test 1123 line 217 toUtm8.easting: 8973188.480293\n    test 1124 line 217 toUtm8.northing: 7042230.087021\n    test 1125 line 217 toUtm8.gamma: 60.872456\n    test 1126 line 217 toUtm8.scale: 2.156098\n    test 1127 line 217 toUtm8.lat: 24.310973\n    test 1128 line 217 toUtm8.lon: 76.823777\n    test 1129 line 218 toUtm8.easting: 126314.191618\n    test 1130 line 218 toUtm8.northing: 396006.687921\n    test 1131 line 218 toUtm8.gamma: 0.071065\n    test 1132 line 218 toUtm8.scale: 0.999798\n    test 1133 line 218 toUtm8.lat: 3.582041\n    test 1134 line 218 toUtm8.lon: 1.137286\n    test 1135 line 219 toUtm8.easting: 5247652.345647\n    test 1136 line 219 toUtm8.northing: 8670513.359752\n    test 1137 line 219 toUtm8.gamma: 72.700498\n    test 1138 line 219 toUtm8.scale: 1.355272\n    test 1139 line 219 toUtm8.lat: 46.124233\n    test 1140 line 219 toUtm8.lon: 77.313118\n\n    test skipped (30): line 220 toUtm8.'31.17139056295 87.104503768139 8103656.8381187232079 9469794.014736839373 84.490673011906282841 1.91216400164486142107'\n    test 1141 line 221 toUtm8.easting: 6300112.758236\n    test 1142 line 221 toUtm8.northing: 93835.917364\n    test 1143 line 221 toUtm8.gamma: 0.644805\n    test 1144 line 221 toUtm8.scale: 1.534073\n    test 1145 line 221 toUtm8.lat: 0.553171\n    test 1146 line 221 toUtm8.lon: 49.117104\n    test 1147 line 222 toUtm8.easting: 3894813.593782\n    test 1148 line 222 toUtm8.northing: 4833832.341027\n    test 1149 line 222 toUtm8.gamma: 27.453298\n    test 1150 line 222 toUtm8.scale: 1.192135\n    test 1151 line 222 toUtm8.lat: 35.361587\n    test 1152 line 222 toUtm8.lon: 41.860599\n    test 1153 line 223 toUtm8.easting: 402511.346712\n    test 1154 line 223 toUtm8.northing: 3520621.561911\n    test 1155 line 223 toUtm8.gamma: 2.238474\n    test 1156 line 223 toUtm8.scale: 1.001599\n    test 1157 line 223 toUtm8.lat: 31.750314\n    test 1158 line 223 toUtm8.lon: 4.248167\n    test 1159 line 224 toUtm8.easting: 5357378.503148\n    test 1160 line 224 toUtm8.northing: 2772997.602234\n    test 1161 line 224 toUtm8.gamma: 17.823560\n    test 1162 line 224 toUtm8.scale: 1.376031\n    test 1163 line 224 toUtm8.lat: 17.924336\n    test 1164 line 224 toUtm8.lon: 46.096402\n    test 1165 line 225 toUtm8.easting: 2807553.985866\n    test 1166 line 225 toUtm8.northing: 8177847.980275\n    test 1167 line 225 toUtm8.gamma: 54.680045\n    test 1168 line 225 toUtm8.scale: 1.097531\n    test 1169 line 225 toUtm8.lat: 60.931488\n    test 1170 line 225 toUtm8.lon: 58.221214\n\n    test skipped (31): line 226 toUtm8.'5.358150979521 87.556213284144 18289045.16650076146 7792942.3396035398889 73.216494415207315628 8.09800850850277481729'\n\n    test skipped (32): line 227 toUtm8.'28.616673489124 80.452426461437 8376822.4595378634541 8128174.6238782329989 70.920116640676321501 1.98487312027093768388'\n    test 1171 line 228 toUtm8.easting: 11898068.352950  FAILED, KNOWN, expected 11898068.353272\n    test 1172 line 228 toUtm8.northing: 4772439.493355  FAILED, KNOWN, expected 4772439.493697\n    test 1173 line 228 toUtm8.gamma: 42.613968\n    test 1174 line 228 toUtm8.scale: 3.314412\n    test 1175 line 228 toUtm8.lat: 11.709763\n    test 1176 line 228 toUtm8.lon: 76.760295\n    test 1177 line 229 toUtm8.easting: 10550946.939052  FAILED, KNOWN, expected 10550946.939050\n    test 1178 line 229 toUtm8.northing: 3851968.815305  FAILED, KNOWN, expected 3851968.815295\n    test 1179 line 229 toUtm8.gamma: 33.383025\n    test 1180 line 229 toUtm8.scale: 2.724754\n    test 1181 line 229 toUtm8.lat: 12.009498\n    test 1182 line 229 toUtm8.lon: 71.782351\n\n    test skipped (33): line 230 toUtm8.'37.62978386356 85.795687334213 6828299.1236065501034 9394803.2274626281036 83.181386462369626591 1.62435875189611017521'\n    test 1183 line 231 toUtm8.easting: 11162550.334001  FAILED, KNOWN, expected 11162550.334022\n    test 1184 line 231 toUtm8.northing: 2640267.279546  FAILED, KNOWN, expected 2640267.279593\n    test 1185 line 231 toUtm8.gamma: 23.145404\n    test 1186 line 231 toUtm8.scale: 2.998408\n    test 1187 line 231 toUtm8.lat: 7.721128\n    test 1188 line 231 toUtm8.lon: 71.662731\n    test 1189 line 232 toUtm8.easting: 4411584.447941\n    test 1190 line 232 toUtm8.northing: 4956173.694407\n    test 1191 line 232 toUtm8.gamma: 30.713919\n    test 1192 line 232 toUtm8.scale: 1.248736\n    test 1193 line 232 toUtm8.lat: 34.295026\n    test 1194 line 232 toUtm8.lon: 46.442191\n    test 1195 line 233 toUtm8.easting: 672108.897905\n    test 1196 line 233 toUtm8.northing: 4751554.657054\n    test 1197 line 233 toUtm8.gamma: 5.569178\n    test 1198 line 233 toUtm8.scale: 1.005162\n    test 1199 line 233 toUtm8.lat: 42.622496\n    test 1200 line 233 toUtm8.lon: 8.193605\n    test 1201 line 234 toUtm8.easting: 5022964.290579\n    test 1202 line 234 toUtm8.northing: 6860418.199502\n    test 1203 line 234 toUtm8.gamma: 50.862230\n    test 1204 line 234 toUtm8.scale: 1.324925\n    test 1205 line 234 toUtm8.lat: 41.667780\n    test 1206 line 234 toUtm8.lon: 61.518288\n    test 1207 line 235 toUtm8.easting: 1669655.595207\n    test 1208 line 235 toUtm8.northing: 4152086.537021\n    test 1209 line 235 toUtm8.gamma: 11.110237\n    test 1210 line 235 toUtm8.scale: 1.034138\n    test 1211 line 235 toUtm8.lat: 36.060369\n    test 1212 line 235 toUtm8.lon: 18.444112\n    test 1213 line 236 toUtm8.easting: 6055876.729655\n    test 1214 line 236 toUtm8.northing: 4896837.552619\n    test 1215 line 236 toUtm8.gamma: 35.799747\n    test 1216 line 236 toUtm8.scale: 1.485967\n    test 1217 line 236 toUtm8.lat: 27.948091\n    test 1218 line 236 toUtm8.lon: 56.816429\n    test 1219 line 237 toUtm8.easting: 1209214.164379\n    test 1220 line 237 toUtm8.northing: 7266409.859178\n    test 1221 line 237 toUtm8.gamma: 22.319633\n    test 1222 line 237 toUtm8.scale: 1.017554\n    test 1223 line 237 toUtm8.lat: 63.386030\n    test 1224 line 237 toUtm8.lon: 24.662716\n    test 1225 line 238 toUtm8.easting: 5154564.559584\n    test 1226 line 238 toUtm8.northing: 698118.349975\n    test 1227 line 238 toUtm8.gamma: 4.242360\n    test 1228 line 238 toUtm8.scale: 1.347481\n    test 1229 line 238 toUtm8.lat: 4.680922\n    test 1230 line 238 toUtm8.lon: 42.114426\n    test 1231 line 239 toUtm8.easting: 2695149.806543\n    test 1232 line 239 toUtm8.northing: 8208197.765605\n    test 1233 line 239 toUtm8.gamma: 54.178615\n    test 1234 line 239 toUtm8.scale: 1.089730\n    test 1235 line 239 toUtm8.lat: 61.826625\n    test 1236 line 239 toUtm8.lon: 57.525096\n    test 1237 line 240 toUtm8.easting: 3394792.327820\n    test 1238 line 240 toUtm8.northing: 3217583.415552\n    test 1239 line 240 toUtm8.gamma: 15.165863\n    test 1240 line 240 toUtm8.scale: 1.145285\n    test 1241 line 240 toUtm8.lat: 25.104353\n    test 1242 line 240 toUtm8.lon: 32.528660\n    test 1243 line 241 toUtm8.easting: 1429160.966985\n    test 1244 line 241 toUtm8.northing: 8212685.362032\n    test 1245 line 241 toUtm8.gamma: 37.484904\n    test 1246 line 241 toUtm8.scale: 1.024676\n    test 1247 line 241 toUtm8.lat: 69.678351\n    test 1248 line 241 toUtm8.lon: 39.275513\n\n    test skipped (34): line 242 toUtm8.'29.671383681805 84.19659549085 8343387.9980651104898 8885196.9545780118644 78.561937382568633298 1.97473261886829061763'\n    test 1249 line 243 toUtm8.easting: 1990722.928606\n    test 1250 line 243 toUtm8.northing: 7569202.065162\n    test 1251 line 243 toUtm8.gamma: 37.075276\n    test 1252 line 243 toUtm8.scale: 1.048486\n    test 1253 line 243 toUtm8.lat: 62.300208\n    test 1254 line 243 toUtm8.lon: 40.474051\n    test 1255 line 244 toUtm8.easting: 1554980.099559\n    test 1256 line 244 toUtm8.northing: 1449423.919586\n    test 1257 line 244 toUtm8.gamma: 3.188328\n    test 1258 line 244 toUtm8.scale: 1.029664\n    test 1259 line 244 toUtm8.lat: 12.721776\n    test 1260 line 244 toUtm8.lon: 14.190003\n    test 1261 line 245 toUtm8.easting: 785205.450196\n    test 1262 line 245 toUtm8.northing: 5575158.423096\n    test 1263 line 245 toUtm8.gamma: 8.388417\n    test 1264 line 245 toUtm8.scale: 1.007181\n    test 1265 line 245 toUtm8.lat: 49.811296\n    test 1266 line 245 toUtm8.lon: 10.925011\n    test 1267 line 246 toUtm8.easting: 3310405.988313\n    test 1268 line 246 toUtm8.northing: 5955022.233881\n    test 1269 line 246 toUtm8.gamma: 33.007587\n    test 1270 line 246 toUtm8.scale: 1.137141\n    test 1271 line 246 toUtm8.lat: 45.132680\n    test 1272 line 246 toUtm8.lon: 42.478624\n    test 1273 line 247 toUtm8.easting: 4733460.960666\n    test 1274 line 247 toUtm8.northing: 129034.889816\n    test 1275 line 247 toUtm8.gamma: 0.737551\n    test 1276 line 247 toUtm8.scale: 1.290439\n    test 1277 line 247 toUtm8.lat: 0.904279\n    test 1278 line 247 toUtm8.lon: 39.078412\n    test 1279 line 248 toUtm8.easting: 3322708.343909\n    test 1280 line 248 toUtm8.northing: 3864738.078742\n    test 1281 line 248 toUtm8.gamma: 18.472566\n    test 1282 line 248 toUtm8.scale: 1.138838\n    test 1283 line 248 toUtm8.lat: 30.163605\n    test 1284 line 248 toUtm8.lon: 33.577996\n\n    test skipped (35): line 249 toUtm8.'27.643243707755 81.892859091432 8672864.4172042475623 8333465.9834441061554 73.206272638168122883 2.06544053870286774312'\n\n    test skipped (36): line 250 toUtm8.'18.201207657521 82.434617649311 11126818.23119627031 7618712.1749910723126 67.88717347393512063 2.92241673495261070414'\n\n    test skipped (37): line 251 toUtm8.'28.804576432117 89.886072420251 8650100.9817967479337 9975084.1689971279206 89.767446308690086924 2.05728879562910108817'\n    test 1285 line 252 toUtm8.easting: 2212701.180192\n    test 1286 line 252 toUtm8.northing: 650348.100229\n    test 1287 line 252 toUtm8.gamma: 1.970441\n    test 1288 line 252 toUtm8.scale: 1.060830\n    test 1289 line 252 toUtm8.lat: 5.542998\n    test 1290 line 252 toUtm8.lon: 19.589578\n    test 1291 line 253 toUtm8.easting: 6890222.326618\n    test 1292 line 253 toUtm8.northing: 7506813.499547\n    test 1293 line 253 toUtm8.gamma: 62.684825\n    test 1294 line 253 toUtm8.scale: 1.638488\n    test 1295 line 253 toUtm8.lat: 34.237147\n    test 1296 line 253 toUtm8.lon: 73.678164\n    test 1297 line 254 toUtm8.easting: 6692260.067325\n    test 1298 line 254 toUtm8.northing: 4244174.008110\n    test 1299 line 254 toUtm8.gamma: 31.812920\n    test 1300 line 254 toUtm8.scale: 1.604640\n    test 1301 line 254 toUtm8.lat: 22.704949\n    test 1302 line 254 toUtm8.lon: 57.877010\n    test 1303 line 255 toUtm8.easting: 1225564.137190\n    test 1304 line 255 toUtm8.northing: 4778923.924144\n    test 1305 line 255 toUtm8.gamma: 10.083419\n    test 1306 line 255 toUtm8.scale: 1.018134\n    test 1307 line 255 toUtm8.lat: 42.192424\n    test 1308 line 255 toUtm8.lon: 14.828196\n    test 1309 line 256 toUtm8.easting: 12341116.155088  FAILED, KNOWN, expected 12341116.154950\n    test 1310 line 256 toUtm8.northing: 5081855.520287  FAILED, KNOWN, expected 5081855.521966\n    test 1311 line 256 toUtm8.gamma: 45.712545  FAILED, KNOWN, expected 45.712546\n    test 1312 line 256 toUtm8.scale: 3.535170\n    test 1313 line 256 toUtm8.lat: 11.481151\n    test 1314 line 256 toUtm8.lon: 78.189236\n    test 1315 line 257 toUtm8.easting: 6673845.021771\n    test 1316 line 257 toUtm8.northing: 1177587.190565\n    test 1317 line 257 toUtm8.gamma: 8.389141\n    test 1318 line 257 toUtm8.scale: 1.605171\n    test 1319 line 257 toUtm8.lat: 6.609626\n    test 1320 line 257 toUtm8.lon: 51.735783\n    test 1321 line 258 toUtm8.easting: 6966354.690417\n    test 1322 line 258 toUtm8.northing: 3641802.005093\n    test 1323 line 258 toUtm8.gamma: 27.409636\n    test 1324 line 258 toUtm8.scale: 1.661469\n    test 1325 line 258 toUtm8.lat: 19.059369\n    test 1326 line 258 toUtm8.lon: 57.526439\n    test 1327 max forward error: 1.678809e-03\n    test 1328 max reverse error: 3.170463e-09\n    test 1329 Utm.scale0: 0.9996\n    test 1330 Utm.datum: WGS84\n    test 1331 Utm.datum.ellipsoid.KsOrder: 8\n    test 1332 WGS84.KsOrder: 8\n\n    23 of 1332 testUtmTMcoords.py tests (1.7%) FAILED, ALL KNOWN, 37 skipped (pygeodesy 26.3.26 Python 3.12.10 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 2.1.0 scipy 1.14.1 Math 2 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 isLazy 3 -W  default) 528.643 ms\nrunning /usr/local/bin/p....n3.12 -W default ~/PyGeodesy/test/testUtmUps.py\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.F_DMS from .dms by testUtmUps.py line 11\n# lazily imported pygeodesy.parseUTMUPS5 from .utmups by testUtmUps.py line 11\n# lazily imported pygeodesy.toUps8 from .ups by testUtmUps.py line 11\n# lazily imported pygeodesy.toUtmUps8 from .utmups by testUtmUps.py line 11\n# lazily imported pygeodesy.UtmUps from .utmups by testUtmUps.py line 11\n# lazily imported pygeodesy.utmupsValidateOK from .utmups by testUtmUps.py line 11\n# lazily imported pygeodesy.ellipsoidalVincenty by testUtmUps.py line 200\n\n    testing testUtmUps.py 23.03.27 (module pygeodesy.utmups 25.04.14) isLazy=3\n    test 1 UtmUps: 00 N 448251.0 5411932.0001\n    test 2 UtmUps.ValidateOK: True\n    test 3 UtmUps: 00 N 448252 5411933\n    test 4 UtmUps: 00 N 448251.795 5411932.678\n    test 5 UtmUps: 00Z N 448251.8 5411932.7 n/a n/a\n    test 6 UtmUps.ValidateOK: True\n    test 7 UtmUps.toLatLon: 43.684097°N, 175.265195°E\n    test 8 UtmUps.toLatLon: 43°41′02.75″N, 175°15′54.7″E\n    test 9 LL.toUtmUps: 60 N 360177 4838249\n    test 10 LL.toUtmUps: 60 N 360176.686 4838249.416\n    test 11 LL.toUtmUps: [Z:60T, H:N, E:360177, N:4838249, C:-1.19839167°, S:0.99984048]\n    test 12 LL.toUtmUps.ValidateOK: True\n# imported pygeodesy.basics into errors.py line 443\n    test 13 toUtmUps8ID1: 00Y N 1530125.78 2426773.6 -132.24798917° 0.99647445\n    test 14 toUtmUps8ID1.ValidateOK: True\n    test 15 toUtmUps8ID1.ValidateOK: True\n    test 16 toUtmUps8ID2: 38 N 467367.68 8100752.13 -57.37878422′ 0.99961302  FAILED, KNOWN, expected 38 N 3320416.75 632668.43 +44.0° 1.01619505\n    test 17 toUtmUps8ID2.ValidateOK: True\n    test 18 toUtmUps8ID2.ValidateOK: True\n    test 19 toUtmUps8ID2: 00 N 3320416.75 632668.43 +44.0° 1.01619505\n    test 20 toUtmUps8ID2.ValidateOK: easting (3320416.7473598532): outside UPS range [1300000, 2700000]  FAILED, KNOWN, expected True\n    test 21 toUtmUps8ID3: 00B S 2222979.47 1797474.9 -132.24786194° 0.99455723\n    test 22 toUtmUps8ID3.ValidateOK: True\n    test 23 toUtmUps8ID3.ValidateOK: True\n    test 24 UtmUps.toLatLonID4.ValidateOK: True\n    test 25 UtmUps.toLatLonID4: 84°17′14.04″N, 132°14′52.76″W\n    test 26 UtmUps.toLatLonID4: 84.287234°N, 132.247989°W\n    test 27 UtmUps.ValidateOK: easting (3320416.75): outside UPS range [1300000, 2700000]  FAILED, KNOWN, expected True\n    test 28 UtmUps.toLatLonID5: 73°00′00.0″N, 044°00′00.0″E\n    test 29 UtmUps.toLatLonID5: 73.0°N, 044.0°E\n    test 30 UtmUps.ValidateOK: True\n    test 31 UtmUps.toLatLonID6: 87°17′14.4″S, 132°14′52.3″E\n    test 32 UtmUps.toLatLonID6: 87.287333°S, 132.247861°E\n    test 33 latlon1: 61.2°N, 149.9°W\n    test 34 toUtmUps8: 06 N 344174 6788521\n    test 35 toUtmUps8: 06V N 344173.864114 6788521.418164 -2.54179531° 0.99989751\n    test 36 toUtmUps8.ValidateOK: True\n# lazily imported pygeodesy.mgrs by utmupsBase.py line 523\n    test 37 toMgrs: 06V UN 44173 88521\n    test 38 latlon2: LatLon(83°37′37.2″N, 032°39′50.4″W)\n    test 39 toUtmUps8: 25 N 504164 9286466\n    test 40 toUtmUps8: [Z:25X, H:N, E:504164, N:9286466]\n    test 41 toUtmUps8: 25X N 504163.899383 9286465.664902 +20.03542083′ 0.99960021\n    test 42 toUtmUps8.ValidateOK: True\n    test 43 toMgrs: 25X EN 04163 86465\n    test 44 latlon3: 33.33°N, 044.44°E\n    test 45 toUtmUps8: 38 N 447882 3688012\n    test 46 toUtmUps8: 38S N 447882.413169 3688011.692733 -18.46228466′ 0.99963349\n    test 47 toUtmUps8.ValidateOK: True\n    test 48 toMgrs: 38S MB 47882 88011\n    test 49 latlon4: 79.0°S, 079.0°W\n    test 50 toUtmUps8: 17 S 542594 1229296\n    test 51 toUtmUps8: 17C S 542594.134555 1229296.157301 -1.96328341° 0.99962217\n    test 52 toUtmUps8.ValidateOK: True\n    test 53 toMgrs: 17C NN 42594 29296\n    test 54 latlon5: 84.0°N, 084.0°E\n    test 55 toUtmUps8: 00 N 2663075 1930308\n    test 56 toUtmUps8: 00Z N 2663075.299562 1930307.977716 +84.0° 0.99673\n    test 57 toUtmUps8.ValidateOK: True\n    test 58 latlon6: 13.4125°N, 103.8667°E\n    test 59 toUtmUps8: 48 N 377302 1483035\n    test 60 toUtmUps8: 48P N 377302.354183 1483034.777084 -15.77480856′ 0.99978623\n    test 61 toUtmUps8.ValidateOK: True\n    test 62 toMgrs: 48P UV 77302 83034\n    test 63 latlon7: 13.4125°S, 103.8667°W\n    test 64 LL.toUtmUps: 13 S 622698 8516965\n    test 65 LL.toUtmUps: 13L S 622697.645817 8516965.222916 -15.77480856′ 0.99978623\n    test 66 LL.toUtmUps.ValidateOK: True\n    test 67 toMgrs: 13L FF 22697 16965\n    test 68 latlon8: 43.684097°N, 175.265195°E\n    test 69 LL.toUtmUps: 60 N 360177 4838249\n    test 70 LL.toUtmUps: 60 N 360176.691 4838249.422\n    test 71 LL.toUtmUps: [Z:60T, H:N, E:360177, N:4838249, C:-1.19839163°, S:0.99984048]\n    test 72 LL.toUtmUps.ValidateOK: True\n    test 73 toMgrs: 60T UP 60176 38249\n    test 74 UtmUps.toLatLon: 43.684097°N, 175.265195°E\n    test 75 UtmUps.toLatLon: 43°41′02.75″N, 175°15′54.7″E\n    test 76 latlon9: 41.321801°N, 074.801413°W\n    test 77 LL.toUtmUps: 18 N 516620 4574500\n    test 78 LL.toUtmUps: [Z:18T, H:N, E:516620, N:4574500, C:+7.86748851′, S:0.9996034]\n    test 79 LL.toUtmUps.ValidateOK: True\n    test 80 toMgrs: 18T WL 16619 74500\n    test 81 UtmUps.toLatLon: 41.321801°N, 074.801413°W\n    test 82 UtmUps.toLatLon: 41°19′18.48″N, 074°48′05.09″W\n    test 83 parseUTMUPS5: 18 N 516620 4574500\n    test 84 parseUTMUPS5.ValidateOK: True\n    test 85 UtmUps.toLatLon: 41.321801°N, 074.801413°W\n    test 86 UtmUps: 00A S 321441 5810117\n    test 87 UtmUps.ValidateOK: easting (321441.0425108216): outside UPS range [800000, 3200000]  FAILED, KNOWN, expected True\n    test 88 UtmUps.toLatLon: 53.713776°S, 023.77604°W\n    test 89 UtmUps.toLatLon: 53°42′49.59″S, 023°46′33.74″W\n    test 90 LL.toUtmUps: 27 S 316807 4044745\n    test 91 LL.toUtmUps.ValidateOK: True\n    test 92 LL.toUtmUps: 27 S 316807.326 4044744.532\n    test 93 LL.toUtmUps: [Z:27F, H:S, E:316807, N:4044745, C:+2.23830171°, S:1.00001184]\n    test 94 UtmUps: 00Z N 400000 5000000\n    test 95 UtmUps.ValidateOK: True\n    test 96 parseUTMUPS5: (31, 'N', 446000.0, 8436100.0, 'X')\n    test 97 parseUTMUPS5: (0, 'S', 506346.0, 1057743.0, 'A')\n\n    4 of 97 testUtmUps.py tests (4.1%) FAILED, ALL KNOWN (pygeodesy 26.3.26 Python 3.12.10 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 2.1.0 scipy 1.14.1 Math 2 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 isLazy 3 -W  default) 31.549 ms\nrunning /usr/local/bin/p....n3.12 -W default ~/PyGeodesy/test/testUtmUpsTMcoords.py\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.Ellipsoids from .ellipsoids by testTMcoords.py line 14\n# lazily imported pygeodesy.EPS from .constants by testTMcoords.py line 14\n# lazily imported pygeodesy.RangeError from .errors by testTMcoords.py line 14\n# lazily imported pygeodesy.toUtmUps8 from .utmups by testUtmUpsTMcoords.py line 17\n# lazily imported pygeodesy.Ups from .ups by testUtmUpsTMcoords.py line 17\n# lazily imported pygeodesy.Utm from .utm by testUtmUpsTMcoords.py line 17\n\n    testing testUtmUpsTMcoords.py 24.03.22 (module pygeodesy.utmups 25.04.14) isLazy=3\n    test 1 line 1 toUtmUps8.easting: 1548706.791619\n    test 2 line 1 toUtmUps8.northing: 8451449.198772\n    test 3 line 1 toUtmUps8.gamma: 43.922790\n    test 4 line 1 toUtmUps8.scale: 1.029060\n    test 5 line 1 toUtmUps8.lat: 70.579277\n    test 6 line 1 toUtmUps8.lon: 45.599420\n    test 7 line 2 toUtmUps8.easting: 2624150.740929\n    test 8 line 2 toUtmUps8.northing: 1204434.041605\n    test 9 line 2 toUtmUps8.gamma: 4.292619\n    test 10 line 2 toUtmUps8.scale: 1.086051\n    test 11 line 2 toUtmUps8.lat: 10.018894\n    test 12 line 2 toUtmUps8.lon: 23.313324\n    test 13 line 3 toUtmUps8.easting: 9855841.232935\n    test 14 line 3 toUtmUps8.northing: 6145496.115157  FAILED, KNOWN, expected 6145496.115155\n    test 15 line 3 toUtmUps8.gamma: 53.348315\n    test 16 line 3 toUtmUps8.scale: 2.445098\n    test 17 line 3 toUtmUps8.lat: 19.479896\n    test 18 line 3 toUtmUps8.lon: 75.662049\n    test 19 line 4 toUtmUps8.easting: 3206390.691996\n    test 20 line 4 toUtmUps8.northing: 2650745.400406\n    test 21 line 4 toUtmUps8.gamma: 11.666950\n    test 22 line 4 toUtmUps8.scale: 1.129359\n    test 23 line 4 toUtmUps8.lat: 21.072465\n    test 24 line 4 toUtmUps8.lon: 29.828684\n    test 25 line 5 toUtmUps8.easting: 4328154.083501\n    test 26 line 5 toUtmUps8.northing: 749647.623690\n    test 27 line 5 toUtmUps8.gamma: 4.024317\n    test 28 line 5 toUtmUps8.scale: 1.240829\n    test 29 line 5 toUtmUps8.lat: 5.458957\n    test 30 line 5 toUtmUps8.lon: 36.385237\n    test 31 line 6 toUtmUps8.easting: 847598.266514\n    test 32 line 6 toUtmUps8.northing: 7947180.962440\n    test 33 line 6 toUtmUps8.gamma: 21.639091\n    test 34 line 6 toUtmUps8.scale: 1.008399\n    test 35 line 6 toUtmUps8.lat: 70.175454\n    test 36 line 6 toUtmUps8.lon: 22.865350\n    test 37 line 7 toUtmUps8.easting: 2727657.337974\n    test 38 line 7 toUtmUps8.northing: 8283916.696410\n    test 39 line 7 toUtmUps8.gamma: 55.690909\n    test 40 line 7 toUtmUps8.scale: 1.091942\n    test 41 line 7 toUtmUps8.lat: 61.965605\n    test 42 line 7 toUtmUps8.lon: 58.931371\n    test 43 line 8 toUtmUps8.easting: 2331001.751890\n    test 44 line 8 toUtmUps8.northing: 1313608.224751\n    test 45 line 8 toUtmUps8.gamma: 4.214690\n    test 46 line 8 toUtmUps8.scale: 1.067599\n    test 47 line 8 toUtmUps8.lat: 11.116050\n    test 48 line 8 toUtmUps8.lon: 20.901069\n    test 49 line 9 toUtmUps8.easting: 6035557.239480\n    test 50 line 9 toUtmUps8.northing: 5791770.791879\n    test 51 line 9 toUtmUps8.gamma: 43.698170\n    test 52 line 9 toUtmUps8.scale: 1.481260\n    test 53 line 9 toUtmUps8.lat: 32.210543\n    test 54 line 9 toUtmUps8.lon: 60.705849\n    test 55 line 10 toUtmUps8.easting: 1064553.125852\n    test 56 line 10 toUtmUps8.northing: 9417273.737208\n    test 57 line 10 toUtmUps8.gamma: 61.100380\n    test 58 line 10 toUtmUps8.scale: 1.013475\n    test 59 line 10 toUtmUps8.lat: 79.187451\n    test 60 line 10 toUtmUps8.lon: 61.532382\n    test 61 line 11 toUtmUps8.easting: 1400137.116164\n    test 62 line 11 toUtmUps8.northing: 9616907.017686\n    test 63 line 11 toUtmUps8.gamma: 74.527087\n    test 64 line 11 toUtmUps8.scale: 1.023640\n    test 65 line 11 toUtmUps8.lat: 77.103759\n    test 66 line 11 toUtmUps8.lon: 74.899105\n\n    test skipped (1): line 12 toUtmUps8.'21.889514024862 80.019885892785 9860691.0166261508479 7433039.1433282732643 65.357693372142649007 2.43897318400097845293'\n\n    test skipped (2): line 13 toUtmUps8.'30.53629567699 82.186177919416 8076501.8336948099169 8561614.1747819103782 75.073393190238557702 1.90620203595203984732'\n    test 67 line 14 toUtmUps8.easting: 3335099.866623\n    test 68 line 14 toUtmUps8.northing: 6740519.084015\n    test 69 line 14 toUtmUps8.gamma: 40.611821\n    test 70 line 14 toUtmUps8.scale: 1.139021\n    test 71 line 14 toUtmUps8.lat: 49.990485\n    test 72 line 14 toUtmUps8.lon: 48.203179\n\n    test skipped (3): line 15 toUtmUps8.'14.486311853451 80.905136710227 12051574.9284996192629 6587213.0519512810474 59.033236797073779959 3.3574686117030164354'\n    test 73 line 16 toUtmUps8.easting: 5387578.735298\n    test 74 line 16 toUtmUps8.northing: 4111216.907168\n    test 75 line 16 toUtmUps8.gamma: 27.574337\n    test 76 line 16 toUtmUps8.scale: 1.379357\n    test 77 line 16 toUtmUps8.lat: 25.936824\n    test 78 line 16 toUtmUps8.lon: 49.913598\n    test 79 line 17 toUtmUps8.easting: 2622214.380233\n    test 80 line 17 toUtmUps8.northing: 8678923.984567\n    test 81 line 17 toUtmUps8.gamma: 61.697275\n    test 82 line 17 toUtmUps8.scale: 1.084810\n    test 83 line 17 toUtmUps8.lat: 64.402196\n    test 84 line 17 toUtmUps8.lon: 64.091395\n\n    test skipped (4): line 18 toUtmUps8.'48.451353594584 84.856197560189 5068474.169632778036 9492066.9937094951003 83.156739839119105102 1.3299901985118008373'\n    test 85 line 19 toUtmUps8.easting: 738062.047779\n    test 86 line 19 toUtmUps8.northing: 3031007.074116\n    test 87 line 19 toUtmUps8.gamma: 3.416802\n    test 88 line 19 toUtmUps8.scale: 1.006332\n    test 89 line 19 toUtmUps8.lat: 27.203895\n    test 90 line 19 toUtmUps8.lon: 7.440229\n    test 91 line 20 toUtmUps8.easting: 1944413.834565\n    test 92 line 20 toUtmUps8.northing: 9613299.224493\n    test 93 line 20 toUtmUps8.gamma: 78.462831\n    test 94 line 20 toUtmUps8.scale: 1.046134\n    test 95 line 20 toUtmUps8.lat: 72.509000\n    test 96 line 20 toUtmUps8.lon: 78.982283\n    test 97 line 21 toUtmUps8.easting: 2114521.418406\n    test 98 line 21 toUtmUps8.northing: 4954077.440098\n    test 99 line 21 toUtmUps8.gamma: 17.571878\n    test 100 line 21 toUtmUps8.scale: 1.055093\n    test 101 line 21 toUtmUps8.lat: 41.824954\n    test 102 line 21 toUtmUps8.lon: 25.392744\n    test 103 line 22 toUtmUps8.easting: 620365.905090\n    test 104 line 22 toUtmUps8.northing: 4755542.026562\n    test 105 line 22 toUtmUps8.gamma: 5.152022\n    test 106 line 22 toUtmUps8.scale: 1.004338\n    test 107 line 22 toUtmUps8.lat: 42.701376\n    test 108 line 22 toUtmUps8.lon: 7.572738\n    test 109 line 23 toUtmUps8.easting: 263004.770989\n    test 110 line 23 toUtmUps8.northing: 4493669.762451\n    test 111 line 23 toUtmUps8.gamma: 2.020523\n    test 112 line 23 toUtmUps8.scale: 1.000452\n    test 113 line 23 toUtmUps8.lat: 40.552052\n    test 114 line 23 toUtmUps8.lon: 3.106056\n    test 115 line 24 toUtmUps8.easting: 3217221.739462\n    test 116 line 24 toUtmUps8.northing: 437776.119161\n    test 117 line 24 toUtmUps8.gamma: 1.848169\n    test 118 line 24 toUtmUps8.scale: 1.130558\n    test 119 line 24 toUtmUps8.lat: 3.501242\n    test 120 line 24 toUtmUps8.lon: 27.806507\n\n    test skipped (5): line 25 toUtmUps8.'10.148714782203 85.373767569431 14661142.4449607145297 7476100.8241849819567 68.376669038799719822 4.89664968310721668858'\n    test 121 line 26 toUtmUps8.easting: 967777.158554\n    test 122 line 26 toUtmUps8.northing: 6615684.266592\n    test 123 line 26 toUtmUps8.gamma: 14.410044\n    test 124 line 26 toUtmUps8.scale: 1.011100\n    test 125 line 26 toUtmUps8.lat: 58.582623\n    test 126 line 26 toUtmUps8.lon: 16.755558\n    test 127 line 27 toUtmUps8.easting: 7558840.728461\n    test 128 line 27 toUtmUps8.northing: 4144728.130764\n    test 129 line 27 toUtmUps8.gamma: 32.557264\n    test 130 line 27 toUtmUps8.scale: 1.791490\n    test 131 line 27 toUtmUps8.lat: 19.793004\n    test 132 line 27 toUtmUps8.lon: 61.746763\n    test 133 line 28 toUtmUps8.easting: 1056008.314161\n    test 134 line 28 toUtmUps8.northing: 9290799.692669\n    test 135 line 28 toUtmUps8.gamma: 55.843278\n    test 136 line 28 toUtmUps8.scale: 1.013253\n    test 137 line 28 toUtmUps8.lat: 78.666776\n    test 138 line 28 toUtmUps8.lon: 56.365355\n    test 139 line 29 toUtmUps8.easting: 1943965.134687\n    test 140 line 29 toUtmUps8.northing: 1389972.228690\n    test 141 line 29 toUtmUps8.gamma: 3.774869\n    test 142 line 29 toUtmUps8.scale: 1.046724\n    test 143 line 29 toUtmUps8.lat: 11.998788\n    test 144 line 29 toUtmUps8.lon: 17.597873\n    test 145 line 30 toUtmUps8.easting: 5803077.072902\n    test 146 line 30 toUtmUps8.northing: 5649957.943659\n    test 147 line 30 toUtmUps8.gamma: 41.717943\n    test 148 line 30 toUtmUps8.scale: 1.442572\n    test 149 line 30 toUtmUps8.lat: 32.540378\n    test 150 line 30 toUtmUps8.lon: 58.764613\n    test 151 line 31 toUtmUps8.easting: 2928716.986009\n    test 152 line 31 toUtmUps8.northing: 5731835.058317\n    test 153 line 31 toUtmUps8.gamma: 28.538550\n    test 154 line 31 toUtmUps8.scale: 1.106780\n    test 155 line 31 toUtmUps8.lat: 45.160356\n    test 156 line 31 toUtmUps8.lon: 37.465285\n    test 157 line 32 toUtmUps8.easting: 326141.975756\n    test 158 line 32 toUtmUps8.northing: 8881325.164543\n    test 159 line 32 toUtmUps8.gamma: 16.111415\n    test 160 line 32 toUtmUps8.scale: 1.000900\n    test 161 line 32 toUtmUps8.lat: 79.584190\n    test 162 line 32 toUtmUps8.lon: 16.367006\n    test 163 line 33 toUtmUps8.easting: 3933015.267450\n    test 164 line 33 toUtmUps8.northing: 7932373.909512\n    test 165 line 33 toUtmUps8.gamma: 58.577424\n    test 166 line 33 toUtmUps8.scale: 1.194811\n    test 167 line 33 toUtmUps8.lat: 52.470664\n    test 168 line 33 toUtmUps8.lon: 64.125580\n    test 169 line 34 toUtmUps8.easting: 8598926.983213\n    test 170 line 34 toUtmUps8.northing: 6214135.167503\n    test 171 line 34 toUtmUps8.gamma: 52.612878\n    test 172 line 34 toUtmUps8.scale: 2.051367\n    test 173 line 34 toUtmUps8.lat: 23.702673\n    test 174 line 34 toUtmUps8.lon: 72.630363\n    test 175 line 35 toUtmUps8.easting: 6620553.333772\n    test 176 line 35 toUtmUps8.northing: 6540527.122948\n    test 177 line 35 toUtmUps8.gamma: 52.350140\n    test 178 line 35 toUtmUps8.scale: 1.586614\n    test 179 line 35 toUtmUps8.lat: 32.603520\n    test 180 line 35 toUtmUps8.lon: 67.280123\n    test 181 line 36 toUtmUps8.easting: 1515136.758292\n    test 182 line 36 toUtmUps8.northing: 3858996.087537\n    test 183 line 36 toUtmUps8.gamma: 9.225127\n    test 184 line 36 toUtmUps8.scale: 1.028029\n    test 185 line 36 toUtmUps8.lat: 33.776224\n    test 186 line 36 toUtmUps8.lon: 16.280993\n    test 187 line 37 toUtmUps8.easting: 479854.373445\n    test 188 line 37 toUtmUps8.northing: 8980501.389896\n    test 189 line 37 toUtmUps8.gamma: 25.021222\n    test 190 line 37 toUtmUps8.scale: 1.002415\n    test 191 line 37 toUtmUps8.lat: 79.932747\n    test 192 line 37 toUtmUps8.lon: 25.363622\n    test 193 line 38 toUtmUps8.easting: 5243446.564940\n    test 194 line 38 toUtmUps8.northing: 140657.213960\n    test 195 line 38 toUtmUps8.gamma: 0.862817\n    test 196 line 38 toUtmUps8.scale: 1.360358\n    test 197 line 38 toUtmUps8.lat: 0.935056\n    test 198 line 38 toUtmUps8.lon: 42.538824\n\n    test skipped (6): line 39 toUtmUps8.'13.490862440668 83.178380075606 12806457.9232176809509 7170118.6846750266674 64.708921319446620085 3.7405880916836789809'\n    test 199 line 40 toUtmUps8.easting: 1202993.459158\n    test 200 line 40 toUtmUps8.northing: 5557316.053599\n    test 201 line 40 toUtmUps8.gamma: 12.579061\n    test 202 line 40 toUtmUps8.scale: 1.017426\n    test 203 line 40 toUtmUps8.lat: 48.979057\n    test 204 line 40 toUtmUps8.lon: 16.474542\n    test 205 line 41 toUtmUps8.easting: 1729088.710196\n    test 206 line 41 toUtmUps8.northing: 7770874.289954\n    test 207 line 41 toUtmUps8.gamma: 36.021783\n    test 208 line 41 toUtmUps8.scale: 1.036397\n    test 209 line 41 toUtmUps8.lat: 65.036016\n    test 210 line 41 toUtmUps8.lon: 38.729091\n    test 211 line 42 toUtmUps8.easting: 2437301.517425\n    test 212 line 42 toUtmUps8.northing: 5539327.748318\n    test 213 line 42 toUtmUps8.gamma: 23.461879\n    test 214 line 42 toUtmUps8.scale: 1.073459\n    test 215 line 42 toUtmUps8.lat: 45.510091\n    test 216 line 42 toUtmUps8.lon: 31.303729\n    test 217 line 43 toUtmUps8.easting: 3647186.135066\n    test 218 line 43 toUtmUps8.northing: 2086412.330983\n    test 219 line 43 toUtmUps8.gamma: 10.023991\n    test 220 line 43 toUtmUps8.scale: 1.168707\n    test 221 line 43 toUtmUps8.lat: 16.058010\n    test 222 line 43 toUtmUps8.lon: 32.520026\n    test 223 line 44 toUtmUps8.easting: 1818497.243556\n    test 224 line 44 toUtmUps8.northing: 4275471.745057\n    test 225 line 44 toUtmUps8.gamma: 12.499656\n    test 226 line 44 toUtmUps8.scale: 1.040604\n    test 227 line 44 toUtmUps8.lat: 36.845200\n    test 228 line 44 toUtmUps8.lon: 20.282283\n    test 229 line 45 toUtmUps8.easting: 3751304.113783\n    test 230 line 45 toUtmUps8.northing: 5130454.001592\n    test 231 line 45 toUtmUps8.gamma: 28.959707\n    test 232 line 45 toUtmUps8.scale: 1.177681\n    test 233 line 45 toUtmUps8.lat: 37.865481\n    test 234 line 45 toUtmUps8.lon: 41.990402\n    test 235 line 46 toUtmUps8.easting: 2616733.138544\n    test 236 line 46 toUtmUps8.northing: 394644.463815\n    test 237 line 46 toUtmUps8.gamma: 1.390425\n    test 238 line 46 toUtmUps8.scale: 1.085595\n    test 239 line 46 toUtmUps8.lat: 3.287272\n    test 240 line 46 toUtmUps8.lon: 22.917604\n    test 241 line 47 toUtmUps8.easting: 1756506.573942\n    test 242 line 47 toUtmUps8.northing: 5570393.986394\n    test 243 line 47 toUtmUps8.gamma: 17.897894\n    test 244 line 47 toUtmUps8.scale: 1.037732\n    test 245 line 47 toUtmUps8.lat: 47.813686\n    test 246 line 47 toUtmUps8.lon: 23.545092\n    test 247 line 48 toUtmUps8.easting: 8752461.894711\n    test 248 line 48 toUtmUps8.northing: 6087728.152284\n    test 249 line 48 toUtmUps8.gamma: 51.628465\n    test 250 line 48 toUtmUps8.scale: 2.095465\n    test 251 line 48 toUtmUps8.lat: 22.836853\n    test 252 line 48 toUtmUps8.lon: 72.604385\n    test 253 line 49 toUtmUps8.easting: 1309272.216432\n    test 254 line 49 toUtmUps8.northing: 59520.028899\n    test 255 line 49 toUtmUps8.gamma: 0.109069\n    test 256 line 49 toUtmUps8.scale: 1.020897\n    test 257 line 49 toUtmUps8.lat: 0.527262\n    test 258 line 49 toUtmUps8.lon: 11.684209\n    test 259 line 50 toUtmUps8.easting: 328652.277129\n    test 260 line 50 toUtmUps8.northing: 2233043.958874\n    test 261 line 50 toUtmUps8.gamma: 1.084863\n    test 262 line 50 toUtmUps8.scale: 1.000935\n    test 263 line 50 toUtmUps8.lat: 20.166742\n    test 264 line 50 toUtmUps8.lon: 3.143948\n\n    test skipped (7): line 51 toUtmUps8.'28.604629015528 85.988721094779 8637959.7164470998207 9190635.1560309800028 81.802562643198123218 2.05432863342852874819'\n\n    test skipped (8): line 52 toUtmUps8.'28.984047991106 85.833447775172 8548521.4551470334531 9172410.9432821880799 81.583928102890161419 2.02964145862183583179'\n    test 265 line 53 toUtmUps8.easting: 796987.281104\n    test 266 line 53 toUtmUps8.northing: 7677446.357675\n    test 267 line 53 toUtmUps8.gamma: 18.084472\n    test 268 line 53 toUtmUps8.scale: 1.007381\n    test 269 line 53 toUtmUps8.lat: 68.071020\n    test 270 line 53 toUtmUps8.lon: 19.392823\n\n    test skipped (9): line 54 toUtmUps8.'61.416576191872 81.981611413918 3291036.4967623295988 9513199.6006662170596 80.890253980644739593 1.13482563910814382209'\n    test 271 line 55 toUtmUps8.easting: 7087225.330906\n    test 272 line 55 toUtmUps8.northing: 8382823.855822\n    test 273 line 55 toUtmUps8.gamma: 72.253756\n    test 274 line 55 toUtmUps8.scale: 1.678070\n    test 275 line 55 toUtmUps8.lat: 35.074753\n    test 276 line 55 toUtmUps8.lon: 79.496003\n    test 277 line 56 toUtmUps8.easting: 5090358.125724\n    test 278 line 56 toUtmUps8.northing: 4318294.133489\n    test 279 line 56 toUtmUps8.gamma: 28.266280\n    test 280 line 56 toUtmUps8.scale: 1.336264\n    test 281 line 56 toUtmUps8.lat: 28.078790\n    test 282 line 56 toUtmUps8.lon: 48.684350\n\n    test skipped (10): line 57 toUtmUps8.'84.986930137199 2.067177857261 20163.0752214330146 9438635.9888499043815 2.059277291707588222 .99960496589466017622'\n    test 283 line 58 toUtmUps8.easting: 3447670.550785\n    test 284 line 58 toUtmUps8.northing: 3680238.888223\n    test 285 line 58 toUtmUps8.gamma: 17.934948\n    test 286 line 58 toUtmUps8.scale: 1.149831\n    test 287 line 58 toUtmUps8.lat: 28.473948\n    test 288 line 58 toUtmUps8.lon: 34.127306\n    test 289 line 59 toUtmUps8.easting: 3396522.906798\n    test 290 line 59 toUtmUps8.northing: 8093659.687593\n    test 291 line 59 toUtmUps8.gamma: 57.747117\n    test 292 line 59 toUtmUps8.scale: 1.144006\n    test 293 line 59 toUtmUps8.lat: 56.629354\n    test 294 line 59 toUtmUps8.lon: 62.196474\n    test 295 line 60 toUtmUps8.easting: 11249894.100794  FAILED, KNOWN, expected 11249894.100784\n    test 296 line 60 toUtmUps8.northing: 1619226.506360  FAILED, KNOWN, expected 1619226.506299\n    test 297 line 60 toUtmUps8.gamma: 14.210358\n    test 298 line 60 toUtmUps8.scale: 3.048347\n    test 299 line 60 toUtmUps8.lat: 4.747762\n    test 300 line 60 toUtmUps8.lon: 70.932555\n    test 301 line 61 toUtmUps8.easting: 6808805.230950\n    test 302 line 61 toUtmUps8.northing: 8044779.777369\n    test 303 line 61 toUtmUps8.gamma: 68.242008\n    test 304 line 61 toUtmUps8.scale: 1.621464\n    test 305 line 61 toUtmUps8.lat: 35.882113\n    test 306 line 61 toUtmUps8.lon: 76.741849\n    test 307 line 62 toUtmUps8.easting: 2306021.556506\n    test 308 line 62 toUtmUps8.northing: 757191.592866\n    test 309 line 62 toUtmUps8.gamma: 2.385686\n    test 310 line 62 toUtmUps8.scale: 1.066159\n    test 311 line 62 toUtmUps8.lat: 6.420705\n    test 312 line 62 toUtmUps8.lon: 20.416028\n    test 313 line 63 toUtmUps8.easting: 1547406.313862\n    test 314 line 63 toUtmUps8.northing: 6048712.751824\n    test 315 line 63 toUtmUps8.gamma: 18.474372\n    test 316 line 63 toUtmUps8.scale: 1.029123\n    test 317 line 63 toUtmUps8.lat: 52.335248\n    test 318 line 63 toUtmUps8.lon: 22.879294\n    test 319 line 64 toUtmUps8.easting: 2430467.650383\n    test 320 line 64 toUtmUps8.northing: 7557167.613972\n    test 321 line 64 toUtmUps8.gamma: 42.110021\n    test 322 line 64 toUtmUps8.scale: 1.072759\n    test 323 line 64 toUtmUps8.lat: 59.846391\n    test 324 line 64 toUtmUps8.lon: 46.262536\n    test 325 line 65 toUtmUps8.easting: 2334053.905830\n    test 326 line 65 toUtmUps8.northing: 1948076.966582\n    test 327 line 65 toUtmUps8.gamma: 6.353185\n    test 328 line 65 toUtmUps8.scale: 1.067733\n    test 329 line 65 toUtmUps8.lat: 16.461790\n    test 330 line 65 toUtmUps8.lon: 21.433269\n    test 331 line 66 toUtmUps8.easting: 5564175.186737\n    test 332 line 66 toUtmUps8.northing: 1836851.660412\n    test 333 line 66 toUtmUps8.gamma: 11.870682\n    test 334 line 66 toUtmUps8.scale: 1.408265\n    test 335 line 66 toUtmUps8.lat: 11.707905\n    test 336 line 66 toUtmUps8.lon: 45.827075\n    test 337 line 67 toUtmUps8.easting: 6118505.590359\n    test 338 line 67 toUtmUps8.northing: 7631684.552421\n    test 339 line 67 toUtmUps8.gamma: 62.477323\n    test 340 line 67 toUtmUps8.scale: 1.493420\n    test 341 line 67 toUtmUps8.lat: 38.519075\n    test 342 line 67 toUtmUps8.lon: 71.935918\n\n    test skipped (11): line 68 toUtmUps8.'34.264007222954 82.647878110272 7365359.2946646287171 8818194.4515306837741 77.207042218974141605 1.73763853091849729372'\n    test 343 line 69 toUtmUps8.easting: 36187.342415\n    test 344 line 69 toUtmUps8.northing: 2142565.324802\n    test 345 line 69 toUtmUps8.gamma: 0.114334\n    test 346 line 69 toUtmUps8.scale: 0.999616\n    test 347 line 69 toUtmUps8.lat: 19.376880\n    test 348 line 69 toUtmUps8.lon: 0.344605\n    test 349 line 70 toUtmUps8.easting: 2380328.546851\n    test 350 line 70 toUtmUps8.northing: 8440109.872384\n    test 351 line 70 toUtmUps8.gamma: 55.076067\n    test 352 line 70 toUtmUps8.scale: 1.069658\n    test 353 line 70 toUtmUps8.lat: 65.075805\n    test 354 line 70 toUtmUps8.lon: 57.653438\n    test 355 line 71 toUtmUps8.easting: 582511.608826\n    test 356 line 71 toUtmUps8.northing: 8876047.217071\n    test 357 line 71 toUtmUps8.gamma: 27.133300\n    test 358 line 71 toUtmUps8.scale: 1.003749\n    test 359 line 71 toUtmUps8.lat: 78.691870\n    test 360 line 71 toUtmUps8.lon: 27.591736\n    test 361 line 72 toUtmUps8.easting: 899441.350477\n    test 362 line 72 toUtmUps8.northing: 4582046.430516\n    test 363 line 72 toUtmUps8.gamma: 7.031211\n    test 364 line 72 toUtmUps8.scale: 1.009573\n    test 365 line 72 toUtmUps8.lat: 40.893022\n    test 366 line 72 toUtmUps8.lon: 10.668804\n\n    test skipped (12): line 73 toUtmUps8.'48.914278679322 87.35926802682 5022485.1243369246483 9741774.9337207800497 86.505947369926030588 1.32369954850478170836'\n    test 367 line 74 toUtmUps8.easting: 6701004.587204\n    test 368 line 74 toUtmUps8.northing: 2954368.258231\n    test 369 line 74 toUtmUps8.gamma: 21.560153\n    test 370 line 74 toUtmUps8.scale: 1.608554\n    test 371 line 74 toUtmUps8.lat: 16.208377\n    test 372 line 74 toUtmUps8.lon: 54.494282\n    test 373 line 75 toUtmUps8.easting: 454986.218897\n    test 374 line 75 toUtmUps8.northing: 4885087.887884\n    test 375 line 75 toUtmUps8.gamma: 3.945648\n    test 376 line 75 toUtmUps8.scale: 1.002147\n    test 377 line 75 toUtmUps8.lat: 43.977936\n    test 378 line 75 toUtmUps8.lon: 5.672541\n\n    test skipped (13): line 76 toUtmUps8.'26.850860749352 82.834479937822 8903956.1403106503714 8470608.5774824981183 74.723116471645531699 2.13131124920824155268'\n    test 379 line 77 toUtmUps8.easting: 1547627.594741\n    test 380 line 77 toUtmUps8.northing: 6036584.538347\n    test 381 line 77 toUtmUps8.gamma: 18.407629\n    test 382 line 77 toUtmUps8.scale: 1.029132\n    test 383 line 77 toUtmUps8.lat: 52.234165\n    test 384 line 77 toUtmUps8.lon: 22.827655\n    test 385 line 78 toUtmUps8.easting: 5221488.778597\n    test 386 line 78 toUtmUps8.northing: 1762592.044392\n    test 387 line 78 toUtmUps8.gamma: 10.927880\n    test 388 line 78 toUtmUps8.scale: 1.356721\n    test 389 line 78 toUtmUps8.lat: 11.674646\n    test 390 line 78 toUtmUps8.lon: 43.500147\n    test 391 line 79 toUtmUps8.easting: 4880570.297161\n    test 392 line 79 toUtmUps8.northing: 3325433.988867\n    test 393 line 79 toUtmUps8.gamma: 20.469862\n    test 394 line 79 toUtmUps8.scale: 1.308476\n    test 395 line 79 toUtmUps8.lat: 22.492753\n    test 396 line 79 toUtmUps8.lon: 44.179153\n\n    test skipped (14): line 80 toUtmUps8.'.910999463005 88.548822916123 23930680.0826936110445 7491462.0990379651261 75.937628056628715446 15.55636485152285563369'\n    test 397 line 81 toUtmUps8.easting: 71519.450458\n    test 398 line 81 toUtmUps8.northing: 3654740.444852\n    test 399 line 81 toUtmUps8.gamma: 0.417448\n    test 400 line 81 toUtmUps8.scale: 0.999663\n    test 401 line 81 toUtmUps8.lat: 33.028802\n    test 402 line 81 toUtmUps8.lon: 0.765843\n    test 403 line 82 toUtmUps8.easting: 4152797.795220\n    test 404 line 82 toUtmUps8.northing: 7823098.502751\n    test 405 line 82 toUtmUps8.gamma: 58.238901\n    test 406 line 82 toUtmUps8.scale: 1.218052\n    test 407 line 82 toUtmUps8.lat: 50.649195\n    test 408 line 82 toUtmUps8.lon: 64.389076\n    test 409 line 83 toUtmUps8.easting: 2926725.707639\n    test 410 line 83 toUtmUps8.northing: 7904918.072844\n    test 411 line 83 toUtmUps8.gamma: 51.592748\n    test 412 line 83 toUtmUps8.scale: 1.106206\n    test 413 line 83 toUtmUps8.lat: 58.820640\n    test 414 line 83 toUtmUps8.lon: 55.841048\n    test 415 line 84 toUtmUps8.easting: 1325509.113869\n    test 416 line 84 toUtmUps8.northing: 9675214.948213\n    test 417 line 84 toUtmUps8.gamma: 76.116213\n    test 418 line 84 toUtmUps8.scale: 1.021136\n    test 419 line 84 toUtmUps8.lat: 77.865762\n    test 420 line 84 toUtmUps8.lon: 76.414618\n    test 421 line 85 toUtmUps8.easting: 3045296.448926\n    test 422 line 85 toUtmUps8.northing: 542153.443280\n    test 423 line 85 toUtmUps8.gamma: 2.185095\n    test 424 line 85 toUtmUps8.scale: 1.116664\n    test 425 line 85 toUtmUps8.lat: 4.389639\n    test 426 line 85 toUtmUps8.lon: 26.458976\n    test 427 line 86 toUtmUps8.easting: 11843870.887791  FAILED, KNOWN, expected 11843870.887518\n    test 428 line 86 toUtmUps8.northing: 5912803.073690  FAILED, KNOWN, expected 5912803.073343\n    test 429 line 86 toUtmUps8.gamma: 52.814260  FAILED, KNOWN, expected 52.814259\n    test 430 line 86 toUtmUps8.scale: 3.267256\n    test 431 line 86 toUtmUps8.lat: 13.924448\n    test 432 line 86 toUtmUps8.lon: 79.017873\n    test 433 line 87 toUtmUps8.easting: 8891099.704936\n    test 434 line 87 toUtmUps8.northing: 162160.142227\n    test 435 line 87 toUtmUps8.gamma: 1.312094\n    test 436 line 87 toUtmUps8.scale: 2.157363\n    test 437 line 87 toUtmUps8.lat: 0.679713\n    test 438 line 87 toUtmUps8.lon: 62.036792\n    test 439 line 88 toUtmUps8.easting: 4784814.214449\n    test 440 line 88 toUtmUps8.northing: 2984497.432580\n    test 441 line 88 toUtmUps8.gamma: 17.946545\n    test 442 line 88 toUtmUps8.scale: 1.296116\n    test 443 line 88 toUtmUps8.lat: 20.478281\n    test 444 line 88 toUtmUps8.lon: 42.678234\n    test 445 line 89 toUtmUps8.easting: 1772074.682154\n    test 446 line 89 toUtmUps8.northing: 9491552.560143\n    test 447 line 89 toUtmUps8.gamma: 73.634830\n    test 448 line 89 toUtmUps8.scale: 1.038202\n    test 449 line 89 toUtmUps8.lat: 73.695703\n    test 450 line 89 toUtmUps8.lon: 74.259097\n    test 451 line 90 toUtmUps8.easting: 1907649.782106\n    test 452 line 90 toUtmUps8.northing: 6994232.429379\n    test 453 line 90 toUtmUps8.gamma: 29.718929\n    test 454 line 90 toUtmUps8.scale: 1.044503\n    test 455 line 90 toUtmUps8.lat: 58.569370\n    test 456 line 90 toUtmUps8.lon: 33.777549\n    test 457 line 91 toUtmUps8.easting: 2084423.818962\n    test 458 line 91 toUtmUps8.northing: 2211816.035619\n    test 459 line 91 toUtmUps8.gamma: 6.556448\n    test 460 line 91 toUtmUps8.scale: 1.053793\n    test 461 line 91 toUtmUps8.lat: 18.933881\n    test 462 line 91 toUtmUps8.lon: 19.492695\n    test 463 line 92 toUtmUps8.easting: 1064373.671729\n    test 464 line 92 toUtmUps8.northing: 7812482.547461\n    test 465 line 92 toUtmUps8.gamma: 24.874124\n    test 466 line 92 toUtmUps8.scale: 1.013490\n    test 467 line 92 toUtmUps8.lat: 68.317934\n    test 468 line 92 toUtmUps8.lon: 26.515687\n\n    test skipped (15): line 93 toUtmUps8.'50.641941364984 87.111556505544 4770385.4792965339274 9734318.9029801439364 86.27311877223132818 1.29055338238288419467'\n    test 469 line 94 toUtmUps8.easting: 6398096.677297\n    test 470 line 94 toUtmUps8.northing: 4410894.752104\n    test 471 line 94 toUtmUps8.gamma: 32.558023\n    test 472 line 94 toUtmUps8.scale: 1.548004\n    test 473 line 94 toUtmUps8.lat: 24.411298\n    test 474 line 94 toUtmUps8.lon: 56.881823\n    test 475 line 95 toUtmUps8.easting: 3138623.300415\n    test 476 line 95 toUtmUps8.northing: 3082960.600798\n    test 477 line 95 toUtmUps8.gamma: 13.557672\n    test 478 line 95 toUtmUps8.scale: 1.123724\n    test 479 line 95 toUtmUps8.lat: 24.571871\n    test 480 line 95 toUtmUps8.lon: 30.073097\n    test 481 line 96 toUtmUps8.easting: 2748325.794651\n    test 482 line 96 toUtmUps8.northing: 4202811.912668\n    test 483 line 96 toUtmUps8.gamma: 17.578706\n    test 484 line 96 toUtmUps8.scale: 1.094102\n    test 485 line 96 toUtmUps8.lat: 34.202576\n    test 486 line 96 toUtmUps8.lon: 29.383166\n    test 487 line 97 toUtmUps8.easting: 6677830.630367\n    test 488 line 97 toUtmUps8.northing: 5350071.837395\n    test 489 line 97 toUtmUps8.gamma: 41.306641\n    test 490 line 97 toUtmUps8.scale: 1.599774\n    test 491 line 97 toUtmUps8.lat: 27.756285\n    test 492 line 97 toUtmUps8.lon: 61.881905\n    test 493 line 98 toUtmUps8.easting: 5941536.667431\n    test 494 line 98 toUtmUps8.northing: 3293112.175140\n    test 495 line 98 toUtmUps8.gamma: 22.752845\n    test 496 line 98 toUtmUps8.scale: 1.468473\n    test 497 line 98 toUtmUps8.lat: 19.742270\n    test 498 line 98 toUtmUps8.lon: 50.957821\n    test 499 line 99 toUtmUps8.easting: 3152481.792567\n    test 500 line 99 toUtmUps8.northing: 5903048.837978\n    test 501 line 99 toUtmUps8.gamma: 31.494606\n    test 502 line 99 toUtmUps8.scale: 1.124085\n    test 503 line 99 toUtmUps8.lat: 45.453582\n    test 504 line 99 toUtmUps8.lon: 40.659833\n    test 505 line 100 toUtmUps8.easting: 10460475.897726  FAILED, KNOWN, expected 10460475.897730\n    test 506 line 100 toUtmUps8.northing: 2553463.624385  FAILED, KNOWN, expected 2553463.624391\n    test 507 line 100 toUtmUps8.gamma: 21.965869\n    test 508 line 100 toUtmUps8.scale: 2.700296\n    test 509 line 100 toUtmUps8.lat: 8.322144\n    test 510 line 100 toUtmUps8.lon: 69.488157\n    test 511 line 101 toUtmUps8.easting: 1964010.778021\n    test 512 line 101 toUtmUps8.northing: 5634042.923056\n    test 513 line 101 toUtmUps8.gamma: 20.117800\n    test 514 line 101 toUtmUps8.scale: 1.047344\n    test 515 line 101 toUtmUps8.lat: 47.749831\n    test 516 line 101 toUtmUps8.lon: 26.322002\n    test 517 line 102 toUtmUps8.easting: 2065306.424934\n    test 518 line 102 toUtmUps8.northing: 2135008.468651\n    test 519 line 102 toUtmUps8.gamma: 6.258981\n    test 520 line 102 toUtmUps8.scale: 1.052800\n    test 521 line 102 toUtmUps8.lat: 18.297493\n    test 522 line 102 toUtmUps8.lon: 19.244669\n    test 523 line 103 toUtmUps8.easting: 5127738.132976\n    test 524 line 103 toUtmUps8.northing: 6793804.304411\n    test 525 line 103 toUtmUps8.gamma: 50.557915\n    test 526 line 103 toUtmUps8.scale: 1.339412\n    test 527 line 103 toUtmUps8.lat: 40.834541\n    test 528 line 103 toUtmUps8.lon: 61.650750\n    test 529 line 104 toUtmUps8.easting: 8385525.148166\n    test 530 line 104 toUtmUps8.northing: 6924932.344306\n    test 531 line 104 toUtmUps8.gamma: 59.087561\n    test 532 line 104 toUtmUps8.scale: 1.990364\n    test 533 line 104 toUtmUps8.lat: 26.273247\n    test 534 line 104 toUtmUps8.lon: 74.926694\n    test 535 line 105 toUtmUps8.easting: 2297510.791909\n    test 536 line 105 toUtmUps8.northing: 2805666.962834\n    test 537 line 105 toUtmUps8.gamma: 9.301553\n    test 538 line 105 toUtmUps8.scale: 1.065508\n    test 539 line 105 toUtmUps8.lat: 23.698347\n    test 540 line 105 toUtmUps8.lon: 22.155657\n\n    test skipped (16): line 106 toUtmUps8.'12.364112546807 86.348578425071 13749544.9176345767153 8288728.3846500523233 75.033969786420407131 4.27058754359004466627'\n    test 541 line 107 toUtmUps8.easting: 317518.455546\n    test 542 line 107 toUtmUps8.northing: 1097517.583745\n    test 543 line 107 toUtmUps8.gamma: 0.499004\n    test 544 line 107 toUtmUps8.scale: 1.000848\n    test 545 line 107 toUtmUps8.lat: 9.916091\n    test 546 line 107 toUtmUps8.lon: 2.895277\n    test 547 line 108 toUtmUps8.easting: 3856035.184888\n    test 548 line 108 toUtmUps8.northing: 9141364.450290\n    test 549 line 108 toUtmUps8.gamma: 75.972763\n    test 550 line 108 toUtmUps8.scale: 1.186786\n    test 551 line 108 toUtmUps8.lat: 56.553876\n    test 552 line 108 toUtmUps8.lon: 78.215077\n    test 553 line 109 toUtmUps8.easting: 1457484.942823\n    test 554 line 109 toUtmUps8.northing: 9385297.101973\n    test 555 line 109 toUtmUps8.gamma: 66.784662\n    test 556 line 109 toUtmUps8.scale: 1.025660\n    test 557 line 109 toUtmUps8.lat: 75.957631\n    test 558 line 109 toUtmUps8.lon: 67.407383\n    test 559 line 110 toUtmUps8.easting: 1304934.901841\n    test 560 line 110 toUtmUps8.northing: 3604655.155715\n    test 561 line 110 toUtmUps8.gamma: 7.343989\n    test 562 line 110 toUtmUps8.scale: 1.020672\n    test 563 line 110 toUtmUps8.lat: 31.826531\n    test 564 line 110 toUtmUps8.lon: 13.731050\n    test 565 line 111 toUtmUps8.easting: 1399093.491792\n    test 566 line 111 toUtmUps8.northing: 8314607.120342\n    test 567 line 111 toUtmUps8.gamma: 38.630161\n    test 568 line 111 toUtmUps8.scale: 1.023625\n    test 569 line 111 toUtmUps8.lat: 70.542985\n    test 570 line 111 toUtmUps8.lon: 40.282055\n    test 571 line 112 toUtmUps8.easting: 356983.618540\n    test 572 line 112 toUtmUps8.northing: 4282309.048994\n    test 573 line 112 toUtmUps8.gamma: 2.561485\n    test 574 line 112 toUtmUps8.scale: 1.001170\n    test 575 line 112 toUtmUps8.lat: 38.617487\n    test 576 line 112 toUtmUps8.lon: 4.099838\n    test 577 line 113 toUtmUps8.easting: 9952911.325092  FAILED, KNOWN, expected 9952911.325091\n    test 578 line 113 toUtmUps8.northing: 1510288.212230  FAILED, KNOWN, expected 1510288.212229\n    test 579 line 113 toUtmUps8.gamma: 12.752154\n    test 580 line 113 toUtmUps8.scale: 2.511357\n    test 581 line 113 toUtmUps8.lat: 5.389447\n    test 582 line 113 toUtmUps8.lon: 66.729612\n    test 583 line 114 toUtmUps8.easting: 6367592.504007\n    test 584 line 114 toUtmUps8.northing: 1200437.077672\n    test 585 line 114 toUtmUps8.gamma: 8.338041\n    test 586 line 114 toUtmUps8.scale: 1.546210\n    test 587 line 114 toUtmUps8.lat: 6.995168\n    test 588 line 114 toUtmUps8.lon: 50.014763\n    test 589 line 115 toUtmUps8.easting: 4391263.676460\n    test 590 line 115 toUtmUps8.northing: 6325455.989408\n    test 591 line 115 toUtmUps8.gamma: 42.653541\n    test 592 line 115 toUtmUps8.scale: 1.245560\n    test 593 line 115 toUtmUps8.lat: 42.321894\n    test 594 line 115 toUtmUps8.lon: 53.784040\n    test 595 line 116 toUtmUps8.easting: 6209880.527527\n    test 596 line 116 toUtmUps8.northing: 2154754.449747\n    test 597 line 116 toUtmUps8.gamma: 14.919512\n    test 598 line 116 toUtmUps8.scale: 1.516560\n    test 599 line 116 toUtmUps8.lat: 12.698515\n    test 600 line 116 toUtmUps8.lon: 50.242047\n    test 601 line 117 toUtmUps8.easting: 1507053.688772\n    test 602 line 117 toUtmUps8.northing: 6261383.513280\n    test 603 line 117 toUtmUps8.gamma: 19.280373\n    test 604 line 117 toUtmUps8.scale: 1.027584\n    test 605 line 117 toUtmUps8.lat: 54.207636\n    test 606 line 117 toUtmUps8.lon: 23.325731\n    test 607 line 118 toUtmUps8.easting: 8332725.003777\n    test 608 line 118 toUtmUps8.northing: 3002712.329753\n    test 609 line 118 toUtmUps8.gamma: 24.059212\n    test 610 line 118 toUtmUps8.scale: 1.990450\n    test 611 line 118 toUtmUps8.lat: 13.224787\n    test 612 line 118 toUtmUps8.lon: 62.426698\n    test 613 line 119 toUtmUps8.easting: 3958910.085235\n    test 614 line 119 toUtmUps8.northing: 3462284.926102\n    test 615 line 119 toUtmUps8.gamma: 18.546398\n    test 616 line 119 toUtmUps8.scale: 1.199351\n    test 617 line 119 toUtmUps8.lat: 25.650282\n    test 618 line 119 toUtmUps8.lon: 37.710391\n\n    test skipped (17): line 120 toUtmUps8.'20.684773383075 82.849734261238 10452892.2820830090734 8000059.6051139389546 71.07524025411428855 2.6501109339363854772'\n    test 619 line 121 toUtmUps8.easting: 496148.253731\n    test 620 line 121 toUtmUps8.northing: 6388503.365043\n    test 621 line 121 toUtmUps8.gamma: 6.970955\n    test 622 line 121 toUtmUps8.scale: 1.002620\n    test 623 line 121 toUtmUps8.lat: 57.367533\n    test 624 line 121 toUtmUps8.lon: 8.260866\n    test 625 line 122 toUtmUps8.easting: 7375792.085850\n    test 626 line 122 toUtmUps8.northing: 5544624.072155\n    test 627 line 122 toUtmUps8.gamma: 44.510851\n    test 628 line 122 toUtmUps8.scale: 1.745898\n    test 629 line 122 toUtmUps8.lat: 25.958757\n    test 630 line 122 toUtmUps8.lon: 65.760477\n    test 631 line 123 toUtmUps8.easting: 2826258.041979\n    test 632 line 123 toUtmUps8.northing: 5167759.816959\n    test 633 line 123 toUtmUps8.gamma: 23.783897\n    test 634 line 123 toUtmUps8.scale: 1.099415\n    test 635 line 123 toUtmUps8.lat: 41.395848\n    test 636 line 123 toUtmUps8.lon: 33.661790\n    test 637 line 124 toUtmUps8.easting: 3958563.378851\n    test 638 line 124 toUtmUps8.northing: 8499923.231243\n    test 639 line 124 toUtmUps8.gamma: 66.570945\n    test 640 line 124 toUtmUps8.scale: 1.197296\n    test 641 line 124 toUtmUps8.lat: 54.266617\n    test 642 line 124 toUtmUps8.lon: 70.602199\n    test 643 line 125 toUtmUps8.easting: 4408189.533462\n    test 644 line 125 toUtmUps8.northing: 8046312.003642\n    test 645 line 125 toUtmUps8.gamma: 62.216959\n    test 646 line 125 toUtmUps8.scale: 1.246750\n    test 647 line 125 toUtmUps8.lat: 49.840393\n    test 648 line 125 toUtmUps8.lon: 68.036728\n    test 649 line 126 toUtmUps8.easting: 3629225.627512\n    test 650 line 126 toUtmUps8.northing: 6371258.454645\n    test 651 line 126 toUtmUps8.gamma: 38.881675\n    test 652 line 126 toUtmUps8.scale: 1.165511\n    test 653 line 126 toUtmUps8.lat: 46.306035\n    test 654 line 126 toUtmUps8.lon: 48.085828\n    test 655 line 127 toUtmUps8.easting: 602838.450710\n    test 656 line 127 toUtmUps8.northing: 4851370.637205\n    test 657 line 127 toUtmUps8.gamma: 5.160395\n    test 658 line 127 toUtmUps8.scale: 1.004073\n    test 659 line 127 toUtmUps8.lat: 43.570988\n    test 660 line 127 toUtmUps8.lon: 7.464494\n    test 661 line 128 toUtmUps8.easting: 764616.665051\n    test 662 line 128 toUtmUps8.northing: 2164299.337945\n    test 663 line 128 toUtmUps8.gamma: 2.429300\n    test 664 line 128 toUtmUps8.scale: 1.006835\n    test 665 line 128 toUtmUps8.lat: 19.427290\n    test 666 line 128 toUtmUps8.lon: 7.268247\n    test 667 line 129 toUtmUps8.easting: 5048953.021931\n    test 668 line 129 toUtmUps8.northing: 1885974.057398\n    test 669 line 129 toUtmUps8.gamma: 11.459804\n    test 670 line 129 toUtmUps8.scale: 1.332207\n    test 671 line 129 toUtmUps8.lat: 12.713794\n    test 672 line 129 toUtmUps8.lon: 42.507018\n    test 673 line 130 toUtmUps8.easting: 2293996.601155\n    test 674 line 130 toUtmUps8.northing: 2392408.644221\n    test 675 line 130 toUtmUps8.gamma: 7.791838\n    test 676 line 130 toUtmUps8.scale: 1.065348\n    test 677 line 130 toUtmUps8.lat: 20.238782\n    test 678 line 130 toUtmUps8.lon: 21.566068\n    test 679 line 131 toUtmUps8.easting: 1530603.839418\n    test 680 line 131 toUtmUps8.northing: 7287841.459898\n    test 681 line 131 toUtmUps8.gamma: 27.502921\n    test 682 line 131 toUtmUps8.scale: 1.028416\n    test 683 line 131 toUtmUps8.lat: 62.367847\n    test 684 line 131 toUtmUps8.lon: 30.438849\n    test 685 line 132 toUtmUps8.easting: 2660000.093152\n    test 686 line 132 toUtmUps8.northing: 5161982.213248\n    test 687 line 132 toUtmUps8.gamma: 22.629836\n    test 688 line 132 toUtmUps8.scale: 1.087851\n    test 689 line 132 toUtmUps8.lat: 41.891569\n    test 690 line 132 toUtmUps8.lon: 31.959547\n    test 691 line 133 toUtmUps8.easting: 5037478.329414\n    test 692 line 133 toUtmUps8.northing: 8768172.379908\n    test 693 line 133 toUtmUps8.gamma: 73.511182\n    test 694 line 133 toUtmUps8.scale: 1.325919\n    test 695 line 133 toUtmUps8.lat: 47.664248\n    test 696 line 133 toUtmUps8.lon: 77.630062\n    test 697 line 134 toUtmUps8.easting: 2289650.957799\n    test 698 line 134 toUtmUps8.northing: 8784328.593607\n    test 699 line 134 toUtmUps8.gamma: 60.786067\n    test 700 line 134 toUtmUps8.scale: 1.064346\n    test 701 line 134 toUtmUps8.lat: 67.259559\n    test 702 line 134 toUtmUps8.lon: 62.715293\n    test 703 line 135 toUtmUps8.easting: 647913.889744\n    test 704 line 135 toUtmUps8.northing: 6742382.228217\n    test 705 line 135 toUtmUps8.gamma: 10.252667\n    test 706 line 135 toUtmUps8.scale: 1.004748\n    test 707 line 135 toUtmUps8.lat: 60.295381\n    test 708 line 135 toUtmUps8.lon: 11.763097\n    test 709 line 136 toUtmUps8.easting: 1118372.698566\n    test 710 line 136 toUtmUps8.northing: 9040627.942263\n    test 711 line 136 toUtmUps8.gamma: 48.936803\n    test 712 line 136 toUtmUps8.scale: 1.014920\n    test 713 line 136 toUtmUps8.lat: 76.878914\n    test 714 line 136 toUtmUps8.lon: 49.685773\n    test 715 line 137 toUtmUps8.easting: 440696.510070\n    test 716 line 137 toUtmUps8.northing: 5500355.826297\n    test 717 line 137 toUtmUps8.gamma: 4.636104\n    test 718 line 137 toUtmUps8.scale: 1.001986\n    test 719 line 137 toUtmUps8.lat: 49.495349\n    test 720 line 137 toUtmUps8.lon: 6.087551\n    test 721 line 138 toUtmUps8.easting: 601728.149727\n    test 722 line 138 toUtmUps8.northing: 9095352.048149\n    test 723 line 138 toUtmUps8.gamma: 33.435771\n    test 724 line 138 toUtmUps8.scale: 1.004027\n    test 725 line 138 toUtmUps8.lat: 80.297265\n    test 726 line 138 toUtmUps8.lon: 33.816372\n    test 727 line 139 toUtmUps8.easting: 3481444.777827\n    test 728 line 139 toUtmUps8.northing: 291665.708749\n    test 729 line 139 toUtmUps8.gamma: 1.314726\n    test 730 line 139 toUtmUps8.scale: 1.153534\n    test 731 line 139 toUtmUps8.lat: 2.286437\n    test 732 line 139 toUtmUps8.lon: 29.855149\n    test 733 line 140 toUtmUps8.easting: 3515304.901524\n    test 734 line 140 toUtmUps8.northing: 1443981.882918\n    test 735 line 140 toUtmUps8.gamma: 6.641638\n    test 736 line 140 toUtmUps8.scale: 1.156509\n    test 737 line 140 toUtmUps8.lat: 11.264457\n    test 738 line 140 toUtmUps8.lon: 30.743907\n    test 739 line 141 toUtmUps8.easting: 160012.186959\n    test 740 line 141 toUtmUps8.northing: 3922609.253231\n    test 741 line 141 toUtmUps8.gamma: 1.022225\n    test 742 line 141 toUtmUps8.scale: 0.999916\n    test 743 line 141 toUtmUps8.lat: 35.434073\n    test 744 line 141 toUtmUps8.lon: 1.762795\n    test 745 line 142 toUtmUps8.easting: 4163744.245622\n    test 746 line 142 toUtmUps8.northing: 936884.674804\n    test 747 line 142 toUtmUps8.gamma: 4.892559\n    test 748 line 142 toUtmUps8.scale: 1.222164\n    test 749 line 142 toUtmUps8.lat: 6.923695\n    test 750 line 142 toUtmUps8.lon: 35.289456\n    test 751 line 143 toUtmUps8.easting: 6155200.017926\n    test 752 line 143 toUtmUps8.northing: 6926306.628390\n    test 753 line 143 toUtmUps8.gamma: 55.103258\n    test 754 line 143 toUtmUps8.scale: 1.500556\n    test 755 line 143 toUtmUps8.lat: 36.129672\n    test 756 line 143 toUtmUps8.lon: 67.533176\n\n    test skipped (18): line 144 toUtmUps8.'4.406528980638 81.965734206053 16263383.2854400911299 3591296.7313406507021 36.040254103487111035 6.58928781751888396522'\n\n    test skipped (19): line 145 toUtmUps8.'8.474589009114 81.129945130597 14220995.5153984992101 5100587.4575033509156 47.314258427760984573 4.69320221531225352172'\n    test 757 line 146 toUtmUps8.easting: 3173034.802372\n    test 758 line 146 toUtmUps8.northing: 7263421.942957\n    test 759 line 146 toUtmUps8.gamma: 45.215808\n    test 760 line 146 toUtmUps8.scale: 1.125410\n    test 761 line 146 toUtmUps8.lat: 53.907276\n    test 762 line 146 toUtmUps8.lon: 51.252904\n\n    test skipped (20): line 147 toUtmUps8.'22.120544817855 85.756781608119 10253274.0922039670098 8867574.2997916978265 79.198250285604314115 2.57237240666878171579'\n    test 763 line 148 toUtmUps8.easting: 2415561.483230\n    test 764 line 148 toUtmUps8.northing: 8813225.217097\n    test 765 line 148 toUtmUps8.gamma: 62.548978\n    test 766 line 148 toUtmUps8.scale: 1.071748\n    test 767 line 148 toUtmUps8.lat: 66.444100\n    test 768 line 148 toUtmUps8.lon: 64.532960\n    test 769 line 149 toUtmUps8.easting: 9589179.293294  FAILED, KNOWN, expected 9589179.293295\n    test 770 line 149 toUtmUps8.northing: 1777680.784144  FAILED, KNOWN, expected 1777680.784143\n    test 771 line 149 toUtmUps8.gamma: 14.838483\n    test 772 line 149 toUtmUps8.scale: 2.380716\n    test 773 line 149 toUtmUps8.lat: 6.670965\n    test 774 line 149 toUtmUps8.lon: 65.660408\n    test 775 line 150 toUtmUps8.easting: 727939.438391\n    test 776 line 150 toUtmUps8.northing: 3684363.236810\n    test 777 line 150 toUtmUps8.gamma: 4.266227\n    test 778 line 150 toUtmUps8.scale: 1.006140\n    test 779 line 150 toUtmUps8.lat: 33.054057\n    test 780 line 150 toUtmUps8.lon: 7.787458\n    test 781 line 151 toUtmUps8.easting: 1250765.991085\n    test 782 line 151 toUtmUps8.northing: 792869.242719\n    test 783 line 151 toUtmUps8.gamma: 1.396497\n    test 784 line 151 toUtmUps8.scale: 1.019026\n    test 785 line 151 toUtmUps8.lat: 7.035525\n    test 786 line 151 toUtmUps8.lon: 11.253707\n    test 787 line 152 toUtmUps8.easting: 710421.705887\n    test 788 line 152 toUtmUps8.northing: 5019406.075928\n    test 789 line 152 toUtmUps8.gamma: 6.393949\n    test 790 line 152 toUtmUps8.scale: 1.005812\n    test 791 line 152 toUtmUps8.lat: 44.971340\n    test 792 line 152 toUtmUps8.lon: 9.009304\n    test 793 line 153 toUtmUps8.easting: 4600995.074643\n    test 794 line 153 toUtmUps8.northing: 4505712.084593\n    test 795 line 153 toUtmUps8.gamma: 27.997458\n    test 796 line 153 toUtmUps8.scale: 1.271841\n    test 797 line 153 toUtmUps8.lat: 30.821397\n    test 798 line 153 toUtmUps8.lon: 45.970577\n    test 799 line 154 toUtmUps8.easting: 557642.627782\n    test 800 line 154 toUtmUps8.northing: 7006911.251644\n    test 801 line 154 toUtmUps8.gamma: 9.769903\n    test 802 line 154 toUtmUps8.scale: 1.003411\n    test 803 line 154 toUtmUps8.lat: 62.763886\n    test 804 line 154 toUtmUps8.lon: 10.960144\n    test 805 line 155 toUtmUps8.easting: 4635062.294291\n    test 806 line 155 toUtmUps8.northing: 2702556.153311\n    test 807 line 155 toUtmUps8.gamma: 15.779547\n    test 808 line 155 toUtmUps8.scale: 1.277178\n    test 809 line 155 toUtmUps8.lat: 18.888611\n    test 810 line 155 toUtmUps8.lon: 41.009871\n\n    test skipped (21): line 156 toUtmUps8.'7.524119461376 81.050715469439 14554962.2559189870471 4716639.9085720199214 44.192751352918149954 4.96001986321419027847'\n    test 811 line 157 toUtmUps8.easting: 882126.661736\n    test 812 line 157 toUtmUps8.northing: 7947612.369506\n    test 813 line 157 toUtmUps8.gamma: 22.429487\n    test 814 line 157 toUtmUps8.scale: 1.009132\n    test 815 line 157 toUtmUps8.lat: 70.063902\n    test 816 line 157 toUtmUps8.lon: 23.705255\n\n    test skipped (22): line 158 toUtmUps8.'3.556525834215 88.363529198819 20262021.6459832969292 8113827.8207957955275 76.936057264555500879 10.34909168211805703369'\n    test 817 line 159 toUtmUps8.easting: 6500508.399850\n    test 818 line 159 toUtmUps8.northing: 6956476.342368\n    test 819 line 159 toUtmUps8.gamma: 56.237116\n    test 820 line 159 toUtmUps8.scale: 1.563162\n    test 821 line 159 toUtmUps8.lat: 34.551257\n    test 822 line 159 toUtmUps8.lon: 69.111091\n    test 823 line 160 toUtmUps8.easting: 3884036.641314\n    test 824 line 160 toUtmUps8.northing: 6890167.411733\n    test 825 line 160 toUtmUps8.gamma: 45.760130\n    test 826 line 160 toUtmUps8.scale: 1.190167\n    test 827 line 160 toUtmUps8.lat: 47.929051\n    test 828 line 160 toUtmUps8.lon: 54.103418\n    test 829 line 161 toUtmUps8.easting: 217855.546078\n    test 830 line 161 toUtmUps8.northing: 6184108.122568\n    test 831 line 161 toUtmUps8.gamma: 2.870993\n    test 832 line 161 toUtmUps8.scale: 1.000182\n    test 833 line 161 toUtmUps8.lat: 55.753536\n    test 834 line 161 toUtmUps8.lon: 3.471798\n\n    test skipped (23): line 162 toUtmUps8.'18.530847071862 86.555312055898 11384139.290401676268 8893889.9495562311576 79.77485364572019046 3.02467156922968230025'\n    test 835 line 163 toUtmUps8.easting: 3469855.989805\n    test 836 line 163 toUtmUps8.northing: 7723193.799228\n    test 837 line 163 toUtmUps8.gamma: 53.114700\n    test 838 line 163 toUtmUps8.scale: 1.150540\n    test 839 line 163 toUtmUps8.lat: 54.510125\n    test 840 line 163 toUtmUps8.lon: 58.556056\n\n    test skipped (24): line 164 toUtmUps8.'42.864161881687 84.866325602975 5926165.994939154109 9385463.7327467371322 82.506981261616342016 1.45975761947329382411'\n    test 841 line 165 toUtmUps8.easting: 5798639.662224\n    test 842 line 165 toUtmUps8.northing: 5305387.640916\n    test 843 line 165 toUtmUps8.gamma: 38.617257\n    test 844 line 165 toUtmUps8.scale: 1.442263\n    test 845 line 165 toUtmUps8.lat: 30.911943\n    test 846 line 165 toUtmUps8.lon: 57.114102\n    test 847 line 166 toUtmUps8.easting: 9464.934388\n    test 848 line 166 toUtmUps8.northing: 6489121.624944\n    test 849 line 166 toUtmUps8.gamma: 0.138696\n    test 850 line 166 toUtmUps8.scale: 0.999601\n    test 851 line 166 toUtmUps8.lat: 58.542493\n    test 852 line 166 toUtmUps8.lon: 0.162593\n\n    test skipped (25): line 167 toUtmUps8.'15.022689088683 85.792615487152 12575834.2756139069875 8356610.8954857643175 75.235223160840771295 3.59944161831319404851'\n    test 853 line 168 toUtmUps8.easting: 2719653.543469\n    test 854 line 168 toUtmUps8.northing: 9362389.163495\n    test 855 line 168 toUtmUps8.gamma: 76.049670\n    test 856 line 168 toUtmUps8.scale: 1.091315\n    test 857 line 168 toUtmUps8.lat: 65.692275\n    test 858 line 168 toUtmUps8.lon: 77.241377\n    test 859 line 169 toUtmUps8.easting: 4845341.924698\n    test 860 line 169 toUtmUps8.northing: 8710522.326901\n    test 861 line 169 toUtmUps8.gamma: 72.320942\n    test 862 line 169 toUtmUps8.scale: 1.300382\n    test 863 line 169 toUtmUps8.lat: 48.806211\n    test 864 line 169 toUtmUps8.lon: 76.486365\n\n    test skipped (26): line 170 toUtmUps8.'56.436024794624 82.61156798689 3935261.5227628794258 9454271.6490618694486 81.162334302626197333 1.19476734082123451158'\n    test 865 line 171 toUtmUps8.easting: 7074299.823000\n    test 866 line 171 toUtmUps8.northing: 1648736.065055\n    test 867 line 171 toUtmUps8.gamma: 12.145925\n    test 868 line 171 toUtmUps8.scale: 1.687551\n    test 869 line 171 toUtmUps8.lat: 8.766053\n    test 870 line 171 toUtmUps8.lon: 54.367539\n    test 871 line 172 toUtmUps8.easting: 3689072.579308\n    test 872 line 172 toUtmUps8.northing: 2230802.665211\n    test 873 line 172 toUtmUps8.gamma: 10.856248\n    test 874 line 172 toUtmUps8.scale: 1.172689\n    test 875 line 172 toUtmUps8.lat: 17.095495\n    test 876 line 172 toUtmUps8.lon: 33.059128\n    test 877 line 173 toUtmUps8.easting: 8102565.885587\n    test 878 line 173 toUtmUps8.northing: 5167396.617580\n    test 879 line 173 toUtmUps8.gamma: 42.324886\n    test 880 line 173 toUtmUps8.scale: 1.921927\n    test 881 line 173 toUtmUps8.lat: 22.142861\n    test 882 line 173 toUtmUps8.lon: 67.200684\n    test 883 line 174 toUtmUps8.easting: 8181271.353564\n    test 884 line 174 toUtmUps8.northing: 4425436.547185\n    test 885 line 174 toUtmUps8.gamma: 35.900845\n    test 886 line 174 toUtmUps8.scale: 1.945017\n    test 887 line 174 toUtmUps8.lat: 19.222623\n    test 888 line 174 toUtmUps8.lon: 65.180785\n    test 889 line 175 toUtmUps8.easting: 767067.394003\n    test 890 line 175 toUtmUps8.northing: 3701745.857296\n    test 891 line 175 toUtmUps8.gamma: 4.519201\n    test 892 line 175 toUtmUps8.scale: 1.006863\n    test 893 line 175 toUtmUps8.lat: 33.182474\n    test 894 line 175 toUtmUps8.lon: 8.216952\n    test 895 line 176 toUtmUps8.easting: 6688114.168572\n    test 896 line 176 toUtmUps8.northing: 2052857.299639\n    test 897 line 176 toUtmUps8.gamma: 14.766191\n    test 898 line 176 toUtmUps8.scale: 1.607200\n    test 899 line 176 toUtmUps8.lat: 11.417963\n    test 900 line 176 toUtmUps8.lon: 52.808691\n    test 901 line 177 toUtmUps8.easting: 5608408.773761\n    test 902 line 177 toUtmUps8.northing: 3859055.659110\n    test 903 line 177 toUtmUps8.gamma: 26.244151\n    test 904 line 177 toUtmUps8.scale: 1.413463\n    test 905 line 177 toUtmUps8.lat: 23.836688\n    test 906 line 177 toUtmUps8.lon: 50.500180\n    test 907 line 178 toUtmUps8.easting: 3836942.765275\n    test 908 line 178 toUtmUps8.northing: 6415467.634326\n    test 909 line 178 toUtmUps8.gamma: 40.575885\n    test 910 line 178 toUtmUps8.scale: 1.185615\n    test 911 line 178 toUtmUps8.lat: 45.550020\n    test 912 line 178 toUtmUps8.lon: 50.148036\n    test 913 line 179 toUtmUps8.easting: 1298730.366025\n    test 914 line 179 toUtmUps8.northing: 6021453.000792\n    test 915 line 179 toUtmUps8.gamma: 15.613320\n    test 916 line 179 toUtmUps8.scale: 1.020367\n    test 917 line 179 toUtmUps8.lat: 52.746079\n    test 918 line 179 toUtmUps8.lon: 19.343926\n    test 919 line 180 toUtmUps8.easting: 416934.289208\n    test 920 line 180 toUtmUps8.northing: 7295683.451705\n    test 921 line 180 toUtmUps8.gamma: 8.238232\n    test 922 line 180 toUtmUps8.scale: 1.001729\n    test 923 line 180 toUtmUps8.lat: 65.513348\n    test 924 line 180 toUtmUps8.lon: 9.039529\n    test 925 line 181 toUtmUps8.easting: 4336076.850889\n    test 926 line 181 toUtmUps8.northing: 7617975.722779\n    test 927 line 181 toUtmUps8.gamma: 56.537088\n    test 928 line 181 toUtmUps8.scale: 1.238582\n    test 929 line 181 toUtmUps8.lat: 48.709795\n    test 930 line 181 toUtmUps8.lon: 63.554005\n    test 931 line 182 toUtmUps8.easting: 168047.336980\n    test 932 line 182 toUtmUps8.northing: 2185000.046530\n    test 933 line 182 toUtmUps8.gamma: 0.542187\n    test 934 line 182 toUtmUps8.scale: 0.999949\n    test 935 line 182 toUtmUps8.lat: 19.753509\n    test 936 line 182 toUtmUps8.lon: 1.603846\n    test 937 line 183 toUtmUps8.easting: 8276281.328790\n    test 938 line 183 toUtmUps8.northing: 263444.350545\n    test 939 line 183 toUtmUps8.gamma: 2.071435\n    test 940 line 183 toUtmUps8.scale: 1.980314\n    test 941 line 183 toUtmUps8.lat: 1.202816\n    test 942 line 183 toUtmUps8.lon: 59.377276\n    test 943 line 184 toUtmUps8.easting: 4772573.810710\n    test 944 line 184 toUtmUps8.northing: 6765710.336002\n    test 945 line 184 toUtmUps8.gamma: 48.857561\n    test 946 line 184 toUtmUps8.scale: 1.291911\n    test 947 line 184 toUtmUps8.lat: 42.564975\n    test 948 line 184 toUtmUps8.lon: 59.356947\n    test 949 line 185 toUtmUps8.easting: 5427755.074639\n    test 950 line 185 toUtmUps8.northing: 1556055.820924\n    test 951 line 185 toUtmUps8.gamma: 9.862178\n    test 952 line 185 toUtmUps8.scale: 1.387394\n    test 953 line 185 toUtmUps8.lat: 10.090572\n    test 954 line 185 toUtmUps8.lon: 44.604132\n    test 955 line 186 toUtmUps8.easting: 11588458.616240  FAILED, KNOWN, expected 11588458.616041\n    test 956 line 186 toUtmUps8.northing: 5707993.922683  FAILED, KNOWN, expected 5707993.922613\n    test 957 line 186 toUtmUps8.gamma: 50.784827\n    test 958 line 186 toUtmUps8.scale: 3.149567\n    test 959 line 186 toUtmUps8.lat: 14.133028\n    test 960 line 186 toUtmUps8.lon: 78.097533\n    test 961 line 187 toUtmUps8.easting: 7152433.802688\n    test 962 line 187 toUtmUps8.northing: 761390.695844\n    test 963 line 187 toUtmUps8.gamma: 5.607350\n    test 964 line 187 toUtmUps8.scale: 1.705261\n    test 965 line 187 toUtmUps8.lat: 4.031123\n    test 966 line 187 toUtmUps8.lon: 54.048782\n    test 967 line 188 toUtmUps8.easting: 3105651.390901\n    test 968 line 188 toUtmUps8.northing: 9426026.169064\n    test 969 line 188 toUtmUps8.gamma: 78.750206\n    test 970 line 188 toUtmUps8.scale: 1.119737\n    test 971 line 188 toUtmUps8.lat: 62.746603\n    test 972 line 188 toUtmUps8.lon: 79.968641\n    test 973 line 189 toUtmUps8.easting: 2959009.639022\n    test 974 line 189 toUtmUps8.northing: 8339242.269282\n    test 975 line 189 toUtmUps8.gamma: 58.460865\n    test 976 line 189 toUtmUps8.scale: 1.108554\n    test 977 line 189 toUtmUps8.lat: 60.626429\n    test 978 line 189 toUtmUps8.lon: 61.851551\n    test 979 line 190 toUtmUps8.easting: 8640472.267145\n    test 980 line 190 toUtmUps8.northing: 6230320.417931\n    test 981 line 190 toUtmUps8.gamma: 52.816810\n    test 982 line 190 toUtmUps8.scale: 2.062973\n    test 983 line 190 toUtmUps8.lat: 23.600626\n    test 984 line 190 toUtmUps8.lon: 72.811634\n    test 985 line 191 toUtmUps8.easting: 811352.108932\n    test 986 line 191 toUtmUps8.northing: 9816129.813481\n    test 987 line 191 toUtmUps8.gamma: 77.299184\n    test 988 line 191 toUtmUps8.scale: 1.007651\n    test 989 line 191 toUtmUps8.lat: 82.572236\n    test 990 line 191 toUtmUps8.lon: 77.402323\n    test 991 line 192 toUtmUps8.easting: 6521874.973458\n    test 992 line 192 toUtmUps8.northing: 1053612.479744\n    test 993 line 192 toUtmUps8.gamma: 7.407328\n    test 994 line 192 toUtmUps8.scale: 1.575529\n    test 995 line 192 toUtmUps8.lat: 6.030051\n    test 996 line 192 toUtmUps8.lon: 50.783505\n    test 997 line 193 toUtmUps8.easting: 3477983.997875\n    test 998 line 193 toUtmUps8.northing: 5651613.325947\n    test 999 line 193 toUtmUps8.gamma: 31.530673\n    test 1000 line 193 toUtmUps8.scale: 1.151875\n    test 1001 line 193 toUtmUps8.lat: 42.411523\n    test 1002 line 193 toUtmUps8.lon: 42.258009\n    test 1003 line 194 toUtmUps8.easting: 629892.822243\n    test 1004 line 194 toUtmUps8.northing: 3283914.910451\n    test 1005 line 194 toUtmUps8.gamma: 3.210482\n    test 1006 line 194 toUtmUps8.scale: 1.004499\n    test 1007 line 194 toUtmUps8.lat: 29.526120\n    test 1008 line 194 toUtmUps8.lon: 6.493069\n    test 1009 line 195 toUtmUps8.easting: 3381879.687227\n    test 1010 line 195 toUtmUps8.northing: 5103629.325665\n    test 1011 line 195 toUtmUps8.gamma: 26.748108\n    test 1012 line 195 toUtmUps8.scale: 1.143559\n    test 1013 line 195 toUtmUps8.lat: 39.021853\n    test 1014 line 195 toUtmUps8.lon: 38.641779\n    test 1015 line 196 toUtmUps8.easting: 2815986.534177\n    test 1016 line 196 toUtmUps8.northing: 9387029.120718\n    test 1017 line 196 toUtmUps8.gamma: 76.967262\n    test 1018 line 196 toUtmUps8.scale: 1.098032\n    test 1019 line 196 toUtmUps8.lat: 64.971850\n    test 1020 line 196 toUtmUps8.lon: 78.151893\n    test 1021 line 197 toUtmUps8.easting: 3398195.889603\n    test 1022 line 197 toUtmUps8.northing: 9138936.031490\n    test 1023 line 197 toUtmUps8.gamma: 74.477499\n    test 1024 line 197 toUtmUps8.scale: 1.144009\n    test 1025 line 197 toUtmUps8.lat: 59.961819\n    test 1026 line 197 toUtmUps8.lon: 76.473422\n    test 1027 line 198 toUtmUps8.easting: 2421734.754637\n    test 1028 line 198 toUtmUps8.northing: 5002372.094991\n    test 1029 line 198 toUtmUps8.gamma: 20.017082\n    test 1030 line 198 toUtmUps8.scale: 1.072592\n    test 1031 line 198 toUtmUps8.lat: 41.374040\n    test 1032 line 198 toUtmUps8.lon: 28.848343\n    test 1033 line 199 toUtmUps8.easting: 2360869.895525\n    test 1034 line 199 toUtmUps8.northing: 9553298.449536\n    test 1035 line 199 toUtmUps8.gamma: 78.848205\n    test 1036 line 199 toUtmUps8.scale: 1.068453\n    test 1037 line 199 toUtmUps8.lat: 68.946087\n    test 1038 line 199 toUtmUps8.lon: 79.574523\n\n    test skipped (27): line 200 toUtmUps8.'79.275096210569 83.551272329394 1196539.9721941076965 9861920.8362302532842 83.437668440198132309 1.01713723718699411107'\n    test 1039 line 201 toUtmUps8.easting: 1327758.704795\n    test 1040 line 201 toUtmUps8.northing: 2375509.241683\n    test 1041 line 201 toUtmUps8.gamma: 4.617572\n    test 1042 line 201 toUtmUps8.scale: 1.021465\n    test 1043 line 201 toUtmUps8.lat: 21.000252\n    test 1044 line 201 toUtmUps8.lon: 12.697444\n    test 1045 line 202 toUtmUps8.easting: 2070860.327644\n    test 1046 line 202 toUtmUps8.northing: 8604500.719581\n    test 1047 line 202 toUtmUps8.gamma: 54.722761\n    test 1048 line 202 toUtmUps8.scale: 1.052469\n    test 1049 line 202 toUtmUps8.lat: 68.015227\n    test 1050 line 202 toUtmUps8.lon: 56.732419\n    test 1051 line 203 toUtmUps8.easting: 6564776.654864\n    test 1052 line 203 toUtmUps8.northing: 8171207.177379\n    test 1053 line 203 toUtmUps8.gamma: 69.237523\n    test 1054 line 203 toUtmUps8.scale: 1.573894\n    test 1055 line 203 toUtmUps8.lat: 37.423675\n    test 1056 line 203 toUtmUps8.lon: 76.947359\n    test 1057 line 204 toUtmUps8.easting: 592653.553821\n    test 1058 line 204 toUtmUps8.northing: 6125529.810052\n    test 1059 line 204 toUtmUps8.gamma: 7.600785\n    test 1060 line 204 toUtmUps8.scale: 1.003912\n    test 1061 line 204 toUtmUps8.lat: 54.922707\n    test 1062 line 204 toUtmUps8.lon: 9.260818\n    test 1063 line 205 toUtmUps8.easting: 693459.671821\n    test 1064 line 205 toUtmUps8.northing: 6943779.991032\n    test 1065 line 205 toUtmUps8.gamma: 11.787587\n    test 1066 line 205 toUtmUps8.scale: 1.005496\n    test 1067 line 205 toUtmUps8.lat: 61.982810\n    test 1068 line 205 toUtmUps8.lon: 13.299659\n    test 1069 line 206 toUtmUps8.easting: 1838956.187625\n    test 1070 line 206 toUtmUps8.northing: 3511959.612381\n    test 1071 line 206 toUtmUps8.gamma: 9.844313\n    test 1072 line 206 toUtmUps8.scale: 1.041603\n    test 1073 line 206 toUtmUps8.lat: 30.324214\n    test 1074 line 206 toUtmUps8.lon: 18.959769\n    test 1075 line 207 toUtmUps8.easting: 4460690.884597\n    test 1076 line 207 toUtmUps8.northing: 5541873.235403\n    test 1077 line 207 toUtmUps8.gamma: 35.768613\n    test 1078 line 207 toUtmUps8.scale: 1.254179\n    test 1079 line 207 toUtmUps8.lat: 37.629667\n    test 1080 line 207 toUtmUps8.lon: 49.649131\n    test 1081 line 208 toUtmUps8.easting: 2311168.998941\n    test 1082 line 208 toUtmUps8.northing: 9480561.869119\n    test 1083 line 208 toUtmUps8.gamma: 76.828257\n    test 1084 line 208 toUtmUps8.scale: 1.065556\n    test 1085 line 208 toUtmUps8.lat: 69.225574\n    test 1086 line 208 toUtmUps8.lon: 77.656135\n    test 1087 line 209 toUtmUps8.easting: 4111775.114451\n    test 1088 line 209 toUtmUps8.northing: 6509014.348792\n    test 1089 line 209 toUtmUps8.gamma: 43.052130\n    test 1090 line 209 toUtmUps8.scale: 1.214125\n    test 1091 line 209 toUtmUps8.lat: 44.698478\n    test 1092 line 209 toUtmUps8.lon: 52.979304\n    test 1093 line 210 toUtmUps8.easting: 75358.261962\n    test 1094 line 210 toUtmUps8.northing: 7711258.662251\n    test 1095 line 210 toUtmUps8.gamma: 1.806297\n    test 1096 line 210 toUtmUps8.scale: 0.999669\n    test 1097 line 210 toUtmUps8.lat: 69.499594\n    test 1098 line 210 toUtmUps8.lon: 1.928336\n\n    test skipped (28): line 211 toUtmUps8.'27.981363604998 86.061112755721 8781885.2291162503299 9184776.4522114918448 81.795538514711932534 2.09490761781464961377'\n    test 1099 line 212 toUtmUps8.easting: 954378.415174\n    test 1100 line 212 toUtmUps8.northing: 7449110.669807\n    test 1101 line 212 toUtmUps8.gamma: 19.380657\n    test 1102 line 212 toUtmUps8.scale: 1.010768\n    test 1103 line 212 toUtmUps8.lat: 65.699839\n    test 1104 line 212 toUtmUps8.lon: 21.104725\n    test 1105 line 213 toUtmUps8.easting: 720971.793706\n    test 1106 line 213 toUtmUps8.northing: 5265195.121555\n    test 1107 line 213 toUtmUps8.gamma: 7.002995\n    test 1108 line 213 toUtmUps8.scale: 1.005995\n    test 1109 line 213 toUtmUps8.lat: 47.143648\n    test 1110 line 213 toUtmUps8.lon: 9.512189\n    test 1111 line 214 toUtmUps8.easting: 561561.493937\n    test 1112 line 214 toUtmUps8.northing: 989910.236221\n    test 1113 line 214 toUtmUps8.gamma: 0.793118\n    test 1114 line 214 toUtmUps8.scale: 1.003505\n    test 1115 line 214 toUtmUps8.lat: 8.920167\n    test 1116 line 214 toUtmUps8.lon: 5.101513\n    test 1117 line 215 toUtmUps8.easting: 3446829.634468\n    test 1118 line 215 toUtmUps8.northing: 9232868.155664\n    test 1119 line 215 toUtmUps8.gamma: 76.279075\n    test 1120 line 215 toUtmUps8.scale: 1.148263\n    test 1121 line 215 toUtmUps8.lat: 59.778971\n    test 1122 line 215 toUtmUps8.lon: 78.080322\n\n    test skipped (29): line 216 toUtmUps8.'55.865310107291 87.384288430943 4048307.5459092527942 9800416.4229977935137 86.843918034217523739 1.20649504624906774925'\n    test 1123 line 217 toUtmUps8.easting: 8973188.480293\n    test 1124 line 217 toUtmUps8.northing: 7042230.087021\n    test 1125 line 217 toUtmUps8.gamma: 60.872456\n    test 1126 line 217 toUtmUps8.scale: 2.156098\n    test 1127 line 217 toUtmUps8.lat: 24.310973\n    test 1128 line 217 toUtmUps8.lon: 76.823777\n    test 1129 line 218 toUtmUps8.easting: 126314.191618\n    test 1130 line 218 toUtmUps8.northing: 396006.687921\n    test 1131 line 218 toUtmUps8.gamma: 0.071065\n    test 1132 line 218 toUtmUps8.scale: 0.999798\n    test 1133 line 218 toUtmUps8.lat: 3.582041\n    test 1134 line 218 toUtmUps8.lon: 1.137286\n    test 1135 line 219 toUtmUps8.easting: 5247652.345647\n    test 1136 line 219 toUtmUps8.northing: 8670513.359752\n    test 1137 line 219 toUtmUps8.gamma: 72.700498\n    test 1138 line 219 toUtmUps8.scale: 1.355272\n    test 1139 line 219 toUtmUps8.lat: 46.124233\n    test 1140 line 219 toUtmUps8.lon: 77.313118\n\n    test skipped (30): line 220 toUtmUps8.'31.17139056295 87.104503768139 8103656.8381187232079 9469794.014736839373 84.490673011906282841 1.91216400164486142107'\n    test 1141 line 221 toUtmUps8.easting: 6300112.758236\n    test 1142 line 221 toUtmUps8.northing: 93835.917364\n    test 1143 line 221 toUtmUps8.gamma: 0.644805\n    test 1144 line 221 toUtmUps8.scale: 1.534073\n    test 1145 line 221 toUtmUps8.lat: 0.553171\n    test 1146 line 221 toUtmUps8.lon: 49.117104\n    test 1147 line 222 toUtmUps8.easting: 3894813.593782\n    test 1148 line 222 toUtmUps8.northing: 4833832.341027\n    test 1149 line 222 toUtmUps8.gamma: 27.453298\n    test 1150 line 222 toUtmUps8.scale: 1.192135\n    test 1151 line 222 toUtmUps8.lat: 35.361587\n    test 1152 line 222 toUtmUps8.lon: 41.860599\n    test 1153 line 223 toUtmUps8.easting: 402511.346712\n    test 1154 line 223 toUtmUps8.northing: 3520621.561911\n    test 1155 line 223 toUtmUps8.gamma: 2.238474\n    test 1156 line 223 toUtmUps8.scale: 1.001599\n    test 1157 line 223 toUtmUps8.lat: 31.750314\n    test 1158 line 223 toUtmUps8.lon: 4.248167\n    test 1159 line 224 toUtmUps8.easting: 5357378.503148\n    test 1160 line 224 toUtmUps8.northing: 2772997.602234\n    test 1161 line 224 toUtmUps8.gamma: 17.823560\n    test 1162 line 224 toUtmUps8.scale: 1.376031\n    test 1163 line 224 toUtmUps8.lat: 17.924336\n    test 1164 line 224 toUtmUps8.lon: 46.096402\n    test 1165 line 225 toUtmUps8.easting: 2807553.985866\n    test 1166 line 225 toUtmUps8.northing: 8177847.980275\n    test 1167 line 225 toUtmUps8.gamma: 54.680045\n    test 1168 line 225 toUtmUps8.scale: 1.097531\n    test 1169 line 225 toUtmUps8.lat: 60.931488\n    test 1170 line 225 toUtmUps8.lon: 58.221214\n\n    test skipped (31): line 226 toUtmUps8.'5.358150979521 87.556213284144 18289045.16650076146 7792942.3396035398889 73.216494415207315628 8.09800850850277481729'\n\n    test skipped (32): line 227 toUtmUps8.'28.616673489124 80.452426461437 8376822.4595378634541 8128174.6238782329989 70.920116640676321501 1.98487312027093768388'\n    test 1171 line 228 toUtmUps8.easting: 11898068.352950  FAILED, KNOWN, expected 11898068.353272\n    test 1172 line 228 toUtmUps8.northing: 4772439.493355  FAILED, KNOWN, expected 4772439.493697\n    test 1173 line 228 toUtmUps8.gamma: 42.613968\n    test 1174 line 228 toUtmUps8.scale: 3.314412\n    test 1175 line 228 toUtmUps8.lat: 11.709763\n    test 1176 line 228 toUtmUps8.lon: 76.760295\n    test 1177 line 229 toUtmUps8.easting: 10550946.939052  FAILED, KNOWN, expected 10550946.939050\n    test 1178 line 229 toUtmUps8.northing: 3851968.815305  FAILED, KNOWN, expected 3851968.815295\n    test 1179 line 229 toUtmUps8.gamma: 33.383025\n    test 1180 line 229 toUtmUps8.scale: 2.724754\n    test 1181 line 229 toUtmUps8.lat: 12.009498\n    test 1182 line 229 toUtmUps8.lon: 71.782351\n\n    test skipped (33): line 230 toUtmUps8.'37.62978386356 85.795687334213 6828299.1236065501034 9394803.2274626281036 83.181386462369626591 1.62435875189611017521'\n    test 1183 line 231 toUtmUps8.easting: 11162550.334001  FAILED, KNOWN, expected 11162550.334022\n    test 1184 line 231 toUtmUps8.northing: 2640267.279546  FAILED, KNOWN, expected 2640267.279593\n    test 1185 line 231 toUtmUps8.gamma: 23.145404\n    test 1186 line 231 toUtmUps8.scale: 2.998408\n    test 1187 line 231 toUtmUps8.lat: 7.721128\n    test 1188 line 231 toUtmUps8.lon: 71.662731\n    test 1189 line 232 toUtmUps8.easting: 4411584.447941\n    test 1190 line 232 toUtmUps8.northing: 4956173.694407\n    test 1191 line 232 toUtmUps8.gamma: 30.713919\n    test 1192 line 232 toUtmUps8.scale: 1.248736\n    test 1193 line 232 toUtmUps8.lat: 34.295026\n    test 1194 line 232 toUtmUps8.lon: 46.442191\n    test 1195 line 233 toUtmUps8.easting: 672108.897905\n    test 1196 line 233 toUtmUps8.northing: 4751554.657054\n    test 1197 line 233 toUtmUps8.gamma: 5.569178\n    test 1198 line 233 toUtmUps8.scale: 1.005162\n    test 1199 line 233 toUtmUps8.lat: 42.622496\n    test 1200 line 233 toUtmUps8.lon: 8.193605\n    test 1201 line 234 toUtmUps8.easting: 5022964.290579\n    test 1202 line 234 toUtmUps8.northing: 6860418.199502\n    test 1203 line 234 toUtmUps8.gamma: 50.862230\n    test 1204 line 234 toUtmUps8.scale: 1.324925\n    test 1205 line 234 toUtmUps8.lat: 41.667780\n    test 1206 line 234 toUtmUps8.lon: 61.518288\n    test 1207 line 235 toUtmUps8.easting: 1669655.595207\n    test 1208 line 235 toUtmUps8.northing: 4152086.537021\n    test 1209 line 235 toUtmUps8.gamma: 11.110237\n    test 1210 line 235 toUtmUps8.scale: 1.034138\n    test 1211 line 235 toUtmUps8.lat: 36.060369\n    test 1212 line 235 toUtmUps8.lon: 18.444112\n    test 1213 line 236 toUtmUps8.easting: 6055876.729655\n    test 1214 line 236 toUtmUps8.northing: 4896837.552619\n    test 1215 line 236 toUtmUps8.gamma: 35.799747\n    test 1216 line 236 toUtmUps8.scale: 1.485967\n    test 1217 line 236 toUtmUps8.lat: 27.948091\n    test 1218 line 236 toUtmUps8.lon: 56.816429\n    test 1219 line 237 toUtmUps8.easting: 1209214.164379\n    test 1220 line 237 toUtmUps8.northing: 7266409.859178\n    test 1221 line 237 toUtmUps8.gamma: 22.319633\n    test 1222 line 237 toUtmUps8.scale: 1.017554\n    test 1223 line 237 toUtmUps8.lat: 63.386030\n    test 1224 line 237 toUtmUps8.lon: 24.662716\n    test 1225 line 238 toUtmUps8.easting: 5154564.559584\n    test 1226 line 238 toUtmUps8.northing: 698118.349975\n    test 1227 line 238 toUtmUps8.gamma: 4.242360\n    test 1228 line 238 toUtmUps8.scale: 1.347481\n    test 1229 line 238 toUtmUps8.lat: 4.680922\n    test 1230 line 238 toUtmUps8.lon: 42.114426\n    test 1231 line 239 toUtmUps8.easting: 2695149.806543\n    test 1232 line 239 toUtmUps8.northing: 8208197.765605\n    test 1233 line 239 toUtmUps8.gamma: 54.178615\n    test 1234 line 239 toUtmUps8.scale: 1.089730\n    test 1235 line 239 toUtmUps8.lat: 61.826625\n    test 1236 line 239 toUtmUps8.lon: 57.525096\n    test 1237 line 240 toUtmUps8.easting: 3394792.327820\n    test 1238 line 240 toUtmUps8.northing: 3217583.415552\n    test 1239 line 240 toUtmUps8.gamma: 15.165863\n    test 1240 line 240 toUtmUps8.scale: 1.145285\n    test 1241 line 240 toUtmUps8.lat: 25.104353\n    test 1242 line 240 toUtmUps8.lon: 32.528660\n    test 1243 line 241 toUtmUps8.easting: 1429160.966985\n    test 1244 line 241 toUtmUps8.northing: 8212685.362032\n    test 1245 line 241 toUtmUps8.gamma: 37.484904\n    test 1246 line 241 toUtmUps8.scale: 1.024676\n    test 1247 line 241 toUtmUps8.lat: 69.678351\n    test 1248 line 241 toUtmUps8.lon: 39.275513\n\n    test skipped (34): line 242 toUtmUps8.'29.671383681805 84.19659549085 8343387.9980651104898 8885196.9545780118644 78.561937382568633298 1.97473261886829061763'\n    test 1249 line 243 toUtmUps8.easting: 1990722.928606\n    test 1250 line 243 toUtmUps8.northing: 7569202.065162\n    test 1251 line 243 toUtmUps8.gamma: 37.075276\n    test 1252 line 243 toUtmUps8.scale: 1.048486\n    test 1253 line 243 toUtmUps8.lat: 62.300208\n    test 1254 line 243 toUtmUps8.lon: 40.474051\n    test 1255 line 244 toUtmUps8.easting: 1554980.099559\n    test 1256 line 244 toUtmUps8.northing: 1449423.919586\n    test 1257 line 244 toUtmUps8.gamma: 3.188328\n    test 1258 line 244 toUtmUps8.scale: 1.029664\n    test 1259 line 244 toUtmUps8.lat: 12.721776\n    test 1260 line 244 toUtmUps8.lon: 14.190003\n    test 1261 line 245 toUtmUps8.easting: 785205.450196\n    test 1262 line 245 toUtmUps8.northing: 5575158.423096\n    test 1263 line 245 toUtmUps8.gamma: 8.388417\n    test 1264 line 245 toUtmUps8.scale: 1.007181\n    test 1265 line 245 toUtmUps8.lat: 49.811296\n    test 1266 line 245 toUtmUps8.lon: 10.925011\n    test 1267 line 246 toUtmUps8.easting: 3310405.988313\n    test 1268 line 246 toUtmUps8.northing: 5955022.233881\n    test 1269 line 246 toUtmUps8.gamma: 33.007587\n    test 1270 line 246 toUtmUps8.scale: 1.137141\n    test 1271 line 246 toUtmUps8.lat: 45.132680\n    test 1272 line 246 toUtmUps8.lon: 42.478624\n    test 1273 line 247 toUtmUps8.easting: 4733460.960666\n    test 1274 line 247 toUtmUps8.northing: 129034.889816\n    test 1275 line 247 toUtmUps8.gamma: 0.737551\n    test 1276 line 247 toUtmUps8.scale: 1.290439\n    test 1277 line 247 toUtmUps8.lat: 0.904279\n    test 1278 line 247 toUtmUps8.lon: 39.078412\n    test 1279 line 248 toUtmUps8.easting: 3322708.343909\n    test 1280 line 248 toUtmUps8.northing: 3864738.078742\n    test 1281 line 248 toUtmUps8.gamma: 18.472566\n    test 1282 line 248 toUtmUps8.scale: 1.138838\n    test 1283 line 248 toUtmUps8.lat: 30.163605\n    test 1284 line 248 toUtmUps8.lon: 33.577996\n\n    test skipped (35): line 249 toUtmUps8.'27.643243707755 81.892859091432 8672864.4172042475623 8333465.9834441061554 73.206272638168122883 2.06544053870286774312'\n\n    test skipped (36): line 250 toUtmUps8.'18.201207657521 82.434617649311 11126818.23119627031 7618712.1749910723126 67.88717347393512063 2.92241673495261070414'\n\n    test skipped (37): line 251 toUtmUps8.'28.804576432117 89.886072420251 8650100.9817967479337 9975084.1689971279206 89.767446308690086924 2.05728879562910108817'\n    test 1285 line 252 toUtmUps8.easting: 2212701.180192\n    test 1286 line 252 toUtmUps8.northing: 650348.100229\n    test 1287 line 252 toUtmUps8.gamma: 1.970441\n    test 1288 line 252 toUtmUps8.scale: 1.060830\n    test 1289 line 252 toUtmUps8.lat: 5.542998\n    test 1290 line 252 toUtmUps8.lon: 19.589578\n    test 1291 line 253 toUtmUps8.easting: 6890222.326618\n    test 1292 line 253 toUtmUps8.northing: 7506813.499547\n    test 1293 line 253 toUtmUps8.gamma: 62.684825\n    test 1294 line 253 toUtmUps8.scale: 1.638488\n    test 1295 line 253 toUtmUps8.lat: 34.237147\n    test 1296 line 253 toUtmUps8.lon: 73.678164\n    test 1297 line 254 toUtmUps8.easting: 6692260.067325\n    test 1298 line 254 toUtmUps8.northing: 4244174.008110\n    test 1299 line 254 toUtmUps8.gamma: 31.812920\n    test 1300 line 254 toUtmUps8.scale: 1.604640\n    test 1301 line 254 toUtmUps8.lat: 22.704949\n    test 1302 line 254 toUtmUps8.lon: 57.877010\n    test 1303 line 255 toUtmUps8.easting: 1225564.137190\n    test 1304 line 255 toUtmUps8.northing: 4778923.924144\n    test 1305 line 255 toUtmUps8.gamma: 10.083419\n    test 1306 line 255 toUtmUps8.scale: 1.018134\n    test 1307 line 255 toUtmUps8.lat: 42.192424\n    test 1308 line 255 toUtmUps8.lon: 14.828196\n    test 1309 line 256 toUtmUps8.easting: 12341116.155088  FAILED, KNOWN, expected 12341116.154950\n    test 1310 line 256 toUtmUps8.northing: 5081855.520287  FAILED, KNOWN, expected 5081855.521966\n    test 1311 line 256 toUtmUps8.gamma: 45.712545  FAILED, KNOWN, expected 45.712546\n    test 1312 line 256 toUtmUps8.scale: 3.535170\n    test 1313 line 256 toUtmUps8.lat: 11.481151\n    test 1314 line 256 toUtmUps8.lon: 78.189236\n    test 1315 line 257 toUtmUps8.easting: 6673845.021771\n    test 1316 line 257 toUtmUps8.northing: 1177587.190565\n    test 1317 line 257 toUtmUps8.gamma: 8.389141\n    test 1318 line 257 toUtmUps8.scale: 1.605171\n    test 1319 line 257 toUtmUps8.lat: 6.609626\n    test 1320 line 257 toUtmUps8.lon: 51.735783\n    test 1321 line 258 toUtmUps8.easting: 6966354.690417\n    test 1322 line 258 toUtmUps8.northing: 3641802.005093\n    test 1323 line 258 toUtmUps8.gamma: 27.409636\n    test 1324 line 258 toUtmUps8.scale: 1.661469\n    test 1325 line 258 toUtmUps8.lat: 19.059369\n    test 1326 line 258 toUtmUps8.lon: 57.526439\n    test 1327 max forward error: 1.678809e-03\n    test 1328 max reverse error: 3.170463e-09\n    test 1329 Utm.scale0: 0.9996\n    test 1330 Utm.datum: WGS84\n    test 1331 Utm.datum.ellipsoid.KsOrder: 8\n    test 1332 Ups.scale0: 0.994  FAILED, KNOWN, expected 0.9996\n    test 1333 Ups.datum: WGS84\n    test 1334 Ups.datum.ellipsoid.KsOrder: 8\n    test 1335 WGS84.KsOrder: 8\n\n    24 of 1335 testUtmUpsTMcoords.py tests (1.8%) FAILED, ALL KNOWN, 37 skipped (pygeodesy 26.3.26 Python 3.12.10 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 2.1.0 scipy 1.14.1 Math 2 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 isLazy 3 -W  default) 541.436 ms\nrunning /usr/local/bin/p....n3.12 -W default ~/PyGeodesy/test/testVectorial.py\n./pygeodesy/ellipsoidalBase.py:443: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  _ = self.datum.ellipsoid.geodesic\n./pygeodesy/azimuthal.py:636: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return self.datum.ellipsoid.geodesic\n./pygeodesy/ellipsoidalNvector.py:247: DeprecationWarning: Property_RO L{ned<pygeodesy.ltpTuples.Ned.ned>} has been DEPRECATED, use property C{ned4}.\n  dn = delta.ned[:3]  # XXX Ned4Tuple.to3Tuple\n./pygeodesy/deprecated/classes.py:33: DeprecationWarning: class L{Ned3Tuple<pygeodesy.deprecated.classes.Ned3Tuple>} has been DEPRECATED, use class L{Ned4Tuple}, ignoring item C{ltp}.\n  deprecated_class(cls)\n./test/testVectorial.py:128: DeprecationWarning: function L{nearestOn<pygeodesy.vector2d.nearestOn>} has been DEPRECATED on 2025.05.06, use L{pygeodesy.nearestOn<pygeodesy.vector3d.nearestOn>}.\n  t = vector2d.nearestOn(Nvector(0, 0, 0), p1, p2)\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.EPS from .constants by testVectorial.py line 11\n# lazily imported pygeodesy.EPS4 from .constants by testVectorial.py line 11\n# lazily imported pygeodesy.F_D from .dms by testVectorial.py line 11\n# lazily imported pygeodesy.NEG0 from .constants by testVectorial.py line 11\n# lazily imported pygeodesy.circin6 from .vector2d by testVectorial.py line 11\n# lazily imported pygeodesy.circum3 from .vector2d by testVectorial.py line 11\n# lazily imported pygeodesy.circum4_ from .vector2d by testVectorial.py line 11\n# lazily imported pygeodesy.fstr from .streprs by testVectorial.py line 11\n# lazily imported pygeodesy.intersection3d3 from .vector3d by testVectorial.py line 11\n# lazily imported pygeodesy.IntersectionError from .errors by testVectorial.py line 11\n# lazily imported pygeodesy.isnear0 from .constants by testVectorial.py line 11\n# lazily imported pygeodesy.meeus2 from .vector2d by testVectorial.py line 11\n# lazily imported pygeodesy.radii11 from .vector2d by testVectorial.py line 11\n# lazily imported pygeodesy.sincos2d from .utily by testVectorial.py line 11\n# lazily imported pygeodesy.sphericalNvector by testVectorial.py line 11\n# lazily imported pygeodesy.soddy4 from .vector2d by testVectorial.py line 11\n# lazily imported pygeodesy.trilaterate2d2 from .vector2d by testVectorial.py line 11\n# lazily imported pygeodesy.trilaterate3d2 from .vector3d by testVectorial.py line 11\n# lazily imported pygeodesy.Vector3d from .vector3d by testVectorial.py line 11\n# lazily imported pygeodesy.VectorError from .errors by testVectorial.py line 11\n# lazily imported pygeodesy.Datums from .datums by testVectorial.py line 533\n# lazily imported pygeodesy.ellipsoidalExact by testVectorial.py line 533\n# lazily imported pygeodesy.ellipsoidalKarney by testVectorial.py line 533\n# lazily imported pygeodesy.ellipsoidalNvector by testVectorial.py line 533\n# lazily imported pygeodesy.ellipsoidalVincenty by testVectorial.py line 533\n# lazily imported pygeodesy.sphericalTrigonometry by testVectorial.py line 533\n\n    testing testVectorial.py 25.10.07 isLazy=3\n\n    testVectorial(pygeodesy.ellipsoidalNvector, 25.05.12)\n\n    test 1 toLatLon: 44.995674°N, 045.0°E\n    test 2 toNvector: (0.50004, 0.50004, 0.70705)\n    test 3 isequalTo: False\n    test 4 isequalTo: True\n    test 5 length: 0.99992449715\n    test 6 euclid: 0.99995577\n    test 7 length: 1.00\n    test 8 euclid: 1.0000\n    test 9 meanOf: 44.995674°N, 045.0°E\n    test 10 meanOf: LatLon\n    test 11 apply: (0.5, 0.5, 0.707)\n    test 12 init: (0.5, 0.5, 0.707)\n    test 13 i***: (0.5, 0.5, 0.707)\n    test 14 abs: 0.99992449715\n    test 15 sumOf: (52.70504, 0.61904, 0.70705)\n    test 16 sumOf: Nv\n    test 17 sumOf: sumOf\n    test 18 length: 52.7134151513\n    test 19 sizeof: 217  FAILED, KNOWN, expected 128\n    test 20 length: 52.2051356286\n    test 21 sizeof: 320  FAILED, KNOWN, expected 247\n    test 22 copy: True\n    test 23 length: 52.2051356286\n    test 24 sizeof: 320\n# lazily imported pygeodesy.booleans by points.py line 1369\n    test 25 isenclosedBy: True\n    test 26 isenclosedBy*: True\n    test 27 isenclosedBy: True\n    test 28 isenclosedBy*: True\n# lazily imported pygeodesy.geodesicw by ellipsoids.py line 1074\n# lazily imported pygeodesy.azimuthal by ellipsoidalBase.py line 444\n\n    test 29 nearestOn: 51.0°N, 001.0°E\n    test 30 nearestOn: 50.987°N, 000.298°W\n    test 31 nearestOn: 51.0°N, 002.0°E\n    test 32 nearestOn: 50.995°N, 002.655°E\n# imported pygeodesy.formy into latlonBase.py line 756\n    test 33 nearestOn: 51.0°N, 001.9°E\n    test 34 nearestOn: True\n    test 35 distanceTo: 42.826\n    test 36 nearestOn: 51.0°N, 002.0°E\n    test 37 nearestOn: True\n    test 38 nearestOn: 00.0°N, 000.0°E\n    test 39 nearestOn: True\n    test 40 nearestOn: 00.0°N, 020.0°E\n    test 41 nearestOn: True\n    test 42 nearestOn: 02.0°N, 002.0°E\n    test 43 nearestOn: 02.0°N, 002.0°E\n# lazily imported pygeodesy.ecef by ellipsoidalNvector.py line 524\n\n    test 44 neareston6: (LatLon(45°00′00.0″N, 001°00′00.0″E), 4755443.4294, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E))\n    test 45 neareston6: (LatLon(45°30′03.94″N, 002°00′00.0″E), 39078.729285, 1.501072, 2, LatLon(45°00′00.0″N, 002°00′00.0″E), LatLon(46°00′00.0″N, 002°00′00.0″E))\n\n    test 46 BasseC: 47.3038°N, 002.5721°W\n    test 47 BasseH: 47.311067°N, 002.528617°W\n    test 48 triangulate: 47.323667°N, 002.568501°W\n    test 49 triangulate: True\n\n    test 50 trilaterate: 37.419078°N, 121.960579°W\n    test 51 trilaterate: True\n    test 52 trilaterate: 08.068912°S, 034.888699°W\n    test 53 trilaterate: True\n    test 54 trilaterate: 08.068912°S, 034.888695°W  FAILED, KNOWN, expected 08.068912°S, 034.888699°W\n    test 55 trilaterate: True\n    test 56 trilaterate: 42.67456065°N, 002.49539502°E\n# imported pygeodesy.basics into errors.py line 443\n    test 57 trilaterate: distance1 (5110), distance2 (5110), distance3 (5110), point1 (LatLon(42°41′19.82″N, 002°26′19.89″E)), point2 (LatLon(42°38′07.52″N, 002°31′21.25″E)) or point3 (LatLon(42°38′43.44″N, 002°30′17.32″E)): no intersection (useZ=False, wrap=False, z=-8.13526e-05)\n# lazily imported pygeodesy.Ned from .ltpTuples by testVectorial.py line 367\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by <frozen importlib._bootstrap> line 1412\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by <frozen importlib._bootstrap> line 1412\n# lazily imported pygeodesy.Conformal2Tuple from .triaxials.triaxial5 by <frozen importlib._bootstrap> line 1412\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by classes.py line 21\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by classes.py line 21\n# lazily imported pygeodesy.Conformal2Tuple from .triaxials.triaxial5 by classes.py line 21\n# lazily imported pygeodesy.deprecated by ltpTuples.py line 483\n\n    test 58 destinationNed: 48°53′12.01″N, 002°22′29.0″E, +0.20m\n\n    testNvector(pygeodesy.ellipsoidalNvector, 25.05.12)\n    test 59 sumOf: Nvector\n    test 60 ecef.x, .y, .z: 3194659.54086, 3194659.54086, 4487008.4122\n    test 61 ecef.lat, .lon: 44.995674, 45.0\n    test 62 ecef.height: -0.0\n    test 63 ecef.M: -0.707106781, -0.499962243, 0.500037754, 0.707106781, -0.499962243, 0.500037754, 0.0, 0.707160174, 0.707053385\n    test 64 .isEllipsoidal: True\n    test 65 .isSpherical: False\n    test 66 .latlon: (44.995674, 45.0)\n    test 67 .philam: (0.785323, 0.785398)\n    test 68 .latlonheight: (44.995674, 45.0, 0.0)\n    test 69 .philamheight: (0.785323, 0.785398, 0.0)\n    test 70 parse: (0.5, 0.5, 0.707)\n    test 71 cmp: 0\n    test 72 eq: True\n    test 73 ge: True\n    test 74 gt: False\n    test 75 le: True\n    test 76 lt: False\n    test 77 ne: False\n    test 78 *: (1.0, 1.0, 1.414)\n    test 79 +: (1.0, 1.0, 1.414)\n    test 80 /: (0.5, 0.5, 0.707)\n    test 81 -: (0.5, 0.5, 0.707)\n    test 82 @: (0.0, 0.0, 0.0)\n./pygeodesy/basics.py:637: DeprecationWarning: Conversion of an array with ndim > 0 to a scalar is deprecated, and will error in future. Ensure you extract a single element from your array before performing this operation. (Deprecated NumPy 1.25.)\n  return tuple(map(fun, *xs, **strict) if strict else map(fun, *xs))\n    test 83 @: (0.0, 0.0, 0.0)\n    test 84 rotate: (0.26268, 0.26268, 0.37143)\n    test 85 crosserrors: True\n    test 86 0: divisor (0): float division by zero\n    test 87 intersections2: (500.0, 0.0, 0.0)\n    test 88 nearestOn: (0.0, 0.0, 0.0)\n    test 89 nearestOn: True\n    test 90 nearestOn: (100.0, 100.0, 100.0)\n    test 91 nearestOn: True\n# imported pygeodesy.vector2d into vector3d.py line 659\n    test 92 iscolinearWith: False\n    test 93 iscolinearWith: True\n    test 94 nearestOn: (0.0, 0.0, 0.0)\n    test 95 nearestOn: True\n    test 96 nearestOn: (100.0, 100.0, 100.0)\n    test 97 nearestOn: True\n    test 98 iscolinearWith: False\n    test 99 iscolinearWith: True\n\n    testVectorial(pygeodesy.sphericalNvector, 25.05.27)\n    test 100 crossTrackDistanceTo: -305.67\n    test 101 crossTrackDistanceTo: -307.55\n\n    test 102 toLatLon: 44.995674°N, 045.0°E\n    test 103 toNvector: (0.50004, 0.50004, 0.70705)\n    test 104 isequalTo: False\n    test 105 isequalTo: True\n    test 106 length: 0.99992449715\n    test 107 euclid: 0.99995577\n    test 108 length: 1.00\n    test 109 euclid: 1.0000\n    test 110 meanOf: 44.995674°N, 045.0°E\n    test 111 meanOf: LatLon\n    test 112 apply: (0.5, 0.5, 0.707)\n    test 113 init: (0.5, 0.5, 0.707)\n    test 114 i***: (0.5, 0.5, 0.707)\n    test 115 abs: 0.99992449715\n    test 116 sumOf: (52.70504, 0.61904, 0.70705)\n    test 117 sumOf: Nv\n    test 118 sumOf: sumOf\n    test 119 length: 52.7134151513\n    test 120 sizeof: 217  FAILED, KNOWN, expected 128\n    test 121 length: 52.2051356286\n    test 122 sizeof: 320  FAILED, KNOWN, expected 247\n    test 123 copy: True\n    test 124 length: 52.2051356286\n    test 125 sizeof: 320\n\n    test 126 toCartesian: [3185744.919, 3185744.919, 4504643.315]\n    test 127 toLatLon: 44.995674°N, 045.0°E\n    test 128 toNvector: (0.50004, 0.50004, 0.70705)  FAILED, KNOWN, expected (0.50004, 0.50004, 0.70705, -0.00)\n\n    test 129 intersection: 02.499372°N, 002.5°E\n\n    test 130 intersection1: 02.499372°N, 002.5°E\n    test 131 intersection2: 02.499372°S, 177.5°W\n\n    test 132 isenclosedBy: True\n    test 133 isenclosedBy*: True\n    test 134 isenclosedBy: True\n    test 135 isenclosedBy*: True\n\n    test 136 iswithin: False\n    test 137 iswithin: True\n\n    test 138 nearestOn: 51.0°N, 001.0°E\n    test 139 nearestOn: 50.987°N, 000.298°W\n    test 140 nearestOn: 51.0°N, 002.0°E\n    test 141 nearestOn: 50.995°N, 002.655°E\n    test 142 nearestOn: 51.0°N, 001.9°E\n    test 143 nearestOn: True\n    test 144 distanceTo: 42.712\n    test 145 nearestOn: 51.0°N, 002.0°E\n    test 146 nearestOn: True\n    test 147 nearestOn: 00.0°N, 000.0°E\n    test 148 nearestOn: True\n    test 149 nearestOn: 00.0°N, 020.0°E\n    test 150 nearestOn: True\n    test 151 nearestOn: 02.0°N, 002.0°E\n    test 152 nearestOn: 02.0°N, 002.0°E\n\n    test 153 neareston6: (LatLon(45°00′00.0″N, 001°00′00.0″E), 4773243.784965, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E))\n    test 154 neareston6: (LatLon(45°30′03.93″N, 002°00′00.0″E), 38968.531578, 1.501091, 2, LatLon(45°00′00.0″N, 002°00′00.0″E), LatLon(46°00′00.0″N, 002°00′00.0″E))\n\n    test 155 BasseC: 47.3038°N, 002.5721°W\n    test 156 BasseH: 47.311067°N, 002.528617°W\n    test 157 triangulate: 47.323667°N, 002.568501°W\n    test 158 triangulate: True\n\n    test 159 trilaterate: 37.419078°N, 121.960579°W\n    test 160 trilaterate: True\n    test 161 trilaterate: 08.068912°S, 034.888699°W\n    test 162 trilaterate: True\n    test 163 trilaterate: 08.068912°S, 034.888695°W  FAILED, KNOWN, expected 08.068912°S, 034.888699°W\n    test 164 trilaterate: True\n    test 165 trilaterate: 42.67456065°N, 002.49539502°E\n    test 166 trilaterate: distance1 (5110), distance2 (5110), distance3 (5110), point1 (LatLon(42°41′19.82″N, 002°26′19.89″E)), point2 (LatLon(42°38′07.52″N, 002°31′21.25″E)) or point3 (LatLon(42°38′43.44″N, 002°30′17.32″E)): no intersection (useZ=False, wrap=False, z=-8.13526e-05)\n\n    testNvector(pygeodesy.sphericalNvector, 25.05.27)\n    test 167 sumOf: Nvector\n    test 168 ecef.x, .y, .z: 3185744.91853, 3185744.91853, 4504643.3148\n    test 169 ecef.lat, .lon: 44.995674, 45.0\n    test 170 ecef.height: -0.0\n    test 171 ecef.M: -0.707106781, -0.499962243, 0.500037754, 0.707106781, -0.499962243, 0.500037754, 0.0, 0.707160174, 0.707053385\n    test 172 .isEllipsoidal: False\n    test 173 .isSpherical: True\n    test 174 .latlon: (44.995674, 45.0)\n    test 175 .philam: (0.785323, 0.785398)\n    test 176 .latlonheight: (44.995674, 45.0, 0.0)\n    test 177 .philamheight: (0.785323, 0.785398, 0.0)\n    test 178 parse: (0.5, 0.5, 0.707)\n    test 179 cmp: 0\n    test 180 eq: True\n    test 181 ge: True\n    test 182 gt: False\n    test 183 le: True\n    test 184 lt: False\n    test 185 ne: False\n    test 186 *: (1.0, 1.0, 1.414)\n    test 187 +: (1.0, 1.0, 1.414)\n    test 188 /: (0.5, 0.5, 0.707)\n    test 189 -: (0.5, 0.5, 0.707)\n    test 190 @: (0.0, 0.0, 0.0)\n    test 191 @: (0.0, 0.0, 0.0)\n    test 192 rotate: (0.26268, 0.26268, 0.37143)\n    test 193 crosserrors: True\n    test 194 0: divisor (0): float division by zero\n    test 195 intersections2: (500.0, 0.0, 0.0)\n    test 196 nearestOn: (0.0, 0.0, 0.0)\n    test 197 nearestOn: True\n    test 198 nearestOn: (100.0, 100.0, 100.0)\n    test 199 nearestOn: True\n    test 200 iscolinearWith: False\n    test 201 iscolinearWith: True\n    test 202 nearestOn: (0.0, 0.0, 0.0)\n    test 203 nearestOn: True\n    test 204 nearestOn: (100.0, 100.0, 100.0)\n    test 205 nearestOn: True\n    test 206 iscolinearWith: False\n    test 207 iscolinearWith: True\n\n    testNvectorBase(pygeodesy.nvectorBase, 25.08.18)\n    test 208 sumOf: Vector4Tuple\n    test 209 ecef.x, .y, .z: 3185744.91853, 3185744.91853, 4504643.3148\n    test 210 ecef.lat, .lon: 44.995674, 45.0\n    test 211 ecef.height: -0.0\n    test 212 ecef.M: -0.707106781, -0.499962243, 0.500037754, 0.707106781, -0.499962243, 0.500037754, 0.0, 0.707160174, 0.707053385\n    test 213 .isEllipsoidal: False\n    test 214 .isSpherical: True\n    test 215 .latlon: (44.995674, 45.0)\n    test 216 .philam: (0.785323, 0.785398)\n    test 217 .latlonheight: (44.995674, 45.0, 0.0)\n    test 218 .philamheight: (0.785323, 0.785398, 0.0)\n    test 219 parse: (0.5, 0.5, 0.707)\n    test 220 cmp: 0\n    test 221 eq: True\n    test 222 ge: True\n    test 223 gt: False\n    test 224 le: True\n    test 225 lt: False\n    test 226 ne: False\n    test 227 *: (1.0, 1.0, 1.414)\n    test 228 +: (1.0, 1.0, 1.414)\n    test 229 /: (0.5, 0.5, 0.707)\n    test 230 -: (0.5, 0.5, 0.707)\n    test 231 @: (0.0, 0.0, 0.0)\n    test 232 @: (0.0, 0.0, 0.0)\n    test 233 rotate: (0.26268, 0.26268, 0.37143)\n    test 234 crosserrors: True\n    test 235 0: divisor (0): float division by zero\n    test 236 intersections2: (500.0, 0.0, 0.0)\n    test 237 nearestOn: (0.0, 0.0, 0.0)\n    test 238 nearestOn: True\n    test 239 nearestOn: (100.0, 100.0, 100.0)\n    test 240 nearestOn: True\n    test 241 iscolinearWith: False\n    test 242 iscolinearWith: True\n    test 243 nearestOn: (0.0, 0.0, 0.0)\n    test 244 nearestOn: True\n    test 245 nearestOn: (100.0, 100.0, 100.0)\n    test 246 nearestOn: True\n    test 247 iscolinearWith: False\n    test 248 iscolinearWith: True\n\n    testNvectorBase(pygeodesy.nvectorBase, 25.08.18)\n    test 249 sumOf: Vector4Tuple\n    test 250 ecef.x, .y, .z: 3194659.54086, 3194659.54086, 4487008.4122\n    test 251 ecef.lat, .lon: 44.995674, 45.0\n    test 252 ecef.height: -0.0\n    test 253 ecef.M: -0.707106781, -0.499962243, 0.500037754, 0.707106781, -0.499962243, 0.500037754, 0.0, 0.707160174, 0.707053385\n    test 254 .isEllipsoidal: True\n    test 255 .isSpherical: False\n    test 256 .latlon: (44.995674, 45.0)\n    test 257 .philam: (0.785323, 0.785398)\n    test 258 .latlonheight: (44.995674, 45.0, 0.0)\n    test 259 .philamheight: (0.785323, 0.785398, 0.0)\n    test 260 parse: (0.5, 0.5, 0.707)\n    test 261 cmp: 0\n    test 262 eq: True\n    test 263 ge: True\n    test 264 gt: False\n    test 265 le: True\n    test 266 lt: False\n    test 267 ne: False\n    test 268 *: (1.0, 1.0, 1.414)\n    test 269 +: (1.0, 1.0, 1.414)\n    test 270 /: (0.5, 0.5, 0.707)\n    test 271 -: (0.5, 0.5, 0.707)\n    test 272 @: (0.0, 0.0, 0.0)\n    test 273 @: (0.0, 0.0, 0.0)\n    test 274 rotate: (0.26268, 0.26268, 0.37143)\n    test 275 crosserrors: True\n    test 276 0: divisor (0): float division by zero\n    test 277 intersections2: (500.0, 0.0, 0.0)\n    test 278 nearestOn: (0.0, 0.0, 0.0)\n    test 279 nearestOn: True\n    test 280 nearestOn: (100.0, 100.0, 100.0)\n    test 281 nearestOn: True\n    test 282 iscolinearWith: False\n    test 283 iscolinearWith: True\n    test 284 nearestOn: (0.0, 0.0, 0.0)\n    test 285 nearestOn: True\n    test 286 nearestOn: (100.0, 100.0, 100.0)\n    test 287 nearestOn: True\n    test 288 iscolinearWith: False\n    test 289 iscolinearWith: True\n\n    testCartesian(pygeodesy.sphericalNvector, 25.05.27)\n    test 290 sphericalNvector.Cartesian.trilaterate3d2: 2\n    test 291 sphericalNvector.Cartesian 'trilaterate3d2': 119.8958, 130.6508, -5.1451\n    test 292 sphericalNvector.Cartesian 'trilaterate3d2': 119.9999, 129.9999, 30.0019\n    test 293 pygeodesy.vector3d.trilaterate3d2: 2\n    test 294 sphericalNvector.Cartesian 'trilaterate3d2': 24.31229, -2.52045, 1.53649\n    test 295 sphericalNvector.Cartesian 'trilaterate3d2': 24.35062, -2.48109, 1.66673\n    test 296 pygeodesy.vector3d.trilaterate3d2: center1 (Cartesian(22.59, 0.524, 1.2)), center2 (Cartesian(25.475, -6.124, 2.36)), center3 (Cartesian(22.59, 0.524, 1.2)), radius1 (3.851), radius2 (3.875) or radius3 (3.514): 'center1 and center3 near-concentric'\n    test 297 pygeodesy.vector3d.trilaterate3d2: center1 (Cartesian(27.297, -4.953, 1.47)), center2 (Cartesian(25.475, -6.124, 2.36)), center3 (Cartesian(22.59, 0.524, 1.2)), radius1 (0.3851), radius2 (0.3875) or radius3 (3.514): 'center1 and center2 too distant (2.34)'\n    test 298 pygeodesy.vector3d.trilaterate3d2: center1 (Cartesian(0.0, 0.0, 0.0)), center2 (Cartesian(0.0, 9.0, 0.0)), center3 (Cartesian(0.0, -9.0, 0.0)), radius1 (10), radius2 (10) or radius3 (10): 'colinear'\n    test 299 Cartesian.trilaterate3d2: 2\n    test 300 sphericalNvector.Cartesian 'trilaterate3d2': 24.31229, -2.52045, 1.53649\n    test 301 sphericalNvector.Cartesian 'trilaterate3d2': 24.35062, -2.48109, 1.66673\n    test 302 Cartesian.trilaterate3d2: center (Cartesian(22.59, 0.524, 1.2)), center2 (Cartesian(25.475, -6.124, 2.36)), center3 (Cartesian(22.59, 0.524, 1.2)), radius (3.851), radius2 (3.875) or radius3 (3.514): 'center and center3 near-concentric'\n    test 303 Cartesian.trilaterate3d2: center (Cartesian(27.297, -4.953, 1.47)), center2 (Cartesian(25.475, -6.124, 2.36)), center3 (Cartesian(22.59, 0.524, 1.2)), radius (0.3851), radius2 (0.3875) or radius3 (3.514): 'center and center2 too distant (2.34)'\n    test 304 Cartesian.trilaterate3d2: center (Cartesian(0.0, 0.0, 0.0)), center2 (Cartesian(0.0, 9.0, 0.0)), center3 (Cartesian(0.0, -9.0, 0.0)), radius (10), radius2 (10) or radius3 (10): 'colinear'\n\n    testCartesian(pygeodesy.sphericalTrigonometry, 25.08.31)\n    test 305 sphericalTrigonometry.Cartesian.trilaterate3d2: 2\n    test 306 sphericalTrigonometry.Cartesian 'trilaterate3d2': 119.8958, 130.6508, -5.1451\n    test 307 sphericalTrigonometry.Cartesian 'trilaterate3d2': 119.9999, 129.9999, 30.0019\n    test 308 pygeodesy.vector3d.trilaterate3d2: 2\n    test 309 sphericalTrigonometry.Cartesian 'trilaterate3d2': 24.31229, -2.52045, 1.53649\n    test 310 sphericalTrigonometry.Cartesian 'trilaterate3d2': 24.35062, -2.48109, 1.66673\n    test 311 pygeodesy.vector3d.trilaterate3d2: center1 (Cartesian(22.59, 0.524, 1.2)), center2 (Cartesian(25.475, -6.124, 2.36)), center3 (Cartesian(22.59, 0.524, 1.2)), radius1 (3.851), radius2 (3.875) or radius3 (3.514): 'center1 and center3 near-concentric'\n    test 312 pygeodesy.vector3d.trilaterate3d2: center1 (Cartesian(27.297, -4.953, 1.47)), center2 (Cartesian(25.475, -6.124, 2.36)), center3 (Cartesian(22.59, 0.524, 1.2)), radius1 (0.3851), radius2 (0.3875) or radius3 (3.514): 'center1 and center2 too distant (2.34)'\n    test 313 pygeodesy.vector3d.trilaterate3d2: center1 (Cartesian(0.0, 0.0, 0.0)), center2 (Cartesian(0.0, 9.0, 0.0)), center3 (Cartesian(0.0, -9.0, 0.0)), radius1 (10), radius2 (10) or radius3 (10): 'colinear'\n    test 314 Cartesian.trilaterate3d2: 2\n    test 315 sphericalTrigonometry.Cartesian 'trilaterate3d2': 24.31229, -2.52045, 1.53649\n    test 316 sphericalTrigonometry.Cartesian 'trilaterate3d2': 24.35062, -2.48109, 1.66673\n    test 317 Cartesian.trilaterate3d2: center (Cartesian(22.59, 0.524, 1.2)), center2 (Cartesian(25.475, -6.124, 2.36)), center3 (Cartesian(22.59, 0.524, 1.2)), radius (3.851), radius2 (3.875) or radius3 (3.514): 'center and center3 near-concentric'\n    test 318 Cartesian.trilaterate3d2: center (Cartesian(27.297, -4.953, 1.47)), center2 (Cartesian(25.475, -6.124, 2.36)), center3 (Cartesian(22.59, 0.524, 1.2)), radius (0.3851), radius2 (0.3875) or radius3 (3.514): 'center and center2 too distant (2.34)'\n    test 319 Cartesian.trilaterate3d2: center (Cartesian(0.0, 0.0, 0.0)), center2 (Cartesian(0.0, 9.0, 0.0)), center3 (Cartesian(0.0, -9.0, 0.0)), radius (10), radius2 (10) or radius3 (10): 'colinear'\n\n    testCartesian(pygeodesy.ellipsoidalNvector, 25.05.12)\n    test 320 ellipsoidalNvector.Cartesian.trilaterate3d2: 2\n    test 321 ellipsoidalNvector.Cartesian 'trilaterate3d2': 119.8958, 130.6508, -5.1451\n    test 322 ellipsoidalNvector.Cartesian 'trilaterate3d2': 119.9999, 129.9999, 30.0019\n    test 323 pygeodesy.vector3d.trilaterate3d2: 2\n    test 324 ellipsoidalNvector.Cartesian 'trilaterate3d2': 24.31229, -2.52045, 1.53649\n    test 325 ellipsoidalNvector.Cartesian 'trilaterate3d2': 24.35062, -2.48109, 1.66673\n    test 326 pygeodesy.vector3d.trilaterate3d2: center1 (Cartesian(22.59, 0.524, 1.2)), center2 (Cartesian(25.475, -6.124, 2.36)), center3 (Cartesian(22.59, 0.524, 1.2)), radius1 (3.851), radius2 (3.875) or radius3 (3.514): 'center1 and center3 near-concentric'\n    test 327 pygeodesy.vector3d.trilaterate3d2: center1 (Cartesian(27.297, -4.953, 1.47)), center2 (Cartesian(25.475, -6.124, 2.36)), center3 (Cartesian(22.59, 0.524, 1.2)), radius1 (0.3851), radius2 (0.3875) or radius3 (3.514): 'center1 and center2 too distant (2.34)'\n    test 328 pygeodesy.vector3d.trilaterate3d2: center1 (Cartesian(0.0, 0.0, 0.0)), center2 (Cartesian(0.0, 9.0, 0.0)), center3 (Cartesian(0.0, -9.0, 0.0)), radius1 (10), radius2 (10) or radius3 (10): 'colinear'\n    test 329 Cartesian.trilaterate3d2: 2\n    test 330 ellipsoidalNvector.Cartesian 'trilaterate3d2': 24.31229, -2.52045, 1.53649\n    test 331 ellipsoidalNvector.Cartesian 'trilaterate3d2': 24.35062, -2.48109, 1.66673\n    test 332 Cartesian.trilaterate3d2: center (Cartesian(22.59, 0.524, 1.2)), center2 (Cartesian(25.475, -6.124, 2.36)), center3 (Cartesian(22.59, 0.524, 1.2)), radius (3.851), radius2 (3.875) or radius3 (3.514): 'center and center3 near-concentric'\n    test 333 Cartesian.trilaterate3d2: center (Cartesian(27.297, -4.953, 1.47)), center2 (Cartesian(25.475, -6.124, 2.36)), center3 (Cartesian(22.59, 0.524, 1.2)), radius (0.3851), radius2 (0.3875) or radius3 (3.514): 'center and center2 too distant (2.34)'\n    test 334 Cartesian.trilaterate3d2: center (Cartesian(0.0, 0.0, 0.0)), center2 (Cartesian(0.0, 9.0, 0.0)), center3 (Cartesian(0.0, -9.0, 0.0)), radius (10), radius2 (10) or radius3 (10): 'colinear'\n\n    testCartesian(pygeodesy.ellipsoidalVincenty, 25.05.26)\n    test 335 ellipsoidalVincenty.Cartesian.trilaterate3d2: 2\n    test 336 ellipsoidalVincenty.Cartesian 'trilaterate3d2': 119.8958, 130.6508, -5.1451\n    test 337 ellipsoidalVincenty.Cartesian 'trilaterate3d2': 119.9999, 129.9999, 30.0019\n    test 338 pygeodesy.vector3d.trilaterate3d2: 2\n    test 339 ellipsoidalVincenty.Cartesian 'trilaterate3d2': 24.31229, -2.52045, 1.53649\n    test 340 ellipsoidalVincenty.Cartesian 'trilaterate3d2': 24.35062, -2.48109, 1.66673\n    test 341 pygeodesy.vector3d.trilaterate3d2: center1 (Cartesian(22.59, 0.524, 1.2)), center2 (Cartesian(25.475, -6.124, 2.36)), center3 (Cartesian(22.59, 0.524, 1.2)), radius1 (3.851), radius2 (3.875) or radius3 (3.514): 'center1 and center3 near-concentric'\n    test 342 pygeodesy.vector3d.trilaterate3d2: center1 (Cartesian(27.297, -4.953, 1.47)), center2 (Cartesian(25.475, -6.124, 2.36)), center3 (Cartesian(22.59, 0.524, 1.2)), radius1 (0.3851), radius2 (0.3875) or radius3 (3.514): 'center1 and center2 too distant (2.34)'\n    test 343 pygeodesy.vector3d.trilaterate3d2: center1 (Cartesian(0.0, 0.0, 0.0)), center2 (Cartesian(0.0, 9.0, 0.0)), center3 (Cartesian(0.0, -9.0, 0.0)), radius1 (10), radius2 (10) or radius3 (10): 'colinear'\n    test 344 Cartesian.trilaterate3d2: 2\n    test 345 ellipsoidalVincenty.Cartesian 'trilaterate3d2': 24.31229, -2.52045, 1.53649\n    test 346 ellipsoidalVincenty.Cartesian 'trilaterate3d2': 24.35062, -2.48109, 1.66673\n    test 347 Cartesian.trilaterate3d2: center (Cartesian(22.59, 0.524, 1.2)), center2 (Cartesian(25.475, -6.124, 2.36)), center3 (Cartesian(22.59, 0.524, 1.2)), radius (3.851), radius2 (3.875) or radius3 (3.514): 'center and center3 near-concentric'\n    test 348 Cartesian.trilaterate3d2: center (Cartesian(27.297, -4.953, 1.47)), center2 (Cartesian(25.475, -6.124, 2.36)), center3 (Cartesian(22.59, 0.524, 1.2)), radius (0.3851), radius2 (0.3875) or radius3 (3.514): 'center and center2 too distant (2.34)'\n    test 349 Cartesian.trilaterate3d2: center (Cartesian(0.0, 0.0, 0.0)), center2 (Cartesian(0.0, 9.0, 0.0)), center3 (Cartesian(0.0, -9.0, 0.0)), radius (10), radius2 (10) or radius3 (10): 'colinear'\n\n    testCartesian(pygeodesy.ellipsoidalKarney, 25.05.27)\n    test 350 ellipsoidalKarney.Cartesian.trilaterate3d2: 2\n    test 351 ellipsoidalKarney.Cartesian 'trilaterate3d2': 119.8958, 130.6508, -5.1451\n    test 352 ellipsoidalKarney.Cartesian 'trilaterate3d2': 119.9999, 129.9999, 30.0019\n    test 353 pygeodesy.vector3d.trilaterate3d2: 2\n    test 354 ellipsoidalKarney.Cartesian 'trilaterate3d2': 24.31229, -2.52045, 1.53649\n    test 355 ellipsoidalKarney.Cartesian 'trilaterate3d2': 24.35062, -2.48109, 1.66673\n    test 356 pygeodesy.vector3d.trilaterate3d2: center1 (Cartesian(22.59, 0.524, 1.2)), center2 (Cartesian(25.475, -6.124, 2.36)), center3 (Cartesian(22.59, 0.524, 1.2)), radius1 (3.851), radius2 (3.875) or radius3 (3.514): 'center1 and center3 near-concentric'\n    test 357 pygeodesy.vector3d.trilaterate3d2: center1 (Cartesian(27.297, -4.953, 1.47)), center2 (Cartesian(25.475, -6.124, 2.36)), center3 (Cartesian(22.59, 0.524, 1.2)), radius1 (0.3851), radius2 (0.3875) or radius3 (3.514): 'center1 and center2 too distant (2.34)'\n    test 358 pygeodesy.vector3d.trilaterate3d2: center1 (Cartesian(0.0, 0.0, 0.0)), center2 (Cartesian(0.0, 9.0, 0.0)), center3 (Cartesian(0.0, -9.0, 0.0)), radius1 (10), radius2 (10) or radius3 (10): 'colinear'\n    test 359 Cartesian.trilaterate3d2: 2\n    test 360 ellipsoidalKarney.Cartesian 'trilaterate3d2': 24.31229, -2.52045, 1.53649\n    test 361 ellipsoidalKarney.Cartesian 'trilaterate3d2': 24.35062, -2.48109, 1.66673\n    test 362 Cartesian.trilaterate3d2: center (Cartesian(22.59, 0.524, 1.2)), center2 (Cartesian(25.475, -6.124, 2.36)), center3 (Cartesian(22.59, 0.524, 1.2)), radius (3.851), radius2 (3.875) or radius3 (3.514): 'center and center3 near-concentric'\n    test 363 Cartesian.trilaterate3d2: center (Cartesian(27.297, -4.953, 1.47)), center2 (Cartesian(25.475, -6.124, 2.36)), center3 (Cartesian(22.59, 0.524, 1.2)), radius (0.3851), radius2 (0.3875) or radius3 (3.514): 'center and center2 too distant (2.34)'\n    test 364 Cartesian.trilaterate3d2: center (Cartesian(0.0, 0.0, 0.0)), center2 (Cartesian(0.0, 9.0, 0.0)), center3 (Cartesian(0.0, -9.0, 0.0)), radius (10), radius2 (10) or radius3 (10): 'colinear'\n\n    testCartesian(pygeodesy.ellipsoidalExact, 25.08.28)\n    test 365 ellipsoidalExact.Cartesian.trilaterate3d2: 2\n    test 366 ellipsoidalExact.Cartesian 'trilaterate3d2': 119.8958, 130.6508, -5.1451\n    test 367 ellipsoidalExact.Cartesian 'trilaterate3d2': 119.9999, 129.9999, 30.0019\n    test 368 pygeodesy.vector3d.trilaterate3d2: 2\n    test 369 ellipsoidalExact.Cartesian 'trilaterate3d2': 24.31229, -2.52045, 1.53649\n    test 370 ellipsoidalExact.Cartesian 'trilaterate3d2': 24.35062, -2.48109, 1.66673\n    test 371 pygeodesy.vector3d.trilaterate3d2: center1 (Cartesian(22.59, 0.524, 1.2)), center2 (Cartesian(25.475, -6.124, 2.36)), center3 (Cartesian(22.59, 0.524, 1.2)), radius1 (3.851), radius2 (3.875) or radius3 (3.514): 'center1 and center3 near-concentric'\n    test 372 pygeodesy.vector3d.trilaterate3d2: center1 (Cartesian(27.297, -4.953, 1.47)), center2 (Cartesian(25.475, -6.124, 2.36)), center3 (Cartesian(22.59, 0.524, 1.2)), radius1 (0.3851), radius2 (0.3875) or radius3 (3.514): 'center1 and center2 too distant (2.34)'\n    test 373 pygeodesy.vector3d.trilaterate3d2: center1 (Cartesian(0.0, 0.0, 0.0)), center2 (Cartesian(0.0, 9.0, 0.0)), center3 (Cartesian(0.0, -9.0, 0.0)), radius1 (10), radius2 (10) or radius3 (10): 'colinear'\n    test 374 Cartesian.trilaterate3d2: 2\n    test 375 ellipsoidalExact.Cartesian 'trilaterate3d2': 24.31229, -2.52045, 1.53649\n    test 376 ellipsoidalExact.Cartesian 'trilaterate3d2': 24.35062, -2.48109, 1.66673\n    test 377 Cartesian.trilaterate3d2: center (Cartesian(22.59, 0.524, 1.2)), center2 (Cartesian(25.475, -6.124, 2.36)), center3 (Cartesian(22.59, 0.524, 1.2)), radius (3.851), radius2 (3.875) or radius3 (3.514): 'center and center3 near-concentric'\n    test 378 Cartesian.trilaterate3d2: center (Cartesian(27.297, -4.953, 1.47)), center2 (Cartesian(25.475, -6.124, 2.36)), center3 (Cartesian(22.59, 0.524, 1.2)), radius (0.3851), radius2 (0.3875) or radius3 (3.514): 'center and center2 too distant (2.34)'\n    test 379 Cartesian.trilaterate3d2: center (Cartesian(0.0, 0.0, 0.0)), center2 (Cartesian(0.0, 9.0, 0.0)), center3 (Cartesian(0.0, -9.0, 0.0)), radius (10), radius2 (10) or radius3 (10): 'colinear'\n# lazily imported pygeodesy.ellipsoidalGeodSolve by testVectorial.py line 554\n\n    testCartesian(pygeodesy.ellipsoidalGeodSolve, 25.08.28)\n    test 380 ellipsoidalGeodSolve.Cartesian.trilaterate3d2: 2\n    test 381 ellipsoidalGeodSolve.Cartesian 'trilaterate3d2': 119.8958, 130.6508, -5.1451\n    test 382 ellipsoidalGeodSolve.Cartesian 'trilaterate3d2': 119.9999, 129.9999, 30.0019\n    test 383 pygeodesy.vector3d.trilaterate3d2: 2\n    test 384 ellipsoidalGeodSolve.Cartesian 'trilaterate3d2': 24.31229, -2.52045, 1.53649\n    test 385 ellipsoidalGeodSolve.Cartesian 'trilaterate3d2': 24.35062, -2.48109, 1.66673\n    test 386 pygeodesy.vector3d.trilaterate3d2: center1 (Cartesian(22.59, 0.524, 1.2)), center2 (Cartesian(25.475, -6.124, 2.36)), center3 (Cartesian(22.59, 0.524, 1.2)), radius1 (3.851), radius2 (3.875) or radius3 (3.514): 'center1 and center3 near-concentric'\n    test 387 pygeodesy.vector3d.trilaterate3d2: center1 (Cartesian(27.297, -4.953, 1.47)), center2 (Cartesian(25.475, -6.124, 2.36)), center3 (Cartesian(22.59, 0.524, 1.2)), radius1 (0.3851), radius2 (0.3875) or radius3 (3.514): 'center1 and center2 too distant (2.34)'\n    test 388 pygeodesy.vector3d.trilaterate3d2: center1 (Cartesian(0.0, 0.0, 0.0)), center2 (Cartesian(0.0, 9.0, 0.0)), center3 (Cartesian(0.0, -9.0, 0.0)), radius1 (10), radius2 (10) or radius3 (10): 'colinear'\n    test 389 Cartesian.trilaterate3d2: 2\n    test 390 ellipsoidalGeodSolve.Cartesian 'trilaterate3d2': 24.31229, -2.52045, 1.53649\n    test 391 ellipsoidalGeodSolve.Cartesian 'trilaterate3d2': 24.35062, -2.48109, 1.66673\n    test 392 Cartesian.trilaterate3d2: center (Cartesian(22.59, 0.524, 1.2)), center2 (Cartesian(25.475, -6.124, 2.36)), center3 (Cartesian(22.59, 0.524, 1.2)), radius (3.851), radius2 (3.875) or radius3 (3.514): 'center and center3 near-concentric'\n    test 393 Cartesian.trilaterate3d2: center (Cartesian(27.297, -4.953, 1.47)), center2 (Cartesian(25.475, -6.124, 2.36)), center3 (Cartesian(22.59, 0.524, 1.2)), radius (0.3851), radius2 (0.3875) or radius3 (3.514): 'center and center2 too distant (2.34)'\n    test 394 Cartesian.trilaterate3d2: center (Cartesian(0.0, 0.0, 0.0)), center2 (Cartesian(0.0, 9.0, 0.0)), center3 (Cartesian(0.0, -9.0, 0.0)), radius (10), radius2 (10) or radius3 (10): 'colinear'\n\n    testCartesianBase(pygeodesy.cartesianBase, 26.01.06)\n    test 395 cartesianBase.CartesianBase.trilaterate3d2: 2\n    test 396 cartesianBase.CartesianBase 'trilaterate3d2': 119.8958, 130.6508, -5.1451\n    test 397 cartesianBase.CartesianBase 'trilaterate3d2': 119.9999, 129.9999, 30.0019\n    test 398 pygeodesy.vector3d.trilaterate3d2: 2\n    test 399 cartesianBase.CartesianBase 'trilaterate3d2': 24.31229, -2.52045, 1.53649\n    test 400 cartesianBase.CartesianBase 'trilaterate3d2': 24.35062, -2.48109, 1.66673\n    test 401 pygeodesy.vector3d.trilaterate3d2: center1 (CartesianBase(22.59, 0.524, 1.2)), center2 (CartesianBase(25.475, -6.124, 2.36)), center3 (CartesianBase(22.59, 0.524, 1.2)), radius1 (3.851), radius2 (3.875) or radius3 (3.514): 'center1 and center3 near-concentric'\n    test 402 pygeodesy.vector3d.trilaterate3d2: center1 (CartesianBase(27.297, -4.953, 1.47)), center2 (CartesianBase(25.475, -6.124, 2.36)), center3 (CartesianBase(22.59, 0.524, 1.2)), radius1 (0.3851), radius2 (0.3875) or radius3 (3.514): 'center1 and center2 too distant (2.34)'\n    test 403 pygeodesy.vector3d.trilaterate3d2: center1 (CartesianBase(0.0, 0.0, 0.0)), center2 (CartesianBase(0.0, 9.0, 0.0)), center3 (CartesianBase(0.0, -9.0, 0.0)), radius1 (10), radius2 (10) or radius3 (10): 'colinear'\n    test 404 CartesianBase.trilaterate3d2: 2\n    test 405 cartesianBase.CartesianBase 'trilaterate3d2': 24.31229, -2.52045, 1.53649\n    test 406 cartesianBase.CartesianBase 'trilaterate3d2': 24.35062, -2.48109, 1.66673\n    test 407 CartesianBase.trilaterate3d2: center (CartesianBase(22.59, 0.524, 1.2)), center2 (CartesianBase(25.475, -6.124, 2.36)), center3 (CartesianBase(22.59, 0.524, 1.2)), radius (3.851), radius2 (3.875) or radius3 (3.514): 'center and center3 near-concentric'\n    test 408 CartesianBase.trilaterate3d2: center (CartesianBase(27.297, -4.953, 1.47)), center2 (CartesianBase(25.475, -6.124, 2.36)), center3 (CartesianBase(22.59, 0.524, 1.2)), radius (0.3851), radius2 (0.3875) or radius3 (3.514): 'center and center2 too distant (2.34)'\n    test 409 CartesianBase.trilaterate3d2: center (CartesianBase(0.0, 0.0, 0.0)), center2 (CartesianBase(0.0, 9.0, 0.0)), center3 (CartesianBase(0.0, -9.0, 0.0)), radius (10), radius2 (10) or radius3 (10): 'colinear'\n\n    testNvectorBase(pygeodesy.nvectorBase, 25.08.18)\n    test 410 nvectorBase.NvectorBase.trilaterate3d2: 2\n    test 411 nvectorBase.NvectorBase 'trilaterate3d2': 119.8958, 130.6508, -5.1451\n    test 412 nvectorBase.NvectorBase 'trilaterate3d2': 119.9999, 129.9999, 30.0019\n    test 413 pygeodesy.vector3d.trilaterate3d2: 2\n    test 414 nvectorBase.NvectorBase 'trilaterate3d2': 24.31229, -2.52045, 1.53649\n    test 415 nvectorBase.NvectorBase 'trilaterate3d2': 24.35062, -2.48109, 1.66673\n    test 416 pygeodesy.vector3d.trilaterate3d2: center1 (NvectorBase(22.59, 0.524, 1.2)), center2 (NvectorBase(25.475, -6.124, 2.36)), center3 (NvectorBase(22.59, 0.524, 1.2)), radius1 (3.851), radius2 (3.875) or radius3 (3.514): 'center1 and center3 near-concentric'\n    test 417 pygeodesy.vector3d.trilaterate3d2: center1 (NvectorBase(27.297, -4.953, 1.47)), center2 (NvectorBase(25.475, -6.124, 2.36)), center3 (NvectorBase(22.59, 0.524, 1.2)), radius1 (0.3851), radius2 (0.3875) or radius3 (3.514): 'center1 and center2 too distant (2.34)'\n    test 418 pygeodesy.vector3d.trilaterate3d2: center1 (NvectorBase(0.0, 0.0, 0.0)), center2 (NvectorBase(0.0, 9.0, 0.0)), center3 (NvectorBase(0.0, -9.0, 0.0)), radius1 (10), radius2 (10) or radius3 (10): 'colinear'\n    test 419 NvectorBase.trilaterate3d2: 2\n    test 420 nvectorBase.NvectorBase 'trilaterate3d2': 24.31229, -2.52045, 1.53649\n    test 421 nvectorBase.NvectorBase 'trilaterate3d2': 24.35062, -2.48109, 1.66673\n    test 422 NvectorBase.trilaterate3d2: center (NvectorBase(22.59, 0.524, 1.2)), center2 (NvectorBase(25.475, -6.124, 2.36)), center3 (NvectorBase(22.59, 0.524, 1.2)), radius (3.851), radius2 (3.875) or radius3 (3.514): 'center and center3 near-concentric'\n    test 423 NvectorBase.trilaterate3d2: center (NvectorBase(27.297, -4.953, 1.47)), center2 (NvectorBase(25.475, -6.124, 2.36)), center3 (NvectorBase(22.59, 0.524, 1.2)), radius (0.3851), radius2 (0.3875) or radius3 (3.514): 'center and center2 too distant (2.34)'\n    test 424 NvectorBase.trilaterate3d2: center (NvectorBase(0.0, 0.0, 0.0)), center2 (NvectorBase(0.0, 9.0, 0.0)), center3 (NvectorBase(0.0, -9.0, 0.0)), radius (10), radius2 (10) or radius3 (10): 'colinear'\n\n    testVector3d(pygeodesy.vector2d, 26.02.27)\n    test 425 vector3d.Vector3d.trilaterate3d2: 2\n    test 426 vector3d.Vector3d 'trilaterate3d2': 119.8958, 130.6508, -5.1451\n    test 427 vector3d.Vector3d 'trilaterate3d2': 119.9999, 129.9999, 30.0019\n    test 428 pygeodesy.vector3d.trilaterate3d2: 2\n    test 429 vector3d.Vector3d 'trilaterate3d2': 24.31229, -2.52045, 1.53649\n    test 430 vector3d.Vector3d 'trilaterate3d2': 24.35062, -2.48109, 1.66673\n    test 431 pygeodesy.vector3d.trilaterate3d2: center1 (Vector3d(22.59, 0.524, 1.2)), center2 (Vector3d(25.475, -6.124, 2.36)), center3 (Vector3d(22.59, 0.524, 1.2)), radius1 (3.851), radius2 (3.875) or radius3 (3.514): 'center1 and center3 near-concentric'\n    test 432 pygeodesy.vector3d.trilaterate3d2: center1 (Vector3d(27.297, -4.953, 1.47)), center2 (Vector3d(25.475, -6.124, 2.36)), center3 (Vector3d(22.59, 0.524, 1.2)), radius1 (0.3851), radius2 (0.3875) or radius3 (3.514): 'center1 and center2 too distant (2.34)'\n    test 433 pygeodesy.vector3d.trilaterate3d2: center1 (Vector3d(0.0, 0.0, 0.0)), center2 (Vector3d(0.0, 9.0, 0.0)), center3 (Vector3d(0.0, -9.0, 0.0)), radius1 (10), radius2 (10) or radius3 (10): 'colinear'\n    test 434 Vector3d.trilaterate3d2: 2\n    test 435 vector3d.Vector3d 'trilaterate3d2': 24.31229, -2.52045, 1.53649\n    test 436 vector3d.Vector3d 'trilaterate3d2': 24.35062, -2.48109, 1.66673\n    test 437 Vector3d.trilaterate3d2: center (Vector3d(22.59, 0.524, 1.2)), center2 (Vector3d(25.475, -6.124, 2.36)), center3 (Vector3d(22.59, 0.524, 1.2)), radius (3.851), radius2 (3.875) or radius3 (3.514): 'center and center3 near-concentric'\n    test 438 Vector3d.trilaterate3d2: center (Vector3d(27.297, -4.953, 1.47)), center2 (Vector3d(25.475, -6.124, 2.36)), center3 (Vector3d(22.59, 0.524, 1.2)), radius (0.3851), radius2 (0.3875) or radius3 (3.514): 'center and center2 too distant (2.34)'\n    test 439 Vector3d.trilaterate3d2: center (Vector3d(0.0, 0.0, 0.0)), center2 (Vector3d(0.0, 9.0, 0.0)), center3 (Vector3d(0.0, -9.0, 0.0)), radius (10), radius2 (10) or radius3 (10): 'colinear'\n\n    testTrilaterate2d2(pygeodesy.vector2d, 26.02.27)\n    test 440 trilaterate2d2: (2.0, 3.0)\n    test 441 trilaterate2d2: 'delta (6.39335377062e-06), radius1 (1.0), distance (1.00000639335) and trilaterate2d2(x=1.999994, y=3.000006)': exceeds eps (2.22045e-16)\n    test 442 trilaterate2d2: (-500.0, 250.0)\n    test 443 meeus2: 2.236, 3.0, 2.0, 0.0\n    test 444 meeus2: (3.0, 2.0, 0)\n    test 445 circum3: 2.2361\n    test 446 circum3: (3.0, 2.0, 0)\n    test 447 circum3: None\n    test 448 circum4_: 2.2361\n    test 449 circum4_: (3.0, 2.0, 0.0)  FAILED, KNOWN, expected (3.0, 2.0, 0)\n    test 450 circum4_: 3\n    test 451 circum4_: ()\n    test 452 radii11: Radii11Tuple(rA=2.236068, rB=0.92621, rC=2.236068, cR=2.236068, rIn=0.92621, riS=0.24193, roS=INF, a=3.162278, b=4.472136, c=3.162278, s=5.398346)\n    test 453 circin6: Circin6Tuple(radius=0.92621, center=Vector3d(2.58579, 2.82843, 0.0), deltas=None, cA=Vector3d(2.87868, 3.70711, 0.0), cB=Vector3d(3.0, 2.0, 0.0), cC=Vector3d(1.70711, 3.12132, 0.0))\n    test 454 soddy4: Soddy4Tuple(radius=0.24193, center=Vector3d(2.52241, 2.95518, 0), deltas=None, outer=INF)\n\n    testTrilaterate3d2(pygeodesy.vector2d, 26.02.27)\n    test 455 pygeodesy.vector2d.trilaterate3d2: center1 (Vector3d(-500.0, -200.0, 0.0)), center2 (Vector3d(100.0, -100.0, 0.0)), center3 (Vector3d(500.0, 100.0, 0.0)), radius1 (450.0), radius2 (694.6221994724903) or radius3 (1011.1874208078342): 'no intersection'\n    test 456 pygeodesy.vector2d.trilaterate3d2: 2\n    test 457 vector3d.Vector3d 'trilaterate3d2': -500.0, 250.0, -0.01311  FAILED, KNOWN, expected -500.0, 250.0, 0.0\n    test 458 vector3d.Vector3d 'trilaterate3d2': -500.0, 250.0, 0.01311  FAILED, KNOWN, expected -500.0, 250.0, 0.0\n    test 459 meeus2: 1.50\n    test 460 meeus2: None\n    test 461 meeus2: -0.000000035, 0.5, 0.000000035  FAILED, KNOWN, expected 0.0, 0.5, 0.0\n    test 462 meeus2: 0.000000035, 0.5, -0.000000035  FAILED, KNOWN, expected 0.0, 0.5, 0.0\n    test 463 circum3: 1.50\n    test 464 circum3: 0.0, 0.5, -0.0  FAILED, KNOWN, expected 0.0, 0.5, 0.0\n    test 465 circum3: None\n    test 466 circum4_: 1.50\n    test 467 circum4_: -0.0, 0.5, -0.0  FAILED, KNOWN, expected 0.0, 0.5, 0.0\n    test 468 circum4_: 3\n    test 469 circum4_: ()\n    test 470 radii11: Radii11Tuple(rA=1.414214, rB=1.035276, rC=1.414214, cR=1.5, rIn=0.732051, riS=0.195611, roS=INF, a=2.44949, b=2.828427, c=2.44949, s=3.863703)\n    test 471 circin6: Circin6Tuple(radius=0.732051, center=Vector3d(-0.0, 0.73205, 0.0), deltas=None, cA=Vector3d(0.42265, 1.1547, 0.42265), cB=Vector3d(0.0, 0.0, 0.0), cC=Vector3d(-0.42265, 1.1547, -0.42265))\n    test 472 soddy4: Soddy4Tuple(radius=0.195611, center=Vector3d(0.0, 0.76911, -0.0), deltas=None, outer=INF)\n\n    testIntersection3d3(pygeodesy.vector3d, 25.05.07)\n    test 473 (30, 17): (Vector3d(30.30584, 16.75258, 0.0), 0, 0)\n    test 474 (-1,  3): (Vector3d(-1.0429, 2.92225, 0.0), -1, -2)\n    test 475 (65, 32): (Vector3d(64.86667, 32.0, 0.0), 1, -2)\n    test 476 (-2, 17): <class 'pygeodesy.errors.IntersectionError'>\n    test 477 (49, 25): (Vector3d(49.0, 25.0, 0.0), 0, 0)\n\n    test 478 at 0: (0.0, 50.0, 0.0)\n    test 479 at 3: (2.6168, 49.93148, 0.0)\n    test 480 at 6: (5.22642, 49.72609, 0.0)\n    test 481 at 9: (7.82172, 49.38442, 0.0)\n    test 482 at 12: (10.39558, 48.90738, 0.0)\n    test 483 at 15: (12.94095, 48.29629, 0.0)\n    test 484 at 18: (15.45085, 47.55283, 0.0)\n    test 485 at 21: (17.9184, 46.67902, 0.0)\n    test 486 at 24: (20.33683, 45.67727, 0.0)\n    test 487 at 27: (22.69952, 44.55033, 0.0)\n    test 488 at 30: (25.0, 43.30127, 0.0)\n    test 489 at 33: (27.23195, 41.93353, 0.0)\n    test 490 at 36: (29.38926, 40.45085, 0.0)\n    test 491 at 39: (31.46602, 38.8573, 0.0)\n    test 492 at 42: (33.45653, 37.15724, 0.0)\n    test 493 at 45: (35.35534, 35.35534, 0.0)\n    test 494 at 48: (37.15724, 33.45653, 0.0)\n    test 495 at 51: (38.8573, 31.46602, 0.0)\n    test 496 at 54: (40.45085, 29.38926, 0.0)\n    test 497 at 57: (41.93353, 27.23195, 0.0)\n    test 498 at 60: (43.30127, 25.0, 0.0)\n    test 499 at 63: (44.55033, 22.69952, 0.0)\n    test 500 at 66: (45.67727, 20.33683, 0.0)\n    test 501 at 69: (46.67902, 17.9184, 0.0)\n    test 502 at 72: (47.55283, 15.45085, 0.0)\n    test 503 at 75: (48.29629, 12.94095, 0.0)\n    test 504 at 78: (48.90738, 10.39558, 0.0)\n    test 505 at 81: (49.38442, 7.82172, 0.0)\n    test 506 at 84: (49.72609, 5.22642, 0.0)\n    test 507 at 87: (49.93148, 2.6168, 0.0)\n    test 508 at 90: (50.0, 0.0, 0.0)\n    test 509 at 93: (49.93148, -2.6168, 0.0)\n    test 510 at 96: (49.72609, -5.22642, 0.0)\n    test 511 at 99: (49.38442, -7.82172, 0.0)\n    test 512 at 102: (48.90738, -10.39558, 0.0)\n    test 513 at 105: (48.29629, -12.94095, 0.0)\n    test 514 at 108: (47.55283, -15.45085, 0.0)\n    test 515 at 111: (46.67902, -17.9184, 0.0)\n    test 516 at 114: (45.67727, -20.33683, 0.0)\n    test 517 at 117: (44.55033, -22.69952, 0.0)\n    test 518 at 120: (43.30127, -25.0, 0.0)\n    test 519 at 123: (41.93353, -27.23195, 0.0)\n    test 520 at 126: (40.45085, -29.38926, 0.0)\n    test 521 at 129: (38.8573, -31.46602, 0.0)\n    test 522 at 132: (37.15724, -33.45653, 0.0)\n    test 523 at 135: (35.35534, -35.35534, 0.0)\n    test 524 at 138: (33.45653, -37.15724, 0.0)\n    test 525 at 141: (31.46602, -38.8573, 0.0)\n    test 526 at 144: (29.38926, -40.45085, 0.0)\n    test 527 at 147: (27.23195, -41.93353, 0.0)\n    test 528 at 150: (25.0, -43.30127, 0.0)\n    test 529 at 153: (22.69952, -44.55033, 0.0)\n    test 530 at 156: (20.33683, -45.67727, 0.0)\n    test 531 at 159: (17.9184, -46.67902, 0.0)\n    test 532 at 162: (15.45085, -47.55283, 0.0)\n    test 533 at 165: (12.94095, -48.29629, 0.0)\n    test 534 at 168: (10.39558, -48.90738, 0.0)\n    test 535 at 171: (7.82172, -49.38442, 0.0)\n    test 536 at 174: (5.22642, -49.72609, 0.0)\n    test 537 at 177: (2.6168, -49.93148, 0.0)\n    test 538 at 180: (0.0, -50.0, 0.0)\n    test 539 at 183: (-2.6168, -49.93148, 0.0)\n    test 540 at 186: (-5.22642, -49.72609, 0.0)\n    test 541 at 189: (-7.82172, -49.38442, 0.0)\n    test 542 at 192: (-10.39558, -48.90738, 0.0)\n    test 543 at 195: (-12.94095, -48.29629, 0.0)\n    test 544 at 198: (-15.45085, -47.55283, 0.0)\n    test 545 at 201: (-17.9184, -46.67902, 0.0)\n    test 546 at 204: (-20.33683, -45.67727, 0.0)\n    test 547 at 207: (-22.69952, -44.55033, 0.0)\n    test 548 at 210: (-25.0, -43.30127, 0.0)\n    test 549 at 213: (-27.23195, -41.93353, 0.0)\n    test 550 at 216: (-29.38926, -40.45085, 0.0)\n    test 551 at 219: (-31.46602, -38.8573, 0.0)\n    test 552 at 222: (-33.45653, -37.15724, 0.0)\n    test 553 at 225: (-35.35534, -35.35534, 0.0)\n    test 554 at 228: (-37.15724, -33.45653, 0.0)\n    test 555 at 231: (-38.8573, -31.46602, 0.0)\n    test 556 at 234: (-40.45085, -29.38926, 0.0)\n    test 557 at 237: (-41.93353, -27.23195, 0.0)\n    test 558 at 240: (-43.30127, -25.0, 0.0)\n    test 559 at 243: (-44.55033, -22.69952, 0.0)\n    test 560 at 246: (-45.67727, -20.33683, 0.0)\n    test 561 at 249: (-46.67902, -17.9184, 0.0)\n    test 562 at 252: (-47.55283, -15.45085, 0.0)\n    test 563 at 255: (-48.29629, -12.94095, 0.0)\n    test 564 at 258: (-48.90738, -10.39558, 0.0)\n    test 565 at 261: (-49.38442, -7.82172, 0.0)\n    test 566 at 264: (-49.72609, -5.22642, 0.0)\n    test 567 at 267: (-49.93148, -2.6168, 0.0)\n    test 568 at 270: (-50.0, 0.0, 0.0)\n    test 569 at 273: (-49.93148, 2.6168, 0.0)\n    test 570 at 276: (-49.72609, 5.22642, 0.0)\n    test 571 at 279: (-49.38442, 7.82172, 0.0)\n    test 572 at 282: (-48.90738, 10.39558, 0.0)\n    test 573 at 285: (-48.29629, 12.94095, 0.0)\n    test 574 at 288: (-47.55283, 15.45085, 0.0)\n    test 575 at 291: (-46.67902, 17.9184, 0.0)\n    test 576 at 294: (-45.67727, 20.33683, 0.0)\n    test 577 at 297: (-44.55033, 22.69952, 0.0)\n    test 578 at 300: (-43.30127, 25.0, 0.0)\n    test 579 at 303: (-41.93353, 27.23195, 0.0)\n    test 580 at 306: (-40.45085, 29.38926, 0.0)\n    test 581 at 309: (-38.8573, 31.46602, 0.0)\n    test 582 at 312: (-37.15724, 33.45653, 0.0)\n    test 583 at 315: (-35.35534, 35.35534, 0.0)\n    test 584 at 318: (-33.45653, 37.15724, 0.0)\n    test 585 at 321: (-31.46602, 38.8573, 0.0)\n    test 586 at 324: (-29.38926, 40.45085, 0.0)\n    test 587 at 327: (-27.23195, 41.93353, 0.0)\n    test 588 at 330: (-25.0, 43.30127, 0.0)\n    test 589 at 333: (-22.69952, 44.55033, 0.0)\n    test 590 at 336: (-20.33683, 45.67727, 0.0)\n    test 591 at 339: (-17.9184, 46.67902, 0.0)\n    test 592 at 342: (-15.45085, 47.55283, 0.0)\n    test 593 at 345: (-12.94095, 48.29629, 0.0)\n    test 594 at 348: (-10.39558, 48.90738, 0.0)\n    test 595 at 351: (-7.82172, 49.38442, 0.0)\n    test 596 at 354: (-5.22642, 49.72609, 0.0)\n    test 597 at 357: (-2.6168, 49.93148, 0.0)\n    test 598 at 360: (0.0, 50.0, 0.0)\n    test 599 max error: 2.4343737502e-13\n\n    51 of 599 testVectorial.py tests (8.5%) FAILED, incl. 14 KNOWN plus 37 DeprecationWarnings (pygeodesy 26.3.26 Python 3.12.10 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 2.1.0 scipy 1.14.1 Math 2 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 isLazy 3 -W  default) 384.592 ms\nrunning /usr/local/bin/p....n3.12 -W default ~/PyGeodesy/test/testWebMercator.py\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.F_D from .dms by testWebMercator.py line 12\n# lazily imported pygeodesy.F_DMS from .dms by testWebMercator.py line 12\n# lazily imported pygeodesy.R_M from .constants by testWebMercator.py line 12\n# lazily imported pygeodesy.R_MA from .constants by testWebMercator.py line 12\n# lazily imported pygeodesy.Datums from .datums by testWebMercator.py line 12\n# lazily imported pygeodesy.fstr from .streprs by testWebMercator.py line 12\n# lazily imported pygeodesy.toWm from .webmercator by testWebMercator.py line 12\n# lazily imported pygeodesy.Wm from .webmercator by testWebMercator.py line 12\n# lazily imported pygeodesy.ellipsoidalVincenty by testWebMercator.py line 153\n# lazily imported pygeodesy.sphericalTrigonometry by testWebMercator.py line 153\n\n    testing testWebMercator.py 23.06.12 (module pygeodesy.webmercator 25.05.12) isLazy=3\n    test 1 toWm1: -626172.13571216 6887893.4928338\n    test 2 Wm1.y: 6887893.49283380\n    test 3 copy(<class 'type'>): (<class 'pygeodesy.webmercator.Wm'>, True)\n    test 4 Wm.copy(): (<class 'pygeodesy.webmercator.Wm'>, True)\n    test 5 Wm2: 448251.795 5411932.678\n    test 6 Wm2: 448252 5411933\n    test 7 Wm2: 448251.8 5411932.7\n    test 8 copy(<class 'type'>): (<class 'pygeodesy.webmercator.Wm'>, True)\n    test 9 Wm.copy(): (<class 'pygeodesy.webmercator.Wm'>, True)\n    test 10 Wm2.to2ll: 43.65321741, 4.02671439\n    test 11 Wm2.toLatLon: (43.653217, 4.026714, Datum(name='_Wm', ellipsoid=Ellipsoids._Wm, transform=Transforms.Identity))\n    test 12 Wm2.toLatLon: 43.653217°N, 004.026714°E\n    test 13 Wm2.toLatLon: 43°39′11.58″N, 004°01′36.17″E\n    test 14 toWm1: 448251.795 5411932.678\n    test 15 toWm2: 448252 5411933\n    test 16 toWm3: [x:448252, y:5411933, radius:6378137]\n    test 17 copy: 448251.795 5411932.678\n    test 18 parse: 448251.795 5411932.678\n    test 19 parse: 448251.795 5411932.678\n    test 20 parse: [x:448251.795, y:5411932.678, radius:6378137.0]\n    test 21 toWm4: 11549466 1505215\n    test 22 toWm4: 11549465.988273 1505214.929251\n    test 23 toWm4E: 11562388 1496994\n    test 24 toWm4E: 11562388.154378 1496993.698095\n    test 25 toWm: -11169056 2800000\n    test 26 toWm: -11169055.576258 2800000.003136\n    test 27 toWm5E: -11169056 2782367\n    test 28 toWm5E: -11169055.576258 2782367.05923\n    test 29 toWm5: -11156573 2796871\n    test 30 toWm5: -11156573.000041 2796870.713179\n    test 31 Wm6.toLatLon: 24.46358°N, 100.333333°W\n    test 32 Wm6.toLatLon: 24°27′48.89″N, 100°20′00.0″W\n    test 33 Wm6.toLatLonE: 24.299812°N, 100.333333°W\n    test 34 Wm6.toLatLonE: 24°17′59.32″N, 100°20′00.0″W\n    test 35 Wm7.toLatLon: 24.381787°N, 100.333333°W\n    test 36 Wm7.toLatLon: 24°22′54.43″N, 100°20′00.0″W\n    test 37 Wm7.toLatLonE: 24.218566°N, 100.333333°W\n    test 38 Wm7.toLatLonE: 24°13′06.84″N, 100°20′00.0″W\n    test 39 Wm8.toWm: -33878.893, 6693890.382, 6378137.0\n    test 40 Wm8.toWm: [x:-33878.893, y:6693890.382]\n    test 41 Wm8.toWm: -33878.893 6693890.382 6371008.771\n    test 42 Wm8.toWm.x: -33878.893\n    test 43 Wm8.toWm.y: 6693890.382\n    test 44 Wm8.toWm.latlon: 51.408596, -0.304339\n    test 45 Wm8.toWm.philam: 0.897249, -0.005312\n    test 46 Wm8.toLatLon: 51.408596053784°N, 000.304339270785°W\n    test 47 Wm8.toLatLon: 51°24′30.945794″N, 000°18′15.621375″W\n# imported pygeodesy.streprs into errors.py line 553\n    test 48 Wm9.toLatLon: TypeError\n\n    test 49 toWm(10.0000, 0, earth=R_MA).y: 1118889.97\n    test 50 toWm(20.0000, 0, earth=R_MA).y: 2273030.93\n    test 51 toWm(30.0000, 0, earth=R_MA).y: 3503549.84\n    test 52 toWm(40.0000, 0, earth=R_MA).y: 4865942.28\n    test 53 toWm(50.0000, 0, earth=R_MA).y: 6446275.84\n    test 54 toWm(60.0000, 0, earth=R_MA).y: 8399737.89\n\n    test 55 toWm(10.0003, 0, earth=R_MA).y: 1118921.37\n    test 56 toWm(20.0003, 0, earth=R_MA).y: 2273063.83\n    test 57 toWm(30.0003, 0, earth=R_MA).y: 3503585.55\n    test 58 toWm(40.0003, 0, earth=R_MA).y: 4865982.65\n    test 59 toWm(50.0003, 0, earth=R_MA).y: 6446323.95\n    test 60 toWm(60.0003, 0, earth=R_MA).y: 8399799.73\n\n    test 61 toWm(10.0000, 0, earth=WGS84).y: 1111475.10\n    test 62 toWm(20.0000, 0, earth=WGS84).y: 2258423.65\n    test 63 toWm(30.0000, 0, earth=WGS84).y: 3482189.09\n    test 64 toWm(40.0000, 0, earth=WGS84).y: 4838471.40\n    test 65 toWm(50.0000, 0, earth=WGS84).y: 6413524.59\n    test 66 toWm(60.0000, 0, earth=WGS84).y: 8362698.55\n\n    test 67 toWm(10.0003, 0, earth=WGS84).y: 1111506.30\n    test 68 toWm(20.0003, 0, earth=WGS84).y: 2258456.36\n    test 69 toWm(30.0003, 0, earth=WGS84).y: 3482224.61\n    test 70 toWm(40.0003, 0, earth=WGS84).y: 4838511.61\n    test 71 toWm(50.0003, 0, earth=WGS84).y: 6413572.57\n    test 72 toWm(60.0003, 0, earth=WGS84).y: 8362760.29\n\n    all 72 testWebMercator.py tests passed (pygeodesy 26.3.26 Python 3.12.10 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 2.1.0 scipy 1.14.1 Math 2 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 isLazy 3 -W  default) 3.226 ms\nrunning /usr/local/bin/p....n3.12 -W default ~/PyGeodesy/test/testWgrs.py\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.degDMS from .dms by testWgrs.py line 11\n# lazily imported pygeodesy.fstr from .streprs by testWgrs.py line 11\n# lazily imported pygeodesy.Georef from .wgrs by testWgrs.py line 11\n# lazily imported pygeodesy.S_DEG from .dms by testWgrs.py line 11\n# lazily imported pygeodesy.S_MIN from .dms by testWgrs.py line 11\n# lazily imported pygeodesy.ellipsoidalVincenty by testWgrs.py line 96\n\n    testing testWgrs.py 23.03.27 (module pygeodesy.wgrs 25.04.14) isLazy=3\n    test 1 Georef: 'NKLN2444638946'\n    test 2 Georef: Georef('NKLN2444638946')\n    test 3 Georef: NKLN2444638946\n    test 4 Georef.latlon: 57.64911, 10.40744\n    test 5 Georef.toLatLon: LatLon(57°38′56.8″N, 010°24′26.78″E)\n    test 6 codec3: NKLN2444638946\n    test 7 decode3: 57.64911, 10.40744, 6.0\n    test 8 encode: NKLN2444638946\n    test 9 Georef: 'NKLN2444638946H0'\n    test 10 Georef: Georef('NKLN2444638946H0')\n    test 11 Georef: NKLN2444638946H0\n    test 12 Georef.latlon: 57.64911, 10.40744\n    test 13 Georef.precision: 6\n    test 14 Georef.radius: None\n    test 15 Georef: 'GJPJ3424917166'\n    test 16 Georef: Georef('GJPJ3424917166')\n    test 17 Georef: GJPJ3424917166\n    test 18 Georef.latlon: 38.286108, -76.42917\n    test 19 Georef.toLatLon: LatLon(38°17′09.99″N, 076°25′45.01″W)\n    test 20 codec3: GJPJ3424917166\n    test 21 decode3: 38.286108, -76.429175, 6.0\n    test 22 encode: GJPJ3424917166\n    test 23 Georef: 'GJPJ3424917166H0'\n    test 24 Georef: Georef('GJPJ3424917166H0')\n    test 25 Georef: GJPJ3424917166H0\n    test 26 Georef.latlon: 38.286108, -76.42917\n    test 27 Georef.precision: 6\n    test 28 Georef.radius: None\n    test 29 Georef.3Tuple: 38.286108, -76.42917, 0.0\n    test 30 codec3: MKPG1204\n    test 31 decode3: 51.075, -1.7917, 3.0\n    test 32 encode: MKPG1204\n    test 33 codec3: WJKG1503\n    test 34 decode3: 36.0583, 129.2583, 3.0\n    test 35 encode: WJKG1503\n    test 36 codec5: GJPJ4103R5\n    test 37 decode5: 38.0583, -76.3083, 3.0, None, 9260.0\n    test 38 encode: GJPJ4103R5\n    test 39 codec5: GJPJ4103H17\n    test 40 decode5: 38.0583, -76.3083, 3.0, 5181.6, None\n    test 41 encode: GJPJ4103H17\n    test 42 codec5: GJPJ4103R5H17\n    test 43 decode5: 38.0583, -76.3083, 3.0, 5181.6, 9260.0\n    test 44 encode: GJPJ4103R5H17\n    test 45 precision: -1  FAILED, KNOWN, expected 0\n    test 46 resolution: 15°\n    test 47 precision: 0\n    test 48 resolution: 15°\n    test 49 precision: 1\n    test 50 resolution: 1°\n    test 51 precision: 2\n    test 52 resolution: 0.1′\n    test 53 precision: 3\n    test 54 resolution: 0.01′\n    test 55 precision: 4\n    test 56 resolution: 0.001′\n    test 57 precision: 5\n    test 58 resolution: 0.0001′\n    test 59 precision: 6\n    test 60 resolution: 0.00001′\n    test 61 precision: 7\n    test 62 resolution: 0.000001′\n    test 63 precision: 8\n    test 64 resolution: 0.0000001′\n    test 65 precision: 9\n    test 66 resolution: 0.00000001′\n    test 67 precision: 10\n    test 68 resolution: 0.000000001′\n    test 69 precision: 11\n    test 70 resolution: 0.0000000001′\n    test 71 precision: 12  FAILED, KNOWN, expected 11\n    test 72 resolution: 0.0000000001′\n\n    2 of 72 testWgrs.py tests (2.8%) FAILED, ALL KNOWN (pygeodesy 26.3.26 Python 3.12.10 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 2.1.0 scipy 1.14.1 Math 2 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 isLazy 3 -W  default) 2.369 ms\n\ntest/run.py /usr/local/bin/p....n3.12 -W default: all 50008 tests OK (pygeodesy 26.3.26 Python 3.12.10 64bit arm64 coverage 7.10.7 geographiclib 2.0 numpy 2.1.0 scipy 1.14.1 Math 2 GeodSolve 2.7 Geod3Solve 2.7 IntersectTool 2.7 RhumbSolve 2.7 macOS 26.3.1 isLazy 3 -W default) 26:46.701 (31.125 tps)\n"
  },
  {
    "path": "testresults/testresults-pygeodesy-26.3.26-Python-3.13.12-64bit-arm64-coverage-7.10.7-geographiclib-2.1.....2-Math-2-GeoConvert-2.7-GeodSolve-2.7-Geod3Solve-2.7-macOS-26.3.1-isLazy-1--W-default.txt",
    "content": "test/run.py typical test results (pygeodesy 26.3.26 Python 3.13.12 64bit arm64 coverage 7.10.7 geographiclib 2.1 numpy 2.3.3 scipy 1.16.2 Math 2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 macOS 26.3.1 isLazy 1 -W default)\nrunning /Library/Framewo....n3.13 -W default ~/PyGeodesy/test/testAlbers.py\n\n    testing testAlbers.py 24.12.31 (module pygeodesy.albers 26.02.27) isLazy=1\n    test 1 name: Karney_example\n    test 2 datum: WGS84\n    test 3 ellipsoid: WGS84\n    test 4 lat0: 40.451991337063\n    test 5 scale0: 0.999959500363\n    test 6 equatoradius: 6378137.000000000000\n    test 7 flattening: 0.003352810665\n    test 8 _sign: 1.000000000000\n    test 9 _m02: 0.580681094922\n    test 10 _n0: 0.648810669236\n    test 11 _txi0: 0.848822476849\n    test 12 iteration: 3\n    test 13 ispolar: False\n    test 14 forward: -5675721.76113533, 2516917.91242155, 39.95, -75.17, 311.23285234, 0.99999745  FAILED, KNOWN, expected -5675721.76113534, 2516917.91242155, 39.95, -75.17, 311.23285234, 0.99999745\n    test 15 reverse: -5675721.76113533, 2516917.91242155, 39.95, -75.17, 311.23285234, 0.99999745  FAILED, KNOWN, expected -5675721.76113534, 2516917.91242155, 39.95, -75.17, 311.23285234, 0.99999745\n    test 16 forward: 199089.12574012, -53115.52801838, 39.95, 2.33, 1.51160641, 0.99999745\n    test 17 reverse: 199089.12574012, -53115.52801838, 39.95, -75.17, 1.51160641, 0.99999745  FAILED, KNOWN, expected 199089.12574012, -53115.52801838, 39.95, 2.33, 1.51160641, 0.99999745\n    test 18 reverse: 220000.0, -53000.0, 39.94581132, 2.57463362, 1.67031446, 0.99999808\n    test 19 forward: 220000.0, -53000.0, 39.94581132, 2.57463362, 1.67031446, 0.99999808\n    test 20 reverse: 220000.0, -53000.0, 39.94581132, -74.92536638, 1.67031446, 0.99999808\n    test 21 forward: 220000.0, -53000.0, 39.94581132, 2.57463362, 1.67031446, 0.99999808  FAILED, KNOWN, expected 220000.0, -53000.0, 39.94581132, -74.92536638, 1.67031446, 0.99999808\n\n    testPage292(pygeodesy.albers, 26.02.27)\n    test 22 name: Snyder_p292\n    test 23 datum: NAD27\n    test 24 ellipsoid: Clarke1866\n    test 25 lat0: 37.934543880726\n    test 26 scale0: 0.990309187872\n    test 27 equatoradius: 6378206.400000000373\n    test 28 flattening: 0.003390075304\n    test 29 _sign: 1.000000000000\n    test 30 _m02: 0.623664507732\n    test 31 _n0: 0.614760830736\n    test 32 _txi0: 0.775925617021\n    test 33 iteration: 4\n    test 34 ispolar: False\n    test 35 forward: -6105839.22928149, 2214046.74930275, 35.0, -75.0, 314.78223745, 0.99155461  FAILED, KNOWN, expected -6105839.22928148, 2214046.74930274, 35.0, -75.0, 314.78223745, 0.99155461\n    test 36 reverse: -6105839.22928149, 2214046.74930275, 35.0, -75.0, 314.78223745, 0.99155461  FAILED, KNOWN, expected -6105839.22928148, 2214046.74930274, 35.0, -75.0, 314.78223745, 0.99155461\n    test 37 forward: 1885472.72581347, -119505.66687765, 35.0, 21.0, 12.66097351, 0.99155461  FAILED, KNOWN, expected 1885472.72581347, -119505.66687766, 35.0, 21.0, 12.66097351, 0.99155461\n    test 38 reverse: 1885472.72581347, -119505.66687765, 35.0, -75.0, 12.66097351, 0.99155461  FAILED, KNOWN, expected 1885472.72581347, -119505.66687766, 35.0, 21.0, 12.66097351, 0.99155461\n    test 39 reverse: 1885427.7, 1535925.0, 49.40436665, 25.93001383, 15.63329611, 1.01436109\n    test 40 forward: 1885427.7, 1535925.0, 49.40436665, 25.93001383, 15.63329611, 1.01436109\n    test 41 reverse: 1885427.7, 1535925.0, 49.40436665, -70.06998617, 15.63329611, 1.01436109\n    test 42 forward: 1885427.7, 1535925.0, 49.40436665, 25.93001383, 15.63329611, 1.01436109  FAILED, KNOWN, expected 1885427.7, 1535925.0, 49.40436665, -70.06998617, 15.63329611, 1.01436109\n\n    testTable15(pygeodesy.albers, 26.02.27)\n    test 43 52 k: 1.02863\n    test 44 50 k: 1.01727\n    test 45 45.5 k: 1.00000\n    test 46 45 k: 0.99869\n    test 47 40 k: 0.99097\n    test 48 35 k: 0.99155\n    test 49 30 k: 0.99893\n    test 50 29.5 k: 1.00000\n    test 51 25 k: 1.01222\n    test 52 22 k: 1.02283\n\n    testLats(pygeodesy.albers, 26.02.27)\n    test 53 AlbersEqualArea.toRepr: AlbersEqualArea(45.0, k0=1.0)\n    test 54 AlbersEqualArea.lat0: 45.0\n    test 55 AlbersEqualArea.lat1: 45.0\n    test 56 AlbersEqualArea.lat2: 45.0\n\n    test 57 AlbersEqualArea2.toRepr: AlbersEqualArea2(40.0, 40.0, k1=1.0)\n    test 58 AlbersEqualArea2.lat0: 40.0\n    test 59 AlbersEqualArea2.lat1: 40.0\n    test 60 AlbersEqualArea2.lat2: 40.0\n\n    test 61 AlbersEqualArea4.toRepr: AlbersEqualArea4(30.0, 30.0, k1=1.0)\n    test 62 AlbersEqualArea4.lat0: 30.0\n    test 63 AlbersEqualArea4.lat1: 30.0\n    test 64 AlbersEqualArea4.lat2: 30.0\n\n    test 65 AlbersEqualArea4.toRepr: AlbersEqualArea4(-30.0, -30.0, k1=1.0)\n    test 66 AlbersEqualArea4.lat0: -30.0\n    test 67 AlbersEqualArea4.lat1: -30.0\n    test 68 AlbersEqualArea4.lat2: -30.0\n\n    test 69 AlbersEqualAreaCylindrical.toRepr: AlbersEqualAreaCylindrical(0.0)\n    test 70 AlbersEqualAreaCylindrical.lat0: 0.0\n    test 71 AlbersEqualAreaCylindrical.lat1: 0.0\n    test 72 AlbersEqualAreaCylindrical.lat2: 0.0\n\n    test 73 AlbersEqualAreaNorth.toRepr: AlbersEqualAreaNorth(90.0)\n    test 74 AlbersEqualAreaNorth.lat0: 90.0\n    test 75 AlbersEqualAreaNorth.lat1: 90.0\n    test 76 AlbersEqualAreaNorth.lat2: 90.0\n\n    test 77 AlbersEqualAreaSouth.toRepr: AlbersEqualAreaSouth(-90.0)\n    test 78 AlbersEqualAreaSouth.lat0: -90.0\n    test 79 AlbersEqualAreaSouth.lat1: -90.0\n    test 80 AlbersEqualAreaSouth.lat2: -90.0\n\n    test 81 error: clat1 (-0.8660254037844386) or clat2 (1.0): negative\n    test 82 error: slat1 (-0.5) or slat2 (0.5): negative\n\n    9 of 82 testAlbers.py tests (11.0%) FAILED, ALL KNOWN (pygeodesy 26.3.26 Python 3.13.12 64bit arm64 coverage 7.10.7 geographiclib 2.1 numpy 2.3.3 scipy 1.16.2 Math 2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 macOS 26.3.1 isLazy 1 -W  default) 200.491 ms\nrunning /Library/Framewo....n3.13 -W default ~/PyGeodesy/test/testAngles.py\n\n    testing testAngles.py 25.12.01 (module pygeodesy.angles 25.12.02) isLazy=1\n    test 1 D: -716.000000\n    test 2 r: -12.496557\n    test 3 n: -2.0\n    test 4 R: -7.160000\n    test 5 d: -410.237781\n    test 6 n: -1.0\n    test 7 D: -713.000000\n    test 8 r: -12.444198\n    test 9 n: -2.0\n    test 10 R: -7.130000\n    test 11 d: -408.518908\n    test 12 n: -1.0\n    test 13 D: -710.000000\n    test 14 r: -12.391838\n    test 15 n: -2.0\n    test 16 R: -7.100000\n    test 17 d: -406.800035\n    test 18 n: -1.0\n    test 19 D: -707.000000\n    test 20 r: -12.339478\n    test 21 n: -2.0\n    test 22 R: -7.070000\n    test 23 d: -405.081161\n    test 24 n: -1.0\n    test 25 D: -704.000000\n    test 26 r: -12.287118\n    test 27 n: -2.0\n    test 28 R: -7.040000\n    test 29 d: -403.362288\n    test 30 n: -1.0\n    test 31 D: -701.000000\n    test 32 r: -12.234758\n    test 33 n: -2.0\n    test 34 R: -7.010000\n    test 35 d: -401.643414\n    test 36 n: -1.0\n    test 37 D: -698.000000\n    test 38 r: -12.182398\n    test 39 n: -2.0\n    test 40 R: -6.980000\n    test 41 d: -399.924541\n    test 42 n: -1.0\n    test 43 D: -695.000000\n    test 44 r: -12.130038\n    test 45 n: -2.0\n    test 46 R: -6.950000\n    test 47 d: -398.205668\n    test 48 n: -1.0\n    test 49 D: -692.000000\n    test 50 r: -12.077678\n    test 51 n: -2.0\n    test 52 R: -6.920000\n    test 53 d: -396.486794\n    test 54 n: -1.0\n    test 55 D: -689.000000\n    test 56 r: -12.025319\n    test 57 n: -2.0\n    test 58 R: -6.890000\n    test 59 d: -394.767921\n    test 60 n: -1.0\n    test 61 D: -686.000000\n    test 62 r: -11.972959\n    test 63 n: -2.0\n    test 64 R: -6.860000\n    test 65 d: -393.049047\n    test 66 n: -1.0\n    test 67 D: -683.000000\n    test 68 r: -11.920599\n    test 69 n: -2.0\n    test 70 R: -6.830000\n    test 71 d: -391.330174\n    test 72 n: -1.0\n    test 73 D: -680.000000\n    test 74 r: -11.868239\n    test 75 n: -2.0\n    test 76 R: -6.800000\n    test 77 d: -389.611301\n    test 78 n: -1.0\n    test 79 D: -677.000000\n    test 80 r: -11.815879\n    test 81 n: -2.0\n    test 82 R: -6.770000\n    test 83 d: -387.892427\n    test 84 n: -1.0\n    test 85 D: -674.000000\n    test 86 r: -11.763519\n    test 87 n: -2.0\n    test 88 R: -6.740000\n    test 89 d: -386.173554\n    test 90 n: -1.0\n    test 91 D: -671.000000\n    test 92 r: -11.711159\n    test 93 n: -2.0\n    test 94 R: -6.710000\n    test 95 d: -384.454681\n    test 96 n: -1.0\n    test 97 D: -668.000000\n    test 98 r: -11.658799\n    test 99 n: -2.0\n    test 100 R: -6.680000\n    test 101 d: -382.735807\n    test 102 n: -1.0\n    test 103 D: -665.000000\n    test 104 r: -11.606440\n    test 105 n: -2.0\n    test 106 R: -6.650000\n    test 107 d: -381.016934\n    test 108 n: -1.0\n    test 109 D: -662.000000\n    test 110 r: -11.554080\n    test 111 n: -2.0\n    test 112 R: -6.620000\n    test 113 d: -379.298060\n    test 114 n: -1.0\n    test 115 D: -659.000000\n    test 116 r: -11.501720\n    test 117 n: -2.0\n    test 118 R: -6.590000\n    test 119 d: -377.579187\n    test 120 n: -1.0\n    test 121 D: -656.000000\n    test 122 r: -11.449360\n    test 123 n: -2.0\n    test 124 R: -6.560000\n    test 125 d: -375.860314\n    test 126 n: -1.0\n    test 127 D: -653.000000\n    test 128 r: -11.397000\n    test 129 n: -2.0\n    test 130 R: -6.530000\n    test 131 d: -374.141440\n    test 132 n: -1.0\n    test 133 D: -650.000000\n    test 134 r: -11.344640\n    test 135 n: -2.0\n    test 136 R: -6.500000\n    test 137 d: -372.422567\n    test 138 n: -1.0\n    test 139 D: -647.000000\n    test 140 r: -11.292280\n    test 141 n: -2.0\n    test 142 R: -6.470000\n    test 143 d: -370.703693\n    test 144 n: -1.0\n    test 145 D: -644.000000\n    test 146 r: -11.239920\n    test 147 n: -2.0\n    test 148 R: -6.440000\n    test 149 d: -368.984820\n    test 150 n: -1.0\n    test 151 D: -641.000000\n    test 152 r: -11.187561\n    test 153 n: -2.0\n    test 154 R: -6.410000\n    test 155 d: -367.265947\n    test 156 n: -1.0\n    test 157 D: -638.000000\n    test 158 r: -11.135201\n    test 159 n: -2.0\n    test 160 R: -6.380000\n    test 161 d: -365.547073\n    test 162 n: -1.0\n    test 163 D: -635.000000\n    test 164 r: -11.082841\n    test 165 n: -2.0\n    test 166 R: -6.350000\n    test 167 d: -363.828200\n    test 168 n: -1.0\n    test 169 D: -632.000000\n    test 170 r: -11.030481\n    test 171 n: -2.0\n    test 172 R: -6.320000\n    test 173 d: -362.109327\n    test 174 n: -1.0\n    test 175 D: -629.000000\n    test 176 r: -10.978121\n    test 177 n: -2.0\n    test 178 R: -6.290000\n    test 179 d: -360.390453\n    test 180 n: -1.0\n    test 181 D: -626.000000\n    test 182 r: -10.925761\n    test 183 n: -2.0\n    test 184 R: -6.260000\n    test 185 d: -358.671580\n    test 186 n: -1.0\n    test 187 D: -623.000000\n    test 188 r: -10.873401\n    test 189 n: -2.0\n    test 190 R: -6.230000\n    test 191 d: -356.952706\n    test 192 n: -1.0\n    test 193 D: -620.000000\n    test 194 r: -10.821041\n    test 195 n: -2.0\n    test 196 R: -6.200000\n    test 197 d: -355.233833\n    test 198 n: -1.0\n    test 199 D: -617.000000\n    test 200 r: -10.768681\n    test 201 n: -2.0\n    test 202 R: -6.170000\n    test 203 d: -353.514960\n    test 204 n: -1.0\n    test 205 D: -614.000000\n    test 206 r: -10.716322\n    test 207 n: -2.0\n    test 208 R: -6.140000\n    test 209 d: -351.796086\n    test 210 n: -1.0\n    test 211 D: -611.000000\n    test 212 r: -10.663962\n    test 213 n: -2.0\n    test 214 R: -6.110000\n    test 215 d: -350.077213\n    test 216 n: -1.0\n    test 217 D: -608.000000\n    test 218 r: -10.611602\n    test 219 n: -2.0\n    test 220 R: -6.080000\n    test 221 d: -348.358339\n    test 222 n: -1.0\n    test 223 D: -605.000000\n    test 224 r: -10.559242\n    test 225 n: -2.0\n    test 226 R: -6.050000\n    test 227 d: -346.639466\n    test 228 n: -1.0\n    test 229 D: -602.000000\n    test 230 r: -10.506882\n    test 231 n: -2.0\n    test 232 R: -6.020000\n    test 233 d: -344.920593\n    test 234 n: -1.0\n    test 235 D: -599.000000\n    test 236 r: -10.454522\n    test 237 n: -2.0\n    test 238 R: -5.990000\n    test 239 d: -343.201719\n    test 240 n: -1.0\n    test 241 D: -596.000000\n    test 242 r: -10.402162\n    test 243 n: -2.0\n    test 244 R: -5.960000\n    test 245 d: -341.482846\n    test 246 n: -1.0\n    test 247 D: -593.000000\n    test 248 r: -10.349802\n    test 249 n: -2.0\n    test 250 R: -5.930000\n    test 251 d: -339.763973\n    test 252 n: -1.0\n    test 253 D: -590.000000\n    test 254 r: -10.297443\n    test 255 n: -2.0\n    test 256 R: -5.900000\n    test 257 d: -338.045099\n    test 258 n: -1.0\n    test 259 D: -587.000000\n    test 260 r: -10.245083\n    test 261 n: -2.0\n    test 262 R: -5.870000\n    test 263 d: -336.326226\n    test 264 n: -1.0\n    test 265 D: -584.000000\n    test 266 r: -10.192723\n    test 267 n: -2.0\n    test 268 R: -5.840000\n    test 269 d: -334.607352\n    test 270 n: -1.0\n    test 271 D: -581.000000\n    test 272 r: -10.140363\n    test 273 n: -2.0\n    test 274 R: -5.810000\n    test 275 d: -332.888479\n    test 276 n: -1.0\n    test 277 D: -578.000000\n    test 278 r: -10.088003\n    test 279 n: -2.0\n    test 280 R: -5.780000\n    test 281 d: -331.169606\n    test 282 n: -1.0\n    test 283 D: -575.000000\n    test 284 r: -10.035643\n    test 285 n: -2.0\n    test 286 R: -5.750000\n    test 287 d: -329.450732\n    test 288 n: -1.0\n    test 289 D: -572.000000\n    test 290 r: -9.983283\n    test 291 n: -2.0\n    test 292 R: -5.720000\n    test 293 d: -327.731859\n    test 294 n: -1.0\n    test 295 D: -569.000000\n    test 296 r: -9.930923\n    test 297 n: -2.0\n    test 298 R: -5.690000\n    test 299 d: -326.012985\n    test 300 n: -1.0\n    test 301 D: -566.000000\n    test 302 r: -9.878564\n    test 303 n: -2.0\n    test 304 R: -5.660000\n    test 305 d: -324.294112\n    test 306 n: -1.0\n    test 307 D: -563.000000\n    test 308 r: -9.826204\n    test 309 n: -2.0\n    test 310 R: -5.630000\n    test 311 d: -322.575239\n    test 312 n: -1.0\n    test 313 D: -560.000000\n    test 314 r: -9.773844\n    test 315 n: -2.0\n    test 316 R: -5.600000\n    test 317 d: -320.856365\n    test 318 n: -1.0\n    test 319 D: -557.000000\n    test 320 r: -9.721484\n    test 321 n: -2.0\n    test 322 R: -5.570000\n    test 323 d: -319.137492\n    test 324 n: -1.0\n    test 325 D: -554.000000\n    test 326 r: -9.669124\n    test 327 n: -2.0\n    test 328 R: -5.540000\n    test 329 d: -317.418619\n    test 330 n: -1.0\n    test 331 D: -551.000000\n    test 332 r: -9.616764\n    test 333 n: -2.0\n    test 334 R: -5.510000\n    test 335 d: -315.699745\n    test 336 n: -1.0\n    test 337 D: -548.000000\n    test 338 r: -9.564404\n    test 339 n: -2.0\n    test 340 R: -5.480000\n    test 341 d: -313.980872\n    test 342 n: -1.0\n    test 343 D: -545.000000\n    test 344 r: -9.512044\n    test 345 n: -2.0\n    test 346 R: -5.450000\n    test 347 d: -312.261998\n    test 348 n: -1.0\n    test 349 D: -542.000000\n    test 350 r: -9.459685\n    test 351 n: -2.0\n    test 352 R: -5.420000\n    test 353 d: -310.543125\n    test 354 n: -1.0\n    test 355 D: -539.000000\n    test 356 r: -9.407325\n    test 357 n: -1.0\n    test 358 R: -5.390000\n    test 359 d: -308.824252\n    test 360 n: -1.0\n    test 361 D: -536.000000\n    test 362 r: -9.354965\n    test 363 n: -1.0\n    test 364 R: -5.360000\n    test 365 d: -307.105378\n    test 366 n: -1.0\n    test 367 D: -533.000000\n    test 368 r: -9.302605\n    test 369 n: -1.0\n    test 370 R: -5.330000\n    test 371 d: -305.386505\n    test 372 n: -1.0\n    test 373 D: -530.000000\n    test 374 r: -9.250245\n    test 375 n: -1.0\n    test 376 R: -5.300000\n    test 377 d: -303.667631\n    test 378 n: -1.0\n    test 379 D: -527.000000\n    test 380 r: -9.197885\n    test 381 n: -1.0\n    test 382 R: -5.270000\n    test 383 d: -301.948758\n    test 384 n: -1.0\n    test 385 D: -524.000000\n    test 386 r: -9.145525\n    test 387 n: -1.0\n    test 388 R: -5.240000\n    test 389 d: -300.229885\n    test 390 n: -1.0\n    test 391 D: -521.000000\n    test 392 r: -9.093165\n    test 393 n: -1.0\n    test 394 R: -5.210000\n    test 395 d: -298.511011\n    test 396 n: -1.0\n    test 397 D: -518.000000\n    test 398 r: -9.040806\n    test 399 n: -1.0\n    test 400 R: -5.180000\n    test 401 d: -296.792138\n    test 402 n: -1.0\n    test 403 D: -515.000000\n    test 404 r: -8.988446\n    test 405 n: -1.0\n    test 406 R: -5.150000\n    test 407 d: -295.073264\n    test 408 n: -1.0\n    test 409 D: -512.000000\n    test 410 r: -8.936086\n    test 411 n: -1.0\n    test 412 R: -5.120000\n    test 413 d: -293.354391\n    test 414 n: -1.0\n    test 415 D: -509.000000\n    test 416 r: -8.883726\n    test 417 n: -1.0\n    test 418 R: -5.090000\n    test 419 d: -291.635518\n    test 420 n: -1.0\n    test 421 D: -506.000000\n    test 422 r: -8.831366\n    test 423 n: -1.0\n    test 424 R: -5.060000\n    test 425 d: -289.916644\n    test 426 n: -1.0\n    test 427 D: -503.000000\n    test 428 r: -8.779006\n    test 429 n: -1.0\n    test 430 R: -5.030000\n    test 431 d: -288.197771\n    test 432 n: -1.0\n    test 433 D: -500.000000\n    test 434 r: -8.726646\n    test 435 n: -1.0\n    test 436 R: -5.000000\n    test 437 d: -286.478898\n    test 438 n: -1.0\n    test 439 D: -497.000000\n    test 440 r: -8.674286\n    test 441 n: -1.0\n    test 442 R: -4.970000\n    test 443 d: -284.760024\n    test 444 n: -1.0\n    test 445 D: -494.000000\n    test 446 r: -8.621927\n    test 447 n: -1.0\n    test 448 R: -4.940000\n    test 449 d: -283.041151\n    test 450 n: -1.0\n    test 451 D: -491.000000\n    test 452 r: -8.569567\n    test 453 n: -1.0\n    test 454 R: -4.910000\n    test 455 d: -281.322277\n    test 456 n: -1.0\n    test 457 D: -488.000000\n    test 458 r: -8.517207\n    test 459 n: -1.0\n    test 460 R: -4.880000\n    test 461 d: -279.603404\n    test 462 n: -1.0\n    test 463 D: -485.000000\n    test 464 r: -8.464847\n    test 465 n: -1.0\n    test 466 R: -4.850000\n    test 467 d: -277.884531\n    test 468 n: -1.0\n    test 469 D: -482.000000\n    test 470 r: -8.412487\n    test 471 n: -1.0\n    test 472 R: -4.820000\n    test 473 d: -276.165657\n    test 474 n: -1.0\n    test 475 D: -479.000000\n    test 476 r: -8.360127\n    test 477 n: -1.0\n    test 478 R: -4.790000\n    test 479 d: -274.446784\n    test 480 n: -1.0\n    test 481 D: -476.000000\n    test 482 r: -8.307767\n    test 483 n: -1.0\n    test 484 R: -4.760000\n    test 485 d: -272.727910\n    test 486 n: -1.0\n    test 487 D: -473.000000\n    test 488 r: -8.255407\n    test 489 n: -1.0\n    test 490 R: -4.730000\n    test 491 d: -271.009037\n    test 492 n: -1.0\n    test 493 D: -470.000000\n    test 494 r: -8.203047\n    test 495 n: -1.0\n    test 496 R: -4.700000\n    test 497 d: -269.290164\n    test 498 n: -1.0\n    test 499 D: -467.000000\n    test 500 r: -8.150688\n    test 501 n: -1.0\n    test 502 R: -4.670000\n    test 503 d: -267.571290\n    test 504 n: -1.0\n    test 505 D: -464.000000\n    test 506 r: -8.098328\n    test 507 n: -1.0\n    test 508 R: -4.640000\n    test 509 d: -265.852417\n    test 510 n: -1.0\n    test 511 D: -461.000000\n    test 512 r: -8.045968\n    test 513 n: -1.0\n    test 514 R: -4.610000\n    test 515 d: -264.133544\n    test 516 n: -1.0\n    test 517 D: -458.000000\n    test 518 r: -7.993608\n    test 519 n: -1.0\n    test 520 R: -4.580000\n    test 521 d: -262.414670\n    test 522 n: -1.0\n    test 523 D: -455.000000\n    test 524 r: -7.941248\n    test 525 n: -1.0\n    test 526 R: -4.550000\n    test 527 d: -260.695797\n    test 528 n: -1.0\n    test 529 D: -452.000000\n    test 530 r: -7.888888\n    test 531 n: -1.0\n    test 532 R: -4.520000\n    test 533 d: -258.976923\n    test 534 n: -1.0\n    test 535 D: -449.000000\n    test 536 r: -7.836528\n    test 537 n: -1.0\n    test 538 R: -4.490000\n    test 539 d: -257.258050\n    test 540 n: -1.0\n    test 541 D: -446.000000\n    test 542 r: -7.784168\n    test 543 n: -1.0\n    test 544 R: -4.460000\n    test 545 d: -255.539177\n    test 546 n: -1.0\n    test 547 D: -443.000000\n    test 548 r: -7.731809\n    test 549 n: -1.0\n    test 550 R: -4.430000\n    test 551 d: -253.820303\n    test 552 n: -1.0\n    test 553 D: -440.000000\n    test 554 r: -7.679449\n    test 555 n: -1.0\n    test 556 R: -4.400000\n    test 557 d: -252.101430\n    test 558 n: -1.0\n    test 559 D: -437.000000\n    test 560 r: -7.627089\n    test 561 n: -1.0\n    test 562 R: -4.370000\n    test 563 d: -250.382556\n    test 564 n: -1.0\n    test 565 D: -434.000000\n    test 566 r: -7.574729\n    test 567 n: -1.0\n    test 568 R: -4.340000\n    test 569 d: -248.663683\n    test 570 n: -1.0\n    test 571 D: -431.000000\n    test 572 r: -7.522369\n    test 573 n: -1.0\n    test 574 R: -4.310000\n    test 575 d: -246.944810\n    test 576 n: -1.0\n    test 577 D: -428.000000\n    test 578 r: -7.470009\n    test 579 n: -1.0\n    test 580 R: -4.280000\n    test 581 d: -245.225936\n    test 582 n: -1.0\n    test 583 D: -425.000000\n    test 584 r: -7.417649\n    test 585 n: -1.0\n    test 586 R: -4.250000\n    test 587 d: -243.507063\n    test 588 n: -1.0\n    test 589 D: -422.000000\n    test 590 r: -7.365289\n    test 591 n: -1.0\n    test 592 R: -4.220000\n    test 593 d: -241.788190\n    test 594 n: -1.0\n    test 595 D: -419.000000\n    test 596 r: -7.312930\n    test 597 n: -1.0\n    test 598 R: -4.190000\n    test 599 d: -240.069316\n    test 600 n: -1.0\n    test 601 D: -416.000000\n    test 602 r: -7.260570\n    test 603 n: -1.0\n    test 604 R: -4.160000\n    test 605 d: -238.350443\n    test 606 n: -1.0\n    test 607 D: -413.000000\n    test 608 r: -7.208210\n    test 609 n: -1.0\n    test 610 R: -4.130000\n    test 611 d: -236.631569\n    test 612 n: -1.0\n    test 613 D: -410.000000\n    test 614 r: -7.155850\n    test 615 n: -1.0\n    test 616 R: -4.100000\n    test 617 d: -234.912696\n    test 618 n: -1.0\n    test 619 D: -407.000000\n    test 620 r: -7.103490\n    test 621 n: -1.0\n    test 622 R: -4.070000\n    test 623 d: -233.193823\n    test 624 n: -1.0\n    test 625 D: -404.000000\n    test 626 r: -7.051130\n    test 627 n: -1.0\n    test 628 R: -4.040000\n    test 629 d: -231.474949\n    test 630 n: -1.0\n    test 631 D: -401.000000\n    test 632 r: -6.998770\n    test 633 n: -1.0\n    test 634 R: -4.010000\n    test 635 d: -229.756076\n    test 636 n: -1.0\n    test 637 D: -398.000000\n    test 638 r: -6.946410\n    test 639 n: -1.0\n    test 640 R: -3.980000\n    test 641 d: -228.037202\n    test 642 n: -1.0\n    test 643 D: -395.000000\n    test 644 r: -6.894051\n    test 645 n: -1.0\n    test 646 R: -3.950000\n    test 647 d: -226.318329\n    test 648 n: -1.0\n    test 649 D: -392.000000\n    test 650 r: -6.841691\n    test 651 n: -1.0\n    test 652 R: -3.920000\n    test 653 d: -224.599456\n    test 654 n: -1.0\n    test 655 D: -389.000000\n    test 656 r: -6.789331\n    test 657 n: -1.0\n    test 658 R: -3.890000\n    test 659 d: -222.880582\n    test 660 n: -1.0\n    test 661 D: -386.000000\n    test 662 r: -6.736971\n    test 663 n: -1.0\n    test 664 R: -3.860000\n    test 665 d: -221.161709\n    test 666 n: -1.0\n    test 667 D: -383.000000\n    test 668 r: -6.684611\n    test 669 n: -1.0\n    test 670 R: -3.830000\n    test 671 d: -219.442836\n    test 672 n: -1.0\n    test 673 D: -380.000000\n    test 674 r: -6.632251\n    test 675 n: -1.0\n    test 676 R: -3.800000\n    test 677 d: -217.723962\n    test 678 n: -1.0\n    test 679 D: -377.000000\n    test 680 r: -6.579891\n    test 681 n: -1.0\n    test 682 R: -3.770000\n    test 683 d: -216.005089\n    test 684 n: -1.0\n    test 685 D: -374.000000\n    test 686 r: -6.527531\n    test 687 n: -1.0\n    test 688 R: -3.740000\n    test 689 d: -214.286215\n    test 690 n: -1.0\n    test 691 D: -371.000000\n    test 692 r: -6.475172\n    test 693 n: -1.0\n    test 694 R: -3.710000\n    test 695 d: -212.567342\n    test 696 n: -1.0\n    test 697 D: -368.000000\n    test 698 r: -6.422812\n    test 699 n: -1.0\n    test 700 R: -3.680000\n    test 701 d: -210.848469\n    test 702 n: -1.0\n    test 703 D: -365.000000\n    test 704 r: -6.370452\n    test 705 n: -1.0\n    test 706 R: -3.650000\n    test 707 d: -209.129595\n    test 708 n: -1.0\n    test 709 D: -362.000000\n    test 710 r: -6.318092\n    test 711 n: -1.0\n    test 712 R: -3.620000\n    test 713 d: -207.410722\n    test 714 n: -1.0\n    test 715 D: -359.000000\n    test 716 r: -6.265732\n    test 717 n: -1.0\n    test 718 R: -3.590000\n    test 719 d: -205.691848\n    test 720 n: -1.0\n    test 721 D: -356.000000\n    test 722 r: -6.213372\n    test 723 n: -1.0\n    test 724 R: -3.560000\n    test 725 d: -203.972975\n    test 726 n: -1.0\n    test 727 D: -353.000000\n    test 728 r: -6.161012\n    test 729 n: -1.0\n    test 730 R: -3.530000\n    test 731 d: -202.254102\n    test 732 n: -1.0\n    test 733 D: -350.000000\n    test 734 r: -6.108652\n    test 735 n: -1.0\n    test 736 R: -3.500000\n    test 737 d: -200.535228\n    test 738 n: -1.0\n    test 739 D: -347.000000\n    test 740 r: -6.056293\n    test 741 n: -1.0\n    test 742 R: -3.470000\n    test 743 d: -198.816355\n    test 744 n: -1.0\n    test 745 D: -344.000000\n    test 746 r: -6.003933\n    test 747 n: -1.0\n    test 748 R: -3.440000\n    test 749 d: -197.097482\n    test 750 n: -1.0\n    test 751 D: -341.000000\n    test 752 r: -5.951573\n    test 753 n: -1.0\n    test 754 R: -3.410000\n    test 755 d: -195.378608\n    test 756 n: -1.0\n    test 757 D: -338.000000\n    test 758 r: -5.899213\n    test 759 n: -1.0\n    test 760 R: -3.380000\n    test 761 d: -193.659735\n    test 762 n: -1.0\n    test 763 D: -335.000000\n    test 764 r: -5.846853\n    test 765 n: -1.0\n    test 766 R: -3.350000\n    test 767 d: -191.940861\n    test 768 n: -1.0\n    test 769 D: -332.000000\n    test 770 r: -5.794493\n    test 771 n: -1.0\n    test 772 R: -3.320000\n    test 773 d: -190.221988\n    test 774 n: -1.0\n    test 775 D: -329.000000\n    test 776 r: -5.742133\n    test 777 n: -1.0\n    test 778 R: -3.290000\n    test 779 d: -188.503115\n    test 780 n: -1.0\n    test 781 D: -326.000000\n    test 782 r: -5.689773\n    test 783 n: -1.0\n    test 784 R: -3.260000\n    test 785 d: -186.784241\n    test 786 n: -1.0\n    test 787 D: -323.000000\n    test 788 r: -5.637413\n    test 789 n: -1.0\n    test 790 R: -3.230000\n    test 791 d: -185.065368\n    test 792 n: -1.0\n    test 793 D: -320.000000\n    test 794 r: -5.585054\n    test 795 n: -1.0\n    test 796 R: -3.200000\n    test 797 d: -183.346494\n    test 798 n: -1.0\n    test 799 D: -317.000000\n    test 800 r: -5.532694\n    test 801 n: -1.0\n    test 802 R: -3.170000\n    test 803 d: -181.627621\n    test 804 n: -1.0\n    test 805 D: -314.000000\n    test 806 r: -5.480334\n    test 807 n: -1.0\n    test 808 R: -3.140000\n    test 809 d: -179.908748\n    test 810 n: 0.0\n    test 811 D: -311.000000\n    test 812 r: -5.427974\n    test 813 n: -1.0\n    test 814 R: -3.110000\n    test 815 d: -178.189874\n    test 816 n: 0.0\n    test 817 D: -308.000000\n    test 818 r: -5.375614\n    test 819 n: -1.0\n    test 820 R: -3.080000\n    test 821 d: -176.471001\n    test 822 n: 0.0\n    test 823 D: -305.000000\n    test 824 r: -5.323254\n    test 825 n: -1.0\n    test 826 R: -3.050000\n    test 827 d: -174.752128\n    test 828 n: 0.0\n    test 829 D: -302.000000\n    test 830 r: -5.270894\n    test 831 n: -1.0\n    test 832 R: -3.020000\n    test 833 d: -173.033254\n    test 834 n: 0.0\n    test 835 D: -299.000000\n    test 836 r: -5.218534\n    test 837 n: -1.0\n    test 838 R: -2.990000\n    test 839 d: -171.314381\n    test 840 n: 0.0\n    test 841 D: -296.000000\n    test 842 r: -5.166175\n    test 843 n: -1.0\n    test 844 R: -2.960000\n    test 845 d: -169.595507\n    test 846 n: 0.0\n    test 847 D: -293.000000\n    test 848 r: -5.113815\n    test 849 n: -1.0\n    test 850 R: -2.930000\n    test 851 d: -167.876634\n    test 852 n: 0.0\n    test 853 D: -290.000000\n    test 854 r: -5.061455\n    test 855 n: -1.0\n    test 856 R: -2.900000\n    test 857 d: -166.157761\n    test 858 n: 0.0\n    test 859 D: -287.000000\n    test 860 r: -5.009095\n    test 861 n: -1.0\n    test 862 R: -2.870000\n    test 863 d: -164.438887\n    test 864 n: 0.0\n    test 865 D: -284.000000\n    test 866 r: -4.956735\n    test 867 n: -1.0\n    test 868 R: -2.840000\n    test 869 d: -162.720014\n    test 870 n: 0.0\n    test 871 D: -281.000000\n    test 872 r: -4.904375\n    test 873 n: -1.0\n    test 874 R: -2.810000\n    test 875 d: -161.001140\n    test 876 n: 0.0\n    test 877 D: -278.000000\n    test 878 r: -4.852015\n    test 879 n: -1.0\n    test 880 R: -2.780000\n    test 881 d: -159.282267\n    test 882 n: 0.0\n    test 883 D: -275.000000\n    test 884 r: -4.799655\n    test 885 n: -1.0\n    test 886 R: -2.750000\n    test 887 d: -157.563394\n    test 888 n: 0.0\n    test 889 D: -272.000000\n    test 890 r: -4.747296\n    test 891 n: -1.0\n    test 892 R: -2.720000\n    test 893 d: -155.844520\n    test 894 n: 0.0\n    test 895 D: -269.000000\n    test 896 r: -4.694936\n    test 897 n: -1.0\n    test 898 R: -2.690000\n    test 899 d: -154.125647\n    test 900 n: 0.0\n    test 901 D: -266.000000\n    test 902 r: -4.642576\n    test 903 n: -1.0\n    test 904 R: -2.660000\n    test 905 d: -152.406774\n    test 906 n: 0.0\n    test 907 D: -263.000000\n    test 908 r: -4.590216\n    test 909 n: -1.0\n    test 910 R: -2.630000\n    test 911 d: -150.687900\n    test 912 n: 0.0\n    test 913 D: -260.000000\n    test 914 r: -4.537856\n    test 915 n: -1.0\n    test 916 R: -2.600000\n    test 917 d: -148.969027\n    test 918 n: 0.0\n    test 919 D: -257.000000\n    test 920 r: -4.485496\n    test 921 n: -1.0\n    test 922 R: -2.570000\n    test 923 d: -147.250153\n    test 924 n: 0.0\n    test 925 D: -254.000000\n    test 926 r: -4.433136\n    test 927 n: -1.0\n    test 928 R: -2.540000\n    test 929 d: -145.531280\n    test 930 n: 0.0\n    test 931 D: -251.000000\n    test 932 r: -4.380776\n    test 933 n: -1.0\n    test 934 R: -2.510000\n    test 935 d: -143.812407\n    test 936 n: 0.0\n    test 937 D: -248.000000\n    test 938 r: -4.328417\n    test 939 n: -1.0\n    test 940 R: -2.480000\n    test 941 d: -142.093533\n    test 942 n: 0.0\n    test 943 D: -245.000000\n    test 944 r: -4.276057\n    test 945 n: -1.0\n    test 946 R: -2.450000\n    test 947 d: -140.374660\n    test 948 n: 0.0\n    test 949 D: -242.000000\n    test 950 r: -4.223697\n    test 951 n: -1.0\n    test 952 R: -2.420000\n    test 953 d: -138.655786\n    test 954 n: 0.0\n    test 955 D: -239.000000\n    test 956 r: -4.171337\n    test 957 n: -1.0\n    test 958 R: -2.390000\n    test 959 d: -136.936913\n    test 960 n: 0.0\n    test 961 D: -236.000000\n    test 962 r: -4.118977\n    test 963 n: -1.0\n    test 964 R: -2.360000\n    test 965 d: -135.218040\n    test 966 n: 0.0\n    test 967 D: -233.000000\n    test 968 r: -4.066617\n    test 969 n: -1.0\n    test 970 R: -2.330000\n    test 971 d: -133.499166\n    test 972 n: 0.0\n    test 973 D: -230.000000\n    test 974 r: -4.014257\n    test 975 n: -1.0\n    test 976 R: -2.300000\n    test 977 d: -131.780293\n    test 978 n: 0.0\n    test 979 D: -227.000000\n    test 980 r: -3.961897\n    test 981 n: -1.0\n    test 982 R: -2.270000\n    test 983 d: -130.061419\n    test 984 n: 0.0\n    test 985 D: -224.000000\n    test 986 r: -3.909538\n    test 987 n: -1.0\n    test 988 R: -2.240000\n    test 989 d: -128.342546\n    test 990 n: 0.0\n    test 991 D: -221.000000\n    test 992 r: -3.857178\n    test 993 n: -1.0\n    test 994 R: -2.210000\n    test 995 d: -126.623673\n    test 996 n: 0.0\n    test 997 D: -218.000000\n    test 998 r: -3.804818\n    test 999 n: -1.0\n    test 1000 R: -2.180000\n    test 1001 d: -124.904799\n    test 1002 n: 0.0\n    test 1003 D: -215.000000\n    test 1004 r: -3.752458\n    test 1005 n: -1.0\n    test 1006 R: -2.150000\n    test 1007 d: -123.185926\n    test 1008 n: 0.0\n    test 1009 D: -212.000000\n    test 1010 r: -3.700098\n    test 1011 n: -1.0\n    test 1012 R: -2.120000\n    test 1013 d: -121.467053\n    test 1014 n: 0.0\n    test 1015 D: -209.000000\n    test 1016 r: -3.647738\n    test 1017 n: -1.0\n    test 1018 R: -2.090000\n    test 1019 d: -119.748179\n    test 1020 n: 0.0\n    test 1021 D: -206.000000\n    test 1022 r: -3.595378\n    test 1023 n: -1.0\n    test 1024 R: -2.060000\n    test 1025 d: -118.029306\n    test 1026 n: 0.0\n    test 1027 D: -203.000000\n    test 1028 r: -3.543018\n    test 1029 n: -1.0\n    test 1030 R: -2.030000\n    test 1031 d: -116.310432\n    test 1032 n: 0.0\n    test 1033 D: -200.000000\n    test 1034 r: -3.490659\n    test 1035 n: -1.0\n    test 1036 R: -2.000000\n    test 1037 d: -114.591559\n    test 1038 n: 0.0\n    test 1039 D: -197.000000\n    test 1040 r: -3.438299\n    test 1041 n: -1.0\n    test 1042 R: -1.970000\n    test 1043 d: -112.872686\n    test 1044 n: 0.0\n    test 1045 D: -194.000000\n    test 1046 r: -3.385939\n    test 1047 n: -1.0\n    test 1048 R: -1.940000\n    test 1049 d: -111.153812\n    test 1050 n: 0.0\n    test 1051 D: -191.000000\n    test 1052 r: -3.333579\n    test 1053 n: -1.0\n    test 1054 R: -1.910000\n    test 1055 d: -109.434939\n    test 1056 n: 0.0\n    test 1057 D: -188.000000\n    test 1058 r: -3.281219\n    test 1059 n: -1.0\n    test 1060 R: -1.880000\n    test 1061 d: -107.716065\n    test 1062 n: 0.0\n    test 1063 D: -185.000000\n    test 1064 r: -3.228859\n    test 1065 n: -1.0\n    test 1066 R: -1.850000\n    test 1067 d: -105.997192\n    test 1068 n: 0.0\n    test 1069 D: -182.000000\n    test 1070 r: -3.176499\n    test 1071 n: -1.0\n    test 1072 R: -1.820000\n    test 1073 d: -104.278319\n    test 1074 n: 0.0\n    test 1075 D: -179.000000\n    test 1076 r: -3.124139\n    test 1077 n: 0.0\n    test 1078 R: -1.790000\n    test 1079 d: -102.559445\n    test 1080 n: 0.0\n    test 1081 D: -176.000000\n    test 1082 r: -3.071779\n    test 1083 n: 0.0\n    test 1084 R: -1.760000\n    test 1085 d: -100.840572\n    test 1086 n: 0.0\n    test 1087 D: -173.000000\n    test 1088 r: -3.019420\n    test 1089 n: 0.0\n    test 1090 R: -1.730000\n    test 1091 d: -99.121699\n    test 1092 n: 0.0\n    test 1093 D: -170.000000\n    test 1094 r: -2.967060\n    test 1095 n: 0.0\n    test 1096 R: -1.700000\n    test 1097 d: -97.402825\n    test 1098 n: 0.0\n    test 1099 D: -167.000000\n    test 1100 r: -2.914700\n    test 1101 n: 0.0\n    test 1102 R: -1.670000\n    test 1103 d: -95.683952\n    test 1104 n: 0.0\n    test 1105 D: -164.000000\n    test 1106 r: -2.862340\n    test 1107 n: 0.0\n    test 1108 R: -1.640000\n    test 1109 d: -93.965078\n    test 1110 n: 0.0\n    test 1111 D: -161.000000\n    test 1112 r: -2.809980\n    test 1113 n: 0.0\n    test 1114 R: -1.610000\n    test 1115 d: -92.246205\n    test 1116 n: 0.0\n    test 1117 D: -158.000000\n    test 1118 r: -2.757620\n    test 1119 n: 0.0\n    test 1120 R: -1.580000\n    test 1121 d: -90.527332\n    test 1122 n: 0.0\n    test 1123 D: -155.000000\n    test 1124 r: -2.705260\n    test 1125 n: 0.0\n    test 1126 R: -1.550000\n    test 1127 d: -88.808458\n    test 1128 n: 0.0\n    test 1129 D: -152.000000\n    test 1130 r: -2.652900\n    test 1131 n: 0.0\n    test 1132 R: -1.520000\n    test 1133 d: -87.089585\n    test 1134 n: 0.0\n    test 1135 D: -149.000000\n    test 1136 r: -2.600541\n    test 1137 n: 0.0\n    test 1138 R: -1.490000\n    test 1139 d: -85.370711\n    test 1140 n: 0.0\n    test 1141 D: -146.000000\n    test 1142 r: -2.548181\n    test 1143 n: 0.0\n    test 1144 R: -1.460000\n    test 1145 d: -83.651838\n    test 1146 n: 0.0\n    test 1147 D: -143.000000\n    test 1148 r: -2.495821\n    test 1149 n: 0.0\n    test 1150 R: -1.430000\n    test 1151 d: -81.932965\n    test 1152 n: 0.0\n    test 1153 D: -140.000000\n    test 1154 r: -2.443461\n    test 1155 n: 0.0\n    test 1156 R: -1.400000\n    test 1157 d: -80.214091\n    test 1158 n: 0.0\n    test 1159 D: -137.000000\n    test 1160 r: -2.391101\n    test 1161 n: 0.0\n    test 1162 R: -1.370000\n    test 1163 d: -78.495218\n    test 1164 n: 0.0\n    test 1165 D: -134.000000\n    test 1166 r: -2.338741\n    test 1167 n: 0.0\n    test 1168 R: -1.340000\n    test 1169 d: -76.776345\n    test 1170 n: 0.0\n    test 1171 D: -131.000000\n    test 1172 r: -2.286381\n    test 1173 n: 0.0\n    test 1174 R: -1.310000\n    test 1175 d: -75.057471\n    test 1176 n: 0.0\n    test 1177 D: -128.000000\n    test 1178 r: -2.234021\n    test 1179 n: 0.0\n    test 1180 R: -1.280000\n    test 1181 d: -73.338598\n    test 1182 n: 0.0\n    test 1183 D: -125.000000\n    test 1184 r: -2.181662\n    test 1185 n: 0.0\n    test 1186 R: -1.250000\n    test 1187 d: -71.619724\n    test 1188 n: 0.0\n    test 1189 D: -122.000000\n    test 1190 r: -2.129302\n    test 1191 n: 0.0\n    test 1192 R: -1.220000\n    test 1193 d: -69.900851\n    test 1194 n: 0.0\n    test 1195 D: -119.000000\n    test 1196 r: -2.076942\n    test 1197 n: 0.0\n    test 1198 R: -1.190000\n    test 1199 d: -68.181978\n    test 1200 n: 0.0\n    test 1201 D: -116.000000\n    test 1202 r: -2.024582\n    test 1203 n: 0.0\n    test 1204 R: -1.160000\n    test 1205 d: -66.463104\n    test 1206 n: 0.0\n    test 1207 D: -113.000000\n    test 1208 r: -1.972222\n    test 1209 n: 0.0\n    test 1210 R: -1.130000\n    test 1211 d: -64.744231\n    test 1212 n: 0.0\n    test 1213 D: -110.000000\n    test 1214 r: -1.919862\n    test 1215 n: 0.0\n    test 1216 R: -1.100000\n    test 1217 d: -63.025357\n    test 1218 n: 0.0\n    test 1219 D: -107.000000\n    test 1220 r: -1.867502\n    test 1221 n: 0.0\n    test 1222 R: -1.070000\n    test 1223 d: -61.306484\n    test 1224 n: 0.0\n    test 1225 D: -104.000000\n    test 1226 r: -1.815142\n    test 1227 n: 0.0\n    test 1228 R: -1.040000\n    test 1229 d: -59.587611\n    test 1230 n: 0.0\n    test 1231 D: -101.000000\n    test 1232 r: -1.762783\n    test 1233 n: 0.0\n    test 1234 R: -1.010000\n    test 1235 d: -57.868737\n    test 1236 n: 0.0\n    test 1237 D: -98.000000\n    test 1238 r: -1.710423\n    test 1239 n: 0.0\n    test 1240 R: -0.980000\n    test 1241 d: -56.149864\n    test 1242 n: 0.0\n    test 1243 D: -95.000000\n    test 1244 r: -1.658063\n    test 1245 n: 0.0\n    test 1246 R: -0.950000\n    test 1247 d: -54.430991\n    test 1248 n: 0.0\n    test 1249 D: -92.000000\n    test 1250 r: -1.605703\n    test 1251 n: 0.0\n    test 1252 R: -0.920000\n    test 1253 d: -52.712117\n    test 1254 n: 0.0\n    test 1255 D: -89.000000\n    test 1256 r: -1.553343\n    test 1257 n: 0.0\n    test 1258 R: -0.890000\n    test 1259 d: -50.993244\n    test 1260 n: 0.0\n    test 1261 D: -86.000000\n    test 1262 r: -1.500983\n    test 1263 n: 0.0\n    test 1264 R: -0.860000\n    test 1265 d: -49.274370\n    test 1266 n: 0.0\n    test 1267 D: -83.000000\n    test 1268 r: -1.448623\n    test 1269 n: 0.0\n    test 1270 R: -0.830000\n    test 1271 d: -47.555497\n    test 1272 n: 0.0\n    test 1273 D: -80.000000\n    test 1274 r: -1.396263\n    test 1275 n: 0.0\n    test 1276 R: -0.800000\n    test 1277 d: -45.836624\n    test 1278 n: 0.0\n    test 1279 D: -77.000000\n    test 1280 r: -1.343904\n    test 1281 n: 0.0\n    test 1282 R: -0.770000\n    test 1283 d: -44.117750\n    test 1284 n: 0.0\n    test 1285 D: -74.000000\n    test 1286 r: -1.291544\n    test 1287 n: 0.0\n    test 1288 R: -0.740000\n    test 1289 d: -42.398877\n    test 1290 n: 0.0\n    test 1291 D: -71.000000\n    test 1292 r: -1.239184\n    test 1293 n: 0.0\n    test 1294 R: -0.710000\n    test 1295 d: -40.680003\n    test 1296 n: 0.0\n    test 1297 D: -68.000000\n    test 1298 r: -1.186824\n    test 1299 n: 0.0\n    test 1300 R: -0.680000\n    test 1301 d: -38.961130\n    test 1302 n: 0.0\n    test 1303 D: -65.000000\n    test 1304 r: -1.134464\n    test 1305 n: 0.0\n    test 1306 R: -0.650000\n    test 1307 d: -37.242257\n    test 1308 n: 0.0\n    test 1309 D: -62.000000\n    test 1310 r: -1.082104\n    test 1311 n: 0.0\n    test 1312 R: -0.620000\n    test 1313 d: -35.523383\n    test 1314 n: 0.0\n    test 1315 D: -59.000000\n    test 1316 r: -1.029744\n    test 1317 n: 0.0\n    test 1318 R: -0.590000\n    test 1319 d: -33.804510\n    test 1320 n: 0.0\n    test 1321 D: -56.000000\n    test 1322 r: -0.977384\n    test 1323 n: 0.0\n    test 1324 R: -0.560000\n    test 1325 d: -32.085637\n    test 1326 n: 0.0\n    test 1327 D: -53.000000\n    test 1328 r: -0.925025\n    test 1329 n: 0.0\n    test 1330 R: -0.530000\n    test 1331 d: -30.366763\n    test 1332 n: 0.0\n    test 1333 D: -50.000000\n    test 1334 r: -0.872665\n    test 1335 n: 0.0\n    test 1336 R: -0.500000\n    test 1337 d: -28.647890\n    test 1338 n: 0.0\n    test 1339 D: -47.000000\n    test 1340 r: -0.820305\n    test 1341 n: 0.0\n    test 1342 R: -0.470000\n    test 1343 d: -26.929016\n    test 1344 n: 0.0\n    test 1345 D: -44.000000\n    test 1346 r: -0.767945\n    test 1347 n: 0.0\n    test 1348 R: -0.440000\n    test 1349 d: -25.210143\n    test 1350 n: 0.0\n    test 1351 D: -41.000000\n    test 1352 r: -0.715585\n    test 1353 n: 0.0\n    test 1354 R: -0.410000\n    test 1355 d: -23.491270\n    test 1356 n: 0.0\n    test 1357 D: -38.000000\n    test 1358 r: -0.663225\n    test 1359 n: 0.0\n    test 1360 R: -0.380000\n    test 1361 d: -21.772396\n    test 1362 n: 0.0\n    test 1363 D: -35.000000\n    test 1364 r: -0.610865\n    test 1365 n: 0.0\n    test 1366 R: -0.350000\n    test 1367 d: -20.053523\n    test 1368 n: 0.0\n    test 1369 D: -32.000000\n    test 1370 r: -0.558505\n    test 1371 n: 0.0\n    test 1372 R: -0.320000\n    test 1373 d: -18.334649\n    test 1374 n: 0.0\n    test 1375 D: -29.000000\n    test 1376 r: -0.506145\n    test 1377 n: 0.0\n    test 1378 R: -0.290000\n    test 1379 d: -16.615776\n    test 1380 n: 0.0\n    test 1381 D: -26.000000\n    test 1382 r: -0.453786\n    test 1383 n: 0.0\n    test 1384 R: -0.260000\n    test 1385 d: -14.896903\n    test 1386 n: 0.0\n    test 1387 D: -23.000000\n    test 1388 r: -0.401426\n    test 1389 n: 0.0\n    test 1390 R: -0.230000\n    test 1391 d: -13.178029\n    test 1392 n: 0.0\n    test 1393 D: -20.000000\n    test 1394 r: -0.349066\n    test 1395 n: 0.0\n    test 1396 R: -0.200000\n    test 1397 d: -11.459156\n    test 1398 n: 0.0\n    test 1399 D: -17.000000\n    test 1400 r: -0.296706\n    test 1401 n: 0.0\n    test 1402 R: -0.170000\n    test 1403 d: -9.740283\n    test 1404 n: 0.0\n    test 1405 D: -14.000000\n    test 1406 r: -0.244346\n    test 1407 n: 0.0\n    test 1408 R: -0.140000\n    test 1409 d: -8.021409\n    test 1410 n: 0.0\n    test 1411 D: -11.000000\n    test 1412 r: -0.191986\n    test 1413 n: 0.0\n    test 1414 R: -0.110000\n    test 1415 d: -6.302536\n    test 1416 n: 0.0\n    test 1417 D: -8.000000\n    test 1418 r: -0.139626\n    test 1419 n: 0.0\n    test 1420 R: -0.080000\n    test 1421 d: -4.583662\n    test 1422 n: 0.0\n    test 1423 D: -5.000000\n    test 1424 r: -0.087266\n    test 1425 n: 0.0\n    test 1426 R: -0.050000\n    test 1427 d: -2.864789\n    test 1428 n: 0.0\n    test 1429 D: -2.000000\n    test 1430 r: -0.034907\n    test 1431 n: 0.0\n    test 1432 R: -0.020000\n    test 1433 d: -1.145916\n    test 1434 n: 0.0\n    test 1435 D: 1.000000\n    test 1436 r: 0.017453\n    test 1437 n: 0.0\n    test 1438 R: 0.010000\n    test 1439 d: 0.572958\n    test 1440 n: 0.0\n    test 1441 D: 4.000000\n    test 1442 r: 0.069813\n    test 1443 n: 0.0\n    test 1444 R: 0.040000\n    test 1445 d: 2.291831\n    test 1446 n: 0.0\n    test 1447 D: 7.000000\n    test 1448 r: 0.122173\n    test 1449 n: 0.0\n    test 1450 R: 0.070000\n    test 1451 d: 4.010705\n    test 1452 n: 0.0\n    test 1453 D: 10.000000\n    test 1454 r: 0.174533\n    test 1455 n: 0.0\n    test 1456 R: 0.100000\n    test 1457 d: 5.729578\n    test 1458 n: 0.0\n    test 1459 D: 13.000000\n    test 1460 r: 0.226893\n    test 1461 n: 0.0\n    test 1462 R: 0.130000\n    test 1463 d: 7.448451\n    test 1464 n: 0.0\n    test 1465 D: 16.000000\n    test 1466 r: 0.279253\n    test 1467 n: 0.0\n    test 1468 R: 0.160000\n    test 1469 d: 9.167325\n    test 1470 n: 0.0\n    test 1471 D: 19.000000\n    test 1472 r: 0.331613\n    test 1473 n: 0.0\n    test 1474 R: 0.190000\n    test 1475 d: 10.886198\n    test 1476 n: 0.0\n    test 1477 D: 22.000000\n    test 1478 r: 0.383972\n    test 1479 n: 0.0\n    test 1480 R: 0.220000\n    test 1481 d: 12.605071\n    test 1482 n: 0.0\n    test 1483 D: 25.000000\n    test 1484 r: 0.436332\n    test 1485 n: 0.0\n    test 1486 R: 0.250000\n    test 1487 d: 14.323945\n    test 1488 n: 0.0\n    test 1489 D: 28.000000\n    test 1490 r: 0.488692\n    test 1491 n: 0.0\n    test 1492 R: 0.280000\n    test 1493 d: 16.042818\n    test 1494 n: 0.0\n    test 1495 D: 31.000000\n    test 1496 r: 0.541052\n    test 1497 n: 0.0\n    test 1498 R: 0.310000\n    test 1499 d: 17.761692\n    test 1500 n: 0.0\n    test 1501 D: 34.000000\n    test 1502 r: 0.593412\n    test 1503 n: 0.0\n    test 1504 R: 0.340000\n    test 1505 d: 19.480565\n    test 1506 n: 0.0\n    test 1507 D: 37.000000\n    test 1508 r: 0.645772\n    test 1509 n: 0.0\n    test 1510 R: 0.370000\n    test 1511 d: 21.199438\n    test 1512 n: 0.0\n    test 1513 D: 40.000000\n    test 1514 r: 0.698132\n    test 1515 n: 0.0\n    test 1516 R: 0.400000\n    test 1517 d: 22.918312\n    test 1518 n: 0.0\n    test 1519 D: 43.000000\n    test 1520 r: 0.750492\n    test 1521 n: 0.0\n    test 1522 R: 0.430000\n    test 1523 d: 24.637185\n    test 1524 n: 0.0\n    test 1525 D: 46.000000\n    test 1526 r: 0.802851\n    test 1527 n: 0.0\n    test 1528 R: 0.460000\n    test 1529 d: 26.356059\n    test 1530 n: 0.0\n    test 1531 D: 49.000000\n    test 1532 r: 0.855211\n    test 1533 n: 0.0\n    test 1534 R: 0.490000\n    test 1535 d: 28.074932\n    test 1536 n: 0.0\n    test 1537 D: 52.000000\n    test 1538 r: 0.907571\n    test 1539 n: 0.0\n    test 1540 R: 0.520000\n    test 1541 d: 29.793805\n    test 1542 n: 0.0\n    test 1543 D: 55.000000\n    test 1544 r: 0.959931\n    test 1545 n: 0.0\n    test 1546 R: 0.550000\n    test 1547 d: 31.512679\n    test 1548 n: 0.0\n    test 1549 D: 58.000000\n    test 1550 r: 1.012291\n    test 1551 n: 0.0\n    test 1552 R: 0.580000\n    test 1553 d: 33.231552\n    test 1554 n: 0.0\n    test 1555 D: 61.000000\n    test 1556 r: 1.064651\n    test 1557 n: 0.0\n    test 1558 R: 0.610000\n    test 1559 d: 34.950426\n    test 1560 n: 0.0\n    test 1561 D: 64.000000\n    test 1562 r: 1.117011\n    test 1563 n: 0.0\n    test 1564 R: 0.640000\n    test 1565 d: 36.669299\n    test 1566 n: 0.0\n    test 1567 D: 67.000000\n    test 1568 r: 1.169371\n    test 1569 n: 0.0\n    test 1570 R: 0.670000\n    test 1571 d: 38.388172\n    test 1572 n: 0.0\n    test 1573 D: 70.000000\n    test 1574 r: 1.221730\n    test 1575 n: 0.0\n    test 1576 R: 0.700000\n    test 1577 d: 40.107046\n    test 1578 n: 0.0\n    test 1579 D: 73.000000\n    test 1580 r: 1.274090\n    test 1581 n: 0.0\n    test 1582 R: 0.730000\n    test 1583 d: 41.825919\n    test 1584 n: 0.0\n    test 1585 D: 76.000000\n    test 1586 r: 1.326450\n    test 1587 n: 0.0\n    test 1588 R: 0.760000\n    test 1589 d: 43.544792\n    test 1590 n: 0.0\n    test 1591 D: 79.000000\n    test 1592 r: 1.378810\n    test 1593 n: 0.0\n    test 1594 R: 0.790000\n    test 1595 d: 45.263666\n    test 1596 n: 0.0\n    test 1597 D: 82.000000\n    test 1598 r: 1.431170\n    test 1599 n: 0.0\n    test 1600 R: 0.820000\n    test 1601 d: 46.982539\n    test 1602 n: 0.0\n    test 1603 D: 85.000000\n    test 1604 r: 1.483530\n    test 1605 n: 0.0\n    test 1606 R: 0.850000\n    test 1607 d: 48.701413\n    test 1608 n: 0.0\n    test 1609 D: 88.000000\n    test 1610 r: 1.535890\n    test 1611 n: 0.0\n    test 1612 R: 0.880000\n    test 1613 d: 50.420286\n    test 1614 n: 0.0\n    test 1615 D: 91.000000\n    test 1616 r: 1.588250\n    test 1617 n: 0.0\n    test 1618 R: 0.910000\n    test 1619 d: 52.139159\n    test 1620 n: 0.0\n    test 1621 D: 94.000000\n    test 1622 r: 1.640609\n    test 1623 n: 0.0\n    test 1624 R: 0.940000\n    test 1625 d: 53.858033\n    test 1626 n: 0.0\n    test 1627 D: 97.000000\n    test 1628 r: 1.692969\n    test 1629 n: 0.0\n    test 1630 R: 0.970000\n    test 1631 d: 55.576906\n    test 1632 n: 0.0\n    test 1633 D: 100.000000\n    test 1634 r: 1.745329\n    test 1635 n: 0.0\n    test 1636 R: 1.000000\n    test 1637 d: 57.295780\n    test 1638 n: 0.0\n    test 1639 D: 103.000000\n    test 1640 r: 1.797689\n    test 1641 n: 0.0\n    test 1642 R: 1.030000\n    test 1643 d: 59.014653\n    test 1644 n: 0.0\n    test 1645 D: 106.000000\n    test 1646 r: 1.850049\n    test 1647 n: 0.0\n    test 1648 R: 1.060000\n    test 1649 d: 60.733526\n    test 1650 n: 0.0\n    test 1651 D: 109.000000\n    test 1652 r: 1.902409\n    test 1653 n: 0.0\n    test 1654 R: 1.090000\n    test 1655 d: 62.452400\n    test 1656 n: 0.0\n    test 1657 D: 112.000000\n    test 1658 r: 1.954769\n    test 1659 n: 0.0\n    test 1660 R: 1.120000\n    test 1661 d: 64.171273\n    test 1662 n: 0.0\n    test 1663 D: 115.000000\n    test 1664 r: 2.007129\n    test 1665 n: 0.0\n    test 1666 R: 1.150000\n    test 1667 d: 65.890146\n    test 1668 n: 0.0\n    test 1669 D: 118.000000\n    test 1670 r: 2.059489\n    test 1671 n: 0.0\n    test 1672 R: 1.180000\n    test 1673 d: 67.609020\n    test 1674 n: 0.0\n    test 1675 D: 121.000000\n    test 1676 r: 2.111848\n    test 1677 n: 0.0\n    test 1678 R: 1.210000\n    test 1679 d: 69.327893\n    test 1680 n: 0.0\n    test 1681 D: 124.000000\n    test 1682 r: 2.164208\n    test 1683 n: 0.0\n    test 1684 R: 1.240000\n    test 1685 d: 71.046767\n    test 1686 n: 0.0\n    test 1687 D: 127.000000\n    test 1688 r: 2.216568\n    test 1689 n: 0.0\n    test 1690 R: 1.270000\n    test 1691 d: 72.765640\n    test 1692 n: 0.0\n    test 1693 D: 130.000000\n    test 1694 r: 2.268928\n    test 1695 n: 0.0\n    test 1696 R: 1.300000\n    test 1697 d: 74.484513\n    test 1698 n: 0.0\n    test 1699 D: 133.000000\n    test 1700 r: 2.321288\n    test 1701 n: 0.0\n    test 1702 R: 1.330000\n    test 1703 d: 76.203387\n    test 1704 n: 0.0\n    test 1705 D: 136.000000\n    test 1706 r: 2.373648\n    test 1707 n: 0.0\n    test 1708 R: 1.360000\n    test 1709 d: 77.922260\n    test 1710 n: 0.0\n    test 1711 D: 139.000000\n    test 1712 r: 2.426008\n    test 1713 n: 0.0\n    test 1714 R: 1.390000\n    test 1715 d: 79.641134\n    test 1716 n: 0.0\n    test 1717 D: 142.000000\n    test 1718 r: 2.478368\n    test 1719 n: 0.0\n    test 1720 R: 1.420000\n    test 1721 d: 81.360007\n    test 1722 n: 0.0\n    test 1723 D: 145.000000\n    test 1724 r: 2.530727\n    test 1725 n: 0.0\n    test 1726 R: 1.450000\n    test 1727 d: 83.078880\n    test 1728 n: 0.0\n    test 1729 D: 148.000000\n    test 1730 r: 2.583087\n    test 1731 n: 0.0\n    test 1732 R: 1.480000\n    test 1733 d: 84.797754\n    test 1734 n: 0.0\n    test 1735 D: 151.000000\n    test 1736 r: 2.635447\n    test 1737 n: 0.0\n    test 1738 R: 1.510000\n    test 1739 d: 86.516627\n    test 1740 n: 0.0\n    test 1741 D: 154.000000\n    test 1742 r: 2.687807\n    test 1743 n: 0.0\n    test 1744 R: 1.540000\n    test 1745 d: 88.235500\n    test 1746 n: 0.0\n    test 1747 D: 157.000000\n    test 1748 r: 2.740167\n    test 1749 n: 0.0\n    test 1750 R: 1.570000\n    test 1751 d: 89.954374\n    test 1752 n: 0.0\n    test 1753 D: 160.000000\n    test 1754 r: 2.792527\n    test 1755 n: 0.0\n    test 1756 R: 1.600000\n    test 1757 d: 91.673247\n    test 1758 n: 0.0\n    test 1759 D: 163.000000\n    test 1760 r: 2.844887\n    test 1761 n: 0.0\n    test 1762 R: 1.630000\n    test 1763 d: 93.392121\n    test 1764 n: 0.0\n    test 1765 D: 166.000000\n    test 1766 r: 2.897247\n    test 1767 n: 0.0\n    test 1768 R: 1.660000\n    test 1769 d: 95.110994\n    test 1770 n: 0.0\n    test 1771 D: 169.000000\n    test 1772 r: 2.949606\n    test 1773 n: 0.0\n    test 1774 R: 1.690000\n    test 1775 d: 96.829867\n    test 1776 n: 0.0\n    test 1777 D: 172.000000\n    test 1778 r: 3.001966\n    test 1779 n: 0.0\n    test 1780 R: 1.720000\n    test 1781 d: 98.548741\n    test 1782 n: 0.0\n    test 1783 D: 175.000000\n    test 1784 r: 3.054326\n    test 1785 n: 0.0\n    test 1786 R: 1.750000\n    test 1787 d: 100.267614\n    test 1788 n: 0.0\n    test 1789 D: 178.000000\n    test 1790 r: 3.106686\n    test 1791 n: 0.0\n    test 1792 R: 1.780000\n    test 1793 d: 101.986488\n    test 1794 n: 0.0\n    test 1795 D: 181.000000\n    test 1796 r: 3.159046\n    test 1797 n: 1.0\n    test 1798 R: 1.810000\n    test 1799 d: 103.705361\n    test 1800 n: 0.0\n    test 1801 D: 184.000000\n    test 1802 r: 3.211406\n    test 1803 n: 1.0\n    test 1804 R: 1.840000\n    test 1805 d: 105.424234\n    test 1806 n: 0.0\n    test 1807 D: 187.000000\n    test 1808 r: 3.263766\n    test 1809 n: 1.0\n    test 1810 R: 1.870000\n    test 1811 d: 107.143108\n    test 1812 n: 0.0\n    test 1813 D: 190.000000\n    test 1814 r: 3.316126\n    test 1815 n: 1.0\n    test 1816 R: 1.900000\n    test 1817 d: 108.861981\n    test 1818 n: 0.0\n    test 1819 D: 193.000000\n    test 1820 r: 3.368485\n    test 1821 n: 1.0\n    test 1822 R: 1.930000\n    test 1823 d: 110.580854\n    test 1824 n: 0.0\n    test 1825 D: 196.000000\n    test 1826 r: 3.420845\n    test 1827 n: 1.0\n    test 1828 R: 1.960000\n    test 1829 d: 112.299728\n    test 1830 n: 0.0\n    test 1831 D: 199.000000\n    test 1832 r: 3.473205\n    test 1833 n: 1.0\n    test 1834 R: 1.990000\n    test 1835 d: 114.018601\n    test 1836 n: 0.0\n    test 1837 D: 202.000000\n    test 1838 r: 3.525565\n    test 1839 n: 1.0\n    test 1840 R: 2.020000\n    test 1841 d: 115.737475\n    test 1842 n: 0.0\n    test 1843 D: 205.000000\n    test 1844 r: 3.577925\n    test 1845 n: 1.0\n    test 1846 R: 2.050000\n    test 1847 d: 117.456348\n    test 1848 n: 0.0\n    test 1849 D: 208.000000\n    test 1850 r: 3.630285\n    test 1851 n: 1.0\n    test 1852 R: 2.080000\n    test 1853 d: 119.175221\n    test 1854 n: 0.0\n    test 1855 D: 211.000000\n    test 1856 r: 3.682645\n    test 1857 n: 1.0\n    test 1858 R: 2.110000\n    test 1859 d: 120.894095\n    test 1860 n: 0.0\n    test 1861 D: 214.000000\n    test 1862 r: 3.735005\n    test 1863 n: 1.0\n    test 1864 R: 2.140000\n    test 1865 d: 122.612968\n    test 1866 n: 0.0\n    test 1867 D: 217.000000\n    test 1868 r: 3.787364\n    test 1869 n: 1.0\n    test 1870 R: 2.170000\n    test 1871 d: 124.331842\n    test 1872 n: 0.0\n    test 1873 D: 220.000000\n    test 1874 r: 3.839724\n    test 1875 n: 1.0\n    test 1876 R: 2.200000\n    test 1877 d: 126.050715\n    test 1878 n: 0.0\n    test 1879 D: 223.000000\n    test 1880 r: 3.892084\n    test 1881 n: 1.0\n    test 1882 R: 2.230000\n    test 1883 d: 127.769588\n    test 1884 n: 0.0\n    test 1885 D: 226.000000\n    test 1886 r: 3.944444\n    test 1887 n: 1.0\n    test 1888 R: 2.260000\n    test 1889 d: 129.488462\n    test 1890 n: 0.0\n    test 1891 D: 229.000000\n    test 1892 r: 3.996804\n    test 1893 n: 1.0\n    test 1894 R: 2.290000\n    test 1895 d: 131.207335\n    test 1896 n: 0.0\n    test 1897 D: 232.000000\n    test 1898 r: 4.049164\n    test 1899 n: 1.0\n    test 1900 R: 2.320000\n    test 1901 d: 132.926208\n    test 1902 n: 0.0\n    test 1903 D: 235.000000\n    test 1904 r: 4.101524\n    test 1905 n: 1.0\n    test 1906 R: 2.350000\n    test 1907 d: 134.645082\n    test 1908 n: 0.0\n    test 1909 D: 238.000000\n    test 1910 r: 4.153884\n    test 1911 n: 1.0\n    test 1912 R: 2.380000\n    test 1913 d: 136.363955\n    test 1914 n: 0.0\n    test 1915 D: 241.000000\n    test 1916 r: 4.206243\n    test 1917 n: 1.0\n    test 1918 R: 2.410000\n    test 1919 d: 138.082829\n    test 1920 n: 0.0\n    test 1921 D: 244.000000\n    test 1922 r: 4.258603\n    test 1923 n: 1.0\n    test 1924 R: 2.440000\n    test 1925 d: 139.801702\n    test 1926 n: 0.0\n    test 1927 D: 247.000000\n    test 1928 r: 4.310963\n    test 1929 n: 1.0\n    test 1930 R: 2.470000\n    test 1931 d: 141.520575\n    test 1932 n: 0.0\n    test 1933 D: 250.000000\n    test 1934 r: 4.363323\n    test 1935 n: 1.0\n    test 1936 R: 2.500000\n    test 1937 d: 143.239449\n    test 1938 n: 0.0\n    test 1939 D: 253.000000\n    test 1940 r: 4.415683\n    test 1941 n: 1.0\n    test 1942 R: 2.530000\n    test 1943 d: 144.958322\n    test 1944 n: 0.0\n    test 1945 D: 256.000000\n    test 1946 r: 4.468043\n    test 1947 n: 1.0\n    test 1948 R: 2.560000\n    test 1949 d: 146.677196\n    test 1950 n: 0.0\n    test 1951 D: 259.000000\n    test 1952 r: 4.520403\n    test 1953 n: 1.0\n    test 1954 R: 2.590000\n    test 1955 d: 148.396069\n    test 1956 n: 0.0\n    test 1957 D: 262.000000\n    test 1958 r: 4.572763\n    test 1959 n: 1.0\n    test 1960 R: 2.620000\n    test 1961 d: 150.114942\n    test 1962 n: 0.0\n    test 1963 D: 265.000000\n    test 1964 r: 4.625123\n    test 1965 n: 1.0\n    test 1966 R: 2.650000\n    test 1967 d: 151.833816\n    test 1968 n: 0.0\n    test 1969 D: 268.000000\n    test 1970 r: 4.677482\n    test 1971 n: 1.0\n    test 1972 R: 2.680000\n    test 1973 d: 153.552689\n    test 1974 n: 0.0\n    test 1975 D: 271.000000\n    test 1976 r: 4.729842\n    test 1977 n: 1.0\n    test 1978 R: 2.710000\n    test 1979 d: 155.271562\n    test 1980 n: 0.0\n    test 1981 D: 274.000000\n    test 1982 r: 4.782202\n    test 1983 n: 1.0\n    test 1984 R: 2.740000\n    test 1985 d: 156.990436\n    test 1986 n: 0.0\n    test 1987 D: 277.000000\n    test 1988 r: 4.834562\n    test 1989 n: 1.0\n    test 1990 R: 2.770000\n    test 1991 d: 158.709309\n    test 1992 n: 0.0\n    test 1993 D: 280.000000\n    test 1994 r: 4.886922\n    test 1995 n: 1.0\n    test 1996 R: 2.800000\n    test 1997 d: 160.428183\n    test 1998 n: 0.0\n    test 1999 D: 283.000000\n    test 2000 r: 4.939282\n    test 2001 n: 1.0\n    test 2002 R: 2.830000\n    test 2003 d: 162.147056\n    test 2004 n: 0.0\n    test 2005 D: 286.000000\n    test 2006 r: 4.991642\n    test 2007 n: 1.0\n    test 2008 R: 2.860000\n    test 2009 d: 163.865929\n    test 2010 n: 0.0\n    test 2011 D: 289.000000\n    test 2012 r: 5.044002\n    test 2013 n: 1.0\n    test 2014 R: 2.890000\n    test 2015 d: 165.584803\n    test 2016 n: 0.0\n    test 2017 D: 292.000000\n    test 2018 r: 5.096361\n    test 2019 n: 1.0\n    test 2020 R: 2.920000\n    test 2021 d: 167.303676\n    test 2022 n: 0.0\n    test 2023 D: 295.000000\n    test 2024 r: 5.148721\n    test 2025 n: 1.0\n    test 2026 R: 2.950000\n    test 2027 d: 169.022550\n    test 2028 n: 0.0\n    test 2029 D: 298.000000\n    test 2030 r: 5.201081\n    test 2031 n: 1.0\n    test 2032 R: 2.980000\n    test 2033 d: 170.741423\n    test 2034 n: 0.0\n    test 2035 D: 301.000000\n    test 2036 r: 5.253441\n    test 2037 n: 1.0\n    test 2038 R: 3.010000\n    test 2039 d: 172.460296\n    test 2040 n: 0.0\n    test 2041 D: 304.000000\n    test 2042 r: 5.305801\n    test 2043 n: 1.0\n    test 2044 R: 3.040000\n    test 2045 d: 174.179170\n    test 2046 n: 0.0\n    test 2047 D: 307.000000\n    test 2048 r: 5.358161\n    test 2049 n: 1.0\n    test 2050 R: 3.070000\n    test 2051 d: 175.898043\n    test 2052 n: 0.0\n    test 2053 D: 310.000000\n    test 2054 r: 5.410521\n    test 2055 n: 1.0\n    test 2056 R: 3.100000\n    test 2057 d: 177.616916\n    test 2058 n: 0.0\n    test 2059 D: 313.000000\n    test 2060 r: 5.462881\n    test 2061 n: 1.0\n    test 2062 R: 3.130000\n    test 2063 d: 179.335790\n    test 2064 n: 0.0\n    test 2065 D: 316.000000\n    test 2066 r: 5.515240\n    test 2067 n: 1.0\n    test 2068 R: 3.160000\n    test 2069 d: 181.054663\n    test 2070 n: 1.0\n    test 2071 D: 319.000000\n    test 2072 r: 5.567600\n    test 2073 n: 1.0\n    test 2074 R: 3.190000\n    test 2075 d: 182.773537\n    test 2076 n: 1.0\n    test 2077 D: 322.000000\n    test 2078 r: 5.619960\n    test 2079 n: 1.0\n    test 2080 R: 3.220000\n    test 2081 d: 184.492410\n    test 2082 n: 1.0\n    test 2083 D: 325.000000\n    test 2084 r: 5.672320\n    test 2085 n: 1.0\n    test 2086 R: 3.250000\n    test 2087 d: 186.211283\n    test 2088 n: 1.0\n    test 2089 D: 328.000000\n    test 2090 r: 5.724680\n    test 2091 n: 1.0\n    test 2092 R: 3.280000\n    test 2093 d: 187.930157\n    test 2094 n: 1.0\n    test 2095 D: 331.000000\n    test 2096 r: 5.777040\n    test 2097 n: 1.0\n    test 2098 R: 3.310000\n    test 2099 d: 189.649030\n    test 2100 n: 1.0\n    test 2101 D: 334.000000\n    test 2102 r: 5.829400\n    test 2103 n: 1.0\n    test 2104 R: 3.340000\n    test 2105 d: 191.367904\n    test 2106 n: 1.0\n    test 2107 D: 337.000000\n    test 2108 r: 5.881760\n    test 2109 n: 1.0\n    test 2110 R: 3.370000\n    test 2111 d: 193.086777\n    test 2112 n: 1.0\n    test 2113 D: 340.000000\n    test 2114 r: 5.934119\n    test 2115 n: 1.0\n    test 2116 R: 3.400000\n    test 2117 d: 194.805650\n    test 2118 n: 1.0\n    test 2119 D: 343.000000\n    test 2120 r: 5.986479\n    test 2121 n: 1.0\n    test 2122 R: 3.430000\n    test 2123 d: 196.524524\n    test 2124 n: 1.0\n    test 2125 D: 346.000000\n    test 2126 r: 6.038839\n    test 2127 n: 1.0\n    test 2128 R: 3.460000\n    test 2129 d: 198.243397\n    test 2130 n: 1.0\n    test 2131 D: 349.000000\n    test 2132 r: 6.091199\n    test 2133 n: 1.0\n    test 2134 R: 3.490000\n    test 2135 d: 199.962271\n    test 2136 n: 1.0\n    test 2137 D: 352.000000\n    test 2138 r: 6.143559\n    test 2139 n: 1.0\n    test 2140 R: 3.520000\n    test 2141 d: 201.681144\n    test 2142 n: 1.0\n    test 2143 D: 355.000000\n    test 2144 r: 6.195919\n    test 2145 n: 1.0\n    test 2146 R: 3.550000\n    test 2147 d: 203.400017\n    test 2148 n: 1.0\n    test 2149 D: 358.000000\n    test 2150 r: 6.248279\n    test 2151 n: 1.0\n    test 2152 R: 3.580000\n    test 2153 d: 205.118891\n    test 2154 n: 1.0\n    test 2155 D: 361.000000\n    test 2156 r: 6.300639\n    test 2157 n: 1.0\n    test 2158 R: 3.610000\n    test 2159 d: 206.837764\n    test 2160 n: 1.0\n    test 2161 D: 364.000000\n    test 2162 r: 6.352998\n    test 2163 n: 1.0\n    test 2164 R: 3.640000\n    test 2165 d: 208.556637\n    test 2166 n: 1.0\n    test 2167 D: 367.000000\n    test 2168 r: 6.405358\n    test 2169 n: 1.0\n    test 2170 R: 3.670000\n    test 2171 d: 210.275511\n    test 2172 n: 1.0\n    test 2173 D: 370.000000\n    test 2174 r: 6.457718\n    test 2175 n: 1.0\n    test 2176 R: 3.700000\n    test 2177 d: 211.994384\n    test 2178 n: 1.0\n    test 2179 D: 373.000000\n    test 2180 r: 6.510078\n    test 2181 n: 1.0\n    test 2182 R: 3.730000\n    test 2183 d: 213.713258\n    test 2184 n: 1.0\n    test 2185 D: 376.000000\n    test 2186 r: 6.562438\n    test 2187 n: 1.0\n    test 2188 R: 3.760000\n    test 2189 d: 215.432131\n    test 2190 n: 1.0\n    test 2191 D: 379.000000\n    test 2192 r: 6.614798\n    test 2193 n: 1.0\n    test 2194 R: 3.790000\n    test 2195 d: 217.151004\n    test 2196 n: 1.0\n    test 2197 D: 382.000000\n    test 2198 r: 6.667158\n    test 2199 n: 1.0\n    test 2200 R: 3.820000\n    test 2201 d: 218.869878\n    test 2202 n: 1.0\n    test 2203 D: 385.000000\n    test 2204 r: 6.719518\n    test 2205 n: 1.0\n    test 2206 R: 3.850000\n    test 2207 d: 220.588751\n    test 2208 n: 1.0\n    test 2209 D: 388.000000\n    test 2210 r: 6.771877\n    test 2211 n: 1.0\n    test 2212 R: 3.880000\n    test 2213 d: 222.307625\n    test 2214 n: 1.0\n    test 2215 D: 391.000000\n    test 2216 r: 6.824237\n    test 2217 n: 1.0\n    test 2218 R: 3.910000\n    test 2219 d: 224.026498\n    test 2220 n: 1.0\n    test 2221 D: 394.000000\n    test 2222 r: 6.876597\n    test 2223 n: 1.0\n    test 2224 R: 3.940000\n    test 2225 d: 225.745371\n    test 2226 n: 1.0\n    test 2227 D: 397.000000\n    test 2228 r: 6.928957\n    test 2229 n: 1.0\n    test 2230 R: 3.970000\n    test 2231 d: 227.464245\n    test 2232 n: 1.0\n    test 2233 D: 400.000000\n    test 2234 r: 6.981317\n    test 2235 n: 1.0\n    test 2236 R: 4.000000\n    test 2237 d: 229.183118\n    test 2238 n: 1.0\n    test 2239 D: 403.000000\n    test 2240 r: 7.033677\n    test 2241 n: 1.0\n    test 2242 R: 4.030000\n    test 2243 d: 230.901991\n    test 2244 n: 1.0\n    test 2245 D: 406.000000\n    test 2246 r: 7.086037\n    test 2247 n: 1.0\n    test 2248 R: 4.060000\n    test 2249 d: 232.620865\n    test 2250 n: 1.0\n    test 2251 D: 409.000000\n    test 2252 r: 7.138397\n    test 2253 n: 1.0\n    test 2254 R: 4.090000\n    test 2255 d: 234.339738\n    test 2256 n: 1.0\n    test 2257 D: 412.000000\n    test 2258 r: 7.190757\n    test 2259 n: 1.0\n    test 2260 R: 4.120000\n    test 2261 d: 236.058612\n    test 2262 n: 1.0\n    test 2263 D: 415.000000\n    test 2264 r: 7.243116\n    test 2265 n: 1.0\n    test 2266 R: 4.150000\n    test 2267 d: 237.777485\n    test 2268 n: 1.0\n    test 2269 D: 418.000000\n    test 2270 r: 7.295476\n    test 2271 n: 1.0\n    test 2272 R: 4.180000\n    test 2273 d: 239.496358\n    test 2274 n: 1.0\n    test 2275 D: 421.000000\n    test 2276 r: 7.347836\n    test 2277 n: 1.0\n    test 2278 R: 4.210000\n    test 2279 d: 241.215232\n    test 2280 n: 1.0\n    test 2281 D: 424.000000\n    test 2282 r: 7.400196\n    test 2283 n: 1.0\n    test 2284 R: 4.240000\n    test 2285 d: 242.934105\n    test 2286 n: 1.0\n    test 2287 D: 427.000000\n    test 2288 r: 7.452556\n    test 2289 n: 1.0\n    test 2290 R: 4.270000\n    test 2291 d: 244.652979\n    test 2292 n: 1.0\n    test 2293 D: 430.000000\n    test 2294 r: 7.504916\n    test 2295 n: 1.0\n    test 2296 R: 4.300000\n    test 2297 d: 246.371852\n    test 2298 n: 1.0\n    test 2299 D: 433.000000\n    test 2300 r: 7.557276\n    test 2301 n: 1.0\n    test 2302 R: 4.330000\n    test 2303 d: 248.090725\n    test 2304 n: 1.0\n    test 2305 D: 436.000000\n    test 2306 r: 7.609636\n    test 2307 n: 1.0\n    test 2308 R: 4.360000\n    test 2309 d: 249.809599\n    test 2310 n: 1.0\n    test 2311 D: 439.000000\n    test 2312 r: 7.661995\n    test 2313 n: 1.0\n    test 2314 R: 4.390000\n    test 2315 d: 251.528472\n    test 2316 n: 1.0\n    test 2317 D: 442.000000\n    test 2318 r: 7.714355\n    test 2319 n: 1.0\n    test 2320 R: 4.420000\n    test 2321 d: 253.247345\n    test 2322 n: 1.0\n    test 2323 D: 445.000000\n    test 2324 r: 7.766715\n    test 2325 n: 1.0\n    test 2326 R: 4.450000\n    test 2327 d: 254.966219\n    test 2328 n: 1.0\n    test 2329 D: 448.000000\n    test 2330 r: 7.819075\n    test 2331 n: 1.0\n    test 2332 R: 4.480000\n    test 2333 d: 256.685092\n    test 2334 n: 1.0\n    test 2335 D: 451.000000\n    test 2336 r: 7.871435\n    test 2337 n: 1.0\n    test 2338 R: 4.510000\n    test 2339 d: 258.403966\n    test 2340 n: 1.0\n    test 2341 D: 454.000000\n    test 2342 r: 7.923795\n    test 2343 n: 1.0\n    test 2344 R: 4.540000\n    test 2345 d: 260.122839\n    test 2346 n: 1.0\n    test 2347 D: 457.000000\n    test 2348 r: 7.976155\n    test 2349 n: 1.0\n    test 2350 R: 4.570000\n    test 2351 d: 261.841712\n    test 2352 n: 1.0\n    test 2353 D: 460.000000\n    test 2354 r: 8.028515\n    test 2355 n: 1.0\n    test 2356 R: 4.600000\n    test 2357 d: 263.560586\n    test 2358 n: 1.0\n    test 2359 D: 463.000000\n    test 2360 r: 8.080874\n    test 2361 n: 1.0\n    test 2362 R: 4.630000\n    test 2363 d: 265.279459\n    test 2364 n: 1.0\n    test 2365 D: 466.000000\n    test 2366 r: 8.133234\n    test 2367 n: 1.0\n    test 2368 R: 4.660000\n    test 2369 d: 266.998333\n    test 2370 n: 1.0\n    test 2371 D: 469.000000\n    test 2372 r: 8.185594\n    test 2373 n: 1.0\n    test 2374 R: 4.690000\n    test 2375 d: 268.717206\n    test 2376 n: 1.0\n    test 2377 D: 472.000000\n    test 2378 r: 8.237954\n    test 2379 n: 1.0\n    test 2380 R: 4.720000\n    test 2381 d: 270.436079\n    test 2382 n: 1.0\n    test 2383 D: 475.000000\n    test 2384 r: 8.290314\n    test 2385 n: 1.0\n    test 2386 R: 4.750000\n    test 2387 d: 272.154953\n    test 2388 n: 1.0\n    test 2389 D: 478.000000\n    test 2390 r: 8.342674\n    test 2391 n: 1.0\n    test 2392 R: 4.780000\n    test 2393 d: 273.873826\n    test 2394 n: 1.0\n    test 2395 D: 481.000000\n    test 2396 r: 8.395034\n    test 2397 n: 1.0\n    test 2398 R: 4.810000\n    test 2399 d: 275.592699\n    test 2400 n: 1.0\n    test 2401 D: 484.000000\n    test 2402 r: 8.447394\n    test 2403 n: 1.0\n    test 2404 R: 4.840000\n    test 2405 d: 277.311573\n    test 2406 n: 1.0\n    test 2407 D: 487.000000\n    test 2408 r: 8.499753\n    test 2409 n: 1.0\n    test 2410 R: 4.870000\n    test 2411 d: 279.030446\n    test 2412 n: 1.0\n    test 2413 D: 490.000000\n    test 2414 r: 8.552113\n    test 2415 n: 1.0\n    test 2416 R: 4.900000\n    test 2417 d: 280.749320\n    test 2418 n: 1.0\n    test 2419 D: 493.000000\n    test 2420 r: 8.604473\n    test 2421 n: 1.0\n    test 2422 R: 4.930000\n    test 2423 d: 282.468193\n    test 2424 n: 1.0\n    test 2425 D: 496.000000\n    test 2426 r: 8.656833\n    test 2427 n: 1.0\n    test 2428 R: 4.960000\n    test 2429 d: 284.187066\n    test 2430 n: 1.0\n    test 2431 D: 499.000000\n    test 2432 r: 8.709193\n    test 2433 n: 1.0\n    test 2434 R: 4.990000\n    test 2435 d: 285.905940\n    test 2436 n: 1.0\n    test 2437 D: 502.000000\n    test 2438 r: 8.761553\n    test 2439 n: 1.0\n    test 2440 R: 5.020000\n    test 2441 d: 287.624813\n    test 2442 n: 1.0\n    test 2443 D: 505.000000\n    test 2444 r: 8.813913\n    test 2445 n: 1.0\n    test 2446 R: 5.050000\n    test 2447 d: 289.343687\n    test 2448 n: 1.0\n    test 2449 D: 508.000000\n    test 2450 r: 8.866273\n    test 2451 n: 1.0\n    test 2452 R: 5.080000\n    test 2453 d: 291.062560\n    test 2454 n: 1.0\n    test 2455 D: 511.000000\n    test 2456 r: 8.918632\n    test 2457 n: 1.0\n    test 2458 R: 5.110000\n    test 2459 d: 292.781433\n    test 2460 n: 1.0\n    test 2461 D: 514.000000\n    test 2462 r: 8.970992\n    test 2463 n: 1.0\n    test 2464 R: 5.140000\n    test 2465 d: 294.500307\n    test 2466 n: 1.0\n    test 2467 D: 517.000000\n    test 2468 r: 9.023352\n    test 2469 n: 1.0\n    test 2470 R: 5.170000\n    test 2471 d: 296.219180\n    test 2472 n: 1.0\n    test 2473 D: 520.000000\n    test 2474 r: 9.075712\n    test 2475 n: 1.0\n    test 2476 R: 5.200000\n    test 2477 d: 297.938053\n    test 2478 n: 1.0\n    test 2479 D: 523.000000\n    test 2480 r: 9.128072\n    test 2481 n: 1.0\n    test 2482 R: 5.230000\n    test 2483 d: 299.656927\n    test 2484 n: 1.0\n    test 2485 D: 526.000000\n    test 2486 r: 9.180432\n    test 2487 n: 1.0\n    test 2488 R: 5.260000\n    test 2489 d: 301.375800\n    test 2490 n: 1.0\n    test 2491 D: 529.000000\n    test 2492 r: 9.232792\n    test 2493 n: 1.0\n    test 2494 R: 5.290000\n    test 2495 d: 303.094674\n    test 2496 n: 1.0\n    test 2497 D: 532.000000\n    test 2498 r: 9.285152\n    test 2499 n: 1.0\n    test 2500 R: 5.320000\n    test 2501 d: 304.813547\n    test 2502 n: 1.0\n    test 2503 D: 535.000000\n    test 2504 r: 9.337511\n    test 2505 n: 1.0\n    test 2506 R: 5.350000\n    test 2507 d: 306.532420\n    test 2508 n: 1.0\n    test 2509 D: 538.000000\n    test 2510 r: 9.389871\n    test 2511 n: 1.0\n    test 2512 R: 5.380000\n    test 2513 d: 308.251294\n    test 2514 n: 1.0\n    test 2515 D: 541.000000\n    test 2516 r: 9.442231\n    test 2517 n: 2.0\n    test 2518 R: 5.410000\n    test 2519 d: 309.970167\n    test 2520 n: 1.0\n    test 2521 D: 544.000000\n    test 2522 r: 9.494591\n    test 2523 n: 2.0\n    test 2524 R: 5.440000\n    test 2525 d: 311.689041\n    test 2526 n: 1.0\n    test 2527 D: 547.000000\n    test 2528 r: 9.546951\n    test 2529 n: 2.0\n    test 2530 R: 5.470000\n    test 2531 d: 313.407914\n    test 2532 n: 1.0\n    test 2533 D: 550.000000\n    test 2534 r: 9.599311\n    test 2535 n: 2.0\n    test 2536 R: 5.500000\n    test 2537 d: 315.126787\n    test 2538 n: 1.0\n    test 2539 D: 553.000000\n    test 2540 r: 9.651671\n    test 2541 n: 2.0\n    test 2542 R: 5.530000\n    test 2543 d: 316.845661\n    test 2544 n: 1.0\n    test 2545 D: 556.000000\n    test 2546 r: 9.704031\n    test 2547 n: 2.0\n    test 2548 R: 5.560000\n    test 2549 d: 318.564534\n    test 2550 n: 1.0\n    test 2551 D: 559.000000\n    test 2552 r: 9.756391\n    test 2553 n: 2.0\n    test 2554 R: 5.590000\n    test 2555 d: 320.283407\n    test 2556 n: 1.0\n    test 2557 D: 562.000000\n    test 2558 r: 9.808750\n    test 2559 n: 2.0\n    test 2560 R: 5.620000\n    test 2561 d: 322.002281\n    test 2562 n: 1.0\n    test 2563 D: 565.000000\n    test 2564 r: 9.861110\n    test 2565 n: 2.0\n    test 2566 R: 5.650000\n    test 2567 d: 323.721154\n    test 2568 n: 1.0\n    test 2569 D: 568.000000\n    test 2570 r: 9.913470\n    test 2571 n: 2.0\n    test 2572 R: 5.680000\n    test 2573 d: 325.440028\n    test 2574 n: 1.0\n    test 2575 D: 571.000000\n    test 2576 r: 9.965830\n    test 2577 n: 2.0\n    test 2578 R: 5.710000\n    test 2579 d: 327.158901\n    test 2580 n: 1.0\n    test 2581 D: 574.000000\n    test 2582 r: 10.018190\n    test 2583 n: 2.0\n    test 2584 R: 5.740000\n    test 2585 d: 328.877774\n    test 2586 n: 1.0\n    test 2587 D: 577.000000\n    test 2588 r: 10.070550\n    test 2589 n: 2.0\n    test 2590 R: 5.770000\n    test 2591 d: 330.596648\n    test 2592 n: 1.0\n    test 2593 D: 580.000000\n    test 2594 r: 10.122910\n    test 2595 n: 2.0\n    test 2596 R: 5.800000\n    test 2597 d: 332.315521\n    test 2598 n: 1.0\n    test 2599 D: 583.000000\n    test 2600 r: 10.175270\n    test 2601 n: 2.0\n    test 2602 R: 5.830000\n    test 2603 d: 334.034395\n    test 2604 n: 1.0\n    test 2605 D: 586.000000\n    test 2606 r: 10.227629\n    test 2607 n: 2.0\n    test 2608 R: 5.860000\n    test 2609 d: 335.753268\n    test 2610 n: 1.0\n    test 2611 D: 589.000000\n    test 2612 r: 10.279989\n    test 2613 n: 2.0\n    test 2614 R: 5.890000\n    test 2615 d: 337.472141\n    test 2616 n: 1.0\n    test 2617 D: 592.000000\n    test 2618 r: 10.332349\n    test 2619 n: 2.0\n    test 2620 R: 5.920000\n    test 2621 d: 339.191015\n    test 2622 n: 1.0\n    test 2623 D: 595.000000\n    test 2624 r: 10.384709\n    test 2625 n: 2.0\n    test 2626 R: 5.950000\n    test 2627 d: 340.909888\n    test 2628 n: 1.0\n    test 2629 D: 598.000000\n    test 2630 r: 10.437069\n    test 2631 n: 2.0\n    test 2632 R: 5.980000\n    test 2633 d: 342.628761\n    test 2634 n: 1.0\n    test 2635 D: 601.000000\n    test 2636 r: 10.489429\n    test 2637 n: 2.0\n    test 2638 R: 6.010000\n    test 2639 d: 344.347635\n    test 2640 n: 1.0\n    test 2641 D: 604.000000\n    test 2642 r: 10.541789\n    test 2643 n: 2.0\n    test 2644 R: 6.040000\n    test 2645 d: 346.066508\n    test 2646 n: 1.0\n    test 2647 D: 607.000000\n    test 2648 r: 10.594149\n    test 2649 n: 2.0\n    test 2650 R: 6.070000\n    test 2651 d: 347.785382\n    test 2652 n: 1.0\n    test 2653 D: 610.000000\n    test 2654 r: 10.646508\n    test 2655 n: 2.0\n    test 2656 R: 6.100000\n    test 2657 d: 349.504255\n    test 2658 n: 1.0\n    test 2659 D: 613.000000\n    test 2660 r: 10.698868\n    test 2661 n: 2.0\n    test 2662 R: 6.130000\n    test 2663 d: 351.223128\n    test 2664 n: 1.0\n    test 2665 D: 616.000000\n    test 2666 r: 10.751228\n    test 2667 n: 2.0\n    test 2668 R: 6.160000\n    test 2669 d: 352.942002\n    test 2670 n: 1.0\n    test 2671 D: 619.000000\n    test 2672 r: 10.803588\n    test 2673 n: 2.0\n    test 2674 R: 6.190000\n    test 2675 d: 354.660875\n    test 2676 n: 1.0\n    test 2677 D: 622.000000\n    test 2678 r: 10.855948\n    test 2679 n: 2.0\n    test 2680 R: 6.220000\n    test 2681 d: 356.379749\n    test 2682 n: 1.0\n    test 2683 D: 625.000000\n    test 2684 r: 10.908308\n    test 2685 n: 2.0\n    test 2686 R: 6.250000\n    test 2687 d: 358.098622\n    test 2688 n: 1.0\n    test 2689 D: 628.000000\n    test 2690 r: 10.960668\n    test 2691 n: 2.0\n    test 2692 R: 6.280000\n    test 2693 d: 359.817495\n    test 2694 n: 1.0\n    test 2695 D: 631.000000\n    test 2696 r: 11.013028\n    test 2697 n: 2.0\n    test 2698 R: 6.310000\n    test 2699 d: 361.536369\n    test 2700 n: 1.0\n    test 2701 D: 634.000000\n    test 2702 r: 11.065387\n    test 2703 n: 2.0\n    test 2704 R: 6.340000\n    test 2705 d: 363.255242\n    test 2706 n: 1.0\n    test 2707 D: 637.000000\n    test 2708 r: 11.117747\n    test 2709 n: 2.0\n    test 2710 R: 6.370000\n    test 2711 d: 364.974115\n    test 2712 n: 1.0\n    test 2713 D: 640.000000\n    test 2714 r: 11.170107\n    test 2715 n: 2.0\n    test 2716 R: 6.400000\n    test 2717 d: 366.692989\n    test 2718 n: 1.0\n    test 2719 D: 643.000000\n    test 2720 r: 11.222467\n    test 2721 n: 2.0\n    test 2722 R: 6.430000\n    test 2723 d: 368.411862\n    test 2724 n: 1.0\n    test 2725 D: 646.000000\n    test 2726 r: 11.274827\n    test 2727 n: 2.0\n    test 2728 R: 6.460000\n    test 2729 d: 370.130736\n    test 2730 n: 1.0\n    test 2731 D: 649.000000\n    test 2732 r: 11.327187\n    test 2733 n: 2.0\n    test 2734 R: 6.490000\n    test 2735 d: 371.849609\n    test 2736 n: 1.0\n    test 2737 D: 652.000000\n    test 2738 r: 11.379547\n    test 2739 n: 2.0\n    test 2740 R: 6.520000\n    test 2741 d: 373.568482\n    test 2742 n: 1.0\n    test 2743 D: 655.000000\n    test 2744 r: 11.431907\n    test 2745 n: 2.0\n    test 2746 R: 6.550000\n    test 2747 d: 375.287356\n    test 2748 n: 1.0\n    test 2749 D: 658.000000\n    test 2750 r: 11.484266\n    test 2751 n: 2.0\n    test 2752 R: 6.580000\n    test 2753 d: 377.006229\n    test 2754 n: 1.0\n    test 2755 D: 661.000000\n    test 2756 r: 11.536626\n    test 2757 n: 2.0\n    test 2758 R: 6.610000\n    test 2759 d: 378.725103\n    test 2760 n: 1.0\n    test 2761 D: 664.000000\n    test 2762 r: 11.588986\n    test 2763 n: 2.0\n    test 2764 R: 6.640000\n    test 2765 d: 380.443976\n    test 2766 n: 1.0\n    test 2767 D: 667.000000\n    test 2768 r: 11.641346\n    test 2769 n: 2.0\n    test 2770 R: 6.670000\n    test 2771 d: 382.162849\n    test 2772 n: 1.0\n    test 2773 D: 670.000000\n    test 2774 r: 11.693706\n    test 2775 n: 2.0\n    test 2776 R: 6.700000\n    test 2777 d: 383.881723\n    test 2778 n: 1.0\n    test 2779 D: 673.000000\n    test 2780 r: 11.746066\n    test 2781 n: 2.0\n    test 2782 R: 6.730000\n    test 2783 d: 385.600596\n    test 2784 n: 1.0\n    test 2785 D: 676.000000\n    test 2786 r: 11.798426\n    test 2787 n: 2.0\n    test 2788 R: 6.760000\n    test 2789 d: 387.319470\n    test 2790 n: 1.0\n    test 2791 D: 679.000000\n    test 2792 r: 11.850786\n    test 2793 n: 2.0\n    test 2794 R: 6.790000\n    test 2795 d: 389.038343\n    test 2796 n: 1.0\n    test 2797 D: 682.000000\n    test 2798 r: 11.903145\n    test 2799 n: 2.0\n    test 2800 R: 6.820000\n    test 2801 d: 390.757216\n    test 2802 n: 1.0\n    test 2803 D: 685.000000\n    test 2804 r: 11.955505\n    test 2805 n: 2.0\n    test 2806 R: 6.850000\n    test 2807 d: 392.476090\n    test 2808 n: 1.0\n    test 2809 D: 688.000000\n    test 2810 r: 12.007865\n    test 2811 n: 2.0\n    test 2812 R: 6.880000\n    test 2813 d: 394.194963\n    test 2814 n: 1.0\n    test 2815 D: 691.000000\n    test 2816 r: 12.060225\n    test 2817 n: 2.0\n    test 2818 R: 6.910000\n    test 2819 d: 395.913836\n    test 2820 n: 1.0\n    test 2821 D: 694.000000\n    test 2822 r: 12.112585\n    test 2823 n: 2.0\n    test 2824 R: 6.940000\n    test 2825 d: 397.632710\n    test 2826 n: 1.0\n    test 2827 D: 697.000000\n    test 2828 r: 12.164945\n    test 2829 n: 2.0\n    test 2830 R: 6.970000\n    test 2831 d: 399.351583\n    test 2832 n: 1.0\n    test 2833 D: 700.000000\n    test 2834 r: 12.217305\n    test 2835 n: 2.0\n    test 2836 R: 7.000000\n    test 2837 d: 401.070457\n    test 2838 n: 1.0\n    test 2839 D: 703.000000\n    test 2840 r: 12.269665\n    test 2841 n: 2.0\n    test 2842 R: 7.030000\n    test 2843 d: 402.789330\n    test 2844 n: 1.0\n    test 2845 D: 706.000000\n    test 2846 r: 12.322025\n    test 2847 n: 2.0\n    test 2848 R: 7.060000\n    test 2849 d: 404.508203\n    test 2850 n: 1.0\n    test 2851 D: 709.000000\n    test 2852 r: 12.374384\n    test 2853 n: 2.0\n    test 2854 R: 7.090000\n    test 2855 d: 406.227077\n    test 2856 n: 1.0\n    test 2857 D: 712.000000\n    test 2858 r: 12.426744\n    test 2859 n: 2.0\n    test 2860 R: 7.120000\n    test 2861 d: 407.945950\n    test 2862 n: 1.0\n    test 2863 D: 715.000000\n    test 2864 r: 12.479104\n    test 2865 n: 2.0\n    test 2866 R: 7.150000\n    test 2867 d: 409.664824\n    test 2868 n: 1.0\n\n    test 2869 radd: 32.0\n    test 2870 rdiv: 6.67e-02\n    test 2871 rmul: 60.0\n    test 2872 rpow: 1073741824.0\n    test 2873 rsub: -28.0\n\n    test 2874 R * 2: 4.0000\n    test 2875 R / 2: 2.0000\n    test 2876 R / R: True\n    test 2877 R / R: 1.0\n    test 2878 R / R: 2.0\n    test 2879 abs  : 2.0\n    test 2880 int  : 2\n    test 2881 eq R: True\n    test 2882 ge R: True\n    test 2883 gt R: False\n    test 2884 le R: True\n    test 2885 lt R: False\n    test 2886 ne R: False\n    test 2887 if R: True\n    test 2888 gt 0: True\n    test 2889 lt 0: False\n    test 2890 eq 0: False\n    test 2891 lt 0: True\n    test 2892 gt 0: True\n    test 2893 gt 0: False\n    test 2894 signOf: 1\n    test 2895 signOf: -1\n    test 2896 ceil : 3.0\n    test 2897 floor: 2.0\n\n    test 2898 divmod : (2.0, Radians(0.0))\n    test 2899 divmod : (2.0, Radians(0.0))\n    test 2900 rdivmod : (0.0, Radians(2.0))\n    test 2901 divmod : (-2.0, Radians(1.0))\n    test 2902 imod: 0.0\n    test 2903 mod : 0.0\n    test 2904 rmod: 2.0\n    test 2905 neg : -2.0\n    test 2906 pos : 2.0\n    test 2907 is_int: False\n    test 2908 float: 9e-102\n    test 2909 is_int: False\n    test 2910 round1: 0.0\n    test 2911 R //: -2.0\n    test 2912 // R: -2.0\n    test 2913 R //=: -2.0\n    test 2914 R / 0: ZeroDivisionError('float division by zero')\n\n    test 2915 pow(R, +): 0.0\n    test 2916 pow(R, -): 0.4767037\n    test 2917 pow(-R, R): TypeError('fromDegrees((1+2.8274333882308138e-101j))')  FAILED, KNOWN, expected TypeError\n    test 2918 pow(R, R): 1.0\n    test 2919 pow(R, f, i): TypeError('pow() 3rd argument not allowed unless all arguments are integers')\n    test 2920 pow(R, R, i): TypeError('fromDegrees(<Fsum[1] (2.1, 0) at 0x107269950>)')\n    test 2921 pow(R, i, None): 4.0\n    test 2922 Z**-2: ZeroDivisionError('0.0 ** -2: 0.0 cannot be raised to a negative power')\n    test 2923 pow(0): 1.000\n    test 2924 pow(1): -3.000\n    test 2925 pow(2): 9.000\n    test 2926 pow(21): -10460353203.000\n    test 2927 pow(-5): -0.004\n    test 2928 **= 2: 9.000\n\n    test 2929 F0**0: 1.0\n    test 2930 F0**0.: 1.0\n    test 2931 0**F0: 1.0\n    test 2932 0.**F0: 1.0\n    test 2933 F0**0: 1.0\n    test 2934 F0**2: 0.0\n    test 2935 F0**0.: 1.0\n    test 2936 F0**3.: 0.0\n    test 2937 F0**0.: 1.0\n\n    test 2938 R**2: 3125.000\n    test 2939 R**-1: 0.200\n    test 2940 R**-2: 0.040\n    test 2941 R**-2.5: 0.018\n    test 2942 R** 2.5: 55.902\n    test 2943 pow(2): 25.000\n    test 2944 pow(2.5): 55.902\n    test 2945 pow(R): 3125.000\n    test 2946 3pow(2, None): 25.0\n    test 2947 3pow(2.5, None): 55.9017\n    test 2948 3pow(2, 20): 5\n    test 2949 x * x: 25.0\n    test 2950 x * R: 12.5\n    test 2951 x + R: 7.5\n    test 2952 x - R: 2.5\n\n    test 2953 abs(T): 0.0\n    test 2954 bool(T): True\n    test 2955 float(T): 2.220446049250313e-16\n    test 2956 int(T): 0\n    test 2957 -T: -0.0\n    test 2958 +T: 0.0\n\n    test 2959 R==T: False\n    test 2960 R>=T: True\n    test 2961 R> T: True\n    test 2962 R<=T: False\n    test 2963 R< T: False\n    test 2964 R!=T: True\n\n    test 2965 base: 61.0\n    test 2966 flipsign: -61.0\n    test 2967 lambertian: 1.3524048166735199\n    test 2968 fromScalar: 1.35240482\n    test 2969 n0: 61.0\n    test 2970 nearest: 90.0\n    test 2971 normalize: 61.0\n    test 2972 quadrant: 0\n    test 2973 reflect: 61.0\n    test 2974 round: 61.0\n    test 2975 shift: nan\n    test 2976 t: 1.8040477552714236\n    test 2977 toLambertian: 1.3524048166735199\n    test 2978 toTuple: 0.87462, 0.48481, 0.0\n\n    1 of 2978 testAngles.py tests (0.0%) FAILED, ALL KNOWN (pygeodesy 26.3.26 Python 3.13.12 64bit arm64 coverage 7.10.7 geographiclib 2.1 numpy 2.3.3 scipy 1.16.2 Math 2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 macOS 26.3.1 isLazy 1 -W  default) 38.445 ms\nrunning /Library/Framewo....n3.13 -W default ~/PyGeodesy/test/testAuxilats.py\n\n    testing testAuxilats.py 25.09.09 (module pygeodesy.auxilats 25.12.02) isLazy=1\n\n    test 1 Aux: 6\n\n    test 2 aout: 0\n    test 3 before: None\n    test 4 before: _Rtuple\n    test 5 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 6 before: _Rtuple\n    test 7 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 8 before: _Rtuple\n    test 9 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 10 before: _Rtuple\n    test 11 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 12 before: _Rtuple\n    test 13 after: tuple  FAILED, KNOWN, expected _Rtuple\n\n    test 14 aout: 1\n    test 15 before: _Rtuple\n    test 16 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 17 before: None\n    test 18 before: _Rtuple\n    test 19 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 20 before: _Rtuple\n    test 21 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 22 before: _Rtuple\n    test 23 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 24 before: _Rtuple\n    test 25 after: tuple  FAILED, KNOWN, expected _Rtuple\n\n    test 26 aout: 2\n    test 27 before: _Rtuple\n    test 28 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 29 before: _Rtuple\n    test 30 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 31 before: None\n    test 32 before: _Rtuple\n    test 33 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 34 before: _Rtuple\n    test 35 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 36 before: _Rtuple\n    test 37 after: tuple  FAILED, KNOWN, expected _Rtuple\n\n    test 38 aout: 3\n    test 39 before: _Rtuple\n    test 40 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 41 before: _Rtuple\n    test 42 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 43 before: _Rtuple\n    test 44 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 45 before: None\n    test 46 before: _Rtuple\n    test 47 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 48 before: _Rtuple\n    test 49 after: tuple  FAILED, KNOWN, expected _Rtuple\n\n    test 50 aout: 4\n    test 51 before: _Rtuple\n    test 52 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 53 before: _Rtuple\n    test 54 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 55 before: _Rtuple\n    test 56 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 57 before: _Rtuple\n    test 58 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 59 before: None\n    test 60 before: _Rtuple\n    test 61 after: tuple  FAILED, KNOWN, expected _Rtuple\n\n    test 62 aout: 5\n    test 63 before: _Rtuple\n    test 64 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 65 before: _Rtuple\n    test 66 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 67 before: _Rtuple\n    test 68 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 69 before: _Rtuple\n    test 70 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 71 before: _Rtuple\n    test 72 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 73 before: None\n\n    test 74 Aux: 4\n\n    test 75 aout: 0\n    test 76 Aux: 4\n    test 77 Aux: 4\n    test 78 Aux: 4\n    test 79 Aux: 4\n    test 80 Aux: 4\n    test 81 Aux: 4\n\n    test 82 aout: 1\n    test 83 Aux: 4\n    test 84 Aux: 4\n    test 85 Aux: 4\n    test 86 Aux: 4\n    test 87 Aux: 4\n    test 88 Aux: 4\n\n    test 89 aout: 2\n    test 90 Aux: 4\n    test 91 Aux: 4\n    test 92 Aux: 4\n    test 93 Aux: 4\n    test 94 Aux: 4\n    test 95 Aux: 4\n\n    test 96 aout: 3\n    test 97 Aux: 4\n    test 98 Aux: 4\n    test 99 Aux: 4\n    test 100 Aux: 4\n    test 101 Aux: 4\n    test 102 Aux: 4\n\n    test 103 aout: 4\n    test 104 Aux: 4\n    test 105 Aux: 4\n    test 106 Aux: 4\n    test 107 Aux: 4\n    test 108 Aux: 4\n    test 109 Aux: 4\n\n    test 110 aout: 5\n    test 111 Aux: 4\n    test 112 Aux: 4\n    test 113 Aux: 4\n    test 114 Aux: 4\n    test 115 Aux: 4\n    test 116 Aux: 4\n\n    test 117 Aux: 6\n\n    test 118 aout: 0\n    test 119 Aux: 6\n    test 120 Aux: 6\n    test 121 Aux: 6\n    test 122 Aux: 6\n    test 123 Aux: 6\n    test 124 Aux: 6\n\n    test 125 aout: 1\n    test 126 Aux: 6\n    test 127 Aux: 6\n    test 128 Aux: 6\n    test 129 Aux: 6\n    test 130 Aux: 6\n    test 131 Aux: 6\n\n    test 132 aout: 2\n    test 133 Aux: 6\n    test 134 Aux: 6\n    test 135 Aux: 6\n    test 136 Aux: 6\n    test 137 Aux: 6\n    test 138 Aux: 6\n\n    test 139 aout: 3\n    test 140 Aux: 6\n    test 141 Aux: 6\n    test 142 Aux: 6\n    test 143 Aux: 6\n    test 144 Aux: 6\n    test 145 Aux: 6\n\n    test 146 aout: 4\n    test 147 Aux: 6\n    test 148 Aux: 6\n    test 149 Aux: 6\n    test 150 Aux: 6\n    test 151 Aux: 6\n    test 152 Aux: 6\n\n    test 153 aout: 5\n    test 154 Aux: 6\n    test 155 Aux: 6\n    test 156 Aux: 6\n    test 157 Aux: 6\n    test 158 Aux: 6\n    test 159 Aux: 6\n\n    test 160 Aux: 8\n\n    test 161 aout: 0\n    test 162 Aux: 8\n    test 163 Aux: 8\n    test 164 Aux: 8\n    test 165 Aux: 8\n    test 166 Aux: 8\n    test 167 Aux: 8\n\n    test 168 aout: 1\n    test 169 Aux: 8\n    test 170 Aux: 8\n    test 171 Aux: 8\n    test 172 Aux: 8\n    test 173 Aux: 8\n    test 174 Aux: 8\n\n    test 175 aout: 2\n    test 176 Aux: 8\n    test 177 Aux: 8\n    test 178 Aux: 8\n    test 179 Aux: 8\n    test 180 Aux: 8\n    test 181 Aux: 8\n\n    test 182 aout: 3\n    test 183 Aux: 8\n    test 184 Aux: 8\n    test 185 Aux: 8\n    test 186 Aux: 8\n    test 187 Aux: 8\n    test 188 Aux: 8\n\n    test 189 aout: 4\n    test 190 Aux: 8\n    test 191 Aux: 8\n    test 192 Aux: 8\n    test 193 Aux: 8\n    test 194 Aux: 8\n    test 195 Aux: 8\n\n    test 196 aout: 5\n    test 197 Aux: 8\n    test 198 Aux: 8\n    test 199 Aux: 8\n    test 200 Aux: 8\n    test 201 Aux: 8\n    test 202 Aux: 8\n\n    test 203  0 0.000000000000 Phi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 204  0 0.000000000000 Beta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 205  0 0.000000000000 Theta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 206  0 0.000000000000 Mu(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 207  0 0.000000000000 Chi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 208  0 0.000000000000 Xi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n\n    test 209  0 0.000000000000 Phi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 210  0 0.000000000000 Beta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 211  0 0.000000000000 Theta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 212  0 0.000000000000 Mu(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 213  0 0.000000000000 Chi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 214  0 0.000000000000 Xi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n\n    test 215  7 7.023313832609 Phi(tan=0.123198, x=0.992546, y=0.122279): 0.122784560903\n    test 216  7 7.000000000000 Beta(tan=0.122785, x=0.992546, y=0.121869): 0.122784560903\n    test 217  7 6.976762016136 Theta(tan=0.122373, x=0.992546, y=0.121461): 0.122784560903\n    test 218  7 6.988357344130 Mu(tan=0.122578, x=0.992571, y=0.121668), iteration=2: 0.122784560903\n    test 219  7 6.976762787606 Chi(tan=0.122373, x=1.0, y=0.122373), iteration=3: 0.122784560903\n    test 220  7 6.992232010256 Xi(tan=0.122647, x=1.99404, y=0.244563), iteration=2: 0.122784560903\n\n    test 221  7 7.023313832609 Phi(tan=0.123198, x=0.992496, y=0.122273): 0.122784560903\n    test 222  7 7.000000000000 Beta(tan=0.122785, x=0.992546, y=0.121869): 0.122784560903\n    test 223  7 6.976762016136 Theta(tan=0.122373, x=0.992595, y=0.121467): 0.122784560903\n    test 224  7 6.988357344130 Mu(tan=0.122578, x=0.992571, y=0.121668): 0.122784560903\n    test 225  7 6.976762787606 Chi(tan=0.122373, x=0.992595, y=0.121467): 0.122784560903\n    test 226  7 6.992232010256 Xi(tan=0.122647, x=0.992563, y=0.121735): 0.122784560903\n\n    test 227 14 14.045235971490 Phi(tan=0.250167, x=0.970296, y=0.242736): 0.249328002843\n    test 228 14 14.000000000000 Beta(tan=0.249328, x=0.970296, y=0.241922): 0.249328002843\n    test 229 14 13.954897969322 Theta(tan=0.248492, x=0.970296, y=0.241111): 0.249328002843\n    test 230 14 13.977407191407 Mu(tan=0.248909, x=0.970391, y=0.241539), iteration=3: 0.249328002843\n    test 231 14 13.954903870195 Chi(tan=0.248492, x=1.0, y=0.248492), iteration=3: 0.249328002843\n    test 232 14 13.984926538790 Xi(tan=0.249049, x=1.94943, y=0.485503), iteration=3: 0.249328002843\n\n    test 233 14 14.045235971490 Phi(tan=0.250167, x=0.970104, y=0.242688): 0.249328002843\n    test 234 14 14.000000000000 Beta(tan=0.249328, x=0.970296, y=0.241922): 0.249328002843\n    test 235 14 13.954897969322 Theta(tan=0.248492, x=0.970486, y=0.241158): 0.249328002843\n    test 236 14 13.977407191407 Mu(tan=0.248909, x=0.970391, y=0.241539): 0.249328002843\n    test 237 14 13.954903870195 Chi(tan=0.248492, x=0.970486, y=0.241158): 0.249328002843\n    test 238 14 13.984926538790 Xi(tan=0.249049, x=0.970359, y=0.241667): 0.249328002843\n\n    test 239 21 21.064458966605 Phi(tan=0.385155, x=0.93358, y=0.359574): 0.383864035035\n    test 240 21 21.000000000000 Beta(tan=0.383864, x=0.93358, y=0.358368): 0.383864035035\n    test 241 21 20.935701709947 Theta(tan=0.382577, x=0.93358, y=0.357166): 0.383864035035\n    test 242 21 20.967800709613 Mu(tan=0.383219, x=0.933782, y=0.357843), iteration=2: 0.383864035035\n    test 243 21 20.935720172355 Chi(tan=0.382577, x=1.0, y=0.382577), iteration=3: 0.383864035035\n    test 244 21 20.978518383767 Xi(tan=0.383434, x=1.87581, y=0.719251), iteration=2: 0.383864035035\n\n    test 245 21 21.064458966605 Phi(tan=0.385155, x=0.933177, y=0.359418): 0.383864035035\n    test 246 21 21.000000000000 Beta(tan=0.383864, x=0.93358, y=0.358368): 0.383864035035\n    test 247 21 20.935701709947 Theta(tan=0.382577, x=0.933982, y=0.35732): 0.383864035035\n    test 248 21 20.967800709613 Mu(tan=0.383219, x=0.933782, y=0.357843): 0.383864035035\n    test 249 21 20.935720172355 Chi(tan=0.382577, x=0.933982, y=0.35732): 0.383864035035\n    test 250 21 20.978518383767 Xi(tan=0.383434, x=0.933715, y=0.358018): 0.383864035035\n\n    test 251 28 28.079838480095 Phi(tan=0.533498, x=0.882948, y=0.471051): 0.531709431661\n    test 252 28 28.000000000000 Beta(tan=0.531709, x=0.882948, y=0.469472): 0.531709431661\n    test 253 28 27.920311317014 Theta(tan=0.529927, x=0.882948, y=0.467898): 0.531709431661\n    test 254 28 27.960108897314 Mu(tan=0.530817, x=0.883274, y=0.468857), iteration=3: 0.531709431661\n    test 255 28 27.920350592883 Chi(tan=0.529928, x=1.0, y=0.529928), iteration=3: 0.531709431661\n    test 256 28 27.973388607066 Xi(tan=0.531114, x=1.77426, y=0.942335), iteration=2: 0.531709431661\n\n    test 257 28 28.079838480095 Phi(tan=0.533498, x=0.882293, y=0.470701): 0.531709431661\n    test 258 28 28.000000000000 Beta(tan=0.531709, x=0.882948, y=0.469472): 0.531709431661\n    test 259 28 27.920311317014 Theta(tan=0.529927, x=0.8836, y=0.468243): 0.531709431661\n    test 260 28 27.960108897314 Mu(tan=0.530817, x=0.883274, y=0.468857): 0.531709431661\n    test 261 28 27.920350592883 Chi(tan=0.529928, x=0.883599, y=0.468244): 0.531709431661\n    test 262 28 27.973388607066 Xi(tan=0.531114, x=0.883166, y=0.469061): 0.531709431661\n\n    test 263 35 35.090461812463 Phi(tan=0.702563, x=0.819152, y=0.575506): 0.700207538210\n    test 264 35 35.000000000000 Beta(tan=0.700208, x=0.819152, y=0.573576): 0.700207538210\n    test 265 35 34.909642037079 Theta(tan=0.69786, x=0.819152, y=0.571653): 0.700207538210\n    test 266 35 34.954788593575 Mu(tan=0.699032, x=0.819604, y=0.57293), iteration=3: 0.700207538210\n    test 267 35 34.909708526741 Chi(tan=0.697862, x=1.0, y=0.697862), iteration=3: 0.700207538210\n    test 268 35 34.969841811236 Xi(tan=0.699423, x=1.64627, y=1.15144), iteration=3: 0.700207538210\n\n    test 269 35 35.090461812463 Phi(tan=0.702563, x=0.818245, y=0.574869): 0.700207538210\n    test 270 35 35.000000000000 Beta(tan=0.700208, x=0.819152, y=0.573576): 0.700207538210\n    test 271 35 34.909642037079 Theta(tan=0.69786, x=0.820056, y=0.572284): 0.700207538210\n    test 272 35 34.954788593575 Mu(tan=0.699032, x=0.819604, y=0.57293): 0.700207538210\n    test 273 35 34.909708526741 Chi(tan=0.697862, x=0.820055, y=0.572285): 0.700207538210\n    test 274 35 34.969841811236 Xi(tan=0.699423, x=0.819454, y=0.573145): 0.700207538210\n\n    test 275 42 42.095701889505 Phi(tan=0.903433, x=0.743145, y=0.671382): 0.900404044298\n    test 276 42 42.000000000000 Beta(tan=0.900404, x=0.743145, y=0.669131): 0.900404044298\n    test 277 42 41.904331700939 Theta(tan=0.897385, x=0.743145, y=0.666887): 0.900404044298\n    test 278 42 41.952155366417 Mu(tan=0.898893, x=0.743703, y=0.66851), iteration=2: 0.900404044298\n    test 279 42 41.904427530254 Chi(tan=0.897388, x=1.0, y=0.897388), iteration=3: 0.900404044298\n    test 280 42 41.968088079226 Xi(tan=0.899396, x=1.49371, y=1.34344), iteration=2: 0.900404044298\n\n    test 281 42 42.095701889505 Phi(tan=0.903433, x=0.742026, y=0.670371): 0.900404044298\n    test 282 42 42.000000000000 Beta(tan=0.900404, x=0.743145, y=0.669131): 0.900404044298\n    test 283 42 41.904331700939 Theta(tan=0.897385, x=0.744261, y=0.667889): 0.900404044298\n    test 284 42 41.952155366417 Mu(tan=0.898893, x=0.743703, y=0.66851): 0.900404044298\n    test 285 42 41.904427530254 Chi(tan=0.897388, x=0.74426, y=0.66789): 0.900404044298\n    test 286 42 41.968088079226 Xi(tan=0.899396, x=0.743517, y=0.668717): 0.900404044298\n\n    test 287 49 49.095253561343 Phi(tan=1.15424, x=0.656059, y=0.757248): 1.150368407221\n    test 288 49 49.000000000000 Beta(tan=1.15037, x=0.656059, y=0.75471): 1.150368407221\n    test 289 49 48.904701906378 Theta(tan=1.14651, x=0.656059, y=0.752179): 1.150368407221\n    test 290 49 48.952364883757 Mu(tan=1.14844, x=0.656686, y=0.754164), iteration=3: 1.150368407221\n    test 291 49 48.904823373499 Chi(tan=1.14652, x=1.0, y=1.14652), iteration=3: 1.150368407221\n    test 292 49 48.968230641178 Xi(tan=1.14908, x=1.31885, y=1.51547), iteration=3: 1.150368407221\n\n    test 293 49 49.095253561343 Phi(tan=1.15424, x=0.654803, y=0.755799): 1.150368407221\n    test 294 49 49.000000000000 Beta(tan=1.15037, x=0.656059, y=0.75471): 1.150368407221\n    test 295 49 48.904701906378 Theta(tan=1.14651, x=0.657313, y=0.753617): 1.150368407221\n    test 296 49 48.952364883757 Mu(tan=1.14844, x=0.656686, y=0.754164): 1.150368407221\n    test 297 49 48.904823373499 Chi(tan=1.14652, x=0.657312, y=0.753619): 1.150368407221\n    test 298 49 48.968230641178 Xi(tan=1.14908, x=0.656477, y=0.754346): 1.150368407221\n\n    test 299 56 56.089150284766 Phi(tan=1.48755, x=0.559193, y=0.831827): 1.482560968513\n    test 300 56 56.000000000000 Beta(tan=1.48256, x=0.559193, y=0.829038): 1.482560968513\n    test 301 56 55.910737485374 Theta(tan=1.47759, x=0.559193, y=0.826258): 1.482560968513\n    test 302 56 55.955403845590 Mu(tan=1.48007, x=0.559838, y=0.828602), iteration=3: 1.482560968513\n    test 303 56 55.910874805786 Chi(tan=1.4776, x=1.0, y=1.4776), iteration=3: 1.482560968513\n    test 304 56 55.970259966049 Xi(tan=1.4809, x=1.12427, y=1.66494), iteration=3: 1.482560968513\n\n    test 305 56 56.089150284766 Phi(tan=1.48755, x=0.557902, y=0.829907): 1.482560968513\n    test 306 56 56.000000000000 Beta(tan=1.48256, x=0.559193, y=0.829038): 1.482560968513\n    test 307 56 55.910737485374 Theta(tan=1.47759, x=0.560484, y=0.828165): 1.482560968513\n    test 308 56 55.955403845590 Mu(tan=1.48007, x=0.559838, y=0.828602): 1.482560968513\n    test 309 56 55.910874805786 Chi(tan=1.4776, x=0.560482, y=0.828167): 1.482560968513\n    test 310 56 55.970259966049 Xi(tan=1.4809, x=0.559623, y=0.828747): 1.482560968513\n\n    test 311 63 63.077760538972 Phi(tan=1.96921, x=0.45399, y=0.894004): 1.962610505505\n    test 312 63 63.000000000000 Beta(tan=1.96261, x=0.45399, y=0.891007): 1.962610505505\n    test 313 63 62.922085806991 Theta(tan=1.95603, x=0.45399, y=0.888019): 1.962610505505\n    test 314 63 62.961090973753 Mu(tan=1.95932, x=0.454595, y=0.890698), iteration=2: 1.962610505505\n    test 315 63 62.922224287619 Chi(tan=1.95604, x=1.0, y=1.95604), iteration=3: 1.962610505505\n    test 316 63 62.974054576334 Xi(tan=1.96042, x=0.912868, y=1.7896), iteration=3: 1.962610505505\n\n    test 317 63 63.077760538972 Phi(tan=1.96921, x=0.452781, y=0.891622): 1.962610505505\n    test 318 63 63.000000000000 Beta(tan=1.96261, x=0.45399, y=0.891007): 1.962610505505\n    test 319 63 62.922085806991 Theta(tan=1.95603, x=0.455202, y=0.890388): 1.962610505505\n    test 320 63 62.961090973753 Mu(tan=1.95932, x=0.454595, y=0.890698): 1.962610505505\n    test 321 63 62.922224287619 Chi(tan=1.95604, x=0.4552, y=0.890389): 1.962610505505\n    test 322 63 62.974054576334 Xi(tan=1.96042, x=0.454394, y=0.890801): 1.962610505505\n\n    test 323 70 70.061764561164 Phi(tan=2.75672, x=0.34202, y=0.942854): 2.747477419455\n    test 324 70 70.000000000000 Beta(tan=2.74748, x=0.34202, y=0.939693): 2.747477419455\n    test 325 70 69.938076331685 Theta(tan=2.73827, x=0.34202, y=0.936542): 2.747477419455\n    test 326 70 69.969087953771 Mu(tan=2.74287, x=0.342527, y=0.939508), iteration=3: 2.747477419455\n    test 327 70 69.938198769881 Chi(tan=2.73828, x=1.0, y=2.73828), iteration=3: 2.747477419455\n    test 328 70 69.979388479327 Xi(tan=2.74441, x=0.687791, y=1.88758), iteration=3: 2.747477419455\n\n    test 329 70 70.061764561164 Phi(tan=2.75672, x=0.341007, y=0.940061): 2.747477419455\n    test 330 70 70.000000000000 Beta(tan=2.74748, x=0.34202, y=0.939693): 2.747477419455\n    test 331 70 69.938076331685 Theta(tan=2.73827, x=0.343036, y=0.939322): 2.747477419455\n    test 332 70 69.969087953771 Mu(tan=2.74287, x=0.342527, y=0.939508): 2.747477419455\n    test 333 70 69.938198769881 Chi(tan=2.73828, x=0.343034, y=0.939323): 2.747477419455\n    test 334 70 69.979388479327 Xi(tan=2.74441, x=0.342358, y=0.93957): 2.747477419455\n\n    test 335 77 77.042113102652 Phi(tan=4.34605, x=0.224951, y=0.977648): 4.331475874284\n    test 336 77 77.000000000000 Beta(tan=4.33148, x=0.224951, y=0.97437): 4.331475874284\n    test 337 77 76.957759584883 Theta(tan=4.31695, x=0.224951, y=0.971103): 4.331475874284\n    test 338 77 76.978919638565 Mu(tan=4.32422, x=0.22531, y=0.974287), iteration=3: 4.331475874284\n    test 339 77 76.957849394477 Chi(tan=4.31698, x=1.0, y=4.31698), iteration=3: 4.331475874284\n    test 340 77 76.985944723491 Xi(tan=4.32663, x=0.452402, y=1.95738), iteration=3: 4.331475874284\n\n    test 341 77 77.042113102652 Phi(tan=4.34605, x=0.224235, y=0.974535): 4.331475874284\n    test 342 77 77.000000000000 Beta(tan=4.33148, x=0.224951, y=0.97437): 4.331475874284\n    test 343 77 76.957759584883 Theta(tan=4.31695, x=0.225669, y=0.974204): 4.331475874284\n    test 344 77 76.978919638565 Mu(tan=4.32422, x=0.22531, y=0.974287): 4.331475874284\n    test 345 77 76.957849394477 Chi(tan=4.31698, x=0.225668, y=0.974204): 4.331475874284\n    test 346 77 76.985944723491 Xi(tan=4.32663, x=0.22519, y=0.974315): 4.331475874284\n\n    test 347 84 84.019970846274 Phi(tan=9.54637, x=0.104528, y=0.997868): 9.514364454223\n    test 348 84 84.000000000000 Beta(tan=9.51436, x=0.104528, y=0.994522): 9.514364454223\n    test 349 84 83.979963440552 Theta(tan=9.48246, x=0.104528, y=0.991187): 9.514364454223\n    test 350 84 83.990002289461 Mu(tan=9.49842, x=0.104702, y=0.994504), iteration=3: 9.514364454223\n    test 351 84 83.980007825249 Chi(tan=9.48254, x=1.0, y=9.48254), iteration=3: 9.514364454223\n    test 352 84 83.993334244416 Xi(tan=9.50373, x=0.210228, y=1.99795), iteration=3: 9.514364454223\n\n    test 353 84 84.019970846274 Phi(tan=9.54637, x=0.104182, y=0.994558): 9.514364454223\n    test 354 84 84.000000000000 Beta(tan=9.51436, x=0.104528, y=0.994522): 9.514364454223\n    test 355 84 83.979963440552 Theta(tan=9.48246, x=0.104876, y=0.994485): 9.514364454223\n    test 356 84 83.990002289461 Mu(tan=9.49842, x=0.104702, y=0.994504): 9.514364454223\n    test 357 84 83.980007825249 Chi(tan=9.48254, x=0.104875, y=0.994485): 9.514364454223\n    test 358 84 83.993334244416 Xi(tan=9.50373, x=0.104644, y=0.99451): 9.514364454223\n\n    test 359 91 90.996647866757 Phi(tan=-57.4827, x=-0.0174524, y=1.00321): -57.289961630759\n    test 360 91 91.000000000000 Beta(tan=-57.29, x=-0.0174524, y=0.999848): -57.289961630759\n    test 361 91 91.003363403239 Theta(tan=-57.0979, x=-0.0174524, y=0.996495): -57.289961630759\n    test 362 91 91.001678173837 Mu(tan=-57.194, x=-0.0174817, y=0.999847), iteration=3: -57.289961630759\n    test 363 91 91.003355872504 Chi(tan=-57.0983, x=-1, y=57.0983), iteration=3: -57.289961630759\n    test 364 91 91.001118877197 Xi(tan=-57.2259, x=-0.0351008, y=2.00867), iteration=3: -57.289961630759\n\n    test 365 91 90.996647866757 Phi(tan=-57.4827, x=-0.0173939, y=0.999849): -57.289961630759\n    test 366 91 91.000000000000 Beta(tan=-57.29, x=-0.0174524, y=0.999848): -57.289961630759\n    test 367 91 91.003363403239 Theta(tan=-57.0979, x=-0.0175111, y=0.999847): -57.289961630760  FAILED, KNOWN (6.07726e-15), expected -57.289961630759\n    test 368 91 91.001678173837 Mu(tan=-57.194, x=-0.0174817, y=0.999847): -57.289961630760  FAILED, KNOWN (6.44934e-15), expected -57.289961630759\n    test 369 91 91.003355872504 Chi(tan=-57.0983, x=-0.017511, y=0.999847): -57.289961630760  FAILED, KNOWN (4.21687e-15), expected -57.289961630759\n    test 370 91 91.001118877197 Xi(tan=-57.2259, x=-0.0174719, y=0.999847): -57.289961630760  FAILED, KNOWN (5.08505e-15), expected -57.289961630759\n\n    test 371 98 97.973523052479 Phi(tan=-7.13931, x=-0.139173, y=0.993599): -7.115369722384\n    test 372 98 98.000000000000 Beta(tan=-7.11537, x=-0.139173, y=0.990268): -7.115369722384\n    test 373 98 98.026562562307 Theta(tan=-7.09151, x=-0.139173, y=0.986948): -7.115369722384\n    test 374 98 98.013254483126 Mu(tan=-7.10345, x=-0.139402, y=0.990236), iteration=3: -7.115369722384\n    test 375 98 98.026504224575 Chi(tan=-7.09157, x=-1, y=7.09157), iteration=3: -7.115369722384\n    test 376 98 98.008837191904 Xi(tan=-7.10742, x=-0.279903, y=1.98939), iteration=3: -7.115369722384\n\n    test 377 98 97.973523052479 Phi(tan=-7.13931, x=-0.138715, y=0.990332): -7.115369722384\n    test 378 98 98.000000000000 Beta(tan=-7.11537, x=-0.139173, y=0.990268): -7.115369722384\n    test 379 98 98.026562562307 Theta(tan=-7.09151, x=-0.139632, y=0.990203): -7.115369722384\n    test 380 98 98.013254483126 Mu(tan=-7.10345, x=-0.139402, y=0.990236): -7.115369722384\n    test 381 98 98.026504224575 Chi(tan=-7.09157, x=-0.139631, y=0.990204): -7.115369722384\n    test 382 98 98.008837191904 Xi(tan=-7.10742, x=-0.139326, y=0.990247): -7.115369722384\n\n    test 383 105 104.951963747366 Phi(tan=-3.74461, x=-0.258819, y=0.969175): -3.732050807569\n    test 384 105 105.000000000000 Beta(tan=-3.73205, x=-0.258819, y=0.965926): -3.732050807569\n    test 385 105 105.048176169243 Theta(tan=-3.71954, x=-0.258819, y=0.962687): -3.732050807569\n    test 386 105 105.024044295704 Mu(tan=-3.7258, x=-0.259224, y=0.965817), iteration=3: -3.732050807569\n    test 387 105 105.048075510346 Chi(tan=-3.71956, x=-1, y=3.71956), iteration=3: -3.732050807569\n    test 388 105 105.016031662804 Xi(tan=-3.72788, x=-0.520505, y=1.94038), iteration=3: -3.732050807569\n\n    test 389 105 104.951963747366 Phi(tan=-3.74461, x=-0.258009, y=0.966142): -3.732050807569\n    test 390 105 105.000000000000 Beta(tan=-3.73205, x=-0.258819, y=0.965926): -3.732050807569\n    test 391 105 105.048176169243 Theta(tan=-3.71954, x=-0.259631, y=0.965708): -3.732050807569\n    test 392 105 105.024044295704 Mu(tan=-3.7258, x=-0.259224, y=0.965817): -3.732050807569\n    test 393 105 105.048075510346 Chi(tan=-3.71956, x=-0.259629, y=0.965708): -3.732050807569\n    test 394 105 105.016031662804 Xi(tan=-3.72788, x=-0.259089, y=0.965853): -3.732050807569\n\n    test 395 112 111.933246025813 Phi(tan=-2.48341, x=-0.374607, y=0.930303): -2.475086853416\n    test 396 112 112.000000000000 Beta(tan=-2.47509, x=-0.374607, y=0.927184): -2.475086853416\n    test 397 112 112.066915437341 Theta(tan=-2.46679, x=-0.374607, y=0.924075): -2.475086853416\n    test 398 112 112.033407196712 Mu(tan=-2.47094, x=-0.375147, y=0.926965), iteration=3: -2.475086853416\n    test 399 112 112.066786634266 Chi(tan=-2.4668, x=-1, y=2.4668), iteration=3: -2.475086853416\n    test 400 112 112.022275613932 Xi(tan=-2.47232, x=-0.753301, y=1.8624), iteration=3: -2.475086853416\n\n    test 401 112 111.933246025813 Phi(tan=-2.48341, x=-0.373526, y=0.92762): -2.475086853416\n    test 402 112 112.000000000000 Beta(tan=-2.47509, x=-0.374607, y=0.927184): -2.475086853416\n    test 403 112 112.066915437341 Theta(tan=-2.46679, x=-0.375689, y=0.926746): -2.475086853416\n    test 404 112 112.033407196712 Mu(tan=-2.47094, x=-0.375147, y=0.926965): -2.475086853416\n    test 405 112 112.066786634266 Chi(tan=-2.4668, x=-0.375687, y=0.926747): -2.475086853416\n    test 406 112 112.022275613932 Xi(tan=-2.47232, x=-0.374967, y=0.927038): -2.475086853416\n\n    test 407 119 118.918479987923 Phi(tan=-1.81012, x=-0.48481, y=0.877562): -1.804047755271\n    test 408 119 119.000000000000 Beta(tan=-1.80405, x=-0.48481, y=0.87462): -1.804047755271\n    test 409 119 119.081665222463 Theta(tan=-1.798, x=-0.48481, y=0.871687): -1.804047755271\n    test 410 119 119.040787185717 Mu(tan=-1.80102, x=-0.485432, y=0.874274), iteration=3: -1.804047755271\n    test 411 119 119.081525372917 Chi(tan=-1.79801, x=-1, y=1.79801), iteration=3: -1.804047755271\n    test 412 119 119.027198394988 Xi(tan=-1.80203, x=-0.974807, y=1.75663), iteration=3: -1.804047755271\n\n    test 413 119 118.918479987923 Phi(tan=-1.81012, x=-0.483565, y=0.875309): -1.804047755271\n    test 414 119 119.000000000000 Beta(tan=-1.80405, x=-0.48481, y=0.87462): -1.804047755271\n    test 415 119 119.081665222463 Theta(tan=-1.798, x=-0.486056, y=0.873928): -1.804047755271\n    test 416 119 119.040787185717 Mu(tan=-1.80102, x=-0.485432, y=0.874274): -1.804047755271\n    test 417 119 119.081525372917 Chi(tan=-1.79801, x=-0.486054, y=0.873929): -1.804047755271\n    test 418 119 119.027198394988 Xi(tan=-1.80203, x=-0.485225, y=0.874389): -1.804047755271\n\n    test 419 126 125.908544256035 Phi(tan=-1.38101, x=-0.587785, y=0.811739): -1.376381920471\n    test 420 126 126.000000000000 Beta(tan=-1.37638, x=-0.587785, y=0.809017): -1.376381920471\n    test 421 126 126.091550707249 Theta(tan=-1.37177, x=-0.587785, y=0.806305): -1.376381920471\n    test 422 126 126.045745652474 Mu(tan=-1.37407, x=-0.588431, y=0.808547), iteration=3: -1.376381920471\n    test 423 126 126.091416595783 Chi(tan=-1.37177, x=-1, y=1.37177), iteration=3: -1.376381920471\n    test 424 126 126.030507332108 Xi(tan=-1.37484, x=-1.18171, y=1.62467), iteration=2: -1.376381920471\n\n    test 425 126 125.908544256035 Phi(tan=-1.38101, x=-0.586493, y=0.809954): -1.376381920471\n    test 426 126 126.000000000000 Beta(tan=-1.37638, x=-0.587785, y=0.809017): -1.376381920471\n    test 427 126 126.091550707249 Theta(tan=-1.37177, x=-0.589077, y=0.808077): -1.376381920471\n    test 428 126 126.045745652474 Mu(tan=-1.37407, x=-0.588431, y=0.808547): -1.376381920471\n    test 429 126 126.091416595783 Chi(tan=-1.37177, x=-0.589075, y=0.808078): -1.376381920471\n    test 430 126 126.030507332108 Xi(tan=-1.37484, x=-0.588216, y=0.808704): -1.376381920471\n\n    test 431 133 132.904033458108 Phi(tan=-1.07598, x=-0.681998, y=0.733814): -1.072368710025\n    test 432 133 133.000000000000 Beta(tan=-1.07237, x=-0.681998, y=0.731354): -1.072368710025\n    test 433 133 133.095989026852 Theta(tan=-1.06877, x=-0.681998, y=0.728902): -1.072368710025\n    test 434 133 133.047987474831 Mu(tan=-1.07057, x=-0.682611, y=0.730782), iteration=3: -1.072368710025\n    test 435 133 133.095874142459 Chi(tan=-1.06878, x=-1, y=1.06878), iteration=2: -1.072368710025\n    test 436 133 133.032005165725 Xi(tan=-1.07117, x=-1.37094, y=1.46851), iteration=3: -1.072368710025\n\n    test 437 133 132.904033458108 Phi(tan=-1.07598, x=-0.680772, y=0.732495): -1.072368710025\n    test 438 133 133.000000000000 Beta(tan=-1.07237, x=-0.681998, y=0.731354): -1.072368710025\n    test 439 133 133.095989026852 Theta(tan=-1.06877, x=-0.683223, y=0.73021): -1.072368710025\n    test 440 133 133.047987474831 Mu(tan=-1.07057, x=-0.682611, y=0.730782): -1.072368710025\n    test 441 133 133.095874142459 Chi(tan=-1.06878, x=-0.683221, y=0.730211): -1.072368710025\n    test 442 133 133.032005165725 Xi(tan=-1.07117, x=-0.682407, y=0.730973): -1.072368710025\n\n    test 443 140 139.905221888853 Phi(tan=-0.841922, x=-0.766044, y=0.64495): -0.839099631177\n    test 444 140 140.000000000000 Beta(tan=-0.8391, x=-0.766044, y=0.642788): -0.839099631177\n    test 445 140 140.094722853987 Theta(tan=-0.836286, x=-0.766044, y=0.640632): -0.839099631177\n    test 446 140 140.047378679025 Mu(tan=-0.837691, x=-0.766576, y=0.642154), iteration=2: -0.839099631177\n    test 447 140 140.094635301560 Chi(tan=-0.836289, x=-1, y=0.836289), iteration=3: -0.839099631177\n    test 448 140 140.031601928062 Xi(tan=-0.83816, x=-1.53968, y=1.2905), iteration=3: -0.839099631177\n\n    test 449 140 139.905221888853 Phi(tan=-0.841922, x=-0.76498, y=0.644054): -0.839099631177\n    test 450 140 140.000000000000 Beta(tan=-0.8391, x=-0.766044, y=0.642788): -0.839099631177\n    test 451 140 140.094722853987 Theta(tan=-0.836286, x=-0.767106, y=0.64152): -0.839099631177\n    test 452 140 140.047378679025 Mu(tan=-0.837691, x=-0.766576, y=0.642154): -0.839099631177\n    test 453 140 140.094635301560 Chi(tan=-0.836289, x=-0.767105, y=0.641521): -0.839099631177\n    test 454 140 140.031601928062 Xi(tan=-0.83816, x=-0.766399, y=0.642365): -0.839099631177\n\n    test 455 147 146.912045740495 Phi(tan=-0.651592, x=-0.838671, y=0.546471): -0.649407593198\n    test 456 147 147.000000000000 Beta(tan=-0.649408, x=-0.838671, y=0.544639): -0.649407593198\n    test 457 147 147.087834196097 Theta(tan=-0.64723, x=-0.838671, y=0.542813): -0.649407593198\n    test 458 147 147.043954583618 Mu(tan=-0.648317, x=-0.839088, y=0.543995), iteration=3: -0.649407593198\n    test 459 147 147.087775924345 Chi(tan=-0.647232, x=-1, y=0.647232), iteration=3: -0.649407593198\n    test 460 147 147.029320517871 Xi(tan=-0.64868, x=-1.68543, y=1.09331), iteration=3: -0.649407593198\n\n    test 461 147 146.912045740495 Phi(tan=-0.651592, x=-0.837834, y=0.545926): -0.649407593198\n    test 462 147 147.000000000000 Beta(tan=-0.649408, x=-0.838671, y=0.544639): -0.649407593198\n    test 463 147 147.087834196097 Theta(tan=-0.64723, x=-0.839505, y=0.543353): -0.649407593198\n    test 464 147 147.043954583618 Mu(tan=-0.648317, x=-0.839088, y=0.543995): -0.649407593198\n    test 465 147 147.087775924345 Chi(tan=-0.647232, x=-0.839504, y=0.543354): -0.649407593198\n    test 466 147 147.029320517871 Xi(tan=-0.64868, x=-0.838949, y=0.54421): -0.649407593198\n\n    test 467 154 153.924105301481 Phi(tan=-0.489373, x=-0.898794, y=0.439846): -0.487732588566\n    test 468 154 154.000000000000 Beta(tan=-0.487733, x=-0.898794, y=0.438371): -0.487732588566\n    test 469 154 154.075737936138 Theta(tan=-0.486097, x=-0.898794, y=0.436901): -0.487732588566\n    test 470 154 154.037917900127 Mu(tan=-0.486914, x=-0.899084, y=0.437776), iteration=3: -0.487732588566\n    test 471 154 154.075705391203 Chi(tan=-0.486098, x=-1, y=0.486098), iteration=3: -0.487732588566\n    test 472 154 154.025295587615 Xi(tan=-0.487186, x=-1.80605, y=0.879882), iteration=3: -0.487732588566\n\n    test 473 154 153.924105301481 Phi(tan=-0.489373, x=-0.898213, y=0.439561): -0.487732588566\n    test 474 154 154.000000000000 Beta(tan=-0.487733, x=-0.898794, y=0.438371): -0.487732588566\n    test 475 154 154.075737936138 Theta(tan=-0.486097, x=-0.899373, y=0.437183): -0.487732588566\n    test 476 154 154.037917900127 Mu(tan=-0.486914, x=-0.899084, y=0.437776): -0.487732588566\n    test 477 154 154.075705391203 Chi(tan=-0.486098, x=-0.899372, y=0.437183): -0.487732588566\n    test 478 154 154.025295587615 Xi(tan=-0.487186, x=-0.898987, y=0.437974): -0.487732588566\n\n    test 479 161 160.940687365843 Phi(tan=-0.345486, x=-0.945519, y=0.326663): -0.344327613290\n    test 480 161 161.000000000000 Beta(tan=-0.344328, x=-0.945519, y=0.325568): -0.344327613290\n    test 481 161 161.059155871563 Theta(tan=-0.343173, x=-0.945519, y=0.324477): -0.344327613290\n    test 482 161 161.029626856612 Mu(tan=-0.343749, x=-0.945687, y=0.325079), iteration=3: -0.344327613290\n    test 483 161 161.059141853346 Chi(tan=-0.343173, x=-1, y=0.343173), iteration=3: -0.344327613290\n    test 484 161 161.019765751188 Xi(tan=-0.343942, x=-1.89975, y=0.653405), iteration=3: -0.344327613290\n\n    test 485 161 160.940687365843 Phi(tan=-0.345486, x=-0.945181, y=0.326547): -0.344327613290\n    test 486 161 161.000000000000 Beta(tan=-0.344328, x=-0.945519, y=0.325568): -0.344327613290\n    test 487 161 161.059155871563 Theta(tan=-0.343173, x=-0.945854, y=0.324592): -0.344327613290\n    test 488 161 161.029626856612 Mu(tan=-0.343749, x=-0.945687, y=0.325079): -0.344327613290\n    test 489 161 161.059141853346 Chi(tan=-0.343173, x=-0.945854, y=0.324592): -0.344327613290\n    test 490 161 161.019765751188 Xi(tan=-0.343942, x=-0.945631, y=0.325242): -0.344327613290\n\n    test 491 168 167.960806838131 Phi(tan=-0.213272, x=-0.978148, y=0.208611): -0.212556561670\n    test 492 168 168.000000000000 Beta(tan=-0.212557, x=-0.978148, y=0.207912): -0.212556561670\n    test 493 168 168.039073098008 Theta(tan=-0.211844, x=-0.978148, y=0.207215): -0.212556561670\n    test 494 168 168.019574010622 Mu(tan=-0.2122, x=-0.978219, y=0.207578), iteration=2: -0.212556561670\n    test 495 168 168.039069322354 Chi(tan=-0.211844, x=-1, y=0.211844), iteration=2: -0.212556561670\n    test 496 168 168.013059526305 Xi(tan=-0.212318, x=-1.96517, y=0.417243), iteration=3: -0.212556561670\n\n    test 497 168 167.960806838131 Phi(tan=-0.213272, x=-0.978005, y=0.208581): -0.212556561670\n    test 498 168 168.000000000000 Beta(tan=-0.212557, x=-0.978148, y=0.207912): -0.212556561670\n    test 499 168 168.039073098008 Theta(tan=-0.211844, x=-0.978289, y=0.207245): -0.212556561670\n    test 500 168 168.019574010622 Mu(tan=-0.2122, x=-0.978219, y=0.207578): -0.212556561670\n    test 501 168 168.039069322354 Chi(tan=-0.211844, x=-0.978289, y=0.207245): -0.212556561670\n    test 502 168 168.013059526305 Xi(tan=-0.212318, x=-0.978195, y=0.207689): -0.212556561670\n\n    test 503 175 174.983265245736 Phi(tan=-0.087783, x=-0.996195, y=0.0874489): -0.087488663526\n    test 504 175 175.000000000000 Beta(tan=-0.0874887, x=-0.996195, y=0.0871557): -0.087488663526\n    test 505 175 175.016679496811 Theta(tan=-0.0871953, x=-0.996195, y=0.0868635): -0.087488663526\n    test 506 175 175.008356987733 Mu(tan=-0.0873417, x=-0.996207, y=0.0870104), iteration=3: -0.087488663526\n    test 507 175 175.016679213606 Chi(tan=-0.0871953, x=-1, y=0.0871953), iteration=2: -0.087488663526\n    test 508 175 175.005575818689 Xi(tan=-0.0873906, x=-2.00135, y=0.174899), iteration=2: -0.087488663526\n\n    test 509 175 174.983265245736 Phi(tan=-0.087783, x=-0.996169, y=0.0874467): -0.087488663526\n    test 510 175 175.000000000000 Beta(tan=-0.0874887, x=-0.996195, y=0.0871557): -0.087488663526\n    test 511 175 175.016679496811 Theta(tan=-0.0871953, x=-0.99622, y=0.0868657): -0.087488663526\n    test 512 175 175.008356987733 Mu(tan=-0.0873417, x=-0.996207, y=0.0870104): -0.087488663526\n    test 513 175 175.016679213606 Chi(tan=-0.0871953, x=-0.99622, y=0.0868657): -0.087488663526\n    test 514 175 175.005575818689 Xi(tan=-0.0873906, x=-0.996203, y=0.0870588): -0.087488663526\n\n    test 515 182 182.006722688009 Phi(tan=0.0350382, x=-0.999391, y=-0.0350169): 0.034920769492\n    test 516 182 182.000000000000 Beta(tan=0.0349208, x=-0.999391, y=-0.0348995): 0.034920769492\n    test 517 182 181.993299797077 Theta(tan=0.0348037, x=-0.999391, y=-0.0347825): 0.034920769492\n    test 518 182 181.996642883728 Mu(tan=0.0348621, x=-0.999393, y=-0.0348409), iteration=3: 0.034920769492\n    test 519 182 181.993299815318 Chi(tan=0.0348037, x=-1, y=-0.0348037), iteration=2: 0.034920769492\n    test 520 182 181.997760106963 Xi(tan=0.0348816, x=-2.00776, y=-0.0700339), iteration=3: 0.034920769492\n\n    test 521 182 182.006722688009 Phi(tan=0.0350382, x=-0.999387, y=-0.0350168): 0.034920769492\n    test 522 182 182.000000000000 Beta(tan=0.0349208, x=-0.999391, y=-0.0348995): 0.034920769492\n    test 523 182 181.993299797077 Theta(tan=0.0348037, x=-0.999395, y=-0.0347826): 0.034920769492\n    test 524 182 181.996642883728 Mu(tan=0.0348621, x=-0.999393, y=-0.0348409): 0.034920769492\n    test 525 182 181.993299815318 Chi(tan=0.0348037, x=-0.999395, y=-0.0347826): 0.034920769492\n    test 526 182 181.997760106963 Xi(tan=0.0348816, x=-0.999392, y=-0.0348604): 0.034920769492\n\n    test 527 189 189.029778772560 Phi(tan=0.158917, x=-0.987688, y=-0.156961): 0.158384440325\n    test 528 189 189.000000000000 Beta(tan=0.158384, x=-0.987688, y=-0.156434): 0.158384440325\n    test 529 189 188.970316191157 Theta(tan=0.157853, x=-0.987688, y=-0.15591): 0.158384440325\n    test 530 189 188.985128467162 Mu(tan=0.158118, x=-0.987729, y=-0.156178), iteration=3: 0.158384440325\n    test 531 189 188.970317814928 Chi(tan=0.157853, x=-1, y=-0.157853), iteration=2: 0.158384440325\n    test 532 189 188.990077770379 Xi(tan=0.158207, x=-1.9843, y=-0.31393), iteration=3: 0.158384440325\n\n    test 533 189 189.029778772560 Phi(tan=0.158917, x=-0.987607, y=-0.156948): 0.158384440325\n    test 534 189 189.000000000000 Beta(tan=0.158384, x=-0.987688, y=-0.156434): 0.158384440325\n    test 535 189 188.970316191157 Theta(tan=0.157853, x=-0.987769, y=-0.155923): 0.158384440325\n    test 536 189 188.985128467162 Mu(tan=0.158118, x=-0.987729, y=-0.156178): 0.158384440325\n    test 537 189 188.970317814928 Chi(tan=0.157853, x=-0.987769, y=-0.155923): 0.158384440325\n    test 538 189 188.990077770379 Xi(tan=0.158207, x=-0.987715, y=-0.156263): 0.158384440325\n\n    test 539 196 196.051057415277 Phi(tan=0.28771, x=-0.961262, y=-0.276565): 0.286745385759\n    test 540 196 196.000000000000 Beta(tan=0.286745, x=-0.961262, y=-0.275637): 0.286745385759\n    test 541 196 195.949087795468 Theta(tan=0.285784, x=-0.961262, y=-0.274713): 0.286745385759\n    test 542 196 195.974498585700 Mu(tan=0.286264, x=-0.961384, y=-0.275209), iteration=2: 0.286745385759\n    test 543 196 195.949096442818 Chi(tan=0.285784, x=-1, y=-0.285784), iteration=3: 0.286745385759\n    test 544 196 195.982986192635 Xi(tan=0.286424, x=-1.93132, y=-0.553176), iteration=3: 0.286745385759\n\n    test 545 196 196.051057415277 Phi(tan=0.28771, x=-0.961016, y=-0.276494): 0.286745385759\n    test 546 196 196.000000000000 Beta(tan=0.286745, x=-0.961262, y=-0.275637): 0.286745385759\n    test 547 196 195.949087795468 Theta(tan=0.285784, x=-0.961506, y=-0.274783): 0.286745385759\n    test 548 196 195.974498585700 Mu(tan=0.286264, x=-0.961384, y=-0.275209): 0.286745385759\n    test 549 196 195.949096442818 Chi(tan=0.285784, x=-0.961506, y=-0.274783): 0.286745385759\n    test 550 196 195.982986192635 Xi(tan=0.286424, x=-0.961344, y=-0.275352): 0.286745385759\n\n    test 551 203 203.069290086312 Phi(tan=0.425903, x=-0.920505, y=-0.392046): 0.424474816210\n    test 552 203 203.000000000000 Beta(tan=0.424475, x=-0.920505, y=-0.390731): 0.424474816210\n    test 553 203 202.930871376810 Theta(tan=0.423052, x=-0.920505, y=-0.389421): 0.424474816210\n    test 554 203 202.965385294258 Mu(tan=0.423762, x=-0.920741, y=-0.390175), iteration=3: 0.424474816210\n    test 555 203 202.930894974288 Chi(tan=0.423052, x=-1, y=-0.423052), iteration=3: 0.424474816210\n    test 556 203 202.976907357652 Xi(tan=0.423999, x=-1.84959, y=-0.784226), iteration=3: 0.424474816210\n\n    test 557 203 203.069290086312 Phi(tan=0.425903, x=-0.920032, y=-0.391844): 0.424474816210\n    test 558 203 203.000000000000 Beta(tan=0.424475, x=-0.920505, y=-0.390731): 0.424474816210\n    test 559 203 202.930871376810 Theta(tan=0.423052, x=-0.920976, y=-0.38962): 0.424474816210\n    test 560 203 202.965385294258 Mu(tan=0.423762, x=-0.920741, y=-0.390175): 0.424474816210\n    test 561 203 202.930894974288 Chi(tan=0.423052, x=-0.920975, y=-0.389621): 0.424474816210\n    test 562 203 202.976907357652 Xi(tan=0.423999, x=-0.920662, y=-0.39036): 0.424474816210\n\n    test 563 210 210.083392202979 Phi(tan=0.579293, x=-0.866025, y=-0.501682): 0.577350269190\n    test 564 210 210.000000000000 Beta(tan=0.57735, x=-0.866025, y=-0.5): 0.577350269190\n    test 565 210 209.916747713236 Theta(tan=0.575415, x=-0.866025, y=-0.498324): 0.577350269190\n    test 566 210 209.958330176858 Mu(tan=0.576381, x=-0.866389, y=-0.49937), iteration=2: 0.577350269190\n    test 567 210 209.916794258180 Chi(tan=0.575416, x=-1, y=-0.575416), iteration=2: 0.577350269190\n    test 568 210 209.972202619898 Xi(tan=0.576704, x=-1.74031, y=-1.00365), iteration=2: 0.577350269190\n\n    test 569 210 210.083392202979 Phi(tan=0.579293, x=-0.865297, y=-0.50126): 0.577350269190\n    test 570 210 210.000000000000 Beta(tan=0.57735, x=-0.866025, y=-0.5): 0.577350269190\n    test 571 210 209.916747713236 Theta(tan=0.575415, x=-0.866751, y=-0.498741): 0.577350269190\n    test 572 210 209.958330176858 Mu(tan=0.576381, x=-0.866389, y=-0.49937): 0.577350269190\n    test 573 210 209.916794258180 Chi(tan=0.575416, x=-0.866751, y=-0.498742): 0.577350269190\n    test 574 210 209.972202619898 Xi(tan=0.576704, x=-0.866268, y=-0.49958): 0.577350269190\n\n    test 575 217 217.092527888642 Phi(tan=0.756089, x=-0.798636, y=-0.60384): 0.753554050103\n    test 576 217 217.000000000000 Beta(tan=0.753554, x=-0.798636, y=-0.601815): 0.753554050103\n    test 577 217 216.907557725734 Theta(tan=0.751028, x=-0.798636, y=-0.599797): 0.753554050103\n    test 578 217 216.953752130797 Mu(tan=0.752289, x=-0.799121, y=-0.60117), iteration=2: 0.753554050103\n    test 579 217 216.907632616913 Chi(tan=0.75103, x=-1, y=-0.75103), iteration=3: 0.753554050103\n    test 580 217 216.969151185746 Xi(tan=0.75271, x=-1.60509, y=-1.20817), iteration=2: 0.753554050103\n\n    test 581 217 217.092527888642 Phi(tan=0.756089, x=-0.797663, y=-0.603104): 0.753554050103\n    test 582 217 217.000000000000 Beta(tan=0.753554, x=-0.798636, y=-0.601815): 0.753554050103\n    test 583 217 216.907557725734 Theta(tan=0.751028, x=-0.799605, y=-0.600526): 0.753554050103\n    test 584 217 216.953752130797 Mu(tan=0.752289, x=-0.799121, y=-0.60117): 0.753554050103\n    test 585 217 216.907632616913 Chi(tan=0.75103, x=-0.799605, y=-0.600527): 0.753554050103\n    test 586 217 216.969151185746 Xi(tan=0.75271, x=-0.798959, y=-0.601385): 0.753554050103\n\n    test 587 224 224.096159176144 Phi(tan=0.968937, x=-0.71934, y=-0.696995): 0.965688774807\n    test 588 224 224.000000000000 Beta(tan=0.965689, x=-0.71934, y=-0.694658): 0.965688774807\n    test 589 224 223.903852093789 Theta(tan=0.962451, x=-0.71934, y=-0.692329): 0.965688774807\n    test 590 224 223.951922536530 Mu(tan=0.964068, x=-0.719922, y=-0.694055), iteration=2: 0.965688774807\n    test 591 224 223.903955899504 Chi(tan=0.962454, x=-1, y=-0.962454), iteration=3: 0.965688774807\n    test 592 224 223.967933596024 Xi(tan=0.964608, x=-1.44592, y=-1.39475), iteration=3: 0.965688774807\n\n    test 593 224 224.096159176144 Phi(tan=0.968937, x=-0.718173, y=-0.695865): 0.965688774807\n    test 594 224 224.000000000000 Beta(tan=0.965689, x=-0.71934, y=-0.694658): 0.965688774807\n    test 595 224 223.903852093789 Theta(tan=0.962451, x=-0.720504, y=-0.69345): 0.965688774807\n    test 596 224 223.951922536530 Mu(tan=0.964068, x=-0.719922, y=-0.694055): 0.965688774807\n    test 597 224 223.903955899504 Chi(tan=0.962454, x=-0.720503, y=-0.693452): 0.965688774807\n    test 598 224 223.967933596024 Xi(tan=0.964608, x=-0.719728, y=-0.694256): 0.965688774807\n\n    test 599 231 231.094076843128 Phi(tan=1.23905, x=-0.62932, y=-0.77976): 1.234897156535\n    test 600 231 231.000000000000 Beta(tan=1.2349, x=-0.62932, y=-0.777146): 1.234897156535\n    test 601 231 230.905857444036 Theta(tan=1.23076, x=-0.62932, y=-0.77454): 1.234897156535\n    test 602 231 230.952949275029 Mu(tan=1.23283, x=-0.629958, y=-0.776629), iteration=3: 1.234897156535\n    test 603 231 230.905984687641 Chi(tan=1.23076, x=-1, y=-1.23076), iteration=3: 1.234897156535\n    test 604 231 230.968621174367 Xi(tan=1.23352, x=-1.26515, y=-1.56058), iteration=3: 1.234897156535\n\n    test 605 231 231.094076843128 Phi(tan=1.23905, x=-0.628044, y=-0.778178): 1.234897156535\n    test 606 231 231.000000000000 Beta(tan=1.2349, x=-0.62932, y=-0.777146): 1.234897156535\n    test 607 231 230.905857444036 Theta(tan=1.23076, x=-0.630596, y=-0.776111): 1.234897156535\n    test 608 231 230.952949275029 Mu(tan=1.23283, x=-0.629958, y=-0.776629): 1.234897156535\n    test 609 231 230.905984687641 Chi(tan=1.23076, x=-0.630595, y=-0.776112): 1.234897156535\n    test 610 231 230.968621174367 Xi(tan=1.23352, x=-0.629746, y=-0.776801): 1.234897156535\n\n    test 611 238 238.086411314589 Phi(tan=1.60572, x=-0.529919, y=-0.850901): 1.600334529041\n    test 612 238 238.000000000000 Beta(tan=1.60033, x=-0.529919, y=-0.848048): 1.600334529041\n    test 613 238 237.913461373388 Theta(tan=1.59497, x=-0.529919, y=-0.845205): 1.600334529041\n    test 614 238 237.956770509194 Mu(tan=1.59765, x=-0.530559, y=-0.847648), iteration=3: 1.600334529041\n    test 615 238 237.913600687903 Chi(tan=1.59498, x=-1, y=-1.59498), iteration=2: 1.600334529041\n    test 616 238 237.971172027129 Xi(tan=1.59854, x=-1.06545, y=-1.70318), iteration=3: 1.600334529041\n\n    test 617 238 238.086411314589 Phi(tan=1.60572, x=-0.52864, y=-0.848846): 1.600334529041\n    test 618 238 238.000000000000 Beta(tan=1.60033, x=-0.529919, y=-0.848048): 1.600334529041\n    test 619 238 237.913461373388 Theta(tan=1.59497, x=-0.5312, y=-0.847247): 1.600334529041\n    test 620 238 237.956770509194 Mu(tan=1.59765, x=-0.530559, y=-0.847648): 1.600334529041\n    test 621 238 237.913600687903 Chi(tan=1.59498, x=-0.531197, y=-0.847248): 1.600334529041\n    test 622 238 237.971172027129 Xi(tan=1.59854, x=-0.530346, y=-0.847781): 1.600334529041\n\n    test 623 245 245.073623344306 Phi(tan=2.15172, x=-0.422618, y=-0.909357): 2.144506920510\n    test 624 245 245.000000000000 Beta(tan=2.14451, x=-0.422618, y=-0.906308): 2.144506920510\n    test 625 245 244.926217548699 Theta(tan=2.13732, x=-0.422618, y=-0.903269): 2.144506920510\n    test 626 245 244.963158554024 Mu(tan=2.14091, x=-0.423201, y=-0.906036), iteration=2: 2.144506920510\n    test 627 245 244.926353236006 Chi(tan=2.13733, x=-1, y=-2.13733), iteration=3: 2.144506920510\n    test 628 245 244.975433776813 Xi(tan=2.14211, x=-0.849812, y=-1.82039), iteration=3: 2.144506920510\n\n    test 629 245 245.073623344306 Phi(tan=2.15172, x=-0.421453, y=-0.90685): 2.144506920510\n    test 630 245 245.000000000000 Beta(tan=2.14451, x=-0.422618, y=-0.906308): 2.144506920510\n    test 631 245 244.926217548699 Theta(tan=2.13732, x=-0.423785, y=-0.905763): 2.144506920510\n    test 632 245 244.963158554024 Mu(tan=2.14091, x=-0.423201, y=-0.906036): 2.144506920510\n    test 633 245 244.926353236006 Chi(tan=2.13733, x=-0.423783, y=-0.905764): 2.144506920510\n    test 634 245 244.975433776813 Xi(tan=2.14211, x=-0.423007, y=-0.906127): 2.144506920510\n\n    test 635 252 252.056475395211 Phi(tan=3.08804, x=-0.309017, y=-0.954256): 3.077683537175\n    test 636 252 252.000000000000 Beta(tan=3.07768, x=-0.309017, y=-0.951057): 3.077683537175\n    test 637 252 251.943370950484 Theta(tan=3.06736, x=-0.309017, y=-0.947868): 3.077683537175\n    test 638 252 251.971733559721 Mu(tan=3.07253, x=-0.309486, y=-0.950904), iteration=2: 3.077683537175\n    test 639 252 251.943485649406 Chi(tan=3.06739, x=-1, y=-3.06739), iteration=2: 3.077683537175\n    test 640 252 251.981152809484 Xi(tan=3.07424, x=-0.621437, y=-1.91045), iteration=3: 3.077683537175\n\n    test 641 252 252.056475395211 Phi(tan=3.08804, x=-0.308079, y=-0.951361): 3.077683537175\n    test 642 252 252.000000000000 Beta(tan=3.07768, x=-0.309017, y=-0.951057): 3.077683537175\n    test 643 252 251.943370950484 Theta(tan=3.06736, x=-0.309957, y=-0.950751): 3.077683537175\n    test 644 252 251.971733559721 Mu(tan=3.07253, x=-0.309486, y=-0.950904): 3.077683537175\n    test 645 252 251.943485649406 Chi(tan=3.06739, x=-0.309955, y=-0.950751): 3.077683537175\n    test 646 252 251.981152809484 Xi(tan=3.07424, x=-0.30933, y=-0.950955): 3.077683537175\n\n    test 647 259 259.035985707307 Phi(tan=5.16186, x=-0.190809, y=-0.984929): 5.144554015970\n    test 648 259 259.000000000000 Beta(tan=5.14455, x=-0.190809, y=-0.981627): 5.144554015970\n    test 649 259 258.963902062378 Theta(tan=5.12731, x=-0.190809, y=-0.978336): 5.144554015970\n    test 650 259 258.981986158342 Mu(tan=5.13593, x=-0.191118, y=-0.981567), iteration=3: 5.144554015970\n    test 651 259 258.963979961875 Chi(tan=5.12734, x=-1, y=-5.12734), iteration=3: 5.144554015970\n    test 652 259 258.987989441453 Xi(tan=5.1388, x=-0.383745, y=-1.97199), iteration=3: 5.144554015970\n\n    test 653 259 259.035985707307 Phi(tan=5.16186, x=-0.190192, y=-0.981747): 5.144554015970\n    test 654 259 259.000000000000 Beta(tan=5.14455, x=-0.190809, y=-0.981627): 5.144554015970\n    test 655 259 258.963902062378 Theta(tan=5.12731, x=-0.191427, y=-0.981507): 5.144554015970\n    test 656 259 258.981986158342 Mu(tan=5.13593, x=-0.191118, y=-0.981567): 5.144554015970\n    test 657 259 258.963979961875 Chi(tan=5.12734, x=-0.191426, y=-0.981507): 5.144554015970\n    test 658 259 258.987989441453 Xi(tan=5.1388, x=-0.191015, y=-0.981587): 5.144554015970\n\n    test 659 266 266.013367926454 Phi(tan=14.3488, x=-0.0697565, y=-1.00092): 14.300666256712\n    test 660 266 266.000000000000 Beta(tan=14.3007, x=-0.0697565, y=-0.997564): 14.300666256712\n    test 661 266 265.986587541025 Theta(tan=14.2527, x=-0.0697565, y=-0.994219): 14.300666256712\n    test 662 266 265.993307710088 Mu(tan=14.2767, x=-0.069873, y=-0.997556), iteration=3: 14.300666256712\n    test 663 266 265.986617434521 Chi(tan=14.2528, x=-1, y=-14.2528), iteration=3: 14.300666256712\n    test 664 266 265.995538081208 Xi(tan=14.2847, x=-0.140295, y=-2.00408), iteration=3: 14.300666256712\n\n    test 665 266 266.013367926454 Phi(tan=14.3488, x=-0.0695237, y=-0.99758): 14.300666256712\n    test 666 266 266.000000000000 Beta(tan=14.3007, x=-0.0697565, y=-0.997564): 14.300666256712\n    test 667 266 265.986587541025 Theta(tan=14.2527, x=-0.06999, y=-0.997548): 14.300666256712\n    test 668 266 265.993307710088 Mu(tan=14.2767, x=-0.069873, y=-0.997556): 14.300666256712\n    test 669 266 265.986617434521 Chi(tan=14.2528, x=-0.0699895, y=-0.997548): 14.300666256712\n    test 670 266 265.995538081208 Xi(tan=14.2847, x=-0.0698342, y=-0.997559): 14.300666256712\n\n    test 671 273 272.989959849669 Phi(tan=-19.1453, x=0.052336, y=-1.00199): -19.081136687728\n    test 672 273 273.000000000000 Beta(tan=-19.0811, x=0.052336, y=-0.99863): -19.081136687728\n    test 673 273 273.010073740960 Theta(tan=-19.0172, x=0.052336, y=-0.995281): -19.081136687728\n    test 674 273 273.005026355872 Mu(tan=-19.0492, x=0.0524236, y=-0.998625), iteration=2: -19.081136687728\n    test 675 273 273.010051240667 Chi(tan=-19.0173, x=1.0, y=-19.0173), iteration=3: -19.081136687728\n    test 676 273 273.003351193295 Xi(tan=-19.0598, x=0.105259, y=-2.00622), iteration=3: -19.081136687728\n\n    test 677 273 272.989959849669 Phi(tan=-19.1453, x=0.052161, y=-0.998639): -19.081136687728\n    test 678 273 273.000000000000 Beta(tan=-19.0811, x=0.052336, y=-0.99863): -19.081136687728\n    test 679 273 273.010073740960 Theta(tan=-19.0172, x=0.0525115, y=-0.99862): -19.081136687728\n    test 680 273 273.005026355872 Mu(tan=-19.0492, x=0.0524236, y=-0.998625): -19.081136687728\n    test 681 273 273.010051240667 Chi(tan=-19.0173, x=0.0525111, y=-0.99862): -19.081136687728\n    test 682 273 273.003351193295 Xi(tan=-19.0598, x=0.0523944, y=-0.998626): -19.081136687728\n\n    test 683 280 279.967145322218 Phi(tan=-5.69036, x=0.173648, y=-0.988121): -5.671281819618\n    test 684 280 280.000000000000 Beta(tan=-5.67128, x=0.173648, y=-0.984808): -5.671281819618\n    test 685 280 280.032958527773 Theta(tan=-5.65227, x=0.173648, y=-0.981506): -5.671281819618\n    test 686 280 280.016446759121 Mu(tan=-5.66178, x=0.173931, y=-0.984758), iteration=3: -5.671281819618\n    test 687 280 280.032886940584 Chi(tan=-5.65231, x=1.0, y=-5.65231), iteration=3: -5.671281819618\n    test 688 280 280.010965671278 Xi(tan=-5.66494, x=0.349234, y=-1.97839), iteration=3: -5.671281819618\n\n    test 689 280 279.967145322218 Phi(tan=-5.69036, x=0.173083, y=-0.984907): -5.671281819618\n    test 690 280 280.000000000000 Beta(tan=-5.67128, x=0.173648, y=-0.984808): -5.671281819618\n    test 691 280 280.032958527773 Theta(tan=-5.65227, x=0.174215, y=-0.984708): -5.671281819618\n    test 692 280 280.016446759121 Mu(tan=-5.66178, x=0.173931, y=-0.984758): -5.671281819618\n    test 693 280 280.032886940584 Chi(tan=-5.65231, x=0.174213, y=-0.984708): -5.671281819618\n    test 694 280 280.010965671278 Xi(tan=-5.66494, x=0.173837, y=-0.984775): -5.671281819618\n\n    test 695 287 286.946273607855 Phi(tan=-3.28186, x=0.292372, y=-0.959522): -3.270852618484\n    test 696 287 287.000000000000 Beta(tan=-3.27085, x=0.292372, y=-0.956305): -3.270852618484\n    test 697 287 287.053876189570 Theta(tan=-3.25989, x=0.292372, y=-0.953098): -3.270852618484\n    test 698 287 287.026891215965 Mu(tan=-3.26537, x=0.292821, y=-0.956167), iteration=3: -3.270852618484\n    test 699 287 287.053765856507 Chi(tan=-3.25991, x=1.0, y=-3.25991), iteration=3: -3.270852618484\n    test 700 287 287.017930102981 Xi(tan=-3.2672, x=0.58797, y=-1.92101), iteration=2: -3.270852618484\n\n    test 701 287 286.946273607855 Phi(tan=-3.28186, x=0.291475, y=-0.956578): -3.270852618484\n    test 702 287 287.000000000000 Beta(tan=-3.27085, x=0.292372, y=-0.956305): -3.270852618484\n    test 703 287 287.053876189570 Theta(tan=-3.25989, x=0.293271, y=-0.956029): -3.270852618484\n    test 704 287 287.026891215965 Mu(tan=-3.26537, x=0.292821, y=-0.956167): -3.270852618484\n    test 705 287 287.053765856507 Chi(tan=-3.25991, x=0.293269, y=-0.95603): -3.270852618484\n    test 706 287 287.017930102981 Xi(tan=-3.2672, x=0.292671, y=-0.956213): -3.270852618484\n\n    test 707 294 293.928580656019 Phi(tan=-2.25359, x=0.406737, y=-0.916619): -2.246036773904\n    test 708 294 294.000000000000 Beta(tan=-2.24604, x=0.406737, y=-0.913545): -2.246036773904\n    test 709 294 294.071580020440 Theta(tan=-2.23851, x=0.406737, y=-0.910483): -2.246036773904\n    test 710 294 294.035739737781 Mu(tan=-2.24227, x=0.407306, y=-0.913292), iteration=2: -2.246036773904\n    test 711 294 294.071446269026 Chi(tan=-2.23852, x=1.0, y=-2.23852), iteration=3: -2.246036773904\n    test 712 294 294.023831365709 Xi(tan=-2.24352, x=0.817889, y=-1.83495), iteration=3: -2.246036773904\n\n    test 713 294 293.928580656019 Phi(tan=-2.25359, x=0.405598, y=-0.914052): -2.246036773904\n    test 714 294 294.000000000000 Beta(tan=-2.24604, x=0.406737, y=-0.913545): -2.246036773904\n    test 715 294 294.071580020440 Theta(tan=-2.23851, x=0.407878, y=-0.913037): -2.246036773904\n    test 716 294 294.035739737781 Mu(tan=-2.24227, x=0.407306, y=-0.913292): -2.246036773904\n    test 717 294 294.071446269026 Chi(tan=-2.23852, x=0.407875, y=-0.913038): -2.246036773904\n    test 718 294 294.023831365709 Xi(tan=-2.24352, x=0.407117, y=-0.913376): -2.246036773904\n\n    test 719 301 300.915116613042 Phi(tan=-1.66988, x=0.515038, y=-0.860051): -1.664279482351\n    test 720 301 301.000000000000 Beta(tan=-1.66428, x=0.515038, y=-0.857167): -1.664279482351\n    test 721 301 301.085017327347 Theta(tan=-1.6587, x=0.515038, y=-0.854293): -1.664279482351\n    test 722 301 301.042466766526 Mu(tan=-1.66149, x=0.515673, y=-0.856785), iteration=2: -1.664279482351\n    test 723 301 301.084877498227 Chi(tan=-1.65871, x=1.0, y=-1.65871), iteration=3: -1.664279482351\n    test 724 301 301.028319023279 Xi(tan=-1.66242, x=1.03555, y=-1.72152), iteration=2: -1.664279482351\n\n    test 725 301 300.915116613042 Phi(tan=-1.66988, x=0.513768, y=-0.857929): -1.664279482351\n    test 726 301 301.000000000000 Beta(tan=-1.66428, x=0.515038, y=-0.857167): -1.664279482351\n    test 727 301 301.085017327347 Theta(tan=-1.6587, x=0.516309, y=-0.856402): -1.664279482351\n    test 728 301 301.042466766526 Mu(tan=-1.66149, x=0.515673, y=-0.856785): -1.664279482351\n    test 729 301 301.084877498227 Chi(tan=-1.65871, x=0.516307, y=-0.856403): -1.664279482351\n    test 730 301 301.028319023279 Xi(tan=-1.66242, x=0.515462, y=-0.856913): -1.664279482351\n\n    test 731 308 307.906683665119 Phi(tan=-1.28425, x=0.615661, y=-0.790662): -1.279941632193\n    test 732 308 308.000000000000 Beta(tan=-1.27994, x=0.615661, y=-0.788011): -1.279941632193\n    test 733 308 308.093392183249 Theta(tan=-1.27565, x=0.615661, y=-0.785369): -1.279941632193\n    test 734 308 308.046672369053 Mu(tan=-1.27779, x=0.616303, y=-0.787509), iteration=3: -1.279941632193\n    test 735 308 308.093262395276 Chi(tan=-1.27566, x=1.0, y=-1.27566), iteration=3: -1.279941632193\n    test 736 308 308.031126109597 Xi(tan=-1.27851, x=1.23771, y=-1.58243), iteration=2: -1.279941632193\n\n    test 737 308 307.906683665119 Phi(tan=-1.28425, x=0.614377, y=-0.789012): -1.279941632193\n    test 738 308 308.000000000000 Beta(tan=-1.27994, x=0.615661, y=-0.788011): -1.279941632193\n    test 739 308 308.093392183249 Theta(tan=-1.27565, x=0.616945, y=-0.787006): -1.279941632193\n    test 740 308 308.046672369053 Mu(tan=-1.27779, x=0.616303, y=-0.787509): -1.279941632193\n    test 741 308 308.093262395276 Chi(tan=-1.27566, x=0.616943, y=-0.787008): -1.279941632193\n    test 742 308 308.031126109597 Xi(tan=-1.27851, x=0.616089, y=-0.787676): -1.279941632193\n\n    test 743 315 314.903787849420 Phi(tan=-1.00336, x=0.707107, y=-0.709486): -1.000000000000\n    test 744 315 315.000000000000 Beta(tan=-1, x=0.707107, y=-0.707107): -1.000000000000\n    test 745 315 315.096212150580 Theta(tan=-0.996647, x=0.707107, y=-0.704736): -1.000000000000\n    test 746 315 315.048106063986 Mu(tan=-0.998322, x=0.7077, y=-0.706513), iteration=2: -1.000000000000\n    test 747 315 315.096104515452 Chi(tan=-0.996651, x=1.0, y=-0.996651), iteration=2: -1.000000000000\n    test 748 315 315.032085072505 Xi(tan=-0.998881, x=1.42136, y=-1.41977), iteration=3: -1.000000000000\n\n    test 749 315 314.903787849420 Phi(tan=-1.00336, x=0.705918, y=-0.708293): -1.000000000000\n    test 750 315 315.000000000000 Beta(tan=-1, x=0.707107, y=-0.707107): -1.000000000000\n    test 751 315 315.096212150580 Theta(tan=-0.996647, x=0.708293, y=-0.705918): -1.000000000000\n    test 752 315 315.048106063986 Mu(tan=-0.998322, x=0.7077, y=-0.706513): -1.000000000000\n    test 753 315 315.096104515452 Chi(tan=-0.996651, x=0.708292, y=-0.70592): -1.000000000000\n    test 754 315 315.032085072505 Xi(tan=-0.998881, x=0.707503, y=-0.706711): -1.000000000000\n\n    test 755 322 321.906607816751 Phi(tan=-0.783914, x=0.788011, y=-0.617733): -0.781285626507\n    test 756 322 322.000000000000 Beta(tan=-0.781286, x=0.788011, y=-0.615661): -0.781285626507\n    test 757 322 322.093316334881 Theta(tan=-0.778666, x=0.788011, y=-0.613597): -0.781285626507\n    test 758 322 322.046681850102 Mu(tan=-0.779974, x=0.788512, y=-0.615019), iteration=3: -0.781285626507\n    test 759 322 322.093237214147 Chi(tan=-0.778668, x=1.0, y=-0.778668), iteration=3: -0.781285626507\n    test 760 322 322.031137911470 Xi(tan=-0.780411, x=1.58377, y=-1.23599), iteration=2: -0.781285626507\n\n    test 761 322 321.906607816751 Phi(tan=-0.783914, x=0.787006, y=-0.616945): -0.781285626507\n    test 762 322 322.000000000000 Beta(tan=-0.781286, x=0.788011, y=-0.615661): -0.781285626507\n    test 763 322 322.093316334881 Theta(tan=-0.778666, x=0.789012, y=-0.614377): -0.781285626507\n    test 764 322 322.046681850102 Mu(tan=-0.779974, x=0.788512, y=-0.615019): -0.781285626507\n    test 765 322 322.093237214147 Chi(tan=-0.778668, x=0.789012, y=-0.614378): -0.781285626507\n    test 766 322 322.031137911470 Xi(tan=-0.780411, x=0.788345, y=-0.615233): -0.781285626507\n\n    test 767 329 328.914982672653 Phi(tan=-0.602882, x=0.857167, y=-0.516771): -0.600860619028\n    test 768 329 329.000000000000 Beta(tan=-0.600861, x=0.857167, y=-0.515038): -0.600860619028\n    test 769 329 329.084883386958 Theta(tan=-0.598846, x=0.857167, y=-0.513311): -0.600860619028\n    test 770 329 329.042483509069 Mu(tan=-0.599852, x=0.857549, y=-0.514402), iteration=3: -0.600860619028\n    test 771 329 329.084833030986 Chi(tan=-0.598847, x=1.0, y=-0.598847), iteration=3: -0.600860619028\n    test 772 329 329.028339864157 Xi(tan=-0.600188, x=1.72254, y=-1.03385), iteration=2: -0.600860619028\n\n    test 773 329 328.914982672653 Phi(tan=-0.602882, x=0.856402, y=-0.516309): -0.600860619028\n    test 774 329 329.000000000000 Beta(tan=-0.600861, x=0.857167, y=-0.515038): -0.600860619028\n    test 775 329 329.084883386958 Theta(tan=-0.598846, x=0.857929, y=-0.513768): -0.600860619028\n    test 776 329 329.042483509069 Mu(tan=-0.599852, x=0.857549, y=-0.514402): -0.600860619028\n    test 777 329 329.084833030986 Chi(tan=-0.598847, x=0.857929, y=-0.513768): -0.600860619028\n    test 778 329 329.028339864157 Xi(tan=-0.600188, x=0.857422, y=-0.514614): -0.600860619028\n\n    test 779 336 335.928419979560 Phi(tan=-0.446726, x=0.913545, y=-0.408105): -0.445228685309\n    test 780 336 336.000000000000 Beta(tan=-0.445229, x=0.913545, y=-0.406737): -0.445228685309\n    test 781 336 336.071419343981 Theta(tan=-0.443736, x=0.913545, y=-0.405373): -0.445228685309\n    test 782 336 336.035759822314 Mu(tan=-0.444481, x=0.913799, y=-0.406166), iteration=3: -0.445228685309\n    test 783 336 336.071392925660 Chi(tan=-0.443736, x=1.0, y=-0.443736), iteration=2: -0.445228685309\n    test 784 336 336.023856366648 Xi(tan=-0.44473, x=1.83563, y=-0.816362), iteration=3: -0.445228685309\n\n    test 785 336 335.928419979560 Phi(tan=-0.446726, x=0.913037, y=-0.407878): -0.445228685309\n    test 786 336 336.000000000000 Beta(tan=-0.445229, x=0.913545, y=-0.406737): -0.445228685309\n    test 787 336 336.071419343981 Theta(tan=-0.443736, x=0.914052, y=-0.405598): -0.445228685309\n    test 788 336 336.035759822314 Mu(tan=-0.444481, x=0.913799, y=-0.406166): -0.445228685309\n    test 789 336 336.071392925660 Chi(tan=-0.443736, x=0.914052, y=-0.405598): -0.445228685309\n    test 790 336 336.023856366648 Xi(tan=-0.44473, x=0.913715, y=-0.406356): -0.445228685309\n\n    test 791 343 342.946123810430 Phi(tan=-0.306759, x=0.956305, y=-0.293355): -0.305730681459\n    test 792 343 343.000000000000 Beta(tan=-0.305731, x=0.956305, y=-0.292372): -0.305730681459\n    test 793 343 343.053726392145 Theta(tan=-0.304706, x=0.956305, y=-0.291391): -0.305730681459\n    test 794 343 343.026909940603 Mu(tan=-0.305217, x=0.956442, y=-0.291923), iteration=3: -0.305730681459\n    test 795 343 343.053716124954 Chi(tan=-0.304706, x=1.0, y=-0.304706), iteration=3: -0.305730681459\n    test 796 343 343.017953411145 Xi(tan=-0.305388, x=1.92138, y=-0.586767), iteration=2: -0.305730681459\n\n    test 797 343 342.946123810430 Phi(tan=-0.306759, x=0.956029, y=-0.293271): -0.305730681459\n    test 798 343 343.000000000000 Beta(tan=-0.305731, x=0.956305, y=-0.292372): -0.305730681459\n    test 799 343 343.053726392145 Theta(tan=-0.304706, x=0.956578, y=-0.291475): -0.305730681459\n    test 800 343 343.026909940603 Mu(tan=-0.305217, x=0.956442, y=-0.291923): -0.305730681459\n    test 801 343 343.053716124955 Chi(tan=-0.304706, x=0.956578, y=-0.291475): -0.305730681459\n    test 802 343 343.017953411145 Xi(tan=-0.305388, x=0.956396, y=-0.292072): -0.305730681459\n\n    test 803 350 349.967041472227 Phi(tan=-0.17692, x=0.984808, y=-0.174232): -0.176326980708\n    test 804 350 350.000000000000 Beta(tan=-0.176327, x=0.984808, y=-0.173648): -0.176326980708\n    test 805 350 350.032854677782 Theta(tan=-0.175736, x=0.984808, y=-0.173066): -0.176326980708\n    test 806 350 350.016459740333 Mu(tan=-0.176031, x=0.984858, y=-0.173365), iteration=3: -0.176326980708\n    test 807 350 350.032852463246 Chi(tan=-0.175736, x=1.0, y=-0.175736), iteration=3: -0.176326980708\n    test 808 350 350.010981830106 Xi(tan=-0.176129, x=1.97853, y=-0.348476), iteration=3: -0.176326980708\n\n    test 809 350 349.967041472227 Phi(tan=-0.17692, x=0.984708, y=-0.174215): -0.176326980708\n    test 810 350 350.000000000000 Beta(tan=-0.176327, x=0.984808, y=-0.173648): -0.176326980708\n    test 811 350 350.032854677782 Theta(tan=-0.175736, x=0.984907, y=-0.173083): -0.176326980708\n    test 812 350 350.016459740333 Mu(tan=-0.176031, x=0.984858, y=-0.173365): -0.176326980708\n    test 813 350 350.032852463246 Chi(tan=-0.175736, x=0.984907, y=-0.173083): -0.176326980708\n    test 814 350 350.010981830106 Xi(tan=-0.176129, x=0.984841, y=-0.173459): -0.176326980708\n\n    test 815 357 356.989926259040 Phi(tan=-0.0525841, x=0.99863, y=-0.052512): -0.052407779283\n    test 816 357 357.000000000000 Beta(tan=-0.0524078, x=0.99863, y=-0.052336): -0.052407779283\n    test 817 357 357.010040150331 Theta(tan=-0.0522321, x=0.99863, y=-0.0521605): -0.052407779283\n    test 818 357 357.005030554687 Mu(tan=-0.0523197, x=0.998634, y=-0.0522483), iteration=2: -0.052407779283\n    test 819 357 357.010040088861 Chi(tan=-0.0522321, x=1.0, y=-0.0522321), iteration=2: -0.052407779283\n    test 820 357 357.003356419920 Xi(tan=-0.052349, x=2.00623, y=-0.105024), iteration=3: -0.052407779283\n\n    test 821 357 356.989926259040 Phi(tan=-0.0525841, x=0.99862, y=-0.0525115): -0.052407779283\n    test 822 357 357.000000000000 Beta(tan=-0.0524078, x=0.99863, y=-0.052336): -0.052407779283\n    test 823 357 357.010040150331 Theta(tan=-0.0522321, x=0.998639, y=-0.052161): -0.052407779283\n    test 824 357 357.005030554687 Mu(tan=-0.0523197, x=0.998634, y=-0.0522483): -0.052407779283\n    test 825 357 357.010040088861 Chi(tan=-0.0522321, x=0.998639, y=-0.052161): -0.052407779283\n    test 826 357 357.003356419920 Xi(tan=-0.052349, x=0.998633, y=-0.0522775): -0.052407779283\n\n    test 827  0 0.000000000000 Phi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 828  0 0.000000000000 Beta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 829  0 0.000000000000 Theta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 830  0 0.000000000000 Mu(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 831  0 0.000000000000 Chi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 832  0 0.000000000000 Xi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n\n    test 833  0 0.000000000000 Phi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 834  0 0.000000000000 Beta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 835  0 0.000000000000 Theta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 836  0 0.000000000000 Mu(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 837  0 0.000000000000 Chi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 838  0 0.000000000000 Xi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n\n    test 839  7 7.046702961824 Phi(tan=0.123612, x=1.0, y=0.123612): 0.122784560903\n    test 840  7 7.023313050940 Beta(tan=0.123198, x=1.0, y=0.123198): 0.122784560903\n    test 841  7 6.999999220873 Theta(tan=0.122785, x=1.0, y=0.122785): 0.122784560903\n    test 842  7 7.011632399558 Mu(tan=0.122991, x=0.992521, y=0.122071), iteration=3: 0.122784560903\n    test 843  7 7.000000000000 Chi(tan=0.122785, x=0.992546, y=0.121869): 0.122784560903\n    test 844  7 7.015519711118 Xi(tan=0.12306, x=1.99394, y=0.245373), iteration=3: 0.122784560903\n\n    test 845  7 7.046702961824 Phi(tan=0.123612, x=0.992446, y=0.122678): 0.122784560903\n    test 846  7 7.023313050940 Beta(tan=0.123198, x=0.992496, y=0.122273): 0.122784560903\n    test 847  7 6.999999220873 Theta(tan=0.122785, x=0.992546, y=0.121869): 0.122784560903\n    test 848  7 7.011632399558 Mu(tan=0.122991, x=0.992521, y=0.122071): 0.122784560903\n    test 849  7 7.000000000000 Chi(tan=0.122785, x=0.992546, y=0.121869): 0.122784560903\n    test 850  7 7.015519711118 Xi(tan=0.12306, x=0.992513, y=0.122138): 0.122784560903\n\n    test 851 14 14.090600177106 Phi(tan=0.251008, x=1.0, y=0.251008): 0.249328002843\n    test 852 14 14.045229997878 Beta(tan=0.250167, x=1.0, y=0.250167): 0.249328002843\n    test 853 14 13.999994044068 Theta(tan=0.249328, x=1.0, y=0.249328): 0.249328002843\n    test 854 14 14.022570138869 Mu(tan=0.249746, x=0.9702, y=0.242304), iteration=2: 0.249328002843\n    test 855 14 14.000000000000 Chi(tan=0.249328, x=0.970296, y=0.241922): 0.249328002843\n    test 856 14 14.030111806086 Xi(tan=0.249886, x=1.94905, y=0.487041), iteration=3: 0.249328002843\n\n    test 857 14 14.090600177106 Phi(tan=0.251008, x=0.969912, y=0.243456): 0.249328002843\n    test 858 14 14.045229997878 Beta(tan=0.250167, x=0.970104, y=0.242688): 0.249328002843\n    test 859 14 13.999994044068 Theta(tan=0.249328, x=0.970296, y=0.241922): 0.249328002843\n    test 860 14 14.022570138869 Mu(tan=0.249746, x=0.9702, y=0.242304): 0.249328002843\n    test 861 14 14.000000000000 Chi(tan=0.249328, x=0.970296, y=0.241922): 0.249328002843\n    test 862 14 14.030111806086 Xi(tan=0.249886, x=0.970168, y=0.242432): 0.249328002843\n\n    test 863 21 21.129059974007 Phi(tan=0.386451, x=1.0, y=0.386451): 0.383864035035\n    test 864 21 21.064440302978 Beta(tan=0.385155, x=1.0, y=0.385155): 0.383864035035\n    test 865 21 20.999981382849 Theta(tan=0.383864, x=1.0, y=0.383864): 0.383864035035\n    test 866 21 21.032160674247 Mu(tan=0.384508, x=0.933379, y=0.358892), iteration=3: 0.383864035035\n    test 867 21 21.000000000000 Chi(tan=0.383864, x=0.93358, y=0.358368): 0.383864035035\n    test 868 21 21.042905101186 Xi(tan=0.384723, x=1.875, y=0.721358), iteration=2: 0.383864035035\n\n    test 869 21 21.129059974007 Phi(tan=0.386451, x=0.932771, y=0.36047): 0.383864035035\n    test 870 21 21.064440302978 Beta(tan=0.385155, x=0.933177, y=0.359418): 0.383864035035\n    test 871 21 20.999981382849 Theta(tan=0.383864, x=0.933581, y=0.358368): 0.383864035035\n    test 872 21 21.032160674247 Mu(tan=0.384508, x=0.933379, y=0.358892): 0.383864035035\n    test 873 21 21.000000000000 Chi(tan=0.383864, x=0.93358, y=0.358368): 0.383864035035\n    test 874 21 21.042905101186 Xi(tan=0.384723, x=0.933312, y=0.359067): 0.383864035035\n\n    test 875 28 28.159786713307 Phi(tan=0.535292, x=1.0, y=0.535292): 0.531709431661\n    test 876 28 28.079798849800 Beta(tan=0.533497, x=1.0, y=0.533497): 0.531709431661\n    test 877 28 27.999960443908 Theta(tan=0.531709, x=1.0, y=0.531709): 0.531709431661\n    test 878 28 28.039832991509 Mu(tan=0.532602, x=0.882621, y=0.470085), iteration=3: 0.531709431661\n    test 879 28 28.000000000000 Chi(tan=0.531709, x=0.882948, y=0.469472): 0.531709431661\n    test 880 28 28.053137609764 Xi(tan=0.5329, x=1.77295, y=0.944804), iteration=2: 0.531709431661\n\n    test 881 28 28.159786713307 Phi(tan=0.535292, x=0.881635, y=0.471932): 0.531709431661\n    test 882 28 28.079798849800 Beta(tan=0.533497, x=0.882293, y=0.470701): 0.531709431661\n    test 883 28 27.999960443908 Theta(tan=0.531709, x=0.882948, y=0.469471): 0.531709431661\n    test 884 28 28.039832991509 Mu(tan=0.532602, x=0.882621, y=0.470085): 0.531709431661\n    test 885 28 28.000000000000 Chi(tan=0.531709, x=0.882948, y=0.469472): 0.531709431661\n    test 886 28 28.053137609764 Xi(tan=0.5329, x=0.882512, y=0.47029): 0.531709431661\n\n    test 887 35 35.180959671970 Phi(tan=0.704925, x=1.0, y=0.704925): 0.700207538210\n    test 888 35 35.090394869583 Beta(tan=0.702561, x=1.0, y=0.702561): 0.700207538210\n    test 889 35 34.999933133637 Theta(tan=0.700206, x=1.0, y=0.700206): 0.700207538210\n    test 890 35 35.045131821097 Mu(tan=0.701382, x=0.8187, y=0.574222), iteration=3: 0.700207538210\n    test 891 35 35.000000000000 Chi(tan=0.700208, x=0.819152, y=0.573576): 0.700207538210\n    test 892 35 35.060202265669 Xi(tan=0.701775, x=1.64445, y=1.15403), iteration=2: 0.700207538210\n\n    test 893 35 35.180959671970 Phi(tan=0.704925, x=0.817336, y=0.576161): 0.700207538210\n    test 894 35 35.090394869583 Beta(tan=0.702561, x=0.818246, y=0.574868): 0.700207538210\n    test 895 35 34.999933133637 Theta(tan=0.700206, x=0.819153, y=0.573575): 0.700207538210\n    test 896 35 35.045131821097 Mu(tan=0.701382, x=0.8187, y=0.574222): 0.700207538210\n    test 897 35 35.000000000000 Chi(tan=0.700208, x=0.819152, y=0.573576): 0.700207538210\n    test 898 35 35.060202265669 Xi(tan=0.701775, x=0.818549, y=0.574437): 0.700207538210\n\n    test 899 42 42.191340028820 Phi(tan=0.906469, x=1.0, y=0.906469): 0.900404044298\n    test 900 42 42.095605637640 Beta(tan=0.90343, x=1.0, y=0.90343): 0.900404044298\n    test 901 42 41.999903781382 Theta(tan=0.900401, x=1.0, y=0.900401): 0.900404044298\n    test 902 42 42.047744555205 Mu(tan=0.901914, x=0.742587, y=0.66975), iteration=2: 0.900404044298\n    test 903 42 42.000000000000 Chi(tan=0.900404, x=0.743145, y=0.669131): 0.900404044298\n    test 904 42 42.063682784184 Xi(tan=0.902419, x=1.49147, y=1.34593), iteration=2: 0.900404044298\n\n    test 905 42 42.191340028820 Phi(tan=0.906469, x=0.740906, y=0.671609): 0.900404044298\n    test 906 42 42.095605637640 Beta(tan=0.90343, x=0.742027, y=0.67037): 0.900404044298\n    test 907 42 41.999903781382 Theta(tan=0.900401, x=0.743146, y=0.669129): 0.900404044298\n    test 908 42 42.047744555205 Mu(tan=0.901914, x=0.742587, y=0.66975): 0.900404044298\n    test 909 42 42.000000000000 Chi(tan=0.900404, x=0.743145, y=0.669131): 0.900404044298\n    test 910 42 42.063682784184 Xi(tan=0.902419, x=0.742401, y=0.669956): 0.900404044298\n\n    test 911 49 49.190339913877 Phi(tan=1.15812, x=1.0, y=1.15812): 1.150368407221\n    test 912 49 49.095131857689 Beta(tan=1.15423, x=1.0, y=1.15423): 1.150368407221\n    test 913 49 48.999878238776 Theta(tan=1.15036, x=1.0, y=1.15036): 1.150368407221\n    test 914 49 49.047519300953 Mu(tan=1.1523, x=0.655433, y=0.755253), iteration=2: 1.150368407221\n    test 915 49 49.000000000000 Chi(tan=1.15037, x=0.656059, y=0.75471): 1.150368407221\n    test 916 49 49.063377582472 Xi(tan=1.15294, x=1.31633, y=1.51765), iteration=3: 1.150368407221\n\n    test 917 49 49.190339913877 Phi(tan=1.15812, x=0.653548, y=0.756885): 1.150368407221\n    test 918 49 49.095131857689 Beta(tan=1.15423, x=0.654805, y=0.755798): 1.150368407221\n    test 919 49 48.999878238776 Theta(tan=1.15036, x=0.656061, y=0.754708): 1.150368407221\n    test 920 49 49.047519300953 Mu(tan=1.1523, x=0.655433, y=0.755253): 1.150368407221\n    test 921 49 49.000000000000 Chi(tan=1.15037, x=0.656059, y=0.75471): 1.150368407221\n    test 922 49 49.063377582472 Xi(tan=1.15294, x=0.655224, y=0.755435): 1.150368407221\n\n    test 923 56 56.178050530882 Phi(tan=1.49254, x=1.0, y=1.49254): 1.482560968513\n    test 924 56 56.089013022552 Beta(tan=1.48754, x=1.0, y=1.48754): 1.482560968513\n    test 925 56 55.999862564323 Theta(tan=1.48255, x=1.0, y=1.48255): 1.482560968513\n    test 926 56 56.044473121630 Mu(tan=1.48505, x=0.558549, y=0.829471), iteration=2: 1.482560968513\n    test 927 56 56.000000000000 Chi(tan=1.48256, x=0.559193, y=0.829038): 1.482560968513\n    test 928 56 56.059310533694 Xi(tan=1.48588, x=1.12168, y=1.66668), iteration=2: 1.482560968513\n\n    test 929 56 56.178050530882 Phi(tan=1.49254, x=0.556614, y=0.830771): 1.482560968513\n    test 930 56 56.089013022552 Beta(tan=1.48754, x=0.557904, y=0.829905): 1.482560968513\n    test 931 56 55.999862564323 Theta(tan=1.48255, x=0.559195, y=0.829036): 1.482560968513\n    test 932 56 56.044473121630 Mu(tan=1.48505, x=0.558549, y=0.829471): 1.482560968513\n    test 933 56 56.000000000000 Chi(tan=1.48256, x=0.559193, y=0.829038): 1.482560968513\n    test 934 56 56.059310533694 Xi(tan=1.48588, x=0.558334, y=0.829616): 1.482560968513\n\n    test 935 63 63.155229303561 Phi(tan=1.97583, x=1.0, y=1.97583): 1.962610505505\n    test 936 63 63.077622413475 Beta(tan=1.9692, x=1.0, y=1.9692): 1.962610505505\n    test 937 63 62.999861601059 Theta(tan=1.9626, x=1.0, y=1.9626): 1.962610505505\n    test 938 63 63.038790161591 Mu(tan=1.9659, x=0.453387, y=0.891314), iteration=2: 1.962610505505\n    test 939 63 63.000000000000 Chi(tan=1.96261, x=0.45399, y=0.891007): 1.962610505505\n    test 940 63 63.051728205304 Xi(tan=1.967, x=0.910441, y=1.79084), iteration=3: 1.962610505505\n\n    test 941 63 63.155229303561 Phi(tan=1.97583, x=0.451575, y=0.892233): 1.962610505505\n    test 942 63 63.077622413475 Beta(tan=1.9692, x=0.452783, y=0.891621): 1.962610505505\n    test 943 63 62.999861601059 Theta(tan=1.9626, x=0.453993, y=0.891005): 1.962610505505\n    test 944 63 63.038790161591 Mu(tan=1.9659, x=0.453387, y=0.891314): 1.962610505505\n    test 945 63 63.000000000000 Chi(tan=1.96261, x=0.45399, y=0.891007): 1.962610505505\n    test 946 63 63.051728205304 Xi(tan=1.967, x=0.453186, y=0.891416): 1.962610505505\n\n    test 947 70 70.123248546098 Phi(tan=2.76598, x=1.0, y=2.76598): 2.747477419455\n    test 948 70 70.061642655565 Beta(tan=2.7567, x=1.0, y=2.7567): 2.747477419455\n    test 949 70 69.999877780085 Theta(tan=2.74746, x=1.0, y=2.74746): 2.747477419455\n    test 950 70 70.030809967607 Mu(tan=2.75208, x=0.341515, y=0.939876), iteration=3: 2.747477419455\n    test 951 70 70.000000000000 Chi(tan=2.74748, x=0.34202, y=0.939693): 2.747477419455\n    test 952 70 70.041084059681 Xi(tan=2.75362, x=0.685758, y=1.88832), iteration=3: 2.747477419455\n\n    test 953 70 70.123248546098 Phi(tan=2.76598, x=0.339998, y=0.940426): 2.747477419455\n    test 954 70 70.061642655565 Beta(tan=2.7567, x=0.341009, y=0.94006): 2.747477419455\n    test 955 70 69.999877780085 Theta(tan=2.74746, x=0.342022, y=0.939692): 2.747477419455\n    test 956 70 70.030809967607 Mu(tan=2.75208, x=0.341515, y=0.939876): 2.747477419455\n    test 957 70 70.000000000000 Chi(tan=2.74748, x=0.34202, y=0.939693): 2.747477419455\n    test 958 70 70.041084059681 Xi(tan=2.75362, x=0.341346, y=0.939938): 2.747477419455\n\n    test 959 77 77.084010155505 Phi(tan=4.36064, x=1.0, y=4.36064): 4.331475874284\n    test 960 77 77.042023802893 Beta(tan=4.34602, x=1.0, y=4.34602): 4.331475874284\n    test 961 77 76.999910430182 Theta(tan=4.33144, x=1.0, y=4.33144): 4.331475874284\n    test 962 77 77.021006871193 Mu(tan=4.33873, x=0.224594, y=0.974452), iteration=2: 4.331475874284\n    test 963 77 77.000000000000 Chi(tan=4.33148, x=0.224951, y=0.97437): 4.331475874284\n    test 964 77 77.028010821264 Xi(tan=4.34116, x=0.450965, y=1.95771), iteration=2: 4.331475874284\n\n    test 965 77 77.084010155505 Phi(tan=4.36064, x=0.223522, y=0.974699): 4.331475874284\n    test 966 77 77.042023802893 Beta(tan=4.34602, x=0.224236, y=0.974535): 4.331475874284\n    test 967 77 76.999910430182 Theta(tan=4.33144, x=0.224953, y=0.97437): 4.331475874284\n    test 968 77 77.021006871193 Mu(tan=4.33873, x=0.224594, y=0.974452): 4.331475874284\n    test 969 77 77.000000000000 Chi(tan=4.33148, x=0.224951, y=0.97437): 4.331475874284\n    test 970 77 77.028010821264 Xi(tan=4.34116, x=0.224475, y=0.97448): 4.331475874284\n\n    test 971 84 84.039832232299 Phi(tan=9.57842, x=1.0, y=9.57842): 9.514364454223\n    test 972 84 84.019926748698 Beta(tan=9.5463, x=1.0, y=9.5463): 9.514364454223\n    test 973 84 83.999955757312 Theta(tan=9.51429, x=1.0, y=9.51429): 9.514364454223\n    test 974 84 84.009961757905 Mu(tan=9.5303, x=0.104356, y=0.99454), iteration=3: 9.514364454223\n    test 975 84 84.000000000000 Chi(tan=9.51436, x=0.104528, y=0.994522): 9.514364454223\n    test 976 84 84.013282808640 Xi(tan=9.53563, x=0.209532, y=1.99802), iteration=2: 9.514364454223\n\n    test 977 84 84.039832232299 Phi(tan=9.57842, x=0.103837, y=0.994594): 9.514364454223\n    test 978 84 84.019926748698 Beta(tan=9.5463, x=0.104183, y=0.994558): 9.514364454223\n    test 979 84 83.999955757312 Theta(tan=9.51429, x=0.104529, y=0.994522): 9.514364454223\n    test 980 84 84.009961757905 Mu(tan=9.5303, x=0.104356, y=0.99454): 9.514364454223\n    test 981 84 84.000000000000 Chi(tan=9.51436, x=0.104528, y=0.994522): 9.514364454223\n    test 982 84 84.013282808640 Xi(tan=9.53563, x=0.104298, y=0.994546): 9.514364454223\n\n    test 983 91 90.993314421151 Phi(tan=-57.6756, x=-1, y=57.6756): -57.289961630759\n    test 984 91 90.996655347181 Beta(tan=-57.4823, x=-1, y=57.4823): -57.289961630759\n    test 985 91 91.000007505573 Theta(tan=-57.2895, x=-1, y=57.2895): -57.289961630759\n    test 986 91 90.998327910374 Mu(tan=-57.3859, x=-0.0174232, y=0.999848), iteration=3: -57.289961630759\n    test 987 91 91.000000000000 Chi(tan=-57.29, x=-0.0174524, y=0.999848): -57.289961630759\n    test 988 91 90.997770483630 Xi(tan=-57.418, x=-0.0349834, y=2.00868), iteration=2: -57.289961630759\n\n    test 989 91 90.993314421151 Phi(tan=-57.6756, x=-0.0173357, y=0.99985): -57.289961630760  FAILED, KNOWN (8.1857e-15), expected -57.289961630759\n    test 990 91 90.996655347181 Beta(tan=-57.4823, x=-0.017394, y=0.999849): -57.289961630760  FAILED, KNOWN (3.72077e-15), expected -57.289961630759\n    test 991 91 91.000007505573 Theta(tan=-57.2895, x=-0.0174525, y=0.999848): -57.289961630759\n    test 992 91 90.998327910374 Mu(tan=-57.3859, x=-0.0174232, y=0.999848): -57.289961630759\n    test 993 91 91.000000000000 Chi(tan=-57.29, x=-0.0174524, y=0.999848): -57.289961630759\n    test 994 91 90.997770483630 Xi(tan=-57.418, x=-0.0174135, y=0.999848): -57.289961630760  FAILED, KNOWN (3.8448e-15), expected -57.289961630759\n\n    test 995 98 97.947189249597 Phi(tan=-7.16327, x=-1, y=7.16327): -7.115369722384\n    test 996 98 97.973581022657 Beta(tan=-7.13925, x=-1, y=7.13925): -7.115369722384\n    test 997 98 98.000058157653 Theta(tan=-7.11532, x=-1, y=7.11532): -7.115369722384\n    test 998 98 97.986792871261 Mu(tan=-7.12729, x=-0.138945, y=0.9903), iteration=3: -7.115369722384\n    test 999 98 98.000000000000 Chi(tan=-7.11537, x=-0.139173, y=0.990268): -7.115369722384\n    test 1000 98 97.982389787937 Xi(tan=-7.13127, x=-0.278984, y=1.98951), iteration=3: -7.115369722384\n\n    test 1001 98 97.947189249597 Phi(tan=-7.16327, x=-0.13826, y=0.990396): -7.115369722384\n    test 1002 98 97.973581022657 Beta(tan=-7.13925, x=-0.138716, y=0.990332): -7.115369722384\n    test 1003 98 98.000058157653 Theta(tan=-7.11532, x=-0.139174, y=0.990268): -7.115369722384\n    test 1004 98 97.986792871261 Mu(tan=-7.12729, x=-0.138945, y=0.9903): -7.115369722384\n    test 1005 98 98.000000000000 Chi(tan=-7.11537, x=-0.139173, y=0.990268): -7.115369722384\n    test 1006 98 97.982389787937 Xi(tan=-7.13127, x=-0.138869, y=0.990311): -7.115369722384\n\n    test 1007 105 104.904166968877 Phi(tan=-3.75718, x=-1, y=3.75718): -3.732050807569\n    test 1008 105 104.952063867788 Beta(tan=-3.74458, x=-1, y=3.74458): -3.732050807569\n    test 1009 105 105.000100412186 Theta(tan=-3.73202, x=-1, y=3.73202): -3.732050807569\n    test 1010 105 104.976038435868 Mu(tan=-3.7383, x=-0.258415, y=0.966034), iteration=2: -3.732050807569\n    test 1011 105 105.000000000000 Chi(tan=-3.73205, x=-0.258819, y=0.965926): -3.732050807569\n    test 1012 105 104.968049034476 Xi(tan=-3.74039, x=-0.51888, y=1.94082), iteration=2: -3.732050807569\n\n    test 1013 105 104.904166968877 Phi(tan=-3.75718, x=-0.257203, y=0.966357): -3.732050807569\n    test 1014 105 104.952063867788 Beta(tan=-3.74458, x=-0.258011, y=0.966142): -3.732050807569\n    test 1015 105 105.000100412186 Theta(tan=-3.73202, x=-0.258821, y=0.965925): -3.732050807569\n    test 1016 105 104.976038435868 Mu(tan=-3.7383, x=-0.258415, y=0.966034): -3.732050807569\n    test 1017 105 105.000000000000 Chi(tan=-3.73205, x=-0.258819, y=0.965926): -3.732050807569\n    test 1018 105 104.968049034476 Xi(tan=-3.74039, x=-0.25828, y=0.96607): -3.732050807569\n\n    test 1019 112 111.866781479115 Phi(tan=-2.49175, x=-1, y=2.49175): -2.475086853416\n    test 1020 112 111.933374328805 Beta(tan=-2.4834, x=-1, y=2.4834): -2.475086853416\n    test 1021 112 112.000128613678 Theta(tan=-2.47507, x=-1, y=2.47507): -2.475086853416\n    test 1022 112 111.966700957925 Mu(tan=-2.47923, x=-0.374068, y=0.927401), iteration=2: -2.475086853416\n    test 1023 112 112.000000000000 Chi(tan=-2.47509, x=-0.374607, y=0.927184): -2.475086853416\n    test 1024 112 111.955596207977 Xi(tan=-2.48062, x=-0.751133, y=1.86328), iteration=3: -2.475086853416\n\n    test 1025 112 111.866781479115 Phi(tan=-2.49175, x=-0.37245, y=0.928052): -2.475086853416\n    test 1026 112 111.933374328805 Beta(tan=-2.4834, x=-0.373528, y=0.927619): -2.475086853416\n    test 1027 112 112.000128613678 Theta(tan=-2.47507, x=-0.374609, y=0.927183): -2.475086853416\n    test 1028 112 111.966700957925 Mu(tan=-2.47923, x=-0.374068, y=0.927401): -2.475086853416\n    test 1029 112 112.000000000000 Chi(tan=-2.47509, x=-0.374607, y=0.927184): -2.475086853416\n    test 1030 112 111.955596207977 Xi(tan=-2.48062, x=-0.373888, y=0.927474): -2.475086853416\n\n    test 1031 119 118.837244909169 Phi(tan=-1.8162, x=-1, y=1.8162): -1.804047755271\n    test 1032 119 118.918619560007 Beta(tan=-1.81011, x=-1, y=1.81011): -1.804047755271\n    test 1033 119 119.000139821268 Theta(tan=-1.80404, x=-1, y=1.80404): -1.804047755271\n    test 1034 119 118.959334139853 Mu(tan=-1.80707, x=-0.484189, y=0.874964), iteration=3: -1.804047755271\n    test 1035 119 119.000000000000 Chi(tan=-1.80405, x=-0.48481, y=0.87462): -1.804047755271\n    test 1036 119 118.945769514985 Xi(tan=-1.80808, x=-0.972309, y=1.75801), iteration=3: -1.804047755271\n\n    test 1037 119 118.837244909169 Phi(tan=-1.8162, x=-0.482323, y=0.875993): -1.804047755271\n    test 1038 119 118.918619560007 Beta(tan=-1.81011, x=-0.483567, y=0.875307): -1.804047755271\n    test 1039 119 119.000139821268 Theta(tan=-1.80404, x=-0.484812, y=0.874619): -1.804047755271\n    test 1040 119 118.959334139853 Mu(tan=-1.80707, x=-0.484189, y=0.874964): -1.804047755271\n    test 1041 119 119.000000000000 Chi(tan=-1.80405, x=-0.48481, y=0.87462): -1.804047755271\n    test 1042 119 118.945769514985 Xi(tan=-1.80808, x=-0.483982, y=0.875078): -1.804047755271\n\n    test 1043 126 125.817318309875 Phi(tan=-1.38565, x=-1, y=1.38565): -1.376381920471\n    test 1044 126 125.908678399154 Beta(tan=-1.38101, x=-1, y=1.38101): -1.376381920471\n    test 1045 126 126.000134283091 Theta(tan=-1.37638, x=-1, y=1.37638): -1.376381920471\n    test 1046 126 125.954376379912 Mu(tan=-1.37869, x=-0.587141, y=0.809485), iteration=3: -1.376381920471\n    test 1047 126 126.000000000000 Chi(tan=-1.37638, x=-0.587785, y=0.809017): -1.376381920471\n    test 1048 126 125.939153905889 Xi(tan=-1.37946, x=-1.17912, y=1.62655), iteration=2: -1.376381920471\n\n    test 1049 126 125.817318309875 Phi(tan=-1.38565, x=-0.585203, y=0.810887): -1.376381920471\n    test 1050 126 125.908678399154 Beta(tan=-1.38101, x=-0.586495, y=0.809953): -1.376381920471\n    test 1051 126 126.000134283091 Theta(tan=-1.37638, x=-0.587787, y=0.809016): -1.376381920471\n    test 1052 126 125.954376379912 Mu(tan=-1.37869, x=-0.587141, y=0.809485): -1.376381920471\n    test 1053 126 126.000000000000 Chi(tan=-1.37638, x=-0.587785, y=0.809017): -1.376381920471\n    test 1054 126 125.939153905889 Xi(tan=-1.37946, x=-0.586926, y=0.809641): -1.376381920471\n\n    test 1055 133 132.808205632210 Phi(tan=-1.07959, x=-1, y=1.07959): -1.072368710025\n    test 1056 133 132.904148646694 Beta(tan=-1.07597, x=-1, y=1.07597): -1.072368710025\n    test 1057 133 133.000115216221 Theta(tan=-1.07236, x=-1, y=1.07236): -1.072368710025\n    test 1058 133 132.952124558388 Mu(tan=-1.07417, x=-0.681387, y=0.731923), iteration=2: -1.072368710025\n    test 1059 133 133.000000000000 Chi(tan=-1.07237, x=-0.681998, y=0.731354): -1.072368710025\n    test 1060 133 132.936146061572 Xi(tan=-1.07477, x=-1.36848, y=1.4708), iteration=3: -1.072368710025\n\n    test 1061 133 132.808205632210 Phi(tan=-1.07959, x=-0.679546, y=0.733633): -1.072368710025\n    test 1062 133 132.904148646694 Beta(tan=-1.07597, x=-0.680774, y=0.732494): -1.072368710025\n    test 1063 133 133.000115216221 Theta(tan=-1.07236, x=-0.682, y=0.731352): -1.072368710025\n    test 1064 133 132.952124558388 Mu(tan=-1.07417, x=-0.681387, y=0.731923): -1.072368710025\n    test 1065 133 133.000000000000 Chi(tan=-1.07237, x=-0.681998, y=0.731354): -1.072368710025\n    test 1066 133 132.936146061572 Xi(tan=-1.07477, x=-0.681183, y=0.732113): -1.072368710025\n\n    test 1067 140 139.810477575926 Phi(tan=-0.844752, x=-1, y=0.844752): -0.839099631177\n    test 1068 140 139.905309888599 Beta(tan=-0.84192, x=-1, y=0.84192): -0.839099631177\n    test 1069 140 140.000087948921 Theta(tan=-0.839097, x=-1, y=0.839097): -0.839099631177\n    test 1070 140 139.952715856955 Mu(tan=-0.840507, x=-0.765514, y=0.64342), iteration=2: -0.839099631177\n    test 1071 140 140.000000000000 Chi(tan=-0.8391, x=-0.766044, y=0.642788): -0.839099631177\n    test 1072 140 139.936929981390 Xi(tan=-0.840977, x=-1.53755, y=1.29304), iteration=2: -0.839099631177\n\n    test 1073 140 139.810477575926 Phi(tan=-0.844752, x=-0.763914, y=0.645318): -0.839099631177\n    test 1074 140 139.905309888599 Beta(tan=-0.84192, x=-0.764981, y=0.644053): -0.839099631177\n    test 1075 140 140.000087948921 Theta(tan=-0.839097, x=-0.766045, y=0.642786): -0.839099631177\n    test 1076 140 139.952715856955 Mu(tan=-0.840507, x=-0.765514, y=0.64342): -0.839099631177\n    test 1077 140 140.000000000000 Chi(tan=-0.8391, x=-0.766044, y=0.642788): -0.839099631177\n    test 1078 140 139.936929981390 Xi(tan=-0.840977, x=-0.765336, y=0.64363): -0.839099631177\n\n    test 1079 147 146.824030870318 Phi(tan=-0.653783, x=-1, y=0.653783): -0.649407593198\n    test 1080 147 146.912104447745 Beta(tan=-0.651591, x=-1, y=0.651591): -0.649407593198\n    test 1081 147 147.000058627387 Theta(tan=-0.649406, x=-1, y=0.649406): -0.649407593198\n    test 1082 147 146.956118815411 Mu(tan=-0.650497, x=-0.838253, y=0.545281), iteration=2: -0.649407593198\n    test 1083 147 147.000000000000 Chi(tan=-0.649408, x=-0.838671, y=0.544639): -0.649407593198\n    test 1084 147 146.941464815429 Xi(tan=-0.650861, x=-1.68375, y=1.09589), iteration=2: -0.649407593198\n\n    test 1085 147 146.824030870318 Phi(tan=-0.653783, x=-0.836994, y=0.547212): -0.649407593198\n    test 1086 147 146.912104447745 Beta(tan=-0.651591, x=-0.837834, y=0.545925): -0.649407593198\n    test 1087 147 147.000058627387 Theta(tan=-0.649406, x=-0.838671, y=0.544638): -0.649407593198\n    test 1088 147 146.956118815411 Mu(tan=-0.650497, x=-0.838253, y=0.545281): -0.649407593198\n    test 1089 147 147.000000000000 Chi(tan=-0.649408, x=-0.838671, y=0.544639): -0.649407593198\n    test 1090 147 146.941464815429 Xi(tan=-0.650861, x=-0.838114, y=0.545496): -0.649407593198\n\n    test 1091 154 153.848086974871 Phi(tan=-0.491019, x=-1, y=0.491019): -0.487732588566\n    test 1092 154 153.924138158817 Beta(tan=-0.489373, x=-1, y=0.489373): -0.487732588566\n    test 1093 154 154.000032789582 Theta(tan=-0.487732, x=-1, y=0.487732): -0.487732588566\n    test 1094 154 153.962134341087 Mu(tan=-0.488551, x=-0.898504, y=0.438965), iteration=2: -0.487732588566\n    test 1095 154 154.000000000000 Chi(tan=-0.487733, x=-0.898794, y=0.438371): -0.487732588566\n    test 1096 154 153.949485950322 Xi(tan=-0.488824, x=-1.80488, y=0.88227), iteration=2: -0.487732588566\n\n    test 1097 154 153.848086974871 Phi(tan=-0.491019, x=-0.897629, y=0.440753): -0.487732588566\n    test 1098 154 153.924138158817 Beta(tan=-0.489373, x=-0.898213, y=0.439561): -0.487732588566\n    test 1099 154 154.000032789582 Theta(tan=-0.487732, x=-0.898794, y=0.438371): -0.487732588566\n    test 1100 154 153.962134341087 Mu(tan=-0.488551, x=-0.898504, y=0.438965): -0.487732588566\n    test 1101 154 154.000000000000 Chi(tan=-0.487733, x=-0.898794, y=0.438371): -0.487732588566\n    test 1102 154 153.949485950322 Xi(tan=-0.488824, x=-0.898407, y=0.439163): -0.487732588566\n\n    test 1103 161 160.881232023490 Phi(tan=-0.346648, x=-1, y=0.346648): -0.344327613290\n    test 1104 161 160.940701543262 Beta(tan=-0.345486, x=-1, y=0.345486): -0.344327613290\n    test 1105 161 161.000014139979 Theta(tan=-0.344327, x=-1, y=0.344327): -0.344327613290\n    test 1106 161 160.970406812614 Mu(tan=-0.344905, x=-0.94535, y=0.326056), iteration=3: -0.344327613290\n    test 1107 161 161.000000000000 Chi(tan=-0.344328, x=-0.945519, y=0.325568): -0.344327613290\n    test 1108 161 160.960519598812 Xi(tan=-0.345099, x=-1.89908, y=0.655369), iteration=3: -0.344327613290\n\n    test 1109 161 160.881232023490 Phi(tan=-0.346648, x=-0.944842, y=0.327527): -0.344327613290\n    test 1110 161 160.940701543262 Beta(tan=-0.345486, x=-0.945181, y=0.326547): -0.344327613290\n    test 1111 161 161.000014139979 Theta(tan=-0.344327, x=-0.945519, y=0.325568): -0.344327613290\n    test 1112 161 160.970406812614 Mu(tan=-0.344905, x=-0.94535, y=0.326056): -0.344327613290\n    test 1113 161 161.000000000000 Chi(tan=-0.344328, x=-0.945519, y=0.325568): -0.344327613290\n    test 1114 161 160.960519598812 Xi(tan=-0.345099, x=-0.945294, y=0.32622): -0.344327613290\n\n    test 1115 168 167.921497152166 Phi(tan=-0.213989, x=-1, y=0.213989): -0.212556561670\n    test 1116 168 167.960810661508 Beta(tan=-0.213272, x=-1, y=0.213272): -0.212556561670\n    test 1117 168 168.000003811668 Theta(tan=-0.212556, x=-1, y=0.212556): -0.212556561670\n    test 1118 168 167.980444790381 Mu(tan=-0.212913, x=-0.978077, y=0.208246), iteration=2: -0.212556561670\n    test 1119 168 168.000000000000 Chi(tan=-0.212557, x=-0.978148, y=0.207912): -0.212556561670\n    test 1120 168 167.973910295272 Xi(tan=-0.213033, x=-1.96489, y=0.418585), iteration=3: -0.212556561670\n\n    test 1121 168 167.921497152166 Phi(tan=-0.213989, x=-0.977862, y=0.209252): -0.212556561670\n    test 1122 168 167.960810661508 Beta(tan=-0.213272, x=-0.978005, y=0.208581): -0.212556561670\n    test 1123 168 168.000003811668 Theta(tan=-0.212556, x=-0.978148, y=0.207912): -0.212556561670\n    test 1124 168 167.980444790381 Mu(tan=-0.212913, x=-0.978077, y=0.208246): -0.212556561670\n    test 1125 168 168.000000000000 Chi(tan=-0.212557, x=-0.978148, y=0.207912): -0.212556561670\n    test 1126 168 167.973910295272 Xi(tan=-0.213033, x=-0.978053, y=0.208357): -0.212556561670\n\n    test 1127 175 174.966475344628 Phi(tan=-0.0880783, x=-1, y=0.0880783): -0.087488663526\n    test 1128 175 174.983265532727 Beta(tan=-0.087783, x=-1, y=0.087783): -0.087488663526\n    test 1129 175 175.000000286043 Theta(tan=-0.0874887, x=-1, y=0.0874887): -0.087488663526\n    test 1130 175 174.991650204039 Mu(tan=-0.0876355, x=-0.996182, y=0.0873009), iteration=3: -0.087488663526\n    test 1131 175 175.000000000000 Chi(tan=-0.0874887, x=-0.996195, y=0.0871557): -0.087488663526\n    test 1132 175 174.988859821813 Xi(tan=-0.0876846, x=-2.0013, y=0.175483), iteration=3: -0.087488663526\n\n    test 1133 175 174.966475344628 Phi(tan=-0.0880783, x=-0.996144, y=0.0877386): -0.087488663526\n    test 1134 175 174.983265532727 Beta(tan=-0.087783, x=-0.996169, y=0.0874467): -0.087488663526\n    test 1135 175 175.000000286043 Theta(tan=-0.0874887, x=-0.996195, y=0.0871557): -0.087488663526\n    test 1136 175 174.991650204039 Mu(tan=-0.0876355, x=-0.996182, y=0.0873009): -0.087488663526\n    test 1137 175 175.000000000000 Chi(tan=-0.0874887, x=-0.996195, y=0.0871557): -0.087488663526\n    test 1138 175 174.988859821813 Xi(tan=-0.0876846, x=-0.996178, y=0.0873494): -0.087488663526\n\n    test 1139 182 182.013467917640 Phi(tan=0.0351561, x=-1, y=-0.0351561): 0.034920769492\n    test 1140 182 182.006722669522 Beta(tan=0.0350382, x=-1, y=-0.0350382): 0.034920769492\n    test 1141 182 181.999999981575 Theta(tan=0.0349208, x=-1, y=-0.0349208): 0.034920769492\n    test 1142 182 182.003354287313 Mu(tan=0.0349794, x=-0.999389, y=-0.034958), iteration=3: 0.034920769492\n    test 1143 182 182.000000000000 Chi(tan=0.0349208, x=-0.999391, y=-0.0348995): 0.034920769492\n    test 1144 182 182.004475259781 Xi(tan=0.034999, x=-2.00775, y=-0.0702692), iteration=2: 0.034920769492\n\n    test 1145 182 182.013467917640 Phi(tan=0.0351561, x=-0.999383, y=-0.0351344): 0.034920769492\n    test 1146 182 182.006722669522 Beta(tan=0.0350382, x=-0.999387, y=-0.0350168): 0.034920769492\n    test 1147 182 181.999999981575 Theta(tan=0.0349208, x=-0.999391, y=-0.0348995): 0.034920769492\n    test 1148 182 182.003354287313 Mu(tan=0.0349794, x=-0.999389, y=-0.034958): 0.034920769492\n    test 1149 182 182.000000000000 Chi(tan=0.0349208, x=-0.999391, y=-0.0348995): 0.034920769492\n    test 1150 182 182.004475259781 Xi(tan=0.034999, x=-0.999388, y=-0.0349776): 0.034920769492\n\n    test 1151 189 189.059651130185 Phi(tan=0.159452, x=-1, y=-0.159452): 0.158384440325\n    test 1152 189 189.029777127642 Beta(tan=0.158917, x=-1, y=-0.158917): 0.158384440325\n    test 1153 189 188.999998360327 Theta(tan=0.158384, x=-1, y=-0.158384): 0.158384440325\n    test 1154 189 189.014858030843 Mu(tan=0.15865, x=-0.987648, y=-0.156691), iteration=3: 0.158384440325\n    test 1155 189 189.000000000000 Chi(tan=0.158384, x=-0.987688, y=-0.156434): 0.158384440325\n    test 1156 189 189.019823164695 Xi(tan=0.158739, x=-1.98414, y=-0.31496), iteration=3: 0.158384440325\n\n    test 1157 189 189.059651130185 Phi(tan=0.159452, x=-0.987525, y=-0.157463): 0.158384440325\n    test 1158 189 189.029777127642 Beta(tan=0.158917, x=-0.987607, y=-0.156948): 0.158384440325\n    test 1159 189 188.999998360327 Theta(tan=0.158384, x=-0.987688, y=-0.156434): 0.158384440325\n    test 1160 189 189.014858030843 Mu(tan=0.15865, x=-0.987648, y=-0.156691): 0.158384440325\n    test 1161 189 189.000000000000 Chi(tan=0.158384, x=-0.987688, y=-0.156434): 0.158384440325\n    test 1162 189 189.019823164695 Xi(tan=0.158739, x=-0.987634, y=-0.156776): 0.158384440325\n\n    test 1163 196 196.102251517048 Phi(tan=0.288678, x=-1, y=-0.288678): 0.286745385759\n    test 1164 196 196.051048664417 Beta(tan=0.28771, x=-1, y=-0.28771): 0.286745385759\n    test 1165 196 195.999991274014 Theta(tan=0.286745, x=-1, y=-0.286745): 0.286745385759\n    test 1166 196 196.025474578648 Mu(tan=0.287227, x=-0.961139, y=-0.276065), iteration=3: 0.286745385759\n    test 1167 196 196.000000000000 Chi(tan=0.286745, x=-0.961262, y=-0.275637): 0.286745385759\n    test 1168 196 196.033986378622 Xi(tan=0.287387, x=-1.93083, y=-0.554895), iteration=3: 0.286745385759\n\n    test 1169 196 196.102251517048 Phi(tan=0.288678, x=-0.960768, y=-0.277352): 0.286745385759\n    test 1170 196 196.051048664417 Beta(tan=0.28771, x=-0.961016, y=-0.276494): 0.286745385759\n    test 1171 196 195.999991274014 Theta(tan=0.286745, x=-0.961262, y=-0.275637): 0.286745385759\n    test 1172 196 196.025474578648 Mu(tan=0.287227, x=-0.961139, y=-0.276065): 0.286745385759\n    test 1173 196 196.000000000000 Chi(tan=0.286745, x=-0.961262, y=-0.275637): 0.286745385759\n    test 1174 196 196.033986378622 Xi(tan=0.287387, x=-0.961098, y=-0.276208): 0.286745385759\n\n    test 1175 203 203.138717708106 Phi(tan=0.427335, x=-1, y=-0.427335): 0.424474816210\n    test 1176 203 203.069266243319 Beta(tan=0.425902, x=-1, y=-0.425902): 0.424474816210\n    test 1177 203 202.999976212498 Theta(tan=0.424474, x=-1, y=-0.424474): 0.424474816210\n    test 1178 203 203.034570842744 Mu(tan=0.425187, x=-0.920269, y=-0.391286), iteration=3: 0.424474816210\n    test 1179 203 203.000000000000 Chi(tan=0.424475, x=-0.920505, y=-0.390731): 0.424474816210\n    test 1180 203 203.046119781391 Xi(tan=0.425425, x=-1.84864, y=-0.786459), iteration=3: 0.424474816210\n\n    test 1181 203 203.138717708106 Phi(tan=0.427335, x=-0.919556, y=-0.392959): 0.424474816210\n    test 1182 203 203.069266243319 Beta(tan=0.425902, x=-0.920032, y=-0.391844): 0.424474816210\n    test 1183 203 202.999976212498 Theta(tan=0.424474, x=-0.920505, y=-0.390731): 0.424474816210\n    test 1184 203 203.034570842744 Mu(tan=0.425187, x=-0.920269, y=-0.391286): 0.424474816210\n    test 1185 203 203.000000000000 Chi(tan=0.424475, x=-0.920505, y=-0.390731): 0.424474816210\n    test 1186 203 203.046119781391 Xi(tan=0.425425, x=-0.92019, y=-0.391472): 0.424474816210\n\n    test 1187 210 210.166876834292 Phi(tan=0.58124, x=-1, y=-0.58124): 0.577350269190\n    test 1188 210 210.083345266050 Beta(tan=0.579291, x=-1, y=-0.579291): 0.577350269190\n    test 1189 210 209.999953141624 Theta(tan=0.577349, x=-1, y=-0.577349): 0.577350269190\n    test 1190 210 210.041605671429 Mu(tan=0.578319, x=-0.865662, y=-0.500629), iteration=2: 0.577350269190\n    test 1191 210 210.000000000000 Chi(tan=0.57735, x=-0.866025, y=-0.5): 0.577350269190\n    test 1192 210 210.055501367888 Xi(tan=0.578643, x=-1.73885, y=-1.00617), iteration=2: 0.577350269190\n\n    test 1193 210 210.166876834292 Phi(tan=0.58124, x=-0.864565, y=-0.50252): 0.577350269190\n    test 1194 210 210.083345266050 Beta(tan=0.579291, x=-0.865297, y=-0.501259): 0.577350269190\n    test 1195 210 209.999953141624 Theta(tan=0.577349, x=-0.866026, y=-0.499999): 0.577350269190\n    test 1196 210 210.041605671429 Mu(tan=0.578319, x=-0.865662, y=-0.500629): 0.577350269190\n    test 1197 210 210.000000000000 Chi(tan=0.57735, x=-0.866025, y=-0.5): 0.577350269190\n    test 1198 210 210.055501367888 Xi(tan=0.578643, x=-0.865541, y=-0.500839): 0.577350269190\n\n    test 1199 217 217.185065085003 Phi(tan=0.758631, x=-1, y=-0.758631): 0.753554050103\n    test 1200 217 217.092452537420 Beta(tan=0.756087, x=-1, y=-0.756087): 0.753554050103\n    test 1201 217 216.999924718107 Theta(tan=0.753552, x=-1, y=-0.753552): 0.753554050103\n    test 1202 217 217.046162172363 Mu(tan=0.754818, x=-0.79815, y=-0.602458), iteration=2: 0.753554050103\n    test 1203 217 217.000000000000 Chi(tan=0.753554, x=-0.798636, y=-0.601815): 0.753554050103\n    test 1204 217 217.061575411936 Xi(tan=0.75524, x=-1.60314, y=-1.21076), iteration=3: 0.753554050103\n\n    test 1205 217 217.185065085003 Phi(tan=0.758631, x=-0.796687, y=-0.604391): 0.753554050103\n    test 1206 217 217.092452537420 Beta(tan=0.756087, x=-0.797663, y=-0.603103): 0.753554050103\n    test 1207 217 216.999924718107 Theta(tan=0.753552, x=-0.798636, y=-0.601814): 0.753554050103\n    test 1208 217 217.046162172363 Mu(tan=0.754818, x=-0.79815, y=-0.602458): 0.753554050103\n    test 1209 217 217.000000000000 Chi(tan=0.753554, x=-0.798636, y=-0.601815): 0.753554050103\n    test 1210 217 217.061575411936 Xi(tan=0.75524, x=-0.797988, y=-0.602673): 0.753554050103\n\n    test 1211 224 224.192224339246 Phi(tan=0.972193, x=-1, y=-0.972193): 0.965688774807\n    test 1212 224 224.096054985813 Beta(tan=0.968934, x=-1, y=-0.968934): 0.965688774807\n    test 1213 224 223.999895821294 Theta(tan=0.965685, x=-1, y=-0.965685): 0.965688774807\n    test 1214 224 224.047972230974 Mu(tan=0.967308, x=-0.718758, y=-0.69526), iteration=2: 0.965688774807\n    test 1215 224 224.000000000000 Chi(tan=0.965689, x=-0.71934, y=-0.694658): 0.965688774807\n    test 1216 224 224.063985091722 Xi(tan=0.967849, x=-1.44358, y=-1.39717), iteration=3: 0.965688774807\n\n    test 1217 224 224.192224339246 Phi(tan=0.972193, x=-0.717005, y=-0.697068): 0.965688774807\n    test 1218 224 224.096054985813 Beta(tan=0.968934, x=-0.718174, y=-0.695863): 0.965688774807\n    test 1219 224 223.999895821294 Theta(tan=0.965685, x=-0.719341, y=-0.694657): 0.965688774807\n    test 1220 224 224.047972230974 Mu(tan=0.967308, x=-0.718758, y=-0.69526): 0.965688774807\n    test 1221 224 224.000000000000 Chi(tan=0.965689, x=-0.71934, y=-0.694658): 0.965688774807\n    test 1222 224 224.063985091722 Xi(tan=0.967849, x=-0.718564, y=-0.695461): 0.965688774807\n\n    test 1223 231 231.187959693265 Phi(tan=1.24321, x=-1, y=-1.24321): 1.234897156535\n    test 1224 231 231.093949439927 Beta(tan=1.23905, x=-1, y=-1.23905): 1.234897156535\n    test 1225 231 230.999872507121 Theta(tan=1.23489, x=-1, y=-1.23489): 1.234897156535\n    test 1226 231 231.046931828803 Mu(tan=1.23697, x=-0.628684, y=-0.777661), iteration=3: 1.234897156535\n    test 1227 231 231.000000000000 Chi(tan=1.2349, x=-0.62932, y=-0.777146): 1.234897156535\n    test 1228 231 231.062592734966 Xi(tan=1.23766, x=-1.26259, y=-1.56265), iteration=2: 1.234897156535\n\n    test 1229 231 231.187959693265 Phi(tan=1.24321, x=-0.626768, y=-0.779206): 1.234897156535\n    test 1230 231 231.093949439927 Beta(tan=1.23905, x=-0.628045, y=-0.778177): 1.234897156535\n    test 1231 231 230.999872507121 Theta(tan=1.23489, x=-0.629322, y=-0.777145): 1.234897156535\n    test 1232 231 231.046931828803 Mu(tan=1.23697, x=-0.628684, y=-0.777661): 1.234897156535\n    test 1233 231 231.000000000000 Chi(tan=1.2349, x=-0.62932, y=-0.777146): 1.234897156535\n    test 1234 231 231.062592734966 Xi(tan=1.23766, x=-0.628471, y=-0.777833): 1.234897156535\n\n    test 1235 238 238.172555759873 Phi(tan=1.61111, x=-1, y=-1.61111): 1.600334529041\n    test 1236 238 238.086272148408 Beta(tan=1.60571, x=-1, y=-1.60571): 1.600334529041\n    test 1237 238 237.999860628148 Theta(tan=1.60033, x=-1, y=-1.60033): 1.600334529041\n    test 1238 238 238.043106397552 Mu(tan=1.60302, x=-0.529281, y=-0.848447), iteration=2: 1.600334529041\n    test 1239 238 238.000000000000 Chi(tan=1.60033, x=-0.529919, y=-0.848048): 1.600334529041\n    test 1240 238 238.057486709388 Xi(tan=1.60391, x=-1.06289, y=-1.70478), iteration=3: 1.600334529041\n\n    test 1241 238 238.172555759873 Phi(tan=1.61111, x=-0.527363, y=-0.84964): 1.600334529041\n    test 1242 238 238.086272148408 Beta(tan=1.60571, x=-0.528642, y=-0.848845): 1.600334529041\n    test 1243 238 237.999860628148 Theta(tan=1.60033, x=-0.529921, y=-0.848047): 1.600334529041\n    test 1244 238 238.043106397552 Mu(tan=1.60302, x=-0.529281, y=-0.848447): 1.600334529041\n    test 1245 238 238.000000000000 Chi(tan=1.60033, x=-0.529919, y=-0.848048): 1.600334529041\n    test 1246 238 238.057486709388 Xi(tan=1.60391, x=-0.529068, y=-0.848579): 1.600334529041\n\n    test 1247 245 245.146952468013 Phi(tan=2.15895, x=-1, y=-2.15895): 2.144506920510\n    test 1248 245 245.073488079777 Beta(tan=2.15171, x=-1, y=-2.15171): 2.144506920510\n    test 1249 245 244.999864442704 Theta(tan=2.14449, x=-1, y=-2.14449): 2.144506920510\n    test 1250 245 245.036726085420 Mu(tan=2.1481, x=-0.422037, y=-0.906578), iteration=3: 2.144506920510\n    test 1251 245 245.000000000000 Chi(tan=2.14451, x=-0.422618, y=-0.906308): 2.144506920510\n    test 1252 245 245.048974853160 Xi(tan=2.1493, x=-0.847475, y=-1.82148), iteration=3: 2.144506920510\n\n    test 1253 245 245.146952468013 Phi(tan=2.15895, x=-0.420292, y=-0.907389): 2.144506920510\n    test 1254 245 245.073488079777 Beta(tan=2.15171, x=-0.421455, y=-0.906849): 2.144506920510\n    test 1255 245 244.999864442704 Theta(tan=2.14449, x=-0.42262, y=-0.906307): 2.144506920510\n    test 1256 245 245.036726085420 Mu(tan=2.1481, x=-0.422037, y=-0.906578): 2.144506920510\n    test 1257 245 245.000000000000 Chi(tan=2.14451, x=-0.422618, y=-0.906308): 2.144506920510\n    test 1258 245 245.048974853160 Xi(tan=2.1493, x=-0.421843, y=-0.906669): 2.144506920510\n\n    test 1259 252 252.112683493851 Phi(tan=3.0984, x=-1, y=-3.0984): 3.077683537175\n    test 1260 252 252.056361244518 Beta(tan=3.08802, x=-1, y=-3.08802): 3.077683537175\n    test 1261 252 251.999885538511 Theta(tan=3.07766, x=-1, y=-3.07766): 3.077683537175\n    test 1262 252 252.028171414224 Mu(tan=3.08284, x=-0.308549, y=-0.951208), iteration=3: 3.077683537175\n    test 1263 252 252.000000000000 Chi(tan=3.07768, x=-0.309017, y=-0.951057): 3.077683537175\n    test 1264 252 252.037565143061 Xi(tan=3.08456, x=-0.619556, y=-1.91106), iteration=3: 3.077683537175\n\n    test 1265 252 252.112683493851 Phi(tan=3.0984, x=-0.307146, y=-0.951662): 3.077683537175\n    test 1266 252 252.056361244518 Beta(tan=3.08802, x=-0.308081, y=-0.95136): 3.077683537175\n    test 1267 252 251.999885538511 Theta(tan=3.07766, x=-0.309019, y=-0.951056): 3.077683537175\n    test 1268 252 252.028171414224 Mu(tan=3.08284, x=-0.308549, y=-0.951208): 3.077683537175\n    test 1269 252 252.000000000000 Chi(tan=3.07768, x=-0.309017, y=-0.951057): 3.077683537175\n    test 1270 252 252.037565143061 Xi(tan=3.08456, x=-0.308393, y=-0.951259): 3.077683537175\n\n    test 1271 259 259.071782282365 Phi(tan=5.17919, x=-1, y=-5.17919): 5.144554015970\n    test 1272 259 259.035908272116 Beta(tan=5.16182, x=-1, y=-5.16182): 5.144554015970\n    test 1273 259 258.999922323247 Theta(tan=5.14452, x=-1, y=-5.14452): 5.144554015970\n    test 1274 259 259.017950333560 Mu(tan=5.15317, x=-0.190501, y=-0.981687), iteration=3: 5.144554015970\n    test 1275 259 259.000000000000 Chi(tan=5.14455, x=-0.190809, y=-0.981627): 5.144554015970\n    test 1276 259 259.023934988471 Xi(tan=5.15605, x=-0.382508, y=-1.97223), iteration=2: 5.144554015970\n\n    test 1277 259 259.071782282365 Phi(tan=5.17919, x=-0.189579, y=-0.981865): 5.144554015970\n    test 1278 259 259.035908272116 Beta(tan=5.16182, x=-0.190194, y=-0.981747): 5.144554015970\n    test 1279 259 258.999922323247 Theta(tan=5.14452, x=-0.19081, y=-0.981627): 5.144554015970\n    test 1280 259 259.017950333560 Mu(tan=5.15317, x=-0.190501, y=-0.981687): 5.144554015970\n    test 1281 259 259.000000000000 Chi(tan=5.14455, x=-0.190809, y=-0.981627): 5.144554015970\n    test 1282 259 259.023934988471 Xi(tan=5.15605, x=-0.190399, y=-0.981707): 5.144554015970\n\n    test 1283 266 266.026661867451 Phi(tan=14.3969, x=-1, y=-14.3969): 14.300666256712\n    test 1284 266 266.013338229951 Beta(tan=14.3487, x=-1, y=-14.3487): 14.300666256712\n    test 1285 266 265.999970204566 Theta(tan=14.3006, x=-1, y=-14.3006): 14.300666256712\n    test 1286 266 266.006668111562 Mu(tan=14.3246, x=-0.0696404, y=-0.997572), iteration=2: 14.300666256712\n    test 1287 266 266.000000000000 Chi(tan=14.3007, x=-0.0697565, y=-0.997564): 14.300666256712\n    test 1288 266 266.008891093578 Xi(tan=14.3326, x=-0.139828, y=-2.00411), iteration=3: 14.300666256712\n\n    test 1289 266 266.026661867451 Phi(tan=14.3969, x=-0.0692923, y=-0.997596): 14.300666256712\n    test 1290 266 266.013338229951 Beta(tan=14.3487, x=-0.0695242, y=-0.99758): 14.300666256712\n    test 1291 266 265.999970204566 Theta(tan=14.3006, x=-0.069757, y=-0.997564): 14.300666256712\n    test 1292 266 266.006668111562 Mu(tan=14.3246, x=-0.0696404, y=-0.997572): 14.300666256712\n    test 1293 266 266.000000000000 Chi(tan=14.3007, x=-0.0697565, y=-0.997564): 14.300666256712\n    test 1294 266 266.008891093578 Xi(tan=14.3326, x=-0.0696017, y=-0.997575): 14.300666256712\n\n    test 1295 273 272.979975455720 Phi(tan=-19.2096, x=1.0, y=-19.2096): -19.081136687728\n    test 1296 273 272.989982200734 Beta(tan=-19.1452, x=1.0, y=-19.1452): -19.081136687728\n    test 1297 273 273.000022425845 Theta(tan=-19.081, x=1.0, y=-19.081): -19.081136687728\n    test 1298 273 272.994991833280 Mu(tan=-19.1131, x=0.0522487, y=-0.998634), iteration=3: -19.081136687728\n    test 1299 273 273.000000000000 Chi(tan=-19.0811, x=0.052336, y=-0.99863): -19.081136687728\n    test 1300 273 272.993322244137 Xi(tan=-19.1238, x=0.104908, y=-2.00624), iteration=2: -19.081136687728\n\n    test 1301 273 272.979975455720 Phi(tan=-19.2096, x=0.0519869, y=-0.998648): -19.081136687728\n    test 1302 273 272.989982200734 Beta(tan=-19.1452, x=0.0521614, y=-0.998639): -19.081136687728\n    test 1303 273 273.000022425845 Theta(tan=-19.081, x=0.0523363, y=-0.99863): -19.081136687728\n    test 1304 273 272.994991833280 Mu(tan=-19.1131, x=0.0522487, y=-0.998634): -19.081136687728\n    test 1305 273 273.000000000000 Chi(tan=-19.0811, x=0.052336, y=-0.99863): -19.081136687728\n    test 1306 273 272.993322244137 Xi(tan=-19.1238, x=0.0522196, y=-0.998636): -19.081136687728\n\n    test 1307 280 279.934465137513 Phi(tan=-5.70946, x=1.0, y=-5.70946): -5.671281819618\n    test 1308 280 279.967216473785 Beta(tan=-5.69032, x=1.0, y=-5.69032): -5.671281819618\n    test 1309 280 280.000071376516 Theta(tan=-5.67124, x=1.0, y=-5.67124): -5.671281819618\n    test 1310 280 279.983611509112 Mu(tan=-5.68078, x=0.173366, y=-0.984857), iteration=3: -5.671281819618\n    test 1311 280 280.000000000000 Chi(tan=-5.67128, x=0.173648, y=-0.984808): -5.671281819618\n    test 1312 280 279.978147657318 Xi(tan=-5.68396, x=0.348101, y=-1.97859), iteration=3: -5.671281819618\n\n    test 1313 280 279.934465137513 Phi(tan=-5.70946, x=0.172522, y=-0.985006): -5.671281819618\n    test 1314 280 279.967216473785 Beta(tan=-5.69032, x=0.173085, y=-0.984907): -5.671281819618\n    test 1315 280 280.000071376516 Theta(tan=-5.67124, x=0.173649, y=-0.984808): -5.671281819618\n    test 1316 280 279.983611509112 Mu(tan=-5.68078, x=0.173366, y=-0.984857): -5.671281819618\n    test 1317 280 280.000000000000 Chi(tan=-5.67128, x=0.173648, y=-0.984808): -5.671281819618\n    test 1318 280 279.978147657318 Xi(tan=-5.68396, x=0.173273, y=-0.984874): -5.671281819618\n\n    test 1319 287 286.892806262875 Phi(tan=-3.29287, x=1.0, y=-3.29287): -3.270852618484\n    test 1320 287 286.946383391473 Beta(tan=-3.28183, x=1.0, y=-3.28183): -3.270852618484\n    test 1321 287 287.000110089905 Theta(tan=-3.27083, x=1.0, y=-3.27083): -3.270852618484\n    test 1322 287 286.973199933024 Mu(tan=-3.27633, x=0.291924, y=-0.956441), iteration=2: -3.270852618484\n    test 1323 287 287.000000000000 Chi(tan=-3.27085, x=0.292372, y=-0.956305): -3.270852618484\n    test 1324 287 286.964263697434 Xi(tan=-3.27816, x=0.586171, y=-1.92156), iteration=2: -3.270852618484\n\n    test 1325 287 286.892806262875 Phi(tan=-3.29287, x=0.290582, y=-0.95685): -3.270852618484\n    test 1326 287 286.946383391473 Beta(tan=-3.28183, x=0.291477, y=-0.956578): -3.270852618484\n    test 1327 287 287.000110089905 Theta(tan=-3.27083, x=0.292374, y=-0.956304): -3.270852618484\n    test 1328 287 286.973199933024 Mu(tan=-3.27633, x=0.291924, y=-0.956441): -3.270852618484\n    test 1329 287 287.000000000000 Chi(tan=-3.27085, x=0.292372, y=-0.956305): -3.270852618484\n    test 1330 287 286.964263697434 Xi(tan=-3.27816, x=0.291775, y=-0.956487): -3.270852618484\n\n    test 1331 294 293.857455069612 Phi(tan=-2.26116, x=1.0, y=-2.26116): -2.246036773904\n    test 1332 294 293.928713955385 Beta(tan=-2.25358, x=1.0, y=-2.25358): -2.246036773904\n    test 1333 294 294.000133599673 Theta(tan=-2.24602, x=1.0, y=-2.24602): -2.246036773904\n    test 1334 294 293.964373479294 Mu(tan=-2.2498, x=0.406169, y=-0.913798), iteration=2: -2.246036773904\n    test 1335 294 294.000000000000 Chi(tan=-2.24604, x=0.406737, y=-0.913545): -2.246036773904\n    test 1336 294 293.952491818284 Xi(tan=-2.25106, x=0.815604, y=-1.83597), iteration=3: -2.246036773904\n\n    test 1337 294 293.857455069612 Phi(tan=-2.26116, x=0.404463, y=-0.914555): -2.246036773904\n    test 1338 294 293.928713955385 Beta(tan=-2.25358, x=0.4056, y=-0.914051): -2.246036773904\n    test 1339 294 294.000133599673 Theta(tan=-2.24602, x=0.406739, y=-0.913545): -2.246036773904\n    test 1340 294 293.964373479294 Mu(tan=-2.2498, x=0.406169, y=-0.913798): -2.246036773904\n    test 1341 294 294.000000000000 Chi(tan=-2.24604, x=0.406737, y=-0.913545): -2.246036773904\n    test 1342 294 293.952491818284 Xi(tan=-2.25106, x=0.405979, y=-0.913882): -2.246036773904\n\n    test 1343 301 300.830507114227 Phi(tan=-1.67549, x=1.0, y=-1.67549): -1.664279482351\n    test 1344 301 300.915256249596 Beta(tan=-1.66987, x=1.0, y=-1.66987): -1.664279482351\n    test 1345 301 301.000139857505 Theta(tan=-1.66427, x=1.0, y=-1.66427): -1.664279482351\n    test 1346 301 300.957655989828 Mu(tan=-1.66707, x=0.514404, y=-0.857548), iteration=2: -1.664279482351\n    test 1347 301 301.000000000000 Chi(tan=-1.66428, x=0.515038, y=-0.857167): -1.664279482351\n    test 1348 301 300.943530549480 Xi(tan=-1.668, x=1.033, y=-1.72305), iteration=3: -1.664279482351\n\n    test 1349 301 300.830507114227 Phi(tan=-1.67549, x=0.5125, y=-0.858687): -1.664279482351\n    test 1350 301 300.915256249596 Beta(tan=-1.66987, x=0.51377, y=-0.857928): -1.664279482351\n    test 1351 301 301.000139857505 Theta(tan=-1.66427, x=0.51504, y=-0.857166): -1.664279482351\n    test 1352 301 300.957655989828 Mu(tan=-1.66707, x=0.514404, y=-0.857548): -1.664279482351\n    test 1353 301 301.000000000000 Chi(tan=-1.66428, x=0.515038, y=-0.857167): -1.664279482351\n    test 1354 301 300.943530549480 Xi(tan=-1.668, x=0.514193, y=-0.857674): -1.664279482351\n\n    test 1355 308 307.813573905031 Phi(tan=-1.28856, x=1.0, y=-1.28856): -1.279941632193\n    test 1356 308 307.906813571405 Beta(tan=-1.28424, x=1.0, y=-1.28424): -1.279941632193\n    test 1357 308 308.000130012564 Theta(tan=-1.27994, x=1.0, y=-1.27994): -1.279941632193\n    test 1358 308 307.953447779688 Mu(tan=-1.28209, x=0.615021, y=-0.788511), iteration=3: -1.279941632193\n    test 1359 308 308.000000000000 Chi(tan=-1.27994, x=0.615661, y=-0.788011): -1.279941632193\n    test 1360 308 307.937914195662 Xi(tan=-1.2828, x=1.23514, y=-1.58444), iteration=3: -1.279941632193\n\n    test 1361 308 307.813573905031 Phi(tan=-1.28856, x=0.613094, y=-0.79001): -1.279941632193\n    test 1362 308 307.906813571405 Beta(tan=-1.28424, x=0.614379, y=-0.789011): -1.279941632193\n    test 1363 308 308.000130012564 Theta(tan=-1.27994, x=0.615663, y=-0.788009): -1.279941632193\n    test 1364 308 307.953447779688 Mu(tan=-1.28209, x=0.615021, y=-0.788511): -1.279941632193\n    test 1365 308 308.000000000000 Chi(tan=-1.27994, x=0.615661, y=-0.788011): -1.279941632193\n    test 1366 308 307.937914195662 Xi(tan=-1.2828, x=0.614807, y=-0.788677): -1.279941632193\n\n    test 1367 315 314.807684778155 Phi(tan=-1.00674, x=1.0, y=-1.00674): -1.000000000000\n    test 1368 315 314.903895845383 Beta(tan=-1.00336, x=1.0, y=-1.00336): -1.000000000000\n    test 1369 315 315.000107996571 Theta(tan=-0.999996, x=1.0, y=-0.999996): -1.000000000000\n    test 1370 315 314.952001570934 Mu(tan=-1.00168, x=0.706514, y=-0.707699), iteration=2: -1.000000000000\n    test 1371 315 315.000000000000 Chi(tan=-1, x=0.707107, y=-0.707107): -1.000000000000\n    test 1372 315 314.935980653019 Xi(tan=-1.00224, x=1.41898, y=-1.42215), iteration=3: -1.000000000000\n\n    test 1373 315 314.807684778155 Phi(tan=-1.00674, x=0.704729, y=-0.709476): -1.000000000000\n    test 1374 315 314.903895845383 Beta(tan=-1.00336, x=0.70592, y=-0.708292): -1.000000000000\n    test 1375 315 315.000107996571 Theta(tan=-0.999996, x=0.707108, y=-0.707105): -1.000000000000\n    test 1376 315 314.952001570934 Mu(tan=-1.00168, x=0.706514, y=-0.707699): -1.000000000000\n    test 1377 315 315.000000000000 Chi(tan=-1, x=0.707107, y=-0.707107): -1.000000000000\n    test 1378 315 314.935980653019 Xi(tan=-1.00224, x=0.706316, y=-0.707896): -1.000000000000\n\n    test 1379 322 321.813220359944 Phi(tan=-0.786549, x=1.0, y=-0.786549): -0.781285626507\n    test 1380 322 321.906687396462 Beta(tan=-0.783912, x=1.0, y=-0.783912): -0.781285626507\n    test 1381 322 322.000079515502 Theta(tan=-0.781283, x=1.0, y=-0.781283): -0.781285626507\n    test 1382 322 321.953406847958 Mu(tan=-0.782596, x=0.78751, y=-0.616302), iteration=2: -0.781285626507\n    test 1383 322 322.000000000000 Chi(tan=-0.781286, x=0.788011, y=-0.615661): -0.781285626507\n    test 1384 322 321.937850353113 Xi(tan=-0.783034, x=1.58176, y=-1.23857), iteration=3: -0.781285626507\n\n    test 1385 322 321.813220359944 Phi(tan=-0.786549, x=0.786, y=-0.618227): -0.781285626507\n    test 1386 322 321.906687396462 Beta(tan=-0.783912, x=0.787007, y=-0.616944): -0.781285626507\n    test 1387 322 322.000079515502 Theta(tan=-0.781283, x=0.788012, y=-0.61566): -0.781285626507\n    test 1388 322 321.953406847958 Mu(tan=-0.782596, x=0.78751, y=-0.616302): -0.781285626507\n    test 1389 322 322.000000000000 Chi(tan=-0.781286, x=0.788011, y=-0.615661): -0.781285626507\n    test 1390 322 321.937850353113 Xi(tan=-0.783034, x=0.787342, y=-0.616516): -0.781285626507\n\n    test 1391 329 328.829882787345 Phi(tan=-0.604909, x=1.0, y=-0.604909): -0.600860619028\n    test 1392 329 328.915033437072 Beta(tan=-0.602881, x=1.0, y=-0.602881): -0.600860619028\n    test 1393 329 329.000050684665 Theta(tan=-0.600859, x=1.0, y=-0.600859): -0.600860619028\n    test 1394 329 328.957583708533 Mu(tan=-0.601869, x=0.856786, y=-0.515672), iteration=3: -0.600860619028\n    test 1395 329 329.000000000000 Chi(tan=-0.600861, x=0.857167, y=-0.515038): -0.600860619028\n    test 1396 329 328.943417809954 Xi(tan=-0.602205, x=1.72101, y=-1.0364), iteration=3: -0.600860619028\n\n    test 1397 329 328.829882787345 Phi(tan=-0.604909, x=0.855634, y=-0.517581): -0.600860619028\n    test 1398 329 328.915033437072 Beta(tan=-0.602881, x=0.856403, y=-0.516309): -0.600860619028\n    test 1399 329 329.000050684665 Theta(tan=-0.600859, x=0.857168, y=-0.515037): -0.600860619028\n    test 1400 329 328.957583708533 Mu(tan=-0.601869, x=0.856786, y=-0.515672): -0.600860619028\n    test 1401 329 329.000000000000 Chi(tan=-0.600861, x=0.857167, y=-0.515038): -0.600860619028\n    test 1402 329 328.943417809954 Xi(tan=-0.602205, x=0.856658, y=-0.515884): -0.600860619028\n\n    test 1403 336 335.856706115158 Phi(tan=-0.448229, x=1.0, y=-0.448229): -0.445228685309\n    test 1404 336 335.928446665868 Beta(tan=-0.446726, x=1.0, y=-0.446726): -0.445228685309\n    test 1405 336 336.000026626488 Theta(tan=-0.445228, x=1.0, y=-0.445228): -0.445228685309\n    test 1406 336 335.964286769667 Mu(tan=-0.445976, x=0.913292, y=-0.407306), iteration=2: -0.445228685309\n    test 1407 336 336.000000000000 Chi(tan=-0.445229, x=0.913545, y=-0.406737): -0.445228685309\n    test 1408 336 335.952356574339 Xi(tan=-0.446225, x=1.83461, y=-0.818652), iteration=2: -0.445228685309\n\n    test 1409 336 335.856706115158 Phi(tan=-0.448229, x=0.912525, y=-0.40902): -0.445228685309\n    test 1410 336 335.928446665868 Beta(tan=-0.446726, x=0.913037, y=-0.407877): -0.445228685309\n    test 1411 336 336.000026626488 Theta(tan=-0.445228, x=0.913546, y=-0.406736): -0.445228685309\n    test 1412 336 335.964286769667 Mu(tan=-0.445976, x=0.913292, y=-0.407306): -0.445228685309\n    test 1413 336 336.000000000000 Chi(tan=-0.445229, x=0.913545, y=-0.406737): -0.445228685309\n    test 1414 336 335.952356574339 Xi(tan=-0.446225, x=0.913207, y=-0.407496): -0.445228685309\n\n    test 1415 343 342.892108013861 Phi(tan=-0.307791, x=1.0, y=-0.307791): -0.305730681459\n    test 1416 343 342.946134198526 Beta(tan=-0.306759, x=1.0, y=-0.306759): -0.305730681459\n    test 1417 343 343.000010359231 Theta(tan=-0.30573, x=1.0, y=-0.30573): -0.305730681459\n    test 1418 343 342.973119094169 Mu(tan=-0.306244, x=0.956167, y=-0.29282), iteration=3: -0.305730681459\n    test 1419 343 343.000000000000 Chi(tan=-0.305731, x=0.956305, y=-0.292372): -0.305730681459\n    test 1420 343 342.964137610259 Xi(tan=-0.306415, x=1.92083, y=-0.588571), iteration=2: -0.305730681459\n\n    test 1421 343 342.892108013861 Phi(tan=-0.307791, x=0.955753, y=-0.294172): -0.305730681459\n    test 1422 343 342.946134198526 Beta(tan=-0.306759, x=0.956029, y=-0.293271): -0.305730681459\n    test 1423 343 343.000010359231 Theta(tan=-0.30573, x=0.956305, y=-0.292372): -0.305730681459\n    test 1424 343 342.973119094169 Mu(tan=-0.306244, x=0.956167, y=-0.29282): -0.305730681459\n    test 1425 343 343.000000000000 Chi(tan=-0.305731, x=0.956305, y=-0.292372): -0.305730681459\n    test 1426 343 342.964137610259 Xi(tan=-0.306415, x=0.956122, y=-0.29297): -0.305730681459\n\n    test 1427 350 349.933981060171 Phi(tan=-0.177515, x=1.0, y=-0.177515): -0.176326980708\n    test 1428 350 349.967043715347 Beta(tan=-0.17692, x=1.0, y=-0.17692): -0.176326980708\n    test 1429 350 350.000002236053 Theta(tan=-0.176327, x=1.0, y=-0.176327): -0.176326980708\n    test 1430 350 349.983555465918 Mu(tan=-0.176623, x=0.984758, y=-0.173931), iteration=3: -0.176326980708\n    test 1431 350 350.000000000000 Chi(tan=-0.176327, x=0.984808, y=-0.173648): -0.176326980708\n    test 1432 350 349.978060244759 Xi(tan=-0.176722, x=1.97833, y=-0.349613), iteration=3: -0.176326980708\n\n    test 1433 350 349.933981060171 Phi(tan=-0.177515, x=0.984607, y=-0.174783): -0.176326980708\n    test 1434 350 349.967043715347 Beta(tan=-0.17692, x=0.984708, y=-0.174215): -0.176326980708\n    test 1435 350 350.000002236053 Theta(tan=-0.176327, x=0.984808, y=-0.173648): -0.176326980708\n    test 1436 350 349.983555465918 Mu(tan=-0.176623, x=0.984758, y=-0.173931): -0.176326980708\n    test 1437 350 350.000000000000 Chi(tan=-0.176327, x=0.984808, y=-0.173648): -0.176326980708\n    test 1438 350 349.978060244759 Xi(tan=-0.176722, x=0.984741, y=-0.174025): -0.176326980708\n\n    test 1439 357 356.979818878824 Phi(tan=-0.052761, x=1.0, y=-0.052761): -0.052407779283\n    test 1440 357 356.989926321337 Beta(tan=-0.0525841, x=1.0, y=-0.0525841): -0.052407779283\n    test 1441 357 357.000000062090 Theta(tan=-0.0524078, x=1.0, y=-0.0524078): -0.052407779283\n    test 1442 357 356.994973705906 Mu(tan=-0.0524957, x=0.998625, y=-0.0524236), iteration=3: -0.052407779283\n    test 1443 357 357.000000000000 Chi(tan=-0.0524078, x=0.99863, y=-0.052336): -0.052407779283\n    test 1444 357 356.993293970223 Xi(tan=-0.0525251, x=2.00621, y=-0.105377), iteration=2: -0.052407779283\n\n    test 1445 357 356.979818878824 Phi(tan=-0.052761, x=0.998611, y=-0.0526877): -0.052407779283\n    test 1446 357 356.989926321337 Beta(tan=-0.0525841, x=0.99862, y=-0.0525115): -0.052407779283\n    test 1447 357 357.000000062090 Theta(tan=-0.0524078, x=0.99863, y=-0.052336): -0.052407779283\n    test 1448 357 356.994973705906 Mu(tan=-0.0524957, x=0.998625, y=-0.0524236): -0.052407779283\n    test 1449 357 357.000000000000 Chi(tan=-0.0524078, x=0.99863, y=-0.052336): -0.052407779283\n    test 1450 357 356.993293970223 Xi(tan=-0.0525251, x=0.998623, y=-0.0524528): -0.052407779283\n\n    test 1451  0 0.000000000000 Phi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 1452  0 0.000000000000 Beta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 1453  0 0.000000000000 Theta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 1454  0 0.000000000000 Mu(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 1455  0 0.000000000000 Chi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 1456  0 0.000000000000 Xi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n\n    test 1457  0 0.000000000000 Phi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 1458  0 0.000000000000 Beta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 1459  0 0.000000000000 Theta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 1460  0 0.000000000000 Mu(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 1461  0 0.000000000000 Chi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 1462  0 0.000000000000 Xi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n\n    test 1463  7 7.035013553420 Phi(tan=0.123405, x=1.0, y=0.123405): 0.122784560903\n    test 1464  7 7.011661662966 Beta(tan=0.122991, x=1.0, y=0.122991): 0.122784560903\n    test 1465  7 6.988385737369 Theta(tan=0.122579, x=1.0, y=0.122579): 0.122784560903\n    test 1466  7 7.000000000000 Mu(tan=0.122785, x=0.992546, y=0.121869): 0.122784560903\n    test 1467  7 6.988386512663 Chi(tan=0.122579, x=1.0, y=0.122579), iteration=3: 0.122784560903\n    test 1468  7 7.003880991951 Xi(tan=0.122853, x=1.99399, y=0.244968), iteration=3: 0.122784560903\n\n    test 1469  7 7.035013553420 Phi(tan=0.123405, x=0.992471, y=0.122476): 0.122784560903\n    test 1470  7 7.011661662966 Beta(tan=0.122991, x=0.992521, y=0.122071): 0.122784560903\n    test 1471  7 6.988385737369 Theta(tan=0.122579, x=0.992571, y=0.121668): 0.122784560903\n    test 1472  7 7.000000000000 Mu(tan=0.122785, x=0.992546, y=0.121869): 0.122784560903\n    test 1473  7 6.988386512663 Chi(tan=0.122579, x=0.992571, y=0.121668): 0.122784560903\n    test 1474  7 7.003880991951 Xi(tan=0.122853, x=0.992538, y=0.121937): 0.122784560903\n\n    test 1475 14 14.067929480939 Phi(tan=0.250588, x=1.0, y=0.250588): 0.249328002843\n    test 1476 14 14.022626357697 Beta(tan=0.249747, x=1.0, y=0.249747): 0.249328002843\n    test 1477 14 13.977457317809 Theta(tan=0.24891, x=1.0, y=0.24891): 0.249328002843\n    test 1478 14 14.000000000000 Mu(tan=0.249328, x=0.970296, y=0.241922): 0.249328002843\n    test 1479 14 13.977463246186 Chi(tan=0.24891, x=1.0, y=0.24891), iteration=3: 0.249328002843\n    test 1480 14 14.007530515250 Xi(tan=0.249468, x=1.94924, y=0.486272), iteration=2: 0.249328002843\n\n    test 1481 14 14.067929480939 Phi(tan=0.250588, x=0.970008, y=0.243072): 0.249328002843\n    test 1482 14 14.022626357697 Beta(tan=0.249747, x=0.9702, y=0.242305): 0.249328002843\n    test 1483 14 13.977457317809 Theta(tan=0.24891, x=0.970391, y=0.24154): 0.249328002843\n    test 1484 14 14.000000000000 Mu(tan=0.249328, x=0.970296, y=0.241922): 0.249328002843\n    test 1485 14 13.977463246186 Chi(tan=0.24891, x=0.970391, y=0.24154): 0.249328002843\n    test 1486 14 14.007530515250 Xi(tan=0.249468, x=0.970264, y=0.242049): 0.249328002843\n\n    test 1487 21 21.096778912148 Phi(tan=0.385803, x=1.0, y=0.385803): 0.383864035035\n    test 1488 21 21.032239504096 Beta(tan=0.38451, x=1.0, y=0.38451): 0.383864035035\n    test 1489 21 20.967860810199 Theta(tan=0.383221, x=1.0, y=0.383221): 0.383864035035\n    test 1490 21 21.000000000000 Mu(tan=0.383864, x=0.93358, y=0.358368): 0.383864035035\n    test 1491 21 20.967879349935 Chi(tan=0.383221, x=1.0, y=0.383221), iteration=3: 0.383864035035\n    test 1492 21 21.010731065364 Xi(tan=0.384079, x=1.87541, y=0.720305), iteration=3: 0.383864035035\n\n    test 1493 21 21.096778912148 Phi(tan=0.385803, x=0.932974, y=0.359944): 0.383864035035\n    test 1494 21 21.032239504096 Beta(tan=0.38451, x=0.933379, y=0.358893): 0.383864035035\n    test 1495 21 20.967860810199 Theta(tan=0.383221, x=0.933781, y=0.357844): 0.383864035035\n    test 1496 21 21.000000000000 Mu(tan=0.383864, x=0.93358, y=0.358368): 0.383864035035\n    test 1497 21 20.967879349935 Chi(tan=0.383221, x=0.933781, y=0.357845): 0.383864035035\n    test 1498 21 21.010731065364 Xi(tan=0.384079, x=0.933513, y=0.358543): 0.383864035035\n\n    test 1499 28 28.119841850563 Phi(tan=0.534395, x=1.0, y=0.534395): 0.531709431661\n    test 1500 28 28.039928546523 Beta(tan=0.532604, x=1.0, y=0.532604): 0.531709431661\n    test 1501 28 27.960164870301 Theta(tan=0.530818, x=1.0, y=0.530818): 0.531709431661\n    test 1502 28 28.000000000000 Mu(tan=0.531709, x=0.882948, y=0.469472): 0.531709431661\n    test 1503 28 27.960204286276 Chi(tan=0.530819, x=1.0, y=0.530819), iteration=3: 0.531709431661\n    test 1504 28 28.013292185978 Xi(tan=0.532007, x=1.77361, y=0.94357), iteration=2: 0.531709431661\n\n    test 1505 28 28.119841850563 Phi(tan=0.534395, x=0.881964, y=0.471317): 0.531709431661\n    test 1506 28 28.039928546523 Beta(tan=0.532604, x=0.88262, y=0.470087): 0.531709431661\n    test 1507 28 27.960164870301 Theta(tan=0.530818, x=0.883274, y=0.468858): 0.531709431661\n    test 1508 28 28.000000000000 Mu(tan=0.531709, x=0.882948, y=0.469472): 0.531709431661\n    test 1509 28 27.960204286276 Chi(tan=0.530819, x=0.883273, y=0.468858): 0.531709431661\n    test 1510 28 28.013292185978 Xi(tan=0.532007, x=0.882839, y=0.469676): 0.531709431661\n\n    test 1511 35 35.135750772251 Phi(tan=0.703744, x=1.0, y=0.703744): 0.700207538210\n    test 1512 35 35.045237306558 Beta(tan=0.701385, x=1.0, y=0.701385): 0.700207538210\n    test 1513 35 34.954827299026 Theta(tan=0.699033, x=1.0, y=0.699033): 0.700207538210\n    test 1514 35 35.000000000000 Mu(tan=0.700208, x=0.819152, y=0.573576): 0.700207538210\n    test 1515 35 34.954893977158 Chi(tan=0.699035, x=1.0, y=0.699035), iteration=3: 0.700207538210\n    test 1516 35 35.015061857454 Xi(tan=0.700599, x=1.64536, y=1.15274), iteration=3: 0.700207538210\n\n    test 1517 35 35.135750772251 Phi(tan=0.703744, x=0.817791, y=0.575516): 0.700207538210\n    test 1518 35 35.045237306558 Beta(tan=0.701385, x=0.818699, y=0.574223): 0.700207538210\n    test 1519 35 34.954827299026 Theta(tan=0.699033, x=0.819604, y=0.57293): 0.700207538210\n    test 1520 35 35.000000000000 Mu(tan=0.700208, x=0.819152, y=0.573576): 0.700207538210\n    test 1521 35 34.954893977158 Chi(tan=0.699035, x=0.819603, y=0.572931): 0.700207538210\n    test 1522 35 35.015061857454 Xi(tan=0.700599, x=0.819001, y=0.573792): 0.700207538210\n\n    test 1523 42 42.143571223962 Phi(tan=0.904952, x=1.0, y=0.904952): 0.900404044298\n    test 1524 42 42.047852933259 Beta(tan=0.901917, x=1.0, y=0.901917): 0.900404044298\n    test 1525 42 41.952167704870 Theta(tan=0.898894, x=1.0, y=0.898894): 0.900404044298\n    test 1526 42 42.000000000000 Mu(tan=0.900404, x=0.743145, y=0.669131): 0.900404044298\n    test 1527 42 41.952263729127 Chi(tan=0.898897, x=1.0, y=0.898897), iteration=3: 0.900404044298\n    test 1528 42 42.015935495968 Xi(tan=0.900908, x=1.49259, y=1.34469), iteration=2: 0.900404044298\n\n    test 1529 42 42.143571223962 Phi(tan=0.904952, x=0.741466, y=0.670991): 0.900404044298\n    test 1530 42 42.047852933259 Beta(tan=0.901917, x=0.742586, y=0.669751): 0.900404044298\n    test 1531 42 41.952167704870 Theta(tan=0.898894, x=0.743703, y=0.66851): 0.900404044298\n    test 1532 42 42.000000000000 Mu(tan=0.900404, x=0.743145, y=0.669131): 0.900404044298\n    test 1533 42 41.952263729127 Chi(tan=0.898897, x=0.743702, y=0.668511): 0.900404044298\n    test 1534 42 42.015935495968 Xi(tan=0.900908, x=0.742959, y=0.669337): 0.900404044298\n\n    test 1535 49 49.142854800592 Phi(tan=1.15618, x=1.0, y=1.15618): 1.150368407221\n    test 1536 49 49.047623888378 Beta(tan=1.1523, x=1.0, y=1.1523): 1.150368407221\n    test 1537 49 48.952347927786 Theta(tan=1.14844, x=1.0, y=1.14844): 1.150368407221\n    test 1538 49 49.000000000000 Mu(tan=1.15037, x=0.656059, y=0.75471): 1.150368407221\n    test 1539 49 48.952469542367 Chi(tan=1.14844, x=1.0, y=1.14844), iteration=3: 1.150368407221\n    test 1540 49 49.015862036782 Xi(tan=1.15101, x=1.31759, y=1.51656), iteration=2: 1.150368407221\n\n    test 1541 49 49.142854800592 Phi(tan=1.15618, x=0.654175, y=0.756343): 1.150368407221\n    test 1542 49 49.047623888378 Beta(tan=1.1523, x=0.655431, y=0.755255): 1.150368407221\n    test 1543 49 48.952347927786 Theta(tan=1.14844, x=0.656686, y=0.754164): 1.150368407221\n    test 1544 49 49.000000000000 Mu(tan=1.15037, x=0.656059, y=0.75471): 1.150368407221\n    test 1545 49 48.952469542367 Chi(tan=1.14844, x=0.656685, y=0.754165): 1.150368407221\n    test 1546 49 49.015862036782 Xi(tan=1.15101, x=0.65585, y=0.754891): 1.150368407221\n\n    test 1547 56 56.133661968442 Phi(tan=1.49005, x=1.0, y=1.49005): 1.482560968513\n    test 1548 56 56.044568042538 Beta(tan=1.48505, x=1.0, y=1.48505): 1.482560968513\n    test 1549 56 55.955361525715 Theta(tan=1.48007, x=1.0, y=1.48007): 1.482560968513\n    test 1550 56 56.000000000000 Mu(tan=1.48256, x=0.559193, y=0.829038): 1.482560968513\n    test 1551 56 55.955498904140 Chi(tan=1.48008, x=1.0, y=1.48008), iteration=3: 1.482560968513\n    test 1552 56 56.014846771252 Xi(tan=1.48339, x=1.12298, y=1.66581), iteration=2: 1.482560968513\n\n    test 1553 56 56.133661968442 Phi(tan=1.49005, x=0.557257, y=0.83034): 1.482560968513\n    test 1554 56 56.044568042538 Beta(tan=1.48505, x=0.558548, y=0.829472): 1.482560968513\n    test 1555 56 55.955361525715 Theta(tan=1.48007, x=0.559839, y=0.828602): 1.482560968513\n    test 1556 56 56.000000000000 Mu(tan=1.48256, x=0.559193, y=0.829038): 1.482560968513\n    test 1557 56 55.955498904140 Chi(tan=1.48008, x=0.559837, y=0.828603): 1.482560968513\n    test 1558 56 56.014846771252 Xi(tan=1.48339, x=0.558978, y=0.829182): 1.482560968513\n\n    test 1559 63 63.116554283961 Phi(tan=1.97252, x=1.0, y=1.97252): 1.962610505505\n    test 1560 63 63.038870615950 Beta(tan=1.96591, x=1.0, y=1.96591): 1.962610505505\n    test 1561 63 62.961033158986 Theta(tan=1.95932, x=1.0, y=1.95932): 1.962610505505\n    test 1562 63 63.000000000000 Mu(tan=1.96261, x=0.45399, y=0.891007): 1.962610505505\n    test 1563 63 62.961171598977 Chi(tan=1.95933, x=1.0, y=1.95933), iteration=3: 1.962610505505\n    test 1564 63 63.012950815476 Xi(tan=1.96371, x=0.911653, y=1.79022), iteration=2: 1.962610505505\n\n    test 1565 63 63.116554283961 Phi(tan=1.97252, x=0.452177, y=0.891928): 1.962610505505\n    test 1566 63 63.038870615950 Beta(tan=1.96591, x=0.453386, y=0.891314): 1.962610505505\n    test 1567 63 62.961033158986 Theta(tan=1.95932, x=0.454596, y=0.890698): 1.962610505505\n    test 1568 63 63.000000000000 Mu(tan=1.96261, x=0.45399, y=0.891007): 1.962610505505\n    test 1569 63 62.961171598977 Chi(tan=1.95933, x=0.454594, y=0.890699): 1.962610505505\n    test 1570 63 63.012950815476 Xi(tan=1.96371, x=0.453789, y=0.891109): 1.962610505505\n\n    test 1571 70 70.092557449454 Phi(tan=2.76135, x=1.0, y=2.76135): 2.747477419455\n    test 1572 70 70.030872319297 Beta(tan=2.75209, x=1.0, y=2.75209): 2.747477419455\n    test 1573 70 69.969028142824 Theta(tan=2.74286, x=1.0, y=2.74286): 2.747477419455\n    test 1574 70 70.000000000000 Mu(tan=2.74748, x=0.34202, y=0.939693): 2.747477419455\n    test 1575 70 69.969150471863 Chi(tan=2.74288, x=1.0, y=2.74288), iteration=2: 2.747477419455\n    test 1576 70 70.010287292906 Xi(tan=2.74901, x=0.686773, y=1.88795), iteration=3: 2.747477419455\n\n    test 1577 70 70.092557449454 Phi(tan=2.76135, x=0.340502, y=0.940244): 2.747477419455\n    test 1578 70 70.030872319297 Beta(tan=2.75209, x=0.341514, y=0.939877): 2.747477419455\n    test 1579 70 69.969028142824 Theta(tan=2.74286, x=0.342528, y=0.939508): 2.747477419455\n    test 1580 70 70.000000000000 Mu(tan=2.74748, x=0.34202, y=0.939693): 2.747477419455\n    test 1581 70 69.969150471863 Chi(tan=2.74288, x=0.342526, y=0.939508): 2.747477419455\n    test 1582 70 70.010287292906 Xi(tan=2.74901, x=0.341851, y=0.939754): 2.747477419455\n\n    test 1583 77 77.063098225048 Phi(tan=4.35334, x=1.0, y=4.35334): 4.331475874284\n    test 1584 77 77.021048596835 Beta(tan=4.33875, x=1.0, y=4.33875): 4.331475874284\n    test 1585 77 76.978871802460 Theta(tan=4.3242, x=1.0, y=4.3242): 4.331475874284\n    test 1586 77 77.000000000000 Mu(tan=4.33148, x=0.224951, y=0.97437): 4.331475874284\n    test 1587 77 76.978961492015 Chi(tan=4.32423, x=1.0, y=4.32423), iteration=3: 4.331475874284\n    test 1588 77 77.007014500932 Xi(tan=4.3339, x=0.451683, y=1.95755), iteration=3: 4.331475874284\n\n    test 1589 77 77.063098225048 Phi(tan=4.35334, x=0.223878, y=0.974617): 4.331475874284\n    test 1590 77 77.021048596835 Beta(tan=4.33875, x=0.224593, y=0.974453): 4.331475874284\n    test 1591 77 76.978871802460 Theta(tan=4.3242, x=0.22531, y=0.974287): 4.331475874284\n    test 1592 77 77.000000000000 Mu(tan=4.33148, x=0.224951, y=0.97437): 4.331475874284\n    test 1593 77 76.978961492015 Chi(tan=4.32423, x=0.225309, y=0.974287): 4.331475874284\n    test 1594 77 77.007014500932 Xi(tan=4.3339, x=0.224832, y=0.974398): 4.331475874284\n\n    test 1595 84 84.029919429066 Phi(tan=9.5624, x=1.0, y=9.5624): 9.514364454223\n    test 1596 84 84.009981321799 Beta(tan=9.53033, x=1.0, y=9.53033): 9.514364454223\n    test 1597 84 83.989977604221 Theta(tan=9.49838, x=1.0, y=9.49838): 9.514364454223\n    test 1598 84 84.000000000000 Mu(tan=9.51436, x=0.104528, y=0.994522): 9.514364454223\n    test 1599 84 83.990021917793 Chi(tan=9.49845, x=1.0, y=9.49845), iteration=3: 9.514364454223\n    test 1600 84 84.003326493225 Xi(tan=9.51968, x=0.20988, y=1.99799), iteration=2: 9.514364454223\n\n    test 1601 84 84.029919429066 Phi(tan=9.5624, x=0.104009, y=0.994576): 9.514364454223\n    test 1602 84 84.009981321799 Beta(tan=9.53033, x=0.104355, y=0.99454): 9.514364454223\n    test 1603 84 83.989977604221 Theta(tan=9.49838, x=0.104702, y=0.994504): 9.514364454223\n    test 1604 84 84.000000000000 Mu(tan=9.51436, x=0.104528, y=0.994522): 9.514364454223\n    test 1605 84 83.990021917793 Chi(tan=9.49845, x=0.104702, y=0.994504): 9.514364454223\n    test 1606 84 84.003326493225 Xi(tan=9.51968, x=0.104471, y=0.994528): 9.514364454223\n\n    test 1607 91 90.994978117111 Phi(tan=-57.5792, x=-1, y=57.5792): -57.289961630759\n    test 1608 91 90.998324636576 Beta(tan=-57.3861, x=-1, y=57.3861): -57.289961630759\n    test 1609 91 91.001682407187 Theta(tan=-57.1937, x=-1, y=57.1937): -57.289961630759\n    test 1610 91 91.000000000000 Mu(tan=-57.29, x=-0.0174524, y=0.999848): -57.289961630759\n    test 1611 91 91.001674889056 Chi(tan=-57.1941, x=-1, y=57.1941), iteration=3: -57.289961630759\n    test 1612 91 90.999441640005 Xi(tan=-57.322, x=-0.035042, y=2.00867), iteration=3: -57.289961630759\n\n    test 1613 91 90.994978117111 Phi(tan=-57.5792, x=-0.0173648, y=0.999849): -57.289961630759\n    test 1614 91 90.998324636576 Beta(tan=-57.3861, x=-0.0174232, y=0.999848): -57.289961630760  FAILED, KNOWN (5.95323e-15), expected -57.289961630759\n    test 1615 91 91.001682407187 Theta(tan=-57.1937, x=-0.0174818, y=0.999847): -57.289961630760  FAILED, KNOWN (5.82921e-15), expected -57.289961630759\n    test 1616 91 91.000000000000 Mu(tan=-57.29, x=-0.0174524, y=0.999848): -57.289961630759\n    test 1617 91 91.001674889056 Chi(tan=-57.1941, x=-0.0174816, y=0.999847): -57.289961630760  FAILED, KNOWN (9.30193e-15), expected -57.289961630759\n    test 1618 91 90.999441640005 Xi(tan=-57.322, x=-0.0174427, y=0.999848): -57.289961630759\n\n    test 1619 98 97.960332584009 Phi(tan=-7.15129, x=-1, y=7.15129): -7.115369722384\n    test 1620 98 97.986766870880 Beta(tan=-7.12731, x=-1, y=7.12731): -7.115369722384\n    test 1621 98 98.013286645922 Theta(tan=-7.10342, x=-1, y=7.10342): -7.115369722384\n    test 1622 98 98.000000000000 Mu(tan=-7.11537, x=-0.139173, y=0.990268): -7.115369722384\n    test 1623 98 98.013228398375 Chi(tan=-7.10347, x=-1, y=7.10347), iteration=3: -7.115369722384\n    test 1624 98 97.995589824971 Xi(tan=-7.11935, x=-0.279443, y=1.98945), iteration=3: -7.115369722384\n\n    test 1625 98 97.960332584009 Phi(tan=-7.15129, x=-0.138487, y=0.990364): -7.115369722384\n    test 1626 98 97.986766870880 Beta(tan=-7.12731, x=-0.138944, y=0.9903): -7.115369722384\n    test 1627 98 98.013286645922 Theta(tan=-7.10342, x=-0.139403, y=0.990236): -7.115369722384\n    test 1628 98 98.000000000000 Mu(tan=-7.11537, x=-0.139173, y=0.990268): -7.115369722384\n    test 1629 98 98.013228398375 Chi(tan=-7.10347, x=-0.139402, y=0.990236): -7.115369722384\n    test 1630 98 97.995589824971 Xi(tan=-7.11935, x=-0.139097, y=0.990279): -7.115369722384\n\n    test 1631 105 104.928024147426 Phi(tan=-3.75089, x=-1, y=3.75089): -3.732050807569\n    test 1632 105 104.975990619809 Beta(tan=-3.73832, x=-1, y=3.73832): -3.732050807569\n    test 1633 105 105.024096873204 Theta(tan=-3.72578, x=-1, y=3.72578): -3.732050807569\n    test 1634 105 105.000000000000 Mu(tan=-3.73205, x=-0.258819, y=0.965926): -3.732050807569\n    test 1635 105 105.023996337790 Chi(tan=-3.72581, x=-1, y=3.72581), iteration=3: -3.732050807569\n    test 1636 105 104.991999000074 Xi(tan=-3.73414, x=-0.519691, y=1.9406), iteration=3: -3.732050807569\n\n    test 1637 105 104.928024147426 Phi(tan=-3.75089, x=-0.257605, y=0.96625): -3.732050807569\n    test 1638 105 104.975990619809 Beta(tan=-3.73832, x=-0.258414, y=0.966034): -3.732050807569\n    test 1639 105 105.024096873204 Theta(tan=-3.72578, x=-0.259225, y=0.965817): -3.732050807569\n    test 1640 105 105.000000000000 Mu(tan=-3.73205, x=-0.258819, y=0.965926): -3.732050807569\n    test 1641 105 105.023996337790 Chi(tan=-3.72581, x=-0.259224, y=0.965817): -3.732050807569\n    test 1642 105 104.991999000074 Xi(tan=-3.73414, x=-0.258684, y=0.965962): -3.732050807569\n\n    test 1643 112 111.899959803709 Phi(tan=-2.48758, x=-1, y=2.48758): -2.475086853416\n    test 1644 112 111.966633129887 Beta(tan=-2.47924, x=-1, y=2.47924): -2.475086853416\n    test 1645 112 112.033467905647 Theta(tan=-2.47093, x=-1, y=2.47093): -2.475086853416\n    test 1646 112 112.000000000000 Mu(tan=-2.47509, x=-0.374607, y=0.927184): -2.475086853416\n    test 1647 112 112.033339197227 Chi(tan=-2.47095, x=-1, y=2.47095), iteration=3: -2.475086853416\n    test 1648 112 111.988881847875 Xi(tan=-2.47647, x=-0.752216, y=1.86284), iteration=3: -2.475086853416\n\n    test 1649 112 111.899959803709 Phi(tan=-2.48758, x=-0.372987, y=0.927837): -2.475086853416\n    test 1650 112 111.966633129887 Beta(tan=-2.47924, x=-0.374067, y=0.927402): -2.475086853416\n    test 1651 112 112.033467905647 Theta(tan=-2.47093, x=-0.375148, y=0.926965): -2.475086853416\n    test 1652 112 112.000000000000 Mu(tan=-2.47509, x=-0.374607, y=0.927184): -2.475086853416\n    test 1653 112 112.033339197227 Chi(tan=-2.47095, x=-0.375146, y=0.926966): -2.475086853416\n    test 1654 112 111.988881847875 Xi(tan=-2.47647, x=-0.374427, y=0.927257): -2.475086853416\n\n    test 1655 119 118.877801825189 Phi(tan=-1.81316, x=-1, y=1.81316): -1.804047755271\n    test 1656 119 118.959249130251 Beta(tan=-1.80708, x=-1, y=1.80708): -1.804047755271\n    test 1657 119 119.040841846602 Theta(tan=-1.80102, x=-1, y=1.80102): -1.804047755271\n    test 1658 119 119.000000000000 Mu(tan=-1.80405, x=-0.48481, y=0.87462): -1.804047755271\n    test 1659 119 119.040702010928 Chi(tan=-1.80103, x=-1, y=1.80103), iteration=3: -1.804047755271\n    test 1660 119 118.986423296510 Xi(tan=-1.80506, x=-0.973556, y=1.75732), iteration=2: -1.804047755271\n\n    test 1661 119 118.877801825189 Phi(tan=-1.81316, x=-0.482943, y=0.875652): -1.804047755271\n    test 1662 119 118.959249130251 Beta(tan=-1.80708, x=-0.484187, y=0.874964): -1.804047755271\n    test 1663 119 119.040841846602 Theta(tan=-1.80102, x=-0.485433, y=0.874274): -1.804047755271\n    test 1664 119 119.000000000000 Mu(tan=-1.80405, x=-0.48481, y=0.87462): -1.804047755271\n    test 1665 119 119.040702010928 Chi(tan=-1.80103, x=-0.485431, y=0.874275): -1.804047755271\n    test 1666 119 118.986423296510 Xi(tan=-1.80506, x=-0.484602, y=0.874735): -1.804047755271\n\n    test 1667 126 125.862870188589 Phi(tan=-1.38333, x=-1, y=1.38333): -1.376381920471\n    test 1668 126 125.954278157197 Beta(tan=-1.37869, x=-1, y=1.37869): -1.376381920471\n    test 1669 126 126.045781505815 Theta(tan=-1.37407, x=-1, y=1.37407): -1.376381920471\n    test 1670 126 126.000000000000 Mu(tan=-1.37638, x=-0.587785, y=0.809017): -1.376381920471\n    test 1671 126 126.045647308130 Chi(tan=-1.37408, x=-1, y=1.37408), iteration=3: -1.376381920471\n    test 1672 126 125.984769594047 Xi(tan=-1.37715, x=-1.18042, y=1.62561), iteration=2: -1.376381920471\n\n    test 1673 126 125.862870188589 Phi(tan=-1.38333, x=-0.585847, y=0.810421): -1.376381920471\n    test 1674 126 125.954278157197 Beta(tan=-1.37869, x=-0.587139, y=0.809486): -1.376381920471\n    test 1675 126 126.045781505815 Theta(tan=-1.37407, x=-0.588431, y=0.808547): -1.376381920471\n    test 1676 126 126.000000000000 Mu(tan=-1.37638, x=-0.587785, y=0.809017): -1.376381920471\n    test 1677 126 126.045647308130 Chi(tan=-1.37408, x=-0.58843, y=0.808548): -1.376381920471\n    test 1678 126 125.984769594047 Xi(tan=-1.37715, x=-0.58757, y=0.809173): -1.376381920471\n\n    test 1679 133 132.856063347719 Phi(tan=-1.07778, x=-1, y=1.07778): -1.072368710025\n    test 1680 133 132.952018246366 Beta(tan=-1.07417, x=-1, y=1.07417): -1.072368710025\n    test 1681 133 133.047996165770 Theta(tan=-1.07057, x=-1, y=1.07057): -1.072368710025\n    test 1682 133 133.000000000000 Mu(tan=-1.07237, x=-0.681998, y=0.731354): -1.072368710025\n    test 1683 133 133.047881115076 Chi(tan=-1.07057, x=-1, y=1.07057), iteration=3: -1.072368710025\n    test 1684 133 132.984019576906 Xi(tan=-1.07297, x=-1.36971, y=1.46966), iteration=2: -1.072368710025\n\n    test 1685 133 132.856063347719 Phi(tan=-1.07778, x=-0.680159, y=0.733065): -1.072368710025\n    test 1686 133 132.952018246366 Beta(tan=-1.07417, x=-0.681386, y=0.731925): -1.072368710025\n    test 1687 133 133.047996165770 Theta(tan=-1.07057, x=-0.682611, y=0.730782): -1.072368710025\n    test 1688 133 133.000000000000 Mu(tan=-1.07237, x=-0.681998, y=0.731354): -1.072368710025\n    test 1689 133 133.047881115076 Chi(tan=-1.07057, x=-0.682609, y=0.730784): -1.072368710025\n    test 1690 133 132.984019576906 Xi(tan=-1.07297, x=-0.681794, y=0.731544): -1.072368710025\n\n    test 1691 140 139.857802229338 Phi(tan=-0.843338, x=-1, y=0.843338): -0.839099631177\n    test 1692 140 139.952607597930 Beta(tan=-0.84051, x=-1, y=0.84051): -0.839099631177\n    test 1693 140 140.047358211970 Theta(tan=-0.837692, x=-1, y=0.837692): -0.839099631177\n    test 1694 140 140.000000000000 Mu(tan=-0.8391, x=-0.766044, y=0.642788): -0.839099631177\n    test 1695 140 140.047270461053 Chi(tan=-0.837695, x=-1, y=0.837695), iteration=3: -0.839099631177\n    test 1696 140 139.984218660625 Xi(tan=-0.839569, x=-1.53861, y=1.29177), iteration=3: -0.839099631177\n\n    test 1697 140 139.857802229338 Phi(tan=-0.843338, x=-0.764447, y=0.644687): -0.839099631177\n    test 1698 140 139.952607597930 Beta(tan=-0.84051, x=-0.765512, y=0.643421): -0.839099631177\n    test 1699 140 140.047358211970 Theta(tan=-0.837692, x=-0.766575, y=0.642154): -0.839099631177\n    test 1700 140 140.000000000000 Mu(tan=-0.8391, x=-0.766044, y=0.642788): -0.839099631177\n    test 1701 140 140.047270461053 Chi(tan=-0.837695, x=-0.766574, y=0.642155): -0.839099631177\n    test 1702 140 139.984218660625 Xi(tan=-0.839569, x=-0.765867, y=0.642999): -0.839099631177\n\n    test 1703 147 146.868001375396 Phi(tan=-0.652688, x=-1, y=0.652688): -0.649407593198\n    test 1704 147 146.956015447561 Beta(tan=-0.6505, x=-1, y=0.6505): -0.649407593198\n    test 1705 147 147.043909788845 Theta(tan=-0.648319, x=-1, y=0.648319): -0.649407593198\n    test 1706 147 147.000000000000 Mu(tan=-0.649408, x=-0.838671, y=0.544639): -0.649407593198\n    test 1707 147 147.043851339199 Chi(tan=-0.64832, x=-1, y=0.64832), iteration=3: -0.649407593198\n    test 1708 147 146.985355941570 Xi(tan=-0.649771, x=-1.68459, y=1.0946), iteration=3: -0.649407593198\n\n    test 1709 147 146.868001375396 Phi(tan=-0.652688, x=-0.837414, y=0.54657): -0.649407593198\n    test 1710 147 146.956015447561 Beta(tan=-0.6505, x=-0.838252, y=0.545283): -0.649407593198\n    test 1711 147 147.043909788845 Theta(tan=-0.648319, x=-0.839088, y=0.543996): -0.649407593198\n    test 1712 147 147.000000000000 Mu(tan=-0.649408, x=-0.838671, y=0.544639): -0.649407593198\n    test 1713 147 147.043851339199 Chi(tan=-0.64832, x=-0.839087, y=0.543997): -0.649407593198\n    test 1714 147 146.985355941570 Xi(tan=-0.649771, x=-0.838531, y=0.544853): -0.649407593198\n\n    test 1715 154 153.886069836452 Phi(tan=-0.490196, x=-1, y=0.490196): -0.487732588566\n    test 1716 154 153.962042898489 Beta(tan=-0.488553, x=-1, y=0.488553): -0.487732588566\n    test 1717 154 154.037859302268 Theta(tan=-0.486915, x=-1, y=0.486915): -0.487732588566\n    test 1718 154 154.000000000000 Mu(tan=-0.487733, x=-0.898794, y=0.438371): -0.487732588566\n    test 1719 154 154.037826635034 Chi(tan=-0.486916, x=-1, y=0.486916), iteration=3: -0.487732588566\n    test 1720 154 153.987364628293 Xi(tan=-0.488006, x=-1.80546, y=0.881077), iteration=3: -0.487732588566\n\n    test 1721 154 153.886069836452 Phi(tan=-0.490196, x=-0.897921, y=0.440157): -0.487732588566\n    test 1722 154 153.962042898489 Beta(tan=-0.488553, x=-0.898503, y=0.438966): -0.487732588566\n    test 1723 154 154.037859302268 Theta(tan=-0.486915, x=-0.899084, y=0.437777): -0.487732588566\n    test 1724 154 154.000000000000 Mu(tan=-0.487733, x=-0.898794, y=0.438371): -0.487732588566\n    test 1725 154 154.037826635034 Chi(tan=-0.486916, x=-0.899083, y=0.437778): -0.487732588566\n    test 1726 154 153.987364628293 Xi(tan=-0.488006, x=-0.898697, y=0.438569): -0.487732588566\n\n    test 1727 161 160.910942745263 Phi(tan=-0.346067, x=-1, y=0.346067): -0.344327613290\n    test 1728 161 160.970333898803 Beta(tan=-0.344907, x=-1, y=0.344907): -0.344327613290\n    test 1729 161 161.029568209135 Theta(tan=-0.34375, x=-1, y=0.34375): -0.344327613290\n    test 1730 161 161.000000000000 Mu(tan=-0.344328, x=-0.945519, y=0.325568): -0.344327613290\n    test 1731 161 161.029554130079 Chi(tan=-0.343751, x=-1, y=0.343751), iteration=2: -0.344327613290\n    test 1732 161 160.990125827674 Xi(tan=-0.34452, x=-1.89942, y=0.654387), iteration=3: -0.344327613290\n\n    test 1733 161 160.910942745263 Phi(tan=-0.346067, x=-0.945011, y=0.327037): -0.344327613290\n    test 1734 161 160.970333898803 Beta(tan=-0.344907, x=-0.94535, y=0.326058): -0.344327613290\n    test 1735 161 161.029568209135 Theta(tan=-0.34375, x=-0.945686, y=0.32508): -0.344327613290\n    test 1736 161 161.000000000000 Mu(tan=-0.344328, x=-0.945519, y=0.325568): -0.344327613290\n    test 1737 161 161.029554130079 Chi(tan=-0.343751, x=-0.945686, y=0.32508): -0.344327613290\n    test 1738 161 160.990125827674 Xi(tan=-0.34452, x=-0.945462, y=0.325731): -0.344327613290\n\n    test 1739 168 167.941142537455 Phi(tan=-0.21363, x=-1, y=0.21363): -0.212556561670\n    test 1740 168 167.980395911211 Beta(tan=-0.212914, x=-1, y=0.212914): -0.212556561670\n    test 1741 168 168.019529073263 Theta(tan=-0.2122, x=-1, y=0.2122): -0.212556561670\n    test 1742 168 168.000000000000 Mu(tan=-0.212557, x=-0.978148, y=0.207912): -0.212556561670\n    test 1743 168 168.019525279620 Chi(tan=-0.2122, x=-1, y=0.2122), iteration=3: -0.212556561670\n    test 1744 168 167.993475503952 Xi(tan=-0.212676, x=-1.96503, y=0.417914), iteration=2: -0.212556561670\n\n    test 1745 168 167.941142537455 Phi(tan=-0.21363, x=-0.977934, y=0.208916): -0.212556561670\n    test 1746 168 167.980395911211 Beta(tan=-0.212914, x=-0.978076, y=0.208246): -0.212556561670\n    test 1747 168 168.019529073263 Theta(tan=-0.2122, x=-0.978218, y=0.207578): -0.212556561670\n    test 1748 168 168.000000000000 Mu(tan=-0.212557, x=-0.978148, y=0.207912): -0.212556561670\n    test 1749 168 168.019525279620 Chi(tan=-0.2122, x=-0.978218, y=0.207578): -0.212556561670\n    test 1750 168 167.993475503952 Xi(tan=-0.212676, x=-0.978124, y=0.208023): -0.212556561670\n\n    test 1751 175 174.974866680328 Phi(tan=-0.0879307, x=-1, y=0.0879307): -0.087488663526\n    test 1752 175 174.991629164161 Beta(tan=-0.0876359, x=-1, y=0.0876359): -0.087488663526\n    test 1753 175 175.008336301828 Theta(tan=-0.0873421, x=-1, y=0.0873421): -0.087488663526\n    test 1754 175 175.000000000000 Mu(tan=-0.0874887, x=-0.996195, y=0.0871557): -0.087488663526\n    test 1755 175 175.008336017206 Chi(tan=-0.0873421, x=-1, y=0.0873421), iteration=2: -0.087488663526\n    test 1756 175 174.997214222263 Xi(tan=-0.0875377, x=-2.00133, y=0.175191), iteration=2: -0.087488663526\n\n    test 1757 175 174.974866680328 Phi(tan=-0.0879307, x=-0.996156, y=0.0875927): -0.087488663526\n    test 1758 175 174.991629164161 Beta(tan=-0.0876359, x=-0.996182, y=0.0873013): -0.087488663526\n    test 1759 175 175.008336301828 Theta(tan=-0.0873421, x=-0.996207, y=0.0870108): -0.087488663526\n    test 1760 175 175.000000000000 Mu(tan=-0.0874887, x=-0.996195, y=0.0871557): -0.087488663526\n    test 1761 175 175.008336017206 Chi(tan=-0.0873421, x=-0.996207, y=0.0870108): -0.087488663526\n    test 1762 175 174.997214222263 Xi(tan=-0.0875377, x=-0.99619, y=0.0872042): -0.087488663526\n\n    test 1763 182 182.010096724503 Phi(tan=0.0350972, x=-1, y=-0.0350972): 0.034920769492\n    test 1764 182 182.003362751638 Beta(tan=0.0349795, x=-1, y=-0.0349795): 0.034920769492\n    test 1765 182 181.996651301418 Theta(tan=0.0348623, x=-1, y=-0.0348623): 0.034920769492\n    test 1766 182 182.000000000000 Mu(tan=0.0349208, x=-0.999391, y=-0.0348995): 0.034920769492\n    test 1767 182 181.996651319751 Chi(tan=0.0348623, x=-1, y=-0.0348623), iteration=2: 0.034920769492\n    test 1768 182 182.001119098649 Xi(tan=0.0349403, x=-2.00775, y=-0.0701516), iteration=2: 0.034920769492\n\n    test 1769 182 182.010096724503 Phi(tan=0.0350972, x=-0.999385, y=-0.0350756): 0.034920769492\n    test 1770 182 182.003362751638 Beta(tan=0.0349795, x=-0.999389, y=-0.0349582): 0.034920769492\n    test 1771 182 181.996651301418 Theta(tan=0.0348623, x=-0.999393, y=-0.0348411): 0.034920769492\n    test 1772 182 182.000000000000 Mu(tan=0.0349208, x=-0.999391, y=-0.0348995): 0.034920769492\n    test 1773 182 181.996651319751 Chi(tan=0.0348623, x=-0.999393, y=-0.0348411): 0.034920769492\n    test 1774 182 182.001119098649 Xi(tan=0.0349403, x=-0.99939, y=-0.034919): 0.034920769492\n\n    test 1775 189 189.044721740866 Phi(tan=0.159185, x=-1, y=-0.159185): 0.158384440325\n    test 1776 189 189.014895327636 Beta(tan=0.158651, x=-1, y=-0.158651): 0.158384440325\n    test 1777 189 188.985164013992 Theta(tan=0.158119, x=-1, y=-0.158119): 0.158384440325\n    test 1778 189 189.000000000000 Mu(tan=0.158384, x=-0.987688, y=-0.156434): 0.158384440325\n    test 1779 189 188.985165645705 Chi(tan=0.158119, x=-1, y=-0.158119), iteration=3: 0.158384440325\n    test 1780 189 189.004957222799 Xi(tan=0.158473, x=-1.98422, y=-0.314445), iteration=3: 0.158384440325\n\n    test 1781 189 189.044721740866 Phi(tan=0.159185, x=-0.987566, y=-0.157205): 0.158384440325\n    test 1782 189 189.014895327636 Beta(tan=0.158651, x=-0.987648, y=-0.156691): 0.158384440325\n    test 1783 189 188.985164013992 Theta(tan=0.158119, x=-0.987729, y=-0.156179): 0.158384440325\n    test 1784 189 189.000000000000 Mu(tan=0.158384, x=-0.987688, y=-0.156434): 0.158384440325\n    test 1785 189 188.985165645705 Chi(tan=0.158119, x=-0.987729, y=-0.156179): 0.158384440325\n    test 1786 189 189.004957222799 Xi(tan=0.158473, x=-0.987675, y=-0.15652): 0.158384440325\n\n    test 1787 196 196.076667971970 Phi(tan=0.288194, x=-1, y=-0.288194): 0.286745385759\n    test 1788 196 196.025537779325 Beta(tan=0.287228, x=-1, y=-0.287228): 0.286745385759\n    test 1789 196 195.974552923462 Theta(tan=0.286265, x=-1, y=-0.286265): 0.286745385759\n    test 1790 196 196.000000000000 Mu(tan=0.286745, x=-0.961262, y=-0.275637): 0.286745385759\n    test 1791 196 195.974561610097 Chi(tan=0.286265, x=-1, y=-0.286265), iteration=2: 0.286745385759\n    test 1792 196 196.008499713199 Xi(tan=0.286906, x=-1.93107, y=-0.554036), iteration=3: 0.286745385759\n\n    test 1793 196 196.076667971970 Phi(tan=0.288194, x=-0.960892, y=-0.276923): 0.286745385759\n    test 1794 196 196.025537779325 Beta(tan=0.287228, x=-0.961139, y=-0.276066): 0.286745385759\n    test 1795 196 195.974552923462 Theta(tan=0.286265, x=-0.961384, y=-0.27521): 0.286745385759\n    test 1796 196 196.000000000000 Mu(tan=0.286745, x=-0.961262, y=-0.275637): 0.286745385759\n    test 1797 196 195.974561610097 Chi(tan=0.286265, x=-0.961384, y=-0.275211): 0.286745385759\n    test 1798 196 196.008499713199 Xi(tan=0.286906, x=-0.961221, y=-0.27578): 0.286745385759\n\n    test 1799 203 203.104025981749 Phi(tan=0.426619, x=-1, y=-0.426619): 0.424474816210\n    test 1800 203 203.034655104114 Beta(tan=0.425189, x=-1, y=-0.425189): 0.424474816210\n    test 1801 203 202.965445675486 Theta(tan=0.423763, x=-1, y=-0.423763): 0.424474816210\n    test 1802 203 203.000000000000 Mu(tan=0.424475, x=-0.920505, y=-0.390731): 0.424474816210\n    test 1803 203 202.965469367936 Chi(tan=0.423764, x=-1, y=-0.423764), iteration=3: 0.424474816210\n    test 1804 203 203.011535517974 Xi(tan=0.424712, x=-1.84912, y=-0.785343), iteration=2: 0.424474816210\n\n    test 1805 203 203.104025981749 Phi(tan=0.426619, x=-0.919794, y=-0.392402): 0.424474816210\n    test 1806 203 203.034655104114 Beta(tan=0.425189, x=-0.920268, y=-0.391288): 0.424474816210\n    test 1807 203 202.965445675486 Theta(tan=0.423763, x=-0.92074, y=-0.390176): 0.424474816210\n    test 1808 203 203.000000000000 Mu(tan=0.424475, x=-0.920505, y=-0.390731): 0.424474816210\n    test 1809 203 202.965469367936 Chi(tan=0.423764, x=-0.92074, y=-0.390176): 0.424474816210\n    test 1810 203 203.011535517974 Xi(tan=0.424712, x=-0.920426, y=-0.390916): 0.424474816210\n\n    test 1811 210 210.125166807834 Phi(tan=0.580267, x=-1, y=-0.580267): 0.577350269190\n    test 1812 210 210.041704779944 Beta(tan=0.578321, x=-1, y=-0.578321): 0.577350269190\n    test 1813 210 209.958382432479 Theta(tan=0.576382, x=-1, y=-0.576382): 0.577350269190\n    test 1814 210 210.000000000000 Mu(tan=0.57735, x=-0.866025, y=-0.5): 0.577350269190\n    test 1815 210 209.958429134161 Chi(tan=0.576383, x=-1, y=-0.576383), iteration=2: 0.577350269190\n    test 1816 210 210.013884093401 Xi(tan=0.577673, x=-1.73958, y=-1.00491), iteration=2: 0.577350269190\n\n    test 1817 210 210.125166807834 Phi(tan=0.580267, x=-0.864931, y=-0.501891): 0.577350269190\n    test 1818 210 210.041704779944 Beta(tan=0.578321, x=-0.865661, y=-0.50063): 0.577350269190\n    test 1819 210 209.958382432479 Theta(tan=0.576382, x=-0.866388, y=-0.499371): 0.577350269190\n    test 1820 210 210.000000000000 Mu(tan=0.57735, x=-0.866025, y=-0.5): 0.577350269190\n    test 1821 210 209.958429134161 Chi(tan=0.576383, x=-0.866388, y=-0.499372): 0.577350269190\n    test 1822 210 210.013884093401 Xi(tan=0.577673, x=-0.865904, y=-0.50021): 0.577350269190\n\n    test 1823 217 217.138839575219 Phi(tan=0.75736, x=-1, y=-0.75736): 0.753554050103\n    test 1824 217 217.046269197118 Beta(tan=0.754821, x=-1, y=-0.754821): 0.753554050103\n    test 1825 217 216.953783990372 Theta(tan=0.75229, x=-1, y=-0.75229): 0.753554050103\n    test 1826 217 217.000000000000 Mu(tan=0.753554, x=-0.798636, y=-0.601815): 0.753554050103\n    test 1827 217 216.953859077076 Chi(tan=0.752292, x=-1, y=-0.752292), iteration=3: 0.753554050103\n    test 1828 217 217.015406173898 Xi(tan=0.753976, x=-1.60412, y=-1.20947), iteration=3: 0.753554050103\n\n    test 1829 217 217.138839575219 Phi(tan=0.75736, x=-0.797175, y=-0.603749): 0.753554050103\n    test 1830 217 217.046269197118 Beta(tan=0.754821, x=-0.798149, y=-0.60246): 0.753554050103\n    test 1831 217 216.953783990372 Theta(tan=0.75229, x=-0.799121, y=-0.601171): 0.753554050103\n    test 1832 217 217.000000000000 Mu(tan=0.753554, x=-0.798636, y=-0.601815): 0.753554050103\n    test 1833 217 216.953859077076 Chi(tan=0.752292, x=-0.79912, y=-0.601172): 0.753554050103\n    test 1834 217 217.015406173898 Xi(tan=0.753976, x=-0.798474, y=-0.60203): 0.753554050103\n\n    test 1835 224 224.144244585156 Phi(tan=0.970566, x=-1, y=-0.970566): 0.965688774807\n    test 1836 224 224.048080179626 Beta(tan=0.967312, x=-1, y=-0.967312): 0.965688774807\n    test 1837 224 223.951926502986 Theta(tan=0.964069, x=-1, y=-0.964069): 0.965688774807\n    test 1838 224 224.000000000000 Mu(tan=0.965689, x=-0.71934, y=-0.694658): 0.965688774807\n    test 1839 224 223.952030495532 Chi(tan=0.964072, x=-1, y=-0.964072), iteration=2: 0.965688774807\n    test 1840 224 224.016011983610 Xi(tan=0.966229, x=-1.44475, y=-1.39596), iteration=2: 0.965688774807\n\n    test 1841 224 224.144244585156 Phi(tan=0.970566, x=-0.717589, y=-0.696467): 0.965688774807\n    test 1842 224 224.048080179626 Beta(tan=0.967312, x=-0.718757, y=-0.695262): 0.965688774807\n    test 1843 224 223.951926502986 Theta(tan=0.964069, x=-0.719922, y=-0.694055): 0.965688774807\n    test 1844 224 224.000000000000 Mu(tan=0.965689, x=-0.71934, y=-0.694658): 0.965688774807\n    test 1845 224 223.952030495532 Chi(tan=0.964072, x=-0.719921, y=-0.694056): 0.965688774807\n    test 1846 224 224.016011983610 Xi(tan=0.966229, x=-0.719146, y=-0.694859): 0.965688774807\n\n    test 1847 231 231.141077842653 Phi(tan=1.24113, x=-1, y=-1.24113): 1.234897156535\n    test 1848 231 231.047034210293 Beta(tan=1.23697, x=-1, y=-1.23697): 1.234897156535\n    test 1849 231 230.952924380812 Theta(tan=1.23282, x=-1, y=-1.23282): 1.234897156535\n    test 1850 231 231.000000000000 Mu(tan=1.2349, x=-0.62932, y=-0.777146): 1.234897156535\n    test 1851 231 230.953051749472 Chi(tan=1.23283, x=-1, y=-1.23283), iteration=3: 1.234897156535\n    test 1852 231 231.015666416855 Xi(tan=1.23559, x=-1.26387, y=-1.56162), iteration=3: 1.234897156535\n\n    test 1853 231 231.141077842654 Phi(tan=1.24113, x=-0.627405, y=-0.778693): 1.234897156535\n    test 1854 231 231.047034210293 Beta(tan=1.23697, x=-0.628682, y=-0.777662): 1.234897156535\n    test 1855 231 230.952924380812 Theta(tan=1.23282, x=-0.629959, y=-0.776629): 1.234897156535\n    test 1856 231 231.000000000000 Mu(tan=1.2349, x=-0.62932, y=-0.777146): 1.234897156535\n    test 1857 231 230.953051749472 Chi(tan=1.23283, x=-0.629957, y=-0.77663): 1.234897156535\n    test 1858 231 231.015666416855 Xi(tan=1.23559, x=-0.629108, y=-0.777318): 1.234897156535\n\n    test 1859 238 238.129545093885 Phi(tan=1.60842, x=-1, y=-1.60842): 1.600334529041\n    test 1860 238 238.043197624299 Beta(tan=1.60302, x=-1, y=-1.60302): 1.600334529041\n    test 1861 238 237.956722543300 Theta(tan=1.59765, x=-1, y=-1.59765): 1.600334529041\n    test 1862 238 238.000000000000 Mu(tan=1.60033, x=-0.529919, y=-0.848048): 1.600334529041\n    test 1863 238 237.956861886827 Chi(tan=1.59766, x=-1, y=-1.59766), iteration=3: 1.600334529041\n    test 1864 238 238.014390916077 Xi(tan=1.60123, x=-1.06417, y=-1.70398), iteration=3: 1.600334529041\n\n    test 1865 238 238.129545093885 Phi(tan=1.60842, x=-0.528, y=-0.849244): 1.600334529041\n    test 1866 238 238.043197624299 Beta(tan=1.60302, x=-0.52928, y=-0.848447): 1.600334529041\n    test 1867 238 237.956722543300 Theta(tan=1.59765, x=-0.53056, y=-0.847648): 1.600334529041\n    test 1868 238 238.000000000000 Mu(tan=1.60033, x=-0.529919, y=-0.848048): 1.600334529041\n    test 1869 238 237.956861886827 Chi(tan=1.59766, x=-0.530558, y=-0.847649): 1.600334529041\n    test 1870 238 238.014390916077 Xi(tan=1.60123, x=-0.529706, y=-0.848181): 1.600334529041\n\n    test 1871 245 245.110345489960 Phi(tan=2.15533, x=-1, y=-2.15533): 2.144506920510\n    test 1872 245 245.036801688087 Beta(tan=2.14811, x=-1, y=-2.14811): 2.144506920510\n    test 1873 245 244.963098707662 Theta(tan=2.14091, x=-1, y=-2.14091): 2.144506920510\n    test 1874 245 245.000000000000 Mu(tan=2.14451, x=-0.422618, y=-0.906308): 2.144506920510\n    test 1875 245 244.963234330104 Chi(tan=2.14092, x=-1, y=-2.14092), iteration=2: 2.144506920510\n    test 1876 245 245.012261984604 Xi(tan=2.14571, x=-0.848642, y=-1.82094), iteration=3: 2.144506920510\n\n    test 1877 245 245.110345489960 Phi(tan=2.15533, x=-0.420872, y=-0.90712): 2.144506920510\n    test 1878 245 245.036801688087 Beta(tan=2.14811, x=-0.422036, y=-0.906579): 2.144506920510\n    test 1879 245 244.963098707662 Theta(tan=2.14091, x=-0.423202, y=-0.906035): 2.144506920510\n    test 1880 245 245.000000000000 Mu(tan=2.14451, x=-0.422618, y=-0.906308): 2.144506920510\n    test 1881 245 244.963234330104 Chi(tan=2.14092, x=-0.4232, y=-0.906036): 2.144506920510\n    test 1882 245 245.012261984604 Xi(tan=2.14571, x=-0.422424, y=-0.906398): 2.144506920510\n\n    test 1883 252 252.084626804899 Phi(tan=3.09322, x=-1, y=-3.09322): 3.077683537175\n    test 1884 252 252.028228084417 Beta(tan=3.08285, x=-1, y=-3.08285): 3.077683537175\n    test 1885 252 251.971675808314 Theta(tan=3.07251, x=-1, y=-3.07251): 3.077683537175\n    test 1886 252 252.000000000000 Mu(tan=3.07768, x=-0.309017, y=-0.951057): 3.077683537175\n    test 1887 252 251.971790388449 Chi(tan=3.07254, x=-1, y=-3.07254), iteration=3: 3.077683537175\n    test 1888 252 252.009406472364 Xi(tan=3.0794, x=-0.620495, y=-1.91076), iteration=3: 3.077683537175\n\n    test 1889 252 252.084626804899 Phi(tan=3.09322, x=-0.307612, y=-0.951512): 3.077683537175\n    test 1890 252 252.028228084417 Beta(tan=3.08285, x=-0.308548, y=-0.951209): 3.077683537175\n    test 1891 252 251.971675808314 Theta(tan=3.07251, x=-0.309487, y=-0.950904): 3.077683537175\n    test 1892 252 252.000000000000 Mu(tan=3.07768, x=-0.309017, y=-0.951057): 3.077683537175\n    test 1893 252 251.971790388449 Chi(tan=3.07254, x=-0.309485, y=-0.950904): 3.077683537175\n    test 1894 252 252.009406472364 Xi(tan=3.0794, x=-0.308861, y=-0.951107): 3.077683537175\n\n    test 1895 259 259.053915611440 Phi(tan=5.17053, x=-1, y=-5.17053): 5.144554015970\n    test 1896 259 259.017985844271 Beta(tan=5.15319, x=-1, y=-5.15319): 5.144554015970\n    test 1897 259 258.981943992803 Theta(tan=5.13591, x=-1, y=-5.13591): 5.144554015970\n    test 1898 259 259.000000000000 Mu(tan=5.14455, x=-0.190809, y=-0.981627): 5.144554015970\n    test 1899 259 258.982021780770 Chi(tan=5.13595, x=-1, y=-5.13595), iteration=2: 5.144554015970\n    test 1900 259 259.005993953740 Xi(tan=5.14743, x=-0.383125, y=-1.97211), iteration=3: 5.144554015970\n\n    test 1901 259 259.053915611440 Phi(tan=5.17053, x=-0.189885, y=-0.981806): 5.144554015970\n    test 1902 259 259.017985844271 Beta(tan=5.15319, x=-0.190501, y=-0.981687): 5.144554015970\n    test 1903 259 258.981943992803 Theta(tan=5.13591, x=-0.191118, y=-0.981567): 5.144554015970\n    test 1904 259 259.000000000000 Mu(tan=5.14455, x=-0.190809, y=-0.981627): 5.144554015970\n    test 1905 259 258.982021780770 Chi(tan=5.13595, x=-0.191117, y=-0.981567): 5.144554015970\n    test 1906 259 259.005993953740 Xi(tan=5.14743, x=-0.190706, y=-0.981647): 5.144554015970\n\n    test 1907 266 266.020026926530 Phi(tan=14.3729, x=-1, y=-14.3729): 14.300666256712\n    test 1908 266 266.006681184269 Beta(tan=14.3247, x=-1, y=-14.3247): 14.300666256712\n    test 1909 266 265.993290981931 Theta(tan=14.2766, x=-1, y=-14.2766): 14.300666256712\n    test 1910 266 266.000000000000 Mu(tan=14.3007, x=-0.0697565, y=-0.997564): 14.300666256712\n    test 1911 266 265.993320826309 Chi(tan=14.2767, x=-1, y=-14.2767), iteration=3: 14.300666256712\n    test 1912 266 266.002226669943 Xi(tan=14.3087, x=-0.140061, y=-2.00409), iteration=3: 14.300666256712\n\n    test 1913 266 266.020026926530 Phi(tan=14.3729, x=-0.0694078, y=-0.997588): 14.300666256712\n    test 1914 266 266.006681184269 Beta(tan=14.3247, x=-0.0696401, y=-0.997572): 14.300666256712\n    test 1915 266 265.993290981931 Theta(tan=14.2766, x=-0.0698733, y=-0.997556): 14.300666256712\n    test 1916 266 266.000000000000 Mu(tan=14.3007, x=-0.0697565, y=-0.997564): 14.300666256712\n    test 1917 266 265.993320826309 Chi(tan=14.2767, x=-0.0698728, y=-0.997556): 14.300666256712\n    test 1918 266 266.002226669943 Xi(tan=14.3087, x=-0.0697177, y=-0.997567): 14.300666256712\n\n    test 1919 273 272.984958603323 Phi(tan=-19.1775, x=1.0, y=-19.1775): -19.081136687728\n    test 1920 273 272.994982020871 Beta(tan=-19.1132, x=1.0, y=-19.1132): -19.081136687728\n    test 1921 273 273.005038973685 Theta(tan=-19.0491, x=1.0, y=-19.0491): -19.081136687728\n    test 1922 273 273.000000000000 Mu(tan=-19.0811, x=0.052336, y=-0.99863): -19.081136687728\n    test 1923 273 273.005016510682 Chi(tan=-19.0492, x=1.0, y=-19.0492), iteration=3: -19.081136687728\n    test 1924 273 272.998327629166 Xi(tan=-19.0918, x=0.105083, y=-2.00623), iteration=3: -19.081136687728\n\n    test 1925 273 272.984958603323 Phi(tan=-19.1775, x=0.0520738, y=-0.998643): -19.081136687728\n    test 1926 273 272.994982020871 Beta(tan=-19.1132, x=0.0522485, y=-0.998634): -19.081136687728\n    test 1927 273 273.005038973685 Theta(tan=-19.0491, x=0.0524238, y=-0.998625): -19.081136687728\n    test 1928 273 273.000000000000 Mu(tan=-19.0811, x=0.052336, y=-0.99863): -19.081136687728\n    test 1929 273 273.005016510682 Chi(tan=-19.0492, x=0.0524234, y=-0.998625): -19.081136687728\n    test 1930 273 272.998327629166 Xi(tan=-19.0918, x=0.0523068, y=-0.998631): -19.081136687728\n\n    test 1931 280 279.950776225319 Phi(tan=-5.69991, x=1.0, y=-5.69991): -5.671281819618\n    test 1932 280 279.983579145989 Beta(tan=-5.6808, x=1.0, y=-5.6808): -5.671281819618\n    test 1933 280 280.016485774700 Theta(tan=-5.66176, x=1.0, y=-5.66176): -5.671281819618\n    test 1934 280 280.000000000000 Mu(tan=-5.67128, x=0.173648, y=-0.984808): -5.671281819618\n    test 1935 280 280.016414293005 Chi(tan=-5.6618, x=1.0, y=-5.6618), iteration=3: -5.671281819618\n    test 1936 280 279.994527544579 Xi(tan=-5.67445, x=0.348667, y=-1.97849), iteration=3: -5.671281819618\n\n    test 1937 280 279.950776225319 Phi(tan=-5.69991, x=0.172802, y=-0.984957): -5.671281819618\n    test 1938 280 279.983579145989 Beta(tan=-5.6808, x=0.173366, y=-0.984857): -5.671281819618\n    test 1939 280 280.016485774700 Theta(tan=-5.66176, x=0.173932, y=-0.984758): -5.671281819618\n    test 1940 280 280.000000000000 Mu(tan=-5.67128, x=0.173648, y=-0.984808): -5.671281819618\n    test 1941 280 280.016414293005 Chi(tan=-5.6618, x=0.17393, y=-0.984758): -5.671281819618\n    test 1942 280 279.994527544579 Xi(tan=-5.67445, x=0.173554, y=-0.984824): -5.671281819618\n\n    test 1943 287 286.919494515865 Phi(tan=-3.28737, x=1.0, y=-3.28737): -3.270852618484\n    test 1944 287 286.973146172898 Beta(tan=-3.27634, x=1.0, y=-3.27634): -3.270852618484\n    test 1945 287 287.026947513630 Theta(tan=-3.26536, x=1.0, y=-3.26536): -3.270852618484\n    test 1946 287 287.000000000000 Mu(tan=-3.27085, x=0.292372, y=-0.956305): -3.270852618484\n    test 1947 287 287.026837302239 Chi(tan=-3.26538, x=1.0, y=-3.26538), iteration=3: -3.270852618484\n    test 1948 287 286.991051342914 Xi(tan=-3.27268, x=0.587069, y=-1.92129), iteration=3: -3.270852618484\n\n    test 1949 287 286.919494515865 Phi(tan=-3.28737, x=0.291028, y=-0.956715): -3.270852618484\n    test 1950 287 286.973146172898 Beta(tan=-3.27634, x=0.291923, y=-0.956442): -3.270852618484\n    test 1951 287 287.026947513630 Theta(tan=-3.26536, x=0.292821, y=-0.956167): -3.270852618484\n    test 1952 287 287.000000000000 Mu(tan=-3.27085, x=0.292372, y=-0.956305): -3.270852618484\n    test 1953 287 287.026837302239 Chi(tan=-3.26538, x=0.29282, y=-0.956168): -3.270852618484\n    test 1954 287 286.991051342914 Xi(tan=-3.27268, x=0.292222, y=-0.95635): -3.270852618484\n\n    test 1955 294 293.892961362638 Phi(tan=-2.25738, x=1.0, y=-2.25738): -2.246036773904\n    test 1956 294 293.964300405205 Beta(tan=-2.24981, x=1.0, y=-2.24981): -2.246036773904\n    test 1957 294 294.035800165821 Theta(tan=-2.24227, x=1.0, y=-2.24227): -2.246036773904\n    test 1958 294 294.000000000000 Mu(tan=-2.24604, x=0.406737, y=-0.913545): -2.246036773904\n    test 1959 294 294.035666490170 Chi(tan=-2.24228, x=1.0, y=-2.24228), iteration=3: -2.246036773904\n    test 1960 294 293.988104995444 Xi(tan=-2.24729, x=0.816745, y=-1.83546), iteration=3: -2.246036773904\n\n    test 1961 294 293.892961362638 Phi(tan=-2.25738, x=0.405029, y=-0.914304): -2.246036773904\n    test 1962 294 293.964300405205 Beta(tan=-2.24981, x=0.406167, y=-0.913799): -2.246036773904\n    test 1963 294 294.035800165821 Theta(tan=-2.24227, x=0.407307, y=-0.913291): -2.246036773904\n    test 1964 294 294.000000000000 Mu(tan=-2.24604, x=0.406737, y=-0.913545): -2.246036773904\n    test 1965 294 294.035666490170 Chi(tan=-2.24228, x=0.407305, y=-0.913292): -2.246036773904\n    test 1966 294 293.988104995444 Xi(tan=-2.24729, x=0.406547, y=-0.91363): -2.246036773904\n\n    test 1967 301 300.872750492296 Phi(tan=-1.67268, x=1.0, y=-1.67268): -1.664279482351\n    test 1968 301 300.957566748779 Beta(tan=-1.66707, x=1.0, y=-1.66707): -1.664279482351\n    test 1969 301 301.042517212699 Theta(tan=-1.66149, x=1.0, y=-1.66149): -1.664279482351\n    test 1970 301 301.000000000000 Mu(tan=-1.66428, x=0.515038, y=-0.857167): -1.664279482351\n    test 1971 301 301.042377369066 Chi(tan=-1.66149, x=1.0, y=-1.66149), iteration=3: -1.664279482351\n    test 1972 301 300.985863408886 Xi(tan=-1.66521, x=1.03428, y=-1.72229), iteration=2: -1.664279482351\n\n    test 1973 301 300.872750492296 Phi(tan=-1.67268, x=0.513133, y=-0.858309): -1.664279482351\n    test 1974 301 300.957566748779 Beta(tan=-1.66707, x=0.514403, y=-0.857549): -1.664279482351\n    test 1975 301 301.042517212699 Theta(tan=-1.66149, x=0.515674, y=-0.856785): -1.664279482351\n    test 1976 301 301.000000000000 Mu(tan=-1.66428, x=0.515038, y=-0.857167): -1.664279482351\n    test 1977 301 301.042377369066 Chi(tan=-1.66149, x=0.515672, y=-0.856786): -1.664279482351\n    test 1978 301 300.985863408886 Xi(tan=-1.66521, x=0.514827, y=-0.857294): -1.664279482351\n\n    test 1979 308 307.860068599875 Phi(tan=-1.28641, x=1.0, y=-1.28641): -1.279941632193\n    test 1980 308 307.953346674264 Beta(tan=-1.28209, x=1.0, y=-1.28209): -1.279941632193\n    test 1981 308 308.046701061231 Theta(tan=-1.27779, x=1.0, y=-1.27779): -1.279941632193\n    test 1982 308 308.000000000000 Mu(tan=-1.27994, x=0.615661, y=-0.788011): -1.279941632193\n    test 1983 308 308.046571160545 Chi(tan=-1.2778, x=1.0, y=-1.2778), iteration=3: -1.279941632193\n    test 1984 308 307.984460065878 Xi(tan=-1.28066, x=1.23642, y=-1.58343), iteration=3: -1.279941632193\n\n    test 1985 308 307.860068599875 Phi(tan=-1.28641, x=0.613735, y=-0.789512): -1.279941632193\n    test 1986 308 307.953346674264 Beta(tan=-1.28209, x=0.61502, y=-0.788512): -1.279941632193\n    test 1987 308 308.046701061231 Theta(tan=-1.27779, x=0.616304, y=-0.787509): -1.279941632193\n    test 1988 308 308.000000000000 Mu(tan=-1.27994, x=0.615661, y=-0.788011): -1.279941632193\n    test 1989 308 308.046571160545 Chi(tan=-1.2778, x=0.616302, y=-0.78751): -1.279941632193\n    test 1990 308 307.984460065878 Xi(tan=-1.28066, x=0.615448, y=-0.788178): -1.279941632193\n\n    test 1991 315 314.855682294112 Phi(tan=-1.00505, x=1.0, y=-1.00505): -1.000000000000\n    test 1992 315 314.951894037750 Beta(tan=-1.00168, x=1.0, y=-1.00168): -1.000000000000\n    test 1993 315 315.048106323978 Theta(tan=-0.998322, x=1.0, y=-0.998322): -1.000000000000\n    test 1994 315 315.000000000000 Mu(tan=-1, x=0.707107, y=-0.707107): -1.000000000000\n    test 1995 315 315.047998507775 Chi(tan=-0.998326, x=1.0, y=-0.998326), iteration=3: -1.000000000000\n    test 1996 315 314.983979022806 Xi(tan=-1.00056, x=1.42017, y=-1.42096), iteration=2: -1.000000000000\n\n    test 1997 315 314.855682294112 Phi(tan=-1.00505, x=0.705323, y=-0.708886): -1.000000000000\n    test 1998 315 314.951894037750 Beta(tan=-1.00168, x=0.706513, y=-0.7077): -1.000000000000\n    test 1999 315 315.048106323978 Theta(tan=-0.998322, x=0.7077, y=-0.706513): -1.000000000000\n    test 2000 315 315.000000000000 Mu(tan=-1, x=0.707107, y=-0.707107): -1.000000000000\n    test 2001 315 315.047998507775 Chi(tan=-0.998326, x=0.707699, y=-0.706514): -1.000000000000\n    test 2002 315 314.983979022806 Xi(tan=-1.00056, x=0.706909, y=-0.707304): -1.000000000000\n\n    test 2003 322 321.859869499768 Phi(tan=-0.785232, x=1.0, y=-0.785232): -0.781285626507\n    test 2004 322 321.953299269346 Beta(tan=-0.782599, x=1.0, y=-0.782599): -0.781285626507\n    test 2005 322 322.046653656044 Theta(tan=-0.779975, x=1.0, y=-0.779975): -0.781285626507\n    test 2006 322 322.000000000000 Mu(tan=-0.781286, x=0.788011, y=-0.615661): -0.781285626507\n    test 2007 322 322.046574337734 Chi(tan=-0.779977, x=1.0, y=-0.779977), iteration=2: -0.781285626507\n    test 2008 322 321.984449756665 Xi(tan=-0.781723, x=1.58276, y=-1.23728), iteration=3: -0.781285626507\n\n    test 2009 322 321.859869499768 Phi(tan=-0.785232, x=0.786503, y=-0.617587): -0.781285626507\n    test 2010 322 321.953299269346 Beta(tan=-0.782599, x=0.787509, y=-0.616304): -0.781285626507\n    test 2011 322 322.046653656044 Theta(tan=-0.779975, x=0.788512, y=-0.61502): -0.781285626507\n    test 2012 322 322.000000000000 Mu(tan=-0.781286, x=0.788011, y=-0.615661): -0.781285626507\n    test 2013 322 322.046574337734 Chi(tan=-0.779977, x=0.788511, y=-0.615021): -0.781285626507\n    test 2014 322 321.984449756665 Xi(tan=-0.781723, x=0.787844, y=-0.615875): -0.781285626507\n\n    test 2015 329 328.872398901328 Phi(tan=-0.603896, x=1.0, y=-0.603896): -0.600860619028\n    test 2016 329 328.957483036491 Beta(tan=-0.601871, x=1.0, y=-0.601871): -0.600860619028\n    test 2017 329 329.042433500019 Theta(tan=-0.599853, x=1.0, y=-0.599853): -0.600860619028\n    test 2018 329 329.000000000000 Mu(tan=-0.600861, x=0.857167, y=-0.515038): -0.600860619028\n    test 2019 329 329.042382979662 Chi(tan=-0.599854, x=1.0, y=-0.599854), iteration=3: -0.600860619028\n    test 2020 329 328.985845203875 Xi(tan=-0.601197, x=1.72178, y=-1.03513), iteration=2: -0.600860619028\n\n    test 2021 329 328.872398901328 Phi(tan=-0.603896, x=0.856018, y=-0.516946): -0.600860619028\n    test 2022 329 328.957483036491 Beta(tan=-0.601871, x=0.856785, y=-0.515674): -0.600860619028\n    test 2023 329 329.042433500019 Theta(tan=-0.599853, x=0.857549, y=-0.514403): -0.600860619028\n    test 2024 329 329.000000000000 Mu(tan=-0.600861, x=0.857167, y=-0.515038): -0.600860619028\n    test 2025 329 329.042382979662 Chi(tan=-0.599854, x=0.857548, y=-0.514404): -0.600860619028\n    test 2026 329 328.985845203875 Xi(tan=-0.601197, x=0.85704, y=-0.51525): -0.600860619028\n\n    test 2027 336 335.892539588775 Phi(tan=-0.447478, x=1.0, y=-0.447478): -0.445228685309\n    test 2028 336 335.964199982805 Beta(tan=-0.445978, x=1.0, y=-0.445978): -0.445228685309\n    test 2029 336 336.035699743087 Theta(tan=-0.444482, x=1.0, y=-0.444482): -0.445228685309\n    test 2030 336 336.000000000000 Mu(tan=-0.445229, x=0.913545, y=-0.406737): -0.445228685309\n    test 2031 336 336.035673220720 Chi(tan=-0.444483, x=1.0, y=-0.444483), iteration=2: -0.445228685309\n    test 2032 336 335.988083156490 Xi(tan=-0.445478, x=1.83512, y=-0.817507), iteration=3: -0.445228685309\n\n    test 2033 336 335.892539588775 Phi(tan=-0.447478, x=0.912781, y=-0.408449): -0.445228685309\n    test 2034 336 335.964199982805 Beta(tan=-0.445978, x=0.913291, y=-0.407307): -0.445228685309\n    test 2035 336 336.035699743087 Theta(tan=-0.444482, x=0.913799, y=-0.406167): -0.445228685309\n    test 2036 336 336.000000000000 Mu(tan=-0.445229, x=0.913545, y=-0.406737): -0.445228685309\n    test 2037 336 336.035673220720 Chi(tan=-0.444483, x=0.913799, y=-0.406168): -0.445228685309\n    test 2038 336 335.988083156490 Xi(tan=-0.445478, x=0.913461, y=-0.406927): -0.445228685309\n\n    test 2039 343 342.919101298136 Phi(tan=-0.307275, x=1.0, y=-0.307275): -0.305730681459\n    test 2040 343 342.973052549710 Beta(tan=-0.306245, x=1.0, y=-0.306245): -0.305730681459\n    test 2041 343 343.026853890266 Theta(tan=-0.305218, x=1.0, y=-0.305218): -0.305730681459\n    test 2042 343 343.000000000000 Mu(tan=-0.305731, x=0.956305, y=-0.292372): -0.305730681459\n    test 2043 343 343.026843577092 Chi(tan=-0.305218, x=1.0, y=-0.305218), iteration=3: -0.305730681459\n    test 2044 343 342.991030982615 Xi(tan=-0.305902, x=1.92111, y=-0.58767), iteration=3: -0.305730681459\n\n    test 2045 343 342.919101298136 Phi(tan=-0.307275, x=0.955891, y=-0.293722): -0.305730681459\n    test 2046 343 342.973052549710 Beta(tan=-0.306245, x=0.956167, y=-0.292821): -0.305730681459\n    test 2047 343 343.026853890266 Theta(tan=-0.305218, x=0.956442, y=-0.291923): -0.305730681459\n    test 2048 343 343.000000000000 Mu(tan=-0.305731, x=0.956305, y=-0.292372): -0.305730681459\n    test 2049 343 343.026843577092 Chi(tan=-0.305218, x=0.956442, y=-0.291924): -0.305730681459\n    test 2050 343 342.991030982615 Xi(tan=-0.305902, x=0.956259, y=-0.292521): -0.305730681459\n\n    test 2051 350 349.950503618765 Phi(tan=-0.177218, x=1.0, y=-0.177218): -0.176326980708\n    test 2052 350 349.983514239795 Beta(tan=-0.176624, x=1.0, y=-0.176624): -0.176326980708\n    test 2053 350 350.016420868461 Theta(tan=-0.176031, x=1.0, y=-0.176031): -0.176326980708\n    test 2054 350 350.000000000000 Mu(tan=-0.176327, x=0.984808, y=-0.173648): -0.176326980708\n    test 2055 350 350.016418643178 Chi(tan=-0.176032, x=1.0, y=-0.176032), iteration=3: -0.176326980708\n    test 2056 350 349.994513429399 Xi(tan=-0.176426, x=1.97843, y=-0.349045), iteration=3: -0.176326980708\n\n    test 2057 350 349.950503618765 Phi(tan=-0.177218, x=0.984657, y=-0.174499): -0.176326980708\n    test 2058 350 349.983514239795 Beta(tan=-0.176624, x=0.984758, y=-0.173932): -0.176326980708\n    test 2059 350 350.016420868461 Theta(tan=-0.176031, x=0.984857, y=-0.173366): -0.176326980708\n    test 2060 350 350.000000000000 Mu(tan=-0.176327, x=0.984808, y=-0.173648): -0.176326980708\n    test 2061 350 350.016418643178 Chi(tan=-0.176032, x=0.984857, y=-0.173366): -0.176326980708\n    test 2062 350 349.994513429399 Xi(tan=-0.176426, x=0.984791, y=-0.173742): -0.176326980708\n\n    test 2063 357 356.984870427697 Phi(tan=-0.0526726, x=1.0, y=-0.0526726): -0.052407779283\n    test 2064 357 356.994961026729 Beta(tan=-0.052496, x=1.0, y=-0.052496): -0.052407779283\n    test 2065 357 357.005017979541 Theta(tan=-0.05232, x=1.0, y=-0.05232): -0.052407779283\n    test 2066 357 357.000000000000 Mu(tan=-0.0524078, x=0.99863, y=-0.052336): -0.052407779283\n    test 2067 357 357.005017917762 Chi(tan=-0.05232, x=1.0, y=-0.05232), iteration=3: -0.052407779283\n    test 2068 357 356.998323063562 Xi(tan=-0.0524371, x=2.00622, y=-0.105201), iteration=3: -0.052407779283\n\n    test 2069 357 356.984870427697 Phi(tan=-0.0526726, x=0.998616, y=-0.0525997): -0.052407779283\n    test 2070 357 356.994961026729 Beta(tan=-0.052496, x=0.998625, y=-0.0524238): -0.052407779283\n    test 2071 357 357.005017979541 Theta(tan=-0.05232, x=0.998634, y=-0.0522485): -0.052407779283\n    test 2072 357 357.000000000000 Mu(tan=-0.0524078, x=0.99863, y=-0.052336): -0.052407779283\n    test 2073 357 357.005017917762 Chi(tan=-0.05232, x=0.998634, y=-0.0522485): -0.052407779283\n    test 2074 357 356.998323063562 Xi(tan=-0.0524371, x=0.998628, y=-0.0523652): -0.052407779283\n\n    test 2075  0 0.000000000000 Phi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 2076  0 0.000000000000 Beta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 2077  0 0.000000000000 Theta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 2078  0 0.000000000000 Mu(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 2079  0 0.000000000000 Chi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 2080  0 0.000000000000 Xi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n\n    test 2081  0 0.000000000000 Phi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 2082  0 0.000000000000 Beta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 2083  0 0.000000000000 Theta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 2084  0 0.000000000000 Mu(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 2085  0 0.000000000000 Chi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 2086  0 0.000000000000 Xi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n\n    test 2087  7 7.000000000000 Phi(tan=0.122785, x=0.992546, y=0.121869): 0.122784560903\n    test 2088  7 6.976762016136 Beta(tan=0.122373, x=0.992546, y=0.121461): 0.122784560903\n    test 2089  7 6.953599649493 Theta(tan=0.121963, x=0.992546, y=0.121054): 0.122784560903\n    test 2090  7 6.965157241116 Mu(tan=0.122167, x=0.99262, y=0.121266), iteration=3: 0.122784560903\n    test 2091  7 6.953600413381 Chi(tan=0.121963, x=1.0, y=0.121963), iteration=2: 0.122784560903\n    test 2092  7 6.969019299974 Xi(tan=0.122236, x=1.99414, y=0.243755), iteration=3: 0.122784560903\n\n    test 2093  7 7.000000000000 Phi(tan=0.122785, x=0.992546, y=0.121869): 0.122784560903\n    test 2094  7 6.976762016136 Beta(tan=0.122373, x=0.992595, y=0.121467): 0.122784560903\n    test 2095  7 6.953599649493 Theta(tan=0.121963, x=0.992645, y=0.121066): 0.122784560903\n    test 2096  7 6.965157241116 Mu(tan=0.122167, x=0.99262, y=0.121266): 0.122784560903\n    test 2097  7 6.953600413381 Chi(tan=0.121963, x=0.992645, y=0.121066): 0.122784560903\n    test 2098  7 6.969019299974 Xi(tan=0.122236, x=0.992612, y=0.121333): 0.122784560903\n\n    test 2099 14 14.000000000000 Phi(tan=0.249328, x=0.970296, y=0.241922): 0.249328002843\n    test 2100 14 13.954897969322 Beta(tan=0.248492, x=0.970296, y=0.241111): 0.249328002843\n    test 2101 14 13.909929594324 Theta(tan=0.247659, x=0.970296, y=0.240302): 0.249328002843\n    test 2102 14 13.932372077582 Mu(tan=0.248075, x=0.970581, y=0.240776), iteration=3: 0.249328002843\n    test 2103 14 13.909935440611 Chi(tan=0.247659, x=1.0, y=0.247659), iteration=3: 0.249328002843\n    test 2104 14 13.939869149632 Xi(tan=0.248214, x=1.94981, y=0.48397), iteration=3: 0.249328002843\n\n    test 2105 14 14.000000000000 Phi(tan=0.249328, x=0.970296, y=0.241922): 0.249328002843\n    test 2106 14 13.954897969322 Beta(tan=0.248492, x=0.970486, y=0.241158): 0.249328002843\n    test 2107 14 13.909929594324 Theta(tan=0.247659, x=0.970675, y=0.240396): 0.249328002843\n    test 2108 14 13.932372077582 Mu(tan=0.248075, x=0.970581, y=0.240776): 0.249328002843\n    test 2109 14 13.909935440611 Chi(tan=0.247659, x=0.970675, y=0.240396): 0.249328002843\n    test 2110 14 13.939869149632 Xi(tan=0.248214, x=0.970549, y=0.240903): 0.249328002843\n\n    test 2111 21 21.000000000000 Phi(tan=0.383864, x=0.93358, y=0.358368): 0.383864035035\n    test 2112 21 20.935701709947 Beta(tan=0.382577, x=0.93358, y=0.357166): 0.383864035035\n    test 2113 21 20.871564019024 Theta(tan=0.381294, x=0.93358, y=0.355969): 0.383864035035\n    test 2114 21 20.903582743391 Mu(tan=0.381935, x=0.934182, y=0.356796), iteration=3: 0.383864035035\n    test 2115 21 20.871582327745 Chi(tan=0.381295, x=1.0, y=0.381295), iteration=2: 0.383864035035\n    test 2116 21 20.914273669704 Xi(tan=0.382148, x=1.87662, y=0.717147), iteration=3: 0.383864035035\n\n    test 2117 21 21.000000000000 Phi(tan=0.383864, x=0.93358, y=0.358368): 0.383864035035\n    test 2118 21 20.935701709947 Beta(tan=0.382577, x=0.933982, y=0.35732): 0.383864035035\n    test 2119 21 20.871564019024 Theta(tan=0.381294, x=0.934381, y=0.356274): 0.383864035035\n    test 2120 21 20.903582743391 Mu(tan=0.381935, x=0.934182, y=0.356796): 0.383864035035\n    test 2121 21 20.871582327745 Chi(tan=0.381295, x=0.934381, y=0.356275): 0.383864035035\n    test 2122 21 20.914273669703 Xi(tan=0.382148, x=0.934116, y=0.356971): 0.383864035035\n\n    test 2123 28 28.000000000000 Phi(tan=0.531709, x=0.882948, y=0.469472): 0.531709431661\n    test 2124 28 27.920311317014 Beta(tan=0.529927, x=0.882948, y=0.467898): 0.531709431661\n    test 2125 28 27.840772765521 Theta(tan=0.52815, x=0.882948, y=0.466329): 0.531709431661\n    test 2126 28 27.880495175823 Mu(tan=0.529037, x=0.883925, y=0.467629), iteration=3: 0.531709431661\n    test 2127 28 27.840811762412 Chi(tan=0.528151, x=1.0, y=0.528151), iteration=2: 0.531709431661\n    test 2128 28 27.893749908688 Xi(tan=0.529333, x=1.77557, y=0.939868), iteration=2: 0.531709431661\n\n    test 2129 28 28.000000000000 Phi(tan=0.531709, x=0.882948, y=0.469472): 0.531709431661\n    test 2130 28 27.920311317014 Beta(tan=0.529927, x=0.8836, y=0.468243): 0.531709431661\n    test 2131 28 27.840772765521 Theta(tan=0.52815, x=0.884249, y=0.467016): 0.531709431661\n    test 2132 28 27.880495175823 Mu(tan=0.529037, x=0.883925, y=0.467629): 0.531709431661\n    test 2133 28 27.840811762412 Chi(tan=0.528151, x=0.884249, y=0.467017): 0.531709431661\n    test 2134 28 27.893749908688 Xi(tan=0.529333, x=0.883817, y=0.467833): 0.531709431661\n\n    test 2135 35 35.000000000000 Phi(tan=0.700208, x=0.819152, y=0.573576): 0.700207538210\n    test 2136 35 34.909642037079 Beta(tan=0.69786, x=0.819152, y=0.571653): 0.700207538210\n    test 2137 35 34.819388702350 Theta(tan=0.69552, x=0.819152, y=0.569737): 0.700207538210\n    test 2138 35 34.864482701692 Mu(tan=0.696688, x=0.820506, y=0.571637), iteration=3: 0.700207538210\n    test 2139 35 34.819454815840 Chi(tan=0.695522, x=1.0, y=0.695522), iteration=3: 0.700207538210\n    test 2140 35 34.879518549737 Xi(tan=0.697078, x=1.64808, y=1.14884), iteration=3: 0.700207538210\n\n    test 2141 35 35.000000000000 Phi(tan=0.700208, x=0.819152, y=0.573576): 0.700207538210\n    test 2142 35 34.909642037079 Beta(tan=0.69786, x=0.820056, y=0.572284): 0.700207538210\n    test 2143 35 34.819388702350 Theta(tan=0.69552, x=0.820956, y=0.570991): 0.700207538210\n    test 2144 35 34.864482701692 Mu(tan=0.696688, x=0.820506, y=0.571637): 0.700207538210\n    test 2145 35 34.819454815840 Chi(tan=0.695522, x=0.820955, y=0.570992): 0.700207538210\n    test 2146 35 34.879518549737 Xi(tan=0.697078, x=0.820356, y=0.571853): 0.700207538210\n\n    test 2147 42 42.000000000000 Phi(tan=0.900404, x=0.743145, y=0.669131): 0.900404044298\n    test 2148 42 41.904331700939 Beta(tan=0.897385, x=0.743145, y=0.666887): 0.900404044298\n    test 2149 42 41.808698047037 Theta(tan=0.894376, x=0.743145, y=0.664651): 0.900404044298\n    test 2150 42 41.856504060443 Mu(tan=0.895879, x=0.744818, y=0.667267), iteration=2: 0.900404044298\n    test 2151 42 41.808793486106 Chi(tan=0.894379, x=1.0, y=0.894379), iteration=3: 0.900404044298\n    test 2152 42 41.872431075863 Xi(tan=0.896381, x=1.49595, y=1.34094), iteration=3: 0.900404044298\n\n    test 2153 42 42.000000000000 Phi(tan=0.900404, x=0.743145, y=0.669131): 0.900404044298\n    test 2154 42 41.904331700939 Beta(tan=0.897385, x=0.744261, y=0.667889): 0.900404044298\n    test 2155 42 41.808698047037 Theta(tan=0.894376, x=0.745375, y=0.666646): 0.900404044298\n    test 2156 42 41.856504060443 Mu(tan=0.895879, x=0.744818, y=0.667267): 0.900404044298\n    test 2157 42 41.808793486106 Chi(tan=0.894379, x=0.745374, y=0.666647): 0.900404044298\n    test 2158 42 41.872431075863 Xi(tan=0.896381, x=0.744633, y=0.667474): 0.900404044298\n\n    test 2159 49 49.000000000000 Phi(tan=1.15037, x=0.656059, y=0.75471): 1.150368407221\n    test 2160 49 48.904701906378 Beta(tan=1.14651, x=0.656059, y=0.752179): 1.150368407221\n    test 2161 49 48.809360314692 Theta(tan=1.14267, x=0.656059, y=0.749657): 1.150368407221\n    test 2162 49 48.857044717775 Mu(tan=1.14459, x=0.65794, y=0.75307), iteration=3: 1.150368407221\n    test 2163 49 48.809481485365 Chi(tan=1.14267, x=1.0, y=1.14267), iteration=2: 1.150368407221\n    test 2164 49 48.872917788725 Xi(tan=1.14523, x=1.32137, y=1.51327), iteration=2: 1.150368407221\n\n    test 2165 49 49.000000000000 Phi(tan=1.15037, x=0.656059, y=0.75471): 1.150368407221\n    test 2166 49 48.904701906378 Beta(tan=1.14651, x=0.657313, y=0.753617): 1.150368407221\n    test 2167 49 48.809360314692 Theta(tan=1.14267, x=0.658567, y=0.752523): 1.150368407221\n    test 2168 49 48.857044717775 Mu(tan=1.14459, x=0.65794, y=0.75307): 1.150368407221\n    test 2169 49 48.809481485365 Chi(tan=1.14267, x=0.658565, y=0.752524): 1.150368407221\n    test 2170 49 48.872917788725 Xi(tan=1.14523, x=0.657731, y=0.753253): 1.150368407221\n\n    test 2171 56 56.000000000000 Phi(tan=1.48256, x=0.559193, y=0.829038): 1.482560968513\n    test 2172 56 55.910737485374 Beta(tan=1.47759, x=0.559193, y=0.826258): 1.482560968513\n    test 2173 56 55.821363467296 Theta(tan=1.47264, x=0.559193, y=0.823488): 1.482560968513\n    test 2174 56 55.866085351958 Mu(tan=1.47511, x=0.561129, y=0.827728), iteration=3: 1.482560968513\n    test 2175 56 55.821500669702 Chi(tan=1.47264, x=1.0, y=1.47264), iteration=3: 1.482560968513\n    test 2176 56 55.880960089169 Xi(tan=1.47594, x=1.12687, y=1.66318), iteration=3: 1.482560968513\n\n    test 2177 56 56.000000000000 Phi(tan=1.48256, x=0.559193, y=0.829038): 1.482560968513\n    test 2178 56 55.910737485374 Beta(tan=1.47759, x=0.560484, y=0.828165): 1.482560968513\n    test 2179 56 55.821363467296 Theta(tan=1.47264, x=0.561775, y=0.82729): 1.482560968513\n    test 2180 56 55.866085351958 Mu(tan=1.47511, x=0.561129, y=0.827728): 1.482560968513\n    test 2181 56 55.821500669702 Chi(tan=1.47264, x=0.561773, y=0.827291): 1.482560968513\n    test 2182 56 55.880960089169 Xi(tan=1.47594, x=0.560914, y=0.827874): 1.482560968513\n\n    test 2183 63 63.000000000000 Phi(tan=1.96261, x=0.45399, y=0.891007): 1.962610505505\n    test 2184 63 62.922085806991 Beta(tan=1.95603, x=0.45399, y=0.888019): 1.962610505505\n    test 2185 63 62.844018233783 Theta(tan=1.94947, x=0.45399, y=0.885042): 1.962610505505\n    test 2186 63 62.883100004844 Mu(tan=1.95275, x=0.455807, y=0.890078), iteration=3: 1.962610505505\n    test 2187 63 62.844156794245 Chi(tan=1.94948, x=1.0, y=1.94948), iteration=3: 1.962610505505\n    test 2188 63 62.896089166605 Xi(tan=1.95384, x=0.915303, y=1.78836), iteration=3: 1.962610505505\n\n    test 2189 63 63.000000000000 Phi(tan=1.96261, x=0.45399, y=0.891007): 1.962610505505\n    test 2190 63 62.922085806991 Beta(tan=1.95603, x=0.455202, y=0.890388): 1.962610505505\n    test 2191 63 62.844018233783 Theta(tan=1.94947, x=0.456414, y=0.889767): 1.962610505505\n    test 2192 63 62.883100004844 Mu(tan=1.95275, x=0.455807, y=0.890078): 1.962610505505\n    test 2193 63 62.844156794245 Chi(tan=1.94948, x=0.456412, y=0.889768): 1.962610505505\n    test 2194 63 62.896089166605 Xi(tan=1.95384, x=0.455606, y=0.890182): 1.962610505505\n\n    test 2195 70 70.000000000000 Phi(tan=2.74748, x=0.34202, y=0.939693): 2.747477419455\n    test 2196 70 69.938076331685 Beta(tan=2.73827, x=0.34202, y=0.936542): 2.747477419455\n    test 2197 70 69.875993436424 Theta(tan=2.72908, x=0.34202, y=0.933402): 2.747477419455\n    test 2198 70 69.907084709374 Mu(tan=2.73368, x=0.343544, y=0.939137), iteration=2: 2.747477419455\n    test 2199 70 69.876116092580 Chi(tan=2.7291, x=1.0, y=2.7291), iteration=3: 2.747477419455\n    test 2200 70 69.917411740864 Xi(tan=2.7352, x=0.689832, y=1.88683), iteration=3: 2.747477419455\n\n    test 2201 70 70.000000000000 Phi(tan=2.74748, x=0.34202, y=0.939693): 2.747477419455\n    test 2202 70 69.938076331685 Beta(tan=2.73827, x=0.343036, y=0.939322): 2.747477419455\n    test 2203 70 69.875993436424 Theta(tan=2.72908, x=0.344053, y=0.93895): 2.747477419455\n    test 2204 70 69.907084709374 Mu(tan=2.73368, x=0.343544, y=0.939137): 2.747477419455\n    test 2205 70 69.876116092580 Chi(tan=2.7291, x=0.344051, y=0.938951): 2.747477419455\n    test 2206 70 69.917411740864 Xi(tan=2.7352, x=0.343374, y=0.939199): 2.747477419455\n\n    test 2207 77 77.000000000000 Phi(tan=4.33148, x=0.224951, y=0.97437): 4.331475874284\n    test 2208 77 76.957759584883 Beta(tan=4.31695, x=0.224951, y=0.971103): 4.331475874284\n    test 2209 77 76.915391564534 Theta(tan=4.30248, x=0.224951, y=0.967847): 4.331475874284\n    test 2210 77 76.936615512426 Mu(tan=4.30972, x=0.226029, y=0.974121), iteration=3: 4.331475874284\n    test 2211 77 76.915481614667 Chi(tan=4.30251, x=1.0, y=4.30251), iteration=3: 4.331475874284\n    test 2212 77 76.943661825901 Xi(tan=4.31213, x=0.453847, y=1.95704), iteration=3: 4.331475874284\n\n    test 2213 77 77.000000000000 Phi(tan=4.33148, x=0.224951, y=0.97437): 4.331475874284\n    test 2214 77 76.957759584883 Beta(tan=4.31695, x=0.225669, y=0.974204): 4.331475874284\n    test 2215 77 76.915391564534 Theta(tan=4.30248, x=0.22639, y=0.974037): 4.331475874284\n    test 2216 77 76.936615512426 Mu(tan=4.30972, x=0.226029, y=0.974121): 4.331475874284\n    test 2217 77 76.915481614667 Chi(tan=4.30251, x=0.226388, y=0.974037): 4.331475874284\n    test 2218 77 76.943661825901 Xi(tan=4.31213, x=0.225909, y=0.974148): 4.331475874284\n\n    test 2219 84 84.000000000000 Phi(tan=9.51436, x=0.104528, y=0.994522): 9.514364454223\n    test 2220 84 83.979963440552 Beta(tan=9.48246, x=0.104528, y=0.991187): 9.514364454223\n    test 2221 84 83.959860961536 Theta(tan=9.45067, x=0.104528, y=0.987864): 9.514364454223\n    test 2222 84 83.969932834829 Mu(tan=9.46657, x=0.10505, y=0.994467), iteration=3: 9.514364454223\n    test 2223 84 83.959905488972 Chi(tan=9.45074, x=1.0, y=9.45074), iteration=3: 9.514364454223\n    test 2224 84 83.973275752467 Xi(tan=9.47186, x=0.210927, y=1.99788), iteration=3: 9.514364454223\n\n    test 2225 84 84.000000000000 Phi(tan=9.51436, x=0.104528, y=0.994522): 9.514364454223\n    test 2226 84 83.979963440552 Beta(tan=9.48246, x=0.104876, y=0.994485): 9.514364454223\n    test 2227 84 83.959860961536 Theta(tan=9.45067, x=0.105225, y=0.994448): 9.514364454223\n    test 2228 84 83.969932834829 Mu(tan=9.46657, x=0.10505, y=0.994467): 9.514364454223\n    test 2229 84 83.959905488972 Chi(tan=9.45074, x=0.105224, y=0.994449): 9.514364454223\n    test 2230 84 83.973275752467 Xi(tan=9.47186, x=0.104992, y=0.994473): 9.514364454223\n\n    test 2231 91 91.000000000000 Phi(tan=-57.29, x=-0.0174524, y=0.999848): -57.289961630759\n    test 2232 91 91.003363403239 Beta(tan=-57.0979, x=-0.0174524, y=0.996495): -57.289961630759\n    test 2233 91 91.006738114317 Theta(tan=-56.9064, x=-0.0174524, y=0.993154): -57.289961630759\n    test 2234 91 91.005047219150 Mu(tan=-57.0022, x=-0.0175405, y=0.999846), iteration=2: -57.289961630759\n    test 2235 91 91.006730558280 Chi(tan=-56.9069, x=-1, y=56.9069), iteration=3: -57.289961630759\n    test 2236 91 91.004486042138 Xi(tan=-57.0341, x=-0.0352188, y=2.00867), iteration=3: -57.289961630759\n\n    test 2237 91 91.000000000000 Phi(tan=-57.29, x=-0.0174524, y=0.999848): -57.289961630759\n    test 2238 91 91.003363403239 Beta(tan=-57.0979, x=-0.0175111, y=0.999847): -57.289961630760  FAILED, KNOWN (6.07726e-15), expected -57.289961630759\n    test 2239 91 91.006738114317 Theta(tan=-56.9064, x=-0.01757, y=0.999846): -57.289961630760  FAILED, KNOWN (2.48051e-15), expected -57.289961630759\n    test 2240 91 91.005047219150 Mu(tan=-57.0022, x=-0.0175405, y=0.999846): -57.289961630760  FAILED, KNOWN (8.6818e-15), expected -57.289961630759\n    test 2241 91 91.006730558280 Chi(tan=-56.9069, x=-0.0175699, y=0.999846): -57.289961630759\n    test 2242 91 91.004486042138 Xi(tan=-57.0341, x=-0.0175307, y=0.999846): -57.289961630759\n\n    test 2243 98 98.000000000000 Phi(tan=-7.11537, x=-0.139173, y=0.990268): -7.115369722384\n    test 2244 98 98.026562562307 Beta(tan=-7.09151, x=-0.139173, y=0.986948): -7.115369722384\n    test 2245 98 98.053210993331 Theta(tan=-7.06774, x=-0.139173, y=0.983639): -7.115369722384\n    test 2246 98 98.039859900320 Mu(tan=-7.07963, x=-0.139862, y=0.990171), iteration=3: -7.115369722384\n    test 2247 98 98.053152474664 Chi(tan=-7.06779, x=-1, y=7.06779), iteration=3: -7.115369722384\n    test 2248 98 98.035428327772 Xi(tan=-7.08359, x=-0.280826, y=1.98926), iteration=2: -7.115369722384\n\n    test 2249 98 98.000000000000 Phi(tan=-7.11537, x=-0.139173, y=0.990268): -7.115369722384\n    test 2250 98 98.026562562307 Beta(tan=-7.09151, x=-0.139632, y=0.990203): -7.115369722384\n    test 2251 98 98.053210993331 Theta(tan=-7.06774, x=-0.140093, y=0.990138): -7.115369722384\n    test 2252 98 98.039859900320 Mu(tan=-7.07963, x=-0.139862, y=0.990171): -7.115369722384\n    test 2253 98 98.053152474664 Chi(tan=-7.06779, x=-0.140092, y=0.990139): -7.115369722384\n    test 2254 98 98.035428327772 Xi(tan=-7.08359, x=-0.139785, y=0.990182): -7.115369722384\n\n    test 2255 105 105.000000000000 Phi(tan=-3.73205, x=-0.258819, y=0.965926): -3.732050807569\n    test 2256 105 105.048176169243 Beta(tan=-3.71954, x=-0.258819, y=0.962687): -3.732050807569\n    test 2257 105 105.096492525996 Theta(tan=-3.70707, x=-0.258819, y=0.95946): -3.732050807569\n    test 2258 105 105.072290473972 Mu(tan=-3.7133, x=-0.260038, y=0.965599), iteration=3: -3.732050807569\n    test 2259 105 105.096391619832 Chi(tan=-3.70709, x=-1, y=3.70709), iteration=2: -3.732050807569\n    test 2260 105 105.064254515857 Xi(tan=-3.71538, x=-0.522138, y=1.93994), iteration=2: -3.732050807569\n\n    test 2261 105 105.000000000000 Phi(tan=-3.73205, x=-0.258819, y=0.965926): -3.732050807569\n    test 2262 105 105.048176169243 Beta(tan=-3.71954, x=-0.259631, y=0.965708): -3.732050807569\n    test 2263 105 105.096492525996 Theta(tan=-3.70707, x=-0.260445, y=0.965489): -3.732050807569\n    test 2264 105 105.072290473972 Mu(tan=-3.7133, x=-0.260038, y=0.965599): -3.732050807569\n    test 2265 105 105.096391619832 Chi(tan=-3.70709, x=-0.260444, y=0.965489): -3.732050807569\n    test 2266 105 105.064254515857 Xi(tan=-3.71538, x=-0.259902, y=0.965635): -3.732050807569\n\n    test 2267 112 112.000000000000 Phi(tan=-2.47509, x=-0.374607, y=0.927184): -2.475086853416\n    test 2268 112 112.066915437341 Beta(tan=-2.46679, x=-0.374607, y=0.924075): -2.475086853416\n    test 2269 112 112.133992362411 Theta(tan=-2.45852, x=-0.374607, y=0.920977): -2.475086853416\n    test 2270 112 112.100403370338 Mu(tan=-2.46265, x=-0.376231, y=0.926526), iteration=3: -2.475086853416\n    test 2271 112 112.133863370700 Chi(tan=-2.45853, x=-1, y=2.45853), iteration=3: -2.475086853416\n    test 2272 112 112.089244898668 Xi(tan=-2.46403, x=-0.755478, y=1.86152), iteration=3: -2.475086853416\n\n    test 2273 112 112.000000000000 Phi(tan=-2.47509, x=-0.374607, y=0.927184): -2.475086853416\n    test 2274 112 112.066915437341 Beta(tan=-2.46679, x=-0.375689, y=0.926746): -2.475086853416\n    test 2275 112 112.133992362411 Theta(tan=-2.45852, x=-0.376774, y=0.926305): -2.475086853416\n    test 2276 112 112.100403370338 Mu(tan=-2.46265, x=-0.376231, y=0.926526): -2.475086853416\n    test 2277 112 112.133863370700 Chi(tan=-2.45853, x=-0.376772, y=0.926306): -2.475086853416\n    test 2278 112 112.089244898668 Xi(tan=-2.46403, x=-0.37605, y=0.926599): -2.475086853416\n\n    test 2279 119 119.000000000000 Phi(tan=-1.80405, x=-0.48481, y=0.87462): -1.804047755271\n    test 2280 119 119.081665222463 Beta(tan=-1.798, x=-0.48481, y=0.871687): -1.804047755271\n    test 2281 119 119.163475249163 Theta(tan=-1.79197, x=-0.48481, y=0.868765): -1.804047755271\n    test 2282 119 119.122524937479 Mu(tan=-1.79498, x=-0.486679, y=0.873581), iteration=3: -1.804047755271\n    test 2283 119 119.163335373555 Chi(tan=-1.79198, x=-1, y=1.79198), iteration=3: -1.804047755271\n    test 2284 119 119.108912006611 Xi(tan=-1.79599, x=-0.977311, y=1.75524), iteration=3: -1.804047755271\n\n    test 2285 119 119.000000000000 Phi(tan=-1.80405, x=-0.48481, y=0.87462): -1.804047755271\n    test 2286 119 119.081665222463 Beta(tan=-1.798, x=-0.486056, y=0.873928): -1.804047755271\n    test 2287 119 119.163475249163 Theta(tan=-1.79197, x=-0.487303, y=0.873233): -1.804047755271\n    test 2288 119 119.122524937479 Mu(tan=-1.79498, x=-0.486679, y=0.873581): -1.804047755271\n    test 2289 119 119.163335373555 Chi(tan=-1.79198, x=-0.487301, y=0.873234): -1.804047755271\n    test 2290 119 119.108912006611 Xi(tan=-1.79599, x=-0.486471, y=0.873697): -1.804047755271\n\n    test 2291 126 126.000000000000 Phi(tan=-1.37638, x=-0.587785, y=0.809017): -1.376381920471\n    test 2292 126 126.091550707249 Beta(tan=-1.37177, x=-0.587785, y=0.806305): -1.376381920471\n    test 2293 126 126.183195540448 Theta(tan=-1.36717, x=-0.587785, y=0.803601): -1.376381920471\n    test 2294 126 126.137343684620 Mu(tan=-1.36947, x=-0.589723, y=0.807606), iteration=3: -1.376381920471\n    test 2295 126 126.183061603372 Chi(tan=-1.36717, x=-1, y=1.36717), iteration=3: -1.376381920471\n    test 2296 126 126.122089633630 Xi(tan=-1.37023, x=-1.18431, y=1.62278), iteration=2: -1.376381920471\n\n    test 2297 126 126.000000000000 Phi(tan=-1.37638, x=-0.587785, y=0.809017): -1.376381920471\n    test 2298 126 126.091550707249 Beta(tan=-1.37177, x=-0.589077, y=0.808077): -1.376381920471\n    test 2299 126 126.183195540448 Theta(tan=-1.36717, x=-0.590369, y=0.807133): -1.376381920471\n    test 2300 126 126.137343684620 Mu(tan=-1.36947, x=-0.589723, y=0.807606): -1.376381920471\n    test 2301 126 126.183061603372 Chi(tan=-1.36717, x=-0.590367, y=0.807135): -1.376381920471\n    test 2302 126 126.122089633630 Xi(tan=-1.37023, x=-0.589508, y=0.807763): -1.376381920471\n\n    test 2303 133 133.000000000000 Phi(tan=-1.07237, x=-0.681998, y=0.731354): -1.072368710025\n    test 2304 133 133.095989026852 Beta(tan=-1.06877, x=-0.681998, y=0.728902): -1.072368710025\n    test 2305 133 133.191999466035 Theta(tan=-1.06519, x=-0.681998, y=0.726458): -1.072368710025\n    test 2306 133 133.143987543114 Mu(tan=-1.06698, x=-0.683834, y=0.729637), iteration=2: -1.072368710025\n    test 2307 133 133.191884915480 Chi(tan=-1.06519, x=-1, y=1.06519), iteration=3: -1.072368710025\n    test 2308 133 133.128001595557 Xi(tan=-1.06758, x=-1.3734, y=1.46621), iteration=3: -1.072368710025\n\n    test 2309 133 133.000000000000 Phi(tan=-1.07237, x=-0.681998, y=0.731354): -1.072368710025\n    test 2310 133 133.095989026852 Beta(tan=-1.06877, x=-0.683223, y=0.73021): -1.072368710025\n    test 2311 133 133.191999466035 Theta(tan=-1.06519, x=-0.684445, y=0.729064): -1.072368710025\n    test 2312 133 133.143987543114 Mu(tan=-1.06698, x=-0.683834, y=0.729637): -1.072368710025\n    test 2313 133 133.191884915480 Chi(tan=-1.06519, x=-0.684444, y=0.729066): -1.072368710025\n    test 2314 133 133.128001595557 Xi(tan=-1.06758, x=-0.683631, y=0.729828): -1.072368710025\n\n    test 2315 140 140.000000000000 Phi(tan=-0.8391, x=-0.766044, y=0.642788): -0.839099631177\n    test 2316 140 140.094722853987 Beta(tan=-0.836286, x=-0.766044, y=0.640632): -0.839099631177\n    test 2317 140 140.189389448072 Theta(tan=-0.833482, x=-0.766044, y=0.638485): -0.839099631177\n    test 2318 140 140.142073716249 Mu(tan=-0.834883, x=-0.767636, y=0.640886), iteration=2: -0.839099631177\n    test 2319 140 140.189302292623 Chi(tan=-0.833485, x=-1, y=0.833485), iteration=2: -0.839099631177\n    test 2320 140 140.126306265466 Xi(tan=-0.83535, x=-1.54181, y=1.28795), iteration=2: -0.839099631177\n\n    test 2321 140 140.000000000000 Phi(tan=-0.8391, x=-0.766044, y=0.642788): -0.839099631177\n    test 2322 140 140.094722853987 Beta(tan=-0.836286, x=-0.767106, y=0.64152): -0.839099631177\n    test 2323 140 140.189389448072 Theta(tan=-0.833482, x=-0.768165, y=0.640252): -0.839099631177\n    test 2324 140 140.142073716249 Mu(tan=-0.834883, x=-0.767636, y=0.640886): -0.839099631177\n    test 2325 140 140.189302292623 Chi(tan=-0.833485, x=-0.768164, y=0.640253): -0.839099631177\n    test 2326 140 140.126306265466 Xi(tan=-0.83535, x=-0.76746, y=0.641097): -0.839099631177\n\n    test 2327 147 147.000000000000 Phi(tan=-0.649408, x=-0.838671, y=0.544639): -0.649407593198\n    test 2328 147 147.087834196097 Beta(tan=-0.64723, x=-0.838671, y=0.542813): -0.649407593198\n    test 2329 147 147.175547668144 Theta(tan=-0.64506, x=-0.838671, y=0.540993): -0.649407593198\n    test 2330 147 147.131728623858 Mu(tan=-0.646144, x=-0.839921, y=0.542709), iteration=2: -0.649407593198\n    test 2331 147 147.175489751194 Chi(tan=-0.645062, x=-1, y=0.645062), iteration=3: -0.649407593198\n    test 2332 147 147.117114615992 Xi(tan=-0.646505, x=-1.68711, y=1.09072), iteration=3: -0.649407593198\n\n    test 2333 147 147.000000000000 Phi(tan=-0.649408, x=-0.838671, y=0.544639): -0.649407593198\n    test 2334 147 147.087834196097 Beta(tan=-0.64723, x=-0.839505, y=0.543353): -0.649407593198\n    test 2335 147 147.175547668144 Theta(tan=-0.64506, x=-0.840335, y=0.542067): -0.649407593198\n    test 2336 147 147.131728623858 Mu(tan=-0.646144, x=-0.839921, y=0.542709): -0.649407593198\n    test 2337 147 147.175489751194 Chi(tan=-0.645062, x=-0.840335, y=0.542068): -0.649407593198\n    test 2338 147 147.117114615992 Xi(tan=-0.646505, x=-0.839782, y=0.542924): -0.649407593198\n\n    test 2339 154 154.000000000000 Phi(tan=-0.487733, x=-0.898794, y=0.438371): -0.487732588566\n    test 2340 154 154.075737936138 Beta(tan=-0.486097, x=-0.898794, y=0.436901): -0.487732588566\n    test 2341 154 154.151318905421 Theta(tan=-0.484468, x=-0.898794, y=0.435437): -0.487732588566\n    test 2342 154 154.113577416532 Mu(tan=-0.485281, x=-0.899661, y=0.436589), iteration=2: -0.487732588566\n    test 2343 154 154.151286603865 Chi(tan=-0.484468, x=-1, y=0.484468), iteration=2: -0.487732588566\n    test 2344 154 154.100981227925 Xi(tan=-0.485553, x=-1.80721, y=0.877495), iteration=3: -0.487732588566\n\n    test 2345 154 154.000000000000 Phi(tan=-0.487733, x=-0.898794, y=0.438371): -0.487732588566\n    test 2346 154 154.075737936138 Beta(tan=-0.486097, x=-0.899373, y=0.437183): -0.487732588566\n    test 2347 154 154.151318905421 Theta(tan=-0.484468, x=-0.899949, y=0.435996): -0.487732588566\n    test 2348 154 154.113577416532 Mu(tan=-0.485281, x=-0.899661, y=0.436589): -0.487732588566\n    test 2349 154 154.151286603865 Chi(tan=-0.484468, x=-0.899948, y=0.435996): -0.487732588566\n    test 2350 154 154.100981227925 Xi(tan=-0.485553, x=-0.899565, y=0.436786): -0.487732588566\n\n    test 2351 161 161.000000000000 Phi(tan=-0.344328, x=-0.945519, y=0.325568): -0.344327613290\n    test 2352 161 161.059155871563 Beta(tan=-0.343173, x=-0.945519, y=0.324477): -0.344327613290\n    test 2353 161 161.118155143282 Theta(tan=-0.342023, x=-0.945519, y=0.323389): -0.344327613290\n    test 2354 161 161.088704377377 Mu(tan=-0.342597, x=-0.946021, y=0.324104), iteration=2: -0.344327613290\n    test 2355 161 161.118141245926 Chi(tan=-0.342023, x=-1, y=0.342023), iteration=3: -0.344327613290\n    test 2356 161 161.078869359618 Xi(tan=-0.342789, x=-1.90043, y=0.651445), iteration=3: -0.344327613290\n\n    test 2357 161 161.000000000000 Phi(tan=-0.344328, x=-0.945519, y=0.325568): -0.344327613290\n    test 2358 161 161.059155871563 Beta(tan=-0.343173, x=-0.945854, y=0.324592): -0.344327613290\n    test 2359 161 161.118155143282 Theta(tan=-0.342023, x=-0.946188, y=0.323618): -0.344327613290\n    test 2360 161 161.088704377377 Mu(tan=-0.342597, x=-0.946021, y=0.324104): -0.344327613290\n    test 2361 161 161.118141245926 Chi(tan=-0.342023, x=-0.946188, y=0.323618): -0.344327613290\n    test 2362 161 161.078869359618 Xi(tan=-0.342789, x=-0.945966, y=0.324266): -0.344327613290\n\n    test 2363 168 168.000000000000 Phi(tan=-0.212557, x=-0.978148, y=0.207912): -0.212556561670\n    test 2364 168 168.039073098008 Beta(tan=-0.211844, x=-0.978148, y=0.207215): -0.212556561670\n    test 2365 168 168.078026427494 Theta(tan=-0.211134, x=-0.978148, y=0.20652): -0.212556561670\n    test 2366 168 168.058587132190 Mu(tan=-0.211488, x=-0.97836, y=0.206911), iteration=3: -0.212556561670\n    test 2367 168 168.078022687531 Chi(tan=-0.211134, x=-1, y=0.211134), iteration=3: -0.212556561670\n    test 2368 168 168.052092611435 Xi(tan=-0.211606, x=-1.96546, y=0.415904), iteration=3: -0.212556561670\n\n    test 2369 168 168.000000000000 Phi(tan=-0.212557, x=-0.978148, y=0.207912): -0.212556561670\n    test 2370 168 168.039073098008 Beta(tan=-0.211844, x=-0.978289, y=0.207245): -0.212556561670\n    test 2371 168 168.078026427494 Theta(tan=-0.211134, x=-0.97843, y=0.206579): -0.212556561670\n    test 2372 168 168.058587132190 Mu(tan=-0.211488, x=-0.97836, y=0.206911): -0.212556561670\n    test 2373 168 168.078022687531 Chi(tan=-0.211134, x=-0.97843, y=0.20658): -0.212556561670\n    test 2374 168 168.052092611435 Xi(tan=-0.211606, x=-0.978336, y=0.207022): -0.212556561670\n\n    test 2375 175 175.000000000000 Phi(tan=-0.0874887, x=-0.996195, y=0.0871557): -0.087488663526\n    test 2376 175 175.016679496811 Beta(tan=-0.0871953, x=-0.996195, y=0.0868635): -0.087488663526\n    test 2377 175 175.033303912991 Theta(tan=-0.086903, x=-0.996195, y=0.0865723): -0.087488663526\n    test 2378 175 175.025008889061 Mu(tan=-0.0870489, x=-0.996233, y=0.0867209), iteration=3: -0.087488663526\n    test 2379 175 175.033303632597 Chi(tan=-0.086903, x=-1, y=0.086903), iteration=2: -0.087488663526\n    test 2380 175 175.022236903877 Xi(tan=-0.0870976, x=-2.0014, y=0.174317), iteration=2: -0.087488663526\n\n    test 2381 175 175.000000000000 Phi(tan=-0.0874887, x=-0.996195, y=0.0871557): -0.087488663526\n    test 2382 175 175.016679496811 Beta(tan=-0.0871953, x=-0.99622, y=0.0868657): -0.087488663526\n    test 2383 175 175.033303912991 Theta(tan=-0.086903, x=-0.996245, y=0.0865767): -0.087488663526\n    test 2384 175 175.025008889061 Mu(tan=-0.0870489, x=-0.996233, y=0.0867209): -0.087488663526\n    test 2385 175 175.033303632597 Chi(tan=-0.086903, x=-0.996245, y=0.0865767): -0.087488663526\n    test 2386 175 175.022236903877 Xi(tan=-0.0870976, x=-0.996228, y=0.0867691): -0.087488663526\n\n    test 2387 182 182.000000000000 Phi(tan=0.0349208, x=-0.999391, y=-0.0348995): 0.034920769492\n    test 2388 182 181.993299797077 Beta(tan=0.0348037, x=-0.999391, y=-0.0347825): 0.034920769492\n    test 2389 182 181.986622004399 Theta(tan=0.034687, x=-0.999391, y=-0.0346659): 0.034920769492\n    test 2390 182 181.989953909276 Mu(tan=0.0347452, x=-0.999397, y=-0.0347243), iteration=3: 0.034920769492\n    test 2391 182 181.986622022458 Chi(tan=0.034687, x=-1, y=-0.034687), iteration=2: 0.034920769492\n    test 2392 182 181.991067395746 Xi(tan=0.0347647, x=-2.00777, y=-0.0697994), iteration=3: 0.034920769492\n\n    test 2393 182 182.000000000000 Phi(tan=0.0349208, x=-0.999391, y=-0.0348995): 0.034920769492\n    test 2394 182 181.993299797077 Beta(tan=0.0348037, x=-0.999395, y=-0.0347826): 0.034920769492\n    test 2395 182 181.986622004399 Theta(tan=0.034687, x=-0.999399, y=-0.0346661): 0.034920769492\n    test 2396 182 181.989953909276 Mu(tan=0.0347452, x=-0.999397, y=-0.0347243): 0.034920769492\n    test 2397 182 181.986622022458 Chi(tan=0.034687, x=-0.999399, y=-0.0346661): 0.034920769492\n    test 2398 182 181.991067395746 Xi(tan=0.0347647, x=-0.999396, y=-0.0347437): 0.034920769492\n\n    test 2399 189 189.000000000000 Phi(tan=0.158384, x=-0.987688, y=-0.156434): 0.158384440325\n    test 2400 189 188.970316191157 Beta(tan=0.157853, x=-0.987688, y=-0.15591): 0.158384440325\n    test 2401 189 188.940727074962 Theta(tan=0.157324, x=-0.987688, y=-0.155387): 0.158384440325\n    test 2402 189 188.955492089230 Mu(tan=0.157588, x=-0.98781, y=-0.155667), iteration=3: 0.158384440325\n    test 2403 189 188.940728682981 Chi(tan=0.157324, x=-1, y=-0.157324), iteration=3: 0.158384440325\n    test 2404 189 188.960425606105 Xi(tan=0.157676, x=-1.98446, y=-0.312903), iteration=2: 0.158384440325\n\n    test 2405 189 189.000000000000 Phi(tan=0.158384, x=-0.987688, y=-0.156434): 0.158384440325\n    test 2406 189 188.970316191157 Beta(tan=0.157853, x=-0.987769, y=-0.155923): 0.158384440325\n    test 2407 189 188.940727074962 Theta(tan=0.157324, x=-0.98785, y=-0.155413): 0.158384440325\n    test 2408 189 188.955492089230 Mu(tan=0.157588, x=-0.98781, y=-0.155667): 0.158384440325\n    test 2409 189 188.940728682981 Chi(tan=0.157324, x=-0.98785, y=-0.155413): 0.158384440325\n    test 2410 189 188.960425606105 Xi(tan=0.157676, x=-0.987796, y=-0.155752): 0.158384440325\n\n    test 2411 196 196.000000000000 Phi(tan=0.286745, x=-0.961262, y=-0.275637): 0.286745385759\n    test 2412 196 195.949087795468 Beta(tan=0.285784, x=-0.961262, y=-0.274713): 0.286745385759\n    test 2413 196 195.898320549032 Theta(tan=0.284826, x=-0.961262, y=-0.273792): 0.286745385759\n    test 2414 196 195.923658939114 Mu(tan=0.285304, x=-0.961628, y=-0.274356), iteration=3: 0.286745385759\n    test 2415 196 195.898329118388 Chi(tan=0.284826, x=-1, y=-0.284826), iteration=3: 0.286745385759\n    test 2416 196 195.932122390859 Xi(tan=0.285464, x=-1.93181, y=-0.551462), iteration=2: 0.286745385759\n\n    test 2417 196 196.000000000000 Phi(tan=0.286745, x=-0.961262, y=-0.275637): 0.286745385759\n    test 2418 196 195.949087795468 Beta(tan=0.285784, x=-0.961506, y=-0.274783): 0.286745385759\n    test 2419 196 195.898320549032 Theta(tan=0.284826, x=-0.961749, y=-0.273931): 0.286745385759\n    test 2420 196 195.923658939114 Mu(tan=0.285304, x=-0.961628, y=-0.274356): 0.286745385759\n    test 2421 196 195.898329118388 Chi(tan=0.284826, x=-0.961749, y=-0.273931): 0.286745385759\n    test 2422 196 195.932122390859 Xi(tan=0.285464, x=-0.961588, y=-0.274498): 0.286745385759\n\n    test 2423 203 203.000000000000 Phi(tan=0.424475, x=-0.920505, y=-0.390731): 0.424474816210\n    test 2424 203 202.930871376810 Beta(tan=0.423052, x=-0.920505, y=-0.389421): 0.424474816210\n    test 2425 203 202.861904242075 Theta(tan=0.421633, x=-0.920505, y=-0.388115): 0.424474816210\n    test 2426 203 202.896337407506 Mu(tan=0.422341, x=-0.92121, y=-0.389065), iteration=3: 0.424474816210\n    test 2427 203 202.861927650711 Chi(tan=0.421634, x=-1, y=-0.421634), iteration=3: 0.424474816210\n    test 2428 203 202.907832581930 Xi(tan=0.422578, x=-1.85054, y=-0.781995), iteration=3: 0.424474816210\n\n    test 2429 203 203.000000000000 Phi(tan=0.424475, x=-0.920505, y=-0.390731): 0.424474816210\n    test 2430 203 202.930871376810 Beta(tan=0.423052, x=-0.920976, y=-0.38962): 0.424474816210\n    test 2431 203 202.861904242075 Theta(tan=0.421633, x=-0.921444, y=-0.388511): 0.424474816210\n    test 2432 203 202.896337407506 Mu(tan=0.422341, x=-0.92121, y=-0.389065): 0.424474816210\n    test 2433 203 202.861927650711 Chi(tan=0.421634, x=-0.921444, y=-0.388512): 0.424474816210\n    test 2434 203 202.907832581930 Xi(tan=0.422578, x=-0.921132, y=-0.38925): 0.424474816210\n\n    test 2435 210 210.000000000000 Phi(tan=0.57735, x=-0.866025, y=-0.5): 0.577350269190\n    test 2436 210 209.916747713236 Beta(tan=0.575415, x=-0.866025, y=-0.498324): 0.577350269190\n    test 2437 210 209.833635809829 Theta(tan=0.573485, x=-0.866025, y=-0.496653): 0.577350269190\n    test 2438 210 209.875147936061 Mu(tan=0.574448, x=-0.867113, y=-0.498112), iteration=2: 0.577350269190\n    test 2439 210 209.833682042481 Chi(tan=0.573486, x=-1, y=-0.573486), iteration=2: 0.577350269190\n    test 2440 210 209.888997034460 Xi(tan=0.57477, x=-1.74177, y=-1.00112), iteration=3: 0.577350269190\n\n    test 2441 210 210.000000000000 Phi(tan=0.57735, x=-0.866025, y=-0.5): 0.577350269190\n    test 2442 210 209.916747713236 Beta(tan=0.575415, x=-0.866751, y=-0.498741): 0.577350269190\n    test 2443 210 209.833635809829 Theta(tan=0.573485, x=-0.867474, y=-0.497483): 0.577350269190\n    test 2444 210 209.875147936061 Mu(tan=0.574448, x=-0.867113, y=-0.498112): 0.577350269190\n    test 2445 210 209.833682042481 Chi(tan=0.573486, x=-0.867473, y=-0.497484): 0.577350269190\n    test 2446 210 209.888997034460 Xi(tan=0.57477, x=-0.866992, y=-0.498321): 0.577350269190\n\n    test 2447 217 217.000000000000 Phi(tan=0.753554, x=-0.798636, y=-0.601815): 0.753554050103\n    test 2448 217 216.907557725734 Beta(tan=0.751028, x=-0.798636, y=-0.599797): 0.753554050103\n    test 2449 217 216.815201948287 Theta(tan=0.748509, x=-0.798636, y=-0.597786): 0.753554050103\n    test 2450 217 216.861352829418 Mu(tan=0.749767, x=-0.800089, y=-0.599881), iteration=2: 0.753554050103\n    test 2451 217 216.815276448911 Chi(tan=0.748512, x=-1, y=-0.748512), iteration=2: 0.753554050103\n    test 2452 217 216.876737541007 Xi(tan=0.750187, x=-1.60704, y=-1.20558), iteration=3: 0.753554050103\n\n    test 2453 217 217.000000000000 Phi(tan=0.753554, x=-0.798636, y=-0.601815): 0.753554050103\n    test 2454 217 216.907557725734 Beta(tan=0.751028, x=-0.799605, y=-0.600526): 0.753554050103\n    test 2455 217 216.815201948287 Theta(tan=0.748509, x=-0.800572, y=-0.599236): 0.753554050103\n    test 2456 217 216.861352829418 Mu(tan=0.749767, x=-0.800089, y=-0.599881): 0.753554050103\n    test 2457 217 216.815276448911 Chi(tan=0.748512, x=-0.800572, y=-0.599237): 0.753554050103\n    test 2458 217 216.876737541007 Xi(tan=0.750187, x=-0.799928, y=-0.600095): 0.753554050103\n\n    test 2459 224 224.000000000000 Phi(tan=0.965689, x=-0.71934, y=-0.694658): 0.965688774807\n    test 2460 224 223.903852093789 Beta(tan=0.962451, x=-0.71934, y=-0.692329): 0.965688774807\n    test 2461 224 223.807716539068 Theta(tan=0.959224, x=-0.71934, y=-0.690008): 0.965688774807\n    test 2462 224 223.855780468115 Mu(tan=0.960836, x=-0.721086, y=-0.692846), iteration=3: 0.965688774807\n    test 2463 224 223.807819970397 Chi(tan=0.959228, x=-1, y=-0.959228), iteration=3: 0.965688774807\n    test 2464 224 223.871789544357 Xi(tan=0.961374, x=-1.44826, y=-1.39232), iteration=3: 0.965688774807\n\n    test 2465 224 224.000000000000 Phi(tan=0.965689, x=-0.71934, y=-0.694658): 0.965688774807\n    test 2466 224 223.903852093789 Beta(tan=0.962451, x=-0.720504, y=-0.69345): 0.965688774807\n    test 2467 224 223.807716539068 Theta(tan=0.959224, x=-0.721667, y=-0.69224): 0.965688774807\n    test 2468 224 223.855780468115 Mu(tan=0.960836, x=-0.721086, y=-0.692846): 0.965688774807\n    test 2469 224 223.807819970397 Chi(tan=0.959228, x=-0.721666, y=-0.692242): 0.965688774807\n    test 2470 224 223.871789544357 Xi(tan=0.961374, x=-0.720892, y=-0.693047): 0.965688774807\n\n    test 2471 231 231.000000000000 Phi(tan=1.2349, x=-0.62932, y=-0.777146): 1.234897156535\n    test 2472 231 230.905857444036 Beta(tan=1.23076, x=-0.62932, y=-0.77454): 1.234897156535\n    test 2473 231 230.811650146691 Theta(tan=1.22663, x=-0.62932, y=-0.771943): 1.234897156535\n    test 2474 231 230.858774044602 Mu(tan=1.22869, x=-0.631234, y=-0.775592), iteration=2: 1.234897156535\n    test 2475 231 230.811777138431 Chi(tan=1.22664, x=-1, y=-1.22664), iteration=3: 1.234897156535\n    test 2476 231 230.874456790611 Xi(tan=1.22938, x=-1.26771, y=-1.5585), iteration=2: 1.234897156535\n\n    test 2477 231 231.000000000000 Phi(tan=1.2349, x=-0.62932, y=-0.777146): 1.234897156535\n    test 2478 231 230.905857444036 Beta(tan=1.23076, x=-0.630596, y=-0.776111): 1.234897156535\n    test 2479 231 230.811650146691 Theta(tan=1.22663, x=-0.631872, y=-0.775073): 1.234897156535\n    test 2480 231 230.858774044602 Mu(tan=1.22869, x=-0.631234, y=-0.775592): 1.234897156535\n    test 2481 231 230.811777138431 Chi(tan=1.22664, x=-0.63187, y=-0.775074): 1.234897156535\n    test 2482 231 230.874456790611 Xi(tan=1.22938, x=-0.631022, y=-0.775765): 1.234897156535\n\n    test 2483 238 238.000000000000 Phi(tan=1.60033, x=-0.529919, y=-0.848048): 1.600334529041\n    test 2484 238 237.913461373388 Beta(tan=1.59497, x=-0.529919, y=-0.845205): 1.600334529041\n    test 2485 238 237.826796038008 Theta(tan=1.58962, x=-0.529919, y=-0.842371): 1.600334529041\n    test 2486 238 237.870168339397 Mu(tan=1.59229, x=-0.53184, y=-0.846845), iteration=2: 1.600334529041\n    test 2487 238 237.826935292578 Chi(tan=1.58963, x=-1, y=-1.58963), iteration=2: 1.600334529041\n    test 2488 238 237.884590997667 Xi(tan=1.59318, x=-1.06803, y=-1.70156), iteration=3: 1.600334529041\n\n    test 2489 238 238.000000000000 Phi(tan=1.60033, x=-0.529919, y=-0.848048): 1.600334529041\n    test 2490 238 237.913461373388 Beta(tan=1.59497, x=-0.5312, y=-0.847247): 1.600334529041\n    test 2491 238 237.826796038008 Theta(tan=1.58962, x=-0.53248, y=-0.846442): 1.600334529041\n    test 2492 238 237.870168339397 Mu(tan=1.59229, x=-0.53184, y=-0.846845): 1.600334529041\n    test 2493 238 237.826935292578 Chi(tan=1.58963, x=-0.532478, y=-0.846444): 1.600334529041\n    test 2494 238 237.884590997667 Xi(tan=1.59318, x=-0.531626, y=-0.846979): 1.600334529041\n\n    test 2495 245 245.000000000000 Phi(tan=2.14451, x=-0.422618, y=-0.906308): 2.144506920510\n    test 2496 245 244.926217548699 Beta(tan=2.13732, x=-0.422618, y=-0.903269): 2.144506920510\n    test 2497 245 244.852276137025 Theta(tan=2.13015, x=-0.422618, y=-0.900241): 2.144506920510\n    test 2498 245 244.889296576536 Mu(tan=2.13373, x=-0.424369, y=-0.90549), iteration=2: 2.144506920510\n    test 2499 245 244.852411952909 Chi(tan=2.13016, x=-1, y=-2.13016), iteration=3: 2.144506920510\n    test 2500 245 244.901598279036 Xi(tan=2.13493, x=-0.852157, y=-1.81929), iteration=2: 2.144506920510\n\n    test 2501 245 245.000000000000 Phi(tan=2.14451, x=-0.422618, y=-0.906308): 2.144506920510\n    test 2502 245 244.926217548699 Beta(tan=2.13732, x=-0.423785, y=-0.905763): 2.144506920510\n    test 2503 245 244.852276137025 Theta(tan=2.13015, x=-0.424954, y=-0.905215): 2.144506920510\n    test 2504 245 244.889296576536 Mu(tan=2.13373, x=-0.424369, y=-0.90549): 2.144506920510\n    test 2505 245 244.852411952909 Chi(tan=2.13016, x=-0.424951, y=-0.905216): 2.144506920510\n    test 2506 245 244.901598279036 Xi(tan=2.13493, x=-0.424174, y=-0.905581): 2.144506920510\n\n    test 2507 252 252.000000000000 Phi(tan=3.07768, x=-0.309017, y=-0.951057): 3.077683537175\n    test 2508 252 251.943370950484 Beta(tan=3.06736, x=-0.309017, y=-0.947868): 3.077683537175\n    test 2509 252 251.886588050489 Theta(tan=3.05708, x=-0.309017, y=-0.94469): 3.077683537175\n    test 2510 252 251.915027646278 Mu(tan=3.06222, x=-0.310427, y=-0.950597), iteration=3: 3.077683537175\n    test 2511 252 251.886702986922 Chi(tan=3.0571, x=-1, y=-3.0571), iteration=3: 3.077683537175\n    test 2512 252 251.924472501487 Xi(tan=3.06393, x=-0.623327, y=-1.90983), iteration=3: 3.077683537175\n\n    test 2513 252 252.000000000000 Phi(tan=3.07768, x=-0.309017, y=-0.951057): 3.077683537175\n    test 2514 252 251.943370950484 Beta(tan=3.06736, x=-0.309957, y=-0.950751): 3.077683537175\n    test 2515 252 251.886588050489 Theta(tan=3.05708, x=-0.310899, y=-0.950443): 3.077683537175\n    test 2516 252 251.915027646278 Mu(tan=3.06222, x=-0.310427, y=-0.950597): 3.077683537175\n    test 2517 252 251.886702986922 Chi(tan=3.0571, x=-0.310897, y=-0.950444): 3.077683537175\n    test 2518 252 251.924472501487 Xi(tan=3.06393, x=-0.31027, y=-0.950648): 3.077683537175\n\n    test 2519 259 259.000000000000 Phi(tan=5.14455, x=-0.190809, y=-0.981627): 5.144554015970\n    test 2520 259 258.963902062378 Beta(tan=5.12731, x=-0.190809, y=-0.978336): 5.144554015970\n    test 2521 259 258.927691601915 Theta(tan=5.11011, x=-0.190809, y=-0.975056): 5.144554015970\n    test 2522 259 258.945832050834 Mu(tan=5.11871, x=-0.191737, y=-0.981446), iteration=3: 5.144554015970\n    test 2523 259 258.927769725031 Chi(tan=5.11015, x=-1, y=-5.11015), iteration=3: 5.144554015970\n    test 2524 259 258.951854051022 Xi(tan=5.12157, x=-0.384988, y=-1.97175), iteration=3: 5.144554015970\n\n    test 2525 259 259.000000000000 Phi(tan=5.14455, x=-0.190809, y=-0.981627): 5.144554015970\n    test 2526 259 258.963902062378 Beta(tan=5.12731, x=-0.191427, y=-0.981507): 5.144554015970\n    test 2527 259 258.927691601915 Theta(tan=5.11011, x=-0.192048, y=-0.981386): 5.144554015970\n    test 2528 259 258.945832050834 Mu(tan=5.11871, x=-0.191737, y=-0.981446): 5.144554015970\n    test 2529 259 258.927769725031 Chi(tan=5.11015, x=-0.192046, y=-0.981386): 5.144554015970\n    test 2530 259 258.951854051022 Xi(tan=5.12157, x=-0.191634, y=-0.981466): 5.144554015970\n\n    test 2531 266 266.000000000000 Phi(tan=14.3007, x=-0.0697565, y=-0.997564): 14.300666256712\n    test 2532 266 265.986587541025 Beta(tan=14.2527, x=-0.0697565, y=-0.994219): 14.300666256712\n    test 2533 266 265.973130404128 Theta(tan=14.2049, x=-0.0697565, y=-0.990886): 14.300666256712\n    test 2534 266 265.979872957664 Mu(tan=14.2288, x=-0.0701069, y=-0.997539), iteration=3: 14.300666256712\n    test 2535 266 265.973160396216 Chi(tan=14.205, x=-1, y=-14.205), iteration=3: 14.300666256712\n    test 2536 266 265.982110758522 Xi(tan=14.2368, x=-0.140765, y=-2.00404), iteration=2: 14.300666256712\n\n    test 2537 266 266.000000000000 Phi(tan=14.3007, x=-0.0697565, y=-0.997564): 14.300666256712\n    test 2538 266 265.986587541025 Beta(tan=14.2527, x=-0.06999, y=-0.997548): 14.300666256712\n    test 2539 266 265.973130404128 Theta(tan=14.2049, x=-0.0702243, y=-0.997531): 14.300666256712\n    test 2540 266 265.979872957664 Mu(tan=14.2288, x=-0.0701069, y=-0.997539): 14.300666256712\n    test 2541 266 265.973160396216 Chi(tan=14.205, x=-0.0702238, y=-0.997531): 14.300666256712\n    test 2542 266 265.982110758522 Xi(tan=14.2368, x=-0.0700679, y=-0.997542): 14.300666256712\n\n    test 2543 273 273.000000000000 Phi(tan=-19.0811, x=0.052336, y=-0.99863): -19.081136687728\n    test 2544 273 273.010073740960 Beta(tan=-19.0172, x=0.052336, y=-0.995281): -19.081136687728\n    test 2545 273 273.020181183682 Theta(tan=-18.9534, x=0.052336, y=-0.991944): -19.081136687728\n    test 2546 273 273.015116912927 Mu(tan=-18.9853, x=0.0525994, y=-0.998616), iteration=3: -19.081136687728\n    test 2547 273 273.020158608531 Chi(tan=-18.9535, x=1.0, y=-18.9535), iteration=2: -19.081136687728\n    test 2548 273 273.013436145998 Xi(tan=-18.9959, x=0.105612, y=-2.0062), iteration=2: -19.081136687728\n\n    test 2549 273 273.000000000000 Phi(tan=-19.0811, x=0.052336, y=-0.99863): -19.081136687728\n    test 2550 273 273.010073740960 Beta(tan=-19.0172, x=0.0525115, y=-0.99862): -19.081136687728\n    test 2551 273 273.020181183682 Theta(tan=-18.9534, x=0.0526877, y=-0.998611): -19.081136687728\n    test 2552 273 273.015116912927 Mu(tan=-18.9853, x=0.0525994, y=-0.998616): -19.081136687728\n    test 2553 273 273.020158608531 Chi(tan=-18.9535, x=0.0526873, y=-0.998611): -19.081136687728\n    test 2554 273 273.013436145998 Xi(tan=-18.9959, x=0.0525701, y=-0.998617): -19.081136687728\n\n    test 2555 280 280.000000000000 Phi(tan=-5.67128, x=0.173648, y=-0.984808): -5.671281819618\n    test 2556 280 280.032958527773 Beta(tan=-5.65227, x=0.173648, y=-0.981506): -5.671281819618\n    test 2557 280 280.066021190034 Theta(tan=-5.63332, x=0.173648, y=-0.978215): -5.671281819618\n    test 2558 280 280.049457265110 Mu(tan=-5.64279, x=0.174498, y=-0.984657), iteration=3: -5.671281819618\n    test 2559 280 280.065949391281 Chi(tan=-5.63336, x=1.0, y=-5.63336), iteration=2: -5.671281819618\n    test 2560 280 280.043958856452 Xi(tan=-5.64595, x=0.350374, y=-1.97819), iteration=3: -5.671281819618\n\n    test 2561 280 280.000000000000 Phi(tan=-5.67128, x=0.173648, y=-0.984808): -5.671281819618\n    test 2562 280 280.032958527773 Beta(tan=-5.65227, x=0.174215, y=-0.984708): -5.671281819618\n    test 2563 280 280.066021190034 Theta(tan=-5.63332, x=0.174783, y=-0.984607): -5.671281819618\n    test 2564 280 280.049457265110 Mu(tan=-5.64279, x=0.174498, y=-0.984657): -5.671281819618\n    test 2565 280 280.065949391281 Chi(tan=-5.63336, x=0.174782, y=-0.984607): -5.671281819618\n    test 2566 280 280.043958856452 Xi(tan=-5.64595, x=0.174404, y=-0.984674): -5.671281819618\n\n    test 2567 287 287.000000000000 Phi(tan=-3.27085, x=0.292372, y=-0.956305): -3.270852618484\n    test 2568 287 287.053876189570 Beta(tan=-3.25989, x=0.292372, y=-0.953098): -3.270852618484\n    test 2569 287 287.107902403143 Theta(tan=-3.24896, x=0.292372, y=-0.949903): -3.270852618484\n    test 2570 287 287.080842346698 Mu(tan=-3.25442, x=0.293721, y=-0.955891), iteration=3: -3.270852618484\n    test 2571 287 287.107791826667 Chi(tan=-3.24898, x=1.0, y=-3.24898), iteration=2: -3.270852618484\n    test 2572 287 287.071856267521 Xi(tan=-3.25624, x=0.589778, y=-1.92046), iteration=3: -3.270852618484\n\n    test 2573 287 287.000000000000 Phi(tan=-3.27085, x=0.292372, y=-0.956305): -3.270852618484\n    test 2574 287 287.053876189570 Beta(tan=-3.25989, x=0.293271, y=-0.956029): -3.270852618484\n    test 2575 287 287.107902403143 Theta(tan=-3.24896, x=0.294172, y=-0.955752): -3.270852618484\n    test 2576 287 287.080842346698 Mu(tan=-3.25442, x=0.293721, y=-0.955891): -3.270852618484\n    test 2577 287 287.107791826667 Chi(tan=-3.24898, x=0.29417, y=-0.955753): -3.270852618484\n    test 2578 287 287.071856267521 Xi(tan=-3.25624, x=0.293571, y=-0.955937): -3.270852618484\n\n    test 2579 294 294.000000000000 Phi(tan=-2.24604, x=0.406737, y=-0.913545): -2.246036773904\n    test 2580 294 294.071580020440 Beta(tan=-2.23851, x=0.406737, y=-0.910483): -2.246036773904\n    test 2581 294 294.143320630937 Theta(tan=-2.231, x=0.406737, y=-0.90743): -2.246036773904\n    test 2582 294 294.107400080405 Mu(tan=-2.23475, x=0.408448, y=-0.912781), iteration=3: -2.246036773904\n    test 2583 294 294.143186728996 Chi(tan=-2.23101, x=1.0, y=-2.23101), iteration=3: -2.246036773904\n    test 2584 294 294.095464961355 Xi(tan=-2.236, x=0.820183, y=-1.83393), iteration=3: -2.246036773904\n\n    test 2585 294 294.000000000000 Phi(tan=-2.24604, x=0.406737, y=-0.913545): -2.246036773904\n    test 2586 294 294.071580020440 Beta(tan=-2.23851, x=0.407878, y=-0.913037): -2.246036773904\n    test 2587 294 294.143320630937 Theta(tan=-2.231, x=0.409021, y=-0.912525): -2.246036773904\n    test 2588 294 294.107400080405 Mu(tan=-2.23475, x=0.408448, y=-0.912781): -2.246036773904\n    test 2589 294 294.143186728996 Chi(tan=-2.23101, x=0.409018, y=-0.912526): -2.246036773904\n    test 2590 294 294.095464961355 Xi(tan=-2.236, x=0.408258, y=-0.912866): -2.246036773904\n\n    test 2591 301 301.000000000000 Phi(tan=-1.66428, x=0.515038, y=-0.857167): -1.664279482351\n    test 2592 301 301.085017327347 Beta(tan=-1.6587, x=0.515038, y=-0.854293): -1.664279482351\n    test 2593 301 301.170168056505 Theta(tan=-1.65314, x=0.515038, y=-0.851429): -1.664279482351\n    test 2594 301 301.127550963364 Mu(tan=-1.65592, x=0.516945, y=-0.856019), iteration=3: -1.664279482351\n    test 2595 301 301.170028258270 Chi(tan=-1.65315, x=1.0, y=-1.65315), iteration=3: -1.664279482351\n    test 2596 301 301.113380969671 Xi(tan=-1.65684, x=1.03811, y=-1.71998), iteration=3: -1.664279482351\n\n    test 2597 301 301.000000000000 Phi(tan=-1.66428, x=0.515038, y=-0.857167): -1.664279482351\n    test 2598 301 301.085017327347 Beta(tan=-1.6587, x=0.516309, y=-0.856402): -1.664279482351\n    test 2599 301 301.170168056505 Theta(tan=-1.65314, x=0.517582, y=-0.855634): -1.664279482351\n    test 2600 301 301.127550963364 Mu(tan=-1.65592, x=0.516945, y=-0.856019): -1.664279482351\n    test 2601 301 301.170028258270 Chi(tan=-1.65315, x=0.517579, y=-0.855635): -1.664279482351\n    test 2602 301 301.113380969671 Xi(tan=-1.65684, x=0.516733, y=-0.856146): -1.664279482351\n\n    test 2603 308 308.000000000000 Phi(tan=-1.27994, x=0.615661, y=-0.788011): -1.279941632193\n    test 2604 308 308.093392183249 Beta(tan=-1.27565, x=0.615661, y=-0.785369): -1.279941632193\n    test 2605 308 308.186859283180 Theta(tan=-1.27137, x=0.615661, y=-0.782736): -1.279941632193\n    test 2606 308 308.140102302012 Mu(tan=-1.27351, x=0.617587, y=-0.786503), iteration=2: -1.279941632193\n    test 2607 308 308.186729722475 Chi(tan=-1.27138, x=1.0, y=-1.27138), iteration=3: -1.279941632193\n    test 2608 308 308.124543504213 Xi(tan=-1.27422, x=1.24029, y=-1.58041), iteration=2: -1.279941632193\n\n    test 2609 308 308.000000000000 Phi(tan=-1.27994, x=0.615661, y=-0.788011): -1.279941632193\n    test 2610 308 308.093392183249 Beta(tan=-1.27565, x=0.616945, y=-0.787006): -1.279941632193\n    test 2611 308 308.186859283180 Theta(tan=-1.27137, x=0.618228, y=-0.785999): -1.279941632193\n    test 2612 308 308.140102302012 Mu(tan=-1.27351, x=0.617587, y=-0.786503): -1.279941632193\n    test 2613 308 308.186729722475 Chi(tan=-1.27138, x=0.618226, y=-0.786): -1.279941632193\n    test 2614 308 308.124543504213 Xi(tan=-1.27422, x=0.617373, y=-0.786671): -1.279941632193\n\n    test 2615 315 315.000000000000 Phi(tan=-1, x=0.707107, y=-0.707107): -1.000000000000\n    test 2616 315 315.096212150580 Beta(tan=-0.996647, x=0.707107, y=-0.704736): -1.000000000000\n    test 2617 315 315.192423215982 Theta(tan=-0.993306, x=0.707107, y=-0.702373): -1.000000000000\n    test 2618 315 315.144318011093 Mu(tan=-0.994975, x=0.708886, y=-0.705323), iteration=2: -1.000000000000\n    test 2619 315 315.192315943911 Chi(tan=-0.993309, x=1.0, y=-0.993309), iteration=3: -1.000000000000\n    test 2620 315 315.128297126566 Xi(tan=-0.995532, x=1.42374, y=-1.41738), iteration=3: -1.000000000000\n\n    test 2621 315 315.000000000000 Phi(tan=-1, x=0.707107, y=-0.707107): -1.000000000000\n    test 2622 315 315.096212150580 Beta(tan=-0.996647, x=0.708293, y=-0.705918): -1.000000000000\n    test 2623 315 315.192423215982 Theta(tan=-0.993306, x=0.709478, y=-0.704728): -1.000000000000\n    test 2624 315 315.144318011093 Mu(tan=-0.994975, x=0.708886, y=-0.705323): -1.000000000000\n    test 2625 315 315.192315943911 Chi(tan=-0.993309, x=0.709476, y=-0.704729): -1.000000000000\n    test 2626 315 315.128297126566 Xi(tan=-0.995532, x=0.708688, y=-0.705522): -1.000000000000\n\n    test 2627 322 322.000000000000 Phi(tan=-0.781286, x=0.788011, y=-0.615661): -0.781285626507\n    test 2628 322 322.093316334881 Beta(tan=-0.778666, x=0.788011, y=-0.613597): -0.781285626507\n    test 2629 322 322.186555893687 Theta(tan=-0.776055, x=0.788011, y=-0.61154): -0.781285626507\n    test 2630 322 322.139960086634 Mu(tan=-0.777359, x=0.789512, y=-0.613735), iteration=3: -0.781285626507\n    test 2631 322 322.186477167765 Chi(tan=-0.776058, x=1.0, y=-0.776058), iteration=3: -0.781285626507\n    test 2632 322 322.124428869604 Xi(tan=-0.777794, x=1.58578, y=-1.23341), iteration=2: -0.781285626507\n\n    test 2633 322 322.000000000000 Phi(tan=-0.781286, x=0.788011, y=-0.615661): -0.781285626507\n    test 2634 322 322.093316334881 Beta(tan=-0.778666, x=0.789012, y=-0.614377): -0.781285626507\n    test 2635 322 322.186555893687 Theta(tan=-0.776055, x=0.790011, y=-0.613092): -0.781285626507\n    test 2636 322 322.139960086634 Mu(tan=-0.777359, x=0.789512, y=-0.613735): -0.781285626507\n    test 2637 322 322.186477167765 Chi(tan=-0.776058, x=0.79001, y=-0.613094): -0.781285626507\n    test 2638 322 322.124428869604 Xi(tan=-0.777794, x=0.789346, y=-0.613949): -0.781285626507\n\n    test 2639 329 329.000000000000 Phi(tan=-0.600861, x=0.857167, y=-0.515038): -0.600860619028\n    test 2640 329 329.084883386958 Beta(tan=-0.598846, x=0.857167, y=-0.513311): -0.600860619028\n    test 2641 329 329.169632300503 Theta(tan=-0.596838, x=0.857167, y=-0.51159): -0.600860619028\n    test 2642 329 329.127299825611 Mu(tan=-0.597841, x=0.858309, y=-0.513132), iteration=2: -0.600860619028\n    test 2643 329 329.169582272165 Chi(tan=-0.596839, x=1.0, y=-0.596839), iteration=3: -0.600860619028\n    test 2644 329 329.113178536759 Xi(tan=-0.598175, x=1.72407, y=-1.0313), iteration=3: -0.600860619028\n\n    test 2645 329 329.000000000000 Phi(tan=-0.600861, x=0.857167, y=-0.515038): -0.600860619028\n    test 2646 329 329.084883386958 Beta(tan=-0.598846, x=0.857929, y=-0.513768): -0.600860619028\n    test 2647 329 329.169632300503 Theta(tan=-0.596838, x=0.858688, y=-0.512498): -0.600860619028\n    test 2648 329 329.127299825611 Mu(tan=-0.597841, x=0.858309, y=-0.513132): -0.600860619028\n    test 2649 329 329.169582272165 Chi(tan=-0.596839, x=0.858688, y=-0.512499): -0.600860619028\n    test 2650 329 329.113178536759 Xi(tan=-0.598175, x=0.858183, y=-0.513344): -0.600860619028\n\n    test 2651 336 336.000000000000 Phi(tan=-0.445229, x=0.913545, y=-0.406737): -0.445228685309\n    test 2652 336 336.071419343981 Beta(tan=-0.443736, x=0.913545, y=-0.405373): -0.445228685309\n    test 2653 336 336.142677929298 Theta(tan=-0.442248, x=0.913545, y=-0.404014): -0.445228685309\n    test 2654 336 336.107098812499 Mu(tan=-0.442991, x=0.914304, y=-0.405028), iteration=3: -0.445228685309\n    test 2655 336 336.142651717918 Chi(tan=-0.442249, x=1.0, y=-0.442249), iteration=3: -0.445228685309\n    test 2656 336 336.095222120427 Xi(tan=-0.443239, x=1.83665, y=-0.814074), iteration=3: -0.445228685309\n\n    test 2657 336 336.000000000000 Phi(tan=-0.445229, x=0.913545, y=-0.406737): -0.445228685309\n    test 2658 336 336.071419343981 Beta(tan=-0.443736, x=0.914052, y=-0.405598): -0.445228685309\n    test 2659 336 336.142677929298 Theta(tan=-0.442248, x=0.914555, y=-0.40446): -0.445228685309\n    test 2660 336 336.107098812499 Mu(tan=-0.442991, x=0.914304, y=-0.405028): -0.445228685309\n    test 2661 336 336.142651717918 Chi(tan=-0.442249, x=0.914555, y=-0.404461): -0.445228685309\n    test 2662 336 336.095222120427 Xi(tan=-0.443239, x=0.91422, y=-0.405218): -0.445228685309\n\n    test 2663 343 343.000000000000 Phi(tan=-0.305731, x=0.956305, y=-0.292372): -0.305730681459\n    test 2664 343 343.053726392145 Beta(tan=-0.304706, x=0.956305, y=-0.291391): -0.305730681459\n    test 2665 343 343.107303214923 Theta(tan=-0.303684, x=0.956305, y=-0.290414): -0.305730681459\n    test 2666 343 343.080561476830 Mu(tan=-0.304194, x=0.956715, y=-0.291027), iteration=3: -0.305730681459\n    test 2667 343 343.107293039045 Chi(tan=-0.303684, x=1.0, y=-0.303684), iteration=2: -0.305730681459\n    test 2668 343 343.071629868756 Xi(tan=-0.304364, x=1.92193, y=-0.584967), iteration=2: -0.305730681459\n\n    test 2669 343 343.000000000000 Phi(tan=-0.305731, x=0.956305, y=-0.292372): -0.305730681459\n    test 2670 343 343.053726392145 Beta(tan=-0.304706, x=0.956578, y=-0.291475): -0.305730681459\n    test 2671 343 343.107303214923 Theta(tan=-0.303684, x=0.956851, y=-0.29058): -0.305730681459\n    test 2672 343 343.080561476830 Mu(tan=-0.304194, x=0.956715, y=-0.291027): -0.305730681459\n    test 2673 343 343.107293039045 Chi(tan=-0.303684, x=0.956851, y=-0.29058): -0.305730681459\n    test 2674 343 343.071629868756 Xi(tan=-0.304364, x=0.95667, y=-0.291176): -0.305730681459\n\n    test 2675 350 350.000000000000 Phi(tan=-0.176327, x=0.984808, y=-0.173648): -0.176326980708\n    test 2676 350 350.032854677782 Beta(tan=-0.175736, x=0.984808, y=-0.173066): -0.176326980708\n    test 2677 350 350.065605789721 Theta(tan=-0.175147, x=0.984808, y=-0.172486): -0.176326980708\n    test 2678 350 350.049262546520 Mu(tan=-0.175441, x=0.984957, y=-0.172801), iteration=3: -0.176326980708\n    test 2679 350 350.065603596501 Chi(tan=-0.175147, x=1.0, y=-0.175147), iteration=2: -0.176326980708\n    test 2680 350 350.043801901064 Xi(tan=-0.175539, x=1.97873, y=-0.347343), iteration=3: -0.176326980708\n\n    test 2681 350 350.000000000000 Phi(tan=-0.176327, x=0.984808, y=-0.173648): -0.176326980708\n    test 2682 350 350.032854677782 Beta(tan=-0.175736, x=0.984907, y=-0.173083): -0.176326980708\n    test 2683 350 350.065605789721 Theta(tan=-0.175147, x=0.985006, y=-0.17252): -0.176326980708\n    test 2684 350 350.049262546520 Mu(tan=-0.175441, x=0.984957, y=-0.172801): -0.176326980708\n    test 2685 350 350.065603596501 Chi(tan=-0.175147, x=0.985006, y=-0.17252): -0.176326980708\n    test 2686 350 350.043801901064 Xi(tan=-0.175539, x=0.98494, y=-0.172895): -0.176326980708\n\n    test 2687 357 357.000000000000 Phi(tan=-0.0524078, x=0.99863, y=-0.052336): -0.052407779283\n    test 2688 357 357.010040150331 Beta(tan=-0.0522321, x=0.99863, y=-0.0521605): -0.052407779283\n    test 2689 357 357.020046820811 Theta(tan=-0.0520569, x=0.99863, y=-0.0519856): -0.052407779283\n    test 2690 357 357.015053930532 Mu(tan=-0.0521443, x=0.998643, y=-0.0520736), iteration=3: -0.052407779283\n    test 2691 357 357.020046759956 Chi(tan=-0.0520569, x=1.0, y=-0.0520569), iteration=3: -0.052407779283\n    test 2692 357 357.013385378246 Xi(tan=-0.0521735, x=2.00625, y=-0.104673), iteration=3: -0.052407779283\n\n    test 2693 357 357.000000000000 Phi(tan=-0.0524078, x=0.99863, y=-0.052336): -0.052407779283\n    test 2694 357 357.010040150331 Beta(tan=-0.0522321, x=0.998639, y=-0.052161): -0.052407779283\n    test 2695 357 357.020046820811 Theta(tan=-0.0520569, x=0.998648, y=-0.0519865): -0.052407779283\n    test 2696 357 357.015053930532 Mu(tan=-0.0521443, x=0.998643, y=-0.0520736): -0.052407779283\n    test 2697 357 357.020046759956 Chi(tan=-0.0520569, x=0.998648, y=-0.0519866): -0.052407779283\n    test 2698 357 357.013385378246 Xi(tan=-0.0521735, x=0.998642, y=-0.0521027): -0.052407779283\n\n    test 2699  0 0.000000000000 Phi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 2700  0 0.000000000000 Beta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 2701  0 0.000000000000 Theta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 2702  0 0.000000000000 Mu(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 2703  0 0.000000000000 Chi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 2704  0 0.000000000000 Xi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n\n    test 2705  0 0.000000000000 Phi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 2706  0 0.000000000000 Beta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 2707  0 0.000000000000 Theta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 2708  0 0.000000000000 Mu(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 2709  0 0.000000000000 Chi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 2710  0 0.000000000000 Xi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n\n    test 2711  7 7.046703746044 Phi(tan=0.123612, x=0.992546, y=0.122691): 0.122784560903\n    test 2712  7 7.023313832609 Beta(tan=0.123198, x=0.992546, y=0.122279): 0.122784560903\n    test 2713  7 7.000000000000 Theta(tan=0.122785, x=0.992546, y=0.121869): 0.122784560903\n    test 2714  7 7.011633179954 Mu(tan=0.122991, x=0.992521, y=0.122071), iteration=3: 0.122784560903\n    test 2715  7 7.000000779127 Chi(tan=0.122785, x=1.0, y=0.122785), iteration=2: 0.122784560903\n    test 2716  7 7.015520491938 Xi(tan=0.12306, x=1.99394, y=0.245373), iteration=2: 0.122784560903\n\n    test 2717  7 7.046703746044 Phi(tan=0.123612, x=0.992446, y=0.122678): 0.122784560903\n    test 2718  7 7.023313832609 Beta(tan=0.123198, x=0.992496, y=0.122273): 0.122784560903\n    test 2719  7 7.000000000000 Theta(tan=0.122785, x=0.992546, y=0.121869): 0.122784560903\n    test 2720  7 7.011633179954 Mu(tan=0.122991, x=0.992521, y=0.122071): 0.122784560903\n    test 2721  7 7.000000779127 Chi(tan=0.122785, x=0.992546, y=0.121869): 0.122784560903\n    test 2722  7 7.015520491938 Xi(tan=0.12306, x=0.992513, y=0.122138): 0.122784560903\n\n    test 2723 14 14.090606168436 Phi(tan=0.251008, x=0.970296, y=0.243552): 0.249328002843\n    test 2724 14 14.045235971490 Beta(tan=0.250167, x=0.970296, y=0.242736): 0.249328002843\n    test 2725 14 14.000000000000 Theta(tan=0.249328, x=0.970296, y=0.241922): 0.249328002843\n    test 2726 14 14.022576103630 Mu(tan=0.249747, x=0.9702, y=0.242304), iteration=3: 0.249328002843\n    test 2727 14 14.000005955939 Chi(tan=0.249328, x=1.0, y=0.249328), iteration=2: 0.249328002843\n    test 2728 14 14.030117773793 Xi(tan=0.249886, x=1.94905, y=0.487041), iteration=3: 0.249328002843\n\n    test 2729 14 14.090606168436 Phi(tan=0.251008, x=0.969912, y=0.243456): 0.249328002843\n    test 2730 14 14.045235971490 Beta(tan=0.250167, x=0.970104, y=0.242688): 0.249328002843\n    test 2731 14 14.000000000000 Theta(tan=0.249328, x=0.970296, y=0.241922): 0.249328002843\n    test 2732 14 14.022576103630 Mu(tan=0.249747, x=0.9702, y=0.242304): 0.249328002843\n    test 2733 14 14.000005955939 Chi(tan=0.249328, x=0.970296, y=0.241922): 0.249328002843\n    test 2734 14 14.030117773793 Xi(tan=0.249886, x=0.970168, y=0.242432): 0.249328002843\n\n    test 2735 21 21.129078684131 Phi(tan=0.386451, x=0.93358, y=0.360783): 0.383864035035\n    test 2736 21 21.064458966605 Beta(tan=0.385155, x=0.93358, y=0.359574): 0.383864035035\n    test 2737 21 21.000000000000 Theta(tan=0.383864, x=0.93358, y=0.358368): 0.383864035035\n    test 2738 21 21.032179314629 Mu(tan=0.384509, x=0.933379, y=0.358892), iteration=3: 0.383864035035\n    test 2739 21 21.000018617196 Chi(tan=0.383864, x=1.0, y=0.383864), iteration=3: 0.383864035035\n    test 2740 21 21.042923749309 Xi(tan=0.384724, x=1.875, y=0.721359), iteration=3: 0.383864035035\n\n    test 2741 21 21.129078684131 Phi(tan=0.386451, x=0.932771, y=0.36047): 0.383864035035\n    test 2742 21 21.064458966605 Beta(tan=0.385155, x=0.933177, y=0.359418): 0.383864035035\n    test 2743 21 21.000000000000 Theta(tan=0.383864, x=0.93358, y=0.358368): 0.383864035035\n    test 2744 21 21.032179314629 Mu(tan=0.384509, x=0.933379, y=0.358892): 0.383864035035\n    test 2745 21 21.000018617196 Chi(tan=0.383864, x=0.93358, y=0.358368): 0.383864035035\n    test 2746 21 21.042923749309 Xi(tan=0.384724, x=0.933312, y=0.359067): 0.383864035035\n\n    test 2747 28 28.159826417635 Phi(tan=0.535293, x=0.882948, y=0.472636): 0.531709431661\n    test 2748 28 28.079838480095 Beta(tan=0.533498, x=0.882948, y=0.471051): 0.531709431661\n    test 2749 28 28.000000000000 Theta(tan=0.531709, x=0.882948, y=0.469472): 0.531709431661\n    test 2750 28 28.039872584755 Mu(tan=0.532602, x=0.882621, y=0.470086), iteration=2: 0.531709431661\n    test 2751 28 28.000039556231 Chi(tan=0.53171, x=1.0, y=0.53171), iteration=3: 0.531709431661\n    test 2752 28 28.053177215354 Xi(tan=0.532901, x=1.77295, y=0.944805), iteration=3: 0.531709431661\n\n    test 2753 28 28.159826417635 Phi(tan=0.535293, x=0.881635, y=0.471933): 0.531709431661\n    test 2754 28 28.079838480095 Beta(tan=0.533498, x=0.882293, y=0.470701): 0.531709431661\n    test 2755 28 28.000000000000 Theta(tan=0.531709, x=0.882948, y=0.469472): 0.531709431661\n    test 2756 28 28.039872584755 Mu(tan=0.532602, x=0.882621, y=0.470086): 0.531709431661\n    test 2757 28 28.000039556231 Chi(tan=0.53171, x=0.882947, y=0.469472): 0.531709431661\n    test 2758 28 28.053177215354 Xi(tan=0.532901, x=0.882511, y=0.470291): 0.531709431661\n\n    test 2759 35 35.181026690786 Phi(tan=0.704927, x=0.819152, y=0.577442): 0.700207538210\n    test 2760 35 35.090461812463 Beta(tan=0.702563, x=0.819152, y=0.575506): 0.700207538210\n    test 2761 35 35.000000000000 Theta(tan=0.700208, x=0.819152, y=0.573576): 0.700207538210\n    test 2762 35 35.045198725900 Mu(tan=0.701384, x=0.818699, y=0.574222), iteration=3: 0.700207538210\n    test 2763 35 35.000066866642 Chi(tan=0.700209, x=1.0, y=0.700209), iteration=2: 0.700207538210\n    test 2764 35 35.060269183174 Xi(tan=0.701776, x=1.64445, y=1.15403), iteration=3: 0.700207538210\n\n    test 2765 35 35.181026690786 Phi(tan=0.704927, x=0.817336, y=0.576162): 0.700207538210\n    test 2766 35 35.090461812463 Beta(tan=0.702563, x=0.818245, y=0.574869): 0.700207538210\n    test 2767 35 35.000000000000 Theta(tan=0.700208, x=0.819152, y=0.573576): 0.700207538210\n    test 2768 35 35.045198725900 Mu(tan=0.701384, x=0.818699, y=0.574222): 0.700207538210\n    test 2769 35 35.000066866642 Chi(tan=0.700209, x=0.819151, y=0.573577): 0.700207538210\n    test 2770 35 35.060269183174 Xi(tan=0.701776, x=0.818548, y=0.574438): 0.700207538210\n\n    test 2771 42 42.191436312869 Phi(tan=0.906472, x=0.743145, y=0.67364): 0.900404044298\n    test 2772 42 42.095701889505 Beta(tan=0.903433, x=0.743145, y=0.671382): 0.900404044298\n    test 2773 42 42.000000000000 Theta(tan=0.900404, x=0.743145, y=0.669131): 0.900404044298\n    test 2774 42 42.047840790779 Mu(tan=0.901917, x=0.742586, y=0.669751), iteration=3: 0.900404044298\n    test 2775 42 42.000096219009 Chi(tan=0.900407, x=1.0, y=0.900407), iteration=2: 0.900404044298\n    test 2776 42 42.063779025222 Xi(tan=0.902422, x=1.49147, y=1.34593), iteration=2: 0.900404044298\n\n    test 2777 42 42.191436312869 Phi(tan=0.906472, x=0.740905, y=0.67161): 0.900404044298\n    test 2778 42 42.095701889505 Beta(tan=0.903433, x=0.742026, y=0.670371): 0.900404044298\n    test 2779 42 42.000000000000 Theta(tan=0.900404, x=0.743145, y=0.669131): 0.900404044298\n    test 2780 42 42.047840790779 Mu(tan=0.901917, x=0.742586, y=0.669751): 0.900404044298\n    test 2781 42 42.000096219009 Chi(tan=0.900407, x=0.743144, y=0.669132): 0.900404044298\n    test 2782 42 42.063779025222 Xi(tan=0.902422, x=0.7424, y=0.669957): 0.900404044298\n\n    test 2783 49 49.190461558643 Phi(tan=1.15812, x=0.656059, y=0.759796): 1.150368407221\n    test 2784 49 49.095253561343 Beta(tan=1.15424, x=0.656059, y=0.757248): 1.150368407221\n    test 2785 49 49.000000000000 Theta(tan=1.15037, x=0.656059, y=0.75471): 1.150368407221\n    test 2786 49 49.047641033804 Mu(tan=1.1523, x=0.655431, y=0.755255), iteration=3: 1.150368407221\n    test 2787 49 49.000121761599 Chi(tan=1.15037, x=1.0, y=1.15037), iteration=3: 1.150368407221\n    test 2788 49 49.063499305647 Xi(tan=1.15295, x=1.31633, y=1.51766), iteration=3: 1.150368407221\n\n    test 2789 49 49.190461558643 Phi(tan=1.15812, x=0.653547, y=0.756886): 1.150368407221\n    test 2790 49 49.095253561343 Beta(tan=1.15424, x=0.654803, y=0.755799): 1.150368407221\n    test 2791 49 49.000000000000 Theta(tan=1.15037, x=0.656059, y=0.75471): 1.150368407221\n    test 2792 49 49.047641033804 Mu(tan=1.1523, x=0.655431, y=0.755255): 1.150368407221\n    test 2793 49 49.000121761599 Chi(tan=1.15037, x=0.656057, y=0.754711): 1.150368407221\n    test 2794 49 49.063499305647 Xi(tan=1.15295, x=0.655222, y=0.755436): 1.150368407221\n\n    test 2795 56 56.178187618527 Phi(tan=1.49255, x=0.559193, y=0.834625): 1.482560968513\n    test 2796 56 56.089150284766 Beta(tan=1.48755, x=0.559193, y=0.831827): 1.482560968513\n    test 2797 56 56.000000000000 Theta(tan=1.48256, x=0.559193, y=0.829038): 1.482560968513\n    test 2798 56 56.044610470922 Mu(tan=1.48505, x=0.558547, y=0.829473), iteration=3: 1.482560968513\n    test 2799 56 56.000137435853 Chi(tan=1.48257, x=1.0, y=1.48257), iteration=3: 1.482560968513\n    test 2800 56 56.059447854026 Xi(tan=1.48588, x=1.12168, y=1.66668), iteration=2: 1.482560968513\n\n    test 2801 56 56.178187618527 Phi(tan=1.49255, x=0.556612, y=0.830773): 1.482560968513\n    test 2802 56 56.089150284766 Beta(tan=1.48755, x=0.557902, y=0.829907): 1.482560968513\n    test 2803 56 56.000000000000 Theta(tan=1.48256, x=0.559193, y=0.829038): 1.482560968513\n    test 2804 56 56.044610470922 Mu(tan=1.48505, x=0.558547, y=0.829473): 1.482560968513\n    test 2805 56 56.000137435853 Chi(tan=1.48257, x=0.559191, y=0.829039): 1.482560968513\n    test 2806 56 56.059447854026 Xi(tan=1.48588, x=0.558332, y=0.829617): 1.482560968513\n\n    test 2807 63 63.155367155141 Phi(tan=1.97584, x=0.45399, y=0.897011): 1.962610505505\n    test 2808 63 63.077760538972 Beta(tan=1.96921, x=0.45399, y=0.894004): 1.962610505505\n    test 2809 63 63.000000000000 Theta(tan=1.96261, x=0.45399, y=0.891007): 1.962610505505\n    test 2810 63 63.038928423958 Mu(tan=1.96591, x=0.453385, y=0.891315), iteration=3: 1.962610505505\n    test 2811 63 63.000138398794 Chi(tan=1.96262, x=1.0, y=1.96262), iteration=3: 1.962610505505\n    test 2812 63 63.051866422105 Xi(tan=1.96701, x=0.910437, y=1.79084), iteration=3: 1.962610505505\n\n    test 2813 63 63.155367155141 Phi(tan=1.97584, x=0.451573, y=0.892234): 1.962610505505\n    test 2814 63 63.077760538972 Beta(tan=1.96921, x=0.452781, y=0.891622): 1.962610505505\n    test 2815 63 63.000000000000 Theta(tan=1.96261, x=0.45399, y=0.891007): 1.962610505505\n    test 2816 63 63.038928423958 Mu(tan=1.96591, x=0.453385, y=0.891315): 1.962610505505\n    test 2817 63 63.000138398794 Chi(tan=1.96262, x=0.453988, y=0.891008): 1.962610505505\n    test 2818 63 63.051866422105 Xi(tan=1.96701, x=0.453184, y=0.891417): 1.962610505505\n\n    test 2819 70 70.123370137625 Phi(tan=2.76599, x=0.34202, y=0.946026): 2.747477419455\n    test 2820 70 70.061764561164 Beta(tan=2.75672, x=0.34202, y=0.942854): 2.747477419455\n    test 2821 70 70.000000000000 Theta(tan=2.74748, x=0.34202, y=0.939693): 2.747477419455\n    test 2822 70 70.030932030288 Mu(tan=2.7521, x=0.341513, y=0.939877), iteration=3: 2.747477419455\n    test 2823 70 70.000122219482 Chi(tan=2.7475, x=1.0, y=2.7475), iteration=3: 2.747477419455\n    test 2824 70 70.041206070039 Xi(tan=2.75364, x=0.685754, y=1.88832), iteration=2: 2.747477419455\n\n    test 2825 70 70.123370137625 Phi(tan=2.76599, x=0.339996, y=0.940427): 2.747477419455\n    test 2826 70 70.061764561164 Beta(tan=2.75672, x=0.341007, y=0.940061): 2.747477419455\n    test 2827 70 70.000000000000 Theta(tan=2.74748, x=0.34202, y=0.939693): 2.747477419455\n    test 2828 70 70.030932030288 Mu(tan=2.7521, x=0.341513, y=0.939877): 2.747477419455\n    test 2829 70 70.000122219482 Chi(tan=2.7475, x=0.342018, y=0.939693): 2.747477419455\n    test 2830 70 70.041206070039 Xi(tan=2.75364, x=0.341344, y=0.939938): 2.747477419455\n\n    test 2831 77 77.084099185826 Phi(tan=4.36067, x=0.224951, y=0.980937): 4.331475874284\n    test 2832 77 77.042113102652 Beta(tan=4.34605, x=0.224951, y=0.977648): 4.331475874284\n    test 2833 77 77.000000000000 Theta(tan=4.33148, x=0.224951, y=0.97437): 4.331475874284\n    test 2834 77 77.021096305787 Mu(tan=4.33876, x=0.224592, y=0.974453), iteration=3: 4.331475874284\n    test 2835 77 77.000089569308 Chi(tan=4.33151, x=1.0, y=4.33151), iteration=2: 4.331475874284\n    test 2836 77 77.028100210930 Xi(tan=4.34119, x=0.450962, y=1.95771), iteration=3: 4.331475874284\n\n    test 2837 77 77.084099185826 Phi(tan=4.36067, x=0.223521, y=0.974699): 4.331475874284\n    test 2838 77 77.042113102652 Beta(tan=4.34605, x=0.224235, y=0.974535): 4.331475874284\n    test 2839 77 77.000000000000 Theta(tan=4.33148, x=0.224951, y=0.97437): 4.331475874284\n    test 2840 77 77.021096305787 Mu(tan=4.33876, x=0.224592, y=0.974453): 4.331475874284\n    test 2841 77 77.000089569308 Chi(tan=4.33151, x=0.22495, y=0.97437): 4.331475874284\n    test 2842 77 77.028100210930 Xi(tan=4.34119, x=0.224473, y=0.97448): 4.331475874284\n\n    test 2843 84 84.039876185217 Phi(tan=9.57849, x=0.104528, y=1.00122): 9.514364454223\n    test 2844 84 84.019970846274 Beta(tan=9.54637, x=0.104528, y=0.997868): 9.514364454223\n    test 2845 84 84.000000000000 Theta(tan=9.51436, x=0.104528, y=0.994522): 9.514364454223\n    test 2846 84 84.010005927895 Mu(tan=9.53037, x=0.104355, y=0.99454), iteration=3: 9.514364454223\n    test 2847 84 84.000044242373 Chi(tan=9.51444, x=1.0, y=9.51444), iteration=2: 9.514364454223\n    test 2848 84 84.013326954497 Xi(tan=9.5357, x=0.209531, y=1.99802), iteration=3: 9.514364454223\n\n    test 2849 84 84.039876185217 Phi(tan=9.57849, x=0.103836, y=0.994594): 9.514364454223\n    test 2850 84 84.019970846274 Beta(tan=9.54637, x=0.104182, y=0.994558): 9.514364454223\n    test 2851 84 84.000000000000 Theta(tan=9.51436, x=0.104528, y=0.994522): 9.514364454223\n    test 2852 84 84.010005927895 Mu(tan=9.53037, x=0.104355, y=0.99454): 9.514364454223\n    test 2853 84 84.000044242373 Chi(tan=9.51444, x=0.104528, y=0.994522): 9.514364454223\n    test 2854 84 84.013326954497 Xi(tan=9.5357, x=0.104297, y=0.994546): 9.514364454223\n\n    test 2855 91 90.993306965793 Phi(tan=-57.6761, x=-0.0174524, y=1.00659): -57.289961630759\n    test 2856 91 90.996647866757 Beta(tan=-57.4827, x=-0.0174524, y=1.00321): -57.289961630759\n    test 2857 91 91.000000000000 Theta(tan=-57.29, x=-0.0174524, y=0.999848): -57.289961630759\n    test 2858 91 90.998320417403 Mu(tan=-57.3864, x=-0.0174231, y=0.999848), iteration=3: -57.289961630759\n    test 2859 91 90.999992494484 Chi(tan=-57.2904, x=-1, y=57.2904), iteration=3: -57.289961630759\n    test 2860 91 90.997762994841 Xi(tan=-57.4184, x=-0.0349831, y=2.00868), iteration=3: -57.289961630759\n\n    test 2861 91 90.993306965793 Phi(tan=-57.6761, x=-0.0173356, y=0.99985): -57.289961630760  FAILED, KNOWN (4.3409e-15), expected -57.289961630759\n    test 2862 91 90.996647866757 Beta(tan=-57.4827, x=-0.0173939, y=0.999849): -57.289961630759\n    test 2863 91 91.000000000000 Theta(tan=-57.29, x=-0.0174524, y=0.999848): -57.289961630759\n    test 2864 91 90.998320417403 Mu(tan=-57.3864, x=-0.0174231, y=0.999848): -57.289961630760  FAILED, KNOWN (4.3409e-15), expected -57.289961630759\n    test 2865 91 90.999992494484 Chi(tan=-57.2904, x=-0.0174523, y=0.999848): -57.289961630760  FAILED, KNOWN (3.72077e-15), expected -57.289961630759\n    test 2866 91 90.997762994841 Xi(tan=-57.4184, x=-0.0174134, y=0.999848): -57.289961630760  FAILED, KNOWN (2.85259e-15), expected -57.289961630759\n\n    test 2867 98 97.947131466338 Phi(tan=-7.16332, x=-0.139173, y=0.996942): -7.115369722384\n    test 2868 98 97.973523052479 Beta(tan=-7.13931, x=-0.139173, y=0.993599): -7.115369722384\n    test 2869 98 98.000000000000 Theta(tan=-7.11537, x=-0.139173, y=0.990268): -7.115369722384\n    test 2870 98 97.986734807520 Mu(tan=-7.12734, x=-0.138944, y=0.9903), iteration=3: -7.115369722384\n    test 2871 98 97.999941842742 Chi(tan=-7.11542, x=-1, y=7.11542), iteration=3: -7.115369722384\n    test 2872 98 97.982331755375 Xi(tan=-7.13133, x=-0.278982, y=1.98951), iteration=3: -7.115369722384\n\n    test 2873 98 97.947131466338 Phi(tan=-7.16332, x=-0.138259, y=0.990396): -7.115369722384\n    test 2874 98 97.973523052479 Beta(tan=-7.13931, x=-0.138715, y=0.990332): -7.115369722384\n    test 2875 98 98.000000000000 Theta(tan=-7.11537, x=-0.139173, y=0.990268): -7.115369722384\n    test 2876 98 97.986734807520 Mu(tan=-7.12734, x=-0.138944, y=0.9903): -7.115369722384\n    test 2877 98 97.999941842742 Chi(tan=-7.11542, x=-0.139172, y=0.990268): -7.115369722384\n    test 2878 98 97.982331755375 Xi(tan=-7.13133, x=-0.138868, y=0.990311): -7.115369722384\n\n    test 2879 105 104.904067139653 Phi(tan=-3.7572, x=-0.258819, y=0.972436): -3.732050807569\n    test 2880 105 104.951963747366 Beta(tan=-3.74461, x=-0.258819, y=0.969175): -3.732050807569\n    test 2881 105 105.000000000000 Theta(tan=-3.73205, x=-0.258819, y=0.965926): -3.732050807569\n    test 2882 105 104.975938169742 Mu(tan=-3.73833, x=-0.258413, y=0.966034), iteration=3: -3.732050807569\n    test 2883 105 104.999899588330 Chi(tan=-3.73208, x=-1, y=3.73208), iteration=3: -3.732050807569\n    test 2884 105 104.967948816895 Xi(tan=-3.74042, x=-0.518877, y=1.94082), iteration=2: -3.732050807569\n\n    test 2885 105 104.904067139653 Phi(tan=-3.7572, x=-0.257201, y=0.966358): -3.732050807569\n    test 2886 105 104.951963747366 Beta(tan=-3.74461, x=-0.258009, y=0.966142): -3.732050807569\n    test 2887 105 105.000000000000 Theta(tan=-3.73205, x=-0.258819, y=0.965926): -3.732050807569\n    test 2888 105 104.975938169742 Mu(tan=-3.73833, x=-0.258413, y=0.966034): -3.732050807569\n    test 2889 105 104.999899588330 Chi(tan=-3.73208, x=-0.258817, y=0.965926): -3.732050807569\n    test 2890 105 104.967948816895 Xi(tan=-3.74042, x=-0.258279, y=0.96607): -3.732050807569\n\n    test 2891 112 111.866653486751 Phi(tan=-2.49177, x=-0.374607, y=0.933433): -2.475086853416\n    test 2892 112 111.933246025813 Beta(tan=-2.48341, x=-0.374607, y=0.930303): -2.475086853416\n    test 2893 112 112.000000000000 Theta(tan=-2.47509, x=-0.374607, y=0.927184): -2.475086853416\n    test 2894 112 111.966572499608 Mu(tan=-2.47925, x=-0.374066, y=0.927402), iteration=3: -2.475086853416\n    test 2895 112 111.999871386688 Chi(tan=-2.4751, x=-1, y=2.4751), iteration=3: -2.475086853416\n    test 2896 112 111.955467801390 Xi(tan=-2.48064, x=-0.751129, y=1.86328), iteration=2: -2.475086853416\n\n    test 2897 112 111.866653486751 Phi(tan=-2.49177, x=-0.372448, y=0.928053): -2.475086853416\n    test 2898 112 111.933246025813 Beta(tan=-2.48341, x=-0.373526, y=0.92762): -2.475086853416\n    test 2899 112 112.000000000000 Theta(tan=-2.47509, x=-0.374607, y=0.927184): -2.475086853416\n    test 2900 112 111.966572499608 Mu(tan=-2.47925, x=-0.374066, y=0.927402): -2.475086853416\n    test 2901 112 111.999871386688 Chi(tan=-2.4751, x=-0.374605, y=0.927185): -2.475086853416\n    test 2902 112 111.955467801390 Xi(tan=-2.48064, x=-0.373886, y=0.927475): -2.475086853416\n\n    test 2903 119 118.837105586950 Phi(tan=-1.81621, x=-0.48481, y=0.880514): -1.804047755271\n    test 2904 119 118.918479987923 Beta(tan=-1.81012, x=-0.48481, y=0.877562): -1.804047755271\n    test 2905 119 119.000000000000 Theta(tan=-1.80405, x=-0.48481, y=0.87462): -1.804047755271\n    test 2906 119 118.959194442963 Mu(tan=-1.80708, x=-0.484187, y=0.874965), iteration=3: -1.804047755271\n    test 2907 119 118.999860178783 Chi(tan=-1.80406, x=-1, y=1.80406), iteration=3: -1.804047755271\n    test 2908 119 118.945629859635 Xi(tan=-1.80809, x=-0.972305, y=1.75802), iteration=3: -1.804047755271\n\n    test 2909 119 118.837105586950 Phi(tan=-1.81621, x=-0.482321, y=0.875995): -1.804047755271\n    test 2910 119 118.918479987923 Beta(tan=-1.81012, x=-0.483565, y=0.875309): -1.804047755271\n    test 2911 119 119.000000000000 Theta(tan=-1.80405, x=-0.48481, y=0.87462): -1.804047755271\n    test 2912 119 118.959194442963 Mu(tan=-1.80708, x=-0.484187, y=0.874965): -1.804047755271\n    test 2913 119 118.999860178783 Chi(tan=-1.80406, x=-0.484807, y=0.874621): -1.804047755271\n    test 2914 119 118.945629859635 Xi(tan=-1.80809, x=-0.483979, y=0.875079): -1.804047755271\n\n    test 2915 126 125.817184307945 Phi(tan=-1.38566, x=-0.587785, y=0.814469): -1.376381920471\n    test 2916 126 125.908544256035 Beta(tan=-1.38101, x=-0.587785, y=0.811739): -1.376381920471\n    test 2917 126 126.000000000000 Theta(tan=-1.37638, x=-0.587785, y=0.809017): -1.376381920471\n    test 2918 126 125.954242166425 Mu(tan=-1.3787, x=-0.587139, y=0.809486), iteration=2: -1.376381920471\n    test 2919 126 125.999865716658 Chi(tan=-1.37639, x=-1, y=1.37639), iteration=3: -1.376381920471\n    test 2920 126 125.939019715793 Xi(tan=-1.37947, x=-1.17912, y=1.62655), iteration=2: -1.376381920471\n\n    test 2921 126 125.817184307945 Phi(tan=-1.38566, x=-0.585201, y=0.810888): -1.376381920471\n    test 2922 126 125.908544256035 Beta(tan=-1.38101, x=-0.586493, y=0.809954): -1.376381920471\n    test 2923 126 126.000000000000 Theta(tan=-1.37638, x=-0.587785, y=0.809017): -1.376381920471\n    test 2924 126 125.954242166425 Mu(tan=-1.3787, x=-0.587139, y=0.809486): -1.376381920471\n    test 2925 126 125.999865716658 Chi(tan=-1.37639, x=-0.587783, y=0.809018): -1.376381920471\n    test 2926 126 125.939019715793 Xi(tan=-1.37947, x=-0.586924, y=0.809642): -1.376381920471\n\n    test 2927 133 132.808090472544 Phi(tan=-1.0796, x=-0.681998, y=0.736283): -1.072368710025\n    test 2928 133 132.904033458108 Beta(tan=-1.07598, x=-0.681998, y=0.733814): -1.072368710025\n    test 2929 133 133.000000000000 Theta(tan=-1.07237, x=-0.681998, y=0.731354): -1.072368710025\n    test 2930 133 132.952009355583 Mu(tan=-1.07417, x=-0.681386, y=0.731925), iteration=2: -1.072368710025\n    test 2931 133 132.999884783382 Chi(tan=-1.07237, x=-1, y=1.07237), iteration=2: -1.072368710025\n    test 2932 133 132.936030863456 Xi(tan=-1.07477, x=-1.36848, y=1.4708), iteration=3: -1.072368710025\n\n    test 2933 133 132.808090472544 Phi(tan=-1.0796, x=-0.679545, y=0.733634): -1.072368710025\n    test 2934 133 132.904033458108 Beta(tan=-1.07598, x=-0.680772, y=0.732495): -1.072368710025\n    test 2935 133 133.000000000000 Theta(tan=-1.07237, x=-0.681998, y=0.731354): -1.072368710025\n    test 2936 133 132.952009355583 Mu(tan=-1.07417, x=-0.681386, y=0.731925): -1.072368710025\n    test 2937 133 132.999884783382 Chi(tan=-1.07237, x=-0.681997, y=0.731355): -1.072368710025\n    test 2938 133 132.936030863456 Xi(tan=-1.07477, x=-0.681181, y=0.732115): -1.072368710025\n\n    test 2939 140 139.810389526291 Phi(tan=-0.844755, x=-0.766044, y=0.64712): -0.839099631177\n    test 2940 140 139.905221888853 Beta(tan=-0.841922, x=-0.766044, y=0.64495): -0.839099631177\n    test 2941 140 140.000000000000 Theta(tan=-0.8391, x=-0.766044, y=0.642788): -0.839099631177\n    test 2942 140 139.952627882329 Mu(tan=-0.84051, x=-0.765513, y=0.643421), iteration=3: -0.839099631177\n    test 2943 140 139.999912050710 Chi(tan=-0.839102, x=-1, y=0.839102), iteration=3: -0.839099631177\n    test 2944 140 139.936841998365 Xi(tan=-0.84098, x=-1.53754, y=1.29304), iteration=2: -0.839099631177\n\n    test 2945 140 139.810389526291 Phi(tan=-0.844755, x=-0.763913, y=0.645319): -0.839099631177\n    test 2946 140 139.905221888853 Beta(tan=-0.841922, x=-0.76498, y=0.644054): -0.839099631177\n    test 2947 140 140.000000000000 Theta(tan=-0.8391, x=-0.766044, y=0.642788): -0.839099631177\n    test 2948 140 139.952627882329 Mu(tan=-0.84051, x=-0.765513, y=0.643421): -0.839099631177\n    test 2949 140 139.999912050710 Chi(tan=-0.839102, x=-0.766043, y=0.642789): -0.839099631177\n    test 2950 140 139.936841998365 Xi(tan=-0.84098, x=-0.765335, y=0.643632): -0.839099631177\n\n    test 2951 147 146.823972083650 Phi(tan=-0.653784, x=-0.838671, y=0.54831): -0.649407593198\n    test 2952 147 146.912045740495 Beta(tan=-0.651592, x=-0.838671, y=0.546471): -0.649407593198\n    test 2953 147 147.000000000000 Theta(tan=-0.649408, x=-0.838671, y=0.544639): -0.649407593198\n    test 2954 147 146.956060147954 Mu(tan=-0.650498, x=-0.838253, y=0.545282), iteration=2: -0.649407593198\n    test 2955 147 146.999941372376 Chi(tan=-0.649409, x=-1, y=0.649409), iteration=2: -0.649407593198\n    test 2956 147 146.941406134703 Xi(tan=-0.650863, x=-1.68375, y=1.09589), iteration=3: -0.649407593198\n\n    test 2957 147 146.823972083650 Phi(tan=-0.653784, x=-0.836993, y=0.547213): -0.649407593198\n    test 2958 147 146.912045740495 Beta(tan=-0.651592, x=-0.837834, y=0.545926): -0.649407593198\n    test 2959 147 147.000000000000 Theta(tan=-0.649408, x=-0.838671, y=0.544639): -0.649407593198\n    test 2960 147 146.956060147954 Mu(tan=-0.650498, x=-0.838253, y=0.545282): -0.649407593198\n    test 2961 147 146.999941372376 Chi(tan=-0.649409, x=-0.83867, y=0.54464): -0.649407593198\n    test 2962 147 146.941406134703 Xi(tan=-0.650863, x=-0.838113, y=0.545496): -0.649407593198\n\n    test 2963 154 153.848054049875 Phi(tan=-0.49102, x=-0.898794, y=0.441326): -0.487732588566\n    test 2964 154 153.924105301481 Beta(tan=-0.489373, x=-0.898794, y=0.439846): -0.487732588566\n    test 2965 154 154.000000000000 Theta(tan=-0.487733, x=-0.898794, y=0.438371): -0.487732588566\n    test 2966 154 153.962101517600 Mu(tan=-0.488552, x=-0.898504, y=0.438966), iteration=3: -0.487732588566\n    test 2967 154 153.999967210311 Chi(tan=-0.487733, x=-1, y=0.487733), iteration=3: -0.487732588566\n    test 2968 154 153.949453115559 Xi(tan=-0.488825, x=-1.80488, y=0.882271), iteration=3: -0.487732588566\n\n    test 2969 154 153.848054049875 Phi(tan=-0.49102, x=-0.897628, y=0.440753): -0.487732588566\n    test 2970 154 153.924105301481 Beta(tan=-0.489373, x=-0.898213, y=0.439561): -0.487732588566\n    test 2971 154 154.000000000000 Theta(tan=-0.487733, x=-0.898794, y=0.438371): -0.487732588566\n    test 2972 154 153.962101517600 Mu(tan=-0.488552, x=-0.898504, y=0.438966): -0.487732588566\n    test 2973 154 153.999967210311 Chi(tan=-0.487733, x=-0.898794, y=0.438372): -0.487732588566\n    test 2974 154 153.949453115559 Xi(tan=-0.488825, x=-0.898407, y=0.439164): -0.487732588566\n\n    test 2975 161 160.881217808592 Phi(tan=-0.346648, x=-0.945519, y=0.327762): -0.344327613290\n    test 2976 161 160.940687365843 Beta(tan=-0.345486, x=-0.945519, y=0.326663): -0.344327613290\n    test 2977 161 161.000000000000 Theta(tan=-0.344328, x=-0.945519, y=0.325568): -0.344327613290\n    test 2978 161 160.970392653926 Mu(tan=-0.344906, x=-0.94535, y=0.326057), iteration=3: -0.344327613290\n    test 2979 161 160.999985859992 Chi(tan=-0.344328, x=-1, y=0.344328), iteration=3: -0.344327613290\n    test 2980 161 160.960505433888 Xi(tan=-0.345099, x=-1.89908, y=0.655369), iteration=3: -0.344327613290\n\n    test 2981 161 160.881217808592 Phi(tan=-0.346648, x=-0.944842, y=0.327528): -0.344327613290\n    test 2982 161 160.940687365843 Beta(tan=-0.345486, x=-0.945181, y=0.326547): -0.344327613290\n    test 2983 161 161.000000000000 Theta(tan=-0.344328, x=-0.945519, y=0.325568): -0.344327613290\n    test 2984 161 160.970392653926 Mu(tan=-0.344906, x=-0.94535, y=0.326057): -0.344327613290\n    test 2985 161 160.999985859992 Chi(tan=-0.344328, x=-0.945518, y=0.325568): -0.344327613290\n    test 2986 161 160.960505433888 Xi(tan=-0.345099, x=-0.945294, y=0.32622): -0.344327613290\n\n    test 2987 168 167.921493317051 Phi(tan=-0.213989, x=-0.978148, y=0.209313): -0.212556561670\n    test 2988 168 167.960806838131 Beta(tan=-0.213272, x=-0.978148, y=0.208611): -0.212556561670\n    test 2989 168 168.000000000000 Theta(tan=-0.212557, x=-0.978148, y=0.207912): -0.212556561670\n    test 2990 168 167.980440972867 Mu(tan=-0.212913, x=-0.978077, y=0.208246), iteration=3: -0.212556561670\n    test 2991 168 167.999996188328 Chi(tan=-0.212557, x=-1, y=0.212557), iteration=3: -0.212556561670\n    test 2992 168 167.973906475806 Xi(tan=-0.213033, x=-1.96489, y=0.418585), iteration=3: -0.212556561670\n\n    test 2993 168 167.921493317051 Phi(tan=-0.213989, x=-0.977862, y=0.209252): -0.212556561670\n    test 2994 168 167.960806838131 Beta(tan=-0.213272, x=-0.978005, y=0.208581): -0.212556561670\n    test 2995 168 168.000000000000 Theta(tan=-0.212557, x=-0.978148, y=0.207912): -0.212556561670\n    test 2996 168 167.980440972867 Mu(tan=-0.212913, x=-0.978077, y=0.208246): -0.212556561670\n    test 2997 168 167.999996188328 Chi(tan=-0.212557, x=-0.978148, y=0.207912): -0.212556561670\n    test 2998 168 167.973906475806 Xi(tan=-0.213033, x=-0.978053, y=0.208357): -0.212556561670\n\n    test 2999 175 174.966475056686 Phi(tan=-0.0880783, x=-0.996195, y=0.0877431): -0.087488663526\n    test 3000 175 174.983265245736 Beta(tan=-0.087783, x=-0.996195, y=0.0874489): -0.087488663526\n    test 3001 175 175.000000000000 Theta(tan=-0.0874887, x=-0.996195, y=0.0871557): -0.087488663526\n    test 3002 175 174.991649917523 Mu(tan=-0.0876355, x=-0.996182, y=0.0873009), iteration=3: -0.087488663526\n    test 3003 175 174.999999713957 Chi(tan=-0.0874887, x=-1, y=0.0874887), iteration=3: -0.087488663526\n    test 3004 175 174.988859535139 Xi(tan=-0.0876846, x=-2.0013, y=0.175483), iteration=2: -0.087488663526\n\n    test 3005 175 174.966475056686 Phi(tan=-0.0880783, x=-0.996144, y=0.0877386): -0.087488663526\n    test 3006 175 174.983265245736 Beta(tan=-0.087783, x=-0.996169, y=0.0874467): -0.087488663526\n    test 3007 175 175.000000000000 Theta(tan=-0.0874887, x=-0.996195, y=0.0871557): -0.087488663526\n    test 3008 175 174.991649917523 Mu(tan=-0.0876355, x=-0.996182, y=0.0873009): -0.087488663526\n    test 3009 175 174.999999713957 Chi(tan=-0.0874887, x=-0.996195, y=0.0871557): -0.087488663526\n    test 3010 175 174.988859535139 Xi(tan=-0.0876846, x=-0.996178, y=0.0873494): -0.087488663526\n\n    test 3011 182 182.013467936189 Phi(tan=0.0351561, x=-0.999391, y=-0.0351347): 0.034920769492\n    test 3012 182 182.006722688009 Beta(tan=0.0350382, x=-0.999391, y=-0.0350169): 0.034920769492\n    test 3013 182 182.000000000000 Theta(tan=0.0349208, x=-0.999391, y=-0.0348995): 0.034920769492\n    test 3014 182 182.003354305769 Mu(tan=0.0349794, x=-0.999389, y=-0.034958), iteration=3: 0.034920769492\n    test 3015 182 182.000000018425 Chi(tan=0.0349208, x=-1, y=-0.0349208), iteration=2: 0.034920769492\n    test 3016 182 182.004475278247 Xi(tan=0.034999, x=-2.00775, y=-0.0702692), iteration=3: 0.034920769492\n\n    test 3017 182 182.013467936189 Phi(tan=0.0351561, x=-0.999383, y=-0.0351344): 0.034920769492\n    test 3018 182 182.006722688009 Beta(tan=0.0350382, x=-0.999387, y=-0.0350168): 0.034920769492\n    test 3019 182 182.000000000000 Theta(tan=0.0349208, x=-0.999391, y=-0.0348995): 0.034920769492\n    test 3020 182 182.003354305769 Mu(tan=0.0349794, x=-0.999389, y=-0.034958): 0.034920769492\n    test 3021 182 182.000000018425 Chi(tan=0.0349208, x=-0.999391, y=-0.0348995): 0.034920769492\n    test 3022 182 182.004475278247 Xi(tan=0.034999, x=-0.999388, y=-0.0349776): 0.034920769492\n\n    test 3023 189 189.059652780362 Phi(tan=0.159452, x=-0.987688, y=-0.157489): 0.158384440325\n    test 3024 189 189.029778772560 Beta(tan=0.158917, x=-0.987688, y=-0.156961): 0.158384440325\n    test 3025 189 189.000000000000 Theta(tan=0.158384, x=-0.987688, y=-0.156434): 0.158384440325\n    test 3026 189 189.014859673134 Mu(tan=0.15865, x=-0.987648, y=-0.156691), iteration=2: 0.158384440325\n    test 3027 189 189.000001639674 Chi(tan=0.158384, x=-1, y=-0.158384), iteration=3: 0.158384440325\n    test 3028 189 189.019824807860 Xi(tan=0.158739, x=-1.98414, y=-0.31496), iteration=3: 0.158384440325\n\n    test 3029 189 189.059652780362 Phi(tan=0.159452, x=-0.987525, y=-0.157463): 0.158384440325\n    test 3030 189 189.029778772560 Beta(tan=0.158917, x=-0.987607, y=-0.156948): 0.158384440325\n    test 3031 189 189.000000000000 Theta(tan=0.158384, x=-0.987688, y=-0.156434): 0.158384440325\n    test 3032 189 189.014859673134 Mu(tan=0.15865, x=-0.987648, y=-0.156691): 0.158384440325\n    test 3033 189 189.000001639674 Chi(tan=0.158384, x=-0.987688, y=-0.156434): 0.158384440325\n    test 3034 189 189.019824807860 Xi(tan=0.158739, x=-0.987634, y=-0.156776): 0.158384440325\n\n    test 3035 196 196.102260292825 Phi(tan=0.288678, x=-0.961262, y=-0.277495): 0.286745385759\n    test 3036 196 196.051057415277 Beta(tan=0.28771, x=-0.961262, y=-0.276565): 0.286745385759\n    test 3037 196 196.000000000000 Theta(tan=0.286745, x=-0.961262, y=-0.275637): 0.286745385759\n    test 3038 196 196.025483317057 Mu(tan=0.287227, x=-0.961139, y=-0.276065), iteration=2: 0.286745385759\n    test 3039 196 196.000008725999 Chi(tan=0.286746, x=-1, y=-0.286746), iteration=2: 0.286745385759\n    test 3040 196 196.033995121177 Xi(tan=0.287388, x=-1.93083, y=-0.554896), iteration=2: 0.286745385759\n\n    test 3041 196 196.102260292825 Phi(tan=0.288678, x=-0.960768, y=-0.277353): 0.286745385759\n    test 3042 196 196.051057415277 Beta(tan=0.28771, x=-0.961016, y=-0.276494): 0.286745385759\n    test 3043 196 196.000000000000 Theta(tan=0.286745, x=-0.961262, y=-0.275637): 0.286745385759\n    test 3044 196 196.025483317057 Mu(tan=0.287227, x=-0.961139, y=-0.276065): 0.286745385759\n    test 3045 196 196.000008725999 Chi(tan=0.286746, x=-0.961262, y=-0.275638): 0.286745385759\n    test 3046 196 196.033995121177 Xi(tan=0.287388, x=-0.961098, y=-0.276208): 0.286745385759\n\n    test 3047 203 203.138741606579 Phi(tan=0.427336, x=-0.920505, y=-0.393364): 0.424474816210\n    test 3048 203 203.069290086312 Beta(tan=0.425903, x=-0.920505, y=-0.392046): 0.424474816210\n    test 3049 203 203.000000000000 Theta(tan=0.424475, x=-0.920505, y=-0.390731): 0.424474816210\n    test 3050 203 203.034594657995 Mu(tan=0.425188, x=-0.920269, y=-0.391287), iteration=2: 0.424474816210\n    test 3051 203 203.000023787567 Chi(tan=0.424475, x=-1, y=-0.424475), iteration=2: 0.424474816210\n    test 3052 203 203.046143605881 Xi(tan=0.425426, x=-1.84864, y=-0.78646), iteration=2: 0.424474816210\n\n    test 3053 203 203.138741606579 Phi(tan=0.427336, x=-0.919556, y=-0.392959): 0.424474816210\n    test 3054 203 203.069290086312 Beta(tan=0.425903, x=-0.920032, y=-0.391844): 0.424474816210\n    test 3055 203 203.000000000000 Theta(tan=0.424475, x=-0.920505, y=-0.390731): 0.424474816210\n    test 3056 203 203.034594657995 Mu(tan=0.425188, x=-0.920269, y=-0.391287): 0.424474816210\n    test 3057 203 203.000023787567 Chi(tan=0.424475, x=-0.920505, y=-0.390732): 0.424474816210\n    test 3058 203 203.046143605881 Xi(tan=0.425426, x=-0.92019, y=-0.391472): 0.424474816210\n\n    test 3059 210 210.166923849507 Phi(tan=0.581241, x=-0.866025, y=-0.50337): 0.577350269190\n    test 3060 210 210.083392202979 Beta(tan=0.579293, x=-0.866025, y=-0.501682): 0.577350269190\n    test 3061 210 210.000000000000 Theta(tan=0.57735, x=-0.866025, y=-0.5): 0.577350269190\n    test 3062 210 210.041652569165 Mu(tan=0.57832, x=-0.865662, y=-0.500629), iteration=3: 0.577350269190\n    test 3063 210 210.000046858553 Chi(tan=0.577351, x=-1, y=-0.577351), iteration=2: 0.577350269190\n    test 3064 210 210.055548278686 Xi(tan=0.578644, x=-1.73885, y=-1.00618), iteration=3: 0.577350269190\n\n    test 3065 210 210.166923849507 Phi(tan=0.581241, x=-0.864565, y=-0.502521): 0.577350269190\n    test 3066 210 210.083392202979 Beta(tan=0.579293, x=-0.865297, y=-0.50126): 0.577350269190\n    test 3067 210 210.000000000000 Theta(tan=0.57735, x=-0.866025, y=-0.5): 0.577350269190\n    test 3068 210 210.041652569165 Mu(tan=0.57832, x=-0.865662, y=-0.500629): 0.577350269190\n    test 3069 210 210.000046858553 Chi(tan=0.577351, x=-0.866025, y=-0.500001): 0.577350269190\n    test 3070 210 210.055548278686 Xi(tan=0.578644, x=-0.86554, y=-0.500839): 0.577350269190\n\n    test 3071 217 217.185140504831 Phi(tan=0.758633, x=-0.798636, y=-0.605871): 0.753554050103\n    test 3072 217 217.092527888642 Beta(tan=0.756089, x=-0.798636, y=-0.60384): 0.753554050103\n    test 3073 217 217.000000000000 Theta(tan=0.753554, x=-0.798636, y=-0.601815): 0.753554050103\n    test 3074 217 217.046237489147 Mu(tan=0.75482, x=-0.79815, y=-0.602459), iteration=2: 0.753554050103\n    test 3075 217 217.000075282212 Chi(tan=0.753556, x=-1, y=-0.753556), iteration=3: 0.753554050103\n    test 3076 217 217.061650740215 Xi(tan=0.755242, x=-1.60314, y=-1.21076), iteration=2: 0.753554050103\n\n    test 3077 217 217.185140504831 Phi(tan=0.758633, x=-0.796687, y=-0.604393): 0.753554050103\n    test 3078 217 217.092527888642 Beta(tan=0.756089, x=-0.797663, y=-0.603104): 0.753554050103\n    test 3079 217 217.000000000000 Theta(tan=0.753554, x=-0.798636, y=-0.601815): 0.753554050103\n    test 3080 217 217.046237489147 Mu(tan=0.75482, x=-0.79815, y=-0.602459): 0.753554050103\n    test 3081 217 217.000075282212 Chi(tan=0.753556, x=-0.798635, y=-0.601816): 0.753554050103\n    test 3082 217 217.061650740215 Xi(tan=0.755242, x=-0.797987, y=-0.602674): 0.753554050103\n\n    test 3083 224 224.192328540028 Phi(tan=0.972197, x=-0.71934, y=-0.69934): 0.965688774807\n    test 3084 224 224.096159176144 Beta(tan=0.968937, x=-0.71934, y=-0.696995): 0.965688774807\n    test 3085 224 224.000000000000 Theta(tan=0.965689, x=-0.71934, y=-0.694658): 0.965688774807\n    test 3086 224 224.048076415859 Mu(tan=0.967312, x=-0.718757, y=-0.695262), iteration=3: 0.965688774807\n    test 3087 224 224.000104179110 Chi(tan=0.965692, x=-1, y=-0.965692), iteration=3: 0.965688774807\n    test 3088 224 224.064089278462 Xi(tan=0.967853, x=-1.44358, y=-1.39717), iteration=3: 0.965688774807\n\n    test 3089 224 224.192328540028 Phi(tan=0.972197, x=-0.717004, y=-0.697069): 0.965688774807\n    test 3090 224 224.096159176144 Beta(tan=0.968937, x=-0.718173, y=-0.695865): 0.965688774807\n    test 3091 224 224.000000000000 Theta(tan=0.965689, x=-0.71934, y=-0.694658): 0.965688774807\n    test 3092 224 224.048076415859 Mu(tan=0.967312, x=-0.718757, y=-0.695262): 0.965688774807\n    test 3093 224 224.000104179110 Chi(tan=0.965692, x=-0.719339, y=-0.69466): 0.965688774807\n    test 3094 224 224.064089278462 Xi(tan=0.967853, x=-0.718562, y=-0.695463): 0.965688774807\n\n    test 3095 231 231.188087005479 Phi(tan=1.24322, x=-0.62932, y=-0.782384): 1.234897156535\n    test 3096 231 231.094076843128 Beta(tan=1.23905, x=-0.62932, y=-0.77976): 1.234897156535\n    test 3097 231 231.000000000000 Theta(tan=1.2349, x=-0.62932, y=-0.777146): 1.234897156535\n    test 3098 231 231.047059277252 Mu(tan=1.23697, x=-0.628682, y=-0.777663), iteration=3: 1.234897156535\n    test 3099 231 231.000127493216 Chi(tan=1.2349, x=-1, y=-1.2349), iteration=3: 1.234897156535\n    test 3100 231 231.062720168394 Xi(tan=1.23766, x=-1.26258, y=-1.56265), iteration=3: 1.234897156535\n\n    test 3101 231 231.188087005479 Phi(tan=1.24322, x=-0.626766, y=-0.779208): 1.234897156535\n    test 3102 231 231.094076843128 Beta(tan=1.23905, x=-0.628044, y=-0.778178): 1.234897156535\n    test 3103 231 231.000000000000 Theta(tan=1.2349, x=-0.62932, y=-0.777146): 1.234897156535\n    test 3104 231 231.047059277252 Mu(tan=1.23697, x=-0.628682, y=-0.777663): 1.234897156535\n    test 3105 231 231.000127493216 Chi(tan=1.2349, x=-0.629319, y=-0.777147): 1.234897156535\n    test 3106 231 231.062720168394 Xi(tan=1.23766, x=-0.628469, y=-0.777834): 1.234897156535\n\n    test 3107 238 238.172694719424 Phi(tan=1.61112, x=-0.529919, y=-0.853764): 1.600334529041\n    test 3108 238 238.086411314589 Beta(tan=1.60572, x=-0.529919, y=-0.850901): 1.600334529041\n    test 3109 238 238.000000000000 Theta(tan=1.60033, x=-0.529919, y=-0.848048): 1.600334529041\n    test 3110 238 238.043245666868 Mu(tan=1.60303, x=-0.529279, y=-0.848448), iteration=3: 1.600334529041\n    test 3111 238 238.000139371942 Chi(tan=1.60034, x=-1, y=-1.60034), iteration=3: 1.600334529041\n    test 3112 238 238.057625944391 Xi(tan=1.60392, x=-1.06288, y=-1.70478), iteration=3: 1.600334529041\n\n    test 3113 238 238.172694719424 Phi(tan=1.61112, x=-0.527361, y=-0.849641): 1.600334529041\n    test 3114 238 238.086411314589 Beta(tan=1.60572, x=-0.52864, y=-0.848846): 1.600334529041\n    test 3115 238 238.000000000000 Theta(tan=1.60033, x=-0.529919, y=-0.848048): 1.600334529041\n    test 3116 238 238.043245666868 Mu(tan=1.60303, x=-0.529279, y=-0.848448): 1.600334529041\n    test 3117 238 238.000139371942 Chi(tan=1.60034, x=-0.529917, y=-0.848049): 1.600334529041\n    test 3118 238 238.057625944391 Xi(tan=1.60392, x=-0.529066, y=-0.848581): 1.600334529041\n\n    test 3119 245 245.147087439517 Phi(tan=2.15896, x=-0.422618, y=-0.912416): 2.144506920510\n    test 3120 245 245.073623344306 Beta(tan=2.15172, x=-0.422618, y=-0.909357): 2.144506920510\n    test 3121 245 245.000000000000 Theta(tan=2.14451, x=-0.422618, y=-0.906308): 2.144506920510\n    test 3122 245 245.036861496413 Mu(tan=2.14811, x=-0.422035, y=-0.906579), iteration=3: 2.144506920510\n    test 3123 245 245.000135557054 Chi(tan=2.14452, x=-1, y=-2.14452), iteration=3: 2.144506920510\n    test 3124 245 245.049110215384 Xi(tan=2.14931, x=-0.847471, y=-1.82148), iteration=3: 2.144506920510\n\n    test 3125 245 245.147087439517 Phi(tan=2.15896, x=-0.42029, y=-0.90739): 2.144506920510\n    test 3126 245 245.073623344306 Beta(tan=2.15172, x=-0.421453, y=-0.90685): 2.144506920510\n    test 3127 245 245.000000000000 Theta(tan=2.14451, x=-0.422618, y=-0.906308): 2.144506920510\n    test 3128 245 245.036861496413 Mu(tan=2.14811, x=-0.422035, y=-0.906579): 2.144506920510\n    test 3129 245 245.000135557054 Chi(tan=2.14452, x=-0.422616, y=-0.906309): 2.144506920510\n    test 3130 245 245.049110215384 Xi(tan=2.14931, x=-0.421841, y=-0.90667): 2.144506920510\n\n    test 3131 252 252.112797334151 Phi(tan=3.09843, x=-0.309017, y=-0.957466): 3.077683537175\n    test 3132 252 252.056475395211 Beta(tan=3.08804, x=-0.309017, y=-0.954256): 3.077683537175\n    test 3133 252 252.000000000000 Theta(tan=3.07768, x=-0.309017, y=-0.951057): 3.077683537175\n    test 3134 252 252.028285720189 Mu(tan=3.08286, x=-0.308547, y=-0.951209), iteration=3: 3.077683537175\n    test 3135 252 252.000114461007 Chi(tan=3.0777, x=-1, y=-3.0777), iteration=3: 3.077683537175\n    test 3136 252 252.037679397301 Xi(tan=3.08458, x=-0.619552, y=-1.91106), iteration=3: 3.077683537175\n\n    test 3137 252 252.112797334151 Phi(tan=3.09843, x=-0.307144, y=-0.951663): 3.077683537175\n    test 3138 252 252.056475395211 Beta(tan=3.08804, x=-0.308079, y=-0.951361): 3.077683537175\n    test 3139 252 252.000000000000 Theta(tan=3.07768, x=-0.309017, y=-0.951057): 3.077683537175\n    test 3140 252 252.028285720189 Mu(tan=3.08286, x=-0.308547, y=-0.951209): 3.077683537175\n    test 3141 252 252.000114461007 Chi(tan=3.0777, x=-0.309015, y=-0.951057): 3.077683537175\n    test 3142 252 252.037679397301 Xi(tan=3.08458, x=-0.308391, y=-0.95126): 3.077683537175\n\n    test 3143 259 259.071859476624 Phi(tan=5.17923, x=-0.190809, y=-0.988243): 5.144554015970\n    test 3144 259 259.035985707307 Beta(tan=5.16186, x=-0.190809, y=-0.984929): 5.144554015970\n    test 3145 259 259.000000000000 Theta(tan=5.14455, x=-0.190809, y=-0.981627): 5.144554015970\n    test 3146 259 259.018027889335 Mu(tan=5.15321, x=-0.1905, y=-0.981687), iteration=3: 5.144554015970\n    test 3147 259 259.000077676273 Chi(tan=5.14459, x=-1, y=-5.14459), iteration=3: 5.144554015970\n    test 3148 259 259.024012504065 Xi(tan=5.15609, x=-0.382505, y=-1.97223), iteration=2: 5.144554015970\n\n    test 3149 259 259.071859476624 Phi(tan=5.17923, x=-0.189578, y=-0.981866): 5.144554015970\n    test 3150 259 259.035985707307 Beta(tan=5.16186, x=-0.190192, y=-0.981747): 5.144554015970\n    test 3151 259 259.000000000000 Theta(tan=5.14455, x=-0.190809, y=-0.981627): 5.144554015970\n    test 3152 259 259.018027889335 Mu(tan=5.15321, x=-0.1905, y=-0.981687): 5.144554015970\n    test 3153 259 259.000077676273 Chi(tan=5.14459, x=-0.190808, y=-0.981627): 5.144554015970\n    test 3154 259 259.024012504065 Xi(tan=5.15609, x=-0.190398, y=-0.981707): 5.144554015970\n\n    test 3155 266 266.026691465344 Phi(tan=14.397, x=-0.0697565, y=-1.00429): 14.300666256712\n    test 3156 266 266.013367926454 Beta(tan=14.3488, x=-0.0697565, y=-1.00092): 14.300666256712\n    test 3157 266 266.000000000000 Theta(tan=14.3007, x=-0.0697565, y=-0.997564): 14.300666256712\n    test 3158 266 266.006697857429 Mu(tan=14.3247, x=-0.0696399, y=-0.997572), iteration=2: 14.300666256712\n    test 3159 266 266.000029795215 Chi(tan=14.3008, x=-1, y=-14.3008), iteration=3: 14.300666256712\n    test 3160 266 266.008920822994 Xi(tan=14.3327, x=-0.139827, y=-2.00411), iteration=3: 14.300666256712\n\n    test 3161 266 266.026691465344 Phi(tan=14.397, x=-0.0692917, y=-0.997596): 14.300666256712\n    test 3162 266 266.013367926454 Beta(tan=14.3488, x=-0.0695237, y=-0.99758): 14.300666256712\n    test 3163 266 266.000000000000 Theta(tan=14.3007, x=-0.0697565, y=-0.997564): 14.300666256712\n    test 3164 266 266.006697857429 Mu(tan=14.3247, x=-0.0696399, y=-0.997572): 14.300666256712\n    test 3165 266 266.000029795215 Chi(tan=14.3008, x=-0.069756, y=-0.997564): 14.300666256712\n    test 3166 266 266.008920822994 Xi(tan=14.3327, x=-0.0696012, y=-0.997575): 14.300666256712\n\n    test 3167 273 272.979953179188 Phi(tan=-19.2097, x=0.052336, y=-1.00536): -19.081136687728\n    test 3168 273 272.989959849669 Beta(tan=-19.1453, x=0.052336, y=-1.00199): -19.081136687728\n    test 3169 273 273.000000000000 Theta(tan=-19.0811, x=0.052336, y=-0.99863): -19.081136687728\n    test 3170 273 272.994969444902 Mu(tan=-19.1132, x=0.0522483, y=-0.998634), iteration=3: -19.081136687728\n    test 3171 273 272.999977574321 Chi(tan=-19.0813, x=1.0, y=-19.0813), iteration=3: -19.081136687728\n    test 3172 273 272.993299868195 Xi(tan=-19.1239, x=0.104907, y=-2.00624), iteration=3: -19.081136687728\n\n    test 3173 273 272.979953179188 Phi(tan=-19.2097, x=0.0519865, y=-0.998648): -19.081136687728\n    test 3174 273 272.989959849669 Beta(tan=-19.1453, x=0.052161, y=-0.998639): -19.081136687728\n    test 3175 273 273.000000000000 Theta(tan=-19.0811, x=0.052336, y=-0.99863): -19.081136687728\n    test 3176 273 272.994969444902 Mu(tan=-19.1132, x=0.0522483, y=-0.998634): -19.081136687728\n    test 3177 273 272.999977574321 Chi(tan=-19.0813, x=0.0523356, y=-0.99863): -19.081136687728\n    test 3178 273 272.993299868195 Xi(tan=-19.1239, x=0.0522192, y=-0.998636): -19.081136687728\n\n    test 3179 280 279.934394210279 Phi(tan=-5.7095, x=0.173648, y=-0.991445): -5.671281819618\n    test 3180 280 279.967145322218 Beta(tan=-5.69036, x=0.173648, y=-0.988121): -5.671281819618\n    test 3181 280 280.000000000000 Theta(tan=-5.67128, x=0.173648, y=-0.984808): -5.671281819618\n    test 3182 280 279.983540245263 Mu(tan=-5.68082, x=0.173365, y=-0.984858), iteration=3: -5.671281819618\n    test 3183 280 279.999928623941 Chi(tan=-5.67132, x=1.0, y=-5.67132), iteration=3: -5.671281819618\n    test 3184 280 279.978076430885 Xi(tan=-5.684, x=0.348099, y=-1.97859), iteration=2: -5.671281819618\n\n    test 3185 280 279.934394210279 Phi(tan=-5.7095, x=0.17252, y=-0.985006): -5.671281819618\n    test 3186 280 279.967145322218 Beta(tan=-5.69036, x=0.173083, y=-0.984907): -5.671281819618\n    test 3187 280 280.000000000000 Theta(tan=-5.67128, x=0.173648, y=-0.984808): -5.671281819618\n    test 3188 280 279.983540245263 Mu(tan=-5.68082, x=0.173365, y=-0.984858): -5.671281819618\n    test 3189 280 279.999928623941 Chi(tan=-5.67132, x=0.173647, y=-0.984808): -5.671281819618\n    test 3190 280 279.978076430885 Xi(tan=-5.684, x=0.173271, y=-0.984874): -5.671281819618\n\n    test 3191 287 286.892696785077 Phi(tan=-3.2929, x=0.292372, y=-0.96275): -3.270852618484\n    test 3192 287 286.946273607855 Beta(tan=-3.28186, x=0.292372, y=-0.959522): -3.270852618484\n    test 3193 287 287.000000000000 Theta(tan=-3.27085, x=0.292372, y=-0.956305): -3.270852618484\n    test 3194 287 286.973089996409 Mu(tan=-3.27636, x=0.291923, y=-0.956442), iteration=3: -3.270852618484\n    test 3195 287 286.999889910594 Chi(tan=-3.27088, x=1.0, y=-3.27088), iteration=3: -3.270852618484\n    test 3196 287 286.964153811789 Xi(tan=-3.27819, x=0.586167, y=-1.92156), iteration=3: -3.270852618484\n\n    test 3197 287 286.892696785077 Phi(tan=-3.2929, x=0.29058, y=-0.956851): -3.270852618484\n    test 3198 287 286.946273607855 Beta(tan=-3.28186, x=0.291475, y=-0.956578): -3.270852618484\n    test 3199 287 287.000000000000 Theta(tan=-3.27085, x=0.292372, y=-0.956305): -3.270852618484\n    test 3200 287 286.973089996409 Mu(tan=-3.27636, x=0.291923, y=-0.956442): -3.270852618484\n    test 3201 287 286.999889910594 Chi(tan=-3.27088, x=0.29237, y=-0.956305): -3.270852618484\n    test 3202 287 286.964153811789 Xi(tan=-3.27819, x=0.291773, y=-0.956487): -3.270852618484\n\n    test 3203 294 293.857322070702 Phi(tan=-2.26117, x=0.406737, y=-0.919702): -2.246036773904\n    test 3204 294 293.928580656019 Beta(tan=-2.25359, x=0.406737, y=-0.916619): -2.246036773904\n    test 3205 294 294.000000000000 Theta(tan=-2.24604, x=0.406737, y=-0.913545): -2.246036773904\n    test 3206 294 293.964240029727 Mu(tan=-2.24981, x=0.406166, y=-0.913799), iteration=2: -2.246036773904\n    test 3207 294 293.999866400612 Chi(tan=-2.24605, x=1.0, y=-2.24605), iteration=3: -2.246036773904\n    test 3208 294 293.952358418734 Xi(tan=-2.25107, x=0.815599, y=-1.83597), iteration=2: -2.246036773904\n\n    test 3209 294 293.857322070702 Phi(tan=-2.26117, x=0.40446, y=-0.914555): -2.246036773904\n    test 3210 294 293.928580656019 Beta(tan=-2.25359, x=0.405598, y=-0.914052): -2.246036773904\n    test 3211 294 294.000000000000 Theta(tan=-2.24604, x=0.406737, y=-0.913545): -2.246036773904\n    test 3212 294 293.964240029727 Mu(tan=-2.24981, x=0.406166, y=-0.913799): -2.246036773904\n    test 3213 294 293.999866400612 Chi(tan=-2.24605, x=0.406735, y=-0.913546): -2.246036773904\n    test 3214 294 293.952358418734 Xi(tan=-2.25107, x=0.405977, y=-0.913883): -2.246036773904\n\n    test 3215 301 300.830367699497 Phi(tan=-1.6755, x=0.515038, y=-0.862944): -1.664279482351\n    test 3216 301 300.915116613042 Beta(tan=-1.66988, x=0.515038, y=-0.860051): -1.664279482351\n    test 3217 301 301.000000000000 Theta(tan=-1.66428, x=0.515038, y=-0.857167): -1.664279482351\n    test 3218 301 300.957516242525 Mu(tan=-1.66708, x=0.514402, y=-0.857549), iteration=3: -1.664279482351\n    test 3219 301 300.999860142450 Chi(tan=-1.66429, x=1.0, y=-1.66429), iteration=3: -1.664279482351\n    test 3220 301 300.943390839029 Xi(tan=-1.66801, x=1.033, y=-1.72305), iteration=2: -1.664279482351\n\n    test 3221 301 300.830367699497 Phi(tan=-1.6755, x=0.512498, y=-0.858688): -1.664279482351\n    test 3222 301 300.915116613042 Beta(tan=-1.66988, x=0.513768, y=-0.857929): -1.664279482351\n    test 3223 301 301.000000000000 Theta(tan=-1.66428, x=0.515038, y=-0.857167): -1.664279482351\n    test 3224 301 300.957516242525 Mu(tan=-1.66708, x=0.514402, y=-0.857549): -1.664279482351\n    test 3225 301 300.999860142450 Chi(tan=-1.66429, x=0.515036, y=-0.857169): -1.664279482351\n    test 3226 301 300.943390839029 Xi(tan=-1.66801, x=0.514191, y=-0.857676): -1.664279482351\n\n    test 3227 308 307.813444106313 Phi(tan=-1.28857, x=0.615661, y=-0.793322): -1.279941632193\n    test 3228 308 307.906683665119 Beta(tan=-1.28425, x=0.615661, y=-0.790662): -1.279941632193\n    test 3229 308 308.000000000000 Theta(tan=-1.27994, x=0.615661, y=-0.788011): -1.279941632193\n    test 3230 308 307.953317819859 Mu(tan=-1.28209, x=0.615019, y=-0.788512), iteration=3: -1.279941632193\n    test 3231 308 307.999869987124 Chi(tan=-1.27995, x=1.0, y=-1.27995), iteration=2: -1.279941632193\n    test 3232 308 307.937784253619 Xi(tan=-1.28281, x=1.23513, y=-1.58444), iteration=3: -1.279941632193\n\n    test 3233 308 307.813444106313 Phi(tan=-1.28857, x=0.613092, y=-0.790011): -1.279941632193\n    test 3234 308 307.906683665119 Beta(tan=-1.28425, x=0.614377, y=-0.789012): -1.279941632193\n    test 3235 308 308.000000000000 Theta(tan=-1.27994, x=0.615661, y=-0.788011): -1.279941632193\n    test 3236 308 307.953317819859 Mu(tan=-1.28209, x=0.615019, y=-0.788512): -1.279941632193\n    test 3237 308 307.999869987124 Chi(tan=-1.27995, x=0.61566, y=-0.788012): -1.279941632193\n    test 3238 308 307.937784253619 Xi(tan=-1.28281, x=0.614805, y=-0.788679): -1.279941632193\n\n    test 3239 315 314.807576784018 Phi(tan=-1.00674, x=0.707107, y=-0.711872): -1.000000000000\n    test 3240 315 314.903787849420 Beta(tan=-1.00336, x=0.707107, y=-0.709486): -1.000000000000\n    test 3241 315 315.000000000000 Theta(tan=-1, x=0.707107, y=-0.707107): -1.000000000000\n    test 3242 315 314.951893574286 Mu(tan=-1.00168, x=0.706513, y=-0.7077), iteration=2: -1.000000000000\n    test 3243 315 314.999892003023 Chi(tan=-1, x=1.0, y=-1), iteration=3: -1.000000000000\n    test 3244 315 314.935872656555 Xi(tan=-1.00224, x=1.41897, y=-1.42215), iteration=3: -1.000000000000\n\n    test 3245 315 314.807576784018 Phi(tan=-1.00674, x=0.704728, y=-0.709478): -1.000000000000\n    test 3246 315 314.903787849420 Beta(tan=-1.00336, x=0.705918, y=-0.708293): -1.000000000000\n    test 3247 315 315.000000000000 Theta(tan=-1, x=0.707107, y=-0.707107): -1.000000000000\n    test 3248 315 314.951893574286 Mu(tan=-1.00168, x=0.706513, y=-0.7077): -1.000000000000\n    test 3249 315 314.999892003023 Chi(tan=-1, x=0.707105, y=-0.707108): -1.000000000000\n    test 3250 315 314.935872656555 Xi(tan=-1.00224, x=0.706315, y=-0.707898): -1.000000000000\n\n    test 3251 322 321.813140716820 Phi(tan=-0.786551, x=0.788011, y=-0.619811): -0.781285626507\n    test 3252 322 321.906607816751 Beta(tan=-0.783914, x=0.788011, y=-0.617733): -0.781285626507\n    test 3253 322 322.000000000000 Theta(tan=-0.781286, x=0.788011, y=-0.615661): -0.781285626507\n    test 3254 322 321.953327300103 Mu(tan=-0.782598, x=0.787509, y=-0.616303), iteration=2: -0.781285626507\n    test 3255 322 321.999920484161 Chi(tan=-0.781288, x=1.0, y=-0.781288), iteration=2: -0.781285626507\n    test 3256 322 321.937770794620 Xi(tan=-0.783036, x=1.58175, y=-1.23857), iteration=3: -0.781285626507\n\n    test 3257 322 321.813140716820 Phi(tan=-0.786551, x=0.785999, y=-0.618228): -0.781285626507\n    test 3258 322 321.906607816751 Beta(tan=-0.783914, x=0.787006, y=-0.616945): -0.781285626507\n    test 3259 322 322.000000000000 Theta(tan=-0.781286, x=0.788011, y=-0.615661): -0.781285626507\n    test 3260 322 321.953327300103 Mu(tan=-0.782598, x=0.787509, y=-0.616303): -0.781285626507\n    test 3261 322 321.999920484161 Chi(tan=-0.781288, x=0.78801, y=-0.615663): -0.781285626507\n    test 3262 322 321.937770794620 Xi(tan=-0.783036, x=0.787342, y=-0.616517): -0.781285626507\n\n    test 3263 329 328.829831943495 Phi(tan=-0.60491, x=0.857167, y=-0.518509): -0.600860619028\n    test 3264 329 328.914982672653 Beta(tan=-0.602882, x=0.857167, y=-0.516771): -0.600860619028\n    test 3265 329 329.000000000000 Theta(tan=-0.600861, x=0.857167, y=-0.515038): -0.600860619028\n    test 3266 329 328.957532983891 Mu(tan=-0.60187, x=0.856785, y=-0.515673), iteration=2: -0.600860619028\n    test 3267 329 328.999949315138 Chi(tan=-0.600862, x=1.0, y=-0.600862), iteration=3: -0.600860619028\n    test 3268 329 328.943367072053 Xi(tan=-0.602207, x=1.72101, y=-1.0364), iteration=2: -0.600860619028\n\n    test 3269 329 328.829831943495 Phi(tan=-0.60491, x=0.855634, y=-0.517582): -0.600860619028\n    test 3270 329 328.914982672653 Beta(tan=-0.602882, x=0.856402, y=-0.516309): -0.600860619028\n    test 3271 329 329.000000000000 Theta(tan=-0.600861, x=0.857167, y=-0.515038): -0.600860619028\n    test 3272 329 328.957532983891 Mu(tan=-0.60187, x=0.856785, y=-0.515673): -0.600860619028\n    test 3273 329 328.999949315138 Chi(tan=-0.600862, x=0.857167, y=-0.515039): -0.600860619028\n    test 3274 329 328.943367072053 Xi(tan=-0.602207, x=0.856658, y=-0.515885): -0.600860619028\n\n    test 3275 336 335.856679369063 Phi(tan=-0.448229, x=0.913545, y=-0.409478): -0.445228685309\n    test 3276 336 335.928419979560 Beta(tan=-0.446726, x=0.913545, y=-0.408105): -0.445228685309\n    test 3277 336 336.000000000000 Theta(tan=-0.445229, x=0.913545, y=-0.406737): -0.445228685309\n    test 3278 336 335.964260113259 Mu(tan=-0.445976, x=0.913292, y=-0.407306), iteration=3: -0.445228685309\n    test 3279 336 335.999973373434 Chi(tan=-0.445229, x=1.0, y=-0.445229), iteration=3: -0.445228685309\n    test 3280 336 335.952329907972 Xi(tan=-0.446226, x=1.83461, y=-0.818652), iteration=3: -0.445228685309\n\n    test 3281 336 335.856679369063 Phi(tan=-0.448229, x=0.912525, y=-0.409021): -0.445228685309\n    test 3282 336 335.928419979560 Beta(tan=-0.446726, x=0.913037, y=-0.407878): -0.445228685309\n    test 3283 336 336.000000000000 Theta(tan=-0.445229, x=0.913545, y=-0.406737): -0.445228685309\n    test 3284 336 335.964260113259 Mu(tan=-0.445976, x=0.913292, y=-0.407306): -0.445228685309\n    test 3285 336 335.999973373434 Chi(tan=-0.445229, x=0.913545, y=-0.406737): -0.445228685309\n    test 3286 336 335.952329907972 Xi(tan=-0.446226, x=0.913207, y=-0.407497): -0.445228685309\n\n    test 3287 343 342.892097596857 Phi(tan=-0.307791, x=0.956305, y=-0.294342): -0.305730681459\n    test 3288 343 342.946123810430 Beta(tan=-0.306759, x=0.956305, y=-0.293355): -0.305730681459\n    test 3289 343 343.000000000000 Theta(tan=-0.305731, x=0.956305, y=-0.292372): -0.305730681459\n    test 3290 343 342.973108720519 Mu(tan=-0.306244, x=0.956167, y=-0.292821), iteration=2: -0.305730681459\n    test 3291 343 342.999989640752 Chi(tan=-0.305731, x=1.0, y=-0.305731), iteration=3: -0.305730681459\n    test 3292 343 342.964127231800 Xi(tan=-0.306415, x=1.92083, y=-0.588572), iteration=2: -0.305730681459\n\n    test 3293 343 342.892097596857 Phi(tan=-0.307791, x=0.955752, y=-0.294172): -0.305730681459\n    test 3294 343 342.946123810430 Beta(tan=-0.306759, x=0.956029, y=-0.293271): -0.305730681459\n    test 3295 343 343.000000000000 Theta(tan=-0.305731, x=0.956305, y=-0.292372): -0.305730681459\n    test 3296 343 342.973108720519 Mu(tan=-0.306244, x=0.956167, y=-0.292821): -0.305730681459\n    test 3297 343 342.999989640752 Chi(tan=-0.305731, x=0.956305, y=-0.292372): -0.305730681459\n    test 3298 343 342.964127231800 Xi(tan=-0.306415, x=0.956122, y=-0.29297): -0.305730681459\n\n    test 3299 350 349.933978809966 Phi(tan=-0.177515, x=0.984808, y=-0.174818): -0.176326980708\n    test 3300 350 349.967041472227 Beta(tan=-0.17692, x=0.984808, y=-0.174232): -0.176326980708\n    test 3301 350 350.000000000000 Theta(tan=-0.176327, x=0.984808, y=-0.173648): -0.176326980708\n    test 3302 350 349.983553226337 Mu(tan=-0.176623, x=0.984758, y=-0.173931), iteration=3: -0.176326980708\n    test 3303 350 349.999997763945 Chi(tan=-0.176327, x=1.0, y=-0.176327), iteration=2: -0.176326980708\n    test 3304 350 349.978058004001 Xi(tan=-0.176722, x=1.97833, y=-0.349613), iteration=3: -0.176326980708\n\n    test 3305 350 349.933978809966 Phi(tan=-0.177515, x=0.984607, y=-0.174783): -0.176326980708\n    test 3306 350 349.967041472227 Beta(tan=-0.17692, x=0.984708, y=-0.174215): -0.176326980708\n    test 3307 350 350.000000000000 Theta(tan=-0.176327, x=0.984808, y=-0.173648): -0.176326980708\n    test 3308 350 349.983553226337 Mu(tan=-0.176623, x=0.984758, y=-0.173931): -0.176326980708\n    test 3309 350 349.999997763945 Chi(tan=-0.176327, x=0.984808, y=-0.173648): -0.176326980708\n    test 3310 350 349.978058004001 Xi(tan=-0.176722, x=0.984741, y=-0.174025): -0.176326980708\n\n    test 3311 357 356.979818816318 Phi(tan=-0.052761, x=0.99863, y=-0.0526887): -0.052407779283\n    test 3312 357 356.989926259040 Beta(tan=-0.0525841, x=0.99863, y=-0.052512): -0.052407779283\n    test 3313 357 357.000000000000 Theta(tan=-0.0524078, x=0.99863, y=-0.052336): -0.052407779283\n    test 3314 357 356.994973643713 Mu(tan=-0.0524957, x=0.998625, y=-0.0524236), iteration=3: -0.052407779283\n    test 3315 357 356.999999937910 Chi(tan=-0.0524078, x=1.0, y=-0.0524078), iteration=3: -0.052407779283\n    test 3316 357 356.993293907994 Xi(tan=-0.0525251, x=2.00621, y=-0.105377), iteration=3: -0.052407779283\n\n    test 3317 357 356.979818816318 Phi(tan=-0.052761, x=0.998611, y=-0.0526877): -0.052407779283\n    test 3318 357 356.989926259040 Beta(tan=-0.0525841, x=0.99862, y=-0.0525115): -0.052407779283\n    test 3319 357 357.000000000000 Theta(tan=-0.0524078, x=0.99863, y=-0.052336): -0.052407779283\n    test 3320 357 356.994973643713 Mu(tan=-0.0524957, x=0.998625, y=-0.0524236): -0.052407779283\n    test 3321 357 356.999999937910 Chi(tan=-0.0524078, x=0.99863, y=-0.052336): -0.052407779283\n    test 3322 357 356.993293907994 Xi(tan=-0.0525251, x=0.998623, y=-0.0524528): -0.052407779283\n\n    test 3323  0 0.000000000000 Phi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 3324  0 0.000000000000 Beta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 3325  0 0.000000000000 Theta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 3326  0 0.000000000000 Mu(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 3327  0 0.000000000000 Chi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 3328  0 0.000000000000 Xi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n\n    test 3329  0 0.000000000000 Phi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 3330  0 0.000000000000 Beta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 3331  0 0.000000000000 Theta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 3332  0 0.000000000000 Mu(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 3333  0 0.000000000000 Chi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 3334  0 0.000000000000 Xi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n\n    test 3335  7 7.031115657726 Phi(tan=0.123336, x=1.0, y=0.123336): 0.122784560903\n    test 3336  7 7.007776446248 Beta(tan=0.122922, x=1.0, y=0.122922): 0.122784560903\n    test 3337  7 6.984513160948 Theta(tan=0.12251, x=1.0, y=0.12251): 0.122784560903\n    test 3338  7 6.996121115499 Mu(tan=0.122716, x=0.992554, y=0.121802), iteration=2: 0.122784560903\n    test 3339  7 6.984513934967 Chi(tan=0.12251, x=1.0, y=0.12251), iteration=3: 0.122784560903\n    test 3340  7 7.000000000000 Xi(tan=0.122785, x=0.992546, y=0.121869): 0.122784560903\n\n    test 3341  7 7.031115657726 Phi(tan=0.123336, x=0.99248, y=0.122408): 0.122784560903\n    test 3342  7 7.007776446248 Beta(tan=0.122922, x=0.99253, y=0.122004): 0.122784560903\n    test 3343  7 6.984513160948 Theta(tan=0.12251, x=0.992579, y=0.121601): 0.122784560903\n    test 3344  7 6.996121115499 Mu(tan=0.122716, x=0.992554, y=0.121802): 0.122784560903\n    test 3345  7 6.984513934967 Chi(tan=0.12251, x=0.992579, y=0.121601): 0.122784560903\n    test 3346  7 7.000000000000 Xi(tan=0.122785, x=0.992546, y=0.121869): 0.122784560903\n\n    test 3347 14 14.060369141975 Phi(tan=0.250447, x=1.0, y=0.250447): 0.249328002843\n    test 3348 14 14.015088387186 Beta(tan=0.249608, x=1.0, y=0.249608): 0.249328002843\n    test 3349 14 13.969941668301 Theta(tan=0.248771, x=1.0, y=0.248771): 0.249328002843\n    test 3350 14 13.992473204804 Mu(tan=0.249188, x=0.970327, y=0.241794), iteration=3: 0.249328002843\n    test 3351 14 13.969947587506 Chi(tan=0.248771, x=1.0, y=0.248771), iteration=3: 0.249328002843\n    test 3352 14 14.000000000000 Xi(tan=0.249328, x=0.970296, y=0.241922): 0.249328002843\n\n    test 3353 14 14.060369141975 Phi(tan=0.250447, x=0.97004, y=0.242944): 0.249328002843\n    test 3354 14 14.015088387186 Beta(tan=0.249608, x=0.970232, y=0.242177): 0.249328002843\n    test 3355 14 13.969941668301 Theta(tan=0.248771, x=0.970423, y=0.241413): 0.249328002843\n    test 3356 14 13.992473204803 Mu(tan=0.249188, x=0.970327, y=0.241794): 0.249328002843\n    test 3357 14 13.969947587506 Chi(tan=0.248771, x=0.970422, y=0.241413): 0.249328002843\n    test 3358 14 14.000000000000 Xi(tan=0.249328, x=0.970296, y=0.241922): 0.249328002843\n\n    test 3359 21 21.086012125911 Phi(tan=0.385587, x=1.0, y=0.385587): 0.383864035035\n    test 3360 21 21.021499506340 Beta(tan=0.384295, x=1.0, y=0.384295): 0.383864035035\n    test 3361 21 20.957147588487 Theta(tan=0.383006, x=1.0, y=0.383006): 0.383864035035\n    test 3362 21 20.989273394164 Mu(tan=0.383649, x=0.933648, y=0.358193), iteration=3: 0.383864035035\n    test 3363 21 20.957166102443 Chi(tan=0.383007, x=1.0, y=0.383007), iteration=2: 0.383864035035\n    test 3364 21 21.000000000000 Xi(tan=0.383864, x=0.93358, y=0.358368): 0.383864035035\n\n    test 3365 21 21.086012125911 Phi(tan=0.385587, x=0.933041, y=0.359769): 0.383864035035\n    test 3366 21 21.021499506340 Beta(tan=0.384295, x=0.933446, y=0.358718): 0.383864035035\n    test 3367 21 20.957147588487 Theta(tan=0.383006, x=0.933848, y=0.35767): 0.383864035035\n    test 3368 21 20.989273394164 Mu(tan=0.383649, x=0.933648, y=0.358193): 0.383864035035\n    test 3369 21 20.957166102443 Chi(tan=0.383007, x=0.933848, y=0.35767): 0.383864035035\n    test 3370 21 21.000000000000 Xi(tan=0.383864, x=0.93358, y=0.358368): 0.383864035035\n\n    test 3371 28 28.106516446309 Phi(tan=0.534096, x=1.0, y=0.534096): 0.531709431661\n    test 3372 28 28.026628049399 Beta(tan=0.532306, x=1.0, y=0.532306): 0.531709431661\n    test 3373 28 27.946889336829 Theta(tan=0.530521, x=1.0, y=0.530521): 0.531709431661\n    test 3374 28 27.986711967080 Mu(tan=0.531412, x=0.883056, y=0.469267), iteration=3: 0.531709431661\n    test 3375 28 27.946928706111 Chi(tan=0.530522, x=1.0, y=0.530522), iteration=2: 0.531709431661\n    test 3376 28 28.000000000000 Xi(tan=0.531709, x=0.882948, y=0.469472): 0.531709431661\n\n    test 3377 28 28.106516446309 Phi(tan=0.534096, x=0.882073, y=0.471112): 0.531709431661\n    test 3378 28 28.026628049399 Beta(tan=0.532306, x=0.882729, y=0.469882): 0.531709431661\n    test 3379 28 27.946889336829 Theta(tan=0.530521, x=0.883382, y=0.468653): 0.531709431661\n    test 3380 28 27.986711967080 Mu(tan=0.531412, x=0.883056, y=0.469267): 0.531709431661\n    test 3381 28 27.946928706111 Chi(tan=0.530522, x=0.883382, y=0.468654): 0.531709431661\n    test 3382 28 28.000000000000 Xi(tan=0.531709, x=0.882948, y=0.469472): 0.531709431661\n\n    test 3383 35 35.120665994598 Phi(tan=0.703351, x=1.0, y=0.703351): 0.700207538210\n    test 3384 35 35.030169708409 Beta(tan=0.700993, x=1.0, y=0.700993): 0.700207538210\n    test 3385 35 34.939777010856 Theta(tan=0.698642, x=1.0, y=0.698642): 0.700207538210\n    test 3386 35 34.984941016111 Mu(tan=0.699816, x=0.819303, y=0.573361), iteration=3: 0.700207538210\n    test 3387 35 34.939843626202 Chi(tan=0.698644, x=1.0, y=0.698644), iteration=3: 0.700207538210\n    test 3388 35 35.000000000000 Xi(tan=0.700208, x=0.819152, y=0.573576): 0.700207538210\n\n    test 3389 35 35.120665994598 Phi(tan=0.703351, x=0.817942, y=0.5753): 0.700207538210\n    test 3390 35 35.030169708409 Beta(tan=0.700993, x=0.81885, y=0.574008): 0.700207538210\n    test 3391 35 34.939777010856 Theta(tan=0.698642, x=0.819754, y=0.572715): 0.700207538210\n    test 3392 35 34.984941016111 Mu(tan=0.699816, x=0.819303, y=0.573361): 0.700207538210\n    test 3393 35 34.939843626202 Chi(tan=0.698644, x=0.819754, y=0.572716): 0.700207538210\n    test 3394 35 35.000000000000 Xi(tan=0.700208, x=0.819152, y=0.573576): 0.700207538210\n\n    test 3395 42 42.127628467909 Phi(tan=0.904446, x=1.0, y=0.904446): 0.900404044298\n    test 3396 42 42.031915609918 Beta(tan=0.901413, x=1.0, y=0.901413): 0.900404044298\n    test 3397 42 41.936235990174 Theta(tan=0.898391, x=1.0, y=0.898391): 0.900404044298\n    test 3398 42 41.984065426020 Mu(tan=0.899901, x=0.743331, y=0.668924), iteration=3: 0.900404044298\n    test 3399 42 41.936331949525 Chi(tan=0.898394, x=1.0, y=0.898394), iteration=3: 0.900404044298\n    test 3400 42 42.000000000000 Xi(tan=0.900404, x=0.743145, y=0.669131): 0.900404044298\n\n    test 3401 42 42.127628467909 Phi(tan=0.904446, x=0.741652, y=0.670784): 0.900404044298\n    test 3402 42 42.031915609918 Beta(tan=0.901413, x=0.742772, y=0.669544): 0.900404044298\n    test 3403 42 41.936235990174 Theta(tan=0.898391, x=0.743889, y=0.668303): 0.900404044298\n    test 3404 42 41.984065426020 Mu(tan=0.899901, x=0.743331, y=0.668924): 0.900404044298\n    test 3405 42 41.936331949525 Chi(tan=0.898394, x=0.743888, y=0.668304): 0.900404044298\n    test 3406 42 42.000000000000 Xi(tan=0.900404, x=0.743145, y=0.669131): 0.900404044298\n\n    test 3407 49 49.127002845320 Phi(tan=1.15553, x=1.0, y=1.15553): 1.150368407221\n    test 3408 49 49.031764361370 Beta(tan=1.15166, x=1.0, y=1.15166): 1.150368407221\n    test 3409 49 48.936481000855 Theta(tan=1.1478, x=1.0, y=1.1478): 1.150368407221\n    test 3410 49 48.984136719315 Mu(tan=1.14973, x=0.656268, y=0.754528), iteration=2: 1.150368407221\n    test 3411 49 48.936602566380 Chi(tan=1.1478, x=1.0, y=1.1478), iteration=2: 1.150368407221\n    test 3412 49 49.000000000000 Xi(tan=1.15037, x=0.656059, y=0.75471): 1.150368407221\n\n    test 3413 49 49.127002845320 Phi(tan=1.15553, x=0.654385, y=0.756162): 1.150368407221\n    test 3414 49 49.031764361370 Beta(tan=1.15166, x=0.655641, y=0.755073): 1.150368407221\n    test 3415 49 48.936481000855 Theta(tan=1.1478, x=0.656895, y=0.753982): 1.150368407221\n    test 3416 49 48.984136719315 Mu(tan=1.14973, x=0.656268, y=0.754528): 1.150368407221\n    test 3417 49 48.936602566380 Chi(tan=1.1478, x=0.656894, y=0.753983): 1.150368407221\n    test 3418 49 49.000000000000 Xi(tan=1.15037, x=0.656059, y=0.75471): 1.150368407221\n\n    test 3419 56 56.118840243467 Phi(tan=1.48921, x=1.0, y=1.48921): 1.482560968513\n    test 3420 56 56.029727526967 Beta(tan=1.48422, x=1.0, y=1.48422): 1.482560968513\n    test 3421 56 55.940502339654 Theta(tan=1.47925, x=1.0, y=1.47925): 1.482560968513\n    test 3422 56 55.985150111604 Mu(tan=1.48173, x=0.559408, y=0.828893), iteration=3: 1.482560968513\n    test 3423 56 55.940639698829 Chi(tan=1.47925, x=1.0, y=1.47925), iteration=3: 1.482560968513\n    test 3424 56 56.000000000000 Xi(tan=1.48256, x=0.559193, y=0.829038): 1.482560968513\n\n    test 3425 56 56.118840243467 Phi(tan=1.48921, x=0.557472, y=0.830196): 1.482560968513\n    test 3426 56 56.029727526967 Beta(tan=1.48422, x=0.558763, y=0.829328): 1.482560968513\n    test 3427 56 55.940502339654 Theta(tan=1.47925, x=0.560053, y=0.828456): 1.482560968513\n    test 3428 56 55.985150111604 Mu(tan=1.48173, x=0.559408, y=0.828893): 1.482560968513\n    test 3429 56 55.940639698829 Chi(tan=1.47925, x=0.560052, y=0.828458): 1.482560968513\n    test 3430 56 56.000000000000 Xi(tan=1.48256, x=0.559193, y=0.829038): 1.482560968513\n\n    test 3431 63 63.103637615859 Phi(tan=1.97142, x=1.0, y=1.97142): 1.962610505505\n    test 3432 63 63.025928337212 Beta(tan=1.96481, x=1.0, y=1.96481): 1.962610505505\n    test 3433 63 62.948065314408 Theta(tan=1.95822, x=1.0, y=1.95822): 1.962610505505\n    test 3434 63 62.987044924306 Mu(tan=1.96151, x=0.454192, y=0.890904), iteration=3: 1.962610505505\n    test 3435 63 62.948203767989 Chi(tan=1.95823, x=1.0, y=1.95823), iteration=3: 1.962610505505\n    test 3436 63 63.000000000000 Xi(tan=1.96261, x=0.45399, y=0.891007): 1.962610505505\n\n    test 3437 63 63.103637615859 Phi(tan=1.97142, x=0.452378, y=0.891826): 1.962610505505\n    test 3438 63 63.025928337212 Beta(tan=1.96481, x=0.453587, y=0.891212): 1.962610505505\n    test 3439 63 62.948065314408 Theta(tan=1.95822, x=0.454798, y=0.890595): 1.962610505505\n    test 3440 63 62.987044924306 Mu(tan=1.96151, x=0.454192, y=0.890904): 1.962610505505\n    test 3441 63 62.948203767989 Chi(tan=1.95823, x=0.454796, y=0.890596): 1.962610505505\n    test 3442 63 63.000000000000 Xi(tan=1.96261, x=0.45399, y=0.891007): 1.962610505505\n\n    test 3443 70 70.082305433342 Phi(tan=2.75981, x=1.0, y=2.75981): 2.747477419455\n    test 3444 70 70.020593849911 Beta(tan=2.75055, x=1.0, y=2.75055): 2.747477419455\n    test 3445 70 69.958723199827 Theta(tan=2.74133, x=1.0, y=2.74133): 2.747477419455\n    test 3446 70 69.989708300156 Mu(tan=2.74594, x=0.342189, y=0.939631), iteration=3: 2.747477419455\n    test 3447 70 69.958845565244 Chi(tan=2.74135, x=1.0, y=2.74135), iteration=3: 2.747477419455\n    test 3448 70 70.000000000000 Xi(tan=2.74748, x=0.34202, y=0.939693): 2.747477419455\n\n    test 3449 70 70.082305433342 Phi(tan=2.75981, x=0.34067, y=0.940183): 2.747477419455\n    test 3450 70 70.020593849911 Beta(tan=2.75055, x=0.341682, y=0.939815): 2.747477419455\n    test 3451 70 69.958723199827 Theta(tan=2.74133, x=0.342697, y=0.939446): 2.747477419455\n    test 3452 70 69.989708300156 Mu(tan=2.74594, x=0.342189, y=0.939631): 2.747477419455\n    test 3453 70 69.958845565244 Chi(tan=2.74135, x=0.342695, y=0.939447): 2.747477419455\n    test 3454 70 70.000000000000 Xi(tan=2.74748, x=0.34202, y=0.939693): 2.747477419455\n\n    test 3455 77 77.056111910623 Phi(tan=4.35091, x=1.0, y=4.35091): 4.331475874284\n    test 3456 77 77.014041148140 Beta(tan=4.33632, x=1.0, y=4.33632): 4.331475874284\n    test 3457 77 76.971843170758 Theta(tan=4.32179, x=1.0, y=4.32179): 4.331475874284\n    test 3458 77 76.992981975049 Mu(tan=4.32906, x=0.22507, y=0.974343), iteration=3: 4.331475874284\n    test 3459 77 76.971932900289 Chi(tan=4.32182, x=1.0, y=4.32182), iteration=3: 4.331475874284\n    test 3460 77 77.000000000000 Xi(tan=4.33148, x=0.224951, y=0.97437): 4.331475874284\n\n    test 3461 77 77.056111910623 Phi(tan=4.35091, x=0.223997, y=0.97459): 4.331475874284\n    test 3462 77 77.014041148140 Beta(tan=4.33632, x=0.224712, y=0.974425): 4.331475874284\n    test 3463 77 76.971843170758 Theta(tan=4.32179, x=0.22543, y=0.974259): 4.331475874284\n    test 3464 77 76.992981975049 Mu(tan=4.32906, x=0.22507, y=0.974343): 4.331475874284\n    test 3465 77 76.971932900289 Chi(tan=4.32182, x=0.225428, y=0.97426): 4.331475874284\n    test 3466 77 77.000000000000 Xi(tan=4.33148, x=0.224951, y=0.97437): 4.331475874284\n\n    test 3467 84 84.026607472936 Phi(tan=9.55706, x=1.0, y=9.55706): 9.514364454223\n    test 3468 84 84.006658466345 Beta(tan=9.52501, x=1.0, y=9.52501): 9.514364454223\n    test 3469 84 83.986643815196 Theta(tan=9.49308, x=1.0, y=9.49308): 9.514364454223\n    test 3470 84 83.996671688480 Mu(tan=9.50905, x=0.104586, y=0.994516), iteration=3: 9.514364454223\n    test 3471 84 83.986688152448 Chi(tan=9.49315, x=1.0, y=9.49315), iteration=3: 9.514364454223\n    test 3472 84 84.000000000000 Xi(tan=9.51436, x=0.104528, y=0.994522): 9.514364454223\n\n    test 3473 84 84.026607472936 Phi(tan=9.55706, x=0.104067, y=0.99457): 9.514364454223\n    test 3474 84 84.006658466345 Beta(tan=9.52501, x=0.104413, y=0.994534): 9.514364454223\n    test 3475 84 83.986643815196 Theta(tan=9.49308, x=0.10476, y=0.994498): 9.514364454223\n    test 3476 84 83.996671688480 Mu(tan=9.50905, x=0.104586, y=0.994516): 9.514364454223\n    test 3477 84 83.986688152448 Chi(tan=9.49315, x=0.10476, y=0.994498): 9.514364454223\n    test 3478 84 84.000000000000 Xi(tan=9.51436, x=0.104528, y=0.994522): 9.514364454223\n\n    test 3479 91 90.995533984466 Phi(tan=-57.547, x=-1, y=57.547): -57.289961630759\n    test 3480 91 90.998882372785 Beta(tan=-57.3541, x=-1, y=57.3541): -57.289961630759\n    test 3481 91 91.002242018525 Theta(tan=-57.1618, x=-1, y=57.1618): -57.289961630759\n    test 3482 91 91.000558671809 Mu(tan=-57.258, x=-0.0174622, y=0.999848), iteration=3: -57.289961630759\n    test 3483 91 91.002234496198 Chi(tan=-57.1622, x=-1, y=57.1622), iteration=3: -57.289961630759\n    test 3484 91 91.000000000000 Xi(tan=-57.29, x=-0.0174524, y=0.999848): -57.289961630759\n\n    test 3485 91 90.995533984466 Phi(tan=-57.547, x=-0.0173745, y=0.999849): -57.289961630760  FAILED, KNOWN (9.42595e-15), expected -57.289961630759\n    test 3486 91 90.998882372785 Beta(tan=-57.3541, x=-0.0174329, y=0.999848): -57.289961630759\n    test 3487 91 91.002242018525 Theta(tan=-57.1618, x=-0.0174915, y=0.999847): -57.289961630760  FAILED, KNOWN (5.82921e-15), expected -57.289961630759\n    test 3488 91 91.000558671809 Mu(tan=-57.258, x=-0.0174622, y=0.999848): -57.289961630759\n    test 3489 91 91.002234496198 Chi(tan=-57.1622, x=-0.0174914, y=0.999847): -57.289961630760  FAILED, KNOWN (9.54998e-15), expected -57.289961630759\n    test 3490 91 91.000000000000 Xi(tan=-57.29, x=-0.0174524, y=0.999848): -57.289961630759\n\n    test 3491 98 97.964723816165 Phi(tan=-7.1473, x=-1, y=7.1473): -7.115369722384\n    test 3492 98 97.991172305797 Beta(tan=-7.12333, x=-1, y=7.12333): -7.115369722384\n    test 3493 98 98.017706325759 Theta(tan=-7.09945, x=-1, y=7.09945): -7.115369722384\n    test 3494 98 98.004412544182 Mu(tan=-7.1114, x=-0.139249, y=0.990257), iteration=3: -7.115369722384\n    test 3495 98 98.017648048185 Chi(tan=-7.0995, x=-1, y=7.0995), iteration=3: -7.115369722384\n    test 3496 98 98.000000000000 Xi(tan=-7.11537, x=-0.139173, y=0.990268): -7.115369722384\n\n    test 3497 98 97.964723816165 Phi(tan=-7.1473, x=-0.138563, y=0.990354): -7.115369722384\n    test 3498 98 97.991172305797 Beta(tan=-7.12333, x=-0.139021, y=0.990289): -7.115369722384\n    test 3499 98 98.017706325759 Theta(tan=-7.09945, x=-0.139479, y=0.990225): -7.115369722384\n    test 3500 98 98.004412544182 Mu(tan=-7.1114, x=-0.139249, y=0.990257): -7.115369722384\n    test 3501 98 98.017648048185 Chi(tan=-7.0995, x=-0.139478, y=0.990225): -7.115369722384\n    test 3502 98 98.000000000000 Xi(tan=-7.11537, x=-0.139173, y=0.990268): -7.115369722384\n\n    test 3503 105 104.935994159741 Phi(tan=-3.7488, x=-1, y=3.7488): -3.732050807569\n    test 3504 105 104.983983867222 Beta(tan=-3.73623, x=-1, y=3.73623): -3.732050807569\n    test 3505 105 105.032113400902 Theta(tan=-3.7237, x=-1, y=3.7237): -3.732050807569\n    test 3506 105 105.008004873422 Mu(tan=-3.72997, x=-0.258954, y=0.96589), iteration=2: -3.732050807569\n    test 3507 105 105.032012824358 Chi(tan=-3.72373, x=-1, y=3.72373), iteration=3: -3.732050807569\n    test 3508 105 105.000000000000 Xi(tan=-3.73205, x=-0.258819, y=0.965926): -3.732050807569\n\n    test 3509 105 104.935994159741 Phi(tan=-3.7488, x=-0.25774, y=0.966214): -3.732050807569\n    test 3510 105 104.983983867222 Beta(tan=-3.73623, x=-0.258549, y=0.965998): -3.732050807569\n    test 3511 105 105.032113400902 Theta(tan=-3.7237, x=-0.25936, y=0.965781): -3.732050807569\n    test 3512 105 105.008004873422 Mu(tan=-3.72997, x=-0.258954, y=0.96589): -3.732050807569\n    test 3513 105 105.032012824358 Chi(tan=-3.72373, x=-0.259359, y=0.965781): -3.732050807569\n    test 3514 105 105.000000000000 Xi(tan=-3.73205, x=-0.258819, y=0.965926): -3.732050807569\n\n    test 3515 112 111.911042136698 Phi(tan=-2.48619, x=-1, y=2.48619): -2.475086853416\n    test 3516 112 111.977742323906 Beta(tan=-2.47786, x=-1, y=2.47786): -2.475086853416\n    test 3517 112 112.044603965311 Theta(tan=-2.46955, x=-1, y=2.46955): -2.475086853416\n    test 3518 112 112.011122625415 Mu(tan=-2.4737, x=-0.374787, y=0.927111), iteration=3: -2.475086853416\n    test 3519 112 112.044475225333 Chi(tan=-2.46957, x=-1, y=2.46957), iteration=3: -2.475086853416\n    test 3520 112 112.000000000000 Xi(tan=-2.47509, x=-0.374607, y=0.927184): -2.475086853416\n\n    test 3521 112 111.911042136698 Phi(tan=-2.48619, x=-0.373167, y=0.927764): -2.475086853416\n    test 3522 112 111.977742323906 Beta(tan=-2.47786, x=-0.374246, y=0.927329): -2.475086853416\n    test 3523 112 112.044603965311 Theta(tan=-2.46955, x=-0.375328, y=0.926892): -2.475086853416\n    test 3524 112 112.011122625415 Mu(tan=-2.4737, x=-0.374787, y=0.927111): -2.475086853416\n    test 3525 112 112.044475225333 Chi(tan=-2.46957, x=-0.375326, y=0.926893): -2.475086853416\n    test 3526 112 112.000000000000 Xi(tan=-2.47509, x=-0.374607, y=0.927184): -2.475086853416\n\n    test 3527 119 118.891346228069 Phi(tan=-1.81214, x=-1, y=1.81214): -1.804047755271\n    test 3528 119 118.972817760312 Beta(tan=-1.80607, x=-1, y=1.80607): -1.804047755271\n    test 3529 119 119.054434637080 Theta(tan=-1.80001, x=-1, y=1.80001): -1.804047755271\n    test 3530 119 119.013580731176 Mu(tan=-1.80304, x=-0.485017, y=0.874505), iteration=3: -1.804047755271\n    test 3531 119 119.054294796723 Chi(tan=-1.80002, x=-1, y=1.80002), iteration=3: -1.804047755271\n    test 3532 119 119.000000000000 Xi(tan=-1.80405, x=-0.48481, y=0.87462): -1.804047755271\n\n    test 3533 119 118.891346228069 Phi(tan=-1.81214, x=-0.48315, y=0.875538): -1.804047755271\n    test 3534 119 118.972817760312 Beta(tan=-1.80607, x=-0.484395, y=0.87485): -1.804047755271\n    test 3535 119 119.054434637080 Theta(tan=-1.80001, x=-0.48564, y=0.874159): -1.804047755271\n    test 3536 119 119.013580731176 Mu(tan=-1.80304, x=-0.485017, y=0.874505): -1.804047755271\n    test 3537 119 119.054294796723 Chi(tan=-1.80002, x=-0.485638, y=0.87416): -1.804047755271\n    test 3538 119 119.000000000000 Xi(tan=-1.80405, x=-0.48481, y=0.87462): -1.804047755271\n\n    test 3539 126 125.878079358159 Phi(tan=-1.38256, x=-1, y=1.38256): -1.376381920471\n    test 3540 126 125.969503261502 Beta(tan=-1.37792, x=-1, y=1.37792): -1.376381920471\n    test 3541 126 126.061022406195 Theta(tan=-1.3733, x=-1, y=1.3733): -1.376381920471\n    test 3542 126 126.015233045717 Mu(tan=-1.37561, x=-0.588, y=0.808861), iteration=2: -1.376381920471\n    test 3543 126 126.060888237156 Chi(tan=-1.37331, x=-1, y=1.37331), iteration=2: -1.376381920471\n    test 3544 126 126.000000000000 Xi(tan=-1.37638, x=-0.587785, y=0.809017): -1.376381920471\n\n    test 3545 126 125.878079358159 Phi(tan=-1.38256, x=-0.586062, y=0.810266): -1.376381920471\n    test 3546 126 125.969503261502 Beta(tan=-1.37792, x=-0.587355, y=0.80933): -1.376381920471\n    test 3547 126 126.061022406195 Theta(tan=-1.3733, x=-0.588647, y=0.808391): -1.376381920471\n    test 3548 126 126.015233045717 Mu(tan=-1.37561, x=-0.588, y=0.808861): -1.376381920471\n    test 3549 126 126.060888237156 Chi(tan=-1.37331, x=-0.588645, y=0.808392): -1.376381920471\n    test 3550 126 126.000000000000 Xi(tan=-1.37638, x=-0.587785, y=0.809017): -1.376381920471\n\n    test 3551 133 132.872038576251 Phi(tan=-1.07718, x=-1, y=1.07718): -1.072368710025\n    test 3552 133 132.967997382278 Beta(tan=-1.07357, x=-1, y=1.07357): -1.072368710025\n    test 3553 133 133.063979030656 Theta(tan=-1.06997, x=-1, y=1.06997): -1.072368710025\n    test 3554 133 133.015981056163 Mu(tan=-1.07177, x=-0.682202, y=0.731163), iteration=2: -1.072368710025\n    test 3555 133 133.063864035301 Chi(tan=-1.06998, x=-1, y=1.06998), iteration=3: -1.072368710025\n    test 3556 133 133.000000000000 Xi(tan=-1.07237, x=-0.681998, y=0.731354): -1.072368710025\n\n    test 3557 133 132.872038576251 Phi(tan=-1.07718, x=-0.680363, y=0.732875): -1.072368710025\n    test 3558 133 132.967997382278 Beta(tan=-1.07357, x=-0.68159, y=0.731735): -1.072368710025\n    test 3559 133 133.063979030656 Theta(tan=-1.06997, x=-0.682815, y=0.730592): -1.072368710025\n    test 3560 133 133.015981056163 Mu(tan=-1.07177, x=-0.682202, y=0.731163): -1.072368710025\n    test 3561 133 133.063864035301 Chi(tan=-1.06998, x=-0.682813, y=0.730593): -1.072368710025\n    test 3562 133 133.000000000000 Xi(tan=-1.07237, x=-0.681998, y=0.731354): -1.072368710025\n\n    test 3563 140 139.873595650901 Phi(tan=-0.842866, x=-1, y=0.842866): -0.839099631177\n    test 3564 140 139.968391970048 Beta(tan=-0.84004, x=-1, y=0.84004): -0.839099631177\n    test 3565 140 140.063133367178 Theta(tan=-0.837224, x=-1, y=0.837224): -0.839099631177\n    test 3566 140 140.015779815968 Mu(tan=-0.83863, x=-0.766221, y=0.642577), iteration=3: -0.839099631177\n    test 3567 140 140.063045682360 Chi(tan=-0.837226, x=-1, y=0.837226), iteration=2: -0.839099631177\n    test 3568 140 140.000000000000 Xi(tan=-0.8391, x=-0.766044, y=0.642788): -0.839099631177\n\n    test 3569 140 139.873595650901 Phi(tan=-0.842866, x=-0.764624, y=0.644476): -0.839099631177\n    test 3570 140 139.968391970048 Beta(tan=-0.84004, x=-0.76569, y=0.64321): -0.839099631177\n    test 3571 140 140.063133367178 Theta(tan=-0.837224, x=-0.766752, y=0.641943): -0.839099631177\n    test 3572 140 140.015779815968 Mu(tan=-0.83863, x=-0.766221, y=0.642577): -0.839099631177\n    test 3573 140 140.063045682360 Chi(tan=-0.837226, x=-0.766751, y=0.641944): -0.839099631177\n    test 3574 140 140.000000000000 Xi(tan=-0.8391, x=-0.766044, y=0.642788): -0.839099631177\n\n    test 3575 147 146.882671979706 Phi(tan=-0.652323, x=-1, y=0.652323): -0.649407593198\n    test 3576 147 146.970666152106 Beta(tan=-0.650136, x=-1, y=0.650136): -0.649407593198\n    test 3577 147 147.058540482739 Theta(tan=-0.647956, x=-1, y=0.647956): -0.649407593198\n    test 3578 147 147.014640733824 Mu(tan=-0.649044, x=-0.83881, y=0.544425), iteration=2: -0.649407593198\n    test 3579 147 147.058482092364 Chi(tan=-0.647957, x=-1, y=0.647957), iteration=3: -0.649407593198\n    test 3580 147 147.000000000000 Xi(tan=-0.649408, x=-0.838671, y=0.544639): -0.649407593198\n\n    test 3581 147 146.882671979706 Phi(tan=-0.652323, x=-0.837554, y=0.546355): -0.649407593198\n    test 3582 147 146.970666152106 Beta(tan=-0.650136, x=-0.838392, y=0.545068): -0.649407593198\n    test 3583 147 147.058540482739 Theta(tan=-0.647956, x=-0.839227, y=0.543782): -0.649407593198\n    test 3584 147 147.014640733824 Mu(tan=-0.649044, x=-0.83881, y=0.544425): -0.649407593198\n    test 3585 147 147.058482092364 Chi(tan=-0.647957, x=-0.839226, y=0.543783): -0.649407593198\n    test 3586 147 147.000000000000 Xi(tan=-0.649408, x=-0.838671, y=0.544639): -0.649407593198\n\n    test 3587 154 153.898740000769 Phi(tan=-0.489922, x=-1, y=0.489922): -0.487732588566\n    test 3588 154 153.974686973605 Beta(tan=-0.48828, x=-1, y=0.48828): -0.487732588566\n    test 3589 154 154.050477253377 Theta(tan=-0.486642, x=-1, y=0.486642): -0.487732588566\n    test 3590 154 154.012631023956 Mu(tan=-0.48746, x=-0.898891, y=0.438173), iteration=3: -0.487732588566\n    test 3591 154 154.050444626907 Chi(tan=-0.486643, x=-1, y=0.486643), iteration=2: -0.487732588566\n    test 3592 154 154.000000000000 Xi(tan=-0.487733, x=-0.898794, y=0.438371): -0.487732588566\n\n    test 3593 154 153.898740000769 Phi(tan=-0.489922, x=-0.898018, y=0.439959): -0.487732588566\n    test 3594 154 153.974686973605 Beta(tan=-0.48828, x=-0.8986, y=0.438768): -0.487732588566\n    test 3595 154 154.050477253377 Theta(tan=-0.486642, x=-0.89918, y=0.437579): -0.487732588566\n    test 3596 154 154.012631023956 Mu(tan=-0.48746, x=-0.898891, y=0.438173): -0.487732588566\n    test 3597 154 154.050444626907 Chi(tan=-0.486643, x=-0.89918, y=0.43758): -0.487732588566\n    test 3598 154 154.000000000000 Xi(tan=-0.487733, x=-0.898794, y=0.438371): -0.487732588566\n\n    test 3599 161 160.920851786649 Phi(tan=-0.345874, x=-1, y=0.345874): -0.344327613290\n    test 3600 161 160.980216789536 Beta(tan=-0.344714, x=-1, y=0.344714): -0.344327613290\n    test 3601 161 161.039424975997 Theta(tan=-0.343558, x=-1, y=0.343558): -0.344327613290\n    test 3602 161 161.009869820426 Mu(tan=-0.344135, x=-0.945575, y=0.325405), iteration=3: -0.344327613290\n    test 3603 161 161.039410917225 Chi(tan=-0.343558, x=-1, y=0.343558), iteration=3: -0.344327613290\n    test 3604 161 161.000000000000 Xi(tan=-0.344328, x=-0.945519, y=0.325568): -0.344327613290\n\n    test 3605 161 160.920851786649 Phi(tan=-0.345874, x=-0.945068, y=0.326874): -0.344327613290\n    test 3606 161 160.980216789536 Beta(tan=-0.344714, x=-0.945406, y=0.325895): -0.344327613290\n    test 3607 161 161.039424975997 Theta(tan=-0.343558, x=-0.945742, y=0.324917): -0.344327613290\n    test 3608 161 161.009869820426 Mu(tan=-0.344135, x=-0.945575, y=0.325405): -0.344327613290\n    test 3609 161 161.039410917225 Chi(tan=-0.343558, x=-0.945742, y=0.324918): -0.344327613290\n    test 3610 161 161.000000000000 Xi(tan=-0.344328, x=-0.945519, y=0.325568): -0.344327613290\n\n    test 3611 168 167.947693775816 Phi(tan=-0.213511, x=-1, y=0.213511): -0.212556561670\n    test 3612 168 167.986927091791 Beta(tan=-0.212795, x=-1, y=0.212795): -0.212556561670\n    test 3613 168 168.026040245291 Theta(tan=-0.212082, x=-1, y=0.212082): -0.212556561670\n    test 3614 168 168.006521160939 Mu(tan=-0.212438, x=-0.978171, y=0.2078), iteration=3: -0.212556561670\n    test 3615 168 168.026036457648 Chi(tan=-0.212082, x=-1, y=0.212082), iteration=3: -0.212556561670\n    test 3616 168 168.000000000000 Xi(tan=-0.212557, x=-0.978148, y=0.207912): -0.212556561670\n\n    test 3617 168 167.947693775816 Phi(tan=-0.213511, x=-0.977957, y=0.208805): -0.212556561670\n    test 3618 168 167.986927091791 Beta(tan=-0.212795, x=-0.9781, y=0.208135): -0.212556561670\n    test 3619 168 168.026040245291 Theta(tan=-0.212082, x=-0.978242, y=0.207467): -0.212556561670\n    test 3620 168 168.006521160939 Mu(tan=-0.212438, x=-0.978171, y=0.2078): -0.212556561670\n    test 3621 168 168.026036457648 Chi(tan=-0.212082, x=-0.978242, y=0.207467): -0.212556561670\n    test 3622 168 168.000000000000 Xi(tan=-0.212557, x=-0.978148, y=0.207912): -0.212556561670\n\n    test 3623 175 174.977664774563 Phi(tan=-0.0878815, x=-1, y=0.0878815): -0.087488663526\n    test 3624 175 174.994418020079 Beta(tan=-0.0875868, x=-1, y=0.0875868): -0.087488663526\n    test 3625 175 175.011115948983 Theta(tan=-0.0872932, x=-1, y=0.0872932): -0.087488663526\n    test 3626 175 175.002784242316 Mu(tan=-0.0874397, x=-0.996199, y=0.0871073), iteration=2: -0.087488663526\n    test 3627 175 175.011115664833 Chi(tan=-0.0872932, x=-1, y=0.0872932), iteration=2: -0.087488663526\n    test 3628 175 175.000000000000 Xi(tan=-0.0874887, x=-0.996195, y=0.0871557): -0.087488663526\n\n    test 3629 175 174.977664774563 Phi(tan=-0.0878815, x=-0.996161, y=0.0875441): -0.087488663526\n    test 3630 175 174.994418020079 Beta(tan=-0.0875868, x=-0.996186, y=0.0872528): -0.087488663526\n    test 3631 175 175.011115948983 Theta(tan=-0.0872932, x=-0.996212, y=0.0869625): -0.087488663526\n    test 3632 175 175.002784242316 Mu(tan=-0.0874397, x=-0.996199, y=0.0871073): -0.087488663526\n    test 3633 175 175.011115664833 Chi(tan=-0.0872932, x=-0.996212, y=0.0869625): -0.087488663526\n    test 3634 175 175.000000000000 Xi(tan=-0.0874887, x=-0.996195, y=0.0871557): -0.087488663526\n\n    test 3635 182 182.008972613463 Phi(tan=0.0350776, x=-1, y=-0.0350776): 0.034920769492\n    test 3636 182 182.002242400308 Beta(tan=0.03496, x=-1, y=-0.03496): 0.034920769492\n    test 3637 182 181.995534697284 Theta(tan=0.0348427, x=-1, y=-0.0348427): 0.034920769492\n    test 3638 182 181.998881526172 Mu(tan=0.0349012, x=-0.999392, y=-0.03488), iteration=3: 0.034920769492\n    test 3639 182 181.995534715586 Chi(tan=0.0348427, x=-1, y=-0.0348427), iteration=2: 0.034920769492\n    test 3640 182 182.000000000000 Xi(tan=0.0349208, x=-0.999391, y=-0.0348995): 0.034920769492\n\n    test 3641 182 182.008972613463 Phi(tan=0.0350776, x=-0.999385, y=-0.035056): 0.034920769492\n    test 3642 182 182.002242400308 Beta(tan=0.03496, x=-0.999389, y=-0.0349386): 0.034920769492\n    test 3643 182 181.995534697284 Theta(tan=0.0348427, x=-0.999394, y=-0.0348216): 0.034920769492\n    test 3644 182 181.998881526172 Mu(tan=0.0349012, x=-0.999392, y=-0.03488): 0.034920769492\n    test 3645 182 181.995534715586 Chi(tan=0.0348427, x=-0.999394, y=-0.0348216): 0.034920769492\n    test 3646 182 182.000000000000 Xi(tan=0.0349208, x=-0.999391, y=-0.0348995): 0.034920769492\n\n    test 3647 189 189.039743358381 Phi(tan=0.159096, x=-1, y=-0.159096): 0.158384440325\n    test 3648 189 189.009932816166 Beta(tan=0.158562, x=-1, y=-0.158562): 0.158384440325\n    test 3649 189 188.980217328283 Theta(tan=0.158031, x=-1, y=-0.158031): 0.158384440325\n    test 3650 189 188.995045415532 Mu(tan=0.158296, x=-0.987702, y=-0.156349), iteration=3: 0.158384440325\n    test 3651 189 188.980218957347 Chi(tan=0.158031, x=-1, y=-0.158031), iteration=3: 0.158384440325\n    test 3652 189 189.000000000000 Xi(tan=0.158384, x=-0.987688, y=-0.156434): 0.158384440325\n\n    test 3653 189 189.039743358381 Phi(tan=0.159096, x=-0.98758, y=-0.15712): 0.158384440325\n    test 3654 189 189.009932816166 Beta(tan=0.158562, x=-0.987661, y=-0.156606): 0.158384440325\n    test 3655 189 188.980217328283 Theta(tan=0.158031, x=-0.987742, y=-0.156093): 0.158384440325\n    test 3656 189 188.995045415532 Mu(tan=0.158296, x=-0.987702, y=-0.156349): 0.158384440325\n    test 3657 189 188.980218957347 Chi(tan=0.158031, x=-0.987742, y=-0.156093): 0.158384440325\n    test 3658 189 189.000000000000 Xi(tan=0.158384, x=-0.987688, y=-0.156434): 0.158384440325\n\n    test 3659 196 196.068135937668 Phi(tan=0.288033, x=-1, y=-0.288033): 0.286745385759\n    test 3660 196 196.017029985937 Beta(tan=0.287067, x=-1, y=-0.287067): 0.286745385759\n    test 3661 196 195.966069329052 Theta(tan=0.286105, x=-1, y=-0.286105): 0.286745385759\n    test 3662 196 195.991504319198 Mu(tan=0.286585, x=-0.961303, y=-0.275495), iteration=3: 0.286745385759\n    test 3663 196 195.966078002587 Chi(tan=0.286105, x=-1, y=-0.286105), iteration=3: 0.286745385759\n    test 3664 196 196.000000000000 Xi(tan=0.286745, x=-0.961262, y=-0.275637): 0.286745385759\n\n    test 3665 196 196.068135937668 Phi(tan=0.288033, x=-0.960933, y=-0.27678): 0.286745385759\n    test 3666 196 196.017029985937 Beta(tan=0.287067, x=-0.96118, y=-0.275923): 0.286745385759\n    test 3667 196 195.966069329052 Theta(tan=0.286105, x=-0.961425, y=-0.275068): 0.286745385759\n    test 3668 196 195.991504319198 Mu(tan=0.286585, x=-0.961303, y=-0.275495): 0.286745385759\n    test 3669 196 195.966078002587 Chi(tan=0.286105, x=-0.961425, y=-0.275068): 0.286745385759\n    test 3670 196 196.000000000000 Xi(tan=0.286745, x=-0.961262, y=-0.275637): 0.286745385759\n\n    test 3671 203 203.092454589560 Phi(tan=0.426381, x=-1, y=-0.426381): 0.424474816210\n    test 3672 203 203.023110614245 Beta(tan=0.424951, x=-1, y=-0.424951): 0.424474816210\n    test 3673 203 202.953928092744 Theta(tan=0.423526, x=-1, y=-0.423526): 0.424474816210\n    test 3674 203 202.988468962214 Mu(tan=0.424237, x=-0.920583, y=-0.390546), iteration=2: 0.424474816210\n    test 3675 203 202.953951753533 Chi(tan=0.423527, x=-1, y=-0.423527), iteration=2: 0.424474816210\n    test 3676 203 203.000000000000 Xi(tan=0.424475, x=-0.920505, y=-0.390731): 0.424474816210\n\n    test 3677 203 203.092454589560 Phi(tan=0.426381, x=-0.919873, y=-0.392216): 0.424474816210\n    test 3678 203 203.023110614245 Beta(tan=0.424951, x=-0.920347, y=-0.391102): 0.424474816210\n    test 3679 203 202.953928092744 Theta(tan=0.423526, x=-0.920819, y=-0.389991): 0.424474816210\n    test 3680 203 202.988468962214 Mu(tan=0.424237, x=-0.920583, y=-0.390546): 0.424474816210\n    test 3681 203 202.953951753533 Chi(tan=0.423527, x=-0.920819, y=-0.389991): 0.424474816210\n    test 3682 203 203.000000000000 Xi(tan=0.424475, x=-0.920505, y=-0.390731): 0.424474816210\n\n    test 3683 210 210.111251718648 Phi(tan=0.579942, x=-1, y=-0.579942): 0.577350269190\n    test 3684 210 210.027812929728 Beta(tan=0.577998, x=-1, y=-0.577998): 0.577350269190\n    test 3685 210 209.944513899906 Theta(tan=0.57606, x=-1, y=-0.57606): 0.577350269190\n    test 3686 210 209.986119784065 Mu(tan=0.577027, x=-0.866147, y=-0.49979), iteration=3: 0.577350269190\n    test 3687 210 209.944560549356 Chi(tan=0.576061, x=-1, y=-0.576061), iteration=3: 0.577350269190\n    test 3688 210 210.000000000000 Xi(tan=0.57735, x=-0.866025, y=-0.5): 0.577350269190\n\n    test 3689 210 210.111251718648 Phi(tan=0.579942, x=-0.865053, y=-0.501681): 0.577350269190\n    test 3690 210 210.027812929728 Beta(tan=0.577998, x=-0.865783, y=-0.50042): 0.577350269190\n    test 3691 210 209.944513899906 Theta(tan=0.57606, x=-0.866509, y=-0.499161): 0.577350269190\n    test 3692 210 209.986119784065 Mu(tan=0.577027, x=-0.866147, y=-0.49979): 0.577350269190\n    test 3693 210 209.944560549356 Chi(tan=0.576061, x=-0.866509, y=-0.499162): 0.577350269190\n    test 3694 210 210.000000000000 Xi(tan=0.57735, x=-0.866025, y=-0.5): 0.577350269190\n\n    test 3695 217 217.123414552554 Phi(tan=0.756937, x=-1, y=-0.756937): 0.753554050103\n    test 3696 217 217.030858299580 Beta(tan=0.754399, x=-1, y=-0.754399): 0.753554050103\n    test 3697 217 216.938387365618 Theta(tan=0.751869, x=-1, y=-0.751869): 0.753554050103\n    test 3698 217 216.984596192751 Mu(tan=0.753133, x=-0.798797, y=-0.6016), iteration=3: 0.753554050103\n    test 3699 217 216.938462387195 Chi(tan=0.751871, x=-1, y=-0.751871), iteration=3: 0.753554050103\n    test 3700 217 217.000000000000 Xi(tan=0.753554, x=-0.798636, y=-0.601815): 0.753554050103\n\n    test 3701 217 217.123414552554 Phi(tan=0.756937, x=-0.797337, y=-0.603534): 0.753554050103\n    test 3702 217 217.030858299580 Beta(tan=0.754399, x=-0.798311, y=-0.602245): 0.753554050103\n    test 3703 217 216.938387365618 Theta(tan=0.751869, x=-0.799282, y=-0.600956): 0.753554050103\n    test 3704 217 216.984596192751 Mu(tan=0.753133, x=-0.798797, y=-0.6016): 0.753554050103\n    test 3705 217 216.938462387195 Chi(tan=0.751871, x=-0.799281, y=-0.600957): 0.753554050103\n    test 3706 217 217.000000000000 Xi(tan=0.753554, x=-0.798636, y=-0.601815): 0.753554050103\n\n    test 3707 224 224.128230303258 Phi(tan=0.970023, x=-1, y=-0.970023): 0.965688774807\n    test 3708 224 224.032067609230 Beta(tan=0.966771, x=-1, y=-0.966771): 0.965688774807\n    test 3709 224 223.935915824293 Theta(tan=0.96353, x=-1, y=-0.96353): 0.965688774807\n    test 3710 224 223.983988319148 Mu(tan=0.965149, x=-0.719534, y=-0.694457), iteration=3: 0.965688774807\n    test 3711 224 223.936019754646 Chi(tan=0.963533, x=-1, y=-0.963533), iteration=3: 0.965688774807\n    test 3712 224 224.000000000000 Xi(tan=0.965689, x=-0.71934, y=-0.694658): 0.965688774807\n\n    test 3713 224 224.128230303258 Phi(tan=0.970023, x=-0.717783, y=-0.696267): 0.965688774807\n    test 3714 224 224.032067609230 Beta(tan=0.966771, x=-0.718951, y=-0.695061): 0.965688774807\n    test 3715 224 223.935915824293 Theta(tan=0.96353, x=-0.720116, y=-0.693853): 0.965688774807\n    test 3716 224 223.983988319148 Mu(tan=0.965149, x=-0.719534, y=-0.694457): 0.965688774807\n    test 3717 224 223.936019754646 Chi(tan=0.963533, x=-0.720115, y=-0.693855): 0.965688774807\n    test 3718 224 224.000000000000 Xi(tan=0.965689, x=-0.71934, y=-0.694658): 0.965688774807\n\n    test 3719 231 231.125426196540 Phi(tan=1.24044, x=-1, y=-1.24044): 1.234897156535\n    test 3720 231 231.031371476626 Beta(tan=1.23628, x=-1, y=-1.23628): 1.234897156535\n    test 3721 231 230.937250720782 Theta(tan=1.23214, x=-1, y=-1.23214): 1.234897156535\n    test 3722 231 230.984331752747 Mu(tan=1.23421, x=-0.629533, y=-0.776974), iteration=3: 1.234897156535\n    test 3723 231 230.937378047856 Chi(tan=1.23214, x=-1, y=-1.23214), iteration=2: 1.234897156535\n    test 3724 231 231.000000000000 Xi(tan=1.2349, x=-0.62932, y=-0.777146): 1.234897156535\n\n    test 3725 231 231.125426196540 Phi(tan=1.24044, x=-0.627618, y=-0.778522): 1.234897156535\n    test 3726 231 231.031371476626 Beta(tan=1.23628, x=-0.628895, y=-0.77749): 1.234897156535\n    test 3727 231 230.937250720782 Theta(tan=1.23214, x=-0.630171, y=-0.776456): 1.234897156535\n    test 3728 231 230.984331752747 Mu(tan=1.23421, x=-0.629533, y=-0.776974): 1.234897156535\n    test 3729 231 230.937378047856 Chi(tan=1.23214, x=-0.630169, y=-0.776458): 1.234897156535\n    test 3730 231 231.000000000000 Xi(tan=1.2349, x=-0.62932, y=-0.777146): 1.234897156535\n\n    test 3731 238 238.115182546420 Phi(tan=1.60752, x=-1, y=-1.60752): 1.600334529041\n    test 3732 238 238.028813796136 Beta(tan=1.60213, x=-1, y=-1.60213): 1.600334529041\n    test 3733 238 237.942317534000 Theta(tan=1.59676, x=-1, y=-1.59676): 1.600334529041\n    test 3734 238 237.985605550109 Mu(tan=1.59944, x=-0.530132, y=-0.847915), iteration=3: 1.600334529041\n    test 3735 238 237.942456867934 Chi(tan=1.59676, x=-1, y=-1.59676), iteration=3: 1.600334529041\n    test 3736 238 238.000000000000 Xi(tan=1.60033, x=-0.529919, y=-0.848048): 1.600334529041\n\n    test 3737 238 238.115182546420 Phi(tan=1.60752, x=-0.528213, y=-0.849112): 1.600334529041\n    test 3738 238 238.028813796136 Beta(tan=1.60213, x=-0.529493, y=-0.848314): 1.600334529041\n    test 3739 238 237.942317534000 Theta(tan=1.59676, x=-0.530773, y=-0.847514): 1.600334529041\n    test 3740 238 237.985605550109 Mu(tan=1.59944, x=-0.530132, y=-0.847915): 1.600334529041\n    test 3741 238 237.942456867934 Chi(tan=1.59676, x=-0.530771, y=-0.847515): 1.600334529041\n    test 3742 238 238.000000000000 Xi(tan=1.60033, x=-0.529919, y=-0.848048): 1.600334529041\n\n    test 3743 245 245.098118836759 Phi(tan=2.15413, x=-1, y=-2.15413): 2.144506920510\n    test 3744 245 245.024548537731 Beta(tan=2.14691, x=-1, y=-2.14691): 2.144506920510\n    test 3745 245 244.950819083860 Theta(tan=2.13971, x=-1, y=-2.13971): 2.144506920510\n    test 3746 245 244.987733605483 Mu(tan=2.14331, x=-0.422812, y=-0.906217), iteration=3: 2.144506920510\n    test 3747 245 244.950954727954 Chi(tan=2.13972, x=-1, y=-2.13972), iteration=2: 2.144506920510\n    test 3748 245 245.000000000000 Xi(tan=2.14451, x=-0.422618, y=-0.906308): 2.144506920510\n\n    test 3749 245 245.098118836759 Phi(tan=2.15413, x=-0.421066, y=-0.90703): 2.144506920510\n    test 3750 245 245.024548537731 Beta(tan=2.14691, x=-0.42223, y=-0.906489): 2.144506920510\n    test 3751 245 244.950819083860 Theta(tan=2.13971, x=-0.423396, y=-0.905945): 2.144506920510\n    test 3752 245 244.987733605483 Mu(tan=2.14331, x=-0.422812, y=-0.906217): 2.144506920510\n    test 3753 245 244.950954727954 Chi(tan=2.13972, x=-0.423394, y=-0.905946): 2.144506920510\n    test 3754 245 245.000000000000 Xi(tan=2.14451, x=-0.422618, y=-0.906308): 2.144506920510\n\n    test 3755 252 252.075254383698 Phi(tan=3.09149, x=-1, y=-3.09149): 3.077683537175\n    test 3756 252 252.018830129897 Beta(tan=3.08113, x=-1, y=-3.08113): 3.077683537175\n    test 3757 252 251.962252287555 Theta(tan=3.0708, x=-1, y=-3.0708): 3.077683537175\n    test 3758 252 251.990589272651 Mu(tan=3.07596, x=-0.309173, y=-0.951006), iteration=2: 3.077683537175\n    test 3759 252 251.962366907267 Chi(tan=3.07082, x=-1, y=-3.07082), iteration=3: 3.077683537175\n    test 3760 252 252.000000000000 Xi(tan=3.07768, x=-0.309017, y=-0.951057): 3.077683537175\n\n    test 3761 252 252.075254383698 Phi(tan=3.09149, x=-0.307768, y=-0.951462): 3.077683537175\n    test 3762 252 252.018830129897 Beta(tan=3.08113, x=-0.308704, y=-0.951158): 3.077683537175\n    test 3763 252 251.962252287555 Theta(tan=3.0708, x=-0.309644, y=-0.950853): 3.077683537175\n    test 3764 252 251.990589272651 Mu(tan=3.07596, x=-0.309173, y=-0.951006): 3.077683537175\n    test 3765 252 251.962366907267 Chi(tan=3.07082, x=-0.309642, y=-0.950853): 3.077683537175\n    test 3766 252 252.000000000000 Xi(tan=3.07768, x=-0.309017, y=-0.951057): 3.077683537175\n\n    test 3767 259 259.047946497885 Phi(tan=5.16764, x=-1, y=-5.16764): 5.144554015970\n    test 3768 259 259.011998105898 Beta(tan=5.15031, x=-1, y=-5.15031): 5.144554015970\n    test 3769 259 258.975937580981 Theta(tan=5.13304, x=-1, y=-5.13304): 5.144554015970\n    test 3770 259 258.994002940120 Mu(tan=5.14168, x=-0.190912, y=-0.981607), iteration=3: 5.144554015970\n    test 3771 259 258.976015406086 Chi(tan=5.13308, x=-1, y=-5.13308), iteration=3: 5.144554015970\n    test 3772 259 259.000000000000 Xi(tan=5.14455, x=-0.190809, y=-0.981627): 5.144554015970\n\n    test 3773 259 259.047946497885 Phi(tan=5.16764, x=-0.189987, y=-0.981787): 5.144554015970\n    test 3774 259 259.011998105898 Beta(tan=5.15031, x=-0.190603, y=-0.981667): 5.144554015970\n    test 3775 259 258.975937580981 Theta(tan=5.13304, x=-0.191221, y=-0.981547): 5.144554015970\n    test 3776 259 258.994002940120 Mu(tan=5.14168, x=-0.190912, y=-0.981607): 5.144554015970\n    test 3777 259 258.976015406086 Chi(tan=5.13308, x=-0.19122, y=-0.981547): 5.144554015970\n    test 3778 259 259.000000000000 Xi(tan=5.14455, x=-0.190809, y=-0.981627): 5.144554015970\n\n    test 3779 266 266.017810106930 Phi(tan=14.3648, x=-1, y=-14.3648): 14.300666256712\n    test 3780 266 266.004456979343 Beta(tan=14.3167, x=-1, y=-14.3167): 14.300666256712\n    test 3781 266 265.991059367560 Theta(tan=14.2687, x=-1, y=-14.2687): 14.300666256712\n    test 3782 266 265.997772097900 Mu(tan=14.2927, x=-0.0697953, y=-0.997561), iteration=2: 14.300666256712\n    test 3783 266 265.991089228290 Chi(tan=14.2688, x=-1, y=-14.2688), iteration=3: 14.300666256712\n    test 3784 266 266.000000000000 Xi(tan=14.3007, x=-0.0697565, y=-0.997564): 14.300666256712\n\n    test 3785 266 266.017810106930 Phi(tan=14.3648, x=-0.0694464, y=-0.997586): 14.300666256712\n    test 3786 266 266.004456979343 Beta(tan=14.3167, x=-0.0696789, y=-0.997569): 14.300666256712\n    test 3787 266 265.991059367560 Theta(tan=14.2687, x=-0.0699121, y=-0.997553): 14.300666256712\n    test 3788 266 265.997772097900 Mu(tan=14.2927, x=-0.0697953, y=-0.997561): 14.300666256712\n    test 3789 266 265.991089228290 Chi(tan=14.2688, x=-0.0699116, y=-0.997553): 14.300666256712\n    test 3790 266 266.000000000000 Xi(tan=14.3007, x=-0.0697565, y=-0.997564): 14.300666256712\n\n    test 3791 273 272.986623544405 Phi(tan=-19.1668, x=1.0, y=-19.1668): -19.081136687728\n    test 3792 273 272.996652532418 Beta(tan=-19.1025, x=1.0, y=-19.1025): -19.081136687728\n    test 3793 273 273.006715074128 Theta(tan=-19.0384, x=1.0, y=-19.0384): -19.081136687728\n    test 3794 273 273.001673300226 Mu(tan=-19.0705, x=0.0523651, y=-0.998628), iteration=2: -19.081136687728\n    test 3795 273 273.006692598711 Chi(tan=-19.0386, x=1.0, y=-19.0386), iteration=3: -19.081136687728\n    test 3796 273 273.000000000000 Xi(tan=-19.0811, x=0.052336, y=-0.99863): -19.081136687728\n\n    test 3797 273 272.986623544405 Phi(tan=-19.1668, x=0.0521028, y=-0.998642): -19.081136687728\n    test 3798 273 272.996652532418 Beta(tan=-19.1025, x=0.0522776, y=-0.998633): -19.081136687728\n    test 3799 273 273.006715074128 Theta(tan=-19.0384, x=0.052453, y=-0.998623): -19.081136687728\n    test 3800 273 273.001673300226 Mu(tan=-19.0705, x=0.0523651, y=-0.998628): -19.081136687728\n    test 3801 273 273.006692598711 Chi(tan=-19.0386, x=0.0524526, y=-0.998623): -19.081136687728\n    test 3802 273 273.000000000000 Xi(tan=-19.0811, x=0.052336, y=-0.99863): -19.081136687728\n\n    test 3803 280 279.956225698278 Phi(tan=-5.69673, x=1.0, y=-5.69673): -5.671281819618\n    test 3804 280 279.989045850720 Beta(tan=-5.67763, x=1.0, y=-5.67763): -5.671281819618\n    test 3805 280 280.021969758476 Theta(tan=-5.65859, x=1.0, y=-5.65859): -5.671281819618\n    test 3806 280 280.005475329461 Mu(tan=-5.66811, x=0.173742, y=-0.984791), iteration=3: -5.671281819618\n    test 3807 280 280.021898241655 Chi(tan=-5.65863, x=1.0, y=-5.65863), iteration=3: -5.671281819618\n    test 3808 280 280.000000000000 Xi(tan=-5.67128, x=0.173648, y=-0.984808): -5.671281819618\n\n    test 3809 280 279.956225698278 Phi(tan=-5.69673, x=0.172896, y=-0.98494): -5.671281819618\n    test 3810 280 279.989045850720 Beta(tan=-5.67763, x=0.17346, y=-0.984841): -5.671281819618\n    test 3811 280 280.021969758476 Theta(tan=-5.65859, x=0.174026, y=-0.984741): -5.671281819618\n    test 3812 280 280.005475329461 Mu(tan=-5.66811, x=0.173742, y=-0.984791): -5.671281819618\n    test 3813 280 280.021898241655 Chi(tan=-5.65863, x=0.174025, y=-0.984741): -5.671281819618\n    test 3814 280 280.000000000000 Xi(tan=-5.67128, x=0.173648, y=-0.984808): -5.671281819618\n\n    test 3815 287 286.928409983832 Phi(tan=-3.28553, x=1.0, y=-3.28553): -3.270852618484\n    test 3816 287 286.982086527391 Beta(tan=-3.27451, x=1.0, y=-3.27451): -3.270852618484\n    test 3817 287 287.035912792570 Theta(tan=-3.26354, x=1.0, y=-3.26354): -3.270852618484\n    test 3818 287 287.008952804861 Mu(tan=-3.26903, x=0.292521, y=-0.956259), iteration=3: -3.270852618484\n    test 3819 287 287.035802540646 Chi(tan=-3.26356, x=1.0, y=-3.26356), iteration=3: -3.270852618484\n    test 3820 287 287.000000000000 Xi(tan=-3.27085, x=0.292372, y=-0.956305): -3.270852618484\n\n    test 3821 287 286.928409983832 Phi(tan=-3.28553, x=0.291177, y=-0.956669): -3.270852618484\n    test 3822 287 286.982086527391 Beta(tan=-3.27451, x=0.292073, y=-0.956396): -3.270852618484\n    test 3823 287 287.035912792570 Theta(tan=-3.26354, x=0.292971, y=-0.956121): -3.270852618484\n    test 3824 287 287.008952804861 Mu(tan=-3.26903, x=0.292521, y=-0.956259): -3.270852618484\n    test 3825 287 287.035802540646 Chi(tan=-3.26356, x=0.292969, y=-0.956122): -3.270852618484\n    test 3826 287 287.000000000000 Xi(tan=-3.27085, x=0.292372, y=-0.956305): -3.270852618484\n\n    test 3827 294 293.904820699861 Phi(tan=-2.25612, x=1.0, y=-2.25612): -2.246036773904\n    test 3828 294 293.976186490838 Beta(tan=-2.24855, x=1.0, y=-2.24855): -2.246036773904\n    test 3829 294 294.047712986128 Theta(tan=-2.24101, x=1.0, y=-2.24101): -2.246036773904\n    test 3830 294 294.011899457288 Mu(tan=-2.24478, x=0.406926, y=-0.913461), iteration=3: -2.246036773904\n    test 3831 294 294.047579285201 Chi(tan=-2.24103, x=1.0, y=-2.24103), iteration=3: -2.246036773904\n    test 3832 294 294.000000000000 Xi(tan=-2.24604, x=0.406737, y=-0.913545): -2.246036773904\n\n    test 3833 294 293.904820699861 Phi(tan=-2.25612, x=0.405219, y=-0.91422): -2.246036773904\n    test 3834 294 293.976186490838 Beta(tan=-2.24855, x=0.406357, y=-0.913714): -2.246036773904\n    test 3835 294 294.047712986128 Theta(tan=-2.24101, x=0.407497, y=-0.913206): -2.246036773904\n    test 3836 294 294.011899457288 Mu(tan=-2.24478, x=0.406926, y=-0.913461): -2.246036773904\n    test 3837 294 294.047579285201 Chi(tan=-2.24103, x=0.407495, y=-0.913207): -2.246036773904\n    test 3838 294 294.000000000000 Xi(tan=-2.24604, x=0.406737, y=-0.913545): -2.246036773904\n\n    test 3839 301 300.886857256907 Phi(tan=-1.67175, x=1.0, y=-1.67175): -1.664279482351\n    test 3840 301 300.971695886665 Beta(tan=-1.66614, x=1.0, y=-1.66614): -1.664279482351\n    test 3841 301 301.056668635072 Theta(tan=-1.66056, x=1.0, y=-1.66056): -1.664279482351\n    test 3842 301 301.014140307923 Mu(tan=-1.66335, x=0.51525, y=-0.85704), iteration=3: -1.664279482351\n    test 3843 301 301.056528796205 Chi(tan=-1.66057, x=1.0, y=-1.66057), iteration=3: -1.664279482351\n    test 3844 301 301.000000000000 Xi(tan=-1.66428, x=0.515038, y=-0.857167): -1.664279482351\n\n    test 3845 301 300.886857256907 Phi(tan=-1.67175, x=0.513344, y=-0.858183): -1.664279482351\n    test 3846 301 300.971695886665 Beta(tan=-1.66614, x=0.514615, y=-0.857422): -1.664279482351\n    test 3847 301 301.056668635072 Theta(tan=-1.66056, x=0.515886, y=-0.856657): -1.664279482351\n    test 3848 301 301.014140307923 Mu(tan=-1.66335, x=0.51525, y=-0.85704): -1.664279482351\n    test 3849 301 301.056528796205 Chi(tan=-1.66057, x=0.515884, y=-0.856659): -1.664279482351\n    test 3850 301 301.000000000000 Xi(tan=-1.66428, x=0.515038, y=-0.857167): -1.664279482351\n\n    test 3851 308 307.875591521416 Phi(tan=-1.28569, x=1.0, y=-1.28569): -1.279941632193\n    test 3852 308 307.968882364101 Beta(tan=-1.28138, x=1.0, y=-1.28138): -1.279941632193\n    test 3853 308 308.062249364871 Theta(tan=-1.27708, x=1.0, y=-1.27708): -1.279941632193\n    test 3854 308 308.015542045055 Mu(tan=-1.27923, x=0.615875, y=-0.787844), iteration=3: -1.279941632193\n    test 3855 308 308.062119501658 Chi(tan=-1.27709, x=1.0, y=-1.27709), iteration=3: -1.279941632193\n    test 3856 308 308.000000000000 Xi(tan=-1.27994, x=0.615661, y=-0.788011): -1.279941632193\n\n    test 3857 308 307.875591521416 Phi(tan=-1.28569, x=0.613949, y=-0.789346): -1.279941632193\n    test 3858 308 307.968882364101 Beta(tan=-1.28138, x=0.615233, y=-0.788345): -1.279941632193\n    test 3859 308 308.062249364871 Theta(tan=-1.27708, x=0.616517, y=-0.787341): -1.279941632193\n    test 3860 308 308.015542045055 Mu(tan=-1.27923, x=0.615875, y=-0.787844): -1.279941632193\n    test 3861 308 308.062119501659 Chi(tan=-1.27709, x=0.616515, y=-0.787343): -1.279941632193\n    test 3862 308 308.000000000000 Xi(tan=-1.27994, x=0.615661, y=-0.788011): -1.279941632193\n\n    test 3863 315 314.871703066479 Phi(tan=-1.00449, x=1.0, y=-1.00449): -1.000000000000\n    test 3864 315 314.967914975772 Beta(tan=-1.00112, x=1.0, y=-1.00112): -1.000000000000\n    test 3865 315 315.064127246955 Theta(tan=-0.997764, x=1.0, y=-0.997764): -1.000000000000\n    test 3866 315 315.016020986969 Mu(tan=-0.999441, x=0.707304, y=-0.706909), iteration=2: -1.000000000000\n    test 3867 315 315.064019491023 Chi(tan=-0.997768, x=1.0, y=-0.997768), iteration=3: -1.000000000000\n    test 3868 315 315.000000000000 Xi(tan=-1, x=0.707107, y=-0.707107): -1.000000000000\n\n    test 3869 315 314.871703066479 Phi(tan=-1.00449, x=0.705522, y=-0.708688): -1.000000000000\n    test 3870 315 314.967914975772 Beta(tan=-1.00112, x=0.706711, y=-0.707503): -1.000000000000\n    test 3871 315 315.064127246955 Theta(tan=-0.997764, x=0.707898, y=-0.706315): -1.000000000000\n    test 3872 315 315.016020986969 Mu(tan=-0.999441, x=0.707304, y=-0.706909): -1.000000000000\n    test 3873 315 315.064019491023 Chi(tan=-0.997768, x=0.707896, y=-0.706316): -1.000000000000\n    test 3874 315 315.000000000000 Xi(tan=-1, x=0.707107, y=-0.707107): -1.000000000000\n\n    test 3875 322 321.875436413614 Phi(tan=-0.784793, x=1.0, y=-0.784793): -0.781285626507\n    test 3876 322 321.968853692070 Beta(tan=-0.782161, x=1.0, y=-0.782161): -0.781285626507\n    test 3877 322 322.062195432519 Theta(tan=-0.779539, x=1.0, y=-0.779539): -0.781285626507\n    test 3878 322 322.015548148041 Mu(tan=-0.780849, x=0.788178, y=-0.615448), iteration=2: -0.781285626507\n    test 3879 322 322.062116180014 Chi(tan=-0.779541, x=1.0, y=-0.779541), iteration=3: -0.781285626507\n    test 3880 322 322.000000000000 Xi(tan=-0.781286, x=0.788011, y=-0.615661): -0.781285626507\n\n    test 3881 322 321.875436413614 Phi(tan=-0.784793, x=0.78667, y=-0.617373): -0.781285626507\n    test 3882 322 321.968853692070 Beta(tan=-0.782161, x=0.787676, y=-0.61609): -0.781285626507\n    test 3883 322 322.062195432519 Theta(tan=-0.779539, x=0.788679, y=-0.614806): -0.781285626507\n    test 3884 322 322.015548148041 Mu(tan=-0.780849, x=0.788178, y=-0.615448): -0.781285626507\n    test 3885 322 322.062116180014 Chi(tan=-0.779541, x=0.788678, y=-0.614807): -0.781285626507\n    test 3886 322 322.000000000000 Xi(tan=-0.781286, x=0.788011, y=-0.615661): -0.781285626507\n\n    test 3887 329 328.886583352158 Phi(tan=-0.603558, x=1.0, y=-0.603558): -0.600860619028\n    test 3888 329 328.971645254782 Beta(tan=-0.601534, x=1.0, y=-0.601534): -0.600860619028\n    test 3889 329 329.056573396118 Theta(tan=-0.599518, x=1.0, y=-0.599518): -0.600860619028\n    test 3890 329 329.014151085164 Mu(tan=-0.600525, x=0.857294, y=-0.514826), iteration=3: -0.600860619028\n    test 3891 329 329.056522930537 Chi(tan=-0.599519, x=1.0, y=-0.599519), iteration=3: -0.600860619028\n    test 3892 329 329.000000000000 Xi(tan=-0.600861, x=0.857167, y=-0.515038): -0.600860619028\n\n    test 3893 329 328.886583352158 Phi(tan=-0.603558, x=0.856146, y=-0.516734): -0.600860619028\n    test 3894 329 328.971645254782 Beta(tan=-0.601534, x=0.856912, y=-0.515462): -0.600860619028\n    test 3895 329 329.056573396118 Theta(tan=-0.599518, x=0.857675, y=-0.514191): -0.600860619028\n    test 3896 329 329.014151085164 Mu(tan=-0.600525, x=0.857294, y=-0.514826): -0.600860619028\n    test 3897 329 329.056522930537 Chi(tan=-0.599519, x=0.857675, y=-0.514192): -0.600860619028\n    test 3898 329 329.000000000000 Xi(tan=-0.600861, x=0.857167, y=-0.515038): -0.600860619028\n\n    test 3899 336 335.904492119885 Phi(tan=-0.447228, x=1.0, y=-0.447228): -0.445228685309\n    test 3900 336 335.976125752178 Beta(tan=-0.445728, x=1.0, y=-0.445728): -0.445228685309\n    test 3901 336 336.047598736385 Theta(tan=-0.444234, x=1.0, y=-0.444234): -0.445228685309\n    test 3902 336 336.011912385791 Mu(tan=-0.44498, x=0.91363, y=-0.406547), iteration=2: -0.445228685309\n    test 3903 336 336.047572248701 Chi(tan=-0.444234, x=1.0, y=-0.444234), iteration=3: -0.445228685309\n    test 3904 336 336.000000000000 Xi(tan=-0.445229, x=0.913545, y=-0.406737): -0.445228685309\n\n    test 3905 336 335.904492119885 Phi(tan=-0.447228, x=0.912866, y=-0.408259): -0.445228685309\n    test 3906 336 335.976125752178 Beta(tan=-0.445728, x=0.913376, y=-0.407117): -0.445228685309\n    test 3907 336 336.047598736385 Theta(tan=-0.444234, x=0.913883, y=-0.405978): -0.445228685309\n    test 3908 336 336.011912385791 Mu(tan=-0.44498, x=0.91363, y=-0.406547): -0.445228685309\n    test 3909 336 336.047572248701 Chi(tan=-0.444234, x=0.913883, y=-0.405978): -0.445228685309\n    test 3910 336 336.000000000000 Xi(tan=-0.445229, x=0.913545, y=-0.406737): -0.445228685309\n\n    test 3911 343 342.928103650624 Phi(tan=-0.307103, x=1.0, y=-0.307103): -0.305730681459\n    test 3912 343 342.982029901147 Beta(tan=-0.306074, x=1.0, y=-0.306074): -0.305730681459\n    test 3913 343 343.035806278435 Theta(tan=-0.305047, x=1.0, y=-0.305047): -0.305730681459\n    test 3914 343 343.008964858001 Mu(tan=-0.30556, x=0.95635, y=-0.292222), iteration=3: -0.305730681459\n    test 3915 343 343.035795980594 Chi(tan=-0.305048, x=1.0, y=-0.305048), iteration=3: -0.305730681459\n    test 3916 343 343.000000000000 Xi(tan=-0.305731, x=0.956305, y=-0.292372): -0.305730681459\n\n    test 3917 343 342.928103650624 Phi(tan=-0.307103, x=0.955937, y=-0.293571): -0.305730681459\n    test 3918 343 342.982029901147 Beta(tan=-0.306074, x=0.956213, y=-0.292672): -0.305730681459\n    test 3919 343 343.035806278435 Theta(tan=-0.305047, x=0.956487, y=-0.291774): -0.305730681459\n    test 3920 343 343.008964858001 Mu(tan=-0.30556, x=0.95635, y=-0.292222): -0.305730681459\n    test 3921 343 343.035795980594 Chi(tan=-0.305048, x=0.956487, y=-0.291774): -0.305730681459\n    test 3922 343 343.000000000000 Xi(tan=-0.305731, x=0.956305, y=-0.292372): -0.305730681459\n\n    test 3923 350 349.956013326444 Phi(tan=-0.177119, x=1.0, y=-0.177119): -0.176326980708\n    test 3924 350 349.989006593437 Beta(tan=-0.176525, x=1.0, y=-0.176525): -0.176326980708\n    test 3925 350 350.021895915483 Theta(tan=-0.175933, x=1.0, y=-0.175933): -0.176326980708\n    test 3926 350 350.005483685534 Mu(tan=-0.176228, x=0.984824, y=-0.173554), iteration=3: -0.176326980708\n    test 3927 350 350.021893693784 Chi(tan=-0.175933, x=1.0, y=-0.175933), iteration=3: -0.176326980708\n    test 3928 350 350.000000000000 Xi(tan=-0.176327, x=0.984808, y=-0.173648): -0.176326980708\n\n    test 3929 350 349.956013326444 Phi(tan=-0.177119, x=0.984674, y=-0.174404): -0.176326980708\n    test 3930 350 349.989006593437 Beta(tan=-0.176525, x=0.984774, y=-0.173837): -0.176326980708\n    test 3931 350 350.021895915483 Theta(tan=-0.175933, x=0.984874, y=-0.173272): -0.176326980708\n    test 3932 350 350.005483685534 Mu(tan=-0.176228, x=0.984824, y=-0.173554): -0.176326980708\n    test 3933 350 350.021893693784 Chi(tan=-0.175933, x=0.984874, y=-0.173272): -0.176326980708\n    test 3934 350 350.000000000000 Xi(tan=-0.176327, x=0.984808, y=-0.173648): -0.176326980708\n\n    test 3935 357 356.986554851958 Phi(tan=-0.0526431, x=1.0, y=-0.0526431): -0.052407779283\n    test 3936 357 356.996639834512 Beta(tan=-0.0524666, x=1.0, y=-0.0524666): -0.052407779283\n    test 3937 357 357.006691189366 Theta(tan=-0.0522907, x=1.0, y=-0.0522907): -0.052407779283\n    test 3938 357 357.001676003026 Mu(tan=-0.0523784, x=0.998631, y=-0.0523067), iteration=3: -0.052407779283\n    test 3939 357 357.006691127690 Chi(tan=-0.0522907, x=1.0, y=-0.0522907), iteration=3: -0.052407779283\n    test 3940 357 357.000000000000 Xi(tan=-0.0524078, x=0.99863, y=-0.052336): -0.052407779283\n\n    test 3941 357 356.986554851958 Phi(tan=-0.0526431, x=0.998617, y=-0.0525703): -0.052407779283\n    test 3942 357 356.996639834512 Beta(tan=-0.0524666, x=0.998626, y=-0.0523945): -0.052407779283\n    test 3943 357 357.006691189366 Theta(tan=-0.0522907, x=0.998636, y=-0.0522193): -0.052407779283\n    test 3944 357 357.001676003026 Mu(tan=-0.0523784, x=0.998631, y=-0.0523067): -0.052407779283\n    test 3945 357 357.006691127690 Chi(tan=-0.0522907, x=0.998636, y=-0.0522193): -0.052407779283\n    test 3946 357 357.000000000000 Xi(tan=-0.0524078, x=0.99863, y=-0.052336): -0.052407779283\n\n    test 3947 abs: AuxAngle(tan=2.0, x=1.0, y=2.0)\n    test 3948 add: AuxAngle(tan=-1.33333, x=-3, y=4.0)\n    test 3949 eq : True\n    test 3950 float: 2.0\n    test 3951 sub: AuxAngle(tan=0.0, x=1.0, y=0.0)\n    test 3952 neg: AuxAngle(tan=-2, x=1.0, y=-2)\n    test 3953 ne : False\n    test 3954 pos: AuxAngle(tan=2.0, x=1.0, y=2.0)\n    test 3955 iadd: AuxAngle(tan=-1.33333, x=-3, y=4.0)\n    test 3956 isub: AuxAngle(tan=0.0, x=1.0, y=0.0)\n    test 3957 radd: AuxAngle(tan=0.0, x=1.0, y=0.0)\n    test 3958 rsub: AuxAngle(tan=0.0, x=1.0, y=0.0)\n\n    test 3959 N: 5\n    test 3960 N /sum: 2.748844788926\n    test 3961 +N/sum: 3.071245975238\n    test 3962 2N/sum: 3.071245975238\n    test 3963 Te/sum: 57.582664067074\n    test 3964 Tg/sum: -182.807444594653\n\n    50 of 3964 testAuxilats.py tests (1.3%) FAILED, ALL KNOWN (pygeodesy 26.3.26 Python 3.13.12 64bit arm64 coverage 7.10.7 geographiclib 2.1 numpy 2.3.3 scipy 1.16.2 Math 2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 macOS 26.3.1 isLazy 1 -W  default) 11.569 sec\nrunning /Library/Framewo....n3.13 -W default ~/PyGeodesy/test/testAzimuthal.py\n./pygeodesy/azimuthal.py:636: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return self.datum.ellipsoid.geodesic\n./pygeodesy/azimuthal.py:937: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return self.datum.ellipsoid.geodesic\n\n    testing testAzimuthal.py 25.05.09 (module pygeodesy.azimuthal 25.11.29) isLazy=1\n    test 1 Equidistant(48.833333, 2.333333, name='Paris'): 48.833333 2.333333\n    test 2 forward: -37467.812512, 230294.518853, 50.9, 1.8, 350.759218, 1.000223\n    test 3 reverse: -37467.812512, 230294.518853, 50.9, 1.8, 350.759218, 1.000223\n    test 4 iteration: None\n    test 5 copy(<class 'type'>): (<class 'pygeodesy.azimuthal.Equidistant'>, True)\n    test 6 Equidistant.copy(): (<class 'pygeodesy.azimuthal.Equidistant'>, True)\n    test 7 reverse: -38000.0, 230000.0, 50.897321, 1.792455, 350.61849, 1.000222\n    test 8 forward: -38000.0, 230000.0, 50.897321, 1.792455, 350.61849, 1.000222\n    test 9 reverse: LatLon(50°53′50.36″N, 001°47′32.84″E)\n    test 10 reverse: LatLon(50°53′50.36″N, 001°47′32.84″E)\n    test 11 reverse: LatLon(50°53′50.36″N, 001°47′32.84″E)\n    test 12 reverse: LatLon(50°53′50.36″N, 001°47′32.84″E)\n    test 13 Equidistant(51.4934, 0.0098, name='Greenwich'): 51.4934 0.0098\n    test 14 forward: 170420.92566, -293667.828613, 48.833333, 2.333333, 149.872606, 1.000472\n    test 15 reverse: 170420.92566, -293667.828613, 48.833333, 2.333333, 149.872606, 1.000472\n    test 16 iteration: None\n    test 17 hypot: 339535.102  FAILED, KNOWN, expected 338901.865\n    test 18 antipodal: (170420.92566, -293667.828613, -48.833333, -177.666667, 0.0, 1.000472, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n\n    test 19 Gnomonic(48.833333, 2.333333, name='Paris'): 48.833333 2.333333\n    test 20 forward: -37484.520018, 230397.210923, 50.9, 1.8, 350.759218, 1.000669\n    test 21 reverse: -37484.520018, 230397.210923, 50.9, 1.8, 350.759218, 1.000223\n    test 22 iteration: None\n    test 23 copy(<class 'type'>): (<class 'pygeodesy.azimuthal.Gnomonic'>, True)\n    test 24 Gnomonic.copy(): (<class 'pygeodesy.azimuthal.Gnomonic'>, True)\n    test 25 reverse: -38000.0, 230000.0, 50.896405, 1.792706, 350.61849, 1.000222\n    test 26 forward: -38000.0, 230000.0, 50.896405, 1.792706, 350.61849, 1.000667\n    test 27 reverse: LatLon(50°53′47.06″N, 001°47′33.74″E)\n    test 28 reverse: LatLon(50°53′47.06″N, 001°47′33.74″E)\n    test 29 reverse: LatLon(50°53′47.06″N, 001°47′33.74″E)\n    test 30 reverse: LatLon(50°53′47.06″N, 001°47′33.74″E)\n    test 31 Gnomonic(51.4934, 0.0098, name='Greenwich'): 51.4934 0.0098\n    test 32 forward: 170581.851218, -293945.134107, 48.833333, 2.333333, 149.872606, 1.001416\n    test 33 reverse: 170581.851218, -293945.134107, 48.833333, 2.333333, 149.872606, 1.000472\n    test 34 iteration: None\n    test 35 hypot: 339855.719  FAILED, KNOWN, expected 338901.865\n    test 36 antipodal: (170581.851218, -293945.134107, -48.833333, -177.666667, 0.0, 1.000472, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n\n    test 37 EquidistantExact(48.833333, 2.333333, name='Paris'): 48.833333 2.333333\n    test 38 forward: -37526.978232, 230000.911579, 50.9, 1.8, 350.325442, 0.999778\n    test 39 reverse: -37526.978232, 230000.911579, 50.9, 1.8, 350.325442, 0.999778\n    test 40 iteration: None\n    test 41 copy(<class 'type'>): (<class 'pygeodesy.azimuthal.EquidistantExact'>, True)\n    test 42 EquidistantExact.copy(): (<class 'pygeodesy.azimuthal.EquidistantExact'>, True)\n    test 43 reverse: -38000.0, 230000.0, 50.899962, 1.793278, 350.205524, 0.999778\n    test 44 forward: -38000.0, 230000.0, 50.899962, 1.793278, 350.205524, 0.999778\n    test 45 reverse: LatLon(50°53′59.86″N, 001°47′35.8″E)\n    test 46 reverse: LatLon(50°53′59.86″N, 001°47′35.8″E)\n    test 47 reverse: LatLon(50°53′59.86″N, 001°47′35.8″E)\n    test 48 reverse: LatLon(50°53′59.86″N, 001°47′35.8″E)\n    test 49 EquidistantExact(51.4934, 0.0098, name='Greenwich'): 51.4934 0.0098\n    test 50 forward: 170617.186469, -293210.754313, 48.833333, 2.333333, 151.589952, 0.999529\n    test 51 reverse: 170617.186469, -293210.754313, 48.833333, 2.333333, 151.589952, 0.999529\n    test 52 iteration: None\n    test 53 hypot: 339238.516  FAILED, KNOWN, expected 338901.865\n    test 54 antipodal: (170617.186469, -293210.754313, -48.833333, -177.666667, 0.0, 0.999529, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n\n    test 55 GnomonicExact(48.833333, 2.333333, name='Paris'): 48.833333 2.333333\n    test 56 forward: -37543.665895, 230103.189403, 50.9, 1.8, 350.325442, 0.999333\n    test 57 reverse: -37543.665895, 230103.189403, 50.9, 1.8, 350.325442, 0.999333\n    test 58 iteration: 3\n    test 59 copy(<class 'type'>): (<class 'pygeodesy.azimuthal.GnomonicExact'>, True)\n    test 60 GnomonicExact.copy(): (<class 'pygeodesy.azimuthal.GnomonicExact'>, True)\n    test 61 reverse: -38000.0, 230000.0, 50.899044, 1.793528, 350.205718, 0.999333\n    test 62 forward: -37999.995965, 229999.975581, 50.899044, 1.793528, 350.205718, 0.999334\n    test 63 reverse: LatLon(50°53′56.56″N, 001°47′36.7″E)\n    test 64 reverse: LatLon(50°53′56.56″N, 001°47′36.7″E)\n    test 65 reverse: LatLon(50°53′56.56″N, 001°47′36.7″E)\n    test 66 reverse: LatLon(50°53′56.56″N, 001°47′36.7″E)\n    test 67 GnomonicExact(51.4934, 0.0098, name='Greenwich'): 51.4934 0.0098\n    test 68 forward: 170778.089295, -293487.270649, 48.833333, 2.333333, 151.589952, 0.998587\n    test 69 reverse: 170778.089295, -293487.270649, 48.833333, 2.333334, 151.589953, 0.998588\n    test 70 iteration: 3\n    test 71 hypot: 339558.439  FAILED, KNOWN, expected 338901.963\n    test 72 antipodal: (170778.089295, -293487.270649, -48.833333, -177.666666, 0.0, 0.998588, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n\n    test 73 EquidistantGeodSolve(48.833333, 2.333333, name='Paris'): 48.833333 2.333333\n    test 74 forward: -37526.978232, 230000.911579, 50.9, 1.8, 350.325442, 0.999778\n    test 75 reverse: -37526.978232, 230000.911579, 50.9, 1.8, 350.325442, 0.999778\n    test 76 iteration: None\n    test 77 copy(<class 'type'>): (<class 'pygeodesy.azimuthal.EquidistantGeodSolve'>, True)\n    test 78 EquidistantGeodSolve.copy(): (<class 'pygeodesy.azimuthal.EquidistantGeodSolve'>, True)\n    test 79 reverse: -38000.0, 230000.0, 50.899962, 1.793278, 350.205524, 0.999778\n    test 80 forward: -38000.0, 230000.0, 50.899962, 1.793278, 350.205524, 0.999778\n    test 81 reverse: LatLon(50°53′59.86″N, 001°47′35.8″E)\n    test 82 reverse: LatLon(50°53′59.86″N, 001°47′35.8″E)\n    test 83 reverse: LatLon(50°53′59.86″N, 001°47′35.8″E)\n    test 84 reverse: LatLon(50°53′59.86″N, 001°47′35.8″E)\n    test 85 EquidistantGeodSolve(51.4934, 0.0098, name='Greenwich'): 51.4934 0.0098\n    test 86 forward: 170617.186469, -293210.754313, 48.833333, 2.333333, 151.589952, 0.999529\n    test 87 reverse: 170617.186469, -293210.754313, 48.833333, 2.333333, 151.589952, 0.999529\n    test 88 iteration: None\n    test 89 hypot: 339238.516  FAILED, KNOWN, expected 338901.865\n    test 90 antipodal: (170617.186469, -293210.754313, -48.833333, -177.666667, 0.0, 0.999529, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n\n    test 91 GnomonicGeodSolve(48.833333, 2.333333, name='Paris'): 48.833333 2.333333\n    test 92 forward: -37543.665895, 230103.189403, 50.9, 1.8, 350.325442, 0.999333\n    test 93 reverse: -37543.665895, 230103.189403, 50.9, 1.8, 350.325442, 0.999333\n    test 94 iteration: 3\n    test 95 copy(<class 'type'>): (<class 'pygeodesy.azimuthal.GnomonicGeodSolve'>, True)\n    test 96 GnomonicGeodSolve.copy(): (<class 'pygeodesy.azimuthal.GnomonicGeodSolve'>, True)\n    test 97 reverse: -38000.0, 230000.0, 50.899044, 1.793528, 350.205718, 0.999333\n    test 98 forward: -37999.995965, 229999.975581, 50.899044, 1.793528, 350.205718, 0.999334\n    test 99 reverse: LatLon(50°53′56.56″N, 001°47′36.7″E)\n    test 100 reverse: LatLon(50°53′56.56″N, 001°47′36.7″E)\n    test 101 reverse: LatLon(50°53′56.56″N, 001°47′36.7″E)\n    test 102 reverse: LatLon(50°53′56.56″N, 001°47′36.7″E)\n    test 103 GnomonicGeodSolve(51.4934, 0.0098, name='Greenwich'): 51.4934 0.0098\n    test 104 forward: 170778.089295, -293487.270649, 48.833333, 2.333333, 151.589952, 0.998587\n    test 105 reverse: 170778.089295, -293487.270649, 48.833333, 2.333334, 151.589953, 0.998588\n    test 106 iteration: 3\n    test 107 hypot: 339558.439  FAILED, KNOWN, expected 338901.963\n    test 108 antipodal: (170778.089295, -293487.270649, -48.833333, -177.666666, 0.0, 0.998588, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n\n    test 109 EquidistantKarney(48.833333, 2.333333, name='Paris'): 48.833333 2.333333\n    test 110 forward: -37526.978232, 230000.911579, 50.9, 1.8, 350.325442, 0.999778\n    test 111 reverse: -37526.978232, 230000.911579, 50.9, 1.8, 350.325442, 0.999778\n    test 112 iteration: None\n    test 113 copy(<class 'type'>): (<class 'pygeodesy.azimuthal.EquidistantKarney'>, True)\n    test 114 EquidistantKarney.copy(): (<class 'pygeodesy.azimuthal.EquidistantKarney'>, True)\n    test 115 reverse: -38000.0, 230000.0, 50.899962, 1.793278, 350.205524, 0.999778\n    test 116 forward: -38000.0, 230000.0, 50.899962, 1.793278, 350.205524, 0.999778\n    test 117 reverse: LatLon(50°53′59.86″N, 001°47′35.8″E)\n    test 118 reverse: LatLon(50°53′59.86″N, 001°47′35.8″E)\n    test 119 reverse: LatLon(50°53′59.86″N, 001°47′35.8″E)\n    test 120 reverse: LatLon(50°53′59.86″N, 001°47′35.8″E)\n    test 121 EquidistantKarney(51.4934, 0.0098, name='Greenwich'): 51.4934 0.0098\n    test 122 forward: 170617.186469, -293210.754313, 48.833333, 2.333333, 151.589952, 0.999529\n    test 123 reverse: 170617.186469, -293210.754313, 48.833333, 2.333333, 151.589952, 0.999529\n    test 124 iteration: None\n    test 125 hypot: 339238.516  FAILED, KNOWN, expected 338901.865\n    test 126 antipodal: (170617.186469, -293210.754313, -48.833333, -177.666667, 0.0, 0.999529, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n\n    test 127 GnomonicKarney(48.833333, 2.333333, name='Paris'): 48.833333 2.333333\n    test 128 forward: -37543.665895, 230103.189403, 50.9, 1.8, 350.325442, 0.999333\n    test 129 reverse: -37543.665895, 230103.189403, 50.9, 1.8, 350.325442, 0.999333\n    test 130 iteration: 3\n    test 131 copy(<class 'type'>): (<class 'pygeodesy.azimuthal.GnomonicKarney'>, True)\n    test 132 GnomonicKarney.copy(): (<class 'pygeodesy.azimuthal.GnomonicKarney'>, True)\n    test 133 reverse: -38000.0, 230000.0, 50.899044, 1.793528, 350.205718, 0.999333\n    test 134 forward: -37999.995965, 229999.975581, 50.899044, 1.793528, 350.205718, 0.999334\n    test 135 reverse: LatLon(50°53′56.56″N, 001°47′36.7″E)\n    test 136 reverse: LatLon(50°53′56.56″N, 001°47′36.7″E)\n    test 137 reverse: LatLon(50°53′56.56″N, 001°47′36.7″E)\n    test 138 reverse: LatLon(50°53′56.56″N, 001°47′36.7″E)\n    test 139 GnomonicKarney(51.4934, 0.0098, name='Greenwich'): 51.4934 0.0098\n    test 140 forward: 170778.089295, -293487.270649, 48.833333, 2.333333, 151.589952, 0.998587\n    test 141 reverse: 170778.089295, -293487.270649, 48.833333, 2.333334, 151.589953, 0.998588\n    test 142 iteration: 3\n    test 143 hypot: 339558.439  FAILED, KNOWN, expected 338901.963\n    test 144 antipodal: (170778.089295, -293487.270649, -48.833333, -177.666666, 0.0, 0.998588, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n\n    test 145 pygeodesy.ellipsoidalExact: 20.837802°N, 037.265561°E Random +/- 45\n    test 146 pygeodesy.ellipsoidalExact: 20.731625°N, 037.239134°E, 47.241037°N, 090.706953°W  d 12073 meter  Spherical\n    test 147 pygeodesy.ellipsoidalExact: 20.837802°N, 037.265561°E, 47.570386°N, 090.710621°W  d 2.57943e-09 meter  EquidistantExact\n    test 148 pygeodesy.ellipsoidalExact: 20.782926°N, 037.386689°E, 47.157338°N, 090.535988°W  d 13996.9 meter  Equidistant\n    test 149 pygeodesy.ellipsoidalExact: 00.054876°N, 000.121128°W  00.263%, 000.325% of Random\n    test 150 pygeodesy.ellipsoidalExact: 20.178788°N, 037.863183°E, 25.430614°N, 029.712824°E  d 95962.9 meter  Spherical\n    test 151 pygeodesy.ellipsoidalExact: 20.837802°N, 037.265561°E, 25.165736°N, 030.636290°E  d 1.86445e-08 meter  EquidistantExact\n    test 152 pygeodesy.ellipsoidalExact: 20.476289°N, 037.616298°E, 25.350745°N, 029.993058°E  d 54200.8 meter  Equidistant\n    test 153 pygeodesy.ellipsoidalExact: 00.361512°N, 000.350737°W  01.735%, 000.941% of Random\n    test 154 pygeodesy.ellipsoidalExact: 20.709830°N, 037.325305°E, 23.986765°S, 006.357154°E  d 15473.9 meter  Spherical\n    test 155 pygeodesy.ellipsoidalExact: 20.837802°N, 037.265561°E, 24.154986°S, 006.451641°E  d 2.21974e-08 meter  EquidistantExact\n    test 156 pygeodesy.ellipsoidalExact: 20.649633°N, 037.393582°E, 24.020776°S, 006.424760°E  d 24734.1 meter  Equidistant\n    test 157 pygeodesy.ellipsoidalExact: 00.188169°N, 000.128021°W  00.903%, 000.344% of Random\n    test 158 pygeodesy.ellipsoidalExact: 20.711361°N, 037.299061°E, 05.817097°S, 011.555753°E  d 14426.8 meter  Spherical\n    test 159 pygeodesy.ellipsoidalExact: 20.837802°N, 037.265561°E, 05.951600°S, 011.594991°E  d 8.19485e-10 meter  EquidistantExact\n    test 160 pygeodesy.ellipsoidalExact: 20.741251°N, 037.340858°E, 05.878220°S, 011.509974°E  d 13256.2 meter  Equidistant\n    test 161 pygeodesy.ellipsoidalExact: 00.096551°N, 000.075297°W  00.463%, 000.202% of Random\n    test 162 pygeodesy.ellipsoidalExact: 20.575926°N, 037.192481°E, 24.714874°S, 101.748846°E  d 29975.9 meter  Spherical\n    test 163 pygeodesy.ellipsoidalExact: 20.837802°N, 037.265561°E, 24.833538°S, 101.692379°E  d 8.40627e-09 meter  EquidistantExact\n    test 164 pygeodesy.ellipsoidalExact: 20.655364°N, 037.264116°E, 24.641480°S, 101.782492°E  d 20198.9 meter  Equidistant\n    test 165 pygeodesy.ellipsoidalExact: 00.182438°N, 000.001445°E  00.876%, 000.004% of Random\n    test 166 pygeodesy.ellipsoidalExact: 20.580088°N, 037.318129°E, 24.532151°N, 030.587744°W  d 29053.1 meter  Spherical\n    test 167 pygeodesy.ellipsoidalExact: 20.837802°N, 037.265561°E, 24.827619°N, 030.502704°W  d 3.17693e-09 meter  EquidistantExact\n    test 168 pygeodesy.ellipsoidalExact: 20.657872°N, 037.365880°E, 24.595305°N, 030.618001°W  d 22494.2 meter  Equidistant\n    test 169 pygeodesy.ellipsoidalExact: 00.179930°N, 000.100319°W  00.863%, 000.269% of Random\n    test 170 pygeodesy.ellipsoidalExact: 20.563907°N, 037.369395°E, 35.558645°N, 066.016542°W  d 32195.3 meter  Spherical\n    test 171 pygeodesy.ellipsoidalExact: 20.837802°N, 037.265561°E, 35.944754°N, 065.829690°W  d 5.498e-09 meter  EquidistantExact\n    test 172 pygeodesy.ellipsoidalExact: 20.685070°N, 037.419860°E, 35.556493°N, 066.016170°W  d 23326.1 meter  Equidistant\n    test 173 pygeodesy.ellipsoidalExact: 00.152732°N, 000.154299°W  00.733%, 000.414% of Random\n    test 174 pygeodesy.ellipsoidalExact: 20.653766°N, 037.295820°E, 49.956972°N, 009.743883°W  d 20617.5 meter  Spherical\n    test 175 pygeodesy.ellipsoidalExact: 20.837802°N, 037.265561°E, 50.163866°N, 009.239277°W  d 8.68226e-09 meter  EquidistantExact\n    test 176 pygeodesy.ellipsoidalExact: 20.778102°N, 037.357245°E, 49.843129°N, 009.925447°W  d 11609.8 meter  Equidistant\n    test 177 pygeodesy.ellipsoidalExact: 00.059700°N, 000.091684°W  00.286%, 000.246% of Random\n    test 178 pygeodesy.ellipsoidalExact: 20.669139°N, 037.346294°E, 25.229903°N, 036.730998°E  d 20478.8 meter  Spherical\n    test 179 pygeodesy.ellipsoidalExact: 20.837802°N, 037.265561°E, 25.068982°N, 036.706044°E  d 1.03177e-08 meter  EquidistantExact\n    test 180 pygeodesy.ellipsoidalExact: 20.355166°N, 037.510605°E, 25.474475°N, 036.786569°E  d 59225.7 meter  Equidistant\n    test 181 pygeodesy.ellipsoidalExact: 00.482636°N, 000.245043°W  02.316%, 000.658% of Random\n    test 182 pygeodesy.ellipsoidalExact: 20.651840°N, 037.302123°E, 07.288325°N, 033.384623°E  d 20937.7 meter  Spherical\n    test 183 pygeodesy.ellipsoidalExact: 20.837802°N, 037.265561°E, 07.108581°N, 033.280790°E  d 6.03814e-08 meter  EquidistantExact\n    test 184 pygeodesy.ellipsoidalExact: 20.486897°N, 037.336334°E, 07.474387°N, 033.557659°E  d 39543.3 meter  Equidistant\n    test 185 pygeodesy.ellipsoidalExact: 00.350904°N, 000.070773°W  01.684%, 000.190% of Random\n    test 186 pygeodesy.ellipsoidalExact: 20.563067°N, 037.338802°E, 36.599711°S, 073.027235°W  d 31359.2 meter  Spherical\n    test 187 pygeodesy.ellipsoidalExact: 20.837802°N, 037.265561°E, 36.849146°S, 072.969640°W  d 8.31075e-09 meter  EquidistantExact\n    test 188 pygeodesy.ellipsoidalExact: 20.610465°N, 037.435977°E, 36.598020°S, 073.014794°W  d 30799 meter  Equidistant\n    test 189 pygeodesy.ellipsoidalExact: 00.227337°N, 000.170416°W  01.091%, 000.457% of Random\n    test 190 pygeodesy.ellipsoidalExact: 20.537724°N, 037.383819°E, 11.911851°N, 075.711324°W  d 35433.5 meter  Spherical\n    test 191 pygeodesy.ellipsoidalExact: 20.837802°N, 037.265561°E, 12.125687°N, 075.616731°W  d 1.85174e-08 meter  EquidistantExact\n    test 192 pygeodesy.ellipsoidalExact: 20.617723°N, 037.447504°E, 12.013413°N, 075.806826°W  d 30867.7 meter  Equidistant\n    test 193 pygeodesy.ellipsoidalExact: 00.220078°N, 000.181943°W  01.056%, 000.488% of Random\n    test 194 pygeodesy.ellipsoidalExact: 00.482636°N, 000.350737°E  02.316%, 000.941% of Random, max\n\n    test 195 pygeodesy.ellipsoidalVincenty: 41.186078°N, 034.518810°E Random +/- 45\n    test 196 pygeodesy.ellipsoidalVincenty: 41.216002°N, 034.466444°E, 36.757969°N, 036.250386°E  d 5507.89 meter  Spherical\n    test 197 pygeodesy.ellipsoidalVincenty: 41.186078°N, 034.518810°E, 36.788859°N, 036.252161°E  d 3.31783e-05 meter  EquidistantExact\n    test 198 pygeodesy.ellipsoidalVincenty: 41.261815°N, 034.378326°E, 36.740313°N, 036.242240°E  d 14474.3 meter  Equidistant\n    test 199 pygeodesy.ellipsoidalVincenty: 00.075738°S, 000.140484°E  00.184%, 000.407% of Random\n    test 200 pygeodesy.ellipsoidalVincenty: 40.851194°N, 034.534088°E, 50.241748°S, 131.016402°W  d 37212.5 meter  Spherical\n    test 201 pygeodesy.ellipsoidalVincenty: 41.186078°N, 034.518810°E, 50.477317°S, 130.978321°W  d 1.93817e-06 meter  EquidistantExact\n    test 202 pygeodesy.ellipsoidalVincenty: 40.798654°N, 034.533581°E, 50.386452°S, 130.973130°W  d 43042.9 meter  Equidistant\n    test 203 pygeodesy.ellipsoidalVincenty: 00.387424°N, 000.014771°W  00.941%, 000.043% of Random\n    test 204 pygeodesy.ellipsoidalVincenty: 41.074804°N, 034.598238°E, 21.089845°S, 024.140244°E  d 14042.6 meter  Spherical\n    test 205 pygeodesy.ellipsoidalVincenty: 41.186078°N, 034.518810°E, 21.224760°S, 024.109286°E  d 2.6497e-05 meter  EquidistantExact\n    test 206 pygeodesy.ellipsoidalVincenty: 41.048538°N, 034.546214°E, 21.170019°S, 024.203830°E  d 15447.1 meter  Equidistant\n    test 207 pygeodesy.ellipsoidalVincenty: 00.137540°N, 000.027405°W  00.334%, 000.079% of Random\n    test 208 pygeodesy.ellipsoidalVincenty: 41.032073°N, 034.369399°E, 19.422826°S, 067.358116°E  d 21213.6 meter  Spherical\n    test 209 pygeodesy.ellipsoidalVincenty: 41.186078°N, 034.518810°E, 19.600494°S, 067.286307°E  d 4.13857e-06 meter  EquidistantExact\n    test 210 pygeodesy.ellipsoidalVincenty: 41.006716°N, 034.332358°E, 19.395639°S, 067.447246°E  d 25340.6 meter  Equidistant\n    test 211 pygeodesy.ellipsoidalVincenty: 00.179362°N, 000.186452°E  00.435%, 000.540% of Random\n    test 212 pygeodesy.ellipsoidalVincenty: 40.945458°N, 034.537613°E, 58.224252°S, 061.713015°E  d 26768.7 meter  Spherical\n    test 213 pygeodesy.ellipsoidalVincenty: 41.186078°N, 034.518810°E, 58.347421°S, 061.621933°E  d 1.06306e-05 meter  EquidistantExact\n    test 214 pygeodesy.ellipsoidalVincenty: 40.924263°N, 034.481009°E, 58.252605°S, 061.344166°E  d 29248.9 meter  Equidistant\n    test 215 pygeodesy.ellipsoidalVincenty: 00.261815°N, 000.037800°E  00.636%, 000.110% of Random\n    test 216 pygeodesy.ellipsoidalVincenty: 40.897988°N, 039.011844°E, 40.464581°N, 028.238987°E  d 379091 meter  Spherical\n    test 217 pygeodesy.ellipsoidalVincenty: 41.186078°N, 034.518810°E, 41.110091°N, 032.648742°E  d 0.000119809 meter  EquidistantExact\n    test 218 pygeodesy.ellipsoidalVincenty: 40.839819°N, 039.393167°E, 40.383760°N, 027.900519°E  d 411769 meter  Equidistant\n    test 219 pygeodesy.ellipsoidalVincenty: 00.346258°N, 004.874358°W  00.841%, 014.121% of Random\n    test 220 pygeodesy.ellipsoidalVincenty: 40.870493°N, 034.662375°E, 20.549400°S, 050.731096°W  d 37068.5 meter  Spherical\n    test 221 pygeodesy.ellipsoidalVincenty: 41.186078°N, 034.518810°E, 20.738461°S, 050.709252°W  d 2.02858e-05 meter  EquidistantExact\n    test 222 pygeodesy.ellipsoidalVincenty: 40.818186°N, 034.634875°E, 20.527794°S, 050.866478°W  d 42006.6 meter  Equidistant\n    test 223 pygeodesy.ellipsoidalVincenty: 00.367892°N, 000.116065°W  00.893%, 000.336% of Random\n    test 224 pygeodesy.ellipsoidalVincenty: 41.093896°N, 034.232689°E, 37.091356°N, 041.500904°E  d 26112.3 meter  Spherical\n    test 225 pygeodesy.ellipsoidalVincenty: 41.186078°N, 034.518810°E, 37.299306°N, 041.502155°E  d 3.94773e-06 meter  EquidistantExact\n    test 226 pygeodesy.ellipsoidalVincenty: 41.073515°N, 034.180923°E, 37.078362°N, 041.498623°E  d 31004.2 meter  Equidistant\n    test 227 pygeodesy.ellipsoidalVincenty: 00.112563°N, 000.337887°E  00.273%, 000.979% of Random\n    test 228 pygeodesy.ellipsoidalVincenty: 40.781100°N, 034.669980°E, 52.089480°N, 061.225269°W  d 46738.9 meter  Spherical\n    test 229 pygeodesy.ellipsoidalVincenty: 41.186078°N, 034.518810°E, 52.535730°N, 060.874484°W  d 3.27148e-05 meter  EquidistantExact\n    test 230 pygeodesy.ellipsoidalVincenty: 40.727656°N, 034.642283°E, 51.911337°N, 061.190728°W  d 51959.6 meter  Equidistant\n    test 231 pygeodesy.ellipsoidalVincenty: 00.458422°N, 000.123473°W  01.113%, 000.358% of Random\n    test 232 pygeodesy.ellipsoidalVincenty: 41.264357°N, 034.318737°E, 33.708712°N, 039.965866°E  d 18894.5 meter  Spherical\n    test 233 pygeodesy.ellipsoidalVincenty: 41.186078°N, 034.518810°E, 33.842045°N, 039.937641°E  d 1.60319e-05 meter  EquidistantExact\n    test 234 pygeodesy.ellipsoidalVincenty: 41.296883°N, 034.225283°E, 33.729060°N, 039.967302°E  d 27511.2 meter  Equidistant\n    test 235 pygeodesy.ellipsoidalVincenty: 00.110805°S, 000.293526°E  00.269%, 000.850% of Random\n    test 236 pygeodesy.ellipsoidalVincenty: 40.981210°N, 034.381310°E, 21.581340°S, 084.205539°E  d 25517.2 meter  Spherical\n    test 237 pygeodesy.ellipsoidalVincenty: 41.186078°N, 034.518810°E, 21.747177°S, 084.134687°E  d 6.24075e-06 meter  EquidistantExact\n    test 238 pygeodesy.ellipsoidalVincenty: 40.944802°N, 034.323160°E, 21.498714°S, 084.299938°E  d 31438.7 meter  Equidistant\n    test 239 pygeodesy.ellipsoidalVincenty: 00.241275°N, 000.195650°E  00.586%, 000.567% of Random\n    test 240 pygeodesy.ellipsoidalVincenty: 41.004915°N, 034.623936°E, 06.517706°N, 020.398169°E  d 21972.4 meter  Spherical\n    test 241 pygeodesy.ellipsoidalVincenty: 41.186078°N, 034.518810°E, 06.309051°N, 020.241933°E  d 5.18445e-05 meter  EquidistantExact\n    test 242 pygeodesy.ellipsoidalVincenty: 41.055640°N, 034.588070°E, 06.583593°N, 020.579717°E  d 15610.1 meter  Equidistant\n    test 243 pygeodesy.ellipsoidalVincenty: 00.130438°N, 000.069260°W  00.317%, 000.201% of Random\n    test 244 pygeodesy.ellipsoidalVincenty: 00.458422°N, 004.874358°E  01.113%, 014.121% of Random, max\n\n    test 245 Equidistant(10, 80): 1.37704, 0.24656\n    test 246 Equidistant(10, 80): 10.0, 80.0\n    test 247 Gnomonic(10, 80): 5.67128, 1.01543\n    test 248 Gnomonic(10, 80): 10.0, 80.0\n    test 249 LambertEqualArea(10, 80): 1.26747, 0.22694\n    test 250 LambertEqualArea(10, 80): 10.0, 80.0\n    test 251 Orthographic(10, 80): 0.96985, 0.17365\n    test 252 Orthographic(10, 80): 10.0, 80.0\n    test 253 Stereographic(10, 80): 1.65643, 0.29658\n    test 254 Stereographic(10, 80): 10.0, 80.0\n    test 255 Equidistant(20, 20): 0.33454, 0.35601\n    test 256 Equidistant(20, 20): 20.0, 20.0\n    test 257 Gnomonic(20, 20): 0.36397, 0.38733\n    test 258 Gnomonic(20, 20): 20.0, 20.0\n    test 259 LambertEqualArea(20, 20): 0.33123, 0.35248\n    test 260 LambertEqualArea(20, 20): 20.0, 20.0\n    test 261 Orthographic(20, 20): 0.32139, 0.34202\n    test 262 Orthographic(20, 20): 20.0, 20.0\n    test 263 Stereographic(20, 20): 0.34136, 0.36327\n    test 264 Stereographic(20, 20): 20.0, 20.0\n    test 265 Equidistant(40, 40): 0.57386, 0.74912\n    test 266 Equidistant(40, 40): 40.0, 40.0\n    test 267 Gnomonic(40, 40): 0.8391, 1.09537\n    test 268 Gnomonic(40, 40): 40.0, 40.0\n    test 269 LambertEqualArea(40, 40): 0.55281, 0.72164\n    test 270 LambertEqualArea(40, 40): 40.0, 40.0\n    test 271 Orthographic(40, 40): 0.4924, 0.64279\n    test 272 Orthographic(40, 40): 40.0, 40.0\n    test 273 Stereographic(40, 40): 0.62062, 0.81016\n    test 274 Stereographic(40, 40): 40.0, 40.0\n    test 275 Equidistant(60, 60): 0.58948, 1.17896\n    test 276 Equidistant(60, 60): 60.0, 60.0\n    test 277 Gnomonic(60, 60): 1.73205, 3.4641\n    test 278 Gnomonic(60, 60): 60.0, 60.0\n    test 279 LambertEqualArea(60, 60): 0.54772, 1.09545\n    test 280 LambertEqualArea(60, 60): 60.0, 60.0\n    test 281 Orthographic(60, 60): 0.43301, 0.86603\n    test 282 Orthographic(60, 60): 60.0, 60.0\n    test 283 Stereographic(60, 60): 0.69282, 1.38564\n    test 284 Stereographic(60, 60): 60.0, 60.0\n    test 285 Equidistant(70, 80): 0.50997, 1.42273\n    test 286 Equidistant(70, 80): 70.0, 80.0\n    test 287 Gnomonic(70, 80): 5.67128, 15.82209\n    test 288 Gnomonic(70, 80): 70.0, 80.0\n    test 289 LambertEqualArea(70, 80): 0.4628, 1.29114\n    test 290 LambertEqualArea(70, 80): 70.0, 80.0\n    test 291 Orthographic(70, 80): 0.33682, 0.93969\n    test 292 Orthographic(70, 80): 70.0, 80.0\n    test 293 Stereographic(70, 80): 0.63588, 1.77402\n    test 294 Stereographic(70, 80): 70.0, 80.0\n    test 295 Equidistant(80, 80): 0.26358, 1.51792\n    test 296 Equidistant(80, 80): 80.0, 80.0\n    test 297 Gnomonic(80, 80): 5.67128, 32.65961\n    test 298 Gnomonic(80, 80): 80.0, 80.0\n    test 299 LambertEqualArea(80, 80): 0.23828, 1.37219\n    test 300 LambertEqualArea(80, 80): 80.0, 80.0\n    test 301 Orthographic(80, 80): 0.17101, 0.98481\n    test 302 Orthographic(80, 80): 80.0, 80.0\n    test 303 Stereographic(80, 80): 0.33201, 1.91196\n    test 304 Stereographic(80, 80): 80.0, 80.0\n    test 305 Equidistant(80, 10): 0.04281, 1.39829\n    test 306 Equidistant(80, 10): 80.0, 10.0\n    test 307 Gnomonic(80, 10): 0.17633, 5.75877\n    test 308 Gnomonic(80, 10): 80.0, 10.0\n    test 309 LambertEqualArea(80, 10): 0.03941, 1.28702\n    test 310 LambertEqualArea(80, 10): 80.0, 10.0\n    test 311 Orthographic(80, 10): 0.03015, 0.98481\n    test 312 Orthographic(80, 10): 80.0, 10.0\n    test 313 Stereographic(80, 10): 0.0515, 1.68198\n    test 314 Stereographic(80, 10): 80.0, 10.0\n\n    test 315 function: equidistant\n    test 316 equatoradius: 1.0\n    test 317 flattening: 0.0\n    test 318 iteration: None\n    test 319 latlon0: (0.0, 0.0)\n    test 320 latlon0: (1.0, 2.0)\n    test 321 name: coverage\n    test 322 radius: 1.0\n\n    test 323 function: gnomonic\n    test 324 equatoradius: 1.0\n    test 325 flattening: 0.0\n    test 326 iteration: None\n    test 327 latlon0: (0.0, 0.0)\n    test 328 latlon0: (1.0, 2.0)\n    test 329 name: coverage\n    test 330 radius: 1.0\n    test 331 NANing: (NAN, NAN, 0.0, 0.0, 0.0, 1.0, None)\n\n    14 of 331 testAzimuthal.py tests (4.2%) FAILED, incl. 8 KNOWN plus 6 DeprecationWarnings (pygeodesy 26.3.26 Python 3.13.12 64bit arm64 coverage 7.10.7 geographiclib 2.1 numpy 2.3.3 scipy 1.16.2 Math 2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 macOS 26.3.1 isLazy 1 -W  default) 49.531 sec\nrunning /Library/Framewo....n3.13 -W default ~/PyGeodesy/test/testBasics.py\n\n    testing testBasics.py 24.09.29 (module pygeodesy.basics 26.02.22) isLazy=1\n    test 1 clips: test/t....ics.py\n    test 2 halfs2: ('test/test', 'Basics.py')\n\n    test 3 isfinite(0): True\n    test 4 isint(0): True\n    test 5 isint(0+0.5): False\n    test 6 isninf(0): False\n    test 7 isscalar(0): True\n\n    test 8 isfinite(0.0): True\n    test 9 isint(0.0): True\n    test 10 isint(0.0+0.5): False\n    test 11 isninf(0.0): False\n    test 12 isscalar(0.0): True\n\n    test 13 isfinite(1): True\n    test 14 isint(1): True\n    test 15 isint(1+0.5): False\n    test 16 isninf(1): False\n    test 17 isscalar(1): True\n\n    test 18 isfinite(1.0): True\n    test 19 isint(1.0): True\n    test 20 isint(1.0+0.5): False\n    test 21 isninf(1.0): False\n    test 22 isscalar(1.0): True\n\n    test 23 isfinite(1e+300): True\n    test 24 isint(1e+300): True\n    test 25 isint(1e+300+0.5): True\n    test 26 isninf(1e+300): False\n    test 27 isscalar(1e+300): True\n\n    test 28 isfinite(-1e+300): True\n    test 29 isint(-1e+300): True\n    test 30 isint(-1e+300+0.5): True\n    test 31 isninf(-1e+300): False\n    test 32 isscalar(-1e+300): True\n\n    test 33 isfinite(inf): False\n    test 34 isint(inf): False\n    test 35 isint(inf+0.5): False\n    test 36 isninf(inf): False\n    test 37 isscalar(inf): True\n\n    test 38 isfinite(inf): False\n    test 39 isint(inf): False\n    test 40 isint(inf+0.5): False\n    test 41 isninf(inf): False\n    test 42 isscalar(inf): True\n\n    test 43 isfinite(nan): False\n    test 44 isint(nan): False\n    test 45 isint(nan+0.5): False\n    test 46 isninf(nan): False\n    test 47 isscalar(nan): True\n\n    test 48 isfinite(-0.0): True\n    test 49 isint(-0.0): True\n    test 50 isint(-0.0+0.5): False\n    test 51 isninf(-0.0): False\n    test 52 isscalar(-0.0): True\n\n    test 53 isfinite(-inf): False\n    test 54 isint(-inf): False\n    test 55 isint(-inf+0.5): False\n    test 56 isninf(-inf): True\n    test 57 isscalar(-inf): True\n\n    test 58 isfinite(complex): True\n    test 59 isfinite(complex): False\n\n    test 60 isint0(INT0): True\n    test 61 isint0(False): False\n    test 62 isint0(None): False\n    test 63 isint0(0): True\n    test 64 isint0(0.): False\n    test 65 isint0(0.0): True\n\n    test 66 isneg0(NEG0): True\n    test 67 isneg0(0.0): False\n    test 68 isneg0(INF): False\n    test 69 isneg0(NAN): False\n\n    test 70 type(C.r_o): property_RO\n    test 71 type(c.r_o): <class 'bool'>\n    test 72 c.r_o: True\n    test 73 c.r_o = False: immutable property_RO: C.r_o = False\n    test 74 c.a, c.b: (None, None)\n    test 75 d.a, d.b: (True, False)\n    test 76 c.a, c.b: (None, None)\n    test 77 splice: ((0, 2, 4, 6, 8), (1, 3, 5, 7, 9))\n    test 78 splice: ((0, 3, 6, 9), (1, 4, 7), (2, 5, 8))\n    test 79 splice: ((0, 3, 6, 9), (1, 4, 7, -1), (2, 5, 8, -1))\n    test 80 splice: ((0, 5, 10), (1, 6, 11), (2, 7), (3, 8), (4, 9))\n\n    test 81 remainder(181, 360): -179.0\n    test 82 remainder(181, -360): -179.0\n    test 83 remainder(181, inf): 181.0\n    test 84 remainder(181, nan): nan\n    test 85 remainder(181, -inf): 181.0\n    test 86 remainder(-181, 360): 179.0\n    test 87 remainder(-181, -360): 179.0\n    test 88 remainder(-181, inf): -181.0\n    test 89 remainder(-181, nan): nan\n    test 90 remainder(-181, -inf): -181.0\n    test 91 remainder(179, 360): 179.0\n    test 92 remainder(179, -360): 179.0\n    test 93 remainder(179, inf): 179.0\n    test 94 remainder(179, nan): nan\n    test 95 remainder(179, -inf): 179.0\n    test 96 remainder(-179, 360): -179.0\n    test 97 remainder(-179, -360): -179.0\n    test 98 remainder(-179, inf): -179.0\n    test 99 remainder(-179, nan): nan\n    test 100 remainder(-179, -inf): -179.0\n    test 101 remainder(inf, 360): math domain error\n    test 102 remainder(inf, -360): math domain error\n    test 103 remainder(inf, inf): math domain error\n    test 104 remainder(inf, nan): nan\n    test 105 remainder(inf, -inf): math domain error\n    test 106 remainder(nan, 360): nan\n    test 107 remainder(nan, -360): nan\n    test 108 remainder(nan, inf): nan\n    test 109 remainder(nan, nan): nan\n    test 110 remainder(nan, -inf): nan\n    test 111 remainder(-inf, 360): math domain error\n    test 112 remainder(-inf, -360): math domain error\n    test 113 remainder(-inf, inf): math domain error\n    test 114 remainder(-inf, nan): nan\n    test 115 remainder(-inf, -inf): math domain error\n    test 116 isclose: True\n    test 117 isclose: False\n\n    test 118 isiterable(dict): True\n    test 119 isiterablen(dict): True\n    test 120 isiterable(map): True\n    test 121 isiterablen(map): False\n    test 122 isiterable(list): True\n    test 123 isiterablen(list): True\n    test 124 isiterable(range): True\n    test 125 isiterablen(range): True\n    test 126 isiterable(tuple): True\n    test 127 isiterablen(tuple): True\n    test 128 isiterable(set): True\n    test 129 isiterablen(set): False\n\n    all 129 testBasics.py tests passed (pygeodesy 26.3.26 Python 3.13.12 64bit arm64 coverage 7.10.7 geographiclib 2.1 numpy 2.3.3 scipy 1.16.2 Math 2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 macOS 26.3.1 isLazy 1 -W  default) 947.952 us\nrunning /Library/Framewo....n3.13 -W default ~/PyGeodesy/test/testBooleans.py\n./test/testBooleans.py:50: DeprecationWarning: function L{areaOf<pygeodesy.ellipsoidalVincenty.areaOf>} has been DEPRECATED, use function L{ellipsoidalExact.areaOf} or L{ellipsoidalKarney.areaOf}.\n  self.test(areaOf.__name__, areaOf(b) == areaOf(t), True)\n./pygeodesy/ellipsoidalKarney.py:139: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return fabs(_polygon(datum.ellipsoid.geodesic, points, True, False, wrap, polar))\n./test/testBooleans.py:53: DeprecationWarning: function L{perimeterOf<pygeodesy.ellipsoidalVincenty.perimeterOf>} has been DEPRECATED, use function L{ellipsoidalExact.perimeterOf} or L{ellipsoidalKarney.perimeterOf}.\n  self.test(periOf.__name__, periOf(b, closed=True) == periOf(t, closed=True), True)\n./pygeodesy/ellipsoidalKarney.py:347: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return _polygon(datum.ellipsoid.geodesic, points, closed, True, wrap, False)\n./test/testBooleans.py:82: DeprecationWarning: function L{areaOf<pygeodesy.ellipsoidalVincenty.areaOf>} has been DEPRECATED, use function L{ellipsoidalExact.areaOf} or L{ellipsoidalKarney.areaOf}.\n  self.test(areaOf.__name__, areaOf(b) == areaOf(t), True)\n./test/testBooleans.py:85: DeprecationWarning: function L{perimeterOf<pygeodesy.ellipsoidalVincenty.perimeterOf>} has been DEPRECATED, use function L{ellipsoidalExact.perimeterOf} or L{ellipsoidalKarney.perimeterOf}.\n  self.test(periOf.__name__, periOf(b, closed=True) == periOf(t, closed=True), True)\n\n    testing testBooleans.py 23.03.31 isLazy=1\n\n    testing(pygeodesy.ellipsoidalExact, 25.08.28)\n    test 1 and: BooleanGH[4]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=7.0, lon=5.0, height=2.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=3.0, lon=5.0, height=2.0))\n    test 2 or: BooleanGH[6]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=0.0, lon=0.0, height=1.0), (lat=0.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=10.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0))\n    test 3 minus: BooleanGH[5]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=0.0, lon=0.0, height=1.0), (lat=0.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=3.0, lon=5.0, height=2.0))\n    test 4 rev_d: BooleanGH[5]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=10.0, lon=0.0, height=1.0), (lat=10.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=7.0, lon=5.0, height=2.0))\n    test 5 iand: BooleanGH[4]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=7.0, lon=5.0, height=2.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=3.0, lon=5.0, height=2.0))\n    test 6 ior: BooleanGH[6]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=0.0, lon=0.0, height=1.0), (lat=0.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=10.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0))\n    test 7 sum: BooleanGH[2][6]((lat=0.0, lon=0.0, height=1.0), (lat=7.0, lon=5.0, height=2.0), (lat=0.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0, clipid=1), (lat=3.0, lon=5.0, height=2.0, clipid=1), (lat=10.0, lon=10.0, height=3.0, clipid=1))\n\n    test 8 GH ==: True\n    test 9 equalTo: True\n    test 10 areaOf: True\n    test 11 enclosed: True\n    test 12 enclosed: False\n    test 13 perimeterOf: True\n\n    test 14 toLatLon[0:3]: (LatLon(00°00′00.0″N, 000°00′00.0″E, +1.00m), LatLon(07°00′00.0″N, 005°00′00.0″E, +2.00m), LatLon(00°00′00.0″N, 010°00′00.0″E, +3.00m))\n    test 15 toLatLon[-3:]: ((lat=10.0, lon=0.0, height=1.0, clipid=1), (lat=3.0, lon=5.0, height=2.0, clipid=1), (lat=10.0, lon=10.0, height=3.0, clipid=1))\n\n    test 16 and: BooleanFHP[4]((lat=7.0, lon=5.0, height=2.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=3.0, lon=5.0, height=2.0), (lat=5.0, lon=3.5714286, height=1.7142857))\n    test 17 or: BooleanFHP[6]((lat=0.0, lon=0.0, height=1.0), (lat=0.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=10.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0), (lat=5.0, lon=3.5714286, height=1.7142857))\n    test 18 iand: BooleanFHP[4]((lat=7.0, lon=5.0, height=2.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=3.0, lon=5.0, height=2.0), (lat=5.0, lon=3.5714286, height=1.7142857))\n    test 19 ior: BooleanFHP[6]((lat=0.0, lon=0.0, height=1.0), (lat=0.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=10.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0), (lat=5.0, lon=3.5714286, height=1.7142857))\n    test 20 sum: BooleanFHP[2][6]((lat=0.0, lon=0.0, height=1.0), (lat=7.0, lon=5.0, height=2.0), (lat=0.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0, clipid=1), (lat=3.0, lon=5.0, height=2.0, clipid=1), (lat=10.0, lon=10.0, height=3.0, clipid=1))\n\n    test 21 FHP ==: True\n    test 22 equalTo: True\n    test 23 areaOf: True\n    test 24 enclosed: True\n    test 25 enclosed: False\n    test 26 perimeterOf: True\n\n    test 27 toLatLon[0:3]: (LatLon(00°00′00.0″N, 000°00′00.0″E, +1.00m), LatLon(07°00′00.0″N, 005°00′00.0″E, +2.00m), LatLon(00°00′00.0″N, 010°00′00.0″E, +3.00m))\n    test 28 toLatLon[-3:]: ((lat=10.0, lon=0.0, height=1.0, clipid=1), (lat=3.0, lon=5.0, height=2.0, clipid=1), (lat=10.0, lon=10.0, height=3.0, clipid=1))\n\n    testing(pygeodesy.ellipsoidalVincenty, 25.05.26)\n    test 29 and: BooleanGH[4]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=7.0, lon=5.0, height=2.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=3.0, lon=5.0, height=2.0))\n    test 30 or: BooleanGH[6]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=0.0, lon=0.0, height=1.0), (lat=0.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=10.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0))\n    test 31 minus: BooleanGH[5]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=0.0, lon=0.0, height=1.0), (lat=0.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=3.0, lon=5.0, height=2.0))\n    test 32 rev_d: BooleanGH[5]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=10.0, lon=0.0, height=1.0), (lat=10.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=7.0, lon=5.0, height=2.0))\n    test 33 iand: BooleanGH[4]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=7.0, lon=5.0, height=2.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=3.0, lon=5.0, height=2.0))\n    test 34 ior: BooleanGH[6]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=0.0, lon=0.0, height=1.0), (lat=0.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=10.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0))\n    test 35 sum: BooleanGH[2][6]((lat=0.0, lon=0.0, height=1.0), (lat=7.0, lon=5.0, height=2.0), (lat=0.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0, clipid=1), (lat=3.0, lon=5.0, height=2.0, clipid=1), (lat=10.0, lon=10.0, height=3.0, clipid=1))\n\n    test 36 GH ==: True\n    test 37 equalTo: True\n    test 38 areaOf: True\n    test 39 enclosed: True\n    test 40 enclosed: False\n    test 41 perimeterOf: True\n\n    test 42 toLatLon[0:3]: (LatLon(00°00′00.0″N, 000°00′00.0″E, +1.00m), LatLon(07°00′00.0″N, 005°00′00.0″E, +2.00m), LatLon(00°00′00.0″N, 010°00′00.0″E, +3.00m))\n    test 43 toLatLon[-3:]: ((lat=10.0, lon=0.0, height=1.0, clipid=1), (lat=3.0, lon=5.0, height=2.0, clipid=1), (lat=10.0, lon=10.0, height=3.0, clipid=1))\n\n    test 44 and: BooleanFHP[4]((lat=7.0, lon=5.0, height=2.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=3.0, lon=5.0, height=2.0), (lat=5.0, lon=3.5714286, height=1.7142857))\n    test 45 or: BooleanFHP[6]((lat=0.0, lon=0.0, height=1.0), (lat=0.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=10.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0), (lat=5.0, lon=3.5714286, height=1.7142857))\n    test 46 iand: BooleanFHP[4]((lat=7.0, lon=5.0, height=2.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=3.0, lon=5.0, height=2.0), (lat=5.0, lon=3.5714286, height=1.7142857))\n    test 47 ior: BooleanFHP[6]((lat=0.0, lon=0.0, height=1.0), (lat=0.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=10.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0), (lat=5.0, lon=3.5714286, height=1.7142857))\n    test 48 sum: BooleanFHP[2][6]((lat=0.0, lon=0.0, height=1.0), (lat=7.0, lon=5.0, height=2.0), (lat=0.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0, clipid=1), (lat=3.0, lon=5.0, height=2.0, clipid=1), (lat=10.0, lon=10.0, height=3.0, clipid=1))\n\n    test 49 FHP ==: True\n    test 50 equalTo: True\n    test 51 areaOf: True\n    test 52 enclosed: True\n    test 53 enclosed: False\n    test 54 perimeterOf: True\n\n    test 55 toLatLon[0:3]: (LatLon(00°00′00.0″N, 000°00′00.0″E, +1.00m), LatLon(07°00′00.0″N, 005°00′00.0″E, +2.00m), LatLon(00°00′00.0″N, 010°00′00.0″E, +3.00m))\n    test 56 toLatLon[-3:]: ((lat=10.0, lon=0.0, height=1.0, clipid=1), (lat=3.0, lon=5.0, height=2.0, clipid=1), (lat=10.0, lon=10.0, height=3.0, clipid=1))\n\n    testing(pygeodesy.sphericalNvector, 25.05.27)\n    test 57 and: BooleanGH[4]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=7.0, lon=5.0, height=2.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=3.0, lon=5.0, height=2.0))\n    test 58 or: BooleanGH[6]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=0.0, lon=0.0, height=1.0), (lat=0.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=10.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0))\n    test 59 minus: BooleanGH[5]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=0.0, lon=0.0, height=1.0), (lat=0.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=3.0, lon=5.0, height=2.0))\n    test 60 rev_d: BooleanGH[5]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=10.0, lon=0.0, height=1.0), (lat=10.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=7.0, lon=5.0, height=2.0))\n    test 61 iand: BooleanGH[4]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=7.0, lon=5.0, height=2.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=3.0, lon=5.0, height=2.0))\n    test 62 ior: BooleanGH[6]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=0.0, lon=0.0, height=1.0), (lat=0.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=10.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0))\n    test 63 sum: BooleanGH[2][6]((lat=0.0, lon=0.0, height=1.0), (lat=7.0, lon=5.0, height=2.0), (lat=0.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0, clipid=1), (lat=3.0, lon=5.0, height=2.0, clipid=1), (lat=10.0, lon=10.0, height=3.0, clipid=1))\n\n    test 64 GH ==: True\n    test 65 equalTo: True\n    test 66 areaOf: True\n    test 67 enclosed: True\n    test 68 enclosed: False\n    test 69 perimeterOf: True\n\n    test 70 toLatLon[0:3]: (LatLon(00°00′00.0″N, 000°00′00.0″E, +1.00m), LatLon(07°00′00.0″N, 005°00′00.0″E, +2.00m), LatLon(00°00′00.0″N, 010°00′00.0″E, +3.00m))\n    test 71 toLatLon[-3:]: ((lat=10.0, lon=0.0, height=1.0, clipid=1), (lat=3.0, lon=5.0, height=2.0, clipid=1), (lat=10.0, lon=10.0, height=3.0, clipid=1))\n\n    test 72 and: BooleanFHP[4]((lat=7.0, lon=5.0, height=2.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=3.0, lon=5.0, height=2.0), (lat=5.0, lon=3.5714286, height=1.7142857))\n    test 73 or: BooleanFHP[6]((lat=0.0, lon=0.0, height=1.0), (lat=0.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=10.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0), (lat=5.0, lon=3.5714286, height=1.7142857))\n    test 74 iand: BooleanFHP[4]((lat=7.0, lon=5.0, height=2.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=3.0, lon=5.0, height=2.0), (lat=5.0, lon=3.5714286, height=1.7142857))\n    test 75 ior: BooleanFHP[6]((lat=0.0, lon=0.0, height=1.0), (lat=0.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=10.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0), (lat=5.0, lon=3.5714286, height=1.7142857))\n    test 76 sum: BooleanFHP[2][6]((lat=0.0, lon=0.0, height=1.0), (lat=7.0, lon=5.0, height=2.0), (lat=0.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0, clipid=1), (lat=3.0, lon=5.0, height=2.0, clipid=1), (lat=10.0, lon=10.0, height=3.0, clipid=1))\n\n    test 77 FHP ==: True\n    test 78 equalTo: True\n    test 79 areaOf: True\n    test 80 enclosed: True\n    test 81 enclosed: False\n    test 82 perimeterOf: True\n\n    test 83 toLatLon[0:3]: (LatLon(00°00′00.0″N, 000°00′00.0″E, +1.00m), LatLon(07°00′00.0″N, 005°00′00.0″E, +2.00m), LatLon(00°00′00.0″N, 010°00′00.0″E, +3.00m))\n    test 84 toLatLon[-3:]: ((lat=10.0, lon=0.0, height=1.0, clipid=1), (lat=3.0, lon=5.0, height=2.0, clipid=1), (lat=10.0, lon=10.0, height=3.0, clipid=1))\n\n    testing(pygeodesy.sphericalTrigonometry, 25.08.31)\n    test 85 and: BooleanGH[4]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=7.0, lon=5.0, height=2.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=3.0, lon=5.0, height=2.0))\n    test 86 or: BooleanGH[6]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=0.0, lon=0.0, height=1.0), (lat=0.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=10.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0))\n    test 87 minus: BooleanGH[5]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=0.0, lon=0.0, height=1.0), (lat=0.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=3.0, lon=5.0, height=2.0))\n    test 88 rev_d: BooleanGH[5]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=10.0, lon=0.0, height=1.0), (lat=10.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=7.0, lon=5.0, height=2.0))\n    test 89 iand: BooleanGH[4]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=7.0, lon=5.0, height=2.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=3.0, lon=5.0, height=2.0))\n    test 90 ior: BooleanGH[6]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=0.0, lon=0.0, height=1.0), (lat=0.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=10.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0))\n    test 91 sum: BooleanGH[2][6]((lat=0.0, lon=0.0, height=1.0), (lat=7.0, lon=5.0, height=2.0), (lat=0.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0, clipid=1), (lat=3.0, lon=5.0, height=2.0, clipid=1), (lat=10.0, lon=10.0, height=3.0, clipid=1))\n\n    test 92 GH ==: True\n    test 93 equalTo: True\n    test 94 areaOf: True\n    test 95 enclosed: True\n    test 96 enclosed: False\n    test 97 perimeterOf: True\n\n    test 98 toLatLon[0:3]: (LatLon(00°00′00.0″N, 000°00′00.0″E, +1.00m), LatLon(07°00′00.0″N, 005°00′00.0″E, +2.00m), LatLon(00°00′00.0″N, 010°00′00.0″E, +3.00m))\n    test 99 toLatLon[-3:]: ((lat=10.0, lon=0.0, height=1.0, clipid=1), (lat=3.0, lon=5.0, height=2.0, clipid=1), (lat=10.0, lon=10.0, height=3.0, clipid=1))\n\n    test 100 and: BooleanFHP[4]((lat=7.0, lon=5.0, height=2.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=3.0, lon=5.0, height=2.0), (lat=5.0, lon=3.5714286, height=1.7142857))\n    test 101 or: BooleanFHP[6]((lat=0.0, lon=0.0, height=1.0), (lat=0.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=10.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0), (lat=5.0, lon=3.5714286, height=1.7142857))\n    test 102 iand: BooleanFHP[4]((lat=7.0, lon=5.0, height=2.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=3.0, lon=5.0, height=2.0), (lat=5.0, lon=3.5714286, height=1.7142857))\n    test 103 ior: BooleanFHP[6]((lat=0.0, lon=0.0, height=1.0), (lat=0.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=10.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0), (lat=5.0, lon=3.5714286, height=1.7142857))\n    test 104 sum: BooleanFHP[2][6]((lat=0.0, lon=0.0, height=1.0), (lat=7.0, lon=5.0, height=2.0), (lat=0.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0, clipid=1), (lat=3.0, lon=5.0, height=2.0, clipid=1), (lat=10.0, lon=10.0, height=3.0, clipid=1))\n\n    test 105 FHP ==: True\n    test 106 equalTo: True\n    test 107 areaOf: True\n    test 108 enclosed: True\n    test 109 enclosed: False\n    test 110 perimeterOf: True\n\n    test 111 toLatLon[0:3]: (LatLon(00°00′00.0″N, 000°00′00.0″E, +1.00m), LatLon(07°00′00.0″N, 005°00′00.0″E, +2.00m), LatLon(00°00′00.0″N, 010°00′00.0″E, +3.00m))\n    test 112 toLatLon[-3:]: ((lat=10.0, lon=0.0, height=1.0, clipid=1), (lat=3.0, lon=5.0, height=2.0, clipid=1), (lat=10.0, lon=10.0, height=3.0, clipid=1))\n\n    16 of 112 testBooleans.py tests (14.3%) FAILED, incl. 16 DeprecationWarnings (pygeodesy 26.3.26 Python 3.13.12 64bit arm64 coverage 7.10.7 geographiclib 2.1 numpy 2.3.3 scipy 1.16.2 Math 2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 macOS 26.3.1 isLazy 1 -W  default) 2.773 sec\nrunning /Library/Framewo....n3.13 -W default ~/PyGeodesy/test/testCartesian.py\n./pygeodesy/basics.py:637: DeprecationWarning: Conversion of an array with ndim > 0 to a scalar is deprecated, and will error in future. Ensure you extract a single element from your array before performing this operation. (Deprecated NumPy 1.25.)\n  return tuple(map(fun, *xs, **strict) if strict else map(fun, *xs))\n./test/testCartesian.py:44: DeprecationWarning: method L{convertDatum<pygeodesy.ellipsoidalNvector.Cartesian.convertDatum>} has been DEPRECATED, use method L{toDatum}.\n  d = c.convertDatum(datum2)\n./test/testCartesian.py:45: DeprecationWarning: method L{convertDatum<pygeodesy.ellipsoidalNvector.Cartesian.convertDatum>} has been DEPRECATED, use method L{toDatum}.\n  t = d.convertDatum(datum)\n<string>:1: DeprecationWarning: method L{__matmul__<pygeodesy.trf.RefFrame.__matmul__>} has been DEPRECATED on 2024.02.16, use method C{B{point}.toRefFrame}.\n\n    testing testCartesian.py 25.05.12 isLazy=1\n\n    testCartesian(pygeodesy.sphericalNvector, 25.05.27)\n    test 1 Cartesian0: [3980581, 97, 4966825]\n    test 2 Cartesian4: [3980581.0, 97.0, 4966825.0]\n    test 3 isEllipsoidal: False\n    test 4 isSpherical: True\n    test 5 copy(<class 'type'>): (<class 'pygeodesy.sphericalNvector.Cartesian'>, True)\n    test 6 Cartesian.copy(): (<class 'pygeodesy.sphericalNvector.Cartesian'>, True)\n    test 7 height: -5918.380258\n    test 8 height4: (3984282.2, 97.1, 4971443.2, -5918.4)\n    test 9 height4: [3984282.2, 97.1, 4971443.2]\n    test 10 height3: (3980581.0, 97.0, 4966825.0)\n    test 11 Nvector: Nvector(0.62538, 0.00002, 0.78032, -5918.38)\n    test 12 Nvector3: (0.625, 0.0, 0.78, -5918.38)\n    test 13 Nvector6: (0.625377, 0.000015, 0.780323, -5918.38)\n    test 14 LatLon: 50.0379°N, 008.5622°E\n    test 15 LatLon: 51.47°N, 000.4543°E\n    test 16 LatLon: 40.633365°N, 073.783328°W\n    test 17 LatLon: 33.95°N, 118.4°W\n    test 18 LatLon: 41.32°S, 174.81°E, +0.00m  FAILED, KNOWN, expected 41.32°S, 174.81°E\n    test 19 LatLon: 40.96°N, 005.5°E\n    test 20 LatLon: 40.1°N, 116.6°E\n    test 21 LatLon: 37.6°N, 122.4°W, -0.00m  FAILED, KNOWN, expected 37.6°N, 122.4°W\n    test 22 copy: True\n    test 23 __eq__: True\n    test 24 __ne__: False\n    test 25 Cartesian: <class 'pygeodesy.sphericalNvector.Cartesian'>\n    test 26 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 27 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 28 latlonheightdatum: <class 'pygeodesy.namedTuples.LatLon4Tuple'>\n    test 29 height4: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 30 isequalTo: <class 'bool'>\n    test 31 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 32 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 33 philamheightdatum: <class 'pygeodesy.namedTuples.PhiLam4Tuple'>\n    test 34 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 35 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 36 toEcef: <class 'pygeodesy.ecef.Ecef9Tuple'>\n    test 37 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 38 toLatLon: <class 'pygeodesy.sphericalNvector.LatLon'>\n    test 39 toLLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 40 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 41 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 42 toNvector: <class 'pygeodesy.sphericalNvector.Nvector'>\n    test 43 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 44 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 45 xyz3: <class 'tuple'>\n    test 46 Cartesian: <class 'pygeodesy.cartesianBase.CartesianBase'>\n    test 47 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 48 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 49 latlonheightdatum: <class 'pygeodesy.namedTuples.LatLon4Tuple'>\n    test 50 height4: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 51 isequalTo: <class 'bool'>\n    test 52 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 53 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 54 philamheightdatum: <class 'pygeodesy.namedTuples.PhiLam4Tuple'>\n    test 55 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 56 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 57 toEcef: <class 'pygeodesy.ecef.Ecef9Tuple'>\n    test 58 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 59 toLatLon: <class 'pygeodesy.ecef.Ecef9Tuple'>\n    test 60 toLLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 61 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 62 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 63 toNvector: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 64 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 65 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 66 xyz3: <class 'tuple'>\n    test 67 sphericalNvector.Cartesian.intersections2: 37.673442°N, 090.234036°W\n    test 68 sphericalNvector.Cartesian.intersections2: 36.109987°N, 090.95367°W\n    test 69 sphericalNvector.Cartesian.intersections2: [-0.032779, -0.784769, 0.61892]\n    test 70 sphericalNvector.Cartesian.intersections2: 38.237342°N, 092.391779°W\n    test 71 sphericalNvector.Cartesian.intersections2: [0.025768, -0.798347, 0.601646]\n    test 72 sphericalNvector.Cartesian.intersections2: 36.987868°N, 088.151309°W\n    test 73 vector3d.trilaterate3d2: [-0.032761, -0.784757, 0.618937]\n    test 74 vector3d.trilaterate3d2: [0.025768, -0.798331, 0.601668]\n    test 75 vector3d.intersections2: (-0.0035, -0.791926, 0.610589)\n    test 76 vector3d.intersections2: 0.0312613\n    test 77 vector3d.intersections2: (-0.021973, -0.766467, 0.0)\n    test 78 vector3d.intersections2: (0.027459, -0.797488, 0.0)\n\n    test 79 xyz2rtp: 37.417, 36.699, 63.435\n    test 80 xyz2rtp: <class 'pygeodesy.cartesianBase.RadiusThetaPhi3Tuple'>\n    test 81 rtp2xyz: 10.0, 20.0, 30.0\n    test 82 rtp2xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 83 toCartesian: Cartesian(10.0, 20.0, 30.0)\n    test 84 toRtp: Test(r=37.416574, theta=36.699225, phi=63.434949)\n\n    test 85 destinationXyz: Tuple(x=10.175954, y=20.351908, z=32.201182, lat=54.754059, lon=63.434949, height=-6370969.342158, C=2, M=None, datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84))\n    test 86 destinationXyz: Cartesian(10.176, 20.352, 32.201)\n\n    testCartesian(pygeodesy.sphericalTrigonometry, 25.08.31)\n    test 87 Cartesian0: [3980581, 97, 4966825]\n    test 88 Cartesian4: [3980581.0, 97.0, 4966825.0]\n    test 89 isEllipsoidal: False\n    test 90 isSpherical: True\n    test 91 copy(<class 'type'>): (<class 'pygeodesy.sphericalTrigonometry.Cartesian'>, True)\n    test 92 Cartesian.copy(): (<class 'pygeodesy.sphericalTrigonometry.Cartesian'>, True)\n    test 93 height: -5918.380258\n    test 94 height4: (3984282.2, 97.1, 4971443.2, -5918.4)\n    test 95 height4: [3984282.2, 97.1, 4971443.2]\n    test 96 height3: (3980581.0, 97.0, 4966825.0)\n    test 97 Vector4Tuple: 0.625376979, 1.52393751e-05, 0.780322775, -5918.38026\n    test 98 LatLon: 50.0379°N, 008.5622°E\n    test 99 LatLon: 51.47°N, 000.4543°E\n    test 100 LatLon: 40.633365°N, 073.783328°W\n    test 101 LatLon: 33.95°N, 118.4°W\n    test 102 LatLon: 41.32°S, 174.81°E, +0.00m  FAILED, KNOWN, expected 41.32°S, 174.81°E\n    test 103 LatLon: 40.96°N, 005.5°E\n    test 104 LatLon: 40.1°N, 116.6°E\n    test 105 LatLon: 37.6°N, 122.4°W, -0.00m  FAILED, KNOWN, expected 37.6°N, 122.4°W\n    test 106 copy: True\n    test 107 __eq__: True\n    test 108 __ne__: False\n    test 109 Cartesian: <class 'pygeodesy.sphericalTrigonometry.Cartesian'>\n    test 110 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 111 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 112 latlonheightdatum: <class 'pygeodesy.namedTuples.LatLon4Tuple'>\n    test 113 height4: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 114 isequalTo: <class 'bool'>\n    test 115 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 116 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 117 philamheightdatum: <class 'pygeodesy.namedTuples.PhiLam4Tuple'>\n    test 118 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 119 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 120 toEcef: <class 'pygeodesy.ecef.Ecef9Tuple'>\n    test 121 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 122 toLatLon: <class 'pygeodesy.sphericalTrigonometry.LatLon'>\n    test 123 toLLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 124 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 125 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 126 toNvector: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 127 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 128 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 129 xyz3: <class 'tuple'>\n    test 130 Cartesian: <class 'pygeodesy.cartesianBase.CartesianBase'>\n    test 131 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 132 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 133 latlonheightdatum: <class 'pygeodesy.namedTuples.LatLon4Tuple'>\n    test 134 height4: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n./test/testCartesian.py:44: DeprecationWarning: method L{convertDatum<pygeodesy.ellipsoidalVincenty.Cartesian.convertDatum>} has been DEPRECATED, use method L{toDatum}.\n  d = c.convertDatum(datum2)\n./test/testCartesian.py:45: DeprecationWarning: method L{convertDatum<pygeodesy.ellipsoidalVincenty.Cartesian.convertDatum>} has been DEPRECATED, use method L{toDatum}.\n  t = d.convertDatum(datum)\n./test/testCartesian.py:44: DeprecationWarning: method L{convertDatum<pygeodesy.ellipsoidalKarney.Cartesian.convertDatum>} has been DEPRECATED, use method L{toDatum}.\n  d = c.convertDatum(datum2)\n./test/testCartesian.py:45: DeprecationWarning: method L{convertDatum<pygeodesy.ellipsoidalKarney.Cartesian.convertDatum>} has been DEPRECATED, use method L{toDatum}.\n  t = d.convertDatum(datum)\n    test 135 isequalTo: <class 'bool'>\n    test 136 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 137 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 138 philamheightdatum: <class 'pygeodesy.namedTuples.PhiLam4Tuple'>\n    test 139 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 140 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 141 toEcef: <class 'pygeodesy.ecef.Ecef9Tuple'>\n    test 142 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 143 toLatLon: <class 'pygeodesy.ecef.Ecef9Tuple'>\n    test 144 toLLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 145 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 146 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 147 toNvector: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 148 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 149 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 150 xyz3: <class 'tuple'>\n    test 151 sphericalTrigonometry.Cartesian.intersections2: 37.673442°N, 090.234036°W\n    test 152 sphericalTrigonometry.Cartesian.intersections2: 36.109987°N, 090.95367°W\n    test 153 sphericalTrigonometry.Cartesian.intersections2: [-0.032779, -0.784769, 0.61892]\n    test 154 sphericalTrigonometry.Cartesian.intersections2: 38.237342°N, 092.391779°W\n    test 155 sphericalTrigonometry.Cartesian.intersections2: [0.025768, -0.798347, 0.601646]\n    test 156 sphericalTrigonometry.Cartesian.intersections2: 36.987868°N, 088.151309°W\n    test 157 vector3d.trilaterate3d2: [-0.032761, -0.784757, 0.618937]\n    test 158 vector3d.trilaterate3d2: [0.025768, -0.798331, 0.601668]\n    test 159 vector3d.intersections2: (-0.0035, -0.791926, 0.610589)\n    test 160 vector3d.intersections2: 0.0312613\n    test 161 vector3d.intersections2: (-0.021973, -0.766467, 0.0)\n    test 162 vector3d.intersections2: (0.027459, -0.797488, 0.0)\n\n    test 163 xyz2rtp: 37.417, 36.699, 63.435\n    test 164 xyz2rtp: <class 'pygeodesy.cartesianBase.RadiusThetaPhi3Tuple'>\n    test 165 rtp2xyz: 10.0, 20.0, 30.0\n    test 166 rtp2xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 167 toCartesian: Cartesian(10.0, 20.0, 30.0)\n    test 168 toRtp: Test(r=37.416574, theta=36.699225, phi=63.434949)\n\n    test 169 destinationXyz: Tuple(x=10.175954, y=20.351908, z=32.201182, lat=54.754059, lon=63.434949, height=-6370969.342158, C=2, M=None, datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84))\n    test 170 destinationXyz: Cartesian(10.176, 20.352, 32.201)\n\n    testCartesian(pygeodesy.ellipsoidalNvector, 25.05.12)\n    test 171 Cartesian0: [3980581, 97, 4966825]\n    test 172 Cartesian4: [3980581.0, 97.0, 4966825.0]\n    test 173 isEllipsoidal: True\n    test 174 isSpherical: False\n    test 175 copy(<class 'type'>): (<class 'pygeodesy.ellipsoidalNvector.Cartesian'>, True)\n    test 176 Cartesian.copy(): (<class 'pygeodesy.ellipsoidalNvector.Cartesian'>, True)\n    test 177 convertDatum: [3980581.0, 97.0, 4966825.0]\n    test 178 __matmul__: [3980580.124, 107.691, 4966819.407]\n    test 179 __matmul__: [3980580.124, 107.691, 4966819.407]\n    test 180 __matmul__: [3980580.998, 97.0, 4966824.998]\n    test 181 height: 0.242887\n    test 182 height4: (3980580.8, 97.0, 4966824.8, 0.2)\n    test 183 height4: [3980580.8, 97.0, 4966824.8]\n    test 184 height3: (3980581.0, 97.0, 4966825.0)\n    test 185 Nvector: Nvector(0.62282, 0.00002, 0.78237, +0.24)\n    test 186 Nvector3: (0.623, 0.0, 0.782, +0.24)\n    test 187 Nvector6: (0.622818, 0.000015, 0.782367, +0.24)\n    test 188 LatLon: 50.0379°N, 008.5622°E, +0.00m  FAILED, KNOWN, expected 50.0379°N, 008.5622°E\n    test 189 LatLon: 51.47°N, 000.4543°E, -0.00m  FAILED, KNOWN, expected 51.47°N, 000.4543°E\n    test 190 LatLon: 40.633365°N, 073.783328°W\n    test 191 LatLon: 33.95°N, 118.4°W\n    test 192 LatLon: 41.32°S, 174.81°E, +0.00m  FAILED, KNOWN, expected 41.32°S, 174.81°E\n    test 193 LatLon: 40.96°N, 005.5°E, -0.00m  FAILED, KNOWN, expected 40.96°N, 005.5°E\n    test 194 LatLon: 40.1°N, 116.6°E, -0.00m  FAILED, KNOWN, expected 40.1°N, 116.6°E\n    test 195 LatLon: 37.6°N, 122.4°W\n    test 196 copy: True\n    test 197 __eq__: True\n    test 198 __ne__: False\n    test 199 Cartesian: <class 'pygeodesy.ellipsoidalNvector.Cartesian'>\n    test 200 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 201 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 202 latlonheightdatum: <class 'pygeodesy.namedTuples.LatLon4Tuple'>\n    test 203 height4: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 204 isequalTo: <class 'bool'>\n    test 205 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 206 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 207 philamheightdatum: <class 'pygeodesy.namedTuples.PhiLam4Tuple'>\n    test 208 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 209 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 210 toEcef: <class 'pygeodesy.ecef.Ecef9Tuple'>\n    test 211 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 212 toLatLon: <class 'pygeodesy.ellipsoidalNvector.LatLon'>\n    test 213 toLLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 214 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 215 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 216 toNvector: <class 'pygeodesy.ellipsoidalNvector.Nvector'>\n    test 217 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 218 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 219 xyz3: <class 'tuple'>\n    test 220 Cartesian: <class 'pygeodesy.cartesianBase.CartesianBase'>\n    test 221 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 222 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 223 latlonheightdatum: <class 'pygeodesy.namedTuples.LatLon4Tuple'>\n    test 224 height4: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 225 isequalTo: <class 'bool'>\n    test 226 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 227 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 228 philamheightdatum: <class 'pygeodesy.namedTuples.PhiLam4Tuple'>\n    test 229 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 230 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 231 toEcef: <class 'pygeodesy.ecef.Ecef9Tuple'>\n    test 232 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 233 toLatLon: <class 'pygeodesy.ecef.Ecef9Tuple'>\n    test 234 toLLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 235 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 236 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 237 toNvector: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 238 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 239 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 240 xyz3: <class 'tuple'>\n    test 241 ellipsoidalNvector.Cartesian.intersections2: 89.998941°N, 090.234036°W\n    test 242 ellipsoidalNvector.Cartesian.intersections2: 89.99892°N, 090.95367°W\n    test 243 ellipsoidalNvector.Cartesian.intersections2: [-0.0035, -0.791926, 0.610589]\n    test 244 ellipsoidalNvector.Cartesian.intersections2: 89.998941°N, 090.253237°W\n    test 245 ellipsoidalNvector.Cartesian.intersections2: 0.0312613\n    test 246 vector3d.intersections2: (-0.0035, -0.791926, 0.610589)\n    test 247 vector3d.intersections2: 0.0312613\n    test 248 vector3d.intersections2: (-0.021973, -0.766467, 0.0)\n    test 249 vector3d.intersections2: (0.027459, -0.797488, 0.0)\n\n    test 250 xyz2rtp: 37.417, 36.699, 63.435\n    test 251 xyz2rtp: <class 'pygeodesy.cartesianBase.RadiusThetaPhi3Tuple'>\n    test 252 rtp2xyz: 10.0, 20.0, 30.0\n    test 253 rtp2xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 254 toCartesian: Cartesian(10.0, 20.0, 30.0)\n    test 255 toRtp: Test(r=37.416574, theta=36.699225, phi=63.434949)\n\n    test 256 destinationXyz: Tuple(x=9.553253, y=19.106505, z=32.000521, lat=89.971452, lon=63.434949, height=-6356720.308402, C=1, M=None, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 257 destinationXyz: Cartesian(9.553, 19.107, 32.001)\n\n    test 258 c.toEnu: [-17553188.505, -3108016.462, 7452592.104]\n    test 259 e.toEnu: [-17553188.505, -3108016.462, 7452592.104]\n./test/testCartesian.py:44: DeprecationWarning: method L{convertDatum<pygeodesy.ellipsoidalGeodSolve.Cartesian.convertDatum>} has been DEPRECATED, use method L{toDatum}.\n  d = c.convertDatum(datum2)\n./test/testCartesian.py:45: DeprecationWarning: method L{convertDatum<pygeodesy.ellipsoidalGeodSolve.Cartesian.convertDatum>} has been DEPRECATED, use method L{toDatum}.\n  t = d.convertDatum(datum)\n\n    testCartesian(pygeodesy.ellipsoidalVincenty, 25.05.26)\n    test 260 Cartesian0: [3980581, 97, 4966825]\n    test 261 Cartesian4: [3980581.0, 97.0, 4966825.0]\n    test 262 isEllipsoidal: True\n    test 263 isSpherical: False\n    test 264 copy(<class 'type'>): (<class 'pygeodesy.ellipsoidalVincenty.Cartesian'>, True)\n    test 265 Cartesian.copy(): (<class 'pygeodesy.ellipsoidalVincenty.Cartesian'>, True)\n    test 266 convertDatum: [3980581.0, 97.0, 4966825.0]\n    test 267 __matmul__: [3980580.124, 107.691, 4966819.407]\n    test 268 __matmul__: [3980580.124, 107.691, 4966819.407]\n    test 269 __matmul__: [3980580.998, 97.0, 4966824.998]\n    test 270 height: 0.242887\n    test 271 height4: (3980580.8, 97.0, 4966824.8, 0.2)\n    test 272 height4: [3980580.8, 97.0, 4966824.8]\n    test 273 height3: (3980581.0, 97.0, 4966825.0)\n    test 274 Vector4Tuple: 0.622817765, 1.51770114e-05, 0.782366942, 0.242886808\n    test 275 LatLon: 50.0379°N, 008.5622°E, +0.00m  FAILED, KNOWN, expected 50.0379°N, 008.5622°E\n    test 276 LatLon: 51.47°N, 000.4543°E, -0.00m  FAILED, KNOWN, expected 51.47°N, 000.4543°E\n    test 277 LatLon: 40.633365°N, 073.783328°W\n    test 278 LatLon: 33.95°N, 118.4°W\n    test 279 LatLon: 41.32°S, 174.81°E, +0.00m  FAILED, KNOWN, expected 41.32°S, 174.81°E\n    test 280 LatLon: 40.96°N, 005.5°E, -0.00m  FAILED, KNOWN, expected 40.96°N, 005.5°E\n    test 281 LatLon: 40.1°N, 116.6°E, -0.00m  FAILED, KNOWN, expected 40.1°N, 116.6°E\n    test 282 LatLon: 37.6°N, 122.4°W\n    test 283 copy: True\n    test 284 __eq__: True\n    test 285 __ne__: False\n    test 286 Cartesian: <class 'pygeodesy.ellipsoidalVincenty.Cartesian'>\n    test 287 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 288 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 289 latlonheightdatum: <class 'pygeodesy.namedTuples.LatLon4Tuple'>\n    test 290 height4: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 291 isequalTo: <class 'bool'>\n    test 292 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 293 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 294 philamheightdatum: <class 'pygeodesy.namedTuples.PhiLam4Tuple'>\n    test 295 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 296 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 297 toEcef: <class 'pygeodesy.ecef.Ecef9Tuple'>\n    test 298 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 299 toLatLon: <class 'pygeodesy.ellipsoidalVincenty.LatLon'>\n    test 300 toLLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 301 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 302 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 303 toNvector: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 304 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 305 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 306 xyz3: <class 'tuple'>\n    test 307 Cartesian: <class 'pygeodesy.cartesianBase.CartesianBase'>\n    test 308 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 309 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 310 latlonheightdatum: <class 'pygeodesy.namedTuples.LatLon4Tuple'>\n    test 311 height4: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 312 isequalTo: <class 'bool'>\n    test 313 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 314 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 315 philamheightdatum: <class 'pygeodesy.namedTuples.PhiLam4Tuple'>\n    test 316 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 317 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 318 toEcef: <class 'pygeodesy.ecef.Ecef9Tuple'>\n    test 319 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 320 toLatLon: <class 'pygeodesy.ecef.Ecef9Tuple'>\n    test 321 toLLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 322 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 323 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 324 toNvector: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 325 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 326 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 327 xyz3: <class 'tuple'>\n    test 328 ellipsoidalVincenty.Cartesian.intersections2: 89.998941°N, 090.234036°W\n    test 329 ellipsoidalVincenty.Cartesian.intersections2: 89.99892°N, 090.95367°W\n    test 330 ellipsoidalVincenty.Cartesian.intersections2: [-0.0035, -0.791926, 0.610589]\n    test 331 ellipsoidalVincenty.Cartesian.intersections2: 89.998941°N, 090.253237°W\n    test 332 ellipsoidalVincenty.Cartesian.intersections2: 0.0312613\n    test 333 vector3d.intersections2: (-0.0035, -0.791926, 0.610589)\n    test 334 vector3d.intersections2: 0.0312613\n    test 335 vector3d.intersections2: (-0.021973, -0.766467, 0.0)\n    test 336 vector3d.intersections2: (0.027459, -0.797488, 0.0)\n\n    test 337 xyz2rtp: 37.417, 36.699, 63.435\n    test 338 xyz2rtp: <class 'pygeodesy.cartesianBase.RadiusThetaPhi3Tuple'>\n    test 339 rtp2xyz: 10.0, 20.0, 30.0\n    test 340 rtp2xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 341 toCartesian: Cartesian(10.0, 20.0, 30.0)\n    test 342 toRtp: Test(r=37.416574, theta=36.699225, phi=63.434949)\n\n    test 343 destinationXyz: Tuple(x=9.553253, y=19.106505, z=32.000521, lat=89.971452, lon=63.434949, height=-6356720.308402, C=1, M=None, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 344 destinationXyz: Cartesian(9.553, 19.107, 32.001)\n\n    test 345 c.toEnu: [-17553188.505, -3108016.462, 7452592.104]\n    test 346 e.toEnu: [-17553188.505, -3108016.462, 7452592.104]\n\n    testCartesian(pygeodesy.ellipsoidalKarney, 25.05.27)\n    test 347 Cartesian0: [3980581, 97, 4966825]\n    test 348 Cartesian4: [3980581.0, 97.0, 4966825.0]\n    test 349 isEllipsoidal: True\n    test 350 isSpherical: False\n    test 351 copy(<class 'type'>): (<class 'pygeodesy.ellipsoidalKarney.Cartesian'>, True)\n    test 352 Cartesian.copy(): (<class 'pygeodesy.ellipsoidalKarney.Cartesian'>, True)\n    test 353 convertDatum: [3980581.0, 97.0, 4966825.0]\n    test 354 __matmul__: [3980580.124, 107.691, 4966819.407]\n    test 355 __matmul__: [3980580.124, 107.691, 4966819.407]\n    test 356 __matmul__: [3980580.998, 97.0, 4966824.998]\n    test 357 height: 0.242887\n    test 358 height4: (3980580.8, 97.0, 4966824.8, 0.2)\n    test 359 height4: [3980580.8, 97.0, 4966824.8]\n    test 360 height3: (3980581.0, 97.0, 4966825.0)\n    test 361 Vector4Tuple: 0.622817765, 1.51770114e-05, 0.782366942, 0.242886808\n    test 362 LatLon: 50.0379°N, 008.5622°E, +0.00m  FAILED, KNOWN, expected 50.0379°N, 008.5622°E\n    test 363 LatLon: 51.47°N, 000.4543°E\n    test 364 LatLon: 40.633365°N, 073.783328°W\n    test 365 LatLon: 33.95°N, 118.4°W, +0.00m  FAILED, KNOWN, expected 33.95°N, 118.4°W\n    test 366 LatLon: 41.32°S, 174.81°E\n    test 367 LatLon: 40.96°N, 005.5°E\n    test 368 LatLon: 40.1°N, 116.6°E\n    test 369 LatLon: 37.6°N, 122.4°W\n    test 370 copy: True\n    test 371 __eq__: True\n    test 372 __ne__: False\n    test 373 Cartesian: <class 'pygeodesy.ellipsoidalKarney.Cartesian'>\n    test 374 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 375 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 376 latlonheightdatum: <class 'pygeodesy.namedTuples.LatLon4Tuple'>\n    test 377 height4: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 378 isequalTo: <class 'bool'>\n    test 379 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 380 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 381 philamheightdatum: <class 'pygeodesy.namedTuples.PhiLam4Tuple'>\n    test 382 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 383 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 384 toEcef: <class 'pygeodesy.ecef.Ecef9Tuple'>\n    test 385 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 386 toLatLon: <class 'pygeodesy.ellipsoidalKarney.LatLon'>\n    test 387 toLLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 388 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 389 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 390 toNvector: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n./test/testCartesian.py:44: DeprecationWarning: method L{convertDatum<pygeodesy.ellipsoidalExact.Cartesian.convertDatum>} has been DEPRECATED, use method L{toDatum}.\n  d = c.convertDatum(datum2)\n./test/testCartesian.py:45: DeprecationWarning: method L{convertDatum<pygeodesy.ellipsoidalExact.Cartesian.convertDatum>} has been DEPRECATED, use method L{toDatum}.\n  t = d.convertDatum(datum)\n    test 391 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 392 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 393 xyz3: <class 'tuple'>\n    test 394 Cartesian: <class 'pygeodesy.cartesianBase.CartesianBase'>\n    test 395 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 396 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 397 latlonheightdatum: <class 'pygeodesy.namedTuples.LatLon4Tuple'>\n    test 398 height4: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 399 isequalTo: <class 'bool'>\n    test 400 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 401 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 402 philamheightdatum: <class 'pygeodesy.namedTuples.PhiLam4Tuple'>\n    test 403 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 404 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 405 toEcef: <class 'pygeodesy.ecef.Ecef9Tuple'>\n    test 406 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 407 toLatLon: <class 'pygeodesy.ecef.Ecef9Tuple'>\n    test 408 toLLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 409 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 410 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 411 toNvector: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 412 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 413 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 414 xyz3: <class 'tuple'>\n    test 415 ellipsoidalKarney.Cartesian.intersections2: 89.998941°N, 090.234036°W\n    test 416 ellipsoidalKarney.Cartesian.intersections2: 89.99892°N, 090.95367°W\n    test 417 ellipsoidalKarney.Cartesian.intersections2: [-0.0035, -0.791926, 0.610589]\n    test 418 ellipsoidalKarney.Cartesian.intersections2: 89.998941°N, 090.253237°W\n    test 419 ellipsoidalKarney.Cartesian.intersections2: 0.0312613\n    test 420 vector3d.intersections2: (-0.0035, -0.791926, 0.610589)\n    test 421 vector3d.intersections2: 0.0312613\n    test 422 vector3d.intersections2: (-0.021973, -0.766467, 0.0)\n    test 423 vector3d.intersections2: (0.027459, -0.797488, 0.0)\n\n    test 424 xyz2rtp: 37.417, 36.699, 63.435\n    test 425 xyz2rtp: <class 'pygeodesy.cartesianBase.RadiusThetaPhi3Tuple'>\n    test 426 rtp2xyz: 10.0, 20.0, 30.0\n    test 427 rtp2xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 428 toCartesian: Cartesian(10.0, 20.0, 30.0)\n    test 429 toRtp: Test(r=37.416574, theta=36.699225, phi=63.434949)\n\n    test 430 destinationXyz: Tuple(x=9.553253, y=19.106506, z=32.000521, lat=89.971452, lon=63.434949, height=-6356720.308402, C=1, M=None, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 431 destinationXyz: Cartesian(9.553, 19.107, 32.001)\n\n    test 432 c.toEnu: [-17553188.505, -3108016.462, 7452592.104]\n    test 433 e.toEnu: [-17553188.505, -3108016.462, 7452592.104]\n\n    testCartesian(pygeodesy.ellipsoidalGeodSolve, 25.08.28)\n    test 434 Cartesian0: [3980581, 97, 4966825]\n    test 435 Cartesian4: [3980581.0, 97.0, 4966825.0]\n    test 436 isEllipsoidal: True\n    test 437 isSpherical: False\n    test 438 copy(<class 'type'>): (<class 'pygeodesy.ellipsoidalGeodSolve.Cartesian'>, True)\n    test 439 Cartesian.copy(): (<class 'pygeodesy.ellipsoidalGeodSolve.Cartesian'>, True)\n    test 440 convertDatum: [3980581.0, 97.0, 4966825.0]\n    test 441 __matmul__: [3980580.124, 107.691, 4966819.407]\n    test 442 __matmul__: [3980580.124, 107.691, 4966819.407]\n    test 443 __matmul__: [3980580.998, 97.0, 4966824.998]\n    test 444 height: 0.242887\n    test 445 height4: (3980580.8, 97.0, 4966824.8, 0.2)\n    test 446 height4: [3980580.8, 97.0, 4966824.8]\n    test 447 height3: (3980581.0, 97.0, 4966825.0)\n    test 448 Vector4Tuple: 0.622817765, 1.51770114e-05, 0.782366942, 0.242886808\n    test 449 LatLon: 50.0379°N, 008.5622°E, +0.00m  FAILED, KNOWN, expected 50.0379°N, 008.5622°E\n    test 450 LatLon: 51.47°N, 000.4543°E\n    test 451 LatLon: 40.633365°N, 073.783328°W\n    test 452 LatLon: 33.95°N, 118.4°W, +0.00m  FAILED, KNOWN, expected 33.95°N, 118.4°W\n    test 453 LatLon: 41.32°S, 174.81°E\n    test 454 LatLon: 40.96°N, 005.5°E\n    test 455 LatLon: 40.1°N, 116.6°E\n    test 456 LatLon: 37.6°N, 122.4°W\n    test 457 copy: True\n    test 458 __eq__: True\n    test 459 __ne__: False\n    test 460 Cartesian: <class 'pygeodesy.ellipsoidalGeodSolve.Cartesian'>\n    test 461 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 462 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 463 latlonheightdatum: <class 'pygeodesy.namedTuples.LatLon4Tuple'>\n    test 464 height4: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 465 isequalTo: <class 'bool'>\n    test 466 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 467 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 468 philamheightdatum: <class 'pygeodesy.namedTuples.PhiLam4Tuple'>\n    test 469 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 470 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 471 toEcef: <class 'pygeodesy.ecef.Ecef9Tuple'>\n    test 472 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 473 toLatLon: <class 'pygeodesy.ellipsoidalGeodSolve.LatLon'>\n    test 474 toLLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 475 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 476 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 477 toNvector: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 478 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 479 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 480 xyz3: <class 'tuple'>\n    test 481 Cartesian: <class 'pygeodesy.cartesianBase.CartesianBase'>\n    test 482 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 483 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 484 latlonheightdatum: <class 'pygeodesy.namedTuples.LatLon4Tuple'>\n    test 485 height4: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 486 isequalTo: <class 'bool'>\n    test 487 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 488 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 489 philamheightdatum: <class 'pygeodesy.namedTuples.PhiLam4Tuple'>\n    test 490 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 491 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 492 toEcef: <class 'pygeodesy.ecef.Ecef9Tuple'>\n    test 493 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 494 toLatLon: <class 'pygeodesy.ecef.Ecef9Tuple'>\n    test 495 toLLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 496 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 497 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 498 toNvector: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 499 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 500 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 501 xyz3: <class 'tuple'>\n    test 502 ellipsoidalGeodSolve.Cartesian.intersections2: 89.998941°N, 090.234036°W\n    test 503 ellipsoidalGeodSolve.Cartesian.intersections2: 89.99892°N, 090.95367°W\n    test 504 ellipsoidalGeodSolve.Cartesian.intersections2: [-0.0035, -0.791926, 0.610589]\n    test 505 ellipsoidalGeodSolve.Cartesian.intersections2: 89.998941°N, 090.253237°W\n    test 506 ellipsoidalGeodSolve.Cartesian.intersections2: 0.0312613\n    test 507 vector3d.intersections2: (-0.0035, -0.791926, 0.610589)\n    test 508 vector3d.intersections2: 0.0312613\n    test 509 vector3d.intersections2: (-0.021973, -0.766467, 0.0)\n    test 510 vector3d.intersections2: (0.027459, -0.797488, 0.0)\n\n    test 511 xyz2rtp: 37.417, 36.699, 63.435\n    test 512 xyz2rtp: <class 'pygeodesy.cartesianBase.RadiusThetaPhi3Tuple'>\n    test 513 rtp2xyz: 10.0, 20.0, 30.0\n    test 514 rtp2xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 515 toCartesian: Cartesian(10.0, 20.0, 30.0)\n    test 516 toRtp: Test(r=37.416574, theta=36.699225, phi=63.434949)\n\n    test 517 destinationXyz: Tuple(x=9.553253, y=19.106506, z=32.000521, lat=89.971452, lon=63.434949, height=-6356720.308402, C=1, M=None, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 518 destinationXyz: Cartesian(9.553, 19.107, 32.001)\n\n    test 519 c.toEnu: [-17553188.505, -3108016.462, 7452592.104]\n    test 520 e.toEnu: [-17553188.505, -3108016.462, 7452592.104]\n\n    testCartesian(pygeodesy.ellipsoidalExact, 25.08.28)\n    test 521 Cartesian0: [3980581, 97, 4966825]\n    test 522 Cartesian4: [3980581.0, 97.0, 4966825.0]\n    test 523 isEllipsoidal: True\n    test 524 isSpherical: False\n    test 525 copy(<class 'type'>): (<class 'pygeodesy.ellipsoidalExact.Cartesian'>, True)\n    test 526 Cartesian.copy(): (<class 'pygeodesy.ellipsoidalExact.Cartesian'>, True)\n    test 527 convertDatum: [3980581.0, 97.0, 4966825.0]\n    test 528 __matmul__: [3980580.124, 107.691, 4966819.407]\n    test 529 __matmul__: [3980580.124, 107.691, 4966819.407]\n    test 530 __matmul__: [3980580.998, 97.0, 4966824.998]\n    test 531 height: 0.242887\n    test 532 height4: (3980580.8, 97.0, 4966824.8, 0.2)\n    test 533 height4: [3980580.8, 97.0, 4966824.8]\n    test 534 height3: (3980581.0, 97.0, 4966825.0)\n    test 535 Vector4Tuple: 0.622817765, 1.51770114e-05, 0.782366942, 0.242886808\n    test 536 LatLon: 50.0379°N, 008.5622°E, +0.00m  FAILED, KNOWN, expected 50.0379°N, 008.5622°E\n    test 537 LatLon: 51.47°N, 000.4543°E\n    test 538 LatLon: 40.633365°N, 073.783328°W\n    test 539 LatLon: 33.95°N, 118.4°W, +0.00m  FAILED, KNOWN, expected 33.95°N, 118.4°W\n    test 540 LatLon: 41.32°S, 174.81°E\n    test 541 LatLon: 40.96°N, 005.5°E\n    test 542 LatLon: 40.1°N, 116.6°E\n    test 543 LatLon: 37.6°N, 122.4°W\n    test 544 copy: True\n    test 545 __eq__: True\n    test 546 __ne__: False\n    test 547 Cartesian: <class 'pygeodesy.ellipsoidalExact.Cartesian'>\n    test 548 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 549 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 550 latlonheightdatum: <class 'pygeodesy.namedTuples.LatLon4Tuple'>\n    test 551 height4: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 552 isequalTo: <class 'bool'>\n    test 553 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 554 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 555 philamheightdatum: <class 'pygeodesy.namedTuples.PhiLam4Tuple'>\n    test 556 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 557 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 558 toEcef: <class 'pygeodesy.ecef.Ecef9Tuple'>\n    test 559 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 560 toLatLon: <class 'pygeodesy.ellipsoidalExact.LatLon'>\n    test 561 toLLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 562 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 563 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 564 toNvector: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 565 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 566 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 567 xyz3: <class 'tuple'>\n    test 568 Cartesian: <class 'pygeodesy.cartesianBase.CartesianBase'>\n    test 569 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 570 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 571 latlonheightdatum: <class 'pygeodesy.namedTuples.LatLon4Tuple'>\n    test 572 height4: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 573 isequalTo: <class 'bool'>\n    test 574 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 575 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 576 philamheightdatum: <class 'pygeodesy.namedTuples.PhiLam4Tuple'>\n    test 577 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 578 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 579 toEcef: <class 'pygeodesy.ecef.Ecef9Tuple'>\n    test 580 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 581 toLatLon: <class 'pygeodesy.ecef.Ecef9Tuple'>\n    test 582 toLLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 583 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 584 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 585 toNvector: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 586 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 587 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 588 xyz3: <class 'tuple'>\n    test 589 ellipsoidalExact.Cartesian.intersections2: 89.998941°N, 090.234036°W\n    test 590 ellipsoidalExact.Cartesian.intersections2: 89.99892°N, 090.95367°W\n    test 591 ellipsoidalExact.Cartesian.intersections2: [-0.0035, -0.791926, 0.610589]\n    test 592 ellipsoidalExact.Cartesian.intersections2: 89.998941°N, 090.253237°W\n    test 593 ellipsoidalExact.Cartesian.intersections2: 0.0312613\n    test 594 vector3d.intersections2: (-0.0035, -0.791926, 0.610589)\n    test 595 vector3d.intersections2: 0.0312613\n    test 596 vector3d.intersections2: (-0.021973, -0.766467, 0.0)\n    test 597 vector3d.intersections2: (0.027459, -0.797488, 0.0)\n\n    test 598 xyz2rtp: 37.417, 36.699, 63.435\n    test 599 xyz2rtp: <class 'pygeodesy.cartesianBase.RadiusThetaPhi3Tuple'>\n    test 600 rtp2xyz: 10.0, 20.0, 30.0\n    test 601 rtp2xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 602 toCartesian: Cartesian(10.0, 20.0, 30.0)\n    test 603 toRtp: Test(r=37.416574, theta=36.699225, phi=63.434949)\n\n    test 604 destinationXyz: Tuple(x=9.553253, y=19.106506, z=32.000521, lat=89.971452, lon=63.434949, height=-6356720.308402, C=1, M=None, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 605 destinationXyz: Cartesian(9.553, 19.107, 32.001)\n\n    test 606 c.toEnu: [-17553188.505, -3108016.462, 7452592.104]\n    test 607 e.toEnu: [-17553188.505, -3108016.462, 7452592.104]\n\n    35 of 607 testCartesian.py tests (5.8%) FAILED, incl. 20 KNOWN plus 15 DeprecationWarnings (pygeodesy 26.3.26 Python 3.13.12 64bit arm64 coverage 7.10.7 geographiclib 2.1 numpy 2.3.3 scipy 1.16.2 Math 2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 macOS 26.3.1 isLazy 1 -W  default) 113.509 ms\nrunning /Library/Framewo....n3.13 -W default ~/PyGeodesy/test/testClasses.py\n\n    testing testClasses.py 24.07.29 isLazy=1\n\n    testCartesianAttrs(24.07.29)\n    test 1 angleTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 2 apply() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 3 attrs() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 4 bearing() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 5 bools() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 6 cassini() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 7 circin6() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 8 circum3() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 9 circum4_() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 10 classname Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 11 classnaming _NamedProperty: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 12 classof() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 13 cmp() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 14 collins() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 15 collins5() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 16 convertDatum() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 17 convertRefFrame() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 18 copy() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 19 cross() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 20 crosserrors _NamedProperty: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 21 datum _NamedProperty: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 22 destinationXyz() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 23 dividedBy() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 24 dividedBy_() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 25 dot() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 26 dup() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 27 Ecef property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 28 Ecef property_ROver: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 29 ellipsoidalCartesian property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 30 epoch _NamedProperty: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 31 equals() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 32 equirectangular() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 33 euclid Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 34 fabs() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 35 floats() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 36 floorDividedBy() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 37 floorDividedBy_() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 38 hartzell() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 39 height Property: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 40 height3() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 41 height4() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 42 homogeneous property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 43 intermediateTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 44 intersections2() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 45 ints() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 46 iscolinearWith() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 47 isconjugateTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 48 isEllipsoidal Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 49 isequalTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 50 isSpherical Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 51 iteration property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 52 latlon Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 53 latlonheight Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 54 latlonheightdatum Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 55 length Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 56 length2 Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 57 meeus2() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 58 methodname() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 59 minus() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 60 minus_() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 61 name _NamedProperty: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 62 named Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 63 named2 Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 64 named3 Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 65 named4 Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 66 nearestOn() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 67 nearestOn6() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 68 negate() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 69 others() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 70 parse() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 71 philam Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 72 philamheight Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 73 philamheightdatum Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 74 pierlot() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 75 pierlotx() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 76 plus() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 77 plus_() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 78 pow() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 79 radii11() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 80 reframe _NamedProperty: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 81 rename() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 82 renamed() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 83 Roc2() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 84 rotate() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 85 rotateAround() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 86 sizeof property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 87 soddy4() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 88 sphericalCartesian property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 89 sum() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 90 tienstra() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 91 tienstra7() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 92 times() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 93 times_() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 94 to2ab() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 95 to2ll() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 96 to3llh() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 97 to3xyz() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 98 toAer() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 99 toCartesian() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 100 toDatum() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 101 toEcef() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 102 toEnu() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 103 toLatLon() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 104 toLocal() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 105 toLtp() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 106 toNed() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 107 toNvector() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 108 toRefFrame() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 109 toRepr() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 110 toRtp() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 111 toStr() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 112 toStr2() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 113 toTransform() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 114 toTransforms_() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 115 toVector() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 116 toXyz() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 117 trilaterate2d2() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 118 trilaterate3d2() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 119 typename property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 120 unit() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 121 x Property: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 122 x2y2z2 Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 123 x2y2z23 property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 124 xyz Property: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 125 xyz3 property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 126 y Property: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 127 z Property: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n\n    testCartesianMro(24.07.29)\n    test 128 pygeodesy.sphericalNvector: pygeodesy.sphericalNvector.Cartesian, pygeodesy.sphericalBase.CartesianSphericalBase, pygeodesy.cartesianBase.CartesianBase, pygeodesy.vector3d.Vector3d, pygeodesy.vector3dBase.Vector3dBase, pygeodesy.named._NamedBase, pygeodesy.ecefLocals._EcefLocal, pygeodesy.named._Named\n    test 129 pygeodesy.sphericalTrigonometry: pygeodesy.sphericalTrigonometry.Cartesian, pygeodesy.sphericalBase.CartesianSphericalBase, pygeodesy.cartesianBase.CartesianBase, pygeodesy.vector3d.Vector3d, pygeodesy.vector3dBase.Vector3dBase, pygeodesy.named._NamedBase, pygeodesy.ecefLocals._EcefLocal, pygeodesy.named._Named\n    test 130 pygeodesy.ellipsoidalNvector: pygeodesy.ellipsoidalNvector.Cartesian, pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase, pygeodesy.cartesianBase.CartesianBase, pygeodesy.vector3d.Vector3d, pygeodesy.vector3dBase.Vector3dBase, pygeodesy.named._NamedBase, pygeodesy.ecefLocals._EcefLocal, pygeodesy.named._Named\n    test 131 pygeodesy.ellipsoidalVincenty: pygeodesy.ellipsoidalVincenty.Cartesian, pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase, pygeodesy.cartesianBase.CartesianBase, pygeodesy.vector3d.Vector3d, pygeodesy.vector3dBase.Vector3dBase, pygeodesy.named._NamedBase, pygeodesy.ecefLocals._EcefLocal, pygeodesy.named._Named\n    test 132 pygeodesy.ellipsoidalKarney: pygeodesy.ellipsoidalKarney.Cartesian, pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase, pygeodesy.cartesianBase.CartesianBase, pygeodesy.vector3d.Vector3d, pygeodesy.vector3dBase.Vector3dBase, pygeodesy.named._NamedBase, pygeodesy.ecefLocals._EcefLocal, pygeodesy.named._Named\n    test 133 pygeodesy.ellipsoidalExact: pygeodesy.ellipsoidalExact.Cartesian, pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase, pygeodesy.cartesianBase.CartesianBase, pygeodesy.vector3d.Vector3d, pygeodesy.vector3dBase.Vector3dBase, pygeodesy.named._NamedBase, pygeodesy.ecefLocals._EcefLocal, pygeodesy.named._Named\n    test 134 pygeodesy.ellipsoidalGeodSolve: pygeodesy.ellipsoidalGeodSolve.Cartesian, pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase, pygeodesy.cartesianBase.CartesianBase, pygeodesy.vector3d.Vector3d, pygeodesy.vector3dBase.Vector3dBase, pygeodesy.named._NamedBase, pygeodesy.ecefLocals._EcefLocal, pygeodesy.named._Named\n\n    testLatLonAttrs(24.07.29)\n    test 135 alongTrackDistanceTo() method: pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 136 antipode() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 137 attrs() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 138 bearingTo() method: pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 139 bearingTo2() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 140 bounds() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 141 boundsOf() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 142 chordTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 143 circin6() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 144 circum3() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 145 circum4_() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 146 classname Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 147 classnaming _NamedProperty: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 148 classof() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 149 clipid property: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 150 compassAngle() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 151 compassAngleTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 152 convergence _Deprecated_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 153 convertDatum() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 154 convertRefFrame() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 155 copy() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 156 cosineAndoyerLambertTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 157 cosineForsytheAndoyerLambertTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 158 cosineLawTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 159 crossingParallels() method: pygeodesy.sphericalTrigonometry\n    test 160 crossTrackDistanceTo() method: pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 161 datum _NamedProperty: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 162 deltaTo() method: pygeodesy.ellipsoidalNvector\n    test 163 destination() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 164 destination2() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalVincenty\n    test 165 destinationNed() method: pygeodesy.ellipsoidalNvector\n    test 166 destinationXyz() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 167 distanceTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 168 distanceTo2() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 169 distanceTo3() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalVincenty\n    test 170 dup() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 171 Ecef property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 172 Ecef property_ROver: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 173 elevation2() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 174 ellipsoid() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 175 ellipsoidalLatLon property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 176 ellipsoids() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 177 epoch _NamedProperty: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 178 epsilon _NamedProperty: pygeodesy.ellipsoidalVincenty\n    test 179 equals() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 180 equals3() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 181 Equidistant Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 182 equirectangularTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 183 euclideanTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 184 finalBearingOn() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalVincenty\n    test 185 finalBearingTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 186 flatLocalTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 187 flatPolarTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 188 gamma property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 189 geodesic property_RO: pygeodesy.ellipsoidalVincenty\n    test 190 geodesic Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney\n    test 191 geodesicx Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve\n    test 192 geoidHeight2() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 193 greatCircle() method: pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 194 greatCircleTo() method: pygeodesy.sphericalNvector\n    test 195 hartzell() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 196 haversineTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 197 height Property: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 198 height4() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 199 heightStr() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 200 hubenyTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 201 initialBearingTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 202 intermediateChordTo() method: pygeodesy.sphericalNvector\n    test 203 intermediateTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 204 intersecant2() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 205 intersection() method: pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 206 intersection2() method: pygeodesy.sphericalNvector\n    test 207 intersection3() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 208 intersections2() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 209 isantipode() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 210 isantipodeTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 211 isEllipsoidal Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 212 isEnclosedBy() method: pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 213 isenclosedBy() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 214 isequalTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 215 isequalTo3() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 216 isnormal Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 217 isSpherical Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 218 isWithin() method: pygeodesy.sphericalNvector\n    test 219 iswithin() method: pygeodesy.sphericalNvector\n    test 220 iteration property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 221 iterations _NamedProperty: pygeodesy.ellipsoidalVincenty\n    test 222 lam Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 223 lat Property: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 224 latlon Property: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 225 latlon2() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 226 latlon2round() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 227 latlon_() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 228 latlonheight Property: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 229 lon Property: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 230 maxLat() method: pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 231 methodname() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 232 midpointTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 233 minLat() method: pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 234 name _NamedProperty: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 235 named Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 236 named2 Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 237 named3 Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 238 named4 Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 239 napieradius _NamedProperty: pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 240 nearestOn() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 241 nearestOn2() method: pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 242 nearestOn3() method: pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 243 nearestOn6() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 244 nearestOn8() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalVincenty\n    test 245 nearestTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 246 normal() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 247 others() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 248 parse() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 249 phi Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 250 philam Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 251 philam2() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 252 philamheight Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 253 plumbTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalVincenty\n    test 254 points() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 255 points2() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 256 PointsIter() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 257 radii11() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 258 reframe _NamedProperty: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 259 rename() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 260 renamed() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 261 rhumbAzimuthTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 262 rhumbBearingTo() method: pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 263 rhumbDestination() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 264 rhumbDistanceTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 265 rhumbIntersecant2() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 266 rhumbLine() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 267 rhumbMidpointTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 268 scale Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 269 sizeof property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 270 sphericalLatLon property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 271 thomasTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 272 to2ab() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 273 to3llh() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 274 to3xyz() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 275 toAer() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 276 toCartesian() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 277 toCss() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 278 toDatum() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 279 toEcef() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 280 toEnu() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 281 toEtm() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 282 toLcc() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 283 toLocal() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 284 toLtp() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 285 toMgrs() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 286 toNed() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 287 toNormal() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 288 toNvector() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 289 toOsgr() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 290 toRefFrame() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 291 toRepr() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 292 toStr() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 293 toStr2() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 294 toTransform() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 295 toUps() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 296 toUtm() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 297 toUtmUps() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 298 toVector() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 299 toVector3d() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 300 toWm() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 301 toXyz() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 302 triangle7() method: pygeodesy.sphericalTrigonometry\n    test 303 triangulate() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 304 trilaterate() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 305 trilaterate5() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 306 typename property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 307 vincentysTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 308 xyz property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 309 xyz3 property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 310 xyzh Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalGeodSolve, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n\n    testLatLonMro(24.07.29)\n    test 311 pygeodesy.sphericalNvector: pygeodesy.sphericalNvector.LatLon, pygeodesy.nvectorBase.LatLonNvectorBase, pygeodesy.sphericalBase.LatLonSphericalBase, pygeodesy.latlonBase.LatLonBase, pygeodesy.named._NamedBase, pygeodesy.ecefLocals._EcefLocal, pygeodesy.named._Named\n    test 312 pygeodesy.sphericalTrigonometry: pygeodesy.sphericalTrigonometry.LatLon, pygeodesy.sphericalBase.LatLonSphericalBase, pygeodesy.latlonBase.LatLonBase, pygeodesy.named._NamedBase, pygeodesy.ecefLocals._EcefLocal, pygeodesy.named._Named\n    test 313 pygeodesy.ellipsoidalNvector: pygeodesy.ellipsoidalNvector.LatLon, pygeodesy.nvectorBase.LatLonNvectorBase, pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase, pygeodesy.latlonBase.LatLonBase, pygeodesy.named._NamedBase, pygeodesy.ecefLocals._EcefLocal, pygeodesy.named._Named\n    test 314 pygeodesy.ellipsoidalVincenty: pygeodesy.ellipsoidalVincenty.LatLon, pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI, pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase, pygeodesy.latlonBase.LatLonBase, pygeodesy.named._NamedBase, pygeodesy.ecefLocals._EcefLocal, pygeodesy.named._Named\n    test 315 pygeodesy.ellipsoidalKarney: pygeodesy.ellipsoidalKarney.LatLon, pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI, pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase, pygeodesy.latlonBase.LatLonBase, pygeodesy.named._NamedBase, pygeodesy.ecefLocals._EcefLocal, pygeodesy.named._Named\n    test 316 pygeodesy.ellipsoidalExact: pygeodesy.ellipsoidalExact.LatLon, pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI, pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase, pygeodesy.latlonBase.LatLonBase, pygeodesy.named._NamedBase, pygeodesy.ecefLocals._EcefLocal, pygeodesy.named._Named\n    test 317 pygeodesy.ellipsoidalGeodSolve: pygeodesy.ellipsoidalGeodSolve.LatLon, pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI, pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase, pygeodesy.latlonBase.LatLonBase, pygeodesy.named._NamedBase, pygeodesy.ecefLocals._EcefLocal, pygeodesy.named._Named\n\n    testNvectorAttrs(24.07.29)\n    test 318 angleTo() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 319 apply() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 320 attrs() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 321 bearing() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 322 bools() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 323 circin6() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 324 circum3() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 325 circum4_() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 326 classname Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 327 classnaming _NamedProperty: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 328 classof() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 329 cmp() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 330 copy() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 331 cross() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 332 crosserrors _NamedProperty: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 333 datum Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 334 dividedBy() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 335 dividedBy_() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 336 dot() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 337 dup() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 338 Ecef property_ROnce: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 339 ellipsoidalNvector property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 340 equals() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 341 equirectangular() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 342 euclid Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 343 fabs() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 344 floats() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 345 floorDividedBy() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 346 floorDividedBy_() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 347 greatCircle() method: pygeodesy.sphericalNvector\n    test 348 H _NamedProperty: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 349 h _NamedProperty: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 350 homogeneous property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 351 hStr() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 352 intermediateTo() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 353 ints() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 354 iscolinearWith() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 355 isconjugateTo() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 356 isEllipsoidal Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 357 isequalTo() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 358 isSpherical Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 359 iteration property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 360 lam Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 361 lat Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 362 latlon Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 363 latlonheight Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 364 latlonheightdatum Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 365 length Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 366 length2 Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 367 lon Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 368 meeus2() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 369 methodname() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 370 minus() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 371 minus_() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 372 name _NamedProperty: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 373 named Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 374 named2 Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 375 named3 Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 376 named4 Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 377 nearestOn() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 378 nearestOn6() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 379 negate() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 380 others() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 381 parse() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 382 phi Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 383 philam Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 384 philamheight Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 385 philamheightdatum Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 386 plus() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 387 plus_() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 388 pow() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 389 radii11() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 390 rename() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 391 renamed() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 392 rotate() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 393 rotateAround() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 394 sizeof property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 395 soddy4() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 396 sphericalNvector property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 397 sum() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 398 times() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 399 times_() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 400 to2ab() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 401 to2ll() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 402 to3abh() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 403 to3llh() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 404 to3xyz() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 405 to4xyzh() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 406 toCartesian() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 407 toLatLon() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 408 toRepr() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 409 toStr() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 410 toStr2() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 411 toVector3d() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 412 trilaterate2d2() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 413 trilaterate3d2() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 414 typename property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 415 unit() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 416 x Property: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 417 x2y2z2 Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 418 x2y2z23 property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 419 xyz Property: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 420 xyz3 property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 421 xyzh Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 422 y Property: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 423 z Property: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n\n    testNvectorMro(24.07.29)\n    test 424 pygeodesy.sphericalNvector: pygeodesy.sphericalNvector.Nvector, pygeodesy.nvectorBase.NvectorBase, pygeodesy.vector3d.Vector3d, pygeodesy.vector3dBase.Vector3dBase, pygeodesy.named._NamedBase, pygeodesy.named._Named\n    test 425 pygeodesy.ellipsoidalNvector: pygeodesy.ellipsoidalNvector.Nvector, pygeodesy.nvectorBase.NvectorBase, pygeodesy.vector3d.Vector3d, pygeodesy.vector3dBase.Vector3dBase, pygeodesy.named._NamedBase, pygeodesy.named._Named\n\n    testVector3dAttrs(24.07.29)\n    test 426 angleTo() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 427 apply() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 428 attrs() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 429 bearing() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 430 bools() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 431 circin6() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 432 circum3() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 433 circum4_() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 434 classname Property_RO: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 435 classnaming _NamedProperty: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 436 classof() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 437 cmp() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 438 copy() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 439 cross() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 440 crosserrors _NamedProperty: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 441 dividedBy() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 442 dividedBy_() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 443 dot() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 444 dup() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 445 equals() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 446 equirectangular() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 447 euclid Property_RO: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 448 fabs() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 449 floats() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 450 floorDividedBy() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 451 floorDividedBy_() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 452 homogeneous property_RO: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 453 intermediateTo() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 454 ints() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 455 iscolinearWith() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 456 isconjugateTo() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 457 isequalTo() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 458 iteration property_RO: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 459 length Property_RO: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 460 length2 Property_RO: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 461 meeus2() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 462 methodname() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 463 minus() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 464 minus_() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 465 name _NamedProperty: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 466 named Property_RO: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 467 named2 Property_RO: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 468 named3 Property_RO: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 469 named4 Property_RO: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 470 nearestOn() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 471 nearestOn6() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 472 negate() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 473 others() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 474 parse() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 475 plus() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 476 plus_() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 477 pow() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 478 radii11() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 479 rename() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 480 renamed() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 481 rotate() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 482 rotateAround() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 483 sizeof property_RO: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 484 soddy4() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 485 sum() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 486 times() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 487 times_() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 488 to3xyz() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 489 toCartesian() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 490 toRepr() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 491 toStr() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 492 toStr2() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 493 trilaterate2d2() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 494 trilaterate3d2() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 495 typename property_RO: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 496 unit() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 497 x Property: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 498 x2y2z2 Property_RO: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 499 x2y2z23 property_RO: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 500 xyz Property: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 501 xyz3 property_RO: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 502 y Property: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 503 z Property: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n\n    testVector3dMro(24.07.29)\n    test 504 pygeodesy.nvectorBase: pygeodesy.vector3d.Vector3d, pygeodesy.vector3dBase.Vector3dBase, pygeodesy.named._NamedBase, pygeodesy.named._Named\n    test 505 pygeodesy.vector3d: pygeodesy.vector3d.Vector3d, pygeodesy.vector3dBase.Vector3dBase, pygeodesy.named._NamedBase, pygeodesy.named._Named\n    test 506 pygeodesy.sphericalTrigonometry: pygeodesy.vector3d.Vector3d, pygeodesy.vector3dBase.Vector3dBase, pygeodesy.named._NamedBase, pygeodesy.named._Named\n\n    testCopyAttr(24.07.29)\n\n    all 506 testClasses.py tests passed (pygeodesy 26.3.26 Python 3.13.12 64bit arm64 coverage 7.10.7 geographiclib 2.1 numpy 2.3.3 scipy 1.16.2 Math 2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 macOS 26.3.1 isLazy 1 -W  default) 6.813 ms\nrunning /Library/Framewo....n3.13 -W default ~/PyGeodesy/test/testClipy.py\n\n    testing testClipy.py 23.03.27 isLazy=1\n\n    testing(pygeodesy.ellipsoidalNvector, 25.05.12)\n    test 1 clipCS4.p1: 07.5°N, 010.0°E\n    test 2 clipCS4.p2: 04.5°N, 000.0°E\n    test 3 clipCS4.i: 3\n    test 4 clipCS4.j: 0\n    test 5 clipCS4.p1: 05.0°N, 005.0°E\n    test 6 clipCS4.p2: 05.0°N, 005.0°E\n    test 7 clipCS4.i: 1\n    test 8 clipCS4.j: 2\n    test 9 clipLB6.p1: 07.5°N, 010.0°E\n    test 10 clipLB6.p2: 04.5°N, 000.0°E\n    test 11 clipLB6.i: 3\n    test 12 clipLB6.fi: 3.25\n    test 13 clipLB6.fi: 07.5°N, 010.0°E\n    test 14 clipLB6.fj: 3.75\n    test 15 clipLB6.fj: 04.5°N, 000.0°E\n    test 16 clipLB6.j: 0\n    test 17 clipLB6.fin: 4\n    test 18 clipLB6.p1: 05.0°N, 005.0°E\n    test 19 clipLB6.p2: 05.0°N, 005.0°E\n    test 20 clipLB6.i: 1\n    test 21 clipLB6.fi: 1.00\n    test 22 clipLB6.fi: 05.0°N, 005.0°E\n    test 23 clipLB6.fj: 2.00\n    test 24 clipLB6.fj: 05.0°N, 005.0°E\n    test 25 clipLB6.j: 2\n    test 26 clipLB6.fin: 4\n    test 27 clipCS4.p1: 60.0°N, 123.333333°E\n    test 28 clipCS4.p2: 62.857143°N, 130.0°E\n    test 29 clipCS4.i: 0\n    test 30 clipCS4.j: 1\n    test 31 clipLB6.p1: 60.0°N, 123.333333°E\n    test 32 clipLB6.p2: 62.857143°N, 130.0°E\n    test 33 clipLB6.i: 0\n    test 34 clipLB6.fi: 0.666667\n    test 35 clipLB6.fi: 60.0°N, 123.333333°E\n    test 36 clipLB6.fj: 0.714286\n    test 37 clipLB6.fj: 62.857143°N, 130.0°E\n    test 38 clipLB6.j: 1\n    test 39 clipLB6.fin: 0\n    test 40 clipCS4.p1: 17.5°N, 020.0°E\n    test 41 clipCS4.p2: 16.25°N, 015.0°E\n    test 42 clipCS4.i: 2\n    test 43 clipCS4.j: 0\n    test 44 clipLB6.p1: 17.5°N, 020.0°E\n    test 45 clipLB6.p2: 16.25°N, 015.0°E\n    test 46 clipLB6.i: 2\n    test 47 clipLB6.fi: 2.500\n    test 48 clipLB6.fi: 17.5°N, 020.0°E\n    test 49 clipLB6.fj: 2.750\n    test 50 clipLB6.fj: 16.25°N, 015.0°E\n    test 51 clipLB6.j: 0\n    test 52 clipLB6.fin: 3\n    test 53 clipSH1.len: 4\n    test 54 clipSH1.0: 20.0°N, 020.0°E\n    test 55 clipSH1.LL: True\n    test 56 clipSH1.1: 17.5°N, 020.0°E\n    test 57 clipSH1.LL: True\n    test 58 clipSH1.2: 16.25°N, 015.0°E\n    test 59 clipSH1.LL: True\n    test 60 clipSH1.3: 20.0°N, 015.0°E\n    test 61 clipSH1.LL: True\n    test 62 clipSH2.len: 5\n    test 63 clipSH2.0: 18.571°N, 024.286°E\n    test 64 clipSH2.LL: True\n    test 65 clipSH2.1: 16.667°N, 016.667°E\n    test 66 clipSH2.LL: True\n    test 67 clipSH2.2: 20.0°N, 015.0°E\n    test 68 clipSH2.LL: True\n    test 69 clipSH2.3: 25.0°N, 020.0°E\n    test 70 clipSH2.LL: True\n    test 71 clipSH2.4: 22.0°N, 026.0°E\n    test 72 clipSH2.LL: True\n    test 73 clipSH3.len: 2\n    test 74 clipSH3.0: 18.571°N, 024.286°E\n    test 75 clipSH3.LL: True\n    test 76 clipSH3.1: 16.667°N, 016.667°E\n    test 77 clipSH3.LL: True\n    test 78 clipSH3.edge.: True\n    test 79 clipSH3.len: 2\n    test 80 clipSH3.0: 16.667°N, 016.667°E\n    test 81 clipSH3.LL: True\n    test 82 clipSH3.1: 20.0°N, 015.0°E\n    test 83 clipSH3.LL: True\n    test 84 clipSH3.edge.: False\n    test 85 clipSH3.len: 2\n    test 86 clipSH3.0: 20.0°N, 015.0°E\n    test 87 clipSH3.LL: True\n    test 88 clipSH3.1: 25.0°N, 020.0°E\n    test 89 clipSH3.LL: True\n    test 90 clipSH3.edge.: True\n    test 91 clipSH3.len: 2\n    test 92 clipSH3.0: 25.0°N, 020.0°E\n    test 93 clipSH3.LL: True\n    test 94 clipSH3.1: 22.0°N, 026.0°E\n    test 95 clipSH3.LL: True\n    test 96 clipSH3.edge.: True\n    test 97 clipSH3.len: 2\n    test 98 clipSH3.0: 22.0°N, 026.0°E\n    test 99 clipSH3.LL: True\n    test 100 clipSH3.1: 18.571°N, 024.286°E\n    test 101 clipSH3.LL: True\n    test 102 clipSH3.edge.: False\n    test 103 clipSH2.reversed.len: 5\n    test 104 clipSH2.reversed.0: 18.571°N, 024.286°E\n    test 105 clipSH2.reversed.LL: True\n    test 106 clipSH2.reversed.1: 16.667°N, 016.667°E\n    test 107 clipSH2.reversed.LL: True\n    test 108 clipSH2.reversed.2: 20.0°N, 015.0°E\n    test 109 clipSH2.reversed.LL: True\n    test 110 clipSH2.reversed.3: 25.0°N, 020.0°E\n    test 111 clipSH2.reversed.LL: True\n    test 112 clipSH2.reversed.4: 22.0°N, 026.0°E\n    test 113 clipSH2.reversed.LL: True\n    test 114 clipSH3.reversed.len: 2\n    test 115 clipSH3.reversed.0: 18.571°N, 024.286°E\n    test 116 clipSH3.reversed.LL: True\n    test 117 clipSH3.reversed.1: 16.667°N, 016.667°E\n    test 118 clipSH3.reversed.LL: True\n    test 119 clipSH3.edge.reversed.: True\n    test 120 clipSH3.reversed.len: 2\n    test 121 clipSH3.reversed.0: 16.667°N, 016.667°E\n    test 122 clipSH3.reversed.LL: True\n    test 123 clipSH3.reversed.1: 20.0°N, 015.0°E\n    test 124 clipSH3.reversed.LL: True\n    test 125 clipSH3.edge.reversed.: False\n    test 126 clipSH3.reversed.len: 2\n    test 127 clipSH3.reversed.0: 20.0°N, 015.0°E\n    test 128 clipSH3.reversed.LL: True\n    test 129 clipSH3.reversed.1: 25.0°N, 020.0°E\n    test 130 clipSH3.reversed.LL: True\n    test 131 clipSH3.edge.reversed.: True\n    test 132 clipSH3.reversed.len: 2\n    test 133 clipSH3.reversed.0: 25.0°N, 020.0°E\n    test 134 clipSH3.reversed.LL: True\n    test 135 clipSH3.reversed.1: 22.0°N, 026.0°E\n    test 136 clipSH3.reversed.LL: True\n    test 137 clipSH3.edge.reversed.: True\n    test 138 clipSH3.reversed.len: 2\n    test 139 clipSH3.reversed.0: 22.0°N, 026.0°E\n    test 140 clipSH3.reversed.LL: True\n    test 141 clipSH3.reversed.1: 18.571°N, 024.286°E\n    test 142 clipSH3.reversed.LL: True\n    test 143 clipSH3.edge.reversed.: False\n    test 144 clipSH.allout: ()\n    test 145 clipSH3.allout: ()\n    test 146 clipSH.allout.reversed: ()\n    test 147 clipSH3.allout.reversed: ()\n    test 148 clipSH.allin.len: 4\n    test 149 clipSH.allin.0: 20.0°N, 030.0°E\n    test 150 clipSH.allin.LL: True\n    test 151 clipSH.allin.1: 15.0°N, 010.0°E\n    test 152 clipSH.allin.LL: True\n    test 153 clipSH.allin.2: 25.0°N, 020.0°E\n    test 154 clipSH.allin.LL: True\n    test 155 clipSH.allin.3: 20.0°N, 030.0°E\n    test 156 clipSH.allin.LL: True\n    test 157 clipSH3.allin.len: 2\n    test 158 clipSH3.allin.0: 20.0°N, 030.0°E\n    test 159 clipSH3.allin.LL: True\n    test 160 clipSH3.allin.1: 15.0°N, 010.0°E\n    test 161 clipSH3.allin.LL: True\n    test 162 clipSH3.edge.: True\n    test 163 clipSH3.allin.len: 2\n    test 164 clipSH3.allin.0: 15.0°N, 010.0°E\n    test 165 clipSH3.allin.LL: True\n    test 166 clipSH3.allin.1: 25.0°N, 020.0°E\n    test 167 clipSH3.allin.LL: True\n    test 168 clipSH3.edge.: True\n    test 169 clipSH.allin.reversed.len: 4\n    test 170 clipSH.allin.reversed.0: 20.0°N, 030.0°E\n    test 171 clipSH.allin.reversed.LL: True\n    test 172 clipSH.allin.reversed.1: 15.0°N, 010.0°E\n    test 173 clipSH.allin.reversed.LL: True\n    test 174 clipSH.allin.reversed.2: 25.0°N, 020.0°E\n    test 175 clipSH.allin.reversed.LL: True\n    test 176 clipSH.allin.reversed.3: 20.0°N, 030.0°E\n    test 177 clipSH.allin.reversed.LL: True\n    test 178 clipSH3.allin.reversed.len: 2\n    test 179 clipSH3.allin.reversed.0: 20.0°N, 030.0°E\n    test 180 clipSH3.allin.reversed.LL: True\n    test 181 clipSH3.allin.reversed.1: 15.0°N, 010.0°E\n    test 182 clipSH3.allin.reversed.LL: True\n    test 183 clipSH3.edge.reversed.: True\n    test 184 clipSH3.allin.reversed.len: 2\n    test 185 clipSH3.allin.reversed.0: 15.0°N, 010.0°E\n    test 186 clipSH3.allin.reversed.LL: True\n    test 187 clipSH3.allin.reversed.1: 25.0°N, 020.0°E\n    test 188 clipSH3.allin.reversed.LL: True\n    test 189 clipSH3.edge.reversed.: True\n    test 190 clipSH.warped: clipSH clip region ((LatLon(10°00′00.0″N, 010°00′00.0″E), LatLon(20°00′00.0″N, 020°00′00.0″E), LatLon(10°00′00.0″N, 020°00′00.0″E), LatLon(20°00′00.0″N, 010°00′00.0″E))): not convex\n    test 191 clipSH3.warped: clipSH3 clip region ((LatLon(10°00′00.0″N, 010°00′00.0″E), LatLon(20°00′00.0″N, 020°00′00.0″E), LatLon(10°00′00.0″N, 020°00′00.0″E), LatLon(20°00′00.0″N, 010°00′00.0″E))): not convex\n    test 192 clipSH.warpedreversed.: clipSH clip region ((LatLon(20°00′00.0″N, 010°00′00.0″E), LatLon(10°00′00.0″N, 020°00′00.0″E), LatLon(20°00′00.0″N, 020°00′00.0″E), LatLon(10°00′00.0″N, 010°00′00.0″E))): not convex\n    test 193 clipSH3.warpedreversed.: clipSH3 clip region ((LatLon(20°00′00.0″N, 010°00′00.0″E), LatLon(10°00′00.0″N, 020°00′00.0″E), LatLon(20°00′00.0″N, 020°00′00.0″E), LatLon(10°00′00.0″N, 010°00′00.0″E))): not convex\n    test 194 boundsOf: (10.0, 10.0, 20.0, 20.0)\n    test 195 boundsOf: (15.0, 10.0, 25.0, 30.0)\n    test 196 enclosures: (5.0, 0.0, -5.0, -10.0)\n    test 197 overlap: (15.0, 10.0, 20.0, 20.0)\n    test 198 clipSH4: 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 0.0\n    test 199 clipSH5: 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 0.0\n    test 200 clipSH6: 1.0, 0.5, 2.0, 1.0, 2.0, 0.5\n    test 201 clipSH7: -0.2, 2.0, 0.2, 2.0, 0.5, 0.5, 2.0, 0.2, 2.0, -0.2, 0.5, -0.5, 0.2, -2.0, -0.2, -2.0, -0.5, -0.5, -2.0, -0.2, -2.0, 0.2, -0.5, 0.5\n    test 202 clipSH8: -0.33, 1.33, 0.0, 2.0, 0.33, 1.33, 0.5, 0.5, 0.78, 0.44, 1.18, -0.36, 0.5, -0.5, 0.2, -2.0, -0.2, -2.0, -0.5, -0.5, -1.18, -0.36, -0.78, 0.44, -0.5, 0.5\n    test 203 clipSH9: None\n    test 204 clipSH10: None\n    test 205 clipSH11: None\n    test 206 clipSH12: None\n\n    test 207 clipGH4: (ClipGH4Tuple(lat=5.0, lon=3.571429, height=1.714286, clipid=0), ClipGH4Tuple(lat=7.0, lon=5.0, height=2.0, clipid=0), ClipGH4Tuple(lat=5.0, lon=6.428571, height=2.285714, clipid=0), ClipGH4Tuple(lat=3.0, lon=5.0, height=2.0, clipid=0))\n\n    test 208 clipFHP4: (ClipFHP4Tuple(lat=7.0, lon=5.0, height=2.0, clipid=0), ClipFHP4Tuple(lat=5.0, lon=6.428571, height=2.285714, clipid=0), ClipFHP4Tuple(lat=3.0, lon=5.0, height=2.0, clipid=0), ClipFHP4Tuple(lat=5.0, lon=3.571429, height=1.714286, clipid=0))\n\n    test 209 Fig 8: (ClipFHP4Tuple(lat=4.0, lon=12.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=-1.0, lon=12.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=3.0, lon=8.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=5.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=3.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=2.0, lon=1.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=6.0, lon=3.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=6.0, lon=11.0, height=0.0, clipid=0))\n    test 210 Fig 14: (ClipFHP4Tuple(lat=3.0, lon=3.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=0.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=6.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=6.0, lon=6.0, height=0.0, clipid=1), ClipFHP4Tuple(lat=9.0, lon=3.0, height=0.0, clipid=1), ClipFHP4Tuple(lat=6.0, lon=0.0, height=0.0, clipid=1), ClipFHP4Tuple(lat=3.0, lon=3.0, height=0.0, clipid=1))\n    test 211 Fig 15: (ClipFHP4Tuple(lat=1.0, lon=3.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=4.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=2.0, lon=4.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=2.0, lon=0.0, height=0.0, clipid=1), ClipFHP4Tuple(lat=0.0, lon=0.0, height=0.0, clipid=1), ClipFHP4Tuple(lat=1.0, lon=1.0, height=0.0, clipid=1))\n    test 212 Fig 16: (ClipFHP4Tuple(lat=0.0, lon=0.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=1.0, lon=0.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=2.0, lon=2.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=2.0, height=0.0, clipid=0))\n    test 213 Fig 18: ((-10, -10, 0), (-10, -2, 0), (-8, -2, 0), (-8, -8, 0), (-2, -8, 0), (-2, -10, 0), (2, -10, 1), (2, -8, 1), (0, -8, 1), (0, -10, 1), (10, -6, 2), (8, -6, 2), (8, -8, 2), (10, -8, 2), (10, 8, 3), (8, 8, 3), (8, 6, 3), (10, 6, 3), (-6, 10, 4), (-6, 8, 4), (-4, 8, 4), (-4, 10, 4), (-10, 10, 5), (-10, 8, 5), (-8, 8, 5), (-8, 10, 5), (-10, 4, 6), (-8, 4, 6), (-8, 6, 6), (-10, 6, 6), (-10, 0, 7), (-8, 0, 7), (-8, 2, 7), (-10, 2, 7), (-6, 6, 8), (-4, 6, 8), (-4, 4, 8), (-6, 4, 8), (-6, 0, 9), (-4, 0, 9), (-4, 2, 9), (-6, 2, 9), (-6, -6, 10), (-2, -6, 10), (-2, -4, 10), (-4, -4, 10), (-4, -2, 10), (-6, -2, 10), (2, -6, 11), (2, -4, 11), (0, -4, 11), (0, -6, 11), (12, 8, 12), (20, 8, 12), (20, -8, 12), (12, -8, 12), (12, -6, 12), (18, -6, 12), (18, 6, 12), (12, 6, 12), (12, -4, 13), (14, -4, 13), (14, 4, 13), (12, 4, 13))\n\n    testing(pygeodesy.ellipsoidalVincenty, 25.05.26)\n    test 214 clipCS4.p1: 07.5°N, 010.0°E\n    test 215 clipCS4.p2: 04.5°N, 000.0°E\n    test 216 clipCS4.i: 3\n    test 217 clipCS4.j: 0\n    test 218 clipCS4.p1: 05.0°N, 005.0°E\n    test 219 clipCS4.p2: 05.0°N, 005.0°E\n    test 220 clipCS4.i: 1\n    test 221 clipCS4.j: 2\n    test 222 clipLB6.p1: 07.5°N, 010.0°E\n    test 223 clipLB6.p2: 04.5°N, 000.0°E\n    test 224 clipLB6.i: 3\n    test 225 clipLB6.fi: 3.25\n    test 226 clipLB6.fi: 07.5°N, 010.0°E\n    test 227 clipLB6.fj: 3.75\n    test 228 clipLB6.fj: 04.5°N, 000.0°E\n    test 229 clipLB6.j: 0\n    test 230 clipLB6.fin: 4\n    test 231 clipLB6.p1: 05.0°N, 005.0°E\n    test 232 clipLB6.p2: 05.0°N, 005.0°E\n    test 233 clipLB6.i: 1\n    test 234 clipLB6.fi: 1.00\n    test 235 clipLB6.fi: 05.0°N, 005.0°E\n    test 236 clipLB6.fj: 2.00\n    test 237 clipLB6.fj: 05.0°N, 005.0°E\n    test 238 clipLB6.j: 2\n    test 239 clipLB6.fin: 4\n    test 240 clipCS4.p1: 60.0°N, 123.333333°E\n    test 241 clipCS4.p2: 62.857143°N, 130.0°E\n    test 242 clipCS4.i: 0\n    test 243 clipCS4.j: 1\n    test 244 clipLB6.p1: 60.0°N, 123.333333°E\n    test 245 clipLB6.p2: 62.857143°N, 130.0°E\n    test 246 clipLB6.i: 0\n    test 247 clipLB6.fi: 0.666667\n    test 248 clipLB6.fi: 60.0°N, 123.333333°E\n    test 249 clipLB6.fj: 0.714286\n    test 250 clipLB6.fj: 62.857143°N, 130.0°E\n    test 251 clipLB6.j: 1\n    test 252 clipLB6.fin: 0\n    test 253 clipCS4.p1: 17.5°N, 020.0°E\n    test 254 clipCS4.p2: 16.25°N, 015.0°E\n    test 255 clipCS4.i: 2\n    test 256 clipCS4.j: 0\n    test 257 clipLB6.p1: 17.5°N, 020.0°E\n    test 258 clipLB6.p2: 16.25°N, 015.0°E\n    test 259 clipLB6.i: 2\n    test 260 clipLB6.fi: 2.500\n    test 261 clipLB6.fi: 17.5°N, 020.0°E\n    test 262 clipLB6.fj: 2.750\n    test 263 clipLB6.fj: 16.25°N, 015.0°E\n    test 264 clipLB6.j: 0\n    test 265 clipLB6.fin: 3\n    test 266 clipSH1.len: 4\n    test 267 clipSH1.0: 20.0°N, 020.0°E\n    test 268 clipSH1.LL: True\n    test 269 clipSH1.1: 17.5°N, 020.0°E\n    test 270 clipSH1.LL: True\n    test 271 clipSH1.2: 16.25°N, 015.0°E\n    test 272 clipSH1.LL: True\n    test 273 clipSH1.3: 20.0°N, 015.0°E\n    test 274 clipSH1.LL: True\n    test 275 clipSH2.len: 5\n    test 276 clipSH2.0: 18.571°N, 024.286°E\n    test 277 clipSH2.LL: True\n    test 278 clipSH2.1: 16.667°N, 016.667°E\n    test 279 clipSH2.LL: True\n    test 280 clipSH2.2: 20.0°N, 015.0°E\n    test 281 clipSH2.LL: True\n    test 282 clipSH2.3: 25.0°N, 020.0°E\n    test 283 clipSH2.LL: True\n    test 284 clipSH2.4: 22.0°N, 026.0°E\n    test 285 clipSH2.LL: True\n    test 286 clipSH3.len: 2\n    test 287 clipSH3.0: 18.571°N, 024.286°E\n    test 288 clipSH3.LL: True\n    test 289 clipSH3.1: 16.667°N, 016.667°E\n    test 290 clipSH3.LL: True\n    test 291 clipSH3.edge.: True\n    test 292 clipSH3.len: 2\n    test 293 clipSH3.0: 16.667°N, 016.667°E\n    test 294 clipSH3.LL: True\n    test 295 clipSH3.1: 20.0°N, 015.0°E\n    test 296 clipSH3.LL: True\n    test 297 clipSH3.edge.: False\n    test 298 clipSH3.len: 2\n    test 299 clipSH3.0: 20.0°N, 015.0°E\n    test 300 clipSH3.LL: True\n    test 301 clipSH3.1: 25.0°N, 020.0°E\n    test 302 clipSH3.LL: True\n    test 303 clipSH3.edge.: True\n    test 304 clipSH3.len: 2\n    test 305 clipSH3.0: 25.0°N, 020.0°E\n    test 306 clipSH3.LL: True\n    test 307 clipSH3.1: 22.0°N, 026.0°E\n    test 308 clipSH3.LL: True\n    test 309 clipSH3.edge.: True\n    test 310 clipSH3.len: 2\n    test 311 clipSH3.0: 22.0°N, 026.0°E\n    test 312 clipSH3.LL: True\n    test 313 clipSH3.1: 18.571°N, 024.286°E\n    test 314 clipSH3.LL: True\n    test 315 clipSH3.edge.: False\n    test 316 clipSH2.reversed.len: 5\n    test 317 clipSH2.reversed.0: 18.571°N, 024.286°E\n    test 318 clipSH2.reversed.LL: True\n    test 319 clipSH2.reversed.1: 16.667°N, 016.667°E\n    test 320 clipSH2.reversed.LL: True\n    test 321 clipSH2.reversed.2: 20.0°N, 015.0°E\n    test 322 clipSH2.reversed.LL: True\n    test 323 clipSH2.reversed.3: 25.0°N, 020.0°E\n    test 324 clipSH2.reversed.LL: True\n    test 325 clipSH2.reversed.4: 22.0°N, 026.0°E\n    test 326 clipSH2.reversed.LL: True\n    test 327 clipSH3.reversed.len: 2\n    test 328 clipSH3.reversed.0: 18.571°N, 024.286°E\n    test 329 clipSH3.reversed.LL: True\n    test 330 clipSH3.reversed.1: 16.667°N, 016.667°E\n    test 331 clipSH3.reversed.LL: True\n    test 332 clipSH3.edge.reversed.: True\n    test 333 clipSH3.reversed.len: 2\n    test 334 clipSH3.reversed.0: 16.667°N, 016.667°E\n    test 335 clipSH3.reversed.LL: True\n    test 336 clipSH3.reversed.1: 20.0°N, 015.0°E\n    test 337 clipSH3.reversed.LL: True\n    test 338 clipSH3.edge.reversed.: False\n    test 339 clipSH3.reversed.len: 2\n    test 340 clipSH3.reversed.0: 20.0°N, 015.0°E\n    test 341 clipSH3.reversed.LL: True\n    test 342 clipSH3.reversed.1: 25.0°N, 020.0°E\n    test 343 clipSH3.reversed.LL: True\n    test 344 clipSH3.edge.reversed.: True\n    test 345 clipSH3.reversed.len: 2\n    test 346 clipSH3.reversed.0: 25.0°N, 020.0°E\n    test 347 clipSH3.reversed.LL: True\n    test 348 clipSH3.reversed.1: 22.0°N, 026.0°E\n    test 349 clipSH3.reversed.LL: True\n    test 350 clipSH3.edge.reversed.: True\n    test 351 clipSH3.reversed.len: 2\n    test 352 clipSH3.reversed.0: 22.0°N, 026.0°E\n    test 353 clipSH3.reversed.LL: True\n    test 354 clipSH3.reversed.1: 18.571°N, 024.286°E\n    test 355 clipSH3.reversed.LL: True\n    test 356 clipSH3.edge.reversed.: False\n    test 357 clipSH.allout: ()\n    test 358 clipSH3.allout: ()\n    test 359 clipSH.allout.reversed: ()\n    test 360 clipSH3.allout.reversed: ()\n    test 361 clipSH.allin.len: 4\n    test 362 clipSH.allin.0: 20.0°N, 030.0°E\n    test 363 clipSH.allin.LL: True\n    test 364 clipSH.allin.1: 15.0°N, 010.0°E\n    test 365 clipSH.allin.LL: True\n    test 366 clipSH.allin.2: 25.0°N, 020.0°E\n    test 367 clipSH.allin.LL: True\n    test 368 clipSH.allin.3: 20.0°N, 030.0°E\n    test 369 clipSH.allin.LL: True\n    test 370 clipSH3.allin.len: 2\n    test 371 clipSH3.allin.0: 20.0°N, 030.0°E\n    test 372 clipSH3.allin.LL: True\n    test 373 clipSH3.allin.1: 15.0°N, 010.0°E\n    test 374 clipSH3.allin.LL: True\n    test 375 clipSH3.edge.: True\n    test 376 clipSH3.allin.len: 2\n    test 377 clipSH3.allin.0: 15.0°N, 010.0°E\n    test 378 clipSH3.allin.LL: True\n    test 379 clipSH3.allin.1: 25.0°N, 020.0°E\n    test 380 clipSH3.allin.LL: True\n    test 381 clipSH3.edge.: True\n    test 382 clipSH.allin.reversed.len: 4\n    test 383 clipSH.allin.reversed.0: 20.0°N, 030.0°E\n    test 384 clipSH.allin.reversed.LL: True\n    test 385 clipSH.allin.reversed.1: 15.0°N, 010.0°E\n    test 386 clipSH.allin.reversed.LL: True\n    test 387 clipSH.allin.reversed.2: 25.0°N, 020.0°E\n    test 388 clipSH.allin.reversed.LL: True\n    test 389 clipSH.allin.reversed.3: 20.0°N, 030.0°E\n    test 390 clipSH.allin.reversed.LL: True\n    test 391 clipSH3.allin.reversed.len: 2\n    test 392 clipSH3.allin.reversed.0: 20.0°N, 030.0°E\n    test 393 clipSH3.allin.reversed.LL: True\n    test 394 clipSH3.allin.reversed.1: 15.0°N, 010.0°E\n    test 395 clipSH3.allin.reversed.LL: True\n    test 396 clipSH3.edge.reversed.: True\n    test 397 clipSH3.allin.reversed.len: 2\n    test 398 clipSH3.allin.reversed.0: 15.0°N, 010.0°E\n    test 399 clipSH3.allin.reversed.LL: True\n    test 400 clipSH3.allin.reversed.1: 25.0°N, 020.0°E\n    test 401 clipSH3.allin.reversed.LL: True\n    test 402 clipSH3.edge.reversed.: True\n    test 403 clipSH.warped: clipSH clip region ((LatLon(10°00′00.0″N, 010°00′00.0″E), LatLon(20°00′00.0″N, 020°00′00.0″E), LatLon(10°00′00.0″N, 020°00′00.0″E), LatLon(20°00′00.0″N, 010°00′00.0″E))): not convex\n    test 404 clipSH3.warped: clipSH3 clip region ((LatLon(10°00′00.0″N, 010°00′00.0″E), LatLon(20°00′00.0″N, 020°00′00.0″E), LatLon(10°00′00.0″N, 020°00′00.0″E), LatLon(20°00′00.0″N, 010°00′00.0″E))): not convex\n    test 405 clipSH.warpedreversed.: clipSH clip region ((LatLon(20°00′00.0″N, 010°00′00.0″E), LatLon(10°00′00.0″N, 020°00′00.0″E), LatLon(20°00′00.0″N, 020°00′00.0″E), LatLon(10°00′00.0″N, 010°00′00.0″E))): not convex\n    test 406 clipSH3.warpedreversed.: clipSH3 clip region ((LatLon(20°00′00.0″N, 010°00′00.0″E), LatLon(10°00′00.0″N, 020°00′00.0″E), LatLon(20°00′00.0″N, 020°00′00.0″E), LatLon(10°00′00.0″N, 010°00′00.0″E))): not convex\n    test 407 boundsOf: (10.0, 10.0, 20.0, 20.0)\n    test 408 boundsOf: (15.0, 10.0, 25.0, 30.0)\n    test 409 enclosures: (5.0, 0.0, -5.0, -10.0)\n    test 410 overlap: (15.0, 10.0, 20.0, 20.0)\n    test 411 clipSH4: 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 0.0\n    test 412 clipSH5: 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 0.0\n    test 413 clipSH6: 1.0, 0.5, 2.0, 1.0, 2.0, 0.5\n    test 414 clipSH7: -0.2, 2.0, 0.2, 2.0, 0.5, 0.5, 2.0, 0.2, 2.0, -0.2, 0.5, -0.5, 0.2, -2.0, -0.2, -2.0, -0.5, -0.5, -2.0, -0.2, -2.0, 0.2, -0.5, 0.5\n    test 415 clipSH8: -0.33, 1.33, 0.0, 2.0, 0.33, 1.33, 0.5, 0.5, 0.78, 0.44, 1.18, -0.36, 0.5, -0.5, 0.2, -2.0, -0.2, -2.0, -0.5, -0.5, -1.18, -0.36, -0.78, 0.44, -0.5, 0.5\n    test 416 clipSH9: None\n    test 417 clipSH10: None\n    test 418 clipSH11: None\n    test 419 clipSH12: None\n\n    test 420 clipGH4: (ClipGH4Tuple(lat=5.0, lon=3.571429, height=1.714286, clipid=0), ClipGH4Tuple(lat=7.0, lon=5.0, height=2.0, clipid=0), ClipGH4Tuple(lat=5.0, lon=6.428571, height=2.285714, clipid=0), ClipGH4Tuple(lat=3.0, lon=5.0, height=2.0, clipid=0))\n\n    test 421 clipFHP4: (ClipFHP4Tuple(lat=7.0, lon=5.0, height=2.0, clipid=0), ClipFHP4Tuple(lat=5.0, lon=6.428571, height=2.285714, clipid=0), ClipFHP4Tuple(lat=3.0, lon=5.0, height=2.0, clipid=0), ClipFHP4Tuple(lat=5.0, lon=3.571429, height=1.714286, clipid=0))\n\n    test 422 Fig 8: (ClipFHP4Tuple(lat=4.0, lon=12.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=-1.0, lon=12.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=3.0, lon=8.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=5.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=3.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=2.0, lon=1.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=6.0, lon=3.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=6.0, lon=11.0, height=0.0, clipid=0))\n    test 423 Fig 14: (ClipFHP4Tuple(lat=3.0, lon=3.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=0.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=6.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=6.0, lon=6.0, height=0.0, clipid=1), ClipFHP4Tuple(lat=9.0, lon=3.0, height=0.0, clipid=1), ClipFHP4Tuple(lat=6.0, lon=0.0, height=0.0, clipid=1), ClipFHP4Tuple(lat=3.0, lon=3.0, height=0.0, clipid=1))\n    test 424 Fig 15: (ClipFHP4Tuple(lat=1.0, lon=3.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=4.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=2.0, lon=4.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=2.0, lon=0.0, height=0.0, clipid=1), ClipFHP4Tuple(lat=0.0, lon=0.0, height=0.0, clipid=1), ClipFHP4Tuple(lat=1.0, lon=1.0, height=0.0, clipid=1))\n    test 425 Fig 16: (ClipFHP4Tuple(lat=0.0, lon=0.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=1.0, lon=0.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=2.0, lon=2.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=2.0, height=0.0, clipid=0))\n    test 426 Fig 18: ((-10, -10, 0), (-10, -2, 0), (-8, -2, 0), (-8, -8, 0), (-2, -8, 0), (-2, -10, 0), (2, -10, 1), (2, -8, 1), (0, -8, 1), (0, -10, 1), (10, -6, 2), (8, -6, 2), (8, -8, 2), (10, -8, 2), (10, 8, 3), (8, 8, 3), (8, 6, 3), (10, 6, 3), (-6, 10, 4), (-6, 8, 4), (-4, 8, 4), (-4, 10, 4), (-10, 10, 5), (-10, 8, 5), (-8, 8, 5), (-8, 10, 5), (-10, 4, 6), (-8, 4, 6), (-8, 6, 6), (-10, 6, 6), (-10, 0, 7), (-8, 0, 7), (-8, 2, 7), (-10, 2, 7), (-6, 6, 8), (-4, 6, 8), (-4, 4, 8), (-6, 4, 8), (-6, 0, 9), (-4, 0, 9), (-4, 2, 9), (-6, 2, 9), (-6, -6, 10), (-2, -6, 10), (-2, -4, 10), (-4, -4, 10), (-4, -2, 10), (-6, -2, 10), (2, -6, 11), (2, -4, 11), (0, -4, 11), (0, -6, 11), (12, 8, 12), (20, 8, 12), (20, -8, 12), (12, -8, 12), (12, -6, 12), (18, -6, 12), (18, 6, 12), (12, 6, 12), (12, -4, 13), (14, -4, 13), (14, 4, 13), (12, 4, 13))\n\n    testing(pygeodesy.sphericalNvector, 25.05.27)\n    test 427 clipCS4.p1: 07.5°N, 010.0°E\n    test 428 clipCS4.p2: 04.5°N, 000.0°E\n    test 429 clipCS4.i: 3\n    test 430 clipCS4.j: 0\n    test 431 clipCS4.p1: 05.0°N, 005.0°E\n    test 432 clipCS4.p2: 05.0°N, 005.0°E\n    test 433 clipCS4.i: 1\n    test 434 clipCS4.j: 2\n    test 435 clipLB6.p1: 07.5°N, 010.0°E\n    test 436 clipLB6.p2: 04.5°N, 000.0°E\n    test 437 clipLB6.i: 3\n    test 438 clipLB6.fi: 3.25\n    test 439 clipLB6.fi: 07.5°N, 010.0°E\n    test 440 clipLB6.fj: 3.75\n    test 441 clipLB6.fj: 04.5°N, 000.0°E\n    test 442 clipLB6.j: 0\n    test 443 clipLB6.fin: 4\n    test 444 clipLB6.p1: 05.0°N, 005.0°E\n    test 445 clipLB6.p2: 05.0°N, 005.0°E\n    test 446 clipLB6.i: 1\n    test 447 clipLB6.fi: 1.00\n    test 448 clipLB6.fi: 05.0°N, 005.0°E\n    test 449 clipLB6.fj: 2.00\n    test 450 clipLB6.fj: 05.0°N, 005.0°E\n    test 451 clipLB6.j: 2\n    test 452 clipLB6.fin: 4\n    test 453 clipCS4.p1: 60.0°N, 123.333333°E\n    test 454 clipCS4.p2: 62.857143°N, 130.0°E\n    test 455 clipCS4.i: 0\n    test 456 clipCS4.j: 1\n    test 457 clipLB6.p1: 60.0°N, 123.333333°E\n    test 458 clipLB6.p2: 62.857143°N, 130.0°E\n    test 459 clipLB6.i: 0\n    test 460 clipLB6.fi: 0.666667\n    test 461 clipLB6.fi: 60.0°N, 123.333333°E\n    test 462 clipLB6.fj: 0.714286\n    test 463 clipLB6.fj: 62.857143°N, 130.0°E\n    test 464 clipLB6.j: 1\n    test 465 clipLB6.fin: 0\n    test 466 clipCS4.p1: 17.5°N, 020.0°E\n    test 467 clipCS4.p2: 16.25°N, 015.0°E\n    test 468 clipCS4.i: 2\n    test 469 clipCS4.j: 0\n    test 470 clipLB6.p1: 17.5°N, 020.0°E\n    test 471 clipLB6.p2: 16.25°N, 015.0°E\n    test 472 clipLB6.i: 2\n    test 473 clipLB6.fi: 2.500\n    test 474 clipLB6.fi: 17.5°N, 020.0°E\n    test 475 clipLB6.fj: 2.750\n    test 476 clipLB6.fj: 16.25°N, 015.0°E\n    test 477 clipLB6.j: 0\n    test 478 clipLB6.fin: 3\n    test 479 clipSH1.len: 4\n    test 480 clipSH1.0: 20.0°N, 020.0°E\n    test 481 clipSH1.LL: True\n    test 482 clipSH1.1: 17.5°N, 020.0°E\n    test 483 clipSH1.LL: True\n    test 484 clipSH1.2: 16.25°N, 015.0°E\n    test 485 clipSH1.LL: True\n    test 486 clipSH1.3: 20.0°N, 015.0°E\n    test 487 clipSH1.LL: True\n    test 488 clipSH2.len: 5\n    test 489 clipSH2.0: 18.571°N, 024.286°E\n    test 490 clipSH2.LL: True\n    test 491 clipSH2.1: 16.667°N, 016.667°E\n    test 492 clipSH2.LL: True\n    test 493 clipSH2.2: 20.0°N, 015.0°E\n    test 494 clipSH2.LL: True\n    test 495 clipSH2.3: 25.0°N, 020.0°E\n    test 496 clipSH2.LL: True\n    test 497 clipSH2.4: 22.0°N, 026.0°E\n    test 498 clipSH2.LL: True\n    test 499 clipSH3.len: 2\n    test 500 clipSH3.0: 18.571°N, 024.286°E\n    test 501 clipSH3.LL: True\n    test 502 clipSH3.1: 16.667°N, 016.667°E\n    test 503 clipSH3.LL: True\n    test 504 clipSH3.edge.: True\n    test 505 clipSH3.len: 2\n    test 506 clipSH3.0: 16.667°N, 016.667°E\n    test 507 clipSH3.LL: True\n    test 508 clipSH3.1: 20.0°N, 015.0°E\n    test 509 clipSH3.LL: True\n    test 510 clipSH3.edge.: False\n    test 511 clipSH3.len: 2\n    test 512 clipSH3.0: 20.0°N, 015.0°E\n    test 513 clipSH3.LL: True\n    test 514 clipSH3.1: 25.0°N, 020.0°E\n    test 515 clipSH3.LL: True\n    test 516 clipSH3.edge.: True\n    test 517 clipSH3.len: 2\n    test 518 clipSH3.0: 25.0°N, 020.0°E\n    test 519 clipSH3.LL: True\n    test 520 clipSH3.1: 22.0°N, 026.0°E\n    test 521 clipSH3.LL: True\n    test 522 clipSH3.edge.: True\n    test 523 clipSH3.len: 2\n    test 524 clipSH3.0: 22.0°N, 026.0°E\n    test 525 clipSH3.LL: True\n    test 526 clipSH3.1: 18.571°N, 024.286°E\n    test 527 clipSH3.LL: True\n    test 528 clipSH3.edge.: False\n    test 529 clipSH2.reversed.len: 5\n    test 530 clipSH2.reversed.0: 18.571°N, 024.286°E\n    test 531 clipSH2.reversed.LL: True\n    test 532 clipSH2.reversed.1: 16.667°N, 016.667°E\n    test 533 clipSH2.reversed.LL: True\n    test 534 clipSH2.reversed.2: 20.0°N, 015.0°E\n    test 535 clipSH2.reversed.LL: True\n    test 536 clipSH2.reversed.3: 25.0°N, 020.0°E\n    test 537 clipSH2.reversed.LL: True\n    test 538 clipSH2.reversed.4: 22.0°N, 026.0°E\n    test 539 clipSH2.reversed.LL: True\n    test 540 clipSH3.reversed.len: 2\n    test 541 clipSH3.reversed.0: 18.571°N, 024.286°E\n    test 542 clipSH3.reversed.LL: True\n    test 543 clipSH3.reversed.1: 16.667°N, 016.667°E\n    test 544 clipSH3.reversed.LL: True\n    test 545 clipSH3.edge.reversed.: True\n    test 546 clipSH3.reversed.len: 2\n    test 547 clipSH3.reversed.0: 16.667°N, 016.667°E\n    test 548 clipSH3.reversed.LL: True\n    test 549 clipSH3.reversed.1: 20.0°N, 015.0°E\n    test 550 clipSH3.reversed.LL: True\n    test 551 clipSH3.edge.reversed.: False\n    test 552 clipSH3.reversed.len: 2\n    test 553 clipSH3.reversed.0: 20.0°N, 015.0°E\n    test 554 clipSH3.reversed.LL: True\n    test 555 clipSH3.reversed.1: 25.0°N, 020.0°E\n    test 556 clipSH3.reversed.LL: True\n    test 557 clipSH3.edge.reversed.: True\n    test 558 clipSH3.reversed.len: 2\n    test 559 clipSH3.reversed.0: 25.0°N, 020.0°E\n    test 560 clipSH3.reversed.LL: True\n    test 561 clipSH3.reversed.1: 22.0°N, 026.0°E\n    test 562 clipSH3.reversed.LL: True\n    test 563 clipSH3.edge.reversed.: True\n    test 564 clipSH3.reversed.len: 2\n    test 565 clipSH3.reversed.0: 22.0°N, 026.0°E\n    test 566 clipSH3.reversed.LL: True\n    test 567 clipSH3.reversed.1: 18.571°N, 024.286°E\n    test 568 clipSH3.reversed.LL: True\n    test 569 clipSH3.edge.reversed.: False\n    test 570 clipSH.allout: ()\n    test 571 clipSH3.allout: ()\n    test 572 clipSH.allout.reversed: ()\n    test 573 clipSH3.allout.reversed: ()\n    test 574 clipSH.allin.len: 4\n    test 575 clipSH.allin.0: 20.0°N, 030.0°E\n    test 576 clipSH.allin.LL: True\n    test 577 clipSH.allin.1: 15.0°N, 010.0°E\n    test 578 clipSH.allin.LL: True\n    test 579 clipSH.allin.2: 25.0°N, 020.0°E\n    test 580 clipSH.allin.LL: True\n    test 581 clipSH.allin.3: 20.0°N, 030.0°E\n    test 582 clipSH.allin.LL: True\n    test 583 clipSH3.allin.len: 2\n    test 584 clipSH3.allin.0: 20.0°N, 030.0°E\n    test 585 clipSH3.allin.LL: True\n    test 586 clipSH3.allin.1: 15.0°N, 010.0°E\n    test 587 clipSH3.allin.LL: True\n    test 588 clipSH3.edge.: True\n    test 589 clipSH3.allin.len: 2\n    test 590 clipSH3.allin.0: 15.0°N, 010.0°E\n    test 591 clipSH3.allin.LL: True\n    test 592 clipSH3.allin.1: 25.0°N, 020.0°E\n    test 593 clipSH3.allin.LL: True\n    test 594 clipSH3.edge.: True\n    test 595 clipSH.allin.reversed.len: 4\n    test 596 clipSH.allin.reversed.0: 20.0°N, 030.0°E\n    test 597 clipSH.allin.reversed.LL: True\n    test 598 clipSH.allin.reversed.1: 15.0°N, 010.0°E\n    test 599 clipSH.allin.reversed.LL: True\n    test 600 clipSH.allin.reversed.2: 25.0°N, 020.0°E\n    test 601 clipSH.allin.reversed.LL: True\n    test 602 clipSH.allin.reversed.3: 20.0°N, 030.0°E\n    test 603 clipSH.allin.reversed.LL: True\n    test 604 clipSH3.allin.reversed.len: 2\n    test 605 clipSH3.allin.reversed.0: 20.0°N, 030.0°E\n    test 606 clipSH3.allin.reversed.LL: True\n    test 607 clipSH3.allin.reversed.1: 15.0°N, 010.0°E\n    test 608 clipSH3.allin.reversed.LL: True\n    test 609 clipSH3.edge.reversed.: True\n    test 610 clipSH3.allin.reversed.len: 2\n    test 611 clipSH3.allin.reversed.0: 15.0°N, 010.0°E\n    test 612 clipSH3.allin.reversed.LL: True\n    test 613 clipSH3.allin.reversed.1: 25.0°N, 020.0°E\n    test 614 clipSH3.allin.reversed.LL: True\n    test 615 clipSH3.edge.reversed.: True\n    test 616 clipSH.warped: clipSH clip region ((LatLon(10°00′00.0″N, 010°00′00.0″E), LatLon(20°00′00.0″N, 020°00′00.0″E), LatLon(10°00′00.0″N, 020°00′00.0″E), LatLon(20°00′00.0″N, 010°00′00.0″E))): not convex\n    test 617 clipSH3.warped: clipSH3 clip region ((LatLon(10°00′00.0″N, 010°00′00.0″E), LatLon(20°00′00.0″N, 020°00′00.0″E), LatLon(10°00′00.0″N, 020°00′00.0″E), LatLon(20°00′00.0″N, 010°00′00.0″E))): not convex\n    test 618 clipSH.warpedreversed.: clipSH clip region ((LatLon(20°00′00.0″N, 010°00′00.0″E), LatLon(10°00′00.0″N, 020°00′00.0″E), LatLon(20°00′00.0″N, 020°00′00.0″E), LatLon(10°00′00.0″N, 010°00′00.0″E))): not convex\n    test 619 clipSH3.warpedreversed.: clipSH3 clip region ((LatLon(20°00′00.0″N, 010°00′00.0″E), LatLon(10°00′00.0″N, 020°00′00.0″E), LatLon(20°00′00.0″N, 020°00′00.0″E), LatLon(10°00′00.0″N, 010°00′00.0″E))): not convex\n    test 620 boundsOf: (10.0, 10.0, 20.0, 20.0)\n    test 621 boundsOf: (15.0, 10.0, 25.0, 30.0)\n    test 622 enclosures: (5.0, 0.0, -5.0, -10.0)\n    test 623 overlap: (15.0, 10.0, 20.0, 20.0)\n    test 624 clipSH4: 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 0.0\n    test 625 clipSH5: 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 0.0\n    test 626 clipSH6: 1.0, 0.5, 2.0, 1.0, 2.0, 0.5\n    test 627 clipSH7: -0.2, 2.0, 0.2, 2.0, 0.5, 0.5, 2.0, 0.2, 2.0, -0.2, 0.5, -0.5, 0.2, -2.0, -0.2, -2.0, -0.5, -0.5, -2.0, -0.2, -2.0, 0.2, -0.5, 0.5\n    test 628 clipSH8: -0.33, 1.33, 0.0, 2.0, 0.33, 1.33, 0.5, 0.5, 0.78, 0.44, 1.18, -0.36, 0.5, -0.5, 0.2, -2.0, -0.2, -2.0, -0.5, -0.5, -1.18, -0.36, -0.78, 0.44, -0.5, 0.5\n    test 629 clipSH9: None\n    test 630 clipSH10: None\n    test 631 clipSH11: None\n    test 632 clipSH12: None\n\n    test 633 clipGH4: (ClipGH4Tuple(lat=5.0, lon=3.571429, height=1.714286, clipid=0), ClipGH4Tuple(lat=7.0, lon=5.0, height=2.0, clipid=0), ClipGH4Tuple(lat=5.0, lon=6.428571, height=2.285714, clipid=0), ClipGH4Tuple(lat=3.0, lon=5.0, height=2.0, clipid=0))\n\n    test 634 clipFHP4: (ClipFHP4Tuple(lat=7.0, lon=5.0, height=2.0, clipid=0), ClipFHP4Tuple(lat=5.0, lon=6.428571, height=2.285714, clipid=0), ClipFHP4Tuple(lat=3.0, lon=5.0, height=2.0, clipid=0), ClipFHP4Tuple(lat=5.0, lon=3.571429, height=1.714286, clipid=0))\n\n    test 635 Fig 8: (ClipFHP4Tuple(lat=4.0, lon=12.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=-1.0, lon=12.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=3.0, lon=8.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=5.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=3.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=2.0, lon=1.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=6.0, lon=3.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=6.0, lon=11.0, height=0.0, clipid=0))\n    test 636 Fig 14: (ClipFHP4Tuple(lat=3.0, lon=3.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=0.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=6.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=6.0, lon=6.0, height=0.0, clipid=1), ClipFHP4Tuple(lat=9.0, lon=3.0, height=0.0, clipid=1), ClipFHP4Tuple(lat=6.0, lon=0.0, height=0.0, clipid=1), ClipFHP4Tuple(lat=3.0, lon=3.0, height=0.0, clipid=1))\n    test 637 Fig 15: (ClipFHP4Tuple(lat=1.0, lon=3.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=4.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=2.0, lon=4.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=2.0, lon=0.0, height=0.0, clipid=1), ClipFHP4Tuple(lat=0.0, lon=0.0, height=0.0, clipid=1), ClipFHP4Tuple(lat=1.0, lon=1.0, height=0.0, clipid=1))\n    test 638 Fig 16: (ClipFHP4Tuple(lat=0.0, lon=0.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=1.0, lon=0.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=2.0, lon=2.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=2.0, height=0.0, clipid=0))\n    test 639 Fig 18: ((-10, -10, 0), (-10, -2, 0), (-8, -2, 0), (-8, -8, 0), (-2, -8, 0), (-2, -10, 0), (2, -10, 1), (2, -8, 1), (0, -8, 1), (0, -10, 1), (10, -6, 2), (8, -6, 2), (8, -8, 2), (10, -8, 2), (10, 8, 3), (8, 8, 3), (8, 6, 3), (10, 6, 3), (-6, 10, 4), (-6, 8, 4), (-4, 8, 4), (-4, 10, 4), (-10, 10, 5), (-10, 8, 5), (-8, 8, 5), (-8, 10, 5), (-10, 4, 6), (-8, 4, 6), (-8, 6, 6), (-10, 6, 6), (-10, 0, 7), (-8, 0, 7), (-8, 2, 7), (-10, 2, 7), (-6, 6, 8), (-4, 6, 8), (-4, 4, 8), (-6, 4, 8), (-6, 0, 9), (-4, 0, 9), (-4, 2, 9), (-6, 2, 9), (-6, -6, 10), (-2, -6, 10), (-2, -4, 10), (-4, -4, 10), (-4, -2, 10), (-6, -2, 10), (2, -6, 11), (2, -4, 11), (0, -4, 11), (0, -6, 11), (12, 8, 12), (20, 8, 12), (20, -8, 12), (12, -8, 12), (12, -6, 12), (18, -6, 12), (18, 6, 12), (12, 6, 12), (12, -4, 13), (14, -4, 13), (14, 4, 13), (12, 4, 13))\n\n    testing(pygeodesy.sphericalTrigonometry, 25.08.31)\n    test 640 clipCS4.p1: 07.5°N, 010.0°E\n    test 641 clipCS4.p2: 04.5°N, 000.0°E\n    test 642 clipCS4.i: 3\n    test 643 clipCS4.j: 0\n    test 644 clipCS4.p1: 05.0°N, 005.0°E\n    test 645 clipCS4.p2: 05.0°N, 005.0°E\n    test 646 clipCS4.i: 1\n    test 647 clipCS4.j: 2\n    test 648 clipLB6.p1: 07.5°N, 010.0°E\n    test 649 clipLB6.p2: 04.5°N, 000.0°E\n    test 650 clipLB6.i: 3\n    test 651 clipLB6.fi: 3.25\n    test 652 clipLB6.fi: 07.5°N, 010.0°E\n    test 653 clipLB6.fj: 3.75\n    test 654 clipLB6.fj: 04.5°N, 000.0°E\n    test 655 clipLB6.j: 0\n    test 656 clipLB6.fin: 4\n    test 657 clipLB6.p1: 05.0°N, 005.0°E\n    test 658 clipLB6.p2: 05.0°N, 005.0°E\n    test 659 clipLB6.i: 1\n    test 660 clipLB6.fi: 1.00\n    test 661 clipLB6.fi: 05.0°N, 005.0°E\n    test 662 clipLB6.fj: 2.00\n    test 663 clipLB6.fj: 05.0°N, 005.0°E\n    test 664 clipLB6.j: 2\n    test 665 clipLB6.fin: 4\n    test 666 clipCS4.p1: 60.0°N, 123.333333°E\n    test 667 clipCS4.p2: 62.857143°N, 130.0°E\n    test 668 clipCS4.i: 0\n    test 669 clipCS4.j: 1\n    test 670 clipLB6.p1: 60.0°N, 123.333333°E\n    test 671 clipLB6.p2: 62.857143°N, 130.0°E\n    test 672 clipLB6.i: 0\n    test 673 clipLB6.fi: 0.666667\n    test 674 clipLB6.fi: 60.0°N, 123.333333°E\n    test 675 clipLB6.fj: 0.714286\n    test 676 clipLB6.fj: 62.857143°N, 130.0°E\n    test 677 clipLB6.j: 1\n    test 678 clipLB6.fin: 0\n    test 679 clipCS4.p1: 17.5°N, 020.0°E\n    test 680 clipCS4.p2: 16.25°N, 015.0°E\n    test 681 clipCS4.i: 2\n    test 682 clipCS4.j: 0\n    test 683 clipLB6.p1: 17.5°N, 020.0°E\n    test 684 clipLB6.p2: 16.25°N, 015.0°E\n    test 685 clipLB6.i: 2\n    test 686 clipLB6.fi: 2.500\n    test 687 clipLB6.fi: 17.5°N, 020.0°E\n    test 688 clipLB6.fj: 2.750\n    test 689 clipLB6.fj: 16.25°N, 015.0°E\n    test 690 clipLB6.j: 0\n    test 691 clipLB6.fin: 3\n    test 692 clipSH1.len: 4\n    test 693 clipSH1.0: 20.0°N, 020.0°E\n    test 694 clipSH1.LL: True\n    test 695 clipSH1.1: 17.5°N, 020.0°E\n    test 696 clipSH1.LL: True\n    test 697 clipSH1.2: 16.25°N, 015.0°E\n    test 698 clipSH1.LL: True\n    test 699 clipSH1.3: 20.0°N, 015.0°E\n    test 700 clipSH1.LL: True\n    test 701 clipSH2.len: 5\n    test 702 clipSH2.0: 18.571°N, 024.286°E\n    test 703 clipSH2.LL: True\n    test 704 clipSH2.1: 16.667°N, 016.667°E\n    test 705 clipSH2.LL: True\n    test 706 clipSH2.2: 20.0°N, 015.0°E\n    test 707 clipSH2.LL: True\n    test 708 clipSH2.3: 25.0°N, 020.0°E\n    test 709 clipSH2.LL: True\n    test 710 clipSH2.4: 22.0°N, 026.0°E\n    test 711 clipSH2.LL: True\n    test 712 clipSH3.len: 2\n    test 713 clipSH3.0: 18.571°N, 024.286°E\n    test 714 clipSH3.LL: True\n    test 715 clipSH3.1: 16.667°N, 016.667°E\n    test 716 clipSH3.LL: True\n    test 717 clipSH3.edge.: True\n    test 718 clipSH3.len: 2\n    test 719 clipSH3.0: 16.667°N, 016.667°E\n    test 720 clipSH3.LL: True\n    test 721 clipSH3.1: 20.0°N, 015.0°E\n    test 722 clipSH3.LL: True\n    test 723 clipSH3.edge.: False\n    test 724 clipSH3.len: 2\n    test 725 clipSH3.0: 20.0°N, 015.0°E\n    test 726 clipSH3.LL: True\n    test 727 clipSH3.1: 25.0°N, 020.0°E\n    test 728 clipSH3.LL: True\n    test 729 clipSH3.edge.: True\n    test 730 clipSH3.len: 2\n    test 731 clipSH3.0: 25.0°N, 020.0°E\n    test 732 clipSH3.LL: True\n    test 733 clipSH3.1: 22.0°N, 026.0°E\n    test 734 clipSH3.LL: True\n    test 735 clipSH3.edge.: True\n    test 736 clipSH3.len: 2\n    test 737 clipSH3.0: 22.0°N, 026.0°E\n    test 738 clipSH3.LL: True\n    test 739 clipSH3.1: 18.571°N, 024.286°E\n    test 740 clipSH3.LL: True\n    test 741 clipSH3.edge.: False\n    test 742 clipSH2.reversed.len: 5\n    test 743 clipSH2.reversed.0: 18.571°N, 024.286°E\n    test 744 clipSH2.reversed.LL: True\n    test 745 clipSH2.reversed.1: 16.667°N, 016.667°E\n    test 746 clipSH2.reversed.LL: True\n    test 747 clipSH2.reversed.2: 20.0°N, 015.0°E\n    test 748 clipSH2.reversed.LL: True\n    test 749 clipSH2.reversed.3: 25.0°N, 020.0°E\n    test 750 clipSH2.reversed.LL: True\n    test 751 clipSH2.reversed.4: 22.0°N, 026.0°E\n    test 752 clipSH2.reversed.LL: True\n    test 753 clipSH3.reversed.len: 2\n    test 754 clipSH3.reversed.0: 18.571°N, 024.286°E\n    test 755 clipSH3.reversed.LL: True\n    test 756 clipSH3.reversed.1: 16.667°N, 016.667°E\n    test 757 clipSH3.reversed.LL: True\n    test 758 clipSH3.edge.reversed.: True\n    test 759 clipSH3.reversed.len: 2\n    test 760 clipSH3.reversed.0: 16.667°N, 016.667°E\n    test 761 clipSH3.reversed.LL: True\n    test 762 clipSH3.reversed.1: 20.0°N, 015.0°E\n    test 763 clipSH3.reversed.LL: True\n    test 764 clipSH3.edge.reversed.: False\n    test 765 clipSH3.reversed.len: 2\n    test 766 clipSH3.reversed.0: 20.0°N, 015.0°E\n    test 767 clipSH3.reversed.LL: True\n    test 768 clipSH3.reversed.1: 25.0°N, 020.0°E\n    test 769 clipSH3.reversed.LL: True\n    test 770 clipSH3.edge.reversed.: True\n    test 771 clipSH3.reversed.len: 2\n    test 772 clipSH3.reversed.0: 25.0°N, 020.0°E\n    test 773 clipSH3.reversed.LL: True\n    test 774 clipSH3.reversed.1: 22.0°N, 026.0°E\n    test 775 clipSH3.reversed.LL: True\n    test 776 clipSH3.edge.reversed.: True\n    test 777 clipSH3.reversed.len: 2\n    test 778 clipSH3.reversed.0: 22.0°N, 026.0°E\n    test 779 clipSH3.reversed.LL: True\n    test 780 clipSH3.reversed.1: 18.571°N, 024.286°E\n    test 781 clipSH3.reversed.LL: True\n    test 782 clipSH3.edge.reversed.: False\n    test 783 clipSH.allout: ()\n    test 784 clipSH3.allout: ()\n    test 785 clipSH.allout.reversed: ()\n    test 786 clipSH3.allout.reversed: ()\n    test 787 clipSH.allin.len: 4\n    test 788 clipSH.allin.0: 20.0°N, 030.0°E\n    test 789 clipSH.allin.LL: True\n    test 790 clipSH.allin.1: 15.0°N, 010.0°E\n    test 791 clipSH.allin.LL: True\n    test 792 clipSH.allin.2: 25.0°N, 020.0°E\n    test 793 clipSH.allin.LL: True\n    test 794 clipSH.allin.3: 20.0°N, 030.0°E\n    test 795 clipSH.allin.LL: True\n    test 796 clipSH3.allin.len: 2\n    test 797 clipSH3.allin.0: 20.0°N, 030.0°E\n    test 798 clipSH3.allin.LL: True\n    test 799 clipSH3.allin.1: 15.0°N, 010.0°E\n    test 800 clipSH3.allin.LL: True\n    test 801 clipSH3.edge.: True\n    test 802 clipSH3.allin.len: 2\n    test 803 clipSH3.allin.0: 15.0°N, 010.0°E\n    test 804 clipSH3.allin.LL: True\n    test 805 clipSH3.allin.1: 25.0°N, 020.0°E\n    test 806 clipSH3.allin.LL: True\n    test 807 clipSH3.edge.: True\n    test 808 clipSH.allin.reversed.len: 4\n    test 809 clipSH.allin.reversed.0: 20.0°N, 030.0°E\n    test 810 clipSH.allin.reversed.LL: True\n    test 811 clipSH.allin.reversed.1: 15.0°N, 010.0°E\n    test 812 clipSH.allin.reversed.LL: True\n    test 813 clipSH.allin.reversed.2: 25.0°N, 020.0°E\n    test 814 clipSH.allin.reversed.LL: True\n    test 815 clipSH.allin.reversed.3: 20.0°N, 030.0°E\n    test 816 clipSH.allin.reversed.LL: True\n    test 817 clipSH3.allin.reversed.len: 2\n    test 818 clipSH3.allin.reversed.0: 20.0°N, 030.0°E\n    test 819 clipSH3.allin.reversed.LL: True\n    test 820 clipSH3.allin.reversed.1: 15.0°N, 010.0°E\n    test 821 clipSH3.allin.reversed.LL: True\n    test 822 clipSH3.edge.reversed.: True\n    test 823 clipSH3.allin.reversed.len: 2\n    test 824 clipSH3.allin.reversed.0: 15.0°N, 010.0°E\n    test 825 clipSH3.allin.reversed.LL: True\n    test 826 clipSH3.allin.reversed.1: 25.0°N, 020.0°E\n    test 827 clipSH3.allin.reversed.LL: True\n    test 828 clipSH3.edge.reversed.: True\n    test 829 clipSH.warped: clipSH clip region ((LatLon(10°00′00.0″N, 010°00′00.0″E), LatLon(20°00′00.0″N, 020°00′00.0″E), LatLon(10°00′00.0″N, 020°00′00.0″E), LatLon(20°00′00.0″N, 010°00′00.0″E))): not convex\n    test 830 clipSH3.warped: clipSH3 clip region ((LatLon(10°00′00.0″N, 010°00′00.0″E), LatLon(20°00′00.0″N, 020°00′00.0″E), LatLon(10°00′00.0″N, 020°00′00.0″E), LatLon(20°00′00.0″N, 010°00′00.0″E))): not convex\n    test 831 clipSH.warpedreversed.: clipSH clip region ((LatLon(20°00′00.0″N, 010°00′00.0″E), LatLon(10°00′00.0″N, 020°00′00.0″E), LatLon(20°00′00.0″N, 020°00′00.0″E), LatLon(10°00′00.0″N, 010°00′00.0″E))): not convex\n    test 832 clipSH3.warpedreversed.: clipSH3 clip region ((LatLon(20°00′00.0″N, 010°00′00.0″E), LatLon(10°00′00.0″N, 020°00′00.0″E), LatLon(20°00′00.0″N, 020°00′00.0″E), LatLon(10°00′00.0″N, 010°00′00.0″E))): not convex\n    test 833 boundsOf: (10.0, 10.0, 20.0, 20.0)\n    test 834 boundsOf: (15.0, 10.0, 25.0, 30.0)\n    test 835 enclosures: (5.0, 0.0, -5.0, -10.0)\n    test 836 overlap: (15.0, 10.0, 20.0, 20.0)\n    test 837 clipSH4: 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 0.0\n    test 838 clipSH5: 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 0.0\n    test 839 clipSH6: 1.0, 0.5, 2.0, 1.0, 2.0, 0.5\n    test 840 clipSH7: -0.2, 2.0, 0.2, 2.0, 0.5, 0.5, 2.0, 0.2, 2.0, -0.2, 0.5, -0.5, 0.2, -2.0, -0.2, -2.0, -0.5, -0.5, -2.0, -0.2, -2.0, 0.2, -0.5, 0.5\n    test 841 clipSH8: -0.33, 1.33, 0.0, 2.0, 0.33, 1.33, 0.5, 0.5, 0.78, 0.44, 1.18, -0.36, 0.5, -0.5, 0.2, -2.0, -0.2, -2.0, -0.5, -0.5, -1.18, -0.36, -0.78, 0.44, -0.5, 0.5\n    test 842 clipSH9: None\n    test 843 clipSH10: None\n    test 844 clipSH11: None\n    test 845 clipSH12: None\n\n    test 846 clipGH4: (ClipGH4Tuple(lat=5.0, lon=3.571429, height=1.714286, clipid=0), ClipGH4Tuple(lat=7.0, lon=5.0, height=2.0, clipid=0), ClipGH4Tuple(lat=5.0, lon=6.428571, height=2.285714, clipid=0), ClipGH4Tuple(lat=3.0, lon=5.0, height=2.0, clipid=0))\n\n    test 847 clipFHP4: (ClipFHP4Tuple(lat=7.0, lon=5.0, height=2.0, clipid=0), ClipFHP4Tuple(lat=5.0, lon=6.428571, height=2.285714, clipid=0), ClipFHP4Tuple(lat=3.0, lon=5.0, height=2.0, clipid=0), ClipFHP4Tuple(lat=5.0, lon=3.571429, height=1.714286, clipid=0))\n\n    test 848 Fig 8: (ClipFHP4Tuple(lat=4.0, lon=12.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=-1.0, lon=12.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=3.0, lon=8.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=5.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=3.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=2.0, lon=1.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=6.0, lon=3.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=6.0, lon=11.0, height=0.0, clipid=0))\n    test 849 Fig 14: (ClipFHP4Tuple(lat=3.0, lon=3.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=0.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=6.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=6.0, lon=6.0, height=0.0, clipid=1), ClipFHP4Tuple(lat=9.0, lon=3.0, height=0.0, clipid=1), ClipFHP4Tuple(lat=6.0, lon=0.0, height=0.0, clipid=1), ClipFHP4Tuple(lat=3.0, lon=3.0, height=0.0, clipid=1))\n    test 850 Fig 15: (ClipFHP4Tuple(lat=1.0, lon=3.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=4.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=2.0, lon=4.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=2.0, lon=0.0, height=0.0, clipid=1), ClipFHP4Tuple(lat=0.0, lon=0.0, height=0.0, clipid=1), ClipFHP4Tuple(lat=1.0, lon=1.0, height=0.0, clipid=1))\n    test 851 Fig 16: (ClipFHP4Tuple(lat=0.0, lon=0.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=1.0, lon=0.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=2.0, lon=2.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=2.0, height=0.0, clipid=0))\n    test 852 Fig 18: ((-10, -10, 0), (-10, -2, 0), (-8, -2, 0), (-8, -8, 0), (-2, -8, 0), (-2, -10, 0), (2, -10, 1), (2, -8, 1), (0, -8, 1), (0, -10, 1), (10, -6, 2), (8, -6, 2), (8, -8, 2), (10, -8, 2), (10, 8, 3), (8, 8, 3), (8, 6, 3), (10, 6, 3), (-6, 10, 4), (-6, 8, 4), (-4, 8, 4), (-4, 10, 4), (-10, 10, 5), (-10, 8, 5), (-8, 8, 5), (-8, 10, 5), (-10, 4, 6), (-8, 4, 6), (-8, 6, 6), (-10, 6, 6), (-10, 0, 7), (-8, 0, 7), (-8, 2, 7), (-10, 2, 7), (-6, 6, 8), (-4, 6, 8), (-4, 4, 8), (-6, 4, 8), (-6, 0, 9), (-4, 0, 9), (-4, 2, 9), (-6, 2, 9), (-6, -6, 10), (-2, -6, 10), (-2, -4, 10), (-4, -4, 10), (-4, -2, 10), (-6, -2, 10), (2, -6, 11), (2, -4, 11), (0, -4, 11), (0, -6, 11), (12, 8, 12), (20, 8, 12), (20, -8, 12), (12, -8, 12), (12, -6, 12), (18, -6, 12), (18, 6, 12), (12, 6, 12), (12, -4, 13), (14, -4, 13), (14, 4, 13), (12, 4, 13))\n\n    all 852 testClipy.py tests passed (pygeodesy 26.3.26 Python 3.13.12 64bit arm64 coverage 7.10.7 geographiclib 2.1 numpy 2.3.3 scipy 1.16.2 Math 2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 macOS 26.3.1 isLazy 1 -W  default) 259.821 ms\nrunning /Library/Framewo....n3.13 -W default ~/PyGeodesy/test/testConstants.py\n\n    testing testConstants.py 25.10.15 (module pygeodesy.constants 26.02.09) isLazy=1\n    test 1 _0_0: 0.0\n    test 2 _0_0001: 0.0001\n    test 3 _0_001: 0.001\n    test 4 _0_01: 0.01\n    test 5 _0_1: 0.1\n    test 6 _0_125: 0.125\n    test 7 _0_25: 0.25\n    test 8 _0_5: 0.5\n    test 9 _0_75: 0.75\n    test 10 _1000_0: 1000.0\n    test 11 _100_0: 100.0\n    test 12 _10_0: 10.0\n    test 13 _16_0: 16.0\n    test 14 _180_0: 180.0\n    test 15 _1_0: 1.0\n    test 16 _1_3rd: 0.3333333333333333  FAILED, KNOWN, expected 1.3rd\n    test 17 _1_5: 1.5\n    test 18 _1_75: 1.75\n\n    test 19 _1_EPS: _1_EPS (4.50359962737e+15)\n    test 20 _1_EPS: _1_EPS\n    test 21 _1_EPS: True\n    test 22 _270_0: 270.0\n    test 23 _2_0: 2.0\n    test 24 _2_3rd: 0.6666666666666666  FAILED, KNOWN, expected 2.3rd\n\n    test 25 _2__PI: _2__PI (0.636619772368)\n    test 26 _2__PI: _2__PI\n    test 27 _2__PI: True\n    test 28 _32_0: 32.0\n    test 29 _3600_0: 3600.0\n    test 30 _360_0: 360.0\n    test 31 _3_0: 3.0\n    test 32 _45_0: 45.0\n    test 33 _4_0: 4.0\n    test 34 _5_0: 5.0\n    test 35 _60_0: 60.0\n    test 36 _64_0: 64.0\n    test 37 _6_0: 6.0\n    test 38 _720_0: 720.0\n\n    test 39 _89_999: _89_999 (90.0)\n    test 40 _89_999: _89_999\n    test 41 _89_999: True\n    test 42 _8_0: 8.0\n    test 43 _90_0: 90.0\n    test 44 _9_0: 9.0\n\n    test 45 _EPS2e4: _EPS2e4 (4.4408920985e-12)\n    test 46 _EPS2e4: _EPS2e4\n    test 47 _EPS2e4: True\n\n    test 48 _EPS4e8: _EPS4e8 (8.881784197e-08)\n    test 49 _EPS4e8: _EPS4e8\n    test 50 _EPS4e8: True\n\n    test 51 _EPSjam: _EPSjam (1.81898940355e-12)\n    test 52 _EPSjam: _EPSjam\n    test 53 _EPSjam: True\n\n    test 54 _EPSmin: _EPSmin (1.49166814624e-154)\n    test 55 _EPSmin: _EPSmin\n    test 56 _EPSmin: True\n\n    test 57 _EPSqrt: _EPSqrt (1.49011611938e-08)\n    test 58 _EPSqrt: _EPSqrt\n    test 59 _EPSqrt: True\n\n    test 60 _EPStol: _EPStol (1.49011611938e-09)\n    test 61 _EPStol: _EPStol\n    test 62 _EPStol: True\n    test 63 _inf: inf\n\n    test 64 _K0_UPS: _K0_UPS (0.994)\n    test 65 _K0_UPS: _K0_UPS\n    test 66 _K0_UPS: True\n\n    test 67 _K0_UTM: _K0_UTM (0.9996)\n    test 68 _K0_UTM: _K0_UTM\n    test 69 _K0_UTM: True\n    test 70 _M_KM: 1000.0  FAILED, KNOWN, expected M.KM\n    test 71 _M_NM: 1852.0  FAILED, KNOWN, expected M.NM\n    test 72 _M_SM: 1609.344  FAILED, KNOWN, expected M.SM\n    test 73 _N_0_0: -0.0  FAILED, KNOWN, expected N.0.0\n    test 74 _N_0_5: -0.5  FAILED, KNOWN, expected N.0.5\n    test 75 _N_180_0: -180.0  FAILED, KNOWN, expected N.180.0\n    test 76 _N_1_0: -1.0  FAILED, KNOWN, expected N.1.0\n    test 77 _N_2_0: -2.0  FAILED, KNOWN, expected N.2.0\n    test 78 _N_90_0: -90.0  FAILED, KNOWN, expected N.90.0\n    test 79 _nan: nan\n    test 80 _pi: 3.141592653589793  FAILED, KNOWN, expected pi\n\n    test 81 _SQRT2: _SQRT2 (1.41421356237)\n    test 82 _SQRT2: _SQRT2\n    test 83 _SQRT2: True\n\n    test 84 _SQRT2_2: _SQRT2_2 (0.707106781187)\n    test 85 _SQRT2_2: _SQRT2_2\n    test 86 _SQRT2_2: True\n\n    test 87 _SQRT3: _SQRT3 (1.73205080757)\n    test 88 _SQRT3: _SQRT3\n    test 89 _SQRT3: True\n\n    test 90 _SQRT3_2: _SQRT3_2 (0.866025403784)\n    test 91 _SQRT3_2: _SQRT3_2\n    test 92 _SQRT3_2: True\n\n    test 93 DIG: DIG (15)\n    test 94 DIG: DIG\n    test 95 DIG: True\n    test 96 DIG: True\n\n    test 97 EPS: EPS (2.22044604925e-16)\n    test 98 EPS: EPS\n    test 99 EPS: True\n    test 100 EPS: True\n\n    test 101 EPS0: EPS0 (4.93038065763e-32)\n    test 102 EPS0: EPS0\n    test 103 EPS0: True\n    test 104 EPS0: True\n\n    test 105 EPS02: EPS02 (2.43086534291e-63)\n    test 106 EPS02: EPS02\n    test 107 EPS02: True\n    test 108 EPS02: True\n\n    test 109 EPS1: EPS1 (1.0)\n    test 110 EPS1: EPS1\n    test 111 EPS1: True\n    test 112 EPS1: True\n\n    test 113 EPS2: EPS2 (4.4408920985e-16)\n    test 114 EPS2: EPS2\n    test 115 EPS2: True\n    test 116 EPS2: True\n\n    test 117 EPS4: EPS4 (8.881784197e-16)\n    test 118 EPS4: EPS4\n    test 119 EPS4: True\n    test 120 EPS4: True\n\n    test 121 EPS8: EPS8 (1.7763568394e-15)\n    test 122 EPS8: EPS8\n    test 123 EPS8: True\n    test 124 EPS8: True\n\n    test 125 EPS_2: EPS_2 (1.11022302463e-16)\n    test 126 EPS_2: EPS_2\n    test 127 EPS_2: True\n    test 128 EPS_2: True\n\n    test 129 INF: INF (inf)\n    test 130 INF: INF\n    test 131 INF: True\n    test 132 INF: True\n\n    test 133 INT0: INT0 (0)\n    test 134 INT0: INT0\n    test 135 INT0: True\n    test 136 INT0: True\n\n    test 137 MANT_DIG: MANT_DIG (53)\n    test 138 MANT_DIG: MANT_DIG\n    test 139 MANT_DIG: True\n    test 140 MANT_DIG: True\n\n    test 141 MAX: MAX (1.79769313486e+308)\n    test 142 MAX: MAX\n    test 143 MAX: True\n    test 144 MAX: True\n\n    test 145 MAX_EXP: MAX_EXP (1024)\n    test 146 MAX_EXP: MAX_EXP\n    test 147 MAX_EXP: True\n    test 148 MAX_EXP: True\n\n    test 149 MIN: MIN (2.22507385851e-308)\n    test 150 MIN: MIN\n    test 151 MIN: True\n    test 152 MIN: True\n\n    test 153 MIN_EXP: MIN_EXP (-1021)\n    test 154 MIN_EXP: MIN_EXP\n    test 155 MIN_EXP: True\n    test 156 MIN_EXP: True\n\n    test 157 NAN: NAN (nan)\n    test 158 NAN: NAN\n    test 159 NAN: True\n    test 160 NAN: True\n\n    test 161 NEG0: NEG0 (-0)\n    test 162 NEG0: NEG0\n    test 163 NEG0: True\n    test 164 NEG0: True\n\n    test 165 NINF: NINF (-inf)\n    test 166 NINF: NINF\n    test 167 NINF: True\n    test 168 NINF: True\n\n    test 169 OVERFLOW: OVERFLOW (2.02824096037e+31)\n    test 170 OVERFLOW: OVERFLOW\n    test 171 OVERFLOW: True\n    test 172 OVERFLOW: True\n\n    test 173 PI: PI (3.14159265359)\n    test 174 PI: PI\n    test 175 PI: True\n    test 176 PI: True\n\n    test 177 PI2: PI2 (6.28318530718)\n    test 178 PI2: PI2\n    test 179 PI2: True\n    test 180 PI2: True\n\n    test 181 PI3: PI3 (9.42477796077)\n    test 182 PI3: PI3\n    test 183 PI3: True\n    test 184 PI3: True\n\n    test 185 PI3_2: PI3_2 (4.71238898038)\n    test 186 PI3_2: PI3_2\n    test 187 PI3_2: True\n    test 188 PI3_2: True\n\n    test 189 PI4: PI4 (12.5663706144)\n    test 190 PI4: PI4\n    test 191 PI4: True\n    test 192 PI4: True\n\n    test 193 PI_2: PI_2 (1.57079632679)\n    test 194 PI_2: PI_2\n    test 195 PI_2: True\n    test 196 PI_2: True\n\n    test 197 PI_3: PI_3 (1.0471975512)\n    test 198 PI_3: PI_3\n    test 199 PI_3: True\n    test 200 PI_3: True\n\n    test 201 PI_4: PI_4 (0.785398163397)\n    test 202 PI_4: PI_4\n    test 203 PI_4: True\n    test 204 PI_4: True\n\n    test 205 PI_6: PI_6 (0.523598775598)\n    test 206 PI_6: PI_6\n    test 207 PI_6: True\n    test 208 PI_6: True\n\n    test 209 R_FM: R_FM (6371000.0)\n    test 210 R_FM: R_FM\n    test 211 R_FM: True\n    test 212 R_FM: True\n\n    test 213 R_GM: R_GM (6371230.0)\n    test 214 R_GM: R_GM\n    test 215 R_GM: True\n    test 216 R_GM: True\n\n    test 217 R_KM: R_KM (6371.00877141)\n    test 218 R_KM: R_KM\n    test 219 R_KM: True\n    test 220 R_KM: True\n\n    test 221 R_M: R_M (6371008.77141)\n    test 222 R_M: R_M\n    test 223 R_M: True\n    test 224 R_M: True\n\n    test 225 R_MA: R_MA (6378137.0)\n    test 226 R_MA: R_MA\n    test 227 R_MA: True\n    test 228 R_MA: True\n\n    test 229 R_MB: R_MB (6356752.3)\n    test 230 R_MB: R_MB\n    test 231 R_MB: True\n    test 232 R_MB: True\n\n    test 233 R_NM: R_NM (3440.069531)\n    test 234 R_NM: R_NM\n    test 235 R_NM: True\n    test 236 R_NM: True\n\n    test 237 R_QM: R_QM (6372797.56086)\n    test 238 R_QM: R_QM\n    test 239 R_QM: True\n    test 240 R_QM: True\n\n    test 241 R_SM: R_SM (3958.76131605)\n    test 242 R_SM: R_SM\n    test 243 R_SM: True\n    test 244 R_SM: True\n\n    test 245 R_VM: R_VM (6366707.01949)\n    test 246 R_VM: R_VM\n    test 247 R_VM: True\n    test 248 R_VM: True\n\n    test 249 EPS: True\n    test 250 EPS+1: True\n    test 251 EPS-1: True\n\n    test 252 EPS0: True\n    test 253 EPS02: True\n\n    test 254 EPS_2: True\n    test 255 EPS_2: 1.1102230246251565e-16\n\n    test 256 EPS1: True\n    test 257 EPS1+1: True\n    test 258 EPS1-1: True\n\n    test 259 EPS2: True\n    test 260 EPS2: 4.440892098500626e-16\n\n    test 261 EPS4: True\n    test 262 EPS4: 8.881784197001252e-16\n\n    test 263 INF: True\n    test 264 INF: False\n    test 265 NINF: True\n    test 266 NINF: -inf\n\n    test 267 INT0: 0\n    test 268 INT0: True\n    test 269 INT0: True\n    test 270 INT0: False\n    test 271 INT0: False\n    test 272 INT0: False\n\n    test 273 NAN: True\n    test 274 NAN: False\n    test 275 NAN: False\n\n    test 276 NEG0: -0.0\n    test 277 NEG0: True\n    test 278 NEG0: False\n    test 279 NEG0: 0.0\n\n    test 280 _off90: True\n    test 281 _off90: True\n    test 282 float_: True\n    test 283 floats_: (1.0, 2.0, 3.0)\n\n    test 284 _0_0: True\n\n    test 285 _0_0s: 0\n    test 286 _0_0s: 0\n    test 287 _0_0s: 1\n    test 288 _0_0s: 1\n    test 289 _0_0s: 2\n    test 290 _0_0s: 2\n    test 291 _0_0s: 3\n    test 292 _0_0s: 3\n    test 293 _0_0s: 5\n    test 294 _0_0s: 5\n    test 295 _0_0s: 8\n    test 296 _0_0s: 8\n    test 297 _0_0s: 9\n    test 298 _0_0s: 9\n    test 299 _0_0s: 10\n    test 300 _0_0s: 10\n    test 301 _0_0s: 12\n    test 302 _0_0s: 12\n    test 303 _0_0s: 25\n    test 304 _0_0s: 25\n    test 305 _0_0s: 49\n    test 306 _0_0s: 49\n    test 307 _0_0s: 129\n    test 308 _0_0s: 129\n    test 309 _0_0s: 257\n    test 310 _0_0s: 257\n\n    12 of 310 testConstants.py tests (3.9%) FAILED, ALL KNOWN (pygeodesy 26.3.26 Python 3.13.12 64bit arm64 coverage 7.10.7 geographiclib 2.1 numpy 2.3.3 scipy 1.16.2 Math 2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 macOS 26.3.1 isLazy 1 -W  default) 1.843 ms\nrunning /Library/Framewo....n3.13 -W default ~/PyGeodesy/test/testCss.py\n\n    testing testCss.py 23.03.27 (module pygeodesy.css 25.04.14) isLazy=1\n    test 1 CassiniSoldner(48.833333, 2.333333, name='Paris'): 48.833333 2.333333\n    test 2 Exact: False\n    test 3 forward: -37518.854545, 230003.561828\n    test 4 reverse: 50.9, 1.8\n    test 5 forward4: -37518.854545, 230003.561828, 89.586104, 0.999983\n    test 6 equatorarc: 89.662511\n    test 7 equatorazimuth: 39.192992\n    test 8 copy(<class 'type'>): (<class 'pygeodesy.css.CassiniSoldner'>, True)\n    test 9 CassiniSoldner.copy(): (<class 'pygeodesy.css.CassiniSoldner'>, True)\n    test 10 reverse: 50.899937, 1.793161\n    test 11 forward: -38000.0, 230000.0\n    test 12 reverse4: 50.899937, 1.793161, 89.580797, 0.999982\n    test 13 reverse(pygeodesy.ellipsoidalKarney): LatLon(50°53′59.77″N, 001°47′35.38″E)\n    test 14 reverse(pygeodesy.ellipsoidalExact): LatLon(50°53′59.77″N, 001°47′35.38″E)\n    test 15 reverse(pygeodesy.ellipsoidalNvector): LatLon(50°53′59.77″N, 001°47′35.38″E)\n    test 16 reverse(pygeodesy.ellipsoidalVincenty): LatLon(50°53′59.77″N, 001°47′35.38″E)\n    test 17 reverse(pygeodesy.ellipsoidalGeodSolve): LatLon(50°53′59.77″N, 001°47′35.38″E)\n    test 18 CassiniSoldner(51.4934, 0.0098, name='Greenwich'): 51.4934 0.0098\n    test 19 forward: 170557.151692, -293280.6051\n    test 20 reverse: 48.833333, 2.333333\n    test 21 hypot: 339268.707  FAILED, KNOWN, expected 338901.865\n    test 22 toCss: -37518.854545 230003.561828 +1.00m\n    test 23 toCss: [E:-37518.854545, N:230003.561828, H:+1.00m, name:'Calais', C:CassiniSoldner(48.833333, 2.333333, name='Paris')]\n    test 24 Css.easting: -37518.854545\n    test 25 Css.northing: 230003.561828\n    test 26 Css.height: 1.0\n    test 27 Css.azi: 89.586103815\n    test 28 Css.rk: 0.999982722\n    test 29 Css.name: Calais\n    test 30 Css.cs0: 48.833333 2.333333\n    test 31 Css.toLatLon: LatLon(50°54′00.0″N, 001°48′00.0″E, +1.00m)\n    test 32 Css.toLatLon.height: 1.0\n    test 33 Css.toLatLon.name: Calais\n    test 34 Css.toLatLon.datum.name: WGS84\n    test 35 Css.toLatLon.height: 1.0  FAILED, KNOWN, expected height(1.0)\n    test 36 copy(<class 'type'>): (<class 'pygeodesy.css.Css'>, True)\n    test 37 Css.copy(): (<class 'pygeodesy.css.Css'>, True)\n    test 38 cs0.name: Paris\n    test 39 cs0.name: Default\n    test 40 cs0.flattening: 0.003352811\n    test 41 cs0.lat0: 0.0\n    test 42 cs0.equatoradius: 6378137.0\n    test 43 cs0.lat0: 0.0  FAILED, KNOWN, expected lat(0.0)\n    test 44 classof.height: 1.0\n    test 45 classof.azi: 89.586103815\n    test 46 classof.rk: 0.999982722\n    test 47 classof.name: Calais\n    test 48 classof.cs0: 48.833333 2.333333\n    test 49 cs0.latlon0: (48.833333, 2.333333)\n    test 50 cs0.latlon0: (48.833333, 2.333333)\n    test 51 cs0.latlon0: latlon0 (None): 'NoneType' object has no attribute 'lat'\n    test 52 cs0.latlon0: (48.0, 2.0)\n    test 53 datum: True\n    test 54 datum: False\n    test 55 forward6: (39142.269011, -229679.266845, 90.401497, 0.999981, 90.352206, 41.257592)\n\n    3 of 55 testCss.py tests (5.5%) FAILED, ALL KNOWN (pygeodesy 26.3.26 Python 3.13.12 64bit arm64 coverage 7.10.7 geographiclib 2.1 numpy 2.3.3 scipy 1.16.2 Math 2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 macOS 26.3.1 isLazy 1 -W  default) 7.231 ms\nrunning /Library/Framewo....n3.13 -W default ~/PyGeodesy/test/testDatums.py\n\n    testing testDatums.py 24.05.17 (module pygeodesy.datums 26.01.13) isLazy=1\n    test 1 ellipsoid: True\n    test 2 transform: True\n    test 3 datum: True\n    test 4 TestEllipsiod: name='TestEllipsiod', a=1000, f=0, f_=0, b=1000\n    test 5 TestTransform: name='TestTransform', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=0.0, ry=0.0, rz=0.0, s=0.0, sx=0.0, sy=0.0, sz=0.0\n    test 6 TestDatum: name='TestDatum', ellipsoid=Ellipsoids.TestEllipsiod, transform=Transforms.TestTransform\n    test 7 ED50.inverse().inverse(): True\n    test 8 Sphere: True\n\n    test 9 all: all\n\n    test 10 BD72: name='BD72', ellipsoid=Ellipsoids.Intl1924, transform=Transforms.BD72\n    test 11 Intl1924: name='Intl1924', a=6378388, f=0.003367, f_=297, b=6356911.94612795\n    test 12 BD72: name='BD72', tx=106.87, ty=-52.298, tz=103.72, s1=1.0, rx=-1.6317e-06, ry=-2.2154e-06, rz=-8.9311e-06, s=1.2727, sx=-0.33657, sy=-0.45696, sz=-1.8422\n\n    test 13 DHDN: name='DHDN', ellipsoid=Ellipsoids.Bessel1841, transform=Transforms.DHDN\n    test 14 Bessel1841: name='Bessel1841', a=6377397.155, f=0.00334277, f_=299.1528128, b=6356078.962818\n    test 15 DHDN: name='DHDN', tx=-591.28, ty=-81.35, tz=-396.39, s1=0.99999, rx=7.1607e-06, ry=-3.5682e-07, rz=-7.0686e-06, s=-9.82, sx=1.477, sy=-0.0736, sz=-1.458\n\n    test 16 ED50: name='ED50', ellipsoid=Ellipsoids.Intl1924, transform=Transforms.ED50\n    test 17 Intl1924: name='Intl1924', a=6378388, f=0.003367, f_=297, b=6356911.94612795\n    test 18 ED50: name='ED50', tx=89.5, ty=93.8, tz=123.1, s1=1.0, rx=0.0, ry=0.0, rz=7.5631e-07, s=-1.2, sx=0.0, sy=0.0, sz=0.156\n\n    test 19 GDA2020: name='GDA2020', ellipsoid=Ellipsoids.GRS80, transform=Transforms.WGS84\n    test 20 GRS80: name='GRS80', a=6378137, f=0.00335281, f_=298.2572221, b=6356752.31414035\n    test 21 WGS84: name='WGS84', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=0.0, ry=0.0, rz=0.0, s=0.0, sx=0.0, sy=0.0, sz=0.0\n\n    test 22 GRS80: name='GRS80', ellipsoid=Ellipsoids.GRS80, transform=Transforms.WGS84\n    test 23 GRS80: name='GRS80', a=6378137, f=0.00335281, f_=298.2572221, b=6356752.31414035\n    test 24 WGS84: name='WGS84', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=0.0, ry=0.0, rz=0.0, s=0.0, sx=0.0, sy=0.0, sz=0.0\n\n    test 25 Irl1975: name='Irl1975', ellipsoid=Ellipsoids.AiryModified, transform=Transforms.Irl1975\n    test 26 AiryModified: name='AiryModified', a=6377340.189, f=0.00334085, f_=299.3249646, b=6356034.44793853\n    test 27 Irl1975: name='Irl1975', tx=-482.53, ty=130.6, tz=-564.56, s1=0.99999, rx=5.0518e-06, ry=1.0375e-06, rz=3.0592e-06, s=-8.15, sx=1.042, sy=0.214, sz=0.631\n\n    test 28 Krassovski1940: name='Krassovski1940', ellipsoid=Ellipsoids.Krassovski1940, transform=Transforms.Krassovski1940\n    test 29 Krassovski1940: name='Krassovski1940', a=6378245, f=0.00335233, f_=298.3, b=6356863.01877305\n    test 30 Krassovski1940: name='Krassovski1940', tx=-24, ty=123.0, tz=94.0, s1=1.0, rx=-9.6963e-08, ry=1.2605e-06, rz=6.3026e-07, s=-2.423, sx=-0.02, sy=0.26, sz=0.13\n\n    test 31 Krassowsky1940: name='Krassowsky1940', ellipsoid=Ellipsoids.Krassowsky1940, transform=Transforms.Krassowsky1940\n    test 32 Krassowsky1940: name='Krassowsky1940', a=6378245, f=0.00335233, f_=298.3, b=6356863.01877305\n    test 33 Krassowsky1940: name='Krassowsky1940', tx=-24, ty=123.0, tz=94.0, s1=1.0, rx=-9.6963e-08, ry=1.2605e-06, rz=6.3026e-07, s=-2.423, sx=-0.02, sy=0.26, sz=0.13\n\n    test 34 MGI: name='MGI', ellipsoid=Ellipsoids.Bessel1841, transform=Transforms.MGI\n    test 35 Bessel1841: name='Bessel1841', a=6377397.155, f=0.00334277, f_=299.1528128, b=6356078.962818\n    test 36 MGI: name='MGI', tx=-577.33, ty=-90.129, tz=-463.92, s1=1.0, rx=2.4905e-05, ry=7.1462e-06, rz=2.5681e-05, s=-2.423, sx=5.137, sy=1.474, sz=5.297\n\n    test 37 NAD27: name='NAD27', ellipsoid=Ellipsoids.Clarke1866, transform=Transforms.NAD27\n    test 38 Clarke1866: name='Clarke1866', a=6378206.4, f=0.00339008, f_=294.97869821, b=6356583.8\n    test 39 NAD27: name='NAD27', tx=8.0, ty=-160, tz=-176, s1=1.0, rx=0.0, ry=0.0, rz=0.0, s=0.0, sx=0.0, sy=0.0, sz=0.0\n\n    test 40 NAD83: name='NAD83', ellipsoid=Ellipsoids.GRS80, transform=Transforms.NAD83\n    test 41 GRS80: name='GRS80', a=6378137, f=0.00335281, f_=298.2572221, b=6356752.31414035\n    test 42 NAD83: name='NAD83', tx=1.004, ty=-1.91, tz=-0.515, s1=1.0, rx=1.2945e-07, ry=1.6484e-09, rz=5.333e-08, s=-0.0015, sx=0.0267, sy=0.00034, sz=0.011\n\n    test 43 NTF: name='NTF', ellipsoid=Ellipsoids.Clarke1880IGN, transform=Transforms.NTF\n    test 44 Clarke1880IGN: name='Clarke1880IGN', a=6378249.2, f=0.00340755, f_=293.46602129, b=6356515\n    test 45 NTF: name='NTF', tx=-168, ty=-60, tz=320.0, s1=1.0, rx=0.0, ry=0.0, rz=0.0, s=0.0, sx=0.0, sy=0.0, sz=0.0\n\n    test 46 OSGB36: name='OSGB36', ellipsoid=Ellipsoids.Airy1830, transform=Transforms.OSGB36\n    test 47 Airy1830: name='Airy1830', a=6377563.396, f=0.00334085, f_=299.3249646, b=6356256.90923729\n    test 48 OSGB36: name='OSGB36', tx=-446.45, ty=125.16, tz=-542.06, s1=1.0, rx=-7.2819e-07, ry=-1.1975e-06, rz=-4.0826e-06, s=20.489, sx=-0.1502, sy=-0.247, sz=-0.8421\n\n    test 49 Potsdam: name='Potsdam', ellipsoid=Ellipsoids.Bessel1841, transform=Transforms.Bessel1841\n    test 50 Bessel1841: name='Bessel1841', a=6377397.155, f=0.00334277, f_=299.1528128, b=6356078.962818\n    test 51 Bessel1841: name='Bessel1841', tx=-582, ty=-105, tz=-414, s1=0.99999, rx=-5.0421e-06, ry=-1.6968e-06, rz=1.4932e-05, s=-8.3, sx=-1.04, sy=-0.35, sz=3.08\n\n    test 52 Sphere: name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84\n    test 53 Sphere: name='Sphere', a=6371008.771415, f=0, f_=0, b=6371008.771415\n    test 54 WGS84: name='WGS84', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=0.0, ry=0.0, rz=0.0, s=0.0, sx=0.0, sy=0.0, sz=0.0\n\n    test 55 TokyoJapan: name='TokyoJapan', ellipsoid=Ellipsoids.Bessel1841, transform=Transforms.TokyoJapan\n    test 56 Bessel1841: name='Bessel1841', a=6377397.155, f=0.00334277, f_=299.1528128, b=6356078.962818\n    test 57 TokyoJapan: name='TokyoJapan', tx=148.0, ty=-507, tz=-685, s1=1.0, rx=0.0, ry=0.0, rz=0.0, s=0.0, sx=0.0, sy=0.0, sz=0.0\n\n    test 58 WGS72: name='WGS72', ellipsoid=Ellipsoids.WGS72, transform=Transforms.WGS72\n    test 59 WGS72: name='WGS72', a=6378135, f=0.00335278, f_=298.26, b=6356750.52001609\n    test 60 WGS72: name='WGS72', tx=0.0, ty=0.0, tz=-4.5, s1=1.0, rx=0.0, ry=0.0, rz=2.6859e-06, s=-0.22, sx=0.0, sy=0.0, sz=0.554\n\n    test 61 WGS84: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 62 WGS84: name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518\n    test 63 WGS84: name='WGS84', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=0.0, ry=0.0, rz=0.0, s=0.0, sx=0.0, sy=0.0, sz=0.0\n\n    test 64 total: 18\n\n    all 64 testDatums.py tests passed (pygeodesy 26.3.26 Python 3.13.12 64bit arm64 coverage 7.10.7 geographiclib 2.1 numpy 2.3.3 scipy 1.16.2 Math 2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 macOS 26.3.1 isLazy 1 -W  default) 4.304 ms\nrunning /Library/Framewo....n3.13 -W default ~/PyGeodesy/test/testDeprecated.py\n./pygeodesy/deprecated/classes.py:185: DeprecationWarning: class L{HeightIDW<pygeodesy.deprecated.classes.HeightIDW>} has been DEPRECATED, use class L{HeightIDWeuclidean}.\n  deprecated_class(self.__class__)\n./pygeodesy/deprecated/classes.py:198: DeprecationWarning: class L{HeightIDW2<pygeodesy.deprecated.classes.HeightIDW2>} has been DEPRECATED, use class L{HeightIDWequirectangular}.\n  deprecated_class(self.__class__)\n./pygeodesy/deprecated/classes.py:212: DeprecationWarning: class L{HeightIDW3<pygeodesy.deprecated.classes.HeightIDW3>} has been DEPRECATED, use class L{HeightIDWhaversine}.\n  deprecated_class(self.__class__)\n./test/testDeprecated.py:38: DeprecationWarning: function L{areaof<pygeodesy.deprecated.functions.areaof>} has been DEPRECATED, use function L{pygeodesy.areaOf}.\n  self.test('areaof', areaof(p, radius=R_MA), '7.086883e+09', fmt='%.6e')  # PYCHOK DEPRECATED\n./test/testDeprecated.py:41: DeprecationWarning: function L{bounds<pygeodesy.deprecated.functions.bounds>} has been DEPRECATED, use function L{pygeodesy.boundsOf}.\n  b = map2(float, bounds(p))  # PYCHOK DEPRECATED\n./test/testDeprecated.py:44: DeprecationWarning: function L{anStr<pygeodesy.deprecated.functions.anStr>} has been DEPRECATED, use function L{pygeodesy.anstr}.\n  self.test('anStr', anStr('a-b?_'), 'a-b__')  # PYCHOK DEPRECATED\n./test/testDeprecated.py:46: DeprecationWarning: function L{clipStr<pygeodesy.deprecated.functions.clipStr>} has been DEPRECATED, use function L{pygeodesy.clips}.\n  self.test('clipStr', clipStr('test/testBasics.py', limit=12), 'test/t....ics.py')  # PYCHOK DEPRECATED\n./test/testDeprecated.py:48: DeprecationWarning: function L{decodeEPSG2<pygeodesy.deprecated.functions.decodeEPSG2>} has been DEPRECATED, use function L{epsg.decode2}.\n  self.test('decodeEPSG2', decodeEPSG2(32712), \"(12, 'S')\")  # PYCHOK DEPRECATED\n./test/testDeprecated.py:49: DeprecationWarning: function L{encodeEPSG<pygeodesy.deprecated.functions.encodeEPSG>} has been DEPRECATED, use function L{epsg.encode}.\n  self.test('encodeEPSG', encodeEPSG(12, hemipole='S'), '32712')  # PYCHOK DEPRECATED\n./test/testDeprecated.py:51: DeprecationWarning: function L{equirectangular3<pygeodesy.deprecated.functions.equirectangular3>} has been DEPRECATED, use function L{pygeodesy.equirectangular4}.\n  t = equirectangular3(0, 2, 3, 4)  # PYCHOK DEPRECATED\n./test/testDeprecated.py:55: DeprecationWarning: function L{fStr<pygeodesy.deprecated.functions.fStr>} has been DEPRECATED, use function L{fstr}.\n  self.test('fStr', fStr(0.123, prec=-6), '0.123000')  # PYCHOK DEPRECATED\n./test/testDeprecated.py:56: DeprecationWarning: function L{fStr<pygeodesy.deprecated.functions.fStr>} has been DEPRECATED, use function L{fstr}.\n  self.test('fStr', fStr(0.123, prec=+6), '0.123')  # PYCHOK DEPRECATED\n./test/testDeprecated.py:57: DeprecationWarning: function L{fStr<pygeodesy.deprecated.functions.fStr>} has been DEPRECATED, use function L{fstr}.\n  self.test('fStr', fStr((0.123, 456.789), prec=+6), '0.123, 456.789')  # PYCHOK DEPRECATED\n./test/testDeprecated.py:58: DeprecationWarning: function L{fStr<pygeodesy.deprecated.functions.fStr>} has been DEPRECATED, use function L{fstr}.\n  self.test('fStr', fStr(0.123, prec=-5, fmt='%.*e'), '1.23000e-01')  # PYCHOK DEPRECATED\n./test/testDeprecated.py:59: DeprecationWarning: function L{fStr<pygeodesy.deprecated.functions.fStr>} has been DEPRECATED, use function L{fstr}.\n  self.test('fStr', fStr(0.123, prec=+5, fmt='%.*e'), '1.23e-01')  # PYCHOK DEPRECATED\n./test/testDeprecated.py:60: DeprecationWarning: function L{fStr<pygeodesy.deprecated.functions.fStr>} has been DEPRECATED, use function L{fstr}.\n  self.test('fStr', fStr(0.123, prec=+6, fmt='%.*f'), '0.123')  # PYCHOK DEPRECATED\n./test/testDeprecated.py:62: DeprecationWarning: function L{hypot3<pygeodesy.deprecated.functions.hypot3>} has been DEPRECATED, use function L{pygeodesy.hypot_}.\n  h = hypot3(3000, 200, 10)  # PYCHOK DEPRECATED\n./test/testDeprecated.py:67: DeprecationWarning: function L{isenclosedby<pygeodesy.deprecated.functions.isenclosedby>} has been DEPRECATED, use function L{pygeodesy.isenclosedBy}.\n  self.test('isenclosedby', isenclosedby(LatLon(45.5, 1.5), b), True)  # PYCHOK DEPRECATED\n./test/testDeprecated.py:71: DeprecationWarning: function L{nearestOn3<pygeodesy.deprecated.functions.nearestOn3>} has been DEPRECATED, use function L{pygeodesy.nearestOn5}.\n  t = nearestOn3(p, b, adjust=False)  # PYCHOK DEPRECATED\n./test/testDeprecated.py:74: DeprecationWarning: function L{nearestOn4<pygeodesy.deprecated.functions.nearestOn4>} has been DEPRECATED, use function L{pygeodesy.nearestOn5}.\n  t = nearestOn4(p, b, adjust=False)  # PYCHOK DEPRECATED\n./test/testDeprecated.py:78: DeprecationWarning: function L{parseUTM<pygeodesy.deprecated.functions.parseUTM>} has been DEPRECATED, use function L{parseUTM5}.\n  t = parseUTM('18 N 516620 4574500', Utm=None)  # PYCHOK Milford, PA\n./test/testDeprecated.py:82: DeprecationWarning: function L{perimeterof<pygeodesy.deprecated.functions.perimeterof>} has been DEPRECATED, use function L{pygeodesy.perimeterOf}.\n  self.test('perimeterof', perimeterof(p, radius=R_MA), '2.687460e+05', fmt='%.6e')  # PYCHOK DEPRECATED\n./test/testDeprecated.py:85: DeprecationWarning: function L{polygon<pygeodesy.deprecated.functions.polygon>} has been DEPRECATED, use function L{pygeodesy.points2}.\n  self.test('polygon', polygon(p)[0], 3)  # PYCHOK DEPRECATED\n./test/testDeprecated.py:87: DeprecationWarning: function L{simplify2<pygeodesy.deprecated.functions.simplify2>} has been DEPRECATED, use function L{pygeodesy.simplifyRW}.\n  t = simplify2(RdpFFI, 16, adjust=True, shortest=False)  # PYCHOK DEPRECATED\n./test/testDeprecated.py:90: DeprecationWarning: function L{toUtm<pygeodesy.deprecated.functions.toUtm>} has been DEPRECATED, use function L{pygeodesy.toUtm8}.\n  t = toUtm('50°52′10″N', '115°39′03″W', Utm=None, name='Mt Assiniboine')  # PYCHOK DEPRECATED\n./test/testDeprecated.py:93: DeprecationWarning: function L{utmZoneBand2<pygeodesy.deprecated.functions.utmZoneBand2>} has been DEPRECATED, use function L{pygeodesy.utmZoneBand5}.\n  t = utmZoneBand2('50°52′10″N', '115°39′03″W')  # PYCHOK DEPRECATED\n\n    testing testDeprecated.py 25.05.09 (module pygeodesy.deprecated 26.02.08) isLazy=1\n\n    test 1 HeightIDW: True\n    test 2 HeightIDW2: True\n    test 3 HeightIDW3: True\n\n    test 4 areaof: 7.086883e+09\n    test 5 bounds: (-85.0, -180.0, 85.0, 90.0)\n    test 6 anStr: a-b__\n    test 7 clipStr: test/t....ics.py\n    test 8 decodeEPSG2: (12, 'S')\n    test 9 encodeEPSG: 32712\n    test 10 equirectangular3: 3\n    test 11 equirectangular3: 12.997\n    test 12 fStr: 0.123000\n    test 13 fStr: 0.123\n    test 14 fStr: 0.123, 456.789\n    test 15 fStr: 1.23000e-01\n    test 16 fStr: 1.23e-01\n    test 17 fStr: 0.123\n    test 18 hypot3: 3006.675905\n    test 19 isenclosedby: True\n    test 20 nearestOn3: 3\n    test 21 nearestOn3: (45.5, 1.5)\n    test 22 nearestOn4: 4\n    test 23 nearestOn4: (45.5, 1.5)\n    test 24 parseUTM: (18, 'N', 516620.0, 4574500.0)\n    test 25 perimeterof: 2.687460e+05\n    test 26 polygon: 3\n    test 27 simplify2: 4\n    test 28 toUtm: 6\n    test 29 utmZoneBand2: (11, 'U')\n\n    test 30 HeightIDW: True\n    test 31 HeightIDW2: True\n    test 32 HeightIDW3: True\n\n    test 33 areaof: 7.086883e+09\n    test 34 bounds: (-85.0, -180.0, 85.0, 90.0)\n    test 35 anStr: a-b__\n    test 36 clipStr: test/t....ics.py\n    test 37 decodeEPSG2: (12, 'S')\n    test 38 encodeEPSG: 32712\n    test 39 equirectangular3: 3\n    test 40 equirectangular3: 12.997\n    test 41 fStr: 0.123000\n    test 42 fStr: 0.123\n    test 43 fStr: 0.123, 456.789\n    test 44 fStr: 1.23000e-01\n    test 45 fStr: 1.23e-01\n    test 46 fStr: 0.123\n    test 47 hypot3: 3006.675905\n    test 48 isenclosedby: True\n    test 49 nearestOn3: 3\n    test 50 nearestOn3: (45.5, 1.5)\n    test 51 nearestOn4: 4\n    test 52 nearestOn4: (45.5, 1.5)\n    test 53 parseUTM: (18, 'N', 516620.0, 4574500.0)\n    test 54 perimeterof: 2.687460e+05\n    test 55 polygon: 3\n    test 56 simplify2: 4\n    test 57 toUtm: 6\n    test 58 utmZoneBand2: (11, 'U')\n\n    test 59 HeightIDW: True\n    test 60 HeightIDW2: True\n    test 61 HeightIDW3: True\n\n    test 62 areaof: 7.086883e+09\n    test 63 bounds: (-85.0, -180.0, 85.0, 90.0)\n    test 64 anStr: a-b__\n    test 65 clipStr: test/t....ics.py\n    test 66 decodeEPSG2: (12, 'S')\n    test 67 encodeEPSG: 32712\n    test 68 equirectangular3: 3\n    test 69 equirectangular3: 12.997\n    test 70 fStr: 0.123000\n    test 71 fStr: 0.123\n    test 72 fStr: 0.123, 456.789\n    test 73 fStr: 1.23000e-01\n    test 74 fStr: 1.23e-01\n    test 75 fStr: 0.123\n    test 76 hypot3: 3006.675905\n    test 77 isenclosedby: True\n    test 78 nearestOn3: 3\n    test 79 nearestOn3: (45.5, 1.5)\n    test 80 nearestOn4: 4\n    test 81 nearestOn4: (45.5, 1.5)\n    test 82 parseUTM: (18, 'N', 516620.0, 4574500.0)\n    test 83 perimeterof: 2.687460e+05\n    test 84 polygon: 3\n    test 85 simplify2: 4\n    test 86 toUtm: 6\n    test 87 utmZoneBand2: (11, 'U')\n\n    test 88 deprecated: 7\n    test 89 isDEPRECATED('bases'): True\n    test 90 isDEPRECATED('datum'): True\n    test 91 isDEPRECATED('nvector'): True\n    test 92 isDEPRECATED('rhumbaux'): True\n    test 93 isDEPRECATED('rhumbBase'): True\n    test 94 isDEPRECATED('rhumbsolve'): True\n    test 95 isDEPRECATED('rhumbx'): True\n\n    78 of 95 testDeprecated.py tests (82.1%) FAILED, incl. 78 DeprecationWarnings (pygeodesy 26.3.26 Python 3.13.12 64bit arm64 coverage 7.10.7 geographiclib 2.1 numpy 2.3.3 scipy 1.16.2 Math 2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 macOS 26.3.1 isLazy 1 -W  default) 32.615 ms\nrunning /Library/Framewo....n3.13 -W default ~/PyGeodesy/test/testDms.py\n\n    testing testDms.py 23.03.27 (module pygeodesy.dms 25.08.31) isLazy=1\n    test 1 parseDMS('0.0°'): 0.0\n    test 2 parseDMS('0°'): 0.0\n    test 3 parseDMS('000°00'00\"'): 0.0\n    test 4 parseDMS('000°00'00.0\"'): 0.0\n    test 5 parseDMS('000° 00'00\"'): 0.0\n    test 6 parseDMS('000°00 ' 00.0\"'): 0.0\n    test 7 parseDMS('000° 00' 00.0'): 0.0\n    test 8 parseDMS('000°-00′-00.0\"'): 0.0\n    test 9 parseDDDMMSS(1): 1.0\n    test 10 parseDMS(1): 1.0\n    test 11 parseDDDMMSS(12): 12.0\n    test 12 parseDMS(12): 12.0\n    test 13 parseDDDMMSS(123): 123.0\n    test 14 parseDMS(123): 123.0\n    test 15 parseDDDMMSS(1234): 12.567\n    test 16 parseDMS(1234): 1234.0\n    test 17 parseDDDMMSS(12345): 123.75\n    test 18 parseDMS(12345): 12345.0\n    test 19 parseDDDMMSS(123456): 12.582\n    test 20 parseDMS(123456): 123456.0\n    test 21 parseDDDMMSS(1234567): 123.769\n    test 22 parseDMS(1234567): 1234567.0\n    test 23 parseDDDMMSS(12345678): 1234.955\n    test 24 parseDMS(12345678): 12345678.0\n    test 25 parseDDDMMSS(0.1): 0.1\n    test 26 parseDMS(0.1): 0.1\n    test 27 parseDDDMMSS(1.2): 1.2\n    test 28 parseDMS(1.2): 1.2\n    test 29 parseDDDMMSS(12.3): 12.3\n    test 30 parseDMS(12.3): 12.3\n    test 31 parseDDDMMSS(123.4): 123.4\n    test 32 parseDMS(123.4): 123.4\n    test 33 parseDDDMMSS(1234.5): 12.575\n    test 34 parseDMS(1234.5): 1234.5\n    test 35 parseDDDMMSS(12345.6): 123.76\n    test 36 parseDMS(12345.6): 12345.6\n    test 37 parseDDDMMSS(123456.7): 12.582\n    test 38 parseDMS(123456.7): 123456.7\n    test 39 parseDDDMMSS('1N'): 1.0\n    test 40 parseDMS('1N'): 1.0\n    test 41 parseDDDMMSS('12S'): -12.0\n    test 42 parseDMS('12S'): -12.0\n    test 43 parseDDDMMSS('012.3W'): -12.3\n    test 44 parseDMS('012.3W'): -12.3\n    test 45 parseDDDMMSS('123E'): 123.0\n    test 46 parseDMS('123E'): 123.0\n    test 47 parseDDDMMSS('1234N'): 12.567\n    test 48 parseDMS('1234N'): 1234.0\n    test 49 parseDDDMMSS('12345E'): 123.75\n    test 50 parseDMS('12345E'): 12345.0\n    test 51 parseDDDMMSS('1234.5S'): -12.575\n    test 52 parseDMS('1234.5S'): -1234.5\n    test 53 parseDDDMMSS('12345.6E'): 123.76\n    test 54 parseDMS('12345.6E'): 12345.6\n    test 55 parseDDDMMSS('123456.7S'): -12.582\n    test 56 parseDMS('123456.7S'): -123456.7\n    test 57 parseDDDMMSS('1234567.8W'): -123.769\n    test 58 parseDMS('1234567.8W'): -1234567.8\n    test 59 parseDDDMMSS('12345678E'): 12345678.0\n    test 60 parseDMS('12345678E'): 12345678.0\n    test 61 parseDDDMMSS(345.0, NS): 3.75\n    test 62 parseDDDMMSS(345.0, EW): 345.0\n    test 63 parseDDDMMSS(5430.0, NS): 54.5\n    test 64 parseDDDMMSS(5430.0, EW): 54.5\n    test 65 parseDDDMMSS(76.5432, sexagecimal=False): 76.5432\n    test 66 parseDDDMMSS(76.5432, sexagecimal=True): 76.9089\n    test 67 parseDDDMMSS(00.0102, sexagecimal=False): 0.0102\n    test 68 parseDDDMMSS(00.0102, sexagecimal=True): 0.0172\n    test 69 parseDDDMMSS('12E'): ParseError(\"sexagecimal (False), strDDDMMSS ('12E') or suffix ('NSEW'): form DDMMSS applies N-S: invalid\")\n    test 70 parseDMS('12E'): 12.0\n    test 71 parseDDDMMSS('012.3S'): ParseError(\"sexagecimal (False), strDDDMMSS ('012.3S') or suffix ('NSEW'): form DDDMMSS applies E-W: invalid\")\n    test 72 parseDMS('012.3S'): -12.3\n    test 73 parseDDDMMSS('123N'): ParseError(\"sexagecimal (False), strDDDMMSS ('123N') or suffix ('NSEW'): form DDDMMSS applies E-W: invalid\")\n    test 74 parseDMS('123N'): 123.0\n    test 75 parseDDDMMSS('1234E'): ParseError(\"sexagecimal (False), strDDDMMSS ('1234E') or suffix ('NSEW'): form DDMMSS applies N-S: invalid\")\n    test 76 parseDMS('1234E'): 1234.0\n    test 77 parseDDDMMSS('12345N'): ParseError(\"sexagecimal (False), strDDDMMSS ('12345N') or suffix ('NSEW'): form DDDMMSS applies E-W: invalid\")\n    test 78 parseDMS('12345N'): 12345.0\n    test 79 parseDDDMMSS('1234.5W'): ParseError(\"sexagecimal (False), strDDDMMSS ('1234.5W') or suffix ('NSEW'): form DDMMSS applies N-S: invalid\")\n    test 80 parseDMS('1234.5W'): -1234.5\n    test 81 parseDDDMMSS('123456E'): ParseError(\"sexagecimal (False), strDDDMMSS ('123456E') or suffix ('NSEW'): form DDMMSS applies N-S: invalid\")\n    test 82 parseDMS('123456E'): 123456.0\n    test 83 parseDDDMMSS('1234567S'): ParseError(\"sexagecimal (False), strDDDMMSS ('1234567S') or suffix ('NSEW'): form DDDMMSS applies E-W: invalid\")\n    test 84 parseDMS('1234567S'): -1234567.0\n    test 85 parseDMS: strDMS (181) or suffix ('NSEW'): 181 beyond 180.0 degrees\n    test 86 parseDMS: -90.0\n    test 87 parse3llh: 51.477811, -0.001475, 0.0\n    test 88 toDMS(dm): 46°00.0′\n    test 89 toDMS(dm): 46°00.0′\n    test 90 toDMS(dm): 45°59.99′\n    test 91 toDMS(dm): 45°59.999′\n    test 92 toDMS(dms): 46°00′00.0″\n    test 93 toDMS(dms): 45°59′59.96″\n    test 94 toDMS(dms): 45°59′59.964″\n    test 95 toDMS(d60): 45.5959964\n    test 96 toDMS(d60): 45°45′45.36″\n    test 97 toDMS(d60): 45d45m45.36s\n    test 98 normDMS: 45°45′45.36″\n    test 99 parseDMS: 45.7626\n    test 100 toDMS(d): 45.7626°\n    test 101 toDMS(d): -45.7626°\n    test 102 toDMS(dm): 45°45.756′\n    test 103 toDMS(dm): -45°45.756′\n    test 104 toDMS(dms): 45°45′45.36″\n    test 105 toDMS(dms): -45°45′45.36″\n    test 106 toDMS(deg): 45.7626\n    test 107 toDMS(deg): -45.7626\n    test 108 toDMS(min): 4545.756\n    test 109 toDMS(min): -4545.756\n    test 110 toDMS(sec): 454545.36\n    test 111 toDMS(sec): -454545.36\n    test 112 toDMS(rad): 0.79871\n    test 113 toDMS(rad): -0.79871\n    test 114 toDMS(d60): 45.4545\n    test 115 toDMS(d60): -45.4545\n    test 116 toDMS(d): 45.7626°\n    test 117 toDMS(d): -45.7626°\n    test 118 toDMS(dm): 45°45.7560′\n    test 119 toDMS(dm): -45°45.7560′\n    test 120 toDMS(dms): 45°45′45.36″\n    test 121 toDMS(dms): -45°45′45.36″\n    test 122 toDMS(deg): 45.762600\n    test 123 toDMS(deg): -45.762600\n    test 124 toDMS(min): 4545.75600\n    test 125 toDMS(min): -4545.75600\n    test 126 toDMS(sec): 454545.360\n    test 127 toDMS(sec): -454545.360\n    test 128 toDMS(rad): 0.798708\n    test 129 toDMS(rad): -0.798708\n    test 130 toDMS(d60): 45.4545360\n    test 131 toDMS(d60): -45.4545360\n    test 132 toDMS(-d): 45.7626°\n    test 133 toDMS(-d): -45.7626°\n    test 134 toDMS(-dm): 45°45.7560′\n    test 135 toDMS(-dm): -45°45.7560′\n    test 136 toDMS(-dms): 45°45′45.36″\n    test 137 toDMS(-dms): -45°45′45.36″\n    test 138 toDMS(-deg): 45.762600\n    test 139 toDMS(-deg): -45.762600\n    test 140 toDMS(-min): 4545.75600\n    test 141 toDMS(-min): -4545.75600\n    test 142 toDMS(-sec): 454545.360\n    test 143 toDMS(-sec): -454545.360\n    test 144 toDMS(-rad): 0.798708\n    test 145 toDMS(-rad): -0.798708\n    test 146 toDMS(-d60): 45.45453600\n    test 147 toDMS(-d60): -45.45453600\n    test 148 toDMS(+d): +45.7626°\n    test 149 toDMS(+d): -45.7626°\n    test 150 toDMS(+dm): +45°45.7560′\n    test 151 toDMS(+dm): -45°45.7560′\n    test 152 toDMS(+dms): +45°45′45.36″\n    test 153 toDMS(+dms): -45°45′45.36″\n    test 154 toDMS(+deg): +45.762600\n    test 155 toDMS(+deg): -45.762600\n    test 156 toDMS(+min): +4545.75600\n    test 157 toDMS(+min): -4545.75600\n    test 158 toDMS(+sec): +454545.360\n    test 159 toDMS(+sec): -454545.360\n    test 160 toDMS(+rad): +0.798708\n    test 161 toDMS(+rad): -0.798708\n    test 162 toDMS(+d60): +45.454536\n    test 163 toDMS(+d60): -45.454536\n    test 164 compassPoint(1,): N\n    test 165 compassPoint(0,): N\n    test 166 compassPoint(-1,): N\n    test 167 compassPoint(359,): N\n    test 168 compassPoint(24,): NNE\n    test 169 compassPoint(24, 1): N\n    test 170 compassPoint(24, 2): NE\n    test 171 compassPoint(24, 3): NNE\n    test 172 compassPoint(226,): SW\n    test 173 compassPoint(226, 1): W\n    test 174 compassPoint(226, 2): SW\n    test 175 compassPoint(226, 3): SW\n    test 176 compassPoint(237,): WSW\n    test 177 compassPoint(237, 1): W\n    test 178 compassPoint(237, 2): SW\n    test 179 compassPoint(237, 3): WSW\n    test 180 compassPoint(11.25,): NNE\n    test 181 compassPoint(11.249,): N\n    test 182 compassPoint(-11.25,): N\n    test 183 compassPoint(348.749,): NNW\n    test 184 compassPoint(45, 1): E\n    test 185 compassPoint(44.99, 1): N\n    test 186 compassPoint(45, 2): NE\n    test 187 compassPoint(44.99, 2): NE\n    test 188 compassPoint(45, 3): NE\n    test 189 compassPoint(44.99, 3): NE\n    test 190 compassPoint(45, 4): NE\n    test 191 compassPoint(44.99, 4): NE\n    test 192 compassPoint(22.5, 1): N\n    test 193 compassPoint(22.49, 1): N\n    test 194 compassPoint(22.5, 2): NE\n    test 195 compassPoint(22.49, 2): N\n    test 196 compassPoint(22.5, 3): NNE\n    test 197 compassPoint(22.49, 3): NNE\n    test 198 compassPoint(22.5, 4): NNE\n    test 199 compassPoint(22.49, 4): NNE\n    test 200 compassPoint(11.25, 1): N\n    test 201 compassPoint(11.249, 1): N\n    test 202 compassPoint(11.25, 2): N\n    test 203 compassPoint(11.249, 2): N\n    test 204 compassPoint(11.25, 3): NNE\n    test 205 compassPoint(11.249, 3): N\n    test 206 compassPoint(11.25, 4): NbE\n    test 207 compassPoint(11.249, 4): NbE\n    test 208 compassPoint(24, 1): N\n    test 209 compassPoint(24, 2): NE\n    test 210 compassPoint(24, 3): NNE\n    test 211 compassPoint(24,): NNE\n    test 212 compassPoint(18, 3): NNE\n    test 213 compassPoint(11, 4): NbE\n    test 214 compassPoint(30, 4): NEbN\n    test 215 compassPoint(11.25): NbE\n    test 216 compassPoint(33.75): NEbN\n    test 217 compassPoint(56.25): NEbE\n    test 218 compassPoint(78.75): EbN\n    test 219 compassPoint(101.25): EbS\n    test 220 compassPoint(123.75): SEbE\n    test 221 compassPoint(146.25): SEbS\n    test 222 compassPoint(168.75): SbE\n    test 223 compassPoint(191.25): SbW\n    test 224 compassPoint(213.75): SWbS\n    test 225 compassPoint(236.25): SWbW\n    test 226 compassPoint(258.75): WbS\n    test 227 compassPoint(281.25): WbN\n    test 228 compassPoint(303.75): NWbW\n    test 229 compassPoint(326.25): NWbN\n    test 230 compassPoint(348.75): NbW\n    test 231 _DEG: +1.0101\n    test 232 _MIN: +0.606′\n    test 233 _SEC: +36.36″\n\n    all 233 testDms.py tests passed (pygeodesy 26.3.26 Python 3.13.12 64bit arm64 coverage 7.10.7 geographiclib 2.1 numpy 2.3.3 scipy 1.16.2 Math 2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 macOS 26.3.1 isLazy 1 -W  default) 2.963 ms\nrunning /Library/Framewo....n3.13 -W default ~/PyGeodesy/test/testEcef.py\n\n    testing testEcef.py 25.08.24 isLazy=1\n\n    test 1 EcefKarney: ...\n    test 2 name: Test\n    test 3 toStr: EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name='Test')  FAILED, KNOWN, expected EcefKarney\n    test 4 a, f: a=6378137.0, f=0.003352811, datum=Datum(name='_Test', ellipsoid=Ellipsoids._Test, transform=Transforms.Identity), name='Test'  FAILED, KNOWN, expected EcefKarney\n    test 5 copy(<class 'type'>): (<class 'pygeodesy.ecef.EcefKarney'>, True)\n    test 6 EcefKarney.copy(): (<class 'pygeodesy.ecef.EcefKarney'>, True)\n    test 7 forward: 27.99, 86.93, 8820.0\n    test 8 forward: 302271.4, 5635928.4, 2979666.1\n    test 9 name: Test\n    test 10 reverse: 302271.4, 5635928.4, 2979666.1\n    test 11 reverse: 27.99, 86.93, 8820.01\n    test 12 case: 1\n    test 13 iteration: None\n    test 14 name: Test\n    test 15 reverse: 302000.0, 5636000.0, 2980000.0\n    test 16 reverse: 27.99, 86.93, 9027.03\n    test 17 case: 1\n    test 18 iteration: None\n    test 19 forward: 27.99, 86.93, 8820.0\n    test 20 forward: 302271.43, 5635928.37, 2979666.13\n    test 21 forward: 33.3, 44.4, 6000.0\n    test 22 forward: 3816209.6, 3737108.55, 3485109.57\n    test 23 reverse: 3816209.6, 3737108.55, 3485109.57\n    test 24 reverse: 33.3, 44.4, 5999.996\n    test 25 case: 1\n    test 26 iteration: None\n    test 27 reverse: 30000.0, 30000.0, 0.0\n    test 28 reverse: 6.483, 45.0, -6335709.726\n    test 29 case: 3\n    test 30 iteration: None\n    test 31 forward: 6.483, 45.0, -6335709.726\n    test 32 forward: 30000.0, 30000.0, -0.0\n    test 33 Vermeille: -168.919\n    test 34 Vermeille: 190.939\n    test 35 Vermeille: (65.772506, 169.060801)\n    test 36 Vermeille: (1.147947, 3.141593)\n    test 37 reverse-1: 45.0, 120.0, 1000.0\n    test 38 forward-1: -2259149.0, 3912960.8, 4488055.5\n    test 39 xyzh-1: -2259149.0, 3912960.8, 4488055.5, 1000.0\n    test 40 philam-1: 0.7854, 2.0944\n    test 41 reverse-2: 45.0, 120.0, 2000.0\n    test 42 forward-2: -2259502.5, 3913573.2, 4488762.6\n    test 43 xyzh-2: -2259502.5, 3913573.2, 4488762.6, 2000.0\n    test 44 philam-2: 0.7854, 2.0944\n    test 45 reverse-3: 45.0, 120.0, 3000.0\n    test 46 forward-3: -2259856.1, 3914185.6, 4489469.7\n    test 47 xyzh-3: -2259856.1, 3914185.6, 4489469.7, 3000.0\n    test 48 philam-3: 0.7854, 2.0944\n    test 49 reverse-4: 45.0, 120.0, 4000.0\n    test 50 forward-4: -2260209.7, 3914798.0, 4490176.8\n    test 51 xyzh-4: -2260209.7, 3914798.0, 4490176.8, 4000.0\n    test 52 philam-4: 0.7854, 2.0944\n    test 53 reverse-5: 45.0, 120.0, 10000.0\n    test 54 forward-5: -2262331.0, 3918472.2, 4494419.5\n    test 55 xyzh-5: -2262331.0, 3918472.2, 4494419.5, 10000.0\n    test 56 philam-5: 0.7854, 2.0944\n    test 57 reverse-6: 45.0, 120.0, 20000.0\n    test 58 forward-6: -2265866.5, 3924595.9, 4501490.5\n    test 59 xyzh-6: -2265866.5, 3924595.9, 4501490.5, 20000.0\n    test 60 philam-6: 0.7854, 2.0944\n    test 61 reverse-7: 45.0, 120.0, 100000.0\n    test 62 forward-7: -2294150.8, 3973585.7, 4558059.1\n    test 63 xyzh-7: -2294150.8, 3973585.7, 4558059.1, 100000.0\n    test 64 philam-7: 0.7854, 2.0944\n    test 65 reverse-8: 45.0, 120.0, 800000.0\n    test 66 forward-8: -2541638.2, 4402246.4, 5053033.8\n    test 67 xyzh-8: -2541638.2, 4402246.4, 5053033.8, 800000.0\n    test 68 philam-8: 0.7854, 2.0944\n    test 69 reverse-9: 45.0, 120.0, 1000000.0\n    test 70 forward-9: -2612348.8, 4524720.9, 5194455.2\n    test 71 xyzh-9: -2612348.8, 4524720.9, 5194455.2, 1000000.0\n    test 72 philam-9: 0.7854, 2.0944\n    test 73 sudano: 45.0, 0.0, 100000.0\n    test 74 name: OS-UK\n    test 75 forward: 53.61199036, -1.66444222, 299.8\n    test 76 forward: 3790644.9, -110149.21, 5111482.97\n    test 77 reverse: 3790644.9, -110149.21, 5111482.97\n    test 78 reverse: 53.61199036, -1.66444223\n    test 79 reverse.lat: 53°36′43.1653″N\n    test 80 reverse.lon: 001°39′51.992″W\n    test 81 reverse.height: 299.800\n    test 82 case: 1\n    test 83 iteration: None\n    test 84 forward: -2430601.827685, -4702442.703125, 3546587.358103\n    test 85 reverse: 34.0, -117.333569, 251.702\n    test 86 forward_: -2430601.812953, -4702442.744488, 3546587.313654, 34.0, -117.333569, 251.702\n    test 87 EcefError: (0.0, 0.0, 0.0, 90.0, 0, -6356752.31414, 3, None, Datum(name='Datum', ellipsoid=Ellipsoids.GRS80, transform=Transforms.Identity))  FAILED, KNOWN, expected (0.0, 0.0, ...)\n    test 88 EcefError: height (None), lat (None) or lon (None)  FAILED, KNOWN, expected lat (None), lon (None) ...\n    test 89 EcefKarney: EcefKarney(a=None, f=None) ellipsoid: type(earth) (None): not a Datum, Ellipsoid, Ellipsoid2 or a_f2Tuple  FAILED, KNOWN, expected EcefKarney\n    test 90 Mx: (0.888348, 0.25558, -0.381466, -0.45917, 0.494465, -0.738015, 0.0, 0.830773, 0.556612)\n\n    test 91 EcefFarrell21: ...\n    test 92 name: Test\n    test 93 toStr: EcefFarrell21(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name='Test')  FAILED, KNOWN, expected EcefFarrell21\n    test 94 a, f: a=6378137.0, f=0.003352811, datum=Datum(name='_Test', ellipsoid=Ellipsoids._Test, transform=Transforms.Identity), name='Test'  FAILED, KNOWN, expected EcefFarrell21\n    test 95 copy(<class 'type'>): (<class 'pygeodesy.ecef.EcefFarrell21'>, True)\n    test 96 EcefFarrell21.copy(): (<class 'pygeodesy.ecef.EcefFarrell21'>, True)\n    test 97 forward: 27.99, 86.93, 8820.0\n    test 98 forward: 302271.4, 5635928.4, 2979666.1\n    test 99 name: Test\n    test 100 reverse: 302271.4, 5635928.4, 2979666.1\n    test 101 reverse: 27.99, 86.93, 8820.01\n    test 102 case: 1\n    test 103 iteration: None\n    test 104 name: Test\n    test 105 reverse: 302000.0, 5636000.0, 2980000.0\n    test 106 reverse: 27.99, 86.93, 9027.03\n    test 107 case: 1\n    test 108 iteration: None\n    test 109 forward: 27.99, 86.93, 8820.0\n    test 110 forward: 302271.43, 5635928.37, 2979666.13\n    test 111 forward: 33.3, 44.4, 6000.0\n    test 112 forward: 3816209.6, 3737108.55, 3485109.57\n    test 113 reverse: 3816209.6, 3737108.55, 3485109.57\n    test 114 reverse: 33.3, 44.4, 5999.996\n    test 115 case: 1\n    test 116 iteration: None\n    test 117 reverse: 30000.0, 30000.0, 0.0\n    test 118 reverse: 0.0, 45.0, -6335710.593  FAILED, KNOWN, expected 6.483, 45.0, -6335709.726\n    test 119 case: 3\n    test 120 iteration: None\n    test 121 forward: 6.483, 45.0, -6335709.726\n    test 122 forward: 30000.0, 30000.0, -0.0\n    test 123 Vermeille: -168.919\n    test 124 Vermeille: 190.939\n    test 125 Vermeille: (65.772506, 169.060801)\n    test 126 Vermeille: (1.147947, 3.141593)\n    test 127 reverse-1: 45.0, 120.0, 1000.0\n    test 128 forward-1: -2259149.0, 3912960.8, 4488055.5\n    test 129 xyzh-1: -2259149.0, 3912960.8, 4488055.5, 1000.0\n    test 130 philam-1: 0.7854, 2.0944\n    test 131 reverse-2: 45.0, 120.0, 2000.0\n    test 132 forward-2: -2259502.5, 3913573.2, 4488762.6\n    test 133 xyzh-2: -2259502.5, 3913573.2, 4488762.6, 2000.0\n    test 134 philam-2: 0.7854, 2.0944\n    test 135 reverse-3: 45.0, 120.0, 3000.0\n    test 136 forward-3: -2259856.1, 3914185.6, 4489469.7\n    test 137 xyzh-3: -2259856.1, 3914185.6, 4489469.7, 3000.0\n    test 138 philam-3: 0.7854, 2.0944\n    test 139 reverse-4: 45.0, 120.0, 4000.0\n    test 140 forward-4: -2260209.7, 3914798.0, 4490176.8\n    test 141 xyzh-4: -2260209.7, 3914798.0, 4490176.8, 4000.0\n    test 142 philam-4: 0.7854, 2.0944\n    test 143 reverse-5: 45.0, 120.0, 10000.0\n    test 144 forward-5: -2262331.0, 3918472.2, 4494419.5\n    test 145 xyzh-5: -2262331.0, 3918472.2, 4494419.5, 10000.0\n    test 146 philam-5: 0.7854, 2.0944\n    test 147 reverse-6: 45.0, 120.0, 20000.0\n    test 148 forward-6: -2265866.5, 3924595.9, 4501490.5\n    test 149 xyzh-6: -2265866.5, 3924595.9, 4501490.5, 20000.0\n    test 150 philam-6: 0.7854, 2.0944\n    test 151 reverse-7: 45.0, 120.0, 100000.0\n    test 152 forward-7: -2294150.8, 3973585.7, 4558059.1\n    test 153 xyzh-7: -2294150.8, 3973585.7, 4558059.1, 100000.0\n    test 154 philam-7: 0.7854, 2.0944\n    test 155 reverse-8: 45.0, 120.0, 800000.0\n    test 156 forward-8: -2541638.2, 4402246.4, 5053033.8\n    test 157 xyzh-8: -2541638.2, 4402246.4, 5053033.8, 800000.0\n    test 158 philam-8: 0.7854, 2.0944\n    test 159 reverse-9: 45.0, 120.0, 1000000.0\n    test 160 forward-9: -2612348.8, 4524720.9, 5194455.2\n    test 161 xyzh-9: -2612348.8, 4524720.9, 5194455.2, 1000000.0\n    test 162 philam-9: 0.7854, 2.0944\n    test 163 sudano: 45.0, 0.0, 100000.0\n    test 164 name: OS-UK\n    test 165 forward: 53.61199036, -1.66444222, 299.8\n    test 166 forward: 3790644.9, -110149.21, 5111482.97\n    test 167 reverse: 3790644.9, -110149.21, 5111482.97\n    test 168 reverse: 53.61199036, -1.66444223\n    test 169 reverse.lat: 53°36′43.1653″N\n    test 170 reverse.lon: 001°39′51.992″W\n    test 171 reverse.height: 299.800\n    test 172 case: 1\n    test 173 iteration: None\n    test 174 forward: -2430601.827685, -4702442.703125, 3546587.358103\n    test 175 reverse: 34.0, -117.333569, 251.702\n    test 176 forward_: -2430601.812953, -4702442.744488, 3546587.313654, 34.0, -117.333569, 251.702\n    test 177 EcefError: (0.0, 0.0, 0.0, 90.0, 0, -6356752.31414, 2, None, Datum(name='Datum', ellipsoid=Ellipsoids.GRS80, transform=Transforms.Identity))  FAILED, KNOWN, expected (0.0, 0.0, ...)\n    test 178 EcefError: height (None), lat (None) or lon (None)  FAILED, KNOWN, expected lat (None), lon (None) ...\n    test 179 EcefFarrell21: EcefFarrell21(a=None, f=None) ellipsoid: type(earth) (None): not a Datum, Ellipsoid, Ellipsoid2 or a_f2Tuple  FAILED, KNOWN, expected EcefFarrell21\n    test 180 Mx: (0.888348, 0.25558, -0.381466, -0.45917, 0.494465, -0.738015, 0.0, 0.830773, 0.556612)\n\n    test 181 EcefFarrell22: ...\n    test 182 name: Test\n    test 183 toStr: EcefFarrell22(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name='Test')  FAILED, KNOWN, expected EcefFarrell22\n    test 184 a, f: a=6378137.0, f=0.003352811, datum=Datum(name='_Test', ellipsoid=Ellipsoids._Test, transform=Transforms.Identity), name='Test'  FAILED, KNOWN, expected EcefFarrell22\n    test 185 copy(<class 'type'>): (<class 'pygeodesy.ecef.EcefFarrell22'>, True)\n    test 186 EcefFarrell22.copy(): (<class 'pygeodesy.ecef.EcefFarrell22'>, True)\n    test 187 forward: 27.99, 86.93, 8820.0\n    test 188 forward: 302271.4, 5635928.4, 2979666.1\n    test 189 name: Test\n    test 190 reverse: 302271.4, 5635928.4, 2979666.1\n    test 191 reverse: 27.99, 86.93, 8820.01\n    test 192 case: 1\n    test 193 iteration: None\n    test 194 name: Test\n    test 195 reverse: 302000.0, 5636000.0, 2980000.0\n    test 196 reverse: 27.99, 86.93, 9027.03\n    test 197 case: 1\n    test 198 iteration: None\n    test 199 forward: 27.99, 86.93, 8820.0\n    test 200 forward: 302271.43, 5635928.37, 2979666.13\n    test 201 forward: 33.3, 44.4, 6000.0\n    test 202 forward: 3816209.6, 3737108.55, 3485109.57\n    test 203 reverse: 3816209.6, 3737108.55, 3485109.57\n    test 204 reverse: 33.3, 44.4, 5999.996\n    test 205 case: 1\n    test 206 iteration: None\n    test 207 reverse: 30000.0, 30000.0, 0.0\n    test 208 reverse: 0.0, 45.0, -6335710.593  FAILED, KNOWN, expected 6.483, 45.0, -6335709.726\n    test 209 case: 3\n    test 210 iteration: None\n    test 211 forward: 6.483, 45.0, -6335709.726\n    test 212 forward: 30000.0, 30000.0, -0.0\n    test 213 Vermeille: -168.919\n    test 214 Vermeille: 190.939\n    test 215 Vermeille: (65.772506, 169.060801)\n    test 216 Vermeille: (1.147947, 3.141593)\n    test 217 reverse-1: 45.0, 120.0, 1000.0\n    test 218 forward-1: -2259149.0, 3912960.8, 4488055.5\n    test 219 xyzh-1: -2259149.0, 3912960.8, 4488055.5, 1000.0\n    test 220 philam-1: 0.7854, 2.0944\n    test 221 reverse-2: 45.0, 120.0, 2000.0\n    test 222 forward-2: -2259502.5, 3913573.2, 4488762.6\n    test 223 xyzh-2: -2259502.5, 3913573.2, 4488762.6, 2000.0\n    test 224 philam-2: 0.7854, 2.0944\n    test 225 reverse-3: 45.0, 120.0, 3000.0\n    test 226 forward-3: -2259856.1, 3914185.6, 4489469.7\n    test 227 xyzh-3: -2259856.1, 3914185.6, 4489469.7, 3000.0\n    test 228 philam-3: 0.7854, 2.0944\n    test 229 reverse-4: 45.0, 120.0, 4000.0\n    test 230 forward-4: -2260209.7, 3914798.0, 4490176.8\n    test 231 xyzh-4: -2260209.7, 3914798.0, 4490176.8, 4000.0\n    test 232 philam-4: 0.7854, 2.0944\n    test 233 reverse-5: 45.0, 120.0, 10000.0\n    test 234 forward-5: -2262331.0, 3918472.2, 4494419.5\n    test 235 xyzh-5: -2262331.0, 3918472.2, 4494419.5, 10000.0\n    test 236 philam-5: 0.7854, 2.0944\n    test 237 reverse-6: 45.0, 120.0, 20000.0\n    test 238 forward-6: -2265866.5, 3924595.9, 4501490.5\n    test 239 xyzh-6: -2265866.5, 3924595.9, 4501490.5, 20000.0\n    test 240 philam-6: 0.7854, 2.0944\n    test 241 reverse-7: 45.0, 120.0, 100000.0\n    test 242 forward-7: -2294150.8, 3973585.7, 4558059.1\n    test 243 xyzh-7: -2294150.8, 3973585.7, 4558059.1, 100000.0\n    test 244 philam-7: 0.7854, 2.0944\n    test 245 reverse-8: 45.0, 120.0, 800000.005  FAILED, KNOWN, expected 45.0, 120.0, 800000.0\n    test 246 forward-8: -2541638.2, 4402246.4, 5053033.8\n    test 247 xyzh-8: -2541638.2, 4402246.4, 5053033.8, 800000.0\n    test 248 philam-8: 0.7854, 2.0944\n    test 249 reverse-9: 45.0, 120.0, 1000000.007  FAILED, KNOWN, expected 45.0, 120.0, 1000000.0\n    test 250 forward-9: -2612348.8, 4524720.9, 5194455.2\n    test 251 xyzh-9: -2612348.8, 4524720.9, 5194455.2, 1000000.0\n    test 252 philam-9: 0.7854, 2.0944\n    test 253 sudano: 45.0, 0.0, 100000.0\n    test 254 name: OS-UK\n    test 255 forward: 53.61199036, -1.66444222, 299.8\n    test 256 forward: 3790644.9, -110149.21, 5111482.97\n    test 257 reverse: 3790644.9, -110149.21, 5111482.97\n    test 258 reverse: 53.61199036, -1.66444223\n    test 259 reverse.lat: 53°36′43.1653″N\n    test 260 reverse.lon: 001°39′51.992″W\n    test 261 reverse.height: 299.800\n    test 262 case: 1\n    test 263 iteration: None\n    test 264 forward: -2430601.827685, -4702442.703125, 3546587.358103\n    test 265 reverse: 34.0, -117.333569, 251.702\n    test 266 forward_: -2430601.812953, -4702442.744488, 3546587.313654, 34.0, -117.333569, 251.702\n    test 267 EcefError: (0.0, 0.0, 0.0, 90.0, 0, -6356752.31414, 2, None, Datum(name='Datum', ellipsoid=Ellipsoids.GRS80, transform=Transforms.Identity))  FAILED, KNOWN, expected (0.0, 0.0, ...)\n    test 268 EcefError: height (None), lat (None) or lon (None)  FAILED, KNOWN, expected lat (None), lon (None) ...\n    test 269 EcefFarrell22: EcefFarrell22(a=None, f=None) ellipsoid: type(earth) (None): not a Datum, Ellipsoid, Ellipsoid2 or a_f2Tuple  FAILED, KNOWN, expected EcefFarrell22\n    test 270 Mx: (0.888348, 0.25558, -0.381466, -0.45917, 0.494465, -0.738015, 0.0, 0.830773, 0.556612)\n\n    test 271 EcefVeness: ...\n    test 272 name: Test\n    test 273 toStr: EcefVeness(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name='Test')  FAILED, KNOWN, expected EcefVeness\n    test 274 a, f: a=6378137.0, f=0.003352811, datum=Datum(name='_Test', ellipsoid=Ellipsoids._Test, transform=Transforms.Identity), name='Test'  FAILED, KNOWN, expected EcefVeness\n    test 275 copy(<class 'type'>): (<class 'pygeodesy.ecef.EcefVeness'>, True)\n    test 276 EcefVeness.copy(): (<class 'pygeodesy.ecef.EcefVeness'>, True)\n    test 277 forward: 27.99, 86.93, 8820.0\n    test 278 forward: 302271.4, 5635928.4, 2979666.1\n    test 279 name: Test\n    test 280 reverse: 302271.4, 5635928.4, 2979666.1\n    test 281 reverse: 27.99, 86.93, 8820.01\n    test 282 case: 1\n    test 283 iteration: None\n    test 284 name: Test\n    test 285 reverse: 302000.0, 5636000.0, 2980000.0\n    test 286 reverse: 27.99, 86.93, 9027.03\n    test 287 case: 1\n    test 288 iteration: None\n    test 289 forward: 27.99, 86.93, 8820.0\n    test 290 forward: 302271.43, 5635928.37, 2979666.13\n    test 291 forward: 33.3, 44.4, 6000.0\n    test 292 forward: 3816209.6, 3737108.55, 3485109.57\n    test 293 reverse: 3816209.6, 3737108.55, 3485109.57\n    test 294 reverse: 33.3, 44.4, 5999.996\n    test 295 case: 1\n    test 296 iteration: None\n    test 297 reverse: 30000.0, 30000.0, 0.0\n    test 298 reverse: 0.0, 45.0, -6335710.593  FAILED, KNOWN, expected 6.483, 45.0, -6335709.726\n    test 299 case: 3\n    test 300 iteration: None\n    test 301 forward: 6.483, 45.0, -6335709.726\n    test 302 forward: 30000.0, 30000.0, -0.0\n    test 303 Vermeille: -168.919\n    test 304 Vermeille: 190.939\n    test 305 Vermeille: (65.772506, 169.060801)\n    test 306 Vermeille: (1.147947, 3.141593)\n    test 307 reverse-1: 45.0, 120.0, 1000.0\n    test 308 forward-1: -2259149.0, 3912960.8, 4488055.5\n    test 309 xyzh-1: -2259149.0, 3912960.8, 4488055.5, 1000.0\n    test 310 philam-1: 0.7854, 2.0944\n    test 311 reverse-2: 45.0, 120.0, 2000.0\n    test 312 forward-2: -2259502.5, 3913573.2, 4488762.6\n    test 313 xyzh-2: -2259502.5, 3913573.2, 4488762.6, 2000.0\n    test 314 philam-2: 0.7854, 2.0944\n    test 315 reverse-3: 45.0, 120.0, 3000.0\n    test 316 forward-3: -2259856.1, 3914185.6, 4489469.7\n    test 317 xyzh-3: -2259856.1, 3914185.6, 4489469.7, 3000.0\n    test 318 philam-3: 0.7854, 2.0944\n    test 319 reverse-4: 45.0, 120.0, 4000.0\n    test 320 forward-4: -2260209.7, 3914798.0, 4490176.8\n    test 321 xyzh-4: -2260209.7, 3914798.0, 4490176.8, 4000.0\n    test 322 philam-4: 0.7854, 2.0944\n    test 323 reverse-5: 45.0, 120.0, 10000.0\n    test 324 forward-5: -2262331.0, 3918472.2, 4494419.5\n    test 325 xyzh-5: -2262331.0, 3918472.2, 4494419.5, 10000.0\n    test 326 philam-5: 0.7854, 2.0944\n    test 327 reverse-6: 45.0, 120.0, 20000.0\n    test 328 forward-6: -2265866.5, 3924595.9, 4501490.5\n    test 329 xyzh-6: -2265866.5, 3924595.9, 4501490.5, 20000.0\n    test 330 philam-6: 0.7854, 2.0944\n    test 331 reverse-7: 45.0, 120.0, 100000.0\n    test 332 forward-7: -2294150.8, 3973585.7, 4558059.1\n    test 333 xyzh-7: -2294150.8, 3973585.7, 4558059.1, 100000.0\n    test 334 philam-7: 0.7854, 2.0944\n    test 335 reverse-8: 45.0, 120.0, 800000.0\n    test 336 forward-8: -2541638.2, 4402246.4, 5053033.8\n    test 337 xyzh-8: -2541638.2, 4402246.4, 5053033.8, 800000.0\n    test 338 philam-8: 0.7854, 2.0944\n    test 339 reverse-9: 45.0, 120.0, 1000000.0\n    test 340 forward-9: -2612348.8, 4524720.9, 5194455.2\n    test 341 xyzh-9: -2612348.8, 4524720.9, 5194455.2, 1000000.0\n    test 342 philam-9: 0.7854, 2.0944\n    test 343 sudano: 45.0, 0.0, 100000.0\n    test 344 name: OS-UK\n    test 345 forward: 53.61199036, -1.66444222, 299.8\n    test 346 forward: 3790644.9, -110149.21, 5111482.97\n    test 347 reverse: 3790644.9, -110149.21, 5111482.97\n    test 348 reverse: 53.61199036, -1.66444223\n    test 349 reverse.lat: 53°36′43.1653″N\n    test 350 reverse.lon: 001°39′51.992″W\n    test 351 reverse.height: 299.800\n    test 352 case: 1\n    test 353 iteration: None\n    test 354 forward: -2430601.827685, -4702442.703125, 3546587.358103\n    test 355 reverse: 34.0, -117.333569, 251.702\n    test 356 forward_: -2430601.812953, -4702442.744488, 3546587.313654, 34.0, -117.333569, 251.702\n    test 357 EcefError: (0.0, 0.0, 0.0, 90.0, 0, -6356752.31414, 2, None, Datum(name='Datum', ellipsoid=Ellipsoids.GRS80, transform=Transforms.Identity))  FAILED, KNOWN, expected (0.0, 0.0, ...)\n    test 358 EcefError: height (None), lat (None) or lon (None)  FAILED, KNOWN, expected lat (None), lon (None) ...\n    test 359 EcefVeness: EcefVeness(a=None, f=None) ellipsoid: type(earth) (None): not a Datum, Ellipsoid, Ellipsoid2 or a_f2Tuple  FAILED, KNOWN, expected EcefVeness\n    test 360 Mx: (0.888348, 0.25558, -0.381466, -0.45917, 0.494465, -0.738015, 0.0, 0.830773, 0.556612)\n\n    test 361 EcefSudano: ...\n    test 362 name: Test\n    test 363 toStr: EcefSudano(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name='Test')  FAILED, KNOWN, expected EcefSudano\n    test 364 a, f: a=6378137.0, f=0.003352811, datum=Datum(name='_Test', ellipsoid=Ellipsoids._Test, transform=Transforms.Identity), name='Test'  FAILED, KNOWN, expected EcefSudano\n    test 365 copy(<class 'type'>): (<class 'pygeodesy.ecef.EcefSudano'>, True)\n    test 366 EcefSudano.copy(): (<class 'pygeodesy.ecef.EcefSudano'>, True)\n    test 367 forward: 27.99, 86.93, 8820.0\n    test 368 forward: 302271.4, 5635928.4, 2979666.1\n    test 369 name: Test\n    test 370 reverse: 302271.4, 5635928.4, 2979666.1\n    test 371 reverse: 28.01, 86.93, 8819.58  FAILED, KNOWN, expected 27.99, 86.93, 8820.01\n    test 372 case: 1\n    test 373 iteration: 6\n    test 374 name: Test\n    test 375 reverse: 302000.0, 5636000.0, 2980000.0\n    test 376 reverse: 28.01, 86.93, 9026.6  FAILED, KNOWN, expected 27.99, 86.93, 9027.03\n    test 377 case: 1\n    test 378 iteration: 6\n    test 379 forward: 27.99, 86.93, 8820.0\n    test 380 forward: 302271.43, 5635928.37, 2979666.13\n    test 381 forward: 33.3, 44.4, 6000.0\n    test 382 forward: 3816209.6, 3737108.55, 3485109.57\n    test 383 reverse: 3816209.6, 3737108.55, 3485109.57\n    test 384 reverse: 33.335, 44.4, 5998.836  FAILED, KNOWN, expected 33.3, 44.4, 5999.996\n    test 385 case: 1\n    test 386 iteration: 6\n    test 387 reverse: 30000.0, 30000.0, 0.0\n    test 388 reverse: 0.0, 45.0, -6335710.593  FAILED, KNOWN, expected 6.483, 45.0, -6335709.726\n    test 389 case: 3\n    test 390 iteration: 0\n    test 391 forward: 6.483, 45.0, -6335709.726\n    test 392 forward: 30000.0, 30000.0, -0.0\n    test 393 Vermeille: -168.919\n    test 394 Vermeille: 190.939\n    test 395 Vermeille: (65.979481, 169.060801)  FAILED, KNOWN, expected (65.772506, 169.060801)\n    test 396 Vermeille: (1.151559, 3.141593)  FAILED, KNOWN, expected (1.147947, 3.141593)\n    test 397 reverse-1: 45.08, 120.0, 993.852  FAILED, KNOWN, expected 45.0, 120.0, 1000.0\n    test 398 forward-1: -2256016.0, 3907534.4, 4494304.0  FAILED, KNOWN, expected -2259149.0, 3912960.8, 4488055.5\n    test 399 xyzh-1: -2256016.0, 3907534.4, 4494304.0, 993.9  FAILED, KNOWN, expected -2259149.0, 3912960.8, 4488055.5, 1000.0\n    test 400 philam-1: 0.7868, 2.0944\n    test 401 reverse-2: 45.08, 120.0, 1993.853  FAILED, KNOWN, expected 45.0, 120.0, 2000.0\n    test 402 forward-2: -2256369.6, 3908146.8, 4495011.2  FAILED, KNOWN, expected -2259502.5, 3913573.2, 4488762.6\n    test 403 xyzh-2: -2256369.6, 3908146.8, 4495011.2, 1993.9  FAILED, KNOWN, expected -2259502.5, 3913573.2, 4488762.6, 2000.0\n    test 404 philam-2: 0.7868, 2.0944\n    test 405 reverse-3: 45.08, 120.0, 2993.854  FAILED, KNOWN, expected 45.0, 120.0, 3000.0\n    test 406 forward-3: -2256723.1, 3908759.1, 4495718.3  FAILED, KNOWN, expected -2259856.1, 3914185.6, 4489469.7\n    test 407 xyzh-3: -2256723.1, 3908759.1, 4495718.3, 2993.9  FAILED, KNOWN, expected -2259856.1, 3914185.6, 4489469.7, 3000.0\n    test 408 philam-3: 0.7868, 2.0944\n    test 409 reverse-4: 45.08, 120.0, 3993.855  FAILED, KNOWN, expected 45.0, 120.0, 4000.0\n    test 410 forward-4: -2257076.7, 3909371.5, 4496425.4  FAILED, KNOWN, expected -2260209.7, 3914798.0, 4490176.8\n    test 411 xyzh-4: -2257076.7, 3909371.5, 4496425.4, 3993.9  FAILED, KNOWN, expected -2260209.7, 3914798.0, 4490176.8, 4000.0\n    test 412 philam-4: 0.7868, 2.0944\n    test 413 reverse-5: 45.08, 120.0, 9993.861  FAILED, KNOWN, expected 45.0, 120.0, 10000.0\n    test 414 forward-5: -2259198.0, 3913045.8, 4500668.0  FAILED, KNOWN, expected -2262331.0, 3918472.2, 4494419.5\n    test 415 xyzh-5: -2259198.0, 3913045.8, 4500668.0, 9993.9  FAILED, KNOWN, expected -2262331.0, 3918472.2, 4494419.5, 10000.0\n    test 416 philam-5: 0.7868, 2.0944\n    test 417 reverse-6: 45.079, 120.0, 19993.87  FAILED, KNOWN, expected 45.0, 120.0, 20000.0\n    test 418 forward-6: -2262733.6, 3919169.6, 4507739.0  FAILED, KNOWN, expected -2265866.5, 3924595.9, 4501490.5\n    test 419 xyzh-6: -2262733.6, 3919169.6, 4507739.0, 19993.9  FAILED, KNOWN, expected -2265866.5, 3924595.9, 4501490.5, 20000.0\n    test 420 philam-6: 0.7868, 2.0944\n    test 421 reverse-7: 45.078, 120.0, 99993.947  FAILED, KNOWN, expected 45.0, 120.0, 100000.0\n    test 422 forward-7: -2291018.1, 3968159.8, 4564307.3  FAILED, KNOWN, expected -2294150.8, 3973585.7, 4558059.1\n    test 423 xyzh-7: -2291018.1, 3968159.8, 4564307.3, 99993.9  FAILED, KNOWN, expected -2294150.8, 3973585.7, 4558059.1, 100000.0\n    test 424 philam-7: 0.7868, 2.0944\n    test 425 reverse-8: 45.071, 120.0, 799994.544  FAILED, KNOWN, expected 45.0, 120.0, 800000.0\n    test 426 forward-8: -2538507.3, 4396823.7, 5059280.0  FAILED, KNOWN, expected -2541638.2, 4402246.4, 5053033.8\n    test 427 xyzh-8: -2538507.3, 4396823.7, 5059280.0, 799994.5  FAILED, KNOWN, expected -2541638.2, 4402246.4, 5053033.8, 800000.0\n    test 428 philam-8: 0.7866, 2.0944\n    test 429 reverse-9: 45.069, 120.0, 999994.693  FAILED, KNOWN, expected 45.0, 120.0, 1000000.0\n    test 430 forward-9: -2609218.5, 4519299.0, 5200700.9  FAILED, KNOWN, expected -2612348.8, 4524720.9, 5194455.2\n    test 431 xyzh-9: -2609218.5, 4519299.0, 5200700.9, 999994.7  FAILED, KNOWN, expected -2612348.8, 4524720.9, 5194455.2, 1000000.0\n    test 432 philam-9: 0.7866, 2.0944\n    test 433 sudano: 45.078, 0.0, 99993.947  FAILED, KNOWN, expected 45.0, 0.0, 100000.0\n    test 434 name: OS-UK\n    test 435 forward: 53.61199036, -1.66444222, 299.8\n    test 436 forward: 3790644.9, -110149.21, 5111482.97\n    test 437 reverse: 3790644.9, -110149.21, 5111482.97\n    test 438 reverse: 53.73795244, -1.66444223  FAILED, KNOWN, expected 53.61199036, -1.66444223\n    test 439 reverse.lat: 53°44′16.6288″N  FAILED, KNOWN, expected 53°36′43.1653″N\n    test 440 reverse.lon: 001°39′51.992″W\n    test 441 reverse.height: 284.389  FAILED, KNOWN, expected 299.800\n    test 442 case: 1\n    test 443 iteration: 7\n    test 444 forward: -2430601.827685, -4702442.703125, 3546587.358103\n    test 445 reverse: 34.036724, -117.333569, 250.396541  FAILED, KNOWN, expected 34.0, -117.333569, 251.702\n    test 446 forward_: -2430601.812953, -4702442.744488, 3546587.313654, 34.0, -117.333569, 251.702\n    test 447 EcefError: (0.0, 0.0, 0.0, 90.0, 0, -6356752.31414, 2, None, Datum(name='Datum', ellipsoid=Ellipsoids.GRS80, transform=Transforms.Identity))  FAILED, KNOWN, expected (0.0, 0.0, ...)\n    test 448 EcefError: height (None), lat (None) or lon (None)  FAILED, KNOWN, expected lat (None), lon (None) ...\n    test 449 EcefSudano: EcefSudano(a=None, f=None) ellipsoid: type(earth) (None): not a Datum, Ellipsoid, Ellipsoid2 or a_f2Tuple  FAILED, KNOWN, expected EcefSudano\n    test 450 Mx: (0.888348, 0.25558, -0.381466, -0.45917, 0.494465, -0.738015, 0.0, 0.830773, 0.556612)\n\n    test 451 EcefUPC: ...\n    test 452 name: Test\n    test 453 toStr: EcefUPC(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name='Test')  FAILED, KNOWN, expected EcefUPC\n    test 454 a, f: a=6378137.0, f=0.003352811, datum=Datum(name='_Test', ellipsoid=Ellipsoids._Test, transform=Transforms.Identity), name='Test'  FAILED, KNOWN, expected EcefUPC\n    test 455 copy(<class 'type'>): (<class 'pygeodesy.ecef.EcefUPC'>, True)\n    test 456 EcefUPC.copy(): (<class 'pygeodesy.ecef.EcefUPC'>, True)\n    test 457 forward: 27.99, 86.93, 8820.0\n    test 458 forward: 302271.4, 5635928.4, 2979666.1\n    test 459 name: Test\n    test 460 reverse: 302271.4, 5635928.4, 2979666.1\n    test 461 reverse: 27.99, 86.93, 8820.01\n    test 462 case: 1\n    test 463 iteration: 5\n    test 464 name: Test\n    test 465 reverse: 302000.0, 5636000.0, 2980000.0\n    test 466 reverse: 27.99, 86.93, 9027.03\n    test 467 case: 1\n    test 468 iteration: 5\n    test 469 forward: 27.99, 86.93, 8820.0\n    test 470 forward: 302271.43, 5635928.37, 2979666.13\n    test 471 forward: 33.3, 44.4, 6000.0\n    test 472 forward: 3816209.6, 3737108.55, 3485109.57\n    test 473 reverse: 3816209.6, 3737108.55, 3485109.57\n    test 474 reverse: 33.3, 44.4, 5999.996\n    test 475 case: 1\n    test 476 iteration: 5\n    test 477 reverse: 30000.0, 30000.0, 0.0\n    test 478 reverse: 0.0, 45.0, -6335710.593  FAILED, KNOWN, expected 6.483, 45.0, -6335709.726\n    test 479 case: 3\n    test 480 iteration: 0\n    test 481 forward: 6.483, 45.0, -6335709.726\n    test 482 forward: 30000.0, 30000.0, -0.0\n    test 483 Vermeille: -168.919\n    test 484 Vermeille: 190.939\n    test 485 Vermeille: (65.772506, 169.060801)\n    test 486 Vermeille: (1.147947, 3.141593)\n    test 487 reverse-1: 45.0, 120.0, 1000.0\n    test 488 forward-1: -2259149.0, 3912960.8, 4488055.5\n    test 489 xyzh-1: -2259149.0, 3912960.8, 4488055.5, 1000.0\n    test 490 philam-1: 0.7854, 2.0944\n    test 491 reverse-2: 45.0, 120.0, 2000.0\n    test 492 forward-2: -2259502.5, 3913573.2, 4488762.6\n    test 493 xyzh-2: -2259502.5, 3913573.2, 4488762.6, 2000.0\n    test 494 philam-2: 0.7854, 2.0944\n    test 495 reverse-3: 45.0, 120.0, 3000.0\n    test 496 forward-3: -2259856.1, 3914185.6, 4489469.7\n    test 497 xyzh-3: -2259856.1, 3914185.6, 4489469.7, 3000.0\n    test 498 philam-3: 0.7854, 2.0944\n    test 499 reverse-4: 45.0, 120.0, 4000.0\n    test 500 forward-4: -2260209.7, 3914798.0, 4490176.8\n    test 501 xyzh-4: -2260209.7, 3914798.0, 4490176.8, 4000.0\n    test 502 philam-4: 0.7854, 2.0944\n    test 503 reverse-5: 45.0, 120.0, 10000.0\n    test 504 forward-5: -2262331.0, 3918472.2, 4494419.5\n    test 505 xyzh-5: -2262331.0, 3918472.2, 4494419.5, 10000.0\n    test 506 philam-5: 0.7854, 2.0944\n    test 507 reverse-6: 45.0, 120.0, 20000.0\n    test 508 forward-6: -2265866.5, 3924595.9, 4501490.5\n    test 509 xyzh-6: -2265866.5, 3924595.9, 4501490.5, 20000.0\n    test 510 philam-6: 0.7854, 2.0944\n    test 511 reverse-7: 45.0, 120.0, 100000.0\n    test 512 forward-7: -2294150.8, 3973585.7, 4558059.1\n    test 513 xyzh-7: -2294150.8, 3973585.7, 4558059.1, 100000.0\n    test 514 philam-7: 0.7854, 2.0944\n    test 515 reverse-8: 45.0, 120.0, 800000.0\n    test 516 forward-8: -2541638.2, 4402246.4, 5053033.8\n    test 517 xyzh-8: -2541638.2, 4402246.4, 5053033.8, 800000.0\n    test 518 philam-8: 0.7854, 2.0944\n    test 519 reverse-9: 45.0, 120.0, 1000000.0\n    test 520 forward-9: -2612348.8, 4524720.9, 5194455.2\n    test 521 xyzh-9: -2612348.8, 4524720.9, 5194455.2, 1000000.0\n    test 522 philam-9: 0.7854, 2.0944\n    test 523 sudano: 45.0, 0.0, 100000.0\n    test 524 name: OS-UK\n    test 525 forward: 53.61199036, -1.66444222, 299.8\n    test 526 forward: 3790644.9, -110149.21, 5111482.97\n    test 527 reverse: 3790644.9, -110149.21, 5111482.97\n    test 528 reverse: 53.61199036, -1.66444223\n    test 529 reverse.lat: 53°36′43.1653″N\n    test 530 reverse.lon: 001°39′51.992″W\n    test 531 reverse.height: 299.800\n    test 532 case: 1\n    test 533 iteration: 5\n    test 534 forward: -2430601.827685, -4702442.703125, 3546587.358103\n    test 535 reverse: 34.0, -117.333569, 251.702\n    test 536 forward_: -2430601.812953, -4702442.744488, 3546587.313654, 34.0, -117.333569, 251.702\n    test 537 EcefError: (0.0, 0.0, 0.0, 90.0, 0, -6356752.31414, 2, None, Datum(name='Datum', ellipsoid=Ellipsoids.GRS80, transform=Transforms.Identity))  FAILED, KNOWN, expected (0.0, 0.0, ...)\n    test 538 EcefError: height (None), lat (None) or lon (None)  FAILED, KNOWN, expected lat (None), lon (None) ...\n    test 539 EcefUPC: EcefUPC(a=None, f=None) ellipsoid: type(earth) (None): not a Datum, Ellipsoid, Ellipsoid2 or a_f2Tuple  FAILED, KNOWN, expected EcefUPC\n    test 540 Mx: (0.888348, 0.25558, -0.381466, -0.45917, 0.494465, -0.738015, 0.0, 0.830773, 0.556612)\n\n    test 541 EcefYou: ...\n    test 542 name: Test\n    test 543 toStr: EcefYou(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name='Test')  FAILED, KNOWN, expected EcefYou\n    test 544 a, f: a=6378137.0, f=0.003352811, datum=Datum(name='_Test', ellipsoid=Ellipsoids._Test, transform=Transforms.Identity), name='Test'  FAILED, KNOWN, expected EcefYou\n    test 545 copy(<class 'type'>): (<class 'pygeodesy.ecef.EcefYou'>, True)\n    test 546 EcefYou.copy(): (<class 'pygeodesy.ecef.EcefYou'>, True)\n    test 547 forward: 27.99, 86.93, 8820.0\n    test 548 forward: 302271.4, 5635928.4, 2979666.1\n    test 549 name: Test\n    test 550 reverse: 302271.4, 5635928.4, 2979666.1\n    test 551 reverse: 27.99, 86.93, 8820.01\n    test 552 case: 1\n    test 553 iteration: None\n    test 554 name: Test\n    test 555 reverse: 302000.0, 5636000.0, 2980000.0\n    test 556 reverse: 27.99, 86.93, 9027.03\n    test 557 case: 1\n    test 558 iteration: None\n    test 559 forward: 27.99, 86.93, 8820.0\n    test 560 forward: 302271.43, 5635928.37, 2979666.13\n    test 561 forward: 33.3, 44.4, 6000.0\n    test 562 forward: 3816209.6, 3737108.55, 3485109.57\n    test 563 reverse: 3816209.6, 3737108.55, 3485109.57\n    test 564 reverse: 33.3, 44.4, 5999.996\n    test 565 case: 1\n    test 566 iteration: None\n    test 567 reverse: 30000.0, 30000.0, 0.0\n    test 568 reverse: 0.0, 45.0, -6335710.593  FAILED, KNOWN, expected 6.483, 45.0, -6335709.726\n    test 569 case: 3\n    test 570 iteration: None\n    test 571 forward: 6.483, 45.0, -6335709.726\n    test 572 forward: 30000.0, 30000.0, -0.0\n    test 573 Vermeille: -168.919\n    test 574 Vermeille: 190.939\n    test 575 Vermeille: (65.772506, 169.060801)\n    test 576 Vermeille: (1.147947, 3.141593)\n    test 577 reverse-1: 45.0, 120.0, 1000.0\n    test 578 forward-1: -2259149.0, 3912960.8, 4488055.5\n    test 579 xyzh-1: -2259149.0, 3912960.8, 4488055.5, 1000.0\n    test 580 philam-1: 0.7854, 2.0944\n    test 581 reverse-2: 45.0, 120.0, 2000.0\n    test 582 forward-2: -2259502.5, 3913573.2, 4488762.6\n    test 583 xyzh-2: -2259502.5, 3913573.2, 4488762.6, 2000.0\n    test 584 philam-2: 0.7854, 2.0944\n    test 585 reverse-3: 45.0, 120.0, 3000.0\n    test 586 forward-3: -2259856.1, 3914185.6, 4489469.7\n    test 587 xyzh-3: -2259856.1, 3914185.6, 4489469.7, 3000.0\n    test 588 philam-3: 0.7854, 2.0944\n    test 589 reverse-4: 45.0, 120.0, 4000.0\n    test 590 forward-4: -2260209.7, 3914798.0, 4490176.8\n    test 591 xyzh-4: -2260209.7, 3914798.0, 4490176.8, 4000.0\n    test 592 philam-4: 0.7854, 2.0944\n    test 593 reverse-5: 45.0, 120.0, 10000.0\n    test 594 forward-5: -2262331.0, 3918472.2, 4494419.5\n    test 595 xyzh-5: -2262331.0, 3918472.2, 4494419.5, 10000.0\n    test 596 philam-5: 0.7854, 2.0944\n    test 597 reverse-6: 45.0, 120.0, 20000.0\n    test 598 forward-6: -2265866.5, 3924595.9, 4501490.5\n    test 599 xyzh-6: -2265866.5, 3924595.9, 4501490.5, 20000.0\n    test 600 philam-6: 0.7854, 2.0944\n    test 601 reverse-7: 45.0, 120.0, 100000.0\n    test 602 forward-7: -2294150.8, 3973585.7, 4558059.1\n    test 603 xyzh-7: -2294150.8, 3973585.7, 4558059.1, 100000.0\n    test 604 philam-7: 0.7854, 2.0944\n    test 605 reverse-8: 45.0, 120.0, 800000.0\n    test 606 forward-8: -2541638.2, 4402246.4, 5053033.8\n    test 607 xyzh-8: -2541638.2, 4402246.4, 5053033.8, 800000.0\n    test 608 philam-8: 0.7854, 2.0944\n    test 609 reverse-9: 45.0, 120.0, 1000000.0\n    test 610 forward-9: -2612348.8, 4524720.9, 5194455.2\n    test 611 xyzh-9: -2612348.8, 4524720.9, 5194455.2, 1000000.0\n    test 612 philam-9: 0.7854, 2.0944\n    test 613 sudano: 45.0, 0.0, 100000.0\n    test 614 name: OS-UK\n    test 615 forward: 53.61199036, -1.66444222, 299.8\n    test 616 forward: 3790644.9, -110149.21, 5111482.97\n    test 617 reverse: 3790644.9, -110149.21, 5111482.97\n    test 618 reverse: 53.61199036, -1.66444223\n    test 619 reverse.lat: 53°36′43.1653″N\n    test 620 reverse.lon: 001°39′51.992″W\n    test 621 reverse.height: 299.800\n    test 622 case: 1\n    test 623 iteration: None\n    test 624 forward: -2430601.827685, -4702442.703125, 3546587.358103\n    test 625 reverse: 34.0, -117.333569, 251.702\n    test 626 forward_: -2430601.812953, -4702442.744488, 3546587.313654, 34.0, -117.333569, 251.702\n    test 627 EcefError: (0.0, 0.0, 0.0, 90.0, 0, -6356752.31414, 2, None, Datum(name='Datum', ellipsoid=Ellipsoids.GRS80, transform=Transforms.Identity))  FAILED, KNOWN, expected (0.0, 0.0, ...)\n    test 628 EcefError: height (None), lat (None) or lon (None)  FAILED, KNOWN, expected lat (None), lon (None) ...\n    test 629 EcefYou: EcefYou(a=None, f=None) ellipsoid: type(earth) (None): not a Datum, Ellipsoid, Ellipsoid2 or a_f2Tuple  FAILED, KNOWN, expected EcefYou\n    test 630 Mx: (0.888348, 0.25558, -0.381466, -0.45917, 0.494465, -0.738015, 0.0, 0.830773, 0.556612)\n\n    test 631 EcefMatrix: ...\n    test 632 index: (0, 1, 2, 3, 4, 5, 6, 7, 8)\n    test 633 matrix: 0, 1, 2, 3, 4, 5, 6, 7, 8\n    test 634 multiply: 45, 54, 63, 54, 66, 78, 63, 78, 93\n    test 635 matrix3: True\n    test 636 matrixT3: True\n    test 637 copy(<class 'type'>): (<class 'pygeodesy.ecef.EcefMatrix'>, True)\n    test 638 EcefMatrix.copy(): (<class 'pygeodesy.ecef.EcefMatrix'>, True)\n    test 639 matrix: 1, 0, 0, 0, 1, 0, 0, 0, 1\n    test 640 multiply: 1, 0, 0, 0, 1, 0, 0, 0, 1\n    test 641 copy(<class 'type'>): (<class 'pygeodesy.ecef.EcefMatrix'>, True)\n    test 642 EcefMatrix.copy(): (<class 'pygeodesy.ecef.EcefMatrix'>, True)\n    test 643 unrotate: (1.0, 1.0, 1.0)\n\n    test 644 pygeodesy.sphericalNvector: Cartesian\n    test 645 Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 646 pygeodesy.sphericalNvector: LatLon\n    test 647 Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 648 forward: 48.833, 2.333, 0.0\n    test 649 forward: 4190278.55, 170716.35, 4796058.21\n    test 650 name: Paris\n    test 651 reverse: 48.833, 2.333, 0.0\n    test 652 name: Paris\n    test 653 toLatLon: LatLon(48°49′58.8″N, 002°19′58.8″E)\n    test 654 name: Paris\n    test 655 Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 656 to4Tuple: LatLon4Tuple\n    test 657 to4Tuple: Paris(lat=48.833, lon=2.333, height=0.0, datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84))\n    test 658 to3Tuple: LatLon3Tuple\n    test 659 to3Tuple: Paris(lat=48.833, lon=2.333, height=0.0)\n    test 660 toVector: (4190278.55277, 170716.34863, 4796058.20898)\n    test 661 name: Paris\n    test 662 forward: [4190278.55, 170716.35, 4796058.21]\n    test 663 Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 664 toLocal: (0.0, 0.0, 0.0, 48.833, 2.333, 0.0, Ltp(lat0=48.833, lon0=2.333, height0=0.0, M=EcefMatrix(_0_0_=-0.040707, _0_1_=-0.75217, _0_2_=0.65771, _1_0_=0.999171, _1_1_=-0.030644, _1_2_=0.026796, _2_0_=0.0, _2_1_=0.658256, _2_2_=0.752794), ecef=EcefKarney(a=6371008.771415, f=0.0, datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84), name=''), name='Paris'), Paris(x=4190278.55277, y=170716.348629, z=4796058.208983, lat=48.833, lon=2.333, height=0.0, C=2, M=None, datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84)), None)\n    test 665 toAer: [0.0, 0.0, 0.0]\n    test 666 toEnu: [0.0, 0.0, 0.0]\n    test 667 toNed: [0.0, 0.0, 0.0]\n\n    test 668 pygeodesy.sphericalTrigonometry: Cartesian\n    test 669 Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 670 pygeodesy.sphericalTrigonometry: LatLon\n    test 671 Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 672 forward: 48.833, 2.333, 0.0\n    test 673 forward: 4190278.55, 170716.35, 4796058.21\n    test 674 name: Paris\n    test 675 reverse: 48.833, 2.333, 0.0\n    test 676 name: Paris\n    test 677 toLatLon: LatLon(48°49′58.8″N, 002°19′58.8″E)\n    test 678 name: Paris\n    test 679 Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 680 to4Tuple: LatLon4Tuple\n    test 681 to4Tuple: Paris(lat=48.833, lon=2.333, height=0.0, datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84))\n    test 682 to3Tuple: LatLon3Tuple\n    test 683 to3Tuple: Paris(lat=48.833, lon=2.333, height=0.0)\n    test 684 toVector: (4190278.55277, 170716.34863, 4796058.20898)\n    test 685 name: Paris\n    test 686 forward: [4190278.55, 170716.35, 4796058.21]\n    test 687 Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 688 toLocal: (0.0, 0.0, 0.0, 48.833, 2.333, 0.0, Ltp(lat0=48.833, lon0=2.333, height0=0.0, M=EcefMatrix(_0_0_=-0.040707, _0_1_=-0.75217, _0_2_=0.65771, _1_0_=0.999171, _1_1_=-0.030644, _1_2_=0.026796, _2_0_=0.0, _2_1_=0.658256, _2_2_=0.752794), ecef=EcefKarney(a=6371008.771415, f=0.0, datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84), name=''), name='Paris'), Paris(x=4190278.55277, y=170716.348629, z=4796058.208983, lat=48.833, lon=2.333, height=0.0, C=2, M=None, datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84)), None)\n    test 689 toAer: [0.0, 0.0, 0.0]\n    test 690 toEnu: [0.0, 0.0, 0.0]\n    test 691 toNed: [0.0, 0.0, 0.0]\n\n    test 692 pygeodesy.ellipsoidalNvector: Cartesian\n    test 693 Ecef: <class 'pygeodesy.ecef.EcefVeness'>\n    test 694 pygeodesy.ellipsoidalNvector: LatLon\n    test 695 Ecef: <class 'pygeodesy.ecef.EcefVeness'>\n    test 696 forward: 48.833, 2.333, 0.0\n    test 697 forward: 4202946.8, 171232.47, 4778354.17\n    test 698 name: Paris\n    test 699 reverse: 48.833, 2.333, 0.0\n    test 700 name: Paris\n    test 701 toLatLon: LatLon(48°49′58.8″N, 002°19′58.8″E, +0.00m)\n    test 702 name: Paris\n    test 703 Ecef: <class 'pygeodesy.ecef.EcefVeness'>\n    test 704 to4Tuple: LatLon4Tuple\n    test 705 to4Tuple: Paris(lat=48.833, lon=2.333, height=0.0, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 706 to3Tuple: LatLon3Tuple\n    test 707 to3Tuple: Paris(lat=48.833, lon=2.333, height=0.0)\n    test 708 toVector: (4202946.79528, 171232.46613, 4778354.17)\n    test 709 name: Paris\n    test 710 forward: [4202946.8, 171232.47, 4778354.17]\n    test 711 Ecef: <class 'pygeodesy.ecef.EcefVeness'>\n    test 712 toLocal: (0.0, 0.0, -0.0, 48.833, 2.333, 0.0, Ltp(lat0=48.833, lon0=2.333, height0=0.000000001, M=EcefMatrix(_0_0_=-0.040707, _0_1_=-0.75217, _0_2_=0.65771, _1_0_=0.999171, _1_1_=-0.030644, _1_2_=0.026796, _2_0_=0.0, _2_1_=0.658256, _2_2_=0.752794), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Paris'), Paris(x=4202946.795276, y=171232.466132, z=4778354.169996, lat=48.833, lon=2.333, height=0.0, C=1, M=None, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84)), None)\n    test 713 toAer: [23.434, -85.849, 0.0]\n    test 714 toEnu: [0.0, 0.0, -0.0]\n    test 715 toNed: [0.0, 0.0, 0.0]\n\n    test 716 pygeodesy.ellipsoidalVincenty: Cartesian\n    test 717 Ecef: <class 'pygeodesy.ecef.EcefVeness'>\n    test 718 pygeodesy.ellipsoidalVincenty: LatLon\n    test 719 Ecef: <class 'pygeodesy.ecef.EcefVeness'>\n    test 720 forward: 48.833, 2.333, 0.0\n    test 721 forward: 4202946.8, 171232.47, 4778354.17\n    test 722 name: Paris\n    test 723 reverse: 48.833, 2.333, 0.0\n    test 724 name: Paris\n    test 725 toLatLon: LatLon(48°49′58.8″N, 002°19′58.8″E, +0.00m)\n    test 726 name: Paris\n    test 727 Ecef: <class 'pygeodesy.ecef.EcefVeness'>\n    test 728 to4Tuple: LatLon4Tuple\n    test 729 to4Tuple: Paris(lat=48.833, lon=2.333, height=0.0, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 730 to3Tuple: LatLon3Tuple\n    test 731 to3Tuple: Paris(lat=48.833, lon=2.333, height=0.0)\n    test 732 toVector: (4202946.79528, 171232.46613, 4778354.17)\n    test 733 name: Paris\n    test 734 forward: [4202946.8, 171232.47, 4778354.17]\n    test 735 Ecef: <class 'pygeodesy.ecef.EcefVeness'>\n    test 736 toLocal: (0.0, 0.0, -0.0, 48.833, 2.333, 0.0, Ltp(lat0=48.833, lon0=2.333, height0=0.000000001, M=EcefMatrix(_0_0_=-0.040707, _0_1_=-0.75217, _0_2_=0.65771, _1_0_=0.999171, _1_1_=-0.030644, _1_2_=0.026796, _2_0_=0.0, _2_1_=0.658256, _2_2_=0.752794), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Paris'), Paris(x=4202946.795276, y=171232.466132, z=4778354.169996, lat=48.833, lon=2.333, height=0.0, C=1, M=None, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84)), None)\n    test 737 toAer: [23.434, -85.849, 0.0]\n    test 738 toEnu: [0.0, 0.0, -0.0]\n    test 739 toNed: [0.0, 0.0, 0.0]\n\n    test 740 pygeodesy.ellipsoidalKarney: Cartesian\n    test 741 Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 742 pygeodesy.ellipsoidalKarney: LatLon\n    test 743 Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 744 forward: 48.833, 2.333, 0.0\n    test 745 forward: 4202946.8, 171232.47, 4778354.17\n    test 746 name: Paris\n    test 747 reverse: 48.833, 2.333, 0.0\n    test 748 name: Paris\n    test 749 toLatLon: LatLon(48°49′58.8″N, 002°19′58.8″E, +0.00m)\n    test 750 name: Paris\n    test 751 Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 752 to4Tuple: LatLon4Tuple\n    test 753 to4Tuple: Paris(lat=48.833, lon=2.333, height=0.0, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 754 to3Tuple: LatLon3Tuple\n    test 755 to3Tuple: Paris(lat=48.833, lon=2.333, height=0.0)\n    test 756 toVector: (4202946.79528, 171232.46613, 4778354.17)\n    test 757 name: Paris\n    test 758 forward: [4202946.8, 171232.47, 4778354.17]\n    test 759 Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 760 toLocal: (0.0, 0.0, -0.0, 48.833, 2.333, 0.0, Ltp(lat0=48.833, lon0=2.333, height0=0.000000001, M=EcefMatrix(_0_0_=-0.040707, _0_1_=-0.75217, _0_2_=0.65771, _1_0_=0.999171, _1_1_=-0.030644, _1_2_=0.026796, _2_0_=0.0, _2_1_=0.658256, _2_2_=0.752794), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Paris'), Paris(x=4202946.795276, y=171232.466132, z=4778354.169996, lat=48.833, lon=2.333, height=0.0, C=1, M=None, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84)), None)\n    test 761 toAer: [23.434, -85.849, 0.0]\n    test 762 toEnu: [0.0, 0.0, -0.0]\n    test 763 toNed: [0.0, 0.0, 0.0]\n\n    test 764 pygeodesy.ellipsoidalExact: Cartesian\n    test 765 Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 766 pygeodesy.ellipsoidalExact: LatLon\n    test 767 Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 768 forward: 48.833, 2.333, 0.0\n    test 769 forward: 4202946.8, 171232.47, 4778354.17\n    test 770 name: Paris\n    test 771 reverse: 48.833, 2.333, 0.0\n    test 772 name: Paris\n    test 773 toLatLon: LatLon(48°49′58.8″N, 002°19′58.8″E, +0.00m)\n    test 774 name: Paris\n    test 775 Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 776 to4Tuple: LatLon4Tuple\n    test 777 to4Tuple: Paris(lat=48.833, lon=2.333, height=0.0, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 778 to3Tuple: LatLon3Tuple\n    test 779 to3Tuple: Paris(lat=48.833, lon=2.333, height=0.0)\n    test 780 toVector: (4202946.79528, 171232.46613, 4778354.17)\n    test 781 name: Paris\n    test 782 forward: [4202946.8, 171232.47, 4778354.17]\n    test 783 Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 784 toLocal: (0.0, 0.0, -0.0, 48.833, 2.333, 0.0, Ltp(lat0=48.833, lon0=2.333, height0=0.000000001, M=EcefMatrix(_0_0_=-0.040707, _0_1_=-0.75217, _0_2_=0.65771, _1_0_=0.999171, _1_1_=-0.030644, _1_2_=0.026796, _2_0_=0.0, _2_1_=0.658256, _2_2_=0.752794), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Paris'), Paris(x=4202946.795276, y=171232.466132, z=4778354.169996, lat=48.833, lon=2.333, height=0.0, C=1, M=None, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84)), None)\n    test 785 toAer: [23.434, -85.849, 0.0]\n    test 786 toEnu: [0.0, 0.0, -0.0]\n    test 787 toNed: [0.0, 0.0, 0.0]\n\n    test 788 pygeodesy.ellipsoidalGeodSolve: Cartesian\n    test 789 Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 790 pygeodesy.ellipsoidalGeodSolve: LatLon\n    test 791 Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 792 forward: 48.833, 2.333, 0.0\n    test 793 forward: 4202946.8, 171232.47, 4778354.17\n    test 794 name: Paris\n    test 795 reverse: 48.833, 2.333, 0.0\n    test 796 name: Paris\n    test 797 toLatLon: LatLon(48°49′58.8″N, 002°19′58.8″E, +0.00m)\n    test 798 name: Paris\n    test 799 Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 800 to4Tuple: LatLon4Tuple\n    test 801 to4Tuple: Paris(lat=48.833, lon=2.333, height=0.0, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 802 to3Tuple: LatLon3Tuple\n    test 803 to3Tuple: Paris(lat=48.833, lon=2.333, height=0.0)\n    test 804 toVector: (4202946.79528, 171232.46613, 4778354.17)\n    test 805 name: Paris\n    test 806 forward: [4202946.8, 171232.47, 4778354.17]\n    test 807 Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 808 toLocal: (0.0, 0.0, -0.0, 48.833, 2.333, 0.0, Ltp(lat0=48.833, lon0=2.333, height0=0.000000001, M=EcefMatrix(_0_0_=-0.040707, _0_1_=-0.75217, _0_2_=0.65771, _1_0_=0.999171, _1_1_=-0.030644, _1_2_=0.026796, _2_0_=0.0, _2_1_=0.658256, _2_2_=0.752794), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Paris'), Paris(x=4202946.795276, y=171232.466132, z=4778354.169996, lat=48.833, lon=2.333, height=0.0, C=1, M=None, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84)), None)\n    test 809 toAer: [23.434, -85.849, 0.0]\n    test 810 toEnu: [0.0, 0.0, -0.0]\n    test 811 toNed: [0.0, 0.0, 0.0]\n\n    80 of 811 testEcef.py tests (9.9%) FAILED, ALL KNOWN (pygeodesy 26.3.26 Python 3.13.12 64bit arm64 coverage 7.10.7 geographiclib 2.1 numpy 2.3.3 scipy 1.16.2 Math 2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 macOS 26.3.1 isLazy 1 -W  default) 45.801 ms\nrunning /Library/Framewo....n3.13 -W default ~/PyGeodesy/test/testElevations.py\n\n    testing testElevations.py 24.09.25 isLazy=1\n    test 1 elevation2: elevation2(37.8816, -121.9142): <HTTPError 301: 'Move Permanently'>  FAILED, KNOWN, expected 1173.79\n    test 2 geoidHeight2: -31.699\n    test 3 elevation2: elevation2(37.8816, -121.9142): <HTTPError 301: 'Move Permanently'>  FAILED, KNOWN, expected 1173.79\n    test 4 geodHeight2: -31.699\n    test 5 elevation2: elevation2(42.354117, -71.069351): <HTTPError 301: 'Move Permanently'>  FAILED, KNOWN, expected 2.03\n    test 6 geodHeight2: -27.773\n    test 7 elevation2: elevation2(41.499498, -81.695391): <HTTPError 301: 'Move Permanently'>  FAILED, KNOWN, expected 199.18\n    test 8 geodHeight2: -34.337  FAILED, KNOWN (0.268124), expected -27.077\n    test 9 elevation2: elevation2(41.49008, -71.312796): <HTTPError 301: 'Move Permanently'>  FAILED, KNOWN, expected 8.52\n    test 10 geodHeight2: -30.000\n    test 11 elevation2: elevation2(40.779147, -73.96808): <HTTPError 301: 'Move Permanently'>  FAILED, KNOWN, expected 32.79\n    test 12 geodHeight2: -31.666\n    test 13 elevation2: (None, \"<HTTPError 301: 'Move Permanently'>\")  FAILED, KNOWN, expected (None, 'non-CONUS -1000000.00')\n    test 14 geoidHeight2: (None, 'no JSON \"{}\"')  FAILED, KNOWN, expected (None, \"<HTTPError 403: 'Forbidden'>\")\n    test 15 elevation2: (None, \"URLError(OSError(65, 'No route to host'))\")  FAILED, KNOWN, expected (None, \"URLError(timeout('timed out'))\")\n    test 16 geodHeight2: (None, \"URLError(TimeoutError('timed out'))\")  FAILED, KNOWN, expected (None, \"URLError(timeout('timed out'))\")\n    test 17 elevation2: elevation2(37.8816, -121.9142): <HTTPError 301: 'Move Permanently'>  FAILED, KNOWN, expected 1173.79\n    test 18 geoidHeight2: -31.699\n    test 19 elevation2: elevation2(37.8816, -121.9142): <HTTPError 301: 'Move Permanently'>  FAILED, KNOWN, expected 1173.79\n    test 20 geodHeight2: -31.699\n    test 21 elevation2: elevation2(42.354117, -71.069351): <HTTPError 301: 'Move Permanently'>  FAILED, KNOWN, expected 2.03\n    test 22 geodHeight2: -27.773\n    test 23 elevation2: elevation2(41.499498, -81.695391): <HTTPError 301: 'Move Permanently'>  FAILED, KNOWN, expected 199.18\n    test 24 geodHeight2: -34.337  FAILED, KNOWN (0.268124), expected -27.077\n    test 25 elevation2: elevation2(41.49008, -71.312796): <HTTPError 301: 'Move Permanently'>  FAILED, KNOWN, expected 8.52\n    test 26 geodHeight2: -30.000\n    test 27 elevation2: elevation2(40.779147, -73.96808): <HTTPError 301: 'Move Permanently'>  FAILED, KNOWN, expected 32.79\n    test 28 geodHeight2: -31.666\n    test 29 elevation2: (None, \"<HTTPError 301: 'Move Permanently'>\")  FAILED, KNOWN, expected (None, 'non-CONUS -1000000.00')\n    test 30 geoidHeight2: (None, 'no JSON \"{}\"')  FAILED, KNOWN, expected (None, \"<HTTPError 403: 'Forbidden'>\")\n    test 31 elevation2: (None, \"URLError(OSError(65, 'No route to host'))\")  FAILED, KNOWN, expected (None, \"URLError(timeout('timed out'))\")\n    test 32 geodHeight2: (None, \"URLError(TimeoutError('timed out'))\")  FAILED, KNOWN, expected (None, \"URLError(timeout('timed out'))\")\n\n    22 of 32 testElevations.py tests (68.8%) FAILED, ALL KNOWN (pygeodesy 26.3.26 Python 3.13.12 64bit arm64 coverage 7.10.7 geographiclib 2.1 numpy 2.3.3 scipy 1.16.2 Math 2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 macOS 26.3.1 isLazy 1 -W  default) 5.006 sec\nrunning /Library/Framewo....n3.13 -W default ~/PyGeodesy/test/testEllipses.py\n./test/testEllipses.py:52: DeprecationWarning: function L{elliperim<pygeodesy.deprecated.functions.elliperim>} has been DEPRECATED on 2026.02.12, use method L{pygeodesy.Ellipse.arc} or property L{pygeodesy.Ellipse.perimeter2k_}.\n  self.test(n, elliperim(a, b), x, known=startswith, nl=1)\n./test/testEllipses.py:53: DeprecationWarning: function L{elliperim<pygeodesy.deprecated.functions.elliperim>} has been DEPRECATED on 2026.02.12, use method L{pygeodesy.Ellipse.arc} or property L{pygeodesy.Ellipse.perimeter2k_}.\n  self.test(n, elliperim(a, a), 40075236.597, prec=3)\n./test/testEllipses.py:54: DeprecationWarning: function L{elliperim<pygeodesy.deprecated.functions.elliperim>} has been DEPRECATED on 2026.02.12, use method L{pygeodesy.Ellipse.arc} or property L{pygeodesy.Ellipse.perimeter2k_}.\n  self.test(n, elliperim(a, 0), a * 4, prec=1)\n./test/testEllipses.py:55: DeprecationWarning: function L{elliperim<pygeodesy.deprecated.functions.elliperim>} has been DEPRECATED on 2026.02.12, use method L{pygeodesy.Ellipse.arc} or property L{pygeodesy.Ellipse.perimeter2k_}.\n  self.test(n, elliperim(0, b), b * 4, prec=1)\n./test/testEllipses.py:56: DeprecationWarning: function L{elliperim<pygeodesy.deprecated.functions.elliperim>} has been DEPRECATED on 2026.02.12, use method L{pygeodesy.Ellipse.arc} or property L{pygeodesy.Ellipse.perimeter2k_}.\n  self.test(n, elliperim(0, 0), '0.0')\n\n    testing testEllipses.py 26.03.25 isLazy=1\n\n    test 1 a, b, b/a, m: (6378172.0, 6378102.0, 0.9999890250686246, 2.194974230163016e-05)\n    test 2 Ellipse.perimeter2k   : 40075016.685880177\n    test 3 Ellipse.perimeter2k_  : 40075016.685880177\n    test 4 Ellipse.perimeterAGM  : 40075016.685880177\n    test 5 Ellipse.perimeterHGK  : 40075016.685880177\n    test 6 Ellipse.perimeterCR   : 40075016.685880177\n    test 7 Ellipse.perimeterGK   : 40075016.685880177\n    test 8 Ellipse.perimeter2RC  : 40075016.685880177\n    test 9 Ellipse.perimeter2R   : 40075016.685880177\n    test 10 Ellipse.perimeter4Arc3: 40075016.6859892, 6378052.503181054, 6378221.49813043\n\n    test 11 elliperim DEPRECATED  : 40075016.68588018\n    test 12 elliperim DEPRECATED  : 40075236.597\n    test 13 elliperim DEPRECATED  : 25512688.0\n    test 14 elliperim DEPRECATED  : 25512408.0\n    test 15 elliperim DEPRECATED  : 0.0\n\n    test 16 Ellipse.apses2        : (6408054.087945863, 6348289.912054137)\n    test 17 Ellipse.arc           : 5009394.585735\n    test 18 Ellipse.arc           : 5009394.585735\n    test 19 Ellipse.arc           : 30056262.514410\n    test 20 Ellipse.arc           : 30056262.514410\n    test 21 Ellipse.area          : 127801973345104.3\n    test 22 Ellipse.e             : 0.004685055207959684\n    test 23 Ellipse.c             : 29882.087945862633\n    test 24 Ellipse.p             : 6378032.000768245\n    test 25 Ellipse.point 45      : (4510048.672774165, 4509999.1752994815)\n    test 26 Ellipse.polar2d 45    : (6378136.999711906, 45.0)\n    test 27 Ellipse.R1            : 6378148.666666666\n    test 28 Ellipse.R2            : 6378136.999903969\n    test 29 Ellipse.Roc 60        : 6378189.500552184\n    test 30 Ellipse.Roc_(-1, 1)   : 6378137.0004801545\n    test 31 Ellipse.Rrectifying   : 6378137.000048016\n    test 32 Ellipse.sideOf        : -0.9999998432135453\n    test 33 Ellipse.sideOf(c, p)  : 0.0\n    test 34 Ellipse.slope 60      : -29.999727713397277\n    test 35 Ellipse.hartzell4     : (4510048.672774, 4509999.175299, 0.0, 2641910.848113)\n    test 36 Ellipse.height4       : (4510063.170305, 4509984.677881, 0.0, 2641910.848001)\n    test 37 Ellipse.normal3d      : (0.7071, 0.70711, 0.0)\n    test 38 Ellipse.normal4       : (3189086.0, 5523598.359928, 0.0, 0.0)\n\n    test 39 Ellipse.toRepr(terse=0): Ellipse(name='', a=6378172, b=6378102, c=29882.08794586, e=0.00468506, e2=0.00002195, p=6378032.00076825, area=127801973345104.296875, perimeter2k=40075016.68588018, R2=6378136.99990397)\n    test 40 Ellipse.toEllipsoid: name='', a=6378172, f=0.00001097, f_=91116.74285714, b=6378102\n    test 41 Ellipse.toTriaxial_: name='_', a=6378172, b=6378102, c=0, e2ab=0.00002195, e2bc=1, e2ac=1\n\n    test 63 Ellipse.sideOfs       : 0\n    test 64 Ellipse.sideOf point  : 0.0\n    test 65 Ellipse.cw vs ccw     : 21\n    test 66 Ellipse.cw vs ccw'd   : True\n    test 91 Ellipse.slopes        : 0\n\n    test 92 a, b, b/a, m: (6378172.0, 5740354.8, 0.9, 0.18999999999999995)\n    test 93 Ellipse.perimeter2k   : 38097844.622237749\n    test 94 Ellipse.perimeter2k_  : 38097844.622237749\n    test 95 Ellipse.perimeterAGM  : 38097844.622237757\n    test 96 Ellipse.perimeterHGK  : 38097844.622237757\n    test 97 Ellipse.perimeterCR   : 38097844.622237757\n    test 98 Ellipse.perimeterGK   : 38097844.622237757\n    test 99 Ellipse.perimeter2RC  : 38097844.622237757\n    test 100 Ellipse.perimeter2R   : 38097844.622237757\n    test 101 Ellipse.perimeter4Arc3: 38107337.959388405, 5343198.019022138, 6890325.8899754025\n\n    test 102 elliperim DEPRECATED  : 38097844.62223775\n    test 103 elliperim DEPRECATED  : 40075236.597\n    test 104 elliperim DEPRECATED  : 25512688.0\n    test 105 elliperim DEPRECATED  : 22961419.2\n    test 106 elliperim DEPRECATED  : 0.0\n\n    test 107 Ellipse.apses2        : (9158352.71925207, 3597991.28074793)\n    test 108 Ellipse.arc           : 4921611.270994\n    test 109 Ellipse.arc           : 4921611.270994\n    test 110 Ellipse.arc           : 28573383.466678\n    test 111 Ellipse.arc           : 28573383.466678\n    test 112 Ellipse.area          : 115023038380546.69\n    test 113 Ellipse.e             : 0.4358898943540673\n    test 114 Ellipse.c             : 2780180.71925207\n    test 115 Ellipse.p             : 5166319.32\n    test 116 Ellipse.point 45      : (4510048.672774165, 4059043.805496748)\n    test 117 Ellipse.polar2d 45    : (6034126.999973108, 45.0)\n    test 118 Ellipse.R1            : 6165566.266666667\n    test 119 Ellipse.R2            : 6050865.248493441\n    test 120 Ellipse.Roc 60        : 6587963.642879878\n    test 121 Ellipse.Roc_(-1, 1)   : 6101359.094016017\n    test 122 Ellipse.Rrectifying   : 6063460.29277612\n    test 123 Ellipse.sideOf        : -0.9999998257947401\n    test 124 Ellipse.sideOf(c, p)  : 0.0\n    test 125 Ellipse.slope 60      : -27.457076095938262\n    test 126 Ellipse.hartzell4     : (4510048.672774, 4059043.805497, 0.0, 2513302.891806)\n    test 127 Ellipse.height4       : (4646979.930894, 3931944.941451, 0.0, 2503472.028331)\n    test 128 Ellipse.normal3d      : (0.66896, 0.74329, 0.0)\n    test 129 Ellipse.normal4       : (3189086.0, 4971293.083536, 0.0, 0.0)\n\n    test 130 Ellipse.toRepr(terse=0): Ellipse(name='', a=6378172, b=5740354.8, c=2780180.71925207, e=0.43588989, e2=0.19, p=5166319.32, area=115023038380546.6875, perimeter2k=38097844.62223775, R2=6050865.24849344)\n    test 131 Ellipse.toEllipsoid: name='', a=6378172, f=0.1, f_=10, b=5740354.8\n    test 132 Ellipse.toTriaxial_: name='_', a=6378172, b=5740354.8, c=0, e2ab=0.19, e2bc=1, e2ac=1\n\n    test 154 Ellipse.sideOfs       : 0\n    test 155 Ellipse.sideOf point  : 0.0\n    test 156 Ellipse.cw vs ccw     : 21\n    test 157 Ellipse.cw vs ccw'd   : True\n    test 182 Ellipse.slopes        : 0\n\n    test 183 a, b, b/a, m: (6378172.0, 3189086.0, 0.5, 0.75)\n    test 184 Ellipse.perimeter2k   : 30897294.581873503\n    test 185 Ellipse.perimeter2k_  : 30897294.581873503\n    test 186 Ellipse.perimeterAGM  : 30897294.581873506\n    test 187 Ellipse.perimeterHGK  : 30897294.581873506\n    test 188 Ellipse.perimeterCR   : 30897294.581819803\n    test 189 Ellipse.perimeterGK   : 30897294.581743788\n    test 190 Ellipse.perimeter2RC  : 30897294.567785483\n    test 191 Ellipse.perimeter2R   : 30897294.567785427\n    test 192 Ellipse.perimeter4Arc3: 31157545.70727452, 2203604.2294767764, 11538221.541046448\n\n    test 193 elliperim DEPRECATED  : 30897294.581873503\n    test 194 elliperim DEPRECATED  : 40075236.597\n    test 195 elliperim DEPRECATED  : 25512688.0\n    test 196 elliperim DEPRECATED  : 12756344.0\n    test 197 elliperim DEPRECATED  : 0.0\n\n    test 198 Ellipse.apses2        : (11901830.9817066, 854513.0182933994)\n    test 199 Ellipse.arc           : 4644738.918062\n    test 200 Ellipse.arc           : 4644738.918062\n    test 201 Ellipse.arc           : 23172970.936405\n    test 202 Ellipse.arc           : 23172970.936405\n    test 203 Ellipse.area          : 63901687989192.6\n    test 204 Ellipse.e             : 0.8660254037844386\n    test 205 Ellipse.c             : 5523658.981706601\n    test 206 Ellipse.p             : 1594543.0\n    test 207 Ellipse.point 45      : (4510048.672774165, 2255024.3363870825)\n    test 208 Ellipse.polar2d 45    : (4033910.165662294, 45.0)\n    test 209 Ellipse.R1            : 5315143.333333333\n    test 210 Ellipse.R2            : 4510048.672774164\n    test 211 Ellipse.Roc 60        : 9342460.639577284\n    test 212 Ellipse.Roc_(-1, 1)   : 6302984.633847336\n    test 213 Ellipse.Rrectifying   : 4917457.1608716035\n    test 214 Ellipse.sideOf        : -0.9999996864305322\n    test 215 Ellipse.sideOf(c, p)  : 0.0\n    test 216 Ellipse.slope 60      : -16.102113751986025\n    test 217 Ellipse.hartzell4     : (4510048.672774, 2255024.336387, 0.0, 2088625.375015)\n    test 218 Ellipse.height4       : (5309727.884418, 1766908.87251, 0.0, 1778808.761525)\n    test 219 Ellipse.normal3d      : (0.44721, 0.89443, 0.0)\n    test 220 Ellipse.normal4       : (3189086.0, 2761829.490853, 0.0, 0.0)\n\n    test 221 Ellipse.toRepr(terse=0): Ellipse(name='', a=6378172, b=3189086, c=5523658.9817066, e=0.8660254, e2=0.75, p=1594543, area=63901687989192.6015625, perimeter2k=30897294.5818735, R2=4510048.67277416)\n    test 222 Ellipse.toEllipsoid: name='', a=6378172, f=0.5, f_=2, b=3189086\n    test 223 Ellipse.toTriaxial_: name='_', a=6378172, b=3189086, c=0, e2ab=0.75, e2bc=1, e2ac=1\n\n    test 245 Ellipse.sideOfs       : 0\n    test 246 Ellipse.sideOf point  : 0.0\n    test 247 Ellipse.cw vs ccw     : 21\n    test 248 Ellipse.cw vs ccw'd   : True\n    test 273 Ellipse.slopes        : 0\n\n    test 274 a, b, b/a, m: (6378172.0, 1594543.0, 0.25, 0.9375)\n    test 275 Ellipse.perimeter2k   : 27357324.785247806\n    test 276 Ellipse.perimeter2k_  : 27357324.785247806\n    test 277 Ellipse.perimeterAGM  : 27357324.785247806\n    test 278 Ellipse.perimeterHGK  : 27357324.785247806\n    test 279 Ellipse.perimeterCR   : 27357324.462550402\n    test 280 Ellipse.perimeterGK   : 27357323.163297798\n    test 281 Ellipse.perimeter2RC  : 27357318.008817654\n    test 282 Ellipse.perimeter2R   : 27357317.948020011\n    test 283 Ellipse.perimeter4Arc3: 27839816.212722465, 922977.919904027, 23415319.320383895\n\n    test 284 elliperim DEPRECATED  : 27357324.785247806\n    test 285 elliperim DEPRECATED  : 40075236.597\n    test 286 elliperim DEPRECATED  : 25512688.0\n    test 287 elliperim DEPRECATED  : 6378172.0\n    test 288 elliperim DEPRECATED  : 0.0\n\n    test 289 Ellipse.apses2        : (12553810.483811613, 202533.51618838683)\n    test 290 Ellipse.arc           : 4544501.990341\n    test 291 Ellipse.arc           : 4544501.990341\n    test 292 Ellipse.arc           : 20517993.588936\n    test 293 Ellipse.arc           : 20517993.588936\n    test 294 Ellipse.area          : 31950843994596.3\n    test 295 Ellipse.e             : 0.9682458365518543\n    test 296 Ellipse.c             : 6175638.483811613\n    test 297 Ellipse.p             : 398635.75\n    test 298 Ellipse.point 45      : (4510048.672774165, 1127512.1681935412)\n    test 299 Ellipse.polar2d 45    : (2187694.9475911316, 45.0)\n    test 300 Ellipse.R1            : 4783629.0\n    test 301 Ellipse.R2            : 3189086.0\n    test 302 Ellipse.Roc 60        : 17091507.78125\n    test 303 Ellipse.Roc_(-1, 1)   : 9878809.997716203\n    test 304 Ellipse.Rrectifying   : 4354053.469342613\n    test 305 Ellipse.sideOf        : -0.9999993728610642\n    test 306 Ellipse.sideOf(c, p)  : 0.0\n    test 307 Ellipse.slope 60      : -8.213210701738216\n    test 308 Ellipse.hartzell4     : (4510048.672774, 1127512.168194, 0.0, 1925617.449958)\n    test 309 Ellipse.height4       : (5837520.368165, 642477.334856, 0.0, 1094866.757991)\n    test 310 Ellipse.normal3d      : (0.24254, 0.97014, 0.0)\n    test 311 Ellipse.normal4       : (3189086.0, 1380914.745427, 0.0, 0.0)\n\n    test 312 Ellipse.toRepr(terse=0): Ellipse(name='', a=6378172, b=1594543, c=6175638.48381161, e=0.96824584, e2=0.9375, p=398635.75, area=31950843994596.30078125, perimeter2k=27357324.78524781, R2=3189086)\n    test 313 Ellipse.toEllipsoid: name='', a=6378172, f=0.75, f_=1.33333333, b=1594543\n    test 314 Ellipse.toTriaxial_: name='_', a=6378172, b=1594543, c=0, e2ab=0.9375, e2bc=1, e2ac=1\n\n    test 336 Ellipse.sideOfs       : 0\n    test 337 Ellipse.sideOf point  : 0.0\n    test 338 Ellipse.cw vs ccw     : 21\n    test 339 Ellipse.cw vs ccw'd   : True\n    test 364 Ellipse.slopes        : 0\n\n    test 365 a, b, b/a, m: (6378172.0, 797271.5, 0.125, 0.984375)\n    test 366 Ellipse.perimeter2k   : 26106620.666072767\n    test 367 Ellipse.perimeter2k_  : 26106620.666072767\n    test 368 Ellipse.perimeterAGM  : 26106620.666072764\n    test 369 Ellipse.perimeterHGK  : 26106620.666072760\n    test 370 Ellipse.perimeterCR   : 26106596.269819759\n    test 371 Ellipse.perimeterGK   : 26106498.674043797\n    test 372 Ellipse.perimeter2RC  : 26106496.429202825\n    test 373 Ellipse.perimeter2R   : 26106468.693959467\n    test 374 Ellipse.perimeter4Arc3: 26548502.51849537, 426749.3250869843, 48408652.89930413\n\n    test 375 elliperim DEPRECATED  : 26106620.666072767\n    test 376 elliperim DEPRECATED  : 40075236.597\n    test 377 elliperim DEPRECATED  : 25512688.0\n    test 378 elliperim DEPRECATED  : 3189086.0\n    test 379 elliperim DEPRECATED  : 0.0\n\n    test 380 Ellipse.apses2        : (12706318.349198299, 50025.65080170147)\n    test 381 Ellipse.arc           : 4518714.450822\n    test 382 Ellipse.arc           : 4518714.450822\n    test 383 Ellipse.arc           : 19579965.499555\n    test 384 Ellipse.arc           : 19579965.499555\n    test 385 Ellipse.area          : 15975421997298.15\n    test 386 Ellipse.e             : 0.9921567416492215\n    test 387 Ellipse.c             : 6328146.3491982985\n    test 388 Ellipse.p             : 99658.9375\n    test 389 Ellipse.point 45      : (4510048.672774165, 563756.0840967706)\n    test 390 Ellipse.polar2d 45    : (1118805.3802239103, 45.0)\n    test 391 Ellipse.R1            : 4517871.833333333\n    test 392 Ellipse.R2            : 2255024.336387082\n    test 393 Ellipse.Roc 60        : 33401212.250312246\n    test 394 Ellipse.Roc_(-1, 1)   : 18464659.107211024\n    test 395 Ellipse.Rrectifying   : 4154997.72643051\n    test 396 Ellipse.sideOf        : -0.9999987457221285\n    test 397 Ellipse.sideOf(c, p)  : 0.0\n    test 398 Ellipse.slope 60      : -4.127810304512707\n    test 399 Ellipse.hartzell4     : (4510048.672774, 563756.084097, 0.0, 1882661.471213)\n    test 400 Ellipse.height4       : (6128382.04862, 220935.918585, 0.0, 628138.298638)\n    test 401 Ellipse.normal3d      : (0.12403, 0.99228, 0.0)\n    test 402 Ellipse.normal4       : (3189086.0, 690457.372713, 0.0, 0.0)\n\n    test 403 Ellipse.toRepr(terse=0): Ellipse(name='', a=6378172, b=797271.5, c=6328146.3491983, e=0.99215674, e2=0.984375, p=99658.9375, area=15975421997298.15039062, perimeter2k=26106620.66607277, R2=2255024.33638708)\n    test 404 Ellipse.toEllipsoid: name='', a=6378172, f=0.875, f_=1.14285714, b=797271.5\n    test 405 Ellipse.toTriaxial_: name='_', a=6378172, b=797271.5, c=0, e2ab=0.984375, e2bc=1, e2ac=1\n\n    test 427 Ellipse.sideOfs       : 0\n    test 428 Ellipse.sideOf point  : 0.0\n    test 429 Ellipse.cw vs ccw     : 21\n    test 430 Ellipse.cw vs ccw'd   : True\n    test 455 Ellipse.slopes        : 0\n\n    test 456 a, b, b/a, m: (6378172.0, 2.220446049250313e-16, 3.4813204304467065e-23, 1.0)\n    test 457 Ellipse.perimeter2k   : 25512688.000000000\n    test 458 Ellipse.perimeter2k_  : 25512688.000000000\n    test 459 Ellipse.perimeterAGM  : 25512688.000000000\n    test 460 Ellipse.perimeterHGK  : 25512688.000000000\n    test 461 Ellipse.perimeterCR   : 25512688.000000000\n    test 462 Ellipse.perimeterGK   : 25512688.000000000\n    test 463 Ellipse.perimeter2RC  : 25512688.000000000\n    test 464 Ellipse.perimeter2R   : 25512688.000000000\n    test 465 Ellipse.perimeter4Arc3: 25512688.0, 0.0, 4503599627370496.0\n\n    test 466 elliperim DEPRECATED  : 25512688.0\n    test 467 elliperim DEPRECATED  : 40075236.597\n    test 468 elliperim DEPRECATED  : 25512688.0\n    test 469 elliperim DEPRECATED  : 0.0\n    test 470 elliperim DEPRECATED  : 0.0\n\n    test 471 Ellipse.apses2        : (12756344.0, 0.0)\n    test 472 Ellipse.arc           : 3189086.000000\n    test 473 Ellipse.arc           : 3189086.000000\n    test 474 Ellipse.arc           : 19134516.000000\n    test 475 Ellipse.arc           : 19134516.000000\n    test 476 Ellipse.area          : 4.449245038736142e-09\n    test 477 Ellipse.e             : 1.0\n    test 478 Ellipse.c             : 6378172.0\n    test 479 Ellipse.p             : 7.730084195959789e-39\n    test 480 Ellipse.point 45      : (4510048.672774165, 1.5700924586837752e-16)\n    test 481 Ellipse.polar2d 45    : (3.14018491736755e-16, 45.0)\n    test 482 Ellipse.R1            : 4252114.666666666\n    test 483 Ellipse.R2            : 3.763294676057001e-05\n    test 484 Ellipse.Roc 60        : 1.1899922225051757e+29\n    test 485 Ellipse.Roc_(-1, 1)   : 6.477497206707077e+28\n    test 486 Ellipse.Rrectifying   : 4060470.406761281\n    test 487 Ellipse.sideOf        : 4503599627370494.5\n    test 488 Ellipse.sideOf(c, p)  : 0.0\n    test 489 Ellipse.slope 60      : 0.0\n    test 490 Ellipse.hartzell4     : (4510048.672774, 0.0, 0.0, 1868123.327226)\n    test 491 Ellipse.height4       : (6378172.0, 0.0, 0.0, 0.0)\n    test 492 Ellipse.normal3d      : (0.0, 1.0, 0.0)\n    test 493 Ellipse.normal4       : (3189086.0, 0.0, 0.0, 0.0)\n\n    test 494 Ellipse.toRepr(terse=0): Ellipse(name='', a=6378172, b=0, c=6378172, e=1, e2=1, p=0, area=0, perimeter2k=25512688, R2=0.00003763)\n    test 495 Ellipse.toEllipsoid: name='', a=6378172, f=0, f_=0, b=6378172\n    test 496 Ellipse.toTriaxial_: name='_', a=6378172, b=0, c=0, e2ab=1, e2bc=0, e2ac=1\n\n    test 497 Ellipse.isCircular    : False\n    test 498 Ellipse.isFlat        : True\n    test 499 Ellipse.isOblate      : True\n    test 500 Ellipse.isProlate     : False\n\n    test 501 Airy1830.polarimeter/2k: 40004504.322866\n    test 502 AiryModified.polarimeter/2k: 40003104.213633\n    test 503 ATS1977.polarimeter/2k: 40007850.321623\n    test 504 Australia1966.polarimeter/2k: 40008005.562578\n    test 505 Bessel1841.polarimeter/2k: 40003423.057729\n    test 506 BesselModified.polarimeter/2k: 40004018.103739\n    test 507 CGCS2000.polarimeter/2k: 40007862.916922\n    test 508 Clarke1866.polarimeter/2k: 40007552.171931\n    test 509 Clarke1880.polarimeter/2k: 40007470.206590\n    test 510 Clarke1880IGN.polarimeter/2k: 40007470.788996\n    test 511 Clarke1880Mod.polarimeter/2k: 40007470.510580\n    test 512 CPM1799.polarimeter/2k: 40000070.108863\n    test 513 Delambre1810.polarimeter/2k: 39999995.935832\n    test 514 Engelis1985.polarimeter/2k: 40007856.817888\n    test 515 Everest1969.polarimeter/2k: 40003153.246198\n    test 516 Everest1975.polarimeter/2k: 40003175.124904\n    test 517 Fisher1968.polarimeter/2k: 40007954.087654\n    test 518 GEM10C.polarimeter/2k: 40007862.917259\n    test 519 GPES.polarimeter/2k: 40075004.119208\n    test 520 GRS67.polarimeter/2k: 40008004.925042\n    test 521 GRS80.polarimeter/2k: 40007862.916922\n    test 522 Helmert1906.polarimeter/2k: 40008267.720558\n    test 523 IAU76.polarimeter/2k: 40007881.684906\n    test 524 IERS1989.polarimeter/2k: 40007856.594279\n    test 525 IERS1992TOPEX.polarimeter/2k: 40007858.526391\n    test 526 IERS2003.polarimeter/2k: 40007860.227339\n    test 527 Intl1924.polarimeter/2k: 40009153.195958\n    test 528 Intl1967.polarimeter/2k: 40007989.794372\n    test 529 Krassovski1940.polarimeter/2k: 40008549.990171\n    test 530 Krassowsky1940.polarimeter/2k: 40008549.990171\n    test 531 Maupertuis1738.polarimeter/2k: 40090266.793877\n    test 532 Mercury1960.polarimeter/2k: 40008054.450184\n    test 533 Mercury1968Mod.polarimeter/2k: 40007954.087654\n    test 534 NWL1965.polarimeter/2k: 40007911.472733\n    test 535 OSU86F.polarimeter/2k: 40007857.899134\n    test 536 OSU91A.polarimeter/2k: 40007858.526400\n    test 537 Plessis1817.polarimeter/2k: 39999996.440146\n    test 538 PZ90.polarimeter/2k: 40007856.783172\n    test 539 SGS85.polarimeter/2k: 40007856.594279\n    test 540 SoAmerican1969.polarimeter/2k: 40008005.562578\n    test 541 Sphere.polarimeter/2k: 40030228.704467\n    test 542 SphereAuthalic.polarimeter/2k: 40030173.592041\n    test 543 SpherePopular.polarimeter/2k: 40075016.685578\n    test 544 Struve1860.polarimeter/2k: 40008071.346229\n    test 545 WGS60.polarimeter/2k: 40008048.177526\n    test 546 WGS66.polarimeter/2k: 40007911.472733\n    test 547 WGS72.polarimeter/2k: 40007850.996794\n    test 548 WGS84.polarimeter/2k: 40007862.917251\n    test 549 WGS84_NGS.polarimeter/2k: 40007862.916922\n\n    30 of 549 testEllipses.py tests (5.5%) FAILED, incl. 30 DeprecationWarnings (pygeodesy 26.3.26 Python 3.13.12 64bit arm64 coverage 7.10.7 geographiclib 2.1 numpy 2.3.3 scipy 1.16.2 Math 2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 macOS 26.3.1 isLazy 1 -W  default) 295.114 ms\nrunning /Library/Framewo....n3.13 -W default ~/PyGeodesy/test/testEllipsoidal.py\n<string>:1: DeprecationWarning: method L{__matmul__<pygeodesy.trf.RefFrame.__matmul__>} has been DEPRECATED on 2024.02.16, use method C{B{point}.toRefFrame}.\n./pygeodesy/ellipsoidalBase.py:443: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  _ = self.datum.ellipsoid.geodesic\n./pygeodesy/azimuthal.py:636: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return self.datum.ellipsoid.geodesic\n./test/testLatLon.py:276: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.ellipsoidalNvector.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', p.cosineAndoyerLambertTo(q), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:277: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.ellipsoidalNvector.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', q.cosineAndoyerLambertTo(p), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:279: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.ellipsoidalNvector.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', p.cosineForsytheAndoyerLambertTo(q), '124801.098' if Sph else '125205.965', fmt='%.3f')\n./test/testLatLon.py:280: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.ellipsoidalNvector.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', q.cosineForsytheAndoyerLambertTo(p), '124801.098' if Sph else '125205.965', fmt='%.3f')\n./pygeodesy/basics.py:637: DeprecationWarning: Conversion of an array with ndim > 0 to a scalar is deprecated, and will error in future. Ensure you extract a single element from your array before performing this operation. (Deprecated NumPy 1.25.)\n  return tuple(map(fun, *xs, **strict) if strict else map(fun, *xs))\n./pygeodesy/ellipsoidalNvector.py:247: DeprecationWarning: Property_RO L{ned<pygeodesy.ltpTuples.Ned.ned>} has been DEPRECATED, use property C{ned4}.\n  dn = delta.ned[:3]  # XXX Ned4Tuple.to3Tuple\n./pygeodesy/deprecated/classes.py:33: DeprecationWarning: class L{Ned3Tuple<pygeodesy.deprecated.classes.Ned3Tuple>} has been DEPRECATED, use class L{Ned4Tuple}, ignoring item C{ltp}.\n  deprecated_class(cls)\n\n    testing testEllipsoidal.py 24.11.02 isLazy=1\n\n    testEllipsoidal(pygeodesy.ellipsoidalNvector, 25.05.12)\n    test 1 isEllipsoidal: True\n    test 2 isSpherical: False\n    test 3 isEllipsoidal: True\n    test 4 isSpherical: False\n    test 5 toDatum: 51.477284°N, 000.00002°E, -45.91m\n    test 6 toDatum: 51.4773°N, 000.0°E, -45.91m\n    test 7 toDatum: 51.4778°N, 000.0016°W\n    test 8 __matmul__: 51.477284°N, 000.00002°E, -45.91m\n    test 9 __matmul__: 51.477284°N, 000.00002°E, -45.90m\n    test 10 parse: 51.477284°N, 000.00002°E, -45.91m\n    test 11 reframe: None\n    test 12 toCartesian: [3980581.21, -111.159, 4966824.522]\n    test 13 toCss: -111.158797 5705242.333679\n    test 14 toCss: -111.158797 5705242.333679\n    test 15 toEcef: 3980581.21, -111.159, 4966824.522\n    test 16 toEtm: 30 N 916396 5720041\n    test 17 toEtm: 30 N 916396 5720041\n    test 18 toLcc: 5639901 4612638\n    test 19 toLcc: 5639901 4612638\n    test 20 toOsgr: TQ 38876 77320\n    test 21 toOsgr: TQ 38876 77320\n    test 22 toOsgrTM: TQ 38876 77320\n    test 23 toUtmUps: 30 N 708207 5707224\n    test 24 toUtm: 30 N 708207 5707224\n    test 25 toUtm: 30 N 708207 5707224\n    test 26 toWm: -178.111 6672799.209\n    test 27 toWm: -178.111 6672799.209\n    test 28 elevation2: None\n    test 29 geoidHeight2: None\n    test 30 toUtmUps: 30 N 708207 5707224\n    test 31 toUtm: 30 N 708207 5707224\n    test 32 toUtm: 30 N 708207 5707224\n    test 33 toUtmUps: 00 N 2000000 1333272\n    test 34 toUps: 00 N 2000000 1333272\n    test 35 toUps: 00 N 0 -666728\n    test 36 toUps: 00 N 2000000 1555732\n    test 37 toUtm: 31 N 459200 9217519\n    test 38 nearestOn: 32.81°N, 031.42°E\n    test 39 toNVector: (0.6228, 0.0, 0.7824, +0.24)\n    test 40 toNvector: True\n    test 41 toCartesian: [3980581, 97, 4966825]\n    test 42 toCartesian: True\n    test 43 toVector3D: (0.6228, 0.0, 0.7824)\n    test 44 Nvector: (0.5, 0.5, 0.7071)\n    test 45 toVector3D: (0.5, 0.5, 0.7071)\n    test 46 philamheight: 0.7854, 0.7854, 0.0\n    test 47 latlonheight: 45.0, 45.0, 0.0\n    test 48 xyzh: 0.5, 0.5, 0.7, 0.0\n    test 49 toCartesian: [3194434.411, 3194434.411, 4487326.82]\n    test 50 toCartesian: True\n    test 51 toLatLon: 45.0°N, 045.0°E\n    test 52 toLatLon: True\n    test 53 Nvector: (0.51, 0.512, 0.707, +1.00)\n    test 54 sat: 82.545852°N, 059.719736°E, -6353121.71m\n    test 55 dop: 51.998889°N, 004.373333°E, +134.64m\n    test 56 distance: 3806542.943645768  FAILED, KNOWN, expected 3806542.943647\n\n    32 tests skipped (32): insersecant2\n\n    testLatLon(pygeodesy.ellipsoidalNvector, 25.05.12)\n    test 57 isEllipsoidal: True\n    test 58 isSpherical: False\n    test 59 lat/lonDMS: 52.20472°N, 000.14056°E\n    test 60 lat/lonDMS F_DM: 52°12.283′N, 000°08.434′E\n    test 61 lat/lonDMS F_DM: 52°12.2832′N, 000°08.4336′E\n    test 62 lat/lonDMS F_DMS: 52°12′17″N, 000°08′26″E\n    test 63 lat/lonDMS F_DMS: 52°12′17.0″N, 000°08′26.0″E\n    test 64 lat/lonDMS F_RAD: 0.911144N, 0.002453E\n    test 65 isequalTo: True\n    test 66 isequalTo: True\n    test 67 latlon2: 52.20472, 0.14056\n    test 68 latlon2: 52.2047, 0.1406\n    test 69 latlon2: 52.205, 0.141\n    test 70 latlon2: 52.2, 0.14\n    test 71 latlon2: 52.2, 0.1\n    test 72 latlon2: 52.0, 0.0\n    test 73 chordTo: 12029263.15\n    test 74 chordTo: 12029049.69\n    test 75 copy: True\n    test 76 __eq__: True\n    test 77 __ne__: False\n    test 78 equirectangularTo: 404329.56\n    test 79 distanceTo: 404279.720589\n    test 80 distanceTo: 404279.720589\n    test 81 distanceTo: 3972863\n    test 82 distanceTo: 18013602.92\n    test 83 distanceTo: 20015114.35  FAILED, KNOWN, expected 20003931.46\n    test 84 intermediateTo: 51.372294°N, 000.707192°E\n    test 85 intermediateTo: True\n    test 86 intermediateTo: 404279.721\n    test 87 intermediateTo+5: 35.560239°N, 008.833512°E\n    test 88 intermediateTo+5: 4.885\n    test 89 intermediateTo-4: 64.570387°N, 013.156352°W\n    test 90 intermediateTo-4: 3.885\n    test 91 intermediateTo-h: 125.000\n    test 92 midpointTo: 50.536327°N, 001.274614°E\n    test 93 neareston6: (LatLon(45°00′00.0″N, 001°00′00.0″E), 4755443.4294, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E))\n    test 94 neareston6: (LatLon(45°30′03.94″N, 002°00′00.0″E), 39078.729285, 1.501072, 2, LatLon(45°00′00.0″N, 002°00′00.0″E), LatLon(46°00′00.0″N, 002°00′00.0″E))\n    test 95 chordTo: 125203.963\n    test 96 cosineAndoyerLambertTo: 125205.962\n    test 97 cosineAndoyerLambertTo: 125205.962\n    test 98 cosineForsyheAndoyerLambertTo: 125205.965\n    test 99 cosineForsyheAndoyerLambertTo: 125205.965\n    test 100 cosineLawTo: 124801.098\n    test 101 cosineLawTo: 124801.098\n    test 102 equirectangularTo: 124804.754\n    test 103 equirectangularTo: 124804.754\n    test 104 euclideanTo: 130015.089\n    test 105 euclideanTo: 130015.089\n    test 106 flatLocalTo: 125209.633\n    test 107 flatLocalTo: 125209.633\n    test 108 flatPolarTo: 133663.257\n    test 109 flatPolarTo: 133663.257\n    test 110 hartzell: 53.3206°N, 001.7297°W\n    test 111 hartzell: 53.349541°N, 001.7297°W\n    test 112 height4: 0.0\n    test 113 height4: (3820333.9, -115367.0, 5097204.4, -6584.9)\n    test 114 height4: 53°19′14.2″N, 001°43′46.9″W\n    test 115 height4: 53°19′14.2″N, 001°43′46.9″W\n    test 116 haversineTo: 124801.098\n    test 117 haversineTo: 124801.098\n    test 118 hubenyTo: <bound method LatLonBase.flatLocalTo of LatLon(53°19′14.16″N, 001°43′46.92″W)>\n    test 119 hubenyTo: <bound method LatLonBase.flatLocalTo of LatLon(53°11′19.32″N, 000°08′00.24″E)>\n    test 120 thomasTo: 125206.188\n    test 121 thomasTo: 125206.188\n    test 122 vincentysTo: 124801.098\n    test 123 vincentysTo: 124801.098\n    test 124 isclockwise: False\n    test 125 isclockwise*: False\n    test 126 isclockwise: True\n    test 127 isclockwise*: True\n    test 128 isclockwise: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 129 isclockwise*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 130 isclockwise: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 131 isclockwise*: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 132 isconvex: False\n    test 133 isconvex*: False\n    test 134 isconvex: True\n    test 135 isconvex*: True\n    test 136 isconvex: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 137 isconvex*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 138 isenclosedBy1: True\n    test 139 isenclosedBy1*: True\n    test 140 isenclosedBy2: False\n    test 141 isenclosedBy2*: False\n    test 142 isenclosedBy3: False\n    test 143 isenclosedBy3*: False\n    test 144 isenclosedBy4: False\n    test 145 isenclosedBy4*: False\n    test 146 isenclosedBy5: False\n    test 147 isenclosedBy5*: False\n    test 148 isenclosedBy6: True\n    test 149 isenclosedBy6*: True\n    test 150 isenclosedBy7: True\n    test 151 isenclosedBy7*: True\n    test 152 isenclosedBy-CCW: True\n    test 153 isenclosedBy-CW : True\n    test 154 isenclosedBy-CCW: True\n    test 155 compassAngleTo: 100.017\n    test 156 compassAngleTo: 105.599\n    test 157 compassAngleTo: 280.017\n    test 158 compassAngleTo: 285.599\n    test 159 equirectangularTo: 592.185\n    test 160 distanceTo: 591.831\n    test 161 compassAngleTo: 0.0\n    test 162 compassAngleTo: 45.0\n    test 163 compassAngleTo: 90.0\n    test 164 compassAngleTo: 180.0\n    test 165 compassAngleTo: 225.0\n    test 166 compassAngleTo: 315.0\n    test 167 compassAngleTo: 270.0\n    test 168 compassAngleTo: 359.4\n    test 169 latlon2: (53.0, 1.0)\n    test 170 philam2: (0.93, 0.02)\n    test 171 compassAngleTo: 31\n    test 172 compassAngleTo: 45\n\n    test 173 boundsOf: <class 'pygeodesy.namedTuples.Bounds2Tuple'>\n    test 174 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n./test/testVectorial.py:128: DeprecationWarning: function L{nearestOn<pygeodesy.vector2d.nearestOn>} has been DEPRECATED on 2025.05.06, use L{pygeodesy.nearestOn<pygeodesy.vector3d.nearestOn>}.\n  t = vector2d.nearestOn(Nvector(0, 0, 0), p1, p2)\n    test 175 latlon2: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 176 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 177 isequalTo: <class 'bool'>\n    test 178 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 179 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 180 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 181 xyz3: <class 'tuple'>\n    test 182 xyzh: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 183 compassAngleTo: <class 'float'>\n    test 184 cosineLawTo: <class 'float'>\n    test 185 euclideanTo: <class 'float'>\n    test 186 flatLocalTo: <class 'float'>\n    test 187 flatPolarTo: <class 'float'>\n    test 188 haversineTo: <class 'float'>\n    test 189 hubenyTo: <class 'float'>\n    test 190 vincentysTo: <class 'float'>\n    test 191 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 192 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 193 toLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 194 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 195 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 196 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 197 toVector: (3934960.466675, 0.0, 5002803.345483)\n    test 198 toVector3d: (0.61823, 0.0, 0.786)\n    test 199 trilaterate5 (pygeodesy.ellipsoidalNvector) .min: 223.305\n    test 200 trilaterate5 (pygeodesy.ellipsoidalNvector) .point: 42.67456065°N, 002.49539502°E\n    test 201 trilaterate5 (pygeodesy.ellipsoidalNvector) .min- is .maxPoint: True\n    test 202 trilaterate5 (pygeodesy.ellipsoidalNvector) .n: 1\n    test 203 trilaterate5 (pygeodesy.ellipsoidalNvector) .error: ellipsoidalNvector.LatLon.trilaterate5(area=True), MRO(nvectorBase.LatLonNvectorBase, ellipsoidalBase.LatLonEllipsoidalBase, latlonBase.LatLonBase, named._NamedBase, ecefLocals._EcefLocal, named._Named): not implemented\n\n    test 204 radii11: Radii11Tuple(rA=7705.84217, rB=1367.057272, rC=498.160185, cR=4897.488519, rIn=740.470746, riS=179.544791, roS=5964.029657, a=1865.217457, b=8204.002354, c=9072.899442, s=9571.059626)\n    test 205 circum4 (pygeodesy.ellipsoidalNvector) .radius: 3184196.839  FAILED, KNOWN, expected 3184256.748\n    test 206 circum4 (pygeodesy.ellipsoidalNvector) .center: 42.674776°N, 002.495488°E, -3184194.95m  FAILED, KNOWN, expected 43.054367°N, 002.942573°E, -3183993.92m\n    test 207 circum4 (pygeodesy.ellipsoidalNvector) .rank: 3\n    test 208 circum4 (pygeodesy.ellipsoidalNvector) .residuals: ()\n    test 209 circum4 (pygeodesy.ellipsoidalNvector) .d1: 4886.122  FAILED, KNOWN, expected 57818.033\n    test 210 circum4 (pygeodesy.ellipsoidalNvector) .d2: 4904.641  FAILED, KNOWN, expected 57834.176\n    test 211 circum4 (pygeodesy.ellipsoidalNvector) .d3: 4909.920  FAILED, KNOWN, expected 57830.992\n    test 212 circum4 (pygeodesy.ellipsoidalNvector) .datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 213 circum4 (pygeodesy.ellipsoidalNvector) .Ecef: <class 'pygeodesy.ecef.EcefVeness'>\n    test 214 radii11: Radii11Tuple(rA=327537.482637, rB=776914.262482, rC=784245.052526, cR=780602.180901, rIn=325058.721103, riS=84975.664195, roS=INF, a=1561159.315008, b=1111782.535163, c=1104451.745119, s=1888696.797645)\n    test 215 circin6 (pygeodesy.ellipsoidalNvector) .rB+rC: 1561159.315\n    test 216 circin6 (pygeodesy.ellipsoidalNvector) .rC+pA: 1111782.535\n    test 217 circin6 (pygeodesy.ellipsoidalNvector) .rA+rB: 1104451.745\n    test 218 circin6 (pygeodesy.ellipsoidalNvector) .radius: 325058.721\n    test 219 circin6 (pygeodesy.ellipsoidalNvector) .center: 02.948531°N, 002.932537°E, -40041.19m\n    test 220 circin6 (pygeodesy.ellipsoidalNvector) .deltas: (0.0, 0.0, 0.224326)  FAILED, KNOWN, expected (0.0, 0.0, 0.090491)\n    test 221 circin6 (pygeodesy.ellipsoidalNvector) .cA: 05.04314°N, 005.014578°E, -48104.09m\n    test 222 circin6 (pygeodesy.ellipsoidalNvector) .cB: 00.0°N, 002.941713°E, -20168.62m\n    test 223 circin6 (pygeodesy.ellipsoidalNvector) .cC: 02.961566°N, 000.0°E, -20113.46m\n    test 224 circin6 (pygeodesy.ellipsoidalNvector) .dA: 327992.318  FAILED, KNOWN, expected 327263.596\n    test 225 circin6 (pygeodesy.ellipsoidalNvector) .dB: 327863.711  FAILED, KNOWN, expected 326036.153\n    test 226 circin6 (pygeodesy.ellipsoidalNvector) .dC: 325653.216  FAILED, KNOWN, expected 326020.432\n\n    testVectorial(pygeodesy.ellipsoidalNvector, 25.05.12)\n\n    test 227 toLatLon: 44.995674°N, 045.0°E\n    test 228 toNvector: (0.50004, 0.50004, 0.70705)\n    test 229 isequalTo: False\n    test 230 isequalTo: True\n    test 231 length: 0.99992449715\n    test 232 euclid: 0.99995577\n    test 233 length: 1.00\n    test 234 euclid: 1.0000\n    test 235 meanOf: 44.995674°N, 045.0°E\n    test 236 meanOf: LatLon\n    test 237 apply: (0.5, 0.5, 0.707)\n    test 238 init: (0.5, 0.5, 0.707)\n    test 239 i***: (0.5, 0.5, 0.707)\n    test 240 abs: 0.99992449715\n    test 241 sumOf: (52.70504, 0.61904, 0.70705)\n    test 242 sumOf: Nv\n    test 243 sumOf: sumOf\n    test 244 length: 52.7134151513\n    test 245 sizeof: 217  FAILED, KNOWN, expected 128\n    test 246 length: 52.2051356286\n    test 247 sizeof: 320  FAILED, KNOWN, expected 247\n    test 248 copy: True\n    test 249 length: 52.2051356286\n    test 250 sizeof: 320\n    test 251 isenclosedBy: True\n    test 252 isenclosedBy*: True\n    test 253 isenclosedBy: True\n    test 254 isenclosedBy*: True\n\n    test 255 nearestOn: 51.0°N, 001.0°E\n    test 256 nearestOn: 50.987°N, 000.298°W\n    test 257 nearestOn: 51.0°N, 002.0°E\n    test 258 nearestOn: 50.995°N, 002.655°E\n    test 259 nearestOn: 51.0°N, 001.9°E\n    test 260 nearestOn: True\n    test 261 distanceTo: 42.826\n    test 262 nearestOn: 51.0°N, 002.0°E\n    test 263 nearestOn: True\n    test 264 nearestOn: 00.0°N, 000.0°E\n    test 265 nearestOn: True\n    test 266 nearestOn: 00.0°N, 020.0°E\n    test 267 nearestOn: True\n    test 268 nearestOn: 02.0°N, 002.0°E\n    test 269 nearestOn: 02.0°N, 002.0°E\n\n    test 270 neareston6: (LatLon(45°00′00.0″N, 001°00′00.0″E), 4755443.4294, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E))\n    test 271 neareston6: (LatLon(45°30′03.94″N, 002°00′00.0″E), 39078.729285, 1.501072, 2, LatLon(45°00′00.0″N, 002°00′00.0″E), LatLon(46°00′00.0″N, 002°00′00.0″E))\n\n    test 272 BasseC: 47.3038°N, 002.5721°W\n    test 273 BasseH: 47.311067°N, 002.528617°W\n    test 274 triangulate: 47.323667°N, 002.568501°W\n    test 275 triangulate: True\n\n    test 276 trilaterate: 37.419078°N, 121.960579°W\n    test 277 trilaterate: True\n    test 278 trilaterate: 08.068912°S, 034.888699°W\n    test 279 trilaterate: True\n    test 280 trilaterate: 08.068912°S, 034.888695°W  FAILED, KNOWN, expected 08.068912°S, 034.888699°W\n    test 281 trilaterate: True\n    test 282 trilaterate: 42.67456065°N, 002.49539502°E\n    test 283 trilaterate: distance1 (5110), distance2 (5110), distance3 (5110), point1 (LatLon(42°41′19.82″N, 002°26′19.89″E)), point2 (LatLon(42°38′07.52″N, 002°31′21.25″E)) or point3 (LatLon(42°38′43.44″N, 002°30′17.32″E)): no intersection (useZ=False, wrap=False, z=-8.13526e-05)\n\n    test 284 destinationNed: 48°53′12.01″N, 002°22′29.0″E, +0.20m\n\n    testNvector(pygeodesy.ellipsoidalNvector, 25.05.12)\n    test 285 sumOf: Nvector\n    test 286 ecef.x, .y, .z: 3194659.54086, 3194659.54086, 4487008.4122\n    test 287 ecef.lat, .lon: 44.995674, 45.0\n    test 288 ecef.height: -0.0\n    test 289 ecef.M: -0.707106781, -0.499962243, 0.500037754, 0.707106781, -0.499962243, 0.500037754, 0.0, 0.707160174, 0.707053385\n    test 290 .isEllipsoidal: True\n    test 291 .isSpherical: False\n    test 292 .latlon: (44.995674, 45.0)\n    test 293 .philam: (0.785323, 0.785398)\n    test 294 .latlonheight: (44.995674, 45.0, 0.0)\n    test 295 .philamheight: (0.785323, 0.785398, 0.0)\n    test 296 parse: (0.5, 0.5, 0.707)\n    test 297 cmp: 0\n    test 298 eq: True\n    test 299 ge: True\n    test 300 gt: False\n    test 301 le: True\n    test 302 lt: False\n    test 303 ne: False\n    test 304 *: (1.0, 1.0, 1.414)\n    test 305 +: (1.0, 1.0, 1.414)\n    test 306 /: (0.5, 0.5, 0.707)\n    test 307 -: (0.5, 0.5, 0.707)\n./test/testLatLon.py:276: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.ellipsoidalVincenty.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', p.cosineAndoyerLambertTo(q), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:277: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.ellipsoidalVincenty.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', q.cosineAndoyerLambertTo(p), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:279: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.ellipsoidalVincenty.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', p.cosineForsytheAndoyerLambertTo(q), '124801.098' if Sph else '125205.965', fmt='%.3f')\n./test/testLatLon.py:280: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.ellipsoidalVincenty.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', q.cosineForsytheAndoyerLambertTo(p), '124801.098' if Sph else '125205.965', fmt='%.3f')\n    test 308 @: (0.0, 0.0, 0.0)\n    test 309 @: (0.0, 0.0, 0.0)\n    test 310 rotate: (0.26268, 0.26268, 0.37143)\n    test 311 crosserrors: True\n    test 312 0: divisor (0): float division by zero\n    test 313 intersections2: (500.0, 0.0, 0.0)\n    test 314 nearestOn: (0.0, 0.0, 0.0)\n    test 315 nearestOn: True\n    test 316 nearestOn: (100.0, 100.0, 100.0)\n    test 317 nearestOn: True\n    test 318 iscolinearWith: False\n    test 319 iscolinearWith: True\n    test 320 nearestOn: (0.0, 0.0, 0.0)\n    test 321 nearestOn: True\n    test 322 nearestOn: (100.0, 100.0, 100.0)\n    test 323 nearestOn: True\n    test 324 iscolinearWith: False\n    test 325 iscolinearWith: True\n\n    testEllipsoidal(pygeodesy.ellipsoidalVincenty, 25.05.26)\n    test 326 isEllipsoidal: True\n    test 327 isSpherical: False\n    test 328 isEllipsoidal: True\n    test 329 isSpherical: False\n    test 330 toDatum: 51.477284°N, 000.00002°E, -45.91m\n    test 331 toDatum: 51.4773°N, 000.0°E, -45.91m\n    test 332 toDatum: 51.4778°N, 000.0016°W\n    test 333 __matmul__: 51.477284°N, 000.00002°E, -45.91m\n    test 334 __matmul__: 51.477284°N, 000.00002°E, -45.90m\n    test 335 parse: 51.477284°N, 000.00002°E, -45.91m\n    test 336 reframe: None\n    test 337 toCartesian: [3980581.21, -111.159, 4966824.522]\n    test 338 toCss: -111.158797 5705242.333679\n    test 339 toCss: -111.158797 5705242.333679\n    test 340 toEcef: 3980581.21, -111.159, 4966824.522\n    test 341 toEtm: 30 N 916396 5720041\n    test 342 toEtm: 30 N 916396 5720041\n    test 343 toLcc: 5639901 4612638\n    test 344 toLcc: 5639901 4612638\n    test 345 toOsgr: TQ 38876 77320\n    test 346 toOsgr: TQ 38876 77320\n    test 347 toOsgrTM: TQ 38876 77320\n    test 348 toUtmUps: 30 N 708207 5707224\n    test 349 toUtm: 30 N 708207 5707224\n    test 350 toUtm: 30 N 708207 5707224\n    test 351 toWm: -178.111 6672799.209\n    test 352 toWm: -178.111 6672799.209\n    test 353 elevation2: None\n    test 354 geoidHeight2: None\n    test 355 toUtmUps: 30 N 708207 5707224\n    test 356 toUtm: 30 N 708207 5707224\n    test 357 toUtm: 30 N 708207 5707224\n    test 358 toUtmUps: 00 N 2000000 1333272\n    test 359 toUps: 00 N 2000000 1333272\n    test 360 toUps: 00 N 0 -666728\n    test 361 toUps: 00 N 2000000 1555732\n    test 362 toUtm: 31 N 459200 9217519\n    test 363 nearestOn: 32.81°N, 031.42°E\n    test 364 sat: 82.545852°N, 059.719736°E, -6353121.71m\n    test 365 dop: 51.998889°N, 004.373333°E, +134.64m\n    test 366 distance: 3817991.0740122627  FAILED, KNOWN, expected 3817991.074015\n    test 367 neareston8: (LatLon(45°00′00.0″N, 001°00′00.0″E), 4874369.98942, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E), 0.0, 0.0)\n    test 368 iteration: 0\n    test 369 neareston8: (LatLon(45°30′03.93″N, 020°00′00.0″E), 39078.779519, 1.501069, 2, LatLon(45°00′00.0″N, 020°00′00.0″E), LatLon(46°00′00.0″N, 020°00′00.0″E), 270.356041, 269.999412)\n    test 370 iteration: 1\n    test 371 intersecant2: 2.851e-11% 5 LatLon(03°18′54.69″S, 023°52′08.48″E)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 372 intersecant2: 2.948e-11% 5 LatLon(22°22′23.65″S, 007°55′54.49″E)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 373 intersecant2: 7.380e-11% 5 LatLon(10°39′24.95″N, 034°45′48.18″W)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 374 intersecant2: 6.491e-11% 4 LatLon(25°11′09.14″S, 005°10′35.44″W)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 375 intersecant2: 6.581e-12% 5 LatLon(10°14′21.91″S, 021°00′17.05″E)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 376 intersecant2: 1.993e-11% 5 LatLon(20°55′17.31″S, 010°40′21.43″E)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 377 intersecant2: center (LatLon(05°00′00.0″N, 005°00′00.0″W)), circle (3339584), end (LatLon(15°00′00.0″N, 045°00′00.0″E)), exact (False), start (LatLon(45°00′00.0″S, 015°00′00.0″W)) or wrap (False): 'too distant (3.69e+06) plumb to (16°56′45.9″S, 020°17′02.98″E)'\n    test 378 intersecant2: 4.822e-11% 5 LatLon(30°19′11.9″N, 022°18′22.76″W)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 379 intersecant2: 2.138e-11% 5 LatLon(00°59′41.3″N, 034°46′57.09″W)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 380 intersecant2: center (LatLon(05°00′00.0″N, 005°00′00.0″W)), circle (3339584), end (261.75669472183114), exact (False), start (LatLon(00°59′41.3″N, 034°46′57.09″W)) or wrap (False): 'no convergence (256), tolerance (1.49012e-08) plumb to (08°01′06.61″S, 004°29′38.58″W)'\n    test 381 intersecant2: center (LatLon(05°00′00.0″N, 005°00′00.0″W)), circle (3339584), end (LatLon(35°08′52.15″N, 004°02′04.68″W)), exact (False), start (LatLon(34°12′31.53″N, 003°04′01.61″E)) or wrap (False): 'no convergence (2.36323e-08), tolerance (1.49012e-08) plumb to (34°43′48.27″N, 000°27′49.31″W)'\n    test 382 intersecant2: center (LatLon(05°00′00.0″N, 005°00′00.0″W)), circle (3339584), end (16.240301461238964), exact (False), start (LatLon(34°12′31.53″N, 003°04′01.61″E)) or wrap (False): 'too distant (1.47e+07) plumb to (22°42′26.37″S, 138°32′28.16″W)'\n    test 383 intersecant2: 1.610e-11% 5 LatLon(07°41′21.22″S, 022°17′12.7″E)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 384 intersecant2: 5.550e-12% 5 LatLon(35°07′53.48″N, 006°26′21.82″W)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 385 intersecant2: center (LatLon(05°00′00.0″N, 005°00′00.0″W)), circle (3339584), end (357.1305274303066), exact (False), start (LatLon(35°07′53.48″N, 006°26′21.82″W)) or wrap (False): 'too distant (3.82e+06) plumb to (04°26′36.43″N, 029°25′15.75″E)'\n\n    testLatLon(pygeodesy.ellipsoidalVincenty, 25.05.26)\n    test 386 isEllipsoidal: True\n    test 387 isSpherical: False\n    test 388 lat/lonDMS: 52.20472°N, 000.14056°E\n    test 389 lat/lonDMS F_DM: 52°12.283′N, 000°08.434′E\n    test 390 lat/lonDMS F_DM: 52°12.2832′N, 000°08.4336′E\n    test 391 lat/lonDMS F_DMS: 52°12′17″N, 000°08′26″E\n    test 392 lat/lonDMS F_DMS: 52°12′17.0″N, 000°08′26.0″E\n    test 393 lat/lonDMS F_RAD: 0.911144N, 0.002453E\n    test 394 isequalTo: True\n    test 395 isequalTo: True\n    test 396 latlon2: 52.20472, 0.14056\n    test 397 latlon2: 52.2047, 0.1406\n    test 398 latlon2: 52.205, 0.141\n    test 399 latlon2: 52.2, 0.14\n    test 400 latlon2: 52.2, 0.1\n    test 401 latlon2: 52.0, 0.0\n    test 402 chordTo: 12029263.15\n    test 403 chordTo: 12029049.69\n    test 404 initialBearingTo: 156.1106\n    test 405 initialBearingTo: 65.9335\n    test 406 initialBearingTo: 0.0\n    test 407 initialBearingTo: 180.0\n    test 408 finalBearingTo: 157.8345\n    test 409 finalBearingTo: 93.9034\n    test 410 bearingTo2: 156.1106, 157.8345\n    test 411 ispolar: True\n    test 412 copy: True\n    test 413 __eq__: True\n    test 414 __ne__: False\n    test 415 equirectangularTo: 404329.56\n    test 416 distanceTo: 404607.805988\n    test 417 distanceTo: 404607.805988\n    test 418 distanceTo: 3981601\n    test 419 antipodal: False\n    test 420 distanceTo dateline: 19959679.267\n    test 421 distanceTo unrolled: 19959679.267\n    test 422 antipodal: False\n    test 423 distanceTo dateline: 9513998\n    test 424 distanceTo unrolled: 9513998\n    test 425 distanceTo: 18012714.66\n    test 426 distanceTo: ambiguous: LatLon(00°00′00.0″N, 000°00′00.0″E) antipodal to LatLon(00°00′00.0″N, 180°00′00.0″E)  FAILED, KNOWN, expected ambiguous, antipodal ...\n    test 427 distanceTo3 dateline: 19959679.2674, 161.0677, 18.8252\n    test 428 distanceTo3 dateline: 9513997.9901, 42.9164, 138.8903\n    test 429 distanceTo3 dateline: 19959679.2674, 161.0677, 18.8252\n    test 430 distanceTo3 dateline: 9513997.9901, 42.9164, 138.8903\n    test 431 intermediateTo: 51.372275°N, 000.707253°E\n    test 432 intermediateTo: True\n    test 433 intermediateTo: 404607.806\n    test 434 intermediateTo+5: 35.139582°N, 008.994368°E\n    test 435 intermediateTo+5: 5.000\n    test 436 intermediateTo-4: 64.894124°N, 013.705689°W\n    test 437 intermediateTo-4: 4.000\n./test/testLatLon.py:627: DeprecationWarning: function L{areaOf<pygeodesy.ellipsoidalVincenty.areaOf>} has been DEPRECATED, use function L{ellipsoidalExact.areaOf} or L{ellipsoidalKarney.areaOf}.\n  r = a(reversed(b))\n./pygeodesy/ellipsoidalKarney.py:139: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return fabs(_polygon(datum.ellipsoid.geodesic, points, True, False, wrap, polar))\n./test/testLatLon.py:628: DeprecationWarning: function L{areaOf<pygeodesy.ellipsoidalVincenty.areaOf>} has been DEPRECATED, use function L{ellipsoidalExact.areaOf} or L{ellipsoidalKarney.areaOf}.\n  f = a(b)  # ccw\n    test 438 intermediateTo-h: 125.000\n    test 439 midpointTo: 50.536583°N, 001.274507°E\n    test 440 destination: 51.513526°N, 000.098038°W\n    test 441 destination: 51°30′49″N, 000°05′53″W\n    test 442 destination: 33°57′N, 118°24′W\n    test 443 destination: 33.950367°N, 118.399012°W\n    test 444 destination: 0.592546N, 2.066453W\n    test 445 destination: 32.11195529°N, 064.56074722°E  FAILED, KNOWN, expected 32.11195529°N, 063.95925278°E\n    test 446 neareston6: (LatLon(45°00′00.0″N, 001°00′00.0″E), 4755443.4294, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E))\n    test 447 neareston6: (LatLon(45°30′03.94″N, 002°00′00.0″E), 39078.729285, 1.501072, 2, LatLon(45°00′00.0″N, 002°00′00.0″E), LatLon(46°00′00.0″N, 002°00′00.0″E))\n    test 448 chordTo: 125203.963\n    test 449 cosineAndoyerLambertTo: 125205.962\n    test 450 cosineAndoyerLambertTo: 125205.962\n    test 451 cosineForsyheAndoyerLambertTo: 125205.965\n    test 452 cosineForsyheAndoyerLambertTo: 125205.965\n    test 453 cosineLawTo: 124801.098\n    test 454 cosineLawTo: 124801.098\n    test 455 equirectangularTo: 124804.754\n    test 456 equirectangularTo: 124804.754\n    test 457 euclideanTo: 130015.089\n    test 458 euclideanTo: 130015.089\n    test 459 flatLocalTo: 125209.633\n    test 460 flatLocalTo: 125209.633\n    test 461 flatPolarTo: 133663.257\n    test 462 flatPolarTo: 133663.257\n    test 463 hartzell: 53.3206°N, 001.7297°W\n    test 464 hartzell: 53.349541°N, 001.7297°W\n    test 465 height4: 0.0\n    test 466 height4: (3820333.9, -115367.0, 5097204.4, -6584.9)\n    test 467 height4: 53°19′14.2″N, 001°43′46.9″W\n    test 468 height4: 53°19′14.2″N, 001°43′46.9″W\n    test 469 haversineTo: 124801.098\n    test 470 haversineTo: 124801.098\n    test 471 hubenyTo: <bound method LatLonBase.flatLocalTo of LatLon(53°19′14.16″N, 001°43′46.92″W)>\n    test 472 hubenyTo: <bound method LatLonBase.flatLocalTo of LatLon(53°11′19.32″N, 000°08′00.24″E)>\n    test 473 thomasTo: 125206.188\n    test 474 thomasTo: 125206.188\n    test 475 vincentysTo: 124801.098\n    test 476 vincentysTo: 124801.098\n    test 477 isclockwise: False\n    test 478 isclockwise*: False\n    test 479 isclockwise: True\n    test 480 isclockwise*: True\n    test 481 isclockwise: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 482 isclockwise*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 483 isclockwise: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 484 isclockwise*: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 485 isconvex: False\n    test 486 isconvex*: False\n    test 487 isconvex: True\n    test 488 isconvex*: True\n    test 489 isconvex: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 490 isconvex*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 491 isenclosedBy1: True\n    test 492 isenclosedBy1*: True\n    test 493 isenclosedBy2: False\n    test 494 isenclosedBy2*: False\n    test 495 isenclosedBy3: False\n    test 496 isenclosedBy3*: False\n    test 497 isenclosedBy4: False\n    test 498 isenclosedBy4*: False\n    test 499 isenclosedBy5: False\n    test 500 isenclosedBy5*: False\n    test 501 isenclosedBy6: True\n    test 502 isenclosedBy6*: True\n    test 503 isenclosedBy7: True\n    test 504 isenclosedBy7*: True\n    test 505 isenclosedBy-CCW: True\n    test 506 isenclosedBy-CW : True\n    test 507 isenclosedBy-CCW: True\n    test 508 initialBearingTo: 102.392291\n    test 509 compassAngleTo: 100.017\n    test 510 compassAngleTo: 105.599\n    test 511 initialBearingTo: 288.676039\n    test 512 compassAngleTo: 280.017\n    test 513 compassAngleTo: 285.599\n    test 514 equirectangularTo: 592.185\n    test 515 distanceTo: 593.571\n    test 516 bearingTo: 0.0\n    test 517 compassAngleTo: 0.0\n    test 518 bearingTo: 45.2  FAILED, KNOWN, expected 45.0\n    test 519 compassAngleTo: 45.0\n    test 520 bearingTo: 90.0\n    test 521 compassAngleTo: 90.0\n    test 522 bearingTo: 180.0\n    test 523 compassAngleTo: 180.0\n    test 524 bearingTo: 225.2  FAILED, KNOWN, expected 225.0\n    test 525 compassAngleTo: 225.0\n    test 526 bearingTo: 314.8  FAILED, KNOWN, expected 315.0\n    test 527 compassAngleTo: 315.0\n    test 528 bearingTo: 270.0\n    test 529 compassAngleTo: 270.0\n    test 530 bearingTo: 360.0  FAILED, KNOWN, expected 359.4\n    test 531 compassAngleTo: 359.4\n    test 532 latlon2: (53.0, 1.0)\n    test 533 philam2: (0.93, 0.02)\n    test 534 bearingTo: 31\n    test 535 compassAngleTo: 31\n    test 536 compassAngleTo: 45\n\n    test 537 boundsOf: <class 'pygeodesy.namedTuples.Bounds2Tuple'>\n    test 538 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 539 latlon2: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 540 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 541 isequalTo: <class 'bool'>\n    test 542 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 543 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 544 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 545 xyz3: <class 'tuple'>\n    test 546 xyzh: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 547 compassAngleTo: <class 'float'>\n    test 548 cosineLawTo: <class 'float'>\n    test 549 euclideanTo: <class 'float'>\n    test 550 flatLocalTo: <class 'float'>\n    test 551 flatPolarTo: <class 'float'>\n    test 552 haversineTo: <class 'float'>\n    test 553 hubenyTo: <class 'float'>\n    test 554 vincentysTo: <class 'float'>\n    test 555 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 556 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 557 toLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 558 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 559 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 560 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 561 toNvector: (0.615661, 0.0, 0.788011, 0)\n    test 562 toVector: (3934960.466675, 0.0, 5002803.345483)\n    test 563 toVector3d: (0.61823, 0.0, 0.786)\n\n    test 564 trilaterate5 (pygeodesy.ellipsoidalVincenty) .min: 305.091\n    test 565 trilaterate5 (pygeodesy.ellipsoidalVincenty) .point: 42.66933643°N, 002.48620262°E\n    test 566 trilaterate5 (pygeodesy.ellipsoidalVincenty) .max: 1592.545\n    test 567 trilaterate5 (pygeodesy.ellipsoidalVincenty) .point: 42.65141232°N, 002.46816989°E\n    test 568 trilaterate5 (pygeodesy.ellipsoidalVincenty) .n: 3\n    test 569 trilaterate5 (pygeodesy.ellipsoidalVincenty) .min: 127.229\n    test 570 trilaterate5 (pygeodesy.ellipsoidalVincenty) .max: 152.612\n    test 571 trilaterate5 (pygeodesy.ellipsoidalVincenty) .point: 42.67815375°N, 002.49950041°E\n    test 572 trilaterate5 (pygeodesy.ellipsoidalVincenty) .n: 2\n    test 573 trilaterate5 (pygeodesy.ellipsoidalVincenty) .min: 2400.293\n    test 574 trilaterate5 (pygeodesy.ellipsoidalVincenty) .max: 2400.293\n    test 575 trilaterate5 (pygeodesy.ellipsoidalVincenty) .point: 42.66128984°N, 002.47973818°E\n    test 576 trilaterate5 (pygeodesy.ellipsoidalVincenty) .min- is .maxPoint: True\n    test 577 trilaterate5 (pygeodesy.ellipsoidalVincenty) .n: 1\n    test 578 trilaterate5 (pygeodesy.ellipsoidalVincenty) .min: 1343.743\n    test 579 trilaterate5 (pygeodesy.ellipsoidalVincenty) .point: 42.69131964°N, 002.50112167°E\n    test 580 trilaterate5 (pygeodesy.ellipsoidalVincenty) .max: 1445.554\n    test 581 trilaterate5 (pygeodesy.ellipsoidalVincenty) .point: 42.67815375°N, 002.49950041°E\n    test 582 trilaterate5 (pygeodesy.ellipsoidalVincenty) .n: 2\n    test 583 radii11: Radii11Tuple(rA=7244.792747, rB=1828.106695, rC=2.25502, cR=57792.067128, rIn=57.366968, riS=2.087668, roS=2.443334, a=1830.361715, b=7247.047766, c=9072.899442, s=9075.154461)\n    test 584 circum3 (pygeodesy.ellipsoidalVincenty) .radius: 57792.067\n    test 585 circum3 (pygeodesy.ellipsoidalVincenty) .center: 43.053532°N, 002.943255°E, -261.66m\n    test 586 circum3 (pygeodesy.ellipsoidalVincenty) .deltas: (-0.0, 0.0, 9.827)  FAILED, KNOWN, expected (0.0, 0.0, 11.383)\n    test 587 circum3 (pygeodesy.ellipsoidalVincenty) .d1: 57792.858\n    test 588 circum3 (pygeodesy.ellipsoidalVincenty) .d2: 57792.859\n    test 589 circum3 (pygeodesy.ellipsoidalVincenty) .d3: 57792.859\n    test 590 circum3 (pygeodesy.ellipsoidalVincenty) .datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 591 circum3 (pygeodesy.ellipsoidalVincenty) .Ecef: <class 'pygeodesy.ecef.EcefVeness'>\n\n    test 592 radii11: Radii11Tuple(rA=7244.792747, rB=1828.106695, rC=2.25502, cR=57792.067128, rIn=57.366968, riS=2.087668, roS=2.443334, a=1830.361715, b=7247.047766, c=9072.899442, s=9075.154461)\n    test 593 circum4 (pygeodesy.ellipsoidalVincenty) .radius: 3184256.748\n    test 594 circum4 (pygeodesy.ellipsoidalVincenty) .center: 43.054367°N, 002.942573°E, -3183993.92m\n    test 595 circum4 (pygeodesy.ellipsoidalVincenty) .rank: 3\n    test 596 circum4 (pygeodesy.ellipsoidalVincenty) .residuals: ()\n    test 597 circum4 (pygeodesy.ellipsoidalVincenty) .d1: 57818.033\n    test 598 circum4 (pygeodesy.ellipsoidalVincenty) .d2: 57834.176\n    test 599 circum4 (pygeodesy.ellipsoidalVincenty) .d3: 57830.992\n    test 600 circum4 (pygeodesy.ellipsoidalVincenty) .datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 601 circum4 (pygeodesy.ellipsoidalVincenty) .Ecef: <class 'pygeodesy.ecef.EcefVeness'>\n    test 602 radii11: Radii11Tuple(rA=327537.482637, rB=776914.262482, rC=784245.052526, cR=780602.180901, rIn=325058.721103, riS=84975.664195, roS=INF, a=1561159.315008, b=1111782.535163, c=1104451.745119, s=1888696.797645)\n    test 603 circin6 (pygeodesy.ellipsoidalVincenty) .rB+rC: 1561159.315\n    test 604 circin6 (pygeodesy.ellipsoidalVincenty) .rC+pA: 1111782.535\n    test 605 circin6 (pygeodesy.ellipsoidalVincenty) .rA+rB: 1104451.745\n    test 606 circin6 (pygeodesy.ellipsoidalVincenty) .radius: 325058.721\n    test 607 circin6 (pygeodesy.ellipsoidalVincenty) .center: 02.948531°N, 002.932537°E, -40041.19m\n    test 608 circin6 (pygeodesy.ellipsoidalVincenty) .deltas: (0.0, 0.0, 0.224326)  FAILED, KNOWN, expected (0.0, 0.0, 0.090491)\n    test 609 circin6 (pygeodesy.ellipsoidalVincenty) .cA: 05.04314°N, 005.014578°E, -48104.09m\n    test 610 circin6 (pygeodesy.ellipsoidalVincenty) .cB: 00.0°N, 002.941713°E, -20168.62m\n    test 611 circin6 (pygeodesy.ellipsoidalVincenty) .cC: 02.961566°N, 000.0°E, -20113.46m\n    test 612 circin6 (pygeodesy.ellipsoidalVincenty) .dA: 327263.596\n    test 613 circin6 (pygeodesy.ellipsoidalVincenty) .dB: 326036.153\n    test 614 circin6 (pygeodesy.ellipsoidalVincenty) .dC: 326020.432\n\n    test 615 area cw/ccw: 1.0\n\n    testNOAA(pygeodesy.ellipsoidalVincenty, 25.05.26)\n    test 616 NOAAexample1: 191872.1190, 249 03 16.4237, 67 59 11.1619\n    test 617 NOAAexample2: 182009.1679, 254 42 44.6439, 73 09 21.3315\n    test 618 NOAAexample3: 123456.7891, 245 00 34.7001, 64 20 24.6864\n    test 619 NOAAexample4: 145239.0603, 114 29 26.9586, 295 21 32.6566\n\n    testIntersection3(pygeodesy.ellipsoidalVincenty, 25.05.26)\n    test 620 (30, 17): (LatLon(30°52′03.1″N, 015°30′38.41″E), 0, 0)\n    test 621 (30, 17): (LatLon(30°52′03.1″N, 015°30′38.41″E), -1, 0)\n    test 622 (-1,  3): (LatLon(01°34′52.49″N, 006°00′51.83″E), -1, -2)\n    test 623 (-1,  3): (LatLon(01°34′52.49″N, 006°00′51.83″E), -1, 2)\n    test 624 (65, 32): (LatLon(56°58′26.51″N, 032°00′00.0″E), 1, 0)\n    test 625 (65, 32): (LatLon(56°58′26.51″N, 032°00′00.0″E), 1, 2)\n    test 626 (-2, 17): <class 'pygeodesy.errors.IntersectionError'>\n    test 627 (49, 25): (LatLon(49°00′00.0″N, 025°00′00.0″E), 1, -2)  FAILED, KNOWN, expected (LatLon(49°00′00.0″N, 025°00′00.0″E), 0, 0)\n    test 628 #58: (LatLon(01°54′25.65″S, 005°37′48.76″E), 1, -2)\n    test 629 #58: <class 'pygeodesy.errors.IntersectionError'>\n\n    testIntersections2(pygeodesy.ellipsoidalVincenty, 25.05.26)\n    test 630 Equidistant: 36.9879°N, 088.1564°W, 38.2441°N, 092.3835°W  FAILED, KNOWN, expected 36.9892°N, 088.152°W, 38.2377°N, 092.39°W\n    test 631 Equidistant: 36.9892°N, 088.152°W, 38.2377°N, 092.39°W\n    test 632 Equidistant: 00.0°S, 035.4073°W, 00.0°S, 035.4073°E\n    test 633 Equidistant: 1.63814 (% of radius)\n    test 634 Equidistant: 22.756°N, 000.0°W, 22.756°S, 000.0°W\n    test 635 Equidistant: 1.30784 (% of radius)\n    test 636 Equidistant: 29.2359°N, 040.2625°W, 29.2359°S, 040.2625°E\n    test 637 Equidistant: 1.31348 (% of radius)\n    test 638 Equidistant: 01.1557°S, 045.0894°E, 01.1557°N, 045.0894°E\n    test 639 Equidistant: 1.81093 (% of radius)\n    test 640 Equidistant 5: 05.0218°S, 005.0605°W, 05.0218°N, 005.0605°E\n    test 641 Equidistant 5: 0.00337268 (% of radius)\n    test 642 Equidistant 10: 10.0378°S, 010.3545°W, 10.0378°N, 010.3545°E\n    test 643 Equidistant 10: 0.00344677 (% of radius)\n    test 644 Equidistant: 27.303074°S, 000.114806°W Random +/- 45\n    test 645 Equidistant: 27.139544°S, 000.202037°W, 42.598888°N, 023.760304°E  d 20075.1 meter (iteration 4)\n    test 646 Equidistant: 27.152964°S, 000.217004°W, 38.368233°N, 040.200784°E  d 19471.6 meter (iteration 5)\n\n    testVincenty(pygeodesy.ellipsoidalVincenty, 25.05.26, datum='WGS84')\n    test 647 distanceTo: 866455.43292\n    test 648 toDatum: OSGB36\n    test 649 ValueError2: Ellipsoid 'Airy1830': incompatible with Ellipsoid 'WGS84'\n    test 650 isEllipsoidal: True\n    test 651 isSpherical: False\n    test 652 epsilon: 1e-12\n    test 653 iterations: 200\n    test 654 copy: True\n    test 655 isEllipsoidal: True\n    test 656 isSpherical: False\n    test 657 copy: 37°57′03.7203″S, 144°25′29.5244″E\n    test 658 epsilon: 2.220446049250e-16\n    test 659 iterations: 400\n    test 660 iteration: None\n\n    testKarneyVincenty(pygeodesy.ellipsoidalVincenty, 25.05.26, datum='WGS84')\n    test 661 coincident: 0.0\n    test 662 coincident: 0.0, 0.0, 0.0\n    test 663 destination: 37.6528°S, 143.9265°E\n    test 664 destination: True\n    test 665 destination2: 37.652821°S, 143.926496°E, 307.1736°NW\n    test 666 destination2: True\n    test 667 finalBearingOn: 307.1736°, 307°10′25.07″NW\n    test 668 distanceTo: 969954.166\n    test 669 distanceTo3: 969954.166314, 9.141877, 11.29722\n    test 670 distanceTo2: 972708.16174, 11.22502\n    test 671 initialBearingTo: 9.1419°, 9°08′30.76″N\n    test 672 destination: 58.64402°N, 003.07009°W\n    test 673 finalBearingTo: 11.2972°, 11°17′49.99″NNE\n    test 674 finalBearingOn: 11.2972°, 11°17′49.99″NNE\n    test 675 distanceTo: 404607.806\n    test 676 distanceTo3: 404607.805988, 156.11064, 157.8345\n    test 677 distanceTo2: 402574.597287, 157.726344\n    test 678 initialBearingTo: 156.1106°, 156°06′38.31″SSE\n    test 679 destination: 48.857°N, 002.351°E\n    test 680 finalBearingTo: 157.8345°, 157°50′04.2″SSE\n    test 681 finalBearingOn: 157.8345°, 157°50′04.2″SSE\n    test 682 distanceTo: 54973.295\n    test 683 distanceTo3: 54973.29527, 233.13008, 232.82461\n    test 684 distanceTo2: 54903.41209, 232.9209\n    test 685 initialBearingTo: 233.1301°, 233°07′48.28″SW\n    test 686 destination: 37.6528°N, 143.9265°E\n    test 687 finalBearingTo: 232.8246°, 232°49′28.59″SW\n    test 688 finalBearingOn: 232.8246°, 232°49′28.59″SW\n    test 689 distanceToMP: 298396.057\n    test 690 distanceToSM: 185.415\n    test 691 distanceToMP: 111319.491\n    test 692 distanceToMP: 110574.389  FAILED, KNOWN, expected 110574.361\n    test 693 distanceToKW: 222638.982\n    test 694 distanceToKW: 111319.491\n    test 695 distanceTo3: 54972.271\n    test 696 distanceTo3: 306°52′05.37″\n    test 697 distanceTo3: 307°10′25.07″\n    test 698 distanceTo2: 54902.390\n    test 699 distanceTo2: 307°04′38.41″\n\n    testKarneyVincentyError(pygeodesy.ellipsoidalVincenty, 25.05.26, datum='WGS84')\n    test 700 distanceTo/antipodal (182): 19936288.579\n    test 701 distanceTo/VincentyError (182): no convergence (0.00746541): epsilon (1e-12) and iterations (200), LatLon(00°00′00.0″N, 000°00′00.0″E) to LatLon(00°30′00.0″N, 179°42′00.0″E)  FAILED, KNOWN, expected no convergence: ...\n./pygeodesy/ellipsoidalKarney.py:94: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return self.datum.ellipsoid.geodesic\n./test/testLatLon.py:276: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.ellipsoidalKarney.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', p.cosineAndoyerLambertTo(q), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:277: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.ellipsoidalKarney.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', q.cosineAndoyerLambertTo(p), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:279: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.ellipsoidalKarney.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', p.cosineForsytheAndoyerLambertTo(q), '124801.098' if Sph else '125205.965', fmt='%.3f')\n./test/testLatLon.py:280: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.ellipsoidalKarney.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', q.cosineForsytheAndoyerLambertTo(p), '124801.098' if Sph else '125205.965', fmt='%.3f')\n    test 702 initialBearingTo/VincentyError (182): no convergence (0.00746541): epsilon (1e-12) and iterations (200), LatLon(00°00′00.0″N, 000°00′00.0″E) to LatLon(00°30′00.0″N, 179°42′00.0″E)  FAILED, KNOWN, expected no convergence: ...\n    test 703 finalBearingTo/VincentyError (182): no convergence (0.00746541): epsilon (1e-12) and iterations (200), LatLon(00°00′00.0″N, 000°00′00.0″E) to LatLon(00°30′00.0″N, 179°42′00.0″E)  FAILED, KNOWN, expected no convergence: ...\n    test 704 distanceTo/equatorial (182): ambiguous: LatLon(00°00′00.0″N, 000°00′00.0″E) antipodal to LatLon(00°00′00.0″N, 180°00′00.0″E)  FAILED, KNOWN, expected ambiguous, ...\n    test 705 initialBearingTo/equatorial (182): ambiguous: LatLon(00°00′00.0″N, 000°00′00.0″E) antipodal to LatLon(00°00′00.0″N, 180°00′00.0″E)  FAILED, KNOWN, expected ambiguous, ...\n    test 706 distanceTo/coincident (5): 111319.491\n    test 707 distanceTo/meridional (1): 10001965.729\n    test 708 initialBearingTo/meridional (1): 180.0\n    test 709 distanceTo/coincident (1): 0.0\n    test 710 initialBearingTo/coincident (1): 0.0\n    test 711 finalBearingTo/coincident (1): 0.0\n    test 712 destination/coincident (1): 50.06632°N, 005.71475°W\n    test 713 distanceTo/anti-meridian (4): 10825924.1\n    test 714 distanceTo/quadrants (5): 4015703.02\n    test 715 distanceTo/quadrants (5): 4015703.02\n    test 716 distanceTo/quadrants (5): 4015703.02\n    test 717 distanceTo/quadrants (5): 4015703.02\n    test 718 distanceTo/quadrants (5): 4015703.02\n    test 719 distanceTo/quadrants (5): 4015703.02\n    test 720 distanceTo/quadrants (5): 4015703.02\n    test 721 distanceTo/quadrants (5): 4015703.02\n    test 722 distanceTo/quadrants (5): 4015703.02\n    test 723 distanceTo/quadrants (5): 4015703.02\n    test 724 distanceTo/quadrants (5): 4015703.02\n    test 725 distanceTo/quadrants (5): 4015703.02\n    test 726 distanceTo/quadrants (5): 4015703.02\n    test 727 distanceTo/quadrants (5): 4015703.02\n    test 728 distanceTo/quadrants (5): 4015703.02\n    test 729 distanceTo/quadrants (5): 4015703.02\n\n    testVincenty(pygeodesy.ellipsoidalVincenty, 25.05.26, datum='NAD83')\n    test 730 distanceTo: 866455.43292\n    test 731 toDatum: OSGB36\n    test 732 ValueError2: Ellipsoid 'Airy1830': incompatible with Ellipsoid 'GRS80'\n    test 733 isEllipsoidal: True\n    test 734 isSpherical: False\n    test 735 epsilon: 1e-12\n    test 736 iterations: 200\n    test 737 copy: True\n    test 738 isEllipsoidal: True\n    test 739 isSpherical: False\n    test 740 copy: 37°57′03.7203″S, 144°25′29.5244″E\n    test 741 epsilon: 2.220446049250e-16\n    test 742 iterations: 400\n    test 743 iteration: None\n\n    testKarneyVincenty(pygeodesy.ellipsoidalVincenty, 25.05.26, datum='NAD83')\n    test 744 coincident: 0.0\n    test 745 coincident: 0.0, 0.0, 0.0\n    test 746 destination: 37.6528°S, 143.9265°E\n    test 747 destination: True\n    test 748 destination2: 37.652821°S, 143.926496°E, 307.1736°NW\n    test 749 destination2: True\n    test 750 finalBearingOn: 307.1736°, 307°10′25.07″NW\n    test 751 distanceTo: 969954.166\n    test 752 distanceTo3: 969954.166314, 9.141877, 11.29722\n    test 753 distanceTo2: 972708.16174, 11.22502\n    test 754 initialBearingTo: 9.1419°, 9°08′30.76″N\n    test 755 destination: 58.64402°N, 003.07009°W\n    test 756 finalBearingTo: 11.2972°, 11°17′49.99″NNE\n    test 757 finalBearingOn: 11.2972°, 11°17′49.99″NNE\n    test 758 distanceTo: 404607.806\n    test 759 distanceTo3: 404607.805988, 156.11064, 157.8345\n    test 760 distanceTo2: 402574.597287, 157.726344\n    test 761 initialBearingTo: 156.1106°, 156°06′38.31″SSE\n    test 762 destination: 48.857°N, 002.351°E\n    test 763 finalBearingTo: 157.8345°, 157°50′04.2″SSE\n    test 764 finalBearingOn: 157.8345°, 157°50′04.2″SSE\n    test 765 distanceTo: 54973.295\n    test 766 distanceTo3: 54973.29527, 233.13008, 232.82461\n    test 767 distanceTo2: 54903.41209, 232.9209\n    test 768 initialBearingTo: 233.1301°, 233°07′48.28″SW\n    test 769 destination: 37.6528°N, 143.9265°E\n    test 770 finalBearingTo: 232.8246°, 232°49′28.59″SW\n    test 771 finalBearingOn: 232.8246°, 232°49′28.59″SW\n    test 772 distanceToMP: 298396.057\n    test 773 distanceToSM: 185.415\n    test 774 distanceToMP: 111319.491\n    test 775 distanceToMP: 110574.389  FAILED, KNOWN, expected 110574.361\n    test 776 distanceToKW: 222638.982\n    test 777 distanceToKW: 111319.491\n    test 778 distanceTo3: 54972.271\n    test 779 distanceTo3: 306°52′05.37″\n    test 780 distanceTo3: 307°10′25.07″\n    test 781 distanceTo2: 54902.390\n    test 782 distanceTo2: 307°04′38.41″\n\n    testKarneyVincentyError(pygeodesy.ellipsoidalVincenty, 25.05.26, datum='NAD83')\n    test 783 distanceTo/antipodal (182): 19936288.579\n    test 784 distanceTo/VincentyError (182): no convergence (0.00746541): epsilon (1e-12) and iterations (200), LatLon(00°00′00.0″N, 000°00′00.0″E) to LatLon(00°30′00.0″N, 179°42′00.0″E)  FAILED, KNOWN, expected no convergence: ...\n    test 785 initialBearingTo/VincentyError (182): no convergence (0.00746541): epsilon (1e-12) and iterations (200), LatLon(00°00′00.0″N, 000°00′00.0″E) to LatLon(00°30′00.0″N, 179°42′00.0″E)  FAILED, KNOWN, expected no convergence: ...\n    test 786 finalBearingTo/VincentyError (182): no convergence (0.00746541): epsilon (1e-12) and iterations (200), LatLon(00°00′00.0″N, 000°00′00.0″E) to LatLon(00°30′00.0″N, 179°42′00.0″E)  FAILED, KNOWN, expected no convergence: ...\n    test 787 distanceTo/equatorial (182): ambiguous: LatLon(00°00′00.0″N, 000°00′00.0″E) antipodal to LatLon(00°00′00.0″N, 180°00′00.0″E)  FAILED, KNOWN, expected ambiguous, ...\n    test 788 initialBearingTo/equatorial (182): ambiguous: LatLon(00°00′00.0″N, 000°00′00.0″E) antipodal to LatLon(00°00′00.0″N, 180°00′00.0″E)  FAILED, KNOWN, expected ambiguous, ...\n    test 789 distanceTo/coincident (5): 111319.491\n    test 790 distanceTo/meridional (1): 10001965.729\n    test 791 initialBearingTo/meridional (1): 180.0\n    test 792 distanceTo/coincident (1): 0.0\n    test 793 initialBearingTo/coincident (1): 0.0\n    test 794 finalBearingTo/coincident (1): 0.0\n    test 795 destination/coincident (1): 50.06632°N, 005.71475°W\n    test 796 distanceTo/anti-meridian (4): 10825924.1\n    test 797 distanceTo/quadrants (5): 4015703.02\n    test 798 distanceTo/quadrants (5): 4015703.02\n    test 799 distanceTo/quadrants (5): 4015703.02\n    test 800 distanceTo/quadrants (5): 4015703.02\n    test 801 distanceTo/quadrants (5): 4015703.02\n    test 802 distanceTo/quadrants (5): 4015703.02\n    test 803 distanceTo/quadrants (5): 4015703.02\n    test 804 distanceTo/quadrants (5): 4015703.02\n    test 805 distanceTo/quadrants (5): 4015703.02\n    test 806 distanceTo/quadrants (5): 4015703.02\n    test 807 distanceTo/quadrants (5): 4015703.02\n    test 808 distanceTo/quadrants (5): 4015703.02\n    test 809 distanceTo/quadrants (5): 4015703.02\n    test 810 distanceTo/quadrants (5): 4015703.02\n    test 811 distanceTo/quadrants (5): 4015703.02\n    test 812 distanceTo/quadrants (5): 4015703.02\n\n    testEllipsoidal(pygeodesy.ellipsoidalKarney, 25.05.27)\n    test 813 isEllipsoidal: True\n    test 814 isSpherical: False\n    test 815 isEllipsoidal: True\n    test 816 isSpherical: False\n    test 817 toDatum: 51.477284°N, 000.00002°E, -45.91m\n    test 818 toDatum: 51.4773°N, 000.0°E, -45.91m\n    test 819 toDatum: 51.4778°N, 000.0016°W\n    test 820 __matmul__: 51.477284°N, 000.00002°E, -45.91m\n    test 821 __matmul__: 51.477284°N, 000.00002°E, -45.90m\n    test 822 parse: 51.477284°N, 000.00002°E, -45.91m\n    test 823 reframe: None\n    test 824 toCartesian: [3980581.21, -111.159, 4966824.522]\n    test 825 toCss: -111.158797 5705242.333679\n    test 826 toCss: -111.158797 5705242.333679\n    test 827 toEcef: 3980581.21, -111.159, 4966824.522\n    test 828 toEtm: 30 N 916396 5720041\n    test 829 toEtm: 30 N 916396 5720041\n    test 830 toLcc: 5639901 4612638\n    test 831 toLcc: 5639901 4612638\n    test 832 toOsgr: TQ 38876 77320\n    test 833 toOsgr: TQ 38876 77320\n    test 834 toOsgrTM: TQ 38876 77320\n    test 835 toUtmUps: 30 N 708207 5707224\n    test 836 toUtm: 30 N 708207 5707224\n    test 837 toUtm: 30 N 708207 5707224\n    test 838 toWm: -178.111 6672799.209\n    test 839 toWm: -178.111 6672799.209\n    test 840 elevation2: None\n    test 841 geoidHeight2: None\n    test 842 toUtmUps: 30 N 708207 5707224\n    test 843 toUtm: 30 N 708207 5707224\n    test 844 toUtm: 30 N 708207 5707224\n    test 845 toUtmUps: 00 N 2000000 1333272\n    test 846 toUps: 00 N 2000000 1333272\n    test 847 toUps: 00 N 0 -666728\n    test 848 toUps: 00 N 2000000 1555732\n    test 849 toUtm: 31 N 459200 9217519\n    test 850 nearestOn: 32.81°N, 031.42°E\n    test 851 sat: 82.219069°N, 059.719736°E, -6353120.97m\n    test 852 dop: 51.998889°N, 004.373333°E, +134.64m\n    test 853 distance: 3802238.5049886242  FAILED, KNOWN, expected 3802238.504989\n    test 854 neareston8: (LatLon(45°00′00.0″N, 001°00′00.0″E), 4874369.98942, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E), 0.0, 0.0)\n    test 855 iteration: 0\n    test 856 neareston8: (LatLon(45°30′03.93″N, 020°00′00.0″E), 39078.779519, 1.501069, 2, LatLon(45°00′00.0″N, 020°00′00.0″E), LatLon(46°00′00.0″N, 020°00′00.0″E), 270.356041, 269.999412)\n    test 857 iteration: 1\n    test 858 intersecant2: 5.577e-14% 60 LatLon(03°18′54.69″S, 023°52′08.48″E)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 859 intersecant2: 1.394e-14% 60 LatLon(22°22′23.65″S, 007°55′54.49″E)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 860 intersecant2: 1.394e-13% 57 LatLon(10°39′24.95″N, 034°45′48.18″W)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 861 intersecant2: 1.673e-13% 57 LatLon(25°11′09.14″S, 005°10′35.44″W)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 862 intersecant2: 1.394e-14% 61 LatLon(10°14′21.91″S, 021°00′17.05″E)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 863 intersecant2: 8.366e-14% 61 LatLon(20°55′17.31″S, 010°40′21.43″E)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 864 intersecant2: center (LatLon(05°00′00.0″N, 005°00′00.0″W)), circle (3339584), end (LatLon(15°00′00.0″N, 045°00′00.0″E)), exact (False), start (LatLon(45°00′00.0″S, 015°00′00.0″W)) or wrap (False): 'too distant (3.69e+06) plumb to (16°56′45.9″S, 020°17′02.98″E)'\n    test 865 intersecant2: 9.761e-14% 57 LatLon(18°55′25.02″S, 023°34′47.88″W)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 866 intersecant2: 4.183e-14% 57 LatLon(00°03′42.32″S, 034°36′47.67″W)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 867 intersecant2: center (LatLon(05°00′00.0″N, 005°00′00.0″W)), circle (3339584), end (259.91797021566776), exact (False), start (LatLon(00°03′42.32″S, 034°36′47.67″W)) or wrap (False): 'too distant (1.96e+07) plumb to (01°26′44.73″S, 174°20′28.85″E)'\n    test 868 intersecant2: 1.813e-13% 68 LatLon(32°37′38.26″N, 017°53′42.75″W)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 869 intersecant2: 1.813e-13% 68 LatLon(25°19′49.07″N, 018°07′32.9″E)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 870 intersecant2: center (LatLon(05°00′00.0″N, 005°00′00.0″W)), circle (3339584), end (51.50099582921059), exact (False), start (LatLon(25°19′49.07″N, 018°07′32.9″E)) or wrap (False): 'too distant (5.04e+06) plumb to (36°14′36.93″S, 025°31′49.6″W)'\n    test 871 intersecant2: 1.394e-14% 65 LatLon(15°12′13.41″N, 033°43′39.28″W)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 872 intersecant2: 1.673e-13% 65 LatLon(33°51′15.76″N, 004°24′24.64″E)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 873 intersecant2: center (LatLon(05°00′00.0″N, 005°00′00.0″W)), circle (3339584), end (19.009326893417438), exact (False), start (LatLon(33°51′15.76″N, 004°24′24.64″E)) or wrap (False): 'too distant (1.84e+07) plumb to (00°30′01.46″S, 171°26′12.86″W)'\n\n    testLatLon(pygeodesy.ellipsoidalKarney, 25.05.27)\n    test 874 isEllipsoidal: True\n    test 875 isSpherical: False\n    test 876 lat/lonDMS: 52.20472°N, 000.14056°E\n    test 877 lat/lonDMS F_DM: 52°12.283′N, 000°08.434′E\n    test 878 lat/lonDMS F_DM: 52°12.2832′N, 000°08.4336′E\n    test 879 lat/lonDMS F_DMS: 52°12′17″N, 000°08′26″E\n    test 880 lat/lonDMS F_DMS: 52°12′17.0″N, 000°08′26.0″E\n    test 881 lat/lonDMS F_RAD: 0.911144N, 0.002453E\n    test 882 isequalTo: True\n    test 883 isequalTo: True\n    test 884 latlon2: 52.20472, 0.14056\n    test 885 latlon2: 52.2047, 0.1406\n    test 886 latlon2: 52.205, 0.141\n    test 887 latlon2: 52.2, 0.14\n    test 888 latlon2: 52.2, 0.1\n    test 889 latlon2: 52.0, 0.0\n    test 890 chordTo: 12029263.15\n    test 891 chordTo: 12029049.69\n    test 892 initialBearingTo: 156.1106\n    test 893 initialBearingTo: 65.9335\n    test 894 initialBearingTo: 0.0\n    test 895 initialBearingTo: 180.0\n    test 896 finalBearingTo: 157.8345\n    test 897 finalBearingTo: 93.9034\n    test 898 bearingTo2: 156.1106, 157.8345\n    test 899 ispolar: True\n    test 900 copy: True\n    test 901 __eq__: True\n    test 902 __ne__: False\n    test 903 equirectangularTo: 404329.56\n    test 904 distanceTo: 404607.805988\n    test 905 distanceTo: 404607.805988\n    test 906 distanceTo: 3981601\n    test 907 antipodal: False\n    test 908 distanceTo dateline: 19959679.267\n    test 909 distanceTo unrolled: 19959679.267\n    test 910 antipodal: False\n    test 911 distanceTo dateline: 9513998\n    test 912 distanceTo unrolled: 9513998\n    test 913 distanceTo: 18012714.66\n    test 914 distanceTo: 20003931.46\n    test 915 distanceTo3 dateline: 19959679.2674, 161.0677, 18.8252\n    test 916 distanceTo3 dateline: 9513997.9901, 42.9164, 138.8903\n    test 917 distanceTo3 dateline: 19959679.2674, 161.0677, 18.8252\n    test 918 distanceTo3 dateline: 9513997.9901, 42.9164, 138.8903\n    test 919 intermediateTo: 51.372275°N, 000.707253°E\n    test 920 intermediateTo: True\n    test 921 intermediateTo: 404607.806\n    test 922 intermediateTo+5: 35.139582°N, 008.994368°E\n    test 923 intermediateTo+5: 5.000\n    test 924 intermediateTo-4: 64.894124°N, 013.705689°W\n    test 925 intermediateTo-4: 4.000\n    test 926 intermediateTo-h: 125.000\n    test 927 midpointTo: 50.536583°N, 001.274507°E\n    test 928 destination: 51.513526°N, 000.098038°W\n    test 929 destination: 51°30′49″N, 000°05′53″W\n    test 930 destination: 33°57′N, 118°24′W\n    test 931 destination: 33.950367°N, 118.399012°W\n    test 932 destination: 0.592546N, 2.066453W\n    test 933 destination: 32.11195529°N, 064.56074722°E  FAILED, KNOWN, expected 32.11195529°N, 063.95925278°E\n    test 934 neareston6: (LatLon(45°00′00.0″N, 001°00′00.0″E), 4755443.4294, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E))\n    test 935 neareston6: (LatLon(45°30′03.94″N, 002°00′00.0″E), 39078.729285, 1.501072, 2, LatLon(45°00′00.0″N, 002°00′00.0″E), LatLon(46°00′00.0″N, 002°00′00.0″E))\n    test 936 chordTo: 125203.963\n    test 937 cosineAndoyerLambertTo: 125205.962\n    test 938 cosineAndoyerLambertTo: 125205.962\n    test 939 cosineForsyheAndoyerLambertTo: 125205.965\n    test 940 cosineForsyheAndoyerLambertTo: 125205.965\n    test 941 cosineLawTo: 124801.098\n    test 942 cosineLawTo: 124801.098\n    test 943 equirectangularTo: 124804.754\n    test 944 equirectangularTo: 124804.754\n    test 945 euclideanTo: 130015.089\n    test 946 euclideanTo: 130015.089\n    test 947 flatLocalTo: 125209.633\n    test 948 flatLocalTo: 125209.633\n    test 949 flatPolarTo: 133663.257\n    test 950 flatPolarTo: 133663.257\n    test 951 hartzell: 53.3206°N, 001.7297°W\n    test 952 hartzell: 53.349541°N, 001.7297°W\n    test 953 height4: 0.0\n    test 954 height4: (3820333.9, -115367.0, 5097204.4, -6584.9)\n    test 955 height4: 53°19′14.2″N, 001°43′46.9″W\n    test 956 height4: 53°19′14.2″N, 001°43′46.9″W\n    test 957 haversineTo: 124801.098\n    test 958 haversineTo: 124801.098\n    test 959 hubenyTo: <bound method LatLonBase.flatLocalTo of LatLon(53°19′14.16″N, 001°43′46.92″W)>\n    test 960 hubenyTo: <bound method LatLonBase.flatLocalTo of LatLon(53°11′19.32″N, 000°08′00.24″E)>\n    test 961 thomasTo: 125206.188\n    test 962 thomasTo: 125206.188\n    test 963 vincentysTo: 124801.098\n    test 964 vincentysTo: 124801.098\n    test 965 isclockwise: False\n    test 966 isclockwise*: False\n    test 967 isclockwise: True\n    test 968 isclockwise*: True\n    test 969 isclockwise: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 970 isclockwise*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 971 isclockwise: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 972 isclockwise*: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 973 isconvex: False\n    test 974 isconvex*: False\n    test 975 isconvex: True\n    test 976 isconvex*: True\n    test 977 isconvex: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 978 isconvex*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 979 isenclosedBy1: True\n    test 980 isenclosedBy1*: True\n    test 981 isenclosedBy2: False\n    test 982 isenclosedBy2*: False\n    test 983 isenclosedBy3: False\n    test 984 isenclosedBy3*: False\n    test 985 isenclosedBy4: False\n    test 986 isenclosedBy4*: False\n    test 987 isenclosedBy5: False\n    test 988 isenclosedBy5*: False\n    test 989 isenclosedBy6: True\n    test 990 isenclosedBy6*: True\n    test 991 isenclosedBy7: True\n    test 992 isenclosedBy7*: True\n    test 993 isenclosedBy-CCW: True\n    test 994 isenclosedBy-CW : True\n    test 995 isenclosedBy-CCW: True\n    test 996 initialBearingTo: 102.392291\n    test 997 compassAngleTo: 100.017\n    test 998 compassAngleTo: 105.599\n    test 999 initialBearingTo: 288.676039\n    test 1000 compassAngleTo: 280.017\n    test 1001 compassAngleTo: 285.599\n    test 1002 equirectangularTo: 592.185\n    test 1003 distanceTo: 593.571\n    test 1004 bearingTo: 0.0\n    test 1005 compassAngleTo: 0.0\n    test 1006 bearingTo: 45.2  FAILED, KNOWN, expected 45.0\n    test 1007 compassAngleTo: 45.0\n    test 1008 bearingTo: 90.0\n    test 1009 compassAngleTo: 90.0\n    test 1010 bearingTo: 180.0\n    test 1011 compassAngleTo: 180.0\n    test 1012 bearingTo: 225.2  FAILED, KNOWN, expected 225.0\n    test 1013 compassAngleTo: 225.0\n    test 1014 bearingTo: 314.8  FAILED, KNOWN, expected 315.0\n    test 1015 compassAngleTo: 315.0\n    test 1016 bearingTo: 270.0\n    test 1017 compassAngleTo: 270.0\n    test 1018 bearingTo: 0.0  FAILED, KNOWN, expected 359.4\n    test 1019 compassAngleTo: 359.4\n    test 1020 latlon2: (53.0, 1.0)\n    test 1021 philam2: (0.93, 0.02)\n    test 1022 bearingTo: 31\n    test 1023 compassAngleTo: 31\n    test 1024 compassAngleTo: 45\n\n    test 1025 boundsOf: <class 'pygeodesy.namedTuples.Bounds2Tuple'>\n    test 1026 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 1027 latlon2: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 1028 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 1029 isequalTo: <class 'bool'>\n    test 1030 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 1031 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 1032 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 1033 xyz3: <class 'tuple'>\n    test 1034 xyzh: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 1035 compassAngleTo: <class 'float'>\n    test 1036 cosineLawTo: <class 'float'>\n    test 1037 euclideanTo: <class 'float'>\n    test 1038 flatLocalTo: <class 'float'>\n    test 1039 flatPolarTo: <class 'float'>\n    test 1040 haversineTo: <class 'float'>\n    test 1041 hubenyTo: <class 'float'>\n    test 1042 vincentysTo: <class 'float'>\n    test 1043 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 1044 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 1045 toLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 1046 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 1047 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 1048 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 1049 toNvector: (0.615661, 0.0, 0.788011, 0)\n    test 1050 toVector: (3934960.466675, 0.0, 5002803.345483)\n    test 1051 toVector3d: (0.61823, 0.0, 0.786)\n\n    test 1052 trilaterate5 (pygeodesy.ellipsoidalKarney) .min: 305.091\n    test 1053 trilaterate5 (pygeodesy.ellipsoidalKarney) .point: 42.66933643°N, 002.48620262°E\n    test 1054 trilaterate5 (pygeodesy.ellipsoidalKarney) .max: 1592.545\n    test 1055 trilaterate5 (pygeodesy.ellipsoidalKarney) .point: 42.65141232°N, 002.46816989°E\n    test 1056 trilaterate5 (pygeodesy.ellipsoidalKarney) .n: 3\n    test 1057 trilaterate5 (pygeodesy.ellipsoidalKarney) .min: 127.229\n    test 1058 trilaterate5 (pygeodesy.ellipsoidalKarney) .max: 152.612\n    test 1059 trilaterate5 (pygeodesy.ellipsoidalKarney) .point: 42.67815375°N, 002.49950041°E\n    test 1060 trilaterate5 (pygeodesy.ellipsoidalKarney) .n: 2\n    test 1061 trilaterate5 (pygeodesy.ellipsoidalKarney) .min: 2400.293\n    test 1062 trilaterate5 (pygeodesy.ellipsoidalKarney) .max: 2400.293\n    test 1063 trilaterate5 (pygeodesy.ellipsoidalKarney) .point: 42.66128984°N, 002.47973818°E\n    test 1064 trilaterate5 (pygeodesy.ellipsoidalKarney) .min- is .maxPoint: True\n    test 1065 trilaterate5 (pygeodesy.ellipsoidalKarney) .n: 1\n    test 1066 trilaterate5 (pygeodesy.ellipsoidalKarney) .min: 1343.743\n    test 1067 trilaterate5 (pygeodesy.ellipsoidalKarney) .point: 42.69131964°N, 002.50112167°E\n    test 1068 trilaterate5 (pygeodesy.ellipsoidalKarney) .max: 1445.554\n    test 1069 trilaterate5 (pygeodesy.ellipsoidalKarney) .point: 42.67815375°N, 002.49950041°E\n    test 1070 trilaterate5 (pygeodesy.ellipsoidalKarney) .n: 2\n    test 1071 radii11: Radii11Tuple(rA=7244.792747, rB=1828.106695, rC=2.25502, cR=57792.067128, rIn=57.366968, riS=2.087668, roS=2.443334, a=1830.361715, b=7247.047766, c=9072.899442, s=9075.154461)\n    test 1072 circum3 (pygeodesy.ellipsoidalKarney) .radius: 57792.067\n    test 1073 circum3 (pygeodesy.ellipsoidalKarney) .center: 43.053532°N, 002.943255°E, -261.66m\n    test 1074 circum3 (pygeodesy.ellipsoidalKarney) .deltas: (-0.0, 0.0, 9.827)  FAILED, KNOWN, expected (0.0, 0.0, 11.383)\n    test 1075 circum3 (pygeodesy.ellipsoidalKarney) .d1: 57792.858\n    test 1076 circum3 (pygeodesy.ellipsoidalKarney) .d2: 57792.859\n    test 1077 circum3 (pygeodesy.ellipsoidalKarney) .d3: 57792.859\n    test 1078 circum3 (pygeodesy.ellipsoidalKarney) .datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 1079 circum3 (pygeodesy.ellipsoidalKarney) .Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n\n    test 1080 radii11: Radii11Tuple(rA=7244.792747, rB=1828.106695, rC=2.25502, cR=57792.067128, rIn=57.366968, riS=2.087668, roS=2.443334, a=1830.361715, b=7247.047766, c=9072.899442, s=9075.154461)\n    test 1081 circum4 (pygeodesy.ellipsoidalKarney) .radius: 3184256.748\n    test 1082 circum4 (pygeodesy.ellipsoidalKarney) .center: 43.054367°N, 002.942573°E, -3183993.92m\n    test 1083 circum4 (pygeodesy.ellipsoidalKarney) .rank: 3\n    test 1084 circum4 (pygeodesy.ellipsoidalKarney) .residuals: ()\n    test 1085 circum4 (pygeodesy.ellipsoidalKarney) .d1: 57818.033\n    test 1086 circum4 (pygeodesy.ellipsoidalKarney) .d2: 57834.176\n    test 1087 circum4 (pygeodesy.ellipsoidalKarney) .d3: 57830.992\n    test 1088 circum4 (pygeodesy.ellipsoidalKarney) .datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 1089 circum4 (pygeodesy.ellipsoidalKarney) .Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 1090 radii11: Radii11Tuple(rA=327537.482637, rB=776914.262482, rC=784245.052526, cR=780602.180901, rIn=325058.721103, riS=84975.664195, roS=INF, a=1561159.315008, b=1111782.535163, c=1104451.745119, s=1888696.797645)\n    test 1091 circin6 (pygeodesy.ellipsoidalKarney) .rB+rC: 1561159.315\n./pygeodesy/ellipsoidalKarney.py:347: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return _polygon(datum.ellipsoid.geodesic, points, closed, True, wrap, False)\n./pygeodesy/ellipsoidalKarney.py:266: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  a = _polygon(datum.ellipsoid.geodesic, points, True, False, wrap, polar)\n    test 1092 circin6 (pygeodesy.ellipsoidalKarney) .rC+pA: 1111782.535\n    test 1093 circin6 (pygeodesy.ellipsoidalKarney) .rA+rB: 1104451.745\n    test 1094 circin6 (pygeodesy.ellipsoidalKarney) .radius: 325058.721\n    test 1095 circin6 (pygeodesy.ellipsoidalKarney) .center: 02.948531°N, 002.932537°E, -40041.19m\n    test 1096 circin6 (pygeodesy.ellipsoidalKarney) .deltas: (0.0, 0.0, 0.224326)  FAILED, KNOWN, expected (0.0, 0.0, 0.090491)\n    test 1097 circin6 (pygeodesy.ellipsoidalKarney) .cA: 05.04314°N, 005.014578°E, -48104.09m\n    test 1098 circin6 (pygeodesy.ellipsoidalKarney) .cB: 00.0°N, 002.941713°E, -20168.62m\n    test 1099 circin6 (pygeodesy.ellipsoidalKarney) .cC: 02.961566°N, 000.0°E, -20113.46m\n    test 1100 circin6 (pygeodesy.ellipsoidalKarney) .dA: 327263.596\n    test 1101 circin6 (pygeodesy.ellipsoidalKarney) .dB: 326036.153\n    test 1102 circin6 (pygeodesy.ellipsoidalKarney) .dC: 326020.432\n\n    test 1103 area cw/ccw: 1.0\n\n    testNOAA(pygeodesy.ellipsoidalKarney, 25.05.27)\n    test 1104 NOAAexample1: 191872.1190, 249 03 16.4237, 67 59 11.1619\n    test 1105 NOAAexample2: 182009.1679, 254 42 44.6439, 73 09 21.3315\n    test 1106 NOAAexample3: 123456.7891, 245 00 34.7001, 64 20 24.6864\n    test 1107 NOAAexample4: 145239.0603, 114 29 26.9586, 295 21 32.6566\n\n    testIntersection3(pygeodesy.ellipsoidalKarney, 25.05.27)\n    test 1108 (30, 17): (LatLon(30°52′03.1″N, 015°30′38.41″E), 0, 0)\n    test 1109 (30, 17): (LatLon(30°52′03.1″N, 015°30′38.41″E), -1, 0)\n    test 1110 (-1,  3): (LatLon(01°34′52.49″N, 006°00′51.83″E), -1, -2)\n    test 1111 (-1,  3): (LatLon(01°34′52.49″N, 006°00′51.83″E), -1, 2)\n    test 1112 (65, 32): (LatLon(56°58′26.51″N, 032°00′00.0″E), 1, 0)\n    test 1113 (65, 32): (LatLon(56°58′26.51″N, 032°00′00.0″E), 1, 2)\n    test 1114 (-2, 17): <class 'pygeodesy.errors.IntersectionError'>\n    test 1115 (49, 25): (LatLon(49°00′00.0″N, 025°00′00.0″E), 1, -2)  FAILED, KNOWN, expected (LatLon(49°00′00.0″N, 025°00′00.0″E), 0, 0)\n    test 1116 #58: (LatLon(01°54′25.65″S, 005°37′48.76″E), 1, -2)\n    test 1117 #58: <class 'pygeodesy.errors.IntersectionError'>\n\n    testIntersections2(pygeodesy.ellipsoidalKarney, 25.05.27)\n    test 1118 EquidistantKarney: 36.9879°N, 088.1564°W, 38.2441°N, 092.3835°W\n    test 1119 EquidistantKarney: 36.9879°N, 088.1564°W, 38.2441°N, 092.3835°W\n    test 1120 EquidistantKarney: 00.0°N, 035.3478°W, 00.0°S, 035.3478°E\n    test 1121 EquidistantKarney: 1.63715 (% of radius)\n    test 1122 EquidistantKarney: 22.657°N, 000.0°W, 22.657°S, 000.0°E  FAILED, KNOWN, expected 22.657°N, 000.0°E, 22.657°S, 000.0°E\n    test 1123 EquidistantKarney: 1.30663 (% of radius)\n    test 1124 EquidistantKarney: 29.4898°N, 040.1785°W, 29.4898°S, 040.1785°E\n    test 1125 EquidistantKarney: 1.31396 (% of radius)\n    test 1126 EquidistantKarney: 02.7402°S, 044.885°E, 02.7402°N, 044.885°E\n    test 1127 EquidistantKarney: 1.83268 (% of radius)\n    test 1128 EquidistantKarney 5: 05.0558°S, 005.0271°W, 05.0558°N, 005.0271°E\n    test 1129 EquidistantKarney 5: 0 (% of radius)\n    test 1130 EquidistantKarney 10: 10.1081°S, 010.2901°W, 10.1081°N, 010.2901°E\n    test 1131 EquidistantKarney 10: 2.09389e-16 (% of radius)\n    test 1132 EquidistantKarney: 31.554599°S, 000.027743°W Random +/- 45\n    test 1133 EquidistantKarney: 31.554599°S, 000.027743°W, 19.574927°S, 029.199121°W  d 3.26873e-09 meter (iteration 3)\n    test 1134 EquidistantKarney: 31.554599°S, 000.027743°W, 09.540929°S, 048.892091°W  d 7.1336e-10 meter (iteration 3)\n\n    testKarney(pygeodesy.ellipsoidalKarney, 25.05.27, datum='WGS84')\n    test 1135 distanceTo: 866455.4329\n    test 1136 coincident: 0.0\n    test 1137 toDatum: OSGB36\n    test 1138 ValueError2: Ellipsoid 'Airy1830': incompatible with Ellipsoid 'WGS84'\n    test 1139 isEllipsoidal: True\n    test 1140 copy: True\n    test 1141 isEllipsoidal: True\n    test 1142 isSpherical: False\n    test 1143 copy: 37°57′03.7203″S, 144°25′29.5244″E\n\n    testKarneyVincenty(pygeodesy.ellipsoidalKarney, 25.05.27, datum='WGS84')\n    test 1144 coincident: 0.0\n    test 1145 coincident: 0.0, 0.0, 0.0\n    test 1146 destination: 37.6528°S, 143.9265°E\n    test 1147 destination: True\n    test 1148 destination2: 37.652821°S, 143.926496°E, 307.1736°NW\n    test 1149 destination2: True\n    test 1150 finalBearingOn: 307.1736°, 307°10′25.07″NW\n    test 1151 distanceTo: 969954.166\n    test 1152 distanceTo3: 969954.166314, 9.141877, 11.29722\n    test 1153 distanceTo2: 972708.16174, 11.22502\n    test 1154 initialBearingTo: 9.1419°, 9°08′30.76″N\n    test 1155 destination: 58.64402°N, 003.07009°W\n    test 1156 finalBearingTo: 11.2972°, 11°17′49.99″NNE\n    test 1157 finalBearingOn: 11.2972°, 11°17′49.99″NNE\n    test 1158 distanceTo: 404607.806\n    test 1159 distanceTo3: 404607.805988, 156.11064, 157.8345\n    test 1160 distanceTo2: 402574.597287, 157.726344\n    test 1161 initialBearingTo: 156.1106°, 156°06′38.31″SSE\n    test 1162 destination: 48.857°N, 002.351°E\n    test 1163 finalBearingTo: 157.8345°, 157°50′04.2″SSE\n    test 1164 finalBearingOn: 157.8345°, 157°50′04.2″SSE\n    test 1165 distanceTo: 54973.295\n    test 1166 distanceTo3: 54973.29527, 233.13008, 232.82461\n    test 1167 distanceTo2: 54903.41209, 232.9209\n    test 1168 initialBearingTo: 233.1301°, 233°07′48.28″SW\n    test 1169 destination: 37.6528°N, 143.9265°E\n    test 1170 finalBearingTo: 232.8246°, 232°49′28.59″SW\n    test 1171 finalBearingOn: 232.8246°, 232°49′28.59″SW\n    test 1172 distanceToMP: 298396.057\n    test 1173 distanceToSM: 185.415\n    test 1174 distanceToMP: 111319.491\n    test 1175 distanceToMP: 110574.389  FAILED, KNOWN, expected 110574.361\n    test 1176 distanceToKW: 222638.982\n    test 1177 distanceToKW: 111319.491\n    test 1178 distanceTo3: 54972.271\n    test 1179 distanceTo3: 306°52′05.37″\n    test 1180 distanceTo3: 307°10′25.07″\n    test 1181 distanceTo2: 54902.390\n    test 1182 distanceTo2: 307°04′38.41″\n\n    testKarneyVincentyError(pygeodesy.ellipsoidalKarney, 25.05.27, datum='WGS84')\n    test 1183 distanceTo/antipodal (None): 19936288.579\n    test 1184 distanceTo/VincentyError (None): 19944127.421\n    test 1185 initialBearingTo/VincentyError (None): 15.556883\n    test 1186 finalBearingTo/VincentyError (None): 164.442514\n    test 1187 distanceTo/equatorial (None): 20003931.46\n    test 1188 initialBearingTo/equatorial (None): 0.0\n    test 1189 distanceTo/coincident (None): 111319.491\n    test 1190 distanceTo/meridional (None): 10001965.729\n    test 1191 initialBearingTo/meridional (None): 180.0\n    test 1192 distanceTo/coincident (None): 0.0\n    test 1193 initialBearingTo/coincident (None): 180.0\n    test 1194 finalBearingTo/coincident (None): 180.0\n    test 1195 destination/coincident (None): 50.06632°N, 005.71475°W\n    test 1196 distanceTo/anti-meridian (None): 10825924.1\n    test 1197 distanceTo/quadrants (None): 4015703.02\n    test 1198 distanceTo/quadrants (None): 4015703.02\n    test 1199 distanceTo/quadrants (None): 4015703.02\n    test 1200 distanceTo/quadrants (None): 4015703.02\n    test 1201 distanceTo/quadrants (None): 4015703.02\n    test 1202 distanceTo/quadrants (None): 4015703.02\n    test 1203 distanceTo/quadrants (None): 4015703.02\n    test 1204 distanceTo/quadrants (None): 4015703.02\n    test 1205 distanceTo/quadrants (None): 4015703.02\n    test 1206 distanceTo/quadrants (None): 4015703.02\n    test 1207 distanceTo/quadrants (None): 4015703.02\n    test 1208 distanceTo/quadrants (None): 4015703.02\n    test 1209 distanceTo/quadrants (None): 4015703.02\n    test 1210 distanceTo/quadrants (None): 4015703.02\n    test 1211 distanceTo/quadrants (None): 4015703.02\n    test 1212 distanceTo/quadrants (None): 4015703.02\n\n    testKarney(pygeodesy.ellipsoidalKarney, 25.05.27, datum='NAD83')\n    test 1213 distanceTo: 866455.4329\n    test 1214 coincident: 0.0\n    test 1215 toDatum: OSGB36\n    test 1216 ValueError2: Ellipsoid 'Airy1830': incompatible with Ellipsoid 'GRS80'\n    test 1217 isEllipsoidal: True\n    test 1218 copy: True\n    test 1219 isEllipsoidal: True\n./test/testLatLon.py:276: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.ellipsoidalGeodSolve.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', p.cosineAndoyerLambertTo(q), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:277: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.ellipsoidalGeodSolve.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', q.cosineAndoyerLambertTo(p), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:279: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.ellipsoidalGeodSolve.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', p.cosineForsytheAndoyerLambertTo(q), '124801.098' if Sph else '125205.965', fmt='%.3f')\n./test/testLatLon.py:280: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.ellipsoidalGeodSolve.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', q.cosineForsytheAndoyerLambertTo(p), '124801.098' if Sph else '125205.965', fmt='%.3f')\n    test 1220 isSpherical: False\n    test 1221 copy: 37°57′03.7203″S, 144°25′29.5244″E\n\n    testKarneyVincenty(pygeodesy.ellipsoidalKarney, 25.05.27, datum='NAD83')\n    test 1222 coincident: 0.0\n    test 1223 coincident: 0.0, 0.0, 0.0\n    test 1224 destination: 37.6528°S, 143.9265°E\n    test 1225 destination: True\n    test 1226 destination2: 37.652821°S, 143.926496°E, 307.1736°NW\n    test 1227 destination2: True\n    test 1228 finalBearingOn: 307.1736°, 307°10′25.07″NW\n    test 1229 distanceTo: 969954.166\n    test 1230 distanceTo3: 969954.166314, 9.141877, 11.29722\n    test 1231 distanceTo2: 972708.16174, 11.22502\n    test 1232 initialBearingTo: 9.1419°, 9°08′30.76″N\n    test 1233 destination: 58.64402°N, 003.07009°W\n    test 1234 finalBearingTo: 11.2972°, 11°17′49.99″NNE\n    test 1235 finalBearingOn: 11.2972°, 11°17′49.99″NNE\n    test 1236 distanceTo: 404607.806\n    test 1237 distanceTo3: 404607.805988, 156.11064, 157.8345\n    test 1238 distanceTo2: 402574.597287, 157.726344\n    test 1239 initialBearingTo: 156.1106°, 156°06′38.31″SSE\n    test 1240 destination: 48.857°N, 002.351°E\n    test 1241 finalBearingTo: 157.8345°, 157°50′04.2″SSE\n    test 1242 finalBearingOn: 157.8345°, 157°50′04.2″SSE\n    test 1243 distanceTo: 54973.295\n    test 1244 distanceTo3: 54973.29527, 233.13008, 232.82461\n    test 1245 distanceTo2: 54903.41209, 232.9209\n    test 1246 initialBearingTo: 233.1301°, 233°07′48.28″SW\n    test 1247 destination: 37.6528°N, 143.9265°E\n    test 1248 finalBearingTo: 232.8246°, 232°49′28.59″SW\n    test 1249 finalBearingOn: 232.8246°, 232°49′28.59″SW\n    test 1250 distanceToMP: 298396.057\n    test 1251 distanceToSM: 185.415\n    test 1252 distanceToMP: 111319.491\n    test 1253 distanceToMP: 110574.389  FAILED, KNOWN, expected 110574.361\n    test 1254 distanceToKW: 222638.982\n    test 1255 distanceToKW: 111319.491\n    test 1256 distanceTo3: 54972.271\n    test 1257 distanceTo3: 306°52′05.37″\n    test 1258 distanceTo3: 307°10′25.07″\n    test 1259 distanceTo2: 54902.390\n    test 1260 distanceTo2: 307°04′38.41″\n\n    testKarneyVincentyError(pygeodesy.ellipsoidalKarney, 25.05.27, datum='NAD83')\n    test 1261 distanceTo/antipodal (None): 19936288.579\n    test 1262 distanceTo/VincentyError (None): 19944127.421\n    test 1263 initialBearingTo/VincentyError (None): 15.556883\n    test 1264 finalBearingTo/VincentyError (None): 164.442514\n    test 1265 distanceTo/equatorial (None): 20003931.46\n    test 1266 initialBearingTo/equatorial (None): 0.0\n    test 1267 distanceTo/coincident (None): 111319.491\n    test 1268 distanceTo/meridional (None): 10001965.729\n    test 1269 initialBearingTo/meridional (None): 180.0\n    test 1270 distanceTo/coincident (None): 0.0\n    test 1271 initialBearingTo/coincident (None): 180.0\n    test 1272 finalBearingTo/coincident (None): 180.0\n    test 1273 destination/coincident (None): 50.06632°N, 005.71475°W\n    test 1274 distanceTo/anti-meridian (None): 10825924.1\n    test 1275 distanceTo/quadrants (None): 4015703.02\n    test 1276 distanceTo/quadrants (None): 4015703.02\n    test 1277 distanceTo/quadrants (None): 4015703.02\n    test 1278 distanceTo/quadrants (None): 4015703.02\n    test 1279 distanceTo/quadrants (None): 4015703.02\n    test 1280 distanceTo/quadrants (None): 4015703.02\n    test 1281 distanceTo/quadrants (None): 4015703.02\n    test 1282 distanceTo/quadrants (None): 4015703.02\n    test 1283 distanceTo/quadrants (None): 4015703.02\n    test 1284 distanceTo/quadrants (None): 4015703.02\n    test 1285 distanceTo/quadrants (None): 4015703.02\n    test 1286 distanceTo/quadrants (None): 4015703.02\n    test 1287 distanceTo/quadrants (None): 4015703.02\n    test 1288 distanceTo/quadrants (None): 4015703.02\n    test 1289 distanceTo/quadrants (None): 4015703.02\n    test 1290 distanceTo/quadrants (None): 4015703.02\n\n    testKarney_s(pygeodesy.ellipsoidalKarney, 25.05.27)\n    test 1291 .lat1: -41.320\n    test 1292 .lon1: 174.810\n    test 1293 .azi1: 161.067669986160\n    test 1294 .lat2: 40.960\n    test 1295 .lon2: -5.500\n    test 1296 .azi2: 18.825195123247\n    test 1297 .s12: 19959679.267353821546\n    test 1298 distanceTo3: 19959679.267354, 161.067670, 18.825195\n    test 1299 destination2: 40.96, -5.5, 18.825195123247\n    test 1300 areaOf: 1.366270368e+13\n    test 1301 perimeterOf: 1.683106789e+07\n    test 1302 isclockwise: False\n    test 1303 isclockwise: True\n    test 1304 areaCO: 2.69154549884e+11\n    test 1305 isclockwise: True\n    test 1306 perimeterCO: 2099854.381923\n\n    testEllipsoidal(pygeodesy.ellipsoidalGeodSolve, 25.08.28)\n    test 1307 isEllipsoidal: True\n    test 1308 isSpherical: False\n    test 1309 isEllipsoidal: True\n    test 1310 isSpherical: False\n    test 1311 toDatum: 51.477284°N, 000.00002°E, -45.91m\n    test 1312 toDatum: 51.4773°N, 000.0°E, -45.91m\n    test 1313 toDatum: 51.4778°N, 000.0016°W\n    test 1314 __matmul__: 51.477284°N, 000.00002°E, -45.91m\n    test 1315 __matmul__: 51.477284°N, 000.00002°E, -45.90m\n    test 1316 parse: 51.477284°N, 000.00002°E, -45.91m\n    test 1317 reframe: None\n    test 1318 toCartesian: [3980581.21, -111.159, 4966824.522]\n    test 1319 toCss: -111.158797 5705242.333679\n    test 1320 toCss: -111.158797 5705242.333679\n    test 1321 toEcef: 3980581.21, -111.159, 4966824.522\n    test 1322 toEtm: 30 N 916396 5720041\n    test 1323 toEtm: 30 N 916396 5720041\n    test 1324 toLcc: 5639901 4612638\n    test 1325 toLcc: 5639901 4612638\n    test 1326 toOsgr: TQ 38876 77320\n    test 1327 toOsgr: TQ 38876 77320\n    test 1328 toOsgrTM: TQ 38876 77320\n    test 1329 toUtmUps: 30 N 708207 5707224\n    test 1330 toUtm: 30 N 708207 5707224\n    test 1331 toUtm: 30 N 708207 5707224\n    test 1332 toWm: -178.111 6672799.209\n    test 1333 toWm: -178.111 6672799.209\n    test 1334 elevation2: None\n    test 1335 geoidHeight2: None\n    test 1336 toUtmUps: 30 N 708207 5707224\n    test 1337 toUtm: 30 N 708207 5707224\n    test 1338 toUtm: 30 N 708207 5707224\n    test 1339 toUtmUps: 00 N 2000000 1333272\n    test 1340 toUps: 00 N 2000000 1333272\n    test 1341 toUps: 00 N 0 -666728\n    test 1342 toUps: 00 N 2000000 1555732\n    test 1343 toUtm: 31 N 459200 9217519\n    test 1344 nearestOn: 32.81°N, 031.42°E\n    test 1345 sat: 82.219069°N, 059.719736°E, -6353120.97m\n    test 1346 dop: 51.998889°N, 004.373333°E, +134.64m\n    test 1347 distance: 3802238.5049886247  FAILED, KNOWN, expected 3802238.504989\n    test 1348 neareston8: (LatLon(45°00′00.0″N, 001°00′00.0″E), 4874369.98942, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E), 0.0, 0.0)\n    test 1349 iteration: 0\n    test 1350 neareston8: (LatLon(45°30′03.93″N, 020°00′00.0″E), 39078.779519, 1.501069, 2, LatLon(45°00′00.0″N, 020°00′00.0″E), LatLon(46°00′00.0″N, 020°00′00.0″E), 270.356041, 269.999412)\n    test 1351 iteration: 1\n\n    32 tests skipped (64): insersecant2\n\n    testLatLon(pygeodesy.ellipsoidalGeodSolve, 25.08.28)\n    test 1352 isEllipsoidal: True\n    test 1353 isSpherical: False\n    test 1354 lat/lonDMS: 52.20472°N, 000.14056°E\n    test 1355 lat/lonDMS F_DM: 52°12.283′N, 000°08.434′E\n    test 1356 lat/lonDMS F_DM: 52°12.2832′N, 000°08.4336′E\n    test 1357 lat/lonDMS F_DMS: 52°12′17″N, 000°08′26″E\n    test 1358 lat/lonDMS F_DMS: 52°12′17.0″N, 000°08′26.0″E\n    test 1359 lat/lonDMS F_RAD: 0.911144N, 0.002453E\n    test 1360 isequalTo: True\n    test 1361 isequalTo: True\n    test 1362 latlon2: 52.20472, 0.14056\n    test 1363 latlon2: 52.2047, 0.1406\n    test 1364 latlon2: 52.205, 0.141\n    test 1365 latlon2: 52.2, 0.14\n    test 1366 latlon2: 52.2, 0.1\n    test 1367 latlon2: 52.0, 0.0\n    test 1368 chordTo: 12029263.15\n    test 1369 chordTo: 12029049.69\n    test 1370 initialBearingTo: 156.1106\n    test 1371 initialBearingTo: 65.9335\n    test 1372 initialBearingTo: 0.0\n    test 1373 initialBearingTo: 180.0\n    test 1374 finalBearingTo: 157.8345\n    test 1375 finalBearingTo: 93.9034\n    test 1376 bearingTo2: 156.1106, 157.8345\n    test 1377 ispolar: True\n    test 1378 copy: True\n    test 1379 __eq__: True\n    test 1380 __ne__: False\n    test 1381 equirectangularTo: 404329.56\n    test 1382 distanceTo: 404607.805988\n    test 1383 distanceTo: 404607.805988\n    test 1384 distanceTo: 3981601\n    test 1385 antipodal: False\n    test 1386 distanceTo dateline: 19959679.267\n    test 1387 distanceTo unrolled: 19959679.267\n    test 1388 antipodal: False\n    test 1389 distanceTo dateline: 9513998\n    test 1390 distanceTo unrolled: 9513998\n    test 1391 distanceTo: 18012714.66\n    test 1392 distanceTo: 20003931.46\n    test 1393 distanceTo3 dateline: 19959679.2674, 161.0677, 18.8252\n    test 1394 distanceTo3 dateline: 9513997.9901, 42.9164, 138.8903\n    test 1395 distanceTo3 dateline: 19959679.2674, 161.0677, 18.8252\n    test 1396 distanceTo3 dateline: 9513997.9901, 42.9164, 138.8903\n    test 1397 intermediateTo: 51.372275°N, 000.707253°E\n    test 1398 intermediateTo: True\n    test 1399 intermediateTo: 404607.806\n    test 1400 intermediateTo+5: 35.139582°N, 008.994368°E\n    test 1401 intermediateTo+5: 5.000\n    test 1402 intermediateTo-4: 64.894124°N, 013.705689°W\n    test 1403 intermediateTo-4: 4.000\n    test 1404 intermediateTo-h: 125.000\n    test 1405 midpointTo: 50.536583°N, 001.274507°E\n    test 1406 destination: 51.513526°N, 000.098038°W\n    test 1407 destination: 51°30′49″N, 000°05′53″W\n    test 1408 destination: 33°57′N, 118°24′W\n    test 1409 destination: 33.950367°N, 118.399012°W\n    test 1410 destination: 0.592546N, 2.066453W\n    test 1411 destination: 32.11195529°N, 064.56074722°E  FAILED, KNOWN, expected 32.11195529°N, 063.95925278°E\n    test 1412 neareston6: (LatLon(45°00′00.0″N, 001°00′00.0″E), 4755443.4294, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E))\n    test 1413 neareston6: (LatLon(45°30′03.94″N, 002°00′00.0″E), 39078.729285, 1.501072, 2, LatLon(45°00′00.0″N, 002°00′00.0″E), LatLon(46°00′00.0″N, 002°00′00.0″E))\n    test 1414 chordTo: 125203.963\n    test 1415 cosineAndoyerLambertTo: 125205.962\n    test 1416 cosineAndoyerLambertTo: 125205.962\n    test 1417 cosineForsyheAndoyerLambertTo: 125205.965\n    test 1418 cosineForsyheAndoyerLambertTo: 125205.965\n    test 1419 cosineLawTo: 124801.098\n    test 1420 cosineLawTo: 124801.098\n    test 1421 equirectangularTo: 124804.754\n    test 1422 equirectangularTo: 124804.754\n    test 1423 euclideanTo: 130015.089\n    test 1424 euclideanTo: 130015.089\n    test 1425 flatLocalTo: 125209.633\n    test 1426 flatLocalTo: 125209.633\n    test 1427 flatPolarTo: 133663.257\n    test 1428 flatPolarTo: 133663.257\n    test 1429 hartzell: 53.3206°N, 001.7297°W\n    test 1430 hartzell: 53.349541°N, 001.7297°W\n    test 1431 height4: 0.0\n    test 1432 height4: (3820333.9, -115367.0, 5097204.4, -6584.9)\n    test 1433 height4: 53°19′14.2″N, 001°43′46.9″W\n    test 1434 height4: 53°19′14.2″N, 001°43′46.9″W\n    test 1435 haversineTo: 124801.098\n    test 1436 haversineTo: 124801.098\n    test 1437 hubenyTo: <bound method LatLonBase.flatLocalTo of LatLon(53°19′14.16″N, 001°43′46.92″W)>\n    test 1438 hubenyTo: <bound method LatLonBase.flatLocalTo of LatLon(53°11′19.32″N, 000°08′00.24″E)>\n    test 1439 thomasTo: 125206.188\n    test 1440 thomasTo: 125206.188\n    test 1441 vincentysTo: 124801.098\n    test 1442 vincentysTo: 124801.098\n    test 1443 isclockwise: False\n    test 1444 isclockwise*: False\n    test 1445 isclockwise: True\n    test 1446 isclockwise*: True\n    test 1447 isclockwise: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 1448 isclockwise*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 1449 isclockwise: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 1450 isclockwise*: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 1451 isconvex: False\n    test 1452 isconvex*: False\n    test 1453 isconvex: True\n    test 1454 isconvex*: True\n    test 1455 isconvex: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 1456 isconvex*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 1457 isenclosedBy1: True\n    test 1458 isenclosedBy1*: True\n    test 1459 isenclosedBy2: False\n    test 1460 isenclosedBy2*: False\n    test 1461 isenclosedBy3: False\n    test 1462 isenclosedBy3*: False\n    test 1463 isenclosedBy4: False\n    test 1464 isenclosedBy4*: False\n    test 1465 isenclosedBy5: False\n    test 1466 isenclosedBy5*: False\n    test 1467 isenclosedBy6: True\n    test 1468 isenclosedBy6*: True\n    test 1469 isenclosedBy7: True\n    test 1470 isenclosedBy7*: True\n    test 1471 isenclosedBy-CCW: True\n    test 1472 isenclosedBy-CW : True\n    test 1473 isenclosedBy-CCW: True\n    test 1474 initialBearingTo: 102.392291\n    test 1475 compassAngleTo: 100.017\n    test 1476 compassAngleTo: 105.599\n    test 1477 initialBearingTo: 288.676039\n    test 1478 compassAngleTo: 280.017\n    test 1479 compassAngleTo: 285.599\n    test 1480 equirectangularTo: 592.185\n    test 1481 distanceTo: 593.571\n    test 1482 bearingTo: 0.0\n    test 1483 compassAngleTo: 0.0\n    test 1484 bearingTo: 45.2  FAILED, KNOWN, expected 45.0\n    test 1485 compassAngleTo: 45.0\n    test 1486 bearingTo: 90.0\n    test 1487 compassAngleTo: 90.0\n    test 1488 bearingTo: 180.0\n    test 1489 compassAngleTo: 180.0\n    test 1490 bearingTo: 225.2  FAILED, KNOWN, expected 225.0\n    test 1491 compassAngleTo: 225.0\n    test 1492 bearingTo: 314.8  FAILED, KNOWN, expected 315.0\n    test 1493 compassAngleTo: 315.0\n    test 1494 bearingTo: 270.0\n    test 1495 compassAngleTo: 270.0\n    test 1496 bearingTo: 0.0  FAILED, KNOWN, expected 359.4\n    test 1497 compassAngleTo: 359.4\n    test 1498 latlon2: (53.0, 1.0)\n    test 1499 philam2: (0.93, 0.02)\n    test 1500 bearingTo: 31\n    test 1501 compassAngleTo: 31\n    test 1502 compassAngleTo: 45\n\n    test 1503 boundsOf: <class 'pygeodesy.namedTuples.Bounds2Tuple'>\n    test 1504 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 1505 latlon2: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 1506 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 1507 isequalTo: <class 'bool'>\n    test 1508 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 1509 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 1510 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 1511 xyz3: <class 'tuple'>\n    test 1512 xyzh: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 1513 compassAngleTo: <class 'float'>\n    test 1514 cosineLawTo: <class 'float'>\n    test 1515 euclideanTo: <class 'float'>\n    test 1516 flatLocalTo: <class 'float'>\n    test 1517 flatPolarTo: <class 'float'>\n    test 1518 haversineTo: <class 'float'>\n    test 1519 hubenyTo: <class 'float'>\n    test 1520 vincentysTo: <class 'float'>\n    test 1521 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 1522 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 1523 toLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 1524 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 1525 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 1526 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 1527 toNvector: (0.615661, 0.0, 0.788011, 0)\n    test 1528 toVector: (3934960.466675, 0.0, 5002803.345483)\n    test 1529 toVector3d: (0.61823, 0.0, 0.786)\n\n    test 1530 trilaterate5 (pygeodesy.ellipsoidalGeodSolve) .min: 305.091\n    test 1531 trilaterate5 (pygeodesy.ellipsoidalGeodSolve) .point: 42.66933643°N, 002.48620262°E\n    test 1532 trilaterate5 (pygeodesy.ellipsoidalGeodSolve) .max: 1592.545\n    test 1533 trilaterate5 (pygeodesy.ellipsoidalGeodSolve) .point: 42.65141232°N, 002.46816989°E\n    test 1534 trilaterate5 (pygeodesy.ellipsoidalGeodSolve) .n: 3\n    test 1535 trilaterate5 (pygeodesy.ellipsoidalGeodSolve) .min: 127.229\n    test 1536 trilaterate5 (pygeodesy.ellipsoidalGeodSolve) .max: 152.612\n    test 1537 trilaterate5 (pygeodesy.ellipsoidalGeodSolve) .point: 42.67815375°N, 002.49950041°E\n    test 1538 trilaterate5 (pygeodesy.ellipsoidalGeodSolve) .n: 2\n    test 1539 trilaterate5 (pygeodesy.ellipsoidalGeodSolve) .min: 2400.293\n    test 1540 trilaterate5 (pygeodesy.ellipsoidalGeodSolve) .max: 2400.293\n    test 1541 trilaterate5 (pygeodesy.ellipsoidalGeodSolve) .point: 42.66128984°N, 002.47973818°E\n    test 1542 trilaterate5 (pygeodesy.ellipsoidalGeodSolve) .min- is .maxPoint: True\n    test 1543 trilaterate5 (pygeodesy.ellipsoidalGeodSolve) .n: 1\n    test 1544 trilaterate5 (pygeodesy.ellipsoidalGeodSolve) .min: 1343.743\n    test 1545 trilaterate5 (pygeodesy.ellipsoidalGeodSolve) .point: 42.69131964°N, 002.50112167°E\n    test 1546 trilaterate5 (pygeodesy.ellipsoidalGeodSolve) .max: 1445.554\n    test 1547 trilaterate5 (pygeodesy.ellipsoidalGeodSolve) .point: 42.67815375°N, 002.49950041°E\n    test 1548 trilaterate5 (pygeodesy.ellipsoidalGeodSolve) .n: 2\n    test 1549 radii11: Radii11Tuple(rA=7244.792747, rB=1828.106695, rC=2.25502, cR=57792.067128, rIn=57.366968, riS=2.087668, roS=2.443334, a=1830.361715, b=7247.047766, c=9072.899442, s=9075.154461)\n    test 1550 circum3 (pygeodesy.ellipsoidalGeodSolve) .radius: 57792.067\n    test 1551 circum3 (pygeodesy.ellipsoidalGeodSolve) .center: 43.053532°N, 002.943255°E, -261.66m\n    test 1552 circum3 (pygeodesy.ellipsoidalGeodSolve) .deltas: (-0.0, 0.0, 9.827)  FAILED, KNOWN, expected (0.0, 0.0, 11.383)\n    test 1553 circum3 (pygeodesy.ellipsoidalGeodSolve) .d1: 57792.858\n    test 1554 circum3 (pygeodesy.ellipsoidalGeodSolve) .d2: 57792.859\n    test 1555 circum3 (pygeodesy.ellipsoidalGeodSolve) .d3: 57792.859\n    test 1556 circum3 (pygeodesy.ellipsoidalGeodSolve) .datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 1557 circum3 (pygeodesy.ellipsoidalGeodSolve) .Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n\n    test 1558 radii11: Radii11Tuple(rA=7244.792747, rB=1828.106695, rC=2.25502, cR=57792.067128, rIn=57.366968, riS=2.087668, roS=2.443334, a=1830.361715, b=7247.047766, c=9072.899442, s=9075.154461)\n    test 1559 circum4 (pygeodesy.ellipsoidalGeodSolve) .radius: 3184256.748\n    test 1560 circum4 (pygeodesy.ellipsoidalGeodSolve) .center: 43.054367°N, 002.942573°E, -3183993.92m\n    test 1561 circum4 (pygeodesy.ellipsoidalGeodSolve) .rank: 3\n    test 1562 circum4 (pygeodesy.ellipsoidalGeodSolve) .residuals: ()\n    test 1563 circum4 (pygeodesy.ellipsoidalGeodSolve) .d1: 57818.033\n    test 1564 circum4 (pygeodesy.ellipsoidalGeodSolve) .d2: 57834.176\n    test 1565 circum4 (pygeodesy.ellipsoidalGeodSolve) .d3: 57830.992\n    test 1566 circum4 (pygeodesy.ellipsoidalGeodSolve) .datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 1567 circum4 (pygeodesy.ellipsoidalGeodSolve) .Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 1568 radii11: Radii11Tuple(rA=327537.482637, rB=776914.262482, rC=784245.052526, cR=780602.180901, rIn=325058.721103, riS=84975.664195, roS=INF, a=1561159.315008, b=1111782.535163, c=1104451.745119, s=1888696.797645)\n    test 1569 circin6 (pygeodesy.ellipsoidalGeodSolve) .rB+rC: 1561159.315\n    test 1570 circin6 (pygeodesy.ellipsoidalGeodSolve) .rC+pA: 1111782.535\n    test 1571 circin6 (pygeodesy.ellipsoidalGeodSolve) .rA+rB: 1104451.745\n    test 1572 circin6 (pygeodesy.ellipsoidalGeodSolve) .radius: 325058.721\n    test 1573 circin6 (pygeodesy.ellipsoidalGeodSolve) .center: 02.948531°N, 002.932537°E, -40041.19m\n    test 1574 circin6 (pygeodesy.ellipsoidalGeodSolve) .deltas: (0.0, 0.0, 0.224326)  FAILED, KNOWN, expected (0.0, 0.0, 0.090491)\n    test 1575 circin6 (pygeodesy.ellipsoidalGeodSolve) .cA: 05.04314°N, 005.014578°E, -48104.09m\n    test 1576 circin6 (pygeodesy.ellipsoidalGeodSolve) .cB: 00.0°N, 002.941713°E, -20168.62m\n    test 1577 circin6 (pygeodesy.ellipsoidalGeodSolve) .cC: 02.961566°N, 000.0°E, -20113.46m\n    test 1578 circin6 (pygeodesy.ellipsoidalGeodSolve) .dA: 327263.596\n    test 1579 circin6 (pygeodesy.ellipsoidalGeodSolve) .dB: 326036.153\n    test 1580 circin6 (pygeodesy.ellipsoidalGeodSolve) .dC: 326020.432\n\n    test 1581 area cw/ccw: 1.0\n\n    testNOAA(pygeodesy.ellipsoidalGeodSolve, 25.08.28)\n    test 1582 NOAAexample1: 191872.1190, 249 03 16.4237, 67 59 11.1619\n    test 1583 NOAAexample2: 182009.1679, 254 42 44.6439, 73 09 21.3315\n    test 1584 NOAAexample3: 123456.7891, 245 00 34.7001, 64 20 24.6864\n    test 1585 NOAAexample4: 145239.0603, 114 29 26.9586, 295 21 32.6566\n\n    testIntersection3(pygeodesy.ellipsoidalGeodSolve, 25.08.28)\n    test 1586 (30, 17): (LatLon(30°52′03.1″N, 015°30′38.41″E), 0, 0)\n    test 1587 (30, 17): (LatLon(30°52′03.1″N, 015°30′38.41″E), -1, 0)\n    test 1588 (-1,  3): (LatLon(01°34′52.49″N, 006°00′51.83″E), -1, -2)\n    test 1589 (-1,  3): (LatLon(01°34′52.49″N, 006°00′51.83″E), -1, 2)\n    test 1590 (65, 32): (LatLon(56°58′26.51″N, 032°00′00.0″E), 1, 0)\n    test 1591 (65, 32): (LatLon(56°58′26.51″N, 032°00′00.0″E), 1, 2)\n    test 1592 (-2, 17): <class 'pygeodesy.errors.IntersectionError'>\n    test 1593 (49, 25): (LatLon(49°00′00.0″N, 025°00′00.0″E), 0, -2)  FAILED, KNOWN, expected (LatLon(49°00′00.0″N, 025°00′00.0″E), 0, 0)\n    test 1594 #58: (LatLon(01°54′25.65″S, 005°37′48.76″E), 1, -2)\n    test 1595 #58: <class 'pygeodesy.errors.IntersectionError'>\n\n    testIntersections2(pygeodesy.ellipsoidalGeodSolve, 25.08.28)\n    test 1596 EquidistantGeodSolve: 36.9879°N, 088.1564°W, 38.2441°N, 092.3835°W\n    test 1597 EquidistantGeodSolve: 36.9879°N, 088.1564°W, 38.2441°N, 092.3835°W\n    test 1598 EquidistantGeodSolve: 00.0°N, 035.3478°W, 00.0°N, 035.3478°E  FAILED, KNOWN, expected 00.0°S, 035.4073°W, 00.0°S, 035.4073°E\n    test 1599 EquidistantGeodSolve: 1.63715 (% of radius)\n    test 1600 EquidistantGeodSolve: 22.657°N, 000.0°E, 22.657°S, 000.0°E  FAILED, KNOWN, expected 22.756°N, 000.0°W, 22.756°S, 000.0°W\n    test 1601 EquidistantGeodSolve: 1.30663 (% of radius)\n    test 1602 EquidistantGeodSolve: 29.4898°N, 040.1785°W, 29.4898°S, 040.1785°E\n    test 1603 EquidistantGeodSolve: 1.31396 (% of radius)\n    test 1604 EquidistantGeodSolve: 02.7402°S, 044.885°E, 02.7402°N, 044.885°E\n    test 1605 EquidistantGeodSolve: 1.83268 (% of radius)\n    test 1606 EquidistantGeodSolve 5: 05.0558°S, 005.0271°W, 05.0558°N, 005.0271°E\n    test 1607 EquidistantGeodSolve 5: 8.37557e-16 (% of radius)\n    test 1608 EquidistantGeodSolve 10: 10.1081°S, 010.2901°W, 10.1081°N, 010.2901°E\n    test 1609 EquidistantGeodSolve 10: 2.09389e-16 (% of radius)\n    test 1610 EquidistantGeodSolve: 20.8072°N, 003.974054°E Random +/- 45\n    test 1611 EquidistantGeodSolve: 20.8072°N, 003.974054°E, 11.649785°N, 007.023557°E  d 3.97e-08 meter (iteration 4)\n    test 1612 EquidistantGeodSolve: 20.8072°N, 003.974054°E, 19.233317°N, 003.788863°E  d 2.19e-08 meter (iteration 3)\n\n    testKarney(pygeodesy.ellipsoidalGeodSolve, 25.08.28, datum='WGS84')\n    test 1613 distanceTo: 866455.4329\n    test 1614 coincident: 0.0\n    test 1615 toDatum: OSGB36\n    test 1616 ValueError2: Ellipsoid 'Airy1830': incompatible with Ellipsoid 'WGS84'\n    test 1617 isEllipsoidal: True\n    test 1618 copy: True\n    test 1619 isEllipsoidal: True\n    test 1620 isSpherical: False\n    test 1621 copy: 37°57′03.7203″S, 144°25′29.5244″E\n\n    testKarneyVincenty(pygeodesy.ellipsoidalGeodSolve, 25.08.28, datum='WGS84')\n    test 1622 coincident: 0.0\n    test 1623 coincident: 0.0, 0.0, 0.0\n    test 1624 destination: 37.6528°S, 143.9265°E\n    test 1625 destination: True\n    test 1626 destination2: 37.652821°S, 143.926496°E, 307.1736°NW\n    test 1627 destination2: True\n    test 1628 finalBearingOn: 307.1736°, 307°10′25.07″NW\n    test 1629 distanceTo: 969954.166\n    test 1630 distanceTo3: 969954.166314, 9.141877, 11.29722\n    test 1631 distanceTo2: 972708.16174, 11.22502\n    test 1632 initialBearingTo: 9.1419°, 9°08′30.76″N\n    test 1633 destination: 58.64402°N, 003.07009°W\n    test 1634 finalBearingTo: 11.2972°, 11°17′49.99″NNE\n    test 1635 finalBearingOn: 11.2972°, 11°17′49.99″NNE\n./test/testLatLon.py:276: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.ellipsoidalExact.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', p.cosineAndoyerLambertTo(q), '124801.098' if Sph else '125205.962', fmt='%.3f')\n    test 1636 distanceTo: 404607.806\n    test 1637 distanceTo3: 404607.805988, 156.11064, 157.8345\n    test 1638 distanceTo2: 402574.597287, 157.726344\n    test 1639 initialBearingTo: 156.1106°, 156°06′38.31″SSE\n    test 1640 destination: 48.857°N, 002.351°E\n    test 1641 finalBearingTo: 157.8345°, 157°50′04.2″SSE\n    test 1642 finalBearingOn: 157.8345°, 157°50′04.2″SSE\n    test 1643 distanceTo: 54973.295\n    test 1644 distanceTo3: 54973.29527, 233.13008, 232.82461\n    test 1645 distanceTo2: 54903.41209, 232.9209\n    test 1646 initialBearingTo: 233.1301°, 233°07′48.28″SW\n    test 1647 destination: 37.6528°N, 143.9265°E\n    test 1648 finalBearingTo: 232.8246°, 232°49′28.59″SW\n    test 1649 finalBearingOn: 232.8246°, 232°49′28.59″SW\n    test 1650 distanceToMP: 298396.057\n    test 1651 distanceToSM: 185.415\n    test 1652 distanceToMP: 111319.491\n    test 1653 distanceToMP: 110574.389  FAILED, KNOWN, expected 110574.361\n    test 1654 distanceToKW: 222638.982\n    test 1655 distanceToKW: 111319.491\n    test 1656 distanceTo3: 54972.271\n    test 1657 distanceTo3: 306°52′05.37″\n    test 1658 distanceTo3: 307°10′25.07″\n    test 1659 distanceTo2: 54902.390\n    test 1660 distanceTo2: 307°04′38.41″\n\n    testKarneyVincentyError(pygeodesy.ellipsoidalGeodSolve, 25.08.28, datum='WGS84')\n    test 1661 distanceTo/antipodal (None): 19936288.579\n    test 1662 distanceTo/VincentyError (None): 19944127.421\n    test 1663 initialBearingTo/VincentyError (None): 15.556883\n    test 1664 finalBearingTo/VincentyError (None): 164.442514\n    test 1665 distanceTo/equatorial (None): 20003931.46\n    test 1666 initialBearingTo/equatorial (None): 0.0\n    test 1667 distanceTo/coincident (None): 111319.491\n    test 1668 distanceTo/meridional (None): 10001965.729\n    test 1669 initialBearingTo/meridional (None): 180.0\n    test 1670 distanceTo/coincident (None): 0.0\n    test 1671 initialBearingTo/coincident (None): 180.0\n    test 1672 finalBearingTo/coincident (None): 180.0\n    test 1673 destination/coincident (None): 50.06632°N, 005.71475°W\n    test 1674 distanceTo/anti-meridian (None): 10825924.1\n    test 1675 distanceTo/quadrants (None): 4015703.02\n    test 1676 distanceTo/quadrants (None): 4015703.02\n    test 1677 distanceTo/quadrants (None): 4015703.02\n    test 1678 distanceTo/quadrants (None): 4015703.02\n    test 1679 distanceTo/quadrants (None): 4015703.02\n    test 1680 distanceTo/quadrants (None): 4015703.02\n    test 1681 distanceTo/quadrants (None): 4015703.02\n    test 1682 distanceTo/quadrants (None): 4015703.02\n    test 1683 distanceTo/quadrants (None): 4015703.02\n    test 1684 distanceTo/quadrants (None): 4015703.02\n    test 1685 distanceTo/quadrants (None): 4015703.02\n    test 1686 distanceTo/quadrants (None): 4015703.02\n    test 1687 distanceTo/quadrants (None): 4015703.02\n    test 1688 distanceTo/quadrants (None): 4015703.02\n    test 1689 distanceTo/quadrants (None): 4015703.02\n    test 1690 distanceTo/quadrants (None): 4015703.02\n\n    testKarney(pygeodesy.ellipsoidalGeodSolve, 25.08.28, datum='NAD83')\n    test 1691 distanceTo: 866455.4329\n    test 1692 coincident: 0.0\n    test 1693 toDatum: OSGB36\n    test 1694 ValueError2: Ellipsoid 'Airy1830': incompatible with Ellipsoid 'GRS80'\n    test 1695 isEllipsoidal: True\n    test 1696 copy: True\n    test 1697 isEllipsoidal: True\n    test 1698 isSpherical: False\n    test 1699 copy: 37°57′03.7203″S, 144°25′29.5244″E\n\n    testKarneyVincenty(pygeodesy.ellipsoidalGeodSolve, 25.08.28, datum='NAD83')\n    test 1700 coincident: 0.0\n    test 1701 coincident: 0.0, 0.0, 0.0\n    test 1702 destination: 37.6528°S, 143.9265°E\n    test 1703 destination: True\n    test 1704 destination2: 37.652821°S, 143.926496°E, 307.1736°NW\n    test 1705 destination2: True\n    test 1706 finalBearingOn: 307.1736°, 307°10′25.07″NW\n    test 1707 distanceTo: 969954.166\n    test 1708 distanceTo3: 969954.166314, 9.141877, 11.29722\n    test 1709 distanceTo2: 972708.16174, 11.22502\n    test 1710 initialBearingTo: 9.1419°, 9°08′30.76″N\n    test 1711 destination: 58.64402°N, 003.07009°W\n    test 1712 finalBearingTo: 11.2972°, 11°17′49.99″NNE\n    test 1713 finalBearingOn: 11.2972°, 11°17′49.99″NNE\n    test 1714 distanceTo: 404607.806\n    test 1715 distanceTo3: 404607.805988, 156.11064, 157.8345\n    test 1716 distanceTo2: 402574.597287, 157.726344\n    test 1717 initialBearingTo: 156.1106°, 156°06′38.31″SSE\n    test 1718 destination: 48.857°N, 002.351°E\n    test 1719 finalBearingTo: 157.8345°, 157°50′04.2″SSE\n    test 1720 finalBearingOn: 157.8345°, 157°50′04.2″SSE\n    test 1721 distanceTo: 54973.295\n    test 1722 distanceTo3: 54973.29527, 233.13008, 232.82461\n    test 1723 distanceTo2: 54903.41209, 232.9209\n    test 1724 initialBearingTo: 233.1301°, 233°07′48.28″SW\n    test 1725 destination: 37.6528°N, 143.9265°E\n    test 1726 finalBearingTo: 232.8246°, 232°49′28.59″SW\n    test 1727 finalBearingOn: 232.8246°, 232°49′28.59″SW\n    test 1728 distanceToMP: 298396.057\n    test 1729 distanceToSM: 185.415\n    test 1730 distanceToMP: 111319.491\n    test 1731 distanceToMP: 110574.389  FAILED, KNOWN, expected 110574.361\n    test 1732 distanceToKW: 222638.982\n    test 1733 distanceToKW: 111319.491\n    test 1734 distanceTo3: 54972.271\n    test 1735 distanceTo3: 306°52′05.37″\n    test 1736 distanceTo3: 307°10′25.07″\n    test 1737 distanceTo2: 54902.390\n    test 1738 distanceTo2: 307°04′38.41″\n\n    testKarneyVincentyError(pygeodesy.ellipsoidalGeodSolve, 25.08.28, datum='NAD83')\n    test 1739 distanceTo/antipodal (None): 19936288.579\n    test 1740 distanceTo/VincentyError (None): 19944127.421\n    test 1741 initialBearingTo/VincentyError (None): 15.556883\n    test 1742 finalBearingTo/VincentyError (None): 164.442514\n    test 1743 distanceTo/equatorial (None): 20003931.46\n    test 1744 initialBearingTo/equatorial (None): 0.0\n    test 1745 distanceTo/coincident (None): 111319.491\n    test 1746 distanceTo/meridional (None): 10001965.729\n    test 1747 initialBearingTo/meridional (None): 180.0\n    test 1748 distanceTo/coincident (None): 0.0\n    test 1749 initialBearingTo/coincident (None): 180.0\n    test 1750 finalBearingTo/coincident (None): 180.0\n    test 1751 destination/coincident (None): 50.06632°N, 005.71475°W\n    test 1752 distanceTo/anti-meridian (None): 10825924.1\n    test 1753 distanceTo/quadrants (None): 4015703.02\n    test 1754 distanceTo/quadrants (None): 4015703.02\n    test 1755 distanceTo/quadrants (None): 4015703.02\n    test 1756 distanceTo/quadrants (None): 4015703.02\n    test 1757 distanceTo/quadrants (None): 4015703.02\n    test 1758 distanceTo/quadrants (None): 4015703.02\n    test 1759 distanceTo/quadrants (None): 4015703.02\n    test 1760 distanceTo/quadrants (None): 4015703.02\n    test 1761 distanceTo/quadrants (None): 4015703.02\n    test 1762 distanceTo/quadrants (None): 4015703.02\n    test 1763 distanceTo/quadrants (None): 4015703.02\n    test 1764 distanceTo/quadrants (None): 4015703.02\n    test 1765 distanceTo/quadrants (None): 4015703.02\n    test 1766 distanceTo/quadrants (None): 4015703.02\n    test 1767 distanceTo/quadrants (None): 4015703.02\n    test 1768 distanceTo/quadrants (None): 4015703.02\n\n    testKarney_s(pygeodesy.ellipsoidalGeodSolve, 25.08.28)\n    test 1769 .lat1: -41.320\n    test 1770 .lon1: 174.810\n    test 1771 .azi1: 161.067669986160\n    test 1772 .lat2: 40.960\n    test 1773 .lon2: -5.500\n    test 1774 .azi2: 18.825195123247\n    test 1775 .s12: 19959679.267353821546\n    test 1776 distanceTo3: 19959679.267354, 161.067670, 18.825195\n    test 1777 destination2: 40.96, -5.5, 18.825195123247\n    test 1778 areaOf: 1.366270368e+13\n    test 1779 perimeterOf: 1.683106789e+07\n    test 1780 isclockwise: False\n    test 1781 isclockwise: True\n    test 1782 areaCO: 2.69154549884e+11\n    test 1783 isclockwise: True\n    test 1784 perimeterCO: 2099854.381923\n\n    testEllipsoidal(pygeodesy.ellipsoidalExact, 25.08.28)\n    test 1785 isEllipsoidal: True\n    test 1786 isSpherical: False\n    test 1787 isEllipsoidal: True\n    test 1788 isSpherical: False\n    test 1789 toDatum: 51.477284°N, 000.00002°E, -45.91m\n    test 1790 toDatum: 51.4773°N, 000.0°E, -45.91m\n./test/testLatLon.py:277: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.ellipsoidalExact.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', q.cosineAndoyerLambertTo(p), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:279: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.ellipsoidalExact.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', p.cosineForsytheAndoyerLambertTo(q), '124801.098' if Sph else '125205.965', fmt='%.3f')\n./test/testLatLon.py:280: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.ellipsoidalExact.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', q.cosineForsytheAndoyerLambertTo(p), '124801.098' if Sph else '125205.965', fmt='%.3f')\n    test 1791 toDatum: 51.4778°N, 000.0016°W\n    test 1792 __matmul__: 51.477284°N, 000.00002°E, -45.91m\n    test 1793 __matmul__: 51.477284°N, 000.00002°E, -45.90m\n    test 1794 parse: 51.477284°N, 000.00002°E, -45.91m\n    test 1795 reframe: None\n    test 1796 toCartesian: [3980581.21, -111.159, 4966824.522]\n    test 1797 toCss: -111.158797 5705242.333679\n    test 1798 toCss: -111.158797 5705242.333679\n    test 1799 toEcef: 3980581.21, -111.159, 4966824.522\n    test 1800 toEtm: 30 N 916396 5720041\n    test 1801 toEtm: 30 N 916396 5720041\n    test 1802 toLcc: 5639901 4612638\n    test 1803 toLcc: 5639901 4612638\n    test 1804 toOsgr: TQ 38876 77320\n    test 1805 toOsgr: TQ 38876 77320\n    test 1806 toOsgrTM: TQ 38876 77320\n    test 1807 toUtmUps: 30 N 708207 5707224\n    test 1808 toUtm: 30 N 708207 5707224\n    test 1809 toUtm: 30 N 708207 5707224\n    test 1810 toWm: -178.111 6672799.209\n    test 1811 toWm: -178.111 6672799.209\n    test 1812 elevation2: None\n    test 1813 geoidHeight2: None\n    test 1814 toUtmUps: 30 N 708207 5707224\n    test 1815 toUtm: 30 N 708207 5707224\n    test 1816 toUtm: 30 N 708207 5707224\n    test 1817 toUtmUps: 00 N 2000000 1333272\n    test 1818 toUps: 00 N 2000000 1333272\n    test 1819 toUps: 00 N 0 -666728\n    test 1820 toUps: 00 N 2000000 1555732\n    test 1821 toUtm: 31 N 459200 9217519\n    test 1822 nearestOn: 32.81°N, 031.42°E\n    test 1823 sat: 82.219069°N, 059.719736°E, -6353120.97m\n    test 1824 dop: 51.998889°N, 004.373333°E, +134.64m\n    test 1825 distance: 3802238.5049886215  FAILED, KNOWN, expected 3802238.504989\n    test 1826 neareston8: (LatLon(45°00′00.0″N, 001°00′00.0″E), 4874369.98942, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E), 0.0, 0.0)\n    test 1827 iteration: 0\n    test 1828 neareston8: (LatLon(45°30′03.93″N, 020°00′00.0″E), 39078.779519, 1.501069, 2, LatLon(45°00′00.0″N, 020°00′00.0″E), LatLon(46°00′00.0″N, 020°00′00.0″E), 270.356041, 269.999412)\n    test 1829 iteration: 1\n    test 1830 nearestOn: 54.928536°N, 021.934843°W\n    test 1831 intersecant2: 2.789e-14% 60 LatLon(03°18′54.69″S, 023°52′08.48″E)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 1832 intersecant2: 1.394e-14% 60 LatLon(22°22′23.65″S, 007°55′54.49″E)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 1833 intersecant2: 1.255e-13% 57 LatLon(10°39′24.95″N, 034°45′48.18″W)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 1834 intersecant2: 1.673e-13% 57 LatLon(25°11′09.14″S, 005°10′35.44″W)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 1835 intersecant2: 1.394e-14% 61 LatLon(10°14′21.91″S, 021°00′17.05″E)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 1836 intersecant2: 5.577e-14% 61 LatLon(20°55′17.31″S, 010°40′21.43″E)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 1837 intersecant2: center (LatLon(05°00′00.0″N, 005°00′00.0″W)), circle (3339584), end (LatLon(15°00′00.0″N, 045°00′00.0″E)), exact (False), start (LatLon(45°00′00.0″S, 015°00′00.0″W)) or wrap (False): 'too distant (3.69e+06) plumb to (16°56′45.9″S, 020°17′02.98″E)'\n    test 1838 intersecant2: 2.092e-13% 52 LatLon(23°43′50.75″S, 014°26′25.46″W)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 1839 intersecant2: 1.394e-14% 52 LatLon(23°53′52.28″N, 019°17′39.65″E)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 1840 intersecant2: center (LatLon(05°00′00.0″N, 005°00′00.0″W)), circle (3339584), end (55.06636042948362), exact (False), start (LatLon(23°53′52.28″N, 019°17′39.65″E)) or wrap (False): 'too distant (1.74e+07) plumb to (12°59′26.07″N, 168°58′16.6″W)'\n    test 1841 intersecant2: 1.534e-13% 53 LatLon(15°03′43.48″N, 023°46′15.73″E)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 1842 intersecant2: 1.394e-13% 53 LatLon(17°23′19.49″S, 025°22′57.81″W)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 1843 intersecant2: center (LatLon(05°00′00.0″N, 005°00′00.0″W)), circle (3339584), end (223.95233608891945), exact (False), start (LatLon(17°23′19.49″S, 025°22′57.81″W)) or wrap (False): 'too distant (1.68e+07) plumb to (15°29′45.42″N, 164°13′07.19″W)'\n    test 1844 intersecant2: center (LatLon(05°00′00.0″N, 005°00′00.0″W)), circle (3339584), end (LatLon(07°42′37.6″S, 022°16′38.56″E)), exact (False), start (LatLon(01°45′35.97″N, 024°53′01.35″E)) or wrap (False): 'no convergence (2.37487e-08), tolerance (1.49012e-08) plumb to (02°58′34.34″S, 023°35′10.02″E)'\n    test 1845 intersecant2: center (LatLon(05°00′00.0″N, 005°00′00.0″W)), circle (3339584), end (96.91853747622197), exact (False), start (LatLon(01°45′35.97″N, 024°53′01.35″E)) or wrap (False): 'no convergence (131072), tolerance (1.49012e-08) plumb to (06°01′20.31″S, 004°51′02.4″W)'\n\n    testLatLon(pygeodesy.ellipsoidalExact, 25.08.28)\n    test 1846 isEllipsoidal: True\n    test 1847 isSpherical: False\n    test 1848 lat/lonDMS: 52.20472°N, 000.14056°E\n    test 1849 lat/lonDMS F_DM: 52°12.283′N, 000°08.434′E\n    test 1850 lat/lonDMS F_DM: 52°12.2832′N, 000°08.4336′E\n    test 1851 lat/lonDMS F_DMS: 52°12′17″N, 000°08′26″E\n    test 1852 lat/lonDMS F_DMS: 52°12′17.0″N, 000°08′26.0″E\n    test 1853 lat/lonDMS F_RAD: 0.911144N, 0.002453E\n    test 1854 isequalTo: True\n    test 1855 isequalTo: True\n    test 1856 latlon2: 52.20472, 0.14056\n    test 1857 latlon2: 52.2047, 0.1406\n    test 1858 latlon2: 52.205, 0.141\n    test 1859 latlon2: 52.2, 0.14\n    test 1860 latlon2: 52.2, 0.1\n    test 1861 latlon2: 52.0, 0.0\n    test 1862 chordTo: 12029263.15\n    test 1863 chordTo: 12029049.69\n    test 1864 initialBearingTo: 156.1106\n    test 1865 initialBearingTo: 65.9335\n    test 1866 initialBearingTo: 0.0\n    test 1867 initialBearingTo: 180.0\n    test 1868 finalBearingTo: 157.8345\n    test 1869 finalBearingTo: 93.9034\n    test 1870 bearingTo2: 156.1106, 157.8345\n    test 1871 ispolar: True\n    test 1872 copy: True\n    test 1873 __eq__: True\n    test 1874 __ne__: False\n    test 1875 equirectangularTo: 404329.56\n    test 1876 distanceTo: 404607.805988\n    test 1877 distanceTo: 404607.805988\n    test 1878 distanceTo: 3981601\n    test 1879 antipodal: False\n    test 1880 distanceTo dateline: 19959679.267\n    test 1881 distanceTo unrolled: 19959679.267\n    test 1882 antipodal: False\n    test 1883 distanceTo dateline: 9513998\n    test 1884 distanceTo unrolled: 9513998\n    test 1885 distanceTo: 18012714.66\n    test 1886 distanceTo: 20003931.46\n    test 1887 distanceTo3 dateline: 19959679.2674, 161.0677, 18.8252\n    test 1888 distanceTo3 dateline: 9513997.9901, 42.9164, 138.8903\n    test 1889 distanceTo3 dateline: 19959679.2674, 161.0677, 18.8252\n    test 1890 distanceTo3 dateline: 9513997.9901, 42.9164, 138.8903\n    test 1891 intermediateTo: 51.372275°N, 000.707253°E\n    test 1892 intermediateTo: True\n    test 1893 intermediateTo: 404607.806\n    test 1894 intermediateTo+5: 35.139582°N, 008.994368°E\n    test 1895 intermediateTo+5: 5.000\n    test 1896 intermediateTo-4: 64.894124°N, 013.705689°W\n    test 1897 intermediateTo-4: 4.000\n    test 1898 intermediateTo-h: 125.000\n    test 1899 midpointTo: 50.536583°N, 001.274507°E\n    test 1900 destination: 51.513526°N, 000.098038°W\n    test 1901 destination: 51°30′49″N, 000°05′53″W\n    test 1902 destination: 33°57′N, 118°24′W\n    test 1903 destination: 33.950367°N, 118.399012°W\n    test 1904 destination: 0.592546N, 2.066453W\n    test 1905 destination: 32.11195529°N, 064.56074722°E  FAILED, KNOWN, expected 32.11195529°N, 063.95925278°E\n    test 1906 neareston6: (LatLon(45°00′00.0″N, 001°00′00.0″E), 4755443.4294, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E))\n    test 1907 neareston6: (LatLon(45°30′03.94″N, 002°00′00.0″E), 39078.729285, 1.501072, 2, LatLon(45°00′00.0″N, 002°00′00.0″E), LatLon(46°00′00.0″N, 002°00′00.0″E))\n    test 1908 chordTo: 125203.963\n    test 1909 cosineAndoyerLambertTo: 125205.962\n    test 1910 cosineAndoyerLambertTo: 125205.962\n    test 1911 cosineForsyheAndoyerLambertTo: 125205.965\n    test 1912 cosineForsyheAndoyerLambertTo: 125205.965\n    test 1913 cosineLawTo: 124801.098\n    test 1914 cosineLawTo: 124801.098\n    test 1915 equirectangularTo: 124804.754\n    test 1916 equirectangularTo: 124804.754\n    test 1917 euclideanTo: 130015.089\n    test 1918 euclideanTo: 130015.089\n    test 1919 flatLocalTo: 125209.633\n    test 1920 flatLocalTo: 125209.633\n    test 1921 flatPolarTo: 133663.257\n    test 1922 flatPolarTo: 133663.257\n    test 1923 hartzell: 53.3206°N, 001.7297°W\n    test 1924 hartzell: 53.349541°N, 001.7297°W\n    test 1925 height4: 0.0\n    test 1926 height4: (3820333.9, -115367.0, 5097204.4, -6584.9)\n    test 1927 height4: 53°19′14.2″N, 001°43′46.9″W\n    test 1928 height4: 53°19′14.2″N, 001°43′46.9″W\n    test 1929 haversineTo: 124801.098\n    test 1930 haversineTo: 124801.098\n    test 1931 hubenyTo: <bound method LatLonBase.flatLocalTo of LatLon(53°19′14.16″N, 001°43′46.92″W)>\n    test 1932 hubenyTo: <bound method LatLonBase.flatLocalTo of LatLon(53°11′19.32″N, 000°08′00.24″E)>\n    test 1933 thomasTo: 125206.188\n    test 1934 thomasTo: 125206.188\n    test 1935 vincentysTo: 124801.098\n    test 1936 vincentysTo: 124801.098\n    test 1937 isclockwise: False\n    test 1938 isclockwise*: False\n    test 1939 isclockwise: True\n    test 1940 isclockwise*: True\n    test 1941 isclockwise: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 1942 isclockwise*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 1943 isclockwise: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 1944 isclockwise*: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 1945 isconvex: False\n    test 1946 isconvex*: False\n    test 1947 isconvex: True\n    test 1948 isconvex*: True\n    test 1949 isconvex: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 1950 isconvex*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 1951 isenclosedBy1: True\n    test 1952 isenclosedBy1*: True\n    test 1953 isenclosedBy2: False\n    test 1954 isenclosedBy2*: False\n    test 1955 isenclosedBy3: False\n    test 1956 isenclosedBy3*: False\n    test 1957 isenclosedBy4: False\n    test 1958 isenclosedBy4*: False\n    test 1959 isenclosedBy5: False\n    test 1960 isenclosedBy5*: False\n    test 1961 isenclosedBy6: True\n    test 1962 isenclosedBy6*: True\n    test 1963 isenclosedBy7: True\n    test 1964 isenclosedBy7*: True\n    test 1965 isenclosedBy-CCW: True\n    test 1966 isenclosedBy-CW : True\n    test 1967 isenclosedBy-CCW: True\n    test 1968 initialBearingTo: 102.392291\n    test 1969 compassAngleTo: 100.017\n    test 1970 compassAngleTo: 105.599\n    test 1971 initialBearingTo: 288.676039\n    test 1972 compassAngleTo: 280.017\n    test 1973 compassAngleTo: 285.599\n    test 1974 equirectangularTo: 592.185\n    test 1975 distanceTo: 593.571\n    test 1976 bearingTo: 0.0\n    test 1977 compassAngleTo: 0.0\n    test 1978 bearingTo: 45.2  FAILED, KNOWN, expected 45.0\n    test 1979 compassAngleTo: 45.0\n    test 1980 bearingTo: 90.0\n    test 1981 compassAngleTo: 90.0\n    test 1982 bearingTo: 180.0\n    test 1983 compassAngleTo: 180.0\n    test 1984 bearingTo: 225.2  FAILED, KNOWN, expected 225.0\n    test 1985 compassAngleTo: 225.0\n    test 1986 bearingTo: 314.8  FAILED, KNOWN, expected 315.0\n    test 1987 compassAngleTo: 315.0\n    test 1988 bearingTo: 270.0\n    test 1989 compassAngleTo: 270.0\n    test 1990 bearingTo: 0.0  FAILED, KNOWN, expected 359.4\n    test 1991 compassAngleTo: 359.4\n    test 1992 latlon2: (53.0, 1.0)\n    test 1993 philam2: (0.93, 0.02)\n    test 1994 bearingTo: 31\n    test 1995 compassAngleTo: 31\n    test 1996 compassAngleTo: 45\n\n    test 1997 boundsOf: <class 'pygeodesy.namedTuples.Bounds2Tuple'>\n    test 1998 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 1999 latlon2: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 2000 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 2001 isequalTo: <class 'bool'>\n    test 2002 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 2003 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 2004 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 2005 xyz3: <class 'tuple'>\n    test 2006 xyzh: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 2007 compassAngleTo: <class 'float'>\n    test 2008 cosineLawTo: <class 'float'>\n    test 2009 euclideanTo: <class 'float'>\n    test 2010 flatLocalTo: <class 'float'>\n    test 2011 flatPolarTo: <class 'float'>\n    test 2012 haversineTo: <class 'float'>\n    test 2013 hubenyTo: <class 'float'>\n    test 2014 vincentysTo: <class 'float'>\n    test 2015 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 2016 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 2017 toLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 2018 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 2019 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 2020 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 2021 toNvector: (0.615661, 0.0, 0.788011, 0)\n    test 2022 toVector: (3934960.466675, 0.0, 5002803.345483)\n    test 2023 toVector3d: (0.61823, 0.0, 0.786)\n\n    test 2024 trilaterate5 (pygeodesy.ellipsoidalExact) .min: 305.091\n    test 2025 trilaterate5 (pygeodesy.ellipsoidalExact) .point: 42.66933643°N, 002.48620262°E\n    test 2026 trilaterate5 (pygeodesy.ellipsoidalExact) .max: 1592.545\n    test 2027 trilaterate5 (pygeodesy.ellipsoidalExact) .point: 42.65141232°N, 002.46816989°E\n    test 2028 trilaterate5 (pygeodesy.ellipsoidalExact) .n: 3\n    test 2029 trilaterate5 (pygeodesy.ellipsoidalExact) .min: 127.229\n    test 2030 trilaterate5 (pygeodesy.ellipsoidalExact) .max: 152.612\n    test 2031 trilaterate5 (pygeodesy.ellipsoidalExact) .point: 42.67815375°N, 002.49950041°E\n    test 2032 trilaterate5 (pygeodesy.ellipsoidalExact) .n: 2\n    test 2033 trilaterate5 (pygeodesy.ellipsoidalExact) .min: 2400.293\n    test 2034 trilaterate5 (pygeodesy.ellipsoidalExact) .max: 2400.293\n    test 2035 trilaterate5 (pygeodesy.ellipsoidalExact) .point: 42.66128984°N, 002.47973818°E\n    test 2036 trilaterate5 (pygeodesy.ellipsoidalExact) .min- is .maxPoint: True\n    test 2037 trilaterate5 (pygeodesy.ellipsoidalExact) .n: 1\n    test 2038 trilaterate5 (pygeodesy.ellipsoidalExact) .min: 1343.743\n    test 2039 trilaterate5 (pygeodesy.ellipsoidalExact) .point: 42.69131964°N, 002.50112167°E\n    test 2040 trilaterate5 (pygeodesy.ellipsoidalExact) .max: 1445.554\n    test 2041 trilaterate5 (pygeodesy.ellipsoidalExact) .point: 42.67815375°N, 002.49950041°E\n    test 2042 trilaterate5 (pygeodesy.ellipsoidalExact) .n: 2\n    test 2043 radii11: Radii11Tuple(rA=7244.792747, rB=1828.106695, rC=2.25502, cR=57792.067128, rIn=57.366968, riS=2.087668, roS=2.443334, a=1830.361715, b=7247.047766, c=9072.899442, s=9075.154461)\n    test 2044 circum3 (pygeodesy.ellipsoidalExact) .radius: 57792.067\n    test 2045 circum3 (pygeodesy.ellipsoidalExact) .center: 43.053532°N, 002.943255°E, -261.66m\n    test 2046 circum3 (pygeodesy.ellipsoidalExact) .deltas: (-0.0, 0.0, 9.827)  FAILED, KNOWN, expected (0.0, 0.0, 11.383)\n    test 2047 circum3 (pygeodesy.ellipsoidalExact) .d1: 57792.858\n    test 2048 circum3 (pygeodesy.ellipsoidalExact) .d2: 57792.859\n    test 2049 circum3 (pygeodesy.ellipsoidalExact) .d3: 57792.859\n    test 2050 circum3 (pygeodesy.ellipsoidalExact) .datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 2051 circum3 (pygeodesy.ellipsoidalExact) .Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n\n    test 2052 radii11: Radii11Tuple(rA=7244.792747, rB=1828.106695, rC=2.25502, cR=57792.067128, rIn=57.366968, riS=2.087668, roS=2.443334, a=1830.361715, b=7247.047766, c=9072.899442, s=9075.154461)\n    test 2053 circum4 (pygeodesy.ellipsoidalExact) .radius: 3184256.748\n    test 2054 circum4 (pygeodesy.ellipsoidalExact) .center: 43.054367°N, 002.942573°E, -3183993.92m\n    test 2055 circum4 (pygeodesy.ellipsoidalExact) .rank: 3\n    test 2056 circum4 (pygeodesy.ellipsoidalExact) .residuals: ()\n    test 2057 circum4 (pygeodesy.ellipsoidalExact) .d1: 57818.033\n    test 2058 circum4 (pygeodesy.ellipsoidalExact) .d2: 57834.176\n    test 2059 circum4 (pygeodesy.ellipsoidalExact) .d3: 57830.992\n    test 2060 circum4 (pygeodesy.ellipsoidalExact) .datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 2061 circum4 (pygeodesy.ellipsoidalExact) .Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 2062 radii11: Radii11Tuple(rA=327537.482637, rB=776914.262482, rC=784245.052526, cR=780602.180901, rIn=325058.721103, riS=84975.664195, roS=INF, a=1561159.315008, b=1111782.535163, c=1104451.745119, s=1888696.797645)\n    test 2063 circin6 (pygeodesy.ellipsoidalExact) .rB+rC: 1561159.315\n    test 2064 circin6 (pygeodesy.ellipsoidalExact) .rC+pA: 1111782.535\n    test 2065 circin6 (pygeodesy.ellipsoidalExact) .rA+rB: 1104451.745\n    test 2066 circin6 (pygeodesy.ellipsoidalExact) .radius: 325058.721\n    test 2067 circin6 (pygeodesy.ellipsoidalExact) .center: 02.948531°N, 002.932537°E, -40041.19m\n    test 2068 circin6 (pygeodesy.ellipsoidalExact) .deltas: (0.0, 0.0, 0.224326)  FAILED, KNOWN, expected (0.0, 0.0, 0.090491)\n    test 2069 circin6 (pygeodesy.ellipsoidalExact) .cA: 05.04314°N, 005.014578°E, -48104.09m\n    test 2070 circin6 (pygeodesy.ellipsoidalExact) .cB: 00.0°N, 002.941713°E, -20168.62m\n    test 2071 circin6 (pygeodesy.ellipsoidalExact) .cC: 02.961566°N, 000.0°E, -20113.46m\n    test 2072 circin6 (pygeodesy.ellipsoidalExact) .dA: 327263.596\n    test 2073 circin6 (pygeodesy.ellipsoidalExact) .dB: 326036.153\n    test 2074 circin6 (pygeodesy.ellipsoidalExact) .dC: 326020.432\n\n    test 2075 area cw/ccw: 1.0\n\n    testNOAA(pygeodesy.ellipsoidalExact, 25.08.28)\n    test 2076 NOAAexample1: 191872.1190, 249 03 16.4237, 67 59 11.1619\n    test 2077 NOAAexample2: 182009.1679, 254 42 44.6439, 73 09 21.3315\n    test 2078 NOAAexample3: 123456.7891, 245 00 34.7001, 64 20 24.6864\n    test 2079 NOAAexample4: 145239.0603, 114 29 26.9586, 295 21 32.6566\n\n    testIntersection3(pygeodesy.ellipsoidalExact, 25.08.28)\n    test 2080 (30, 17): (LatLon(30°52′03.1″N, 015°30′38.41″E), 0, 0)\n    test 2081 (30, 17): (LatLon(30°52′03.1″N, 015°30′38.41″E), -1, 0)\n    test 2082 (-1,  3): (LatLon(01°34′52.49″N, 006°00′51.83″E), -1, -2)\n    test 2083 (-1,  3): (LatLon(01°34′52.49″N, 006°00′51.83″E), -1, 2)\n    test 2084 (65, 32): (LatLon(56°58′26.51″N, 032°00′00.0″E), 1, 0)\n    test 2085 (65, 32): (LatLon(56°58′26.51″N, 032°00′00.0″E), 1, 2)\n    test 2086 (-2, 17): <class 'pygeodesy.errors.IntersectionError'>\n    test 2087 (49, 25): (LatLon(49°00′00.0″N, 025°00′00.0″E), 0, -2)  FAILED, KNOWN, expected (LatLon(49°00′00.0″N, 025°00′00.0″E), 0, 0)\n    test 2088 #58: (LatLon(01°54′25.65″S, 005°37′48.76″E), 1, -2)\n    test 2089 #58: <class 'pygeodesy.errors.IntersectionError'>\n    test 2090 intersection3: (LatLon(54°43′01.31″N, 014°33′49.88″W), 0, 0)\n    test 2091 intersection3: 54.71703°N, 014.563856°W\n\n    testIntersections2(pygeodesy.ellipsoidalExact, 25.08.28)\n    test 2092 EquidistantExact: 36.9879°N, 088.1564°W, 38.2441°N, 092.3835°W\n    test 2093 EquidistantExact: 36.9879°N, 088.1564°W, 38.2441°N, 092.3835°W\n    test 2094 EquidistantExact: 00.0°N, 035.3478°W, 00.0°N, 035.3478°E  FAILED, KNOWN, expected 00.0°N, 035.3478°W, 00.0°S, 035.3478°E\n    test 2095 EquidistantExact: 1.63715 (% of radius)\n    test 2096 EquidistantExact: 22.657°N, 000.0°W, 22.657°S, 000.0°E  FAILED, KNOWN, expected 22.657°N, 000.0°E, 22.657°S, 000.0°E\n    test 2097 EquidistantExact: 1.30663 (% of radius)\n    test 2098 EquidistantExact: 29.4898°N, 040.1785°W, 29.4898°S, 040.1785°E\n    test 2099 EquidistantExact: 1.31396 (% of radius)\n    test 2100 EquidistantExact: 02.7402°S, 044.885°E, 02.7402°N, 044.885°E\n    test 2101 EquidistantExact: 1.83268 (% of radius)\n    test 2102 EquidistantExact 5: 05.0558°S, 005.0271°W, 05.0558°N, 005.0271°E\n    test 2103 EquidistantExact 5: 4.18779e-16 (% of radius)\n    test 2104 EquidistantExact 10: 10.1081°S, 010.2901°W, 10.1081°N, 010.2901°E\n    test 2105 EquidistantExact 10: 4.18779e-16 (% of radius)\n    test 2106 EquidistantExact: 11.869487°S, 017.244575°W Random +/- 45\n    test 2107 EquidistantExact: 11.869487°S, 017.244575°W, 11.293167°N, 040.204052°W  d 2.21801e-09 meter (iteration 3)\n    test 2108 EquidistantExact: 11.869487°S, 017.244575°W, 14.530994°S, 076.555039°E  d 2.74109e-09 meter (iteration 3)\n\n    testKarney(pygeodesy.ellipsoidalExact, 25.08.28, datum='WGS84')\n    test 2109 distanceTo: 866455.4329\n    test 2110 coincident: 0.0\n    test 2111 toDatum: OSGB36\n    test 2112 ValueError2: Ellipsoid 'Airy1830': incompatible with Ellipsoid 'WGS84'\n    test 2113 isEllipsoidal: True\n    test 2114 copy: True\n    test 2115 isEllipsoidal: True\n    test 2116 isSpherical: False\n    test 2117 copy: 37°57′03.7203″S, 144°25′29.5244″E\n\n    testKarneyVincenty(pygeodesy.ellipsoidalExact, 25.08.28, datum='WGS84')\n    test 2118 coincident: 0.0\n    test 2119 coincident: 0.0, 0.0, 0.0\n    test 2120 destination: 37.6528°S, 143.9265°E\n    test 2121 destination: True\n    test 2122 destination2: 37.652821°S, 143.926496°E, 307.1736°NW\n    test 2123 destination2: True\n    test 2124 finalBearingOn: 307.1736°, 307°10′25.07″NW\n    test 2125 distanceTo: 969954.166\n    test 2126 distanceTo3: 969954.166314, 9.141877, 11.29722\n    test 2127 distanceTo2: 972708.16174, 11.22502\n    test 2128 initialBearingTo: 9.1419°, 9°08′30.76″N\n    test 2129 destination: 58.64402°N, 003.07009°W\n    test 2130 finalBearingTo: 11.2972°, 11°17′49.99″NNE\n    test 2131 finalBearingOn: 11.2972°, 11°17′49.99″NNE\n    test 2132 distanceTo: 404607.806\n    test 2133 distanceTo3: 404607.805988, 156.11064, 157.8345\n    test 2134 distanceTo2: 402574.597287, 157.726344\n    test 2135 initialBearingTo: 156.1106°, 156°06′38.31″SSE\n    test 2136 destination: 48.857°N, 002.351°E\n    test 2137 finalBearingTo: 157.8345°, 157°50′04.2″SSE\n    test 2138 finalBearingOn: 157.8345°, 157°50′04.2″SSE\n    test 2139 distanceTo: 54973.295\n    test 2140 distanceTo3: 54973.29527, 233.13008, 232.82461\n    test 2141 distanceTo2: 54903.41209, 232.9209\n    test 2142 initialBearingTo: 233.1301°, 233°07′48.28″SW\n    test 2143 destination: 37.6528°N, 143.9265°E\n    test 2144 finalBearingTo: 232.8246°, 232°49′28.59″SW\n    test 2145 finalBearingOn: 232.8246°, 232°49′28.59″SW\n    test 2146 distanceToMP: 298396.057\n    test 2147 distanceToSM: 185.415\n    test 2148 distanceToMP: 111319.491\n    test 2149 distanceToMP: 110574.389  FAILED, KNOWN, expected 110574.361\n    test 2150 distanceToKW: 222638.982\n    test 2151 distanceToKW: 111319.491\n    test 2152 distanceTo3: 54972.271\n    test 2153 distanceTo3: 306°52′05.37″\n    test 2154 distanceTo3: 307°10′25.07″\n    test 2155 distanceTo2: 54902.390\n    test 2156 distanceTo2: 307°04′38.41″\n\n    testKarneyVincentyError(pygeodesy.ellipsoidalExact, 25.08.28, datum='WGS84')\n    test 2157 distanceTo/antipodal (None): 19936288.579\n    test 2158 distanceTo/VincentyError (None): 19944127.421\n    test 2159 initialBearingTo/VincentyError (None): 15.556883\n    test 2160 finalBearingTo/VincentyError (None): 164.442514\n    test 2161 distanceTo/equatorial (None): 20001517.12  FAILED, KNOWN, expected 20003931.46\n    test 2162 initialBearingTo/equatorial (None): 0.0\n    test 2163 distanceTo/coincident (None): 111319.491\n    test 2164 distanceTo/meridional (None): 9999551.606\n    test 2165 initialBearingTo/meridional (None): 180.0\n    test 2166 distanceTo/coincident (None): 0.0\n    test 2167 initialBearingTo/coincident (None): 180.0\n    test 2168 finalBearingTo/coincident (None): 180.0\n    test 2169 destination/coincident (None): 50.06632°N, 005.71475°W\n    test 2170 distanceTo/anti-meridian (None): 10825924.1\n    test 2171 distanceTo/quadrants (None): 4015703.02\n    test 2172 distanceTo/quadrants (None): 4015703.02\n    test 2173 distanceTo/quadrants (None): 4015703.02\n    test 2174 distanceTo/quadrants (None): 4015703.02\n    test 2175 distanceTo/quadrants (None): 4015703.02\n    test 2176 distanceTo/quadrants (None): 4015703.02\n    test 2177 distanceTo/quadrants (None): 4015703.02\n    test 2178 distanceTo/quadrants (None): 4015703.02\n    test 2179 distanceTo/quadrants (None): 4015703.02\n    test 2180 distanceTo/quadrants (None): 4015703.02\n    test 2181 distanceTo/quadrants (None): 4015703.02\n    test 2182 distanceTo/quadrants (None): 4015703.02\n    test 2183 distanceTo/quadrants (None): 4015703.02\n    test 2184 distanceTo/quadrants (None): 4015703.02\n    test 2185 distanceTo/quadrants (None): 4015703.02\n    test 2186 distanceTo/quadrants (None): 4015703.02\n\n    testKarney(pygeodesy.ellipsoidalExact, 25.08.28, datum='NAD83')\n    test 2187 distanceTo: 866455.4329\n    test 2188 coincident: 0.0\n    test 2189 toDatum: OSGB36\n    test 2190 ValueError2: Ellipsoid 'Airy1830': incompatible with Ellipsoid 'GRS80'\n    test 2191 isEllipsoidal: True\n    test 2192 copy: True\n    test 2193 isEllipsoidal: True\n    test 2194 isSpherical: False\n    test 2195 copy: 37°57′03.7203″S, 144°25′29.5244″E\n\n    testKarneyVincenty(pygeodesy.ellipsoidalExact, 25.08.28, datum='NAD83')\n    test 2196 coincident: 0.0\n    test 2197 coincident: 0.0, 0.0, 0.0\n    test 2198 destination: 37.6528°S, 143.9265°E\n    test 2199 destination: True\n    test 2200 destination2: 37.652821°S, 143.926496°E, 307.1736°NW\n    test 2201 destination2: True\n    test 2202 finalBearingOn: 307.1736°, 307°10′25.07″NW\n    test 2203 distanceTo: 969954.166\n    test 2204 distanceTo3: 969954.166314, 9.141877, 11.29722\n    test 2205 distanceTo2: 972708.16174, 11.22502\n    test 2206 initialBearingTo: 9.1419°, 9°08′30.76″N\n    test 2207 destination: 58.64402°N, 003.07009°W\n    test 2208 finalBearingTo: 11.2972°, 11°17′49.99″NNE\n    test 2209 finalBearingOn: 11.2972°, 11°17′49.99″NNE\n    test 2210 distanceTo: 404607.806\n    test 2211 distanceTo3: 404607.805988, 156.11064, 157.8345\n    test 2212 distanceTo2: 402574.597287, 157.726344\n    test 2213 initialBearingTo: 156.1106°, 156°06′38.31″SSE\n    test 2214 destination: 48.857°N, 002.351°E\n    test 2215 finalBearingTo: 157.8345°, 157°50′04.2″SSE\n    test 2216 finalBearingOn: 157.8345°, 157°50′04.2″SSE\n    test 2217 distanceTo: 54973.295\n    test 2218 distanceTo3: 54973.29527, 233.13008, 232.82461\n    test 2219 distanceTo2: 54903.41209, 232.9209\n    test 2220 initialBearingTo: 233.1301°, 233°07′48.28″SW\n    test 2221 destination: 37.6528°N, 143.9265°E\n    test 2222 finalBearingTo: 232.8246°, 232°49′28.59″SW\n    test 2223 finalBearingOn: 232.8246°, 232°49′28.59″SW\n    test 2224 distanceToMP: 298396.057\n    test 2225 distanceToSM: 185.415\n    test 2226 distanceToMP: 111319.491\n    test 2227 distanceToMP: 110574.389  FAILED, KNOWN, expected 110574.361\n    test 2228 distanceToKW: 222638.982\n    test 2229 distanceToKW: 111319.491\n    test 2230 distanceTo3: 54972.271\n    test 2231 distanceTo3: 306°52′05.37″\n    test 2232 distanceTo3: 307°10′25.07″\n    test 2233 distanceTo2: 54902.390\n    test 2234 distanceTo2: 307°04′38.41″\n\n    testKarneyVincentyError(pygeodesy.ellipsoidalExact, 25.08.28, datum='NAD83')\n    test 2235 distanceTo/antipodal (None): 19936288.579\n    test 2236 distanceTo/VincentyError (None): 19944127.421\n    test 2237 initialBearingTo/VincentyError (None): 15.556883\n    test 2238 finalBearingTo/VincentyError (None): 164.442514\n    test 2239 distanceTo/equatorial (None): 20001517.12  FAILED, KNOWN, expected 20003931.46\n    test 2240 initialBearingTo/equatorial (None): 0.0\n    test 2241 distanceTo/coincident (None): 111319.491\n    test 2242 distanceTo/meridional (None): 9999551.606\n    test 2243 initialBearingTo/meridional (None): 180.0\n    test 2244 distanceTo/coincident (None): 0.0\n    test 2245 initialBearingTo/coincident (None): 180.0\n    test 2246 finalBearingTo/coincident (None): 180.0\n    test 2247 destination/coincident (None): 50.06632°N, 005.71475°W\n    test 2248 distanceTo/anti-meridian (None): 10825924.1\n    test 2249 distanceTo/quadrants (None): 4015703.02\n    test 2250 distanceTo/quadrants (None): 4015703.02\n    test 2251 distanceTo/quadrants (None): 4015703.02\n    test 2252 distanceTo/quadrants (None): 4015703.02\n    test 2253 distanceTo/quadrants (None): 4015703.02\n    test 2254 distanceTo/quadrants (None): 4015703.02\n    test 2255 distanceTo/quadrants (None): 4015703.02\n    test 2256 distanceTo/quadrants (None): 4015703.02\n    test 2257 distanceTo/quadrants (None): 4015703.02\n    test 2258 distanceTo/quadrants (None): 4015703.02\n    test 2259 distanceTo/quadrants (None): 4015703.02\n    test 2260 distanceTo/quadrants (None): 4015703.02\n    test 2261 distanceTo/quadrants (None): 4015703.02\n    test 2262 distanceTo/quadrants (None): 4015703.02\n    test 2263 distanceTo/quadrants (None): 4015703.02\n    test 2264 distanceTo/quadrants (None): 4015703.02\n\n    testKarney_s(pygeodesy.ellipsoidalExact, 25.08.28)\n    test 2265 .lat1: -41.320\n    test 2266 .lon1: 174.810\n    test 2267 .azi1: 161.067669986160\n    test 2268 .lat2: 40.960\n    test 2269 .lon2: -5.500\n    test 2270 .azi2: 18.825195123247\n    test 2271 .s12: 19959679.267353817821  FAILED, KNOWN, expected 19959679.267353821546\n    test 2272 distanceTo3: 19959679.267354, 161.067670, 18.825195\n    test 2273 destination2: 40.96, -5.5, 18.825195123247\n    test 2274 areaOf: 1.366270368e+13\n    test 2275 perimeterOf: 1.683089136e+07\n    test 2276 isclockwise: False\n    test 2277 isclockwise: True\n    test 2278 areaCO: 2.69154549884e+11\n    test 2279 isclockwise: True\n    test 2280 perimeterCO: 2099102.485159  FAILED, KNOWN, expected 2098430.887891\n\n    914 of 2280 testEllipsoidal.py tests (40.1%) FAILED, incl. 141 KNOWN plus 773 DeprecationWarnings, 64 skipped (pygeodesy 26.3.26 Python 3.13.12 64bit arm64 coverage 7.10.7 geographiclib 2.1 numpy 2.3.3 scipy 1.16.2 Math 2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 macOS 26.3.1 isLazy 1 -W  default) 8:12.227\nrunning /Library/Framewo....n3.13 -W default ~/PyGeodesy/test/testEllipsoidalGeodTest.py\n./pygeodesy/ellipsoidalKarney.py:94: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return self.datum.ellipsoid.geodesic\n\n    testing testEllipsoidalGeodTest.py 23.12.18 (module pygeodesy.ellipsoidalKarney 25.05.27) isLazy=1\n    test 1 line 1 lat: -48.164271\n    test 2 line 1 lon: 5.762345\n    test 3 line 1 fb: 175.334308\n    test 4 line 1 lat2: -48.164270779098\n    test 5 line 1 lon2: 5.762344694676  FAILED, KNOWN, expected 5.762344694677\n    test 6 line 1 azi2: 175.334308316285\n    test 7 line 1 lat2: -48.164270779098\n    test 8 line 1 lon2: 5.762344694676  FAILED, KNOWN, expected 5.762344694677\n    test 9 line 1 azi2: 175.334308316285\n    test 10 line 2 lat: -23.186513\n    test 11 line 2 lon: 68.567247\n    test 12 line 2 fb: 154.287114\n    test 13 line 2 lat2: -23.186512533703\n    test 14 line 2 lon2: 68.567247430960\n    test 15 line 2 azi2: 154.287114123872\n    test 16 line 2 lat2: -23.186512533703\n    test 17 line 2 lon2: 68.567247430960\n    test 18 line 2 azi2: 154.287114123872\n    test 19 line 3 lat: 53.997072\n    test 20 line 3 lon: 44.520619\n    test 21 line 3 fb: 52.159487\n    test 22 line 3 lat2: 53.997072295385\n    test 23 line 3 lon2: 44.520619105668\n    test 24 line 3 azi2: 52.159486739948\n    test 25 line 3 lat2: 53.997072295385\n    test 26 line 3 lon2: 44.520619105668\n    test 27 line 3 azi2: 52.159486739948\n    test 28 line 4 lat: -49.416672\n    test 29 line 4 lon: 166.828083\n    test 30 line 4 fb: 22.033031\n    test 31 line 4 lat2: -49.416672064706\n    test 32 line 4 lon2: 166.828083210689\n    test 33 line 4 azi2: 22.033030848249\n    test 34 line 4 lat2: -49.416672064706\n    test 35 line 4 lon2: 166.828083210689\n    test 36 line 4 azi2: 22.033030848249\n    test 37 line 5 lat: -60.405136\n    test 38 line 5 lon: 110.581140\n    test 39 line 5 fb: 75.518296\n    test 40 line 5 lat2: -60.405136414530\n    test 41 line 5 lon2: 110.581139538777\n    test 42 line 5 azi2: 75.518295964649\n    test 43 line 5 lat2: -60.405136414530\n    test 44 line 5 lon2: 110.581139538777\n    test 45 line 5 azi2: 75.518295964649\n    test 46 line 6 lat: -11.212600\n    test 47 line 6 lon: 144.177077\n    test 48 line 6 fb: 133.027766\n    test 49 line 6 lat2: -11.212600121556\n    test 50 line 6 lon2: 144.177076511360\n    test 51 line 6 azi2: 133.027766301029\n    test 52 line 6 lat2: -11.212600121556\n    test 53 line 6 lon2: 144.177076511360\n    test 54 line 6 azi2: 133.027766301029\n    test 55 line 7 lat: -6.529067\n    test 56 line 7 lon: 2.895924\n    test 57 line 7 fb: 178.740350\n    test 58 line 7 lat2: -6.529066987956\n    test 59 line 7 lon2: 2.895923948125\n    test 60 line 7 azi2: 178.740350145954\n    test 61 line 7 lat2: -6.529066987956\n    test 62 line 7 lon2: 2.895923948125\n    test 63 line 7 azi2: 178.740350145954\n    test 64 line 8 lat: -8.855512\n    test 65 line 8 lon: 112.749196\n    test 66 line 8 fb: 119.512004\n    test 67 line 8 lat2: -8.855512357257\n    test 68 line 8 lon2: 112.749196494485\n    test 69 line 8 azi2: 119.512003891282\n    test 70 line 8 lat2: -8.855512357257\n    test 71 line 8 lon2: 112.749196494485\n    test 72 line 8 azi2: 119.512003891282\n    test 73 line 9 lat: 29.866967\n    test 74 line 9 lon: 171.726893\n    test 75 line 9 fb: 171.662245\n    test 76 line 9 lat2: 29.866967483293\n    test 77 line 9 lon2: 171.726892560963\n    test 78 line 9 azi2: 171.662244609397\n    test 79 line 9 lat2: 29.866967483293\n    test 80 line 9 lon2: 171.726892560963\n    test 81 line 9 azi2: 171.662244609397\n    test 82 line 10 lat: -29.238404\n    test 83 line 10 lon: 133.459814\n    test 84 line 10 fb: 69.814124\n    test 85 line 10 lat2: -29.238404337998\n    test 86 line 10 lon2: 133.459813533284\n    test 87 line 10 azi2: 69.814124320813\n    test 88 line 10 lat2: -29.238404337998\n    test 89 line 10 lon2: 133.459813533284\n    test 90 line 10 azi2: 69.814124320813\n    test 91 line 11 lat: 55.600487\n    test 92 line 11 lon: 75.128743\n    test 93 line 11 fb: 153.896689\n    test 94 line 11 lat2: 55.600487151983\n    test 95 line 11 lon2: 75.128743229496  FAILED, KNOWN, expected 75.128743229495\n    test 96 line 11 azi2: 153.896688535572\n    test 97 line 11 lat2: 55.600487151983\n    test 98 line 11 lon2: 75.128743229496  FAILED, KNOWN, expected 75.128743229495\n    test 99 line 11 azi2: 153.896688535572\n    test 100 line 12 lat: -22.858435\n    test 101 line 12 lon: 67.207513\n    test 102 line 12 fb: 142.939529\n    test 103 line 12 lat2: -22.858434825399\n    test 104 line 12 lon2: 67.207513019332\n    test 105 line 12 azi2: 142.939529056687\n    test 106 line 12 lat2: -22.858434825399\n    test 107 line 12 lon2: 67.207513019332\n    test 108 line 12 azi2: 142.939529056687\n    test 109 line 13 lat: -32.634475\n    test 110 line 13 lon: 22.238523\n    test 111 line 13 fb: 172.112993\n    test 112 line 13 lat2: -32.634475461067\n    test 113 line 13 lon2: 22.238523021935\n    test 114 line 13 azi2: 172.112992582333\n    test 115 line 13 lat2: -32.634475461067\n    test 116 line 13 lon2: 22.238523021935\n    test 117 line 13 azi2: 172.112992582333\n    test 118 line 14 lat: 62.224985\n    test 119 line 14 lon: 47.119133\n    test 120 line 14 fb: 54.318105\n    test 121 line 14 lat2: 62.224984867045\n    test 122 line 14 lon2: 47.119133304525\n    test 123 line 14 azi2: 54.318105291965\n    test 124 line 14 lat2: 62.224984867045\n    test 125 line 14 lon2: 47.119133304525\n    test 126 line 14 azi2: 54.318105291965\n    test 127 line 15 lat: 33.069613\n    test 128 line 15 lon: 5.796996\n    test 129 line 15 fb: 17.403845\n    test 130 line 15 lat2: 33.069613195450\n    test 131 line 15 lon2: 5.796995960186\n    test 132 line 15 azi2: 17.403844642346\n    test 133 line 15 lat2: 33.069613195450\n    test 134 line 15 lon2: 5.796995960186\n    test 135 line 15 azi2: 17.403844642346\n    test 136 line 16 lat: 53.760900\n    test 137 line 16 lon: 119.204306\n    test 138 line 16 fb: 141.069793\n    test 139 line 16 lat2: 53.760899500985\n    test 140 line 16 lon2: 119.204305898518\n    test 141 line 16 azi2: 141.069793254983\n    test 142 line 16 lat2: 53.760899500985\n    test 143 line 16 lon2: 119.204305898518\n    test 144 line 16 azi2: 141.069793254983\n    test 145 line 17 lat: -3.225632\n    test 146 line 17 lon: 103.742354\n    test 147 line 17 fb: 127.880328\n    test 148 line 17 lat2: -3.225632004245\n    test 149 line 17 lon2: 103.742354347526\n    test 150 line 17 azi2: 127.880328388524\n    test 151 line 17 lat2: -3.225632004245\n    test 152 line 17 lon2: 103.742354347526\n    test 153 line 17 azi2: 127.880328388524\n    test 154 line 18 lat: 47.108712\n    test 155 line 18 lon: 99.934107\n    test 156 line 18 fb: 104.103491\n    test 157 line 18 lat2: 47.108712008353\n    test 158 line 18 lon2: 99.934107358387\n    test 159 line 18 azi2: 104.103491123038\n    test 160 line 18 lat2: 47.108712008353\n    test 161 line 18 lon2: 99.934107358387\n    test 162 line 18 azi2: 104.103491123038\n    test 163 line 19 lat: 5.399363\n    test 164 line 19 lon: 135.250064\n    test 165 line 19 fb: 102.177018\n    test 166 line 19 lat2: 5.399363208349\n    test 167 line 19 lon2: 135.250063670790\n    test 168 line 19 azi2: 102.177017677370\n    test 169 line 19 lat2: 5.399363208349\n    test 170 line 19 lon2: 135.250063670790\n    test 171 line 19 azi2: 102.177017677370\n    test 172 line 20 lat: -58.669225\n    test 173 line 20 lon: 54.875015\n    test 174 line 20 fb: 131.345308\n    test 175 line 20 lat2: -58.669224697403\n    test 176 line 20 lon2: 54.875014559502\n    test 177 line 20 azi2: 131.345308028428\n    test 178 line 20 lat2: -58.669224697403\n    test 179 line 20 lon2: 54.875014559502\n    test 180 line 20 azi2: 131.345308028428\n    test 181 line 21 lat: 9.184229\n    test 182 line 21 lon: 151.302637\n    test 183 line 21 fb: 128.175105\n    test 184 line 21 lat2: 9.184228666560\n    test 185 line 21 lon2: 151.302636871911\n    test 186 line 21 azi2: 128.175105446048\n    test 187 line 21 lat2: 9.184228666560\n    test 188 line 21 lon2: 151.302636871911\n    test 189 line 21 azi2: 128.175105446048\n    test 190 line 22 lat: 53.467940\n    test 191 line 22 lon: 67.724192\n    test 192 line 22 fb: 78.863492\n    test 193 line 22 lat2: 53.467939714247\n    test 194 line 22 lon2: 67.724192258333\n    test 195 line 22 azi2: 78.863492168727\n    test 196 line 22 lat2: 53.467939714247\n    test 197 line 22 lon2: 67.724192258333\n    test 198 line 22 azi2: 78.863492168727\n    test 199 line 23 lat: 39.699456\n    test 200 line 23 lon: 67.156325\n    test 201 line 23 fb: 85.276830\n    test 202 line 23 lat2: 39.699455912449\n    test 203 line 23 lon2: 67.156324625647\n    test 204 line 23 azi2: 85.276829539878\n    test 205 line 23 lat2: 39.699455912449\n    test 206 line 23 lon2: 67.156324625647\n    test 207 line 23 azi2: 85.276829539878\n    test 208 line 24 lat: 70.942602\n    test 209 line 24 lon: 17.379214\n    test 210 line 24 fb: 21.869008\n    test 211 line 24 lat2: 70.942602144324\n    test 212 line 24 lon2: 17.379213644124\n    test 213 line 24 azi2: 21.869008256312\n    test 214 line 24 lat2: 70.942602144324\n    test 215 line 24 lon2: 17.379213644124\n    test 216 line 24 azi2: 21.869008256312\n    test 217 line 25 lat: 69.633349\n    test 218 line 25 lon: 110.601933\n    test 219 line 25 fb: 138.575193\n    test 220 line 25 lat2: 69.633349004538\n    test 221 line 25 lon2: 110.601933261211\n    test 222 line 25 azi2: 138.575192608514\n    test 223 line 25 lat2: 69.633349004538\n    test 224 line 25 lon2: 110.601933261211\n    test 225 line 25 azi2: 138.575192608515  FAILED, KNOWN, expected 138.575192608514\n    test 226 line 26 lat: 16.190815\n    test 227 line 26 lon: 87.606993\n    test 228 line 26 fb: 131.929410\n    test 229 line 26 lat2: 16.190814826165\n    test 230 line 26 lon2: 87.606993293114\n    test 231 line 26 azi2: 131.929409507039\n    test 232 line 26 lat2: 16.190814826165\n    test 233 line 26 lon2: 87.606993293114\n    test 234 line 26 azi2: 131.929409507039\n    test 235 line 27 lat: 54.774905\n    test 236 line 27 lon: 52.952507\n    test 237 line 27 fb: 85.904051\n    test 238 line 27 lat2: 54.774904542264\n    test 239 line 27 lon2: 52.952506835523\n    test 240 line 27 azi2: 85.904050867676\n    test 241 line 27 lat2: 54.774904542264\n    test 242 line 27 lon2: 52.952506835523\n    test 243 line 27 azi2: 85.904050867676\n    test 244 line 28 lat: -62.008569\n    test 245 line 28 lon: 172.274877\n    test 246 line 28 fb: 21.992601\n    test 247 line 28 lat2: -62.008568677307\n    test 248 line 28 lon2: 172.274876714260\n    test 249 line 28 azi2: 21.992601380429\n    test 250 line 28 lat2: -62.008568677307\n    test 251 line 28 lon2: 172.274876714260\n    test 252 line 28 azi2: 21.992601380429\n    test 253 line 29 lat: 27.303730\n    test 254 line 29 lon: 159.184451\n    test 255 line 29 fb: 150.697920\n    test 256 line 29 lat2: 27.303729660018\n    test 257 line 29 lon2: 159.184451093393\n    test 258 line 29 azi2: 150.697920369703\n    test 259 line 29 lat2: 27.303729660018\n    test 260 line 29 lon2: 159.184451093393\n    test 261 line 29 azi2: 150.697920369703\n    test 262 line 30 lat: 31.979897\n    test 263 line 30 lon: 55.946759\n    test 264 line 30 fb: 87.398293\n    test 265 line 30 lat2: 31.979897342658\n    test 266 line 30 lon2: 55.946758945497\n    test 267 line 30 azi2: 87.398292964767\n    test 268 line 30 lat2: 31.979897342658\n    test 269 line 30 lon2: 55.946758945497\n    test 270 line 30 azi2: 87.398292964767\n    test 271 line 31 lat: 49.991468\n    test 272 line 31 lon: 133.962411\n    test 273 line 31 fb: 142.016540\n    test 274 line 31 lat2: 49.991467522545\n    test 275 line 31 lon2: 133.962411191467\n    test 276 line 31 azi2: 142.016540226251\n    test 277 line 31 lat2: 49.991467522545\n    test 278 line 31 lon2: 133.962411191467\n    test 279 line 31 azi2: 142.016540226251\n    test 280 line 32 lat: 2.818559\n    test 281 line 32 lon: 7.234774\n    test 282 line 32 fb: 168.804029\n    test 283 line 32 lat2: 2.818558842278\n    test 284 line 32 lon2: 7.234774421859\n    test 285 line 32 azi2: 168.804029404993\n    test 286 line 32 lat2: 2.818558842278\n    test 287 line 32 lon2: 7.234774421859\n    test 288 line 32 azi2: 168.804029404993\n    test 289 line 33 lat: -38.118071\n    test 290 line 33 lon: 93.395971\n    test 291 line 33 fb: 117.017377\n    test 292 line 33 lat2: -38.118070550305\n    test 293 line 33 lon2: 93.395971367720\n    test 294 line 33 azi2: 117.017376985228\n    test 295 line 33 lat2: -38.118070550305\n    test 296 line 33 lon2: 93.395971367720\n    test 297 line 33 azi2: 117.017376985228\n    test 298 line 34 lat: 3.377824\n    test 299 line 34 lon: 65.294746\n    test 300 line 34 fb: 138.982544\n    test 301 line 34 lat2: 3.377824468035\n    test 302 line 34 lon2: 65.294745963255\n    test 303 line 34 azi2: 138.982543784560\n    test 304 line 34 lat2: 3.377824468035\n    test 305 line 34 lon2: 65.294745963255\n    test 306 line 34 azi2: 138.982543784560\n    test 307 line 35 lat: 4.631157\n    test 308 line 35 lon: 84.335045\n    test 309 line 35 fb: 132.120804\n    test 310 line 35 lat2: 4.631157299024\n    test 311 line 35 lon2: 84.335044694540\n    test 312 line 35 azi2: 132.120804319474\n    test 313 line 35 lat2: 4.631157299024\n    test 314 line 35 lon2: 84.335044694540\n    test 315 line 35 azi2: 132.120804319474\n    test 316 line 36 lat: 38.952215\n    test 317 line 36 lon: 133.416463\n    test 318 line 36 fb: 160.690586\n    test 319 line 36 lat2: 38.952215219507\n    test 320 line 36 lon2: 133.416463103113\n    test 321 line 36 azi2: 160.690585690749\n    test 322 line 36 lat2: 38.952215219507\n    test 323 line 36 lon2: 133.416463103113\n    test 324 line 36 azi2: 160.690585690749\n    test 325 line 37 lat: -39.013297\n    test 326 line 37 lon: 160.302849\n    test 327 line 37 fb: 115.363715\n    test 328 line 37 lat2: -39.013296805131\n    test 329 line 37 lon2: 160.302849365986\n    test 330 line 37 azi2: 115.363714797610\n    test 331 line 37 lat2: -39.013296805131\n    test 332 line 37 lon2: 160.302849365986\n    test 333 line 37 azi2: 115.363714797610\n    test 334 line 38 lat: -48.456093\n    test 335 line 38 lon: 38.613822\n    test 336 line 38 fb: 137.651668\n    test 337 line 38 lat2: -48.456093143589\n    test 338 line 38 lon2: 38.613821719886\n    test 339 line 38 azi2: 137.651668464815\n    test 340 line 38 lat2: -48.456093143589\n    test 341 line 38 lon2: 38.613821719886\n    test 342 line 38 azi2: 137.651668464815\n    test 343 line 39 lat: -13.861956\n    test 344 line 39 lon: 74.250572\n    test 345 line 39 fb: 143.968262\n    test 346 line 39 lat2: -13.861956131519\n    test 347 line 39 lon2: 74.250571564776\n    test 348 line 39 azi2: 143.968262419705\n    test 349 line 39 lat2: -13.861956131519\n    test 350 line 39 lon2: 74.250571564776\n    test 351 line 39 azi2: 143.968262419705\n    test 352 line 40 lat: 25.289202\n    test 353 line 40 lon: 47.063579\n    test 354 line 40 fb: 78.672533\n    test 355 line 40 lat2: 25.289201968371\n    test 356 line 40 lon2: 47.063578519727\n    test 357 line 40 azi2: 78.672532588106\n    test 358 line 40 lat2: 25.289201968371\n    test 359 line 40 lon2: 47.063578519727\n    test 360 line 40 azi2: 78.672532588106\n    test 361 line 41 lat: 49.498121\n    test 362 line 41 lon: 131.993365\n    test 363 line 41 fb: 157.425605\n    test 364 line 41 lat2: 49.498121110507\n    test 365 line 41 lon2: 131.993365399320\n    test 366 line 41 azi2: 157.425605424890\n    test 367 line 41 lat2: 49.498121110507\n    test 368 line 41 lon2: 131.993365399320\n    test 369 line 41 azi2: 157.425605424890\n    test 370 line 42 lat: -2.104242\n    test 371 line 42 lon: 56.532079\n    test 372 line 42 fb: 129.406955\n    test 373 line 42 lat2: -2.104241718494\n    test 374 line 42 lon2: 56.532079408825\n    test 375 line 42 azi2: 129.406954892035\n    test 376 line 42 lat2: -2.104241718494\n    test 377 line 42 lon2: 56.532079408825\n    test 378 line 42 azi2: 129.406954892035\n    test 379 line 43 lat: -39.997315\n    test 380 line 43 lon: 49.004259\n    test 381 line 43 fb: 135.432995\n    test 382 line 43 lat2: -39.997315471629\n    test 383 line 43 lon2: 49.004258662721\n    test 384 line 43 azi2: 135.432994751523\n    test 385 line 43 lat2: -39.997315471629\n    test 386 line 43 lon2: 49.004258662721\n    test 387 line 43 azi2: 135.432994751523\n    test 388 line 44 lat: 9.333272\n    test 389 line 44 lon: 98.670857\n    test 390 line 44 fb: 120.694280\n    test 391 line 44 lat2: 9.333271992381\n    test 392 line 44 lon2: 98.670857333200\n    test 393 line 44 azi2: 120.694280236304\n    test 394 line 44 lat2: 9.333271992381\n    test 395 line 44 lon2: 98.670857333200\n    test 396 line 44 azi2: 120.694280236304\n    test 397 line 45 lat: 38.653646\n    test 398 line 45 lon: 136.060468\n    test 399 line 45 fb: 152.489416\n    test 400 line 45 lat2: 38.653646179484\n    test 401 line 45 lon2: 136.060467518677\n    test 402 line 45 azi2: 152.489415748331\n    test 403 line 45 lat2: 38.653646179484\n    test 404 line 45 lon2: 136.060467518677\n    test 405 line 45 azi2: 152.489415748331\n    test 406 line 46 lat: -4.564995\n    test 407 line 46 lon: 166.894968\n    test 408 line 46 fb: 127.520036\n    test 409 line 46 lat2: -4.564994956240\n    test 410 line 46 lon2: 166.894968092836\n    test 411 line 46 azi2: 127.520036113641\n    test 412 line 46 lat2: -4.564994956240\n    test 413 line 46 lon2: 166.894968092836\n    test 414 line 46 azi2: 127.520036113641\n    test 415 line 47 lat: -38.522500\n    test 416 line 47 lon: 178.679307\n    test 417 line 47 fb: 176.468685\n    test 418 line 47 lat2: -38.522500159620\n    test 419 line 47 lon2: 178.679306959466\n    test 420 line 47 azi2: 176.468684587438\n    test 421 line 47 lat2: -38.522500159620\n    test 422 line 47 lon2: 178.679306959466\n    test 423 line 47 azi2: 176.468684587438\n    test 424 line 48 lat: 45.529796\n    test 425 line 48 lon: 145.048738\n    test 426 line 48 fb: 160.706227\n    test 427 line 48 lat2: 45.529795503687  FAILED, KNOWN, expected 45.529795503688\n    test 428 line 48 lon2: 145.048737846273\n    test 429 line 48 azi2: 160.706226714169\n    test 430 line 48 lat2: 45.529795503688\n    test 431 line 48 lon2: 145.048737846273\n    test 432 line 48 azi2: 160.706226714169\n    test 433 line 49 lat: -2.968925\n    test 434 line 49 lon: 5.044083\n    test 435 line 49 fb: 174.913528\n    test 436 line 49 lat2: -2.968924563433\n    test 437 line 49 lon2: 5.044082955485\n    test 438 line 49 azi2: 174.913527615338\n    test 439 line 49 lat2: -2.968924563433\n    test 440 line 49 lon2: 5.044082955485\n    test 441 line 49 azi2: 174.913527615338\n    test 442 line 50 lat: 1.618184\n    test 443 line 50 lon: 163.262955\n    test 444 line 50 fb: 161.097730\n    test 445 line 50 lat2: 1.618184178387\n    test 446 line 50 lon2: 163.262955108028\n    test 447 line 50 azi2: 161.097729713868\n    test 448 line 50 lat2: 1.618184178387\n    test 449 line 50 lon2: 163.262955108028\n    test 450 line 50 azi2: 161.097729713868\n    test 451 line 51 lat: 25.179740\n    test 452 line 51 lon: 107.504992\n    test 453 line 51 fb: 154.055552\n    test 454 line 51 lat2: 25.179740339437\n    test 455 line 51 lon2: 107.504991932892\n    test 456 line 51 azi2: 154.055552232572\n    test 457 line 51 lat2: 25.179740339437\n    test 458 line 51 lon2: 107.504991932892\n    test 459 line 51 azi2: 154.055552232572\n    test 460 line 52 lat: 57.391251\n    test 461 line 52 lon: 89.082271\n    test 462 line 52 fb: 101.276115\n    test 463 line 52 lat2: 57.391251345244\n    test 464 line 52 lon2: 89.082271206722\n    test 465 line 52 azi2: 101.276114553753\n    test 466 line 52 lat2: 57.391251345244\n    test 467 line 52 lon2: 89.082271206722\n    test 468 line 52 azi2: 101.276114553753\n    test 469 line 53 lat: -11.470673\n    test 470 line 53 lon: 48.285095\n    test 471 line 53 fb: 148.389696\n    test 472 line 53 lat2: -11.470672507979\n    test 473 line 53 lon2: 48.285094684225\n    test 474 line 53 azi2: 148.389695684750\n    test 475 line 53 lat2: -11.470672507979\n    test 476 line 53 lon2: 48.285094684225\n    test 477 line 53 azi2: 148.389695684750\n    test 478 line 54 lat: 27.356639\n    test 479 line 54 lon: 84.391682\n    test 480 line 54 fb: 104.661818\n    test 481 line 54 lat2: 27.356639349123\n    test 482 line 54 lon2: 84.391681754671\n    test 483 line 54 azi2: 104.661818309238\n    test 484 line 54 lat2: 27.356639349123\n    test 485 line 54 lon2: 84.391681754671\n    test 486 line 54 azi2: 104.661818309238\n    test 487 line 55 lat: -40.533598\n    test 488 line 55 lon: 103.488381\n    test 489 line 55 fb: 132.398259\n    test 490 line 55 lat2: -40.533597900971\n    test 491 line 55 lon2: 103.488381204009\n    test 492 line 55 azi2: 132.398259207371\n    test 493 line 55 lat2: -40.533597900971\n    test 494 line 55 lon2: 103.488381204009\n    test 495 line 55 azi2: 132.398259207371\n    test 496 line 56 lat: 52.337949\n    test 497 line 56 lon: 149.908279\n    test 498 line 56 fb: 162.333474\n    test 499 line 56 lat2: 52.337949466457\n    test 500 line 56 lon2: 149.908278798430\n    test 501 line 56 azi2: 162.333474334205\n    test 502 line 56 lat2: 52.337949466457\n    test 503 line 56 lon2: 149.908278798430\n    test 504 line 56 azi2: 162.333474334205\n    test 505 line 57 lat: -58.474076\n    test 506 line 57 lon: 78.718606\n    test 507 line 57 fb: 117.457565\n    test 508 line 57 lat2: -58.474075605820\n    test 509 line 57 lon2: 78.718605560533\n    test 510 line 57 azi2: 117.457565115569\n    test 511 line 57 lat2: -58.474075605820\n    test 512 line 57 lon2: 78.718605560533\n    test 513 line 57 azi2: 117.457565115569\n    test 514 line 58 lat: -35.840568\n    test 515 line 58 lon: 4.157534\n    test 516 line 58 fb: 174.451067\n    test 517 line 58 lat2: -35.840568348239\n    test 518 line 58 lon2: 4.157534199470\n    test 519 line 58 azi2: 174.451066901814\n    test 520 line 58 lat2: -35.840568348239\n    test 521 line 58 lon2: 4.157534199470\n    test 522 line 58 azi2: 174.451066901814\n    test 523 line 59 lat: 15.629163\n    test 524 line 59 lon: 102.677417\n    test 525 line 59 fb: 103.482103\n    test 526 line 59 lat2: 15.629163409998\n    test 527 line 59 lon2: 102.677417064290  FAILED, KNOWN, expected 102.677417064289\n    test 528 line 59 azi2: 103.482102722183\n    test 529 line 59 lat2: 15.629163409998\n    test 530 line 59 lon2: 102.677417064290  FAILED, KNOWN, expected 102.677417064289\n    test 531 line 59 azi2: 103.482102722183\n    test 532 line 60 lat: -1.256180\n    test 533 line 60 lon: 133.625255\n    test 534 line 60 fb: 104.470489\n    test 535 line 60 lat2: -1.256179633151\n    test 536 line 60 lon2: 133.625254783633\n    test 537 line 60 azi2: 104.470489013739\n    test 538 line 60 lat2: -1.256179633151\n    test 539 line 60 lon2: 133.625254783633\n    test 540 line 60 azi2: 104.470489013739\n    test 541 line 61 lat: -40.558253\n    test 542 line 61 lon: 112.897054\n    test 543 line 61 fb: 90.226134\n    test 544 line 61 lat2: -40.558252601871\n    test 545 line 61 lon2: 112.897053867085\n    test 546 line 61 azi2: 90.226134266467\n    test 547 line 61 lat2: -40.558252601871\n    test 548 line 61 lon2: 112.897053867085\n    test 549 line 61 azi2: 90.226134266467\n    test 550 line 62 lat: 86.193596\n    test 551 line 62 lon: 116.956880\n    test 552 line 62 fb: 117.618329\n    test 553 line 62 lat2: 86.193595821107\n    test 554 line 62 lon2: 116.956880430711\n    test 555 line 62 azi2: 117.618329340274\n    test 556 line 62 lat2: 86.193595821107\n    test 557 line 62 lon2: 116.956880430711\n    test 558 line 62 azi2: 117.618329340274\n    test 559 line 63 lat: 6.874181\n    test 560 line 63 lon: 54.891199\n    test 561 line 63 fb: 90.820790\n    test 562 line 63 lat2: 6.874181093562\n    test 563 line 63 lon2: 54.891198619261\n    test 564 line 63 azi2: 90.820789878786\n    test 565 line 63 lat2: 6.874181093562\n    test 566 line 63 lon2: 54.891198619261\n    test 567 line 63 azi2: 90.820789878786\n    test 568 line 64 lat: -2.554657\n    test 569 line 64 lon: 71.539549\n    test 570 line 64 fb: 105.722921\n    test 571 line 64 lat2: -2.554657243385\n    test 572 line 64 lon2: 71.539549368441\n    test 573 line 64 azi2: 105.722921401613\n    test 574 line 64 lat2: -2.554657243385\n    test 575 line 64 lon2: 71.539549368441\n    test 576 line 64 azi2: 105.722921401613\n    test 577 line 65 lat: 1.329645\n    test 578 line 65 lon: 138.134969\n    test 579 line 65 fb: 150.465118\n    test 580 line 65 lat2: 1.329645321136\n    test 581 line 65 lon2: 138.134968538140\n    test 582 line 65 azi2: 150.465118219879\n    test 583 line 65 lat2: 1.329645321136\n    test 584 line 65 lon2: 138.134968538140\n    test 585 line 65 azi2: 150.465118219879\n    test 586 line 66 lat: -44.026427\n    test 587 line 66 lon: 121.367591\n    test 588 line 66 fb: 123.975227\n    test 589 line 66 lat2: -44.026426573446\n    test 590 line 66 lon2: 121.367591215510\n    test 591 line 66 azi2: 123.975227063718\n    test 592 line 66 lat2: -44.026426573446\n    test 593 line 66 lon2: 121.367591215510\n    test 594 line 66 azi2: 123.975227063718\n    test 595 line 67 lat: -3.399081\n    test 596 line 67 lon: 138.655764\n    test 597 line 67 fb: 98.994343\n    test 598 line 67 lat2: -3.399080708673\n    test 599 line 67 lon2: 138.655764270175\n    test 600 line 67 azi2: 98.994343217447\n    test 601 line 67 lat2: -3.399080708673\n    test 602 line 67 lon2: 138.655764270175\n    test 603 line 67 azi2: 98.994343217447\n    test 604 line 68 lat: -26.776985\n    test 605 line 68 lon: 67.020055\n    test 606 line 68 fb: 119.394665\n    test 607 line 68 lat2: -26.776984673364\n    test 608 line 68 lon2: 67.020054548341\n    test 609 line 68 azi2: 119.394664651636\n    test 610 line 68 lat2: -26.776984673364\n    test 611 line 68 lon2: 67.020054548341\n    test 612 line 68 azi2: 119.394664651636\n    test 613 line 69 lat: 52.057239\n    test 614 line 69 lon: 151.887270\n    test 615 line 69 fb: 161.537826\n    test 616 line 69 lat2: 52.057239269050\n    test 617 line 69 lon2: 151.887270484247\n    test 618 line 69 azi2: 161.537826425477\n    test 619 line 69 lat2: 52.057239269050\n    test 620 line 69 lon2: 151.887270484247\n    test 621 line 69 azi2: 161.537826425477\n    test 622 line 70 lat: 3.784724\n    test 623 line 70 lon: 102.727745\n    test 624 line 70 fb: 116.453155\n    test 625 line 70 lat2: 3.784724165483\n    test 626 line 70 lon2: 102.727744934481\n    test 627 line 70 azi2: 116.453155405439\n    test 628 line 70 lat2: 3.784724165483\n    test 629 line 70 lon2: 102.727744934481\n    test 630 line 70 azi2: 116.453155405439\n    test 631 line 71 lat: -40.409299\n    test 632 line 71 lon: 86.033195\n    test 633 line 71 fb: 121.080298\n    test 634 line 71 lat2: -40.409298772797\n    test 635 line 71 lon2: 86.033195335657\n    test 636 line 71 azi2: 121.080297615268\n    test 637 line 71 lat2: -40.409298772797\n    test 638 line 71 lon2: 86.033195335657\n    test 639 line 71 azi2: 121.080297615268\n    test 640 line 72 lat: 73.013460\n    test 641 line 72 lon: 76.188125\n    test 642 line 72 fb: 78.877769\n    test 643 line 72 lat2: 73.013460186926\n    test 644 line 72 lon2: 76.188125151657\n    test 645 line 72 azi2: 78.877769459629\n    test 646 line 72 lat2: 73.013460186926\n    test 647 line 72 lon2: 76.188125151657\n    test 648 line 72 azi2: 78.877769459629\n    test 649 line 73 lat: 52.870132\n    test 650 line 73 lon: 51.020900\n    test 651 line 73 fb: 102.113351\n    test 652 line 73 lat2: 52.870131799667\n    test 653 line 73 lon2: 51.020900069545\n    test 654 line 73 azi2: 102.113351369331\n    test 655 line 73 lat2: 52.870131799667\n    test 656 line 73 lon2: 51.020900069545\n    test 657 line 73 azi2: 102.113351369331\n    test 658 line 74 lat: 28.909632\n    test 659 line 74 lon: 17.071526\n    test 660 line 74 fb: 103.660711\n    test 661 line 74 lat2: 28.909631785857\n    test 662 line 74 lon2: 17.071526465331\n    test 663 line 74 azi2: 103.660711362255\n    test 664 line 74 lat2: 28.909631785857\n    test 665 line 74 lon2: 17.071526465331\n    test 666 line 74 azi2: 103.660711362255\n    test 667 line 75 lat: -58.257855\n    test 668 line 75 lon: 15.812862\n    test 669 line 75 fb: 169.606337\n    test 670 line 75 lat2: -58.257854831091\n    test 671 line 75 lon2: 15.812862089412\n    test 672 line 75 azi2: 169.606337169070\n    test 673 line 75 lat2: -58.257854831091\n    test 674 line 75 lon2: 15.812862089412\n    test 675 line 75 azi2: 169.606337169070\n    test 676 line 76 lat: -58.869445\n    test 677 line 76 lon: 132.036795\n    test 678 line 76 fb: 53.946549\n    test 679 line 76 lat2: -58.869445004289\n    test 680 line 76 lon2: 132.036794965086\n    test 681 line 76 azi2: 53.946549037654\n    test 682 line 76 lat2: -58.869445004289\n    test 683 line 76 lon2: 132.036794965086\n    test 684 line 76 azi2: 53.946549037654\n    test 685 line 77 lat: -45.547043\n    test 686 line 77 lon: 77.540664\n    test 687 line 77 fb: 126.917177\n    test 688 line 77 lat2: -45.547042598505\n    test 689 line 77 lon2: 77.540663933413\n    test 690 line 77 azi2: 126.917177154676\n    test 691 line 77 lat2: -45.547042598505\n    test 692 line 77 lon2: 77.540663933413\n    test 693 line 77 azi2: 126.917177154676\n    test 694 line 78 lat: 45.046385\n    test 695 line 78 lon: 149.382429\n    test 696 line 78 fb: 162.117474\n    test 697 line 78 lat2: 45.046384823604\n    test 698 line 78 lon2: 149.382428769460\n    test 699 line 78 azi2: 162.117474447248\n    test 700 line 78 lat2: 45.046384823604\n    test 701 line 78 lon2: 149.382428769460\n    test 702 line 78 azi2: 162.117474447248\n    test 703 line 79 lat: -74.853338\n    test 704 line 79 lon: 96.072097\n    test 705 line 79 fb: 85.425493\n    test 706 line 79 lat2: -74.853338324199\n    test 707 line 79 lon2: 96.072096720955\n    test 708 line 79 azi2: 85.425493305289\n    test 709 line 79 lat2: -74.853338324199\n    test 710 line 79 lon2: 96.072096720956  FAILED, KNOWN, expected 96.072096720955\n    test 711 line 79 azi2: 85.425493305289\n    test 712 line 80 lat: -13.205775\n    test 713 line 80 lon: 57.532285\n    test 714 line 80 fb: 122.358040\n    test 715 line 80 lat2: -13.205775181752\n    test 716 line 80 lon2: 57.532285422140\n    test 717 line 80 azi2: 122.358040028964\n    test 718 line 80 lat2: -13.205775181752\n    test 719 line 80 lon2: 57.532285422140\n    test 720 line 80 azi2: 122.358040028964\n    test 721 line 81 lat: -5.135864\n    test 722 line 81 lon: 115.048833\n    test 723 line 81 fb: 93.168400\n    test 724 line 81 lat2: -5.135863872649\n    test 725 line 81 lon2: 115.048832990097\n    test 726 line 81 azi2: 93.168399576996\n    test 727 line 81 lat2: -5.135863872649\n    test 728 line 81 lon2: 115.048832990097\n    test 729 line 81 azi2: 93.168399576996\n    test 730 line 82 lat: 13.355453\n    test 731 line 82 lon: 19.253946\n    test 732 line 82 fb: 143.568719\n    test 733 line 82 lat2: 13.355452912310\n    test 734 line 82 lon2: 19.253945880531\n    test 735 line 82 azi2: 143.568718864193\n    test 736 line 82 lat2: 13.355452912310\n    test 737 line 82 lon2: 19.253945880531\n    test 738 line 82 azi2: 143.568718864193\n    test 739 line 83 lat: 0.766426\n    test 740 line 83 lon: 147.485817\n    test 741 line 83 fb: 144.982274\n    test 742 line 83 lat2: 0.766426443892\n    test 743 line 83 lon2: 147.485816830606\n    test 744 line 83 azi2: 144.982273873382\n    test 745 line 83 lat2: 0.766426443892\n    test 746 line 83 lon2: 147.485816830606\n    test 747 line 83 azi2: 144.982273873382\n    test 748 line 84 lat: 10.228416\n    test 749 line 84 lon: 159.204118\n    test 750 line 84 fb: 173.111973\n    test 751 line 84 lat2: 10.228416314659\n    test 752 line 84 lon2: 159.204118025562\n    test 753 line 84 azi2: 173.111973027488\n    test 754 line 84 lat2: 10.228416314659\n    test 755 line 84 lon2: 159.204118025562\n    test 756 line 84 azi2: 173.111973027488\n    test 757 line 85 lat: 73.178089\n    test 758 line 85 lon: 131.762700\n    test 759 line 85 fb: 135.271161\n    test 760 line 85 lat2: 73.178089048974\n    test 761 line 85 lon2: 131.762699581940\n    test 762 line 85 azi2: 135.271161440271\n    test 763 line 85 lat2: 73.178089048974\n    test 764 line 85 lon2: 131.762699581941  FAILED, KNOWN, expected 131.762699581940\n    test 765 line 85 azi2: 135.271161440271\n    test 766 line 86 lat: -16.908717\n    test 767 line 86 lon: 149.240494\n    test 768 line 86 fb: 90.725082\n    test 769 line 86 lat2: -16.908717231321\n    test 770 line 86 lon2: 149.240493850337\n    test 771 line 86 azi2: 90.725082091932\n    test 772 line 86 lat2: -16.908717231321\n    test 773 line 86 lon2: 149.240493850337\n    test 774 line 86 azi2: 90.725082091932\n    test 775 line 87 lat: -23.440025\n    test 776 line 87 lon: 98.819595\n    test 777 line 87 fb: 154.388320\n    test 778 line 87 lat2: -23.440025289757\n    test 779 line 87 lon2: 98.819595131759\n    test 780 line 87 azi2: 154.388319751570\n    test 781 line 87 lat2: -23.440025289757\n    test 782 line 87 lon2: 98.819595131759\n    test 783 line 87 azi2: 154.388319751570\n    test 784 line 88 lat: -51.344465\n    test 785 line 88 lon: 54.299399\n    test 786 line 88 fb: 139.903236\n    test 787 line 88 lat2: -51.344465279371\n    test 788 line 88 lon2: 54.299399477396\n    test 789 line 88 azi2: 139.903236261795\n    test 790 line 88 lat2: -51.344465279371\n    test 791 line 88 lon2: 54.299399477396\n    test 792 line 88 azi2: 139.903236261795\n    test 793 line 89 lat: 33.922320\n    test 794 line 89 lon: 143.463070\n    test 795 line 89 fb: 132.788230\n    test 796 line 89 lat2: 33.922319712554\n    test 797 line 89 lon2: 143.463070326988\n    test 798 line 89 azi2: 132.788229856713\n    test 799 line 89 lat2: 33.922319712554\n    test 800 line 89 lon2: 143.463070326988\n    test 801 line 89 azi2: 132.788229856713\n    test 802 line 90 lat: -83.333068\n    test 803 line 90 lon: 177.611925\n    test 804 line 90 fb: 2.633769\n    test 805 line 90 lat2: -83.333068057524\n    test 806 line 90 lon2: 177.611924577958\n    test 807 line 90 azi2: 2.633768744582\n    test 808 line 90 lat2: -83.333068057524\n    test 809 line 90 lon2: 177.611924577958\n    test 810 line 90 azi2: 2.633768744582\n    test 811 line 91 lat: 20.587333\n    test 812 line 91 lon: 164.201962\n    test 813 line 91 fb: 166.991083\n    test 814 line 91 lat2: 20.587333492522\n    test 815 line 91 lon2: 164.201962479604\n    test 816 line 91 azi2: 166.991083245940\n    test 817 line 91 lat2: 20.587333492522\n    test 818 line 91 lon2: 164.201962479604\n    test 819 line 91 azi2: 166.991083245940\n    test 820 line 92 lat: 52.612815\n    test 821 line 92 lon: 110.766184\n    test 822 line 92 fb: 168.281486\n    test 823 line 92 lat2: 52.612815386144\n    test 824 line 92 lon2: 110.766184475279\n    test 825 line 92 azi2: 168.281485715811\n    test 826 line 92 lat2: 52.612815386144\n    test 827 line 92 lon2: 110.766184475279\n    test 828 line 92 azi2: 168.281485715811\n    test 829 line 93 lat: -41.681373\n    test 830 line 93 lon: 82.150183\n    test 831 line 93 fb: 107.012959\n    test 832 line 93 lat2: -41.681372899642\n    test 833 line 93 lon2: 82.150183233451\n    test 834 line 93 azi2: 107.012959072514\n    test 835 line 93 lat2: -41.681372899642\n    test 836 line 93 lon2: 82.150183233451\n    test 837 line 93 azi2: 107.012959072514\n    test 838 line 94 lat: 27.082807\n    test 839 line 94 lon: 171.332531\n    test 840 line 94 fb: 174.934340\n    test 841 line 94 lat2: 27.082807052702\n    test 842 line 94 lon2: 171.332530862401\n    test 843 line 94 azi2: 174.934339881142\n    test 844 line 94 lat2: 27.082807052702\n    test 845 line 94 lon2: 171.332530862401\n    test 846 line 94 azi2: 174.934339881142\n    test 847 line 95 lat: 57.992299\n    test 848 line 95 lon: 15.128357\n    test 849 line 95 fb: 62.342982\n    test 850 line 95 lat2: 57.992299464191\n    test 851 line 95 lon2: 15.128356773547\n    test 852 line 95 azi2: 62.342982084737\n    test 853 line 95 lat2: 57.992299464191\n    test 854 line 95 lon2: 15.128356773547\n    test 855 line 95 azi2: 62.342982084737\n    test 856 line 96 lat: -10.526000\n    test 857 line 96 lon: 33.778702\n    test 858 line 96 fb: 165.687804\n    test 859 line 96 lat2: -10.526000344959\n    test 860 line 96 lon2: 33.778701722506\n    test 861 line 96 azi2: 165.687803859941\n    test 862 line 96 lat2: -10.526000344959\n    test 863 line 96 lon2: 33.778701722506\n    test 864 line 96 azi2: 165.687803859941\n    test 865 line 97 lat: 25.802395\n    test 866 line 97 lon: 98.502531\n    test 867 line 97 fb: 97.837271\n    test 868 line 97 lat2: 25.802394934787\n    test 869 line 97 lon2: 98.502531199301\n    test 870 line 97 azi2: 97.837270592496\n    test 871 line 97 lat2: 25.802394934787\n    test 872 line 97 lon2: 98.502531199301\n    test 873 line 97 azi2: 97.837270592496\n    test 874 line 98 lat: 47.163255\n    test 875 line 98 lon: 156.720176\n    test 876 line 98 fb: 160.291022\n    test 877 line 98 lat2: 47.163255465769\n    test 878 line 98 lon2: 156.720176105542\n    test 879 line 98 azi2: 160.291021678921\n    test 880 line 98 lat2: 47.163255465769\n    test 881 line 98 lon2: 156.720176105542\n    test 882 line 98 azi2: 160.291021678921\n    test 883 line 99 lat: 47.932063\n    test 884 line 99 lon: 35.094714\n    test 885 line 99 fb: 137.545065\n    test 886 line 99 lat2: 47.932062978964\n    test 887 line 99 lon2: 35.094714092217\n    test 888 line 99 azi2: 137.545065115425\n    test 889 line 99 lat2: 47.932062978964\n    test 890 line 99 lon2: 35.094714092217\n    test 891 line 99 azi2: 137.545065115425\n    test 892 line 100 lat: -60.204340\n    test 893 line 100 lon: 117.726218\n    test 894 line 100 fb: 72.585011\n    test 895 line 100 lat2: -60.204339807984\n    test 896 line 100 lon2: 117.726217548610\n    test 897 line 100 azi2: 72.585010656772\n    test 898 line 100 lat2: -60.204339807984\n    test 899 line 100 lon2: 117.726217548610\n    test 900 line 100 azi2: 72.585010656772\n    test 901 line 101 lat: 35.247411\n    test 902 line 101 lon: 59.471562\n    test 903 line 101 fb: 81.179468\n    test 904 line 101 lat2: 35.247410984329\n    test 905 line 101 lon2: 59.471562388985\n    test 906 line 101 azi2: 81.179468094302\n    test 907 line 101 lat2: 35.247410984329\n    test 908 line 101 lon2: 59.471562388985\n    test 909 line 101 azi2: 81.179468094302\n    test 910 line 102 lat: 19.218268\n    test 911 line 102 lon: 165.507915\n    test 912 line 102 fb: 167.452074\n    test 913 line 102 lat2: 19.218268047706\n    test 914 line 102 lon2: 165.507915017643\n    test 915 line 102 azi2: 167.452074301867\n    test 916 line 102 lat2: 19.218268047706\n    test 917 line 102 lon2: 165.507915017643\n    test 918 line 102 azi2: 167.452074301867\n    test 919 line 103 lat: 55.428809\n    test 920 line 103 lon: 121.956541\n    test 921 line 103 fb: 154.501481\n    test 922 line 103 lat2: 55.428809300888\n    test 923 line 103 lon2: 121.956541206929\n    test 924 line 103 azi2: 154.501481394521\n    test 925 line 103 lat2: 55.428809300888\n    test 926 line 103 lon2: 121.956541206929\n    test 927 line 103 azi2: 154.501481394521\n    test 928 line 104 lat: 49.294374\n    test 929 line 104 lon: 119.661420\n    test 930 line 104 fb: 157.209489\n    test 931 line 104 lat2: 49.294374468687\n    test 932 line 104 lon2: 119.661419832789\n    test 933 line 104 azi2: 157.209488754087\n    test 934 line 104 lat2: 49.294374468687\n    test 935 line 104 lon2: 119.661419832789\n    test 936 line 104 azi2: 157.209488754087\n    test 937 line 105 lat: -32.534872\n    test 938 line 105 lon: 152.280610\n    test 939 line 105 fb: 45.281812\n    test 940 line 105 lat2: -32.534872085863\n    test 941 line 105 lon2: 152.280609797481\n    test 942 line 105 azi2: 45.281812386148\n    test 943 line 105 lat2: -32.534872085863\n    test 944 line 105 lon2: 152.280609797481\n    test 945 line 105 azi2: 45.281812386148\n    test 946 line 106 lat: -1.097899\n    test 947 line 106 lon: 104.697360\n    test 948 line 106 fb: 126.298489\n    test 949 line 106 lat2: -1.097899218947\n    test 950 line 106 lon2: 104.697359959629\n    test 951 line 106 azi2: 126.298488917783\n    test 952 line 106 lat2: -1.097899218947\n    test 953 line 106 lon2: 104.697359959629\n    test 954 line 106 azi2: 126.298488917783\n    test 955 line 107 lat: -18.034366\n    test 956 line 107 lon: 28.460388\n    test 957 line 107 fb: 129.520364\n    test 958 line 107 lat2: -18.034366293950\n    test 959 line 107 lon2: 28.460387638999\n    test 960 line 107 azi2: 129.520363751001\n    test 961 line 107 lat2: -18.034366293950\n    test 962 line 107 lon2: 28.460387638999\n    test 963 line 107 azi2: 129.520363751001\n    test 964 line 108 lat: 76.310833\n    test 965 line 108 lon: 80.110525\n    test 966 line 108 fb: 106.655922\n    test 967 line 108 lat2: 76.310832995825\n    test 968 line 108 lon2: 80.110524683625\n    test 969 line 108 azi2: 106.655921818336\n    test 970 line 108 lat2: 76.310832995825\n    test 971 line 108 lon2: 80.110524683625\n    test 972 line 108 azi2: 106.655921818336\n    test 973 line 109 lat: 39.838034\n    test 974 line 109 lon: 42.989610\n    test 975 line 109 fb: 69.695281\n    test 976 line 109 lat2: 39.838033717901\n    test 977 line 109 lon2: 42.989610477861\n    test 978 line 109 azi2: 69.695281464222\n    test 979 line 109 lat2: 39.838033717901\n    test 980 line 109 lon2: 42.989610477861\n    test 981 line 109 azi2: 69.695281464222\n    test 982 line 110 lat: -56.710166\n    test 983 line 110 lon: 125.242287\n    test 984 line 110 fb: 60.118756\n    test 985 line 110 lat2: -56.710165877845\n    test 986 line 110 lon2: 125.242287231675\n    test 987 line 110 azi2: 60.118756013168\n    test 988 line 110 lat2: -56.710165877845\n    test 989 line 110 lon2: 125.242287231675\n    test 990 line 110 azi2: 60.118756013168\n    test 991 line 111 lat: 55.796062\n    test 992 line 111 lon: 59.736599\n    test 993 line 111 fb: 73.536728\n    test 994 line 111 lat2: 55.796061639165\n    test 995 line 111 lon2: 59.736598787303\n    test 996 line 111 azi2: 73.536727826063\n    test 997 line 111 lat2: 55.796061639165\n    test 998 line 111 lon2: 59.736598787303\n    test 999 line 111 azi2: 73.536727826063\n    test 1000 line 112 lat: -36.553675\n    test 1001 line 112 lon: 38.656806\n    test 1002 line 112 fb: 134.414837\n    test 1003 line 112 lat2: -36.553675319553\n    test 1004 line 112 lon2: 38.656806212281\n    test 1005 line 112 azi2: 134.414836606696\n    test 1006 line 112 lat2: -36.553675319553\n    test 1007 line 112 lon2: 38.656806212281\n    test 1008 line 112 azi2: 134.414836606696\n    test 1009 line 113 lat: -36.798456\n    test 1010 line 113 lon: 163.588375\n    test 1011 line 113 fb: 147.324204\n    test 1012 line 113 lat2: -36.798455994877\n    test 1013 line 113 lon2: 163.588375017283\n    test 1014 line 113 azi2: 147.324204021436\n    test 1015 line 113 lat2: -36.798455994877\n    test 1016 line 113 lon2: 163.588375017283\n    test 1017 line 113 azi2: 147.324204021436\n    test 1018 line 114 lat: -15.952937\n    test 1019 line 114 lon: 55.126807\n    test 1020 line 114 fb: 134.743426\n    test 1021 line 114 lat2: -15.952937085211\n    test 1022 line 114 lon2: 55.126807113658\n    test 1023 line 114 azi2: 134.743426025963\n    test 1024 line 114 lat2: -15.952937085211\n    test 1025 line 114 lon2: 55.126807113658\n    test 1026 line 114 azi2: 134.743426025963\n    test 1027 line 115 lat: -34.573087\n    test 1028 line 115 lon: 69.304064\n    test 1029 line 115 fb: 111.515973\n    test 1030 line 115 lat2: -34.573086586710\n    test 1031 line 115 lon2: 69.304064202466\n    test 1032 line 115 azi2: 111.515973223076\n    test 1033 line 115 lat2: -34.573086586710\n    test 1034 line 115 lon2: 69.304064202466\n    test 1035 line 115 azi2: 111.515973223076\n    test 1036 line 116 lat: 26.643499\n    test 1037 line 116 lon: 1.500481\n    test 1038 line 116 fb: 7.958966\n    test 1039 line 116 lat2: 26.643498959841\n    test 1040 line 116 lon2: 1.500480924882\n    test 1041 line 116 azi2: 7.958966071178\n    test 1042 line 116 lat2: 26.643498959841\n    test 1043 line 116 lon2: 1.500480924882\n    test 1044 line 116 azi2: 7.958966071178\n    test 1045 line 117 lat: 60.891878\n    test 1046 line 117 lon: 91.543410\n    test 1047 line 117 fb: 92.273095\n    test 1048 line 117 lat2: 60.891878271763\n    test 1049 line 117 lon2: 91.543409983653\n    test 1050 line 117 azi2: 92.273095036246\n    test 1051 line 117 lat2: 60.891878271763\n    test 1052 line 117 lon2: 91.543409983653\n    test 1053 line 117 azi2: 92.273095036246\n    test 1054 line 118 lat: 64.148187\n    test 1055 line 118 lon: 136.552579\n    test 1056 line 118 fb: 147.193229\n    test 1057 line 118 lat2: 64.148186913822\n    test 1058 line 118 lon2: 136.552579389353\n    test 1059 line 118 azi2: 147.193228706030\n    test 1060 line 118 lat2: 64.148186913822\n    test 1061 line 118 lon2: 136.552579389353\n    test 1062 line 118 azi2: 147.193228706030\n    test 1063 line 119 lat: 62.311678\n    test 1064 line 119 lon: 39.238630\n    test 1065 line 119 fb: 53.785893\n    test 1066 line 119 lat2: 62.311677748693\n    test 1067 line 119 lon2: 39.238629619778\n    test 1068 line 119 azi2: 53.785893324444\n    test 1069 line 119 lat2: 62.311677748693\n    test 1070 line 119 lon2: 39.238629619778\n    test 1071 line 119 azi2: 53.785893324444\n    test 1072 line 120 lat: 27.239733\n    test 1073 line 120 lon: 136.649227\n    test 1074 line 120 fb: 162.935700\n    test 1075 line 120 lat2: 27.239733033115\n    test 1076 line 120 lon2: 136.649227320518\n    test 1077 line 120 azi2: 162.935700444146\n    test 1078 line 120 lat2: 27.239733033115\n    test 1079 line 120 lon2: 136.649227320518\n    test 1080 line 120 azi2: 162.935700444146\n    test 1081 line 121 lat: 6.562844\n    test 1082 line 121 lon: 170.159007\n    test 1083 line 121 fb: 174.851345\n    test 1084 line 121 lat2: 6.562844367534\n    test 1085 line 121 lon2: 170.159007094343\n    test 1086 line 121 azi2: 174.851345174583\n    test 1087 line 121 lat2: 6.562844367534\n    test 1088 line 121 lon2: 170.159007094343\n    test 1089 line 121 azi2: 174.851345174583\n    test 1090 line 122 lat: -29.537259\n    test 1091 line 122 lon: 105.350044\n    test 1092 line 122 fb: 141.393876\n    test 1093 line 122 lat2: -29.537259231420\n    test 1094 line 122 lon2: 105.350044044462\n    test 1095 line 122 azi2: 141.393876478962\n    test 1096 line 122 lat2: -29.537259231420\n    test 1097 line 122 lon2: 105.350044044462\n    test 1098 line 122 azi2: 141.393876478962\n    test 1099 line 123 lat: -66.447700\n    test 1100 line 123 lon: 83.741961\n    test 1101 line 123 fb: 129.422490\n    test 1102 line 123 lat2: -66.447699831143\n    test 1103 line 123 lon2: 83.741960628420\n    test 1104 line 123 azi2: 129.422490051758\n    test 1105 line 123 lat2: -66.447699831143\n    test 1106 line 123 lon2: 83.741960628420\n    test 1107 line 123 azi2: 129.422490051758\n    test 1108 line 124 lat: 56.926818\n    test 1109 line 124 lon: 20.197117\n    test 1110 line 124 fb: 37.960006\n    test 1111 line 124 lat2: 56.926817599968\n    test 1112 line 124 lon2: 20.197117058896\n    test 1113 line 124 azi2: 37.960006049295\n    test 1114 line 124 lat2: 56.926817599968\n    test 1115 line 124 lon2: 20.197117058896\n    test 1116 line 124 azi2: 37.960006049295\n    test 1117 line 125 lat: 55.018266\n    test 1118 line 125 lon: 83.735441\n    test 1119 line 125 fb: 130.766515\n    test 1120 line 125 lat2: 55.018265995959\n    test 1121 line 125 lon2: 83.735441278691\n    test 1122 line 125 azi2: 130.766514657995\n    test 1123 line 125 lat2: 55.018265995959\n    test 1124 line 125 lon2: 83.735441278691\n    test 1125 line 125 azi2: 130.766514657995\n    test 1126 line 126 lat: -78.131054\n    test 1127 line 126 lon: 56.098176\n    test 1128 line 126 fb: 127.132203\n    test 1129 line 126 lat2: -78.131053729786\n    test 1130 line 126 lon2: 56.098176359327  FAILED, KNOWN, expected 56.098176359326\n    test 1131 line 126 azi2: 127.132203471256  FAILED, KNOWN, expected 127.132203471257\n    test 1132 line 126 lat2: -78.131053729786\n    test 1133 line 126 lon2: 56.098176359326\n    test 1134 line 126 azi2: 127.132203471257\n    test 1135 line 127 lat: -18.223027\n    test 1136 line 127 lon: 86.221345\n    test 1137 line 127 fb: 114.875019\n    test 1138 line 127 lat2: -18.223027345294\n    test 1139 line 127 lon2: 86.221345156045\n    test 1140 line 127 azi2: 114.875019395396\n    test 1141 line 127 lat2: -18.223027345294\n    test 1142 line 127 lon2: 86.221345156045\n    test 1143 line 127 azi2: 114.875019395396\n    test 1144 line 128 lat: -16.100413\n    test 1145 line 128 lon: 54.195260\n    test 1146 line 128 fb: 126.748474\n    test 1147 line 128 lat2: -16.100412777565\n    test 1148 line 128 lon2: 54.195259657284\n    test 1149 line 128 azi2: 126.748473963924\n    test 1150 line 128 lat2: -16.100412777565\n    test 1151 line 128 lon2: 54.195259657284\n    test 1152 line 128 azi2: 126.748473963924\n    test 1153 line 129 lat: -15.192944\n    test 1154 line 129 lon: 85.057605\n    test 1155 line 129 fb: 133.468781\n    test 1156 line 129 lat2: -15.192944143354\n    test 1157 line 129 lon2: 85.057605312625\n    test 1158 line 129 azi2: 133.468780913302\n    test 1159 line 129 lat2: -15.192944143354\n    test 1160 line 129 lon2: 85.057605312625\n    test 1161 line 129 azi2: 133.468780913302\n    test 1162 line 130 lat: -1.279757\n    test 1163 line 130 lon: 93.430943\n    test 1164 line 130 fb: 128.545662\n    test 1165 line 130 lat2: -1.279756550061\n    test 1166 line 130 lon2: 93.430943123745\n    test 1167 line 130 azi2: 128.545661704820\n    test 1168 line 130 lat2: -1.279756550061\n    test 1169 line 130 lon2: 93.430943123745\n    test 1170 line 130 azi2: 128.545661704820\n    test 1171 line 131 lat: -29.465713\n    test 1172 line 131 lon: 79.050046\n    test 1173 line 131 fb: 109.482097\n    test 1174 line 131 lat2: -29.465712645249\n    test 1175 line 131 lon2: 79.050045796725\n    test 1176 line 131 azi2: 109.482097420926\n    test 1177 line 131 lat2: -29.465712645249\n    test 1178 line 131 lon2: 79.050045796725\n    test 1179 line 131 azi2: 109.482097420926\n    test 1180 line 132 lat: 31.819596\n    test 1181 line 132 lon: 88.251997\n    test 1182 line 132 fb: 91.173935\n    test 1183 line 132 lat2: 31.819596255581\n    test 1184 line 132 lon2: 88.251997328019\n    test 1185 line 132 azi2: 91.173935030538\n    test 1186 line 132 lat2: 31.819596255581\n    test 1187 line 132 lon2: 88.251997328019\n    test 1188 line 132 azi2: 91.173935030538\n    test 1189 line 133 lat: -63.260477\n    test 1190 line 133 lon: 96.535465\n    test 1191 line 133 fb: 84.208873\n    test 1192 line 133 lat2: -63.260477387265\n    test 1193 line 133 lon2: 96.535465277415\n    test 1194 line 133 azi2: 84.208873088521\n    test 1195 line 133 lat2: -63.260477387265\n    test 1196 line 133 lon2: 96.535465277415\n    test 1197 line 133 azi2: 84.208873088521\n    test 1198 line 134 lat: 12.908849\n    test 1199 line 134 lon: 116.734308\n    test 1200 line 134 fb: 110.313866\n    test 1201 line 134 lat2: 12.908849199388\n    test 1202 line 134 lon2: 116.734308245854\n    test 1203 line 134 azi2: 110.313865884978\n    test 1204 line 134 lat2: 12.908849199388\n    test 1205 line 134 lon2: 116.734308245854\n    test 1206 line 134 azi2: 110.313865884978\n    test 1207 line 135 lat: -73.345839\n    test 1208 line 135 lon: 99.753937\n    test 1209 line 135 fb: 89.074642\n    test 1210 line 135 lat2: -73.345839080078\n    test 1211 line 135 lon2: 99.753937450114\n    test 1212 line 135 azi2: 89.074641755279\n    test 1213 line 135 lat2: -73.345839080078\n    test 1214 line 135 lon2: 99.753937450114\n    test 1215 line 135 azi2: 89.074641755279\n    test 1216 line 136 lat: -58.777033\n    test 1217 line 136 lon: 161.963990\n    test 1218 line 136 fb: 21.998889\n    test 1219 line 136 lat2: -58.777033293076\n    test 1220 line 136 lon2: 161.963989905489\n    test 1221 line 136 azi2: 21.998888971548\n    test 1222 line 136 lat2: -58.777033293076\n    test 1223 line 136 lon2: 161.963989905489\n    test 1224 line 136 azi2: 21.998888971548\n    test 1225 line 137 lat: 5.093069\n    test 1226 line 137 lon: 53.687921\n    test 1227 line 137 fb: 124.015842\n    test 1228 line 137 lat2: 5.093068996651\n    test 1229 line 137 lon2: 53.687921438754\n    test 1230 line 137 azi2: 124.015842231205\n    test 1231 line 137 lat2: 5.093068996651\n    test 1232 line 137 lon2: 53.687921438754\n    test 1233 line 137 azi2: 124.015842231205\n    test 1234 line 138 lat: 35.659489\n    test 1235 line 138 lon: 111.729315\n    test 1236 line 138 fb: 133.697281\n    test 1237 line 138 lat2: 35.659488664161\n    test 1238 line 138 lon2: 111.729315023485\n    test 1239 line 138 azi2: 133.697281357224\n    test 1240 line 138 lat2: 35.659488664161\n    test 1241 line 138 lon2: 111.729315023485\n    test 1242 line 138 azi2: 133.697281357224\n    test 1243 line 139 lat: -24.330784\n    test 1244 line 139 lon: 71.666568\n    test 1245 line 139 fb: 106.278062\n    test 1246 line 139 lat2: -24.330783755994\n    test 1247 line 139 lon2: 71.666567863169  FAILED, KNOWN, expected 71.666567863170\n    test 1248 line 139 azi2: 106.278062394907\n    test 1249 line 139 lat2: -24.330783755994\n    test 1250 line 139 lon2: 71.666567863170\n    test 1251 line 139 azi2: 106.278062394907\n    test 1252 line 140 lat: -46.218742\n    test 1253 line 140 lon: 91.580078\n    test 1254 line 140 fb: 106.279111\n    test 1255 line 140 lat2: -46.218742288678\n    test 1256 line 140 lon2: 91.580077788700\n    test 1257 line 140 azi2: 106.279110700398\n    test 1258 line 140 lat2: -46.218742288678\n    test 1259 line 140 lon2: 91.580077788700\n    test 1260 line 140 azi2: 106.279110700399  FAILED, KNOWN, expected 106.279110700398\n    test 1261 line 141 lat: 50.143353\n    test 1262 line 141 lon: 101.322503\n    test 1263 line 141 fb: 154.314496\n    test 1264 line 141 lat2: 50.143352562968\n    test 1265 line 141 lon2: 101.322502529615\n    test 1266 line 141 azi2: 154.314496467352\n    test 1267 line 141 lat2: 50.143352562968\n    test 1268 line 141 lon2: 101.322502529615\n    test 1269 line 141 azi2: 154.314496467352\n    test 1270 line 142 lat: -16.604376\n    test 1271 line 142 lon: 134.279201\n    test 1272 line 142 fb: 106.895990\n    test 1273 line 142 lat2: -16.604375537699\n    test 1274 line 142 lon2: 134.279201209117\n    test 1275 line 142 azi2: 106.895989785632\n    test 1276 line 142 lat2: -16.604375537699\n    test 1277 line 142 lon2: 134.279201209117\n    test 1278 line 142 azi2: 106.895989785632\n    test 1279 line 143 lat: 54.031290\n    test 1280 line 143 lon: 144.862702\n    test 1281 line 143 fb: 152.937010\n    test 1282 line 143 lat2: 54.031289901242\n    test 1283 line 143 lon2: 144.862701667601\n    test 1284 line 143 azi2: 152.937009701639\n    test 1285 line 143 lat2: 54.031289901242\n    test 1286 line 143 lon2: 144.862701667601\n    test 1287 line 143 azi2: 152.937009701639\n    test 1288 line 144 lat: 0.616911\n    test 1289 line 144 lon: 110.974662\n    test 1290 line 144 fb: 115.206118\n    test 1291 line 144 lat2: 0.616910921892\n    test 1292 line 144 lon2: 110.974662272005\n    test 1293 line 144 azi2: 115.206118431862\n    test 1294 line 144 lat2: 0.616910921892\n    test 1295 line 144 lon2: 110.974662272005\n    test 1296 line 144 azi2: 115.206118431862\n    test 1297 line 145 lat: -6.243779\n    test 1298 line 145 lon: 175.658895\n    test 1299 line 145 fb: 177.520147\n    test 1300 line 145 lat2: -6.243779047728\n    test 1301 line 145 lon2: 175.658894820006\n    test 1302 line 145 azi2: 177.520147377315\n    test 1303 line 145 lat2: -6.243779047728\n    test 1304 line 145 lon2: 175.658894820006\n    test 1305 line 145 azi2: 177.520147377315\n    test 1306 line 146 lat: -70.416699\n    test 1307 line 146 lon: 169.642468\n    test 1308 line 146 fb: 11.978943\n    test 1309 line 146 lat2: -70.416698815769\n    test 1310 line 146 lon2: 169.642468357274\n    test 1311 line 146 azi2: 11.978943348082\n    test 1312 line 146 lat2: -70.416698815769\n    test 1313 line 146 lon2: 169.642468357274\n    test 1314 line 146 azi2: 11.978943348082\n    test 1315 line 147 lat: 19.558617\n    test 1316 line 147 lon: 88.645709\n    test 1317 line 147 fb: 113.578814\n    test 1318 line 147 lat2: 19.558616692495\n    test 1319 line 147 lon2: 88.645708539223\n    test 1320 line 147 azi2: 113.578814362497\n    test 1321 line 147 lat2: 19.558616692495\n    test 1322 line 147 lon2: 88.645708539223\n    test 1323 line 147 azi2: 113.578814362497\n    test 1324 line 148 lat: -23.555114\n    test 1325 line 148 lon: 162.457529\n    test 1326 line 148 fb: 147.104331\n    test 1327 line 148 lat2: -23.555114207892\n    test 1328 line 148 lon2: 162.457529431664\n    test 1329 line 148 azi2: 147.104330772141\n    test 1330 line 148 lat2: -23.555114207892\n    test 1331 line 148 lon2: 162.457529431664\n    test 1332 line 148 azi2: 147.104330772141\n    test 1333 line 149 lat: -51.275738\n    test 1334 line 149 lon: 103.747943\n    test 1335 line 149 fb: 115.235374\n    test 1336 line 149 lat2: -51.275737933996\n    test 1337 line 149 lon2: 103.747943009536\n    test 1338 line 149 azi2: 115.235373813929\n    test 1339 line 149 lat2: -51.275737933996\n    test 1340 line 149 lon2: 103.747943009536\n    test 1341 line 149 azi2: 115.235373813929\n    test 1342 line 150 lat: 25.374602\n    test 1343 line 150 lon: 143.135783\n    test 1344 line 150 fb: 126.548735\n    test 1345 line 150 lat2: 25.374601552526\n    test 1346 line 150 lon2: 143.135783283239\n    test 1347 line 150 azi2: 126.548735117003\n    test 1348 line 150 lat2: 25.374601552526\n    test 1349 line 150 lon2: 143.135783283239\n    test 1350 line 150 azi2: 126.548735117003\n    test 1351 line 151 lat: 23.967825\n    test 1352 line 151 lon: 153.611116\n    test 1353 line 151 fb: 149.714116\n    test 1354 line 151 lat2: 23.967824782385\n    test 1355 line 151 lon2: 153.611115762587\n    test 1356 line 151 azi2: 149.714116426025\n    test 1357 line 151 lat2: 23.967824782385\n    test 1358 line 151 lon2: 153.611115762587\n    test 1359 line 151 azi2: 149.714116426025\n    test 1360 line 152 lat: -22.787507\n    test 1361 line 152 lon: 111.258647\n    test 1362 line 152 fb: 86.335100\n    test 1363 line 152 lat2: -22.787506689568\n    test 1364 line 152 lon2: 111.258646767306\n    test 1365 line 152 azi2: 86.335099650483\n    test 1366 line 152 lat2: -22.787506689568\n    test 1367 line 152 lon2: 111.258646767306\n    test 1368 line 152 azi2: 86.335099650483\n    test 1369 line 153 lat: -59.789842\n    test 1370 line 153 lon: 114.054983\n    test 1371 line 153 fb: 75.612605\n    test 1372 line 153 lat2: -59.789841532294\n    test 1373 line 153 lon2: 114.054983422255\n    test 1374 line 153 azi2: 75.612605242726\n    test 1375 line 153 lat2: -59.789841532294\n    test 1376 line 153 lon2: 114.054983422255\n    test 1377 line 153 azi2: 75.612605242726\n    test 1378 line 154 lat: -2.802505\n    test 1379 line 154 lon: 126.245955\n    test 1380 line 154 fb: 150.100576\n    test 1381 line 154 lat2: -2.802505438545\n    test 1382 line 154 lon2: 126.245955176418\n    test 1383 line 154 azi2: 150.100575968176\n    test 1384 line 154 lat2: -2.802505438545\n    test 1385 line 154 lon2: 126.245955176418\n    test 1386 line 154 azi2: 150.100575968176\n    test 1387 line 155 lat: 35.735653\n    test 1388 line 155 lon: 102.768725\n    test 1389 line 155 fb: 99.024702\n    test 1390 line 155 lat2: 35.735653026165\n    test 1391 line 155 lon2: 102.768725495110\n    test 1392 line 155 azi2: 99.024701978369\n    test 1393 line 155 lat2: 35.735653026165\n    test 1394 line 155 lon2: 102.768725495110\n    test 1395 line 155 azi2: 99.024701978369\n    test 1396 line 156 lat: 15.906682\n    test 1397 line 156 lon: 117.446654\n    test 1398 line 156 fb: 130.449965\n    test 1399 line 156 lat2: 15.906681603252\n    test 1400 line 156 lon2: 117.446653873860\n    test 1401 line 156 azi2: 130.449965412147\n    test 1402 line 156 lat2: 15.906681603252\n    test 1403 line 156 lon2: 117.446653873860\n    test 1404 line 156 azi2: 130.449965412147\n    test 1405 line 157 lat: -54.375988\n    test 1406 line 157 lon: 33.243363\n    test 1407 line 157 fb: 144.361175\n    test 1408 line 157 lat2: -54.375987804166\n    test 1409 line 157 lon2: 33.243362594038\n    test 1410 line 157 azi2: 144.361175098783\n    test 1411 line 157 lat2: -54.375987804166\n    test 1412 line 157 lon2: 33.243362594038\n    test 1413 line 157 azi2: 144.361175098783\n    test 1414 line 158 lat: 3.588251\n    test 1415 line 158 lon: 156.659583\n    test 1416 line 158 fb: 112.153293\n    test 1417 line 158 lat2: 3.588250783960\n    test 1418 line 158 lon2: 156.659583234995\n    test 1419 line 158 azi2: 112.153293017228\n    test 1420 line 158 lat2: 3.588250783960\n    test 1421 line 158 lon2: 156.659583234995\n    test 1422 line 158 azi2: 112.153293017228\n    test 1423 line 159 lat: -51.719977\n    test 1424 line 159 lon: 134.141061\n    test 1425 line 159 fb: 129.170451\n    test 1426 line 159 lat2: -51.719977004790\n    test 1427 line 159 lon2: 134.141060992499\n    test 1428 line 159 azi2: 129.170451102958\n    test 1429 line 159 lat2: -51.719977004790\n    test 1430 line 159 lon2: 134.141060992499\n    test 1431 line 159 azi2: 129.170451102958\n    test 1432 line 160 lat: 22.935153\n    test 1433 line 160 lon: 109.461291\n    test 1434 line 160 fb: 120.676556\n    test 1435 line 160 lat2: 22.935153219965\n    test 1436 line 160 lon2: 109.461291078917\n    test 1437 line 160 azi2: 120.676555897336\n    test 1438 line 160 lat2: 22.935153219965\n    test 1439 line 160 lon2: 109.461291078917\n    test 1440 line 160 azi2: 120.676555897336\n    test 1441 line 161 lat: -5.314690\n    test 1442 line 161 lon: 70.995225\n    test 1443 line 161 fb: 129.681273\n    test 1444 line 161 lat2: -5.314689990173\n    test 1445 line 161 lon2: 70.995224692450\n    test 1446 line 161 azi2: 129.681272635794\n    test 1447 line 161 lat2: -5.314689990173\n    test 1448 line 161 lon2: 70.995224692450\n    test 1449 line 161 azi2: 129.681272635794\n    test 1450 line 162 lat: 49.147134\n    test 1451 line 162 lon: 16.182514\n    test 1452 line 162 fb: 38.926644\n    test 1453 line 162 lat2: 49.147133873971\n    test 1454 line 162 lon2: 16.182514450690\n    test 1455 line 162 azi2: 38.926644196248\n    test 1456 line 162 lat2: 49.147133873971\n    test 1457 line 162 lon2: 16.182514450690\n    test 1458 line 162 azi2: 38.926644196248\n    test 1459 line 163 lat: -55.079363\n    test 1460 line 163 lon: 93.170898\n    test 1461 line 163 fb: 97.017492\n    test 1462 line 163 lat2: -55.079363368717\n    test 1463 line 163 lon2: 93.170898482121\n    test 1464 line 163 azi2: 97.017491592293\n    test 1465 line 163 lat2: -55.079363368717\n    test 1466 line 163 lon2: 93.170898482121\n    test 1467 line 163 azi2: 97.017491592293\n    test 1468 line 164 lat: 26.410771\n    test 1469 line 164 lon: 109.934003\n    test 1470 line 164 fb: 103.660846\n    test 1471 line 164 lat2: 26.410770923895\n    test 1472 line 164 lon2: 109.934003168641\n    test 1473 line 164 azi2: 103.660846029906\n    test 1474 line 164 lat2: 26.410770923895\n    test 1475 line 164 lon2: 109.934003168641\n    test 1476 line 164 azi2: 103.660846029906\n    test 1477 line 165 lat: -2.539670\n    test 1478 line 165 lon: 138.682325\n    test 1479 line 165 fb: 100.016568\n    test 1480 line 165 lat2: -2.539669792389\n    test 1481 line 165 lon2: 138.682325493918\n    test 1482 line 165 azi2: 100.016568432752\n    test 1483 line 165 lat2: -2.539669792389\n    test 1484 line 165 lon2: 138.682325493918\n    test 1485 line 165 azi2: 100.016568432752\n    test 1486 line 166 lat: 10.563299\n    test 1487 line 166 lon: 50.532119\n    test 1488 line 166 fb: 126.356066\n    test 1489 line 166 lat2: 10.563299452649\n    test 1490 line 166 lon2: 50.532119480076\n    test 1491 line 166 azi2: 126.356065708364\n    test 1492 line 166 lat2: 10.563299452649\n    test 1493 line 166 lon2: 50.532119480076\n    test 1494 line 166 azi2: 126.356065708364\n    test 1495 line 167 lat: 51.443871\n    test 1496 line 167 lon: 88.799162\n    test 1497 line 167 fb: 145.239198\n    test 1498 line 167 lat2: 51.443871023711\n    test 1499 line 167 lon2: 88.799161779253\n    test 1500 line 167 azi2: 145.239198135633\n    test 1501 line 167 lat2: 51.443871023711\n    test 1502 line 167 lon2: 88.799161779253\n    test 1503 line 167 azi2: 145.239198135632  FAILED, KNOWN, expected 145.239198135633\n    test 1504 line 168 lat: -80.240756\n    test 1505 line 168 lon: 170.591261\n    test 1506 line 168 fb: 19.402427\n    test 1507 line 168 lat2: -80.240756380896\n    test 1508 line 168 lon2: 170.591260542730\n    test 1509 line 168 azi2: 19.402427357239\n    test 1510 line 168 lat2: -80.240756380896\n    test 1511 line 168 lon2: 170.591260542730\n    test 1512 line 168 azi2: 19.402427357239\n    test 1513 line 169 lat: 51.976040\n    test 1514 line 169 lon: 165.045244\n    test 1515 line 169 fb: 167.962110\n    test 1516 line 169 lat2: 51.976039799074\n    test 1517 line 169 lon2: 165.045244285456\n    test 1518 line 169 azi2: 167.962110268433\n    test 1519 line 169 lat2: 51.976039799074\n    test 1520 line 169 lon2: 165.045244285456\n    test 1521 line 169 azi2: 167.962110268433\n    test 1522 line 170 lat: 29.365655\n    test 1523 line 170 lon: 91.354349\n    test 1524 line 170 fb: 135.101279\n    test 1525 line 170 lat2: 29.365654873524\n    test 1526 line 170 lon2: 91.354349089561\n    test 1527 line 170 azi2: 135.101278715212\n    test 1528 line 170 lat2: 29.365654873524\n    test 1529 line 170 lon2: 91.354349089561\n    test 1530 line 170 azi2: 135.101278715212\n    test 1531 line 171 lat: 61.745486\n    test 1532 line 171 lon: 142.333199\n    test 1533 line 171 fb: 139.666209\n    test 1534 line 171 lat2: 61.745485817368\n    test 1535 line 171 lon2: 142.333198773096\n    test 1536 line 171 azi2: 139.666208757008\n    test 1537 line 171 lat2: 61.745485817368\n    test 1538 line 171 lon2: 142.333198773096\n    test 1539 line 171 azi2: 139.666208757008\n    test 1540 line 172 lat: 13.414523\n    test 1541 line 172 lon: 39.322993\n    test 1542 line 172 fb: 144.276516\n    test 1543 line 172 lat2: 13.414522997032\n    test 1544 line 172 lon2: 39.322992706733\n    test 1545 line 172 azi2: 144.276515542083\n    test 1546 line 172 lat2: 13.414522997032\n    test 1547 line 172 lon2: 39.322992706733\n    test 1548 line 172 azi2: 144.276515542083\n    test 1549 line 173 lat: -49.831353\n    test 1550 line 173 lon: 72.426738\n    test 1551 line 173 fb: 126.251620\n    test 1552 line 173 lat2: -49.831353332108\n    test 1553 line 173 lon2: 72.426737728887\n    test 1554 line 173 azi2: 126.251620412456\n    test 1555 line 173 lat2: -49.831353332108\n    test 1556 line 173 lon2: 72.426737728887\n    test 1557 line 173 azi2: 126.251620412456\n    test 1558 line 174 lat: 1.822589\n    test 1559 line 174 lon: 53.589208\n    test 1560 line 174 fb: 97.925176\n    test 1561 line 174 lat2: 1.822589208021\n    test 1562 line 174 lon2: 53.589207810481\n    test 1563 line 174 azi2: 97.925176229124\n    test 1564 line 174 lat2: 1.822589208021\n    test 1565 line 174 lon2: 53.589207810481\n    test 1566 line 174 azi2: 97.925176229124\n    test 1567 line 175 lat: -7.987194\n    test 1568 line 175 lon: 49.318809\n    test 1569 line 175 fb: 128.386595\n    test 1570 line 175 lat2: -7.987193900849\n    test 1571 line 175 lon2: 49.318809304076\n    test 1572 line 175 azi2: 128.386594768748\n    test 1573 line 175 lat2: -7.987193900849\n    test 1574 line 175 lon2: 49.318809304075  FAILED, KNOWN, expected 49.318809304076\n    test 1575 line 175 azi2: 128.386594768748\n    test 1576 line 176 lat: -56.807375\n    test 1577 line 176 lon: 4.521802\n    test 1578 line 176 fb: 176.806063\n    test 1579 line 176 lat2: -56.807375049864\n    test 1580 line 176 lon2: 4.521801986353\n    test 1581 line 176 azi2: 176.806062785470\n    test 1582 line 176 lat2: -56.807375049864\n    test 1583 line 176 lon2: 4.521801986353\n    test 1584 line 176 azi2: 176.806062785470\n    test 1585 line 177 lat: -25.969834\n    test 1586 line 177 lon: 64.903749\n    test 1587 line 177 fb: 124.103844\n    test 1588 line 177 lat2: -25.969833883721\n    test 1589 line 177 lon2: 64.903749477059\n    test 1590 line 177 azi2: 124.103844353942\n    test 1591 line 177 lat2: -25.969833883721\n    test 1592 line 177 lon2: 64.903749477059\n    test 1593 line 177 azi2: 124.103844353942\n    test 1594 line 178 lat: 32.807360\n    test 1595 line 178 lon: 65.107962\n    test 1596 line 178 fb: 124.577990\n    test 1597 line 178 lat2: 32.807359742667\n    test 1598 line 178 lon2: 65.107961864983\n    test 1599 line 178 azi2: 124.577990419073\n    test 1600 line 178 lat2: 32.807359742667\n    test 1601 line 178 lon2: 65.107961864983\n    test 1602 line 178 azi2: 124.577990419073\n    test 1603 line 179 lat: -21.552138\n    test 1604 line 179 lon: 102.466022\n    test 1605 line 179 fb: 109.640197\n    test 1606 line 179 lat2: -21.552137872353\n    test 1607 line 179 lon2: 102.466021945025\n    test 1608 line 179 azi2: 109.640197455958\n    test 1609 line 179 lat2: -21.552137872353\n    test 1610 line 179 lon2: 102.466021945025\n    test 1611 line 179 azi2: 109.640197455958\n    test 1612 line 180 lat: -26.271741\n    test 1613 line 180 lon: 158.321581\n    test 1614 line 180 fb: 165.993649\n    test 1615 line 180 lat2: -26.271741383677\n    test 1616 line 180 lon2: 158.321581345077\n    test 1617 line 180 azi2: 165.993649158304  FAILED, KNOWN, expected 165.993649158305\n    test 1618 line 180 lat2: -26.271741383677\n    test 1619 line 180 lon2: 158.321581345077\n    test 1620 line 180 azi2: 165.993649158305\n    test 1621 line 181 lat: 41.023069\n    test 1622 line 181 lon: 155.562542\n    test 1623 line 181 fb: 153.407414\n    test 1624 line 181 lat2: 41.023069113496\n    test 1625 line 181 lon2: 155.562542134179\n    test 1626 line 181 azi2: 153.407413608014\n    test 1627 line 181 lat2: 41.023069113496\n    test 1628 line 181 lon2: 155.562542134179\n    test 1629 line 181 azi2: 153.407413608014\n    test 1630 line 182 lat: 16.445471\n    test 1631 line 182 lon: 165.261461\n    test 1632 line 182 fb: 165.424806\n    test 1633 line 182 lat2: 16.445470954340\n    test 1634 line 182 lon2: 165.261461448873\n    test 1635 line 182 azi2: 165.424806257119\n    test 1636 line 182 lat2: 16.445470954340\n    test 1637 line 182 lon2: 165.261461448873\n    test 1638 line 182 azi2: 165.424806257119\n    test 1639 line 183 lat: -3.222107\n    test 1640 line 183 lon: 84.129727\n    test 1641 line 183 fb: 154.083851\n    test 1642 line 183 lat2: -3.222107095788\n    test 1643 line 183 lon2: 84.129726900596\n    test 1644 line 183 azi2: 154.083851495688\n    test 1645 line 183 lat2: -3.222107095788\n    test 1646 line 183 lon2: 84.129726900596\n    test 1647 line 183 azi2: 154.083851495688\n    test 1648 line 184 lat: 7.811710\n    test 1649 line 184 lon: 123.143308\n    test 1650 line 184 fb: 123.998106\n    test 1651 line 184 lat2: 7.811709739638\n    test 1652 line 184 lon2: 123.143308309660\n    test 1653 line 184 azi2: 123.998105582525\n    test 1654 line 184 lat2: 7.811709739638\n    test 1655 line 184 lon2: 123.143308309660\n    test 1656 line 184 azi2: 123.998105582525\n    test 1657 line 185 lat: -45.235922\n    test 1658 line 185 lon: 129.419283\n    test 1659 line 185 fb: 91.493406\n    test 1660 line 185 lat2: -45.235922276879\n    test 1661 line 185 lon2: 129.419282696458\n    test 1662 line 185 azi2: 91.493405946969  FAILED, KNOWN, expected 91.493405946970\n    test 1663 line 185 lat2: -45.235922276879\n    test 1664 line 185 lon2: 129.419282696458\n    test 1665 line 185 azi2: 91.493405946970\n    test 1666 line 186 lat: -43.047563\n    test 1667 line 186 lon: 121.565541\n    test 1668 line 186 fb: 99.850543\n    test 1669 line 186 lat2: -43.047563118772\n    test 1670 line 186 lon2: 121.565540573788\n    test 1671 line 186 azi2: 99.850542926816\n    test 1672 line 186 lat2: -43.047563118772\n    test 1673 line 186 lon2: 121.565540573788\n    test 1674 line 186 azi2: 99.850542926816\n    test 1675 line 187 lat: -22.881002\n    test 1676 line 187 lon: 159.765030\n    test 1677 line 187 fb: 60.474878\n    test 1678 line 187 lat2: -22.881001889671\n    test 1679 line 187 lon2: 159.765030106650\n    test 1680 line 187 azi2: 60.474878214384\n    test 1681 line 187 lat2: -22.881001889671\n    test 1682 line 187 lon2: 159.765030106650\n    test 1683 line 187 azi2: 60.474878214384\n    test 1684 line 188 lat: -15.011946\n    test 1685 line 188 lon: 55.594746\n    test 1686 line 188 fb: 121.838839\n    test 1687 line 188 lat2: -15.011946251300\n    test 1688 line 188 lon2: 55.594746074667\n    test 1689 line 188 azi2: 121.838839080255\n    test 1690 line 188 lat2: -15.011946251300\n    test 1691 line 188 lon2: 55.594746074667\n    test 1692 line 188 azi2: 121.838839080255\n    test 1693 line 189 lat: -29.011142\n    test 1694 line 189 lon: 0.856639\n    test 1695 line 189 fb: 178.744943\n    test 1696 line 189 lat2: -29.011142183887\n    test 1697 line 189 lon2: 0.856639457160\n    test 1698 line 189 azi2: 178.744943180805\n    test 1699 line 189 lat2: -29.011142183887\n    test 1700 line 189 lon2: 0.856639457160\n    test 1701 line 189 azi2: 178.744943180805\n    test 1702 line 190 lat: -0.353001\n    test 1703 line 190 lon: 48.401255\n    test 1704 line 190 fb: 95.612551\n    test 1705 line 190 lat2: -0.353000909367\n    test 1706 line 190 lon2: 48.401254652488  FAILED, KNOWN, expected 48.401254652487\n    test 1707 line 190 azi2: 95.612551044908\n    test 1708 line 190 lat2: -0.353000909367\n    test 1709 line 190 lon2: 48.401254652487\n    test 1710 line 190 azi2: 95.612551044908\n    test 1711 line 191 lat: 18.843341\n    test 1712 line 191 lon: 105.405456\n    test 1713 line 191 fb: 145.215722\n    test 1714 line 191 lat2: 18.843340962664\n    test 1715 line 191 lon2: 105.405456105476\n    test 1716 line 191 azi2: 145.215722323742\n    test 1717 line 191 lat2: 18.843340962664\n    test 1718 line 191 lon2: 105.405456105476\n    test 1719 line 191 azi2: 145.215722323742\n    test 1720 line 192 lat: 19.672225\n    test 1721 line 192 lon: 64.132980\n    test 1722 line 192 fb: 131.894863\n    test 1723 line 192 lat2: 19.672224913225\n    test 1724 line 192 lon2: 64.132979510420\n    test 1725 line 192 azi2: 131.894863434272\n    test 1726 line 192 lat2: 19.672224913225\n    test 1727 line 192 lon2: 64.132979510420\n    test 1728 line 192 azi2: 131.894863434272\n    test 1729 line 193 lat: -44.315074\n    test 1730 line 193 lon: 132.711860\n    test 1731 line 193 fb: 57.236875\n    test 1732 line 193 lat2: -44.315073617889\n    test 1733 line 193 lon2: 132.711860436437\n    test 1734 line 193 azi2: 57.236875169148\n    test 1735 line 193 lat2: -44.315073617889\n    test 1736 line 193 lon2: 132.711860436437\n    test 1737 line 193 azi2: 57.236875169148\n    test 1738 line 194 lat: 71.956294\n    test 1739 line 194 lon: 23.707587\n    test 1740 line 194 fb: 28.235947\n    test 1741 line 194 lat2: 71.956293555096\n    test 1742 line 194 lon2: 23.707587498943\n    test 1743 line 194 azi2: 28.235946630177\n    test 1744 line 194 lat2: 71.956293555096\n    test 1745 line 194 lon2: 23.707587498943\n    test 1746 line 194 azi2: 28.235946630177\n    test 1747 line 195 lat: -1.372652\n    test 1748 line 195 lon: 37.704231\n    test 1749 line 195 fb: 92.737862\n    test 1750 line 195 lat2: -1.372652195171\n    test 1751 line 195 lon2: 37.704230798676\n    test 1752 line 195 azi2: 92.737862264368\n    test 1753 line 195 lat2: -1.372652195171\n    test 1754 line 195 lon2: 37.704230798676\n    test 1755 line 195 azi2: 92.737862264368\n    test 1756 line 196 lat: 32.377148\n    test 1757 line 196 lon: 148.638709\n    test 1758 line 196 fb: 164.415210\n    test 1759 line 196 lat2: 32.377147634362\n    test 1760 line 196 lon2: 148.638709383249\n    test 1761 line 196 azi2: 164.415210005459\n    test 1762 line 196 lat2: 32.377147634362\n    test 1763 line 196 lon2: 148.638709383249\n    test 1764 line 196 azi2: 164.415210005459\n    test 1765 line 197 lat: 77.876832\n    test 1766 line 197 lon: 86.074591\n    test 1767 line 197 fb: 93.017705\n    test 1768 line 197 lat2: 77.876831887051\n    test 1769 line 197 lon2: 86.074590642864\n    test 1770 line 197 azi2: 93.017704501543\n    test 1771 line 197 lat2: 77.876831887051\n    test 1772 line 197 lon2: 86.074590642864\n    test 1773 line 197 azi2: 93.017704501543\n    test 1774 line 198 lat: -7.405195\n    test 1775 line 198 lon: 11.962469\n    test 1776 line 198 fb: 123.788484\n    test 1777 line 198 lat2: -7.405194804958\n    test 1778 line 198 lon2: 11.962468510681\n    test 1779 line 198 azi2: 123.788484407208\n    test 1780 line 198 lat2: -7.405194804958\n    test 1781 line 198 lon2: 11.962468510681\n    test 1782 line 198 azi2: 123.788484407208\n    test 1783 line 199 lat: -75.001311\n    test 1784 line 199 lon: 173.334144\n    test 1785 line 199 fb: 8.916523\n    test 1786 line 199 lat2: -75.001310556015\n    test 1787 line 199 lon2: 173.334144385512\n    test 1788 line 199 azi2: 8.916523271572\n    test 1789 line 199 lat2: -75.001310556015\n    test 1790 line 199 lon2: 173.334144385512\n    test 1791 line 199 azi2: 8.916523271572\n    test 1792 line 200 lat: -33.145967\n    test 1793 line 200 lon: 32.349241\n    test 1794 line 200 fb: 154.035798\n    test 1795 line 200 lat2: -33.145966631435\n    test 1796 line 200 lon2: 32.349240627001\n    test 1797 line 200 azi2: 154.035798269631\n    test 1798 line 200 lat2: -33.145966631435\n    test 1799 line 200 lon2: 32.349240627001\n    test 1800 line 200 azi2: 154.035798269631\n    test 1801 line 201 lat: 32.938605\n    test 1802 line 201 lon: 98.042857\n    test 1803 line 201 fb: 124.954750\n    test 1804 line 201 lat2: 32.938605083648\n    test 1805 line 201 lon2: 98.042857137838\n    test 1806 line 201 azi2: 124.954750401990\n    test 1807 line 201 lat2: 32.938605083648\n    test 1808 line 201 lon2: 98.042857137838\n    test 1809 line 201 azi2: 124.954750401990\n    test 1810 line 202 lat: 18.924315\n    test 1811 line 202 lon: 20.712136\n    test 1812 line 202 fb: 118.058457\n    test 1813 line 202 lat2: 18.924314631117\n    test 1814 line 202 lon2: 20.712135699713\n    test 1815 line 202 azi2: 118.058457437327\n    test 1816 line 202 lat2: 18.924314631117\n    test 1817 line 202 lon2: 20.712135699713\n    test 1818 line 202 azi2: 118.058457437327\n    test 1819 line 203 lat: 34.281652\n    test 1820 line 203 lon: 66.815398\n    test 1821 line 203 fb: 147.693080\n    test 1822 line 203 lat2: 34.281652047931\n    test 1823 line 203 lon2: 66.815398066147\n    test 1824 line 203 azi2: 147.693079659533\n    test 1825 line 203 lat2: 34.281652047931\n    test 1826 line 203 lon2: 66.815398066147\n    test 1827 line 203 azi2: 147.693079659533\n    test 1828 line 204 lat: -56.830635\n    test 1829 line 204 lon: 2.137046\n    test 1830 line 204 fb: 178.041562\n    test 1831 line 204 lat2: -56.830634769513\n    test 1832 line 204 lon2: 2.137046322217\n    test 1833 line 204 azi2: 178.041562126305\n    test 1834 line 204 lat2: -56.830634769513\n    test 1835 line 204 lon2: 2.137046322217\n    test 1836 line 204 azi2: 178.041562126305\n    test 1837 line 205 lat: -68.481893\n    test 1838 line 205 lon: 107.036720\n    test 1839 line 205 fb: 152.384477\n    test 1840 line 205 lat2: -68.481892540174\n    test 1841 line 205 lon2: 107.036720123074\n    test 1842 line 205 azi2: 152.384476595412\n    test 1843 line 205 lat2: -68.481892540174\n    test 1844 line 205 lon2: 107.036720123074\n    test 1845 line 205 azi2: 152.384476595412\n    test 1846 line 206 lat: -22.502042\n    test 1847 line 206 lon: 171.827566\n    test 1848 line 206 fb: 158.834328\n    test 1849 line 206 lat2: -22.502042312255\n    test 1850 line 206 lon2: 171.827566033608\n    test 1851 line 206 azi2: 158.834327972407\n    test 1852 line 206 lat2: -22.502042312255\n    test 1853 line 206 lon2: 171.827566033608\n    test 1854 line 206 azi2: 158.834327972407\n    test 1855 line 207 lat: -4.504199\n    test 1856 line 207 lon: 138.544338\n    test 1857 line 207 fb: 123.633526\n    test 1858 line 207 lat2: -4.504199404775\n    test 1859 line 207 lon2: 138.544338028736\n    test 1860 line 207 azi2: 123.633526406205\n    test 1861 line 207 lat2: -4.504199404775\n    test 1862 line 207 lon2: 138.544338028736\n    test 1863 line 207 azi2: 123.633526406205\n    test 1864 line 208 lat: -9.226343\n    test 1865 line 208 lon: 120.310050\n    test 1866 line 208 fb: 142.789186\n    test 1867 line 208 lat2: -9.226343110712\n    test 1868 line 208 lon2: 120.310050148004\n    test 1869 line 208 azi2: 142.789186422068\n    test 1870 line 208 lat2: -9.226343110712\n    test 1871 line 208 lon2: 120.310050148004\n    test 1872 line 208 azi2: 142.789186422068\n    test 1873 line 209 lat: -51.684044\n    test 1874 line 209 lon: 137.764140\n    test 1875 line 209 fb: 56.844891\n    test 1876 line 209 lat2: -51.684044075582\n    test 1877 line 209 lon2: 137.764139808689\n    test 1878 line 209 azi2: 56.844890846790\n    test 1879 line 209 lat2: -51.684044075582\n    test 1880 line 209 lon2: 137.764139808689\n    test 1881 line 209 azi2: 56.844890846790\n    test 1882 line 210 lat: 19.467357\n    test 1883 line 210 lon: 93.870087\n    test 1884 line 210 fb: 129.125491\n    test 1885 line 210 lat2: 19.467357090193\n    test 1886 line 210 lon2: 93.870087361293\n    test 1887 line 210 azi2: 129.125490840370\n    test 1888 line 210 lat2: 19.467357090193\n    test 1889 line 210 lon2: 93.870087361293\n    test 1890 line 210 azi2: 129.125490840370\n    test 1891 line 211 lat: 33.594608\n    test 1892 line 211 lon: 58.324143\n    test 1893 line 211 fb: 101.975372\n    test 1894 line 211 lat2: 33.594607695347\n    test 1895 line 211 lon2: 58.324143410893\n    test 1896 line 211 azi2: 101.975372004111\n    test 1897 line 211 lat2: 33.594607695347\n    test 1898 line 211 lon2: 58.324143410893\n    test 1899 line 211 azi2: 101.975372004111\n    test 1900 line 212 lat: -1.184701\n    test 1901 line 212 lon: 92.834285\n    test 1902 line 212 fb: 134.201097\n    test 1903 line 212 lat2: -1.184701423910\n    test 1904 line 212 lon2: 92.834285031504\n    test 1905 line 212 azi2: 134.201097217000\n    test 1906 line 212 lat2: -1.184701423910\n    test 1907 line 212 lon2: 92.834285031504\n    test 1908 line 212 azi2: 134.201097217000\n    test 1909 line 213 lat: 5.878639\n    test 1910 line 213 lon: 90.756173\n    test 1911 line 213 fb: 156.936699\n    test 1912 line 213 lat2: 5.878638801092\n    test 1913 line 213 lon2: 90.756172727682\n    test 1914 line 213 azi2: 156.936698928215\n    test 1915 line 213 lat2: 5.878638801092\n    test 1916 line 213 lon2: 90.756172727682\n    test 1917 line 213 azi2: 156.936698928215\n    test 1918 line 214 lat: 47.611646\n    test 1919 line 214 lon: 131.482218\n    test 1920 line 214 fb: 152.077667\n    test 1921 line 214 lat2: 47.611646039058\n    test 1922 line 214 lon2: 131.482217984255\n    test 1923 line 214 azi2: 152.077667341138\n    test 1924 line 214 lat2: 47.611646039058\n    test 1925 line 214 lon2: 131.482217984255\n    test 1926 line 214 azi2: 152.077667341138\n    test 1927 line 215 lat: 13.906234\n    test 1928 line 215 lon: 115.526238\n    test 1929 line 215 fb: 130.769627\n    test 1930 line 215 lat2: 13.906233945801\n    test 1931 line 215 lon2: 115.526238064488\n    test 1932 line 215 azi2: 130.769627488545\n    test 1933 line 215 lat2: 13.906233945801\n    test 1934 line 215 lon2: 115.526238064488\n    test 1935 line 215 azi2: 130.769627488545\n    test 1936 line 216 lat: 3.675485\n    test 1937 line 216 lon: 80.781862\n    test 1938 line 216 fb: 94.188426\n    test 1939 line 216 lat2: 3.675485213596\n    test 1940 line 216 lon2: 80.781861923838\n    test 1941 line 216 azi2: 94.188426367881\n    test 1942 line 216 lat2: 3.675485213596\n    test 1943 line 216 lon2: 80.781861923838\n    test 1944 line 216 azi2: 94.188426367881\n    test 1945 line 217 lat: 68.665600\n    test 1946 line 217 lon: 21.503123\n    test 1947 line 217 fb: 107.667810\n    test 1948 line 217 lat2: 68.665599857810\n    test 1949 line 217 lon2: 21.503123449290\n    test 1950 line 217 azi2: 107.667809564608\n    test 1951 line 217 lat2: 68.665599857810\n    test 1952 line 217 lon2: 21.503123449290\n    test 1953 line 217 azi2: 107.667809564608\n    test 1954 line 218 lat: -60.791732\n    test 1955 line 218 lon: 82.476063\n    test 1956 line 218 fb: 117.665953\n    test 1957 line 218 lat2: -60.791732218314\n    test 1958 line 218 lon2: 82.476062801971\n    test 1959 line 218 azi2: 117.665952598924\n    test 1960 line 218 lat2: -60.791732218314\n    test 1961 line 218 lon2: 82.476062801971\n    test 1962 line 218 azi2: 117.665952598924\n    test 1963 line 219 lat: -33.122376\n    test 1964 line 219 lon: 89.871476\n    test 1965 line 219 fb: 124.068098\n    test 1966 line 219 lat2: -33.122375734012\n    test 1967 line 219 lon2: 89.871476211443\n    test 1968 line 219 azi2: 124.068098444465\n    test 1969 line 219 lat2: -33.122375734012\n    test 1970 line 219 lon2: 89.871476211443\n    test 1971 line 219 azi2: 124.068098444465\n    test 1972 line 220 lat: -34.085934\n    test 1973 line 220 lon: 117.886549\n    test 1974 line 220 fb: 93.366647\n    test 1975 line 220 lat2: -34.085934037207\n    test 1976 line 220 lon2: 117.886548615401\n    test 1977 line 220 azi2: 93.366647127153\n    test 1978 line 220 lat2: -34.085934037207\n    test 1979 line 220 lon2: 117.886548615401\n    test 1980 line 220 azi2: 93.366647127153\n    test 1981 line 221 lat: -43.746811\n    test 1982 line 221 lon: 107.199939\n    test 1983 line 221 fb: 101.218435\n    test 1984 line 221 lat2: -43.746811413059\n    test 1985 line 221 lon2: 107.199938541143\n    test 1986 line 221 azi2: 101.218434581373\n    test 1987 line 221 lat2: -43.746811413059\n    test 1988 line 221 lon2: 107.199938541143\n    test 1989 line 221 azi2: 101.218434581373\n    test 1990 line 222 lat: -44.514857\n    test 1991 line 222 lon: 19.560361\n    test 1992 line 222 fb: 166.449925\n    test 1993 line 222 lat2: -44.514857277517\n    test 1994 line 222 lon2: 19.560360617266\n    test 1995 line 222 azi2: 166.449925135617\n    test 1996 line 222 lat2: -44.514857277517\n    test 1997 line 222 lon2: 19.560360617266\n    test 1998 line 222 azi2: 166.449925135617\n    test 1999 line 223 lat: -18.049262\n    test 2000 line 223 lon: 42.099193\n    test 2001 line 223 fb: 158.127141\n    test 2002 line 223 lat2: -18.049261796697\n    test 2003 line 223 lon2: 42.099193394607\n    test 2004 line 223 azi2: 158.127140901909\n    test 2005 line 223 lat2: -18.049261796697\n    test 2006 line 223 lon2: 42.099193394607\n    test 2007 line 223 azi2: 158.127140901909\n    test 2008 line 224 lat: 9.832902\n    test 2009 line 224 lon: 51.448057\n    test 2010 line 224 fb: 114.348703\n    test 2011 line 224 lat2: 9.832901687662\n    test 2012 line 224 lon2: 51.448057387281\n    test 2013 line 224 azi2: 114.348702917675\n    test 2014 line 224 lat2: 9.832901687662\n    test 2015 line 224 lon2: 51.448057387281\n    test 2016 line 224 azi2: 114.348702917675\n    test 2017 line 225 lat: -57.516443\n    test 2018 line 225 lon: 64.700933\n    test 2019 line 225 fb: 137.459801\n    test 2020 line 225 lat2: -57.516443280706\n    test 2021 line 225 lon2: 64.700933124813\n    test 2022 line 225 azi2: 137.459801078685\n    test 2023 line 225 lat2: -57.516443280706\n    test 2024 line 225 lon2: 64.700933124813\n    test 2025 line 225 azi2: 137.459801078685\n    test 2026 line 226 lat: -23.072600\n    test 2027 line 226 lon: 95.392602\n    test 2028 line 226 fb: 140.119143\n    test 2029 line 226 lat2: -23.072599811854\n    test 2030 line 226 lon2: 95.392601883769\n    test 2031 line 226 azi2: 140.119143469104\n    test 2032 line 226 lat2: -23.072599811854\n    test 2033 line 226 lon2: 95.392601883769\n    test 2034 line 226 azi2: 140.119143469104\n    test 2035 line 227 lat: -45.117254\n    test 2036 line 227 lon: 97.361647\n    test 2037 line 227 fb: 97.339041\n    test 2038 line 227 lat2: -45.117253614100\n    test 2039 line 227 lon2: 97.361647352714\n    test 2040 line 227 azi2: 97.339040559115\n    test 2041 line 227 lat2: -45.117253614100\n    test 2042 line 227 lon2: 97.361647352714\n    test 2043 line 227 azi2: 97.339040559115\n    test 2044 line 228 lat: -11.277328\n    test 2045 line 228 lon: 19.602358\n    test 2046 line 228 fb: 156.779730\n    test 2047 line 228 lat2: -11.277328262947\n    test 2048 line 228 lon2: 19.602358024471\n    test 2049 line 228 azi2: 156.779729902321\n    test 2050 line 228 lat2: -11.277328262947\n    test 2051 line 228 lon2: 19.602358024471\n    test 2052 line 228 azi2: 156.779729902321\n    test 2053 line 229 lat: -4.823524\n    test 2054 line 229 lon: 164.626842\n    test 2055 line 229 fb: 151.314797\n    test 2056 line 229 lat2: -4.823524348693\n    test 2057 line 229 lon2: 164.626841855534\n    test 2058 line 229 azi2: 151.314796841238\n    test 2059 line 229 lat2: -4.823524348693\n    test 2060 line 229 lon2: 164.626841855534\n    test 2061 line 229 azi2: 151.314796841238\n    test 2062 line 230 lat: 36.317088\n    test 2063 line 230 lon: 89.326155\n    test 2064 line 230 fb: 94.589052\n    test 2065 line 230 lat2: 36.317087922282\n    test 2066 line 230 lon2: 89.326155365943\n    test 2067 line 230 azi2: 94.589051951235\n    test 2068 line 230 lat2: 36.317087922282\n    test 2069 line 230 lon2: 89.326155365943\n    test 2070 line 230 azi2: 94.589051951235\n    test 2071 line 231 lat: 3.975433\n    test 2072 line 231 lon: 105.460359\n    test 2073 line 231 fb: 126.257925\n    test 2074 line 231 lat2: 3.975432760073\n    test 2075 line 231 lon2: 105.460358584149\n    test 2076 line 231 azi2: 126.257925455058\n    test 2077 line 231 lat2: 3.975432760073\n    test 2078 line 231 lon2: 105.460358584149\n    test 2079 line 231 azi2: 126.257925455058\n    test 2080 line 232 lat: 28.815984\n    test 2081 line 232 lon: 89.807394\n    test 2082 line 232 fb: 116.984375\n    test 2083 line 232 lat2: 28.815983592511\n    test 2084 line 232 lon2: 89.807393686834\n    test 2085 line 232 azi2: 116.984374981602\n    test 2086 line 232 lat2: 28.815983592511\n    test 2087 line 232 lon2: 89.807393686834\n    test 2088 line 232 azi2: 116.984374981602\n    test 2089 line 233 lat: 66.161717\n    test 2090 line 233 lon: 63.218655\n    test 2091 line 233 fb: 88.869959\n    test 2092 line 233 lat2: 66.161716765270\n    test 2093 line 233 lon2: 63.218655052918\n    test 2094 line 233 azi2: 88.869959091488\n    test 2095 line 233 lat2: 66.161716765270\n    test 2096 line 233 lon2: 63.218655052918\n    test 2097 line 233 azi2: 88.869959091488\n    test 2098 line 234 lat: 74.859972\n    test 2099 line 234 lon: 53.523361\n    test 2100 line 234 fb: 58.125008\n    test 2101 line 234 lat2: 74.859971601090\n    test 2102 line 234 lon2: 53.523360738831\n    test 2103 line 234 azi2: 58.125008091802\n    test 2104 line 234 lat2: 74.859971601090\n    test 2105 line 234 lon2: 53.523360738831\n    test 2106 line 234 azi2: 58.125008091802\n    test 2107 line 235 lat: -0.265481\n    test 2108 line 235 lon: 79.537677\n    test 2109 line 235 fb: 112.945830\n    test 2110 line 235 lat2: -0.265481234322\n    test 2111 line 235 lon2: 79.537677388981\n    test 2112 line 235 azi2: 112.945829781102\n    test 2113 line 235 lat2: -0.265481234322\n    test 2114 line 235 lon2: 79.537677388981\n    test 2115 line 235 azi2: 112.945829781102\n    test 2116 line 236 lat: -12.099598\n    test 2117 line 236 lon: 155.371356\n    test 2118 line 236 fb: 76.454292\n    test 2119 line 236 lat2: -12.099598021004\n    test 2120 line 236 lon2: 155.371356164845\n    test 2121 line 236 azi2: 76.454291606612\n    test 2122 line 236 lat2: -12.099598021004\n    test 2123 line 236 lon2: 155.371356164845\n    test 2124 line 236 azi2: 76.454291606612\n    test 2125 line 237 lat: -6.746465\n    test 2126 line 237 lon: 19.102484\n    test 2127 line 237 fb: 149.342236\n    test 2128 line 237 lat2: -6.746464854112\n    test 2129 line 237 lon2: 19.102484309526\n    test 2130 line 237 azi2: 149.342236428405\n    test 2131 line 237 lat2: -6.746464854112\n    test 2132 line 237 lon2: 19.102484309526\n    test 2133 line 237 azi2: 149.342236428405\n    test 2134 line 238 lat: 0.663830\n    test 2135 line 238 lon: 101.295721\n    test 2136 line 238 fb: 133.862626\n    test 2137 line 238 lat2: 0.663830251510\n    test 2138 line 238 lon2: 101.295720736944\n    test 2139 line 238 azi2: 133.862626019473\n    test 2140 line 238 lat2: 0.663830251510\n    test 2141 line 238 lon2: 101.295720736944\n    test 2142 line 238 azi2: 133.862626019473\n    test 2143 line 239 lat: -61.764624\n    test 2144 line 239 lon: 148.537522\n    test 2145 line 239 fb: 149.298772\n    test 2146 line 239 lat2: -61.764623993813\n    test 2147 line 239 lon2: 148.537521922087\n    test 2148 line 239 azi2: 149.298771734214\n    test 2149 line 239 lat2: -61.764623993813\n    test 2150 line 239 lon2: 148.537521922087\n    test 2151 line 239 azi2: 149.298771734214\n    test 2152 line 240 lat: 14.505122\n    test 2153 line 240 lon: 111.665519\n    test 2154 line 240 fb: 97.740222\n    test 2155 line 240 lat2: 14.505121777043\n    test 2156 line 240 lon2: 111.665518774379\n    test 2157 line 240 azi2: 97.740221959573\n    test 2158 line 240 lat2: 14.505121777043\n    test 2159 line 240 lon2: 111.665518774379\n    test 2160 line 240 azi2: 97.740221959573\n    test 2161 line 241 lat: -24.713205\n    test 2162 line 241 lon: 34.159384\n    test 2163 line 241 fb: 125.866132\n    test 2164 line 241 lat2: -24.713205327375\n    test 2165 line 241 lon2: 34.159384140577\n    test 2166 line 241 azi2: 125.866132443875\n    test 2167 line 241 lat2: -24.713205327375\n    test 2168 line 241 lon2: 34.159384140577\n    test 2169 line 241 azi2: 125.866132443875\n    test 2170 line 242 lat: 50.480262\n    test 2171 line 242 lon: 42.263850\n    test 2172 line 242 fb: 153.395659\n    test 2173 line 242 lat2: 50.480261762893\n    test 2174 line 242 lon2: 42.263849601327\n    test 2175 line 242 azi2: 153.395658919028\n    test 2176 line 242 lat2: 50.480261762893\n    test 2177 line 242 lon2: 42.263849601327\n    test 2178 line 242 azi2: 153.395658919028\n    test 2179 line 243 lat: 11.787247\n    test 2180 line 243 lon: 49.506460\n    test 2181 line 243 fb: 120.836778\n    test 2182 line 243 lat2: 11.787247309610\n    test 2183 line 243 lon2: 49.506459509702\n    test 2184 line 243 azi2: 120.836778496206\n    test 2185 line 243 lat2: 11.787247309610\n    test 2186 line 243 lon2: 49.506459509702\n    test 2187 line 243 azi2: 120.836778496206\n    test 2188 line 244 lat: -19.956674\n    test 2189 line 244 lon: 14.599479\n    test 2190 line 244 fb: 177.883855\n    test 2191 line 244 lat2: -19.956673621927\n    test 2192 line 244 lon2: 14.599479227718\n    test 2193 line 244 azi2: 177.883855088778\n    test 2194 line 244 lat2: -19.956673621927\n    test 2195 line 244 lon2: 14.599479227718\n    test 2196 line 244 azi2: 177.883855088778\n    test 2197 line 245 lat: 0.738566\n    test 2198 line 245 lon: 12.600972\n    test 2199 line 245 fb: 176.085445\n    test 2200 line 245 lat2: 0.738565517815\n    test 2201 line 245 lon2: 12.600972006927\n    test 2202 line 245 azi2: 176.085445031797\n    test 2203 line 245 lat2: 0.738565517815\n    test 2204 line 245 lon2: 12.600972006927\n    test 2205 line 245 azi2: 176.085445031797\n    test 2206 line 246 lat: 25.799128\n    test 2207 line 246 lon: 9.800259\n    test 2208 line 246 fb: 166.282764\n    test 2209 line 246 lat2: 25.799128425384\n    test 2210 line 246 lon2: 9.800259258495\n    test 2211 line 246 azi2: 166.282764024264\n    test 2212 line 246 lat2: 25.799128425384\n    test 2213 line 246 lon2: 9.800259258495\n    test 2214 line 246 azi2: 166.282764024264\n    test 2215 line 247 lat: -3.897277\n    test 2216 line 247 lon: 16.693319\n    test 2217 line 247 fb: 168.780736\n    test 2218 line 247 lat2: -3.897277132184\n    test 2219 line 247 lon2: 16.693318601970\n    test 2220 line 247 azi2: 168.780736094343\n    test 2221 line 247 lat2: -3.897277132184\n    test 2222 line 247 lon2: 16.693318601970\n    test 2223 line 247 azi2: 168.780736094343\n    test 2224 line 248 lat: 2.479585\n    test 2225 line 248 lon: 72.317321\n    test 2226 line 248 fb: 126.935932\n    test 2227 line 248 lat2: 2.479585385319\n    test 2228 line 248 lon2: 72.317321261259\n    test 2229 line 248 azi2: 126.935932221711\n    test 2230 line 248 lat2: 2.479585385319\n    test 2231 line 248 lon2: 72.317321261259\n    test 2232 line 248 azi2: 126.935932221711\n    test 2233 line 249 lat: -0.836621\n    test 2234 line 249 lon: 2.490193\n    test 2235 line 249 fb: 150.640498\n    test 2236 line 249 lat2: -0.836621274662\n    test 2237 line 249 lon2: 2.490192836679\n    test 2238 line 249 azi2: 150.640498065221\n    test 2239 line 249 lat2: -0.836621274662\n    test 2240 line 249 lon2: 2.490192836679\n    test 2241 line 249 azi2: 150.640498065221\n    test 2242 line 250 lat: -69.098227\n    test 2243 line 250 lon: 43.929874\n    test 2244 line 250 fb: 143.378404\n    test 2245 line 250 lat2: -69.098226894675\n    test 2246 line 250 lon2: 43.929873562507\n    test 2247 line 250 azi2: 143.378403982035\n    test 2248 line 250 lat2: -69.098226894675\n    test 2249 line 250 lon2: 43.929873562507\n    test 2250 line 250 azi2: 143.378403982035\n    test 2251 line 251 lat: 19.156121\n    test 2252 line 251 lon: 130.658473\n    test 2253 line 251 fb: 136.204475\n    test 2254 line 251 lat2: 19.156121137418\n    test 2255 line 251 lon2: 130.658473280949\n    test 2256 line 251 azi2: 136.204475163250\n    test 2257 line 251 lat2: 19.156121137418\n    test 2258 line 251 lon2: 130.658473280949\n    test 2259 line 251 azi2: 136.204475163250\n    test 2260 line 252 lat: 68.881949\n    test 2261 line 252 lon: 79.375865\n    test 2262 line 252 fb: 99.052732\n    test 2263 line 252 lat2: 68.881948915820\n    test 2264 line 252 lon2: 79.375865154434  FAILED, KNOWN, expected 79.375865154433\n    test 2265 line 252 azi2: 99.052731550675\n    test 2266 line 252 lat2: 68.881948915820\n    test 2267 line 252 lon2: 79.375865154434  FAILED, KNOWN, expected 79.375865154433\n    test 2268 line 252 azi2: 99.052731550675\n    test 2269 line 253 lat: -23.509016\n    test 2270 line 253 lon: 122.232226\n    test 2271 line 253 fb: 90.354604\n    test 2272 line 253 lat2: -23.509015988874\n    test 2273 line 253 lon2: 122.232226283491\n    test 2274 line 253 azi2: 90.354603607380\n    test 2275 line 253 lat2: -23.509015988874\n    test 2276 line 253 lon2: 122.232226283491\n    test 2277 line 253 azi2: 90.354603607380\n    test 2278 line 254 lat: -64.950636\n    test 2279 line 254 lon: 70.184354\n    test 2280 line 254 fb: 122.478937\n    test 2281 line 254 lat2: -64.950635804577\n    test 2282 line 254 lon2: 70.184354384370\n    test 2283 line 254 azi2: 122.478937039089\n    test 2284 line 254 lat2: -64.950635804577\n    test 2285 line 254 lon2: 70.184354384370\n    test 2286 line 254 azi2: 122.478937039089\n    test 2287 line 255 lat: 4.931109\n    test 2288 line 255 lon: 176.100221\n    test 2289 line 255 fb: 175.754221\n    test 2290 line 255 lat2: 4.931108669549\n    test 2291 line 255 lon2: 176.100220910178\n    test 2292 line 255 azi2: 175.754221027085\n    test 2293 line 255 lat2: 4.931108669549\n    test 2294 line 255 lon2: 176.100220910178\n    test 2295 line 255 azi2: 175.754221027085\n    test 2296 line 256 lat: -35.503236\n    test 2297 line 256 lon: 122.767107\n    test 2298 line 256 fb: 94.201020\n    test 2299 line 256 lat2: -35.503236005727\n    test 2300 line 256 lon2: 122.767107174014\n    test 2301 line 256 azi2: 94.201020059324\n    test 2302 line 256 lat2: -35.503236005727\n    test 2303 line 256 lon2: 122.767107174014\n    test 2304 line 256 azi2: 94.201020059324\n    test 2305 line 257 lat: 58.728016\n    test 2306 line 257 lon: 76.607531\n    test 2307 line 257 fb: 114.353509\n    test 2308 line 257 lat2: 58.728016150448\n    test 2309 line 257 lon2: 76.607530844045\n    test 2310 line 257 azi2: 114.353508957613\n    test 2311 line 257 lat2: 58.728016150448\n    test 2312 line 257 lon2: 76.607530844045\n    test 2313 line 257 azi2: 114.353508957613\n    test 2314 line 258 lat: 13.725793\n    test 2315 line 258 lon: 60.384503\n    test 2316 line 258 fb: 102.783242\n    test 2317 line 258 lat2: 13.725792757601\n    test 2318 line 258 lon2: 60.384502867486\n    test 2319 line 258 azi2: 102.783241874789\n    test 2320 line 258 lat2: 13.725792757601\n    test 2321 line 258 lon2: 60.384502867486\n    test 2322 line 258 azi2: 102.783241874789\n    test 2323 line 259 lat: 40.298524\n    test 2324 line 259 lon: 59.957993\n    test 2325 line 259 fb: 90.056366\n    test 2326 line 259 lat2: 40.298523592677\n    test 2327 line 259 lon2: 59.957993458231\n    test 2328 line 259 azi2: 90.056365696933\n    test 2329 line 259 lat2: 40.298523592677\n    test 2330 line 259 lon2: 59.957993458231\n    test 2331 line 259 azi2: 90.056365696933\n    test 2332 line 260 lat: 21.526222\n    test 2333 line 260 lon: 19.836420\n    test 2334 line 260 fb: 89.081274\n    test 2335 line 260 lat2: 21.526221960544\n    test 2336 line 260 lon2: 19.836419824899\n    test 2337 line 260 azi2: 89.081274273400\n    test 2338 line 260 lat2: 21.526221960544\n    test 2339 line 260 lon2: 19.836419824899\n    test 2340 line 260 azi2: 89.081274273400\n    test 2341 line 261 lat: -65.269872\n    test 2342 line 261 lon: 134.049515\n    test 2343 line 261 fb: 54.613515\n    test 2344 line 261 lat2: -65.269872123888\n    test 2345 line 261 lon2: 134.049514626723\n    test 2346 line 261 azi2: 54.613514542799\n    test 2347 line 261 lat2: -65.269872123888\n    test 2348 line 261 lon2: 134.049514626723\n    test 2349 line 261 azi2: 54.613514542799\n    test 2350 line 262 lat: -47.687068\n    test 2351 line 262 lon: 86.855941\n    test 2352 line 262 fb: 115.133532\n    test 2353 line 262 lat2: -47.687068378110\n    test 2354 line 262 lon2: 86.855941174728\n    test 2355 line 262 azi2: 115.133531572693\n    test 2356 line 262 lat2: -47.687068378110\n    test 2357 line 262 lon2: 86.855941174728\n    test 2358 line 262 azi2: 115.133531572693\n    test 2359 line 263 lat: -56.637273\n    test 2360 line 263 lon: 158.001121\n    test 2361 line 263 fb: 35.013276\n    test 2362 line 263 lat2: -56.637272907294\n    test 2363 line 263 lon2: 158.001120751267\n    test 2364 line 263 azi2: 35.013276119319\n    test 2365 line 263 lat2: -56.637272907294\n    test 2366 line 263 lon2: 158.001120751267\n    test 2367 line 263 azi2: 35.013276119319\n    test 2368 line 264 lat: 6.880772\n    test 2369 line 264 lon: 36.289125\n    test 2370 line 264 fb: 144.499557\n    test 2371 line 264 lat2: 6.880771895178\n    test 2372 line 264 lon2: 36.289124705135\n    test 2373 line 264 azi2: 144.499557452454\n    test 2374 line 264 lat2: 6.880771895178\n    test 2375 line 264 lon2: 36.289124705135\n    test 2376 line 264 azi2: 144.499557452454\n    test 2377 line 265 lat: 59.205527\n    test 2378 line 265 lon: 115.787268\n    test 2379 line 265 fb: 116.793619\n    test 2380 line 265 lat2: 59.205526512430\n    test 2381 line 265 lon2: 115.787267608171\n    test 2382 line 265 azi2: 116.793618855456\n    test 2383 line 265 lat2: 59.205526512430\n    test 2384 line 265 lon2: 115.787267608171\n    test 2385 line 265 azi2: 116.793618855456\n    test 2386 line 266 lat: 29.463206\n    test 2387 line 266 lon: 68.742710\n    test 2388 line 266 fb: 113.906069\n    test 2389 line 266 lat2: 29.463206450868\n    test 2390 line 266 lon2: 68.742710218988\n    test 2391 line 266 azi2: 113.906069374400\n    test 2392 line 266 lat2: 29.463206450868\n    test 2393 line 266 lon2: 68.742710218988\n    test 2394 line 266 azi2: 113.906069374400\n    test 2395 line 267 lat: 5.507960\n    test 2396 line 267 lon: 2.913367\n    test 2397 line 267 fb: 175.225892\n    test 2398 line 267 lat2: 5.507959555355\n    test 2399 line 267 lon2: 2.913367209347\n    test 2400 line 267 azi2: 175.225891805562\n    test 2401 line 267 lat2: 5.507959555355\n    test 2402 line 267 lon2: 2.913367209347\n    test 2403 line 267 azi2: 175.225891805562\n    test 2404 line 268 lat: 32.568215\n    test 2405 line 268 lon: 107.814340\n    test 2406 line 268 fb: 126.321687\n    test 2407 line 268 lat2: 32.568215067951\n    test 2408 line 268 lon2: 107.814340389788\n    test 2409 line 268 azi2: 126.321687264203\n    test 2410 line 268 lat2: 32.568215067951\n    test 2411 line 268 lon2: 107.814340389788\n    test 2412 line 268 azi2: 126.321687264203\n    test 2413 line 269 lat: 48.941036\n    test 2414 line 269 lon: 170.309380\n    test 2415 line 269 fb: 170.816057\n    test 2416 line 269 lat2: 48.941036400994\n    test 2417 line 269 lon2: 170.309379989564\n    test 2418 line 269 azi2: 170.816056872564\n    test 2419 line 269 lat2: 48.941036400994\n    test 2420 line 269 lon2: 170.309379989564\n    test 2421 line 269 azi2: 170.816056872564\n    test 2422 line 270 lat: 32.657811\n    test 2423 line 270 lon: 174.401372\n    test 2424 line 270 fb: 173.967029\n    test 2425 line 270 lat2: 32.657810935795\n    test 2426 line 270 lon2: 174.401372292954\n    test 2427 line 270 azi2: 173.967029189838\n    test 2428 line 270 lat2: 32.657810935795\n    test 2429 line 270 lon2: 174.401372292954\n    test 2430 line 270 azi2: 173.967029189838\n    test 2431 line 271 lat: -30.959342\n    test 2432 line 271 lon: 144.596945\n    test 2433 line 271 fb: 157.635539\n    test 2434 line 271 lat2: -30.959341511189\n    test 2435 line 271 lon2: 144.596944855700\n    test 2436 line 271 azi2: 157.635538872114\n    test 2437 line 271 lat2: -30.959341511189\n    test 2438 line 271 lon2: 144.596944855700\n    test 2439 line 271 azi2: 157.635538872114\n    test 2440 line 272 lat: 52.180060\n    test 2441 line 272 lon: 68.363538\n    test 2442 line 272 fb: 82.619820\n    test 2443 line 272 lat2: 52.180060488771\n    test 2444 line 272 lon2: 68.363538073511\n    test 2445 line 272 azi2: 82.619819936898\n    test 2446 line 272 lat2: 52.180060488771\n    test 2447 line 272 lon2: 68.363538073511\n    test 2448 line 272 azi2: 82.619819936898\n    test 2449 line 273 lat: -49.230655\n    test 2450 line 273 lon: 119.085123\n    test 2451 line 273 fb: 81.553785\n    test 2452 line 273 lat2: -49.230654785601\n    test 2453 line 273 lon2: 119.085122995371\n    test 2454 line 273 azi2: 81.553785297210\n    test 2455 line 273 lat2: -49.230654785601\n    test 2456 line 273 lon2: 119.085122995371\n    test 2457 line 273 azi2: 81.553785297210\n    test 2458 line 274 lat: 12.315309\n    test 2459 line 274 lon: 21.800337\n    test 2460 line 274 fb: 86.572317\n    test 2461 line 274 lat2: 12.315308710130\n    test 2462 line 274 lon2: 21.800336803956\n    test 2463 line 274 azi2: 86.572316548512\n    test 2464 line 274 lat2: 12.315308710130\n    test 2465 line 274 lon2: 21.800336803956\n    test 2466 line 274 azi2: 86.572316548512\n    test 2467 line 275 lat: 0.074875\n    test 2468 line 275 lon: 122.092567\n    test 2469 line 275 fb: 93.940324\n    test 2470 line 275 lat2: 0.074874782626\n    test 2471 line 275 lon2: 122.092567299352\n    test 2472 line 275 azi2: 93.940323652996\n    test 2473 line 275 lat2: 0.074874782626\n    test 2474 line 275 lon2: 122.092567299352\n    test 2475 line 275 azi2: 93.940323652996\n    test 2476 line 276 lat: -32.420609\n    test 2477 line 276 lon: 80.147417\n    test 2478 line 276 fb: 123.183256\n    test 2479 line 276 lat2: -32.420609134175\n    test 2480 line 276 lon2: 80.147416945184\n    test 2481 line 276 azi2: 123.183256201588\n    test 2482 line 276 lat2: -32.420609134175\n    test 2483 line 276 lon2: 80.147416945184\n    test 2484 line 276 azi2: 123.183256201588\n    test 2485 line 277 lat: 82.600418\n    test 2486 line 277 lon: 34.418367\n    test 2487 line 277 fb: 35.057122\n    test 2488 line 277 lat2: 82.600418456713\n    test 2489 line 277 lon2: 34.418367124569\n    test 2490 line 277 azi2: 35.057122384192\n    test 2491 line 277 lat2: 82.600418456713\n    test 2492 line 277 lon2: 34.418367124569\n    test 2493 line 277 azi2: 35.057122384192\n    test 2494 line 278 lat: 26.274633\n    test 2495 line 278 lon: 93.043032\n    test 2496 line 278 fb: 114.480069\n    test 2497 line 278 lat2: 26.274632977288\n    test 2498 line 278 lon2: 93.043031668414\n    test 2499 line 278 azi2: 114.480069066657\n    test 2500 line 278 lat2: 26.274632977288\n    test 2501 line 278 lon2: 93.043031668414\n    test 2502 line 278 azi2: 114.480069066657\n    test 2503 line 279 lat: 28.433986\n    test 2504 line 279 lon: 132.962042\n    test 2505 line 279 fb: 118.817242\n    test 2506 line 279 lat2: 28.433985598740\n    test 2507 line 279 lon2: 132.962041543078\n    test 2508 line 279 azi2: 118.817241997246\n    test 2509 line 279 lat2: 28.433985598740\n    test 2510 line 279 lon2: 132.962041543078\n    test 2511 line 279 azi2: 118.817241997246\n    test 2512 line 280 lat: 32.426459\n    test 2513 line 280 lon: 65.171889\n    test 2514 line 280 fb: 113.230923\n    test 2515 line 280 lat2: 32.426458512822\n    test 2516 line 280 lon2: 65.171889395963\n    test 2517 line 280 azi2: 113.230923394172\n    test 2518 line 280 lat2: 32.426458512822\n    test 2519 line 280 lon2: 65.171889395963\n    test 2520 line 280 azi2: 113.230923394172\n    test 2521 line 281 lat: 8.427284\n    test 2522 line 281 lon: 20.342496\n    test 2523 line 281 fb: 140.993359\n    test 2524 line 281 lat2: 8.427284359102\n    test 2525 line 281 lon2: 20.342496251702\n    test 2526 line 281 azi2: 140.993359066103\n    test 2527 line 281 lat2: 8.427284359102\n    test 2528 line 281 lon2: 20.342496251702\n    test 2529 line 281 azi2: 140.993359066103\n    test 2530 line 282 lat: -16.412702\n    test 2531 line 282 lon: 47.392542\n    test 2532 line 282 fb: 167.389705\n    test 2533 line 282 lat2: -16.412702228950\n    test 2534 line 282 lon2: 47.392541669265\n    test 2535 line 282 azi2: 167.389704666322\n    test 2536 line 282 lat2: -16.412702228950\n    test 2537 line 282 lon2: 47.392541669265\n    test 2538 line 282 azi2: 167.389704666322\n    test 2539 line 283 lat: -54.082376\n    test 2540 line 283 lon: 159.985466\n    test 2541 line 283 fb: 56.023710\n    test 2542 line 283 lat2: -54.082375801659\n    test 2543 line 283 lon2: 159.985465829683\n    test 2544 line 283 azi2: 56.023710499162\n    test 2545 line 283 lat2: -54.082375801659\n    test 2546 line 283 lon2: 159.985465829683\n    test 2547 line 283 azi2: 56.023710499162\n    test 2548 line 284 lat: 38.704319\n    test 2549 line 284 lon: 78.307551\n    test 2550 line 284 fb: 106.582126\n    test 2551 line 284 lat2: 38.704318557557\n    test 2552 line 284 lon2: 78.307550831333\n    test 2553 line 284 azi2: 106.582125725743\n    test 2554 line 284 lat2: 38.704318557557\n    test 2555 line 284 lon2: 78.307550831333\n    test 2556 line 284 azi2: 106.582125725743\n    test 2557 line 285 lat: 15.206275\n    test 2558 line 285 lon: 59.878378\n    test 2559 line 285 fb: 114.460428\n    test 2560 line 285 lat2: 15.206274688849\n    test 2561 line 285 lon2: 59.878378252292\n    test 2562 line 285 azi2: 114.460428216582\n    test 2563 line 285 lat2: 15.206274688849\n    test 2564 line 285 lon2: 59.878378252292\n    test 2565 line 285 azi2: 114.460428216582\n    test 2566 line 286 lat: -62.789550\n    test 2567 line 286 lon: 66.649185\n    test 2568 line 286 fb: 119.232672\n    test 2569 line 286 lat2: -62.789549909136\n    test 2570 line 286 lon2: 66.649184622337\n    test 2571 line 286 azi2: 119.232671643971\n    test 2572 line 286 lat2: -62.789549909136\n    test 2573 line 286 lon2: 66.649184622337\n    test 2574 line 286 azi2: 119.232671643971\n    test 2575 line 287 lat: 31.235252\n    test 2576 line 287 lon: 19.933468\n    test 2577 line 287 fb: 145.488470\n    test 2578 line 287 lat2: 31.235252170087\n    test 2579 line 287 lon2: 19.933467970517\n    test 2580 line 287 azi2: 145.488469796544\n    test 2581 line 287 lat2: 31.235252170087\n    test 2582 line 287 lon2: 19.933467970517\n    test 2583 line 287 azi2: 145.488469796544\n    test 2584 line 288 lat: 11.983236\n    test 2585 line 288 lon: 145.307369\n    test 2586 line 288 fb: 151.192641\n    test 2587 line 288 lat2: 11.983236088753\n    test 2588 line 288 lon2: 145.307368849730\n    test 2589 line 288 azi2: 151.192640854621\n    test 2590 line 288 lat2: 11.983236088753\n    test 2591 line 288 lon2: 145.307368849730\n    test 2592 line 288 azi2: 151.192640854621\n    test 2593 line 289 lat: 27.629694\n    test 2594 line 289 lon: 16.148459\n    test 2595 line 289 fb: 63.008012\n    test 2596 line 289 lat2: 27.629693628283\n    test 2597 line 289 lon2: 16.148459400244\n    test 2598 line 289 azi2: 63.008012267521\n    test 2599 line 289 lat2: 27.629693628283\n    test 2600 line 289 lon2: 16.148459400244\n    test 2601 line 289 azi2: 63.008012267521\n    test 2602 line 290 lat: 34.077784\n    test 2603 line 290 lon: 115.693210\n    test 2604 line 290 fb: 112.252264\n    test 2605 line 290 lat2: 34.077783768135\n    test 2606 line 290 lon2: 115.693209573427\n    test 2607 line 290 azi2: 112.252263721679\n    test 2608 line 290 lat2: 34.077783768135\n    test 2609 line 290 lon2: 115.693209573427\n    test 2610 line 290 azi2: 112.252263721679\n    test 2611 line 291 lat: 17.100340\n    test 2612 line 291 lon: 26.538643\n    test 2613 line 291 fb: 131.391925\n    test 2614 line 291 lat2: 17.100339523444\n    test 2615 line 291 lon2: 26.538642768875\n    test 2616 line 291 azi2: 131.391925094902\n    test 2617 line 291 lat2: 17.100339523444\n    test 2618 line 291 lon2: 26.538642768875\n    test 2619 line 291 azi2: 131.391925094902\n    test 2620 line 292 lat: -8.128040\n    test 2621 line 292 lon: 28.609615\n    test 2622 line 292 fb: 144.189095\n    test 2623 line 292 lat2: -8.128039572354\n    test 2624 line 292 lon2: 28.609615412806\n    test 2625 line 292 azi2: 144.189095481788\n    test 2626 line 292 lat2: -8.128039572354\n    test 2627 line 292 lon2: 28.609615412806\n    test 2628 line 292 azi2: 144.189095481788\n    test 2629 line 293 lat: 17.307082\n    test 2630 line 293 lon: 150.748550\n    test 2631 line 293 fb: 172.334611\n    test 2632 line 293 lat2: 17.307081581668\n    test 2633 line 293 lon2: 150.748549863580\n    test 2634 line 293 azi2: 172.334611079260\n    test 2635 line 293 lat2: 17.307081581668\n    test 2636 line 293 lon2: 150.748549863580\n    test 2637 line 293 azi2: 172.334611079260\n    test 2638 line 294 lat: 4.135230\n    test 2639 line 294 lon: 142.094814\n    test 2640 line 294 fb: 170.513214\n    test 2641 line 294 lat2: 4.135229575811\n    test 2642 line 294 lon2: 142.094814225629\n    test 2643 line 294 azi2: 170.513213518678\n    test 2644 line 294 lat2: 4.135229575811\n    test 2645 line 294 lon2: 142.094814225629\n    test 2646 line 294 azi2: 170.513213518678\n    test 2647 line 295 lat: -61.544041\n    test 2648 line 295 lon: 167.154866\n    test 2649 line 295 fb: 51.415676\n    test 2650 line 295 lat2: -61.544040804472\n    test 2651 line 295 lon2: 167.154866481811\n    test 2652 line 295 azi2: 51.415675504866\n    test 2653 line 295 lat2: -61.544040804472\n    test 2654 line 295 lon2: 167.154866481811\n    test 2655 line 295 azi2: 51.415675504866\n    test 2656 line 296 lat: 27.782466\n    test 2657 line 296 lon: 53.844550\n    test 2658 line 296 fb: 78.357665\n    test 2659 line 296 lat2: 27.782465760718\n    test 2660 line 296 lon2: 53.844549799795\n    test 2661 line 296 azi2: 78.357665271795\n    test 2662 line 296 lat2: 27.782465760718\n    test 2663 line 296 lon2: 53.844549799795\n    test 2664 line 296 azi2: 78.357665271795\n    test 2665 line 297 lat: -30.157337\n    test 2666 line 297 lon: 14.759636\n    test 2667 line 297 fb: 157.487063\n    test 2668 line 297 lat2: -30.157336788088\n    test 2669 line 297 lon2: 14.759635614931\n    test 2670 line 297 azi2: 157.487063280783\n    test 2671 line 297 lat2: -30.157336788088\n    test 2672 line 297 lon2: 14.759635614931\n    test 2673 line 297 azi2: 157.487063280783\n    test 2674 line 298 lat: -16.819268\n    test 2675 line 298 lon: 22.734618\n    test 2676 line 298 fb: 167.761663\n    test 2677 line 298 lat2: -16.819268371139\n    test 2678 line 298 lon2: 22.734618221531\n    test 2679 line 298 azi2: 167.761663436059\n    test 2680 line 298 lat2: -16.819268371139\n    test 2681 line 298 lon2: 22.734618221531\n    test 2682 line 298 azi2: 167.761663436059\n    test 2683 line 299 lat: 58.190743\n    test 2684 line 299 lon: 15.576363\n    test 2685 line 299 fb: 71.213972\n    test 2686 line 299 lat2: 58.190742593673\n    test 2687 line 299 lon2: 15.576363250416\n    test 2688 line 299 azi2: 71.213972172079\n    test 2689 line 299 lat2: 58.190742593673\n    test 2690 line 299 lon2: 15.576363250416\n    test 2691 line 299 azi2: 71.213972172079\n    test 2692 line 300 lat: 57.214981\n    test 2693 line 300 lon: 163.530752\n    test 2694 line 300 fb: 162.056064\n    test 2695 line 300 lat2: 57.214981133823\n    test 2696 line 300 lon2: 163.530751680014\n    test 2697 line 300 azi2: 162.056064225923\n    test 2698 line 300 lat2: 57.214981133823\n    test 2699 line 300 lon2: 163.530751680014\n    test 2700 line 300 azi2: 162.056064225923\n    test 2701 line 301 lat: 31.811818\n    test 2702 line 301 lon: 81.663494\n    test 2703 line 301 fb: 112.546404\n    test 2704 line 301 lat2: 31.811817748936\n    test 2705 line 301 lon2: 81.663494432962\n    test 2706 line 301 azi2: 112.546403824977\n    test 2707 line 301 lat2: 31.811817748936\n    test 2708 line 301 lon2: 81.663494432962\n    test 2709 line 301 azi2: 112.546403824977\n    test 2710 line 302 lat: -11.315727\n    test 2711 line 302 lon: 48.409490\n    test 2712 line 302 fb: 121.434574\n    test 2713 line 302 lat2: -11.315726799012\n    test 2714 line 302 lon2: 48.409489590525\n    test 2715 line 302 azi2: 121.434573764585\n    test 2716 line 302 lat2: -11.315726799012\n    test 2717 line 302 lon2: 48.409489590525\n    test 2718 line 302 azi2: 121.434573764585\n    test 2719 line 303 lat: 6.119956\n    test 2720 line 303 lon: 5.687908\n    test 2721 line 303 fb: 94.977171\n    test 2722 line 303 lat2: 6.119956010623\n    test 2723 line 303 lon2: 5.687908365969\n    test 2724 line 303 azi2: 94.977170961146\n    test 2725 line 303 lat2: 6.119956010623\n    test 2726 line 303 lon2: 5.687908365969\n    test 2727 line 303 azi2: 94.977170961146\n    test 2728 line 304 lat: -13.455263\n    test 2729 line 304 lon: 92.797729\n    test 2730 line 304 fb: 125.067595\n    test 2731 line 304 lat2: -13.455262906771\n    test 2732 line 304 lon2: 92.797729354548\n    test 2733 line 304 azi2: 125.067595131171\n    test 2734 line 304 lat2: -13.455262906771\n    test 2735 line 304 lon2: 92.797729354548\n    test 2736 line 304 azi2: 125.067595131171\n    test 2737 line 305 lat: -61.258454\n    test 2738 line 305 lon: 32.464613\n    test 2739 line 305 fb: 153.578300\n    test 2740 line 305 lat2: -61.258454070259\n    test 2741 line 305 lon2: 32.464613321886\n    test 2742 line 305 azi2: 153.578299580216\n    test 2743 line 305 lat2: -61.258454070259\n    test 2744 line 305 lon2: 32.464613321886\n    test 2745 line 305 azi2: 153.578299580216\n    test 2746 line 306 lat: 76.656194\n    test 2747 line 306 lon: 147.658262\n    test 2748 line 306 fb: 154.870277\n    test 2749 line 306 lat2: 76.656194303754\n    test 2750 line 306 lon2: 147.658261698859\n    test 2751 line 306 azi2: 154.870276891567\n    test 2752 line 306 lat2: 76.656194303754\n    test 2753 line 306 lon2: 147.658261698859\n    test 2754 line 306 azi2: 154.870276891567\n    test 2755 line 307 lat: 38.020470\n    test 2756 line 307 lon: 22.502210\n    test 2757 line 307 fb: 164.603876\n    test 2758 line 307 lat2: 38.020470355438\n    test 2759 line 307 lon2: 22.502210018002\n    test 2760 line 307 azi2: 164.603876406614\n    test 2761 line 307 lat2: 38.020470355438\n    test 2762 line 307 lon2: 22.502210018002\n    test 2763 line 307 azi2: 164.603876406614\n    test 2764 line 308 lat: -28.475186\n    test 2765 line 308 lon: 125.031589\n    test 2766 line 308 fb: 71.946314\n    test 2767 line 308 lat2: -28.475185707347\n    test 2768 line 308 lon2: 125.031589334958\n    test 2769 line 308 azi2: 71.946313988393\n    test 2770 line 308 lat2: -28.475185707347\n    test 2771 line 308 lon2: 125.031589334958\n    test 2772 line 308 azi2: 71.946313988393\n    test 2773 line 309 lat: 33.123700\n    test 2774 line 309 lon: 47.796870\n    test 2775 line 309 fb: 66.233041\n    test 2776 line 309 lat2: 33.123699771125\n    test 2777 line 309 lon2: 47.796870281285\n    test 2778 line 309 azi2: 66.233040505915\n    test 2779 line 309 lat2: 33.123699771125\n    test 2780 line 309 lon2: 47.796870281285\n    test 2781 line 309 azi2: 66.233040505915\n    test 2782 line 310 lat: 36.967606\n    test 2783 line 310 lon: 91.462107\n    test 2784 line 310 fb: 113.555931\n    test 2785 line 310 lat2: 36.967605507925\n    test 2786 line 310 lon2: 91.462107367844\n    test 2787 line 310 azi2: 113.555931272414\n    test 2788 line 310 lat2: 36.967605507925\n    test 2789 line 310 lon2: 91.462107367844\n    test 2790 line 310 azi2: 113.555931272414\n    test 2791 line 311 lat: -3.784112\n    test 2792 line 311 lon: 75.465096\n    test 2793 line 311 fb: 146.940895\n    test 2794 line 311 lat2: -3.784112064078\n    test 2795 line 311 lon2: 75.465096433718\n    test 2796 line 311 azi2: 146.940895363525\n    test 2797 line 311 lat2: -3.784112064078\n    test 2798 line 311 lon2: 75.465096433718\n    test 2799 line 311 azi2: 146.940895363525\n    test 2800 line 312 lat: 10.772454\n    test 2801 line 312 lon: 162.137695\n    test 2802 line 312 fb: 176.774643\n    test 2803 line 312 lat2: 10.772454234710\n    test 2804 line 312 lon2: 162.137694811372\n    test 2805 line 312 azi2: 176.774642770857\n    test 2806 line 312 lat2: 10.772454234711  FAILED, KNOWN, expected 10.772454234710\n    test 2807 line 312 lon2: 162.137694811372\n    test 2808 line 312 azi2: 176.774642770857\n    test 2809 line 313 lat: 23.928740\n    test 2810 line 313 lon: 28.953169\n    test 2811 line 313 fb: 143.614710\n    test 2812 line 313 lat2: 23.928739648982\n    test 2813 line 313 lon2: 28.953169497861\n    test 2814 line 313 azi2: 143.614709768381\n    test 2815 line 313 lat2: 23.928739648982\n    test 2816 line 313 lon2: 28.953169497861\n    test 2817 line 313 azi2: 143.614709768381\n    test 2818 line 314 lat: 5.199377\n    test 2819 line 314 lon: 162.802668\n    test 2820 line 314 fb: 146.857520\n    test 2821 line 314 lat2: 5.199376594428\n    test 2822 line 314 lon2: 162.802668362269\n    test 2823 line 314 azi2: 146.857519761344\n    test 2824 line 314 lat2: 5.199376594428\n    test 2825 line 314 lon2: 162.802668362269\n    test 2826 line 314 azi2: 146.857519761344\n    test 2827 line 315 lat: 6.285334\n    test 2828 line 315 lon: 164.204548\n    test 2829 line 315 fb: 159.451359\n    test 2830 line 315 lat2: 6.285334322282\n    test 2831 line 315 lon2: 164.204548022855\n    test 2832 line 315 azi2: 159.451359223111\n    test 2833 line 315 lat2: 6.285334322282\n    test 2834 line 315 lon2: 164.204548022855\n    test 2835 line 315 azi2: 159.451359223111\n    test 2836 line 316 lat: -8.151874\n    test 2837 line 316 lon: 43.923539\n    test 2838 line 316 fb: 121.501273\n    test 2839 line 316 lat2: -8.151873580306\n    test 2840 line 316 lon2: 43.923539410568\n    test 2841 line 316 azi2: 121.501272690158\n    test 2842 line 316 lat2: -8.151873580306\n    test 2843 line 316 lon2: 43.923539410568\n    test 2844 line 316 azi2: 121.501272690158\n    test 2845 line 317 lat: 20.145480\n    test 2846 line 317 lon: 92.310645\n    test 2847 line 317 fb: 97.369333\n    test 2848 line 317 lat2: 20.145480383316\n    test 2849 line 317 lon2: 92.310644735772\n    test 2850 line 317 azi2: 97.369333245027\n    test 2851 line 317 lat2: 20.145480383316\n    test 2852 line 317 lon2: 92.310644735772\n    test 2853 line 317 azi2: 97.369333245027\n    test 2854 line 318 lat: 38.715579\n    test 2855 line 318 lon: 89.141427\n    test 2856 line 318 fb: 100.831087\n    test 2857 line 318 lat2: 38.715578802658\n    test 2858 line 318 lon2: 89.141426830360\n    test 2859 line 318 azi2: 100.831086703170\n    test 2860 line 318 lat2: 38.715578802658\n    test 2861 line 318 lon2: 89.141426830360\n    test 2862 line 318 azi2: 100.831086703170\n    test 2863 line 319 lat: -25.760685\n    test 2864 line 319 lon: 145.864001\n    test 2865 line 319 fb: 142.714674\n    test 2866 line 319 lat2: -25.760685020607\n    test 2867 line 319 lon2: 145.864001048187\n    test 2868 line 319 azi2: 142.714673928912\n    test 2869 line 319 lat2: -25.760685020607\n    test 2870 line 319 lon2: 145.864001048187\n    test 2871 line 319 azi2: 142.714673928912\n    test 2872 line 320 lat: 49.387283\n    test 2873 line 320 lon: 28.917044\n    test 2874 line 320 fb: 61.545235\n    test 2875 line 320 lat2: 49.387283074155\n    test 2876 line 320 lon2: 28.917043656754\n    test 2877 line 320 azi2: 61.545235148403\n    test 2878 line 320 lat2: 49.387283074155\n    test 2879 line 320 lon2: 28.917043656754\n    test 2880 line 320 azi2: 61.545235148403\n    test 2881 line 321 lat: 10.120685\n    test 2882 line 321 lon: 2.869738\n    test 2883 line 321 fb: 176.526916\n    test 2884 line 321 lat2: 10.120685293027\n    test 2885 line 321 lon2: 2.869737593886\n    test 2886 line 321 azi2: 176.526915822865\n    test 2887 line 321 lat2: 10.120685293027\n    test 2888 line 321 lon2: 2.869737593886\n    test 2889 line 321 azi2: 176.526915822865\n    test 2890 line 322 lat: 2.463216\n    test 2891 line 322 lon: 102.917600\n    test 2892 line 322 fb: 170.609004\n    test 2893 line 322 lat2: 2.463216066166\n    test 2894 line 322 lon2: 102.917599852201\n    test 2895 line 322 azi2: 170.609003610639\n    test 2896 line 322 lat2: 2.463216066166\n    test 2897 line 322 lon2: 102.917599852201\n    test 2898 line 322 azi2: 170.609003610639\n    test 2899 line 323 lat: 58.201294\n    test 2900 line 323 lon: 155.022079\n    test 2901 line 323 fb: 153.181269\n    test 2902 line 323 lat2: 58.201293688923\n    test 2903 line 323 lon2: 155.022079105501\n    test 2904 line 323 azi2: 153.181268692773\n    test 2905 line 323 lat2: 58.201293688923\n    test 2906 line 323 lon2: 155.022079105501\n    test 2907 line 323 azi2: 153.181268692773\n    test 2908 line 324 lat: 3.089608\n    test 2909 line 324 lon: 20.686800\n    test 2910 line 324 fb: 144.857820\n    test 2911 line 324 lat2: 3.089607756265\n    test 2912 line 324 lon2: 20.686800266169\n    test 2913 line 324 azi2: 144.857820265585\n    test 2914 line 324 lat2: 3.089607756265\n    test 2915 line 324 lon2: 20.686800266169\n    test 2916 line 324 azi2: 144.857820265585\n    test 2917 line 325 lat: 48.232274\n    test 2918 line 325 lon: 18.567244\n    test 2919 line 325 fb: 24.556438\n    test 2920 line 325 lat2: 48.232274219515\n    test 2921 line 325 lon2: 18.567244222293\n    test 2922 line 325 azi2: 24.556437713520\n    test 2923 line 325 lat2: 48.232274219515\n    test 2924 line 325 lon2: 18.567244222293\n    test 2925 line 325 azi2: 24.556437713520\n    test 2926 line 326 lat: 30.265261\n    test 2927 line 326 lon: 7.440738\n    test 2928 line 326 fb: 142.022972\n    test 2929 line 326 lat2: 30.265261486767\n    test 2930 line 326 lon2: 7.440737656545\n    test 2931 line 326 azi2: 142.022971576270\n    test 2932 line 326 lat2: 30.265261486767\n    test 2933 line 326 lon2: 7.440737656545\n    test 2934 line 326 azi2: 142.022971576270\n    test 2935 line 327 lat: -11.166197\n    test 2936 line 327 lon: 176.728934\n    test 2937 line 327 fb: 24.287273\n    test 2938 line 327 lat2: -11.166197413148\n    test 2939 line 327 lon2: 176.728933575636\n    test 2940 line 327 azi2: 24.287272842989\n    test 2941 line 327 lat2: -11.166197413148\n    test 2942 line 327 lon2: 176.728933575636\n    test 2943 line 327 azi2: 24.287272842989\n    test 2944 line 328 lat: 84.645539\n    test 2945 line 328 lon: 90.023922\n    test 2946 line 328 fb: 92.786262\n    test 2947 line 328 lat2: 84.645539196082\n    test 2948 line 328 lon2: 90.023922499395\n    test 2949 line 328 azi2: 92.786261566827\n    test 2950 line 328 lat2: 84.645539196082\n    test 2951 line 328 lon2: 90.023922499396  FAILED, KNOWN, expected 90.023922499395\n    test 2952 line 328 azi2: 92.786261566828  FAILED, KNOWN, expected 92.786261566827\n    test 2953 line 329 lat: 61.618717\n    test 2954 line 329 lon: 162.510959\n    test 2955 line 329 fb: 160.923940\n    test 2956 line 329 lat2: 61.618716728051\n    test 2957 line 329 lon2: 162.510958917359\n    test 2958 line 329 azi2: 160.923939760553\n    test 2959 line 329 lat2: 61.618716728051\n    test 2960 line 329 lon2: 162.510958917359\n    test 2961 line 329 azi2: 160.923939760553\n    test 2962 line 330 lat: 27.643242\n    test 2963 line 330 lon: 45.376215\n    test 2964 line 330 fb: 147.964522\n    test 2965 line 330 lat2: 27.643242341173\n    test 2966 line 330 lon2: 45.376215094118\n    test 2967 line 330 azi2: 147.964522484664\n    test 2968 line 330 lat2: 27.643242341173\n    test 2969 line 330 lon2: 45.376215094118\n    test 2970 line 330 azi2: 147.964522484664\n    test 2971 line 331 lat: 2.218750\n    test 2972 line 331 lon: 170.358342\n    test 2973 line 331 fb: 141.658474\n    test 2974 line 331 lat2: 2.218749985364\n    test 2975 line 331 lon2: 170.358342078292\n    test 2976 line 331 azi2: 141.658474129787\n    test 2977 line 331 lat2: 2.218749985364\n    test 2978 line 331 lon2: 170.358342078292\n    test 2979 line 331 azi2: 141.658474129787\n    test 2980 line 332 lat: 26.019142\n    test 2981 line 332 lon: 32.534760\n    test 2982 line 332 fb: 128.159784\n    test 2983 line 332 lat2: 26.019142329663\n    test 2984 line 332 lon2: 32.534760195963\n    test 2985 line 332 azi2: 128.159784291645\n    test 2986 line 332 lat2: 26.019142329663\n    test 2987 line 332 lon2: 32.534760195963\n    test 2988 line 332 azi2: 128.159784291645\n    test 2989 line 333 lat: 10.049636\n    test 2990 line 333 lon: 72.205347\n    test 2991 line 333 fb: 143.602160\n    test 2992 line 333 lat2: 10.049636247749\n    test 2993 line 333 lon2: 72.205346955818\n    test 2994 line 333 azi2: 143.602159725306\n    test 2995 line 333 lat2: 10.049636247749\n    test 2996 line 333 lon2: 72.205346955818\n    test 2997 line 333 azi2: 143.602159725306\n    test 2998 line 334 lat: -31.030497\n    test 2999 line 334 lon: 91.539195\n    test 3000 line 334 fb: 109.891398\n    test 3001 line 334 lat2: -31.030496743715\n    test 3002 line 334 lon2: 91.539195292896\n    test 3003 line 334 azi2: 109.891398221790\n    test 3004 line 334 lat2: -31.030496743715\n    test 3005 line 334 lon2: 91.539195292896\n    test 3006 line 334 azi2: 109.891398221790\n    test 3007 line 335 lat: 30.113796\n    test 3008 line 335 lon: 109.096982\n    test 3009 line 335 fb: 146.779343\n    test 3010 line 335 lat2: 30.113795853671\n    test 3011 line 335 lon2: 109.096981631502\n    test 3012 line 335 azi2: 146.779343066541\n    test 3013 line 335 lat2: 30.113795853670  FAILED, KNOWN, expected 30.113795853671\n    test 3014 line 335 lon2: 109.096981631502\n    test 3015 line 335 azi2: 146.779343066541\n    test 3016 line 336 lat: -73.967996\n    test 3017 line 336 lon: 65.944243\n    test 3018 line 336 fb: 120.592999\n    test 3019 line 336 lat2: -73.967996185770\n    test 3020 line 336 lon2: 65.944242524678\n    test 3021 line 336 azi2: 120.592998665529\n    test 3022 line 336 lat2: -73.967996185770\n    test 3023 line 336 lon2: 65.944242524678\n    test 3024 line 336 azi2: 120.592998665529\n    test 3025 line 337 lat: 52.211150\n    test 3026 line 337 lon: 168.054185\n    test 3027 line 337 fb: 172.425992\n    test 3028 line 337 lat2: 52.211149755494\n    test 3029 line 337 lon2: 168.054184827868\n    test 3030 line 337 azi2: 172.425991612467\n    test 3031 line 337 lat2: 52.211149755494\n    test 3032 line 337 lon2: 168.054184827868\n    test 3033 line 337 azi2: 172.425991612467\n    test 3034 line 338 lat: -64.497146\n    test 3035 line 338 lon: 72.073419\n    test 3036 line 338 fb: 114.249129\n    test 3037 line 338 lat2: -64.497146189688\n    test 3038 line 338 lon2: 72.073418936581\n    test 3039 line 338 azi2: 114.249128850219\n    test 3040 line 338 lat2: -64.497146189688\n    test 3041 line 338 lon2: 72.073418936581\n    test 3042 line 338 azi2: 114.249128850219\n    test 3043 line 339 lat: -25.711399\n    test 3044 line 339 lon: 6.036423\n    test 3045 line 339 fb: 169.464098\n    test 3046 line 339 lat2: -25.711398997503\n    test 3047 line 339 lon2: 6.036423474639\n    test 3048 line 339 azi2: 169.464098294263\n    test 3049 line 339 lat2: -25.711398997503\n    test 3050 line 339 lon2: 6.036423474639\n    test 3051 line 339 azi2: 169.464098294263\n    test 3052 line 340 lat: 33.904613\n    test 3053 line 340 lon: 30.989094\n    test 3054 line 340 fb: 124.896016\n    test 3055 line 340 lat2: 33.904613360449\n    test 3056 line 340 lon2: 30.989094387217\n    test 3057 line 340 azi2: 124.896016003640\n    test 3058 line 340 lat2: 33.904613360449\n    test 3059 line 340 lon2: 30.989094387217\n    test 3060 line 340 azi2: 124.896016003640\n    test 3061 line 341 lat: -25.053080\n    test 3062 line 341 lon: 137.078639\n    test 3063 line 341 fb: 115.960750\n    test 3064 line 341 lat2: -25.053079543516\n    test 3065 line 341 lon2: 137.078638665495\n    test 3066 line 341 azi2: 115.960750169086\n    test 3067 line 341 lat2: -25.053079543516\n    test 3068 line 341 lon2: 137.078638665495\n    test 3069 line 341 azi2: 115.960750169086\n    test 3070 line 342 lat: 10.298031\n    test 3071 line 342 lon: 27.737374\n    test 3072 line 342 fb: 142.265457\n    test 3073 line 342 lat2: 10.298031202629\n    test 3074 line 342 lon2: 27.737373649973\n    test 3075 line 342 azi2: 142.265457288483\n    test 3076 line 342 lat2: 10.298031202629\n    test 3077 line 342 lon2: 27.737373649973\n    test 3078 line 342 azi2: 142.265457288483\n    test 3079 line 343 lat: -0.738692\n    test 3080 line 343 lon: 150.933627\n    test 3081 line 343 fb: 174.004688\n    test 3082 line 343 lat2: -0.738692377457\n    test 3083 line 343 lon2: 150.933627031610\n    test 3084 line 343 azi2: 174.004687728765\n    test 3085 line 343 lat2: -0.738692377457\n    test 3086 line 343 lon2: 150.933627031610\n    test 3087 line 343 azi2: 174.004687728765\n    test 3088 line 344 lat: 50.619289\n    test 3089 line 344 lon: 67.178203\n    test 3090 line 344 fb: 105.177353\n    test 3091 line 344 lat2: 50.619289349009\n    test 3092 line 344 lon2: 67.178203328135\n    test 3093 line 344 azi2: 105.177353051107\n    test 3094 line 344 lat2: 50.619289349009\n    test 3095 line 344 lon2: 67.178203328135\n    test 3096 line 344 azi2: 105.177353051107\n    test 3097 line 345 lat: -2.127739\n    test 3098 line 345 lon: 38.604245\n    test 3099 line 345 fb: 118.657849\n    test 3100 line 345 lat2: -2.127739360728\n    test 3101 line 345 lon2: 38.604245449983\n    test 3102 line 345 azi2: 118.657849063154\n    test 3103 line 345 lat2: -2.127739360728\n    test 3104 line 345 lon2: 38.604245449983\n    test 3105 line 345 azi2: 118.657849063154\n    test 3106 line 346 lat: 37.188367\n    test 3107 line 346 lon: 90.865255\n    test 3108 line 346 fb: 104.826548\n    test 3109 line 346 lat2: 37.188366752551\n    test 3110 line 346 lon2: 90.865255121714\n    test 3111 line 346 azi2: 104.826548310924\n    test 3112 line 346 lat2: 37.188366752551\n    test 3113 line 346 lon2: 90.865255121714\n    test 3114 line 346 azi2: 104.826548310924\n    test 3115 line 347 lat: 46.019257\n    test 3116 line 347 lon: 20.402591\n    test 3117 line 347 fb: 31.068588\n    test 3118 line 347 lat2: 46.019256998097\n    test 3119 line 347 lon2: 20.402590686048\n    test 3120 line 347 azi2: 31.068587858373\n    test 3121 line 347 lat2: 46.019256998097\n    test 3122 line 347 lon2: 20.402590686048\n    test 3123 line 347 azi2: 31.068587858373\n    test 3124 line 348 lat: 9.023356\n    test 3125 line 348 lon: 106.678645\n    test 3126 line 348 fb: 141.375490\n    test 3127 line 348 lat2: 9.023355647006\n    test 3128 line 348 lon2: 106.678645473545\n    test 3129 line 348 azi2: 141.375490245645\n    test 3130 line 348 lat2: 9.023355647006\n    test 3131 line 348 lon2: 106.678645473545\n    test 3132 line 348 azi2: 141.375490245645\n    test 3133 line 349 lat: -1.321473\n    test 3134 line 349 lon: 67.418879\n    test 3135 line 349 fb: 105.590913\n    test 3136 line 349 lat2: -1.321473235187\n    test 3137 line 349 lon2: 67.418878731595\n    test 3138 line 349 azi2: 105.590912857546\n    test 3139 line 349 lat2: -1.321473235187\n    test 3140 line 349 lon2: 67.418878731595\n    test 3141 line 349 azi2: 105.590912857546\n    test 3142 line 350 lat: 7.459339\n    test 3143 line 350 lon: 30.150648\n    test 3144 line 350 fb: 109.667752\n    test 3145 line 350 lat2: 7.459338626177\n    test 3146 line 350 lon2: 30.150648477470\n    test 3147 line 350 azi2: 109.667751753912\n    test 3148 line 350 lat2: 7.459338626177\n    test 3149 line 350 lon2: 30.150648477470\n    test 3150 line 350 azi2: 109.667751753912\n    test 3151 line 351 lat: 16.344755\n    test 3152 line 351 lon: 146.829160\n    test 3153 line 351 fb: 128.666192\n    test 3154 line 351 lat2: 16.344755038185\n    test 3155 line 351 lon2: 146.829159972334\n    test 3156 line 351 azi2: 128.666191953616\n    test 3157 line 351 lat2: 16.344755038185\n    test 3158 line 351 lon2: 146.829159972334\n    test 3159 line 351 azi2: 128.666191953616\n    test 3160 line 352 lat: -55.785670\n    test 3161 line 352 lon: 158.086173\n    test 3162 line 352 fb: 33.903277\n    test 3163 line 352 lat2: -55.785670347270\n    test 3164 line 352 lon2: 158.086173376809\n    test 3165 line 352 azi2: 33.903276835071\n    test 3166 line 352 lat2: -55.785670347270\n    test 3167 line 352 lon2: 158.086173376809\n    test 3168 line 352 azi2: 33.903276835071\n    test 3169 line 353 lat: -74.409604\n    test 3170 line 353 lon: 111.280935\n    test 3171 line 353 fb: 78.510830\n    test 3172 line 353 lat2: -74.409603561050\n    test 3173 line 353 lon2: 111.280934985965\n    test 3174 line 353 azi2: 78.510830028461\n    test 3175 line 353 lat2: -74.409603561050\n    test 3176 line 353 lon2: 111.280934985965\n    test 3177 line 353 azi2: 78.510830028461\n    test 3178 line 354 lat: 9.922204\n    test 3179 line 354 lon: 138.538334\n    test 3180 line 354 fb: 125.268473\n    test 3181 line 354 lat2: 9.922203731557\n    test 3182 line 354 lon2: 138.538333703571\n    test 3183 line 354 azi2: 125.268473410634\n    test 3184 line 354 lat2: 9.922203731557\n    test 3185 line 354 lon2: 138.538333703571\n    test 3186 line 354 azi2: 125.268473410634\n    test 3187 line 355 lat: -27.082389\n    test 3188 line 355 lon: 91.425844\n    test 3189 line 355 fb: 153.267616\n    test 3190 line 355 lat2: -27.082389068807\n    test 3191 line 355 lon2: 91.425843733185\n    test 3192 line 355 azi2: 153.267616113653\n    test 3193 line 355 lat2: -27.082389068808  FAILED, KNOWN, expected -27.082389068807\n    test 3194 line 355 lon2: 91.425843733185\n    test 3195 line 355 azi2: 153.267616113653\n    test 3196 line 356 lat: 14.627508\n    test 3197 line 356 lon: 74.629605\n    test 3198 line 356 fb: 159.825211\n    test 3199 line 356 lat2: 14.627507744773\n    test 3200 line 356 lon2: 74.629604673488\n    test 3201 line 356 azi2: 159.825210987464\n    test 3202 line 356 lat2: 14.627507744773\n    test 3203 line 356 lon2: 74.629604673488\n    test 3204 line 356 azi2: 159.825210987464\n    test 3205 line 357 lat: 46.941087\n    test 3206 line 357 lon: 18.833436\n    test 3207 line 357 fb: 63.924917\n    test 3208 line 357 lat2: 46.941086934169\n    test 3209 line 357 lon2: 18.833435620675\n    test 3210 line 357 azi2: 63.924916745148\n    test 3211 line 357 lat2: 46.941086934169\n    test 3212 line 357 lon2: 18.833435620675\n    test 3213 line 357 azi2: 63.924916745148\n    test 3214 line 358 lat: 42.371666\n    test 3215 line 358 lon: 126.270074\n    test 3216 line 358 fb: 117.352107\n    test 3217 line 358 lat2: 42.371665615782\n    test 3218 line 358 lon2: 126.270074354353\n    test 3219 line 358 azi2: 117.352106840236\n    test 3220 line 358 lat2: 42.371665615782\n    test 3221 line 358 lon2: 126.270074354353\n    test 3222 line 358 azi2: 117.352106840236\n    test 3223 line 359 lat: 60.888684\n    test 3224 line 359 lon: 106.363657\n    test 3225 line 359 fb: 108.973271\n    test 3226 line 359 lat2: 60.888683732870\n    test 3227 line 359 lon2: 106.363656697522\n    test 3228 line 359 azi2: 108.973271101790\n    test 3229 line 359 lat2: 60.888683732870\n    test 3230 line 359 lon2: 106.363656697522\n    test 3231 line 359 azi2: 108.973271101790\n    test 3232 line 360 lat: 53.972090\n    test 3233 line 360 lon: 136.000658\n    test 3234 line 360 fb: 138.361589\n    test 3235 line 360 lat2: 53.972089572795\n    test 3236 line 360 lon2: 136.000657911062\n    test 3237 line 360 azi2: 138.361588598638\n    test 3238 line 360 lat2: 53.972089572795\n    test 3239 line 360 lon2: 136.000657911062\n    test 3240 line 360 azi2: 138.361588598638\n    test 3241 line 361 lat: 47.850867\n    test 3242 line 361 lon: 25.277934\n    test 3243 line 361 fb: 71.284668\n    test 3244 line 361 lat2: 47.850866585267\n    test 3245 line 361 lon2: 25.277933660114\n    test 3246 line 361 azi2: 71.284667717290\n    test 3247 line 361 lat2: 47.850866585267\n    test 3248 line 361 lon2: 25.277933660114\n    test 3249 line 361 azi2: 71.284667717290\n    test 3250 line 362 lat: 64.280614\n    test 3251 line 362 lon: 16.447697\n    test 3252 line 362 fb: 35.692750\n    test 3253 line 362 lat2: 64.280614171157\n    test 3254 line 362 lon2: 16.447696559380\n    test 3255 line 362 azi2: 35.692750218622\n    test 3256 line 362 lat2: 64.280614171157\n    test 3257 line 362 lon2: 16.447696559380\n    test 3258 line 362 azi2: 35.692750218622\n    test 3259 line 363 lat: -3.339044\n    test 3260 line 363 lon: 91.646260\n    test 3261 line 363 fb: 95.928001\n    test 3262 line 363 lat2: -3.339044133285\n    test 3263 line 363 lon2: 91.646260438368\n    test 3264 line 363 azi2: 95.928000721064\n    test 3265 line 363 lat2: -3.339044133285\n    test 3266 line 363 lon2: 91.646260438368\n    test 3267 line 363 azi2: 95.928000721064\n    test 3268 line 364 lat: -46.029875\n    test 3269 line 364 lon: 30.599197\n    test 3270 line 364 fb: 146.810525\n    test 3271 line 364 lat2: -46.029874698950\n    test 3272 line 364 lon2: 30.599196661458\n    test 3273 line 364 azi2: 146.810525207719\n    test 3274 line 364 lat2: -46.029874698950\n    test 3275 line 364 lon2: 30.599196661458\n    test 3276 line 364 azi2: 146.810525207719\n    test 3277 line 365 lat: 25.605076\n    test 3278 line 365 lon: 14.382003\n    test 3279 line 365 fb: 116.566847\n    test 3280 line 365 lat2: 25.605076391429\n    test 3281 line 365 lon2: 14.382002787798\n    test 3282 line 365 azi2: 116.566847403824\n    test 3283 line 365 lat2: 25.605076391429\n    test 3284 line 365 lon2: 14.382002787798\n    test 3285 line 365 azi2: 116.566847403824\n    test 3286 line 366 lat: -15.052413\n    test 3287 line 366 lon: 150.673460\n    test 3288 line 366 fb: 64.906721\n    test 3289 line 366 lat2: -15.052412502534\n    test 3290 line 366 lon2: 150.673460237577\n    test 3291 line 366 azi2: 64.906720897603\n    test 3292 line 366 lat2: -15.052412502534\n    test 3293 line 366 lon2: 150.673460237577\n    test 3294 line 366 azi2: 64.906720897603\n    test 3295 line 367 lat: -24.631882\n    test 3296 line 367 lon: 170.403348\n    test 3297 line 367 fb: 38.497784\n    test 3298 line 367 lat2: -24.631881773331\n    test 3299 line 367 lon2: 170.403348095216\n    test 3300 line 367 azi2: 38.497783925432\n    test 3301 line 367 lat2: -24.631881773331\n    test 3302 line 367 lon2: 170.403348095216\n    test 3303 line 367 azi2: 38.497783925432\n    test 3304 line 368 lat: 84.347730\n    test 3305 line 368 lon: 37.352130\n    test 3306 line 368 fb: 38.599794\n    test 3307 line 368 lat2: 84.347730272741\n    test 3308 line 368 lon2: 37.352130023033\n    test 3309 line 368 azi2: 38.599794179850\n    test 3310 line 368 lat2: 84.347730272741\n    test 3311 line 368 lon2: 37.352130023033\n    test 3312 line 368 azi2: 38.599794179850\n    test 3313 line 369 lat: 11.680773\n    test 3314 line 369 lon: 170.552617\n    test 3315 line 369 fb: 174.460436\n    test 3316 line 369 lat2: 11.680772997529\n    test 3317 line 369 lon2: 170.552617119135\n    test 3318 line 369 azi2: 174.460435573783\n    test 3319 line 369 lat2: 11.680772997529\n    test 3320 line 369 lon2: 170.552617119135\n    test 3321 line 369 azi2: 174.460435573783\n    test 3322 line 370 lat: -4.129058\n    test 3323 line 370 lon: 136.743627\n    test 3324 line 370 fb: 142.147604\n    test 3325 line 370 lat2: -4.129057873299\n    test 3326 line 370 lon2: 136.743626644380\n    test 3327 line 370 azi2: 142.147603954035\n    test 3328 line 370 lat2: -4.129057873299\n    test 3329 line 370 lon2: 136.743626644380\n    test 3330 line 370 azi2: 142.147603954035\n    test 3331 line 371 lat: 22.191782\n    test 3332 line 371 lon: 164.962392\n    test 3333 line 371 fb: 163.266967\n    test 3334 line 371 lat2: 22.191782097783\n    test 3335 line 371 lon2: 164.962391587580\n    test 3336 line 371 azi2: 163.266967353376\n    test 3337 line 371 lat2: 22.191782097783\n    test 3338 line 371 lon2: 164.962391587580\n    test 3339 line 371 azi2: 163.266967353376\n    test 3340 line 372 lat: -20.517212\n    test 3341 line 372 lon: 128.116444\n    test 3342 line 372 fb: 110.769757\n    test 3343 line 372 lat2: -20.517212185628\n    test 3344 line 372 lon2: 128.116443546305\n    test 3345 line 372 azi2: 110.769757212730\n    test 3346 line 372 lat2: -20.517212185628\n    test 3347 line 372 lon2: 128.116443546305\n    test 3348 line 372 azi2: 110.769757212730\n    test 3349 line 373 lat: -71.269219\n    test 3350 line 373 lon: 117.744329\n    test 3351 line 373 fb: 81.341006\n    test 3352 line 373 lat2: -71.269218648518\n    test 3353 line 373 lon2: 117.744328537214\n    test 3354 line 373 azi2: 81.341005509003\n    test 3355 line 373 lat2: -71.269218648518\n    test 3356 line 373 lon2: 117.744328537214\n    test 3357 line 373 azi2: 81.341005509003\n    test 3358 line 374 lat: -28.381893\n    test 3359 line 374 lon: 4.526029\n    test 3360 line 374 fb: 176.348678\n    test 3361 line 374 lat2: -28.381892766057\n    test 3362 line 374 lon2: 4.526028955177\n    test 3363 line 374 azi2: 176.348678015377\n    test 3364 line 374 lat2: -28.381892766057\n    test 3365 line 374 lon2: 4.526028955177\n    test 3366 line 374 azi2: 176.348678015377\n    test 3367 line 375 lat: -28.786090\n    test 3368 line 375 lon: 25.937634\n    test 3369 line 375 fb: 147.973102\n    test 3370 line 375 lat2: -28.786089606638\n    test 3371 line 375 lon2: 25.937634058027\n    test 3372 line 375 azi2: 147.973102126478\n    test 3373 line 375 lat2: -28.786089606638\n    test 3374 line 375 lon2: 25.937634058027\n    test 3375 line 375 azi2: 147.973102126478\n    test 3376 line 376 lat: -37.872672\n    test 3377 line 376 lon: 116.904193\n    test 3378 line 376 fb: 88.568636\n    test 3379 line 376 lat2: -37.872671755645\n    test 3380 line 376 lon2: 116.904192578457\n    test 3381 line 376 azi2: 88.568636418662\n    test 3382 line 376 lat2: -37.872671755645\n    test 3383 line 376 lon2: 116.904192578457\n    test 3384 line 376 azi2: 88.568636418662\n    test 3385 line 377 lat: -26.321447\n    test 3386 line 377 lon: 85.206987\n    test 3387 line 377 fb: 112.408109\n    test 3388 line 377 lat2: -26.321446841940\n    test 3389 line 377 lon2: 85.206986852002  FAILED, KNOWN, expected 85.206986852001\n    test 3390 line 377 azi2: 112.408108683681\n    test 3391 line 377 lat2: -26.321446841940\n    test 3392 line 377 lon2: 85.206986852001\n    test 3393 line 377 azi2: 112.408108683681\n    test 3394 line 378 lat: -54.824260\n    test 3395 line 378 lon: 156.561574\n    test 3396 line 378 fb: 45.534810\n    test 3397 line 378 lat2: -54.824260467184\n    test 3398 line 378 lon2: 156.561573965853\n    test 3399 line 378 azi2: 45.534810497878\n    test 3400 line 378 lat2: -54.824260467184\n    test 3401 line 378 lon2: 156.561573965853\n    test 3402 line 378 azi2: 45.534810497878\n    test 3403 line 379 lat: -16.423550\n    test 3404 line 379 lon: 36.685134\n    test 3405 line 379 fb: 149.426790\n    test 3406 line 379 lat2: -16.423550298805\n    test 3407 line 379 lon2: 36.685133578511\n    test 3408 line 379 azi2: 149.426789575292\n    test 3409 line 379 lat2: -16.423550298805\n    test 3410 line 379 lon2: 36.685133578511\n    test 3411 line 379 azi2: 149.426789575292\n    test 3412 line 380 lat: -16.806591\n    test 3413 line 380 lon: 149.738610\n    test 3414 line 380 fb: 108.898472\n    test 3415 line 380 lat2: -16.806590952462\n    test 3416 line 380 lon2: 149.738610286185\n    test 3417 line 380 azi2: 108.898472198507\n    test 3418 line 380 lat2: -16.806590952462\n    test 3419 line 380 lon2: 149.738610286185\n    test 3420 line 380 azi2: 108.898472198507\n    test 3421 line 381 lat: 61.200095\n    test 3422 line 381 lon: 179.666196\n    test 3423 line 381 fb: 179.746894\n    test 3424 line 381 lat2: 61.200095175201\n    test 3425 line 381 lon2: 179.666196014679\n    test 3426 line 381 azi2: 179.746893753530\n    test 3427 line 381 lat2: 61.200095175201\n    test 3428 line 381 lon2: 179.666196014679\n    test 3429 line 381 azi2: 179.746893753530\n    test 3430 line 382 lat: 66.474418\n    test 3431 line 382 lon: 1.552183\n    test 3432 line 382 fb: 2.088868\n    test 3433 line 382 lat2: 66.474418401288\n    test 3434 line 382 lon2: 1.552183188407\n    test 3435 line 382 azi2: 2.088868324926\n    test 3436 line 382 lat2: 66.474418401288\n    test 3437 line 382 lon2: 1.552183188407\n    test 3438 line 382 azi2: 2.088868324926\n    test 3439 line 383 lat: -75.177220\n    test 3440 line 383 lon: 158.741597\n    test 3441 line 383 fb: 24.127094\n    test 3442 line 383 lat2: -75.177219719926\n    test 3443 line 383 lon2: 158.741596988185\n    test 3444 line 383 azi2: 24.127093846134\n    test 3445 line 383 lat2: -75.177219719926\n    test 3446 line 383 lon2: 158.741596988185\n    test 3447 line 383 azi2: 24.127093846134\n    test 3448 line 384 lat: 43.592977\n    test 3449 line 384 lon: 90.684526\n    test 3450 line 384 fb: 91.539242\n    test 3451 line 384 lat2: 43.592976578444\n    test 3452 line 384 lon2: 90.684525887486\n    test 3453 line 384 azi2: 91.539242394540\n    test 3454 line 384 lat2: 43.592976578444\n    test 3455 line 384 lon2: 90.684525887486\n    test 3456 line 384 azi2: 91.539242394541  FAILED, KNOWN, expected 91.539242394540\n    test 3457 line 385 lat: -5.075415\n    test 3458 line 385 lon: 101.127103\n    test 3459 line 385 fb: 107.948022\n    test 3460 line 385 lat2: -5.075415464229\n    test 3461 line 385 lon2: 101.127103351067\n    test 3462 line 385 azi2: 107.948021613622\n    test 3463 line 385 lat2: -5.075415464229\n    test 3464 line 385 lon2: 101.127103351067\n    test 3465 line 385 azi2: 107.948021613622\n    test 3466 line 386 lat: 50.406166\n    test 3467 line 386 lon: 135.501939\n    test 3468 line 386 fb: 162.003144\n    test 3469 line 386 lat2: 50.406165949083\n    test 3470 line 386 lon2: 135.501938931444\n    test 3471 line 386 azi2: 162.003144394969\n    test 3472 line 386 lat2: 50.406165949083\n    test 3473 line 386 lon2: 135.501938931444\n    test 3474 line 386 azi2: 162.003144394969\n    test 3475 line 387 lat: -17.207733\n    test 3476 line 387 lon: 43.634692\n    test 3477 line 387 fb: 136.506793\n    test 3478 line 387 lat2: -17.207732564306\n    test 3479 line 387 lon2: 43.634692466982\n    test 3480 line 387 azi2: 136.506792603897\n    test 3481 line 387 lat2: -17.207732564306\n    test 3482 line 387 lon2: 43.634692466982\n    test 3483 line 387 azi2: 136.506792603897\n    test 3484 line 388 lat: -28.917723\n    test 3485 line 388 lon: 163.486470\n    test 3486 line 388 fb: 38.990274\n    test 3487 line 388 lat2: -28.917723347931\n    test 3488 line 388 lon2: 163.486470248682\n    test 3489 line 388 azi2: 38.990273918754\n    test 3490 line 388 lat2: -28.917723347931\n    test 3491 line 388 lon2: 163.486470248682\n    test 3492 line 388 azi2: 38.990273918754\n    test 3493 line 389 lat: -32.592414\n    test 3494 line 389 lon: 76.048812\n    test 3495 line 389 fb: 98.024249\n    test 3496 line 389 lat2: -32.592414472935\n    test 3497 line 389 lon2: 76.048812057267\n    test 3498 line 389 azi2: 98.024248734062\n    test 3499 line 389 lat2: -32.592414472935\n    test 3500 line 389 lon2: 76.048812057267\n    test 3501 line 389 azi2: 98.024248734062\n    test 3502 line 390 lat: 50.602735\n    test 3503 line 390 lon: 49.792893\n    test 3504 line 390 fb: 110.500761\n    test 3505 line 390 lat2: 50.602735331532\n    test 3506 line 390 lon2: 49.792893095354\n    test 3507 line 390 azi2: 110.500760610103\n    test 3508 line 390 lat2: 50.602735331532\n    test 3509 line 390 lon2: 49.792893095354\n    test 3510 line 390 azi2: 110.500760610103\n    test 3511 line 391 lat: -4.912232\n    test 3512 line 391 lon: 142.681744\n    test 3513 line 391 fb: 119.428358\n    test 3514 line 391 lat2: -4.912231564840\n    test 3515 line 391 lon2: 142.681743549937\n    test 3516 line 391 azi2: 119.428358444443\n    test 3517 line 391 lat2: -4.912231564840\n    test 3518 line 391 lon2: 142.681743549937\n    test 3519 line 391 azi2: 119.428358444443\n    test 3520 line 392 lat: -45.213515\n    test 3521 line 392 lon: 131.987859\n    test 3522 line 392 fb: 96.014100\n    test 3523 line 392 lat2: -45.213514932524\n    test 3524 line 392 lon2: 131.987859404857\n    test 3525 line 392 azi2: 96.014100177112\n    test 3526 line 392 lat2: -45.213514932524\n    test 3527 line 392 lon2: 131.987859404857\n    test 3528 line 392 azi2: 96.014100177112\n    test 3529 line 393 lat: -27.151096\n    test 3530 line 393 lon: 127.729463\n    test 3531 line 393 fb: 85.960623\n    test 3532 line 393 lat2: -27.151095883523\n    test 3533 line 393 lon2: 127.729463064736\n    test 3534 line 393 azi2: 85.960623495334\n    test 3535 line 393 lat2: -27.151095883523\n    test 3536 line 393 lon2: 127.729463064736\n    test 3537 line 393 azi2: 85.960623495334\n    test 3538 line 394 lat: 8.000358\n    test 3539 line 394 lon: 144.233747\n    test 3540 line 394 fb: 142.364017\n    test 3541 line 394 lat2: 8.000357843774\n    test 3542 line 394 lon2: 144.233746766535\n    test 3543 line 394 azi2: 142.364016793767\n    test 3544 line 394 lat2: 8.000357843774\n    test 3545 line 394 lon2: 144.233746766535\n    test 3546 line 394 azi2: 142.364016793767\n    test 3547 line 395 lat: -6.431774\n    test 3548 line 395 lon: 170.549196\n    test 3549 line 395 fb: 122.180851\n    test 3550 line 395 lat2: -6.431773707290\n    test 3551 line 395 lon2: 170.549196384306\n    test 3552 line 395 azi2: 122.180850600243\n    test 3553 line 395 lat2: -6.431773707290\n    test 3554 line 395 lon2: 170.549196384306\n    test 3555 line 395 azi2: 122.180850600243\n    test 3556 line 396 lat: 62.834146\n    test 3557 line 396 lon: 171.218298\n    test 3558 line 396 fb: 175.117433\n    test 3559 line 396 lat2: 62.834146216572\n    test 3560 line 396 lon2: 171.218297548713\n    test 3561 line 396 azi2: 175.117432600362\n    test 3562 line 396 lat2: 62.834146216572\n    test 3563 line 396 lon2: 171.218297548713\n    test 3564 line 396 azi2: 175.117432600362\n    test 3565 line 397 lat: 22.902814\n    test 3566 line 397 lon: 70.233438\n    test 3567 line 397 fb: 120.935912\n    test 3568 line 397 lat2: 22.902813652262\n    test 3569 line 397 lon2: 70.233438162142\n    test 3570 line 397 azi2: 120.935911762169\n    test 3571 line 397 lat2: 22.902813652262\n    test 3572 line 397 lon2: 70.233438162142\n    test 3573 line 397 azi2: 120.935911762169\n    test 3574 line 398 lat: 22.584853\n    test 3575 line 398 lon: 31.616865\n    test 3576 line 398 fb: 107.124038\n    test 3577 line 398 lat2: 22.584853282541\n    test 3578 line 398 lon2: 31.616864803984\n    test 3579 line 398 azi2: 107.124038156545\n    test 3580 line 398 lat2: 22.584853282541\n    test 3581 line 398 lon2: 31.616864803984\n    test 3582 line 398 azi2: 107.124038156545\n    test 3583 line 399 lat: 31.269173\n    test 3584 line 399 lon: 65.399306\n    test 3585 line 399 fb: 151.892600\n    test 3586 line 399 lat2: 31.269173344204\n    test 3587 line 399 lon2: 65.399305777763\n    test 3588 line 399 azi2: 151.892599739667\n    test 3589 line 399 lat2: 31.269173344204\n    test 3590 line 399 lon2: 65.399305777763\n    test 3591 line 399 azi2: 151.892599739668  FAILED, KNOWN, expected 151.892599739667\n    test 3592 line 400 lat: 35.519614\n    test 3593 line 400 lon: 143.165122\n    test 3594 line 400 fb: 161.479891\n    test 3595 line 400 lat2: 35.519613515115\n    test 3596 line 400 lon2: 143.165121509798\n    test 3597 line 400 azi2: 161.479891246031\n    test 3598 line 400 lat2: 35.519613515115\n    test 3599 line 400 lon2: 143.165121509798\n    test 3600 line 400 azi2: 161.479891246031\n    test 3601 line 401 lat: -53.741922\n    test 3602 line 401 lon: 67.121402\n    test 3603 line 401 fb: 130.871188\n    test 3604 line 401 lat2: -53.741921506580\n    test 3605 line 401 lon2: 67.121402135047\n    test 3606 line 401 azi2: 130.871188003209\n    test 3607 line 401 lat2: -53.741921506580\n    test 3608 line 401 lon2: 67.121402135047\n    test 3609 line 401 azi2: 130.871188003209\n    test 3610 line 402 lat: 9.046227\n    test 3611 line 402 lon: 35.933737\n    test 3612 line 402 fb: 175.770789\n    test 3613 line 402 lat2: 9.046227267580\n    test 3614 line 402 lon2: 35.933736921417\n    test 3615 line 402 azi2: 175.770788535406\n    test 3616 line 402 lat2: 9.046227267580\n    test 3617 line 402 lon2: 35.933736921417\n    test 3618 line 402 azi2: 175.770788535406\n    test 3619 line 403 lat: 75.917034\n    test 3620 line 403 lon: 125.150808\n    test 3621 line 403 fb: 135.354467\n    test 3622 line 403 lat2: 75.917034235438\n    test 3623 line 403 lon2: 125.150808062636\n    test 3624 line 403 azi2: 135.354466840051\n    test 3625 line 403 lat2: 75.917034235438\n    test 3626 line 403 lon2: 125.150808062636\n    test 3627 line 403 azi2: 135.354466840051\n    test 3628 line 404 lat: -39.724826\n    test 3629 line 404 lon: 77.372087\n    test 3630 line 404 fb: 111.852577\n    test 3631 line 404 lat2: -39.724825618504  FAILED, KNOWN, expected -39.724825618503\n    test 3632 line 404 lon2: 77.372086855267\n    test 3633 line 404 azi2: 111.852577362108\n    test 3634 line 404 lat2: -39.724825618504  FAILED, KNOWN, expected -39.724825618503\n    test 3635 line 404 lon2: 77.372086855267\n    test 3636 line 404 azi2: 111.852577362108\n    test 3637 line 405 lat: 3.917212\n    test 3638 line 405 lon: 142.621752\n    test 3639 line 405 fb: 124.176952\n    test 3640 line 405 lat2: 3.917212154431\n    test 3641 line 405 lon2: 142.621751764236\n    test 3642 line 405 azi2: 124.176952499321\n    test 3643 line 405 lat2: 3.917212154431\n    test 3644 line 405 lon2: 142.621751764236\n    test 3645 line 405 azi2: 124.176952499321\n    test 3646 line 406 lat: 60.230364\n    test 3647 line 406 lon: 26.245689\n    test 3648 line 406 fb: 48.509486\n    test 3649 line 406 lat2: 60.230364486607\n    test 3650 line 406 lon2: 26.245688508507\n    test 3651 line 406 azi2: 48.509486474608\n    test 3652 line 406 lat2: 60.230364486607\n    test 3653 line 406 lon2: 26.245688508507\n    test 3654 line 406 azi2: 48.509486474608\n    test 3655 line 407 lat: 29.597322\n    test 3656 line 407 lon: 29.129808\n    test 3657 line 407 fb: 79.288539\n    test 3658 line 407 lat2: 29.597322070518\n    test 3659 line 407 lon2: 29.129807944898\n    test 3660 line 407 azi2: 79.288538667829\n    test 3661 line 407 lat2: 29.597322070518\n    test 3662 line 407 lon2: 29.129807944898\n    test 3663 line 407 azi2: 79.288538667829\n    test 3664 line 408 lat: -62.913760\n    test 3665 line 408 lon: 14.845859\n    test 3666 line 408 fb: 165.794536\n    test 3667 line 408 lat2: -62.913759669564\n    test 3668 line 408 lon2: 14.845859018930\n    test 3669 line 408 azi2: 165.794535940950\n    test 3670 line 408 lat2: -62.913759669564\n    test 3671 line 408 lon2: 14.845859018930\n    test 3672 line 408 azi2: 165.794535940950\n    test 3673 line 409 lat: 15.360446\n    test 3674 line 409 lon: 161.450680\n    test 3675 line 409 fb: 164.457024\n    test 3676 line 409 lat2: 15.360445685187\n    test 3677 line 409 lon2: 161.450680426049\n    test 3678 line 409 azi2: 164.457024354600\n    test 3679 line 409 lat2: 15.360445685187\n    test 3680 line 409 lon2: 161.450680426049\n    test 3681 line 409 azi2: 164.457024354600\n    test 3682 line 410 lat: -58.330109\n    test 3683 line 410 lon: 17.628134\n    test 3684 line 410 fb: 161.349788\n    test 3685 line 410 lat2: -58.330108507597\n    test 3686 line 410 lon2: 17.628133627705\n    test 3687 line 410 azi2: 161.349788081184\n    test 3688 line 410 lat2: -58.330108507597\n    test 3689 line 410 lon2: 17.628133627705\n    test 3690 line 410 azi2: 161.349788081184\n    test 3691 line 411 lat: -68.514277\n    test 3692 line 411 lon: 19.958792\n    test 3693 line 411 fb: 162.262811\n    test 3694 line 411 lat2: -68.514276940652\n    test 3695 line 411 lon2: 19.958792438281\n    test 3696 line 411 azi2: 162.262811488702\n    test 3697 line 411 lat2: -68.514276940652\n    test 3698 line 411 lon2: 19.958792438281\n    test 3699 line 411 azi2: 162.262811488702\n    test 3700 line 412 lat: -23.686766\n    test 3701 line 412 lon: 77.544158\n    test 3702 line 412 fb: 97.517041\n    test 3703 line 412 lat2: -23.686765736999\n    test 3704 line 412 lon2: 77.544158137101\n    test 3705 line 412 azi2: 97.517041033585\n    test 3706 line 412 lat2: -23.686765736999\n    test 3707 line 412 lon2: 77.544158137101\n    test 3708 line 412 azi2: 97.517041033585\n    test 3709 line 413 lat: -50.843575\n    test 3710 line 413 lon: 118.404202\n    test 3711 line 413 fb: 75.928950\n    test 3712 line 413 lat2: -50.843574559525\n    test 3713 line 413 lon2: 118.404202153051\n    test 3714 line 413 azi2: 75.928950296488\n    test 3715 line 413 lat2: -50.843574559525\n    test 3716 line 413 lon2: 118.404202153051\n    test 3717 line 413 azi2: 75.928950296488\n    test 3718 line 414 lat: 44.438742\n    test 3719 line 414 lon: 152.028260\n    test 3720 line 414 fb: 156.092336\n    test 3721 line 414 lat2: 44.438741945021\n    test 3722 line 414 lon2: 152.028260148130\n    test 3723 line 414 azi2: 156.092336139519\n    test 3724 line 414 lat2: 44.438741945021\n    test 3725 line 414 lon2: 152.028260148130\n    test 3726 line 414 azi2: 156.092336139519\n    test 3727 line 415 lat: 33.820395\n    test 3728 line 415 lon: 178.008342\n    test 3729 line 415 fb: 177.679586\n    test 3730 line 415 lat2: 33.820395378014\n    test 3731 line 415 lon2: 178.008341908011\n    test 3732 line 415 azi2: 177.679585823345\n    test 3733 line 415 lat2: 33.820395378014\n    test 3734 line 415 lon2: 178.008341908011\n    test 3735 line 415 azi2: 177.679585823345\n    test 3736 line 416 lat: 27.506735\n    test 3737 line 416 lon: 153.242452\n    test 3738 line 416 fb: 150.262824\n    test 3739 line 416 lat2: 27.506735286152\n    test 3740 line 416 lon2: 153.242452449881\n    test 3741 line 416 azi2: 150.262824421351\n    test 3742 line 416 lat2: 27.506735286152\n    test 3743 line 416 lon2: 153.242452449881\n    test 3744 line 416 azi2: 150.262824421351\n    test 3745 line 417 lat: -31.250437\n    test 3746 line 417 lon: 179.014499\n    test 3747 line 417 fb: 178.103046\n    test 3748 line 417 lat2: -31.250436707468\n    test 3749 line 417 lon2: 179.014498940190\n    test 3750 line 417 azi2: 178.103045898455\n    test 3751 line 417 lat2: -31.250436707468\n    test 3752 line 417 lon2: 179.014498940190\n    test 3753 line 417 azi2: 178.103045898455\n    test 3754 line 418 lat: 40.341542\n    test 3755 line 418 lon: 109.605984\n    test 3756 line 418 fb: 105.401958\n    test 3757 line 418 lat2: 40.341542234586\n    test 3758 line 418 lon2: 109.605984313079\n    test 3759 line 418 azi2: 105.401958406556\n    test 3760 line 418 lat2: 40.341542234586\n    test 3761 line 418 lon2: 109.605984313079\n    test 3762 line 418 azi2: 105.401958406556\n    test 3763 line 419 lat: 48.318632\n    test 3764 line 419 lon: 92.282799\n    test 3765 line 419 fb: 111.987482\n    test 3766 line 419 lat2: 48.318632112439\n    test 3767 line 419 lon2: 92.282799489208\n    test 3768 line 419 azi2: 111.987482299261\n    test 3769 line 419 lat2: 48.318632112439\n    test 3770 line 419 lon2: 92.282799489208\n    test 3771 line 419 azi2: 111.987482299261\n    test 3772 line 420 lat: 0.675299\n    test 3773 line 420 lon: 6.789301\n    test 3774 line 420 fb: 164.921926\n    test 3775 line 420 lat2: 0.675299289459\n    test 3776 line 420 lon2: 6.789300798072\n    test 3777 line 420 azi2: 164.921926385405\n    test 3778 line 420 lat2: 0.675299289459\n    test 3779 line 420 lon2: 6.789300798072\n    test 3780 line 420 azi2: 164.921926385405\n    test 3781 line 421 lat: 33.232812\n    test 3782 line 421 lon: 170.163205\n    test 3783 line 421 fb: 175.445424\n    test 3784 line 421 lat2: 33.232811536179\n    test 3785 line 421 lon2: 170.163205247232  FAILED, KNOWN, expected 170.163205247231\n    test 3786 line 421 azi2: 175.445424087910\n    test 3787 line 421 lat2: 33.232811536179\n    test 3788 line 421 lon2: 170.163205247232  FAILED, KNOWN, expected 170.163205247231\n    test 3789 line 421 azi2: 175.445424087910\n    test 3790 line 422 lat: 51.425532\n    test 3791 line 422 lon: 167.128188\n    test 3792 line 422 fb: 169.431307\n    test 3793 line 422 lat2: 51.425532151818\n    test 3794 line 422 lon2: 167.128188073883\n    test 3795 line 422 azi2: 169.431306547043\n    test 3796 line 422 lat2: 51.425532151818\n    test 3797 line 422 lon2: 167.128188073883\n    test 3798 line 422 azi2: 169.431306547043\n    test 3799 line 423 lat: 72.043795\n    test 3800 line 423 lon: 23.320161\n    test 3801 line 423 fb: 85.002463\n    test 3802 line 423 lat2: 72.043794732818\n    test 3803 line 423 lon2: 23.320160820556\n    test 3804 line 423 azi2: 85.002463342037\n    test 3805 line 423 lat2: 72.043794732818\n    test 3806 line 423 lon2: 23.320160820556\n    test 3807 line 423 azi2: 85.002463342037\n    test 3808 line 424 lat: 55.279253\n    test 3809 line 424 lon: 148.483684\n    test 3810 line 424 fb: 155.614243\n    test 3811 line 424 lat2: 55.279252586695\n    test 3812 line 424 lon2: 148.483684405588\n    test 3813 line 424 azi2: 155.614243012977\n    test 3814 line 424 lat2: 55.279252586695\n    test 3815 line 424 lon2: 148.483684405588\n    test 3816 line 424 azi2: 155.614243012977\n    test 3817 line 425 lat: 50.054601\n    test 3818 line 425 lon: 43.609545\n    test 3819 line 425 fb: 100.758451\n    test 3820 line 425 lat2: 50.054601019930\n    test 3821 line 425 lon2: 43.609545475731\n    test 3822 line 425 azi2: 100.758450815354\n    test 3823 line 425 lat2: 50.054601019930\n    test 3824 line 425 lon2: 43.609545475731\n    test 3825 line 425 azi2: 100.758450815354\n    test 3826 line 426 lat: 31.194436\n    test 3827 line 426 lon: 31.458476\n    test 3828 line 426 fb: 92.204244\n    test 3829 line 426 lat2: 31.194436445411\n    test 3830 line 426 lon2: 31.458476146984\n    test 3831 line 426 azi2: 92.204244235305\n    test 3832 line 426 lat2: 31.194436445411\n    test 3833 line 426 lon2: 31.458476146984\n    test 3834 line 426 azi2: 92.204244235305\n    test 3835 line 427 lat: 57.758262\n    test 3836 line 427 lon: 164.499274\n    test 3837 line 427 fb: 162.877999\n    test 3838 line 427 lat2: 57.758262113137\n    test 3839 line 427 lon2: 164.499274258053\n    test 3840 line 427 azi2: 162.877999232894\n    test 3841 line 427 lat2: 57.758262113137\n    test 3842 line 427 lon2: 164.499274258053\n    test 3843 line 427 azi2: 162.877999232894\n    test 3844 line 428 lat: 27.006898\n    test 3845 line 428 lon: 173.173812\n    test 3846 line 428 fb: 177.878074\n    test 3847 line 428 lat2: 27.006897756516\n    test 3848 line 428 lon2: 173.173811781657\n    test 3849 line 428 azi2: 177.878073603766\n    test 3850 line 428 lat2: 27.006897756516\n    test 3851 line 428 lon2: 173.173811781657\n    test 3852 line 428 azi2: 177.878073603766\n    test 3853 line 429 lat: -62.917581\n    test 3854 line 429 lon: 18.990464\n    test 3855 line 429 fb: 169.629168\n    test 3856 line 429 lat2: -62.917580953804\n    test 3857 line 429 lon2: 18.990464058493\n    test 3858 line 429 azi2: 169.629168390979\n    test 3859 line 429 lat2: -62.917580953804\n    test 3860 line 429 lon2: 18.990464058493\n    test 3861 line 429 azi2: 169.629168390979\n    test 3862 line 430 lat: -43.128167\n    test 3863 line 430 lon: 61.680974\n    test 3864 line 430 fb: 135.269008\n    test 3865 line 430 lat2: -43.128166633902\n    test 3866 line 430 lon2: 61.680974170546\n    test 3867 line 430 azi2: 135.269008366092\n    test 3868 line 430 lat2: -43.128166633902\n    test 3869 line 430 lon2: 61.680974170546\n    test 3870 line 430 azi2: 135.269008366092\n    test 3871 line 431 lat: -49.314417\n    test 3872 line 431 lon: 55.826072\n    test 3873 line 431 fb: 131.974574\n    test 3874 line 431 lat2: -49.314417365795\n    test 3875 line 431 lon2: 55.826071541563\n    test 3876 line 431 azi2: 131.974573587520\n    test 3877 line 431 lat2: -49.314417365795\n    test 3878 line 431 lon2: 55.826071541563\n    test 3879 line 431 azi2: 131.974573587520\n    test 3880 line 432 lat: -24.322411\n    test 3881 line 432 lon: 103.867391\n    test 3882 line 432 fb: 139.458674\n    test 3883 line 432 lat2: -24.322411486444\n    test 3884 line 432 lon2: 103.867391100271\n    test 3885 line 432 azi2: 139.458674175181\n    test 3886 line 432 lat2: -24.322411486444\n    test 3887 line 432 lon2: 103.867391100271\n    test 3888 line 432 azi2: 139.458674175181\n    test 3889 line 433 lat: -19.557319\n    test 3890 line 433 lon: 81.358495\n    test 3891 line 433 fb: 134.029610\n    test 3892 line 433 lat2: -19.557318635270\n    test 3893 line 433 lon2: 81.358494523202\n    test 3894 line 433 azi2: 134.029609915778\n    test 3895 line 433 lat2: -19.557318635270\n    test 3896 line 433 lon2: 81.358494523202\n    test 3897 line 433 azi2: 134.029609915778\n    test 3898 line 434 lat: 7.830115\n    test 3899 line 434 lon: 5.114172\n    test 3900 line 434 fb: 175.025641\n    test 3901 line 434 lat2: 7.830115253087\n    test 3902 line 434 lon2: 5.114172330857\n    test 3903 line 434 azi2: 175.025640902819\n    test 3904 line 434 lat2: 7.830115253087\n    test 3905 line 434 lon2: 5.114172330857\n    test 3906 line 434 azi2: 175.025640902819\n    test 3907 line 435 lat: -65.834623\n    test 3908 line 435 lon: 41.772796\n    test 3909 line 435 fb: 143.178050\n    test 3910 line 435 lat2: -65.834622858584\n    test 3911 line 435 lon2: 41.772796000787\n    test 3912 line 435 azi2: 143.178050120951\n    test 3913 line 435 lat2: -65.834622858584\n    test 3914 line 435 lon2: 41.772796000787\n    test 3915 line 435 azi2: 143.178050120951\n    test 3916 line 436 lat: -7.997604\n    test 3917 line 436 lon: 31.723397\n    test 3918 line 436 fb: 153.896388\n    test 3919 line 436 lat2: -7.997604143032\n    test 3920 line 436 lon2: 31.723396618974\n    test 3921 line 436 azi2: 153.896387549518\n    test 3922 line 436 lat2: -7.997604143032\n    test 3923 line 436 lon2: 31.723396618974\n    test 3924 line 436 azi2: 153.896387549518\n    test 3925 line 437 lat: -22.173130\n    test 3926 line 437 lon: 164.896770\n    test 3927 line 437 fb: 152.675597\n    test 3928 line 437 lat2: -22.173129586699\n    test 3929 line 437 lon2: 164.896770399383\n    test 3930 line 437 azi2: 152.675596916021\n    test 3931 line 437 lat2: -22.173129586699\n    test 3932 line 437 lon2: 164.896770399383\n    test 3933 line 437 azi2: 152.675596916021\n    test 3934 line 438 lat: 35.085786\n    test 3935 line 438 lon: 173.892271\n    test 3936 line 438 fb: 171.931231\n    test 3937 line 438 lat2: 35.085785799083\n    test 3938 line 438 lon2: 173.892270533009\n    test 3939 line 438 azi2: 171.931230872910\n    test 3940 line 438 lat2: 35.085785799083\n    test 3941 line 438 lon2: 173.892270533009\n    test 3942 line 438 azi2: 171.931230872910\n    test 3943 line 439 lat: -25.378865\n    test 3944 line 439 lon: 2.197740\n    test 3945 line 439 fb: 178.756775\n    test 3946 line 439 lat2: -25.378865450268\n    test 3947 line 439 lon2: 2.197739985587\n    test 3948 line 439 azi2: 178.756775063163\n    test 3949 line 439 lat2: -25.378865450269  FAILED, KNOWN, expected -25.378865450268\n    test 3950 line 439 lon2: 2.197739985587\n    test 3951 line 439 azi2: 178.756775063163\n    test 3952 line 440 lat: -13.782608\n    test 3953 line 440 lon: 143.084799\n    test 3954 line 440 fb: 141.818572\n    test 3955 line 440 lat2: -13.782608118540\n    test 3956 line 440 lon2: 143.084798779239\n    test 3957 line 440 azi2: 141.818572490275\n    test 3958 line 440 lat2: -13.782608118540\n    test 3959 line 440 lon2: 143.084798779239\n    test 3960 line 440 azi2: 141.818572490275\n    test 3961 line 441 lat: -16.657589\n    test 3962 line 441 lon: 100.829440\n    test 3963 line 441 fb: 94.804409\n    test 3964 line 441 lat2: -16.657588778768\n    test 3965 line 441 lon2: 100.829440071396\n    test 3966 line 441 azi2: 94.804408628371\n    test 3967 line 441 lat2: -16.657588778768\n    test 3968 line 441 lon2: 100.829440071396\n    test 3969 line 441 azi2: 94.804408628371\n    test 3970 line 442 lat: 23.629666\n    test 3971 line 442 lon: 148.675531\n    test 3972 line 442 fb: 169.091767\n    test 3973 line 442 lat2: 23.629665922502\n    test 3974 line 442 lon2: 148.675530832608\n    test 3975 line 442 azi2: 169.091766635020\n    test 3976 line 442 lat2: 23.629665922502\n    test 3977 line 442 lon2: 148.675530832608\n    test 3978 line 442 azi2: 169.091766635020\n    test 3979 line 443 lat: 4.022724\n    test 3980 line 443 lon: 161.803702\n    test 3981 line 443 fb: 141.272785\n    test 3982 line 443 lat2: 4.022724409294\n    test 3983 line 443 lon2: 161.803702045621\n    test 3984 line 443 azi2: 141.272784545678\n    test 3985 line 443 lat2: 4.022724409294\n    test 3986 line 443 lon2: 161.803702045621\n    test 3987 line 443 azi2: 141.272784545678\n    test 3988 line 444 lat: 13.280168\n    test 3989 line 444 lon: 20.120413\n    test 3990 line 444 fb: 158.170551\n    test 3991 line 444 lat2: 13.280167579164\n    test 3992 line 444 lon2: 20.120413486875\n    test 3993 line 444 azi2: 158.170551379189\n    test 3994 line 444 lat2: 13.280167579164\n    test 3995 line 444 lon2: 20.120413486875\n    test 3996 line 444 azi2: 158.170551379189\n    test 3997 line 445 lat: -47.521450\n    test 3998 line 445 lon: 150.549196\n    test 3999 line 445 fb: 44.718791\n    test 4000 line 445 lat2: -47.521449956879\n    test 4001 line 445 lon2: 150.549196046351\n    test 4002 line 445 azi2: 44.718791294775\n    test 4003 line 445 lat2: -47.521449956879\n    test 4004 line 445 lon2: 150.549196046351\n    test 4005 line 445 azi2: 44.718791294775\n    test 4006 line 446 lat: 17.790615\n    test 4007 line 446 lon: 141.461006\n    test 4008 line 446 fb: 115.746784\n    test 4009 line 446 lat2: 17.790615163216\n    test 4010 line 446 lon2: 141.461005551791\n    test 4011 line 446 azi2: 115.746784352318\n    test 4012 line 446 lat2: 17.790615163216\n    test 4013 line 446 lon2: 141.461005551791\n    test 4014 line 446 azi2: 115.746784352318\n    test 4015 line 447 lat: -26.519374\n    test 4016 line 447 lon: 98.067906\n    test 4017 line 447 fb: 113.253929\n    test 4018 line 447 lat2: -26.519374288386\n    test 4019 line 447 lon2: 98.067906321718\n    test 4020 line 447 azi2: 113.253928642653\n    test 4021 line 447 lat2: -26.519374288386\n    test 4022 line 447 lon2: 98.067906321718\n    test 4023 line 447 azi2: 113.253928642653\n    test 4024 line 448 lat: -12.401139\n    test 4025 line 448 lon: 73.327970\n    test 4026 line 448 fb: 124.879499\n    test 4027 line 448 lat2: -12.401138571717\n    test 4028 line 448 lon2: 73.327969848986\n    test 4029 line 448 azi2: 124.879499241464\n    test 4030 line 448 lat2: -12.401138571717\n    test 4031 line 448 lon2: 73.327969848986\n    test 4032 line 448 azi2: 124.879499241464\n    test 4033 line 449 lat: 61.619396\n    test 4034 line 449 lon: 99.785406\n    test 4035 line 449 fb: 107.998380\n    test 4036 line 449 lat2: 61.619396375102\n    test 4037 line 449 lon2: 99.785406498835\n    test 4038 line 449 azi2: 107.998379654880\n    test 4039 line 449 lat2: 61.619396375102\n    test 4040 line 449 lon2: 99.785406498835\n    test 4041 line 449 azi2: 107.998379654880\n    test 4042 line 450 lat: 36.997252\n    test 4043 line 450 lon: 56.015643\n    test 4044 line 450 fb: 103.921663\n    test 4045 line 450 lat2: 36.997252125041\n    test 4046 line 450 lon2: 56.015642631106\n    test 4047 line 450 azi2: 103.921662760483\n    test 4048 line 450 lat2: 36.997252125041\n    test 4049 line 450 lon2: 56.015642631106\n    test 4050 line 450 azi2: 103.921662760483\n    test 4051 line 451 lat: 37.824447\n    test 4052 line 451 lon: 83.438440\n    test 4053 line 451 fb: 89.229164\n    test 4054 line 451 lat2: 37.824446788544\n    test 4055 line 451 lon2: 83.438439603294\n    test 4056 line 451 azi2: 89.229164462127\n    test 4057 line 451 lat2: 37.824446788544\n    test 4058 line 451 lon2: 83.438439603294\n    test 4059 line 451 azi2: 89.229164462127\n    test 4060 line 452 lat: 78.387864\n    test 4061 line 452 lon: 118.814812\n    test 4062 line 452 fb: 133.706108\n    test 4063 line 452 lat2: 78.387863550790\n    test 4064 line 452 lon2: 118.814812128945\n    test 4065 line 452 azi2: 133.706108131229\n    test 4066 line 452 lat2: 78.387863550790\n    test 4067 line 452 lon2: 118.814812128944  FAILED, KNOWN, expected 118.814812128945\n    test 4068 line 452 azi2: 133.706108131229\n    test 4069 line 453 lat: -21.219381\n    test 4070 line 453 lon: 53.544400\n    test 4071 line 453 fb: 108.462517\n    test 4072 line 453 lat2: -21.219381398156\n    test 4073 line 453 lon2: 53.544399883561\n    test 4074 line 453 azi2: 108.462517491505\n    test 4075 line 453 lat2: -21.219381398156\n    test 4076 line 453 lon2: 53.544399883561\n    test 4077 line 453 azi2: 108.462517491505\n    test 4078 line 454 lat: 63.304502\n    test 4079 line 454 lon: 132.034926\n    test 4080 line 454 fb: 139.912627\n    test 4081 line 454 lat2: 63.304502042590\n    test 4082 line 454 lon2: 132.034925840674\n    test 4083 line 454 azi2: 139.912627269623\n    test 4084 line 454 lat2: 63.304502042590\n    test 4085 line 454 lon2: 132.034925840674\n    test 4086 line 454 azi2: 139.912627269623\n    test 4087 line 455 lat: 13.515663\n    test 4088 line 455 lon: 8.989766\n    test 4089 line 455 fb: 35.949535\n    test 4090 line 455 lat2: 13.515662875313\n    test 4091 line 455 lon2: 8.989765670730\n    test 4092 line 455 azi2: 35.949534634702\n    test 4093 line 455 lat2: 13.515662875313\n    test 4094 line 455 lon2: 8.989765670730\n    test 4095 line 455 azi2: 35.949534634702\n    test 4096 line 456 lat: -6.742624\n    test 4097 line 456 lon: 4.531931\n    test 4098 line 456 fb: 171.306863\n    test 4099 line 456 lat2: -6.742624347861\n    test 4100 line 456 lon2: 4.531931315168\n    test 4101 line 456 azi2: 171.306863155411\n    test 4102 line 456 lat2: -6.742624347861\n    test 4103 line 456 lon2: 4.531931315168\n    test 4104 line 456 azi2: 171.306863155411\n    test 4105 line 457 lat: -24.910509\n    test 4106 line 457 lon: 128.137682\n    test 4107 line 457 fb: 121.711631\n    test 4108 line 457 lat2: -24.910509138681\n    test 4109 line 457 lon2: 128.137681811633\n    test 4110 line 457 azi2: 121.711631340407\n    test 4111 line 457 lat2: -24.910509138681\n    test 4112 line 457 lon2: 128.137681811633\n    test 4113 line 457 azi2: 121.711631340407\n    test 4114 line 458 lat: -40.687591\n    test 4115 line 458 lon: 76.389897\n    test 4116 line 458 fb: 116.394433\n    test 4117 line 458 lat2: -40.687590598372\n    test 4118 line 458 lon2: 76.389897347637\n    test 4119 line 458 azi2: 116.394432846311\n    test 4120 line 458 lat2: -40.687590598372\n    test 4121 line 458 lon2: 76.389897347637\n    test 4122 line 458 azi2: 116.394432846311\n    test 4123 line 459 lat: 50.593808\n    test 4124 line 459 lon: 155.175630\n    test 4125 line 459 fb: 149.533910\n    test 4126 line 459 lat2: 50.593807692461\n    test 4127 line 459 lon2: 155.175629862288\n    test 4128 line 459 azi2: 149.533910451363\n    test 4129 line 459 lat2: 50.593807692461\n    test 4130 line 459 lon2: 155.175629862288\n    test 4131 line 459 azi2: 149.533910451363\n    test 4132 line 460 lat: 12.198222\n    test 4133 line 460 lon: 165.839456\n    test 4134 line 460 fb: 172.783459\n    test 4135 line 460 lat2: 12.198221826512\n    test 4136 line 460 lon2: 165.839456381799\n    test 4137 line 460 azi2: 172.783459292833\n    test 4138 line 460 lat2: 12.198221826512\n    test 4139 line 460 lon2: 165.839456381799\n    test 4140 line 460 azi2: 172.783459292833\n    test 4141 line 461 lat: 34.436568\n    test 4142 line 461 lon: 7.117338\n    test 4143 line 461 fb: 169.786492\n    test 4144 line 461 lat2: 34.436568298724\n    test 4145 line 461 lon2: 7.117337693395\n    test 4146 line 461 azi2: 169.786491850891\n    test 4147 line 461 lat2: 34.436568298724\n    test 4148 line 461 lon2: 7.117337693395\n    test 4149 line 461 azi2: 169.786491850891\n    test 4150 line 462 lat: -3.145255\n    test 4151 line 462 lon: 30.502293\n    test 4152 line 462 fb: 103.563749\n    test 4153 line 462 lat2: -3.145254788627\n    test 4154 line 462 lon2: 30.502293345016\n    test 4155 line 462 azi2: 103.563748974525\n    test 4156 line 462 lat2: -3.145254788627\n    test 4157 line 462 lon2: 30.502293345016\n    test 4158 line 462 azi2: 103.563748974525\n    test 4159 line 463 lat: 16.264722\n    test 4160 line 463 lon: 85.497207\n    test 4161 line 463 fb: 116.933863\n    test 4162 line 463 lat2: 16.264722156696\n    test 4163 line 463 lon2: 85.497207496626\n    test 4164 line 463 azi2: 116.933862512764  FAILED, KNOWN, expected 116.933862512763\n    test 4165 line 463 lat2: 16.264722156696\n    test 4166 line 463 lon2: 85.497207496627  FAILED, KNOWN, expected 85.497207496626\n    test 4167 line 463 azi2: 116.933862512764  FAILED, KNOWN, expected 116.933862512763\n    test 4168 line 464 lat: 1.433605\n    test 4169 line 464 lon: 4.165940\n    test 4170 line 464 fb: 170.272462\n    test 4171 line 464 lat2: 1.433605151882\n    test 4172 line 464 lon2: 4.165940219923\n    test 4173 line 464 azi2: 170.272462365963\n    test 4174 line 464 lat2: 1.433605151882\n    test 4175 line 464 lon2: 4.165940219923\n    test 4176 line 464 azi2: 170.272462365963\n    test 4177 line 465 lat: -43.326676\n    test 4178 line 465 lon: 153.148367\n    test 4179 line 465 fb: 42.921394\n    test 4180 line 465 lat2: -43.326676023438\n    test 4181 line 465 lon2: 153.148366512832\n    test 4182 line 465 azi2: 42.921393854868\n    test 4183 line 465 lat2: -43.326676023438\n    test 4184 line 465 lon2: 153.148366512832\n    test 4185 line 465 azi2: 42.921393854868\n    test 4186 line 466 lat: 20.405242\n    test 4187 line 466 lon: 178.247549\n    test 4188 line 466 fb: 178.801033\n    test 4189 line 466 lat2: 20.405242225208\n    test 4190 line 466 lon2: 178.247549230810\n    test 4191 line 466 azi2: 178.801032702563\n    test 4192 line 466 lat2: 20.405242225208\n    test 4193 line 466 lon2: 178.247549230810\n    test 4194 line 466 azi2: 178.801032702563\n    test 4195 line 467 lat: -22.482832\n    test 4196 line 467 lon: 140.761211\n    test 4197 line 467 fb: 82.371737\n    test 4198 line 467 lat2: -22.482831544520\n    test 4199 line 467 lon2: 140.761210729739\n    test 4200 line 467 azi2: 82.371736722715\n    test 4201 line 467 lat2: -22.482831544520\n    test 4202 line 467 lon2: 140.761210729739\n    test 4203 line 467 azi2: 82.371736722715\n    test 4204 line 468 lat: -41.151672\n    test 4205 line 468 lon: 38.419124\n    test 4206 line 468 fb: 148.221356\n    test 4207 line 468 lat2: -41.151672070525\n    test 4208 line 468 lon2: 38.419124284860\n    test 4209 line 468 azi2: 148.221356053664\n    test 4210 line 468 lat2: -41.151672070525\n    test 4211 line 468 lon2: 38.419124284860\n    test 4212 line 468 azi2: 148.221356053664\n    test 4213 line 469 lat: -63.212817\n    test 4214 line 469 lon: 15.714998\n    test 4215 line 469 fb: 166.777356\n    test 4216 line 469 lat2: -63.212816746477\n    test 4217 line 469 lon2: 15.714998156904\n    test 4218 line 469 azi2: 166.777356149473\n    test 4219 line 469 lat2: -63.212816746477\n    test 4220 line 469 lon2: 15.714998156904\n    test 4221 line 469 azi2: 166.777356149473\n    test 4222 line 470 lat: -33.892681\n    test 4223 line 470 lon: 120.971496\n    test 4224 line 470 fb: 170.404814\n    test 4225 line 470 lat2: -33.892680517408\n    test 4226 line 470 lon2: 120.971495805190\n    test 4227 line 470 azi2: 170.404813772447\n    test 4228 line 470 lat2: -33.892680517408\n    test 4229 line 470 lon2: 120.971495805190\n    test 4230 line 470 azi2: 170.404813772447\n    test 4231 line 471 lat: -17.570093\n    test 4232 line 471 lon: 137.259693\n    test 4233 line 471 fb: 175.973637\n    test 4234 line 471 lat2: -17.570092516031\n    test 4235 line 471 lon2: 137.259693182063\n    test 4236 line 471 azi2: 175.973637230107\n    test 4237 line 471 lat2: -17.570092516031\n    test 4238 line 471 lon2: 137.259693182063\n    test 4239 line 471 azi2: 175.973637230107\n    test 4240 line 472 lat: -24.221028\n    test 4241 line 472 lon: 33.960052\n    test 4242 line 472 fb: 130.753279\n    test 4243 line 472 lat2: -24.221027716301  FAILED, KNOWN, expected -24.221027716300\n    test 4244 line 472 lon2: 33.960051796001\n    test 4245 line 472 azi2: 130.753279335550\n    test 4246 line 472 lat2: -24.221027716301  FAILED, KNOWN, expected -24.221027716300\n    test 4247 line 472 lon2: 33.960051796001\n    test 4248 line 472 azi2: 130.753279335550\n    test 4249 line 473 lat: -48.849133\n    test 4250 line 473 lon: 176.601435\n    test 4251 line 473 fb: 5.037779\n    test 4252 line 473 lat2: -48.849132604777\n    test 4253 line 473 lon2: 176.601435366477\n    test 4254 line 473 azi2: 5.037779120578\n    test 4255 line 473 lat2: -48.849132604777\n    test 4256 line 473 lon2: 176.601435366477\n    test 4257 line 473 azi2: 5.037779120578\n    test 4258 line 474 lat: -50.620233\n    test 4259 line 474 lon: 22.061011\n    test 4260 line 474 fb: 159.730881\n    test 4261 line 474 lat2: -50.620232529081\n    test 4262 line 474 lon2: 22.061010504617\n    test 4263 line 474 azi2: 159.730880799186\n    test 4264 line 474 lat2: -50.620232529081\n    test 4265 line 474 lon2: 22.061010504617\n    test 4266 line 474 azi2: 159.730880799186\n    test 4267 line 475 lat: -11.354875\n    test 4268 line 475 lon: 76.258812\n    test 4269 line 475 fb: 104.014357\n    test 4270 line 475 lat2: -11.354875472483\n    test 4271 line 475 lon2: 76.258812283705\n    test 4272 line 475 azi2: 104.014356938495\n    test 4273 line 475 lat2: -11.354875472483\n    test 4274 line 475 lon2: 76.258812283705\n    test 4275 line 475 azi2: 104.014356938495\n    test 4276 line 476 lat: -19.640051\n    test 4277 line 476 lon: 105.698979\n    test 4278 line 476 fb: 156.650619\n    test 4279 line 476 lat2: -19.640050782646\n    test 4280 line 476 lon2: 105.698978700604\n    test 4281 line 476 azi2: 156.650619021389\n    test 4282 line 476 lat2: -19.640050782646\n    test 4283 line 476 lon2: 105.698978700604\n    test 4284 line 476 azi2: 156.650619021389\n    test 4285 line 477 lat: 83.855267\n    test 4286 line 477 lon: 112.674858\n    test 4287 line 477 fb: 122.383784\n    test 4288 line 477 lat2: 83.855266840098\n    test 4289 line 477 lon2: 112.674858066810\n    test 4290 line 477 azi2: 122.383784147681\n    test 4291 line 477 lat2: 83.855266840098\n    test 4292 line 477 lon2: 112.674858066811  FAILED, KNOWN, expected 112.674858066810\n    test 4293 line 477 azi2: 122.383784147681\n    test 4294 line 478 lat: 48.296558\n    test 4295 line 478 lon: 34.072463\n    test 4296 line 478 fb: 61.415867\n    test 4297 line 478 lat2: 48.296557545891\n    test 4298 line 478 lon2: 34.072462542900\n    test 4299 line 478 azi2: 61.415867309157\n    test 4300 line 478 lat2: 48.296557545891\n    test 4301 line 478 lon2: 34.072462542900\n    test 4302 line 478 azi2: 61.415867309157\n    test 4303 line 479 lat: 20.173772\n    test 4304 line 479 lon: 12.682422\n    test 4305 line 479 fb: 165.220898\n    test 4306 line 479 lat2: 20.173772376863\n    test 4307 line 479 lon2: 12.682422408956\n    test 4308 line 479 azi2: 165.220897942891\n    test 4309 line 479 lat2: 20.173772376863\n    test 4310 line 479 lon2: 12.682422408956\n    test 4311 line 479 azi2: 165.220897942891\n    test 4312 line 480 lat: 47.501521\n    test 4313 line 480 lon: 54.338775\n    test 4314 line 480 fb: 80.572388\n    test 4315 line 480 lat2: 47.501521345953\n    test 4316 line 480 lon2: 54.338775236773\n    test 4317 line 480 azi2: 80.572387690286\n    test 4318 line 480 lat2: 47.501521345953\n    test 4319 line 480 lon2: 54.338775236773\n    test 4320 line 480 azi2: 80.572387690286\n    test 4321 line 481 lat: -34.023172\n    test 4322 line 481 lon: 174.310259\n    test 4323 line 481 fb: 123.138509\n    test 4324 line 481 lat2: -34.023171607796\n    test 4325 line 481 lon2: 174.310258612178\n    test 4326 line 481 azi2: 123.138509441522\n    test 4327 line 481 lat2: -34.023171607796\n    test 4328 line 481 lon2: 174.310258612178\n    test 4329 line 481 azi2: 123.138509441522\n    test 4330 line 482 lat: -31.540913\n    test 4331 line 482 lon: 52.441924\n    test 4332 line 482 fb: 155.194513\n    test 4333 line 482 lat2: -31.540912691186\n    test 4334 line 482 lon2: 52.441923606881  FAILED, KNOWN, expected 52.441923606882\n    test 4335 line 482 azi2: 155.194512958367\n    test 4336 line 482 lat2: -31.540912691186\n    test 4337 line 482 lon2: 52.441923606881  FAILED, KNOWN, expected 52.441923606882\n    test 4338 line 482 azi2: 155.194512958367\n    test 4339 line 483 lat: 64.121649\n    test 4340 line 483 lon: 21.295234\n    test 4341 line 483 fb: 51.966943\n    test 4342 line 483 lat2: 64.121648788158\n    test 4343 line 483 lon2: 21.295234110583\n    test 4344 line 483 azi2: 51.966943039534\n    test 4345 line 483 lat2: 64.121648788158\n    test 4346 line 483 lon2: 21.295234110583\n    test 4347 line 483 azi2: 51.966943039534\n    test 4348 line 484 lat: -4.599613\n    test 4349 line 484 lon: 107.727091\n    test 4350 line 484 fb: 109.270070\n    test 4351 line 484 lat2: -4.599612537190\n    test 4352 line 484 lon2: 107.727090701893\n    test 4353 line 484 azi2: 109.270070124629\n    test 4354 line 484 lat2: -4.599612537190\n    test 4355 line 484 lon2: 107.727090701893\n    test 4356 line 484 azi2: 109.270070124629\n    test 4357 line 485 lat: -16.799515\n    test 4358 line 485 lon: 43.675397\n    test 4359 line 485 fb: 144.940350\n    test 4360 line 485 lat2: -16.799514501718\n    test 4361 line 485 lon2: 43.675397103786  FAILED, KNOWN, expected 43.675397103785\n    test 4362 line 485 azi2: 144.940350340820\n    test 4363 line 485 lat2: -16.799514501718\n    test 4364 line 485 lon2: 43.675397103786  FAILED, KNOWN, expected 43.675397103785\n    test 4365 line 485 azi2: 144.940350340820\n    test 4366 line 486 lat: -16.337411\n    test 4367 line 486 lon: 13.110283\n    test 4368 line 486 fb: 167.467077\n    test 4369 line 486 lat2: -16.337410785184\n    test 4370 line 486 lon2: 13.110282576579\n    test 4371 line 486 azi2: 167.467077049713\n    test 4372 line 486 lat2: -16.337410785184\n    test 4373 line 486 lon2: 13.110282576579\n    test 4374 line 486 azi2: 167.467077049713\n    test 4375 line 487 lat: -26.145379\n    test 4376 line 487 lon: 9.977868\n    test 4377 line 487 fb: 171.929335\n    test 4378 line 487 lat2: -26.145378737931\n    test 4379 line 487 lon2: 9.977868070750\n    test 4380 line 487 azi2: 171.929335050809\n    test 4381 line 487 lat2: -26.145378737931\n    test 4382 line 487 lon2: 9.977868070750\n    test 4383 line 487 azi2: 171.929335050809\n    test 4384 line 488 lat: -3.245748\n    test 4385 line 488 lon: 71.931981\n    test 4386 line 488 fb: 124.120047\n    test 4387 line 488 lat2: -3.245748416402\n    test 4388 line 488 lon2: 71.931980979620\n    test 4389 line 488 azi2: 124.120046609527\n    test 4390 line 488 lat2: -3.245748416402\n    test 4391 line 488 lon2: 71.931980979620\n    test 4392 line 488 azi2: 124.120046609527\n    test 4393 line 489 lat: 72.975644\n    test 4394 line 489 lon: 36.459313\n    test 4395 line 489 fb: 49.411324\n    test 4396 line 489 lat2: 72.975644407376\n    test 4397 line 489 lon2: 36.459312843012\n    test 4398 line 489 azi2: 49.411324496539\n    test 4399 line 489 lat2: 72.975644407376\n    test 4400 line 489 lon2: 36.459312843012\n    test 4401 line 489 azi2: 49.411324496539\n    test 4402 line 490 lat: 50.342418\n    test 4403 line 490 lon: 35.445910\n    test 4404 line 490 fb: 43.087650\n    test 4405 line 490 lat2: 50.342417843481\n    test 4406 line 490 lon2: 35.445910446930\n    test 4407 line 490 azi2: 43.087650398316\n    test 4408 line 490 lat2: 50.342417843481\n    test 4409 line 490 lon2: 35.445910446930\n    test 4410 line 490 azi2: 43.087650398316\n    test 4411 line 491 lat: -22.878804\n    test 4412 line 491 lon: 69.376306\n    test 4413 line 491 fb: 102.211558\n    test 4414 line 491 lat2: -22.878804028267\n    test 4415 line 491 lon2: 69.376306288000\n    test 4416 line 491 azi2: 102.211557813582\n    test 4417 line 491 lat2: -22.878804028267\n    test 4418 line 491 lon2: 69.376306288000\n    test 4419 line 491 azi2: 102.211557813582\n    test 4420 line 492 lat: 21.254912\n    test 4421 line 492 lon: 21.899215\n    test 4422 line 492 fb: 92.966926\n    test 4423 line 492 lat2: 21.254912121078\n    test 4424 line 492 lon2: 21.899214754868\n    test 4425 line 492 azi2: 92.966926161390\n    test 4426 line 492 lat2: 21.254912121078\n    test 4427 line 492 lon2: 21.899214754868\n    test 4428 line 492 azi2: 92.966926161390\n    test 4429 line 493 lat: 26.486641\n    test 4430 line 493 lon: 19.097603\n    test 4431 line 493 fb: 158.053447\n    test 4432 line 493 lat2: 26.486640906235\n    test 4433 line 493 lon2: 19.097602913800\n    test 4434 line 493 azi2: 158.053446850267\n    test 4435 line 493 lat2: 26.486640906235\n    test 4436 line 493 lon2: 19.097602913800\n    test 4437 line 493 azi2: 158.053446850267\n    test 4438 line 494 lat: 43.041538\n    test 4439 line 494 lon: 114.186950\n    test 4440 line 494 fb: 155.795323\n    test 4441 line 494 lat2: 43.041538374784\n    test 4442 line 494 lon2: 114.186949886941\n    test 4443 line 494 azi2: 155.795322500736\n    test 4444 line 494 lat2: 43.041538374784\n    test 4445 line 494 lon2: 114.186949886941\n    test 4446 line 494 azi2: 155.795322500736\n    test 4447 line 495 lat: -10.570764\n    test 4448 line 495 lon: 107.625834\n    test 4449 line 495 fb: 98.142401\n    test 4450 line 495 lat2: -10.570763915882\n    test 4451 line 495 lon2: 107.625834147204\n    test 4452 line 495 azi2: 98.142400502747\n    test 4453 line 495 lat2: -10.570763915882\n    test 4454 line 495 lon2: 107.625834147204\n    test 4455 line 495 azi2: 98.142400502747\n    test 4456 line 496 lat: 12.624313\n    test 4457 line 496 lon: 139.841077\n    test 4458 line 496 fb: 148.385662\n    test 4459 line 496 lat2: 12.624313141297\n    test 4460 line 496 lon2: 139.841076840613\n    test 4461 line 496 azi2: 148.385661923898\n    test 4462 line 496 lat2: 12.624313141297\n    test 4463 line 496 lon2: 139.841076840613\n    test 4464 line 496 azi2: 148.385661923898\n    test 4465 line 497 lat: -25.169999\n    test 4466 line 497 lon: 33.175749\n    test 4467 line 497 fb: 169.905377\n    test 4468 line 497 lat2: -25.169998746665\n    test 4469 line 497 lon2: 33.175749310362\n    test 4470 line 497 azi2: 169.905376778384\n    test 4471 line 497 lat2: -25.169998746665\n    test 4472 line 497 lon2: 33.175749310362\n    test 4473 line 497 azi2: 169.905376778384\n    test 4474 line 498 lat: -41.360282\n    test 4475 line 498 lon: 147.341948\n    test 4476 line 498 fb: 136.551910\n    test 4477 line 498 lat2: -41.360281944908\n    test 4478 line 498 lon2: 147.341948469937\n    test 4479 line 498 azi2: 136.551910060918\n    test 4480 line 498 lat2: -41.360281944908\n    test 4481 line 498 lon2: 147.341948469937\n    test 4482 line 498 azi2: 136.551910060918\n    test 4483 line 499 lat: 39.182099\n    test 4484 line 499 lon: 150.590705\n    test 4485 line 499 fb: 165.522951\n    test 4486 line 499 lat2: 39.182099298590\n    test 4487 line 499 lon2: 150.590705311219\n    test 4488 line 499 azi2: 165.522950851635\n    test 4489 line 499 lat2: 39.182099298590\n    test 4490 line 499 lon2: 150.590705311219\n    test 4491 line 499 azi2: 165.522950851635\n    test 4492 line 500 lat: -57.494441\n    test 4493 line 500 lon: 113.054057\n    test 4494 line 500 fb: 130.988277\n    test 4495 line 500 lat2: -57.494440629886\n    test 4496 line 500 lon2: 113.054056725195\n    test 4497 line 500 azi2: 130.988276746436\n    test 4498 line 500 lat2: -57.494440629886\n    test 4499 line 500 lon2: 113.054056725195\n    test 4500 line 500 azi2: 130.988276746436\n    test 4501 WGS84.KsOrder: 8\n\n    545 of 4501 testEllipsoidalGeodTest.py tests (12.1%) FAILED, incl. 45 KNOWN plus 500 DeprecationWarnings (pygeodesy 26.3.26 Python 3.13.12 64bit arm64 coverage 7.10.7 geographiclib 2.1 numpy 2.3.3 scipy 1.16.2 Math 2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 macOS 26.3.1 isLazy 1 -W  default) 12.921 sec\nrunning /Library/Framewo....n3.13 -W default ~/PyGeodesy/test/testEllipsoids.py\n\n    testing testEllipsoids.py 25.08.28 (module pygeodesy.ellipsoids 26.03.25) isLazy=1\n    test 1 ellipsoid: True\n    test 2 TestEllipsoid: name='TestEllipsoid', a=1000, f=0, f_=0, b=1000\n\n    testWGS84(pygeodesy.ellipsoids, 26.03.25)\n    test 3 R1: 6371008.7714\n    test 4 R2: 6371007.2\n    test 5 R3: 6371000.8\n    test 6 A: 6367449.1\n    test 7 L: 10001965.7\n    test 8 Rrectifying: 6367449.1\n    test 9 Rgeometric: 6367435.7\n    test 10 Rgeocentric: 6378137.000\n    test 11 Rgeocentric: 6367489.544\n    test 12 Rgeocentric: 6356752.314\n    test 13 Rlat: 6378137.000\n    test 14 Rlat: 6367444.657\n    test 15 Rlat: 6356752.314\n    test 16 circle4.radius: 6378137.000\n    test 17 circle4.radius: 4517590.879\n    test 18 circle4.radius: 0.000\n    test 19 distance2: 156903.472, 45.192\n    test 20 distance2: 1569034.719, 45.192\n    test 21 distance2: 1400742.676, 37.563\n    test 22 distance2: 1179164.848, 18.896\n    test 23 roc2: 6335439.327, 6378137.0\n    test 24 roc2: 6367381.816, 6388838.29\n    test 25 roc2: 6399593.626, 6399593.626\n    test 26 rocBearing: 6335439.327\n    test 27 rocBearing: 6378092.008\n    test 28 rocBearing: 6399593.626\n    test 29 rocGauss: 6356752.314\n    test 30 rocGauss: 6378101.030\n    test 31 rocGauss: 6399593.626\n    test 32 rocMean: 6356716.465\n    test 33 rocMean: 6378092.008\n    test 34 rocMean: 6399593.626\n    test 35 rocMeridional: 6335439.327\n    test 36 rocMeridional: 6367381.816\n    test 37 rocMeridional: 6399593.626\n    test 38 rocPrimeVertical: 6378137.0\n    test 39 rocPrimeVertical: 6388838.29\n    test 40 rocPrimeVertical: 6399593.626\n\n    testGRS80(pygeodesy.ellipsoids, 26.03.25)\n    test 41 R1: 6371008.7714\n    test 42 R2: 6371007.2\n    test 43 R3: 6371000.8\n    test 44 A: 6367449.1\n    test 45 L: 10001965.7\n    test 46 Rrectifying: 6367449.1\n    test 47 Rgeometric: 6367435.7\n    test 48 Rgeocentric: 6378137.000\n    test 49 Rgeocentric: 6367489.544\n    test 50 Rgeocentric: 6356752.314\n    test 51 Rlat: 6378137.000\n    test 52 Rlat: 6367444.657\n    test 53 Rlat: 6356752.314\n    test 54 circle4.radius: 6378137.000\n    test 55 circle4.radius: 4517590.879\n    test 56 circle4.radius: 0.000\n    test 57 distance2: 156903.472, 45.192\n    test 58 distance2: 1569034.719, 45.192\n    test 59 distance2: 1400742.676, 37.563\n    test 60 distance2: 1179164.848, 18.896\n    test 61 roc2: 6335439.327, 6378137.0\n    test 62 roc2: 6367381.816, 6388838.29\n    test 63 roc2: 6399593.626, 6399593.626\n    test 64 rocBearing: 6335439.327\n    test 65 rocBearing: 6378092.008\n    test 66 rocBearing: 6399593.626\n    test 67 rocGauss: 6356752.314\n    test 68 rocGauss: 6378101.030\n    test 69 rocGauss: 6399593.626\n    test 70 rocMean: 6356716.465\n    test 71 rocMean: 6378092.008\n    test 72 rocMean: 6399593.626\n    test 73 rocMeridional: 6335439.327\n    test 74 rocMeridional: 6367381.816\n    test 75 rocMeridional: 6399593.626\n    test 76 rocPrimeVertical: 6378137.0\n    test 77 rocPrimeVertical: 6388838.29\n    test 78 rocPrimeVertical: 6399593.626\n\n    test<function Ellipsoid.__init__ at 0x10780e520>(pygeodesy.ellipsoids, 26.03.25)\n    test 79 a, b, None: 2.0\n    test 80 a, None, f_: 500.0\n\n    testWGS84(pygeodesy.ellipsoids, 26.03.25)\n    test 81 WGS84.copy: True\n    test 82 WGS84.copy: True\n    test 83 WGS84.find: None\n    test 84 WGS84.a2_b: 6399593.625758\n    test 85 WGS84.b2_a: 6335439.327293\n    test 86 WGS84.R2: 6371007.180918\n    test 87 WGS84.c2: 40589732499315\n    test 88 WGS84.es: 0.081819\n    test 89 WGS84.e22: 0.006739\n    test 90 WGS84.f2: 0.003364\n    test 91 WGS84.m2degrees: 90\n    test 92 WGS84.degrees2m: 10018754\n    test 93 WGS84.area: 5.101e+14\n    test 94 WGS84.volume: 1.083e+21\n    test 95 WGS84.ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 96 WGS84.ecef: WGS84\n    test 97 WGS84: name='WGS84', a=6378137, f=0.0033528107, f_=298.257223563, b=6356752.3142451793, f2=0.0033640898, n=0.0016792204, e=0.0818191908, e2=0.00669438, e21=0.99330562, e22=0.0067394967, e32=0.0033584313, A=6367449.1458234144, L=10001965.7293127235, R1=6371008.7714150595, R2=6371007.1809184738, R3=6371000.7900091587, Rbiaxial=6367453.6345163295, Rtriaxial=6372797.5559594007\n    test 98 WGS84.: A=6367449.1458234144, e=0.0818191908, f_=298.2572235630, n=0.0016792204 (1.5612511284e-17)\n\n    testKruegers(pygeodesy.ellipsoids, 26.03.25)\n    test 99 WGS84.AlphaKs: 8.377318206245e-04, 7.608527773572e-07, 1.197645503242e-09, 2.429170680397e-12, 5.711818370428e-15, 1.47999793138e-17, 4.107624109371e-20, 1.210785038923e-22\n    test 100 WGS84.BetaKs : 8.377321640579e-04, 5.90587015222e-08, 1.673482665344e-10, 2.164798110491e-13, 3.787930968626e-16, 7.236769021816e-19, 1.493479824778e-21, 3.259522545838e-24\n    test 101 WGS84.AlphaKs: 8.377318206245e-04, 7.608527773572e-07, 1.197645503329e-09, 2.429170607201e-12, 5.711757677866e-15, 1.491117731258e-17\n    test 102 WGS84.BetaKs : 8.377321640579e-04, 5.90587015222e-08, 1.673482665284e-10, 2.164798040063e-13, 3.787978046169e-16, 7.248748890694e-19\n    test 103 WGS84.AlphaKs: 8.377318206304e-04, 7.608527714249e-07, 1.197638001561e-09, 2.443376194522e-12\n    test 104 WGS84.BetaKs : 8.377321640601e-04, 5.905869567934e-08, 1.673488880355e-10, 2.167737763022e-13\n\n    testProlate(pygeodesy.ellipsoids, 26.03.25)\n    test 105 a [Radius_]: 6356752.314\n    test 106 b [Radius_]: 6378137.000\n    test 107 n [Float]: -0.002\n    test 108 R1 [Radius]: 6363880.543\n    test 109 R2 [Radius]: 6363878.941\n    test 110 R3 [Radius]: 6363872.564\n    test 111 Rbiaxial [Radius]: 6367453.635\n    test 112 Rgeometric [Radius]: 6367435.680\n    test 113 c2 [Meter2]: 40498955180263.188\n    test 114 area [Meter2]: 508924880289508.500\n    test 115 volume [Meter3]: 1079575530747445379072.000\n\n    testauxLats WGS84(pygeodesy.ellipsoids, 26.03.25)\n    test 116 isEllipsoidal: True\n    test 117 isOblate: True\n    test 118 isProlate: False\n    test 119 isSpherical: False\n    test 120 auxAuthalic(-90): -90.0\n    test 121 name: auxAuthalic\n    test 122 inverse: lat (-90.0)\n    test 123 auxConformal(-90): -90.0\n    test 124 name: auxConformal\n    test 125 inverse: lat (-90.0)\n    test 126 auxRectifying(-90): -90.0\n    test 127 name: auxRectifying\n    test 128 inverse: lat (-90.0)\n    test 129 auxIsometric(-90): -2178.287790219\n    test 130 name: auxIsometric\n    test 131 inverse: lat (-90.0)\n    test 132 auxParametric(-90): -90.0\n    test 133 name: auxParametric\n    test 134 inverse: lat (-90.0)\n    test 135 auxGeocentric(-90): -90.0\n    test 136 name: auxGeocentric\n    test 137 inverse: lat (-90.0)\n    test 138 auxGeocentric(-90, height=1.0e+06): -90.0\n    test 139 name: auxGeocentric\n    test 140 inverse: lat (-90.0)\n    test 141 auxAuthalic(-61): -60.891087993\n    test 142 name: auxAuthalic\n    test 143 inverse: lat (-61.0)\n    test 144 auxConformal(-61): -60.836664626\n    test 145 name: auxConformal\n    test 146 inverse: lat (-61.0)\n    test 147 auxRectifying(-61): -60.877475063\n    test 148 name: auxRectifying\n    test 149 inverse: lat (-61.0)\n    test 150 auxIsometric(-61): -77.151044895\n    test 151 name: auxIsometric\n    test 152 inverse: lat (-61.0)\n    test 153 auxParametric(-61): -60.918334778\n    test 154 name: auxParametric\n    test 155 inverse: lat (-61.0)\n    test 156 auxGeocentric(-61): -60.836524751\n    test 157 name: auxGeocentric\n    test 158 inverse: lat (-61.0)\n    test 159 auxGeocentric(-61, height=1.0e+06): -60.858730579\n    test 160 name: auxGeocentric\n    test 161 inverse: lat (-61.0)\n    test 162 auxAuthalic(-32): -31.884783413\n    test 163 name: auxAuthalic\n    test 164 inverse: lat (-32.0)\n    test 165 auxConformal(-32): -31.827359208\n    test 166 name: auxConformal\n    test 167 inverse: lat (-32.0)\n    test 168 auxRectifying(-32): -31.870407049\n    test 169 name: auxRectifying\n    test 170 inverse: lat (-32.0)\n    test 171 auxIsometric(-32): -33.603011359\n    test 172 name: auxIsometric\n    test 173 inverse: lat (-32.0)\n    test 174 auxParametric(-32): -31.913588685\n    test 175 name: auxParametric\n    test 176 inverse: lat (-32.0)\n    test 177 auxGeocentric(-32): -31.827305281\n    test 178 name: auxGeocentric\n    test 179 inverse: lat (-32.0)\n    test 180 auxGeocentric(-32, height=1.0e+06): -31.850730486\n    test 181 name: auxGeocentric\n    test 182 inverse: lat (-32.0)\n    test 183 auxAuthalic(-3): -2.986614622\n    test 184 name: auxAuthalic\n    test 185 inverse: lat (-3.0)\n    test 186 auxConformal(-3): -2.97995324\n    test 187 name: auxConformal\n    test 188 inverse: lat (-3.0)\n    test 189 auxRectifying(-3): -2.984946069\n    test 190 name: auxRectifying\n    test 191 inverse: lat (-3.0)\n    test 192 auxIsometric(-3): -2.981297631\n    test 193 name: auxIsometric\n    test 194 inverse: lat (-3.0)\n    test 195 auxParametric(-3): -2.98995985\n    test 196 name: auxParametric\n    test 197 inverse: lat (-3.0)\n    test 198 auxGeocentric(-3): -2.979953179\n    test 199 name: auxGeocentric\n    test 200 inverse: lat (-3.0)\n    test 201 auxGeocentric(-3, height=1.0e+06): -2.982670258\n    test 202 name: auxGeocentric\n    test 203 inverse: lat (-3.0)\n    test 204 auxAuthalic(26): 25.899018772\n    test 205 name: auxAuthalic\n    test 206 inverse: lat (26.0)\n    test 207 auxConformal(26): 25.848713396\n    test 208 name: auxConformal\n    test 209 inverse: lat (26.0)\n    test 210 auxRectifying(26): 25.886422583\n    test 211 name: auxRectifying\n    test 212 inverse: lat (26.0)\n    test 213 auxIsometric(26): 26.772988826\n    test 214 name: auxIsometric\n    test 215 inverse: lat (26.0)\n    test 216 auxParametric(26): 25.924262064\n    test 217 name: auxParametric\n    test 218 inverse: lat (26.0)\n    test 219 auxGeocentric(26): 25.848681095\n    test 220 name: auxGeocentric\n    test 221 inverse: lat (26.0)\n    test 222 auxGeocentric(26, height=1.0e+06): 25.869201526\n    test 223 name: auxGeocentric\n    test 224 inverse: lat (26.0)\n    test 225 auxAuthalic(55): 54.879361595\n    test 226 name: auxAuthalic\n    test 227 inverse: lat (55.0)\n    test 228 auxConformal(55): 54.819109025\n    test 229 name: auxConformal\n    test 230 inverse: lat (55.0)\n    test 231 auxRectifying(55): 54.864287984\n    test 232 name: auxRectifying\n    test 233 inverse: lat (55.0)\n    test 234 auxIsometric(55): 65.818103037\n    test 235 name: auxIsometric\n    test 236 inverse: lat (55.0)\n    test 237 auxParametric(55): 54.909538188\n    test 238 name: auxParametric\n    test 239 inverse: lat (55.0)\n    test 240 auxGeocentric(55): 54.818973309\n    test 241 name: auxGeocentric\n    test 242 inverse: lat (55.0)\n    test 243 auxGeocentric(55, height=1.0e+06): 54.843556517\n    test 244 name: auxGeocentric\n    test 245 inverse: lat (55.0)\n    test 246 auxAuthalic(84): 83.973275752\n    test 247 name: auxAuthalic\n    test 248 inverse: lat (84.0)\n    test 249 auxConformal(84): 83.959905489\n    test 250 name: auxConformal\n    test 251 inverse: lat (84.0)\n    test 252 auxRectifying(84): 83.969932835\n    test 253 name: auxRectifying\n    test 254 inverse: lat (84.0)\n    test 255 auxIsometric(84): 168.565774939\n    test 256 name: auxIsometric\n    test 257 inverse: lat (84.0)\n    test 258 auxParametric(84): 83.979963441\n    test 259 name: auxParametric\n    test 260 inverse: lat (84.0)\n    test 261 auxGeocentric(84): 83.959860962\n    test 262 name: auxGeocentric\n    test 263 inverse: lat (84.0)\n    test 264 auxGeocentric(84, height=1.0e+06): 83.965316868\n    test 265 name: auxGeocentric\n    test 266 inverse: lat (84.0)\n\n    testauxLats Prolate(pygeodesy.ellipsoids, 26.03.25)\n    test 267 isEllipsoidal: True\n    test 268 isOblate: False\n    test 269 isProlate: True\n    test 270 isSpherical: False\n    test 271 auxAuthalic(-90): -90.0\n    test 272 name: auxAuthalic\n    test 273 inverse: lat (-90.0)\n    test 274 auxConformal(-90): -90.0\n    test 275 name: auxConformal\n    test 276 inverse: lat (-90.0)\n    test 277 auxRectifying(-90): -90.0\n    test 278 name: auxRectifying\n    test 279 inverse: lat (-90.0)\n    test 280 auxIsometric(-90): -2179.057490028\n    test 281 name: auxIsometric\n    test 282 inverse: lat (-90.0)\n    test 283 auxParametric(-90): -90.0\n    test 284 name: auxParametric\n    test 285 inverse: lat (-90.0)\n    test 286 auxGeocentric(-90): -90.0\n    test 287 name: auxGeocentric\n    test 288 inverse: lat (-90.0)\n    test 289 auxGeocentric(-90, height=1.0e+06): -90.0\n    test 290 name: auxGeocentric\n    test 291 inverse: lat (-90.0)\n    test 292 auxAuthalic(-61): -61.10866822\n    test 293 name: auxAuthalic\n    test 294 inverse: lat (-61.0)\n    test 295 auxConformal(-61): -61.163034022\n    test 296 name: auxConformal\n    test 297 inverse: lat (-61.0)\n    test 298 auxRectifying(-61): -61.041077146\n    test 299 name: auxRectifying\n    test 300 inverse: lat (-61.0)\n    test 301 auxIsometric(-61): -77.824239376\n    test 302 name: auxIsometric\n    test 303 inverse: lat (-61.0)\n    test 304 auxParametric(-61): -61.081520012\n    test 305 name: auxParametric\n    test 306 inverse: lat (-61.0)\n    test 307 auxGeocentric(-61): -61.162894413\n    test 308 name: auxGeocentric\n    test 309 inverse: lat (-61.0)\n    test 310 auxGeocentric(-61, height=1.0e+06): -61.140801491\n    test 311 name: auxGeocentric\n    test 312 inverse: lat (-61.0)\n    test 313 auxAuthalic(-32): -32.115383155\n    test 314 name: auxAuthalic\n    test 315 inverse: lat (-32.0)\n    test 316 auxConformal(-32): -32.173258776\n    test 317 name: auxConformal\n    test 318 inverse: lat (-32.0)\n    test 319 auxRectifying(-32): -32.043518766\n    test 320 name: auxRectifying\n    test 321 inverse: lat (-32.0)\n    test 322 auxIsometric(-32): -34.010891137\n    test 323 name: auxIsometric\n    test 324 inverse: lat (-32.0)\n    test 325 auxParametric(-32): -32.086538627\n    test 326 name: auxParametric\n    test 327 inverse: lat (-32.0)\n    test 328 auxGeocentric(-32): -32.173203962\n    test 329 name: auxGeocentric\n    test 330 inverse: lat (-32.0)\n    test 331 auxGeocentric(-32, height=1.0e+06): -32.149679767\n    test 332 name: auxGeocentric\n    test 333 inverse: lat (-32.0)\n    test 334 auxAuthalic(-3): -3.013433135\n    test 335 name: auxAuthalic\n    test 336 inverse: lat (-3.0)\n    test 337 auxConformal(-3): -3.020181246\n    test 338 name: auxConformal\n    test 339 inverse: lat (-3.0)\n    test 340 auxRectifying(-3): -3.005060047\n    test 341 name: auxRectifying\n    test 342 inverse: lat (-3.0)\n    test 343 auxIsometric(-3): -3.021580847\n    test 344 name: auxIsometric\n    test 345 inverse: lat (-3.0)\n    test 346 auxParametric(-3): -3.010073741\n    test 347 name: auxParametric\n    test 348 inverse: lat (-3.0)\n    test 349 auxGeocentric(-3): -3.020181184\n    test 350 name: auxGeocentric\n    test 351 inverse: lat (-3.0)\n    test 352 auxGeocentric(-3, height=1.0e+06): -3.017437987\n    test 353 name: auxGeocentric\n    test 354 inverse: lat (-3.0)\n    test 355 auxAuthalic(26): 26.10119548\n    test 356 name: auxAuthalic\n    test 357 inverse: lat (26.0)\n    test 358 auxConformal(26): 26.151978892\n    test 359 name: auxConformal\n    test 360 inverse: lat (26.0)\n    test 361 auxRectifying(26): 26.038152061\n    test 362 name: auxRectifying\n    test 363 inverse: lat (26.0)\n    test 364 auxIsometric(26): 27.110404181\n    test 365 name: auxIsometric\n    test 366 inverse: lat (26.0)\n    test 367 auxParametric(26): 26.075894699\n    test 368 name: auxParametric\n    test 369 inverse: lat (26.0)\n    test 370 auxGeocentric(26): 26.15194595\n    test 371 name: auxGeocentric\n    test 372 inverse: lat (26.0)\n    test 373 auxGeocentric(26, height=1.0e+06): 26.131303631\n    test 374 name: auxGeocentric\n    test 375 inverse: lat (26.0)\n    test 376 auxAuthalic(55): 55.120454487\n    test 377 name: auxAuthalic\n    test 378 inverse: lat (55.0)\n    test 379 auxConformal(55): 55.180747234\n    test 380 name: auxConformal\n    test 381 inverse: lat (55.0)\n    test 382 auxRectifying(55): 55.045512882\n    test 383 name: auxRectifying\n    test 384 inverse: lat (55.0)\n    test 385 auxIsometric(55): 66.448604201\n    test 386 name: auxIsometric\n    test 387 inverse: lat (55.0)\n    test 388 auxParametric(55): 55.090357963\n    test 389 name: auxParametric\n    test 390 inverse: lat (55.0)\n    test 391 auxGeocentric(55): 55.180611298\n    test 392 name: auxGeocentric\n    test 393 inverse: lat (55.0)\n    test 394 auxGeocentric(55, height=1.0e+06): 55.156108835\n    test 395 name: auxGeocentric\n    test 396 inverse: lat (55.0)\n    test 397 auxAuthalic(84): 84.026618976\n    test 398 name: auxAuthalic\n    test 399 inverse: lat (84.0)\n    test 400 auxConformal(84): 84.039920255\n    test 401 name: auxConformal\n    test 402 inverse: lat (84.0)\n    test 403 auxRectifying(84): 84.010072387\n    test 404 name: auxRectifying\n    test 405 inverse: lat (84.0)\n    test 406 auxIsometric(84): 169.331258228\n    test 407 name: auxIsometric\n    test 408 inverse: lat (84.0)\n    test 409 auxParametric(84): 84.019970846\n    test 410 name: auxParametric\n    test 411 inverse: lat (84.0)\n    test 412 auxGeocentric(84): 84.039876185\n    test 413 name: auxGeocentric\n    test 414 inverse: lat (84.0)\n    test 415 auxGeocentric(84, height=1.0e+06): 84.034471374\n    test 416 name: auxGeocentric\n    test 417 inverse: lat (84.0)\n\n    testauxLats Sphere(pygeodesy.ellipsoids, 26.03.25)\n    test 418 isEllipsoidal: False\n    test 419 isOblate: False\n    test 420 isProlate: False\n    test 421 isSpherical: True\n    test 422 auxAuthalic(-90): -90.0\n    test 423 name: auxAuthalic\n    test 424 inverse: lat (-90.0)\n    test 425 auxConformal(-90): -90.0\n    test 426 name: auxConformal\n    test 427 inverse: lat (-90.0)\n    test 428 auxRectifying(-90): -90.0\n    test 429 name: auxRectifying\n    test 430 inverse: lat (-90.0)\n    test 431 auxIsometric(-90): -90.0\n    test 432 name: auxIsometric\n    test 433 inverse: lat (-90.0)\n    test 434 auxParametric(-90): -90.0\n    test 435 name: auxParametric\n    test 436 inverse: lat (-90.0)\n    test 437 auxGeocentric(-90): -90.0\n    test 438 name: auxGeocentric\n    test 439 inverse: lat (-90.0)\n    test 440 auxGeocentric(-90, height=1.0e+06): -90.0\n    test 441 name: auxGeocentric\n    test 442 inverse: lat (-90.0)\n    test 443 auxAuthalic(-61): -61.0\n    test 444 name: auxAuthalic\n    test 445 inverse: lat (-61.0)\n    test 446 auxConformal(-61): -61.0\n    test 447 name: auxConformal\n    test 448 inverse: lat (-61.0)\n    test 449 auxRectifying(-61): -61.0\n    test 450 name: auxRectifying\n    test 451 inverse: lat (-61.0)\n    test 452 auxIsometric(-61): -61.0\n    test 453 name: auxIsometric\n    test 454 inverse: lat (-61.0)\n    test 455 auxParametric(-61): -61.0\n    test 456 name: auxParametric\n    test 457 inverse: lat (-61.0)\n    test 458 auxGeocentric(-61): -61.0\n    test 459 name: auxGeocentric\n    test 460 inverse: lat (-61.0)\n    test 461 auxGeocentric(-61, height=1.0e+06): -61.0\n    test 462 name: auxGeocentric\n    test 463 inverse: lat (-61.0)\n    test 464 auxAuthalic(-32): -32.0\n    test 465 name: auxAuthalic\n    test 466 inverse: lat (-32.0)\n    test 467 auxConformal(-32): -32.0\n    test 468 name: auxConformal\n    test 469 inverse: lat (-32.0)\n    test 470 auxRectifying(-32): -32.0\n    test 471 name: auxRectifying\n    test 472 inverse: lat (-32.0)\n    test 473 auxIsometric(-32): -32.0\n    test 474 name: auxIsometric\n    test 475 inverse: lat (-32.0)\n    test 476 auxParametric(-32): -32.0\n    test 477 name: auxParametric\n    test 478 inverse: lat (-32.0)\n    test 479 auxGeocentric(-32): -32.0\n    test 480 name: auxGeocentric\n    test 481 inverse: lat (-32.0)\n    test 482 auxGeocentric(-32, height=1.0e+06): -32.0\n    test 483 name: auxGeocentric\n    test 484 inverse: lat (-32.0)\n    test 485 auxAuthalic(-3): -3.0\n    test 486 name: auxAuthalic\n    test 487 inverse: lat (-3.0)\n    test 488 auxConformal(-3): -3.0\n    test 489 name: auxConformal\n    test 490 inverse: lat (-3.0)\n    test 491 auxRectifying(-3): -3.0\n    test 492 name: auxRectifying\n    test 493 inverse: lat (-3.0)\n    test 494 auxIsometric(-3): -3.0\n    test 495 name: auxIsometric\n    test 496 inverse: lat (-3.0)\n    test 497 auxParametric(-3): -3.0\n    test 498 name: auxParametric\n    test 499 inverse: lat (-3.0)\n    test 500 auxGeocentric(-3): -3.0\n    test 501 name: auxGeocentric\n    test 502 inverse: lat (-3.0)\n    test 503 auxGeocentric(-3, height=1.0e+06): -3.0\n    test 504 name: auxGeocentric\n    test 505 inverse: lat (-3.0)\n    test 506 auxAuthalic(26): 26.0\n    test 507 name: auxAuthalic\n    test 508 inverse: lat (26.0)\n    test 509 auxConformal(26): 26.0\n    test 510 name: auxConformal\n    test 511 inverse: lat (26.0)\n    test 512 auxRectifying(26): 26.0\n    test 513 name: auxRectifying\n    test 514 inverse: lat (26.0)\n    test 515 auxIsometric(26): 26.0\n    test 516 name: auxIsometric\n    test 517 inverse: lat (26.0)\n    test 518 auxParametric(26): 26.0\n    test 519 name: auxParametric\n    test 520 inverse: lat (26.0)\n    test 521 auxGeocentric(26): 26.0\n    test 522 name: auxGeocentric\n    test 523 inverse: lat (26.0)\n    test 524 auxGeocentric(26, height=1.0e+06): 26.0\n    test 525 name: auxGeocentric\n    test 526 inverse: lat (26.0)\n    test 527 auxAuthalic(55): 55.0\n    test 528 name: auxAuthalic\n    test 529 inverse: lat (55.0)\n    test 530 auxConformal(55): 55.0\n    test 531 name: auxConformal\n    test 532 inverse: lat (55.0)\n    test 533 auxRectifying(55): 55.0\n    test 534 name: auxRectifying\n    test 535 inverse: lat (55.0)\n    test 536 auxIsometric(55): 55.0\n    test 537 name: auxIsometric\n    test 538 inverse: lat (55.0)\n    test 539 auxParametric(55): 55.0\n    test 540 name: auxParametric\n    test 541 inverse: lat (55.0)\n    test 542 auxGeocentric(55): 55.0\n    test 543 name: auxGeocentric\n    test 544 inverse: lat (55.0)\n    test 545 auxGeocentric(55, height=1.0e+06): 55.0\n    test 546 name: auxGeocentric\n    test 547 inverse: lat (55.0)\n    test 548 auxAuthalic(84): 84.0\n    test 549 name: auxAuthalic\n    test 550 inverse: lat (84.0)\n    test 551 auxConformal(84): 84.0\n    test 552 name: auxConformal\n    test 553 inverse: lat (84.0)\n    test 554 auxRectifying(84): 84.0\n    test 555 name: auxRectifying\n    test 556 inverse: lat (84.0)\n    test 557 auxIsometric(84): 84.0\n    test 558 name: auxIsometric\n    test 559 inverse: lat (84.0)\n    test 560 auxParametric(84): 84.0\n    test 561 name: auxParametric\n    test 562 inverse: lat (84.0)\n    test 563 auxGeocentric(84): 84.0\n    test 564 name: auxGeocentric\n    test 565 inverse: lat (84.0)\n    test 566 auxGeocentric(84, height=1.0e+06): 84.0\n    test 567 name: auxGeocentric\n    test 568 inverse: lat (84.0)\n\n    testFlattenings(pygeodesy.ellipsoids, 26.03.25)\n    test 569 all: all\n    test 570 _TOL: 1.4901161193847657e-09\n\n    test 571 Airy1830.f_ - 1 / .f: 0.0\n    test 572 Airy1830.f - 1 / .f_: 0.0\n\n    test 573 AiryModified.f_ - 1 / .f: 0.0\n    test 574 AiryModified.f - 1 / .f_: 0.0\n\n    test 575 ATS1977.f_ - 1 / .f: 0.0\n    test 576 ATS1977.f - 1 / .f_: 0.0\n\n    test 577 Australia1966.f_ - 1 / .f: 0.0\n    test 578 Australia1966.f - 1 / .f_: 0.0\n\n    test 579 Bessel1841.f_ - 1 / .f: -3.6334313335828483e-10\n    test 580 Bessel1841.f - 1 / .f_: -4.060120295523717e-15\n\n    test 581 BesselModified.f_ - 1 / .f: 0.0\n    test 582 BesselModified.f - 1 / .f_: 0.0\n\n    test 583 CGCS2000.f_ - 1 / .f: 0.0\n    test 584 CGCS2000.f - 1 / .f_: 0.0\n\n    test 585 Clarke1866.f_ - 1 / .f: 1.0180656317970715e-10\n    test 586 Clarke1866.f - 1 / .f_: 1.1700709845463564e-15\n\n    test 587 Clarke1880.f_ - 1 / .f: -6.275513442233205e-11\n    test 588 Clarke1880.f - 1 / .f_: -7.28583859910259e-16\n\n    test 589 Clarke1880IGN.f_ - 1 / .f: 3.73063357983483e-10\n    test 590 Clarke1880IGN.f - 1 / .f_: 4.3320382003830815e-15\n\n    test 591 Clarke1880Mod.f_ - 1 / .f: 6.866684998385608e-11\n    test 592 Clarke1880Mod.f - 1 / .f_: 7.971054372113429e-16\n\n    test 593 CPM1799.f_ - 1 / .f: -4.774847184307873e-11\n    test 594 CPM1799.f - 1 / .f_: -4.2674197509029455e-16\n\n    test 595 Delambre1810.f_ - 1 / .f: 6.008349373587407e-11\n    test 596 Delambre1810.f - 1 / .f_: 6.192962809237201e-16\n\n    test 597 Engelis1985.f_ - 1 / .f: 3.171862772433087e-11\n    test 598 Engelis1985.f - 1 / .f_: 3.5691935518222806e-16\n\n    test 599 Everest1969.f_ - 1 / .f: -1.0334133548894897e-10\n    test 600 Everest1969.f - 1 / .f_: -1.1418817280617333e-15\n\n    test 601 Everest1975.f_ - 1 / .f: 2.1088908397359774e-11\n    test 602 Everest1975.f - 1 / .f_: 2.3288662664988635e-16\n\n    test 603 Fisher1968.f_ - 1 / .f: 6.394884621840902e-11\n    test 604 Fisher1968.f - 1 / .f_: 7.186091999233923e-16\n\n    test 605 GEM10C.f_ - 1 / .f: 3.501554601825774e-11\n    test 606 GEM10C.f - 1 / .f_: 3.937822290467352e-16\n\n    test 607 GRS67.f_ - 1 / .f: 0.0\n    test 608 GRS67.f - 1 / .f_: 0.0\n\n    test 609 GRS80.f_ - 1 / .f: 5.7980287238024175e-12\n    test 610 GRS80.f - 1 / .f_: 6.505213034913027e-17\n\n    test 611 Helmert1906.f_ - 1 / .f: 1.944044925039634e-11\n    test 612 Helmert1906.f - 1 / .f_: 2.185751579730777e-16\n\n    test 613 IAU76.f_ - 1 / .f: 0.0\n    test 614 IAU76.f - 1 / .f_: 0.0\n\n    test 615 IERS1989.f_ - 1 / .f: 0.0\n    test 616 IERS1989.f - 1 / .f_: 0.0\n\n    test 617 IERS1992TOPEX.f_ - 1 / .f: -4.746425474877469e-11\n    test 618 IERS1992TOPEX.f - 1 / .f_: -5.334274688628682e-16\n\n    test 619 IERS2003.f_ - 1 / .f: -3.6777692002942786e-11\n    test 620 IERS2003.f - 1 / .f_: -4.137315490204685e-16\n\n    test 621 Intl1924.f_ - 1 / .f: 0.0\n    test 622 Intl1924.f - 1 / .f_: 0.0\n\n    test 623 Intl1967.f_ - 1 / .f: -1.3528733688872308e-11\n    test 624 Intl1967.f - 1 / .f_: -1.5222198501696482e-16\n\n    test 625 Krassovski1940.f_ - 1 / .f: -3.8767211663071066e-11\n    test 626 Krassovski1940.f - 1 / .f_: -4.358492733391728e-16\n\n    test 627 Krassowsky1940.f_ - 1 / .f: -3.8767211663071066e-11\n    test 628 Krassowsky1940.f - 1 / .f_: -4.358492733391728e-16\n\n    test 629 Maupertuis1738.f_ - 1 / .f: 1.5347723092418164e-11\n    test 630 Maupertuis1738.f - 1 / .f_: 4.206704429243757e-16\n\n    test 631 Mercury1960.f_ - 1 / .f: -4.803268893738277e-11\n    test 632 Mercury1960.f - 1 / .f_: -5.39499001028787e-16\n\n    test 633 Mercury1968Mod.f_ - 1 / .f: 6.394884621840902e-11\n    test 634 Mercury1968Mod.f - 1 / .f_: 7.186091999233923e-16\n\n    test 635 NWL1965.f_ - 1 / .f: 5.32054400537163e-11\n    test 636 NWL1965.f - 1 / .f_: 5.980459183430042e-16\n\n    test 637 OSU86F.f_ - 1 / .f: 1.460875864722766e-11\n    test 638 OSU86F.f - 1 / .f_: 1.6436504934880247e-16\n\n    test 639 OSU91A.f_ - 1 / .f: -2.2737367544323206e-12\n    test 640 OSU91A.f - 1 / .f_: -2.5587171270657905e-17\n\n    test 641 Plessis1817.f_ - 1 / .f: 4.2234660213580355e-11\n    test 642 Plessis1817.f - 1 / .f_: 4.432218481120742e-16\n\n    test 643 Prolate.f_ - 1 / .f: 0.0\n    test 644 Prolate.f - 1 / .f_: 0.0\n\n    test 645 PZ90.f_ - 1 / .f: 0.0\n    test 646 PZ90.f - 1 / .f_: 0.0\n\n    test 647 SGS85.f_ - 1 / .f: 1.659827830735594e-11\n    test 648 SGS85.f - 1 / .f_: 1.8691645453650096e-16\n\n    test 649 SoAmerican1969.f_ - 1 / .f: -5.6843418860808015e-11\n    test 650 SoAmerican1969.f - 1 / .f_: -6.388119200284592e-16\n\n    test 651 Struve1860.f_ - 1 / .f: 1.9042545318370685e-11\n    test 652 Struve1860.f - 1 / .f_: 2.194425197110661e-16\n\n    test 653 WGS60.f_ - 1 / .f: -5.076117304270156e-11\n    test 654 WGS60.f - 1 / .f_: -5.702903427273753e-16\n\n    test 655 WGS66.f_ - 1 / .f: 5.32054400537163e-11\n    test 656 WGS66.f - 1 / .f_: 5.980459183430042e-16\n\n    test 657 WGS72.f_ - 1 / .f: 0.0\n    test 658 WGS72.f - 1 / .f_: 0.0\n\n    test 659 WGS84.f_ - 1 / .f: 0.0\n    test 660 WGS84.f - 1 / .f_: 0.0\n\n    test 661 WGS84_NGS.f_ - 1 / .f: 0.0\n    test 662 WGS84_NGS.f - 1 / .f_: 0.0\n\n    testEllipsoid2(pygeodesy.ellipsoids, 26.03.25)\n    test 663 _2_Airy1830: a=6377563.396, f=0.0033409, f_=299.3249646, b=6356256.9092373\n    test 664 _2_AiryModified: a=6377340.189, f=0.0033409, f_=299.3249646, b=6356034.4479385\n    test 665 _2_ATS1977: a=6378135, f=0.0033528, f_=298.257, b=6356750.3049216\n    test 666 _2_Australia1966: a=6378160, f=0.0033529, f_=298.25, b=6356774.7191953\n    test 667 _2_Bessel1841: a=6377397.155, f=0.0033428, f_=299.1528128, b=6356078.962818\n    test 668 _2_BesselModified: a=6377492.018, f=0.0033428, f_=299.1528128, b=6356173.5087127\n    test 669 _2_CGCS2000: a=6378137, f=0.0033528, f_=298.2572221, b=6356752.3141404\n    test 670 _2_Clarke1866: a=6378206.4, f=0.0033901, f_=294.9786982, b=6356583.8\n    test 671 _2_Clarke1880: a=6378249.145, f=0.0034076, f_=293.465, b=6356514.8695498\n    test 672 _2_Clarke1880IGN: a=6378249.2, f=0.0034075, f_=293.4660213, b=6356515\n    test 673 _2_Clarke1880Mod: a=6378249.145, f=0.0034075, f_=293.4663077, b=6356514.9663955\n    test 674 _2_CPM1799: a=6375738.7, f=0.0029905, f_=334.39, b=6356671.9255749\n    test 675 _2_Delambre1810: a=6376428, f=0.0032103, f_=311.5, b=6355957.9261637\n    test 676 _2_Engelis1985: a=6378136.05, f=0.0033528, f_=298.2566, b=6356751.3227215\n    test 677 _2_Everest1969: a=6377295.664, f=0.0033244, f_=300.8017, b=6356094.667915\n    test 678 _2_Everest1975: a=6377299.151, f=0.0033244, f_=300.8017255, b=6356098.1451201\n    test 679 _2_Fisher1968: a=6378150, f=0.0033523, f_=298.3, b=6356768.3372444\n    test 680 _2_GEM10C: a=6378137, f=0.0033528, f_=298.2572236, b=6356752.3142478\n    test 681 _2_GPES: a=6378135, f=0, f_=0, b=6378135\n    test 682 _2_GRS67: a=6378160, f=0.0033529, f_=298.2471674, b=6356774.5160907\n    test 683 _2_GRS80: a=6378137, f=0.0033528, f_=298.2572221, b=6356752.3141403\n    test 684 _2_Helmert1906: a=6378200, f=0.0033523, f_=298.3, b=6356818.1696279\n    test 685 _2_IAU76: a=6378140, f=0.0033528, f_=298.257, b=6356755.2881575\n    test 686 _2_IERS1989: a=6378136, f=0.0033528, f_=298.257, b=6356751.3015688\n    test 687 _2_IERS1992TOPEX: a=6378136.3, f=0.0033528, f_=298.2572236, b=6356751.6165922\n    test 688 _2_IERS2003: a=6378136.6, f=0.0033528, f_=298.25642, b=6356751.8579716\n    test 689 _2_Intl1924: a=6378388, f=0.003367, f_=297, b=6356911.9461279\n    test 690 _2_Intl1967: a=6378157.5, f=0.0033529, f_=298.2496154, b=6356772.2\n    test 691 _2_Krassovski1940: a=6378245, f=0.0033523, f_=298.3, b=6356863.0187731\n    test 692 _2_Krassowsky1940: a=6378245, f=0.0033523, f_=298.3, b=6356863.0187731\n    test 693 _2_Maupertuis1738: a=6397300, f=0.0052356, f_=191, b=6363806.2827225\n    test 694 _2_Mercury1960: a=6378166, f=0.0033523, f_=298.3, b=6356784.2836071\n    test 695 _2_Mercury1968Mod: a=6378150, f=0.0033523, f_=298.3, b=6356768.3372444\n    test 696 _2_NWL1965: a=6378145, f=0.0033529, f_=298.25, b=6356759.7694887\n    test 697 _2_OSU86F: a=6378136.2, f=0.0033528, f_=298.2572236, b=6356751.5169301\n    test 698 _2_OSU91A: a=6378136.3, f=0.0033528, f_=298.2572236, b=6356751.6165948\n    test 699 _2_Plessis1817: a=6376523, f=0.00324, f_=308.64, b=6355862.9332556\n    test 700 _2_Prolate: a=6356752.3142452, f=-0.0033641, f_=-297.2572236, b=6378137\n    test 701 _2_PZ90: a=6378136, f=0.0033528, f_=298.2578393, b=6356751.3617457\n    test 702 _2_SGS85: a=6378136, f=0.0033528, f_=298.257, b=6356751.3015688\n    test 703 _2_SoAmerican1969: a=6378160, f=0.0033529, f_=298.25, b=6356774.7191953\n    test 704 _2_Sphere: a=6371008.771415, f=0, f_=0, b=6371008.771415\n    test 705 _2_SphereAuthalic: a=6371000, f=0, f_=0, b=6371000\n    test 706 _2_SpherePopular: a=6378137, f=0, f_=0, b=6378137\n    test 707 _2_Struve1860: a=6378298.3, f=0.0033929, f_=294.73, b=6356657.1426696\n    test 708 _2_WGS60: a=6378165, f=0.0033523, f_=298.3, b=6356783.2869594\n    test 709 _2_WGS66: a=6378145, f=0.0033529, f_=298.25, b=6356759.7694887\n    test 710 _2_WGS72: a=6378135, f=0.0033528, f_=298.26, b=6356750.5200161\n    test 711 _2_WGS84: a=6378137, f=0.0033528, f_=298.2572236, b=6356752.3142452\n    test 712 _2_WGS84_NGS: a=6378137, f=0.0033528, f_=298.2572221, b=6356752.3141403\n\n    testa_f2Tuple(pygeodesy.ellipsoids, 26.03.25)\n    test 713 a_b_Airy1830: a=6377563.396, f=0.0033409, f_=299.3249646, b=6356256.9092373\n    test 714 a_b_AiryModified: a=6377340.189, f=0.0033409, f_=299.3249646, b=6356034.4479385\n    test 715 a_b_ATS1977: a=6378135, f=0.0033528, f_=298.257, b=6356750.3049216\n    test 716 a_b_Australia1966: a=6378160, f=0.0033529, f_=298.25, b=6356774.7191953\n    test 717 a_b_Bessel1841: a=6377397.155, f=0.0033428, f_=299.1528128, b=6356078.962818\n    test 718 a_b_BesselModified: a=6377492.018, f=0.0033428, f_=299.1528128, b=6356173.5087127\n    test 719 a_b_CGCS2000: a=6378137, f=0.0033528, f_=298.2572221, b=6356752.3141404\n    test 720 a_b_Clarke1866: a=6378206.4, f=0.0033901, f_=294.9786982, b=6356583.8\n    test 721 a_b_Clarke1880: a=6378249.145, f=0.0034076, f_=293.465, b=6356514.8695498\n    test 722 a_b_Clarke1880IGN: a=6378249.2, f=0.0034075, f_=293.4660213, b=6356515\n    test 723 a_b_Clarke1880Mod: a=6378249.145, f=0.0034075, f_=293.4663077, b=6356514.9663955\n    test 724 a_b_CPM1799: a=6375738.7, f=0.0029905, f_=334.39, b=6356671.9255749\n    test 725 a_b_Delambre1810: a=6376428, f=0.0032103, f_=311.5, b=6355957.9261637\n    test 726 a_b_Engelis1985: a=6378136.05, f=0.0033528, f_=298.2566, b=6356751.3227215\n    test 727 a_b_Everest1969: a=6377295.664, f=0.0033244, f_=300.8017, b=6356094.667915\n    test 728 a_b_Everest1975: a=6377299.151, f=0.0033244, f_=300.8017255, b=6356098.1451201\n    test 729 a_b_Fisher1968: a=6378150, f=0.0033523, f_=298.3, b=6356768.3372444\n    test 730 a_b_GEM10C: a=6378137, f=0.0033528, f_=298.2572236, b=6356752.3142478\n    test 731 a_b_GPES: a=6378135, f=0, f_=0, b=6378135\n    test 732 a_b_GRS67: a=6378160, f=0.0033529, f_=298.2471674, b=6356774.5160907\n    test 733 a_b_GRS80: a=6378137, f=0.0033528, f_=298.2572221, b=6356752.3141403\n    test 734 a_b_Helmert1906: a=6378200, f=0.0033523, f_=298.3, b=6356818.1696279\n    test 735 a_b_IAU76: a=6378140, f=0.0033528, f_=298.257, b=6356755.2881575\n    test 736 a_b_IERS1989: a=6378136, f=0.0033528, f_=298.257, b=6356751.3015688\n    test 737 a_b_IERS1992TOPEX: a=6378136.3, f=0.0033528, f_=298.2572236, b=6356751.6165922\n    test 738 a_b_IERS2003: a=6378136.6, f=0.0033528, f_=298.25642, b=6356751.8579716\n    test 739 a_b_Intl1924: a=6378388, f=0.003367, f_=297, b=6356911.9461279\n    test 740 a_b_Intl1967: a=6378157.5, f=0.0033529, f_=298.2496154, b=6356772.2\n    test 741 a_b_Krassovski1940: a=6378245, f=0.0033523, f_=298.3, b=6356863.0187731\n    test 742 a_b_Krassowsky1940: a=6378245, f=0.0033523, f_=298.3, b=6356863.0187731\n    test 743 a_b_Maupertuis1738: a=6397300, f=0.0052356, f_=191, b=6363806.2827225\n    test 744 a_b_Mercury1960: a=6378166, f=0.0033523, f_=298.3, b=6356784.2836071\n    test 745 a_b_Mercury1968Mod: a=6378150, f=0.0033523, f_=298.3, b=6356768.3372444\n    test 746 a_b_NWL1965: a=6378145, f=0.0033529, f_=298.25, b=6356759.7694887\n    test 747 a_b_OSU86F: a=6378136.2, f=0.0033528, f_=298.2572236, b=6356751.5169301\n    test 748 a_b_OSU91A: a=6378136.3, f=0.0033528, f_=298.2572236, b=6356751.6165948\n    test 749 a_b_Plessis1817: a=6376523, f=0.00324, f_=308.64, b=6355862.9332556\n    test 750 a_b_Prolate: a=6356752.3142452, f=-0.0033641, f_=-297.2572236, b=6378137\n    test 751 a_b_PZ90: a=6378136, f=0.0033528, f_=298.2578393, b=6356751.3617457\n    test 752 a_b_SGS85: a=6378136, f=0.0033528, f_=298.257, b=6356751.3015688\n    test 753 a_b_SoAmerican1969: a=6378160, f=0.0033529, f_=298.25, b=6356774.7191953\n    test 754 a_b_Sphere: a=6371008.771415, f=0, f_=0, b=6371008.771415\n    test 755 a_b_SphereAuthalic: a=6371000, f=0, f_=0, b=6371000\n    test 756 a_b_SpherePopular: a=6378137, f=0, f_=0, b=6378137\n    test 757 a_b_Struve1860: a=6378298.3, f=0.0033929, f_=294.73, b=6356657.1426696\n    test 758 a_b_WGS60: a=6378165, f=0.0033523, f_=298.3, b=6356783.2869594\n    test 759 a_b_WGS66: a=6378145, f=0.0033529, f_=298.25, b=6356759.7694887\n    test 760 a_b_WGS72: a=6378135, f=0.0033528, f_=298.26, b=6356750.5200161\n    test 761 a_b_WGS84: a=6378137, f=0.0033528, f_=298.2572236, b=6356752.3142452\n    test 762 a_b_WGS84_NGS: a=6378137, f=0.0033528, f_=298.2572221, b=6356752.3141403\n    test 763 _a_f_ellipsoid: a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518\n    test 764 _toEllipsoid2: a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518\n\n    testFunctions(pygeodesy.ellipsoids, 26.03.25)\n\n    test 765 a_b2f_(Airy1830): 299.32496460\n    test 766 a_b2f2(Airy1830): 0.00335205\n    test 767 a_b2n(Airy1830): 0.00167322\n    test 768 b_f2a(Airy1830): 6377563.396\n    test 769 b_f_2a(Airy1830): 6377563.396\n    test 770 f_2f(Airy1830): 0.00334085\n    test 771 e2f(Airy1830): 0.00334085\n    test 772 n2e2(Airy1830): 0.00667054\n    test 773 n2f(Airy1830): 0.00334085\n\n    test 774 a_b2f_(AiryModified): 299.32496460\n    test 775 a_b2f2(AiryModified): 0.00335205\n    test 776 a_b2n(AiryModified): 0.00167322\n    test 777 b_f2a(AiryModified): 6377340.189\n    test 778 b_f_2a(AiryModified): 6377340.189\n    test 779 f_2f(AiryModified): 0.00334085\n    test 780 e2f(AiryModified): 0.00334085\n    test 781 n2e2(AiryModified): 0.00667054\n    test 782 n2f(AiryModified): 0.00334085\n\n    test 783 a_b2f_(ATS1977): 298.25700000\n    test 784 a_b2f2(ATS1977): 0.00336409\n    test 785 a_b2n(ATS1977): 0.00167922\n    test 786 b_f2a(ATS1977): 6378135.000\n    test 787 b_f_2a(ATS1977): 6378135.000\n    test 788 f_2f(ATS1977): 0.00335281\n    test 789 e2f(ATS1977): 0.00335281\n    test 790 n2e2(ATS1977): 0.00669438\n    test 791 n2f(ATS1977): 0.00335281\n\n    test 792 a_b2f_(Australia1966): 298.25000000\n    test 793 a_b2f2(Australia1966): 0.00336417\n    test 794 a_b2n(Australia1966): 0.00167926\n    test 795 b_f2a(Australia1966): 6378160.000\n    test 796 b_f_2a(Australia1966): 6378160.000\n    test 797 f_2f(Australia1966): 0.00335289\n    test 798 e2f(Australia1966): 0.00335289\n    test 799 n2e2(Australia1966): 0.00669454\n    test 800 n2f(Australia1966): 0.00335289\n\n    test 801 a_b2f_(Bessel1841): 299.15281280\n    test 802 a_b2f2(Bessel1841): 0.00335398\n    test 803 a_b2n(Bessel1841): 0.00167418\n    test 804 b_f2a(Bessel1841): 6377397.155\n    test 805 b_f_2a(Bessel1841): 6377397.155\n    test 806 f_2f(Bessel1841): 0.00334277\n    test 807 e2f(Bessel1841): 0.00334277\n    test 808 n2e2(Bessel1841): 0.00667437\n    test 809 n2f(Bessel1841): 0.00334277\n\n    test 810 a_b2f_(BesselModified): 299.15281280\n    test 811 a_b2f2(BesselModified): 0.00335398\n    test 812 a_b2n(BesselModified): 0.00167418\n    test 813 b_f2a(BesselModified): 6377492.018\n    test 814 b_f_2a(BesselModified): 6377492.018\n    test 815 f_2f(BesselModified): 0.00334277\n    test 816 e2f(BesselModified): 0.00334277\n    test 817 n2e2(BesselModified): 0.00667437\n    test 818 n2f(BesselModified): 0.00334277\n\n    test 819 a_b2f_(CGCS2000): 298.25722210\n    test 820 a_b2f2(CGCS2000): 0.00336409\n    test 821 a_b2n(CGCS2000): 0.00167922\n    test 822 b_f2a(CGCS2000): 6378137.000\n    test 823 b_f_2a(CGCS2000): 6378137.000\n    test 824 f_2f(CGCS2000): 0.00335281\n    test 825 e2f(CGCS2000): 0.00335281\n    test 826 n2e2(CGCS2000): 0.00669438\n    test 827 n2f(CGCS2000): 0.00335281\n\n    test 828 a_b2f_(Clarke1866): 294.97869821\n    test 829 a_b2f2(Clarke1866): 0.00340161\n    test 830 a_b2n(Clarke1866): 0.00169792\n    test 831 b_f2a(Clarke1866): 6378206.400\n    test 832 b_f_2a(Clarke1866): 6378206.400\n    test 833 f_2f(Clarke1866): 0.00339008\n    test 834 e2f(Clarke1866): 0.00339008\n    test 835 n2e2(Clarke1866): 0.00676866\n    test 836 n2f(Clarke1866): 0.00339008\n\n    test 837 a_b2f_(Clarke1880): 293.46500000\n    test 838 a_b2f2(Clarke1880): 0.00341921\n    test 839 a_b2n(Clarke1880): 0.00170669\n    test 840 b_f2a(Clarke1880): 6378249.145\n    test 841 b_f_2a(Clarke1880): 6378249.145\n    test 842 f_2f(Clarke1880): 0.00340756\n    test 843 e2f(Clarke1880): 0.00340756\n    test 844 n2e2(Clarke1880): 0.00680351\n    test 845 n2f(Clarke1880): 0.00340756\n\n    test 846 a_b2f_(Clarke1880IGN): 293.46602129\n    test 847 a_b2f2(Clarke1880IGN): 0.00341920\n    test 848 a_b2n(Clarke1880IGN): 0.00170668\n    test 849 b_f2a(Clarke1880IGN): 6378249.200\n    test 850 b_f_2a(Clarke1880IGN): 6378249.200\n    test 851 f_2f(Clarke1880IGN): 0.00340755\n    test 852 e2f(Clarke1880IGN): 0.00340755\n    test 853 n2e2(Clarke1880IGN): 0.00680349\n    test 854 n2f(Clarke1880IGN): 0.00340755\n\n    test 855 a_b2f_(Clarke1880Mod): 293.46630766\n    test 856 a_b2f2(Clarke1880Mod): 0.00341920\n    test 857 a_b2n(Clarke1880Mod): 0.00170668\n    test 858 b_f2a(Clarke1880Mod): 6378249.145\n    test 859 b_f_2a(Clarke1880Mod): 6378249.145\n    test 860 f_2f(Clarke1880Mod): 0.00340755\n    test 861 e2f(Clarke1880Mod): 0.00340755\n    test 862 n2e2(Clarke1880Mod): 0.00680348\n    test 863 n2f(Clarke1880Mod): 0.00340755\n\n    test 864 a_b2f_(CPM1799): 334.39000000\n    test 865 a_b2f2(CPM1799): 0.00299949\n    test 866 a_b2n(CPM1799): 0.00149750\n    test 867 b_f2a(CPM1799): 6375738.700\n    test 868 b_f_2a(CPM1799): 6375738.700\n    test 869 f_2f(CPM1799): 0.00299052\n    test 870 e2f(CPM1799): 0.00299052\n    test 871 n2e2(CPM1799): 0.00597210\n    test 872 n2f(CPM1799): 0.00299052\n\n    test 873 a_b2f_(Delambre1810): 311.50000000\n    test 874 a_b2f2(Delambre1810): 0.00322061\n    test 875 a_b2n(Delambre1810): 0.00160772\n    test 876 b_f2a(Delambre1810): 6376428.000\n    test 877 b_f_2a(Delambre1810): 6376428.000\n    test 878 f_2f(Delambre1810): 0.00321027\n    test 879 e2f(Delambre1810): 0.00321027\n    test 880 n2e2(Delambre1810): 0.00641024\n    test 881 n2f(Delambre1810): 0.00321027\n\n    test 882 a_b2f_(Engelis1985): 298.25660000\n    test 883 a_b2f2(Engelis1985): 0.00336410\n    test 884 a_b2n(Engelis1985): 0.00167922\n    test 885 b_f2a(Engelis1985): 6378136.050\n    test 886 b_f_2a(Engelis1985): 6378136.050\n    test 887 f_2f(Engelis1985): 0.00335282\n    test 888 e2f(Engelis1985): 0.00335282\n    test 889 n2e2(Engelis1985): 0.00669439\n    test 890 n2f(Engelis1985): 0.00335282\n\n    test 891 a_b2f_(Everest1969): 300.80170000\n    test 892 a_b2f2(Everest1969): 0.00333554\n    test 893 a_b2n(Everest1969): 0.00166499\n    test 894 b_f2a(Everest1969): 6377295.664\n    test 895 b_f_2a(Everest1969): 6377295.664\n    test 896 f_2f(Everest1969): 0.00332445\n    test 897 e2f(Everest1969): 0.00332445\n    test 898 n2e2(Everest1969): 0.00663785\n    test 899 n2f(Everest1969): 0.00332445\n\n    test 900 a_b2f_(Everest1975): 300.80172550\n    test 901 a_b2f2(Everest1975): 0.00333554\n    test 902 a_b2n(Everest1975): 0.00166499\n    test 903 b_f2a(Everest1975): 6377299.151\n    test 904 b_f_2a(Everest1975): 6377299.151\n    test 905 f_2f(Everest1975): 0.00332445\n    test 906 e2f(Everest1975): 0.00332445\n    test 907 n2e2(Everest1975): 0.00663785\n    test 908 n2f(Everest1975): 0.00332445\n\n    test 909 a_b2f_(Fisher1968): 298.30000000\n    test 910 a_b2f2(Fisher1968): 0.00336361\n    test 911 a_b2n(Fisher1968): 0.00167898\n    test 912 b_f2a(Fisher1968): 6378150.000\n    test 913 b_f_2a(Fisher1968): 6378150.000\n    test 914 f_2f(Fisher1968): 0.00335233\n    test 915 e2f(Fisher1968): 0.00335233\n    test 916 n2e2(Fisher1968): 0.00669342\n    test 917 n2f(Fisher1968): 0.00335233\n\n    test 918 a_b2f_(GEM10C): 298.25722360\n    test 919 a_b2f2(GEM10C): 0.00336409\n    test 920 a_b2n(GEM10C): 0.00167922\n    test 921 b_f2a(GEM10C): 6378137.000\n    test 922 b_f_2a(GEM10C): 6378137.000\n    test 923 f_2f(GEM10C): 0.00335281\n    test 924 e2f(GEM10C): 0.00335281\n    test 925 n2e2(GEM10C): 0.00669438\n    test 926 n2f(GEM10C): 0.00335281\n\n    test 927 a_b2f_(GPES): 0.00000000\n    test 928 a_b2f2(GPES): 0.00000000\n    test 929 a_b2n(GPES): 0.00000000\n    test 930 b_f2a(GPES): 6378135.000\n    test 931 b_f_2a(GPES): 6378135.000\n    test 932 f_2f(GPES): 0.00000000\n    test 933 e2f(GPES): 0.00000000\n    test 934 n2e2(GPES): 0.00000000\n    test 935 n2f(GPES): 0.00000000\n\n    test 936 a_b2f_(GRS67): 298.24716743\n    test 937 a_b2f2(GRS67): 0.00336420\n    test 938 a_b2n(GRS67): 0.00167928\n    test 939 b_f2a(GRS67): 6378160.000\n    test 940 b_f_2a(GRS67): 6378160.000\n    test 941 f_2f(GRS67): 0.00335292\n    test 942 e2f(GRS67): 0.00335292\n    test 943 n2e2(GRS67): 0.00669461\n    test 944 n2f(GRS67): 0.00335292\n\n    test 945 a_b2f_(GRS80): 298.25722210\n    test 946 a_b2f2(GRS80): 0.00336409\n    test 947 a_b2n(GRS80): 0.00167922\n    test 948 b_f2a(GRS80): 6378137.000\n    test 949 b_f_2a(GRS80): 6378137.000\n    test 950 f_2f(GRS80): 0.00335281\n    test 951 e2f(GRS80): 0.00335281\n    test 952 n2e2(GRS80): 0.00669438\n    test 953 n2f(GRS80): 0.00335281\n\n    test 954 a_b2f_(Helmert1906): 298.30000000\n    test 955 a_b2f2(Helmert1906): 0.00336361\n    test 956 a_b2n(Helmert1906): 0.00167898\n    test 957 b_f2a(Helmert1906): 6378200.000\n    test 958 b_f_2a(Helmert1906): 6378200.000\n    test 959 f_2f(Helmert1906): 0.00335233\n    test 960 e2f(Helmert1906): 0.00335233\n    test 961 n2e2(Helmert1906): 0.00669342\n    test 962 n2f(Helmert1906): 0.00335233\n\n    test 963 a_b2f_(IAU76): 298.25700000\n    test 964 a_b2f2(IAU76): 0.00336409\n    test 965 a_b2n(IAU76): 0.00167922\n    test 966 b_f2a(IAU76): 6378140.000\n    test 967 b_f_2a(IAU76): 6378140.000\n    test 968 f_2f(IAU76): 0.00335281\n    test 969 e2f(IAU76): 0.00335281\n    test 970 n2e2(IAU76): 0.00669438\n    test 971 n2f(IAU76): 0.00335281\n\n    test 972 a_b2f_(IERS1989): 298.25700000\n    test 973 a_b2f2(IERS1989): 0.00336409\n    test 974 a_b2n(IERS1989): 0.00167922\n    test 975 b_f2a(IERS1989): 6378136.000\n    test 976 b_f_2a(IERS1989): 6378136.000\n    test 977 f_2f(IERS1989): 0.00335281\n    test 978 e2f(IERS1989): 0.00335281\n    test 979 n2e2(IERS1989): 0.00669438\n    test 980 n2f(IERS1989): 0.00335281\n\n    test 981 a_b2f_(IERS1992TOPEX): 298.25722356\n    test 982 a_b2f2(IERS1992TOPEX): 0.00336409\n    test 983 a_b2n(IERS1992TOPEX): 0.00167922\n    test 984 b_f2a(IERS1992TOPEX): 6378136.300\n    test 985 b_f_2a(IERS1992TOPEX): 6378136.300\n    test 986 f_2f(IERS1992TOPEX): 0.00335281\n    test 987 e2f(IERS1992TOPEX): 0.00335281\n    test 988 n2e2(IERS1992TOPEX): 0.00669438\n    test 989 n2f(IERS1992TOPEX): 0.00335281\n\n    test 990 a_b2f_(IERS2003): 298.25642000\n    test 991 a_b2f2(IERS2003): 0.00336410\n    test 992 a_b2n(IERS2003): 0.00167922\n    test 993 b_f2a(IERS2003): 6378136.600\n    test 994 b_f_2a(IERS2003): 6378136.600\n    test 995 f_2f(IERS2003): 0.00335282\n    test 996 e2f(IERS2003): 0.00335282\n    test 997 n2e2(IERS2003): 0.00669440\n    test 998 n2f(IERS2003): 0.00335282\n\n    test 999 a_b2f_(Intl1924): 297.00000000\n    test 1000 a_b2f2(Intl1924): 0.00337838\n    test 1001 a_b2n(Intl1924): 0.00168634\n    test 1002 b_f2a(Intl1924): 6378388.000\n    test 1003 b_f_2a(Intl1924): 6378388.000\n    test 1004 f_2f(Intl1924): 0.00336700\n    test 1005 e2f(Intl1924): 0.00336700\n    test 1006 n2e2(Intl1924): 0.00672267\n    test 1007 n2f(Intl1924): 0.00336700\n\n    test 1008 a_b2f_(Intl1967): 298.24961539\n    test 1009 a_b2f2(Intl1967): 0.00336418\n    test 1010 a_b2n(Intl1967): 0.00167926\n    test 1011 b_f2a(Intl1967): 6378157.500\n    test 1012 b_f_2a(Intl1967): 6378157.500\n    test 1013 f_2f(Intl1967): 0.00335290\n    test 1014 e2f(Intl1967): 0.00335290\n    test 1015 n2e2(Intl1967): 0.00669455\n    test 1016 n2f(Intl1967): 0.00335290\n\n    test 1017 a_b2f_(Krassovski1940): 298.30000000\n    test 1018 a_b2f2(Krassovski1940): 0.00336361\n    test 1019 a_b2n(Krassovski1940): 0.00167898\n    test 1020 b_f2a(Krassovski1940): 6378245.000\n    test 1021 b_f_2a(Krassovski1940): 6378245.000\n    test 1022 f_2f(Krassovski1940): 0.00335233\n    test 1023 e2f(Krassovski1940): 0.00335233\n    test 1024 n2e2(Krassovski1940): 0.00669342\n    test 1025 n2f(Krassovski1940): 0.00335233\n\n    test 1026 a_b2f_(Krassowsky1940): 298.30000000\n    test 1027 a_b2f2(Krassowsky1940): 0.00336361\n    test 1028 a_b2n(Krassowsky1940): 0.00167898\n    test 1029 b_f2a(Krassowsky1940): 6378245.000\n    test 1030 b_f_2a(Krassowsky1940): 6378245.000\n    test 1031 f_2f(Krassowsky1940): 0.00335233\n    test 1032 e2f(Krassowsky1940): 0.00335233\n    test 1033 n2e2(Krassowsky1940): 0.00669342\n    test 1034 n2f(Krassowsky1940): 0.00335233\n\n    test 1035 a_b2f_(Maupertuis1738): 191.00000000\n    test 1036 a_b2f2(Maupertuis1738): 0.00526316\n    test 1037 a_b2n(Maupertuis1738): 0.00262467\n    test 1038 b_f2a(Maupertuis1738): 6397300.000\n    test 1039 b_f_2a(Maupertuis1738): 6397300.000\n    test 1040 f_2f(Maupertuis1738): 0.00523560\n    test 1041 e2f(Maupertuis1738): 0.00523560\n    test 1042 n2e2(Maupertuis1738): 0.01044379\n    test 1043 n2f(Maupertuis1738): 0.00523560\n\n    test 1044 a_b2f_(Mercury1960): 298.30000000\n    test 1045 a_b2f2(Mercury1960): 0.00336361\n    test 1046 a_b2n(Mercury1960): 0.00167898\n    test 1047 b_f2a(Mercury1960): 6378166.000\n    test 1048 b_f_2a(Mercury1960): 6378166.000\n    test 1049 f_2f(Mercury1960): 0.00335233\n    test 1050 e2f(Mercury1960): 0.00335233\n    test 1051 n2e2(Mercury1960): 0.00669342\n    test 1052 n2f(Mercury1960): 0.00335233\n\n    test 1053 a_b2f_(Mercury1968Mod): 298.30000000\n    test 1054 a_b2f2(Mercury1968Mod): 0.00336361\n    test 1055 a_b2n(Mercury1968Mod): 0.00167898\n    test 1056 b_f2a(Mercury1968Mod): 6378150.000\n    test 1057 b_f_2a(Mercury1968Mod): 6378150.000\n    test 1058 f_2f(Mercury1968Mod): 0.00335233\n    test 1059 e2f(Mercury1968Mod): 0.00335233\n    test 1060 n2e2(Mercury1968Mod): 0.00669342\n    test 1061 n2f(Mercury1968Mod): 0.00335233\n\n    test 1062 a_b2f_(NWL1965): 298.25000000\n    test 1063 a_b2f2(NWL1965): 0.00336417\n    test 1064 a_b2n(NWL1965): 0.00167926\n    test 1065 b_f2a(NWL1965): 6378145.000\n    test 1066 b_f_2a(NWL1965): 6378145.000\n    test 1067 f_2f(NWL1965): 0.00335289\n    test 1068 e2f(NWL1965): 0.00335289\n    test 1069 n2e2(NWL1965): 0.00669454\n    test 1070 n2f(NWL1965): 0.00335289\n\n    test 1071 a_b2f_(OSU86F): 298.25722360\n    test 1072 a_b2f2(OSU86F): 0.00336409\n    test 1073 a_b2n(OSU86F): 0.00167922\n    test 1074 b_f2a(OSU86F): 6378136.200\n    test 1075 b_f_2a(OSU86F): 6378136.200\n    test 1076 f_2f(OSU86F): 0.00335281\n    test 1077 e2f(OSU86F): 0.00335281\n    test 1078 n2e2(OSU86F): 0.00669438\n    test 1079 n2f(OSU86F): 0.00335281\n\n    test 1080 a_b2f_(OSU91A): 298.25722360\n    test 1081 a_b2f2(OSU91A): 0.00336409\n    test 1082 a_b2n(OSU91A): 0.00167922\n    test 1083 b_f2a(OSU91A): 6378136.300\n    test 1084 b_f_2a(OSU91A): 6378136.300\n    test 1085 f_2f(OSU91A): 0.00335281\n    test 1086 e2f(OSU91A): 0.00335281\n    test 1087 n2e2(OSU91A): 0.00669438\n    test 1088 n2f(OSU91A): 0.00335281\n\n    test 1089 a_b2f_(Plessis1817): 308.64000000\n    test 1090 a_b2f2(Plessis1817): 0.00325055\n    test 1091 a_b2n(Plessis1817): 0.00162264\n    test 1092 b_f2a(Plessis1817): 6376523.000\n    test 1093 b_f_2a(Plessis1817): 6376523.000\n    test 1094 f_2f(Plessis1817): 0.00324002\n    test 1095 e2f(Plessis1817): 0.00324002\n    test 1096 n2e2(Plessis1817): 0.00646954\n    test 1097 n2f(Plessis1817): 0.00324002\n\n    test 1098 a_b2f_(Prolate): -297.25722356\n    test 1099 a_b2f2(Prolate): -0.00335281\n    test 1100 a_b2n(Prolate): -0.00167922\n    test 1101 b_f2a(Prolate): 6356752.314\n    test 1102 b_f_2a(Prolate): 6356752.314\n    test 1103 f_2f(Prolate): -0.00336409\n    test 1104 e2f(Prolate): 0.00337545  FAILED, KNOWN, expected -0.00336409\n    test 1105 n2e2(Prolate): -0.00673950\n    test 1106 n2f(Prolate): -0.00336409\n\n    test 1107 a_b2f_(PZ90): 298.25783930\n    test 1108 a_b2f2(PZ90): 0.00336408\n    test 1109 a_b2n(PZ90): 0.00167922\n    test 1110 b_f2a(PZ90): 6378136.000\n    test 1111 b_f_2a(PZ90): 6378136.000\n    test 1112 f_2f(PZ90): 0.00335280\n    test 1113 e2f(PZ90): 0.00335280\n    test 1114 n2e2(PZ90): 0.00669437\n    test 1115 n2f(PZ90): 0.00335280\n\n    test 1116 a_b2f_(SGS85): 298.25700000\n    test 1117 a_b2f2(SGS85): 0.00336409\n    test 1118 a_b2n(SGS85): 0.00167922\n    test 1119 b_f2a(SGS85): 6378136.000\n    test 1120 b_f_2a(SGS85): 6378136.000\n    test 1121 f_2f(SGS85): 0.00335281\n    test 1122 e2f(SGS85): 0.00335281\n    test 1123 n2e2(SGS85): 0.00669438\n    test 1124 n2f(SGS85): 0.00335281\n\n    test 1125 a_b2f_(SoAmerican1969): 298.25000000\n    test 1126 a_b2f2(SoAmerican1969): 0.00336417\n    test 1127 a_b2n(SoAmerican1969): 0.00167926\n    test 1128 b_f2a(SoAmerican1969): 6378160.000\n    test 1129 b_f_2a(SoAmerican1969): 6378160.000\n    test 1130 f_2f(SoAmerican1969): 0.00335289\n    test 1131 e2f(SoAmerican1969): 0.00335289\n    test 1132 n2e2(SoAmerican1969): 0.00669454\n    test 1133 n2f(SoAmerican1969): 0.00335289\n\n    test 1134 a_b2f_(Sphere): 0.00000000\n    test 1135 a_b2f2(Sphere): 0.00000000\n    test 1136 a_b2n(Sphere): 0.00000000\n    test 1137 b_f2a(Sphere): 6371008.771\n    test 1138 b_f_2a(Sphere): 6371008.771\n    test 1139 f_2f(Sphere): 0.00000000\n    test 1140 e2f(Sphere): 0.00000000\n    test 1141 n2e2(Sphere): 0.00000000\n    test 1142 n2f(Sphere): 0.00000000\n\n    test 1143 a_b2f_(SphereAuthalic): 0.00000000\n    test 1144 a_b2f2(SphereAuthalic): 0.00000000\n    test 1145 a_b2n(SphereAuthalic): 0.00000000\n    test 1146 b_f2a(SphereAuthalic): 6371000.000\n    test 1147 b_f_2a(SphereAuthalic): 6371000.000\n    test 1148 f_2f(SphereAuthalic): 0.00000000\n    test 1149 e2f(SphereAuthalic): 0.00000000\n    test 1150 n2e2(SphereAuthalic): 0.00000000\n    test 1151 n2f(SphereAuthalic): 0.00000000\n\n    test 1152 a_b2f_(SpherePopular): 0.00000000\n    test 1153 a_b2f2(SpherePopular): 0.00000000\n    test 1154 a_b2n(SpherePopular): 0.00000000\n    test 1155 b_f2a(SpherePopular): 6378137.000\n    test 1156 b_f_2a(SpherePopular): 6378137.000\n    test 1157 f_2f(SpherePopular): 0.00000000\n    test 1158 e2f(SpherePopular): 0.00000000\n    test 1159 n2e2(SpherePopular): 0.00000000\n    test 1160 n2f(SpherePopular): 0.00000000\n\n    test 1161 a_b2f_(Struve1860): 294.73000000\n    test 1162 a_b2f2(Struve1860): 0.00340449\n    test 1163 a_b2n(Struve1860): 0.00169935\n    test 1164 b_f2a(Struve1860): 6378298.300\n    test 1165 b_f_2a(Struve1860): 6378298.300\n    test 1166 f_2f(Struve1860): 0.00339294\n    test 1167 e2f(Struve1860): 0.00339294\n    test 1168 n2e2(Struve1860): 0.00677436\n    test 1169 n2f(Struve1860): 0.00339294\n\n    test 1170 a_b2f_(WGS60): 298.30000000\n    test 1171 a_b2f2(WGS60): 0.00336361\n    test 1172 a_b2n(WGS60): 0.00167898\n    test 1173 b_f2a(WGS60): 6378165.000\n    test 1174 b_f_2a(WGS60): 6378165.000\n    test 1175 f_2f(WGS60): 0.00335233\n    test 1176 e2f(WGS60): 0.00335233\n    test 1177 n2e2(WGS60): 0.00669342\n    test 1178 n2f(WGS60): 0.00335233\n\n    test 1179 a_b2f_(WGS66): 298.25000000\n    test 1180 a_b2f2(WGS66): 0.00336417\n    test 1181 a_b2n(WGS66): 0.00167926\n    test 1182 b_f2a(WGS66): 6378145.000\n    test 1183 b_f_2a(WGS66): 6378145.000\n    test 1184 f_2f(WGS66): 0.00335289\n    test 1185 e2f(WGS66): 0.00335289\n    test 1186 n2e2(WGS66): 0.00669454\n    test 1187 n2f(WGS66): 0.00335289\n\n    test 1188 a_b2f_(WGS72): 298.26000000\n    test 1189 a_b2f2(WGS72): 0.00336406\n    test 1190 a_b2n(WGS72): 0.00167920\n    test 1191 b_f2a(WGS72): 6378135.000\n    test 1192 b_f_2a(WGS72): 6378135.000\n    test 1193 f_2f(WGS72): 0.00335278\n    test 1194 e2f(WGS72): 0.00335278\n    test 1195 n2e2(WGS72): 0.00669432\n    test 1196 n2f(WGS72): 0.00335278\n\n    test 1197 a_b2f_(WGS84): 298.25722356\n    test 1198 a_b2f2(WGS84): 0.00336409\n    test 1199 a_b2n(WGS84): 0.00167922\n    test 1200 b_f2a(WGS84): 6378137.000\n    test 1201 b_f_2a(WGS84): 6378137.000\n    test 1202 f_2f(WGS84): 0.00335281\n    test 1203 e2f(WGS84): 0.00335281\n    test 1204 n2e2(WGS84): 0.00669438\n    test 1205 n2f(WGS84): 0.00335281\n\n    test 1206 a_b2f_(WGS84_NGS): 298.25722210\n    test 1207 a_b2f2(WGS84_NGS): 0.00336409\n    test 1208 a_b2n(WGS84_NGS): 0.00167922\n    test 1209 b_f2a(WGS84_NGS): 6378137.000\n    test 1210 b_f_2a(WGS84_NGS): 6378137.000\n    test 1211 f_2f(WGS84_NGS): 0.00335281\n    test 1212 e2f(WGS84_NGS): 0.00335281\n    test 1213 n2e2(WGS84_NGS): 0.00669438\n    test 1214 n2f(WGS84_NGS): 0.00335281\n\n    test 1215 total: 50\n\n    testWGS84(pygeodesy.ellipsoids, 26.03.25)\n    test 1216 roc1_ 0: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1217 roc1_ 0: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1218 roc1_ 5: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1219 roc1_ 5: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1220 roc1_ 10: 9.313225746154785e-10  FAILED, KNOWN, expected 1.863e-09\n    test 1221 roc1_ 10: 9.313225746154785e-10  FAILED, KNOWN, expected 1.863e-09\n    test 1222 roc1_ 15: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1223 roc1_ 15: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1224 roc1_ 20: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1225 roc1_ 20: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1226 roc1_ 25: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1227 roc1_ 25: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1228 roc1_ 30: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1229 roc1_ 30: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1230 roc1_ 35: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1231 roc1_ 35: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1232 roc1_ 40: 9.313225746154785e-10  FAILED, KNOWN, expected 1.863e-09\n    test 1233 roc1_ 40: 9.313225746154785e-10  FAILED, KNOWN, expected 1.863e-09\n    test 1234 roc1_ 45: 9.313225746154785e-10  FAILED, KNOWN, expected 1.863e-09\n    test 1235 roc1_ 45: 9.313225746154785e-10  FAILED, KNOWN, expected 1.863e-09\n    test 1236 roc1_ 50: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1237 roc1_ 50: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1238 roc1_ 55: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1239 roc1_ 55: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1240 roc1_ 60: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1241 roc1_ 60: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1242 roc1_ 65: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1243 roc1_ 65: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1244 roc1_ 70: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1245 roc1_ 70: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1246 roc1_ 75: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1247 roc1_ 75: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1248 roc1_ 80: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1249 roc1_ 80: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1250 roc1_ 85: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1251 roc1_ 85: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1252 roc1_ 90: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1253 roc1_ 90: 0.0  FAILED, KNOWN, expected 1.863e-09\n\n    testProlate(pygeodesy.ellipsoids, 26.03.25)\n    test 1254 roc1_ 0: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1255 roc1_ 0: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1256 roc1_ 5: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1257 roc1_ 5: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1258 roc1_ 10: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1259 roc1_ 10: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1260 roc1_ 15: 9.313225746154785e-10  FAILED, KNOWN, expected 1.863e-09\n    test 1261 roc1_ 15: 9.313225746154785e-10  FAILED, KNOWN, expected 1.863e-09\n    test 1262 roc1_ 20: 9.313225746154785e-10  FAILED, KNOWN, expected 1.863e-09\n    test 1263 roc1_ 20: 9.313225746154785e-10  FAILED, KNOWN, expected 1.863e-09\n    test 1264 roc1_ 25: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1265 roc1_ 25: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1266 roc1_ 30: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1267 roc1_ 30: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1268 roc1_ 35: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1269 roc1_ 35: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1270 roc1_ 40: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1271 roc1_ 40: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1272 roc1_ 45: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1273 roc1_ 45: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1274 roc1_ 50: 9.313225746154785e-10  FAILED, KNOWN, expected 1.863e-09\n    test 1275 roc1_ 50: 9.313225746154785e-10  FAILED, KNOWN, expected 1.863e-09\n    test 1276 roc1_ 55: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1277 roc1_ 55: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1278 roc1_ 60: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1279 roc1_ 60: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1280 roc1_ 65: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1281 roc1_ 65: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1282 roc1_ 70: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1283 roc1_ 70: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1284 roc1_ 75: 9.313225746154785e-10  FAILED, KNOWN, expected 1.863e-09\n    test 1285 roc1_ 75: 9.313225746154785e-10  FAILED, KNOWN, expected 1.863e-09\n    test 1286 roc1_ 80: 9.313225746154785e-10  FAILED, KNOWN, expected 1.863e-09\n    test 1287 roc1_ 80: 9.313225746154785e-10  FAILED, KNOWN, expected 1.863e-09\n    test 1288 roc1_ 85: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1289 roc1_ 85: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1290 roc1_ 90: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1291 roc1_ 90: 0.0  FAILED, KNOWN, expected 1.863e-09\n\n    testSphereAuthalic(pygeodesy.ellipsoids, 26.03.25)\n    test 1292 roc1_ 0: 0.0\n    test 1293 roc1_ 0: 0.0\n    test 1294 roc1_ 5: 0.0\n    test 1295 roc1_ 5: 0.0\n    test 1296 roc1_ 10: 0.0\n    test 1297 roc1_ 10: 0.0\n    test 1298 roc1_ 15: 0.0\n    test 1299 roc1_ 15: 0.0\n    test 1300 roc1_ 20: 0.0\n    test 1301 roc1_ 20: 0.0\n    test 1302 roc1_ 25: 0.0\n    test 1303 roc1_ 25: 0.0\n    test 1304 roc1_ 30: 0.0\n    test 1305 roc1_ 30: 0.0\n    test 1306 roc1_ 35: 0.0\n    test 1307 roc1_ 35: 0.0\n    test 1308 roc1_ 40: 0.0\n    test 1309 roc1_ 40: 0.0\n    test 1310 roc1_ 45: 0.0\n    test 1311 roc1_ 45: 0.0\n    test 1312 roc1_ 50: 0.0\n    test 1313 roc1_ 50: 0.0\n    test 1314 roc1_ 55: 0.0\n    test 1315 roc1_ 55: 0.0\n    test 1316 roc1_ 60: 0.0\n    test 1317 roc1_ 60: 0.0\n    test 1318 roc1_ 65: 0.0\n    test 1319 roc1_ 65: 0.0\n    test 1320 roc1_ 70: 0.0\n    test 1321 roc1_ 70: 0.0\n    test 1322 roc1_ 75: 0.0\n    test 1323 roc1_ 75: 0.0\n    test 1324 roc1_ 80: 0.0\n    test 1325 roc1_ 80: 0.0\n    test 1326 roc1_ 85: 0.0\n    test 1327 roc1_ 85: 0.0\n    test 1328 roc1_ 90: 0.0\n    test 1329 roc1_ 90: 0.0\n\n    testcircle4(pygeodesy.ellipsoids, 26.03.25)\n\n    testWGS84(pygeodesy.ellipsoids, 26.03.25)\n    test 1330 circle4 0: 6378137.000000\n    test 1331 circle4 0: 6378137.000000\n    test 1332 circle4 10: 6377497.402124\n    test 1333 circle4 10: 6377497.402124\n    test 1334 circle4 20: 6375653.951276\n    test 1335 circle4 20: 6375653.951276\n    test 1336 circle4 30: 6372824.420294\n    test 1337 circle4 30: 6372824.420294\n    test 1338 circle4 40: 6369344.863240\n    test 1339 circle4 40: 6369344.863240\n    test 1340 circle4 50: 6365631.517537\n    test 1341 circle4 50: 6365631.517537\n    test 1342 circle4 60: 6362132.224397\n    test 1343 circle4 60: 6362132.224397\n    test 1344 circle4 70: 6359272.455642\n    test 1345 circle4 70: 6359272.455642\n    test 1346 circle4 80: 6357402.413808\n    test 1347 circle4 80: 6357402.413808\n    test 1348 circle4 90: 6356752.314245\n    test 1349 circle4 90: 6356752.314245\n\n    testSphere(pygeodesy.ellipsoids, 26.03.25)\n    test 1350 circle4 0: 6371008.771415\n    test 1351 circle4 0: 6371008.771415\n    test 1352 circle4 10: 6371008.771415\n    test 1353 circle4 10: 6371008.771415\n    test 1354 circle4 20: 6371008.771415\n    test 1355 circle4 20: 6371008.771415\n    test 1356 circle4 30: 6371008.771415\n    test 1357 circle4 30: 6371008.771415\n    test 1358 circle4 40: 6371008.771415\n    test 1359 circle4 40: 6371008.771415\n    test 1360 circle4 50: 6371008.771415\n    test 1361 circle4 50: 6371008.771415\n    test 1362 circle4 60: 6371008.771415\n    test 1363 circle4 60: 6371008.771415\n    test 1364 circle4 70: 6371008.771415\n    test 1365 circle4 70: 6371008.771415\n    test 1366 circle4 80: 6371008.771415\n    test 1367 circle4 80: 6371008.771415\n    test 1368 circle4 90: 6371008.771415\n    test 1369 circle4 90: 6371008.771415\n\n    test 1370 hartzell4: (3642031.283571, 3678090.99925, 3714150.714929, 11296639.666827)\n\n    77 of 1370 testEllipsoids.py tests (5.6%) FAILED, ALL KNOWN (pygeodesy 26.3.26 Python 3.13.12 64bit arm64 coverage 7.10.7 geographiclib 2.1 numpy 2.3.3 scipy 1.16.2 Math 2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 macOS 26.3.1 isLazy 1 -W  default) 141.860 ms\nrunning /Library/Framewo....n3.13 -W default ~/PyGeodesy/test/testElliptic.py\n\n    testing testElliptic.py 26.02.12 isLazy=1\n    test 1 eps4: 8.881784197e-16\n    test 2 RC, RF(0.020, ...): 3.914361830671\n    test 3 RC, RF(0.030, ...): 6.584789484624\n    test 4 RC, RF(0.040, ...): 5.493061443341\n    test 5 RC, RF(0.050, ...): 4.812118250596\n    test 6 RC, RF(0.060, ...): 4.335073632453\n    test 7 RC, RF(0.070, ...): 3.976827306120\n    test 8 RC, RF(0.080, ...): 3.694989719259\n    test 9 RC, RF(0.090, ...): 3.465735902800\n    test 10 RC, RF(0.100, ...): 3.274501502373\n    test 11 RC, RF(0.110, ...): 3.111812518574\n    test 12 RC, RF(0.120, ...): 2.971203516685\n    test 13 RC, RF(0.130, ...): 2.848090500183\n    test 14 RC, RF(0.140, ...): 2.739120555165\n    test 15 RC, RF(0.150, ...): 2.641776814832\n    test 16 RC, RF(0.160, ...): 2.554128118830\n    test 17 RC, RF(0.170, ...): 2.474664615473\n    test 18 RC, RF(0.180, ...): 2.402186472893\n    test 19 RC, RF(0.190, ...): 2.335726540516\n    test 20 RC, RF(0.200, ...): 2.274495360058\n    test 21 RC, RF(0.210, ...): 2.217841271926\n    test 22 RC, RF(0.220, ...): 2.165220951174\n    test 23 RC, RF(0.230, ...): 2.116177296054\n    test 24 RC, RF(0.240, ...): 2.070322594382\n    test 25 RC, RF(0.250, ...): 2.027325540541\n    test 26 RC, RF(0.260, ...): 1.986901103492\n    test 27 RC, RF(0.270, ...): 1.948802534199\n    test 28 RC, RF(0.280, ...): 1.912814998209\n    test 29 RC, RF(0.290, ...): 1.878750456745\n    test 30 RC, RF(0.300, ...): 1.846443516895\n    test 31 RC, RF(0.310, ...): 1.815748041271\n    test 32 RC, RF(0.320, ...): 1.786534358134\n    test 33 RC, RF(0.330, ...): 1.758686950216\n    test 34 RC, RF(0.340, ...): 1.732102528083\n    test 35 RC, RF(0.350, ...): 1.706688414643\n    test 36 RC, RF(0.360, ...): 1.682361183106\n    test 37 RC, RF(0.370, ...): 1.659045502693\n    test 38 RC, RF(0.380, ...): 1.636673155658\n    test 39 RC, RF(0.390, ...): 1.615182196359\n    test 40 RC, RF(0.400, ...): 1.594516228743\n    test 41 RC, RF(0.410, ...): 1.574623783019\n    test 42 RC, RF(0.420, ...): 1.555457775830\n    test 43 RC, RF(0.430, ...): 1.536975041007\n    test 44 RC, RF(0.440, ...): 1.519135920258\n    test 45 RC, RF(0.450, ...): 1.501903904951\n    test 46 RC, RF(0.460, ...): 1.485245321610\n    test 47 RC, RF(0.470, ...): 1.469129054970\n    test 48 RC, RF(0.480, ...): 1.453526303390\n    test 49 RC, RF(0.490, ...): 1.438410362259\n    test 50 RC, RF(0.500, ...): 1.423756431678\n    test 51 RC, RF(0.510, ...): 1.409541445271\n    test 52 RC, RF(0.520, ...): 1.395743917431\n    test 53 RC, RF(0.530, ...): 1.382343806706\n    test 54 RC, RF(0.540, ...): 1.369322393343\n    test 55 RC, RF(0.550, ...): 1.356662169284\n    test 56 RC, RF(0.560, ...): 1.344346739158\n    test 57 RC, RF(0.570, ...): 1.332360730978\n    test 58 RC, RF(0.580, ...): 1.320689715446\n    test 59 RC, RF(0.590, ...): 1.309320132904\n    test 60 RC, RF(0.600, ...): 1.298239227085\n    test 61 RC, RF(0.610, ...): 1.287434984930\n    test 62 RC, RF(0.620, ...): 1.276896081822\n    test 63 RC, RF(0.630, ...): 1.266611831682\n    test 64 RC, RF(0.640, ...): 1.256572141405\n    test 65 RC, RF(0.650, ...): 1.246767469214\n    test 66 RC, RF(0.660, ...): 1.237188786540\n    test 67 RC, RF(0.670, ...): 1.227827543058\n    test 68 RC, RF(0.680, ...): 1.218675634611\n    test 69 RC, RF(0.690, ...): 1.209725373708\n    test 70 RC, RF(0.700, ...): 1.200969462383\n    test 71 RC, RF(0.710, ...): 1.192400967179\n    test 72 RC, RF(0.720, ...): 1.184013296070\n    test 73 RC, RF(0.730, ...): 1.175800177139\n    test 74 RC, RF(0.740, ...): 1.167755638871\n    test 75 RC, RF(0.750, ...): 1.159873991901\n    test 76 RC, RF(0.760, ...): 1.152149812097\n    test 77 RC, RF(0.770, ...): 1.144577924881\n    test 78 RC, RF(0.780, ...): 1.137153390647\n    test 79 RC, RF(0.790, ...): 1.129871491226\n    test 80 RC, RF(0.800, ...): 1.122727717281\n    test 81 RC, RF(0.810, ...): 1.115717756571\n    test 82 RC, RF(0.820, ...): 1.108837483013\n    test 83 RC, RF(0.830, ...): 1.102082946473\n    test 84 RC, RF(0.840, ...): 1.095450363236\n    test 85 RC, RF(0.850, ...): 1.088936107101\n    test 86 RC, RF(0.860, ...): 1.082536701044\n    test 87 RC, RF(0.870, ...): 1.076248809425\n    test 88 RC, RF(0.880, ...): 1.070069230678\n    test 89 RC, RF(0.890, ...): 1.063994890459\n    test 90 RC, RF(0.900, ...): 1.058022835225\n    test 91 RC, RF(0.910, ...): 1.052150226192\n    test 92 RC, RF(0.920, ...): 1.046374333669\n    test 93 RC, RF(0.930, ...): 1.040692531726\n    test 94 RC, RF(0.940, ...): 1.035102293176\n    test 95 RC, RF(0.950, ...): 1.029601184852\n    test 96 RC, RF(0.960, ...): 1.024186863158\n    test 97 RC, RF(0.970, ...): 1.018857069872\n    test 98 RC, RF(0.980, ...): 1.013609628192\n    test 99 RC, RF(0.990, ...): 1.008442438994\n    test 100 RD, RJ(0.010, ...): 8.120132781711\n    test 101 RD, RJ(0.020, ...): 7.119021204087\n    test 102 RD, RJ(0.030, ...): 6.544107485563\n    test 103 RD, RJ(0.040, ...): 6.142532079666\n    test 104 RD, RJ(0.050, ...): 5.835358486352\n    test 105 RD, RJ(0.060, ...): 5.587552234737\n    test 106 RD, RJ(0.070, ...): 5.380489023690\n    test 107 RD, RJ(0.080, ...): 5.203088814832\n    test 108 RD, RJ(0.090, ...): 5.048227960523\n    test 109 RD, RJ(0.100, ...): 4.911057935480\n    test 110 RD, RJ(0.110, ...): 4.788131254930\n    test 111 RD, RJ(0.120, ...): 4.676910208210\n    test 112 RD, RJ(0.130, ...): 4.575473423301\n    test 113 RD, RJ(0.140, ...): 4.482331804788\n    test 114 RD, RJ(0.150, ...): 4.396308333326\n    test 115 RD, RJ(0.160, ...): 4.316456874863\n    test 116 RD, RJ(0.170, ...): 4.242005741804\n    test 117 RD, RJ(0.180, ...): 4.172317477477\n    test 118 RD, RJ(0.190, ...): 4.106859576449\n    test 119 RD, RJ(0.200, ...): 4.045182759349\n    test 120 RD, RJ(0.210, ...): 3.986904580308\n    test 121 RD, RJ(0.220, ...): 3.931696871490\n    test 122 RD, RJ(0.230, ...): 3.879275996390\n    test 123 RD, RJ(0.240, ...): 3.829395191121\n    test 124 RD, RJ(0.250, ...): 3.781838479725\n    test 125 RD, RJ(0.260, ...): 3.736415791191\n    test 126 RD, RJ(0.270, ...): 3.692959004641\n    test 127 RD, RJ(0.280, ...): 3.651318719062\n    test 128 RD, RJ(0.290, ...): 3.611361594199\n    test 129 RD, RJ(0.300, ...): 3.572968145771\n    test 130 RD, RJ(0.310, ...): 3.536030905108\n    test 131 RD, RJ(0.320, ...): 3.500452873386\n    test 132 RD, RJ(0.330, ...): 3.466146215741\n    test 133 RD, RJ(0.340, ...): 3.433031152013\n    test 134 RD, RJ(0.350, ...): 3.401035009727\n    test 135 RD, RJ(0.360, ...): 3.370091411694\n    test 136 RD, RJ(0.370, ...): 3.340139575961\n    test 137 RD, RJ(0.380, ...): 3.311123710009\n    test 138 RD, RJ(0.390, ...): 3.282992484411\n    test 139 RD, RJ(0.400, ...): 3.255698573796\n    test 140 RD, RJ(0.410, ...): 3.229198255060\n    test 141 RD, RJ(0.420, ...): 3.203451054514\n    test 142 RD, RJ(0.430, ...): 3.178419436977\n    test 143 RD, RJ(0.440, ...): 3.154068531006\n    test 144 RD, RJ(0.450, ...): 3.130365885345\n    test 145 RD, RJ(0.460, ...): 3.107281252437\n    test 146 RD, RJ(0.470, ...): 3.084786395490\n    test 147 RD, RJ(0.480, ...): 3.062854916088\n    test 148 RD, RJ(0.490, ...): 3.041462099793\n    test 149 RD, RJ(0.500, ...): 3.020584777522\n    test 150 RD, RJ(0.510, ...): 3.000201200833\n    test 151 RD, RJ(0.520, ...): 2.980290929460\n    test 152 RD, RJ(0.530, ...): 2.960834729701\n    test 153 RD, RJ(0.540, ...): 2.941814482427\n    test 154 RD, RJ(0.550, ...): 2.923213099639\n    test 155 RD, RJ(0.560, ...): 2.905014448642\n    test 156 RD, RJ(0.570, ...): 2.887203283023\n    test 157 RD, RJ(0.580, ...): 2.869765179714\n    test 158 RD, RJ(0.590, ...): 2.852686481504\n    test 159 RD, RJ(0.600, ...): 2.835954244454\n    test 160 RD, RJ(0.610, ...): 2.819556189720\n    test 161 RD, RJ(0.620, ...): 2.803480659351\n    test 162 RD, RJ(0.630, ...): 2.787716575666\n    test 163 RD, RJ(0.640, ...): 2.772253403892\n    test 164 RD, RJ(0.650, ...): 2.757081117726\n    test 165 RD, RJ(0.660, ...): 2.742190167580\n    test 166 RD, RJ(0.670, ...): 2.727571451237\n    test 167 RD, RJ(0.680, ...): 2.713216286727\n    test 168 RD, RJ(0.690, ...): 2.699116387203\n    test 169 RD, RJ(0.700, ...): 2.685263837661\n    test 170 RD, RJ(0.710, ...): 2.671651073335\n    test 171 RD, RJ(0.720, ...): 2.658270859623\n    test 172 RD, RJ(0.730, ...): 2.645116273430\n    test 173 RD, RJ(0.740, ...): 2.632180685789\n    test 174 RD, RJ(0.750, ...): 2.619457745678\n    test 175 RD, RJ(0.760, ...): 2.606941364924\n    test 176 RD, RJ(0.770, ...): 2.594625704104\n    test 177 RD, RJ(0.780, ...): 2.582505159384\n    test 178 RD, RJ(0.790, ...): 2.570574350197\n    test 179 RD, RJ(0.800, ...): 2.558828107720\n    test 180 RD, RJ(0.810, ...): 2.547261464073\n    test 181 RD, RJ(0.820, ...): 2.535869642198\n    test 182 RD, RJ(0.830, ...): 2.524648046356\n    test 183 RD, RJ(0.840, ...): 2.513592253209\n    test 184 RD, RJ(0.850, ...): 2.502698003435\n    test 185 RD, RJ(0.860, ...): 2.491961193848\n    test 186 RD, RJ(0.870, ...): 2.481377869975\n    test 187 RD, RJ(0.880, ...): 2.470944219069\n    test 188 RD, RJ(0.890, ...): 2.460656563526\n    test 189 RD, RJ(0.900, ...): 2.450511354674\n    test 190 RD, RJ(0.910, ...): 2.440505166909\n    test 191 RD, RJ(0.920, ...): 2.430634692166\n    test 192 RD, RJ(0.930, ...): 2.420896734686\n    test 193 RD, RJ(0.940, ...): 2.411288206073\n    test 194 RD, RJ(0.950, ...): 2.401806120619\n    test 195 RD, RJ(0.960, ...): 2.392447590873\n    test 196 RD, RJ(0.970, ...): 2.383209823448\n    test 197 RD, RJ(0.980, ...): 2.374090115050\n    test 198 RD, RJ(0.990, ...): 2.365085848706\n\n    test 199 eps4: 8.881784197e-16\n    test 200 k2: 0.1000000\n    test 201 kp2: 0.9000000\n    test 202 eps: 0.0263340\n    test 203 cD: 0.816837118\n    test 204 cE: 1.530757637\n    test 205 cG: 1.530757637\n    test 206 cH: 0.795604230\n    test 207 cK: 1.612441349\n    test 208 cKE: 0.081683712\n    test 209 cPi: 1.612441349\n    test 210 fE(phi): 0.348372822\n    test 211 fDelta(sn, cn): 0.994133906\n    test 212 fD(sn, cn, dn): 0.013885234\n    test 213 fE(sn, cn, dn): 0.348372822\n    test 214 fEd(PI_2): 0.027415224\n    test 215 fEinv(PI_2): 1.612999420\n    test 216 fF(sn, cn, dn): 0.349761345\n    test 217 fG(sn, cn, dn): 0.348372822\n    test 218 fH(sn, cn, dn): 0.335876111\n    test 219 fPi(sn, cn, dn): 0.349761345\n    test 220 fPi(sn, None, dn): invokation Elliptic.fPi(0, None, 1): invalid\n    test 221 fPi(sn, dn, None): invokation Elliptic.fH(0, 1, None): invalid\n\n    test 222 deltaD(sn, cn, dn): -0.3223642\n    test 223 deltaE(sn, cn, dn): 0.0084191\n    test 224 deltaEinv(sn, cn): -0.0082518\n    test 225 deltaF(sn, cn, dn): -0.0083379\n    test 226 deltaG(sn, cn, dn): 0.0084191\n    test 227 deltaH(sn, cn, dn): 0.3140691\n    test 228 deltaPi(sn, cn, dn): -0.0083379\n    test 229 deltaPi(sn, None, dn): invokation Elliptic.deltaPi(0, None, 1): invalid\n    test 230 deltaPi(sn, dn, None): invokation Elliptic.deltaPi(0, 1, None): invalid\n\n    test 231 RF(1,   2, 0): 1.3110287771461\n    test 232 RF(0.5, 1, 0): 1.8540746773014\n    test 233 RF(2,   3, 4): 0.58408284167715\n\n    test 234 RC(0,  1/4): 3.1415926535898\n    test 235 RC(9/4,  2): 0.69314718055995\n    test 236 RC(1/4, -2): 0.23104906018665\n\n    test 237 RJ(0, 1, 2, 3): 0.77688623778582\n    test 238 RJ(2, 3, 4, 5): 0.14297579667157\n\n    test 239 RD(0, 2, 1): 1.7972103521034\n    test 240 RD(2, 3, 4): 0.16510527294261\n\n    test 241 RG(0, 16, 16): 3.1415926535898\n    test 242 RG(2,  3,  4): 1.7255030280692\n    test 243 RG(0,  0.0796, 4): 1.0284758090288\n\n    test 244 reset: 5\n\n    test 245 sncndn(x, jam=True): 0.0, 1.0, 1.0\n    test 246 sncndn(x, jam=True): 0.998602459, 0.052850065, 0.948830497\n    test 247 sncndn(x, jam=True): 0.0, 1.0, 1.0\n    test 248 sncndn(x, jam=True): 0.917152336, 0.398536815, 0.398536815\n    test 249 sncndn(x, jam=True): <class 'pygeodesy.elliptic.Elliptic3Tuple'>\n\n    test 250 sncndn(x, jam=False): 0.0, 1.0, 1.0\n    test 251 sncndn(x, jam=False): 0.999219618, 0.0394988, 0.948765522\n    test 252 sncndn(x, jam=False): 0.0, 1.0, 1.0\n    test 253 sncndn(x, jam=False): 0.917152336, 0.398536815, 0.398536815\n    test 254 sncndn(x, jam=False): <class 'pygeodesy.elliptic.Elliptic3Tuple'>\n\n    test 255 copy(<class 'type'>): (<class 'pygeodesy.elliptic.Elliptic'>, True)\n    test 256 Elliptic.copy(): (<class 'pygeodesy.elliptic.Elliptic'>, True)\n    test 257 k2 alpha2 kp2 alphap2: (0.0, 0.0, 0.0, 0.0)\n    test 258 k2 alpha2 kp2 alphap2: (0.25, 0.25, 0.25, 0.25)\n    test 259 k2 alpha2 kp2 alphap2: (0.5, 0.5, 0.5, 0.5)\n    test 260 k2 alpha2 kp2 alphap2: (0.75, 0.75, 0.75, 0.75)\n\n    test 261 ConvergenceError: maxit (9): no convergence (1), tolerance (2)\n\n    test 262 _ellipticError: invokation Elliptic.testElliptic(None): test\n    test 263 _ellipticError: invokation Elliptic._ellipticError(None): invokation Elliptic.testElliptic(None): test\n\n    all 263 testElliptic.py tests passed (pygeodesy 26.3.26 Python 3.13.12 64bit arm64 coverage 7.10.7 geographiclib 2.1 numpy 2.3.3 scipy 1.16.2 Math 2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 macOS 26.3.1 isLazy 1 -W  default) 667.699 ms\nrunning /Library/Framewo....n3.13 -W default ~/PyGeodesy/test/testEpsg.py\n\n    testing testEpsg.py 23.03.27 isLazy=1\n    test 1 Epsg: Epsg(32661)\n    test 2 0 N: (0, 'N')\n    test 3 1 N: (1, 'N')\n    test 4 2 N: (2, 'N')\n    test 5 3 N: (3, 'N')\n    test 6 4 N: (4, 'N')\n    test 7 5 N: (5, 'N')\n    test 8 6 N: (6, 'N')\n    test 9 7 N: (7, 'N')\n    test 10 8 N: (8, 'N')\n    test 11 9 N: (9, 'N')\n    test 12 10 N: (10, 'N')\n    test 13 11 N: (11, 'N')\n    test 14 12 N: (12, 'N')\n    test 15 13 N: (13, 'N')\n    test 16 14 N: (14, 'N')\n    test 17 15 N: (15, 'N')\n    test 18 16 N: (16, 'N')\n    test 19 17 N: (17, 'N')\n    test 20 18 N: (18, 'N')\n    test 21 19 N: (19, 'N')\n    test 22 20 N: (20, 'N')\n    test 23 21 N: (21, 'N')\n    test 24 22 N: (22, 'N')\n    test 25 23 N: (23, 'N')\n    test 26 24 N: (24, 'N')\n    test 27 25 N: (25, 'N')\n    test 28 26 N: (26, 'N')\n    test 29 27 N: (27, 'N')\n    test 30 28 N: (28, 'N')\n    test 31 29 N: (29, 'N')\n    test 32 30 N: (30, 'N')\n    test 33 31 N: (31, 'N')\n    test 34 32 N: (32, 'N')\n    test 35 33 N: (33, 'N')\n    test 36 34 N: (34, 'N')\n    test 37 35 N: (35, 'N')\n    test 38 36 N: (36, 'N')\n    test 39 37 N: (37, 'N')\n    test 40 38 N: (38, 'N')\n    test 41 39 N: (39, 'N')\n    test 42 40 N: (40, 'N')\n    test 43 41 N: (41, 'N')\n    test 44 42 N: (42, 'N')\n    test 45 43 N: (43, 'N')\n    test 46 44 N: (44, 'N')\n    test 47 45 N: (45, 'N')\n    test 48 46 N: (46, 'N')\n    test 49 47 N: (47, 'N')\n    test 50 48 N: (48, 'N')\n    test 51 49 N: (49, 'N')\n    test 52 50 N: (50, 'N')\n    test 53 51 N: (51, 'N')\n    test 54 52 N: (52, 'N')\n    test 55 53 N: (53, 'N')\n    test 56 54 N: (54, 'N')\n    test 57 55 N: (55, 'N')\n    test 58 56 N: (56, 'N')\n    test 59 57 N: (57, 'N')\n    test 60 58 N: (58, 'N')\n    test 61 59 N: (59, 'N')\n    test 62 60 N: (60, 'N')\n    test 63 Epsg: Epsg(32761)\n    test 64 0 S: (0, 'S')\n    test 65 1 S: (1, 'S')\n    test 66 2 S: (2, 'S')\n    test 67 3 S: (3, 'S')\n    test 68 4 S: (4, 'S')\n    test 69 5 S: (5, 'S')\n    test 70 6 S: (6, 'S')\n    test 71 7 S: (7, 'S')\n    test 72 8 S: (8, 'S')\n    test 73 9 S: (9, 'S')\n    test 74 10 S: (10, 'S')\n    test 75 11 S: (11, 'S')\n    test 76 12 S: (12, 'S')\n    test 77 13 S: (13, 'S')\n    test 78 14 S: (14, 'S')\n    test 79 15 S: (15, 'S')\n    test 80 16 S: (16, 'S')\n    test 81 17 S: (17, 'S')\n    test 82 18 S: (18, 'S')\n    test 83 19 S: (19, 'S')\n    test 84 20 S: (20, 'S')\n    test 85 21 S: (21, 'S')\n    test 86 22 S: (22, 'S')\n    test 87 23 S: (23, 'S')\n    test 88 24 S: (24, 'S')\n    test 89 25 S: (25, 'S')\n    test 90 26 S: (26, 'S')\n    test 91 27 S: (27, 'S')\n    test 92 28 S: (28, 'S')\n    test 93 29 S: (29, 'S')\n    test 94 30 S: (30, 'S')\n    test 95 31 S: (31, 'S')\n    test 96 32 S: (32, 'S')\n    test 97 33 S: (33, 'S')\n    test 98 34 S: (34, 'S')\n    test 99 35 S: (35, 'S')\n    test 100 36 S: (36, 'S')\n    test 101 37 S: (37, 'S')\n    test 102 38 S: (38, 'S')\n    test 103 39 S: (39, 'S')\n    test 104 40 S: (40, 'S')\n    test 105 41 S: (41, 'S')\n    test 106 42 S: (42, 'S')\n    test 107 43 S: (43, 'S')\n    test 108 44 S: (44, 'S')\n    test 109 45 S: (45, 'S')\n    test 110 46 S: (46, 'S')\n    test 111 47 S: (47, 'S')\n    test 112 48 S: (48, 'S')\n    test 113 49 S: (49, 'S')\n    test 114 50 S: (50, 'S')\n    test 115 51 S: (51, 'S')\n    test 116 52 S: (52, 'S')\n    test 117 53 S: (53, 'S')\n    test 118 54 S: (54, 'S')\n    test 119 55 S: (55, 'S')\n    test 120 56 S: (56, 'S')\n    test 121 57 S: (57, 'S')\n    test 122 58 S: (58, 'S')\n    test 123 59 S: (59, 'S')\n    test 124 60 S: (60, 'S')\n    test 125 Ups: Epsg(32761)\n    test 126 Ups: 00A S\n    test 127 copy(<class 'type'>): (<class 'pygeodesy.epsg.Epsg'>, True)\n    test 128 Epsg.copy(): (<class 'pygeodesy.epsg.Epsg'>, True)\n    test 129 Ups: Epsg(32761)\n    test 130 Ups: 00B S\n    test 131 copy(<class 'type'>): (<class 'pygeodesy.epsg.Epsg'>, True)\n    test 132 Epsg.copy(): (<class 'pygeodesy.epsg.Epsg'>, True)\n    test 133 Ups: Epsg(32661)\n    test 134 Ups: 00Y N\n    test 135 copy(<class 'type'>): (<class 'pygeodesy.epsg.Epsg'>, True)\n    test 136 Epsg.copy(): (<class 'pygeodesy.epsg.Epsg'>, True)\n    test 137 Ups: Epsg(32661)\n    test 138 Ups: 00Z N\n    test 139 copy(<class 'type'>): (<class 'pygeodesy.epsg.Epsg'>, True)\n    test 140 Epsg.copy(): (<class 'pygeodesy.epsg.Epsg'>, True)\n    test 141 TMcoord 1: 38W N\n    test 142 TMcoord 2: 34P N\n    test 143 TMcoord 3: 43Q N\n    test 144 TMcoord 4: 35Q N\n    test 145 TMcoord 5: 37N N\n    test 146 TMcoord 6: 34W N\n    test 147 TMcoord 7: 40V N\n    test 148 TMcoord 8: 34P N\n    test 149 TMcoord 9: 41S N\n    test 150 TMcoord 10: 41X N\n    test 151 TMcoord 11: 43X N\n    test 152 TMcoord 12: 44Q N\n    test 153 TMcoord 13: 44R N\n    test 154 TMcoord 14: 39U N\n    test 155 TMcoord 15: 44P N\n    test 156 TMcoord 16: 39R N\n    test 157 TMcoord 17: 41W N\n    test 158 TMcoord 18: 45U N\n    test 159 TMcoord 19: 32R N\n    test 160 TMcoord 20: 44X N\n    test 161 TMcoord 21: 35T N\n    test 162 TMcoord 22: 32T N\n    test 163 TMcoord 23: 31T N\n    test 164 TMcoord 24: 35N N\n    test 165 TMcoord 25: 45P N\n    test 166 TMcoord 26: 33V N\n    test 167 TMcoord 27: 41Q N\n    test 168 TMcoord 28: 40X N\n    test 169 TMcoord 29: 33P N\n    test 170 TMcoord 30: 40S N\n    test 171 TMcoord 31: 37T N\n    test 172 TMcoord 32: 33X N\n    test 173 TMcoord 33: 41U N\n    test 174 TMcoord 34: 43Q N\n    test 175 TMcoord 35: 42S N\n    test 176 TMcoord 36: 33S N\n    test 177 TMcoord 37: 35X N\n    test 178 TMcoord 38: 38N N\n    test 179 TMcoord 39: 44P N\n    test 180 TMcoord 40: 33U N\n    test 181 TMcoord 41: 37W N\n    test 182 TMcoord 42: 36T N\n    test 183 TMcoord 43: 36Q N\n    test 184 TMcoord 44: 34S N\n    test 185 TMcoord 45: 37S N\n    test 186 TMcoord 46: 34N N\n    test 187 TMcoord 47: 34T N\n    test 188 TMcoord 48: 43Q N\n    test 189 TMcoord 49: 32N N\n    test 190 TMcoord 50: 31Q N\n    test 191 TMcoord 51: 45R N\n    test 192 TMcoord 52: 45R N\n    test 193 TMcoord 53: 34W N\n    test 194 TMcoord 54: 44V N\n    test 195 TMcoord 55: 44S N\n    test 196 TMcoord 56: 39R N\n    test 197 TMcoord 57: 00Z N\n    test 198 TMcoord 58: 36R N\n    test 199 TMcoord 59: 41V N\n    test 200 TMcoord 60: 42N N\n    test 201 TMcoord 61: 43S N\n    test 202 TMcoord 62: 34N N\n    test 203 TMcoord 63: 34U N\n    test 204 TMcoord 64: 38V N\n    test 205 TMcoord 65: 34Q N\n    test 206 TMcoord 66: 38P N\n    test 207 TMcoord 67: 42S N\n    test 208 TMcoord 68: 44S N\n    test 209 TMcoord 69: 31Q N\n    test 210 TMcoord 70: 40W N\n    test 211 TMcoord 71: 35X N\n    test 212 TMcoord 72: 32T N\n    test 213 TMcoord 73: 45U N\n    test 214 TMcoord 74: 40Q N\n    test 215 TMcoord 75: 31T N\n    test 216 TMcoord 76: 44R N\n    test 217 TMcoord 77: 34U N\n    test 218 TMcoord 78: 38P N\n    test 219 TMcoord 79: 38Q N\n    test 220 TMcoord 80: 45N N\n    test 221 TMcoord 81: 31S N\n    test 222 TMcoord 82: 41U N\n    test 223 TMcoord 83: 40V N\n    test 224 TMcoord 84: 43X N\n    test 225 TMcoord 85: 35N N\n    test 226 TMcoord 86: 44P N\n    test 227 TMcoord 87: 41N N\n    test 228 TMcoord 88: 38Q N\n    test 229 TMcoord 89: 43X N\n    test 230 TMcoord 90: 36V N\n    test 231 TMcoord 91: 34Q N\n    test 232 TMcoord 92: 35W N\n    test 233 TMcoord 93: 45U N\n    test 234 TMcoord 94: 40R N\n    test 235 TMcoord 95: 36R N\n    test 236 TMcoord 96: 35S N\n    test 237 TMcoord 97: 41R N\n    test 238 TMcoord 98: 39Q N\n    test 239 TMcoord 99: 37T N\n    test 240 TMcoord 100: 42P N\n    test 241 TMcoord 101: 35T N\n    test 242 TMcoord 102: 34Q N\n    test 243 TMcoord 103: 41T N\n    test 244 TMcoord 104: 43R N\n    test 245 TMcoord 105: 34Q N\n    test 246 TMcoord 106: 45P N\n    test 247 TMcoord 107: 31P N\n    test 248 TMcoord 108: 44V N\n    test 249 TMcoord 109: 42X N\n    test 250 TMcoord 110: 33R N\n    test 251 TMcoord 111: 37W N\n    test 252 TMcoord 112: 31S N\n    test 253 TMcoord 113: 42N N\n    test 254 TMcoord 114: 39N N\n    test 255 TMcoord 115: 39T N\n    test 256 TMcoord 116: 39P N\n    test 257 TMcoord 117: 34U N\n    test 258 TMcoord 118: 41P N\n    test 259 TMcoord 119: 37R N\n    test 260 TMcoord 120: 44Q N\n    test 261 TMcoord 121: 32V N\n    test 262 TMcoord 122: 41R N\n    test 263 TMcoord 123: 36T N\n    test 264 TMcoord 124: 42U N\n    test 265 TMcoord 125: 42U N\n    test 266 TMcoord 126: 39T N\n    test 267 TMcoord 127: 32T N\n    test 268 TMcoord 128: 32Q N\n    test 269 TMcoord 129: 38P N\n    test 270 TMcoord 130: 34Q N\n    test 271 TMcoord 131: 36V N\n    test 272 TMcoord 132: 36T N\n    test 273 TMcoord 133: 43T N\n    test 274 TMcoord 134: 41W N\n    test 275 TMcoord 135: 32V N\n    test 276 TMcoord 136: 39X N\n    test 277 TMcoord 137: 32U N\n    test 278 TMcoord 138: 37X N\n    test 279 TMcoord 139: 35N N\n    test 280 TMcoord 140: 36P N\n    test 281 TMcoord 141: 31S N\n    test 282 TMcoord 142: 36N N\n    test 283 TMcoord 143: 42S N\n    test 284 TMcoord 144: 44N N\n    test 285 TMcoord 145: 44P N\n    test 286 TMcoord 146: 39U N\n    test 287 TMcoord 147: 45Q N\n    test 288 TMcoord 148: 41W N\n    test 289 TMcoord 149: 41N N\n    test 290 TMcoord 150: 32S N\n    test 291 TMcoord 151: 32N N\n    test 292 TMcoord 152: 32T N\n    test 293 TMcoord 153: 38R N\n    test 294 TMcoord 154: 32V N\n    test 295 TMcoord 155: 37Q N\n    test 296 TMcoord 156: 44N N\n    test 297 TMcoord 157: 34W N\n    test 298 TMcoord 158: 45N N\n    test 299 TMcoord 159: 42S N\n    test 300 TMcoord 160: 40T N\n    test 301 TMcoord 161: 31U N\n    test 302 TMcoord 162: 45Q N\n    test 303 TMcoord 163: 40U N\n    test 304 TMcoord 164: 45T N\n    test 305 TMcoord 165: 40R N\n    test 306 TMcoord 166: 31V N\n    test 307 TMcoord 167: 45P N\n    test 308 TMcoord 168: 43W N\n    test 309 TMcoord 169: 43U N\n    test 310 TMcoord 170: 44V N\n    test 311 TMcoord 171: 40P N\n    test 312 TMcoord 172: 36Q N\n    test 313 TMcoord 173: 42Q N\n    test 314 TMcoord 174: 41Q N\n    test 315 TMcoord 175: 32S N\n    test 316 TMcoord 176: 39P N\n    test 317 TMcoord 177: 39Q N\n    test 318 TMcoord 178: 39T N\n    test 319 TMcoord 179: 34U N\n    test 320 TMcoord 180: 32W N\n    test 321 TMcoord 181: 41U N\n    test 322 TMcoord 182: 31Q N\n    test 323 TMcoord 183: 40N N\n    test 324 TMcoord 184: 40T N\n    test 325 TMcoord 185: 38P N\n    test 326 TMcoord 186: 44P N\n    test 327 TMcoord 187: 40N N\n    test 328 TMcoord 188: 44V N\n    test 329 TMcoord 189: 41V N\n    test 330 TMcoord 190: 43Q N\n    test 331 TMcoord 191: 43X N\n    test 332 TMcoord 192: 39N N\n    test 333 TMcoord 193: 38T N\n    test 334 TMcoord 194: 32R N\n    test 335 TMcoord 195: 37S N\n    test 336 TMcoord 196: 44W N\n    test 337 TMcoord 197: 43V N\n    test 338 TMcoord 198: 35T N\n    test 339 TMcoord 199: 44W N\n    test 340 TMcoord 200: 44X N\n    test 341 TMcoord 201: 33Q N\n    test 342 TMcoord 202: 40W N\n    test 343 TMcoord 203: 43S N\n    test 344 TMcoord 204: 32U N\n    test 345 TMcoord 205: 33V N\n    test 346 TMcoord 206: 34R N\n    test 347 TMcoord 207: 39S N\n    test 348 TMcoord 208: 43W N\n    test 349 TMcoord 209: 39T N\n    test 350 TMcoord 210: 31W N\n    test 351 TMcoord 211: 45R N\n    test 352 TMcoord 212: 34W N\n    test 353 TMcoord 213: 32T N\n    test 354 TMcoord 214: 31P N\n    test 355 TMcoord 215: 44V N\n    test 356 TMcoord 216: 45U N\n    test 357 TMcoord 217: 43R N\n    test 358 TMcoord 218: 31N N\n    test 359 TMcoord 219: 43T N\n    test 360 TMcoord 220: 45R N\n    test 361 TMcoord 221: 39N N\n    test 362 TMcoord 222: 37S N\n    test 363 TMcoord 223: 31R N\n    test 364 TMcoord 224: 38Q N\n    test 365 TMcoord 225: 40V N\n    test 366 TMcoord 226: 45N N\n    test 367 TMcoord 227: 44R N\n    test 368 TMcoord 228: 43P N\n    test 369 TMcoord 229: 42P N\n    test 370 TMcoord 230: 45S N\n    test 371 TMcoord 231: 42N N\n    test 372 TMcoord 232: 38S N\n    test 373 TMcoord 233: 32T N\n    test 374 TMcoord 234: 41T N\n    test 375 TMcoord 235: 34S N\n    test 376 TMcoord 236: 40R N\n    test 377 TMcoord 237: 35V N\n    test 378 TMcoord 238: 38N N\n    test 379 TMcoord 239: 40V N\n    test 380 TMcoord 240: 36R N\n    test 381 TMcoord 241: 37W N\n    test 382 TMcoord 242: 45R N\n    test 383 TMcoord 243: 37V N\n    test 384 TMcoord 244: 33P N\n    test 385 TMcoord 245: 32U N\n    test 386 TMcoord 246: 38T N\n    test 387 TMcoord 247: 37N N\n    test 388 TMcoord 248: 36R N\n    test 389 TMcoord 249: 44R N\n    test 390 TMcoord 250: 44Q N\n    test 391 TMcoord 251: 45R N\n    test 392 TMcoord 252: 34N N\n    test 393 TMcoord 253: 43S N\n    test 394 TMcoord 254: 40Q N\n    test 395 TMcoord 255: 33T N\n    test 396 TMcoord 256: 44P N\n    test 397 TMcoord 257: 39N N\n    test 398 TMcoord 258: 40Q N\n\n    all 398 testEpsg.py tests passed (pygeodesy 26.3.26 Python 3.13.12 64bit arm64 coverage 7.10.7 geographiclib 2.1 numpy 2.3.3 scipy 1.16.2 Math 2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 macOS 26.3.1 isLazy 1 -W  default) 337.204 ms\nrunning /Library/Framewo....n3.13 -W default ~/PyGeodesy/test/testErrors.py\n\n    testing testErrors.py 23.03.27 (module pygeodesy.errors 26.02.12) isLazy=1\n    test 1 AssertionError: name ('value'): test1 txt\n    test 2 AssertionError: 'name=value' MISSING: test2 txt\n    test 3 AttributeError: name ('value'): test1 txt\n    test 4 AttributeError: 'name=value' MISSING: test2 txt\n    test 5 IndexError: name ('value'): test1 txt\n    test 6 IndexError: 'name=value' MISSING: test2 txt\n    test 7 LimitError: name ('value'): test1 txt\n    test 8 LimitError: 'name=value' MISSING: test2 txt\n    test 9 NameError: name ('value'): test1 txt\n    test 10 NameError: 'name=value' MISSING: test2 txt\n    test 11 ParseError: name ('value'): test1 txt\n    test 12 ParseError: 'name=value' MISSING: test2 txt\n    test 13 TypeError: type(name) ('value'): test1 txt\n    test 14 TypeError: 'name=value' MISSING: test2 txt\n    test 15 ClipError: name ('value'): test1 txt\n    test 16 ClipError: 'name=value' MISSING: test2 txt\n    test 17 CrossError: name ('value'): test1 txt\n    test 18 CrossError: 'name=value' MISSING: test2 txt\n    test 19 CSSError: name ('value'): test1 txt\n    test 20 CSSError: 'name=value' MISSING: test2 txt\n    test 21 EcefError: name ('value'): test1 txt\n    test 22 EcefError: 'name=value' MISSING: test2 txt\n    test 23 EllipticError: name ('value'): test1 txt\n    test 24 EllipticError: 'name=value' MISSING: test2 txt\n    test 25 EPSGError: name ('value'): test1 txt\n    test 26 EPSGError: 'name=value' MISSING: test2 txt\n    test 27 ETMError: name ('value'): test1 txt\n    test 28 ETMError: 'name=value' MISSING: test2 txt\n    test 29 FrechetError: name ('value'): test1 txt\n    test 30 FrechetError: 'name=value' MISSING: test2 txt\n    test 31 GARSError: name ('value'): test1 txt\n    test 32 GARSError: 'name=value' MISSING: test2 txt\n    test 33 GeohashError: name ('value'): test1 txt\n    test 34 GeohashError: 'name=value' MISSING: test2 txt\n    test 35 GeoidError: name ('value'): test1 txt\n    test 36 GeoidError: 'name=value' MISSING: test2 txt\n    test 37 HausdorffError: name ('value'): test1 txt\n    test 38 HausdorffError: 'name=value' MISSING: test2 txt\n    test 39 HeightError: name ('value'): test1 txt\n    test 40 HeightError: 'name=value' MISSING: test2 txt\n    test 41 LazyImportError: name ('value'): test1 txt\n    test 42 LazyImportError: 'name=value' MISSING: test2 txt\n    test 43 LCCError: name ('value'): test1 txt\n    test 44 LCCError: 'name=value' MISSING: test2 txt\n    test 45 MGRSError: name ('value'): test1 txt\n    test 46 MGRSError: 'name=value' MISSING: test2 txt\n    test 47 OSGRError: name ('value'): test1 txt\n    test 48 OSGRError: 'name=value' MISSING: test2 txt\n    test 49 PGMError: name ('value'): test1 txt\n    test 50 PGMError: 'name=value' MISSING: test2 txt\n    test 51 PointsError: name ('value'): test1 txt\n    test 52 PointsError: 'name=value' MISSING: test2 txt\n    test 53 SciPyError: name ('value'): test1 txt\n    test 54 SciPyError: 'name=value' MISSING: test2 txt\n    test 55 SciPyWarning: name ('value'): test1 txt\n    test 56 SciPyWarning: 'name=value' MISSING: test2 txt\n    test 57 TRFError: name ('value'): test1 txt\n    test 58 TRFError: 'name=value' MISSING: test2 txt\n    test 59 UnitError: name ('value'): test1 txt\n    test 60 UnitError: 'name=value' MISSING: test2 txt\n    test 61 UPSError: name ('value'): test1 txt\n    test 62 UPSError: 'name=value' MISSING: test2 txt\n    test 63 UTMError: name ('value'): test1 txt\n    test 64 UTMError: 'name=value' MISSING: test2 txt\n    test 65 UTMUPSError: name ('value'): test1 txt\n    test 66 UTMUPSError: 'name=value' MISSING: test2 txt\n    test 67 VectorError: name ('value'): test1 txt\n    test 68 VectorError: 'name=value' MISSING: test2 txt\n    test 69 VincentyError: name ('value'): test1 txt\n    test 70 VincentyError: 'name=value' MISSING: test2 txt\n    test 71 WebMercatorError: name ('value'): test1 txt\n    test 72 WebMercatorError: 'name=value' MISSING: test2 txt\n    test 73 WGRSError: name ('value'): test1 txt\n    test 74 WGRSError: 'name=value' MISSING: test2 txt\n    test 75 _InvalidError: zero (1): invalid\n    test 76 _InvalidError: ValueError('zero (1): invalid')\n    test 77 _InvalidError: one (2) or zero (1): outside\n    test 78 _InvalidError: ValueError('one (2) or zero (1): outside')\n    test 79 _InvalidError: one (2) or zero (1): outside\n    test 80 _InvalidError: RangeError('one (2) or zero (1): outside')\n    test 81 _IsnotError: _None (None): not an int or float\n    test 82 _IsnotError: TypeError('_None (None): not an int or float')\n    test 83 _IsnotError: _None (None): not a scalar\n    test 84 _IsnotError: TypeError('_None (None): not a scalar')\n    test 85 _IsnotError: _None (None): not a scalar\n    test 86 _IsnotError: LimitError('_None (None): not a scalar')\n    test 87 LenError: LenError(a, b, c, d) len 1 vs 2 vs 3 vs 4: invalid\n    test 88 crosserrors: True\n    test 89 crosserrors: False\n    test 90 limiterrors: True\n    test 91 limiterrors: False\n    test 92 rangerrors: True\n    test 93 rangerrors: False\n    test 94 exception_chaining: False\n    test 95 exception_chaining: None\n    test 96 exception_chaining: None\n    test 97 _xkwds_get: test1\n    test 98 _xkwds_get: test2\n    test 99 _xkwds_get: _xkwds_get({})\n    test 100 _xkwds_get: _xkwds_get({}, n1='d1', n2='d2')\n    test 101 _xkwds_pop: test1\n    test 102 _xkwds_pop: test2\n    test 103 _xkwds_pop: _xkwds_pop2({})\n    test 104 _xkwds_pop: _xkwds_pop2({}, n1='d1', n2='d2')\n\n    all 104 testErrors.py tests passed (pygeodesy 26.3.26 Python 3.13.12 64bit arm64 coverage 7.10.7 geographiclib 2.1 numpy 2.3.3 scipy 1.16.2 Math 2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 macOS 26.3.1 isLazy 1 -W  default) 1.030 ms\nrunning /Library/Framewo....n3.13 -W default ~/PyGeodesy/test/testEtm.py\n\n    testing testEtm.py 23.08.30 (module pygeodesy.etm 25.09.15) isLazy=1\n\n    testExactTransverseMercator(pygeodesy.etm, 25.09.15)\n    test 1 name: test\n    test 2 toStr: datum='WGS84', extendp=True, k0=0.9996, lon0=0.0, name='test'\n\n    test 3 easting: -59401.921148\n    test 4 northing: 4472390.031129\n    test 5 gamma: -0.453697\n    test 6 scale: 0.999643\n    test 7 lat: 40.400000\n    test 8 lon: -3.700000\n    test 9 gamma: -0.453697\n    test 10 scale: 0.999643\n    test 11 easting: -59401.921148\n    test 12 northing: 4472390.031129\n    test 13 gamma: -0.453697\n    test 14 scale: 0.999643\n\n    test 15 easting: 25495.511523\n    test 16 northing: 4461098.320889\n    test 17 gamma: 0.194038\n    test 18 scale: 0.999608\n    test 19 lat: 40.300000\n    test 20 lon: -74.700000\n    test 21 gamma: 0.194038\n    test 22 scale: 0.999608\n    test 23 easting: 25495.511523\n    test 24 northing: 4461098.320889\n    test 25 gamma: 0.194038\n    test 26 scale: 0.999608\n\n    test 27 lat: -2.00000000\n    test 28 lon: 88.00000000\n    test 29 gamma: 67.63332900\n    test 30 scale: 26.33699547\n    test 31 easting: 29735142.378357\n    test 32 northing: 4235043.607933\n    test 33 gamma: 67.633329\n    test 34 scale: 26.336995\n\n    test 35 copy(<class 'type'>): (<class 'pygeodesy.etm.ExactTransverseMercator'>, True)\n    test 36 ExactTransverseMercator.copy(): (<class 'pygeodesy.etm.ExactTransverseMercator'>, True)\n\n    testExactTransverseMercator(pygeodesy.etm, 25.09.15)\n    test 37 name: test\n    test 38 toStr: datum='WGS84', extendp=False, k0=0.9996, lon0=0.0, name='test'\n\n    test 39 easting: -59401.921148\n    test 40 northing: 4472390.031129\n    test 41 gamma: -0.453697\n    test 42 scale: 0.999643\n    test 43 lat: 40.400000\n    test 44 lon: -3.700000\n    test 45 gamma: -0.453697\n    test 46 scale: 0.999643\n    test 47 easting: -59401.921148\n    test 48 northing: 4472390.031129\n    test 49 gamma: -0.453697\n    test 50 scale: 0.999643\n\n    test 51 easting: 25495.511523\n    test 52 northing: 4461098.320889\n    test 53 gamma: 0.194038\n    test 54 scale: 0.999608\n    test 55 lat: 40.300000\n    test 56 lon: -74.700000\n    test 57 gamma: 0.194038\n    test 58 scale: 0.999608\n    test 59 easting: 25495.511523\n    test 60 northing: 4461098.320889\n    test 61 gamma: 0.194038\n    test 62 scale: 0.999608\n\n    test 63 lat: -2.00000000\n    test 64 lon: 88.00000000\n    test 65 gamma: 67.63332900\n    test 66 scale: 26.33699547\n\n    test 67 easting: 0.000\n    test 68 northing: -9997964.943\n    test 69 gamma: 120.000\n    test 70 scale: 1.000\n    test 71 lat: -90.000\n    test 72 lon: 180.000  FAILED, KNOWN, expected 0.000\n    test 73 gamma: -180.000\n    test 74 scale: 1.000\n\n    test 75 copy(<class 'type'>): (<class 'pygeodesy.etm.ExactTransverseMercator'>, True)\n    test 76 ExactTransverseMercator.copy(): (<class 'pygeodesy.etm.ExactTransverseMercator'>, True)\n\n    testLatLon(pygeodesy.etm, 25.09.15)\n    test 77 toEtm8: 45 S -20297797 5336899\n    test 78 name: test\n    test 79 toUtm: 45 S -20297797 5336899\n    test 80 name: test\n    test 81 toETM5: 45 S -20297797 5336899\n    test 82 copy(<class 'type'>): (<class 'pygeodesy.etm.Etm'>, True)\n    test 83 .name: test\n    test 84 Etm.copy(): (<class 'pygeodesy.etm.Etm'>, True)\n    test 85 .name: test\n    test 86 parse: 31 N 448251 5411932\n    test 87 name: parse\n    test 88 parse: 31 N 448251 5411932\n    test 89 name: parse\n\n    testLatLon(pygeodesy.etm, 25.09.15)\n    test 90 toEtm8: 45 S -20297797 5336899\n    test 91 name: test\n    test 92 toUtm: 45 S -20297797 5336899\n    test 93 name: test\n    test 94 toETM5: 45 S -20297797 5336899\n    test 95 copy(<class 'type'>): (<class 'pygeodesy.etm.Etm'>, True)\n    test 96 .name: test\n    test 97 Etm.copy(): (<class 'pygeodesy.etm.Etm'>, True)\n    test 98 .name: test\n    test 99 parse: 31 N 448251 5411932\n    test 100 name: parse\n    test 101 parse: 31 N 448251 5411932\n    test 102 name: parse\n\n    1 of 102 testEtm.py tests (1.0%) FAILED, ALL KNOWN (pygeodesy 26.3.26 Python 3.13.12 64bit arm64 coverage 7.10.7 geographiclib 2.1 numpy 2.3.3 scipy 1.16.2 Math 2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 macOS 26.3.1 isLazy 1 -W  default) 313.225 ms\nrunning /Library/Framewo....n3.13 -W default ~/PyGeodesy/test/testEtmTMcoords.py\n\n    testing testEtmTMcoords.py 24.03.22 (module pygeodesy.etm 25.09.15) isLazy=1\n    test 1 line 1 toEtm8.easting: 1548706.791619\n    test 2 line 1 toEtm8.northing: 8451449.198772\n    test 3 line 1 toEtm8.gamma: 43.922790\n    test 4 line 1 toEtm8.scale: 1.029060\n    test 5 line 1 toEtm8.lat: 70.579277\n    test 6 line 1 toEtm8.lon: 45.599420\n    test 7 line 2 toEtm8.easting: 2624150.740929\n    test 8 line 2 toEtm8.northing: 1204434.041605\n    test 9 line 2 toEtm8.gamma: 4.292619\n    test 10 line 2 toEtm8.scale: 1.086051\n    test 11 line 2 toEtm8.lat: 10.018894\n    test 12 line 2 toEtm8.lon: 23.313324\n    test 13 line 3 toEtm8.easting: 9855841.232935\n    test 14 line 3 toEtm8.northing: 6145496.115155\n    test 15 line 3 toEtm8.gamma: 53.348315\n    test 16 line 3 toEtm8.scale: 2.445098\n    test 17 line 3 toEtm8.lat: 19.479896\n    test 18 line 3 toEtm8.lon: 75.662049\n    test 19 line 4 toEtm8.easting: 3206390.691996\n    test 20 line 4 toEtm8.northing: 2650745.400406\n    test 21 line 4 toEtm8.gamma: 11.666950\n    test 22 line 4 toEtm8.scale: 1.129359\n    test 23 line 4 toEtm8.lat: 21.072465\n    test 24 line 4 toEtm8.lon: 29.828684\n    test 25 line 5 toEtm8.easting: 4328154.083501\n    test 26 line 5 toEtm8.northing: 749647.623690\n    test 27 line 5 toEtm8.gamma: 4.024317\n    test 28 line 5 toEtm8.scale: 1.240829\n    test 29 line 5 toEtm8.lat: 5.458957\n    test 30 line 5 toEtm8.lon: 36.385237\n    test 31 line 6 toEtm8.easting: 847598.266514\n    test 32 line 6 toEtm8.northing: 7947180.962440\n    test 33 line 6 toEtm8.gamma: 21.639091\n    test 34 line 6 toEtm8.scale: 1.008399\n    test 35 line 6 toEtm8.lat: 70.175454\n    test 36 line 6 toEtm8.lon: 22.865350\n    test 37 line 7 toEtm8.easting: 2727657.337974\n    test 38 line 7 toEtm8.northing: 8283916.696410\n    test 39 line 7 toEtm8.gamma: 55.690909\n    test 40 line 7 toEtm8.scale: 1.091942\n    test 41 line 7 toEtm8.lat: 61.965605\n    test 42 line 7 toEtm8.lon: 58.931371\n    test 43 line 8 toEtm8.easting: 2331001.751890\n    test 44 line 8 toEtm8.northing: 1313608.224751\n    test 45 line 8 toEtm8.gamma: 4.214690\n    test 46 line 8 toEtm8.scale: 1.067599\n    test 47 line 8 toEtm8.lat: 11.116050\n    test 48 line 8 toEtm8.lon: 20.901069\n    test 49 line 9 toEtm8.easting: 6035557.239480\n    test 50 line 9 toEtm8.northing: 5791770.791879\n    test 51 line 9 toEtm8.gamma: 43.698170\n    test 52 line 9 toEtm8.scale: 1.481260\n    test 53 line 9 toEtm8.lat: 32.210543\n    test 54 line 9 toEtm8.lon: 60.705849\n    test 55 line 10 toEtm8.easting: 1064553.125852\n    test 56 line 10 toEtm8.northing: 9417273.737208\n    test 57 line 10 toEtm8.gamma: 61.100380\n    test 58 line 10 toEtm8.scale: 1.013475\n    test 59 line 10 toEtm8.lat: 79.187451\n    test 60 line 10 toEtm8.lon: 61.532382\n    test 61 line 11 toEtm8.easting: 1400137.116164\n    test 62 line 11 toEtm8.northing: 9616907.017686\n    test 63 line 11 toEtm8.gamma: 74.527087\n    test 64 line 11 toEtm8.scale: 1.023640\n    test 65 line 11 toEtm8.lat: 77.103759\n    test 66 line 11 toEtm8.lon: 74.899105\n    test 67 line 12 toEtm8.easting: 9860691.016626\n    test 68 line 12 toEtm8.northing: 7433039.143328\n    test 69 line 12 toEtm8.gamma: 65.357693\n    test 70 line 12 toEtm8.scale: 2.438973\n    test 71 line 12 toEtm8.lat: 21.889514\n    test 72 line 12 toEtm8.lon: 80.019886\n    test 73 line 13 toEtm8.easting: 8076501.833695\n    test 74 line 13 toEtm8.northing: 8561614.174782\n    test 75 line 13 toEtm8.gamma: 75.073393\n    test 76 line 13 toEtm8.scale: 1.906202\n    test 77 line 13 toEtm8.lat: 30.536296\n    test 78 line 13 toEtm8.lon: 82.186178\n    test 79 line 14 toEtm8.easting: 3335099.866623\n    test 80 line 14 toEtm8.northing: 6740519.084015\n    test 81 line 14 toEtm8.gamma: 40.611821\n    test 82 line 14 toEtm8.scale: 1.139021\n    test 83 line 14 toEtm8.lat: 49.990485\n    test 84 line 14 toEtm8.lon: 48.203179\n    test 85 line 15 toEtm8.easting: 12051574.928500\n    test 86 line 15 toEtm8.northing: 6587213.051951\n    test 87 line 15 toEtm8.gamma: 59.033237\n    test 88 line 15 toEtm8.scale: 3.357469\n    test 89 line 15 toEtm8.lat: 14.486312\n    test 90 line 15 toEtm8.lon: 80.905137\n    test 91 line 16 toEtm8.easting: 5387578.735298\n    test 92 line 16 toEtm8.northing: 4111216.907168\n    test 93 line 16 toEtm8.gamma: 27.574337\n    test 94 line 16 toEtm8.scale: 1.379357\n    test 95 line 16 toEtm8.lat: 25.936824\n    test 96 line 16 toEtm8.lon: 49.913598\n    test 97 line 17 toEtm8.easting: 2622214.380233\n    test 98 line 17 toEtm8.northing: 8678923.984567\n    test 99 line 17 toEtm8.gamma: 61.697275\n    test 100 line 17 toEtm8.scale: 1.084810\n    test 101 line 17 toEtm8.lat: 64.402196\n    test 102 line 17 toEtm8.lon: 64.091395\n    test 103 line 18 toEtm8.easting: 5068474.169633\n    test 104 line 18 toEtm8.northing: 9492066.993709\n    test 105 line 18 toEtm8.gamma: 83.156740\n    test 106 line 18 toEtm8.scale: 1.329990\n    test 107 line 18 toEtm8.lat: 48.451354\n    test 108 line 18 toEtm8.lon: 84.856198\n    test 109 line 19 toEtm8.easting: 738062.047779\n    test 110 line 19 toEtm8.northing: 3031007.074116\n    test 111 line 19 toEtm8.gamma: 3.416802\n    test 112 line 19 toEtm8.scale: 1.006332\n    test 113 line 19 toEtm8.lat: 27.203895\n    test 114 line 19 toEtm8.lon: 7.440229\n    test 115 line 20 toEtm8.easting: 1944413.834565\n    test 116 line 20 toEtm8.northing: 9613299.224493\n    test 117 line 20 toEtm8.gamma: 78.462831\n    test 118 line 20 toEtm8.scale: 1.046134\n    test 119 line 20 toEtm8.lat: 72.509000\n    test 120 line 20 toEtm8.lon: 78.982283\n    test 121 line 21 toEtm8.easting: 2114521.418406\n    test 122 line 21 toEtm8.northing: 4954077.440098\n    test 123 line 21 toEtm8.gamma: 17.571878\n    test 124 line 21 toEtm8.scale: 1.055093\n    test 125 line 21 toEtm8.lat: 41.824954\n    test 126 line 21 toEtm8.lon: 25.392744\n    test 127 line 22 toEtm8.easting: 620365.905090\n    test 128 line 22 toEtm8.northing: 4755542.026562\n    test 129 line 22 toEtm8.gamma: 5.152022\n    test 130 line 22 toEtm8.scale: 1.004338\n    test 131 line 22 toEtm8.lat: 42.701376\n    test 132 line 22 toEtm8.lon: 7.572738\n    test 133 line 23 toEtm8.easting: 263004.770989\n    test 134 line 23 toEtm8.northing: 4493669.762451\n    test 135 line 23 toEtm8.gamma: 2.020523\n    test 136 line 23 toEtm8.scale: 1.000452\n    test 137 line 23 toEtm8.lat: 40.552052\n    test 138 line 23 toEtm8.lon: 3.106056\n    test 139 line 24 toEtm8.easting: 3217221.739462\n    test 140 line 24 toEtm8.northing: 437776.119161\n    test 141 line 24 toEtm8.gamma: 1.848169\n    test 142 line 24 toEtm8.scale: 1.130558\n    test 143 line 24 toEtm8.lat: 3.501242\n    test 144 line 24 toEtm8.lon: 27.806507\n    test 145 line 25 toEtm8.easting: 14661142.444961\n    test 146 line 25 toEtm8.northing: 7476100.824185\n    test 147 line 25 toEtm8.gamma: 68.376669\n    test 148 line 25 toEtm8.scale: 4.896650\n    test 149 line 25 toEtm8.lat: 10.148715\n    test 150 line 25 toEtm8.lon: 85.373768\n    test 151 line 26 toEtm8.easting: 967777.158554\n    test 152 line 26 toEtm8.northing: 6615684.266592\n    test 153 line 26 toEtm8.gamma: 14.410044\n    test 154 line 26 toEtm8.scale: 1.011100\n    test 155 line 26 toEtm8.lat: 58.582623\n    test 156 line 26 toEtm8.lon: 16.755558\n    test 157 line 27 toEtm8.easting: 7558840.728461\n    test 158 line 27 toEtm8.northing: 4144728.130764\n    test 159 line 27 toEtm8.gamma: 32.557264\n    test 160 line 27 toEtm8.scale: 1.791490\n    test 161 line 27 toEtm8.lat: 19.793004\n    test 162 line 27 toEtm8.lon: 61.746763\n    test 163 line 28 toEtm8.easting: 1056008.314161\n    test 164 line 28 toEtm8.northing: 9290799.692669\n    test 165 line 28 toEtm8.gamma: 55.843278\n    test 166 line 28 toEtm8.scale: 1.013253\n    test 167 line 28 toEtm8.lat: 78.666776\n    test 168 line 28 toEtm8.lon: 56.365355\n    test 169 line 29 toEtm8.easting: 1943965.134687\n    test 170 line 29 toEtm8.northing: 1389972.228690\n    test 171 line 29 toEtm8.gamma: 3.774869\n    test 172 line 29 toEtm8.scale: 1.046724\n    test 173 line 29 toEtm8.lat: 11.998788\n    test 174 line 29 toEtm8.lon: 17.597873\n    test 175 line 30 toEtm8.easting: 5803077.072902\n    test 176 line 30 toEtm8.northing: 5649957.943659\n    test 177 line 30 toEtm8.gamma: 41.717943\n    test 178 line 30 toEtm8.scale: 1.442572\n    test 179 line 30 toEtm8.lat: 32.540378\n    test 180 line 30 toEtm8.lon: 58.764613\n    test 181 line 31 toEtm8.easting: 2928716.986009\n    test 182 line 31 toEtm8.northing: 5731835.058317\n    test 183 line 31 toEtm8.gamma: 28.538550\n    test 184 line 31 toEtm8.scale: 1.106780\n    test 185 line 31 toEtm8.lat: 45.160356\n    test 186 line 31 toEtm8.lon: 37.465285\n    test 187 line 32 toEtm8.easting: 326141.975756\n    test 188 line 32 toEtm8.northing: 8881325.164543\n    test 189 line 32 toEtm8.gamma: 16.111415\n    test 190 line 32 toEtm8.scale: 1.000900\n    test 191 line 32 toEtm8.lat: 79.584190\n    test 192 line 32 toEtm8.lon: 16.367006\n    test 193 line 33 toEtm8.easting: 3933015.267450\n    test 194 line 33 toEtm8.northing: 7932373.909512\n    test 195 line 33 toEtm8.gamma: 58.577424\n    test 196 line 33 toEtm8.scale: 1.194811\n    test 197 line 33 toEtm8.lat: 52.470664\n    test 198 line 33 toEtm8.lon: 64.125580\n    test 199 line 34 toEtm8.easting: 8598926.983213\n    test 200 line 34 toEtm8.northing: 6214135.167503\n    test 201 line 34 toEtm8.gamma: 52.612878\n    test 202 line 34 toEtm8.scale: 2.051367\n    test 203 line 34 toEtm8.lat: 23.702673\n    test 204 line 34 toEtm8.lon: 72.630363\n    test 205 line 35 toEtm8.easting: 6620553.333772\n    test 206 line 35 toEtm8.northing: 6540527.122948\n    test 207 line 35 toEtm8.gamma: 52.350140\n    test 208 line 35 toEtm8.scale: 1.586614\n    test 209 line 35 toEtm8.lat: 32.603520\n    test 210 line 35 toEtm8.lon: 67.280123\n    test 211 line 36 toEtm8.easting: 1515136.758292\n    test 212 line 36 toEtm8.northing: 3858996.087537\n    test 213 line 36 toEtm8.gamma: 9.225127\n    test 214 line 36 toEtm8.scale: 1.028029\n    test 215 line 36 toEtm8.lat: 33.776224\n    test 216 line 36 toEtm8.lon: 16.280993\n    test 217 line 37 toEtm8.easting: 479854.373445\n    test 218 line 37 toEtm8.northing: 8980501.389896\n    test 219 line 37 toEtm8.gamma: 25.021222\n    test 220 line 37 toEtm8.scale: 1.002415\n    test 221 line 37 toEtm8.lat: 79.932747\n    test 222 line 37 toEtm8.lon: 25.363622\n    test 223 line 38 toEtm8.easting: 5243446.564940\n    test 224 line 38 toEtm8.northing: 140657.213960\n    test 225 line 38 toEtm8.gamma: 0.862817\n    test 226 line 38 toEtm8.scale: 1.360358\n    test 227 line 38 toEtm8.lat: 0.935056\n    test 228 line 38 toEtm8.lon: 42.538824\n    test 229 line 39 toEtm8.easting: 12806457.923218\n    test 230 line 39 toEtm8.northing: 7170118.684675\n    test 231 line 39 toEtm8.gamma: 64.708921\n    test 232 line 39 toEtm8.scale: 3.740588\n    test 233 line 39 toEtm8.lat: 13.490862\n    test 234 line 39 toEtm8.lon: 83.178380\n    test 235 line 40 toEtm8.easting: 1202993.459158\n    test 236 line 40 toEtm8.northing: 5557316.053599\n    test 237 line 40 toEtm8.gamma: 12.579061\n    test 238 line 40 toEtm8.scale: 1.017426\n    test 239 line 40 toEtm8.lat: 48.979057\n    test 240 line 40 toEtm8.lon: 16.474542\n    test 241 line 41 toEtm8.easting: 1729088.710196\n    test 242 line 41 toEtm8.northing: 7770874.289954\n    test 243 line 41 toEtm8.gamma: 36.021783\n    test 244 line 41 toEtm8.scale: 1.036397\n    test 245 line 41 toEtm8.lat: 65.036016\n    test 246 line 41 toEtm8.lon: 38.729091\n    test 247 line 42 toEtm8.easting: 2437301.517425\n    test 248 line 42 toEtm8.northing: 5539327.748318\n    test 249 line 42 toEtm8.gamma: 23.461879\n    test 250 line 42 toEtm8.scale: 1.073459\n    test 251 line 42 toEtm8.lat: 45.510091\n    test 252 line 42 toEtm8.lon: 31.303729\n    test 253 line 43 toEtm8.easting: 3647186.135066\n    test 254 line 43 toEtm8.northing: 2086412.330983\n    test 255 line 43 toEtm8.gamma: 10.023991\n    test 256 line 43 toEtm8.scale: 1.168707\n    test 257 line 43 toEtm8.lat: 16.058010\n    test 258 line 43 toEtm8.lon: 32.520026\n    test 259 line 44 toEtm8.easting: 1818497.243556\n    test 260 line 44 toEtm8.northing: 4275471.745057\n    test 261 line 44 toEtm8.gamma: 12.499656\n    test 262 line 44 toEtm8.scale: 1.040604\n    test 263 line 44 toEtm8.lat: 36.845200\n    test 264 line 44 toEtm8.lon: 20.282283\n    test 265 line 45 toEtm8.easting: 3751304.113783\n    test 266 line 45 toEtm8.northing: 5130454.001592\n    test 267 line 45 toEtm8.gamma: 28.959707\n    test 268 line 45 toEtm8.scale: 1.177681\n    test 269 line 45 toEtm8.lat: 37.865481\n    test 270 line 45 toEtm8.lon: 41.990402\n    test 271 line 46 toEtm8.easting: 2616733.138544\n    test 272 line 46 toEtm8.northing: 394644.463815\n    test 273 line 46 toEtm8.gamma: 1.390425\n    test 274 line 46 toEtm8.scale: 1.085595\n    test 275 line 46 toEtm8.lat: 3.287272\n    test 276 line 46 toEtm8.lon: 22.917604\n    test 277 line 47 toEtm8.easting: 1756506.573942\n    test 278 line 47 toEtm8.northing: 5570393.986394\n    test 279 line 47 toEtm8.gamma: 17.897894\n    test 280 line 47 toEtm8.scale: 1.037732\n    test 281 line 47 toEtm8.lat: 47.813686\n    test 282 line 47 toEtm8.lon: 23.545092\n    test 283 line 48 toEtm8.easting: 8752461.894711\n    test 284 line 48 toEtm8.northing: 6087728.152284\n    test 285 line 48 toEtm8.gamma: 51.628465\n    test 286 line 48 toEtm8.scale: 2.095465\n    test 287 line 48 toEtm8.lat: 22.836853\n    test 288 line 48 toEtm8.lon: 72.604385\n    test 289 line 49 toEtm8.easting: 1309272.216432\n    test 290 line 49 toEtm8.northing: 59520.028899\n    test 291 line 49 toEtm8.gamma: 0.109069\n    test 292 line 49 toEtm8.scale: 1.020897\n    test 293 line 49 toEtm8.lat: 0.527262\n    test 294 line 49 toEtm8.lon: 11.684209\n    test 295 line 50 toEtm8.easting: 328652.277129\n    test 296 line 50 toEtm8.northing: 2233043.958874\n    test 297 line 50 toEtm8.gamma: 1.084863\n    test 298 line 50 toEtm8.scale: 1.000935\n    test 299 line 50 toEtm8.lat: 20.166742\n    test 300 line 50 toEtm8.lon: 3.143948\n    test 301 line 51 toEtm8.easting: 8637959.716447\n    test 302 line 51 toEtm8.northing: 9190635.156031\n    test 303 line 51 toEtm8.gamma: 81.802563\n    test 304 line 51 toEtm8.scale: 2.054329\n    test 305 line 51 toEtm8.lat: 28.604629\n    test 306 line 51 toEtm8.lon: 85.988721\n    test 307 line 52 toEtm8.easting: 8548521.455147\n    test 308 line 52 toEtm8.northing: 9172410.943282\n    test 309 line 52 toEtm8.gamma: 81.583928\n    test 310 line 52 toEtm8.scale: 2.029641\n    test 311 line 52 toEtm8.lat: 28.984048\n    test 312 line 52 toEtm8.lon: 85.833448\n    test 313 line 53 toEtm8.easting: 796987.281104\n    test 314 line 53 toEtm8.northing: 7677446.357675\n    test 315 line 53 toEtm8.gamma: 18.084472\n    test 316 line 53 toEtm8.scale: 1.007381\n    test 317 line 53 toEtm8.lat: 68.071020\n    test 318 line 53 toEtm8.lon: 19.392823\n    test 319 line 54 toEtm8.easting: 3291036.496762\n    test 320 line 54 toEtm8.northing: 9513199.600666\n    test 321 line 54 toEtm8.gamma: 80.890254\n    test 322 line 54 toEtm8.scale: 1.134826\n    test 323 line 54 toEtm8.lat: 61.416576\n    test 324 line 54 toEtm8.lon: 81.981611\n    test 325 line 55 toEtm8.easting: 7087225.330906\n    test 326 line 55 toEtm8.northing: 8382823.855822\n    test 327 line 55 toEtm8.gamma: 72.253756\n    test 328 line 55 toEtm8.scale: 1.678070\n    test 329 line 55 toEtm8.lat: 35.074753\n    test 330 line 55 toEtm8.lon: 79.496003\n    test 331 line 56 toEtm8.easting: 5090358.125724\n    test 332 line 56 toEtm8.northing: 4318294.133489\n    test 333 line 56 toEtm8.gamma: 28.266280\n    test 334 line 56 toEtm8.scale: 1.336264\n    test 335 line 56 toEtm8.lat: 28.078790\n    test 336 line 56 toEtm8.lon: 48.684350\n\n    test skipped (1): line 57 toEtm8.'84.986930137199 2.067177857261 20163.0752214330146 9438635.9888499043815 2.059277291707588222 .99960496589466017622'\n    test 337 line 58 toEtm8.easting: 3447670.550785\n    test 338 line 58 toEtm8.northing: 3680238.888223\n    test 339 line 58 toEtm8.gamma: 17.934948\n    test 340 line 58 toEtm8.scale: 1.149831\n    test 341 line 58 toEtm8.lat: 28.473948\n    test 342 line 58 toEtm8.lon: 34.127306\n    test 343 line 59 toEtm8.easting: 3396522.906798\n    test 344 line 59 toEtm8.northing: 8093659.687593\n    test 345 line 59 toEtm8.gamma: 57.747117\n    test 346 line 59 toEtm8.scale: 1.144006\n    test 347 line 59 toEtm8.lat: 56.629354\n    test 348 line 59 toEtm8.lon: 62.196474\n    test 349 line 60 toEtm8.easting: 11249894.100784\n    test 350 line 60 toEtm8.northing: 1619226.506299\n    test 351 line 60 toEtm8.gamma: 14.210358\n    test 352 line 60 toEtm8.scale: 3.048347\n    test 353 line 60 toEtm8.lat: 4.747762\n    test 354 line 60 toEtm8.lon: 70.932555\n    test 355 line 61 toEtm8.easting: 6808805.230950\n    test 356 line 61 toEtm8.northing: 8044779.777369\n    test 357 line 61 toEtm8.gamma: 68.242008\n    test 358 line 61 toEtm8.scale: 1.621464\n    test 359 line 61 toEtm8.lat: 35.882113\n    test 360 line 61 toEtm8.lon: 76.741849\n    test 361 line 62 toEtm8.easting: 2306021.556506\n    test 362 line 62 toEtm8.northing: 757191.592866\n    test 363 line 62 toEtm8.gamma: 2.385686\n    test 364 line 62 toEtm8.scale: 1.066159\n    test 365 line 62 toEtm8.lat: 6.420705\n    test 366 line 62 toEtm8.lon: 20.416028\n    test 367 line 63 toEtm8.easting: 1547406.313862\n    test 368 line 63 toEtm8.northing: 6048712.751824\n    test 369 line 63 toEtm8.gamma: 18.474372\n    test 370 line 63 toEtm8.scale: 1.029123\n    test 371 line 63 toEtm8.lat: 52.335248\n    test 372 line 63 toEtm8.lon: 22.879294\n    test 373 line 64 toEtm8.easting: 2430467.650383\n    test 374 line 64 toEtm8.northing: 7557167.613972\n    test 375 line 64 toEtm8.gamma: 42.110021\n    test 376 line 64 toEtm8.scale: 1.072759\n    test 377 line 64 toEtm8.lat: 59.846391\n    test 378 line 64 toEtm8.lon: 46.262536\n    test 379 line 65 toEtm8.easting: 2334053.905830\n    test 380 line 65 toEtm8.northing: 1948076.966582\n    test 381 line 65 toEtm8.gamma: 6.353185\n    test 382 line 65 toEtm8.scale: 1.067733\n    test 383 line 65 toEtm8.lat: 16.461790\n    test 384 line 65 toEtm8.lon: 21.433269\n    test 385 line 66 toEtm8.easting: 5564175.186737\n    test 386 line 66 toEtm8.northing: 1836851.660412\n    test 387 line 66 toEtm8.gamma: 11.870682\n    test 388 line 66 toEtm8.scale: 1.408265\n    test 389 line 66 toEtm8.lat: 11.707905\n    test 390 line 66 toEtm8.lon: 45.827075\n    test 391 line 67 toEtm8.easting: 6118505.590359\n    test 392 line 67 toEtm8.northing: 7631684.552421\n    test 393 line 67 toEtm8.gamma: 62.477323\n    test 394 line 67 toEtm8.scale: 1.493420\n    test 395 line 67 toEtm8.lat: 38.519075\n    test 396 line 67 toEtm8.lon: 71.935918\n    test 397 line 68 toEtm8.easting: 7365359.294665\n    test 398 line 68 toEtm8.northing: 8818194.451531\n    test 399 line 68 toEtm8.gamma: 77.207042\n    test 400 line 68 toEtm8.scale: 1.737639\n    test 401 line 68 toEtm8.lat: 34.264007\n    test 402 line 68 toEtm8.lon: 82.647878\n    test 403 line 69 toEtm8.easting: 36187.342415\n    test 404 line 69 toEtm8.northing: 2142565.324802\n    test 405 line 69 toEtm8.gamma: 0.114334\n    test 406 line 69 toEtm8.scale: 0.999616\n    test 407 line 69 toEtm8.lat: 19.376880\n    test 408 line 69 toEtm8.lon: 0.344605\n    test 409 line 70 toEtm8.easting: 2380328.546851\n    test 410 line 70 toEtm8.northing: 8440109.872384\n    test 411 line 70 toEtm8.gamma: 55.076067\n    test 412 line 70 toEtm8.scale: 1.069658\n    test 413 line 70 toEtm8.lat: 65.075805\n    test 414 line 70 toEtm8.lon: 57.653438\n    test 415 line 71 toEtm8.easting: 582511.608826\n    test 416 line 71 toEtm8.northing: 8876047.217071\n    test 417 line 71 toEtm8.gamma: 27.133300\n    test 418 line 71 toEtm8.scale: 1.003749\n    test 419 line 71 toEtm8.lat: 78.691870\n    test 420 line 71 toEtm8.lon: 27.591736\n    test 421 line 72 toEtm8.easting: 899441.350477\n    test 422 line 72 toEtm8.northing: 4582046.430516\n    test 423 line 72 toEtm8.gamma: 7.031211\n    test 424 line 72 toEtm8.scale: 1.009573\n    test 425 line 72 toEtm8.lat: 40.893022\n    test 426 line 72 toEtm8.lon: 10.668804\n    test 427 line 73 toEtm8.easting: 5022485.124337\n    test 428 line 73 toEtm8.northing: 9741774.933721\n    test 429 line 73 toEtm8.gamma: 86.505947\n    test 430 line 73 toEtm8.scale: 1.323700\n    test 431 line 73 toEtm8.lat: 48.914279\n    test 432 line 73 toEtm8.lon: 87.359268\n    test 433 line 74 toEtm8.easting: 6701004.587204\n    test 434 line 74 toEtm8.northing: 2954368.258231\n    test 435 line 74 toEtm8.gamma: 21.560153\n    test 436 line 74 toEtm8.scale: 1.608554\n    test 437 line 74 toEtm8.lat: 16.208377\n    test 438 line 74 toEtm8.lon: 54.494282\n    test 439 line 75 toEtm8.easting: 454986.218897\n    test 440 line 75 toEtm8.northing: 4885087.887884\n    test 441 line 75 toEtm8.gamma: 3.945648\n    test 442 line 75 toEtm8.scale: 1.002147\n    test 443 line 75 toEtm8.lat: 43.977936\n    test 444 line 75 toEtm8.lon: 5.672541\n    test 445 line 76 toEtm8.easting: 8903956.140311\n    test 446 line 76 toEtm8.northing: 8470608.577482\n    test 447 line 76 toEtm8.gamma: 74.723116\n    test 448 line 76 toEtm8.scale: 2.131311\n    test 449 line 76 toEtm8.lat: 26.850861\n    test 450 line 76 toEtm8.lon: 82.834480\n    test 451 line 77 toEtm8.easting: 1547627.594741\n    test 452 line 77 toEtm8.northing: 6036584.538347\n    test 453 line 77 toEtm8.gamma: 18.407629\n    test 454 line 77 toEtm8.scale: 1.029132\n    test 455 line 77 toEtm8.lat: 52.234165\n    test 456 line 77 toEtm8.lon: 22.827655\n    test 457 line 78 toEtm8.easting: 5221488.778597\n    test 458 line 78 toEtm8.northing: 1762592.044392\n    test 459 line 78 toEtm8.gamma: 10.927880\n    test 460 line 78 toEtm8.scale: 1.356721\n    test 461 line 78 toEtm8.lat: 11.674646\n    test 462 line 78 toEtm8.lon: 43.500147\n    test 463 line 79 toEtm8.easting: 4880570.297161\n    test 464 line 79 toEtm8.northing: 3325433.988867\n    test 465 line 79 toEtm8.gamma: 20.469862\n    test 466 line 79 toEtm8.scale: 1.308476\n    test 467 line 79 toEtm8.lat: 22.492753\n    test 468 line 79 toEtm8.lon: 44.179153\n    test 469 line 80 toEtm8.easting: 23930680.082694\n    test 470 line 80 toEtm8.northing: 7491462.099038\n    test 471 line 80 toEtm8.gamma: 75.937628\n    test 472 line 80 toEtm8.scale: 15.556365\n    test 473 line 80 toEtm8.lat: 0.910999\n    test 474 line 80 toEtm8.lon: 88.548823\n    test 475 line 81 toEtm8.easting: 71519.450458\n    test 476 line 81 toEtm8.northing: 3654740.444852\n    test 477 line 81 toEtm8.gamma: 0.417448\n    test 478 line 81 toEtm8.scale: 0.999663\n    test 479 line 81 toEtm8.lat: 33.028802\n    test 480 line 81 toEtm8.lon: 0.765843\n    test 481 line 82 toEtm8.easting: 4152797.795220\n    test 482 line 82 toEtm8.northing: 7823098.502751\n    test 483 line 82 toEtm8.gamma: 58.238901\n    test 484 line 82 toEtm8.scale: 1.218052\n    test 485 line 82 toEtm8.lat: 50.649195\n    test 486 line 82 toEtm8.lon: 64.389076\n    test 487 line 83 toEtm8.easting: 2926725.707639\n    test 488 line 83 toEtm8.northing: 7904918.072844\n    test 489 line 83 toEtm8.gamma: 51.592748\n    test 490 line 83 toEtm8.scale: 1.106206\n    test 491 line 83 toEtm8.lat: 58.820640\n    test 492 line 83 toEtm8.lon: 55.841048\n    test 493 line 84 toEtm8.easting: 1325509.113869\n    test 494 line 84 toEtm8.northing: 9675214.948213\n    test 495 line 84 toEtm8.gamma: 76.116213\n    test 496 line 84 toEtm8.scale: 1.021136\n    test 497 line 84 toEtm8.lat: 77.865762\n    test 498 line 84 toEtm8.lon: 76.414618\n    test 499 line 85 toEtm8.easting: 3045296.448926\n    test 500 line 85 toEtm8.northing: 542153.443280\n    test 501 line 85 toEtm8.gamma: 2.185095\n    test 502 line 85 toEtm8.scale: 1.116664\n    test 503 line 85 toEtm8.lat: 4.389639\n    test 504 line 85 toEtm8.lon: 26.458976\n    test 505 line 86 toEtm8.easting: 11843870.887518\n    test 506 line 86 toEtm8.northing: 5912803.073343\n    test 507 line 86 toEtm8.gamma: 52.814259\n    test 508 line 86 toEtm8.scale: 3.267256\n    test 509 line 86 toEtm8.lat: 13.924448\n    test 510 line 86 toEtm8.lon: 79.017873\n    test 511 line 87 toEtm8.easting: 8891099.704936\n    test 512 line 87 toEtm8.northing: 162160.142227\n    test 513 line 87 toEtm8.gamma: 1.312094\n    test 514 line 87 toEtm8.scale: 2.157363\n    test 515 line 87 toEtm8.lat: 0.679713\n    test 516 line 87 toEtm8.lon: 62.036792\n    test 517 line 88 toEtm8.easting: 4784814.214449\n    test 518 line 88 toEtm8.northing: 2984497.432580\n    test 519 line 88 toEtm8.gamma: 17.946545\n    test 520 line 88 toEtm8.scale: 1.296116\n    test 521 line 88 toEtm8.lat: 20.478281\n    test 522 line 88 toEtm8.lon: 42.678234\n    test 523 line 89 toEtm8.easting: 1772074.682154\n    test 524 line 89 toEtm8.northing: 9491552.560143\n    test 525 line 89 toEtm8.gamma: 73.634830\n    test 526 line 89 toEtm8.scale: 1.038202\n    test 527 line 89 toEtm8.lat: 73.695703\n    test 528 line 89 toEtm8.lon: 74.259097\n    test 529 line 90 toEtm8.easting: 1907649.782106\n    test 530 line 90 toEtm8.northing: 6994232.429379\n    test 531 line 90 toEtm8.gamma: 29.718929\n    test 532 line 90 toEtm8.scale: 1.044503\n    test 533 line 90 toEtm8.lat: 58.569370\n    test 534 line 90 toEtm8.lon: 33.777549\n    test 535 line 91 toEtm8.easting: 2084423.818962\n    test 536 line 91 toEtm8.northing: 2211816.035619\n    test 537 line 91 toEtm8.gamma: 6.556448\n    test 538 line 91 toEtm8.scale: 1.053793\n    test 539 line 91 toEtm8.lat: 18.933881\n    test 540 line 91 toEtm8.lon: 19.492695\n    test 541 line 92 toEtm8.easting: 1064373.671729\n    test 542 line 92 toEtm8.northing: 7812482.547461\n    test 543 line 92 toEtm8.gamma: 24.874124\n    test 544 line 92 toEtm8.scale: 1.013490\n    test 545 line 92 toEtm8.lat: 68.317934\n    test 546 line 92 toEtm8.lon: 26.515687\n    test 547 line 93 toEtm8.easting: 4770385.479297\n    test 548 line 93 toEtm8.northing: 9734318.902980\n    test 549 line 93 toEtm8.gamma: 86.273119\n    test 550 line 93 toEtm8.scale: 1.290553\n    test 551 line 93 toEtm8.lat: 50.641941\n    test 552 line 93 toEtm8.lon: 87.111557\n    test 553 line 94 toEtm8.easting: 6398096.677297\n    test 554 line 94 toEtm8.northing: 4410894.752104\n    test 555 line 94 toEtm8.gamma: 32.558023\n    test 556 line 94 toEtm8.scale: 1.548004\n    test 557 line 94 toEtm8.lat: 24.411298\n    test 558 line 94 toEtm8.lon: 56.881823\n    test 559 line 95 toEtm8.easting: 3138623.300415\n    test 560 line 95 toEtm8.northing: 3082960.600798\n    test 561 line 95 toEtm8.gamma: 13.557672\n    test 562 line 95 toEtm8.scale: 1.123724\n    test 563 line 95 toEtm8.lat: 24.571871\n    test 564 line 95 toEtm8.lon: 30.073097\n    test 565 line 96 toEtm8.easting: 2748325.794651\n    test 566 line 96 toEtm8.northing: 4202811.912668\n    test 567 line 96 toEtm8.gamma: 17.578706\n    test 568 line 96 toEtm8.scale: 1.094102\n    test 569 line 96 toEtm8.lat: 34.202576\n    test 570 line 96 toEtm8.lon: 29.383166\n    test 571 line 97 toEtm8.easting: 6677830.630367\n    test 572 line 97 toEtm8.northing: 5350071.837395\n    test 573 line 97 toEtm8.gamma: 41.306641\n    test 574 line 97 toEtm8.scale: 1.599774\n    test 575 line 97 toEtm8.lat: 27.756285\n    test 576 line 97 toEtm8.lon: 61.881905\n    test 577 line 98 toEtm8.easting: 5941536.667431\n    test 578 line 98 toEtm8.northing: 3293112.175140\n    test 579 line 98 toEtm8.gamma: 22.752845\n    test 580 line 98 toEtm8.scale: 1.468473\n    test 581 line 98 toEtm8.lat: 19.742270\n    test 582 line 98 toEtm8.lon: 50.957821\n    test 583 line 99 toEtm8.easting: 3152481.792567\n    test 584 line 99 toEtm8.northing: 5903048.837978\n    test 585 line 99 toEtm8.gamma: 31.494606\n    test 586 line 99 toEtm8.scale: 1.124085\n    test 587 line 99 toEtm8.lat: 45.453582\n    test 588 line 99 toEtm8.lon: 40.659833\n    test 589 line 100 toEtm8.easting: 10460475.897730\n    test 590 line 100 toEtm8.northing: 2553463.624391\n    test 591 line 100 toEtm8.gamma: 21.965869\n    test 592 line 100 toEtm8.scale: 2.700296\n    test 593 line 100 toEtm8.lat: 8.322144\n    test 594 line 100 toEtm8.lon: 69.488157\n    test 595 line 101 toEtm8.easting: 1964010.778021\n    test 596 line 101 toEtm8.northing: 5634042.923056\n    test 597 line 101 toEtm8.gamma: 20.117800\n    test 598 line 101 toEtm8.scale: 1.047344\n    test 599 line 101 toEtm8.lat: 47.749831\n    test 600 line 101 toEtm8.lon: 26.322002\n    test 601 line 102 toEtm8.easting: 2065306.424934\n    test 602 line 102 toEtm8.northing: 2135008.468651\n    test 603 line 102 toEtm8.gamma: 6.258981\n    test 604 line 102 toEtm8.scale: 1.052800\n    test 605 line 102 toEtm8.lat: 18.297493\n    test 606 line 102 toEtm8.lon: 19.244669\n    test 607 line 103 toEtm8.easting: 5127738.132976\n    test 608 line 103 toEtm8.northing: 6793804.304411\n    test 609 line 103 toEtm8.gamma: 50.557915\n    test 610 line 103 toEtm8.scale: 1.339412\n    test 611 line 103 toEtm8.lat: 40.834541\n    test 612 line 103 toEtm8.lon: 61.650750\n    test 613 line 104 toEtm8.easting: 8385525.148166\n    test 614 line 104 toEtm8.northing: 6924932.344306\n    test 615 line 104 toEtm8.gamma: 59.087561\n    test 616 line 104 toEtm8.scale: 1.990364\n    test 617 line 104 toEtm8.lat: 26.273247\n    test 618 line 104 toEtm8.lon: 74.926694\n    test 619 line 105 toEtm8.easting: 2297510.791909\n    test 620 line 105 toEtm8.northing: 2805666.962834\n    test 621 line 105 toEtm8.gamma: 9.301553\n    test 622 line 105 toEtm8.scale: 1.065508\n    test 623 line 105 toEtm8.lat: 23.698347\n    test 624 line 105 toEtm8.lon: 22.155657\n    test 625 line 106 toEtm8.easting: 13749544.917635\n    test 626 line 106 toEtm8.northing: 8288728.384650\n    test 627 line 106 toEtm8.gamma: 75.033970\n    test 628 line 106 toEtm8.scale: 4.270588\n    test 629 line 106 toEtm8.lat: 12.364113\n    test 630 line 106 toEtm8.lon: 86.348578\n    test 631 line 107 toEtm8.easting: 317518.455546\n    test 632 line 107 toEtm8.northing: 1097517.583745\n    test 633 line 107 toEtm8.gamma: 0.499004\n    test 634 line 107 toEtm8.scale: 1.000848\n    test 635 line 107 toEtm8.lat: 9.916091\n    test 636 line 107 toEtm8.lon: 2.895277\n    test 637 line 108 toEtm8.easting: 3856035.184888\n    test 638 line 108 toEtm8.northing: 9141364.450290\n    test 639 line 108 toEtm8.gamma: 75.972763\n    test 640 line 108 toEtm8.scale: 1.186786\n    test 641 line 108 toEtm8.lat: 56.553876\n    test 642 line 108 toEtm8.lon: 78.215077\n    test 643 line 109 toEtm8.easting: 1457484.942823\n    test 644 line 109 toEtm8.northing: 9385297.101973\n    test 645 line 109 toEtm8.gamma: 66.784662\n    test 646 line 109 toEtm8.scale: 1.025660\n    test 647 line 109 toEtm8.lat: 75.957631\n    test 648 line 109 toEtm8.lon: 67.407383\n    test 649 line 110 toEtm8.easting: 1304934.901841\n    test 650 line 110 toEtm8.northing: 3604655.155715\n    test 651 line 110 toEtm8.gamma: 7.343989\n    test 652 line 110 toEtm8.scale: 1.020672\n    test 653 line 110 toEtm8.lat: 31.826531\n    test 654 line 110 toEtm8.lon: 13.731050\n    test 655 line 111 toEtm8.easting: 1399093.491792\n    test 656 line 111 toEtm8.northing: 8314607.120342\n    test 657 line 111 toEtm8.gamma: 38.630161\n    test 658 line 111 toEtm8.scale: 1.023625\n    test 659 line 111 toEtm8.lat: 70.542985\n    test 660 line 111 toEtm8.lon: 40.282055\n    test 661 line 112 toEtm8.easting: 356983.618540\n    test 662 line 112 toEtm8.northing: 4282309.048994\n    test 663 line 112 toEtm8.gamma: 2.561485\n    test 664 line 112 toEtm8.scale: 1.001170\n    test 665 line 112 toEtm8.lat: 38.617487\n    test 666 line 112 toEtm8.lon: 4.099838\n    test 667 line 113 toEtm8.easting: 9952911.325091\n    test 668 line 113 toEtm8.northing: 1510288.212229\n    test 669 line 113 toEtm8.gamma: 12.752154\n    test 670 line 113 toEtm8.scale: 2.511357\n    test 671 line 113 toEtm8.lat: 5.389447\n    test 672 line 113 toEtm8.lon: 66.729612\n    test 673 line 114 toEtm8.easting: 6367592.504007\n    test 674 line 114 toEtm8.northing: 1200437.077672\n    test 675 line 114 toEtm8.gamma: 8.338041\n    test 676 line 114 toEtm8.scale: 1.546210\n    test 677 line 114 toEtm8.lat: 6.995168\n    test 678 line 114 toEtm8.lon: 50.014763\n    test 679 line 115 toEtm8.easting: 4391263.676460\n    test 680 line 115 toEtm8.northing: 6325455.989408\n    test 681 line 115 toEtm8.gamma: 42.653541\n    test 682 line 115 toEtm8.scale: 1.245560\n    test 683 line 115 toEtm8.lat: 42.321894\n    test 684 line 115 toEtm8.lon: 53.784040\n    test 685 line 116 toEtm8.easting: 6209880.527527\n    test 686 line 116 toEtm8.northing: 2154754.449747\n    test 687 line 116 toEtm8.gamma: 14.919512\n    test 688 line 116 toEtm8.scale: 1.516560\n    test 689 line 116 toEtm8.lat: 12.698515\n    test 690 line 116 toEtm8.lon: 50.242047\n    test 691 line 117 toEtm8.easting: 1507053.688772\n    test 692 line 117 toEtm8.northing: 6261383.513280\n    test 693 line 117 toEtm8.gamma: 19.280373\n    test 694 line 117 toEtm8.scale: 1.027584\n    test 695 line 117 toEtm8.lat: 54.207636\n    test 696 line 117 toEtm8.lon: 23.325731\n    test 697 line 118 toEtm8.easting: 8332725.003777\n    test 698 line 118 toEtm8.northing: 3002712.329753\n    test 699 line 118 toEtm8.gamma: 24.059212\n    test 700 line 118 toEtm8.scale: 1.990450\n    test 701 line 118 toEtm8.lat: 13.224787\n    test 702 line 118 toEtm8.lon: 62.426698\n    test 703 line 119 toEtm8.easting: 3958910.085235\n    test 704 line 119 toEtm8.northing: 3462284.926102\n    test 705 line 119 toEtm8.gamma: 18.546398\n    test 706 line 119 toEtm8.scale: 1.199351\n    test 707 line 119 toEtm8.lat: 25.650282\n    test 708 line 119 toEtm8.lon: 37.710391\n    test 709 line 120 toEtm8.easting: 10452892.282083\n    test 710 line 120 toEtm8.northing: 8000059.605114\n    test 711 line 120 toEtm8.gamma: 71.075240\n    test 712 line 120 toEtm8.scale: 2.650111\n    test 713 line 120 toEtm8.lat: 20.684773\n    test 714 line 120 toEtm8.lon: 82.849734\n    test 715 line 121 toEtm8.easting: 496148.253731\n    test 716 line 121 toEtm8.northing: 6388503.365043\n    test 717 line 121 toEtm8.gamma: 6.970955\n    test 718 line 121 toEtm8.scale: 1.002620\n    test 719 line 121 toEtm8.lat: 57.367533\n    test 720 line 121 toEtm8.lon: 8.260866\n    test 721 line 122 toEtm8.easting: 7375792.085850\n    test 722 line 122 toEtm8.northing: 5544624.072155\n    test 723 line 122 toEtm8.gamma: 44.510851\n    test 724 line 122 toEtm8.scale: 1.745898\n    test 725 line 122 toEtm8.lat: 25.958757\n    test 726 line 122 toEtm8.lon: 65.760477\n    test 727 line 123 toEtm8.easting: 2826258.041979\n    test 728 line 123 toEtm8.northing: 5167759.816959\n    test 729 line 123 toEtm8.gamma: 23.783897\n    test 730 line 123 toEtm8.scale: 1.099415\n    test 731 line 123 toEtm8.lat: 41.395848\n    test 732 line 123 toEtm8.lon: 33.661790\n    test 733 line 124 toEtm8.easting: 3958563.378851\n    test 734 line 124 toEtm8.northing: 8499923.231243\n    test 735 line 124 toEtm8.gamma: 66.570945\n    test 736 line 124 toEtm8.scale: 1.197296\n    test 737 line 124 toEtm8.lat: 54.266617\n    test 738 line 124 toEtm8.lon: 70.602199\n    test 739 line 125 toEtm8.easting: 4408189.533462\n    test 740 line 125 toEtm8.northing: 8046312.003642\n    test 741 line 125 toEtm8.gamma: 62.216959\n    test 742 line 125 toEtm8.scale: 1.246750\n    test 743 line 125 toEtm8.lat: 49.840393\n    test 744 line 125 toEtm8.lon: 68.036728\n    test 745 line 126 toEtm8.easting: 3629225.627512\n    test 746 line 126 toEtm8.northing: 6371258.454645\n    test 747 line 126 toEtm8.gamma: 38.881675\n    test 748 line 126 toEtm8.scale: 1.165511\n    test 749 line 126 toEtm8.lat: 46.306035\n    test 750 line 126 toEtm8.lon: 48.085828\n    test 751 line 127 toEtm8.easting: 602838.450710\n    test 752 line 127 toEtm8.northing: 4851370.637205\n    test 753 line 127 toEtm8.gamma: 5.160395\n    test 754 line 127 toEtm8.scale: 1.004073\n    test 755 line 127 toEtm8.lat: 43.570988\n    test 756 line 127 toEtm8.lon: 7.464494\n    test 757 line 128 toEtm8.easting: 764616.665051\n    test 758 line 128 toEtm8.northing: 2164299.337945\n    test 759 line 128 toEtm8.gamma: 2.429300\n    test 760 line 128 toEtm8.scale: 1.006835\n    test 761 line 128 toEtm8.lat: 19.427290\n    test 762 line 128 toEtm8.lon: 7.268247\n    test 763 line 129 toEtm8.easting: 5048953.021931\n    test 764 line 129 toEtm8.northing: 1885974.057398\n    test 765 line 129 toEtm8.gamma: 11.459804\n    test 766 line 129 toEtm8.scale: 1.332207\n    test 767 line 129 toEtm8.lat: 12.713794\n    test 768 line 129 toEtm8.lon: 42.507018\n    test 769 line 130 toEtm8.easting: 2293996.601155\n    test 770 line 130 toEtm8.northing: 2392408.644221\n    test 771 line 130 toEtm8.gamma: 7.791838\n    test 772 line 130 toEtm8.scale: 1.065348\n    test 773 line 130 toEtm8.lat: 20.238782\n    test 774 line 130 toEtm8.lon: 21.566068\n    test 775 line 131 toEtm8.easting: 1530603.839418\n    test 776 line 131 toEtm8.northing: 7287841.459898\n    test 777 line 131 toEtm8.gamma: 27.502921\n    test 778 line 131 toEtm8.scale: 1.028416\n    test 779 line 131 toEtm8.lat: 62.367847\n    test 780 line 131 toEtm8.lon: 30.438849\n    test 781 line 132 toEtm8.easting: 2660000.093152\n    test 782 line 132 toEtm8.northing: 5161982.213248\n    test 783 line 132 toEtm8.gamma: 22.629836\n    test 784 line 132 toEtm8.scale: 1.087851\n    test 785 line 132 toEtm8.lat: 41.891569\n    test 786 line 132 toEtm8.lon: 31.959547\n    test 787 line 133 toEtm8.easting: 5037478.329414\n    test 788 line 133 toEtm8.northing: 8768172.379908\n    test 789 line 133 toEtm8.gamma: 73.511182\n    test 790 line 133 toEtm8.scale: 1.325919\n    test 791 line 133 toEtm8.lat: 47.664248\n    test 792 line 133 toEtm8.lon: 77.630062\n    test 793 line 134 toEtm8.easting: 2289650.957799\n    test 794 line 134 toEtm8.northing: 8784328.593607\n    test 795 line 134 toEtm8.gamma: 60.786067\n    test 796 line 134 toEtm8.scale: 1.064346\n    test 797 line 134 toEtm8.lat: 67.259559\n    test 798 line 134 toEtm8.lon: 62.715293\n    test 799 line 135 toEtm8.easting: 647913.889744\n    test 800 line 135 toEtm8.northing: 6742382.228217\n    test 801 line 135 toEtm8.gamma: 10.252667\n    test 802 line 135 toEtm8.scale: 1.004748\n    test 803 line 135 toEtm8.lat: 60.295381\n    test 804 line 135 toEtm8.lon: 11.763097\n    test 805 line 136 toEtm8.easting: 1118372.698566\n    test 806 line 136 toEtm8.northing: 9040627.942263\n    test 807 line 136 toEtm8.gamma: 48.936803\n    test 808 line 136 toEtm8.scale: 1.014920\n    test 809 line 136 toEtm8.lat: 76.878914\n    test 810 line 136 toEtm8.lon: 49.685773\n    test 811 line 137 toEtm8.easting: 440696.510070\n    test 812 line 137 toEtm8.northing: 5500355.826297\n    test 813 line 137 toEtm8.gamma: 4.636104\n    test 814 line 137 toEtm8.scale: 1.001986\n    test 815 line 137 toEtm8.lat: 49.495349\n    test 816 line 137 toEtm8.lon: 6.087551\n    test 817 line 138 toEtm8.easting: 601728.149727\n    test 818 line 138 toEtm8.northing: 9095352.048149\n    test 819 line 138 toEtm8.gamma: 33.435771\n    test 820 line 138 toEtm8.scale: 1.004027\n    test 821 line 138 toEtm8.lat: 80.297265\n    test 822 line 138 toEtm8.lon: 33.816372\n    test 823 line 139 toEtm8.easting: 3481444.777827\n    test 824 line 139 toEtm8.northing: 291665.708749\n    test 825 line 139 toEtm8.gamma: 1.314726\n    test 826 line 139 toEtm8.scale: 1.153534\n    test 827 line 139 toEtm8.lat: 2.286437\n    test 828 line 139 toEtm8.lon: 29.855149\n    test 829 line 140 toEtm8.easting: 3515304.901524\n    test 830 line 140 toEtm8.northing: 1443981.882918\n    test 831 line 140 toEtm8.gamma: 6.641638\n    test 832 line 140 toEtm8.scale: 1.156509\n    test 833 line 140 toEtm8.lat: 11.264457\n    test 834 line 140 toEtm8.lon: 30.743907\n    test 835 line 141 toEtm8.easting: 160012.186959\n    test 836 line 141 toEtm8.northing: 3922609.253231\n    test 837 line 141 toEtm8.gamma: 1.022225\n    test 838 line 141 toEtm8.scale: 0.999916\n    test 839 line 141 toEtm8.lat: 35.434073\n    test 840 line 141 toEtm8.lon: 1.762795\n    test 841 line 142 toEtm8.easting: 4163744.245622\n    test 842 line 142 toEtm8.northing: 936884.674804\n    test 843 line 142 toEtm8.gamma: 4.892559\n    test 844 line 142 toEtm8.scale: 1.222164\n    test 845 line 142 toEtm8.lat: 6.923695\n    test 846 line 142 toEtm8.lon: 35.289456\n    test 847 line 143 toEtm8.easting: 6155200.017926\n    test 848 line 143 toEtm8.northing: 6926306.628390\n    test 849 line 143 toEtm8.gamma: 55.103258\n    test 850 line 143 toEtm8.scale: 1.500556\n    test 851 line 143 toEtm8.lat: 36.129672\n    test 852 line 143 toEtm8.lon: 67.533176\n    test 853 line 144 toEtm8.easting: 16263383.285440\n    test 854 line 144 toEtm8.northing: 3591296.731341\n    test 855 line 144 toEtm8.gamma: 36.040254\n    test 856 line 144 toEtm8.scale: 6.589288\n    test 857 line 144 toEtm8.lat: 4.406529\n    test 858 line 144 toEtm8.lon: 81.965734\n    test 859 line 145 toEtm8.easting: 14220995.515398\n    test 860 line 145 toEtm8.northing: 5100587.457503\n    test 861 line 145 toEtm8.gamma: 47.314258\n    test 862 line 145 toEtm8.scale: 4.693202\n    test 863 line 145 toEtm8.lat: 8.474589\n    test 864 line 145 toEtm8.lon: 81.129945\n    test 865 line 146 toEtm8.easting: 3173034.802372\n    test 866 line 146 toEtm8.northing: 7263421.942957\n    test 867 line 146 toEtm8.gamma: 45.215808\n    test 868 line 146 toEtm8.scale: 1.125410\n    test 869 line 146 toEtm8.lat: 53.907276\n    test 870 line 146 toEtm8.lon: 51.252904\n    test 871 line 147 toEtm8.easting: 10253274.092204\n    test 872 line 147 toEtm8.northing: 8867574.299792\n    test 873 line 147 toEtm8.gamma: 79.198250\n    test 874 line 147 toEtm8.scale: 2.572372\n    test 875 line 147 toEtm8.lat: 22.120545\n    test 876 line 147 toEtm8.lon: 85.756782\n    test 877 line 148 toEtm8.easting: 2415561.483230\n    test 878 line 148 toEtm8.northing: 8813225.217097\n    test 879 line 148 toEtm8.gamma: 62.548978\n    test 880 line 148 toEtm8.scale: 1.071748\n    test 881 line 148 toEtm8.lat: 66.444100\n    test 882 line 148 toEtm8.lon: 64.532960\n    test 883 line 149 toEtm8.easting: 9589179.293295\n    test 884 line 149 toEtm8.northing: 1777680.784143\n    test 885 line 149 toEtm8.gamma: 14.838483\n    test 886 line 149 toEtm8.scale: 2.380716\n    test 887 line 149 toEtm8.lat: 6.670965\n    test 888 line 149 toEtm8.lon: 65.660408\n    test 889 line 150 toEtm8.easting: 727939.438391\n    test 890 line 150 toEtm8.northing: 3684363.236810\n    test 891 line 150 toEtm8.gamma: 4.266227\n    test 892 line 150 toEtm8.scale: 1.006140\n    test 893 line 150 toEtm8.lat: 33.054057\n    test 894 line 150 toEtm8.lon: 7.787458\n    test 895 line 151 toEtm8.easting: 1250765.991085\n    test 896 line 151 toEtm8.northing: 792869.242719\n    test 897 line 151 toEtm8.gamma: 1.396497\n    test 898 line 151 toEtm8.scale: 1.019026\n    test 899 line 151 toEtm8.lat: 7.035525\n    test 900 line 151 toEtm8.lon: 11.253707\n    test 901 line 152 toEtm8.easting: 710421.705887\n    test 902 line 152 toEtm8.northing: 5019406.075928\n    test 903 line 152 toEtm8.gamma: 6.393949\n    test 904 line 152 toEtm8.scale: 1.005812\n    test 905 line 152 toEtm8.lat: 44.971340\n    test 906 line 152 toEtm8.lon: 9.009304\n    test 907 line 153 toEtm8.easting: 4600995.074643\n    test 908 line 153 toEtm8.northing: 4505712.084593\n    test 909 line 153 toEtm8.gamma: 27.997458\n    test 910 line 153 toEtm8.scale: 1.271841\n    test 911 line 153 toEtm8.lat: 30.821397\n    test 912 line 153 toEtm8.lon: 45.970577\n    test 913 line 154 toEtm8.easting: 557642.627782\n    test 914 line 154 toEtm8.northing: 7006911.251644\n    test 915 line 154 toEtm8.gamma: 9.769903\n    test 916 line 154 toEtm8.scale: 1.003411\n    test 917 line 154 toEtm8.lat: 62.763886\n    test 918 line 154 toEtm8.lon: 10.960144\n    test 919 line 155 toEtm8.easting: 4635062.294291\n    test 920 line 155 toEtm8.northing: 2702556.153311\n    test 921 line 155 toEtm8.gamma: 15.779547\n    test 922 line 155 toEtm8.scale: 1.277178\n    test 923 line 155 toEtm8.lat: 18.888611\n    test 924 line 155 toEtm8.lon: 41.009871\n    test 925 line 156 toEtm8.easting: 14554962.255919\n    test 926 line 156 toEtm8.northing: 4716639.908572\n    test 927 line 156 toEtm8.gamma: 44.192751\n    test 928 line 156 toEtm8.scale: 4.960020\n    test 929 line 156 toEtm8.lat: 7.524119\n    test 930 line 156 toEtm8.lon: 81.050715\n    test 931 line 157 toEtm8.easting: 882126.661736\n    test 932 line 157 toEtm8.northing: 7947612.369506\n    test 933 line 157 toEtm8.gamma: 22.429487\n    test 934 line 157 toEtm8.scale: 1.009132\n    test 935 line 157 toEtm8.lat: 70.063902\n    test 936 line 157 toEtm8.lon: 23.705255\n    test 937 line 158 toEtm8.easting: 20262021.645983\n    test 938 line 158 toEtm8.northing: 8113827.820796\n    test 939 line 158 toEtm8.gamma: 76.936057\n    test 940 line 158 toEtm8.scale: 10.349092\n    test 941 line 158 toEtm8.lat: 3.556526\n    test 942 line 158 toEtm8.lon: 88.363529\n    test 943 line 159 toEtm8.easting: 6500508.399850\n    test 944 line 159 toEtm8.northing: 6956476.342368\n    test 945 line 159 toEtm8.gamma: 56.237116\n    test 946 line 159 toEtm8.scale: 1.563162\n    test 947 line 159 toEtm8.lat: 34.551257\n    test 948 line 159 toEtm8.lon: 69.111091\n    test 949 line 160 toEtm8.easting: 3884036.641314\n    test 950 line 160 toEtm8.northing: 6890167.411733\n    test 951 line 160 toEtm8.gamma: 45.760130\n    test 952 line 160 toEtm8.scale: 1.190167\n    test 953 line 160 toEtm8.lat: 47.929051\n    test 954 line 160 toEtm8.lon: 54.103418\n    test 955 line 161 toEtm8.easting: 217855.546078\n    test 956 line 161 toEtm8.northing: 6184108.122568\n    test 957 line 161 toEtm8.gamma: 2.870993\n    test 958 line 161 toEtm8.scale: 1.000182\n    test 959 line 161 toEtm8.lat: 55.753536\n    test 960 line 161 toEtm8.lon: 3.471798\n    test 961 line 162 toEtm8.easting: 11384139.290402\n    test 962 line 162 toEtm8.northing: 8893889.949556\n    test 963 line 162 toEtm8.gamma: 79.774854\n    test 964 line 162 toEtm8.scale: 3.024672\n    test 965 line 162 toEtm8.lat: 18.530847\n    test 966 line 162 toEtm8.lon: 86.555312\n    test 967 line 163 toEtm8.easting: 3469855.989805\n    test 968 line 163 toEtm8.northing: 7723193.799228\n    test 969 line 163 toEtm8.gamma: 53.114700\n    test 970 line 163 toEtm8.scale: 1.150540\n    test 971 line 163 toEtm8.lat: 54.510125\n    test 972 line 163 toEtm8.lon: 58.556056\n    test 973 line 164 toEtm8.easting: 5926165.994939\n    test 974 line 164 toEtm8.northing: 9385463.732747\n    test 975 line 164 toEtm8.gamma: 82.506981\n    test 976 line 164 toEtm8.scale: 1.459758\n    test 977 line 164 toEtm8.lat: 42.864162\n    test 978 line 164 toEtm8.lon: 84.866326\n    test 979 line 165 toEtm8.easting: 5798639.662224\n    test 980 line 165 toEtm8.northing: 5305387.640916\n    test 981 line 165 toEtm8.gamma: 38.617257\n    test 982 line 165 toEtm8.scale: 1.442263\n    test 983 line 165 toEtm8.lat: 30.911943\n    test 984 line 165 toEtm8.lon: 57.114102\n    test 985 line 166 toEtm8.easting: 9464.934388\n    test 986 line 166 toEtm8.northing: 6489121.624944\n    test 987 line 166 toEtm8.gamma: 0.138696\n    test 988 line 166 toEtm8.scale: 0.999601\n    test 989 line 166 toEtm8.lat: 58.542493\n    test 990 line 166 toEtm8.lon: 0.162593\n    test 991 line 167 toEtm8.easting: 12575834.275614\n    test 992 line 167 toEtm8.northing: 8356610.895486\n    test 993 line 167 toEtm8.gamma: 75.235223\n    test 994 line 167 toEtm8.scale: 3.599442\n    test 995 line 167 toEtm8.lat: 15.022689\n    test 996 line 167 toEtm8.lon: 85.792615\n    test 997 line 168 toEtm8.easting: 2719653.543469\n    test 998 line 168 toEtm8.northing: 9362389.163495\n    test 999 line 168 toEtm8.gamma: 76.049670\n    test 1000 line 168 toEtm8.scale: 1.091315\n    test 1001 line 168 toEtm8.lat: 65.692275\n    test 1002 line 168 toEtm8.lon: 77.241377\n    test 1003 line 169 toEtm8.easting: 4845341.924698\n    test 1004 line 169 toEtm8.northing: 8710522.326901\n    test 1005 line 169 toEtm8.gamma: 72.320942\n    test 1006 line 169 toEtm8.scale: 1.300382\n    test 1007 line 169 toEtm8.lat: 48.806211\n    test 1008 line 169 toEtm8.lon: 76.486365\n    test 1009 line 170 toEtm8.easting: 3935261.522763\n    test 1010 line 170 toEtm8.northing: 9454271.649062\n    test 1011 line 170 toEtm8.gamma: 81.162334\n    test 1012 line 170 toEtm8.scale: 1.194767\n    test 1013 line 170 toEtm8.lat: 56.436025\n    test 1014 line 170 toEtm8.lon: 82.611568\n    test 1015 line 171 toEtm8.easting: 7074299.823000\n    test 1016 line 171 toEtm8.northing: 1648736.065055\n    test 1017 line 171 toEtm8.gamma: 12.145925\n    test 1018 line 171 toEtm8.scale: 1.687551\n    test 1019 line 171 toEtm8.lat: 8.766053\n    test 1020 line 171 toEtm8.lon: 54.367539\n    test 1021 line 172 toEtm8.easting: 3689072.579308\n    test 1022 line 172 toEtm8.northing: 2230802.665211\n    test 1023 line 172 toEtm8.gamma: 10.856248\n    test 1024 line 172 toEtm8.scale: 1.172689\n    test 1025 line 172 toEtm8.lat: 17.095495\n    test 1026 line 172 toEtm8.lon: 33.059128\n    test 1027 line 173 toEtm8.easting: 8102565.885587\n    test 1028 line 173 toEtm8.northing: 5167396.617580\n    test 1029 line 173 toEtm8.gamma: 42.324886\n    test 1030 line 173 toEtm8.scale: 1.921927\n    test 1031 line 173 toEtm8.lat: 22.142861\n    test 1032 line 173 toEtm8.lon: 67.200684\n    test 1033 line 174 toEtm8.easting: 8181271.353564\n    test 1034 line 174 toEtm8.northing: 4425436.547185\n    test 1035 line 174 toEtm8.gamma: 35.900845\n    test 1036 line 174 toEtm8.scale: 1.945017\n    test 1037 line 174 toEtm8.lat: 19.222623\n    test 1038 line 174 toEtm8.lon: 65.180785\n    test 1039 line 175 toEtm8.easting: 767067.394003\n    test 1040 line 175 toEtm8.northing: 3701745.857296\n    test 1041 line 175 toEtm8.gamma: 4.519201\n    test 1042 line 175 toEtm8.scale: 1.006863\n    test 1043 line 175 toEtm8.lat: 33.182474\n    test 1044 line 175 toEtm8.lon: 8.216952\n    test 1045 line 176 toEtm8.easting: 6688114.168572\n    test 1046 line 176 toEtm8.northing: 2052857.299639\n    test 1047 line 176 toEtm8.gamma: 14.766191\n    test 1048 line 176 toEtm8.scale: 1.607200\n    test 1049 line 176 toEtm8.lat: 11.417963\n    test 1050 line 176 toEtm8.lon: 52.808691\n    test 1051 line 177 toEtm8.easting: 5608408.773761\n    test 1052 line 177 toEtm8.northing: 3859055.659110\n    test 1053 line 177 toEtm8.gamma: 26.244151\n    test 1054 line 177 toEtm8.scale: 1.413463\n    test 1055 line 177 toEtm8.lat: 23.836688\n    test 1056 line 177 toEtm8.lon: 50.500180\n    test 1057 line 178 toEtm8.easting: 3836942.765275\n    test 1058 line 178 toEtm8.northing: 6415467.634326\n    test 1059 line 178 toEtm8.gamma: 40.575885\n    test 1060 line 178 toEtm8.scale: 1.185615\n    test 1061 line 178 toEtm8.lat: 45.550020\n    test 1062 line 178 toEtm8.lon: 50.148036\n    test 1063 line 179 toEtm8.easting: 1298730.366025\n    test 1064 line 179 toEtm8.northing: 6021453.000792\n    test 1065 line 179 toEtm8.gamma: 15.613320\n    test 1066 line 179 toEtm8.scale: 1.020367\n    test 1067 line 179 toEtm8.lat: 52.746079\n    test 1068 line 179 toEtm8.lon: 19.343926\n    test 1069 line 180 toEtm8.easting: 416934.289208\n    test 1070 line 180 toEtm8.northing: 7295683.451705\n    test 1071 line 180 toEtm8.gamma: 8.238232\n    test 1072 line 180 toEtm8.scale: 1.001729\n    test 1073 line 180 toEtm8.lat: 65.513348\n    test 1074 line 180 toEtm8.lon: 9.039529\n    test 1075 line 181 toEtm8.easting: 4336076.850889\n    test 1076 line 181 toEtm8.northing: 7617975.722779\n    test 1077 line 181 toEtm8.gamma: 56.537088\n    test 1078 line 181 toEtm8.scale: 1.238582\n    test 1079 line 181 toEtm8.lat: 48.709795\n    test 1080 line 181 toEtm8.lon: 63.554005\n    test 1081 line 182 toEtm8.easting: 168047.336980\n    test 1082 line 182 toEtm8.northing: 2185000.046530\n    test 1083 line 182 toEtm8.gamma: 0.542187\n    test 1084 line 182 toEtm8.scale: 0.999949\n    test 1085 line 182 toEtm8.lat: 19.753509\n    test 1086 line 182 toEtm8.lon: 1.603846\n    test 1087 line 183 toEtm8.easting: 8276281.328790\n    test 1088 line 183 toEtm8.northing: 263444.350545\n    test 1089 line 183 toEtm8.gamma: 2.071435\n    test 1090 line 183 toEtm8.scale: 1.980314\n    test 1091 line 183 toEtm8.lat: 1.202816\n    test 1092 line 183 toEtm8.lon: 59.377276\n    test 1093 line 184 toEtm8.easting: 4772573.810710\n    test 1094 line 184 toEtm8.northing: 6765710.336002\n    test 1095 line 184 toEtm8.gamma: 48.857561\n    test 1096 line 184 toEtm8.scale: 1.291911\n    test 1097 line 184 toEtm8.lat: 42.564975\n    test 1098 line 184 toEtm8.lon: 59.356947\n    test 1099 line 185 toEtm8.easting: 5427755.074639\n    test 1100 line 185 toEtm8.northing: 1556055.820924\n    test 1101 line 185 toEtm8.gamma: 9.862178\n    test 1102 line 185 toEtm8.scale: 1.387394\n    test 1103 line 185 toEtm8.lat: 10.090572\n    test 1104 line 185 toEtm8.lon: 44.604132\n    test 1105 line 186 toEtm8.easting: 11588458.616041\n    test 1106 line 186 toEtm8.northing: 5707993.922613\n    test 1107 line 186 toEtm8.gamma: 50.784827\n    test 1108 line 186 toEtm8.scale: 3.149567\n    test 1109 line 186 toEtm8.lat: 14.133028\n    test 1110 line 186 toEtm8.lon: 78.097533\n    test 1111 line 187 toEtm8.easting: 7152433.802688\n    test 1112 line 187 toEtm8.northing: 761390.695844\n    test 1113 line 187 toEtm8.gamma: 5.607350\n    test 1114 line 187 toEtm8.scale: 1.705261\n    test 1115 line 187 toEtm8.lat: 4.031123\n    test 1116 line 187 toEtm8.lon: 54.048782\n    test 1117 line 188 toEtm8.easting: 3105651.390901\n    test 1118 line 188 toEtm8.northing: 9426026.169064\n    test 1119 line 188 toEtm8.gamma: 78.750206\n    test 1120 line 188 toEtm8.scale: 1.119737\n    test 1121 line 188 toEtm8.lat: 62.746603\n    test 1122 line 188 toEtm8.lon: 79.968641\n    test 1123 line 189 toEtm8.easting: 2959009.639022\n    test 1124 line 189 toEtm8.northing: 8339242.269282\n    test 1125 line 189 toEtm8.gamma: 58.460865\n    test 1126 line 189 toEtm8.scale: 1.108554\n    test 1127 line 189 toEtm8.lat: 60.626429\n    test 1128 line 189 toEtm8.lon: 61.851551\n    test 1129 line 190 toEtm8.easting: 8640472.267145\n    test 1130 line 190 toEtm8.northing: 6230320.417931\n    test 1131 line 190 toEtm8.gamma: 52.816810\n    test 1132 line 190 toEtm8.scale: 2.062973\n    test 1133 line 190 toEtm8.lat: 23.600626\n    test 1134 line 190 toEtm8.lon: 72.811634\n    test 1135 line 191 toEtm8.easting: 811352.108932\n    test 1136 line 191 toEtm8.northing: 9816129.813481\n    test 1137 line 191 toEtm8.gamma: 77.299184\n    test 1138 line 191 toEtm8.scale: 1.007651\n    test 1139 line 191 toEtm8.lat: 82.572236\n    test 1140 line 191 toEtm8.lon: 77.402323\n    test 1141 line 192 toEtm8.easting: 6521874.973458\n    test 1142 line 192 toEtm8.northing: 1053612.479744\n    test 1143 line 192 toEtm8.gamma: 7.407328\n    test 1144 line 192 toEtm8.scale: 1.575529\n    test 1145 line 192 toEtm8.lat: 6.030051\n    test 1146 line 192 toEtm8.lon: 50.783505\n    test 1147 line 193 toEtm8.easting: 3477983.997875\n    test 1148 line 193 toEtm8.northing: 5651613.325947\n    test 1149 line 193 toEtm8.gamma: 31.530673\n    test 1150 line 193 toEtm8.scale: 1.151875\n    test 1151 line 193 toEtm8.lat: 42.411523\n    test 1152 line 193 toEtm8.lon: 42.258009\n    test 1153 line 194 toEtm8.easting: 629892.822243\n    test 1154 line 194 toEtm8.northing: 3283914.910451\n    test 1155 line 194 toEtm8.gamma: 3.210482\n    test 1156 line 194 toEtm8.scale: 1.004499\n    test 1157 line 194 toEtm8.lat: 29.526120\n    test 1158 line 194 toEtm8.lon: 6.493069\n    test 1159 line 195 toEtm8.easting: 3381879.687227\n    test 1160 line 195 toEtm8.northing: 5103629.325665\n    test 1161 line 195 toEtm8.gamma: 26.748108\n    test 1162 line 195 toEtm8.scale: 1.143559\n    test 1163 line 195 toEtm8.lat: 39.021853\n    test 1164 line 195 toEtm8.lon: 38.641779\n    test 1165 line 196 toEtm8.easting: 2815986.534177\n    test 1166 line 196 toEtm8.northing: 9387029.120718\n    test 1167 line 196 toEtm8.gamma: 76.967262\n    test 1168 line 196 toEtm8.scale: 1.098032\n    test 1169 line 196 toEtm8.lat: 64.971850\n    test 1170 line 196 toEtm8.lon: 78.151893\n    test 1171 line 197 toEtm8.easting: 3398195.889603\n    test 1172 line 197 toEtm8.northing: 9138936.031490\n    test 1173 line 197 toEtm8.gamma: 74.477499\n    test 1174 line 197 toEtm8.scale: 1.144009\n    test 1175 line 197 toEtm8.lat: 59.961819\n    test 1176 line 197 toEtm8.lon: 76.473422\n    test 1177 line 198 toEtm8.easting: 2421734.754637\n    test 1178 line 198 toEtm8.northing: 5002372.094991\n    test 1179 line 198 toEtm8.gamma: 20.017082\n    test 1180 line 198 toEtm8.scale: 1.072592\n    test 1181 line 198 toEtm8.lat: 41.374040\n    test 1182 line 198 toEtm8.lon: 28.848343\n    test 1183 line 199 toEtm8.easting: 2360869.895525\n    test 1184 line 199 toEtm8.northing: 9553298.449536\n    test 1185 line 199 toEtm8.gamma: 78.848205\n    test 1186 line 199 toEtm8.scale: 1.068453\n    test 1187 line 199 toEtm8.lat: 68.946087\n    test 1188 line 199 toEtm8.lon: 79.574523\n    test 1189 line 200 toEtm8.easting: 1196539.972194\n    test 1190 line 200 toEtm8.northing: 9861920.836230\n    test 1191 line 200 toEtm8.gamma: 83.437668\n    test 1192 line 200 toEtm8.scale: 1.017137\n    test 1193 line 200 toEtm8.lat: 79.275096\n    test 1194 line 200 toEtm8.lon: 83.551272\n    test 1195 line 201 toEtm8.easting: 1327758.704795\n    test 1196 line 201 toEtm8.northing: 2375509.241683\n    test 1197 line 201 toEtm8.gamma: 4.617572\n    test 1198 line 201 toEtm8.scale: 1.021465\n    test 1199 line 201 toEtm8.lat: 21.000252\n    test 1200 line 201 toEtm8.lon: 12.697444\n    test 1201 line 202 toEtm8.easting: 2070860.327644\n    test 1202 line 202 toEtm8.northing: 8604500.719581\n    test 1203 line 202 toEtm8.gamma: 54.722761\n    test 1204 line 202 toEtm8.scale: 1.052469\n    test 1205 line 202 toEtm8.lat: 68.015227\n    test 1206 line 202 toEtm8.lon: 56.732419\n    test 1207 line 203 toEtm8.easting: 6564776.654864\n    test 1208 line 203 toEtm8.northing: 8171207.177379\n    test 1209 line 203 toEtm8.gamma: 69.237523\n    test 1210 line 203 toEtm8.scale: 1.573894\n    test 1211 line 203 toEtm8.lat: 37.423675\n    test 1212 line 203 toEtm8.lon: 76.947359\n    test 1213 line 204 toEtm8.easting: 592653.553821\n    test 1214 line 204 toEtm8.northing: 6125529.810052\n    test 1215 line 204 toEtm8.gamma: 7.600785\n    test 1216 line 204 toEtm8.scale: 1.003912\n    test 1217 line 204 toEtm8.lat: 54.922707\n    test 1218 line 204 toEtm8.lon: 9.260818\n    test 1219 line 205 toEtm8.easting: 693459.671821\n    test 1220 line 205 toEtm8.northing: 6943779.991032\n    test 1221 line 205 toEtm8.gamma: 11.787587\n    test 1222 line 205 toEtm8.scale: 1.005496\n    test 1223 line 205 toEtm8.lat: 61.982810\n    test 1224 line 205 toEtm8.lon: 13.299659\n    test 1225 line 206 toEtm8.easting: 1838956.187625\n    test 1226 line 206 toEtm8.northing: 3511959.612381\n    test 1227 line 206 toEtm8.gamma: 9.844313\n    test 1228 line 206 toEtm8.scale: 1.041603\n    test 1229 line 206 toEtm8.lat: 30.324214\n    test 1230 line 206 toEtm8.lon: 18.959769\n    test 1231 line 207 toEtm8.easting: 4460690.884597\n    test 1232 line 207 toEtm8.northing: 5541873.235403\n    test 1233 line 207 toEtm8.gamma: 35.768613\n    test 1234 line 207 toEtm8.scale: 1.254179\n    test 1235 line 207 toEtm8.lat: 37.629667\n    test 1236 line 207 toEtm8.lon: 49.649131\n    test 1237 line 208 toEtm8.easting: 2311168.998941\n    test 1238 line 208 toEtm8.northing: 9480561.869119\n    test 1239 line 208 toEtm8.gamma: 76.828257\n    test 1240 line 208 toEtm8.scale: 1.065556\n    test 1241 line 208 toEtm8.lat: 69.225574\n    test 1242 line 208 toEtm8.lon: 77.656135\n    test 1243 line 209 toEtm8.easting: 4111775.114451\n    test 1244 line 209 toEtm8.northing: 6509014.348792\n    test 1245 line 209 toEtm8.gamma: 43.052130\n    test 1246 line 209 toEtm8.scale: 1.214125\n    test 1247 line 209 toEtm8.lat: 44.698478\n    test 1248 line 209 toEtm8.lon: 52.979304\n    test 1249 line 210 toEtm8.easting: 75358.261962\n    test 1250 line 210 toEtm8.northing: 7711258.662251\n    test 1251 line 210 toEtm8.gamma: 1.806297\n    test 1252 line 210 toEtm8.scale: 0.999669\n    test 1253 line 210 toEtm8.lat: 69.499594\n    test 1254 line 210 toEtm8.lon: 1.928336\n    test 1255 line 211 toEtm8.easting: 8781885.229116\n    test 1256 line 211 toEtm8.northing: 9184776.452211\n    test 1257 line 211 toEtm8.gamma: 81.795539\n    test 1258 line 211 toEtm8.scale: 2.094908\n    test 1259 line 211 toEtm8.lat: 27.981364\n    test 1260 line 211 toEtm8.lon: 86.061113\n    test 1261 line 212 toEtm8.easting: 954378.415174\n    test 1262 line 212 toEtm8.northing: 7449110.669807\n    test 1263 line 212 toEtm8.gamma: 19.380657\n    test 1264 line 212 toEtm8.scale: 1.010768\n    test 1265 line 212 toEtm8.lat: 65.699839\n    test 1266 line 212 toEtm8.lon: 21.104725\n    test 1267 line 213 toEtm8.easting: 720971.793706\n    test 1268 line 213 toEtm8.northing: 5265195.121555\n    test 1269 line 213 toEtm8.gamma: 7.002995\n    test 1270 line 213 toEtm8.scale: 1.005995\n    test 1271 line 213 toEtm8.lat: 47.143648\n    test 1272 line 213 toEtm8.lon: 9.512189\n    test 1273 line 214 toEtm8.easting: 561561.493937\n    test 1274 line 214 toEtm8.northing: 989910.236221\n    test 1275 line 214 toEtm8.gamma: 0.793118\n    test 1276 line 214 toEtm8.scale: 1.003505\n    test 1277 line 214 toEtm8.lat: 8.920167\n    test 1278 line 214 toEtm8.lon: 5.101513\n    test 1279 line 215 toEtm8.easting: 3446829.634468\n    test 1280 line 215 toEtm8.northing: 9232868.155664\n    test 1281 line 215 toEtm8.gamma: 76.279075\n    test 1282 line 215 toEtm8.scale: 1.148263\n    test 1283 line 215 toEtm8.lat: 59.778971\n    test 1284 line 215 toEtm8.lon: 78.080322\n    test 1285 line 216 toEtm8.easting: 4048307.545909\n    test 1286 line 216 toEtm8.northing: 9800416.422998\n    test 1287 line 216 toEtm8.gamma: 86.843918\n    test 1288 line 216 toEtm8.scale: 1.206495\n    test 1289 line 216 toEtm8.lat: 55.865310\n    test 1290 line 216 toEtm8.lon: 87.384288\n    test 1291 line 217 toEtm8.easting: 8973188.480293\n    test 1292 line 217 toEtm8.northing: 7042230.087021\n    test 1293 line 217 toEtm8.gamma: 60.872456\n    test 1294 line 217 toEtm8.scale: 2.156098\n    test 1295 line 217 toEtm8.lat: 24.310973\n    test 1296 line 217 toEtm8.lon: 76.823777\n    test 1297 line 218 toEtm8.easting: 126314.191618\n    test 1298 line 218 toEtm8.northing: 396006.687921\n    test 1299 line 218 toEtm8.gamma: 0.071065\n    test 1300 line 218 toEtm8.scale: 0.999798\n    test 1301 line 218 toEtm8.lat: 3.582041\n    test 1302 line 218 toEtm8.lon: 1.137286\n    test 1303 line 219 toEtm8.easting: 5247652.345647\n    test 1304 line 219 toEtm8.northing: 8670513.359752\n    test 1305 line 219 toEtm8.gamma: 72.700498\n    test 1306 line 219 toEtm8.scale: 1.355272\n    test 1307 line 219 toEtm8.lat: 46.124233\n    test 1308 line 219 toEtm8.lon: 77.313118\n    test 1309 line 220 toEtm8.easting: 8103656.838119\n    test 1310 line 220 toEtm8.northing: 9469794.014737\n    test 1311 line 220 toEtm8.gamma: 84.490673\n    test 1312 line 220 toEtm8.scale: 1.912164\n    test 1313 line 220 toEtm8.lat: 31.171391\n    test 1314 line 220 toEtm8.lon: 87.104504\n    test 1315 line 221 toEtm8.easting: 6300112.758236\n    test 1316 line 221 toEtm8.northing: 93835.917364\n    test 1317 line 221 toEtm8.gamma: 0.644805\n    test 1318 line 221 toEtm8.scale: 1.534073\n    test 1319 line 221 toEtm8.lat: 0.553171\n    test 1320 line 221 toEtm8.lon: 49.117104\n    test 1321 line 222 toEtm8.easting: 3894813.593782\n    test 1322 line 222 toEtm8.northing: 4833832.341027\n    test 1323 line 222 toEtm8.gamma: 27.453298\n    test 1324 line 222 toEtm8.scale: 1.192135\n    test 1325 line 222 toEtm8.lat: 35.361587\n    test 1326 line 222 toEtm8.lon: 41.860599\n    test 1327 line 223 toEtm8.easting: 402511.346712\n    test 1328 line 223 toEtm8.northing: 3520621.561911\n    test 1329 line 223 toEtm8.gamma: 2.238474\n    test 1330 line 223 toEtm8.scale: 1.001599\n    test 1331 line 223 toEtm8.lat: 31.750314\n    test 1332 line 223 toEtm8.lon: 4.248167\n    test 1333 line 224 toEtm8.easting: 5357378.503148\n    test 1334 line 224 toEtm8.northing: 2772997.602234\n    test 1335 line 224 toEtm8.gamma: 17.823560\n    test 1336 line 224 toEtm8.scale: 1.376031\n    test 1337 line 224 toEtm8.lat: 17.924336\n    test 1338 line 224 toEtm8.lon: 46.096402\n    test 1339 line 225 toEtm8.easting: 2807553.985866\n    test 1340 line 225 toEtm8.northing: 8177847.980275\n    test 1341 line 225 toEtm8.gamma: 54.680045\n    test 1342 line 225 toEtm8.scale: 1.097531\n    test 1343 line 225 toEtm8.lat: 60.931488\n    test 1344 line 225 toEtm8.lon: 58.221214\n    test 1345 line 226 toEtm8.easting: 18289045.166501\n    test 1346 line 226 toEtm8.northing: 7792942.339604\n    test 1347 line 226 toEtm8.gamma: 73.216494\n    test 1348 line 226 toEtm8.scale: 8.098009\n    test 1349 line 226 toEtm8.lat: 5.358151\n    test 1350 line 226 toEtm8.lon: 87.556213\n    test 1351 line 227 toEtm8.easting: 8376822.459538\n    test 1352 line 227 toEtm8.northing: 8128174.623878\n    test 1353 line 227 toEtm8.gamma: 70.920117\n    test 1354 line 227 toEtm8.scale: 1.984873\n    test 1355 line 227 toEtm8.lat: 28.616673\n    test 1356 line 227 toEtm8.lon: 80.452426\n    test 1357 line 228 toEtm8.easting: 11898068.353272\n    test 1358 line 228 toEtm8.northing: 4772439.493697\n    test 1359 line 228 toEtm8.gamma: 42.613968\n    test 1360 line 228 toEtm8.scale: 3.314412\n    test 1361 line 228 toEtm8.lat: 11.709763\n    test 1362 line 228 toEtm8.lon: 76.760295\n    test 1363 line 229 toEtm8.easting: 10550946.939050\n    test 1364 line 229 toEtm8.northing: 3851968.815295\n    test 1365 line 229 toEtm8.gamma: 33.383025\n    test 1366 line 229 toEtm8.scale: 2.724754\n    test 1367 line 229 toEtm8.lat: 12.009498\n    test 1368 line 229 toEtm8.lon: 71.782351\n    test 1369 line 230 toEtm8.easting: 6828299.123607\n    test 1370 line 230 toEtm8.northing: 9394803.227463\n    test 1371 line 230 toEtm8.gamma: 83.181386\n    test 1372 line 230 toEtm8.scale: 1.624359\n    test 1373 line 230 toEtm8.lat: 37.629784\n    test 1374 line 230 toEtm8.lon: 85.795687\n    test 1375 line 231 toEtm8.easting: 11162550.334022\n    test 1376 line 231 toEtm8.northing: 2640267.279593\n    test 1377 line 231 toEtm8.gamma: 23.145404\n    test 1378 line 231 toEtm8.scale: 2.998408\n    test 1379 line 231 toEtm8.lat: 7.721128\n    test 1380 line 231 toEtm8.lon: 71.662731\n    test 1381 line 232 toEtm8.easting: 4411584.447941\n    test 1382 line 232 toEtm8.northing: 4956173.694407\n    test 1383 line 232 toEtm8.gamma: 30.713919\n    test 1384 line 232 toEtm8.scale: 1.248736\n    test 1385 line 232 toEtm8.lat: 34.295026\n    test 1386 line 232 toEtm8.lon: 46.442191\n    test 1387 line 233 toEtm8.easting: 672108.897905\n    test 1388 line 233 toEtm8.northing: 4751554.657054\n    test 1389 line 233 toEtm8.gamma: 5.569178\n    test 1390 line 233 toEtm8.scale: 1.005162\n    test 1391 line 233 toEtm8.lat: 42.622496\n    test 1392 line 233 toEtm8.lon: 8.193605\n    test 1393 line 234 toEtm8.easting: 5022964.290579\n    test 1394 line 234 toEtm8.northing: 6860418.199502\n    test 1395 line 234 toEtm8.gamma: 50.862230\n    test 1396 line 234 toEtm8.scale: 1.324925\n    test 1397 line 234 toEtm8.lat: 41.667780\n    test 1398 line 234 toEtm8.lon: 61.518288\n    test 1399 line 235 toEtm8.easting: 1669655.595207\n    test 1400 line 235 toEtm8.northing: 4152086.537021\n    test 1401 line 235 toEtm8.gamma: 11.110237\n    test 1402 line 235 toEtm8.scale: 1.034138\n    test 1403 line 235 toEtm8.lat: 36.060369\n    test 1404 line 235 toEtm8.lon: 18.444112\n    test 1405 line 236 toEtm8.easting: 6055876.729655\n    test 1406 line 236 toEtm8.northing: 4896837.552619\n    test 1407 line 236 toEtm8.gamma: 35.799747\n    test 1408 line 236 toEtm8.scale: 1.485967\n    test 1409 line 236 toEtm8.lat: 27.948091\n    test 1410 line 236 toEtm8.lon: 56.816429\n    test 1411 line 237 toEtm8.easting: 1209214.164379\n    test 1412 line 237 toEtm8.northing: 7266409.859178\n    test 1413 line 237 toEtm8.gamma: 22.319633\n    test 1414 line 237 toEtm8.scale: 1.017554\n    test 1415 line 237 toEtm8.lat: 63.386030\n    test 1416 line 237 toEtm8.lon: 24.662716\n    test 1417 line 238 toEtm8.easting: 5154564.559584\n    test 1418 line 238 toEtm8.northing: 698118.349975\n    test 1419 line 238 toEtm8.gamma: 4.242360\n    test 1420 line 238 toEtm8.scale: 1.347481\n    test 1421 line 238 toEtm8.lat: 4.680922\n    test 1422 line 238 toEtm8.lon: 42.114426\n    test 1423 line 239 toEtm8.easting: 2695149.806543\n    test 1424 line 239 toEtm8.northing: 8208197.765605\n    test 1425 line 239 toEtm8.gamma: 54.178615\n    test 1426 line 239 toEtm8.scale: 1.089730\n    test 1427 line 239 toEtm8.lat: 61.826625\n    test 1428 line 239 toEtm8.lon: 57.525096\n    test 1429 line 240 toEtm8.easting: 3394792.327820\n    test 1430 line 240 toEtm8.northing: 3217583.415552\n    test 1431 line 240 toEtm8.gamma: 15.165863\n    test 1432 line 240 toEtm8.scale: 1.145285\n    test 1433 line 240 toEtm8.lat: 25.104353\n    test 1434 line 240 toEtm8.lon: 32.528660\n    test 1435 line 241 toEtm8.easting: 1429160.966985\n    test 1436 line 241 toEtm8.northing: 8212685.362032\n    test 1437 line 241 toEtm8.gamma: 37.484904\n    test 1438 line 241 toEtm8.scale: 1.024676\n    test 1439 line 241 toEtm8.lat: 69.678351\n    test 1440 line 241 toEtm8.lon: 39.275513\n    test 1441 line 242 toEtm8.easting: 8343387.998065\n    test 1442 line 242 toEtm8.northing: 8885196.954578\n    test 1443 line 242 toEtm8.gamma: 78.561937\n    test 1444 line 242 toEtm8.scale: 1.974733\n    test 1445 line 242 toEtm8.lat: 29.671384\n    test 1446 line 242 toEtm8.lon: 84.196595\n    test 1447 line 243 toEtm8.easting: 1990722.928606\n    test 1448 line 243 toEtm8.northing: 7569202.065162\n    test 1449 line 243 toEtm8.gamma: 37.075276\n    test 1450 line 243 toEtm8.scale: 1.048486\n    test 1451 line 243 toEtm8.lat: 62.300208\n    test 1452 line 243 toEtm8.lon: 40.474051\n    test 1453 line 244 toEtm8.easting: 1554980.099559\n    test 1454 line 244 toEtm8.northing: 1449423.919586\n    test 1455 line 244 toEtm8.gamma: 3.188328\n    test 1456 line 244 toEtm8.scale: 1.029664\n    test 1457 line 244 toEtm8.lat: 12.721776\n    test 1458 line 244 toEtm8.lon: 14.190003\n    test 1459 line 245 toEtm8.easting: 785205.450196\n    test 1460 line 245 toEtm8.northing: 5575158.423096\n    test 1461 line 245 toEtm8.gamma: 8.388417\n    test 1462 line 245 toEtm8.scale: 1.007181\n    test 1463 line 245 toEtm8.lat: 49.811296\n    test 1464 line 245 toEtm8.lon: 10.925011\n    test 1465 line 246 toEtm8.easting: 3310405.988313\n    test 1466 line 246 toEtm8.northing: 5955022.233881\n    test 1467 line 246 toEtm8.gamma: 33.007587\n    test 1468 line 246 toEtm8.scale: 1.137141\n    test 1469 line 246 toEtm8.lat: 45.132680\n    test 1470 line 246 toEtm8.lon: 42.478624\n    test 1471 line 247 toEtm8.easting: 4733460.960666\n    test 1472 line 247 toEtm8.northing: 129034.889816\n    test 1473 line 247 toEtm8.gamma: 0.737551\n    test 1474 line 247 toEtm8.scale: 1.290439\n    test 1475 line 247 toEtm8.lat: 0.904279\n    test 1476 line 247 toEtm8.lon: 39.078412\n    test 1477 line 248 toEtm8.easting: 3322708.343909\n    test 1478 line 248 toEtm8.northing: 3864738.078742\n    test 1479 line 248 toEtm8.gamma: 18.472566\n    test 1480 line 248 toEtm8.scale: 1.138838\n    test 1481 line 248 toEtm8.lat: 30.163605\n    test 1482 line 248 toEtm8.lon: 33.577996\n    test 1483 line 249 toEtm8.easting: 8672864.417204\n    test 1484 line 249 toEtm8.northing: 8333465.983444\n    test 1485 line 249 toEtm8.gamma: 73.206273\n    test 1486 line 249 toEtm8.scale: 2.065441\n    test 1487 line 249 toEtm8.lat: 27.643244\n    test 1488 line 249 toEtm8.lon: 81.892859\n    test 1489 line 250 toEtm8.easting: 11126818.231196\n    test 1490 line 250 toEtm8.northing: 7618712.174991\n    test 1491 line 250 toEtm8.gamma: 67.887173\n    test 1492 line 250 toEtm8.scale: 2.922417\n    test 1493 line 250 toEtm8.lat: 18.201208\n    test 1494 line 250 toEtm8.lon: 82.434618\n    test 1495 line 251 toEtm8.easting: 8650100.981797\n    test 1496 line 251 toEtm8.northing: 9975084.168997\n    test 1497 line 251 toEtm8.gamma: 89.767446\n    test 1498 line 251 toEtm8.scale: 2.057289\n    test 1499 line 251 toEtm8.lat: 28.804576\n    test 1500 line 251 toEtm8.lon: 89.886072\n    test 1501 line 252 toEtm8.easting: 2212701.180192\n    test 1502 line 252 toEtm8.northing: 650348.100229\n    test 1503 line 252 toEtm8.gamma: 1.970441\n    test 1504 line 252 toEtm8.scale: 1.060830\n    test 1505 line 252 toEtm8.lat: 5.542998\n    test 1506 line 252 toEtm8.lon: 19.589578\n    test 1507 line 253 toEtm8.easting: 6890222.326618\n    test 1508 line 253 toEtm8.northing: 7506813.499547\n    test 1509 line 253 toEtm8.gamma: 62.684825\n    test 1510 line 253 toEtm8.scale: 1.638488\n    test 1511 line 253 toEtm8.lat: 34.237147\n    test 1512 line 253 toEtm8.lon: 73.678164\n    test 1513 line 254 toEtm8.easting: 6692260.067325\n    test 1514 line 254 toEtm8.northing: 4244174.008110\n    test 1515 line 254 toEtm8.gamma: 31.812920\n    test 1516 line 254 toEtm8.scale: 1.604640\n    test 1517 line 254 toEtm8.lat: 22.704949\n    test 1518 line 254 toEtm8.lon: 57.877010\n    test 1519 line 255 toEtm8.easting: 1225564.137190\n    test 1520 line 255 toEtm8.northing: 4778923.924144\n    test 1521 line 255 toEtm8.gamma: 10.083419\n    test 1522 line 255 toEtm8.scale: 1.018134\n    test 1523 line 255 toEtm8.lat: 42.192424\n    test 1524 line 255 toEtm8.lon: 14.828196\n    test 1525 line 256 toEtm8.easting: 12341116.154950\n    test 1526 line 256 toEtm8.northing: 5081855.521966\n    test 1527 line 256 toEtm8.gamma: 45.712546\n    test 1528 line 256 toEtm8.scale: 3.535170\n    test 1529 line 256 toEtm8.lat: 11.481151\n    test 1530 line 256 toEtm8.lon: 78.189236\n    test 1531 line 257 toEtm8.easting: 6673845.021771\n    test 1532 line 257 toEtm8.northing: 1177587.190565\n    test 1533 line 257 toEtm8.gamma: 8.389141\n    test 1534 line 257 toEtm8.scale: 1.605171\n    test 1535 line 257 toEtm8.lat: 6.609626\n    test 1536 line 257 toEtm8.lon: 51.735783\n    test 1537 line 258 toEtm8.easting: 6966354.690417\n    test 1538 line 258 toEtm8.northing: 3641802.005093\n    test 1539 line 258 toEtm8.gamma: 27.409636\n    test 1540 line 258 toEtm8.scale: 1.661469\n    test 1541 line 258 toEtm8.lat: 19.059369\n    test 1542 line 258 toEtm8.lon: 57.526439\n    test 1543 max forward error: 2.235174e-08\n    test 1544 max reverse error: 8.526513e-14\n    test 1545 Etm.scale0: 0.9996\n    test 1546 Etm.datum: WGS84\n    test 1547 Etm.datum.ellipsoid.KsOrder: 8\n    test 1548 WGS84.KsOrder: 8\n\n    all 1548 testEtmTMcoords.py tests passed, 1 skipped (pygeodesy 26.3.26 Python 3.13.12 64bit arm64 coverage 7.10.7 geographiclib 2.1 numpy 2.3.3 scipy 1.16.2 Math 2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 macOS 26.3.1 isLazy 1 -W  default) 6.195 sec\nrunning /Library/Framewo....n3.13 -W default ~/PyGeodesy/test/testExactTMcoords.py\n\n    testing testExactTMcoords.py 24.03.22 (module pygeodesy.etm 25.09.15) isLazy=1\n    test 1 line 1 _ExactTM.easting: 1548706.791619\n    test 2 line 1 _ExactTM.northing: 8451449.198772\n    test 3 line 1 _ExactTM.gamma: 43.922790\n    test 4 line 1 _ExactTM.scale: 1.029060\n    test 5 line 1 _ExactTM.lat: 70.579277\n    test 6 line 1 _ExactTM.lon: 45.599420\n    test 7 line 2 _ExactTM.easting: 2624150.740929\n    test 8 line 2 _ExactTM.northing: 1204434.041605\n    test 9 line 2 _ExactTM.gamma: 4.292619\n    test 10 line 2 _ExactTM.scale: 1.086051\n    test 11 line 2 _ExactTM.lat: 10.018894\n    test 12 line 2 _ExactTM.lon: 23.313324\n    test 13 line 3 _ExactTM.easting: 9855841.232935\n    test 14 line 3 _ExactTM.northing: 6145496.115155\n    test 15 line 3 _ExactTM.gamma: 53.348315\n    test 16 line 3 _ExactTM.scale: 2.445098\n    test 17 line 3 _ExactTM.lat: 19.479896\n    test 18 line 3 _ExactTM.lon: 75.662049\n    test 19 line 4 _ExactTM.easting: 3206390.691996\n    test 20 line 4 _ExactTM.northing: 2650745.400406\n    test 21 line 4 _ExactTM.gamma: 11.666950\n    test 22 line 4 _ExactTM.scale: 1.129359\n    test 23 line 4 _ExactTM.lat: 21.072465\n    test 24 line 4 _ExactTM.lon: 29.828684\n    test 25 line 5 _ExactTM.easting: 4328154.083501\n    test 26 line 5 _ExactTM.northing: 749647.623690\n    test 27 line 5 _ExactTM.gamma: 4.024317\n    test 28 line 5 _ExactTM.scale: 1.240829\n    test 29 line 5 _ExactTM.lat: 5.458957\n    test 30 line 5 _ExactTM.lon: 36.385237\n    test 31 line 6 _ExactTM.easting: 847598.266514\n    test 32 line 6 _ExactTM.northing: 7947180.962440\n    test 33 line 6 _ExactTM.gamma: 21.639091\n    test 34 line 6 _ExactTM.scale: 1.008399\n    test 35 line 6 _ExactTM.lat: 70.175454\n    test 36 line 6 _ExactTM.lon: 22.865350\n    test 37 line 7 _ExactTM.easting: 2727657.337974\n    test 38 line 7 _ExactTM.northing: 8283916.696410\n    test 39 line 7 _ExactTM.gamma: 55.690909\n    test 40 line 7 _ExactTM.scale: 1.091942\n    test 41 line 7 _ExactTM.lat: 61.965605\n    test 42 line 7 _ExactTM.lon: 58.931371\n    test 43 line 8 _ExactTM.easting: 2331001.751890\n    test 44 line 8 _ExactTM.northing: 1313608.224751\n    test 45 line 8 _ExactTM.gamma: 4.214690\n    test 46 line 8 _ExactTM.scale: 1.067599\n    test 47 line 8 _ExactTM.lat: 11.116050\n    test 48 line 8 _ExactTM.lon: 20.901069\n    test 49 line 9 _ExactTM.easting: 6035557.239480\n    test 50 line 9 _ExactTM.northing: 5791770.791879\n    test 51 line 9 _ExactTM.gamma: 43.698170\n    test 52 line 9 _ExactTM.scale: 1.481260\n    test 53 line 9 _ExactTM.lat: 32.210543\n    test 54 line 9 _ExactTM.lon: 60.705849\n    test 55 line 10 _ExactTM.easting: 1064553.125852\n    test 56 line 10 _ExactTM.northing: 9417273.737208\n    test 57 line 10 _ExactTM.gamma: 61.100380\n    test 58 line 10 _ExactTM.scale: 1.013475\n    test 59 line 10 _ExactTM.lat: 79.187451\n    test 60 line 10 _ExactTM.lon: 61.532382\n    test 61 line 11 _ExactTM.easting: 1400137.116164\n    test 62 line 11 _ExactTM.northing: 9616907.017686\n    test 63 line 11 _ExactTM.gamma: 74.527087\n    test 64 line 11 _ExactTM.scale: 1.023640\n    test 65 line 11 _ExactTM.lat: 77.103759\n    test 66 line 11 _ExactTM.lon: 74.899105\n    test 67 line 12 _ExactTM.easting: 9860691.016626\n    test 68 line 12 _ExactTM.northing: 7433039.143328\n    test 69 line 12 _ExactTM.gamma: 65.357693\n    test 70 line 12 _ExactTM.scale: 2.438973\n    test 71 line 12 _ExactTM.lat: 21.889514\n    test 72 line 12 _ExactTM.lon: 80.019886\n    test 73 line 13 _ExactTM.easting: 8076501.833695\n    test 74 line 13 _ExactTM.northing: 8561614.174782\n    test 75 line 13 _ExactTM.gamma: 75.073393\n    test 76 line 13 _ExactTM.scale: 1.906202\n    test 77 line 13 _ExactTM.lat: 30.536296\n    test 78 line 13 _ExactTM.lon: 82.186178\n    test 79 line 14 _ExactTM.easting: 3335099.866623\n    test 80 line 14 _ExactTM.northing: 6740519.084015\n    test 81 line 14 _ExactTM.gamma: 40.611821\n    test 82 line 14 _ExactTM.scale: 1.139021\n    test 83 line 14 _ExactTM.lat: 49.990485\n    test 84 line 14 _ExactTM.lon: 48.203179\n    test 85 line 15 _ExactTM.easting: 12051574.928500\n    test 86 line 15 _ExactTM.northing: 6587213.051951\n    test 87 line 15 _ExactTM.gamma: 59.033237\n    test 88 line 15 _ExactTM.scale: 3.357469\n    test 89 line 15 _ExactTM.lat: 14.486312\n    test 90 line 15 _ExactTM.lon: 80.905137\n    test 91 line 16 _ExactTM.easting: 5387578.735298\n    test 92 line 16 _ExactTM.northing: 4111216.907168\n    test 93 line 16 _ExactTM.gamma: 27.574337\n    test 94 line 16 _ExactTM.scale: 1.379357\n    test 95 line 16 _ExactTM.lat: 25.936824\n    test 96 line 16 _ExactTM.lon: 49.913598\n    test 97 line 17 _ExactTM.easting: 2622214.380233\n    test 98 line 17 _ExactTM.northing: 8678923.984567\n    test 99 line 17 _ExactTM.gamma: 61.697275\n    test 100 line 17 _ExactTM.scale: 1.084810\n    test 101 line 17 _ExactTM.lat: 64.402196\n    test 102 line 17 _ExactTM.lon: 64.091395\n    test 103 line 18 _ExactTM.easting: 5068474.169633\n    test 104 line 18 _ExactTM.northing: 9492066.993709\n    test 105 line 18 _ExactTM.gamma: 83.156740\n    test 106 line 18 _ExactTM.scale: 1.329990\n    test 107 line 18 _ExactTM.lat: 48.451354\n    test 108 line 18 _ExactTM.lon: 84.856198\n    test 109 line 19 _ExactTM.easting: 738062.047779\n    test 110 line 19 _ExactTM.northing: 3031007.074116\n    test 111 line 19 _ExactTM.gamma: 3.416802\n    test 112 line 19 _ExactTM.scale: 1.006332\n    test 113 line 19 _ExactTM.lat: 27.203895\n    test 114 line 19 _ExactTM.lon: 7.440229\n    test 115 line 20 _ExactTM.easting: 1944413.834565\n    test 116 line 20 _ExactTM.northing: 9613299.224493\n    test 117 line 20 _ExactTM.gamma: 78.462831\n    test 118 line 20 _ExactTM.scale: 1.046134\n    test 119 line 20 _ExactTM.lat: 72.509000\n    test 120 line 20 _ExactTM.lon: 78.982283\n    test 121 line 21 _ExactTM.easting: 2114521.418406\n    test 122 line 21 _ExactTM.northing: 4954077.440098\n    test 123 line 21 _ExactTM.gamma: 17.571878\n    test 124 line 21 _ExactTM.scale: 1.055093\n    test 125 line 21 _ExactTM.lat: 41.824954\n    test 126 line 21 _ExactTM.lon: 25.392744\n    test 127 line 22 _ExactTM.easting: 620365.905090\n    test 128 line 22 _ExactTM.northing: 4755542.026562\n    test 129 line 22 _ExactTM.gamma: 5.152022\n    test 130 line 22 _ExactTM.scale: 1.004338\n    test 131 line 22 _ExactTM.lat: 42.701376\n    test 132 line 22 _ExactTM.lon: 7.572738\n    test 133 line 23 _ExactTM.easting: 263004.770989\n    test 134 line 23 _ExactTM.northing: 4493669.762451\n    test 135 line 23 _ExactTM.gamma: 2.020523\n    test 136 line 23 _ExactTM.scale: 1.000452\n    test 137 line 23 _ExactTM.lat: 40.552052\n    test 138 line 23 _ExactTM.lon: 3.106056\n    test 139 line 24 _ExactTM.easting: 3217221.739462\n    test 140 line 24 _ExactTM.northing: 437776.119161\n    test 141 line 24 _ExactTM.gamma: 1.848169\n    test 142 line 24 _ExactTM.scale: 1.130558\n    test 143 line 24 _ExactTM.lat: 3.501242\n    test 144 line 24 _ExactTM.lon: 27.806507\n    test 145 line 25 _ExactTM.easting: 14661142.444961\n    test 146 line 25 _ExactTM.northing: 7476100.824185\n    test 147 line 25 _ExactTM.gamma: 68.376669\n    test 148 line 25 _ExactTM.scale: 4.896650\n    test 149 line 25 _ExactTM.lat: 10.148715\n    test 150 line 25 _ExactTM.lon: 85.373768\n    test 151 line 26 _ExactTM.easting: 967777.158554\n    test 152 line 26 _ExactTM.northing: 6615684.266592\n    test 153 line 26 _ExactTM.gamma: 14.410044\n    test 154 line 26 _ExactTM.scale: 1.011100\n    test 155 line 26 _ExactTM.lat: 58.582623\n    test 156 line 26 _ExactTM.lon: 16.755558\n    test 157 line 27 _ExactTM.easting: 7558840.728461\n    test 158 line 27 _ExactTM.northing: 4144728.130764\n    test 159 line 27 _ExactTM.gamma: 32.557264\n    test 160 line 27 _ExactTM.scale: 1.791490\n    test 161 line 27 _ExactTM.lat: 19.793004\n    test 162 line 27 _ExactTM.lon: 61.746763\n    test 163 line 28 _ExactTM.easting: 1056008.314161\n    test 164 line 28 _ExactTM.northing: 9290799.692669\n    test 165 line 28 _ExactTM.gamma: 55.843278\n    test 166 line 28 _ExactTM.scale: 1.013253\n    test 167 line 28 _ExactTM.lat: 78.666776\n    test 168 line 28 _ExactTM.lon: 56.365355\n    test 169 line 29 _ExactTM.easting: 1943965.134687\n    test 170 line 29 _ExactTM.northing: 1389972.228690\n    test 171 line 29 _ExactTM.gamma: 3.774869\n    test 172 line 29 _ExactTM.scale: 1.046724\n    test 173 line 29 _ExactTM.lat: 11.998788\n    test 174 line 29 _ExactTM.lon: 17.597873\n    test 175 line 30 _ExactTM.easting: 5803077.072902\n    test 176 line 30 _ExactTM.northing: 5649957.943659\n    test 177 line 30 _ExactTM.gamma: 41.717943\n    test 178 line 30 _ExactTM.scale: 1.442572\n    test 179 line 30 _ExactTM.lat: 32.540378\n    test 180 line 30 _ExactTM.lon: 58.764613\n    test 181 line 31 _ExactTM.easting: 2928716.986009\n    test 182 line 31 _ExactTM.northing: 5731835.058317\n    test 183 line 31 _ExactTM.gamma: 28.538550\n    test 184 line 31 _ExactTM.scale: 1.106780\n    test 185 line 31 _ExactTM.lat: 45.160356\n    test 186 line 31 _ExactTM.lon: 37.465285\n    test 187 line 32 _ExactTM.easting: 326141.975756\n    test 188 line 32 _ExactTM.northing: 8881325.164543\n    test 189 line 32 _ExactTM.gamma: 16.111415\n    test 190 line 32 _ExactTM.scale: 1.000900\n    test 191 line 32 _ExactTM.lat: 79.584190\n    test 192 line 32 _ExactTM.lon: 16.367006\n    test 193 line 33 _ExactTM.easting: 3933015.267450\n    test 194 line 33 _ExactTM.northing: 7932373.909512\n    test 195 line 33 _ExactTM.gamma: 58.577424\n    test 196 line 33 _ExactTM.scale: 1.194811\n    test 197 line 33 _ExactTM.lat: 52.470664\n    test 198 line 33 _ExactTM.lon: 64.125580\n    test 199 line 34 _ExactTM.easting: 8598926.983213\n    test 200 line 34 _ExactTM.northing: 6214135.167503\n    test 201 line 34 _ExactTM.gamma: 52.612878\n    test 202 line 34 _ExactTM.scale: 2.051367\n    test 203 line 34 _ExactTM.lat: 23.702673\n    test 204 line 34 _ExactTM.lon: 72.630363\n    test 205 line 35 _ExactTM.easting: 6620553.333772\n    test 206 line 35 _ExactTM.northing: 6540527.122948\n    test 207 line 35 _ExactTM.gamma: 52.350140\n    test 208 line 35 _ExactTM.scale: 1.586614\n    test 209 line 35 _ExactTM.lat: 32.603520\n    test 210 line 35 _ExactTM.lon: 67.280123\n    test 211 line 36 _ExactTM.easting: 1515136.758292\n    test 212 line 36 _ExactTM.northing: 3858996.087537\n    test 213 line 36 _ExactTM.gamma: 9.225127\n    test 214 line 36 _ExactTM.scale: 1.028029\n    test 215 line 36 _ExactTM.lat: 33.776224\n    test 216 line 36 _ExactTM.lon: 16.280993\n    test 217 line 37 _ExactTM.easting: 479854.373445\n    test 218 line 37 _ExactTM.northing: 8980501.389896\n    test 219 line 37 _ExactTM.gamma: 25.021222\n    test 220 line 37 _ExactTM.scale: 1.002415\n    test 221 line 37 _ExactTM.lat: 79.932747\n    test 222 line 37 _ExactTM.lon: 25.363622\n    test 223 line 38 _ExactTM.easting: 5243446.564940\n    test 224 line 38 _ExactTM.northing: 140657.213960\n    test 225 line 38 _ExactTM.gamma: 0.862817\n    test 226 line 38 _ExactTM.scale: 1.360358\n    test 227 line 38 _ExactTM.lat: 0.935056\n    test 228 line 38 _ExactTM.lon: 42.538824\n    test 229 line 39 _ExactTM.easting: 12806457.923218\n    test 230 line 39 _ExactTM.northing: 7170118.684675\n    test 231 line 39 _ExactTM.gamma: 64.708921\n    test 232 line 39 _ExactTM.scale: 3.740588\n    test 233 line 39 _ExactTM.lat: 13.490862\n    test 234 line 39 _ExactTM.lon: 83.178380\n    test 235 line 40 _ExactTM.easting: 1202993.459158\n    test 236 line 40 _ExactTM.northing: 5557316.053599\n    test 237 line 40 _ExactTM.gamma: 12.579061\n    test 238 line 40 _ExactTM.scale: 1.017426\n    test 239 line 40 _ExactTM.lat: 48.979057\n    test 240 line 40 _ExactTM.lon: 16.474542\n    test 241 line 41 _ExactTM.easting: 1729088.710196\n    test 242 line 41 _ExactTM.northing: 7770874.289954\n    test 243 line 41 _ExactTM.gamma: 36.021783\n    test 244 line 41 _ExactTM.scale: 1.036397\n    test 245 line 41 _ExactTM.lat: 65.036016\n    test 246 line 41 _ExactTM.lon: 38.729091\n    test 247 line 42 _ExactTM.easting: 2437301.517425\n    test 248 line 42 _ExactTM.northing: 5539327.748318\n    test 249 line 42 _ExactTM.gamma: 23.461879\n    test 250 line 42 _ExactTM.scale: 1.073459\n    test 251 line 42 _ExactTM.lat: 45.510091\n    test 252 line 42 _ExactTM.lon: 31.303729\n    test 253 line 43 _ExactTM.easting: 3647186.135066\n    test 254 line 43 _ExactTM.northing: 2086412.330983\n    test 255 line 43 _ExactTM.gamma: 10.023991\n    test 256 line 43 _ExactTM.scale: 1.168707\n    test 257 line 43 _ExactTM.lat: 16.058010\n    test 258 line 43 _ExactTM.lon: 32.520026\n    test 259 line 44 _ExactTM.easting: 1818497.243556\n    test 260 line 44 _ExactTM.northing: 4275471.745057\n    test 261 line 44 _ExactTM.gamma: 12.499656\n    test 262 line 44 _ExactTM.scale: 1.040604\n    test 263 line 44 _ExactTM.lat: 36.845200\n    test 264 line 44 _ExactTM.lon: 20.282283\n    test 265 line 45 _ExactTM.easting: 3751304.113783\n    test 266 line 45 _ExactTM.northing: 5130454.001592\n    test 267 line 45 _ExactTM.gamma: 28.959707\n    test 268 line 45 _ExactTM.scale: 1.177681\n    test 269 line 45 _ExactTM.lat: 37.865481\n    test 270 line 45 _ExactTM.lon: 41.990402\n    test 271 line 46 _ExactTM.easting: 2616733.138544\n    test 272 line 46 _ExactTM.northing: 394644.463815\n    test 273 line 46 _ExactTM.gamma: 1.390425\n    test 274 line 46 _ExactTM.scale: 1.085595\n    test 275 line 46 _ExactTM.lat: 3.287272\n    test 276 line 46 _ExactTM.lon: 22.917604\n    test 277 line 47 _ExactTM.easting: 1756506.573942\n    test 278 line 47 _ExactTM.northing: 5570393.986394\n    test 279 line 47 _ExactTM.gamma: 17.897894\n    test 280 line 47 _ExactTM.scale: 1.037732\n    test 281 line 47 _ExactTM.lat: 47.813686\n    test 282 line 47 _ExactTM.lon: 23.545092\n    test 283 line 48 _ExactTM.easting: 8752461.894711\n    test 284 line 48 _ExactTM.northing: 6087728.152284\n    test 285 line 48 _ExactTM.gamma: 51.628465\n    test 286 line 48 _ExactTM.scale: 2.095465\n    test 287 line 48 _ExactTM.lat: 22.836853\n    test 288 line 48 _ExactTM.lon: 72.604385\n    test 289 line 49 _ExactTM.easting: 1309272.216432\n    test 290 line 49 _ExactTM.northing: 59520.028899\n    test 291 line 49 _ExactTM.gamma: 0.109069\n    test 292 line 49 _ExactTM.scale: 1.020897\n    test 293 line 49 _ExactTM.lat: 0.527262\n    test 294 line 49 _ExactTM.lon: 11.684209\n    test 295 line 50 _ExactTM.easting: 328652.277129\n    test 296 line 50 _ExactTM.northing: 2233043.958874\n    test 297 line 50 _ExactTM.gamma: 1.084863\n    test 298 line 50 _ExactTM.scale: 1.000935\n    test 299 line 50 _ExactTM.lat: 20.166742\n    test 300 line 50 _ExactTM.lon: 3.143948\n    test 301 line 51 _ExactTM.easting: 8637959.716447\n    test 302 line 51 _ExactTM.northing: 9190635.156031\n    test 303 line 51 _ExactTM.gamma: 81.802563\n    test 304 line 51 _ExactTM.scale: 2.054329\n    test 305 line 51 _ExactTM.lat: 28.604629\n    test 306 line 51 _ExactTM.lon: 85.988721\n    test 307 line 52 _ExactTM.easting: 8548521.455147\n    test 308 line 52 _ExactTM.northing: 9172410.943282\n    test 309 line 52 _ExactTM.gamma: 81.583928\n    test 310 line 52 _ExactTM.scale: 2.029641\n    test 311 line 52 _ExactTM.lat: 28.984048\n    test 312 line 52 _ExactTM.lon: 85.833448\n    test 313 line 53 _ExactTM.easting: 796987.281104\n    test 314 line 53 _ExactTM.northing: 7677446.357675\n    test 315 line 53 _ExactTM.gamma: 18.084472\n    test 316 line 53 _ExactTM.scale: 1.007381\n    test 317 line 53 _ExactTM.lat: 68.071020\n    test 318 line 53 _ExactTM.lon: 19.392823\n    test 319 line 54 _ExactTM.easting: 3291036.496762\n    test 320 line 54 _ExactTM.northing: 9513199.600666\n    test 321 line 54 _ExactTM.gamma: 80.890254\n    test 322 line 54 _ExactTM.scale: 1.134826\n    test 323 line 54 _ExactTM.lat: 61.416576\n    test 324 line 54 _ExactTM.lon: 81.981611\n    test 325 line 55 _ExactTM.easting: 7087225.330906\n    test 326 line 55 _ExactTM.northing: 8382823.855822\n    test 327 line 55 _ExactTM.gamma: 72.253756\n    test 328 line 55 _ExactTM.scale: 1.678070\n    test 329 line 55 _ExactTM.lat: 35.074753\n    test 330 line 55 _ExactTM.lon: 79.496003\n    test 331 line 56 _ExactTM.easting: 5090358.125724\n    test 332 line 56 _ExactTM.northing: 4318294.133489\n    test 333 line 56 _ExactTM.gamma: 28.266280\n    test 334 line 56 _ExactTM.scale: 1.336264\n    test 335 line 56 _ExactTM.lat: 28.078790\n    test 336 line 56 _ExactTM.lon: 48.684350\n\n    test skipped (1): line 57 _ExactTM.'84.986930137199 2.067177857261 20163.0752214330146 9438635.9888499043815 2.059277291707588222 .99960496589466017622'\n    test 337 line 58 _ExactTM.easting: 3447670.550785\n    test 338 line 58 _ExactTM.northing: 3680238.888223\n    test 339 line 58 _ExactTM.gamma: 17.934948\n    test 340 line 58 _ExactTM.scale: 1.149831\n    test 341 line 58 _ExactTM.lat: 28.473948\n    test 342 line 58 _ExactTM.lon: 34.127306\n    test 343 line 59 _ExactTM.easting: 3396522.906798\n    test 344 line 59 _ExactTM.northing: 8093659.687593\n    test 345 line 59 _ExactTM.gamma: 57.747117\n    test 346 line 59 _ExactTM.scale: 1.144006\n    test 347 line 59 _ExactTM.lat: 56.629354\n    test 348 line 59 _ExactTM.lon: 62.196474\n    test 349 line 60 _ExactTM.easting: 11249894.100784\n    test 350 line 60 _ExactTM.northing: 1619226.506299\n    test 351 line 60 _ExactTM.gamma: 14.210358\n    test 352 line 60 _ExactTM.scale: 3.048347\n    test 353 line 60 _ExactTM.lat: 4.747762\n    test 354 line 60 _ExactTM.lon: 70.932555\n    test 355 line 61 _ExactTM.easting: 6808805.230950\n    test 356 line 61 _ExactTM.northing: 8044779.777369\n    test 357 line 61 _ExactTM.gamma: 68.242008\n    test 358 line 61 _ExactTM.scale: 1.621464\n    test 359 line 61 _ExactTM.lat: 35.882113\n    test 360 line 61 _ExactTM.lon: 76.741849\n    test 361 line 62 _ExactTM.easting: 2306021.556506\n    test 362 line 62 _ExactTM.northing: 757191.592866\n    test 363 line 62 _ExactTM.gamma: 2.385686\n    test 364 line 62 _ExactTM.scale: 1.066159\n    test 365 line 62 _ExactTM.lat: 6.420705\n    test 366 line 62 _ExactTM.lon: 20.416028\n    test 367 line 63 _ExactTM.easting: 1547406.313862\n    test 368 line 63 _ExactTM.northing: 6048712.751824\n    test 369 line 63 _ExactTM.gamma: 18.474372\n    test 370 line 63 _ExactTM.scale: 1.029123\n    test 371 line 63 _ExactTM.lat: 52.335248\n    test 372 line 63 _ExactTM.lon: 22.879294\n    test 373 line 64 _ExactTM.easting: 2430467.650383\n    test 374 line 64 _ExactTM.northing: 7557167.613972\n    test 375 line 64 _ExactTM.gamma: 42.110021\n    test 376 line 64 _ExactTM.scale: 1.072759\n    test 377 line 64 _ExactTM.lat: 59.846391\n    test 378 line 64 _ExactTM.lon: 46.262536\n    test 379 line 65 _ExactTM.easting: 2334053.905830\n    test 380 line 65 _ExactTM.northing: 1948076.966582\n    test 381 line 65 _ExactTM.gamma: 6.353185\n    test 382 line 65 _ExactTM.scale: 1.067733\n    test 383 line 65 _ExactTM.lat: 16.461790\n    test 384 line 65 _ExactTM.lon: 21.433269\n    test 385 line 66 _ExactTM.easting: 5564175.186737\n    test 386 line 66 _ExactTM.northing: 1836851.660412\n    test 387 line 66 _ExactTM.gamma: 11.870682\n    test 388 line 66 _ExactTM.scale: 1.408265\n    test 389 line 66 _ExactTM.lat: 11.707905\n    test 390 line 66 _ExactTM.lon: 45.827075\n    test 391 line 67 _ExactTM.easting: 6118505.590359\n    test 392 line 67 _ExactTM.northing: 7631684.552421\n    test 393 line 67 _ExactTM.gamma: 62.477323\n    test 394 line 67 _ExactTM.scale: 1.493420\n    test 395 line 67 _ExactTM.lat: 38.519075\n    test 396 line 67 _ExactTM.lon: 71.935918\n    test 397 line 68 _ExactTM.easting: 7365359.294665\n    test 398 line 68 _ExactTM.northing: 8818194.451531\n    test 399 line 68 _ExactTM.gamma: 77.207042\n    test 400 line 68 _ExactTM.scale: 1.737639\n    test 401 line 68 _ExactTM.lat: 34.264007\n    test 402 line 68 _ExactTM.lon: 82.647878\n    test 403 line 69 _ExactTM.easting: 36187.342415\n    test 404 line 69 _ExactTM.northing: 2142565.324802\n    test 405 line 69 _ExactTM.gamma: 0.114334\n    test 406 line 69 _ExactTM.scale: 0.999616\n    test 407 line 69 _ExactTM.lat: 19.376880\n    test 408 line 69 _ExactTM.lon: 0.344605\n    test 409 line 70 _ExactTM.easting: 2380328.546851\n    test 410 line 70 _ExactTM.northing: 8440109.872384\n    test 411 line 70 _ExactTM.gamma: 55.076067\n    test 412 line 70 _ExactTM.scale: 1.069658\n    test 413 line 70 _ExactTM.lat: 65.075805\n    test 414 line 70 _ExactTM.lon: 57.653438\n    test 415 line 71 _ExactTM.easting: 582511.608826\n    test 416 line 71 _ExactTM.northing: 8876047.217071\n    test 417 line 71 _ExactTM.gamma: 27.133300\n    test 418 line 71 _ExactTM.scale: 1.003749\n    test 419 line 71 _ExactTM.lat: 78.691870\n    test 420 line 71 _ExactTM.lon: 27.591736\n    test 421 line 72 _ExactTM.easting: 899441.350477\n    test 422 line 72 _ExactTM.northing: 4582046.430516\n    test 423 line 72 _ExactTM.gamma: 7.031211\n    test 424 line 72 _ExactTM.scale: 1.009573\n    test 425 line 72 _ExactTM.lat: 40.893022\n    test 426 line 72 _ExactTM.lon: 10.668804\n    test 427 line 73 _ExactTM.easting: 5022485.124337\n    test 428 line 73 _ExactTM.northing: 9741774.933721\n    test 429 line 73 _ExactTM.gamma: 86.505947\n    test 430 line 73 _ExactTM.scale: 1.323700\n    test 431 line 73 _ExactTM.lat: 48.914279\n    test 432 line 73 _ExactTM.lon: 87.359268\n    test 433 line 74 _ExactTM.easting: 6701004.587204\n    test 434 line 74 _ExactTM.northing: 2954368.258231\n    test 435 line 74 _ExactTM.gamma: 21.560153\n    test 436 line 74 _ExactTM.scale: 1.608554\n    test 437 line 74 _ExactTM.lat: 16.208377\n    test 438 line 74 _ExactTM.lon: 54.494282\n    test 439 line 75 _ExactTM.easting: 454986.218897\n    test 440 line 75 _ExactTM.northing: 4885087.887884\n    test 441 line 75 _ExactTM.gamma: 3.945648\n    test 442 line 75 _ExactTM.scale: 1.002147\n    test 443 line 75 _ExactTM.lat: 43.977936\n    test 444 line 75 _ExactTM.lon: 5.672541\n    test 445 line 76 _ExactTM.easting: 8903956.140311\n    test 446 line 76 _ExactTM.northing: 8470608.577482\n    test 447 line 76 _ExactTM.gamma: 74.723116\n    test 448 line 76 _ExactTM.scale: 2.131311\n    test 449 line 76 _ExactTM.lat: 26.850861\n    test 450 line 76 _ExactTM.lon: 82.834480\n    test 451 line 77 _ExactTM.easting: 1547627.594741\n    test 452 line 77 _ExactTM.northing: 6036584.538347\n    test 453 line 77 _ExactTM.gamma: 18.407629\n    test 454 line 77 _ExactTM.scale: 1.029132\n    test 455 line 77 _ExactTM.lat: 52.234165\n    test 456 line 77 _ExactTM.lon: 22.827655\n    test 457 line 78 _ExactTM.easting: 5221488.778597\n    test 458 line 78 _ExactTM.northing: 1762592.044392\n    test 459 line 78 _ExactTM.gamma: 10.927880\n    test 460 line 78 _ExactTM.scale: 1.356721\n    test 461 line 78 _ExactTM.lat: 11.674646\n    test 462 line 78 _ExactTM.lon: 43.500147\n    test 463 line 79 _ExactTM.easting: 4880570.297161\n    test 464 line 79 _ExactTM.northing: 3325433.988867\n    test 465 line 79 _ExactTM.gamma: 20.469862\n    test 466 line 79 _ExactTM.scale: 1.308476\n    test 467 line 79 _ExactTM.lat: 22.492753\n    test 468 line 79 _ExactTM.lon: 44.179153\n    test 469 line 80 _ExactTM.easting: 23930680.082694\n    test 470 line 80 _ExactTM.northing: 7491462.099038\n    test 471 line 80 _ExactTM.gamma: 75.937628\n    test 472 line 80 _ExactTM.scale: 15.556365\n    test 473 line 80 _ExactTM.lat: 0.910999\n    test 474 line 80 _ExactTM.lon: 88.548823\n    test 475 line 81 _ExactTM.easting: 71519.450458\n    test 476 line 81 _ExactTM.northing: 3654740.444852\n    test 477 line 81 _ExactTM.gamma: 0.417448\n    test 478 line 81 _ExactTM.scale: 0.999663\n    test 479 line 81 _ExactTM.lat: 33.028802\n    test 480 line 81 _ExactTM.lon: 0.765843\n    test 481 line 82 _ExactTM.easting: 4152797.795220\n    test 482 line 82 _ExactTM.northing: 7823098.502751\n    test 483 line 82 _ExactTM.gamma: 58.238901\n    test 484 line 82 _ExactTM.scale: 1.218052\n    test 485 line 82 _ExactTM.lat: 50.649195\n    test 486 line 82 _ExactTM.lon: 64.389076\n    test 487 line 83 _ExactTM.easting: 2926725.707639\n    test 488 line 83 _ExactTM.northing: 7904918.072844\n    test 489 line 83 _ExactTM.gamma: 51.592748\n    test 490 line 83 _ExactTM.scale: 1.106206\n    test 491 line 83 _ExactTM.lat: 58.820640\n    test 492 line 83 _ExactTM.lon: 55.841048\n    test 493 line 84 _ExactTM.easting: 1325509.113869\n    test 494 line 84 _ExactTM.northing: 9675214.948213\n    test 495 line 84 _ExactTM.gamma: 76.116213\n    test 496 line 84 _ExactTM.scale: 1.021136\n    test 497 line 84 _ExactTM.lat: 77.865762\n    test 498 line 84 _ExactTM.lon: 76.414618\n    test 499 line 85 _ExactTM.easting: 3045296.448926\n    test 500 line 85 _ExactTM.northing: 542153.443280\n    test 501 line 85 _ExactTM.gamma: 2.185095\n    test 502 line 85 _ExactTM.scale: 1.116664\n    test 503 line 85 _ExactTM.lat: 4.389639\n    test 504 line 85 _ExactTM.lon: 26.458976\n    test 505 line 86 _ExactTM.easting: 11843870.887518\n    test 506 line 86 _ExactTM.northing: 5912803.073343\n    test 507 line 86 _ExactTM.gamma: 52.814259\n    test 508 line 86 _ExactTM.scale: 3.267256\n    test 509 line 86 _ExactTM.lat: 13.924448\n    test 510 line 86 _ExactTM.lon: 79.017873\n    test 511 line 87 _ExactTM.easting: 8891099.704936\n    test 512 line 87 _ExactTM.northing: 162160.142227\n    test 513 line 87 _ExactTM.gamma: 1.312094\n    test 514 line 87 _ExactTM.scale: 2.157363\n    test 515 line 87 _ExactTM.lat: 0.679713\n    test 516 line 87 _ExactTM.lon: 62.036792\n    test 517 line 88 _ExactTM.easting: 4784814.214449\n    test 518 line 88 _ExactTM.northing: 2984497.432580\n    test 519 line 88 _ExactTM.gamma: 17.946545\n    test 520 line 88 _ExactTM.scale: 1.296116\n    test 521 line 88 _ExactTM.lat: 20.478281\n    test 522 line 88 _ExactTM.lon: 42.678234\n    test 523 line 89 _ExactTM.easting: 1772074.682154\n    test 524 line 89 _ExactTM.northing: 9491552.560143\n    test 525 line 89 _ExactTM.gamma: 73.634830\n    test 526 line 89 _ExactTM.scale: 1.038202\n    test 527 line 89 _ExactTM.lat: 73.695703\n    test 528 line 89 _ExactTM.lon: 74.259097\n    test 529 line 90 _ExactTM.easting: 1907649.782106\n    test 530 line 90 _ExactTM.northing: 6994232.429379\n    test 531 line 90 _ExactTM.gamma: 29.718929\n    test 532 line 90 _ExactTM.scale: 1.044503\n    test 533 line 90 _ExactTM.lat: 58.569370\n    test 534 line 90 _ExactTM.lon: 33.777549\n    test 535 line 91 _ExactTM.easting: 2084423.818962\n    test 536 line 91 _ExactTM.northing: 2211816.035619\n    test 537 line 91 _ExactTM.gamma: 6.556448\n    test 538 line 91 _ExactTM.scale: 1.053793\n    test 539 line 91 _ExactTM.lat: 18.933881\n    test 540 line 91 _ExactTM.lon: 19.492695\n    test 541 line 92 _ExactTM.easting: 1064373.671729\n    test 542 line 92 _ExactTM.northing: 7812482.547461\n    test 543 line 92 _ExactTM.gamma: 24.874124\n    test 544 line 92 _ExactTM.scale: 1.013490\n    test 545 line 92 _ExactTM.lat: 68.317934\n    test 546 line 92 _ExactTM.lon: 26.515687\n    test 547 line 93 _ExactTM.easting: 4770385.479297\n    test 548 line 93 _ExactTM.northing: 9734318.902980\n    test 549 line 93 _ExactTM.gamma: 86.273119\n    test 550 line 93 _ExactTM.scale: 1.290553\n    test 551 line 93 _ExactTM.lat: 50.641941\n    test 552 line 93 _ExactTM.lon: 87.111557\n    test 553 line 94 _ExactTM.easting: 6398096.677297\n    test 554 line 94 _ExactTM.northing: 4410894.752104\n    test 555 line 94 _ExactTM.gamma: 32.558023\n    test 556 line 94 _ExactTM.scale: 1.548004\n    test 557 line 94 _ExactTM.lat: 24.411298\n    test 558 line 94 _ExactTM.lon: 56.881823\n    test 559 line 95 _ExactTM.easting: 3138623.300415\n    test 560 line 95 _ExactTM.northing: 3082960.600798\n    test 561 line 95 _ExactTM.gamma: 13.557672\n    test 562 line 95 _ExactTM.scale: 1.123724\n    test 563 line 95 _ExactTM.lat: 24.571871\n    test 564 line 95 _ExactTM.lon: 30.073097\n    test 565 line 96 _ExactTM.easting: 2748325.794651\n    test 566 line 96 _ExactTM.northing: 4202811.912668\n    test 567 line 96 _ExactTM.gamma: 17.578706\n    test 568 line 96 _ExactTM.scale: 1.094102\n    test 569 line 96 _ExactTM.lat: 34.202576\n    test 570 line 96 _ExactTM.lon: 29.383166\n    test 571 line 97 _ExactTM.easting: 6677830.630367\n    test 572 line 97 _ExactTM.northing: 5350071.837395\n    test 573 line 97 _ExactTM.gamma: 41.306641\n    test 574 line 97 _ExactTM.scale: 1.599774\n    test 575 line 97 _ExactTM.lat: 27.756285\n    test 576 line 97 _ExactTM.lon: 61.881905\n    test 577 line 98 _ExactTM.easting: 5941536.667431\n    test 578 line 98 _ExactTM.northing: 3293112.175140\n    test 579 line 98 _ExactTM.gamma: 22.752845\n    test 580 line 98 _ExactTM.scale: 1.468473\n    test 581 line 98 _ExactTM.lat: 19.742270\n    test 582 line 98 _ExactTM.lon: 50.957821\n    test 583 line 99 _ExactTM.easting: 3152481.792567\n    test 584 line 99 _ExactTM.northing: 5903048.837978\n    test 585 line 99 _ExactTM.gamma: 31.494606\n    test 586 line 99 _ExactTM.scale: 1.124085\n    test 587 line 99 _ExactTM.lat: 45.453582\n    test 588 line 99 _ExactTM.lon: 40.659833\n    test 589 line 100 _ExactTM.easting: 10460475.897730\n    test 590 line 100 _ExactTM.northing: 2553463.624391\n    test 591 line 100 _ExactTM.gamma: 21.965869\n    test 592 line 100 _ExactTM.scale: 2.700296\n    test 593 line 100 _ExactTM.lat: 8.322144\n    test 594 line 100 _ExactTM.lon: 69.488157\n    test 595 line 101 _ExactTM.easting: 1964010.778021\n    test 596 line 101 _ExactTM.northing: 5634042.923056\n    test 597 line 101 _ExactTM.gamma: 20.117800\n    test 598 line 101 _ExactTM.scale: 1.047344\n    test 599 line 101 _ExactTM.lat: 47.749831\n    test 600 line 101 _ExactTM.lon: 26.322002\n    test 601 line 102 _ExactTM.easting: 2065306.424934\n    test 602 line 102 _ExactTM.northing: 2135008.468651\n    test 603 line 102 _ExactTM.gamma: 6.258981\n    test 604 line 102 _ExactTM.scale: 1.052800\n    test 605 line 102 _ExactTM.lat: 18.297493\n    test 606 line 102 _ExactTM.lon: 19.244669\n    test 607 line 103 _ExactTM.easting: 5127738.132976\n    test 608 line 103 _ExactTM.northing: 6793804.304411\n    test 609 line 103 _ExactTM.gamma: 50.557915\n    test 610 line 103 _ExactTM.scale: 1.339412\n    test 611 line 103 _ExactTM.lat: 40.834541\n    test 612 line 103 _ExactTM.lon: 61.650750\n    test 613 line 104 _ExactTM.easting: 8385525.148166\n    test 614 line 104 _ExactTM.northing: 6924932.344306\n    test 615 line 104 _ExactTM.gamma: 59.087561\n    test 616 line 104 _ExactTM.scale: 1.990364\n    test 617 line 104 _ExactTM.lat: 26.273247\n    test 618 line 104 _ExactTM.lon: 74.926694\n    test 619 line 105 _ExactTM.easting: 2297510.791909\n    test 620 line 105 _ExactTM.northing: 2805666.962834\n    test 621 line 105 _ExactTM.gamma: 9.301553\n    test 622 line 105 _ExactTM.scale: 1.065508\n    test 623 line 105 _ExactTM.lat: 23.698347\n    test 624 line 105 _ExactTM.lon: 22.155657\n    test 625 line 106 _ExactTM.easting: 13749544.917635\n    test 626 line 106 _ExactTM.northing: 8288728.384650\n    test 627 line 106 _ExactTM.gamma: 75.033970\n    test 628 line 106 _ExactTM.scale: 4.270588\n    test 629 line 106 _ExactTM.lat: 12.364113\n    test 630 line 106 _ExactTM.lon: 86.348578\n    test 631 line 107 _ExactTM.easting: 317518.455546\n    test 632 line 107 _ExactTM.northing: 1097517.583745\n    test 633 line 107 _ExactTM.gamma: 0.499004\n    test 634 line 107 _ExactTM.scale: 1.000848\n    test 635 line 107 _ExactTM.lat: 9.916091\n    test 636 line 107 _ExactTM.lon: 2.895277\n    test 637 line 108 _ExactTM.easting: 3856035.184888\n    test 638 line 108 _ExactTM.northing: 9141364.450290\n    test 639 line 108 _ExactTM.gamma: 75.972763\n    test 640 line 108 _ExactTM.scale: 1.186786\n    test 641 line 108 _ExactTM.lat: 56.553876\n    test 642 line 108 _ExactTM.lon: 78.215077\n    test 643 line 109 _ExactTM.easting: 1457484.942823\n    test 644 line 109 _ExactTM.northing: 9385297.101973\n    test 645 line 109 _ExactTM.gamma: 66.784662\n    test 646 line 109 _ExactTM.scale: 1.025660\n    test 647 line 109 _ExactTM.lat: 75.957631\n    test 648 line 109 _ExactTM.lon: 67.407383\n    test 649 line 110 _ExactTM.easting: 1304934.901841\n    test 650 line 110 _ExactTM.northing: 3604655.155715\n    test 651 line 110 _ExactTM.gamma: 7.343989\n    test 652 line 110 _ExactTM.scale: 1.020672\n    test 653 line 110 _ExactTM.lat: 31.826531\n    test 654 line 110 _ExactTM.lon: 13.731050\n    test 655 line 111 _ExactTM.easting: 1399093.491792\n    test 656 line 111 _ExactTM.northing: 8314607.120342\n    test 657 line 111 _ExactTM.gamma: 38.630161\n    test 658 line 111 _ExactTM.scale: 1.023625\n    test 659 line 111 _ExactTM.lat: 70.542985\n    test 660 line 111 _ExactTM.lon: 40.282055\n    test 661 line 112 _ExactTM.easting: 356983.618540\n    test 662 line 112 _ExactTM.northing: 4282309.048994\n    test 663 line 112 _ExactTM.gamma: 2.561485\n    test 664 line 112 _ExactTM.scale: 1.001170\n    test 665 line 112 _ExactTM.lat: 38.617487\n    test 666 line 112 _ExactTM.lon: 4.099838\n    test 667 line 113 _ExactTM.easting: 9952911.325091\n    test 668 line 113 _ExactTM.northing: 1510288.212229\n    test 669 line 113 _ExactTM.gamma: 12.752154\n    test 670 line 113 _ExactTM.scale: 2.511357\n    test 671 line 113 _ExactTM.lat: 5.389447\n    test 672 line 113 _ExactTM.lon: 66.729612\n    test 673 line 114 _ExactTM.easting: 6367592.504007\n    test 674 line 114 _ExactTM.northing: 1200437.077672\n    test 675 line 114 _ExactTM.gamma: 8.338041\n    test 676 line 114 _ExactTM.scale: 1.546210\n    test 677 line 114 _ExactTM.lat: 6.995168\n    test 678 line 114 _ExactTM.lon: 50.014763\n    test 679 line 115 _ExactTM.easting: 4391263.676460\n    test 680 line 115 _ExactTM.northing: 6325455.989408\n    test 681 line 115 _ExactTM.gamma: 42.653541\n    test 682 line 115 _ExactTM.scale: 1.245560\n    test 683 line 115 _ExactTM.lat: 42.321894\n    test 684 line 115 _ExactTM.lon: 53.784040\n    test 685 line 116 _ExactTM.easting: 6209880.527527\n    test 686 line 116 _ExactTM.northing: 2154754.449747\n    test 687 line 116 _ExactTM.gamma: 14.919512\n    test 688 line 116 _ExactTM.scale: 1.516560\n    test 689 line 116 _ExactTM.lat: 12.698515\n    test 690 line 116 _ExactTM.lon: 50.242047\n    test 691 line 117 _ExactTM.easting: 1507053.688772\n    test 692 line 117 _ExactTM.northing: 6261383.513280\n    test 693 line 117 _ExactTM.gamma: 19.280373\n    test 694 line 117 _ExactTM.scale: 1.027584\n    test 695 line 117 _ExactTM.lat: 54.207636\n    test 696 line 117 _ExactTM.lon: 23.325731\n    test 697 line 118 _ExactTM.easting: 8332725.003777\n    test 698 line 118 _ExactTM.northing: 3002712.329753\n    test 699 line 118 _ExactTM.gamma: 24.059212\n    test 700 line 118 _ExactTM.scale: 1.990450\n    test 701 line 118 _ExactTM.lat: 13.224787\n    test 702 line 118 _ExactTM.lon: 62.426698\n    test 703 line 119 _ExactTM.easting: 3958910.085235\n    test 704 line 119 _ExactTM.northing: 3462284.926102\n    test 705 line 119 _ExactTM.gamma: 18.546398\n    test 706 line 119 _ExactTM.scale: 1.199351\n    test 707 line 119 _ExactTM.lat: 25.650282\n    test 708 line 119 _ExactTM.lon: 37.710391\n    test 709 line 120 _ExactTM.easting: 10452892.282083\n    test 710 line 120 _ExactTM.northing: 8000059.605114\n    test 711 line 120 _ExactTM.gamma: 71.075240\n    test 712 line 120 _ExactTM.scale: 2.650111\n    test 713 line 120 _ExactTM.lat: 20.684773\n    test 714 line 120 _ExactTM.lon: 82.849734\n    test 715 line 121 _ExactTM.easting: 496148.253731\n    test 716 line 121 _ExactTM.northing: 6388503.365043\n    test 717 line 121 _ExactTM.gamma: 6.970955\n    test 718 line 121 _ExactTM.scale: 1.002620\n    test 719 line 121 _ExactTM.lat: 57.367533\n    test 720 line 121 _ExactTM.lon: 8.260866\n    test 721 line 122 _ExactTM.easting: 7375792.085850\n    test 722 line 122 _ExactTM.northing: 5544624.072155\n    test 723 line 122 _ExactTM.gamma: 44.510851\n    test 724 line 122 _ExactTM.scale: 1.745898\n    test 725 line 122 _ExactTM.lat: 25.958757\n    test 726 line 122 _ExactTM.lon: 65.760477\n    test 727 line 123 _ExactTM.easting: 2826258.041979\n    test 728 line 123 _ExactTM.northing: 5167759.816959\n    test 729 line 123 _ExactTM.gamma: 23.783897\n    test 730 line 123 _ExactTM.scale: 1.099415\n    test 731 line 123 _ExactTM.lat: 41.395848\n    test 732 line 123 _ExactTM.lon: 33.661790\n    test 733 line 124 _ExactTM.easting: 3958563.378851\n    test 734 line 124 _ExactTM.northing: 8499923.231243\n    test 735 line 124 _ExactTM.gamma: 66.570945\n    test 736 line 124 _ExactTM.scale: 1.197296\n    test 737 line 124 _ExactTM.lat: 54.266617\n    test 738 line 124 _ExactTM.lon: 70.602199\n    test 739 line 125 _ExactTM.easting: 4408189.533462\n    test 740 line 125 _ExactTM.northing: 8046312.003642\n    test 741 line 125 _ExactTM.gamma: 62.216959\n    test 742 line 125 _ExactTM.scale: 1.246750\n    test 743 line 125 _ExactTM.lat: 49.840393\n    test 744 line 125 _ExactTM.lon: 68.036728\n    test 745 line 126 _ExactTM.easting: 3629225.627512\n    test 746 line 126 _ExactTM.northing: 6371258.454645\n    test 747 line 126 _ExactTM.gamma: 38.881675\n    test 748 line 126 _ExactTM.scale: 1.165511\n    test 749 line 126 _ExactTM.lat: 46.306035\n    test 750 line 126 _ExactTM.lon: 48.085828\n    test 751 line 127 _ExactTM.easting: 602838.450710\n    test 752 line 127 _ExactTM.northing: 4851370.637205\n    test 753 line 127 _ExactTM.gamma: 5.160395\n    test 754 line 127 _ExactTM.scale: 1.004073\n    test 755 line 127 _ExactTM.lat: 43.570988\n    test 756 line 127 _ExactTM.lon: 7.464494\n    test 757 line 128 _ExactTM.easting: 764616.665051\n    test 758 line 128 _ExactTM.northing: 2164299.337945\n    test 759 line 128 _ExactTM.gamma: 2.429300\n    test 760 line 128 _ExactTM.scale: 1.006835\n    test 761 line 128 _ExactTM.lat: 19.427290\n    test 762 line 128 _ExactTM.lon: 7.268247\n    test 763 line 129 _ExactTM.easting: 5048953.021931\n    test 764 line 129 _ExactTM.northing: 1885974.057398\n    test 765 line 129 _ExactTM.gamma: 11.459804\n    test 766 line 129 _ExactTM.scale: 1.332207\n    test 767 line 129 _ExactTM.lat: 12.713794\n    test 768 line 129 _ExactTM.lon: 42.507018\n    test 769 line 130 _ExactTM.easting: 2293996.601155\n    test 770 line 130 _ExactTM.northing: 2392408.644221\n    test 771 line 130 _ExactTM.gamma: 7.791838\n    test 772 line 130 _ExactTM.scale: 1.065348\n    test 773 line 130 _ExactTM.lat: 20.238782\n    test 774 line 130 _ExactTM.lon: 21.566068\n    test 775 line 131 _ExactTM.easting: 1530603.839418\n    test 776 line 131 _ExactTM.northing: 7287841.459898\n    test 777 line 131 _ExactTM.gamma: 27.502921\n    test 778 line 131 _ExactTM.scale: 1.028416\n    test 779 line 131 _ExactTM.lat: 62.367847\n    test 780 line 131 _ExactTM.lon: 30.438849\n    test 781 line 132 _ExactTM.easting: 2660000.093152\n    test 782 line 132 _ExactTM.northing: 5161982.213248\n    test 783 line 132 _ExactTM.gamma: 22.629836\n    test 784 line 132 _ExactTM.scale: 1.087851\n    test 785 line 132 _ExactTM.lat: 41.891569\n    test 786 line 132 _ExactTM.lon: 31.959547\n    test 787 line 133 _ExactTM.easting: 5037478.329414\n    test 788 line 133 _ExactTM.northing: 8768172.379908\n    test 789 line 133 _ExactTM.gamma: 73.511182\n    test 790 line 133 _ExactTM.scale: 1.325919\n    test 791 line 133 _ExactTM.lat: 47.664248\n    test 792 line 133 _ExactTM.lon: 77.630062\n    test 793 line 134 _ExactTM.easting: 2289650.957799\n    test 794 line 134 _ExactTM.northing: 8784328.593607\n    test 795 line 134 _ExactTM.gamma: 60.786067\n    test 796 line 134 _ExactTM.scale: 1.064346\n    test 797 line 134 _ExactTM.lat: 67.259559\n    test 798 line 134 _ExactTM.lon: 62.715293\n    test 799 line 135 _ExactTM.easting: 647913.889744\n    test 800 line 135 _ExactTM.northing: 6742382.228217\n    test 801 line 135 _ExactTM.gamma: 10.252667\n    test 802 line 135 _ExactTM.scale: 1.004748\n    test 803 line 135 _ExactTM.lat: 60.295381\n    test 804 line 135 _ExactTM.lon: 11.763097\n    test 805 line 136 _ExactTM.easting: 1118372.698566\n    test 806 line 136 _ExactTM.northing: 9040627.942263\n    test 807 line 136 _ExactTM.gamma: 48.936803\n    test 808 line 136 _ExactTM.scale: 1.014920\n    test 809 line 136 _ExactTM.lat: 76.878914\n    test 810 line 136 _ExactTM.lon: 49.685773\n    test 811 line 137 _ExactTM.easting: 440696.510070\n    test 812 line 137 _ExactTM.northing: 5500355.826297\n    test 813 line 137 _ExactTM.gamma: 4.636104\n    test 814 line 137 _ExactTM.scale: 1.001986\n    test 815 line 137 _ExactTM.lat: 49.495349\n    test 816 line 137 _ExactTM.lon: 6.087551\n    test 817 line 138 _ExactTM.easting: 601728.149727\n    test 818 line 138 _ExactTM.northing: 9095352.048149\n    test 819 line 138 _ExactTM.gamma: 33.435771\n    test 820 line 138 _ExactTM.scale: 1.004027\n    test 821 line 138 _ExactTM.lat: 80.297265\n    test 822 line 138 _ExactTM.lon: 33.816372\n    test 823 line 139 _ExactTM.easting: 3481444.777827\n    test 824 line 139 _ExactTM.northing: 291665.708749\n    test 825 line 139 _ExactTM.gamma: 1.314726\n    test 826 line 139 _ExactTM.scale: 1.153534\n    test 827 line 139 _ExactTM.lat: 2.286437\n    test 828 line 139 _ExactTM.lon: 29.855149\n    test 829 line 140 _ExactTM.easting: 3515304.901524\n    test 830 line 140 _ExactTM.northing: 1443981.882918\n    test 831 line 140 _ExactTM.gamma: 6.641638\n    test 832 line 140 _ExactTM.scale: 1.156509\n    test 833 line 140 _ExactTM.lat: 11.264457\n    test 834 line 140 _ExactTM.lon: 30.743907\n    test 835 line 141 _ExactTM.easting: 160012.186959\n    test 836 line 141 _ExactTM.northing: 3922609.253231\n    test 837 line 141 _ExactTM.gamma: 1.022225\n    test 838 line 141 _ExactTM.scale: 0.999916\n    test 839 line 141 _ExactTM.lat: 35.434073\n    test 840 line 141 _ExactTM.lon: 1.762795\n    test 841 line 142 _ExactTM.easting: 4163744.245622\n    test 842 line 142 _ExactTM.northing: 936884.674804\n    test 843 line 142 _ExactTM.gamma: 4.892559\n    test 844 line 142 _ExactTM.scale: 1.222164\n    test 845 line 142 _ExactTM.lat: 6.923695\n    test 846 line 142 _ExactTM.lon: 35.289456\n    test 847 line 143 _ExactTM.easting: 6155200.017926\n    test 848 line 143 _ExactTM.northing: 6926306.628390\n    test 849 line 143 _ExactTM.gamma: 55.103258\n    test 850 line 143 _ExactTM.scale: 1.500556\n    test 851 line 143 _ExactTM.lat: 36.129672\n    test 852 line 143 _ExactTM.lon: 67.533176\n    test 853 line 144 _ExactTM.easting: 16263383.285440\n    test 854 line 144 _ExactTM.northing: 3591296.731341\n    test 855 line 144 _ExactTM.gamma: 36.040254\n    test 856 line 144 _ExactTM.scale: 6.589288\n    test 857 line 144 _ExactTM.lat: 4.406529\n    test 858 line 144 _ExactTM.lon: 81.965734\n    test 859 line 145 _ExactTM.easting: 14220995.515398\n    test 860 line 145 _ExactTM.northing: 5100587.457503\n    test 861 line 145 _ExactTM.gamma: 47.314258\n    test 862 line 145 _ExactTM.scale: 4.693202\n    test 863 line 145 _ExactTM.lat: 8.474589\n    test 864 line 145 _ExactTM.lon: 81.129945\n    test 865 line 146 _ExactTM.easting: 3173034.802372\n    test 866 line 146 _ExactTM.northing: 7263421.942957\n    test 867 line 146 _ExactTM.gamma: 45.215808\n    test 868 line 146 _ExactTM.scale: 1.125410\n    test 869 line 146 _ExactTM.lat: 53.907276\n    test 870 line 146 _ExactTM.lon: 51.252904\n    test 871 line 147 _ExactTM.easting: 10253274.092204\n    test 872 line 147 _ExactTM.northing: 8867574.299792\n    test 873 line 147 _ExactTM.gamma: 79.198250\n    test 874 line 147 _ExactTM.scale: 2.572372\n    test 875 line 147 _ExactTM.lat: 22.120545\n    test 876 line 147 _ExactTM.lon: 85.756782\n    test 877 line 148 _ExactTM.easting: 2415561.483230\n    test 878 line 148 _ExactTM.northing: 8813225.217097\n    test 879 line 148 _ExactTM.gamma: 62.548978\n    test 880 line 148 _ExactTM.scale: 1.071748\n    test 881 line 148 _ExactTM.lat: 66.444100\n    test 882 line 148 _ExactTM.lon: 64.532960\n    test 883 line 149 _ExactTM.easting: 9589179.293295\n    test 884 line 149 _ExactTM.northing: 1777680.784143\n    test 885 line 149 _ExactTM.gamma: 14.838483\n    test 886 line 149 _ExactTM.scale: 2.380716\n    test 887 line 149 _ExactTM.lat: 6.670965\n    test 888 line 149 _ExactTM.lon: 65.660408\n    test 889 line 150 _ExactTM.easting: 727939.438391\n    test 890 line 150 _ExactTM.northing: 3684363.236810\n    test 891 line 150 _ExactTM.gamma: 4.266227\n    test 892 line 150 _ExactTM.scale: 1.006140\n    test 893 line 150 _ExactTM.lat: 33.054057\n    test 894 line 150 _ExactTM.lon: 7.787458\n    test 895 line 151 _ExactTM.easting: 1250765.991085\n    test 896 line 151 _ExactTM.northing: 792869.242719\n    test 897 line 151 _ExactTM.gamma: 1.396497\n    test 898 line 151 _ExactTM.scale: 1.019026\n    test 899 line 151 _ExactTM.lat: 7.035525\n    test 900 line 151 _ExactTM.lon: 11.253707\n    test 901 line 152 _ExactTM.easting: 710421.705887\n    test 902 line 152 _ExactTM.northing: 5019406.075928\n    test 903 line 152 _ExactTM.gamma: 6.393949\n    test 904 line 152 _ExactTM.scale: 1.005812\n    test 905 line 152 _ExactTM.lat: 44.971340\n    test 906 line 152 _ExactTM.lon: 9.009304\n    test 907 line 153 _ExactTM.easting: 4600995.074643\n    test 908 line 153 _ExactTM.northing: 4505712.084593\n    test 909 line 153 _ExactTM.gamma: 27.997458\n    test 910 line 153 _ExactTM.scale: 1.271841\n    test 911 line 153 _ExactTM.lat: 30.821397\n    test 912 line 153 _ExactTM.lon: 45.970577\n    test 913 line 154 _ExactTM.easting: 557642.627782\n    test 914 line 154 _ExactTM.northing: 7006911.251644\n    test 915 line 154 _ExactTM.gamma: 9.769903\n    test 916 line 154 _ExactTM.scale: 1.003411\n    test 917 line 154 _ExactTM.lat: 62.763886\n    test 918 line 154 _ExactTM.lon: 10.960144\n    test 919 line 155 _ExactTM.easting: 4635062.294291\n    test 920 line 155 _ExactTM.northing: 2702556.153311\n    test 921 line 155 _ExactTM.gamma: 15.779547\n    test 922 line 155 _ExactTM.scale: 1.277178\n    test 923 line 155 _ExactTM.lat: 18.888611\n    test 924 line 155 _ExactTM.lon: 41.009871\n    test 925 line 156 _ExactTM.easting: 14554962.255919\n    test 926 line 156 _ExactTM.northing: 4716639.908572\n    test 927 line 156 _ExactTM.gamma: 44.192751\n    test 928 line 156 _ExactTM.scale: 4.960020\n    test 929 line 156 _ExactTM.lat: 7.524119\n    test 930 line 156 _ExactTM.lon: 81.050715\n    test 931 line 157 _ExactTM.easting: 882126.661736\n    test 932 line 157 _ExactTM.northing: 7947612.369506\n    test 933 line 157 _ExactTM.gamma: 22.429487\n    test 934 line 157 _ExactTM.scale: 1.009132\n    test 935 line 157 _ExactTM.lat: 70.063902\n    test 936 line 157 _ExactTM.lon: 23.705255\n    test 937 line 158 _ExactTM.easting: 20262021.645983\n    test 938 line 158 _ExactTM.northing: 8113827.820796\n    test 939 line 158 _ExactTM.gamma: 76.936057\n    test 940 line 158 _ExactTM.scale: 10.349092\n    test 941 line 158 _ExactTM.lat: 3.556526\n    test 942 line 158 _ExactTM.lon: 88.363529\n    test 943 line 159 _ExactTM.easting: 6500508.399850\n    test 944 line 159 _ExactTM.northing: 6956476.342368\n    test 945 line 159 _ExactTM.gamma: 56.237116\n    test 946 line 159 _ExactTM.scale: 1.563162\n    test 947 line 159 _ExactTM.lat: 34.551257\n    test 948 line 159 _ExactTM.lon: 69.111091\n    test 949 line 160 _ExactTM.easting: 3884036.641314\n    test 950 line 160 _ExactTM.northing: 6890167.411733\n    test 951 line 160 _ExactTM.gamma: 45.760130\n    test 952 line 160 _ExactTM.scale: 1.190167\n    test 953 line 160 _ExactTM.lat: 47.929051\n    test 954 line 160 _ExactTM.lon: 54.103418\n    test 955 line 161 _ExactTM.easting: 217855.546078\n    test 956 line 161 _ExactTM.northing: 6184108.122568\n    test 957 line 161 _ExactTM.gamma: 2.870993\n    test 958 line 161 _ExactTM.scale: 1.000182\n    test 959 line 161 _ExactTM.lat: 55.753536\n    test 960 line 161 _ExactTM.lon: 3.471798\n    test 961 line 162 _ExactTM.easting: 11384139.290402\n    test 962 line 162 _ExactTM.northing: 8893889.949556\n    test 963 line 162 _ExactTM.gamma: 79.774854\n    test 964 line 162 _ExactTM.scale: 3.024672\n    test 965 line 162 _ExactTM.lat: 18.530847\n    test 966 line 162 _ExactTM.lon: 86.555312\n    test 967 line 163 _ExactTM.easting: 3469855.989805\n    test 968 line 163 _ExactTM.northing: 7723193.799228\n    test 969 line 163 _ExactTM.gamma: 53.114700\n    test 970 line 163 _ExactTM.scale: 1.150540\n    test 971 line 163 _ExactTM.lat: 54.510125\n    test 972 line 163 _ExactTM.lon: 58.556056\n    test 973 line 164 _ExactTM.easting: 5926165.994939\n    test 974 line 164 _ExactTM.northing: 9385463.732747\n    test 975 line 164 _ExactTM.gamma: 82.506981\n    test 976 line 164 _ExactTM.scale: 1.459758\n    test 977 line 164 _ExactTM.lat: 42.864162\n    test 978 line 164 _ExactTM.lon: 84.866326\n    test 979 line 165 _ExactTM.easting: 5798639.662224\n    test 980 line 165 _ExactTM.northing: 5305387.640916\n    test 981 line 165 _ExactTM.gamma: 38.617257\n    test 982 line 165 _ExactTM.scale: 1.442263\n    test 983 line 165 _ExactTM.lat: 30.911943\n    test 984 line 165 _ExactTM.lon: 57.114102\n    test 985 line 166 _ExactTM.easting: 9464.934388\n    test 986 line 166 _ExactTM.northing: 6489121.624944\n    test 987 line 166 _ExactTM.gamma: 0.138696\n    test 988 line 166 _ExactTM.scale: 0.999601\n    test 989 line 166 _ExactTM.lat: 58.542493\n    test 990 line 166 _ExactTM.lon: 0.162593\n    test 991 line 167 _ExactTM.easting: 12575834.275614\n    test 992 line 167 _ExactTM.northing: 8356610.895486\n    test 993 line 167 _ExactTM.gamma: 75.235223\n    test 994 line 167 _ExactTM.scale: 3.599442\n    test 995 line 167 _ExactTM.lat: 15.022689\n    test 996 line 167 _ExactTM.lon: 85.792615\n    test 997 line 168 _ExactTM.easting: 2719653.543469\n    test 998 line 168 _ExactTM.northing: 9362389.163495\n    test 999 line 168 _ExactTM.gamma: 76.049670\n    test 1000 line 168 _ExactTM.scale: 1.091315\n    test 1001 line 168 _ExactTM.lat: 65.692275\n    test 1002 line 168 _ExactTM.lon: 77.241377\n    test 1003 line 169 _ExactTM.easting: 4845341.924698\n    test 1004 line 169 _ExactTM.northing: 8710522.326901\n    test 1005 line 169 _ExactTM.gamma: 72.320942\n    test 1006 line 169 _ExactTM.scale: 1.300382\n    test 1007 line 169 _ExactTM.lat: 48.806211\n    test 1008 line 169 _ExactTM.lon: 76.486365\n    test 1009 line 170 _ExactTM.easting: 3935261.522763\n    test 1010 line 170 _ExactTM.northing: 9454271.649062\n    test 1011 line 170 _ExactTM.gamma: 81.162334\n    test 1012 line 170 _ExactTM.scale: 1.194767\n    test 1013 line 170 _ExactTM.lat: 56.436025\n    test 1014 line 170 _ExactTM.lon: 82.611568\n    test 1015 line 171 _ExactTM.easting: 7074299.823000\n    test 1016 line 171 _ExactTM.northing: 1648736.065055\n    test 1017 line 171 _ExactTM.gamma: 12.145925\n    test 1018 line 171 _ExactTM.scale: 1.687551\n    test 1019 line 171 _ExactTM.lat: 8.766053\n    test 1020 line 171 _ExactTM.lon: 54.367539\n    test 1021 line 172 _ExactTM.easting: 3689072.579308\n    test 1022 line 172 _ExactTM.northing: 2230802.665211\n    test 1023 line 172 _ExactTM.gamma: 10.856248\n    test 1024 line 172 _ExactTM.scale: 1.172689\n    test 1025 line 172 _ExactTM.lat: 17.095495\n    test 1026 line 172 _ExactTM.lon: 33.059128\n    test 1027 line 173 _ExactTM.easting: 8102565.885587\n    test 1028 line 173 _ExactTM.northing: 5167396.617580\n    test 1029 line 173 _ExactTM.gamma: 42.324886\n    test 1030 line 173 _ExactTM.scale: 1.921927\n    test 1031 line 173 _ExactTM.lat: 22.142861\n    test 1032 line 173 _ExactTM.lon: 67.200684\n    test 1033 line 174 _ExactTM.easting: 8181271.353564\n    test 1034 line 174 _ExactTM.northing: 4425436.547185\n    test 1035 line 174 _ExactTM.gamma: 35.900845\n    test 1036 line 174 _ExactTM.scale: 1.945017\n    test 1037 line 174 _ExactTM.lat: 19.222623\n    test 1038 line 174 _ExactTM.lon: 65.180785\n    test 1039 line 175 _ExactTM.easting: 767067.394003\n    test 1040 line 175 _ExactTM.northing: 3701745.857296\n    test 1041 line 175 _ExactTM.gamma: 4.519201\n    test 1042 line 175 _ExactTM.scale: 1.006863\n    test 1043 line 175 _ExactTM.lat: 33.182474\n    test 1044 line 175 _ExactTM.lon: 8.216952\n    test 1045 line 176 _ExactTM.easting: 6688114.168572\n    test 1046 line 176 _ExactTM.northing: 2052857.299639\n    test 1047 line 176 _ExactTM.gamma: 14.766191\n    test 1048 line 176 _ExactTM.scale: 1.607200\n    test 1049 line 176 _ExactTM.lat: 11.417963\n    test 1050 line 176 _ExactTM.lon: 52.808691\n    test 1051 line 177 _ExactTM.easting: 5608408.773761\n    test 1052 line 177 _ExactTM.northing: 3859055.659110\n    test 1053 line 177 _ExactTM.gamma: 26.244151\n    test 1054 line 177 _ExactTM.scale: 1.413463\n    test 1055 line 177 _ExactTM.lat: 23.836688\n    test 1056 line 177 _ExactTM.lon: 50.500180\n    test 1057 line 178 _ExactTM.easting: 3836942.765275\n    test 1058 line 178 _ExactTM.northing: 6415467.634326\n    test 1059 line 178 _ExactTM.gamma: 40.575885\n    test 1060 line 178 _ExactTM.scale: 1.185615\n    test 1061 line 178 _ExactTM.lat: 45.550020\n    test 1062 line 178 _ExactTM.lon: 50.148036\n    test 1063 line 179 _ExactTM.easting: 1298730.366025\n    test 1064 line 179 _ExactTM.northing: 6021453.000792\n    test 1065 line 179 _ExactTM.gamma: 15.613320\n    test 1066 line 179 _ExactTM.scale: 1.020367\n    test 1067 line 179 _ExactTM.lat: 52.746079\n    test 1068 line 179 _ExactTM.lon: 19.343926\n    test 1069 line 180 _ExactTM.easting: 416934.289208\n    test 1070 line 180 _ExactTM.northing: 7295683.451705\n    test 1071 line 180 _ExactTM.gamma: 8.238232\n    test 1072 line 180 _ExactTM.scale: 1.001729\n    test 1073 line 180 _ExactTM.lat: 65.513348\n    test 1074 line 180 _ExactTM.lon: 9.039529\n    test 1075 line 181 _ExactTM.easting: 4336076.850889\n    test 1076 line 181 _ExactTM.northing: 7617975.722779\n    test 1077 line 181 _ExactTM.gamma: 56.537088\n    test 1078 line 181 _ExactTM.scale: 1.238582\n    test 1079 line 181 _ExactTM.lat: 48.709795\n    test 1080 line 181 _ExactTM.lon: 63.554005\n    test 1081 line 182 _ExactTM.easting: 168047.336980\n    test 1082 line 182 _ExactTM.northing: 2185000.046530\n    test 1083 line 182 _ExactTM.gamma: 0.542187\n    test 1084 line 182 _ExactTM.scale: 0.999949\n    test 1085 line 182 _ExactTM.lat: 19.753509\n    test 1086 line 182 _ExactTM.lon: 1.603846\n    test 1087 line 183 _ExactTM.easting: 8276281.328790\n    test 1088 line 183 _ExactTM.northing: 263444.350545\n    test 1089 line 183 _ExactTM.gamma: 2.071435\n    test 1090 line 183 _ExactTM.scale: 1.980314\n    test 1091 line 183 _ExactTM.lat: 1.202816\n    test 1092 line 183 _ExactTM.lon: 59.377276\n    test 1093 line 184 _ExactTM.easting: 4772573.810710\n    test 1094 line 184 _ExactTM.northing: 6765710.336002\n    test 1095 line 184 _ExactTM.gamma: 48.857561\n    test 1096 line 184 _ExactTM.scale: 1.291911\n    test 1097 line 184 _ExactTM.lat: 42.564975\n    test 1098 line 184 _ExactTM.lon: 59.356947\n    test 1099 line 185 _ExactTM.easting: 5427755.074639\n    test 1100 line 185 _ExactTM.northing: 1556055.820924\n    test 1101 line 185 _ExactTM.gamma: 9.862178\n    test 1102 line 185 _ExactTM.scale: 1.387394\n    test 1103 line 185 _ExactTM.lat: 10.090572\n    test 1104 line 185 _ExactTM.lon: 44.604132\n    test 1105 line 186 _ExactTM.easting: 11588458.616041\n    test 1106 line 186 _ExactTM.northing: 5707993.922613\n    test 1107 line 186 _ExactTM.gamma: 50.784827\n    test 1108 line 186 _ExactTM.scale: 3.149567\n    test 1109 line 186 _ExactTM.lat: 14.133028\n    test 1110 line 186 _ExactTM.lon: 78.097533\n    test 1111 line 187 _ExactTM.easting: 7152433.802688\n    test 1112 line 187 _ExactTM.northing: 761390.695844\n    test 1113 line 187 _ExactTM.gamma: 5.607350\n    test 1114 line 187 _ExactTM.scale: 1.705261\n    test 1115 line 187 _ExactTM.lat: 4.031123\n    test 1116 line 187 _ExactTM.lon: 54.048782\n    test 1117 line 188 _ExactTM.easting: 3105651.390901\n    test 1118 line 188 _ExactTM.northing: 9426026.169064\n    test 1119 line 188 _ExactTM.gamma: 78.750206\n    test 1120 line 188 _ExactTM.scale: 1.119737\n    test 1121 line 188 _ExactTM.lat: 62.746603\n    test 1122 line 188 _ExactTM.lon: 79.968641\n    test 1123 line 189 _ExactTM.easting: 2959009.639022\n    test 1124 line 189 _ExactTM.northing: 8339242.269282\n    test 1125 line 189 _ExactTM.gamma: 58.460865\n    test 1126 line 189 _ExactTM.scale: 1.108554\n    test 1127 line 189 _ExactTM.lat: 60.626429\n    test 1128 line 189 _ExactTM.lon: 61.851551\n    test 1129 line 190 _ExactTM.easting: 8640472.267145\n    test 1130 line 190 _ExactTM.northing: 6230320.417931\n    test 1131 line 190 _ExactTM.gamma: 52.816810\n    test 1132 line 190 _ExactTM.scale: 2.062973\n    test 1133 line 190 _ExactTM.lat: 23.600626\n    test 1134 line 190 _ExactTM.lon: 72.811634\n    test 1135 line 191 _ExactTM.easting: 811352.108932\n    test 1136 line 191 _ExactTM.northing: 9816129.813481\n    test 1137 line 191 _ExactTM.gamma: 77.299184\n    test 1138 line 191 _ExactTM.scale: 1.007651\n    test 1139 line 191 _ExactTM.lat: 82.572236\n    test 1140 line 191 _ExactTM.lon: 77.402323\n    test 1141 line 192 _ExactTM.easting: 6521874.973458\n    test 1142 line 192 _ExactTM.northing: 1053612.479744\n    test 1143 line 192 _ExactTM.gamma: 7.407328\n    test 1144 line 192 _ExactTM.scale: 1.575529\n    test 1145 line 192 _ExactTM.lat: 6.030051\n    test 1146 line 192 _ExactTM.lon: 50.783505\n    test 1147 line 193 _ExactTM.easting: 3477983.997875\n    test 1148 line 193 _ExactTM.northing: 5651613.325947\n    test 1149 line 193 _ExactTM.gamma: 31.530673\n    test 1150 line 193 _ExactTM.scale: 1.151875\n    test 1151 line 193 _ExactTM.lat: 42.411523\n    test 1152 line 193 _ExactTM.lon: 42.258009\n    test 1153 line 194 _ExactTM.easting: 629892.822243\n    test 1154 line 194 _ExactTM.northing: 3283914.910451\n    test 1155 line 194 _ExactTM.gamma: 3.210482\n    test 1156 line 194 _ExactTM.scale: 1.004499\n    test 1157 line 194 _ExactTM.lat: 29.526120\n    test 1158 line 194 _ExactTM.lon: 6.493069\n    test 1159 line 195 _ExactTM.easting: 3381879.687227\n    test 1160 line 195 _ExactTM.northing: 5103629.325665\n    test 1161 line 195 _ExactTM.gamma: 26.748108\n    test 1162 line 195 _ExactTM.scale: 1.143559\n    test 1163 line 195 _ExactTM.lat: 39.021853\n    test 1164 line 195 _ExactTM.lon: 38.641779\n    test 1165 line 196 _ExactTM.easting: 2815986.534177\n    test 1166 line 196 _ExactTM.northing: 9387029.120718\n    test 1167 line 196 _ExactTM.gamma: 76.967262\n    test 1168 line 196 _ExactTM.scale: 1.098032\n    test 1169 line 196 _ExactTM.lat: 64.971850\n    test 1170 line 196 _ExactTM.lon: 78.151893\n    test 1171 line 197 _ExactTM.easting: 3398195.889603\n    test 1172 line 197 _ExactTM.northing: 9138936.031490\n    test 1173 line 197 _ExactTM.gamma: 74.477499\n    test 1174 line 197 _ExactTM.scale: 1.144009\n    test 1175 line 197 _ExactTM.lat: 59.961819\n    test 1176 line 197 _ExactTM.lon: 76.473422\n    test 1177 line 198 _ExactTM.easting: 2421734.754637\n    test 1178 line 198 _ExactTM.northing: 5002372.094991\n    test 1179 line 198 _ExactTM.gamma: 20.017082\n    test 1180 line 198 _ExactTM.scale: 1.072592\n    test 1181 line 198 _ExactTM.lat: 41.374040\n    test 1182 line 198 _ExactTM.lon: 28.848343\n    test 1183 line 199 _ExactTM.easting: 2360869.895525\n    test 1184 line 199 _ExactTM.northing: 9553298.449536\n    test 1185 line 199 _ExactTM.gamma: 78.848205\n    test 1186 line 199 _ExactTM.scale: 1.068453\n    test 1187 line 199 _ExactTM.lat: 68.946087\n    test 1188 line 199 _ExactTM.lon: 79.574523\n    test 1189 line 200 _ExactTM.easting: 1196539.972194\n    test 1190 line 200 _ExactTM.northing: 9861920.836230\n    test 1191 line 200 _ExactTM.gamma: 83.437668\n    test 1192 line 200 _ExactTM.scale: 1.017137\n    test 1193 line 200 _ExactTM.lat: 79.275096\n    test 1194 line 200 _ExactTM.lon: 83.551272\n    test 1195 line 201 _ExactTM.easting: 1327758.704795\n    test 1196 line 201 _ExactTM.northing: 2375509.241683\n    test 1197 line 201 _ExactTM.gamma: 4.617572\n    test 1198 line 201 _ExactTM.scale: 1.021465\n    test 1199 line 201 _ExactTM.lat: 21.000252\n    test 1200 line 201 _ExactTM.lon: 12.697444\n    test 1201 line 202 _ExactTM.easting: 2070860.327644\n    test 1202 line 202 _ExactTM.northing: 8604500.719581\n    test 1203 line 202 _ExactTM.gamma: 54.722761\n    test 1204 line 202 _ExactTM.scale: 1.052469\n    test 1205 line 202 _ExactTM.lat: 68.015227\n    test 1206 line 202 _ExactTM.lon: 56.732419\n    test 1207 line 203 _ExactTM.easting: 6564776.654864\n    test 1208 line 203 _ExactTM.northing: 8171207.177379\n    test 1209 line 203 _ExactTM.gamma: 69.237523\n    test 1210 line 203 _ExactTM.scale: 1.573894\n    test 1211 line 203 _ExactTM.lat: 37.423675\n    test 1212 line 203 _ExactTM.lon: 76.947359\n    test 1213 line 204 _ExactTM.easting: 592653.553821\n    test 1214 line 204 _ExactTM.northing: 6125529.810052\n    test 1215 line 204 _ExactTM.gamma: 7.600785\n    test 1216 line 204 _ExactTM.scale: 1.003912\n    test 1217 line 204 _ExactTM.lat: 54.922707\n    test 1218 line 204 _ExactTM.lon: 9.260818\n    test 1219 line 205 _ExactTM.easting: 693459.671821\n    test 1220 line 205 _ExactTM.northing: 6943779.991032\n    test 1221 line 205 _ExactTM.gamma: 11.787587\n    test 1222 line 205 _ExactTM.scale: 1.005496\n    test 1223 line 205 _ExactTM.lat: 61.982810\n    test 1224 line 205 _ExactTM.lon: 13.299659\n    test 1225 line 206 _ExactTM.easting: 1838956.187625\n    test 1226 line 206 _ExactTM.northing: 3511959.612381\n    test 1227 line 206 _ExactTM.gamma: 9.844313\n    test 1228 line 206 _ExactTM.scale: 1.041603\n    test 1229 line 206 _ExactTM.lat: 30.324214\n    test 1230 line 206 _ExactTM.lon: 18.959769\n    test 1231 line 207 _ExactTM.easting: 4460690.884597\n    test 1232 line 207 _ExactTM.northing: 5541873.235403\n    test 1233 line 207 _ExactTM.gamma: 35.768613\n    test 1234 line 207 _ExactTM.scale: 1.254179\n    test 1235 line 207 _ExactTM.lat: 37.629667\n    test 1236 line 207 _ExactTM.lon: 49.649131\n    test 1237 line 208 _ExactTM.easting: 2311168.998941\n    test 1238 line 208 _ExactTM.northing: 9480561.869119\n    test 1239 line 208 _ExactTM.gamma: 76.828257\n    test 1240 line 208 _ExactTM.scale: 1.065556\n    test 1241 line 208 _ExactTM.lat: 69.225574\n    test 1242 line 208 _ExactTM.lon: 77.656135\n    test 1243 line 209 _ExactTM.easting: 4111775.114451\n    test 1244 line 209 _ExactTM.northing: 6509014.348792\n    test 1245 line 209 _ExactTM.gamma: 43.052130\n    test 1246 line 209 _ExactTM.scale: 1.214125\n    test 1247 line 209 _ExactTM.lat: 44.698478\n    test 1248 line 209 _ExactTM.lon: 52.979304\n    test 1249 line 210 _ExactTM.easting: 75358.261962\n    test 1250 line 210 _ExactTM.northing: 7711258.662251\n    test 1251 line 210 _ExactTM.gamma: 1.806297\n    test 1252 line 210 _ExactTM.scale: 0.999669\n    test 1253 line 210 _ExactTM.lat: 69.499594\n    test 1254 line 210 _ExactTM.lon: 1.928336\n    test 1255 line 211 _ExactTM.easting: 8781885.229116\n    test 1256 line 211 _ExactTM.northing: 9184776.452211\n    test 1257 line 211 _ExactTM.gamma: 81.795539\n    test 1258 line 211 _ExactTM.scale: 2.094908\n    test 1259 line 211 _ExactTM.lat: 27.981364\n    test 1260 line 211 _ExactTM.lon: 86.061113\n    test 1261 line 212 _ExactTM.easting: 954378.415174\n    test 1262 line 212 _ExactTM.northing: 7449110.669807\n    test 1263 line 212 _ExactTM.gamma: 19.380657\n    test 1264 line 212 _ExactTM.scale: 1.010768\n    test 1265 line 212 _ExactTM.lat: 65.699839\n    test 1266 line 212 _ExactTM.lon: 21.104725\n    test 1267 line 213 _ExactTM.easting: 720971.793706\n    test 1268 line 213 _ExactTM.northing: 5265195.121555\n    test 1269 line 213 _ExactTM.gamma: 7.002995\n    test 1270 line 213 _ExactTM.scale: 1.005995\n    test 1271 line 213 _ExactTM.lat: 47.143648\n    test 1272 line 213 _ExactTM.lon: 9.512189\n    test 1273 line 214 _ExactTM.easting: 561561.493937\n    test 1274 line 214 _ExactTM.northing: 989910.236221\n    test 1275 line 214 _ExactTM.gamma: 0.793118\n    test 1276 line 214 _ExactTM.scale: 1.003505\n    test 1277 line 214 _ExactTM.lat: 8.920167\n    test 1278 line 214 _ExactTM.lon: 5.101513\n    test 1279 line 215 _ExactTM.easting: 3446829.634468\n    test 1280 line 215 _ExactTM.northing: 9232868.155664\n    test 1281 line 215 _ExactTM.gamma: 76.279075\n    test 1282 line 215 _ExactTM.scale: 1.148263\n    test 1283 line 215 _ExactTM.lat: 59.778971\n    test 1284 line 215 _ExactTM.lon: 78.080322\n    test 1285 line 216 _ExactTM.easting: 4048307.545909\n    test 1286 line 216 _ExactTM.northing: 9800416.422998\n    test 1287 line 216 _ExactTM.gamma: 86.843918\n    test 1288 line 216 _ExactTM.scale: 1.206495\n    test 1289 line 216 _ExactTM.lat: 55.865310\n    test 1290 line 216 _ExactTM.lon: 87.384288\n    test 1291 line 217 _ExactTM.easting: 8973188.480293\n    test 1292 line 217 _ExactTM.northing: 7042230.087021\n    test 1293 line 217 _ExactTM.gamma: 60.872456\n    test 1294 line 217 _ExactTM.scale: 2.156098\n    test 1295 line 217 _ExactTM.lat: 24.310973\n    test 1296 line 217 _ExactTM.lon: 76.823777\n    test 1297 line 218 _ExactTM.easting: 126314.191618\n    test 1298 line 218 _ExactTM.northing: 396006.687921\n    test 1299 line 218 _ExactTM.gamma: 0.071065\n    test 1300 line 218 _ExactTM.scale: 0.999798\n    test 1301 line 218 _ExactTM.lat: 3.582041\n    test 1302 line 218 _ExactTM.lon: 1.137286\n    test 1303 line 219 _ExactTM.easting: 5247652.345647\n    test 1304 line 219 _ExactTM.northing: 8670513.359752\n    test 1305 line 219 _ExactTM.gamma: 72.700498\n    test 1306 line 219 _ExactTM.scale: 1.355272\n    test 1307 line 219 _ExactTM.lat: 46.124233\n    test 1308 line 219 _ExactTM.lon: 77.313118\n    test 1309 line 220 _ExactTM.easting: 8103656.838119\n    test 1310 line 220 _ExactTM.northing: 9469794.014737\n    test 1311 line 220 _ExactTM.gamma: 84.490673\n    test 1312 line 220 _ExactTM.scale: 1.912164\n    test 1313 line 220 _ExactTM.lat: 31.171391\n    test 1314 line 220 _ExactTM.lon: 87.104504\n    test 1315 line 221 _ExactTM.easting: 6300112.758236\n    test 1316 line 221 _ExactTM.northing: 93835.917364\n    test 1317 line 221 _ExactTM.gamma: 0.644805\n    test 1318 line 221 _ExactTM.scale: 1.534073\n    test 1319 line 221 _ExactTM.lat: 0.553171\n    test 1320 line 221 _ExactTM.lon: 49.117104\n    test 1321 line 222 _ExactTM.easting: 3894813.593782\n    test 1322 line 222 _ExactTM.northing: 4833832.341027\n    test 1323 line 222 _ExactTM.gamma: 27.453298\n    test 1324 line 222 _ExactTM.scale: 1.192135\n    test 1325 line 222 _ExactTM.lat: 35.361587\n    test 1326 line 222 _ExactTM.lon: 41.860599\n    test 1327 line 223 _ExactTM.easting: 402511.346712\n    test 1328 line 223 _ExactTM.northing: 3520621.561911\n    test 1329 line 223 _ExactTM.gamma: 2.238474\n    test 1330 line 223 _ExactTM.scale: 1.001599\n    test 1331 line 223 _ExactTM.lat: 31.750314\n    test 1332 line 223 _ExactTM.lon: 4.248167\n    test 1333 line 224 _ExactTM.easting: 5357378.503148\n    test 1334 line 224 _ExactTM.northing: 2772997.602234\n    test 1335 line 224 _ExactTM.gamma: 17.823560\n    test 1336 line 224 _ExactTM.scale: 1.376031\n    test 1337 line 224 _ExactTM.lat: 17.924336\n    test 1338 line 224 _ExactTM.lon: 46.096402\n    test 1339 line 225 _ExactTM.easting: 2807553.985866\n    test 1340 line 225 _ExactTM.northing: 8177847.980275\n    test 1341 line 225 _ExactTM.gamma: 54.680045\n    test 1342 line 225 _ExactTM.scale: 1.097531\n    test 1343 line 225 _ExactTM.lat: 60.931488\n    test 1344 line 225 _ExactTM.lon: 58.221214\n    test 1345 line 226 _ExactTM.easting: 18289045.166501\n    test 1346 line 226 _ExactTM.northing: 7792942.339604\n    test 1347 line 226 _ExactTM.gamma: 73.216494\n    test 1348 line 226 _ExactTM.scale: 8.098009\n    test 1349 line 226 _ExactTM.lat: 5.358151\n    test 1350 line 226 _ExactTM.lon: 87.556213\n    test 1351 line 227 _ExactTM.easting: 8376822.459538\n    test 1352 line 227 _ExactTM.northing: 8128174.623878\n    test 1353 line 227 _ExactTM.gamma: 70.920117\n    test 1354 line 227 _ExactTM.scale: 1.984873\n    test 1355 line 227 _ExactTM.lat: 28.616673\n    test 1356 line 227 _ExactTM.lon: 80.452426\n    test 1357 line 228 _ExactTM.easting: 11898068.353272\n    test 1358 line 228 _ExactTM.northing: 4772439.493697\n    test 1359 line 228 _ExactTM.gamma: 42.613968\n    test 1360 line 228 _ExactTM.scale: 3.314412\n    test 1361 line 228 _ExactTM.lat: 11.709763\n    test 1362 line 228 _ExactTM.lon: 76.760295\n    test 1363 line 229 _ExactTM.easting: 10550946.939050\n    test 1364 line 229 _ExactTM.northing: 3851968.815295\n    test 1365 line 229 _ExactTM.gamma: 33.383025\n    test 1366 line 229 _ExactTM.scale: 2.724754\n    test 1367 line 229 _ExactTM.lat: 12.009498\n    test 1368 line 229 _ExactTM.lon: 71.782351\n    test 1369 line 230 _ExactTM.easting: 6828299.123607\n    test 1370 line 230 _ExactTM.northing: 9394803.227463\n    test 1371 line 230 _ExactTM.gamma: 83.181386\n    test 1372 line 230 _ExactTM.scale: 1.624359\n    test 1373 line 230 _ExactTM.lat: 37.629784\n    test 1374 line 230 _ExactTM.lon: 85.795687\n    test 1375 line 231 _ExactTM.easting: 11162550.334022\n    test 1376 line 231 _ExactTM.northing: 2640267.279593\n    test 1377 line 231 _ExactTM.gamma: 23.145404\n    test 1378 line 231 _ExactTM.scale: 2.998408\n    test 1379 line 231 _ExactTM.lat: 7.721128\n    test 1380 line 231 _ExactTM.lon: 71.662731\n    test 1381 line 232 _ExactTM.easting: 4411584.447941\n    test 1382 line 232 _ExactTM.northing: 4956173.694407\n    test 1383 line 232 _ExactTM.gamma: 30.713919\n    test 1384 line 232 _ExactTM.scale: 1.248736\n    test 1385 line 232 _ExactTM.lat: 34.295026\n    test 1386 line 232 _ExactTM.lon: 46.442191\n    test 1387 line 233 _ExactTM.easting: 672108.897905\n    test 1388 line 233 _ExactTM.northing: 4751554.657054\n    test 1389 line 233 _ExactTM.gamma: 5.569178\n    test 1390 line 233 _ExactTM.scale: 1.005162\n    test 1391 line 233 _ExactTM.lat: 42.622496\n    test 1392 line 233 _ExactTM.lon: 8.193605\n    test 1393 line 234 _ExactTM.easting: 5022964.290579\n    test 1394 line 234 _ExactTM.northing: 6860418.199502\n    test 1395 line 234 _ExactTM.gamma: 50.862230\n    test 1396 line 234 _ExactTM.scale: 1.324925\n    test 1397 line 234 _ExactTM.lat: 41.667780\n    test 1398 line 234 _ExactTM.lon: 61.518288\n    test 1399 line 235 _ExactTM.easting: 1669655.595207\n    test 1400 line 235 _ExactTM.northing: 4152086.537021\n    test 1401 line 235 _ExactTM.gamma: 11.110237\n    test 1402 line 235 _ExactTM.scale: 1.034138\n    test 1403 line 235 _ExactTM.lat: 36.060369\n    test 1404 line 235 _ExactTM.lon: 18.444112\n    test 1405 line 236 _ExactTM.easting: 6055876.729655\n    test 1406 line 236 _ExactTM.northing: 4896837.552619\n    test 1407 line 236 _ExactTM.gamma: 35.799747\n    test 1408 line 236 _ExactTM.scale: 1.485967\n    test 1409 line 236 _ExactTM.lat: 27.948091\n    test 1410 line 236 _ExactTM.lon: 56.816429\n    test 1411 line 237 _ExactTM.easting: 1209214.164379\n    test 1412 line 237 _ExactTM.northing: 7266409.859178\n    test 1413 line 237 _ExactTM.gamma: 22.319633\n    test 1414 line 237 _ExactTM.scale: 1.017554\n    test 1415 line 237 _ExactTM.lat: 63.386030\n    test 1416 line 237 _ExactTM.lon: 24.662716\n    test 1417 line 238 _ExactTM.easting: 5154564.559584\n    test 1418 line 238 _ExactTM.northing: 698118.349975\n    test 1419 line 238 _ExactTM.gamma: 4.242360\n    test 1420 line 238 _ExactTM.scale: 1.347481\n    test 1421 line 238 _ExactTM.lat: 4.680922\n    test 1422 line 238 _ExactTM.lon: 42.114426\n    test 1423 line 239 _ExactTM.easting: 2695149.806543\n    test 1424 line 239 _ExactTM.northing: 8208197.765605\n    test 1425 line 239 _ExactTM.gamma: 54.178615\n    test 1426 line 239 _ExactTM.scale: 1.089730\n    test 1427 line 239 _ExactTM.lat: 61.826625\n    test 1428 line 239 _ExactTM.lon: 57.525096\n    test 1429 line 240 _ExactTM.easting: 3394792.327820\n    test 1430 line 240 _ExactTM.northing: 3217583.415552\n    test 1431 line 240 _ExactTM.gamma: 15.165863\n    test 1432 line 240 _ExactTM.scale: 1.145285\n    test 1433 line 240 _ExactTM.lat: 25.104353\n    test 1434 line 240 _ExactTM.lon: 32.528660\n    test 1435 line 241 _ExactTM.easting: 1429160.966985\n    test 1436 line 241 _ExactTM.northing: 8212685.362032\n    test 1437 line 241 _ExactTM.gamma: 37.484904\n    test 1438 line 241 _ExactTM.scale: 1.024676\n    test 1439 line 241 _ExactTM.lat: 69.678351\n    test 1440 line 241 _ExactTM.lon: 39.275513\n    test 1441 line 242 _ExactTM.easting: 8343387.998065\n    test 1442 line 242 _ExactTM.northing: 8885196.954578\n    test 1443 line 242 _ExactTM.gamma: 78.561937\n    test 1444 line 242 _ExactTM.scale: 1.974733\n    test 1445 line 242 _ExactTM.lat: 29.671384\n    test 1446 line 242 _ExactTM.lon: 84.196595\n    test 1447 line 243 _ExactTM.easting: 1990722.928606\n    test 1448 line 243 _ExactTM.northing: 7569202.065162\n    test 1449 line 243 _ExactTM.gamma: 37.075276\n    test 1450 line 243 _ExactTM.scale: 1.048486\n    test 1451 line 243 _ExactTM.lat: 62.300208\n    test 1452 line 243 _ExactTM.lon: 40.474051\n    test 1453 line 244 _ExactTM.easting: 1554980.099559\n    test 1454 line 244 _ExactTM.northing: 1449423.919586\n    test 1455 line 244 _ExactTM.gamma: 3.188328\n    test 1456 line 244 _ExactTM.scale: 1.029664\n    test 1457 line 244 _ExactTM.lat: 12.721776\n    test 1458 line 244 _ExactTM.lon: 14.190003\n    test 1459 line 245 _ExactTM.easting: 785205.450196\n    test 1460 line 245 _ExactTM.northing: 5575158.423096\n    test 1461 line 245 _ExactTM.gamma: 8.388417\n    test 1462 line 245 _ExactTM.scale: 1.007181\n    test 1463 line 245 _ExactTM.lat: 49.811296\n    test 1464 line 245 _ExactTM.lon: 10.925011\n    test 1465 line 246 _ExactTM.easting: 3310405.988313\n    test 1466 line 246 _ExactTM.northing: 5955022.233881\n    test 1467 line 246 _ExactTM.gamma: 33.007587\n    test 1468 line 246 _ExactTM.scale: 1.137141\n    test 1469 line 246 _ExactTM.lat: 45.132680\n    test 1470 line 246 _ExactTM.lon: 42.478624\n    test 1471 line 247 _ExactTM.easting: 4733460.960666\n    test 1472 line 247 _ExactTM.northing: 129034.889816\n    test 1473 line 247 _ExactTM.gamma: 0.737551\n    test 1474 line 247 _ExactTM.scale: 1.290439\n    test 1475 line 247 _ExactTM.lat: 0.904279\n    test 1476 line 247 _ExactTM.lon: 39.078412\n    test 1477 line 248 _ExactTM.easting: 3322708.343909\n    test 1478 line 248 _ExactTM.northing: 3864738.078742\n    test 1479 line 248 _ExactTM.gamma: 18.472566\n    test 1480 line 248 _ExactTM.scale: 1.138838\n    test 1481 line 248 _ExactTM.lat: 30.163605\n    test 1482 line 248 _ExactTM.lon: 33.577996\n    test 1483 line 249 _ExactTM.easting: 8672864.417204\n    test 1484 line 249 _ExactTM.northing: 8333465.983444\n    test 1485 line 249 _ExactTM.gamma: 73.206273\n    test 1486 line 249 _ExactTM.scale: 2.065441\n    test 1487 line 249 _ExactTM.lat: 27.643244\n    test 1488 line 249 _ExactTM.lon: 81.892859\n    test 1489 line 250 _ExactTM.easting: 11126818.231196\n    test 1490 line 250 _ExactTM.northing: 7618712.174991\n    test 1491 line 250 _ExactTM.gamma: 67.887173\n    test 1492 line 250 _ExactTM.scale: 2.922417\n    test 1493 line 250 _ExactTM.lat: 18.201208\n    test 1494 line 250 _ExactTM.lon: 82.434618\n    test 1495 line 251 _ExactTM.easting: 8650100.981797\n    test 1496 line 251 _ExactTM.northing: 9975084.168997\n    test 1497 line 251 _ExactTM.gamma: 89.767446\n    test 1498 line 251 _ExactTM.scale: 2.057289\n    test 1499 line 251 _ExactTM.lat: 28.804576\n    test 1500 line 251 _ExactTM.lon: 89.886072\n    test 1501 line 252 _ExactTM.easting: 2212701.180192\n    test 1502 line 252 _ExactTM.northing: 650348.100229\n    test 1503 line 252 _ExactTM.gamma: 1.970441\n    test 1504 line 252 _ExactTM.scale: 1.060830\n    test 1505 line 252 _ExactTM.lat: 5.542998\n    test 1506 line 252 _ExactTM.lon: 19.589578\n    test 1507 line 253 _ExactTM.easting: 6890222.326618\n    test 1508 line 253 _ExactTM.northing: 7506813.499547\n    test 1509 line 253 _ExactTM.gamma: 62.684825\n    test 1510 line 253 _ExactTM.scale: 1.638488\n    test 1511 line 253 _ExactTM.lat: 34.237147\n    test 1512 line 253 _ExactTM.lon: 73.678164\n    test 1513 line 254 _ExactTM.easting: 6692260.067325\n    test 1514 line 254 _ExactTM.northing: 4244174.008110\n    test 1515 line 254 _ExactTM.gamma: 31.812920\n    test 1516 line 254 _ExactTM.scale: 1.604640\n    test 1517 line 254 _ExactTM.lat: 22.704949\n    test 1518 line 254 _ExactTM.lon: 57.877010\n    test 1519 line 255 _ExactTM.easting: 1225564.137190\n    test 1520 line 255 _ExactTM.northing: 4778923.924144\n    test 1521 line 255 _ExactTM.gamma: 10.083419\n    test 1522 line 255 _ExactTM.scale: 1.018134\n    test 1523 line 255 _ExactTM.lat: 42.192424\n    test 1524 line 255 _ExactTM.lon: 14.828196\n    test 1525 line 256 _ExactTM.easting: 12341116.154950\n    test 1526 line 256 _ExactTM.northing: 5081855.521966\n    test 1527 line 256 _ExactTM.gamma: 45.712546\n    test 1528 line 256 _ExactTM.scale: 3.535170\n    test 1529 line 256 _ExactTM.lat: 11.481151\n    test 1530 line 256 _ExactTM.lon: 78.189236\n    test 1531 line 257 _ExactTM.easting: 6673845.021771\n    test 1532 line 257 _ExactTM.northing: 1177587.190565\n    test 1533 line 257 _ExactTM.gamma: 8.389141\n    test 1534 line 257 _ExactTM.scale: 1.605171\n    test 1535 line 257 _ExactTM.lat: 6.609626\n    test 1536 line 257 _ExactTM.lon: 51.735783\n    test 1537 line 258 _ExactTM.easting: 6966354.690417\n    test 1538 line 258 _ExactTM.northing: 3641802.005093\n    test 1539 line 258 _ExactTM.gamma: 27.409636\n    test 1540 line 258 _ExactTM.scale: 1.661469\n    test 1541 line 258 _ExactTM.lat: 19.059369\n    test 1542 line 258 _ExactTM.lon: 57.526439\n    test 1543 max forward error: 2.048910e-08\n    test 1544 max reverse error: 8.526513e-14\n    test 1545 _ExactTM.scale0: 0.9996\n    test 1546 _ExactTM.datum: WGS84\n    test 1547 _ExactTM.datum.ellipsoid.KsOrder: 8\n    test 1548 WGS84.KsOrder: 8\n\n    all 1548 testExactTMcoords.py tests passed, 1 skipped (pygeodesy 26.3.26 Python 3.13.12 64bit arm64 coverage 7.10.7 geographiclib 2.1 numpy 2.3.3 scipy 1.16.2 Math 2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 macOS 26.3.1 isLazy 1 -W  default) 6.200 sec\nrunning /Library/Framewo....n3.13 -W default ~/PyGeodesy/test/testFmath.py\n\n    testing testFmath.py 25.09.09 (module pygeodesy.fmath 26.03.25) isLazy=1\n    test 1 fpolynomialA: 1.21197509765625\n    test 2 fhornerA: 1.21197509765625\n    test 3 fpolynomialB: 0.1513671875\n    test 4 fhornerB: 0.1513671875\n\n    test 5 fpolynomialA: 1.21197509765625\n    test 6 fhornerA: 1.21197509765625\n    test 7 fpolynomialB: 0.1513671875\n    test 8 fhornerB: 0.1513671875\n\n    test 9 fpolynomialA: 1.21197509765625\n    test 10 fhornerA: 1.21197509765625\n    test 11 fpolynomialB: 0.1513671875\n    test 12 fhornerB: 0.1513671875\n\n    test 13 fpolynomialA: 1.21197509765625\n    test 14 fhornerA: 1.21197509765625\n    test 15 fpolynomialB: 0.1513671875\n    test 16 fhornerB: 0.1513671875\n\n    test 17 fpolynomialA: 1.21197509765625\n    test 18 fhornerA: 1.21197509765625\n    test 19 fpolynomialB: 0.1513671875\n    test 20 fhornerB: 0.1513671875\n\n    test 21 fpolynomialA: 1.21197509765625\n    test 22 fhornerA: 1.21197509765625\n    test 23 fpolynomialB: 0.1513671875\n    test 24 fhornerB: 0.1513671875\n\n    test 25 fpolynomialA: 1.21197509765625\n    test 26 fhornerA: 1.21197509765625\n    test 27 fpolynomialB: 0.1513671875\n    test 28 fhornerB: 0.1513671875\n\n    test 29 fpolynomialA: 1.21197509765625\n    test 30 fhornerA: 1.21197509765625\n    test 31 fpolynomialB: 0.1513671875\n    test 32 fhornerB: 0.1513671875\n\n    test 33 fpolynomialA: 1.21197509765625\n    test 34 fhornerA: 1.21197509765625\n    test 35 fpolynomialB: 0.1513671875\n    test 36 fhornerB: 0.1513671875\n\n    test 37 fpolynomialA: 1.21197509765625\n    test 38 fhornerA: 1.21197509765625\n    test 39 fpolynomialB: 0.1513671875\n    test 40 fhornerB: 0.1513671875\n\n    test 41 fpolynomialA: 1.21197509765625\n    test 42 fhornerA: 1.21197509765625\n    test 43 fpolynomialB: 0.1513671875\n    test 44 fhornerB: 0.1513671875\n\n    test 45 fpolynomialA: 1.21197509765625\n    test 46 fhornerA: 1.21197509765625\n    test 47 fpolynomialB: 0.1513671875\n    test 48 fhornerB: 0.1513671875\n\n    test 49 fpolynomialA: 1.21197509765625\n    test 50 fhornerA: 1.21197509765625\n    test 51 fpolynomialB: 0.1513671875\n    test 52 fhornerB: 0.1513671875\n\n    test 53 fpolynomialA: 1.21197509765625\n    test 54 fhornerA: 1.21197509765625\n    test 55 fpolynomialB: 0.1513671875\n    test 56 fhornerB: 0.1513671875\n\n    test 57 fpolynomialA: 1.21197509765625\n    test 58 fhornerA: 1.21197509765625\n    test 59 fpolynomialB: 0.1513671875\n    test 60 fhornerB: 0.1513671875\n\n    test 61 fpolynomialA: 1.21197509765625\n    test 62 fhornerA: 1.21197509765625\n    test 63 fpolynomialB: 0.1513671875\n    test 64 fhornerB: 0.1513671875\n\n    test 65 fpolynomialA: 1.21197509765625\n    test 66 fhornerA: 1.21197509765625\n    test 67 fpolynomialB: 0.1513671875\n    test 68 fhornerB: 0.1513671875\n\n    test 69 fpolynomialA: 1.21197509765625\n    test 70 fhornerA: 1.21197509765625\n    test 71 fpolynomialB: 0.1513671875\n    test 72 fhornerB: 0.1513671875\n\n    test 73 fpolynomialA: 1.21197509765625\n    test 74 fhornerA: 1.21197509765625\n    test 75 fpolynomialB: 0.1513671875\n    test 76 fhornerB: 0.1513671875\n\n    test 77 fpolynomialA: 1.21197509765625\n    test 78 fhornerA: 1.21197509765625\n    test 79 fpolynomialB: 0.1513671875\n    test 80 fhornerB: 0.1513671875\n\n    test 81 fpolynomialA: 1.21197509765625\n    test 82 fhornerA: 1.21197509765625\n    test 83 fpolynomialB: 0.1513671875\n    test 84 fhornerB: 0.1513671875\n\n    test 85 fpolynomialA: 1.21197509765625\n    test 86 fhornerA: 1.21197509765625\n    test 87 fpolynomialB: 0.1513671875\n    test 88 fhornerB: 0.1513671875\n\n    test 89 fpolynomialA: 1.21197509765625\n    test 90 fhornerA: 1.21197509765625\n    test 91 fpolynomialB: 0.1513671875\n    test 92 fhornerB: 0.1513671875\n\n    test 93 fpolynomialA: 1.21197509765625\n    test 94 fhornerA: 1.21197509765625\n    test 95 fpolynomialB: 0.1513671875\n    test 96 fhornerB: 0.1513671875\n\n    test 97 fpolynomialA: 1.21197509765625\n    test 98 fhornerA: 1.21197509765625\n    test 99 fpolynomialB: 0.1513671875\n    test 100 fhornerB: 0.1513671875\n\n    test 101 fpolynomialA: 1.21197509765625\n    test 102 fhornerA: 1.21197509765625\n    test 103 fpolynomialB: 0.1513671875\n    test 104 fhornerB: 0.1513671875\n\n    test 105 fpolynomialA: 1.21197509765625\n    test 106 fhornerA: 1.21197509765625\n    test 107 fpolynomialB: 0.1513671875\n    test 108 fhornerB: 0.1513671875\n\n    test 109 fpolynomialA: 1.21197509765625\n    test 110 fhornerA: 1.21197509765625\n    test 111 fpolynomialB: 0.1513671875\n    test 112 fhornerB: 0.1513671875\n\n    test 113 fpolynomialA: 1.21197509765625\n    test 114 fhornerA: 1.21197509765625\n    test 115 fpolynomialB: 0.1513671875\n    test 116 fhornerB: 0.1513671875\n\n    test 117 fpolynomialA: 1.21197509765625\n    test 118 fhornerA: 1.21197509765625\n    test 119 fpolynomialB: 0.1513671875\n    test 120 fhornerB: 0.1513671875\n\n    test 121 fpolynomialA: 1.21197509765625\n    test 122 fhornerA: 1.21197509765625\n    test 123 fpolynomialB: 0.1513671875\n    test 124 fhornerB: 0.1513671875\n\n    test 125 fpolynomialA: 1.21197509765625\n    test 126 fhornerA: 1.21197509765625\n    test 127 fpolynomialB: 0.1513671875\n    test 128 fhornerB: 0.1513671875\n\n    test 129 fpolynomialA: 1.21197509765625\n    test 130 fhornerA: 1.21197509765625\n    test 131 fpolynomialB: 0.1513671875\n    test 132 fhornerB: 0.1513671875\n\n    test 133 fpowers: 10\n    test 134 fpowers: 2\n    test 135 fpowers: 1024\n    test 136 fpowers: 4\n    test 137 fpowers: 16\n    test 138 fpowers: 1024\n    test 139 fpowers: 4\n    test 140 fpowers: 8\n    test 141 fpowers: 512\n\n    test 142 Airy1830: 6366914.608925221\n    test 143 Airy1830: 6366914.608925221\n    test 144 Airy1830: 6366914.608925221\n    test 145 Airy1830: 6366914.608925221\n\n    test 146 AiryModified: 6366691.774619882  FAILED, KNOWN, expected 6366691.774619881\n    test 147 AiryModified: 6366691.774619882  FAILED, KNOWN, expected 6366691.774619881\n    test 148 AiryModified: 6366691.774619882  FAILED, KNOWN, expected 6366691.774619881\n    test 149 AiryModified: 6366691.774619882  FAILED, KNOWN, expected 6366691.774619881\n\n    test 150 ATS1977: 6367447.141166951  FAILED, KNOWN, expected 6367447.141166950\n    test 151 ATS1977: 6367447.141166951  FAILED, KNOWN, expected 6367447.141166950\n    test 152 ATS1977: 6367447.141166951  FAILED, KNOWN, expected 6367447.141166950\n    test 153 ATS1977: 6367447.141166951  FAILED, KNOWN, expected 6367447.141166950\n\n    test 154 Australia1966: 6367471.848532283  FAILED, KNOWN, expected 6367471.848532284\n    test 155 Australia1966: 6367471.848532283  FAILED, KNOWN, expected 6367471.848532284\n    test 156 Australia1966: 6367471.848532283  FAILED, KNOWN, expected 6367471.848532284\n    test 157 Australia1966: 6367471.848532283  FAILED, KNOWN, expected 6367471.848532284\n\n    test 158 Bessel1841: 6366742.520233950\n    test 159 Bessel1841: 6366742.520233950\n    test 160 Bessel1841: 6366742.520233950\n    test 161 Bessel1841: 6366742.520233950\n\n    test 162 BesselModified: 6366837.224747659  FAILED, KNOWN, expected 6366837.224747658\n    test 163 BesselModified: 6366837.224747659  FAILED, KNOWN, expected 6366837.224747658\n    test 164 BesselModified: 6366837.224747659  FAILED, KNOWN, expected 6366837.224747658\n    test 165 BesselModified: 6366837.224747659  FAILED, KNOWN, expected 6366837.224747658\n\n    test 166 CGCS2000: 6367449.145771047  FAILED, KNOWN, expected 6367449.145771048\n    test 167 CGCS2000: 6367449.145771047  FAILED, KNOWN, expected 6367449.145771048\n    test 168 CGCS2000: 6367449.145771047  FAILED, KNOWN, expected 6367449.145771048\n    test 169 CGCS2000: 6367449.145771047  FAILED, KNOWN, expected 6367449.145771048\n\n    test 170 Clarke1866: 6367399.689169783\n    test 171 Clarke1866: 6367399.689169783\n    test 172 Clarke1866: 6367399.689169783\n    test 173 Clarke1866: 6367399.689169783\n\n    test 174 Clarke1880: 6367386.643980513\n    test 175 Clarke1880: 6367386.643980513\n    test 176 Clarke1880: 6367386.643980513\n    test 177 Clarke1880: 6367386.643980513\n\n    test 178 Clarke1880IGN: 6367386.736673363\n    test 179 Clarke1880IGN: 6367386.736673363\n    test 180 Clarke1880IGN: 6367386.736673363\n    test 181 Clarke1880IGN: 6367386.736673363\n\n    test 182 Clarke1880Mod: 6367386.692362010  FAILED, KNOWN, expected 6367386.692362011\n    test 183 Clarke1880Mod: 6367386.692362010  FAILED, KNOWN, expected 6367386.692362011\n    test 184 Clarke1880Mod: 6367386.692362010  FAILED, KNOWN, expected 6367386.692362011\n    test 185 Clarke1880Mod: 6367386.692362010  FAILED, KNOWN, expected 6367386.692362011\n\n    test 186 CPM1799: 6366208.881847842  FAILED, KNOWN, expected 6366208.881847841\n    test 187 CPM1799: 6366208.881847842  FAILED, KNOWN, expected 6366208.881847841\n    test 188 CPM1799: 6366208.881847842  FAILED, KNOWN, expected 6366208.881847841\n    test 189 CPM1799: 6366208.881847842  FAILED, KNOWN, expected 6366208.881847841\n\n    test 190 Delambre1810: 6366197.076843344\n    test 191 Delambre1810: 6366197.076843344\n    test 192 Delambre1810: 6366197.076843344\n    test 193 Delambre1810: 6366197.076843344\n\n    test 194 Engelis1985: 6367448.175079710  FAILED, KNOWN, expected 6367448.175079712\n    test 195 Engelis1985: 6367448.175079710  FAILED, KNOWN, expected 6367448.175079712\n    test 196 Engelis1985: 6367448.175079710  FAILED, KNOWN, expected 6367448.175079712\n    test 197 Engelis1985: 6367448.175079710  FAILED, KNOWN, expected 6367448.175079712\n\n    test 198 Everest1969: 6366699.578395008  FAILED, KNOWN, expected 6366699.578395010\n    test 199 Everest1969: 6366699.578395008  FAILED, KNOWN, expected 6366699.578395010\n    test 200 Everest1969: 6366699.578395008  FAILED, KNOWN, expected 6366699.578395010\n    test 201 Everest1969: 6366699.578395008  FAILED, KNOWN, expected 6366699.578395010\n\n    test 202 Everest1975: 6366703.060499237\n    test 203 Everest1975: 6366703.060499237\n    test 204 Everest1975: 6366703.060499237\n    test 205 Everest1975: 6366703.060499237\n\n    test 206 Fisher1968: 6367463.656043807\n    test 207 Fisher1968: 6367463.656043807\n    test 208 Fisher1968: 6367463.656043807\n    test 209 Fisher1968: 6367463.656043807\n\n    test 210 GEM10C: 6367449.145824739  FAILED, KNOWN, expected 6367449.145824740\n    test 211 GEM10C: 6367449.145824739  FAILED, KNOWN, expected 6367449.145824740\n    test 212 GEM10C: 6367449.145824739  FAILED, KNOWN, expected 6367449.145824740\n    test 213 GEM10C: 6367449.145824739  FAILED, KNOWN, expected 6367449.145824740\n\n    test 214 GPES: 6378135.000000000\n    test 215 GPES: 6378135.000000000\n    test 216 GPES: 6378135.000000000\n    test 217 GPES: 6378135.000000000\n\n    test 218 GRS67: 6367471.747065325\n    test 219 GRS67: 6367471.747065325\n    test 220 GRS67: 6367471.747065325\n    test 221 GRS67: 6367471.747065325\n\n    test 222 GRS80: 6367449.145771043\n    test 223 GRS80: 6367449.145771043\n    test 224 GRS80: 6367449.145771043\n    test 225 GRS80: 6367449.145771043\n\n    test 226 Helmert1906: 6367513.572270742\n    test 227 Helmert1906: 6367513.572270742\n    test 228 Helmert1906: 6367513.572270742\n    test 229 Helmert1906: 6367513.572270742\n\n    test 230 IAU76: 6367452.132788436\n    test 231 IAU76: 6367452.132788436\n    test 232 IAU76: 6367452.132788436\n    test 233 IAU76: 6367452.132788436\n\n    test 234 IERS1989: 6367448.139491247\n    test 235 IERS1989: 6367448.139491247\n    test 236 IERS1989: 6367448.139491247\n    test 237 IERS1989: 6367448.139491247\n\n    test 238 IERS1992TOPEX: 6367448.446996409\n    test 239 IERS1992TOPEX: 6367448.446996409\n    test 240 IERS1992TOPEX: 6367448.446996409\n    test 241 IERS1992TOPEX: 6367448.446996409\n\n    test 242 IERS2003: 6367448.717710576  FAILED, KNOWN, expected 6367448.717710577\n    test 243 IERS2003: 6367448.717710576  FAILED, KNOWN, expected 6367448.717710577\n    test 244 IERS2003: 6367448.717710576  FAILED, KNOWN, expected 6367448.717710577\n    test 245 IERS2003: 6367448.717710576  FAILED, KNOWN, expected 6367448.717710577\n\n    test 246 Intl1924: 6367654.500057585  FAILED, KNOWN, expected 6367654.500057584\n    test 247 Intl1924: 6367654.500057585  FAILED, KNOWN, expected 6367654.500057584\n    test 248 Intl1924: 6367654.500057585  FAILED, KNOWN, expected 6367654.500057584\n    test 249 Intl1924: 6367654.500057585  FAILED, KNOWN, expected 6367654.500057584\n\n    test 250 Intl1967: 6367469.338944457\n    test 251 Intl1967: 6367469.338944457\n    test 252 Intl1967: 6367469.338944457\n    test 253 Intl1967: 6367469.338944457\n\n    test 254 Krassovski1940: 6367558.496874981\n    test 255 Krassovski1940: 6367558.496874981\n    test 256 Krassovski1940: 6367558.496874981\n    test 257 Krassovski1940: 6367558.496874981\n\n    test 258 Krassowsky1940: 6367558.496874981\n    test 259 Krassowsky1940: 6367558.496874981\n    test 260 Krassowsky1940: 6367558.496874981\n    test 261 Krassowsky1940: 6367558.496874981\n\n    test 262 Maupertuis1738: 6380564.130118373\n    test 263 Maupertuis1738: 6380564.130118373\n    test 264 Maupertuis1738: 6380564.130118373\n    test 265 Maupertuis1738: 6380564.130118373\n\n    test 266 Mercury1960: 6367479.629236430\n    test 267 Mercury1960: 6367479.629236430\n    test 268 Mercury1960: 6367479.629236430\n    test 269 Mercury1960: 6367479.629236430\n\n    test 270 Mercury1968Mod: 6367463.656043807\n    test 271 Mercury1968Mod: 6367463.656043807\n    test 272 Mercury1968Mod: 6367463.656043807\n    test 273 Mercury1968Mod: 6367463.656043807\n\n    test 274 NWL1965: 6367456.873668412\n    test 275 NWL1965: 6367456.873668412\n    test 276 NWL1965: 6367456.873668412\n    test 277 NWL1965: 6367456.873668412\n\n    test 278 OSU86F: 6367448.347165301\n    test 279 OSU86F: 6367448.347165301\n    test 280 OSU86F: 6367448.347165301\n    test 281 OSU86F: 6367448.347165301\n\n    test 282 OSU91A: 6367448.446997731  FAILED, KNOWN, expected 6367448.446997732\n    test 283 OSU91A: 6367448.446997731  FAILED, KNOWN, expected 6367448.446997732\n    test 284 OSU91A: 6367448.446997731  FAILED, KNOWN, expected 6367448.446997732\n    test 285 OSU91A: 6367448.446997731  FAILED, KNOWN, expected 6367448.446997732\n\n    test 286 Plessis1817: 6366197.157107386  FAILED, KNOWN, expected 6366197.157107385\n    test 287 Plessis1817: 6366197.157107386  FAILED, KNOWN, expected 6366197.157107385\n    test 288 Plessis1817: 6366197.157107386  FAILED, KNOWN, expected 6366197.157107385\n    test 289 Plessis1817: 6366197.157107386  FAILED, KNOWN, expected 6366197.157107385\n\n    test 290 PZ90: 6367448.169554430  FAILED, KNOWN, expected 6367448.169554429\n    test 291 PZ90: 6367448.169554430  FAILED, KNOWN, expected 6367448.169554429\n    test 292 PZ90: 6367448.169554430  FAILED, KNOWN, expected 6367448.169554429\n    test 293 PZ90: 6367448.169554430  FAILED, KNOWN, expected 6367448.169554429\n\n    test 294 SGS85: 6367448.139491247\n    test 295 SGS85: 6367448.139491247\n    test 296 SGS85: 6367448.139491247\n    test 297 SGS85: 6367448.139491247\n\n    test 298 SoAmerican1969: 6367471.848532285\n    test 299 SoAmerican1969: 6367471.848532285\n    test 300 SoAmerican1969: 6367471.848532285\n    test 301 SoAmerican1969: 6367471.848532285\n\n    test 302 Sphere: 6371008.771415000\n    test 303 Sphere: 6371008.771415000\n    test 304 Sphere: 6371008.771415000\n    test 305 Sphere: 6371008.771415000\n\n    test 306 SphereAuthalic: 6371000.000000000\n    test 307 SphereAuthalic: 6371000.000000000\n    test 308 SphereAuthalic: 6371000.000000000\n    test 309 SphereAuthalic: 6371000.000000000\n\n    test 310 SpherePopular: 6378137.000000000\n    test 311 SpherePopular: 6378137.000000000\n    test 312 SpherePopular: 6378137.000000000\n    test 313 SpherePopular: 6378137.000000000\n\n    test 314 Struve1860: 6367482.318325493\n    test 315 Struve1860: 6367482.318325493\n    test 316 Struve1860: 6367482.318325493\n    test 317 Struve1860: 6367482.318325493\n\n    test 318 WGS60: 6367478.630911891  FAILED, KNOWN, expected 6367478.630911890\n    test 319 WGS60: 6367478.630911891  FAILED, KNOWN, expected 6367478.630911890\n    test 320 WGS60: 6367478.630911891  FAILED, KNOWN, expected 6367478.630911890\n    test 321 WGS60: 6367478.630911891  FAILED, KNOWN, expected 6367478.630911890\n\n    test 322 WGS66: 6367456.873668412\n    test 323 WGS66: 6367456.873668412\n    test 324 WGS66: 6367456.873668412\n    test 325 WGS66: 6367456.873668412\n\n    test 326 WGS72: 6367447.248623827  FAILED, KNOWN, expected 6367447.248623826\n    test 327 WGS72: 6367447.248623827  FAILED, KNOWN, expected 6367447.248623826\n    test 328 WGS72: 6367447.248623827  FAILED, KNOWN, expected 6367447.248623826\n    test 329 WGS72: 6367447.248623827  FAILED, KNOWN, expected 6367447.248623826\n\n    test 330 WGS84: 6367449.145823414\n    test 331 WGS84: 6367449.145823414\n    test 332 WGS84: 6367449.145823414\n    test 333 WGS84: 6367449.145823414\n\n    test 334 WGS84_NGS: 6367449.145771043\n    test 335 WGS84_NGS: 6367449.145771043\n    test 336 WGS84_NGS: 6367449.145771043\n    test 337 WGS84_NGS: 6367449.145771043\n\n    test 338 hypot: 1\n    test 339 sqrt_a: 0.6102683302836\n    test 340 sqrt_a: 0.6102683302836\n    test 341 hypot_ : 1.00001250\n    test 342 euclid_: 1.00207107  FAILED, KNOWN, expected 1.00001250\n    test 343 hypot2_: 1.00002500\n    test 344 norm_  : 1.00000000\n    test 345 hypot_ : 3606.937759\n    test 346 euclid_: 3845.584412  FAILED, KNOWN, expected 3859.423403\n    test 347 hypot2_: 13010000.0\n    test 348 norm_  : 1.0\n    test 349 hypot_ : 40112.842\n    test 350 hypot2_: 1609040100.0\n    test 351 euclid_: 41277.666  FAILED, KNOWN, expected 41316.227\n    test 352 bqrt: 2.00\n    test 353 cbrt: 3.00\n    test 354 cbrt: -3.00\n    test 355 cbrt2: 9.00\n    test 356 cbrt2: 9.00\n    test 357 sqrt3: 27.00\n    test 358 zcrt: 2.00\n    test 359 zqrt: 2.00\n    test 360 facos1: 0.005%\n    test 361 fasin1: 0.439%\n    test 362 fatan : 0.134%\n    test 363 fatan1: 2.834%\n    test 364 fatan2: 0.321%\n\n    test 365 Fhypot: Fhypot[1] (5.0, 0)\n    test 366 Fhypot: Fhypot[1] (9.43398, 0)\n    test 367 Fhypot: Fhypot[1] (5.0, 0)\n    test 368 Fhypot: Fhypot[1] (-2.18182, 0)\n    test 369 Fhypot: Fhypot[1] (-12, 0)\n    test 370 Fhypot: Fhypot[1] (1.41421, 0)\n    test 371 Fhypot: Fhypot[1] (-0.5, 0)\n    test 372 Fhypot: Fhypot[1] (-0.333333, 0)\n    test 373 Fhypot: fmath.Fhypot(<Fsum[1] (-1, 0) at 0x108fcd450>, -1, root=0): 1.0 / 0: float division by zero\n\n    test 374 Fsqrt: Fsqrt[1] (3.0, 0)\n    test 375 Fsqrt: Fcbrt[1] (3.0, 0)\n    test 376 Fsqrt: Fsqrt[1] (1.41421, 0)\n    test 377 Fsqrt: Fsqrt[1] (1.41421, 0)\n    test 378 Froot: Froot[1] (0.5, 0)\n    test 379 Froot: Froot[1] (0.5, 0)\n    test 380 Fsqrt: fmath.Fsqrt(<Fsum[1] (-1, 0) at 0x108fccd50>, -1, root=2): -2.0 root Fsum[1] (0.5, 0): complex (8.659560562354934e-17+1.4142135623730951j) from 2-arg pow(-2, 0.5)\n    test 381 Fsqrt: fmath.Froot(<Fsum[1] (-1, 0) at 0x108fccd50>, -1, root=0): 1.0 / 0: float division by zero\n    test 382 Froot: Froot[1] (-0.25, 0)\n\n    test 383 Fhypot2: 3.74165739e+100\n    test 384 Fpowers2: -1467.89542\n    test 385 Fsqrt2: 0.0541578006\n    test 386 Fcbrt2: 0.143144285\n\n    test 387 Fhypot3: 3.74165739e+100\n    test 388 Fpowers3: -16881.7154\n    test 389 Fsqrt3: 5.36080943e-05\n    test 390 Fcbrt3: 0.00142174021\n\n    test 391 Fhypot4: 3.74165739e+100\n    test 392 Fpowers4: -1723.70141\n    test 393 Fsqrt4: 0.00484039916\n    test 394 Fcbrt4: 0.028614585\n\n    test 395 Fhypot5: 3.74165739e+100\n    test 396 Fpowers5: 365.124737\n    test 397 Fsqrt5: 0.448148418\n    test 398 Fcbrt5: 0.585618218\n\n    test 399 Fhypot6: 3.74165739e+100\n    test 400 Fpowers6: 523.671403\n    test 401 Fsqrt6: 0.0430933845\n    test 402 Fcbrt6: 0.122915618\n\n    test 403 Fhypot8: 3.74165739e+100\n    test 404 Fpowers8: -23525.9173\n    test 405 Fsqrt8: 0.121977256\n    test 406 Fcbrt8: 0.245953254\n\n    test 407 fma: 2.4412441982659e-05\n    test 408 fma: 6.365860485903399\n    test 409 abc: 6.3658604845404625  FAILED, KNOWN, expected 6.365860485903399\n\n    test 410 f2mul_: 24.0\n    test 411 f2mul_: inf\n    test 412 f2mul_: inf\n\n    72 of 412 testFmath.py tests (17.5%) FAILED, ALL KNOWN (pygeodesy 26.3.26 Python 3.13.12 64bit arm64 coverage 7.10.7 geographiclib 2.1 numpy 2.3.3 scipy 1.16.2 Math 2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 macOS 26.3.1 isLazy 1 -W  default) 122.059 ms\nrunning /Library/Framewo....n3.13 -W default ~/PyGeodesy/test/testFormy.py\n./test/testFormy.py:28: DeprecationWarning: function L{cosineAndoyerLambert<pygeodesy.deprecated.functions.cosineAndoyerLambert>} has been DEPRECATED on 2024.12.31, use function L{pygeodesy.cosineLaw} with C{B{corr}=1}.\n  d = f(lat1, lon1, lat2, lon2, wrap=True, **kwds)\n./test/testFormy.py:28: DeprecationWarning: function L{cosineForsytheAndoyerLambert<pygeodesy.deprecated.functions.cosineForsytheAndoyerLambert>} has been DEPRECATED on 2024.12.31, use function L{pygeodesy.cosineLaw} with C{B{corr}=2}.\n  d = f(lat1, lon1, lat2, lon2, wrap=True, **kwds)\n./pygeodesy/formy.py:1097: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  if d.ellipsoid.geodesic:\n./pygeodesy/azimuthal.py:636: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return self.datum.ellipsoid.geodesic\n./pygeodesy/ellipsoidalKarney.py:94: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return self.datum.ellipsoid.geodesic\n\n    testing testFormy.py 26.01.05 isLazy=1\n    test 1 angle2chord: 9009967.011\n    test 2 chord2angle: 1.570796\n    test 3 antipode1: (-89.0, -1.0)\n    test 4 antipode2: (89.0, 1.0)\n    test 5 bearing1: 251.364\n    test 6 bearing2: 251.364\n    test 7 bearing3: 249.614\n    test 8 excessAbc_: 11.9698\n    test 9 excessAbc_: 11.9698\n    test 10 excessCagnoli_: 11.9698\n    test 11 excessGirard_: 11.9698\n    test 12 excessLHuilier_: 11.9698\n    test 13 excessKarney: 56.9625\n    test 14 excessQuad: 56.9625\n    test 15 excessKarney: 44.0235\n    test 16 excessQuad: 44.0235\n    test 17 excessKarney: -44.0235\n    test 18 excessQuad: -44.0235\n\n    test 19 isantipode1: True\n    test 20 isantipode2: True\n    test 21 isantipode3: False\n    test 22 isantipode4: True\n    test 23 isantipode5: True\n    test 24 isantipode6: True\n    test 25 isantipode7: False\n    test 26 isantipode8: True\n\n    test 27 isnormal1: True\n    test 28 isnormal2: False\n    test 29 isnormal3: True\n    test 30 isnormal4: True\n    test 31 isnormal5: True\n    test 32 isnormal6: False\n    test 33 isnormal7: True\n    test 34 isnormal8: True\n\n    test 35 hartzell: (884080.396945, 5592040.198472, 2927517.711001)\n    test 36 hartzell: 27.500482°N, 081.016111°E, +12669647.30  FAILED, KNOWN, expected 27.500482°N, 081.016111°E, +12669647.30, 'hartzell'\n    test 37 hartzell: (3642031.283571, 3678090.99925, 3714150.714929)\n    test 38 hartzell: 35.843738°N, 045.282243°E, +11296639.67  FAILED, KNOWN, expected 35.843738°N, 045.282243°E, +11296639.67, 'hartzell'\n    test 39 hartzell: (3647362.058328, 3683474.553955, 3703640.299338)\n    test 40 hartzell: 35.726966°N, 045.282243°E, +11296619.03  FAILED, KNOWN, expected 35.726966°N, 045.282243°E, +11296619.03, 'hartzell'\n    test 41 heightOf0: 2638958.23912\n    test 42 heightOf45: 5401080.43931\n    test 43 heightOf90: 6371008.77141\n    test 44 heightOf135: 5401080.43931\n    test 45 horizon0: 0.0\n    test 46 horizon10Km: 357099.672\n    test 47 horizon30Kft: 392310.704\n    test 48 horizon10Kft: 214877.422\n    test 49 normal1: (-89.0, 179.0)\n    test 50 normal2: (81.0, 180.0)\n    test 51 normal3: (81.0, -19.0)\n    test 52 normal4: (-81.0, 0.0)\n\n    test 53 haversine1 (0.00%): 298009.404\n    test 54 vincentys1 (0.00%): 298009.404\n    test 55 vincentys1 (0.00%): 298009.404\n    test 56 cosineAndoyerLambert1 (0.13%): 298395.796  FAILED, KNOWN, expected 298009.404\n    test 57 cosineForsytheAndoyerLambert1 (0.13%): 298396.056  FAILED, KNOWN, expected 298009.404\n    test 58 cosineLaw1 (0.00%): 298009.404\n    test 59 equirectangular1 (0.01%): 298039.206  FAILED, KNOWN, expected 298009.404\n    test 60 euclidean1 (5.26%): 313698.901  FAILED, KNOWN, expected 298009.404\n    test 61 flatLocal1 (0.14%): 298425.999  FAILED, KNOWN, expected 298009.404\n    test 62 flatPolar1 (8.67%): 323841.582  FAILED, KNOWN, expected 298009.404\n    test 63 thomas1 (0.13%): 298396.261  FAILED, KNOWN, expected 298009.404\n    test 64 hubeny1: <function flatLocal at 0x10793fe20>\n\n    test 65 haversine2 (0.00%): 98164.988\n    test 66 vincentys2 (0.00%): 98164.988\n    test 67 vincentys2 (0.00%): 98164.988\n    test 68 cosineAndoyerLambert2 (0.10%): 98071.421  FAILED, KNOWN, expected 98164.988\n    test 69 cosineForsytheAndoyerLambert2 (0.10%): 98071.560  FAILED, KNOWN, expected 98164.988\n    test 70 cosineLaw2 (0.00%): 98164.988\n    test 71 equirectangular2 (0.00%): 98165.123  FAILED, KNOWN, expected 98164.988\n    test 72 euclidean2 (6.37%): 104419.458  FAILED, KNOWN, expected 98164.988\n    test 73 flatLocal2 (0.10%): 98071.693  FAILED, KNOWN, expected 98164.988\n    test 74 flatPolar2 (0.57%): 98725.040  FAILED, KNOWN, expected 98164.988\n    test 75 thomas2 (0.10%): 98071.535  FAILED, KNOWN, expected 98164.988\n    test 76 hubeny2: <function flatLocal at 0x10793fe20>\n\n    test 77 haversine3 (0.00%): 651816.987\n    test 78 vincentys3 (0.00%): 651816.987\n    test 79 vincentys3 (0.00%): 651816.987\n    test 80 cosineAndoyerLambert3 (0.25%): 653456.144  FAILED, KNOWN, expected 651816.987\n    test 81 cosineForsytheAndoyerLambert3 (0.25%): 653456.175  FAILED, KNOWN, expected 651816.987\n    test 82 cosineLaw3 (0.00%): 651816.987\n    test 83 equirectangular3 (0.03%): 652041.760  FAILED, KNOWN, expected 651816.987\n    test 84 euclidean3 (4.37%): 680281.470  FAILED, KNOWN, expected 651816.987\n    test 85 flatLocal3 (0.29%): 653681.559  FAILED, KNOWN, expected 651816.987\n    test 86 flatPolar3 (13.00%): 736534.840  FAILED, KNOWN, expected 651816.987\n    test 87 thomas3 (0.25%): 653456.933  FAILED, KNOWN, expected 651816.987\n    test 88 hubeny3: <function flatLocal at 0x10793fe20>\n\n    test 89 haversine4 (0.00%): 4084985.780\n    test 90 vincentys4 (0.00%): 4084985.780\n    test 91 vincentys4 (0.00%): 4084985.780\n    test 92 cosineAndoyerLambert4 (0.24%): 4094954.008  FAILED, KNOWN, expected 4084985.780\n    test 93 cosineForsytheAndoyerLambert4 (0.24%): 4094953.639  FAILED, KNOWN, expected 4084985.780\n    test 94 cosineLaw4 (0.00%): 4084985.780\n    test 95 equirectangular4 (1.26%): 4136407.022  FAILED, KNOWN, expected 4084985.780\n    test 96 euclidean4 (4.22%): 4257296.511  FAILED, KNOWN, expected 4084985.780\n    test 97 flatLocal4 (1.51%): 4146513.247  FAILED, KNOWN, expected 4084985.780\n    test 98 flatPolar4 (12.31%): 4587896.452  FAILED, KNOWN, expected 4084985.780\n    test 99 thomas4 (0.24%): 4094958.301  FAILED, KNOWN, expected 4084985.780\n    test 100 hubeny4: <function flatLocal at 0x10793fe20>\n\n    test 101 haversine5 (0.00%): 9670051.606\n    test 102 vincentys5 (0.00%): 9670051.606\n    test 103 vincentys5 (0.00%): 9670051.606\n    test 104 cosineAndoyerLambert5 (0.21%): 9690752.610  FAILED, KNOWN, expected 9670051.606\n    test 105 cosineForsytheAndoyerLambert5 (0.21%): 9690746.120  FAILED, KNOWN, expected 9670051.606\n    test 106 cosineLaw5 (0.00%): 9670051.606\n    test 107 equirectangular5 (7.79%): 10423307.214  FAILED, KNOWN, expected 9670051.606\n    test 108 euclidean5 (9.34%): 10573030.726  FAILED, KNOWN, expected 9670051.606\n    test 109 flatLocal5 (8.03%): 10446503.342  FAILED, KNOWN, expected 9670051.606\n    test 110 flatPolar5 (55.59%): 15045906.074  FAILED, KNOWN, expected 9670051.606\n    test 111 thomas5 (0.21%): 9690767.767  FAILED, KNOWN, expected 9670051.606\n    test 112 hubeny5: <function flatLocal at 0x10793fe20>\n\n    test 113 haversine6 (0.00%): 10496496.577\n    test 114 vincentys6 (0.00%): 10496496.577\n    test 115 vincentys6 (0.00%): 10496496.577\n    test 116 cosineAndoyerLambert6 (0.18%): 10477328.664  FAILED, KNOWN, expected 10496496.577\n    test 117 cosineForsytheAndoyerLambert6 (0.18%): 10477342.084  FAILED, KNOWN, expected 10496496.577\n    test 118 cosineLaw6 (0.00%): 10496496.577\n    test 119 equirectangular6 (3.32%): 10844969.236  FAILED, KNOWN, expected 10496496.577\n    test 120 euclidean6 (4.50%): 10968488.107  FAILED, KNOWN, expected 10496496.577\n    test 121 flatLocal6 (3.07%): 10818798.605  FAILED, KNOWN, expected 10496496.577\n    test 122 flatPolar6 (23.87%): 13002288.857  FAILED, KNOWN, expected 10496496.577\n    test 123 thomas6 (0.18%): 10477316.498  FAILED, KNOWN, expected 10496496.577\n    test 124 hubeny6: <function flatLocal at 0x10793fe20>\n\n    test 125 haversine7 (0.00%): 8998396.669\n    test 126 vincentys7 (0.00%): 8998396.669\n    test 127 vincentys7 (0.00%): 8998396.669\n    test 128 cosineAndoyerLambert7 (0.27%): 8974227.489  FAILED, KNOWN, expected 8998396.669\n    test 129 cosineForsytheAndoyerLambert7 (0.27%): 8974238.592  FAILED, KNOWN, expected 8998396.669\n    test 130 cosineLaw7 (0.00%): 8998396.669\n    test 131 equirectangular7 (2.05%): 9182626.289  FAILED, KNOWN, expected 8998396.669\n    test 132 euclidean7 (7.76%): 9696965.812  FAILED, KNOWN, expected 8998396.669\n    test 133 flatLocal7 (1.71%): 9151831.117  FAILED, KNOWN, expected 8998396.669\n    test 134 flatPolar7 (17.56%): 10578638.162  FAILED, KNOWN, expected 8998396.669\n    test 135 thomas7 (0.27%): 8974216.867  FAILED, KNOWN, expected 8998396.669\n    test 136 hubeny7: <function flatLocal at 0x10793fe20>\n\n    test 137 haversine8 (0.00%): 6906867.946\n    test 138 vincentys8 (0.00%): 6906867.946\n    test 139 vincentys8 (0.00%): 6906867.946\n    test 140 cosineAndoyerLambert8 (0.13%): 6916085.969  FAILED, KNOWN, expected 6906867.946\n    test 141 cosineForsytheAndoyerLambert8 (0.13%): 6916085.333  FAILED, KNOWN, expected 6906867.946\n    test 142 cosineLaw8 (0.00%): 6906867.946\n    test 143 equirectangular8 (0.91%): 6969581.760  FAILED, KNOWN, expected 6906867.946\n    test 144 euclidean8 (6.54%): 7358706.022  FAILED, KNOWN, expected 6906867.946\n    test 145 flatLocal8 (1.04%): 6978905.097  FAILED, KNOWN, expected 6906867.946\n    test 146 flatPolar8 (23.23%): 8511564.321  FAILED, KNOWN, expected 6906867.946\n    test 147 thomas8 (0.13%): 6916087.828  FAILED, KNOWN, expected 6906867.946\n    test 148 hubeny8: <function flatLocal at 0x10793fe20>\n\n    test 149 haversine9 (0.01%): 8045325.213  FAILED, KNOWN, expected 8044806.076\n    test 150 vincentys9 (0.01%): 8045325.213  FAILED, KNOWN, expected 8044806.076\n    test 151 cosineAndoyerLambert9 (0.07%): 8050357.566  FAILED, KNOWN, expected 8044806.076\n    test 152 cosineForsytheAndoyerLambert9 (0.07%): 8050363.635  FAILED, KNOWN, expected 8044806.076\n    test 153 cosineLaw9 (0.01%): 8045325.213  FAILED, KNOWN, expected 8044806.076\n    test 154 flatLocal9 (15.21%): 9268128.573  FAILED, KNOWN, expected 8044806.076\n    test 155 thomas9 (0.07%): 8050370.796  FAILED, KNOWN, expected 8044806.076\n    test 156 hubeny9: <function flatLocal at 0x10793fe20>\n\n    test 157 intersection2: pygeodesy.formy\n    test 158 intersection2(None): (25.980762, 15.0)  FAILED, KNOWN, expected (24.284126, 15.0)\n    test 159 intersection2(6371008.771415): (24.146108, 15.0)  FAILED, KNOWN, expected (24.284126, 15.0)\n    test 160 intersection2(-6371008.771415): (24.146108, 15.0)  FAILED, KNOWN, expected (24.284126, 15.0)\n    test 161 intersection2(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84): (24.284126, 15.0)\n\n    test 162 intersections2: pygeodesy.formy\n    test 163 intersections2(None) 1: (1.0003, 1.0003), (-1.0003, -1.0003)\n    test 164 intersections2(None) 2: (2.0024, 2.0024), (-2.0024, -2.0024)\n    test 165 intersections2(None) 5: (5.0381, 5.0381), (-5.0381, -5.0381)\n    test 166 intersections2(None) 10: (10.3062, 10.3062), (-10.3062, -10.3062)\n    test 167 intersections2(None) 20: (-22.494, -22.494), (22.494, 22.494)\n    test 168 intersections2(None) 30: (38.7298, 38.7298), (-38.7298, -38.7298)\n    test 169 intersections2(None) 40: (62.0732, 62.0732), (-62.0732, -62.0732)\n    test 170 intersections2(R_M) 1: (-1.0, -1.0003), (1.0, 1.0003)\n    test 171 intersections2(R_M) 2: (-2.0, -2.0024), (2.0, 2.0024)\n    test 172 intersections2(R_M) 5: (-4.9999, -5.0383), (4.9999, 5.0383)\n    test 173 intersections2(R_M) 10: (-9.9976, -10.3117), (9.9976, 10.3117)\n    test 174 intersections2(R_M) 20: (-19.914, -22.6761), (19.914, 22.6761)\n    test 175 intersections2(R_M) 30: (-29.2059, -40.203), (29.2059, 40.203)\n    test 176 intersections2(R_M) 40: (-35.5129, -68.6826), (35.5129, 68.6826)\n    test 177 intersections2(WGS84) 1: (-1.0112, -0.998), (1.0112, 0.998)\n    test 178 intersections2(WGS84) 2: (-2.0224, -1.9979), (2.0224, 1.9979)\n    test 179 intersections2(WGS84) 5: (-5.0558, -5.0271), (5.0558, 5.0271)\n    test 180 intersections2(WGS84) 10: (-10.1081, -10.2901), (10.1081, 10.2901)\n    test 181 intersections2(WGS84) 20: (-20.1241, -22.6411), (20.1241, 22.6411)\n    test 182 intersections2(WGS84) 30: (-29.4898, -40.1785), (29.4898, 40.1785)\n    test 183 intersections2(WGS84) 40: (-35.8146, -68.7149), (35.8146, 68.7149)\n\n    test 184 radical2: (0.26, 2.6)\n    test 185 radical2: (0.74, 7.4)\n    test 186 radical2: (0.5, 5.0)\n    test 187 radical2: (0.5, 0.0)\n    test 188 IntersectionError: distance (10.0), radius1 (5.0) or radius2 (4.0): too distant  FAILED, KNOWN, expected distance (10.0), ...\n\n    test 189 LimitError: equirectangular4(0.0, 0.0, 60.0, 120.0, limit=45, wrap=False): delta (120) exceeds limit (45)  FAILED, KNOWN, expected delta exceeds ...\n\n    test 190 heightOrthometric: -1.0\n    test 191 heightOrthometric: 1.0\n\n    161 of 191 testFormy.py tests (84.3%) FAILED, incl. 71 KNOWN plus 90 DeprecationWarnings (pygeodesy 26.3.26 Python 3.13.12 64bit arm64 coverage 7.10.7 geographiclib 2.1 numpy 2.3.3 scipy 1.16.2 Math 2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 macOS 26.3.1 isLazy 1 -W  default) 91.905 ms\nrunning /Library/Framewo....n3.13 -W default ~/PyGeodesy/test/testFrechet.py\n./pygeodesy/frechet.py:644: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  self._func = self.datum.ellipsoid.geodesic.Inverse1\n./pygeodesy/ellipsoidalKarney.py:94: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return self.datum.ellipsoid.geodesic\n\n    testing testFrechet.py 25.04.21 isLazy=1\n\n    test 1 FrechetDegrees_ (degrees): (178.5, 74, 56, 0, 5400)\n    test 2 FrechetDegrees_ (degrees): (175.5, 74, 52.5, 29, 10710)\n    test 3 copy(<class 'type'>): (<class '__main__.FrechetDegrees_'>, True)\n    test 4 FrechetDegrees_.copy(): (<class '__main__.FrechetDegrees_'>, True)\n\n    test 5 FrechetRadians_ (radians): (3.11541, 74, 56, 0, 5400)\n    test 6 FrechetRadians_ (radians): (3.06305, 74, 52.5, 29, 10710)\n    test 7 copy(<class 'type'>): (<class '__main__.FrechetRadians_'>, True)\n    test 8 FrechetRadians_.copy(): (<class '__main__.FrechetRadians_'>, True)\n\n    test 9 FrechetCosineLaw (radians): (2.63867, 0, 13, 0, 5400)\n    test 10 FrechetCosineLaw (radians): (2.63867, 0, 0, 208, 10710)\n    test 11 copy(<class 'type'>): (<class 'pygeodesy.frechet.FrechetCosineLaw'>, True)\n    test 12 FrechetCosineLaw.copy(): (<class 'pygeodesy.frechet.FrechetCosineLaw'>, True)\n\n    test 13 FrechetCosineLaw (radians): (2.6319, 0, 13, 0, 5400)\n    test 14 FrechetCosineLaw (radians): (2.6319, 0, 0, 208, 10710)\n    test 15 copy(<class 'type'>): (<class 'pygeodesy.frechet.FrechetCosineLaw'>, True)\n    test 16 FrechetCosineLaw.copy(): (<class 'pygeodesy.frechet.FrechetCosineLaw'>, True)\n\n    test 17 FrechetCosineLaw (radians): (2.6319, 0, 13, 0, 5400)\n    test 18 FrechetCosineLaw (radians): (2.6319, 0, 0, 208, 10710)\n    test 19 copy(<class 'type'>): (<class 'pygeodesy.frechet.FrechetCosineLaw'>, True)\n    test 20 FrechetCosineLaw.copy(): (<class 'pygeodesy.frechet.FrechetCosineLaw'>, True)\n\n    test 21 FrechetEquirectangular (radians2): (7.1331, 8, 3, 0, 5400)\n    test 22 FrechetEquirectangular (radians2): (7.01295, 0, 0, 208, 10710)\n    test 23 copy(<class 'type'>): (<class 'pygeodesy.frechet.FrechetEquirectangular'>, True)\n    test 24 FrechetEquirectangular.copy(): (<class 'pygeodesy.frechet.FrechetEquirectangular'>, True)\n\n    test 25 FrechetEuclidean (radians): (2.81124, 8, 3, 0, 5400)\n    test 26 FrechetEuclidean (radians): (2.74296, 0, 0, 208, 10710)\n    test 27 copy(<class 'type'>): (<class 'pygeodesy.frechet.FrechetEuclidean'>, True)\n    test 28 FrechetEuclidean.copy(): (<class 'pygeodesy.frechet.FrechetEuclidean'>, True)\n\n    test 29 FrechetFlatLocal (radians2): (7.13778, 8, 3, 0, 5400)\n    test 30 FrechetFlatLocal (radians2): (6.92262, 0, 0, 208, 10710)\n    test 31 copy(<class 'type'>): (<class 'pygeodesy.frechet.FrechetFlatLocal'>, True)\n    test 32 FrechetFlatLocal.copy(): (<class 'pygeodesy.frechet.FrechetFlatLocal'>, True)\n\n    test 33 FrechetFlatPolar (radians): (2.65039, 0, 4, 0, 5400)\n    test 34 FrechetFlatPolar (radians): (2.65039, 0, 0, 208, 10710)\n    test 35 copy(<class 'type'>): (<class 'pygeodesy.frechet.FrechetFlatPolar'>, True)\n    test 36 FrechetFlatPolar.copy(): (<class 'pygeodesy.frechet.FrechetFlatPolar'>, True)\n\n    test 37 FrechetHaversine (radians): (2.63867, 0, 13, 0, 5400)\n    test 38 FrechetHaversine (radians): (2.63867, 0, 0, 208, 10710)\n    test 39 copy(<class 'type'>): (<class 'pygeodesy.frechet.FrechetHaversine'>, True)\n    test 40 FrechetHaversine.copy(): (<class 'pygeodesy.frechet.FrechetHaversine'>, True)\n\n    test 41 FrechetHubeny (radians2): (7.13778, 8, 3, 0, 5400)\n    test 42 FrechetHubeny (radians2): (6.92262, 0, 0, 208, 10710)\n    test 43 copy(<class 'type'>): (<class 'pygeodesy.frechet.FrechetHubeny'>, True)\n    test 44 FrechetHubeny.copy(): (<class 'pygeodesy.frechet.FrechetHubeny'>, True)\n\n    test 45 FrechetThomas (radians): (2.63187, 0, 13, 0, 5400)\n    test 46 FrechetThomas (radians): (2.63187, 0, 0, 208, 10710)\n    test 47 copy(<class 'type'>): (<class 'pygeodesy.frechet.FrechetThomas'>, True)\n    test 48 FrechetThomas.copy(): (<class 'pygeodesy.frechet.FrechetThomas'>, True)\n\n    test 49 FrechetVincentys (radians): (2.63867, 0, 13, 0, 5400)\n    test 50 FrechetVincentys (radians): (2.63867, 0, 0, 208, 10710)\n    test 51 copy(<class 'type'>): (<class 'pygeodesy.frechet.FrechetVincentys'>, True)\n    test 52 FrechetVincentys.copy(): (<class 'pygeodesy.frechet.FrechetVincentys'>, True)\n\n    test 53 FrechetKarney (degrees): (151.09508, 0, 13, 0, 5400)\n    test 54 FrechetKarney (degrees): (151.09508, 0, 0, 208, 10710)\n    test 55 copy(<class 'type'>): (<class 'pygeodesy.frechet.FrechetKarney'>, True)\n    test 56 FrechetKarney.copy(): (<class 'pygeodesy.frechet.FrechetKarney'>, True)\n\n    test 57 FrechetDistanceTo (meter): (16786640.7064, 0, 13, 0, 5400)\n    test 58 FrechetDistanceTo (meter): (16786640.7064, 0, 0, 208, 10710)\n    test 59 copy(<class 'type'>): (<class 'pygeodesy.frechet.FrechetDistanceTo'>, True)\n    test 60 FrechetDistanceTo.copy(): (<class 'pygeodesy.frechet.FrechetDistanceTo'>, True)\n\n    test 61 FrechetDistanceTo (meter): (16786640.7064, 0, 13, 0, 5400)\n    test 62 FrechetDistanceTo (meter): (16786640.7064, 0, 0, 208, 10710)\n    test 63 copy(<class 'type'>): (<class 'pygeodesy.frechet.FrechetDistanceTo'>, True)\n    test 64 FrechetDistanceTo.copy(): (<class 'pygeodesy.frechet.FrechetDistanceTo'>, True)\n\n    test 65 FrechetDistanceTo (meter): (16810959.0015, 0, 13, 0, 5400)\n    test 66 FrechetDistanceTo (meter): (16810959.0015, 0, 0, 208, 10710)\n    test 67 copy(<class 'type'>): (<class 'pygeodesy.frechet.FrechetDistanceTo'>, True)\n    test 68 FrechetDistanceTo.copy(): (<class 'pygeodesy.frechet.FrechetDistanceTo'>, True)\n\n    test 69 FrechetDistanceTo (meter): (16810959.0015, 0, 13, 0, 5400)\n    test 70 FrechetDistanceTo (meter): (16810959.0015, 0, 0, 208, 10710)\n    test 71 copy(<class 'type'>): (<class 'pygeodesy.frechet.FrechetDistanceTo'>, True)\n    test 72 FrechetDistanceTo.copy(): (<class 'pygeodesy.frechet.FrechetDistanceTo'>, True)\n\n    test 73 FrechetDistanceTo (meter): (16810959.0015, 0, 13, 0, 5400)\n    test 74 FrechetDistanceTo (meter): (16810959.0015, 0, 0, 208, 10710)\n    test 75 copy(<class 'type'>): (<class 'pygeodesy.frechet.FrechetDistanceTo'>, True)\n    test 76 FrechetDistanceTo.copy(): (<class 'pygeodesy.frechet.FrechetDistanceTo'>, True)\n\n    test 77 frechet_: (178.5, 74, 56, 19, 5400, 'recursive')\n    test 78 [fi1]: 64.0°S, 096.0°E\n    test 79 [fi2]: 41.0°S, 071.0°W\n    test 80 [fi1]: LatLon_(64.0°S, 096.0°E)\n    test 81 [fi2]: LatLon_(41.0°S, 071.0°W)\n\n    test 82 frechet_: (178.5, 74, 56, 0, 5400, 'non-recursive')\n    test 83 frechet_: (178.5, 15, 3, 0, 5400, 'non-recursive-reversed')\n\n    91 of 83 testFrechet.py tests (109.6%) FAILED, incl. 91 DeprecationWarnings (pygeodesy 26.3.26 Python 3.13.12 64bit arm64 coverage 7.10.7 geographiclib 2.1 numpy 2.3.3 scipy 1.16.2 Math 2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 macOS 26.3.1 isLazy 1 -W  default) 57.140 sec\nrunning /Library/Framewo....n3.13 -W default ~/PyGeodesy/test/testFrozen.py\n\n    testing testFrozen.py 24.03.03 isLazy=1\n    test 1 cmd: /Library/Frameworks/Python.framework/Versions/3.13/bin/python3.13 -c 'import sys; sys.frozen = True; import pygeodesy; sys.exit(0 if pygeodesy._isfrozen else 1)'\n    test 2 PYGEODESY_LAZY_IMPORT=0: 0\n    test 3 PYGEODESY_LAZY_IMPORT=1: 0\n    test 4 PYGEODESY_LAZY_IMPORT=2: 0\n\n    all 4 testFrozen.py tests passed (pygeodesy 26.3.26 Python 3.13.12 64bit arm64 coverage 7.10.7 geographiclib 2.1 numpy 2.3.3 scipy 1.16.2 Math 2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 macOS 26.3.1 isLazy 1 -W  default) 250.777 ms\nrunning /Library/Framewo....n3.13 -W default ~/PyGeodesy/test/testFstats.py\n\n    testing testFstats.py 23.05.08 (module pygeodesy.fstats 25.05.12) isLazy=1\n    test 1 Fcook: 8\n    test 2 Fcook: -0.218750\n    test 3 Fcook: 4.562500\n    test 4 Fcook: 5.0\n    test 5 Fcook: 0.656250\n    test 6 Fcook: 2.0\n    test 7 Fcook: 4.0\n    test 8 Fcook: 1.039635\n\n    test 9 copy: Fcook copy[8]\n    test 10 copy: 5.0\n    test 11 copy: 2.0\n    test 12 Fcook: 8\n\n    test 13 Doubled: 16\n    test 14 Doubled: -0.218750\n    test 15 Doubled: 4.5625\n    test 16 Doubled: 5.0\n    test 17 Doubled: 0.656250\n    test 18 Doubled: 2.0\n    test 19 Doubled: 4.0\n    test 20 Doubled: 1.340453  FAILED, KNOWN, expected 1.039635\n\n    test 21 Empty: Fcook Empty[16]\n    test 22 Empty: 18\n    test 23 Empty: TypeError('Fcook Empty[18] += None: None: not iterable')\n\n    test 24 Excel: 8\n    test 25 Excel: -1.114187\n    test 26 Excel: -0.939792\n    test 27 Excel: 2.735294\n    test 28 Excel: 2.50\n    test 29 Excel: -0.342403\n    test 30 Excel: -0.427052\n    test 31 Excel: 2.061553\n    test 32 Excel: 4.2\n    test 33 Excel: 0.470372\n\n    test 34 Fwelford: 8\n    test 35 Fwelford: 5.0\n    test 36 Fwelford: 2.0\n    test 37 Fwelford: 4.0\n\n    test 38 copy: Fwelford copy[8]\n    test 39 copy: 5.0\n    test 40 copy: 2.0\n    test 41 copy: 4.0\n    test 42 copy: 8\n    test 43 __add__: 18\n    test 44 __add__: TypeError('Fwelford __add__[18] += None: None: not iterable')\n\n    test 45 Flinear: 9\n    test 46 Flinear: 0.988288\n    test 47 Flinear: 167.682949\n    test 48 Flinear: 23.422786\n    test 49 __add__: 10\n    test 50 __add__: 21\n    test 51 __add__: TypeError('Flinear __add__[21] += None: None: not iterable')\n    test 52 __add__: ValueError('Flinear __add__[21] += (1, 2, 3): odd len (3): invalid')\n\n    1 of 52 testFstats.py tests (1.9%) FAILED, ALL KNOWN (pygeodesy 26.3.26 Python 3.13.12 64bit arm64 coverage 7.10.7 geographiclib 2.1 numpy 2.3.3 scipy 1.16.2 Math 2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 macOS 26.3.1 isLazy 1 -W  default) 645.865 ms\nrunning /Library/Framewo....n3.13 -W default ~/PyGeodesy/test/testFsums.py\n\n    testing testFsums.py 25.06.02 (module pygeodesy.fsums 26.02.02) isLazy=1\n    test 1 sum1: 0.0  FAILED, KNOWN, expected 2.0\n    test 2 fsum: 2.0\n    test 3 Fsum: 2.0\n    test 4 sum2: 1.0  FAILED, KNOWN, expected 4.0\n    test 5 fsum: 4.0\n    test 6 Fsum: 4.0\n    test 7 sum3: 3.0  FAILED, KNOWN, expected 8.0\n    test 8 fsum: 8.0\n    test 9 Fsum: 8.0\n    test 10 sum4: 7.0  FAILED, KNOWN, expected 16.0\n    test 11 fsum: 16.0\n    test 12 Fsum: 16.0\n    test 13 sum5: 15.0  FAILED, KNOWN, expected 32.0\n    test 14 fsum: 32.0\n    test 15 Fsum: 32.0\n    test 16 sum6: 31.0  FAILED, KNOWN, expected 64.0\n    test 17 fsum: 64.0\n    test 18 Fsum: 64.0\n    test 19 sum7: 63.0  FAILED, KNOWN, expected 128.0\n    test 20 fsum: 128.0\n    test 21 Fsum: 128.0\n    test 22 sum8: 127.0  FAILED, KNOWN, expected 256.0\n    test 23 fsum: 256.0\n    test 24 Fsum: 256.0\n    test 25 sum9: 255.0  FAILED, KNOWN, expected 512.0\n    test 26 fsum: 512.0\n    test 27 Fsum: 512.0\n    test 28 sum10: 511.0  FAILED, KNOWN, expected 1024.0\n    test 29 fsum: 1024.0\n    test 30 Fsum: 1024.0\n    test 31 sum: 1.005000000001\n    test 32 fsum: 1.005000000001\n    test 33 Fsum: 1.005000000001\n    test 34 fsum: 1.0000000000000002e+16\n    test 35 Fsum: 1.0000000000000002e+16\n    test 36 Fsum: 1.0000000000000002e+16\n\n\n    test 37 fsum: 1.4203229439040998e-06\n    test 38 sum1: 14.000001420323569  FAILED, KNOWN, expected 1.4203229439040998e-06\n    test 39 pow(4): Fsum[17] pow(4.06957e-24, 2.33188e-40)\n    test 40 pow(1): Fsum[842] pow(1.42032e-06, 4.98687e-23)\n    test 41 pow(0): Fsum[1] pow(1.0, 0)\n    test 42 ceil: True\n    test 43 floor: True\n    test 44 divmod: Fsum[847] (0.0, 0)\n    test 45 residual: 0\n    test 46 is_exact: True\n    test 47 Fsum: 1.4203229439040998e-06\n    test 48 Fsum: 1.4203229439040998e-06\n\n    test 49 fsum: 0.017239254941143905\n    test 50 sum2: 0.0  FAILED, KNOWN, expected 0.017239254941143905\n    test 51 pow(4): Fsum[21] pow(8.8323e-08, 2.46487e-26)\n    test 52 pow(1): Fsum[842] pow(0.0172393, -6.15105e-19)\n    test 53 pow(0): Fsum[1] pow(1.0, 0)\n    test 54 ceil: True\n    test 55 floor: True\n    test 56 divmod: Fsum[849] (0.0, 0)\n    test 57 residual: 0\n    test 58 is_exact: True\n    test 59 Fsum: 0.017239254941143905\n    test 60 Fsum: 0.017239254941143905\n\n    test 61 fsum: -4.399912565500297\n    test 62 sum3: -11.399912565499886  FAILED, KNOWN, expected -4.399912565500297\n    test 63 pow(4): Fsum[34] pow(374.78, -2.78761e-14)\n    test 64 pow(1): Fsum[842] pow(-4.39991, -9.03137e-17)\n    test 65 pow(0): Fsum[1] pow(1.0, 0)\n    test 66 ceil: True\n    test 67 floor: True\n    test 68 divmod: Fsum[852] (0.0, 0)\n    test 69 residual: 0\n    test 70 is_exact: True\n    test 71 Fsum: -4.399912565500297\n    test 72 Fsum: -4.399912565500297\n\n    test 73 fsum: 4.2324766388316953e-11\n    test 74 sum4: 0.0  FAILED, KNOWN, expected 4.2324766388316953e-11\n    test 75 pow(4): Fsum[8] pow(3.20906e-42, -1.32347e-58)\n    test 76 pow(1): Fsum[842] pow(4.23248e-11, 2.93802e-28)\n    test 77 pow(0): Fsum[1] pow(1.0, 0)\n    test 78 ceil: True\n    test 79 floor: True\n    test 80 divmod: Fsum[845] (0.0, 0)\n    test 81 residual: 0\n    test 82 is_exact: True\n    test 83 Fsum: 4.2324766388316953e-11\n    test 84 Fsum: 4.2324766388316953e-11\n\n    test 85 fsum: -0.008914133182563242\n    test 86 sum5: -14.008914133182614  FAILED, KNOWN, expected -0.008914133182563242\n    test 87 pow(4): Fsum[59] pow(6.31417e-09, 4.22286e-27)\n    test 88 pow(1): Fsum[842] pow(-0.00891413, -5.71362e-19)\n    test 89 pow(0): Fsum[1] pow(1.0, 0)\n    test 90 ceil: True\n    test 91 floor: True\n    test 92 divmod: Fsum[854] (0.0, 0)\n    test 93 residual: 0\n    test 94 is_exact: True\n    test 95 Fsum: -0.008914133182563242\n    test 96 Fsum: -0.008914133182563242\n\n    test 97 fsum: 0.2668150469030887\n    test 98 sum6: 7.2668150469033606  FAILED, KNOWN, expected 0.2668150469030887\n    test 99 pow(4): Fsum[28] pow(0.00506805, -6.31247e-20)\n    test 100 pow(1): Fsum[842] pow(0.266815, 2.51382e-17)\n    test 101 pow(0): Fsum[1] pow(1.0, 0)\n    test 102 ceil: True\n    test 103 floor: True\n    test 104 divmod: Fsum[849] (0.0, 0)\n    test 105 residual: 0\n    test 106 is_exact: True\n    test 107 Fsum: 0.2668150469030887\n    test 108 Fsum: 0.2668150469030887\n\n    test 109 fsum: -1.8483996395074306e-08\n    test 110 sum7: 0.0  FAILED, KNOWN, expected -1.8483996395074306e-08\n    test 111 pow(4): Fsum[8] pow(1.1673e-31, -2.07516e-49)\n    test 112 pow(1): Fsum[842] pow(-1.8484e-08, -1.41426e-24)\n    test 113 pow(0): Fsum[1] pow(1.0, 0)\n    test 114 ceil: True\n    test 115 floor: True\n    test 116 divmod: Fsum[847] (0.0, 0)\n    test 117 residual: 0\n    test 118 is_exact: True\n    test 119 Fsum: -1.8483996395074306e-08\n    test 120 Fsum: -1.8483996395074306e-08\n\n    test 121 fsum: -0.0005853306979721807\n    test 122 sum8: 0.0  FAILED, KNOWN, expected -0.0005853306979721807\n    test 123 pow(4): Fsum[22] pow(1.17383e-13, 8.69761e-30)\n    test 124 pow(1): Fsum[842] pow(-0.000585331, -4.27854e-21)\n    test 125 pow(0): Fsum[1] pow(1.0, 0)\n    test 126 ceil: True\n    test 127 floor: True\n    test 128 divmod: Fsum[848] (0.0, 0)\n    test 129 residual: 0\n    test 130 is_exact: True\n    test 131 Fsum: -0.0005853306979721807\n    test 132 Fsum: -0.0005853306979721807\n\n    test 133 fsum: 0.28395513510726667\n    test 134 sum9: 0.0  FAILED, KNOWN, expected 0.28395513510726667\n    test 135 pow(4): Fsum[36] pow(0.00650128, -2.68753e-19)\n    test 136 pow(1): Fsum[842] pow(0.283955, 2.59189e-18)\n    test 137 pow(0): Fsum[1] pow(1.0, 0)\n    test 138 ceil: True\n    test 139 floor: True\n    test 140 divmod: Fsum[848] (0.0, 0)\n    test 141 residual: 0\n    test 142 is_exact: True\n    test 143 Fsum: 0.28395513510726667\n    test 144 Fsum: 0.28395513510726667\n\n    test 145 fsum: 0.00019154119665364008\n    test 146 sum10: 0.0  FAILED, KNOWN, expected 0.00019154119665364008\n    test 147 pow(4): Fsum[17] pow(1.34601e-15, -3.08746e-32)\n    test 148 pow(1): Fsum[842] pow(0.000191541, -1.15795e-20)\n    test 149 pow(0): Fsum[1] pow(1.0, 0)\n    test 150 ceil: True\n    test 151 floor: True\n    test 152 divmod: Fsum[848] (0.0, 0)\n    test 153 residual: 0\n    test 154 is_exact: True\n    test 155 Fsum: 0.00019154119665364008\n    test 156 Fsum: 0.00019154119665364008\n\n    test 157 fsum: 5.358490922383404e-08\n    test 158 sum11: 0.0  FAILED, KNOWN, expected 5.358490922383404e-08\n    test 159 pow(4): Fsum[13] pow(8.24461e-30, 4.46501e-46)\n    test 160 pow(1): Fsum[842] pow(5.35849e-08, 2.67612e-24)\n    test 161 pow(0): Fsum[1] pow(1.0, 0)\n    test 162 ceil: True\n    test 163 floor: True\n    test 164 divmod: Fsum[846] (0.0, 0)\n    test 165 residual: 0\n    test 166 is_exact: True\n    test 167 Fsum: 5.358490922383404e-08\n    test 168 Fsum: 5.358490922383404e-08\n\n    test 169 fsum: -1.9453763248695655\n    test 170 sum12: 12.05462367513087  FAILED, KNOWN, expected -1.9453763248695655\n    test 171 pow(4): Fsum[26] pow(14.3224, 7.12534e-16)\n    test 172 pow(1): Fsum[842] pow(-1.94538, 8.67095e-17)\n    test 173 pow(0): Fsum[1] pow(1.0, 0)\n    test 174 ceil: True\n    test 175 floor: True\n    test 176 divmod: Fsum[847] (0.0, 0)\n    test 177 residual: 0\n    test 178 is_exact: True\n    test 179 Fsum: -1.9453763248695655\n    test 180 Fsum: -1.9453763248695655\n\n    test 181 fsum: 4.161773385984235e-09\n    test 182 sum13: 0.0  FAILED, KNOWN, expected 4.161773385984235e-09\n    test 183 pow(4): Fsum[13] pow(2.99995e-34, -1.62273e-50)\n    test 184 pow(1): Fsum[842] pow(4.16177e-09, -5.2347e-26)\n    test 185 pow(0): Fsum[1] pow(1.0, 0)\n    test 186 ceil: True\n    test 187 floor: True\n    test 188 divmod: Fsum[846] (0.0, 0)\n    test 189 residual: 0\n    test 190 is_exact: True\n    test 191 Fsum: 4.161773385984235e-09\n    test 192 Fsum: 4.161773385984235e-09\n\n    test 193 fsum: -5.330669493335932e-08\n    test 194 sum14: 0.0  FAILED, KNOWN, expected -5.330669493335932e-08\n    test 195 pow(4): Fsum[27] pow(8.07471e-30, -6.13932e-46)\n    test 196 pow(1): Fsum[842] pow(-5.33067e-08, 1.37312e-24)\n    test 197 pow(0): Fsum[1] pow(1.0, 0)\n    test 198 ceil: True\n    test 199 floor: True\n    test 200 divmod: Fsum[851] (0.0, 0)\n    test 201 residual: 0\n    test 202 is_exact: True\n    test 203 Fsum: -5.330669493335932e-08\n    test 204 Fsum: -5.330669493335932e-08\n\n    test 205 fsum: -6.4410389150402375e-09\n    test 206 sum15: 0.0  FAILED, KNOWN, expected -6.4410389150402375e-09\n    test 207 pow(4): Fsum[10] pow(1.72117e-33, -4.5197e-50)\n    test 208 pow(1): Fsum[842] pow(-6.44104e-09, -2.62447e-25)\n    test 209 pow(0): Fsum[1] pow(1.0, 0)\n    test 210 ceil: True\n    test 211 floor: True\n    test 212 divmod: Fsum[846] (0.0, 0)\n    test 213 residual: 0\n    test 214 is_exact: True\n    test 215 Fsum: -6.4410389150402375e-09\n    test 216 Fsum: -6.4410389150402375e-09\n\n    test 217 fsum: -100.70449671778515\n    test 218 sum16: -114.70449671778545  FAILED, KNOWN, expected -100.70449671778515\n    test 219 pow(4): Fsum[38] pow(1.02848e+08, -7.80444e-10)\n    test 220 pow(1): Fsum[842] pow(-100.704, 6.85494e-15)\n    test 221 pow(0): Fsum[1] pow(1.0, 0)\n    test 222 ceil: True\n    test 223 floor: True\n    test 224 divmod: Fsum[851] (0.0, 0)\n    test 225 residual: 0\n    test 226 is_exact: True\n    test 227 Fsum: -100.70449671778515\n    test 228 Fsum: -100.70449671778515\n\n    test 229 fsum: 0.031430096586523674\n    test 230 sum17: 14.031430096586924  FAILED, KNOWN, expected 0.031430096586523674\n    test 231 pow(4): Fsum[35] pow(9.7585e-07, -9.07106e-24)\n    test 232 pow(1): Fsum[842] pow(0.0314301, 3.07914e-18)\n    test 233 pow(0): Fsum[1] pow(1.0, 0)\n    test 234 ceil: True\n    test 235 floor: True\n    test 236 divmod: Fsum[853] (0.0, 0)\n    test 237 residual: 0\n    test 238 is_exact: True\n    test 239 Fsum: 0.031430096586523674\n    test 240 Fsum: 0.031430096586523674\n\n    test 241 fsum: 4.749236242624645e-07\n    test 242 sum18: 21.000000474922864  FAILED, KNOWN, expected 4.749236242624645e-07\n    test 243 pow(4): Fsum[16] pow(5.08739e-26, 1.39809e-42)\n    test 244 pow(1): Fsum[842] pow(4.74924e-07, -1.8261e-24)\n    test 245 pow(0): Fsum[1] pow(1.0, 0)\n    test 246 ceil: True\n    test 247 floor: True\n    test 248 divmod: Fsum[848] (0.0, 0)\n    test 249 residual: 0\n    test 250 is_exact: True\n    test 251 Fsum: 4.749236242624645e-07\n    test 252 Fsum: 4.749236242624645e-07\n\n    test 253 fsum: 4.020975754301224e-09\n    test 254 sum19: 0.0  FAILED, KNOWN, expected 4.020975754301224e-09\n    test 255 pow(4): Fsum[14] pow(2.61412e-34, 1.54533e-50)\n    test 256 pow(1): Fsum[842] pow(4.02098e-09, 3.15474e-25)\n    test 257 pow(0): Fsum[1] pow(1.0, 0)\n    test 258 ceil: True\n    test 259 floor: True\n    test 260 divmod: Fsum[846] (0.0, 0)\n    test 261 residual: 0\n    test 262 is_exact: True\n    test 263 Fsum: 4.020975754301224e-09\n    test 264 Fsum: 4.020975754301224e-09\n\n    test 265 fsum: 0.048270757278626016\n    test 266 sum20: -6.95172924272201  FAILED, KNOWN, expected 0.048270757278626016\n    test 267 pow(4): Fsum[26] pow(5.42921e-06, 2.03035e-22)\n    test 268 pow(1): Fsum[842] pow(0.0482708, -2.89109e-18)\n    test 269 pow(0): Fsum[1] pow(1.0, 0)\n    test 270 ceil: True\n    test 271 floor: True\n    test 272 divmod: Fsum[849] (0.0, 0)\n    test 273 residual: 0\n    test 274 is_exact: True\n    test 275 Fsum: 0.048270757278626016\n    test 276 Fsum: 0.048270757278626016\n\n    test 277 fsum: 1.2425017682661341e-09\n    test 278 sum21: -13.999999998757396  FAILED, KNOWN, expected 1.2425017682661341e-09\n    test 279 pow(4): Fsum[12] pow(2.38335e-36, -8.97596e-53)\n    test 280 pow(1): Fsum[842] pow(1.2425e-09, -7.95438e-26)\n    test 281 pow(0): Fsum[1] pow(1.0, 0)\n    test 282 ceil: True\n    test 283 floor: True\n    test 284 divmod: Fsum[847] (0.0, 0)\n    test 285 residual: 0\n    test 286 is_exact: True\n    test 287 Fsum: 1.2425017682661341e-09\n    test 288 Fsum: 1.2425017682661341e-09\n\n    test 289 fsum: -1.8530858503343324e-06\n    test 290 sum22: 13.999998146914375  FAILED, KNOWN, expected -1.8530858503343324e-06\n    test 291 pow(4): Fsum[14] pow(1.17919e-23, 7.1125e-40)\n    test 292 pow(1): Fsum[842] pow(-1.85309e-06, -1.00107e-23)\n    test 293 pow(0): Fsum[1] pow(1.0, 0)\n    test 294 ceil: True\n    test 295 floor: True\n    test 296 divmod: Fsum[847] (0.0, 0)\n    test 297 residual: 0\n    test 298 is_exact: True\n    test 299 Fsum: -1.8530858503343324e-06\n    test 300 Fsum: -1.8530858503343324e-06\n\n    test 301 fsum: -4.916695735069353e-09\n    test 302 sum23: 0.0  FAILED, KNOWN, expected -4.916695735069353e-09\n    test 303 pow(4): Fsum[12] pow(5.84377e-34, -2.28233e-50)\n    test 304 pow(1): Fsum[842] pow(-4.9167e-09, -2.81786e-25)\n    test 305 pow(0): Fsum[1] pow(1.0, 0)\n    test 306 ceil: True\n    test 307 floor: True\n    test 308 divmod: Fsum[849] (0.0, 0)\n    test 309 residual: 0\n    test 310 is_exact: True\n    test 311 Fsum: -4.916695735069353e-09\n    test 312 Fsum: -4.916695735069353e-09\n\n    test 313 fsum: 0.006121711945771237\n    test 314 sum24: 7.006121711946501  FAILED, KNOWN, expected 0.006121711945771237\n    test 315 pow(4): Fsum[22] pow(1.4044e-09, -4.91356e-26)\n    test 316 pow(1): Fsum[842] pow(0.00612171, -4.08653e-19)\n    test 317 pow(0): Fsum[1] pow(1.0, 0)\n    test 318 ceil: True\n    test 319 floor: True\n    test 320 divmod: Fsum[849] (0.0, 0)\n    test 321 residual: 0\n    test 322 is_exact: True\n    test 323 Fsum: 0.006121711945771237\n    test 324 Fsum: 0.006121711945771237\n\n    test 325 fsum: 4.220812132230373e-06\n    test 326 sum25: 0.0  FAILED, KNOWN, expected 4.220812132230373e-06\n    test 327 pow(4): Fsum[17] pow(3.17383e-22, 1.41457e-38)\n    test 328 pow(1): Fsum[842] pow(4.22081e-06, 1.93379e-22)\n    test 329 pow(0): Fsum[1] pow(1.0, 0)\n    test 330 ceil: True\n    test 331 floor: True\n    test 332 divmod: Fsum[850] (0.0, 0)\n    test 333 residual: 0\n    test 334 is_exact: True\n    test 335 Fsum: 4.220812132230373e-06\n    test 336 Fsum: 4.220812132230373e-06\n\n    test 337 fsum: 8.867746101512408e-13\n    test 338 sum26: 0.0  FAILED, KNOWN, expected 8.867746101512408e-13\n    test 339 pow(4): Fsum[8] pow(6.18377e-49, -1.97301e-65)\n    test 340 pow(1): Fsum[842] pow(8.86775e-13, -4.73128e-29)\n    test 341 pow(0): Fsum[1] pow(1.0, 0)\n    test 342 ceil: True\n    test 343 floor: True\n    test 344 divmod: Fsum[845] (0.0, 0)\n    test 345 residual: 0\n    test 346 is_exact: True\n    test 347 Fsum: 8.867746101512408e-13\n    test 348 Fsum: 8.867746101512408e-13\n\n    test 349 fsum: -6.398629890964825e-08\n    test 350 sum27: 0.0  FAILED, KNOWN, expected -6.398629890964825e-08\n    test 351 pow(4): Fsum[11] pow(1.67629e-29, 6.7953e-46)\n    test 352 pow(1): Fsum[842] pow(-6.39863e-08, -6.52054e-24)\n    test 353 pow(0): Fsum[1] pow(1.0, 0)\n    test 354 ceil: True\n    test 355 floor: True\n    test 356 divmod: Fsum[847] (0.0, 0)\n    test 357 residual: 0\n    test 358 is_exact: True\n    test 359 Fsum: -6.398629890964825e-08\n    test 360 Fsum: -6.398629890964825e-08\n\n    test 361 fsum: -0.17897224932807945\n    test 362 sum28: 0.0  FAILED, KNOWN, expected -0.17897224932807945\n    test 363 pow(4): Fsum[31] pow(0.00102599, -8.96384e-20)\n    test 364 pow(1): Fsum[842] pow(-0.178972, 9.98442e-18)\n    test 365 pow(0): Fsum[1] pow(1.0, 0)\n    test 366 ceil: True\n    test 367 floor: True\n    test 368 divmod: Fsum[849] (0.0, 0)\n    test 369 residual: 0\n    test 370 is_exact: True\n    test 371 Fsum: -0.17897224932807945\n    test 372 Fsum: -0.17897224932807945\n\n    test 373 fsum: 5.7855200966644714e-05\n    test 374 sum29: 0.0  FAILED, KNOWN, expected 5.7855200966644714e-05\n    test 375 pow(4): Fsum[23] pow(1.12039e-17, -3.07461e-34)\n    test 376 pow(1): Fsum[842] pow(5.78552e-05, -1.28468e-21)\n    test 377 pow(0): Fsum[1] pow(1.0, 0)\n    test 378 ceil: True\n    test 379 floor: True\n    test 380 divmod: Fsum[848] (0.0, 0)\n    test 381 residual: 0\n    test 382 is_exact: True\n    test 383 Fsum: 5.7855200966644714e-05\n    test 384 Fsum: 5.7855200966644714e-05\n\n    test 385 fsum: -0.1696709590636187\n    test 386 sum30: 0.0  FAILED, KNOWN, expected -0.1696709590636187\n    test 387 pow(4): Fsum[30] pow(0.000828762, 1.4922e-20)\n    test 388 pow(1): Fsum[842] pow(-0.169671, 8.42014e-18)\n    test 389 pow(0): Fsum[1] pow(1.0, 0)\n    test 390 ceil: True\n    test 391 floor: True\n    test 392 divmod: Fsum[851] (0.0, 0)\n    test 393 residual: 0\n    test 394 is_exact: True\n    test 395 Fsum: -0.1696709590636187\n    test 396 Fsum: -0.1696709590636187\n\n    test 397 fsum: -0.012598183978412492\n    test 398 sum31: 0.0  FAILED, KNOWN, expected -0.012598183978412492\n    test 399 pow(4): Fsum[25] pow(2.51902e-08, 1.6108e-25)\n    test 400 pow(1): Fsum[842] pow(-0.0125982, -6.63642e-19)\n    test 401 pow(0): Fsum[1] pow(1.0, 0)\n    test 402 ceil: True\n    test 403 floor: True\n    test 404 divmod: Fsum[849] (0.0, 0)\n    test 405 residual: 0\n    test 406 is_exact: True\n    test 407 Fsum: -0.012598183978412492\n    test 408 Fsum: -0.012598183978412492\n\n    test 409 fsum: 3.093510407095073e-12\n    test 410 sum32: 0.0  FAILED, KNOWN, expected 3.093510407095073e-12\n    test 411 pow(4): Fsum[7] pow(9.15812e-47, -1.12933e-64)\n    test 412 pow(1): Fsum[842] pow(3.09351e-12, -1.4592e-28)\n    test 413 pow(0): Fsum[1] pow(1.0, 0)\n    test 414 ceil: True\n    test 415 floor: True\n    test 416 divmod: Fsum[847] (0.0, 0)\n    test 417 residual: 0\n    test 418 is_exact: True\n    test 419 Fsum: 3.093510407095073e-12\n    test 420 Fsum: 3.093510407095073e-12\n\n    test 421 fsum: 0.0017197856474203425\n    test 422 sum33: -6.99828021435249  FAILED, KNOWN, expected 0.0017197856474203425\n    test 423 pow(4): Fsum[22] pow(8.74777e-12, -4.52575e-28)\n    test 424 pow(1): Fsum[842] pow(0.00171979, 5.34528e-20)\n    test 425 pow(0): Fsum[1] pow(1.0, 0)\n    test 426 ceil: True\n    test 427 floor: True\n    test 428 divmod: Fsum[848] (0.0, 0)\n    test 429 residual: 0\n    test 430 is_exact: True\n    test 431 Fsum: 0.0017197856474203425\n    test 432 Fsum: 0.0017197856474203425\n\n    test 433 fsum: -0.2959541337937912\n    test 434 sum34: 0.0  FAILED, KNOWN, expected -0.2959541337937912\n    test 435 pow(4): Fsum[26] pow(0.00767181, -2.77125e-19)\n    test 436 pow(1): Fsum[842] pow(-0.295954, 6.44717e-18)\n    test 437 pow(0): Fsum[1] pow(1.0, 0)\n    test 438 ceil: True\n    test 439 floor: True\n    test 440 divmod: Fsum[851] (0.0, 0)\n    test 441 residual: 0\n    test 442 is_exact: True\n    test 443 Fsum: -0.2959541337937912\n    test 444 Fsum: -0.2959541337937912\n\n    test 445 fsum: 1.1234860549063546e-09\n    test 446 sum35: 0.0  FAILED, KNOWN, expected 1.1234860549063546e-09\n    test 447 pow(4): Fsum[14] pow(1.5932e-36, 5.49567e-53)\n    test 448 pow(1): Fsum[842] pow(1.12349e-09, 2.18605e-26)\n    test 449 pow(0): Fsum[1] pow(1.0, 0)\n    test 450 ceil: True\n    test 451 floor: True\n    test 452 divmod: Fsum[845] (0.0, 0)\n    test 453 residual: 0\n    test 454 is_exact: True\n    test 455 Fsum: 1.1234860549063546e-09\n    test 456 Fsum: 1.1234860549063546e-09\n\n    test 457 fsum: 3.0216063258744465e-09\n    test 458 sum36: 42.00000000302131  FAILED, KNOWN, expected 3.0216063258744465e-09\n    test 459 pow(4): Fsum[11] pow(8.33588e-35, -2.21935e-51)\n    test 460 pow(1): Fsum[842] pow(3.02161e-09, 1.76e-25)\n    test 461 pow(0): Fsum[1] pow(1.0, 0)\n    test 462 ceil: True\n    test 463 floor: True\n    test 464 divmod: Fsum[848] (0.0, 0)\n    test 465 residual: 0\n    test 466 is_exact: True\n    test 467 Fsum: 3.0216063258744465e-09\n    test 468 Fsum: 3.0216063258744465e-09\n\n    test 469 fsum: -40.38391063402946\n    test 470 sum37: -19.383910634030144  FAILED, KNOWN, expected -40.38391063402946\n    test 471 pow(4): Fsum[24] pow(2.65971e+06, -1.14693e-10)\n    test 472 pow(1): Fsum[842] pow(-40.3839, -1.00384e-15)\n    test 473 pow(0): Fsum[1] pow(1.0, 0)\n    test 474 ceil: True\n    test 475 floor: True\n    test 476 divmod: Fsum[848] (0.0, 0)\n    test 477 residual: 0\n    test 478 is_exact: True\n    test 479 Fsum: -40.38391063402946\n    test 480 Fsum: -40.38391063402946\n\n    test 481 fsum: -8.315323065039467e-09\n    test 482 sum38: -21.00000000831581  FAILED, KNOWN, expected -8.315323065039467e-09\n    test 483 pow(4): Fsum[10] pow(4.78098e-33, -3.13806e-50)\n    test 484 pow(1): Fsum[842] pow(-8.31532e-09, -7.87767e-25)\n    test 485 pow(0): Fsum[1] pow(1.0, 0)\n    test 486 ceil: True\n    test 487 floor: True\n    test 488 divmod: Fsum[848] (0.0, 0)\n    test 489 residual: 0\n    test 490 is_exact: True\n    test 491 Fsum: -8.315323065039467e-09\n    test 492 Fsum: -8.315323065039467e-09\n\n    test 493 fsum: 0.00025425233271824874\n    test 494 sum39: -6.999745747667447  FAILED, KNOWN, expected 0.00025425233271824874\n    test 495 pow(4): Fsum[28] pow(4.17888e-15, 1.21236e-31)\n    test 496 pow(1): Fsum[842] pow(0.000254252, -1.33013e-20)\n    test 497 pow(0): Fsum[1] pow(1.0, 0)\n    test 498 ceil: True\n    test 499 floor: True\n    test 500 divmod: Fsum[848] (0.0, 0)\n    test 501 residual: 0\n    test 502 is_exact: True\n    test 503 Fsum: 0.00025425233271824874\n    test 504 Fsum: 0.00025425233271824874\n\n    test 505 fsum: 0.010596031823027785\n    test 506 sum40: 0.0  FAILED, KNOWN, expected 0.010596031823027785\n    test 507 pow(4): Fsum[25] pow(1.26059e-08, 3.63943e-25)\n    test 508 pow(1): Fsum[842] pow(0.010596, 8.02159e-19)\n    test 509 pow(0): Fsum[1] pow(1.0, 0)\n    test 510 ceil: True\n    test 511 floor: True\n    test 512 divmod: Fsum[847] (0.0, 0)\n    test 513 residual: 0\n    test 514 is_exact: True\n    test 515 Fsum: 0.010596031823027785\n    test 516 Fsum: 0.010596031823027785\n\n    test 517 fsum: 7.833592181697467e-09\n    test 518 sum41: 7.000000007833364  FAILED, KNOWN, expected 7.833592181697467e-09\n    test 519 pow(4): Fsum[12] pow(3.76568e-33, 1.40079e-49)\n    test 520 pow(1): Fsum[842] pow(7.83359e-09, -7.43605e-26)\n    test 521 pow(0): Fsum[1] pow(1.0, 0)\n    test 522 ceil: True\n    test 523 floor: True\n    test 524 divmod: Fsum[846] (0.0, 0)\n    test 525 residual: 0\n    test 526 is_exact: True\n    test 527 Fsum: 7.833592181697467e-09\n    test 528 Fsum: 7.833592181697467e-09\n\n    test 529 fsum: 6.610846222782073e-13\n    test 530 sum42: 14.000000000000867  FAILED, KNOWN, expected 6.610846222782073e-13\n    test 531 pow(4): Fsum[8] pow(1.90998e-49, -1.46724e-65)\n    test 532 pow(1): Fsum[842] pow(6.61085e-13, 4.14257e-29)\n    test 533 pow(0): Fsum[1] pow(1.0, 0)\n    test 534 ceil: True\n    test 535 floor: True\n    test 536 divmod: Fsum[844] (0.0, 0)\n    test 537 residual: 0\n    test 538 is_exact: True\n    test 539 Fsum: 6.610846222782073e-13\n    test 540 Fsum: 6.610846222782073e-13\n\n    test 541 fsum: -0.0061295368005402735\n    test 542 sum43: 0.0  FAILED, KNOWN, expected -0.0061295368005402735\n    test 543 pow(4): Fsum[15] pow(1.4116e-09, 2.25116e-26)\n    test 544 pow(1): Fsum[842] pow(-0.00612954, -3.65373e-19)\n    test 545 pow(0): Fsum[1] pow(1.0, 0)\n    test 546 ceil: True\n    test 547 floor: True\n    test 548 divmod: Fsum[846] (0.0, 0)\n    test 549 residual: 0\n    test 550 is_exact: True\n    test 551 Fsum: -0.0061295368005402735\n    test 552 Fsum: -0.0061295368005402735\n\n    test 553 fsum: 7.515207385115806e-05\n    test 554 sum44: 0.0  FAILED, KNOWN, expected 7.515207385115806e-05\n    test 555 pow(4): Fsum[17] pow(3.1898e-17, -1.42121e-33)\n    test 556 pow(1): Fsum[842] pow(7.51521e-05, -1.86692e-21)\n    test 557 pow(0): Fsum[1] pow(1.0, 0)\n    test 558 ceil: True\n    test 559 floor: True\n    test 560 divmod: Fsum[849] (0.0, 0)\n    test 561 residual: 0\n    test 562 is_exact: True\n    test 563 Fsum: 7.515207385115806e-05\n    test 564 Fsum: 7.515207385115806e-05\n\n    test 565 fsum: -0.003654295215608957\n    test 566 sum45: 6.996345704782144  FAILED, KNOWN, expected -0.003654295215608957\n    test 567 pow(4): Fsum[23] pow(1.78326e-10, -6.45194e-27)\n    test 568 pow(1): Fsum[842] pow(-0.0036543, -1.28938e-19)\n    test 569 pow(0): Fsum[1] pow(1.0, 0)\n    test 570 ceil: True\n    test 571 floor: True\n    test 572 divmod: Fsum[850] (0.0, 0)\n    test 573 residual: 0\n    test 574 is_exact: True\n    test 575 Fsum: -0.003654295215608957\n    test 576 Fsum: -0.003654295215608957\n\n    test 577 fsum: -1.5402369794874465e-07\n    test 578 sum46: -7.000000154023212  FAILED, KNOWN, expected -1.5402369794874465e-07\n    test 579 pow(4): Fsum[11] pow(5.62795e-28, 1.65807e-44)\n    test 580 pow(1): Fsum[842] pow(-1.54024e-07, 8.44467e-24)\n    test 581 pow(0): Fsum[1] pow(1.0, 0)\n    test 582 ceil: True\n    test 583 floor: True\n    test 584 divmod: Fsum[847] (0.0, 0)\n    test 585 residual: 0\n    test 586 is_exact: True\n    test 587 Fsum: -1.5402369794874465e-07\n    test 588 Fsum: -1.5402369794874465e-07\n\n    test 589 fsum: 0.0031351073041314135\n    test 590 sum47: -20.996864892696124  FAILED, KNOWN, expected 0.0031351073041314135\n    test 591 pow(4): Fsum[22] pow(9.66072e-11, 1.76042e-27)\n    test 592 pow(1): Fsum[842] pow(0.00313511, 1.16991e-19)\n    test 593 pow(0): Fsum[1] pow(1.0, 0)\n    test 594 ceil: True\n    test 595 floor: True\n    test 596 divmod: Fsum[849] (0.0, 0)\n    test 597 residual: 0\n    test 598 is_exact: True\n    test 599 Fsum: 0.0031351073041314135\n    test 600 Fsum: 0.0031351073041314135\n\n    test 601 fsum: -1.0195462358526644e-12\n    test 602 sum48: 0.0  FAILED, KNOWN, expected -1.0195462358526644e-12\n    test 603 pow(4): Fsum[9] pow(1.08051e-48, -1.76047e-65)\n    test 604 pow(1): Fsum[842] pow(-1.01955e-12, -3.41487e-29)\n    test 605 pow(0): Fsum[1] pow(1.0, 0)\n    test 606 ceil: True\n    test 607 floor: True\n    test 608 divmod: Fsum[847] (0.0, 0)\n    test 609 residual: 0\n    test 610 is_exact: True\n    test 611 Fsum: -1.0195462358526644e-12\n    test 612 Fsum: -1.0195462358526644e-12\n\n    test 613 fsum: -2.762699041302757\n    test 614 sum49: 0.0  FAILED, KNOWN, expected -2.762699041302757\n    test 615 pow(4): Fsum[37] pow(58.2551, -2.32244e-15)\n    test 616 pow(1): Fsum[842] pow(-2.7627, -2.8164e-17)\n    test 617 pow(0): Fsum[1] pow(1.0, 0)\n    test 618 ceil: True\n    test 619 floor: True\n    test 620 divmod: Fsum[851] (0.0, 0)\n    test 621 residual: 0\n    test 622 is_exact: True\n    test 623 Fsum: -2.762699041302757\n    test 624 Fsum: -2.762699041302757\n\n    test 625 fsum: -0.004373577971488287\n    test 626 sum50: 0.0  FAILED, KNOWN, expected -0.004373577971488287\n    test 627 pow(4): Fsum[22] pow(3.65887e-10, -1.55116e-26)\n    test 628 pow(1): Fsum[842] pow(-0.00437358, -6.81992e-20)\n    test 629 pow(0): Fsum[1] pow(1.0, 0)\n    test 630 ceil: True\n    test 631 floor: True\n    test 632 divmod: Fsum[850] (0.0, 0)\n    test 633 residual: 0\n    test 634 is_exact: True\n    test 635 Fsum: -0.004373577971488287\n    test 636 Fsum: -0.004373577971488287\n\n    test 637 fsum: -1.5970499450308288e-05\n    test 638 sum51: 0.0  FAILED, KNOWN, expected -1.5970499450308288e-05\n    test 639 pow(4): Fsum[21] pow(6.5054e-20, 2.00273e-36)\n    test 640 pow(1): Fsum[842] pow(-1.59705e-05, -4.34169e-22)\n    test 641 pow(0): Fsum[1] pow(1.0, 0)\n    test 642 ceil: True\n    test 643 floor: True\n    test 644 divmod: Fsum[850] (0.0, 0)\n    test 645 residual: 0\n    test 646 is_exact: True\n    test 647 Fsum: -1.5970499450308288e-05\n    test 648 Fsum: -1.5970499450308288e-05\n\n    test 649 fsum: 0.032100297320307135\n    test 650 sum52: 0.0  FAILED, KNOWN, expected 0.032100297320307135\n    test 651 pow(4): Fsum[27] pow(1.06178e-06, 3.51272e-24)\n    test 652 pow(1): Fsum[842] pow(0.0321003, 1.23842e-18)\n    test 653 pow(0): Fsum[1] pow(1.0, 0)\n    test 654 ceil: True\n    test 655 floor: True\n    test 656 divmod: Fsum[849] (0.0, 0)\n    test 657 residual: 0\n    test 658 is_exact: True\n    test 659 Fsum: 0.032100297320307135\n    test 660 Fsum: 0.032100297320307135\n\n    test 661 fsum: -0.0014902560786330264\n    test 662 sum53: 0.0  FAILED, KNOWN, expected -0.0014902560786330264\n    test 663 pow(4): Fsum[20] pow(4.93223e-12, -5.12988e-29)\n    test 664 pow(1): Fsum[842] pow(-0.00149026, 1.02621e-19)\n    test 665 pow(0): Fsum[1] pow(1.0, 0)\n    test 666 ceil: True\n    test 667 floor: True\n    test 668 divmod: Fsum[848] (0.0, 0)\n    test 669 residual: 0\n    test 670 is_exact: True\n    test 671 Fsum: -0.0014902560786330264\n    test 672 Fsum: -0.0014902560786330264\n\n    test 673 fsum: -6.93260830709721e-07\n    test 674 sum54: 0.0  FAILED, KNOWN, expected -6.93260830709721e-07\n    test 675 pow(4): Fsum[14] pow(2.30987e-25, -1.94477e-41)\n    test 676 pow(1): Fsum[842] pow(-6.93261e-07, 1.07769e-23)\n    test 677 pow(0): Fsum[1] pow(1.0, 0)\n    test 678 ceil: True\n    test 679 floor: True\n    test 680 divmod: Fsum[847] (0.0, 0)\n    test 681 residual: 0\n    test 682 is_exact: True\n    test 683 Fsum: -6.93260830709721e-07\n    test 684 Fsum: -6.93260830709721e-07\n\n    test 685 fsum: 2.9080913265077775e-14\n    test 686 sum55: 0.0  FAILED, KNOWN, expected 2.9080913265077775e-14\n    test 687 pow(4): Fsum[8] pow(7.15208e-55, 1.38481e-71)\n    test 688 pow(1): Fsum[842] pow(2.90809e-14, -2.36504e-30)\n    test 689 pow(0): Fsum[1] pow(1.0, 0)\n    test 690 ceil: True\n    test 691 floor: True\n    test 692 divmod: Fsum[848] (0.0, 0)\n    test 693 residual: 0\n    test 694 is_exact: True\n    test 695 Fsum: 2.9080913265077775e-14\n    test 696 Fsum: 2.9080913265077775e-14\n\n    test 697 fsum: -5.3637224787681174e-08\n    test 698 sum56: 13.999999946363232  FAILED, KNOWN, expected -5.3637224787681174e-08\n    test 699 pow(4): Fsum[14] pow(8.27685e-30, 1.57615e-46)\n    test 700 pow(1): Fsum[842] pow(-5.36372e-08, -6.77893e-25)\n    test 701 pow(0): Fsum[1] pow(1.0, 0)\n    test 702 ceil: True\n    test 703 floor: True\n    test 704 divmod: Fsum[849] (0.0, 0)\n    test 705 residual: 0\n    test 706 is_exact: True\n    test 707 Fsum: -5.3637224787681174e-08\n    test 708 Fsum: -5.3637224787681174e-08\n\n    test 709 fsum: -0.4665950454344666\n    test 710 sum57: 6.533404954565597  FAILED, KNOWN, expected -0.4665950454344666\n    test 711 pow(4): Fsum[26] pow(0.0473981, 4.66047e-19)\n    test 712 pow(1): Fsum[842] pow(-0.466595, 2.28423e-17)\n    test 713 pow(0): Fsum[1] pow(1.0, 0)\n    test 714 ceil: True\n    test 715 floor: True\n    test 716 divmod: Fsum[849] (0.0, 0)\n    test 717 residual: 0\n    test 718 is_exact: True\n    test 719 Fsum: -0.4665950454344666\n    test 720 Fsum: -0.4665950454344666\n\n    test 721 fsum: -1.097912213493587\n    test 722 sum58: 33.90208778650687  FAILED, KNOWN, expected -1.097912213493587\n    test 723 pow(4): Fsum[38] pow(1.45302, 1.00912e-16)\n    test 724 pow(1): Fsum[842] pow(-1.09791, 5.96349e-18)\n    test 725 pow(0): Fsum[1] pow(1.0, 0)\n    test 726 ceil: True\n    test 727 floor: True\n    test 728 divmod: Fsum[851] (0.0, 0)\n    test 729 residual: 0\n    test 730 is_exact: True\n    test 731 Fsum: -1.097912213493587\n    test 732 Fsum: -1.097912213493587\n\n    test 733 fsum: 0.0008318527265511295\n    test 734 sum59: 14.000831852726346  FAILED, KNOWN, expected 0.0008318527265511295\n    test 735 pow(4): Fsum[20] pow(4.78835e-13, -2.74362e-29)\n    test 736 pow(1): Fsum[842] pow(0.000831853, 2.70689e-20)\n    test 737 pow(0): Fsum[1] pow(1.0, 0)\n    test 738 ceil: True\n    test 739 floor: True\n    test 740 divmod: Fsum[848] (0.0, 0)\n    test 741 residual: 0\n    test 742 is_exact: True\n    test 743 Fsum: 0.0008318527265511295\n    test 744 Fsum: 0.0008318527265511295\n\n    test 745 fsum: 2.0048130696662265\n    test 746 sum60: -11.995186930327211  FAILED, KNOWN, expected 2.0048130696662265\n    test 747 pow(4): Fsum[29] pow(16.1546, 2.0711e-16)\n    test 748 pow(1): Fsum[842] pow(2.00481, -1.77471e-17)\n    test 749 pow(0): Fsum[1] pow(1.0, 0)\n    test 750 ceil: True\n    test 751 floor: True\n    test 752 divmod: Fsum[849] (0.0, 0)\n    test 753 residual: 0\n    test 754 is_exact: True\n    test 755 Fsum: 2.0048130696662265\n    test 756 Fsum: 2.0048130696662265\n\n    test 757 fsum: -8.91303377980622e-08\n    test 758 sum61: -8.912970184127289e-08  FAILED, KNOWN, expected -8.91303377980622e-08\n    test 759 pow(4): Fsum[11] pow(6.31106e-29, -4.66422e-45)\n    test 760 pow(1): Fsum[842] pow(-8.91303e-08, 4.34956e-24)\n    test 761 pow(0): Fsum[1] pow(1.0, 0)\n    test 762 ceil: True\n    test 763 floor: True\n    test 764 divmod: Fsum[846] (0.0, 0)\n    test 765 residual: 0\n    test 766 is_exact: True\n    test 767 Fsum: -8.91303377980622e-08\n    test 768 Fsum: -8.91303377980622e-08\n\n    test 769 fsum: -1.0430211818701006e-08\n    test 770 sum62: -7.000000010429346  FAILED, KNOWN, expected -1.0430211818701006e-08\n    test 771 pow(4): Fsum[15] pow(1.18351e-32, 5.56889e-49)\n    test 772 pow(1): Fsum[842] pow(-1.04302e-08, 5.94016e-25)\n    test 773 pow(0): Fsum[1] pow(1.0, 0)\n    test 774 ceil: True\n    test 775 floor: True\n    test 776 divmod: Fsum[848] (0.0, 0)\n    test 777 residual: 0\n    test 778 is_exact: True\n    test 779 Fsum: -1.0430211818701006e-08\n    test 780 Fsum: -1.0430211818701006e-08\n\n    test 781 fsum: 1.2492275836146128e-14\n    test 782 sum63: 13.99999999999882  FAILED, KNOWN, expected 1.2492275836146128e-14\n    test 783 pow(4): Fsum[9] pow(2.43538e-56, -3.40779e-73)\n    test 784 pow(1): Fsum[842] pow(1.24923e-14, -4.40539e-31)\n    test 785 pow(0): Fsum[1] pow(1.0, 0)\n    test 786 ceil: True\n    test 787 floor: True\n    test 788 divmod: Fsum[850] (0.0, 0)\n    test 789 residual: 0\n    test 790 is_exact: True\n    test 791 Fsum: 1.2492275836146128e-14\n    test 792 Fsum: 1.2492275836146128e-14\n\n    test 793 fsum: 1.2779036473104664e-08\n    test 794 sum64: 14.00000001277921  FAILED, KNOWN, expected 1.2779036473104664e-08\n    test 795 pow(4): Fsum[15] pow(2.66681e-32, -2.21257e-48)\n    test 796 pow(1): Fsum[842] pow(1.2779e-08, 3.69114e-25)\n    test 797 pow(0): Fsum[1] pow(1.0, 0)\n    test 798 ceil: True\n    test 799 floor: True\n    test 800 divmod: Fsum[848] (0.0, 0)\n    test 801 residual: 0\n    test 802 is_exact: True\n    test 803 Fsum: 1.2779036473104664e-08\n    test 804 Fsum: 1.2779036473104664e-08\n\n    test 805 fsum: 0.04191632620812525\n    test 806 sum65: 0.0  FAILED, KNOWN, expected 0.04191632620812525\n    test 807 pow(4): Fsum[24] pow(3.08697e-06, -1.28339e-22)\n    test 808 pow(1): Fsum[842] pow(0.0419163, -2.09349e-19)\n    test 809 pow(0): Fsum[1] pow(1.0, 0)\n    test 810 ceil: True\n    test 811 floor: True\n    test 812 divmod: Fsum[848] (0.0, 0)\n    test 813 residual: 0\n    test 814 is_exact: True\n    test 815 Fsum: 0.04191632620812525\n    test 816 Fsum: 0.04191632620812525\n\n    test 817 fsum: 3.5267358478583304e-07\n    test 818 sum66: 0.0  FAILED, KNOWN, expected 3.5267358478583304e-07\n    test 819 pow(4): Fsum[14] pow(1.54701e-26, -4.41296e-43)\n    test 820 pow(1): Fsum[842] pow(3.52674e-07, 1.05929e-23)\n    test 821 pow(0): Fsum[1] pow(1.0, 0)\n    test 822 ceil: True\n    test 823 floor: True\n    test 824 divmod: Fsum[845] (0.0, 0)\n    test 825 residual: 0\n    test 826 is_exact: True\n    test 827 Fsum: 3.5267358478583304e-07\n    test 828 Fsum: 3.5267358478583304e-07\n\n    test 829 fsum: -3.252533092497974e-05\n    test 830 sum67: -3.2525331205235375e-05  FAILED, KNOWN, expected -3.252533092497974e-05\n    test 831 pow(4): Fsum[21] pow(1.11915e-18, 6.16139e-35)\n    test 832 pow(1): Fsum[842] pow(-3.25253e-05, -2.32756e-21)\n    test 833 pow(0): Fsum[1] pow(1.0, 0)\n    test 834 ceil: True\n    test 835 floor: True\n    test 836 divmod: Fsum[850] (0.0, 0)\n    test 837 residual: 0\n    test 838 is_exact: True\n    test 839 Fsum: -3.252533092497974e-05\n    test 840 Fsum: -3.252533092497974e-05\n\n    test 841 fsum: 165.34478448565338\n    test 842 sum68: 0.0  FAILED, KNOWN, expected 165.34478448565338\n    test 843 pow(4): Fsum[41] pow(7.47415e+08, 4.93484e-08)\n    test 844 pow(1): Fsum[842] pow(165.345, -6.4152e-15)\n    test 845 pow(0): Fsum[1] pow(1.0, 0)\n    test 846 ceil: True\n    test 847 floor: True\n    test 848 divmod: Fsum[853] (0.0, 0)\n    test 849 residual: 0\n    test 850 is_exact: True\n    test 851 Fsum: 165.34478448565338\n    test 852 Fsum: 165.34478448565338\n\n    test 853 fsum: -0.0001757526565796681\n    test 854 sum69: 0.0  FAILED, KNOWN, expected -0.0001757526565796681\n    test 855 pow(4): Fsum[17] pow(9.5413e-16, 1.40348e-32)\n    test 856 pow(1): Fsum[842] pow(-0.000175753, 5.39102e-21)\n    test 857 pow(0): Fsum[1] pow(1.0, 0)\n    test 858 ceil: True\n    test 859 floor: True\n    test 860 divmod: Fsum[850] (0.0, 0)\n    test 861 residual: 0\n    test 862 is_exact: True\n    test 863 Fsum: -0.0001757526565796681\n    test 864 Fsum: -0.0001757526565796681\n\n    test 865 fsum: -0.05553150797701166\n    test 866 sum70: 0.0  FAILED, KNOWN, expected -0.05553150797701166\n    test 867 pow(4): Fsum[39] pow(9.5095e-06, 4.39972e-22)\n    test 868 pow(1): Fsum[842] pow(-0.0555315, 1.80786e-18)\n    test 869 pow(0): Fsum[1] pow(1.0, 0)\n    test 870 ceil: True\n    test 871 floor: True\n    test 872 divmod: Fsum[852] (0.0, 0)\n    test 873 residual: 0\n    test 874 is_exact: True\n    test 875 Fsum: -0.05553150797701166\n    test 876 Fsum: -0.05553150797701166\n\n    test 877 fsum: 5.886312795661918e-05\n    test 878 sum71: 7.000058863129631  FAILED, KNOWN, expected 5.886312795661918e-05\n    test 879 pow(4): Fsum[18] pow(1.20053e-17, 5.83407e-34)\n    test 880 pow(1): Fsum[842] pow(5.88631e-05, -4.59058e-22)\n    test 881 pow(0): Fsum[1] pow(1.0, 0)\n    test 882 ceil: True\n    test 883 floor: True\n    test 884 divmod: Fsum[849] (0.0, 0)\n    test 885 residual: 0\n    test 886 is_exact: True\n    test 887 Fsum: 5.886312795661918e-05\n    test 888 Fsum: 5.886312795661918e-05\n\n    test 889 fsum: -0.00016888123419475597\n    test 890 sum72: -21.00016888123484  FAILED, KNOWN, expected -0.00016888123419475597\n    test 891 pow(4): Fsum[18] pow(8.1344e-16, -8.39452e-33)\n    test 892 pow(1): Fsum[842] pow(-0.000168881, 7.90085e-21)\n    test 893 pow(0): Fsum[1] pow(1.0, 0)\n    test 894 ceil: True\n    test 895 floor: True\n    test 896 divmod: Fsum[848] (0.0, 0)\n    test 897 residual: 0\n    test 898 is_exact: True\n    test 899 Fsum: -0.00016888123419475597\n    test 900 Fsum: -0.00016888123419475597\n\n    test 901 fsum: -1.4062586274292843e-08\n    test 902 sum73: 27.999999985935858  FAILED, KNOWN, expected -1.4062586274292843e-08\n    test 903 pow(4): Fsum[16] pow(3.91076e-32, -2.47068e-48)\n    test 904 pow(1): Fsum[842] pow(-1.40626e-08, 4.95379e-25)\n    test 905 pow(0): Fsum[1] pow(1.0, 0)\n    test 906 ceil: True\n    test 907 floor: True\n    test 908 divmod: Fsum[848] (0.0, 0)\n    test 909 residual: 0\n    test 910 is_exact: True\n    test 911 Fsum: -1.4062586274292843e-08\n    test 912 Fsum: -1.4062586274292843e-08\n\n    test 913 fsum: -0.01196513456467219\n    test 914 sum74: 27.988034865435623  FAILED, KNOWN, expected -0.01196513456467219\n    test 915 pow(4): Fsum[22] pow(2.04961e-08, 1.49577e-24)\n    test 916 pow(1): Fsum[842] pow(-0.0119651, -4.93275e-20)\n    test 917 pow(0): Fsum[1] pow(1.0, 0)\n    test 918 ceil: True\n    test 919 floor: True\n    test 920 divmod: Fsum[852] (0.0, 0)\n    test 921 residual: 0\n    test 922 is_exact: True\n    test 923 Fsum: -0.01196513456467219\n    test 924 Fsum: -0.01196513456467219\n\n    test 925 fsum: -6.925513760895447e-07\n    test 926 sum75: 0.0  FAILED, KNOWN, expected -6.925513760895447e-07\n    test 927 pow(4): Fsum[14] pow(2.30042e-25, 6.53338e-42)\n    test 928 pow(1): Fsum[842] pow(-6.92551e-07, 1.41639e-23)\n    test 929 pow(0): Fsum[1] pow(1.0, 0)\n    test 930 ceil: True\n    test 931 floor: True\n    test 932 divmod: Fsum[849] (0.0, 0)\n    test 933 residual: 0\n    test 934 is_exact: True\n    test 935 Fsum: -6.925513760895447e-07\n    test 936 Fsum: -6.925513760895447e-07\n\n    test 937 fsum: 9.957524498585636e-06\n    test 938 sum76: 0.0  FAILED, KNOWN, expected 9.957524498585636e-06\n    test 939 pow(4): Fsum[17] pow(9.83118e-21, -1.4554e-37)\n    test 940 pow(1): Fsum[842] pow(9.95752e-06, -4.85105e-22)\n    test 941 pow(0): Fsum[1] pow(1.0, 0)\n    test 942 ceil: True\n    test 943 floor: True\n    test 944 divmod: Fsum[848] (0.0, 0)\n    test 945 residual: 0\n    test 946 is_exact: True\n    test 947 Fsum: 9.957524498585636e-06\n    test 948 Fsum: 9.957524498585636e-06\n\n    test 949 fsum: 0.0014631781981059653\n    test 950 sum77: 0.001463178199713866  FAILED, KNOWN, expected 0.0014631781981059653\n    test 951 pow(4): Fsum[25] pow(4.58341e-12, 1.61625e-28)\n    test 952 pow(1): Fsum[842] pow(0.00146318, -9.64519e-20)\n    test 953 pow(0): Fsum[1] pow(1.0, 0)\n    test 954 ceil: True\n    test 955 floor: True\n    test 956 divmod: Fsum[847] (0.0, 0)\n    test 957 residual: 0\n    test 958 is_exact: True\n    test 959 Fsum: 0.0014631781981059653\n    test 960 Fsum: 0.0014631781981059653\n\n    test 961 fsum: -5.992658029434769e-10\n    test 962 sum78: 0.0  FAILED, KNOWN, expected -5.992658029434769e-10\n    test 963 pow(4): Fsum[14] pow(1.28967e-37, 8.12815e-54)\n    test 964 pow(1): Fsum[842] pow(-5.99266e-10, 1.0121e-26)\n    test 965 pow(0): Fsum[1] pow(1.0, 0)\n    test 966 ceil: True\n    test 967 floor: True\n    test 968 divmod: Fsum[849] (0.0, 0)\n    test 969 residual: 0\n    test 970 is_exact: True\n    test 971 Fsum: -5.992658029434769e-10\n    test 972 Fsum: -5.992658029434769e-10\n\n    test 973 fsum: 0.016908889311496828\n    test 974 sum79: 0.0  FAILED, KNOWN, expected 0.016908889311496828\n    test 975 pow(4): Fsum[32] pow(8.17448e-08, -1.79158e-24)\n    test 976 pow(1): Fsum[842] pow(0.0169089, 4.89016e-19)\n    test 977 pow(0): Fsum[1] pow(1.0, 0)\n    test 978 ceil: True\n    test 979 floor: True\n    test 980 divmod: Fsum[851] (0.0, 0)\n    test 981 residual: 0\n    test 982 is_exact: True\n    test 983 Fsum: 0.016908889311496828\n    test 984 Fsum: 0.016908889311496828\n\n    test 985 fsum: -1.708398806013404\n    test 986 sum80: 5.291601193986246  FAILED, KNOWN, expected -1.708398806013404\n    test 987 pow(4): Fsum[35] pow(8.51838, 7.35711e-16)\n    test 988 pow(1): Fsum[842] pow(-1.7084, -1.71182e-17)\n    test 989 pow(0): Fsum[1] pow(1.0, 0)\n    test 990 ceil: True\n    test 991 floor: True\n    test 992 divmod: Fsum[850] (0.0, 0)\n    test 993 residual: 0\n    test 994 is_exact: True\n    test 995 Fsum: -1.708398806013404\n    test 996 Fsum: -1.708398806013404\n\n    test 997 fsum: 7.930658007200038e-09\n    test 998 sum81: 0.0  FAILED, KNOWN, expected 7.930658007200038e-09\n    test 999 pow(4): Fsum[13] pow(3.95582e-33, -5.78802e-50)\n    test 1000 pow(1): Fsum[842] pow(7.93066e-09, -6.17986e-25)\n    test 1001 pow(0): Fsum[1] pow(1.0, 0)\n    test 1002 ceil: True\n    test 1003 floor: True\n    test 1004 divmod: Fsum[847] (0.0, 0)\n    test 1005 residual: 0\n    test 1006 is_exact: True\n    test 1007 Fsum: 7.930658007200038e-09\n    test 1008 Fsum: 7.930658007200038e-09\n\n    test 1009 fsum: 1.849496426352178e-05\n    test 1010 sum82: 14.000018494961864  FAILED, KNOWN, expected 1.849496426352178e-05\n    test 1011 pow(4): Fsum[20] pow(1.17008e-19, 8.6168e-36)\n    test 1012 pow(1): Fsum[842] pow(1.8495e-05, -3.13643e-22)\n    test 1013 pow(0): Fsum[1] pow(1.0, 0)\n    test 1014 ceil: True\n    test 1015 floor: True\n    test 1016 divmod: Fsum[848] (0.0, 0)\n    test 1017 residual: 0\n    test 1018 is_exact: True\n    test 1019 Fsum: 1.849496426352178e-05\n    test 1020 Fsum: 1.849496426352178e-05\n\n    test 1021 fsum: -1.144351548810233e-09\n    test 1022 sum83: 0.0  FAILED, KNOWN, expected -1.144351548810233e-09\n    test 1023 pow(4): Fsum[13] pow(1.7149e-36, -1.31575e-52)\n    test 1024 pow(1): Fsum[842] pow(-1.14435e-09, 7.57464e-26)\n    test 1025 pow(0): Fsum[1] pow(1.0, 0)\n    test 1026 ceil: True\n    test 1027 floor: True\n    test 1028 divmod: Fsum[847] (0.0, 0)\n    test 1029 residual: 0\n    test 1030 is_exact: True\n    test 1031 Fsum: -1.144351548810233e-09\n    test 1032 Fsum: -1.144351548810233e-09\n\n    test 1033 fsum: 0.0018078863936274512\n    test 1034 sum84: 0.0  FAILED, KNOWN, expected 0.0018078863936274512\n    test 1035 pow(4): Fsum[32] pow(1.06828e-11, -2.05339e-28)\n    test 1036 pow(1): Fsum[842] pow(0.00180789, 2.03635e-20)\n    test 1037 pow(0): Fsum[1] pow(1.0, 0)\n    test 1038 ceil: True\n    test 1039 floor: True\n    test 1040 divmod: Fsum[851] (0.0, 0)\n    test 1041 residual: 0\n    test 1042 is_exact: True\n    test 1043 Fsum: 0.0018078863936274512\n    test 1044 Fsum: 0.0018078863936274512\n\n    test 1045 fsum: -0.004949726479280443\n    test 1046 sum85: 0.0  FAILED, KNOWN, expected -0.004949726479280443\n    test 1047 pow(4): Fsum[25] pow(6.0024e-10, 1.15936e-26)\n    test 1048 pow(1): Fsum[842] pow(-0.00494973, 2.53198e-19)\n    test 1049 pow(0): Fsum[1] pow(1.0, 0)\n    test 1050 ceil: True\n    test 1051 floor: True\n    test 1052 divmod: Fsum[850] (0.0, 0)\n    test 1053 residual: 0\n    test 1054 is_exact: True\n    test 1055 Fsum: -0.004949726479280443\n    test 1056 Fsum: -0.004949726479280443\n\n    test 1057 fsum: 9.862280823221828e-08\n    test 1058 sum86: 14.000000098622898  FAILED, KNOWN, expected 9.862280823221828e-08\n    test 1059 pow(4): Fsum[16] pow(9.4604e-29, -3.33182e-45)\n    test 1060 pow(1): Fsum[842] pow(9.86228e-08, -5.42095e-24)\n    test 1061 pow(0): Fsum[1] pow(1.0, 0)\n    test 1062 ceil: True\n    test 1063 floor: True\n    test 1064 divmod: Fsum[848] (0.0, 0)\n    test 1065 residual: 0\n    test 1066 is_exact: True\n    test 1067 Fsum: 9.862280823221828e-08\n    test 1068 Fsum: 9.862280823221828e-08\n\n    test 1069 fsum: 1.746884968367393e-06\n    test 1070 sum87: -6.999998253115393  FAILED, KNOWN, expected 1.746884968367393e-06\n    test 1071 pow(4): Fsum[19] pow(9.31231e-24, 4.4825e-40)\n    test 1072 pow(1): Fsum[842] pow(1.74688e-06, 6.89839e-23)\n    test 1073 pow(0): Fsum[1] pow(1.0, 0)\n    test 1074 ceil: True\n    test 1075 floor: True\n    test 1076 divmod: Fsum[848] (0.0, 0)\n    test 1077 residual: 0\n    test 1078 is_exact: True\n    test 1079 Fsum: 1.746884968367393e-06\n    test 1080 Fsum: 1.746884968367393e-06\n\n    test 1081 fsum: 1.716932512935431e-05\n    test 1082 sum88: 0.0  FAILED, KNOWN, expected 1.716932512935431e-05\n    test 1083 pow(4): Fsum[19] pow(8.68986e-20, 2.7511e-36)\n    test 1084 pow(1): Fsum[842] pow(1.71693e-05, 1.04923e-21)\n    test 1085 pow(0): Fsum[1] pow(1.0, 0)\n    test 1086 ceil: True\n    test 1087 floor: True\n    test 1088 divmod: Fsum[847] (0.0, 0)\n    test 1089 residual: 0\n    test 1090 is_exact: True\n    test 1091 Fsum: 1.716932512935431e-05\n    test 1092 Fsum: 1.716932512935431e-05\n\n    test 1093 fsum: 1.3746860967291014e-14\n    test 1094 sum89: 0.0  FAILED, KNOWN, expected 1.3746860967291014e-14\n    test 1095 pow(4): Fsum[6] pow(3.5712e-56, -2.2157e-72)\n    test 1096 pow(1): Fsum[842] pow(1.37469e-14, -5.32098e-31)\n    test 1097 pow(0): Fsum[1] pow(1.0, 0)\n    test 1098 ceil: True\n    test 1099 floor: True\n    test 1100 divmod: Fsum[846] (0.0, 0)\n    test 1101 residual: 0\n    test 1102 is_exact: True\n    test 1103 Fsum: 1.3746860967291014e-14\n    test 1104 Fsum: 1.3746860967291014e-14\n\n    test 1105 fsum: 9.398950587440378e-07\n    test 1106 sum90: 0.0  FAILED, KNOWN, expected 9.398950587440378e-07\n    test 1107 pow(4): Fsum[12] pow(7.804e-25, -1.26761e-41)\n    test 1108 pow(1): Fsum[842] pow(9.39895e-07, 4.04483e-23)\n    test 1109 pow(0): Fsum[1] pow(1.0, 0)\n    test 1110 ceil: True\n    test 1111 floor: True\n    test 1112 divmod: Fsum[846] (0.0, 0)\n    test 1113 residual: 0\n    test 1114 is_exact: True\n    test 1115 Fsum: 9.398950587440378e-07\n    test 1116 Fsum: 9.398950587440378e-07\n\n    test 1117 fsum: -3.845334870378444e-12\n    test 1118 sum91: -7.000000000004434  FAILED, KNOWN, expected -3.845334870378444e-12\n    test 1119 pow(4): Fsum[9] pow(2.18644e-46, 1.5833e-62)\n    test 1120 pow(1): Fsum[842] pow(-3.84533e-12, -1.71882e-29)\n    test 1121 pow(0): Fsum[1] pow(1.0, 0)\n    test 1122 ceil: True\n    test 1123 floor: True\n    test 1124 divmod: Fsum[847] (0.0, 0)\n    test 1125 residual: 0\n    test 1126 is_exact: True\n    test 1127 Fsum: -3.845334870378444e-12\n    test 1128 Fsum: -3.845334870378444e-12\n\n    test 1129 fsum: -0.014953425762466112\n    test 1130 sum92: 0.0  FAILED, KNOWN, expected -0.014953425762466112\n    test 1131 pow(4): Fsum[29] pow(4.99992e-08, 1.91214e-24)\n    test 1132 pow(1): Fsum[842] pow(-0.0149534, 2.85809e-19)\n    test 1133 pow(0): Fsum[1] pow(1.0, 0)\n    test 1134 ceil: True\n    test 1135 floor: True\n    test 1136 divmod: Fsum[850] (0.0, 0)\n    test 1137 residual: 0\n    test 1138 is_exact: True\n    test 1139 Fsum: -0.014953425762466112\n    test 1140 Fsum: -0.014953425762466112\n\n    test 1141 fsum: -2.181482332993425e-05\n    test 1142 sum93: 0.0  FAILED, KNOWN, expected -2.181482332993425e-05\n    test 1143 pow(4): Fsum[16] pow(2.26468e-19, 1.30909e-35)\n    test 1144 pow(1): Fsum[842] pow(-2.18148e-05, -4.93833e-22)\n    test 1145 pow(0): Fsum[1] pow(1.0, 0)\n    test 1146 ceil: True\n    test 1147 floor: True\n    test 1148 divmod: Fsum[847] (0.0, 0)\n    test 1149 residual: 0\n    test 1150 is_exact: True\n    test 1151 Fsum: -2.181482332993425e-05\n    test 1152 Fsum: -2.181482332993425e-05\n\n    test 1153 fsum: 0.1796640595568802\n    test 1154 sum94: 0.0  FAILED, KNOWN, expected 0.1796640595568802\n    test 1155 pow(4): Fsum[24] pow(0.00104195, -4.88791e-20)\n    test 1156 pow(1): Fsum[842] pow(0.179664, 9.89054e-18)\n    test 1157 pow(0): Fsum[1] pow(1.0, 0)\n    test 1158 ceil: True\n    test 1159 floor: True\n    test 1160 divmod: Fsum[849] (0.0, 0)\n    test 1161 residual: 0\n    test 1162 is_exact: True\n    test 1163 Fsum: 0.1796640595568802\n    test 1164 Fsum: 0.1796640595568802\n\n    test 1165 fsum: -0.26056206166280493\n    test 1166 sum95: 0.0  FAILED, KNOWN, expected -0.26056206166280493\n    test 1167 pow(4): Fsum[27] pow(0.0046094, 3.05581e-19)\n    test 1168 pow(1): Fsum[842] pow(-0.260562, -2.11672e-17)\n    test 1169 pow(0): Fsum[1] pow(1.0, 0)\n    test 1170 ceil: True\n    test 1171 floor: True\n    test 1172 divmod: Fsum[850] (0.0, 0)\n    test 1173 residual: 0\n    test 1174 is_exact: True\n    test 1175 Fsum: -0.26056206166280493\n    test 1176 Fsum: -0.26056206166280493\n\n    test 1177 fsum: -1.3288325397540682e-10\n    test 1178 sum96: 20.999999999866247  FAILED, KNOWN, expected -1.3288325397540682e-10\n    test 1179 pow(4): Fsum[12] pow(3.11804e-40, 6.88257e-57)\n    test 1180 pow(1): Fsum[842] pow(-1.32883e-10, 1.33468e-27)\n    test 1181 pow(0): Fsum[1] pow(1.0, 0)\n    test 1182 ceil: True\n    test 1183 floor: True\n    test 1184 divmod: Fsum[847] (0.0, 0)\n    test 1185 residual: 0\n    test 1186 is_exact: True\n    test 1187 Fsum: -1.3288325397540682e-10\n    test 1188 Fsum: -1.3288325397540682e-10\n\n    test 1189 fsum: -2.1153789389272494e-05\n    test 1190 sum97: 0.0  FAILED, KNOWN, expected -2.1153789389272494e-05\n    test 1191 pow(4): Fsum[16] pow(2.00241e-19, -1.12698e-36)\n    test 1192 pow(1): Fsum[842] pow(-2.11538e-05, 6.85903e-22)\n    test 1193 pow(0): Fsum[1] pow(1.0, 0)\n    test 1194 ceil: True\n    test 1195 floor: True\n    test 1196 divmod: Fsum[847] (0.0, 0)\n    test 1197 residual: 0\n    test 1198 is_exact: True\n    test 1199 Fsum: -2.1153789389272494e-05\n    test 1200 Fsum: -2.1153789389272494e-05\n\n    test 1201 fsum: -7.135903088885889e-05\n    test 1202 sum98: 34.999928640968136  FAILED, KNOWN, expected -7.135903088885889e-05\n    test 1203 pow(4): Fsum[21] pow(2.59296e-17, -1.13303e-33)\n    test 1204 pow(1): Fsum[842] pow(-7.1359e-05, -5.24526e-21)\n    test 1205 pow(0): Fsum[1] pow(1.0, 0)\n    test 1206 ceil: True\n    test 1207 floor: True\n    test 1208 divmod: Fsum[850] (0.0, 0)\n    test 1209 residual: 0\n    test 1210 is_exact: True\n    test 1211 Fsum: -7.135903088885889e-05\n    test 1212 Fsum: -7.135903088885889e-05\n\n    test 1213 fsum: -0.00039188050506964707\n    test 1214 sum99: 0.0  FAILED, KNOWN, expected -0.00039188050506964707\n    test 1215 pow(4): Fsum[29] pow(2.35838e-14, -1.06578e-30)\n    test 1216 pow(1): Fsum[842] pow(-0.000391881, -1.76219e-20)\n    test 1217 pow(0): Fsum[1] pow(1.0, 0)\n    test 1218 ceil: True\n    test 1219 floor: True\n    test 1220 divmod: Fsum[850] (0.0, 0)\n    test 1221 residual: 0\n    test 1222 is_exact: True\n    test 1223 Fsum: -0.00039188050506964707\n    test 1224 Fsum: -0.00039188050506964707\n\n    test 1225 fsum: -2.659736477135389e-11\n    test 1226 sum100: 0.0  FAILED, KNOWN, expected -2.659736477135389e-11\n    test 1227 pow(4): Fsum[8] pow(5.00443e-43, 9.18713e-60)\n    test 1228 pow(1): Fsum[842] pow(-2.65974e-11, -4.86868e-28)\n    test 1229 pow(0): Fsum[1] pow(1.0, 0)\n    test 1230 ceil: True\n    test 1231 floor: True\n    test 1232 divmod: Fsum[846] (0.0, 0)\n    test 1233 residual: 0\n    test 1234 is_exact: True\n    test 1235 Fsum: -2.659736477135389e-11\n    test 1236 Fsum: -2.659736477135389e-11\n    test 1237 fmul: 0.00000000\n\n    test 1238 len1: 4\n    test 1239 FSum+: 4.0\n    test 1240 FSum-: 2.0\n    test 1241 FSum-: 0.0\n    test 1242 FSum*: 4.0\n    test 1243 copy(<class 'type'>): (<class 'pygeodesy.fsums.Fsum'>, True)\n    test 1244 ._fint2: (4, 0)\n    test 1245 ._fprs: 4.0\n    test 1246 ._fprs2: (4.0, 0)\n    test 1247 ._n: 5\n    test 1248 ._ps: [4.0]\n    test 1249 Fsum.copy(): (<class 'pygeodesy.fsums.Fsum'>, True)\n    test 1250 ._fint2: (4, 0)\n    test 1251 ._fprs: 4.0\n    test 1252 ._fprs2: (4.0, 0)\n    test 1253 ._n: 5\n    test 1254 ._ps: [4.0]\n    test 1255 len2: 8\n    test 1256 FSum+: 8.0\n    test 1257 FSum-: 4.0\n    test 1258 FSum-: 0.0\n    test 1259 FSum*: 8.0\n    test 1260 copy(<class 'type'>): (<class 'pygeodesy.fsums.Fsum'>, True)\n    test 1261 ._fint2: (8, 0)\n    test 1262 ._fprs: 8.0\n    test 1263 ._fprs2: (8.0, 0)\n    test 1264 ._n: 9\n    test 1265 ._ps: [8.0]\n    test 1266 Fsum.copy(): (<class 'pygeodesy.fsums.Fsum'>, True)\n    test 1267 ._fint2: (8, 0)\n    test 1268 ._fprs: 8.0\n    test 1269 ._fprs2: (8.0, 0)\n    test 1270 ._n: 9\n    test 1271 ._ps: [8.0]\n    test 1272 len3: 16\n    test 1273 FSum+: 16.0\n    test 1274 FSum-: 8.0\n    test 1275 FSum-: 0.0\n    test 1276 FSum*: 16.0\n    test 1277 copy(<class 'type'>): (<class 'pygeodesy.fsums.Fsum'>, True)\n    test 1278 ._fint2: (16, 0)\n    test 1279 ._fprs: 16.0\n    test 1280 ._fprs2: (16.0, 0)\n    test 1281 ._n: 17\n    test 1282 ._ps: [16.0]\n    test 1283 Fsum.copy(): (<class 'pygeodesy.fsums.Fsum'>, True)\n    test 1284 ._fint2: (16, 0)\n    test 1285 ._fprs: 16.0\n    test 1286 ._fprs2: (16.0, 0)\n    test 1287 ._n: 17\n    test 1288 ._ps: [16.0]\n    test 1289 len4: 32\n    test 1290 FSum+: 32.0\n    test 1291 FSum-: 16.0\n    test 1292 FSum-: 0.0\n    test 1293 FSum*: 32.0\n    test 1294 copy(<class 'type'>): (<class 'pygeodesy.fsums.Fsum'>, True)\n    test 1295 ._fint2: (32, 0)\n    test 1296 ._fprs: 32.0\n    test 1297 ._fprs2: (32.0, 0)\n    test 1298 ._n: 33\n    test 1299 ._ps: [32.0]\n    test 1300 Fsum.copy(): (<class 'pygeodesy.fsums.Fsum'>, True)\n    test 1301 ._fint2: (32, 0)\n    test 1302 ._fprs: 32.0\n    test 1303 ._fprs2: (32.0, 0)\n    test 1304 ._n: 33\n    test 1305 ._ps: [32.0]\n    test 1306 len5: 64\n    test 1307 FSum+: 64.0\n    test 1308 FSum-: 32.0\n    test 1309 FSum-: 0.0\n    test 1310 FSum*: 64.0\n    test 1311 copy(<class 'type'>): (<class 'pygeodesy.fsums.Fsum'>, True)\n    test 1312 ._fint2: (64, 0)\n    test 1313 ._fprs: 64.0\n    test 1314 ._fprs2: (64.0, 0)\n    test 1315 ._n: 65\n    test 1316 ._ps: [64.0]\n    test 1317 Fsum.copy(): (<class 'pygeodesy.fsums.Fsum'>, True)\n    test 1318 ._fint2: (64, 0)\n    test 1319 ._fprs: 64.0\n    test 1320 ._fprs2: (64.0, 0)\n    test 1321 ._n: 65\n    test 1322 ._ps: [64.0]\n    test 1323 len6: 128\n    test 1324 FSum+: 128.0\n    test 1325 FSum-: 64.0\n    test 1326 FSum-: 0.0\n    test 1327 FSum*: 128.0\n    test 1328 copy(<class 'type'>): (<class 'pygeodesy.fsums.Fsum'>, True)\n    test 1329 ._fint2: (128, 0)\n    test 1330 ._fprs: 128.0\n    test 1331 ._fprs2: (128.0, 0)\n    test 1332 ._n: 129\n    test 1333 ._ps: [128.0]\n    test 1334 Fsum.copy(): (<class 'pygeodesy.fsums.Fsum'>, True)\n    test 1335 ._fint2: (128, 0)\n    test 1336 ._fprs: 128.0\n    test 1337 ._fprs2: (128.0, 0)\n    test 1338 ._n: 129\n    test 1339 ._ps: [128.0]\n    test 1340 len7: 256\n    test 1341 FSum+: 256.0\n    test 1342 FSum-: 128.0\n    test 1343 FSum-: 0.0\n    test 1344 FSum*: 256.0\n    test 1345 copy(<class 'type'>): (<class 'pygeodesy.fsums.Fsum'>, True)\n    test 1346 ._fint2: (256, 0)\n    test 1347 ._fprs: 256.0\n    test 1348 ._fprs2: (256.0, 0)\n    test 1349 ._n: 257\n    test 1350 ._ps: [256.0]\n    test 1351 Fsum.copy(): (<class 'pygeodesy.fsums.Fsum'>, True)\n    test 1352 ._fint2: (256, 0)\n    test 1353 ._fprs: 256.0\n    test 1354 ._fprs2: (256.0, 0)\n    test 1355 ._n: 257\n    test 1356 ._ps: [256.0]\n    test 1357 len8: 512\n    test 1358 FSum+: 512.0\n    test 1359 FSum-: 256.0\n    test 1360 FSum-: 0.0\n    test 1361 FSum*: 512.0\n    test 1362 copy(<class 'type'>): (<class 'pygeodesy.fsums.Fsum'>, True)\n    test 1363 ._fint2: (512, 0)\n    test 1364 ._fprs: 512.0\n    test 1365 ._fprs2: (512.0, 0)\n    test 1366 ._n: 513\n    test 1367 ._ps: [512.0]\n    test 1368 Fsum.copy(): (<class 'pygeodesy.fsums.Fsum'>, True)\n    test 1369 ._fint2: (512, 0)\n    test 1370 ._fprs: 512.0\n    test 1371 ._fprs2: (512.0, 0)\n    test 1372 ._n: 513\n    test 1373 ._ps: [512.0]\n    test 1374 len: 513\n    test 1375 partials: (512.0,)\n\n    test 1376 FSum0: 0.0\n    test 1377 FSum0: 0.0\n    test 1378 FSum0: 0.0\n    test 1379 FSum0: 0.0\n    test 1380 FSum0: 0.0\n    test 1381 sizeof: 413\n    test 1382 FSum0: 0.0\n    test 1383 Fsum#: 514\n    test 1384 Fsum#: 1\n    test 1385 FSum.: Fsum[514] (0.0, 0)\n    test 1386 FsumI: 0.0\n    test 1387 FsumR: 0.0\n    test 1388 radd: 514.0\n    test 1389 rdiv: 3.91e-03\n    test 1390 rmul: 1024.0\n    test 1391 rpow: 1.0\n    test 1392 rsub: -510.0\n    test 1393 _2sum: OverflowError('_2sum(1.0e+308, inf): not finite (inf)')\n    test 1394 F(\"nan\"): TypeError('0.0 + nan: invalid')\n    test 1395 F(None): TypeError('0.0 + None: invalid')\n\n    test 1396 ints: 1\n    test 1397 ints: 1\n    test 1398 fsum : -3.58905099e+19  FAILED, KNOWN, expected 1.0\n    test 1399 fsum_: -3.58905099e+19  FAILED, KNOWN, expected 1.0\n    test 1400 Fsum : -3.58905099e+19  FAILED, KNOWN, expected 1.0\n    test 1401 sum  : -3.58905099e+19  FAILED, KNOWN, expected 1.0\n    test 1402 F * 2: 4.0000\n    test 1403 F / 2: 2.0000\n    test 1404 F / F: True\n    test 1405 F / F: 1.0\n    test 1406 F / F: 2.0\n    test 1407 abs  : Fsum[4] __abs__(2.0, 0)  FAILED, KNOWN, expected Fsum[4] (2.0, 0)\n    test 1408 int  : 2\n    test 1409 eq F: True\n    test 1410 ge F: True\n    test 1411 gt F: False\n    test 1412 le F: True\n    test 1413 lt F: False\n    test 1414 ne F: False\n    test 1415 if F: True\n    test 1416 gt 0: True\n    test 1417 lt 0: False\n    test 1418 eq 0: False\n    test 1419 lt 0: True\n    test 1420 gt 0: True\n    test 1421 gt 0: False\n    test 1422 signOf: 1\n    test 1423 signOf: -1\n    test 1424 ceil : 3\n    test 1425 floor: 2\n\n    test 1426 divmod : (2, <Fsum[2] __divmod__(0.0, 0) at 0x10bb9a5f0>)\n    test 1427 divmod : (2, <Fsum[2] __divmod__(0.0, 0) at 0x10bb9a6d0>)\n    test 1428 rdivmod : (0, <Fsum[1] __rdivmod__(2, 0) at 0x10bb9a5f0>)\n    test 1429 divmod : (-2, <Fsum[2] __divmod__(1.0, 0) at 0x10bb9a740>)\n    test 1430 imod: Fsum[2] __imod__(0.0, 0)\n    test 1431 mod : Fsum[2] __mod__(0.0, 0)\n    test 1432 rmod: Fsum[1] __rmod__(2, 0)\n    test 1433 neg : Fsum[1] __neg__(-2, 0)\n    test 1434 pos : Fsum[4] (2.0, 0)\n    test 1435 is_int: True\n    test 1436 float: 9e-102\n    test 1437 is_int: False\n    test 1438 round1: 0.0\n    test 1439 fset_: Fsum[4] (9.0e-102, 5.9483e-118)\n\n    test 1440 F //: Fsum[1] __floordiv__(-1, 0)\n    test 1441 // F: Fsum[1] __rfloordiv__(-2, 0)\n    test 1442 F //=: Fsum[1] m(-2, 0)\n    test 1443 F / 0: ZeroDivisionError('Fsum[2] __truediv__(9.0e-102, 5.9483e-118) / 0: float division by zero')\n    test 1444 pow(F, +): Fsum[1] __pow__(6.36662e-213, 0)\n    test 1445 pow(F, -): Fsum[1] __pow__(1.11111e+101, 0)\n    test 1446 pow(-F, F): ValueError('-2 ** 9e-102: complex (1+2.8274333882308138e-101j) from 2-arg pow(-2, 9.0e-102)')\n    test 1447 pow(F, F): Fsum[1] __pow__(1.0, 0)\n    test 1448 pow(F, f, i): TypeError('Fsum[2] __pow__(9.0e-102, 5.9483e-118) ** 2.1: mod (2), pow() 3rd argument not allowed unless all arguments are integers')\n    test 1449 pow(F, F, i): TypeError('-2 ** Fsum[1] (2.1, 0): mod (2), pow() 3rd argument not allowed unless all arguments are integers')\n    test 1450 pow(F, i, None): Fsum[1] __pow__(4, 0)\n    test 1451 Z**-2: ZeroDivisionError('0.0 ** -2: 0.0 cannot be raised to a negative power')\n    test 1452 pow(0): 1.000\n    test 1453 pow(1): -3.000\n    test 1454 pow(2): 9.000\n    test 1455 pow(21): -10460353203.000\n    test 1456 pow(-5): -0.004\n    test 1457 **= 2: 9.000\n    test 1458 F0**0: Fsum[1] __pow__(1, 0)\n    test 1459 F0**0.: Fsum[1] __pow__(1.0, 0)\n    test 1460 0**F0: Fsum[1] __rpow__(1.0, 0)\n    test 1461 0.**F0: Fsum[1] __rpow__(1.0, 0)\n    test 1462 F0**0: Fsum[1] pow(1, 0)\n    test 1463 F0**2: Fsum[1] pow(0.0, 0)\n    test 1464 F0**0.: Fsum[1] pow(1.0, 0)\n    test 1465 F0**3.: Fsum[1] pow(0.0, 0)\n    test 1466 F0**0.: Fsum[1] pow(1, 0)\n    test 1467 2**F0: Fsum[1] __rpow__(1.0, 0)\n    test 1468 2.**F0: Fsum[1] __rpow__(1.0, 0)\n    test 1469 F2**0: Fsum[1] __pow__(1, 0)\n    test 1470 F2.**0: Fsum[1] __pow__(1, 0)\n    test 1471 F2**F2: Fsum[1] __pow__(4, 0)\n    test 1472 F2**F2: Fsum[1] __rpow__(4, 0)\n    test 1473 F**2: 3125.000\n    test 1474 F**-1: 0.200\n    test 1475 F**-2: 0.040\n    test 1476 F**-2.5: 0.018\n    test 1477 F** 2.5: 55.902\n    test 1478 pow(2): 25.000\n    test 1479 pow(2.5): 55.902\n    test 1480 pow(F): 3125.000\n    test 1481 3pow(2, None): Fsum[1] pow(25, 0)\n    test 1482 3pow(2.5, None): Fsum[1] pow(55.902, 0)\n    test 1483 3pow(2, 20): Fsum[1] pow(5, 0)\n\n    test 1484 fsum(): 5.0\n    test 1485 fsum(): True\n    test 1486 fsum2(): (5.0, 0)\n    test 1487 fsum2(): True\n    test 1488 fsum2(): Fsum2Tuple(fsum=5.0, residual=0)\n    test 1489 Fsum2Tuple: ('fsum', 5.0, <class 'pygeodesy.unitsBase.Float'>)\n    test 1490 Fsum2Tuple: ('residual', 0, <class 'pygeodesy.unitsBase.Int'>)\n    test 1491 fmul(x): 25.0\n    test 1492 fmul(F): 62.5\n    test 1493 fadd(F): 65.0\n    test 1494 fsub(F): 62.5\n    test 1495 Fsum(F): 125.0\n\n    test 1496 ratio: (-27021597764141911, 9007199254740992)\n    test 1497 ratio: Fsum[1] (-3, 0)  FAILED, KNOWN, expected Fsum[4] (-3, 8.80732e-17)\n    test 1498 int_float: -3.000\n    test 1499 fint: Fsum[1] fint(-2, 0)\n    test 1500 fint2: (-2, -1)\n    test 1501 f2mul_: Fsum[6] f2mul_(12.0, -3.52293e-16)  FAILED, KNOWN, expected (12.0, ...\n    test 1502 f2mul_: Fsum[1] f2mul_(-inf, 0)  FAILED, KNOWN, expected NINF\n    test 1503 f2mul_: Fsum[1] f2mul_(nan, 0)  FAILED, KNOWN, expected NAN\n    test 1504 += NAN: Fsum[5] (nan, 0.0)  FAILED, KNOWN, expected nan\n    test 1505 -= NAN: Fsum[5] (nan, 0.0)  FAILED, KNOWN, expected nan\n    test 1506 pow3: Fsum[1] __pow__(3, 0)\n\n    test 1507 is_math_fsum: True\n\n    test 1508 RESIDUAL: 0.0\n    test 1509 RESIDUAL: 0.0\n    test 1510 RESIDUAL: 1e-32\n    test 1511 RESIDUAL: 9.0\n    test 1512 RESIDUAL: sorted\n\n    test 1513 ResidualError: 1 / Fsum[2] sorted(1.0e+17, 1.0): non-zero residual (1.0), ratio (1.0e-17) exceeds RESIDUAL (-1e-18) threshold\n\n    test 1514 recursive: 8.0\n    test 1515 recursive: 16.0\n\n    test 1516 +=F2T: 17.0\n    test 1517 -=F2T: 16.0\n    test 1518 *=F2T: 16.000000000000004\n    test 1519 /=F2T: 16.0\n    test 1520 **F2T: 16.0\n    test 1521 %=F2T: 16.0\n\n    test 1522 abs(T): Fsum[2] __abs__(1.0, 0)\n    test 1523 bool(T): True\n    test 1524 float(T): 1.0000000000000002\n    test 1525 T.Fsum_: Fsum[2] (2.0, 0)\n    test 1526 int(T): 1\n    test 1527 -T: Fsum[1] __neg__(-1, 0)\n    test 1528 +T: Fsum[2] (1.0, 0)\n    test 1529 as_i_: (4503599627370497, 4503599627370496)\n    test 1530 is_x?: True\n    test 1531 is_i?: False\n\n    test 1532 F==T: False\n    test 1533 F>=T: True\n    test 1534 F> T: True\n    test 1535 F<=T: False\n    test 1536 F< T: False\n    test 1537 F!=T: True\n\n    test 1538 T._fint2: (1, 2.220446049250313e-16)\n    test 1539 T._fprs2: (1.0, 0)\n    test 1540 T._n: 2\n    test 1541 T._ps: [1.0000000000000002]\n    test 1542 T._ps_neg: [-1.0000000000000002]\n    test 1543 T.signOf: 1\n\n    test 1544 f2product: (True, None)\n    test 1545 nonfinite*: (True, None)\n    test 1546 Nones: (None, None)\n\n    test 1547 fma_: Fsum[1] (69.0, 0)\n\n    121 of 1547 testFsums.py tests (7.8%) FAILED, ALL KNOWN (pygeodesy 26.3.26 Python 3.13.12 64bit arm64 coverage 7.10.7 geographiclib 2.1 numpy 2.3.3 scipy 1.16.2 Math 2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 macOS 26.3.1 isLazy 1 -W  default) 1.566 sec\nrunning /Library/Framewo....n3.13 -W default ~/PyGeodesy/test/testGars.py\n\n    testing testGars.py 23.03.27 (module pygeodesy.gars 25.05.07) isLazy=1\n    test 1 Garef: 381NH45\n    test 2 Garef: 381NH45\n    test 3 Garef: Garef('381NH45')\n    test 4 Garef: '381NH45'\n    test 5 Garef: '381NH45'  FAILED, KNOWN, expected Garef('381NH45')\n    test 6 Garef.precision: 2\n    test 7 copy(<class 'type'>): (<class 'pygeodesy.gars.Garef'>, True)\n    test 8 Garef.copy(): (<class 'pygeodesy.gars.Garef'>, True)\n    test 9 Garef.latlon: 57.64911, 10.40744\n    test 10 Garef.toLatLon: LatLon(57°38′56.8″N, 010°24′26.78″E)\n    test 11 codec3: 381NH45\n    test 12 decode3: 57.625, 10.375, 2.0\n    test 13 encode: 381NH45\n    test 14 Garef(LatLon): 381NH45\n    test 15 copy(<class 'type'>): (<class 'pygeodesy.gars.Garef'>, True)\n    test 16 Garef.copy(): (<class 'pygeodesy.gars.Garef'>, True)\n    test 17 precision: -1  FAILED, KNOWN, expected 0\n    test 18 resolution: 30′\n    test 19 precision: 0\n    test 20 resolution: 30′\n    test 21 precision: 1\n    test 22 resolution: 15′\n    test 23 precision: 2\n    test 24 resolution: 5′\n    test 25 precision: 3  FAILED, KNOWN, expected 2\n    test 26 resolution: 5′\n\n    3 of 26 testGars.py tests (11.5%) FAILED, ALL KNOWN (pygeodesy 26.3.26 Python 3.13.12 64bit arm64 coverage 7.10.7 geographiclib 2.1 numpy 2.3.3 scipy 1.16.2 Math 2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 macOS 26.3.1 isLazy 1 -W  default) 854.015 us\nrunning /Library/Framewo....n3.13 -W default ~/PyGeodesy/test/testGeodesici.py\n\n    testing testGeodesici.py 25.05.09 (module pygeodesy.geodesici 26.02.04) isLazy=1\n\n    testGeodesicSolve(pygeodesy.geodesici, 26.02.04)\n    test 1 Intersector: name='', geodesic=GeodesicSolve(ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), GeodSolve='/opt/local/bin/GeodSolve', invokation=15, status=0)\n\n    test 2 Closest.1.sA: 4.2253e+06\n    test 3 Closest.1.sB: 2.70933e+06\n    test 4 Closest.1.c: 0\n    test 5 Closest.1.sX0: 6.93463e+06\n\n    test 6 Closest5.1.A: {a1X: 38.075573, azi1: 45.0, aziX: 51.790249, lat1: 0.0, latX: 25.92918, lon1: 0.0, lonX: 28.89426, s1X: 4225301.108897}\n    test 7 Closest5.1.B: {a1X: 24.392077, azi1: 135.0, aziX: 146.182975, lat1: 45.0, latX: 25.92918, lon1: 10.0, lonX: 28.89426, s1X: 2709328.885611}\n    test 8 Closest5.1.sAB: 0\n    test 9 Closest5.1.aAB: 0\n    test 10 Closest5.1.c: 0\n\n    test 11 Closest.2.sA: 6.05805e+06\n    test 12 Closest.2.sB: -3.31125e+06\n    test 13 Closest.2.c: 0\n    test 14 Closest.2.sX0: 9.3693e+06\n\n    test 15 Closest5.2.A: {a1X: 54.562637, azi1: -147.7, aziX: -159.869978, lat1: 50.0, latX: -0.0, lon1: -4.0, lonX: -29.745492, s1X: 6058048.653081}\n    test 16 Closest5.2.B: {a1X: -29.845558, azi1: 90.0, aziX: 90.0, lat1: 0.0, latX: -0.0, lon1: 0.0, lonX: -29.745492, s1X: -3311252.995823}\n    test 17 Closest5.2.sAB: 1.2e-09\n    test 18 Closest5.2.aAB: 1.1e-14\n    test 19 Closest5.2.c: 0\n\n    test 20 All[0].sA: -494582\n    test 21 All[0].sB: 1.40522e+07\n    test 22 All[0].c: 0\n    test 23 All[0].sX0: 1.45468e+07\n    test 24 All[0].iteration: 4\n\n    test 25 All[1].sA: 1.95291e+07\n    test 26 All[1].sB: -5.93234e+06\n    test 27 All[1].c: 0\n    test 28 All[1].sX0: 2.54615e+07\n    test 29 All[1].iteration: 4\n\n    test 30 All[2].sA: -494582\n    test 31 All[2].sB: -2.59556e+07\n    test 32 All[2].c: 0\n    test 33 All[2].sX0: 2.64502e+07\n    test 34 All[2].iteration: 4\n\n    test 35 All[3].sA: -2.05181e+07\n    test 36 All[3].sB: -5.97086e+06\n    test 37 All[3].c: 0\n    test 38 All[3].sX0: 2.64889e+07\n    test 39 All[3].iteration: 4\n\n    test 40 All5[0].A: {a1X: -4.448619, azi1: -147.7, aziX: -144.55245, lat1: 50.0, latX: 53.692598, lon1: -4.0, lonX: -0.0, s1X: -494582.492241}\n    test 41 All5[0].B: {a1X: 126.399265, azi1: 0.0, aziX: 180.0, lat1: 0.0, latX: 53.692598, lon1: 180.0, lonX: 0.0, s1X: 14052229.965229}\n    test 42 All5[0].sAB: 2.6e-09\n    test 43 All5[0].aAB: 3.7e-14\n    test 44 All5[0].c: 0\n    test 45 All5[0].iteration: 4\n\n    test 46 All5[1].A: {a1X: 175.764866, azi1: -147.7, aziX: -35.280487, lat1: 50.0, latX: -53.518675, lon1: -4.0, lonX: 180.0, s1X: 19529110.042937}\n    test 47 All5[1].B: {a1X: -53.426639, azi1: 0.0, aziX: 0.0, lat1: 0.0, latX: -53.518675, lon1: 180.0, lonX: 180.0, s1X: -5932344.259165}\n    test 48 All5[1].sAB: 3e-09\n    test 49 All5[1].aAB: 2.7e-14\n    test 50 All5[1].c: 0\n    test 51 All5[1].iteration: 4\n\n    test 52 All5[2].A: {a1X: -4.448619, azi1: -147.7, aziX: -144.55245, lat1: 50.0, latX: 53.692598, lon1: -4.0, lonX: 0.0, s1X: -494582.492241}\n    test 53 All5[2].B: {a1X: -233.600735, azi1: 0.0, aziX: 180.0, lat1: 0.0, latX: 53.692598, lon1: 180.0, lonX: 0.0, s1X: -25955632.952022}\n    test 54 All5[2].sAB: 1.6e-09\n    test 55 All5[2].aAB: 1.5e-14\n    test 56 All5[2].c: 0\n    test 57 All5[2].iteration: 4\n\n    test 58 All5[3].A: {a1X: -184.660358, azi1: -147.7, aziX: -35.614985, lat1: 50.0, latX: -53.864737, lon1: -4.0, lonX: -180.0, s1X: -20518081.166643}\n    test 59 All5[3].B: {a1X: -53.773048, azi1: 0.0, aziX: 0.0, lat1: 0.0, latX: -53.864737, lon1: 180.0, lonX: 180.0, s1X: -5970860.779079}\n    test 60 All5[3].sAB: 3.7e-09\n    test 61 All5[3].aAB: 4e-14\n    test 62 All5[3].c: 0\n    test 63 All5[3].iteration: 4\n\n    test 64 Middle.sA: 782555\n    test 65 Middle.sB: 5.54085e+06\n    test 66 Middle.c: 0\n    test 67 Middle.sX0: 0\n\n    test 68 Middle5.A: {a12: 14.106434, a1M: 7.053396, azi1: 44.75191, azi2: 45.629037, aziM: 44.969535, lat1: 0.0, lat2: 10.0, latM: 5.019509, lon1: 0.0, lon2: 10.0, lonM: 4.961883, s12: 1565109.099218, s1M: 782554.549609}\n    test 69 Middle5.B: {a12: 99.810444, a1M: 49.905222, azi1: 180.0, azi2: 180.0, aziM: 180.0, lat1: 50.0, lat2: -50.0, latM: 0.0, lon1: -4.0, lon2: -4.0, lonM: -4.0, s12: 11081694.083368, s1M: 5540847.041684}\n    test 70 Middle5.sMM: 1.14053e+06\n    test 71 Middle5.aMM: 10.2799\n    test 72 Middle5.c: 0\n\n    test 73 Segment.sA: -631414\n    test 74 Segment.sB: 5.98889e+06\n    test 75 Segment.c: 0\n    test 76 Segment.sX0: 1.86201e+06\n    test 77 Segment.kA: -1\n    test 78 Segment.kB: 0\n    test 79 Segment.k: -3\n\n    test 80 Segment5.A: {a1X: -5.691141, azi1: 44.75191, aziX: 44.893464, k2: -1, lat1: 0.0, latX: -4.051871, lon1: 0.0, lonX: -4.0, s1X: -631414.26877}\n    test 81 Segment5.B: {a1X: 53.943553, azi1: 180.0, aziX: 180.0, k2: 0, lat1: 50.0, latX: -4.051871, lon1: -4.0, lonX: -4.0, s1X: 5988887.278435}\n    test 82 Segment5.sAB: 0\n    test 83 Segment5.aAB: 0\n    test 84 Segment5.c: 0\n\n    test 85 intersect7s[0].A: 04.051871°S, 004.0°W\n    test 86 intersect7s[0].B: 04.051871°S, 004.0°W\n    test 87 intersect7s[0].sAB: 1.5e-09\n    test 88 intersect7s[0].aAB: 1.3e-14\n    test 89 intersect7s[0].c: 0\n    test 90 intersect7s[0].kA: 0\n    test 91 intersect7s[0].kB: 0\n    test 92 intersect7s[0].iteration: None\n\n    test 93 intersect7s[1].A: 03.623464°N, 176.0°E\n    test 94 intersect7s[1].B: 03.623464°N, 176.0°E\n    test 95 intersect7s[1].sAB: 1.3e-09\n    test 96 intersect7s[1].aAB: 1.1e-14\n    test 97 intersect7s[1].c: 0\n    test 98 intersect7s[1].kA: 0\n    test 99 intersect7s[1].kB: 0\n    test 100 intersect7s[1].iteration: None\n\n    test 101 intersect7s[2].A: 04.051871°S, 004.0°W\n    test 102 intersect7s[2].B: 04.051871°S, 004.0°W\n    test 103 intersect7s[2].sAB: 1.6e-09\n    test 104 intersect7s[2].aAB: 1.4e-14\n    test 105 intersect7s[2].c: 0\n    test 106 intersect7s[2].kA: 0\n    test 107 intersect7s[2].kB: 0\n    test 108 intersect7s[2].iteration: None\n\n    test 109 intersect7s[3].A: 04.4796°N, 176.0°E\n    test 110 intersect7s[3].B: 04.4796°N, 176.0°E\n    test 111 intersect7s[3].sAB: 3.4e-09\n    test 112 intersect7s[3].aAB: 3.1e-14\n    test 113 intersect7s[3].c: 0\n    test 114 intersect7s[3].kA: 0\n    test 115 intersect7s[3].kB: 0\n    test 116 intersect7s[3].iteration: None\n\n    test 117 Sphere.Closest.sA: 6.07719e+06\n    test 118 Sphere.Closest.sB: -3.31802e+06\n    test 119 Sphere.Closest.c: 0\n    test 120 Sphere.Closest.sX0: 9.39521e+06\n\n    test 121 Sphere.Closest5.A: {a1X: 54.653489, azi1: -147.7, aziX: -159.911264, lat1: 50.0, latX: 0.0, lon1: -4.0, lonX: -29.839663, s1X: 6077190.710199}\n    test 122 Sphere.Closest5.B: {a1X: -29.839663, azi1: 90.0, aziX: 90.0, lat1: 0.0, latX: -0.0, lon1: 0.0, lonX: -29.839663, s1X: -3318019.115902}\n    test 123 Sphere.Closest5.sAB: 0\n    test 124 Sphere.Closest5.aAB: 0\n    test 125 Sphere.Closest5.c: 0\n\n    test 126 _Xdict2: 124\n\n    testGeodesicExact(pygeodesy.geodesici, 26.02.04)\n    test 127 Intersector: name='', geodesic=GeodesicExact(name='', caps=0, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), C4order=30)\n\n    test 128 Closest.1.sA: 4.2253e+06\n    test 129 Closest.1.sB: 2.70933e+06\n    test 130 Closest.1.c: 0\n    test 131 Closest.1.sX0: 6.93463e+06\n\n    test 132 Closest5.1.A: {a1X: 38.075573, azi1: 45.0, aziX: 51.790249, lat1: 0.0, latX: 25.92918, lon1: 0.0, lonX: 28.89426, m12: 3921213.171755, M12: 0.787198, M21: 0.787384, s1X: 4225301.108897}  FAILED, KNOWN, expected {a1X: 38.075573, azi1: 45.0, aziX: 51.790249, lat1: 0.0, latX: 25.92918, lon1: 0.0, lonX: 28.89426, s1X: 4225301.108897}\n    test 133 Closest5.1.B: {a1X: 24.392077, azi1: 135.0, aziX: 146.182975, lat1: 45.0, latX: 25.92918, lon1: 10.0, lonX: 28.89426, m12: 2628412.372503, M12: 0.911005, M21: 0.910881, s1X: 2709328.885611}  FAILED, KNOWN, expected {a1X: 24.392077, azi1: 135.0, aziX: 146.182975, lat1: 45.0, latX: 25.92918, lon1: 10.0, lonX: 28.89426, s1X: 2709328.885611}\n    test 134 Closest5.1.sAB: 7.94571e-10  FAILED, KNOWN (7.94571e-10), expected 0\n    test 135 Closest5.1.aAB: 7.15718e-15  FAILED, KNOWN (7.15718e-15), expected 0\n    test 136 Closest5.1.c: 0\n\n    test 137 Closest.2.sA: 6.05805e+06\n    test 138 Closest.2.sB: -3.31125e+06\n    test 139 Closest.2.c: 0\n    test 140 Closest.2.sX0: 9.3693e+06\n\n    test 141 Closest5.2.A: {a1X: 54.562637, azi1: -147.7, aziX: -159.869978, lat1: 50.0, latX: 0.0, lon1: -4.0, lonX: -29.745492, m12: 5184118.430287, M12: 0.58097, M21: 0.579813, s1X: 6058048.653081}  FAILED, KNOWN, expected {a1X: 54.562637, azi1: -147.7, aziX: -159.869978, lat1: 50.0, latX: -0.0, lon1: -4.0, lonX: -29.745492, s1X: 6058048.653081}\n    test 142 Closest5.2.B: {a1X: -29.845558, azi1: 90.0, aziX: 90.0, lat1: 0.0, latX: -0.0, lon1: 0.0, lonX: -29.745492, m12: -3163525.514556, M12: 0.86737, M21: 0.86737, s1X: -3311252.995823}  FAILED, KNOWN, expected {a1X: -29.845558, azi1: 90.0, aziX: 90.0, lat1: 0.0, latX: -0.0, lon1: 0.0, lonX: -29.745492, s1X: -3311252.995823}\n    test 143 Closest5.2.sAB: 3.95486e-10  FAILED, KNOWN (8.04514e-10), expected 1.2e-09\n    test 144 Closest5.2.aAB: 3.56467e-15  FAILED, KNOWN (7.43533e-15), expected 1.1e-14\n    test 145 Closest5.2.c: 0\n\n    test 146 All[0].sA: -494582\n    test 147 All[0].sB: 1.40522e+07\n    test 148 All[0].c: 0\n    test 149 All[0].sX0: 1.45468e+07\n    test 150 All[0].iteration: 4\n\n    test 151 All[1].sA: 1.95291e+07\n    test 152 All[1].sB: -5.93234e+06\n    test 153 All[1].c: 0\n    test 154 All[1].sX0: 2.54615e+07\n    test 155 All[1].iteration: 4\n\n    test 156 All[2].sA: -494582\n    test 157 All[2].sB: -2.59556e+07\n    test 158 All[2].c: 0\n    test 159 All[2].sX0: 2.64502e+07\n    test 160 All[2].iteration: 4\n\n    test 161 All[3].sA: -2.05181e+07\n    test 162 All[3].sB: -5.97086e+06\n    test 163 All[3].c: 0\n    test 164 All[3].sX0: 2.64889e+07\n    test 165 All[3].iteration: 4\n\n    test 166 All5[0].A: {a1X: -4.448619, azi1: -147.7, aziX: -144.55245, lat1: 50.0, latX: 53.692598, lon1: -4.0, lonX: 0.0, m12: -494087.771694, M12: 0.996999, M21: 0.997, s1X: -494582.492241}  FAILED, KNOWN, expected {a1X: -4.448619, azi1: -147.7, aziX: -144.55245, lat1: 50.0, latX: 53.692598, lon1: -4.0, lonX: -0.0, s1X: -494582.492241}\n    test 167 All5[0].B: {a1X: 126.399265, azi1: 0.0, aziX: 180.0, lat1: 0.0, latX: 53.692598, lon1: 180.0, lonX: 0.0, m12: 5161737.753947, M12: -0.593409, M21: -0.586165, s1X: 14052229.965229}  FAILED, KNOWN, expected {a1X: 126.399265, azi1: 0.0, aziX: 180.0, lat1: 0.0, latX: 53.692598, lon1: 180.0, lonX: 0.0, s1X: 14052229.965229}\n    test 168 All5[0].sAB: 3.54078e-09  FAILED, KNOWN (9.40779e-10), expected 2.6e-09\n    test 169 All5[0].aAB: 3.18449e-14  FAILED, KNOWN (5.15508e-15), expected 3.7e-14\n    test 170 All5[0].c: 0\n    test 171 All5[0].iteration: 4\n\n    test 172 All5[1].A: {a1X: 175.764866, azi1: -147.7, aziX: -35.280487, lat1: 50.0, latX: -53.518675, lon1: -4.0, lonX: 180.0, m12: 488198.978244, M12: -1.001203, M21: -0.992673, s1X: 19529110.042937}  FAILED, KNOWN, expected {a1X: 175.764866, azi1: -147.7, aziX: -35.280487, lat1: 50.0, latX: -53.518675, lon1: -4.0, lonX: 180.0, s1X: 19529110.042937}\n    test 173 All5[1].B: {a1X: -53.426639, azi1: 0.0, aziX: 0.0, lat1: 0.0, latX: -53.518675, lon1: 180.0, lonX: 180.0, m12: -5110370.613686, M12: 0.595852, M21: 0.597076, s1X: -5932344.259165}  FAILED, KNOWN, expected {a1X: -53.426639, azi1: 0.0, aziX: 0.0, lat1: 0.0, latX: -53.518675, lon1: 180.0, lonX: 180.0, s1X: -5932344.259165}\n    test 174 All5[1].sAB: 4.00748e-09  FAILED, KNOWN (1.00748e-09), expected 3e-09\n    test 175 All5[1].aAB: 3.60427e-14  FAILED, KNOWN (9.04267e-15), expected 2.7e-14\n    test 176 All5[1].c: 0\n    test 177 All5[1].iteration: 4\n\n    test 178 All5[2].A: {a1X: -4.448619, azi1: -147.7, aziX: -144.55245, lat1: 50.0, latX: 53.692598, lon1: -4.0, lonX: -0.0, m12: -494087.771694, M12: 0.996999, M21: 0.997, s1X: -494582.492241}  FAILED, KNOWN, expected {a1X: -4.448619, azi1: -147.7, aziX: -144.55245, lat1: 50.0, latX: 53.692598, lon1: -4.0, lonX: 0.0, s1X: -494582.492241}\n    test 179 All5[2].B: {a1X: -233.600735, azi1: 0.0, aziX: 180.0, lat1: 0.0, latX: 53.692598, lon1: 180.0, lonX: 0.0, m12: 5082071.927222, M12: -0.593409, M21: -0.603127, s1X: -25955632.952022}  FAILED, KNOWN, expected {a1X: -233.600735, azi1: 0.0, aziX: 180.0, lat1: 0.0, latX: 53.692598, lon1: 180.0, lonX: 0.0, s1X: -25955632.952022}\n    test 180 All5[2].sAB: 1.78008e-09  FAILED, KNOWN (1.80085e-10), expected 1.6e-09\n    test 181 All5[2].aAB: 1.60097e-14  FAILED, KNOWN (1.00966e-15), expected 1.5e-14\n    test 182 All5[2].c: 0\n    test 183 All5[2].iteration: 4\n\n    test 184 All5[3].A: {a1X: -184.660358, azi1: -147.7, aziX: -35.614985, lat1: 50.0, latX: -53.864737, lon1: -4.0, lonX: -180.0, m12: 499994.868419, M12: -0.992833, M21: -1.001337, s1X: -20518081.166643}  FAILED, KNOWN, expected {a1X: -184.660358, azi1: -147.7, aziX: -35.614985, lat1: 50.0, latX: -53.864737, lon1: -4.0, lonX: -180.0, s1X: -20518081.166643}\n    test 185 All5[3].B: {a1X: -53.773048, azi1: 0.0, aziX: 0.0, lat1: 0.0, latX: -53.864737, lon1: 180.0, lonX: 180.0, m12: -5133274.754826, M12: 0.590985, M21: 0.592236, s1X: -5970860.779079}  FAILED, KNOWN, expected {a1X: -53.773048, azi1: 0.0, aziX: 0.0, lat1: 0.0, latX: -53.864737, lon1: 180.0, lonX: 180.0, s1X: -5970860.779079}\n    test 186 All5[3].sAB: 2.34461e-09  FAILED, KNOWN (1.35539e-09), expected 3.7e-09\n    test 187 All5[3].aAB: 2.10867e-14  FAILED, KNOWN (1.89133e-14), expected 4e-14\n    test 188 All5[3].c: 0\n    test 189 All5[3].iteration: 4\n\n    test 190 Middle.sA: 782555\n    test 191 Middle.sB: 5.53684e+06  FAILED, KNOWN (0.000724055), expected 5.54085e+06\n    test 192 Middle.c: 0\n    test 193 Middle.sX0: 0\n\n    test 194 Middle5.A: {a12: 14.106434, a1M: 7.053396, azi1: 44.75191, azi2: 45.629037, aziM: 44.969535, lat1: 0.0, lat2: 10.0, latM: 5.019509, lon1: 0.0, lon2: 10.0, lonM: 4.961883, m12: 780579.492953, M12: 0.992432, M21: 0.992432, s12: 1565109.099218, s1M: 782554.549609}  FAILED, KNOWN, expected {a12: 14.106434, a1M: 7.053396, azi1: 44.75191, azi2: 45.629037, aziM: 44.969535, lat1: 0.0, lat2: 10.0, latM: 5.019509, lon1: 0.0, lon2: 10.0, lonM: 4.961883, s12: 1565109.099218, s1M: 782554.549609}\n    test 195 Middle5.B: {a12: 99.810444, a1M: 49.869061, azi1: 180.0, azi2: 180.0, aziM: 180.0, lat1: 50.0, lat2: -50.0, latM: 0.036282, lon1: -4.0, lon2: -4.0, lonM: -4.0, m12: 4864571.105922, M12: 0.645508, M21: 0.644537, s12: 11073670.322999, s1M: 5536835.161499}  FAILED, KNOWN, expected {a12: 99.810444, a1M: 49.905222, azi1: 180.0, azi2: 180.0, aziM: 180.0, lat1: 50.0, lat2: -50.0, latM: 0.0, lon1: -4.0, lon2: -4.0, lonM: -4.0, s12: 11081694.083368, s1M: 5540847.041684}\n    test 196 Middle5.B.latM: 1e-15  FAILED, KNOWN (0.0362822), expected 0.03628221979727372\n    test 197 Middle5.B.s1M: 5540847.041684149  FAILED, KNOWN (0.000724055), expected 5536835.161499482\n    test 198 Middle5.B.a1M: 49.905221888853184  FAILED, KNOWN (0.000724585), expected 49.869061316437026\n    test 199 Middle5.B.s12: 11081694.083368298  FAILED, KNOWN (0.000724055), expected 11073670.322998963\n    test 200 Middle5.sMM: 1.13857e+06  FAILED, KNOWN (0.0017142), expected 1.14053e+06\n    test 201 Middle5.aMM: 10.2623  FAILED, KNOWN (0.00171426), expected 10.2799\n    test 202 Middle5.c: 0\n\n    test 203 Segment.sA: -631414\n    test 204 Segment.sB: 5.98889e+06\n    test 205 Segment.c: 0\n    test 206 Segment.sX0: 1.86602e+06  FAILED, KNOWN (0.00214997), expected 1.86201e+06\n    test 207 Segment.kA: -1\n    test 208 Segment.kB: 0\n    test 209 Segment.k: -3\n\n    test 210 Segment5.A: {a1X: -5.691141, azi1: 44.75191, azi2: 45.629037, aziX: 44.893464, k2: -1, lat1: 0.0, lat2: 10.0, latX: -4.051871, lon1: 0.0, lon2: 10.0, lonX: -4.0, m12: -630376.505305, M12: 0.995071, M21: 0.995071, s1X: -631414.26877}  FAILED, KNOWN, expected {a1X: -5.691141, azi1: 44.75191, aziX: 44.893464, k2: -1, lat1: 0.0, latX: -4.051871, lon1: 0.0, lonX: -4.0, s1X: -631414.26877}\n    test 211 Segment5.B: {a1X: 53.943553, azi1: 180.0, azi2: 180.0, aziX: 180.0, k2: 0, lat1: 50.0, lat2: -50.0, latX: -4.051871, lon1: -4.0, lon2: -4.0, lonX: -4.0, m12: 5143394.782542, M12: 0.589657, M21: 0.588535, s1X: 5988887.278435}  FAILED, KNOWN, expected {a1X: 53.943553, azi1: 180.0, aziX: 180.0, k2: 0, lat1: 50.0, latX: -4.051871, lon1: -4.0, lonX: -4.0, s1X: 5988887.278435}\n    test 212 Segment5.sAB: 1.36757e-09  FAILED, KNOWN (1.36757e-09), expected 0\n    test 213 Segment5.aAB: 1.23262e-14  FAILED, KNOWN (1.23262e-14), expected 0\n    test 214 Segment5.c: 0\n\n    test 215 intersect7s[0].A: 04.051871°S, 004.0°W\n    test 216 intersect7s[0].B: 04.051871°S, 004.0°W\n    test 217 intersect7s[0].sAB: 1.4124e-09  FAILED, KNOWN (8.7597e-11), expected 1.5e-09\n    test 218 intersect7s[0].aAB: 1.27222e-14  FAILED, KNOWN (2.77781e-16), expected 1.3e-14\n    test 219 intersect7s[0].c: 0\n    test 220 intersect7s[0].kA: 0\n    test 221 intersect7s[0].kB: 0\n    test 222 intersect7s[0].iteration: None\n\n    test 223 intersect7s[1].A: 03.623464°N, 176.0°E\n    test 224 intersect7s[1].B: 03.623464°N, 176.0°E\n    test 225 intersect7s[1].sAB: 1.67723e-09  FAILED, KNOWN (3.77229e-10), expected 1.3e-09\n    test 226 intersect7s[1].aAB: 1.51076e-14  FAILED, KNOWN (4.10763e-15), expected 1.1e-14\n    test 227 intersect7s[1].c: 0\n    test 228 intersect7s[1].kA: 0\n    test 229 intersect7s[1].kB: 0\n    test 230 intersect7s[1].iteration: None\n\n    test 231 intersect7s[2].A: 04.051871°S, 004.0°W\n    test 232 intersect7s[2].B: 04.051871°S, 004.0°W\n    test 233 intersect7s[2].sAB: 3.53101e-10  FAILED, KNOWN (1.2469e-09), expected 1.6e-09\n    test 234 intersect7s[2].aAB: 3.18055e-15  FAILED, KNOWN (1.08194e-14), expected 1.4e-14\n    test 235 intersect7s[2].c: 0\n    test 236 intersect7s[2].kA: 0\n    test 237 intersect7s[2].kB: 0\n    test 238 intersect7s[2].iteration: None\n\n    test 239 intersect7s[3].A: 04.4796°N, 176.0°E\n    test 240 intersect7s[3].B: 04.4796°N, 176.0°E\n    test 241 intersect7s[3].sAB: 3.19839e-09  FAILED, KNOWN (2.01607e-10), expected 3.4e-09\n    test 242 intersect7s[3].aAB: 2.88277e-14  FAILED, KNOWN (2.17228e-15), expected 3.1e-14\n    test 243 intersect7s[3].c: 0\n    test 244 intersect7s[3].kA: 0\n    test 245 intersect7s[3].kB: 0\n    test 246 intersect7s[3].iteration: None\n\n    test 247 Sphere.Closest.sA: 6.07719e+06\n    test 248 Sphere.Closest.sB: -3.31802e+06\n    test 249 Sphere.Closest.c: 0\n    test 250 Sphere.Closest.sX0: 9.39521e+06\n\n    test 251 Sphere.Closest5.A: {a1X: 54.653489, azi1: -147.7, aziX: -159.911264, lat1: 50.0, latX: -0.0, lon1: -4.0, lonX: -29.839663, m12: 5196622.322619, M12: 0.57852, M21: 0.57852, s1X: 6077190.710199}  FAILED, KNOWN, expected {a1X: 54.653489, azi1: -147.7, aziX: -159.911264, lat1: 50.0, latX: 0.0, lon1: -4.0, lonX: -29.839663, s1X: 6077190.710199}\n    test 252 Sphere.Closest5.B: {a1X: -29.839663, azi1: 90.0, aziX: 90.0, lat1: 0.0, latX: -0.0, lon1: 0.0, lonX: -29.839663, m12: -3170047.454389, M12: 0.867421, M21: 0.867421, s1X: -3318019.115902}  FAILED, KNOWN, expected {a1X: -29.839663, azi1: 90.0, aziX: 90.0, lat1: 0.0, latX: -0.0, lon1: 0.0, lonX: -29.839663, s1X: -3318019.115902}\n    test 253 Sphere.Closest5.sAB: 2.06452e-09  FAILED, KNOWN (2.06452e-09), expected 0\n    test 254 Sphere.Closest5.aAB: 1.85667e-14  FAILED, KNOWN (1.85667e-14), expected 0\n    test 255 Sphere.Closest5.c: 0\n\n    test 256 _Xdict2: 124\n\n    testGeodesic(pygeodesy.geodesici, 26.02.04)\n    test 257 Intersector: name='', geodesic=<pygeodesy.geodesicw._gWrapped.Geodesic.<locals>.Geodesic object at 0x106f2cc20>\n\n    test 258 Closest.1.sA: 4.2253e+06\n    test 259 Closest.1.sB: 2.70933e+06\n    test 260 Closest.1.c: 0\n    test 261 Closest.1.sX0: 6.93463e+06\n\n    test 262 Closest5.1.A: {a1X: 38.075573, azi1: 45.0, aziX: 51.790249, lat1: 0.0, latX: 25.92918, lon1: 0.0, lonX: 28.89426, s1X: 4225301.108897}\n    test 263 Closest5.1.B: {a1X: 24.392077, azi1: 135.0, aziX: 146.182975, lat1: 45.0, latX: 25.92918, lon1: 10.0, lonX: 28.89426, s1X: 2709328.885611}\n    test 264 Closest5.1.sAB: 7.11805e-10  FAILED, KNOWN (7.11805e-10), expected 0\n    test 265 Closest5.1.aAB: 6.41166e-15  FAILED, KNOWN (6.41166e-15), expected 0\n    test 266 Closest5.1.c: 0\n\n    test 267 Closest.2.sA: 6.05805e+06\n    test 268 Closest.2.sB: -3.31125e+06\n    test 269 Closest.2.c: 0\n    test 270 Closest.2.sX0: 9.3693e+06\n\n    test 271 Closest5.2.A: {a1X: 54.562637, azi1: -147.7, aziX: -159.869978, lat1: 50.0, latX: -0.0, lon1: -4.0, lonX: -29.745492, s1X: 6058048.653081}\n    test 272 Closest5.2.B: {a1X: -29.845558, azi1: 90.0, aziX: 90.0, lat1: 0.0, latX: -0.0, lon1: 0.0, lonX: -29.745492, s1X: -3311252.995823}\n    test 273 Closest5.2.sAB: 1.27e-09  FAILED, KNOWN (6.99961e-11), expected 1.2e-09\n    test 274 Closest5.2.aAB: 1.14469e-14  FAILED, KNOWN (4.46948e-16), expected 1.1e-14\n    test 275 Closest5.2.c: 0\n\n    test 276 All[0].sA: -494582\n    test 277 All[0].sB: 1.40522e+07\n    test 278 All[0].c: 0\n    test 279 All[0].sX0: 1.45468e+07\n    test 280 All[0].iteration: 4\n\n    test 281 All[1].sA: 1.95291e+07\n    test 282 All[1].sB: -5.93234e+06\n    test 283 All[1].c: 0\n    test 284 All[1].sX0: 2.54615e+07\n    test 285 All[1].iteration: 4\n\n    test 286 All[2].sA: -494582\n    test 287 All[2].sB: -2.59556e+07\n    test 288 All[2].c: 0\n    test 289 All[2].sX0: 2.64502e+07\n    test 290 All[2].iteration: 4\n\n    test 291 All[3].sA: -2.05181e+07\n    test 292 All[3].sB: -5.97086e+06\n    test 293 All[3].c: 0\n    test 294 All[3].sX0: 2.64889e+07\n    test 295 All[3].iteration: 4\n\n    test 296 All5[0].A: {a1X: -4.448619, azi1: -147.7, aziX: -144.55245, lat1: 50.0, latX: 53.692598, lon1: -4.0, lonX: 0.0, s1X: -494582.492241}  FAILED, KNOWN, expected {a1X: -4.448619, azi1: -147.7, aziX: -144.55245, lat1: 50.0, latX: 53.692598, lon1: -4.0, lonX: -0.0, s1X: -494582.492241}\n    test 297 All5[0].B: {a1X: 126.399265, azi1: 0.0, aziX: 180.0, lat1: 0.0, latX: 53.692598, lon1: 180.0, lonX: 0.0, s1X: 14052229.965229}\n    test 298 All5[0].sAB: 1.44466e-09  FAILED, KNOWN (1.15534e-09), expected 2.6e-09\n    test 299 All5[0].aAB: 1.29929e-14  FAILED, KNOWN (2.40071e-14), expected 3.7e-14\n    test 300 All5[0].c: 0\n    test 301 All5[0].iteration: 4\n\n    test 302 All5[1].A: {a1X: 175.764866, azi1: -147.7, aziX: -35.280487, lat1: 50.0, latX: -53.518675, lon1: -4.0, lonX: 180.0, s1X: 19529110.042937}\n    test 303 All5[1].B: {a1X: -53.426639, azi1: 0.0, aziX: 0.0, lat1: 0.0, latX: -53.518675, lon1: 180.0, lonX: 180.0, s1X: -5932344.259165}\n    test 304 All5[1].sAB: 4.71379e-09  FAILED, KNOWN (1.71379e-09), expected 3e-09\n    test 305 All5[1].aAB: 4.23951e-14  FAILED, KNOWN (1.53951e-14), expected 2.7e-14\n    test 306 All5[1].c: 0\n    test 307 All5[1].iteration: 4\n\n    test 308 All5[2].A: {a1X: -4.448619, azi1: -147.7, aziX: -144.55245, lat1: 50.0, latX: 53.692598, lon1: -4.0, lonX: 0.0, s1X: -494582.492241}\n    test 309 All5[2].B: {a1X: -233.600735, azi1: 0.0, aziX: 180.0, lat1: 0.0, latX: 53.692598, lon1: 180.0, lonX: 0.0, s1X: -25955632.952022}\n    test 310 All5[2].sAB: 1.8823e-09  FAILED, KNOWN (2.823e-10), expected 1.6e-09\n    test 311 All5[2].aAB: 1.6929e-14  FAILED, KNOWN (1.92896e-15), expected 1.5e-14\n    test 312 All5[2].c: 0\n    test 313 All5[2].iteration: 4\n\n    test 314 All5[3].A: {a1X: -184.660358, azi1: -147.7, aziX: -35.614985, lat1: 50.0, latX: -53.864737, lon1: -4.0, lonX: 180.0, s1X: -20518081.166643}  FAILED, KNOWN, expected {a1X: -184.660358, azi1: -147.7, aziX: -35.614985, lat1: 50.0, latX: -53.864737, lon1: -4.0, lonX: -180.0, s1X: -20518081.166643}\n    test 315 All5[3].A.lonX: 179.99999999999994  FAILED, KNOWN (2), expected -180.0\n    test 316 All5[3].B: {a1X: -53.773048, azi1: 0.0, aziX: 0.0, lat1: 0.0, latX: -53.864737, lon1: 180.0, lonX: 180.0, s1X: -5970860.779079}\n    test 317 All5[3].sAB: 3.99823e-09  FAILED, KNOWN (2.98226e-10), expected 3.7e-09\n    test 318 All5[3].aAB: 3.59587e-14  FAILED, KNOWN (4.04126e-15), expected 4e-14\n    test 319 All5[3].c: 0\n    test 320 All5[3].iteration: 4\n\n    test 321 Middle.sA: 782555\n    test 322 Middle.sB: 5.54085e+06\n    test 323 Middle.c: 0\n    test 324 Middle.sX0: 0\n\n    test 325 Middle5.A: {a12: 14.106434, a1M: 7.053396, azi1: 44.75191, azi2: 45.629037, aziM: 44.969535, lat1: 0.0, lat2: 10.0, latM: 5.019509, lon1: 0.0, lon2: 10.0, lonM: 4.961883, s12: 1565109.099218, s1M: 782554.549609}\n    test 326 Middle5.B: {a12: 99.810444, a1M: 49.905222, azi1: 180.0, azi2: 180.0, aziM: 180.0, lat1: 50.0, lat2: -50.0, latM: 0.0, lon1: -4.0, lon2: -4.0, lonM: -4.0, s12: 11081694.083368, s1M: 5540847.041684}\n    test 327 Middle5.sMM: 1.14053e+06\n    test 328 Middle5.aMM: 10.2799\n    test 329 Middle5.c: 0\n\n    test 330 Segment.sA: -631414\n    test 331 Segment.sB: 5.98889e+06\n    test 332 Segment.c: 0\n    test 333 Segment.sX0: 1.86201e+06\n    test 334 Segment.kA: -1\n    test 335 Segment.kB: 0\n    test 336 Segment.k: -3\n\n    test 337 Segment5.A: {a1X: -5.691141, azi1: 44.75191, aziX: 44.893464, k2: -1, lat1: 0.0, latX: -4.051871, lon1: 0.0, lonX: -4.0, s1X: -631414.26877}\n    test 338 Segment5.B: {a1X: 53.943553, azi1: 180.0, aziX: 180.0, k2: 0, lat1: 50.0, latX: -4.051871, lon1: -4.0, lonX: -4.0, s1X: 5988887.278435}\n    test 339 Segment5.sAB: 5.496e-10  FAILED, KNOWN (5.496e-10), expected 0\n    test 340 Segment5.aAB: 4.95367e-15  FAILED, KNOWN (4.95367e-15), expected 0\n    test 341 Segment5.c: 0\n\n    test 342 intersect7s[0].A: 04.051871°S, 004.0°W\n    test 343 intersect7s[0].B: 04.051871°S, 004.0°W\n    test 344 intersect7s[0].sAB: 2.64649e-10  FAILED, KNOWN (1.23535e-09), expected 1.5e-09\n    test 345 intersect7s[0].aAB: 2.38534e-15  FAILED, KNOWN (1.06147e-14), expected 1.3e-14\n    test 346 intersect7s[0].c: 0\n    test 347 intersect7s[0].kA: 0\n    test 348 intersect7s[0].kB: 0\n    test 349 intersect7s[0].iteration: None\n\n    test 350 intersect7s[1].A: 03.623464°N, 176.0°E\n    test 351 intersect7s[1].B: 03.623464°N, 176.0°E\n    test 352 intersect7s[1].sAB: 1.67611e-09  FAILED, KNOWN (3.76108e-10), expected 1.3e-09\n    test 353 intersect7s[1].aAB: 1.51076e-14  FAILED, KNOWN (4.10763e-15), expected 1.1e-14\n    test 354 intersect7s[1].c: 0\n    test 355 intersect7s[1].kA: 0\n    test 356 intersect7s[1].kB: 0\n    test 357 intersect7s[1].iteration: None\n\n    test 358 intersect7s[2].A: 04.051871°S, 004.0°W\n    test 359 intersect7s[2].B: 04.051871°S, 004.0°W\n    test 360 intersect7s[2].sAB: 5.83925e-10  FAILED, KNOWN (1.01607e-09), expected 1.6e-09\n    test 361 intersect7s[2].aAB: 5.26305e-15  FAILED, KNOWN (8.73695e-15), expected 1.4e-14\n    test 362 intersect7s[2].c: 0\n    test 363 intersect7s[2].kA: 0\n    test 364 intersect7s[2].kB: 0\n    test 365 intersect7s[2].iteration: None\n\n    test 366 intersect7s[3].A: 04.4796°N, 176.0°E\n    test 367 intersect7s[3].B: 04.4796°N, 176.0°E\n    test 368 intersect7s[3].sAB: 3.49267e-09  FAILED, KNOWN (9.26688e-11), expected 3.4e-09\n    test 369 intersect7s[3].aAB: 3.14801e-14  FAILED, KNOWN (4.80084e-16), expected 3.1e-14\n    test 370 intersect7s[3].c: 0\n    test 371 intersect7s[3].kA: 0\n    test 372 intersect7s[3].kB: 0\n    test 373 intersect7s[3].iteration: None\n\n    test 374 Sphere.Closest.sA: 6.07719e+06\n    test 375 Sphere.Closest.sB: -3.31802e+06\n    test 376 Sphere.Closest.c: 0\n    test 377 Sphere.Closest.sX0: 9.39521e+06\n\n    test 378 Sphere.Closest5.A: {a1X: 54.653489, azi1: -147.7, aziX: -159.911264, lat1: 50.0, latX: -0.0, lon1: -4.0, lonX: -29.839663, s1X: 6077190.710199}  FAILED, KNOWN, expected {a1X: 54.653489, azi1: -147.7, aziX: -159.911264, lat1: 50.0, latX: 0.0, lon1: -4.0, lonX: -29.839663, s1X: 6077190.710199}\n    test 379 Sphere.Closest5.B: {a1X: -29.839663, azi1: 90.0, aziX: 90.0, lat1: 0.0, latX: -0.0, lon1: 0.0, lonX: -29.839663, s1X: -3318019.115902}\n    test 380 Sphere.Closest5.sAB: 8.56921e-10  FAILED, KNOWN (8.56921e-10), expected 0\n    test 381 Sphere.Closest5.aAB: 7.70647e-15  FAILED, KNOWN (7.70647e-15), expected 0\n    test 382 Sphere.Closest5.c: 0\n\n    test 383 _Xdict2: 124\n\n    testGeodesicSolve(pygeodesy.geodesici, 26.02.04)\n    test 384 Intersector: name='', geodesic=GeodesicSolve(ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), GeodSolve='/opt/local/bin/GeodSolve', invokation=15, status=0)\n\n    test 385 Closest.1.sA: 4.2253e+06\n    test 386 Closest.1.sB: 2.70933e+06\n    test 387 Closest.1.c: 0\n    test 388 Closest.1.sX0: 6.93463e+06\n    test 389 Closest.1.latA: 25.9292\n    test 390 Closest.1.lonA: 28.8943\n    test 391 Closest.1.latB: 25.9292\n    test 392 Closest.1.lonB: 28.8943\n    test 393 Closest.1.sAB: 0\n    test 394 Closest.1.aAB: 0\n\n    test 395 Closest5.1.A: {a1X: 38.075573, azi1: 45.0, aziX: 51.790249, lat1: 0.0, latX: 25.92918, lon1: 0.0, lonX: 28.89426, s1X: 4225301.108897}\n    test 396 Closest5.1.B: {a1X: 24.392077, azi1: 135.0, aziX: 146.182975, lat1: 45.0, latX: 25.92918, lon1: 10.0, lonX: 28.89426, s1X: 2709328.885611}\n    test 397 Closest5.1.sAB: 0\n    test 398 Closest5.1.aAB: 0\n    test 399 Closest5.1.c: 0\n\n    test 400 Closest.2.sA: 6.05805e+06\n    test 401 Closest.2.sB: -3.31125e+06\n    test 402 Closest.2.c: 0\n    test 403 Closest.2.sX0: 9.3693e+06\n    test 404 Closest.2.latA: -1e-15\n    test 405 Closest.2.lonA: -29.7455\n    test 406 Closest.2.latB: -0\n    test 407 Closest.2.lonB: -29.7455\n    test 408 Closest.2.sAB: 1.2e-09\n    test 409 Closest.2.aAB: 1.1e-14\n\n    test 410 Closest5.2.A: {a1X: 54.562637, azi1: -147.7, aziX: -159.869978, lat1: 50.0, latX: -0.0, lon1: -4.0, lonX: -29.745492, s1X: 6058048.653081}\n    test 411 Closest5.2.B: {a1X: -29.845558, azi1: 90.0, aziX: 90.0, lat1: 0.0, latX: -0.0, lon1: 0.0, lonX: -29.745492, s1X: -3311252.995823}\n    test 412 Closest5.2.sAB: 1.2e-09\n    test 413 Closest5.2.aAB: 1.1e-14\n    test 414 Closest5.2.c: 0\n\n    test 415 All[0].sA: -494582\n    test 416 All[0].sB: 1.40522e+07\n    test 417 All[0].c: 0\n    test 418 All[0].sX0: 1.45468e+07\n    test 419 All[0].latA: 53.6926\n    test 420 All[0].lonA: -2e-15\n    test 421 All[0].latB: 53.6926\n    test 422 All[0].lonB: 0\n    test 423 All[0].sAB: 2.6e-09\n    test 424 All[0].aAB: 3.7e-14\n    test 425 All[0].iteration: 4\n\n    test 426 All[1].sA: 1.95291e+07\n    test 427 All[1].sB: -5.93234e+06\n    test 428 All[1].c: 0\n    test 429 All[1].sX0: 2.54615e+07\n    test 430 All[1].latA: -53.5187\n    test 431 All[1].lonA: 180\n    test 432 All[1].latB: -53.5187\n    test 433 All[1].lonB: 180\n    test 434 All[1].sAB: 3e-09\n    test 435 All[1].aAB: 2.7e-14\n    test 436 All[1].iteration: 4\n\n    test 437 All[2].sA: -494582\n    test 438 All[2].sB: -2.59556e+07\n    test 439 All[2].c: 0\n    test 440 All[2].sX0: 2.64502e+07\n    test 441 All[2].latA: 53.6926\n    test 442 All[2].lonA: 1.8e-14\n    test 443 All[2].latB: 53.6926\n    test 444 All[2].lonB: 0\n    test 445 All[2].sAB: 1.6e-09\n    test 446 All[2].aAB: 1.5e-14\n    test 447 All[2].iteration: 4\n\n    test 448 All[3].sA: -2.05181e+07\n    test 449 All[3].sB: -5.97086e+06\n    test 450 All[3].c: 0\n    test 451 All[3].sX0: 2.64889e+07\n    test 452 All[3].latA: -53.8647\n    test 453 All[3].lonA: -180\n    test 454 All[3].latB: -53.8647\n    test 455 All[3].lonB: 180\n    test 456 All[3].sAB: 3.7e-09\n    test 457 All[3].aAB: 4e-14\n    test 458 All[3].iteration: 4\n\n    test 459 All5[0].A: {a1X: -4.448619, azi1: -147.7, aziX: -144.55245, lat1: 50.0, latX: 53.692598, lon1: -4.0, lonX: -0.0, s1X: -494582.492241}\n    test 460 All5[0].B: {a1X: 126.399265, azi1: 0.0, aziX: 180.0, lat1: 0.0, latX: 53.692598, lon1: 180.0, lonX: 0.0, s1X: 14052229.965229}\n    test 461 All5[0].sAB: 2.6e-09\n    test 462 All5[0].aAB: 3.7e-14\n    test 463 All5[0].c: 0\n    test 464 All5[0].iteration: 4\n\n    test 465 All5[1].A: {a1X: 175.764866, azi1: -147.7, aziX: -35.280487, lat1: 50.0, latX: -53.518675, lon1: -4.0, lonX: 180.0, s1X: 19529110.042937}\n    test 466 All5[1].B: {a1X: -53.426639, azi1: 0.0, aziX: 0.0, lat1: 0.0, latX: -53.518675, lon1: 180.0, lonX: 180.0, s1X: -5932344.259165}\n    test 467 All5[1].sAB: 3e-09\n    test 468 All5[1].aAB: 2.7e-14\n    test 469 All5[1].c: 0\n    test 470 All5[1].iteration: 4\n\n    test 471 All5[2].A: {a1X: -4.448619, azi1: -147.7, aziX: -144.55245, lat1: 50.0, latX: 53.692598, lon1: -4.0, lonX: 0.0, s1X: -494582.492241}\n    test 472 All5[2].B: {a1X: -233.600735, azi1: 0.0, aziX: 180.0, lat1: 0.0, latX: 53.692598, lon1: 180.0, lonX: 0.0, s1X: -25955632.952022}\n    test 473 All5[2].sAB: 1.6e-09\n    test 474 All5[2].aAB: 1.5e-14\n    test 475 All5[2].c: 0\n    test 476 All5[2].iteration: 4\n\n    test 477 All5[3].A: {a1X: -184.660358, azi1: -147.7, aziX: -35.614985, lat1: 50.0, latX: -53.864737, lon1: -4.0, lonX: -180.0, s1X: -20518081.166643}\n    test 478 All5[3].B: {a1X: -53.773048, azi1: 0.0, aziX: 0.0, lat1: 0.0, latX: -53.864737, lon1: 180.0, lonX: 180.0, s1X: -5970860.779079}\n    test 479 All5[3].sAB: 3.7e-09\n    test 480 All5[3].aAB: 4e-14\n    test 481 All5[3].c: 0\n    test 482 All5[3].iteration: 4\n\n    test 483 Middle.sA: 782555\n    test 484 Middle.sB: 5.54085e+06\n    test 485 Middle.c: 0\n    test 486 Middle.sX0: 0\n    test 487 Middle.latA: 5.01951\n    test 488 Middle.lonA: 4.96188\n    test 489 Middle.latB: 1e-15\n    test 490 Middle.lonB: -4\n    test 491 Middle.sAB: 1.14053e+06\n    test 492 Middle.aAB: 10.2799\n\n    test 493 Middle5.A: {a12: 14.106434, a1M: 7.053396, azi1: 44.75191, azi2: 45.629037, aziM: 44.969535, lat1: 0.0, lat2: 10.0, latM: 5.019509, lon1: 0.0, lon2: 10.0, lonM: 4.961883, s12: 1565109.099218, s1M: 782554.549609}\n    test 494 Middle5.B: {a12: 99.810444, a1M: 49.905222, azi1: 180.0, azi2: 180.0, aziM: 180.0, lat1: 50.0, lat2: -50.0, latM: 0.0, lon1: -4.0, lon2: -4.0, lonM: -4.0, s12: 11081694.083368, s1M: 5540847.041684}\n    test 495 Middle5.sMM: 1.14053e+06\n    test 496 Middle5.aMM: 10.2799\n    test 497 Middle5.c: 0\n\n    test 498 Segment.sA: -631414\n    test 499 Segment.sB: 5.98889e+06\n    test 500 Segment.c: 0\n    test 501 Segment.sX0: 1.86201e+06\n    test 502 Segment.kA: -1\n    test 503 Segment.kB: 0\n    test 504 Segment.k: -3\n    test 505 Segment.latA: -4.05187\n    test 506 Segment.lonA: -4\n    test 507 Segment.latB: -4.05187\n    test 508 Segment.lonB: -4\n    test 509 Segment.sAB: 0\n    test 510 Segment.aAB: 0\n\n    test 511 Segment5.A: {a1X: -5.691141, azi1: 44.75191, aziX: 44.893464, k2: -1, lat1: 0.0, latX: -4.051871, lon1: 0.0, lonX: -4.0, s1X: -631414.26877}\n    test 512 Segment5.B: {a1X: 53.943553, azi1: 180.0, aziX: 180.0, k2: 0, lat1: 50.0, latX: -4.051871, lon1: -4.0, lonX: -4.0, s1X: 5988887.278435}\n    test 513 Segment5.sAB: 0\n    test 514 Segment5.aAB: 0\n    test 515 Segment5.c: 0\n\n    test 516 intersect7s[0].A: 04.051871°S, 004.0°W\n    test 517 intersect7s[0].B: 04.051871°S, 004.0°W\n    test 518 intersect7s[0].sAB: 1.5e-09\n    test 519 intersect7s[0].aAB: 1.3e-14\n    test 520 intersect7s[0].c: 0\n    test 521 intersect7s[0].kA: 0\n    test 522 intersect7s[0].kB: 0\n    test 523 intersect7s[0].iteration: None\n\n    test 524 intersect7s[1].A: 03.623464°N, 176.0°E\n    test 525 intersect7s[1].B: 03.623464°N, 176.0°E\n    test 526 intersect7s[1].sAB: 1.3e-09\n    test 527 intersect7s[1].aAB: 1.1e-14\n    test 528 intersect7s[1].c: 0\n    test 529 intersect7s[1].kA: 0\n    test 530 intersect7s[1].kB: 0\n    test 531 intersect7s[1].iteration: None\n\n    test 532 intersect7s[2].A: 04.051871°S, 004.0°W\n    test 533 intersect7s[2].B: 04.051871°S, 004.0°W\n    test 534 intersect7s[2].sAB: 1.6e-09\n    test 535 intersect7s[2].aAB: 1.4e-14\n    test 536 intersect7s[2].c: 0\n    test 537 intersect7s[2].kA: 0\n    test 538 intersect7s[2].kB: 0\n    test 539 intersect7s[2].iteration: None\n\n    test 540 intersect7s[3].A: 04.4796°N, 176.0°E\n    test 541 intersect7s[3].B: 04.4796°N, 176.0°E\n    test 542 intersect7s[3].sAB: 3.4e-09\n    test 543 intersect7s[3].aAB: 3.1e-14\n    test 544 intersect7s[3].c: 0\n    test 545 intersect7s[3].kA: 0\n    test 546 intersect7s[3].kB: 0\n    test 547 intersect7s[3].iteration: None\n\n    test 548 Sphere.Closest.sA: 6.07719e+06\n    test 549 Sphere.Closest.sB: -3.31802e+06\n    test 550 Sphere.Closest.c: 0\n    test 551 Sphere.Closest.sX0: 9.39521e+06\n    test 552 Sphere.Closest.latA: 1e-15\n    test 553 Sphere.Closest.lonA: -29.8397\n    test 554 Sphere.Closest.latB: -0\n    test 555 Sphere.Closest.lonB: -29.8397\n    test 556 Sphere.Closest.sAB: 0\n    test 557 Sphere.Closest.aAB: 0\n\n    test 558 Sphere.Closest5.A: {a1X: 54.653489, azi1: -147.7, aziX: -159.911264, lat1: 50.0, latX: 0.0, lon1: -4.0, lonX: -29.839663, s1X: 6077190.710199}\n    test 559 Sphere.Closest5.B: {a1X: -29.839663, azi1: 90.0, aziX: 90.0, lat1: 0.0, latX: -0.0, lon1: 0.0, lonX: -29.839663, s1X: -3318019.115902}\n    test 560 Sphere.Closest5.sAB: 0\n    test 561 Sphere.Closest5.aAB: 0\n    test 562 Sphere.Closest5.c: 0\n\n    test 563 _Xdict2: 178\n\n    testGeodesicExact(pygeodesy.geodesici, 26.02.04)\n    test 564 Intersector: name='', geodesic=GeodesicExact(name='', caps=0, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), C4order=30)\n\n    test 565 Closest.1.sA: 4.2253e+06\n    test 566 Closest.1.sB: 2.70933e+06\n    test 567 Closest.1.c: 0\n    test 568 Closest.1.sX0: 6.93463e+06\n\n    test 569 Closest5.1.A: {a1X: 38.075573, azi1: 45.0, aziX: 51.790249, lat1: 0.0, latX: 25.92918, lon1: 0.0, lonX: 28.89426, m12: 3921213.171755, M12: 0.787198, M21: 0.787384, s1X: 4225301.108897}  FAILED, KNOWN, expected {a1X: 38.075573, azi1: 45.0, aziX: 51.790249, lat1: 0.0, latX: 25.92918, lon1: 0.0, lonX: 28.89426, s1X: 4225301.108897}\n    test 570 Closest5.1.B: {a1X: 24.392077, azi1: 135.0, aziX: 146.182975, lat1: 45.0, latX: 25.92918, lon1: 10.0, lonX: 28.89426, m12: 2628412.372503, M12: 0.911005, M21: 0.910881, s1X: 2709328.885611}  FAILED, KNOWN, expected {a1X: 24.392077, azi1: 135.0, aziX: 146.182975, lat1: 45.0, latX: 25.92918, lon1: 10.0, lonX: 28.89426, s1X: 2709328.885611}\n    test 571 Closest5.1.sAB: 7.94571e-10  FAILED, KNOWN (7.94571e-10), expected 0\n    test 572 Closest5.1.aAB: 7.15718e-15  FAILED, KNOWN (7.15718e-15), expected 0\n    test 573 Closest5.1.c: 0\n\n    test 574 Closest.2.sA: 6.05805e+06\n    test 575 Closest.2.sB: -3.31125e+06\n    test 576 Closest.2.c: 0\n    test 577 Closest.2.sX0: 9.3693e+06\n\n    test 578 Closest5.2.A: {a1X: 54.562637, azi1: -147.7, aziX: -159.869978, lat1: 50.0, latX: 0.0, lon1: -4.0, lonX: -29.745492, m12: 5184118.430287, M12: 0.58097, M21: 0.579813, s1X: 6058048.653081}  FAILED, KNOWN, expected {a1X: 54.562637, azi1: -147.7, aziX: -159.869978, lat1: 50.0, latX: -0.0, lon1: -4.0, lonX: -29.745492, s1X: 6058048.653081}\n    test 579 Closest5.2.B: {a1X: -29.845558, azi1: 90.0, aziX: 90.0, lat1: 0.0, latX: -0.0, lon1: 0.0, lonX: -29.745492, m12: -3163525.514556, M12: 0.86737, M21: 0.86737, s1X: -3311252.995823}  FAILED, KNOWN, expected {a1X: -29.845558, azi1: 90.0, aziX: 90.0, lat1: 0.0, latX: -0.0, lon1: 0.0, lonX: -29.745492, s1X: -3311252.995823}\n    test 580 Closest5.2.sAB: 3.95486e-10  FAILED, KNOWN (8.04514e-10), expected 1.2e-09\n    test 581 Closest5.2.aAB: 3.56467e-15  FAILED, KNOWN (7.43533e-15), expected 1.1e-14\n    test 582 Closest5.2.c: 0\n\n    test 583 All[0].sA: -494582\n    test 584 All[0].sB: 1.40522e+07\n    test 585 All[0].c: 0\n    test 586 All[0].sX0: 1.45468e+07\n    test 587 All[0].iteration: 4\n\n    test 588 All[1].sA: 1.95291e+07\n    test 589 All[1].sB: -5.93234e+06\n    test 590 All[1].c: 0\n    test 591 All[1].sX0: 2.54615e+07\n    test 592 All[1].iteration: 4\n\n    test 593 All[2].sA: -494582\n    test 594 All[2].sB: -2.59556e+07\n    test 595 All[2].c: 0\n    test 596 All[2].sX0: 2.64502e+07\n    test 597 All[2].iteration: 4\n\n    test 598 All[3].sA: -2.05181e+07\n    test 599 All[3].sB: -5.97086e+06\n    test 600 All[3].c: 0\n    test 601 All[3].sX0: 2.64889e+07\n    test 602 All[3].iteration: 4\n\n    test 603 All5[0].A: {a1X: -4.448619, azi1: -147.7, aziX: -144.55245, lat1: 50.0, latX: 53.692598, lon1: -4.0, lonX: 0.0, m12: -494087.771694, M12: 0.996999, M21: 0.997, s1X: -494582.492241}  FAILED, KNOWN, expected {a1X: -4.448619, azi1: -147.7, aziX: -144.55245, lat1: 50.0, latX: 53.692598, lon1: -4.0, lonX: -0.0, s1X: -494582.492241}\n    test 604 All5[0].B: {a1X: 126.399265, azi1: 0.0, aziX: 180.0, lat1: 0.0, latX: 53.692598, lon1: 180.0, lonX: 0.0, m12: 5161737.753947, M12: -0.593409, M21: -0.586165, s1X: 14052229.965229}  FAILED, KNOWN, expected {a1X: 126.399265, azi1: 0.0, aziX: 180.0, lat1: 0.0, latX: 53.692598, lon1: 180.0, lonX: 0.0, s1X: 14052229.965229}\n    test 605 All5[0].sAB: 3.54078e-09  FAILED, KNOWN (9.40779e-10), expected 2.6e-09\n    test 606 All5[0].aAB: 3.18449e-14  FAILED, KNOWN (5.15508e-15), expected 3.7e-14\n    test 607 All5[0].c: 0\n    test 608 All5[0].iteration: 4\n\n    test 609 All5[1].A: {a1X: 175.764866, azi1: -147.7, aziX: -35.280487, lat1: 50.0, latX: -53.518675, lon1: -4.0, lonX: 180.0, m12: 488198.978244, M12: -1.001203, M21: -0.992673, s1X: 19529110.042937}  FAILED, KNOWN, expected {a1X: 175.764866, azi1: -147.7, aziX: -35.280487, lat1: 50.0, latX: -53.518675, lon1: -4.0, lonX: 180.0, s1X: 19529110.042937}\n    test 610 All5[1].B: {a1X: -53.426639, azi1: 0.0, aziX: 0.0, lat1: 0.0, latX: -53.518675, lon1: 180.0, lonX: 180.0, m12: -5110370.613686, M12: 0.595852, M21: 0.597076, s1X: -5932344.259165}  FAILED, KNOWN, expected {a1X: -53.426639, azi1: 0.0, aziX: 0.0, lat1: 0.0, latX: -53.518675, lon1: 180.0, lonX: 180.0, s1X: -5932344.259165}\n    test 611 All5[1].sAB: 4.00748e-09  FAILED, KNOWN (1.00748e-09), expected 3e-09\n    test 612 All5[1].aAB: 3.60427e-14  FAILED, KNOWN (9.04267e-15), expected 2.7e-14\n    test 613 All5[1].c: 0\n    test 614 All5[1].iteration: 4\n\n    test 615 All5[2].A: {a1X: -4.448619, azi1: -147.7, aziX: -144.55245, lat1: 50.0, latX: 53.692598, lon1: -4.0, lonX: -0.0, m12: -494087.771694, M12: 0.996999, M21: 0.997, s1X: -494582.492241}  FAILED, KNOWN, expected {a1X: -4.448619, azi1: -147.7, aziX: -144.55245, lat1: 50.0, latX: 53.692598, lon1: -4.0, lonX: 0.0, s1X: -494582.492241}\n    test 616 All5[2].B: {a1X: -233.600735, azi1: 0.0, aziX: 180.0, lat1: 0.0, latX: 53.692598, lon1: 180.0, lonX: 0.0, m12: 5082071.927222, M12: -0.593409, M21: -0.603127, s1X: -25955632.952022}  FAILED, KNOWN, expected {a1X: -233.600735, azi1: 0.0, aziX: 180.0, lat1: 0.0, latX: 53.692598, lon1: 180.0, lonX: 0.0, s1X: -25955632.952022}\n    test 617 All5[2].sAB: 1.78008e-09  FAILED, KNOWN (1.80085e-10), expected 1.6e-09\n    test 618 All5[2].aAB: 1.60097e-14  FAILED, KNOWN (1.00966e-15), expected 1.5e-14\n    test 619 All5[2].c: 0\n    test 620 All5[2].iteration: 4\n\n    test 621 All5[3].A: {a1X: -184.660358, azi1: -147.7, aziX: -35.614985, lat1: 50.0, latX: -53.864737, lon1: -4.0, lonX: -180.0, m12: 499994.868419, M12: -0.992833, M21: -1.001337, s1X: -20518081.166643}  FAILED, KNOWN, expected {a1X: -184.660358, azi1: -147.7, aziX: -35.614985, lat1: 50.0, latX: -53.864737, lon1: -4.0, lonX: -180.0, s1X: -20518081.166643}\n    test 622 All5[3].B: {a1X: -53.773048, azi1: 0.0, aziX: 0.0, lat1: 0.0, latX: -53.864737, lon1: 180.0, lonX: 180.0, m12: -5133274.754826, M12: 0.590985, M21: 0.592236, s1X: -5970860.779079}  FAILED, KNOWN, expected {a1X: -53.773048, azi1: 0.0, aziX: 0.0, lat1: 0.0, latX: -53.864737, lon1: 180.0, lonX: 180.0, s1X: -5970860.779079}\n    test 623 All5[3].sAB: 2.34461e-09  FAILED, KNOWN (1.35539e-09), expected 3.7e-09\n    test 624 All5[3].aAB: 2.10867e-14  FAILED, KNOWN (1.89133e-14), expected 4e-14\n    test 625 All5[3].c: 0\n    test 626 All5[3].iteration: 4\n\n    test 627 Middle.sA: 782555\n    test 628 Middle.sB: 5.53684e+06  FAILED, KNOWN (0.000724055), expected 5.54085e+06\n    test 629 Middle.c: 0\n    test 630 Middle.sX0: 0\n\n    test 631 Middle5.A: {a12: 14.106434, a1M: 7.053396, azi1: 44.75191, azi2: 45.629037, aziM: 44.969535, lat1: 0.0, lat2: 10.0, latM: 5.019509, lon1: 0.0, lon2: 10.0, lonM: 4.961883, m12: 780579.492953, M12: 0.992432, M21: 0.992432, s12: 1565109.099218, s1M: 782554.549609}  FAILED, KNOWN, expected {a12: 14.106434, a1M: 7.053396, azi1: 44.75191, azi2: 45.629037, aziM: 44.969535, lat1: 0.0, lat2: 10.0, latM: 5.019509, lon1: 0.0, lon2: 10.0, lonM: 4.961883, s12: 1565109.099218, s1M: 782554.549609}\n    test 632 Middle5.B: {a12: 99.810444, a1M: 49.869061, azi1: 180.0, azi2: 180.0, aziM: 180.0, lat1: 50.0, lat2: -50.0, latM: 0.036282, lon1: -4.0, lon2: -4.0, lonM: -4.0, m12: 4864571.105922, M12: 0.645508, M21: 0.644537, s12: 11073670.322999, s1M: 5536835.161499}  FAILED, KNOWN, expected {a12: 99.810444, a1M: 49.905222, azi1: 180.0, azi2: 180.0, aziM: 180.0, lat1: 50.0, lat2: -50.0, latM: 0.0, lon1: -4.0, lon2: -4.0, lonM: -4.0, s12: 11081694.083368, s1M: 5540847.041684}\n    test 633 Middle5.B.latM: 1e-15  FAILED, KNOWN (0.0362822), expected 0.03628221979727372\n    test 634 Middle5.B.s1M: 5540847.041684149  FAILED, KNOWN (0.000724055), expected 5536835.161499482\n    test 635 Middle5.B.a1M: 49.905221888853184  FAILED, KNOWN (0.000724585), expected 49.869061316437026\n    test 636 Middle5.B.s12: 11081694.083368298  FAILED, KNOWN (0.000724055), expected 11073670.322998963\n    test 637 Middle5.sMM: 1.13857e+06  FAILED, KNOWN (0.0017142), expected 1.14053e+06\n    test 638 Middle5.aMM: 10.2623  FAILED, KNOWN (0.00171426), expected 10.2799\n    test 639 Middle5.c: 0\n\n    test 640 Segment.sA: -631414\n    test 641 Segment.sB: 5.98889e+06\n    test 642 Segment.c: 0\n    test 643 Segment.sX0: 1.86602e+06  FAILED, KNOWN (0.00214997), expected 1.86201e+06\n    test 644 Segment.kA: -1\n    test 645 Segment.kB: 0\n    test 646 Segment.k: -3\n\n    test 647 Segment5.A: {a1X: -5.691141, azi1: 44.75191, azi2: 45.629037, aziX: 44.893464, k2: -1, lat1: 0.0, lat2: 10.0, latX: -4.051871, lon1: 0.0, lon2: 10.0, lonX: -4.0, m12: -630376.505305, M12: 0.995071, M21: 0.995071, s1X: -631414.26877}  FAILED, KNOWN, expected {a1X: -5.691141, azi1: 44.75191, aziX: 44.893464, k2: -1, lat1: 0.0, latX: -4.051871, lon1: 0.0, lonX: -4.0, s1X: -631414.26877}\n    test 648 Segment5.B: {a1X: 53.943553, azi1: 180.0, azi2: 180.0, aziX: 180.0, k2: 0, lat1: 50.0, lat2: -50.0, latX: -4.051871, lon1: -4.0, lon2: -4.0, lonX: -4.0, m12: 5143394.782542, M12: 0.589657, M21: 0.588535, s1X: 5988887.278435}  FAILED, KNOWN, expected {a1X: 53.943553, azi1: 180.0, aziX: 180.0, k2: 0, lat1: 50.0, latX: -4.051871, lon1: -4.0, lonX: -4.0, s1X: 5988887.278435}\n    test 649 Segment5.sAB: 1.36757e-09  FAILED, KNOWN (1.36757e-09), expected 0\n    test 650 Segment5.aAB: 1.23262e-14  FAILED, KNOWN (1.23262e-14), expected 0\n    test 651 Segment5.c: 0\n\n    test 652 intersect7s[0].A: 04.051871°S, 004.0°W\n    test 653 intersect7s[0].B: 04.051871°S, 004.0°W\n    test 654 intersect7s[0].sAB: 1.4124e-09  FAILED, KNOWN (8.7597e-11), expected 1.5e-09\n    test 655 intersect7s[0].aAB: 1.27222e-14  FAILED, KNOWN (2.77781e-16), expected 1.3e-14\n    test 656 intersect7s[0].c: 0\n    test 657 intersect7s[0].kA: 0\n    test 658 intersect7s[0].kB: 0\n    test 659 intersect7s[0].iteration: None\n\n    test 660 intersect7s[1].A: 03.623464°N, 176.0°E\n    test 661 intersect7s[1].B: 03.623464°N, 176.0°E\n    test 662 intersect7s[1].sAB: 1.67723e-09  FAILED, KNOWN (3.77229e-10), expected 1.3e-09\n    test 663 intersect7s[1].aAB: 1.51076e-14  FAILED, KNOWN (4.10763e-15), expected 1.1e-14\n    test 664 intersect7s[1].c: 0\n    test 665 intersect7s[1].kA: 0\n    test 666 intersect7s[1].kB: 0\n    test 667 intersect7s[1].iteration: None\n\n    test 668 intersect7s[2].A: 04.051871°S, 004.0°W\n    test 669 intersect7s[2].B: 04.051871°S, 004.0°W\n    test 670 intersect7s[2].sAB: 3.53101e-10  FAILED, KNOWN (1.2469e-09), expected 1.6e-09\n    test 671 intersect7s[2].aAB: 3.18055e-15  FAILED, KNOWN (1.08194e-14), expected 1.4e-14\n    test 672 intersect7s[2].c: 0\n    test 673 intersect7s[2].kA: 0\n    test 674 intersect7s[2].kB: 0\n    test 675 intersect7s[2].iteration: None\n\n    test 676 intersect7s[3].A: 04.4796°N, 176.0°E\n    test 677 intersect7s[3].B: 04.4796°N, 176.0°E\n    test 678 intersect7s[3].sAB: 3.19839e-09  FAILED, KNOWN (2.01607e-10), expected 3.4e-09\n    test 679 intersect7s[3].aAB: 2.88277e-14  FAILED, KNOWN (2.17228e-15), expected 3.1e-14\n    test 680 intersect7s[3].c: 0\n    test 681 intersect7s[3].kA: 0\n    test 682 intersect7s[3].kB: 0\n    test 683 intersect7s[3].iteration: None\n\n    test 684 Sphere.Closest.sA: 6.07719e+06\n    test 685 Sphere.Closest.sB: -3.31802e+06\n    test 686 Sphere.Closest.c: 0\n    test 687 Sphere.Closest.sX0: 9.39521e+06\n\n    test 688 Sphere.Closest5.A: {a1X: 54.653489, azi1: -147.7, aziX: -159.911264, lat1: 50.0, latX: -0.0, lon1: -4.0, lonX: -29.839663, m12: 5196622.322619, M12: 0.57852, M21: 0.57852, s1X: 6077190.710199}  FAILED, KNOWN, expected {a1X: 54.653489, azi1: -147.7, aziX: -159.911264, lat1: 50.0, latX: 0.0, lon1: -4.0, lonX: -29.839663, s1X: 6077190.710199}\n    test 689 Sphere.Closest5.B: {a1X: -29.839663, azi1: 90.0, aziX: 90.0, lat1: 0.0, latX: -0.0, lon1: 0.0, lonX: -29.839663, m12: -3170047.454389, M12: 0.867421, M21: 0.867421, s1X: -3318019.115902}  FAILED, KNOWN, expected {a1X: -29.839663, azi1: 90.0, aziX: 90.0, lat1: 0.0, latX: -0.0, lon1: 0.0, lonX: -29.839663, s1X: -3318019.115902}\n    test 690 Sphere.Closest5.sAB: 2.06452e-09  FAILED, KNOWN (2.06452e-09), expected 0\n    test 691 Sphere.Closest5.aAB: 1.85667e-14  FAILED, KNOWN (1.85667e-14), expected 0\n    test 692 Sphere.Closest5.c: 0\n\n    test 693 _Xdict2: 178\n\n    testGeodesic(pygeodesy.geodesici, 26.02.04)\n    test 694 Intersector: name='', geodesic=<pygeodesy.geodesicw._gWrapped.Geodesic.<locals>.Geodesic object at 0x106fcf750>\n\n    test 695 Closest.1.sA: 4.2253e+06\n    test 696 Closest.1.sB: 2.70933e+06\n    test 697 Closest.1.c: 0\n    test 698 Closest.1.sX0: 6.93463e+06\n    test 699 Closest.1.latA: 25.9292\n    test 700 Closest.1.lonA: 28.8943\n    test 701 Closest.1.latB: 25.9292\n    test 702 Closest.1.lonB: 28.8943\n    test 703 Closest.1.sAB: 7.11805e-10  FAILED, KNOWN (7.11805e-10), expected 0\n    test 704 Closest.1.aAB: 6.41166e-15  FAILED, KNOWN (6.41166e-15), expected 0\n\n    test 705 Closest5.1.A: {a1X: 38.075573, azi1: 45.0, aziX: 51.790249, lat1: 0.0, latX: 25.92918, lon1: 0.0, lonX: 28.89426, s1X: 4225301.108897}\n    test 706 Closest5.1.B: {a1X: 24.392077, azi1: 135.0, aziX: 146.182975, lat1: 45.0, latX: 25.92918, lon1: 10.0, lonX: 28.89426, s1X: 2709328.885611}\n    test 707 Closest5.1.sAB: 7.11805e-10  FAILED, KNOWN (7.11805e-10), expected 0\n    test 708 Closest5.1.aAB: 6.41166e-15  FAILED, KNOWN (6.41166e-15), expected 0\n    test 709 Closest5.1.c: 0\n\n    test 710 Closest.2.sA: 6.05805e+06\n    test 711 Closest.2.sB: -3.31125e+06\n    test 712 Closest.2.c: 0\n    test 713 Closest.2.sX0: 9.3693e+06\n    test 714 Closest.2.latA: -8.98894e-15  FAILED, KNOWN (7.98894e-15), expected -1e-15\n    test 715 Closest.2.lonA: -29.7455\n    test 716 Closest.2.latB: -0\n    test 717 Closest.2.lonB: -29.7455\n    test 718 Closest.2.sAB: 1.27e-09  FAILED, KNOWN (6.99961e-11), expected 1.2e-09\n    test 719 Closest.2.aAB: 1.14469e-14  FAILED, KNOWN (4.46948e-16), expected 1.1e-14\n\n    test 720 Closest5.2.A: {a1X: 54.562637, azi1: -147.7, aziX: -159.869978, lat1: 50.0, latX: -0.0, lon1: -4.0, lonX: -29.745492, s1X: 6058048.653081}\n    test 721 Closest5.2.B: {a1X: -29.845558, azi1: 90.0, aziX: 90.0, lat1: 0.0, latX: -0.0, lon1: 0.0, lonX: -29.745492, s1X: -3311252.995823}\n    test 722 Closest5.2.sAB: 1.27e-09  FAILED, KNOWN (6.99961e-11), expected 1.2e-09\n    test 723 Closest5.2.aAB: 1.14469e-14  FAILED, KNOWN (4.46948e-16), expected 1.1e-14\n    test 724 Closest5.2.c: 0\n\n    test 725 All[0].sA: -494582\n    test 726 All[0].sB: 1.40522e+07\n    test 727 All[0].c: 0\n    test 728 All[0].sX0: 1.45468e+07\n    test 729 All[0].latA: 53.6926\n    test 730 All[0].lonA: 4.44089e-15  FAILED, KNOWN (4.44089e-15), expected -2e-15\n    test 731 All[0].latB: 53.6926\n    test 732 All[0].lonB: 0\n    test 733 All[0].sAB: 1.44466e-09  FAILED, KNOWN (1.15534e-09), expected 2.6e-09\n    test 734 All[0].aAB: 1.29929e-14  FAILED, KNOWN (2.40071e-14), expected 3.7e-14\n    test 735 All[0].iteration: 4\n\n    test 736 All[1].sA: 1.95291e+07\n    test 737 All[1].sB: -5.93234e+06\n    test 738 All[1].c: 0\n    test 739 All[1].sX0: 2.54615e+07\n    test 740 All[1].latA: -53.5187\n    test 741 All[1].lonA: 180\n    test 742 All[1].latB: -53.5187\n    test 743 All[1].lonB: 180\n    test 744 All[1].sAB: 4.71379e-09  FAILED, KNOWN (1.71379e-09), expected 3e-09\n    test 745 All[1].aAB: 4.23951e-14  FAILED, KNOWN (1.53951e-14), expected 2.7e-14\n    test 746 All[1].iteration: 4\n\n    test 747 All[2].sA: -494582\n    test 748 All[2].sB: -2.59556e+07\n    test 749 All[2].c: 0\n    test 750 All[2].sX0: 2.64502e+07\n    test 751 All[2].latA: 53.6926\n    test 752 All[2].lonA: 9.76996e-15  FAILED, KNOWN (8.23004e-15), expected 1.8e-14\n    test 753 All[2].latB: 53.6926\n    test 754 All[2].lonB: 0\n    test 755 All[2].sAB: 1.8823e-09  FAILED, KNOWN (2.823e-10), expected 1.6e-09\n    test 756 All[2].aAB: 1.6929e-14  FAILED, KNOWN (1.92896e-15), expected 1.5e-14\n    test 757 All[2].iteration: 4\n\n    test 758 All[3].sA: -2.05181e+07\n    test 759 All[3].sB: -5.97086e+06\n    test 760 All[3].c: 0\n    test 761 All[3].sX0: 2.64889e+07\n    test 762 All[3].latA: -53.8647\n    test 763 All[3].lonA: 180  FAILED, KNOWN (2), expected -180\n    test 764 All[3].latB: -53.8647\n    test 765 All[3].lonB: 180\n    test 766 All[3].sAB: 3.99823e-09  FAILED, KNOWN (2.98226e-10), expected 3.7e-09\n    test 767 All[3].aAB: 3.59587e-14  FAILED, KNOWN (4.04126e-15), expected 4e-14\n    test 768 All[3].iteration: 4\n\n    test 769 All5[0].A: {a1X: -4.448619, azi1: -147.7, aziX: -144.55245, lat1: 50.0, latX: 53.692598, lon1: -4.0, lonX: 0.0, s1X: -494582.492241}  FAILED, KNOWN, expected {a1X: -4.448619, azi1: -147.7, aziX: -144.55245, lat1: 50.0, latX: 53.692598, lon1: -4.0, lonX: -0.0, s1X: -494582.492241}\n    test 770 All5[0].B: {a1X: 126.399265, azi1: 0.0, aziX: 180.0, lat1: 0.0, latX: 53.692598, lon1: 180.0, lonX: 0.0, s1X: 14052229.965229}\n    test 771 All5[0].sAB: 1.44466e-09  FAILED, KNOWN (1.15534e-09), expected 2.6e-09\n    test 772 All5[0].aAB: 1.29929e-14  FAILED, KNOWN (2.40071e-14), expected 3.7e-14\n    test 773 All5[0].c: 0\n    test 774 All5[0].iteration: 4\n\n    test 775 All5[1].A: {a1X: 175.764866, azi1: -147.7, aziX: -35.280487, lat1: 50.0, latX: -53.518675, lon1: -4.0, lonX: 180.0, s1X: 19529110.042937}\n    test 776 All5[1].B: {a1X: -53.426639, azi1: 0.0, aziX: 0.0, lat1: 0.0, latX: -53.518675, lon1: 180.0, lonX: 180.0, s1X: -5932344.259165}\n    test 777 All5[1].sAB: 4.71379e-09  FAILED, KNOWN (1.71379e-09), expected 3e-09\n    test 778 All5[1].aAB: 4.23951e-14  FAILED, KNOWN (1.53951e-14), expected 2.7e-14\n    test 779 All5[1].c: 0\n    test 780 All5[1].iteration: 4\n\n    test 781 All5[2].A: {a1X: -4.448619, azi1: -147.7, aziX: -144.55245, lat1: 50.0, latX: 53.692598, lon1: -4.0, lonX: 0.0, s1X: -494582.492241}\n    test 782 All5[2].B: {a1X: -233.600735, azi1: 0.0, aziX: 180.0, lat1: 0.0, latX: 53.692598, lon1: 180.0, lonX: 0.0, s1X: -25955632.952022}\n    test 783 All5[2].sAB: 1.8823e-09  FAILED, KNOWN (2.823e-10), expected 1.6e-09\n    test 784 All5[2].aAB: 1.6929e-14  FAILED, KNOWN (1.92896e-15), expected 1.5e-14\n    test 785 All5[2].c: 0\n    test 786 All5[2].iteration: 4\n\n    test 787 All5[3].A: {a1X: -184.660358, azi1: -147.7, aziX: -35.614985, lat1: 50.0, latX: -53.864737, lon1: -4.0, lonX: 180.0, s1X: -20518081.166643}  FAILED, KNOWN, expected {a1X: -184.660358, azi1: -147.7, aziX: -35.614985, lat1: 50.0, latX: -53.864737, lon1: -4.0, lonX: -180.0, s1X: -20518081.166643}\n    test 788 All5[3].A.lonX: 179.99999999999994  FAILED, KNOWN (2), expected -180.0\n    test 789 All5[3].B: {a1X: -53.773048, azi1: 0.0, aziX: 0.0, lat1: 0.0, latX: -53.864737, lon1: 180.0, lonX: 180.0, s1X: -5970860.779079}\n    test 790 All5[3].sAB: 3.99823e-09  FAILED, KNOWN (2.98226e-10), expected 3.7e-09\n    test 791 All5[3].aAB: 3.59587e-14  FAILED, KNOWN (4.04126e-15), expected 4e-14\n    test 792 All5[3].c: 0\n    test 793 All5[3].iteration: 4\n\n    test 794 Middle.sA: 782555\n    test 795 Middle.sB: 5.54085e+06\n    test 796 Middle.c: 0\n    test 797 Middle.sX0: 0\n    test 798 Middle.latA: 5.01951\n    test 799 Middle.lonA: 4.96188\n    test 800 Middle.latB: 0  FAILED, KNOWN (1e-15), expected 1e-15\n    test 801 Middle.lonB: -4\n    test 802 Middle.sAB: 1.14053e+06\n    test 803 Middle.aAB: 10.2799\n\n    test 804 Middle5.A: {a12: 14.106434, a1M: 7.053396, azi1: 44.75191, azi2: 45.629037, aziM: 44.969535, lat1: 0.0, lat2: 10.0, latM: 5.019509, lon1: 0.0, lon2: 10.0, lonM: 4.961883, s12: 1565109.099218, s1M: 782554.549609}\n    test 805 Middle5.B: {a12: 99.810444, a1M: 49.905222, azi1: 180.0, azi2: 180.0, aziM: 180.0, lat1: 50.0, lat2: -50.0, latM: 0.0, lon1: -4.0, lon2: -4.0, lonM: -4.0, s12: 11081694.083368, s1M: 5540847.041684}\n    test 806 Middle5.sMM: 1.14053e+06\n    test 807 Middle5.aMM: 10.2799\n    test 808 Middle5.c: 0\n\n    test 809 Segment.sA: -631414\n    test 810 Segment.sB: 5.98889e+06\n    test 811 Segment.c: 0\n    test 812 Segment.sX0: 1.86201e+06\n    test 813 Segment.kA: -1\n    test 814 Segment.kB: 0\n    test 815 Segment.k: -3\n    test 816 Segment.latA: -4.05187\n    test 817 Segment.lonA: -4\n    test 818 Segment.latB: -4.05187\n    test 819 Segment.lonB: -4\n    test 820 Segment.sAB: 5.496e-10  FAILED, KNOWN (5.496e-10), expected 0\n    test 821 Segment.aAB: 4.95367e-15  FAILED, KNOWN (4.95367e-15), expected 0\n\n    test 822 Segment5.A: {a1X: -5.691141, azi1: 44.75191, aziX: 44.893464, k2: -1, lat1: 0.0, latX: -4.051871, lon1: 0.0, lonX: -4.0, s1X: -631414.26877}\n    test 823 Segment5.B: {a1X: 53.943553, azi1: 180.0, aziX: 180.0, k2: 0, lat1: 50.0, latX: -4.051871, lon1: -4.0, lonX: -4.0, s1X: 5988887.278435}\n    test 824 Segment5.sAB: 5.496e-10  FAILED, KNOWN (5.496e-10), expected 0\n    test 825 Segment5.aAB: 4.95367e-15  FAILED, KNOWN (4.95367e-15), expected 0\n    test 826 Segment5.c: 0\n\n    test 827 intersect7s[0].A: 04.051871°S, 004.0°W\n    test 828 intersect7s[0].B: 04.051871°S, 004.0°W\n    test 829 intersect7s[0].sAB: 2.64649e-10  FAILED, KNOWN (1.23535e-09), expected 1.5e-09\n    test 830 intersect7s[0].aAB: 2.38534e-15  FAILED, KNOWN (1.06147e-14), expected 1.3e-14\n    test 831 intersect7s[0].c: 0\n    test 832 intersect7s[0].kA: 0\n    test 833 intersect7s[0].kB: 0\n    test 834 intersect7s[0].iteration: None\n\n    test 835 intersect7s[1].A: 03.623464°N, 176.0°E\n    test 836 intersect7s[1].B: 03.623464°N, 176.0°E\n    test 837 intersect7s[1].sAB: 1.67611e-09  FAILED, KNOWN (3.76108e-10), expected 1.3e-09\n    test 838 intersect7s[1].aAB: 1.51076e-14  FAILED, KNOWN (4.10763e-15), expected 1.1e-14\n    test 839 intersect7s[1].c: 0\n    test 840 intersect7s[1].kA: 0\n    test 841 intersect7s[1].kB: 0\n    test 842 intersect7s[1].iteration: None\n\n    test 843 intersect7s[2].A: 04.051871°S, 004.0°W\n    test 844 intersect7s[2].B: 04.051871°S, 004.0°W\n    test 845 intersect7s[2].sAB: 5.83925e-10  FAILED, KNOWN (1.01607e-09), expected 1.6e-09\n    test 846 intersect7s[2].aAB: 5.26305e-15  FAILED, KNOWN (8.73695e-15), expected 1.4e-14\n    test 847 intersect7s[2].c: 0\n    test 848 intersect7s[2].kA: 0\n    test 849 intersect7s[2].kB: 0\n    test 850 intersect7s[2].iteration: None\n\n    test 851 intersect7s[3].A: 04.4796°N, 176.0°E\n    test 852 intersect7s[3].B: 04.4796°N, 176.0°E\n    test 853 intersect7s[3].sAB: 3.49267e-09  FAILED, KNOWN (9.26688e-11), expected 3.4e-09\n    test 854 intersect7s[3].aAB: 3.14801e-14  FAILED, KNOWN (4.80084e-16), expected 3.1e-14\n    test 855 intersect7s[3].c: 0\n    test 856 intersect7s[3].kA: 0\n    test 857 intersect7s[3].kB: 0\n    test 858 intersect7s[3].iteration: None\n\n    test 859 Sphere.Closest.sA: 6.07719e+06\n    test 860 Sphere.Closest.sB: -3.31802e+06\n    test 861 Sphere.Closest.c: 0\n    test 862 Sphere.Closest.sX0: 9.39521e+06\n    test 863 Sphere.Closest.latA: -2.98706e-15  FAILED, KNOWN (2.98706e-15), expected 1e-15\n    test 864 Sphere.Closest.lonA: -29.8397\n    test 865 Sphere.Closest.latB: -0\n    test 866 Sphere.Closest.lonB: -29.8397\n    test 867 Sphere.Closest.sAB: 8.56921e-10  FAILED, KNOWN (8.56921e-10), expected 0\n    test 868 Sphere.Closest.aAB: 7.70647e-15  FAILED, KNOWN (7.70647e-15), expected 0\n\n    test 869 Sphere.Closest5.A: {a1X: 54.653489, azi1: -147.7, aziX: -159.911264, lat1: 50.0, latX: -0.0, lon1: -4.0, lonX: -29.839663, s1X: 6077190.710199}  FAILED, KNOWN, expected {a1X: 54.653489, azi1: -147.7, aziX: -159.911264, lat1: 50.0, latX: 0.0, lon1: -4.0, lonX: -29.839663, s1X: 6077190.710199}\n    test 870 Sphere.Closest5.B: {a1X: -29.839663, azi1: 90.0, aziX: 90.0, lat1: 0.0, latX: -0.0, lon1: 0.0, lonX: -29.839663, s1X: -3318019.115902}\n    test 871 Sphere.Closest5.sAB: 8.56921e-10  FAILED, KNOWN (8.56921e-10), expected 0\n    test 872 Sphere.Closest5.aAB: 7.70647e-15  FAILED, KNOWN (7.70647e-15), expected 0\n    test 873 Sphere.Closest5.c: 0\n\n    test 874 _Xdict2: 178\n\n    178 of 874 testGeodesici.py tests (20.4%) FAILED, ALL KNOWN (pygeodesy 26.3.26 Python 3.13.12 64bit arm64 coverage 7.10.7 geographiclib 2.1 numpy 2.3.3 scipy 1.16.2 Math 2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 macOS 26.3.1 isLazy 1 -W  default) 12.582 sec\nrunning /Library/Framewo....n3.13 -W default ~/PyGeodesy/test/testGeodesicx.py\n./test/testGeodesicx.py:49: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  gP = E.geodesic\n./test/testGeodesicx.py:143: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  gP = E.geodesic\n\n    testing testGeodesicx.py 25.09.03 (module pygeodesy.geodesicx 25.12.23) isLazy=1\n\n    testDirectX vs ...(pygeodesy.geodesicx, 25.12.23)\n    test 1 C++X.a12: 49.4755274632515\n    test 2 C++X.azi1: 51\n    test 3 C++X.azi2: 107.189397162606\n    test 4 C++X.lat1: 40.6\n    test 5 C++X.lat2: 51.8845645056068\n    test 6 C++X.lon1: -73.8\n    test 7 C++X.lon2: -1.14117286120084  FAILED, KNOWN, expected -1.14117286120083\n    test 8 C++X.m12: 4844148.70310149\n    test 9 C++X.M12: 0.650910566998086\n    test 10 C++X.M21: 0.651228658921966\n    test 11 C++X.s12: 5500000\n    test 12 C++X.S12: 39735075134877.1\n    test 13 iteration: None\n\n    test 14 Python.a12: 49.4755274632515\n    test 15 Python.azi1: 51\n    test 16 Python.azi2: 107.189397162606\n    test 17 Python.lat1: 40.6\n    test 18 Python.lat2: 51.8845645056068\n    test 19 Python.lon1: -73.8\n    test 20 Python.lon2: -1.14117286120084\n    test 21 Python.m12: 4844148.70310149\n    test 22 Python.M12: 0.650910566998086\n    test 23 Python.M21: 0.651228658921966\n    test 24 Python.s12: 5500000\n    test 25 Python.S12: 39735075134877.1\n    test 26 iteration: None\n\n    test 27 GeodSolve.a12: 49.4755274632515\n    test 28 GeodSolve.azi1: 51\n    test 29 GeodSolve.azi2: 107.189397162606\n    test 30 GeodSolve.lat1: 40.6\n    test 31 GeodSolve.lat2: 51.8845645056068\n    test 32 GeodSolve.lon1: -73.8\n    test 33 GeodSolve.lon2: -1.14117286120084\n    test 34 GeodSolve.m12: 4844148.70310149\n    test 35 GeodSolve.M12: 0.650910566998086\n    test 36 GeodSolve.M21: 0.651228658921966\n    test 37 GeodSolve.s12: 5500000\n    test 38 GeodSolve.S12: 39735075134877.1\n    test 39 iteration: None\n\n    test 40 f(-0.7)proLate.a12: 41.284510993253\n    test 41 f(-0.7)proLate.azi1: 51\n    test 42 f(-0.7)proLate.azi2: 122.151604420253\n    test 43 f(-0.7)proLate.lat1: 40.6\n    test 44 f(-0.7)proLate.lat2: 44.0611144929704  FAILED, KNOWN, expected 44.0611144929705\n    test 45 f(-0.7)proLate.lon1: -73.8\n    test 46 f(-0.7)proLate.lon2: 22.642936371381\n    test 47 f(-0.7)proLate.m12: 4556060.22546814\n    test 48 f(-0.7)proLate.M12: 0.5292041366919\n    test 49 f(-0.7)proLate.M21: 0.508852016715467\n    test 50 f(-0.7)proLate.s12: 5500000\n    test 51 f(-0.7)proLate.S12: 92958550148866.4\n\n    test 52 f(-0.6)proLate.a12: 41.9855065431433  FAILED, KNOWN, expected 41.9855065431432\n    test 53 f(-0.6)proLate.azi1: 51\n    test 54 f(-0.6)proLate.azi2: 120.049569615163\n    test 55 f(-0.6)proLate.lat1: 40.6\n    test 56 f(-0.6)proLate.lat2: 45.0761455124556\n    test 57 f(-0.6)proLate.lon1: -73.8\n    test 58 f(-0.6)proLate.lon2: 19.3243907915446  FAILED, KNOWN, expected 19.3243907915445\n    test 59 f(-0.6)proLate.m12: 4607523.91009243\n    test 60 f(-0.6)proLate.M12: 0.553483535239665  FAILED, KNOWN, expected 0.553483535239666\n    test 61 f(-0.6)proLate.M21: 0.531159755627539  FAILED, KNOWN, expected 0.53115975562754\n    test 62 f(-0.6)proLate.s12: 5500000\n    test 63 f(-0.6)proLate.S12: 84342570067148.5  FAILED, KNOWN, expected 84342570067148.4\n\n    test 64 f(-0.5)proLate.a12: 42.7835406714305\n    test 65 f(-0.5)proLate.azi1: 51\n    test 66 f(-0.5)proLate.azi2: 117.89451986943\n    test 67 f(-0.5)proLate.lat1: 40.6\n    test 68 f(-0.5)proLate.lat2: 46.1086918613931\n    test 69 f(-0.5)proLate.lon1: -73.8\n    test 70 f(-0.5)proLate.lon2: 15.9398177760259\n    test 71 f(-0.5)proLate.m12: 4656181.1495523\n    test 72 f(-0.5)proLate.M12: 0.575884086565632\n    test 73 f(-0.5)proLate.M21: 0.553184499769342\n    test 74 f(-0.5)proLate.s12: 5500000\n    test 75 f(-0.5)proLate.S12: 76020929892733.4\n\n    test 76 f(-0.4)proLate.a12: 43.7036853028434\n    test 77 f(-0.4)proLate.azi1: 51\n    test 78 f(-0.4)proLate.azi2: 115.706685237732\n    test 79 f(-0.4)proLate.lat1: 40.6\n    test 80 f(-0.4)proLate.lat2: 47.1623837243428\n    test 81 f(-0.4)proLate.lon1: -73.8\n    test 82 f(-0.4)proLate.lon2: 12.5108734214613\n    test 83 f(-0.4)proLate.m12: 4701617.48531727\n    test 84 f(-0.4)proLate.M12: 0.596186986538198  FAILED, KNOWN, expected 0.596186986538199\n    test 85 f(-0.4)proLate.M21: 0.57467855536679\n    test 86 f(-0.4)proLate.s12: 5500000\n    test 87 f(-0.4)proLate.S12: 68024911861224.7\n\n    test 88 f(-0.3)proLate.a12: 44.778142996055\n    test 89 f(-0.3)proLate.azi1: 51\n    test 90 f(-0.3)proLate.azi2: 113.512221079884\n    test 91 f(-0.3)proLate.lat1: 40.6\n    test 92 f(-0.3)proLate.lat2: 48.2448394088334\n    test 93 f(-0.3)proLate.lon1: -73.8\n    test 94 f(-0.3)proLate.lon2: 9.06439641717145  FAILED, KNOWN, expected 9.06439641717139\n    test 95 f(-0.3)proLate.m12: 4743418.11467172  FAILED, KNOWN, expected 4743418.11467171\n    test 96 f(-0.3)proLate.M12: 0.614141109926638\n    test 97 f(-0.3)proLate.M21: 0.595388570443547  FAILED, KNOWN, expected 0.595388570443548\n    test 98 f(-0.3)proLate.s12: 5500000\n    test 99 f(-0.3)proLate.S12: 60386769588050.2\n\n    test 100 f(-0.2)proLate.a12: 46.0484287767579  FAILED, KNOWN, expected 46.0484287767578\n    test 101 f(-0.2)proLate.azi1: 51\n    test 102 f(-0.2)proLate.azi2: 111.343872400749\n    test 103 f(-0.2)proLate.lat1: 40.6\n    test 104 f(-0.2)proLate.lat2: 49.3693479292292\n    test 105 f(-0.2)proLate.lon1: -73.8\n    test 106 f(-0.2)proLate.lon2: 5.63252938443212  FAILED, KNOWN, expected 5.63252938443208\n    test 107 f(-0.2)proLate.m12: 4781182.84779737  FAILED, KNOWN, expected 4781182.84779736\n    test 108 f(-0.2)proLate.M12: 0.629452843380053\n    test 109 f(-0.2)proLate.M21: 0.615074420205344  FAILED, KNOWN, expected 0.615074420205345\n    test 110 f(-0.2)proLate.s12: 5500000\n    test 111 f(-0.2)proLate.S12: 53138975764711\n\n    test 112 f(-0.1)proLate.a12: 47.5682594059394\n    test 113 f(-0.1)proLate.azi1: 51\n    test 114 f(-0.1)proLate.azi2: 109.241628907367\n    test 115 f(-0.1)proLate.lat1: 40.6\n    test 116 f(-0.1)proLate.lat2: 50.5570087568933\n    test 117 f(-0.1)proLate.lon1: -73.8\n    test 118 f(-0.1)proLate.lon2: 2.25260962354911  FAILED, KNOWN, expected 2.25260962354909\n    test 119 f(-0.1)proLate.m12: 4814553.53489422\n    test 120 f(-0.1)proLate.M12: 0.641772419411799\n    test 121 f(-0.1)proLate.M21: 0.6335390304747\n    test 122 f(-0.1)proLate.s12: 5500000\n    test 123 f(-0.1)proLate.S12: 46313407380218.5\n\n    test 124 f(0.0)sphere.a12: 49.4073406265737  FAILED, KNOWN, expected 49.4073406265736\n    test 125 f(0.0)sphere.azi1: 51\n    test 126 f(0.0)sphere.azi2: 107.253441084194\n    test 127 f(0.0)sphere.lat1: 40.6\n    test 128 f(0.0)sphere.lat2: 51.8394367533853\n    test 129 f(0.0)sphere.lon1: -73.8\n    test 130 f(0.0)sphere.lon2: -1.03317283695992  FAILED, KNOWN, expected -1.03317283695993\n    test 131 f(0.0)sphere.m12: 4843268.16188793\n    test 132 f(0.0)sphere.M12: 0.650676935525673\n    test 133 f(0.0)sphere.M21: 0.650676935525673\n    test 134 f(0.0)sphere.s12: 5500000\n    test 135 f(0.0)sphere.S12: 39940559879050\n\n    test 136 f(0.1)obLate.a12: 51.6562009348442\n    test 137 f(0.1)obLate.azi1: 51\n    test 138 f(0.1)obLate.azi2: 105.436101360918\n    test 139 f(0.1)obLate.lat1: 40.6\n    test 140 f(0.1)obLate.lat2: 53.2621488352775\n    test 141 f(0.1)obLate.lon1: -73.8\n    test 142 f(0.1)obLate.lon2: -4.17831797695514\n    test 143 f(0.1)obLate.m12: 4867271.01535067\n    test 144 f(0.1)obLate.M12: 0.655652471115945\n    test 145 f(0.1)obLate.M21: 0.666556146155552\n    test 146 f(0.1)obLate.s12: 5500000\n    test 147 f(0.1)obLate.S12: 34048882687460.5\n\n    test 148 f(0.2)obLate.a12: 54.4319984205255\n    test 149 f(0.2)obLate.azi1: 51\n    test 150 f(0.2)obLate.azi2: 103.8563593825  FAILED, KNOWN, expected 103.856359382499\n    test 151 f(0.2)obLate.lat1: 40.6\n    test 152 f(0.2)obLate.lat2: 54.8886869301292\n    test 153 f(0.2)obLate.lon1: -73.8\n    test 154 f(0.2)obLate.lon2: -7.13270532079325  FAILED, KNOWN, expected -7.13270532079328\n    test 155 f(0.2)obLate.m12: 4886937.77404685\n    test 156 f(0.2)obLate.M12: 0.65608338247866\n    test 157 f(0.2)obLate.M21: 0.681558941812475\n    test 158 f(0.2)obLate.s12: 5500000\n    test 159 f(0.2)obLate.S12: 28664292324534.6\n\n    test 160 f(0.3)obLate.a12: 57.8845459603905\n    test 161 f(0.3)obLate.azi1: 51\n    test 162 f(0.3)obLate.azi2: 102.592096849744\n    test 163 f(0.3)obLate.lat1: 40.6\n    test 164 f(0.3)obLate.lat2: 56.8052789737725\n    test 165 f(0.3)obLate.lon1: -73.8\n    test 166 f(0.3)obLate.lon2: -9.8433935024507  FAILED, KNOWN, expected -9.84339350245068\n    test 167 f(0.3)obLate.m12: 4903527.26055769\n    test 168 f(0.3)obLate.M12: 0.651269895561088\n    test 169 f(0.3)obLate.M21: 0.696621153271262\n    test 170 f(0.3)obLate.s12: 5500000\n    test 171 f(0.3)obLate.S12: 23809838803598.7\n\n    test 172 f(0.4)obLate.a12: 62.2000535802232\n    test 173 f(0.4)obLate.azi1: 51\n    test 174 f(0.4)obLate.azi2: 101.732620462068\n    test 175 f(0.4)obLate.lat1: 40.6\n    test 176 f(0.4)obLate.lat2: 59.1251996985707\n    test 177 f(0.4)obLate.lon1: -73.8\n    test 178 f(0.4)obLate.lon2: -12.2555967438742\n    test 179 f(0.4)obLate.m12: 4920049.29725335\n    test 180 f(0.4)obLate.M12: 0.640521897686656\n    test 181 f(0.4)obLate.M21: 0.713612775606923\n    test 182 f(0.4)obLate.s12: 5500000\n    test 183 f(0.4)obLate.S12: 19505392269428.9\n\n    test 184 f(0.5)obLate.a12: 67.5961360204058\n    test 185 f(0.5)obLate.azi1: 51\n    test 186 f(0.5)obLate.azi2: 101.375214059512\n    test 187 f(0.5)obLate.lat1: 40.6\n    test 188 f(0.5)obLate.lat2: 61.9908246599488\n    test 189 f(0.5)obLate.lon1: -73.8\n    test 190 f(0.5)obLate.lon2: -14.314173457934\n    test 191 f(0.5)obLate.m12: 4942782.22410672  FAILED, KNOWN, expected 4942782.22410673\n    test 192 f(0.5)obLate.M12: 0.62342153427984\n    test 193 f(0.5)obLate.M21: 0.735840684527278\n    test 194 f(0.5)obLate.s12: 5500000\n    test 195 f(0.5)obLate.S12: 15767156271751.5\n\n    test 196 f(0.6)obLate.a12: 74.293940742003\n    test 197 f(0.6)obLate.azi1: 51\n    test 198 f(0.6)obLate.azi2: 101.611122905479\n    test 199 f(0.6)obLate.lat1: 40.6\n    test 200 f(0.6)obLate.lat2: 65.570125882359\n    test 201 f(0.6)obLate.lon1: -73.8\n    test 202 f(0.6)obLate.lon2: -15.9664855590569\n    test 203 f(0.6)obLate.m12: 4983385.70418856\n    test 204 f(0.6)obLate.M12: 0.600385896682554\n    test 205 f(0.6)obLate.M21: 0.768372005314338\n    test 206 f(0.6)obLate.s12: 5500000\n    test 207 f(0.6)obLate.S12: 12607032773613.6\n\n    test 208 f(0.7)obLate.a12: 82.4416835202881\n    test 209 f(0.7)obLate.azi1: 51\n    test 210 f(0.7)obLate.azi2: 102.488060130252\n    test 211 f(0.7)obLate.lat1: 40.6\n    test 212 f(0.7)obLate.lat2: 70.0446694858328\n    test 213 f(0.7)obLate.lon1: -73.8\n    test 214 f(0.7)obLate.lon2: -17.1682178841074\n    test 215 f(0.7)obLate.m12: 5059996.37065633\n    test 216 f(0.7)obLate.M12: 0.573565786722513\n    test 217 f(0.7)obLate.M21: 0.817099782347416\n    test 218 f(0.7)obLate.s12: 5500000\n    test 219 f(0.7)obLate.S12: 10032955148624.8  FAILED, KNOWN, expected 10032955148494\n\n    test 220 f(0.8)obLate.a12: 91.9549069618777\n    test 221 f(0.8)obLate.azi1: 51\n    test 222 f(0.8)obLate.azi2: 103.932282361181\n    test 223 f(0.8)obLate.lat1: 40.6\n    test 224 f(0.8)obLate.lat2: 75.5867314102627\n    test 225 f(0.8)obLate.lon1: -73.8\n    test 226 f(0.8)obLate.lon2: -17.8943807275634\n    test 227 f(0.8)obLate.m12: 5191227.434783\n    test 228 f(0.8)obLate.M12: 0.547588120961581\n    test 229 f(0.8)obLate.M21: 0.88423165114083\n    test 230 f(0.8)obLate.s12: 5500000\n    test 231 f(0.8)obLate.S12: 8054551454844.58  FAILED, KNOWN, expected 8054551222919.28\n\n    test 232 f(0.9)obLate.a12: 102.246152032153\n    test 233 f(0.9)obLate.azi1: 51\n    test 234 f(0.9)obLate.azi2: 105.618016083621\n    test 235 f(0.9)obLate.lat1: 40.6\n    test 236 f(0.9)obLate.lat2: 82.2999319410311\n    test 237 f(0.9)obLate.lon1: -73.8\n    test 238 f(0.9)obLate.lon2: -18.1607604123894  FAILED, KNOWN, expected -18.1607604123892\n    test 239 f(0.9)obLate.m12: 5370336.10833014\n    test 240 f(0.9)obLate.M12: 0.528679454698809\n    test 241 f(0.9)obLate.M21: 0.958073002020686  FAILED, KNOWN, expected 0.958073002020685\n    test 242 f(0.9)obLate.s12: 5500000\n    test 243 f(0.9)obLate.S12: 6706997024987.37  FAILED, KNOWN, expected 6706617604760.9\n\n    test 244 GeodesicLineExact: name='', lat1=40.6, lon1=-73.8, azi1=51, a13=49.475527, s13=5500000, caps=36747, geodesic=GeodesicExact(name='WGS84', caps=0, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), C4order=30)\n    test 245 GeodesicExact: GeodesicExact(name='WGS84', caps=0, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), C4order=30)\n    test 246 GeodesicLineExact: Direct9Tuple(a12=49.475527, lat2=51.884565, lon2=-1.141173, azi2=107.189397, s12=5500000.0, m12=4844148.703101, M12=0.650911, M21=0.651229, S12=NAN)\n\n    test 247 GeodesicExact: {a12: 49.475527, azi1: 51.0, azi2: 107.189397, lat1: 40.6, lat2: 51.884565, lon1: -73.8, lon2: -1.141173, m12: 4844148.703101, M12: 0.650911, M21: 0.651229, s12: 5500000.0}\n    test 248 GeodesicExact: (49.475527, 51.884565, -1.141173, 107.189397, 5500000.0, 4844148.703101, 0.650911, 0.651229, NAN)\n    test 249 GeodesicExact: {a12: 49.475527, azi2: 107.189397, lat2: 51.884565, lon2: -1.141173, m12: 4844148.703101, M12: 0.650911, M21: 0.651229, s12: 5500000.0, S12: NAN}  FAILED, KNOWN, expected {a12: 49.475527, azi1: 51.0, azi2: 107.189397, lat1: 40.6, lat2: 51.884565, lon1: -73.8, lon2: -1.141173, m12: 4844148.703101, M12: 0.650911, M21: 0.651229, s12: 5500000.0}\n\n    test 250 Geodesic: {a12: 49.475527, azi2: 107.189397, lat2: 51.884565, lon2: -1.141173, m12: NAN, M12: NAN, M21: NAN, s12: 5500000.0, S12: NAN}\n    test 251 Geodesic: (49.475527, 51.884565, -1.141173, 107.189397, 5500000.0, NAN, NAN, NAN, NAN)\n    test 252 Geodesic: {a12: 49.475527, azi2: 107.189397, lat2: 51.884565, lon2: -1.141173, m12: NAN, M12: NAN, M21: NAN, s12: 5500000.0, S12: NAN}\n\n    test 253 GeodesicSolve: {a12: 49.475527, azi1: 51.0, azi2: 107.189397, lat1: 40.6, lat2: 51.884565, lon1: -73.8, lon2: -1.141173, m12: 4844148.703101, M12: 0.650911, M21: 0.651229, s12: 5500000.0, S12: 39735075134877.078125}\n    test 254 GeodesicSolve: (49.475527, 51.884565, -1.141173, 107.189397, 5500000.0, 4844148.703101, 0.650911, 0.651229, 39735075134877.078125)\n    test 255 GeodesicSolve: {a12: 49.475527, azi2: 107.189397, lat2: 51.884565, lon2: -1.141173, m12: 4844148.703101, M12: 0.650911, M21: 0.651229, s12: 5500000.0, S12: 39735075134877.078125}  FAILED, KNOWN, expected {a12: 49.475527, azi1: 51.0, azi2: 107.189397, lat1: 40.6, lat2: 51.884565, lon1: -73.8, lon2: -1.141173, m12: 4844148.703101, M12: 0.650911, M21: 0.651229, s12: 5500000.0, S12: 39735075134877.078125}\n\n    test 256 ArcDirect.a12: 49.8\n    test 257 ArcDirect.azi1: 51\n    test 258 ArcDirect.azi2: 107.582082475406  FAILED, KNOWN, expected 107.5820825\n    test 259 ArcDirect.lat1: 40.6\n    test 260 ArcDirect.lat2: 51.7876866587893  FAILED, KNOWN, expected 51.7876867\n    test 261 ArcDirect.lon1: -73.8\n    test 262 ArcDirect.lon2: -0.641731343091337  FAILED, KNOWN, expected -0.641731\n    test 263 ArcDirect.s12: 5536073.73439267  FAILED, KNOWN, expected 5536073.734393\n    test 264 iteration: None\n\n    test 265 ArcDirectLine: name='', lat1=40.6, lon1=-73.8, azi1=51, a13=49.8, s13=5536073.734393, caps=36747, geodesic=GeodesicExact(name='WGS84', caps=0, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), C4order=30)\n    test 266 iteration: None\n\n    test 267 GeodesicLineExact: name='', lat1=40.6, lon1=-73.8, azi1=51, a13=NAN, s13=NAN, caps=65439, geodesic=GeodesicExact(name='WGS84', caps=0, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), C4order=30)\n    test 268 iteration: None\n\n    testInverseX vs ...(pygeodesy.geodesicx, 25.12.23)\n    test 269 C++X.a12: 49.941310217899\n    test 270 C++X.azi1: 51.1988828455798\n    test 271 C++X.azi2: 107.821776735514\n    test 272 C++X.lat1: 40.6\n    test 273 C++X.lat2: 51.6\n    test 274 C++X.lon1: -73.8\n    test 275 C++X.lon2: -0.5\n    test 276 C++X.m12: 4877684.6027062\n    test 277 C++X.M12: 0.644729692059482\n    test 278 C++X.M21: 0.645045678521344\n    test 279 C++X.s12: 5551759.40031868\n    test 280 C++X.S12: 40041368848742.5\n    test 281 iteration: 3\n\n    test 282 Python.a12: 49.941310217899\n    test 283 Python.azi1: 51.1988828455798\n    test 284 Python.azi2: 107.821776735514\n    test 285 Python.lat1: 40.6\n    test 286 Python.lat2: 51.6\n    test 287 Python.lon1: -73.8\n    test 288 Python.lon2: -0.5\n    test 289 Python.m12: 4877684.6027062\n    test 290 Python.M12: 0.644729692059482\n    test 291 Python.M21: 0.645045678521344\n./test/testGeodesicx.py:284: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  t.testPolygon(geodesicw, E.geodesic, K=True)  # XXX geographiclib 1.49 issue?\n    test 292 Python.s12: 5551759.40031868\n    test 293 Python.S12: 40041368848742.5\n    test 294 iteration: None\n\n    test 295 GeodSolve.a12: 49.941310217899\n    test 296 GeodSolve.azi1: 51.1988828455798\n    test 297 GeodSolve.azi2: 107.821776735514\n    test 298 GeodSolve.lat1: 40.6\n    test 299 GeodSolve.lat2: 51.6\n    test 300 GeodSolve.lon1: -73.8\n    test 301 GeodSolve.lon2: -0.5\n    test 302 GeodSolve.m12: 4877684.6027062\n    test 303 GeodSolve.M12: 0.644729692059482\n    test 304 GeodSolve.M21: 0.645045678521344\n    test 305 GeodSolve.s12: 5551759.40031868\n    test 306 GeodSolve.S12: 40041368848742.5\n    test 307 iteration: None\n\n    test 308 f(-0.7)proLate.a12: 30.8498450229685\n    test 309 f(-0.7)proLate.azi1: 46.8390771777767\n    test 310 f(-0.7)proLate.azi2: 102.364845341617\n    test 311 f(-0.7)proLate.lat1: 40.6\n    test 312 f(-0.7)proLate.lat2: 51.6\n    test 313 f(-0.7)proLate.lon1: -73.8\n    test 314 f(-0.7)proLate.lon2: -0.5\n    test 315 f(-0.7)proLate.m12: 3663075.31071237\n    test 316 f(-0.7)proLate.M12: 0.731807954033609\n    test 317 f(-0.7)proLate.M21: 0.696381877483542\n    test 318 f(-0.7)proLate.s12: 4064374.72733529  FAILED, KNOWN, expected 4064374.7273353\n    test 319 f(-0.7)proLate.S12: 71321909298423.2\n\n    test 320 f(-0.6)proLate.a12: 32.624467259717\n    test 321 f(-0.6)proLate.azi1: 47.2626025379604\n    test 322 f(-0.6)proLate.azi2: 102.867650046856\n    test 323 f(-0.6)proLate.lat1: 40.6\n    test 324 f(-0.6)proLate.lat2: 51.6\n    test 325 f(-0.6)proLate.lon1: -73.8\n    test 326 f(-0.6)proLate.lon2: -0.5\n    test 327 f(-0.6)proLate.m12: 3811547.14779174\n    test 328 f(-0.6)proLate.M12: 0.725390840887561\n    test 329 f(-0.6)proLate.M21: 0.692782702624977\n    test 330 f(-0.6)proLate.s12: 4237106.26798552\n    test 331 f(-0.6)proLate.S12: 67003980896186\n\n    test 332 f(-0.5)proLate.a12: 34.6143539838512\n    test 333 f(-0.5)proLate.azi1: 47.7400036902753\n    test 334 f(-0.5)proLate.azi2: 103.43951372754\n    test 335 f(-0.5)proLate.lat1: 40.6\n    test 336 f(-0.5)proLate.lat2: 51.6\n    test 337 f(-0.5)proLate.lon1: -73.8\n    test 338 f(-0.5)proLate.lon2: -0.5\n    test 339 f(-0.5)proLate.m12: 3968659.90647178\n    test 340 f(-0.5)proLate.M12: 0.717750671080257\n    test 341 f(-0.5)proLate.M21: 0.688437867237199  FAILED, KNOWN, expected 0.688437867237198\n    test 342 f(-0.5)proLate.s12: 4421695.86157285  FAILED, KNOWN, expected 4421695.86157283\n    test 343 f(-0.5)proLate.S12: 62647679908513.7\n\n    test 344 f(-0.4)proLate.a12: 36.8617108475833\n    test 345 f(-0.4)proLate.azi1: 48.2782940313591\n    test 346 f(-0.4)proLate.azi2: 104.091557707465\n    test 347 f(-0.4)proLate.lat1: 40.6\n    test 348 f(-0.4)proLate.lat2: 51.6\n    test 349 f(-0.4)proLate.lon1: -73.8\n    test 350 f(-0.4)proLate.lon2: -0.5\n    test 351 f(-0.4)proLate.m12: 4134433.86723881\n    test 352 f(-0.4)proLate.M12: 0.708569458041405\n    test 353 f(-0.4)proLate.M21: 0.683143770036343\n    test 354 f(-0.4)proLate.s12: 4618861.32295258\n    test 355 f(-0.4)proLate.S12: 58248979819324.2\n\n    test 356 f(-0.3)proLate.a12: 39.420657884794\n    test 357 f(-0.3)proLate.azi1: 48.8846677001672\n    test 358 f(-0.3)proLate.azi2: 104.836563775286\n    test 359 f(-0.3)proLate.lat1: 40.6\n    test 360 f(-0.3)proLate.lat2: 51.6\n    test 361 f(-0.3)proLate.lon1: -73.8\n    test 362 f(-0.3)proLate.lon2: -0.5\n    test 363 f(-0.3)proLate.m12: 4308600.98113564\n    test 364 f(-0.3)proLate.M12: 0.697425644708898\n    test 365 f(-0.3)proLate.M21: 0.676630205430698\n    test 366 f(-0.3)proLate.s12: 4829239.13386067\n    test 367 f(-0.3)proLate.S12: 53804526775605.1\n\n    test 368 f(-0.2)proLate.a12: 42.3616492820545\n    test 369 f(-0.2)proLate.azi1: 49.5658543493026\n    test 370 f(-0.2)proLate.azi2: 105.689010365627\n    test 371 f(-0.2)proLate.lat1: 40.6\n    test 372 f(-0.2)proLate.lat2: 51.6\n    test 373 f(-0.2)proLate.lon1: -73.8\n    test 374 f(-0.2)proLate.lon2: -0.5\n    test 375 f(-0.2)proLate.m12: 4490465.96891757\n    test 376 f(-0.2)proLate.M12: 0.68375529812055\n    test 377 f(-0.2)proLate.M21: 0.668536876326996\n    test 378 f(-0.2)proLate.s12: 5053314.98382881\n    test 379 f(-0.2)proLate.S12: 49312505255330.1\n\n    test 380 f(-0.1)proLate.a12: 45.7778520084076\n    test 381 f(-0.1)proLate.azi1: 50.3269341833279\n    test 382 f(-0.1)proLate.azi2: 106.664955696455\n    test 383 f(-0.1)proLate.lat1: 40.6\n    test 384 f(-0.1)proLate.lat2: 51.6\n    test 385 f(-0.1)proLate.lon1: -73.8\n    test 386 f(-0.1)proLate.lon2: -0.5\n    test 387 f(-0.1)proLate.m12: 4678718.41576326\n    test 388 f(-0.1)proLate.M12: 0.666798996688209\n    test 389 f(-0.1)proLate.M21: 0.658383098263921\n    test 390 f(-0.1)proLate.s12: 5291321.5507197\n    test 391 f(-0.1)proLate.S12: 44774044241120.1\n\n    test 392 f(0.0)sphere.a12: 49.7943971585704\n    test 393 f(0.0)sphere.azi1: 51.1692726724686\n    test 394 f(0.0)sphere.azi2: 107.781686005324\n    test 395 f(0.0)sphere.lat1: 40.6\n    test 396 f(0.0)sphere.lat2: 51.6\n    test 397 f(0.0)sphere.lon1: -73.8\n    test 398 f(0.0)sphere.lon2: -0.5\n    test 399 f(0.0)sphere.m12: 4871193.11191523\n    test 400 f(0.0)sphere.M12: 0.645532374747016\n    test 401 f(0.0)sphere.M21: 0.645532374747016\n    test 402 f(0.0)sphere.s12: 5543086.93605008\n    test 403 f(0.0)sphere.S12: 40195434111030.4\n\n    test 404 f(0.1)obLate.a12: 54.5817311860469\n    test 405 f(0.1)obLate.azi1: 52.0870591681387\n    test 406 f(0.1)obLate.azi2: 109.057061572538\n    test 407 f(0.1)obLate.lat1: 40.6\n    test 408 f(0.1)obLate.lat2: 51.6\n    test 409 f(0.1)obLate.lon1: -73.8\n    test 410 f(0.1)obLate.lon2: -0.5\n    test 411 f(0.1)obLate.m12: 5064606.53235912\n    test 412 f(0.1)obLate.M12: 0.618585517999412\n    test 413 f(0.1)obLate.M21: 0.629161725809446\n    test 414 f(0.1)obLate.s12: 5807806.81178111\n    test 415 f(0.1)obLate.S12: 35591517394916.9\n\n    test 416 f(0.2)obLate.a12: 60.3743912113748\n    test 417 f(0.2)obLate.azi1: 53.0617122520881\n    test 418 f(0.2)obLate.azi2: 110.508586502508\n    test 419 f(0.2)obLate.lat1: 40.6\n    test 420 f(0.2)obLate.lat2: 51.6\n    test 421 f(0.2)obLate.lon1: -73.8\n    test 422 f(0.2)obLate.lon2: -0.5\n    test 423 f(0.2)obLate.m12: 5254398.40150138  FAILED, KNOWN, expected 5254398.40150139\n    test 424 f(0.2)obLate.M12: 0.58418152964186\n    test 425 f(0.2)obLate.M21: 0.608269542318507\n    test 426 f(0.2)obLate.s12: 6083696.88909232\n    test 427 f(0.2)obLate.S12: 30990690116402.8\n\n    test 428 f(0.3)obLate.a12: 67.495457095946\n    test 429 f(0.3)obLate.azi1: 54.0532224017487\n    test 430 f(0.3)obLate.azi2: 112.152465760492\n    test 431 f(0.3)obLate.lat1: 40.6\n    test 432 f(0.3)obLate.lat2: 51.6\n    test 433 f(0.3)obLate.lon1: -73.8\n    test 434 f(0.3)obLate.lon2: -0.5\n    test 435 f(0.3)obLate.m12: 5435105.88682598\n    test 436 f(0.3)obLate.M12: 0.540200055593844\n    test 437 f(0.3)obLate.M21: 0.58182050999746\n    test 438 f(0.3)obLate.s12: 6367459.71879627\n    test 439 f(0.3)obLate.S12: 26441913266022.4\n\n    test 440 f(0.4)obLate.a12: 76.3815180684531\n    test 441 f(0.4)obLate.azi1: 54.9876967652191\n    test 442 f(0.4)obLate.azi2: 114.003234978639\n    test 443 f(0.4)obLate.lat1: 40.6\n    test 444 f(0.4)obLate.lat2: 51.6\n    test 445 f(0.4)obLate.lon1: -73.8\n    test 446 f(0.4)obLate.lon2: -0.5\n    test 447 f(0.4)obLate.m12: 5602495.83037188\n    test 448 f(0.4)obLate.M12: 0.484674381110201\n    test 449 f(0.4)obLate.M21: 0.549286273467489\n    test 450 f(0.4)obLate.s12: 6653478.68267745\n    test 451 f(0.4)obLate.S12: 22023748427134.9\n\n    test 452 f(0.5)obLate.a12: 87.5840623039456  FAILED, KNOWN, expected 87.5840623039457\n    test 453 f(0.5)obLate.azi1: 55.7424301998074  FAILED, KNOWN, expected 55.7424301998073\n    test 454 f(0.5)obLate.azi2: 116.074074324746\n    test 455 f(0.5)obLate.lat1: 40.6\n    test 456 f(0.5)obLate.lat2: 51.6\n    test 457 f(0.5)obLate.lon1: -73.8\n    test 458 f(0.5)obLate.lon2: -0.5\n    test 459 f(0.5)obLate.m12: 5760420.96055483  FAILED, KNOWN, expected 5760420.96055484\n    test 460 f(0.5)obLate.M12: 0.417476669533174\n    test 461 f(0.5)obLate.M21: 0.512154548261849\n    test 462 f(0.5)obLate.s12: 6932661.04065593\n    test 463 f(0.5)obLate.S12: 17854087370054.8\n\n    test 464 f(0.6)obLate.a12: 101.672789393317\n    test 465 f(0.6)obLate.azi1: 56.1390154131257\n    test 466 f(0.6)obLate.azi2: 118.372753418033\n    test 467 f(0.6)obLate.lat1: 40.6\n    test 468 f(0.6)obLate.lat2: 51.6\n    test 469 f(0.6)obLate.lon1: -73.8\n    test 470 f(0.6)obLate.lon2: -0.5\n    test 471 f(0.6)obLate.m12: 5936976.93923961  FAILED, KNOWN, expected 5936976.9392396\n    test 472 f(0.6)obLate.M12: 0.344399833962436\n    test 473 f(0.6)obLate.M21: 0.477141269812572\n    test 474 f(0.6)obLate.s12: 7190974.04293755\n    test 475 f(0.6)obLate.S12: 14095435741511.4\n\n    test 476 f(0.7)obLate.a12: 118.899974433249\n    test 477 f(0.7)obLate.azi1: 55.9822604941527\n    test 478 f(0.7)obLate.azi2: 120.870267694794\n    test 479 f(0.7)obLate.lat1: 40.6\n    test 480 f(0.7)obLate.lat2: 51.6\n    test 481 f(0.7)obLate.lon1: -73.8\n    test 482 f(0.7)obLate.lon2: -0.5\n    test 483 f(0.7)obLate.m12: 6204736.82362484\n    test 484 f(0.7)obLate.M12: 0.282767834544914\n    test 485 f(0.7)obLate.M21: 0.459629432484044\n    test 486 f(0.7)obLate.s12: 7408209.3953438\n    test 487 f(0.7)obLate.S12: 10942220257436.1  FAILED, KNOWN, expected 10942220257394\n\n    test 488 f(0.8)obLate.a12: 138.654874707967\n    test 489 f(0.8)obLate.azi1: 55.2084184735526\n    test 490 f(0.8)obLate.azi2: 123.405114674792\n    test 491 f(0.8)obLate.lat1: 40.6\n    test 492 f(0.8)obLate.lat2: 51.6\n    test 493 f(0.8)obLate.lon1: -73.8\n    test 494 f(0.8)obLate.lon2: -0.5\n    test 495 f(0.8)obLate.m12: 6652110.16869957\n    test 496 f(0.8)obLate.M12: 0.257661231584227  FAILED, KNOWN, expected 0.257661231584228\n    test 497 f(0.8)obLate.M21: 0.47762576985866  FAILED, KNOWN, expected 0.477625769858661\n    test 498 f(0.8)obLate.s12: 7559119.64995391\n    test 499 f(0.8)obLate.S12: 8571969475833.53  FAILED, KNOWN, expected 8571969367509.22\n\n    test 500 f(0.9)obLate.a12: 159.448156899958\n    test 501 f(0.9)obLate.azi1: 54.0916012255364\n    test 502 f(0.9)obLate.azi2: 125.571065515772\n    test 503 f(0.9)obLate.lat1: 40.6\n    test 504 f(0.9)obLate.lat2: 51.6\n    test 505 f(0.9)obLate.lon1: -73.8\n    test 506 f(0.9)obLate.lon2: -0.5\n    test 507 f(0.9)obLate.m12: 7235195.22082336  FAILED, KNOWN, expected 7235195.22082337\n    test 508 f(0.9)obLate.M12: 0.275665516678923\n    test 509 f(0.9)obLate.M21: 0.527869883058878\n    test 510 f(0.9)obLate.s12: 7622715.60282402\n    test 511 f(0.9)obLate.S12: 7084875642239.07  FAILED, KNOWN, expected 7084594959626\n\n    test 512 GeodesicLineExact: GeodesicLineExact(name='', lat1=40.6, lon1=-73.8, azi1=51.198883, a13=49.94131, s13=5551759.400319, caps=36747, geodesic=GeodesicExact(name='WGS84', caps=0, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), C4order=30))\n    test 513 GeodesicExact: name='WGS84', caps=0, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), C4order=30\n    test 514 GeodesicLineExact: Direct9Tuple(a12=49.94131, lat2=51.6, lon2=-0.5, azi2=107.821777, s12=5551759.400319, m12=4877684.602706, M12=0.64473, M21=0.645046, S12=NAN)\n\n    test 515 GeodesicExact: GDict(a12=49.94131, azi1=51.198883, azi2=107.821777, lat1=40.6, lat2=51.6, lon1=-73.8, lon2=-0.5, m12=4877684.602706, M12=0.64473, M21=0.645046, s12=5551759.400319)\n    test 516 GeodesicExact: Inverse10Tuple(a12=49.94131, s12=5551759.400319, salp1=NAN, calp1=NAN, salp2=NAN, calp2=NAN, m12=4877684.602706, M12=0.64473, M21=0.645046, S12=NAN)\n    test 517 GeodesicExact: {a12: 49.94131, azi1: NAN, azi2: NAN, calp1: NAN, calp2: NAN, m12: 4877684.602706, M12: 0.64473, M21: 0.645046, s12: 5551759.400319, S12: NAN, salp1: NAN, salp2: NAN}  FAILED, KNOWN, expected {a12: 49.94131, azi1: 51.198883, azi2: 107.821777, lat1: 40.6, lat2: 51.6, lon1: -73.8, lon2: -0.5, m12: 4877684.602706, M12: 0.64473, M21: 0.645046, s12: 5551759.400319}\n\n    test 518 Geodesic: GDict(a12=49.94131, azi1=51.198883, azi2=107.821777, calp1=0.626619, calp2=-0.306057, lon1=-73.8, lon2=-0.5, m12=NAN, M12=NAN, M21=NAN, s12=5551759.400319, S12=NAN, salp1=0.779326, salp2=0.952013)\n    test 519 Geodesic: Inverse10Tuple(a12=49.94131, s12=5551759.400319, salp1=0.779326, calp1=0.626619, salp2=0.952013, calp2=-0.306057, m12=NAN, M12=NAN, M21=NAN, S12=NAN)\n    test 520 Geodesic: {a12: 49.94131, azi1: 51.198883, azi2: 107.821777, calp1: 0.626619, calp2: -0.306057, m12: NAN, M12: NAN, M21: NAN, s12: 5551759.400319, S12: NAN, salp1: 0.779326, salp2: 0.952013}  FAILED, KNOWN, expected {a12: 49.94131, azi1: 51.198883, azi2: 107.821777, calp1: 0.626619, calp2: -0.306057, lon1: -73.8, lon2: -0.5, m12: NAN, M12: NAN, M21: NAN, s12: 5551759.400319, S12: NAN, salp1: 0.779326, salp2: 0.952013}\n\n    test 521 GeodesicSolve: GDict(a12=49.94131, azi1=51.198883, azi2=107.821777, lat1=40.6, lat2=51.6, lon1=-73.8, lon2=-0.5, m12=4877684.602706, M12=0.64473, M21=0.645046, s12=5551759.400319, S12=40041368848742.53125)\n    test 522 GeodesicSolve: Inverse10Tuple(a12=49.94131, s12=5551759.400319, salp1=NAN, calp1=NAN, salp2=NAN, calp2=NAN, m12=4877684.602706, M12=0.64473, M21=0.645046, S12=40041368848742.53125)\n    test 523 GeodesicSolve: {a12: 49.94131, azi1: NAN, azi2: NAN, calp1: NAN, calp2: NAN, m12: 4877684.602706, M12: 0.64473, M21: 0.645046, s12: 5551759.400319, S12: 40041368848742.53125, salp1: NAN, salp2: NAN}  FAILED, KNOWN, expected {a12: 49.94131, azi1: 51.198883, azi2: 107.821777, lat1: 40.6, lat2: 51.6, lon1: -73.8, lon2: -0.5, m12: 4877684.602706, M12: 0.64473, M21: 0.645046, s12: 5551759.400319, S12: 40041368848742.53125}\n\n    test 524 Inverse: {a12: 49.647855, azi1: 51.139649, azi2: 107.74164, lat1: 40.6, lat2: 51.6, lon1: -73.8, lon2: -0.5, m12: 4848370.615026, M12: 0.646331, M21: 0.646017, s12: 5515844.227497}\n    test 525 Inverse1: 49.647854761166144\n\n    testPolygon24(pygeodesy.geodesicx, 25.12.23)\n    test 526 Compute: (1, 0, 0)\n    test 527 AddEdges: (4, 4000, 1000000)\n    test 528 TestEdge: (5, 4000, 1000000)\n    test 529 Clear: 0\n    test 530 TestPoint: (1, 0, 0)\n    test 531 AddPoints: (4, 29506941, 65690027591346)\n    test 532 TestPoint: (5, 29506941, 65690027591346)\n    test 533 toStr: area=65690027591345.671875, geodesic=GeodesicExact(name='WGS84', caps=0, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), C4order=24), num=4, perimeter=29506941.155178, polyline=False\n\n    testPolygon27(pygeodesy.geodesicx, 25.12.23)\n    test 534 Compute: (1, 0, 0)\n    test 535 AddEdges: (4, 4000, 1000000)\n    test 536 TestEdge: (5, 4000, 1000000)\n    test 537 Clear: 0\n    test 538 TestPoint: (1, 0, 0)\n    test 539 AddPoints: (4, 29506941, 65690027591346)\n    test 540 TestPoint: (5, 29506941, 65690027591346)\n    test 541 toStr: area=65690027591345.671875, geodesic=GeodesicExact(name='WGS84', caps=0, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), C4order=27), num=4, perimeter=29506941.155178, polyline=False\n\n    testPolygon30(pygeodesy.geodesicx, 25.12.23)\n    test 542 Compute: (1, 0, 0)\n    test 543 AddEdges: (4, 4000, 1000000)\n    test 544 TestEdge: (5, 4000, 1000000)\n    test 545 Clear: 0\n    test 546 TestPoint: (1, 0, 0)\n    test 547 AddPoints: (4, 29506941, 65690027591346)\n    test 548 TestPoint: (5, 29506941, 65690027591346)\n    test 549 toStr: area=65690027591345.671875, geodesic=GeodesicExact(name='WGS84', caps=0, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), C4order=30), num=4, perimeter=29506941.155178, polyline=False\n\n    testPolygon(pygeodesy.geodsolve, 25.12.31)\n    test 550 Compute: (1, 0, 0)\n    test 551 AddEdges: (4, 4000, 1000000)\n    test 552 TestEdge: (5, 4000, 1000000)\n    test 553 Clear: 0\n    test 554 TestPoint: (1, 0, 0)\n    test 555 AddPoints: (4, 29506941, 65690027591346)\n    test 556 TestPoint: (5, 29506941, 65690027591346)\n    test 557 toStr: area=65690027591345.664062, geodesic=GeodesicSolve(ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), GeodSolve='/opt/local/bin/GeodSolve', invokation=13, status=0), num=4, perimeter=29506941.155178, polyline=False\n\n    testPolygon(pygeodesy.geodesicw, 25.05.28)\n    test 558 Compute: (1, 0, 0)\n    test 559 AddEdges: (4, 4000, 1000000)\n    test 560 TestEdge: (5, 4000, 1000000)\n    test 561 Clear: None  FAILED, KNOWN, expected 0\n    test 562 TestPoint: (1, 0, 0)\n    test 563 AddPoints: (4, 29506941, 65690027591346)\n    test 564 TestPoint: (5, 29506941, 65690027591346)\n\n    testPlumbTo ...(pygeodesy.geodesicx, 25.12.23)\n    test 565 lat2: 51.846089\n    test 566 lon2: 5.260428\n    test 567 s12: 24784.288415\n    test 568 at: -270.000000\n    test 569 iteration: 6\n\n    test 570 lat2: 54.928531\n    test 571 lon2: -21.937291\n    test 572 s12: 3928788.572003\n    test 573 at: 270.000000\n    test 574 iteration: 27\n\n    test 575 lat2: 37.976203  FAILED, KNOWN, expected 37.976217\n    test 576 lon2: 18.344790  FAILED, KNOWN, expected 18.344820\n    test 577 s12: 1012793.617854  FAILED, KNOWN, expected 1012790.599291\n    test 578 at: 270.005476  FAILED, KNOWN, expected 270.005437\n    test 579 iteration: 128\n\n    58 of 579 testGeodesicx.py tests (10.0%) FAILED, incl. 55 KNOWN plus 3 DeprecationWarnings (pygeodesy 26.3.26 Python 3.13.12 64bit arm64 coverage 7.10.7 geographiclib 2.1 numpy 2.3.3 scipy 1.16.2 Math 2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 macOS 26.3.1 isLazy 1 -W  default) 27.535 sec\nrunning /Library/Framewo....n3.13 -W default ~/PyGeodesy/test/testGeohash.py\n./test/testGeohash.py:38: DeprecationWarning: function L{decode_error<pygeodesy.geohash.decode_error>} has been DEPRECATED on 2024.07.28, use L{geohash.decode_error2}.\n  self.test('decode_error',  fstr(geohash.decode_error( g), fmt='%.*e'), '2.145767e-05, 2.145767e-05')  # DEPRECATED\n./test/testGeohash.py:45: DeprecationWarning: property_RO L{sizes<pygeodesy.geohash.Geohash.sizes>} has been DEPRECATED on 2024.07.28, use property C{Geohash.sizes3}.\n  self.test('sizes', fstr(g.sizes, prec=1), '4.8, 4.8')\n./test/testGeohash.py:87: DeprecationWarning: function L{decode_error<pygeodesy.geohash.decode_error>} has been DEPRECATED on 2024.07.28, use L{geohash.decode_error2}.\n  self.test('decode_error',  fstr(geohash.decode_error( 'u120fxw'), fmt='%.*e'), '6.866455e-04, 6.866455e-04')  # DEPRECATED\n./test/testGeohash.py:94: DeprecationWarning: function L{sizes<pygeodesy.geohash.sizes>} has been DEPRECATED on 2024.07.28, use function L{pygeodesy.geohash.sizes3}.\n  self.test('sizes',  fstr(geohash.sizes( 'u120fxw'), prec=1), '153.0, 153.0')  # DEPRECATED\n./test/testGeohash.py:102: DeprecationWarning: function L{sizes<pygeodesy.geohash.sizes>} has been DEPRECATED on 2024.07.28, use function L{pygeodesy.geohash.sizes3}.\n  self.test('sizes',  fstr(geohash.sizes( g), prec=1), '610.0, 1220.0')  # DEPRECATED\n\n    testing testGeohash.py 24.08.01 (module pygeodesy.geohash 25.09.16) isLazy=1\n    test 1 Geohash: geek\n    test 2 Geohash: geek\n    test 3 Geohash: 'geek'\n    test 4 Geohash: Geohash('geek')\n    test 5 Geohash: geek\n    test 6 bounds: (LatLon(65°23′26.25″N, 017°55′46.88″W), LatLon(65°33′59.06″N, 017°34′41.25″W))\n    test 7 toLatLon: 65.478516°N, 017.753906°W\n    test 8 latlon: 65.4785156, -17.7539062\n    test 9 philam: 1.1428157, -0.3098641\n    test 10 copy(<class 'type'>): (<class 'pygeodesy.geohash.Geohash'>, True)\n    test 11 Geohash.copy(): (<class 'pygeodesy.geohash.Geohash'>, True)\n    test 12 Geohash: geehpbpbp\n    test 13 toLatLon: 65.390625°N, 017.929689°W\n    test 14 latlon: 65.390625, -17.929689\n    test 15 ab: 1.1412817, -0.3129321\n    test 16 decode: ('65.390646', '-17.929709')\n    test 17 decode2: (65.390646, -17.929709)\n    test 18 decode_error: 2.145767e-05, 2.145767e-05\n    test 19 decode_error2: 2.145767e-05, 2.145767e-05\n    test 20 distance1To: 2758.887\n    test 21 distance2To: 682.760\n    test 22 distance3To: 410.732\n    test 23 distance4To: 397.404\n    test 24 distance5To: 397.404\n    test 25 sizes: 4.8, 4.8\n    test 26 copy(<class 'type'>): (<class 'pygeodesy.geohash.Geohash'>, True)\n    test 27 Geohash.copy(): (<class 'pygeodesy.geohash.Geohash'>, True)\n    test 28 N: geehpbpbr\n    test 29 NE: geek00002\n    test 30 E: geek00000\n    test 31 SE: gee7bpbpb\n    test 32 S: gee5zzzzz\n    test 33 SW: gee5zzzzy\n    test 34 W: geehpbpbn\n    test 35 NW: geehpbpbq\n    test 36 N: geehpbpbr\n    test 37 NE: geek00002\n    test 38 E: geek00000\n    test 39 SE: gee7bpbpb\n    test 40 S: gee5zzzzz\n    test 41 SW: gee5zzzzy\n    test 42 W: geehpbpbn\n    test 43 NW: geehpbpbq\n    test 44 N: geehpbpbr\n    test 45 NE: geek00002\n    test 46 E: geek00000\n    test 47 SE: gee7bpbpb\n    test 48 S: gee5zzzzz\n    test 49 SW: gee5zzzzy\n    test 50 W: geehpbpbn\n    test 51 NW: geehpbpbq\n    test 52 N: geehpbpbr\n    test 53 NE: geek00002\n    test 54 E: geek00000\n    test 55 SE: gee7bpbpb\n    test 56 S: gee5zzzzz\n    test 57 SW: gee5zzzzy\n    test 58 W: geehpbpbn\n    test 59 NW: geehpbpbq\n\n    test 60 bounds: 52.20428467, 0.11810303, 52.20565796, 0.11947632\n    test 61 decode: 52.205, 0.1188\n    test 62 encode-decode: u120fxw\n    test 63 encode-decode: geek\n    test 64 encode-decode: fur\n    test 65 encode-decode: geehpbpbp\n    test 66 encode-decode: u4pruydqqvj8\n    test 67 encode-decode: bgr96qxvpd46\n    test 68 encode-decode: 0123456789\n    test 69 encode-decode: zzzzzz\n    test 70 Geohash: u4pruydq\n    test 71 N.E.S.W: True\n    test 72 E.S.W.N: True\n    test 73 S.W.N.E: True\n    test 74 W.N.E.S: True\n    test 75 N.E.S.S.W.W.N.N.E.S: True\n    test 76 Geohash: u4pruydqq\n    test 77 N.E.S.W: True\n    test 78 E.S.W.N: True\n    test 79 S.W.N.E: True\n    test 80 W.N.E.S: True\n    test 81 N.E.S.S.W.W.N.N.E.S: True\n    test 82 Geohash: u4pruydqqv\n    test 83 N.E.S.W: True\n    test 84 E.S.W.N: True\n    test 85 S.W.N.E: True\n    test 86 W.N.E.S: True\n    test 87 N.E.S.S.W.W.N.N.E.S: True\n    test 88 Geohash: u4pruydqqvj\n    test 89 N.E.S.W: True\n    test 90 E.S.W.N: True\n    test 91 S.W.N.E: True\n    test 92 W.N.E.S: True\n    test 93 N.E.S.S.W.W.N.N.E.S: True\n    test 94 Geohash: u4pruydqqvj8\n    test 95 N.E.S.W: True\n    test 96 E.S.W.N: True\n    test 97 S.W.N.E: True\n    test 98 W.N.E.S: True\n    test 99 N.E.S.S.W.W.N.N.E.S: True\n\n    test 100 encode: u120fxw\n    test 101 decode: ('52.205', '0.1188')\n    test 102 decode2: (52.205, 0.1188)\n    test 103 decode_error: 6.866455e-04, 6.866455e-04\n    test 104 decode_error2: 6.866455e-04, 6.866455e-04\n    test 105 distance_: 486.710\n    test 106 distance2: 3.374\n    test 107 distance3: 2.992\n    test 108 distance4: 2.798\n    test 109 distance5: 2.798\n    test 110 sizes: 153.0, 153.0\n    test 111 sizes3: 153.0, 153.0, 86.3\n\n    test 112 Geohash: u336xv\n    test 113 encode: u336xv\n    test 114 equal: True\n    test 115 sizes: 610.0, 1220.0\n    test 116 sizes3: 610.0, 1220.0, 486.7\n    test 117 encode: fur\n    test 118 decode: ('69.6', '-45.7')\n    test 119 decode: ('70.3', '-51')\n    test 120 decode: ('68', '-68')\n    test 121 decode_error2: (0.703125, 0.703125)\n    test 122 decode_error2: (2.8125, 5.625)\n    test 123 decode_error2: (22.5, 22.5)\n    test 124 encode: ezs42e44yx96\n    test 125 decode: ('42.60000003', '-5.59999997')\n    test 126 encode: ezs42\n    test 127 decode: ('42.605', '-5.603')\n    test 128 distance1: 503442.4\n    test 129 distance2: 303317.6\n    test 130 distance3: 185425.4\n    test 131 distance4: 179940.1\n    test 132 distance5: 179940.1\n\n    test 133 precision: 0  FAILED, KNOWN, expected 1\n    test 134 resolution: 360.0, 180.0\n    test 135 inferred: w\n    test 136 precision: 1\n    test 137 resolution: 45.0, 45.0\n    test 138 inferred: wp\n    test 139 precision: 2\n    test 140 resolution: 11.25, 5.625\n    test 141 inferred: wpy\n    test 142 precision: 3\n    test 143 resolution: 1.4062, 1.4062\n    test 144 inferred: wpy6\n    test 145 precision: 4\n    test 146 resolution: 0.35156, 0.17578\n    test 147 inferred: wpy6kc\n    test 148 precision: 5\n    test 149 resolution: 0.043945, 0.043945\n    test 150 inferred: wpy6kcc\n    test 151 precision: 6\n    test 152 resolution: 0.0109863, 0.0054932\n    test 153 inferred: wpy6kccw\n    test 154 precision: 7\n    test 155 resolution: 0.00137329, 0.00137329\n    test 156 inferred: wpy6kccwe4\n    test 157 precision: 8\n    test 158 resolution: 0.000343323, 0.000171661\n    test 159 inferred: wpy6kccwe4q\n    test 160 precision: 9\n    test 161 resolution: 0.0000429153, 0.0000429153\n    test 162 inferred: wpy6kccwe4qr\n    test 163 precision: 10\n    test 164 resolution: 0.00001072884, 0.00000536442\n    test 165 inferred: wpy6kccwe4qr\n    test 166 precision: 11\n    test 167 resolution: 0.000001341105, 0.000001341105\n    test 168 inferred: wpy6kccwe4qr\n    test 169 precision: 12\n    test 170 resolution: 0.0000003352761, 0.0000001676381\n    test 171 inferred: wpy6kccwe4qr\n    test 172 precision: 13  FAILED, KNOWN, expected 12\n    test 173 resolution: 0.00000033527613, 0.00000016763806\n    test 174 inferred: wpy6kccwe4qr\n\n    test 175 precision: 12\n    test 176 ndigits: None\n    test 177 encoded: tuvz4p141zc1\n    test 178 encoded: tuvz4p141zc1\n    test 179 encoded: True\n    test 180 encoded: tuvz4p141zc1\n    test 181 encoded: True\n    test 182 decoded: (27.988056, 86.925278)\n    test 183 decoded: (27.988056, 86.925278)\n    test 184 decoded: True\n    test 185 len: 1\n    test 186 len2: (1, 1)\n\n    test 187 precision: 12\n    test 188 ndigits: 12\n    test 189 encoded: tuvz4p141zc1\n    test 190 encoded: tuvz4p141zc1\n    test 191 encoded: True\n    test 192 encoded: tuvz4p141zc1\n    test 193 encoded: True\n    test 194 decoded: (27.988056, 86.925278)\n    test 195 decoded: (27.988056, 86.925278)\n    test 196 decoded: True\n    test 197 len: 1\n    test 198 len2: (1, 1)\n\n    7 of 198 testGeohash.py tests (3.5%) FAILED, incl. 2 KNOWN plus 5 DeprecationWarnings (pygeodesy 26.3.26 Python 3.13.12 64bit arm64 coverage 7.10.7 geographiclib 2.1 numpy 2.3.3 scipy 1.16.2 Math 2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 macOS 26.3.1 isLazy 1 -W  default) 8.805 ms\nrunning /Library/Framewo....n3.13 -W default ~/PyGeodesy/test/testGeoids.py\n\n    testing testGeoids.py 26.01.21 isLazy=1\n    test 1 GeoidKarney('egm96-5.pgm').height(-76.981, 34.17) kind 2: 11.422  FAILED, KNOWN, expected 11.423\n    test 2 GeoidKarney('egm96-5.pgm').height(79.695, 88.806) kind 2: 0.887  FAILED, KNOWN, expected 0.892\n    test 3 GeoidKarney('egm96-5.pgm').height(-15.245, 168.748) kind 2: 65.226\n    test 4 GeoidKarney('egm96-5.pgm').height(-19.379, 15.855) kind 2: 24.460  FAILED, KNOWN, expected 24.463\n    test 5 GeoidKarney('egm96-5.pgm').height(43.378, -130.552) kind 2: -29.682\n    test 6 GeoidKarney('egm96-5.pgm').height(-16.075, 21.795) kind 2: 10.503\n    test 7 GeoidKarney('egm96-5.pgm').height(-11.256, -73.75) kind 2: 29.325  FAILED, KNOWN, expected 29.326\n    test 8 GeoidKarney('egm96-5.pgm').height(69.017, -15.921) kind 2: 60.423  FAILED, KNOWN, expected 60.424\n    test 9 GeoidKarney('egm96-5.pgm').height(2.221, 139.739) kind 2: 68.997  FAILED, KNOWN, expected 68.996\n    test 10 GeoidKarney('egm96-5.pgm').height(-9.097, 119.142) kind 2: 36.295  FAILED, KNOWN, expected 36.287\n    test 11 GeoidKarney('egm96-5.pgm').height(-28.524, -22.192) kind 2: 6.627  FAILED, KNOWN, expected 6.626\n    test 12 GeoidKarney('egm96-5.pgm').height(12.272, -136.424) kind 2: -20.860\n    test 13 GeoidKarney('egm96-5.pgm').height(-15.203, -85.604) kind 2: -3.266  FAILED, KNOWN, expected -3.267\n    test 14 GeoidKarney('egm96-5.pgm').height(-63.736, -77.17) kind 2: -1.296  FAILED, KNOWN, expected -1.294\n    test 15 GeoidKarney('egm96-5.pgm').height(-48.771, -90.102) kind 2: -2.322\n    test 16 GeoidKarney('egm96-5.pgm').height(-0.179, -126.368) kind 2: -17.556  FAILED, KNOWN, expected -17.557\n    test 17 GeoidKarney('egm96-5.pgm').height(1.586, -128.887) kind 2: -16.594\n    test 18 GeoidKarney('egm96-5.pgm').height(-48.781, -2.684) kind 2: 24.455  FAILED, KNOWN, expected 24.453\n    test 19 GeoidKarney('egm96-5.pgm').height(-49.092, 136.862) kind 2: -18.591  FAILED, KNOWN, expected -18.592\n    test 20 GeoidKarney('egm96-5.pgm').height(47.732, 17.552) kind 2: 44.051  FAILED, KNOWN, expected 44.049\n    test 21 GeoidKarney('egm96-5.pgm').height(-49.11, 85.706) kind 2: 18.582  FAILED, KNOWN, expected 18.581\n    test 22 GeoidKarney('egm96-5.pgm').height(-49.162, 40.321) kind 2: 44.290  FAILED, KNOWN, expected 44.289\n    test 23 GeoidKarney('egm96-5.pgm').height(3.498, 158.118) kind 2: 49.821  FAILED, KNOWN, expected 49.816\n    test 24 GeoidKarney('egm96-5.pgm').height(-35.616, 122.648) kind 2: -36.108  FAILED, KNOWN, expected -36.114\n    test 25 GeoidKarney('egm96-5.pgm').height(56.598, -96.114) kind 2: -41.046  FAILED, KNOWN, expected -41.048\n    test 26 GeoidKarney('egm96-5.pgm').height(-31.85, 149.121) kind 2: 26.457  FAILED, KNOWN, expected 26.456\n    test 27 GeoidKarney('egm96-5.pgm').height(-26.569, -177.792) kind 2: 49.309  FAILED, KNOWN, expected 49.317\n    test 28 GeoidKarney('egm96-5.pgm').height(76.735, -65.753) kind 2: 20.706  FAILED, KNOWN, expected 20.714\n    test 29 GeoidKarney('egm96-5.pgm').height(-21.404, -122.268) kind 2: -7.363  FAILED, KNOWN, expected -7.362\n    test 30 GeoidKarney('egm96-5.pgm').height(-77.133, -65.474) kind 2: -16.499  FAILED, KNOWN, expected -16.492\n    test 31 GeoidKarney('egm96-5.pgm').height(-58.812, 2.276) kind 2: 18.108  FAILED, KNOWN, expected 18.110\n    test 32 GeoidKarney('egm96-5.pgm').height(4.415, 155.683) kind 2: 51.859  FAILED, KNOWN, expected 51.858\n    test 33 GeoidKarney('egm96-5.pgm').height(-28.146, 107.081) kind 2: -38.979  FAILED, KNOWN, expected -38.981\n    test 34 GeoidKarney('egm96-5.pgm').height(-10.551, -126.69) kind 2: -9.912  FAILED, KNOWN, expected -9.913\n    test 35 GeoidKarney('egm96-5.pgm').height(-25.444, -103.337) kind 2: -2.827  FAILED, KNOWN, expected -2.828\n    test 36 GeoidKarney('egm96-5.pgm').height(24.436, 46.159) kind 2: -5.719\n    test 37 GeoidKarney('egm96-5.pgm').height(-72.889, 37.107) kind 2: 22.420  FAILED, KNOWN, expected 22.426\n    test 38 GeoidKarney('egm96-5.pgm').height(-19.629, 13.245) kind 2: 24.546  FAILED, KNOWN, expected 24.545\n    test 39 GeoidKarney('egm96-5.pgm').height(-7.602, 171.265) kind 2: 40.651  FAILED, KNOWN, expected 40.652\n    test 40 GeoidKarney('egm96-5.pgm').height(-45.364, -1.876) kind 2: 22.380  FAILED, KNOWN, expected 22.383\n    test 41 GeoidKarney('egm96-5.pgm').height(-7.292, -69.18) kind 2: 22.185  FAILED, KNOWN, expected 22.182\n    test 42 GeoidKarney('egm96-5.pgm').height(-31.566, -166.689) kind 2: 14.927  FAILED, KNOWN, expected 14.930\n    test 43 GeoidKarney('egm96-5.pgm').height(-82.751, -162.085) kind 2: -47.093  FAILED, KNOWN, expected -47.094\n    test 44 GeoidKarney('egm96-5.pgm').height(-40.7, 99.466) kind 2: -18.421\n    test 45 GeoidKarney('egm96-5.pgm').height(48.676, 39.69) kind 2: 10.060  FAILED, KNOWN, expected 10.055\n    test 46 GeoidKarney('egm96-5.pgm').height(74.817, -78.404) kind 2: 5.784  FAILED, KNOWN, expected 5.786\n    test 47 GeoidKarney('egm96-5.pgm').height(-81.032, -63.865) kind 2: -22.840  FAILED, KNOWN, expected -22.838\n    test 48 GeoidKarney('egm96-5.pgm').height(74.022, 9.432) kind 2: 42.988  FAILED, KNOWN, expected 42.989\n    test 49 GeoidKarney('egm96-5.pgm').height(-75.071, 17.579) kind 2: 15.351  FAILED, KNOWN, expected 15.353\n    test 50 GeoidKarney('egm96-5.pgm').height(-12.546, -54.851) kind 2: -6.341  FAILED, KNOWN, expected -6.337\n    test 51 GeoidKarney('egm96-5.pgm').height(-13.621, 42.408) kind 2: -25.551  FAILED, KNOWN, expected -25.555\n    test 52 GeoidKarney('egm96-5.pgm').height(-2.266, -91.951) kind 2: -9.921  FAILED, KNOWN, expected -9.923\n    test 53 GeoidKarney('egm96-5.pgm').height(-18.672, 42.547) kind 2: -10.861  FAILED, KNOWN, expected -10.852\n    test 54 GeoidKarney('egm96-5.pgm').height(-41.44, 157.413) kind 2: -0.136  FAILED, KNOWN, expected -0.135\n    test 55 GeoidKarney('egm96-5.pgm').height(53.686, -79.375) kind 2: -43.808  FAILED, KNOWN, expected -43.809\n    test 56 GeoidKarney('egm96-5.pgm').height(39.26, -30.351) kind 2: 57.151  FAILED, KNOWN, expected 57.150\n    test 57 GeoidKarney('egm96-5.pgm').height(-51.699, -141.493) kind 2: -17.660  FAILED, KNOWN, expected -17.657\n    test 58 GeoidKarney('egm96-5.pgm').height(36.585, 4.515) kind 2: 46.356  FAILED, KNOWN, expected 46.358\n    test 59 GeoidKarney('egm96-5.pgm').height(39.642, -54.659) kind 2: -14.404\n    test 60 GeoidKarney('egm96-5.pgm').height(59.761, 166.567) kind 2: 11.239  FAILED, KNOWN, expected 11.242\n    test 61 GeoidKarney('egm96-5.pgm').height(51.83, 13.357) kind 2: 42.236  FAILED, KNOWN, expected 42.237\n    test 62 GeoidKarney('egm96-5.pgm').height(-36.531, -175.431) kind 2: 22.148  FAILED, KNOWN, expected 22.147\n    test 63 GeoidKarney('egm96-5.pgm').height(-37.08, 125.264) kind 2: -33.395  FAILED, KNOWN, expected -33.396\n    test 64 GeoidKarney('egm96-5.pgm').height(-68.651, 92.732) kind 2: 7.965  FAILED, KNOWN, expected 7.961\n    test 65 GeoidKarney('egm96-5.pgm').height(35.087, 45.336) kind 2: 7.228  FAILED, KNOWN, expected 7.229\n    test 66 GeoidKarney('egm96-5.pgm').height(-61.356, -169.379) kind 2: -44.289  FAILED, KNOWN, expected -44.292\n    test 67 GeoidKarney('egm96-5.pgm').height(-36.955, 179.12) kind 2: 21.872  FAILED, KNOWN, expected 21.875\n    test 68 GeoidKarney('egm96-5.pgm').height(10.248, -6.714) kind 2: 28.935  FAILED, KNOWN, expected 28.933\n    test 69 GeoidKarney('egm96-5.pgm').height(36.868, 84.602) kind 2: -41.255  FAILED, KNOWN, expected -41.238\n    test 70 GeoidKarney('egm96-5.pgm').height(28.637, 88.933) kind 2: -31.334  FAILED, KNOWN, expected -31.331\n    test 71 GeoidKarney('egm96-5.pgm').height(54.811, -99.968) kind 2: -32.702\n    test 72 GeoidKarney('egm96-5.pgm').height(7.611, 145.911) kind 2: 60.118  FAILED, KNOWN, expected 60.117\n    test 73 GeoidKarney('egm96-5.pgm').height(59.412, 170.102) kind 2: 6.456  FAILED, KNOWN, expected 6.457\n    test 74 GeoidKarney('egm96-5.pgm').height(-61.469, 126.144) kind 2: -31.959  FAILED, KNOWN, expected -31.961\n    test 75 GeoidKarney('egm96-5.pgm').height(18.514, -137.083) kind 2: -26.572  FAILED, KNOWN, expected -26.571\n    test 76 GeoidKarney('egm96-5.pgm').height(7.854, -126.799) kind 2: -29.761  FAILED, KNOWN, expected -29.760\n    test 77 GeoidKarney('egm96-5.pgm').height(47.489, 134.183) kind 2: 21.980\n    test 78 GeoidKarney('egm96-5.pgm').height(-34.144, -11.922) kind 2: 16.849\n    test 79 GeoidKarney('egm96-5.pgm').height(-58.389, 117.458) kind 2: -20.922  FAILED, KNOWN, expected -20.923\n    test 80 GeoidKarney('egm96-5.pgm').height(9.773, 95.846) kind 2: -42.745  FAILED, KNOWN, expected -42.749\n    test 81 GeoidKarney('egm96-5.pgm').height(-53.12, 136.994) kind 2: -21.839  FAILED, KNOWN, expected -21.841\n    test 82 GeoidKarney('egm96-5.pgm').height(-50.35, 0.075) kind 2: 25.482\n    test 83 GeoidKarney('egm96-5.pgm').height(31.438, -170.879) kind 2: -8.845  FAILED, KNOWN, expected -8.847\n    test 84 GeoidKarney('egm96-5.pgm').height(37.541, -153.024) kind 2: -19.600  FAILED, KNOWN, expected -19.604\n    test 85 GeoidKarney('egm96-5.pgm').height(27.586, 2.444) kind 2: 25.672  FAILED, KNOWN, expected 25.668\n    test 86 GeoidKarney('egm96-5.pgm').height(-26.139, -106.201) kind 2: -3.772\n    test 87 GeoidKarney('egm96-5.pgm').height(-33.426, -14.84) kind 2: 17.747  FAILED, KNOWN, expected 17.748\n    test 88 GeoidKarney('egm96-5.pgm').height(39.586, -153.019) kind 2: -17.838  FAILED, KNOWN, expected -17.839\n    test 89 GeoidKarney('egm96-5.pgm').height(-60.79, -2.578) kind 2: 14.293  FAILED, KNOWN, expected 14.292\n    test 90 GeoidKarney('egm96-5.pgm').height(-20.131, 21.975) kind 2: 16.529\n    test 91 GeoidKarney('egm96-5.pgm').height(75.649, 99.921) kind 2: -8.230  FAILED, KNOWN, expected -8.229\n    test 92 GeoidKarney('egm96-5.pgm').height(-0.385, -23.788) kind 2: 9.828  FAILED, KNOWN, expected 9.830\n    test 93 GeoidKarney('egm96-5.pgm').height(-51.56, -50.327) kind 2: 6.213  FAILED, KNOWN, expected 6.215\n    test 94 GeoidKarney('egm96-5.pgm').height(-43.129, -167.271) kind 2: -2.957  FAILED, KNOWN, expected -2.960\n    test 95 GeoidKarney('egm96-5.pgm').height(46.374, 71.948) kind 2: -42.326  FAILED, KNOWN, expected -42.323\n    test 96 GeoidKarney('egm96-5.pgm').height(-22.783, 140.657) kind 2: 38.352  FAILED, KNOWN, expected 38.356\n    test 97 GeoidKarney('egm96-5.pgm').height(-12.056, 122.804) kind 2: 34.242  FAILED, KNOWN, expected 34.259\n    test 98 GeoidKarney('egm96-5.pgm').height(30.127, 94.738) kind 2: -37.390  FAILED, KNOWN, expected -37.397\n    test 99 GeoidKarney('egm96-5.pgm').height(46.296, -174.479) kind 2: -2.015  FAILED, KNOWN, expected -2.016\n    test 100 GeoidKarney('egm96-5.pgm').height(34.99, 15.052) kind 2: 33.915  FAILED, KNOWN, expected 33.912\n    test 101 GeoidKarney('egm96-5.pgm').height(-51.287, 90.565) kind 2: 12.676\n    test 102 GeoidKarney('egm96-5.pgm').height(34.217, 141.302) kind 2: 15.729  FAILED, KNOWN, expected 15.692\n    test 103 GeoidKarney('egm96-5.pgm').height(-40.423, -142.787) kind 2: -11.117\n    test 104 GeoidKarney('egm96-5.pgm').height(-17.854, -170.216) kind 2: 27.443  FAILED, KNOWN, expected 27.437\n    test 105 GeoidKarney('egm96-5.pgm').height(47.803, 112.701) kind 2: -23.893  FAILED, KNOWN, expected -23.894\n    test 106 GeoidKarney('egm96-5.pgm').height(-23.276, 133.454) kind 2: 18.749  FAILED, KNOWN, expected 18.766\n    test 107 GeoidKarney('egm96-5.pgm').height(-26.884, -36.571) kind 2: -7.452\n    test 108 GeoidKarney('egm96-5.pgm').height(-37.106, 31.128) kind 2: 30.141  FAILED, KNOWN, expected 30.143\n    test 109 GeoidKarney('egm96-5.pgm').height(-75.363, -173.674) kind 2: -61.176  FAILED, KNOWN, expected -61.172\n    test 110 GeoidKarney('egm96-5.pgm').height(-18.305, 69.016) kind 2: -24.892  FAILED, KNOWN, expected -24.890\n    test 111 GeoidKarney('egm96-5.pgm').height(39.527, 23.58) kind 2: 39.523  FAILED, KNOWN, expected 39.519\n    test 112 GeoidKarney('egm96-5.pgm').height(68.903, 30.97) kind 2: 19.417  FAILED, KNOWN, expected 19.419\n    test 113 GeoidKarney('egm96-5.pgm').height(53.937, 168.318) kind 2: 2.069\n    test 114 GeoidKarney('egm96-5.pgm').height(-38.6, 64.812) kind 2: 25.048\n    test 115 GeoidKarney('egm96-5.pgm').height(-41.396, -69.739) kind 2: 22.547\n    test 116 GeoidKarney('egm96-5.pgm').height(50.158, 72.319) kind 2: -34.359\n    test 117 GeoidKarney('egm96-5.pgm').height(27.692, 176.153) kind 2: -5.454  FAILED, KNOWN, expected -5.453\n    test 118 GeoidKarney('egm96-5.pgm').height(-48.419, 170.454) kind 2: -6.802  FAILED, KNOWN, expected -6.804\n    test 119 GeoidKarney('egm96-5.pgm').height(-65.346, -124.976) kind 2: -35.053  FAILED, KNOWN, expected -35.054\n    test 120 GeoidKarney('egm96-5.pgm').height(-51.873, 167.266) kind 2: -15.417  FAILED, KNOWN, expected -15.418\n    test 121 GeoidKarney('egm96-5.pgm').height(-7.263, 84.308) kind 2: -79.556  FAILED, KNOWN, expected -79.557\n    test 122 GeoidKarney('egm96-5.pgm').height(-1.461, -105.458) kind 2: -16.894\n    test 123 GeoidKarney('egm96-5.pgm').height(7.684, 161.873) kind 2: 36.213  FAILED, KNOWN, expected 36.215\n    test 124 GeoidKarney('egm96-5.pgm').height(-31.475, -158.52) kind 2: 3.524  FAILED, KNOWN, expected 3.523\n    test 125 GeoidKarney('egm96-5.pgm').height(-36.187, 62.917) kind 2: 23.796  FAILED, KNOWN, expected 23.797\n    test 126 GeoidKarney('egm96-5.pgm').height(16.003, 141.687) kind 2: 51.587  FAILED, KNOWN, expected 51.586\n    test 127 GeoidKarney('egm96-5.pgm').height(30.182, 86.261) kind 2: -30.131\n    test 128 GeoidKarney('egm96-5.pgm').height(-77.304, 159.498) kind 2: -51.853  FAILED, KNOWN, expected -51.848\n    test 129 GeoidKarney('egm96-5.pgm').height(39.536, 139.795) kind 2: 37.200  FAILED, KNOWN, expected 37.192\n    test 130 GeoidKarney('egm96-5.pgm').height(8.569, 134.618) kind 2: 63.583  FAILED, KNOWN, expected 63.597\n    test 131 GeoidKarney('egm96-5.pgm').height(14.473, 90.596) kind 2: -62.636\n    test 132 GeoidKarney('egm96-5.pgm').height(-13.138, -99.589) kind 2: -8.717\n    test 133 GeoidKarney('egm96-5.pgm').height(34.212, -26.307) kind 2: 40.649  FAILED, KNOWN, expected 40.645\n    test 134 GeoidKarney('egm96-5.pgm').height(21.89, 76.371) kind 2: -60.730  FAILED, KNOWN, expected -60.729\n    test 135 GeoidKarney('egm96-5.pgm').height(29.793, 120.487) kind 2: 8.784  FAILED, KNOWN, expected 8.783\n    test 136 GeoidKarney('egm96-5.pgm').height(15.724, 122.714) kind 2: 31.569  FAILED, KNOWN, expected 31.523\n    test 137 GeoidKarney('egm96-5.pgm').height(-66.208, -78.499) kind 2: -6.249  FAILED, KNOWN, expected -6.250\n    test 138 GeoidKarney('egm96-5.pgm').height(-39.507, 55.809) kind 2: 32.599\n    test 139 GeoidKarney('egm96-5.pgm').height(28.159, 51.476) kind 2: -24.531  FAILED, KNOWN, expected -24.536\n    test 140 GeoidKarney('egm96-5.pgm').height(-36.207, 120.205) kind 2: -38.863  FAILED, KNOWN, expected -38.869\n    test 141 GeoidKarney('egm96-5.pgm').height(30.575, -99.998) kind 2: -23.214  FAILED, KNOWN, expected -23.213\n    test 142 GeoidKarney('egm96-5.pgm').height(-16.993, 37.136) kind 2: -11.824\n    test 143 GeoidKarney('egm96-5.pgm').height(-11.477, 12.039) kind 2: 16.712  FAILED, KNOWN, expected 16.709\n    test 144 GeoidKarney('egm96-5.pgm').height(30.428, -144.765) kind 2: -22.380  FAILED, KNOWN, expected -22.379\n    test 145 GeoidKarney('egm96-5.pgm').height(-17.44, -92.424) kind 2: -4.941\n    test 146 GeoidKarney('egm96-5.pgm').height(40.203, 143.43) kind 2: 19.382  FAILED, KNOWN, expected 19.394\n    test 147 GeoidKarney('egm96-5.pgm').height(-37.098, -106.574) kind 2: -9.381\n    test 148 GeoidKarney('egm96-5.pgm').height(54.62, -68.413) kind 2: -23.319\n    test 149 GeoidKarney('egm96-5.pgm').height(-31.633, 148.182) kind 2: 24.470  FAILED, KNOWN, expected 24.468\n    test 150 GeoidKarney('egm96-5.pgm').height(-56.07, -141.407) kind 2: -21.762  FAILED, KNOWN, expected -21.761\n    test 151 GeoidKarney('egm96-5.pgm').height(-8.195, -52.691) kind 2: -18.798\n    test 152 GeoidKarney('egm96-5.pgm').height(17.851, 24.749) kind 2: 12.611  FAILED, KNOWN, expected 12.612\n    test 153 GeoidKarney('egm96-5.pgm').height(0.349, -108.333) kind 2: -19.708  FAILED, KNOWN, expected -19.706\n    test 154 GeoidKarney('egm96-5.pgm').height(15.038, 126.191) kind 2: 45.794  FAILED, KNOWN, expected 45.792\n    test 155 GeoidKarney('egm96-5.pgm').height(-21.111, -123.696) kind 2: -8.408  FAILED, KNOWN, expected -8.406\n    test 156 GeoidKarney('egm96-5.pgm').height(30.947, 173.002) kind 2: -8.366  FAILED, KNOWN, expected -8.367\n    test 157 GeoidKarney('egm96-5.pgm').height(-10.698, -144.091) kind 2: -2.026  FAILED, KNOWN, expected -2.025\n    test 158 GeoidKarney('egm96-5.pgm').height(-29.412, 124.753) kind 2: -16.569\n    test 159 GeoidKarney('egm96-5.pgm').height(38.224, -137.189) kind 2: -35.434  FAILED, KNOWN, expected -35.435\n    test 160 GeoidKarney('egm96-5.pgm').height(36.064, -132.409) kind 2: -39.009\n    test 161 GeoidKarney('egm96-5.pgm').height(29.975, 178.076) kind 2: -6.921\n    test 162 GeoidKarney('egm96-5.pgm').height(-21.346, 169.26) kind 2: 50.811  FAILED, KNOWN, expected 50.795\n    test 163 GeoidKarney('egm96-5.pgm').height(49.282, -152.934) kind 2: 1.069  FAILED, KNOWN, expected 1.070\n    test 164 GeoidKarney('egm96-5.pgm').height(16.349, -99.962) kind 2: -14.198  FAILED, KNOWN, expected -14.214\n    test 165 GeoidKarney('egm96-5.pgm').height(-14.293, -167.34) kind 2: 17.603  FAILED, KNOWN, expected 17.600\n    test 166 GeoidKarney('egm96-5.pgm').height(47.166, -38.523) kind 2: 44.803  FAILED, KNOWN, expected 44.804\n    test 167 GeoidKarney('egm96-5.pgm').height(-58.911, 114.347) kind 2: -17.924  FAILED, KNOWN, expected -17.922\n    test 168 GeoidKarney('egm96-5.pgm').height(-9.055, 111.294) kind 2: 10.681  FAILED, KNOWN, expected 10.662\n    test 169 GeoidKarney('egm96-5.pgm').height(18.391, 29.692) kind 2: 7.672  FAILED, KNOWN, expected 7.670\n    test 170 GeoidKarney('egm96-5.pgm').height(-15.074, 22.153) kind 2: 8.622  FAILED, KNOWN, expected 8.623\n    test 171 GeoidKarney('egm96-5.pgm').height(-4.235, 62.001) kind 2: -60.723\n    test 172 GeoidKarney('egm96-5.pgm').height(15.171, -86.583) kind 2: 3.818\n    test 173 GeoidKarney('egm96-5.pgm').height(79.254, 112.116) kind 2: -1.870  FAILED, KNOWN, expected -1.871\n    test 174 GeoidKarney('egm96-5.pgm').height(15.947, 156.093) kind 2: 30.642  FAILED, KNOWN, expected 30.633\n    test 175 GeoidKarney('egm96-5.pgm').height(68.371, -177.382) kind 2: 2.801\n    test 176 GeoidKarney('egm96-5.pgm').height(-41.931, -72.093) kind 2: 19.858  FAILED, KNOWN, expected 19.859\n    test 177 GeoidKarney('egm96-5.pgm').height(-1.193, -143.133) kind 2: 5.347  FAILED, KNOWN, expected 5.348\n    test 178 GeoidKarney('egm96-5.pgm').height(-37.006, 154.513) kind 2: 9.940  FAILED, KNOWN, expected 9.941\n    test 179 GeoidKarney('egm96-5.pgm').height(-22.148, 9.938) kind 2: 22.322  FAILED, KNOWN, expected 22.321\n    test 180 GeoidKarney('egm96-5.pgm').height(24.329, 109.044) kind 2: -24.136  FAILED, KNOWN, expected -24.135\n    test 181 GeoidKarney('egm96-5.pgm').height(-54.878, 114.691) kind 2: -17.680  FAILED, KNOWN, expected -17.679\n    test 182 GeoidKarney('egm96-5.pgm').height(45.601, -80.458) kind 2: -37.149  FAILED, KNOWN, expected -37.150\n    test 183 GeoidKarney('egm96-5.pgm').height(2.372, 58.974) kind 2: -61.158\n    test 184 GeoidKarney('egm96-5.pgm').height(15.937, 165.854) kind 2: 20.600  FAILED, KNOWN, expected 20.602\n    test 185 GeoidKarney('egm96-5.pgm').height(4.889, -24.213) kind 2: 13.054  FAILED, KNOWN, expected 13.055\n    test 186 GeoidKarney('egm96-5.pgm').height(-11.392, 179.558) kind 2: 40.138  FAILED, KNOWN, expected 40.132\n    test 187 GeoidKarney('egm96-5.pgm').height(58.246, 4.862) kind 2: 43.263\n    test 188 GeoidKarney('egm96-5.pgm').height(34.302, -109.109) kind 2: -23.129  FAILED, KNOWN, expected -23.126\n    test 189 GeoidKarney('egm96-5.pgm').height(-58.196, 117.306) kind 2: -20.677  FAILED, KNOWN, expected -20.678\n    test 190 GeoidKarney('egm96-5.pgm').height(44.5, 173.769) kind 2: -8.531  FAILED, KNOWN, expected -8.529\n    test 191 GeoidKarney('egm96-5.pgm').height(-28.863, -139.775) kind 2: -8.669  FAILED, KNOWN, expected -8.666\n    test 192 GeoidKarney('egm96-5.pgm').height(19.507, -96.099) kind 2: -12.798  FAILED, KNOWN, expected -12.796\n    test 193 GeoidKarney('egm96-5.pgm').height(-42.488, -73.907) kind 2: 15.770  FAILED, KNOWN, expected 15.773\n    test 194 GeoidKarney('egm96-5.pgm').height(46.138, -141.429) kind 2: -19.955  FAILED, KNOWN, expected -19.954\n    test 195 GeoidKarney('egm96-5.pgm').height(60.507, 93.743) kind 2: -31.479  FAILED, KNOWN, expected -31.480\n    test 196 GeoidKarney('egm96-5.pgm').height(26.219, -145.434) kind 2: -17.428  FAILED, KNOWN, expected -17.429\n    test 197 GeoidKarney('egm96-5.pgm').height(-28.687, 3.37) kind 2: 24.037\n    test 198 GeoidKarney('egm96-5.pgm').height(-15.008, 117.45) kind 2: 4.522  FAILED, KNOWN, expected 4.520\n    test 199 GeoidKarney('egm96-5.pgm').height(40.71, 144.095) kind 2: 11.403  FAILED, KNOWN, expected 11.394\n    test 200 GeoidKarney('egm96-5.pgm').height(20.823, -173.611) kind 2: 5.676  FAILED, KNOWN, expected 5.679\n    test 201 GeoidKarney('egm96-5.pgm').height(16.776, -3.009) kind 2: 28.705  FAILED, KNOWN, expected 28.707\n    test 202 GeoidKarney('egm96-5.pgm').height(41.0, -95.0) kind 2: -30.261  FAILED, KNOWN, expected -30.262\n    test 203 GeoidKarney('egm96-5.pgm').height(49.0, -120.5) kind 2: -15.984\n    test 204 GeoidKarney('egm96-5.pgm').height(49.0, -103.5) kind 2: -18.636  FAILED, KNOWN, expected -18.635\n    test 205 GeoidKarney('egm96-5.pgm').height(49.0, -86.5) kind 2: -37.749\n    test 206 GeoidKarney('egm96-5.pgm').height(49.0, -69.5) kind 2: -26.691\n    test 207 GeoidKarney('egm96-5.pgm').height(33.0, -120.5) kind 2: -39.561\n    test 208 GeoidKarney('egm96-5.pgm').height(33.0, -103.5) kind 2: -22.563  FAILED, KNOWN, expected -22.562\n    test 209 GeoidKarney('egm96-5.pgm').height(33.0, -86.5) kind 2: -30.012\n    test 210 GeoidKarney('egm96-5.pgm').height(33.0, -69.5) kind 2: -48.039\n\n    test 211 GeoidKarney('egm96-5.pgm').height() kind 2, hits 0, eps max (in 0 FAILED): 0.046496\n    test 212 GeoidKarney('egm96-5.pgm').height() kind 2, hits 0, eps mean (of 210 total): 0.002766\n    test 213 GeoidKarney('egm96-5.pgm').height() kind 2, hits 0, eps stdev (of 210 total): 0.005116\n    test 214 GeoidKarney('egm96-5.pgm').highest(): -8.167, 147.25, 85.422\n    test 215 GeoidKarney('egm96-5.pgm').lowerleft(): -90.0, -180.0, -29.535\n    test 216 GeoidKarney('egm96-5.pgm').lowerright(): -90.0, 180.0, -29.535\n    test 217 GeoidKarney('egm96-5.pgm').lowest(): 4.667, 78.833, -107.043\n    test 218 GeoidKarney('egm96-5.pgm').upperleft(): 90.0, -180.0, 13.605\n    test 219 GeoidKarney('egm96-5.pgm').upperright(): 90.0, 180.0, 13.605\n    test 220 GeoidKarney('egm96-5.pgm').dtype: (\"'ushort'\",)\n    test 221 GeoidKarney('egm96-5.pgm').knots: ('9335520',)\n    test 222 GeoidKarney('egm96-5.pgm').mean: ('-1.317',)\n    test 223 GeoidKarney('egm96-5.pgm').nBytes: ('None',)\n    test 224 GeoidKarney('egm96-5.pgm').smooth: ('None',)\n    test 225 GeoidKarney('egm96-5.pgm').stdev: ('29.244',)\n    test 226 GeoidKarney('egm96-5.pgm')._g2ll2(180, 360): (180, 0.0)\n    test 227 GeoidKarney('egm96-5.pgm')._ll2g2(180, 360): (180, 360)\n    test 228 GeoidKarney('egm96-5.pgm')._swne: (-10.0, -100.0, 10.0, 100.0)\n    test 229 GeoidKarney('egm96-5.pgm')._swne: (-10.0, -100.0, 10.0, 100.0)\n    test 230 GeoidKarney('egm96-5.pgm').toStr: GeoidKarney('egm96-5.pgm'): lowerleft(-90.0, -180.0, -29.535), upperright(90.0, 180.0, 13.605), center(0.0, 0.0, 17.163), highest(-8.167, 147.25, 85.422), lowest(4.667, 78.833, -107.043)\n\n    test 231 closed: True\n    test 232 copy(<class 'type'>): (<class 'pygeodesy.geoids.GeoidKarney'>, True)\n    test 233 GeoidKarney.copy(): (<class 'pygeodesy.geoids.GeoidKarney'>, True)\n    test 234 GeoidKarney('egm96-5.pgm').height(-76.981, 34.17) kind 3: 11.424  FAILED, KNOWN, expected 11.423\n    test 235 GeoidKarney('egm96-5.pgm').height(79.695, 88.806) kind 3: 0.892\n    test 236 GeoidKarney('egm96-5.pgm').height(-15.245, 168.748) kind 3: 65.225  FAILED, KNOWN, expected 65.226\n    test 237 GeoidKarney('egm96-5.pgm').height(-19.379, 15.855) kind 3: 24.464  FAILED, KNOWN, expected 24.463\n    test 238 GeoidKarney('egm96-5.pgm').height(43.378, -130.552) kind 3: -29.682\n    test 239 GeoidKarney('egm96-5.pgm').height(-16.075, 21.795) kind 3: 10.503\n    test 240 GeoidKarney('egm96-5.pgm').height(-11.256, -73.75) kind 3: 29.325  FAILED, KNOWN, expected 29.326\n    test 241 GeoidKarney('egm96-5.pgm').height(69.017, -15.921) kind 3: 60.423  FAILED, KNOWN, expected 60.424\n    test 242 GeoidKarney('egm96-5.pgm').height(2.221, 139.739) kind 3: 68.996\n    test 243 GeoidKarney('egm96-5.pgm').height(-9.097, 119.142) kind 3: 36.287\n    test 244 GeoidKarney('egm96-5.pgm').height(-28.524, -22.192) kind 3: 6.626\n    test 245 GeoidKarney('egm96-5.pgm').height(12.272, -136.424) kind 3: -20.861  FAILED, KNOWN, expected -20.860\n    test 246 GeoidKarney('egm96-5.pgm').height(-15.203, -85.604) kind 3: -3.267\n    test 247 GeoidKarney('egm96-5.pgm').height(-63.736, -77.17) kind 3: -1.295  FAILED, KNOWN, expected -1.294\n    test 248 GeoidKarney('egm96-5.pgm').height(-48.771, -90.102) kind 3: -2.323  FAILED, KNOWN, expected -2.322\n    test 249 GeoidKarney('egm96-5.pgm').height(-0.179, -126.368) kind 3: -17.555  FAILED, KNOWN, expected -17.557\n    test 250 GeoidKarney('egm96-5.pgm').height(1.586, -128.887) kind 3: -16.594\n    test 251 GeoidKarney('egm96-5.pgm').height(-48.781, -2.684) kind 3: 24.454  FAILED, KNOWN, expected 24.453\n    test 252 GeoidKarney('egm96-5.pgm').height(-49.092, 136.862) kind 3: -18.592\n    test 253 GeoidKarney('egm96-5.pgm').height(47.732, 17.552) kind 3: 44.048  FAILED, KNOWN, expected 44.049\n    test 254 GeoidKarney('egm96-5.pgm').height(-49.11, 85.706) kind 3: 18.582  FAILED, KNOWN, expected 18.581\n    test 255 GeoidKarney('egm96-5.pgm').height(-49.162, 40.321) kind 3: 44.290  FAILED, KNOWN, expected 44.289\n    test 256 GeoidKarney('egm96-5.pgm').height(3.498, 158.118) kind 3: 49.817  FAILED, KNOWN, expected 49.816\n    test 257 GeoidKarney('egm96-5.pgm').height(-35.616, 122.648) kind 3: -36.114\n    test 258 GeoidKarney('egm96-5.pgm').height(56.598, -96.114) kind 3: -41.047  FAILED, KNOWN, expected -41.048\n    test 259 GeoidKarney('egm96-5.pgm').height(-31.85, 149.121) kind 3: 26.456\n    test 260 GeoidKarney('egm96-5.pgm').height(-26.569, -177.792) kind 3: 49.317\n    test 261 GeoidKarney('egm96-5.pgm').height(76.735, -65.753) kind 3: 20.714\n    test 262 GeoidKarney('egm96-5.pgm').height(-21.404, -122.268) kind 3: -7.362\n    test 263 GeoidKarney('egm96-5.pgm').height(-77.133, -65.474) kind 3: -16.491  FAILED, KNOWN, expected -16.492\n    test 264 GeoidKarney('egm96-5.pgm').height(-58.812, 2.276) kind 3: 18.110\n    test 265 GeoidKarney('egm96-5.pgm').height(4.415, 155.683) kind 3: 51.858\n    test 266 GeoidKarney('egm96-5.pgm').height(-28.146, 107.081) kind 3: -38.979  FAILED, KNOWN, expected -38.981\n    test 267 GeoidKarney('egm96-5.pgm').height(-10.551, -126.69) kind 3: -9.913\n    test 268 GeoidKarney('egm96-5.pgm').height(-25.444, -103.337) kind 3: -2.828\n    test 269 GeoidKarney('egm96-5.pgm').height(24.436, 46.159) kind 3: -5.718  FAILED, KNOWN, expected -5.719\n    test 270 GeoidKarney('egm96-5.pgm').height(-72.889, 37.107) kind 3: 22.427  FAILED, KNOWN, expected 22.426\n    test 271 GeoidKarney('egm96-5.pgm').height(-19.629, 13.245) kind 3: 24.545\n    test 272 GeoidKarney('egm96-5.pgm').height(-7.602, 171.265) kind 3: 40.651  FAILED, KNOWN, expected 40.652\n    test 273 GeoidKarney('egm96-5.pgm').height(-45.364, -1.876) kind 3: 22.383\n    test 274 GeoidKarney('egm96-5.pgm').height(-7.292, -69.18) kind 3: 22.183  FAILED, KNOWN, expected 22.182\n    test 275 GeoidKarney('egm96-5.pgm').height(-31.566, -166.689) kind 3: 14.929  FAILED, KNOWN, expected 14.930\n    test 276 GeoidKarney('egm96-5.pgm').height(-82.751, -162.085) kind 3: -47.094\n    test 277 GeoidKarney('egm96-5.pgm').height(-40.7, 99.466) kind 3: -18.421\n    test 278 GeoidKarney('egm96-5.pgm').height(48.676, 39.69) kind 3: 10.055\n    test 279 GeoidKarney('egm96-5.pgm').height(74.817, -78.404) kind 3: 5.786\n    test 280 GeoidKarney('egm96-5.pgm').height(-81.032, -63.865) kind 3: -22.838\n    test 281 GeoidKarney('egm96-5.pgm').height(74.022, 9.432) kind 3: 42.989\n    test 282 GeoidKarney('egm96-5.pgm').height(-75.071, 17.579) kind 3: 15.352  FAILED, KNOWN, expected 15.353\n    test 283 GeoidKarney('egm96-5.pgm').height(-12.546, -54.851) kind 3: -6.338  FAILED, KNOWN, expected -6.337\n    test 284 GeoidKarney('egm96-5.pgm').height(-13.621, 42.408) kind 3: -25.554  FAILED, KNOWN, expected -25.555\n    test 285 GeoidKarney('egm96-5.pgm').height(-2.266, -91.951) kind 3: -9.922  FAILED, KNOWN, expected -9.923\n    test 286 GeoidKarney('egm96-5.pgm').height(-18.672, 42.547) kind 3: -10.853  FAILED, KNOWN, expected -10.852\n    test 287 GeoidKarney('egm96-5.pgm').height(-41.44, 157.413) kind 3: -0.135\n    test 288 GeoidKarney('egm96-5.pgm').height(53.686, -79.375) kind 3: -43.809\n    test 289 GeoidKarney('egm96-5.pgm').height(39.26, -30.351) kind 3: 57.150\n    test 290 GeoidKarney('egm96-5.pgm').height(-51.699, -141.493) kind 3: -17.656  FAILED, KNOWN, expected -17.657\n    test 291 GeoidKarney('egm96-5.pgm').height(36.585, 4.515) kind 3: 46.359  FAILED, KNOWN, expected 46.358\n    test 292 GeoidKarney('egm96-5.pgm').height(39.642, -54.659) kind 3: -14.404\n    test 293 GeoidKarney('egm96-5.pgm').height(59.761, 166.567) kind 3: 11.242\n    test 294 GeoidKarney('egm96-5.pgm').height(51.83, 13.357) kind 3: 42.237\n    test 295 GeoidKarney('egm96-5.pgm').height(-36.531, -175.431) kind 3: 22.147\n    test 296 GeoidKarney('egm96-5.pgm').height(-37.08, 125.264) kind 3: -33.396\n    test 297 GeoidKarney('egm96-5.pgm').height(-68.651, 92.732) kind 3: 7.961\n    test 298 GeoidKarney('egm96-5.pgm').height(35.087, 45.336) kind 3: 7.228  FAILED, KNOWN, expected 7.229\n    test 299 GeoidKarney('egm96-5.pgm').height(-61.356, -169.379) kind 3: -44.290  FAILED, KNOWN, expected -44.292\n    test 300 GeoidKarney('egm96-5.pgm').height(-36.955, 179.12) kind 3: 21.874  FAILED, KNOWN, expected 21.875\n    test 301 GeoidKarney('egm96-5.pgm').height(10.248, -6.714) kind 3: 28.933\n    test 302 GeoidKarney('egm96-5.pgm').height(36.868, 84.602) kind 3: -41.238\n    test 303 GeoidKarney('egm96-5.pgm').height(28.637, 88.933) kind 3: -31.331\n    test 304 GeoidKarney('egm96-5.pgm').height(54.811, -99.968) kind 3: -32.702\n    test 305 GeoidKarney('egm96-5.pgm').height(7.611, 145.911) kind 3: 60.117\n    test 306 GeoidKarney('egm96-5.pgm').height(59.412, 170.102) kind 3: 6.457\n    test 307 GeoidKarney('egm96-5.pgm').height(-61.469, 126.144) kind 3: -31.961\n    test 308 GeoidKarney('egm96-5.pgm').height(18.514, -137.083) kind 3: -26.572  FAILED, KNOWN, expected -26.571\n    test 309 GeoidKarney('egm96-5.pgm').height(7.854, -126.799) kind 3: -29.761  FAILED, KNOWN, expected -29.760\n    test 310 GeoidKarney('egm96-5.pgm').height(47.489, 134.183) kind 3: 21.981  FAILED, KNOWN, expected 21.980\n    test 311 GeoidKarney('egm96-5.pgm').height(-34.144, -11.922) kind 3: 16.849\n    test 312 GeoidKarney('egm96-5.pgm').height(-58.389, 117.458) kind 3: -20.923\n    test 313 GeoidKarney('egm96-5.pgm').height(9.773, 95.846) kind 3: -42.749\n    test 314 GeoidKarney('egm96-5.pgm').height(-53.12, 136.994) kind 3: -21.840  FAILED, KNOWN, expected -21.841\n    test 315 GeoidKarney('egm96-5.pgm').height(-50.35, 0.075) kind 3: 25.481  FAILED, KNOWN, expected 25.482\n    test 316 GeoidKarney('egm96-5.pgm').height(31.438, -170.879) kind 3: -8.846  FAILED, KNOWN, expected -8.847\n    test 317 GeoidKarney('egm96-5.pgm').height(37.541, -153.024) kind 3: -19.603  FAILED, KNOWN, expected -19.604\n    test 318 GeoidKarney('egm96-5.pgm').height(27.586, 2.444) kind 3: 25.668\n    test 319 GeoidKarney('egm96-5.pgm').height(-26.139, -106.201) kind 3: -3.772\n    test 320 GeoidKarney('egm96-5.pgm').height(-33.426, -14.84) kind 3: 17.747  FAILED, KNOWN, expected 17.748\n    test 321 GeoidKarney('egm96-5.pgm').height(39.586, -153.019) kind 3: -17.838  FAILED, KNOWN, expected -17.839\n    test 322 GeoidKarney('egm96-5.pgm').height(-60.79, -2.578) kind 3: 14.292\n    test 323 GeoidKarney('egm96-5.pgm').height(-20.131, 21.975) kind 3: 16.529\n    test 324 GeoidKarney('egm96-5.pgm').height(75.649, 99.921) kind 3: -8.230  FAILED, KNOWN, expected -8.229\n    test 325 GeoidKarney('egm96-5.pgm').height(-0.385, -23.788) kind 3: 9.831  FAILED, KNOWN, expected 9.830\n    test 326 GeoidKarney('egm96-5.pgm').height(-51.56, -50.327) kind 3: 6.215\n    test 327 GeoidKarney('egm96-5.pgm').height(-43.129, -167.271) kind 3: -2.960\n    test 328 GeoidKarney('egm96-5.pgm').height(46.374, 71.948) kind 3: -42.323\n    test 329 GeoidKarney('egm96-5.pgm').height(-22.783, 140.657) kind 3: 38.356\n    test 330 GeoidKarney('egm96-5.pgm').height(-12.056, 122.804) kind 3: 34.259\n    test 331 GeoidKarney('egm96-5.pgm').height(30.127, 94.738) kind 3: -37.397\n    test 332 GeoidKarney('egm96-5.pgm').height(46.296, -174.479) kind 3: -2.017  FAILED, KNOWN, expected -2.016\n    test 333 GeoidKarney('egm96-5.pgm').height(34.99, 15.052) kind 3: 33.912\n    test 334 GeoidKarney('egm96-5.pgm').height(-51.287, 90.565) kind 3: 12.676\n    test 335 GeoidKarney('egm96-5.pgm').height(34.217, 141.302) kind 3: 15.692\n    test 336 GeoidKarney('egm96-5.pgm').height(-40.423, -142.787) kind 3: -11.117\n    test 337 GeoidKarney('egm96-5.pgm').height(-17.854, -170.216) kind 3: 27.437\n    test 338 GeoidKarney('egm96-5.pgm').height(47.803, 112.701) kind 3: -23.894\n    test 339 GeoidKarney('egm96-5.pgm').height(-23.276, 133.454) kind 3: 18.765  FAILED, KNOWN, expected 18.766\n    test 340 GeoidKarney('egm96-5.pgm').height(-26.884, -36.571) kind 3: -7.452\n    test 341 GeoidKarney('egm96-5.pgm').height(-37.106, 31.128) kind 3: 30.143\n    test 342 GeoidKarney('egm96-5.pgm').height(-75.363, -173.674) kind 3: -61.172\n    test 343 GeoidKarney('egm96-5.pgm').height(-18.305, 69.016) kind 3: -24.890\n    test 344 GeoidKarney('egm96-5.pgm').height(39.527, 23.58) kind 3: 39.519\n    test 345 GeoidKarney('egm96-5.pgm').height(68.903, 30.97) kind 3: 19.420  FAILED, KNOWN, expected 19.419\n    test 346 GeoidKarney('egm96-5.pgm').height(53.937, 168.318) kind 3: 2.067  FAILED, KNOWN, expected 2.069\n    test 347 GeoidKarney('egm96-5.pgm').height(-38.6, 64.812) kind 3: 25.049  FAILED, KNOWN, expected 25.048\n    test 348 GeoidKarney('egm96-5.pgm').height(-41.396, -69.739) kind 3: 22.546  FAILED, KNOWN, expected 22.547\n    test 349 GeoidKarney('egm96-5.pgm').height(50.158, 72.319) kind 3: -34.358  FAILED, KNOWN, expected -34.359\n    test 350 GeoidKarney('egm96-5.pgm').height(27.692, 176.153) kind 3: -5.454  FAILED, KNOWN, expected -5.453\n    test 351 GeoidKarney('egm96-5.pgm').height(-48.419, 170.454) kind 3: -6.804\n    test 352 GeoidKarney('egm96-5.pgm').height(-65.346, -124.976) kind 3: -35.053  FAILED, KNOWN, expected -35.054\n    test 353 GeoidKarney('egm96-5.pgm').height(-51.873, 167.266) kind 3: -15.417  FAILED, KNOWN, expected -15.418\n    test 354 GeoidKarney('egm96-5.pgm').height(-7.263, 84.308) kind 3: -79.557\n    test 355 GeoidKarney('egm96-5.pgm').height(-1.461, -105.458) kind 3: -16.894\n    test 356 GeoidKarney('egm96-5.pgm').height(7.684, 161.873) kind 3: 36.215\n    test 357 GeoidKarney('egm96-5.pgm').height(-31.475, -158.52) kind 3: 3.523\n    test 358 GeoidKarney('egm96-5.pgm').height(-36.187, 62.917) kind 3: 23.797\n    test 359 GeoidKarney('egm96-5.pgm').height(16.003, 141.687) kind 3: 51.587  FAILED, KNOWN, expected 51.586\n    test 360 GeoidKarney('egm96-5.pgm').height(30.182, 86.261) kind 3: -30.131\n    test 361 GeoidKarney('egm96-5.pgm').height(-77.304, 159.498) kind 3: -51.849  FAILED, KNOWN, expected -51.848\n    test 362 GeoidKarney('egm96-5.pgm').height(39.536, 139.795) kind 3: 37.191  FAILED, KNOWN, expected 37.192\n    test 363 GeoidKarney('egm96-5.pgm').height(8.569, 134.618) kind 3: 63.596  FAILED, KNOWN, expected 63.597\n    test 364 GeoidKarney('egm96-5.pgm').height(14.473, 90.596) kind 3: -62.636\n    test 365 GeoidKarney('egm96-5.pgm').height(-13.138, -99.589) kind 3: -8.718  FAILED, KNOWN, expected -8.717\n    test 366 GeoidKarney('egm96-5.pgm').height(34.212, -26.307) kind 3: 40.645\n    test 367 GeoidKarney('egm96-5.pgm').height(21.89, 76.371) kind 3: -60.729\n    test 368 GeoidKarney('egm96-5.pgm').height(29.793, 120.487) kind 3: 8.784  FAILED, KNOWN, expected 8.783\n    test 369 GeoidKarney('egm96-5.pgm').height(15.724, 122.714) kind 3: 31.523\n    test 370 GeoidKarney('egm96-5.pgm').height(-66.208, -78.499) kind 3: -6.251  FAILED, KNOWN, expected -6.250\n    test 371 GeoidKarney('egm96-5.pgm').height(-39.507, 55.809) kind 3: 32.598  FAILED, KNOWN, expected 32.599\n    test 372 GeoidKarney('egm96-5.pgm').height(28.159, 51.476) kind 3: -24.536\n    test 373 GeoidKarney('egm96-5.pgm').height(-36.207, 120.205) kind 3: -38.869\n    test 374 GeoidKarney('egm96-5.pgm').height(30.575, -99.998) kind 3: -23.212  FAILED, KNOWN, expected -23.213\n    test 375 GeoidKarney('egm96-5.pgm').height(-16.993, 37.136) kind 3: -11.824\n    test 376 GeoidKarney('egm96-5.pgm').height(-11.477, 12.039) kind 3: 16.710  FAILED, KNOWN, expected 16.709\n    test 377 GeoidKarney('egm96-5.pgm').height(30.428, -144.765) kind 3: -22.378  FAILED, KNOWN, expected -22.379\n    test 378 GeoidKarney('egm96-5.pgm').height(-17.44, -92.424) kind 3: -4.941\n    test 379 GeoidKarney('egm96-5.pgm').height(40.203, 143.43) kind 3: 19.394\n    test 380 GeoidKarney('egm96-5.pgm').height(-37.098, -106.574) kind 3: -9.381\n    test 381 GeoidKarney('egm96-5.pgm').height(54.62, -68.413) kind 3: -23.318  FAILED, KNOWN, expected -23.319\n    test 382 GeoidKarney('egm96-5.pgm').height(-31.633, 148.182) kind 3: 24.467  FAILED, KNOWN, expected 24.468\n    test 383 GeoidKarney('egm96-5.pgm').height(-56.07, -141.407) kind 3: -21.761\n    test 384 GeoidKarney('egm96-5.pgm').height(-8.195, -52.691) kind 3: -18.798\n    test 385 GeoidKarney('egm96-5.pgm').height(17.851, 24.749) kind 3: 12.612\n    test 386 GeoidKarney('egm96-5.pgm').height(0.349, -108.333) kind 3: -19.708  FAILED, KNOWN, expected -19.706\n    test 387 GeoidKarney('egm96-5.pgm').height(15.038, 126.191) kind 3: 45.792\n    test 388 GeoidKarney('egm96-5.pgm').height(-21.111, -123.696) kind 3: -8.406\n    test 389 GeoidKarney('egm96-5.pgm').height(30.947, 173.002) kind 3: -8.367\n    test 390 GeoidKarney('egm96-5.pgm').height(-10.698, -144.091) kind 3: -2.026  FAILED, KNOWN, expected -2.025\n    test 391 GeoidKarney('egm96-5.pgm').height(-29.412, 124.753) kind 3: -16.567  FAILED, KNOWN, expected -16.569\n    test 392 GeoidKarney('egm96-5.pgm').height(38.224, -137.189) kind 3: -35.435\n    test 393 GeoidKarney('egm96-5.pgm').height(36.064, -132.409) kind 3: -39.008  FAILED, KNOWN, expected -39.009\n    test 394 GeoidKarney('egm96-5.pgm').height(29.975, 178.076) kind 3: -6.921\n    test 395 GeoidKarney('egm96-5.pgm').height(-21.346, 169.26) kind 3: 50.795\n    test 396 GeoidKarney('egm96-5.pgm').height(49.282, -152.934) kind 3: 1.071  FAILED, KNOWN, expected 1.070\n    test 397 GeoidKarney('egm96-5.pgm').height(16.349, -99.962) kind 3: -14.214\n    test 398 GeoidKarney('egm96-5.pgm').height(-14.293, -167.34) kind 3: 17.600\n    test 399 GeoidKarney('egm96-5.pgm').height(47.166, -38.523) kind 3: 44.803  FAILED, KNOWN, expected 44.804\n    test 400 GeoidKarney('egm96-5.pgm').height(-58.911, 114.347) kind 3: -17.923  FAILED, KNOWN, expected -17.922\n    test 401 GeoidKarney('egm96-5.pgm').height(-9.055, 111.294) kind 3: 10.662\n    test 402 GeoidKarney('egm96-5.pgm').height(18.391, 29.692) kind 3: 7.670\n    test 403 GeoidKarney('egm96-5.pgm').height(-15.074, 22.153) kind 3: 8.624  FAILED, KNOWN, expected 8.623\n    test 404 GeoidKarney('egm96-5.pgm').height(-4.235, 62.001) kind 3: -60.722  FAILED, KNOWN, expected -60.723\n    test 405 GeoidKarney('egm96-5.pgm').height(15.171, -86.583) kind 3: 3.820  FAILED, KNOWN, expected 3.818\n    test 406 GeoidKarney('egm96-5.pgm').height(79.254, 112.116) kind 3: -1.871\n    test 407 GeoidKarney('egm96-5.pgm').height(15.947, 156.093) kind 3: 30.634  FAILED, KNOWN, expected 30.633\n    test 408 GeoidKarney('egm96-5.pgm').height(68.371, -177.382) kind 3: 2.800  FAILED, KNOWN, expected 2.801\n    test 409 GeoidKarney('egm96-5.pgm').height(-41.931, -72.093) kind 3: 19.858  FAILED, KNOWN, expected 19.859\n    test 410 GeoidKarney('egm96-5.pgm').height(-1.193, -143.133) kind 3: 5.347  FAILED, KNOWN, expected 5.348\n    test 411 GeoidKarney('egm96-5.pgm').height(-37.006, 154.513) kind 3: 9.941\n    test 412 GeoidKarney('egm96-5.pgm').height(-22.148, 9.938) kind 3: 22.322  FAILED, KNOWN, expected 22.321\n    test 413 GeoidKarney('egm96-5.pgm').height(24.329, 109.044) kind 3: -24.135\n    test 414 GeoidKarney('egm96-5.pgm').height(-54.878, 114.691) kind 3: -17.680  FAILED, KNOWN, expected -17.679\n    test 415 GeoidKarney('egm96-5.pgm').height(45.601, -80.458) kind 3: -37.151  FAILED, KNOWN, expected -37.150\n    test 416 GeoidKarney('egm96-5.pgm').height(2.372, 58.974) kind 3: -61.158\n    test 417 GeoidKarney('egm96-5.pgm').height(15.937, 165.854) kind 3: 20.603  FAILED, KNOWN, expected 20.602\n    test 418 GeoidKarney('egm96-5.pgm').height(4.889, -24.213) kind 3: 13.056  FAILED, KNOWN, expected 13.055\n    test 419 GeoidKarney('egm96-5.pgm').height(-11.392, 179.558) kind 3: 40.133  FAILED, KNOWN, expected 40.132\n    test 420 GeoidKarney('egm96-5.pgm').height(58.246, 4.862) kind 3: 43.263\n    test 421 GeoidKarney('egm96-5.pgm').height(34.302, -109.109) kind 3: -23.126\n    test 422 GeoidKarney('egm96-5.pgm').height(-58.196, 117.306) kind 3: -20.678\n    test 423 GeoidKarney('egm96-5.pgm').height(44.5, 173.769) kind 3: -8.530  FAILED, KNOWN, expected -8.529\n    test 424 GeoidKarney('egm96-5.pgm').height(-28.863, -139.775) kind 3: -8.666\n    test 425 GeoidKarney('egm96-5.pgm').height(19.507, -96.099) kind 3: -12.795  FAILED, KNOWN, expected -12.796\n    test 426 GeoidKarney('egm96-5.pgm').height(-42.488, -73.907) kind 3: 15.774  FAILED, KNOWN, expected 15.773\n    test 427 GeoidKarney('egm96-5.pgm').height(46.138, -141.429) kind 3: -19.955  FAILED, KNOWN, expected -19.954\n    test 428 GeoidKarney('egm96-5.pgm').height(60.507, 93.743) kind 3: -31.480\n    test 429 GeoidKarney('egm96-5.pgm').height(26.219, -145.434) kind 3: -17.428  FAILED, KNOWN, expected -17.429\n    test 430 GeoidKarney('egm96-5.pgm').height(-28.687, 3.37) kind 3: 24.037\n    test 431 GeoidKarney('egm96-5.pgm').height(-15.008, 117.45) kind 3: 4.519  FAILED, KNOWN, expected 4.520\n    test 432 GeoidKarney('egm96-5.pgm').height(40.71, 144.095) kind 3: 11.393  FAILED, KNOWN, expected 11.394\n    test 433 GeoidKarney('egm96-5.pgm').height(20.823, -173.611) kind 3: 5.678  FAILED, KNOWN, expected 5.679\n    test 434 GeoidKarney('egm96-5.pgm').height(16.776, -3.009) kind 3: 28.707\n    test 435 GeoidKarney('egm96-5.pgm').height(41.0, -95.0) kind 3: -30.261  FAILED, KNOWN, expected -30.262\n    test 436 GeoidKarney('egm96-5.pgm').height(49.0, -120.5) kind 3: -15.984\n    test 437 GeoidKarney('egm96-5.pgm').height(49.0, -103.5) kind 3: -18.635\n    test 438 GeoidKarney('egm96-5.pgm').height(49.0, -86.5) kind 3: -37.749\n    test 439 GeoidKarney('egm96-5.pgm').height(49.0, -69.5) kind 3: -26.691\n    test 440 GeoidKarney('egm96-5.pgm').height(33.0, -120.5) kind 3: -39.561\n    test 441 GeoidKarney('egm96-5.pgm').height(33.0, -103.5) kind 3: -22.562\n    test 442 GeoidKarney('egm96-5.pgm').height(33.0, -86.5) kind 3: -30.012\n    test 443 GeoidKarney('egm96-5.pgm').height(33.0, -69.5) kind 3: -48.039\n\n    test 444 GeoidKarney('egm96-5.pgm').height() kind 3, hits 0, eps max (in 0 FAILED): 0.001756\n    test 445 GeoidKarney('egm96-5.pgm').height() kind 3, hits 0, eps mean (of 210 total): 0.000524\n    test 446 GeoidKarney('egm96-5.pgm').height() kind 3, hits 0, eps stdev (of 210 total): 0.000371\n    test 447 GeoidKarney('egm96-5.pgm').highest(): -8.167, 147.25, 85.422\n    test 448 GeoidKarney('egm96-5.pgm').lowerleft(): -90.0, -180.0, -29.535\n    test 449 GeoidKarney('egm96-5.pgm').lowerright(): -90.0, 180.0, -29.535\n    test 450 GeoidKarney('egm96-5.pgm').lowest(): 4.667, 78.833, -107.043\n    test 451 GeoidKarney('egm96-5.pgm').upperleft(): 90.0, -180.0, 13.605\n    test 452 GeoidKarney('egm96-5.pgm').upperright(): 90.0, 180.0, 13.605\n    test 453 GeoidKarney('egm96-5.pgm').dtype: (\"'ushort'\",)\n    test 454 GeoidKarney('egm96-5.pgm').knots: ('9335520',)\n    test 455 GeoidKarney('egm96-5.pgm').mean: ('-1.317',)\n    test 456 GeoidKarney('egm96-5.pgm').nBytes: ('None',)\n    test 457 GeoidKarney('egm96-5.pgm').smooth: ('None',)\n    test 458 GeoidKarney('egm96-5.pgm').stdev: ('29.244',)\n    test 459 GeoidKarney('egm96-5.pgm')._g2ll2(180, 360): (180, 0.0)\n    test 460 GeoidKarney('egm96-5.pgm')._ll2g2(180, 360): (180, 360)\n    test 461 GeoidKarney('egm96-5.pgm')._swne: (-10.0, -100.0, 10.0, 100.0)\n    test 462 GeoidKarney('egm96-5.pgm')._swne: (-10.0, -100.0, 10.0, 100.0)\n    test 463 GeoidKarney('egm96-5.pgm').toStr: GeoidKarney('egm96-5.pgm'): lowerleft(-90.0, -180.0, -29.535), upperright(90.0, 180.0, 13.605), center(0.0, 0.0, 17.163), highest(-8.167, 147.25, 85.422), lowest(4.667, 78.833, -107.043)\n\n    test 464 closed: True\n    test 465 copy(<class 'type'>): (<class 'pygeodesy.geoids.GeoidKarney'>, True)\n    test 466 GeoidKarney.copy(): (<class 'pygeodesy.geoids.GeoidKarney'>, True)\n    test 467 GeoidPGM('egm96-5.pgm').height(-76.981, 34.17) kind 3: lli ('-76.981466, 34.17016'), H (False) or wrap (False): lli ('-76.981466, 34.17016'): outside on SE  FAILED, KNOWN, expected 11.423\n    test 468 GeoidPGM('egm96-5.pgm').height(79.695, 88.806) kind 3: lli ('79.695484, 88.805571'), H (False) or wrap (False): lli ('79.695484, 88.805571'): outside on NE  FAILED, KNOWN, expected 0.892\n    test 469 GeoidPGM('egm96-5.pgm').height(-15.245, 168.748) kind 3: lli ('-15.244804, 168.747961'), H (False) or wrap (False): lli ('-15.244804, 168.747961'): outside on SE  FAILED, KNOWN, expected 65.226\n    test 470 GeoidPGM('egm96-5.pgm').height(-19.379, 15.855) kind 3: lli ('-19.379357, 15.85511'), H (False) or wrap (False): lli ('-19.379357, 15.85511'): outside on SE  FAILED, KNOWN, expected 24.463\n    test 471 GeoidPGM('egm96-5.pgm').height(43.378, -130.552) kind 3: lli ('43.377784, -130.551582'), H (False) or wrap (False): lli ('43.377784, -130.551582'): outside on W  FAILED, KNOWN, expected -29.682\n    test 472 GeoidPGM('egm96-5.pgm').height(-16.075, 21.795) kind 3: lli ('-16.074554, 21.79547'), H (False) or wrap (False): lli ('-16.074554, 21.79547'): outside on SE  FAILED, KNOWN, expected 10.503\n    test 473 GeoidPGM('egm96-5.pgm').height(-11.256, -73.75) kind 3: lli ('-11.256389, -73.750255'), H (False) or wrap (False): lli ('-11.256389, -73.750255'): outside on S  FAILED, KNOWN, expected 29.326\n    test 474 GeoidPGM('egm96-5.pgm').height(69.017, -15.921) kind 3: lli ('69.016564, -15.921115'), H (False) or wrap (False): lli ('69.016564, -15.921115'): outside on NE  FAILED, KNOWN, expected 60.424\n    test 475 GeoidPGM('egm96-5.pgm').height(2.221, 139.739) kind 3: lli ('2.221008, 139.73935'), H (False) or wrap (False): lli ('2.221008, 139.73935'): outside on SE  FAILED, KNOWN, expected 68.996\n    test 476 GeoidPGM('egm96-5.pgm').height(-9.097, 119.142) kind 3: lli ('-9.096878, 119.141551'), H (False) or wrap (False): lli ('-9.096878, 119.141551'): outside on SE  FAILED, KNOWN, expected 36.287\n    test 477 GeoidPGM('egm96-5.pgm').height(-28.524, -22.192) kind 3: lli ('-28.523717, -22.1925'), H (False) or wrap (False): lli ('-28.523717, -22.1925'): outside on SE  FAILED, KNOWN, expected 6.626\n    test 478 GeoidPGM('egm96-5.pgm').height(12.272, -136.424) kind 3: lli ('12.27231, -136.424168'), H (False) or wrap (False): lli ('12.27231, -136.424168'): outside on SW  FAILED, KNOWN, expected -20.860\n    test 479 GeoidPGM('egm96-5.pgm').height(-15.203, -85.604) kind 3: lli ('-15.20317, -85.603753'), H (False) or wrap (False): lli ('-15.20317, -85.603753'): outside on S  FAILED, KNOWN, expected -3.267\n    test 480 GeoidPGM('egm96-5.pgm').height(-63.736, -77.17) kind 3: lli ('-63.735565, -77.169636'), H (False) or wrap (False): lli ('-63.735565, -77.169636'): outside on S  FAILED, KNOWN, expected -1.294\n    test 481 GeoidPGM('egm96-5.pgm').height(-48.771, -90.102) kind 3: lli ('-48.770825, -90.102117'), H (False) or wrap (False): lli ('-48.770825, -90.102117'): outside on S  FAILED, KNOWN, expected -2.322\n    test 482 GeoidPGM('egm96-5.pgm').height(-0.179, -126.368) kind 3: lli ('-0.178524, -126.368279'), H (False) or wrap (False): lli ('-0.178524, -126.368279'): outside on SW  FAILED, KNOWN, expected -17.557\n    test 483 GeoidPGM('egm96-5.pgm').height(1.586, -128.887) kind 3: lli ('1.585536, -128.886967'), H (False) or wrap (False): lli ('1.585536, -128.886967'): outside on SW  FAILED, KNOWN, expected -16.594\n    test 484 GeoidPGM('egm96-5.pgm').height(-48.781, -2.684) kind 3: lli ('-48.780705, -2.684224'), H (False) or wrap (False): lli ('-48.780705, -2.684224'): outside on SE  FAILED, KNOWN, expected 24.453\n    test 485 GeoidPGM('egm96-5.pgm').height(-49.092, 136.862) kind 3: lli ('-49.091632, 136.862256'), H (False) or wrap (False): lli ('-49.091632, 136.862256'): outside on SE  FAILED, KNOWN, expected -18.592\n    test 486 GeoidPGM('egm96-5.pgm').height(47.732, 17.552) kind 3: lli ('47.731727, 17.552416'), H (False) or wrap (False): lli ('47.731727, 17.552416'): outside on E  FAILED, KNOWN, expected 44.049\n    test 487 GeoidPGM('egm96-5.pgm').height(-49.11, 85.706) kind 3: lli ('-49.109549, 85.706437'), H (False) or wrap (False): lli ('-49.109549, 85.706437'): outside on SE  FAILED, KNOWN, expected 18.581\n    test 488 GeoidPGM('egm96-5.pgm').height(-49.162, 40.321) kind 3: lli ('-49.162281, 40.321209'), H (False) or wrap (False): lli ('-49.162281, 40.321209'): outside on SE  FAILED, KNOWN, expected 44.289\n    test 489 GeoidPGM('egm96-5.pgm').height(3.498, 158.118) kind 3: lli ('3.498333, 158.117699'), H (False) or wrap (False): lli ('3.498333, 158.117699'): outside on SE  FAILED, KNOWN, expected 49.816\n    test 490 GeoidPGM('egm96-5.pgm').height(-35.616, 122.648) kind 3: lli ('-35.616495, 122.648407'), H (False) or wrap (False): lli ('-35.616495, 122.648407'): outside on SE  FAILED, KNOWN, expected -36.114\n    test 491 GeoidPGM('egm96-5.pgm').height(56.598, -96.114) kind 3: lli ('56.598256, -96.113696'), H (False) or wrap (False): lli ('56.598256, -96.113696'): outside on N  FAILED, KNOWN, expected -41.048\n    test 492 GeoidPGM('egm96-5.pgm').height(-31.85, 149.121) kind 3: lli ('-31.850231, 149.120596'), H (False) or wrap (False): lli ('-31.850231, 149.120596'): outside on SE  FAILED, KNOWN, expected 26.456\n    test 493 GeoidPGM('egm96-5.pgm').height(-26.569, -177.792) kind 3: lli ('-26.568996, -177.792196'), H (False) or wrap (False): lli ('-26.568996, -177.792196'): outside on SW  FAILED, KNOWN, expected 49.317\n    test 494 GeoidPGM('egm96-5.pgm').height(76.735, -65.753) kind 3: lli ('76.734699, -65.752952'), H (False) or wrap (False): lli ('76.734699, -65.752952'): outside on N  FAILED, KNOWN, expected 20.714\n    test 495 GeoidPGM('egm96-5.pgm').height(-21.404, -122.268) kind 3: lli ('-21.404166, -122.267869'), H (False) or wrap (False): lli ('-21.404166, -122.267869'): outside on S  FAILED, KNOWN, expected -7.362\n    test 496 GeoidPGM('egm96-5.pgm').height(-77.133, -65.474) kind 3: lli ('-77.133426, -65.473819'), H (False) or wrap (False): lli ('-77.133426, -65.473819'): outside on S  FAILED, KNOWN, expected -16.492\n    test 497 GeoidPGM('egm96-5.pgm').height(-58.812, 2.276) kind 3: lli ('-58.811779, 2.276142'), H (False) or wrap (False): lli ('-58.811779, 2.276142'): outside on SE  FAILED, KNOWN, expected 18.110\n    test 498 GeoidPGM('egm96-5.pgm').height(4.415, 155.683) kind 3: lli ('4.415102, 155.683336'), H (False) or wrap (False): lli ('4.415102, 155.683336'): outside on SE  FAILED, KNOWN, expected 51.858\n    test 499 GeoidPGM('egm96-5.pgm').height(-28.146, 107.081) kind 3: lli ('-28.145768, 107.081334'), H (False) or wrap (False): lli ('-28.145768, 107.081334'): outside on SE  FAILED, KNOWN, expected -38.981\n    test 500 GeoidPGM('egm96-5.pgm').height(-10.551, -126.69) kind 3: lli ('-10.551267, -126.690468'), H (False) or wrap (False): lli ('-10.551267, -126.690468'): outside on SW  FAILED, KNOWN, expected -9.913\n    test 501 GeoidPGM('egm96-5.pgm').height(-25.444, -103.337) kind 3: lli ('-25.444344, -103.337184'), H (False) or wrap (False): lli ('-25.444344, -103.337184'): outside on S  FAILED, KNOWN, expected -2.828\n    test 502 GeoidPGM('egm96-5.pgm').height(24.436, 46.159) kind 3: lli ('24.435896, 46.158715'), H (False) or wrap (False): lli ('24.435896, 46.158715'): outside on SE  FAILED, KNOWN, expected -5.719\n    test 503 GeoidPGM('egm96-5.pgm').height(-72.889, 37.107) kind 3: lli ('-72.888898, 37.106907'), H (False) or wrap (False): lli ('-72.888898, 37.106907'): outside on SE  FAILED, KNOWN, expected 22.426\n    test 504 GeoidPGM('egm96-5.pgm').height(-19.629, 13.245) kind 3: lli ('-19.628762, 13.244525'), H (False) or wrap (False): lli ('-19.628762, 13.244525'): outside on SE  FAILED, KNOWN, expected 24.545\n    test 505 GeoidPGM('egm96-5.pgm').height(-7.602, 171.265) kind 3: lli ('-7.602449, 171.264763'), H (False) or wrap (False): lli ('-7.602449, 171.264763'): outside on SE  FAILED, KNOWN, expected 40.652\n    test 506 GeoidPGM('egm96-5.pgm').height(-45.364, -1.876) kind 3: lli ('-45.364396, -1.876412'), H (False) or wrap (False): lli ('-45.364396, -1.876412'): outside on SE  FAILED, KNOWN, expected 22.383\n    test 507 GeoidPGM('egm96-5.pgm').height(-7.292, -69.18) kind 3: lli ('-7.292121, -69.179565'), H (False) or wrap (False): lli ('-7.292121, -69.179565'): outside on S  FAILED, KNOWN, expected 22.182\n    test 508 GeoidPGM('egm96-5.pgm').height(-31.566, -166.689) kind 3: lli ('-31.566264, -166.688985'), H (False) or wrap (False): lli ('-31.566264, -166.688985'): outside on SW  FAILED, KNOWN, expected 14.930\n    test 509 GeoidPGM('egm96-5.pgm').height(-82.751, -162.085) kind 3: lli ('-82.751144, -162.08523'), H (False) or wrap (False): lli ('-82.751144, -162.08523'): outside on SW  FAILED, KNOWN, expected -47.094\n    test 510 GeoidPGM('egm96-5.pgm').height(-40.7, 99.466) kind 3: lli ('-40.699637, 99.465509'), H (False) or wrap (False): lli ('-40.699637, 99.465509'): outside on SE  FAILED, KNOWN, expected -18.421\n    test 511 GeoidPGM('egm96-5.pgm').height(48.676, 39.69) kind 3: lli ('48.675771, 39.690012'), H (False) or wrap (False): lli ('48.675771, 39.690012'): outside on E  FAILED, KNOWN, expected 10.055\n    test 512 GeoidPGM('egm96-5.pgm').height(74.817, -78.404) kind 3: lli ('74.817287, -78.404187'), H (False) or wrap (False): lli ('74.817287, -78.404187'): outside on N  FAILED, KNOWN, expected 5.786\n    test 513 GeoidPGM('egm96-5.pgm').height(-81.032, -63.865) kind 3: lli ('-81.032306, -63.864898'), H (False) or wrap (False): lli ('-81.032306, -63.864898'): outside on SE  FAILED, KNOWN, expected -22.838\n    test 514 GeoidPGM('egm96-5.pgm').height(74.022, 9.432) kind 3: lli ('74.021785, 9.431926'), H (False) or wrap (False): lli ('74.021785, 9.431926'): outside on NE  FAILED, KNOWN, expected 42.989\n    test 515 GeoidPGM('egm96-5.pgm').height(-75.071, 17.579) kind 3: lli ('-75.070563, 17.57935'), H (False) or wrap (False): lli ('-75.070563, 17.57935'): outside on SE  FAILED, KNOWN, expected 15.353\n    test 516 GeoidPGM('egm96-5.pgm').height(-12.546, -54.851) kind 3: lli ('-12.54612, -54.850614'), H (False) or wrap (False): lli ('-12.54612, -54.850614'): outside on SE  FAILED, KNOWN, expected -6.337\n    test 517 GeoidPGM('egm96-5.pgm').height(-13.621, 42.408) kind 3: lli ('-13.621418, 42.407805'), H (False) or wrap (False): lli ('-13.621418, 42.407805'): outside on SE  FAILED, KNOWN, expected -25.555\n    test 518 GeoidPGM('egm96-5.pgm').height(-2.266, -91.951) kind 3: lli ('-2.265774, -91.951437'), H (False) or wrap (False): lli ('-2.265774, -91.951437'): outside on S  FAILED, KNOWN, expected -9.923\n    test 519 GeoidPGM('egm96-5.pgm').height(-18.672, 42.547) kind 3: lli ('-18.672316, 42.547125'), H (False) or wrap (False): lli ('-18.672316, 42.547125'): outside on SE  FAILED, KNOWN, expected -10.852\n    test 520 GeoidPGM('egm96-5.pgm').height(-41.44, 157.413) kind 3: lli ('-41.439867, 157.413161'), H (False) or wrap (False): lli ('-41.439867, 157.413161'): outside on SE  FAILED, KNOWN, expected -0.135\n    test 521 GeoidPGM('egm96-5.pgm').height(53.686, -79.375) kind 3: -43.809\n    test 522 GeoidPGM('egm96-5.pgm').height(39.26, -30.351) kind 3: lli ('39.260397, -30.351359'), H (False) or wrap (False): lli ('39.260397, -30.351359'): outside on E  FAILED, KNOWN, expected 57.150\n    test 523 GeoidPGM('egm96-5.pgm').height(-51.699, -141.493) kind 3: lli ('-51.699195, -141.493082'), H (False) or wrap (False): lli ('-51.699195, -141.493082'): outside on SW  FAILED, KNOWN, expected -17.657\n    test 524 GeoidPGM('egm96-5.pgm').height(36.585, 4.515) kind 3: lli ('36.584861, 4.515157'), H (False) or wrap (False): lli ('36.584861, 4.515157'): outside on E  FAILED, KNOWN, expected 46.358\n    test 525 GeoidPGM('egm96-5.pgm').height(39.642, -54.659) kind 3: lli ('39.641638, -54.658846'), H (False) or wrap (False): lli ('39.641638, -54.658846'): outside on E  FAILED, KNOWN, expected -14.404\n    test 526 GeoidPGM('egm96-5.pgm').height(59.761, 166.567) kind 3: lli ('59.761024, 166.566646'), H (False) or wrap (False): lli ('59.761024, 166.566646'): outside on NE  FAILED, KNOWN, expected 11.242\n    test 527 GeoidPGM('egm96-5.pgm').height(51.83, 13.357) kind 3: lli ('51.830001, 13.357464'), H (False) or wrap (False): lli ('51.830001, 13.357464'): outside on E  FAILED, KNOWN, expected 42.237\n    test 528 GeoidPGM('egm96-5.pgm').height(-36.531, -175.431) kind 3: lli ('-36.530912, -175.430804'), H (False) or wrap (False): lli ('-36.530912, -175.430804'): outside on SW  FAILED, KNOWN, expected 22.147\n    test 529 GeoidPGM('egm96-5.pgm').height(-37.08, 125.264) kind 3: lli ('-37.079518, 125.263901'), H (False) or wrap (False): lli ('-37.079518, 125.263901'): outside on SE  FAILED, KNOWN, expected -33.396\n    test 530 GeoidPGM('egm96-5.pgm').height(-68.651, 92.732) kind 3: lli ('-68.650762, 92.731524'), H (False) or wrap (False): lli ('-68.650762, 92.731524'): outside on SE  FAILED, KNOWN, expected 7.961\n    test 531 GeoidPGM('egm96-5.pgm').height(35.087, 45.336) kind 3: lli ('35.086645, 45.335611'), H (False) or wrap (False): lli ('35.086645, 45.335611'): outside on E  FAILED, KNOWN, expected 7.229\n    test 532 GeoidPGM('egm96-5.pgm').height(-61.356, -169.379) kind 3: lli ('-61.355646, -169.378929'), H (False) or wrap (False): lli ('-61.355646, -169.378929'): outside on SW  FAILED, KNOWN, expected -44.292\n    test 533 GeoidPGM('egm96-5.pgm').height(-36.955, 179.12) kind 3: lli ('-36.954967, 179.11982'), H (False) or wrap (False): lli ('-36.954967, 179.11982'): outside on SE  FAILED, KNOWN, expected 21.875\n    test 534 GeoidPGM('egm96-5.pgm').height(10.248, -6.714) kind 3: lli ('10.248399, -6.713559'), H (False) or wrap (False): lli ('10.248399, -6.713559'): outside on SE  FAILED, KNOWN, expected 28.933\n    test 535 GeoidPGM('egm96-5.pgm').height(36.868, 84.602) kind 3: lli ('36.868193, 84.602243'), H (False) or wrap (False): lli ('36.868193, 84.602243'): outside on E  FAILED, KNOWN, expected -41.238\n    test 536 GeoidPGM('egm96-5.pgm').height(28.637, 88.933) kind 3: lli ('28.636703, 88.932955'), H (False) or wrap (False): lli ('28.636703, 88.932955'): outside on E  FAILED, KNOWN, expected -31.331\n    test 537 GeoidPGM('egm96-5.pgm').height(54.811, -99.968) kind 3: -32.702\n    test 538 GeoidPGM('egm96-5.pgm').height(7.611, 145.911) kind 3: lli ('7.610621, 145.911188'), H (False) or wrap (False): lli ('7.610621, 145.911188'): outside on SE  FAILED, KNOWN, expected 60.117\n    test 539 GeoidPGM('egm96-5.pgm').height(59.412, 170.102) kind 3: lli ('59.411557, 170.102394'), H (False) or wrap (False): lli ('59.411557, 170.102394'): outside on NE  FAILED, KNOWN, expected 6.457\n    test 540 GeoidPGM('egm96-5.pgm').height(-61.469, 126.144) kind 3: lli ('-61.468618, 126.144056'), H (False) or wrap (False): lli ('-61.468618, 126.144056'): outside on SE  FAILED, KNOWN, expected -31.961\n    test 541 GeoidPGM('egm96-5.pgm').height(18.514, -137.083) kind 3: lli ('18.514019, -137.083301'), H (False) or wrap (False): lli ('18.514019, -137.083301'): outside on SW  FAILED, KNOWN, expected -26.571\n    test 542 GeoidPGM('egm96-5.pgm').height(7.854, -126.799) kind 3: lli ('7.854318, -126.799148'), H (False) or wrap (False): lli ('7.854318, -126.799148'): outside on SW  FAILED, KNOWN, expected -29.760\n    test 543 GeoidPGM('egm96-5.pgm').height(47.489, 134.183) kind 3: lli ('47.489222, 134.182527'), H (False) or wrap (False): lli ('47.489222, 134.182527'): outside on E  FAILED, KNOWN, expected 21.980\n    test 544 GeoidPGM('egm96-5.pgm').height(-34.144, -11.922) kind 3: lli ('-34.143602, -11.921567'), H (False) or wrap (False): lli ('-34.143602, -11.921567'): outside on SE  FAILED, KNOWN, expected 16.849\n    test 545 GeoidPGM('egm96-5.pgm').height(-58.389, 117.458) kind 3: lli ('-58.388787, 117.457755'), H (False) or wrap (False): lli ('-58.388787, 117.457755'): outside on SE  FAILED, KNOWN, expected -20.923\n    test 546 GeoidPGM('egm96-5.pgm').height(9.773, 95.846) kind 3: lli ('9.772764, 95.845943'), H (False) or wrap (False): lli ('9.772764, 95.845943'): outside on SE  FAILED, KNOWN, expected -42.749\n    test 547 GeoidPGM('egm96-5.pgm').height(-53.12, 136.994) kind 3: lli ('-53.120381, 136.993994'), H (False) or wrap (False): lli ('-53.120381, 136.993994'): outside on SE  FAILED, KNOWN, expected -21.841\n    test 548 GeoidPGM('egm96-5.pgm').height(-50.35, 0.075) kind 3: lli ('-50.349867, 0.07532'), H (False) or wrap (False): lli ('-50.349867, 0.07532'): outside on SE  FAILED, KNOWN, expected 25.482\n    test 549 GeoidPGM('egm96-5.pgm').height(31.438, -170.879) kind 3: lli ('31.438387, -170.878548'), H (False) or wrap (False): lli ('31.438387, -170.878548'): outside on W  FAILED, KNOWN, expected -8.847\n    test 550 GeoidPGM('egm96-5.pgm').height(37.541, -153.024) kind 3: lli ('37.540689, -153.024228'), H (False) or wrap (False): lli ('37.540689, -153.024228'): outside on W  FAILED, KNOWN, expected -19.604\n    test 551 GeoidPGM('egm96-5.pgm').height(27.586, 2.444) kind 3: lli ('27.586088, 2.443556'), H (False) or wrap (False): lli ('27.586088, 2.443556'): outside on E  FAILED, KNOWN, expected 25.668\n    test 552 GeoidPGM('egm96-5.pgm').height(-26.139, -106.201) kind 3: lli ('-26.139126, -106.20081'), H (False) or wrap (False): lli ('-26.139126, -106.20081'): outside on S  FAILED, KNOWN, expected -3.772\n    test 553 GeoidPGM('egm96-5.pgm').height(-33.426, -14.84) kind 3: lli ('-33.425976, -14.840359'), H (False) or wrap (False): lli ('-33.425976, -14.840359'): outside on SE  FAILED, KNOWN, expected 17.748\n    test 554 GeoidPGM('egm96-5.pgm').height(39.586, -153.019) kind 3: lli ('39.586286, -153.018974'), H (False) or wrap (False): lli ('39.586286, -153.018974'): outside on W  FAILED, KNOWN, expected -17.839\n    test 555 GeoidPGM('egm96-5.pgm').height(-60.79, -2.578) kind 3: lli ('-60.790289, -2.578163'), H (False) or wrap (False): lli ('-60.790289, -2.578163'): outside on SE  FAILED, KNOWN, expected 14.292\n    test 556 GeoidPGM('egm96-5.pgm').height(-20.131, 21.975) kind 3: lli ('-20.130538, 21.974941'), H (False) or wrap (False): lli ('-20.130538, 21.974941'): outside on SE  FAILED, KNOWN, expected 16.529\n    test 557 GeoidPGM('egm96-5.pgm').height(75.649, 99.921) kind 3: lli ('75.64878, 99.920587'), H (False) or wrap (False): lli ('75.64878, 99.920587'): outside on NE  FAILED, KNOWN, expected -8.229\n    test 558 GeoidPGM('egm96-5.pgm').height(-0.385, -23.788) kind 3: lli ('-0.385453, -23.788336'), H (False) or wrap (False): lli ('-0.385453, -23.788336'): outside on SE  FAILED, KNOWN, expected 9.830\n    test 559 GeoidPGM('egm96-5.pgm').height(-51.56, -50.327) kind 3: lli ('-51.559564, -50.32687'), H (False) or wrap (False): lli ('-51.559564, -50.32687'): outside on SE  FAILED, KNOWN, expected 6.215\n    test 560 GeoidPGM('egm96-5.pgm').height(-43.129, -167.271) kind 3: lli ('-43.129209, -167.27147'), H (False) or wrap (False): lli ('-43.129209, -167.27147'): outside on SW  FAILED, KNOWN, expected -2.960\n    test 561 GeoidPGM('egm96-5.pgm').height(46.374, 71.948) kind 3: lli ('46.374177, 71.947616'), H (False) or wrap (False): lli ('46.374177, 71.947616'): outside on E  FAILED, KNOWN, expected -42.323\n    test 562 GeoidPGM('egm96-5.pgm').height(-22.783, 140.657) kind 3: lli ('-22.783085, 140.657444'), H (False) or wrap (False): lli ('-22.783085, 140.657444'): outside on SE  FAILED, KNOWN, expected 38.356\n    test 563 GeoidPGM('egm96-5.pgm').height(-12.056, 122.804) kind 3: lli ('-12.05584, 122.80402'), H (False) or wrap (False): lli ('-12.05584, 122.80402'): outside on SE  FAILED, KNOWN, expected 34.259\n    test 564 GeoidPGM('egm96-5.pgm').height(30.127, 94.738) kind 3: lli ('30.127372, 94.738186'), H (False) or wrap (False): lli ('30.127372, 94.738186'): outside on E  FAILED, KNOWN, expected -37.397\n    test 565 GeoidPGM('egm96-5.pgm').height(46.296, -174.479) kind 3: lli ('46.296018, -174.478616'), H (False) or wrap (False): lli ('46.296018, -174.478616'): outside on W  FAILED, KNOWN, expected -2.016\n    test 566 GeoidPGM('egm96-5.pgm').height(34.99, 15.052) kind 3: lli ('34.989646, 15.051646'), H (False) or wrap (False): lli ('34.989646, 15.051646'): outside on E  FAILED, KNOWN, expected 33.912\n    test 567 GeoidPGM('egm96-5.pgm').height(-51.287, 90.565) kind 3: lli ('-51.287168, 90.564711'), H (False) or wrap (False): lli ('-51.287168, 90.564711'): outside on SE  FAILED, KNOWN, expected 12.676\n    test 568 GeoidPGM('egm96-5.pgm').height(34.217, 141.302) kind 3: lli ('34.217016, 141.301548'), H (False) or wrap (False): lli ('34.217016, 141.301548'): outside on E  FAILED, KNOWN, expected 15.692\n    test 569 GeoidPGM('egm96-5.pgm').height(-40.423, -142.787) kind 3: lli ('-40.423023, -142.786592'), H (False) or wrap (False): lli ('-40.423023, -142.786592'): outside on SW  FAILED, KNOWN, expected -11.117\n    test 570 GeoidPGM('egm96-5.pgm').height(-17.854, -170.216) kind 3: lli ('-17.854486, -170.216354'), H (False) or wrap (False): lli ('-17.854486, -170.216354'): outside on SW  FAILED, KNOWN, expected 27.437\n    test 571 GeoidPGM('egm96-5.pgm').height(47.803, 112.701) kind 3: lli ('47.803271, 112.700942'), H (False) or wrap (False): lli ('47.803271, 112.700942'): outside on E  FAILED, KNOWN, expected -23.894\n    test 572 GeoidPGM('egm96-5.pgm').height(-23.276, 133.454) kind 3: lli ('-23.275962, 133.453821'), H (False) or wrap (False): lli ('-23.275962, 133.453821'): outside on SE  FAILED, KNOWN, expected 18.766\n    test 573 GeoidPGM('egm96-5.pgm').height(-26.884, -36.571) kind 3: lli ('-26.884369, -36.570654'), H (False) or wrap (False): lli ('-26.884369, -36.570654'): outside on SE  FAILED, KNOWN, expected -7.452\n    test 574 GeoidPGM('egm96-5.pgm').height(-37.106, 31.128) kind 3: lli ('-37.106468, 31.127939'), H (False) or wrap (False): lli ('-37.106468, 31.127939'): outside on SE  FAILED, KNOWN, expected 30.143\n    test 575 GeoidPGM('egm96-5.pgm').height(-75.363, -173.674) kind 3: lli ('-75.363185, -173.673649'), H (False) or wrap (False): lli ('-75.363185, -173.673649'): outside on SW  FAILED, KNOWN, expected -61.172\n    test 576 GeoidPGM('egm96-5.pgm').height(-18.305, 69.016) kind 3: lli ('-18.30485, 69.015565'), H (False) or wrap (False): lli ('-18.30485, 69.015565'): outside on SE  FAILED, KNOWN, expected -24.890\n    test 577 GeoidPGM('egm96-5.pgm').height(39.527, 23.58) kind 3: lli ('39.527401, 23.580206'), H (False) or wrap (False): lli ('39.527401, 23.580206'): outside on E  FAILED, KNOWN, expected 39.519\n    test 578 GeoidPGM('egm96-5.pgm').height(68.903, 30.97) kind 3: lli ('68.903148, 30.970247'), H (False) or wrap (False): lli ('68.903148, 30.970247'): outside on NE  FAILED, KNOWN, expected 19.419\n    test 579 GeoidPGM('egm96-5.pgm').height(53.937, 168.318) kind 3: lli ('53.936937, 168.318201'), H (False) or wrap (False): lli ('53.936937, 168.318201'): outside on E  FAILED, KNOWN, expected 2.069\n    test 580 GeoidPGM('egm96-5.pgm').height(-38.6, 64.812) kind 3: lli ('-38.600098, 64.811532'), H (False) or wrap (False): lli ('-38.600098, 64.811532'): outside on SE  FAILED, KNOWN, expected 25.048\n    test 581 GeoidPGM('egm96-5.pgm').height(-41.396, -69.739) kind 3: lli ('-41.395739, -69.739418'), H (False) or wrap (False): lli ('-41.395739, -69.739418'): outside on S  FAILED, KNOWN, expected 22.547\n    test 582 GeoidPGM('egm96-5.pgm').height(50.158, 72.319) kind 3: lli ('50.157749, 72.319017'), H (False) or wrap (False): lli ('50.157749, 72.319017'): outside on E  FAILED, KNOWN, expected -34.359\n    test 583 GeoidPGM('egm96-5.pgm').height(27.692, 176.153) kind 3: lli ('27.691879, 176.152884'), H (False) or wrap (False): lli ('27.691879, 176.152884'): outside on E  FAILED, KNOWN, expected -5.453\n    test 584 GeoidPGM('egm96-5.pgm').height(-48.419, 170.454) kind 3: lli ('-48.419449, 170.454472'), H (False) or wrap (False): lli ('-48.419449, 170.454472'): outside on SE  FAILED, KNOWN, expected -6.804\n    test 585 GeoidPGM('egm96-5.pgm').height(-65.346, -124.976) kind 3: lli ('-65.34567, -124.975961'), H (False) or wrap (False): lli ('-65.34567, -124.975961'): outside on S  FAILED, KNOWN, expected -35.054\n    test 586 GeoidPGM('egm96-5.pgm').height(-51.873, 167.266) kind 3: lli ('-51.873009, 167.265613'), H (False) or wrap (False): lli ('-51.873009, 167.265613'): outside on SE  FAILED, KNOWN, expected -15.418\n    test 587 GeoidPGM('egm96-5.pgm').height(-7.263, 84.308) kind 3: lli ('-7.262544, 84.307626'), H (False) or wrap (False): lli ('-7.262544, 84.307626'): outside on SE  FAILED, KNOWN, expected -79.557\n    test 588 GeoidPGM('egm96-5.pgm').height(-1.461, -105.458) kind 3: lli ('-1.461003, -105.458323'), H (False) or wrap (False): lli ('-1.461003, -105.458323'): outside on S  FAILED, KNOWN, expected -16.894\n    test 589 GeoidPGM('egm96-5.pgm').height(7.684, 161.873) kind 3: lli ('7.684324, 161.87293'), H (False) or wrap (False): lli ('7.684324, 161.87293'): outside on SE  FAILED, KNOWN, expected 36.215\n    test 590 GeoidPGM('egm96-5.pgm').height(-31.475, -158.52) kind 3: lli ('-31.474549, -158.520033'), H (False) or wrap (False): lli ('-31.474549, -158.520033'): outside on SW  FAILED, KNOWN, expected 3.523\n    test 591 GeoidPGM('egm96-5.pgm').height(-36.187, 62.917) kind 3: lli ('-36.187212, 62.917075'), H (False) or wrap (False): lli ('-36.187212, 62.917075'): outside on SE  FAILED, KNOWN, expected 23.797\n    test 592 GeoidPGM('egm96-5.pgm').height(16.003, 141.687) kind 3: lli ('16.002975, 141.686552'), H (False) or wrap (False): lli ('16.002975, 141.686552'): outside on SE  FAILED, KNOWN, expected 51.586\n    test 593 GeoidPGM('egm96-5.pgm').height(30.182, 86.261) kind 3: lli ('30.182218, 86.260576'), H (False) or wrap (False): lli ('30.182218, 86.260576'): outside on E  FAILED, KNOWN, expected -30.131\n    test 594 GeoidPGM('egm96-5.pgm').height(-77.304, 159.498) kind 3: lli ('-77.303842, 159.497665'), H (False) or wrap (False): lli ('-77.303842, 159.497665'): outside on SE  FAILED, KNOWN, expected -51.848\n    test 595 GeoidPGM('egm96-5.pgm').height(39.536, 139.795) kind 3: lli ('39.536, 139.795358'), H (False) or wrap (False): lli ('39.536, 139.795358'): outside on E  FAILED, KNOWN, expected 37.192\n    test 596 GeoidPGM('egm96-5.pgm').height(8.569, 134.618) kind 3: lli ('8.569309, 134.618403'), H (False) or wrap (False): lli ('8.569309, 134.618403'): outside on SE  FAILED, KNOWN, expected 63.597\n    test 597 GeoidPGM('egm96-5.pgm').height(14.473, 90.596) kind 3: lli ('14.473483, 90.595663'), H (False) or wrap (False): lli ('14.473483, 90.595663'): outside on SE  FAILED, KNOWN, expected -62.636\n    test 598 GeoidPGM('egm96-5.pgm').height(-13.138, -99.589) kind 3: lli ('-13.13767, -99.589202'), H (False) or wrap (False): lli ('-13.13767, -99.589202'): outside on S  FAILED, KNOWN, expected -8.717\n    test 599 GeoidPGM('egm96-5.pgm').height(34.212, -26.307) kind 3: lli ('34.211572, -26.307194'), H (False) or wrap (False): lli ('34.211572, -26.307194'): outside on E  FAILED, KNOWN, expected 40.645\n    test 600 GeoidPGM('egm96-5.pgm').height(21.89, 76.371) kind 3: lli ('21.889732, 76.371362'), H (False) or wrap (False): lli ('21.889732, 76.371362'): outside on SE  FAILED, KNOWN, expected -60.729\n    test 601 GeoidPGM('egm96-5.pgm').height(29.793, 120.487) kind 3: lli ('29.792909, 120.48703'), H (False) or wrap (False): lli ('29.792909, 120.48703'): outside on E  FAILED, KNOWN, expected 8.783\n    test 602 GeoidPGM('egm96-5.pgm').height(15.724, 122.714) kind 3: lli ('15.723814, 122.713685'), H (False) or wrap (False): lli ('15.723814, 122.713685'): outside on SE  FAILED, KNOWN, expected 31.523\n    test 603 GeoidPGM('egm96-5.pgm').height(-66.208, -78.499) kind 3: lli ('-66.20776, -78.498807'), H (False) or wrap (False): lli ('-66.20776, -78.498807'): outside on S  FAILED, KNOWN, expected -6.250\n    test 604 GeoidPGM('egm96-5.pgm').height(-39.507, 55.809) kind 3: lli ('-39.507049, 55.808743'), H (False) or wrap (False): lli ('-39.507049, 55.808743'): outside on SE  FAILED, KNOWN, expected 32.599\n    test 605 GeoidPGM('egm96-5.pgm').height(28.159, 51.476) kind 3: lli ('28.159494, 51.476474'), H (False) or wrap (False): lli ('28.159494, 51.476474'): outside on E  FAILED, KNOWN, expected -24.536\n    test 606 GeoidPGM('egm96-5.pgm').height(-36.207, 120.205) kind 3: lli ('-36.206825, 120.205019'), H (False) or wrap (False): lli ('-36.206825, 120.205019'): outside on SE  FAILED, KNOWN, expected -38.869\n    test 607 GeoidPGM('egm96-5.pgm').height(30.575, -99.998) kind 3: -23.213\n    test 608 GeoidPGM('egm96-5.pgm').height(-16.993, 37.136) kind 3: lli ('-16.992515, 37.135881'), H (False) or wrap (False): lli ('-16.992515, 37.135881'): outside on SE  FAILED, KNOWN, expected -11.824\n    test 609 GeoidPGM('egm96-5.pgm').height(-11.477, 12.039) kind 3: lli ('-11.476997, 12.038708'), H (False) or wrap (False): lli ('-11.476997, 12.038708'): outside on SE  FAILED, KNOWN, expected 16.709\n    test 610 GeoidPGM('egm96-5.pgm').height(30.428, -144.765) kind 3: lli ('30.428465, -144.765049'), H (False) or wrap (False): lli ('30.428465, -144.765049'): outside on W  FAILED, KNOWN, expected -22.379\n    test 611 GeoidPGM('egm96-5.pgm').height(-17.44, -92.424) kind 3: lli ('-17.439773, -92.424339'), H (False) or wrap (False): lli ('-17.439773, -92.424339'): outside on S  FAILED, KNOWN, expected -4.941\n    test 612 GeoidPGM('egm96-5.pgm').height(40.203, 143.43) kind 3: lli ('40.203164, 143.429799'), H (False) or wrap (False): lli ('40.203164, 143.429799'): outside on E  FAILED, KNOWN, expected 19.394\n    test 613 GeoidPGM('egm96-5.pgm').height(-37.098, -106.574) kind 3: lli ('-37.098392, -106.573712'), H (False) or wrap (False): lli ('-37.098392, -106.573712'): outside on S  FAILED, KNOWN, expected -9.381\n    test 614 GeoidPGM('egm96-5.pgm').height(54.62, -68.413) kind 3: -23.318  FAILED, KNOWN, expected -23.319\n    test 615 GeoidPGM('egm96-5.pgm').height(-31.633, 148.182) kind 3: lli ('-31.633252, 148.181926'), H (False) or wrap (False): lli ('-31.633252, 148.181926'): outside on SE  FAILED, KNOWN, expected 24.468\n    test 616 GeoidPGM('egm96-5.pgm').height(-56.07, -141.407) kind 3: lli ('-56.069748, -141.406778'), H (False) or wrap (False): lli ('-56.069748, -141.406778'): outside on SW  FAILED, KNOWN, expected -21.761\n    test 617 GeoidPGM('egm96-5.pgm').height(-8.195, -52.691) kind 3: lli ('-8.195214, -52.691177'), H (False) or wrap (False): lli ('-8.195214, -52.691177'): outside on SE  FAILED, KNOWN, expected -18.798\n    test 618 GeoidPGM('egm96-5.pgm').height(17.851, 24.749) kind 3: lli ('17.850526, 24.748606'), H (False) or wrap (False): lli ('17.850526, 24.748606'): outside on SE  FAILED, KNOWN, expected 12.612\n    test 619 GeoidPGM('egm96-5.pgm').height(0.349, -108.333) kind 3: lli ('0.349465, -108.332667'), H (False) or wrap (False): lli ('0.349465, -108.332667'): outside on S  FAILED, KNOWN, expected -19.706\n    test 620 GeoidPGM('egm96-5.pgm').height(15.038, 126.191) kind 3: lli ('15.037932, 126.190545'), H (False) or wrap (False): lli ('15.037932, 126.190545'): outside on SE  FAILED, KNOWN, expected 45.792\n    test 621 GeoidPGM('egm96-5.pgm').height(-21.111, -123.696) kind 3: lli ('-21.111105, -123.695981'), H (False) or wrap (False): lli ('-21.111105, -123.695981'): outside on S  FAILED, KNOWN, expected -8.406\n    test 622 GeoidPGM('egm96-5.pgm').height(30.947, 173.002) kind 3: lli ('30.946618, 173.002137'), H (False) or wrap (False): lli ('30.946618, 173.002137'): outside on E  FAILED, KNOWN, expected -8.367\n    test 623 GeoidPGM('egm96-5.pgm').height(-10.698, -144.091) kind 3: lli ('-10.698334, -144.091109'), H (False) or wrap (False): lli ('-10.698334, -144.091109'): outside on SW  FAILED, KNOWN, expected -2.025\n    test 624 GeoidPGM('egm96-5.pgm').height(-29.412, 124.753) kind 3: lli ('-29.412071, 124.75279'), H (False) or wrap (False): lli ('-29.412071, 124.75279'): outside on SE  FAILED, KNOWN, expected -16.569\n    test 625 GeoidPGM('egm96-5.pgm').height(38.224, -137.189) kind 3: lli ('38.223621, -137.189376'), H (False) or wrap (False): lli ('38.223621, -137.189376'): outside on W  FAILED, KNOWN, expected -35.435\n    test 626 GeoidPGM('egm96-5.pgm').height(36.064, -132.409) kind 3: lli ('36.063775, -132.409284'), H (False) or wrap (False): lli ('36.063775, -132.409284'): outside on W  FAILED, KNOWN, expected -39.009\n    test 627 GeoidPGM('egm96-5.pgm').height(29.975, 178.076) kind 3: lli ('29.974676, 178.075894'), H (False) or wrap (False): lli ('29.974676, 178.075894'): outside on E  FAILED, KNOWN, expected -6.921\n    test 628 GeoidPGM('egm96-5.pgm').height(-21.346, 169.26) kind 3: lli ('-21.346396, 169.259508'), H (False) or wrap (False): lli ('-21.346396, 169.259508'): outside on SE  FAILED, KNOWN, expected 50.795\n    test 629 GeoidPGM('egm96-5.pgm').height(49.282, -152.934) kind 3: lli ('49.282472, -152.934409'), H (False) or wrap (False): lli ('49.282472, -152.934409'): outside on W  FAILED, KNOWN, expected 1.070\n    test 630 GeoidPGM('egm96-5.pgm').height(16.349, -99.962) kind 3: lli ('16.349121, -99.962229'), H (False) or wrap (False): lli ('16.349121, -99.962229'): outside on S  FAILED, KNOWN, expected -14.214\n    test 631 GeoidPGM('egm96-5.pgm').height(-14.293, -167.34) kind 3: lli ('-14.293325, -167.339799'), H (False) or wrap (False): lli ('-14.293325, -167.339799'): outside on SW  FAILED, KNOWN, expected 17.600\n    test 632 GeoidPGM('egm96-5.pgm').height(47.166, -38.523) kind 3: lli ('47.165911, -38.522629'), H (False) or wrap (False): lli ('47.165911, -38.522629'): outside on E  FAILED, KNOWN, expected 44.804\n    test 633 GeoidPGM('egm96-5.pgm').height(-58.911, 114.347) kind 3: lli ('-58.910597, 114.346927'), H (False) or wrap (False): lli ('-58.910597, 114.346927'): outside on SE  FAILED, KNOWN, expected -17.922\n    test 634 GeoidPGM('egm96-5.pgm').height(-9.055, 111.294) kind 3: lli ('-9.055095, 111.294422'), H (False) or wrap (False): lli ('-9.055095, 111.294422'): outside on SE  FAILED, KNOWN, expected 10.662\n    test 635 GeoidPGM('egm96-5.pgm').height(18.391, 29.692) kind 3: lli ('18.390988, 29.691577'), H (False) or wrap (False): lli ('18.390988, 29.691577'): outside on SE  FAILED, KNOWN, expected 7.670\n    test 636 GeoidPGM('egm96-5.pgm').height(-15.074, 22.153) kind 3: lli ('-15.074412, 22.152663'), H (False) or wrap (False): lli ('-15.074412, 22.152663'): outside on SE  FAILED, KNOWN, expected 8.623\n    test 637 GeoidPGM('egm96-5.pgm').height(-4.235, 62.001) kind 3: lli ('-4.234571, 62.001081'), H (False) or wrap (False): lli ('-4.234571, 62.001081'): outside on SE  FAILED, KNOWN, expected -60.723\n    test 638 GeoidPGM('egm96-5.pgm').height(15.171, -86.583) kind 3: lli ('15.170822, -86.582929'), H (False) or wrap (False): lli ('15.170822, -86.582929'): outside on S  FAILED, KNOWN, expected 3.818\n    test 639 GeoidPGM('egm96-5.pgm').height(79.254, 112.116) kind 3: lli ('79.254009, 112.115515'), H (False) or wrap (False): lli ('79.254009, 112.115515'): outside on NE  FAILED, KNOWN, expected -1.871\n    test 640 GeoidPGM('egm96-5.pgm').height(15.947, 156.093) kind 3: lli ('15.947068, 156.092678'), H (False) or wrap (False): lli ('15.947068, 156.092678'): outside on SE  FAILED, KNOWN, expected 30.633\n    test 641 GeoidPGM('egm96-5.pgm').height(68.371, -177.382) kind 3: lli ('68.370605, -177.382127'), H (False) or wrap (False): lli ('68.370605, -177.382127'): outside on NW  FAILED, KNOWN, expected 2.801\n    test 642 GeoidPGM('egm96-5.pgm').height(-41.931, -72.093) kind 3: lli ('-41.931009, -72.093413'), H (False) or wrap (False): lli ('-41.931009, -72.093413'): outside on S  FAILED, KNOWN, expected 19.859\n    test 643 GeoidPGM('egm96-5.pgm').height(-1.193, -143.133) kind 3: lli ('-1.192967, -143.133078'), H (False) or wrap (False): lli ('-1.192967, -143.133078'): outside on SW  FAILED, KNOWN, expected 5.348\n    test 644 GeoidPGM('egm96-5.pgm').height(-37.006, 154.513) kind 3: lli ('-37.006115, 154.512534'), H (False) or wrap (False): lli ('-37.006115, 154.512534'): outside on SE  FAILED, KNOWN, expected 9.941\n    test 645 GeoidPGM('egm96-5.pgm').height(-22.148, 9.938) kind 3: lli ('-22.148493, 9.938408'), H (False) or wrap (False): lli ('-22.148493, 9.938408'): outside on SE  FAILED, KNOWN, expected 22.321\n    test 646 GeoidPGM('egm96-5.pgm').height(24.329, 109.044) kind 3: lli ('24.328746, 109.043774'), H (False) or wrap (False): lli ('24.328746, 109.043774'): outside on SE  FAILED, KNOWN, expected -24.135\n    test 647 GeoidPGM('egm96-5.pgm').height(-54.878, 114.691) kind 3: lli ('-54.877699, 114.691444'), H (False) or wrap (False): lli ('-54.877699, 114.691444'): outside on SE  FAILED, KNOWN, expected -17.679\n    test 648 GeoidPGM('egm96-5.pgm').height(45.601, -80.458) kind 3: -37.151  FAILED, KNOWN, expected -37.150\n    test 649 GeoidPGM('egm96-5.pgm').height(2.372, 58.974) kind 3: lli ('2.371766, 58.974082'), H (False) or wrap (False): lli ('2.371766, 58.974082'): outside on SE  FAILED, KNOWN, expected -61.158\n    test 650 GeoidPGM('egm96-5.pgm').height(15.937, 165.854) kind 3: lli ('15.936522, 165.854035'), H (False) or wrap (False): lli ('15.936522, 165.854035'): outside on SE  FAILED, KNOWN, expected 20.602\n    test 651 GeoidPGM('egm96-5.pgm').height(4.889, -24.213) kind 3: lli ('4.889499, -24.213194'), H (False) or wrap (False): lli ('4.889499, -24.213194'): outside on SE  FAILED, KNOWN, expected 13.055\n    test 652 GeoidPGM('egm96-5.pgm').height(-11.392, 179.558) kind 3: lli ('-11.392365, 179.558198'), H (False) or wrap (False): lli ('-11.392365, 179.558198'): outside on SE  FAILED, KNOWN, expected 40.132\n    test 653 GeoidPGM('egm96-5.pgm').height(58.246, 4.862) kind 3: lli ('58.24629, 4.862128'), H (False) or wrap (False): lli ('58.24629, 4.862128'): outside on NE  FAILED, KNOWN, expected 43.263\n    test 654 GeoidPGM('egm96-5.pgm').height(34.302, -109.109) kind 3: -23.126\n    test 655 GeoidPGM('egm96-5.pgm').height(-58.196, 117.306) kind 3: lli ('-58.195787, 117.305696'), H (False) or wrap (False): lli ('-58.195787, 117.305696'): outside on SE  FAILED, KNOWN, expected -20.678\n    test 656 GeoidPGM('egm96-5.pgm').height(44.5, 173.769) kind 3: lli ('44.499876, 173.768568'), H (False) or wrap (False): lli ('44.499876, 173.768568'): outside on E  FAILED, KNOWN, expected -8.529\n    test 657 GeoidPGM('egm96-5.pgm').height(-28.863, -139.775) kind 3: lli ('-28.862539, -139.774812'), H (False) or wrap (False): lli ('-28.862539, -139.774812'): outside on SW  FAILED, KNOWN, expected -8.666\n    test 658 GeoidPGM('egm96-5.pgm').height(19.507, -96.099) kind 3: lli ('19.507043, -96.099433'), H (False) or wrap (False): lli ('19.507043, -96.099433'): outside on S  FAILED, KNOWN, expected -12.796\n    test 659 GeoidPGM('egm96-5.pgm').height(-42.488, -73.907) kind 3: lli ('-42.487604, -73.906602'), H (False) or wrap (False): lli ('-42.487604, -73.906602'): outside on S  FAILED, KNOWN, expected 15.773\n    test 660 GeoidPGM('egm96-5.pgm').height(46.138, -141.429) kind 3: lli ('46.138437, -141.429193'), H (False) or wrap (False): lli ('46.138437, -141.429193'): outside on W  FAILED, KNOWN, expected -19.954\n    test 661 GeoidPGM('egm96-5.pgm').height(60.507, 93.743) kind 3: lli ('60.506969, 93.74336'), H (False) or wrap (False): lli ('60.506969, 93.74336'): outside on NE  FAILED, KNOWN, expected -31.480\n    test 662 GeoidPGM('egm96-5.pgm').height(26.219, -145.434) kind 3: lli ('26.219081, -145.434391'), H (False) or wrap (False): lli ('26.219081, -145.434391'): outside on W  FAILED, KNOWN, expected -17.429\n    test 663 GeoidPGM('egm96-5.pgm').height(-28.687, 3.37) kind 3: lli ('-28.68714, 3.370196'), H (False) or wrap (False): lli ('-28.68714, 3.370196'): outside on SE  FAILED, KNOWN, expected 24.037\n    test 664 GeoidPGM('egm96-5.pgm').height(-15.008, 117.45) kind 3: lli ('-15.007944, 117.449536'), H (False) or wrap (False): lli ('-15.007944, 117.449536'): outside on SE  FAILED, KNOWN, expected 4.520\n    test 665 GeoidPGM('egm96-5.pgm').height(40.71, 144.095) kind 3: lli ('40.710024, 144.095126'), H (False) or wrap (False): lli ('40.710024, 144.095126'): outside on E  FAILED, KNOWN, expected 11.394\n    test 666 GeoidPGM('egm96-5.pgm').height(20.823, -173.611) kind 3: lli ('20.823096, -173.610797'), H (False) or wrap (False): lli ('20.823096, -173.610797'): outside on SW  FAILED, KNOWN, expected 5.679\n    test 667 GeoidPGM('egm96-5.pgm').height(16.776, -3.009) kind 3: lli ('16.776, -3.009'), H (False) or wrap (False): lli ('16.776, -3.009'): outside on SE  FAILED, KNOWN, expected 28.707\n    test 668 GeoidPGM('egm96-5.pgm').height(41.0, -95.0) kind 3: -30.261  FAILED, KNOWN, expected -30.262\n    test 669 GeoidPGM('egm96-5.pgm').height(49.0, -120.5) kind 3: -15.984\n    test 670 GeoidPGM('egm96-5.pgm').height(49.0, -103.5) kind 3: -18.636  FAILED, KNOWN, expected -18.635\n    test 671 GeoidPGM('egm96-5.pgm').height(49.0, -86.5) kind 3: -37.749\n    test 672 GeoidPGM('egm96-5.pgm').height(49.0, -69.5) kind 3: -26.691\n    test 673 GeoidPGM('egm96-5.pgm').height(33.0, -120.5) kind 3: -39.561\n    test 674 GeoidPGM('egm96-5.pgm').height(33.0, -103.5) kind 3: -22.563  FAILED, KNOWN, expected -22.562\n    test 675 GeoidPGM('egm96-5.pgm').height(33.0, -86.5) kind 3: -30.012\n    test 676 GeoidPGM('egm96-5.pgm').height(33.0, -69.5) kind 3: -48.039\n\n    test 677 GeoidPGM('egm96-5.pgm').height() kind 3, eps max (in 0 FAILED): 0.001116\n    test 678 GeoidPGM('egm96-5.pgm').height() kind 3, eps mean (of 15 total): 0.000383\n    test 679 GeoidPGM('egm96-5.pgm').height() kind 3, eps stdev (of 15 total): 0.000294\n    test 680 GeoidPGM('egm96-5.pgm').highest(): 45.0, -110.083, -7.479\n    test 681 GeoidPGM('egm96-5.pgm').lowerleft(): 25.0, -125.0, -45.543\n    test 682 GeoidPGM('egm96-5.pgm').lowerright(): 25.0, -64.917, -51.106\n    test 683 GeoidPGM('egm96-5.pgm').lowest(): 25.75, -69.583, -52.671\n    test 684 GeoidPGM('egm96-5.pgm').upperleft(): 55.0, -125.0, -10.221\n    test 685 GeoidPGM('egm96-5.pgm').upperright(): 55.0, -64.917, -16.097\n    test 686 GeoidPGM('egm96-5.pgm').dtype: (\"dtype('float64')\",)\n    test 687 GeoidPGM('egm96-5.pgm').knots: ('260281',)\n    test 688 GeoidPGM('egm96-5.pgm').mean: ('-29.816',)\n    test 689 GeoidPGM('egm96-5.pgm').nBytes: ('2082248',)\n    test 690 GeoidPGM('egm96-5.pgm').smooth: ('0',)\n    test 691 GeoidPGM('egm96-5.pgm').stdev: ('9.503',)\n    test 692 GeoidPGM('egm96-5.pgm')._g2ll2(180, 360): (180, 0.0)\n    test 693 GeoidPGM('egm96-5.pgm')._ll2g2(180, 360): (180, 720.0)\n    test 694 GeoidPGM('egm96-5.pgm')._swne: (-10.0, -100.0, 10.0, 100.0)\n    test 695 GeoidPGM('egm96-5.pgm')._swne: (-10.0, -100.0, 10.0, 100.0)\n    test 696 GeoidPGM('egm96-5.pgm').toStr: GeoidPGM('egm96-5.pgm'): lowerleft(25.0, -125.0, -45.543), upperright(55.0, -64.917, -16.097), center(40.0, -94.958, -32.13), highest(45.0, -110.083, -7.479), lowest(25.75, -69.583, -52.671)\n\n    test 697 closed: True\n    test 698 copy(<class 'type'>): (<class 'pygeodesy.geoids.GeoidPGM'>, True)\n    test 699 GeoidPGM.copy(): (<class 'pygeodesy.geoids.GeoidPGM'>, True)\n    test 700 GeoidKarney('egm2008-1.pgm').height(-76.981, 34.17) kind 2: 12.637  FAILED, KNOWN, expected 12.636\n    test 701 GeoidKarney('egm2008-1.pgm').height(79.695, 88.806) kind 2: 0.749\n    test 702 GeoidKarney('egm2008-1.pgm').height(-15.245, 168.748) kind 2: 65.110  FAILED, KNOWN, expected 65.109\n    test 703 GeoidKarney('egm2008-1.pgm').height(-19.379, 15.855) kind 2: 24.889\n    test 704 GeoidKarney('egm2008-1.pgm').height(43.378, -130.552) kind 2: -29.557\n    test 705 GeoidKarney('egm2008-1.pgm').height(-16.075, 21.795) kind 2: 9.741  FAILED, KNOWN, expected 9.742\n    test 706 GeoidKarney('egm2008-1.pgm').height(-11.256, -73.75) kind 2: 30.061  FAILED, KNOWN, expected 30.059\n    test 707 GeoidKarney('egm2008-1.pgm').height(69.017, -15.921) kind 2: 60.691  FAILED, KNOWN, expected 60.690\n    test 708 GeoidKarney('egm2008-1.pgm').height(2.221, 139.739) kind 2: 69.134  FAILED, KNOWN, expected 69.133\n    test 709 GeoidKarney('egm2008-1.pgm').height(-9.097, 119.142) kind 2: 36.522  FAILED, KNOWN, expected 36.520\n    test 710 GeoidKarney('egm2008-1.pgm').height(-28.524, -22.192) kind 2: 6.801\n    test 711 GeoidKarney('egm2008-1.pgm').height(12.272, -136.424) kind 2: -20.652  FAILED, KNOWN, expected -20.651\n    test 712 GeoidKarney('egm2008-1.pgm').height(-15.203, -85.604) kind 2: -3.040\n    test 713 GeoidKarney('egm2008-1.pgm').height(-63.736, -77.17) kind 2: -1.329  FAILED, KNOWN, expected -1.328\n    test 714 GeoidKarney('egm2008-1.pgm').height(-48.771, -90.102) kind 2: -2.171  FAILED, KNOWN, expected -2.172\n    test 715 GeoidKarney('egm2008-1.pgm').height(-0.179, -126.368) kind 2: -17.411\n    test 716 GeoidKarney('egm2008-1.pgm').height(1.586, -128.887) kind 2: -16.426  FAILED, KNOWN, expected -16.425\n    test 717 GeoidKarney('egm2008-1.pgm').height(-48.781, -2.684) kind 2: 24.699  FAILED, KNOWN, expected 24.698\n    test 718 GeoidKarney('egm2008-1.pgm').height(-49.092, 136.862) kind 2: -18.328  FAILED, KNOWN, expected -18.329\n    test 719 GeoidKarney('egm2008-1.pgm').height(47.732, 17.552) kind 2: 43.802\n    test 720 GeoidKarney('egm2008-1.pgm').height(-49.11, 85.706) kind 2: 18.716\n    test 721 GeoidKarney('egm2008-1.pgm').height(-49.162, 40.321) kind 2: 44.468  FAILED, KNOWN, expected 44.469\n    test 722 GeoidKarney('egm2008-1.pgm').height(3.498, 158.118) kind 2: 49.943  FAILED, KNOWN, expected 49.944\n    test 723 GeoidKarney('egm2008-1.pgm').height(-35.616, 122.648) kind 2: -35.878\n    test 724 GeoidKarney('egm2008-1.pgm').height(56.598, -96.114) kind 2: -40.777\n    test 725 GeoidKarney('egm2008-1.pgm').height(-31.85, 149.121) kind 2: 26.560  FAILED, KNOWN, expected 26.559\n    test 726 GeoidKarney('egm2008-1.pgm').height(-26.569, -177.792) kind 2: 49.361\n    test 727 GeoidKarney('egm2008-1.pgm').height(76.735, -65.753) kind 2: 21.106  FAILED, KNOWN, expected 21.107\n    test 728 GeoidKarney('egm2008-1.pgm').height(-21.404, -122.268) kind 2: -7.202\n    test 729 GeoidKarney('egm2008-1.pgm').height(-77.133, -65.474) kind 2: -17.168\n    test 730 GeoidKarney('egm2008-1.pgm').height(-58.812, 2.276) kind 2: 18.359\n    test 731 GeoidKarney('egm2008-1.pgm').height(4.415, 155.683) kind 2: 52.118\n    test 732 GeoidKarney('egm2008-1.pgm').height(-28.146, 107.081) kind 2: -38.949  FAILED, KNOWN, expected -38.950\n    test 733 GeoidKarney('egm2008-1.pgm').height(-10.551, -126.69) kind 2: -9.935  FAILED, KNOWN, expected -9.934\n    test 734 GeoidKarney('egm2008-1.pgm').height(-25.444, -103.337) kind 2: -2.879\n    test 735 GeoidKarney('egm2008-1.pgm').height(24.436, 46.159) kind 2: -5.025\n    test 736 GeoidKarney('egm2008-1.pgm').height(-72.889, 37.107) kind 2: 24.296\n    test 737 GeoidKarney('egm2008-1.pgm').height(-19.629, 13.245) kind 2: 25.131\n    test 738 GeoidKarney('egm2008-1.pgm').height(-7.602, 171.265) kind 2: 40.720  FAILED, KNOWN, expected 40.721\n    test 739 GeoidKarney('egm2008-1.pgm').height(-45.364, -1.876) kind 2: 22.388\n    test 740 GeoidKarney('egm2008-1.pgm').height(-7.292, -69.18) kind 2: 22.485  FAILED, KNOWN, expected 22.486\n    test 741 GeoidKarney('egm2008-1.pgm').height(-31.566, -166.689) kind 2: 14.942  FAILED, KNOWN, expected 14.943\n    test 742 GeoidKarney('egm2008-1.pgm').height(-82.751, -162.085) kind 2: -47.387\n    test 743 GeoidKarney('egm2008-1.pgm').height(-40.7, 99.466) kind 2: -18.404  FAILED, KNOWN, expected -18.403\n    test 744 GeoidKarney('egm2008-1.pgm').height(48.676, 39.69) kind 2: 10.186  FAILED, KNOWN, expected 10.185\n    test 745 GeoidKarney('egm2008-1.pgm').height(74.817, -78.404) kind 2: 5.671\n    test 746 GeoidKarney('egm2008-1.pgm').height(-81.032, -63.865) kind 2: -24.577\n    test 747 GeoidKarney('egm2008-1.pgm').height(74.022, 9.432) kind 2: 43.288\n    test 748 GeoidKarney('egm2008-1.pgm').height(-75.071, 17.579) kind 2: 13.747  FAILED, KNOWN, expected 13.748\n    test 749 GeoidKarney('egm2008-1.pgm').height(-12.546, -54.851) kind 2: -5.342\n    test 750 GeoidKarney('egm2008-1.pgm').height(-13.621, 42.408) kind 2: -25.579\n    test 751 GeoidKarney('egm2008-1.pgm').height(-2.266, -91.951) kind 2: -9.849\n    test 752 GeoidKarney('egm2008-1.pgm').height(-18.672, 42.547) kind 2: -10.491\n    test 753 GeoidKarney('egm2008-1.pgm').height(-41.44, 157.413) kind 2: 0.243  FAILED, KNOWN, expected 0.244\n    test 754 GeoidKarney('egm2008-1.pgm').height(53.686, -79.375) kind 2: -43.820  FAILED, KNOWN, expected -43.821\n    test 755 GeoidKarney('egm2008-1.pgm').height(39.26, -30.351) kind 2: 57.400  FAILED, KNOWN, expected 57.401\n    test 756 GeoidKarney('egm2008-1.pgm').height(-51.699, -141.493) kind 2: -17.889  FAILED, KNOWN, expected -17.890\n    test 757 GeoidKarney('egm2008-1.pgm').height(36.585, 4.515) kind 2: 46.422  FAILED, KNOWN, expected 46.421\n    test 758 GeoidKarney('egm2008-1.pgm').height(39.642, -54.659) kind 2: -14.475\n    test 759 GeoidKarney('egm2008-1.pgm').height(59.761, 166.567) kind 2: 11.119  FAILED, KNOWN, expected 11.118\n    test 760 GeoidKarney('egm2008-1.pgm').height(51.83, 13.357) kind 2: 42.291\n    test 761 GeoidKarney('egm2008-1.pgm').height(-36.531, -175.431) kind 2: 22.327  FAILED, KNOWN, expected 22.326\n    test 762 GeoidKarney('egm2008-1.pgm').height(-37.08, 125.264) kind 2: -33.098\n    test 763 GeoidKarney('egm2008-1.pgm').height(-68.651, 92.732) kind 2: 9.431  FAILED, KNOWN, expected 9.430\n    test 764 GeoidKarney('egm2008-1.pgm').height(35.087, 45.336) kind 2: 6.032\n    test 765 GeoidKarney('egm2008-1.pgm').height(-61.356, -169.379) kind 2: -44.330\n    test 766 GeoidKarney('egm2008-1.pgm').height(-36.955, 179.12) kind 2: 21.775\n    test 767 GeoidKarney('egm2008-1.pgm').height(10.248, -6.714) kind 2: 29.243\n    test 768 GeoidKarney('egm2008-1.pgm').height(36.868, 84.602) kind 2: -40.677  FAILED, KNOWN, expected -40.676\n    test 769 GeoidKarney('egm2008-1.pgm').height(28.637, 88.933) kind 2: -31.353\n    test 770 GeoidKarney('egm2008-1.pgm').height(54.811, -99.968) kind 2: -32.700  FAILED, KNOWN, expected -32.701\n    test 771 GeoidKarney('egm2008-1.pgm').height(7.611, 145.911) kind 2: 60.628  FAILED, KNOWN, expected 60.629\n    test 772 GeoidKarney('egm2008-1.pgm').height(59.412, 170.102) kind 2: 6.617\n    test 773 GeoidKarney('egm2008-1.pgm').height(-61.469, 126.144) kind 2: -31.888  FAILED, KNOWN, expected -31.887\n    test 774 GeoidKarney('egm2008-1.pgm').height(18.514, -137.083) kind 2: -26.536  FAILED, KNOWN, expected -26.535\n    test 775 GeoidKarney('egm2008-1.pgm').height(7.854, -126.799) kind 2: -29.631  FAILED, KNOWN, expected -29.630\n    test 776 GeoidKarney('egm2008-1.pgm').height(47.489, 134.183) kind 2: 22.274  FAILED, KNOWN, expected 22.275\n    test 777 GeoidKarney('egm2008-1.pgm').height(-34.144, -11.922) kind 2: 17.095  FAILED, KNOWN, expected 17.094\n    test 778 GeoidKarney('egm2008-1.pgm').height(-58.389, 117.458) kind 2: -20.940  FAILED, KNOWN, expected -20.941\n    test 779 GeoidKarney('egm2008-1.pgm').height(9.773, 95.846) kind 2: -42.740\n    test 780 GeoidKarney('egm2008-1.pgm').height(-53.12, 136.994) kind 2: -21.651\n    test 781 GeoidKarney('egm2008-1.pgm').height(-50.35, 0.075) kind 2: 25.240\n    test 782 GeoidKarney('egm2008-1.pgm').height(31.438, -170.879) kind 2: -8.758\n    test 783 GeoidKarney('egm2008-1.pgm').height(37.541, -153.024) kind 2: -19.606  FAILED, KNOWN, expected -19.607\n    test 784 GeoidKarney('egm2008-1.pgm').height(27.586, 2.444) kind 2: 26.258\n    test 785 GeoidKarney('egm2008-1.pgm').height(-26.139, -106.201) kind 2: -3.824\n    test 786 GeoidKarney('egm2008-1.pgm').height(-33.426, -14.84) kind 2: 18.194  FAILED, KNOWN, expected 18.195\n    test 787 GeoidKarney('egm2008-1.pgm').height(39.586, -153.019) kind 2: -17.724  FAILED, KNOWN, expected -17.725\n    test 788 GeoidKarney('egm2008-1.pgm').height(-60.79, -2.578) kind 2: 14.511  FAILED, KNOWN, expected 14.513\n    test 789 GeoidKarney('egm2008-1.pgm').height(-20.131, 21.975) kind 2: 16.808  FAILED, KNOWN, expected 16.809\n    test 790 GeoidKarney('egm2008-1.pgm').height(75.649, 99.921) kind 2: -8.025  FAILED, KNOWN, expected -8.026\n    test 791 GeoidKarney('egm2008-1.pgm').height(-0.385, -23.788) kind 2: 9.688\n    test 792 GeoidKarney('egm2008-1.pgm').height(-51.56, -50.327) kind 2: 6.218\n    test 793 GeoidKarney('egm2008-1.pgm').height(-43.129, -167.271) kind 2: -2.725  FAILED, KNOWN, expected -2.724\n    test 794 GeoidKarney('egm2008-1.pgm').height(46.374, 71.948) kind 2: -42.566  FAILED, KNOWN, expected -42.565\n    test 795 GeoidKarney('egm2008-1.pgm').height(-22.783, 140.657) kind 2: 38.341\n    test 796 GeoidKarney('egm2008-1.pgm').height(-12.056, 122.804) kind 2: 33.888  FAILED, KNOWN, expected 33.889\n    test 797 GeoidKarney('egm2008-1.pgm').height(30.127, 94.738) kind 2: -37.382  FAILED, KNOWN, expected -37.380\n    test 798 GeoidKarney('egm2008-1.pgm').height(46.296, -174.479) kind 2: -1.857  FAILED, KNOWN, expected -1.858\n    test 799 GeoidKarney('egm2008-1.pgm').height(34.99, 15.052) kind 2: 34.196  FAILED, KNOWN, expected 34.195\n    test 800 GeoidKarney('egm2008-1.pgm').height(-51.287, 90.565) kind 2: 12.767\n    test 801 GeoidKarney('egm2008-1.pgm').height(34.217, 141.302) kind 2: 15.612\n    test 802 GeoidKarney('egm2008-1.pgm').height(-40.423, -142.787) kind 2: -11.063\n    test 803 GeoidKarney('egm2008-1.pgm').height(-17.854, -170.216) kind 2: 27.387\n    test 804 GeoidKarney('egm2008-1.pgm').height(47.803, 112.701) kind 2: -23.817\n    test 805 GeoidKarney('egm2008-1.pgm').height(-23.276, 133.454) kind 2: 18.713  FAILED, KNOWN, expected 18.712\n    test 806 GeoidKarney('egm2008-1.pgm').height(-26.884, -36.571) kind 2: -7.343  FAILED, KNOWN, expected -7.344\n    test 807 GeoidKarney('egm2008-1.pgm').height(-37.106, 31.128) kind 2: 29.997  FAILED, KNOWN, expected 29.998\n    test 808 GeoidKarney('egm2008-1.pgm').height(-75.363, -173.674) kind 2: -61.869\n    test 809 GeoidKarney('egm2008-1.pgm').height(-18.305, 69.016) kind 2: -24.937\n    test 810 GeoidKarney('egm2008-1.pgm').height(39.527, 23.58) kind 2: 38.558  FAILED, KNOWN, expected 38.556\n    test 811 GeoidKarney('egm2008-1.pgm').height(68.903, 30.97) kind 2: 19.672  FAILED, KNOWN, expected 19.671\n    test 812 GeoidKarney('egm2008-1.pgm').height(53.937, 168.318) kind 2: 2.273  FAILED, KNOWN, expected 2.272\n    test 813 GeoidKarney('egm2008-1.pgm').height(-38.6, 64.812) kind 2: 24.863\n    test 814 GeoidKarney('egm2008-1.pgm').height(-41.396, -69.739) kind 2: 21.637  FAILED, KNOWN, expected 21.636\n    test 815 GeoidKarney('egm2008-1.pgm').height(50.158, 72.319) kind 2: -33.851\n    test 816 GeoidKarney('egm2008-1.pgm').height(27.692, 176.153) kind 2: -5.299\n    test 817 GeoidKarney('egm2008-1.pgm').height(-48.419, 170.454) kind 2: -6.789\n    test 818 GeoidKarney('egm2008-1.pgm').height(-65.346, -124.976) kind 2: -35.030\n    test 819 GeoidKarney('egm2008-1.pgm').height(-51.873, 167.266) kind 2: -15.338\n    test 820 GeoidKarney('egm2008-1.pgm').height(-7.263, 84.308) kind 2: -79.356\n    test 821 GeoidKarney('egm2008-1.pgm').height(-1.461, -105.458) kind 2: -16.650\n    test 822 GeoidKarney('egm2008-1.pgm').height(7.684, 161.873) kind 2: 36.358  FAILED, KNOWN, expected 36.359\n    test 823 GeoidKarney('egm2008-1.pgm').height(-31.475, -158.52) kind 2: 3.614  FAILED, KNOWN, expected 3.615\n    test 824 GeoidKarney('egm2008-1.pgm').height(-36.187, 62.917) kind 2: 23.946  FAILED, KNOWN, expected 23.947\n    test 825 GeoidKarney('egm2008-1.pgm').height(16.003, 141.687) kind 2: 51.495\n    test 826 GeoidKarney('egm2008-1.pgm').height(30.182, 86.261) kind 2: -30.909  FAILED, KNOWN, expected -30.910\n    test 827 GeoidKarney('egm2008-1.pgm').height(-77.304, 159.498) kind 2: -52.131\n    test 828 GeoidKarney('egm2008-1.pgm').height(39.536, 139.795) kind 2: 37.046  FAILED, KNOWN, expected 37.045\n    test 829 GeoidKarney('egm2008-1.pgm').height(8.569, 134.618) kind 2: 64.181  FAILED, KNOWN, expected 64.180\n    test 830 GeoidKarney('egm2008-1.pgm').height(14.473, 90.596) kind 2: -62.475\n    test 831 GeoidKarney('egm2008-1.pgm').height(-13.138, -99.589) kind 2: -8.454\n    test 832 GeoidKarney('egm2008-1.pgm').height(34.212, -26.307) kind 2: 40.834\n    test 833 GeoidKarney('egm2008-1.pgm').height(21.89, 76.371) kind 2: -60.456  FAILED, KNOWN, expected -60.455\n    test 834 GeoidKarney('egm2008-1.pgm').height(29.793, 120.487) kind 2: 9.727\n    test 835 GeoidKarney('egm2008-1.pgm').height(15.724, 122.714) kind 2: 32.143  FAILED, KNOWN, expected 32.142\n    test 836 GeoidKarney('egm2008-1.pgm').height(-66.208, -78.499) kind 2: -6.221  FAILED, KNOWN, expected -6.220\n    test 837 GeoidKarney('egm2008-1.pgm').height(-39.507, 55.809) kind 2: 32.489\n    test 838 GeoidKarney('egm2008-1.pgm').height(28.159, 51.476) kind 2: -24.692\n    test 839 GeoidKarney('egm2008-1.pgm').height(-36.207, 120.205) kind 2: -38.748  FAILED, KNOWN, expected -38.749\n    test 840 GeoidKarney('egm2008-1.pgm').height(30.575, -99.998) kind 2: -23.254  FAILED, KNOWN, expected -23.255\n    test 841 GeoidKarney('egm2008-1.pgm').height(-16.993, 37.136) kind 2: -13.454  FAILED, KNOWN, expected -13.455\n    test 842 GeoidKarney('egm2008-1.pgm').height(-11.477, 12.039) kind 2: 16.627\n    test 843 GeoidKarney('egm2008-1.pgm').height(30.428, -144.765) kind 2: -22.221\n    test 844 GeoidKarney('egm2008-1.pgm').height(-17.44, -92.424) kind 2: -4.836\n    test 845 GeoidKarney('egm2008-1.pgm').height(40.203, 143.43) kind 2: 19.571\n    test 846 GeoidKarney('egm2008-1.pgm').height(-37.098, -106.574) kind 2: -9.227\n    test 847 GeoidKarney('egm2008-1.pgm').height(54.62, -68.413) kind 2: -23.248\n    test 848 GeoidKarney('egm2008-1.pgm').height(-31.633, 148.182) kind 2: 24.829\n    test 849 GeoidKarney('egm2008-1.pgm').height(-56.07, -141.407) kind 2: -21.706  FAILED, KNOWN, expected -21.705\n    test 850 GeoidKarney('egm2008-1.pgm').height(-8.195, -52.691) kind 2: -17.054  FAILED, KNOWN, expected -17.053\n    test 851 GeoidKarney('egm2008-1.pgm').height(17.851, 24.749) kind 2: 11.716\n    test 852 GeoidKarney('egm2008-1.pgm').height(0.349, -108.333) kind 2: -19.529  FAILED, KNOWN, expected -19.530\n    test 853 GeoidKarney('egm2008-1.pgm').height(15.038, 126.191) kind 2: 45.929\n    test 854 GeoidKarney('egm2008-1.pgm').height(-21.111, -123.696) kind 2: -8.283\n    test 855 GeoidKarney('egm2008-1.pgm').height(30.947, 173.002) kind 2: -8.467\n    test 856 GeoidKarney('egm2008-1.pgm').height(-10.698, -144.091) kind 2: -1.829\n    test 857 GeoidKarney('egm2008-1.pgm').height(-29.412, 124.753) kind 2: -16.505  FAILED, KNOWN, expected -16.506\n    test 858 GeoidKarney('egm2008-1.pgm').height(38.224, -137.189) kind 2: -35.384\n    test 859 GeoidKarney('egm2008-1.pgm').height(36.064, -132.409) kind 2: -38.962  FAILED, KNOWN, expected -38.963\n    test 860 GeoidKarney('egm2008-1.pgm').height(29.975, 178.076) kind 2: -6.956\n    test 861 GeoidKarney('egm2008-1.pgm').height(-21.346, 169.26) kind 2: 51.006  FAILED, KNOWN, expected 51.005\n    test 862 GeoidKarney('egm2008-1.pgm').height(49.282, -152.934) kind 2: 1.193  FAILED, KNOWN, expected 1.192\n    test 863 GeoidKarney('egm2008-1.pgm').height(16.349, -99.962) kind 2: -15.038\n    test 864 GeoidKarney('egm2008-1.pgm').height(-14.293, -167.34) kind 2: 17.792  FAILED, KNOWN, expected 17.791\n    test 865 GeoidKarney('egm2008-1.pgm').height(47.166, -38.523) kind 2: 44.653  FAILED, KNOWN, expected 44.652\n    test 866 GeoidKarney('egm2008-1.pgm').height(-58.911, 114.347) kind 2: -17.972  FAILED, KNOWN, expected -17.971\n    test 867 GeoidKarney('egm2008-1.pgm').height(-9.055, 111.294) kind 2: 11.631\n    test 868 GeoidKarney('egm2008-1.pgm').height(18.391, 29.692) kind 2: 7.394\n    test 869 GeoidKarney('egm2008-1.pgm').height(-15.074, 22.153) kind 2: 7.932\n    test 870 GeoidKarney('egm2008-1.pgm').height(-4.235, 62.001) kind 2: -60.594  FAILED, KNOWN, expected -60.593\n    test 871 GeoidKarney('egm2008-1.pgm').height(15.171, -86.583) kind 2: 4.382  FAILED, KNOWN, expected 4.384\n    test 872 GeoidKarney('egm2008-1.pgm').height(79.254, 112.116) kind 2: 1.296  FAILED, KNOWN, expected 1.297\n    test 873 GeoidKarney('egm2008-1.pgm').height(15.947, 156.093) kind 2: 30.852\n    test 874 GeoidKarney('egm2008-1.pgm').height(68.371, -177.382) kind 2: 2.705  FAILED, KNOWN, expected 2.704\n    test 875 GeoidKarney('egm2008-1.pgm').height(-41.931, -72.093) kind 2: 21.263  FAILED, KNOWN, expected 21.264\n    test 876 GeoidKarney('egm2008-1.pgm').height(-1.193, -143.133) kind 2: 5.443\n    test 877 GeoidKarney('egm2008-1.pgm').height(-37.006, 154.513) kind 2: 9.998\n    test 878 GeoidKarney('egm2008-1.pgm').height(-22.148, 9.938) kind 2: 22.428\n    test 879 GeoidKarney('egm2008-1.pgm').height(24.329, 109.044) kind 2: -23.156  FAILED, KNOWN, expected -23.154\n    test 880 GeoidKarney('egm2008-1.pgm').height(-54.878, 114.691) kind 2: -17.662\n    test 881 GeoidKarney('egm2008-1.pgm').height(45.601, -80.458) kind 2: -36.840  FAILED, KNOWN, expected -36.839\n    test 882 GeoidKarney('egm2008-1.pgm').height(2.372, 58.974) kind 2: -61.220  FAILED, KNOWN, expected -61.221\n    test 883 GeoidKarney('egm2008-1.pgm').height(15.937, 165.854) kind 2: 20.355\n    test 884 GeoidKarney('egm2008-1.pgm').height(4.889, -24.213) kind 2: 13.147\n    test 885 GeoidKarney('egm2008-1.pgm').height(-11.392, 179.558) kind 2: 41.072\n    test 886 GeoidKarney('egm2008-1.pgm').height(58.246, 4.862) kind 2: 42.982\n    test 887 GeoidKarney('egm2008-1.pgm').height(34.302, -109.109) kind 2: -22.997  FAILED, KNOWN, expected -22.998\n    test 888 GeoidKarney('egm2008-1.pgm').height(-58.196, 117.306) kind 2: -20.662\n    test 889 GeoidKarney('egm2008-1.pgm').height(44.5, 173.769) kind 2: -8.438\n    test 890 GeoidKarney('egm2008-1.pgm').height(-28.863, -139.775) kind 2: -8.711  FAILED, KNOWN, expected -8.712\n    test 891 GeoidKarney('egm2008-1.pgm').height(19.507, -96.099) kind 2: -12.654  FAILED, KNOWN, expected -12.653\n    test 892 GeoidKarney('egm2008-1.pgm').height(-42.488, -73.907) kind 2: 17.163  FAILED, KNOWN, expected 17.166\n    test 893 GeoidKarney('egm2008-1.pgm').height(46.138, -141.429) kind 2: -19.873  FAILED, KNOWN, expected -19.874\n    test 894 GeoidKarney('egm2008-1.pgm').height(60.507, 93.743) kind 2: -31.124\n    test 895 GeoidKarney('egm2008-1.pgm').height(26.219, -145.434) kind 2: -17.307\n    test 896 GeoidKarney('egm2008-1.pgm').height(-28.687, 3.37) kind 2: 23.437  FAILED, KNOWN, expected 23.434\n    test 897 GeoidKarney('egm2008-1.pgm').height(-15.008, 117.45) kind 2: 4.508\n    test 898 GeoidKarney('egm2008-1.pgm').height(40.71, 144.095) kind 2: 11.550  FAILED, KNOWN, expected 11.549\n    test 899 GeoidKarney('egm2008-1.pgm').height(20.823, -173.611) kind 2: 5.749  FAILED, KNOWN, expected 5.748\n    test 900 GeoidKarney('egm2008-1.pgm').height(16.776, -3.009) kind 2: 28.788\n    test 901 GeoidKarney('egm2008-1.pgm').height(41.0, -95.0) kind 2: -30.588  FAILED, KNOWN, expected -30.589\n    test 902 GeoidKarney('egm2008-1.pgm').height(49.0, -120.5) kind 2: -15.273\n    test 903 GeoidKarney('egm2008-1.pgm').height(49.0, -103.5) kind 2: -18.624\n    test 904 GeoidKarney('egm2008-1.pgm').height(49.0, -86.5) kind 2: -37.872  FAILED, KNOWN, expected -37.873\n    test 905 GeoidKarney('egm2008-1.pgm').height(49.0, -69.5) kind 2: -26.511\n    test 906 GeoidKarney('egm2008-1.pgm').height(33.0, -120.5) kind 2: -39.600\n    test 907 GeoidKarney('egm2008-1.pgm').height(33.0, -103.5) kind 2: -22.689\n    test 908 GeoidKarney('egm2008-1.pgm').height(33.0, -86.5) kind 2: -30.066  FAILED, KNOWN, expected -30.067\n    test 909 GeoidKarney('egm2008-1.pgm').height(33.0, -69.5) kind 2: -48.093\n\n    test 910 GeoidKarney('egm2008-1.pgm').height() kind 2, hits 0, eps max (in 0 FAILED): 0.002537\n    test 911 GeoidKarney('egm2008-1.pgm').height() kind 2, hits 0, eps mean (of 210 total): 0.000543\n    test 912 GeoidKarney('egm2008-1.pgm').height() kind 2, hits 0, eps stdev (of 210 total): 0.000458\n    test 913 GeoidKarney('egm2008-1.pgm').highest(): -8.4, 147.367, 85.839\n    test 914 GeoidKarney('egm2008-1.pgm').lowerleft(): -90.0, -180.0, -30.15\n    test 915 GeoidKarney('egm2008-1.pgm').lowerright(): -90.0, 180.0, -30.15\n    test 916 GeoidKarney('egm2008-1.pgm').lowest(): 4.7, 78.767, -106.911\n    test 917 GeoidKarney('egm2008-1.pgm').upperleft(): 90.0, -180.0, 14.898\n    test 918 GeoidKarney('egm2008-1.pgm').upperright(): 90.0, 180.0, 14.898\n    test 919 GeoidKarney('egm2008-1.pgm').dtype: (\"'ushort'\",)\n    test 920 GeoidKarney('egm2008-1.pgm').knots: ('233301600',)\n    test 921 GeoidKarney('egm2008-1.pgm').mean: ('-1.317',)\n    test 922 GeoidKarney('egm2008-1.pgm').nBytes: ('None',)\n    test 923 GeoidKarney('egm2008-1.pgm').smooth: ('None',)\n    test 924 GeoidKarney('egm2008-1.pgm').stdev: ('29.244',)\n    test 925 GeoidKarney('egm2008-1.pgm')._g2ll2(180, 360): (180, 0.0)\n    test 926 GeoidKarney('egm2008-1.pgm')._ll2g2(180, 360): (180, 360)\n    test 927 GeoidKarney('egm2008-1.pgm')._swne: (-10.0, -100.0, 10.0, 100.0)\n    test 928 GeoidKarney('egm2008-1.pgm')._swne: (-10.0, -100.0, 10.0, 100.0)\n    test 929 GeoidKarney('egm2008-1.pgm').toStr: GeoidKarney('egm2008-1.pgm'): lowerleft(-90.0, -180.0, -30.15), upperright(90.0, 180.0, 14.898), center(0.0, 0.0, 17.226), highest(-8.4, 147.367, 85.839), lowest(4.7, 78.767, -106.911)\n\n    test 930 closed: True\n    test 931 copy(<class 'type'>): (<class 'pygeodesy.geoids.GeoidKarney'>, True)\n    test 932 GeoidKarney.copy(): (<class 'pygeodesy.geoids.GeoidKarney'>, True)\n    test 933 GeoidKarney('egm2008-1.pgm').height(-76.981, 34.17) kind 3: 12.637  FAILED, KNOWN, expected 12.636\n    test 934 GeoidKarney('egm2008-1.pgm').height(79.695, 88.806) kind 3: 0.749\n    test 935 GeoidKarney('egm2008-1.pgm').height(-15.245, 168.748) kind 3: 65.110  FAILED, KNOWN, expected 65.109\n    test 936 GeoidKarney('egm2008-1.pgm').height(-19.379, 15.855) kind 3: 24.889\n    test 937 GeoidKarney('egm2008-1.pgm').height(43.378, -130.552) kind 3: -29.556  FAILED, KNOWN, expected -29.557\n    test 938 GeoidKarney('egm2008-1.pgm').height(-16.075, 21.795) kind 3: 9.741  FAILED, KNOWN, expected 9.742\n    test 939 GeoidKarney('egm2008-1.pgm').height(-11.256, -73.75) kind 3: 30.060  FAILED, KNOWN, expected 30.059\n    test 940 GeoidKarney('egm2008-1.pgm').height(69.017, -15.921) kind 3: 60.690\n    test 941 GeoidKarney('egm2008-1.pgm').height(2.221, 139.739) kind 3: 69.134  FAILED, KNOWN, expected 69.133\n    test 942 GeoidKarney('egm2008-1.pgm').height(-9.097, 119.142) kind 3: 36.521  FAILED, KNOWN, expected 36.520\n    test 943 GeoidKarney('egm2008-1.pgm').height(-28.524, -22.192) kind 3: 6.801\n    test 944 GeoidKarney('egm2008-1.pgm').height(12.272, -136.424) kind 3: -20.652  FAILED, KNOWN, expected -20.651\n    test 945 GeoidKarney('egm2008-1.pgm').height(-15.203, -85.604) kind 3: -3.040\n    test 946 GeoidKarney('egm2008-1.pgm').height(-63.736, -77.17) kind 3: -1.329  FAILED, KNOWN, expected -1.328\n    test 947 GeoidKarney('egm2008-1.pgm').height(-48.771, -90.102) kind 3: -2.171  FAILED, KNOWN, expected -2.172\n    test 948 GeoidKarney('egm2008-1.pgm').height(-0.179, -126.368) kind 3: -17.411\n    test 949 GeoidKarney('egm2008-1.pgm').height(1.586, -128.887) kind 3: -16.426  FAILED, KNOWN, expected -16.425\n    test 950 GeoidKarney('egm2008-1.pgm').height(-48.781, -2.684) kind 3: 24.699  FAILED, KNOWN, expected 24.698\n    test 951 GeoidKarney('egm2008-1.pgm').height(-49.092, 136.862) kind 3: -18.328  FAILED, KNOWN, expected -18.329\n    test 952 GeoidKarney('egm2008-1.pgm').height(47.732, 17.552) kind 3: 43.802\n    test 953 GeoidKarney('egm2008-1.pgm').height(-49.11, 85.706) kind 3: 18.716\n    test 954 GeoidKarney('egm2008-1.pgm').height(-49.162, 40.321) kind 3: 44.468  FAILED, KNOWN, expected 44.469\n    test 955 GeoidKarney('egm2008-1.pgm').height(3.498, 158.118) kind 3: 49.943  FAILED, KNOWN, expected 49.944\n    test 956 GeoidKarney('egm2008-1.pgm').height(-35.616, 122.648) kind 3: -35.878\n    test 957 GeoidKarney('egm2008-1.pgm').height(56.598, -96.114) kind 3: -40.777\n    test 958 GeoidKarney('egm2008-1.pgm').height(-31.85, 149.121) kind 3: 26.559\n    test 959 GeoidKarney('egm2008-1.pgm').height(-26.569, -177.792) kind 3: 49.362  FAILED, KNOWN, expected 49.361\n    test 960 GeoidKarney('egm2008-1.pgm').height(76.735, -65.753) kind 3: 21.106  FAILED, KNOWN, expected 21.107\n    test 961 GeoidKarney('egm2008-1.pgm').height(-21.404, -122.268) kind 3: -7.203  FAILED, KNOWN, expected -7.202\n    test 962 GeoidKarney('egm2008-1.pgm').height(-77.133, -65.474) kind 3: -17.167  FAILED, KNOWN, expected -17.168\n    test 963 GeoidKarney('egm2008-1.pgm').height(-58.812, 2.276) kind 3: 18.359\n    test 964 GeoidKarney('egm2008-1.pgm').height(4.415, 155.683) kind 3: 52.117  FAILED, KNOWN, expected 52.118\n    test 965 GeoidKarney('egm2008-1.pgm').height(-28.146, 107.081) kind 3: -38.950\n    test 966 GeoidKarney('egm2008-1.pgm').height(-10.551, -126.69) kind 3: -9.935  FAILED, KNOWN, expected -9.934\n    test 967 GeoidKarney('egm2008-1.pgm').height(-25.444, -103.337) kind 3: -2.879\n    test 968 GeoidKarney('egm2008-1.pgm').height(24.436, 46.159) kind 3: -5.025\n    test 969 GeoidKarney('egm2008-1.pgm').height(-72.889, 37.107) kind 3: 24.296\n    test 970 GeoidKarney('egm2008-1.pgm').height(-19.629, 13.245) kind 3: 25.131\n    test 971 GeoidKarney('egm2008-1.pgm').height(-7.602, 171.265) kind 3: 40.720  FAILED, KNOWN, expected 40.721\n    test 972 GeoidKarney('egm2008-1.pgm').height(-45.364, -1.876) kind 3: 22.387  FAILED, KNOWN, expected 22.388\n    test 973 GeoidKarney('egm2008-1.pgm').height(-7.292, -69.18) kind 3: 22.485  FAILED, KNOWN, expected 22.486\n    test 974 GeoidKarney('egm2008-1.pgm').height(-31.566, -166.689) kind 3: 14.942  FAILED, KNOWN, expected 14.943\n    test 975 GeoidKarney('egm2008-1.pgm').height(-82.751, -162.085) kind 3: -47.387\n    test 976 GeoidKarney('egm2008-1.pgm').height(-40.7, 99.466) kind 3: -18.404  FAILED, KNOWN, expected -18.403\n    test 977 GeoidKarney('egm2008-1.pgm').height(48.676, 39.69) kind 3: 10.185\n    test 978 GeoidKarney('egm2008-1.pgm').height(74.817, -78.404) kind 3: 5.670  FAILED, KNOWN, expected 5.671\n    test 979 GeoidKarney('egm2008-1.pgm').height(-81.032, -63.865) kind 3: -24.577\n    test 980 GeoidKarney('egm2008-1.pgm').height(74.022, 9.432) kind 3: 43.288\n    test 981 GeoidKarney('egm2008-1.pgm').height(-75.071, 17.579) kind 3: 13.747  FAILED, KNOWN, expected 13.748\n    test 982 GeoidKarney('egm2008-1.pgm').height(-12.546, -54.851) kind 3: -5.342\n    test 983 GeoidKarney('egm2008-1.pgm').height(-13.621, 42.408) kind 3: -25.579\n    test 984 GeoidKarney('egm2008-1.pgm').height(-2.266, -91.951) kind 3: -9.849\n    test 985 GeoidKarney('egm2008-1.pgm').height(-18.672, 42.547) kind 3: -10.490  FAILED, KNOWN, expected -10.491\n    test 986 GeoidKarney('egm2008-1.pgm').height(-41.44, 157.413) kind 3: 0.243  FAILED, KNOWN, expected 0.244\n    test 987 GeoidKarney('egm2008-1.pgm').height(53.686, -79.375) kind 3: -43.820  FAILED, KNOWN, expected -43.821\n    test 988 GeoidKarney('egm2008-1.pgm').height(39.26, -30.351) kind 3: 57.401\n    test 989 GeoidKarney('egm2008-1.pgm').height(-51.699, -141.493) kind 3: -17.889  FAILED, KNOWN, expected -17.890\n    test 990 GeoidKarney('egm2008-1.pgm').height(36.585, 4.515) kind 3: 46.423  FAILED, KNOWN, expected 46.421\n    test 991 GeoidKarney('egm2008-1.pgm').height(39.642, -54.659) kind 3: -14.475\n    test 992 GeoidKarney('egm2008-1.pgm').height(59.761, 166.567) kind 3: 11.118\n    test 993 GeoidKarney('egm2008-1.pgm').height(51.83, 13.357) kind 3: 42.291\n    test 994 GeoidKarney('egm2008-1.pgm').height(-36.531, -175.431) kind 3: 22.327  FAILED, KNOWN, expected 22.326\n    test 995 GeoidKarney('egm2008-1.pgm').height(-37.08, 125.264) kind 3: -33.098\n    test 996 GeoidKarney('egm2008-1.pgm').height(-68.651, 92.732) kind 3: 9.431  FAILED, KNOWN, expected 9.430\n    test 997 GeoidKarney('egm2008-1.pgm').height(35.087, 45.336) kind 3: 6.032\n    test 998 GeoidKarney('egm2008-1.pgm').height(-61.356, -169.379) kind 3: -44.330\n    test 999 GeoidKarney('egm2008-1.pgm').height(-36.955, 179.12) kind 3: 21.775\n    test 1000 GeoidKarney('egm2008-1.pgm').height(10.248, -6.714) kind 3: 29.243\n    test 1001 GeoidKarney('egm2008-1.pgm').height(36.868, 84.602) kind 3: -40.677  FAILED, KNOWN, expected -40.676\n    test 1002 GeoidKarney('egm2008-1.pgm').height(28.637, 88.933) kind 3: -31.352  FAILED, KNOWN, expected -31.353\n    test 1003 GeoidKarney('egm2008-1.pgm').height(54.811, -99.968) kind 3: -32.700  FAILED, KNOWN, expected -32.701\n    test 1004 GeoidKarney('egm2008-1.pgm').height(7.611, 145.911) kind 3: 60.628  FAILED, KNOWN, expected 60.629\n    test 1005 GeoidKarney('egm2008-1.pgm').height(59.412, 170.102) kind 3: 6.617\n    test 1006 GeoidKarney('egm2008-1.pgm').height(-61.469, 126.144) kind 3: -31.887\n    test 1007 GeoidKarney('egm2008-1.pgm').height(18.514, -137.083) kind 3: -26.536  FAILED, KNOWN, expected -26.535\n    test 1008 GeoidKarney('egm2008-1.pgm').height(7.854, -126.799) kind 3: -29.631  FAILED, KNOWN, expected -29.630\n    test 1009 GeoidKarney('egm2008-1.pgm').height(47.489, 134.183) kind 3: 22.274  FAILED, KNOWN, expected 22.275\n    test 1010 GeoidKarney('egm2008-1.pgm').height(-34.144, -11.922) kind 3: 17.095  FAILED, KNOWN, expected 17.094\n    test 1011 GeoidKarney('egm2008-1.pgm').height(-58.389, 117.458) kind 3: -20.940  FAILED, KNOWN, expected -20.941\n    test 1012 GeoidKarney('egm2008-1.pgm').height(9.773, 95.846) kind 3: -42.740\n    test 1013 GeoidKarney('egm2008-1.pgm').height(-53.12, 136.994) kind 3: -21.651\n    test 1014 GeoidKarney('egm2008-1.pgm').height(-50.35, 0.075) kind 3: 25.240\n    test 1015 GeoidKarney('egm2008-1.pgm').height(31.438, -170.879) kind 3: -8.758\n    test 1016 GeoidKarney('egm2008-1.pgm').height(37.541, -153.024) kind 3: -19.606  FAILED, KNOWN, expected -19.607\n    test 1017 GeoidKarney('egm2008-1.pgm').height(27.586, 2.444) kind 3: 26.258\n    test 1018 GeoidKarney('egm2008-1.pgm').height(-26.139, -106.201) kind 3: -3.823  FAILED, KNOWN, expected -3.824\n    test 1019 GeoidKarney('egm2008-1.pgm').height(-33.426, -14.84) kind 3: 18.195\n    test 1020 GeoidKarney('egm2008-1.pgm').height(39.586, -153.019) kind 3: -17.724  FAILED, KNOWN, expected -17.725\n    test 1021 GeoidKarney('egm2008-1.pgm').height(-60.79, -2.578) kind 3: 14.512  FAILED, KNOWN, expected 14.513\n    test 1022 GeoidKarney('egm2008-1.pgm').height(-20.131, 21.975) kind 3: 16.808  FAILED, KNOWN, expected 16.809\n    test 1023 GeoidKarney('egm2008-1.pgm').height(75.649, 99.921) kind 3: -8.025  FAILED, KNOWN, expected -8.026\n    test 1024 GeoidKarney('egm2008-1.pgm').height(-0.385, -23.788) kind 3: 9.689  FAILED, KNOWN, expected 9.688\n    test 1025 GeoidKarney('egm2008-1.pgm').height(-51.56, -50.327) kind 3: 6.218\n    test 1026 GeoidKarney('egm2008-1.pgm').height(-43.129, -167.271) kind 3: -2.725  FAILED, KNOWN, expected -2.724\n    test 1027 GeoidKarney('egm2008-1.pgm').height(46.374, 71.948) kind 3: -42.566  FAILED, KNOWN, expected -42.565\n    test 1028 GeoidKarney('egm2008-1.pgm').height(-22.783, 140.657) kind 3: 38.342  FAILED, KNOWN, expected 38.341\n    test 1029 GeoidKarney('egm2008-1.pgm').height(-12.056, 122.804) kind 3: 33.888  FAILED, KNOWN, expected 33.889\n    test 1030 GeoidKarney('egm2008-1.pgm').height(30.127, 94.738) kind 3: -37.381  FAILED, KNOWN, expected -37.380\n    test 1031 GeoidKarney('egm2008-1.pgm').height(46.296, -174.479) kind 3: -1.857  FAILED, KNOWN, expected -1.858\n    test 1032 GeoidKarney('egm2008-1.pgm').height(34.99, 15.052) kind 3: 34.196  FAILED, KNOWN, expected 34.195\n    test 1033 GeoidKarney('egm2008-1.pgm').height(-51.287, 90.565) kind 3: 12.767\n    test 1034 GeoidKarney('egm2008-1.pgm').height(34.217, 141.302) kind 3: 15.612\n    test 1035 GeoidKarney('egm2008-1.pgm').height(-40.423, -142.787) kind 3: -11.063\n    test 1036 GeoidKarney('egm2008-1.pgm').height(-17.854, -170.216) kind 3: 27.386  FAILED, KNOWN, expected 27.387\n    test 1037 GeoidKarney('egm2008-1.pgm').height(47.803, 112.701) kind 3: -23.817\n    test 1038 GeoidKarney('egm2008-1.pgm').height(-23.276, 133.454) kind 3: 18.713  FAILED, KNOWN, expected 18.712\n    test 1039 GeoidKarney('egm2008-1.pgm').height(-26.884, -36.571) kind 3: -7.343  FAILED, KNOWN, expected -7.344\n    test 1040 GeoidKarney('egm2008-1.pgm').height(-37.106, 31.128) kind 3: 29.997  FAILED, KNOWN, expected 29.998\n    test 1041 GeoidKarney('egm2008-1.pgm').height(-75.363, -173.674) kind 3: -61.869\n    test 1042 GeoidKarney('egm2008-1.pgm').height(-18.305, 69.016) kind 3: -24.938  FAILED, KNOWN, expected -24.937\n    test 1043 GeoidKarney('egm2008-1.pgm').height(39.527, 23.58) kind 3: 38.557  FAILED, KNOWN, expected 38.556\n    test 1044 GeoidKarney('egm2008-1.pgm').height(68.903, 30.97) kind 3: 19.671\n    test 1045 GeoidKarney('egm2008-1.pgm').height(53.937, 168.318) kind 3: 2.273  FAILED, KNOWN, expected 2.272\n    test 1046 GeoidKarney('egm2008-1.pgm').height(-38.6, 64.812) kind 3: 24.863\n    test 1047 GeoidKarney('egm2008-1.pgm').height(-41.396, -69.739) kind 3: 21.636\n    test 1048 GeoidKarney('egm2008-1.pgm').height(50.158, 72.319) kind 3: -33.850  FAILED, KNOWN, expected -33.851\n    test 1049 GeoidKarney('egm2008-1.pgm').height(27.692, 176.153) kind 3: -5.299\n    test 1050 GeoidKarney('egm2008-1.pgm').height(-48.419, 170.454) kind 3: -6.789\n    test 1051 GeoidKarney('egm2008-1.pgm').height(-65.346, -124.976) kind 3: -35.030\n    test 1052 GeoidKarney('egm2008-1.pgm').height(-51.873, 167.266) kind 3: -15.338\n    test 1053 GeoidKarney('egm2008-1.pgm').height(-7.263, 84.308) kind 3: -79.356\n    test 1054 GeoidKarney('egm2008-1.pgm').height(-1.461, -105.458) kind 3: -16.649  FAILED, KNOWN, expected -16.650\n    test 1055 GeoidKarney('egm2008-1.pgm').height(7.684, 161.873) kind 3: 36.359\n    test 1056 GeoidKarney('egm2008-1.pgm').height(-31.475, -158.52) kind 3: 3.614  FAILED, KNOWN, expected 3.615\n    test 1057 GeoidKarney('egm2008-1.pgm').height(-36.187, 62.917) kind 3: 23.946  FAILED, KNOWN, expected 23.947\n    test 1058 GeoidKarney('egm2008-1.pgm').height(16.003, 141.687) kind 3: 51.494  FAILED, KNOWN, expected 51.495\n    test 1059 GeoidKarney('egm2008-1.pgm').height(30.182, 86.261) kind 3: -30.909  FAILED, KNOWN, expected -30.910\n    test 1060 GeoidKarney('egm2008-1.pgm').height(-77.304, 159.498) kind 3: -52.131\n    test 1061 GeoidKarney('egm2008-1.pgm').height(39.536, 139.795) kind 3: 37.046  FAILED, KNOWN, expected 37.045\n    test 1062 GeoidKarney('egm2008-1.pgm').height(8.569, 134.618) kind 3: 64.181  FAILED, KNOWN, expected 64.180\n    test 1063 GeoidKarney('egm2008-1.pgm').height(14.473, 90.596) kind 3: -62.475\n    test 1064 GeoidKarney('egm2008-1.pgm').height(-13.138, -99.589) kind 3: -8.454\n    test 1065 GeoidKarney('egm2008-1.pgm').height(34.212, -26.307) kind 3: 40.834\n    test 1066 GeoidKarney('egm2008-1.pgm').height(21.89, 76.371) kind 3: -60.455\n    test 1067 GeoidKarney('egm2008-1.pgm').height(29.793, 120.487) kind 3: 9.728  FAILED, KNOWN, expected 9.727\n    test 1068 GeoidKarney('egm2008-1.pgm').height(15.724, 122.714) kind 3: 32.141  FAILED, KNOWN, expected 32.142\n    test 1069 GeoidKarney('egm2008-1.pgm').height(-66.208, -78.499) kind 3: -6.221  FAILED, KNOWN, expected -6.220\n    test 1070 GeoidKarney('egm2008-1.pgm').height(-39.507, 55.809) kind 3: 32.488  FAILED, KNOWN, expected 32.489\n    test 1071 GeoidKarney('egm2008-1.pgm').height(28.159, 51.476) kind 3: -24.692\n    test 1072 GeoidKarney('egm2008-1.pgm').height(-36.207, 120.205) kind 3: -38.749\n    test 1073 GeoidKarney('egm2008-1.pgm').height(30.575, -99.998) kind 3: -23.254  FAILED, KNOWN, expected -23.255\n    test 1074 GeoidKarney('egm2008-1.pgm').height(-16.993, 37.136) kind 3: -13.454  FAILED, KNOWN, expected -13.455\n    test 1075 GeoidKarney('egm2008-1.pgm').height(-11.477, 12.039) kind 3: 16.627\n    test 1076 GeoidKarney('egm2008-1.pgm').height(30.428, -144.765) kind 3: -22.221\n    test 1077 GeoidKarney('egm2008-1.pgm').height(-17.44, -92.424) kind 3: -4.836\n    test 1078 GeoidKarney('egm2008-1.pgm').height(40.203, 143.43) kind 3: 19.571\n    test 1079 GeoidKarney('egm2008-1.pgm').height(-37.098, -106.574) kind 3: -9.227\n    test 1080 GeoidKarney('egm2008-1.pgm').height(54.62, -68.413) kind 3: -23.248\n    test 1081 GeoidKarney('egm2008-1.pgm').height(-31.633, 148.182) kind 3: 24.829\n    test 1082 GeoidKarney('egm2008-1.pgm').height(-56.07, -141.407) kind 3: -21.706  FAILED, KNOWN, expected -21.705\n    test 1083 GeoidKarney('egm2008-1.pgm').height(-8.195, -52.691) kind 3: -17.054  FAILED, KNOWN, expected -17.053\n    test 1084 GeoidKarney('egm2008-1.pgm').height(17.851, 24.749) kind 3: 11.715  FAILED, KNOWN, expected 11.716\n    test 1085 GeoidKarney('egm2008-1.pgm').height(0.349, -108.333) kind 3: -19.529  FAILED, KNOWN, expected -19.530\n    test 1086 GeoidKarney('egm2008-1.pgm').height(15.038, 126.191) kind 3: 45.929\n    test 1087 GeoidKarney('egm2008-1.pgm').height(-21.111, -123.696) kind 3: -8.283\n    test 1088 GeoidKarney('egm2008-1.pgm').height(30.947, 173.002) kind 3: -8.467\n    test 1089 GeoidKarney('egm2008-1.pgm').height(-10.698, -144.091) kind 3: -1.829\n    test 1090 GeoidKarney('egm2008-1.pgm').height(-29.412, 124.753) kind 3: -16.505  FAILED, KNOWN, expected -16.506\n    test 1091 GeoidKarney('egm2008-1.pgm').height(38.224, -137.189) kind 3: -35.384\n    test 1092 GeoidKarney('egm2008-1.pgm').height(36.064, -132.409) kind 3: -38.962  FAILED, KNOWN, expected -38.963\n    test 1093 GeoidKarney('egm2008-1.pgm').height(29.975, 178.076) kind 3: -6.956\n    test 1094 GeoidKarney('egm2008-1.pgm').height(-21.346, 169.26) kind 3: 51.006  FAILED, KNOWN, expected 51.005\n    test 1095 GeoidKarney('egm2008-1.pgm').height(49.282, -152.934) kind 3: 1.193  FAILED, KNOWN, expected 1.192\n    test 1096 GeoidKarney('egm2008-1.pgm').height(16.349, -99.962) kind 3: -15.038\n    test 1097 GeoidKarney('egm2008-1.pgm').height(-14.293, -167.34) kind 3: 17.791\n    test 1098 GeoidKarney('egm2008-1.pgm').height(47.166, -38.523) kind 3: 44.653  FAILED, KNOWN, expected 44.652\n    test 1099 GeoidKarney('egm2008-1.pgm').height(-58.911, 114.347) kind 3: -17.972  FAILED, KNOWN, expected -17.971\n    test 1100 GeoidKarney('egm2008-1.pgm').height(-9.055, 111.294) kind 3: 11.630  FAILED, KNOWN, expected 11.631\n    test 1101 GeoidKarney('egm2008-1.pgm').height(18.391, 29.692) kind 3: 7.394\n    test 1102 GeoidKarney('egm2008-1.pgm').height(-15.074, 22.153) kind 3: 7.932\n    test 1103 GeoidKarney('egm2008-1.pgm').height(-4.235, 62.001) kind 3: -60.594  FAILED, KNOWN, expected -60.593\n    test 1104 GeoidKarney('egm2008-1.pgm').height(15.171, -86.583) kind 3: 4.384\n    test 1105 GeoidKarney('egm2008-1.pgm').height(79.254, 112.116) kind 3: 1.296  FAILED, KNOWN, expected 1.297\n    test 1106 GeoidKarney('egm2008-1.pgm').height(15.947, 156.093) kind 3: 30.852\n    test 1107 GeoidKarney('egm2008-1.pgm').height(68.371, -177.382) kind 3: 2.705  FAILED, KNOWN, expected 2.704\n    test 1108 GeoidKarney('egm2008-1.pgm').height(-41.931, -72.093) kind 3: 21.264\n    test 1109 GeoidKarney('egm2008-1.pgm').height(-1.193, -143.133) kind 3: 5.443\n    test 1110 GeoidKarney('egm2008-1.pgm').height(-37.006, 154.513) kind 3: 9.998\n    test 1111 GeoidKarney('egm2008-1.pgm').height(-22.148, 9.938) kind 3: 22.428\n    test 1112 GeoidKarney('egm2008-1.pgm').height(24.329, 109.044) kind 3: -23.155  FAILED, KNOWN, expected -23.154\n    test 1113 GeoidKarney('egm2008-1.pgm').height(-54.878, 114.691) kind 3: -17.662\n    test 1114 GeoidKarney('egm2008-1.pgm').height(45.601, -80.458) kind 3: -36.840  FAILED, KNOWN, expected -36.839\n    test 1115 GeoidKarney('egm2008-1.pgm').height(2.372, 58.974) kind 3: -61.220  FAILED, KNOWN, expected -61.221\n    test 1116 GeoidKarney('egm2008-1.pgm').height(15.937, 165.854) kind 3: 20.355\n    test 1117 GeoidKarney('egm2008-1.pgm').height(4.889, -24.213) kind 3: 13.147\n    test 1118 GeoidKarney('egm2008-1.pgm').height(-11.392, 179.558) kind 3: 41.073  FAILED, KNOWN, expected 41.072\n    test 1119 GeoidKarney('egm2008-1.pgm').height(58.246, 4.862) kind 3: 42.982\n    test 1120 GeoidKarney('egm2008-1.pgm').height(34.302, -109.109) kind 3: -22.997  FAILED, KNOWN, expected -22.998\n    test 1121 GeoidKarney('egm2008-1.pgm').height(-58.196, 117.306) kind 3: -20.662\n    test 1122 GeoidKarney('egm2008-1.pgm').height(44.5, 173.769) kind 3: -8.438\n    test 1123 GeoidKarney('egm2008-1.pgm').height(-28.863, -139.775) kind 3: -8.711  FAILED, KNOWN, expected -8.712\n    test 1124 GeoidKarney('egm2008-1.pgm').height(19.507, -96.099) kind 3: -12.653\n    test 1125 GeoidKarney('egm2008-1.pgm').height(-42.488, -73.907) kind 3: 17.166\n    test 1126 GeoidKarney('egm2008-1.pgm').height(46.138, -141.429) kind 3: -19.873  FAILED, KNOWN, expected -19.874\n    test 1127 GeoidKarney('egm2008-1.pgm').height(60.507, 93.743) kind 3: -31.124\n    test 1128 GeoidKarney('egm2008-1.pgm').height(26.219, -145.434) kind 3: -17.306  FAILED, KNOWN, expected -17.307\n    test 1129 GeoidKarney('egm2008-1.pgm').height(-28.687, 3.37) kind 3: 23.435  FAILED, KNOWN, expected 23.434\n    test 1130 GeoidKarney('egm2008-1.pgm').height(-15.008, 117.45) kind 3: 4.508\n    test 1131 GeoidKarney('egm2008-1.pgm').height(40.71, 144.095) kind 3: 11.550  FAILED, KNOWN, expected 11.549\n    test 1132 GeoidKarney('egm2008-1.pgm').height(20.823, -173.611) kind 3: 5.749  FAILED, KNOWN, expected 5.748\n    test 1133 GeoidKarney('egm2008-1.pgm').height(16.776, -3.009) kind 3: 28.788\n    test 1134 GeoidKarney('egm2008-1.pgm').height(41.0, -95.0) kind 3: -30.589\n    test 1135 GeoidKarney('egm2008-1.pgm').height(49.0, -120.5) kind 3: -15.273\n    test 1136 GeoidKarney('egm2008-1.pgm').height(49.0, -103.5) kind 3: -18.624\n    test 1137 GeoidKarney('egm2008-1.pgm').height(49.0, -86.5) kind 3: -37.872  FAILED, KNOWN, expected -37.873\n    test 1138 GeoidKarney('egm2008-1.pgm').height(49.0, -69.5) kind 3: -26.511\n    test 1139 GeoidKarney('egm2008-1.pgm').height(33.0, -120.5) kind 3: -39.600\n    test 1140 GeoidKarney('egm2008-1.pgm').height(33.0, -103.5) kind 3: -22.689\n    test 1141 GeoidKarney('egm2008-1.pgm').height(33.0, -86.5) kind 3: -30.067\n    test 1142 GeoidKarney('egm2008-1.pgm').height(33.0, -69.5) kind 3: -48.093\n\n    test 1143 GeoidKarney('egm2008-1.pgm').height() kind 3, hits 0, eps max (in 0 FAILED): 0.001323\n    test 1144 GeoidKarney('egm2008-1.pgm').height() kind 3, hits 0, eps mean (of 210 total): 0.000468\n    test 1145 GeoidKarney('egm2008-1.pgm').height() kind 3, hits 0, eps stdev (of 210 total): 0.000333\n    test 1146 GeoidKarney('egm2008-1.pgm').highest(): -8.4, 147.367, 85.839\n    test 1147 GeoidKarney('egm2008-1.pgm').lowerleft(): -90.0, -180.0, -30.15\n    test 1148 GeoidKarney('egm2008-1.pgm').lowerright(): -90.0, 180.0, -30.15\n    test 1149 GeoidKarney('egm2008-1.pgm').lowest(): 4.7, 78.767, -106.911\n    test 1150 GeoidKarney('egm2008-1.pgm').upperleft(): 90.0, -180.0, 14.898\n    test 1151 GeoidKarney('egm2008-1.pgm').upperright(): 90.0, 180.0, 14.898\n    test 1152 GeoidKarney('egm2008-1.pgm').dtype: (\"'ushort'\",)\n    test 1153 GeoidKarney('egm2008-1.pgm').knots: ('233301600',)\n    test 1154 GeoidKarney('egm2008-1.pgm').mean: ('-1.317',)\n    test 1155 GeoidKarney('egm2008-1.pgm').nBytes: ('None',)\n    test 1156 GeoidKarney('egm2008-1.pgm').smooth: ('None',)\n    test 1157 GeoidKarney('egm2008-1.pgm').stdev: ('29.244',)\n    test 1158 GeoidKarney('egm2008-1.pgm')._g2ll2(180, 360): (180, 0.0)\n    test 1159 GeoidKarney('egm2008-1.pgm')._ll2g2(180, 360): (180, 360)\n    test 1160 GeoidKarney('egm2008-1.pgm')._swne: (-10.0, -100.0, 10.0, 100.0)\n    test 1161 GeoidKarney('egm2008-1.pgm')._swne: (-10.0, -100.0, 10.0, 100.0)\n    test 1162 GeoidKarney('egm2008-1.pgm').toStr: GeoidKarney('egm2008-1.pgm'): lowerleft(-90.0, -180.0, -30.15), upperright(90.0, 180.0, 14.898), center(0.0, 0.0, 17.226), highest(-8.4, 147.367, 85.839), lowest(4.7, 78.767, -106.911)\n\n    test 1163 closed: True\n    test 1164 copy(<class 'type'>): (<class 'pygeodesy.geoids.GeoidKarney'>, True)\n    test 1165 GeoidKarney.copy(): (<class 'pygeodesy.geoids.GeoidKarney'>, True)\n    test 1166 GeoidPGM('egm2008-1.pgm').height(-76.981, 34.17) kind 3: lli ('-76.981466, 34.17016'), H (False) or wrap (False): lli ('-76.981466, 34.17016'): outside on SE  FAILED, KNOWN, expected 12.636\n    test 1167 GeoidPGM('egm2008-1.pgm').height(79.695, 88.806) kind 3: lli ('79.695484, 88.805571'), H (False) or wrap (False): lli ('79.695484, 88.805571'): outside on NE  FAILED, KNOWN, expected 0.749\n    test 1168 GeoidPGM('egm2008-1.pgm').height(-15.245, 168.748) kind 3: lli ('-15.244804, 168.747961'), H (False) or wrap (False): lli ('-15.244804, 168.747961'): outside on SE  FAILED, KNOWN, expected 65.109\n    test 1169 GeoidPGM('egm2008-1.pgm').height(-19.379, 15.855) kind 3: lli ('-19.379357, 15.85511'), H (False) or wrap (False): lli ('-19.379357, 15.85511'): outside on SE  FAILED, KNOWN, expected 24.889\n    test 1170 GeoidPGM('egm2008-1.pgm').height(43.378, -130.552) kind 3: lli ('43.377784, -130.551582'), H (False) or wrap (False): lli ('43.377784, -130.551582'): outside on W  FAILED, KNOWN, expected -29.557\n    test 1171 GeoidPGM('egm2008-1.pgm').height(-16.075, 21.795) kind 3: lli ('-16.074554, 21.79547'), H (False) or wrap (False): lli ('-16.074554, 21.79547'): outside on SE  FAILED, KNOWN, expected 9.742\n    test 1172 GeoidPGM('egm2008-1.pgm').height(-11.256, -73.75) kind 3: lli ('-11.256389, -73.750255'), H (False) or wrap (False): lli ('-11.256389, -73.750255'): outside on S  FAILED, KNOWN, expected 30.059\n    test 1173 GeoidPGM('egm2008-1.pgm').height(69.017, -15.921) kind 3: lli ('69.016564, -15.921115'), H (False) or wrap (False): lli ('69.016564, -15.921115'): outside on NE  FAILED, KNOWN, expected 60.690\n    test 1174 GeoidPGM('egm2008-1.pgm').height(2.221, 139.739) kind 3: lli ('2.221008, 139.73935'), H (False) or wrap (False): lli ('2.221008, 139.73935'): outside on SE  FAILED, KNOWN, expected 69.133\n    test 1175 GeoidPGM('egm2008-1.pgm').height(-9.097, 119.142) kind 3: lli ('-9.096878, 119.141551'), H (False) or wrap (False): lli ('-9.096878, 119.141551'): outside on SE  FAILED, KNOWN, expected 36.520\n    test 1176 GeoidPGM('egm2008-1.pgm').height(-28.524, -22.192) kind 3: lli ('-28.523717, -22.1925'), H (False) or wrap (False): lli ('-28.523717, -22.1925'): outside on SE  FAILED, KNOWN, expected 6.801\n    test 1177 GeoidPGM('egm2008-1.pgm').height(12.272, -136.424) kind 3: lli ('12.27231, -136.424168'), H (False) or wrap (False): lli ('12.27231, -136.424168'): outside on SW  FAILED, KNOWN, expected -20.651\n    test 1178 GeoidPGM('egm2008-1.pgm').height(-15.203, -85.604) kind 3: lli ('-15.20317, -85.603753'), H (False) or wrap (False): lli ('-15.20317, -85.603753'): outside on S  FAILED, KNOWN, expected -3.040\n    test 1179 GeoidPGM('egm2008-1.pgm').height(-63.736, -77.17) kind 3: lli ('-63.735565, -77.169636'), H (False) or wrap (False): lli ('-63.735565, -77.169636'): outside on S  FAILED, KNOWN, expected -1.328\n    test 1180 GeoidPGM('egm2008-1.pgm').height(-48.771, -90.102) kind 3: lli ('-48.770825, -90.102117'), H (False) or wrap (False): lli ('-48.770825, -90.102117'): outside on S  FAILED, KNOWN, expected -2.172\n    test 1181 GeoidPGM('egm2008-1.pgm').height(-0.179, -126.368) kind 3: lli ('-0.178524, -126.368279'), H (False) or wrap (False): lli ('-0.178524, -126.368279'): outside on SW  FAILED, KNOWN, expected -17.411\n    test 1182 GeoidPGM('egm2008-1.pgm').height(1.586, -128.887) kind 3: lli ('1.585536, -128.886967'), H (False) or wrap (False): lli ('1.585536, -128.886967'): outside on SW  FAILED, KNOWN, expected -16.425\n    test 1183 GeoidPGM('egm2008-1.pgm').height(-48.781, -2.684) kind 3: lli ('-48.780705, -2.684224'), H (False) or wrap (False): lli ('-48.780705, -2.684224'): outside on SE  FAILED, KNOWN, expected 24.698\n    test 1184 GeoidPGM('egm2008-1.pgm').height(-49.092, 136.862) kind 3: lli ('-49.091632, 136.862256'), H (False) or wrap (False): lli ('-49.091632, 136.862256'): outside on SE  FAILED, KNOWN, expected -18.329\n    test 1185 GeoidPGM('egm2008-1.pgm').height(47.732, 17.552) kind 3: lli ('47.731727, 17.552416'), H (False) or wrap (False): lli ('47.731727, 17.552416'): outside on E  FAILED, KNOWN, expected 43.802\n    test 1186 GeoidPGM('egm2008-1.pgm').height(-49.11, 85.706) kind 3: lli ('-49.109549, 85.706437'), H (False) or wrap (False): lli ('-49.109549, 85.706437'): outside on SE  FAILED, KNOWN, expected 18.716\n    test 1187 GeoidPGM('egm2008-1.pgm').height(-49.162, 40.321) kind 3: lli ('-49.162281, 40.321209'), H (False) or wrap (False): lli ('-49.162281, 40.321209'): outside on SE  FAILED, KNOWN, expected 44.469\n    test 1188 GeoidPGM('egm2008-1.pgm').height(3.498, 158.118) kind 3: lli ('3.498333, 158.117699'), H (False) or wrap (False): lli ('3.498333, 158.117699'): outside on SE  FAILED, KNOWN, expected 49.944\n    test 1189 GeoidPGM('egm2008-1.pgm').height(-35.616, 122.648) kind 3: lli ('-35.616495, 122.648407'), H (False) or wrap (False): lli ('-35.616495, 122.648407'): outside on SE  FAILED, KNOWN, expected -35.878\n    test 1190 GeoidPGM('egm2008-1.pgm').height(56.598, -96.114) kind 3: lli ('56.598256, -96.113696'), H (False) or wrap (False): lli ('56.598256, -96.113696'): outside on N  FAILED, KNOWN, expected -40.777\n    test 1191 GeoidPGM('egm2008-1.pgm').height(-31.85, 149.121) kind 3: lli ('-31.850231, 149.120596'), H (False) or wrap (False): lli ('-31.850231, 149.120596'): outside on SE  FAILED, KNOWN, expected 26.559\n    test 1192 GeoidPGM('egm2008-1.pgm').height(-26.569, -177.792) kind 3: lli ('-26.568996, -177.792196'), H (False) or wrap (False): lli ('-26.568996, -177.792196'): outside on SW  FAILED, KNOWN, expected 49.361\n    test 1193 GeoidPGM('egm2008-1.pgm').height(76.735, -65.753) kind 3: lli ('76.734699, -65.752952'), H (False) or wrap (False): lli ('76.734699, -65.752952'): outside on N  FAILED, KNOWN, expected 21.107\n    test 1194 GeoidPGM('egm2008-1.pgm').height(-21.404, -122.268) kind 3: lli ('-21.404166, -122.267869'), H (False) or wrap (False): lli ('-21.404166, -122.267869'): outside on S  FAILED, KNOWN, expected -7.202\n    test 1195 GeoidPGM('egm2008-1.pgm').height(-77.133, -65.474) kind 3: lli ('-77.133426, -65.473819'), H (False) or wrap (False): lli ('-77.133426, -65.473819'): outside on S  FAILED, KNOWN, expected -17.168\n    test 1196 GeoidPGM('egm2008-1.pgm').height(-58.812, 2.276) kind 3: lli ('-58.811779, 2.276142'), H (False) or wrap (False): lli ('-58.811779, 2.276142'): outside on SE  FAILED, KNOWN, expected 18.359\n    test 1197 GeoidPGM('egm2008-1.pgm').height(4.415, 155.683) kind 3: lli ('4.415102, 155.683336'), H (False) or wrap (False): lli ('4.415102, 155.683336'): outside on SE  FAILED, KNOWN, expected 52.118\n    test 1198 GeoidPGM('egm2008-1.pgm').height(-28.146, 107.081) kind 3: lli ('-28.145768, 107.081334'), H (False) or wrap (False): lli ('-28.145768, 107.081334'): outside on SE  FAILED, KNOWN, expected -38.950\n    test 1199 GeoidPGM('egm2008-1.pgm').height(-10.551, -126.69) kind 3: lli ('-10.551267, -126.690468'), H (False) or wrap (False): lli ('-10.551267, -126.690468'): outside on SW  FAILED, KNOWN, expected -9.934\n    test 1200 GeoidPGM('egm2008-1.pgm').height(-25.444, -103.337) kind 3: lli ('-25.444344, -103.337184'), H (False) or wrap (False): lli ('-25.444344, -103.337184'): outside on S  FAILED, KNOWN, expected -2.879\n    test 1201 GeoidPGM('egm2008-1.pgm').height(24.436, 46.159) kind 3: lli ('24.435896, 46.158715'), H (False) or wrap (False): lli ('24.435896, 46.158715'): outside on SE  FAILED, KNOWN, expected -5.025\n    test 1202 GeoidPGM('egm2008-1.pgm').height(-72.889, 37.107) kind 3: lli ('-72.888898, 37.106907'), H (False) or wrap (False): lli ('-72.888898, 37.106907'): outside on SE  FAILED, KNOWN, expected 24.296\n    test 1203 GeoidPGM('egm2008-1.pgm').height(-19.629, 13.245) kind 3: lli ('-19.628762, 13.244525'), H (False) or wrap (False): lli ('-19.628762, 13.244525'): outside on SE  FAILED, KNOWN, expected 25.131\n    test 1204 GeoidPGM('egm2008-1.pgm').height(-7.602, 171.265) kind 3: lli ('-7.602449, 171.264763'), H (False) or wrap (False): lli ('-7.602449, 171.264763'): outside on SE  FAILED, KNOWN, expected 40.721\n    test 1205 GeoidPGM('egm2008-1.pgm').height(-45.364, -1.876) kind 3: lli ('-45.364396, -1.876412'), H (False) or wrap (False): lli ('-45.364396, -1.876412'): outside on SE  FAILED, KNOWN, expected 22.388\n    test 1206 GeoidPGM('egm2008-1.pgm').height(-7.292, -69.18) kind 3: lli ('-7.292121, -69.179565'), H (False) or wrap (False): lli ('-7.292121, -69.179565'): outside on S  FAILED, KNOWN, expected 22.486\n    test 1207 GeoidPGM('egm2008-1.pgm').height(-31.566, -166.689) kind 3: lli ('-31.566264, -166.688985'), H (False) or wrap (False): lli ('-31.566264, -166.688985'): outside on SW  FAILED, KNOWN, expected 14.943\n    test 1208 GeoidPGM('egm2008-1.pgm').height(-82.751, -162.085) kind 3: lli ('-82.751144, -162.08523'), H (False) or wrap (False): lli ('-82.751144, -162.08523'): outside on SW  FAILED, KNOWN, expected -47.387\n    test 1209 GeoidPGM('egm2008-1.pgm').height(-40.7, 99.466) kind 3: lli ('-40.699637, 99.465509'), H (False) or wrap (False): lli ('-40.699637, 99.465509'): outside on SE  FAILED, KNOWN, expected -18.403\n    test 1210 GeoidPGM('egm2008-1.pgm').height(48.676, 39.69) kind 3: lli ('48.675771, 39.690012'), H (False) or wrap (False): lli ('48.675771, 39.690012'): outside on E  FAILED, KNOWN, expected 10.185\n    test 1211 GeoidPGM('egm2008-1.pgm').height(74.817, -78.404) kind 3: lli ('74.817287, -78.404187'), H (False) or wrap (False): lli ('74.817287, -78.404187'): outside on N  FAILED, KNOWN, expected 5.671\n    test 1212 GeoidPGM('egm2008-1.pgm').height(-81.032, -63.865) kind 3: lli ('-81.032306, -63.864898'), H (False) or wrap (False): lli ('-81.032306, -63.864898'): outside on SE  FAILED, KNOWN, expected -24.577\n    test 1213 GeoidPGM('egm2008-1.pgm').height(74.022, 9.432) kind 3: lli ('74.021785, 9.431926'), H (False) or wrap (False): lli ('74.021785, 9.431926'): outside on NE  FAILED, KNOWN, expected 43.288\n    test 1214 GeoidPGM('egm2008-1.pgm').height(-75.071, 17.579) kind 3: lli ('-75.070563, 17.57935'), H (False) or wrap (False): lli ('-75.070563, 17.57935'): outside on SE  FAILED, KNOWN, expected 13.748\n    test 1215 GeoidPGM('egm2008-1.pgm').height(-12.546, -54.851) kind 3: lli ('-12.54612, -54.850614'), H (False) or wrap (False): lli ('-12.54612, -54.850614'): outside on SE  FAILED, KNOWN, expected -5.342\n    test 1216 GeoidPGM('egm2008-1.pgm').height(-13.621, 42.408) kind 3: lli ('-13.621418, 42.407805'), H (False) or wrap (False): lli ('-13.621418, 42.407805'): outside on SE  FAILED, KNOWN, expected -25.579\n    test 1217 GeoidPGM('egm2008-1.pgm').height(-2.266, -91.951) kind 3: lli ('-2.265774, -91.951437'), H (False) or wrap (False): lli ('-2.265774, -91.951437'): outside on S  FAILED, KNOWN, expected -9.849\n    test 1218 GeoidPGM('egm2008-1.pgm').height(-18.672, 42.547) kind 3: lli ('-18.672316, 42.547125'), H (False) or wrap (False): lli ('-18.672316, 42.547125'): outside on SE  FAILED, KNOWN, expected -10.491\n    test 1219 GeoidPGM('egm2008-1.pgm').height(-41.44, 157.413) kind 3: lli ('-41.439867, 157.413161'), H (False) or wrap (False): lli ('-41.439867, 157.413161'): outside on SE  FAILED, KNOWN, expected 0.244\n    test 1220 GeoidPGM('egm2008-1.pgm').height(53.686, -79.375) kind 3: -43.820  FAILED, KNOWN, expected -43.821\n    test 1221 GeoidPGM('egm2008-1.pgm').height(39.26, -30.351) kind 3: lli ('39.260397, -30.351359'), H (False) or wrap (False): lli ('39.260397, -30.351359'): outside on E  FAILED, KNOWN, expected 57.401\n    test 1222 GeoidPGM('egm2008-1.pgm').height(-51.699, -141.493) kind 3: lli ('-51.699195, -141.493082'), H (False) or wrap (False): lli ('-51.699195, -141.493082'): outside on SW  FAILED, KNOWN, expected -17.890\n    test 1223 GeoidPGM('egm2008-1.pgm').height(36.585, 4.515) kind 3: lli ('36.584861, 4.515157'), H (False) or wrap (False): lli ('36.584861, 4.515157'): outside on E  FAILED, KNOWN, expected 46.421\n    test 1224 GeoidPGM('egm2008-1.pgm').height(39.642, -54.659) kind 3: lli ('39.641638, -54.658846'), H (False) or wrap (False): lli ('39.641638, -54.658846'): outside on E  FAILED, KNOWN, expected -14.475\n    test 1225 GeoidPGM('egm2008-1.pgm').height(59.761, 166.567) kind 3: lli ('59.761024, 166.566646'), H (False) or wrap (False): lli ('59.761024, 166.566646'): outside on NE  FAILED, KNOWN, expected 11.118\n    test 1226 GeoidPGM('egm2008-1.pgm').height(51.83, 13.357) kind 3: lli ('51.830001, 13.357464'), H (False) or wrap (False): lli ('51.830001, 13.357464'): outside on E  FAILED, KNOWN, expected 42.291\n    test 1227 GeoidPGM('egm2008-1.pgm').height(-36.531, -175.431) kind 3: lli ('-36.530912, -175.430804'), H (False) or wrap (False): lli ('-36.530912, -175.430804'): outside on SW  FAILED, KNOWN, expected 22.326\n    test 1228 GeoidPGM('egm2008-1.pgm').height(-37.08, 125.264) kind 3: lli ('-37.079518, 125.263901'), H (False) or wrap (False): lli ('-37.079518, 125.263901'): outside on SE  FAILED, KNOWN, expected -33.098\n    test 1229 GeoidPGM('egm2008-1.pgm').height(-68.651, 92.732) kind 3: lli ('-68.650762, 92.731524'), H (False) or wrap (False): lli ('-68.650762, 92.731524'): outside on SE  FAILED, KNOWN, expected 9.430\n    test 1230 GeoidPGM('egm2008-1.pgm').height(35.087, 45.336) kind 3: lli ('35.086645, 45.335611'), H (False) or wrap (False): lli ('35.086645, 45.335611'): outside on E  FAILED, KNOWN, expected 6.032\n    test 1231 GeoidPGM('egm2008-1.pgm').height(-61.356, -169.379) kind 3: lli ('-61.355646, -169.378929'), H (False) or wrap (False): lli ('-61.355646, -169.378929'): outside on SW  FAILED, KNOWN, expected -44.330\n    test 1232 GeoidPGM('egm2008-1.pgm').height(-36.955, 179.12) kind 3: lli ('-36.954967, 179.11982'), H (False) or wrap (False): lli ('-36.954967, 179.11982'): outside on SE  FAILED, KNOWN, expected 21.775\n    test 1233 GeoidPGM('egm2008-1.pgm').height(10.248, -6.714) kind 3: lli ('10.248399, -6.713559'), H (False) or wrap (False): lli ('10.248399, -6.713559'): outside on SE  FAILED, KNOWN, expected 29.243\n    test 1234 GeoidPGM('egm2008-1.pgm').height(36.868, 84.602) kind 3: lli ('36.868193, 84.602243'), H (False) or wrap (False): lli ('36.868193, 84.602243'): outside on E  FAILED, KNOWN, expected -40.676\n    test 1235 GeoidPGM('egm2008-1.pgm').height(28.637, 88.933) kind 3: lli ('28.636703, 88.932955'), H (False) or wrap (False): lli ('28.636703, 88.932955'): outside on E  FAILED, KNOWN, expected -31.353\n    test 1236 GeoidPGM('egm2008-1.pgm').height(54.811, -99.968) kind 3: -32.700  FAILED, KNOWN, expected -32.701\n    test 1237 GeoidPGM('egm2008-1.pgm').height(7.611, 145.911) kind 3: lli ('7.610621, 145.911188'), H (False) or wrap (False): lli ('7.610621, 145.911188'): outside on SE  FAILED, KNOWN, expected 60.629\n    test 1238 GeoidPGM('egm2008-1.pgm').height(59.412, 170.102) kind 3: lli ('59.411557, 170.102394'), H (False) or wrap (False): lli ('59.411557, 170.102394'): outside on NE  FAILED, KNOWN, expected 6.617\n    test 1239 GeoidPGM('egm2008-1.pgm').height(-61.469, 126.144) kind 3: lli ('-61.468618, 126.144056'), H (False) or wrap (False): lli ('-61.468618, 126.144056'): outside on SE  FAILED, KNOWN, expected -31.887\n    test 1240 GeoidPGM('egm2008-1.pgm').height(18.514, -137.083) kind 3: lli ('18.514019, -137.083301'), H (False) or wrap (False): lli ('18.514019, -137.083301'): outside on SW  FAILED, KNOWN, expected -26.535\n    test 1241 GeoidPGM('egm2008-1.pgm').height(7.854, -126.799) kind 3: lli ('7.854318, -126.799148'), H (False) or wrap (False): lli ('7.854318, -126.799148'): outside on SW  FAILED, KNOWN, expected -29.630\n    test 1242 GeoidPGM('egm2008-1.pgm').height(47.489, 134.183) kind 3: lli ('47.489222, 134.182527'), H (False) or wrap (False): lli ('47.489222, 134.182527'): outside on E  FAILED, KNOWN, expected 22.275\n    test 1243 GeoidPGM('egm2008-1.pgm').height(-34.144, -11.922) kind 3: lli ('-34.143602, -11.921567'), H (False) or wrap (False): lli ('-34.143602, -11.921567'): outside on SE  FAILED, KNOWN, expected 17.094\n    test 1244 GeoidPGM('egm2008-1.pgm').height(-58.389, 117.458) kind 3: lli ('-58.388787, 117.457755'), H (False) or wrap (False): lli ('-58.388787, 117.457755'): outside on SE  FAILED, KNOWN, expected -20.941\n    test 1245 GeoidPGM('egm2008-1.pgm').height(9.773, 95.846) kind 3: lli ('9.772764, 95.845943'), H (False) or wrap (False): lli ('9.772764, 95.845943'): outside on SE  FAILED, KNOWN, expected -42.740\n    test 1246 GeoidPGM('egm2008-1.pgm').height(-53.12, 136.994) kind 3: lli ('-53.120381, 136.993994'), H (False) or wrap (False): lli ('-53.120381, 136.993994'): outside on SE  FAILED, KNOWN, expected -21.651\n    test 1247 GeoidPGM('egm2008-1.pgm').height(-50.35, 0.075) kind 3: lli ('-50.349867, 0.07532'), H (False) or wrap (False): lli ('-50.349867, 0.07532'): outside on SE  FAILED, KNOWN, expected 25.240\n    test 1248 GeoidPGM('egm2008-1.pgm').height(31.438, -170.879) kind 3: lli ('31.438387, -170.878548'), H (False) or wrap (False): lli ('31.438387, -170.878548'): outside on W  FAILED, KNOWN, expected -8.758\n    test 1249 GeoidPGM('egm2008-1.pgm').height(37.541, -153.024) kind 3: lli ('37.540689, -153.024228'), H (False) or wrap (False): lli ('37.540689, -153.024228'): outside on W  FAILED, KNOWN, expected -19.607\n    test 1250 GeoidPGM('egm2008-1.pgm').height(27.586, 2.444) kind 3: lli ('27.586088, 2.443556'), H (False) or wrap (False): lli ('27.586088, 2.443556'): outside on E  FAILED, KNOWN, expected 26.258\n    test 1251 GeoidPGM('egm2008-1.pgm').height(-26.139, -106.201) kind 3: lli ('-26.139126, -106.20081'), H (False) or wrap (False): lli ('-26.139126, -106.20081'): outside on S  FAILED, KNOWN, expected -3.824\n    test 1252 GeoidPGM('egm2008-1.pgm').height(-33.426, -14.84) kind 3: lli ('-33.425976, -14.840359'), H (False) or wrap (False): lli ('-33.425976, -14.840359'): outside on SE  FAILED, KNOWN, expected 18.195\n    test 1253 GeoidPGM('egm2008-1.pgm').height(39.586, -153.019) kind 3: lli ('39.586286, -153.018974'), H (False) or wrap (False): lli ('39.586286, -153.018974'): outside on W  FAILED, KNOWN, expected -17.725\n    test 1254 GeoidPGM('egm2008-1.pgm').height(-60.79, -2.578) kind 3: lli ('-60.790289, -2.578163'), H (False) or wrap (False): lli ('-60.790289, -2.578163'): outside on SE  FAILED, KNOWN, expected 14.513\n    test 1255 GeoidPGM('egm2008-1.pgm').height(-20.131, 21.975) kind 3: lli ('-20.130538, 21.974941'), H (False) or wrap (False): lli ('-20.130538, 21.974941'): outside on SE  FAILED, KNOWN, expected 16.809\n    test 1256 GeoidPGM('egm2008-1.pgm').height(75.649, 99.921) kind 3: lli ('75.64878, 99.920587'), H (False) or wrap (False): lli ('75.64878, 99.920587'): outside on NE  FAILED, KNOWN, expected -8.026\n    test 1257 GeoidPGM('egm2008-1.pgm').height(-0.385, -23.788) kind 3: lli ('-0.385453, -23.788336'), H (False) or wrap (False): lli ('-0.385453, -23.788336'): outside on SE  FAILED, KNOWN, expected 9.688\n    test 1258 GeoidPGM('egm2008-1.pgm').height(-51.56, -50.327) kind 3: lli ('-51.559564, -50.32687'), H (False) or wrap (False): lli ('-51.559564, -50.32687'): outside on SE  FAILED, KNOWN, expected 6.218\n    test 1259 GeoidPGM('egm2008-1.pgm').height(-43.129, -167.271) kind 3: lli ('-43.129209, -167.27147'), H (False) or wrap (False): lli ('-43.129209, -167.27147'): outside on SW  FAILED, KNOWN, expected -2.724\n    test 1260 GeoidPGM('egm2008-1.pgm').height(46.374, 71.948) kind 3: lli ('46.374177, 71.947616'), H (False) or wrap (False): lli ('46.374177, 71.947616'): outside on E  FAILED, KNOWN, expected -42.565\n    test 1261 GeoidPGM('egm2008-1.pgm').height(-22.783, 140.657) kind 3: lli ('-22.783085, 140.657444'), H (False) or wrap (False): lli ('-22.783085, 140.657444'): outside on SE  FAILED, KNOWN, expected 38.341\n    test 1262 GeoidPGM('egm2008-1.pgm').height(-12.056, 122.804) kind 3: lli ('-12.05584, 122.80402'), H (False) or wrap (False): lli ('-12.05584, 122.80402'): outside on SE  FAILED, KNOWN, expected 33.889\n    test 1263 GeoidPGM('egm2008-1.pgm').height(30.127, 94.738) kind 3: lli ('30.127372, 94.738186'), H (False) or wrap (False): lli ('30.127372, 94.738186'): outside on E  FAILED, KNOWN, expected -37.380\n    test 1264 GeoidPGM('egm2008-1.pgm').height(46.296, -174.479) kind 3: lli ('46.296018, -174.478616'), H (False) or wrap (False): lli ('46.296018, -174.478616'): outside on W  FAILED, KNOWN, expected -1.858\n    test 1265 GeoidPGM('egm2008-1.pgm').height(34.99, 15.052) kind 3: lli ('34.989646, 15.051646'), H (False) or wrap (False): lli ('34.989646, 15.051646'): outside on E  FAILED, KNOWN, expected 34.195\n    test 1266 GeoidPGM('egm2008-1.pgm').height(-51.287, 90.565) kind 3: lli ('-51.287168, 90.564711'), H (False) or wrap (False): lli ('-51.287168, 90.564711'): outside on SE  FAILED, KNOWN, expected 12.767\n    test 1267 GeoidPGM('egm2008-1.pgm').height(34.217, 141.302) kind 3: lli ('34.217016, 141.301548'), H (False) or wrap (False): lli ('34.217016, 141.301548'): outside on E  FAILED, KNOWN, expected 15.612\n    test 1268 GeoidPGM('egm2008-1.pgm').height(-40.423, -142.787) kind 3: lli ('-40.423023, -142.786592'), H (False) or wrap (False): lli ('-40.423023, -142.786592'): outside on SW  FAILED, KNOWN, expected -11.063\n    test 1269 GeoidPGM('egm2008-1.pgm').height(-17.854, -170.216) kind 3: lli ('-17.854486, -170.216354'), H (False) or wrap (False): lli ('-17.854486, -170.216354'): outside on SW  FAILED, KNOWN, expected 27.387\n    test 1270 GeoidPGM('egm2008-1.pgm').height(47.803, 112.701) kind 3: lli ('47.803271, 112.700942'), H (False) or wrap (False): lli ('47.803271, 112.700942'): outside on E  FAILED, KNOWN, expected -23.817\n    test 1271 GeoidPGM('egm2008-1.pgm').height(-23.276, 133.454) kind 3: lli ('-23.275962, 133.453821'), H (False) or wrap (False): lli ('-23.275962, 133.453821'): outside on SE  FAILED, KNOWN, expected 18.712\n    test 1272 GeoidPGM('egm2008-1.pgm').height(-26.884, -36.571) kind 3: lli ('-26.884369, -36.570654'), H (False) or wrap (False): lli ('-26.884369, -36.570654'): outside on SE  FAILED, KNOWN, expected -7.344\n    test 1273 GeoidPGM('egm2008-1.pgm').height(-37.106, 31.128) kind 3: lli ('-37.106468, 31.127939'), H (False) or wrap (False): lli ('-37.106468, 31.127939'): outside on SE  FAILED, KNOWN, expected 29.998\n    test 1274 GeoidPGM('egm2008-1.pgm').height(-75.363, -173.674) kind 3: lli ('-75.363185, -173.673649'), H (False) or wrap (False): lli ('-75.363185, -173.673649'): outside on SW  FAILED, KNOWN, expected -61.869\n    test 1275 GeoidPGM('egm2008-1.pgm').height(-18.305, 69.016) kind 3: lli ('-18.30485, 69.015565'), H (False) or wrap (False): lli ('-18.30485, 69.015565'): outside on SE  FAILED, KNOWN, expected -24.937\n    test 1276 GeoidPGM('egm2008-1.pgm').height(39.527, 23.58) kind 3: lli ('39.527401, 23.580206'), H (False) or wrap (False): lli ('39.527401, 23.580206'): outside on E  FAILED, KNOWN, expected 38.556\n    test 1277 GeoidPGM('egm2008-1.pgm').height(68.903, 30.97) kind 3: lli ('68.903148, 30.970247'), H (False) or wrap (False): lli ('68.903148, 30.970247'): outside on NE  FAILED, KNOWN, expected 19.671\n    test 1278 GeoidPGM('egm2008-1.pgm').height(53.937, 168.318) kind 3: lli ('53.936937, 168.318201'), H (False) or wrap (False): lli ('53.936937, 168.318201'): outside on E  FAILED, KNOWN, expected 2.272\n    test 1279 GeoidPGM('egm2008-1.pgm').height(-38.6, 64.812) kind 3: lli ('-38.600098, 64.811532'), H (False) or wrap (False): lli ('-38.600098, 64.811532'): outside on SE  FAILED, KNOWN, expected 24.863\n    test 1280 GeoidPGM('egm2008-1.pgm').height(-41.396, -69.739) kind 3: lli ('-41.395739, -69.739418'), H (False) or wrap (False): lli ('-41.395739, -69.739418'): outside on S  FAILED, KNOWN, expected 21.636\n    test 1281 GeoidPGM('egm2008-1.pgm').height(50.158, 72.319) kind 3: lli ('50.157749, 72.319017'), H (False) or wrap (False): lli ('50.157749, 72.319017'): outside on E  FAILED, KNOWN, expected -33.851\n    test 1282 GeoidPGM('egm2008-1.pgm').height(27.692, 176.153) kind 3: lli ('27.691879, 176.152884'), H (False) or wrap (False): lli ('27.691879, 176.152884'): outside on E  FAILED, KNOWN, expected -5.299\n    test 1283 GeoidPGM('egm2008-1.pgm').height(-48.419, 170.454) kind 3: lli ('-48.419449, 170.454472'), H (False) or wrap (False): lli ('-48.419449, 170.454472'): outside on SE  FAILED, KNOWN, expected -6.789\n    test 1284 GeoidPGM('egm2008-1.pgm').height(-65.346, -124.976) kind 3: lli ('-65.34567, -124.975961'), H (False) or wrap (False): lli ('-65.34567, -124.975961'): outside on S  FAILED, KNOWN, expected -35.030\n    test 1285 GeoidPGM('egm2008-1.pgm').height(-51.873, 167.266) kind 3: lli ('-51.873009, 167.265613'), H (False) or wrap (False): lli ('-51.873009, 167.265613'): outside on SE  FAILED, KNOWN, expected -15.338\n    test 1286 GeoidPGM('egm2008-1.pgm').height(-7.263, 84.308) kind 3: lli ('-7.262544, 84.307626'), H (False) or wrap (False): lli ('-7.262544, 84.307626'): outside on SE  FAILED, KNOWN, expected -79.356\n    test 1287 GeoidPGM('egm2008-1.pgm').height(-1.461, -105.458) kind 3: lli ('-1.461003, -105.458323'), H (False) or wrap (False): lli ('-1.461003, -105.458323'): outside on S  FAILED, KNOWN, expected -16.650\n    test 1288 GeoidPGM('egm2008-1.pgm').height(7.684, 161.873) kind 3: lli ('7.684324, 161.87293'), H (False) or wrap (False): lli ('7.684324, 161.87293'): outside on SE  FAILED, KNOWN, expected 36.359\n    test 1289 GeoidPGM('egm2008-1.pgm').height(-31.475, -158.52) kind 3: lli ('-31.474549, -158.520033'), H (False) or wrap (False): lli ('-31.474549, -158.520033'): outside on SW  FAILED, KNOWN, expected 3.615\n    test 1290 GeoidPGM('egm2008-1.pgm').height(-36.187, 62.917) kind 3: lli ('-36.187212, 62.917075'), H (False) or wrap (False): lli ('-36.187212, 62.917075'): outside on SE  FAILED, KNOWN, expected 23.947\n    test 1291 GeoidPGM('egm2008-1.pgm').height(16.003, 141.687) kind 3: lli ('16.002975, 141.686552'), H (False) or wrap (False): lli ('16.002975, 141.686552'): outside on SE  FAILED, KNOWN, expected 51.495\n    test 1292 GeoidPGM('egm2008-1.pgm').height(30.182, 86.261) kind 3: lli ('30.182218, 86.260576'), H (False) or wrap (False): lli ('30.182218, 86.260576'): outside on E  FAILED, KNOWN, expected -30.910\n    test 1293 GeoidPGM('egm2008-1.pgm').height(-77.304, 159.498) kind 3: lli ('-77.303842, 159.497665'), H (False) or wrap (False): lli ('-77.303842, 159.497665'): outside on SE  FAILED, KNOWN, expected -52.131\n    test 1294 GeoidPGM('egm2008-1.pgm').height(39.536, 139.795) kind 3: lli ('39.536, 139.795358'), H (False) or wrap (False): lli ('39.536, 139.795358'): outside on E  FAILED, KNOWN, expected 37.045\n    test 1295 GeoidPGM('egm2008-1.pgm').height(8.569, 134.618) kind 3: lli ('8.569309, 134.618403'), H (False) or wrap (False): lli ('8.569309, 134.618403'): outside on SE  FAILED, KNOWN, expected 64.180\n    test 1296 GeoidPGM('egm2008-1.pgm').height(14.473, 90.596) kind 3: lli ('14.473483, 90.595663'), H (False) or wrap (False): lli ('14.473483, 90.595663'): outside on SE  FAILED, KNOWN, expected -62.475\n    test 1297 GeoidPGM('egm2008-1.pgm').height(-13.138, -99.589) kind 3: lli ('-13.13767, -99.589202'), H (False) or wrap (False): lli ('-13.13767, -99.589202'): outside on S  FAILED, KNOWN, expected -8.454\n    test 1298 GeoidPGM('egm2008-1.pgm').height(34.212, -26.307) kind 3: lli ('34.211572, -26.307194'), H (False) or wrap (False): lli ('34.211572, -26.307194'): outside on E  FAILED, KNOWN, expected 40.834\n    test 1299 GeoidPGM('egm2008-1.pgm').height(21.89, 76.371) kind 3: lli ('21.889732, 76.371362'), H (False) or wrap (False): lli ('21.889732, 76.371362'): outside on SE  FAILED, KNOWN, expected -60.455\n    test 1300 GeoidPGM('egm2008-1.pgm').height(29.793, 120.487) kind 3: lli ('29.792909, 120.48703'), H (False) or wrap (False): lli ('29.792909, 120.48703'): outside on E  FAILED, KNOWN, expected 9.727\n    test 1301 GeoidPGM('egm2008-1.pgm').height(15.724, 122.714) kind 3: lli ('15.723814, 122.713685'), H (False) or wrap (False): lli ('15.723814, 122.713685'): outside on SE  FAILED, KNOWN, expected 32.142\n    test 1302 GeoidPGM('egm2008-1.pgm').height(-66.208, -78.499) kind 3: lli ('-66.20776, -78.498807'), H (False) or wrap (False): lli ('-66.20776, -78.498807'): outside on S  FAILED, KNOWN, expected -6.220\n    test 1303 GeoidPGM('egm2008-1.pgm').height(-39.507, 55.809) kind 3: lli ('-39.507049, 55.808743'), H (False) or wrap (False): lli ('-39.507049, 55.808743'): outside on SE  FAILED, KNOWN, expected 32.489\n    test 1304 GeoidPGM('egm2008-1.pgm').height(28.159, 51.476) kind 3: lli ('28.159494, 51.476474'), H (False) or wrap (False): lli ('28.159494, 51.476474'): outside on E  FAILED, KNOWN, expected -24.692\n    test 1305 GeoidPGM('egm2008-1.pgm').height(-36.207, 120.205) kind 3: lli ('-36.206825, 120.205019'), H (False) or wrap (False): lli ('-36.206825, 120.205019'): outside on SE  FAILED, KNOWN, expected -38.749\n    test 1306 GeoidPGM('egm2008-1.pgm').height(30.575, -99.998) kind 3: -23.254  FAILED, KNOWN, expected -23.255\n    test 1307 GeoidPGM('egm2008-1.pgm').height(-16.993, 37.136) kind 3: lli ('-16.992515, 37.135881'), H (False) or wrap (False): lli ('-16.992515, 37.135881'): outside on SE  FAILED, KNOWN, expected -13.455\n    test 1308 GeoidPGM('egm2008-1.pgm').height(-11.477, 12.039) kind 3: lli ('-11.476997, 12.038708'), H (False) or wrap (False): lli ('-11.476997, 12.038708'): outside on SE  FAILED, KNOWN, expected 16.627\n    test 1309 GeoidPGM('egm2008-1.pgm').height(30.428, -144.765) kind 3: lli ('30.428465, -144.765049'), H (False) or wrap (False): lli ('30.428465, -144.765049'): outside on W  FAILED, KNOWN, expected -22.221\n    test 1310 GeoidPGM('egm2008-1.pgm').height(-17.44, -92.424) kind 3: lli ('-17.439773, -92.424339'), H (False) or wrap (False): lli ('-17.439773, -92.424339'): outside on S  FAILED, KNOWN, expected -4.836\n    test 1311 GeoidPGM('egm2008-1.pgm').height(40.203, 143.43) kind 3: lli ('40.203164, 143.429799'), H (False) or wrap (False): lli ('40.203164, 143.429799'): outside on E  FAILED, KNOWN, expected 19.571\n    test 1312 GeoidPGM('egm2008-1.pgm').height(-37.098, -106.574) kind 3: lli ('-37.098392, -106.573712'), H (False) or wrap (False): lli ('-37.098392, -106.573712'): outside on S  FAILED, KNOWN, expected -9.227\n    test 1313 GeoidPGM('egm2008-1.pgm').height(54.62, -68.413) kind 3: -23.248\n    test 1314 GeoidPGM('egm2008-1.pgm').height(-31.633, 148.182) kind 3: lli ('-31.633252, 148.181926'), H (False) or wrap (False): lli ('-31.633252, 148.181926'): outside on SE  FAILED, KNOWN, expected 24.829\n    test 1315 GeoidPGM('egm2008-1.pgm').height(-56.07, -141.407) kind 3: lli ('-56.069748, -141.406778'), H (False) or wrap (False): lli ('-56.069748, -141.406778'): outside on SW  FAILED, KNOWN, expected -21.705\n    test 1316 GeoidPGM('egm2008-1.pgm').height(-8.195, -52.691) kind 3: lli ('-8.195214, -52.691177'), H (False) or wrap (False): lli ('-8.195214, -52.691177'): outside on SE  FAILED, KNOWN, expected -17.053\n    test 1317 GeoidPGM('egm2008-1.pgm').height(17.851, 24.749) kind 3: lli ('17.850526, 24.748606'), H (False) or wrap (False): lli ('17.850526, 24.748606'): outside on SE  FAILED, KNOWN, expected 11.716\n    test 1318 GeoidPGM('egm2008-1.pgm').height(0.349, -108.333) kind 3: lli ('0.349465, -108.332667'), H (False) or wrap (False): lli ('0.349465, -108.332667'): outside on S  FAILED, KNOWN, expected -19.530\n    test 1319 GeoidPGM('egm2008-1.pgm').height(15.038, 126.191) kind 3: lli ('15.037932, 126.190545'), H (False) or wrap (False): lli ('15.037932, 126.190545'): outside on SE  FAILED, KNOWN, expected 45.929\n    test 1320 GeoidPGM('egm2008-1.pgm').height(-21.111, -123.696) kind 3: lli ('-21.111105, -123.695981'), H (False) or wrap (False): lli ('-21.111105, -123.695981'): outside on S  FAILED, KNOWN, expected -8.283\n    test 1321 GeoidPGM('egm2008-1.pgm').height(30.947, 173.002) kind 3: lli ('30.946618, 173.002137'), H (False) or wrap (False): lli ('30.946618, 173.002137'): outside on E  FAILED, KNOWN, expected -8.467\n    test 1322 GeoidPGM('egm2008-1.pgm').height(-10.698, -144.091) kind 3: lli ('-10.698334, -144.091109'), H (False) or wrap (False): lli ('-10.698334, -144.091109'): outside on SW  FAILED, KNOWN, expected -1.829\n    test 1323 GeoidPGM('egm2008-1.pgm').height(-29.412, 124.753) kind 3: lli ('-29.412071, 124.75279'), H (False) or wrap (False): lli ('-29.412071, 124.75279'): outside on SE  FAILED, KNOWN, expected -16.506\n    test 1324 GeoidPGM('egm2008-1.pgm').height(38.224, -137.189) kind 3: lli ('38.223621, -137.189376'), H (False) or wrap (False): lli ('38.223621, -137.189376'): outside on W  FAILED, KNOWN, expected -35.384\n    test 1325 GeoidPGM('egm2008-1.pgm').height(36.064, -132.409) kind 3: lli ('36.063775, -132.409284'), H (False) or wrap (False): lli ('36.063775, -132.409284'): outside on W  FAILED, KNOWN, expected -38.963\n    test 1326 GeoidPGM('egm2008-1.pgm').height(29.975, 178.076) kind 3: lli ('29.974676, 178.075894'), H (False) or wrap (False): lli ('29.974676, 178.075894'): outside on E  FAILED, KNOWN, expected -6.956\n    test 1327 GeoidPGM('egm2008-1.pgm').height(-21.346, 169.26) kind 3: lli ('-21.346396, 169.259508'), H (False) or wrap (False): lli ('-21.346396, 169.259508'): outside on SE  FAILED, KNOWN, expected 51.005\n    test 1328 GeoidPGM('egm2008-1.pgm').height(49.282, -152.934) kind 3: lli ('49.282472, -152.934409'), H (False) or wrap (False): lli ('49.282472, -152.934409'): outside on W  FAILED, KNOWN, expected 1.192\n    test 1329 GeoidPGM('egm2008-1.pgm').height(16.349, -99.962) kind 3: lli ('16.349121, -99.962229'), H (False) or wrap (False): lli ('16.349121, -99.962229'): outside on S  FAILED, KNOWN, expected -15.038\n    test 1330 GeoidPGM('egm2008-1.pgm').height(-14.293, -167.34) kind 3: lli ('-14.293325, -167.339799'), H (False) or wrap (False): lli ('-14.293325, -167.339799'): outside on SW  FAILED, KNOWN, expected 17.791\n    test 1331 GeoidPGM('egm2008-1.pgm').height(47.166, -38.523) kind 3: lli ('47.165911, -38.522629'), H (False) or wrap (False): lli ('47.165911, -38.522629'): outside on E  FAILED, KNOWN, expected 44.652\n    test 1332 GeoidPGM('egm2008-1.pgm').height(-58.911, 114.347) kind 3: lli ('-58.910597, 114.346927'), H (False) or wrap (False): lli ('-58.910597, 114.346927'): outside on SE  FAILED, KNOWN, expected -17.971\n    test 1333 GeoidPGM('egm2008-1.pgm').height(-9.055, 111.294) kind 3: lli ('-9.055095, 111.294422'), H (False) or wrap (False): lli ('-9.055095, 111.294422'): outside on SE  FAILED, KNOWN, expected 11.631\n    test 1334 GeoidPGM('egm2008-1.pgm').height(18.391, 29.692) kind 3: lli ('18.390988, 29.691577'), H (False) or wrap (False): lli ('18.390988, 29.691577'): outside on SE  FAILED, KNOWN, expected 7.394\n    test 1335 GeoidPGM('egm2008-1.pgm').height(-15.074, 22.153) kind 3: lli ('-15.074412, 22.152663'), H (False) or wrap (False): lli ('-15.074412, 22.152663'): outside on SE  FAILED, KNOWN, expected 7.932\n    test 1336 GeoidPGM('egm2008-1.pgm').height(-4.235, 62.001) kind 3: lli ('-4.234571, 62.001081'), H (False) or wrap (False): lli ('-4.234571, 62.001081'): outside on SE  FAILED, KNOWN, expected -60.593\n    test 1337 GeoidPGM('egm2008-1.pgm').height(15.171, -86.583) kind 3: lli ('15.170822, -86.582929'), H (False) or wrap (False): lli ('15.170822, -86.582929'): outside on S  FAILED, KNOWN, expected 4.384\n    test 1338 GeoidPGM('egm2008-1.pgm').height(79.254, 112.116) kind 3: lli ('79.254009, 112.115515'), H (False) or wrap (False): lli ('79.254009, 112.115515'): outside on NE  FAILED, KNOWN, expected 1.297\n    test 1339 GeoidPGM('egm2008-1.pgm').height(15.947, 156.093) kind 3: lli ('15.947068, 156.092678'), H (False) or wrap (False): lli ('15.947068, 156.092678'): outside on SE  FAILED, KNOWN, expected 30.852\n    test 1340 GeoidPGM('egm2008-1.pgm').height(68.371, -177.382) kind 3: lli ('68.370605, -177.382127'), H (False) or wrap (False): lli ('68.370605, -177.382127'): outside on NW  FAILED, KNOWN, expected 2.704\n    test 1341 GeoidPGM('egm2008-1.pgm').height(-41.931, -72.093) kind 3: lli ('-41.931009, -72.093413'), H (False) or wrap (False): lli ('-41.931009, -72.093413'): outside on S  FAILED, KNOWN, expected 21.264\n    test 1342 GeoidPGM('egm2008-1.pgm').height(-1.193, -143.133) kind 3: lli ('-1.192967, -143.133078'), H (False) or wrap (False): lli ('-1.192967, -143.133078'): outside on SW  FAILED, KNOWN, expected 5.443\n    test 1343 GeoidPGM('egm2008-1.pgm').height(-37.006, 154.513) kind 3: lli ('-37.006115, 154.512534'), H (False) or wrap (False): lli ('-37.006115, 154.512534'): outside on SE  FAILED, KNOWN, expected 9.998\n    test 1344 GeoidPGM('egm2008-1.pgm').height(-22.148, 9.938) kind 3: lli ('-22.148493, 9.938408'), H (False) or wrap (False): lli ('-22.148493, 9.938408'): outside on SE  FAILED, KNOWN, expected 22.428\n    test 1345 GeoidPGM('egm2008-1.pgm').height(24.329, 109.044) kind 3: lli ('24.328746, 109.043774'), H (False) or wrap (False): lli ('24.328746, 109.043774'): outside on SE  FAILED, KNOWN, expected -23.154\n    test 1346 GeoidPGM('egm2008-1.pgm').height(-54.878, 114.691) kind 3: lli ('-54.877699, 114.691444'), H (False) or wrap (False): lli ('-54.877699, 114.691444'): outside on SE  FAILED, KNOWN, expected -17.662\n    test 1347 GeoidPGM('egm2008-1.pgm').height(45.601, -80.458) kind 3: -36.840  FAILED, KNOWN, expected -36.839\n    test 1348 GeoidPGM('egm2008-1.pgm').height(2.372, 58.974) kind 3: lli ('2.371766, 58.974082'), H (False) or wrap (False): lli ('2.371766, 58.974082'): outside on SE  FAILED, KNOWN, expected -61.221\n    test 1349 GeoidPGM('egm2008-1.pgm').height(15.937, 165.854) kind 3: lli ('15.936522, 165.854035'), H (False) or wrap (False): lli ('15.936522, 165.854035'): outside on SE  FAILED, KNOWN, expected 20.355\n    test 1350 GeoidPGM('egm2008-1.pgm').height(4.889, -24.213) kind 3: lli ('4.889499, -24.213194'), H (False) or wrap (False): lli ('4.889499, -24.213194'): outside on SE  FAILED, KNOWN, expected 13.147\n    test 1351 GeoidPGM('egm2008-1.pgm').height(-11.392, 179.558) kind 3: lli ('-11.392365, 179.558198'), H (False) or wrap (False): lli ('-11.392365, 179.558198'): outside on SE  FAILED, KNOWN, expected 41.072\n    test 1352 GeoidPGM('egm2008-1.pgm').height(58.246, 4.862) kind 3: lli ('58.24629, 4.862128'), H (False) or wrap (False): lli ('58.24629, 4.862128'): outside on NE  FAILED, KNOWN, expected 42.982\n    test 1353 GeoidPGM('egm2008-1.pgm').height(34.302, -109.109) kind 3: -22.997  FAILED, KNOWN, expected -22.998\n    test 1354 GeoidPGM('egm2008-1.pgm').height(-58.196, 117.306) kind 3: lli ('-58.195787, 117.305696'), H (False) or wrap (False): lli ('-58.195787, 117.305696'): outside on SE  FAILED, KNOWN, expected -20.662\n    test 1355 GeoidPGM('egm2008-1.pgm').height(44.5, 173.769) kind 3: lli ('44.499876, 173.768568'), H (False) or wrap (False): lli ('44.499876, 173.768568'): outside on E  FAILED, KNOWN, expected -8.438\n    test 1356 GeoidPGM('egm2008-1.pgm').height(-28.863, -139.775) kind 3: lli ('-28.862539, -139.774812'), H (False) or wrap (False): lli ('-28.862539, -139.774812'): outside on SW  FAILED, KNOWN, expected -8.712\n    test 1357 GeoidPGM('egm2008-1.pgm').height(19.507, -96.099) kind 3: lli ('19.507043, -96.099433'), H (False) or wrap (False): lli ('19.507043, -96.099433'): outside on S  FAILED, KNOWN, expected -12.653\n    test 1358 GeoidPGM('egm2008-1.pgm').height(-42.488, -73.907) kind 3: lli ('-42.487604, -73.906602'), H (False) or wrap (False): lli ('-42.487604, -73.906602'): outside on S  FAILED, KNOWN, expected 17.166\n    test 1359 GeoidPGM('egm2008-1.pgm').height(46.138, -141.429) kind 3: lli ('46.138437, -141.429193'), H (False) or wrap (False): lli ('46.138437, -141.429193'): outside on W  FAILED, KNOWN, expected -19.874\n    test 1360 GeoidPGM('egm2008-1.pgm').height(60.507, 93.743) kind 3: lli ('60.506969, 93.74336'), H (False) or wrap (False): lli ('60.506969, 93.74336'): outside on NE  FAILED, KNOWN, expected -31.124\n    test 1361 GeoidPGM('egm2008-1.pgm').height(26.219, -145.434) kind 3: lli ('26.219081, -145.434391'), H (False) or wrap (False): lli ('26.219081, -145.434391'): outside on W  FAILED, KNOWN, expected -17.307\n    test 1362 GeoidPGM('egm2008-1.pgm').height(-28.687, 3.37) kind 3: lli ('-28.68714, 3.370196'), H (False) or wrap (False): lli ('-28.68714, 3.370196'): outside on SE  FAILED, KNOWN, expected 23.434\n    test 1363 GeoidPGM('egm2008-1.pgm').height(-15.008, 117.45) kind 3: lli ('-15.007944, 117.449536'), H (False) or wrap (False): lli ('-15.007944, 117.449536'): outside on SE  FAILED, KNOWN, expected 4.508\n    test 1364 GeoidPGM('egm2008-1.pgm').height(40.71, 144.095) kind 3: lli ('40.710024, 144.095126'), H (False) or wrap (False): lli ('40.710024, 144.095126'): outside on E  FAILED, KNOWN, expected 11.549\n    test 1365 GeoidPGM('egm2008-1.pgm').height(20.823, -173.611) kind 3: lli ('20.823096, -173.610797'), H (False) or wrap (False): lli ('20.823096, -173.610797'): outside on SW  FAILED, KNOWN, expected 5.748\n    test 1366 GeoidPGM('egm2008-1.pgm').height(16.776, -3.009) kind 3: lli ('16.776, -3.009'), H (False) or wrap (False): lli ('16.776, -3.009'): outside on SE  FAILED, KNOWN, expected 28.788\n    test 1367 GeoidPGM('egm2008-1.pgm').height(41.0, -95.0) kind 3: -30.588  FAILED, KNOWN, expected -30.589\n    test 1368 GeoidPGM('egm2008-1.pgm').height(49.0, -120.5) kind 3: -15.273\n    test 1369 GeoidPGM('egm2008-1.pgm').height(49.0, -103.5) kind 3: -18.624\n    test 1370 GeoidPGM('egm2008-1.pgm').height(49.0, -86.5) kind 3: -37.872  FAILED, KNOWN, expected -37.873\n    test 1371 GeoidPGM('egm2008-1.pgm').height(49.0, -69.5) kind 3: -26.511\n    test 1372 GeoidPGM('egm2008-1.pgm').height(33.0, -120.5) kind 3: -39.600\n    test 1373 GeoidPGM('egm2008-1.pgm').height(33.0, -103.5) kind 3: -22.689\n    test 1374 GeoidPGM('egm2008-1.pgm').height(33.0, -86.5) kind 3: -30.066  FAILED, KNOWN, expected -30.067\n    test 1375 GeoidPGM('egm2008-1.pgm').height(33.0, -69.5) kind 3: -48.093\n\n    test 1376 GeoidPGM('egm2008-1.pgm').height() kind 3, eps max (in 0 FAILED): 0.001386\n    test 1377 GeoidPGM('egm2008-1.pgm').height() kind 3, eps mean (of 15 total): 0.000532\n    test 1378 GeoidPGM('egm2008-1.pgm').height() kind 3, eps stdev (of 15 total): 0.000380\n    test 1379 GeoidPGM('egm2008-1.pgm').highest(): 44.15, -109.817, -7.089\n    test 1380 GeoidPGM('egm2008-1.pgm').lowerleft(): 25.0, -125.0, -45.45\n    test 1381 GeoidPGM('egm2008-1.pgm').lowerright(): 25.0, -64.983, -50.831\n    test 1382 GeoidPGM('egm2008-1.pgm').lowest(): 25.733, -69.767, -52.518\n    test 1383 GeoidPGM('egm2008-1.pgm').upperleft(): 55.0, -125.0, -10.722\n    test 1384 GeoidPGM('egm2008-1.pgm').upperright(): 55.0, -64.983, -16.223\n    test 1385 GeoidPGM('egm2008-1.pgm').dtype: (\"dtype('float64')\",)\n    test 1386 GeoidPGM('egm2008-1.pgm').knots: ('6485401',)\n    test 1387 GeoidPGM('egm2008-1.pgm').mean: ('-29.707',)\n    test 1388 GeoidPGM('egm2008-1.pgm').nBytes: ('51883208',)\n    test 1389 GeoidPGM('egm2008-1.pgm').smooth: ('0',)\n    test 1390 GeoidPGM('egm2008-1.pgm').stdev: ('9.505',)\n    test 1391 GeoidPGM('egm2008-1.pgm')._g2ll2(180, 360): (180, 0.0)\n    test 1392 GeoidPGM('egm2008-1.pgm')._ll2g2(180, 360): (180, 720.0)\n    test 1393 GeoidPGM('egm2008-1.pgm')._swne: (-10.0, -100.0, 10.0, 100.0)\n    test 1394 GeoidPGM('egm2008-1.pgm')._swne: (-10.0, -100.0, 10.0, 100.0)\n    test 1395 GeoidPGM('egm2008-1.pgm').toStr: GeoidPGM('egm2008-1.pgm'): lowerleft(25.0, -125.0, -45.45), upperright(55.0, -64.983, -16.223), center(40.0, -94.992, -31.838), highest(44.15, -109.817, -7.089), lowest(25.733, -69.767, -52.518)\n\n    test 1396 closed: True\n    test 1397 copy(<class 'type'>): (<class 'pygeodesy.geoids.GeoidPGM'>, True)\n    test 1398 GeoidPGM.copy(): (<class 'pygeodesy.geoids.GeoidPGM'>, True)\n    test 1399 GeoidKarney('egm84-15.pgm').height(-76.981, 34.17) kind 2: 11.727  FAILED, KNOWN, expected 11.729\n    test 1400 GeoidKarney('egm84-15.pgm').height(79.695, 88.806) kind 2: 0.280  FAILED, KNOWN, expected 0.270\n    test 1401 GeoidKarney('egm84-15.pgm').height(-15.245, 168.748) kind 2: 67.071  FAILED, KNOWN, expected 67.074\n    test 1402 GeoidKarney('egm84-15.pgm').height(-19.379, 15.855) kind 2: 25.366  FAILED, KNOWN, expected 25.344\n    test 1403 GeoidKarney('egm84-15.pgm').height(43.378, -130.552) kind 2: -28.913  FAILED, KNOWN, expected -28.919\n    test 1404 GeoidKarney('egm84-15.pgm').height(-16.075, 21.795) kind 2: 14.383  FAILED, KNOWN, expected 14.386\n    test 1405 GeoidKarney('egm84-15.pgm').height(-11.256, -73.75) kind 2: 30.701  FAILED, KNOWN, expected 30.700\n    test 1406 GeoidKarney('egm84-15.pgm').height(69.017, -15.921) kind 2: 62.222  FAILED, KNOWN, expected 62.225\n    test 1407 GeoidKarney('egm84-15.pgm').height(2.221, 139.739) kind 2: 70.221  FAILED, KNOWN, expected 70.222\n    test 1408 GeoidKarney('egm84-15.pgm').height(-9.097, 119.142) kind 2: 34.290  FAILED, KNOWN, expected 34.336\n    test 1409 GeoidKarney('egm84-15.pgm').height(-28.524, -22.192) kind 2: 8.205  FAILED, KNOWN, expected 8.206\n    test 1410 GeoidKarney('egm84-15.pgm').height(12.272, -136.424) kind 2: -20.068  FAILED, KNOWN, expected -20.074\n    test 1411 GeoidKarney('egm84-15.pgm').height(-15.203, -85.604) kind 2: -3.129\n    test 1412 GeoidKarney('egm84-15.pgm').height(-63.736, -77.17) kind 2: -3.214  FAILED, KNOWN, expected -3.217\n    test 1413 GeoidKarney('egm84-15.pgm').height(-48.771, -90.102) kind 2: -1.536  FAILED, KNOWN, expected -1.531\n    test 1414 GeoidKarney('egm84-15.pgm').height(-0.179, -126.368) kind 2: -16.742\n    test 1415 GeoidKarney('egm84-15.pgm').height(1.586, -128.887) kind 2: -15.418  FAILED, KNOWN, expected -15.412\n    test 1416 GeoidKarney('egm84-15.pgm').height(-48.781, -2.684) kind 2: 25.077  FAILED, KNOWN, expected 25.078\n    test 1417 GeoidKarney('egm84-15.pgm').height(-49.092, 136.862) kind 2: -18.114  FAILED, KNOWN, expected -18.120\n    test 1418 GeoidKarney('egm84-15.pgm').height(47.732, 17.552) kind 2: 46.230  FAILED, KNOWN, expected 46.224\n    test 1419 GeoidKarney('egm84-15.pgm').height(-49.11, 85.706) kind 2: 18.648  FAILED, KNOWN, expected 18.649\n    test 1420 GeoidKarney('egm84-15.pgm').height(-49.162, 40.321) kind 2: 44.759  FAILED, KNOWN, expected 44.764\n    test 1421 GeoidKarney('egm84-15.pgm').height(3.498, 158.118) kind 2: 51.095  FAILED, KNOWN, expected 51.089\n    test 1422 GeoidKarney('egm84-15.pgm').height(-35.616, 122.648) kind 2: -34.436  FAILED, KNOWN, expected -34.471\n    test 1423 GeoidKarney('egm84-15.pgm').height(56.598, -96.114) kind 2: -39.124\n    test 1424 GeoidKarney('egm84-15.pgm').height(-31.85, 149.121) kind 2: 28.131  FAILED, KNOWN, expected 28.142\n    test 1425 GeoidKarney('egm84-15.pgm').height(-26.569, -177.792) kind 2: 49.606  FAILED, KNOWN, expected 49.619\n    test 1426 GeoidKarney('egm84-15.pgm').height(76.735, -65.753) kind 2: 22.568  FAILED, KNOWN, expected 22.575\n    test 1427 GeoidKarney('egm84-15.pgm').height(-21.404, -122.268) kind 2: -6.894  FAILED, KNOWN, expected -6.893\n    test 1428 GeoidKarney('egm84-15.pgm').height(-77.133, -65.474) kind 2: -15.017  FAILED, KNOWN, expected -15.012\n    test 1429 GeoidKarney('egm84-15.pgm').height(-58.812, 2.276) kind 2: 18.777  FAILED, KNOWN, expected 18.776\n    test 1430 GeoidKarney('egm84-15.pgm').height(4.415, 155.683) kind 2: 53.644  FAILED, KNOWN, expected 53.645\n    test 1431 GeoidKarney('egm84-15.pgm').height(-28.146, 107.081) kind 2: -39.058  FAILED, KNOWN, expected -39.074\n    test 1432 GeoidKarney('egm84-15.pgm').height(-10.551, -126.69) kind 2: -9.643  FAILED, KNOWN, expected -9.645\n    test 1433 GeoidKarney('egm84-15.pgm').height(-25.444, -103.337) kind 2: -2.520  FAILED, KNOWN, expected -2.528\n    test 1434 GeoidKarney('egm84-15.pgm').height(24.436, 46.159) kind 2: -6.918  FAILED, KNOWN, expected -6.907\n    test 1435 GeoidKarney('egm84-15.pgm').height(-72.889, 37.107) kind 2: 21.758  FAILED, KNOWN, expected 21.711\n    test 1436 GeoidKarney('egm84-15.pgm').height(-19.629, 13.245) kind 2: 25.617  FAILED, KNOWN, expected 25.611\n    test 1437 GeoidKarney('egm84-15.pgm').height(-7.602, 171.265) kind 2: 41.585  FAILED, KNOWN, expected 41.569\n    test 1438 GeoidKarney('egm84-15.pgm').height(-45.364, -1.876) kind 2: 23.283  FAILED, KNOWN, expected 23.280\n    test 1439 GeoidKarney('egm84-15.pgm').height(-7.292, -69.18) kind 2: 24.497  FAILED, KNOWN, expected 24.502\n    test 1440 GeoidKarney('egm84-15.pgm').height(-31.566, -166.689) kind 2: 14.825  FAILED, KNOWN, expected 14.826\n    test 1441 GeoidKarney('egm84-15.pgm').height(-82.751, -162.085) kind 2: -45.104\n    test 1442 GeoidKarney('egm84-15.pgm').height(-40.7, 99.466) kind 2: -17.254  FAILED, KNOWN, expected -17.252\n    test 1443 GeoidKarney('egm84-15.pgm').height(48.676, 39.69) kind 2: 12.984  FAILED, KNOWN, expected 12.972\n    test 1444 GeoidKarney('egm84-15.pgm').height(74.817, -78.404) kind 2: 4.773  FAILED, KNOWN, expected 4.776\n    test 1445 GeoidKarney('egm84-15.pgm').height(-81.032, -63.865) kind 2: -23.577\n    test 1446 GeoidKarney('egm84-15.pgm').height(74.022, 9.432) kind 2: 43.884  FAILED, KNOWN, expected 43.885\n    test 1447 GeoidKarney('egm84-15.pgm').height(-75.071, 17.579) kind 2: 17.064  FAILED, KNOWN, expected 17.072\n    test 1448 GeoidKarney('egm84-15.pgm').height(-12.546, -54.851) kind 2: -6.637  FAILED, KNOWN, expected -6.643\n    test 1449 GeoidKarney('egm84-15.pgm').height(-13.621, 42.408) kind 2: -23.332  FAILED, KNOWN, expected -23.325\n    test 1450 GeoidKarney('egm84-15.pgm').height(-2.266, -91.951) kind 2: -10.689  FAILED, KNOWN, expected -10.698\n    test 1451 GeoidKarney('egm84-15.pgm').height(-18.672, 42.547) kind 2: -10.305  FAILED, KNOWN, expected -10.265\n    test 1452 GeoidKarney('egm84-15.pgm').height(-41.44, 157.413) kind 2: 0.692  FAILED, KNOWN, expected 0.689\n    test 1453 GeoidKarney('egm84-15.pgm').height(53.686, -79.375) kind 2: -43.763  FAILED, KNOWN, expected -43.758\n    test 1454 GeoidKarney('egm84-15.pgm').height(39.26, -30.351) kind 2: 57.551  FAILED, KNOWN, expected 57.554\n    test 1455 GeoidKarney('egm84-15.pgm').height(-51.699, -141.493) kind 2: -16.939  FAILED, KNOWN, expected -16.936\n    test 1456 GeoidKarney('egm84-15.pgm').height(36.585, 4.515) kind 2: 45.227  FAILED, KNOWN, expected 45.295\n    test 1457 GeoidKarney('egm84-15.pgm').height(39.642, -54.659) kind 2: -13.585  FAILED, KNOWN, expected -13.586\n    test 1458 GeoidKarney('egm84-15.pgm').height(59.761, 166.567) kind 2: 11.469  FAILED, KNOWN, expected 11.468\n    test 1459 GeoidKarney('egm84-15.pgm').height(51.83, 13.357) kind 2: 42.090  FAILED, KNOWN, expected 42.092\n    test 1460 GeoidKarney('egm84-15.pgm').height(-36.531, -175.431) kind 2: 22.828  FAILED, KNOWN, expected 22.830\n    test 1461 GeoidKarney('egm84-15.pgm').height(-37.08, 125.264) kind 2: -32.300  FAILED, KNOWN, expected -32.302\n    test 1462 GeoidKarney('egm84-15.pgm').height(-68.651, 92.732) kind 2: 9.212  FAILED, KNOWN, expected 9.228\n    test 1463 GeoidKarney('egm84-15.pgm').height(35.087, 45.336) kind 2: 6.000  FAILED, KNOWN, expected 5.965\n    test 1464 GeoidKarney('egm84-15.pgm').height(-61.356, -169.379) kind 2: -45.000  FAILED, KNOWN, expected -45.013\n    test 1465 GeoidKarney('egm84-15.pgm').height(-36.955, 179.12) kind 2: 21.148  FAILED, KNOWN, expected 21.118\n    test 1466 GeoidKarney('egm84-15.pgm').height(10.248, -6.714) kind 2: 30.500  FAILED, KNOWN, expected 30.497\n    test 1467 GeoidKarney('egm84-15.pgm').height(36.868, 84.602) kind 2: -40.416  FAILED, KNOWN, expected -40.396\n    test 1468 GeoidKarney('egm84-15.pgm').height(28.637, 88.933) kind 2: -31.726  FAILED, KNOWN, expected -31.704\n    test 1469 GeoidKarney('egm84-15.pgm').height(54.811, -99.968) kind 2: -32.271  FAILED, KNOWN, expected -32.277\n    test 1470 GeoidKarney('egm84-15.pgm').height(7.611, 145.911) kind 2: 61.016  FAILED, KNOWN, expected 61.024\n    test 1471 GeoidKarney('egm84-15.pgm').height(59.412, 170.102) kind 2: 5.017  FAILED, KNOWN, expected 4.994\n    test 1472 GeoidKarney('egm84-15.pgm').height(-61.469, 126.144) kind 2: -30.240  FAILED, KNOWN, expected -30.237\n    test 1473 GeoidKarney('egm84-15.pgm').height(18.514, -137.083) kind 2: -26.007  FAILED, KNOWN, expected -26.006\n    test 1474 GeoidKarney('egm84-15.pgm').height(7.854, -126.799) kind 2: -29.280  FAILED, KNOWN, expected -29.283\n    test 1475 GeoidKarney('egm84-15.pgm').height(47.489, 134.183) kind 2: 22.400  FAILED, KNOWN, expected 22.394\n    test 1476 GeoidKarney('egm84-15.pgm').height(-34.144, -11.922) kind 2: 17.549  FAILED, KNOWN, expected 17.550\n    test 1477 GeoidKarney('egm84-15.pgm').height(-58.389, 117.458) kind 2: -20.621  FAILED, KNOWN, expected -20.622\n    test 1478 GeoidKarney('egm84-15.pgm').height(9.773, 95.846) kind 2: -41.463  FAILED, KNOWN, expected -41.484\n    test 1479 GeoidKarney('egm84-15.pgm').height(-53.12, 136.994) kind 2: -20.969  FAILED, KNOWN, expected -20.968\n    test 1480 GeoidKarney('egm84-15.pgm').height(-50.35, 0.075) kind 2: 25.561  FAILED, KNOWN, expected 25.568\n    test 1481 GeoidKarney('egm84-15.pgm').height(31.438, -170.879) kind 2: -8.574  FAILED, KNOWN, expected -8.581\n    test 1482 GeoidKarney('egm84-15.pgm').height(37.541, -153.024) kind 2: -18.329\n    test 1483 GeoidKarney('egm84-15.pgm').height(27.586, 2.444) kind 2: 25.003  FAILED, KNOWN, expected 25.001\n    test 1484 GeoidKarney('egm84-15.pgm').height(-26.139, -106.201) kind 2: -2.945  FAILED, KNOWN, expected -2.940\n    test 1485 GeoidKarney('egm84-15.pgm').height(-33.426, -14.84) kind 2: 18.220  FAILED, KNOWN, expected 18.228\n    test 1486 GeoidKarney('egm84-15.pgm').height(39.586, -153.019) kind 2: -16.511  FAILED, KNOWN, expected -16.507\n    test 1487 GeoidKarney('egm84-15.pgm').height(-60.79, -2.578) kind 2: 14.277  FAILED, KNOWN, expected 14.275\n    test 1488 GeoidKarney('egm84-15.pgm').height(-20.131, 21.975) kind 2: 16.866  FAILED, KNOWN, expected 16.852\n    test 1489 GeoidKarney('egm84-15.pgm').height(75.649, 99.921) kind 2: -6.870  FAILED, KNOWN, expected -6.872\n    test 1490 GeoidKarney('egm84-15.pgm').height(-0.385, -23.788) kind 2: 8.987  FAILED, KNOWN, expected 9.006\n    test 1491 GeoidKarney('egm84-15.pgm').height(-51.56, -50.327) kind 2: 6.277  FAILED, KNOWN, expected 6.296\n    test 1492 GeoidKarney('egm84-15.pgm').height(-43.129, -167.271) kind 2: -1.483  FAILED, KNOWN, expected -1.481\n    test 1493 GeoidKarney('egm84-15.pgm').height(46.374, 71.948) kind 2: -40.929  FAILED, KNOWN, expected -40.915\n    test 1494 GeoidKarney('egm84-15.pgm').height(-22.783, 140.657) kind 2: 37.481  FAILED, KNOWN, expected 37.495\n    test 1495 GeoidKarney('egm84-15.pgm').height(-12.056, 122.804) kind 2: 32.222  FAILED, KNOWN, expected 32.258\n    test 1496 GeoidKarney('egm84-15.pgm').height(30.127, 94.738) kind 2: -41.529\n    test 1497 GeoidKarney('egm84-15.pgm').height(46.296, -174.479) kind 2: -1.377\n    test 1498 GeoidKarney('egm84-15.pgm').height(34.99, 15.052) kind 2: 35.263  FAILED, KNOWN, expected 35.280\n    test 1499 GeoidKarney('egm84-15.pgm').height(-51.287, 90.565) kind 2: 12.958\n    test 1500 GeoidKarney('egm84-15.pgm').height(34.217, 141.302) kind 2: 18.423  FAILED, KNOWN, expected 18.307\n    test 1501 GeoidKarney('egm84-15.pgm').height(-40.423, -142.787) kind 2: -10.400\n    test 1502 GeoidKarney('egm84-15.pgm').height(-17.854, -170.216) kind 2: 28.649  FAILED, KNOWN, expected 28.638\n    test 1503 GeoidKarney('egm84-15.pgm').height(47.803, 112.701) kind 2: -24.060  FAILED, KNOWN, expected -24.059\n    test 1504 GeoidKarney('egm84-15.pgm').height(-23.276, 133.454) kind 2: 18.800  FAILED, KNOWN, expected 18.806\n    test 1505 GeoidKarney('egm84-15.pgm').height(-26.884, -36.571) kind 2: -6.808  FAILED, KNOWN, expected -6.820\n    test 1506 GeoidKarney('egm84-15.pgm').height(-37.106, 31.128) kind 2: 31.485  FAILED, KNOWN, expected 31.486\n    test 1507 GeoidKarney('egm84-15.pgm').height(-75.363, -173.674) kind 2: -62.021  FAILED, KNOWN, expected -62.024\n    test 1508 GeoidKarney('egm84-15.pgm').height(-18.305, 69.016) kind 2: -24.246  FAILED, KNOWN, expected -24.248\n    test 1509 GeoidKarney('egm84-15.pgm').height(39.527, 23.58) kind 2: 43.246  FAILED, KNOWN, expected 43.255\n    test 1510 GeoidKarney('egm84-15.pgm').height(68.903, 30.97) kind 2: 18.496  FAILED, KNOWN, expected 18.498\n    test 1511 GeoidKarney('egm84-15.pgm').height(53.937, 168.318) kind 2: 4.100  FAILED, KNOWN, expected 4.067\n    test 1512 GeoidKarney('egm84-15.pgm').height(-38.6, 64.812) kind 2: 25.456  FAILED, KNOWN, expected 25.454\n    test 1513 GeoidKarney('egm84-15.pgm').height(-41.396, -69.739) kind 2: 26.619  FAILED, KNOWN, expected 26.657\n    test 1514 GeoidKarney('egm84-15.pgm').height(50.158, 72.319) kind 2: -32.003  FAILED, KNOWN, expected -31.966\n    test 1515 GeoidKarney('egm84-15.pgm').height(27.692, 176.153) kind 2: -4.422  FAILED, KNOWN, expected -4.415\n    test 1516 GeoidKarney('egm84-15.pgm').height(-48.419, 170.454) kind 2: -6.717  FAILED, KNOWN, expected -6.741\n    test 1517 GeoidKarney('egm84-15.pgm').height(-65.346, -124.976) kind 2: -34.915  FAILED, KNOWN, expected -34.900\n    test 1518 GeoidKarney('egm84-15.pgm').height(-51.873, 167.266) kind 2: -14.214  FAILED, KNOWN, expected -14.223\n    test 1519 GeoidKarney('egm84-15.pgm').height(-7.263, 84.308) kind 2: -79.313  FAILED, KNOWN, expected -79.317\n    test 1520 GeoidKarney('egm84-15.pgm').height(-1.461, -105.458) kind 2: -16.163\n    test 1521 GeoidKarney('egm84-15.pgm').height(7.684, 161.873) kind 2: 36.296  FAILED, KNOWN, expected 36.287\n    test 1522 GeoidKarney('egm84-15.pgm').height(-31.475, -158.52) kind 2: 4.066  FAILED, KNOWN, expected 4.068\n    test 1523 GeoidKarney('egm84-15.pgm').height(-36.187, 62.917) kind 2: 24.401  FAILED, KNOWN, expected 24.407\n    test 1524 GeoidKarney('egm84-15.pgm').height(16.003, 141.687) kind 2: 53.051  FAILED, KNOWN, expected 53.054\n    test 1525 GeoidKarney('egm84-15.pgm').height(30.182, 86.261) kind 2: -30.616  FAILED, KNOWN, expected -30.622\n    test 1526 GeoidKarney('egm84-15.pgm').height(-77.304, 159.498) kind 2: -53.544  FAILED, KNOWN, expected -53.540\n    test 1527 GeoidKarney('egm84-15.pgm').height(39.536, 139.795) kind 2: 36.274  FAILED, KNOWN, expected 36.262\n    test 1528 GeoidKarney('egm84-15.pgm').height(8.569, 134.618) kind 2: 64.339  FAILED, KNOWN, expected 64.369\n    test 1529 GeoidKarney('egm84-15.pgm').height(14.473, 90.596) kind 2: -61.320  FAILED, KNOWN, expected -61.300\n    test 1530 GeoidKarney('egm84-15.pgm').height(-13.138, -99.589) kind 2: -7.996  FAILED, KNOWN, expected -7.999\n    test 1531 GeoidKarney('egm84-15.pgm').height(34.212, -26.307) kind 2: 41.489  FAILED, KNOWN, expected 41.477\n    test 1532 GeoidKarney('egm84-15.pgm').height(21.89, 76.371) kind 2: -59.881  FAILED, KNOWN, expected -59.876\n    test 1533 GeoidKarney('egm84-15.pgm').height(29.793, 120.487) kind 2: 8.422  FAILED, KNOWN, expected 8.404\n    test 1534 GeoidKarney('egm84-15.pgm').height(15.724, 122.714) kind 2: 39.200  FAILED, KNOWN, expected 39.152\n    test 1535 GeoidKarney('egm84-15.pgm').height(-66.208, -78.499) kind 2: -7.068  FAILED, KNOWN, expected -7.076\n    test 1536 GeoidKarney('egm84-15.pgm').height(-39.507, 55.809) kind 2: 33.179  FAILED, KNOWN, expected 33.178\n    test 1537 GeoidKarney('egm84-15.pgm').height(28.159, 51.476) kind 2: -23.801  FAILED, KNOWN, expected -23.832\n    test 1538 GeoidKarney('egm84-15.pgm').height(-36.207, 120.205) kind 2: -38.175  FAILED, KNOWN, expected -38.206\n    test 1539 GeoidKarney('egm84-15.pgm').height(30.575, -99.998) kind 2: -22.171  FAILED, KNOWN, expected -22.142\n    test 1540 GeoidKarney('egm84-15.pgm').height(-16.993, 37.136) kind 2: -13.746  FAILED, KNOWN, expected -13.765\n    test 1541 GeoidKarney('egm84-15.pgm').height(-11.477, 12.039) kind 2: 16.909  FAILED, KNOWN, expected 16.898\n    test 1542 GeoidKarney('egm84-15.pgm').height(30.428, -144.765) kind 2: -22.479  FAILED, KNOWN, expected -22.474\n    test 1543 GeoidKarney('egm84-15.pgm').height(-17.44, -92.424) kind 2: -4.710  FAILED, KNOWN, expected -4.718\n    test 1544 GeoidKarney('egm84-15.pgm').height(40.203, 143.43) kind 2: 16.680  FAILED, KNOWN, expected 16.635\n    test 1545 GeoidKarney('egm84-15.pgm').height(-37.098, -106.574) kind 2: -9.012\n    test 1546 GeoidKarney('egm84-15.pgm').height(54.62, -68.413) kind 2: -23.556  FAILED, KNOWN, expected -23.543\n    test 1547 GeoidKarney('egm84-15.pgm').height(-31.633, 148.182) kind 2: 26.240  FAILED, KNOWN, expected 26.236\n    test 1548 GeoidKarney('egm84-15.pgm').height(-56.07, -141.407) kind 2: -21.963  FAILED, KNOWN, expected -21.953\n    test 1549 GeoidKarney('egm84-15.pgm').height(-8.195, -52.691) kind 2: -17.959\n    test 1550 GeoidKarney('egm84-15.pgm').height(17.851, 24.749) kind 2: 9.072  FAILED, KNOWN, expected 9.078\n    test 1551 GeoidKarney('egm84-15.pgm').height(0.349, -108.333) kind 2: -19.160  FAILED, KNOWN, expected -19.158\n    test 1552 GeoidKarney('egm84-15.pgm').height(15.038, 126.191) kind 2: 46.776\n    test 1553 GeoidKarney('egm84-15.pgm').height(-21.111, -123.696) kind 2: -8.053  FAILED, KNOWN, expected -8.055\n    test 1554 GeoidKarney('egm84-15.pgm').height(30.947, 173.002) kind 2: -7.681  FAILED, KNOWN, expected -7.696\n    test 1555 GeoidKarney('egm84-15.pgm').height(-10.698, -144.091) kind 2: -1.052  FAILED, KNOWN, expected -1.049\n    test 1556 GeoidKarney('egm84-15.pgm').height(-29.412, 124.753) kind 2: -16.081\n    test 1557 GeoidKarney('egm84-15.pgm').height(38.224, -137.189) kind 2: -35.429  FAILED, KNOWN, expected -35.427\n    test 1558 GeoidKarney('egm84-15.pgm').height(36.064, -132.409) kind 2: -38.648\n    test 1559 GeoidKarney('egm84-15.pgm').height(29.975, 178.076) kind 2: -5.524  FAILED, KNOWN, expected -5.519\n    test 1560 GeoidKarney('egm84-15.pgm').height(-21.346, 169.26) kind 2: 53.448  FAILED, KNOWN, expected 53.431\n    test 1561 GeoidKarney('egm84-15.pgm').height(49.282, -152.934) kind 2: 1.977  FAILED, KNOWN, expected 1.979\n    test 1562 GeoidKarney('egm84-15.pgm').height(16.349, -99.962) kind 2: -13.131  FAILED, KNOWN, expected -13.197\n    test 1563 GeoidKarney('egm84-15.pgm').height(-14.293, -167.34) kind 2: 18.953  FAILED, KNOWN, expected 18.945\n    test 1564 GeoidKarney('egm84-15.pgm').height(47.166, -38.523) kind 2: 45.180  FAILED, KNOWN, expected 45.187\n    test 1565 GeoidKarney('egm84-15.pgm').height(-58.911, 114.347) kind 2: -17.155  FAILED, KNOWN, expected -17.145\n    test 1566 GeoidKarney('egm84-15.pgm').height(-9.055, 111.294) kind 2: 13.136  FAILED, KNOWN, expected 13.146\n    test 1567 GeoidKarney('egm84-15.pgm').height(18.391, 29.692) kind 2: 4.933\n    test 1568 GeoidKarney('egm84-15.pgm').height(-15.074, 22.153) kind 2: 12.313  FAILED, KNOWN, expected 12.326\n    test 1569 GeoidKarney('egm84-15.pgm').height(-4.235, 62.001) kind 2: -60.029  FAILED, KNOWN, expected -60.030\n    test 1570 GeoidKarney('egm84-15.pgm').height(15.171, -86.583) kind 2: 3.034  FAILED, KNOWN, expected 3.110\n    test 1571 GeoidKarney('egm84-15.pgm').height(79.254, 112.116) kind 2: -2.741\n    test 1572 GeoidKarney('egm84-15.pgm').height(15.947, 156.093) kind 2: 32.108  FAILED, KNOWN, expected 32.085\n    test 1573 GeoidKarney('egm84-15.pgm').height(68.371, -177.382) kind 2: 2.069  FAILED, KNOWN, expected 2.060\n    test 1574 GeoidKarney('egm84-15.pgm').height(-41.931, -72.093) kind 2: 22.901  FAILED, KNOWN, expected 22.916\n    test 1575 GeoidKarney('egm84-15.pgm').height(-1.193, -143.133) kind 2: 5.526  FAILED, KNOWN, expected 5.519\n    test 1576 GeoidKarney('egm84-15.pgm').height(-37.006, 154.513) kind 2: 11.019  FAILED, KNOWN, expected 11.020\n    test 1577 GeoidKarney('egm84-15.pgm').height(-22.148, 9.938) kind 2: 22.181  FAILED, KNOWN, expected 22.171\n    test 1578 GeoidKarney('egm84-15.pgm').height(24.329, 109.044) kind 2: -22.957  FAILED, KNOWN, expected -22.944\n    test 1579 GeoidKarney('egm84-15.pgm').height(-54.878, 114.691) kind 2: -17.583  FAILED, KNOWN, expected -17.580\n    test 1580 GeoidKarney('egm84-15.pgm').height(45.601, -80.458) kind 2: -35.728  FAILED, KNOWN, expected -35.738\n    test 1581 GeoidKarney('egm84-15.pgm').height(2.372, 58.974) kind 2: -61.036  FAILED, KNOWN, expected -61.040\n    test 1582 GeoidKarney('egm84-15.pgm').height(15.937, 165.854) kind 2: 20.897  FAILED, KNOWN, expected 20.907\n    test 1583 GeoidKarney('egm84-15.pgm').height(4.889, -24.213) kind 2: 13.865  FAILED, KNOWN, expected 13.874\n    test 1584 GeoidKarney('egm84-15.pgm').height(-11.392, 179.558) kind 2: 40.920  FAILED, KNOWN, expected 40.929\n    test 1585 GeoidKarney('egm84-15.pgm').height(58.246, 4.862) kind 2: 43.196  FAILED, KNOWN, expected 43.191\n    test 1586 GeoidKarney('egm84-15.pgm').height(34.302, -109.109) kind 2: -22.016  FAILED, KNOWN, expected -22.006\n    test 1587 GeoidKarney('egm84-15.pgm').height(-58.196, 117.306) kind 2: -20.378  FAILED, KNOWN, expected -20.375\n    test 1588 GeoidKarney('egm84-15.pgm').height(44.5, 173.769) kind 2: -7.856  FAILED, KNOWN, expected -7.852\n    test 1589 GeoidKarney('egm84-15.pgm').height(-28.863, -139.775) kind 2: -8.680  FAILED, KNOWN, expected -8.674\n    test 1590 GeoidKarney('egm84-15.pgm').height(19.507, -96.099) kind 2: -14.089  FAILED, KNOWN, expected -14.117\n    test 1591 GeoidKarney('egm84-15.pgm').height(-42.488, -73.907) kind 2: 17.249  FAILED, KNOWN, expected 17.251\n    test 1592 GeoidKarney('egm84-15.pgm').height(46.138, -141.429) kind 2: -19.434  FAILED, KNOWN, expected -19.436\n    test 1593 GeoidKarney('egm84-15.pgm').height(60.507, 93.743) kind 2: -31.333  FAILED, KNOWN, expected -31.330\n    test 1594 GeoidKarney('egm84-15.pgm').height(26.219, -145.434) kind 2: -17.088  FAILED, KNOWN, expected -17.090\n    test 1595 GeoidKarney('egm84-15.pgm').height(-28.687, 3.37) kind 2: 24.177  FAILED, KNOWN, expected 24.184\n    test 1596 GeoidKarney('egm84-15.pgm').height(-15.008, 117.45) kind 2: 6.146  FAILED, KNOWN, expected 6.142\n    test 1597 GeoidKarney('egm84-15.pgm').height(40.71, 144.095) kind 2: 11.771  FAILED, KNOWN, expected 11.693\n    test 1598 GeoidKarney('egm84-15.pgm').height(20.823, -173.611) kind 2: 6.830  FAILED, KNOWN, expected 6.840\n    test 1599 GeoidKarney('egm84-15.pgm').height(16.776, -3.009) kind 2: 31.293  FAILED, KNOWN, expected 31.298\n    test 1600 GeoidKarney('egm84-15.pgm').height(41.0, -95.0) kind 2: -31.953  FAILED, KNOWN, expected -31.952\n    test 1601 GeoidKarney('egm84-15.pgm').height(49.0, -120.5) kind 2: -14.946\n    test 1602 GeoidKarney('egm84-15.pgm').height(49.0, -103.5) kind 2: -17.031  FAILED, KNOWN, expected -17.032\n    test 1603 GeoidKarney('egm84-15.pgm').height(49.0, -86.5) kind 2: -37.962\n    test 1604 GeoidKarney('egm84-15.pgm').height(49.0, -69.5) kind 2: -26.493  FAILED, KNOWN, expected -26.492\n    test 1605 GeoidKarney('egm84-15.pgm').height(33.0, -120.5) kind 2: -39.543\n    test 1606 GeoidKarney('egm84-15.pgm').height(33.0, -103.5) kind 2: -22.557  FAILED, KNOWN, expected -22.556\n    test 1607 GeoidKarney('egm84-15.pgm').height(33.0, -86.5) kind 2: -28.710\n    test 1608 GeoidKarney('egm84-15.pgm').height(33.0, -69.5) kind 2: -46.590\n\n    test 1609 GeoidKarney('egm84-15.pgm').height() kind 2, hits 0, eps max (in 0 FAILED): 0.115669\n    test 1610 GeoidKarney('egm84-15.pgm').height() kind 2, hits 0, eps mean (of 210 total): 0.010307\n    test 1611 GeoidKarney('egm84-15.pgm').height() kind 2, hits 0, eps stdev (of 210 total): 0.015203\n    test 1612 GeoidKarney('egm84-15.pgm').highest(): -4.5, 148.75, 81.33\n    test 1613 GeoidKarney('egm84-15.pgm').lowerleft(): -90.0, -180.0, -29.712\n    test 1614 GeoidKarney('egm84-15.pgm').lowerright(): -90.0, 180.0, -29.712\n    test 1615 GeoidKarney('egm84-15.pgm').lowest(): 4.75, 79.25, -107.34\n    test 1616 GeoidKarney('egm84-15.pgm').upperleft(): 90.0, -180.0, 13.098\n    test 1617 GeoidKarney('egm84-15.pgm').upperright(): 90.0, 180.0, 13.098\n    test 1618 GeoidKarney('egm84-15.pgm').dtype: (\"'ushort'\",)\n    test 1619 GeoidKarney('egm84-15.pgm').knots: ('1038240',)\n    test 1620 GeoidKarney('egm84-15.pgm').mean: ('-1.317',)\n    test 1621 GeoidKarney('egm84-15.pgm').nBytes: ('None',)\n    test 1622 GeoidKarney('egm84-15.pgm').smooth: ('None',)\n    test 1623 GeoidKarney('egm84-15.pgm').stdev: ('29.244',)\n    test 1624 GeoidKarney('egm84-15.pgm')._g2ll2(180, 360): (180, 0.0)\n    test 1625 GeoidKarney('egm84-15.pgm')._ll2g2(180, 360): (180, 360)\n    test 1626 GeoidKarney('egm84-15.pgm')._swne: (-10.0, -100.0, 10.0, 100.0)\n    test 1627 GeoidKarney('egm84-15.pgm')._swne: (-10.0, -100.0, 10.0, 100.0)\n    test 1628 GeoidKarney('egm84-15.pgm').toStr: GeoidKarney('egm84-15.pgm'): lowerleft(-90.0, -180.0, -29.712), upperright(90.0, 180.0, 13.098), center(0.0, 0.0, 18.33), highest(-4.5, 148.75, 81.33), lowest(4.75, 79.25, -107.34)\n\n    test 1629 closed: True\n    test 1630 copy(<class 'type'>): (<class 'pygeodesy.geoids.GeoidKarney'>, True)\n    test 1631 GeoidKarney.copy(): (<class 'pygeodesy.geoids.GeoidKarney'>, True)\n    test 1632 GeoidKarney('egm84-15.pgm').height(-76.981, 34.17) kind 3: 11.729\n    test 1633 GeoidKarney('egm84-15.pgm').height(79.695, 88.806) kind 3: 0.271  FAILED, KNOWN, expected 0.270\n    test 1634 GeoidKarney('egm84-15.pgm').height(-15.245, 168.748) kind 3: 67.074\n    test 1635 GeoidKarney('egm84-15.pgm').height(-19.379, 15.855) kind 3: 25.345  FAILED, KNOWN, expected 25.344\n    test 1636 GeoidKarney('egm84-15.pgm').height(43.378, -130.552) kind 3: -28.919\n    test 1637 GeoidKarney('egm84-15.pgm').height(-16.075, 21.795) kind 3: 14.386\n    test 1638 GeoidKarney('egm84-15.pgm').height(-11.256, -73.75) kind 3: 30.699  FAILED, KNOWN, expected 30.700\n    test 1639 GeoidKarney('egm84-15.pgm').height(69.017, -15.921) kind 3: 62.226  FAILED, KNOWN, expected 62.225\n    test 1640 GeoidKarney('egm84-15.pgm').height(2.221, 139.739) kind 3: 70.222\n    test 1641 GeoidKarney('egm84-15.pgm').height(-9.097, 119.142) kind 3: 34.334  FAILED, KNOWN, expected 34.336\n    test 1642 GeoidKarney('egm84-15.pgm').height(-28.524, -22.192) kind 3: 8.206\n    test 1643 GeoidKarney('egm84-15.pgm').height(12.272, -136.424) kind 3: -20.073  FAILED, KNOWN, expected -20.074\n    test 1644 GeoidKarney('egm84-15.pgm').height(-15.203, -85.604) kind 3: -3.129\n    test 1645 GeoidKarney('egm84-15.pgm').height(-63.736, -77.17) kind 3: -3.216  FAILED, KNOWN, expected -3.217\n    test 1646 GeoidKarney('egm84-15.pgm').height(-48.771, -90.102) kind 3: -1.532  FAILED, KNOWN, expected -1.531\n    test 1647 GeoidKarney('egm84-15.pgm').height(-0.179, -126.368) kind 3: -16.741  FAILED, KNOWN, expected -16.742\n    test 1648 GeoidKarney('egm84-15.pgm').height(1.586, -128.887) kind 3: -15.413  FAILED, KNOWN, expected -15.412\n    test 1649 GeoidKarney('egm84-15.pgm').height(-48.781, -2.684) kind 3: 25.079  FAILED, KNOWN, expected 25.078\n    test 1650 GeoidKarney('egm84-15.pgm').height(-49.092, 136.862) kind 3: -18.120\n    test 1651 GeoidKarney('egm84-15.pgm').height(47.732, 17.552) kind 3: 46.225  FAILED, KNOWN, expected 46.224\n    test 1652 GeoidKarney('egm84-15.pgm').height(-49.11, 85.706) kind 3: 18.649\n    test 1653 GeoidKarney('egm84-15.pgm').height(-49.162, 40.321) kind 3: 44.763  FAILED, KNOWN, expected 44.764\n    test 1654 GeoidKarney('egm84-15.pgm').height(3.498, 158.118) kind 3: 51.090  FAILED, KNOWN, expected 51.089\n    test 1655 GeoidKarney('egm84-15.pgm').height(-35.616, 122.648) kind 3: -34.470  FAILED, KNOWN, expected -34.471\n    test 1656 GeoidKarney('egm84-15.pgm').height(56.598, -96.114) kind 3: -39.125  FAILED, KNOWN, expected -39.124\n    test 1657 GeoidKarney('egm84-15.pgm').height(-31.85, 149.121) kind 3: 28.142\n    test 1658 GeoidKarney('egm84-15.pgm').height(-26.569, -177.792) kind 3: 49.620  FAILED, KNOWN, expected 49.619\n    test 1659 GeoidKarney('egm84-15.pgm').height(76.735, -65.753) kind 3: 22.576  FAILED, KNOWN, expected 22.575\n    test 1660 GeoidKarney('egm84-15.pgm').height(-21.404, -122.268) kind 3: -6.893\n    test 1661 GeoidKarney('egm84-15.pgm').height(-77.133, -65.474) kind 3: -15.013  FAILED, KNOWN, expected -15.012\n    test 1662 GeoidKarney('egm84-15.pgm').height(-58.812, 2.276) kind 3: 18.777  FAILED, KNOWN, expected 18.776\n    test 1663 GeoidKarney('egm84-15.pgm').height(4.415, 155.683) kind 3: 53.645\n    test 1664 GeoidKarney('egm84-15.pgm').height(-28.146, 107.081) kind 3: -39.073  FAILED, KNOWN, expected -39.074\n    test 1665 GeoidKarney('egm84-15.pgm').height(-10.551, -126.69) kind 3: -9.645\n    test 1666 GeoidKarney('egm84-15.pgm').height(-25.444, -103.337) kind 3: -2.527  FAILED, KNOWN, expected -2.528\n    test 1667 GeoidKarney('egm84-15.pgm').height(24.436, 46.159) kind 3: -6.907\n    test 1668 GeoidKarney('egm84-15.pgm').height(-72.889, 37.107) kind 3: 21.715  FAILED, KNOWN, expected 21.711\n    test 1669 GeoidKarney('egm84-15.pgm').height(-19.629, 13.245) kind 3: 25.612  FAILED, KNOWN, expected 25.611\n    test 1670 GeoidKarney('egm84-15.pgm').height(-7.602, 171.265) kind 3: 41.570  FAILED, KNOWN, expected 41.569\n    test 1671 GeoidKarney('egm84-15.pgm').height(-45.364, -1.876) kind 3: 23.280\n    test 1672 GeoidKarney('egm84-15.pgm').height(-7.292, -69.18) kind 3: 24.502\n    test 1673 GeoidKarney('egm84-15.pgm').height(-31.566, -166.689) kind 3: 14.825  FAILED, KNOWN, expected 14.826\n    test 1674 GeoidKarney('egm84-15.pgm').height(-82.751, -162.085) kind 3: -45.104\n    test 1675 GeoidKarney('egm84-15.pgm').height(-40.7, 99.466) kind 3: -17.252\n    test 1676 GeoidKarney('egm84-15.pgm').height(48.676, 39.69) kind 3: 12.972\n    test 1677 GeoidKarney('egm84-15.pgm').height(74.817, -78.404) kind 3: 4.777  FAILED, KNOWN, expected 4.776\n    test 1678 GeoidKarney('egm84-15.pgm').height(-81.032, -63.865) kind 3: -23.578  FAILED, KNOWN, expected -23.577\n    test 1679 GeoidKarney('egm84-15.pgm').height(74.022, 9.432) kind 3: 43.886  FAILED, KNOWN, expected 43.885\n    test 1680 GeoidKarney('egm84-15.pgm').height(-75.071, 17.579) kind 3: 17.071  FAILED, KNOWN, expected 17.072\n    test 1681 GeoidKarney('egm84-15.pgm').height(-12.546, -54.851) kind 3: -6.643\n    test 1682 GeoidKarney('egm84-15.pgm').height(-13.621, 42.408) kind 3: -23.326  FAILED, KNOWN, expected -23.325\n    test 1683 GeoidKarney('egm84-15.pgm').height(-2.266, -91.951) kind 3: -10.699  FAILED, KNOWN, expected -10.698\n    test 1684 GeoidKarney('egm84-15.pgm').height(-18.672, 42.547) kind 3: -10.268  FAILED, KNOWN, expected -10.265\n    test 1685 GeoidKarney('egm84-15.pgm').height(-41.44, 157.413) kind 3: 0.690  FAILED, KNOWN, expected 0.689\n    test 1686 GeoidKarney('egm84-15.pgm').height(53.686, -79.375) kind 3: -43.759  FAILED, KNOWN, expected -43.758\n    test 1687 GeoidKarney('egm84-15.pgm').height(39.26, -30.351) kind 3: 57.553  FAILED, KNOWN, expected 57.554\n    test 1688 GeoidKarney('egm84-15.pgm').height(-51.699, -141.493) kind 3: -16.937  FAILED, KNOWN, expected -16.936\n    test 1689 GeoidKarney('egm84-15.pgm').height(36.585, 4.515) kind 3: 45.291  FAILED, KNOWN, expected 45.295\n    test 1690 GeoidKarney('egm84-15.pgm').height(39.642, -54.659) kind 3: -13.585  FAILED, KNOWN, expected -13.586\n    test 1691 GeoidKarney('egm84-15.pgm').height(59.761, 166.567) kind 3: 11.467  FAILED, KNOWN, expected 11.468\n    test 1692 GeoidKarney('egm84-15.pgm').height(51.83, 13.357) kind 3: 42.092\n    test 1693 GeoidKarney('egm84-15.pgm').height(-36.531, -175.431) kind 3: 22.830\n    test 1694 GeoidKarney('egm84-15.pgm').height(-37.08, 125.264) kind 3: -32.302\n    test 1695 GeoidKarney('egm84-15.pgm').height(-68.651, 92.732) kind 3: 9.228\n    test 1696 GeoidKarney('egm84-15.pgm').height(35.087, 45.336) kind 3: 5.966  FAILED, KNOWN, expected 5.965\n    test 1697 GeoidKarney('egm84-15.pgm').height(-61.356, -169.379) kind 3: -45.012  FAILED, KNOWN, expected -45.013\n    test 1698 GeoidKarney('egm84-15.pgm').height(-36.955, 179.12) kind 3: 21.118\n    test 1699 GeoidKarney('egm84-15.pgm').height(10.248, -6.714) kind 3: 30.497\n    test 1700 GeoidKarney('egm84-15.pgm').height(36.868, 84.602) kind 3: -40.397  FAILED, KNOWN, expected -40.396\n    test 1701 GeoidKarney('egm84-15.pgm').height(28.637, 88.933) kind 3: -31.701  FAILED, KNOWN, expected -31.704\n    test 1702 GeoidKarney('egm84-15.pgm').height(54.811, -99.968) kind 3: -32.276  FAILED, KNOWN, expected -32.277\n    test 1703 GeoidKarney('egm84-15.pgm').height(7.611, 145.911) kind 3: 61.024\n    test 1704 GeoidKarney('egm84-15.pgm').height(59.412, 170.102) kind 3: 4.996  FAILED, KNOWN, expected 4.994\n    test 1705 GeoidKarney('egm84-15.pgm').height(-61.469, 126.144) kind 3: -30.238  FAILED, KNOWN, expected -30.237\n    test 1706 GeoidKarney('egm84-15.pgm').height(18.514, -137.083) kind 3: -26.006\n    test 1707 GeoidKarney('egm84-15.pgm').height(7.854, -126.799) kind 3: -29.283\n    test 1708 GeoidKarney('egm84-15.pgm').height(47.489, 134.183) kind 3: 22.393  FAILED, KNOWN, expected 22.394\n    test 1709 GeoidKarney('egm84-15.pgm').height(-34.144, -11.922) kind 3: 17.550\n    test 1710 GeoidKarney('egm84-15.pgm').height(-58.389, 117.458) kind 3: -20.623  FAILED, KNOWN, expected -20.622\n    test 1711 GeoidKarney('egm84-15.pgm').height(9.773, 95.846) kind 3: -41.482  FAILED, KNOWN, expected -41.484\n    test 1712 GeoidKarney('egm84-15.pgm').height(-53.12, 136.994) kind 3: -20.968\n    test 1713 GeoidKarney('egm84-15.pgm').height(-50.35, 0.075) kind 3: 25.567  FAILED, KNOWN, expected 25.568\n    test 1714 GeoidKarney('egm84-15.pgm').height(31.438, -170.879) kind 3: -8.581\n    test 1715 GeoidKarney('egm84-15.pgm').height(37.541, -153.024) kind 3: -18.330  FAILED, KNOWN, expected -18.329\n    test 1716 GeoidKarney('egm84-15.pgm').height(27.586, 2.444) kind 3: 25.000  FAILED, KNOWN, expected 25.001\n    test 1717 GeoidKarney('egm84-15.pgm').height(-26.139, -106.201) kind 3: -2.941  FAILED, KNOWN, expected -2.940\n    test 1718 GeoidKarney('egm84-15.pgm').height(-33.426, -14.84) kind 3: 18.229  FAILED, KNOWN, expected 18.228\n    test 1719 GeoidKarney('egm84-15.pgm').height(39.586, -153.019) kind 3: -16.507\n    test 1720 GeoidKarney('egm84-15.pgm').height(-60.79, -2.578) kind 3: 14.275\n    test 1721 GeoidKarney('egm84-15.pgm').height(-20.131, 21.975) kind 3: 16.853  FAILED, KNOWN, expected 16.852\n    test 1722 GeoidKarney('egm84-15.pgm').height(75.649, 99.921) kind 3: -6.872\n    test 1723 GeoidKarney('egm84-15.pgm').height(-0.385, -23.788) kind 3: 9.005  FAILED, KNOWN, expected 9.006\n    test 1724 GeoidKarney('egm84-15.pgm').height(-51.56, -50.327) kind 3: 6.294  FAILED, KNOWN, expected 6.296\n    test 1725 GeoidKarney('egm84-15.pgm').height(-43.129, -167.271) kind 3: -1.482  FAILED, KNOWN, expected -1.481\n    test 1726 GeoidKarney('egm84-15.pgm').height(46.374, 71.948) kind 3: -40.916  FAILED, KNOWN, expected -40.915\n    test 1727 GeoidKarney('egm84-15.pgm').height(-22.783, 140.657) kind 3: 37.495\n    test 1728 GeoidKarney('egm84-15.pgm').height(-12.056, 122.804) kind 3: 32.255  FAILED, KNOWN, expected 32.258\n    test 1729 GeoidKarney('egm84-15.pgm').height(30.127, 94.738) kind 3: -41.528  FAILED, KNOWN, expected -41.529\n    test 1730 GeoidKarney('egm84-15.pgm').height(46.296, -174.479) kind 3: -1.376  FAILED, KNOWN, expected -1.377\n    test 1731 GeoidKarney('egm84-15.pgm').height(34.99, 15.052) kind 3: 35.279  FAILED, KNOWN, expected 35.280\n    test 1732 GeoidKarney('egm84-15.pgm').height(-51.287, 90.565) kind 3: 12.958\n    test 1733 GeoidKarney('egm84-15.pgm').height(34.217, 141.302) kind 3: 18.313  FAILED, KNOWN, expected 18.307\n    test 1734 GeoidKarney('egm84-15.pgm').height(-40.423, -142.787) kind 3: -10.400\n    test 1735 GeoidKarney('egm84-15.pgm').height(-17.854, -170.216) kind 3: 28.640  FAILED, KNOWN, expected 28.638\n    test 1736 GeoidKarney('egm84-15.pgm').height(47.803, 112.701) kind 3: -24.059\n    test 1737 GeoidKarney('egm84-15.pgm').height(-23.276, 133.454) kind 3: 18.806\n    test 1738 GeoidKarney('egm84-15.pgm').height(-26.884, -36.571) kind 3: -6.819  FAILED, KNOWN, expected -6.820\n    test 1739 GeoidKarney('egm84-15.pgm').height(-37.106, 31.128) kind 3: 31.486\n    test 1740 GeoidKarney('egm84-15.pgm').height(-75.363, -173.674) kind 3: -62.024\n    test 1741 GeoidKarney('egm84-15.pgm').height(-18.305, 69.016) kind 3: -24.247  FAILED, KNOWN, expected -24.248\n    test 1742 GeoidKarney('egm84-15.pgm').height(39.527, 23.58) kind 3: 43.255\n    test 1743 GeoidKarney('egm84-15.pgm').height(68.903, 30.97) kind 3: 18.499  FAILED, KNOWN, expected 18.498\n    test 1744 GeoidKarney('egm84-15.pgm').height(53.937, 168.318) kind 3: 4.069  FAILED, KNOWN, expected 4.067\n    test 1745 GeoidKarney('egm84-15.pgm').height(-38.6, 64.812) kind 3: 25.455  FAILED, KNOWN, expected 25.454\n    test 1746 GeoidKarney('egm84-15.pgm').height(-41.396, -69.739) kind 3: 26.655  FAILED, KNOWN, expected 26.657\n    test 1747 GeoidKarney('egm84-15.pgm').height(50.158, 72.319) kind 3: -31.967  FAILED, KNOWN, expected -31.966\n    test 1748 GeoidKarney('egm84-15.pgm').height(27.692, 176.153) kind 3: -4.416  FAILED, KNOWN, expected -4.415\n    test 1749 GeoidKarney('egm84-15.pgm').height(-48.419, 170.454) kind 3: -6.741\n    test 1750 GeoidKarney('egm84-15.pgm').height(-65.346, -124.976) kind 3: -34.902  FAILED, KNOWN, expected -34.900\n    test 1751 GeoidKarney('egm84-15.pgm').height(-51.873, 167.266) kind 3: -14.223\n    test 1752 GeoidKarney('egm84-15.pgm').height(-7.263, 84.308) kind 3: -79.317\n    test 1753 GeoidKarney('egm84-15.pgm').height(-1.461, -105.458) kind 3: -16.162  FAILED, KNOWN, expected -16.163\n    test 1754 GeoidKarney('egm84-15.pgm').height(7.684, 161.873) kind 3: 36.288  FAILED, KNOWN, expected 36.287\n    test 1755 GeoidKarney('egm84-15.pgm').height(-31.475, -158.52) kind 3: 4.067  FAILED, KNOWN, expected 4.068\n    test 1756 GeoidKarney('egm84-15.pgm').height(-36.187, 62.917) kind 3: 24.406  FAILED, KNOWN, expected 24.407\n    test 1757 GeoidKarney('egm84-15.pgm').height(16.003, 141.687) kind 3: 53.053  FAILED, KNOWN, expected 53.054\n    test 1758 GeoidKarney('egm84-15.pgm').height(30.182, 86.261) kind 3: -30.621  FAILED, KNOWN, expected -30.622\n    test 1759 GeoidKarney('egm84-15.pgm').height(-77.304, 159.498) kind 3: -53.540\n    test 1760 GeoidKarney('egm84-15.pgm').height(39.536, 139.795) kind 3: 36.262\n    test 1761 GeoidKarney('egm84-15.pgm').height(8.569, 134.618) kind 3: 64.367  FAILED, KNOWN, expected 64.369\n    test 1762 GeoidKarney('egm84-15.pgm').height(14.473, 90.596) kind 3: -61.301  FAILED, KNOWN, expected -61.300\n    test 1763 GeoidKarney('egm84-15.pgm').height(-13.138, -99.589) kind 3: -8.000  FAILED, KNOWN, expected -7.999\n    test 1764 GeoidKarney('egm84-15.pgm').height(34.212, -26.307) kind 3: 41.479  FAILED, KNOWN, expected 41.477\n    test 1765 GeoidKarney('egm84-15.pgm').height(21.89, 76.371) kind 3: -59.875  FAILED, KNOWN, expected -59.876\n    test 1766 GeoidKarney('egm84-15.pgm').height(29.793, 120.487) kind 3: 8.404\n    test 1767 GeoidKarney('egm84-15.pgm').height(15.724, 122.714) kind 3: 39.154  FAILED, KNOWN, expected 39.152\n    test 1768 GeoidKarney('egm84-15.pgm').height(-66.208, -78.499) kind 3: -7.076\n    test 1769 GeoidKarney('egm84-15.pgm').height(-39.507, 55.809) kind 3: 33.179  FAILED, KNOWN, expected 33.178\n    test 1770 GeoidKarney('egm84-15.pgm').height(28.159, 51.476) kind 3: -23.832\n    test 1771 GeoidKarney('egm84-15.pgm').height(-36.207, 120.205) kind 3: -38.206\n    test 1772 GeoidKarney('egm84-15.pgm').height(30.575, -99.998) kind 3: -22.144  FAILED, KNOWN, expected -22.142\n    test 1773 GeoidKarney('egm84-15.pgm').height(-16.993, 37.136) kind 3: -13.763  FAILED, KNOWN, expected -13.765\n    test 1774 GeoidKarney('egm84-15.pgm').height(-11.477, 12.039) kind 3: 16.899  FAILED, KNOWN, expected 16.898\n    test 1775 GeoidKarney('egm84-15.pgm').height(30.428, -144.765) kind 3: -22.475  FAILED, KNOWN, expected -22.474\n    test 1776 GeoidKarney('egm84-15.pgm').height(-17.44, -92.424) kind 3: -4.717  FAILED, KNOWN, expected -4.718\n    test 1777 GeoidKarney('egm84-15.pgm').height(40.203, 143.43) kind 3: 16.635\n    test 1778 GeoidKarney('egm84-15.pgm').height(-37.098, -106.574) kind 3: -9.011  FAILED, KNOWN, expected -9.012\n    test 1779 GeoidKarney('egm84-15.pgm').height(54.62, -68.413) kind 3: -23.544  FAILED, KNOWN, expected -23.543\n    test 1780 GeoidKarney('egm84-15.pgm').height(-31.633, 148.182) kind 3: 26.236\n    test 1781 GeoidKarney('egm84-15.pgm').height(-56.07, -141.407) kind 3: -21.955  FAILED, KNOWN, expected -21.953\n    test 1782 GeoidKarney('egm84-15.pgm').height(-8.195, -52.691) kind 3: -17.959\n    test 1783 GeoidKarney('egm84-15.pgm').height(17.851, 24.749) kind 3: 9.078\n    test 1784 GeoidKarney('egm84-15.pgm').height(0.349, -108.333) kind 3: -19.157  FAILED, KNOWN, expected -19.158\n    test 1785 GeoidKarney('egm84-15.pgm').height(15.038, 126.191) kind 3: 46.776\n    test 1786 GeoidKarney('egm84-15.pgm').height(-21.111, -123.696) kind 3: -8.055\n    test 1787 GeoidKarney('egm84-15.pgm').height(30.947, 173.002) kind 3: -7.695  FAILED, KNOWN, expected -7.696\n    test 1788 GeoidKarney('egm84-15.pgm').height(-10.698, -144.091) kind 3: -1.048  FAILED, KNOWN, expected -1.049\n    test 1789 GeoidKarney('egm84-15.pgm').height(-29.412, 124.753) kind 3: -16.082  FAILED, KNOWN, expected -16.081\n    test 1790 GeoidKarney('egm84-15.pgm').height(38.224, -137.189) kind 3: -35.426  FAILED, KNOWN, expected -35.427\n    test 1791 GeoidKarney('egm84-15.pgm').height(36.064, -132.409) kind 3: -38.648\n    test 1792 GeoidKarney('egm84-15.pgm').height(29.975, 178.076) kind 3: -5.519\n    test 1793 GeoidKarney('egm84-15.pgm').height(-21.346, 169.26) kind 3: 53.430  FAILED, KNOWN, expected 53.431\n    test 1794 GeoidKarney('egm84-15.pgm').height(49.282, -152.934) kind 3: 1.978  FAILED, KNOWN, expected 1.979\n    test 1795 GeoidKarney('egm84-15.pgm').height(16.349, -99.962) kind 3: -13.194  FAILED, KNOWN, expected -13.197\n    test 1796 GeoidKarney('egm84-15.pgm').height(-14.293, -167.34) kind 3: 18.945\n    test 1797 GeoidKarney('egm84-15.pgm').height(47.166, -38.523) kind 3: 45.185  FAILED, KNOWN, expected 45.187\n    test 1798 GeoidKarney('egm84-15.pgm').height(-58.911, 114.347) kind 3: -17.146  FAILED, KNOWN, expected -17.145\n    test 1799 GeoidKarney('egm84-15.pgm').height(-9.055, 111.294) kind 3: 13.145  FAILED, KNOWN, expected 13.146\n    test 1800 GeoidKarney('egm84-15.pgm').height(18.391, 29.692) kind 3: 4.932  FAILED, KNOWN, expected 4.933\n    test 1801 GeoidKarney('egm84-15.pgm').height(-15.074, 22.153) kind 3: 12.327  FAILED, KNOWN, expected 12.326\n    test 1802 GeoidKarney('egm84-15.pgm').height(-4.235, 62.001) kind 3: -60.029  FAILED, KNOWN, expected -60.030\n    test 1803 GeoidKarney('egm84-15.pgm').height(15.171, -86.583) kind 3: 3.107  FAILED, KNOWN, expected 3.110\n    test 1804 GeoidKarney('egm84-15.pgm').height(79.254, 112.116) kind 3: -2.741\n    test 1805 GeoidKarney('egm84-15.pgm').height(15.947, 156.093) kind 3: 32.086  FAILED, KNOWN, expected 32.085\n    test 1806 GeoidKarney('egm84-15.pgm').height(68.371, -177.382) kind 3: 2.060\n    test 1807 GeoidKarney('egm84-15.pgm').height(-41.931, -72.093) kind 3: 22.916\n    test 1808 GeoidKarney('egm84-15.pgm').height(-1.193, -143.133) kind 3: 5.519\n    test 1809 GeoidKarney('egm84-15.pgm').height(-37.006, 154.513) kind 3: 11.021  FAILED, KNOWN, expected 11.020\n    test 1810 GeoidKarney('egm84-15.pgm').height(-22.148, 9.938) kind 3: 22.171\n    test 1811 GeoidKarney('egm84-15.pgm').height(24.329, 109.044) kind 3: -22.945  FAILED, KNOWN, expected -22.944\n    test 1812 GeoidKarney('egm84-15.pgm').height(-54.878, 114.691) kind 3: -17.579  FAILED, KNOWN, expected -17.580\n    test 1813 GeoidKarney('egm84-15.pgm').height(45.601, -80.458) kind 3: -35.737  FAILED, KNOWN, expected -35.738\n    test 1814 GeoidKarney('egm84-15.pgm').height(2.372, 58.974) kind 3: -61.040\n    test 1815 GeoidKarney('egm84-15.pgm').height(15.937, 165.854) kind 3: 20.906  FAILED, KNOWN, expected 20.907\n    test 1816 GeoidKarney('egm84-15.pgm').height(4.889, -24.213) kind 3: 13.874\n    test 1817 GeoidKarney('egm84-15.pgm').height(-11.392, 179.558) kind 3: 40.928  FAILED, KNOWN, expected 40.929\n    test 1818 GeoidKarney('egm84-15.pgm').height(58.246, 4.862) kind 3: 43.191\n    test 1819 GeoidKarney('egm84-15.pgm').height(34.302, -109.109) kind 3: -22.006\n    test 1820 GeoidKarney('egm84-15.pgm').height(-58.196, 117.306) kind 3: -20.375\n    test 1821 GeoidKarney('egm84-15.pgm').height(44.5, 173.769) kind 3: -7.851  FAILED, KNOWN, expected -7.852\n    test 1822 GeoidKarney('egm84-15.pgm').height(-28.863, -139.775) kind 3: -8.675  FAILED, KNOWN, expected -8.674\n    test 1823 GeoidKarney('egm84-15.pgm').height(19.507, -96.099) kind 3: -14.116  FAILED, KNOWN, expected -14.117\n    test 1824 GeoidKarney('egm84-15.pgm').height(-42.488, -73.907) kind 3: 17.252  FAILED, KNOWN, expected 17.251\n    test 1825 GeoidKarney('egm84-15.pgm').height(46.138, -141.429) kind 3: -19.435  FAILED, KNOWN, expected -19.436\n    test 1826 GeoidKarney('egm84-15.pgm').height(60.507, 93.743) kind 3: -31.331  FAILED, KNOWN, expected -31.330\n    test 1827 GeoidKarney('egm84-15.pgm').height(26.219, -145.434) kind 3: -17.091  FAILED, KNOWN, expected -17.090\n    test 1828 GeoidKarney('egm84-15.pgm').height(-28.687, 3.37) kind 3: 24.184\n    test 1829 GeoidKarney('egm84-15.pgm').height(-15.008, 117.45) kind 3: 6.142\n    test 1830 GeoidKarney('egm84-15.pgm').height(40.71, 144.095) kind 3: 11.693\n    test 1831 GeoidKarney('egm84-15.pgm').height(20.823, -173.611) kind 3: 6.839  FAILED, KNOWN, expected 6.840\n    test 1832 GeoidKarney('egm84-15.pgm').height(16.776, -3.009) kind 3: 31.298\n    test 1833 GeoidKarney('egm84-15.pgm').height(41.0, -95.0) kind 3: -31.952\n    test 1834 GeoidKarney('egm84-15.pgm').height(49.0, -120.5) kind 3: -14.946\n    test 1835 GeoidKarney('egm84-15.pgm').height(49.0, -103.5) kind 3: -17.032\n    test 1836 GeoidKarney('egm84-15.pgm').height(49.0, -86.5) kind 3: -37.962\n    test 1837 GeoidKarney('egm84-15.pgm').height(49.0, -69.5) kind 3: -26.492\n    test 1838 GeoidKarney('egm84-15.pgm').height(33.0, -120.5) kind 3: -39.543\n    test 1839 GeoidKarney('egm84-15.pgm').height(33.0, -103.5) kind 3: -22.556\n    test 1840 GeoidKarney('egm84-15.pgm').height(33.0, -86.5) kind 3: -28.710\n    test 1841 GeoidKarney('egm84-15.pgm').height(33.0, -69.5) kind 3: -46.590\n\n    test 1842 GeoidKarney('egm84-15.pgm').height() kind 3, hits 0, eps max (in 0 FAILED): 0.005459\n    test 1843 GeoidKarney('egm84-15.pgm').height() kind 3, hits 0, eps mean (of 210 total): 0.000736\n    test 1844 GeoidKarney('egm84-15.pgm').height() kind 3, hits 0, eps stdev (of 210 total): 0.000728\n    test 1845 GeoidKarney('egm84-15.pgm').highest(): -4.5, 148.75, 81.33\n    test 1846 GeoidKarney('egm84-15.pgm').lowerleft(): -90.0, -180.0, -29.712\n    test 1847 GeoidKarney('egm84-15.pgm').lowerright(): -90.0, 180.0, -29.712\n    test 1848 GeoidKarney('egm84-15.pgm').lowest(): 4.75, 79.25, -107.34\n    test 1849 GeoidKarney('egm84-15.pgm').upperleft(): 90.0, -180.0, 13.098\n    test 1850 GeoidKarney('egm84-15.pgm').upperright(): 90.0, 180.0, 13.098\n    test 1851 GeoidKarney('egm84-15.pgm').dtype: (\"'ushort'\",)\n    test 1852 GeoidKarney('egm84-15.pgm').knots: ('1038240',)\n    test 1853 GeoidKarney('egm84-15.pgm').mean: ('-1.317',)\n    test 1854 GeoidKarney('egm84-15.pgm').nBytes: ('None',)\n    test 1855 GeoidKarney('egm84-15.pgm').smooth: ('None',)\n    test 1856 GeoidKarney('egm84-15.pgm').stdev: ('29.244',)\n    test 1857 GeoidKarney('egm84-15.pgm')._g2ll2(180, 360): (180, 0.0)\n    test 1858 GeoidKarney('egm84-15.pgm')._ll2g2(180, 360): (180, 360)\n    test 1859 GeoidKarney('egm84-15.pgm')._swne: (-10.0, -100.0, 10.0, 100.0)\n    test 1860 GeoidKarney('egm84-15.pgm')._swne: (-10.0, -100.0, 10.0, 100.0)\n    test 1861 GeoidKarney('egm84-15.pgm').toStr: GeoidKarney('egm84-15.pgm'): lowerleft(-90.0, -180.0, -29.712), upperright(90.0, 180.0, 13.098), center(0.0, 0.0, 18.33), highest(-4.5, 148.75, 81.33), lowest(4.75, 79.25, -107.34)\n\n    test 1862 closed: True\n    test 1863 copy(<class 'type'>): (<class 'pygeodesy.geoids.GeoidKarney'>, True)\n    test 1864 GeoidKarney.copy(): (<class 'pygeodesy.geoids.GeoidKarney'>, True)\n    test 1865 GeoidPGM('egm84-15.pgm').height(-76.981, 34.17) kind 3: lli ('-76.981466, 34.17016'), H (False) or wrap (False): lli ('-76.981466, 34.17016'): outside on SE  FAILED, KNOWN, expected 11.729\n    test 1866 GeoidPGM('egm84-15.pgm').height(79.695, 88.806) kind 3: lli ('79.695484, 88.805571'), H (False) or wrap (False): lli ('79.695484, 88.805571'): outside on NE  FAILED, KNOWN, expected 0.270\n    test 1867 GeoidPGM('egm84-15.pgm').height(-15.245, 168.748) kind 3: lli ('-15.244804, 168.747961'), H (False) or wrap (False): lli ('-15.244804, 168.747961'): outside on SE  FAILED, KNOWN, expected 67.074\n    test 1868 GeoidPGM('egm84-15.pgm').height(-19.379, 15.855) kind 3: lli ('-19.379357, 15.85511'), H (False) or wrap (False): lli ('-19.379357, 15.85511'): outside on SE  FAILED, KNOWN, expected 25.344\n    test 1869 GeoidPGM('egm84-15.pgm').height(43.378, -130.552) kind 3: lli ('43.377784, -130.551582'), H (False) or wrap (False): lli ('43.377784, -130.551582'): outside on W  FAILED, KNOWN, expected -28.919\n    test 1870 GeoidPGM('egm84-15.pgm').height(-16.075, 21.795) kind 3: lli ('-16.074554, 21.79547'), H (False) or wrap (False): lli ('-16.074554, 21.79547'): outside on SE  FAILED, KNOWN, expected 14.386\n    test 1871 GeoidPGM('egm84-15.pgm').height(-11.256, -73.75) kind 3: lli ('-11.256389, -73.750255'), H (False) or wrap (False): lli ('-11.256389, -73.750255'): outside on S  FAILED, KNOWN, expected 30.700\n    test 1872 GeoidPGM('egm84-15.pgm').height(69.017, -15.921) kind 3: lli ('69.016564, -15.921115'), H (False) or wrap (False): lli ('69.016564, -15.921115'): outside on NE  FAILED, KNOWN, expected 62.225\n    test 1873 GeoidPGM('egm84-15.pgm').height(2.221, 139.739) kind 3: lli ('2.221008, 139.73935'), H (False) or wrap (False): lli ('2.221008, 139.73935'): outside on SE  FAILED, KNOWN, expected 70.222\n    test 1874 GeoidPGM('egm84-15.pgm').height(-9.097, 119.142) kind 3: lli ('-9.096878, 119.141551'), H (False) or wrap (False): lli ('-9.096878, 119.141551'): outside on SE  FAILED, KNOWN, expected 34.336\n    test 1875 GeoidPGM('egm84-15.pgm').height(-28.524, -22.192) kind 3: lli ('-28.523717, -22.1925'), H (False) or wrap (False): lli ('-28.523717, -22.1925'): outside on SE  FAILED, KNOWN, expected 8.206\n    test 1876 GeoidPGM('egm84-15.pgm').height(12.272, -136.424) kind 3: lli ('12.27231, -136.424168'), H (False) or wrap (False): lli ('12.27231, -136.424168'): outside on SW  FAILED, KNOWN, expected -20.074\n    test 1877 GeoidPGM('egm84-15.pgm').height(-15.203, -85.604) kind 3: lli ('-15.20317, -85.603753'), H (False) or wrap (False): lli ('-15.20317, -85.603753'): outside on S  FAILED, KNOWN, expected -3.129\n    test 1878 GeoidPGM('egm84-15.pgm').height(-63.736, -77.17) kind 3: lli ('-63.735565, -77.169636'), H (False) or wrap (False): lli ('-63.735565, -77.169636'): outside on S  FAILED, KNOWN, expected -3.217\n    test 1879 GeoidPGM('egm84-15.pgm').height(-48.771, -90.102) kind 3: lli ('-48.770825, -90.102117'), H (False) or wrap (False): lli ('-48.770825, -90.102117'): outside on S  FAILED, KNOWN, expected -1.531\n    test 1880 GeoidPGM('egm84-15.pgm').height(-0.179, -126.368) kind 3: lli ('-0.178524, -126.368279'), H (False) or wrap (False): lli ('-0.178524, -126.368279'): outside on SW  FAILED, KNOWN, expected -16.742\n    test 1881 GeoidPGM('egm84-15.pgm').height(1.586, -128.887) kind 3: lli ('1.585536, -128.886967'), H (False) or wrap (False): lli ('1.585536, -128.886967'): outside on SW  FAILED, KNOWN, expected -15.412\n    test 1882 GeoidPGM('egm84-15.pgm').height(-48.781, -2.684) kind 3: lli ('-48.780705, -2.684224'), H (False) or wrap (False): lli ('-48.780705, -2.684224'): outside on SE  FAILED, KNOWN, expected 25.078\n    test 1883 GeoidPGM('egm84-15.pgm').height(-49.092, 136.862) kind 3: lli ('-49.091632, 136.862256'), H (False) or wrap (False): lli ('-49.091632, 136.862256'): outside on SE  FAILED, KNOWN, expected -18.120\n    test 1884 GeoidPGM('egm84-15.pgm').height(47.732, 17.552) kind 3: lli ('47.731727, 17.552416'), H (False) or wrap (False): lli ('47.731727, 17.552416'): outside on E  FAILED, KNOWN, expected 46.224\n    test 1885 GeoidPGM('egm84-15.pgm').height(-49.11, 85.706) kind 3: lli ('-49.109549, 85.706437'), H (False) or wrap (False): lli ('-49.109549, 85.706437'): outside on SE  FAILED, KNOWN, expected 18.649\n    test 1886 GeoidPGM('egm84-15.pgm').height(-49.162, 40.321) kind 3: lli ('-49.162281, 40.321209'), H (False) or wrap (False): lli ('-49.162281, 40.321209'): outside on SE  FAILED, KNOWN, expected 44.764\n    test 1887 GeoidPGM('egm84-15.pgm').height(3.498, 158.118) kind 3: lli ('3.498333, 158.117699'), H (False) or wrap (False): lli ('3.498333, 158.117699'): outside on SE  FAILED, KNOWN, expected 51.089\n    test 1888 GeoidPGM('egm84-15.pgm').height(-35.616, 122.648) kind 3: lli ('-35.616495, 122.648407'), H (False) or wrap (False): lli ('-35.616495, 122.648407'): outside on SE  FAILED, KNOWN, expected -34.471\n    test 1889 GeoidPGM('egm84-15.pgm').height(56.598, -96.114) kind 3: lli ('56.598256, -96.113696'), H (False) or wrap (False): lli ('56.598256, -96.113696'): outside on N  FAILED, KNOWN, expected -39.124\n    test 1890 GeoidPGM('egm84-15.pgm').height(-31.85, 149.121) kind 3: lli ('-31.850231, 149.120596'), H (False) or wrap (False): lli ('-31.850231, 149.120596'): outside on SE  FAILED, KNOWN, expected 28.142\n    test 1891 GeoidPGM('egm84-15.pgm').height(-26.569, -177.792) kind 3: lli ('-26.568996, -177.792196'), H (False) or wrap (False): lli ('-26.568996, -177.792196'): outside on SW  FAILED, KNOWN, expected 49.619\n    test 1892 GeoidPGM('egm84-15.pgm').height(76.735, -65.753) kind 3: lli ('76.734699, -65.752952'), H (False) or wrap (False): lli ('76.734699, -65.752952'): outside on N  FAILED, KNOWN, expected 22.575\n    test 1893 GeoidPGM('egm84-15.pgm').height(-21.404, -122.268) kind 3: lli ('-21.404166, -122.267869'), H (False) or wrap (False): lli ('-21.404166, -122.267869'): outside on S  FAILED, KNOWN, expected -6.893\n    test 1894 GeoidPGM('egm84-15.pgm').height(-77.133, -65.474) kind 3: lli ('-77.133426, -65.473819'), H (False) or wrap (False): lli ('-77.133426, -65.473819'): outside on S  FAILED, KNOWN, expected -15.012\n    test 1895 GeoidPGM('egm84-15.pgm').height(-58.812, 2.276) kind 3: lli ('-58.811779, 2.276142'), H (False) or wrap (False): lli ('-58.811779, 2.276142'): outside on SE  FAILED, KNOWN, expected 18.776\n    test 1896 GeoidPGM('egm84-15.pgm').height(4.415, 155.683) kind 3: lli ('4.415102, 155.683336'), H (False) or wrap (False): lli ('4.415102, 155.683336'): outside on SE  FAILED, KNOWN, expected 53.645\n    test 1897 GeoidPGM('egm84-15.pgm').height(-28.146, 107.081) kind 3: lli ('-28.145768, 107.081334'), H (False) or wrap (False): lli ('-28.145768, 107.081334'): outside on SE  FAILED, KNOWN, expected -39.074\n    test 1898 GeoidPGM('egm84-15.pgm').height(-10.551, -126.69) kind 3: lli ('-10.551267, -126.690468'), H (False) or wrap (False): lli ('-10.551267, -126.690468'): outside on SW  FAILED, KNOWN, expected -9.645\n    test 1899 GeoidPGM('egm84-15.pgm').height(-25.444, -103.337) kind 3: lli ('-25.444344, -103.337184'), H (False) or wrap (False): lli ('-25.444344, -103.337184'): outside on S  FAILED, KNOWN, expected -2.528\n    test 1900 GeoidPGM('egm84-15.pgm').height(24.436, 46.159) kind 3: lli ('24.435896, 46.158715'), H (False) or wrap (False): lli ('24.435896, 46.158715'): outside on SE  FAILED, KNOWN, expected -6.907\n    test 1901 GeoidPGM('egm84-15.pgm').height(-72.889, 37.107) kind 3: lli ('-72.888898, 37.106907'), H (False) or wrap (False): lli ('-72.888898, 37.106907'): outside on SE  FAILED, KNOWN, expected 21.711\n    test 1902 GeoidPGM('egm84-15.pgm').height(-19.629, 13.245) kind 3: lli ('-19.628762, 13.244525'), H (False) or wrap (False): lli ('-19.628762, 13.244525'): outside on SE  FAILED, KNOWN, expected 25.611\n    test 1903 GeoidPGM('egm84-15.pgm').height(-7.602, 171.265) kind 3: lli ('-7.602449, 171.264763'), H (False) or wrap (False): lli ('-7.602449, 171.264763'): outside on SE  FAILED, KNOWN, expected 41.569\n    test 1904 GeoidPGM('egm84-15.pgm').height(-45.364, -1.876) kind 3: lli ('-45.364396, -1.876412'), H (False) or wrap (False): lli ('-45.364396, -1.876412'): outside on SE  FAILED, KNOWN, expected 23.280\n    test 1905 GeoidPGM('egm84-15.pgm').height(-7.292, -69.18) kind 3: lli ('-7.292121, -69.179565'), H (False) or wrap (False): lli ('-7.292121, -69.179565'): outside on S  FAILED, KNOWN, expected 24.502\n    test 1906 GeoidPGM('egm84-15.pgm').height(-31.566, -166.689) kind 3: lli ('-31.566264, -166.688985'), H (False) or wrap (False): lli ('-31.566264, -166.688985'): outside on SW  FAILED, KNOWN, expected 14.826\n    test 1907 GeoidPGM('egm84-15.pgm').height(-82.751, -162.085) kind 3: lli ('-82.751144, -162.08523'), H (False) or wrap (False): lli ('-82.751144, -162.08523'): outside on SW  FAILED, KNOWN, expected -45.104\n    test 1908 GeoidPGM('egm84-15.pgm').height(-40.7, 99.466) kind 3: lli ('-40.699637, 99.465509'), H (False) or wrap (False): lli ('-40.699637, 99.465509'): outside on SE  FAILED, KNOWN, expected -17.252\n    test 1909 GeoidPGM('egm84-15.pgm').height(48.676, 39.69) kind 3: lli ('48.675771, 39.690012'), H (False) or wrap (False): lli ('48.675771, 39.690012'): outside on E  FAILED, KNOWN, expected 12.972\n    test 1910 GeoidPGM('egm84-15.pgm').height(74.817, -78.404) kind 3: lli ('74.817287, -78.404187'), H (False) or wrap (False): lli ('74.817287, -78.404187'): outside on N  FAILED, KNOWN, expected 4.776\n    test 1911 GeoidPGM('egm84-15.pgm').height(-81.032, -63.865) kind 3: lli ('-81.032306, -63.864898'), H (False) or wrap (False): lli ('-81.032306, -63.864898'): outside on SE  FAILED, KNOWN, expected -23.577\n    test 1912 GeoidPGM('egm84-15.pgm').height(74.022, 9.432) kind 3: lli ('74.021785, 9.431926'), H (False) or wrap (False): lli ('74.021785, 9.431926'): outside on NE  FAILED, KNOWN, expected 43.885\n    test 1913 GeoidPGM('egm84-15.pgm').height(-75.071, 17.579) kind 3: lli ('-75.070563, 17.57935'), H (False) or wrap (False): lli ('-75.070563, 17.57935'): outside on SE  FAILED, KNOWN, expected 17.072\n    test 1914 GeoidPGM('egm84-15.pgm').height(-12.546, -54.851) kind 3: lli ('-12.54612, -54.850614'), H (False) or wrap (False): lli ('-12.54612, -54.850614'): outside on SE  FAILED, KNOWN, expected -6.643\n    test 1915 GeoidPGM('egm84-15.pgm').height(-13.621, 42.408) kind 3: lli ('-13.621418, 42.407805'), H (False) or wrap (False): lli ('-13.621418, 42.407805'): outside on SE  FAILED, KNOWN, expected -23.325\n    test 1916 GeoidPGM('egm84-15.pgm').height(-2.266, -91.951) kind 3: lli ('-2.265774, -91.951437'), H (False) or wrap (False): lli ('-2.265774, -91.951437'): outside on S  FAILED, KNOWN, expected -10.698\n    test 1917 GeoidPGM('egm84-15.pgm').height(-18.672, 42.547) kind 3: lli ('-18.672316, 42.547125'), H (False) or wrap (False): lli ('-18.672316, 42.547125'): outside on SE  FAILED, KNOWN, expected -10.265\n    test 1918 GeoidPGM('egm84-15.pgm').height(-41.44, 157.413) kind 3: lli ('-41.439867, 157.413161'), H (False) or wrap (False): lli ('-41.439867, 157.413161'): outside on SE  FAILED, KNOWN, expected 0.689\n    test 1919 GeoidPGM('egm84-15.pgm').height(53.686, -79.375) kind 3: -43.759  FAILED, KNOWN, expected -43.758\n    test 1920 GeoidPGM('egm84-15.pgm').height(39.26, -30.351) kind 3: lli ('39.260397, -30.351359'), H (False) or wrap (False): lli ('39.260397, -30.351359'): outside on E  FAILED, KNOWN, expected 57.554\n    test 1921 GeoidPGM('egm84-15.pgm').height(-51.699, -141.493) kind 3: lli ('-51.699195, -141.493082'), H (False) or wrap (False): lli ('-51.699195, -141.493082'): outside on SW  FAILED, KNOWN, expected -16.936\n    test 1922 GeoidPGM('egm84-15.pgm').height(36.585, 4.515) kind 3: lli ('36.584861, 4.515157'), H (False) or wrap (False): lli ('36.584861, 4.515157'): outside on E  FAILED, KNOWN, expected 45.295\n    test 1923 GeoidPGM('egm84-15.pgm').height(39.642, -54.659) kind 3: lli ('39.641638, -54.658846'), H (False) or wrap (False): lli ('39.641638, -54.658846'): outside on E  FAILED, KNOWN, expected -13.586\n    test 1924 GeoidPGM('egm84-15.pgm').height(59.761, 166.567) kind 3: lli ('59.761024, 166.566646'), H (False) or wrap (False): lli ('59.761024, 166.566646'): outside on NE  FAILED, KNOWN, expected 11.468\n    test 1925 GeoidPGM('egm84-15.pgm').height(51.83, 13.357) kind 3: lli ('51.830001, 13.357464'), H (False) or wrap (False): lli ('51.830001, 13.357464'): outside on E  FAILED, KNOWN, expected 42.092\n    test 1926 GeoidPGM('egm84-15.pgm').height(-36.531, -175.431) kind 3: lli ('-36.530912, -175.430804'), H (False) or wrap (False): lli ('-36.530912, -175.430804'): outside on SW  FAILED, KNOWN, expected 22.830\n    test 1927 GeoidPGM('egm84-15.pgm').height(-37.08, 125.264) kind 3: lli ('-37.079518, 125.263901'), H (False) or wrap (False): lli ('-37.079518, 125.263901'): outside on SE  FAILED, KNOWN, expected -32.302\n    test 1928 GeoidPGM('egm84-15.pgm').height(-68.651, 92.732) kind 3: lli ('-68.650762, 92.731524'), H (False) or wrap (False): lli ('-68.650762, 92.731524'): outside on SE  FAILED, KNOWN, expected 9.228\n    test 1929 GeoidPGM('egm84-15.pgm').height(35.087, 45.336) kind 3: lli ('35.086645, 45.335611'), H (False) or wrap (False): lli ('35.086645, 45.335611'): outside on E  FAILED, KNOWN, expected 5.965\n    test 1930 GeoidPGM('egm84-15.pgm').height(-61.356, -169.379) kind 3: lli ('-61.355646, -169.378929'), H (False) or wrap (False): lli ('-61.355646, -169.378929'): outside on SW  FAILED, KNOWN, expected -45.013\n    test 1931 GeoidPGM('egm84-15.pgm').height(-36.955, 179.12) kind 3: lli ('-36.954967, 179.11982'), H (False) or wrap (False): lli ('-36.954967, 179.11982'): outside on SE  FAILED, KNOWN, expected 21.118\n    test 1932 GeoidPGM('egm84-15.pgm').height(10.248, -6.714) kind 3: lli ('10.248399, -6.713559'), H (False) or wrap (False): lli ('10.248399, -6.713559'): outside on SE  FAILED, KNOWN, expected 30.497\n    test 1933 GeoidPGM('egm84-15.pgm').height(36.868, 84.602) kind 3: lli ('36.868193, 84.602243'), H (False) or wrap (False): lli ('36.868193, 84.602243'): outside on E  FAILED, KNOWN, expected -40.396\n    test 1934 GeoidPGM('egm84-15.pgm').height(28.637, 88.933) kind 3: lli ('28.636703, 88.932955'), H (False) or wrap (False): lli ('28.636703, 88.932955'): outside on E  FAILED, KNOWN, expected -31.704\n    test 1935 GeoidPGM('egm84-15.pgm').height(54.811, -99.968) kind 3: -32.277\n    test 1936 GeoidPGM('egm84-15.pgm').height(7.611, 145.911) kind 3: lli ('7.610621, 145.911188'), H (False) or wrap (False): lli ('7.610621, 145.911188'): outside on SE  FAILED, KNOWN, expected 61.024\n    test 1937 GeoidPGM('egm84-15.pgm').height(59.412, 170.102) kind 3: lli ('59.411557, 170.102394'), H (False) or wrap (False): lli ('59.411557, 170.102394'): outside on NE  FAILED, KNOWN, expected 4.994\n    test 1938 GeoidPGM('egm84-15.pgm').height(-61.469, 126.144) kind 3: lli ('-61.468618, 126.144056'), H (False) or wrap (False): lli ('-61.468618, 126.144056'): outside on SE  FAILED, KNOWN, expected -30.237\n    test 1939 GeoidPGM('egm84-15.pgm').height(18.514, -137.083) kind 3: lli ('18.514019, -137.083301'), H (False) or wrap (False): lli ('18.514019, -137.083301'): outside on SW  FAILED, KNOWN, expected -26.006\n    test 1940 GeoidPGM('egm84-15.pgm').height(7.854, -126.799) kind 3: lli ('7.854318, -126.799148'), H (False) or wrap (False): lli ('7.854318, -126.799148'): outside on SW  FAILED, KNOWN, expected -29.283\n    test 1941 GeoidPGM('egm84-15.pgm').height(47.489, 134.183) kind 3: lli ('47.489222, 134.182527'), H (False) or wrap (False): lli ('47.489222, 134.182527'): outside on E  FAILED, KNOWN, expected 22.394\n    test 1942 GeoidPGM('egm84-15.pgm').height(-34.144, -11.922) kind 3: lli ('-34.143602, -11.921567'), H (False) or wrap (False): lli ('-34.143602, -11.921567'): outside on SE  FAILED, KNOWN, expected 17.550\n    test 1943 GeoidPGM('egm84-15.pgm').height(-58.389, 117.458) kind 3: lli ('-58.388787, 117.457755'), H (False) or wrap (False): lli ('-58.388787, 117.457755'): outside on SE  FAILED, KNOWN, expected -20.622\n    test 1944 GeoidPGM('egm84-15.pgm').height(9.773, 95.846) kind 3: lli ('9.772764, 95.845943'), H (False) or wrap (False): lli ('9.772764, 95.845943'): outside on SE  FAILED, KNOWN, expected -41.484\n    test 1945 GeoidPGM('egm84-15.pgm').height(-53.12, 136.994) kind 3: lli ('-53.120381, 136.993994'), H (False) or wrap (False): lli ('-53.120381, 136.993994'): outside on SE  FAILED, KNOWN, expected -20.968\n    test 1946 GeoidPGM('egm84-15.pgm').height(-50.35, 0.075) kind 3: lli ('-50.349867, 0.07532'), H (False) or wrap (False): lli ('-50.349867, 0.07532'): outside on SE  FAILED, KNOWN, expected 25.568\n    test 1947 GeoidPGM('egm84-15.pgm').height(31.438, -170.879) kind 3: lli ('31.438387, -170.878548'), H (False) or wrap (False): lli ('31.438387, -170.878548'): outside on W  FAILED, KNOWN, expected -8.581\n    test 1948 GeoidPGM('egm84-15.pgm').height(37.541, -153.024) kind 3: lli ('37.540689, -153.024228'), H (False) or wrap (False): lli ('37.540689, -153.024228'): outside on W  FAILED, KNOWN, expected -18.329\n    test 1949 GeoidPGM('egm84-15.pgm').height(27.586, 2.444) kind 3: lli ('27.586088, 2.443556'), H (False) or wrap (False): lli ('27.586088, 2.443556'): outside on E  FAILED, KNOWN, expected 25.001\n    test 1950 GeoidPGM('egm84-15.pgm').height(-26.139, -106.201) kind 3: lli ('-26.139126, -106.20081'), H (False) or wrap (False): lli ('-26.139126, -106.20081'): outside on S  FAILED, KNOWN, expected -2.940\n    test 1951 GeoidPGM('egm84-15.pgm').height(-33.426, -14.84) kind 3: lli ('-33.425976, -14.840359'), H (False) or wrap (False): lli ('-33.425976, -14.840359'): outside on SE  FAILED, KNOWN, expected 18.228\n    test 1952 GeoidPGM('egm84-15.pgm').height(39.586, -153.019) kind 3: lli ('39.586286, -153.018974'), H (False) or wrap (False): lli ('39.586286, -153.018974'): outside on W  FAILED, KNOWN, expected -16.507\n    test 1953 GeoidPGM('egm84-15.pgm').height(-60.79, -2.578) kind 3: lli ('-60.790289, -2.578163'), H (False) or wrap (False): lli ('-60.790289, -2.578163'): outside on SE  FAILED, KNOWN, expected 14.275\n    test 1954 GeoidPGM('egm84-15.pgm').height(-20.131, 21.975) kind 3: lli ('-20.130538, 21.974941'), H (False) or wrap (False): lli ('-20.130538, 21.974941'): outside on SE  FAILED, KNOWN, expected 16.852\n    test 1955 GeoidPGM('egm84-15.pgm').height(75.649, 99.921) kind 3: lli ('75.64878, 99.920587'), H (False) or wrap (False): lli ('75.64878, 99.920587'): outside on NE  FAILED, KNOWN, expected -6.872\n    test 1956 GeoidPGM('egm84-15.pgm').height(-0.385, -23.788) kind 3: lli ('-0.385453, -23.788336'), H (False) or wrap (False): lli ('-0.385453, -23.788336'): outside on SE  FAILED, KNOWN, expected 9.006\n    test 1957 GeoidPGM('egm84-15.pgm').height(-51.56, -50.327) kind 3: lli ('-51.559564, -50.32687'), H (False) or wrap (False): lli ('-51.559564, -50.32687'): outside on SE  FAILED, KNOWN, expected 6.296\n    test 1958 GeoidPGM('egm84-15.pgm').height(-43.129, -167.271) kind 3: lli ('-43.129209, -167.27147'), H (False) or wrap (False): lli ('-43.129209, -167.27147'): outside on SW  FAILED, KNOWN, expected -1.481\n    test 1959 GeoidPGM('egm84-15.pgm').height(46.374, 71.948) kind 3: lli ('46.374177, 71.947616'), H (False) or wrap (False): lli ('46.374177, 71.947616'): outside on E  FAILED, KNOWN, expected -40.915\n    test 1960 GeoidPGM('egm84-15.pgm').height(-22.783, 140.657) kind 3: lli ('-22.783085, 140.657444'), H (False) or wrap (False): lli ('-22.783085, 140.657444'): outside on SE  FAILED, KNOWN, expected 37.495\n    test 1961 GeoidPGM('egm84-15.pgm').height(-12.056, 122.804) kind 3: lli ('-12.05584, 122.80402'), H (False) or wrap (False): lli ('-12.05584, 122.80402'): outside on SE  FAILED, KNOWN, expected 32.258\n    test 1962 GeoidPGM('egm84-15.pgm').height(30.127, 94.738) kind 3: lli ('30.127372, 94.738186'), H (False) or wrap (False): lli ('30.127372, 94.738186'): outside on E  FAILED, KNOWN, expected -41.529\n    test 1963 GeoidPGM('egm84-15.pgm').height(46.296, -174.479) kind 3: lli ('46.296018, -174.478616'), H (False) or wrap (False): lli ('46.296018, -174.478616'): outside on W  FAILED, KNOWN, expected -1.377\n    test 1964 GeoidPGM('egm84-15.pgm').height(34.99, 15.052) kind 3: lli ('34.989646, 15.051646'), H (False) or wrap (False): lli ('34.989646, 15.051646'): outside on E  FAILED, KNOWN, expected 35.280\n    test 1965 GeoidPGM('egm84-15.pgm').height(-51.287, 90.565) kind 3: lli ('-51.287168, 90.564711'), H (False) or wrap (False): lli ('-51.287168, 90.564711'): outside on SE  FAILED, KNOWN, expected 12.958\n    test 1966 GeoidPGM('egm84-15.pgm').height(34.217, 141.302) kind 3: lli ('34.217016, 141.301548'), H (False) or wrap (False): lli ('34.217016, 141.301548'): outside on E  FAILED, KNOWN, expected 18.307\n    test 1967 GeoidPGM('egm84-15.pgm').height(-40.423, -142.787) kind 3: lli ('-40.423023, -142.786592'), H (False) or wrap (False): lli ('-40.423023, -142.786592'): outside on SW  FAILED, KNOWN, expected -10.400\n    test 1968 GeoidPGM('egm84-15.pgm').height(-17.854, -170.216) kind 3: lli ('-17.854486, -170.216354'), H (False) or wrap (False): lli ('-17.854486, -170.216354'): outside on SW  FAILED, KNOWN, expected 28.638\n    test 1969 GeoidPGM('egm84-15.pgm').height(47.803, 112.701) kind 3: lli ('47.803271, 112.700942'), H (False) or wrap (False): lli ('47.803271, 112.700942'): outside on E  FAILED, KNOWN, expected -24.059\n    test 1970 GeoidPGM('egm84-15.pgm').height(-23.276, 133.454) kind 3: lli ('-23.275962, 133.453821'), H (False) or wrap (False): lli ('-23.275962, 133.453821'): outside on SE  FAILED, KNOWN, expected 18.806\n    test 1971 GeoidPGM('egm84-15.pgm').height(-26.884, -36.571) kind 3: lli ('-26.884369, -36.570654'), H (False) or wrap (False): lli ('-26.884369, -36.570654'): outside on SE  FAILED, KNOWN, expected -6.820\n    test 1972 GeoidPGM('egm84-15.pgm').height(-37.106, 31.128) kind 3: lli ('-37.106468, 31.127939'), H (False) or wrap (False): lli ('-37.106468, 31.127939'): outside on SE  FAILED, KNOWN, expected 31.486\n    test 1973 GeoidPGM('egm84-15.pgm').height(-75.363, -173.674) kind 3: lli ('-75.363185, -173.673649'), H (False) or wrap (False): lli ('-75.363185, -173.673649'): outside on SW  FAILED, KNOWN, expected -62.024\n    test 1974 GeoidPGM('egm84-15.pgm').height(-18.305, 69.016) kind 3: lli ('-18.30485, 69.015565'), H (False) or wrap (False): lli ('-18.30485, 69.015565'): outside on SE  FAILED, KNOWN, expected -24.248\n    test 1975 GeoidPGM('egm84-15.pgm').height(39.527, 23.58) kind 3: lli ('39.527401, 23.580206'), H (False) or wrap (False): lli ('39.527401, 23.580206'): outside on E  FAILED, KNOWN, expected 43.255\n    test 1976 GeoidPGM('egm84-15.pgm').height(68.903, 30.97) kind 3: lli ('68.903148, 30.970247'), H (False) or wrap (False): lli ('68.903148, 30.970247'): outside on NE  FAILED, KNOWN, expected 18.498\n    test 1977 GeoidPGM('egm84-15.pgm').height(53.937, 168.318) kind 3: lli ('53.936937, 168.318201'), H (False) or wrap (False): lli ('53.936937, 168.318201'): outside on E  FAILED, KNOWN, expected 4.067\n    test 1978 GeoidPGM('egm84-15.pgm').height(-38.6, 64.812) kind 3: lli ('-38.600098, 64.811532'), H (False) or wrap (False): lli ('-38.600098, 64.811532'): outside on SE  FAILED, KNOWN, expected 25.454\n    test 1979 GeoidPGM('egm84-15.pgm').height(-41.396, -69.739) kind 3: lli ('-41.395739, -69.739418'), H (False) or wrap (False): lli ('-41.395739, -69.739418'): outside on S  FAILED, KNOWN, expected 26.657\n    test 1980 GeoidPGM('egm84-15.pgm').height(50.158, 72.319) kind 3: lli ('50.157749, 72.319017'), H (False) or wrap (False): lli ('50.157749, 72.319017'): outside on E  FAILED, KNOWN, expected -31.966\n    test 1981 GeoidPGM('egm84-15.pgm').height(27.692, 176.153) kind 3: lli ('27.691879, 176.152884'), H (False) or wrap (False): lli ('27.691879, 176.152884'): outside on E  FAILED, KNOWN, expected -4.415\n    test 1982 GeoidPGM('egm84-15.pgm').height(-48.419, 170.454) kind 3: lli ('-48.419449, 170.454472'), H (False) or wrap (False): lli ('-48.419449, 170.454472'): outside on SE  FAILED, KNOWN, expected -6.741\n    test 1983 GeoidPGM('egm84-15.pgm').height(-65.346, -124.976) kind 3: lli ('-65.34567, -124.975961'), H (False) or wrap (False): lli ('-65.34567, -124.975961'): outside on S  FAILED, KNOWN, expected -34.900\n    test 1984 GeoidPGM('egm84-15.pgm').height(-51.873, 167.266) kind 3: lli ('-51.873009, 167.265613'), H (False) or wrap (False): lli ('-51.873009, 167.265613'): outside on SE  FAILED, KNOWN, expected -14.223\n    test 1985 GeoidPGM('egm84-15.pgm').height(-7.263, 84.308) kind 3: lli ('-7.262544, 84.307626'), H (False) or wrap (False): lli ('-7.262544, 84.307626'): outside on SE  FAILED, KNOWN, expected -79.317\n    test 1986 GeoidPGM('egm84-15.pgm').height(-1.461, -105.458) kind 3: lli ('-1.461003, -105.458323'), H (False) or wrap (False): lli ('-1.461003, -105.458323'): outside on S  FAILED, KNOWN, expected -16.163\n    test 1987 GeoidPGM('egm84-15.pgm').height(7.684, 161.873) kind 3: lli ('7.684324, 161.87293'), H (False) or wrap (False): lli ('7.684324, 161.87293'): outside on SE  FAILED, KNOWN, expected 36.287\n    test 1988 GeoidPGM('egm84-15.pgm').height(-31.475, -158.52) kind 3: lli ('-31.474549, -158.520033'), H (False) or wrap (False): lli ('-31.474549, -158.520033'): outside on SW  FAILED, KNOWN, expected 4.068\n    test 1989 GeoidPGM('egm84-15.pgm').height(-36.187, 62.917) kind 3: lli ('-36.187212, 62.917075'), H (False) or wrap (False): lli ('-36.187212, 62.917075'): outside on SE  FAILED, KNOWN, expected 24.407\n    test 1990 GeoidPGM('egm84-15.pgm').height(16.003, 141.687) kind 3: lli ('16.002975, 141.686552'), H (False) or wrap (False): lli ('16.002975, 141.686552'): outside on SE  FAILED, KNOWN, expected 53.054\n    test 1991 GeoidPGM('egm84-15.pgm').height(30.182, 86.261) kind 3: lli ('30.182218, 86.260576'), H (False) or wrap (False): lli ('30.182218, 86.260576'): outside on E  FAILED, KNOWN, expected -30.622\n    test 1992 GeoidPGM('egm84-15.pgm').height(-77.304, 159.498) kind 3: lli ('-77.303842, 159.497665'), H (False) or wrap (False): lli ('-77.303842, 159.497665'): outside on SE  FAILED, KNOWN, expected -53.540\n    test 1993 GeoidPGM('egm84-15.pgm').height(39.536, 139.795) kind 3: lli ('39.536, 139.795358'), H (False) or wrap (False): lli ('39.536, 139.795358'): outside on E  FAILED, KNOWN, expected 36.262\n    test 1994 GeoidPGM('egm84-15.pgm').height(8.569, 134.618) kind 3: lli ('8.569309, 134.618403'), H (False) or wrap (False): lli ('8.569309, 134.618403'): outside on SE  FAILED, KNOWN, expected 64.369\n    test 1995 GeoidPGM('egm84-15.pgm').height(14.473, 90.596) kind 3: lli ('14.473483, 90.595663'), H (False) or wrap (False): lli ('14.473483, 90.595663'): outside on SE  FAILED, KNOWN, expected -61.300\n    test 1996 GeoidPGM('egm84-15.pgm').height(-13.138, -99.589) kind 3: lli ('-13.13767, -99.589202'), H (False) or wrap (False): lli ('-13.13767, -99.589202'): outside on S  FAILED, KNOWN, expected -7.999\n    test 1997 GeoidPGM('egm84-15.pgm').height(34.212, -26.307) kind 3: lli ('34.211572, -26.307194'), H (False) or wrap (False): lli ('34.211572, -26.307194'): outside on E  FAILED, KNOWN, expected 41.477\n    test 1998 GeoidPGM('egm84-15.pgm').height(21.89, 76.371) kind 3: lli ('21.889732, 76.371362'), H (False) or wrap (False): lli ('21.889732, 76.371362'): outside on SE  FAILED, KNOWN, expected -59.876\n    test 1999 GeoidPGM('egm84-15.pgm').height(29.793, 120.487) kind 3: lli ('29.792909, 120.48703'), H (False) or wrap (False): lli ('29.792909, 120.48703'): outside on E  FAILED, KNOWN, expected 8.404\n    test 2000 GeoidPGM('egm84-15.pgm').height(15.724, 122.714) kind 3: lli ('15.723814, 122.713685'), H (False) or wrap (False): lli ('15.723814, 122.713685'): outside on SE  FAILED, KNOWN, expected 39.152\n    test 2001 GeoidPGM('egm84-15.pgm').height(-66.208, -78.499) kind 3: lli ('-66.20776, -78.498807'), H (False) or wrap (False): lli ('-66.20776, -78.498807'): outside on S  FAILED, KNOWN, expected -7.076\n    test 2002 GeoidPGM('egm84-15.pgm').height(-39.507, 55.809) kind 3: lli ('-39.507049, 55.808743'), H (False) or wrap (False): lli ('-39.507049, 55.808743'): outside on SE  FAILED, KNOWN, expected 33.178\n    test 2003 GeoidPGM('egm84-15.pgm').height(28.159, 51.476) kind 3: lli ('28.159494, 51.476474'), H (False) or wrap (False): lli ('28.159494, 51.476474'): outside on E  FAILED, KNOWN, expected -23.832\n    test 2004 GeoidPGM('egm84-15.pgm').height(-36.207, 120.205) kind 3: lli ('-36.206825, 120.205019'), H (False) or wrap (False): lli ('-36.206825, 120.205019'): outside on SE  FAILED, KNOWN, expected -38.206\n    test 2005 GeoidPGM('egm84-15.pgm').height(30.575, -99.998) kind 3: -22.143  FAILED, KNOWN, expected -22.142\n    test 2006 GeoidPGM('egm84-15.pgm').height(-16.993, 37.136) kind 3: lli ('-16.992515, 37.135881'), H (False) or wrap (False): lli ('-16.992515, 37.135881'): outside on SE  FAILED, KNOWN, expected -13.765\n    test 2007 GeoidPGM('egm84-15.pgm').height(-11.477, 12.039) kind 3: lli ('-11.476997, 12.038708'), H (False) or wrap (False): lli ('-11.476997, 12.038708'): outside on SE  FAILED, KNOWN, expected 16.898\n    test 2008 GeoidPGM('egm84-15.pgm').height(30.428, -144.765) kind 3: lli ('30.428465, -144.765049'), H (False) or wrap (False): lli ('30.428465, -144.765049'): outside on W  FAILED, KNOWN, expected -22.474\n    test 2009 GeoidPGM('egm84-15.pgm').height(-17.44, -92.424) kind 3: lli ('-17.439773, -92.424339'), H (False) or wrap (False): lli ('-17.439773, -92.424339'): outside on S  FAILED, KNOWN, expected -4.718\n    test 2010 GeoidPGM('egm84-15.pgm').height(40.203, 143.43) kind 3: lli ('40.203164, 143.429799'), H (False) or wrap (False): lli ('40.203164, 143.429799'): outside on E  FAILED, KNOWN, expected 16.635\n    test 2011 GeoidPGM('egm84-15.pgm').height(-37.098, -106.574) kind 3: lli ('-37.098392, -106.573712'), H (False) or wrap (False): lli ('-37.098392, -106.573712'): outside on S  FAILED, KNOWN, expected -9.012\n    test 2012 GeoidPGM('egm84-15.pgm').height(54.62, -68.413) kind 3: -23.544  FAILED, KNOWN, expected -23.543\n    test 2013 GeoidPGM('egm84-15.pgm').height(-31.633, 148.182) kind 3: lli ('-31.633252, 148.181926'), H (False) or wrap (False): lli ('-31.633252, 148.181926'): outside on SE  FAILED, KNOWN, expected 26.236\n    test 2014 GeoidPGM('egm84-15.pgm').height(-56.07, -141.407) kind 3: lli ('-56.069748, -141.406778'), H (False) or wrap (False): lli ('-56.069748, -141.406778'): outside on SW  FAILED, KNOWN, expected -21.953\n    test 2015 GeoidPGM('egm84-15.pgm').height(-8.195, -52.691) kind 3: lli ('-8.195214, -52.691177'), H (False) or wrap (False): lli ('-8.195214, -52.691177'): outside on SE  FAILED, KNOWN, expected -17.959\n    test 2016 GeoidPGM('egm84-15.pgm').height(17.851, 24.749) kind 3: lli ('17.850526, 24.748606'), H (False) or wrap (False): lli ('17.850526, 24.748606'): outside on SE  FAILED, KNOWN, expected 9.078\n    test 2017 GeoidPGM('egm84-15.pgm').height(0.349, -108.333) kind 3: lli ('0.349465, -108.332667'), H (False) or wrap (False): lli ('0.349465, -108.332667'): outside on S  FAILED, KNOWN, expected -19.158\n    test 2018 GeoidPGM('egm84-15.pgm').height(15.038, 126.191) kind 3: lli ('15.037932, 126.190545'), H (False) or wrap (False): lli ('15.037932, 126.190545'): outside on SE  FAILED, KNOWN, expected 46.776\n    test 2019 GeoidPGM('egm84-15.pgm').height(-21.111, -123.696) kind 3: lli ('-21.111105, -123.695981'), H (False) or wrap (False): lli ('-21.111105, -123.695981'): outside on S  FAILED, KNOWN, expected -8.055\n    test 2020 GeoidPGM('egm84-15.pgm').height(30.947, 173.002) kind 3: lli ('30.946618, 173.002137'), H (False) or wrap (False): lli ('30.946618, 173.002137'): outside on E  FAILED, KNOWN, expected -7.696\n    test 2021 GeoidPGM('egm84-15.pgm').height(-10.698, -144.091) kind 3: lli ('-10.698334, -144.091109'), H (False) or wrap (False): lli ('-10.698334, -144.091109'): outside on SW  FAILED, KNOWN, expected -1.049\n    test 2022 GeoidPGM('egm84-15.pgm').height(-29.412, 124.753) kind 3: lli ('-29.412071, 124.75279'), H (False) or wrap (False): lli ('-29.412071, 124.75279'): outside on SE  FAILED, KNOWN, expected -16.081\n    test 2023 GeoidPGM('egm84-15.pgm').height(38.224, -137.189) kind 3: lli ('38.223621, -137.189376'), H (False) or wrap (False): lli ('38.223621, -137.189376'): outside on W  FAILED, KNOWN, expected -35.427\n    test 2024 GeoidPGM('egm84-15.pgm').height(36.064, -132.409) kind 3: lli ('36.063775, -132.409284'), H (False) or wrap (False): lli ('36.063775, -132.409284'): outside on W  FAILED, KNOWN, expected -38.648\n    test 2025 GeoidPGM('egm84-15.pgm').height(29.975, 178.076) kind 3: lli ('29.974676, 178.075894'), H (False) or wrap (False): lli ('29.974676, 178.075894'): outside on E  FAILED, KNOWN, expected -5.519\n    test 2026 GeoidPGM('egm84-15.pgm').height(-21.346, 169.26) kind 3: lli ('-21.346396, 169.259508'), H (False) or wrap (False): lli ('-21.346396, 169.259508'): outside on SE  FAILED, KNOWN, expected 53.431\n    test 2027 GeoidPGM('egm84-15.pgm').height(49.282, -152.934) kind 3: lli ('49.282472, -152.934409'), H (False) or wrap (False): lli ('49.282472, -152.934409'): outside on W  FAILED, KNOWN, expected 1.979\n    test 2028 GeoidPGM('egm84-15.pgm').height(16.349, -99.962) kind 3: lli ('16.349121, -99.962229'), H (False) or wrap (False): lli ('16.349121, -99.962229'): outside on S  FAILED, KNOWN, expected -13.197\n    test 2029 GeoidPGM('egm84-15.pgm').height(-14.293, -167.34) kind 3: lli ('-14.293325, -167.339799'), H (False) or wrap (False): lli ('-14.293325, -167.339799'): outside on SW  FAILED, KNOWN, expected 18.945\n    test 2030 GeoidPGM('egm84-15.pgm').height(47.166, -38.523) kind 3: lli ('47.165911, -38.522629'), H (False) or wrap (False): lli ('47.165911, -38.522629'): outside on E  FAILED, KNOWN, expected 45.187\n    test 2031 GeoidPGM('egm84-15.pgm').height(-58.911, 114.347) kind 3: lli ('-58.910597, 114.346927'), H (False) or wrap (False): lli ('-58.910597, 114.346927'): outside on SE  FAILED, KNOWN, expected -17.145\n    test 2032 GeoidPGM('egm84-15.pgm').height(-9.055, 111.294) kind 3: lli ('-9.055095, 111.294422'), H (False) or wrap (False): lli ('-9.055095, 111.294422'): outside on SE  FAILED, KNOWN, expected 13.146\n    test 2033 GeoidPGM('egm84-15.pgm').height(18.391, 29.692) kind 3: lli ('18.390988, 29.691577'), H (False) or wrap (False): lli ('18.390988, 29.691577'): outside on SE  FAILED, KNOWN, expected 4.933\n    test 2034 GeoidPGM('egm84-15.pgm').height(-15.074, 22.153) kind 3: lli ('-15.074412, 22.152663'), H (False) or wrap (False): lli ('-15.074412, 22.152663'): outside on SE  FAILED, KNOWN, expected 12.326\n    test 2035 GeoidPGM('egm84-15.pgm').height(-4.235, 62.001) kind 3: lli ('-4.234571, 62.001081'), H (False) or wrap (False): lli ('-4.234571, 62.001081'): outside on SE  FAILED, KNOWN, expected -60.030\n    test 2036 GeoidPGM('egm84-15.pgm').height(15.171, -86.583) kind 3: lli ('15.170822, -86.582929'), H (False) or wrap (False): lli ('15.170822, -86.582929'): outside on S  FAILED, KNOWN, expected 3.110\n    test 2037 GeoidPGM('egm84-15.pgm').height(79.254, 112.116) kind 3: lli ('79.254009, 112.115515'), H (False) or wrap (False): lli ('79.254009, 112.115515'): outside on NE  FAILED, KNOWN, expected -2.741\n    test 2038 GeoidPGM('egm84-15.pgm').height(15.947, 156.093) kind 3: lli ('15.947068, 156.092678'), H (False) or wrap (False): lli ('15.947068, 156.092678'): outside on SE  FAILED, KNOWN, expected 32.085\n    test 2039 GeoidPGM('egm84-15.pgm').height(68.371, -177.382) kind 3: lli ('68.370605, -177.382127'), H (False) or wrap (False): lli ('68.370605, -177.382127'): outside on NW  FAILED, KNOWN, expected 2.060\n    test 2040 GeoidPGM('egm84-15.pgm').height(-41.931, -72.093) kind 3: lli ('-41.931009, -72.093413'), H (False) or wrap (False): lli ('-41.931009, -72.093413'): outside on S  FAILED, KNOWN, expected 22.916\n    test 2041 GeoidPGM('egm84-15.pgm').height(-1.193, -143.133) kind 3: lli ('-1.192967, -143.133078'), H (False) or wrap (False): lli ('-1.192967, -143.133078'): outside on SW  FAILED, KNOWN, expected 5.519\n    test 2042 GeoidPGM('egm84-15.pgm').height(-37.006, 154.513) kind 3: lli ('-37.006115, 154.512534'), H (False) or wrap (False): lli ('-37.006115, 154.512534'): outside on SE  FAILED, KNOWN, expected 11.020\n    test 2043 GeoidPGM('egm84-15.pgm').height(-22.148, 9.938) kind 3: lli ('-22.148493, 9.938408'), H (False) or wrap (False): lli ('-22.148493, 9.938408'): outside on SE  FAILED, KNOWN, expected 22.171\n    test 2044 GeoidPGM('egm84-15.pgm').height(24.329, 109.044) kind 3: lli ('24.328746, 109.043774'), H (False) or wrap (False): lli ('24.328746, 109.043774'): outside on SE  FAILED, KNOWN, expected -22.944\n    test 2045 GeoidPGM('egm84-15.pgm').height(-54.878, 114.691) kind 3: lli ('-54.877699, 114.691444'), H (False) or wrap (False): lli ('-54.877699, 114.691444'): outside on SE  FAILED, KNOWN, expected -17.580\n    test 2046 GeoidPGM('egm84-15.pgm').height(45.601, -80.458) kind 3: -35.737  FAILED, KNOWN, expected -35.738\n    test 2047 GeoidPGM('egm84-15.pgm').height(2.372, 58.974) kind 3: lli ('2.371766, 58.974082'), H (False) or wrap (False): lli ('2.371766, 58.974082'): outside on SE  FAILED, KNOWN, expected -61.040\n    test 2048 GeoidPGM('egm84-15.pgm').height(15.937, 165.854) kind 3: lli ('15.936522, 165.854035'), H (False) or wrap (False): lli ('15.936522, 165.854035'): outside on SE  FAILED, KNOWN, expected 20.907\n    test 2049 GeoidPGM('egm84-15.pgm').height(4.889, -24.213) kind 3: lli ('4.889499, -24.213194'), H (False) or wrap (False): lli ('4.889499, -24.213194'): outside on SE  FAILED, KNOWN, expected 13.874\n    test 2050 GeoidPGM('egm84-15.pgm').height(-11.392, 179.558) kind 3: lli ('-11.392365, 179.558198'), H (False) or wrap (False): lli ('-11.392365, 179.558198'): outside on SE  FAILED, KNOWN, expected 40.929\n    test 2051 GeoidPGM('egm84-15.pgm').height(58.246, 4.862) kind 3: lli ('58.24629, 4.862128'), H (False) or wrap (False): lli ('58.24629, 4.862128'): outside on NE  FAILED, KNOWN, expected 43.191\n    test 2052 GeoidPGM('egm84-15.pgm').height(34.302, -109.109) kind 3: -22.005  FAILED, KNOWN, expected -22.006\n    test 2053 GeoidPGM('egm84-15.pgm').height(-58.196, 117.306) kind 3: lli ('-58.195787, 117.305696'), H (False) or wrap (False): lli ('-58.195787, 117.305696'): outside on SE  FAILED, KNOWN, expected -20.375\n    test 2054 GeoidPGM('egm84-15.pgm').height(44.5, 173.769) kind 3: lli ('44.499876, 173.768568'), H (False) or wrap (False): lli ('44.499876, 173.768568'): outside on E  FAILED, KNOWN, expected -7.852\n    test 2055 GeoidPGM('egm84-15.pgm').height(-28.863, -139.775) kind 3: lli ('-28.862539, -139.774812'), H (False) or wrap (False): lli ('-28.862539, -139.774812'): outside on SW  FAILED, KNOWN, expected -8.674\n    test 2056 GeoidPGM('egm84-15.pgm').height(19.507, -96.099) kind 3: lli ('19.507043, -96.099433'), H (False) or wrap (False): lli ('19.507043, -96.099433'): outside on S  FAILED, KNOWN, expected -14.117\n    test 2057 GeoidPGM('egm84-15.pgm').height(-42.488, -73.907) kind 3: lli ('-42.487604, -73.906602'), H (False) or wrap (False): lli ('-42.487604, -73.906602'): outside on S  FAILED, KNOWN, expected 17.251\n    test 2058 GeoidPGM('egm84-15.pgm').height(46.138, -141.429) kind 3: lli ('46.138437, -141.429193'), H (False) or wrap (False): lli ('46.138437, -141.429193'): outside on W  FAILED, KNOWN, expected -19.436\n    test 2059 GeoidPGM('egm84-15.pgm').height(60.507, 93.743) kind 3: lli ('60.506969, 93.74336'), H (False) or wrap (False): lli ('60.506969, 93.74336'): outside on NE  FAILED, KNOWN, expected -31.330\n    test 2060 GeoidPGM('egm84-15.pgm').height(26.219, -145.434) kind 3: lli ('26.219081, -145.434391'), H (False) or wrap (False): lli ('26.219081, -145.434391'): outside on W  FAILED, KNOWN, expected -17.090\n    test 2061 GeoidPGM('egm84-15.pgm').height(-28.687, 3.37) kind 3: lli ('-28.68714, 3.370196'), H (False) or wrap (False): lli ('-28.68714, 3.370196'): outside on SE  FAILED, KNOWN, expected 24.184\n    test 2062 GeoidPGM('egm84-15.pgm').height(-15.008, 117.45) kind 3: lli ('-15.007944, 117.449536'), H (False) or wrap (False): lli ('-15.007944, 117.449536'): outside on SE  FAILED, KNOWN, expected 6.142\n    test 2063 GeoidPGM('egm84-15.pgm').height(40.71, 144.095) kind 3: lli ('40.710024, 144.095126'), H (False) or wrap (False): lli ('40.710024, 144.095126'): outside on E  FAILED, KNOWN, expected 11.693\n    test 2064 GeoidPGM('egm84-15.pgm').height(20.823, -173.611) kind 3: lli ('20.823096, -173.610797'), H (False) or wrap (False): lli ('20.823096, -173.610797'): outside on SW  FAILED, KNOWN, expected 6.840\n    test 2065 GeoidPGM('egm84-15.pgm').height(16.776, -3.009) kind 3: lli ('16.776, -3.009'), H (False) or wrap (False): lli ('16.776, -3.009'): outside on SE  FAILED, KNOWN, expected 31.298\n    test 2066 GeoidPGM('egm84-15.pgm').height(41.0, -95.0) kind 3: -31.953  FAILED, KNOWN, expected -31.952\n    test 2067 GeoidPGM('egm84-15.pgm').height(49.0, -120.5) kind 3: -14.946\n    test 2068 GeoidPGM('egm84-15.pgm').height(49.0, -103.5) kind 3: -17.031  FAILED, KNOWN, expected -17.032\n    test 2069 GeoidPGM('egm84-15.pgm').height(49.0, -86.5) kind 3: -37.962\n    test 2070 GeoidPGM('egm84-15.pgm').height(49.0, -69.5) kind 3: -26.493  FAILED, KNOWN, expected -26.492\n    test 2071 GeoidPGM('egm84-15.pgm').height(33.0, -120.5) kind 3: -39.543\n    test 2072 GeoidPGM('egm84-15.pgm').height(33.0, -103.5) kind 3: -22.557  FAILED, KNOWN, expected -22.556\n    test 2073 GeoidPGM('egm84-15.pgm').height(33.0, -86.5) kind 3: -28.710\n    test 2074 GeoidPGM('egm84-15.pgm').height(33.0, -69.5) kind 3: -46.590\n\n    test 2075 GeoidPGM('egm84-15.pgm').height() kind 3, eps max (in 0 FAILED): 0.001055\n    test 2076 GeoidPGM('egm84-15.pgm').height() kind 3, eps mean (of 15 total): 0.000534\n    test 2077 GeoidPGM('egm84-15.pgm').height() kind 3, eps stdev (of 15 total): 0.000293\n    test 2078 GeoidPGM('egm84-15.pgm').highest(): 44.0, -110.25, -6.927\n    test 2079 GeoidPGM('egm84-15.pgm').lowerleft(): 25.0, -125.0, -45.237\n    test 2080 GeoidPGM('egm84-15.pgm').lowerright(): 25.0, -64.75, -49.503\n    test 2081 GeoidPGM('egm84-15.pgm').lowest(): 26.0, -69.5, -52.293\n    test 2082 GeoidPGM('egm84-15.pgm').upperleft(): 55.0, -125.0, -11.157\n    test 2083 GeoidPGM('egm84-15.pgm').upperright(): 55.0, -64.75, -15.43\n    test 2084 GeoidPGM('egm84-15.pgm').dtype: (\"dtype('float64')\",)\n    test 2085 GeoidPGM('egm84-15.pgm').knots: ('29161',)\n    test 2086 GeoidPGM('egm84-15.pgm').mean: ('-29.223',)\n    test 2087 GeoidPGM('egm84-15.pgm').nBytes: ('233288',)\n    test 2088 GeoidPGM('egm84-15.pgm').smooth: ('0',)\n    test 2089 GeoidPGM('egm84-15.pgm').stdev: ('9.692',)\n    test 2090 GeoidPGM('egm84-15.pgm')._g2ll2(180, 360): (180, 0.0)\n    test 2091 GeoidPGM('egm84-15.pgm')._ll2g2(180, 360): (180, 720.0)\n    test 2092 GeoidPGM('egm84-15.pgm')._swne: (-10.0, -100.0, 10.0, 100.0)\n    test 2093 GeoidPGM('egm84-15.pgm')._swne: (-10.0, -100.0, 10.0, 100.0)\n    test 2094 GeoidPGM('egm84-15.pgm').toStr: GeoidPGM('egm84-15.pgm'): lowerleft(25.0, -125.0, -45.237), upperright(55.0, -64.75, -15.43), center(40.0, -94.875, -33.654), highest(44.0, -110.25, -6.927), lowest(26.0, -69.5, -52.293)\n\n    test 2095 closed: True\n    test 2096 copy(<class 'type'>): (<class 'pygeodesy.geoids.GeoidPGM'>, True)\n    test 2097 GeoidPGM.copy(): (<class 'pygeodesy.geoids.GeoidPGM'>, True)\n    test 2098 GeoidG2012B('g2012bu0.bin').height(41.0, -95.0) kind 3: -30.312\n    test 2099 GeoidG2012B('g2012bu0.bin').height(49.0, -120.5) kind 3: -16.112\n    test 2100 GeoidG2012B('g2012bu0.bin').height(49.0, -103.5) kind 3: -18.955\n    test 2101 GeoidG2012B('g2012bu0.bin').height(49.0, -86.5) kind 3: -37.584\n    test 2102 GeoidG2012B('g2012bu0.bin').height(49.0, -69.5) kind 3: -25.867\n    test 2103 GeoidG2012B('g2012bu0.bin').height(33.0, -120.5) kind 3: -39.554\n    test 2104 GeoidG2012B('g2012bu0.bin').height(33.0, -103.5) kind 3: -21.917\n    test 2105 GeoidG2012B('g2012bu0.bin').height(33.0, -86.5) kind 3: -29.001\n    test 2106 GeoidG2012B('g2012bu0.bin').height(33.0, -69.5) kind 3: -46.725\n\n    test 2107 GeoidG2012B('g2012bu0.bin').height() kind 3, eps max (in 0 FAILED): 0.000400\n    test 2108 GeoidG2012B('g2012bu0.bin').height() kind 3, eps mean (of 9 total): 0.000222\n    test 2109 GeoidG2012B('g2012bu0.bin').height() kind 3, eps stdev (of 9 total): 0.000139\n    test 2110 GeoidG2012B('g2012bu0.bin').highest(): 58.0, -60.0, 3.31\n    test 2111 GeoidG2012B('g2012bu0.bin').lowerleft(): 24.0, -130.0, -39.727\n    test 2112 GeoidG2012B('g2012bu0.bin').lowerright(): 24.0, -59.983, -47.981\n    test 2113 GeoidG2012B('g2012bu0.bin').lowest(): 25.9, -69.85, -50.709\n    test 2114 GeoidG2012B('g2012bu0.bin').upperleft(): 58.0, -130.0, -1.095\n    test 2115 GeoidG2012B('g2012bu0.bin').upperright(): 58.0, -59.983, 3.38\n    test 2116 GeoidG2012B('g2012bu0.bin').dtype: (\"dtype('>f4')\",)\n    test 2117 GeoidG2012B('g2012bu0.bin').knots: ('8574241',)\n    test 2118 GeoidG2012B('g2012bu0.bin').mean: ('-29.481',)\n    test 2119 GeoidG2012B('g2012bu0.bin').nBytes: ('34296964',)\n    test 2120 GeoidG2012B('g2012bu0.bin').smooth: ('0',)\n    test 2121 GeoidG2012B('g2012bu0.bin').stdev: ('10.063',)\n    test 2122 GeoidG2012B('g2012bu0.bin')._g2ll2(180, 360): (180, 360)\n    test 2123 GeoidG2012B('g2012bu0.bin')._ll2g2(180, 360): (180, 360)\n    test 2124 GeoidG2012B('g2012bu0.bin')._swne: (-10.0, -100.0, 10.0, 100.0)\n    test 2125 GeoidG2012B('g2012bu0.bin')._swne: (-10.0, -100.0, 10.0, 100.0)\n    test 2126 GeoidG2012B('g2012bu0.bin').toStr: GeoidG2012B('g2012bu0.bin'): lowerleft(24.0, -130.0, -39.727), upperright(58.0, -59.983, 3.38), center(41.0, -94.992, -30.328), highest(58.0, -60.0, 3.31), lowest(25.9, -69.85, -50.709)\n\n    test 2127 closed: True\n    test 2128 copy(<class 'type'>): (<class 'pygeodesy.geoids.GeoidG2012B'>, True)\n    test 2129 GeoidG2012B.copy(): (<class 'pygeodesy.geoids.GeoidG2012B'>, True)\n    test 2130 GeoidEGM96('WW15MGH.GRD').height(41.0, -95.0) kind 3: -30.262  FAILED, KNOWN, expected -30.312\n    test 2131 GeoidEGM96('WW15MGH.GRD').height(49.0, -120.5) kind 3: -15.984  FAILED, KNOWN, expected -16.112\n    test 2132 GeoidEGM96('WW15MGH.GRD').height(49.0, -103.5) kind 3: -18.635  FAILED, KNOWN, expected -18.955\n    test 2133 GeoidEGM96('WW15MGH.GRD').height(49.0, -86.5) kind 3: -37.748  FAILED, KNOWN, expected -37.584\n    test 2134 GeoidEGM96('WW15MGH.GRD').height(49.0, -69.5) kind 3: -26.691  FAILED, KNOWN, expected -25.867\n    test 2135 GeoidEGM96('WW15MGH.GRD').height(33.0, -120.5) kind 3: -39.562  FAILED, KNOWN, expected -39.554\n    test 2136 GeoidEGM96('WW15MGH.GRD').height(33.0, -103.5) kind 3: -22.562  FAILED, KNOWN, expected -21.917\n    test 2137 GeoidEGM96('WW15MGH.GRD').height(33.0, -86.5) kind 3: -30.013  FAILED, KNOWN, expected -29.001\n    test 2138 GeoidEGM96('WW15MGH.GRD').height(33.0, -69.5) kind 3: -48.038  FAILED, KNOWN, expected -46.725\n\n    test 2139 GeoidEGM96('WW15MGH.GRD').height() kind 3, eps max (in 0 FAILED): 1.313000\n    test 2140 GeoidEGM96('WW15MGH.GRD').height() kind 3, eps mean (of 9 total): 0.496000\n    test 2141 GeoidEGM96('WW15MGH.GRD').height() kind 3, eps stdev (of 9 total): 0.444374\n    test 2142 GeoidEGM96('WW15MGH.GRD').highest(): -8.25, -32.75, 85.391\n    test 2143 GeoidEGM96('WW15MGH.GRD').lowerleft(): -90.0, -180.0, -29.534\n    test 2144 GeoidEGM96('WW15MGH.GRD').lowerright(): -90.0, 180.25, -29.534\n    test 2145 GeoidEGM96('WW15MGH.GRD').lowest(): 4.75, -101.25, -106.991\n    test 2146 GeoidEGM96('WW15MGH.GRD').upperleft(): 90.0, -180.0, 13.606\n    test 2147 GeoidEGM96('WW15MGH.GRD').upperright(): 90.0, 180.25, 13.606\n    test 2148 GeoidEGM96('WW15MGH.GRD').dtype: (\"dtype('float64')\",)\n    test 2149 GeoidEGM96('WW15MGH.GRD').knots: ('1038961',)\n    test 2150 GeoidEGM96('WW15MGH.GRD').mean: ('-1.426',)\n    test 2151 GeoidEGM96('WW15MGH.GRD').nBytes: ('8311688',)\n    test 2152 GeoidEGM96('WW15MGH.GRD').smooth: ('0',)\n    test 2153 GeoidEGM96('WW15MGH.GRD').stdev: ('29.223',)\n    test 2154 GeoidEGM96('WW15MGH.GRD')._g2ll2(180, 360): (-180, 0.0)\n    test 2155 GeoidEGM96('WW15MGH.GRD')._ll2g2(180, 360): (-180, 360)\n    test 2156 GeoidEGM96('WW15MGH.GRD')._swne: (-10.0, -100.0, 10.0, 100.0)\n    test 2157 GeoidEGM96('WW15MGH.GRD')._swne: (-10.0, -100.0, 10.0, 100.0)\n    test 2158 GeoidEGM96('WW15MGH.GRD').toStr: GeoidEGM96('WW15MGH.GRD'): lowerleft(-90.0, -180.0, -29.534), upperright(90.0, 180.25, 13.606), center(0.0, 0.125, 17.125), highest(-8.25, -32.75, 85.391), lowest(4.75, -101.25, -106.991)\n\n    test 2159 closed: True\n    test 2160 copy(<class 'type'>): (<class 'pygeodesy.geoids.GeoidEGM96'>, True)\n    test 2161 GeoidEGM96.copy(): (<class 'pygeodesy.geoids.GeoidEGM96'>, True)\n\n    1394 of 2161 testGeoids.py tests (64.5%) FAILED, ALL KNOWN (pygeodesy 26.3.26 Python 3.13.12 64bit arm64 coverage 7.10.7 geographiclib 2.1 numpy 2.3.3 scipy 1.16.2 Math 2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 macOS 26.3.1 isLazy 1 -W  default) 38.630 sec\nrunning /Library/Framewo....n3.13 -W default ~/PyGeodesy/test/testGreatCircle.py\n\n    testing testGreatCircle.py 23.05.05 isLazy=1\n\n    testGreatCircle(pygeodesy.sphericalNvector, 25.05.27)\n    test 1 InitialBearingSameLocations: 0.0\n    test 2 InitialBearingEqualLocations: 0.0\n    test 3 FinalBearingSameLocations: 180.0\n    test 4 FinalBearingEqualLocations: 180.0\n    test 5 FinalBearingCrossError: point (LatLon(43°55′51.28″N, 072°03′13.72″W)) or other (LatLon(43°55′51.28″N, 072°03′13.72″W)): coincident\n    test 6 DistanceSameLocations: 0.0\n    test 7 DistanceEqualLocations: 0.0\n    test 8 DistanceEiffelToVersailles: 14084.300096  FAILED, KNOWN, expected 14084.280705\n    test 9 DistanceVersaillesToEiffel: 14084.300096  FAILED, KNOWN, expected 14084.280705\n    test 10 InitialBearingEiffelToVersailles: 245.13460297\n    test 11 InitialBearingEiffelToVersailles(DMS): 245°08′04.5707″\n    test 12 InitialBearingVersaillesToEiffel: 65.003253951\n    test 13 InitialBearingVersaillesToEiffel(DMS): 65°00′11.7142″\n    test 14 FinalBearingEiffelToVersailles: 245.00325395\n    test 15 FinalBearingEiffelToVersailles(DMS): 245°00′11.7142″\n    test 16 FinalBearingVersaillesToEiffel: 65.134602969\n    test 17 FinalBearingVersaillesToEiffel(DMS): 65°08′04.5707″\n    test 18 GenerateLocationVersailles: 48.804766°N, 002.120339°E\n    test 19 GenerateLocationEiffel: 48.858158°N, 002.294825°E\n    test 20 MidpointEiffelToVersailles: 48.831495°N, 002.207536°E\n    test 21 MidpointEiffelToVersailles(DMS): 48°49′53.3817″N, 002°12′27.1279″E\n    test 22 MidpointEiffelToVersailles(m): 7042.15004788  FAILED, KNOWN, expected 7042.15974330\n    test 23 MidpointVersaillesToEiffel: 48.831495°N, 002.207536°E  FAILED, KNOWN, expected 48.831495°N, 002.207535°E\n    test 24 MidpointVersaillesToEiffel(DMS): 48°49′53.3817″N, 002°12′27.1279″E\n    test 25 MidpointVersaillesToEiffel(m): 7042.15004788  FAILED, KNOWN, expected 7042.15974330\n    test 26 Intersection: 48.83569095°N, 002.221252031°E\n    test 27 Intersection: 48.8356909498836°N, 002.2212520313074°E\n    test 28 CrossTrackDistance200m+90°: 200.0\n    test 29 CrossTrackDistance200m+270°: -200.0\n    test 30 CrossTrackDistanceCloseToZero: 0.0000000\n\n    testGreatCircle(pygeodesy.sphericalTrigonometry, 25.08.31)\n    test 31 InitialBearingSameLocations: 0.0\n    test 32 InitialBearingEqualLocations: 0.0\n    test 33 FinalBearingSameLocations: 180.0\n    test 34 FinalBearingEqualLocations: 180.0\n    test 35 FinalBearingCrossError: point (LatLon(43°55′51.28″N, 072°03′13.72″W)), other (LatLon(43°55′51.28″N, 072°03′13.72″W)) or wrap (False): coincident\n    test 36 DistanceSameLocations: 0.0\n    test 37 DistanceEqualLocations: 0.0\n    test 38 DistanceEiffelToVersailles: 14084.300096  FAILED, KNOWN, expected 14084.280705\n    test 39 DistanceVersaillesToEiffel: 14084.300096  FAILED, KNOWN, expected 14084.280705\n    test 40 InitialBearingEiffelToVersailles: 245.13460297\n    test 41 InitialBearingEiffelToVersailles(DMS): 245°08′04.5707″\n    test 42 InitialBearingVersaillesToEiffel: 65.003253951\n    test 43 InitialBearingVersaillesToEiffel(DMS): 65°00′11.7142″\n    test 44 FinalBearingEiffelToVersailles: 245.00325395\n    test 45 FinalBearingEiffelToVersailles(DMS): 245°00′11.7142″\n    test 46 FinalBearingVersaillesToEiffel: 65.134602969\n    test 47 FinalBearingVersaillesToEiffel(DMS): 65°08′04.5707″\n    test 48 GenerateLocationVersailles: 48.804766°N, 002.120339°E\n    test 49 GenerateLocationEiffel: 48.858158°N, 002.294825°E\n    test 50 MidpointEiffelToVersailles: 48.831495°N, 002.207536°E\n    test 51 MidpointEiffelToVersailles(DMS): 48°49′53.3817″N, 002°12′27.1279″E\n    test 52 MidpointEiffelToVersailles(m): 7042.15004788  FAILED, KNOWN, expected 7042.15974330\n    test 53 MidpointVersaillesToEiffel: 48.831495°N, 002.207536°E  FAILED, KNOWN, expected 48.831495°N, 002.207535°E\n    test 54 MidpointVersaillesToEiffel(DMS): 48°49′53.3817″N, 002°12′27.1279″E\n    test 55 MidpointVersaillesToEiffel(m): 7042.15004788  FAILED, KNOWN, expected 7042.15974330\n    test 56 Intersection: 48.83569095°N, 002.221252031°E\n    test 57 Intersection: 48.8356909498836°N, 002.2212520313074°E\n    test 58 CrossTrackDistance200m+90°: 200.0\n    test 59 CrossTrackDistance200m+270°: -200.0\n    test 60 CrossTrackDistanceCloseToZero: 0.0000000\n\n    10 of 60 testGreatCircle.py tests (16.7%) FAILED, ALL KNOWN (pygeodesy 26.3.26 Python 3.13.12 64bit arm64 coverage 7.10.7 geographiclib 2.1 numpy 2.3.3 scipy 1.16.2 Math 2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 macOS 26.3.1 isLazy 1 -W  default) 25.575 ms\nrunning /Library/Framewo....n3.13 -W default ~/PyGeodesy/test/testHausdorff.py\n./pygeodesy/hausdorff.py:605: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  self._func = self.datum.ellipsoid.geodesic.Inverse1\n./pygeodesy/ellipsoidalKarney.py:94: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return self.datum.ellipsoid.geodesic\n\n    testing testHausdorff.py 24.12.31 isLazy=1\n    test 1 randomrange[0]: ()\n    test 2 randomrange[1]: (0,)\n    test 3 randomrange[2]: (0, 1)\n    test 4 randomrange[8]: (1, 4, 2, 6, 0, 3, 5, 7)\n    test 5 randomrange[32]: (11, 6, 30, 28, 21, 9, 13, 26, 4, 29, 8, 27, 31, 15, 1, 24, 0, 25, 22, 2, 20, 17, 3, 23, 12, 19, 18, 14, 7, 10, 16, 5)\n    test 6 randomrange[128]: (122, 62, 14, 24, 65, 57, 75, 84, 42, 32, 82, 43, 13, 34, 53, 104, 71, 22, 76, 15, 108, 113, 52, 79, 112, 54, 90, 106, 10, 87, 115, 123, 119, 120, 48, 61, 39, 19, 31, 94, 124, 98, 96, 3, 101, 25, 118, 30, 99, 105, 92, 66, 126, 114, 23, 117, 72, 67, 73, 64, 68, 50, 5, 74, 51, 9, 17, 21, 80, 95, 41, 37, 2, 11, 55, 127, 38, 85, 81, 109, 36, 121, 6, 102, 12, 1, 93, 91, 83, 16, 116, 103, 70, 56, 89, 35, 88, 86, 27, 20, 44, 110, 63, 28, 8, 4, 18, 45, 78, 100, 60, 125, 58, 33, 0, 7, 40, 59, 46, 69, 26, 77, 107, 47, 49, 97, 111, 29)\n    test 7 HausdorffDegrees_ (degrees): (40.0, 22, 6, 90, 18.16111)\n    test 8 HausdorffDegrees_ (degrees): (48.0, 38, 36, 150, 17.30667)\n    test 9 HausdorffDegrees_ (degrees): (40.0, 22, 6, 90, 18.16111)\n    test 10 HausdorffDegrees_ (degrees): (48.0, 38, 36, 150, 17.30667)\n    test 11 HausdorffDegrees_ (degrees): (40.0, 22, 6, 90, None)\n    test 12 HausdorffDegrees_ (degrees): (48.0, 38, 36, 150, None)\n    test 13 HausdorffDegrees_ (degrees): (40.0, 22, 6, 90, None)\n    test 14 HausdorffDegrees_ (degrees): (48.0, 38, 36, 150, None)\n    test 15 copy(<class 'type'>): (<class '__main__.HausdorffDegrees_'>, True)\n    test 16 HausdorffDegrees_.copy(): (<class '__main__.HausdorffDegrees_'>, True)\n    test 17 HausdorffRadians_ (radians): (0.69813, 22, 6, 90, 0.31697)\n    test 18 HausdorffRadians_ (radians): (0.83776, 38, 36, 150, 0.30206)\n    test 19 HausdorffRadians_ (radians): (0.69813, 22, 6, 90, 0.31697)\n    test 20 HausdorffRadians_ (radians): (0.83776, 38, 36, 150, 0.30206)\n    test 21 HausdorffRadians_ (radians): (0.69813, 22, 6, 90, None)\n    test 22 HausdorffRadians_ (radians): (0.83776, 38, 36, 150, None)\n    test 23 HausdorffRadians_ (radians): (0.69813, 22, 6, 90, None)\n    test 24 HausdorffRadians_ (radians): (0.83776, 38, 36, 150, None)\n    test 25 copy(<class 'type'>): (<class '__main__.HausdorffRadians_'>, True)\n    test 26 HausdorffRadians_.copy(): (<class '__main__.HausdorffRadians_'>, True)\n    test 27 HausdorffCosineLaw (meter): (0.50097, 35, 3, 90, 0.212)\n    test 28 HausdorffCosineLaw (meter): (0.50097, 35, 3, 150, 0.20099)\n    test 29 HausdorffCosineLaw (meter): (0.50097, 35, 3, 90, 0.212)\n    test 30 HausdorffCosineLaw (meter): (0.50097, 35, 3, 150, 0.20099)\n    test 31 HausdorffCosineLaw (meter): (0.50097, 35, 3, 90, None)\n    test 32 HausdorffCosineLaw (meter): (0.50097, 35, 3, 150, None)\n    test 33 HausdorffCosineLaw (meter): (0.50097, 35, 3, 90, None)\n    test 34 HausdorffCosineLaw (meter): (0.50097, 35, 3, 150, None)\n    test 35 copy(<class 'type'>): (<class 'pygeodesy.hausdorff.HausdorffCosineLaw'>, True)\n    test 36 HausdorffCosineLaw.copy(): (<class 'pygeodesy.hausdorff.HausdorffCosineLaw'>, True)\n    test 37 HausdorffCosineLaw (meter): (0.501, 35, 3, 90, 0.21184)\n    test 38 HausdorffCosineLaw (meter): (0.501, 35, 3, 150, 0.20084)\n    test 39 HausdorffCosineLaw (meter): (0.501, 35, 3, 90, 0.21184)\n    test 40 HausdorffCosineLaw (meter): (0.501, 35, 3, 150, 0.20084)\n    test 41 HausdorffCosineLaw (meter): (0.501, 35, 3, 90, None)\n    test 42 HausdorffCosineLaw (meter): (0.501, 35, 3, 150, None)\n    test 43 HausdorffCosineLaw (meter): (0.501, 35, 3, 90, None)\n    test 44 HausdorffCosineLaw (meter): (0.501, 35, 3, 150, None)\n    test 45 copy(<class 'type'>): (<class 'pygeodesy.hausdorff.HausdorffCosineLaw'>, True)\n    test 46 HausdorffCosineLaw.copy(): (<class 'pygeodesy.hausdorff.HausdorffCosineLaw'>, True)\n    test 47 HausdorffCosineLaw (meter): (0.501, 35, 3, 90, 0.21184)\n    test 48 HausdorffCosineLaw (meter): (0.501, 35, 3, 150, 0.20084)\n    test 49 HausdorffCosineLaw (meter): (0.501, 35, 3, 90, 0.21184)\n    test 50 HausdorffCosineLaw (meter): (0.501, 35, 3, 150, 0.20084)\n    test 51 HausdorffCosineLaw (meter): (0.501, 35, 3, 90, None)\n    test 52 HausdorffCosineLaw (meter): (0.501, 35, 3, 150, None)\n    test 53 HausdorffCosineLaw (meter): (0.501, 35, 3, 90, None)\n    test 54 HausdorffCosineLaw (meter): (0.501, 35, 3, 150, None)\n    test 55 copy(<class 'type'>): (<class 'pygeodesy.hausdorff.HausdorffCosineLaw'>, True)\n    test 56 HausdorffCosineLaw.copy(): (<class 'pygeodesy.hausdorff.HausdorffCosineLaw'>, True)\n    test 57 HausdorffEquirectangular (degrees2): (0.25113, 35, 3, 90, 0.05965)\n    test 58 HausdorffEquirectangular (degrees2): (0.25113, 35, 3, 150, 0.05532)\n    test 59 HausdorffEquirectangular (degrees2): (0.25113, 35, 3, 90, 0.05965)\n    test 60 HausdorffEquirectangular (degrees2): (0.25113, 35, 3, 150, 0.05532)\n    test 61 HausdorffEquirectangular (degrees2): (0.25113, 35, 3, 90, None)\n    test 62 HausdorffEquirectangular (degrees2): (0.25113, 35, 3, 150, None)\n    test 63 HausdorffEquirectangular (degrees2): (0.25113, 35, 3, 90, None)\n    test 64 HausdorffEquirectangular (degrees2): (0.25113, 35, 3, 150, None)\n    test 65 copy(<class 'type'>): (<class 'pygeodesy.hausdorff.HausdorffEquirectangular'>, True)\n    test 66 HausdorffEquirectangular.copy(): (<class 'pygeodesy.hausdorff.HausdorffEquirectangular'>, True)\n    test 67 HausdorffEuclidean (meter): (0.52803, 56, 51, 90, 0.22571)\n    test 68 HausdorffEuclidean (meter): (0.52803, 56, 51, 150, 0.21579)\n    test 69 HausdorffEuclidean (meter): (0.52803, 56, 51, 90, 0.22571)\n    test 70 HausdorffEuclidean (meter): (0.52803, 56, 51, 150, 0.21579)\n    test 71 HausdorffEuclidean (meter): (0.52803, 56, 51, 90, None)\n    test 72 HausdorffEuclidean (meter): (0.52803, 56, 51, 150, None)\n    test 73 HausdorffEuclidean (meter): (0.52803, 56, 51, 90, None)\n    test 74 HausdorffEuclidean (meter): (0.52803, 56, 51, 150, None)\n    test 75 copy(<class 'type'>): (<class 'pygeodesy.hausdorff.HausdorffEuclidean'>, True)\n    test 76 HausdorffEuclidean.copy(): (<class 'pygeodesy.hausdorff.HausdorffEuclidean'>, True)\n    test 77 HausdorffFlatLocal (radians2): (0.25116, 35, 3, 90, 0.05951)\n    test 78 HausdorffFlatLocal (radians2): (0.25116, 35, 3, 150, 0.0552)\n    test 79 HausdorffFlatLocal (radians2): (0.25116, 35, 3, 90, 0.05951)\n    test 80 HausdorffFlatLocal (radians2): (0.25116, 35, 3, 150, 0.0552)\n    test 81 HausdorffFlatLocal (radians2): (0.25116, 35, 3, 90, None)\n    test 82 HausdorffFlatLocal (radians2): (0.25116, 35, 3, 150, None)\n    test 83 HausdorffFlatLocal (radians2): (0.25116, 35, 3, 90, None)\n    test 84 HausdorffFlatLocal (radians2): (0.25116, 35, 3, 150, None)\n    test 85 copy(<class 'type'>): (<class 'pygeodesy.hausdorff.HausdorffFlatLocal'>, True)\n    test 86 HausdorffFlatLocal.copy(): (<class 'pygeodesy.hausdorff.HausdorffFlatLocal'>, True)\n    test 87 HausdorffFlatPolar (meter): (0.69043, 4, 31, 90, 0.22286)\n    test 88 HausdorffFlatPolar (meter): (0.69043, 4, 31, 150, 0.21318)\n    test 89 HausdorffFlatPolar (meter): (0.69043, 4, 31, 90, 0.22286)\n    test 90 HausdorffFlatPolar (meter): (0.69043, 4, 31, 150, 0.21318)\n    test 91 HausdorffFlatPolar (meter): (0.69043, 4, 31, 90, None)\n    test 92 HausdorffFlatPolar (meter): (0.69043, 4, 31, 150, None)\n    test 93 HausdorffFlatPolar (meter): (0.69043, 4, 31, 90, None)\n    test 94 HausdorffFlatPolar (meter): (0.69043, 4, 31, 150, None)\n    test 95 copy(<class 'type'>): (<class 'pygeodesy.hausdorff.HausdorffFlatPolar'>, True)\n    test 96 HausdorffFlatPolar.copy(): (<class 'pygeodesy.hausdorff.HausdorffFlatPolar'>, True)\n    test 97 HausdorffHaversine (meter): (0.50097, 35, 3, 90, 0.212)\n    test 98 HausdorffHaversine (meter): (0.50097, 35, 3, 150, 0.20099)\n    test 99 HausdorffHaversine (meter): (0.50097, 35, 3, 90, 0.212)\n    test 100 HausdorffHaversine (meter): (0.50097, 35, 3, 150, 0.20099)\n    test 101 HausdorffHaversine (meter): (0.50097, 35, 3, 90, None)\n    test 102 HausdorffHaversine (meter): (0.50097, 35, 3, 150, None)\n    test 103 HausdorffHaversine (meter): (0.50097, 35, 3, 90, None)\n    test 104 HausdorffHaversine (meter): (0.50097, 35, 3, 150, None)\n    test 105 copy(<class 'type'>): (<class 'pygeodesy.hausdorff.HausdorffHaversine'>, True)\n    test 106 HausdorffHaversine.copy(): (<class 'pygeodesy.hausdorff.HausdorffHaversine'>, True)\n    test 107 HausdorffHubeny (radians2): (0.25116, 35, 3, 90, 0.05951)\n    test 108 HausdorffHubeny (radians2): (0.25116, 35, 3, 150, 0.0552)\n    test 109 HausdorffHubeny (radians2): (0.25116, 35, 3, 90, 0.05951)\n    test 110 HausdorffHubeny (radians2): (0.25116, 35, 3, 150, 0.0552)\n    test 111 HausdorffHubeny (radians2): (0.25116, 35, 3, 90, None)\n    test 112 HausdorffHubeny (radians2): (0.25116, 35, 3, 150, None)\n    test 113 HausdorffHubeny (radians2): (0.25116, 35, 3, 90, None)\n    test 114 HausdorffHubeny (radians2): (0.25116, 35, 3, 150, None)\n    test 115 copy(<class 'type'>): (<class 'pygeodesy.hausdorff.HausdorffHubeny'>, True)\n    test 116 HausdorffHubeny.copy(): (<class 'pygeodesy.hausdorff.HausdorffHubeny'>, True)\n    test 117 HausdorffThomas (meter): (0.501, 35, 3, 90, 0.21184)\n    test 118 HausdorffThomas (meter): (0.501, 35, 3, 150, 0.20084)\n    test 119 HausdorffThomas (meter): (0.501, 35, 3, 90, 0.21184)\n    test 120 HausdorffThomas (meter): (0.501, 35, 3, 150, 0.20084)\n    test 121 HausdorffThomas (meter): (0.501, 35, 3, 90, None)\n    test 122 HausdorffThomas (meter): (0.501, 35, 3, 150, None)\n    test 123 HausdorffThomas (meter): (0.501, 35, 3, 90, None)\n    test 124 HausdorffThomas (meter): (0.501, 35, 3, 150, None)\n    test 125 copy(<class 'type'>): (<class 'pygeodesy.hausdorff.HausdorffThomas'>, True)\n    test 126 HausdorffThomas.copy(): (<class 'pygeodesy.hausdorff.HausdorffThomas'>, True)\n    test 127 HausdorffVincentys (meter): (0.50097, 35, 3, 90, 0.212)\n    test 128 HausdorffVincentys (meter): (0.50097, 35, 3, 150, 0.20099)\n    test 129 HausdorffVincentys (meter): (0.50097, 35, 3, 90, 0.212)\n    test 130 HausdorffVincentys (meter): (0.50097, 35, 3, 150, 0.20099)\n    test 131 HausdorffVincentys (meter): (0.50097, 35, 3, 90, None)\n    test 132 HausdorffVincentys (meter): (0.50097, 35, 3, 150, None)\n    test 133 HausdorffVincentys (meter): (0.50097, 35, 3, 90, None)\n    test 134 HausdorffVincentys (meter): (0.50097, 35, 3, 150, None)\n    test 135 copy(<class 'type'>): (<class 'pygeodesy.hausdorff.HausdorffVincentys'>, True)\n    test 136 HausdorffVincentys.copy(): (<class 'pygeodesy.hausdorff.HausdorffVincentys'>, True)\n    test 137 HausdorffKarney (degrees): (28.79903, 35, 3, 90, 12.16138)\n    test 138 HausdorffKarney (degrees): (28.79903, 35, 3, 150, 11.53021)\n    test 139 HausdorffKarney (degrees): (28.79903, 35, 3, 90, 12.16138)\n    test 140 HausdorffKarney (degrees): (28.79903, 35, 3, 150, 11.53021)\n    test 141 HausdorffKarney (degrees): (28.79903, 35, 3, 90, None)\n    test 142 HausdorffKarney (degrees): (28.79903, 35, 3, 150, None)\n    test 143 HausdorffKarney (degrees): (28.79903, 35, 3, 90, None)\n    test 144 HausdorffKarney (degrees): (28.79903, 35, 3, 150, None)\n    test 145 copy(<class 'type'>): (<class 'pygeodesy.hausdorff.HausdorffKarney'>, True)\n    test 146 HausdorffKarney.copy(): (<class 'pygeodesy.hausdorff.HausdorffKarney'>, True)\n    test 147 hausdorff_: (40.0, 22, 6, 90, 18.16111)\n    test 148 hausdorff_: (48.0, 38, 36, 150, 17.30667)\n    test 149 hausdorff_: (40.0, 22, 6, 90, 18.16111)\n    test 150 hausdorff_: (48.0, 38, 36, 150, 17.30667)\n    test 151 hausdorff_: (40.0, 22, 6, 90, None)\n    test 152 hausdorff_: (48.0, 38, 36, 150, None)\n    test 153 hausdorff_: (40.0, 22, 6, 90, None)\n    test 154 hausdorff_: (48.0, 38, 36, 150, None)\n    test 155 HausdorffDistanceTo (meter): (3195418.34044, 35, 3, 90, 1351164.35982)  FAILED, KNOWN, expected (3195418.34044, 35, 3, 90, 1351164.35981)\n    test 156 HausdorffDistanceTo (meter): (3195418.34044, 35, 3, 150, 1280992.80341)\n    test 157 HausdorffDistanceTo (meter): (3195418.34044, 35, 3, 90, 1351164.35982)  FAILED, KNOWN, expected (3195418.34044, 35, 3, 90, 1351164.35981)\n    test 158 HausdorffDistanceTo (meter): (3195418.34044, 35, 3, 150, 1280992.80341)\n    test 159 HausdorffDistanceTo (meter): (3195418.34044, 35, 3, 90, None)\n    test 160 HausdorffDistanceTo (meter): (3195418.34044, 35, 3, 150, None)\n    test 161 HausdorffDistanceTo (meter): (3195418.34044, 35, 3, 90, None)\n    test 162 HausdorffDistanceTo (meter): (3195418.34044, 35, 3, 150, None)\n    test 163 copy(<class 'type'>): (<class 'pygeodesy.hausdorff.HausdorffDistanceTo'>, True)\n    test 164 HausdorffDistanceTo.copy(): (<class 'pygeodesy.hausdorff.HausdorffDistanceTo'>, True)\n    test 165 HausdorffDistanceTo (meter): (3195418.34044, 35, 3, 90, 1351164.35981)\n    test 166 HausdorffDistanceTo (meter): (3195418.34044, 35, 3, 150, 1280992.80341)\n    test 167 HausdorffDistanceTo (meter): (3195418.34044, 35, 3, 90, 1351164.35981)\n    test 168 HausdorffDistanceTo (meter): (3195418.34044, 35, 3, 150, 1280992.80341)\n    test 169 HausdorffDistanceTo (meter): (3195418.34044, 35, 3, 90, None)\n    test 170 HausdorffDistanceTo (meter): (3195418.34044, 35, 3, 150, None)\n    test 171 HausdorffDistanceTo (meter): (3195418.34044, 35, 3, 90, None)\n    test 172 HausdorffDistanceTo (meter): (3195418.34044, 35, 3, 150, None)\n    test 173 copy(<class 'type'>): (<class 'pygeodesy.hausdorff.HausdorffDistanceTo'>, True)\n    test 174 HausdorffDistanceTo.copy(): (<class 'pygeodesy.hausdorff.HausdorffDistanceTo'>, True)\n    test 175 HausdorffDistanceTo (meter): (3191685.70841, 35, 3, 90, 1350684.04012)\n    test 176 HausdorffDistanceTo (meter): (3191685.70841, 35, 3, 150, 1280478.58707)\n    test 177 HausdorffDistanceTo (meter): (3191685.70841, 35, 3, 90, 1350684.04012)\n    test 178 HausdorffDistanceTo (meter): (3191685.70841, 35, 3, 150, 1280478.58707)\n    test 179 HausdorffDistanceTo (meter): (3191685.70841, 35, 3, 90, None)\n    test 180 HausdorffDistanceTo (meter): (3191685.70841, 35, 3, 150, None)\n    test 181 HausdorffDistanceTo (meter): (3191685.70841, 35, 3, 90, None)\n    test 182 HausdorffDistanceTo (meter): (3191685.70841, 35, 3, 150, None)\n    test 183 copy(<class 'type'>): (<class 'pygeodesy.hausdorff.HausdorffDistanceTo'>, True)\n    test 184 HausdorffDistanceTo.copy(): (<class 'pygeodesy.hausdorff.HausdorffDistanceTo'>, True)\n    test 185 HausdorffDistanceTo (meter): (3191685.70841, 35, 3, 90, 1350684.04012)\n    test 186 HausdorffDistanceTo (meter): (3191685.70841, 35, 3, 150, 1280478.58707)\n    test 187 HausdorffDistanceTo (meter): (3191685.70841, 35, 3, 90, 1350684.04012)\n    test 188 HausdorffDistanceTo (meter): (3191685.70841, 35, 3, 150, 1280478.58707)\n    test 189 HausdorffDistanceTo (meter): (3191685.70841, 35, 3, 90, None)\n    test 190 HausdorffDistanceTo (meter): (3191685.70841, 35, 3, 150, None)\n    test 191 HausdorffDistanceTo (meter): (3191685.70841, 35, 3, 90, None)\n    test 192 HausdorffDistanceTo (meter): (3191685.70841, 35, 3, 150, None)\n    test 193 copy(<class 'type'>): (<class 'pygeodesy.hausdorff.HausdorffDistanceTo'>, True)\n    test 194 HausdorffDistanceTo.copy(): (<class 'pygeodesy.hausdorff.HausdorffDistanceTo'>, True)\n    test 195 HausdorffDistanceTo (meter): (3191685.70841, 35, 3, 90, 1350684.04012)\n    test 196 HausdorffDistanceTo (meter): (3191685.70841, 35, 3, 150, 1280478.58707)\n    test 197 HausdorffDistanceTo (meter): (3191685.70841, 35, 3, 90, 1350684.04012)\n    test 198 HausdorffDistanceTo (meter): (3191685.70841, 35, 3, 150, 1280478.58707)\n    test 199 HausdorffDistanceTo (meter): (3191685.70841, 35, 3, 90, None)\n    test 200 HausdorffDistanceTo (meter): (3191685.70841, 35, 3, 150, None)\n    test 201 HausdorffDistanceTo (meter): (3191685.70841, 35, 3, 90, None)\n    test 202 HausdorffDistanceTo (meter): (3191685.70841, 35, 3, 150, None)\n    test 203 copy(<class 'type'>): (<class 'pygeodesy.hausdorff.HausdorffDistanceTo'>, True)\n    test 204 HausdorffDistanceTo.copy(): (<class 'pygeodesy.hausdorff.HausdorffDistanceTo'>, True)\n\n    156 of 204 testHausdorff.py tests (76.5%) FAILED, incl. 2 KNOWN plus 154 DeprecationWarnings (pygeodesy 26.3.26 Python 3.13.12 64bit arm64 coverage 7.10.7 geographiclib 2.1 numpy 2.3.3 scipy 1.16.2 Math 2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 macOS 26.3.1 isLazy 1 -W  default) 95.069 sec\nrunning /Library/Framewo....n3.13 -W default ~/PyGeodesy/test/testHeights.py\n\n    testing testHeights.py 24.12.31 isLazy=1\n\n    test 1 HeightIDWcosineLaw(wrap=True): 6.108538037\n    test 2 HeightIDWcosineLaw(float): <class 'float'>\n    test 3 HeightIDWcosineLaw(latlon): True\n    test 4 HeightIDWcosineLaw_(tuple): True\n    test 5 HeightIDWcosineLaw(wrap=True): 5.0\n    test 6 HeightIDWcosineLaw(float): <class 'float'>\n    test 7 HeightIDWcosineLaw(latlon): True\n    test 8 HeightIDWcosineLaw(wrap=True): (6.108538037, 5.0,)\n    test 9 HeightIDWcosineLaw(tuple): <class 'tuple'>\n    test 10 HeightIDWcosineLaw(tuple-float): <class 'float'>\n    test 11 HeightIDWcosineLaw(tuple-float): <class 'float'>\n    test 12 HeightIDWcosineLaw(wrap=True): [6.108538037, 5.0]\n    test 13 HeightIDWcosineLaw(list: <class 'list'>\n    test 14 HeightIDWcosineLaw(list-float): <class 'float'>\n    test 15 HeightIDWcosineLaw(list-float): <class 'float'>\n    test 16 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWcosineLaw'>, True)\n    test 17 HeightIDWcosineLaw.copy(): (<class 'pygeodesy.heights.HeightIDWcosineLaw'>, True)\n    test 18 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 19 HeightIDWcosineLaw.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 20 HeightIDWcosineLaw.kmin: 2\n    test 21 HeightIDWcosineLaw.wrap: True\n    test 22 HeightIDWcosineLaw.beta: 2\n    test 23 HeightIDWcosineLaw.adjust: None\n    test 24 HeightIDWcosineLaw.beta: 2\n    test 25 HeightIDWcosineLaw.kmin: 2\n    test 26 HeightIDWcosineLaw.wrap: True\n\n    test 27 HeightIDWcosineLaw(wrap=False): 6.108538037\n    test 28 HeightIDWcosineLaw(float): <class 'float'>\n    test 29 HeightIDWcosineLaw(latlon): True\n    test 30 HeightIDWcosineLaw_(tuple): True\n    test 31 HeightIDWcosineLaw(wrap=False): 5.0\n    test 32 HeightIDWcosineLaw(float): <class 'float'>\n    test 33 HeightIDWcosineLaw(latlon): True\n    test 34 HeightIDWcosineLaw(wrap=False): (6.108538037, 5.0,)\n    test 35 HeightIDWcosineLaw(tuple): <class 'tuple'>\n    test 36 HeightIDWcosineLaw(tuple-float): <class 'float'>\n    test 37 HeightIDWcosineLaw(tuple-float): <class 'float'>\n    test 38 HeightIDWcosineLaw(wrap=False): [6.108538037, 5.0]\n    test 39 HeightIDWcosineLaw(list: <class 'list'>\n    test 40 HeightIDWcosineLaw(list-float): <class 'float'>\n    test 41 HeightIDWcosineLaw(list-float): <class 'float'>\n    test 42 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWcosineLaw'>, True)\n    test 43 HeightIDWcosineLaw.copy(): (<class 'pygeodesy.heights.HeightIDWcosineLaw'>, True)\n    test 44 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 45 HeightIDWcosineLaw.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 46 HeightIDWcosineLaw.kmin: 2\n    test 47 HeightIDWcosineLaw.wrap: False\n    test 48 HeightIDWcosineLaw.beta: 2\n    test 49 HeightIDWcosineLaw.adjust: None\n    test 50 HeightIDWcosineLaw.beta: 2\n    test 51 HeightIDWcosineLaw.kmin: 2\n    test 52 HeightIDWcosineLaw.wrap: False\n\n    test 53 HeightIDWcosineLaw(corr=1, wrap=False): 6.111157919\n    test 54 HeightIDWcosineLaw(float): <class 'float'>\n    test 55 HeightIDWcosineLaw(latlon): True\n    test 56 HeightIDWcosineLaw_(tuple): True\n    test 57 HeightIDWcosineLaw(corr=1, wrap=False): 5.0\n    test 58 HeightIDWcosineLaw(float): <class 'float'>\n    test 59 HeightIDWcosineLaw(latlon): True\n    test 60 HeightIDWcosineLaw(corr=1, wrap=False): (6.111157919, 5.0,)\n    test 61 HeightIDWcosineLaw(tuple): <class 'tuple'>\n    test 62 HeightIDWcosineLaw(tuple-float): <class 'float'>\n    test 63 HeightIDWcosineLaw(tuple-float): <class 'float'>\n    test 64 HeightIDWcosineLaw(corr=1, wrap=False): [6.111157919, 5.0]\n    test 65 HeightIDWcosineLaw(list: <class 'list'>\n    test 66 HeightIDWcosineLaw(list-float): <class 'float'>\n    test 67 HeightIDWcosineLaw(list-float): <class 'float'>\n    test 68 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWcosineLaw'>, True)\n    test 69 HeightIDWcosineLaw.copy(): (<class 'pygeodesy.heights.HeightIDWcosineLaw'>, True)\n    test 70 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 71 HeightIDWcosineLaw.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 72 HeightIDWcosineLaw.kmin: 2\n    test 73 HeightIDWcosineLaw.wrap: False\n    test 74 HeightIDWcosineLaw.beta: 2\n    test 75 HeightIDWcosineLaw.adjust: None\n    test 76 HeightIDWcosineLaw.beta: 2\n    test 77 HeightIDWcosineLaw.kmin: 2\n    test 78 HeightIDWcosineLaw.wrap: False\n\n    test 79 HeightIDWcosineLaw(corr=2, wrap=False): 6.111158354\n    test 80 HeightIDWcosineLaw(float): <class 'float'>\n    test 81 HeightIDWcosineLaw(latlon): True\n    test 82 HeightIDWcosineLaw_(tuple): True\n    test 83 HeightIDWcosineLaw(corr=2, wrap=False): 5.0\n    test 84 HeightIDWcosineLaw(float): <class 'float'>\n    test 85 HeightIDWcosineLaw(latlon): True\n    test 86 HeightIDWcosineLaw(corr=2, wrap=False): (6.111158354, 5.0,)\n    test 87 HeightIDWcosineLaw(tuple): <class 'tuple'>\n    test 88 HeightIDWcosineLaw(tuple-float): <class 'float'>\n    test 89 HeightIDWcosineLaw(tuple-float): <class 'float'>\n    test 90 HeightIDWcosineLaw(corr=2, wrap=False): [6.111158354, 5.0]\n    test 91 HeightIDWcosineLaw(list: <class 'list'>\n    test 92 HeightIDWcosineLaw(list-float): <class 'float'>\n    test 93 HeightIDWcosineLaw(list-float): <class 'float'>\n    test 94 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWcosineLaw'>, True)\n    test 95 HeightIDWcosineLaw.copy(): (<class 'pygeodesy.heights.HeightIDWcosineLaw'>, True)\n    test 96 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 97 HeightIDWcosineLaw.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 98 HeightIDWcosineLaw.kmin: 2\n    test 99 HeightIDWcosineLaw.wrap: False\n    test 100 HeightIDWcosineLaw.beta: 2\n    test 101 HeightIDWcosineLaw.adjust: None\n    test 102 HeightIDWcosineLaw.beta: 2\n    test 103 HeightIDWcosineLaw.kmin: 2\n    test 104 HeightIDWcosineLaw.wrap: False\n\n    test 105 HeightIDWdistanceTo(): 6.108538037\n    test 106 HeightIDWdistanceTo(float): <class 'float'>\n    test 107 HeightIDWdistanceTo(latlon): True\n    test 108 HeightIDWdistanceTo_(tuple): True\n    test 109 HeightIDWdistanceTo(): 5.0\n    test 110 HeightIDWdistanceTo(float): <class 'float'>\n    test 111 HeightIDWdistanceTo(latlon): True\n    test 112 HeightIDWdistanceTo(): (6.108538037, 5.0,)\n    test 113 HeightIDWdistanceTo(tuple): <class 'tuple'>\n    test 114 HeightIDWdistanceTo(tuple-float): <class 'float'>\n    test 115 HeightIDWdistanceTo(tuple-float): <class 'float'>\n    test 116 HeightIDWdistanceTo(): [6.108538037, 5.0]\n    test 117 HeightIDWdistanceTo(list: <class 'list'>\n    test 118 HeightIDWdistanceTo(list-float): <class 'float'>\n    test 119 HeightIDWdistanceTo(list-float): <class 'float'>\n    test 120 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWdistanceTo'>, True)\n    test 121 HeightIDWdistanceTo.copy(): (<class 'pygeodesy.heights.HeightIDWdistanceTo'>, True)\n    test 122 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 123 HeightIDWdistanceTo.datum: name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84\n    test 124 HeightIDWdistanceTo.kmin: 2\n    test 125 HeightIDWdistanceTo.wrap: None\n    test 126 HeightIDWdistanceTo.beta: 2\n    test 127 HeightIDWdistanceTo.adjust: None\n    test 128 HeightIDWdistanceTo.beta: 2\n    test 129 HeightIDWdistanceTo.kmin: 2\n    test 130 HeightIDWdistanceTo.wrap: None\n\n    test 131 HeightIDWequirectangular(adjust=True, wrap=True): 6.860459007\n    test 132 HeightIDWequirectangular(float): <class 'float'>\n    test 133 HeightIDWequirectangular(latlon): True\n    test 134 HeightIDWequirectangular_(tuple): True\n    test 135 HeightIDWequirectangular(adjust=True, wrap=True): 5.0\n    test 136 HeightIDWequirectangular(float): <class 'float'>\n    test 137 HeightIDWequirectangular(latlon): True\n    test 138 HeightIDWequirectangular(adjust=True, wrap=True): (6.860459007, 5.0,)\n    test 139 HeightIDWequirectangular(tuple): <class 'tuple'>\n    test 140 HeightIDWequirectangular(tuple-float): <class 'float'>\n    test 141 HeightIDWequirectangular(tuple-float): <class 'float'>\n    test 142 HeightIDWequirectangular(adjust=True, wrap=True): [6.860459007, 5.0]\n    test 143 HeightIDWequirectangular(list: <class 'list'>\n    test 144 HeightIDWequirectangular(list-float): <class 'float'>\n    test 145 HeightIDWequirectangular(list-float): <class 'float'>\n    test 146 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWequirectangular'>, True)\n    test 147 HeightIDWequirectangular.copy(): (<class 'pygeodesy.heights.HeightIDWequirectangular'>, True)\n    test 148 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 149 HeightIDWequirectangular.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 150 HeightIDWequirectangular.kmin: 2\n    test 151 HeightIDWequirectangular.wrap: True\n    test 152 HeightIDWequirectangular.beta: 2\n    test 153 HeightIDWequirectangular.adjust: True\n    test 154 HeightIDWequirectangular.beta: 2\n    test 155 HeightIDWequirectangular.kmin: 2\n    test 156 HeightIDWequirectangular.wrap: True\n\n    test 157 HeightIDWequirectangular(adjust=False, wrap=True): 6.860498092\n    test 158 HeightIDWequirectangular(float): <class 'float'>\n    test 159 HeightIDWequirectangular(latlon): True\n    test 160 HeightIDWequirectangular_(tuple): True\n    test 161 HeightIDWequirectangular(adjust=False, wrap=True): 5.0\n    test 162 HeightIDWequirectangular(float): <class 'float'>\n    test 163 HeightIDWequirectangular(latlon): True\n    test 164 HeightIDWequirectangular(adjust=False, wrap=True): (6.860498092, 5.0,)\n    test 165 HeightIDWequirectangular(tuple): <class 'tuple'>\n    test 166 HeightIDWequirectangular(tuple-float): <class 'float'>\n    test 167 HeightIDWequirectangular(tuple-float): <class 'float'>\n    test 168 HeightIDWequirectangular(adjust=False, wrap=True): [6.860498092, 5.0]\n    test 169 HeightIDWequirectangular(list: <class 'list'>\n    test 170 HeightIDWequirectangular(list-float): <class 'float'>\n    test 171 HeightIDWequirectangular(list-float): <class 'float'>\n    test 172 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWequirectangular'>, True)\n    test 173 HeightIDWequirectangular.copy(): (<class 'pygeodesy.heights.HeightIDWequirectangular'>, True)\n    test 174 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 175 HeightIDWequirectangular.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 176 HeightIDWequirectangular.kmin: 2\n    test 177 HeightIDWequirectangular.wrap: True\n    test 178 HeightIDWequirectangular.beta: 2\n    test 179 HeightIDWequirectangular.adjust: False\n    test 180 HeightIDWequirectangular.beta: 2\n    test 181 HeightIDWequirectangular.kmin: 2\n    test 182 HeightIDWequirectangular.wrap: True\n\n    test 183 HeightIDWeuclidean(): 6.142945781\n    test 184 HeightIDWeuclidean(float): <class 'float'>\n    test 185 HeightIDWeuclidean(latlon): True\n    test 186 HeightIDWeuclidean_(tuple): True\n    test 187 HeightIDWeuclidean(): 5.0\n    test 188 HeightIDWeuclidean(float): <class 'float'>\n    test 189 HeightIDWeuclidean(latlon): True\n    test 190 HeightIDWeuclidean(): (6.142945781, 5.0,)\n    test 191 HeightIDWeuclidean(tuple): <class 'tuple'>\n    test 192 HeightIDWeuclidean(tuple-float): <class 'float'>\n    test 193 HeightIDWeuclidean(tuple-float): <class 'float'>\n    test 194 HeightIDWeuclidean(): [6.142945781, 5.0]\n    test 195 HeightIDWeuclidean(list: <class 'list'>\n    test 196 HeightIDWeuclidean(list-float): <class 'float'>\n    test 197 HeightIDWeuclidean(list-float): <class 'float'>\n    test 198 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWeuclidean'>, True)\n    test 199 HeightIDWeuclidean.copy(): (<class 'pygeodesy.heights.HeightIDWeuclidean'>, True)\n    test 200 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 201 HeightIDWeuclidean.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 202 HeightIDWeuclidean.kmin: 2\n    test 203 HeightIDWeuclidean.wrap: None\n    test 204 HeightIDWeuclidean.beta: 2\n    test 205 HeightIDWeuclidean.adjust: None\n    test 206 HeightIDWeuclidean.beta: 2\n    test 207 HeightIDWeuclidean.kmin: 2\n    test 208 HeightIDWeuclidean.wrap: None\n\n    test 209 HeightIDWexact(): 6.108538037\n    test 210 HeightIDWexact(float): <class 'float'>\n    test 211 HeightIDWexact(latlon): True\n    test 212 HeightIDWexact_(tuple): True\n    test 213 HeightIDWexact(): 5.0\n    test 214 HeightIDWexact(float): <class 'float'>\n    test 215 HeightIDWexact(latlon): True\n    test 216 HeightIDWexact(): (6.108538037, 5.0,)\n    test 217 HeightIDWexact(tuple): <class 'tuple'>\n    test 218 HeightIDWexact(tuple-float): <class 'float'>\n    test 219 HeightIDWexact(tuple-float): <class 'float'>\n    test 220 HeightIDWexact(): [6.108538037, 5.0]\n    test 221 HeightIDWexact(list: <class 'list'>\n    test 222 HeightIDWexact(list-float): <class 'float'>\n    test 223 HeightIDWexact(list-float): <class 'float'>\n    test 224 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWexact'>, True)\n    test 225 HeightIDWexact.copy(): (<class 'pygeodesy.heights.HeightIDWexact'>, True)\n    test 226 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 227 HeightIDWexact.datum: name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84\n    test 228 HeightIDWexact.kmin: 2\n    test 229 HeightIDWexact.wrap: None\n    test 230 HeightIDWexact.beta: 2\n    test 231 HeightIDWexact.adjust: None\n    test 232 HeightIDWexact.beta: 2\n    test 233 HeightIDWexact.kmin: 2\n    test 234 HeightIDWexact.wrap: None\n\n    test 235 HeightIDWflatLocal(): 6.111158784\n    test 236 HeightIDWflatLocal(float): <class 'float'>\n    test 237 HeightIDWflatLocal(latlon): True\n    test 238 HeightIDWflatLocal_(tuple): True\n    test 239 HeightIDWflatLocal(): 5.0\n    test 240 HeightIDWflatLocal(float): <class 'float'>\n    test 241 HeightIDWflatLocal(latlon): True\n    test 242 HeightIDWflatLocal(): (6.111158784, 5.0,)\n    test 243 HeightIDWflatLocal(tuple): <class 'tuple'>\n    test 244 HeightIDWflatLocal(tuple-float): <class 'float'>\n    test 245 HeightIDWflatLocal(tuple-float): <class 'float'>\n    test 246 HeightIDWflatLocal(): [6.111158784, 5.0]\n    test 247 HeightIDWflatLocal(list: <class 'list'>\n    test 248 HeightIDWflatLocal(list-float): <class 'float'>\n    test 249 HeightIDWflatLocal(list-float): <class 'float'>\n    test 250 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWflatLocal'>, True)\n    test 251 HeightIDWflatLocal.copy(): (<class 'pygeodesy.heights.HeightIDWflatLocal'>, True)\n    test 252 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 253 HeightIDWflatLocal.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 254 HeightIDWflatLocal.kmin: 2\n    test 255 HeightIDWflatLocal.wrap: None\n    test 256 HeightIDWflatLocal.beta: 2\n    test 257 HeightIDWflatLocal.adjust: None\n    test 258 HeightIDWflatLocal.beta: 2\n    test 259 HeightIDWflatLocal.kmin: 2\n    test 260 HeightIDWflatLocal.wrap: None\n\n    test 261 HeightIDWflatPolar(): 6.261469975\n    test 262 HeightIDWflatPolar(float): <class 'float'>\n    test 263 HeightIDWflatPolar(latlon): True\n    test 264 HeightIDWflatPolar_(tuple): True\n    test 265 HeightIDWflatPolar(): 5.0\n    test 266 HeightIDWflatPolar(float): <class 'float'>\n    test 267 HeightIDWflatPolar(latlon): True\n    test 268 HeightIDWflatPolar(): (6.261469975, 5.0,)\n    test 269 HeightIDWflatPolar(tuple): <class 'tuple'>\n    test 270 HeightIDWflatPolar(tuple-float): <class 'float'>\n    test 271 HeightIDWflatPolar(tuple-float): <class 'float'>\n    test 272 HeightIDWflatPolar(): [6.261469975, 5.0]\n    test 273 HeightIDWflatPolar(list: <class 'list'>\n    test 274 HeightIDWflatPolar(list-float): <class 'float'>\n    test 275 HeightIDWflatPolar(list-float): <class 'float'>\n    test 276 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWflatPolar'>, True)\n    test 277 HeightIDWflatPolar.copy(): (<class 'pygeodesy.heights.HeightIDWflatPolar'>, True)\n    test 278 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 279 HeightIDWflatPolar.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 280 HeightIDWflatPolar.kmin: 2\n    test 281 HeightIDWflatPolar.wrap: None\n    test 282 HeightIDWflatPolar.beta: 2\n    test 283 HeightIDWflatPolar.adjust: None\n    test 284 HeightIDWflatPolar.beta: 2\n    test 285 HeightIDWflatPolar.kmin: 2\n    test 286 HeightIDWflatPolar.wrap: None\n\n    test 287 HeightIDWhaversine(): 6.108538037\n    test 288 HeightIDWhaversine(float): <class 'float'>\n    test 289 HeightIDWhaversine(latlon): True\n    test 290 HeightIDWhaversine_(tuple): True\n    test 291 HeightIDWhaversine(): 5.0\n    test 292 HeightIDWhaversine(float): <class 'float'>\n    test 293 HeightIDWhaversine(latlon): True\n    test 294 HeightIDWhaversine(): (6.108538037, 5.0,)\n    test 295 HeightIDWhaversine(tuple): <class 'tuple'>\n    test 296 HeightIDWhaversine(tuple-float): <class 'float'>\n    test 297 HeightIDWhaversine(tuple-float): <class 'float'>\n    test 298 HeightIDWhaversine(): [6.108538037, 5.0]\n    test 299 HeightIDWhaversine(list: <class 'list'>\n    test 300 HeightIDWhaversine(list-float): <class 'float'>\n    test 301 HeightIDWhaversine(list-float): <class 'float'>\n    test 302 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWhaversine'>, True)\n    test 303 HeightIDWhaversine.copy(): (<class 'pygeodesy.heights.HeightIDWhaversine'>, True)\n    test 304 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 305 HeightIDWhaversine.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 306 HeightIDWhaversine.kmin: 2\n    test 307 HeightIDWhaversine.wrap: None\n    test 308 HeightIDWhaversine.beta: 2\n    test 309 HeightIDWhaversine.adjust: None\n    test 310 HeightIDWhaversine.beta: 2\n    test 311 HeightIDWhaversine.kmin: 2\n    test 312 HeightIDWhaversine.wrap: None\n\n    test 313 HeightIDWhubeny(): 6.111158784\n    test 314 HeightIDWhubeny(float): <class 'float'>\n    test 315 HeightIDWhubeny(latlon): True\n    test 316 HeightIDWhubeny_(tuple): True\n    test 317 HeightIDWhubeny(): 5.0\n    test 318 HeightIDWhubeny(float): <class 'float'>\n    test 319 HeightIDWhubeny(latlon): True\n    test 320 HeightIDWhubeny(): (6.111158784, 5.0,)\n    test 321 HeightIDWhubeny(tuple): <class 'tuple'>\n    test 322 HeightIDWhubeny(tuple-float): <class 'float'>\n    test 323 HeightIDWhubeny(tuple-float): <class 'float'>\n    test 324 HeightIDWhubeny(): [6.111158784, 5.0]\n    test 325 HeightIDWhubeny(list: <class 'list'>\n    test 326 HeightIDWhubeny(list-float): <class 'float'>\n    test 327 HeightIDWhubeny(list-float): <class 'float'>\n    test 328 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWhubeny'>, True)\n    test 329 HeightIDWhubeny.copy(): (<class 'pygeodesy.heights.HeightIDWhubeny'>, True)\n    test 330 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 331 HeightIDWhubeny.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 332 HeightIDWhubeny.kmin: 2\n    test 333 HeightIDWhubeny.wrap: None\n    test 334 HeightIDWhubeny.beta: 2\n    test 335 HeightIDWhubeny.adjust: None\n    test 336 HeightIDWhubeny.beta: 2\n    test 337 HeightIDWhubeny.kmin: 2\n    test 338 HeightIDWhubeny.wrap: None\n\n    test 339 HeightIDWkarney(datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), wrap=True): 6.111158743\n    test 340 HeightIDWkarney(float): <class 'float'>\n    test 341 HeightIDWkarney(latlon): True\n    test 342 HeightIDWkarney_(tuple): True\n    test 343 HeightIDWkarney(datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), wrap=True): 5.0\n    test 344 HeightIDWkarney(float): <class 'float'>\n    test 345 HeightIDWkarney(latlon): True\n    test 346 HeightIDWkarney(datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), wrap=True): (6.111158743, 5.0,)\n    test 347 HeightIDWkarney(tuple): <class 'tuple'>\n    test 348 HeightIDWkarney(tuple-float): <class 'float'>\n    test 349 HeightIDWkarney(tuple-float): <class 'float'>\n    test 350 HeightIDWkarney(datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), wrap=True): [6.111158743, 5.0]\n    test 351 HeightIDWkarney(list: <class 'list'>\n    test 352 HeightIDWkarney(list-float): <class 'float'>\n    test 353 HeightIDWkarney(list-float): <class 'float'>\n    test 354 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWkarney'>, True)\n    test 355 HeightIDWkarney.copy(): (<class 'pygeodesy.heights.HeightIDWkarney'>, True)\n    test 356 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 357 HeightIDWkarney.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 358 HeightIDWkarney.kmin: 2\n    test 359 HeightIDWkarney.wrap: True\n    test 360 HeightIDWkarney.beta: 2\n    test 361 HeightIDWkarney.adjust: None\n    test 362 HeightIDWkarney.beta: 2\n    test 363 HeightIDWkarney.kmin: 2\n    test 364 HeightIDWkarney.wrap: True\n\n    test 365 HeightIDWkarney(datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), wrap=False): 6.111158743\n    test 366 HeightIDWkarney(float): <class 'float'>\n    test 367 HeightIDWkarney(latlon): True\n    test 368 HeightIDWkarney_(tuple): True\n    test 369 HeightIDWkarney(datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), wrap=False): 5.0\n    test 370 HeightIDWkarney(float): <class 'float'>\n    test 371 HeightIDWkarney(latlon): True\n    test 372 HeightIDWkarney(datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), wrap=False): (6.111158743, 5.0,)\n    test 373 HeightIDWkarney(tuple): <class 'tuple'>\n    test 374 HeightIDWkarney(tuple-float): <class 'float'>\n    test 375 HeightIDWkarney(tuple-float): <class 'float'>\n    test 376 HeightIDWkarney(datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), wrap=False): [6.111158743, 5.0]\n    test 377 HeightIDWkarney(list: <class 'list'>\n    test 378 HeightIDWkarney(list-float): <class 'float'>\n    test 379 HeightIDWkarney(list-float): <class 'float'>\n    test 380 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWkarney'>, True)\n    test 381 HeightIDWkarney.copy(): (<class 'pygeodesy.heights.HeightIDWkarney'>, True)\n    test 382 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 383 HeightIDWkarney.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 384 HeightIDWkarney.kmin: 2\n    test 385 HeightIDWkarney.wrap: False\n    test 386 HeightIDWkarney.beta: 2\n    test 387 HeightIDWkarney.adjust: None\n    test 388 HeightIDWkarney.beta: 2\n    test 389 HeightIDWkarney.kmin: 2\n    test 390 HeightIDWkarney.wrap: False\n\n    test 391 HeightIDWkarney(datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84), wrap=True): 6.108538037\n    test 392 HeightIDWkarney(float): <class 'float'>\n    test 393 HeightIDWkarney(latlon): True\n    test 394 HeightIDWkarney_(tuple): True\n    test 395 HeightIDWkarney(datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84), wrap=True): 5.0\n    test 396 HeightIDWkarney(float): <class 'float'>\n    test 397 HeightIDWkarney(latlon): True\n    test 398 HeightIDWkarney(datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84), wrap=True): (6.108538037, 5.0,)\n    test 399 HeightIDWkarney(tuple): <class 'tuple'>\n    test 400 HeightIDWkarney(tuple-float): <class 'float'>\n    test 401 HeightIDWkarney(tuple-float): <class 'float'>\n    test 402 HeightIDWkarney(datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84), wrap=True): [6.108538037, 5.0]\n    test 403 HeightIDWkarney(list: <class 'list'>\n    test 404 HeightIDWkarney(list-float): <class 'float'>\n    test 405 HeightIDWkarney(list-float): <class 'float'>\n    test 406 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWkarney'>, True)\n    test 407 HeightIDWkarney.copy(): (<class 'pygeodesy.heights.HeightIDWkarney'>, True)\n    test 408 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 409 HeightIDWkarney.datum: name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84\n    test 410 HeightIDWkarney.kmin: 2\n    test 411 HeightIDWkarney.wrap: True\n    test 412 HeightIDWkarney.beta: 2\n    test 413 HeightIDWkarney.adjust: None\n    test 414 HeightIDWkarney.beta: 2\n    test 415 HeightIDWkarney.kmin: 2\n    test 416 HeightIDWkarney.wrap: True\n\n    test 417 HeightIDWkarney(datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84), wrap=False): 6.108538037\n    test 418 HeightIDWkarney(float): <class 'float'>\n    test 419 HeightIDWkarney(latlon): True\n    test 420 HeightIDWkarney_(tuple): True\n    test 421 HeightIDWkarney(datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84), wrap=False): 5.0\n    test 422 HeightIDWkarney(float): <class 'float'>\n    test 423 HeightIDWkarney(latlon): True\n    test 424 HeightIDWkarney(datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84), wrap=False): (6.108538037, 5.0,)\n    test 425 HeightIDWkarney(tuple): <class 'tuple'>\n    test 426 HeightIDWkarney(tuple-float): <class 'float'>\n    test 427 HeightIDWkarney(tuple-float): <class 'float'>\n    test 428 HeightIDWkarney(datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84), wrap=False): [6.108538037, 5.0]\n    test 429 HeightIDWkarney(list: <class 'list'>\n    test 430 HeightIDWkarney(list-float): <class 'float'>\n    test 431 HeightIDWkarney(list-float): <class 'float'>\n    test 432 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWkarney'>, True)\n    test 433 HeightIDWkarney.copy(): (<class 'pygeodesy.heights.HeightIDWkarney'>, True)\n    test 434 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 435 HeightIDWkarney.datum: name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84\n    test 436 HeightIDWkarney.kmin: 2\n    test 437 HeightIDWkarney.wrap: False\n    test 438 HeightIDWkarney.beta: 2\n    test 439 HeightIDWkarney.adjust: None\n    test 440 HeightIDWkarney.beta: 2\n    test 441 HeightIDWkarney.kmin: 2\n    test 442 HeightIDWkarney.wrap: False\n\n    test 443 HeightIDWthomas(wrap=True): 6.111159454\n    test 444 HeightIDWthomas(float): <class 'float'>\n    test 445 HeightIDWthomas(latlon): True\n    test 446 HeightIDWthomas_(tuple): True\n    test 447 HeightIDWthomas(wrap=True): 5.0\n    test 448 HeightIDWthomas(float): <class 'float'>\n    test 449 HeightIDWthomas(latlon): True\n    test 450 HeightIDWthomas(wrap=True): (6.111159454, 5.0,)\n    test 451 HeightIDWthomas(tuple): <class 'tuple'>\n    test 452 HeightIDWthomas(tuple-float): <class 'float'>\n    test 453 HeightIDWthomas(tuple-float): <class 'float'>\n    test 454 HeightIDWthomas(wrap=True): [6.111159454, 5.0]\n    test 455 HeightIDWthomas(list: <class 'list'>\n    test 456 HeightIDWthomas(list-float): <class 'float'>\n    test 457 HeightIDWthomas(list-float): <class 'float'>\n    test 458 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWthomas'>, True)\n    test 459 HeightIDWthomas.copy(): (<class 'pygeodesy.heights.HeightIDWthomas'>, True)\n    test 460 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 461 HeightIDWthomas.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 462 HeightIDWthomas.kmin: 2\n    test 463 HeightIDWthomas.wrap: True\n    test 464 HeightIDWthomas.beta: 2\n    test 465 HeightIDWthomas.adjust: None\n    test 466 HeightIDWthomas.beta: 2\n    test 467 HeightIDWthomas.kmin: 2\n    test 468 HeightIDWthomas.wrap: True\n\n    test 469 HeightIDWthomas(wrap=False): 6.111159454\n    test 470 HeightIDWthomas(float): <class 'float'>\n    test 471 HeightIDWthomas(latlon): True\n    test 472 HeightIDWthomas_(tuple): True\n    test 473 HeightIDWthomas(wrap=False): 5.0\n    test 474 HeightIDWthomas(float): <class 'float'>\n    test 475 HeightIDWthomas(latlon): True\n    test 476 HeightIDWthomas(wrap=False): (6.111159454, 5.0,)\n    test 477 HeightIDWthomas(tuple): <class 'tuple'>\n    test 478 HeightIDWthomas(tuple-float): <class 'float'>\n    test 479 HeightIDWthomas(tuple-float): <class 'float'>\n    test 480 HeightIDWthomas(wrap=False): [6.111159454, 5.0]\n    test 481 HeightIDWthomas(list: <class 'list'>\n    test 482 HeightIDWthomas(list-float): <class 'float'>\n    test 483 HeightIDWthomas(list-float): <class 'float'>\n    test 484 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWthomas'>, True)\n    test 485 HeightIDWthomas.copy(): (<class 'pygeodesy.heights.HeightIDWthomas'>, True)\n    test 486 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 487 HeightIDWthomas.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 488 HeightIDWthomas.kmin: 2\n    test 489 HeightIDWthomas.wrap: False\n    test 490 HeightIDWthomas.beta: 2\n    test 491 HeightIDWthomas.adjust: None\n    test 492 HeightIDWthomas.beta: 2\n    test 493 HeightIDWthomas.kmin: 2\n    test 494 HeightIDWthomas.wrap: False\n\n    test 495 HeightIDWvincentys(wrap=True): 6.108538037\n    test 496 HeightIDWvincentys(float): <class 'float'>\n    test 497 HeightIDWvincentys(latlon): True\n    test 498 HeightIDWvincentys_(tuple): True\n    test 499 HeightIDWvincentys(wrap=True): 5.0\n    test 500 HeightIDWvincentys(float): <class 'float'>\n    test 501 HeightIDWvincentys(latlon): True\n    test 502 HeightIDWvincentys(wrap=True): (6.108538037, 5.0,)\n    test 503 HeightIDWvincentys(tuple): <class 'tuple'>\n    test 504 HeightIDWvincentys(tuple-float): <class 'float'>\n    test 505 HeightIDWvincentys(tuple-float): <class 'float'>\n    test 506 HeightIDWvincentys(wrap=True): [6.108538037, 5.0]\n    test 507 HeightIDWvincentys(list: <class 'list'>\n    test 508 HeightIDWvincentys(list-float): <class 'float'>\n    test 509 HeightIDWvincentys(list-float): <class 'float'>\n    test 510 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWvincentys'>, True)\n    test 511 HeightIDWvincentys.copy(): (<class 'pygeodesy.heights.HeightIDWvincentys'>, True)\n    test 512 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 513 HeightIDWvincentys.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 514 HeightIDWvincentys.kmin: 2\n    test 515 HeightIDWvincentys.wrap: True\n    test 516 HeightIDWvincentys.beta: 2\n    test 517 HeightIDWvincentys.adjust: None\n    test 518 HeightIDWvincentys.beta: 2\n    test 519 HeightIDWvincentys.kmin: 2\n    test 520 HeightIDWvincentys.wrap: True\n\n    test 521 HeightIDWvincentys(wrap=False): 6.108538037\n    test 522 HeightIDWvincentys(float): <class 'float'>\n    test 523 HeightIDWvincentys(latlon): True\n    test 524 HeightIDWvincentys_(tuple): True\n    test 525 HeightIDWvincentys(wrap=False): 5.0\n    test 526 HeightIDWvincentys(float): <class 'float'>\n    test 527 HeightIDWvincentys(latlon): True\n    test 528 HeightIDWvincentys(wrap=False): (6.108538037, 5.0,)\n    test 529 HeightIDWvincentys(tuple): <class 'tuple'>\n    test 530 HeightIDWvincentys(tuple-float): <class 'float'>\n    test 531 HeightIDWvincentys(tuple-float): <class 'float'>\n    test 532 HeightIDWvincentys(wrap=False): [6.108538037, 5.0]\n    test 533 HeightIDWvincentys(list: <class 'list'>\n    test 534 HeightIDWvincentys(list-float): <class 'float'>\n    test 535 HeightIDWvincentys(list-float): <class 'float'>\n    test 536 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWvincentys'>, True)\n    test 537 HeightIDWvincentys.copy(): (<class 'pygeodesy.heights.HeightIDWvincentys'>, True)\n    test 538 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 539 HeightIDWvincentys.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 540 HeightIDWvincentys.kmin: 2\n    test 541 HeightIDWvincentys.wrap: False\n    test 542 HeightIDWvincentys.beta: 2\n    test 543 HeightIDWvincentys.adjust: None\n    test 544 HeightIDWvincentys.beta: 2\n    test 545 HeightIDWvincentys.kmin: 2\n    test 546 HeightIDWvincentys.wrap: False\n    test 547 intersection: 02.64932°N, 002.550079°E, +2.50m\n\n\n    test 548 HeightIDWcosineLaw(wrap=True): 2.592742938\n    test 549 HeightIDWcosineLaw(float): <class 'float'>\n    test 550 HeightIDWcosineLaw(latlon): True\n    test 551 HeightIDWcosineLaw_(tuple): True\n    test 552 HeightIDWcosineLaw(wrap=True): 3.0\n    test 553 HeightIDWcosineLaw(float): <class 'float'>\n    test 554 HeightIDWcosineLaw(latlon): True\n    test 555 HeightIDWcosineLaw(wrap=True): (2.592742938, 3.0,)\n    test 556 HeightIDWcosineLaw(tuple): <class 'tuple'>\n    test 557 HeightIDWcosineLaw(tuple-float): <class 'float'>\n    test 558 HeightIDWcosineLaw(tuple-float): <class 'float'>\n    test 559 HeightIDWcosineLaw(wrap=True): [2.592742938, 3.0]\n    test 560 HeightIDWcosineLaw(list: <class 'list'>\n    test 561 HeightIDWcosineLaw(list-float): <class 'float'>\n    test 562 HeightIDWcosineLaw(list-float): <class 'float'>\n    test 563 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWcosineLaw'>, True)\n    test 564 HeightIDWcosineLaw.copy(): (<class 'pygeodesy.heights.HeightIDWcosineLaw'>, True)\n    test 565 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 566 HeightIDWcosineLaw.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 567 HeightIDWcosineLaw.kmin: 2\n    test 568 HeightIDWcosineLaw.wrap: True\n    test 569 HeightIDWcosineLaw.beta: 2\n    test 570 HeightIDWcosineLaw.adjust: None\n    test 571 HeightIDWcosineLaw.beta: 2\n    test 572 HeightIDWcosineLaw.kmin: 2\n    test 573 HeightIDWcosineLaw.wrap: True\n\n    test 574 HeightIDWcosineLaw(wrap=False): 2.592742938\n    test 575 HeightIDWcosineLaw(float): <class 'float'>\n    test 576 HeightIDWcosineLaw(latlon): True\n    test 577 HeightIDWcosineLaw_(tuple): True\n    test 578 HeightIDWcosineLaw(wrap=False): 3.0\n    test 579 HeightIDWcosineLaw(float): <class 'float'>\n    test 580 HeightIDWcosineLaw(latlon): True\n    test 581 HeightIDWcosineLaw(wrap=False): (2.592742938, 3.0,)\n    test 582 HeightIDWcosineLaw(tuple): <class 'tuple'>\n    test 583 HeightIDWcosineLaw(tuple-float): <class 'float'>\n    test 584 HeightIDWcosineLaw(tuple-float): <class 'float'>\n    test 585 HeightIDWcosineLaw(wrap=False): [2.592742938, 3.0]\n    test 586 HeightIDWcosineLaw(list: <class 'list'>\n    test 587 HeightIDWcosineLaw(list-float): <class 'float'>\n    test 588 HeightIDWcosineLaw(list-float): <class 'float'>\n    test 589 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWcosineLaw'>, True)\n    test 590 HeightIDWcosineLaw.copy(): (<class 'pygeodesy.heights.HeightIDWcosineLaw'>, True)\n    test 591 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 592 HeightIDWcosineLaw.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 593 HeightIDWcosineLaw.kmin: 2\n    test 594 HeightIDWcosineLaw.wrap: False\n    test 595 HeightIDWcosineLaw.beta: 2\n    test 596 HeightIDWcosineLaw.adjust: None\n    test 597 HeightIDWcosineLaw.beta: 2\n    test 598 HeightIDWcosineLaw.kmin: 2\n    test 599 HeightIDWcosineLaw.wrap: False\n\n    test 600 HeightIDWcosineLaw(corr=1, wrap=False): 2.592742781\n    test 601 HeightIDWcosineLaw(float): <class 'float'>\n    test 602 HeightIDWcosineLaw(latlon): True\n    test 603 HeightIDWcosineLaw_(tuple): True\n    test 604 HeightIDWcosineLaw(corr=1, wrap=False): 3.0\n    test 605 HeightIDWcosineLaw(float): <class 'float'>\n    test 606 HeightIDWcosineLaw(latlon): True\n    test 607 HeightIDWcosineLaw(corr=1, wrap=False): (2.592742781, 3.0,)\n    test 608 HeightIDWcosineLaw(tuple): <class 'tuple'>\n    test 609 HeightIDWcosineLaw(tuple-float): <class 'float'>\n    test 610 HeightIDWcosineLaw(tuple-float): <class 'float'>\n    test 611 HeightIDWcosineLaw(corr=1, wrap=False): [2.592742781, 3.0]\n    test 612 HeightIDWcosineLaw(list: <class 'list'>\n    test 613 HeightIDWcosineLaw(list-float): <class 'float'>\n    test 614 HeightIDWcosineLaw(list-float): <class 'float'>\n    test 615 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWcosineLaw'>, True)\n    test 616 HeightIDWcosineLaw.copy(): (<class 'pygeodesy.heights.HeightIDWcosineLaw'>, True)\n    test 617 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 618 HeightIDWcosineLaw.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 619 HeightIDWcosineLaw.kmin: 2\n    test 620 HeightIDWcosineLaw.wrap: False\n    test 621 HeightIDWcosineLaw.beta: 2\n    test 622 HeightIDWcosineLaw.adjust: None\n    test 623 HeightIDWcosineLaw.beta: 2\n    test 624 HeightIDWcosineLaw.kmin: 2\n    test 625 HeightIDWcosineLaw.wrap: False\n\n    test 626 HeightIDWcosineLaw(corr=2, wrap=False): 2.592742781\n    test 627 HeightIDWcosineLaw(float): <class 'float'>\n    test 628 HeightIDWcosineLaw(latlon): True\n    test 629 HeightIDWcosineLaw_(tuple): True\n    test 630 HeightIDWcosineLaw(corr=2, wrap=False): 3.0\n    test 631 HeightIDWcosineLaw(float): <class 'float'>\n    test 632 HeightIDWcosineLaw(latlon): True\n    test 633 HeightIDWcosineLaw(corr=2, wrap=False): (2.592742781, 3.0,)\n    test 634 HeightIDWcosineLaw(tuple): <class 'tuple'>\n    test 635 HeightIDWcosineLaw(tuple-float): <class 'float'>\n    test 636 HeightIDWcosineLaw(tuple-float): <class 'float'>\n    test 637 HeightIDWcosineLaw(corr=2, wrap=False): [2.592742781, 3.0]\n    test 638 HeightIDWcosineLaw(list: <class 'list'>\n    test 639 HeightIDWcosineLaw(list-float): <class 'float'>\n    test 640 HeightIDWcosineLaw(list-float): <class 'float'>\n    test 641 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWcosineLaw'>, True)\n    test 642 HeightIDWcosineLaw.copy(): (<class 'pygeodesy.heights.HeightIDWcosineLaw'>, True)\n    test 643 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 644 HeightIDWcosineLaw.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 645 HeightIDWcosineLaw.kmin: 2\n    test 646 HeightIDWcosineLaw.wrap: False\n    test 647 HeightIDWcosineLaw.beta: 2\n    test 648 HeightIDWcosineLaw.adjust: None\n    test 649 HeightIDWcosineLaw.beta: 2\n    test 650 HeightIDWcosineLaw.kmin: 2\n    test 651 HeightIDWcosineLaw.wrap: False\n\n    test 652 HeightIDWequirectangular(adjust=True, wrap=True): 2.689429914\n    test 653 HeightIDWequirectangular(float): <class 'float'>\n    test 654 HeightIDWequirectangular(latlon): True\n    test 655 HeightIDWequirectangular_(tuple): True\n    test 656 HeightIDWequirectangular(adjust=True, wrap=True): 3.0\n    test 657 HeightIDWequirectangular(float): <class 'float'>\n    test 658 HeightIDWequirectangular(latlon): True\n    test 659 HeightIDWequirectangular(adjust=True, wrap=True): (2.689429914, 3.0,)\n    test 660 HeightIDWequirectangular(tuple): <class 'tuple'>\n    test 661 HeightIDWequirectangular(tuple-float): <class 'float'>\n    test 662 HeightIDWequirectangular(tuple-float): <class 'float'>\n    test 663 HeightIDWequirectangular(adjust=True, wrap=True): [2.689429914, 3.0]\n    test 664 HeightIDWequirectangular(list: <class 'list'>\n    test 665 HeightIDWequirectangular(list-float): <class 'float'>\n    test 666 HeightIDWequirectangular(list-float): <class 'float'>\n    test 667 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWequirectangular'>, True)\n    test 668 HeightIDWequirectangular.copy(): (<class 'pygeodesy.heights.HeightIDWequirectangular'>, True)\n    test 669 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 670 HeightIDWequirectangular.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 671 HeightIDWequirectangular.kmin: 2\n    test 672 HeightIDWequirectangular.wrap: True\n    test 673 HeightIDWequirectangular.beta: 2\n    test 674 HeightIDWequirectangular.adjust: True\n    test 675 HeightIDWequirectangular.beta: 2\n    test 676 HeightIDWequirectangular.kmin: 2\n    test 677 HeightIDWequirectangular.wrap: True\n\n    test 678 HeightIDWequirectangular(adjust=False, wrap=True): 2.689413401\n    test 679 HeightIDWequirectangular(float): <class 'float'>\n    test 680 HeightIDWequirectangular(latlon): True\n    test 681 HeightIDWequirectangular_(tuple): True\n    test 682 HeightIDWequirectangular(adjust=False, wrap=True): 3.0\n    test 683 HeightIDWequirectangular(float): <class 'float'>\n    test 684 HeightIDWequirectangular(latlon): True\n    test 685 HeightIDWequirectangular(adjust=False, wrap=True): (2.689413401, 3.0,)\n    test 686 HeightIDWequirectangular(tuple): <class 'tuple'>\n    test 687 HeightIDWequirectangular(tuple-float): <class 'float'>\n    test 688 HeightIDWequirectangular(tuple-float): <class 'float'>\n    test 689 HeightIDWequirectangular(adjust=False, wrap=True): [2.689413401, 3.0]\n    test 690 HeightIDWequirectangular(list: <class 'list'>\n    test 691 HeightIDWequirectangular(list-float): <class 'float'>\n    test 692 HeightIDWequirectangular(list-float): <class 'float'>\n    test 693 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWequirectangular'>, True)\n    test 694 HeightIDWequirectangular.copy(): (<class 'pygeodesy.heights.HeightIDWequirectangular'>, True)\n    test 695 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 696 HeightIDWequirectangular.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 697 HeightIDWequirectangular.kmin: 2\n    test 698 HeightIDWequirectangular.wrap: True\n    test 699 HeightIDWequirectangular.beta: 2\n    test 700 HeightIDWequirectangular.adjust: False\n    test 701 HeightIDWequirectangular.beta: 2\n    test 702 HeightIDWequirectangular.kmin: 2\n    test 703 HeightIDWequirectangular.wrap: True\n\n    test 704 HeightIDWeuclidean(adjust=False): 2.592735541\n    test 705 HeightIDWeuclidean(float): <class 'float'>\n    test 706 HeightIDWeuclidean(latlon): True\n    test 707 HeightIDWeuclidean_(tuple): True\n    test 708 HeightIDWeuclidean(adjust=False): 3.0\n    test 709 HeightIDWeuclidean(float): <class 'float'>\n    test 710 HeightIDWeuclidean(latlon): True\n    test 711 HeightIDWeuclidean(adjust=False): (2.592735541, 3.0,)\n    test 712 HeightIDWeuclidean(tuple): <class 'tuple'>\n    test 713 HeightIDWeuclidean(tuple-float): <class 'float'>\n    test 714 HeightIDWeuclidean(tuple-float): <class 'float'>\n    test 715 HeightIDWeuclidean(adjust=False): [2.592735541, 3.0]\n    test 716 HeightIDWeuclidean(list: <class 'list'>\n    test 717 HeightIDWeuclidean(list-float): <class 'float'>\n    test 718 HeightIDWeuclidean(list-float): <class 'float'>\n    test 719 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWeuclidean'>, True)\n    test 720 HeightIDWeuclidean.copy(): (<class 'pygeodesy.heights.HeightIDWeuclidean'>, True)\n    test 721 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 722 HeightIDWeuclidean.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 723 HeightIDWeuclidean.kmin: 2\n    test 724 HeightIDWeuclidean.wrap: None\n    test 725 HeightIDWeuclidean.beta: 2\n    test 726 HeightIDWeuclidean.adjust: False\n    test 727 HeightIDWeuclidean.beta: 2\n    test 728 HeightIDWeuclidean.kmin: 2\n    test 729 HeightIDWeuclidean.wrap: None\n\n    test 730 HeightIDWexact(): 2.592742938\n    test 731 HeightIDWexact(float): <class 'float'>\n    test 732 HeightIDWexact(latlon): True\n    test 733 HeightIDWexact_(tuple): True\n    test 734 HeightIDWexact(): 3.0\n    test 735 HeightIDWexact(float): <class 'float'>\n    test 736 HeightIDWexact(latlon): True\n    test 737 HeightIDWexact(): (2.592742938, 3.0,)\n    test 738 HeightIDWexact(tuple): <class 'tuple'>\n    test 739 HeightIDWexact(tuple-float): <class 'float'>\n    test 740 HeightIDWexact(tuple-float): <class 'float'>\n    test 741 HeightIDWexact(): [2.592742938, 3.0]\n    test 742 HeightIDWexact(list: <class 'list'>\n    test 743 HeightIDWexact(list-float): <class 'float'>\n    test 744 HeightIDWexact(list-float): <class 'float'>\n    test 745 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWexact'>, True)\n    test 746 HeightIDWexact.copy(): (<class 'pygeodesy.heights.HeightIDWexact'>, True)\n    test 747 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 748 HeightIDWexact.datum: name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84\n    test 749 HeightIDWexact.kmin: 2\n    test 750 HeightIDWexact.wrap: None\n    test 751 HeightIDWexact.beta: 2\n    test 752 HeightIDWexact.adjust: None\n    test 753 HeightIDWexact.beta: 2\n    test 754 HeightIDWexact.kmin: 2\n    test 755 HeightIDWexact.wrap: None\n\n    test 756 HeightIDWflatLocal(): 2.592743288\n    test 757 HeightIDWflatLocal(float): <class 'float'>\n    test 758 HeightIDWflatLocal(latlon): True\n    test 759 HeightIDWflatLocal_(tuple): True\n    test 760 HeightIDWflatLocal(): 3.0\n    test 761 HeightIDWflatLocal(float): <class 'float'>\n    test 762 HeightIDWflatLocal(latlon): True\n    test 763 HeightIDWflatLocal(): (2.592743288, 3.0,)\n    test 764 HeightIDWflatLocal(tuple): <class 'tuple'>\n    test 765 HeightIDWflatLocal(tuple-float): <class 'float'>\n    test 766 HeightIDWflatLocal(tuple-float): <class 'float'>\n    test 767 HeightIDWflatLocal(): [2.592743288, 3.0]\n    test 768 HeightIDWflatLocal(list: <class 'list'>\n    test 769 HeightIDWflatLocal(list-float): <class 'float'>\n    test 770 HeightIDWflatLocal(list-float): <class 'float'>\n    test 771 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWflatLocal'>, True)\n    test 772 HeightIDWflatLocal.copy(): (<class 'pygeodesy.heights.HeightIDWflatLocal'>, True)\n    test 773 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 774 HeightIDWflatLocal.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 775 HeightIDWflatLocal.kmin: 2\n    test 776 HeightIDWflatLocal.wrap: None\n    test 777 HeightIDWflatLocal.beta: 2\n    test 778 HeightIDWflatLocal.adjust: None\n    test 779 HeightIDWflatLocal.beta: 2\n    test 780 HeightIDWflatLocal.kmin: 2\n    test 781 HeightIDWflatLocal.wrap: None\n\n    test 782 HeightIDWflatPolar(): 2.592973059\n    test 783 HeightIDWflatPolar(float): <class 'float'>\n    test 784 HeightIDWflatPolar(latlon): True\n    test 785 HeightIDWflatPolar_(tuple): True\n    test 786 HeightIDWflatPolar(): 3.0\n    test 787 HeightIDWflatPolar(float): <class 'float'>\n    test 788 HeightIDWflatPolar(latlon): True\n    test 789 HeightIDWflatPolar(): (2.592973059, 3.0,)\n    test 790 HeightIDWflatPolar(tuple): <class 'tuple'>\n    test 791 HeightIDWflatPolar(tuple-float): <class 'float'>\n    test 792 HeightIDWflatPolar(tuple-float): <class 'float'>\n    test 793 HeightIDWflatPolar(): [2.592973059, 3.0]\n    test 794 HeightIDWflatPolar(list: <class 'list'>\n    test 795 HeightIDWflatPolar(list-float): <class 'float'>\n    test 796 HeightIDWflatPolar(list-float): <class 'float'>\n    test 797 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWflatPolar'>, True)\n    test 798 HeightIDWflatPolar.copy(): (<class 'pygeodesy.heights.HeightIDWflatPolar'>, True)\n    test 799 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 800 HeightIDWflatPolar.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 801 HeightIDWflatPolar.kmin: 2\n    test 802 HeightIDWflatPolar.wrap: None\n    test 803 HeightIDWflatPolar.beta: 2\n    test 804 HeightIDWflatPolar.adjust: None\n    test 805 HeightIDWflatPolar.beta: 2\n    test 806 HeightIDWflatPolar.kmin: 2\n    test 807 HeightIDWflatPolar.wrap: None\n\n    test 808 HeightIDWhaversine(): 2.592742938\n    test 809 HeightIDWhaversine(float): <class 'float'>\n    test 810 HeightIDWhaversine(latlon): True\n    test 811 HeightIDWhaversine_(tuple): True\n    test 812 HeightIDWhaversine(): 3.0\n    test 813 HeightIDWhaversine(float): <class 'float'>\n    test 814 HeightIDWhaversine(latlon): True\n    test 815 HeightIDWhaversine(): (2.592742938, 3.0,)\n    test 816 HeightIDWhaversine(tuple): <class 'tuple'>\n    test 817 HeightIDWhaversine(tuple-float): <class 'float'>\n    test 818 HeightIDWhaversine(tuple-float): <class 'float'>\n    test 819 HeightIDWhaversine(): [2.592742938, 3.0]\n    test 820 HeightIDWhaversine(list: <class 'list'>\n    test 821 HeightIDWhaversine(list-float): <class 'float'>\n    test 822 HeightIDWhaversine(list-float): <class 'float'>\n    test 823 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWhaversine'>, True)\n    test 824 HeightIDWhaversine.copy(): (<class 'pygeodesy.heights.HeightIDWhaversine'>, True)\n    test 825 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 826 HeightIDWhaversine.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 827 HeightIDWhaversine.kmin: 2\n    test 828 HeightIDWhaversine.wrap: None\n    test 829 HeightIDWhaversine.beta: 2\n    test 830 HeightIDWhaversine.adjust: None\n    test 831 HeightIDWhaversine.beta: 2\n    test 832 HeightIDWhaversine.kmin: 2\n    test 833 HeightIDWhaversine.wrap: None\n\n    test 834 HeightIDWhubeny(): 2.592743288\n    test 835 HeightIDWhubeny(float): <class 'float'>\n    test 836 HeightIDWhubeny(latlon): True\n    test 837 HeightIDWhubeny_(tuple): True\n    test 838 HeightIDWhubeny(): 3.0\n    test 839 HeightIDWhubeny(float): <class 'float'>\n    test 840 HeightIDWhubeny(latlon): True\n    test 841 HeightIDWhubeny(): (2.592743288, 3.0,)\n    test 842 HeightIDWhubeny(tuple): <class 'tuple'>\n    test 843 HeightIDWhubeny(tuple-float): <class 'float'>\n    test 844 HeightIDWhubeny(tuple-float): <class 'float'>\n    test 845 HeightIDWhubeny(): [2.592743288, 3.0]\n    test 846 HeightIDWhubeny(list: <class 'list'>\n    test 847 HeightIDWhubeny(list-float): <class 'float'>\n    test 848 HeightIDWhubeny(list-float): <class 'float'>\n    test 849 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWhubeny'>, True)\n    test 850 HeightIDWhubeny.copy(): (<class 'pygeodesy.heights.HeightIDWhubeny'>, True)\n    test 851 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 852 HeightIDWhubeny.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 853 HeightIDWhubeny.kmin: 2\n    test 854 HeightIDWhubeny.wrap: None\n    test 855 HeightIDWhubeny.beta: 2\n    test 856 HeightIDWhubeny.adjust: None\n    test 857 HeightIDWhubeny.beta: 2\n    test 858 HeightIDWhubeny.kmin: 2\n    test 859 HeightIDWhubeny.wrap: None\n\n    test 860 HeightIDWkarney(datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), wrap=True): 2.592742915\n    test 861 HeightIDWkarney(float): <class 'float'>\n    test 862 HeightIDWkarney(latlon): True\n    test 863 HeightIDWkarney_(tuple): True\n    test 864 HeightIDWkarney(datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), wrap=True): 3.0\n    test 865 HeightIDWkarney(float): <class 'float'>\n    test 866 HeightIDWkarney(latlon): True\n    test 867 HeightIDWkarney(datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), wrap=True): (2.592742915, 3.0,)\n    test 868 HeightIDWkarney(tuple): <class 'tuple'>\n    test 869 HeightIDWkarney(tuple-float): <class 'float'>\n    test 870 HeightIDWkarney(tuple-float): <class 'float'>\n    test 871 HeightIDWkarney(datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), wrap=True): [2.592742915, 3.0]\n    test 872 HeightIDWkarney(list: <class 'list'>\n    test 873 HeightIDWkarney(list-float): <class 'float'>\n    test 874 HeightIDWkarney(list-float): <class 'float'>\n    test 875 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWkarney'>, True)\n    test 876 HeightIDWkarney.copy(): (<class 'pygeodesy.heights.HeightIDWkarney'>, True)\n    test 877 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 878 HeightIDWkarney.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 879 HeightIDWkarney.kmin: 2\n    test 880 HeightIDWkarney.wrap: True\n    test 881 HeightIDWkarney.beta: 2\n    test 882 HeightIDWkarney.adjust: None\n    test 883 HeightIDWkarney.beta: 2\n    test 884 HeightIDWkarney.kmin: 2\n    test 885 HeightIDWkarney.wrap: True\n\n    test 886 HeightIDWkarney(datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), wrap=False): 2.592742915\n    test 887 HeightIDWkarney(float): <class 'float'>\n    test 888 HeightIDWkarney(latlon): True\n    test 889 HeightIDWkarney_(tuple): True\n    test 890 HeightIDWkarney(datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), wrap=False): 3.0\n    test 891 HeightIDWkarney(float): <class 'float'>\n    test 892 HeightIDWkarney(latlon): True\n    test 893 HeightIDWkarney(datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), wrap=False): (2.592742915, 3.0,)\n    test 894 HeightIDWkarney(tuple): <class 'tuple'>\n    test 895 HeightIDWkarney(tuple-float): <class 'float'>\n    test 896 HeightIDWkarney(tuple-float): <class 'float'>\n    test 897 HeightIDWkarney(datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), wrap=False): [2.592742915, 3.0]\n    test 898 HeightIDWkarney(list: <class 'list'>\n    test 899 HeightIDWkarney(list-float): <class 'float'>\n    test 900 HeightIDWkarney(list-float): <class 'float'>\n    test 901 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWkarney'>, True)\n    test 902 HeightIDWkarney.copy(): (<class 'pygeodesy.heights.HeightIDWkarney'>, True)\n    test 903 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 904 HeightIDWkarney.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 905 HeightIDWkarney.kmin: 2\n    test 906 HeightIDWkarney.wrap: False\n    test 907 HeightIDWkarney.beta: 2\n    test 908 HeightIDWkarney.adjust: None\n    test 909 HeightIDWkarney.beta: 2\n    test 910 HeightIDWkarney.kmin: 2\n    test 911 HeightIDWkarney.wrap: False\n\n    test 912 HeightIDWkarney(datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84), wrap=True): 2.592742938\n    test 913 HeightIDWkarney(float): <class 'float'>\n    test 914 HeightIDWkarney(latlon): True\n    test 915 HeightIDWkarney_(tuple): True\n    test 916 HeightIDWkarney(datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84), wrap=True): 3.0\n    test 917 HeightIDWkarney(float): <class 'float'>\n    test 918 HeightIDWkarney(latlon): True\n    test 919 HeightIDWkarney(datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84), wrap=True): (2.592742938, 3.0,)\n    test 920 HeightIDWkarney(tuple): <class 'tuple'>\n    test 921 HeightIDWkarney(tuple-float): <class 'float'>\n    test 922 HeightIDWkarney(tuple-float): <class 'float'>\n    test 923 HeightIDWkarney(datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84), wrap=True): [2.592742938, 3.0]\n    test 924 HeightIDWkarney(list: <class 'list'>\n    test 925 HeightIDWkarney(list-float): <class 'float'>\n    test 926 HeightIDWkarney(list-float): <class 'float'>\n    test 927 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWkarney'>, True)\n    test 928 HeightIDWkarney.copy(): (<class 'pygeodesy.heights.HeightIDWkarney'>, True)\n    test 929 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 930 HeightIDWkarney.datum: name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84\n    test 931 HeightIDWkarney.kmin: 2\n    test 932 HeightIDWkarney.wrap: True\n    test 933 HeightIDWkarney.beta: 2\n    test 934 HeightIDWkarney.adjust: None\n    test 935 HeightIDWkarney.beta: 2\n    test 936 HeightIDWkarney.kmin: 2\n    test 937 HeightIDWkarney.wrap: True\n\n    test 938 HeightIDWkarney(datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84), wrap=False): 2.592742938\n    test 939 HeightIDWkarney(float): <class 'float'>\n    test 940 HeightIDWkarney(latlon): True\n    test 941 HeightIDWkarney_(tuple): True\n    test 942 HeightIDWkarney(datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84), wrap=False): 3.0\n    test 943 HeightIDWkarney(float): <class 'float'>\n    test 944 HeightIDWkarney(latlon): True\n    test 945 HeightIDWkarney(datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84), wrap=False): (2.592742938, 3.0,)\n    test 946 HeightIDWkarney(tuple): <class 'tuple'>\n    test 947 HeightIDWkarney(tuple-float): <class 'float'>\n    test 948 HeightIDWkarney(tuple-float): <class 'float'>\n    test 949 HeightIDWkarney(datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84), wrap=False): [2.592742938, 3.0]\n    test 950 HeightIDWkarney(list: <class 'list'>\n    test 951 HeightIDWkarney(list-float): <class 'float'>\n    test 952 HeightIDWkarney(list-float): <class 'float'>\n    test 953 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWkarney'>, True)\n    test 954 HeightIDWkarney.copy(): (<class 'pygeodesy.heights.HeightIDWkarney'>, True)\n    test 955 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 956 HeightIDWkarney.datum: name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84\n    test 957 HeightIDWkarney.kmin: 2\n    test 958 HeightIDWkarney.wrap: False\n    test 959 HeightIDWkarney.beta: 2\n    test 960 HeightIDWkarney.adjust: None\n    test 961 HeightIDWkarney.beta: 2\n    test 962 HeightIDWkarney.kmin: 2\n    test 963 HeightIDWkarney.wrap: False\n\n    test 964 HeightIDWthomas(wrap=True): 2.592742781\n    test 965 HeightIDWthomas(float): <class 'float'>\n    test 966 HeightIDWthomas(latlon): True\n    test 967 HeightIDWthomas_(tuple): True\n    test 968 HeightIDWthomas(wrap=True): 3.0\n    test 969 HeightIDWthomas(float): <class 'float'>\n    test 970 HeightIDWthomas(latlon): True\n    test 971 HeightIDWthomas(wrap=True): (2.592742781, 3.0,)\n    test 972 HeightIDWthomas(tuple): <class 'tuple'>\n    test 973 HeightIDWthomas(tuple-float): <class 'float'>\n    test 974 HeightIDWthomas(tuple-float): <class 'float'>\n    test 975 HeightIDWthomas(wrap=True): [2.592742781, 3.0]\n    test 976 HeightIDWthomas(list: <class 'list'>\n    test 977 HeightIDWthomas(list-float): <class 'float'>\n    test 978 HeightIDWthomas(list-float): <class 'float'>\n    test 979 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWthomas'>, True)\n    test 980 HeightIDWthomas.copy(): (<class 'pygeodesy.heights.HeightIDWthomas'>, True)\n    test 981 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 982 HeightIDWthomas.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 983 HeightIDWthomas.kmin: 2\n    test 984 HeightIDWthomas.wrap: True\n    test 985 HeightIDWthomas.beta: 2\n    test 986 HeightIDWthomas.adjust: None\n    test 987 HeightIDWthomas.beta: 2\n    test 988 HeightIDWthomas.kmin: 2\n    test 989 HeightIDWthomas.wrap: True\n\n    test 990 HeightIDWthomas(wrap=False): 2.592742781\n    test 991 HeightIDWthomas(float): <class 'float'>\n    test 992 HeightIDWthomas(latlon): True\n    test 993 HeightIDWthomas_(tuple): True\n    test 994 HeightIDWthomas(wrap=False): 3.0\n    test 995 HeightIDWthomas(float): <class 'float'>\n    test 996 HeightIDWthomas(latlon): True\n    test 997 HeightIDWthomas(wrap=False): (2.592742781, 3.0,)\n    test 998 HeightIDWthomas(tuple): <class 'tuple'>\n    test 999 HeightIDWthomas(tuple-float): <class 'float'>\n    test 1000 HeightIDWthomas(tuple-float): <class 'float'>\n    test 1001 HeightIDWthomas(wrap=False): [2.592742781, 3.0]\n    test 1002 HeightIDWthomas(list: <class 'list'>\n    test 1003 HeightIDWthomas(list-float): <class 'float'>\n    test 1004 HeightIDWthomas(list-float): <class 'float'>\n    test 1005 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWthomas'>, True)\n    test 1006 HeightIDWthomas.copy(): (<class 'pygeodesy.heights.HeightIDWthomas'>, True)\n    test 1007 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 1008 HeightIDWthomas.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 1009 HeightIDWthomas.kmin: 2\n    test 1010 HeightIDWthomas.wrap: False\n    test 1011 HeightIDWthomas.beta: 2\n    test 1012 HeightIDWthomas.adjust: None\n    test 1013 HeightIDWthomas.beta: 2\n    test 1014 HeightIDWthomas.kmin: 2\n    test 1015 HeightIDWthomas.wrap: False\n\n    test 1016 HeightIDWvincentys(wrap=True): 2.592742938\n    test 1017 HeightIDWvincentys(float): <class 'float'>\n    test 1018 HeightIDWvincentys(latlon): True\n    test 1019 HeightIDWvincentys_(tuple): True\n    test 1020 HeightIDWvincentys(wrap=True): 3.0\n    test 1021 HeightIDWvincentys(float): <class 'float'>\n    test 1022 HeightIDWvincentys(latlon): True\n    test 1023 HeightIDWvincentys(wrap=True): (2.592742938, 3.0,)\n    test 1024 HeightIDWvincentys(tuple): <class 'tuple'>\n    test 1025 HeightIDWvincentys(tuple-float): <class 'float'>\n    test 1026 HeightIDWvincentys(tuple-float): <class 'float'>\n    test 1027 HeightIDWvincentys(wrap=True): [2.592742938, 3.0]\n    test 1028 HeightIDWvincentys(list: <class 'list'>\n    test 1029 HeightIDWvincentys(list-float): <class 'float'>\n    test 1030 HeightIDWvincentys(list-float): <class 'float'>\n    test 1031 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWvincentys'>, True)\n    test 1032 HeightIDWvincentys.copy(): (<class 'pygeodesy.heights.HeightIDWvincentys'>, True)\n    test 1033 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 1034 HeightIDWvincentys.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 1035 HeightIDWvincentys.kmin: 2\n    test 1036 HeightIDWvincentys.wrap: True\n    test 1037 HeightIDWvincentys.beta: 2\n    test 1038 HeightIDWvincentys.adjust: None\n    test 1039 HeightIDWvincentys.beta: 2\n    test 1040 HeightIDWvincentys.kmin: 2\n    test 1041 HeightIDWvincentys.wrap: True\n\n    test 1042 HeightIDWvincentys(wrap=False): 2.592742938\n    test 1043 HeightIDWvincentys(float): <class 'float'>\n    test 1044 HeightIDWvincentys(latlon): True\n    test 1045 HeightIDWvincentys_(tuple): True\n    test 1046 HeightIDWvincentys(wrap=False): 3.0\n    test 1047 HeightIDWvincentys(float): <class 'float'>\n    test 1048 HeightIDWvincentys(latlon): True\n    test 1049 HeightIDWvincentys(wrap=False): (2.592742938, 3.0,)\n    test 1050 HeightIDWvincentys(tuple): <class 'tuple'>\n    test 1051 HeightIDWvincentys(tuple-float): <class 'float'>\n    test 1052 HeightIDWvincentys(tuple-float): <class 'float'>\n    test 1053 HeightIDWvincentys(wrap=False): [2.592742938, 3.0]\n    test 1054 HeightIDWvincentys(list: <class 'list'>\n    test 1055 HeightIDWvincentys(list-float): <class 'float'>\n    test 1056 HeightIDWvincentys(list-float): <class 'float'>\n    test 1057 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWvincentys'>, True)\n    test 1058 HeightIDWvincentys.copy(): (<class 'pygeodesy.heights.HeightIDWvincentys'>, True)\n    test 1059 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 1060 HeightIDWvincentys.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 1061 HeightIDWvincentys.kmin: 2\n    test 1062 HeightIDWvincentys.wrap: False\n    test 1063 HeightIDWvincentys.beta: 2\n    test 1064 HeightIDWvincentys.adjust: None\n    test 1065 HeightIDWvincentys.beta: 2\n    test 1066 HeightIDWvincentys.kmin: 2\n    test 1067 HeightIDWvincentys.wrap: False\n    test 1068 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightLinear'>, True)\n    test 1069 HeightLinear.copy(): (<class 'pygeodesy.heights.HeightLinear'>, True)\n    test 1070 HeightLinear: 2.536626441\n    test 1071 HeightLinear(float): <class 'float'>\n    test 1072 HeightLinear(latlon): True\n    test 1073 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightCubic'>, True)\n    test 1074 HeightCubic.copy(): (<class 'pygeodesy.heights.HeightCubic'>, True)\n    test 1075 HeightError: llis[0] (9.0): 'float' object has no attribute 'lat'\n    test 1076 HeightCubic.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 1077 HeightCubic.kmin: 16\n    test 1078 HeightCubic.wrap: None\n    test 1079 HeightCubic: 3.000000000\n    test 1080 HeightCubic(float): <class 'float'>\n    test 1081 HeightCubic(latlon): True\n    test 1082 HeightCubic_(tuple): True\n    test 1083 HeightCubic(tuple): <class 'tuple'>\n    test 1084 HeightCubic(tuple-float): <class 'float'>\n    test 1085 HeightCubic(tuple-float): <class 'float'>\n    test 1086 HeightCubic(list): <class 'list'>\n    test 1087 HeightCubic(list-float): <class 'float'>\n    test 1088 HeightCubic(list-float): <class 'float'>\n    test 1089 HeightCubic(latlon): True\n\n    test 1090 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWcosineLaw'>, True)\n    test 1091 HeightIDWcosineLaw.copy(): (<class 'pygeodesy.heights.HeightIDWcosineLaw'>, True)\n    test 1092 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 1093 HeightIDWcosineLaw.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 1094 HeightIDWcosineLaw.kmin: 2\n    test 1095 HeightIDWcosineLaw.wrap: None\n    test 1096 HeightIDWcosineLaw: 2.402157442\n    test 1097 HeightIDWcosineLaw(float): <class 'float'>\n    test 1098 HeightIDWcosineLaw(latlon): True\n    test 1099 HeightIDWcosineLaw_(tuple): True\n    test 1100 HeightIDWcosineLaw(tuple): <class 'tuple'>\n    test 1101 HeightIDWcosineLaw(tuple-float): <class 'float'>\n    test 1102 HeightIDWcosineLaw(tuple-float): <class 'float'>\n    test 1103 HeightIDWcosineLaw(list): <class 'list'>\n    test 1104 HeightIDWcosineLaw(list-float): <class 'float'>\n    test 1105 HeightIDWcosineLaw(list-float): <class 'float'>\n    test 1106 HeightIDWcosineLaw(latlon): True\n\n    test 1107 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWcosineLaw'>, True)\n    test 1108 HeightIDWcosineLaw.copy(): (<class 'pygeodesy.heights.HeightIDWcosineLaw'>, True)\n    test 1109 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 1110 HeightIDWcosineLaw.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 1111 HeightIDWcosineLaw.kmin: 2\n    test 1112 HeightIDWcosineLaw.wrap: None\n    test 1113 HeightIDWcosineLaw: 2.401661864\n    test 1114 HeightIDWcosineLaw(float): <class 'float'>\n    test 1115 HeightIDWcosineLaw(latlon): True\n    test 1116 HeightIDWcosineLaw_(tuple): True\n    test 1117 HeightIDWcosineLaw(tuple): <class 'tuple'>\n    test 1118 HeightIDWcosineLaw(tuple-float): <class 'float'>\n    test 1119 HeightIDWcosineLaw(tuple-float): <class 'float'>\n    test 1120 HeightIDWcosineLaw(list): <class 'list'>\n    test 1121 HeightIDWcosineLaw(list-float): <class 'float'>\n    test 1122 HeightIDWcosineLaw(list-float): <class 'float'>\n    test 1123 HeightIDWcosineLaw(latlon): True\n\n    test 1124 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWcosineLaw'>, True)\n    test 1125 HeightIDWcosineLaw.copy(): (<class 'pygeodesy.heights.HeightIDWcosineLaw'>, True)\n    test 1126 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 1127 HeightIDWcosineLaw.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 1128 HeightIDWcosineLaw.kmin: 2\n    test 1129 HeightIDWcosineLaw.wrap: None\n    test 1130 HeightIDWcosineLaw: 2.401661859\n    test 1131 HeightIDWcosineLaw(float): <class 'float'>\n    test 1132 HeightIDWcosineLaw(latlon): True\n    test 1133 HeightIDWcosineLaw_(tuple): True\n    test 1134 HeightIDWcosineLaw(tuple): <class 'tuple'>\n    test 1135 HeightIDWcosineLaw(tuple-float): <class 'float'>\n    test 1136 HeightIDWcosineLaw(tuple-float): <class 'float'>\n    test 1137 HeightIDWcosineLaw(list): <class 'list'>\n    test 1138 HeightIDWcosineLaw(list-float): <class 'float'>\n    test 1139 HeightIDWcosineLaw(list-float): <class 'float'>\n    test 1140 HeightIDWcosineLaw(latlon): True\n\n    test 1141 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWequirectangular'>, True)\n    test 1142 HeightIDWequirectangular.copy(): (<class 'pygeodesy.heights.HeightIDWequirectangular'>, True)\n    test 1143 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 1144 HeightIDWequirectangular.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 1145 HeightIDWequirectangular.kmin: 2\n    test 1146 HeightIDWequirectangular.wrap: None\n    test 1147 HeightIDWequirectangular: 2.469718302\n    test 1148 HeightIDWequirectangular(float): <class 'float'>\n    test 1149 HeightIDWequirectangular(latlon): True\n    test 1150 HeightIDWequirectangular_(tuple): True\n    test 1151 HeightIDWequirectangular(tuple): <class 'tuple'>\n    test 1152 HeightIDWequirectangular(tuple-float): <class 'float'>\n    test 1153 HeightIDWequirectangular(tuple-float): <class 'float'>\n    test 1154 HeightIDWequirectangular(list): <class 'list'>\n    test 1155 HeightIDWequirectangular(list-float): <class 'float'>\n    test 1156 HeightIDWequirectangular(list-float): <class 'float'>\n    test 1157 HeightIDWequirectangular(latlon): True\n\n    test 1158 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWeuclidean'>, True)\n    test 1159 HeightIDWeuclidean.copy(): (<class 'pygeodesy.heights.HeightIDWeuclidean'>, True)\n    test 1160 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 1161 HeightIDWeuclidean.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 1162 HeightIDWeuclidean.kmin: 2\n    test 1163 HeightIDWeuclidean.wrap: None\n    test 1164 HeightIDWeuclidean: 2.409288552\n    test 1165 HeightIDWeuclidean(float): <class 'float'>\n    test 1166 HeightIDWeuclidean(latlon): True\n    test 1167 HeightIDWeuclidean_(tuple): True\n    test 1168 HeightIDWeuclidean(tuple): <class 'tuple'>\n    test 1169 HeightIDWeuclidean(tuple-float): <class 'float'>\n    test 1170 HeightIDWeuclidean(tuple-float): <class 'float'>\n    test 1171 HeightIDWeuclidean(list): <class 'list'>\n    test 1172 HeightIDWeuclidean(list-float): <class 'float'>\n    test 1173 HeightIDWeuclidean(list-float): <class 'float'>\n    test 1174 HeightIDWeuclidean(latlon): True\n\n    test 1175 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWexact'>, True)\n    test 1176 HeightIDWexact.copy(): (<class 'pygeodesy.heights.HeightIDWexact'>, True)\n    test 1177 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 1178 HeightIDWexact.datum: name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84\n    test 1179 HeightIDWexact.kmin: 2\n    test 1180 HeightIDWexact.wrap: None\n    test 1181 HeightIDWexact: 2.402157442\n    test 1182 HeightIDWexact(float): <class 'float'>\n    test 1183 HeightIDWexact(latlon): True\n    test 1184 HeightIDWexact_(tuple): True\n    test 1185 HeightIDWexact(tuple): <class 'tuple'>\n    test 1186 HeightIDWexact(tuple-float): <class 'float'>\n    test 1187 HeightIDWexact(tuple-float): <class 'float'>\n    test 1188 HeightIDWexact(list): <class 'list'>\n    test 1189 HeightIDWexact(list-float): <class 'float'>\n    test 1190 HeightIDWexact(list-float): <class 'float'>\n    test 1191 HeightIDWexact(latlon): True\n\n    test 1192 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWflatLocal'>, True)\n    test 1193 HeightIDWflatLocal.copy(): (<class 'pygeodesy.heights.HeightIDWflatLocal'>, True)\n    test 1194 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 1195 HeightIDWflatLocal.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 1196 HeightIDWflatLocal.kmin: 2\n    test 1197 HeightIDWflatLocal.wrap: None\n    test 1198 HeightIDWflatLocal: 2.401661562\n    test 1199 HeightIDWflatLocal(float): <class 'float'>\n    test 1200 HeightIDWflatLocal(latlon): True\n    test 1201 HeightIDWflatLocal_(tuple): True\n    test 1202 HeightIDWflatLocal(tuple): <class 'tuple'>\n    test 1203 HeightIDWflatLocal(tuple-float): <class 'float'>\n    test 1204 HeightIDWflatLocal(tuple-float): <class 'float'>\n    test 1205 HeightIDWflatLocal(list): <class 'list'>\n    test 1206 HeightIDWflatLocal(list-float): <class 'float'>\n    test 1207 HeightIDWflatLocal(list-float): <class 'float'>\n    test 1208 HeightIDWflatLocal(latlon): True\n\n    test 1209 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWflatPolar'>, True)\n    test 1210 HeightIDWflatPolar.copy(): (<class 'pygeodesy.heights.HeightIDWflatPolar'>, True)\n    test 1211 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 1212 HeightIDWflatPolar.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 1213 HeightIDWflatPolar.kmin: 2\n    test 1214 HeightIDWflatPolar.wrap: None\n    test 1215 HeightIDWflatPolar: 2.370266641\n    test 1216 HeightIDWflatPolar(float): <class 'float'>\n    test 1217 HeightIDWflatPolar(latlon): True\n    test 1218 HeightIDWflatPolar_(tuple): True\n    test 1219 HeightIDWflatPolar(tuple): <class 'tuple'>\n    test 1220 HeightIDWflatPolar(tuple-float): <class 'float'>\n    test 1221 HeightIDWflatPolar(tuple-float): <class 'float'>\n    test 1222 HeightIDWflatPolar(list): <class 'list'>\n    test 1223 HeightIDWflatPolar(list-float): <class 'float'>\n    test 1224 HeightIDWflatPolar(list-float): <class 'float'>\n    test 1225 HeightIDWflatPolar(latlon): True\n\n    test 1226 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWhaversine'>, True)\n    test 1227 HeightIDWhaversine.copy(): (<class 'pygeodesy.heights.HeightIDWhaversine'>, True)\n    test 1228 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 1229 HeightIDWhaversine.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 1230 HeightIDWhaversine.kmin: 2\n    test 1231 HeightIDWhaversine.wrap: None\n    test 1232 HeightIDWhaversine: 2.402157442\n    test 1233 HeightIDWhaversine(float): <class 'float'>\n    test 1234 HeightIDWhaversine(latlon): True\n    test 1235 HeightIDWhaversine_(tuple): True\n    test 1236 HeightIDWhaversine(tuple): <class 'tuple'>\n    test 1237 HeightIDWhaversine(tuple-float): <class 'float'>\n    test 1238 HeightIDWhaversine(tuple-float): <class 'float'>\n    test 1239 HeightIDWhaversine(list): <class 'list'>\n    test 1240 HeightIDWhaversine(list-float): <class 'float'>\n    test 1241 HeightIDWhaversine(list-float): <class 'float'>\n    test 1242 HeightIDWhaversine(latlon): True\n\n    test 1243 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWhubeny'>, True)\n    test 1244 HeightIDWhubeny.copy(): (<class 'pygeodesy.heights.HeightIDWhubeny'>, True)\n    test 1245 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 1246 HeightIDWhubeny.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 1247 HeightIDWhubeny.kmin: 2\n    test 1248 HeightIDWhubeny.wrap: None\n    test 1249 HeightIDWhubeny: 2.401661562\n    test 1250 HeightIDWhubeny(float): <class 'float'>\n    test 1251 HeightIDWhubeny(latlon): True\n    test 1252 HeightIDWhubeny_(tuple): True\n    test 1253 HeightIDWhubeny(tuple): <class 'tuple'>\n    test 1254 HeightIDWhubeny(tuple-float): <class 'float'>\n    test 1255 HeightIDWhubeny(tuple-float): <class 'float'>\n    test 1256 HeightIDWhubeny(list): <class 'list'>\n    test 1257 HeightIDWhubeny(list-float): <class 'float'>\n    test 1258 HeightIDWhubeny(list-float): <class 'float'>\n    test 1259 HeightIDWhubeny(latlon): True\n\n    test 1260 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWkarney'>, True)\n    test 1261 HeightIDWkarney.copy(): (<class 'pygeodesy.heights.HeightIDWkarney'>, True)\n    test 1262 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 1263 HeightIDWkarney.datum: name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84\n    test 1264 HeightIDWkarney.kmin: 2\n    test 1265 HeightIDWkarney.wrap: None\n    test 1266 HeightIDWkarney: 2.402157442\n    test 1267 HeightIDWkarney(float): <class 'float'>\n    test 1268 HeightIDWkarney(latlon): True\n    test 1269 HeightIDWkarney_(tuple): True\n    test 1270 HeightIDWkarney(tuple): <class 'tuple'>\n    test 1271 HeightIDWkarney(tuple-float): <class 'float'>\n    test 1272 HeightIDWkarney(tuple-float): <class 'float'>\n    test 1273 HeightIDWkarney(list): <class 'list'>\n    test 1274 HeightIDWkarney(list-float): <class 'float'>\n    test 1275 HeightIDWkarney(list-float): <class 'float'>\n    test 1276 HeightIDWkarney(latlon): True\n\n    test 1277 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWthomas'>, True)\n    test 1278 HeightIDWthomas.copy(): (<class 'pygeodesy.heights.HeightIDWthomas'>, True)\n    test 1279 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 1280 HeightIDWthomas.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 1281 HeightIDWthomas.kmin: 2\n    test 1282 HeightIDWthomas.wrap: None\n    test 1283 HeightIDWthomas: 2.401661653\n    test 1284 HeightIDWthomas(float): <class 'float'>\n    test 1285 HeightIDWthomas(latlon): True\n    test 1286 HeightIDWthomas_(tuple): True\n    test 1287 HeightIDWthomas(tuple): <class 'tuple'>\n    test 1288 HeightIDWthomas(tuple-float): <class 'float'>\n    test 1289 HeightIDWthomas(tuple-float): <class 'float'>\n    test 1290 HeightIDWthomas(list): <class 'list'>\n    test 1291 HeightIDWthomas(list-float): <class 'float'>\n    test 1292 HeightIDWthomas(list-float): <class 'float'>\n    test 1293 HeightIDWthomas(latlon): True\n\n    test 1294 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWvincentys'>, True)\n    test 1295 HeightIDWvincentys.copy(): (<class 'pygeodesy.heights.HeightIDWvincentys'>, True)\n    test 1296 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 1297 HeightIDWvincentys.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 1298 HeightIDWvincentys.kmin: 2\n    test 1299 HeightIDWvincentys.wrap: None\n    test 1300 HeightIDWvincentys: 2.402157442\n    test 1301 HeightIDWvincentys(float): <class 'float'>\n    test 1302 HeightIDWvincentys(latlon): True\n    test 1303 HeightIDWvincentys_(tuple): True\n    test 1304 HeightIDWvincentys(tuple): <class 'tuple'>\n    test 1305 HeightIDWvincentys(tuple-float): <class 'float'>\n    test 1306 HeightIDWvincentys(tuple-float): <class 'float'>\n    test 1307 HeightIDWvincentys(list): <class 'list'>\n    test 1308 HeightIDWvincentys(list-float): <class 'float'>\n    test 1309 HeightIDWvincentys(list-float): <class 'float'>\n    test 1310 HeightIDWvincentys(latlon): True\n\n    test 1311 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightLinear'>, True)\n    test 1312 HeightLinear.copy(): (<class 'pygeodesy.heights.HeightLinear'>, True)\n    test 1313 HeightError: llis[0] (9.0): 'float' object has no attribute 'lat'\n    test 1314 HeightLinear.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 1315 HeightLinear.kmin: 2\n    test 1316 HeightLinear.wrap: None\n    test 1317 HeightLinear: 2.294914622\n    test 1318 HeightLinear(float): <class 'float'>\n    test 1319 HeightLinear(latlon): True\n    test 1320 HeightLinear_(tuple): True\n    test 1321 HeightLinear(tuple): <class 'tuple'>\n    test 1322 HeightLinear(tuple-float): <class 'float'>\n    test 1323 HeightLinear(tuple-float): <class 'float'>\n    test 1324 HeightLinear(list): <class 'list'>\n    test 1325 HeightLinear(list-float): <class 'float'>\n    test 1326 HeightLinear(list-float): <class 'float'>\n    test 1327 HeightLinear(latlon): True\n\n    test 1328 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightLSQBiSpline'>, True)\n    test 1329 HeightLSQBiSpline.copy(): (<class 'pygeodesy.heights.HeightLSQBiSpline'>, True)\n    test 1330 HeightError: llis[0] (9.0): 'float' object has no attribute 'lat'\n    test 1331 HeightLSQBiSpline.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 1332 HeightLSQBiSpline.kmin: 16\n    test 1333 HeightLSQBiSpline.wrap: None\n    test 1334 HeightLSQBiSpline: 6.419251669\n    test 1335 HeightLSQBiSpline(float): <class 'float'>\n    test 1336 HeightLSQBiSpline(latlon): True\n    test 1337 HeightLSQBiSpline_(tuple): True\n    test 1338 HeightLSQBiSpline(tuple): <class 'tuple'>\n    test 1339 HeightLSQBiSpline(tuple-float): <class 'float'>\n    test 1340 HeightLSQBiSpline(tuple-float): <class 'float'>\n    test 1341 HeightLSQBiSpline(list): <class 'list'>\n    test 1342 HeightLSQBiSpline(list-float): <class 'float'>\n    test 1343 HeightLSQBiSpline(list-float): <class 'float'>\n    test 1344 HeightLSQBiSpline(latlon): True\n\n    test 1345 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightLSQBiSpline'>, True)\n    test 1346 HeightLSQBiSpline.copy(): (<class 'pygeodesy.heights.HeightLSQBiSpline'>, True)\n    test 1347 HeightError: llis[0] (9.0): 'float' object has no attribute 'lat'\n    test 1348 HeightLSQBiSpline.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 1349 HeightLSQBiSpline.kmin: 16\n    test 1350 HeightLSQBiSpline.wrap: None\n    test 1351 HeightLSQBiSpline: 6.419251669\n    test 1352 HeightLSQBiSpline(float): <class 'float'>\n    test 1353 HeightLSQBiSpline(latlon): True\n    test 1354 HeightLSQBiSpline_(tuple): True\n    test 1355 HeightLSQBiSpline(tuple): <class 'tuple'>\n    test 1356 HeightLSQBiSpline(tuple-float): <class 'float'>\n    test 1357 HeightLSQBiSpline(tuple-float): <class 'float'>\n    test 1358 HeightLSQBiSpline(list): <class 'list'>\n    test 1359 HeightLSQBiSpline(list-float): <class 'float'>\n    test 1360 HeightLSQBiSpline(list-float): <class 'float'>\n    test 1361 HeightLSQBiSpline(latlon): True\n\n    test 1362 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightLSQBiSpline'>, True)\n    test 1363 HeightLSQBiSpline.copy(): (<class 'pygeodesy.heights.HeightLSQBiSpline'>, True)\n    test 1364 HeightError: llis[0] (9.0): 'float' object has no attribute 'lat'\n    test 1365 HeightLSQBiSpline.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 1366 HeightLSQBiSpline.kmin: 16\n    test 1367 HeightLSQBiSpline.wrap: None\n    test 1368 HeightLSQBiSpline: 6.419251669\n    test 1369 HeightLSQBiSpline(float): <class 'float'>\n    test 1370 HeightLSQBiSpline(latlon): True\n    test 1371 HeightLSQBiSpline_(tuple): True\n    test 1372 HeightLSQBiSpline(tuple): <class 'tuple'>\n    test 1373 HeightLSQBiSpline(tuple-float): <class 'float'>\n    test 1374 HeightLSQBiSpline(tuple-float): <class 'float'>\n    test 1375 HeightLSQBiSpline(list): <class 'list'>\n    test 1376 HeightLSQBiSpline(list-float): <class 'float'>\n    test 1377 HeightLSQBiSpline(list-float): <class 'float'>\n    test 1378 HeightLSQBiSpline(latlon): True\n\n    test 1379 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightSmoothBiSpline'>, True)\n    test 1380 HeightSmoothBiSpline.copy(): (<class 'pygeodesy.heights.HeightSmoothBiSpline'>, True)\n    test 1381 HeightError: llis[0] (9.0): 'float' object has no attribute 'lat'\n    test 1382 HeightSmoothBiSpline.datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 1383 HeightSmoothBiSpline.kmin: 16\n    test 1384 HeightSmoothBiSpline.wrap: None\n    test 1385 HeightSmoothBiSpline: 2.598922541\n    test 1386 HeightSmoothBiSpline(float): <class 'float'>\n    test 1387 HeightSmoothBiSpline(latlon): True\n    test 1388 HeightSmoothBiSpline_(tuple): True\n    test 1389 HeightSmoothBiSpline(tuple): <class 'tuple'>\n    test 1390 HeightSmoothBiSpline(tuple-float): <class 'float'>\n    test 1391 HeightSmoothBiSpline(tuple-float): <class 'float'>\n    test 1392 HeightSmoothBiSpline(list): <class 'list'>\n    test 1393 HeightSmoothBiSpline(list-float): <class 'float'>\n    test 1394 HeightSmoothBiSpline(list-float): <class 'float'>\n    test 1395 HeightSmoothBiSpline(latlon): True\n\n\n    9 of 1395 testHeights.py tests (0.6%) FAILED, incl. 9 DeprecationWarnings (pygeodesy 26.3.26 Python 3.13.12 64bit arm64 coverage 7.10.7 geographiclib 2.1 numpy 2.3.3 scipy 1.16.2 Math 2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 macOS 26.3.1 isLazy 1 -W  default) 8.312 sec\nrunning /Library/Framewo....n3.13 -W default ~/PyGeodesy/test/testInterns.py\n\n    testing testInterns.py 25.04.12 (module pygeodesy.interns 25.11.07) isLazy=1\n    test 1 _0_ = '0': True\n    test 2 _0_ = '0': 0\n    test 3 _0to9_ = '0123456789': True\n    test 4 _0to9_ = '0123456789': 0123456789  FAILED, KNOWN, expected 0to9\n    test 5 _1_ = '1': True\n    test 6 _1_ = '1': 1\n    test 7 _2_ = '2': True\n    test 8 _2_ = '2': 2\n    test 9 _3_ = '3': True\n    test 10 _3_ = '3': 3\n    test 11 _4_ = '4': True\n    test 12 _4_ = '4': 4\n    test 13 __all__ = ('NN', 'Str_'): False  FAILED, KNOWN, expected True\n    test 14 __builtins__ = {'__name__': 'builtins', ....) for help about object.}: False  FAILED, KNOWN, expected True\n    test 15 __cached__ = './pygeodesy/__pycache__/interns.cpython-313.pyc': True\n    test 16 __doc__ = \"Single C{str}ing constan.... L{pygeodesy.machine}.\\n\": True\n    test 17 __file__ = './pygeodesy/interns.py': True\n    test 18 __loader__ = <_frozen_importlib_extern....er object at 0x108310b30>: False  FAILED, KNOWN, expected True\n    test 19 __name__ = 'pygeodesy.interns': True\n    test 20 __package__ = 'pygeodesy': True\n    test 21 __spec__ = ModuleSpec(name='pygeodes....'./pygeodesy/interns.py'): False  FAILED, KNOWN, expected True\n    test 22 __version__ = '25.11.07': True\n    test 23 _a12_ = 'a12': True\n    test 24 _a12_ = 'a12': a12\n    test 25 _A_ = 'A': True\n    test 26 _A_ = 'A': a\n    test 27 _a_ = 'a': True\n    test 28 _a_ = 'a': a\n    test 29 _Airy1830_ = 'Airy1830': True\n    test 30 _Airy1830_ = 'Airy1830': airy1830\n    test 31 _AiryModified_ = 'AiryModified': True\n    test 32 _AiryModified_ = 'AiryModified': airymodified\n    test 33 _ambiguous_ = 'ambiguous': True\n    test 34 _ambiguous_ = 'ambiguous': ambiguous\n    test 35 _AMPERSAND_ = '&': True\n    test 36 _AMPERSAND_ = '&': &  FAILED, KNOWN, expected ampersand\n    test 37 _an_ = 'an': True\n    test 38 _an_ = 'an': an\n    test 39 _and_ = 'and': True\n    test 40 _and_ = 'and': and\n    test 41 _angle_ = 'angle': True\n    test 42 _angle_ = 'angle': angle\n    test 43 _antipodal_ = 'antipodal': True\n    test 44 _antipodal_ = 'antipodal': antipodal\n    test 45 _area_ = 'area': True\n    test 46 _area_ = 'area': area\n    test 47 _arg_ = 'arg': True\n    test 48 _arg_ = 'arg': arg\n    test 49 _AT_ = '@': True\n    test 50 _AT_ = '@': @  FAILED, KNOWN, expected at\n    test 51 _AtoZnoIO_ = 'ABCDEFGHJKLMNPQRSTUVWXYZ': True\n    test 52 _AtoZnoIO_ = 'ABCDEFGHJKLMNPQRSTUVWXYZ': abcdefghjklmnpqrstuvwxyz  FAILED, KNOWN, expected atoznoio\n    test 53 _attribute_ = 'attribute': True\n    test 54 _attribute_ = 'attribute': attribute\n    test 55 _azi12_ = 'azi12': True\n    test 56 _azi12_ = 'azi12': azi12\n    test 57 _azi1_ = 'azi1': True\n    test 58 _azi1_ = 'azi1': azi1\n    test 59 _azi2_ = 'azi2': True\n    test 60 _azi2_ = 'azi2': azi2\n    test 61 _azimuth_ = 'azimuth': True\n    test 62 _azimuth_ = 'azimuth': azimuth\n    test 63 _B_ = 'B': True\n    test 64 _B_ = 'B': b\n    test 65 _b_ = 'b': True\n    test 66 _b_ = 'b': b\n    test 67 _BACKSLASH_ = '\\\\': True\n    test 68 _BACKSLASH_ = '\\\\': \\  FAILED, KNOWN, expected backslash\n    test 69 _band_ = 'band': True\n    test 70 _band_ = 'band': band\n    test 71 _BANG_ = '!': True\n    test 72 _BANG_ = '!': !  FAILED, KNOWN, expected bang\n    test 73 _BAR_ = '|': True\n    test 74 _BAR_ = '|': |  FAILED, KNOWN, expected bar\n    test 75 _bearing_ = 'bearing': True\n    test 76 _bearing_ = 'bearing': bearing\n    test 77 _Bessel1841_ = 'Bessel1841': True\n    test 78 _Bessel1841_ = 'Bessel1841': bessel1841\n    test 79 _beta_ = 'beta': True\n    test 80 _beta_ = 'beta': beta\n    test 81 _by_ = 'by': True\n    test 82 _by_ = 'by': by\n    test 83 _C_ = 'C': True\n    test 84 _C_ = 'C': c\n    test 85 _c_ = 'c': True\n    test 86 _c_ = 'c': c\n    test 87 _cartesian_ = 'cartesian': True\n    test 88 _cartesian_ = 'cartesian': cartesian\n    test 89 _center_ = 'center': True\n    test 90 _center_ = 'center': center\n    test 91 _Clarke1866_ = 'Clarke1866': True\n    test 92 _Clarke1866_ = 'Clarke1866': clarke1866\n    test 93 _Clarke1880IGN_ = 'Clarke1880IGN': True\n    test 94 _Clarke1880IGN_ = 'Clarke1880IGN': clarke1880ign\n    test 95 _clip_ = 'clip': True\n    test 96 _clip_ = 'clip': clip\n    test 97 _clipid_ = 'clipid': True\n    test 98 _clipid_ = 'clipid': clipid\n    test 99 _coincident_ = 'coincident': True\n    test 100 _coincident_ = 'coincident': coincident\n    test 101 _colinear_ = 'colinear': True\n    test 102 _colinear_ = 'colinear': colinear\n    test 103 _COLON_ = ':': True\n    test 104 _COLON_ = ':': :  FAILED, KNOWN, expected colon\n    test 105 _COLONSPACE_ = ': ': True\n    test 106 _COLONSPACE_ = ': ': :   FAILED, KNOWN, expected colonspace\n    test 107 _COMMA_ = ',': True\n    test 108 _COMMA_ = ',': ,  FAILED, KNOWN, expected comma\n    test 109 _COMMASPACE_ = ', ': True\n    test 110 _COMMASPACE_ = ', ': ,   FAILED, KNOWN, expected commaspace\n    test 111 _composite_ = 'composite': True\n    test 112 _composite_ = 'composite': composite\n    test 113 _concentric_ = 'concentric': True\n    test 114 _concentric_ = 'concentric': concentric\n    test 115 _convergence_ = 'convergence': True\n    test 116 _convergence_ = 'convergence': convergence\n    test 117 _conversion_ = 'conversion': True\n    test 118 _conversion_ = 'conversion': conversion\n    test 119 _convex_ = 'convex': True\n    test 120 _convex_ = 'convex': convex\n    test 121 _D_ = 'D': True\n    test 122 _D_ = 'D': d\n    test 123 _d_ = 'd': True\n    test 124 _d_ = 'd': d\n    test 125 _DALL_ = '__all__': True\n    test 126 _DALL_ = '__all__': __all__  FAILED, KNOWN, expected dall\n    test 127 _DASH_ = '-': True\n    test 128 _DASH_ = '-': -  FAILED, KNOWN, expected dash\n    test 129 _datum_ = 'datum': True\n    test 130 _datum_ = 'datum': datum\n    test 131 _DDOT_ = '..': True\n    test 132 _DDOT_ = '..': ..  FAILED, KNOWN, expected ddot\n    test 133 _decode3_ = 'decode3': True\n    test 134 _decode3_ = 'decode3': decode3\n    test 135 _deg_ = 'deg': True\n    test 136 _deg_ = 'deg': deg\n    test 137 _degrees2_ = 'degrees2': True\n    test 138 _degrees2_ = 'degrees2': degrees2\n    test 139 _degrees_ = 'degrees': True\n    test 140 _degrees_ = 'degrees': degrees\n    test 141 _delta_ = 'delta': True\n    test 142 _delta_ = 'delta': delta\n    test 143 _DEPRECATED_ = 'DEPRECATED': True\n    test 144 _DEPRECATED_ = 'DEPRECATED': deprecated\n    test 145 _DEQUALSPACED_ = ' == ': True\n    test 146 _DEQUALSPACED_ = ' == ':  ==   FAILED, KNOWN, expected dequalspaced\n    test 147 _distance_ = 'distance': True\n    test 148 _distance_ = 'distance': distance\n    test 149 _distant_ = 'distant': True\n    test 150 _distant_ = 'distant': distant\n    test 151 _DMAIN_ = '__main__': True\n    test 152 _DMAIN_ = '__main__': __main__  FAILED, KNOWN, expected dmain\n    test 153 _DNAME_ = '__name__': True\n    test 154 _DNAME_ = '__name__': __name__  FAILED, KNOWN, expected dname\n    test 155 _doesn_t_exist_ = \"doesn't exist\": True\n    test 156 _doesn_t_exist_ = \"doesn't exist\": doesn't exist  FAILED, KNOWN, expected doesn_t_exist\n    test 157 _DOT_ = '.': True\n    test 158 _DOT_ = '.': .  FAILED, KNOWN, expected dot\n    test 159 _DSLASH_ = '//': True\n    test 160 _DSLASH_ = '//': //  FAILED, KNOWN, expected dslash\n    test 161 _DSTAR_ = '**': True\n    test 162 _DSTAR_ = '**': **  FAILED, KNOWN, expected dstar\n    test 163 _DUNDER_ = '__': True\n    test 164 _DUNDER_ = '__': __  FAILED, KNOWN, expected dunder\n    test 165 _duplicate_ = 'duplicate': True\n    test 166 _duplicate_ = 'duplicate': duplicate\n    test 167 _E_ = 'E': True\n    test 168 _E_ = 'E': e\n    test 169 _e_ = 'e': True\n    test 170 _e_ = 'e': e\n    test 171 _earth_ = 'earth': True\n    test 172 _earth_ = 'earth': earth\n    test 173 _easting_ = 'easting': True\n    test 174 _easting_ = 'easting': easting\n    test 175 _ecef_ = 'ecef': True\n    test 176 _ecef_ = 'ecef': ecef\n    test 177 _edge_ = 'edge': True\n    test 178 _edge_ = 'edge': edge\n    test 179 _elevation_ = 'elevation': True\n    test 180 _elevation_ = 'elevation': elevation\n    test 181 _ELLIPSIS4_ = '....': True\n    test 182 _ELLIPSIS4_ = '....': ....  FAILED, KNOWN, expected ellipsis4\n    test 183 _ELLIPSIS_ = '...': True\n    test 184 _ELLIPSIS_ = '...': ...  FAILED, KNOWN, expected ellipsis\n    test 185 _ellipsoid_ = 'ellipsoid': True\n    test 186 _ellipsoid_ = 'ellipsoid': ellipsoid\n    test 187 _ellipsoidal_ = 'ellipsoidal': True\n    test 188 _ellipsoidal_ = 'ellipsoidal': ellipsoidal\n    test 189 _encode_ = 'encode': True\n    test 190 _encode_ = 'encode': encode\n    test 191 _end_ = 'end': True\n    test 192 _end_ = 'end': end\n    test 193 _epoch_ = 'epoch': True\n    test 194 _epoch_ = 'epoch': epoch\n    test 195 _EQUAL_ = '=': True\n    test 196 _EQUAL_ = '=': =  FAILED, KNOWN, expected equal\n    test 197 _EQUALSPACED_ = ' = ': True\n    test 198 _EQUALSPACED_ = ' = ':  =   FAILED, KNOWN, expected equalspaced\n    test 199 _Error_ = 'Error': True\n    test 200 _Error_ = 'Error': error\n    test 201 _EW_ = 'EW': True\n    test 202 _EW_ = 'EW': ew\n    test 203 _exceed_PI_radians_ = 'exceed PI radians': True\n    test 204 _exceed_PI_radians_ = 'exceed PI radians': exceed pi radians  FAILED, KNOWN, expected exceed_pi_radians\n    test 205 _exceeds_ = 'exceeds': True\n    test 206 _exceeds_ = 'exceeds': exceeds\n    test 207 _exists_ = 'exists': True\n    test 208 _exists_ = 'exists': exists\n    test 209 _F_ = 'F': True\n    test 210 _F_ = 'F': f\n    test 211 _f_ = 'f': True\n    test 212 _f_ = 'f': f\n    test 213 _feet_ = 'feet': True\n    test 214 _feet_ = 'feet': feet\n    test 215 _few_ = 'few': True\n    test 216 _few_ = 'few': few\n    test 217 _fi_ = 'fi': True\n    test 218 _fi_ = 'fi': fi\n    test 219 _finite_ = 'finite': True\n    test 220 _finite_ = 'finite': finite\n    test 221 _from_ = 'from': True\n    test 222 _from_ = 'from': from\n    test 223 _g_ = 'g': True\n    test 224 _g_ = 'g': g\n    test 225 _gamma_ = 'gamma': True\n    test 226 _gamma_ = 'gamma': gamma\n    test 227 _GRS80_ = 'GRS80': True\n    test 228 _GRS80_ = 'GRS80': grs80\n    test 229 _H_ = 'H': True\n    test 230 _H_ = 'H': h\n    test 231 _h_ = 'h': True\n    test 232 _h_ = 'h': h\n    test 233 _HASH_ = '#': True\n    test 234 _HASH_ = '#': #  FAILED, KNOWN, expected hash\n    test 235 _height_ = 'height': True\n    test 236 _height_ = 'height': height\n    test 237 _hemipole_ = 'hemipole': True\n    test 238 _hemipole_ = 'hemipole': hemipole\n    test 239 _i_ = 'i': True\n    test 240 _i_ = 'i': i\n    test 241 _immutable_ = 'immutable': True\n    test 242 _immutable_ = 'immutable': immutable\n    test 243 _in_ = 'in': True\n    test 244 _in_ = 'in': in\n    test 245 _incompatible_ = 'incompatible': True\n    test 246 _incompatible_ = 'incompatible': incompatible\n    test 247 _INF_ = 'INF': True\n    test 248 _INF_ = 'INF': inf\n    test 249 _infinite_ = 'infinite': True\n    test 250 _infinite_ = 'infinite': infinite\n    test 251 _initial_ = 'initial': True\n    test 252 _initial_ = 'initial': initial\n    test 253 _inside_ = 'inside': True\n    test 254 _inside_ = 'inside': inside\n    test 255 _insufficient_ = 'insufficient': True\n    test 256 _insufficient_ = 'insufficient': insufficient\n    test 257 _intersection_ = 'intersection': True\n    test 258 _intersection_ = 'intersection': intersection\n    test 259 _Intl1924_ = 'Intl1924': True\n    test 260 _Intl1924_ = 'Intl1924': intl1924\n    test 261 _INV_ = 'INV': True\n    test 262 _INV_ = 'INV': inv\n    test 263 _invalid_ = 'invalid': True\n    test 264 _invalid_ = 'invalid': invalid\n    test 265 _invokation_ = 'invokation': True\n    test 266 _invokation_ = 'invokation': invokation\n    test 267 _j_ = 'j': True\n    test 268 _j_ = 'j': j\n    test 269 _k0_ = 'k0': True\n    test 270 _k0_ = 'k0': k0\n    test 271 _keyword_ = 'keyword': True\n    test 272 _keyword_ = 'keyword': keyword\n    test 273 _kind_ = 'kind': True\n    test 274 _kind_ = 'kind': kind\n    test 275 _Krassovski1940_ = 'Krassovski1940': True\n    test 276 _Krassovski1940_ = 'Krassovski1940': krassovski1940\n    test 277 _Krassowsky1940_ = 'Krassowsky1940': True\n    test 278 _Krassowsky1940_ = 'Krassowsky1940': krassowsky1940\n    test 279 _lam_ = 'lam': True\n    test 280 _lam_ = 'lam': lam\n    test 281 _LANGLE_ = '<': True\n    test 282 _LANGLE_ = '<': <  FAILED, KNOWN, expected langle\n    test 283 _lat0_ = 'lat0': True\n    test 284 _lat0_ = 'lat0': lat0\n    test 285 _lat1_ = 'lat1': True\n    test 286 _lat1_ = 'lat1': lat1\n    test 287 _lat2_ = 'lat2': True\n    test 288 _lat2_ = 'lat2': lat2\n    test 289 _lat_ = 'lat': True\n    test 290 _lat_ = 'lat': lat\n    test 291 _LatLon_ = 'LatLon': True\n    test 292 _LatLon_ = 'LatLon': latlon\n    test 293 _latlon_ = 'latlon': True\n    test 294 _latlon_ = 'latlon': latlon\n    test 295 _LCURLY_ = '{': True\n    test 296 _LCURLY_ = '{': {  FAILED, KNOWN, expected lcurly\n    test 297 _len_ = 'len': True\n    test 298 _len_ = 'len': len\n    test 299 _limit_ = 'limit': True\n    test 300 _limit_ = 'limit': limit\n    test 301 _line_ = 'line': True\n    test 302 _line_ = 'line': line\n    test 303 _lon0_ = 'lon0': True\n    test 304 _lon0_ = 'lon0': lon0\n    test 305 _lon1_ = 'lon1': True\n    test 306 _lon1_ = 'lon1': lon1\n    test 307 _lon2_ = 'lon2': True\n    test 308 _lon2_ = 'lon2': lon2\n    test 309 _lon_ = 'lon': True\n    test 310 _lon_ = 'lon': lon\n    test 311 _low_ = 'low': True\n    test 312 _low_ = 'low': low\n    test 313 _LPAREN_ = '(': True\n    test 314 _LPAREN_ = '(': (  FAILED, KNOWN, expected lparen\n    test 315 _LSQUARE_ = '[': True\n    test 316 _LSQUARE_ = '[': [  FAILED, KNOWN, expected lsquare\n    test 317 _ltp_ = 'ltp': True\n    test 318 _ltp_ = 'ltp': ltp\n    test 319 _M12_ = 'M12': True\n    test 320 _M12_ = 'M12': m12\n    test 321 _m12_ = 'm12': True\n    test 322 _m12_ = 'm12': m12\n    test 323 _M21_ = 'M21': True\n    test 324 _M21_ = 'M21': m21\n    test 325 _M_ = 'M': True\n    test 326 _M_ = 'M': m\n    test 327 _m_ = 'm': True\n    test 328 _m_ = 'm': m\n    test 329 _MANT_DIG_ = 'MANT_DIG': True\n    test 330 _MANT_DIG_ = 'MANT_DIG': mant_dig\n    test 331 _MAX_ = 'MAX': True\n    test 332 _MAX_ = 'MAX': max\n    test 333 _mean_ = 'mean': True\n    test 334 _mean_ = 'mean': mean\n    test 335 _meanOf_ = 'meanOf': True\n    test 336 _meanOf_ = 'meanOf': meanof\n    test 337 _meridional_ = 'meridional': True\n    test 338 _meridional_ = 'meridional': meridional\n    test 339 _meter2_ = 'meter2': True\n    test 340 _meter2_ = 'meter2': meter2\n    test 341 _meter_ = 'meter': True\n    test 342 _meter_ = 'meter': meter\n    test 343 _MGRS_ = 'MGRS': True\n    test 344 _MGRS_ = 'MGRS': mgrs\n    test 345 _MIN_ = 'MIN': True\n    test 346 _MIN_ = 'MIN': min\n    test 347 _MINUS_ = '-': True\n    test 348 _MINUS_ = '-': -  FAILED, KNOWN, expected minus\n    test 349 _module_ = 'module': True\n    test 350 _module_ = 'module': module\n    test 351 _N_ = 'N': True\n    test 352 _N_ = 'N': n\n    test 353 _n_ = 'n': True\n    test 354 _n_ = 'n': n\n    test 355 _N_A_ = 'N/A': True\n    test 356 _N_A_ = 'N/A': n/a  FAILED, KNOWN, expected n_a\n    test 357 _n_a_ = 'n/a': True\n    test 358 _n_a_ = 'n/a': n/a  FAILED, KNOWN, expected n_a\n    test 359 _NAD27_ = 'NAD27': True\n    test 360 _NAD27_ = 'NAD27': nad27\n    test 361 _NAD83_ = 'NAD83': True\n    test 362 _NAD83_ = 'NAD83': nad83\n    test 363 _name_ = 'name': True\n    test 364 _name_ = 'name': name\n    test 365 _NAN_ = 'NAN': True\n    test 366 _NAN_ = 'NAN': nan\n    test 367 _NE_ = 'NE': True\n    test 368 _NE_ = 'NE': ne\n    test 369 _near_ = 'near': True\n    test 370 _near_ = 'near': near\n    test 371 _nearestOn2_ = 'nearestOn2': True\n    test 372 _nearestOn2_ = 'nearestOn2': neareston2\n    test 373 _negative_ = 'negative': True\n    test 374 _negative_ = 'negative': negative\n    test 375 _NL_ = '\\n': True\n    test 376 _NL_ = '\\n': \n  FAILED, KNOWN, expected nl\n    test 377 _NLATvar_ = '\\n@var ': True\n    test 378 _NLATvar_ = '\\n@var ': \n@var   FAILED, KNOWN, expected nlatvar\n    test 379 _NLHASH_ = '\\n# ': True\n    test 380 _NLHASH_ = '\\n# ': \n#   FAILED, KNOWN, expected nlhash\n    test 381 _NN_ = 'NN': True\n    test 382 _NN_ = 'NN': nn\n    test 383 _no_ = 'no': True\n    test 384 _no_ = 'no': no\n    test 385 _northing_ = 'northing': True\n    test 386 _northing_ = 'northing': northing\n    test 387 _not_ = 'not': True\n    test 388 _not_ = 'not': not\n    test 389 _not_finite_ = 'not finite': True\n    test 390 _not_finite_ = 'not finite': not finite  FAILED, KNOWN, expected not_finite\n    test 391 _not_scalar_ = 'not scalar': True\n    test 392 _not_scalar_ = 'not scalar': not scalar  FAILED, KNOWN, expected not_scalar\n    test 393 _NOTEQUAL_ = '!=': True\n    test 394 _NOTEQUAL_ = '!=': !=  FAILED, KNOWN, expected notequal\n    test 395 _NS_ = 'NS': True\n    test 396 _NS_ = 'NS': ns\n    test 397 _NSEW_ = 'NSEW': True\n    test 398 _NSEW_ = 'NSEW': nsew\n    test 399 _NTF_ = 'NTF': True\n    test 400 _NTF_ = 'NTF': ntf\n    test 401 _null_ = 'null': True\n    test 402 _null_ = 'null': null\n    test 403 _number_ = 'number': True\n    test 404 _number_ = 'number': number\n    test 405 _numpy_ = 'numpy': True\n    test 406 _numpy_ = 'numpy': numpy\n    test 407 _Nv00_ = 'Nv00': True\n    test 408 _Nv00_ = 'Nv00': nv00\n    test 409 _NW_ = 'NW': True\n    test 410 _NW_ = 'NW': nw\n    test 411 _odd_ = 'odd': True\n    test 412 _odd_ = 'odd': odd\n    test 413 _of_ = 'of': True\n    test 414 _of_ = 'of': of\n    test 415 _on_ = 'on': True\n    test 416 _on_ = 'on': on\n    test 417 _opposite_ = 'opposite': True\n    test 418 _opposite_ = 'opposite': opposite\n    test 419 _or_ = 'or': True\n    test 420 _or_ = 'or': or\n    test 421 _other_ = 'other': True\n    test 422 _other_ = 'other': other\n    test 423 _outside_ = 'outside': True\n    test 424 _outside_ = 'outside': outside\n    test 425 _overlap_ = 'overlap': True\n    test 426 _overlap_ = 'overlap': overlap\n    test 427 _parallel_ = 'parallel': True\n    test 428 _parallel_ = 'parallel': parallel\n    test 429 _PERCENT_ = '%': True\n    test 430 _PERCENT_ = '%': %  FAILED, KNOWN, expected percent\n    test 431 _PERCENTDOTSTAR_ = '%.*': True\n    test 432 _PERCENTDOTSTAR_ = '%.*': %.*  FAILED, KNOWN, expected percentdotstar\n    test 433 _phi_ = 'phi': True\n    test 434 _phi_ = 'phi': phi\n    test 435 _PLUS_ = '+': True\n    test 436 _PLUS_ = '+': +  FAILED, KNOWN, expected plus\n    test 437 _PLUSMINUS_ = '+-': True\n    test 438 _PLUSMINUS_ = '+-': +-  FAILED, KNOWN, expected plusminus\n    test 439 _point_ = 'point': True\n    test 440 _point_ = 'point': point\n    test 441 _points_ = 'points': True\n    test 442 _points_ = 'points': points\n    test 443 _pole_ = 'pole': True\n    test 444 _pole_ = 'pole': pole\n    test 445 _precision_ = 'precision': True\n    test 446 _precision_ = 'precision': precision\n    test 447 _prime_vertical_ = 'prime_vertical': True\n    test 448 _prime_vertical_ = 'prime_vertical': prime_vertical\n    test 449 _pygeodesy_ = 'pygeodesy': True\n    test 450 _pygeodesy_ = 'pygeodesy': pygeodesy\n    test 451 _pygeodesy_abspath_ = 'pygeodesy_abspath': True\n    test 452 _pygeodesy_abspath_ = 'pygeodesy_abspath': pygeodesy_abspath\n    test 453 _PyPy__ = 'PyPy ': True\n    test 454 _PyPy__ = 'PyPy ': pypy   FAILED, KNOWN, expected pypy\n    test 455 _Python_ = 'Python': True\n    test 456 _Python_ = 'Python': python\n    test 457 _python_ = 'python': True\n    test 458 _python_ = 'python': python\n    test 459 _QUOTE1_ = \"'\": True\n    test 460 _QUOTE1_ = \"'\": '  FAILED, KNOWN, expected quote1\n    test 461 _QUOTE2_ = '\"': True\n    test 462 _QUOTE2_ = '\"': \"  FAILED, KNOWN, expected quote2\n    test 463 _QUOTE3_ = \"'''\": True\n    test 464 _QUOTE3_ = \"'''\": '''  FAILED, KNOWN, expected quote3\n    test 465 _R_ = 'R': True\n    test 466 _R_ = 'R': r\n    test 467 _radians2_ = 'radians2': True\n    test 468 _radians2_ = 'radians2': radians2\n    test 469 _radians_ = 'radians': True\n    test 470 _radians_ = 'radians': radians\n    test 471 _radius1_ = 'radius1': True\n    test 472 _radius1_ = 'radius1': radius1\n    test 473 _radius2_ = 'radius2': True\n    test 474 _radius2_ = 'radius2': radius2\n    test 475 _radius_ = 'radius': True\n    test 476 _radius_ = 'radius': radius\n    test 477 _range_ = 'range': True\n    test 478 _range_ = 'range': range\n    test 479 _RANGLE_ = '>': True\n    test 480 _RANGLE_ = '>': >  FAILED, KNOWN, expected rangle\n    test 481 _RCURLY_ = '}': True\n    test 482 _RCURLY_ = '}': }  FAILED, KNOWN, expected rcurly\n    test 483 _reciprocal_ = 'reciprocal': True\n    test 484 _reciprocal_ = 'reciprocal': reciprocal\n    test 485 _reframe_ = 'reframe': True\n    test 486 _reframe_ = 'reframe': reframe\n    test 487 _resolution_ = 'resolution': True\n    test 488 _resolution_ = 'resolution': resolution\n    test 489 _rIn_ = 'rIn': True\n    test 490 _rIn_ = 'rIn': rin\n    test 491 _RPAREN_ = ')': True\n    test 492 _RPAREN_ = ')': )  FAILED, KNOWN, expected rparen\n    test 493 _RSQUARE_ = ']': True\n    test 494 _RSQUARE_ = ']': ]  FAILED, KNOWN, expected rsquare\n    test 495 _S12_ = 'S12': True\n    test 496 _S12_ = 'S12': s12\n    test 497 _s12_ = 's12': True\n    test 498 _s12_ = 's12': s12\n    test 499 _S_ = 'S': True\n    test 500 _S_ = 'S': s\n    test 501 _s_ = 's': True\n    test 502 _s_ = 's': s\n    test 503 _scalar_ = 'scalar': True\n    test 504 _scalar_ = 'scalar': scalar\n    test 505 _scale0_ = 'scale0': True\n    test 506 _scale0_ = 'scale0': scale0\n    test 507 _scale_ = 'scale': True\n    test 508 _scale_ = 'scale': scale\n    test 509 _scipy_ = 'scipy': True\n    test 510 _scipy_ = 'scipy': scipy\n    test 511 _SE_ = 'SE': True\n    test 512 _SE_ = 'SE': se\n    test 513 _semi_circular_ = 'semi-circular': True\n    test 514 _semi_circular_ = 'semi-circular': semi-circular  FAILED, KNOWN, expected semi_circular\n    test 515 _sep_ = 'sep': True\n    test 516 _sep_ = 'sep': sep\n    test 517 _singular_ = 'singular': True\n    test 518 _singular_ = 'singular': singular\n    test 519 _SLASH_ = '/': True\n    test 520 _SLASH_ = '/': /  FAILED, KNOWN, expected slash\n    test 521 _small_ = 'small': True\n    test 522 _small_ = 'small': small\n    test 523 _SPACE_ = ' ': True\n    test 524 _SPACE_ = ' ':    FAILED, KNOWN, expected space\n    test 525 _specified_ = 'specified': True\n    test 526 _specified_ = 'specified': specified\n    test 527 _Sphere_ = 'Sphere': True\n    test 528 _Sphere_ = 'Sphere': sphere\n    test 529 _spherical_ = 'spherical': True\n    test 530 _spherical_ = 'spherical': spherical\n    test 531 _STAR_ = '*': True\n    test 532 _STAR_ = '*': *  FAILED, KNOWN, expected star\n    test 533 _start_ = 'start': True\n    test 534 _start_ = 'start': start\n    test 535 _std_ = 'std': True\n    test 536 _std_ = 'std': std\n    test 537 _stdev_ = 'stdev': True\n    test 538 _stdev_ = 'stdev': stdev\n    test 539 _SW_ = 'SW': True\n    test 540 _SW_ = 'SW': sw\n    test 541 _tbd_ = 'tbd': True\n    test 542 _tbd_ = 'tbd': tbd\n    test 543 _TILDE_ = '~': True\n    test 544 _TILDE_ = '~': ~  FAILED, KNOWN, expected tilde\n    test 545 _to_ = 'to': True\n    test 546 _to_ = 'to': to\n    test 547 _tolerance_ = 'tolerance': True\n    test 548 _tolerance_ = 'tolerance': tolerance\n    test 549 _too_ = 'too': True\n    test 550 _too_ = 'too': too\n    test 551 _transform_ = 'transform': True\n    test 552 _transform_ = 'transform': transform\n    test 553 _UNDER_ = '_': True\n    test 554 _UNDER_ = '_': _  FAILED, KNOWN, expected under\n    test 555 _units_ = 'units': True\n    test 556 _units_ = 'units': units\n    test 557 _UNUSED_ = 'UNUSED': True\n    test 558 _UNUSED_ = 'UNUSED': unused\n    test 559 _up_ = 'up': True\n    test 560 _up_ = 'up': up\n    test 561 _UPS_ = 'UPS': True\n    test 562 _UPS_ = 'UPS': ups\n    test 563 _utf_8_ = 'utf-8': True\n    test 564 _utf_8_ = 'utf-8': utf-8  FAILED, KNOWN, expected utf_8\n    test 565 _UTM_ = 'UTM': True\n    test 566 _UTM_ = 'UTM': utm\n    test 567 _V_ = 'V': True\n    test 568 _V_ = 'V': v\n    test 569 _valid_ = 'valid': True\n    test 570 _valid_ = 'valid': valid\n    test 571 _value_ = 'value': True\n    test 572 _value_ = 'value': value\n    test 573 _version_ = 'version': True\n    test 574 _version_ = 'version': version\n    test 575 _vs_ = 'vs': True\n    test 576 _vs_ = 'vs': vs\n    test 577 _W_ = 'W': True\n    test 578 _W_ = 'W': w\n    test 579 _WGS72_ = 'WGS72': True\n    test 580 _WGS72_ = 'WGS72': wgs72\n    test 581 _WGS84_ = 'WGS84': True\n    test 582 _WGS84_ = 'WGS84': wgs84\n    test 583 _width_ = 'width': True\n    test 584 _width_ = 'width': width\n    test 585 _with_ = 'with': True\n    test 586 _with_ = 'with': with\n    test 587 _X_ = 'X': True\n    test 588 _X_ = 'X': x\n    test 589 _x_ = 'x': True\n    test 590 _x_ = 'x': x\n    test 591 _xyz_ = 'xyz': True\n    test 592 _xyz_ = 'xyz': xyz\n    test 593 _Y_ = 'Y': True\n    test 594 _Y_ = 'Y': y\n    test 595 _y_ = 'y': True\n    test 596 _y_ = 'y': y\n    test 597 _Z_ = 'Z': True\n    test 598 _Z_ = 'Z': z\n    test 599 _z_ = 'z': True\n    test 600 _z_ = 'z': z\n    test 601 _zone_ = 'zone': True\n    test 602 _zone_ = 'zone': zone\n    test 603 .tillC: ABC\n    test 604 .fromX: XYZ\n    test 605 .fromH.tillJ: HJ\n    test 606 .fromN.tillP: NP\n\n    test 607 machine: arm64\n    test 608 sysctl: 0\n    test 609 usage: python3 -m pygeodesy.interns\n    test 610 version: (3, 13)\n\n    64 of 610 testInterns.py tests (10.5%) FAILED, ALL KNOWN (pygeodesy 26.3.26 Python 3.13.12 64bit arm64 coverage 7.10.7 geographiclib 2.1 numpy 2.3.3 scipy 1.16.2 Math 2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 macOS 26.3.1 isLazy 1 -W  default) 5.628 ms\nrunning /Library/Framewo....n3.13 -W default ~/PyGeodesy/test/testIters.py\n\n    testing testIters.py 23.03.27 (module pygeodesy.iters 25.05.19) isLazy=1\n    test 1 i : 7\n    test 2 dedup: False\n    test 3 i : 0\n    test 4 p0: True\n    test 5 dedup: True\n    test 6 copies: [0, 1, 2, 3, 4, 5, 6, 7]\n    test 7 i : 0\n    test 8 copies: 9\n    test 9 p0: True\n    test 10 copies: True\n    test 11 copies: (0, 1, 2, 3, 4, 5, 6, 7)\n    test 12 iter: 1\n    test 13 iter: 2\n    test 14 iter: 3\n    test 15 re-iter: PointsError('points (0): too few')\n\n    all 15 testIters.py tests passed (pygeodesy 26.3.26 Python 3.13.12 64bit arm64 coverage 7.10.7 geographiclib 2.1 numpy 2.3.3 scipy 1.16.2 Math 2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 macOS 26.3.1 isLazy 1 -W  default) 3.290 ms\nrunning /Library/Framewo....n3.13 -W default ~/PyGeodesy/test/testKarney.py\n./pygeodesy/ellipsoidalKarney.py:139: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return fabs(_polygon(datum.ellipsoid.geodesic, points, True, False, wrap, polar))\n./pygeodesy/ellipsoidalKarney.py:347: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return _polygon(datum.ellipsoid.geodesic, points, closed, True, wrap, False)\n\n    testing testKarney.py 25.12.20 (module pygeodesy.karney 25.12.23) isLazy=1\n    test 1 Geodesic: True\n    test 2 Geodesic: True\n\n    testDirect(pygeodesy.geodesicw, 25.05.28)\n    test 3 Direct.lat2: -11.174910000000\n    test 4 Direct.lon2: -69.959210000000\n    test 5 Direct.azi2: 129.289270889709\n    test 6 Direct.a12: 80.507297142820\n    test 7 Direct.m12: 6273170.205530384555  FAILED, KNOWN (1.48461e-14), expected 6273170.205530383624\n    test 8 Direct.M12: 0.166063184474\n    test 9 Direct.M21: 0.164791169456\n    test 10 Direct.S12: 12841384694976.431640625000\n    test 11 Direct.lat2: 77.031960000000\n    test 12 Direct.lon2: 197.182340000000\n    test 13 Direct.azi2: 109.112041110672\n    test 14 Direct.a12: 36.892740690446\n    test 15 Direct.m12: 3828869.334438760299  FAILED, KNOWN (1.21618e-14), expected 3828869.334438760765\n    test 16 Direct.M12: 0.800763496081\n    test 17 Direct.M21: 0.801010069842\n    test 18 Direct.S12: 61674961290615.609375000000  FAILED, KNOWN (1.26672e-14), expected 61674961290615.617187500000\n    test 19 Direct.lat2: 41.841380000000\n    test 20 Direct.lon2: 98.566350000000\n    test 21 Direct.azi2: -41.843599514405\n    test 22 Direct.a12: 75.629304910115\n    test 23 Direct.m12: 6161154.577311060391  FAILED, KNOWN (1.5116e-14), expected 6161154.577311061323\n    test 24 Direct.M12: 0.248163392340\n    test 25 Direct.M21: 0.249302512036\n    test 26 Direct.S12: -6637997720646.715820312500  FAILED, KNOWN (1.47117e-14), expected -6637997720646.716796875000\n    test 27 Direct.lat2: -12.706310000000\n    test 28 Direct.lon2: 285.903440000000\n    test 29 Direct.azi2: 2.512956620914\n    test 30 Direct.a12: 100.278634181156\n    test 31 Direct.m12: 6289939.567044666968  FAILED, KNOWN (2.96131e-14), expected 6289939.567044668831\n    test 32 Direct.M12: -0.171994902747\n    test 33 Direct.M21: -0.177225695263\n    test 34 Direct.S12: -121287239862139.734375000000  FAILED, KNOWN (1.28826e-14), expected -121287239862139.750000000000\n    test 35 Direct.lat2: -15.847840000000\n    test 36 Direct.lon2: 5.935570000000\n    test 37 Direct.azi2: -20.787484651537\n    test 38 Direct.a12: 144.640108810286\n    test 39 Direct.m12: 3732902.158387716860  FAILED, KNOWN (4.9898e-14), expected 3732902.158387718722\n    test 40 Direct.M12: -0.812736387001\n    test 41 Direct.M21: -0.812998005192\n    test 42 Direct.S12: 97825992354058.703125000000\n\n    testInverse(pygeodesy.geodesicw, 25.05.28)\n    test 43 Inverse.lat2: -11.174910000000\n    test 44 Inverse.lon2: -69.959210000000\n    test 45 Inverse.azi1: 111.098748429560\n    test 46 Inverse.azi2: 129.289270889709\n    test 47 Inverse.s12: 8935244.560481829569\n    test 48 Inverse.a12: 80.507297142820\n    test 49 Inverse.m12: 6273170.205530383624\n    test 50 Inverse.M12: 0.166063184474\n    test 51 Inverse.M21: 0.164791169456\n    test 52 Inverse.S12: 12841384694976.433593750000  FAILED, KNOWN (1.52096e-14), expected 12841384694976.431640625000\n    test 53 Inverse.lat2: 77.031960000000\n    test 54 Inverse.lon2: 197.182340000000\n    test 55 Inverse.azi1: 22.020059880983\n    test 56 Inverse.azi2: 109.112041110672\n    test 57 Inverse.s12: 4105086.171392441727  FAILED, KNOWN (2.2687e-14), expected 4105086.171392440796\n    test 58 Inverse.a12: 36.892740690446\n    test 59 Inverse.m12: 3828869.334438761696  FAILED, KNOWN (2.43237e-14), expected 3828869.334438760765\n    test 60 Inverse.M12: 0.800763496081\n    test 61 Inverse.M21: 0.801010069842\n    test 62 Inverse.S12: 61674961290615.617187500000\n    test 63 Inverse.lat2: 41.841380000000\n    test 64 Inverse.lon2: 98.566350000000\n    test 65 Inverse.azi1: -32.444568764332\n    test 66 Inverse.azi2: -41.843599514405\n    test 67 Inverse.s12: 8394328.894657669589  FAILED, KNOWN (2.21893e-14), expected 8394328.894657671452\n    test 68 Inverse.a12: 75.629304910115\n    test 69 Inverse.m12: 6161154.577311060391  FAILED, KNOWN (1.5116e-14), expected 6161154.577311061323\n    test 70 Inverse.M12: 0.248163392340\n    test 71 Inverse.M21: 0.249302512036\n    test 72 Inverse.S12: -6637997720646.717773437500  FAILED, KNOWN (1.47117e-14), expected -6637997720646.716796875000\n    test 73 Inverse.lat2: -12.706310000000\n    test 74 Inverse.lon2: 285.903440000000\n    test 75 Inverse.azi1: 173.734912408784\n    test 76 Inverse.azi2: 2.512956620914\n    test 77 Inverse.s12: 11150344.231208024547\n    test 78 Inverse.a12: 100.278634181156\n    test 79 Inverse.m12: 6289939.567044666968  FAILED, KNOWN (2.96131e-14), expected 6289939.567044668831\n    test 80 Inverse.M12: -0.171994902747\n    test 81 Inverse.M21: -0.177225695263\n    test 82 Inverse.S12: -121287239862139.718750000000  FAILED, KNOWN (2.57653e-14), expected -121287239862139.750000000000\n    test 83 Inverse.lat2: -15.847840000000\n    test 84 Inverse.lon2: 5.935570000000\n    test 85 Inverse.azi1: -159.033557661193\n    test 86 Inverse.azi2: -20.787484651537\n    test 87 Inverse.s12: 16076603.163118068129\n    test 88 Inverse.a12: 144.640108810286\n    test 89 Inverse.m12: 3732902.158387719188  FAILED, KNOWN (1.24745e-14), expected 3732902.158387718722\n    test 90 Inverse.M12: -0.812736387001\n    test 91 Inverse.M21: -0.812998005192\n    test 92 Inverse.S12: 97825992354058.703125000000\n    test 93 Inverse.lat2: 90.000000000000\n    test 94 Inverse.lon2: 0.000000000000\n    test 95 Inverse.azi1: 0.000000000000\n    test 96 Inverse.azi2: 0.000000000000\n    test 97 Inverse.s12: 558455.588646476739  FAILED, KNOWN (8.53641e-11), expected 558455.588646000018\n    test 98 Inverse.a12: 5.016734754264  FAILED, KNOWN (4.89833e-06), expected 5.016735000000\n    test 99 Inverse.m12: 557747.059253584128  FAILED, KNOWN (7.45563e-11), expected 557747.059253999963\n    test 100 Inverse.M12: 0.996194698092  FAILED, KNOWN (3.03061e-05), expected 0.996195000000\n    test 101 Inverse.M21: 0.996194828008  FAILED, KNOWN (1.72648e-05), expected 0.996195000000\n    test 102 Inverse.S12: 0.000000000000\n    test 103 Inverse.lat2: 90.000000000000\n    test 104 Inverse.lon2: 10.000000000000\n    test 105 Inverse.azi1: 0.000000000000\n    test 106 Inverse.azi2: 10.000000000000\n    test 107 Inverse.s12: 558455.588646476739  FAILED, KNOWN (8.53641e-11), expected 558455.588646000018\n    test 108 Inverse.a12: 5.016734754264  FAILED, KNOWN (4.89833e-06), expected 5.016735000000\n    test 109 Inverse.m12: 557747.059253584128  FAILED, KNOWN (7.45563e-11), expected 557747.059253999963\n    test 110 Inverse.M12: 0.996194698092  FAILED, KNOWN (3.03061e-05), expected 0.996195000000\n    test 111 Inverse.M21: 0.996194828008  FAILED, KNOWN (1.72648e-05), expected 0.996195000000\n    test 112 Inverse.S12: 7084244746167.895507812500\n\n    testInverseLine(pygeodesy.geodesicw, 25.05.28)\n    test 113 InverseLine[0].lat: 40.640\n    test 114 InverseLine[0].lon: -73.779\n    test 115 InverseLine[1].lat: 49.825  FAILED, KNOWN (0.00641087), expected 49.829\n    test 116 InverseLine[1].lon: -72.962\n    test 117 InverseLine[2].lat: 58.992  FAILED, KNOWN (0.0026387), expected 58.994\n    test 118 InverseLine[2].lon: -71.759\n    test 119 InverseLine[3].lat: 68.132  FAILED, KNOWN (0.00640093), expected 68.127\n    test 120 InverseLine[3].lon: -69.677  FAILED, KNOWN (0.0019843), expected -69.678\n    test 121 InverseLine[4].lat: 77.203  FAILED, KNOWN (0.0174018), expected 77.190\n    test 122 InverseLine[4].lon: -64.830  FAILED, KNOWN (0.0188051), expected -64.842\n    test 123 InverseLine[5].lat: 85.794  FAILED, KNOWN (0.023512), expected 85.774\n    test 124 InverseLine[5].lon: -39.425  FAILED, KNOWN (0.511977), expected -39.628\n    test 125 InverseLine[6].lat: 83.690  FAILED, KNOWN (0.0405821), expected 83.724\n    test 126 InverseLine[6].lon: 80.754  FAILED, KNOWN (0.167168), expected 80.619\n    test 127 InverseLine[7].lat: 74.828  FAILED, KNOWN (0.0632801), expected 74.875\n    test 128 InverseLine[7].lon: 94.774  FAILED, KNOWN (0.0324631), expected 94.743\n    test 129 InverseLine[8].lat: 65.730  FAILED, KNOWN (0.0856355), expected 65.786\n    test 130 InverseLine[8].lon: 98.489  FAILED, KNOWN (0.0149102), expected 98.474\n    test 131 InverseLine[9].lat: 56.582  FAILED, KNOWN (0.108466), expected 56.643\n    test 132 InverseLine[9].lon: 100.254  FAILED, KNOWN (0.0088657), expected 100.246\n    test 133 InverseLine[10].lat: 47.409  FAILED, KNOWN (0.13059), expected 47.471\n    test 134 InverseLine[10].lon: 101.327  FAILED, KNOWN (0.00584966), expected 101.321\n    test 135 InverseLine[11].lat: 38.220  FAILED, KNOWN (0.150547), expected 38.277\n    test 136 InverseLine[11].lon: 102.079  FAILED, KNOWN (0.00399913), expected 102.075\n    test 137 InverseLine[12].lat: 29.017  FAILED, KNOWN (0.166648), expected 29.066\n    test 138 InverseLine[12].lon: 102.662  FAILED, KNOWN (0.0026948), expected 102.659\n    test 139 InverseLine[13].lat: 19.804  FAILED, KNOWN (0.176529), expected 19.839\n    test 140 InverseLine[13].lon: 103.148  FAILED, KNOWN (0.00167385), expected 103.147\n    test 141 InverseLine[14].lat: 10.584  FAILED, KNOWN (0.173707), expected 10.602\n    test 142 InverseLine[14].lon: 103.581\n    test 143 InverseLine[15].lat: 1.359\n    test 144 InverseLine[15].lon: 103.989\n\n    testGeodCalc(pygeodesy.ellipsoidalKarney, 25.05.27)\n    test 145 area: 13662703680020\n    test 146 perimeter: 16831067.892791\n\n    testMask(pygeodesy.geodesicw, 25.05.28)\n    test 147 Geodesic.EMPTY: 0b0\n    test 148 Geodesic.LATITUDE: 0b10000000\n    test 149 Geodesic.LONGITUDE: 0b100001000\n    test 150 Geodesic.AZIMUTH: 0b1000000000\n    test 151 Geodesic.AREA: 0b100000000010000\n    test 152 Geodesic.DISTANCE: 0b10000000001\n    test 153 Geodesic.DISTANCE_IN: 0b100000000011\n    test 154 Geodesic.REDUCEDLENGTH: 0b1000000000101\n    test 155 Geodesic.GEODESICSCALE: 0b10000000000101\n    test 156 Geodesic.STANDARD: 0b11110001001\n    test 157 Geodesic.STANDARD_LINE: 0b111110001011\n    test 158 Geodesic.ALL: 0b111111110011111\n    test 159 Caps: ALL|AREA|AZIMUTH|AZIMUTH_DISTANCE|AZIMUTH_DISTANCE_AREA|DISTANCE|DISTANCE_IN|GEODESICSCALE|LATITUDE|LATITUDE_LONGITUDE|LATITUDE_LONGITUDE_AREA|LINE_CAPS|LONGITUDE|REDUCEDLENGTH|STANDARD|STANDARD_LINE\n    test 160 Caps: ALL|AREA|AZIMUTH|AZIMUTH_DISTANCE|AZIMUTH_DISTANCE_AREA|DISTANCE|DISTANCE_IN|GEODESICSCALE|LATITUDE|LATITUDE_LONGITUDE|LATITUDE_LONGITUDE_AREA|LINE_CAPS|LONGITUDE|REDUCEDLENGTH|STANDARD|STANDARD_LINE\n\n    testDirect(pygeodesy.geodesicx, 25.12.23)\n    test 161 Direct.lat2: -11.174910000000\n    test 162 Direct.lon2: -69.959210000000\n    test 163 Direct.azi2: 129.289270889709\n    test 164 Direct.a12: 80.507297142820\n    test 165 Direct.m12: 6273170.205530384555  FAILED, KNOWN (1.48461e-14), expected 6273170.205530383624\n    test 166 Direct.M12: 0.166063184474\n    test 167 Direct.M21: 0.164791169456\n    test 168 Direct.S12: 12841384694976.431640625000\n    test 169 Direct.lat2: 77.031960000000\n    test 170 Direct.lon2: 197.182340000000\n    test 171 Direct.azi2: 109.112041110672\n    test 172 Direct.a12: 36.892740690446\n    test 173 Direct.m12: 3828869.334438760299  FAILED, KNOWN (1.21618e-14), expected 3828869.334438760765\n    test 174 Direct.M12: 0.800763496081\n    test 175 Direct.M21: 0.801010069842\n    test 176 Direct.S12: 61674961290615.609375000000  FAILED, KNOWN (1.26672e-14), expected 61674961290615.617187500000\n    test 177 Direct.lat2: 41.841380000000\n    test 178 Direct.lon2: 98.566350000000\n    test 179 Direct.azi2: -41.843599514405\n    test 180 Direct.a12: 75.629304910115\n    test 181 Direct.m12: 6161154.577311059460  FAILED, KNOWN (3.02321e-14), expected 6161154.577311061323\n    test 182 Direct.M12: 0.248163392340\n    test 183 Direct.M21: 0.249302512036\n    test 184 Direct.S12: -6637997720646.717773437500  FAILED, KNOWN (1.47117e-14), expected -6637997720646.716796875000\n    test 185 Direct.lat2: -12.706310000000\n    test 186 Direct.lon2: 285.903440000000\n    test 187 Direct.azi2: 2.512956620914\n    test 188 Direct.a12: 100.278634181156\n    test 189 Direct.m12: 6289939.567044666968  FAILED, KNOWN (2.96131e-14), expected 6289939.567044668831\n    test 190 Direct.M12: -0.171994902747\n    test 191 Direct.M21: -0.177225695263\n    test 192 Direct.S12: -121287239862139.734375000000  FAILED, KNOWN (1.28826e-14), expected -121287239862139.750000000000\n    test 193 Direct.lat2: -15.847840000000\n    test 194 Direct.lon2: 5.935570000000\n    test 195 Direct.azi2: -20.787484651537\n    test 196 Direct.a12: 144.640108810286\n    test 197 Direct.m12: 3732902.158387716860  FAILED, KNOWN (4.9898e-14), expected 3732902.158387718722\n    test 198 Direct.M12: -0.812736387001\n    test 199 Direct.M21: -0.812998005192\n    test 200 Direct.S12: 97825992354058.703125000000\n\n    testInverse(pygeodesy.geodesicx, 25.12.23)\n    test 201 Inverse.lat2: -11.174910000000\n    test 202 Inverse.lon2: -69.959210000000\n    test 203 Inverse.azi1: 111.098748429560\n    test 204 Inverse.azi2: 129.289270889709\n    test 205 Inverse.s12: 8935244.560481829569\n    test 206 Inverse.a12: 80.507297142820\n    test 207 Inverse.m12: 6273170.205530382693  FAILED, KNOWN (1.48461e-14), expected 6273170.205530383624\n    test 208 Inverse.M12: 0.166063184474\n    test 209 Inverse.M21: 0.164791169456\n    test 210 Inverse.S12: 12841384694976.433593750000  FAILED, KNOWN (1.52096e-14), expected 12841384694976.431640625000\n    test 211 Inverse.lat2: 77.031960000000\n    test 212 Inverse.lon2: 197.182340000000\n    test 213 Inverse.azi1: 22.020059880983\n    test 214 Inverse.azi2: 109.112041110672\n    test 215 Inverse.s12: 4105086.171392441727  FAILED, KNOWN (2.2687e-14), expected 4105086.171392440796\n    test 216 Inverse.a12: 36.892740690446\n    test 217 Inverse.m12: 3828869.334438761696  FAILED, KNOWN (2.43237e-14), expected 3828869.334438760765\n    test 218 Inverse.M12: 0.800763496081\n    test 219 Inverse.M21: 0.801010069842\n    test 220 Inverse.S12: 61674961290615.617187500000\n    test 221 Inverse.lat2: 41.841380000000\n    test 222 Inverse.lon2: 98.566350000000\n    test 223 Inverse.azi1: -32.444568764332\n    test 224 Inverse.azi2: -41.843599514405\n    test 225 Inverse.s12: 8394328.894657669589  FAILED, KNOWN (2.21893e-14), expected 8394328.894657671452\n    test 226 Inverse.a12: 75.629304910115\n    test 227 Inverse.m12: 6161154.577311059460  FAILED, KNOWN (3.02321e-14), expected 6161154.577311061323\n    test 228 Inverse.M12: 0.248163392340\n    test 229 Inverse.M21: 0.249302512036\n    test 230 Inverse.S12: -6637997720646.717773437500  FAILED, KNOWN (1.47117e-14), expected -6637997720646.716796875000\n    test 231 Inverse.lat2: -12.706310000000\n    test 232 Inverse.lon2: 285.903440000000\n    test 233 Inverse.azi1: 173.734912408784\n    test 234 Inverse.azi2: 2.512956620914\n    test 235 Inverse.s12: 11150344.231208024547\n    test 236 Inverse.a12: 100.278634181156\n    test 237 Inverse.m12: 6289939.567044666968  FAILED, KNOWN (2.96131e-14), expected 6289939.567044668831\n    test 238 Inverse.M12: -0.171994902747\n    test 239 Inverse.M21: -0.177225695263\n    test 240 Inverse.S12: -121287239862139.718750000000  FAILED, KNOWN (2.57653e-14), expected -121287239862139.750000000000\n    test 241 Inverse.lat2: -15.847840000000\n    test 242 Inverse.lon2: 5.935570000000\n    test 243 Inverse.azi1: -159.033557661193\n    test 244 Inverse.azi2: -20.787484651537\n    test 245 Inverse.s12: 16076603.163118068129\n    test 246 Inverse.a12: 144.640108810286\n    test 247 Inverse.m12: 3732902.158387718257  FAILED, KNOWN (1.24745e-14), expected 3732902.158387718722\n    test 248 Inverse.M12: -0.812736387001\n    test 249 Inverse.M21: -0.812998005192\n    test 250 Inverse.S12: 97825992354058.703125000000\n    test 251 Inverse.lat2: 90.000000000000\n    test 252 Inverse.lon2: 0.000000000000\n    test 253 Inverse.azi1: 0.000000000000\n    test 254 Inverse.azi2: 0.000000000000\n    test 255 Inverse.s12: 558020.704208072624  FAILED, KNOWN (0.0778727), expected 558455.588646000018\n    test 256 Inverse.a12: 5.016734754264  FAILED, KNOWN (4.89833e-06), expected 5.016735000000\n    test 257 Inverse.m12: 557747.059253584128  FAILED, KNOWN (7.45563e-11), expected 557747.059253999963\n    test 258 Inverse.M12: 0.996194698092  FAILED, KNOWN (3.03061e-05), expected 0.996195000000\n    test 259 Inverse.M21: 0.996188865576  FAILED, KNOWN (0.000615785), expected 0.996195000000\n    test 260 Inverse.S12: 0.000000000000\n    test 261 Inverse.lat2: 90.000000000000\n    test 262 Inverse.lon2: 10.000000000000\n    test 263 Inverse.azi1: 0.000000000000\n    test 264 Inverse.azi2: 10.000000000000\n    test 265 Inverse.s12: 558020.704208072624  FAILED, KNOWN (0.0778727), expected 558455.588646000018\n    test 266 Inverse.a12: 5.016734754264  FAILED, KNOWN (4.89833e-06), expected 5.016735000000\n    test 267 Inverse.m12: 557747.059253584128  FAILED, KNOWN (7.45563e-11), expected 557747.059253999963\n    test 268 Inverse.M12: 0.996194698092  FAILED, KNOWN (3.03061e-05), expected 0.996195000000\n    test 269 Inverse.M21: 0.996188865576  FAILED, KNOWN (0.000615785), expected 0.996195000000\n    test 270 Inverse.S12: 7084244746167.895507812500\n\n    testInverseLine(pygeodesy.geodesicx, 25.12.23)\n    test 271 InverseLine[0].lat: 40.640\n    test 272 InverseLine[0].lon: -73.779\n    test 273 InverseLine[1].lat: 49.825  FAILED, KNOWN (0.00641087), expected 49.829\n    test 274 InverseLine[1].lon: -72.962\n    test 275 InverseLine[2].lat: 58.992  FAILED, KNOWN (0.0026387), expected 58.994\n    test 276 InverseLine[2].lon: -71.759\n    test 277 InverseLine[3].lat: 68.132  FAILED, KNOWN (0.00640093), expected 68.127\n    test 278 InverseLine[3].lon: -69.677  FAILED, KNOWN (0.0019843), expected -69.678\n    test 279 InverseLine[4].lat: 77.203  FAILED, KNOWN (0.0174018), expected 77.190\n    test 280 InverseLine[4].lon: -64.830  FAILED, KNOWN (0.0188051), expected -64.842\n    test 281 InverseLine[5].lat: 85.794  FAILED, KNOWN (0.023512), expected 85.774\n    test 282 InverseLine[5].lon: -39.425  FAILED, KNOWN (0.511977), expected -39.628\n    test 283 InverseLine[6].lat: 83.690  FAILED, KNOWN (0.0405821), expected 83.724\n    test 284 InverseLine[6].lon: 80.754  FAILED, KNOWN (0.167168), expected 80.619\n    test 285 InverseLine[7].lat: 74.828  FAILED, KNOWN (0.0632801), expected 74.875\n    test 286 InverseLine[7].lon: 94.774  FAILED, KNOWN (0.0324631), expected 94.743\n    test 287 InverseLine[8].lat: 65.730  FAILED, KNOWN (0.0856355), expected 65.786\n    test 288 InverseLine[8].lon: 98.489  FAILED, KNOWN (0.0149102), expected 98.474\n    test 289 InverseLine[9].lat: 56.582  FAILED, KNOWN (0.108466), expected 56.643\n    test 290 InverseLine[9].lon: 100.254  FAILED, KNOWN (0.0088657), expected 100.246\n    test 291 InverseLine[10].lat: 47.409  FAILED, KNOWN (0.13059), expected 47.471\n    test 292 InverseLine[10].lon: 101.327  FAILED, KNOWN (0.00584966), expected 101.321\n    test 293 InverseLine[11].lat: 38.220  FAILED, KNOWN (0.150547), expected 38.277\n    test 294 InverseLine[11].lon: 102.079  FAILED, KNOWN (0.00399913), expected 102.075\n    test 295 InverseLine[12].lat: 29.017  FAILED, KNOWN (0.166648), expected 29.066\n    test 296 InverseLine[12].lon: 102.662  FAILED, KNOWN (0.0026948), expected 102.659\n    test 297 InverseLine[13].lat: 19.804  FAILED, KNOWN (0.176529), expected 19.839\n    test 298 InverseLine[13].lon: 103.148  FAILED, KNOWN (0.00167385), expected 103.147\n    test 299 InverseLine[14].lat: 10.584  FAILED, KNOWN (0.173707), expected 10.602\n    test 300 InverseLine[14].lon: 103.581\n    test 301 InverseLine[15].lat: 1.359\n    test 302 InverseLine[15].lon: 103.989\n\n    testGeodCalc(pygeodesy.ellipsoidalExact, 25.08.28)\n    test 303 area: 13662703680020\n    test 304 perimeter: 16830891.356049\n\n    testMask(pygeodesy.geodesicx, 25.12.23)\n    test 305 Geodesic.EMPTY: 0b0\n    test 306 Geodesic.LATITUDE: 0b10000000\n    test 307 Geodesic.LONGITUDE: 0b100001000\n    test 308 Geodesic.AZIMUTH: 0b1000000000\n    test 309 Geodesic.AREA: 0b100000000010000\n    test 310 Geodesic.DISTANCE: 0b10000000001\n    test 311 Geodesic.DISTANCE_IN: 0b100000000011\n    test 312 Geodesic.REDUCEDLENGTH: 0b1000000000101\n    test 313 Geodesic.GEODESICSCALE: 0b10000000000101\n    test 314 Geodesic.STANDARD: 0b11110001001\n    test 315 Geodesic.STANDARD_LINE: 0b111110001011\n    test 316 Geodesic.ALL: 0b111111110011111\n    test 317 Caps: ALL|AREA|AZIMUTH|AZIMUTH_DISTANCE|AZIMUTH_DISTANCE_AREA|DISTANCE|DISTANCE_IN|GEODESICSCALE|LATITUDE|LATITUDE_LONGITUDE|LATITUDE_LONGITUDE_AREA|LINE_CAPS|LONGITUDE|REDUCEDLENGTH|STANDARD|STANDARD_LINE\n    test 318 Caps: ALL|AREA|AZIMUTH|AZIMUTH_DISTANCE|AZIMUTH_DISTANCE_AREA|DISTANCE|DISTANCE_IN|GEODESICSCALE|LATITUDE|LATITUDE_LONGITUDE|LATITUDE_LONGITUDE_AREA|LINE_CAPS|LONGITUDE|REDUCEDLENGTH|STANDARD|STANDARD_LINE\n\n    testDirect(pygeodesy.geodsolve, 25.12.31)\n    test 319 Direct.lat2: -11.174910000000\n    test 320 Direct.lon2: -69.959210000000\n    test 321 Direct.azi2: 129.289270889709\n    test 322 Direct.a12: 80.507297142820\n    test 323 Direct.m12: 6273170.205530384555  FAILED, KNOWN (1.48461e-14), expected 6273170.205530383624\n    test 324 Direct.M12: 0.166063184474\n    test 325 Direct.M21: 0.164791169456\n    test 326 Direct.S12: 12841384694976.431640625000\n    test 327 Direct.lat2: 77.031960000000\n    test 328 Direct.lon2: -162.817660000000  FAILED, KNOWN, expected 197.182340000000\n    test 329 Direct.azi2: 109.112041110672\n    test 330 Direct.a12: 36.892740690446\n    test 331 Direct.m12: 3828869.334438762162  FAILED, KNOWN (3.64855e-14), expected 3828869.334438760765\n    test 332 Direct.M12: 0.800763496081\n    test 333 Direct.M21: 0.801010069842\n    test 334 Direct.S12: 61674961290615.632812500000  FAILED, KNOWN (2.53344e-14), expected 61674961290615.617187500000\n    test 335 Direct.lat2: 41.841380000000\n    test 336 Direct.lon2: 98.566350000000\n    test 337 Direct.azi2: -41.843599514405\n    test 338 Direct.a12: 75.629304910115\n    test 339 Direct.m12: 6161154.577311061323\n    test 340 Direct.M12: 0.248163392340\n    test 341 Direct.M21: 0.249302512036\n    test 342 Direct.S12: -6637997720646.725585937500  FAILED, KNOWN (1.32405e-13), expected -6637997720646.716796875000\n    test 343 Direct.lat2: -12.706310000000\n    test 344 Direct.lon2: -74.096560000000  FAILED, KNOWN, expected 285.903440000000\n    test 345 Direct.azi2: 2.512956620914\n    test 346 Direct.a12: 100.278634181156\n    test 347 Direct.m12: 6289939.567044666968  FAILED, KNOWN (2.96131e-14), expected 6289939.567044668831\n    test 348 Direct.M12: -0.171994902747\n    test 349 Direct.M21: -0.177225695263\n    test 350 Direct.S12: -121287239862139.734375000000  FAILED, KNOWN (1.28826e-14), expected -121287239862139.750000000000\n    test 351 Direct.lat2: -15.847840000000\n    test 352 Direct.lon2: 5.935570000000\n    test 353 Direct.azi2: -20.787484651537\n    test 354 Direct.a12: 144.640108810286\n    test 355 Direct.m12: 3732902.158387716860  FAILED, KNOWN (4.9898e-14), expected 3732902.158387718722\n    test 356 Direct.M12: -0.812736387001\n    test 357 Direct.M21: -0.812998005192\n    test 358 Direct.S12: 97825992354058.703125000000\n\n    testInverse(pygeodesy.geodsolve, 25.12.31)\n    test 359 Inverse.lat2: -11.174910000000\n    test 360 Inverse.lon2: -69.959210000000\n    test 361 Inverse.azi1: 111.098748429560\n    test 362 Inverse.azi2: 129.289270889709\n    test 363 Inverse.s12: 8935244.560481827706  FAILED, KNOWN (2.0846e-14), expected 8935244.560481829569\n    test 364 Inverse.a12: 80.507297142820\n    test 365 Inverse.m12: 6273170.205530384555  FAILED, KNOWN (1.48461e-14), expected 6273170.205530383624\n    test 366 Inverse.M12: 0.166063184474\n    test 367 Inverse.M21: 0.164791169456\n    test 368 Inverse.S12: 12841384694976.433593750000  FAILED, KNOWN (1.52096e-14), expected 12841384694976.431640625000\n    test 369 Inverse.lat2: 77.031960000000\n    test 370 Inverse.lon2: -162.817660000000  FAILED, KNOWN, expected 197.182340000000\n    test 371 Inverse.azi1: 22.020059880983\n    test 372 Inverse.azi2: 109.112041110672\n    test 373 Inverse.s12: 4105086.171392441262  FAILED, KNOWN (1.13435e-14), expected 4105086.171392440796\n    test 374 Inverse.a12: 36.892740690446\n    test 375 Inverse.m12: 3828869.334438761696  FAILED, KNOWN (2.43237e-14), expected 3828869.334438760765\n    test 376 Inverse.M12: 0.800763496081\n    test 377 Inverse.M21: 0.801010069842\n    test 378 Inverse.S12: 61674961290615.617187500000\n    test 379 Inverse.lat2: 41.841380000000\n    test 380 Inverse.lon2: 98.566350000000\n    test 381 Inverse.azi1: -32.444568764332\n    test 382 Inverse.azi2: -41.843599514405\n    test 383 Inverse.s12: 8394328.894657669589  FAILED, KNOWN (2.21893e-14), expected 8394328.894657671452\n    test 384 Inverse.a12: 75.629304910115\n    test 385 Inverse.m12: 6161154.577311061323\n    test 386 Inverse.M12: 0.248163392340\n    test 387 Inverse.M21: 0.249302512036\n    test 388 Inverse.S12: -6637997720646.717773437500  FAILED, KNOWN (1.47117e-14), expected -6637997720646.716796875000\n    test 389 Inverse.lat2: -12.706310000000\n    test 390 Inverse.lon2: -74.096560000000  FAILED, KNOWN, expected 285.903440000000\n    test 391 Inverse.azi1: 173.734912408784\n    test 392 Inverse.azi2: 2.512956620914\n    test 393 Inverse.s12: 11150344.231208024547\n    test 394 Inverse.a12: 100.278634181156\n    test 395 Inverse.m12: 6289939.567044666968  FAILED, KNOWN (2.96131e-14), expected 6289939.567044668831\n    test 396 Inverse.M12: -0.171994902747\n    test 397 Inverse.M21: -0.177225695263\n    test 398 Inverse.S12: -121287239862139.718750000000  FAILED, KNOWN (2.57653e-14), expected -121287239862139.750000000000\n    test 399 Inverse.lat2: -15.847840000000\n    test 400 Inverse.lon2: 5.935570000000\n    test 401 Inverse.azi1: -159.033557661193\n    test 402 Inverse.azi2: -20.787484651537\n    test 403 Inverse.s12: 16076603.163118068129\n    test 404 Inverse.a12: 144.640108810286\n    test 405 Inverse.m12: 3732902.158387719188  FAILED, KNOWN (1.24745e-14), expected 3732902.158387718722\n    test 406 Inverse.M12: -0.812736387001\n    test 407 Inverse.M21: -0.812998005192\n    test 408 Inverse.S12: 97825992354058.703125000000\n    test 409 Inverse.lat2: 90.000000000000\n    test 410 Inverse.lon2: 0.000000000000\n    test 411 Inverse.azi1: 0.000000000000\n    test 412 Inverse.azi2: 0.000000000000\n    test 413 Inverse.s12: 558455.588646478485  FAILED, KNOWN (8.56768e-11), expected 558455.588646000018\n    test 414 Inverse.a12: 5.016734754264  FAILED, KNOWN (4.89833e-06), expected 5.016735000000\n    test 415 Inverse.m12: 557747.059253584128  FAILED, KNOWN (7.45563e-11), expected 557747.059253999963\n    test 416 Inverse.M12: 0.996194698092  FAILED, KNOWN (3.03061e-05), expected 0.996195000000\n    test 417 Inverse.M21: 0.996194828008  FAILED, KNOWN (1.72648e-05), expected 0.996195000000\n    test 418 Inverse.S12: 0.000000000000\n    test 419 Inverse.lat2: 90.000000000000\n    test 420 Inverse.lon2: 10.000000000000\n    test 421 Inverse.azi1: 0.000000000000\n    test 422 Inverse.azi2: 10.000000000000\n    test 423 Inverse.s12: 558455.588646478485  FAILED, KNOWN (8.56768e-11), expected 558455.588646000018\n    test 424 Inverse.a12: 5.016734754264  FAILED, KNOWN (4.89833e-06), expected 5.016735000000\n    test 425 Inverse.m12: 557747.059253584128  FAILED, KNOWN (7.45563e-11), expected 557747.059253999963\n    test 426 Inverse.M12: 0.996194698092  FAILED, KNOWN (3.03061e-05), expected 0.996195000000\n    test 427 Inverse.M21: 0.996194828008  FAILED, KNOWN (1.72648e-05), expected 0.996195000000\n    test 428 Inverse.S12: 7084244746167.896484375000  FAILED, KNOWN (1.3785e-14), expected 7084244746167.895507812500\n\n    testGeodCalc(pygeodesy.ellipsoidalGeodSolve, 25.08.28)\n    test 429 area: 13662703680020\n    test 430 perimeter: 16831067.892791\n\n    testMask(pygeodesy.geodsolve, 25.12.31)\n    test 431 Geodesic.EMPTY: 0b0\n    test 432 Geodesic.LATITUDE: 0b10000000\n    test 433 Geodesic.LONGITUDE: 0b100001000\n    test 434 Geodesic.AZIMUTH: 0b1000000000\n    test 435 Geodesic.AREA: 0b100000000010000\n    test 436 Geodesic.DISTANCE: 0b10000000001\n    test 437 Geodesic.DISTANCE_IN: 0b100000000011\n    test 438 Geodesic.REDUCEDLENGTH: 0b1000000000101\n    test 439 Geodesic.GEODESICSCALE: 0b10000000000101\n    test 440 Geodesic.STANDARD: 0b11110001001\n    test 441 Geodesic.STANDARD_LINE: 0b111110001011\n    test 442 Geodesic.ALL: 0b111111110011111\n    test 443 Caps: ALL|AREA|AZIMUTH|AZIMUTH_DISTANCE|AZIMUTH_DISTANCE_AREA|DISTANCE|DISTANCE_IN|GEODESICSCALE|LATITUDE|LATITUDE_LONGITUDE|LATITUDE_LONGITUDE_AREA|LINE_CAPS|LONGITUDE|REDUCEDLENGTH|STANDARD|STANDARD_LINE\n    test 444 Caps: ALL|AREA|AZIMUTH|AZIMUTH_DISTANCE|AZIMUTH_DISTANCE_AREA|DISTANCE|DISTANCE_IN|GEODESICSCALE|LATITUDE|LATITUDE_LONGITUDE|LATITUDE_LONGITUDE_AREA|LINE_CAPS|LONGITUDE|REDUCEDLENGTH|STANDARD|STANDARD_LINE\n\n    testMath(pygeodesy.karney, 25.12.23)\n    test 445 sin(-360): -0.0\n    test 446 cos(-360): 1.0\n    test 447 sin(-345): 0.25881904510252074\n    test 448 cos(-345): 0.9659258262890683\n    test 449 sin(-330): 0.5  FAILED, KNOWN, expected 0.49999999999999994\n    test 450 cos(-330): 0.8660254037844386\n    test 451 sin(-315): 0.7071067811865476  FAILED, KNOWN, expected 0.7071067811865475\n    test 452 cos(-315): 0.7071067811865476\n    test 453 sin(-300): 0.8660254037844386  FAILED, KNOWN, expected 0.8660254037844387\n    test 454 cos(-300): 0.5000000000000001\n    test 455 sin(-285): 0.9659258262890683\n    test 456 cos(-285): 0.25881904510252074\n    test 457 sin(-270): 1.0\n    test 458 cos(-270): 0.0\n    test 459 sin(-255): 0.9659258262890683\n    test 460 cos(-255): -0.25881904510252074\n    test 461 sin(-240): 0.8660254037844386  FAILED, KNOWN, expected 0.8660254037844387\n    test 462 cos(-240): -0.5\n    test 463 sin(-225): 0.7071067811865476  FAILED, KNOWN, expected 0.7071067811865475\n    test 464 cos(-225): -0.7071067811865476\n    test 465 sin(-210): 0.5000000000000001  FAILED, KNOWN, expected 0.49999999999999994\n    test 466 cos(-210): -0.8660254037844386\n    test 467 sin(-195): 0.25881904510252074\n    test 468 cos(-195): -0.9659258262890683\n    test 469 sin(-180): -0.0\n    test 470 cos(-180): -1.0\n    test 471 sin(-165): -0.25881904510252074\n    test 472 cos(-165): -0.9659258262890683\n    test 473 sin(-150): -0.5  FAILED, KNOWN, expected -0.49999999999999994\n    test 474 cos(-150): -0.8660254037844386\n    test 475 sin(-135): -0.7071067811865476  FAILED, KNOWN, expected -0.7071067811865475\n    test 476 cos(-135): -0.7071067811865476\n    test 477 sin(-120): -0.8660254037844386  FAILED, KNOWN, expected -0.8660254037844387\n    test 478 cos(-120): -0.5000000000000001\n    test 479 sin(-105): -0.9659258262890683\n    test 480 cos(-105): -0.25881904510252074\n    test 481 sin(-90): -1.0\n    test 482 cos(-90): 0.0\n    test 483 sin(-75): -0.9659258262890683\n    test 484 cos(-75): 0.25881904510252074\n    test 485 sin(-60): -0.8660254037844386  FAILED, KNOWN, expected -0.8660254037844387\n    test 486 cos(-60): 0.5\n    test 487 sin(-45): -0.7071067811865476  FAILED, KNOWN, expected -0.7071067811865475\n    test 488 cos(-45): 0.7071067811865476\n    test 489 sin(-30): -0.5000000000000001  FAILED, KNOWN, expected -0.49999999999999994\n    test 490 cos(-30): 0.8660254037844386\n    test 491 sin(-15): -0.25881904510252074\n    test 492 cos(-15): 0.9659258262890683\n    test 493 sin(0): 0.0\n    test 494 cos(0): 1.0\n    test 495 sin(15): 0.25881904510252074\n    test 496 cos(15): 0.9659258262890683\n    test 497 sin(30): 0.5  FAILED, KNOWN, expected 0.49999999999999994\n    test 498 cos(30): 0.8660254037844386\n    test 499 sin(45): 0.7071067811865476  FAILED, KNOWN, expected 0.7071067811865475\n    test 500 cos(45): 0.7071067811865476\n    test 501 sin(60): 0.8660254037844386  FAILED, KNOWN, expected 0.8660254037844387\n    test 502 cos(60): 0.5000000000000001\n    test 503 sin(75): 0.9659258262890683\n    test 504 cos(75): 0.25881904510252074\n    test 505 sin(90): 1.0\n    test 506 cos(90): 0.0\n    test 507 sin(105): 0.9659258262890683\n    test 508 cos(105): -0.25881904510252074\n    test 509 sin(120): 0.8660254037844386  FAILED, KNOWN, expected 0.8660254037844387\n    test 510 cos(120): -0.5\n    test 511 sin(135): 0.7071067811865476  FAILED, KNOWN, expected 0.7071067811865475\n    test 512 cos(135): -0.7071067811865476\n    test 513 sin(150): 0.5000000000000001  FAILED, KNOWN, expected 0.49999999999999994\n    test 514 cos(150): -0.8660254037844386\n    test 515 sin(165): 0.25881904510252074\n    test 516 cos(165): -0.9659258262890683\n    test 517 sin(180): 0.0\n    test 518 cos(180): -1.0\n    test 519 sin(195): -0.25881904510252074\n    test 520 cos(195): -0.9659258262890683\n    test 521 sin(210): -0.5  FAILED, KNOWN, expected -0.49999999999999994\n    test 522 cos(210): -0.8660254037844386\n    test 523 sin(225): -0.7071067811865476  FAILED, KNOWN, expected -0.7071067811865475\n    test 524 cos(225): -0.7071067811865476\n    test 525 sin(240): -0.8660254037844386  FAILED, KNOWN, expected -0.8660254037844387\n    test 526 cos(240): -0.5000000000000001\n    test 527 sin(255): -0.9659258262890683\n    test 528 cos(255): -0.25881904510252074\n    test 529 sin(270): -1.0\n    test 530 cos(270): 0.0\n    test 531 sin(285): -0.9659258262890683\n    test 532 cos(285): 0.25881904510252074\n    test 533 sin(300): -0.8660254037844386  FAILED, KNOWN, expected -0.8660254037844387\n    test 534 cos(300): 0.5\n    test 535 sin(315): -0.7071067811865476  FAILED, KNOWN, expected -0.7071067811865475\n    test 536 cos(315): 0.7071067811865476\n    test 537 sin(330): -0.5000000000000001  FAILED, KNOWN, expected -0.49999999999999994\n    test 538 cos(330): 0.8660254037844386\n    test 539 sin(345): -0.25881904510252074\n    test 540 cos(345): 0.9659258262890683\n    test 541 sin(360): 0.0\n    test 542 cos(360): 1.0\n    test 543 sin(375): 0.25881904510252074\n    test 544 cos(375): 0.9659258262890683\n    test 545 sin(390): 0.5  FAILED, KNOWN, expected 0.49999999999999994\n    test 546 cos(390): 0.8660254037844386\n    test 547 _diff182(-180, -180): 0.0  FAILED, KNOWN, expected -0.0\n    test 548 _diff182(-180, -90): 90.0\n    test 549 _diff182(-180, 0): 180.0\n    test 550 _diff182(-180, 90): -90.0\n    test 551 _diff182(-180, 180): 0.0\n    test 552 _diff182(-90, -180): -90.0\n    test 553 _diff182(-90, -90): 0.0  FAILED, KNOWN, expected -0.0\n    test 554 _diff182(-90, 0): 90.0\n    test 555 _diff182(-90, 90): 180.0\n    test 556 _diff182(-90, 180): -90.0\n    test 557 _diff182(0, -180): -180.0\n    test 558 _diff182(0, -90): -90.0\n    test 559 _diff182(0, 0): 0.0  FAILED, KNOWN, expected -0.0\n    test 560 _diff182(0, 90): 90.0\n    test 561 _diff182(0, 180): 180.0\n    test 562 _diff182(90, -180): 90.0\n    test 563 _diff182(90, -90): -180.0\n    test 564 _diff182(90, 0): -90.0\n    test 565 _diff182(90, 90): 0.0  FAILED, KNOWN, expected -0.0\n    test 566 _diff182(90, 180): 90.0\n    test 567 _diff182(180, -180): -0.0\n    test 568 _diff182(180, -90): 90.0\n    test 569 _diff182(180, 0): -180.0\n    test 570 _diff182(180, 90): -90.0\n    test 571 _diff182(180, 180): 0.0  FAILED, KNOWN, expected -0.0\n    test 572 _norm180(-361): -1.0\n    test 573  wrap180(-361): -1.0\n    test 574 _norm180(-360): -0.0\n    test 575  wrap180(-360): 0.0  FAILED, KNOWN, expected -0.0\n    test 576 _norm180(-180): -180.0  FAILED, KNOWN, expected 180.0\n    test 577  wrap180(-180): -180.0  FAILED, KNOWN, expected 180.0\n    test 578 _norm180(-90): -90.0\n    test 579  wrap180(-90): -90.0\n    test 580 _norm180(0): 0.0\n    test 581  wrap180(0): 0.0\n    test 582 _norm180(0): 0.0\n    test 583  wrap180(0): 0.0\n    test 584 _norm180(90): 90.0\n    test 585  wrap180(90): 90.0\n    test 586 _norm180(180): 180.0\n    test 587  wrap180(180): 180.0\n    test 588 _norm180(360): 0.0\n    test 589  wrap180(360): 0.0\n    test 590 _norm180(361): 1.0\n    test 591  wrap180(361): 1.0\n    test 592 unroll(-30, 0): (30.0, 0.0)\n    test 593 unroll(-30, 30): (60.0, 30.0)\n    test 594 unroll(-30, 60): (90.0, 60.0)\n    test 595 unroll(-30, 90): (120.0, 90.0)\n    test 596 unroll(-30, 120): (150.0, 120.0)\n    test 597 unroll(-30, 150): (180.0, 150.0)\n    test 598 unroll(-30, 180): (-150.0, -180.0)\n    test 599 unroll(-30, 210): (-120.0, -150.0)\n    test 600 unroll(-30, 240): (-90.0, -120.0)\n    test 601 unroll(-30, 270): (-60.0, -90.0)\n    test 602 unroll(-30, 300): (-30.0, -60.0)\n    test 603 unroll(-30, 330): (0.0, -30.0)\n    test 604 unroll(-30, 360): (30.0, 0.0)\n\n    test 605 _sum3.s: 1.000e-20\n    test 606 _sum3.t: 0.000e+00\n    test 607 fsum_: 1.000e-20\n\n    test 608 _sum3.s: 1.000e-20\n    test 609 _sum3.t: 0.000e+00\n    test 610 fsum_: 1.000e-20\n\n    test 611 _sum3.s: 1.000e-20\n    test 612 _sum3.t: 0.000e+00\n    test 613 fsum_: 1.000e-20\n\n    test 614 _sum3.s: -3.589e+19  FAILED, KNOWN, expected 1.0\n    test 615 _sum3.t: -2.048e+03  FAILED, KNOWN, expected 0.000e+00\n    test 616 fsum_: -3.589e+19  FAILED, KNOWN, expected 1.0\n\n    175 of 616 testKarney.py tests (28.4%) FAILED, incl. 173 KNOWN plus 2 DeprecationWarnings (pygeodesy 26.3.26 Python 3.13.12 64bit arm64 coverage 7.10.7 geographiclib 2.1 numpy 2.3.3 scipy 1.16.2 Math 2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 macOS 26.3.1 isLazy 1 -W  default) 4.318 sec\nrunning /Library/Framewo....n3.13 -W default ~/PyGeodesy/test/testKarneySigns.py\n\n    testing testKarneySigns.py 25.12.23 isLazy=1\n\n    test 1 test_AngDiff: ...\n    test 2 test_1: 0.0\n    test 3 test_2: -0.0\n    test 4 test_3: 0.0\n    test 5 test_4: 0.0\n    test 6 test_5: 0.0\n    test 7 test_6: -0.0\n    test 8 test_7: 180.0\n    test 9 test_8: -180.0\n    test 10 test_9: 180.0\n    test 11 test_10: -180.0\n    test 12 test_11: 180.0\n    test 13 test_12: -180.0\n    test 14 test_13: 57.99999999999997\n\n    test 15 test_AngNormalize: ...\n    test 16 test_1: -180.0\n    test 17 test_2: -0.0\n    test 18 test_3: -180.0\n    test 19 test_4: -0.0\n    test 20 test_5: -180.0\n    test 21 test_6: -0.0\n    test 22 test_7: 0.0\n    test 23 test_8: 180.0\n    test 24 test_9: 0.0\n    test 25 test_10: 180.0\n    test 26 test_11: 0.0\n    test 27 test_12: 180.0\n\n    test 28 test_AngRound: ...\n    test 29 test_1: 6.938893903907228e-18\n    test 30 test_2: -6.938893903907228e-18\n    test 31 test_3: -0.0\n    test 32 test_4: -0.0\n    test 33 test_5: 0.0\n    test 34 test_6: 0.0\n    test 35 test_7: 0.015624999999999993\n    test 36 test_8: 0.015625\n    test 37 test_9: 0.015625\n    test 38 test_10: 0.015625\n    test 39 test_11: 0.015625\n    test 40 test_12: 0.015625\n    test 41 test_13: 0.015625\n    test 42 test_14: 0.015625000000000007\n    test 43 test_15: 0.031249999999999993\n    test 44 test_16: 0.03125\n    test 45 test_17: 0.03125\n    test 46 test_18: 0.03125\n    test 47 test_19: 0.03125\n    test 48 test_20: 0.03125000000000001\n    test 49 test_21: 0.062499999999999986\n    test 50 test_22: 0.06249999999999999\n    test 51 test_23: 0.0625\n    test 52 test_24: 0.0625\n    test 53 test_25: 0.0625\n    test 54 test_26: 0.0625\n    test 55 test_27: 0.06250000000000001\n    test 56 test_28: 0.12499999999999997\n    test 57 test_29: 0.12499999999999999\n    test 58 test_30: 0.125\n    test 59 test_31: 0.125\n    test 60 test_32: 0.12500000000000003\n    test 61 test_33: 0.9999999999999998\n    test 62 test_34: 0.9999999999999999\n    test 63 test_35: 1.0\n    test 64 test_36: 1.0\n    test 65 test_37: 1.0\n    test 66 test_38: 1.0\n    test 67 test_39: 1.0000000000000002\n    test 68 test_40: 89.99999999999999\n    test 69 test_41: 90.0\n    test 70 test_42: 90.0\n\n    test 71 test_antipodal: ...\n    test 72 test_1: 0.0\n    test 73 test_1: 180.0\n    test 74 test_2: 180.0\n    test 75 test_2: 0.0\n    test 76 test_3: -0.0\n    test 77 test_3: -180.0\n    test 78 test_4: -180.0\n    test 79 test_4: -0.0\n\n    test 80 test_antipodal_prolate: ...\n    test 81 test_1: 90.0\n    test 82 test_1: 90.0\n    test 83 test_2: -90.0\n    test 84 test_2: -90.0\n\n    test 85 test_azimuth_0_180: ...\n    test 86 test_1: 180.0\n    test 87 test_1: 180.0\n    test 88 test_2: -180.0\n    test 89 test_2: -180.0\n    test 90 test_3: 180.0\n    test 91 test_3: 0.0\n    test 92 test_4: -180.0\n    test 93 test_4: -0.0\n\n    test 94 test_equatorial_coincident: ...\n    test 95 test_1: 180.0\n    test 96 test_1: 180.0\n    test 97 test_2: 0.0\n    test 98 test_2: 0.0\n\n    test 99 test_equatorial_NS: ...\n    test 100 test_1: 55.97  FAILED, KNOWN, expected 56.00\n    test 101 test_1: 124.03  FAILED, KNOWN, expected 124.00\n    test 102 test_2: 124.03  FAILED, KNOWN, expected 124.00\n    test 103 test_2: 55.97  FAILED, KNOWN, expected 56.00\n\n    test 104 test_atan2d: ...\n    test 105 test_1: 179.99999999999997\n    test 106 test_2: 180.0\n    test 107 test_3: -180.0\n    test 108 test_4: 0.0\n    test 109 test_5: -0.0\n    test 110 test_6: 180.0\n    test 111 test_7: -180.0\n    test 112 test_8: 0.0\n    test 113 test_9: -0.0\n    test 114 test_10: -90.0\n    test 115 test_11: -90.0\n    test 116 test_12: 90.0\n    test 117 test_13: 90.0\n    test 118 test_14: 180.0\n    test 119 test_15: -180.0\n    test 120 test_16: 0.0\n    test 121 test_17: -0.0\n    test 122 test_18: 90.0\n    test 123 test_19: 90.0\n    test 124 test_20: -90.0\n    test 125 test_21: -90.0\n    test 126 test_22: 135.0\n    test 127 test_23: -135.0\n    test 128 test_24: 45.0\n    test 129 test_25: -45.0\n    test 130 test_26: nan\n    test 131 test_27: nan\n\n    test 132 test_sincosd: ...\n    test 133 test_1: -1.0000000000000000\n    test 134 test_1: 0.0\n    test 135 test_2: -0.0000000000000000\n    test 136 test_2: 1.0\n    test 137 test_3: 1.0000000000000000\n    test 138 test_3: 0.0\n    test 139 test_4: -0.0000000000000000\n    test 140 test_4: -1.0\n    test 141 test_5: -1.0000000000000000\n    test 142 test_5: 0.0\n    test 143 test_6: -0.0000000000000000\n    test 144 test_6: 1.0\n    test 145 test_7: 1.0000000000000000\n    test 146 test_7: 0.0\n    test 147 test_8: -0.0000000000000000\n    test 148 test_8: -1.0\n    test 149 test_9: -1.0000000000000000\n    test 150 test_9: 0.0\n    test 151 test_10: -0.0000000000000000\n    test 152 test_10: 1.0\n    test 153 test_11: 0.0000000000000000\n    test 154 test_11: 1.0\n    test 155 test_12: 1.0000000000000000\n    test 156 test_12: 0.0\n    test 157 test_13: 0.0000000000000000\n    test 158 test_13: -1.0\n    test 159 test_14: -1.0000000000000000\n    test 160 test_14: 0.0\n    test 161 test_15: 0.0000000000000000\n    test 162 test_15: 1.0\n    test 163 test_16: 1.0000000000000000\n    test 164 test_16: 0.0\n    test 165 test_17: 0.0000000000000000\n    test 166 test_17: -1.0\n    test 167 test_18: -1.0000000000000000\n    test 168 test_18: 0.0\n    test 169 test_19: 0.0000000000000000\n    test 170 test_19: 1.0\n    test 171 test_20: 1.0000000000000000\n    test 172 test_20: 0.0\n    test 173 test_21: nan\n    test 174 test_21: nan\n    test 175 test_22: nan\n    test 176 test_22: nan\n    test 177 test_23: nan\n    test 178 test_23: nan\n    test 179 test_23: 0.1564344650402309\n    test 180 test_23: 0.9876883405951378\n    test 181 test_23: 0.1564344650402309\n    test 182 test_23: 0.9876883405951378\n\n    test 183 test_sum2: ...\n    test 184 test_1: 0.0\n    test 185 test_2: 0.0\n    test 186 test_3: 0.0\n    test 187 test_4: 0.0\n    test 188 test_5: -0.0\n    test 189 test_6: 0.0\n\n    test 190 Accu: 5103.0\n\n    4 of 190 testKarneySigns.py tests (2.1%) FAILED, ALL KNOWN (pygeodesy 26.3.26 Python 3.13.12 64bit arm64 coverage 7.10.7 geographiclib 2.1 numpy 2.3.3 scipy 1.16.2 Math 2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 macOS 26.3.1 isLazy 1 -W  default) 137.642 ms\nrunning /Library/Framewo....n3.13 -W default ~/PyGeodesy/test/testKtm.py\n\n    testing testKtm.py 23.03.27 (module pygeodesy.ktm 25.08.31) isLazy=1\n\n    test 1 _TM: KTransverseMercator(ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), k0=0.9996, TMorder=7)\n    test 2 forward 0N (80.000, 0.000) -/-: 0.0, 8881585.815988, 0.0, 0.9996\n    test 3 reverse 0N (80.000, 0.000) -/-: 0.0\n    test 4 forward 3N (79.890, 8.374) -/-: 163544.38007, 8881136.361771, 8.245542, 0.999927\n    test 5 reverse 3N (79.890, 8.374) -/-: 1.7763568394002505e-15\n    test 6 forward 6N (79.562, 16.725) -/-: 333788.634116, 8880946.730424, 16.462884, 1.000962\n    test 7 reverse 6N (79.562, 16.725) -/-: 7.105427357601002e-15\n    test 8 forward 9N (79.015, 25.030) -/-: 516782.400098, 8884389.933155, 24.625783, 1.002865\n    test 9 reverse 9N (79.015, 25.030) -/-: 2.1316282072803006e-14\n    test 10 forward 12N (78.252, 33.266) -/-: 717349.637417, 8896761.249834, 32.712011, 1.005894\n    test 11 reverse 12N (78.252, 33.266) -/-: 5.1728291973635394e-14\n    test 12 forward 15N (77.274, 41.411) -/-: 938645.229361, 8924845.3123, 40.705476, 1.010384\n    test 13 reverse 15N (77.274, 41.411) -/-: 0.0\n    test 14 forward 18N (76.085, 49.443) -/-: 1181870.215451, 8976407.252949, 48.598167, 1.016714\n    test 15 reverse 18N (76.085, 49.443) -/-: 3.8263897345803626e-14\n    test 16 forward 21N (74.686, 57.339) -/-: 1446137.252018, 9059670.735504, 56.391495, 1.025259\n    test 17 reverse 21N (74.686, 57.339) -/-: 5.684341886080802e-14\n    test 18 forward 24N (73.084, 65.078) -/-: 1728450.251911, 9182823.938232, 64.096558, 1.036319\n    test 19 reverse 24N (73.084, 65.078) -/-: 1.4210854715202004e-14\n    test 20 forward 27N (71.281, 72.638) -/-: 2023752.790526, 9353559.771346, 71.732868, 1.050046\n    test 21 reverse 27N (71.281, 72.638) -/-: 1.4210854715202004e-14\n    test 22 forward 30N (69.282, 80.000) -/-: 2325015.074835, 9578621.128889, 79.325231, 1.066355\n    test 23 reverse 30N (69.282, 80.000) -/-: 2.842170943040401e-14\n    test 24 forward 33N (67.094, 87.142) -/-: 2623368.28288, 9863301.12097, 86.898617, 1.084836\n    test 25 reverse 33N (67.094, 87.142) -/-: 0.0\n    test 26 forward 36N (64.721, 94.046) -/-: 2908348.733697, 10210857.598605, 94.471204, 1.104695\n    test 27 reverse 36N (64.721, 94.046) -/-: 0.0\n    test 28 forward 39N (62.172, 100.691) -/-: 3168362.707459, 10621853.317461, 102.04623, 1.124739\n    test 29 reverse 39N (62.172, 100.691) -/-: 7.105427357601002e-15\n    test 30 forward 42N (59.452, 107.061) -/-: 3391492.622467, 11093528.387239, 109.604086, 1.14345\n    test 31 reverse 42N (59.452, 107.061) -/-: 1.5888218580782548e-14\n    test 32 forward 45N (56.569, 113.137) -/-: 3566696.824822, 11619422.467571, 117.096854, 1.159166\n    test 33 reverse 45N (56.569, 113.137) -/-: 0.0\n    test 34 forward 48N (53.530, 118.903) -/-: 3685290.742854, 12189522.028618, 124.447841, 1.170375\n    test 35 reverse 48N (53.530, 118.903) -/-: 1.5888218580782548e-14\n    test 36 forward 51N (50.346, 124.343) -/-: 3742386.824274, 12791126.616764, 131.557863, 1.176031\n    test 37 reverse 51N (50.346, 124.343) -/-: 1.4210854715202004e-14\n    test 38 forward 54N (47.023, 129.443) -/-: 3737846.053669, 13410380.03778, 138.317827, 1.175799\n    test 39 reverse 54N (47.023, 129.443) -/-: 2.929642751054232e-14\n    test 40 forward 57N (43.571, 134.187) -/-: 3676387.634221, 14034104.572541, 144.624552, 1.170121\n    test 41 reverse 57N (43.571, 134.187) -/-: 0.0\n    test 42 forward 60N (40.000, 138.564) -/-: 3566810.754496, 14651410.305646, 150.395289, 1.16007\n    test 43 reverse 60N (40.000, 138.564) -/-: 0.0\n    test 44 forward 63N (36.319, 142.561) -/-: 3420621.906486, 15254653.660248, 155.577129, 1.147079\n    test 45 reverse 63N (36.319, 142.561) -/-: 7.105427357601002e-15\n    test 46 forward 66N (32.539, 146.167) -/-: 3250522.133697, 15839614.666766, 160.149958, 1.132638\n    test 47 reverse 66N (32.539, 146.167) -/-: 7.105427357601002e-15\n    test 48 forward 69N (28.669, 149.373) -/-: 3069132.144368, 16405050.640186, 164.124094, 1.118063\n    test 49 reverse 69N (28.669, 149.373) -/-: 3.552713678800501e-15\n    test 50 forward 72N (24.721, 152.169) -/-: 2888128.173431, 16951919.948156, 167.534978, 1.104377\n    test 51 reverse 72N (24.721, 152.169) -/-: 1.0658141036401503e-14\n    test 52 forward 75N (20.706, 154.548) -/-: 2717773.256417, 17482549.021439, 170.437193, 1.09228\n    test 53 reverse 75N (20.706, 154.548) -/-: 1.7763568394002505e-14\n    test 54 forward 78N (16.633, 156.504) -/-: 2566730.586316, 17999918.486885, 172.899178, 1.082187\n    test 55 reverse 78N (16.633, 156.504) -/-: 1.7763568394002505e-14\n    test 56 forward 81N (12.515, 158.030) -/-: 2442031.891673, 18507145.758, 174.99917, 1.074303\n    test 57 reverse 81N (12.515, 158.030) -/-: 1.2434497875801753e-14\n    test 58 forward 84N (8.362, 159.124) -/-: 2349105.316925, 19007174.828239, 176.822266, 1.068689\n    test 59 reverse 84N (8.362, 159.124) -/-: 1.7763568394002505e-14\n    test 60 forward 87N (4.187, 159.781) -/-: 2291809.478825, 19502649.329559, 178.458273, 1.06534\n    test 61 reverse 87N (4.187, 159.781) -/-: 8.881784197001252e-15\n    test 62 forward 90N (0.000, 160.000) -/-: 2272454.379192, -19995929.886042, -180.0, 1.064227\n    test 63 reverse 90N (0.000, 160.000) -/-: 2.4016501336544057e-14\n    test 64 forward 93N (-4.187, 159.781) -/-: 2291809.478825, -19502649.329559, -178.458273, 1.06534\n    test 65 reverse 93N (-4.187, 159.781) -/-: 6.217248937900877e-15\n    test 66 forward 96N (-8.362, 159.124) -/-: 2349105.316925, -19007174.828239, -176.822266, 1.068689\n    test 67 reverse 96N (-8.362, 159.124) -/-: 1.5987211554602254e-14\n    test 68 forward 99N (-12.515, 158.030) -/-: 2442031.891673, -18507145.758, -174.99917, 1.074303\n    test 69 reverse 99N (-12.515, 158.030) -/-: 7.105427357601002e-15\n    test 70 forward 102N (-16.633, 156.504) -/-: 2566730.586316, -17999918.486885, -172.899178, 1.082187\n    test 71 reverse 102N (-16.633, 156.504) -/-: 2.842170943040401e-14\n    test 72 forward 105N (-20.706, 154.548) -/-: 2717773.256417, -17482549.021439, -170.437193, 1.09228\n    test 73 reverse 105N (-20.706, 154.548) -/-: 1.7763568394002505e-14\n    test 74 forward 108N (-24.721, 152.169) -/-: 2888128.173431, -16951919.948156, -167.534978, 1.104377\n    test 75 reverse 108N (-24.721, 152.169) -/-: 7.105427357601002e-15\n    test 76 forward 111N (-28.669, 149.373) -/-: 3069132.144368, -16405050.640186, -164.124094, 1.118063\n    test 77 reverse 111N (-28.669, 149.373) -/-: 7.105427357601002e-15\n    test 78 forward 114N (-32.539, 146.167) -/-: 3250522.133697, -15839614.666766, -160.149958, 1.132638\n    test 79 reverse 114N (-32.539, 146.167) -/-: 7.105427357601002e-15\n    test 80 forward 117N (-36.319, 142.561) -/-: 3420621.906486, -15254653.660248, -155.577129, 1.147079\n    test 81 reverse 117N (-36.319, 142.561) -/-: 7.105427357601002e-15\n    test 82 forward 120N (-40.000, 138.564) -/-: 3566810.754496, -14651410.305646, -150.395289, 1.16007\n    test 83 reverse 120N (-40.000, 138.564) -/-: 0.0\n    test 84 forward 123N (-43.571, 134.187) -/-: 3676387.634221, -14034104.572541, -144.624552, 1.170121\n    test 85 reverse 123N (-43.571, 134.187) -/-: 0.0\n    test 86 forward 126N (-47.023, 129.443) -/-: 3737846.053669, -13410380.03778, -138.317827, 1.175799\n    test 87 reverse 126N (-47.023, 129.443) -/-: 2.929642751054232e-14\n    test 88 forward 129N (-50.346, 124.343) -/-: 3742386.824274, -12791126.616764, -131.557863, 1.176031\n    test 89 reverse 129N (-50.346, 124.343) -/-: 1.4210854715202004e-14\n    test 90 forward 132N (-53.530, 118.903) -/-: 3685290.742854, -12189522.028618, -124.447841, 1.170375\n    test 91 reverse 132N (-53.530, 118.903) -/-: 1.5888218580782548e-14\n    test 92 forward 135N (-56.569, 113.137) -/-: 3566696.824822, -11619422.467571, -117.096854, 1.159166\n    test 93 reverse 135N (-56.569, 113.137) -/-: 0.0\n    test 94 forward 138N (-59.452, 107.061) -/-: 3391492.622467, -11093528.387239, -109.604086, 1.14345\n    test 95 reverse 138N (-59.452, 107.061) -/-: 1.5888218580782548e-14\n    test 96 forward 141N (-62.172, 100.691) -/-: 3168362.707459, -10621853.317461, -102.04623, 1.124739\n    test 97 reverse 141N (-62.172, 100.691) -/-: 7.105427357601002e-15\n    test 98 forward 144N (-64.721, 94.046) -/-: 2908348.733697, -10210857.598605, -94.471204, 1.104695\n    test 99 reverse 144N (-64.721, 94.046) -/-: 0.0\n    test 100 forward 147N (-67.094, 87.142) -/-: 2623368.28288, -9863301.12097, -86.898617, 1.084836\n    test 101 reverse 147N (-67.094, 87.142) -/-: 0.0\n    test 102 forward 150N (-69.282, 80.000) -/-: 2325015.074835, -9578621.128889, -79.325231, 1.066355\n    test 103 reverse 150N (-69.282, 80.000) -/-: 2.842170943040401e-14\n    test 104 forward 153N (-71.281, 72.638) -/-: 2023752.790526, -9353559.771346, -71.732868, 1.050046\n    test 105 reverse 153N (-71.281, 72.638) -/-: 1.4210854715202004e-14\n    test 106 forward 156N (-73.084, 65.078) -/-: 1728450.251911, -9182823.938232, -64.096558, 1.036319\n    test 107 reverse 156N (-73.084, 65.078) -/-: 1.4210854715202004e-14\n    test 108 forward 159N (-74.686, 57.339) -/-: 1446137.252018, -9059670.735504, -56.391495, 1.025259\n    test 109 reverse 159N (-74.686, 57.339) -/-: 1.4210854715202004e-14\n    test 110 forward 162N (-76.085, 49.443) -/-: 1181870.215451, -8976407.252949, -48.598167, 1.016714\n    test 111 reverse 162N (-76.085, 49.443) -/-: 3.552713678800501e-14\n    test 112 forward 165N (-77.274, 41.411) -/-: 938645.229361, -8924845.3123, -40.705476, 1.010384\n    test 113 reverse 165N (-77.274, 41.411) -/-: 0.0\n    test 114 forward 168N (-78.252, 33.266) -/-: 717349.637417, -8896761.249834, -32.712011, 1.005894\n    test 115 reverse 168N (-78.252, 33.266) -/-: 2.5618982671915014e-14\n    test 116 forward 171N (-79.015, 25.030) -/-: 516782.400098, -8884389.933155, -24.625783, 1.002865\n    test 117 reverse 171N (-79.015, 25.030) -/-: 2.842170943040401e-14\n    test 118 forward 174N (-79.562, 16.725) -/-: 333788.634116, -8880946.730424, -16.462884, 1.000962\n    test 119 reverse 174N (-79.562, 16.725) -/-: 1.0658141036401503e-14\n    test 120 forward 177N (-79.890, 8.374) -/-: 163544.38007, -8881136.361771, -8.245542, 0.999927\n    test 121 reverse 177N (-79.890, 8.374) -/-: 1.7763568394002505e-15\n    test 122 forward 180N (-80.000, 0.000) -/-: 0.0, -8881585.815988, 0.0, 0.9996\n    test 123 reverse 180N (-80.000, 0.000) -/-: 0.0\n    test 124 forward 183N (-79.890, -8.374) -/-: -163544.38007, -8881136.361771, 8.245542, 0.999927\n    test 125 reverse 183N (-79.890, -8.374) -/-: 1.7763568394002505e-15\n    test 126 forward 186N (-79.562, -16.725) -/-: -333788.634116, -8880946.730424, 16.462884, 1.000962\n    test 127 reverse 186N (-79.562, -16.725) -/-: 7.105427357601002e-15\n    test 128 forward 189N (-79.015, -25.030) -/-: -516782.400098, -8884389.933155, 24.625783, 1.002865\n    test 129 reverse 189N (-79.015, -25.030) -/-: 2.1316282072803006e-14\n    test 130 forward 192N (-78.252, -33.266) -/-: -717349.637417, -8896761.249834, 32.712011, 1.005894\n    test 131 reverse 192N (-78.252, -33.266) -/-: 5.1728291973635394e-14\n    test 132 forward 195N (-77.274, -41.411) -/-: -938645.229361, -8924845.3123, 40.705476, 1.010384\n    test 133 reverse 195N (-77.274, -41.411) -/-: 0.0\n    test 134 forward 198N (-76.085, -49.443) -/-: -1181870.215451, -8976407.252949, 48.598167, 1.016714\n    test 135 reverse 198N (-76.085, -49.443) -/-: 3.8263897345803626e-14\n    test 136 forward 201N (-74.686, -57.339) -/-: -1446137.252018, -9059670.735504, 56.391495, 1.025259\n    test 137 reverse 201N (-74.686, -57.339) -/-: 5.684341886080802e-14\n    test 138 forward 204N (-73.084, -65.078) -/-: -1728450.251911, -9182823.938232, 64.096558, 1.036319\n    test 139 reverse 204N (-73.084, -65.078) -/-: 1.4210854715202004e-14\n    test 140 forward 207N (-71.281, -72.638) -/-: -2023752.790526, -9353559.771346, 71.732868, 1.050046\n    test 141 reverse 207N (-71.281, -72.638) -/-: 1.4210854715202004e-14\n    test 142 forward 210N (-69.282, -80.000) -/-: -2325015.074835, -9578621.128889, 79.325231, 1.066355\n    test 143 reverse 210N (-69.282, -80.000) -/-: 2.842170943040401e-14\n    test 144 forward 213N (-67.094, -87.142) -/-: -2623368.28288, -9863301.12097, 86.898617, 1.084836\n    test 145 reverse 213N (-67.094, -87.142) -/-: 0.0\n    test 146 forward 216N (-64.721, -94.046) -/-: -2908348.733697, -10210857.598605, 94.471204, 1.104695\n    test 147 reverse 216N (-64.721, -94.046) -/-: 0.0\n    test 148 forward 219N (-62.172, -100.691) -/-: -3168362.707459, -10621853.317461, 102.04623, 1.124739\n    test 149 reverse 219N (-62.172, -100.691) -/-: 7.105427357601002e-15\n    test 150 forward 222N (-59.452, -107.061) -/-: -3391492.622467, -11093528.387239, 109.604086, 1.14345\n    test 151 reverse 222N (-59.452, -107.061) -/-: 1.5888218580782548e-14\n    test 152 forward 225N (-56.569, -113.137) -/-: -3566696.824822, -11619422.467571, 117.096854, 1.159166\n    test 153 reverse 225N (-56.569, -113.137) -/-: 0.0\n    test 154 forward 228N (-53.530, -118.903) -/-: -3685290.742854, -12189522.028618, 124.447841, 1.170375\n    test 155 reverse 228N (-53.530, -118.903) -/-: 1.5888218580782548e-14\n    test 156 forward 231N (-50.346, -124.343) -/-: -3742386.824274, -12791126.616764, 131.557863, 1.176031\n    test 157 reverse 231N (-50.346, -124.343) -/-: 1.4210854715202004e-14\n    test 158 forward 234N (-47.023, -129.443) -/-: -3737846.053669, -13410380.03778, 138.317827, 1.175799\n    test 159 reverse 234N (-47.023, -129.443) -/-: 2.929642751054232e-14\n    test 160 forward 237N (-43.571, -134.187) -/-: -3676387.634221, -14034104.572541, 144.624552, 1.170121\n    test 161 reverse 237N (-43.571, -134.187) -/-: 0.0\n    test 162 forward 240N (-40.000, -138.564) -/-: -3566810.754496, -14651410.305646, 150.395289, 1.16007\n    test 163 reverse 240N (-40.000, -138.564) -/-: 0.0\n    test 164 forward 243N (-36.319, -142.561) -/-: -3420621.906486, -15254653.660248, 155.577129, 1.147079\n    test 165 reverse 243N (-36.319, -142.561) -/-: 7.105427357601002e-15\n    test 166 forward 246N (-32.539, -146.167) -/-: -3250522.133697, -15839614.666766, 160.149958, 1.132638\n    test 167 reverse 246N (-32.539, -146.167) -/-: 7.105427357601002e-15\n    test 168 forward 249N (-28.669, -149.373) -/-: -3069132.144368, -16405050.640186, 164.124094, 1.118063\n    test 169 reverse 249N (-28.669, -149.373) -/-: 3.552713678800501e-15\n    test 170 forward 252N (-24.721, -152.169) -/-: -2888128.173431, -16951919.948156, 167.534978, 1.104377\n    test 171 reverse 252N (-24.721, -152.169) -/-: 1.0658141036401503e-14\n    test 172 forward 255N (-20.706, -154.548) -/-: -2717773.256417, -17482549.021439, 170.437193, 1.09228\n    test 173 reverse 255N (-20.706, -154.548) -/-: 1.7763568394002505e-14\n    test 174 forward 258N (-16.633, -156.504) -/-: -2566730.586316, -17999918.486885, 172.899178, 1.082187\n    test 175 reverse 258N (-16.633, -156.504) -/-: 1.7763568394002505e-14\n    test 176 forward 261N (-12.515, -158.030) -/-: -2442031.891673, -18507145.758, 174.99917, 1.074303\n    test 177 reverse 261N (-12.515, -158.030) -/-: 1.2434497875801753e-14\n    test 178 forward 264N (-8.362, -159.124) -/-: -2349105.316925, -19007174.828239, 176.822266, 1.068689\n    test 179 reverse 264N (-8.362, -159.124) -/-: 1.7763568394002505e-14\n    test 180 forward 267N (-4.187, -159.781) -/-: -2291809.478825, -19502649.329559, 178.458273, 1.06534\n    test 181 reverse 267N (-4.187, -159.781) -/-: 8.881784197001252e-15\n    test 182 forward 270N (0.000, -160.000) -/-: -2272454.379192, -19995929.886042, 180.0, 1.064227\n    test 183 reverse 270N (0.000, -160.000) -/-: 2.4016501336544057e-14\n    test 184 forward 273N (4.187, -159.781) -/-: -2291809.478825, 19502649.329559, -178.458273, 1.06534\n    test 185 reverse 273N (4.187, -159.781) -/-: 6.217248937900877e-15\n    test 186 forward 276N (8.362, -159.124) -/-: -2349105.316925, 19007174.828239, -176.822266, 1.068689\n    test 187 reverse 276N (8.362, -159.124) -/-: 1.5987211554602254e-14\n    test 188 forward 279N (12.515, -158.030) -/-: -2442031.891673, 18507145.758, -174.99917, 1.074303\n    test 189 reverse 279N (12.515, -158.030) -/-: 7.105427357601002e-15\n    test 190 forward 282N (16.633, -156.504) -/-: -2566730.586316, 17999918.486885, -172.899178, 1.082187\n    test 191 reverse 282N (16.633, -156.504) -/-: 2.842170943040401e-14\n    test 192 forward 285N (20.706, -154.548) -/-: -2717773.256417, 17482549.021439, -170.437193, 1.09228\n    test 193 reverse 285N (20.706, -154.548) -/-: 1.7763568394002505e-14\n    test 194 forward 288N (24.721, -152.169) -/-: -2888128.173431, 16951919.948156, -167.534978, 1.104377\n    test 195 reverse 288N (24.721, -152.169) -/-: 7.105427357601002e-15\n    test 196 forward 291N (28.669, -149.373) -/-: -3069132.144368, 16405050.640186, -164.124094, 1.118063\n    test 197 reverse 291N (28.669, -149.373) -/-: 7.105427357601002e-15\n    test 198 forward 294N (32.539, -146.167) -/-: -3250522.133697, 15839614.666766, -160.149958, 1.132638\n    test 199 reverse 294N (32.539, -146.167) -/-: 7.105427357601002e-15\n    test 200 forward 297N (36.319, -142.561) -/-: -3420621.906486, 15254653.660248, -155.577129, 1.147079\n    test 201 reverse 297N (36.319, -142.561) -/-: 7.105427357601002e-15\n    test 202 forward 300N (40.000, -138.564) -/-: -3566810.754496, 14651410.305646, -150.395289, 1.16007\n    test 203 reverse 300N (40.000, -138.564) -/-: 0.0\n    test 204 forward 303N (43.571, -134.187) -/-: -3676387.634221, 14034104.572541, -144.624552, 1.170121\n    test 205 reverse 303N (43.571, -134.187) -/-: 0.0\n    test 206 forward 306N (47.023, -129.443) -/-: -3737846.053669, 13410380.03778, -138.317827, 1.175799\n    test 207 reverse 306N (47.023, -129.443) -/-: 2.929642751054232e-14\n    test 208 forward 309N (50.346, -124.343) -/-: -3742386.824274, 12791126.616764, -131.557863, 1.176031\n    test 209 reverse 309N (50.346, -124.343) -/-: 1.4210854715202004e-14\n    test 210 forward 312N (53.530, -118.903) -/-: -3685290.742854, 12189522.028618, -124.447841, 1.170375\n    test 211 reverse 312N (53.530, -118.903) -/-: 1.5888218580782548e-14\n    test 212 forward 315N (56.569, -113.137) -/-: -3566696.824822, 11619422.467571, -117.096854, 1.159166\n    test 213 reverse 315N (56.569, -113.137) -/-: 0.0\n    test 214 forward 318N (59.452, -107.061) -/-: -3391492.622467, 11093528.387239, -109.604086, 1.14345\n    test 215 reverse 318N (59.452, -107.061) -/-: 1.5888218580782548e-14\n    test 216 forward 321N (62.172, -100.691) -/-: -3168362.707459, 10621853.317461, -102.04623, 1.124739\n    test 217 reverse 321N (62.172, -100.691) -/-: 7.105427357601002e-15\n    test 218 forward 324N (64.721, -94.046) -/-: -2908348.733697, 10210857.598605, -94.471204, 1.104695\n    test 219 reverse 324N (64.721, -94.046) -/-: 0.0\n    test 220 forward 327N (67.094, -87.142) -/-: -2623368.28288, 9863301.12097, -86.898617, 1.084836\n    test 221 reverse 327N (67.094, -87.142) -/-: 0.0\n    test 222 forward 330N (69.282, -80.000) -/-: -2325015.074835, 9578621.128889, -79.325231, 1.066355\n    test 223 reverse 330N (69.282, -80.000) -/-: 2.842170943040401e-14\n    test 224 forward 333N (71.281, -72.638) -/-: -2023752.790526, 9353559.771346, -71.732868, 1.050046\n    test 225 reverse 333N (71.281, -72.638) -/-: 1.4210854715202004e-14\n    test 226 forward 336N (73.084, -65.078) -/-: -1728450.251911, 9182823.938232, -64.096558, 1.036319\n    test 227 reverse 336N (73.084, -65.078) -/-: 1.4210854715202004e-14\n    test 228 forward 339N (74.686, -57.339) -/-: -1446137.252018, 9059670.735504, -56.391495, 1.025259\n    test 229 reverse 339N (74.686, -57.339) -/-: 1.4210854715202004e-14\n    test 230 forward 342N (76.085, -49.443) -/-: -1181870.215451, 8976407.252949, -48.598167, 1.016714\n    test 231 reverse 342N (76.085, -49.443) -/-: 3.552713678800501e-14\n    test 232 forward 345N (77.274, -41.411) -/-: -938645.229361, 8924845.3123, -40.705476, 1.010384\n    test 233 reverse 345N (77.274, -41.411) -/-: 0.0\n    test 234 forward 348N (78.252, -33.266) -/-: -717349.637417, 8896761.249834, -32.712011, 1.005894\n    test 235 reverse 348N (78.252, -33.266) -/-: 2.5618982671915014e-14\n    test 236 forward 351N (79.015, -25.030) -/-: -516782.400098, 8884389.933155, -24.625783, 1.002865\n    test 237 reverse 351N (79.015, -25.030) -/-: 2.842170943040401e-14\n    test 238 forward 354N (79.562, -16.725) -/-: -333788.634116, 8880946.730424, -16.462884, 1.000962\n    test 239 reverse 354N (79.562, -16.725) -/-: 1.0658141036401503e-14\n    test 240 forward 357N (79.890, -8.374) -/-: -163544.38007, 8881136.361771, -8.245542, 0.999927\n    test 241 reverse 357N (79.890, -8.374) -/-: 1.7763568394002505e-15\n    test 242 forward 360N (80.000, 0.000) -/-: 0.0, 8881585.815988, 0.0, 0.9996\n    test 243 reverse 360N (80.000, 0.000) -/-: 0.0\n    test 244 max: 5.684341886080802e-14  FAILED, KNOWN, expected 6e-14\n\n    test 245 forward: 6208422.5374, 5452954.287187, 41.077484, 1.511911\n    test 246 reverse: 30.244228, 60.169664, 41.479185, 1.510346\n\n    test 247 _TM: KTransverseMercator(ellipsoid=Ellipsoid(name='Sphere', a=6371008.771415, f=0, f_=0, b=6371008.771415), k0=0.9996, TMorder=4)\n    test 248 forward 0N (80.000, 0.000) -/-: 0.0, 8892048.136219, 0.0, 0.9996\n    test 249 reverse 0N (80.000, 0.000) -/-: 0.0\n    test 250 forward 3N (79.890, 8.374) -/-: 162830.781916, 8891598.152508, 8.245541, 0.999927\n    test 251 reverse 3N (79.890, 8.374) -/-: 3.552713678800501e-15\n    test 252 forward 6N (79.562, 16.725) -/-: 332334.438121, 8891401.702739, 16.462875, 1.000961\n    test 253 reverse 6N (79.562, 16.725) -/-: 3.552713678800501e-15\n    test 254 forward 9N (79.015, 25.030) -/-: 514536.969405, 8894816.626946, 24.625748, 1.002864\n    test 255 reverse 9N (79.015, 25.030) -/-: 3.552713678800501e-15\n    test 256 forward 12N (78.252, 33.266) -/-: 714245.109628, 8907114.580812, 32.711919, 1.005893\n    test 257 reverse 12N (78.252, 33.266) -/-: 1.4210854715202004e-14\n    test 258 forward 15N (77.274, 41.411) -/-: 934605.427053, 8935050.398758, 40.705275, 1.010384\n    test 259 reverse 15N (77.274, 41.411) -/-: 2.1316282072803006e-14\n    test 260 forward 18N (76.085, 49.443) -/-: 1176821.393989, 8986356.098856, 48.597784, 1.016715\n    test 261 reverse 18N (76.085, 49.443) -/-: 7.105427357601002e-15\n    test 262 forward 21N (74.686, 57.339) -/-: 1440020.023752, 9069222.197918, 56.390849, 1.025263\n    test 263 reverse 21N (74.686, 57.339) -/-: 2.0097183471152322e-14\n    test 264 forward 24N (73.084, 65.078) -/-: 1721232.03303, 9191807.409386, 64.095597, 1.036332\n    test 265 reverse 24N (73.084, 65.078) -/-: 4.4938668397781776e-14\n    test 266 forward 27N (71.281, 72.638) -/-: 2015439.94304, 9361783.139474, 71.731644, 1.050076\n    test 267 reverse 27N (71.281, 72.638) -/-: 0.0\n    test 268 forward 30N (69.282, 80.000) -/-: 2315663.380439, 9585883.63353, 79.324018, 1.066413\n    test 269 reverse 30N (69.282, 80.000) -/-: 1.4210854715202004e-14\n    test 270 forward 33N (67.094, 87.142) -/-: 2613089.50746, 9869411.258858, 86.898056, 1.084934\n    test 271 reverse 33N (67.094, 87.142) -/-: 1.4210854715202004e-14\n    test 272 forward 36N (64.721, 94.046) -/-: 2897310.302591, 10215654.794479, 94.472414, 1.104843\n    test 273 reverse 36N (64.721, 94.046) -/-: 4.263256414560601e-14\n    test 274 forward 39N (62.172, 100.691) -/-: 3156777.9732, 10625229.653451, 102.050793, 1.12494\n    test 275 reverse 39N (62.172, 100.691) -/-: 7.105427357601002e-15\n    test 276 forward 42N (59.452, 107.061) -/-: 3379601.994821, 11095444.501021, 109.613799, 1.143688\n    test 277 reverse 42N (59.452, 107.061) -/-: 1.5888218580782548e-14\n    test 278 forward 45N (56.569, 113.137) -/-: 3554744.82183, 11619912.294696, 117.113212, 1.159405\n    test 279 reverse 45N (56.569, 113.137) -/-: 7.105427357601002e-15\n    test 280 forward 48N (53.530, 118.903) -/-: 3673507.549162, 12188686.186502, 124.471401, 1.170561\n    test 281 reverse 48N (53.530, 118.903) -/-: 1.4210854715202004e-14\n    test 282 forward 51N (50.346, 124.343) -/-: 3730980.59573, 12789121.454112, 131.587794, 1.176106\n    test 283 reverse 51N (50.346, 124.343) -/-: 1.4210854715202004e-14\n    test 284 forward 54N (47.023, 129.443) -/-: 3727003.760242, 13407411.821957, 138.351947, 1.175719\n    test 285 reverse 54N (47.023, 129.443) -/-: 7.105427357601002e-15\n    test 286 forward 57N (43.571, 134.187) -/-: 3666275.084648, 14030431.844036, 144.659906, 1.16987\n    test 287 reverse 57N (43.571, 134.187) -/-: 0.0\n    test 288 forward 60N (40.000, 138.564) -/-: 3557564.445775, 14647347.719581, 150.428973, 1.159665\n    test 289 reverse 60N (40.000, 138.564) -/-: 7.105427357601002e-15\n    test 290 forward 63N (36.319, 142.561) -/-: 3412334.48396, 15250567.642625, 155.606964, 1.146559\n    test 291 reverse 63N (36.319, 142.561) -/-: 0.0\n    test 292 forward 66N (32.539, 146.167) -/-: 3243229.892204, 15835907.12812, 160.174784, 1.132049\n    test 293 reverse 66N (32.539, 146.167) -/-: 3.1776437161565096e-14\n    test 294 forward 69N (28.669, 149.373) -/-: 3062811.744735, 16402134.803105, 164.143685, 1.117448\n    test 295 reverse 69N (28.669, 149.373) -/-: 3.552713678800501e-15\n    test 296 forward 72N (24.721, 152.169) -/-: 2882703.816659, 16950195.447611, 167.549757, 1.103767\n    test 297 reverse 72N (24.721, 152.169) -/-: 0.0\n    test 298 forward 75N (20.706, 154.548) -/-: 2713130.658999, 17482381.525728, 170.447906, 1.091693\n    test 299 reverse 75N (20.706, 154.548) -/-: 1.0658141036401503e-14\n    test 300 forward 78N (16.633, 156.504) -/-: 2562732.651149, 18001625.534999, 172.906642, 1.081633\n    test 301 reverse 78N (16.633, 156.504) -/-: 7.105427357601002e-15\n    test 302 forward 81N (12.515, 158.030) -/-: 2438532.075646, 18510987.984533, 175.004113, 1.07378\n    test 303 reverse 81N (12.515, 158.030) -/-: 3.552713678800501e-15\n    test 304 forward 84N (8.362, 159.124) -/-: 2345956.628332, 19013350.872509, 176.82525, 1.068192\n    test 305 reverse 84N (8.362, 159.124) -/-: 8.881784197001252e-15\n    test 306 forward 87N (4.187, 159.781) -/-: 2288868.720832, 19511292.939628, 178.459673, 1.064859\n    test 307 reverse 87N (4.187, 159.781) -/-: 1.9539925233402755e-14\n    test 308 forward 90N (0.000, 160.000) -/-: 2269582.383311, -20007108.306493, -180.0, 1.063752\n    test 309 reverse 90N (0.000, 160.000) -/-: 0.0\n    test 310 forward 93N (-4.187, 159.781) -/-: 2288868.720832, -19511292.939628, -178.459673, 1.064859\n    test 311 reverse 93N (-4.187, 159.781) -/-: 3.019806626980426e-14\n    test 312 forward 96N (-8.362, 159.124) -/-: 2345956.628332, -19013350.872509, -176.82525, 1.068192\n    test 313 reverse 96N (-8.362, 159.124) -/-: 1.0658141036401503e-14\n    test 314 forward 99N (-12.515, 158.030) -/-: 2438532.075646, -18510987.984533, -175.004113, 1.07378\n    test 315 reverse 99N (-12.515, 158.030) -/-: 8.881784197001252e-15\n    test 316 forward 102N (-16.633, 156.504) -/-: 2562732.651149, -18001625.534999, -172.906642, 1.081633\n    test 317 reverse 102N (-16.633, 156.504) -/-: 3.552713678800501e-15\n    test 318 forward 105N (-20.706, 154.548) -/-: 2713130.658999, -17482381.525728, -170.447906, 1.091693\n    test 319 reverse 105N (-20.706, 154.548) -/-: 1.0658141036401503e-14\n    test 320 forward 108N (-24.721, 152.169) -/-: 2882703.816659, -16950195.447611, -167.549757, 1.103767\n    test 321 reverse 108N (-24.721, 152.169) -/-: 3.552713678800501e-15\n    test 322 forward 111N (-28.669, 149.373) -/-: 3062811.744735, -16402134.803105, -164.143685, 1.117448\n    test 323 reverse 111N (-28.669, 149.373) -/-: 1.0658141036401503e-14\n    test 324 forward 114N (-32.539, 146.167) -/-: 3243229.892204, -15835907.12812, -160.174784, 1.132049\n    test 325 reverse 114N (-32.539, 146.167) -/-: 3.1776437161565096e-14\n    test 326 forward 117N (-36.319, 142.561) -/-: 3412334.48396, -15250567.642625, -155.606964, 1.146559\n    test 327 reverse 117N (-36.319, 142.561) -/-: 0.0\n    test 328 forward 120N (-40.000, 138.564) -/-: 3557564.445775, -14647347.719581, -150.428973, 1.159665\n    test 329 reverse 120N (-40.000, 138.564) -/-: 0.0\n    test 330 forward 123N (-43.571, 134.187) -/-: 3666275.084648, -14030431.844036, -144.659906, 1.16987\n    test 331 reverse 123N (-43.571, 134.187) -/-: 0.0\n    test 332 forward 126N (-47.023, 129.443) -/-: 3727003.760242, -13407411.821957, -138.351947, 1.175719\n    test 333 reverse 126N (-47.023, 129.443) -/-: 7.105427357601002e-15\n    test 334 forward 129N (-50.346, 124.343) -/-: 3730980.59573, -12789121.454112, -131.587794, 1.176106\n    test 335 reverse 129N (-50.346, 124.343) -/-: 1.4210854715202004e-14\n    test 336 forward 132N (-53.530, 118.903) -/-: 3673507.549162, -12188686.186502, -124.471401, 1.170561\n    test 337 reverse 132N (-53.530, 118.903) -/-: 1.4210854715202004e-14\n    test 338 forward 135N (-56.569, 113.137) -/-: 3554744.82183, -11619912.294696, -117.113212, 1.159405\n    test 339 reverse 135N (-56.569, 113.137) -/-: 7.105427357601002e-15\n    test 340 forward 138N (-59.452, 107.061) -/-: 3379601.994821, -11095444.501021, -109.613799, 1.143688\n    test 341 reverse 138N (-59.452, 107.061) -/-: 1.5888218580782548e-14\n    test 342 forward 141N (-62.172, 100.691) -/-: 3156777.9732, -10625229.653451, -102.050793, 1.12494\n    test 343 reverse 141N (-62.172, 100.691) -/-: 7.105427357601002e-15\n    test 344 forward 144N (-64.721, 94.046) -/-: 2897310.302591, -10215654.794479, -94.472414, 1.104843\n    test 345 reverse 144N (-64.721, 94.046) -/-: 4.263256414560601e-14\n    test 346 forward 147N (-67.094, 87.142) -/-: 2613089.50746, -9869411.258858, -86.898056, 1.084934\n    test 347 reverse 147N (-67.094, 87.142) -/-: 1.4210854715202004e-14\n    test 348 forward 150N (-69.282, 80.000) -/-: 2315663.380439, -9585883.63353, -79.324018, 1.066413\n    test 349 reverse 150N (-69.282, 80.000) -/-: 2.842170943040401e-14\n    test 350 forward 153N (-71.281, 72.638) -/-: 2015439.94304, -9361783.139474, -71.731644, 1.050076\n    test 351 reverse 153N (-71.281, 72.638) -/-: 0.0\n    test 352 forward 156N (-73.084, 65.078) -/-: 1721232.03303, -9191807.409386, -64.095597, 1.036332\n    test 353 reverse 156N (-73.084, 65.078) -/-: 4.4938668397781776e-14\n    test 354 forward 159N (-74.686, 57.339) -/-: 1440020.023752, -9069222.197918, -56.390849, 1.025263\n    test 355 reverse 159N (-74.686, 57.339) -/-: 7.105427357601002e-15\n    test 356 forward 162N (-76.085, 49.443) -/-: 1176821.393989, -8986356.098856, -48.597784, 1.016715\n    test 357 reverse 162N (-76.085, 49.443) -/-: 7.105427357601002e-15\n    test 358 forward 165N (-77.274, 41.411) -/-: 934605.427053, -8935050.398758, -40.705275, 1.010384\n    test 359 reverse 165N (-77.274, 41.411) -/-: 2.1316282072803006e-14\n    test 360 forward 168N (-78.252, 33.266) -/-: 714245.109628, -8907114.580812, -32.711919, 1.005893\n    test 361 reverse 168N (-78.252, 33.266) -/-: 1.4210854715202004e-14\n    test 362 forward 171N (-79.015, 25.030) -/-: 514536.969405, -8894816.626946, -24.625748, 1.002864\n    test 363 reverse 171N (-79.015, 25.030) -/-: 3.552713678800501e-15\n    test 364 forward 174N (-79.562, 16.725) -/-: 332334.438121, -8891401.702739, -16.462875, 1.000961\n    test 365 reverse 174N (-79.562, 16.725) -/-: 3.552713678800501e-15\n    test 366 forward 177N (-79.890, 8.374) -/-: 162830.781916, -8891598.152508, -8.245541, 0.999927\n    test 367 reverse 177N (-79.890, 8.374) -/-: 1.7763568394002505e-15\n    test 368 forward 180N (-80.000, 0.000) -/-: 0.0, -8892048.136219, 0.0, 0.9996\n    test 369 reverse 180N (-80.000, 0.000) -/-: 0.0\n    test 370 forward 183N (-79.890, -8.374) -/-: -162830.781916, -8891598.152508, 8.245541, 0.999927\n    test 371 reverse 183N (-79.890, -8.374) -/-: 3.552713678800501e-15\n    test 372 forward 186N (-79.562, -16.725) -/-: -332334.438121, -8891401.702739, 16.462875, 1.000961\n    test 373 reverse 186N (-79.562, -16.725) -/-: 3.552713678800501e-15\n    test 374 forward 189N (-79.015, -25.030) -/-: -514536.969405, -8894816.626946, 24.625748, 1.002864\n    test 375 reverse 189N (-79.015, -25.030) -/-: 3.552713678800501e-15\n    test 376 forward 192N (-78.252, -33.266) -/-: -714245.109628, -8907114.580812, 32.711919, 1.005893\n    test 377 reverse 192N (-78.252, -33.266) -/-: 1.4210854715202004e-14\n    test 378 forward 195N (-77.274, -41.411) -/-: -934605.427053, -8935050.398758, 40.705275, 1.010384\n    test 379 reverse 195N (-77.274, -41.411) -/-: 2.1316282072803006e-14\n    test 380 forward 198N (-76.085, -49.443) -/-: -1176821.393989, -8986356.098856, 48.597784, 1.016715\n    test 381 reverse 198N (-76.085, -49.443) -/-: 7.105427357601002e-15\n    test 382 forward 201N (-74.686, -57.339) -/-: -1440020.023752, -9069222.197918, 56.390849, 1.025263\n    test 383 reverse 201N (-74.686, -57.339) -/-: 2.0097183471152322e-14\n    test 384 forward 204N (-73.084, -65.078) -/-: -1721232.03303, -9191807.409386, 64.095597, 1.036332\n    test 385 reverse 204N (-73.084, -65.078) -/-: 4.4938668397781776e-14\n    test 386 forward 207N (-71.281, -72.638) -/-: -2015439.94304, -9361783.139474, 71.731644, 1.050076\n    test 387 reverse 207N (-71.281, -72.638) -/-: 0.0\n    test 388 forward 210N (-69.282, -80.000) -/-: -2315663.380439, -9585883.63353, 79.324018, 1.066413\n    test 389 reverse 210N (-69.282, -80.000) -/-: 1.4210854715202004e-14\n    test 390 forward 213N (-67.094, -87.142) -/-: -2613089.50746, -9869411.258858, 86.898056, 1.084934\n    test 391 reverse 213N (-67.094, -87.142) -/-: 1.4210854715202004e-14\n    test 392 forward 216N (-64.721, -94.046) -/-: -2897310.302591, -10215654.794479, 94.472414, 1.104843\n    test 393 reverse 216N (-64.721, -94.046) -/-: 4.263256414560601e-14\n    test 394 forward 219N (-62.172, -100.691) -/-: -3156777.9732, -10625229.653451, 102.050793, 1.12494\n    test 395 reverse 219N (-62.172, -100.691) -/-: 7.105427357601002e-15\n    test 396 forward 222N (-59.452, -107.061) -/-: -3379601.994821, -11095444.501021, 109.613799, 1.143688\n    test 397 reverse 222N (-59.452, -107.061) -/-: 1.5888218580782548e-14\n    test 398 forward 225N (-56.569, -113.137) -/-: -3554744.82183, -11619912.294696, 117.113212, 1.159405\n    test 399 reverse 225N (-56.569, -113.137) -/-: 7.105427357601002e-15\n    test 400 forward 228N (-53.530, -118.903) -/-: -3673507.549162, -12188686.186502, 124.471401, 1.170561\n    test 401 reverse 228N (-53.530, -118.903) -/-: 1.4210854715202004e-14\n    test 402 forward 231N (-50.346, -124.343) -/-: -3730980.59573, -12789121.454112, 131.587794, 1.176106\n    test 403 reverse 231N (-50.346, -124.343) -/-: 1.4210854715202004e-14\n    test 404 forward 234N (-47.023, -129.443) -/-: -3727003.760242, -13407411.821957, 138.351947, 1.175719\n    test 405 reverse 234N (-47.023, -129.443) -/-: 7.105427357601002e-15\n    test 406 forward 237N (-43.571, -134.187) -/-: -3666275.084648, -14030431.844036, 144.659906, 1.16987\n    test 407 reverse 237N (-43.571, -134.187) -/-: 0.0\n    test 408 forward 240N (-40.000, -138.564) -/-: -3557564.445775, -14647347.719581, 150.428973, 1.159665\n    test 409 reverse 240N (-40.000, -138.564) -/-: 7.105427357601002e-15\n    test 410 forward 243N (-36.319, -142.561) -/-: -3412334.48396, -15250567.642625, 155.606964, 1.146559\n    test 411 reverse 243N (-36.319, -142.561) -/-: 0.0\n    test 412 forward 246N (-32.539, -146.167) -/-: -3243229.892204, -15835907.12812, 160.174784, 1.132049\n    test 413 reverse 246N (-32.539, -146.167) -/-: 3.1776437161565096e-14\n    test 414 forward 249N (-28.669, -149.373) -/-: -3062811.744735, -16402134.803105, 164.143685, 1.117448\n    test 415 reverse 249N (-28.669, -149.373) -/-: 3.552713678800501e-15\n    test 416 forward 252N (-24.721, -152.169) -/-: -2882703.816659, -16950195.447611, 167.549757, 1.103767\n    test 417 reverse 252N (-24.721, -152.169) -/-: 0.0\n    test 418 forward 255N (-20.706, -154.548) -/-: -2713130.658999, -17482381.525728, 170.447906, 1.091693\n    test 419 reverse 255N (-20.706, -154.548) -/-: 1.0658141036401503e-14\n    test 420 forward 258N (-16.633, -156.504) -/-: -2562732.651149, -18001625.534999, 172.906642, 1.081633\n    test 421 reverse 258N (-16.633, -156.504) -/-: 7.105427357601002e-15\n    test 422 forward 261N (-12.515, -158.030) -/-: -2438532.075646, -18510987.984533, 175.004113, 1.07378\n    test 423 reverse 261N (-12.515, -158.030) -/-: 3.552713678800501e-15\n    test 424 forward 264N (-8.362, -159.124) -/-: -2345956.628332, -19013350.872509, 176.82525, 1.068192\n    test 425 reverse 264N (-8.362, -159.124) -/-: 8.881784197001252e-15\n    test 426 forward 267N (-4.187, -159.781) -/-: -2288868.720832, -19511292.939628, 178.459673, 1.064859\n    test 427 reverse 267N (-4.187, -159.781) -/-: 1.9539925233402755e-14\n    test 428 forward 270N (0.000, -160.000) -/-: -2269582.383311, -20007108.306493, 180.0, 1.063752\n    test 429 reverse 270N (0.000, -160.000) -/-: 0.0\n    test 430 forward 273N (4.187, -159.781) -/-: -2288868.720832, 19511292.939628, -178.459673, 1.064859\n    test 431 reverse 273N (4.187, -159.781) -/-: 3.019806626980426e-14\n    test 432 forward 276N (8.362, -159.124) -/-: -2345956.628332, 19013350.872509, -176.82525, 1.068192\n    test 433 reverse 276N (8.362, -159.124) -/-: 1.0658141036401503e-14\n    test 434 forward 279N (12.515, -158.030) -/-: -2438532.075646, 18510987.984533, -175.004113, 1.07378\n    test 435 reverse 279N (12.515, -158.030) -/-: 8.881784197001252e-15\n    test 436 forward 282N (16.633, -156.504) -/-: -2562732.651149, 18001625.534999, -172.906642, 1.081633\n    test 437 reverse 282N (16.633, -156.504) -/-: 3.552713678800501e-15\n    test 438 forward 285N (20.706, -154.548) -/-: -2713130.658999, 17482381.525728, -170.447906, 1.091693\n    test 439 reverse 285N (20.706, -154.548) -/-: 1.0658141036401503e-14\n    test 440 forward 288N (24.721, -152.169) -/-: -2882703.816659, 16950195.447611, -167.549757, 1.103767\n    test 441 reverse 288N (24.721, -152.169) -/-: 3.552713678800501e-15\n    test 442 forward 291N (28.669, -149.373) -/-: -3062811.744735, 16402134.803105, -164.143685, 1.117448\n    test 443 reverse 291N (28.669, -149.373) -/-: 1.0658141036401503e-14\n    test 444 forward 294N (32.539, -146.167) -/-: -3243229.892204, 15835907.12812, -160.174784, 1.132049\n    test 445 reverse 294N (32.539, -146.167) -/-: 3.1776437161565096e-14\n    test 446 forward 297N (36.319, -142.561) -/-: -3412334.48396, 15250567.642625, -155.606964, 1.146559\n    test 447 reverse 297N (36.319, -142.561) -/-: 0.0\n    test 448 forward 300N (40.000, -138.564) -/-: -3557564.445775, 14647347.719581, -150.428973, 1.159665\n    test 449 reverse 300N (40.000, -138.564) -/-: 0.0\n    test 450 forward 303N (43.571, -134.187) -/-: -3666275.084648, 14030431.844036, -144.659906, 1.16987\n    test 451 reverse 303N (43.571, -134.187) -/-: 0.0\n    test 452 forward 306N (47.023, -129.443) -/-: -3727003.760242, 13407411.821957, -138.351947, 1.175719\n    test 453 reverse 306N (47.023, -129.443) -/-: 7.105427357601002e-15\n    test 454 forward 309N (50.346, -124.343) -/-: -3730980.59573, 12789121.454112, -131.587794, 1.176106\n    test 455 reverse 309N (50.346, -124.343) -/-: 1.4210854715202004e-14\n    test 456 forward 312N (53.530, -118.903) -/-: -3673507.549162, 12188686.186502, -124.471401, 1.170561\n    test 457 reverse 312N (53.530, -118.903) -/-: 1.4210854715202004e-14\n    test 458 forward 315N (56.569, -113.137) -/-: -3554744.82183, 11619912.294696, -117.113212, 1.159405\n    test 459 reverse 315N (56.569, -113.137) -/-: 7.105427357601002e-15\n    test 460 forward 318N (59.452, -107.061) -/-: -3379601.994821, 11095444.501021, -109.613799, 1.143688\n    test 461 reverse 318N (59.452, -107.061) -/-: 1.5888218580782548e-14\n    test 462 forward 321N (62.172, -100.691) -/-: -3156777.9732, 10625229.653451, -102.050793, 1.12494\n    test 463 reverse 321N (62.172, -100.691) -/-: 7.105427357601002e-15\n    test 464 forward 324N (64.721, -94.046) -/-: -2897310.302591, 10215654.794479, -94.472414, 1.104843\n    test 465 reverse 324N (64.721, -94.046) -/-: 4.263256414560601e-14\n    test 466 forward 327N (67.094, -87.142) -/-: -2613089.50746, 9869411.258858, -86.898056, 1.084934\n    test 467 reverse 327N (67.094, -87.142) -/-: 1.4210854715202004e-14\n    test 468 forward 330N (69.282, -80.000) -/-: -2315663.380439, 9585883.63353, -79.324018, 1.066413\n    test 469 reverse 330N (69.282, -80.000) -/-: 2.842170943040401e-14\n    test 470 forward 333N (71.281, -72.638) -/-: -2015439.94304, 9361783.139474, -71.731644, 1.050076\n    test 471 reverse 333N (71.281, -72.638) -/-: 0.0\n    test 472 forward 336N (73.084, -65.078) -/-: -1721232.03303, 9191807.409386, -64.095597, 1.036332\n    test 473 reverse 336N (73.084, -65.078) -/-: 4.4938668397781776e-14\n    test 474 forward 339N (74.686, -57.339) -/-: -1440020.023752, 9069222.197918, -56.390849, 1.025263\n    test 475 reverse 339N (74.686, -57.339) -/-: 7.105427357601002e-15\n    test 476 forward 342N (76.085, -49.443) -/-: -1176821.393989, 8986356.098856, -48.597784, 1.016715\n    test 477 reverse 342N (76.085, -49.443) -/-: 7.105427357601002e-15\n    test 478 forward 345N (77.274, -41.411) -/-: -934605.427053, 8935050.398758, -40.705275, 1.010384\n    test 479 reverse 345N (77.274, -41.411) -/-: 2.1316282072803006e-14\n    test 480 forward 348N (78.252, -33.266) -/-: -714245.109628, 8907114.580812, -32.711919, 1.005893\n    test 481 reverse 348N (78.252, -33.266) -/-: 1.4210854715202004e-14\n    test 482 forward 351N (79.015, -25.030) -/-: -514536.969405, 8894816.626946, -24.625748, 1.002864\n    test 483 reverse 351N (79.015, -25.030) -/-: 3.552713678800501e-15\n    test 484 forward 354N (79.562, -16.725) -/-: -332334.438121, 8891401.702739, -16.462875, 1.000961\n    test 485 reverse 354N (79.562, -16.725) -/-: 3.552713678800501e-15\n    test 486 forward 357N (79.890, -8.374) -/-: -162830.781916, 8891598.152508, -8.245541, 0.999927\n    test 487 reverse 357N (79.890, -8.374) -/-: 1.7763568394002505e-15\n    test 488 forward 360N (80.000, 0.000) -/-: 0.0, 8892048.136219, 0.0, 0.9996\n    test 489 reverse 360N (80.000, 0.000) -/-: 0.0\n    test 490 max: 4.4938668397781776e-14  FAILED, KNOWN, expected 5e-14\n\n    test 491 forward: 6196225.831883, 5458228.732328, 40.893395, 1.511253\n    test 492 reverse: 30.172556, 60.208316, 41.279729, 1.511925\n\n    test 493 _TM: ExactTransverseMercator(datum='WGS84', extendp=False, k0=0.9996, lon0=0.0)\n    test 494 forward 0N (80.000, 0.000) 3/3: 0.0, 8881585.815988, 0.0, 0.9996\n    test 495 reverse 0N (80.000, 0.000) 3/3: 0.0\n    test 496 forward 3N (79.890, 8.374) 3/4: 163544.38007, 8881136.361771, 8.245542, 0.999927\n    test 497 reverse 3N (79.890, 8.374) 3/3: 5.123796534383003e-14\n    test 498 forward 6N (79.562, 16.725) 3/4: 333788.634116, 8880946.730424, 16.462884, 1.000962\n    test 499 reverse 6N (79.562, 16.725) 3/3: 6.039613253960852e-14\n    test 500 forward 9N (79.015, 25.030) 3/4: 516782.400098, 8884389.933155, 24.625783, 1.002865\n    test 501 reverse 9N (79.015, 25.030) 3/3: 1.5888218580782548e-14\n    test 502 forward 12N (78.252, 33.266) 3/4: 717349.637417, 8896761.249834, 32.712011, 1.005894\n    test 503 reverse 12N (78.252, 33.266) 3/3: 1.4210854715202004e-14\n    test 504 forward 15N (77.274, 41.411) 3/4: 938645.229361, 8924845.3123, 40.705476, 1.010384\n    test 505 reverse 15N (77.274, 41.411) 3/3: 4.4938668397781776e-14\n    test 506 forward 18N (76.085, 49.443) 3/4: 1181870.215451, 8976407.252949, 48.598167, 1.016714\n    test 507 reverse 18N (76.085, 49.443) 3/3: 7.105427357601002e-15\n    test 508 forward 21N (74.686, 57.339) 3/4: 1446137.252018, 9059670.735504, 56.391495, 1.025259\n    test 509 reverse 21N (74.686, 57.339) 3/3: 7.944109290391274e-14\n    test 510 forward 24N (73.084, 65.078) 3/4: 1728450.251911, 9182823.938232, 64.096558, 1.036319\n    test 511 reverse 24N (73.084, 65.078) 3/3: 1.4210854715202004e-14\n    test 512 forward 27N (71.281, 72.638) 3/4: 2023752.790526, 9353559.771346, 71.732868, 1.050046\n    test 513 reverse 27N (71.281, 72.638) 3/3: 2.842170943040401e-14\n    test 514 forward 30N (69.282, 80.000) 3/4: 2325015.074835, 9578621.128889, 79.325231, 1.066355\n    test 515 reverse 30N (69.282, 80.000) 3/4: 5.684341886080802e-14\n    test 516 forward 33N (67.094, 87.142) 3/4: 2623368.28288, 9863301.12097, 86.898617, 1.084836\n    test 517 reverse 33N (67.094, 87.142) 3/4: 1.4210854715202004e-14\n    test 518 forward 36N (64.721, 94.046) 3/4: 2908348.733697, 10210857.598605, 94.471204, 1.104695\n    test 519 reverse 36N (64.721, 94.046) 3/4: 1.4210854715202004e-14\n    test 520 forward 39N (62.172, 100.691) 3/4: 3168362.707459, 10621853.317461, 102.04623, 1.124739\n    test 521 reverse 39N (62.172, 100.691) 3/4: 2.929642751054232e-14\n    test 522 forward 42N (59.452, 107.061) 3/4: 3391492.622467, 11093528.387239, 109.604086, 1.14345\n    test 523 reverse 42N (59.452, 107.061) 3/4: 7.105427357601002e-15\n    test 524 forward 45N (56.569, 113.137) 3/4: 3566696.824822, 11619422.467571, 117.096854, 1.159166\n    test 525 reverse 45N (56.569, 113.137) 3/4: 2.0097183471152322e-14\n    test 526 forward 48N (53.530, 118.903) 3/4: 3685290.742854, 12189522.028618, 124.447841, 1.170375\n    test 527 reverse 48N (53.530, 118.903) 3/4: 2.842170943040401e-14\n    test 528 forward 51N (50.346, 124.343) 3/4: 3742386.824274, 12791126.616764, 131.557863, 1.176031\n    test 529 reverse 51N (50.346, 124.343) 3/4: 5.684341886080802e-14\n    test 530 forward 54N (47.023, 129.443) 3/4: 3737846.053669, 13410380.03778, 138.317827, 1.175799\n    test 531 reverse 54N (47.023, 129.443) 3/4: 4.0194366942304644e-14\n    test 532 forward 57N (43.571, 134.187) 3/4: 3676387.634221, 14034104.572541, 144.624552, 1.170121\n    test 533 reverse 57N (43.571, 134.187) 3/4: 0.0\n    test 534 forward 60N (40.000, 138.564) 3/4: 3566810.754496, 14651410.305646, 150.395289, 1.16007\n    test 535 reverse 60N (40.000, 138.564) 3/4: 1.4210854715202004e-14\n    test 536 forward 63N (36.319, 142.561) 3/4: 3420621.906486, 15254653.660248, 155.577129, 1.147079\n    test 537 reverse 63N (36.319, 142.561) 3/4: 7.105427357601002e-15\n    test 538 forward 66N (32.539, 146.167) 3/4: 3250522.133697, 15839614.666766, 160.149958, 1.132638\n    test 539 reverse 66N (32.539, 146.167) 3/4: 1.4210854715202004e-14\n    test 540 forward 69N (28.669, 149.373) 3/4: 3069132.144368, 16405050.640186, 164.124094, 1.118063\n    test 541 reverse 69N (28.669, 149.373) 3/4: 1.0658141036401503e-14\n    test 542 forward 72N (24.721, 152.169) 3/4: 2888128.173431, 16951919.948156, 167.534978, 1.104377\n    test 543 reverse 72N (24.721, 152.169) 3/4: 7.105427357601002e-15\n    test 544 forward 75N (20.706, 154.548) 3/4: 2717773.256417, 17482549.021439, 170.437193, 1.09228\n    test 545 reverse 75N (20.706, 154.548) 3/4: 3.552713678800501e-15\n    test 546 forward 78N (16.633, 156.504) 3/4: 2566730.586316, 17999918.486885, 172.899178, 1.082187\n    test 547 reverse 78N (16.633, 156.504) 3/4: 3.552713678800501e-15\n    test 548 forward 81N (12.515, 158.030) 3/4: 2442031.891673, 18507145.758, 174.99917, 1.074303\n    test 549 reverse 81N (12.515, 158.030) 3/4: 5.329070518200751e-15\n    test 550 forward 84N (8.362, 159.124) 3/4: 2349105.316925, 19007174.828239, 176.822266, 1.068689\n    test 551 reverse 84N (8.362, 159.124) 3/4: 8.881784197001252e-15\n    test 552 forward 87N (4.187, 159.781) 3/4: 2291809.478825, 19502649.329559, 178.458273, 1.06534\n    test 553 reverse 87N (4.187, 159.781) 3/4: 9.769962616701378e-15\n    test 554 forward 90N (0.000, 160.000) 3/4: 2272454.379192, -19995929.886042, -180.0, 1.064227\n    test 555 reverse 90N (0.000, 160.000) 3/3: 0.0\n    test 556 forward 93N (-4.187, 159.781) 3/4: 2291809.478825, -19502649.329559, -178.458273, 1.06534\n    test 557 reverse 93N (-4.187, 159.781) 3/4: 2.842170943040401e-14\n    test 558 forward 96N (-8.362, 159.124) 3/4: 2349105.316925, -19007174.828239, -176.822266, 1.068689\n    test 559 reverse 96N (-8.362, 159.124) 3/4: 1.0658141036401503e-14\n    test 560 forward 99N (-12.515, 158.030) 3/4: 2442031.891673, -18507145.758, -174.99917, 1.074303\n    test 561 reverse 99N (-12.515, 158.030) 3/4: 1.0658141036401503e-14\n    test 562 forward 102N (-16.633, 156.504) 3/4: 2566730.586316, -17999918.486885, -172.899178, 1.082187\n    test 563 reverse 102N (-16.633, 156.504) 3/4: 1.4210854715202004e-14\n    test 564 forward 105N (-20.706, 154.548) 3/4: 2717773.256417, -17482549.021439, -170.437193, 1.09228\n    test 565 reverse 105N (-20.706, 154.548) 3/4: 3.552713678800501e-15\n    test 566 forward 108N (-24.721, 152.169) 3/4: 2888128.173431, -16951919.948156, -167.534978, 1.104377\n    test 567 reverse 108N (-24.721, 152.169) 3/4: 1.7763568394002505e-14\n    test 568 forward 111N (-28.669, 149.373) 3/4: 3069132.144368, -16405050.640186, -164.124094, 1.118063\n    test 569 reverse 111N (-28.669, 149.373) 3/4: 7.105427357601002e-15\n    test 570 forward 114N (-32.539, 146.167) 3/4: 3250522.133697, -15839614.666766, -160.149958, 1.132638\n    test 571 reverse 114N (-32.539, 146.167) 3/4: 1.4210854715202004e-14\n    test 572 forward 117N (-36.319, 142.561) 3/4: 3420621.906486, -15254653.660248, -155.577129, 1.147079\n    test 573 reverse 117N (-36.319, 142.561) 3/4: 7.105427357601002e-15\n    test 574 forward 120N (-40.000, 138.564) 3/4: 3566810.754496, -14651410.305646, -150.395289, 1.16007\n    test 575 reverse 120N (-40.000, 138.564) 3/4: 7.105427357601002e-15\n    test 576 forward 123N (-43.571, 134.187) 3/4: 3676387.634221, -14034104.572541, -144.624552, 1.170121\n    test 577 reverse 123N (-43.571, 134.187) 3/4: 0.0\n    test 578 forward 126N (-47.023, 129.443) 3/4: 3737846.053669, -13410380.03778, -138.317827, 1.175799\n    test 579 reverse 126N (-47.023, 129.443) 3/4: 4.0194366942304644e-14\n    test 580 forward 129N (-50.346, 124.343) 3/4: 3742386.824274, -12791126.616764, -131.557863, 1.176031\n    test 581 reverse 129N (-50.346, 124.343) 3/4: 5.684341886080802e-14\n    test 582 forward 132N (-53.530, 118.903) 3/4: 3685290.742854, -12189522.028618, -124.447841, 1.170375\n    test 583 reverse 132N (-53.530, 118.903) 3/4: 2.842170943040401e-14\n    test 584 forward 135N (-56.569, 113.137) 3/4: 3566696.824822, -11619422.467571, -117.096854, 1.159166\n    test 585 reverse 135N (-56.569, 113.137) 3/4: 2.0097183471152322e-14\n    test 586 forward 138N (-59.452, 107.061) 3/4: 3391492.622467, -11093528.387239, -109.604086, 1.14345\n    test 587 reverse 138N (-59.452, 107.061) 3/4: 7.105427357601002e-15\n    test 588 forward 141N (-62.172, 100.691) 3/4: 3168362.707459, -10621853.317461, -102.04623, 1.124739\n    test 589 reverse 141N (-62.172, 100.691) 3/4: 2.929642751054232e-14\n    test 590 forward 144N (-64.721, 94.046) 3/4: 2908348.733697, -10210857.598605, -94.471204, 1.104695\n    test 591 reverse 144N (-64.721, 94.046) 3/4: 1.4210854715202004e-14\n    test 592 forward 147N (-67.094, 87.142) 3/4: 2623368.28288, -9863301.12097, -86.898617, 1.084836\n    test 593 reverse 147N (-67.094, 87.142) 3/4: 1.4210854715202004e-14\n    test 594 forward 150N (-69.282, 80.000) 3/4: 2325015.074835, -9578621.128889, -79.325231, 1.066355\n    test 595 reverse 150N (-69.282, 80.000) 3/4: 7.105427357601002e-14\n    test 596 forward 153N (-71.281, 72.638) 3/4: 2023752.790526, -9353559.771346, -71.732868, 1.050046\n    test 597 reverse 153N (-71.281, 72.638) 3/3: 2.842170943040401e-14\n    test 598 forward 156N (-73.084, 65.078) 3/4: 1728450.251911, -9182823.938232, -64.096558, 1.036319\n    test 599 reverse 156N (-73.084, 65.078) 3/3: 1.4210854715202004e-14\n    test 600 forward 159N (-74.686, 57.339) 3/4: 1446137.252018, -9059670.735504, -56.391495, 1.025259\n    test 601 reverse 159N (-74.686, 57.339) 3/3: 5.859285502108464e-14\n    test 602 forward 162N (-76.085, 49.443) 3/4: 1181870.215451, -8976407.252949, -48.598167, 1.016714\n    test 603 reverse 162N (-76.085, 49.443) 3/3: 0.0\n    test 604 forward 165N (-77.274, 41.411) 3/4: 938645.229361, -8924845.3123, -40.705476, 1.010384\n    test 605 reverse 165N (-77.274, 41.411) 3/3: 4.4938668397781776e-14\n    test 606 forward 168N (-78.252, 33.266) 3/4: 717349.637417, -8896761.249834, -32.712011, 1.005894\n    test 607 reverse 168N (-78.252, 33.266) 3/3: 3.1776437161565096e-14\n    test 608 forward 171N (-79.015, 25.030) 3/4: 516782.400098, -8884389.933155, -24.625783, 1.002865\n    test 609 reverse 171N (-79.015, 25.030) 3/3: 1.4210854715202004e-14\n    test 610 forward 174N (-79.562, 16.725) 3/4: 333788.634116, -8880946.730424, -16.462884, 1.000962\n    test 611 reverse 174N (-79.562, 16.725) 3/3: 5.728578676879116e-14\n    test 612 forward 177N (-79.890, 8.374) 3/4: 163544.38007, -8881136.361771, -8.245542, 0.999927\n    test 613 reverse 177N (-79.890, 8.374) 3/3: 5.224422199693188e-14\n    test 614 forward 180N (-80.000, 0.000) 3/3: 0.0, -8881585.815988, 0.0, 0.9996\n    test 615 reverse 180N (-80.000, 0.000) 3/3: 0.0\n    test 616 forward 183N (-79.890, -8.374) 3/4: -163544.38007, -8881136.361771, 8.245542, 0.999927\n    test 617 reverse 183N (-79.890, -8.374) 3/3: 5.123796534383003e-14\n    test 618 forward 186N (-79.562, -16.725) 3/4: -333788.634116, -8880946.730424, 16.462884, 1.000962\n    test 619 reverse 186N (-79.562, -16.725) 3/3: 6.039613253960852e-14\n    test 620 forward 189N (-79.015, -25.030) 3/4: -516782.400098, -8884389.933155, 24.625783, 1.002865\n    test 621 reverse 189N (-79.015, -25.030) 3/3: 1.5888218580782548e-14\n    test 622 forward 192N (-78.252, -33.266) 3/4: -717349.637417, -8896761.249834, 32.712011, 1.005894\n    test 623 reverse 192N (-78.252, -33.266) 3/3: 1.4210854715202004e-14\n    test 624 forward 195N (-77.274, -41.411) 3/4: -938645.229361, -8924845.3123, 40.705476, 1.010384\n    test 625 reverse 195N (-77.274, -41.411) 3/3: 4.4938668397781776e-14\n    test 626 forward 198N (-76.085, -49.443) 3/4: -1181870.215451, -8976407.252949, 48.598167, 1.016714\n    test 627 reverse 198N (-76.085, -49.443) 3/3: 7.105427357601002e-15\n    test 628 forward 201N (-74.686, -57.339) 3/4: -1446137.252018, -9059670.735504, 56.391495, 1.025259\n    test 629 reverse 201N (-74.686, -57.339) 3/3: 7.944109290391274e-14\n    test 630 forward 204N (-73.084, -65.078) 3/4: -1728450.251911, -9182823.938232, 64.096558, 1.036319\n    test 631 reverse 204N (-73.084, -65.078) 3/3: 1.4210854715202004e-14\n    test 632 forward 207N (-71.281, -72.638) 3/4: -2023752.790526, -9353559.771346, 71.732868, 1.050046\n    test 633 reverse 207N (-71.281, -72.638) 3/3: 2.842170943040401e-14\n    test 634 forward 210N (-69.282, -80.000) 3/4: -2325015.074835, -9578621.128889, 79.325231, 1.066355\n    test 635 reverse 210N (-69.282, -80.000) 3/4: 5.684341886080802e-14\n    test 636 forward 213N (-67.094, -87.142) 3/4: -2623368.28288, -9863301.12097, 86.898617, 1.084836\n    test 637 reverse 213N (-67.094, -87.142) 3/4: 1.4210854715202004e-14\n    test 638 forward 216N (-64.721, -94.046) 3/4: -2908348.733697, -10210857.598605, 94.471204, 1.104695\n    test 639 reverse 216N (-64.721, -94.046) 3/4: 1.4210854715202004e-14\n    test 640 forward 219N (-62.172, -100.691) 3/4: -3168362.707459, -10621853.317461, 102.04623, 1.124739\n    test 641 reverse 219N (-62.172, -100.691) 3/4: 2.929642751054232e-14\n    test 642 forward 222N (-59.452, -107.061) 3/4: -3391492.622467, -11093528.387239, 109.604086, 1.14345\n    test 643 reverse 222N (-59.452, -107.061) 3/4: 7.105427357601002e-15\n    test 644 forward 225N (-56.569, -113.137) 3/4: -3566696.824822, -11619422.467571, 117.096854, 1.159166\n    test 645 reverse 225N (-56.569, -113.137) 3/4: 2.0097183471152322e-14\n    test 646 forward 228N (-53.530, -118.903) 3/4: -3685290.742854, -12189522.028618, 124.447841, 1.170375\n    test 647 reverse 228N (-53.530, -118.903) 3/4: 2.842170943040401e-14\n    test 648 forward 231N (-50.346, -124.343) 3/4: -3742386.824274, -12791126.616764, 131.557863, 1.176031\n    test 649 reverse 231N (-50.346, -124.343) 3/4: 5.684341886080802e-14\n    test 650 forward 234N (-47.023, -129.443) 3/4: -3737846.053669, -13410380.03778, 138.317827, 1.175799\n    test 651 reverse 234N (-47.023, -129.443) 3/4: 4.0194366942304644e-14\n    test 652 forward 237N (-43.571, -134.187) 3/4: -3676387.634221, -14034104.572541, 144.624552, 1.170121\n    test 653 reverse 237N (-43.571, -134.187) 3/4: 0.0\n    test 654 forward 240N (-40.000, -138.564) 3/4: -3566810.754496, -14651410.305646, 150.395289, 1.16007\n    test 655 reverse 240N (-40.000, -138.564) 3/4: 1.4210854715202004e-14\n    test 656 forward 243N (-36.319, -142.561) 3/4: -3420621.906486, -15254653.660248, 155.577129, 1.147079\n    test 657 reverse 243N (-36.319, -142.561) 3/4: 7.105427357601002e-15\n    test 658 forward 246N (-32.539, -146.167) 3/4: -3250522.133697, -15839614.666766, 160.149958, 1.132638\n    test 659 reverse 246N (-32.539, -146.167) 3/4: 1.4210854715202004e-14\n    test 660 forward 249N (-28.669, -149.373) 3/4: -3069132.144368, -16405050.640186, 164.124094, 1.118063\n    test 661 reverse 249N (-28.669, -149.373) 3/4: 1.0658141036401503e-14\n    test 662 forward 252N (-24.721, -152.169) 3/4: -2888128.173431, -16951919.948156, 167.534978, 1.104377\n    test 663 reverse 252N (-24.721, -152.169) 3/4: 7.105427357601002e-15\n    test 664 forward 255N (-20.706, -154.548) 3/4: -2717773.256417, -17482549.021439, 170.437193, 1.09228\n    test 665 reverse 255N (-20.706, -154.548) 3/4: 3.552713678800501e-15\n    test 666 forward 258N (-16.633, -156.504) 3/4: -2566730.586316, -17999918.486885, 172.899178, 1.082187\n    test 667 reverse 258N (-16.633, -156.504) 3/4: 3.552713678800501e-15\n    test 668 forward 261N (-12.515, -158.030) 3/4: -2442031.891673, -18507145.758, 174.99917, 1.074303\n    test 669 reverse 261N (-12.515, -158.030) 3/4: 5.329070518200751e-15\n    test 670 forward 264N (-8.362, -159.124) 3/4: -2349105.316925, -19007174.828239, 176.822266, 1.068689\n    test 671 reverse 264N (-8.362, -159.124) 3/4: 8.881784197001252e-15\n    test 672 forward 267N (-4.187, -159.781) 3/4: -2291809.478825, -19502649.329559, 178.458273, 1.06534\n    test 673 reverse 267N (-4.187, -159.781) 3/4: 9.769962616701378e-15\n    test 674 forward 270N (0.000, -160.000) 3/4: -2272454.379192, -19995929.886042, 180.0, 1.064227\n    test 675 reverse 270N (0.000, -160.000) 3/3: 0.0\n    test 676 forward 273N (4.187, -159.781) 3/4: -2291809.478825, 19502649.329559, -178.458273, 1.06534\n    test 677 reverse 273N (4.187, -159.781) 3/4: 2.842170943040401e-14\n    test 678 forward 276N (8.362, -159.124) 3/4: -2349105.316925, 19007174.828239, -176.822266, 1.068689\n    test 679 reverse 276N (8.362, -159.124) 3/4: 1.0658141036401503e-14\n    test 680 forward 279N (12.515, -158.030) 3/4: -2442031.891673, 18507145.758, -174.99917, 1.074303\n    test 681 reverse 279N (12.515, -158.030) 3/4: 1.0658141036401503e-14\n    test 682 forward 282N (16.633, -156.504) 3/4: -2566730.586316, 17999918.486885, -172.899178, 1.082187\n    test 683 reverse 282N (16.633, -156.504) 3/4: 1.4210854715202004e-14\n    test 684 forward 285N (20.706, -154.548) 3/4: -2717773.256417, 17482549.021439, -170.437193, 1.09228\n    test 685 reverse 285N (20.706, -154.548) 3/4: 3.552713678800501e-15\n    test 686 forward 288N (24.721, -152.169) 3/4: -2888128.173431, 16951919.948156, -167.534978, 1.104377\n    test 687 reverse 288N (24.721, -152.169) 3/4: 1.7763568394002505e-14\n    test 688 forward 291N (28.669, -149.373) 3/4: -3069132.144368, 16405050.640186, -164.124094, 1.118063\n    test 689 reverse 291N (28.669, -149.373) 3/4: 7.105427357601002e-15\n    test 690 forward 294N (32.539, -146.167) 3/4: -3250522.133697, 15839614.666766, -160.149958, 1.132638\n    test 691 reverse 294N (32.539, -146.167) 3/4: 1.4210854715202004e-14\n    test 692 forward 297N (36.319, -142.561) 3/4: -3420621.906486, 15254653.660248, -155.577129, 1.147079\n    test 693 reverse 297N (36.319, -142.561) 3/4: 7.105427357601002e-15\n    test 694 forward 300N (40.000, -138.564) 3/4: -3566810.754496, 14651410.305646, -150.395289, 1.16007\n    test 695 reverse 300N (40.000, -138.564) 3/4: 7.105427357601002e-15\n    test 696 forward 303N (43.571, -134.187) 3/4: -3676387.634221, 14034104.572541, -144.624552, 1.170121\n    test 697 reverse 303N (43.571, -134.187) 3/4: 0.0\n    test 698 forward 306N (47.023, -129.443) 3/4: -3737846.053669, 13410380.03778, -138.317827, 1.175799\n    test 699 reverse 306N (47.023, -129.443) 3/4: 4.0194366942304644e-14\n    test 700 forward 309N (50.346, -124.343) 3/4: -3742386.824274, 12791126.616764, -131.557863, 1.176031\n    test 701 reverse 309N (50.346, -124.343) 3/4: 5.684341886080802e-14\n    test 702 forward 312N (53.530, -118.903) 3/4: -3685290.742854, 12189522.028618, -124.447841, 1.170375\n    test 703 reverse 312N (53.530, -118.903) 3/4: 2.842170943040401e-14\n    test 704 forward 315N (56.569, -113.137) 3/4: -3566696.824822, 11619422.467571, -117.096854, 1.159166\n    test 705 reverse 315N (56.569, -113.137) 3/4: 2.0097183471152322e-14\n    test 706 forward 318N (59.452, -107.061) 3/4: -3391492.622467, 11093528.387239, -109.604086, 1.14345\n    test 707 reverse 318N (59.452, -107.061) 3/4: 7.105427357601002e-15\n    test 708 forward 321N (62.172, -100.691) 3/4: -3168362.707459, 10621853.317461, -102.04623, 1.124739\n    test 709 reverse 321N (62.172, -100.691) 3/4: 2.929642751054232e-14\n    test 710 forward 324N (64.721, -94.046) 3/4: -2908348.733697, 10210857.598605, -94.471204, 1.104695\n    test 711 reverse 324N (64.721, -94.046) 3/4: 1.4210854715202004e-14\n    test 712 forward 327N (67.094, -87.142) 3/4: -2623368.28288, 9863301.12097, -86.898617, 1.084836\n    test 713 reverse 327N (67.094, -87.142) 3/4: 1.4210854715202004e-14\n    test 714 forward 330N (69.282, -80.000) 3/4: -2325015.074835, 9578621.128889, -79.325231, 1.066355\n    test 715 reverse 330N (69.282, -80.000) 3/4: 7.105427357601002e-14\n    test 716 forward 333N (71.281, -72.638) 3/4: -2023752.790526, 9353559.771346, -71.732868, 1.050046\n    test 717 reverse 333N (71.281, -72.638) 3/3: 2.842170943040401e-14\n    test 718 forward 336N (73.084, -65.078) 3/4: -1728450.251911, 9182823.938232, -64.096558, 1.036319\n    test 719 reverse 336N (73.084, -65.078) 3/3: 1.4210854715202004e-14\n    test 720 forward 339N (74.686, -57.339) 3/4: -1446137.252018, 9059670.735504, -56.391495, 1.025259\n    test 721 reverse 339N (74.686, -57.339) 3/3: 5.859285502108464e-14\n    test 722 forward 342N (76.085, -49.443) 3/4: -1181870.215451, 8976407.252949, -48.598167, 1.016714\n    test 723 reverse 342N (76.085, -49.443) 3/3: 0.0\n    test 724 forward 345N (77.274, -41.411) 3/4: -938645.229361, 8924845.3123, -40.705476, 1.010384\n    test 725 reverse 345N (77.274, -41.411) 3/3: 4.4938668397781776e-14\n    test 726 forward 348N (78.252, -33.266) 3/4: -717349.637417, 8896761.249834, -32.712011, 1.005894\n    test 727 reverse 348N (78.252, -33.266) 3/3: 3.1776437161565096e-14\n    test 728 forward 351N (79.015, -25.030) 3/4: -516782.400098, 8884389.933155, -24.625783, 1.002865\n    test 729 reverse 351N (79.015, -25.030) 3/3: 1.4210854715202004e-14\n    test 730 forward 354N (79.562, -16.725) 3/4: -333788.634116, 8880946.730424, -16.462884, 1.000962\n    test 731 reverse 354N (79.562, -16.725) 3/3: 5.728578676879116e-14\n    test 732 forward 357N (79.890, -8.374) 3/4: -163544.38007, 8881136.361771, -8.245542, 0.999927\n    test 733 reverse 357N (79.890, -8.374) 3/3: 5.224422199693188e-14\n    test 734 forward 360N (80.000, 0.000) 3/3: 0.0, 8881585.815988, 0.0, 0.9996\n    test 735 reverse 360N (80.000, 0.000) 3/3: 0.0\n    test 736 max: 7.944109290391274e-14  FAILED, KNOWN, expected 9e-14\n\n    test 737 forward: 6208422.5374, 5452954.287187, 41.077484, 1.511911\n    test 738 reverse: 30.244228, 60.169664, 41.479185, 1.510346\n\n    3 of 738 testKtm.py tests (0.4%) FAILED, ALL KNOWN (pygeodesy 26.3.26 Python 3.13.12 64bit arm64 coverage 7.10.7 geographiclib 2.1 numpy 2.3.3 scipy 1.16.2 Math 2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 macOS 26.3.1 isLazy 1 -W  default) 3.335 sec\nrunning /Library/Framewo....n3.13 -W default ~/PyGeodesy/test/testLatLon.py\n./test/testLatLon.py:276: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.sphericalNvector.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', p.cosineAndoyerLambertTo(q), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:277: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.sphericalNvector.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', q.cosineAndoyerLambertTo(p), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:279: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.sphericalNvector.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', p.cosineForsytheAndoyerLambertTo(q), '124801.098' if Sph else '125205.965', fmt='%.3f')\n./test/testLatLon.py:280: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.sphericalNvector.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', q.cosineForsytheAndoyerLambertTo(p), '124801.098' if Sph else '125205.965', fmt='%.3f')\n./pygeodesy/basics.py:637: DeprecationWarning: Conversion of an array with ndim > 0 to a scalar is deprecated, and will error in future. Ensure you extract a single element from your array before performing this operation. (Deprecated NumPy 1.25.)\n  return tuple(map(fun, *xs, **strict) if strict else map(fun, *xs))\n./test/testLatLon.py:276: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.sphericalTrigonometry.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', p.cosineAndoyerLambertTo(q), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:277: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.sphericalTrigonometry.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', q.cosineAndoyerLambertTo(p), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:279: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.sphericalTrigonometry.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', p.cosineForsytheAndoyerLambertTo(q), '124801.098' if Sph else '125205.965', fmt='%.3f')\n./test/testLatLon.py:280: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.sphericalTrigonometry.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', q.cosineForsytheAndoyerLambertTo(p), '124801.098' if Sph else '125205.965', fmt='%.3f')\n\n    testing testLatLon.py 25.05.09 isLazy=1\n\n    testLatLon(pygeodesy.sphericalNvector, 25.05.27)\n    test 1 isEllipsoidal: False\n    test 2 isSpherical: True\n    test 3 lat/lonDMS: 52.20472°N, 000.14056°E\n    test 4 lat/lonDMS F_DM: 52°12.283′N, 000°08.434′E\n    test 5 lat/lonDMS F_DM: 52°12.2832′N, 000°08.4336′E\n    test 6 lat/lonDMS F_DMS: 52°12′17″N, 000°08′26″E\n    test 7 lat/lonDMS F_DMS: 52°12′17.0″N, 000°08′26.0″E\n    test 8 lat/lonDMS F_RAD: 0.911144N, 0.002453E\n    test 9 isequalTo: True\n    test 10 isequalTo: True\n    test 11 latlon2: 52.20472, 0.14056\n    test 12 latlon2: 52.2047, 0.1406\n    test 13 latlon2: 52.205, 0.141\n    test 14 latlon2: 52.2, 0.14\n    test 15 latlon2: 52.2, 0.1\n    test 16 latlon2: 52.0, 0.0\n    test 17 chordTo: 12036677.26\n    test 18 chordTo: 12036463.78\n    test 19 initialBearingTo: 156.1666\n    test 20 initialBearingTo: 65.8921\n    test 21 initialBearingTo: 0.0\n    test 22 initialBearingTo: 180.0\n    test 23 finalBearingTo: 157.8904\n    test 24 finalBearingTo: 93.8581\n    test 25 bearingTo2: 156.1666, 157.8904\n    test 26 ispolar: True\n    test 27 copy: True\n    test 28 __eq__: True\n    test 29 __ne__: False\n    test 30 equirectangularTo: 404329.56\n    test 31 distanceTo: 404279.720589\n    test 32 distanceTo: 404279.720589\n    test 33 distanceTo: 2145\n    test 34 distanceTo: 18013602.92\n    test 35 distanceTo: 20015114.35\n    test 36 intermediateTo: 51.372084°N, 000.707337°E\n    test 37 intermediateTo: True\n    test 38 intermediateTo: 404279.721\n    test 39 intermediateTo+5: 35.160975°N, 008.989542°E\n    test 40 intermediateTo+5: 5.000\n    test 41 intermediateTo-4: 64.911647°N, 013.726301°W\n    test 42 intermediateTo-4: 4.000\n    test 43 intermediateTo-h: 125.000\n    test 44 intermediateChordTo: 51.372294°N, 000.707192°E\n    test 45 intermediateChordTo: True\n    test 46 intermediateChordTo-h: 125.000\n    test 47 midpointTo: 50.536327°N, 001.274614°E\n    test 48 destination: 51.513546°N, 000.098345°W\n    test 49 destination: 51°30′49″N, 000°05′54″W\n    test 50 destination: 34°37′N, 116°33′W\n    test 51 destination: 34.613647°N, 116.55116°W\n    test 52 destination: 0.604122N, 2.034201W\n    test 53 destination: 31.96383509°N, 064.37329146°E\n    test 54 alongTrackDistanceTo: 62331.59\n    test 55 alongTrackDistanceTo: 62331.58\n    test 56 alongTrackDistanceTo: 99.588\n    test 57 alongTrackDistanceTo: -7702.7\n    test 58 alongTrackDistanceTo: 7587.6\n    test 59 crossTrackDistanceTo: -305.66528160755445  FAILED, KNOWN, expected TypeError\n    test 60 crossTrackDistanceTo: -307.55\n    test 61 crossTrackDistanceTo: 7.4524\n    test 62 greatCircle: (-0.79408, 0.12856, 0.59406)\n    test 63 neareston6: (LatLon(45°00′00.0″N, 001°00′00.0″E), 4773243.784965, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E))  FAILED, KNOWN, expected (LatLon(45°00′00.0″N, 001°00′00.0″E), 4755443.4294, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E))\n    test 64 neareston6: (LatLon(45°30′03.93″N, 002°00′00.0″E), 38968.531578, 1.501091, 2, LatLon(45°00′00.0″N, 002°00′00.0″E), LatLon(46°00′00.0″N, 002°00′00.0″E))  FAILED, KNOWN, expected (LatLon(45°30′03.94″N, 002°00′00.0″E), 39078.729285, 1.501072, 2, LatLon(45°00′00.0″N, 002°00′00.0″E), LatLon(46°00′00.0″N, 002°00′00.0″E))\n    test 65 chordTo: 124799.103\n    test 66 cosineAndoyerLambertTo: 124801.098\n    test 67 cosineAndoyerLambertTo: 124801.098\n    test 68 cosineForsyheAndoyerLambertTo: 124801.098\n    test 69 cosineForsyheAndoyerLambertTo: 124801.098\n    test 70 cosineLawTo: 124801.098\n    test 71 cosineLawTo: 124801.098\n    test 72 equirectangularTo: 124804.754\n    test 73 equirectangularTo: 124804.754\n    test 74 euclideanTo: 130015.089\n    test 75 euclideanTo: 130015.089\n    test 76 flatLocalTo: 124804.754\n    test 77 flatLocalTo: 124804.754\n    test 78 flatPolarTo: 133663.257\n    test 79 flatPolarTo: 133663.257\n    test 80 hartzell: 53.3206°N, 001.7297°W\n    test 81 hartzell: 53.3206°N, 001.7297°W\n    test 82 height4: 0.0\n    test 83 height4: (3803904.2, -114870.8, 5109488.3, 0.0)\n    test 84 height4: 53°19′14.2″N, 001°43′46.9″W\n    test 85 height4: 53°19′14.2″N, 001°43′46.9″W\n    test 86 haversineTo: 124801.098\n    test 87 haversineTo: 124801.098\n    test 88 hubenyTo: <bound method LatLonBase.flatLocalTo of LatLon(53°19′14.16″N, 001°43′46.92″W)>\n    test 89 hubenyTo: <bound method LatLonBase.flatLocalTo of LatLon(53°11′19.32″N, 000°08′00.24″E)>\n    test 90 thomasTo: 124801.098\n    test 91 thomasTo: 124801.098\n    test 92 vincentysTo: 124801.098\n    test 93 vincentysTo: 124801.098\n    test 94 greatCircleTo: (-0.79408, 0.12859, 0.59406)\n    test 95 isclockwise: False\n    test 96 isclockwise*: False\n    test 97 isclockwise: True\n    test 98 isclockwise*: True\n    test 99 isclockwise: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 100 isclockwise*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 101 isclockwise: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 102 isclockwise*: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 103 isconvex: False\n    test 104 isconvex*: False\n    test 105 isconvex: True\n    test 106 isconvex*: True\n    test 107 isconvex: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 108 isconvex*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 109 isenclosedBy1: True\n    test 110 isenclosedBy1*: True\n    test 111 isenclosedBy2: False\n    test 112 isenclosedBy2*: False\n    test 113 isenclosedBy3: False\n    test 114 isenclosedBy3*: False\n    test 115 isenclosedBy4: False\n    test 116 isenclosedBy4*: False\n    test 117 isenclosedBy5: False\n    test 118 isenclosedBy5*: False\n    test 119 isenclosedBy6: True\n    test 120 isenclosedBy6*: True\n    test 121 isenclosedBy7: True\n    test 122 isenclosedBy7*: True\n    test 123 isenclosedBy-CCW: True\n    test 124 isenclosedBy-CW : True\n    test 125 isenclosedBy-CCW: True\n    test 126 initialBearingTo: 102.432182\n    test 127 compassAngleTo: 100.017\n    test 128 compassAngleTo: 105.599\n    test 129 initialBearingTo: 288.715918\n    test 130 compassAngleTo: 280.017\n    test 131 compassAngleTo: 285.599\n    test 132 equirectangularTo: 592.185\n    test 133 distanceTo: 591.831\n    test 134 compassAngleTo: 0.0\n    test 135 compassAngleTo: 45.0\n    test 136 compassAngleTo: 90.0\n    test 137 compassAngleTo: 180.0\n    test 138 compassAngleTo: 225.0\n    test 139 compassAngleTo: 315.0\n    test 140 compassAngleTo: 270.0\n    test 141 compassAngleTo: 359.4\n    test 142 latlon2: (53.0, 1.0)\n    test 143 philam2: (0.93, 0.02)\n    test 144 compassAngleTo: 31\n    test 145 compassAngleTo: 45\n\n    test 146 boundsOf: <class 'pygeodesy.namedTuples.Bounds2Tuple'>\n    test 147 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 148 latlon2: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 149 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 150 isequalTo: <class 'bool'>\n    test 151 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 152 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 153 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 154 xyz3: <class 'tuple'>\n    test 155 xyzh: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 156 compassAngleTo: <class 'float'>\n    test 157 cosineLawTo: <class 'float'>\n    test 158 euclideanTo: <class 'float'>\n    test 159 flatLocalTo: <class 'float'>\n    test 160 flatPolarTo: <class 'float'>\n    test 161 haversineTo: <class 'float'>\n    test 162 hubenyTo: <class 'float'>\n    test 163 vincentysTo: <class 'float'>\n    test 164 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 165 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 166 toLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 167 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 168 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 169 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 170 toVector: (3922384.659522, 0.0, 5020423.423198)\n    test 171 toVector3d: (0.61566, 0.0, 0.78801)\n    test 172 trilaterate5 (pygeodesy.sphericalNvector) .min: 223.305\n    test 173 trilaterate5 (pygeodesy.sphericalNvector) .point: 42.67456065°N, 002.49539502°E\n    test 174 trilaterate5 (pygeodesy.sphericalNvector) .min- is .maxPoint: True\n    test 175 trilaterate5 (pygeodesy.sphericalNvector) .n: 1\n    test 176 trilaterate5 (pygeodesy.sphericalNvector) .error: sphericalNvector.LatLon.trilaterate5(area=True), MRO(nvectorBase.LatLonNvectorBase, sphericalBase.LatLonSphericalBase, latlonBase.LatLonBase, named._NamedBase, ecefLocals._EcefLocal, named._Named): not implemented\n\n    test 177 radii11: Radii11Tuple(rA=7701.409157, rB=1361.530045, rC=499.257353, cR=4886.694635, rIn=739.915482, riS=179.523525, roS=6087.250896, a=1860.787398, b=8200.666509, c=9062.939201, s=9562.196554)\n    test 178 circum4 (pygeodesy.sphericalNvector) .radius: 3185505.323  FAILED, KNOWN, expected 3184256.748\n    test 179 circum4 (pygeodesy.sphericalNvector) .center: 42.674561°N, 002.495395°E, -3185503.45m  FAILED, KNOWN, expected 43.054367°N, 002.942573°E, -3183993.92m\n    test 180 circum4 (pygeodesy.sphericalNvector) .rank: 3\n    test 181 circum4 (pygeodesy.sphericalNvector) .residuals: ()\n    test 182 circum4 (pygeodesy.sphericalNvector) .d1: 4886.695  FAILED, KNOWN, expected 57818.033\n    test 183 circum4 (pygeodesy.sphericalNvector) .d2: 4886.695  FAILED, KNOWN, expected 57834.176\n    test 184 circum4 (pygeodesy.sphericalNvector) .d3: 4886.695  FAILED, KNOWN, expected 57830.992\n    test 185 circum4 (pygeodesy.sphericalNvector) .datum: name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84\n    test 186 circum4 (pygeodesy.sphericalNvector) .Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 187 radii11: Radii11Tuple(rA=328257.82694, rB=782282.176109, rC=782282.176109, cR=782304.746354, rIn=325773.738834, riS=85162.638484, roS=INF, a=1564564.352218, b=1110540.003049, c=1110540.003049, s=1892822.179158)\n    test 188 circin6 (pygeodesy.sphericalNvector) .rB+rC: 1564564.352\n    test 189 circin6 (pygeodesy.sphericalNvector) .rC+pA: 1110540.003\n    test 190 circin6 (pygeodesy.sphericalNvector) .rA+rB: 1110540.003\n    test 191 circin6 (pygeodesy.sphericalNvector) .radius: 325773.739  FAILED, KNOWN, expected 325058.721\n    test 192 circin6 (pygeodesy.sphericalNvector) .center: 02.938473°N, 002.942346°E, -40128.57m  FAILED, KNOWN, expected 02.948531°N, 002.932537°E, -40041.19m\n    test 193 circin6 (pygeodesy.sphericalNvector) .deltas: (0.0, 0.0, 0.421782)  FAILED, KNOWN, expected (0.0, 0.0, 0.090491)\n    test 194 circin6 (pygeodesy.sphericalNvector) .cA: 05.019001°N, 005.038369°E, -48209.76m  FAILED, KNOWN, expected 05.04314°N, 005.014578°E, -48104.09m\n    test 195 circin6 (pygeodesy.sphericalNvector) .cB: 00.0°N, 002.951508°E, -20185.00m  FAILED, KNOWN, expected 00.0°N, 002.941713°E, -20168.62m\n    test 196 circin6 (pygeodesy.sphericalNvector) .cC: 02.951508°N, 000.0°E, -20185.00m  FAILED, KNOWN, expected 02.961566°N, 000.0°E, -20113.46m\n    test 197 circin6 (pygeodesy.sphericalNvector) .dA: 327983.380  FAILED, KNOWN, expected 327263.596\n    test 198 circin6 (pygeodesy.sphericalNvector) .dB: 326745.373  FAILED, KNOWN, expected 326036.153\n    test 199 circin6 (pygeodesy.sphericalNvector) .dC: 326745.373  FAILED, KNOWN, expected 326020.432\n\n    test 200 area cw/ccw: 1.0\n\n    testLatLon(pygeodesy.sphericalTrigonometry, 25.08.31)\n    test 201 isEllipsoidal: False\n    test 202 isSpherical: True\n    test 203 lat/lonDMS: 52.20472°N, 000.14056°E\n    test 204 lat/lonDMS F_DM: 52°12.283′N, 000°08.434′E\n    test 205 lat/lonDMS F_DM: 52°12.2832′N, 000°08.4336′E\n    test 206 lat/lonDMS F_DMS: 52°12′17″N, 000°08′26″E\n    test 207 lat/lonDMS F_DMS: 52°12′17.0″N, 000°08′26.0″E\n    test 208 lat/lonDMS F_RAD: 0.911144N, 0.002453E\n    test 209 isequalTo: True\n    test 210 isequalTo: True\n    test 211 latlon2: 52.20472, 0.14056\n    test 212 latlon2: 52.2047, 0.1406\n    test 213 latlon2: 52.205, 0.141\n    test 214 latlon2: 52.2, 0.14\n    test 215 latlon2: 52.2, 0.1\n    test 216 latlon2: 52.0, 0.0\n    test 217 chordTo: 12036677.26\n    test 218 chordTo: 12036463.78\n    test 219 initialBearingTo: 156.1666\n    test 220 initialBearingTo: 65.8921\n    test 221 initialBearingTo: 0.0\n    test 222 initialBearingTo: 180.0\n    test 223 finalBearingTo: 157.8904\n    test 224 finalBearingTo: 93.8581\n    test 225 bearingTo2: 156.1666, 157.8904\n    test 226 ispolar: True\n    test 227 copy: True\n    test 228 __eq__: True\n    test 229 __ne__: False\n    test 230 equirectangularTo: 404329.56\n    test 231 distanceTo: 404279.720589\n    test 232 distanceTo: 404279.720589\n    test 233 distanceTo: 2145\n    test 234 antipodal: False\n    test 235 distanceTo dateline: 19967403.498  FAILED, KNOWN, expected 19119590.551\n    test 236 distanceTo unrolled: 19967403.498  FAILED, KNOWN, expected 19119590.551\n    test 237 antipodal: False\n    test 238 distanceTo dateline: 9491735\n    test 239 distanceTo unrolled: 9491735\n    test 240 distanceTo: 18013602.92\n    test 241 distanceTo: 20015114.35\n    test 242 intermediateTo: 51.372084°N, 000.707337°E\n    test 243 intermediateTo: True\n    test 244 intermediateTo: 404279.721\n    test 245 intermediateTo+5: 35.160975°N, 008.989542°E\n    test 246 intermediateTo+5: 5.000\n    test 247 intermediateTo-4: 64.911647°N, 013.726301°W\n    test 248 intermediateTo-4: 4.000\n    test 249 intermediateTo-h: 125.000\n    test 250 midpointTo: 50.536327°N, 001.274614°E\n    test 251 destination: 51.513546°N, 000.098345°W\n    test 252 destination: 51°30′49″N, 000°05′54″W\n    test 253 destination: 34°37′N, 116°33′W\n    test 254 destination: 34.613647°N, 116.55116°W\n    test 255 destination: 0.604122N, 2.034201W\n    test 256 destination: 31.96383509°N, 064.37329146°E\n    test 257 alongTrackDistanceTo: type(end) (96): incompatible with sphericalTrigonometry.LatLon.alongTrackDistanceTo(end)  FAILED, KNOWN, expected incompatible ...\n    test 258 alongTrackDistanceTo: 62331.58\n    test 259 alongTrackDistanceTo: 99.588\n    test 260 alongTrackDistanceTo: -7702.7\n    test 261 alongTrackDistanceTo: 7587.6\n    test 262 crossTrackDistanceTo: type(end) (96): incompatible with sphericalTrigonometry.LatLon.crossTrackDistanceTo(end)  FAILED, KNOWN, expected incompatible ...\n    test 263 crossTrackDistanceTo: -307.55\n    test 264 crossTrackDistanceTo: 7.4524\n    test 265 greatCircle: (-0.79408, 0.12856, 0.59406)\n    test 266 neareston6: (LatLon(45°00′00.0″N, 001°00′00.0″E), 4773243.784965, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E))  FAILED, KNOWN, expected (LatLon(45°00′00.0″N, 001°00′00.0″E), 4755443.4294, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E))\n    test 267 neareston6: (LatLon(45°30′03.93″N, 002°00′00.0″E), 38968.531578, 1.501091, 2, LatLon(45°00′00.0″N, 002°00′00.0″E), LatLon(46°00′00.0″N, 002°00′00.0″E))  FAILED, KNOWN, expected (LatLon(45°30′03.94″N, 002°00′00.0″E), 39078.729285, 1.501072, 2, LatLon(45°00′00.0″N, 002°00′00.0″E), LatLon(46°00′00.0″N, 002°00′00.0″E))\n    test 268 chordTo: 124799.103\n    test 269 cosineAndoyerLambertTo: 124801.098\n    test 270 cosineAndoyerLambertTo: 124801.098\n    test 271 cosineForsyheAndoyerLambertTo: 124801.098\n    test 272 cosineForsyheAndoyerLambertTo: 124801.098\n    test 273 cosineLawTo: 124801.098\n    test 274 cosineLawTo: 124801.098\n    test 275 equirectangularTo: 124804.754\n    test 276 equirectangularTo: 124804.754\n    test 277 euclideanTo: 130015.089\n    test 278 euclideanTo: 130015.089\n    test 279 flatLocalTo: 124804.754\n    test 280 flatLocalTo: 124804.754\n./test/testLatLon.py:276: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.ellipsoidalNvector.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', p.cosineAndoyerLambertTo(q), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:277: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.ellipsoidalNvector.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', q.cosineAndoyerLambertTo(p), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:279: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.ellipsoidalNvector.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', p.cosineForsytheAndoyerLambertTo(q), '124801.098' if Sph else '125205.965', fmt='%.3f')\n./test/testLatLon.py:280: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.ellipsoidalNvector.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', q.cosineForsytheAndoyerLambertTo(p), '124801.098' if Sph else '125205.965', fmt='%.3f')\n    test 281 flatPolarTo: 133663.257\n    test 282 flatPolarTo: 133663.257\n    test 283 hartzell: 53.3206°N, 001.7297°W\n    test 284 hartzell: 53.3206°N, 001.7297°W\n    test 285 height4: 0.0\n    test 286 height4: (3803904.2, -114870.8, 5109488.3, 0.0)\n    test 287 height4: 53°19′14.2″N, 001°43′46.9″W\n    test 288 height4: 53°19′14.2″N, 001°43′46.9″W\n    test 289 haversineTo: 124801.098\n    test 290 haversineTo: 124801.098\n    test 291 hubenyTo: <bound method LatLonBase.flatLocalTo of LatLon(53°19′14.16″N, 001°43′46.92″W)>\n    test 292 hubenyTo: <bound method LatLonBase.flatLocalTo of LatLon(53°11′19.32″N, 000°08′00.24″E)>\n    test 293 thomasTo: 124801.098\n    test 294 thomasTo: 124801.098\n    test 295 vincentysTo: 124801.098\n    test 296 vincentysTo: 124801.098\n    test 297 isclockwise: False\n    test 298 isclockwise*: False\n    test 299 isclockwise: True\n    test 300 isclockwise*: True\n    test 301 isclockwise: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 302 isclockwise*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 303 isclockwise: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 304 isclockwise*: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 305 isconvex: False\n    test 306 isconvex*: False\n    test 307 isconvex: True\n    test 308 isconvex*: True\n    test 309 isconvex: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 310 isconvex*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 311 isenclosedBy1: True\n    test 312 isenclosedBy1*: True\n    test 313 isenclosedBy2: False\n    test 314 isenclosedBy2*: False\n    test 315 isenclosedBy3: False\n    test 316 isenclosedBy3*: False\n    test 317 isenclosedBy4: False\n    test 318 isenclosedBy4*: False\n    test 319 isenclosedBy5: False\n    test 320 isenclosedBy5*: False\n    test 321 isenclosedBy6: True\n    test 322 isenclosedBy6*: True\n    test 323 isenclosedBy7: True\n    test 324 isenclosedBy7*: True\n    test 325 isenclosedBy-CCW: True\n    test 326 isenclosedBy-CW : True\n    test 327 isenclosedBy-CCW: True\n    test 328 initialBearingTo: 102.432182\n    test 329 compassAngleTo: 100.017\n    test 330 compassAngleTo: 105.599\n    test 331 initialBearingTo: 288.715918\n    test 332 compassAngleTo: 280.017\n    test 333 compassAngleTo: 285.599\n    test 334 equirectangularTo: 592.185\n    test 335 distanceTo: 591.831\n    test 336 bearingTo: 0.0\n    test 337 compassAngleTo: 0.0\n    test 338 bearingTo: 45.0\n    test 339 compassAngleTo: 45.0\n    test 340 bearingTo: 90.0\n    test 341 compassAngleTo: 90.0\n    test 342 bearingTo: 180.0\n    test 343 compassAngleTo: 180.0\n    test 344 bearingTo: 225.0\n    test 345 compassAngleTo: 225.0\n    test 346 bearingTo: 315.0\n    test 347 compassAngleTo: 315.0\n    test 348 bearingTo: 270.0\n    test 349 compassAngleTo: 270.0\n    test 350 bearingTo: 0.0  FAILED, KNOWN, expected 359.4\n    test 351 compassAngleTo: 359.4\n    test 352 latlon2: (53.0, 1.0)\n    test 353 philam2: (0.93, 0.02)\n    test 354 bearingTo: 31\n    test 355 compassAngleTo: 31\n    test 356 compassAngleTo: 45\n\n    test 357 boundsOf: <class 'pygeodesy.namedTuples.Bounds2Tuple'>\n    test 358 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 359 latlon2: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 360 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 361 isequalTo: <class 'bool'>\n    test 362 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 363 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 364 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 365 xyz3: <class 'tuple'>\n    test 366 xyzh: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 367 compassAngleTo: <class 'float'>\n    test 368 cosineLawTo: <class 'float'>\n    test 369 euclideanTo: <class 'float'>\n    test 370 flatLocalTo: <class 'float'>\n    test 371 flatPolarTo: <class 'float'>\n    test 372 haversineTo: <class 'float'>\n    test 373 hubenyTo: <class 'float'>\n    test 374 vincentysTo: <class 'float'>\n    test 375 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 376 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 377 toLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 378 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 379 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 380 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 381 toNvector: (0.61566, 0.0, 0.78801)\n    test 382 toVector: (3922384.659522, 0.0, 5020423.423198)\n    test 383 toVector3d: (0.61566, 0.0, 0.78801)\n\n    test 384 trilaterate5 (pygeodesy.sphericalTrigonometry) .min: 313.671\n    test 385 trilaterate5 (pygeodesy.sphericalTrigonometry) .point: 42.66937229°N, 002.48639477°E\n    test 386 trilaterate5 (pygeodesy.sphericalTrigonometry) .max: 1591.044\n    test 387 trilaterate5 (pygeodesy.sphericalTrigonometry) .point: 42.65153054°N, 002.46822157°E\n    test 388 trilaterate5 (pygeodesy.sphericalTrigonometry) .n: 3\n    test 389 trilaterate5 (pygeodesy.sphericalTrigonometry) .min: 133.815\n    test 390 trilaterate5 (pygeodesy.sphericalTrigonometry) .max: 160.242\n    test 391 trilaterate5 (pygeodesy.sphericalTrigonometry) .point: 42.67817811°N, 002.49966641°E\n    test 392 trilaterate5 (pygeodesy.sphericalTrigonometry) .n: 2\n    test 393 trilaterate5 (pygeodesy.sphericalTrigonometry) .min: 2403.293\n    test 394 trilaterate5 (pygeodesy.sphericalTrigonometry) .max: 2403.293\n    test 395 trilaterate5 (pygeodesy.sphericalTrigonometry) .point: 42.66135649°N, 002.47981645°E\n    test 396 trilaterate5 (pygeodesy.sphericalTrigonometry) .min- is .maxPoint: True\n    test 397 trilaterate5 (pygeodesy.sphericalTrigonometry) .n: 1\n    test 398 trilaterate5 (pygeodesy.sphericalTrigonometry) .min: 1340.608\n    test 399 trilaterate5 (pygeodesy.sphericalTrigonometry) .point: 42.69128229°N, 002.50129001°E\n    test 400 trilaterate5 (pygeodesy.sphericalTrigonometry) .max: 1499.220\n    test 401 trilaterate5 (pygeodesy.sphericalTrigonometry) .point: 42.64295864°N, 002.44242391°E\n    test 402 trilaterate5 (pygeodesy.sphericalTrigonometry) .n: 3\n    test 403 radii11: Radii11Tuple(rA=7237.243793, rB=1825.695409, rC=2.255158, cR=57690.493993, rIn=57.33247, riS=2.087691, roS=2.443616, a=1827.950567, b=7239.49895, c=9062.939201, s=9065.194359)\n    test 404 circum3 (pygeodesy.sphericalTrigonometry) .radius: 57690.494  FAILED, KNOWN, expected 57792.067\n    test 405 circum3 (pygeodesy.sphericalTrigonometry) .center: 43.051859°N, 002.94463°E, -261.20m  FAILED, KNOWN, expected 43.053532°N, 002.943255°E, -261.66m\n    test 406 circum3 (pygeodesy.sphericalTrigonometry) .deltas: (0.0, -0.0, 28.304)  FAILED, KNOWN, expected (0.0, 0.0, 11.383)\n    test 407 circum3 (pygeodesy.sphericalTrigonometry) .d1: 57691.282  FAILED, KNOWN, expected 57792.858\n    test 408 circum3 (pygeodesy.sphericalTrigonometry) .d2: 57691.282  FAILED, KNOWN, expected 57792.859\n    test 409 circum3 (pygeodesy.sphericalTrigonometry) .d3: 57691.282  FAILED, KNOWN, expected 57792.859\n    test 410 circum3 (pygeodesy.sphericalTrigonometry) .datum: name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84\n    test 411 circum3 (pygeodesy.sphericalTrigonometry) .Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n\n    test 412 radii11: Radii11Tuple(rA=7237.243793, rB=1825.695409, rC=2.255158, cR=57690.493993, rIn=57.33247, riS=2.087691, roS=2.443616, a=1827.950567, b=7239.49895, c=9062.939201, s=9065.194359)\n    test 413 circum4 (pygeodesy.sphericalTrigonometry) .radius: 3185634.993  FAILED, KNOWN, expected 3184256.748\n    test 414 circum4 (pygeodesy.sphericalTrigonometry) .center: 43.051859°N, 002.94463°E, -3185373.78m  FAILED, KNOWN, expected 43.054367°N, 002.942573°E, -3183993.92m\n    test 415 circum4 (pygeodesy.sphericalTrigonometry) .rank: 3\n    test 416 circum4 (pygeodesy.sphericalTrigonometry) .residuals: ()\n./test/testLatLon.py:276: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.ellipsoidalVincenty.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', p.cosineAndoyerLambertTo(q), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:277: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.ellipsoidalVincenty.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', q.cosineAndoyerLambertTo(p), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:279: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.ellipsoidalVincenty.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', p.cosineForsytheAndoyerLambertTo(q), '124801.098' if Sph else '125205.965', fmt='%.3f')\n./test/testLatLon.py:280: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.ellipsoidalVincenty.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', q.cosineForsytheAndoyerLambertTo(p), '124801.098' if Sph else '125205.965', fmt='%.3f')\n    test 417 circum4 (pygeodesy.sphericalTrigonometry) .d1: 57691.282  FAILED, KNOWN, expected 57818.033\n    test 418 circum4 (pygeodesy.sphericalTrigonometry) .d2: 57691.282  FAILED, KNOWN, expected 57834.176\n    test 419 circum4 (pygeodesy.sphericalTrigonometry) .d3: 57691.282  FAILED, KNOWN, expected 57830.992\n    test 420 circum4 (pygeodesy.sphericalTrigonometry) .datum: name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84\n    test 421 circum4 (pygeodesy.sphericalTrigonometry) .Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 422 radii11: Radii11Tuple(rA=328257.82694, rB=782282.176109, rC=782282.176109, cR=782304.746354, rIn=325773.738834, riS=85162.638484, roS=INF, a=1564564.352218, b=1110540.003049, c=1110540.003049, s=1892822.179158)\n    test 423 circin6 (pygeodesy.sphericalTrigonometry) .rB+rC: 1564564.352\n    test 424 circin6 (pygeodesy.sphericalTrigonometry) .rC+pA: 1110540.003\n    test 425 circin6 (pygeodesy.sphericalTrigonometry) .rA+rB: 1110540.003\n    test 426 circin6 (pygeodesy.sphericalTrigonometry) .radius: 325773.739  FAILED, KNOWN, expected 325058.721\n    test 427 circin6 (pygeodesy.sphericalTrigonometry) .center: 02.938473°N, 002.942346°E, -40128.57m  FAILED, KNOWN, expected 02.948531°N, 002.932537°E, -40041.19m\n    test 428 circin6 (pygeodesy.sphericalTrigonometry) .deltas: (0.0, 0.0, 0.421782)  FAILED, KNOWN, expected (0.0, 0.0, 0.090491)\n    test 429 circin6 (pygeodesy.sphericalTrigonometry) .cA: 05.019001°N, 005.038369°E, -48209.76m  FAILED, KNOWN, expected 05.04314°N, 005.014578°E, -48104.09m\n    test 430 circin6 (pygeodesy.sphericalTrigonometry) .cB: 00.0°N, 002.951508°E, -20185.00m  FAILED, KNOWN, expected 00.0°N, 002.941713°E, -20168.62m\n    test 431 circin6 (pygeodesy.sphericalTrigonometry) .cC: 02.951508°N, 000.0°E, -20185.00m  FAILED, KNOWN, expected 02.961566°N, 000.0°E, -20113.46m\n    test 432 circin6 (pygeodesy.sphericalTrigonometry) .dA: 327983.380  FAILED, KNOWN, expected 327263.596\n    test 433 circin6 (pygeodesy.sphericalTrigonometry) .dB: 326745.373  FAILED, KNOWN, expected 326036.153\n    test 434 circin6 (pygeodesy.sphericalTrigonometry) .dC: 326745.373  FAILED, KNOWN, expected 326020.432\n\n    test 435 area cw/ccw: 1.0\n\n    testLatLon(pygeodesy.ellipsoidalNvector, 25.05.12)\n    test 436 isEllipsoidal: True\n    test 437 isSpherical: False\n    test 438 lat/lonDMS: 52.20472°N, 000.14056°E\n    test 439 lat/lonDMS F_DM: 52°12.283′N, 000°08.434′E\n    test 440 lat/lonDMS F_DM: 52°12.2832′N, 000°08.4336′E\n    test 441 lat/lonDMS F_DMS: 52°12′17″N, 000°08′26″E\n    test 442 lat/lonDMS F_DMS: 52°12′17.0″N, 000°08′26.0″E\n    test 443 lat/lonDMS F_RAD: 0.911144N, 0.002453E\n    test 444 isequalTo: True\n    test 445 isequalTo: True\n    test 446 latlon2: 52.20472, 0.14056\n    test 447 latlon2: 52.2047, 0.1406\n    test 448 latlon2: 52.205, 0.141\n    test 449 latlon2: 52.2, 0.14\n    test 450 latlon2: 52.2, 0.1\n    test 451 latlon2: 52.0, 0.0\n    test 452 chordTo: 12029263.15\n    test 453 chordTo: 12029049.69\n    test 454 copy: True\n    test 455 __eq__: True\n    test 456 __ne__: False\n    test 457 equirectangularTo: 404329.56\n    test 458 distanceTo: 404279.720589\n    test 459 distanceTo: 404279.720589\n    test 460 distanceTo: 3972863\n    test 461 distanceTo: 18013602.92\n    test 462 distanceTo: 20015114.35  FAILED, KNOWN, expected 20003931.46\n    test 463 intermediateTo: 51.372294°N, 000.707192°E\n    test 464 intermediateTo: True\n    test 465 intermediateTo: 404279.721\n    test 466 intermediateTo+5: 35.560239°N, 008.833512°E\n    test 467 intermediateTo+5: 4.885\n    test 468 intermediateTo-4: 64.570387°N, 013.156352°W\n    test 469 intermediateTo-4: 3.885\n    test 470 intermediateTo-h: 125.000\n    test 471 midpointTo: 50.536327°N, 001.274614°E\n    test 472 neareston6: (LatLon(45°00′00.0″N, 001°00′00.0″E), 4755443.4294, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E))\n    test 473 neareston6: (LatLon(45°30′03.94″N, 002°00′00.0″E), 39078.729285, 1.501072, 2, LatLon(45°00′00.0″N, 002°00′00.0″E), LatLon(46°00′00.0″N, 002°00′00.0″E))\n    test 474 chordTo: 125203.963\n    test 475 cosineAndoyerLambertTo: 125205.962\n    test 476 cosineAndoyerLambertTo: 125205.962\n    test 477 cosineForsyheAndoyerLambertTo: 125205.965\n    test 478 cosineForsyheAndoyerLambertTo: 125205.965\n    test 479 cosineLawTo: 124801.098\n    test 480 cosineLawTo: 124801.098\n    test 481 equirectangularTo: 124804.754\n    test 482 equirectangularTo: 124804.754\n    test 483 euclideanTo: 130015.089\n    test 484 euclideanTo: 130015.089\n    test 485 flatLocalTo: 125209.633\n    test 486 flatLocalTo: 125209.633\n    test 487 flatPolarTo: 133663.257\n    test 488 flatPolarTo: 133663.257\n    test 489 hartzell: 53.3206°N, 001.7297°W\n    test 490 hartzell: 53.349541°N, 001.7297°W\n    test 491 height4: 0.0\n    test 492 height4: (3820333.9, -115367.0, 5097204.4, -6584.9)\n    test 493 height4: 53°19′14.2″N, 001°43′46.9″W\n    test 494 height4: 53°19′14.2″N, 001°43′46.9″W\n    test 495 haversineTo: 124801.098\n    test 496 haversineTo: 124801.098\n    test 497 hubenyTo: <bound method LatLonBase.flatLocalTo of LatLon(53°19′14.16″N, 001°43′46.92″W)>\n    test 498 hubenyTo: <bound method LatLonBase.flatLocalTo of LatLon(53°11′19.32″N, 000°08′00.24″E)>\n    test 499 thomasTo: 125206.188\n    test 500 thomasTo: 125206.188\n    test 501 vincentysTo: 124801.098\n    test 502 vincentysTo: 124801.098\n    test 503 isclockwise: False\n    test 504 isclockwise*: False\n    test 505 isclockwise: True\n    test 506 isclockwise*: True\n    test 507 isclockwise: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 508 isclockwise*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 509 isclockwise: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 510 isclockwise*: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 511 isconvex: False\n    test 512 isconvex*: False\n    test 513 isconvex: True\n    test 514 isconvex*: True\n    test 515 isconvex: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 516 isconvex*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 517 isenclosedBy1: True\n    test 518 isenclosedBy1*: True\n    test 519 isenclosedBy2: False\n    test 520 isenclosedBy2*: False\n    test 521 isenclosedBy3: False\n    test 522 isenclosedBy3*: False\n    test 523 isenclosedBy4: False\n    test 524 isenclosedBy4*: False\n    test 525 isenclosedBy5: False\n    test 526 isenclosedBy5*: False\n    test 527 isenclosedBy6: True\n    test 528 isenclosedBy6*: True\n    test 529 isenclosedBy7: True\n    test 530 isenclosedBy7*: True\n    test 531 isenclosedBy-CCW: True\n    test 532 isenclosedBy-CW : True\n    test 533 isenclosedBy-CCW: True\n    test 534 compassAngleTo: 100.017\n    test 535 compassAngleTo: 105.599\n    test 536 compassAngleTo: 280.017\n    test 537 compassAngleTo: 285.599\n    test 538 equirectangularTo: 592.185\n    test 539 distanceTo: 591.831\n    test 540 compassAngleTo: 0.0\n    test 541 compassAngleTo: 45.0\n    test 542 compassAngleTo: 90.0\n    test 543 compassAngleTo: 180.0\n    test 544 compassAngleTo: 225.0\n    test 545 compassAngleTo: 315.0\n    test 546 compassAngleTo: 270.0\n    test 547 compassAngleTo: 359.4\n    test 548 latlon2: (53.0, 1.0)\n    test 549 philam2: (0.93, 0.02)\n    test 550 compassAngleTo: 31\n    test 551 compassAngleTo: 45\n\n    test 552 boundsOf: <class 'pygeodesy.namedTuples.Bounds2Tuple'>\n    test 553 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 554 latlon2: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 555 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 556 isequalTo: <class 'bool'>\n    test 557 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n./pygeodesy/ellipsoidalBase.py:443: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  _ = self.datum.ellipsoid.geodesic\n./pygeodesy/azimuthal.py:636: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return self.datum.ellipsoid.geodesic\n    test 558 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 559 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 560 xyz3: <class 'tuple'>\n    test 561 xyzh: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 562 compassAngleTo: <class 'float'>\n    test 563 cosineLawTo: <class 'float'>\n    test 564 euclideanTo: <class 'float'>\n    test 565 flatLocalTo: <class 'float'>\n    test 566 flatPolarTo: <class 'float'>\n    test 567 haversineTo: <class 'float'>\n    test 568 hubenyTo: <class 'float'>\n    test 569 vincentysTo: <class 'float'>\n    test 570 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 571 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 572 toLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 573 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 574 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 575 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 576 toVector: (3934960.466675, 0.0, 5002803.345483)\n    test 577 toVector3d: (0.61823, 0.0, 0.786)\n    test 578 trilaterate5 (pygeodesy.ellipsoidalNvector) .min: 223.305\n    test 579 trilaterate5 (pygeodesy.ellipsoidalNvector) .point: 42.67456065°N, 002.49539502°E\n    test 580 trilaterate5 (pygeodesy.ellipsoidalNvector) .min- is .maxPoint: True\n    test 581 trilaterate5 (pygeodesy.ellipsoidalNvector) .n: 1\n    test 582 trilaterate5 (pygeodesy.ellipsoidalNvector) .error: ellipsoidalNvector.LatLon.trilaterate5(area=True), MRO(nvectorBase.LatLonNvectorBase, ellipsoidalBase.LatLonEllipsoidalBase, latlonBase.LatLonBase, named._NamedBase, ecefLocals._EcefLocal, named._Named): not implemented\n\n    test 583 radii11: Radii11Tuple(rA=7705.84217, rB=1367.057272, rC=498.160185, cR=4897.488519, rIn=740.470746, riS=179.544791, roS=5964.029657, a=1865.217457, b=8204.002354, c=9072.899442, s=9571.059626)\n    test 584 circum4 (pygeodesy.ellipsoidalNvector) .radius: 3184196.839  FAILED, KNOWN, expected 3184256.748\n    test 585 circum4 (pygeodesy.ellipsoidalNvector) .center: 42.674776°N, 002.495488°E, -3184194.95m  FAILED, KNOWN, expected 43.054367°N, 002.942573°E, -3183993.92m\n    test 586 circum4 (pygeodesy.ellipsoidalNvector) .rank: 3\n    test 587 circum4 (pygeodesy.ellipsoidalNvector) .residuals: ()\n    test 588 circum4 (pygeodesy.ellipsoidalNvector) .d1: 4886.122  FAILED, KNOWN, expected 57818.033\n    test 589 circum4 (pygeodesy.ellipsoidalNvector) .d2: 4904.641  FAILED, KNOWN, expected 57834.176\n    test 590 circum4 (pygeodesy.ellipsoidalNvector) .d3: 4909.920  FAILED, KNOWN, expected 57830.992\n    test 591 circum4 (pygeodesy.ellipsoidalNvector) .datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 592 circum4 (pygeodesy.ellipsoidalNvector) .Ecef: <class 'pygeodesy.ecef.EcefVeness'>\n    test 593 radii11: Radii11Tuple(rA=327537.482637, rB=776914.262482, rC=784245.052526, cR=780602.180901, rIn=325058.721103, riS=84975.664195, roS=INF, a=1561159.315008, b=1111782.535163, c=1104451.745119, s=1888696.797645)\n    test 594 circin6 (pygeodesy.ellipsoidalNvector) .rB+rC: 1561159.315\n    test 595 circin6 (pygeodesy.ellipsoidalNvector) .rC+pA: 1111782.535\n    test 596 circin6 (pygeodesy.ellipsoidalNvector) .rA+rB: 1104451.745\n    test 597 circin6 (pygeodesy.ellipsoidalNvector) .radius: 325058.721\n    test 598 circin6 (pygeodesy.ellipsoidalNvector) .center: 02.948531°N, 002.932537°E, -40041.19m\n    test 599 circin6 (pygeodesy.ellipsoidalNvector) .deltas: (0.0, 0.0, 0.224326)  FAILED, KNOWN, expected (0.0, 0.0, 0.090491)\n    test 600 circin6 (pygeodesy.ellipsoidalNvector) .cA: 05.04314°N, 005.014578°E, -48104.09m\n    test 601 circin6 (pygeodesy.ellipsoidalNvector) .cB: 00.0°N, 002.941713°E, -20168.62m\n    test 602 circin6 (pygeodesy.ellipsoidalNvector) .cC: 02.961566°N, 000.0°E, -20113.46m\n    test 603 circin6 (pygeodesy.ellipsoidalNvector) .dA: 327992.318  FAILED, KNOWN, expected 327263.596\n    test 604 circin6 (pygeodesy.ellipsoidalNvector) .dB: 327863.711  FAILED, KNOWN, expected 326036.153\n    test 605 circin6 (pygeodesy.ellipsoidalNvector) .dC: 325653.216  FAILED, KNOWN, expected 326020.432\n\n    testLatLon(pygeodesy.ellipsoidalVincenty, 25.05.26)\n    test 606 isEllipsoidal: True\n    test 607 isSpherical: False\n    test 608 lat/lonDMS: 52.20472°N, 000.14056°E\n    test 609 lat/lonDMS F_DM: 52°12.283′N, 000°08.434′E\n    test 610 lat/lonDMS F_DM: 52°12.2832′N, 000°08.4336′E\n    test 611 lat/lonDMS F_DMS: 52°12′17″N, 000°08′26″E\n    test 612 lat/lonDMS F_DMS: 52°12′17.0″N, 000°08′26.0″E\n    test 613 lat/lonDMS F_RAD: 0.911144N, 0.002453E\n    test 614 isequalTo: True\n    test 615 isequalTo: True\n    test 616 latlon2: 52.20472, 0.14056\n    test 617 latlon2: 52.2047, 0.1406\n    test 618 latlon2: 52.205, 0.141\n    test 619 latlon2: 52.2, 0.14\n    test 620 latlon2: 52.2, 0.1\n    test 621 latlon2: 52.0, 0.0\n    test 622 chordTo: 12029263.15\n    test 623 chordTo: 12029049.69\n    test 624 initialBearingTo: 156.1106\n    test 625 initialBearingTo: 65.9335\n    test 626 initialBearingTo: 0.0\n    test 627 initialBearingTo: 180.0\n    test 628 finalBearingTo: 157.8345\n    test 629 finalBearingTo: 93.9034\n    test 630 bearingTo2: 156.1106, 157.8345\n    test 631 ispolar: True\n    test 632 copy: True\n    test 633 __eq__: True\n    test 634 __ne__: False\n    test 635 equirectangularTo: 404329.56\n    test 636 distanceTo: 404607.805988\n    test 637 distanceTo: 404607.805988\n    test 638 distanceTo: 3981601\n    test 639 antipodal: False\n    test 640 distanceTo dateline: 19959679.267\n    test 641 distanceTo unrolled: 19959679.267\n    test 642 antipodal: False\n    test 643 distanceTo dateline: 9513998\n    test 644 distanceTo unrolled: 9513998\n    test 645 distanceTo: 18012714.66\n    test 646 distanceTo: ambiguous: LatLon(00°00′00.0″N, 000°00′00.0″E) antipodal to LatLon(00°00′00.0″N, 180°00′00.0″E)  FAILED, KNOWN, expected ambiguous, antipodal ...\n    test 647 distanceTo3 dateline: 19959679.2674, 161.0677, 18.8252\n    test 648 distanceTo3 dateline: 9513997.9901, 42.9164, 138.8903\n    test 649 distanceTo3 dateline: 19959679.2674, 161.0677, 18.8252\n    test 650 distanceTo3 dateline: 9513997.9901, 42.9164, 138.8903\n    test 651 intermediateTo: 51.372275°N, 000.707253°E\n    test 652 intermediateTo: True\n    test 653 intermediateTo: 404607.806\n    test 654 intermediateTo+5: 35.139582°N, 008.994368°E\n    test 655 intermediateTo+5: 5.000\n    test 656 intermediateTo-4: 64.894124°N, 013.705689°W\n    test 657 intermediateTo-4: 4.000\n    test 658 intermediateTo-h: 125.000\n    test 659 midpointTo: 50.536583°N, 001.274507°E\n    test 660 destination: 51.513526°N, 000.098038°W\n    test 661 destination: 51°30′49″N, 000°05′53″W\n    test 662 destination: 33°57′N, 118°24′W\n    test 663 destination: 33.950367°N, 118.399012°W\n    test 664 destination: 0.592546N, 2.066453W\n    test 665 destination: 32.11195529°N, 064.56074722°E  FAILED, KNOWN, expected 32.11195529°N, 063.95925278°E\n    test 666 neareston6: (LatLon(45°00′00.0″N, 001°00′00.0″E), 4755443.4294, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E))\n    test 667 neareston6: (LatLon(45°30′03.94″N, 002°00′00.0″E), 39078.729285, 1.501072, 2, LatLon(45°00′00.0″N, 002°00′00.0″E), LatLon(46°00′00.0″N, 002°00′00.0″E))\n    test 668 chordTo: 125203.963\n    test 669 cosineAndoyerLambertTo: 125205.962\n    test 670 cosineAndoyerLambertTo: 125205.962\n    test 671 cosineForsyheAndoyerLambertTo: 125205.965\n    test 672 cosineForsyheAndoyerLambertTo: 125205.965\n    test 673 cosineLawTo: 124801.098\n    test 674 cosineLawTo: 124801.098\n    test 675 equirectangularTo: 124804.754\n    test 676 equirectangularTo: 124804.754\n    test 677 euclideanTo: 130015.089\n    test 678 euclideanTo: 130015.089\n    test 679 flatLocalTo: 125209.633\n    test 680 flatLocalTo: 125209.633\n    test 681 flatPolarTo: 133663.257\n    test 682 flatPolarTo: 133663.257\n    test 683 hartzell: 53.3206°N, 001.7297°W\n    test 684 hartzell: 53.349541°N, 001.7297°W\n    test 685 height4: 0.0\n    test 686 height4: (3820333.9, -115367.0, 5097204.4, -6584.9)\n    test 687 height4: 53°19′14.2″N, 001°43′46.9″W\n./test/testLatLon.py:627: DeprecationWarning: function L{areaOf<pygeodesy.ellipsoidalVincenty.areaOf>} has been DEPRECATED, use function L{ellipsoidalExact.areaOf} or L{ellipsoidalKarney.areaOf}.\n  r = a(reversed(b))\n./pygeodesy/ellipsoidalKarney.py:139: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return fabs(_polygon(datum.ellipsoid.geodesic, points, True, False, wrap, polar))\n./test/testLatLon.py:628: DeprecationWarning: function L{areaOf<pygeodesy.ellipsoidalVincenty.areaOf>} has been DEPRECATED, use function L{ellipsoidalExact.areaOf} or L{ellipsoidalKarney.areaOf}.\n  f = a(b)  # ccw\n./pygeodesy/ellipsoidalKarney.py:94: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return self.datum.ellipsoid.geodesic\n./test/testLatLon.py:276: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.ellipsoidalKarney.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', p.cosineAndoyerLambertTo(q), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:277: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.ellipsoidalKarney.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', q.cosineAndoyerLambertTo(p), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:279: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.ellipsoidalKarney.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', p.cosineForsytheAndoyerLambertTo(q), '124801.098' if Sph else '125205.965', fmt='%.3f')\n./test/testLatLon.py:280: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.ellipsoidalKarney.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', q.cosineForsytheAndoyerLambertTo(p), '124801.098' if Sph else '125205.965', fmt='%.3f')\n    test 688 height4: 53°19′14.2″N, 001°43′46.9″W\n    test 689 haversineTo: 124801.098\n    test 690 haversineTo: 124801.098\n    test 691 hubenyTo: <bound method LatLonBase.flatLocalTo of LatLon(53°19′14.16″N, 001°43′46.92″W)>\n    test 692 hubenyTo: <bound method LatLonBase.flatLocalTo of LatLon(53°11′19.32″N, 000°08′00.24″E)>\n    test 693 thomasTo: 125206.188\n    test 694 thomasTo: 125206.188\n    test 695 vincentysTo: 124801.098\n    test 696 vincentysTo: 124801.098\n    test 697 isclockwise: False\n    test 698 isclockwise*: False\n    test 699 isclockwise: True\n    test 700 isclockwise*: True\n    test 701 isclockwise: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 702 isclockwise*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 703 isclockwise: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 704 isclockwise*: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 705 isconvex: False\n    test 706 isconvex*: False\n    test 707 isconvex: True\n    test 708 isconvex*: True\n    test 709 isconvex: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 710 isconvex*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 711 isenclosedBy1: True\n    test 712 isenclosedBy1*: True\n    test 713 isenclosedBy2: False\n    test 714 isenclosedBy2*: False\n    test 715 isenclosedBy3: False\n    test 716 isenclosedBy3*: False\n    test 717 isenclosedBy4: False\n    test 718 isenclosedBy4*: False\n    test 719 isenclosedBy5: False\n    test 720 isenclosedBy5*: False\n    test 721 isenclosedBy6: True\n    test 722 isenclosedBy6*: True\n    test 723 isenclosedBy7: True\n    test 724 isenclosedBy7*: True\n    test 725 isenclosedBy-CCW: True\n    test 726 isenclosedBy-CW : True\n    test 727 isenclosedBy-CCW: True\n    test 728 initialBearingTo: 102.392291\n    test 729 compassAngleTo: 100.017\n    test 730 compassAngleTo: 105.599\n    test 731 initialBearingTo: 288.676039\n    test 732 compassAngleTo: 280.017\n    test 733 compassAngleTo: 285.599\n    test 734 equirectangularTo: 592.185\n    test 735 distanceTo: 593.571\n    test 736 bearingTo: 0.0\n    test 737 compassAngleTo: 0.0\n    test 738 bearingTo: 45.2  FAILED, KNOWN, expected 45.0\n    test 739 compassAngleTo: 45.0\n    test 740 bearingTo: 90.0\n    test 741 compassAngleTo: 90.0\n    test 742 bearingTo: 180.0\n    test 743 compassAngleTo: 180.0\n    test 744 bearingTo: 225.2  FAILED, KNOWN, expected 225.0\n    test 745 compassAngleTo: 225.0\n    test 746 bearingTo: 314.8  FAILED, KNOWN, expected 315.0\n    test 747 compassAngleTo: 315.0\n    test 748 bearingTo: 270.0\n    test 749 compassAngleTo: 270.0\n    test 750 bearingTo: 360.0  FAILED, KNOWN, expected 359.4\n    test 751 compassAngleTo: 359.4\n    test 752 latlon2: (53.0, 1.0)\n    test 753 philam2: (0.93, 0.02)\n    test 754 bearingTo: 31\n    test 755 compassAngleTo: 31\n    test 756 compassAngleTo: 45\n\n    test 757 boundsOf: <class 'pygeodesy.namedTuples.Bounds2Tuple'>\n    test 758 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 759 latlon2: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 760 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 761 isequalTo: <class 'bool'>\n    test 762 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 763 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 764 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 765 xyz3: <class 'tuple'>\n    test 766 xyzh: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 767 compassAngleTo: <class 'float'>\n    test 768 cosineLawTo: <class 'float'>\n    test 769 euclideanTo: <class 'float'>\n    test 770 flatLocalTo: <class 'float'>\n    test 771 flatPolarTo: <class 'float'>\n    test 772 haversineTo: <class 'float'>\n    test 773 hubenyTo: <class 'float'>\n    test 774 vincentysTo: <class 'float'>\n    test 775 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 776 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 777 toLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 778 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 779 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 780 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 781 toNvector: (0.615661, 0.0, 0.788011, 0)\n    test 782 toVector: (3934960.466675, 0.0, 5002803.345483)\n    test 783 toVector3d: (0.61823, 0.0, 0.786)\n\n    test 784 trilaterate5 (pygeodesy.ellipsoidalVincenty) .min: 305.091\n    test 785 trilaterate5 (pygeodesy.ellipsoidalVincenty) .point: 42.66933643°N, 002.48620262°E\n    test 786 trilaterate5 (pygeodesy.ellipsoidalVincenty) .max: 1592.545\n    test 787 trilaterate5 (pygeodesy.ellipsoidalVincenty) .point: 42.65141232°N, 002.46816989°E\n    test 788 trilaterate5 (pygeodesy.ellipsoidalVincenty) .n: 3\n    test 789 trilaterate5 (pygeodesy.ellipsoidalVincenty) .min: 127.229\n    test 790 trilaterate5 (pygeodesy.ellipsoidalVincenty) .max: 152.612\n    test 791 trilaterate5 (pygeodesy.ellipsoidalVincenty) .point: 42.67815375°N, 002.49950041°E\n    test 792 trilaterate5 (pygeodesy.ellipsoidalVincenty) .n: 2\n    test 793 trilaterate5 (pygeodesy.ellipsoidalVincenty) .min: 2400.293\n    test 794 trilaterate5 (pygeodesy.ellipsoidalVincenty) .max: 2400.293\n    test 795 trilaterate5 (pygeodesy.ellipsoidalVincenty) .point: 42.66128984°N, 002.47973818°E\n    test 796 trilaterate5 (pygeodesy.ellipsoidalVincenty) .min- is .maxPoint: True\n    test 797 trilaterate5 (pygeodesy.ellipsoidalVincenty) .n: 1\n    test 798 trilaterate5 (pygeodesy.ellipsoidalVincenty) .min: 1343.743\n    test 799 trilaterate5 (pygeodesy.ellipsoidalVincenty) .point: 42.69131964°N, 002.50112167°E\n    test 800 trilaterate5 (pygeodesy.ellipsoidalVincenty) .max: 1445.554\n    test 801 trilaterate5 (pygeodesy.ellipsoidalVincenty) .point: 42.67815375°N, 002.49950041°E\n    test 802 trilaterate5 (pygeodesy.ellipsoidalVincenty) .n: 2\n    test 803 radii11: Radii11Tuple(rA=7244.792747, rB=1828.106695, rC=2.25502, cR=57792.067128, rIn=57.366968, riS=2.087668, roS=2.443334, a=1830.361715, b=7247.047766, c=9072.899442, s=9075.154461)\n    test 804 circum3 (pygeodesy.ellipsoidalVincenty) .radius: 57792.067\n    test 805 circum3 (pygeodesy.ellipsoidalVincenty) .center: 43.053532°N, 002.943255°E, -261.66m\n    test 806 circum3 (pygeodesy.ellipsoidalVincenty) .deltas: (-0.0, 0.0, 9.827)  FAILED, KNOWN, expected (0.0, 0.0, 11.383)\n    test 807 circum3 (pygeodesy.ellipsoidalVincenty) .d1: 57792.858\n    test 808 circum3 (pygeodesy.ellipsoidalVincenty) .d2: 57792.859\n    test 809 circum3 (pygeodesy.ellipsoidalVincenty) .d3: 57792.859\n    test 810 circum3 (pygeodesy.ellipsoidalVincenty) .datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 811 circum3 (pygeodesy.ellipsoidalVincenty) .Ecef: <class 'pygeodesy.ecef.EcefVeness'>\n\n    test 812 radii11: Radii11Tuple(rA=7244.792747, rB=1828.106695, rC=2.25502, cR=57792.067128, rIn=57.366968, riS=2.087668, roS=2.443334, a=1830.361715, b=7247.047766, c=9072.899442, s=9075.154461)\n    test 813 circum4 (pygeodesy.ellipsoidalVincenty) .radius: 3184256.748\n    test 814 circum4 (pygeodesy.ellipsoidalVincenty) .center: 43.054367°N, 002.942573°E, -3183993.92m\n    test 815 circum4 (pygeodesy.ellipsoidalVincenty) .rank: 3\n    test 816 circum4 (pygeodesy.ellipsoidalVincenty) .residuals: ()\n    test 817 circum4 (pygeodesy.ellipsoidalVincenty) .d1: 57818.033\n    test 818 circum4 (pygeodesy.ellipsoidalVincenty) .d2: 57834.176\n    test 819 circum4 (pygeodesy.ellipsoidalVincenty) .d3: 57830.992\n    test 820 circum4 (pygeodesy.ellipsoidalVincenty) .datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 821 circum4 (pygeodesy.ellipsoidalVincenty) .Ecef: <class 'pygeodesy.ecef.EcefVeness'>\n    test 822 radii11: Radii11Tuple(rA=327537.482637, rB=776914.262482, rC=784245.052526, cR=780602.180901, rIn=325058.721103, riS=84975.664195, roS=INF, a=1561159.315008, b=1111782.535163, c=1104451.745119, s=1888696.797645)\n    test 823 circin6 (pygeodesy.ellipsoidalVincenty) .rB+rC: 1561159.315\n    test 824 circin6 (pygeodesy.ellipsoidalVincenty) .rC+pA: 1111782.535\n    test 825 circin6 (pygeodesy.ellipsoidalVincenty) .rA+rB: 1104451.745\n    test 826 circin6 (pygeodesy.ellipsoidalVincenty) .radius: 325058.721\n    test 827 circin6 (pygeodesy.ellipsoidalVincenty) .center: 02.948531°N, 002.932537°E, -40041.19m\n    test 828 circin6 (pygeodesy.ellipsoidalVincenty) .deltas: (0.0, 0.0, 0.224326)  FAILED, KNOWN, expected (0.0, 0.0, 0.090491)\n    test 829 circin6 (pygeodesy.ellipsoidalVincenty) .cA: 05.04314°N, 005.014578°E, -48104.09m\n    test 830 circin6 (pygeodesy.ellipsoidalVincenty) .cB: 00.0°N, 002.941713°E, -20168.62m\n    test 831 circin6 (pygeodesy.ellipsoidalVincenty) .cC: 02.961566°N, 000.0°E, -20113.46m\n    test 832 circin6 (pygeodesy.ellipsoidalVincenty) .dA: 327263.596\n    test 833 circin6 (pygeodesy.ellipsoidalVincenty) .dB: 326036.153\n    test 834 circin6 (pygeodesy.ellipsoidalVincenty) .dC: 326020.432\n\n    test 835 area cw/ccw: 1.0\n\n    testLatLon(pygeodesy.ellipsoidalKarney, 25.05.27)\n    test 836 isEllipsoidal: True\n    test 837 isSpherical: False\n    test 838 lat/lonDMS: 52.20472°N, 000.14056°E\n    test 839 lat/lonDMS F_DM: 52°12.283′N, 000°08.434′E\n    test 840 lat/lonDMS F_DM: 52°12.2832′N, 000°08.4336′E\n    test 841 lat/lonDMS F_DMS: 52°12′17″N, 000°08′26″E\n    test 842 lat/lonDMS F_DMS: 52°12′17.0″N, 000°08′26.0″E\n    test 843 lat/lonDMS F_RAD: 0.911144N, 0.002453E\n    test 844 isequalTo: True\n    test 845 isequalTo: True\n    test 846 latlon2: 52.20472, 0.14056\n    test 847 latlon2: 52.2047, 0.1406\n    test 848 latlon2: 52.205, 0.141\n    test 849 latlon2: 52.2, 0.14\n    test 850 latlon2: 52.2, 0.1\n    test 851 latlon2: 52.0, 0.0\n    test 852 chordTo: 12029263.15\n    test 853 chordTo: 12029049.69\n    test 854 initialBearingTo: 156.1106\n    test 855 initialBearingTo: 65.9335\n    test 856 initialBearingTo: 0.0\n    test 857 initialBearingTo: 180.0\n    test 858 finalBearingTo: 157.8345\n    test 859 finalBearingTo: 93.9034\n    test 860 bearingTo2: 156.1106, 157.8345\n    test 861 ispolar: True\n    test 862 copy: True\n    test 863 __eq__: True\n    test 864 __ne__: False\n    test 865 equirectangularTo: 404329.56\n    test 866 distanceTo: 404607.805988\n    test 867 distanceTo: 404607.805988\n    test 868 distanceTo: 3981601\n    test 869 antipodal: False\n    test 870 distanceTo dateline: 19959679.267\n    test 871 distanceTo unrolled: 19959679.267\n    test 872 antipodal: False\n    test 873 distanceTo dateline: 9513998\n    test 874 distanceTo unrolled: 9513998\n    test 875 distanceTo: 18012714.66\n    test 876 distanceTo: 20003931.46\n    test 877 distanceTo3 dateline: 19959679.2674, 161.0677, 18.8252\n    test 878 distanceTo3 dateline: 9513997.9901, 42.9164, 138.8903\n    test 879 distanceTo3 dateline: 19959679.2674, 161.0677, 18.8252\n    test 880 distanceTo3 dateline: 9513997.9901, 42.9164, 138.8903\n    test 881 intermediateTo: 51.372275°N, 000.707253°E\n    test 882 intermediateTo: True\n    test 883 intermediateTo: 404607.806\n    test 884 intermediateTo+5: 35.139582°N, 008.994368°E\n    test 885 intermediateTo+5: 5.000\n    test 886 intermediateTo-4: 64.894124°N, 013.705689°W\n    test 887 intermediateTo-4: 4.000\n    test 888 intermediateTo-h: 125.000\n    test 889 midpointTo: 50.536583°N, 001.274507°E\n    test 890 destination: 51.513526°N, 000.098038°W\n    test 891 destination: 51°30′49″N, 000°05′53″W\n    test 892 destination: 33°57′N, 118°24′W\n    test 893 destination: 33.950367°N, 118.399012°W\n    test 894 destination: 0.592546N, 2.066453W\n    test 895 destination: 32.11195529°N, 064.56074722°E  FAILED, KNOWN, expected 32.11195529°N, 063.95925278°E\n    test 896 neareston6: (LatLon(45°00′00.0″N, 001°00′00.0″E), 4755443.4294, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E))\n    test 897 neareston6: (LatLon(45°30′03.94″N, 002°00′00.0″E), 39078.729285, 1.501072, 2, LatLon(45°00′00.0″N, 002°00′00.0″E), LatLon(46°00′00.0″N, 002°00′00.0″E))\n    test 898 chordTo: 125203.963\n    test 899 cosineAndoyerLambertTo: 125205.962\n    test 900 cosineAndoyerLambertTo: 125205.962\n    test 901 cosineForsyheAndoyerLambertTo: 125205.965\n    test 902 cosineForsyheAndoyerLambertTo: 125205.965\n    test 903 cosineLawTo: 124801.098\n    test 904 cosineLawTo: 124801.098\n    test 905 equirectangularTo: 124804.754\n    test 906 equirectangularTo: 124804.754\n    test 907 euclideanTo: 130015.089\n    test 908 euclideanTo: 130015.089\n    test 909 flatLocalTo: 125209.633\n    test 910 flatLocalTo: 125209.633\n    test 911 flatPolarTo: 133663.257\n    test 912 flatPolarTo: 133663.257\n    test 913 hartzell: 53.3206°N, 001.7297°W\n    test 914 hartzell: 53.349541°N, 001.7297°W\n    test 915 height4: 0.0\n    test 916 height4: (3820333.9, -115367.0, 5097204.4, -6584.9)\n    test 917 height4: 53°19′14.2″N, 001°43′46.9″W\n    test 918 height4: 53°19′14.2″N, 001°43′46.9″W\n    test 919 haversineTo: 124801.098\n    test 920 haversineTo: 124801.098\n    test 921 hubenyTo: <bound method LatLonBase.flatLocalTo of LatLon(53°19′14.16″N, 001°43′46.92″W)>\n    test 922 hubenyTo: <bound method LatLonBase.flatLocalTo of LatLon(53°11′19.32″N, 000°08′00.24″E)>\n    test 923 thomasTo: 125206.188\n    test 924 thomasTo: 125206.188\n    test 925 vincentysTo: 124801.098\n    test 926 vincentysTo: 124801.098\n    test 927 isclockwise: False\n    test 928 isclockwise*: False\n    test 929 isclockwise: True\n    test 930 isclockwise*: True\n    test 931 isclockwise: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 932 isclockwise*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 933 isclockwise: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 934 isclockwise*: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 935 isconvex: False\n    test 936 isconvex*: False\n    test 937 isconvex: True\n    test 938 isconvex*: True\n    test 939 isconvex: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 940 isconvex*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 941 isenclosedBy1: True\n    test 942 isenclosedBy1*: True\n    test 943 isenclosedBy2: False\n    test 944 isenclosedBy2*: False\n    test 945 isenclosedBy3: False\n    test 946 isenclosedBy3*: False\n    test 947 isenclosedBy4: False\n    test 948 isenclosedBy4*: False\n    test 949 isenclosedBy5: False\n    test 950 isenclosedBy5*: False\n    test 951 isenclosedBy6: True\n    test 952 isenclosedBy6*: True\n    test 953 isenclosedBy7: True\n    test 954 isenclosedBy7*: True\n    test 955 isenclosedBy-CCW: True\n    test 956 isenclosedBy-CW : True\n    test 957 isenclosedBy-CCW: True\n    test 958 initialBearingTo: 102.392291\n    test 959 compassAngleTo: 100.017\n    test 960 compassAngleTo: 105.599\n    test 961 initialBearingTo: 288.676039\n    test 962 compassAngleTo: 280.017\n    test 963 compassAngleTo: 285.599\n    test 964 equirectangularTo: 592.185\n    test 965 distanceTo: 593.571\n    test 966 bearingTo: 0.0\n    test 967 compassAngleTo: 0.0\n    test 968 bearingTo: 45.2  FAILED, KNOWN, expected 45.0\n    test 969 compassAngleTo: 45.0\n    test 970 bearingTo: 90.0\n    test 971 compassAngleTo: 90.0\n    test 972 bearingTo: 180.0\n    test 973 compassAngleTo: 180.0\n    test 974 bearingTo: 225.2  FAILED, KNOWN, expected 225.0\n    test 975 compassAngleTo: 225.0\n    test 976 bearingTo: 314.8  FAILED, KNOWN, expected 315.0\n    test 977 compassAngleTo: 315.0\n    test 978 bearingTo: 270.0\n    test 979 compassAngleTo: 270.0\n    test 980 bearingTo: 0.0  FAILED, KNOWN, expected 359.4\n    test 981 compassAngleTo: 359.4\n    test 982 latlon2: (53.0, 1.0)\n    test 983 philam2: (0.93, 0.02)\n    test 984 bearingTo: 31\n./test/testLatLon.py:276: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.ellipsoidalGeodSolve.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', p.cosineAndoyerLambertTo(q), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:277: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.ellipsoidalGeodSolve.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', q.cosineAndoyerLambertTo(p), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:279: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.ellipsoidalGeodSolve.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', p.cosineForsytheAndoyerLambertTo(q), '124801.098' if Sph else '125205.965', fmt='%.3f')\n./test/testLatLon.py:280: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.ellipsoidalGeodSolve.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', q.cosineForsytheAndoyerLambertTo(p), '124801.098' if Sph else '125205.965', fmt='%.3f')\n    test 985 compassAngleTo: 31\n    test 986 compassAngleTo: 45\n\n    test 987 boundsOf: <class 'pygeodesy.namedTuples.Bounds2Tuple'>\n    test 988 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 989 latlon2: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 990 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 991 isequalTo: <class 'bool'>\n    test 992 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 993 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 994 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 995 xyz3: <class 'tuple'>\n    test 996 xyzh: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 997 compassAngleTo: <class 'float'>\n    test 998 cosineLawTo: <class 'float'>\n    test 999 euclideanTo: <class 'float'>\n    test 1000 flatLocalTo: <class 'float'>\n    test 1001 flatPolarTo: <class 'float'>\n    test 1002 haversineTo: <class 'float'>\n    test 1003 hubenyTo: <class 'float'>\n    test 1004 vincentysTo: <class 'float'>\n    test 1005 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 1006 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 1007 toLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 1008 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 1009 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 1010 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 1011 toNvector: (0.615661, 0.0, 0.788011, 0)\n    test 1012 toVector: (3934960.466675, 0.0, 5002803.345483)\n    test 1013 toVector3d: (0.61823, 0.0, 0.786)\n\n    test 1014 trilaterate5 (pygeodesy.ellipsoidalKarney) .min: 305.091\n    test 1015 trilaterate5 (pygeodesy.ellipsoidalKarney) .point: 42.66933643°N, 002.48620262°E\n    test 1016 trilaterate5 (pygeodesy.ellipsoidalKarney) .max: 1592.545\n    test 1017 trilaterate5 (pygeodesy.ellipsoidalKarney) .point: 42.65141232°N, 002.46816989°E\n    test 1018 trilaterate5 (pygeodesy.ellipsoidalKarney) .n: 3\n    test 1019 trilaterate5 (pygeodesy.ellipsoidalKarney) .min: 127.229\n    test 1020 trilaterate5 (pygeodesy.ellipsoidalKarney) .max: 152.612\n    test 1021 trilaterate5 (pygeodesy.ellipsoidalKarney) .point: 42.67815375°N, 002.49950041°E\n    test 1022 trilaterate5 (pygeodesy.ellipsoidalKarney) .n: 2\n    test 1023 trilaterate5 (pygeodesy.ellipsoidalKarney) .min: 2400.293\n    test 1024 trilaterate5 (pygeodesy.ellipsoidalKarney) .max: 2400.293\n    test 1025 trilaterate5 (pygeodesy.ellipsoidalKarney) .point: 42.66128984°N, 002.47973818°E\n    test 1026 trilaterate5 (pygeodesy.ellipsoidalKarney) .min- is .maxPoint: True\n    test 1027 trilaterate5 (pygeodesy.ellipsoidalKarney) .n: 1\n    test 1028 trilaterate5 (pygeodesy.ellipsoidalKarney) .min: 1343.743\n    test 1029 trilaterate5 (pygeodesy.ellipsoidalKarney) .point: 42.69131964°N, 002.50112167°E\n    test 1030 trilaterate5 (pygeodesy.ellipsoidalKarney) .max: 1445.554\n    test 1031 trilaterate5 (pygeodesy.ellipsoidalKarney) .point: 42.67815375°N, 002.49950041°E\n    test 1032 trilaterate5 (pygeodesy.ellipsoidalKarney) .n: 2\n    test 1033 radii11: Radii11Tuple(rA=7244.792747, rB=1828.106695, rC=2.25502, cR=57792.067128, rIn=57.366968, riS=2.087668, roS=2.443334, a=1830.361715, b=7247.047766, c=9072.899442, s=9075.154461)\n    test 1034 circum3 (pygeodesy.ellipsoidalKarney) .radius: 57792.067\n    test 1035 circum3 (pygeodesy.ellipsoidalKarney) .center: 43.053532°N, 002.943255°E, -261.66m\n    test 1036 circum3 (pygeodesy.ellipsoidalKarney) .deltas: (-0.0, 0.0, 9.827)  FAILED, KNOWN, expected (0.0, 0.0, 11.383)\n    test 1037 circum3 (pygeodesy.ellipsoidalKarney) .d1: 57792.858\n    test 1038 circum3 (pygeodesy.ellipsoidalKarney) .d2: 57792.859\n    test 1039 circum3 (pygeodesy.ellipsoidalKarney) .d3: 57792.859\n    test 1040 circum3 (pygeodesy.ellipsoidalKarney) .datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 1041 circum3 (pygeodesy.ellipsoidalKarney) .Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n\n    test 1042 radii11: Radii11Tuple(rA=7244.792747, rB=1828.106695, rC=2.25502, cR=57792.067128, rIn=57.366968, riS=2.087668, roS=2.443334, a=1830.361715, b=7247.047766, c=9072.899442, s=9075.154461)\n    test 1043 circum4 (pygeodesy.ellipsoidalKarney) .radius: 3184256.748\n    test 1044 circum4 (pygeodesy.ellipsoidalKarney) .center: 43.054367°N, 002.942573°E, -3183993.92m\n    test 1045 circum4 (pygeodesy.ellipsoidalKarney) .rank: 3\n    test 1046 circum4 (pygeodesy.ellipsoidalKarney) .residuals: ()\n    test 1047 circum4 (pygeodesy.ellipsoidalKarney) .d1: 57818.033\n    test 1048 circum4 (pygeodesy.ellipsoidalKarney) .d2: 57834.176\n    test 1049 circum4 (pygeodesy.ellipsoidalKarney) .d3: 57830.992\n    test 1050 circum4 (pygeodesy.ellipsoidalKarney) .datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 1051 circum4 (pygeodesy.ellipsoidalKarney) .Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 1052 radii11: Radii11Tuple(rA=327537.482637, rB=776914.262482, rC=784245.052526, cR=780602.180901, rIn=325058.721103, riS=84975.664195, roS=INF, a=1561159.315008, b=1111782.535163, c=1104451.745119, s=1888696.797645)\n    test 1053 circin6 (pygeodesy.ellipsoidalKarney) .rB+rC: 1561159.315\n    test 1054 circin6 (pygeodesy.ellipsoidalKarney) .rC+pA: 1111782.535\n    test 1055 circin6 (pygeodesy.ellipsoidalKarney) .rA+rB: 1104451.745\n    test 1056 circin6 (pygeodesy.ellipsoidalKarney) .radius: 325058.721\n    test 1057 circin6 (pygeodesy.ellipsoidalKarney) .center: 02.948531°N, 002.932537°E, -40041.19m\n    test 1058 circin6 (pygeodesy.ellipsoidalKarney) .deltas: (0.0, 0.0, 0.224326)  FAILED, KNOWN, expected (0.0, 0.0, 0.090491)\n    test 1059 circin6 (pygeodesy.ellipsoidalKarney) .cA: 05.04314°N, 005.014578°E, -48104.09m\n    test 1060 circin6 (pygeodesy.ellipsoidalKarney) .cB: 00.0°N, 002.941713°E, -20168.62m\n    test 1061 circin6 (pygeodesy.ellipsoidalKarney) .cC: 02.961566°N, 000.0°E, -20113.46m\n    test 1062 circin6 (pygeodesy.ellipsoidalKarney) .dA: 327263.596\n    test 1063 circin6 (pygeodesy.ellipsoidalKarney) .dB: 326036.153\n    test 1064 circin6 (pygeodesy.ellipsoidalKarney) .dC: 326020.432\n\n    test 1065 area cw/ccw: 1.0\n\n    testLatLon(pygeodesy.ellipsoidalGeodSolve, 25.08.28)\n    test 1066 isEllipsoidal: True\n    test 1067 isSpherical: False\n    test 1068 lat/lonDMS: 52.20472°N, 000.14056°E\n    test 1069 lat/lonDMS F_DM: 52°12.283′N, 000°08.434′E\n    test 1070 lat/lonDMS F_DM: 52°12.2832′N, 000°08.4336′E\n    test 1071 lat/lonDMS F_DMS: 52°12′17″N, 000°08′26″E\n    test 1072 lat/lonDMS F_DMS: 52°12′17.0″N, 000°08′26.0″E\n    test 1073 lat/lonDMS F_RAD: 0.911144N, 0.002453E\n    test 1074 isequalTo: True\n    test 1075 isequalTo: True\n    test 1076 latlon2: 52.20472, 0.14056\n    test 1077 latlon2: 52.2047, 0.1406\n    test 1078 latlon2: 52.205, 0.141\n    test 1079 latlon2: 52.2, 0.14\n    test 1080 latlon2: 52.2, 0.1\n    test 1081 latlon2: 52.0, 0.0\n    test 1082 chordTo: 12029263.15\n    test 1083 chordTo: 12029049.69\n    test 1084 initialBearingTo: 156.1106\n    test 1085 initialBearingTo: 65.9335\n    test 1086 initialBearingTo: 0.0\n    test 1087 initialBearingTo: 180.0\n    test 1088 finalBearingTo: 157.8345\n    test 1089 finalBearingTo: 93.9034\n    test 1090 bearingTo2: 156.1106, 157.8345\n    test 1091 ispolar: True\n    test 1092 copy: True\n    test 1093 __eq__: True\n    test 1094 __ne__: False\n    test 1095 equirectangularTo: 404329.56\n    test 1096 distanceTo: 404607.805988\n    test 1097 distanceTo: 404607.805988\n    test 1098 distanceTo: 3981601\n    test 1099 antipodal: False\n    test 1100 distanceTo dateline: 19959679.267\n    test 1101 distanceTo unrolled: 19959679.267\n    test 1102 antipodal: False\n    test 1103 distanceTo dateline: 9513998\n    test 1104 distanceTo unrolled: 9513998\n    test 1105 distanceTo: 18012714.66\n    test 1106 distanceTo: 20003931.46\n    test 1107 distanceTo3 dateline: 19959679.2674, 161.0677, 18.8252\n    test 1108 distanceTo3 dateline: 9513997.9901, 42.9164, 138.8903\n    test 1109 distanceTo3 dateline: 19959679.2674, 161.0677, 18.8252\n    test 1110 distanceTo3 dateline: 9513997.9901, 42.9164, 138.8903\n    test 1111 intermediateTo: 51.372275°N, 000.707253°E\n    test 1112 intermediateTo: True\n    test 1113 intermediateTo: 404607.806\n./test/testLatLon.py:276: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.ellipsoidalExact.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', p.cosineAndoyerLambertTo(q), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:277: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.ellipsoidalExact.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', q.cosineAndoyerLambertTo(p), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:279: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.ellipsoidalExact.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', p.cosineForsytheAndoyerLambertTo(q), '124801.098' if Sph else '125205.965', fmt='%.3f')\n./test/testLatLon.py:280: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.ellipsoidalExact.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', q.cosineForsytheAndoyerLambertTo(p), '124801.098' if Sph else '125205.965', fmt='%.3f')\n    test 1114 intermediateTo+5: 35.139582°N, 008.994368°E\n    test 1115 intermediateTo+5: 5.000\n    test 1116 intermediateTo-4: 64.894124°N, 013.705689°W\n    test 1117 intermediateTo-4: 4.000\n    test 1118 intermediateTo-h: 125.000\n    test 1119 midpointTo: 50.536583°N, 001.274507°E\n    test 1120 destination: 51.513526°N, 000.098038°W\n    test 1121 destination: 51°30′49″N, 000°05′53″W\n    test 1122 destination: 33°57′N, 118°24′W\n    test 1123 destination: 33.950367°N, 118.399012°W\n    test 1124 destination: 0.592546N, 2.066453W\n    test 1125 destination: 32.11195529°N, 064.56074722°E  FAILED, KNOWN, expected 32.11195529°N, 063.95925278°E\n    test 1126 neareston6: (LatLon(45°00′00.0″N, 001°00′00.0″E), 4755443.4294, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E))\n    test 1127 neareston6: (LatLon(45°30′03.94″N, 002°00′00.0″E), 39078.729285, 1.501072, 2, LatLon(45°00′00.0″N, 002°00′00.0″E), LatLon(46°00′00.0″N, 002°00′00.0″E))\n    test 1128 chordTo: 125203.963\n    test 1129 cosineAndoyerLambertTo: 125205.962\n    test 1130 cosineAndoyerLambertTo: 125205.962\n    test 1131 cosineForsyheAndoyerLambertTo: 125205.965\n    test 1132 cosineForsyheAndoyerLambertTo: 125205.965\n    test 1133 cosineLawTo: 124801.098\n    test 1134 cosineLawTo: 124801.098\n    test 1135 equirectangularTo: 124804.754\n    test 1136 equirectangularTo: 124804.754\n    test 1137 euclideanTo: 130015.089\n    test 1138 euclideanTo: 130015.089\n    test 1139 flatLocalTo: 125209.633\n    test 1140 flatLocalTo: 125209.633\n    test 1141 flatPolarTo: 133663.257\n    test 1142 flatPolarTo: 133663.257\n    test 1143 hartzell: 53.3206°N, 001.7297°W\n    test 1144 hartzell: 53.349541°N, 001.7297°W\n    test 1145 height4: 0.0\n    test 1146 height4: (3820333.9, -115367.0, 5097204.4, -6584.9)\n    test 1147 height4: 53°19′14.2″N, 001°43′46.9″W\n    test 1148 height4: 53°19′14.2″N, 001°43′46.9″W\n    test 1149 haversineTo: 124801.098\n    test 1150 haversineTo: 124801.098\n    test 1151 hubenyTo: <bound method LatLonBase.flatLocalTo of LatLon(53°19′14.16″N, 001°43′46.92″W)>\n    test 1152 hubenyTo: <bound method LatLonBase.flatLocalTo of LatLon(53°11′19.32″N, 000°08′00.24″E)>\n    test 1153 thomasTo: 125206.188\n    test 1154 thomasTo: 125206.188\n    test 1155 vincentysTo: 124801.098\n    test 1156 vincentysTo: 124801.098\n    test 1157 isclockwise: False\n    test 1158 isclockwise*: False\n    test 1159 isclockwise: True\n    test 1160 isclockwise*: True\n    test 1161 isclockwise: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 1162 isclockwise*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 1163 isclockwise: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 1164 isclockwise*: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 1165 isconvex: False\n    test 1166 isconvex*: False\n    test 1167 isconvex: True\n    test 1168 isconvex*: True\n    test 1169 isconvex: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 1170 isconvex*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 1171 isenclosedBy1: True\n    test 1172 isenclosedBy1*: True\n    test 1173 isenclosedBy2: False\n    test 1174 isenclosedBy2*: False\n    test 1175 isenclosedBy3: False\n    test 1176 isenclosedBy3*: False\n    test 1177 isenclosedBy4: False\n    test 1178 isenclosedBy4*: False\n    test 1179 isenclosedBy5: False\n    test 1180 isenclosedBy5*: False\n    test 1181 isenclosedBy6: True\n    test 1182 isenclosedBy6*: True\n    test 1183 isenclosedBy7: True\n    test 1184 isenclosedBy7*: True\n    test 1185 isenclosedBy-CCW: True\n    test 1186 isenclosedBy-CW : True\n    test 1187 isenclosedBy-CCW: True\n    test 1188 initialBearingTo: 102.392291\n    test 1189 compassAngleTo: 100.017\n    test 1190 compassAngleTo: 105.599\n    test 1191 initialBearingTo: 288.676039\n    test 1192 compassAngleTo: 280.017\n    test 1193 compassAngleTo: 285.599\n    test 1194 equirectangularTo: 592.185\n    test 1195 distanceTo: 593.571\n    test 1196 bearingTo: 0.0\n    test 1197 compassAngleTo: 0.0\n    test 1198 bearingTo: 45.2  FAILED, KNOWN, expected 45.0\n    test 1199 compassAngleTo: 45.0\n    test 1200 bearingTo: 90.0\n    test 1201 compassAngleTo: 90.0\n    test 1202 bearingTo: 180.0\n    test 1203 compassAngleTo: 180.0\n    test 1204 bearingTo: 225.2  FAILED, KNOWN, expected 225.0\n    test 1205 compassAngleTo: 225.0\n    test 1206 bearingTo: 314.8  FAILED, KNOWN, expected 315.0\n    test 1207 compassAngleTo: 315.0\n    test 1208 bearingTo: 270.0\n    test 1209 compassAngleTo: 270.0\n    test 1210 bearingTo: 0.0  FAILED, KNOWN, expected 359.4\n    test 1211 compassAngleTo: 359.4\n    test 1212 latlon2: (53.0, 1.0)\n    test 1213 philam2: (0.93, 0.02)\n    test 1214 bearingTo: 31\n    test 1215 compassAngleTo: 31\n    test 1216 compassAngleTo: 45\n\n    test 1217 boundsOf: <class 'pygeodesy.namedTuples.Bounds2Tuple'>\n    test 1218 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 1219 latlon2: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 1220 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 1221 isequalTo: <class 'bool'>\n    test 1222 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 1223 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 1224 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 1225 xyz3: <class 'tuple'>\n    test 1226 xyzh: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 1227 compassAngleTo: <class 'float'>\n    test 1228 cosineLawTo: <class 'float'>\n    test 1229 euclideanTo: <class 'float'>\n    test 1230 flatLocalTo: <class 'float'>\n    test 1231 flatPolarTo: <class 'float'>\n    test 1232 haversineTo: <class 'float'>\n    test 1233 hubenyTo: <class 'float'>\n    test 1234 vincentysTo: <class 'float'>\n    test 1235 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 1236 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 1237 toLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 1238 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 1239 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 1240 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 1241 toNvector: (0.615661, 0.0, 0.788011, 0)\n    test 1242 toVector: (3934960.466675, 0.0, 5002803.345483)\n    test 1243 toVector3d: (0.61823, 0.0, 0.786)\n\n    test 1244 trilaterate5 (pygeodesy.ellipsoidalGeodSolve) .min: 305.091\n    test 1245 trilaterate5 (pygeodesy.ellipsoidalGeodSolve) .point: 42.66933643°N, 002.48620262°E\n    test 1246 trilaterate5 (pygeodesy.ellipsoidalGeodSolve) .max: 1592.545\n    test 1247 trilaterate5 (pygeodesy.ellipsoidalGeodSolve) .point: 42.65141232°N, 002.46816989°E\n    test 1248 trilaterate5 (pygeodesy.ellipsoidalGeodSolve) .n: 3\n    test 1249 trilaterate5 (pygeodesy.ellipsoidalGeodSolve) .min: 127.229\n    test 1250 trilaterate5 (pygeodesy.ellipsoidalGeodSolve) .max: 152.612\n    test 1251 trilaterate5 (pygeodesy.ellipsoidalGeodSolve) .point: 42.67815375°N, 002.49950041°E\n    test 1252 trilaterate5 (pygeodesy.ellipsoidalGeodSolve) .n: 2\n    test 1253 trilaterate5 (pygeodesy.ellipsoidalGeodSolve) .min: 2400.293\n    test 1254 trilaterate5 (pygeodesy.ellipsoidalGeodSolve) .max: 2400.293\n    test 1255 trilaterate5 (pygeodesy.ellipsoidalGeodSolve) .point: 42.66128984°N, 002.47973818°E\n    test 1256 trilaterate5 (pygeodesy.ellipsoidalGeodSolve) .min- is .maxPoint: True\n    test 1257 trilaterate5 (pygeodesy.ellipsoidalGeodSolve) .n: 1\n    test 1258 trilaterate5 (pygeodesy.ellipsoidalGeodSolve) .min: 1343.743\n    test 1259 trilaterate5 (pygeodesy.ellipsoidalGeodSolve) .point: 42.69131964°N, 002.50112167°E\n    test 1260 trilaterate5 (pygeodesy.ellipsoidalGeodSolve) .max: 1445.554\n    test 1261 trilaterate5 (pygeodesy.ellipsoidalGeodSolve) .point: 42.67815375°N, 002.49950041°E\n    test 1262 trilaterate5 (pygeodesy.ellipsoidalGeodSolve) .n: 2\n    test 1263 radii11: Radii11Tuple(rA=7244.792747, rB=1828.106695, rC=2.25502, cR=57792.067128, rIn=57.366968, riS=2.087668, roS=2.443334, a=1830.361715, b=7247.047766, c=9072.899442, s=9075.154461)\n    test 1264 circum3 (pygeodesy.ellipsoidalGeodSolve) .radius: 57792.067\n    test 1265 circum3 (pygeodesy.ellipsoidalGeodSolve) .center: 43.053532°N, 002.943255°E, -261.66m\n    test 1266 circum3 (pygeodesy.ellipsoidalGeodSolve) .deltas: (-0.0, 0.0, 9.827)  FAILED, KNOWN, expected (0.0, 0.0, 11.383)\n    test 1267 circum3 (pygeodesy.ellipsoidalGeodSolve) .d1: 57792.858\n    test 1268 circum3 (pygeodesy.ellipsoidalGeodSolve) .d2: 57792.859\n    test 1269 circum3 (pygeodesy.ellipsoidalGeodSolve) .d3: 57792.859\n    test 1270 circum3 (pygeodesy.ellipsoidalGeodSolve) .datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 1271 circum3 (pygeodesy.ellipsoidalGeodSolve) .Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n\n    test 1272 radii11: Radii11Tuple(rA=7244.792747, rB=1828.106695, rC=2.25502, cR=57792.067128, rIn=57.366968, riS=2.087668, roS=2.443334, a=1830.361715, b=7247.047766, c=9072.899442, s=9075.154461)\n    test 1273 circum4 (pygeodesy.ellipsoidalGeodSolve) .radius: 3184256.748\n    test 1274 circum4 (pygeodesy.ellipsoidalGeodSolve) .center: 43.054367°N, 002.942573°E, -3183993.92m\n    test 1275 circum4 (pygeodesy.ellipsoidalGeodSolve) .rank: 3\n    test 1276 circum4 (pygeodesy.ellipsoidalGeodSolve) .residuals: ()\n    test 1277 circum4 (pygeodesy.ellipsoidalGeodSolve) .d1: 57818.033\n    test 1278 circum4 (pygeodesy.ellipsoidalGeodSolve) .d2: 57834.176\n    test 1279 circum4 (pygeodesy.ellipsoidalGeodSolve) .d3: 57830.992\n    test 1280 circum4 (pygeodesy.ellipsoidalGeodSolve) .datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 1281 circum4 (pygeodesy.ellipsoidalGeodSolve) .Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 1282 radii11: Radii11Tuple(rA=327537.482637, rB=776914.262482, rC=784245.052526, cR=780602.180901, rIn=325058.721103, riS=84975.664195, roS=INF, a=1561159.315008, b=1111782.535163, c=1104451.745119, s=1888696.797645)\n    test 1283 circin6 (pygeodesy.ellipsoidalGeodSolve) .rB+rC: 1561159.315\n    test 1284 circin6 (pygeodesy.ellipsoidalGeodSolve) .rC+pA: 1111782.535\n    test 1285 circin6 (pygeodesy.ellipsoidalGeodSolve) .rA+rB: 1104451.745\n    test 1286 circin6 (pygeodesy.ellipsoidalGeodSolve) .radius: 325058.721\n    test 1287 circin6 (pygeodesy.ellipsoidalGeodSolve) .center: 02.948531°N, 002.932537°E, -40041.19m\n    test 1288 circin6 (pygeodesy.ellipsoidalGeodSolve) .deltas: (0.0, 0.0, 0.224326)  FAILED, KNOWN, expected (0.0, 0.0, 0.090491)\n    test 1289 circin6 (pygeodesy.ellipsoidalGeodSolve) .cA: 05.04314°N, 005.014578°E, -48104.09m\n    test 1290 circin6 (pygeodesy.ellipsoidalGeodSolve) .cB: 00.0°N, 002.941713°E, -20168.62m\n    test 1291 circin6 (pygeodesy.ellipsoidalGeodSolve) .cC: 02.961566°N, 000.0°E, -20113.46m\n    test 1292 circin6 (pygeodesy.ellipsoidalGeodSolve) .dA: 327263.596\n    test 1293 circin6 (pygeodesy.ellipsoidalGeodSolve) .dB: 326036.153\n    test 1294 circin6 (pygeodesy.ellipsoidalGeodSolve) .dC: 326020.432\n\n    test 1295 area cw/ccw: 1.0\n\n    testLatLon(pygeodesy.ellipsoidalExact, 25.08.28)\n    test 1296 isEllipsoidal: True\n    test 1297 isSpherical: False\n    test 1298 lat/lonDMS: 52.20472°N, 000.14056°E\n    test 1299 lat/lonDMS F_DM: 52°12.283′N, 000°08.434′E\n    test 1300 lat/lonDMS F_DM: 52°12.2832′N, 000°08.4336′E\n    test 1301 lat/lonDMS F_DMS: 52°12′17″N, 000°08′26″E\n    test 1302 lat/lonDMS F_DMS: 52°12′17.0″N, 000°08′26.0″E\n    test 1303 lat/lonDMS F_RAD: 0.911144N, 0.002453E\n    test 1304 isequalTo: True\n    test 1305 isequalTo: True\n    test 1306 latlon2: 52.20472, 0.14056\n    test 1307 latlon2: 52.2047, 0.1406\n    test 1308 latlon2: 52.205, 0.141\n    test 1309 latlon2: 52.2, 0.14\n    test 1310 latlon2: 52.2, 0.1\n    test 1311 latlon2: 52.0, 0.0\n    test 1312 chordTo: 12029263.15\n    test 1313 chordTo: 12029049.69\n    test 1314 initialBearingTo: 156.1106\n    test 1315 initialBearingTo: 65.9335\n    test 1316 initialBearingTo: 0.0\n    test 1317 initialBearingTo: 180.0\n    test 1318 finalBearingTo: 157.8345\n    test 1319 finalBearingTo: 93.9034\n    test 1320 bearingTo2: 156.1106, 157.8345\n    test 1321 ispolar: True\n    test 1322 copy: True\n    test 1323 __eq__: True\n    test 1324 __ne__: False\n    test 1325 equirectangularTo: 404329.56\n    test 1326 distanceTo: 404607.805988\n    test 1327 distanceTo: 404607.805988\n    test 1328 distanceTo: 3981601\n    test 1329 antipodal: False\n    test 1330 distanceTo dateline: 19959679.267\n    test 1331 distanceTo unrolled: 19959679.267\n    test 1332 antipodal: False\n    test 1333 distanceTo dateline: 9513998\n    test 1334 distanceTo unrolled: 9513998\n    test 1335 distanceTo: 18012714.66\n    test 1336 distanceTo: 20003931.46\n    test 1337 distanceTo3 dateline: 19959679.2674, 161.0677, 18.8252\n    test 1338 distanceTo3 dateline: 9513997.9901, 42.9164, 138.8903\n    test 1339 distanceTo3 dateline: 19959679.2674, 161.0677, 18.8252\n    test 1340 distanceTo3 dateline: 9513997.9901, 42.9164, 138.8903\n    test 1341 intermediateTo: 51.372275°N, 000.707253°E\n    test 1342 intermediateTo: True\n    test 1343 intermediateTo: 404607.806\n    test 1344 intermediateTo+5: 35.139582°N, 008.994368°E\n    test 1345 intermediateTo+5: 5.000\n    test 1346 intermediateTo-4: 64.894124°N, 013.705689°W\n    test 1347 intermediateTo-4: 4.000\n    test 1348 intermediateTo-h: 125.000\n    test 1349 midpointTo: 50.536583°N, 001.274507°E\n    test 1350 destination: 51.513526°N, 000.098038°W\n    test 1351 destination: 51°30′49″N, 000°05′53″W\n    test 1352 destination: 33°57′N, 118°24′W\n    test 1353 destination: 33.950367°N, 118.399012°W\n    test 1354 destination: 0.592546N, 2.066453W\n    test 1355 destination: 32.11195529°N, 064.56074722°E  FAILED, KNOWN, expected 32.11195529°N, 063.95925278°E\n    test 1356 neareston6: (LatLon(45°00′00.0″N, 001°00′00.0″E), 4755443.4294, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E))\n    test 1357 neareston6: (LatLon(45°30′03.94″N, 002°00′00.0″E), 39078.729285, 1.501072, 2, LatLon(45°00′00.0″N, 002°00′00.0″E), LatLon(46°00′00.0″N, 002°00′00.0″E))\n    test 1358 chordTo: 125203.963\n    test 1359 cosineAndoyerLambertTo: 125205.962\n    test 1360 cosineAndoyerLambertTo: 125205.962\n    test 1361 cosineForsyheAndoyerLambertTo: 125205.965\n    test 1362 cosineForsyheAndoyerLambertTo: 125205.965\n    test 1363 cosineLawTo: 124801.098\n    test 1364 cosineLawTo: 124801.098\n    test 1365 equirectangularTo: 124804.754\n    test 1366 equirectangularTo: 124804.754\n    test 1367 euclideanTo: 130015.089\n    test 1368 euclideanTo: 130015.089\n    test 1369 flatLocalTo: 125209.633\n    test 1370 flatLocalTo: 125209.633\n    test 1371 flatPolarTo: 133663.257\n    test 1372 flatPolarTo: 133663.257\n    test 1373 hartzell: 53.3206°N, 001.7297°W\n    test 1374 hartzell: 53.349541°N, 001.7297°W\n    test 1375 height4: 0.0\n    test 1376 height4: (3820333.9, -115367.0, 5097204.4, -6584.9)\n    test 1377 height4: 53°19′14.2″N, 001°43′46.9″W\n    test 1378 height4: 53°19′14.2″N, 001°43′46.9″W\n    test 1379 haversineTo: 124801.098\n    test 1380 haversineTo: 124801.098\n    test 1381 hubenyTo: <bound method LatLonBase.flatLocalTo of LatLon(53°19′14.16″N, 001°43′46.92″W)>\n    test 1382 hubenyTo: <bound method LatLonBase.flatLocalTo of LatLon(53°11′19.32″N, 000°08′00.24″E)>\n    test 1383 thomasTo: 125206.188\n    test 1384 thomasTo: 125206.188\n    test 1385 vincentysTo: 124801.098\n    test 1386 vincentysTo: 124801.098\n    test 1387 isclockwise: False\n    test 1388 isclockwise*: False\n    test 1389 isclockwise: True\n    test 1390 isclockwise*: True\n    test 1391 isclockwise: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 1392 isclockwise*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 1393 isclockwise: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 1394 isclockwise*: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 1395 isconvex: False\n    test 1396 isconvex*: False\n    test 1397 isconvex: True\n    test 1398 isconvex*: True\n    test 1399 isconvex: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 1400 isconvex*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 1401 isenclosedBy1: True\n    test 1402 isenclosedBy1*: True\n    test 1403 isenclosedBy2: False\n    test 1404 isenclosedBy2*: False\n    test 1405 isenclosedBy3: False\n    test 1406 isenclosedBy3*: False\n    test 1407 isenclosedBy4: False\n    test 1408 isenclosedBy4*: False\n    test 1409 isenclosedBy5: False\n    test 1410 isenclosedBy5*: False\n    test 1411 isenclosedBy6: True\n    test 1412 isenclosedBy6*: True\n    test 1413 isenclosedBy7: True\n    test 1414 isenclosedBy7*: True\n    test 1415 isenclosedBy-CCW: True\n    test 1416 isenclosedBy-CW : True\n    test 1417 isenclosedBy-CCW: True\n    test 1418 initialBearingTo: 102.392291\n    test 1419 compassAngleTo: 100.017\n    test 1420 compassAngleTo: 105.599\n    test 1421 initialBearingTo: 288.676039\n    test 1422 compassAngleTo: 280.017\n    test 1423 compassAngleTo: 285.599\n    test 1424 equirectangularTo: 592.185\n    test 1425 distanceTo: 593.571\n    test 1426 bearingTo: 0.0\n    test 1427 compassAngleTo: 0.0\n    test 1428 bearingTo: 45.2  FAILED, KNOWN, expected 45.0\n    test 1429 compassAngleTo: 45.0\n    test 1430 bearingTo: 90.0\n    test 1431 compassAngleTo: 90.0\n    test 1432 bearingTo: 180.0\n    test 1433 compassAngleTo: 180.0\n    test 1434 bearingTo: 225.2  FAILED, KNOWN, expected 225.0\n    test 1435 compassAngleTo: 225.0\n    test 1436 bearingTo: 314.8  FAILED, KNOWN, expected 315.0\n    test 1437 compassAngleTo: 315.0\n    test 1438 bearingTo: 270.0\n    test 1439 compassAngleTo: 270.0\n    test 1440 bearingTo: 0.0  FAILED, KNOWN, expected 359.4\n    test 1441 compassAngleTo: 359.4\n    test 1442 latlon2: (53.0, 1.0)\n    test 1443 philam2: (0.93, 0.02)\n    test 1444 bearingTo: 31\n    test 1445 compassAngleTo: 31\n    test 1446 compassAngleTo: 45\n\n    test 1447 boundsOf: <class 'pygeodesy.namedTuples.Bounds2Tuple'>\n    test 1448 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 1449 latlon2: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 1450 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 1451 isequalTo: <class 'bool'>\n    test 1452 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 1453 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 1454 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 1455 xyz3: <class 'tuple'>\n    test 1456 xyzh: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 1457 compassAngleTo: <class 'float'>\n    test 1458 cosineLawTo: <class 'float'>\n    test 1459 euclideanTo: <class 'float'>\n    test 1460 flatLocalTo: <class 'float'>\n    test 1461 flatPolarTo: <class 'float'>\n    test 1462 haversineTo: <class 'float'>\n    test 1463 hubenyTo: <class 'float'>\n    test 1464 vincentysTo: <class 'float'>\n    test 1465 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 1466 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 1467 toLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 1468 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 1469 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 1470 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 1471 toNvector: (0.615661, 0.0, 0.788011, 0)\n    test 1472 toVector: (3934960.466675, 0.0, 5002803.345483)\n    test 1473 toVector3d: (0.61823, 0.0, 0.786)\n\n    test 1474 trilaterate5 (pygeodesy.ellipsoidalExact) .min: 305.091\n    test 1475 trilaterate5 (pygeodesy.ellipsoidalExact) .point: 42.66933643°N, 002.48620262°E\n    test 1476 trilaterate5 (pygeodesy.ellipsoidalExact) .max: 1592.545\n    test 1477 trilaterate5 (pygeodesy.ellipsoidalExact) .point: 42.65141232°N, 002.46816989°E\n    test 1478 trilaterate5 (pygeodesy.ellipsoidalExact) .n: 3\n    test 1479 trilaterate5 (pygeodesy.ellipsoidalExact) .min: 127.229\n    test 1480 trilaterate5 (pygeodesy.ellipsoidalExact) .max: 152.612\n    test 1481 trilaterate5 (pygeodesy.ellipsoidalExact) .point: 42.67815375°N, 002.49950041°E\n    test 1482 trilaterate5 (pygeodesy.ellipsoidalExact) .n: 2\n    test 1483 trilaterate5 (pygeodesy.ellipsoidalExact) .min: 2400.293\n    test 1484 trilaterate5 (pygeodesy.ellipsoidalExact) .max: 2400.293\n    test 1485 trilaterate5 (pygeodesy.ellipsoidalExact) .point: 42.66128984°N, 002.47973818°E\n    test 1486 trilaterate5 (pygeodesy.ellipsoidalExact) .min- is .maxPoint: True\n    test 1487 trilaterate5 (pygeodesy.ellipsoidalExact) .n: 1\n    test 1488 trilaterate5 (pygeodesy.ellipsoidalExact) .min: 1343.743\n    test 1489 trilaterate5 (pygeodesy.ellipsoidalExact) .point: 42.69131964°N, 002.50112167°E\n    test 1490 trilaterate5 (pygeodesy.ellipsoidalExact) .max: 1445.554\n    test 1491 trilaterate5 (pygeodesy.ellipsoidalExact) .point: 42.67815375°N, 002.49950041°E\n    test 1492 trilaterate5 (pygeodesy.ellipsoidalExact) .n: 2\n    test 1493 radii11: Radii11Tuple(rA=7244.792747, rB=1828.106695, rC=2.25502, cR=57792.067128, rIn=57.366968, riS=2.087668, roS=2.443334, a=1830.361715, b=7247.047766, c=9072.899442, s=9075.154461)\n    test 1494 circum3 (pygeodesy.ellipsoidalExact) .radius: 57792.067\n    test 1495 circum3 (pygeodesy.ellipsoidalExact) .center: 43.053532°N, 002.943255°E, -261.66m\n    test 1496 circum3 (pygeodesy.ellipsoidalExact) .deltas: (-0.0, 0.0, 9.827)  FAILED, KNOWN, expected (0.0, 0.0, 11.383)\n    test 1497 circum3 (pygeodesy.ellipsoidalExact) .d1: 57792.858\n    test 1498 circum3 (pygeodesy.ellipsoidalExact) .d2: 57792.859\n    test 1499 circum3 (pygeodesy.ellipsoidalExact) .d3: 57792.859\n    test 1500 circum3 (pygeodesy.ellipsoidalExact) .datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 1501 circum3 (pygeodesy.ellipsoidalExact) .Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n\n    test 1502 radii11: Radii11Tuple(rA=7244.792747, rB=1828.106695, rC=2.25502, cR=57792.067128, rIn=57.366968, riS=2.087668, roS=2.443334, a=1830.361715, b=7247.047766, c=9072.899442, s=9075.154461)\n    test 1503 circum4 (pygeodesy.ellipsoidalExact) .radius: 3184256.748\n    test 1504 circum4 (pygeodesy.ellipsoidalExact) .center: 43.054367°N, 002.942573°E, -3183993.92m\n    test 1505 circum4 (pygeodesy.ellipsoidalExact) .rank: 3\n    test 1506 circum4 (pygeodesy.ellipsoidalExact) .residuals: ()\n    test 1507 circum4 (pygeodesy.ellipsoidalExact) .d1: 57818.033\n    test 1508 circum4 (pygeodesy.ellipsoidalExact) .d2: 57834.176\n    test 1509 circum4 (pygeodesy.ellipsoidalExact) .d3: 57830.992\n    test 1510 circum4 (pygeodesy.ellipsoidalExact) .datum: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 1511 circum4 (pygeodesy.ellipsoidalExact) .Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 1512 radii11: Radii11Tuple(rA=327537.482637, rB=776914.262482, rC=784245.052526, cR=780602.180901, rIn=325058.721103, riS=84975.664195, roS=INF, a=1561159.315008, b=1111782.535163, c=1104451.745119, s=1888696.797645)\n    test 1513 circin6 (pygeodesy.ellipsoidalExact) .rB+rC: 1561159.315\n    test 1514 circin6 (pygeodesy.ellipsoidalExact) .rC+pA: 1111782.535\n    test 1515 circin6 (pygeodesy.ellipsoidalExact) .rA+rB: 1104451.745\n    test 1516 circin6 (pygeodesy.ellipsoidalExact) .radius: 325058.721\n    test 1517 circin6 (pygeodesy.ellipsoidalExact) .center: 02.948531°N, 002.932537°E, -40041.19m\n    test 1518 circin6 (pygeodesy.ellipsoidalExact) .deltas: (0.0, 0.0, 0.224326)  FAILED, KNOWN, expected (0.0, 0.0, 0.090491)\n    test 1519 circin6 (pygeodesy.ellipsoidalExact) .cA: 05.04314°N, 005.014578°E, -48104.09m\n    test 1520 circin6 (pygeodesy.ellipsoidalExact) .cB: 00.0°N, 002.941713°E, -20168.62m\n    test 1521 circin6 (pygeodesy.ellipsoidalExact) .cC: 02.961566°N, 000.0°E, -20113.46m\n    test 1522 circin6 (pygeodesy.ellipsoidalExact) .dA: 327263.596\n    test 1523 circin6 (pygeodesy.ellipsoidalExact) .dB: 326036.153\n    test 1524 circin6 (pygeodesy.ellipsoidalExact) .dC: 326020.432\n\n    test 1525 area cw/ccw: 1.0\n\n    341 of 1525 testLatLon.py tests (22.4%) FAILED, incl. 125 KNOWN plus 216 DeprecationWarnings (pygeodesy 26.3.26 Python 3.13.12 64bit arm64 coverage 7.10.7 geographiclib 2.1 numpy 2.3.3 scipy 1.16.2 Math 2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 macOS 26.3.1 isLazy 1 -W  default) 17.377 sec\nrunning /Library/Framewo....n3.13 -W default ~/PyGeodesy/test/testLatLonBase.py\n\n    testing testLatLonBase.py 23.10.15 isLazy=1\n\n    testLatLon(pygeodesy.sphericalNvector, 25.05.27)\n    test 1 lat, lon: 50.06632°N, 005.71475°W\n    test 2 lat, lon: 50.066389°N, 005.714722°W\n    test 3 isequalTo: True\n    test 4 isequalTo3: True\n    test 5 latlon: (52.205, 0.119)\n    test 6 latlonheight: (52.205, 0.119, 0)\n    test 7 phimlam: (0.911149, 0.002077)\n    test 8 phimlamheight: (0.911149, 0.002077, 0)\n    test 9 isequalTo: False\n    test 10 antipode1: 52.205°S, 179.881°W\n    test 11 antipode2: True\n    test 12 antipode3: 52.205°N, 000.119°E\n    test 13 antipode4: True\n    test 14 antipode5: 52.205°N, 000.119°E\n    test 15 isnormal1: True\n    test 16 isnormal2: False\n    test 17 normal1: False\n    test 18 normal2: True\n    test 19 toStr: 51°28′40″N, 000°00′06″W\n    test 20 toStr: 51.4778°N, 000.0016°W\n    test 21 precision: 0\n    test 22 toStr: 51°28′40″N, 000°00′06″W, +42.00m\n    test 23 isequalTo: True\n    test 24 isequalTo3: False\n    test 25 latlon: (51.4778, -0.0016)\n    test 26 phimlam: (0.898457, -0.000028)\n    test 27 isequalTo: True\n    test 28 isequalTo3: True\n    test 29 latlon: (51.4778, -0.0016)\n    test 30 latlonheight: (51.4778, -0.0016, 42.0)\n    test 31 phimlam: (0.898457, -0.000028)\n    test 32 phimlamheight: (0.898457, -0.000028, 42.0)\n    test 33 latlon: LatLon2Tuple(lat=51.4778, lon=-0.0016)\n    test 34 latlonheight: LatLon3Tuple(lat=51.4778, lon=-0.0016, height=42.0)\n    test 35 phimlam: PhiLam2Tuple(phi=0.898457, lam=-0.000028)\n    test 36 phimlamheight: PhiLam3Tuple(phi=0.898457, lam=-0.000028, height=42.0)\n    test 37 ellipsoidalLatLon: True\n    test 38 sphericalLatLon: True\n\n    test 39 rhumbLine: TMorder=6, azi12=30.0, exact=False, lat1=51.4778, lon1=-0.0016, rhumb=Rhumb....ere', a=6371008.771415, f=0, f_=0, b=6371008.771415), k0=0.9996, TMorder=6)\n    test 40 rhumbLine: TMorder=6, azi12=105.484906, exact=False, lat1=51.4778, lon1=-0.0016, rhumb....ere', a=6371008.771415, f=0, f_=0, b=6371008.771415), k0=0.9996, TMorder=6)\n    test 41 rhumbAzimuthTo: 107.563\n    test 42 rhumbDestination: 50.964155°N, 001.853°E\n    test 43 rhumbDestination: True\n    test 44 rhumbDistanceTo: 42186.1\n    test 45 rhumbIntersecant2: (LatLon(58°40′08.68″N, 042°42′40.63″E), LatLon(18°47′05.09″N, 011°00′15.53″W))\n    test 46 rhumbMidpointo-0.5: 51.069759°N, 001.625988°E\n    test 47 rhumbMidpointo: True\n    test 48 rhumbMidpointo-0.0: 51.127°N, 001.338°E\n    test 49 rhumbMidpointo-0.25: 51.09838°N, 001.482038°E\n    test 50 rhumbMidpointo-0.75: 51.041139°N, 001.769848°E\n    test 51 rhumbMidpointo-1.0: 51.012519°N, 001.913619°E\n    test 52 rhumbMidpointo-2.0: 50.898038°N, 002.48782°E\n\n    testLatLon(pygeodesy.sphericalTrigonometry, 25.08.31)\n    test 53 lat, lon: 50.06632°N, 005.71475°W\n    test 54 lat, lon: 50.066389°N, 005.714722°W\n    test 55 isequalTo: True\n    test 56 isequalTo3: True\n    test 57 latlon: (52.205, 0.119)\n    test 58 latlonheight: (52.205, 0.119, 0)\n    test 59 phimlam: (0.911149, 0.002077)\n    test 60 phimlamheight: (0.911149, 0.002077, 0)\n    test 61 isequalTo: False\n    test 62 antipode1: 52.205°S, 179.881°W\n    test 63 antipode2: True\n    test 64 antipode3: 52.205°N, 000.119°E\n    test 65 antipode4: True\n    test 66 antipode5: 52.205°N, 000.119°E\n    test 67 isnormal1: True\n    test 68 isnormal2: False\n    test 69 normal1: False\n    test 70 normal2: True\n    test 71 toStr: 51°28′40″N, 000°00′06″W\n    test 72 toStr: 51.4778°N, 000.0016°W\n    test 73 precision: 0\n    test 74 toStr: 51°28′40″N, 000°00′06″W, +42.00m\n    test 75 isequalTo: True\n    test 76 isequalTo3: False\n    test 77 latlon: (51.4778, -0.0016)\n    test 78 phimlam: (0.898457, -0.000028)\n    test 79 isequalTo: True\n    test 80 isequalTo3: True\n    test 81 latlon: (51.4778, -0.0016)\n    test 82 latlonheight: (51.4778, -0.0016, 42.0)\n    test 83 phimlam: (0.898457, -0.000028)\n    test 84 phimlamheight: (0.898457, -0.000028, 42.0)\n    test 85 latlon: LatLon2Tuple(lat=51.4778, lon=-0.0016)\n    test 86 latlonheight: LatLon3Tuple(lat=51.4778, lon=-0.0016, height=42.0)\n    test 87 phimlam: PhiLam2Tuple(phi=0.898457, lam=-0.000028)\n    test 88 phimlamheight: PhiLam3Tuple(phi=0.898457, lam=-0.000028, height=42.0)\n    test 89 ellipsoidalLatLon: True\n    test 90 sphericalLatLon: True\n\n    test 91 rhumbLine: TMorder=6, azi12=30.0, exact=False, lat1=51.4778, lon1=-0.0016, rhumb=Rhumb....ere', a=6371008.771415, f=0, f_=0, b=6371008.771415), k0=0.9996, TMorder=6)\n    test 92 rhumbLine: TMorder=6, azi12=105.484906, exact=False, lat1=51.4778, lon1=-0.0016, rhumb....ere', a=6371008.771415, f=0, f_=0, b=6371008.771415), k0=0.9996, TMorder=6)\n    test 93 rhumbAzimuthTo: 107.563\n    test 94 rhumbDestination: 50.964155°N, 001.853°E\n    test 95 rhumbDestination: True\n    test 96 rhumbDistanceTo: 42186.1\n    test 97 rhumbIntersecant2: (LatLon(58°40′08.68″N, 042°42′40.63″E), LatLon(18°47′05.09″N, 011°00′15.53″W))\n    test 98 rhumbMidpointo-0.5: 51.069759°N, 001.625988°E\n    test 99 rhumbMidpointo: True\n    test 100 rhumbMidpointo-0.0: 51.127°N, 001.338°E\n    test 101 rhumbMidpointo-0.25: 51.09838°N, 001.482038°E\n    test 102 rhumbMidpointo-0.75: 51.041139°N, 001.769848°E\n    test 103 rhumbMidpointo-1.0: 51.012519°N, 001.913619°E\n    test 104 rhumbMidpointo-2.0: 50.898038°N, 002.48782°E\n\n    testLatLon(pygeodesy.ellipsoidalNvector, 25.05.12)\n    test 105 lat, lon: 50.06632°N, 005.71475°W\n    test 106 lat, lon: 50.066389°N, 005.714722°W\n    test 107 isequalTo: True\n    test 108 isequalTo3: True\n    test 109 latlon: (52.205, 0.119)\n    test 110 latlonheight: (52.205, 0.119, 0)\n    test 111 phimlam: (0.911149, 0.002077)\n    test 112 phimlamheight: (0.911149, 0.002077, 0)\n    test 113 isequalTo: False\n    test 114 antipode1: 52.205°S, 179.881°W\n    test 115 antipode2: True\n    test 116 antipode3: 52.205°N, 000.119°E\n    test 117 antipode4: True\n    test 118 antipode5: 52.205°N, 000.119°E\n    test 119 isnormal1: True\n    test 120 isnormal2: False\n    test 121 normal1: False\n    test 122 normal2: True\n    test 123 toStr: 51°28′40″N, 000°00′06″W\n    test 124 toStr: 51.4778°N, 000.0016°W\n    test 125 precision: 0\n    test 126 toStr: 51°28′40″N, 000°00′06″W, +42.00m\n    test 127 isequalTo: True\n    test 128 isequalTo3: False\n    test 129 latlon: (51.4778, -0.0016)\n    test 130 phimlam: (0.898457, -0.000028)\n    test 131 isequalTo: True\n    test 132 isequalTo3: True\n    test 133 latlon: (51.4778, -0.0016)\n    test 134 latlonheight: (51.4778, -0.0016, 42.0)\n    test 135 phimlam: (0.898457, -0.000028)\n    test 136 phimlamheight: (0.898457, -0.000028, 42.0)\n    test 137 latlon: LatLon2Tuple(lat=51.4778, lon=-0.0016)\n    test 138 latlonheight: LatLon3Tuple(lat=51.4778, lon=-0.0016, height=42.0)\n    test 139 phimlam: PhiLam2Tuple(phi=0.898457, lam=-0.000028)\n    test 140 phimlamheight: PhiLam3Tuple(phi=0.898457, lam=-0.000028, height=42.0)\n    test 141 ellipsoidalLatLon: True\n    test 142 sphericalLatLon: True\n\n    test 143 rhumbLine: TMorder=6, azi12=30.0, exact=False, lat1=51.4778, lon1=-0.0016, rhumb=Rhumb...., f=0.00335281, f_=298.25722356, b=6356752.31424518), k0=0.9996, TMorder=6)\n    test 144 rhumbLine: TMorder=6, azi12=113.805696, exact=False, lat1=51.4778, lon1=-0.0016, rhumb...., f=0.00335281, f_=298.25722356, b=6356752.31424518), k0=0.9996, TMorder=6)\n    test 145 rhumbAzimuthTo: 116.661\n    test 146 rhumbDestination: 50.964234°N, 001.851383°E\n    test 147 rhumbDestination: True\n    test 148 rhumbDistanceTo: 40413.1\n    test 149 rhumbIntersecant2: (LatLon(58°59′33.52″N, 043°11′56.62″E), LatLon(20°25′12.01″N, 009°12′37.27″W))\n    test 150 rhumbMidpointo-0.5: 51.045501°N, 001.595726°E\n    test 151 rhumbMidpointo: True\n    test 152 rhumbMidpointo-0.0: 51.127°N, 001.338°E\n    test 153 rhumbMidpointo-0.25: 51.08625°N, 001.46692°E\n    test 154 rhumbMidpointo-0.75: 51.00475°N, 001.724419°E\n    test 155 rhumbMidpointo-1.0: 50.964°N, 001.853°E\n    test 156 rhumbMidpointo-2.0: 50.800995°N, 002.366201°E\n\n    testLatLon(pygeodesy.ellipsoidalVincenty, 25.05.26)\n    test 157 lat, lon: 50.06632°N, 005.71475°W\n    test 158 lat, lon: 50.066389°N, 005.714722°W\n    test 159 isequalTo: True\n    test 160 isequalTo3: True\n    test 161 latlon: (52.205, 0.119)\n    test 162 latlonheight: (52.205, 0.119, 0)\n    test 163 phimlam: (0.911149, 0.002077)\n    test 164 phimlamheight: (0.911149, 0.002077, 0)\n    test 165 isequalTo: False\n    test 166 antipode1: 52.205°S, 179.881°W\n    test 167 antipode2: True\n    test 168 antipode3: 52.205°N, 000.119°E\n    test 169 antipode4: True\n    test 170 antipode5: 52.205°N, 000.119°E\n    test 171 isnormal1: True\n    test 172 isnormal2: False\n    test 173 normal1: False\n    test 174 normal2: True\n    test 175 toStr: 51°28′40″N, 000°00′06″W\n    test 176 toStr: 51.4778°N, 000.0016°W\n    test 177 precision: 0\n    test 178 toStr: 51°28′40″N, 000°00′06″W, +42.00m\n    test 179 isequalTo: True\n    test 180 isequalTo3: False\n    test 181 latlon: (51.4778, -0.0016)\n    test 182 phimlam: (0.898457, -0.000028)\n    test 183 isequalTo: True\n    test 184 isequalTo3: True\n    test 185 latlon: (51.4778, -0.0016)\n    test 186 latlonheight: (51.4778, -0.0016, 42.0)\n    test 187 phimlam: (0.898457, -0.000028)\n    test 188 phimlamheight: (0.898457, -0.000028, 42.0)\n    test 189 latlon: LatLon2Tuple(lat=51.4778, lon=-0.0016)\n    test 190 latlonheight: LatLon3Tuple(lat=51.4778, lon=-0.0016, height=42.0)\n    test 191 phimlam: PhiLam2Tuple(phi=0.898457, lam=-0.000028)\n    test 192 phimlamheight: PhiLam3Tuple(phi=0.898457, lam=-0.000028, height=42.0)\n    test 193 ellipsoidalLatLon: True\n    test 194 sphericalLatLon: True\n\n    test 195 rhumbLine: TMorder=6, azi12=30.0, exact=False, lat1=51.4778, lon1=-0.0016, rhumb=Rhumb...., f=0.00335281, f_=298.25722356, b=6356752.31424518), k0=0.9996, TMorder=6)\n    test 196 rhumbLine: TMorder=6, azi12=113.805696, exact=False, lat1=51.4778, lon1=-0.0016, rhumb...., f=0.00335281, f_=298.25722356, b=6356752.31424518), k0=0.9996, TMorder=6)\n    test 197 rhumbAzimuthTo: 116.661\n    test 198 rhumbDestination: 50.964234°N, 001.851383°E\n    test 199 rhumbDestination: True\n    test 200 rhumbDistanceTo: 40413.1\n    test 201 rhumbIntersecant2: (LatLon(58°59′33.52″N, 043°11′56.62″E), LatLon(20°25′12.01″N, 009°12′37.27″W))\n    test 202 rhumbMidpointo-0.5: 51.045501°N, 001.595726°E\n    test 203 rhumbMidpointo: True\n    test 204 rhumbMidpointo-0.0: 51.127°N, 001.338°E\n    test 205 rhumbMidpointo-0.25: 51.08625°N, 001.46692°E\n    test 206 rhumbMidpointo-0.75: 51.00475°N, 001.724419°E\n    test 207 rhumbMidpointo-1.0: 50.964°N, 001.853°E\n    test 208 rhumbMidpointo-2.0: 50.800995°N, 002.366201°E\n\n    testLatLon(pygeodesy.ellipsoidalKarney, 25.05.27)\n    test 209 lat, lon: 50.06632°N, 005.71475°W\n    test 210 lat, lon: 50.066389°N, 005.714722°W\n    test 211 isequalTo: True\n    test 212 isequalTo3: True\n    test 213 latlon: (52.205, 0.119)\n    test 214 latlonheight: (52.205, 0.119, 0)\n    test 215 phimlam: (0.911149, 0.002077)\n    test 216 phimlamheight: (0.911149, 0.002077, 0)\n    test 217 isequalTo: False\n    test 218 antipode1: 52.205°S, 179.881°W\n    test 219 antipode2: True\n    test 220 antipode3: 52.205°N, 000.119°E\n    test 221 antipode4: True\n    test 222 antipode5: 52.205°N, 000.119°E\n    test 223 isnormal1: True\n    test 224 isnormal2: False\n    test 225 normal1: False\n    test 226 normal2: True\n    test 227 toStr: 51°28′40″N, 000°00′06″W\n    test 228 toStr: 51.4778°N, 000.0016°W\n    test 229 precision: 0\n    test 230 toStr: 51°28′40″N, 000°00′06″W, +42.00m\n    test 231 isequalTo: True\n    test 232 isequalTo3: False\n    test 233 latlon: (51.4778, -0.0016)\n    test 234 phimlam: (0.898457, -0.000028)\n    test 235 isequalTo: True\n    test 236 isequalTo3: True\n    test 237 latlon: (51.4778, -0.0016)\n    test 238 latlonheight: (51.4778, -0.0016, 42.0)\n    test 239 phimlam: (0.898457, -0.000028)\n    test 240 phimlamheight: (0.898457, -0.000028, 42.0)\n    test 241 latlon: LatLon2Tuple(lat=51.4778, lon=-0.0016)\n    test 242 latlonheight: LatLon3Tuple(lat=51.4778, lon=-0.0016, height=42.0)\n    test 243 phimlam: PhiLam2Tuple(phi=0.898457, lam=-0.000028)\n    test 244 phimlamheight: PhiLam3Tuple(phi=0.898457, lam=-0.000028, height=42.0)\n    test 245 ellipsoidalLatLon: True\n    test 246 sphericalLatLon: True\n\n    test 247 rhumbLine: TMorder=6, azi12=30.0, exact=False, lat1=51.4778, lon1=-0.0016, rhumb=Rhumb...., f=0.00335281, f_=298.25722356, b=6356752.31424518), k0=0.9996, TMorder=6)\n    test 248 rhumbLine: TMorder=6, azi12=113.805696, exact=False, lat1=51.4778, lon1=-0.0016, rhumb...., f=0.00335281, f_=298.25722356, b=6356752.31424518), k0=0.9996, TMorder=6)\n    test 249 rhumbAzimuthTo: 116.661\n    test 250 rhumbDestination: 50.964234°N, 001.851383°E\n    test 251 rhumbDestination: True\n    test 252 rhumbDistanceTo: 40413.1\n    test 253 rhumbIntersecant2: (LatLon(58°59′33.52″N, 043°11′56.62″E), LatLon(20°25′12.01″N, 009°12′37.27″W))\n    test 254 rhumbMidpointo-0.5: 51.045501°N, 001.595726°E\n    test 255 rhumbMidpointo: True\n    test 256 rhumbMidpointo-0.0: 51.127°N, 001.338°E\n    test 257 rhumbMidpointo-0.25: 51.08625°N, 001.46692°E\n    test 258 rhumbMidpointo-0.75: 51.00475°N, 001.724419°E\n    test 259 rhumbMidpointo-1.0: 50.964°N, 001.853°E\n    test 260 rhumbMidpointo-2.0: 50.800995°N, 002.366201°E\n\n    testLatLon(pygeodesy.ellipsoidalExact, 25.08.28)\n    test 261 lat, lon: 50.06632°N, 005.71475°W\n    test 262 lat, lon: 50.066389°N, 005.714722°W\n    test 263 isequalTo: True\n    test 264 isequalTo3: True\n    test 265 latlon: (52.205, 0.119)\n    test 266 latlonheight: (52.205, 0.119, 0)\n    test 267 phimlam: (0.911149, 0.002077)\n    test 268 phimlamheight: (0.911149, 0.002077, 0)\n    test 269 isequalTo: False\n    test 270 antipode1: 52.205°S, 179.881°W\n    test 271 antipode2: True\n    test 272 antipode3: 52.205°N, 000.119°E\n    test 273 antipode4: True\n    test 274 antipode5: 52.205°N, 000.119°E\n    test 275 isnormal1: True\n    test 276 isnormal2: False\n    test 277 normal1: False\n    test 278 normal2: True\n    test 279 toStr: 51°28′40″N, 000°00′06″W\n    test 280 toStr: 51.4778°N, 000.0016°W\n    test 281 precision: 0\n    test 282 toStr: 51°28′40″N, 000°00′06″W, +42.00m\n    test 283 isequalTo: True\n    test 284 isequalTo3: False\n    test 285 latlon: (51.4778, -0.0016)\n    test 286 phimlam: (0.898457, -0.000028)\n    test 287 isequalTo: True\n    test 288 isequalTo3: True\n    test 289 latlon: (51.4778, -0.0016)\n    test 290 latlonheight: (51.4778, -0.0016, 42.0)\n    test 291 phimlam: (0.898457, -0.000028)\n    test 292 phimlamheight: (0.898457, -0.000028, 42.0)\n    test 293 latlon: LatLon2Tuple(lat=51.4778, lon=-0.0016)\n    test 294 latlonheight: LatLon3Tuple(lat=51.4778, lon=-0.0016, height=42.0)\n    test 295 phimlam: PhiLam2Tuple(phi=0.898457, lam=-0.000028)\n    test 296 phimlamheight: PhiLam3Tuple(phi=0.898457, lam=-0.000028, height=42.0)\n    test 297 ellipsoidalLatLon: True\n    test 298 sphericalLatLon: True\n\n    test 299 rhumbLine: TMorder=6, azi12=30.0, exact=False, lat1=51.4778, lon1=-0.0016, rhumb=Rhumb...., f=0.00335281, f_=298.25722356, b=6356752.31424518), k0=0.9996, TMorder=6)\n    test 300 rhumbLine: TMorder=6, azi12=113.805696, exact=False, lat1=51.4778, lon1=-0.0016, rhumb...., f=0.00335281, f_=298.25722356, b=6356752.31424518), k0=0.9996, TMorder=6)\n    test 301 rhumbAzimuthTo: 116.661\n    test 302 rhumbDestination: 50.964234°N, 001.851383°E\n    test 303 rhumbDestination: True\n    test 304 rhumbDistanceTo: 40413.1\n    test 305 rhumbIntersecant2: (LatLon(58°59′33.52″N, 043°11′56.62″E), LatLon(20°25′12.01″N, 009°12′37.27″W))\n    test 306 rhumbMidpointo-0.5: 51.045501°N, 001.595726°E\n    test 307 rhumbMidpointo: True\n    test 308 rhumbMidpointo-0.0: 51.127°N, 001.338°E\n    test 309 rhumbMidpointo-0.25: 51.08625°N, 001.46692°E\n    test 310 rhumbMidpointo-0.75: 51.00475°N, 001.724419°E\n    test 311 rhumbMidpointo-1.0: 50.964°N, 001.853°E\n    test 312 rhumbMidpointo-2.0: 50.800995°N, 002.366201°E\n\n    testLatLon(pygeodesy.ellipsoidalGeodSolve, 25.08.28)\n    test 313 lat, lon: 50.06632°N, 005.71475°W\n    test 314 lat, lon: 50.066389°N, 005.714722°W\n    test 315 isequalTo: True\n    test 316 isequalTo3: True\n    test 317 latlon: (52.205, 0.119)\n    test 318 latlonheight: (52.205, 0.119, 0)\n    test 319 phimlam: (0.911149, 0.002077)\n    test 320 phimlamheight: (0.911149, 0.002077, 0)\n    test 321 isequalTo: False\n    test 322 antipode1: 52.205°S, 179.881°W\n    test 323 antipode2: True\n    test 324 antipode3: 52.205°N, 000.119°E\n    test 325 antipode4: True\n    test 326 antipode5: 52.205°N, 000.119°E\n    test 327 isnormal1: True\n    test 328 isnormal2: False\n    test 329 normal1: False\n    test 330 normal2: True\n    test 331 toStr: 51°28′40″N, 000°00′06″W\n    test 332 toStr: 51.4778°N, 000.0016°W\n    test 333 precision: 0\n    test 334 toStr: 51°28′40″N, 000°00′06″W, +42.00m\n    test 335 isequalTo: True\n    test 336 isequalTo3: False\n    test 337 latlon: (51.4778, -0.0016)\n    test 338 phimlam: (0.898457, -0.000028)\n    test 339 isequalTo: True\n    test 340 isequalTo3: True\n    test 341 latlon: (51.4778, -0.0016)\n    test 342 latlonheight: (51.4778, -0.0016, 42.0)\n    test 343 phimlam: (0.898457, -0.000028)\n    test 344 phimlamheight: (0.898457, -0.000028, 42.0)\n    test 345 latlon: LatLon2Tuple(lat=51.4778, lon=-0.0016)\n    test 346 latlonheight: LatLon3Tuple(lat=51.4778, lon=-0.0016, height=42.0)\n    test 347 phimlam: PhiLam2Tuple(phi=0.898457, lam=-0.000028)\n    test 348 phimlamheight: PhiLam3Tuple(phi=0.898457, lam=-0.000028, height=42.0)\n    test 349 ellipsoidalLatLon: True\n    test 350 sphericalLatLon: True\n\n    test 351 rhumbLine: TMorder=6, azi12=30.0, exact=False, lat1=51.4778, lon1=-0.0016, rhumb=Rhumb...., f=0.00335281, f_=298.25722356, b=6356752.31424518), k0=0.9996, TMorder=6)\n    test 352 rhumbLine: TMorder=6, azi12=113.805696, exact=False, lat1=51.4778, lon1=-0.0016, rhumb...., f=0.00335281, f_=298.25722356, b=6356752.31424518), k0=0.9996, TMorder=6)\n    test 353 rhumbAzimuthTo: 116.661\n    test 354 rhumbDestination: 50.964234°N, 001.851383°E\n    test 355 rhumbDestination: True\n    test 356 rhumbDistanceTo: 40413.1\n    test 357 rhumbIntersecant2: (LatLon(58°59′33.52″N, 043°11′56.62″E), LatLon(20°25′12.01″N, 009°12′37.27″W))\n    test 358 rhumbMidpointo-0.5: 51.045501°N, 001.595726°E\n    test 359 rhumbMidpointo: True\n    test 360 rhumbMidpointo-0.0: 51.127°N, 001.338°E\n    test 361 rhumbMidpointo-0.25: 51.08625°N, 001.46692°E\n    test 362 rhumbMidpointo-0.75: 51.00475°N, 001.724419°E\n    test 363 rhumbMidpointo-1.0: 50.964°N, 001.853°E\n    test 364 rhumbMidpointo-2.0: 50.800995°N, 002.366201°E\n\n    testLatLonEllipsoidalBase(pygeodesy.ellipsoidalBase, 25.07.21)\n    test 365 lat, lon: 50.06632°N, 005.71475°W\n    test 366 lat, lon: 50.066389°N, 005.714722°W\n    test 367 isequalTo: True\n    test 368 isequalTo3: True\n    test 369 latlon: (52.205, 0.119)\n    test 370 latlonheight: (52.205, 0.119, 0)\n    test 371 phimlam: (0.911149, 0.002077)\n    test 372 phimlamheight: (0.911149, 0.002077, 0)\n    test 373 isequalTo: False\n    test 374 antipode1: 52.205°S, 179.881°W\n    test 375 antipode2: True\n    test 376 antipode3: 52.205°N, 000.119°E\n    test 377 antipode4: True\n    test 378 antipode5: 52.205°N, 000.119°E\n    test 379 isnormal1: True\n    test 380 isnormal2: False\n    test 381 normal1: False\n    test 382 normal2: True\n    test 383 toStr: 51°28′40″N, 000°00′06″W\n    test 384 toStr: 51.4778°N, 000.0016°W\n    test 385 precision: 0\n    test 386 toStr: 51°28′40″N, 000°00′06″W, +42.00m\n    test 387 isequalTo: True\n    test 388 isequalTo3: False\n    test 389 latlon: (51.4778, -0.0016)\n    test 390 phimlam: (0.898457, -0.000028)\n    test 391 isequalTo: True\n    test 392 isequalTo3: True\n    test 393 latlon: (51.4778, -0.0016)\n    test 394 latlonheight: (51.4778, -0.0016, 42.0)\n    test 395 phimlam: (0.898457, -0.000028)\n    test 396 phimlamheight: (0.898457, -0.000028, 42.0)\n    test 397 latlon: LatLon2Tuple(lat=51.4778, lon=-0.0016)\n    test 398 latlonheight: LatLon3Tuple(lat=51.4778, lon=-0.0016, height=42.0)\n    test 399 phimlam: PhiLam2Tuple(phi=0.898457, lam=-0.000028)\n    test 400 phimlamheight: PhiLam3Tuple(phi=0.898457, lam=-0.000028, height=42.0)\n    test 401 ellipsoidalLatLon: True\n    test 402 sphericalLatLon: True\n\n    test 403 rhumbLine: TMorder=6, azi12=30.0, exact=False, lat1=51.4778, lon1=-0.0016, rhumb=Rhumb...., f=0.00335281, f_=298.25722356, b=6356752.31424518), k0=0.9996, TMorder=6)\n    test 404 rhumbLine: TMorder=6, azi12=113.805696, exact=False, lat1=51.4778, lon1=-0.0016, rhumb...., f=0.00335281, f_=298.25722356, b=6356752.31424518), k0=0.9996, TMorder=6)\n    test 405 rhumbAzimuthTo: 116.661\n    test 406 rhumbDestination: 50.964234°N, 001.851383°E\n    test 407 rhumbDestination: True\n    test 408 rhumbDistanceTo: 40413.1\n    test 409 rhumbIntersecant2: (LatLonEllipsoidalBase(58°59′33.52″N, 043°11′56.62″E), LatLonEllipsoidalBase(20°25′12.01″N, 009°12′37.27″W))\n    test 410 rhumbMidpointo-0.5: 51.045501°N, 001.595726°E\n    test 411 rhumbMidpointo: True\n    test 412 rhumbMidpointo-0.0: 51.127°N, 001.338°E\n    test 413 rhumbMidpointo-0.25: 51.08625°N, 001.46692°E\n    test 414 rhumbMidpointo-0.75: 51.00475°N, 001.724419°E\n    test 415 rhumbMidpointo-1.0: 50.964°N, 001.853°E\n    test 416 rhumbMidpointo-2.0: 50.800995°N, 002.366201°E\n\n    testLatLonEllipsoidalBaseDI(pygeodesy.ellipsoidalBaseDI, 25.05.23)\n    test 417 lat, lon: 50.06632°N, 005.71475°W\n    test 418 lat, lon: 50.066389°N, 005.714722°W\n    test 419 isequalTo: True\n    test 420 isequalTo3: True\n    test 421 latlon: (52.205, 0.119)\n    test 422 latlonheight: (52.205, 0.119, 0)\n    test 423 phimlam: (0.911149, 0.002077)\n    test 424 phimlamheight: (0.911149, 0.002077, 0)\n    test 425 isequalTo: False\n    test 426 antipode1: 52.205°S, 179.881°W\n    test 427 antipode2: True\n    test 428 antipode3: 52.205°N, 000.119°E\n    test 429 antipode4: True\n    test 430 antipode5: 52.205°N, 000.119°E\n    test 431 isnormal1: True\n    test 432 isnormal2: False\n    test 433 normal1: False\n    test 434 normal2: True\n    test 435 toStr: 51°28′40″N, 000°00′06″W\n    test 436 toStr: 51.4778°N, 000.0016°W\n    test 437 precision: 0\n    test 438 toStr: 51°28′40″N, 000°00′06″W, +42.00m\n    test 439 isequalTo: True\n    test 440 isequalTo3: False\n    test 441 latlon: (51.4778, -0.0016)\n    test 442 phimlam: (0.898457, -0.000028)\n    test 443 isequalTo: True\n    test 444 isequalTo3: True\n    test 445 latlon: (51.4778, -0.0016)\n    test 446 latlonheight: (51.4778, -0.0016, 42.0)\n    test 447 phimlam: (0.898457, -0.000028)\n    test 448 phimlamheight: (0.898457, -0.000028, 42.0)\n    test 449 latlon: LatLon2Tuple(lat=51.4778, lon=-0.0016)\n    test 450 latlonheight: LatLon3Tuple(lat=51.4778, lon=-0.0016, height=42.0)\n    test 451 phimlam: PhiLam2Tuple(phi=0.898457, lam=-0.000028)\n    test 452 phimlamheight: PhiLam3Tuple(phi=0.898457, lam=-0.000028, height=42.0)\n    test 453 ellipsoidalLatLon: True\n    test 454 sphericalLatLon: True\n\n    test 455 rhumbLine: TMorder=6, azi12=30.0, exact=False, lat1=51.4778, lon1=-0.0016, rhumb=Rhumb...., f=0.00335281, f_=298.25722356, b=6356752.31424518), k0=0.9996, TMorder=6)\n    test 456 rhumbLine: TMorder=6, azi12=113.805696, exact=False, lat1=51.4778, lon1=-0.0016, rhumb...., f=0.00335281, f_=298.25722356, b=6356752.31424518), k0=0.9996, TMorder=6)\n    test 457 rhumbAzimuthTo: 116.661\n    test 458 rhumbDestination: 50.964234°N, 001.851383°E\n    test 459 rhumbDestination: True\n    test 460 rhumbDistanceTo: 40413.1\n    test 461 rhumbIntersecant2: (LatLonEllipsoidalBaseDI(58°59′33.52″N, 043°11′56.62″E), LatLonEllipsoidalBaseDI(20°25′12.01″N, 009°12′37.27″W))\n    test 462 rhumbMidpointo-0.5: 51.045501°N, 001.595726°E\n    test 463 rhumbMidpointo: True\n    test 464 rhumbMidpointo-0.0: 51.127°N, 001.338°E\n    test 465 rhumbMidpointo-0.25: 51.08625°N, 001.46692°E\n    test 466 rhumbMidpointo-0.75: 51.00475°N, 001.724419°E\n    test 467 rhumbMidpointo-1.0: 50.964°N, 001.853°E\n    test 468 rhumbMidpointo-2.0: 50.800995°N, 002.366201°E\n\n    testLatLonBase(pygeodesy.latlonBase, 25.08.18)\n    test 469 lat, lon: 50.06632°N, 005.71475°W\n    test 470 lat, lon: 50.066389°N, 005.714722°W\n    test 471 isequalTo: True\n    test 472 isequalTo3: True\n    test 473 latlon: (52.205, 0.119)\n    test 474 latlonheight: (52.205, 0.119, 0)\n    test 475 phimlam: (0.911149, 0.002077)\n    test 476 phimlamheight: (0.911149, 0.002077, 0)\n    test 477 isequalTo: False\n    test 478 antipode1: 52.205°S, 179.881°W\n    test 479 antipode2: True\n    test 480 antipode3: 52.205°N, 000.119°E\n    test 481 antipode4: True\n    test 482 antipode5: 52.205°N, 000.119°E\n    test 483 isnormal1: True\n    test 484 isnormal2: False\n    test 485 normal1: False\n    test 486 normal2: True\n    test 487 toStr: 51°28′40″N, 000°00′06″W\n    test 488 toStr: 51.4778°N, 000.0016°W\n    test 489 precision: 0\n    test 490 toStr: 51°28′40″N, 000°00′06″W, +42.00m\n    test 491 isequalTo: True\n    test 492 isequalTo3: False\n    test 493 latlon: (51.4778, -0.0016)\n    test 494 phimlam: (0.898457, -0.000028)\n    test 495 isequalTo: True\n    test 496 isequalTo3: True\n    test 497 latlon: (51.4778, -0.0016)\n    test 498 latlonheight: (51.4778, -0.0016, 42.0)\n    test 499 phimlam: (0.898457, -0.000028)\n    test 500 phimlamheight: (0.898457, -0.000028, 42.0)\n    test 501 latlon: LatLon2Tuple(lat=51.4778, lon=-0.0016)\n    test 502 latlonheight: LatLon3Tuple(lat=51.4778, lon=-0.0016, height=42.0)\n    test 503 phimlam: PhiLam2Tuple(phi=0.898457, lam=-0.000028)\n    test 504 phimlamheight: PhiLam3Tuple(phi=0.898457, lam=-0.000028, height=42.0)\n    test 505 ellipsoidalLatLon: True\n    test 506 sphericalLatLon: True\n    test 507 isCartesian(LatLonBase, None): None\n    test 508 isCartesian(LatLonBase, True): None\n    test 509 isCartesian(LatLonBase, False): None\n    test 510 isLatLon(LatLonBase, None): <class 'pygeodesy.latlonBase.LatLonBase'>\n    test 511 isLatLon(LatLonBase, True): False\n    test 512 isLatLon(LatLonBase, False): False\n    test 513 isNvector(LatLonBase, None): None\n    test 514 isNvector(LatLonBase, True): None\n    test 515 isNvector(LatLonBase, False): None\n\n    testLatLonNvectorBase(pygeodesy.nvectorBase, 25.08.18)\n    test 516 lat, lon: 50.06632°N, 005.71475°W\n    test 517 lat, lon: 50.066389°N, 005.714722°W\n    test 518 isequalTo: True\n    test 519 isequalTo3: True\n    test 520 latlon: (52.205, 0.119)\n    test 521 latlonheight: (52.205, 0.119, 0)\n    test 522 phimlam: (0.911149, 0.002077)\n    test 523 phimlamheight: (0.911149, 0.002077, 0)\n    test 524 isequalTo: False\n    test 525 antipode1: 52.205°S, 179.881°W\n    test 526 antipode2: True\n    test 527 antipode3: 52.205°N, 000.119°E\n    test 528 antipode4: True\n    test 529 antipode5: 52.205°N, 000.119°E\n    test 530 isnormal1: True\n    test 531 isnormal2: False\n    test 532 normal1: False\n    test 533 normal2: True\n    test 534 toStr: 51°28′40″N, 000°00′06″W\n    test 535 toStr: 51.4778°N, 000.0016°W\n    test 536 precision: 0\n    test 537 toStr: 51°28′40″N, 000°00′06″W, +42.00m\n    test 538 isequalTo: True\n    test 539 isequalTo3: False\n    test 540 latlon: (51.4778, -0.0016)\n    test 541 phimlam: (0.898457, -0.000028)\n    test 542 isequalTo: True\n    test 543 isequalTo3: True\n    test 544 latlon: (51.4778, -0.0016)\n    test 545 latlonheight: (51.4778, -0.0016, 42.0)\n    test 546 phimlam: (0.898457, -0.000028)\n    test 547 phimlamheight: (0.898457, -0.000028, 42.0)\n    test 548 latlon: LatLon2Tuple(lat=51.4778, lon=-0.0016)\n    test 549 latlonheight: LatLon3Tuple(lat=51.4778, lon=-0.0016, height=42.0)\n    test 550 phimlam: PhiLam2Tuple(phi=0.898457, lam=-0.000028)\n    test 551 phimlamheight: PhiLam3Tuple(phi=0.898457, lam=-0.000028, height=42.0)\n    test 552 ellipsoidalLatLon: True\n    test 553 sphericalLatLon: True\n    test 554 isCartesian(LatLonNvectorBase, None): None\n    test 555 isCartesian(LatLonNvectorBase, True): None\n    test 556 isCartesian(LatLonNvectorBase, False): None\n    test 557 isLatLon(LatLonNvectorBase, None): <class 'pygeodesy.nvectorBase.LatLonNvectorBase'>\n    test 558 isLatLon(LatLonNvectorBase, True): False\n    test 559 isLatLon(LatLonNvectorBase, False): False\n    test 560 isNvector(LatLonNvectorBase, None): None\n    test 561 isNvector(LatLonNvectorBase, True): None\n    test 562 isNvector(LatLonNvectorBase, False): None\n\n    testLatLonSphericalBase(pygeodesy.sphericalBase, 25.05.26)\n    test 563 lat, lon: 50.06632°N, 005.71475°W\n    test 564 lat, lon: 50.066389°N, 005.714722°W\n    test 565 isequalTo: True\n    test 566 isequalTo3: True\n    test 567 latlon: (52.205, 0.119)\n    test 568 latlonheight: (52.205, 0.119, 0)\n    test 569 phimlam: (0.911149, 0.002077)\n    test 570 phimlamheight: (0.911149, 0.002077, 0)\n    test 571 isequalTo: False\n    test 572 antipode1: 52.205°S, 179.881°W\n    test 573 antipode2: True\n    test 574 antipode3: 52.205°N, 000.119°E\n    test 575 antipode4: True\n    test 576 antipode5: 52.205°N, 000.119°E\n    test 577 isnormal1: True\n    test 578 isnormal2: False\n    test 579 normal1: False\n    test 580 normal2: True\n    test 581 toStr: 51°28′40″N, 000°00′06″W\n    test 582 toStr: 51.4778°N, 000.0016°W\n    test 583 precision: 0\n    test 584 toStr: 51°28′40″N, 000°00′06″W, +42.00m\n    test 585 isequalTo: True\n    test 586 isequalTo3: False\n    test 587 latlon: (51.4778, -0.0016)\n    test 588 phimlam: (0.898457, -0.000028)\n    test 589 isequalTo: True\n    test 590 isequalTo3: True\n    test 591 latlon: (51.4778, -0.0016)\n    test 592 latlonheight: (51.4778, -0.0016, 42.0)\n    test 593 phimlam: (0.898457, -0.000028)\n    test 594 phimlamheight: (0.898457, -0.000028, 42.0)\n    test 595 latlon: LatLon2Tuple(lat=51.4778, lon=-0.0016)\n    test 596 latlonheight: LatLon3Tuple(lat=51.4778, lon=-0.0016, height=42.0)\n    test 597 phimlam: PhiLam2Tuple(phi=0.898457, lam=-0.000028)\n    test 598 phimlamheight: PhiLam3Tuple(phi=0.898457, lam=-0.000028, height=42.0)\n    test 599 ellipsoidalLatLon: True\n    test 600 sphericalLatLon: True\n\n    test 601 rhumbLine: TMorder=6, azi12=30.0, exact=False, lat1=51.4778, lon1=-0.0016, rhumb=Rhumb....ere', a=6371008.771415, f=0, f_=0, b=6371008.771415), k0=0.9996, TMorder=6)\n    test 602 rhumbLine: TMorder=6, azi12=105.484906, exact=False, lat1=51.4778, lon1=-0.0016, rhumb....ere', a=6371008.771415, f=0, f_=0, b=6371008.771415), k0=0.9996, TMorder=6)\n    test 603 rhumbAzimuthTo: 107.563\n    test 604 rhumbDestination: 50.964155°N, 001.853°E\n    test 605 rhumbDestination: True\n    test 606 rhumbDistanceTo: 42186.1\n    test 607 rhumbIntersecant2: (LatLonSphericalBase(58°40′08.68″N, 042°42′40.63″E), LatLonSphericalBase(18°47′05.09″N, 011°00′15.53″W))\n    test 608 rhumbMidpointo-0.5: 51.069759°N, 001.625988°E\n    test 609 rhumbMidpointo: True\n    test 610 rhumbMidpointo-0.0: 51.127°N, 001.338°E\n    test 611 rhumbMidpointo-0.25: 51.09838°N, 001.482038°E\n    test 612 rhumbMidpointo-0.75: 51.041139°N, 001.769848°E\n    test 613 rhumbMidpointo-1.0: 51.012519°N, 001.913619°E\n    test 614 rhumbMidpointo-2.0: 50.898038°N, 002.48782°E\n\n    all 614 testLatLonBase.py tests passed (pygeodesy 26.3.26 Python 3.13.12 64bit arm64 coverage 7.10.7 geographiclib 2.1 numpy 2.3.3 scipy 1.16.2 Math 2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 macOS 26.3.1 isLazy 1 -W  default) 1.548 sec\nrunning /Library/Framewo....n3.13 -W default ~/PyGeodesy/test/testLazily.py\n\n    testing testLazily.py 25.12.06 isLazy=1\n\n    test 1 isLazy: 1\n\n    test 2 cmd: /Library/Frameworks/Python.framework/Versions/3.13/bin/python3.13 -c 'import sys; import pygeodesy; sys.exit(0 if pygeodesy.isLazy == %s else 1)'\n    test 3 PYGEODESY_LAZY_IMPORT=0: 0\n    test 4 PYGEODESY_LAZY_IMPORT=1: 0\n    test 5 PYGEODESY_LAZY_IMPORT=2: 0\n    test 6 PYGEODESY_LAZY_IMPORT=3: 0\n    test 7 PYGEODESY_LAZY_IMPORT=4: 0\n\n    test 8 items: _ALL_MODS\n    test 9 pygeodesy: <module 'pygeodesy' from './pygeodesy/__init__.py'>\n    test 10 pygeodesy.basics: <module 'pygeodesy.basics' from './pygeodesy/basics.py'>\n    test 11 pygeodesy.constants: <module 'pygeodesy.constants' from './pygeodesy/constants.py'>\n    test 12 pygeodesy.dms: <module 'pygeodesy.dms' from './pygeodesy/dms.py'>\n    test 13 pygeodesy.errors: <module 'pygeodesy.errors' from './pygeodesy/errors.py'>\n    test 14 pygeodesy.fmath: <module 'pygeodesy.fmath' from './pygeodesy/fmath.py'>\n    test 15 pygeodesy.fsums: <module 'pygeodesy.fsums' from './pygeodesy/fsums.py'>\n    test 16 pygeodesy.internals: <module 'pygeodesy.internals' from './pygeodesy/internals.py'>\n    test 17 pygeodesy.interns: <module 'pygeodesy.interns' from './pygeodesy/interns.py'>\n    test 18 pygeodesy.iters: <module 'pygeodesy.iters' from './pygeodesy/iters.py'>\n    test 19 pygeodesy.karney: <module 'pygeodesy.karney' from './pygeodesy/karney.py'>\n    test 20 pygeodesy.lazily: <module 'pygeodesy.lazily' from './pygeodesy/lazily.py'>\n    test 21 pygeodesy.named: <module 'pygeodesy.named' from './pygeodesy/named.py'>\n    test 22 pygeodesy.namedTuples: <module 'pygeodesy.namedTuples' from './pygeodesy/namedTuples.py'>\n    test 23 pygeodesy.props: <module 'pygeodesy.props' from './pygeodesy/props.py'>\n    test 24 pygeodesy.streprs: <module 'pygeodesy.streprs' from './pygeodesy/streprs.py'>\n    test 25 pygeodesy.units: <module 'pygeodesy.units' from './pygeodesy/units.py'>\n    test 26 pygeodesy.unitsBase: <module 'pygeodesy.unitsBase' from './pygeodesy/unitsBase.py'>\n    test 27 pygeodesy.utily: <module 'pygeodesy.utily' from './pygeodesy/utily.py'>\n\n    all 27 testLazily.py tests passed (pygeodesy 26.3.26 Python 3.13.12 64bit arm64 coverage 7.10.7 geographiclib 2.1 numpy 2.3.3 scipy 1.16.2 Math 2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 macOS 26.3.1 isLazy 1 -W  default) 161.196 ms\nrunning /Library/Framewo....n3.13 -W default ~/PyGeodesy/test/testLcc.py\n\n    testing testLcc.py 23.03.27 (module pygeodesy.lcc 25.08.31) isLazy=1\n\n    testLcc(pygeodesy.ellipsoidalNvector, 25.05.12)\n    test 1 lb1: 448251.0 5411932.0001\n    test 2 lb1: 448251, 5411932\n    test 3 lb1: [E:448251, N:5411932]\n    test 4 lb1: WRF_Lb.WGS84\n    test 5 lb1: lb1\n    test 6 lb1: (81.929348, -79.558697)\n    test 7 lb1: (1.429937, -1.388561)\n    test 8 LatLon: 46.5°N, 003.0°E\n    test 9 LatLon: 46°30′00.0″N, 003°00′00.0″E\n    test 10 toLcc1: 700000 6600000\n    test 11 toLcc1: 46.5°N, 003.0°E\n    test 12 lb2: 1894411 1564650\n    test 13 lb2: Clarke1866\n    test 14 lb2: lb2\n    test 15 toLatLon2: 35.0°N, 075.0°W\n    test 16 toLatLon2: 35°00′00.0007″N, 074°59′59.9997″W\n    test 17 toLatLon2: NAD27\n    test 18 toLcc2: 1894410.9 1564649.5\n    test 19 toLcc2: [E:1894411, N:1564649]\n    test 20 toLcc2: Snyder.NAD27\n\n    test 21 Be08Lb: 49.833334°N, 003.025883°E\n    test 22 Be08Lb: GRS80\n\n    test 23 Be08Lb: 49.833334°N, 004.359216°E\n    test 24 Be08Lb: GRS80\n\n    test 25 Be08Lb: 49.833334°N, 005.692549°E\n    test 26 Be08Lb: GRS80\n\n    test 27 Be08Lb: 51.166667°N, 003.025883°E\n    test 28 Be08Lb: GRS80\n\n    test 29 Be08Lb: 51.166667°N, 004.359216°E\n    test 30 Be08Lb: GRS80\n\n    test 31 Be08Lb: 51.166667°N, 005.692549°E\n    test 32 Be08Lb: GRS80\n\n    test 33 Be72Lb: 49.833334°N, 003.034153°E\n    test 34 Be72Lb: NAD83\n\n    test 35 Be72Lb: 49.833334°N, 004.367487°E\n    test 36 Be72Lb: NAD83\n\n    test 37 Be72Lb: 49.833334°N, 005.70082°E\n    test 38 Be72Lb: NAD83\n\n    test 39 Be72Lb: 51.166667°N, 003.034153°E\n    test 40 Be72Lb: NAD83\n\n    test 41 Be72Lb: 51.166667°N, 004.367487°E\n    test 42 Be72Lb: NAD83\n\n    test 43 Be72Lb: 51.166667°N, 005.70082°E\n    test 44 Be72Lb: NAD83\n\n    test 45 Fr93Lb: 49.0°N, 002.0°W\n    test 46 Fr93Lb: WGS84\n\n    test 47 Fr93Lb: 49.0°N, 003.0°E\n    test 48 Fr93Lb: WGS84\n\n    test 49 Fr93Lb: 49.0°N, 008.0°E\n    test 50 Fr93Lb: WGS84\n\n    test 51 Fr93Lb: 44.0°N, 002.0°W\n    test 52 Fr93Lb: WGS84\n\n    test 53 Fr93Lb: 44.0°N, 003.0°E\n    test 54 Fr93Lb: WGS84\n\n    test 55 Fr93Lb: 44.0°N, 008.0°E\n    test 56 Fr93Lb: WGS84\n\n    test 57 MaNLb: 31.73°N, 008.54°W\n    test 58 MaNLb: NTF\n\n    test 59 MaNLb: 31.73°N, 005.4°W\n    test 60 MaNLb: NTF\n\n    test 61 MaNLb: 31.73°N, 002.26°W\n    test 62 MaNLb: NTF\n\n    test 63 MaNLb: 34.87°N, 008.54°W\n    test 64 MaNLb: NTF\n\n    test 65 MaNLb: 34.87°N, 005.4°W\n    test 66 MaNLb: NTF\n\n    test 67 MaNLb: 34.87°N, 002.26°W\n    test 68 MaNLb: NTF\n\n    test 69 MxLb: 17.5°N, 114.0°W\n    test 70 MxLb: WGS84\n\n    test 71 MxLb: 17.5°N, 102.0°W\n    test 72 MxLb: WGS84\n\n    test 73 MxLb: 17.5°N, 090.0°W\n    test 74 MxLb: WGS84\n\n    test 75 MxLb: 29.5°N, 114.0°W\n    test 76 MxLb: WGS84\n\n    test 77 MxLb: 29.5°N, 102.0°W\n    test 78 MxLb: WGS84\n\n    test 79 MxLb: 29.5°N, 090.0°W\n    test 80 MxLb: WGS84\n\n    test 81 PyT_Lb: 45.898939°N, 000.540154°E\n    test 82 PyT_Lb: NTF\n\n    test 83 PyT_Lb: 45.898939°N, 002.337229°E\n    test 84 PyT_Lb: NTF\n\n    test 85 PyT_Lb: 45.898939°N, 004.134305°E\n    test 86 PyT_Lb: NTF\n\n    test 87 PyT_Lb: 47.696014°N, 000.540154°E\n    test 88 PyT_Lb: NTF\n\n    test 89 PyT_Lb: 47.696014°N, 002.337229°E\n    test 90 PyT_Lb: NTF\n\n    test 91 PyT_Lb: 47.696014°N, 004.134305°E\n    test 92 PyT_Lb: NTF\n\n    test 93 Snyder: 33.0°N, 108.0°W\n    test 94 Snyder: NAD27\n\n    test 95 Snyder: 33.0°N, 096.0°W\n    test 96 Snyder: NAD27\n\n    test 97 Snyder: 33.0°N, 084.0°W\n    test 98 Snyder: NAD27\n\n    test 99 Snyder: 45.0°N, 108.0°W\n    test 100 Snyder: NAD27\n\n    test 101 Snyder: 45.0°N, 096.0°W\n    test 102 Snyder: NAD27\n\n    test 103 Snyder: 45.0°N, 084.0°W\n    test 104 Snyder: NAD27\n\n    test 105 USA_Lb: 33.0°N, 108.0°W\n    test 106 USA_Lb: WGS84\n\n    test 107 USA_Lb: 33.0°N, 096.0°W\n    test 108 USA_Lb: WGS84\n\n    test 109 USA_Lb: 33.0°N, 084.0°W\n    test 110 USA_Lb: WGS84\n\n    test 111 USA_Lb: 45.0°N, 108.0°W\n    test 112 USA_Lb: WGS84\n\n    test 113 USA_Lb: 45.0°N, 096.0°W\n    test 114 USA_Lb: WGS84\n\n    test 115 USA_Lb: 45.0°N, 084.0°W\n    test 116 USA_Lb: WGS84\n\n    test 117 WRF_Lb: 33.0°N, 109.0°W\n    test 118 WRF_Lb: WGS84\n\n    test 119 WRF_Lb: 33.0°N, 097.0°W\n    test 120 WRF_Lb: WGS84\n\n    test 121 WRF_Lb: 33.0°N, 085.0°W\n    test 122 WRF_Lb: WGS84\n\n    test 123 WRF_Lb: 45.0°N, 109.0°W\n    test 124 WRF_Lb: WGS84\n\n    test 125 WRF_Lb: 45.0°N, 097.0°W\n    test 126 WRF_Lb: WGS84\n\n    test 127 WRF_Lb: 45.0°N, 085.0°W\n    test 128 WRF_Lb: WGS84\n\n\n    testLcc(pygeodesy.ellipsoidalVincenty, 25.05.26)\n    test 129 lb1: 448251.0 5411932.0001\n    test 130 lb1: 448251, 5411932\n    test 131 lb1: [E:448251, N:5411932]\n    test 132 lb1: WRF_Lb.WGS84\n    test 133 lb1: lb1\n    test 134 lb1: (81.929348, -79.558697)\n    test 135 lb1: (1.429937, -1.388561)\n    test 136 LatLon: 46.5°N, 003.0°E\n    test 137 LatLon: 46°30′00.0″N, 003°00′00.0″E\n    test 138 toLcc1: 700000 6600000\n    test 139 toLcc1: 46.5°N, 003.0°E\n    test 140 lb2: 1894411 1564650\n    test 141 lb2: Clarke1866\n    test 142 lb2: lb2\n    test 143 toLatLon2: 35.0°N, 075.0°W\n    test 144 toLatLon2: 35°00′00.0007″N, 074°59′59.9997″W\n    test 145 toLatLon2: NAD27\n    test 146 toLcc2: 1894410.9 1564649.5\n    test 147 toLcc2: [E:1894411, N:1564649]\n    test 148 toLcc2: Snyder.NAD27\n\n    test 149 Be08Lb: 49.833334°N, 003.025883°E\n    test 150 Be08Lb: GRS80\n\n    test 151 Be08Lb: 49.833334°N, 004.359216°E\n    test 152 Be08Lb: GRS80\n\n    test 153 Be08Lb: 49.833334°N, 005.692549°E\n    test 154 Be08Lb: GRS80\n\n    test 155 Be08Lb: 51.166667°N, 003.025883°E\n    test 156 Be08Lb: GRS80\n\n    test 157 Be08Lb: 51.166667°N, 004.359216°E\n    test 158 Be08Lb: GRS80\n\n    test 159 Be08Lb: 51.166667°N, 005.692549°E\n    test 160 Be08Lb: GRS80\n\n    test 161 Be72Lb: 49.833334°N, 003.034153°E\n    test 162 Be72Lb: NAD83\n\n    test 163 Be72Lb: 49.833334°N, 004.367487°E\n    test 164 Be72Lb: NAD83\n\n    test 165 Be72Lb: 49.833334°N, 005.70082°E\n    test 166 Be72Lb: NAD83\n\n    test 167 Be72Lb: 51.166667°N, 003.034153°E\n    test 168 Be72Lb: NAD83\n\n    test 169 Be72Lb: 51.166667°N, 004.367487°E\n    test 170 Be72Lb: NAD83\n\n    test 171 Be72Lb: 51.166667°N, 005.70082°E\n    test 172 Be72Lb: NAD83\n\n    test 173 Fr93Lb: 49.0°N, 002.0°W\n    test 174 Fr93Lb: WGS84\n\n    test 175 Fr93Lb: 49.0°N, 003.0°E\n    test 176 Fr93Lb: WGS84\n\n    test 177 Fr93Lb: 49.0°N, 008.0°E\n    test 178 Fr93Lb: WGS84\n\n    test 179 Fr93Lb: 44.0°N, 002.0°W\n    test 180 Fr93Lb: WGS84\n\n    test 181 Fr93Lb: 44.0°N, 003.0°E\n    test 182 Fr93Lb: WGS84\n\n    test 183 Fr93Lb: 44.0°N, 008.0°E\n    test 184 Fr93Lb: WGS84\n\n    test 185 MaNLb: 31.73°N, 008.54°W\n    test 186 MaNLb: NTF\n\n    test 187 MaNLb: 31.73°N, 005.4°W\n    test 188 MaNLb: NTF\n\n    test 189 MaNLb: 31.73°N, 002.26°W\n    test 190 MaNLb: NTF\n\n    test 191 MaNLb: 34.87°N, 008.54°W\n    test 192 MaNLb: NTF\n\n    test 193 MaNLb: 34.87°N, 005.4°W\n    test 194 MaNLb: NTF\n\n    test 195 MaNLb: 34.87°N, 002.26°W\n    test 196 MaNLb: NTF\n\n    test 197 MxLb: 17.5°N, 114.0°W\n    test 198 MxLb: WGS84\n\n    test 199 MxLb: 17.5°N, 102.0°W\n    test 200 MxLb: WGS84\n\n    test 201 MxLb: 17.5°N, 090.0°W\n    test 202 MxLb: WGS84\n\n    test 203 MxLb: 29.5°N, 114.0°W\n    test 204 MxLb: WGS84\n\n    test 205 MxLb: 29.5°N, 102.0°W\n    test 206 MxLb: WGS84\n\n    test 207 MxLb: 29.5°N, 090.0°W\n    test 208 MxLb: WGS84\n\n    test 209 PyT_Lb: 45.898939°N, 000.540154°E\n    test 210 PyT_Lb: NTF\n\n    test 211 PyT_Lb: 45.898939°N, 002.337229°E\n    test 212 PyT_Lb: NTF\n\n    test 213 PyT_Lb: 45.898939°N, 004.134305°E\n    test 214 PyT_Lb: NTF\n\n    test 215 PyT_Lb: 47.696014°N, 000.540154°E\n    test 216 PyT_Lb: NTF\n\n    test 217 PyT_Lb: 47.696014°N, 002.337229°E\n    test 218 PyT_Lb: NTF\n\n    test 219 PyT_Lb: 47.696014°N, 004.134305°E\n    test 220 PyT_Lb: NTF\n\n    test 221 Snyder: 33.0°N, 108.0°W\n    test 222 Snyder: NAD27\n\n    test 223 Snyder: 33.0°N, 096.0°W\n    test 224 Snyder: NAD27\n\n    test 225 Snyder: 33.0°N, 084.0°W\n    test 226 Snyder: NAD27\n\n    test 227 Snyder: 45.0°N, 108.0°W\n    test 228 Snyder: NAD27\n\n    test 229 Snyder: 45.0°N, 096.0°W\n    test 230 Snyder: NAD27\n\n    test 231 Snyder: 45.0°N, 084.0°W\n    test 232 Snyder: NAD27\n\n    test 233 USA_Lb: 33.0°N, 108.0°W\n    test 234 USA_Lb: WGS84\n\n    test 235 USA_Lb: 33.0°N, 096.0°W\n    test 236 USA_Lb: WGS84\n\n    test 237 USA_Lb: 33.0°N, 084.0°W\n    test 238 USA_Lb: WGS84\n\n    test 239 USA_Lb: 45.0°N, 108.0°W\n    test 240 USA_Lb: WGS84\n\n    test 241 USA_Lb: 45.0°N, 096.0°W\n    test 242 USA_Lb: WGS84\n\n    test 243 USA_Lb: 45.0°N, 084.0°W\n    test 244 USA_Lb: WGS84\n\n    test 245 WRF_Lb: 33.0°N, 109.0°W\n    test 246 WRF_Lb: WGS84\n\n    test 247 WRF_Lb: 33.0°N, 097.0°W\n    test 248 WRF_Lb: WGS84\n\n    test 249 WRF_Lb: 33.0°N, 085.0°W\n    test 250 WRF_Lb: WGS84\n\n    test 251 WRF_Lb: 45.0°N, 109.0°W\n    test 252 WRF_Lb: WGS84\n\n    test 253 WRF_Lb: 45.0°N, 097.0°W\n    test 254 WRF_Lb: WGS84\n\n    test 255 WRF_Lb: 45.0°N, 085.0°W\n    test 256 WRF_Lb: WGS84\n\n\n    testConic(pygeodesy.ellipsoidalNvector, 25.05.12)\n    test 257 SnyderN: name='SnyderN', lat0=23, lon0=-96, par1=33, par2=45, E0=0, N0=0, k0=1, SP=2, datum=Datum(name='NAD27', ellipsoid=Ellipsoids.Clarke1866, transform=Transforms.NAD27)\n    test 258 _SnyderN: name='_SnyderN', lat0=23, lon0=-96, par1=33, E0=0, N0=0, k0=1, SP=1, datum=Datum(name='NAD27', ellipsoid=Ellipsoids.Clarke1866, transform=Transforms.NAD27)\n    test 259 _SnyderN: name='_SnyderN', lat0=23, lon0=-96, par1=33, E0=0, N0=0, k0=1, SP=1, datum=Datum(name='NAD83', ellipsoid=Ellipsoids.GRS80, transform=Transforms.NAD83)\n    test 260 _SnyderN .auth: ''\n    test 261 _SnyderN .opt3: 0.0\n    test 262 _SnyderN .latlon0: (23.0, -96.0)\n    test 263 _SnyderN .philam0: (0.401426, -1.675516)\n\n    testConic(pygeodesy.ellipsoidalVincenty, 25.05.26)\n    test 264 SnyderV: name='SnyderV', lat0=23, lon0=-96, par1=33, par2=45, E0=0, N0=0, k0=1, SP=2, datum=Datum(name='NAD27', ellipsoid=Ellipsoids.Clarke1866, transform=Transforms.NAD27)\n    test 265 _SnyderV: name='_SnyderV', lat0=23, lon0=-96, par1=33, E0=0, N0=0, k0=1, SP=1, datum=Datum(name='NAD27', ellipsoid=Ellipsoids.Clarke1866, transform=Transforms.NAD27)\n    test 266 _SnyderV: name='_SnyderV', lat0=23, lon0=-96, par1=33, E0=0, N0=0, k0=1, SP=1, datum=Datum(name='NAD83', ellipsoid=Ellipsoids.GRS80, transform=Transforms.NAD83)\n    test 267 _SnyderV .auth: ''\n    test 268 _SnyderV .opt3: 0.0\n    test 269 _SnyderV .latlon0: (23.0, -96.0)\n    test 270 _SnyderV .philam0: (0.401426, -1.675516)\n\n    all 270 testLcc.py tests passed (pygeodesy 26.3.26 Python 3.13.12 64bit arm64 coverage 7.10.7 geographiclib 2.1 numpy 2.3.3 scipy 1.16.2 Math 2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 macOS 26.3.1 isLazy 1 -W  default) 22.916 ms\nrunning /Library/Framewo....n3.13 -W default ~/PyGeodesy/test/testLtp.py\n./pygeodesy/deprecated/classes.py:75: DeprecationWarning: class L{EcefCartesian_<pygeodesy.deprecated.classes.EcefCartesian_>} has been DEPRECATED, use class L{LocalCartesian} or L{Ltp}.\n  deprecated_class(self.__class__)\n./test/testLtp.py:41: DeprecationWarning: method L{forward<pygeodesy.deprecated.classes.EcefCartesian_.forward>} has been DEPRECATED, use method L{LocalCartesian.forward} or L{Ltp.forward}.\n  t = c.forward(33.3, 44.4, 6000)\n./test/testLtp.py:45: DeprecationWarning: method L{reverse<pygeodesy.deprecated.classes.EcefCartesian_.reverse>} has been DEPRECATED, use method L{LocalCartesian.reverse} or L{Ltp.reverse}.\n  t = c.reverse(37288.97, 33374.29, 5783.65)\n./test/testLtp.py:54: DeprecationWarning: method L{forward<pygeodesy.deprecated.classes.EcefCartesian_.forward>} has been DEPRECATED, use method L{LocalCartesian.forward} or L{Ltp.forward}.\n  t = c.forward(LatLon_(50.9, 1.8, name='Calais'))  # Local9Tuple\n./test/testLtp.py:58: DeprecationWarning: method L{reverse<pygeodesy.deprecated.classes.EcefCartesian_.reverse>} has been DEPRECATED, use method L{LocalCartesian.reverse} or L{Ltp.reverse}.\n  t = c.reverse(-37518.64, 229949.65, -4260.43)  # Local9Tuple\n./test/testLtp.py:62: DeprecationWarning: method L{reverse<pygeodesy.deprecated.classes.EcefCartesian_.reverse>} has been DEPRECATED, use method L{LocalCartesian.reverse} or L{Ltp.reverse}.\n  t = c.reverse(-38e3, 230e3, -4e3)\n./test/testLtp.py:66: DeprecationWarning: method L{forward<pygeodesy.deprecated.classes.EcefCartesian_.forward>} has been DEPRECATED, use method L{LocalCartesian.forward} or L{Ltp.forward}.\n  t = c.forward(50.9, 1.79, 264.92)  # Local9Tuple\n./test/testLtp.py:74: DeprecationWarning: method L{reverse<pygeodesy.deprecated.classes.EcefCartesian_.reverse>} has been DEPRECATED, use method L{LocalCartesian.reverse} or L{Ltp.reverse}.\n  t = Z.reverse(M).toLatLon(datum=None)  # Matterhorn Xyz to LatLon\n./test/testLtp.py:76: DeprecationWarning: method L{forward<pygeodesy.deprecated.classes.EcefCartesian_.forward>} has been DEPRECATED, use method L{LocalCartesian.forward} or L{Ltp.forward}.\n  self.test('xyz', Z.forward(t).xyz.toStr(prec=1), '(-7134.8, -4556.3, 2852.4)', known=Sudano)\n\n    testing testLtp.py 23.11.21 isLazy=1\n\n    test 1 EcefCartesian: {}\n    test 2 name: Test\n    test 3 toStr: EcefCartesian_(lat0=33.0, lon0=44.0, height0=20.0, M=EcefMatrix(_0_0_=-0.694658, _0_1_=-0.391781, _0_2_=0.603289, _1_0_=0.71934, _1_1_=-0.378338, _1_2_=0.58259, _2_0_=0.0, _2_1_=0.838671, _2_2_=0.544639), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Test')  FAILED, KNOWN, expected EcefCartesian_\n    test 4 copy(<class 'type'>): (<class 'pygeodesy.deprecated.classes.EcefCartesian.<locals>.EcefCartesian_'>, True)\n    test 5 EcefCartesian_.copy(): (<class 'pygeodesy.deprecated.classes.EcefCartesian.<locals>.EcefCartesian_'>, True)\n    test 6 New: lat0=33.0, lon0=44.0, height0=20.0, M=EcefMatrix(_0_0_=-0.694658, _0_1_=-0.391781, _0_2_=0.603289, _1_0_=0.71934, _1_1_=-0.378338, _1_2_=0.58259, _2_0_=0.0, _2_1_=0.838671, _2_2_=0.544639), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Test'\n    test 7 forward: 37288.97, 33374.29, 5783.65\n    test 8 name: Test\n    test 9 reverse: 33.3, 44.4, 6000.0\n    test 10 name: Test\n    test 11 name: Paris\n    test 12 Paris: 48.833, 2.333, 0.0\n    test 13 forward: -37518.64, 229949.65, -4260.43\n    test 14 name: Calais\n    test 15 reverse: 50.9, 1.8, -0.0\n    test 16 name: Paris\n    test 17 reverse: -38000.0, 230000.0, -4000.0\n    test 18 reverse: 50.9, 1.79, 264.92\n    test 19 forward: -38223.7, 229964.2, -4000.0\n\n    test 20 Zermatt: lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'  FAILED, KNOWN, expected EcefCartesian_\n    test 21 Matterhorn: (45.976, 7.658, 4531.01)\n    test 22 xyz: (-7134.8, -4556.3, 2852.4)\n    test 23 _local2ecef: 4403757.602, 592124.536, 4566652.082\n    test 24 _local2ecef: (4403757.602, 592124.536, 4566652.082, 45.976, 7.658, 4531.01, 1, None, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))  FAILED, KNOWN, expected Ecef9Tuple\n    test 25 _local2ecef: Ecef9Tuple\n    test 26 _ecef2local: (-7134.8, -4556.3, 2852.4, 45.976, 7.658, 4531.01, EcefCartesian_(lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'), Ecef9Tuple(x=4403757.601549, y=592124.535536, z=4566652.082005, lat=45.976, lon=7.657999, height=4531.009608, C=1, M=None, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84)), None)  FAILED, KNOWN, expected Local9Tuple\n    test 27 _ecef2local: Local9Tuple\n    test 28 Xyz: (-7134.8, -4556.3, 2852.4, None)\n    test 29 Aer: (-7134.912, -4444.548, 2852.474, None)\n    test 30 Enu: (-7134.8, -4556.3, 2852.4, None)\n    test 31 Ned: [-4556.3, -7134.8, -2852.4]\n    test 32 Enu: [-7134.8, -4556.3, 2852.4]\n    test 33 Ned: [-4556.3, -7134.8, -2852.4]\n\n    test 34 lon00: (90.0, 57.3, 0.0, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 35 lon00: (90.0, 3.75, 0.0, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n\n    test 36 Frustum: 90.0, 90.0\n    test 37 hfov: 90.0\n    test 38 vfov: 90.0\n    test 39 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None))\n    test 40 footprint.xyzLocal5: ([X:0.0, Y:0.0, Z:0.0], [X:1000.0, Y:1000.0, Z:0.0], [X:1000.0, Y:1000.0, Z:0.0], [X:-1000.0, Y:-1000.0, Z:0.0], [X:-1000.0, Y:-1000.0, Z:0.0])\n    test 41 footprint.toLatLon5: (LatLon_(00.0°N, 000.0°E), LatLon_(00.009044°N, 000.008983°E, +0.16), LatLon_(00.009044°N, 000.008983°E, +0.16), LatLon_(00.009044°S, 000.008983°W, +0.16), LatLon_(00.009044°S, 000.008983°W, +0.16))\n\n    test 42 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None))\n    test 43 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=414.213562, y=414.213562, z=0.0, ltp=None), Xyz4Tuple(x=414.213562, y=414.213562, z=0.0, ltp=None), Xyz4Tuple(x=-414.213562, y=-414.213562, z=0.0, ltp=None), Xyz4Tuple(x=-414.213562, y=-414.213562, z=0.0, ltp=None))\n    test 44 footprint: (Xyz4Tuple(x=-57289.961631, y=-57289.961631, z=0.0, ltp=None), Xyz4Tuple(x=2538.647896, y=2538.647896, z=0.0, ltp=None), Xyz4Tuple(x=2538.647896, y=2538.647896, z=0.0, ltp=None), Xyz4Tuple(x=-2299.842547, y=-2299.842547, z=0.0, ltp=None), Xyz4Tuple(x=-2299.842547, y=-2299.842547, z=0.0, ltp=None))\n\n    test 45 Attitude: (0.0, -10.0, 330.0, -20.0)\n    test 46 alt: 0.0\n    test 47 tilt: -10.0\n    test 48 roll: -20.0\n    test 49 yaw: 330.0\n    test 50 matrix: ((0.8137976813493736, -0.44096961052988237, -0.37852230636979256), (0.46984631039295416, 0.8825641192593855, -0.018028311236297286), (0.3420201433256688, -0.16317591116653488, 0.9254165783983233))  FAILED, KNOWN, expected ((0.8137976813493737, -0.4409696105298823, -0.3785223063697926), (0.4698463103929541, 0.8825641192593856, -0.01802831123629725), (0.3420201433256688, -0.16317591116653488, 0.9254165783983233))\n    test 51 rotate: (-0.005694, 1.334382, 1.104261)\n    test 52 tyr3d: (0.0, 0.0, 0.0)\n    test 53 tyr3d: (0.0, -2.0, 0.0)\n    test 54 tyr3d: (0.0, -2.0, 0.0)\n    test 55 tyr3d: (0.0, 0.0, -2.0)\n\n    test 56 LocalCartesian: {}\n    test 57 name: Test\n    test 58 toStr: LocalCartesian(lat0=33.0, lon0=44.0, height0=20.0, M=EcefMatrix(_0_0_=-0.694658, _0_1_=-0.391781, _0_2_=0.603289, _1_0_=0.71934, _1_1_=-0.378338, _1_2_=0.58259, _2_0_=0.0, _2_1_=0.838671, _2_2_=0.544639), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Test')  FAILED, KNOWN, expected LocalCartesian\n    test 59 copy(<class 'type'>): (<class 'pygeodesy.ltp.LocalCartesian'>, True)\n    test 60 LocalCartesian.copy(): (<class 'pygeodesy.ltp.LocalCartesian'>, True)\n    test 61 New: lat0=33.0, lon0=44.0, height0=20.0, M=EcefMatrix(_0_0_=-0.694658, _0_1_=-0.391781, _0_2_=0.603289, _1_0_=0.71934, _1_1_=-0.378338, _1_2_=0.58259, _2_0_=0.0, _2_1_=0.838671, _2_2_=0.544639), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Test'\n    test 62 forward: 37288.97, 33374.29, 5783.65\n    test 63 name: Test\n    test 64 reverse: 33.3, 44.4, 6000.0\n    test 65 name: Test\n    test 66 name: Paris\n    test 67 Paris: 48.833, 2.333, 0.0\n    test 68 forward: -37518.64, 229949.65, -4260.43\n    test 69 name: Calais\n    test 70 reverse: 50.9, 1.8, -0.0\n    test 71 name: Paris\n    test 72 reverse: -38000.0, 230000.0, -4000.0\n    test 73 reverse: 50.9, 1.79, 264.92\n    test 74 forward: -38223.7, 229964.2, -4000.0\n\n    test 75 Zermatt: lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'  FAILED, KNOWN, expected LocalCartesian\n    test 76 Matterhorn: (45.976, 7.658, 4531.01)\n    test 77 xyz: (-7134.8, -4556.3, 2852.4)\n    test 78 _local2ecef: 4403757.602, 592124.536, 4566652.082\n    test 79 _local2ecef: (4403757.602, 592124.536, 4566652.082, 45.976, 7.658, 4531.01, 1, None, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))  FAILED, KNOWN, expected Ecef9Tuple\n    test 80 _local2ecef: Ecef9Tuple\n    test 81 _ecef2local: (-7134.8, -4556.3, 2852.4, 45.976, 7.658, 4531.01, LocalCartesian(lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'), Ecef9Tuple(x=4403757.601549, y=592124.535536, z=4566652.082005, lat=45.976, lon=7.657999, height=4531.009608, C=1, M=None, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84)), None)  FAILED, KNOWN, expected Local9Tuple\n    test 82 _ecef2local: Local9Tuple\n    test 83 Xyz: (-7134.8, -4556.3, 2852.4, None)\n    test 84 Aer: (-7134.912, -4444.548, 2852.474, None)\n    test 85 Enu: (-7134.8, -4556.3, 2852.4, None)\n    test 86 Ned: [-4556.3, -7134.8, -2852.4]\n    test 87 Enu: [-7134.8, -4556.3, 2852.4]\n    test 88 Ned: [-4556.3, -7134.8, -2852.4]\n\n    test 89 lon00: (90.0, 57.3, 0.0, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 90 lon00: (90.0, 3.75, 0.0, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n\n    test 91 Frustum: 90.0, 90.0\n    test 92 hfov: 90.0\n    test 93 vfov: 90.0\n    test 94 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None))\n    test 95 footprint.xyzLocal5: ([X:0.0, Y:0.0, Z:0.0], [X:1000.0, Y:1000.0, Z:0.0], [X:1000.0, Y:1000.0, Z:0.0], [X:-1000.0, Y:-1000.0, Z:0.0], [X:-1000.0, Y:-1000.0, Z:0.0])\n    test 96 footprint.toLatLon5: (LatLon_(00.0°N, 000.0°E), LatLon_(00.009044°N, 000.008983°E, +0.16), LatLon_(00.009044°N, 000.008983°E, +0.16), LatLon_(00.009044°S, 000.008983°W, +0.16), LatLon_(00.009044°S, 000.008983°W, +0.16))\n\n    test 97 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None))\n    test 98 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=414.213562, y=414.213562, z=0.0, ltp=None), Xyz4Tuple(x=414.213562, y=414.213562, z=0.0, ltp=None), Xyz4Tuple(x=-414.213562, y=-414.213562, z=0.0, ltp=None), Xyz4Tuple(x=-414.213562, y=-414.213562, z=0.0, ltp=None))\n    test 99 footprint: (Xyz4Tuple(x=-57289.961631, y=-57289.961631, z=0.0, ltp=None), Xyz4Tuple(x=2538.647896, y=2538.647896, z=0.0, ltp=None), Xyz4Tuple(x=2538.647896, y=2538.647896, z=0.0, ltp=None), Xyz4Tuple(x=-2299.842547, y=-2299.842547, z=0.0, ltp=None), Xyz4Tuple(x=-2299.842547, y=-2299.842547, z=0.0, ltp=None))\n\n    test 100 Attitude: (0.0, -10.0, 330.0, -20.0)\n    test 101 alt: 0.0\n    test 102 tilt: -10.0\n    test 103 roll: -20.0\n    test 104 yaw: 330.0\n    test 105 matrix: ((0.8137976813493736, -0.44096961052988237, -0.37852230636979256), (0.46984631039295416, 0.8825641192593855, -0.018028311236297286), (0.3420201433256688, -0.16317591116653488, 0.9254165783983233))  FAILED, KNOWN, expected ((0.8137976813493737, -0.4409696105298823, -0.3785223063697926), (0.4698463103929541, 0.8825641192593856, -0.01802831123629725), (0.3420201433256688, -0.16317591116653488, 0.9254165783983233))\n    test 106 rotate: (-0.005694, 1.334382, 1.104261)\n    test 107 tyr3d: (0.0, 0.0, 0.0)\n    test 108 tyr3d: (0.0, -2.0, 0.0)\n    test 109 tyr3d: (0.0, -2.0, 0.0)\n    test 110 tyr3d: (0.0, 0.0, -2.0)\n\n    test 111 Ltp: {}\n    test 112 name: Test\n    test 113 toStr: Ltp(lat0=33.0, lon0=44.0, height0=20.0, M=EcefMatrix(_0_0_=-0.694658, _0_1_=-0.391781, _0_2_=0.603289, _1_0_=0.71934, _1_1_=-0.378338, _1_2_=0.58259, _2_0_=0.0, _2_1_=0.838671, _2_2_=0.544639), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Test')  FAILED, KNOWN, expected Ltp\n    test 114 copy(<class 'type'>): (<class 'pygeodesy.ltp.Ltp'>, True)\n    test 115 Ltp.copy(): (<class 'pygeodesy.ltp.Ltp'>, True)\n    test 116 New: lat0=33.0, lon0=44.0, height0=20.0, M=EcefMatrix(_0_0_=-0.694658, _0_1_=-0.391781, _0_2_=0.603289, _1_0_=0.71934, _1_1_=-0.378338, _1_2_=0.58259, _2_0_=0.0, _2_1_=0.838671, _2_2_=0.544639), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Test'\n    test 117 forward: 37288.97, 33374.29, 5783.65\n    test 118 name: Test\n    test 119 reverse: 33.3, 44.4, 6000.0\n    test 120 name: Test\n    test 121 name: Paris\n    test 122 Paris: 48.833, 2.333, 0.0\n    test 123 forward: -37518.64, 229949.65, -4260.43\n    test 124 name: Calais\n    test 125 reverse: 50.9, 1.8, -0.0\n    test 126 name: Paris\n    test 127 reverse: -38000.0, 230000.0, -4000.0\n    test 128 reverse: 50.9, 1.79, 264.92\n    test 129 forward: -38223.7, 229964.2, -4000.0\n\n    test 130 Zermatt: lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'  FAILED, KNOWN, expected Ltp\n    test 131 Matterhorn: (45.976, 7.658, 4531.01)\n    test 132 xyz: (-7134.8, -4556.3, 2852.4)\n    test 133 _local2ecef: 4403757.602, 592124.536, 4566652.082\n    test 134 _local2ecef: (4403757.602, 592124.536, 4566652.082, 45.976, 7.658, 4531.01, 1, None, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))  FAILED, KNOWN, expected Ecef9Tuple\n    test 135 _local2ecef: Ecef9Tuple\n    test 136 _ecef2local: (-7134.8, -4556.3, 2852.4, 45.976, 7.658, 4531.01, Ltp(lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'), Ecef9Tuple(x=4403757.601549, y=592124.535536, z=4566652.082005, lat=45.976, lon=7.657999, height=4531.009608, C=1, M=None, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84)), None)  FAILED, KNOWN, expected Local9Tuple\n    test 137 _ecef2local: Local9Tuple\n    test 138 Xyz: (-7134.8, -4556.3, 2852.4, None)\n    test 139 Aer: (-7134.912, -4444.548, 2852.474, None)\n    test 140 Enu: (-7134.8, -4556.3, 2852.4, None)\n    test 141 Ned: [-4556.3, -7134.8, -2852.4]\n    test 142 Enu: [-7134.8, -4556.3, 2852.4]\n    test 143 Ned: [-4556.3, -7134.8, -2852.4]\n\n    test 144 lon00: (90.0, 57.3, 0.0, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 145 lon00: (90.0, 3.75, 0.0, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n\n    test 146 Frustum: 90.0, 90.0\n    test 147 hfov: 90.0\n    test 148 vfov: 90.0\n    test 149 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None))\n    test 150 footprint.xyzLocal5: ([X:0.0, Y:0.0, Z:0.0], [X:1000.0, Y:1000.0, Z:0.0], [X:1000.0, Y:1000.0, Z:0.0], [X:-1000.0, Y:-1000.0, Z:0.0], [X:-1000.0, Y:-1000.0, Z:0.0])\n    test 151 footprint.toLatLon5: (LatLon_(00.0°N, 000.0°E), LatLon_(00.009044°N, 000.008983°E, +0.16), LatLon_(00.009044°N, 000.008983°E, +0.16), LatLon_(00.009044°S, 000.008983°W, +0.16), LatLon_(00.009044°S, 000.008983°W, +0.16))\n\n    test 152 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None))\n    test 153 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=414.213562, y=414.213562, z=0.0, ltp=None), Xyz4Tuple(x=414.213562, y=414.213562, z=0.0, ltp=None), Xyz4Tuple(x=-414.213562, y=-414.213562, z=0.0, ltp=None), Xyz4Tuple(x=-414.213562, y=-414.213562, z=0.0, ltp=None))\n    test 154 footprint: (Xyz4Tuple(x=-57289.961631, y=-57289.961631, z=0.0, ltp=None), Xyz4Tuple(x=2538.647896, y=2538.647896, z=0.0, ltp=None), Xyz4Tuple(x=2538.647896, y=2538.647896, z=0.0, ltp=None), Xyz4Tuple(x=-2299.842547, y=-2299.842547, z=0.0, ltp=None), Xyz4Tuple(x=-2299.842547, y=-2299.842547, z=0.0, ltp=None))\n\n    test 155 Attitude: (0.0, -10.0, 330.0, -20.0)\n    test 156 alt: 0.0\n    test 157 tilt: -10.0\n    test 158 roll: -20.0\n    test 159 yaw: 330.0\n    test 160 matrix: ((0.8137976813493736, -0.44096961052988237, -0.37852230636979256), (0.46984631039295416, 0.8825641192593855, -0.018028311236297286), (0.3420201433256688, -0.16317591116653488, 0.9254165783983233))  FAILED, KNOWN, expected ((0.8137976813493737, -0.4409696105298823, -0.3785223063697926), (0.4698463103929541, 0.8825641192593856, -0.01802831123629725), (0.3420201433256688, -0.16317591116653488, 0.9254165783983233))\n    test 161 rotate: (-0.005694, 1.334382, 1.104261)\n    test 162 tyr3d: (0.0, 0.0, 0.0)\n    test 163 tyr3d: (0.0, -2.0, 0.0)\n    test 164 tyr3d: (0.0, -2.0, 0.0)\n    test 165 tyr3d: (0.0, 0.0, -2.0)\n\n    test 166 Ltp: {'ecef': EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name='')}\n    test 167 name: Test\n    test 168 toStr: Ltp(lat0=33.0, lon0=44.0, height0=20.0, M=EcefMatrix(_0_0_=-0.694658, _0_1_=-0.391781, _0_2_=0.603289, _1_0_=0.71934, _1_1_=-0.378338, _1_2_=0.58259, _2_0_=0.0, _2_1_=0.838671, _2_2_=0.544639), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Test')  FAILED, KNOWN, expected Ltp\n    test 169 copy(<class 'type'>): (<class 'pygeodesy.ltp.Ltp'>, True)\n    test 170 Ltp.copy(): (<class 'pygeodesy.ltp.Ltp'>, True)\n    test 171 New: lat0=33.0, lon0=44.0, height0=20.0, M=EcefMatrix(_0_0_=-0.694658, _0_1_=-0.391781, _0_2_=0.603289, _1_0_=0.71934, _1_1_=-0.378338, _1_2_=0.58259, _2_0_=0.0, _2_1_=0.838671, _2_2_=0.544639), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Test'\n    test 172 forward: 37288.97, 33374.29, 5783.65\n    test 173 name: Test\n    test 174 reverse: 33.3, 44.4, 6000.0\n    test 175 name: Test\n    test 176 name: Paris\n    test 177 Paris: 48.833, 2.333, 0.0\n    test 178 forward: -37518.64, 229949.65, -4260.43\n    test 179 name: Calais\n    test 180 reverse: 50.9, 1.8, -0.0\n    test 181 name: Paris\n    test 182 reverse: -38000.0, 230000.0, -4000.0\n    test 183 reverse: 50.9, 1.79, 264.92\n    test 184 forward: -38223.7, 229964.2, -4000.0\n\n    test 185 Zermatt: lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'  FAILED, KNOWN, expected Ltp\n    test 186 Matterhorn: (45.976, 7.658, 4531.01)\n    test 187 xyz: (-7134.8, -4556.3, 2852.4)\n    test 188 _local2ecef: 4403757.602, 592124.536, 4566652.082\n    test 189 _local2ecef: (4403757.602, 592124.536, 4566652.082, 45.976, 7.658, 4531.01, 1, None, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))  FAILED, KNOWN, expected Ecef9Tuple\n    test 190 _local2ecef: Ecef9Tuple\n    test 191 _ecef2local: (-7134.8, -4556.3, 2852.4, 45.976, 7.658, 4531.01, Ltp(lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'), Ecef9Tuple(x=4403757.601549, y=592124.535536, z=4566652.082005, lat=45.976, lon=7.657999, height=4531.009608, C=1, M=None, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84)), None)  FAILED, KNOWN, expected Local9Tuple\n    test 192 _ecef2local: Local9Tuple\n    test 193 Xyz: (-7134.8, -4556.3, 2852.4, None)\n    test 194 Aer: (-7134.912, -4444.548, 2852.474, None)\n    test 195 Enu: (-7134.8, -4556.3, 2852.4, None)\n    test 196 Ned: [-4556.3, -7134.8, -2852.4]\n    test 197 Enu: [-7134.8, -4556.3, 2852.4]\n    test 198 Ned: [-4556.3, -7134.8, -2852.4]\n\n    test 199 lon00: (90.0, 57.3, 0.0, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 200 lon00: (90.0, 3.75, 0.0, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n\n    test 201 Frustum: 90.0, 90.0\n    test 202 hfov: 90.0\n    test 203 vfov: 90.0\n    test 204 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None))\n    test 205 footprint.xyzLocal5: ([X:0.0, Y:0.0, Z:0.0], [X:1000.0, Y:1000.0, Z:0.0], [X:1000.0, Y:1000.0, Z:0.0], [X:-1000.0, Y:-1000.0, Z:0.0], [X:-1000.0, Y:-1000.0, Z:0.0])\n    test 206 footprint.toLatLon5: (LatLon_(00.0°N, 000.0°E), LatLon_(00.009044°N, 000.008983°E, +0.16), LatLon_(00.009044°N, 000.008983°E, +0.16), LatLon_(00.009044°S, 000.008983°W, +0.16), LatLon_(00.009044°S, 000.008983°W, +0.16))\n\n    test 207 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None))\n    test 208 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=414.213562, y=414.213562, z=0.0, ltp=None), Xyz4Tuple(x=414.213562, y=414.213562, z=0.0, ltp=None), Xyz4Tuple(x=-414.213562, y=-414.213562, z=0.0, ltp=None), Xyz4Tuple(x=-414.213562, y=-414.213562, z=0.0, ltp=None))\n    test 209 footprint: (Xyz4Tuple(x=-57289.961631, y=-57289.961631, z=0.0, ltp=None), Xyz4Tuple(x=2538.647896, y=2538.647896, z=0.0, ltp=None), Xyz4Tuple(x=2538.647896, y=2538.647896, z=0.0, ltp=None), Xyz4Tuple(x=-2299.842547, y=-2299.842547, z=0.0, ltp=None), Xyz4Tuple(x=-2299.842547, y=-2299.842547, z=0.0, ltp=None))\n\n    test 210 Attitude: (0.0, -10.0, 330.0, -20.0)\n    test 211 alt: 0.0\n    test 212 tilt: -10.0\n    test 213 roll: -20.0\n    test 214 yaw: 330.0\n    test 215 matrix: ((0.8137976813493736, -0.44096961052988237, -0.37852230636979256), (0.46984631039295416, 0.8825641192593855, -0.018028311236297286), (0.3420201433256688, -0.16317591116653488, 0.9254165783983233))  FAILED, KNOWN, expected ((0.8137976813493737, -0.4409696105298823, -0.3785223063697926), (0.4698463103929541, 0.8825641192593856, -0.01802831123629725), (0.3420201433256688, -0.16317591116653488, 0.9254165783983233))\n    test 216 rotate: (-0.005694, 1.334382, 1.104261)\n    test 217 tyr3d: (0.0, 0.0, 0.0)\n    test 218 tyr3d: (0.0, -2.0, 0.0)\n    test 219 tyr3d: (0.0, -2.0, 0.0)\n    test 220 tyr3d: (0.0, 0.0, -2.0)\n\n    test 221 Ltp: {'ecef': EcefFarrell21(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name='')}\n    test 222 name: Test\n    test 223 toStr: Ltp(lat0=33.0, lon0=44.0, height0=20.0, M=EcefMatrix(_0_0_=-0.694658, _0_1_=-0.391781, _0_2_=0.603289, _1_0_=0.71934, _1_1_=-0.378338, _1_2_=0.58259, _2_0_=0.0, _2_1_=0.838671, _2_2_=0.544639), ecef=EcefFarrell21(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Test')  FAILED, KNOWN, expected Ltp\n    test 224 copy(<class 'type'>): (<class 'pygeodesy.ltp.Ltp'>, True)\n    test 225 Ltp.copy(): (<class 'pygeodesy.ltp.Ltp'>, True)\n    test 226 New: lat0=33.0, lon0=44.0, height0=20.0, M=EcefMatrix(_0_0_=-0.694658, _0_1_=-0.391781, _0_2_=0.603289, _1_0_=0.71934, _1_1_=-0.378338, _1_2_=0.58259, _2_0_=0.0, _2_1_=0.838671, _2_2_=0.544639), ecef=EcefFarrell21(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Test'\n    test 227 forward: 37288.97, 33374.29, 5783.65\n    test 228 name: Test\n    test 229 reverse: 33.3, 44.4, 6000.0\n    test 230 name: Test\n    test 231 name: Paris\n    test 232 Paris: 48.833, 2.333, 0.0\n    test 233 forward: -37518.64, 229949.65, -4260.43\n    test 234 name: Calais\n    test 235 reverse: 50.9, 1.8, -0.0\n    test 236 name: Paris\n    test 237 reverse: -38000.0, 230000.0, -4000.0\n    test 238 reverse: 50.9, 1.79, 264.92\n    test 239 forward: -38223.7, 229964.2, -4000.0\n\n    test 240 Zermatt: lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefFarrell21(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'  FAILED, KNOWN, expected Ltp\n    test 241 Matterhorn: (45.976, 7.658, 4531.01)\n    test 242 xyz: (-7134.8, -4556.3, 2852.4)\n    test 243 _local2ecef: 4403757.602, 592124.536, 4566652.082\n    test 244 _local2ecef: (4403757.602, 592124.536, 4566652.082, 45.976, 7.658, 4531.01, 1, None, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))  FAILED, KNOWN, expected Ecef9Tuple\n    test 245 _local2ecef: Ecef9Tuple\n    test 246 _ecef2local: (-7134.8, -4556.3, 2852.4, 45.976, 7.658, 4531.01, Ltp(lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefFarrell21(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'), Ecef9Tuple(x=4403757.601549, y=592124.535536, z=4566652.082005, lat=45.976, lon=7.657999, height=4531.009608, C=1, M=None, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84)), None)  FAILED, KNOWN, expected Local9Tuple\n    test 247 _ecef2local: Local9Tuple\n    test 248 Xyz: (-7134.8, -4556.3, 2852.4, None)\n    test 249 Aer: (-7134.912, -4444.548, 2852.474, None)\n    test 250 Enu: (-7134.8, -4556.3, 2852.4, None)\n    test 251 Ned: [-4556.3, -7134.8, -2852.4]\n    test 252 Enu: [-7134.8, -4556.3, 2852.4]\n    test 253 Ned: [-4556.3, -7134.8, -2852.4]\n\n    test 254 lon00: (90.0, 57.3, 0.0, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 255 lon00: (90.0, 3.75, 0.0, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n\n    test 256 Frustum: 90.0, 90.0\n    test 257 hfov: 90.0\n    test 258 vfov: 90.0\n    test 259 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None))\n    test 260 footprint.xyzLocal5: ([X:0.0, Y:0.0, Z:0.0], [X:1000.0, Y:1000.0, Z:0.0], [X:1000.0, Y:1000.0, Z:0.0], [X:-1000.0, Y:-1000.0, Z:0.0], [X:-1000.0, Y:-1000.0, Z:0.0])\n    test 261 footprint.toLatLon5: (LatLon_(00.0°N, 000.0°E), LatLon_(00.009044°N, 000.008983°E, +0.16), LatLon_(00.009044°N, 000.008983°E, +0.16), LatLon_(00.009044°S, 000.008983°W, +0.16), LatLon_(00.009044°S, 000.008983°W, +0.16))\n\n    test 262 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None))\n    test 263 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=414.213562, y=414.213562, z=0.0, ltp=None), Xyz4Tuple(x=414.213562, y=414.213562, z=0.0, ltp=None), Xyz4Tuple(x=-414.213562, y=-414.213562, z=0.0, ltp=None), Xyz4Tuple(x=-414.213562, y=-414.213562, z=0.0, ltp=None))\n    test 264 footprint: (Xyz4Tuple(x=-57289.961631, y=-57289.961631, z=0.0, ltp=None), Xyz4Tuple(x=2538.647896, y=2538.647896, z=0.0, ltp=None), Xyz4Tuple(x=2538.647896, y=2538.647896, z=0.0, ltp=None), Xyz4Tuple(x=-2299.842547, y=-2299.842547, z=0.0, ltp=None), Xyz4Tuple(x=-2299.842547, y=-2299.842547, z=0.0, ltp=None))\n\n    test 265 Attitude: (0.0, -10.0, 330.0, -20.0)\n    test 266 alt: 0.0\n    test 267 tilt: -10.0\n    test 268 roll: -20.0\n    test 269 yaw: 330.0\n    test 270 matrix: ((0.8137976813493736, -0.44096961052988237, -0.37852230636979256), (0.46984631039295416, 0.8825641192593855, -0.018028311236297286), (0.3420201433256688, -0.16317591116653488, 0.9254165783983233))  FAILED, KNOWN, expected ((0.8137976813493737, -0.4409696105298823, -0.3785223063697926), (0.4698463103929541, 0.8825641192593856, -0.01802831123629725), (0.3420201433256688, -0.16317591116653488, 0.9254165783983233))\n    test 271 rotate: (-0.005694, 1.334382, 1.104261)\n    test 272 tyr3d: (0.0, 0.0, 0.0)\n    test 273 tyr3d: (0.0, -2.0, 0.0)\n    test 274 tyr3d: (0.0, -2.0, 0.0)\n    test 275 tyr3d: (0.0, 0.0, -2.0)\n\n    test 276 Ltp: {'ecef': EcefFarrell22(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name='')}\n    test 277 name: Test\n    test 278 toStr: Ltp(lat0=33.0, lon0=44.0, height0=20.0, M=EcefMatrix(_0_0_=-0.694658, _0_1_=-0.391781, _0_2_=0.603289, _1_0_=0.71934, _1_1_=-0.378338, _1_2_=0.58259, _2_0_=0.0, _2_1_=0.838671, _2_2_=0.544639), ecef=EcefFarrell22(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Test')  FAILED, KNOWN, expected Ltp\n    test 279 copy(<class 'type'>): (<class 'pygeodesy.ltp.Ltp'>, True)\n    test 280 Ltp.copy(): (<class 'pygeodesy.ltp.Ltp'>, True)\n    test 281 New: lat0=33.0, lon0=44.0, height0=20.0, M=EcefMatrix(_0_0_=-0.694658, _0_1_=-0.391781, _0_2_=0.603289, _1_0_=0.71934, _1_1_=-0.378338, _1_2_=0.58259, _2_0_=0.0, _2_1_=0.838671, _2_2_=0.544639), ecef=EcefFarrell22(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Test'\n    test 282 forward: 37288.97, 33374.29, 5783.65\n    test 283 name: Test\n    test 284 reverse: 33.3, 44.4, 6000.0\n    test 285 name: Test\n    test 286 name: Paris\n    test 287 Paris: 48.833, 2.333, 0.0\n    test 288 forward: -37518.64, 229949.65, -4260.43\n    test 289 name: Calais\n    test 290 reverse: 50.9, 1.8, -0.0\n    test 291 name: Paris\n    test 292 reverse: -38000.0, 230000.0, -4000.0\n    test 293 reverse: 50.9, 1.79, 264.92\n    test 294 forward: -38223.7, 229964.2, -4000.0\n\n    test 295 Zermatt: lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefFarrell22(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'  FAILED, KNOWN, expected Ltp\n    test 296 Matterhorn: (45.976, 7.658, 4531.01)\n    test 297 xyz: (-7134.8, -4556.3, 2852.4)\n    test 298 _local2ecef: 4403757.602, 592124.536, 4566652.082\n    test 299 _local2ecef: (4403757.602, 592124.536, 4566652.082, 45.976, 7.658, 4531.01, 1, None, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))  FAILED, KNOWN, expected Ecef9Tuple\n    test 300 _local2ecef: Ecef9Tuple\n    test 301 _ecef2local: (-7134.8, -4556.3, 2852.4, 45.976, 7.658, 4531.01, Ltp(lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefFarrell22(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'), Ecef9Tuple(x=4403757.601549, y=592124.535536, z=4566652.082005, lat=45.976, lon=7.657999, height=4531.009609, C=1, M=None, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84)), None)  FAILED, KNOWN, expected Local9Tuple\n    test 302 _ecef2local: Local9Tuple\n    test 303 Xyz: (-7134.8, -4556.3, 2852.4, None)\n    test 304 Aer: (-7134.912, -4444.548, 2852.474, None)\n    test 305 Enu: (-7134.8, -4556.3, 2852.4, None)\n    test 306 Ned: [-4556.3, -7134.8, -2852.4]\n    test 307 Enu: [-7134.8, -4556.3, 2852.4]\n    test 308 Ned: [-4556.3, -7134.8, -2852.4]\n\n    test 309 lon00: (90.0, 57.3, 0.0, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 310 lon00: (90.0, 3.75, 0.0, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n\n    test 311 Frustum: 90.0, 90.0\n    test 312 hfov: 90.0\n    test 313 vfov: 90.0\n    test 314 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None))\n    test 315 footprint.xyzLocal5: ([X:0.0, Y:0.0, Z:0.0], [X:1000.0, Y:1000.0, Z:0.0], [X:1000.0, Y:1000.0, Z:0.0], [X:-1000.0, Y:-1000.0, Z:0.0], [X:-1000.0, Y:-1000.0, Z:0.0])\n    test 316 footprint.toLatLon5: (LatLon_(00.0°N, 000.0°E), LatLon_(00.009044°N, 000.008983°E, +0.16), LatLon_(00.009044°N, 000.008983°E, +0.16), LatLon_(00.009044°S, 000.008983°W, +0.16), LatLon_(00.009044°S, 000.008983°W, +0.16))\n\n    test 317 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None))\n    test 318 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=414.213562, y=414.213562, z=0.0, ltp=None), Xyz4Tuple(x=414.213562, y=414.213562, z=0.0, ltp=None), Xyz4Tuple(x=-414.213562, y=-414.213562, z=0.0, ltp=None), Xyz4Tuple(x=-414.213562, y=-414.213562, z=0.0, ltp=None))\n    test 319 footprint: (Xyz4Tuple(x=-57289.961631, y=-57289.961631, z=0.0, ltp=None), Xyz4Tuple(x=2538.647896, y=2538.647896, z=0.0, ltp=None), Xyz4Tuple(x=2538.647896, y=2538.647896, z=0.0, ltp=None), Xyz4Tuple(x=-2299.842547, y=-2299.842547, z=0.0, ltp=None), Xyz4Tuple(x=-2299.842547, y=-2299.842547, z=0.0, ltp=None))\n\n    test 320 Attitude: (0.0, -10.0, 330.0, -20.0)\n    test 321 alt: 0.0\n    test 322 tilt: -10.0\n    test 323 roll: -20.0\n    test 324 yaw: 330.0\n    test 325 matrix: ((0.8137976813493736, -0.44096961052988237, -0.37852230636979256), (0.46984631039295416, 0.8825641192593855, -0.018028311236297286), (0.3420201433256688, -0.16317591116653488, 0.9254165783983233))  FAILED, KNOWN, expected ((0.8137976813493737, -0.4409696105298823, -0.3785223063697926), (0.4698463103929541, 0.8825641192593856, -0.01802831123629725), (0.3420201433256688, -0.16317591116653488, 0.9254165783983233))\n    test 326 rotate: (-0.005694, 1.334382, 1.104261)\n    test 327 tyr3d: (0.0, 0.0, 0.0)\n    test 328 tyr3d: (0.0, -2.0, 0.0)\n    test 329 tyr3d: (0.0, -2.0, 0.0)\n    test 330 tyr3d: (0.0, 0.0, -2.0)\n\n    test 331 Ltp: {'ecef': EcefVeness(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name='')}\n    test 332 name: Test\n    test 333 toStr: Ltp(lat0=33.0, lon0=44.0, height0=20.0, M=EcefMatrix(_0_0_=-0.694658, _0_1_=-0.391781, _0_2_=0.603289, _1_0_=0.71934, _1_1_=-0.378338, _1_2_=0.58259, _2_0_=0.0, _2_1_=0.838671, _2_2_=0.544639), ecef=EcefVeness(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Test')  FAILED, KNOWN, expected Ltp\n    test 334 copy(<class 'type'>): (<class 'pygeodesy.ltp.Ltp'>, True)\n    test 335 Ltp.copy(): (<class 'pygeodesy.ltp.Ltp'>, True)\n    test 336 New: lat0=33.0, lon0=44.0, height0=20.0, M=EcefMatrix(_0_0_=-0.694658, _0_1_=-0.391781, _0_2_=0.603289, _1_0_=0.71934, _1_1_=-0.378338, _1_2_=0.58259, _2_0_=0.0, _2_1_=0.838671, _2_2_=0.544639), ecef=EcefVeness(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Test'\n    test 337 forward: 37288.97, 33374.29, 5783.65\n    test 338 name: Test\n    test 339 reverse: 33.3, 44.4, 6000.0\n    test 340 name: Test\n    test 341 name: Paris\n    test 342 Paris: 48.833, 2.333, 0.0\n    test 343 forward: -37518.64, 229949.65, -4260.43\n    test 344 name: Calais\n    test 345 reverse: 50.9, 1.8, -0.0\n    test 346 name: Paris\n    test 347 reverse: -38000.0, 230000.0, -4000.0\n    test 348 reverse: 50.9, 1.79, 264.92\n    test 349 forward: -38223.7, 229964.2, -4000.0\n\n    test 350 Zermatt: lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefVeness(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'  FAILED, KNOWN, expected Ltp\n    test 351 Matterhorn: (45.976, 7.658, 4531.01)\n    test 352 xyz: (-7134.8, -4556.3, 2852.4)\n    test 353 _local2ecef: 4403757.602, 592124.536, 4566652.082\n    test 354 _local2ecef: (4403757.602, 592124.536, 4566652.082, 45.976, 7.658, 4531.01, 1, None, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))  FAILED, KNOWN, expected Ecef9Tuple\n    test 355 _local2ecef: Ecef9Tuple\n    test 356 _ecef2local: (-7134.8, -4556.3, 2852.4, 45.976, 7.658, 4531.01, Ltp(lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefVeness(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'), Ecef9Tuple(x=4403757.601549, y=592124.535536, z=4566652.082005, lat=45.976, lon=7.657999, height=4531.009608, C=1, M=None, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84)), None)  FAILED, KNOWN, expected Local9Tuple\n    test 357 _ecef2local: Local9Tuple\n    test 358 Xyz: (-7134.8, -4556.3, 2852.4, None)\n    test 359 Aer: (-7134.912, -4444.548, 2852.474, None)\n    test 360 Enu: (-7134.8, -4556.3, 2852.4, None)\n    test 361 Ned: [-4556.3, -7134.8, -2852.4]\n    test 362 Enu: [-7134.8, -4556.3, 2852.4]\n    test 363 Ned: [-4556.3, -7134.8, -2852.4]\n\n    test 364 lon00: (90.0, 57.3, 0.0, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 365 lon00: (90.0, 3.75, 0.0, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n\n    test 366 Frustum: 90.0, 90.0\n    test 367 hfov: 90.0\n    test 368 vfov: 90.0\n    test 369 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None))\n    test 370 footprint.xyzLocal5: ([X:0.0, Y:0.0, Z:0.0], [X:1000.0, Y:1000.0, Z:0.0], [X:1000.0, Y:1000.0, Z:0.0], [X:-1000.0, Y:-1000.0, Z:0.0], [X:-1000.0, Y:-1000.0, Z:0.0])\n    test 371 footprint.toLatLon5: (LatLon_(00.0°N, 000.0°E), LatLon_(00.009044°N, 000.008983°E, +0.16), LatLon_(00.009044°N, 000.008983°E, +0.16), LatLon_(00.009044°S, 000.008983°W, +0.16), LatLon_(00.009044°S, 000.008983°W, +0.16))\n\n    test 372 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None))\n    test 373 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=414.213562, y=414.213562, z=0.0, ltp=None), Xyz4Tuple(x=414.213562, y=414.213562, z=0.0, ltp=None), Xyz4Tuple(x=-414.213562, y=-414.213562, z=0.0, ltp=None), Xyz4Tuple(x=-414.213562, y=-414.213562, z=0.0, ltp=None))\n    test 374 footprint: (Xyz4Tuple(x=-57289.961631, y=-57289.961631, z=0.0, ltp=None), Xyz4Tuple(x=2538.647896, y=2538.647896, z=0.0, ltp=None), Xyz4Tuple(x=2538.647896, y=2538.647896, z=0.0, ltp=None), Xyz4Tuple(x=-2299.842547, y=-2299.842547, z=0.0, ltp=None), Xyz4Tuple(x=-2299.842547, y=-2299.842547, z=0.0, ltp=None))\n\n    test 375 Attitude: (0.0, -10.0, 330.0, -20.0)\n    test 376 alt: 0.0\n    test 377 tilt: -10.0\n    test 378 roll: -20.0\n    test 379 yaw: 330.0\n    test 380 matrix: ((0.8137976813493736, -0.44096961052988237, -0.37852230636979256), (0.46984631039295416, 0.8825641192593855, -0.018028311236297286), (0.3420201433256688, -0.16317591116653488, 0.9254165783983233))  FAILED, KNOWN, expected ((0.8137976813493737, -0.4409696105298823, -0.3785223063697926), (0.4698463103929541, 0.8825641192593856, -0.01802831123629725), (0.3420201433256688, -0.16317591116653488, 0.9254165783983233))\n    test 381 rotate: (-0.005694, 1.334382, 1.104261)\n    test 382 tyr3d: (0.0, 0.0, 0.0)\n    test 383 tyr3d: (0.0, -2.0, 0.0)\n    test 384 tyr3d: (0.0, -2.0, 0.0)\n    test 385 tyr3d: (0.0, 0.0, -2.0)\n\n    test 386 Ltp: {'ecef': EcefSudano(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name='')}\n    test 387 name: Test\n    test 388 toStr: Ltp(lat0=33.0, lon0=44.0, height0=20.0, M=EcefMatrix(_0_0_=-0.694658, _0_1_=-0.391781, _0_2_=0.603289, _1_0_=0.71934, _1_1_=-0.378338, _1_2_=0.58259, _2_0_=0.0, _2_1_=0.838671, _2_2_=0.544639), ecef=EcefSudano(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Test')  FAILED, KNOWN, expected Ltp\n    test 389 copy(<class 'type'>): (<class 'pygeodesy.ltp.Ltp'>, True)\n    test 390 Ltp.copy(): (<class 'pygeodesy.ltp.Ltp'>, True)\n    test 391 New: lat0=33.0, lon0=44.0, height0=20.0, M=EcefMatrix(_0_0_=-0.694658, _0_1_=-0.391781, _0_2_=0.603289, _1_0_=0.71934, _1_1_=-0.378338, _1_2_=0.58259, _2_0_=0.0, _2_1_=0.838671, _2_2_=0.544639), ecef=EcefSudano(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Test'\n    test 392 forward: 37288.97, 33374.29, 5783.65\n    test 393 name: Test\n    test 394 reverse: 33.33, 44.4, 5998.84  FAILED, KNOWN, expected 33.3, 44.4, 6000.0\n    test 395 name: Test\n    test 396 name: Paris\n    test 397 Paris: 48.833, 2.333, 0.0\n    test 398 forward: -37518.64, 229949.65, -4260.43\n    test 399 name: Calais\n    test 400 reverse: 51.01, 1.8, -11.8  FAILED, KNOWN, expected 50.9, 1.8, -0.0\n    test 401 name: Paris\n    test 402 reverse: -38000.0, 230000.0, -4000.0\n    test 403 reverse: 51.01, 1.79, 253.12  FAILED, KNOWN, expected 50.9, 1.79, 264.92\n    test 404 forward: -38223.7, 229964.2, -4000.0\n\n    test 405 Zermatt: lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefSudano(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'  FAILED, KNOWN, expected Ltp\n    test 406 Matterhorn: (46.06, 7.658, 4524.116)  FAILED, KNOWN, expected (45.976, 7.658, 4531.01)\n    test 407 xyz: (-7124.0, 4817.7, 2845.3)  FAILED, KNOWN, expected (-7134.8, -4556.3, 2852.4)\n    test 408 _local2ecef: 4403757.602, 592124.536, 4566652.082\n    test 409 _local2ecef: (4403757.602, 592124.536, 4566652.082, 46.06, 7.658, 4524.116, 1, None, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))  FAILED, KNOWN, expected Ecef9Tuple\n    test 410 _local2ecef: Ecef9Tuple\n    test 411 _ecef2local: (-7134.8, -4556.3, 2852.4, 46.06, 7.658, 4524.116, Ltp(lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefSudano(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'), Ecef9Tuple(x=4403757.601549, y=592124.535536, z=4566652.082005, lat=46.060275, lon=7.657999, height=4524.115631, C=1, M=None, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84)), None)  FAILED, KNOWN, expected Local9Tuple\n    test 412 _ecef2local: Local9Tuple\n    test 413 Xyz: (-7134.8, -4556.3, 2852.4, None)\n    test 414 Aer: (-7134.912, -4444.548, 2852.474, None)\n    test 415 Enu: (-7134.8, -4556.3, 2852.4, None)\n    test 416 Ned: [-4556.3, -7134.8, -2852.4]\n    test 417 Enu: [-7134.8, -4556.3, 2852.4]\n    test 418 Ned: [-4556.3, -7134.8, -2852.4]\n\n    test 419 lon00: (90.0, 57.3, 0.0, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 420 lon00: (90.0, 3.75, 0.0, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n\n    test 421 Frustum: 90.0, 90.0\n    test 422 hfov: 90.0\n    test 423 vfov: 90.0\n    test 424 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None))\n    test 425 footprint.xyzLocal5: ([X:0.0, Y:0.0, Z:0.0], [X:1000.0, Y:1000.0, Z:0.0], [X:1000.0, Y:1000.0, Z:0.0], [X:-1000.0, Y:-1000.0, Z:0.0], [X:-1000.0, Y:-1000.0, Z:0.0])\n    test 426 footprint.toLatLon5: (LatLon_(00.0°N, 000.0°E), LatLon_(00.009044°N, 000.008983°E, +0.16), LatLon_(00.009044°N, 000.008983°E, +0.16), LatLon_(00.009044°S, 000.008983°W, +0.16), LatLon_(00.009044°S, 000.008983°W, +0.16))\n\n    test 427 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None))\n    test 428 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=414.213562, y=414.213562, z=0.0, ltp=None), Xyz4Tuple(x=414.213562, y=414.213562, z=0.0, ltp=None), Xyz4Tuple(x=-414.213562, y=-414.213562, z=0.0, ltp=None), Xyz4Tuple(x=-414.213562, y=-414.213562, z=0.0, ltp=None))\n    test 429 footprint: (Xyz4Tuple(x=-57289.961631, y=-57289.961631, z=0.0, ltp=None), Xyz4Tuple(x=2538.647896, y=2538.647896, z=0.0, ltp=None), Xyz4Tuple(x=2538.647896, y=2538.647896, z=0.0, ltp=None), Xyz4Tuple(x=-2299.842547, y=-2299.842547, z=0.0, ltp=None), Xyz4Tuple(x=-2299.842547, y=-2299.842547, z=0.0, ltp=None))\n\n    test 430 Attitude: (0.0, -10.0, 330.0, -20.0)\n    test 431 alt: 0.0\n    test 432 tilt: -10.0\n    test 433 roll: -20.0\n    test 434 yaw: 330.0\n    test 435 matrix: ((0.8137976813493736, -0.44096961052988237, -0.37852230636979256), (0.46984631039295416, 0.8825641192593855, -0.018028311236297286), (0.3420201433256688, -0.16317591116653488, 0.9254165783983233))  FAILED, KNOWN, expected ((0.8137976813493737, -0.4409696105298823, -0.3785223063697926), (0.4698463103929541, 0.8825641192593856, -0.01802831123629725), (0.3420201433256688, -0.16317591116653488, 0.9254165783983233))\n    test 436 rotate: (-0.005694, 1.334382, 1.104261)\n    test 437 tyr3d: (0.0, 0.0, 0.0)\n    test 438 tyr3d: (0.0, -2.0, 0.0)\n    test 439 tyr3d: (0.0, -2.0, 0.0)\n    test 440 tyr3d: (0.0, 0.0, -2.0)\n\n    test 441 Ltp: {'ecef': EcefYou(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name='')}\n    test 442 name: Test\n    test 443 toStr: Ltp(lat0=33.0, lon0=44.0, height0=20.0, M=EcefMatrix(_0_0_=-0.694658, _0_1_=-0.391781, _0_2_=0.603289, _1_0_=0.71934, _1_1_=-0.378338, _1_2_=0.58259, _2_0_=0.0, _2_1_=0.838671, _2_2_=0.544639), ecef=EcefYou(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Test')  FAILED, KNOWN, expected Ltp\n    test 444 copy(<class 'type'>): (<class 'pygeodesy.ltp.Ltp'>, True)\n    test 445 Ltp.copy(): (<class 'pygeodesy.ltp.Ltp'>, True)\n    test 446 New: lat0=33.0, lon0=44.0, height0=20.0, M=EcefMatrix(_0_0_=-0.694658, _0_1_=-0.391781, _0_2_=0.603289, _1_0_=0.71934, _1_1_=-0.378338, _1_2_=0.58259, _2_0_=0.0, _2_1_=0.838671, _2_2_=0.544639), ecef=EcefYou(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Test'\n    test 447 forward: 37288.97, 33374.29, 5783.65\n    test 448 name: Test\n    test 449 reverse: 33.3, 44.4, 6000.0\n    test 450 name: Test\n    test 451 name: Paris\n    test 452 Paris: 48.833, 2.333, 0.0\n    test 453 forward: -37518.64, 229949.65, -4260.43\n    test 454 name: Calais\n    test 455 reverse: 50.9, 1.8, -0.0\n    test 456 name: Paris\n    test 457 reverse: -38000.0, 230000.0, -4000.0\n    test 458 reverse: 50.9, 1.79, 264.92\n    test 459 forward: -38223.7, 229964.2, -4000.0\n\n    test 460 Zermatt: lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefYou(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'  FAILED, KNOWN, expected Ltp\n    test 461 Matterhorn: (45.976, 7.658, 4531.01)\n    test 462 xyz: (-7134.8, -4556.3, 2852.4)\n    test 463 _local2ecef: 4403757.602, 592124.536, 4566652.082\n    test 464 _local2ecef: (4403757.602, 592124.536, 4566652.082, 45.976, 7.658, 4531.01, 1, None, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))  FAILED, KNOWN, expected Ecef9Tuple\n    test 465 _local2ecef: Ecef9Tuple\n    test 466 _ecef2local: (-7134.8, -4556.3, 2852.4, 45.976, 7.658, 4531.01, Ltp(lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefYou(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'), Ecef9Tuple(x=4403757.601549, y=592124.535536, z=4566652.082005, lat=45.976, lon=7.657999, height=4531.009608, C=1, M=None, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84)), None)  FAILED, KNOWN, expected Local9Tuple\n    test 467 _ecef2local: Local9Tuple\n    test 468 Xyz: (-7134.8, -4556.3, 2852.4, None)\n    test 469 Aer: (-7134.912, -4444.548, 2852.474, None)\n    test 470 Enu: (-7134.8, -4556.3, 2852.4, None)\n    test 471 Ned: [-4556.3, -7134.8, -2852.4]\n    test 472 Enu: [-7134.8, -4556.3, 2852.4]\n    test 473 Ned: [-4556.3, -7134.8, -2852.4]\n\n    test 474 lon00: (90.0, 57.3, 0.0, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 475 lon00: (90.0, 3.75, 0.0, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n\n    test 476 Frustum: 90.0, 90.0\n    test 477 hfov: 90.0\n    test 478 vfov: 90.0\n    test 479 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None))\n    test 480 footprint.xyzLocal5: ([X:0.0, Y:0.0, Z:0.0], [X:1000.0, Y:1000.0, Z:0.0], [X:1000.0, Y:1000.0, Z:0.0], [X:-1000.0, Y:-1000.0, Z:0.0], [X:-1000.0, Y:-1000.0, Z:0.0])\n    test 481 footprint.toLatLon5: (LatLon_(00.0°N, 000.0°E), LatLon_(00.009044°N, 000.008983°E, +0.16), LatLon_(00.009044°N, 000.008983°E, +0.16), LatLon_(00.009044°S, 000.008983°W, +0.16), LatLon_(00.009044°S, 000.008983°W, +0.16))\n\n    test 482 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None))\n    test 483 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=414.213562, y=414.213562, z=0.0, ltp=None), Xyz4Tuple(x=414.213562, y=414.213562, z=0.0, ltp=None), Xyz4Tuple(x=-414.213562, y=-414.213562, z=0.0, ltp=None), Xyz4Tuple(x=-414.213562, y=-414.213562, z=0.0, ltp=None))\n    test 484 footprint: (Xyz4Tuple(x=-57289.961631, y=-57289.961631, z=0.0, ltp=None), Xyz4Tuple(x=2538.647896, y=2538.647896, z=0.0, ltp=None), Xyz4Tuple(x=2538.647896, y=2538.647896, z=0.0, ltp=None), Xyz4Tuple(x=-2299.842547, y=-2299.842547, z=0.0, ltp=None), Xyz4Tuple(x=-2299.842547, y=-2299.842547, z=0.0, ltp=None))\n\n    test 485 Attitude: (0.0, -10.0, 330.0, -20.0)\n    test 486 alt: 0.0\n    test 487 tilt: -10.0\n    test 488 roll: -20.0\n    test 489 yaw: 330.0\n    test 490 matrix: ((0.8137976813493736, -0.44096961052988237, -0.37852230636979256), (0.46984631039295416, 0.8825641192593855, -0.018028311236297286), (0.3420201433256688, -0.16317591116653488, 0.9254165783983233))  FAILED, KNOWN, expected ((0.8137976813493737, -0.4409696105298823, -0.3785223063697926), (0.4698463103929541, 0.8825641192593856, -0.01802831123629725), (0.3420201433256688, -0.16317591116653488, 0.9254165783983233))\n    test 491 rotate: (-0.005694, 1.334382, 1.104261)\n    test 492 tyr3d: (0.0, 0.0, 0.0)\n    test 493 tyr3d: (0.0, -2.0, 0.0)\n    test 494 tyr3d: (0.0, -2.0, 0.0)\n    test 495 tyr3d: (0.0, 0.0, -2.0)\n\n    test 496 ChLV: ...\n    test 497 name: Test\n    test 498 ChLV_: ChLV\n\n    test 499 forward1: (-72.039994, -147.361444, -49.552111, 46.95108, 7.438637, 0.0, ChLV(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n    test 500 Y, X, h_: (-72.03999403763596, -147.36144397473055, -49.5521107337268)\n    test 501 EN2_LV95: (2599927.960006, 1199852.638556)\n    test 502 yx2_LV03: (599927.960006, 199852.638556)\n    test 503 reverse1: (-72.039994, -147.361444, -49.552111, 46.95108, 7.438637, 0.0, ChLV(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n\n    test 504 reverse2: (100000.0, 0.0, 600.0, 46.944873, 8.752874, 1431.948128, ChLV(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n    test 505 forward2: (100000.0, 0.0, 600.0, 46.944873, 8.752874, 1431.948128, ChLV(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n    test 506 Y, X, h_: (100000.00000000006, -6.588459045415719e-10, 600.0000000007242)\n    test 507 EN2_LV95: (2700000.0, 1200000.0)\n    test 508 yx2_LV03: (700000.0, 200000.0)\n\n    test 509 forward3: (99920.639806, -100148.24791, -967.661696, 46.044131, 8.730497, 650.6, ChLV(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n    test 510 Y, X, h_: (99920.63980649532, -100148.24791021261, -967.6616955399912)\n    test 511 EN2_LV95: (2699920.639806, 1099851.75209)\n    test 512 yx2_LV03: (699920.639806, 99851.75209)\n    test 513 reverse3: (99920.639806, -100148.24791, -967.661696, 46.044131, 8.730497, 650.6, ChLV(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n\n    test 514 forward4: (79527.502386, 12274.804229, -556.312155, 47.058043, 8.48642, 0.0, ChLV(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n    test 515 Y, X, h_: (79527.50238583283, 12274.80422893927, -556.3121548987446)\n    test 516 EN2_LV95: (2679527.502386, 1212274.804229)\n    test 517 yx2_LV03: (679527.502386, 212274.804229)\n    test 518 reverse4: (79527.502386, 12274.804229, -556.312155, 47.058043, 8.48642, -0.0, ChLV(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n\n    test 519 REFRAME1: (8.616351530455896, 46.654750670631664, 3083.4064441197074)  FAILED, KNOWN, expected (8.61588452888461, 46.6532932166132, 2367.70367439557)\n    test 520 REFRAME1:  0.00146 m\n    test 521 REFRAME2: (10.204043023734306, 46.777835938708535, 5053.168786317753)  FAILED, KNOWN, expected (10.2046874099038, 46.7763864160066, 1546.62256775331)\n    test 522 REFRAME2:  0.00145 m\n    test 523 REFRAME3: (7.231565437123991, 47.395386713752515, 1150.358929550846)  FAILED, KNOWN, expected (7.23058814336896, 47.3941353658685, 940.206020880491)\n    test 524 REFRAME3:  0.00125 m\n    test 525 REFRAME4: (9.843252123471997, 46.814319314291666, 4291.256736215736)  FAILED, KNOWN, expected (9.84351348200287, 46.8129146868336, 1645.59174753912)\n    test 526 REFRAME4:  0.0014 m\n    test 527 REFRAME5: (6.568908171267955, 46.52284580890318, 985.7597106108213)  FAILED, KNOWN, expected (6.56789363190021, 46.5214647527993, 460.491580192)\n    test 528 REFRAME5:  0.00138 m\n    test 529 REFRAME6: (8.731242095241983, 46.04567715552448, 2216.7888714367236)  FAILED, KNOWN, expected (8.73049738375132, 46.0441209510033, 650.012275829911)\n    test 530 REFRAME6:  0.00156 m\n\n    test 531 Bollinger.lat: 46°11′13.03444″N  FAILED, KNOWN, expected 46°11′12.03969″N\n    test 532 Bollinger.lon: 009°07′55.69155″E  FAILED, KNOWN, expected 009°07′57.29664″E\n    test 533 Zermatt: (46.01693292843191, 7.7455811694023975, 2629.5454517406183)  FAILED, KNOWN, expected (46.015314107, 7.74720273, 1742.449)\n    test 534 Zermatt:  0.00162 m\n    test 535 Zimmerwald: (46.878427446046224, 7.466218796566257, 953.0972897404835)  FAILED, KNOWN, expected (46.878427446, 7.466218797, 953.0973)\n    test 536 Zimmerwald:  4.34e-10 m\n    test 537 Chrischona: (47.56830864684501, 7.66954858440231, 897.4060435656095)  FAILED, KNOWN, expected (47.568308647, 7.6695485844, 897.406)\n    test 538 Chrischona:  1.55e-10 m\n    test 539 Pfaender: (47.516320169780975, 9.784378737247414, 3868.8598426346603)  FAILED, KNOWN, expected (47.5163201698, 9.7843787372, 3868.8599)\n    test 540 Pfaender:  4.74e-11 m\n    test 541 La Givrine: (46.45557406857667, 6.103316269663712, 2313.9449708991415)  FAILED, KNOWN, expected (46.4555740686, 6.1033162697, 2313.94497)\n    test 542 La Givrine:  3.63e-11 m\n    test 543 Monte Generoso: (45.93111844449693, 9.021602047098654, 3855.4332412055323)  FAILED, KNOWN, expected (45.9311184445, 9.0216020471, 3855.4332)\n    test 544 Monte Generoso:  3.07e-12 m\n\n    test 545 ChLVa: ...\n    test 546 name: Test\n    test 547 ChLV_: ChLVa\n\n    test 548 forward1: (0.329415, -0.292702, -49.554242, 46.95108, 7.438637, 0.0, ChLVa(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n    test 549 Y, X, h_: (0.3294154685019251, -0.2927016084473205, -49.554241824400016)\n    test 550 EN2_LV95: (2600000.329415, 1199999.707298)\n    test 551 yx2_LV03: (600000.329415, 199999.707298)\n    test 552 reverse1: (0.329415, -0.292702, -49.554242, 46.951078, 7.438642, -0.004239, ChLVa(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n\n    test 553 reverse2: (100000.0, -100000.0, 600.0, 46.044127, 8.730499, 650.554, ChLVa(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n    test 554 forward2: (99999.933937, -100000.44412, 600.003469, 46.044127, 8.730499, 650.554, ChLVa(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n    test 555 Y, X, h_: (99999.93393731702, -100000.44412019118, 600.0034685464)\n    test 556 EN2_LV95: (2699999.933937, 1099999.55588)\n    test 557 yx2_LV03: (699999.933937, 99999.55588)\n\n    test 558 forward3: (99999.763621, -100000.026905, 600.049476, 46.044131, 8.730497, 650.6, ChLVa(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n    test 559 Y, X, h_: (99999.76362116335, -100000.0269049639, 600.0494759100001)\n    test 560 EN2_LV95: (2699999.763621, 1099999.973095)\n    test 561 yx2_LV03: (699999.763621, 99999.973095)\n    test 562 reverse3: (99999.763621, -100000.026905, 600.049476, 46.044127, 8.730496, 650.603479, ChLVa(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n\n    test 563 forward4: (79602.736359, 12421.914221, -48.257243, 47.058043, 8.48642, 0.0, ChLVa(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n    test 564 Y, X, h_: (79602.73635877526, 12421.914220824743, -48.25724328779257)\n    test 565 EN2_LV95: (2679602.736359, 1212421.914221)\n    test 566 yx2_LV03: (679602.736359, 212421.914221)\n    test 567 reverse4: (79602.736359, 12421.914221, -48.257243, 47.058038, 8.486421, 0.00853, ChLVa(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n\n    test 568 REFRAME1: (8.615878879495897, 46.65329026883798, 2365.31877736998)  FAILED, KNOWN, expected (8.61588452888461, 46.6532932166132, 2367.70367439557)\n    test 569 REFRAME1:  5.65e-06 m\n    test 570 REFRAME2: (10.204675703252203, 46.77638487390875, 1542.5231657804)  FAILED, KNOWN, expected (10.2046874099038, 46.7763864160066, 1546.62256775331)\n    test 571 REFRAME2:  1.17e-05 m\n    test 572 REFRAME3: (7.230597895755378, 47.39413163959343, 939.5622657947999)  FAILED, KNOWN, expected (7.23058814336896, 47.3941353658685, 940.206020880491)\n    test 573 REFRAME3:  9.75e-06 m\n    test 574 REFRAME4: (9.843502988079765, 46.812913925274714, 1642.70478811448)  FAILED, KNOWN, expected (9.84351348200287, 46.8129146868336, 1645.59174753912)\n    test 575 REFRAME4:  1.05e-05 m\n    test 576 REFRAME5: (6.5678939352793595, 46.521468558550154, 462.1027394584)  FAILED, KNOWN, expected (6.56789363190021, 46.5214647527993, 460.491580192)\n    test 577 REFRAME5:  3.81e-06 m\n    test 578 REFRAME6: (8.730499333333333, 46.04412677777777, 650.554)  FAILED, KNOWN, expected (8.73049738375132, 46.0441209510033, 650.012275829911)\n    test 579 REFRAME6:  5.83e-06 m\n\n    test 580 Bollinger.lat: 46°11′07.65425″N  FAILED, KNOWN, expected 46°11′12.03969″N\n    test 581 Bollinger.lon: 009°07′52.99874″E  FAILED, KNOWN, expected 009°07′57.29664″E\n    test 582 Zermatt: (46.01531297876282, 7.744712831892469, 1739.1724096628)  FAILED, KNOWN, expected (46.015314107, 7.74720273, 1742.449)\n    test 583 Zermatt:  0.00249 m\n    test 584 Zimmerwald: (46.877092307814216, 7.465275686541408, 947.6256267527999)  FAILED, KNOWN, expected (46.878427446, 7.466218797, 953.0973)\n    test 585 Zimmerwald:  0.00134 m\n    test 586 Chrischona: (47.56704452300608, 7.668609312668058, 503.84493534800004)  FAILED, KNOWN, expected (47.568308647, 7.6695485844, 897.406)\n    test 587 Chrischona:  0.00126 m\n    test 588 Pfaender: (47.51533372240414, 9.784358161933797, 1088.46794437916)  FAILED, KNOWN, expected (47.5163201698, 9.7843787372, 3868.8599)\n    test 589 Pfaender:  0.000986 m\n    test 590 La Givrine: (46.45409066669543, 6.1020351431347315, 1259.50889260448)  FAILED, KNOWN, expected (46.4555740686, 6.1033162697, 2313.94497)\n    test 591 La Givrine:  0.00148 m\n    test 592 Monte Generoso: (45.92930092608269, 9.021219925007552, 1687.1468504651998)  FAILED, KNOWN, expected (45.9311184445, 9.0216020471, 3855.4332)\n    test 593 Monte Generoso:  0.00182 m\n\n    test 594 ChLVe: ...\n    test 595 name: Test\n    test 596 ChLV_: ChLVe\n\n    test 597 forward1: (-72.031251, -147.344948, -49.554242, 46.95108, 7.438637, 0.0, ChLVe(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n    test 598 Y, X, h_: (-72.031251437589, -147.3449483831346, -49.554241824400016)\n    test 599 EN2_LV95: (2599927.968749, 1199852.655052)\n    test 600 yx2_LV03: (599927.968749, 199852.655052)\n    test 601 reverse1: (-72.031251, -147.344948, -49.554242, 46.95108, 7.438637, 0.000002, ChLVe(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n\n    test 602 reverse2: (100000.0, 0.0, 600.0, 46.944869, 8.753274, 648.29, ChLVe(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n    test 603 forward2: (100000.000001, 0.0, 600.012265, 46.944869, 8.753274, 648.29, ChLVe(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n    test 604 Y, X, h_: (100000.00000057962, 1.8112537807228997e-07, 600.0122653531955)\n    test 605 EN2_LV95: (2700000.000001, 1200000.0)\n    test 606 yx2_LV03: (700000.000001, 200000.0)\n\n    test 607 forward3: (99914.740455, -100135.079382, 600.049476, 46.044131, 8.730497, 650.6, ChLVe(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n    test 608 Y, X, h_: (99914.74045471674, -100135.07938181335, 600.0494759100001)\n    test 609 EN2_LV95: (2699914.740455, 1099864.920618)\n    test 610 yx2_LV03: (699914.740455, 99864.920618)\n    test 611 reverse3: (99914.740455, -100135.079382, 600.049476, 46.044131, 8.730497, 650.607608, ChLVe(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n\n    test 612 forward4: (79520.050001, 12273.439993, -48.257243, 47.058043, 8.48642, 0.0, ChLVe(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n    test 613 Y, X, h_: (79520.05000103211, 12273.439993103837, -48.25724328779257)\n    test 614 EN2_LV95: (2679520.050001, 1212273.439993)\n    test 615 yx2_LV03: (679520.050001, 212273.439993)\n    test 616 reverse4: (79520.050001, 12273.439993, -48.257243, 47.058043, 8.48642, 0.012933, ChLVe(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n\n    test 617 REFRAME1: (8.617004216786864, 46.65457267826783, 2365.31877736998)  FAILED, KNOWN, expected (8.61588452888461, 46.6532932166132, 2367.70367439557)\n    test 618 REFRAME1:  0.00128 m\n    test 619 REFRAME2: (10.206045201491072, 46.77766011924391, 1542.5231657804)  FAILED, KNOWN, expected (10.2046874099038, 46.7763864160066, 1546.62256775331)\n    test 620 REFRAME2:  0.00136 m\n    test 621 REFRAME3: (7.231508661195409, 47.39550748841831, 939.5622657947999)  FAILED, KNOWN, expected (7.23058814336896, 47.3941353658685, 940.206020880491)\n    test 622 REFRAME3:  0.00137 m\n    test 623 REFRAME4: (9.844818386934287, 46.81419800173997, 1642.70478811448)  FAILED, KNOWN, expected (9.84351348200287, 46.8129146868336, 1645.59174753912)\n    test 624 REFRAME4:  0.0013 m\n    test 625 REFRAME5: (6.568709824649145, 46.52273852064229, 462.1027394584)  FAILED, KNOWN, expected (6.56789363190021, 46.5214647527993, 460.491580192)\n    test 626 REFRAME5:  0.00127 m\n    test 627 REFRAME6: (8.731627351611777, 46.04533300622347, 650.554)  FAILED, KNOWN, expected (8.73049738375132, 46.0441209510033, 650.012275829911)\n    test 628 REFRAME6:  0.00121 m\n\n    test 629 Bollinger.lat: 46°11′12.03969″N\n    test 630 Bollinger.lon: 009°07′57.29664″E\n    test 631 Bollinger.gamma: 1.3747154949761575\n\n    test 632 Zermatt: (46.016524980589146, 7.745700583699864, 1739.1724096628)  FAILED, KNOWN, expected (46.015314107, 7.74720273, 1742.449)\n    test 633 Zermatt:  0.0015 m\n    test 634 Zimmerwald: (46.878408134660475, 7.46622597045386, 947.6256267527999)  FAILED, KNOWN, expected (46.878427446, 7.466218797, 953.0973)\n    test 635 Zimmerwald:  1.93e-05 m\n    test 636 Chrischona: (47.56844071309313, 7.66959585429788, 503.84493534800004)  FAILED, KNOWN, expected (47.568308647, 7.6695485844, 897.406)\n    test 637 Chrischona:  0.000132 m\n    test 638 Pfaender: (47.51669640784962, 9.785678729594727, 1088.46794437916)  FAILED, KNOWN, expected (47.5163201698, 9.7843787372, 3868.8599)\n    test 639 Pfaender:  0.0013 m\n    test 640 La Givrine: (46.45534732351903, 6.102781792813615, 1259.50889260448)  FAILED, KNOWN, expected (46.4555740686, 6.1033162697, 2313.94497)\n    test 641 La Givrine:  0.000534 m\n    test 642 Monte Generoso: (45.93048753878003, 9.022387820586593, 1687.1468504651998)  FAILED, KNOWN, expected (45.9311184445, 9.0216020471, 3855.4332)\n    test 643 Monte Generoso:  0.000786 m\n\n    102 of 643 testLtp.py tests (15.9%) FAILED, incl. 90 KNOWN plus 12 DeprecationWarnings (pygeodesy 26.3.26 Python 3.13.12 64bit arm64 coverage 7.10.7 geographiclib 2.1 numpy 2.3.3 scipy 1.16.2 Math 2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 macOS 26.3.1 isLazy 1 -W  default) 213.383 ms\nrunning /Library/Framewo....n3.13 -W default ~/PyGeodesy/test/testLtpTuples.py\n\n    testing testLtpTuples.py 23.11.21 isLazy=1\n\n    test 1 Aer.toRepr: [A:60.0°, E:40.0°, R:1000.0]\n    test 2 Aer.toStr: [60.0, 40.0, 1000.0]\n    test 3 Aer.xyzLocal.toAer: [60.0, 40.0, 1000.0]\n    test 4 Aer.xyzLocal.toAer: [60.0, 40.0, 1000.0]\n    test 5 Aer.xyzLocal.toEnu: [663.41, 383.02, 642.79]\n    test 6 Enu.xyzLocal.toAer: [60.0, 40.0, 1000.0]\n    test 7 Aer.xyzLocal.toNed: [383.02, 663.41, -642.79]\n    test 8 Ned.xyzLocal.toAer: [60.0, 40.0, 1000.0]\n    test 9 Aer.xyzLocal.toXyz: [663.41, 383.02, 642.79]\n    test 10 Xyz.xyzLocal.toAer: [60.0, 40.0, 1000.0]\n    test 11 Aer.toCartesian: [4397663.96, 599165.33, 4568492.25]\n    test 12 Cartesian.toLocal Aer: [60.0, 40.0, 1000.0]\n    test 13 Aer.toLatLon: 46°01′13.6″N, 007°45′30.83″E, +2315.83m\n    test 14 LatLon.toLocal Aer: [60.0, 40.0, 1000.0]\n    test 15 Aer.azimuth: 60.0\n    test 16 Aer.elevation: 40.0\n    test 17 Aer.slantrange: 1000.0\n    test 18 Aer.groundrange: 766.044\n    test 19 Aer.east: 663.414\n    test 20 Aer.north: 383.022\n    test 21 Aer.up: 642.788\n    test 22 Aer.down: -642.788\n    test 23 Aer.x: 663.414\n    test 24 Aer.y: 383.022\n    test 25 Aer.z: 642.788\n    test 26 Aer.xyz: 663.414, 383.022, 642.788\n\n    test 27 Los: [A:45.0°, E:-45.0°, R:1.0]\n    test 28 Los: [E:0.5, N:0.5, U:-0.707]\n    test 29 Los: [U:-0.707, V:0.5, W:0.5]\n    test 30 Los: [E:0.5, N:0.5, U:-0.707]\n\n    test 31 Enu.toRepr: [E:100.0, N:200.0, U:1000.0]\n    test 32 Enu.toStr: [100.0, 200.0, 1000.0]\n    test 33 Enu.xyzLocal.toAer: [26.57, 77.4, 1024.7]\n    test 34 Aer.xyzLocal.toEnu: [100.0, 200.0, 1000.0]\n    test 35 Enu.xyzLocal.toEnu: [100.0, 200.0, 1000.0]\n    test 36 Enu.xyzLocal.toEnu: [100.0, 200.0, 1000.0]\n    test 37 Enu.xyzLocal.toNed: [200.0, 100.0, -1000.0]\n    test 38 Ned.xyzLocal.toEnu: [100.0, 200.0, 1000.0]\n    test 39 Enu.xyzLocal.toXyz: [100.0, 200.0, 1000.0]\n    test 40 Xyz.xyzLocal.toEnu: [100.0, 200.0, 1000.0]\n    test 41 Enu.toCartesian: [4398116.23, 598658.27, 4568622.18]\n    test 42 Cartesian.toLocal Enu: [100.0, 200.0, 1000.0]\n    test 43 Enu.toLatLon: 46°01′07.67″N, 007°45′04.65″E, +2673.00m\n    test 44 LatLon.toLocal Enu: [100.0, 200.0, 1000.0]\n    test 45 Enu.azimuth: 26.565\n    test 46 Enu.elevation: 77.396\n    test 47 Enu.slantrange: 1024.695\n    test 48 Enu.groundrange: 223.607\n    test 49 Enu.east: 100.0\n    test 50 Enu.north: 200.0\n    test 51 Enu.up: 1000.0\n    test 52 Enu.down: -1000.0\n    test 53 Enu.x: 100.0\n    test 54 Enu.y: 200.0\n    test 55 Enu.z: 1000.0\n    test 56 Enu.xyz: 100.0, 200.0, 1000.0\n\n    test 57 Los: [A:45.0°, E:-45.0°, R:1.0]\n    test 58 Los: [E:0.5, N:0.5, U:-0.707]\n    test 59 Los: [U:-0.707, V:0.5, W:0.5]\n    test 60 Los: [E:0.5, N:0.5, U:-0.707]\n\n    test 61 Ned.toRepr: [N:200.0, E:100.0, D:1000.0]\n    test 62 Ned.toStr: [200.0, 100.0, 1000.0]\n    test 63 Ned.xyzLocal.toAer: [26.57, -77.4, 1024.7]\n    test 64 Aer.xyzLocal.toNed: [200.0, 100.0, 1000.0]\n    test 65 Ned.xyzLocal.toEnu: [100.0, 200.0, -1000.0]\n    test 66 Enu.xyzLocal.toNed: [200.0, 100.0, 1000.0]\n    test 67 Ned.xyzLocal.toNed: [200.0, 100.0, 1000.0]\n    test 68 Ned.xyzLocal.toNed: [200.0, 100.0, 1000.0]\n    test 69 Ned.xyzLocal.toXyz: [100.0, 200.0, -1000.0]\n    test 70 Xyz.xyzLocal.toNed: [200.0, 100.0, 1000.0]\n    test 71 Ned.toCartesian: [4396740.02, 598470.98, 4567183.09]\n    test 72 Cartesian.toLocal Ned: [200.0, 100.0, 1000.0]\n    test 73 Ned.toLatLon: 46°01′07.68″N, 007°45′04.65″E, +673.00m\n    test 74 LatLon.toLocal Ned: [200.0, 100.0, 1000.0]\n    test 75 Ned.azimuth: 26.565\n    test 76 Ned.elevation: -77.396\n    test 77 Ned.slantrange: 1024.695\n    test 78 Ned.groundrange: 223.607\n    test 79 Ned.east: 100.0\n    test 80 Ned.north: 200.0\n    test 81 Ned.up: -1000.0\n    test 82 Ned.down: 1000.0\n    test 83 Ned.x: 100.0\n    test 84 Ned.y: 200.0\n    test 85 Ned.z: -1000.0\n    test 86 Ned.xyz: 100.0, 200.0, -1000.0\n\n    test 87 Los: [A:45.0°, E:-45.0°, R:1.0]\n    test 88 Los: [E:0.5, N:0.5, U:-0.707]\n    test 89 Los: [U:-0.707, V:0.5, W:0.5]\n    test 90 Los: [E:0.5, N:0.5, U:-0.707]\n\n    test 91 Xyz.toRepr: [X:10.0, Y:20.0, Z:100.0]\n    test 92 Xyz.toStr: [10.0, 20.0, 100.0]\n    test 93 Xyz.xyzLocal.toAer: [26.57, 77.4, 102.47]\n    test 94 Aer.xyzLocal.toXyz: [10.0, 20.0, 100.0]\n    test 95 Xyz.xyzLocal.toEnu: [10.0, 20.0, 100.0]\n    test 96 Enu.xyzLocal.toXyz: [10.0, 20.0, 100.0]\n    test 97 Xyz.xyzLocal.toNed: [20.0, 10.0, -100.0]\n    test 98 Ned.xyzLocal.toXyz: [10.0, 20.0, 100.0]\n    test 99 Xyz.xyzLocal.toXyz: [10.0, 20.0, 100.0]\n    test 100 Xyz.xyzLocal.toXyz: [10.0, 20.0, 100.0]\n    test 101 Xyz.toCartesian: [4397637.41, 598502.28, 4567849.59]\n    test 102 Cartesian.toLocal Xyz: [10.0, 20.0, 100.0]\n    test 103 Xyz.toLatLon: 46°01′01.85″N, 007°45′00.46″E, +1773.00m\n    test 104 LatLon.toLocal Xyz: [10.0, 20.0, 100.0]\n    test 105 Xyz.azimuth: 26.565\n    test 106 Xyz.elevation: 77.396\n    test 107 Xyz.slantrange: 102.47\n    test 108 Xyz.groundrange: 22.361\n    test 109 Xyz.east: 10.0\n    test 110 Xyz.north: 20.0\n    test 111 Xyz.up: 100.0\n    test 112 Xyz.down: -100.0\n    test 113 Xyz.x: 10.0\n    test 114 Xyz.y: 20.0\n    test 115 Xyz.z: 100.0\n    test 116 Xyz.xyz: 10.0, 20.0, 100.0\n\n    test 117 Los: [A:45.0°, E:-45.0°, R:1.0]\n    test 118 Los: [E:0.5, N:0.5, U:-0.707]\n    test 119 Los: [U:-0.707, V:0.5, W:0.5]\n    test 120 Los: [E:0.5, N:0.5, U:-0.707]\n\n    test 121 Local9Tuple.toRepr: Local9Tuple(x=10.0, y=20.0, z=100.0, lat=46.02, lon=7.75, height=1773.0, ltp=Ltp(lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transfo\n    test 122 Local9Tuple.toStr: (10.0, 20.0, 100.0, 46.02, 7.75, 1773.0, Ltp(lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'\n    test 123 Local9Tuple.xyzLocal.toAer: [26.57, 77.4, 102.47]\n    test 124 Aer.xyzLocal.toLocal9Tuple: (10.0, 20.0, 100.0, 46.02, 7.75, 1773.0, Ltp(lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'\n    test 125 Local9Tuple.xyzLocal.toEnu: [10.0, 20.0, 100.0]\n    test 126 Enu.xyzLocal.toLocal9Tuple: (10.0, 20.0, 100.0, 46.02, 7.75, 1773.0, Ltp(lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'\n    test 127 Local9Tuple.xyzLocal.toNed: [20.0, 10.0, -100.0]\n    test 128 Ned.xyzLocal.toLocal9Tuple: (10.0, 20.0, 100.0, 46.02, 7.75, 1773.0, Ltp(lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'\n    test 129 Local9Tuple.xyzLocal.toXyz: [10.0, 20.0, 100.0]\n    test 130 Xyz.xyzLocal.toLocal9Tuple: (10.0, 20.0, 100.0, 46.02, 7.75, 1773.0, Ltp(lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'\n    test 131 Local9Tuple.toCartesian: [4397637.41, 598502.28, 4567849.59]\n    test 132 Local9Tuple.toLatLon: 46°01′01.85″N, 007°45′00.46″E, +1773.00m\n    test 133 Local9Tuple.azimuth: 26.565\n    test 134 Local9Tuple.elevation: 77.396\n    test 135 Local9Tuple.slantrange: 102.47\n    test 136 Local9Tuple.groundrange: 22.361\n    test 137 Local9Tuple.east: 10.0\n    test 138 Local9Tuple.north: 20.0\n    test 139 Local9Tuple.up: 100.0\n    test 140 Local9Tuple.down: -100.0\n    test 141 Local9Tuple.x: 10.0\n    test 142 Local9Tuple.y: 20.0\n    test 143 Local9Tuple.z: 100.0\n    test 144 Local9Tuple.xyz: 10.0, 20.0, 100.0\n    test 145 Local9Tuple.lat: 46.02\n    test 146 Local9Tuple.lon: 7.75\n    test 147 Local9Tuple.latlon: 46.02, 7.75\n    test 148 Local9Tuple.latlonheight: 46.02, 7.75, 1773.0\n    test 149 Local9Tuple.phi: 0.803\n    test 150 Local9Tuple.lam: 0.135\n    test 151 Local9Tuple.philam: 0.803, 0.135\n    test 152 Local9Tuple.philamheight: 0.803, 0.135, 1773.0\n\n    test 153 Los: [A:45.0°, E:-45.0°, R:1.0]\n    test 154 Los: [E:0.5, N:0.5, U:-0.707]\n    test 155 Los: [U:-0.707, V:0.5, W:0.5]\n    test 156 Los: [E:0.5, N:0.5, U:-0.707]\n\n    all 156 testLtpTuples.py tests passed (pygeodesy 26.3.26 Python 3.13.12 64bit arm64 coverage 7.10.7 geographiclib 2.1 numpy 2.3.3 scipy 1.16.2 Math 2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 macOS 26.3.1 isLazy 1 -W  default) 23.978 ms\nrunning /Library/Framewo....n3.13 -W default ~/PyGeodesy/test/testMgrs.py\n./test/testMgrs.py:88: DeprecationWarning: property_RO L{en100k<pygeodesy.mgrs.Mgrs.en100k>} has been DEPRECATED, use property C{EN}.\n  self.test(a, getattr(p, a), x)\n./test/testMgrs.py:88: DeprecationWarning: property_RO L{digraph<pygeodesy.mgrs.Mgrs.digraph>} has been DEPRECATED, use property C{EN}.\n  self.test(a, getattr(p, a), x)\n./test/testMgrs.py:94: DeprecationWarning: property_RO L{digraph<pygeodesy.mgrs.Mgrs6Tuple.digraph>} has been DEPRECATED, use attribute C{EN}.\n  self.test('digraph', m.digraph, m.EN, nt=1)  # DEPRECATED\n./test/testMgrs.py:117: DeprecationWarning: property_RO L{digraph<pygeodesy.mgrs.Mgrs4Tuple.digraph>} has been DEPRECATED, use attribute C{EN}.\n  self.test('digraph', t.digraph, t.EN)  # DEPRECATED\n\n    testing testMgrs.py 24.10.13 (module pygeodesy.mgrs 25.05.12) isLazy=1\n    test 1 Mgrs1: 42S XD 09705 38646\n    test 2 Mgrs1: [Z:42S, G:XD, E:09705, N:38646]\n    test 3 Mgrs2: 42S XD 19705 08646\n    test 4 Mgrs2: [Z:42S, G:XD, E:19705, N:08646]\n    test 5 Mgrs3: 42S XD 19000 38000\n    test 6 Mgrs3: [Z:42S, G:XD, E:19000, N:38000]\n    test 7 Mgrs4: 31U DQ 48251 11932\n    test 8 Mgrs4: [Z:31U, G:DQ, E:48251, N:11932]\n    test 9 Mgrs5: 31U DQ 48251 11932\n    test 10 Mgrs5: [Z:31U, G:DQ, E:48251, N:11932]\n    test 11 Mgrs6: 31U DQ 48251 11932\n    test 12 Mgrs6: [Z:31U, G:DQ, E:48251, N:11932]\n    test 13 Mgrs7: 31U DQ 48251 11932\n    test 14 Mgrs7: [Z:31U, G:DQ, E:48251, N:11932]\n    test 15 Mgrs8: 31 N 431000 4582000\n    test 16 Mgrs8: (41.38657, 2.174726, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), -0.54564, 0.999659)\n    test 17 Mgrs8: 31 N 431500 4582500\n    test 18 Mgrs8: 31T DF 31000 82000\n    test 19 Mgrs8: 41.391116°N, 002.180649°E\n    test 20 Mgrs8: 31T DF 31000 82000\n    test 21 Mgrs9: 31U DQ 48251 11932\n    test 22 Mgrs9: [Z:31U, G:DQ, E:48251, N:11932]\n    test 23 toUtm1: 31 N 448251 5411932\n    test 24 toUtm1: [Z:31U, H:N, E:448251, N:5411932]\n    test 25 toMgrs1: 31U DQ 48251 11932\n    test 26 toMgrs1: [Z:31U, G:DQ, E:48251, N:11932]\n\n    test 27 toUtm(None): (31, 'N', 448251.0, 5411932.0, 'U')\n    test 28 easting: 48251.0\n    test 29 northing: 11932.0\n    test 30 EN: DQ\n    test 31 en100k: DQ\n    test 32 digraph: DQ\n    test 33 zone: 31\n    test 34 band: U\n    test 35 bandLatitude: 48\n    test 36 eastingnorthing: (48251.0, 11932.0)\n    test 37 resolution: 1.0\n    test 38 tilesize: 100000.0\n\n    test 39 toMgrs: 31U DQ 48251 11932\n    test 40 toMgrs(None): Mgrs6Tuple\n    test 41 digraph: DQ\n\n    test 42 (60.0°N, 001.0°E).toUtmUps.toMgrs: 31V CG 88455 53097\n    test 43 (60.0°N, 003.0°E).toUtmUps.toMgrs: 32V JM 65640 66593\n    test 44 (60.0°N, 009.0°E).toUtmUps.toMgrs: 32V NM 00000 51411\n    test 45 (76.0°N, 001.0°E).toUtmUps.toMgrs: 31X DE 45999 36099\n    test 46 (76.0°N, 013.0°E).toUtmUps.toMgrs: 33X VE 45999 36099\n    test 47 (76.0°N, 025.0°E).toUtmUps.toMgrs: 35X ME 45999 36099\n    test 48 (76.0°N, 037.0°E).toUtmUps.toMgrs: 37X DE 45999 36099\n    test 49 (84.0°N, 042.0°E).toUtmUps.toMgrs: Z GC 46127 04524\n    test 50 (90.0°S, 000.0°E).toUtmUps.toMgrs: B AN 00000 00000\n\n    test 51 Mgrs: BAN00\n    test 52 Mgrs4Tuple: ('B', 'AN', 0.0, 0.0)\n    test 53 Mgrs4Tuple: SouthPole(zone='B', EN='AN', easting=0.0, northing=0.0)\n    test 54 digraph: AN\n    test 55 toMgrs.toLatLon: SouthPole(lat=-90.0, lon=0.0, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), gamma=-0.0, scale=0.994)\n\n    test 56 Ups: 00 S 2000000 2000000\n    test 57 Ups: 00 S 2000500 2000500\n    test 58 Mgrs: 0.1\n\n    test 59 Mgrs: Y UB 17770 03800\n    test 60 Mgrs: [Z:Y, G:UB, E:17770, N:03800]\n    test 61 toUtmUps: 00 N 1617775 1403805\n    test 62 toUtmUps: [Z:00Y, H:N, E:1617775, N:1403805]\n    test 63 toLatLon: (83.627518, -32.664231, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), -0.570098, 0.99708)\n    test 64 toLatLon: LatLonDatum5Tuple(lat=83.627518, lon=-32.664231, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), gamma=-0.570098, scale=0.99708)\n    test 65 toMgrs!: 25X EN 04160 86523\n\n    test 66 Mgrs: B FS 77514 99182\n    test 67 Mgrs: [Z:B, G:FS, E:77514, N:99182]\n    test 68 toUtmUps: 00 S 2377514 2499182\n    test 69 toUtmUps: [Z:00B, H:S, E:2377514, N:2499182]\n    test 70 toLatLon: (-84.367192, 37.098959, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), -0.647499, 0.996406)\n    test 71 toLatLon: LatLonDatum5Tuple(lat=-84.367192, lon=37.098959, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), gamma=-0.647499, scale=0.996406)\n    test 72 toMgrs: B FS 77514 99182\n\n    test 73 Mgrs: 45S XT 47000 91000\n    test 74 Mgrs: [Z:45S, G:XT, E:47000, N:91000]\n    test 75 toUtmUps: 45 N 647500 3791500\n    test 76 toUtmUps: [Z:45S, H:N, E:647500, N:3791500]\n    test 77 toLatLon: (34.254177, 88.601932, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), 0.901835, 0.999868)\n    test 78 toLatLon: LatLonDatum5Tuple(lat=34.254177, lon=88.601932, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), gamma=0.901835, scale=0.999868)\n    test 79 toMgrs: 45S XT 47499 91499\n\n    test 80 Mgrs: Y XK 35000 43000\n    test 81 Mgrs: [Z:Y, G:XK, E:35000, N:43000]\n    test 82 toUtmUps: 00 N 1735500 2243500\n    test 83 toUtmUps: [Z:00Y, H:N, E:1735500, N:2243500]\n    test 84 toLatLon: (86.762629, -132.632821, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), -2.314879, 0.994794)\n    test 85 toLatLon: LatLonDatum5Tuple(lat=86.762629, lon=-132.632821, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), gamma=-2.314879, scale=0.994794)\n    test 86 toMgrs: Y XK 35499 43500\n\n    test 87 GeoConvert: /opt/local/bin/GeoConvert\n    test 88 LatLon(  39.36,  144.922).toMgrs: 55SCD2096958786\n    test 89 LatLon(-78.654, -173.463).toMgrs: 02CMT4592267502\n    test 90 LatLon( 83.887,  -63.519).toMgrs: 20XMU9382915506\n    test 91 LatLon(-51.572,   -0.446).toMgrs: 30FXH7698783472\n    test 92 LatLon(  8.745,   83.747).toMgrs: 44PRQ0225367762\n    test 93 LatLon( 18.462,   15.716).toMgrs: 33QWA7559941450\n    test 94 LatLon( 43.537,  -83.536).toMgrs: 17TKJ9510023575\n    test 95 LatLon( -5.546,   136.85).toMgrs: 53MQP0493686661\n    test 96 LatLon( 38.356,   36.065).toMgrs: 37SBC4353949393\n    test 97 LatLon( -63.62,  153.507).toMgrs: 56ENQ2513445229\n    test 98 LatLon(-77.552,  108.785).toMgrs: 49CDP4671390620\n    test 99 LatLon(-59.603,   -0.108).toMgrs: 30EXU6320389246\n    test 100 LatLon( 31.807,    12.51).toMgrs: 33RTR6428121744\n    test 101 LatLon(-82.997, -104.153).toMgrs: AQL4519809664\n    test 102 LatLon(-13.178,  -72.605).toMgrs: 18LYL5959841942\n    test 103 LatLon(-65.863, -132.642).toMgrs: 08DPM0757593339\n    test 104 LatLon( 39.302,   15.455).toMgrs: 33SWD3923150389\n    test 105 LatLon( -5.902, -164.707).toMgrs: 03MWP3243247620\n    test 106 LatLon( 44.569,  171.489).toMgrs: 59TNK3882835189\n    test 107 LatLon( 38.755,   -6.655).toMgrs: 29SQC0376892200\n    test 108 LatLon( 35.956,   45.166).toMgrs: 38SNE1496979080\n    test 109 LatLon( -61.94,   17.005).toMgrs: 33EXM0521030879\n    test 110 LatLon( 19.685, -108.499).toMgrs: 12QYG6219878552\n    test 111 LatLon(-40.085,  -63.474).toMgrs: 20GMA5958962700\n    test 112 LatLon( -22.42,  -67.062).toMgrs: 19KFR9947419396\n    test 113 LatLon( 77.796,   134.24).toMgrs: 53XMG8206535719\n    test 114 LatLon( -1.924, -114.614).toMgrs: 11MQT6543087153\n    test 115 LatLon( 71.648,  121.906).toMgrs: 51WVV6155750018\n    test 116 LatLon(-82.154,  109.797).toMgrs: BLK2084104527\n    test 117 LatLon(-82.799,  123.247).toMgrs: BJH6946561129\n    test 118 LatLon( 16.059,  149.421).toMgrs: 55QGT5901676976\n    test 119 LatLon( 23.105, -124.379).toMgrs: 10QCL5877855810\n    test 120 LatLon(  4.624,  136.082).toMgrs: 53NPF2001711193\n    test 121 LatLon(-18.638,   41.842).toMgrs: 37KGV9985936848\n    test 122 LatLon(-24.796,    57.82).toMgrs: 40JET8288357391\n    test 123 LatLon(-25.489,  -80.216).toMgrs: 17JNM7879880672\n    test 124 LatLon(-84.093,  147.271).toMgrs: BFG5488047832\n    test 125 LatLon(  18.32,  136.912).toMgrs: 53QQA0207126649\n    test 126 LatLon( 32.804,  -67.063).toMgrs: 19SFS8135931219\n    test 127 LatLon(-73.019,  165.897).toMgrs: 58CED2923997181\n    test 128 LatLon( 70.445,  141.254).toMgrs: 54WWD0948815519\n    test 129 LatLon(  -21.0,   31.524).toMgrs: 36KUB4658877144\n    test 130 LatLon( 42.646,  -60.191).toMgrs: 20TQN3027425330\n    test 131 LatLon(-40.201,  -84.024).toMgrs: 16GGA5330345685\n    test 132 LatLon( -0.138,   -33.77).toMgrs: 25MDV1431584745\n    test 133 LatLon( 62.336,  111.938).toMgrs: 49VEK4858611964\n    test 134 LatLon(-62.138,  -73.444).toMgrs: 18EWS8112409472\n    test 135 LatLon( -7.778,  158.951).toMgrs: 57MVM9459740244\n    test 136 LatLon( 57.177,  -21.342).toMgrs: 27VVD7932337140\n    test 137 LatLon( 55.219, -131.471).toMgrs: 09UUB4281221946\n    test 138 LatLon(-72.036,  142.774).toMgrs: 54CWF6105906152\n    test 139 LatLon(-54.797,  114.341).toMgrs: 50FLE2907024555\n    test 140 LatLon(   70.1,  -24.982).toMgrs: 26WNC7664878294\n    test 141 LatLon(  -26.7, -160.857).toMgrs: 04JCR1525145446\n    test 142 LatLon(-79.698,  155.461).toMgrs: 56CNS4911951083\n    test 143 LatLon( 63.026,  -136.69).toMgrs: 08VMQ1448089610\n    test 144 LatLon( -23.12,   58.885).toMgrs: 40KFV9303041949\n    test 145 LatLon(-24.116, -168.236).toMgrs: 02JQU8094930160\n    test 146 LatLon( 74.227,   17.463).toMgrs: 33XWC7471238908\n    test 147 LatLon(-37.375,  140.497).toMgrs: 54HVD5546563407\n    test 148 LatLon(-26.887,  172.794).toMgrs: 59JPL7818624818\n    test 149 LatLon(  29.95,  149.753).toMgrs: 55RGP6570516433\n    test 150 LatLon(-22.452,   37.786).toMgrs: 37KCR7508416636\n    test 151 LatLon( 46.813,   19.345).toMgrs: 34TCS7374085713\n    test 152 LatLon( 16.245,   41.083).toMgrs: 37QGT2263197168\n    test 153 LatLon( 78.863,  145.878).toMgrs: 55XDH7580754916\n    test 154 LatLon( -7.677,  -58.933).toMgrs: 21MTM8678150929\n    test 155 LatLon( 49.608,    10.04).toMgrs: 32UNV7513795567\n    test 156 LatLon(-32.743,  -55.872).toMgrs: 21HXD0568076640\n    test 157 LatLon(-43.501,  -82.979).toMgrs: 17GLM4000981645\n    test 158 LatLon( -3.169,  -40.879).toMgrs: 24MTB9119449537\n    test 159 LatLon(-64.861,  137.092).toMgrs: 53DNJ9914905397\n    test 160 LatLon(-31.736,  151.393).toMgrs: 56JLK4776787702\n    test 161 LatLon( 33.269,  161.742).toMgrs: 57SYS5540584463\n    test 162 LatLon( 33.552,  155.917).toMgrs: 56SQC7083016296\n    test 163 LatLon( -4.079,   75.738).toMgrs: 43MER8191649102\n    test 164 LatLon( 20.274, -159.516).toMgrs: 04QDH4611741886\n    test 165 LatLon( 75.155,   90.309).toMgrs: 46XDJ2306542647\n    test 166 LatLon(-70.236,   70.098).toMgrs: 42DWH4143507434\n    test 167 LatLon( 24.707,  163.214).toMgrs: 58RCN1933133682\n    test 168 LatLon(  1.205, -144.495).toMgrs: 06NYG7877133317\n    test 169 LatLon( -2.572,    5.284).toMgrs: 31MGT5396515487\n    test 170 LatLon(  8.409,  -15.032).toMgrs: 28PDQ9647729514\n    test 171 LatLon(-79.194,  -25.642).toMgrs: 26CNT2842008043\n    test 172 LatLon(-44.281,  155.531).toMgrs: 56GQR0196293800\n    test 173 LatLon(-29.758,  163.902).toMgrs: 58JCN9384107524\n    test 174 LatLon(-25.152,  -45.874).toMgrs: 23JMN1191117935\n    test 175 LatLon( -83.97,  110.805).toMgrs: BJK2637561999\n    test 176 LatLon(-70.394,   81.809).toMgrs: 44DNG3029689986\n    test 177 LatLon( 31.304,   21.566).toMgrs: 34REV5386263431\n    test 178 LatLon(-31.454,  142.447).toMgrs: 54JXL3748719175\n    test 179 LatLon( 43.575,  -38.702).toMgrs: 24TWP2406124713\n    test 180 LatLon(  55.99, -171.219).toMgrs: 02UMH8633704988\n    test 181 LatLon( 46.269, -136.468).toMgrs: 08TLS8688124983\n    test 182 LatLon( 16.757,    79.01).toMgrs: 44QKD8787153735\n    test 183 LatLon( 73.646, -141.181).toMgrs: 07XDB9431172553\n    test 184 LatLon( 39.275,   84.983).toMgrs: 45SUD2601549233\n    test 185 LatLon( 11.723, -125.088).toMgrs: 10PBT7242696766\n    test 186 LatLon( 73.192, -162.546).toMgrs: 03XWB7918523521\n    test 187 LatLon( 22.912, -116.787).toMgrs: 11QNF2184233794\n    test 188 LatLon( 74.129, -120.405).toMgrs: 10XEH7919028155\n    test 189 LatLon( 10.971,  -73.276).toMgrs: 18PXT8838113312\n    test 190 LatLon(  -8.14,   13.824).toMgrs: 33LUM7044100036\n    test 191 LatLon(-50.516,  -75.907).toMgrs: 18FVK3569603602\n    test 192 LatLon( -37.45,  -35.421).toMgrs: 25HBU8584852453\n    test 193 LatLon( -0.331, -157.145).toMgrs: 04MGE0644763395\n    test 194 LatLon(-15.313,    36.61).toMgrs: 37LBD4337005640\n    test 195 LatLon( -5.859,  -86.471).toMgrs: 16MEU5855952354\n    test 196 LatLon( 66.558,  -86.484).toMgrs: 16WEU2290682203\n    test 197 LatLon( 45.645,  -141.71).toMgrs: 07TDL4467254850\n    test 198 LatLon( 20.643,    96.19).toMgrs: 47QKC0718285171\n    test 199 LatLon( 41.607,   36.799).toMgrs: 37TCG1659508483\n    test 200 LatLon(-14.569,  144.596).toMgrs: 55LBD4097487976\n    test 201 LatLon( 81.303,   44.621).toMgrs: 38XMR9360227046\n    test 202 LatLon( 15.046,  117.581).toMgrs: 50PNB6244963496\n    test 203 LatLon(  5.297,  156.769).toMgrs: 57NTF5273685938\n    test 204 LatLon( 20.772,   -5.685).toMgrs: 30QTH2045299238\n\n    4 of 204 testMgrs.py tests (2.0%) FAILED, incl. 4 DeprecationWarnings (pygeodesy 26.3.26 Python 3.13.12 64bit arm64 coverage 7.10.7 geographiclib 2.1 numpy 2.3.3 scipy 1.16.2 Math 2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 macOS 26.3.1 isLazy 1 -W  default) 491.731 ms\nrunning /Library/Framewo....n3.13 -W default ~/PyGeodesy/test/testModules.py\n\n    testing testModules.py 24.06.05 isLazy=1\n\n    2805 tests skipped (2805): pygeodesy\n\n    all testModules.py tests passed, 2805 skipped (pygeodesy 26.3.26 Python 3.13.12 64bit arm64 coverage 7.10.7 geographiclib 2.1 numpy 2.3.3 scipy 1.16.2 Math 2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 macOS 26.3.1 isLazy 1 -W  default) 20.981 us\nrunning /Library/Framewo....n3.13 -W default ~/PyGeodesy/test/testNamed.py\n\n    testing testNamed.py 25.12.06 isLazy=1\n\n    testing _Named() (pygeodesy.named, 26.01.14)\n    test 1 _Named: _Named\n    test 2 _Named: True\n    test 3 _Named: ''\n    test 4 Test: Test\n    test 5 _Named 'Test': _Named 'Test'\n    test 6 named._Named 'Test': named._Named 'Test'\n    test 7 pygeodesy.named._Named 'Test': pygeodesy.named._Named 'Test'\n    test 8 Test: _Named.name = 'X' (was 'Test'): use _Named.rename('X')\n    test 9 Test: _Named 'Test'\n    test 10 _Named 'Test': Test\n    test 11 _Named 'Test': Test\n    test 12 _Named 'Test': _Named 'Test'\n    test 13 _Named 'Test': <_Named 'Test' at 0x10aeb3e00>  FAILED, KNOWN, expected _Named 'Test'\n    test 14 _Named 'Test': ''\n\n    testing _NamedBase() (pygeodesy.named, 26.01.14)\n    test 15 _NamedBase: _NamedBase\n    test 16 _NamedBase: True\n    test 17 _NamedBase: ''\n    test 18 Test: Test\n    test 19 _NamedBase 'Test': _NamedBase 'Test'\n    test 20 named._NamedBase 'Test': named._NamedBase 'Test'\n    test 21 pygeodesy.named._NamedBase 'Test': pygeodesy.named._NamedBase 'Test'\n    test 22 Test: _NamedBase.name = 'X' (was 'Test'): use _NamedBase.rename('X')\n    test 23 Test: named._NamedBase.toStr(), MRO(named._Named): not overloaded\n    test 24 _NamedBase 'Test': Test\n    test 25 _NamedBase 'Test': Test\n    test 26 _NamedBase 'Test': named._NamedBase.toStr(), MRO(named._Named): not overloaded\n    test 27 _NamedBase 'Test': named._NamedBase.toStr(), MRO(named._Named): not overloaded\n    test 28 _NamedBase 'Test': ''\n\n    testing _NamedDict() (pygeodesy.named, 26.01.14)\n    test 29 _NamedDict: _NamedDict\n    test 30 _NamedDict: True\n    test 31 _NamedDict: ''\n    test 32 Test: Test\n    test 33 _NamedDict 'Test': _NamedDict 'Test'\n    test 34 named._NamedDict 'Test': named._NamedDict 'Test'\n    test 35 pygeodesy.named._NamedDict 'Test': pygeodesy.named._NamedDict 'Test'\n    test 36 Test: _NamedDict.name = 'X' (was 'Test'): use _NamedDict.rename('X')\n    test 37 Test: {}\n    test 38 _NamedDict 'Test': Test\n    test 39 _NamedDict 'Test': Test\n    test 40 _NamedDict 'Test': {}\n    test 41 _NamedDict 'Test': Test()  FAILED, KNOWN, expected {}\n    test 42 _NamedDict: ''\n\n    testing _NamedEnum(<class 'pygeodesy.datums.Datum'>,) (pygeodesy.named, 26.01.14)\n    test 43 Datums: _NamedEnum\n    test 44 Datums: True\n    test 45 Datums: 'Datums'  FAILED, KNOWN, expected ''\n    test 46 Test: Test\n    test 47 _NamedEnum 'Test': _NamedEnum 'Test'\n    test 48 named._NamedEnum 'Test': named._NamedEnum 'Test'\n    test 49 pygeodesy.named._NamedEnum 'Test': pygeodesy.named._NamedEnum 'Test'\n    test 50 Test: _NamedEnum.name = 'X' (was 'Test'): use _NamedEnum.rename('X')\n    test 51 Test: Test.\n    test 52 _NamedEnum 'Test': Test\n    test 53 _NamedEnum 'Test': Test\n    test 54 _NamedEnum 'Test': Test.\n    test 55 _NamedEnum 'Test':   FAILED, KNOWN, expected Test.\n    test 56 _NamedEnum: ''\n\n    testing _NamedEnumItem() (pygeodesy.named, 26.01.14)\n    test 57 _NamedEnumItem: _NamedEnumItem\n    test 58 _NamedEnumItem: True\n    test 59 _NamedEnumItem: ''\n    test 60 Test: Test\n    test 61 _NamedEnumItem 'Test': _NamedEnumItem 'Test'\n    test 62 named._NamedEnumItem 'Test': named._NamedEnumItem 'Test'\n    test 63 pygeodesy.named._NamedEnumItem 'Test': pygeodesy.named._NamedEnumItem 'Test'\n    test 64 _NamedEnumItem 'Test': Test\n    test 65 _NamedEnumItem 'Test': Test\n    test 66 _NamedEnumItem 'Test': named._NamedEnumItem.toStr(), MRO(named._NamedBase, named._Named): not overloaded\n    test 67 _NamedEnumItem 'Test': named._NamedEnumItem.toStr(), MRO(named._NamedBase, named._Named): not overloaded\n    test 68 _NamedEnumItem 'Test': ''\n\n    testing LatLon2Tuple(0, 0) (pygeodesy.named, 26.01.14)\n    test 69 LatLon2Tuple: LatLon2Tuple\n    test 70 LatLon2Tuple: True\n    test 71 LatLon2Tuple: ''\n    test 72 Test: Test\n    test 73 LatLon2Tuple 'Test': LatLon2Tuple 'Test'\n    test 74 namedTuples.LatLon2Tuple 'Test': namedTuples.LatLon2Tuple 'Test'\n    test 75 pygeodesy.namedTuples.LatLon2Tuple 'Test': pygeodesy.namedTuples.LatLon2Tuple 'Test'\n    test 76 Test: LatLon2Tuple.name = 'X' (was 'Test'): use LatLon2Tuple.rename('X')\n    test 77 Test: (0, 0)\n    test 78 LatLon2Tuple 'Test': Test\n    test 79 LatLon2Tuple 'Test': Test\n    test 80 LatLon2Tuple 'Test': (0, 0)\n    test 81 LatLon2Tuple 'Test': Test(lat=0, lon=0)  FAILED, KNOWN, expected (0, 0)\n    test 82 LatLon2Tuple 'Test': ''\n\n    testing NamedDicts (pygeodesy.named, 26.01.14)\n    test 83 Neighbors8Dict: Neighbors8Dict\n    test 84 Neighbors8Dict: 8-Dict C{(N, NE, E, SE, S, SW, W, NW)}\n    test 85 Neighbors8Dict: 8\n\n    testing NamedTuples (pygeodesy.namedTuples, 26.03.12)\n    test 86 Albers7Tuple: Albers7Tuple\n    test 87 Albers7Tuple: 7-Tuple C{(x, y, lat, lon, gamma, scale, datum)}\n    test 88 Albers7Tuple: 7\n    test 89 Azimuthal7Tuple: Azimuthal7Tuple\n    test 90 Azimuthal7Tuple: 7-Tuple C{(x, y, lat, lon, azimuth, scale, datum)}\n    test 91 Azimuthal7Tuple: 7\n    test 92 RadiusThetaPhi3Tuple: RadiusThetaPhi3Tuple\n    test 93 RadiusThetaPhi3Tuple: 3-Tuple C{(r, theta, phi)}\n    test 94 RadiusThetaPhi3Tuple: 3\n    test 95 ClipCS4Tuple: ClipCS4Tuple\n    test 96 ClipCS4Tuple: 4-Tuple C{(start, end, i, j)}\n    test 97 ClipCS4Tuple: 4\n    test 98 ClipFHP4Tuple: ClipFHP4Tuple\n    test 99 ClipFHP4Tuple: 4-Tuple C{(lat, lon, height, clipid)}\n    test 100 ClipFHP4Tuple: 4\n    test 101 ClipGH4Tuple: ClipGH4Tuple\n    test 102 ClipGH4Tuple: 4-Tuple C{(lat, lon, height, clipid)}\n    test 103 ClipGH4Tuple: 4\n    test 104 ClipLB6Tuple: ClipLB6Tuple\n    test 105 ClipLB6Tuple: 6-Tuple C{(start, end, i, fi, fj, j)}\n    test 106 ClipLB6Tuple: 6\n    test 107 ClipSH3Tuple: ClipSH3Tuple\n    test 108 ClipSH3Tuple: 3-Tuple C{(start, end, original)}\n    test 109 ClipSH3Tuple: 3\n    test 110 EasNorAziRk4Tuple: EasNorAziRk4Tuple\n    test 111 EasNorAziRk4Tuple: 4-Tuple C{(easting, northing, azimuth, reciprocal)}\n    test 112 EasNorAziRk4Tuple: 4\n    test 113 EasNorAziRkEqu6Tuple: EasNorAziRkEqu6Tuple\n    test 114 EasNorAziRkEqu6Tuple: 6-Tuple C{(easting, northing, azimuth, reciprocal, equatorarc, equatorazimuth)}\n    test 115 EasNorAziRkEqu6Tuple: 6\n    test 116 LatLonAziRk4Tuple: LatLonAziRk4Tuple\n    test 117 LatLonAziRk4Tuple: 4-Tuple C{(lat, lon, azimuth, reciprocal)}\n    test 118 LatLonAziRk4Tuple: 4\n    test 119 Ecef9Tuple: Ecef9Tuple\n    test 120 Ecef9Tuple: 9-Tuple C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 121 Ecef9Tuple: 9\n    test 122 Elevation2Tuple: Elevation2Tuple\n    test 123 Elevation2Tuple: 2-Tuple C{(elevation, data_source)}\n    test 124 Elevation2Tuple: 2\n    test 125 GeoidHeight2Tuple: GeoidHeight2Tuple\n    test 126 GeoidHeight2Tuple: 2-Tuple C{(height, model_name)}\n    test 127 GeoidHeight2Tuple: 2\n    test 128 Curvature2Tuple: Curvature2Tuple\n    test 129 Curvature2Tuple: 2-Tuple C{(meridional, prime_vertical)}\n    test 130 Curvature2Tuple: 2\n    test 131 a_f2Tuple: a_f2Tuple\n    test 132 a_f2Tuple: 2-Tuple C{(a, f)}\n    test 133 a_f2Tuple: 2\n    test 134 Elliptic3Tuple: Elliptic3Tuple\n    test 135 Elliptic3Tuple: 3-Tuple C{(sn, cn, dn)}\n    test 136 Elliptic3Tuple: 3\n    test 137 Radical2Tuple: Radical2Tuple\n    test 138 Radical2Tuple: 2-Tuple C{(ratio, xline)}\n    test 139 Radical2Tuple: 2\n    test 140 Frechet6Tuple: Frechet6Tuple\n    test 141 Frechet6Tuple: 6-Tuple C{(fd, fi1, fi2, r, n, units)}\n    test 142 Frechet6Tuple: 6\n    test 143 DivMod2Tuple: DivMod2Tuple\n    test 144 DivMod2Tuple: 2-Tuple C{(div, mod)}\n    test 145 DivMod2Tuple: 2\n    test 146 Fsum2Tuple: Fsum2Tuple\n    test 147 Fsum2Tuple: 2-Tuple C{(fsum, residual)}\n    test 148 Fsum2Tuple: 2\n    test 149 Geod3Solve8Tuple: Geod3Solve8Tuple\n    test 150 Geod3Solve8Tuple: 8-Tuple C{(bet1, omg1, alp1, bet2, omg2, alp2, s12, a12)}\n    test 151 Geod3Solve8Tuple: 8\n    test 152 Intersect7Tuple: Intersect7Tuple\n    test 153 Intersect7Tuple: 7-Tuple C{(A, B, sAB, aAB, c, kA, kB)}\n    test 154 Intersect7Tuple: 7\n    test 155 Intersectool5Tuple: Intersectool5Tuple\n    test 156 Intersectool5Tuple: 5-Tuple C{(A, B, sAB, aAB, c)}\n    test 157 Intersectool5Tuple: 5\n    test 158 Intersector5Tuple: Intersector5Tuple\n    test 159 Intersector5Tuple: 5-Tuple C{(A, B, sAB, aAB, c)}\n    test 160 Intersector5Tuple: 5\n    test 161 Middle5Tuple: Middle5Tuple\n    test 162 Middle5Tuple: 5-Tuple C{(A, B, sMM, aMM, c)}\n    test 163 Middle5Tuple: 5\n    test 164 GeodSolve12Tuple: GeodSolve12Tuple\n    test 165 GeodSolve12Tuple: 12-Tuple C{(lat1, lon1, azi1, lat2, lon2, azi2, s12, a12, m12, M12, M21, S12)}\n    test 166 GeodSolve12Tuple: 12\n    test 167 Resolutions2Tuple: Resolutions2Tuple\n    test 168 Resolutions2Tuple: 2-Tuple C{(res1, res2)}\n    test 169 Resolutions2Tuple: 2\n    test 170 Sizes3Tuple: Sizes3Tuple\n    test 171 Sizes3Tuple: 3-Tuple C{(height, width, radius)}\n    test 172 Sizes3Tuple: 3\n    test 173 GeoidHeight5Tuple: GeoidHeight5Tuple\n    test 174 GeoidHeight5Tuple: 5-Tuple C{(lat, lon, egm84, egm96, egm2008)}\n    test 175 GeoidHeight5Tuple: 5\n    test 176 Hausdorff6Tuple: Hausdorff6Tuple\n    test 177 Hausdorff6Tuple: 6-Tuple C{(hd, i, j, mn, md, units)}\n    test 178 Hausdorff6Tuple: 6\n    test 179 Area3Tuple: Area3Tuple\n    test 180 Area3Tuple: 3-Tuple C{(number, perimeter, area)}\n    test 181 Area3Tuple: 3\n    test 182 Direct9Tuple: Direct9Tuple\n    test 183 Direct9Tuple: 9-Tuple C{(a12, lat2, lon2, azi2, s12, m12, M12, M21, S12)}\n    test 184 Direct9Tuple: 9\n    test 185 Inverse10Tuple: Inverse10Tuple\n    test 186 Inverse10Tuple: 10-Tuple C{(a12, s12, salp1, calp1, salp2, calp2, m12, M12, M21, S12)}\n    test 187 Inverse10Tuple: 10\n    test 188 Rhumb8Tuple: Rhumb8Tuple\n    test 189 Rhumb8Tuple: 8-Tuple C{(lat1, lon1, lat2, lon2, azi12, s12, S12, a12)}\n    test 190 Rhumb8Tuple: 8\n    test 191 Aer4Tuple: Aer4Tuple\n    test 192 Aer4Tuple: 4-Tuple C{(azimuth, elevation, slantrange, ltp)}\n    test 193 Aer4Tuple: 4\n    test 194 Attitude4Tuple: Attitude4Tuple\n    test 195 Attitude4Tuple: 4-Tuple C{(alt, tilt, yaw, roll)}\n    test 196 Attitude4Tuple: 4\n    test 197 ChLV9Tuple: ChLV9Tuple\n    test 198 ChLV9Tuple: 9-Tuple C{(Y, X, h_, lat, lon, height, ltp, ecef, M)}\n    test 199 ChLV9Tuple: 9\n    test 200 ChLVEN2Tuple: ChLVEN2Tuple\n    test 201 ChLVEN2Tuple: 2-Tuple C{(E_LV95, N_LV95)}\n    test 202 ChLVEN2Tuple: 2\n    test 203 ChLVYX2Tuple: ChLVYX2Tuple\n    test 204 ChLVYX2Tuple: 2-Tuple C{(Y, X)}\n    test 205 ChLVYX2Tuple: 2\n    test 206 ChLVyx2Tuple: ChLVyx2Tuple\n    test 207 ChLVyx2Tuple: 2-Tuple C{(y_LV03, x_LV03)}\n    test 208 ChLVyx2Tuple: 2\n    test 209 Enu4Tuple: Enu4Tuple\n    test 210 Enu4Tuple: 4-Tuple C{(east, north, up, ltp)}\n    test 211 Enu4Tuple: 4\n    test 212 Footprint5Tuple: Footprint5Tuple\n    test 213 Footprint5Tuple: 5-Tuple C{(center, upperleft, upperight, loweright, lowerleft)}\n    test 214 Footprint5Tuple: 5\n    test 215 Local9Tuple: Local9Tuple\n    test 216 Local9Tuple: 9-Tuple C{(x, y, z, lat, lon, height, ltp, ecef, M)}\n    test 217 Local9Tuple: 9\n    test 218 Ned4Tuple: Ned4Tuple\n    test 219 Ned4Tuple: 4-Tuple C{(north, east, down, ltp)}\n    test 220 Ned4Tuple: 4\n    test 221 Uvw3Tuple: Uvw3Tuple\n    test 222 Uvw3Tuple: 3-Tuple C{(u, v, w)}\n    test 223 Uvw3Tuple: 3\n    test 224 Xyz4Tuple: Xyz4Tuple\n    test 225 Xyz4Tuple: 4-Tuple C{(x, y, z, ltp)}\n    test 226 Xyz4Tuple: 4\n    test 227 Mgrs4Tuple: Mgrs4Tuple\n    test 228 Mgrs4Tuple: 4-Tuple C{(zone, EN, easting, northing)}\n    test 229 Mgrs4Tuple: 4\n    test 230 Mgrs6Tuple: Mgrs6Tuple\n    test 231 Mgrs6Tuple: 6-Tuple C{(zone, EN, easting, northing, band, datum)}\n    test 232 Mgrs6Tuple: 6\n    test 233 Bearing2Tuple: Bearing2Tuple\n    test 234 Bearing2Tuple: 2-Tuple C{(initial, final)}\n    test 235 Bearing2Tuple: 2\n    test 236 Bounds2Tuple: Bounds2Tuple\n    test 237 Bounds2Tuple: 2-Tuple C{(latlonSW, latlonNE)}\n    test 238 Bounds2Tuple: 2\n    test 239 Bounds4Tuple: Bounds4Tuple\n    test 240 Bounds4Tuple: 4-Tuple C{(latS, lonW, latN, lonE)}\n    test 241 Bounds4Tuple: 4\n    test 242 Circle4Tuple: Circle4Tuple\n    test 243 Circle4Tuple: 4-Tuple C{(radius, height, lat, beta)}\n    test 244 Circle4Tuple: 4\n    test 245 Destination2Tuple: Destination2Tuple\n    test 246 Destination2Tuple: 2-Tuple C{(destination, final)}\n    test 247 Destination2Tuple: 2\n    test 248 Destination3Tuple: Destination3Tuple\n    test 249 Destination3Tuple: 3-Tuple C{(lat, lon, final)}\n    test 250 Destination3Tuple: 3\n    test 251 Distance2Tuple: Distance2Tuple\n    test 252 Distance2Tuple: 2-Tuple C{(distance, initial)}\n    test 253 Distance2Tuple: 2\n    test 254 Distance3Tuple: Distance3Tuple\n    test 255 Distance3Tuple: 3-Tuple C{(distance, initial, final)}\n    test 256 Distance3Tuple: 3\n    test 257 Distance4Tuple: Distance4Tuple\n    test 258 Distance4Tuple: 4-Tuple C{(distance2, delta_lat, delta_lon, unroll_lon2)}\n    test 259 Distance4Tuple: 4\n    test 260 EasNor2Tuple: EasNor2Tuple\n    test 261 EasNor2Tuple: 2-Tuple C{(easting, northing)}\n    test 262 EasNor2Tuple: 2\n    test 263 EasNor3Tuple: EasNor3Tuple\n    test 264 EasNor3Tuple: 3-Tuple C{(easting, northing, height)}\n    test 265 EasNor3Tuple: 3\n    test 266 Ellipse5Tuple: Ellipse5Tuple\n    test 267 Ellipse5Tuple: 5-Tuple C{(a, b, height, lat, beta)}\n    test 268 Ellipse5Tuple: 5\n    test 269 Forward4Tuple: Forward4Tuple\n    test 270 Forward4Tuple: 4-Tuple C{(easting, northing, gamma, scale)}\n    test 271 Forward4Tuple: 4\n    test 272 Intersection3Tuple: Intersection3Tuple\n    test 273 Intersection3Tuple: 3-Tuple C{(point, outside1, outside2)}\n    test 274 Intersection3Tuple: 3\n    test 275 LatLon2Tuple: LatLon2Tuple\n    test 276 LatLon2Tuple: 2-Tuple C{(lat, lon)}\n    test 277 LatLon2Tuple: 2\n    test 278 LatLon3Tuple: LatLon3Tuple\n    test 279 LatLon3Tuple: 3-Tuple C{(lat, lon, height)}\n    test 280 LatLon3Tuple: 3\n    test 281 LatLon4Tuple: LatLon4Tuple\n    test 282 LatLon4Tuple: 4-Tuple C{(lat, lon, height, datum)}\n    test 283 LatLon4Tuple: 4\n    test 284 LatLonDatum3Tuple: LatLonDatum3Tuple\n    test 285 LatLonDatum3Tuple: 3-Tuple C{(lat, lon, datum)}\n    test 286 LatLonDatum3Tuple: 3\n    test 287 LatLonDatum5Tuple: LatLonDatum5Tuple\n    test 288 LatLonDatum5Tuple: 5-Tuple C{(lat, lon, datum, gamma, scale)}\n    test 289 LatLonDatum5Tuple: 5\n    test 290 LatLonPrec3Tuple: LatLonPrec3Tuple\n    test 291 LatLonPrec3Tuple: 3-Tuple C{(lat, lon, precision)}\n    test 292 LatLonPrec3Tuple: 3\n    test 293 LatLonPrec5Tuple: LatLonPrec5Tuple\n    test 294 LatLonPrec5Tuple: 5-Tuple C{(lat, lon, precision, height, radius)}\n    test 295 LatLonPrec5Tuple: 5\n    test 296 NearestOn2Tuple: NearestOn2Tuple\n    test 297 NearestOn2Tuple: 2-Tuple C{(closest, fraction)}\n    test 298 NearestOn2Tuple: 2\n    test 299 NearestOn3Tuple: NearestOn3Tuple\n    test 300 NearestOn3Tuple: 3-Tuple C{(closest, distance, angle)}\n    test 301 NearestOn3Tuple: 3\n    test 302 NearestOn5Tuple: NearestOn5Tuple\n    test 303 NearestOn5Tuple: 5-Tuple C{(lat, lon, distance, angle, height)}\n    test 304 NearestOn5Tuple: 5\n    test 305 NearestOn6Tuple: NearestOn6Tuple\n    test 306 NearestOn6Tuple: 6-Tuple C{(closest, distance, fi, j, start, end)}\n    test 307 NearestOn6Tuple: 6\n    test 308 NearestOn8Tuple: NearestOn8Tuple\n    test 309 NearestOn8Tuple: 8-Tuple C{(closest, distance, fi, j, start, end, initial, final)}\n    test 310 NearestOn8Tuple: 8\n    test 311 PhiLam2Tuple: PhiLam2Tuple\n    test 312 PhiLam2Tuple: 2-Tuple C{(phi, lam)}\n    test 313 PhiLam2Tuple: 2\n    test 314 PhiLam3Tuple: PhiLam3Tuple\n    test 315 PhiLam3Tuple: 3-Tuple C{(phi, lam, height)}\n    test 316 PhiLam3Tuple: 3\n    test 317 PhiLam4Tuple: PhiLam4Tuple\n    test 318 PhiLam4Tuple: 4-Tuple C{(phi, lam, height, datum)}\n    test 319 PhiLam4Tuple: 4\n    test 320 Point3Tuple: Point3Tuple\n    test 321 Point3Tuple: 3-Tuple C{(x, y, ll)}\n    test 322 Point3Tuple: 3\n    test 323 Points2Tuple: Points2Tuple\n    test 324 Points2Tuple: 2-Tuple C{(number, points)}\n    test 325 Points2Tuple: 2\n    test 326 Reverse4Tuple: Reverse4Tuple\n    test 327 Reverse4Tuple: 4-Tuple C{(lat, lon, gamma, scale)}\n    test 328 Reverse4Tuple: 4\n    test 329 Triangle7Tuple: Triangle7Tuple\n    test 330 Triangle7Tuple: 7-Tuple C{(A, a, B, b, C, c, area)}\n    test 331 Triangle7Tuple: 7\n    test 332 Triangle8Tuple: Triangle8Tuple\n    test 333 Triangle8Tuple: 8-Tuple C{(A, a, B, b, C, c, D, E)}\n    test 334 Triangle8Tuple: 8\n    test 335 Trilaterate5Tuple: Trilaterate5Tuple\n    test 336 Trilaterate5Tuple: 5-Tuple C{(min, minPoint, max, maxPoint, n)}\n    test 337 Trilaterate5Tuple: 5\n    test 338 UtmUps2Tuple: UtmUps2Tuple\n    test 339 UtmUps2Tuple: 2-Tuple C{(zone, hemipole)}\n    test 340 UtmUps2Tuple: 2\n    test 341 UtmUps5Tuple: UtmUps5Tuple\n    test 342 UtmUps5Tuple: 5-Tuple C{(zone, hemipole, easting, northing, band)}\n    test 343 UtmUps5Tuple: 5\n    test 344 UtmUps8Tuple: UtmUps8Tuple\n    test 345 UtmUps8Tuple: 8-Tuple C{(zone, hemipole, easting, northing, band, datum, gamma, scale)}\n    test 346 UtmUps8Tuple: 8\n    test 347 UtmUpsLatLon5Tuple: UtmUpsLatLon5Tuple\n    test 348 UtmUpsLatLon5Tuple: 5-Tuple C{(zone, band, hemipole, lat, lon)}\n    test 349 UtmUpsLatLon5Tuple: 5\n    test 350 Vector2Tuple: Vector2Tuple\n    test 351 Vector2Tuple: 2-Tuple C{(x, y)}\n    test 352 Vector2Tuple: 2\n    test 353 Vector3Tuple: Vector3Tuple\n    test 354 Vector3Tuple: 3-Tuple C{(x, y, z)}\n    test 355 Vector3Tuple: 3\n    test 356 Vector4Tuple: Vector4Tuple\n    test 357 Vector4Tuple: 4-Tuple C{(x, y, z, h)}\n    test 358 Vector4Tuple: 4\n    test 359 Shape2Tuple: Shape2Tuple\n    test 360 Shape2Tuple: 2-Tuple C{(nrows, ncols)}\n    test 361 Shape2Tuple: 2\n    test 362 Collins5Tuple: Collins5Tuple\n    test 363 Collins5Tuple: 5-Tuple C{(pointP, pointH, a, b, c)}\n    test 364 Collins5Tuple: 5\n    test 365 Survey3Tuple: Survey3Tuple\n    test 366 Survey3Tuple: 3-Tuple C{(PA, PB, PC)}\n    test 367 Survey3Tuple: 3\n    test 368 Tienstra7Tuple: Tienstra7Tuple\n    test 369 Tienstra7Tuple: 7-Tuple C{(pointP, A, B, C, a, b, c)}\n    test 370 Tienstra7Tuple: 7\n    test 371 TriAngle5Tuple: TriAngle5Tuple\n    test 372 TriAngle5Tuple: 5-Tuple C{(radA, radB, radC, rIn, area)}\n    test 373 TriAngle5Tuple: 5\n    test 374 TriSide2Tuple: TriSide2Tuple\n    test 375 TriSide2Tuple: 2-Tuple C{(a, radA)}\n    test 376 TriSide2Tuple: 2\n    test 377 TriSide4Tuple: TriSide4Tuple\n    test 378 TriSide4Tuple: 4-Tuple C{(a, b, radC, d)}\n    test 379 TriSide4Tuple: 4\n    test 380 TRFXform7Tuple: TRFXform7Tuple\n    test 381 TRFXform7Tuple: 7-Tuple C{(tx, ty, tz, s, sx, sy, sz)}\n    test 382 TRFXform7Tuple: 7\n    test 383 Circin6Tuple: Circin6Tuple\n    test 384 Circin6Tuple: 6-Tuple C{(radius, center, deltas, cA, cB, cC)}\n    test 385 Circin6Tuple: 6\n    test 386 Circum3Tuple: Circum3Tuple\n    test 387 Circum3Tuple: 3-Tuple C{(radius, center, deltas)}\n    test 388 Circum3Tuple: 3\n    test 389 Circum4Tuple: Circum4Tuple\n    test 390 Circum4Tuple: 4-Tuple C{(radius, center, rank, residuals)}\n    test 391 Circum4Tuple: 4\n    test 392 Meeus2Tuple: Meeus2Tuple\n    test 393 Meeus2Tuple: 2-Tuple C{(radius, Type)}\n    test 394 Meeus2Tuple: 2\n    test 395 Radii11Tuple: Radii11Tuple\n    test 396 Radii11Tuple: 11-Tuple C{(rA, rB, rC, cR, rIn, riS, roS, a, b, c, s)}\n    test 397 Radii11Tuple: 11\n    test 398 Soddy4Tuple: Soddy4Tuple\n    test 399 Soddy4Tuple: 4-Tuple C{(radius, center, deltas, outer)}\n    test 400 Soddy4Tuple: 4\n    test 401 Triaxum5Tuple: Triaxum5Tuple\n    test 402 Triaxum5Tuple: 5-Tuple C{(a, b, c, rank, residuals)}\n    test 403 Triaxum5Tuple: 5\n    test 404 EasNorRadius3Tuple: EasNorRadius3Tuple\n    test 405 EasNorRadius3Tuple: 3-Tuple C{(easting, northing, radius)}\n    test 406 EasNorRadius3Tuple: 3\n    test 407 ClipCS3Tuple: DEPRECATED, see I{DEPRECATED} function L{pygeodesy.deprecated.clipCS3}.\n    test 408 EasNorExact4Tuple: DEPRECATED, use class L{Forward4Tuple}, item C{gamma} for C{convergence}.\n    test 409 Transform7Tuple: DEPRECATED on 2024.02.02, use class L{TRFXform7Tuple}, I{without} keyword arguments.\n    test 410 Jacobi2Tuple: DEPRECATED on 25.11.11, use class L{Conformal2Tuple}.\n    test 411 LatLonExact4Tuple: DEPRECATED, use class L{Reverse4Tuple}, item C{gamma} for C{convergence}.\n    test 412 NearestOn4Tuple: DEPRECATED on 2023.10.10, see methods L{RhumbLine.nearestOn4} and L{RhumbLineAux.nearestOn4}.\n    test 413 Ned3Tuple: DEPRECATED, use class L{Ned4Tuple}, ignoring item C{ltp}.\n    test 414 Rhumb7Tuple: DEPRECATED, use class L{Rhumb8Tuple}, ignoring item C{a12}.\n    test 415 RhumbOrder2Tuple: DEPRECATED, see deprecated method L{Rhumb.orders}.\n    test 416 Transform7Tuple: DEPRECATED on 2024.02.02, use class L{TRFXform7Tuple}, I{without} keyword arguments.\n    test 417 TriAngle4Tuple: DEPRECATED on 2023.09.14, use class L{TriAngle5Tuple}, ignoring item C{area}.\n    test 418 UtmUps4Tuple: DEPRECATED and OBSOLETE, expect a L{UtmUps5Tuple} from method C{pygeodesy.Mgrs.toUtm(utm=None)}. 4-Tuple C{(zone, hemipole, easting, northing)} with as C{zone} B{C{str}} and no C{band}.\n    test 419 RhumbSolve7Tuple: RhumbSolve7Tuple\n    test 420 RhumbSolve7Tuple: 7-Tuple C{(lat1, lon1, lat2, lon2, azi12, s12, S12)}\n    test 421 RhumbSolve7Tuple: 7\n    test 422 Conformal5Tuple: Conformal5Tuple\n    test 423 Conformal5Tuple: 5-Tuple C{(x, y, z, scale, llk)}\n    test 424 Conformal5Tuple: 5\n    test 425 BetOmgGam5Tuple: BetOmgGam5Tuple\n    test 426 BetOmgGam5Tuple: 5-Tuple C{(bet, omg, gam, scale, llk)}\n    test 427 BetOmgGam5Tuple: 5\n    test 428 BetOmgAlp5Tuple: BetOmgAlp5Tuple\n    test 429 BetOmgAlp5Tuple: 5-Tuple C{(bet, omg, alp, h, llk)}\n    test 430 BetOmgAlp5Tuple: 5\n    test 431 Cartesian5Tuple: Cartesian5Tuple\n    test 432 Cartesian5Tuple: 5-Tuple C{(x, y, z, h, llk)}\n    test 433 Cartesian5Tuple: 5\n    test 434 PhiLamZet5Tuple: PhiLamZet5Tuple\n    test 435 PhiLamZet5Tuple: 5-Tuple C{(phi, lam, zet, h, llk)}\n    test 436 PhiLamZet5Tuple: 5\n    test 437 BetaOmega2Tuple: BetaOmega2Tuple\n    test 438 BetaOmega2Tuple: 2-Tuple C{(beta, omega)}\n    test 439 BetaOmega2Tuple: 2\n    test 440 BetaOmega3Tuple: BetaOmega3Tuple\n    test 441 BetaOmega3Tuple: 3-Tuple C{(beta, omega, height)}\n    test 442 BetaOmega3Tuple: 3\n    test 443 Conformal2Tuple: Conformal2Tuple\n    test 444 Conformal2Tuple: 2-Tuple C{(x, y)}\n    test 445 Conformal2Tuple: 2\n\n    testing __init__.py (pygeodesy.named, 26.01.14)\n\n    testing __main__.py (pygeodesy.named, 26.01.14)\n\n    testing albers.py (pygeodesy.named, 26.01.14)\n    test 446 albers.py:235: L{Albers7Tuple}C{(x, y, lat, lon, gamma, scale, datum)}\n    test 447 albers.py:356: L{Albers7Tuple}C{(x, y, lat, lon, gamma, scale, datum)}\n\n    testing angles.py (pygeodesy.named, 26.01.14)\n\n    testing azimuthal.py (pygeodesy.named, 26.01.14)\n    test 448 azimuthal.py:185: L{LatLon2Tuple}C{(lat, lon)}\n    test 449 azimuthal.py:361: L{Azimuthal7Tuple}C{(x, y, lat, lon, azimuth, scale, datum)}\n    test 450 azimuthal.py:394: L{Azimuthal7Tuple}C{(x, y, lat, lon, azimuth, scale, datum)}\n    test 451 azimuthal.py:487: L{Azimuthal7Tuple}C{(x, y, lat, lon, azimuth, scale, datum)}\n    test 452 azimuthal.py:513: L{Azimuthal7Tuple}C{(x, y, lat, lon, azimuth, scale, datum)}\n    test 453 azimuthal.py:658: L{Azimuthal7Tuple}C{(x, y, lat, lon, azimuth, scale, datum)}\n    test 454 azimuthal.py:683: L{Azimuthal7Tuple}C{(x, y, lat, lon, azimuth, scale, datum)}\n    test 455 azimuthal.py:753: L{Azimuthal7Tuple}C{(x, y, lat, lon, azimuth, scale, datum)}\n    test 456 azimuthal.py:791: L{Azimuthal7Tuple}C{(x, y, lat, lon, azimuth, scale, datum)}\n    test 457 azimuthal.py:956: L{Azimuthal7Tuple}C{(x, y, lat, lon, azimuth, scale, datum)}\n    test 458 azimuthal.py:982: L{Azimuthal7Tuple}C{(x, y, lat, lon, azimuth, scale, datum)}\n    test 459 azimuthal.py:1011: L{Azimuthal7Tuple}C{(x, y, lat, lon, azimuth, scale, datum)}\n    test 460 azimuthal.py:1034: L{Azimuthal7Tuple}C{(x, y, lat, lon, azimuth, scale, datum)}\n    test 461 azimuthal.py:1065: L{Azimuthal7Tuple}C{(x, y, lat, lon, azimuth, scale, datum)}\n    test 462 azimuthal.py:1105: L{Azimuthal7Tuple}C{(x, y, lat, lon, azimuth, scale, datum)}\n\n    testing basics.py (pygeodesy.named, 26.01.14)\n\n    testing booleans.py (pygeodesy.named, 26.01.14)\n\n    testing cartesianBase.py (pygeodesy.named, 26.01.14)\n    test 463 cartesianBase.py:141: L{Collins5Tuple}C{(pointP, pointH, a, b, c)}\n    test 464 cartesianBase.py:196: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 465 cartesianBase.py:296: L{Vector3Tuple}C{(x, y, z)}\n    test 466 cartesianBase.py:348: L{Vector4Tuple}C{(x, y, z, h)}\n    test 467 cartesianBase.py:393: L{LatLon2Tuple}C{(lat, lon)}\n    test 468 cartesianBase.py:399: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 469 cartesianBase.py:405: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n    test 470 cartesianBase.py:466: L{PhiLam2Tuple}C{(phi, lam)}\n    test 471 cartesianBase.py:472: L{PhiLam3Tuple}C{(phi, lam, height)}\n    test 472 cartesianBase.py:478: L{PhiLam4Tuple}C{(phi, lam, height, datum)}\n    test 473 cartesianBase.py:598: L{Tienstra7Tuple}C{(pointP, A, B, C, a, b, c)}\n    test 474 cartesianBase.py:618: L{PhiLam2Tuple}C{(phi, lam)}\n    test 475 cartesianBase.py:626: L{LatLon2Tuple}C{(lat, lon)}\n    test 476 cartesianBase.py:634: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n    test 477 cartesianBase.py:691: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 478 cartesianBase.py:709: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 479 cartesianBase.py:739: L{Vector4Tuple}C{(x, y, z, h)}\n    test 480 cartesianBase.py:765: L{RadiusThetaPhi3Tuple}C{(r, theta, phi)}\n    test 481 cartesianBase.py:815: L{Vector3Tuple}C{(x, y, z)}\n    test 482 cartesianBase.py:841: L{Vector3Tuple}C{(x, y, z)}\n    test 483 cartesianBase.py:855: L{RadiusThetaPhi3Tuple}C{(r, theta, phi)}\n    test 484 cartesianBase.py:865: L{RadiusThetaPhi3Tuple}C{(r, theta, phi)}\n    test 485 cartesianBase.py:912: L{Vector3Tuple}C{(x, y, z)}\n    test 486 cartesianBase.py:965: L{RadiusThetaPhi3Tuple}C{(r, theta, phi)}\n    test 487 cartesianBase.py:983: L{RadiusThetaPhi3Tuple}C{(r, theta, phi)}\n\n    testing clipy.py (pygeodesy.named, 26.01.14)\n    test 488 clipy.py:197: L{ClipCS4Tuple}C{(start, end, i, j)}\n    test 489 clipy.py:276: L{ClipFHP4Tuple}C{(lat, lon, height, clipid)}\n    test 490 clipy.py:318: L{ClipGH4Tuple}C{(lat, lon, height, clipid)}\n    test 491 clipy.py:382: L{ClipLB6Tuple}C{(start, end, i, fi, fj, j)}\n    test 492 clipy.py:660: L{ClipSH3Tuple}C{(start, end, original)}\n\n    testing constants.py (pygeodesy.named, 26.01.14)\n\n    testing css.py (pygeodesy.named, 26.01.14)\n    test 493 css.py:138: L{EasNor2Tuple}C{(easting, northing)}\n    test 494 css.py:157: L{EasNorAziRk4Tuple}C{(easting, northing, azimuth, reciprocal)}\n    test 495 css.py:178: L{EasNorAziRkEqu6Tuple}C{(easting, northing, azimuth, reciprocal, equatorarc, equatorazimuth)}\n    test 496 css.py:265: L{LatLon2Tuple}C{(lat, lon)}\n    test 497 css.py:330: L{LatLon2Tuple}C{(lat, lon)}\n    test 498 css.py:359: L{LatLonAziRk4Tuple}C{(lat, lon, azimuth, reciprocal)}\n    test 499 css.py:525: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n    test 500 css.py:619: L{EasNor3Tuple}C{(easting, northing, height)}\n\n    testing datums.py (pygeodesy.named, 26.01.14)\n    test 501 datums.py:275: L{Vector3Tuple}C{(x, y, z)}\n\n    testing dms.py (pygeodesy.named, 26.01.14)\n    test 502 dms.py:760: L{LatLon2Tuple}C{(lat, lon)}\n    test 503 dms.py:813: L{LatLon3Tuple}C{(lat, lon, height)}\n\n    testing ecef.py (pygeodesy.named, 26.01.14)\n    test 504 ecef.py:233: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 505 ecef.py:259: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 506 ecef.py:369: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 507 ecef.py:441: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 508 ecef.py:491: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 509 ecef.py:621: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 510 ecef.py:703: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 511 ecef.py:769: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 512 ecef.py:838: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 513 ecef.py:1099: L{LatLon2Tuple}C{(lat, lon)}\n    test 514 ecef.py:1105: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 515 ecef.py:1111: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n    test 516 ecef.py:1117: L{LatLon2Tuple}C{(lat, lon)}\n    test 517 ecef.py:1147: L{PhiLam2Tuple}C{(phi, lam)}\n    test 518 ecef.py:1153: L{PhiLam3Tuple}C{(phi, lam, height)}\n    test 519 ecef.py:1159: L{PhiLam4Tuple}C{(phi, lam, height, datum)}\n    test 520 ecef.py:1165: L{PhiLam2Tuple}C{(phi, lam)}\n    test 521 ecef.py:1184: L{Vector4Tuple}C{(x, y, z, h)}\n    test 522 ecef.py:1225: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n    test 523 ecef.py:1226: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 524 ecef.py:1254: L{Vector3Tuple}C{(x, y, z)}\n    test 525 ecef.py:1271: L{Vector3Tuple}C{(x, y, z)}\n    test 526 ecef.py:1277: L{Vector4Tuple}C{(x, y, z, h)}\n\n    testing ecefLocals.py (pygeodesy.named, 26.01.14)\n    test 527 ecefLocals.py:108: L{Local9Tuple}C{(x, y, z, lat, lon, height, ltp, ecef, M)}\n\n    testing elevations.py (pygeodesy.named, 26.01.14)\n    test 528 elevations.py:151: L{Elevation2Tuple}C{(elevation, data_source)}\n    test 529 elevations.py:207: L{GeoidHeight2Tuple}C{(height, model_name)}\n\n    testing ellipses.py (pygeodesy.named, 26.01.14)\n    test 530 ellipses.py:240: L{Vector4Tuple}C{(x, y, z, h)}\n    test 531 ellipses.py:267: L{Vector4Tuple}C{(x, y, z, h)}\n    test 532 ellipses.py:361: L{Vector4Tuple}C{(x, y, z, h)}\n\n    testing ellipsoidalBase.py (pygeodesy.named, 26.01.14)\n    test 533 ellipsoidalBase.py:332: L{Distance2Tuple}C{(distance, initial)}\n    test 534 ellipsoidalBase.py:367: L{Elevation2Tuple}C{(elevation, data_source)}\n    test 535 ellipsoidalBase.py:479: L{GeoidHeight2Tuple}C{(height, model_name)}\n    test 536 ellipsoidalBase.py:521: L{Intersection3Tuple}C{(point, outside1, outside2)}\n    test 537 ellipsoidalBase.py:998: L{Vector3Tuple}C{(x, y, z)}\n    test 538 ellipsoidalBase.py:1042: L{Trilaterate5Tuple}C{(min, minPoint, max, maxPoint, n)}\n\n    testing ellipsoidalBaseDI.py (pygeodesy.named, 26.01.14)\n    test 539 ellipsoidalBaseDI.py:60: L{Bearing2Tuple}C{(initial, final)}\n    test 540 ellipsoidalBaseDI.py:102: L{Destination2Tuple}C{(destination, final)}\n    test 541 ellipsoidalBaseDI.py:109: L{Destination2Tuple}C{(destination, final)}\n    test 542 ellipsoidalBaseDI.py:110: L{Destination3Tuple}C{(lat, lon, final)}\n    test 543 ellipsoidalBaseDI.py:162: L{Distance3Tuple}C{(distance, initial, final)}\n    test 544 ellipsoidalBaseDI.py:316: L{Distance3Tuple}C{(distance, initial, final)}\n    test 545 ellipsoidalBaseDI.py:341: L{NearestOn8Tuple}C{(closest, distance, fi, j, start, end, initial, final)}\n\n    testing ellipsoidalExact.py (pygeodesy.named, 26.01.14)\n    test 546 ellipsoidalExact.py:43: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 547 ellipsoidalExact.py:81: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 548 ellipsoidalExact.py:143: L{Intersection3Tuple}C{(point, outside1, outside2)}\n    test 549 ellipsoidalExact.py:144: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n    test 550 ellipsoidalExact.py:193: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n    test 551 ellipsoidalExact.py:270: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n\n    testing ellipsoidalGeodSolve.py (pygeodesy.named, 26.01.14)\n    test 552 ellipsoidalGeodSolve.py:43: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 553 ellipsoidalGeodSolve.py:81: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 554 ellipsoidalGeodSolve.py:141: L{Intersection3Tuple}C{(point, outside1, outside2)}\n    test 555 ellipsoidalGeodSolve.py:142: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n    test 556 ellipsoidalGeodSolve.py:193: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n    test 557 ellipsoidalGeodSolve.py:270: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n\n    testing ellipsoidalKarney.py (pygeodesy.named, 26.01.14)\n    test 558 ellipsoidalKarney.py:60: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 559 ellipsoidalKarney.py:104: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 560 ellipsoidalKarney.py:168: L{Intersection3Tuple}C{(point, outside1, outside2)}\n    test 561 ellipsoidalKarney.py:169: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n    test 562 ellipsoidalKarney.py:220: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n    test 563 ellipsoidalKarney.py:301: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n\n    testing ellipsoidalNvector.py (pygeodesy.named, 26.01.14)\n    test 564 ellipsoidalNvector.py:102: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 565 ellipsoidalNvector.py:119: L{Vector4Tuple}C{(x, y, z, h)}\n    test 566 ellipsoidalNvector.py:398: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 567 ellipsoidalNvector.py:415: L{Vector4Tuple}C{(x, y, z, h)}\n    test 568 ellipsoidalNvector.py:483: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 569 ellipsoidalNvector.py:501: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 570 ellipsoidalNvector.py:542: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 571 ellipsoidalNvector.py:580: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n    test 572 ellipsoidalNvector.py:636: L{Ned3Tuple}C{(north, east, down)}  FAILED, KNOWN, expected DEPRECATED\n\n    testing ellipsoidalVincenty.py (pygeodesy.named, 26.01.14)\n    test 573 ellipsoidalVincenty.py:110: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 574 ellipsoidalVincenty.py:190: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 575 ellipsoidalVincenty.py:439: L{Intersection3Tuple}C{(point, outside1, outside2)}\n    test 576 ellipsoidalVincenty.py:440: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n    test 577 ellipsoidalVincenty.py:491: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n    test 578 ellipsoidalVincenty.py:541: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n\n    testing ellipsoids.py (pygeodesy.named, 26.01.14)\n    test 579 ellipsoids.py:146: L{a_f2Tuple}C{(a, f)}\n    test 580 ellipsoids.py:678: L{Circle4Tuple}C{(radius, height, lat, beta)}\n    test 581 ellipsoids.py:739: L{Distance2Tuple}C{(distance, initial)}\n    test 582 ellipsoids.py:1113: L{Vector4Tuple}C{(x, y, z, h)}\n    test 583 ellipsoids.py:1149: L{Vector4Tuple}C{(x, y, z, h)}\n    test 584 ellipsoids.py:1635: L{Curvature2Tuple}C{(meridional, prime_vertical)}\n    test 585 ellipsoids.py:1654: L{Curvature2Tuple}C{(meridional, prime_vertical)}\n    test 586 ellipsoids.py:1723: L{Curvature2Tuple}C{(meridional, prime_vertical)}\n\n    testing elliptic.py (pygeodesy.named, 26.01.14)\n    test 587 elliptic.py:830: L{Elliptic3Tuple}C{(sn, cn, dn)}\n\n    testing epsg.py (pygeodesy.named, 26.01.14)\n    test 588 epsg.py:148: L{UtmUps2Tuple}C{(zone, hemipole)}\n\n    testing errors.py (pygeodesy.named, 26.01.14)\n\n    testing etm.py (pygeodesy.named, 26.01.14)\n    test 589 etm.py:185: L{LatLonDatum5Tuple}C{(lat, lon, datum, gamma, scale)}\n    test 590 etm.py:446: L{Forward4Tuple}C{(easting, northing, gamma, scale)}\n    test 591 etm.py:685: L{Reverse4Tuple}C{(lat, lon, gamma, scale)}\n    test 592 etm.py:1048: L{UtmUps5Tuple}C{(zone, hemipole, easting, northing, band)}\n    test 593 etm.py:1079: L{UtmUps8Tuple}C{(zone, hemipole, easting, northing, band, datum, gamma, scale)}\n\n    testing fmath.py (pygeodesy.named, 26.01.14)\n\n    testing formy.py (pygeodesy.named, 26.01.14)\n    test 594 formy.py:90: L{LatLon2Tuple}C{(lat, lon)}\n    test 595 formy.py:106: L{PhiLam2Tuple}C{(phi, lam)}\n    test 596 formy.py:433: L{Distance4Tuple}C{(distance2, delta_lat, delta_lon, unroll_lon2)}\n    test 597 formy.py:1149: L{LatLon2Tuple}C{(lat, lon)}\n    test 598 formy.py:1212: L{LatLon2Tuple}C{(lat, lon)}\n    test 599 formy.py:1361: L{LatLon2Tuple}C{(lat, lon)}\n    test 600 formy.py:1377: L{PhiLam2Tuple}C{(phi, lam)}\n    test 601 formy.py:1460: L{Radical2Tuple}C{(ratio, xline)}\n\n    testing frechet.py (pygeodesy.named, 26.01.14)\n    test 602 frechet.py:199: L{Frechet6Tuple}C{(fd, fi1, fi2, r, n, units)}\n    test 603 frechet.py:371: L{PhiLam2Tuple}C{(phi, lam)}\n    test 604 frechet.py:745: L{Frechet6Tuple}C{(fd, fi1, fi2, r, n, units)}\n\n    testing fstats.py (pygeodesy.named, 26.01.14)\n\n    testing fsums.py (pygeodesy.named, 26.01.14)\n    test 605 fsums.py:1395: L{Fsum2Tuple}C{(fsum, residual)}\n    test 606 fsums.py:1848: L{Fsum2Tuple}C{(fsum, residual)}\n\n    testing gars.py (pygeodesy.named, 26.01.14)\n    test 607 gars.py:206: L{LatLonPrec3Tuple}C{(lat, lon, precision)}\n\n    testing geod3solve.py (pygeodesy.named, 26.01.14)\n\n    testing geodesici.py (pygeodesy.named, 26.01.14)\n    test 608 geodesici.py:347: L{Intersect7Tuple}C{(A, B, sAB, aAB, c, kA, kB)}\n    test 609 geodesici.py:349: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n    test 610 geodesici.py:904: L{Intersector5Tuple}C{(A, B, sAB, aAB, c)}\n    test 611 geodesici.py:975: L{Intersector5Tuple}C{(A, B, sAB, aAB, c)}\n    test 612 geodesici.py:1132: L{Middle5Tuple}C{(A, B, sMM, aMM, c)}\n    test 613 geodesici.py:1204: L{Intersector5Tuple}C{(A, B, sAB, aAB, c)}\n    test 614 geodesici.py:1331: L{Intersector5Tuple}C{(A, B, sAB, aAB, c)}\n    test 615 geodesici.py:1424: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n\n    testing geodesicw.py (pygeodesy.named, 26.01.14)\n\n    testing geodsolve.py (pygeodesy.named, 26.01.14)\n    test 616 geodsolve.py:129: L{Destination3Tuple}C{(lat, lon, final)}\n    test 617 geodsolve.py:175: L{Distance3Tuple}C{(distance, initial, final)}\n\n    testing geohash.py (pygeodesy.named, 26.01.14)\n    test 618 geohash.py:489: L{Neighbors8Dict}C{(N, NE, E, SE, S, SW, W, NW)}\n    test 619 geohash.py:972: L{Neighbors8Dict}C{(N, NE, E, SE, S, SW, W, NW)}\n    test 620 geohash.py:365: L{Bounds2Tuple}C{(latlonSW, latlonNE)}\n    test 621 geohash.py:366: L{Bounds4Tuple}C{(latS, lonW, latN, lonE)}\n    test 622 geohash.py:482: L{LatLon2Tuple}C{(lat, lon)}\n    test 623 geohash.py:499: L{PhiLam2Tuple}C{(phi, lam)}\n    test 624 geohash.py:512: L{Resolutions2Tuple}C{(res1, res2)}\n    test 625 geohash.py:525: L{Sizes3Tuple}C{(height, width, radius)}\n    test 626 geohash.py:540: L{LatLon2Tuple}C{(lat, lon)}\n    test 627 geohash.py:781: L{Bounds2Tuple}C{(latlonSW, latlonNE)}\n    test 628 geohash.py:782: L{Bounds4Tuple}C{(latS, lonW, latN, lonE)}\n    test 629 geohash.py:824: L{LatLon2Tuple}C{(lat, lon)}\n    test 630 geohash.py:849: L{LatLon2Tuple}C{(lat, lon)}\n    test 631 geohash.py:1015: L{Resolutions2Tuple}C{(res1, res2)}\n    test 632 geohash.py:1042: L{Sizes3Tuple}C{(height, width, radius)}\n\n    testing geoids.py (pygeodesy.named, 26.01.14)\n    test 633 geoids.py:352: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 634 geoids.py:478: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 635 geoids.py:543: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 636 geoids.py:561: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 637 geoids.py:581: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 638 geoids.py:726: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 639 geoids.py:744: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 640 geoids.py:1210: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 641 geoids.py:1265: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 642 geoids.py:1724: L{GeoidHeight5Tuple}C{(lat, lon, egm84, egm96, egm2008)}\n\n    testing hausdorff.py (pygeodesy.named, 26.01.14)\n    test 643 hausdorff.py:166: L{Hausdorff6Tuple}C{(hd, i, j, mn, md, units)}\n    test 644 hausdorff.py:244: L{Hausdorff6Tuple}C{(hd, i, j, mn, md, units)}\n    test 645 hausdorff.py:309: L{PhiLam2Tuple}C{(phi, lam)}\n    test 646 hausdorff.py:733: L{Hausdorff6Tuple}C{(hd, i, j, mn, md, units)}\n\n    testing heights.py (pygeodesy.named, 26.01.14)\n\n    testing internals.py (pygeodesy.named, 26.01.14)\n\n    testing interns.py (pygeodesy.named, 26.01.14)\n\n    testing iters.py (pygeodesy.named, 26.01.14)\n    test 647 iters.py:375: L{Point3Tuple}C{(x, y, ll)}\n    test 648 iters.py:495: L{Points2Tuple}C{(number, points)}\n\n    testing karney.py (pygeodesy.named, 26.01.14)\n    test 649 karney.py:453: L{Direct9Tuple}C{(a12, lat2, lon2, azi2, s12, m12, M12, M21, S12)}\n    test 650 karney.py:465: L{GeodSolve12Tuple}C{(lat1, lon1, azi1, lat2, lon2, azi2, s12, a12, m12, M12, M21, S12)}\n    test 651 karney.py:477: L{Geod3Solve8Tuple}C{(bet1, omg1, alp1, bet2, omg2, alp2, s12, a12)}\n    test 652 karney.py:487: L{Inverse10Tuple}C{(a12, s12, salp1, calp1, salp2, calp2, m12, M12, M21, S12)}\n    test 653 karney.py:517: L{Rhumb8Tuple}C{(lat1, lon1, lat2, lon2, azi12, s12, S12, a12)}\n    test 654 karney.py:527: L{RhumbSolve7Tuple}C{(lat1, lon1, lat2, lon2, azi12, s12, S12)}\n    test 655 karney.py:595: L{Direct9Tuple}C{(a12, lat2, lon2, azi2, s12, m12, M12, M21, S12)}\n    test 656 karney.py:612: L{Inverse10Tuple}C{(a12, s12, salp1, calp1, salp2, calp2, m12, M12, M21, S12)}\n\n    testing ktm.py (pygeodesy.named, 26.01.14)\n    test 657 ktm.py:230: L{Forward4Tuple}C{(easting, northing, gamma, scale)}\n    test 658 ktm.py:361: L{Reverse4Tuple}C{(lat, lon, gamma, scale)}\n\n    testing latlonBase.py (pygeodesy.named, 26.01.14)\n    test 659 latlonBase.py:148: L{Bounds2Tuple}C{(latlonSW, latlonNE)}\n    test 660 latlonBase.py:202: L{Circin6Tuple}C{(radius, center, deltas, cA, cB, cC)}\n    test 661 latlonBase.py:219: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 662 latlonBase.py:250: L{Circum3Tuple}C{(radius, center, deltas)}\n    test 663 latlonBase.py:253: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 664 latlonBase.py:270: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 665 latlonBase.py:292: L{Circum4Tuple}C{(radius, center, rank, residuals)}\n    test 666 latlonBase.py:409: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n    test 667 latlonBase.py:409: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 668 latlonBase.py:654: L{Vector4Tuple}C{(x, y, z, h)}\n    test 669 latlonBase.py:816: L{LatLon2Tuple}C{(lat, lon)}\n    test 670 latlonBase.py:855: L{LatLon2Tuple}C{(lat, lon)}\n    test 671 latlonBase.py:873: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 672 latlonBase.py:920: L{NearestOn6Tuple}C{(closest, distance, fi, j, start, end)}\n    test 673 latlonBase.py:993: L{PhiLam2Tuple}C{(phi, lam)}\n    test 674 latlonBase.py:1002: L{PhiLam2Tuple}C{(phi, lam)}\n    test 675 latlonBase.py:1012: L{PhiLam3Tuple}C{(phi, lam, height)}\n    test 676 latlonBase.py:1028: L{Points2Tuple}C{(number, points)}\n    test 677 latlonBase.py:1062: L{Radii11Tuple}C{(rA, rB, rC, cR, rIn, riS, roS, a, b, c, s)}\n    test 678 latlonBase.py:1299: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 679 latlonBase.py:1340: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 680 latlonBase.py:1381: L{Vector4Tuple}C{(x, y, z, h)}\n    test 681 latlonBase.py:1435: L{Vector3Tuple}C{(x, y, z)}\n    test 682 latlonBase.py:1512: L{Vector3Tuple}C{(x, y, z)}\n    test 683 latlonBase.py:1524: L{Vector4Tuple}C{(x, y, z, h)}\n    test 684 latlonBase.py:1567: L{Vector3Tuple}C{(x, y, z)}\n    test 685 latlonBase.py:1593: L{Vector3Tuple}C{(x, y, z)}\n\n    testing lazily.py (pygeodesy.named, 26.01.14)\n\n    testing lcc.py (pygeodesy.named, 26.01.14)\n    test 686 lcc.py:168: L{LatLon2Tuple}C{(lat, lon)}\n    test 687 lcc.py:222: L{PhiLam2Tuple}C{(phi, lam)}\n    test 688 lcc.py:483: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 689 lcc.py:489: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n    test 690 lcc.py:508: L{PhiLam3Tuple}C{(phi, lam, height)}\n    test 691 lcc.py:514: L{PhiLam4Tuple}C{(phi, lam, height, datum)}\n    test 692 lcc.py:525: L{LatLonDatum3Tuple}C{(lat, lon, datum)}\n    test 693 lcc.py:552: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n    test 694 lcc.py:630: L{EasNor3Tuple}C{(easting, northing, height)}\n\n    testing ltp.py (pygeodesy.named, 26.01.14)\n    test 695 ltp.py:163: L{Vector3Tuple}C{(x, y, z)}\n    test 696 ltp.py:292: L{Footprint5Tuple}C{(center, upperleft, upperight, loweright, lowerleft)}\n    test 697 ltp.py:484: L{Local9Tuple}C{(x, y, z, lat, lon, height, ltp, ecef, M)}\n    test 698 ltp.py:524: L{Local9Tuple}C{(x, y, z, lat, lon, height, ltp, ecef, M)}\n    test 699 ltp.py:556: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 700 ltp.py:568: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 701 ltp.py:646: L{Local9Tuple}C{(x, y, z, lat, lon, height, ltp, ecef, M)}\n    test 702 ltp.py:756: L{ChLV9Tuple}C{(Y, X, h_, lat, lon, height, ltp, ecef, M)}\n    test 703 ltp.py:778: L{ChLV9Tuple}C{(Y, X, h_, lat, lon, height, ltp, ecef, M)}\n    test 704 ltp.py:892: L{ChLVEN2Tuple}C{(E_LV95, N_LV95)}\n    test 705 ltp.py:893: L{ChLVyx2Tuple}C{(y_LV03, x_LV03)}\n    test 706 ltp.py:894: L{ChLVYX2Tuple}C{(Y, X)}\n    test 707 ltp.py:944: L{ChLVYX2Tuple}C{(Y, X)}\n    test 708 ltp.py:1100: L{Vector3Tuple}C{(x, y, z)}\n\n    testing ltpTuples.py (pygeodesy.named, 26.01.14)\n    test 709 ltpTuples.py:79: L{Aer4Tuple}C{(azimuth, elevation, slantrange, ltp)}\n    test 710 ltpTuples.py:94: L{Enu4Tuple}C{(east, north, up, ltp)}\n    test 711 ltpTuples.py:109: L{Ned4Tuple}C{(north, east, down, ltp)}\n    test 712 ltpTuples.py:125: L{Xyz4Tuple}C{(x, y, z, ltp)}\n    test 713 ltpTuples.py:134: L{Vector3Tuple}C{(x, y, z)}\n    test 714 ltpTuples.py:767: L{Aer4Tuple}C{(azimuth, elevation, slantrange, ltp)}\n    test 715 ltpTuples.py:786: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 716 ltpTuples.py:809: L{Enu4Tuple}C{(east, north, up, ltp)}\n    test 717 ltpTuples.py:827: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 718 ltpTuples.py:847: L{Local9Tuple}C{(x, y, z, lat, lon, height, ltp, ecef, M)}\n    test 719 ltpTuples.py:865: L{Ned4Tuple}C{(north, east, down, ltp)}\n    test 720 ltpTuples.py:881: L{Xyz4Tuple}C{(x, y, z, ltp)}\n    test 721 ltpTuples.py:902: L{Vector3Tuple}C{(x, y, z)}\n    test 722 ltpTuples.py:995: L{Uvw3Tuple}C{(u, v, w)}\n    test 723 ltpTuples.py:1090: L{LatLon2Tuple}C{(lat, lon)}\n    test 724 ltpTuples.py:1096: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 725 ltpTuples.py:1114: L{PhiLam2Tuple}C{(phi, lam)}\n    test 726 ltpTuples.py:1120: L{PhiLam3Tuple}C{(phi, lam, height)}\n    test 727 ltpTuples.py:1138: L{Aer4Tuple}C{(azimuth, elevation, slantrange, ltp)}\n    test 728 ltpTuples.py:1155: L{Vector4Tuple}C{(x, y, z, h)}\n    test 729 ltpTuples.py:1170: L{Enu4Tuple}C{(east, north, up, ltp)}\n    test 730 ltpTuples.py:1186: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n    test 731 ltpTuples.py:1187: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 732 ltpTuples.py:1202: L{Ned4Tuple}C{(north, east, down, ltp)}\n    test 733 ltpTuples.py:1217: L{Xyz4Tuple}C{(x, y, z, ltp)}\n    test 734 ltpTuples.py:1232: L{Vector3Tuple}C{(x, y, z)}\n    test 735 ltpTuples.py:1279: L{Enu4Tuple}C{(east, north, up, ltp)}\n    test 736 ltpTuples.py:1305: L{Uvw3Tuple}C{(u, v, w)}\n    test 737 ltpTuples.py:1526: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 738 ltpTuples.py:1527: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n\n    testing mgrs.py (pygeodesy.named, 26.01.14)\n    test 739 mgrs.py:207: L{EasNor2Tuple}C{(easting, northing)}\n    test 740 mgrs.py:292: L{LatLonDatum5Tuple}C{(lat, lon, datum, gamma, scale)}\n    test 741 mgrs.py:353: L{UtmUps5Tuple}C{(zone, hemipole, easting, northing, band)}\n    test 742 mgrs.py:371: L{UtmUps5Tuple}C{(zone, hemipole, easting, northing, band)}\n    test 743 mgrs.py:391: L{UtmUps5Tuple}C{(zone, hemipole, easting, northing, band)}\n    test 744 mgrs.py:465: L{Mgrs6Tuple}C{(zone, EN, easting, northing, band, datum)}\n    test 745 mgrs.py:549: L{Mgrs4Tuple}C{(zone, EN, easting, northing)}\n    test 746 mgrs.py:605: L{Mgrs6Tuple}C{(zone, EN, easting, northing, band, datum)}\n\n    testing named.py (pygeodesy.named, 26.01.14)\n\n    testing namedTuples.py (pygeodesy.named, 26.01.14)\n    test 747 namedTuples.py:279: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 748 namedTuples.py:293: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n    test 749 namedTuples.py:316: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n    test 750 namedTuples.py:383: L{LatLonPrec5Tuple}C{(lat, lon, precision, height, radius)}\n    test 751 namedTuples.py:442: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 752 namedTuples.py:510: L{PhiLam3Tuple}C{(phi, lam, height)}\n    test 753 namedTuples.py:522: L{PhiLam4Tuple}C{(phi, lam, height, datum)}\n    test 754 namedTuples.py:550: L{PhiLam4Tuple}C{(phi, lam, height, datum)}\n    test 755 namedTuples.py:727: L{Vector3Tuple}C{(x, y, z)}\n    test 756 namedTuples.py:771: L{Vector4Tuple}C{(x, y, z, h)}\n    test 757 namedTuples.py:811: L{Vector3Tuple}C{(x, y, z)}\n\n    testing nvectorBase.py (pygeodesy.named, 26.01.14)\n    test 758 nvectorBase.py:160: L{LatLon2Tuple}C{(lat, lon)}\n    test 759 nvectorBase.py:166: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 760 nvectorBase.py:172: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n    test 761 nvectorBase.py:190: L{PhiLam2Tuple}C{(phi, lam)}\n    test 762 nvectorBase.py:196: L{PhiLam3Tuple}C{(phi, lam, height)}\n    test 763 nvectorBase.py:202: L{PhiLam4Tuple}C{(phi, lam, height, datum)}\n    test 764 nvectorBase.py:233: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 765 nvectorBase.py:291: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 766 nvectorBase.py:353: L{Vector4Tuple}C{(x, y, z, h)}\n    test 767 nvectorBase.py:427: L{Vector4Tuple}C{(x, y, z, h)}\n    test 768 nvectorBase.py:496: L{Trilaterate5Tuple}C{(min, minPoint, max, maxPoint, n)}\n    test 769 nvectorBase.py:531: L{LatLon2Tuple}C{(lat, lon)}\n    test 770 nvectorBase.py:549: L{PhiLam2Tuple}C{(phi, lam)}\n    test 771 nvectorBase.py:589: L{Vector4Tuple}C{(x, y, z, h)}\n\n    testing osgr.py (pygeodesy.named, 26.01.14)\n    test 772 osgr.py:301: L{LatLonDatum3Tuple}C{(lat, lon, datum)}\n    test 773 osgr.py:522: L{EasNor2Tuple}C{(easting, northing)}\n    test 774 osgr.py:600: L{EasNor2Tuple}C{(easting, northing)}\n\n    testing points.py (pygeodesy.named, 26.01.14)\n    test 775 points.py:559: L{Shape2Tuple}C{(nrows, ncols)}\n    test 776 points.py:761: L{Point3Tuple}C{(x, y, ll)}\n    test 777 points.py:995: L{Bounds2Tuple}C{(latlonSW, latlonNE)}\n    test 778 points.py:997: L{Bounds4Tuple}C{(latS, lonW, latN, lonE)}\n    test 779 points.py:1037: L{LatLon2Tuple}C{(lat, lon)}\n    test 780 points.py:1117: L{LatLon2Tuple}C{(lat, lon)}\n    test 781 points.py:1485: L{NearestOn3Tuple}C{(closest, distance, angle)}\n    test 782 points.py:1487: L{NearestOn5Tuple}C{(lat, lon, distance, angle, height)}\n\n    testing props.py (pygeodesy.named, 26.01.14)\n\n    testing resections.py (pygeodesy.named, 26.01.14)\n    test 783 resections.py:229: L{Collins5Tuple}C{(pointP, pointH, a, b, c)}\n    test 784 resections.py:549: L{Survey3Tuple}C{(PA, PB, PC)}\n    test 785 resections.py:613: L{Tienstra7Tuple}C{(pointP, A, B, C, a, b, c)}\n    test 786 resections.py:733: L{TriAngle5Tuple}C{(radA, radB, radC, rIn, area)}\n    test 787 resections.py:864: L{TriSide2Tuple}C{(a, radA)}\n    test 788 resections.py:910: L{TriSide4Tuple}C{(a, b, radC, d)}\n    test 789 resections.py:956: L{Survey3Tuple}C{(PA, PB, PC)}\n\n    testing simplify.py (pygeodesy.named, 26.01.14)\n\n    testing solveBase.py (pygeodesy.named, 26.01.14)\n\n    testing sphericalBase.py (pygeodesy.named, 26.01.14)\n    test 790 sphericalBase.py:151: L{Bearing2Tuple}C{(initial, final)}\n    test 791 sphericalBase.py:579: L{Vector4Tuple}C{(x, y, z, h)}\n\n    testing sphericalNvector.py (pygeodesy.named, 26.01.14)\n    test 792 sphericalNvector.py:83: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 793 sphericalNvector.py:99: L{Vector4Tuple}C{(x, y, z, h)}\n    test 794 sphericalNvector.py:641: L{NearestOn3Tuple}C{(closest, distance, angle)}\n    test 795 sphericalNvector.py:677: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 796 sphericalNvector.py:692: L{Vector4Tuple}C{(x, y, z, h)}\n    test 797 sphericalNvector.py:731: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 798 sphericalNvector.py:748: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 799 sphericalNvector.py:882: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 800 sphericalNvector.py:913: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 801 sphericalNvector.py:1045: L{NearestOn3Tuple}C{(closest, distance, angle)}\n\n    testing sphericalTrigonometry.py (pygeodesy.named, 26.01.14)\n    test 802 sphericalTrigonometry.py:80: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 803 sphericalTrigonometry.py:622: L{NearestOn3Tuple}C{(closest, distance, angle)}\n    test 804 sphericalTrigonometry.py:653: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 805 sphericalTrigonometry.py:671: L{Triangle7Tuple}C{(A, a, B, b, C, c, area)}\n    test 806 sphericalTrigonometry.py:672: L{Triangle8Tuple}C{(A, a, B, b, C, c, D, E)}\n    test 807 sphericalTrigonometry.py:722: L{Trilaterate5Tuple}C{(min, minPoint, max, maxPoint, n)}\n    test 808 sphericalTrigonometry.py:1010: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 809 sphericalTrigonometry.py:1054: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 810 sphericalTrigonometry.py:1172: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 811 sphericalTrigonometry.py:1197: L{LatLon2Tuple}C{(lat, lon)}\n    test 812 sphericalTrigonometry.py:1228: L{NearestOn3Tuple}C{(closest, distance, angle)}\n    test 813 sphericalTrigonometry.py:1229: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 814 sphericalTrigonometry.py:1325: L{Triangle7Tuple}C{(A, a, B, b, C, c, area)}\n    test 815 sphericalTrigonometry.py:1330: L{Triangle8Tuple}C{(A, a, B, b, C, c, D, E)}\n    test 816 sphericalTrigonometry.py:1357: L{Triangle8Tuple}C{(A, a, B, b, C, c, D, E)}\n\n    testing streprs.py (pygeodesy.named, 26.01.14)\n\n    testing trf.py (pygeodesy.named, 26.01.14)\n    test 817 trf.py:472: L{Vector3Tuple}C{(x, y, z)}\n    test 818 trf.py:514: L{Vector3Tuple}C{(x, y, z)}\n\n    testing units.py (pygeodesy.named, 26.01.14)\n\n    testing unitsBase.py (pygeodesy.named, 26.01.14)\n\n    testing ups.py (pygeodesy.named, 26.01.14)\n    test 819 ups.py:147: L{EasNor2Tuple}C{(easting, northing)}\n    test 820 ups.py:209: L{LatLonDatum5Tuple}C{(lat, lon, datum, gamma, scale)}\n    test 821 ups.py:355: L{UtmUps5Tuple}C{(zone, hemipole, easting, northing, band)}\n    test 822 ups.py:402: L{UtmUps8Tuple}C{(zone, hemipole, easting, northing, band, datum, gamma, scale)}\n    test 823 ups.py:477: L{UtmUpsLatLon5Tuple}C{(zone, band, hemipole, lat, lon)}\n\n    testing utily.py (pygeodesy.named, 26.01.14)\n    test 824 utily.py:203: L{Circle4Tuple}C{(radius, height, lat, beta)}\n\n    testing utm.py (pygeodesy.named, 26.01.14)\n    test 825 utm.py:252: L{EasNor2Tuple}C{(easting, northing)}\n    test 826 utm.py:306: L{LatLonDatum5Tuple}C{(lat, lon, datum, gamma, scale)}\n    test 827 utm.py:512: L{UtmUps5Tuple}C{(zone, hemipole, easting, northing, band)}\n    test 828 utm.py:542: L{UtmUps8Tuple}C{(zone, hemipole, easting, northing, band, datum, gamma, scale)}\n    test 829 utm.py:721: L{UtmUpsLatLon5Tuple}C{(zone, band, hemipole, lat, lon)}\n\n    testing utmups.py (pygeodesy.named, 26.01.14)\n    test 830 utmups.py:89: L{UtmUps5Tuple}C{(zone, hemipole, easting, northing, band)}\n    test 831 utmups.py:129: L{UtmUps8Tuple}C{(zone, hemipole, easting, northing, band, datum, gamma, scale)}\n    test 832 utmups.py:278: L{UtmUpsLatLon5Tuple}C{(zone, band, hemipole, lat, lon)}\n\n    testing utmupsBase.py (pygeodesy.named, 26.01.14)\n    test 833 utmupsBase.py:158: L{EasNor2Tuple}C{(easting, northing)}\n    test 834 utmupsBase.py:168: L{EasNor2Tuple}C{(easting, northing)}\n    test 835 utmupsBase.py:366: L{EasNor2Tuple}C{(easting, northing)}\n\n    testing vector2d.py (pygeodesy.named, 26.01.14)\n    test 836 vector2d.py:148: L{Circin6Tuple}C{(radius, center, deltas, cA, cB, cC)}\n    test 837 vector2d.py:212: L{Circum3Tuple}C{(radius, center, deltas)}\n    test 838 vector2d.py:262: L{Circum4Tuple}C{(radius, center, rank, residuals)}\n    test 839 vector2d.py:338: L{Meeus2Tuple}C{(radius, Type)}\n    test 840 vector2d.py:513: L{Radii11Tuple}C{(rA, rB, rC, cR, rIn, riS, roS, a, b, c, s)}\n    test 841 vector2d.py:590: L{Soddy4Tuple}C{(radius, center, deltas, outer)}\n    test 842 vector2d.py:623: L{Triaxum5Tuple}C{(a, b, c, rank, residuals)}\n    test 843 vector2d.py:705: L{Vector2Tuple}C{(x, y)}\n\n    testing vector3d.py (pygeodesy.named, 26.01.14)\n    test 844 vector3d.py:75: L{Circin6Tuple}C{(radius, center, deltas, cA, cB, cC)}\n    test 845 vector3d.py:109: L{Circum3Tuple}C{(radius, center, deltas)}\n    test 846 vector3d.py:135: L{Circum4Tuple}C{(radius, center, rank, residuals)}\n    test 847 vector3d.py:182: L{Meeus2Tuple}C{(radius, Type)}\n    test 848 vector3d.py:228: L{NearestOn6Tuple}C{(closest, distance, fi, j, start, end)}\n    test 849 vector3d.py:264: L{Radii11Tuple}C{(rA, rB, rC, cR, rIn, riS, roS, a, b, c, s)}\n    test 850 vector3d.py:291: L{Soddy4Tuple}C{(radius, center, deltas, outer)}\n    test 851 vector3d.py:516: L{Intersection3Tuple}C{(point, outside1, outside2)}\n    test 852 vector3d.py:742: L{NearestOn6Tuple}C{(closest, distance, fi, j, start, end)}\n    test 853 vector3d.py:813: L{Vector3Tuple}C{(x, y, z)}\n    test 854 vector3d.py:837: L{Vector3Tuple}C{(x, y, z)}\n\n    testing vector3dBase.py (pygeodesy.named, 26.01.14)\n    test 855 vector3dBase.py:1039: L{PhiLam2Tuple}C{(phi, lam)}\n    test 856 vector3dBase.py:1047: L{LatLon2Tuple}C{(lat, lon)}\n    test 857 vector3dBase.py:1113: L{Vector3Tuple}C{(x, y, z)}\n\n    testing webmercator.py (pygeodesy.named, 26.01.14)\n    test 858 webmercator.py:121: L{LatLon2Tuple}C{(lat, lon)}\n    test 859 webmercator.py:179: L{LatLon2Tuple}C{(lat, lon)}\n    test 860 webmercator.py:288: L{EasNorRadius3Tuple}C{(easting, northing, radius)}\n    test 861 webmercator.py:324: L{EasNorRadius3Tuple}C{(easting, northing, radius)}\n\n    testing wgrs.py (pygeodesy.named, 26.01.14)\n    test 862 wgrs.py:221: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 863 wgrs.py:239: L{LatLonPrec3Tuple}C{(lat, lon, precision)}\n    test 864 wgrs.py:292: L{LatLonPrec5Tuple}C{(lat, lon, precision, height, radius)}\n\n    testing auxilats._CX_4.py (pygeodesy.named, 26.01.14)\n\n    testing auxilats._CX_6.py (pygeodesy.named, 26.01.14)\n\n    testing auxilats._CX_8.py (pygeodesy.named, 26.01.14)\n\n    testing auxilats._CX_Rs.py (pygeodesy.named, 26.01.14)\n\n    testing auxilats.__init__.py (pygeodesy.named, 26.01.14)\n\n    testing auxilats.__main__.py (pygeodesy.named, 26.01.14)\n\n    testing auxilats.auxAngle.py (pygeodesy.named, 26.01.14)\n\n    testing auxilats.auxDLat.py (pygeodesy.named, 26.01.14)\n\n    testing auxilats.auxDST.py (pygeodesy.named, 26.01.14)\n\n    testing auxilats.auxLat.py (pygeodesy.named, 26.01.14)\n\n    testing auxilats.auxily.py (pygeodesy.named, 26.01.14)\n\n    testing deprecated.__init__.py (pygeodesy.named, 26.01.14)\n\n    testing deprecated.bases.py (pygeodesy.named, 26.01.14)\n\n    testing deprecated.classes.py (pygeodesy.named, 26.01.14)\n    test 865 deprecated.classes.py:82: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 866 deprecated.classes.py:96: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n\n    testing deprecated.consterns.py (pygeodesy.named, 26.01.14)\n\n    testing deprecated.datum.py (pygeodesy.named, 26.01.14)\n\n    testing deprecated.functions.py (pygeodesy.named, 26.01.14)\n    test 867 deprecated.functions.py:56: L{ClipCS3Tuple}C{(start, end, index)}  FAILED, KNOWN, expected DEPRECATED\n    test 868 deprecated.functions.py:390: L{TriAngle4Tuple}C{(radA, radB, radC, rIn)}  FAILED, KNOWN, expected DEPRECATED\n\n    testing deprecated.nvector.py (pygeodesy.named, 26.01.14)\n\n    testing deprecated.rhumbBase.py (pygeodesy.named, 26.01.14)\n\n    testing deprecated.rhumbaux.py (pygeodesy.named, 26.01.14)\n\n    testing deprecated.rhumbsolve.py (pygeodesy.named, 26.01.14)\n\n    testing deprecated.rhumbx.py (pygeodesy.named, 26.01.14)\n\n    testing geodesicx._C4_24.py (pygeodesy.named, 26.01.14)\n\n    testing geodesicx._C4_27.py (pygeodesy.named, 26.01.14)\n\n    testing geodesicx._C4_30.py (pygeodesy.named, 26.01.14)\n\n    testing geodesicx.__init__.py (pygeodesy.named, 26.01.14)\n\n    testing geodesicx.__main__.py (pygeodesy.named, 26.01.14)\n\n    testing geodesicx.gx.py (pygeodesy.named, 26.01.14)\n    test 869 geodesicx.gx.py:357: L{Destination3Tuple}C{(lat, lon, final)}\n    test 870 geodesicx.gx.py:710: L{Direct9Tuple}C{(a12, lat2, lon2, azi2, s12, m12, M12, M21, S12)}\n    test 871 geodesicx.gx.py:719: L{Inverse10Tuple}C{(a12, s12, salp1, calp1, salp2, calp2, m12, M12, M21, S12)}\n    test 872 geodesicx.gx.py:774: L{Distance3Tuple}C{(distance, initial, final)}\n\n    testing geodesicx.gxarea.py (pygeodesy.named, 26.01.14)\n    test 873 geodesicx.gxarea.py:161: L{Area3Tuple}C{(number, perimeter, area)}\n    test 874 geodesicx.gxarea.py:323: L{Area3Tuple}C{(number, perimeter, area)}\n    test 875 geodesicx.gxarea.py:350: L{Area3Tuple}C{(number, perimeter, area)}\n\n    testing geodesicx.gxbases.py (pygeodesy.named, 26.01.14)\n\n    testing geodesicx.gxline.py (pygeodesy.named, 26.01.14)\n    test 876 geodesicx.gxline.py:464: L{Direct9Tuple}C{(a12, lat2, lon2, azi2, s12, m12, M12, M21, S12)}\n\n    testing rhumb.__init__.py (pygeodesy.named, 26.01.14)\n\n    testing rhumb.aux_.py (pygeodesy.named, 26.01.14)\n\n    testing rhumb.bases.py (pygeodesy.named, 26.01.14)\n    test 877 rhumb.bases.py:589: L{Distance2Tuple}C{(distance, initial)}\n    test 878 rhumb.bases.py:782: L{LatLon2Tuple}C{(lat, lon)}\n\n    testing rhumb.ekx.py (pygeodesy.named, 26.01.14)\n    test 879 rhumb.ekx.py:201: L{RhumbOrder2Tuple}C{(RAorder, TMorder)}  FAILED, KNOWN, expected DEPRECATED\n\n    testing rhumb.solve.py (pygeodesy.named, 26.01.14)\n    test 880 rhumb.solve.py:120: L{Destination3Tuple}C{(lat, lon, final)}\n    test 881 rhumb.solve.py:184: L{Distance3Tuple}C{(distance, initial, final)}\n\n    testing triaxials.__init__.py (pygeodesy.named, 26.01.14)\n\n    testing triaxials.bases.py (pygeodesy.named, 26.01.14)\n    test 882 triaxials.bases.py:379: L{Ellipse5Tuple}C{(a, b, height, lat, beta)}\n    test 883 triaxials.bases.py:508: L{Vector4Tuple}C{(x, y, z, h)}\n\n    testing triaxials.conformal3.py (pygeodesy.named, 26.01.14)\n    test 884 triaxials.conformal3.py:174: L{Conformal5Tuple}C{(x, y, z, scale, llk)}\n    test 885 triaxials.conformal3.py:190: L{BetOmgGam5Tuple}C{(bet, omg, gam, scale, llk)}\n    test 886 triaxials.conformal3.py:216: L{Cartesian5Tuple}C{(x, y, z, h, llk)}\n    test 887 triaxials.conformal3.py:248: L{BetOmgGam5Tuple}C{(bet, omg, gam, scale, llk)}\n    test 888 triaxials.conformal3.py:269: L{BetOmgGam5Tuple}C{(bet, omg, gam, scale, llk)}\n    test 889 triaxials.conformal3.py:290: L{BetOmgGam5Tuple}C{(bet, omg, gam, scale, llk)}\n\n    testing triaxials.triaxial3.py (pygeodesy.named, 26.01.14)\n    test 890 triaxials.triaxial3.py:175: L{Cartesian5Tuple}C{(x, y, z, h, llk)}\n    test 891 triaxials.triaxial3.py:203: L{Cartesian5Tuple}C{(x, y, z, h, llk)}\n    test 892 triaxials.triaxial3.py:277: L{Cartesian5Tuple}C{(x, y, z, h, llk)}\n    test 893 triaxials.triaxial3.py:303: L{Cartesian5Tuple}C{(x, y, z, h, llk)}\n    test 894 triaxials.triaxial3.py:323: L{Cartesian5Tuple}C{(x, y, z, h, llk)}\n    test 895 triaxials.triaxial3.py:347: L{Cartesian5Tuple}C{(x, y, z, h, llk)}\n    test 896 triaxials.triaxial3.py:421: L{Cartesian5Tuple}C{(x, y, z, h, llk)}\n    test 897 triaxials.triaxial3.py:458: L{BetOmgAlp5Tuple}C{(bet, omg, alp, h, llk)}\n    test 898 triaxials.triaxial3.py:497: L{BetOmgAlp5Tuple}C{(bet, omg, alp, h, llk)}\n    test 899 triaxials.triaxial3.py:580: L{Cartesian5Tuple}C{(x, y, z, h, llk)}\n    test 900 triaxials.triaxial3.py:607: L{BetOmgAlp5Tuple}C{(bet, omg, alp, h, llk)}\n    test 901 triaxials.triaxial3.py:608: L{PhiLamZet5Tuple}C{(phi, lam, zet, h, llk)}\n    test 902 triaxials.triaxial3.py:630: L{PhiLamZet5Tuple}C{(phi, lam, zet, h, llk)}\n    test 903 triaxials.triaxial3.py:649: L{PhiLamZet5Tuple}C{(phi, lam, zet, h, llk)}\n    test 904 triaxials.triaxial3.py:683: L{Cartesian5Tuple}C{(x, y, z, h, llk)}\n    test 905 triaxials.triaxial3.py:738: L{BetOmgAlp5Tuple}C{(bet, omg, alp, h, llk)}\n    test 906 triaxials.triaxial3.py:739: L{PhiLamZet5Tuple}C{(phi, lam, zet, h, llk)}\n    test 907 triaxials.triaxial3.py:767: L{Cartesian5Tuple}C{(x, y, z, h, llk)}\n\n    testing triaxials.triaxial5.py (pygeodesy.named, 26.01.14)\n    test 908 triaxials.triaxial5.py:107: L{BetaOmega2Tuple}C{(beta, omega)}\n    test 909 triaxials.triaxial5.py:119: L{BetaOmega2Tuple}C{(beta, omega)}\n    test 910 triaxials.triaxial5.py:140: L{BetaOmega3Tuple}C{(beta, omega, height)}\n    test 911 triaxials.triaxial5.py:152: L{BetaOmega3Tuple}C{(beta, omega, height)}\n    test 912 triaxials.triaxial5.py:177: L{Conformal2Tuple}C{(x, y)}\n    test 913 triaxials.triaxial5.py:188: L{Conformal2Tuple}C{(x, y)}\n    test 914 triaxials.triaxial5.py:250: L{Vector3Tuple}C{(x, y, z)}\n    test 915 triaxials.triaxial5.py:286: L{Vector3Tuple}C{(x, y, z)}\n    test 916 triaxials.triaxial5.py:311: L{Vector4Tuple}C{(x, y, z, h)}\n    test 917 triaxials.triaxial5.py:328: L{Vector3Tuple}C{(x, y, z)}\n    test 918 triaxials.triaxial5.py:348: L{Vector3Tuple}C{(x, y, z)}\n    test 919 triaxials.triaxial5.py:388: L{BetaOmega3Tuple}C{(beta, omega, height)}\n    test 920 triaxials.triaxial5.py:416: L{Vector3Tuple}C{(x, y, z)}\n    test 921 triaxials.triaxial5.py:444: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 922 triaxials.triaxial5.py:572: L{Vector2Tuple}C{(x, y)}\n    test 923 triaxials.triaxial5.py:583: L{Vector2Tuple}C{(x, y)}\n    test 924 triaxials.triaxial5.py:592: L{Conformal2Tuple}C{(x, y)}\n    test 925 triaxials.triaxial5.py:606: L{Conformal2Tuple}C{(x, y)}\n    test 926 triaxials.triaxial5.py:621: L{Conformal2Tuple}C{(x, y)}\n    test 927 triaxials.triaxial5.py:829: L{Vector4Tuple}C{(x, y, z, h)}\n    test 928 triaxials.triaxial5.py:872: L{Vector4Tuple}C{(x, y, z, h)}\n\n    testing xtend (pygeodesy.namedTuples, 26.03.12)\n    test 929 LatLon2Tuple(lat=0, lon=1): (0, 1, 2)\n    test 930 LatLon2Tuple(lat=0, lon=1): <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 931 LatLon2Tuple(lat=0, lon=1): (0, 1, 2, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 932 LatLon2Tuple(lat=0, lon=1): <class 'pygeodesy.namedTuples.LatLon4Tuple'>\n    test 933 LatLon3Tuple(lat=0, lon=1, height=2): (0, 1, 2, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 934 LatLon3Tuple(lat=0, lon=1, height=2): <class 'pygeodesy.namedTuples.LatLon4Tuple'>\n    test 935 PhiLam2Tuple(phi=0, lam=1): (0, 1, 2)\n    test 936 PhiLam2Tuple(phi=0, lam=1): <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 937 Vector3Tuple(x=0, y=1, z=2): (0, 1, 2, 4)\n    test 938 Vector3Tuple(x=0, y=1, z=2): <class 'pygeodesy.namedTuples.Vector4Tuple'>\n\n    testing bases (pygeodesy.named, 26.01.14)\n    test 939 nd.dict: test(1=1, 2=2)\n    test 940 nd.name: test\n    test 941 nd.dict: test(1=1, 2=2)\n    test 942 nd.name: test\n    test 943 nd.kwds: test(one=1, two=2)\n    test 944 nd.name: test\n    test 945 nd.dict: test(1=1, 2=2)\n    test 946 nd.name: test\n    test 947 nd.list: test(1=1, 2=2)\n    test 948 nd.name: test\n    test 949 nd.updated: test(1=1, 2=2, name='kwds')\n    test 950 nd.name: test\n\n    testing coverage (pygeodesy.named, 26.01.14)\n{E: 'E', N: 'N', NE: 'NE', NW: 'NW', S: 'S', SE: 'SE', SW: 'SW', W: 'W'}\n    test 951 nd.name: name\n    test 952 nd.named: name\n    test 953 nd.named: Neighbors8Dict\n    test 954 nd.name: test\n    test 955 nd.test: test\n    test 956 nd.test: None\n    test 957 nd.classnaming: False\n    test 958 nd.classname: Neighbors8Dict\n    test 959 nd.named2: Neighbors8Dict 'test'\n    test 960 nd.classnaming: True\n    test 961 nd.classname: geohash.Neighbors8Dict\n    test 962 nd.named2: geohash.Neighbors8Dict 'test'\n    test 963 delattr: None\n    test 964 classnaming: False\n    test 965 classnaming: True\n\n    testing unregister (pygeodesy.named, 26.01.14)\n    test 966 Conics: 1\n    test 967 Conics: 8\n    test 968 Conics.Be08Lb.unregister: None\n    test 969 Conics.Be72Lb.unregister: None\n    test 970 Conics.Fr93Lb.unregister: None\n    test 971 Conics.MaNLb.unregister: None\n    test 972 Conics.MxLb.unregister: None\n    test 973 Conics.PyT_Lb.unregister: None\n    test 974 Conics.USA_Lb.unregister: None\n    test 975 Conics.WRF_Lb.unregister: None\n    test 976 Conics: 0\n\n    test 977 Datums: 6\n    test 978 Datums: 18\n    test 979 Datums.unregister(BD72): None\n    test 980 Datums.unregister(DHDN): None\n    test 981 Datums.unregister(ED50): None\n    test 982 Datums.unregister(GDA2020): None\n    test 983 Datums.unregister(GRS80): None\n    test 984 Datums.unregister(Irl1975): None\n    test 985 Datums.unregister(Krassovski1940): None\n    test 986 Datums.unregister(Krassowsky1940): None\n    test 987 Datums.unregister(MGI): None\n    test 988 Datums.unregister(NAD27): None\n    test 989 Datums.unregister(NAD83): None\n    test 990 Datums.unregister(NTF): None\n    test 991 Datums.unregister(OSGB36): None\n    test 992 Datums.unregister(Potsdam): None\n    test 993 Datums.unregister(Sphere): None\n    test 994 Datums.unregister(TokyoJapan): None\n    test 995 Datums.unregister(WGS72): None\n    test 996 Datums.unregister(WGS84): None\n    test 997 Datums: 0\n\n    test 998 RefFrames: 32  FAILED, KNOWN, expected 0\n    test 999 RefFrames: 36\n    test 1000 RefFrames.ETRF2000.unregister: None\n    test 1001 RefFrames.ETRF2005.unregister: None\n    test 1002 RefFrames.ETRF2008.unregister: None\n    test 1003 RefFrames.ETRF2014.unregister: None\n    test 1004 RefFrames.ETRF2020.unregister: None\n    test 1005 RefFrames.ETRF88.unregister: None\n    test 1006 RefFrames.ETRF89.unregister: None\n    test 1007 RefFrames.ETRF90.unregister: None\n    test 1008 RefFrames.ETRF91.unregister: None\n    test 1009 RefFrames.ETRF92.unregister: None\n    test 1010 RefFrames.ETRF93.unregister: None\n    test 1011 RefFrames.ETRF94.unregister: None\n    test 1012 RefFrames.ETRF96.unregister: None\n    test 1013 RefFrames.ETRF97.unregister: None\n    test 1014 RefFrames.GDA2020.unregister: None\n    test 1015 RefFrames.GDA94.unregister: None\n    test 1016 RefFrames.ITRF2000.unregister: None\n    test 1017 RefFrames.ITRF2005.unregister: None\n    test 1018 RefFrames.ITRF2008.unregister: None\n    test 1019 RefFrames.ITRF2014.unregister: None\n    test 1020 RefFrames.ITRF2020.unregister: None\n    test 1021 RefFrames.ITRF88.unregister: None\n    test 1022 RefFrames.ITRF89.unregister: None\n    test 1023 RefFrames.ITRF90.unregister: None\n    test 1024 RefFrames.ITRF91.unregister: None\n    test 1025 RefFrames.ITRF92.unregister: None\n    test 1026 RefFrames.ITRF93.unregister: None\n    test 1027 RefFrames.ITRF94.unregister: None\n    test 1028 RefFrames.ITRF96.unregister: None\n    test 1029 RefFrames.ITRF97.unregister: None\n    test 1030 RefFrames.NAD83.unregister: None\n    test 1031 RefFrames.NAD83cors96.unregister: None\n    test 1032 RefFrames.WGS84.unregister: None\n    test 1033 RefFrames.WGS84g1150.unregister: None\n    test 1034 RefFrames.WGS84g1674.unregister: None\n    test 1035 RefFrames.WGS84g1762.unregister: None\n    test 1036 RefFrames: 0\n\n    test 1037 Ellipsoids: 12\n    test 1038 Ellipsoids: 49\n    test 1039 Ellipsoids.Airy1830.unregister: None\n    test 1040 Ellipsoids.AiryModified.unregister: None\n    test 1041 Ellipsoids.ATS1977.unregister: None\n    test 1042 Ellipsoids.Australia1966.unregister: None\n    test 1043 Ellipsoids.Bessel1841.unregister: None\n    test 1044 Ellipsoids.BesselModified.unregister: None\n    test 1045 Ellipsoids.CGCS2000.unregister: None\n    test 1046 Ellipsoids.Clarke1866.unregister: None\n    test 1047 Ellipsoids.Clarke1880.unregister: None\n    test 1048 Ellipsoids.Clarke1880IGN.unregister: None\n    test 1049 Ellipsoids.Clarke1880Mod.unregister: None\n    test 1050 Ellipsoids.CPM1799.unregister: None\n    test 1051 Ellipsoids.Delambre1810.unregister: None\n    test 1052 Ellipsoids.Engelis1985.unregister: None\n    test 1053 Ellipsoids.Everest1969.unregister: None\n    test 1054 Ellipsoids.Everest1975.unregister: None\n    test 1055 Ellipsoids.Fisher1968.unregister: None\n    test 1056 Ellipsoids.GEM10C.unregister: None\n    test 1057 Ellipsoids.GPES.unregister: None\n    test 1058 Ellipsoids.GRS67.unregister: None\n    test 1059 Ellipsoids.GRS80.unregister: None\n    test 1060 Ellipsoids.Helmert1906.unregister: None\n    test 1061 Ellipsoids.IAU76.unregister: None\n    test 1062 Ellipsoids.IERS1989.unregister: None\n    test 1063 Ellipsoids.IERS1992TOPEX.unregister: None\n    test 1064 Ellipsoids.IERS2003.unregister: None\n    test 1065 Ellipsoids.Intl1924.unregister: None\n    test 1066 Ellipsoids.Intl1967.unregister: None\n    test 1067 Ellipsoids.Krassovski1940.unregister: None\n    test 1068 Ellipsoids.Krassowsky1940.unregister: None\n    test 1069 Ellipsoids.Maupertuis1738.unregister: None\n    test 1070 Ellipsoids.Mercury1960.unregister: None\n    test 1071 Ellipsoids.Mercury1968Mod.unregister: None\n    test 1072 Ellipsoids.NWL1965.unregister: None\n    test 1073 Ellipsoids.OSU86F.unregister: None\n    test 1074 Ellipsoids.OSU91A.unregister: None\n    test 1075 Ellipsoids.Plessis1817.unregister: None\n    test 1076 Ellipsoids.PZ90.unregister: None\n    test 1077 Ellipsoids.SGS85.unregister: None\n    test 1078 Ellipsoids.SoAmerican1969.unregister: None\n    test 1079 Ellipsoids.Sphere.unregister: None\n    test 1080 Ellipsoids.SphereAuthalic.unregister: None\n    test 1081 Ellipsoids.SpherePopular.unregister: None\n    test 1082 Ellipsoids.Struve1860.unregister: None\n    test 1083 Ellipsoids.WGS60.unregister: None\n    test 1084 Ellipsoids.WGS66.unregister: None\n    test 1085 Ellipsoids.WGS72.unregister: None\n    test 1086 Ellipsoids.WGS84.unregister: None\n    test 1087 Ellipsoids.WGS84_NGS.unregister: None\n    test 1088 Ellipsoids: 0\n\n    test 1089 Transforms: 16\n    test 1090 Transforms: 20\n    test 1091 Transforms.BD72.unregister: None\n    test 1092 Transforms.Bessel1841.unregister: None\n    test 1093 Transforms.Clarke1866.unregister: None\n    test 1094 Transforms.DHDN.unregister: None\n    test 1095 Transforms.DHDNE.unregister: None\n    test 1096 Transforms.DHDNW.unregister: None\n    test 1097 Transforms.ED50.unregister: None\n    test 1098 Transforms.Identity.unregister: None\n    test 1099 Transforms.Irl1965.unregister: None\n    test 1100 Transforms.Irl1975.unregister: None\n    test 1101 Transforms.Krassovski1940.unregister: None\n    test 1102 Transforms.Krassowsky1940.unregister: None\n    test 1103 Transforms.MGI.unregister: None\n    test 1104 Transforms.NAD27.unregister: None\n    test 1105 Transforms.NAD83.unregister: None\n    test 1106 Transforms.NTF.unregister: None\n    test 1107 Transforms.OSGB36.unregister: None\n    test 1108 Transforms.TokyoJapan.unregister: None\n    test 1109 Transforms.WGS72.unregister: None\n    test 1110 Transforms.WGS84.unregister: None\n    test 1111 Transforms: 0\n\n    test 1112 nameof: KsOrder\n\n    10 of 1112 testNamed.py tests (0.9%) FAILED, ALL KNOWN (pygeodesy 26.3.26 Python 3.13.12 64bit arm64 coverage 7.10.7 geographiclib 2.1 numpy 2.3.3 scipy 1.16.2 Math 2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 macOS 26.3.1 isLazy 1 -W  default) 107.588 ms\nrunning /Library/Framewo....n3.13 -W default ~/PyGeodesy/test/testNamedTuples.py\n\n    testing testNamedTuples.py 25.12.06 isLazy=1\n    test 1 pygeodesy.albers: Albers7Tuple(x=0.5, y=0.5, lat=0.5, lon=0.5, gamma=0.5, scale=0.5, datum=0.5)\n    test 2 pygeodesy.albers: Albers7Tuple(x=Meter, y=Meter, lat=Lat, lon=Lon, gamma=Bearing, scale=_Pass, datum=_Pass)\n    test 3 pygeodesy.albers.Albers7Tuple.x: 0.5\n    test 4 pygeodesy.albers.Albers7Tuple.y: 0.5\n    test 5 pygeodesy.albers.Albers7Tuple.lat: 0.5\n    test 6 pygeodesy.albers.Albers7Tuple.lon: 0.5\n    test 7 pygeodesy.albers.Albers7Tuple.gamma: 0.5\n    test 8 pygeodesy.albers.Albers7Tuple.scale: 0.5\n    test 9 pygeodesy.albers.Albers7Tuple.datum: 0.5\n    test 10 pygeodesy.albers.Albers7Tuple._validated: True\n    test 11 pygeodesy.albers.Albers7Tuple._validated: True\n    test 12 pygeodesy.angles: _Ang3Tuple(Ang=Ang, Ang=Ang, Ang=_Pass)\n    test 13 pygeodesy.angles._Ang3Tuple.Ang: 0.5\n    test 14 pygeodesy.angles._Ang3Tuple.Ang: 0.5\n    test 15 pygeodesy.angles._Ang3Tuple.Ang: 0.5\n    test 16 pygeodesy.angles._Ang3Tuple._validated: True\n    test 17 pygeodesy.angles._Ang3Tuple._validated: True\n    test 18 pygeodesy.azimuthal: Azimuthal7Tuple(x=0.5, y=0.5, lat=0.5, lon=0.5, azimuth=0.5, scale=0.5, datum=0.5)\n    test 19 pygeodesy.azimuthal: Azimuthal7Tuple(x=Easting, y=Northing, lat=Lat_, lon=Lon_, azimuth=Azimuth, scale=Scalar, datum=_Pass)\n    test 20 pygeodesy.azimuthal.Azimuthal7Tuple.x: 0.5\n    test 21 pygeodesy.azimuthal.Azimuthal7Tuple.y: 0.5\n    test 22 pygeodesy.azimuthal.Azimuthal7Tuple.lat: 0.5\n    test 23 pygeodesy.azimuthal.Azimuthal7Tuple.lon: 0.5\n    test 24 pygeodesy.azimuthal.Azimuthal7Tuple.azimuth: 0.5\n    test 25 pygeodesy.azimuthal.Azimuthal7Tuple.scale: 0.5\n    test 26 pygeodesy.azimuthal.Azimuthal7Tuple.datum: 0.5\n    test 27 pygeodesy.azimuthal.Azimuthal7Tuple._validated: True\n    test 28 pygeodesy.azimuthal.Azimuthal7Tuple._validated: True\n    test 29 pygeodesy.cartesianBase: RadiusThetaPhi3Tuple(r=0.5, theta=0.5, phi=0.5)\n    test 30 pygeodesy.cartesianBase: RadiusThetaPhi3Tuple(r=Meter, theta=_Pass, phi=_Pass)\n    test 31 pygeodesy.cartesianBase.RadiusThetaPhi3Tuple.r: 0.5\n    test 32 pygeodesy.cartesianBase.RadiusThetaPhi3Tuple.theta: 0.5\n    test 33 pygeodesy.cartesianBase.RadiusThetaPhi3Tuple.phi: 0.5\n    test 34 pygeodesy.cartesianBase.RadiusThetaPhi3Tuple._validated: True\n    test 35 pygeodesy.cartesianBase.RadiusThetaPhi3Tuple._validated: True\n    test 36 pygeodesy.clipy: ClipCS4Tuple(start=0.5, end=0.5, i=0, j=0)\n    test 37 pygeodesy.clipy: ClipCS4Tuple(start=_Pass, end=_Pass, i=Number_, j=Number_)\n    test 38 pygeodesy.clipy.ClipCS4Tuple.start: 0.5\n    test 39 pygeodesy.clipy.ClipCS4Tuple.end: 0.5\n    test 40 pygeodesy.clipy.ClipCS4Tuple.i: 0.5\n    test 41 pygeodesy.clipy.ClipCS4Tuple.j: 0.5\n    test 42 pygeodesy.clipy.ClipCS4Tuple._validated: True\n    test 43 pygeodesy.clipy.ClipCS4Tuple._validated: True\n    test 44 pygeodesy.clipy: ClipFHP4Tuple(lat=0.5, lon=0.5, height=0.5, clipid=0)\n    test 45 pygeodesy.clipy: ClipFHP4Tuple(lat=Lat, lon=Lon, height=_Pass, clipid=Number_)\n    test 46 pygeodesy.clipy.ClipFHP4Tuple.lat: 0.5\n    test 47 pygeodesy.clipy.ClipFHP4Tuple.lon: 0.5\n    test 48 pygeodesy.clipy.ClipFHP4Tuple.height: 0.5\n    test 49 pygeodesy.clipy.ClipFHP4Tuple.clipid: 0.5\n    test 50 pygeodesy.clipy.ClipFHP4Tuple._validated: True\n    test 51 pygeodesy.clipy.ClipFHP4Tuple._validated: True\n    test 52 pygeodesy.clipy: ClipGH4Tuple(lat=0.5, lon=0.5, height=0.5, clipid=0)\n    test 53 pygeodesy.clipy: ClipGH4Tuple(lat=Lat, lon=Lon, height=_Pass, clipid=Number_)\n    test 54 pygeodesy.clipy.ClipGH4Tuple.lat: 0.5\n    test 55 pygeodesy.clipy.ClipGH4Tuple.lon: 0.5\n    test 56 pygeodesy.clipy.ClipGH4Tuple.height: 0.5\n    test 57 pygeodesy.clipy.ClipGH4Tuple.clipid: 0.5\n    test 58 pygeodesy.clipy.ClipGH4Tuple._validated: True\n    test 59 pygeodesy.clipy.ClipGH4Tuple._validated: True\n    test 60 pygeodesy.clipy: ClipLB6Tuple(start=0.5, end=0.5, i=0, fi=0.5, fj=0.5, j=0)\n    test 61 pygeodesy.clipy: ClipLB6Tuple(start=_Pass, end=_Pass, i=Number_, fi=_Pass, fj=_Pass, j=Number_)\n    test 62 pygeodesy.clipy.ClipLB6Tuple.start: 0.5\n    test 63 pygeodesy.clipy.ClipLB6Tuple.end: 0.5\n    test 64 pygeodesy.clipy.ClipLB6Tuple.i: 0.5\n    test 65 pygeodesy.clipy.ClipLB6Tuple.fi: 0.5\n    test 66 pygeodesy.clipy.ClipLB6Tuple.fj: 0.5\n    test 67 pygeodesy.clipy.ClipLB6Tuple.j: 0.5\n    test 68 pygeodesy.clipy.ClipLB6Tuple._validated: True\n    test 69 pygeodesy.clipy.ClipLB6Tuple._validated: True\n    test 70 pygeodesy.clipy: ClipSH3Tuple(start=0.5, end=0.5, original=True)\n    test 71 pygeodesy.clipy: ClipSH3Tuple(start=_Pass, end=_Pass, original=Bool)\n    test 72 pygeodesy.clipy.ClipSH3Tuple.start: 0.5\n    test 73 pygeodesy.clipy.ClipSH3Tuple.end: 0.5\n    test 74 pygeodesy.clipy.ClipSH3Tuple.original: 0.5\n    test 75 pygeodesy.clipy.ClipSH3Tuple._validated: True\n    test 76 pygeodesy.clipy.ClipSH3Tuple._validated: True\n    test 77 pygeodesy.css: EasNorAziRk4Tuple(easting=0.5, northing=0.5, azimuth=0.5, reciprocal=0.5)\n    test 78 pygeodesy.css: EasNorAziRk4Tuple(easting=Easting, northing=Northing, azimuth=Azimuth, reciprocal=Scalar)\n    test 79 pygeodesy.css.EasNorAziRk4Tuple.easting: 0.5\n    test 80 pygeodesy.css.EasNorAziRk4Tuple.northing: 0.5\n    test 81 pygeodesy.css.EasNorAziRk4Tuple.azimuth: 0.5\n    test 82 pygeodesy.css.EasNorAziRk4Tuple.reciprocal: 0.5\n    test 83 pygeodesy.css.EasNorAziRk4Tuple._validated: True\n    test 84 pygeodesy.css.EasNorAziRk4Tuple._validated: True\n    test 85 pygeodesy.css: EasNorAziRkEqu6Tuple(easting=0.5, northing=0.5, azimuth=0.5, reciprocal=0.5, equatorarc=0.5, equatorazimuth=0.5)\n    test 86 pygeodesy.css: EasNorAziRkEqu6Tuple(easting=Easting, northing=Northing, azimuth=Azimuth, reciprocal=Scalar, equatorarc=Degrees, equatorazimuth=Azimuth)\n    test 87 pygeodesy.css.EasNorAziRkEqu6Tuple.easting: 0.5\n    test 88 pygeodesy.css.EasNorAziRkEqu6Tuple.northing: 0.5\n    test 89 pygeodesy.css.EasNorAziRkEqu6Tuple.azimuth: 0.5\n    test 90 pygeodesy.css.EasNorAziRkEqu6Tuple.reciprocal: 0.5\n    test 91 pygeodesy.css.EasNorAziRkEqu6Tuple.equatorarc: 0.5\n    test 92 pygeodesy.css.EasNorAziRkEqu6Tuple.equatorazimuth: 0.5\n    test 93 pygeodesy.css.EasNorAziRkEqu6Tuple._validated: True\n    test 94 pygeodesy.css.EasNorAziRkEqu6Tuple._validated: True\n    test 95 pygeodesy.css: LatLonAziRk4Tuple(lat=0.5, lon=0.5, azimuth=0.5, reciprocal=0.5)\n    test 96 pygeodesy.css: LatLonAziRk4Tuple(lat=Lat_, lon=Lon_, azimuth=Azimuth, reciprocal=Scalar)\n    test 97 pygeodesy.css.LatLonAziRk4Tuple.lat: 0.5\n    test 98 pygeodesy.css.LatLonAziRk4Tuple.lon: 0.5\n    test 99 pygeodesy.css.LatLonAziRk4Tuple.azimuth: 0.5\n    test 100 pygeodesy.css.LatLonAziRk4Tuple.reciprocal: 0.5\n    test 101 pygeodesy.css.LatLonAziRk4Tuple._validated: True\n    test 102 pygeodesy.css.LatLonAziRk4Tuple._validated: True\n    test 103 pygeodesy.ecef: Ecef9Tuple(x=0.5, y=0.5, z=0.5, lat=0.5, lon=0.5, height=0.5, C=0, M=0.5, datum=0.5)\n    test 104 pygeodesy.ecef: Ecef9Tuple(x=Meter, y=Meter, z=Meter, lat=Lat, lon=Lon, height=Height, C=Int, M=_Pass, datum=_Pass)\n    test 105 pygeodesy.ecef.Ecef9Tuple.x: 0.5\n    test 106 pygeodesy.ecef.Ecef9Tuple.y: 0.5\n    test 107 pygeodesy.ecef.Ecef9Tuple.z: 0.5\n    test 108 pygeodesy.ecef.Ecef9Tuple.lat: 0.5\n    test 109 pygeodesy.ecef.Ecef9Tuple.lon: 0.5\n    test 110 pygeodesy.ecef.Ecef9Tuple.height: 0.5\n    test 111 pygeodesy.ecef.Ecef9Tuple.C: 0.5\n    test 112 pygeodesy.ecef.Ecef9Tuple.M: 0.5\n    test 113 pygeodesy.ecef.Ecef9Tuple.datum: 0.5\n    test 114 pygeodesy.ecef.Ecef9Tuple._validated: True\n    test 115 pygeodesy.ecef.Ecef9Tuple._validated: True\n    test 116 pygeodesy.ecef: EcefMatrix(_0_0_=0.5, _0_1_=0.5, _0_2_=0.5, _1_0_=0.5, _1_1_=0.5, _1_2_=0.5, _2_0_=0.5, _2_1_=0.5, _2_2_=0.5)\n    test 117 pygeodesy.ecef: EcefMatrix(_0_0_=Scalar, _0_1_=Scalar, _0_2_=Scalar, _1_0_=Scalar, _1_1_=Scalar, _1_2_=Scalar, _2_0_=Scalar, _2_1_=Scalar, _2_2_=Scalar)\n    test 118 pygeodesy.ecef.EcefMatrix._0_0_: 0.5\n    test 119 pygeodesy.ecef.EcefMatrix._0_1_: 0.5\n    test 120 pygeodesy.ecef.EcefMatrix._0_2_: 0.5\n    test 121 pygeodesy.ecef.EcefMatrix._1_0_: 0.5\n    test 122 pygeodesy.ecef.EcefMatrix._1_1_: 0.5\n    test 123 pygeodesy.ecef.EcefMatrix._1_2_: 0.5\n    test 124 pygeodesy.ecef.EcefMatrix._2_0_: 0.5\n    test 125 pygeodesy.ecef.EcefMatrix._2_1_: 0.5\n    test 126 pygeodesy.ecef.EcefMatrix._2_2_: 0.5\n    test 127 pygeodesy.ecef.EcefMatrix._validated: True\n    test 128 pygeodesy.ecef.EcefMatrix._validated: True\n    test 129 pygeodesy.elevations: Elevation2Tuple(elevation=0.5, data_source='0.5')\n    test 130 pygeodesy.elevations: Elevation2Tuple(elevation=Meter, data_source=Str)\n    test 131 pygeodesy.elevations.Elevation2Tuple.elevation: 0.5\n    test 132 pygeodesy.elevations.Elevation2Tuple.data_source: 0.5\n    test 133 pygeodesy.elevations.Elevation2Tuple._validated: True\n    test 134 pygeodesy.elevations.Elevation2Tuple._validated: True\n    test 135 pygeodesy.elevations: GeoidHeight2Tuple(height=0.5, model_name='0.5')\n    test 136 pygeodesy.elevations: GeoidHeight2Tuple(height=Meter, model_name=Str)\n    test 137 pygeodesy.elevations.GeoidHeight2Tuple.height: 0.5\n    test 138 pygeodesy.elevations.GeoidHeight2Tuple.model_name: 0.5\n    test 139 pygeodesy.elevations.GeoidHeight2Tuple._validated: True\n    test 140 pygeodesy.elevations.GeoidHeight2Tuple._validated: True\n    test 141 pygeodesy.ellipsoids: Curvature2Tuple(meridional=0.5, prime_vertical=0.5)\n    test 142 pygeodesy.ellipsoids: Curvature2Tuple(meridional=Meter, prime_vertical=Meter)\n    test 143 pygeodesy.ellipsoids.Curvature2Tuple.meridional: 0.5\n    test 144 pygeodesy.ellipsoids.Curvature2Tuple.prime_vertical: 0.5\n    test 145 pygeodesy.ellipsoids.Curvature2Tuple._validated: True\n    test 146 pygeodesy.ellipsoids.Curvature2Tuple._validated: True\n    test 147 pygeodesy.ellipsoids: a_f2Tuple(a=0.5, f=0.5)\n    test 148 pygeodesy.ellipsoids: a_f2Tuple(a=_Pass, f=_Pass)\n    test 149 pygeodesy.ellipsoids.a_f2Tuple.a: 0.5\n    test 150 pygeodesy.ellipsoids.a_f2Tuple.f: 0.5\n    test 151 pygeodesy.ellipsoids.a_f2Tuple._validated: True\n    test 152 pygeodesy.ellipsoids.a_f2Tuple._validated: True\n    test 153 pygeodesy.elliptic: Elliptic3Tuple(sn=0.5, cn=0.5, dn=0.5)\n    test 154 pygeodesy.elliptic: Elliptic3Tuple(sn=Scalar, cn=Scalar, dn=Scalar)\n    test 155 pygeodesy.elliptic.Elliptic3Tuple.sn: 0.5\n    test 156 pygeodesy.elliptic.Elliptic3Tuple.cn: 0.5\n    test 157 pygeodesy.elliptic.Elliptic3Tuple.dn: 0.5\n    test 158 pygeodesy.elliptic.Elliptic3Tuple._validated: True\n    test 159 pygeodesy.elliptic.Elliptic3Tuple._validated: True\n    test 160 pygeodesy.formy: Radical2Tuple(ratio=0.5, xline=0.5)\n    test 161 pygeodesy.formy: Radical2Tuple(ratio=Scalar, xline=Scalar)\n    test 162 pygeodesy.formy.Radical2Tuple.ratio: 0.5\n    test 163 pygeodesy.formy.Radical2Tuple.xline: 0.5\n    test 164 pygeodesy.formy.Radical2Tuple._validated: True\n    test 165 pygeodesy.formy.Radical2Tuple._validated: True\n    test 166 pygeodesy.frechet: Frechet6Tuple(fd=0.5, fi1=0.5, fi2=0.5, r=0, n=0, units='test')\n    test 167 pygeodesy.frechet: Frechet6Tuple(fd=_Pass, fi1=FIx, fi2=FIx, r=Number_, n=Number_, units=_Pass)\n    test 168 pygeodesy.frechet.Frechet6Tuple.fd: 0.5\n    test 169 pygeodesy.frechet.Frechet6Tuple.fi1: 0.5\n    test 170 pygeodesy.frechet.Frechet6Tuple.fi2: 0.5\n    test 171 pygeodesy.frechet.Frechet6Tuple.r: 0.5\n    test 172 pygeodesy.frechet.Frechet6Tuple.n: 0.5\n    test 173 pygeodesy.frechet.Frechet6Tuple.units: <bound method _NamedTuple.units of Frechet6Tuple(fd=0.5, fi1=0.5, fi2=0.5, r=0.5, n=0.5, units='test')>\n    test 174 pygeodesy.frechet.Frechet6Tuple._validated: True\n    test 175 pygeodesy.frechet.Frechet6Tuple._validated: True\n    test 176 pygeodesy.fsums: Fsum2Tuple(fsum=0.5, residual=0.5)\n    test 177 pygeodesy.fsums: Fsum2Tuple(fsum=_Float_Int, residual=_Float_Int)\n    test 178 pygeodesy.fsums.Fsum2Tuple.fsum: 0.5\n    test 179 pygeodesy.fsums.Fsum2Tuple.residual: 0.5\n    test 180 pygeodesy.fsums.Fsum2Tuple._validated: True\n    test 181 pygeodesy.fsums.Fsum2Tuple._validated: True\n    test 182 pygeodesy.geod3solve: Geod3Solve8Tuple(bet1=Deg, omg1=Deg, alp1=Deg, bet2=Deg, omg2=Deg, alp2=Deg, s12=Meter, a12=Deg)\n    test 183 pygeodesy.geod3solve.Geod3Solve8Tuple.bet1: 0.5\n    test 184 pygeodesy.geod3solve.Geod3Solve8Tuple.omg1: 0.5\n    test 185 pygeodesy.geod3solve.Geod3Solve8Tuple.alp1: 0.5\n    test 186 pygeodesy.geod3solve.Geod3Solve8Tuple.bet2: 0.5\n    test 187 pygeodesy.geod3solve.Geod3Solve8Tuple.omg2: 0.5\n    test 188 pygeodesy.geod3solve.Geod3Solve8Tuple.alp2: 0.5\n    test 189 pygeodesy.geod3solve.Geod3Solve8Tuple.s12: 0.5\n    test 190 pygeodesy.geod3solve.Geod3Solve8Tuple.a12: 0.5\n    test 191 pygeodesy.geod3solve.Geod3Solve8Tuple._validated: True\n    test 192 pygeodesy.geod3solve.Geod3Solve8Tuple._validated: True\n    test 193 pygeodesy.geodesici: Intersect7Tuple(A=0.5, B=0.5, sAB=0.5, aAB=0.5, c=0, kA=0, kB=0)\n    test 194 pygeodesy.geodesici: Intersect7Tuple(A=_Pass, B=_Pass, sAB=Meter, aAB=Degrees, c=Int, kA=Int, kB=Int)\n    test 195 pygeodesy.geodesici.Intersect7Tuple.A: 0.5\n    test 196 pygeodesy.geodesici.Intersect7Tuple.B: 0.5\n    test 197 pygeodesy.geodesici.Intersect7Tuple.sAB: 0.5\n    test 198 pygeodesy.geodesici.Intersect7Tuple.aAB: 0.5\n    test 199 pygeodesy.geodesici.Intersect7Tuple.c: 0.5\n    test 200 pygeodesy.geodesici.Intersect7Tuple.kA: 0.5\n    test 201 pygeodesy.geodesici.Intersect7Tuple.kB: 0.5\n    test 202 pygeodesy.geodesici.Intersect7Tuple._validated: True\n    test 203 pygeodesy.geodesici.Intersect7Tuple._validated: True\n    test 204 pygeodesy.geodesici: Intersectool5Tuple(A=0.5, B=0.5, sAB=0.5, aAB=0.5, c=0)\n    test 205 pygeodesy.geodesici: Intersectool5Tuple(A=_Pass, B=_Pass, sAB=Meter, aAB=Degrees, c=Int)\n    test 206 pygeodesy.geodesici.Intersectool5Tuple.A: 0.5\n    test 207 pygeodesy.geodesici.Intersectool5Tuple.B: 0.5\n    test 208 pygeodesy.geodesici.Intersectool5Tuple.sAB: 0.5\n    test 209 pygeodesy.geodesici.Intersectool5Tuple.aAB: 0.5\n    test 210 pygeodesy.geodesici.Intersectool5Tuple.c: 0.5\n    test 211 pygeodesy.geodesici.Intersectool5Tuple._validated: True\n    test 212 pygeodesy.geodesici.Intersectool5Tuple._validated: True\n    test 213 pygeodesy.geodesici: Intersector5Tuple(A=0.5, B=0.5, sAB=0.5, aAB=0.5, c=0)\n    test 214 pygeodesy.geodesici: Intersector5Tuple(A=_Pass, B=_Pass, sAB=Meter, aAB=Degrees, c=Int)\n    test 215 pygeodesy.geodesici.Intersector5Tuple.A: 0.5\n    test 216 pygeodesy.geodesici.Intersector5Tuple.B: 0.5\n    test 217 pygeodesy.geodesici.Intersector5Tuple.sAB: 0.5\n    test 218 pygeodesy.geodesici.Intersector5Tuple.aAB: 0.5\n    test 219 pygeodesy.geodesici.Intersector5Tuple.c: 0.5\n    test 220 pygeodesy.geodesici.Intersector5Tuple._validated: True\n    test 221 pygeodesy.geodesici.Intersector5Tuple._validated: True\n    test 222 pygeodesy.geodesici: Middle5Tuple(A=0.5, B=0.5, sMM=0.5, aMM=0.5, c=0)\n    test 223 pygeodesy.geodesici: Middle5Tuple(A=_Pass, B=_Pass, sMM=Meter, aMM=Degrees, c=Int)\n    test 224 pygeodesy.geodesici.Middle5Tuple.A: 0.5\n    test 225 pygeodesy.geodesici.Middle5Tuple.B: 0.5\n    test 226 pygeodesy.geodesici.Middle5Tuple.sMM: 0.5\n    test 227 pygeodesy.geodesici.Middle5Tuple.aMM: 0.5\n    test 228 pygeodesy.geodesici.Middle5Tuple.c: 0.5\n    test 229 pygeodesy.geodesici.Middle5Tuple._validated: True\n    test 230 pygeodesy.geodesici.Middle5Tuple._validated: True\n    test 231 pygeodesy.geodsolve: GeodSolve12Tuple(lat1=0.5, lon1=0.5, azi1=0.5, lat2=0.5, lon2=0.5, azi2=0.5, s12=0.5, a12=0.5, m12=0.5, M12=0.5, M21=0.5, S12=0.5)\n    test 232 pygeodesy.geodsolve: GeodSolve12Tuple(lat1=_Lat, lon1=_Lon, azi1=Azimuth, lat2=_Lat, lon2=_Lon, azi2=Azimuth, s12=Meter, a12=Degrees, m12=_Pass, M12=_Pass, M21=_Pass, S12=Meter2)\n    test 233 pygeodesy.geodsolve.GeodSolve12Tuple.lat1: 0.5\n    test 234 pygeodesy.geodsolve.GeodSolve12Tuple.lon1: 0.5\n    test 235 pygeodesy.geodsolve.GeodSolve12Tuple.azi1: 0.5\n    test 236 pygeodesy.geodsolve.GeodSolve12Tuple.lat2: 0.5\n    test 237 pygeodesy.geodsolve.GeodSolve12Tuple.lon2: 0.5\n    test 238 pygeodesy.geodsolve.GeodSolve12Tuple.azi2: 0.5\n    test 239 pygeodesy.geodsolve.GeodSolve12Tuple.s12: 0.5\n    test 240 pygeodesy.geodsolve.GeodSolve12Tuple.a12: 0.5\n    test 241 pygeodesy.geodsolve.GeodSolve12Tuple.m12: 0.5\n    test 242 pygeodesy.geodsolve.GeodSolve12Tuple.M12: 0.5\n    test 243 pygeodesy.geodsolve.GeodSolve12Tuple.M21: 0.5\n    test 244 pygeodesy.geodsolve.GeodSolve12Tuple.S12: 0.5\n    test 245 pygeodesy.geodsolve.GeodSolve12Tuple._validated: True\n    test 246 pygeodesy.geodsolve.GeodSolve12Tuple._validated: True\n    test 247 pygeodesy.geohash: Resolutions2Tuple(res1=0.5, res2=0.5)\n    test 248 pygeodesy.geohash: Resolutions2Tuple(res1=Degrees_, res2=Degrees_)\n    test 249 pygeodesy.geohash.Resolutions2Tuple.res1: 0.5\n    test 250 pygeodesy.geohash.Resolutions2Tuple.res2: 0.5\n    test 251 pygeodesy.geohash.Resolutions2Tuple._validated: True\n    test 252 pygeodesy.geohash.Resolutions2Tuple._validated: True\n    test 253 pygeodesy.geohash: Sizes3Tuple(height=0.5, width=0.5, radius=0.5)\n    test 254 pygeodesy.geohash: Sizes3Tuple(height=Meter, width=Meter, radius=Meter)\n    test 255 pygeodesy.geohash.Sizes3Tuple.height: 0.5\n    test 256 pygeodesy.geohash.Sizes3Tuple.width: 0.5\n    test 257 pygeodesy.geohash.Sizes3Tuple.radius: 0.5\n    test 258 pygeodesy.geohash.Sizes3Tuple._validated: True\n    test 259 pygeodesy.geohash.Sizes3Tuple._validated: True\n    test 260 pygeodesy.geoids: GeoidHeight5Tuple(lat=0.5, lon=0.5, egm84=0.5, egm96=0.5, egm2008=0.5)\n    test 261 pygeodesy.geoids: GeoidHeight5Tuple(lat=Lat, lon=Lon, egm84=Height, egm96=Height, egm2008=Height)\n    test 262 pygeodesy.geoids.GeoidHeight5Tuple.lat: 0.5\n    test 263 pygeodesy.geoids.GeoidHeight5Tuple.lon: 0.5\n    test 264 pygeodesy.geoids.GeoidHeight5Tuple.egm84: 0.5\n    test 265 pygeodesy.geoids.GeoidHeight5Tuple.egm96: 0.5\n    test 266 pygeodesy.geoids.GeoidHeight5Tuple.egm2008: 0.5\n    test 267 pygeodesy.geoids.GeoidHeight5Tuple._validated: True\n    test 268 pygeodesy.geoids.GeoidHeight5Tuple._validated: True\n    test 269 pygeodesy.hausdorff: Hausdorff6Tuple(hd=0.5, i=0, j=0, mn=0, md=0.5, units='test')\n    test 270 pygeodesy.hausdorff: Hausdorff6Tuple(hd=_Pass, i=Number_, j=Number_, mn=Number_, md=_Pass, units=_Pass)\n    test 271 pygeodesy.hausdorff.Hausdorff6Tuple.hd: 0.5\n    test 272 pygeodesy.hausdorff.Hausdorff6Tuple.i: 0.5\n    test 273 pygeodesy.hausdorff.Hausdorff6Tuple.j: 0.5\n    test 274 pygeodesy.hausdorff.Hausdorff6Tuple.mn: 0.5\n    test 275 pygeodesy.hausdorff.Hausdorff6Tuple.md: 0.5\n    test 276 pygeodesy.hausdorff.Hausdorff6Tuple.units: <bound method _NamedTuple.units of Hausdorff6Tuple(hd=0.5, i=0.5, j=0.5, mn=0.5, md=0.5, units='test')>\n    test 277 pygeodesy.hausdorff.Hausdorff6Tuple._validated: True\n    test 278 pygeodesy.hausdorff.Hausdorff6Tuple._validated: True\n    test 279 pygeodesy.karney: Area3Tuple(number=0, perimeter=0.5, area=0.5)\n    test 280 pygeodesy.karney: Area3Tuple(number=Number_, perimeter=Meter, area=Meter2)\n    test 281 pygeodesy.karney.Area3Tuple.number: 0.5\n    test 282 pygeodesy.karney.Area3Tuple.perimeter: 0.5\n    test 283 pygeodesy.karney.Area3Tuple.area: 0.5\n    test 284 pygeodesy.karney.Area3Tuple._validated: True\n    test 285 pygeodesy.karney.Area3Tuple._validated: True\n    test 286 pygeodesy.karney: Direct9Tuple(a12=0.5, lat2=0.5, lon2=0.5, azi2=0.5, s12=0.5, m12=0.5, M12=0.5, M21=0.5, S12=0.5)\n    test 287 pygeodesy.karney: Direct9Tuple(a12=Azimuth, lat2=_Lat, lon2=_Lon, azi2=Azimuth, s12=Meter, m12=_Pass, M12=_Pass, M21=_Pass, S12=Meter2)\n    test 288 pygeodesy.karney.Direct9Tuple.a12: 0.5\n    test 289 pygeodesy.karney.Direct9Tuple.lat2: 0.5\n    test 290 pygeodesy.karney.Direct9Tuple.lon2: 0.5\n    test 291 pygeodesy.karney.Direct9Tuple.azi2: 0.5\n    test 292 pygeodesy.karney.Direct9Tuple.s12: 0.5\n    test 293 pygeodesy.karney.Direct9Tuple.m12: 0.5\n    test 294 pygeodesy.karney.Direct9Tuple.M12: 0.5\n    test 295 pygeodesy.karney.Direct9Tuple.M21: 0.5\n    test 296 pygeodesy.karney.Direct9Tuple.S12: 0.5\n    test 297 pygeodesy.karney.Direct9Tuple._validated: True\n    test 298 pygeodesy.karney.Direct9Tuple._validated: True\n    test 299 pygeodesy.karney: Inverse10Tuple(a12=0.5, s12=0.5, salp1=0.5, calp1=0.5, salp2=0.5, calp2=0.5, m12=0.5, M12=0.5, M21=0.5, S12=0.5)\n    test 300 pygeodesy.karney: Inverse10Tuple(a12=Azimuth, s12=Meter, salp1=_Pass, calp1=_Pass, salp2=_Pass, calp2=_Pass, m12=_Pass, M12=_Pass, M21=_Pass, S12=Meter2)\n    test 301 pygeodesy.karney.Inverse10Tuple.a12: 0.5\n    test 302 pygeodesy.karney.Inverse10Tuple.s12: 0.5\n    test 303 pygeodesy.karney.Inverse10Tuple.salp1: 0.5\n    test 304 pygeodesy.karney.Inverse10Tuple.calp1: 0.5\n    test 305 pygeodesy.karney.Inverse10Tuple.salp2: 0.5\n    test 306 pygeodesy.karney.Inverse10Tuple.calp2: 0.5\n    test 307 pygeodesy.karney.Inverse10Tuple.m12: 0.5\n    test 308 pygeodesy.karney.Inverse10Tuple.M12: 0.5\n    test 309 pygeodesy.karney.Inverse10Tuple.M21: 0.5\n    test 310 pygeodesy.karney.Inverse10Tuple.S12: 0.5\n    test 311 pygeodesy.karney.Inverse10Tuple._validated: True\n    test 312 pygeodesy.karney.Inverse10Tuple._validated: True\n    test 313 pygeodesy.karney: Rhumb8Tuple(lat1=0.5, lon1=0.5, lat2=0.5, lon2=0.5, azi12=0.5, s12=0.5, S12=0.5, a12=0.5)\n    test 314 pygeodesy.karney: Rhumb8Tuple(lat1=Lat, lon1=Lon, lat2=Lat, lon2=Lon, azi12=Azimuth, s12=Meter, S12=Meter2, a12=Degrees)\n    test 315 pygeodesy.karney.Rhumb8Tuple.lat1: 0.5\n    test 316 pygeodesy.karney.Rhumb8Tuple.lon1: 0.5\n    test 317 pygeodesy.karney.Rhumb8Tuple.lat2: 0.5\n    test 318 pygeodesy.karney.Rhumb8Tuple.lon2: 0.5\n    test 319 pygeodesy.karney.Rhumb8Tuple.azi12: 0.5\n    test 320 pygeodesy.karney.Rhumb8Tuple.s12: 0.5\n    test 321 pygeodesy.karney.Rhumb8Tuple.S12: 0.5\n    test 322 pygeodesy.karney.Rhumb8Tuple.a12: 0.5\n    test 323 pygeodesy.karney.Rhumb8Tuple._validated: True\n    test 324 pygeodesy.karney.Rhumb8Tuple._validated: True\n    test 325 pygeodesy.ltpTuples: Aer4Tuple(azimuth=0.5, elevation=0.5, slantrange=0.5, ltp=0.5)\n    test 326 pygeodesy.ltpTuples: Aer4Tuple(azimuth=Meter, elevation=Meter, slantrange=Meter, ltp=_Pass)\n    test 327 pygeodesy.ltpTuples.Aer4Tuple.azimuth: 0.5\n    test 328 pygeodesy.ltpTuples.Aer4Tuple.elevation: 0.5\n    test 329 pygeodesy.ltpTuples.Aer4Tuple.slantrange: 0.5\n    test 330 pygeodesy.ltpTuples.Aer4Tuple.ltp: 0.5\n    test 331 pygeodesy.ltpTuples.Aer4Tuple._validated: True\n    test 332 pygeodesy.ltpTuples.Aer4Tuple._validated: True\n    test 333 pygeodesy.ltpTuples: Attitude4Tuple(alt=0.5, tilt=0.5, yaw=0.5, roll=0.5)\n    test 334 pygeodesy.ltpTuples: Attitude4Tuple(alt=Meter, tilt=Degrees, yaw=Bearing, roll=Degrees)\n    test 335 pygeodesy.ltpTuples.Attitude4Tuple.alt: 0.5\n    test 336 pygeodesy.ltpTuples.Attitude4Tuple.tilt: 0.5\n    test 337 pygeodesy.ltpTuples.Attitude4Tuple.yaw: 0.5\n    test 338 pygeodesy.ltpTuples.Attitude4Tuple.roll: 0.5\n    test 339 pygeodesy.ltpTuples.Attitude4Tuple._validated: True\n    test 340 pygeodesy.ltpTuples.Attitude4Tuple._validated: True\n    test 341 pygeodesy.ltpTuples: ChLV9Tuple(Y=0.5, X=0.5, h_=0.5, lat=0.5, lon=0.5, height=0.5, ltp=0.5, ecef=0.5, M=0.5)\n    test 342 pygeodesy.ltpTuples: ChLV9Tuple(Y=Meter, X=Meter, h_=Meter, lat=Lat, lon=Lon, height=Height, ltp=_Pass, ecef=_Pass, M=_Pass)\n    test 343 pygeodesy.ltpTuples.ChLV9Tuple.Y: 0.5\n    test 344 pygeodesy.ltpTuples.ChLV9Tuple.X: 0.5\n    test 345 pygeodesy.ltpTuples.ChLV9Tuple.h_: 0.5\n    test 346 pygeodesy.ltpTuples.ChLV9Tuple.lat: 0.5\n    test 347 pygeodesy.ltpTuples.ChLV9Tuple.lon: 0.5\n    test 348 pygeodesy.ltpTuples.ChLV9Tuple.height: 0.5\n    test 349 pygeodesy.ltpTuples.ChLV9Tuple.ltp: 0.5\n    test 350 pygeodesy.ltpTuples.ChLV9Tuple.ecef: 0.5\n    test 351 pygeodesy.ltpTuples.ChLV9Tuple.M: 0.5\n    test 352 pygeodesy.ltpTuples.ChLV9Tuple._validated: True\n    test 353 pygeodesy.ltpTuples.ChLV9Tuple._validated: True\n    test 354 pygeodesy.ltpTuples: ChLVEN2Tuple(E_LV95=0.5, N_LV95=0.5)\n    test 355 pygeodesy.ltpTuples: ChLVEN2Tuple(E_LV95=Meter, N_LV95=Meter)\n    test 356 pygeodesy.ltpTuples.ChLVEN2Tuple.E_LV95: 0.5\n    test 357 pygeodesy.ltpTuples.ChLVEN2Tuple.N_LV95: 0.5\n    test 358 pygeodesy.ltpTuples.ChLVEN2Tuple._validated: True\n    test 359 pygeodesy.ltpTuples.ChLVEN2Tuple._validated: True\n    test 360 pygeodesy.ltpTuples: ChLVYX2Tuple(Y=0.5, X=0.5)\n    test 361 pygeodesy.ltpTuples: ChLVYX2Tuple(Y=Meter, X=Meter)\n    test 362 pygeodesy.ltpTuples.ChLVYX2Tuple.Y: 0.5\n    test 363 pygeodesy.ltpTuples.ChLVYX2Tuple.X: 0.5\n    test 364 pygeodesy.ltpTuples.ChLVYX2Tuple._validated: True\n    test 365 pygeodesy.ltpTuples.ChLVYX2Tuple._validated: True\n    test 366 pygeodesy.ltpTuples: ChLVyx2Tuple(y_LV03=0.5, x_LV03=0.5)\n    test 367 pygeodesy.ltpTuples: ChLVyx2Tuple(y_LV03=Meter, x_LV03=Meter)\n    test 368 pygeodesy.ltpTuples.ChLVyx2Tuple.y_LV03: 0.5\n    test 369 pygeodesy.ltpTuples.ChLVyx2Tuple.x_LV03: 0.5\n    test 370 pygeodesy.ltpTuples.ChLVyx2Tuple._validated: True\n    test 371 pygeodesy.ltpTuples.ChLVyx2Tuple._validated: True\n    test 372 pygeodesy.ltpTuples: Enu4Tuple(east=0.5, north=0.5, up=0.5, ltp=0.5)\n    test 373 pygeodesy.ltpTuples: Enu4Tuple(east=Meter, north=Meter, up=Meter, ltp=_Pass)\n    test 374 pygeodesy.ltpTuples.Enu4Tuple.east: 0.5\n    test 375 pygeodesy.ltpTuples.Enu4Tuple.north: 0.5\n    test 376 pygeodesy.ltpTuples.Enu4Tuple.up: 0.5\n    test 377 pygeodesy.ltpTuples.Enu4Tuple.ltp: 0.5\n    test 378 pygeodesy.ltpTuples.Enu4Tuple._validated: True\n    test 379 pygeodesy.ltpTuples.Enu4Tuple._validated: True\n    test 380 pygeodesy.ltpTuples: Footprint5Tuple(center=0.5, upperleft=0.5, upperight=0.5, loweright=0.5, lowerleft=0.5)\n    test 381 pygeodesy.ltpTuples: Footprint5Tuple(center=_Pass, upperleft=_Pass, upperight=_Pass, loweright=_Pass, lowerleft=_Pass)\n    test 382 pygeodesy.ltpTuples.Footprint5Tuple.center: 0.5\n    test 383 pygeodesy.ltpTuples.Footprint5Tuple.upperleft: 0.5\n    test 384 pygeodesy.ltpTuples.Footprint5Tuple.upperight: 0.5\n    test 385 pygeodesy.ltpTuples.Footprint5Tuple.loweright: 0.5\n    test 386 pygeodesy.ltpTuples.Footprint5Tuple.lowerleft: 0.5\n    test 387 pygeodesy.ltpTuples.Footprint5Tuple._validated: True\n    test 388 pygeodesy.ltpTuples.Footprint5Tuple._validated: True\n    test 389 pygeodesy.ltpTuples: Local9Tuple(x=0.5, y=0.5, z=0.5, lat=0.5, lon=0.5, height=0.5, ltp=0.5, ecef=0.5, M=0.5)\n    test 390 pygeodesy.ltpTuples: Local9Tuple(x=Meter, y=Meter, z=Meter, lat=Lat, lon=Lon, height=Height, ltp=_Pass, ecef=_Pass, M=_Pass)\n    test 391 pygeodesy.ltpTuples.Local9Tuple.x: 0.5\n    test 392 pygeodesy.ltpTuples.Local9Tuple.y: 0.5\n    test 393 pygeodesy.ltpTuples.Local9Tuple.z: 0.5\n    test 394 pygeodesy.ltpTuples.Local9Tuple.lat: 0.5\n    test 395 pygeodesy.ltpTuples.Local9Tuple.lon: 0.5\n    test 396 pygeodesy.ltpTuples.Local9Tuple.height: 0.5\n    test 397 pygeodesy.ltpTuples.Local9Tuple.ltp: 0.5\n    test 398 pygeodesy.ltpTuples.Local9Tuple.ecef: 0.5\n    test 399 pygeodesy.ltpTuples.Local9Tuple.M: 0.5\n    test 400 pygeodesy.ltpTuples.Local9Tuple._validated: True\n    test 401 pygeodesy.ltpTuples.Local9Tuple._validated: True\n    test 402 pygeodesy.ltpTuples: Ned4Tuple(north=0.5, east=0.5, down=0.5, ltp=0.5)\n    test 403 pygeodesy.ltpTuples: Ned4Tuple(north=Meter, east=Meter, down=Meter, ltp=_Pass)\n    test 404 pygeodesy.ltpTuples.Ned4Tuple.north: 0.5\n    test 405 pygeodesy.ltpTuples.Ned4Tuple.east: 0.5\n    test 406 pygeodesy.ltpTuples.Ned4Tuple.down: 0.5\n    test 407 pygeodesy.ltpTuples.Ned4Tuple.ltp: 0.5\n    test 408 pygeodesy.ltpTuples.Ned4Tuple._validated: True\n    test 409 pygeodesy.ltpTuples.Ned4Tuple._validated: True\n    test 410 pygeodesy.ltpTuples: Uvw3Tuple(u=0.5, v=0.5, w=0.5)\n    test 411 pygeodesy.ltpTuples: Uvw3Tuple(u=Meter, v=Meter, w=Meter)\n    test 412 pygeodesy.ltpTuples.Uvw3Tuple.u: 0.5\n    test 413 pygeodesy.ltpTuples.Uvw3Tuple.v: 0.5\n    test 414 pygeodesy.ltpTuples.Uvw3Tuple.w: 0.5\n    test 415 pygeodesy.ltpTuples.Uvw3Tuple._validated: True\n    test 416 pygeodesy.ltpTuples.Uvw3Tuple._validated: True\n    test 417 pygeodesy.ltpTuples: Xyz4Tuple(x=0.5, y=0.5, z=0.5, ltp=0.5)\n    test 418 pygeodesy.ltpTuples: Xyz4Tuple(x=Meter, y=Meter, z=Meter, ltp=_Pass)\n    test 419 pygeodesy.ltpTuples.Xyz4Tuple.x: 0.5\n    test 420 pygeodesy.ltpTuples.Xyz4Tuple.y: 0.5\n    test 421 pygeodesy.ltpTuples.Xyz4Tuple.z: 0.5\n    test 422 pygeodesy.ltpTuples.Xyz4Tuple.ltp: 0.5\n    test 423 pygeodesy.ltpTuples.Xyz4Tuple._validated: True\n    test 424 pygeodesy.ltpTuples.Xyz4Tuple._validated: True\n    test 425 pygeodesy.mgrs: Mgrs4Tuple(zone='0.5', EN='0.5', easting=0.5, northing=0.5)\n    test 426 pygeodesy.mgrs: Mgrs4Tuple(zone=Str, EN=Str, easting=Easting, northing=Northing)\n    test 427 pygeodesy.mgrs.Mgrs4Tuple.zone: 0.5\n    test 428 pygeodesy.mgrs.Mgrs4Tuple.EN: 0.5\n    test 429 pygeodesy.mgrs.Mgrs4Tuple.easting: 0.5\n    test 430 pygeodesy.mgrs.Mgrs4Tuple.northing: 0.5\n    test 431 pygeodesy.mgrs.Mgrs4Tuple._validated: True\n    test 432 pygeodesy.mgrs.Mgrs4Tuple._validated: True\n    test 433 pygeodesy.mgrs: Mgrs6Tuple(zone='0.5', EN='0.5', easting=0.5, northing=0.5, band='0.5', datum=0.5)\n    test 434 pygeodesy.mgrs: Mgrs6Tuple(zone=Str, EN=Str, easting=Easting, northing=Northing, band=Str, datum=_Pass)\n    test 435 pygeodesy.mgrs.Mgrs6Tuple.zone: 0.5\n    test 436 pygeodesy.mgrs.Mgrs6Tuple.EN: 0.5\n    test 437 pygeodesy.mgrs.Mgrs6Tuple.easting: 0.5\n    test 438 pygeodesy.mgrs.Mgrs6Tuple.northing: 0.5\n    test 439 pygeodesy.mgrs.Mgrs6Tuple.band: 0.5\n    test 440 pygeodesy.mgrs.Mgrs6Tuple.datum: 0.5\n    test 441 pygeodesy.mgrs.Mgrs6Tuple._validated: True\n    test 442 pygeodesy.mgrs.Mgrs6Tuple._validated: True\n    test 443 pygeodesy.namedTuples: Bearing2Tuple(initial=0.5, final=0.5)\n    test 444 pygeodesy.namedTuples: Bearing2Tuple(initial=Bearing, final=Bearing)\n    test 445 pygeodesy.namedTuples.Bearing2Tuple.initial: 0.5\n    test 446 pygeodesy.namedTuples.Bearing2Tuple.final: 0.5\n    test 447 pygeodesy.namedTuples.Bearing2Tuple._validated: True\n    test 448 pygeodesy.namedTuples.Bearing2Tuple._validated: True\n    test 449 pygeodesy.namedTuples: Bounds2Tuple(latlonSW=0.5, latlonNE=0.5)\n    test 450 pygeodesy.namedTuples: Bounds2Tuple(latlonSW=_Pass, latlonNE=_Pass)\n    test 451 pygeodesy.namedTuples.Bounds2Tuple.latlonSW: 0.5\n    test 452 pygeodesy.namedTuples.Bounds2Tuple.latlonNE: 0.5\n    test 453 pygeodesy.namedTuples.Bounds2Tuple._validated: True\n    test 454 pygeodesy.namedTuples.Bounds2Tuple._validated: True\n    test 455 pygeodesy.namedTuples: Bounds4Tuple(latS=0.5, lonW=0.5, latN=0.5, lonE=0.5)\n    test 456 pygeodesy.namedTuples: Bounds4Tuple(latS=Lat, lonW=Lon, latN=Lat, lonE=Lon)\n    test 457 pygeodesy.namedTuples.Bounds4Tuple.latS: 0.5\n    test 458 pygeodesy.namedTuples.Bounds4Tuple.lonW: 0.5\n    test 459 pygeodesy.namedTuples.Bounds4Tuple.latN: 0.5\n    test 460 pygeodesy.namedTuples.Bounds4Tuple.lonE: 0.5\n    test 461 pygeodesy.namedTuples.Bounds4Tuple._validated: True\n    test 462 pygeodesy.namedTuples.Bounds4Tuple._validated: True\n    test 463 pygeodesy.namedTuples: Circle4Tuple(radius=0.5, height=0.5, lat=0.5, beta=0.5)\n    test 464 pygeodesy.namedTuples: Circle4Tuple(radius=Radius, height=Height, lat=Lat, beta=Lat)\n    test 465 pygeodesy.namedTuples.Circle4Tuple.radius: 0.5\n    test 466 pygeodesy.namedTuples.Circle4Tuple.height: 0.5\n    test 467 pygeodesy.namedTuples.Circle4Tuple.lat: 0.5\n    test 468 pygeodesy.namedTuples.Circle4Tuple.beta: 0.5\n    test 469 pygeodesy.namedTuples.Circle4Tuple._validated: True\n    test 470 pygeodesy.namedTuples.Circle4Tuple._validated: True\n    test 471 pygeodesy.namedTuples: Destination2Tuple(destination=0.5, final=0.5)\n    test 472 pygeodesy.namedTuples: Destination2Tuple(destination=_Pass, final=Bearing)\n    test 473 pygeodesy.namedTuples.Destination2Tuple.destination: 0.5\n    test 474 pygeodesy.namedTuples.Destination2Tuple.final: 0.5\n    test 475 pygeodesy.namedTuples.Destination2Tuple._validated: True\n    test 476 pygeodesy.namedTuples.Destination2Tuple._validated: True\n    test 477 pygeodesy.namedTuples: Destination3Tuple(lat=0.5, lon=0.5, final=0.5)\n    test 478 pygeodesy.namedTuples: Destination3Tuple(lat=Lat, lon=Lon, final=Bearing)\n    test 479 pygeodesy.namedTuples.Destination3Tuple.lat: 0.5\n    test 480 pygeodesy.namedTuples.Destination3Tuple.lon: 0.5\n    test 481 pygeodesy.namedTuples.Destination3Tuple.final: 0.5\n    test 482 pygeodesy.namedTuples.Destination3Tuple._validated: True\n    test 483 pygeodesy.namedTuples.Destination3Tuple._validated: True\n    test 484 pygeodesy.namedTuples: Distance2Tuple(distance=0.5, initial=0.5)\n    test 485 pygeodesy.namedTuples: Distance2Tuple(distance=Meter, initial=Bearing)\n    test 486 pygeodesy.namedTuples.Distance2Tuple.distance: 0.5\n    test 487 pygeodesy.namedTuples.Distance2Tuple.initial: 0.5\n    test 488 pygeodesy.namedTuples.Distance2Tuple._validated: True\n    test 489 pygeodesy.namedTuples.Distance2Tuple._validated: True\n    test 490 pygeodesy.namedTuples: Distance3Tuple(distance=0.5, initial=0.5, final=0.5)\n    test 491 pygeodesy.namedTuples: Distance3Tuple(distance=Meter, initial=Bearing, final=Bearing)\n    test 492 pygeodesy.namedTuples.Distance3Tuple.distance: 0.5\n    test 493 pygeodesy.namedTuples.Distance3Tuple.initial: 0.5\n    test 494 pygeodesy.namedTuples.Distance3Tuple.final: 0.5\n    test 495 pygeodesy.namedTuples.Distance3Tuple._validated: True\n    test 496 pygeodesy.namedTuples.Distance3Tuple._validated: True\n    test 497 pygeodesy.namedTuples: Distance4Tuple(distance2=0.5, delta_lat=0.5, delta_lon=0.5, unroll_lon2=0.5)\n    test 498 pygeodesy.namedTuples: Distance4Tuple(distance2=Degrees2, delta_lat=Degrees, delta_lon=Degrees, unroll_lon2=Degrees)\n    test 499 pygeodesy.namedTuples.Distance4Tuple.distance2: 0.5\n    test 500 pygeodesy.namedTuples.Distance4Tuple.delta_lat: 0.5\n    test 501 pygeodesy.namedTuples.Distance4Tuple.delta_lon: 0.5\n    test 502 pygeodesy.namedTuples.Distance4Tuple.unroll_lon2: 0.5\n    test 503 pygeodesy.namedTuples.Distance4Tuple._validated: True\n    test 504 pygeodesy.namedTuples.Distance4Tuple._validated: True\n    test 505 pygeodesy.namedTuples: EasNor2Tuple(easting=0.5, northing=0.5)\n    test 506 pygeodesy.namedTuples: EasNor2Tuple(easting=Easting, northing=Northing)\n    test 507 pygeodesy.namedTuples.EasNor2Tuple.easting: 0.5\n    test 508 pygeodesy.namedTuples.EasNor2Tuple.northing: 0.5\n    test 509 pygeodesy.namedTuples.EasNor2Tuple._validated: True\n    test 510 pygeodesy.namedTuples.EasNor2Tuple._validated: True\n    test 511 pygeodesy.namedTuples: EasNor3Tuple(easting=0.5, northing=0.5, height=0.5)\n    test 512 pygeodesy.namedTuples: EasNor3Tuple(easting=Easting, northing=Northing, height=Height)\n    test 513 pygeodesy.namedTuples.EasNor3Tuple.easting: 0.5\n    test 514 pygeodesy.namedTuples.EasNor3Tuple.northing: 0.5\n    test 515 pygeodesy.namedTuples.EasNor3Tuple.height: 0.5\n    test 516 pygeodesy.namedTuples.EasNor3Tuple._validated: True\n    test 517 pygeodesy.namedTuples.EasNor3Tuple._validated: True\n    test 518 pygeodesy.namedTuples: Ellipse5Tuple(a=0.5, b=0.5, height=0.5, lat=0.5, beta=0.5)\n    test 519 pygeodesy.namedTuples: Ellipse5Tuple(a=Radius, b=Radius, height=Height, lat=Lat, beta=Lat)\n    test 520 pygeodesy.namedTuples.Ellipse5Tuple.a: 0.5\n    test 521 pygeodesy.namedTuples.Ellipse5Tuple.b: 0.5\n    test 522 pygeodesy.namedTuples.Ellipse5Tuple.height: 0.5\n    test 523 pygeodesy.namedTuples.Ellipse5Tuple.lat: 0.5\n    test 524 pygeodesy.namedTuples.Ellipse5Tuple.beta: 0.5\n    test 525 pygeodesy.namedTuples.Ellipse5Tuple._validated: True\n    test 526 pygeodesy.namedTuples.Ellipse5Tuple._validated: True\n    test 527 pygeodesy.namedTuples: Forward4Tuple(easting=0.5, northing=0.5, gamma=0.5, scale=0.5)\n    test 528 pygeodesy.namedTuples: Forward4Tuple(easting=Easting, northing=Northing, gamma=Degrees, scale=Scalar)\n    test 529 pygeodesy.namedTuples.Forward4Tuple.easting: 0.5\n    test 530 pygeodesy.namedTuples.Forward4Tuple.northing: 0.5\n    test 531 pygeodesy.namedTuples.Forward4Tuple.gamma: 0.5\n    test 532 pygeodesy.namedTuples.Forward4Tuple.scale: 0.5\n    test 533 pygeodesy.namedTuples.Forward4Tuple._validated: True\n    test 534 pygeodesy.namedTuples.Forward4Tuple._validated: True\n    test 535 pygeodesy.namedTuples: Intersection3Tuple(point=0.5, outside1=0, outside2=0)\n    test 536 pygeodesy.namedTuples: Intersection3Tuple(point=_Pass, outside1=Int, outside2=Int)\n    test 537 pygeodesy.namedTuples.Intersection3Tuple.point: 0.5\n    test 538 pygeodesy.namedTuples.Intersection3Tuple.outside1: 0.5\n    test 539 pygeodesy.namedTuples.Intersection3Tuple.outside2: 0.5\n    test 540 pygeodesy.namedTuples.Intersection3Tuple._validated: True\n    test 541 pygeodesy.namedTuples.Intersection3Tuple._validated: True\n    test 542 pygeodesy.namedTuples: LatLon2Tuple(lat=0.5, lon=0.5)\n    test 543 pygeodesy.namedTuples: LatLon2Tuple(lat=Lat, lon=Lon)\n    test 544 pygeodesy.namedTuples.LatLon2Tuple.lat: 0.5\n    test 545 pygeodesy.namedTuples.LatLon2Tuple.lon: 0.5\n    test 546 pygeodesy.namedTuples.LatLon2Tuple._validated: True\n    test 547 pygeodesy.namedTuples.LatLon2Tuple._validated: True\n    test 548 pygeodesy.namedTuples: LatLon3Tuple(lat=0.5, lon=0.5, height=0.5)\n    test 549 pygeodesy.namedTuples: LatLon3Tuple(lat=Lat, lon=Lon, height=Height)\n    test 550 pygeodesy.namedTuples.LatLon3Tuple.lat: 0.5\n    test 551 pygeodesy.namedTuples.LatLon3Tuple.lon: 0.5\n    test 552 pygeodesy.namedTuples.LatLon3Tuple.height: 0.5\n    test 553 pygeodesy.namedTuples.LatLon3Tuple._validated: True\n    test 554 pygeodesy.namedTuples.LatLon3Tuple._validated: True\n    test 555 pygeodesy.namedTuples: LatLon4Tuple(lat=0.5, lon=0.5, height=0.5, datum=0.5)\n    test 556 pygeodesy.namedTuples: LatLon4Tuple(lat=Lat, lon=Lon, height=Height, datum=_Pass)\n    test 557 pygeodesy.namedTuples.LatLon4Tuple.lat: 0.5\n    test 558 pygeodesy.namedTuples.LatLon4Tuple.lon: 0.5\n    test 559 pygeodesy.namedTuples.LatLon4Tuple.height: 0.5\n    test 560 pygeodesy.namedTuples.LatLon4Tuple.datum: 0.5\n    test 561 pygeodesy.namedTuples.LatLon4Tuple._validated: True\n    test 562 pygeodesy.namedTuples.LatLon4Tuple._validated: True\n    test 563 pygeodesy.namedTuples: LatLonDatum3Tuple(lat=0.5, lon=0.5, datum=0.5)\n    test 564 pygeodesy.namedTuples: LatLonDatum3Tuple(lat=Lat, lon=Lon, datum=_Pass)\n    test 565 pygeodesy.namedTuples.LatLonDatum3Tuple.lat: 0.5\n    test 566 pygeodesy.namedTuples.LatLonDatum3Tuple.lon: 0.5\n    test 567 pygeodesy.namedTuples.LatLonDatum3Tuple.datum: 0.5\n    test 568 pygeodesy.namedTuples.LatLonDatum3Tuple._validated: True\n    test 569 pygeodesy.namedTuples.LatLonDatum3Tuple._validated: True\n    test 570 pygeodesy.namedTuples: LatLonDatum5Tuple(lat=0.5, lon=0.5, datum=0.5, gamma=0.5, scale=0.5)\n    test 571 pygeodesy.namedTuples: LatLonDatum5Tuple(lat=Lat, lon=Lon, datum=_Pass, gamma=Degrees, scale=Scalar)\n    test 572 pygeodesy.namedTuples.LatLonDatum5Tuple.lat: 0.5\n    test 573 pygeodesy.namedTuples.LatLonDatum5Tuple.lon: 0.5\n    test 574 pygeodesy.namedTuples.LatLonDatum5Tuple.datum: 0.5\n    test 575 pygeodesy.namedTuples.LatLonDatum5Tuple.gamma: 0.5\n    test 576 pygeodesy.namedTuples.LatLonDatum5Tuple.scale: 0.5\n    test 577 pygeodesy.namedTuples.LatLonDatum5Tuple._validated: True\n    test 578 pygeodesy.namedTuples.LatLonDatum5Tuple._validated: True\n    test 579 pygeodesy.namedTuples: LatLonPrec3Tuple(lat=0.5, lon=0.5, precision=0)\n    test 580 pygeodesy.namedTuples: LatLonPrec3Tuple(lat=Lat, lon=Lon, precision=Precision_)\n    test 581 pygeodesy.namedTuples.LatLonPrec3Tuple.lat: 0.5\n    test 582 pygeodesy.namedTuples.LatLonPrec3Tuple.lon: 0.5\n    test 583 pygeodesy.namedTuples.LatLonPrec3Tuple.precision: 0.5\n    test 584 pygeodesy.namedTuples.LatLonPrec3Tuple._validated: True\n    test 585 pygeodesy.namedTuples.LatLonPrec3Tuple._validated: True\n    test 586 pygeodesy.namedTuples: LatLonPrec5Tuple(lat=0.5, lon=0.5, precision=0, height=0.5, radius=0.5)\n    test 587 pygeodesy.namedTuples: LatLonPrec5Tuple(lat=Lat, lon=Lon, precision=Precision_, height=Height, radius=Radius)\n    test 588 pygeodesy.namedTuples.LatLonPrec5Tuple.lat: 0.5\n    test 589 pygeodesy.namedTuples.LatLonPrec5Tuple.lon: 0.5\n    test 590 pygeodesy.namedTuples.LatLonPrec5Tuple.precision: 0.5\n    test 591 pygeodesy.namedTuples.LatLonPrec5Tuple.height: 0.5\n    test 592 pygeodesy.namedTuples.LatLonPrec5Tuple.radius: 0.5\n    test 593 pygeodesy.namedTuples.LatLonPrec5Tuple._validated: True\n    test 594 pygeodesy.namedTuples.LatLonPrec5Tuple._validated: True\n    test 595 pygeodesy.namedTuples: NearestOn2Tuple(closest=0.5, fraction=0.5)\n    test 596 pygeodesy.namedTuples: NearestOn2Tuple(closest=_Pass, fraction=_Pass)\n    test 597 pygeodesy.namedTuples.NearestOn2Tuple.closest: 0.5\n    test 598 pygeodesy.namedTuples.NearestOn2Tuple.fraction: 0.5\n    test 599 pygeodesy.namedTuples.NearestOn2Tuple._validated: True\n    test 600 pygeodesy.namedTuples.NearestOn2Tuple._validated: True\n    test 601 pygeodesy.namedTuples: NearestOn3Tuple(closest=0.5, distance=0.5, angle=0.5)\n    test 602 pygeodesy.namedTuples: NearestOn3Tuple(closest=_Pass, distance=Meter, angle=Degrees)\n    test 603 pygeodesy.namedTuples.NearestOn3Tuple.closest: 0.5\n    test 604 pygeodesy.namedTuples.NearestOn3Tuple.distance: 0.5\n    test 605 pygeodesy.namedTuples.NearestOn3Tuple.angle: 0.5\n    test 606 pygeodesy.namedTuples.NearestOn3Tuple._validated: True\n    test 607 pygeodesy.namedTuples.NearestOn3Tuple._validated: True\n    test 608 pygeodesy.namedTuples: NearestOn5Tuple(lat=0.5, lon=0.5, distance=0.5, angle=0.5, height=0.5)\n    test 609 pygeodesy.namedTuples: NearestOn5Tuple(lat=Lat, lon=Lon, distance=Degrees, angle=Degrees, height=Meter)\n    test 610 pygeodesy.namedTuples.NearestOn5Tuple.lat: 0.5\n    test 611 pygeodesy.namedTuples.NearestOn5Tuple.lon: 0.5\n    test 612 pygeodesy.namedTuples.NearestOn5Tuple.distance: 0.5\n    test 613 pygeodesy.namedTuples.NearestOn5Tuple.angle: 0.5\n    test 614 pygeodesy.namedTuples.NearestOn5Tuple.height: 0.5\n    test 615 pygeodesy.namedTuples.NearestOn5Tuple._validated: True\n    test 616 pygeodesy.namedTuples.NearestOn5Tuple._validated: True\n    test 617 pygeodesy.namedTuples: NearestOn6Tuple(closest=0.5, distance=0.5, fi=0.5, j=0, start=0.5, end=0.5)\n    test 618 pygeodesy.namedTuples: NearestOn6Tuple(closest=_Pass, distance=Meter, fi=FIx, j=Number_, start=_Pass, end=_Pass)\n    test 619 pygeodesy.namedTuples.NearestOn6Tuple.closest: 0.5\n    test 620 pygeodesy.namedTuples.NearestOn6Tuple.distance: 0.5\n    test 621 pygeodesy.namedTuples.NearestOn6Tuple.fi: 0.5\n    test 622 pygeodesy.namedTuples.NearestOn6Tuple.j: 0.5\n    test 623 pygeodesy.namedTuples.NearestOn6Tuple.start: 0.5\n    test 624 pygeodesy.namedTuples.NearestOn6Tuple.end: 0.5\n    test 625 pygeodesy.namedTuples.NearestOn6Tuple._validated: True\n    test 626 pygeodesy.namedTuples.NearestOn6Tuple._validated: True\n    test 627 pygeodesy.namedTuples: NearestOn8Tuple(closest=0.5, distance=0.5, fi=0.5, j=0, start=0.5, end=0.5, initial=0.5, final=0.5)\n    test 628 pygeodesy.namedTuples: NearestOn8Tuple(closest=_Pass, distance=Meter, fi=FIx, j=Number_, start=_Pass, end=_Pass, initial=Bearing, final=Bearing)\n    test 629 pygeodesy.namedTuples.NearestOn8Tuple.closest: 0.5\n    test 630 pygeodesy.namedTuples.NearestOn8Tuple.distance: 0.5\n    test 631 pygeodesy.namedTuples.NearestOn8Tuple.fi: 0.5\n    test 632 pygeodesy.namedTuples.NearestOn8Tuple.j: 0.5\n    test 633 pygeodesy.namedTuples.NearestOn8Tuple.start: 0.5\n    test 634 pygeodesy.namedTuples.NearestOn8Tuple.end: 0.5\n    test 635 pygeodesy.namedTuples.NearestOn8Tuple.initial: 0.5\n    test 636 pygeodesy.namedTuples.NearestOn8Tuple.final: 0.5\n    test 637 pygeodesy.namedTuples.NearestOn8Tuple._validated: True\n    test 638 pygeodesy.namedTuples.NearestOn8Tuple._validated: True\n    test 639 pygeodesy.namedTuples: PhiLam2Tuple(phi=0.5, lam=0.5)\n    test 640 pygeodesy.namedTuples: PhiLam2Tuple(phi=Phi, lam=Lam)\n    test 641 pygeodesy.namedTuples.PhiLam2Tuple.phi: 0.5\n    test 642 pygeodesy.namedTuples.PhiLam2Tuple.lam: 0.5\n    test 643 pygeodesy.namedTuples.PhiLam2Tuple._validated: True\n    test 644 pygeodesy.namedTuples.PhiLam2Tuple._validated: True\n    test 645 pygeodesy.namedTuples: PhiLam3Tuple(phi=0.5, lam=0.5, height=0.5)\n    test 646 pygeodesy.namedTuples: PhiLam3Tuple(phi=Phi, lam=Lam, height=Height)\n    test 647 pygeodesy.namedTuples.PhiLam3Tuple.phi: 0.5\n    test 648 pygeodesy.namedTuples.PhiLam3Tuple.lam: 0.5\n    test 649 pygeodesy.namedTuples.PhiLam3Tuple.height: 0.5\n    test 650 pygeodesy.namedTuples.PhiLam3Tuple._validated: True\n    test 651 pygeodesy.namedTuples.PhiLam3Tuple._validated: True\n    test 652 pygeodesy.namedTuples: PhiLam4Tuple(phi=0.5, lam=0.5, height=0.5, datum=0.5)\n    test 653 pygeodesy.namedTuples: PhiLam4Tuple(phi=Phi, lam=Lam, height=Height, datum=_Pass)\n    test 654 pygeodesy.namedTuples.PhiLam4Tuple.phi: 0.5\n    test 655 pygeodesy.namedTuples.PhiLam4Tuple.lam: 0.5\n    test 656 pygeodesy.namedTuples.PhiLam4Tuple.height: 0.5\n    test 657 pygeodesy.namedTuples.PhiLam4Tuple.datum: 0.5\n    test 658 pygeodesy.namedTuples.PhiLam4Tuple._validated: True\n    test 659 pygeodesy.namedTuples.PhiLam4Tuple._validated: True\n    test 660 pygeodesy.namedTuples: Point3Tuple(x=0.5, y=0.5, ll=0.5)\n    test 661 pygeodesy.namedTuples: Point3Tuple(x=Meter, y=Meter, ll=_Pass)\n    test 662 pygeodesy.namedTuples.Point3Tuple.x: 0.5\n    test 663 pygeodesy.namedTuples.Point3Tuple.y: 0.5\n    test 664 pygeodesy.namedTuples.Point3Tuple.ll: 0.5\n    test 665 pygeodesy.namedTuples.Point3Tuple._validated: True\n    test 666 pygeodesy.namedTuples.Point3Tuple._validated: True\n    test 667 pygeodesy.namedTuples: Points2Tuple(number=0, points=0.5)\n    test 668 pygeodesy.namedTuples: Points2Tuple(number=Number_, points=_Pass)\n    test 669 pygeodesy.namedTuples.Points2Tuple.number: 0.5\n    test 670 pygeodesy.namedTuples.Points2Tuple.points: 0.5\n    test 671 pygeodesy.namedTuples.Points2Tuple._validated: True\n    test 672 pygeodesy.namedTuples.Points2Tuple._validated: True\n    test 673 pygeodesy.namedTuples: Reverse4Tuple(lat=0.5, lon=0.5, gamma=0.5, scale=0.5)\n    test 674 pygeodesy.namedTuples: Reverse4Tuple(lat=Lat, lon=Lon, gamma=Degrees, scale=Scalar)\n    test 675 pygeodesy.namedTuples.Reverse4Tuple.lat: 0.5\n    test 676 pygeodesy.namedTuples.Reverse4Tuple.lon: 0.5\n    test 677 pygeodesy.namedTuples.Reverse4Tuple.gamma: 0.5\n    test 678 pygeodesy.namedTuples.Reverse4Tuple.scale: 0.5\n    test 679 pygeodesy.namedTuples.Reverse4Tuple._validated: True\n    test 680 pygeodesy.namedTuples.Reverse4Tuple._validated: True\n    test 681 pygeodesy.namedTuples: Triangle7Tuple(A=0.5, a=0.5, B=0.5, b=0.5, C=0.5, c=0.5, area=0.5)\n    test 682 pygeodesy.namedTuples: Triangle7Tuple(A=Degrees, a=Meter, B=Degrees, b=Meter, C=Degrees, c=Meter, area=Meter2)\n    test 683 pygeodesy.namedTuples.Triangle7Tuple.A: 0.5\n    test 684 pygeodesy.namedTuples.Triangle7Tuple.a: 0.5\n    test 685 pygeodesy.namedTuples.Triangle7Tuple.B: 0.5\n    test 686 pygeodesy.namedTuples.Triangle7Tuple.b: 0.5\n    test 687 pygeodesy.namedTuples.Triangle7Tuple.C: 0.5\n    test 688 pygeodesy.namedTuples.Triangle7Tuple.c: 0.5\n    test 689 pygeodesy.namedTuples.Triangle7Tuple.area: 0.5\n    test 690 pygeodesy.namedTuples.Triangle7Tuple._validated: True\n    test 691 pygeodesy.namedTuples.Triangle7Tuple._validated: True\n    test 692 pygeodesy.namedTuples: Triangle8Tuple(A=0.5, a=0.5, B=0.5, b=0.5, C=0.5, c=0.5, D=0.5, E=0.5)\n    test 693 pygeodesy.namedTuples: Triangle8Tuple(A=Radians, a=Radians, B=Radians, b=Radians, C=Radians, c=Radians, D=Radians, E=Radians)\n    test 694 pygeodesy.namedTuples.Triangle8Tuple.A: 0.5\n    test 695 pygeodesy.namedTuples.Triangle8Tuple.a: 0.5\n    test 696 pygeodesy.namedTuples.Triangle8Tuple.B: 0.5\n    test 697 pygeodesy.namedTuples.Triangle8Tuple.b: 0.5\n    test 698 pygeodesy.namedTuples.Triangle8Tuple.C: 0.5\n    test 699 pygeodesy.namedTuples.Triangle8Tuple.c: 0.5\n    test 700 pygeodesy.namedTuples.Triangle8Tuple.D: 0.5\n    test 701 pygeodesy.namedTuples.Triangle8Tuple.E: 0.5\n    test 702 pygeodesy.namedTuples.Triangle8Tuple._validated: True\n    test 703 pygeodesy.namedTuples.Triangle8Tuple._validated: True\n    test 704 pygeodesy.namedTuples: Trilaterate5Tuple(min=0.5, minPoint=0.5, max=0.5, maxPoint=0.5, n=0)\n    test 705 pygeodesy.namedTuples: Trilaterate5Tuple(min=Meter, minPoint=_Pass, max=Meter, maxPoint=_Pass, n=Number_)\n    test 706 pygeodesy.namedTuples.Trilaterate5Tuple.min: 0.5\n    test 707 pygeodesy.namedTuples.Trilaterate5Tuple.minPoint: 0.5\n    test 708 pygeodesy.namedTuples.Trilaterate5Tuple.max: 0.5\n    test 709 pygeodesy.namedTuples.Trilaterate5Tuple.maxPoint: 0.5\n    test 710 pygeodesy.namedTuples.Trilaterate5Tuple.n: 0.5\n    test 711 pygeodesy.namedTuples.Trilaterate5Tuple._validated: True\n    test 712 pygeodesy.namedTuples.Trilaterate5Tuple._validated: True\n    test 713 pygeodesy.namedTuples: UtmUps2Tuple(zone=0, hemipole='0.5')\n    test 714 pygeodesy.namedTuples: UtmUps2Tuple(zone=Number_, hemipole=Str)\n    test 715 pygeodesy.namedTuples.UtmUps2Tuple.zone: 0.5\n    test 716 pygeodesy.namedTuples.UtmUps2Tuple.hemipole: 0.5\n    test 717 pygeodesy.namedTuples.UtmUps2Tuple._validated: True\n    test 718 pygeodesy.namedTuples.UtmUps2Tuple._validated: True\n    test 719 pygeodesy.namedTuples: UtmUps5Tuple(zone=0, hemipole='0.5', easting=0.5, northing=0.5, band='0.5')\n    test 720 pygeodesy.namedTuples: UtmUps5Tuple(zone=Number_, hemipole=Str, easting=Easting, northing=Northing, band=Band)\n    test 721 pygeodesy.namedTuples.UtmUps5Tuple.zone: 0.5\n    test 722 pygeodesy.namedTuples.UtmUps5Tuple.hemipole: 0.5\n    test 723 pygeodesy.namedTuples.UtmUps5Tuple.easting: 0.5\n    test 724 pygeodesy.namedTuples.UtmUps5Tuple.northing: 0.5\n    test 725 pygeodesy.namedTuples.UtmUps5Tuple.band: 0.5\n    test 726 pygeodesy.namedTuples.UtmUps5Tuple._validated: True\n    test 727 pygeodesy.namedTuples.UtmUps5Tuple._validated: True\n    test 728 pygeodesy.namedTuples: UtmUps8Tuple(zone=0, hemipole='0.5', easting=0.5, northing=0.5, band='0.5', datum=0.5, gamma=0.5, scale=0.5)\n    test 729 pygeodesy.namedTuples: UtmUps8Tuple(zone=Number_, hemipole=Str, easting=Easting, northing=Northing, band=Band, datum=_Pass, gamma=Degrees, scale=Scalar)\n    test 730 pygeodesy.namedTuples.UtmUps8Tuple.zone: 0.5\n    test 731 pygeodesy.namedTuples.UtmUps8Tuple.hemipole: 0.5\n    test 732 pygeodesy.namedTuples.UtmUps8Tuple.easting: 0.5\n    test 733 pygeodesy.namedTuples.UtmUps8Tuple.northing: 0.5\n    test 734 pygeodesy.namedTuples.UtmUps8Tuple.band: 0.5\n    test 735 pygeodesy.namedTuples.UtmUps8Tuple.datum: 0.5\n    test 736 pygeodesy.namedTuples.UtmUps8Tuple.gamma: 0.5\n    test 737 pygeodesy.namedTuples.UtmUps8Tuple.scale: 0.5\n    test 738 pygeodesy.namedTuples.UtmUps8Tuple._validated: True\n    test 739 pygeodesy.namedTuples.UtmUps8Tuple._validated: True\n    test 740 pygeodesy.namedTuples: UtmUpsLatLon5Tuple(zone=0, band='0.5', hemipole='0.5', lat=0.5, lon=0.5)\n    test 741 pygeodesy.namedTuples: UtmUpsLatLon5Tuple(zone=Number_, band=Band, hemipole=Str, lat=Lat, lon=Lon)\n    test 742 pygeodesy.namedTuples.UtmUpsLatLon5Tuple.zone: 0.5\n    test 743 pygeodesy.namedTuples.UtmUpsLatLon5Tuple.band: 0.5\n    test 744 pygeodesy.namedTuples.UtmUpsLatLon5Tuple.hemipole: 0.5\n    test 745 pygeodesy.namedTuples.UtmUpsLatLon5Tuple.lat: 0.5\n    test 746 pygeodesy.namedTuples.UtmUpsLatLon5Tuple.lon: 0.5\n    test 747 pygeodesy.namedTuples.UtmUpsLatLon5Tuple._validated: True\n    test 748 pygeodesy.namedTuples.UtmUpsLatLon5Tuple._validated: True\n    test 749 pygeodesy.namedTuples: Vector2Tuple(x=0.5, y=0.5)\n    test 750 pygeodesy.namedTuples: Vector2Tuple(x=Scalar, y=Scalar)\n    test 751 pygeodesy.namedTuples.Vector2Tuple.x: 0.5\n    test 752 pygeodesy.namedTuples.Vector2Tuple.y: 0.5\n    test 753 pygeodesy.namedTuples.Vector2Tuple._validated: True\n    test 754 pygeodesy.namedTuples.Vector2Tuple._validated: True\n    test 755 pygeodesy.namedTuples: Vector3Tuple(x=0.5, y=0.5, z=0.5)\n    test 756 pygeodesy.namedTuples: Vector3Tuple(x=Scalar, y=Scalar, z=Scalar)\n    test 757 pygeodesy.namedTuples.Vector3Tuple.x: 0.5\n    test 758 pygeodesy.namedTuples.Vector3Tuple.y: 0.5\n    test 759 pygeodesy.namedTuples.Vector3Tuple.z: 0.5\n    test 760 pygeodesy.namedTuples.Vector3Tuple._validated: True\n    test 761 pygeodesy.namedTuples.Vector3Tuple._validated: True\n    test 762 pygeodesy.namedTuples: Vector4Tuple(x=0.5, y=0.5, z=0.5, h=0.5)\n    test 763 pygeodesy.namedTuples: Vector4Tuple(x=Scalar, y=Scalar, z=Scalar, h=Height)\n    test 764 pygeodesy.namedTuples.Vector4Tuple.x: 0.5\n    test 765 pygeodesy.namedTuples.Vector4Tuple.y: 0.5\n    test 766 pygeodesy.namedTuples.Vector4Tuple.z: 0.5\n    test 767 pygeodesy.namedTuples.Vector4Tuple.h: 0.5\n    test 768 pygeodesy.namedTuples.Vector4Tuple._validated: True\n    test 769 pygeodesy.namedTuples.Vector4Tuple._validated: True\n    test 770 pygeodesy.points: Shape2Tuple(nrows=0, ncols=0)\n    test 771 pygeodesy.points: Shape2Tuple(nrows=Number_, ncols=Number_)\n    test 772 pygeodesy.points.Shape2Tuple.nrows: 0.5\n    test 773 pygeodesy.points.Shape2Tuple.ncols: 0.5\n    test 774 pygeodesy.points.Shape2Tuple._validated: True\n    test 775 pygeodesy.points.Shape2Tuple._validated: True\n    test 776 pygeodesy.resections: Collins5Tuple(pointP=0.5, pointH=0.5, a=0.5, b=0.5, c=0.5)\n    test 777 pygeodesy.resections: Collins5Tuple(pointP=_Pass, pointH=_Pass, a=Distance, b=Distance, c=Distance)\n    test 778 pygeodesy.resections.Collins5Tuple.pointP: 0.5\n    test 779 pygeodesy.resections.Collins5Tuple.pointH: 0.5\n    test 780 pygeodesy.resections.Collins5Tuple.a: 0.5\n    test 781 pygeodesy.resections.Collins5Tuple.b: 0.5\n    test 782 pygeodesy.resections.Collins5Tuple.c: 0.5\n    test 783 pygeodesy.resections.Collins5Tuple._validated: True\n    test 784 pygeodesy.resections.Collins5Tuple._validated: True\n    test 785 pygeodesy.resections: Survey3Tuple(PA=0.5, PB=0.5, PC=0.5)\n    test 786 pygeodesy.resections: Survey3Tuple(PA=Distance, PB=Distance, PC=Distance)\n    test 787 pygeodesy.resections.Survey3Tuple.PA: 0.5\n    test 788 pygeodesy.resections.Survey3Tuple.PB: 0.5\n    test 789 pygeodesy.resections.Survey3Tuple.PC: 0.5\n    test 790 pygeodesy.resections.Survey3Tuple._validated: True\n    test 791 pygeodesy.resections.Survey3Tuple._validated: True\n    test 792 pygeodesy.resections: Tienstra7Tuple(pointP=0.5, A=0.5, B=0.5, C=0.5, a=0.5, b=0.5, c=0.5)\n    test 793 pygeodesy.resections: Tienstra7Tuple(pointP=_Pass, A=Degrees, B=Degrees, C=Degrees, a=Distance, b=Distance, c=Distance)\n    test 794 pygeodesy.resections.Tienstra7Tuple.pointP: 0.5\n    test 795 pygeodesy.resections.Tienstra7Tuple.A: 0.5\n    test 796 pygeodesy.resections.Tienstra7Tuple.B: 0.5\n    test 797 pygeodesy.resections.Tienstra7Tuple.C: 0.5\n    test 798 pygeodesy.resections.Tienstra7Tuple.a: 0.5\n    test 799 pygeodesy.resections.Tienstra7Tuple.b: 0.5\n    test 800 pygeodesy.resections.Tienstra7Tuple.c: 0.5\n    test 801 pygeodesy.resections.Tienstra7Tuple._validated: True\n    test 802 pygeodesy.resections.Tienstra7Tuple._validated: True\n    test 803 pygeodesy.resections: TriAngle5Tuple(radA=0.5, radB=0.5, radC=0.5, rIn=0.5, area=0.5)\n    test 804 pygeodesy.resections: TriAngle5Tuple(radA=Radians, radB=Radians, radC=Radians, rIn=Distance, area=_Pass)\n    test 805 pygeodesy.resections.TriAngle5Tuple.radA: 0.5\n    test 806 pygeodesy.resections.TriAngle5Tuple.radB: 0.5\n    test 807 pygeodesy.resections.TriAngle5Tuple.radC: 0.5\n    test 808 pygeodesy.resections.TriAngle5Tuple.rIn: 0.5\n    test 809 pygeodesy.resections.TriAngle5Tuple.area: 0.5\n    test 810 pygeodesy.resections.TriAngle5Tuple._validated: True\n    test 811 pygeodesy.resections.TriAngle5Tuple._validated: True\n    test 812 pygeodesy.resections: TriSide2Tuple(a=0.5, radA=0.5)\n    test 813 pygeodesy.resections: TriSide2Tuple(a=Distance, radA=Radians)\n    test 814 pygeodesy.resections.TriSide2Tuple.a: 0.5\n    test 815 pygeodesy.resections.TriSide2Tuple.radA: 0.5\n    test 816 pygeodesy.resections.TriSide2Tuple._validated: True\n    test 817 pygeodesy.resections.TriSide2Tuple._validated: True\n    test 818 pygeodesy.resections: TriSide4Tuple(a=0.5, b=0.5, radC=0.5, d=0.5)\n    test 819 pygeodesy.resections: TriSide4Tuple(a=Distance, b=Distance, radC=Radians, d=Distance)\n    test 820 pygeodesy.resections.TriSide4Tuple.a: 0.5\n    test 821 pygeodesy.resections.TriSide4Tuple.b: 0.5\n    test 822 pygeodesy.resections.TriSide4Tuple.radC: 0.5\n    test 823 pygeodesy.resections.TriSide4Tuple.d: 0.5\n    test 824 pygeodesy.resections.TriSide4Tuple._validated: True\n    test 825 pygeodesy.resections.TriSide4Tuple._validated: True\n    test 826 pygeodesy.trf: TRFXform7Tuple(tx=0.5, ty=0.5, tz=0.5, s=0.5, sx=0.5, sy=0.5, sz=0.5)\n    test 827 pygeodesy.trf: TRFXform7Tuple(tx=Float, ty=Float, tz=Float, s=Float, sx=Float, sy=Float, sz=Float)\n    test 828 pygeodesy.trf.TRFXform7Tuple.tx: 0.5\n    test 829 pygeodesy.trf.TRFXform7Tuple.ty: 0.5\n    test 830 pygeodesy.trf.TRFXform7Tuple.tz: 0.5\n    test 831 pygeodesy.trf.TRFXform7Tuple.s: 0.5\n    test 832 pygeodesy.trf.TRFXform7Tuple.sx: 0.5\n    test 833 pygeodesy.trf.TRFXform7Tuple.sy: 0.5\n    test 834 pygeodesy.trf.TRFXform7Tuple.sz: 0.5\n    test 835 pygeodesy.trf.TRFXform7Tuple._validated: True\n    test 836 pygeodesy.trf.TRFXform7Tuple._validated: True\n    test 837 pygeodesy.vector2d: Circin6Tuple(radius=0.5, center=0.5, deltas=0.5, cA=0.5, cB=0.5, cC=0.5)\n    test 838 pygeodesy.vector2d: Circin6Tuple(radius=Radius, center=_Pass, deltas=_Pass, cA=_Pass, cB=_Pass, cC=_Pass)\n    test 839 pygeodesy.vector2d.Circin6Tuple.radius: 0.5\n    test 840 pygeodesy.vector2d.Circin6Tuple.center: 0.5\n    test 841 pygeodesy.vector2d.Circin6Tuple.deltas: 0.5\n    test 842 pygeodesy.vector2d.Circin6Tuple.cA: 0.5\n    test 843 pygeodesy.vector2d.Circin6Tuple.cB: 0.5\n    test 844 pygeodesy.vector2d.Circin6Tuple.cC: 0.5\n    test 845 pygeodesy.vector2d.Circin6Tuple._validated: True\n    test 846 pygeodesy.vector2d.Circin6Tuple._validated: True\n    test 847 pygeodesy.vector2d: Circum3Tuple(radius=0.5, center=0.5, deltas=0.5)\n    test 848 pygeodesy.vector2d: Circum3Tuple(radius=Radius, center=_Pass, deltas=_Pass)\n    test 849 pygeodesy.vector2d.Circum3Tuple.radius: 0.5\n    test 850 pygeodesy.vector2d.Circum3Tuple.center: 0.5\n    test 851 pygeodesy.vector2d.Circum3Tuple.deltas: 0.5\n    test 852 pygeodesy.vector2d.Circum3Tuple._validated: True\n    test 853 pygeodesy.vector2d.Circum3Tuple._validated: True\n    test 854 pygeodesy.vector2d: Circum4Tuple(radius=0.5, center=0.5, rank=0, residuals=0.5)\n    test 855 pygeodesy.vector2d: Circum4Tuple(radius=Radius, center=_Pass, rank=Int, residuals=_Pass)\n    test 856 pygeodesy.vector2d.Circum4Tuple.radius: 0.5\n    test 857 pygeodesy.vector2d.Circum4Tuple.center: 0.5\n    test 858 pygeodesy.vector2d.Circum4Tuple.rank: 0.5\n    test 859 pygeodesy.vector2d.Circum4Tuple.residuals: 0.5\n    test 860 pygeodesy.vector2d.Circum4Tuple._validated: True\n    test 861 pygeodesy.vector2d.Circum4Tuple._validated: True\n    test 862 pygeodesy.vector2d: Meeus2Tuple(radius=0.5, Type=0.5)\n    test 863 pygeodesy.vector2d: Meeus2Tuple(radius=Radius, Type=_Pass)\n    test 864 pygeodesy.vector2d.Meeus2Tuple.radius: 0.5\n    test 865 pygeodesy.vector2d.Meeus2Tuple.Type: 0.5\n    test 866 pygeodesy.vector2d.Meeus2Tuple._validated: True\n    test 867 pygeodesy.vector2d.Meeus2Tuple._validated: True\n    test 868 pygeodesy.vector2d: Radii11Tuple(rA=0.5, rB=0.5, rC=0.5, cR=0.5, rIn=0.5, riS=0.5, roS=0.5, a=0.5, b=0.5, c=0.5, s=0.5)\n    test 869 pygeodesy.vector2d: Radii11Tuple(rA=Meter, rB=Meter, rC=Meter, cR=Meter, rIn=Meter, riS=Meter, roS=Meter, a=Meter, b=Meter, c=Meter, s=Meter)\n    test 870 pygeodesy.vector2d.Radii11Tuple.rA: 0.5\n    test 871 pygeodesy.vector2d.Radii11Tuple.rB: 0.5\n    test 872 pygeodesy.vector2d.Radii11Tuple.rC: 0.5\n    test 873 pygeodesy.vector2d.Radii11Tuple.cR: 0.5\n    test 874 pygeodesy.vector2d.Radii11Tuple.rIn: 0.5\n    test 875 pygeodesy.vector2d.Radii11Tuple.riS: 0.5\n    test 876 pygeodesy.vector2d.Radii11Tuple.roS: 0.5\n    test 877 pygeodesy.vector2d.Radii11Tuple.a: 0.5\n    test 878 pygeodesy.vector2d.Radii11Tuple.b: 0.5\n    test 879 pygeodesy.vector2d.Radii11Tuple.c: 0.5\n    test 880 pygeodesy.vector2d.Radii11Tuple.s: 0.5\n    test 881 pygeodesy.vector2d.Radii11Tuple._validated: True\n    test 882 pygeodesy.vector2d.Radii11Tuple._validated: True\n    test 883 pygeodesy.vector2d: Soddy4Tuple(radius=0.5, center=0.5, deltas=0.5, outer=0.5)\n    test 884 pygeodesy.vector2d: Soddy4Tuple(radius=Radius, center=_Pass, deltas=_Pass, outer=Radius)\n    test 885 pygeodesy.vector2d.Soddy4Tuple.radius: 0.5\n    test 886 pygeodesy.vector2d.Soddy4Tuple.center: 0.5\n    test 887 pygeodesy.vector2d.Soddy4Tuple.deltas: 0.5\n    test 888 pygeodesy.vector2d.Soddy4Tuple.outer: 0.5\n    test 889 pygeodesy.vector2d.Soddy4Tuple._validated: True\n    test 890 pygeodesy.vector2d.Soddy4Tuple._validated: True\n    test 891 pygeodesy.vector2d: Triaxum5Tuple(a=0.5, b=0.5, c=0.5, rank=0, residuals=0.5)\n    test 892 pygeodesy.vector2d: Triaxum5Tuple(a=Radius, b=Radius, c=Radius, rank=Int, residuals=_Pass)\n    test 893 pygeodesy.vector2d.Triaxum5Tuple.a: 0.5\n    test 894 pygeodesy.vector2d.Triaxum5Tuple.b: 0.5\n    test 895 pygeodesy.vector2d.Triaxum5Tuple.c: 0.5\n    test 896 pygeodesy.vector2d.Triaxum5Tuple.rank: 0.5\n    test 897 pygeodesy.vector2d.Triaxum5Tuple.residuals: 0.5\n    test 898 pygeodesy.vector2d.Triaxum5Tuple._validated: True\n    test 899 pygeodesy.vector2d.Triaxum5Tuple._validated: True\n    test 900 pygeodesy.webmercator: EasNorRadius3Tuple(easting=0.5, northing=0.5, radius=0.5)\n    test 901 pygeodesy.webmercator: EasNorRadius3Tuple(easting=Easting, northing=Northing, radius=Radius)\n    test 902 pygeodesy.webmercator.EasNorRadius3Tuple.easting: 0.5\n    test 903 pygeodesy.webmercator.EasNorRadius3Tuple.northing: 0.5\n    test 904 pygeodesy.webmercator.EasNorRadius3Tuple.radius: 0.5\n    test 905 pygeodesy.webmercator.EasNorRadius3Tuple._validated: True\n    test 906 pygeodesy.webmercator.EasNorRadius3Tuple._validated: True\n    test 907 pygeodesy.rhumb.solve: RhumbSolve7Tuple(lat1=0.5, lon1=0.5, lat2=0.5, lon2=0.5, azi12=0.5, s12=0.5, S12=0.5)\n    test 908 pygeodesy.rhumb.solve: RhumbSolve7Tuple(lat1=Lat, lon1=Lon, lat2=Lat, lon2=Lon, azi12=Azimuth, s12=Meter, S12=Meter2)\n    test 909 pygeodesy.rhumb.solve.RhumbSolve7Tuple.lat1: 0.5\n    test 910 pygeodesy.rhumb.solve.RhumbSolve7Tuple.lon1: 0.5\n    test 911 pygeodesy.rhumb.solve.RhumbSolve7Tuple.lat2: 0.5\n    test 912 pygeodesy.rhumb.solve.RhumbSolve7Tuple.lon2: 0.5\n    test 913 pygeodesy.rhumb.solve.RhumbSolve7Tuple.azi12: 0.5\n    test 914 pygeodesy.rhumb.solve.RhumbSolve7Tuple.s12: 0.5\n    test 915 pygeodesy.rhumb.solve.RhumbSolve7Tuple.S12: 0.5\n    test 916 pygeodesy.rhumb.solve.RhumbSolve7Tuple._validated: True\n    test 917 pygeodesy.rhumb.solve.RhumbSolve7Tuple._validated: True\n    test 918 pygeodesy.triaxials.bases: Conformal5Tuple(x=0.5, y=0.5, z=0.5, scale=0.5, llk=0.5)\n    test 919 pygeodesy.triaxials.bases: Conformal5Tuple(x=Easting, y=Northing, z=_Pass, scale=Scalar, llk=_Pass)\n    test 920 pygeodesy.triaxials.bases.Conformal5Tuple.x: 0.5\n    test 921 pygeodesy.triaxials.bases.Conformal5Tuple.y: 0.5\n    test 922 pygeodesy.triaxials.bases.Conformal5Tuple.z: 0.5\n    test 923 pygeodesy.triaxials.bases.Conformal5Tuple.scale: 0.5\n    test 924 pygeodesy.triaxials.bases.Conformal5Tuple.llk: 0.5\n    test 925 pygeodesy.triaxials.bases.Conformal5Tuple._validated: True\n    test 926 pygeodesy.triaxials.bases.Conformal5Tuple._validated: True\n    test 927 pygeodesy.triaxials.conformal3: BetOmgGam5Tuple(bet=Ang, omg=Ang, gam=_Pass, scale=Scalar, llk=_Pass)\n    test 928 pygeodesy.triaxials.conformal3.BetOmgGam5Tuple.bet: 0.5\n    test 929 pygeodesy.triaxials.conformal3.BetOmgGam5Tuple.omg: 0.5\n    test 930 pygeodesy.triaxials.conformal3.BetOmgGam5Tuple.gam: 0.5\n    test 931 pygeodesy.triaxials.conformal3.BetOmgGam5Tuple.scale: 0.5\n    test 932 pygeodesy.triaxials.conformal3.BetOmgGam5Tuple.llk: 0.5\n    test 933 pygeodesy.triaxials.conformal3.BetOmgGam5Tuple._validated: True\n    test 934 pygeodesy.triaxials.conformal3.BetOmgGam5Tuple._validated: True\n    test 935 pygeodesy.triaxials.triaxial3: BetOmgAlp5Tuple(bet=Ang, omg=Ang, alp=_Pass, h=_HeightINT0, llk=_Pass)\n    test 936 pygeodesy.triaxials.triaxial3.BetOmgAlp5Tuple.bet: 0.5\n    test 937 pygeodesy.triaxials.triaxial3.BetOmgAlp5Tuple.omg: 0.5\n    test 938 pygeodesy.triaxials.triaxial3.BetOmgAlp5Tuple.alp: 0.5\n    test 939 pygeodesy.triaxials.triaxial3.BetOmgAlp5Tuple.h: 0.5\n    test 940 pygeodesy.triaxials.triaxial3.BetOmgAlp5Tuple.llk: 0.5\n    test 941 pygeodesy.triaxials.triaxial3.BetOmgAlp5Tuple._validated: True\n    test 942 pygeodesy.triaxials.triaxial3.BetOmgAlp5Tuple._validated: True\n    test 943 pygeodesy.triaxials.triaxial3: Cartesian5Tuple(x=0.5, y=0.5, z=0.5, h=0.5, llk=0.5)\n    test 944 pygeodesy.triaxials.triaxial3: Cartesian5Tuple(x=Scalar, y=Scalar, z=Scalar, h=Height, llk=_Pass)\n    test 945 pygeodesy.triaxials.triaxial3.Cartesian5Tuple.x: 0.5\n    test 946 pygeodesy.triaxials.triaxial3.Cartesian5Tuple.y: 0.5\n    test 947 pygeodesy.triaxials.triaxial3.Cartesian5Tuple.z: 0.5\n    test 948 pygeodesy.triaxials.triaxial3.Cartesian5Tuple.h: 0.5\n    test 949 pygeodesy.triaxials.triaxial3.Cartesian5Tuple.llk: 0.5\n    test 950 pygeodesy.triaxials.triaxial3.Cartesian5Tuple._validated: True\n    test 951 pygeodesy.triaxials.triaxial3.Cartesian5Tuple._validated: True\n    test 952 pygeodesy.triaxials.triaxial3: PhiLamZet5Tuple(phi=Ang, lam=Ang, zet=_Pass, h=_HeightINT0, llk=_Pass)\n    test 953 pygeodesy.triaxials.triaxial3.PhiLamZet5Tuple.phi: 0.5\n    test 954 pygeodesy.triaxials.triaxial3.PhiLamZet5Tuple.lam: 0.5\n    test 955 pygeodesy.triaxials.triaxial3.PhiLamZet5Tuple.zet: 0.5\n    test 956 pygeodesy.triaxials.triaxial3.PhiLamZet5Tuple.h: 0.5\n    test 957 pygeodesy.triaxials.triaxial3.PhiLamZet5Tuple.llk: 0.5\n    test 958 pygeodesy.triaxials.triaxial3.PhiLamZet5Tuple._validated: True\n    test 959 pygeodesy.triaxials.triaxial3.PhiLamZet5Tuple._validated: True\n    test 960 pygeodesy.triaxials.triaxial5: BetaOmega2Tuple(beta=0.5, omega=0.5)\n    test 961 pygeodesy.triaxials.triaxial5: BetaOmega2Tuple(beta=_Pass, omega=_Pass)\n    test 962 pygeodesy.triaxials.triaxial5.BetaOmega2Tuple.beta: 0.5\n    test 963 pygeodesy.triaxials.triaxial5.BetaOmega2Tuple.omega: 0.5\n    test 964 pygeodesy.triaxials.triaxial5.BetaOmega2Tuple._validated: True\n    test 965 pygeodesy.triaxials.triaxial5.BetaOmega2Tuple._validated: True\n    test 966 pygeodesy.triaxials.triaxial5: BetaOmega3Tuple(beta=0.5, omega=0.5, height=0.5)\n    test 967 pygeodesy.triaxials.triaxial5: BetaOmega3Tuple(beta=_Pass, omega=_Pass, height=Meter)\n    test 968 pygeodesy.triaxials.triaxial5.BetaOmega3Tuple.beta: 0.5\n    test 969 pygeodesy.triaxials.triaxial5.BetaOmega3Tuple.omega: 0.5\n    test 970 pygeodesy.triaxials.triaxial5.BetaOmega3Tuple.height: 0.5\n    test 971 pygeodesy.triaxials.triaxial5.BetaOmega3Tuple._validated: True\n    test 972 pygeodesy.triaxials.triaxial5.BetaOmega3Tuple._validated: True\n    test 973 pygeodesy.triaxials.triaxial5: Conformal2Tuple(x=0.5, y=0.5)\n    test 974 pygeodesy.triaxials.triaxial5: Conformal2Tuple(x=_Pass, y=_Pass)\n    test 975 pygeodesy.triaxials.triaxial5.Conformal2Tuple.x: 0.5\n    test 976 pygeodesy.triaxials.triaxial5.Conformal2Tuple.y: 0.5\n    test 977 pygeodesy.triaxials.triaxial5.Conformal2Tuple._validated: True\n    test 978 pygeodesy.triaxials.triaxial5.Conformal2Tuple._validated: True\n    test 979 pygeodesy.named._NamedTuple._validated: False\n\n    all 979 testNamedTuples.py tests passed (pygeodesy 26.3.26 Python 3.13.12 64bit arm64 coverage 7.10.7 geographiclib 2.1 numpy 2.3.3 scipy 1.16.2 Math 2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 macOS 26.3.1 isLazy 1 -W  default) 59.371 ms\nrunning /Library/Framewo....n3.13 -W default ~/PyGeodesy/test/testNavlabExamples.py\n./pygeodesy/ellipsoidalNvector.py:61: DeprecationWarning: class L{Ned<pygeodesy.ellipsoidalNvector.Ned>} has been DEPRECATED on 2024.02.04, use class L{pygeodesy.Ned}.\n  deprecated_class(self.__class__)\n./test/testNavlabExamples.py:41: DeprecationWarning: method L{toRepr<pygeodesy.ellipsoidalNvector.Ned.toRepr>} has been DEPRECATED, use class L{pygeodesy.Ned}.\n  t.test(1, 'delta', delta.toRepr(prec=3), '[L:470357.384, B:45.109°, E:-2.12°]')  # DEPRECATED\n./test/testNavlabExamples.py:43: DeprecationWarning: Property_RO L{bearing<pygeodesy.ellipsoidalNvector.Ned.bearing>} has been DEPRECATED, use C{azimuth}.\n  t.test(1, 'bearing', delta.bearing, 45.109, fmt='%.3f')  # 45.109°\n./test/testNavlabExamples.py:44: DeprecationWarning: Property_RO L{length<pygeodesy.ellipsoidalNvector.Ned.length>} has been DEPRECATED, use C{slantrange}.\n  t.test(1, 'length', delta.length, 470357.384, fmt='%.3f')  # 470357.384 m\n./test/testNavlabExamples.py:63: DeprecationWarning: method L{toRepr<pygeodesy.ellipsoidalNvector.Ned.toRepr>} has been DEPRECATED, use class L{pygeodesy.Ned}.\n  t.test(2, 'delta', delta.toRepr(prec=3), '[L:3606.938, B:33.69°, E:-1.589°]')  # DEPRECATED\n./pygeodesy/ellipsoidalNvector.py:247: DeprecationWarning: Property_RO L{ned<pygeodesy.ellipsoidalNvector.Ned.ned>} has been DEPRECATED, use property C{ned4}.\n  dn = delta.ned[:3]  # XXX Ned4Tuple.to3Tuple\n./pygeodesy/deprecated/classes.py:33: DeprecationWarning: class L{Ned3Tuple<pygeodesy.deprecated.classes.Ned3Tuple>} has been DEPRECATED, use class L{Ned4Tuple}, ignoring item C{ltp}.\n  deprecated_class(cls)\n./test/testNavlabExamples.py:71: DeprecationWarning: method L{toRepr<pygeodesy.ellipsoidalNvector.Ned.toRepr>} has been DEPRECATED, use class L{pygeodesy.Ned}.\n  t.test(2, 'delta', delta.toRepr(prec=3), '[L:116807.681, B:222.493°, E:-0.524°]')  # DEPRECATED\n./pygeodesy/ellipsoidalKarney.py:94: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return self.datum.ellipsoid.geodesic\n./test/testNavlabExamples.py:143: DeprecationWarning: function L{toNed<pygeodesy.ellipsoidalNvector.toNed>} has been DEPRECATED, use L{pygeodesy.Aer}C{(bearing, elevation, distance).xyzLocal.toNed(B{Ned}, name=B{name})} or L{XyzLocal}C{(pygeodesy.Aer(bearing, elevation, distance)).toNed(B{Ned}, name=B{name})}.\n  d = ellipsoidalNvector.toNed(116809.178, 222.493, -0.5416)\n./test/testNavlabExamples.py:145: DeprecationWarning: Property_RO L{bearing<pygeodesy.ellipsoidalNvector.Ned.bearing>} has been DEPRECATED, use C{azimuth}.\n  TestsBase.test(t, 'bearing',   d.bearing, '227.507',  fmt='%.3f')  # '222.493'\n./test/testNavlabExamples.py:147: DeprecationWarning: Property_RO L{length<pygeodesy.ellipsoidalNvector.Ned.length>} has been DEPRECATED, use C{slantrange}.\n  TestsBase.test(t, 'length',    d.length, '116809.178',  fmt='%.3f')\n./test/testNavlabExamples.py:148: DeprecationWarning: method L{toVector3d<pygeodesy.ellipsoidalNvector.Ned.toVector3d>} has been DEPRECATED, use property L{xyz}.\n  v = d.toVector3d()\n\n    testing testNavlabExamples.py 23.03.27 isLazy=1\n    test 1 Example 1 delta: [331730.863, 332998.501, 17398.304]\n    test 2 Example 1 delta: [L:470357.384, B:45.109°, E:-2.12°]\n    test 3 Example 1 elevation: -2.1198\n    test 4 Example 1 bearing: 45.109\n    test 5 Example 1 length: 470357.384\n\n    test 6 Example 1 delta: [331730.863, 332998.501, 17398.304]\n    test 7 Example 1 delta: <class 'pygeodesy.ltpTuples.Ned'>\n    test 8 Example 1 delta: (331730.863099, 332998.501491, 17398.304211, Ltp(lat0=1.0, lon0=2.0, height0=3.0, M=EcefMatrix(_0_0_=-0.034899, _0_1_=-0.017442, _0_2_=0.999239, _1_0_=0.999391, _1_1_=-0.000609, _1_2_=0.034894, _2_0_=0.0, _2_1_=0.999848, _2_2_=0.017452), ecef=EcefVeness(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name=''))\n    test 9 Example 1 delta: <class 'pygeodesy.ltpTuples.Ned4Tuple'>\n    test 10 Example 1 delta: <class 'pygeodesy.ecef.EcefVeness'>\n\n    test 11 Example 2 LatLon: 53.301°N, 063.435°E, +400.00m\n    test 12 Example 2 toNvector: (0.267, 0.535, 0.802, +400.00)\n    test 13 Example 2 delta: [3000.0, 2000.0, 100.0]\n    test 14 Example 2 delta: [L:3606.938, B:33.69°, E:-1.589°]\n    test 15 Example 2 destinationNed: 53.327702°N, 063.465119°E, +296.01m  FAILED, KNOWN, expected 53.327726°N, 063.464965°E, +299.138m\n    test 16 Example 2 delta: [-86126, -78900, 1069]\n    test 17 Example 2 delta: [L:116807.681, B:222.493°, E:-0.524°]\n    test 18 Example 2 destinationNed: 48.88667°N, 002.37472°E\n\n    test 19 Example 3 toLatLon: 39.379°N, 048.013°W, +4702059.83m\n\n    test 20 Example 4 toCartesian: [6373290.277, 222560.201, 110568.827]\n\n    test 21 Example 5 distanceTo: 332457\n\n    test 22 Example 6 intermediateChordTo: 89.799981°N, 180.0°E\n    test 23 Example 6 intermediateTo: 89.8°N, 180.0°E\n    test 24 Example 6 intermediateChordTo: 51.372294°N, 000.707192°E\n    test 25 Example 6 intermediateTo: 51.372084°N, 000.707337°E\n\n    test 26 Example 7 meanOf: 67.2362°N, 006.9175°W\n\n    test 27 Example 8 destination(pygeodesy.sphericalNvector): 79.991549°N, 090.017698°W\n    test 28 Example 8 destination(pygeodesy.sphericalTrigonometry): 79.991549°N, 090.017698°W\n    test 29 Example 8 destination(pygeodesy.ellipsoidalVincenty): 79.991584°N, 090.017621°W\n    test 30 Example 8 destination(pygeodesy.ellipsoidalKarney): 79.991584°N, 090.017621°W\n    test 31 Example 8 destination(pygeodesy.ellipsoidalExact): 79.991584°N, 090.017621°W\n    test 32 Example 8 destination(pygeodesy.ellipsoidalGeodSolve): 79.991584°N, 090.017621°W\n\n    test 33 Example 9 intersection: 40.318643°N, 055.901868°E\n\n    test 34 Example 10 crossTrackDistance: 11118\n\n    test 35 toNed: [-78901.1, -86126.6, 1104.1]\n    test 36 bearing: 227.507\n    test 37 elevation: -0.5416\n    test 38 length: 116809.178\n    test 39 toVector3d: (-86126.6, -78901.1, -1104.1)\n\n    19 of 39 testNavlabExamples.py tests (48.7%) FAILED, incl. 1 KNOWN plus 18 DeprecationWarnings (pygeodesy 26.3.26 Python 3.13.12 64bit arm64 coverage 7.10.7 geographiclib 2.1 numpy 2.3.3 scipy 1.16.2 Math 2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 macOS 26.3.1 isLazy 1 -W  default) 61.981 ms\nrunning /Library/Framewo....n3.13 -W default ~/PyGeodesy/test/testOsgr.py\n./test/testOsgr.py:25: DeprecationWarning: method L{convertDatum<pygeodesy.ellipsoidalNvector.LatLon.convertDatum>} has been DEPRECATED, use method L{toDatum}.\n  r = p.convertDatum(Datums.OSGB36)\n./test/testOsgr.py:27: DeprecationWarning: method L{convertDatum<pygeodesy.ellipsoidalNvector.LatLon.convertDatum>} has been DEPRECATED, use method L{toDatum}.\n  r = r.convertDatum(Datums.WGS84)\n./test/testOsgr.py:25: DeprecationWarning: method L{convertDatum<pygeodesy.ellipsoidalVincenty.LatLon.convertDatum>} has been DEPRECATED, use method L{toDatum}.\n  r = p.convertDatum(Datums.OSGB36)\n./test/testOsgr.py:27: DeprecationWarning: method L{convertDatum<pygeodesy.ellipsoidalVincenty.LatLon.convertDatum>} has been DEPRECATED, use method L{toDatum}.\n  r = r.convertDatum(Datums.WGS84)\n./test/testOsgr.py:25: DeprecationWarning: method L{convertDatum<pygeodesy.ellipsoidalKarney.LatLon.convertDatum>} has been DEPRECATED, use method L{toDatum}.\n  r = p.convertDatum(Datums.OSGB36)\n./test/testOsgr.py:27: DeprecationWarning: method L{convertDatum<pygeodesy.ellipsoidalKarney.LatLon.convertDatum>} has been DEPRECATED, use method L{toDatum}.\n  r = r.convertDatum(Datums.WGS84)\n./pygeodesy/ellipsoidalKarney.py:94: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return self.datum.ellipsoid.geodesic\n./test/testOsgr.py:25: DeprecationWarning: method L{convertDatum<pygeodesy.ellipsoidalExact.LatLon.convertDatum>} has been DEPRECATED, use method L{toDatum}.\n  r = p.convertDatum(Datums.OSGB36)\n./test/testOsgr.py:27: DeprecationWarning: method L{convertDatum<pygeodesy.ellipsoidalExact.LatLon.convertDatum>} has been DEPRECATED, use method L{toDatum}.\n  r = r.convertDatum(Datums.WGS84)\n\n    testing testOsgr.py 23.03.27 (module pygeodesy.osgr 25.05.12) isLazy=1\n\n    testOSgr(pygeodesy.ellipsoidalNvector, 25.05.12)\n    test 1 WGS84: 51.4778°N, 000.0016°W\n    test 2 OSGB36: 51.477284°N, 000.00002°E\n    test 3 WGS84: 51.4778°N, 000.0016°W\n    test 4 OSgr1: TG 51409 13177\n    test 5 OSgr1: [G:TG, E:51409, N:13177]\n    test 6 iteration: None\n    test 7 toLatLon1: 52°39′28.72″N, 001°42′57.79″E\n    test 8 toLatLon1: 52.657979°N, 001.716052°E\n    test 9 iteration: 4\n    test 10 toOsgr1: 651409.903,313177.270\n    test 11 toOsgr1: 651409.903,313177.270\n    test 12 toOsgr1: TG5140990313177270\n    test 13 toLatLon2: 52°39′27.25″N, 001°43′04.52″E\n    test 14 toLatLon2: 52.65757°N, 001.717922°E  FAILED, KNOWN, expected 52.657570°N, 001.717922°E\n    test 15 iteration: 4\n    test 16 toOsgr2: 651409,313177\n    test 17 toOsgr2: 651409,313177\n    test 18 toOsgr3: TG 51409 13177\n    test 19 toLatLon3: (52.65798, 1.71605, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 20 toOsgr4: TG 51409 13177\n    test 21 toLatLon4: (52.657570000, 1.717910000, Datum(name='OSGB36', ellipsoid=Ellipsoids.Airy1830, transform=Transforms.OSGB36))\n    test 22 toLatLon4: (52.657569999, 1.717910045, Datum(name='OSGB36', ellipsoid=Ellipsoids.Airy1830, transform=Transforms.OSGB36))\n    test 23 toLatLon4: (52.657978296, 1.716040366, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 24 toLatLon4: (52.657978295, 1.716040411, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 25 toOsgr5: 0.001\n    test 26 toOsgr5: TG5140900013177000\n    test 27 toOsgr5: 651409.000,313177.000\n    test 28 toLatLon5: (52.657976595, 1.716038422, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n\n    test 29 OSGR1: TG 48251 11932\n    test 30 OSGR1: [G:TG, E:48251, N:11932]\n    test 31 OSGR2: TG 51409 13177\n    test 32 OSGR2: [G:TG, E:51409, N:13177]\n    test 33 OSGR3: TG 51409 13177\n    test 34 OSGR3: [G:TG, E:51409, N:13177]\n    test 35 OSGR4: TG 51409 13177\n    test 36 OSGR4: [G:TG, E:51409, N:13177]\n    test 37 OSGR5: 651409,313177\n    test 38 OSGR5: TG51409001317700\n    test 39 OSGR5: 651409,313177\n    test 40 OSGR5: 651409.000000,313177.000000\n    test 41 OSGR5: 651409.00,313177.00\n    test 42 OSGR5: [OSGR:651409.000,313177.000]\n    test 43 OSGR5: [OSGR:651409,313177]\n    test 44 OSGR5: [OSGR:651409.000,313177.000]\n    test 45 OSGR5: [OSGR:651,313]\n    test 46 OSGR6: 651409.000,313177.000\n    test 47 OSGR6: 651409,313177\n    test 48 OSGR6: (651409, 313177)\n    test 49 OSGR6: 651409,313177\n    test 50 OSGR6: 651409,313177\n    test 51 OSGR6: (651409, 313177)\n    test 52 OSGR6: 651409 313177\n\n    test 53 issue: 38\n    test 54 toOsgr: [G:TL, E:29158, N:35174]\n    test 55 toOsgr: 529158.072, 235174.785\n    test 56 toOsgr: OSGB36\n    test 57 toLatLonOSGB36: 51°59′58.37″N, 000°07′06.14″W\n    test 58 toLatLonOSGB36: OSGB36\n    test 59 toLatLonWGS84 : 52°00′00.0″N, 000°07′12.0″W\n    test 60 toLatLonWGS84 : WGS84\n\n    test 61 Osgr: [G:TQ, E:32014, N:23971]\n    test 62 Osgr: 532014.0, 123971.0\n    test 63 Osgr: OSGB36\n    test 64 toLatLonOSGB36: 50.999425N, 000.118417W\n    test 65 toLatLonOSGB36: OSGB36\n    test 66 toLatLonWGS84 : 50.999995N, 000.120004W\n    test 67 toLatLonWGS84 : WGS84\n    test 68 parseOSGR: [G:TQ, E:32014, N:23971]\n    test 69 parseOSGR: 532014.0, 123971.0\n    test 70 parseOSGR: OSGB36\n    test 71 toLatLonOSGB36: 50.999425N, 000.118417W\n    test 72 toLatLonOSGB36: OSGB36\n    test 73 toLatLonWGS84: 50.999995N, 000.120004W\n    test 74 toLatLonWGS84: WGS84\n    test 75 toOsgr: [G:TQ, E:32013, N:23971]\n    test 76 toOsgr: 532013.969, 123971.046\n    test 77 toOsgr: OSGB36\n    test 78 toLatLonOSGB36: 50.999426N, 000.118417W\n    test 79 toLatLonOSGB36: OSGB36\n    test 80 toLatLonWGS84 : 50.999995N, 000.120004W\n    test 81 toLatLonWGS84 : WGS84\n    test 82 toOsgr: [G:TQ, E:48853, N:24427]\n    test 83 toOsgr: 548853.602, 124427.985\n    test 84 toOsgr: OSGB36\n    test 85 toLatLonOSGB36: 50.999422N, 000.121618E\n    test 86 toLatLonOSGB36: OSGB36\n    test 87 toLatLonWGS84 : 50.999995N, 000.120004E\n    test 88 toLatLonWGS84 : WGS84\n\n    test 89 LatLon: 49.926244°N, 006.297934°W\n    test 90 datum: WGS84\n    test 91 datum: OSGB36\n    test 92 toOsgr: [G:SV, E:91645, N:11753]\n    test 93 datum: OSGB36\n    test 94 LatLon: 49.926244°N, 006.297934°W\n    test 95 datum: WGS84\n    test 96 distanceTo: 0.0103  FAILED, KNOWN, expected 0.0104\n\n    test 97 prec=-2: [G:SV, E:91600, N:11700]\n\n    test 98 toLatLon: 52.0N, 000.12W\n    test 99 toLatLon: 52.0N, 000.12W\n    test 100 toLatLon: 52.0N, 000.12W\n    test 101 toLatLon: 52.0N, 000.12W\n    test 102 toLatLon: 52.0N, 000.12W\n    test 103 toLatLon: 52.0N, 000.12W\n    test 104 toLatLon: 52.0N, 000.12W\n    test 105 toLatLon: 52.0N, 000.12W\n\n    testOSgr(pygeodesy.ellipsoidalVincenty, 25.05.26)\n    test 106 WGS84: 51.4778°N, 000.0016°W\n    test 107 OSGB36: 51.477284°N, 000.00002°E\n    test 108 WGS84: 51.4778°N, 000.0016°W\n    test 109 OSgr1: TG 51409 13177\n    test 110 OSgr1: [G:TG, E:51409, N:13177]\n    test 111 iteration: None\n    test 112 toLatLon1: 52°39′28.72″N, 001°42′57.79″E\n    test 113 toLatLon1: 52.657979°N, 001.716052°E\n    test 114 iteration: 4\n    test 115 toOsgr1: 651409.903,313177.270\n    test 116 toOsgr1: 651409.903,313177.270\n    test 117 toOsgr1: TG5140990313177270\n    test 118 toLatLon2: 52°39′27.25″N, 001°43′04.52″E\n    test 119 toLatLon2: 52.65757°N, 001.717922°E  FAILED, KNOWN, expected 52.657570°N, 001.717922°E\n    test 120 iteration: 4\n    test 121 toOsgr2: 651409,313177\n    test 122 toOsgr2: 651409,313177\n    test 123 toOsgr3: TG 51409 13177\n    test 124 toLatLon3: (52.65798, 1.71605, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 125 toOsgr4: TG 51409 13177\n    test 126 toLatLon4: (52.657570000, 1.717910000, Datum(name='OSGB36', ellipsoid=Ellipsoids.Airy1830, transform=Transforms.OSGB36))\n    test 127 toLatLon4: (52.657569999, 1.717910045, Datum(name='OSGB36', ellipsoid=Ellipsoids.Airy1830, transform=Transforms.OSGB36))\n    test 128 toLatLon4: (52.657978296, 1.716040366, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 129 toLatLon4: (52.657978295, 1.716040411, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 130 toOsgr5: 0.001\n    test 131 toOsgr5: TG5140900013177000\n    test 132 toOsgr5: 651409.000,313177.000\n    test 133 toLatLon5: (52.657976595, 1.716038422, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n\n    test 134 OSGR1: TG 48251 11932\n    test 135 OSGR1: [G:TG, E:48251, N:11932]\n    test 136 OSGR2: TG 51409 13177\n    test 137 OSGR2: [G:TG, E:51409, N:13177]\n    test 138 OSGR3: TG 51409 13177\n    test 139 OSGR3: [G:TG, E:51409, N:13177]\n    test 140 OSGR4: TG 51409 13177\n    test 141 OSGR4: [G:TG, E:51409, N:13177]\n    test 142 OSGR5: 651409,313177\n    test 143 OSGR5: TG51409001317700\n    test 144 OSGR5: 651409,313177\n    test 145 OSGR5: 651409.000000,313177.000000\n    test 146 OSGR5: 651409.00,313177.00\n    test 147 OSGR5: [OSGR:651409.000,313177.000]\n    test 148 OSGR5: [OSGR:651409,313177]\n    test 149 OSGR5: [OSGR:651409.000,313177.000]\n    test 150 OSGR5: [OSGR:651,313]\n    test 151 OSGR6: 651409.000,313177.000\n    test 152 OSGR6: 651409,313177\n    test 153 OSGR6: (651409, 313177)\n    test 154 OSGR6: 651409,313177\n    test 155 OSGR6: 651409,313177\n    test 156 OSGR6: (651409, 313177)\n    test 157 OSGR6: 651409 313177\n\n    test 158 issue: 38\n    test 159 toOsgr: [G:TL, E:29158, N:35174]\n    test 160 toOsgr: 529158.072, 235174.785\n    test 161 toOsgr: OSGB36\n    test 162 toLatLonOSGB36: 51°59′58.37″N, 000°07′06.14″W\n    test 163 toLatLonOSGB36: OSGB36\n    test 164 toLatLonWGS84 : 52°00′00.0″N, 000°07′12.0″W\n    test 165 toLatLonWGS84 : WGS84\n\n    test 166 Osgr: [G:TQ, E:32014, N:23971]\n    test 167 Osgr: 532014.0, 123971.0\n    test 168 Osgr: OSGB36\n    test 169 toLatLonOSGB36: 50.999425N, 000.118417W\n    test 170 toLatLonOSGB36: OSGB36\n    test 171 toLatLonWGS84 : 50.999995N, 000.120004W\n./test/testOsgr.py:25: DeprecationWarning: method L{convertDatum<pygeodesy.ellipsoidalGeodSolve.LatLon.convertDatum>} has been DEPRECATED, use method L{toDatum}.\n  r = p.convertDatum(Datums.OSGB36)\n./test/testOsgr.py:27: DeprecationWarning: method L{convertDatum<pygeodesy.ellipsoidalGeodSolve.LatLon.convertDatum>} has been DEPRECATED, use method L{toDatum}.\n  r = r.convertDatum(Datums.WGS84)\n    test 172 toLatLonWGS84 : WGS84\n    test 173 parseOSGR: [G:TQ, E:32014, N:23971]\n    test 174 parseOSGR: 532014.0, 123971.0\n    test 175 parseOSGR: OSGB36\n    test 176 toLatLonOSGB36: 50.999425N, 000.118417W\n    test 177 toLatLonOSGB36: OSGB36\n    test 178 toLatLonWGS84: 50.999995N, 000.120004W\n    test 179 toLatLonWGS84: WGS84\n    test 180 toOsgr: [G:TQ, E:32013, N:23971]\n    test 181 toOsgr: 532013.969, 123971.046\n    test 182 toOsgr: OSGB36\n    test 183 toLatLonOSGB36: 50.999426N, 000.118417W\n    test 184 toLatLonOSGB36: OSGB36\n    test 185 toLatLonWGS84 : 50.999995N, 000.120004W\n    test 186 toLatLonWGS84 : WGS84\n    test 187 toOsgr: [G:TQ, E:48853, N:24427]\n    test 188 toOsgr: 548853.602, 124427.985\n    test 189 toOsgr: OSGB36\n    test 190 toLatLonOSGB36: 50.999422N, 000.121618E\n    test 191 toLatLonOSGB36: OSGB36\n    test 192 toLatLonWGS84 : 50.999995N, 000.120004E\n    test 193 toLatLonWGS84 : WGS84\n\n    test 194 LatLon: 49.926244°N, 006.297934°W\n    test 195 datum: WGS84\n    test 196 datum: OSGB36\n    test 197 toOsgr: [G:SV, E:91645, N:11753]\n    test 198 datum: OSGB36\n    test 199 LatLon: 49.926244°N, 006.297934°W\n    test 200 datum: WGS84\n    test 201 distanceTo: 0.0104\n\n    test 202 prec=-2: [G:SV, E:91600, N:11700]\n\n    test 203 toLatLon: 52.0N, 000.12W\n    test 204 toLatLon: 52.0N, 000.12W\n    test 205 toLatLon: 52.0N, 000.12W\n    test 206 toLatLon: 52.0N, 000.12W\n    test 207 toLatLon: 52.0N, 000.12W\n    test 208 toLatLon: 52.0N, 000.12W\n    test 209 toLatLon: 52.0N, 000.12W\n    test 210 toLatLon: 52.0N, 000.12W\n\n    testOSgr(pygeodesy.ellipsoidalKarney, 25.05.27)\n    test 211 WGS84: 51.4778°N, 000.0016°W\n    test 212 OSGB36: 51.477284°N, 000.00002°E\n    test 213 WGS84: 51.4778°N, 000.0016°W\n    test 214 OSgr1: TG 51409 13177\n    test 215 OSgr1: [G:TG, E:51409, N:13177]\n    test 216 iteration: None\n    test 217 toLatLon1: 52°39′28.72″N, 001°42′57.79″E\n    test 218 toLatLon1: 52.657979°N, 001.716052°E\n    test 219 iteration: 4\n    test 220 toOsgr1: 651409.903,313177.270\n    test 221 toOsgr1: 651409.903,313177.270\n    test 222 toOsgr1: TG5140990313177270\n    test 223 toLatLon2: 52°39′27.25″N, 001°43′04.52″E\n    test 224 toLatLon2: 52.65757°N, 001.717922°E  FAILED, KNOWN, expected 52.657570°N, 001.717922°E\n    test 225 iteration: 4\n    test 226 toOsgr2: 651409,313177\n    test 227 toOsgr2: 651409,313177\n    test 228 toOsgr3: TG 51409 13177\n    test 229 toLatLon3: (52.65798, 1.71605, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 230 toOsgr4: TG 51409 13177\n    test 231 toLatLon4: (52.657570000, 1.717910000, Datum(name='OSGB36', ellipsoid=Ellipsoids.Airy1830, transform=Transforms.OSGB36))\n    test 232 toLatLon4: (52.657569999, 1.717910045, Datum(name='OSGB36', ellipsoid=Ellipsoids.Airy1830, transform=Transforms.OSGB36))\n    test 233 toLatLon4: (52.657978296, 1.716040366, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 234 toLatLon4: (52.657978295, 1.716040411, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 235 toOsgr5: 0.001\n    test 236 toOsgr5: TG5140900013177000\n    test 237 toOsgr5: 651409.000,313177.000\n    test 238 toLatLon5: (52.657976595, 1.716038422, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n\n    test 239 OSGR1: TG 48251 11932\n    test 240 OSGR1: [G:TG, E:48251, N:11932]\n    test 241 OSGR2: TG 51409 13177\n    test 242 OSGR2: [G:TG, E:51409, N:13177]\n    test 243 OSGR3: TG 51409 13177\n    test 244 OSGR3: [G:TG, E:51409, N:13177]\n    test 245 OSGR4: TG 51409 13177\n    test 246 OSGR4: [G:TG, E:51409, N:13177]\n    test 247 OSGR5: 651409,313177\n    test 248 OSGR5: TG51409001317700\n    test 249 OSGR5: 651409,313177\n    test 250 OSGR5: 651409.000000,313177.000000\n    test 251 OSGR5: 651409.00,313177.00\n    test 252 OSGR5: [OSGR:651409.000,313177.000]\n    test 253 OSGR5: [OSGR:651409,313177]\n    test 254 OSGR5: [OSGR:651409.000,313177.000]\n    test 255 OSGR5: [OSGR:651,313]\n    test 256 OSGR6: 651409.000,313177.000\n    test 257 OSGR6: 651409,313177\n    test 258 OSGR6: (651409, 313177)\n    test 259 OSGR6: 651409,313177\n    test 260 OSGR6: 651409,313177\n    test 261 OSGR6: (651409, 313177)\n    test 262 OSGR6: 651409 313177\n\n    test 263 issue: 38\n    test 264 toOsgr: [G:TL, E:29158, N:35174]\n    test 265 toOsgr: 529158.072, 235174.785\n    test 266 toOsgr: OSGB36\n    test 267 toLatLonOSGB36: 51°59′58.37″N, 000°07′06.14″W\n    test 268 toLatLonOSGB36: OSGB36\n    test 269 toLatLonWGS84 : 52°00′00.0″N, 000°07′12.0″W\n    test 270 toLatLonWGS84 : WGS84\n\n    test 271 Osgr: [G:TQ, E:32014, N:23971]\n    test 272 Osgr: 532014.0, 123971.0\n    test 273 Osgr: OSGB36\n    test 274 toLatLonOSGB36: 50.999425N, 000.118417W\n    test 275 toLatLonOSGB36: OSGB36\n    test 276 toLatLonWGS84 : 50.999995N, 000.120004W\n    test 277 toLatLonWGS84 : WGS84\n    test 278 parseOSGR: [G:TQ, E:32014, N:23971]\n    test 279 parseOSGR: 532014.0, 123971.0\n    test 280 parseOSGR: OSGB36\n    test 281 toLatLonOSGB36: 50.999425N, 000.118417W\n    test 282 toLatLonOSGB36: OSGB36\n    test 283 toLatLonWGS84: 50.999995N, 000.120004W\n    test 284 toLatLonWGS84: WGS84\n    test 285 toOsgr: [G:TQ, E:32013, N:23971]\n    test 286 toOsgr: 532013.969, 123971.046\n    test 287 toOsgr: OSGB36\n    test 288 toLatLonOSGB36: 50.999426N, 000.118417W\n    test 289 toLatLonOSGB36: OSGB36\n    test 290 toLatLonWGS84 : 50.999995N, 000.120004W\n    test 291 toLatLonWGS84 : WGS84\n    test 292 toOsgr: [G:TQ, E:48853, N:24427]\n    test 293 toOsgr: 548853.602, 124427.985\n    test 294 toOsgr: OSGB36\n    test 295 toLatLonOSGB36: 50.999422N, 000.121618E\n    test 296 toLatLonOSGB36: OSGB36\n    test 297 toLatLonWGS84 : 50.999995N, 000.120004E\n    test 298 toLatLonWGS84 : WGS84\n\n    test 299 LatLon: 49.926244°N, 006.297934°W\n    test 300 datum: WGS84\n    test 301 datum: OSGB36\n    test 302 toOsgr: [G:SV, E:91645, N:11753]\n    test 303 datum: OSGB36\n    test 304 LatLon: 49.926244°N, 006.297934°W\n    test 305 datum: WGS84\n    test 306 distanceTo: 0.0104\n\n    test 307 prec=-2: [G:SV, E:91600, N:11700]\n\n    test 308 toLatLon: 52.0N, 000.12W\n    test 309 toLatLon: 52.0N, 000.12W\n    test 310 toLatLon: 52.0N, 000.12W\n    test 311 toLatLon: 52.0N, 000.12W\n    test 312 toLatLon: 52.0N, 000.12W\n    test 313 toLatLon: 52.0N, 000.12W\n    test 314 toLatLon: 52.0N, 000.12W\n    test 315 toLatLon: 52.0N, 000.12W\n\n    testOSgr(pygeodesy.ellipsoidalExact, 25.08.28)\n    test 316 WGS84: 51.4778°N, 000.0016°W\n    test 317 OSGB36: 51.477284°N, 000.00002°E\n    test 318 WGS84: 51.4778°N, 000.0016°W\n    test 319 OSgr1: TG 51409 13177\n    test 320 OSgr1: [G:TG, E:51409, N:13177]\n    test 321 iteration: None\n    test 322 toLatLon1: 52°39′28.72″N, 001°42′57.79″E\n    test 323 toLatLon1: 52.657979°N, 001.716052°E\n    test 324 iteration: 4\n    test 325 toOsgr1: 651409.903,313177.270\n    test 326 toOsgr1: 651409.903,313177.270\n    test 327 toOsgr1: TG5140990313177270\n    test 328 toLatLon2: 52°39′27.25″N, 001°43′04.52″E\n    test 329 toLatLon2: 52.65757°N, 001.717922°E  FAILED, KNOWN, expected 52.657570°N, 001.717922°E\n    test 330 iteration: 4\n    test 331 toOsgr2: 651409,313177\n    test 332 toOsgr2: 651409,313177\n    test 333 toOsgr3: TG 51409 13177\n    test 334 toLatLon3: (52.65798, 1.71605, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 335 toOsgr4: TG 51409 13177\n    test 336 toLatLon4: (52.657570000, 1.717910000, Datum(name='OSGB36', ellipsoid=Ellipsoids.Airy1830, transform=Transforms.OSGB36))\n    test 337 toLatLon4: (52.657569999, 1.717910045, Datum(name='OSGB36', ellipsoid=Ellipsoids.Airy1830, transform=Transforms.OSGB36))\n    test 338 toLatLon4: (52.657978296, 1.716040366, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 339 toLatLon4: (52.657978295, 1.716040411, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 340 toOsgr5: 0.001\n    test 341 toOsgr5: TG5140900013177000\n    test 342 toOsgr5: 651409.000,313177.000\n    test 343 toLatLon5: (52.657976595, 1.716038422, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n\n    test 344 OSGR1: TG 48251 11932\n    test 345 OSGR1: [G:TG, E:48251, N:11932]\n    test 346 OSGR2: TG 51409 13177\n    test 347 OSGR2: [G:TG, E:51409, N:13177]\n    test 348 OSGR3: TG 51409 13177\n    test 349 OSGR3: [G:TG, E:51409, N:13177]\n    test 350 OSGR4: TG 51409 13177\n    test 351 OSGR4: [G:TG, E:51409, N:13177]\n    test 352 OSGR5: 651409,313177\n    test 353 OSGR5: TG51409001317700\n    test 354 OSGR5: 651409,313177\n    test 355 OSGR5: 651409.000000,313177.000000\n    test 356 OSGR5: 651409.00,313177.00\n    test 357 OSGR5: [OSGR:651409.000,313177.000]\n    test 358 OSGR5: [OSGR:651409,313177]\n    test 359 OSGR5: [OSGR:651409.000,313177.000]\n    test 360 OSGR5: [OSGR:651,313]\n    test 361 OSGR6: 651409.000,313177.000\n    test 362 OSGR6: 651409,313177\n    test 363 OSGR6: (651409, 313177)\n    test 364 OSGR6: 651409,313177\n    test 365 OSGR6: 651409,313177\n    test 366 OSGR6: (651409, 313177)\n    test 367 OSGR6: 651409 313177\n\n    test 368 issue: 38\n    test 369 toOsgr: [G:TL, E:29158, N:35174]\n    test 370 toOsgr: 529158.072, 235174.785\n    test 371 toOsgr: OSGB36\n    test 372 toLatLonOSGB36: 51°59′58.37″N, 000°07′06.14″W\n    test 373 toLatLonOSGB36: OSGB36\n    test 374 toLatLonWGS84 : 52°00′00.0″N, 000°07′12.0″W\n    test 375 toLatLonWGS84 : WGS84\n\n    test 376 Osgr: [G:TQ, E:32014, N:23971]\n    test 377 Osgr: 532014.0, 123971.0\n    test 378 Osgr: OSGB36\n    test 379 toLatLonOSGB36: 50.999425N, 000.118417W\n    test 380 toLatLonOSGB36: OSGB36\n    test 381 toLatLonWGS84 : 50.999995N, 000.120004W\n    test 382 toLatLonWGS84 : WGS84\n    test 383 parseOSGR: [G:TQ, E:32014, N:23971]\n    test 384 parseOSGR: 532014.0, 123971.0\n    test 385 parseOSGR: OSGB36\n    test 386 toLatLonOSGB36: 50.999425N, 000.118417W\n    test 387 toLatLonOSGB36: OSGB36\n    test 388 toLatLonWGS84: 50.999995N, 000.120004W\n    test 389 toLatLonWGS84: WGS84\n    test 390 toOsgr: [G:TQ, E:32013, N:23971]\n    test 391 toOsgr: 532013.969, 123971.046\n    test 392 toOsgr: OSGB36\n    test 393 toLatLonOSGB36: 50.999426N, 000.118417W\n    test 394 toLatLonOSGB36: OSGB36\n    test 395 toLatLonWGS84 : 50.999995N, 000.120004W\n    test 396 toLatLonWGS84 : WGS84\n    test 397 toOsgr: [G:TQ, E:48853, N:24427]\n    test 398 toOsgr: 548853.602, 124427.985\n    test 399 toOsgr: OSGB36\n    test 400 toLatLonOSGB36: 50.999422N, 000.121618E\n    test 401 toLatLonOSGB36: OSGB36\n    test 402 toLatLonWGS84 : 50.999995N, 000.120004E\n    test 403 toLatLonWGS84 : WGS84\n\n    test 404 LatLon: 49.926244°N, 006.297934°W\n    test 405 datum: WGS84\n    test 406 datum: OSGB36\n    test 407 toOsgr: [G:SV, E:91645, N:11753]\n    test 408 datum: OSGB36\n    test 409 LatLon: 49.926244°N, 006.297934°W\n    test 410 datum: WGS84\n    test 411 distanceTo: 0.0104\n\n    test 412 prec=-2: [G:SV, E:91600, N:11700]\n\n    test 413 toLatLon: 52.0N, 000.12W\n    test 414 toLatLon: 52.0N, 000.12W\n    test 415 toLatLon: 52.0N, 000.12W\n    test 416 toLatLon: 52.0N, 000.12W\n    test 417 toLatLon: 52.0N, 000.12W\n    test 418 toLatLon: 52.0N, 000.12W\n    test 419 toLatLon: 52.0N, 000.12W\n    test 420 toLatLon: 52.0N, 000.12W\n\n    testOSgr(pygeodesy.ellipsoidalGeodSolve, 25.08.28)\n    test 421 WGS84: 51.4778°N, 000.0016°W\n    test 422 OSGB36: 51.477284°N, 000.00002°E\n    test 423 WGS84: 51.4778°N, 000.0016°W\n    test 424 OSgr1: TG 51409 13177\n    test 425 OSgr1: [G:TG, E:51409, N:13177]\n    test 426 iteration: None\n    test 427 toLatLon1: 52°39′28.72″N, 001°42′57.79″E\n    test 428 toLatLon1: 52.657979°N, 001.716052°E\n    test 429 iteration: 4\n    test 430 toOsgr1: 651409.903,313177.270\n    test 431 toOsgr1: 651409.903,313177.270\n    test 432 toOsgr1: TG5140990313177270\n    test 433 toLatLon2: 52°39′27.25″N, 001°43′04.52″E\n    test 434 toLatLon2: 52.65757°N, 001.717922°E  FAILED, KNOWN, expected 52.657570°N, 001.717922°E\n    test 435 iteration: 4\n    test 436 toOsgr2: 651409,313177\n    test 437 toOsgr2: 651409,313177\n    test 438 toOsgr3: TG 51409 13177\n    test 439 toLatLon3: (52.65798, 1.71605, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 440 toOsgr4: TG 51409 13177\n    test 441 toLatLon4: (52.657570000, 1.717910000, Datum(name='OSGB36', ellipsoid=Ellipsoids.Airy1830, transform=Transforms.OSGB36))\n    test 442 toLatLon4: (52.657569999, 1.717910045, Datum(name='OSGB36', ellipsoid=Ellipsoids.Airy1830, transform=Transforms.OSGB36))\n    test 443 toLatLon4: (52.657978296, 1.716040366, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 444 toLatLon4: (52.657978295, 1.716040411, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 445 toOsgr5: 0.001\n    test 446 toOsgr5: TG5140900013177000\n    test 447 toOsgr5: 651409.000,313177.000\n    test 448 toLatLon5: (52.657976595, 1.716038422, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n\n    test 449 OSGR1: TG 48251 11932\n    test 450 OSGR1: [G:TG, E:48251, N:11932]\n    test 451 OSGR2: TG 51409 13177\n    test 452 OSGR2: [G:TG, E:51409, N:13177]\n    test 453 OSGR3: TG 51409 13177\n    test 454 OSGR3: [G:TG, E:51409, N:13177]\n    test 455 OSGR4: TG 51409 13177\n    test 456 OSGR4: [G:TG, E:51409, N:13177]\n    test 457 OSGR5: 651409,313177\n    test 458 OSGR5: TG51409001317700\n    test 459 OSGR5: 651409,313177\n    test 460 OSGR5: 651409.000000,313177.000000\n    test 461 OSGR5: 651409.00,313177.00\n    test 462 OSGR5: [OSGR:651409.000,313177.000]\n    test 463 OSGR5: [OSGR:651409,313177]\n    test 464 OSGR5: [OSGR:651409.000,313177.000]\n    test 465 OSGR5: [OSGR:651,313]\n    test 466 OSGR6: 651409.000,313177.000\n    test 467 OSGR6: 651409,313177\n    test 468 OSGR6: (651409, 313177)\n    test 469 OSGR6: 651409,313177\n    test 470 OSGR6: 651409,313177\n    test 471 OSGR6: (651409, 313177)\n    test 472 OSGR6: 651409 313177\n\n    test 473 issue: 38\n    test 474 toOsgr: [G:TL, E:29158, N:35174]\n    test 475 toOsgr: 529158.072, 235174.785\n    test 476 toOsgr: OSGB36\n    test 477 toLatLonOSGB36: 51°59′58.37″N, 000°07′06.14″W\n    test 478 toLatLonOSGB36: OSGB36\n    test 479 toLatLonWGS84 : 52°00′00.0″N, 000°07′12.0″W\n    test 480 toLatLonWGS84 : WGS84\n\n    test 481 Osgr: [G:TQ, E:32014, N:23971]\n    test 482 Osgr: 532014.0, 123971.0\n    test 483 Osgr: OSGB36\n    test 484 toLatLonOSGB36: 50.999425N, 000.118417W\n    test 485 toLatLonOSGB36: OSGB36\n    test 486 toLatLonWGS84 : 50.999995N, 000.120004W\n    test 487 toLatLonWGS84 : WGS84\n    test 488 parseOSGR: [G:TQ, E:32014, N:23971]\n    test 489 parseOSGR: 532014.0, 123971.0\n    test 490 parseOSGR: OSGB36\n    test 491 toLatLonOSGB36: 50.999425N, 000.118417W\n    test 492 toLatLonOSGB36: OSGB36\n    test 493 toLatLonWGS84: 50.999995N, 000.120004W\n    test 494 toLatLonWGS84: WGS84\n    test 495 toOsgr: [G:TQ, E:32013, N:23971]\n    test 496 toOsgr: 532013.969, 123971.046\n    test 497 toOsgr: OSGB36\n    test 498 toLatLonOSGB36: 50.999426N, 000.118417W\n    test 499 toLatLonOSGB36: OSGB36\n    test 500 toLatLonWGS84 : 50.999995N, 000.120004W\n    test 501 toLatLonWGS84 : WGS84\n    test 502 toOsgr: [G:TQ, E:48853, N:24427]\n    test 503 toOsgr: 548853.602, 124427.985\n    test 504 toOsgr: OSGB36\n    test 505 toLatLonOSGB36: 50.999422N, 000.121618E\n    test 506 toLatLonOSGB36: OSGB36\n    test 507 toLatLonWGS84 : 50.999995N, 000.120004E\n    test 508 toLatLonWGS84 : WGS84\n\n    test 509 LatLon: 49.926244°N, 006.297934°W\n    test 510 datum: WGS84\n    test 511 datum: OSGB36\n    test 512 toOsgr: [G:SV, E:91645, N:11753]\n    test 513 datum: OSGB36\n    test 514 LatLon: 49.926244°N, 006.297934°W\n    test 515 datum: WGS84\n    test 516 distanceTo: 0.0104\n\n    test 517 prec=-2: [G:SV, E:91600, N:11700]\n\n    test 518 toLatLon: 52.0N, 000.12W\n    test 519 toLatLon: 52.0N, 000.12W\n    test 520 toLatLon: 52.0N, 000.12W\n    test 521 toLatLon: 52.0N, 000.12W\n    test 522 toLatLon: 52.0N, 000.12W\n    test 523 toLatLon: 52.0N, 000.12W\n    test 524 toLatLon: 52.0N, 000.12W\n    test 525 toLatLon: 52.0N, 000.12W\n\n    17 of 525 testOsgr.py tests (3.2%) FAILED, incl. 6 KNOWN plus 11 DeprecationWarnings (pygeodesy 26.3.26 Python 3.13.12 64bit arm64 coverage 7.10.7 geographiclib 2.1 numpy 2.3.3 scipy 1.16.2 Math 2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 macOS 26.3.1 isLazy 1 -W  default) 216.457 ms\nrunning /Library/Framewo....n3.13 -W default ~/PyGeodesy/test/testPoints.py\n\n    testing testPoints.py 23.12.03 (module pygeodesy.points 25.05.12) isLazy=1\n    test 1 sizeof(LatLon_.__dict__): 48\n    test 2 LatLon2psxy.ABC: True\n    test 3 LatLon2psxy.epsilon: 2.220446049250313e-16\n    test 4 LatLon2psxy.epsilon: 0.0\n    test 5 LatLon2psxy.len: 69\n    test 6 LatLon2psxy.iter: 69\n    test 7 LatLon2psxy.slice1: 11\n    test 8 LatLon2psxy.slice2: <class 'pygeodesy.points.LatLon2psxy'>\n    test 9 LatLon2psxy.slice3: (-0.701418, 52.220485, LatLon_(52.220485°N, 000.701418°W))\n    test 10 LatLon2psxy.str/repr: LatLon2psxy('[LatLon_(52.220489°N, 000.701206°W) ... ][69]', closed=False, radius=None, wrap=False)\n    test 11 LatLon2psxy.find LL: 10\n    test 12 LatLon2psxy.find LL: -1\n    test 13 LatLon2psxy.count: 1\n    test 14 LatLon2psxy.index: 10\n    test 15 LatLon2psxy.rfind: 10\n    test 16 LatLon2psxy.in: True\n    test 17 LatLon2psxy.count: 0\n    test 18 LatLon2psxy.find: -1\n    test 19 LatLon2psxy.rfind: -1\n    test 20 LatLon2psxy.not in: True\n    test 21 LatLon2psxy.find LL: 20\n    test 22 LatLon2psxy.find LL: -1\n    test 23 LatLon2psxy.count: 1\n    test 24 LatLon2psxy.index: 20\n    test 25 LatLon2psxy.rfind: 20\n    test 26 LatLon2psxy.in: True\n    test 27 LatLon2psxy.count: 0\n    test 28 LatLon2psxy.find: -1\n    test 29 LatLon2psxy.rfind: -1\n    test 30 LatLon2psxy.not in: True\n    test 31 LatLon2psxy.find LL: 30\n    test 32 LatLon2psxy.find LL: -1\n    test 33 LatLon2psxy.count: 1\n    test 34 LatLon2psxy.index: 30\n    test 35 LatLon2psxy.rfind: 30\n    test 36 LatLon2psxy.in: True\n    test 37 LatLon2psxy.count: 0\n    test 38 LatLon2psxy.find: -1\n    test 39 LatLon2psxy.rfind: -1\n    test 40 LatLon2psxy.not in: True\n    test 41 LatLon2psxy.find LL: 40\n    test 42 LatLon2psxy.find LL: -1\n    test 43 LatLon2psxy.count: 1\n    test 44 LatLon2psxy.index: 40\n    test 45 LatLon2psxy.rfind: 40\n    test 46 LatLon2psxy.in: True\n    test 47 LatLon2psxy.count: 0\n    test 48 LatLon2psxy.find: -1\n    test 49 LatLon2psxy.rfind: -1\n    test 50 LatLon2psxy.not in: True\n    test 51 LatLon2psxy.find LL: 50\n    test 52 LatLon2psxy.find LL: -1\n    test 53 LatLon2psxy.count: 1\n    test 54 LatLon2psxy.index: 50\n    test 55 LatLon2psxy.rfind: 50\n    test 56 LatLon2psxy.in: True\n    test 57 LatLon2psxy.count: 0\n    test 58 LatLon2psxy.find: -1\n    test 59 LatLon2psxy.rfind: -1\n    test 60 LatLon2psxy.not in: True\n    test 61 LatLon2psxy.find LL: 60\n    test 62 LatLon2psxy.find LL: -1\n    test 63 LatLon2psxy.count: 1\n    test 64 LatLon2psxy.index: 60\n    test 65 LatLon2psxy.rfind: 60\n    test 66 LatLon2psxy.in: True\n    test 67 LatLon2psxy.count: 0\n    test 68 LatLon2psxy.find: -1\n    test 69 LatLon2psxy.rfind: -1\n    test 70 LatLon2psxy.not in: True\n    test 71 LatLon2psxy.enumerate[0]: (-0.701206, 52.220489, LatLon_(52.220489°N, 000.701206°W))\n    test 72 LatLon2psxy.enumerate[1]: (-0.705456, 52.221916, LatLon_(52.221916°N, 000.705456°W))\n    test 73 LatLon2psxy.enumerate[2]: (-0.71, 52.225944, LatLon_(52.225944°N, 000.71°W))\n    test 74 LatLon2psxy.enumerate[3]: (-0.71446, 52.232448, LatLon_(52.232448°N, 000.71446°W))\n    test 75 LatLon2psxy.enumerate[4]: (-0.71486, 52.233013, LatLon_(52.233013°N, 000.71486°W))\n    test 76 LatLon2psxy.enumerate[5]: (-0.714348, 52.234375, LatLon_(52.234375°N, 000.714348°W))\n    test 77 LatLon2psxy.enumerate[6]: (-0.713572, 52.235607, LatLon_(52.235607°N, 000.713572°W))\n    test 78 LatLon2psxy.enumerate[7]: (-0.71233, 52.237495, LatLon_(52.237495°N, 000.71233°W))\n    test 79 LatLon2psxy.enumerate[8]: (-0.710784, 52.239315, LatLon_(52.239315°N, 000.710784°W))\n    test 80 LatLon2psxy.enumerate[9]: (-0.708684, 52.240627, LatLon_(52.240627°N, 000.708684°W))\n    test 81 LatLon2psxy.enumerate[10]: (-0.707042, 52.240745, LatLon_(52.240745°N, 000.707042°W))\n    test 82 LatLon2psxy.enumerate[11]: (-0.704945, 52.240863, LatLon_(52.240863°N, 000.704945°W))\n    test 83 LatLon2psxy.enumerate[*]: 11\n    test 84 LatLon2psxy.reversed[11]: (-0.704945, 52.240863, LatLon_(52.240863°N, 000.704945°W))\n    test 85 LatLon2psxy.reversed[10]: (-0.707042, 52.240745, LatLon_(52.240745°N, 000.707042°W))\n    test 86 LatLon2psxy.reversed[9]: (-0.708684, 52.240627, LatLon_(52.240627°N, 000.708684°W))\n    test 87 LatLon2psxy.reversed[8]: (-0.710784, 52.239315, LatLon_(52.239315°N, 000.710784°W))\n    test 88 LatLon2psxy.reversed[7]: (-0.71233, 52.237495, LatLon_(52.237495°N, 000.71233°W))\n    test 89 LatLon2psxy.reversed[6]: (-0.713572, 52.235607, LatLon_(52.235607°N, 000.713572°W))\n    test 90 LatLon2psxy.reversed[5]: (-0.714348, 52.234375, LatLon_(52.234375°N, 000.714348°W))\n    test 91 LatLon2psxy.reversed[4]: (-0.71486, 52.233013, LatLon_(52.233013°N, 000.71486°W))\n    test 92 LatLon2psxy.reversed[3]: (-0.71446, 52.232448, LatLon_(52.232448°N, 000.71446°W))\n    test 93 LatLon2psxy.reversed[2]: (-0.71, 52.225944, LatLon_(52.225944°N, 000.71°W))\n    test 94 LatLon2psxy.reversed[1]: (-0.705456, 52.221916, LatLon_(52.221916°N, 000.705456°W))\n    test 95 LatLon2psxy.reversed[0]: (-0.701206, 52.220489, LatLon_(52.220489°N, 000.701206°W))\n    test 96 LatLon2psxy.findall[0]: (0,)\n    test 97 LatLon2psxy.findall[1]: (1,)\n    test 98 LatLon2psxy.findall[2]: (2,)\n    test 99 LatLon2psxy.findall[3]: (3,)\n    test 100 LatLon2psxy.findall[4]: (4,)\n    test 101 LatLon2psxy.findall[5]: (5,)\n    test 102 LatLon2psxy.findall[6]: (6,)\n    test 103 LatLon2psxy.findall[7]: (7,)\n    test 104 LatLon2psxy.findall[8]: (8,)\n    test 105 LatLon2psxy.findall[9]: (9,)\n    test 106 LatLon2psxy.findall[10]: (10,)\n    test 107 LatLon2psxy.findall[11]: (11,)\n    test 108 LatLon2psxy.findall[*]: 11\n    test 109 LatLon2psxy.isNumpy2: False\n    test 110 LatLon2psxy.isPoints2: True\n    test 111 LatLon2psxy.isTuple2: False\n    test 112 numpy.__version__: 2.3.3\n    test 113 Numpy2LatLon.ABC: True\n    test 114 Numpy2LatLon.epsilon: 2.220446049250313e-16\n    test 115 Numpy2LatLon.epsilon: 0.0\n    test 116 Numpy2LatLon.len: 69\n    test 117 Numpy2LatLon.iter: 69\n    test 118 Numpy2LatLon.shape: (69, 4)\n    test 119 Numpy2LatLon.slice1: 11\n    test 120 Numpy2LatLon.slice2: <class 'pygeodesy.points.Numpy2LatLon'>\n    test 121 Numpy2LatLon.slice3: 52.220485°N, 000.701418°W\n    test 122 Numpy2LatLon.str/repr: Numpy2LatLon('array([[-0.701206, 0. , 52.220489, 0. ]] ... )[69]', ilat=2, ilon=0)\n    test 123 Numpy2LatLon.subset: <class 'numpy.ndarray'>\n    test 124 Numpy2LatLon.count: 1\n    test 125 Numpy2LatLon.index: 10\n    test 126 Numpy2LatLon.rfind: 10\n    test 127 Numpy2LatLon.in: True\n    test 128 Numpy2LatLon.count: 0\n    test 129 Numpy2LatLon.find: -1\n    test 130 Numpy2LatLon.rfind: -1\n    test 131 Numpy2LatLon.not in: True\n    test 132 Numpy2LatLon.count: 1\n    test 133 Numpy2LatLon.index: 20\n    test 134 Numpy2LatLon.rfind: 20\n    test 135 Numpy2LatLon.in: True\n    test 136 Numpy2LatLon.count: 0\n    test 137 Numpy2LatLon.find: -1\n    test 138 Numpy2LatLon.rfind: -1\n    test 139 Numpy2LatLon.not in: True\n    test 140 Numpy2LatLon.count: 1\n    test 141 Numpy2LatLon.index: 30\n    test 142 Numpy2LatLon.rfind: 30\n    test 143 Numpy2LatLon.in: True\n    test 144 Numpy2LatLon.count: 0\n    test 145 Numpy2LatLon.find: -1\n    test 146 Numpy2LatLon.rfind: -1\n    test 147 Numpy2LatLon.not in: True\n    test 148 Numpy2LatLon.count: 1\n    test 149 Numpy2LatLon.index: 40\n    test 150 Numpy2LatLon.rfind: 40\n    test 151 Numpy2LatLon.in: True\n    test 152 Numpy2LatLon.count: 0\n    test 153 Numpy2LatLon.find: -1\n    test 154 Numpy2LatLon.rfind: -1\n    test 155 Numpy2LatLon.not in: True\n    test 156 Numpy2LatLon.count: 1\n    test 157 Numpy2LatLon.index: 50\n    test 158 Numpy2LatLon.rfind: 50\n    test 159 Numpy2LatLon.in: True\n    test 160 Numpy2LatLon.count: 0\n    test 161 Numpy2LatLon.find: -1\n    test 162 Numpy2LatLon.rfind: -1\n    test 163 Numpy2LatLon.not in: True\n    test 164 Numpy2LatLon.count: 1\n    test 165 Numpy2LatLon.index: 60\n    test 166 Numpy2LatLon.rfind: 60\n    test 167 Numpy2LatLon.in: True\n    test 168 Numpy2LatLon.count: 0\n    test 169 Numpy2LatLon.find: -1\n    test 170 Numpy2LatLon.rfind: -1\n    test 171 Numpy2LatLon.not in: True\n    test 172 Numpy2LatLon.enumerate[0]: 52.220489°N, 000.701206°W\n    test 173 Numpy2LatLon.enumerate[1]: 52.221916°N, 000.705456°W\n    test 174 Numpy2LatLon.enumerate[2]: 52.225944°N, 000.71°W\n    test 175 Numpy2LatLon.enumerate[3]: 52.232448°N, 000.71446°W\n    test 176 Numpy2LatLon.enumerate[4]: 52.233013°N, 000.71486°W\n    test 177 Numpy2LatLon.enumerate[5]: 52.234375°N, 000.714348°W\n    test 178 Numpy2LatLon.enumerate[6]: 52.235607°N, 000.713572°W\n    test 179 Numpy2LatLon.enumerate[7]: 52.237495°N, 000.71233°W\n    test 180 Numpy2LatLon.enumerate[8]: 52.239315°N, 000.710784°W\n    test 181 Numpy2LatLon.enumerate[9]: 52.240627°N, 000.708684°W\n    test 182 Numpy2LatLon.enumerate[10]: 52.240745°N, 000.707042°W\n    test 183 Numpy2LatLon.enumerate[11]: 52.240863°N, 000.704945°W\n    test 184 Numpy2LatLon.enumerate[*]: 11\n    test 185 Numpy2LatLon.reversed[11]: 52.240863°N, 000.704945°W\n    test 186 Numpy2LatLon.reversed[10]: 52.240745°N, 000.707042°W\n    test 187 Numpy2LatLon.reversed[9]: 52.240627°N, 000.708684°W\n    test 188 Numpy2LatLon.reversed[8]: 52.239315°N, 000.710784°W\n    test 189 Numpy2LatLon.reversed[7]: 52.237495°N, 000.71233°W\n    test 190 Numpy2LatLon.reversed[6]: 52.235607°N, 000.713572°W\n    test 191 Numpy2LatLon.reversed[5]: 52.234375°N, 000.714348°W\n    test 192 Numpy2LatLon.reversed[4]: 52.233013°N, 000.71486°W\n    test 193 Numpy2LatLon.reversed[3]: 52.232448°N, 000.71446°W\n    test 194 Numpy2LatLon.reversed[2]: 52.225944°N, 000.71°W\n    test 195 Numpy2LatLon.reversed[1]: 52.221916°N, 000.705456°W\n    test 196 Numpy2LatLon.reversed[0]: 52.220489°N, 000.701206°W\n    test 197 Numpy2LatLon.findall[0]: (0,)\n    test 198 Numpy2LatLon.findall[1]: (1,)\n    test 199 Numpy2LatLon.findall[2]: (2,)\n    test 200 Numpy2LatLon.findall[3]: (3,)\n    test 201 Numpy2LatLon.findall[4]: (4,)\n    test 202 Numpy2LatLon.findall[5]: (5,)\n    test 203 Numpy2LatLon.findall[6]: (6,)\n    test 204 Numpy2LatLon.findall[7]: (7,)\n    test 205 Numpy2LatLon.findall[8]: (8,)\n    test 206 Numpy2LatLon.findall[9]: (9,)\n    test 207 Numpy2LatLon.findall[10]: (10,)\n    test 208 Numpy2LatLon.findall[11]: (11,)\n    test 209 Numpy2LatLon.findall[*]: 11\n    test 210 Numpy2LatLon.isNumpy2: True\n    test 211 Numpy2LatLon.isPoints2: False\n    test 212 Numpy2LatLon.isTuple2: False\n    test 213 Tuple2LatLon.ABC: True\n    test 214 Tuple2LatLon.epsilon: 2.220446049250313e-16\n    test 215 Tuple2LatLon.epsilon: 0.0\n    test 216 Tuple2LatLon.len: 69\n    test 217 Tuple2LatLon.iter: 69\n    test 218 Tuple2LatLon.slice1: 11\n    test 219 Tuple2LatLon.slice2: <class 'pygeodesy.points.Tuple2LatLon'>\n    test 220 Tuple2LatLon.slice3: 52.220485°N, 000.701418°W\n    test 221 Tuple2LatLon.str/repr: Tuple2LatLon('[(0, -0.701206, 0, 52.220489) ... ][69]', ilat=3, ilon=1)\n    test 222 Tuple2LatLon.subset: <class 'list'>\n    test 223 Tuple2LatLon.count: 1\n    test 224 Tuple2LatLon.index: 10\n    test 225 Tuple2LatLon.rfind: 10\n    test 226 Tuple2LatLon.in: True\n    test 227 Tuple2LatLon.count: 0\n    test 228 Tuple2LatLon.find: -1\n    test 229 Tuple2LatLon.rfind: -1\n    test 230 Tuple2LatLon.not in: True\n    test 231 Tuple2LatLon.count: 1\n    test 232 Tuple2LatLon.index: 20\n    test 233 Tuple2LatLon.rfind: 20\n    test 234 Tuple2LatLon.in: True\n    test 235 Tuple2LatLon.count: 0\n    test 236 Tuple2LatLon.find: -1\n    test 237 Tuple2LatLon.rfind: -1\n    test 238 Tuple2LatLon.not in: True\n    test 239 Tuple2LatLon.count: 1\n    test 240 Tuple2LatLon.index: 30\n    test 241 Tuple2LatLon.rfind: 30\n    test 242 Tuple2LatLon.in: True\n    test 243 Tuple2LatLon.count: 0\n    test 244 Tuple2LatLon.find: -1\n    test 245 Tuple2LatLon.rfind: -1\n    test 246 Tuple2LatLon.not in: True\n    test 247 Tuple2LatLon.count: 1\n    test 248 Tuple2LatLon.index: 40\n    test 249 Tuple2LatLon.rfind: 40\n    test 250 Tuple2LatLon.in: True\n    test 251 Tuple2LatLon.count: 0\n    test 252 Tuple2LatLon.find: -1\n    test 253 Tuple2LatLon.rfind: -1\n    test 254 Tuple2LatLon.not in: True\n    test 255 Tuple2LatLon.count: 1\n    test 256 Tuple2LatLon.index: 50\n    test 257 Tuple2LatLon.rfind: 50\n    test 258 Tuple2LatLon.in: True\n    test 259 Tuple2LatLon.count: 0\n    test 260 Tuple2LatLon.find: -1\n    test 261 Tuple2LatLon.rfind: -1\n    test 262 Tuple2LatLon.not in: True\n    test 263 Tuple2LatLon.count: 1\n    test 264 Tuple2LatLon.index: 60\n    test 265 Tuple2LatLon.rfind: 60\n    test 266 Tuple2LatLon.in: True\n    test 267 Tuple2LatLon.count: 0\n    test 268 Tuple2LatLon.find: -1\n    test 269 Tuple2LatLon.rfind: -1\n    test 270 Tuple2LatLon.not in: True\n    test 271 Tuple2LatLon.enumerate[0]: 52.220489°N, 000.701206°W\n    test 272 Tuple2LatLon.enumerate[1]: 52.221916°N, 000.705456°W\n    test 273 Tuple2LatLon.enumerate[2]: 52.225944°N, 000.71°W\n    test 274 Tuple2LatLon.enumerate[3]: 52.232448°N, 000.71446°W\n    test 275 Tuple2LatLon.enumerate[4]: 52.233013°N, 000.71486°W\n    test 276 Tuple2LatLon.enumerate[5]: 52.234375°N, 000.714348°W\n    test 277 Tuple2LatLon.enumerate[6]: 52.235607°N, 000.713572°W\n    test 278 Tuple2LatLon.enumerate[7]: 52.237495°N, 000.71233°W\n    test 279 Tuple2LatLon.enumerate[8]: 52.239315°N, 000.710784°W\n    test 280 Tuple2LatLon.enumerate[9]: 52.240627°N, 000.708684°W\n    test 281 Tuple2LatLon.enumerate[10]: 52.240745°N, 000.707042°W\n    test 282 Tuple2LatLon.enumerate[11]: 52.240863°N, 000.704945°W\n    test 283 Tuple2LatLon.enumerate[*]: 11\n    test 284 Tuple2LatLon.reversed[11]: 52.240863°N, 000.704945°W\n    test 285 Tuple2LatLon.reversed[10]: 52.240745°N, 000.707042°W\n    test 286 Tuple2LatLon.reversed[9]: 52.240627°N, 000.708684°W\n    test 287 Tuple2LatLon.reversed[8]: 52.239315°N, 000.710784°W\n    test 288 Tuple2LatLon.reversed[7]: 52.237495°N, 000.71233°W\n    test 289 Tuple2LatLon.reversed[6]: 52.235607°N, 000.713572°W\n    test 290 Tuple2LatLon.reversed[5]: 52.234375°N, 000.714348°W\n    test 291 Tuple2LatLon.reversed[4]: 52.233013°N, 000.71486°W\n    test 292 Tuple2LatLon.reversed[3]: 52.232448°N, 000.71446°W\n    test 293 Tuple2LatLon.reversed[2]: 52.225944°N, 000.71°W\n    test 294 Tuple2LatLon.reversed[1]: 52.221916°N, 000.705456°W\n    test 295 Tuple2LatLon.reversed[0]: 52.220489°N, 000.701206°W\n    test 296 Tuple2LatLon.findall[0]: (0,)\n    test 297 Tuple2LatLon.findall[1]: (1,)\n    test 298 Tuple2LatLon.findall[2]: (2,)\n    test 299 Tuple2LatLon.findall[3]: (3,)\n    test 300 Tuple2LatLon.findall[4]: (4,)\n    test 301 Tuple2LatLon.findall[5]: (5,)\n    test 302 Tuple2LatLon.findall[6]: (6,)\n    test 303 Tuple2LatLon.findall[7]: (7,)\n    test 304 Tuple2LatLon.findall[8]: (8,)\n    test 305 Tuple2LatLon.findall[9]: (9,)\n    test 306 Tuple2LatLon.findall[10]: (10,)\n    test 307 Tuple2LatLon.findall[11]: (11,)\n    test 308 Tuple2LatLon.findall[*]: 11\n    test 309 Tuple2LatLon.isNumpy2: False\n    test 310 Tuple2LatLon.isPoints2: False\n    test 311 Tuple2LatLon.isTuple2: True\n\n    testing(pygeodesy.points, 25.05.12, LatLon=<class 'pygeodesy.points.LatLon_'>)\n    test 312 areaOf: 8.811228e+09\n    test 313 centroidOf: 45.5, 1.5\n    test 314 perimeterOf: 2.673633e+05\n    test 315 isclockwise: False\n    test 316 isconvex: True\n    test 317 ispolar: False\n    test 318 areaOf: 7.086883e+09\n    test 319 perimeterOf: 2.687460e+05\n    test 320 centroidOf: 0.333333, 0.333333\n    test 321 isclockwise: True\n    test 322 isconvex: True\n    test 323 ispolar: False\n    test 324 areaOf: 2.827856e+10\n    test 325 perimeterOf: 4.717039e+05\n    test 326 centroidOf: 1.0, 1.0\n    test 327 isclockwise: False\n    test 328 isconvex: True\n    test 329 ispolar: False\n    test 330 areaOf: 2.747297e+13\n    test 331 perimeterOf: 2.332643e+07\n    test 332 centroidOf: 52.113, 102.123\n    test 333 isclockwise: False\n    test 334 isconvex: False\n    test 335 ispolar: True\n    test 336 areaOf: 8.482014e+10\n    test 337 perimeterOf: 1.334104e+06\n    test 338 centroidOf: 1.167, 1.667\n    test 339 isclockwise: False\n    test 340 isconvex: False\n    test 341 ispolar: False\n    test 342 areaOf: 5.151974e+13\n    test 343 perimeterOf: 2.638608e+07\n    test 344 centroidOf: -19.444, -133.333\n    test 345 isclockwise: True\n    test 346 isconvex: True\n    test 347 ispolar: False\n    test 348 areaOf: 1.751694e+12  FAILED, KNOWN, expected 4.469277e+12\n    test 349 perimeterOf: 1.562029e+07\n./pygeodesy/ellipsoidalKarney.py:94: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return self.datum.ellipsoid.geodesic\n./pygeodesy/ellipsoidalKarney.py:139: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return fabs(_polygon(datum.ellipsoid.geodesic, points, True, False, wrap, polar))\n    test 350 centroidOf: -72.926, 46.47\n    test 351 isclockwise: True\n    test 352 isconvex: False\n    test 353 ispolar: True\n    test 354 points2: 18\n    test 355 nearestOn5: (-77.455114, -16.67063, 4.134666, 307.988253, 0)\n    test 356 areaCO: 2.83192062868e+11  FAILED, KNOWN, expected 2.69601367661e+11\n    test 357 isclockwise: True\n    test 358 perimeterCO: 2098630.956053  FAILED, KNOWN, expected 2099854.381923\n    test 359 boundsOf: (-77.9, -163.0, -63.1, 172.0)\n    test 360 quadOf: 77.9°S, 163.0°W, 63.1°S, 163.0°W, 63.1°S, 172.0°E, 77.9°S, 172.0°E\n    test 361 intermediateTo: 51.368°N, 000.677°E, 'intermediateTo'\n    test 362 intermediateTo: True\n    test 363 intermediateTo: 51.368°N, 000.677°E\n    test 364 intermediateTo: 52.205°N, 000.119°E\n    test 365 intermediateTo: 48.857°N, 002.351°E\n    test 366 _isLatLon_: _Array2LatLon('[ ... ][1]', ilat=0, ilon=1)\n    test 367 latlon: (-66.6, -88.0)\n    test 368 philam: (-1.162389, -1.53589)\n    test 369 toStr: 66.6°S, 088.0°W\n    test 370 __ne__: False\n    test 371 isequalTo: True\n    test 372 isequalTo: True\n    test 373 latlonheight: (-66.6, -88.0, 0)\n    test 374 philamheight: (-1.162389, -1.53589, 0)\n    test 375 _N_vector: (0.01386, -0.39691, -0.91775)\n    test 376 toNvector: (0.01386, -0.39691, -0.91775, 0)\n    test 377 toNvector: (0.01386, -0.396906, -0.917755, 0)\n    test 378 classof: 66.6°S, 088.0°W\n    test 379 others: 66.6°S, 088.0°W\n    test 380 copy(<class 'type'>): (<class 'pygeodesy.points.LatLon_'>, True)\n    test 381 LatLon_.copy(): (<class 'pygeodesy.points.LatLon_'>, True)\n\n    testing(pygeodesy.points, 25.05.12, LatLon=<class 'pygeodesy.sphericalNvector.LatLon'>)\n    test 382 areaOf: 8.811228e+09\n    test 383 centroidOf: 45.5, 1.5\n    test 384 perimeterOf: 2.673633e+05\n    test 385 isclockwise: False\n    test 386 isconvex: True\n    test 387 ispolar: False\n    test 388 areaOf: 7.086883e+09\n    test 389 perimeterOf: 2.687460e+05\n    test 390 centroidOf: 0.333333, 0.333333\n    test 391 isclockwise: True\n    test 392 isconvex: True\n    test 393 ispolar: False\n    test 394 areaOf: 2.827856e+10\n    test 395 perimeterOf: 4.717039e+05\n    test 396 centroidOf: 1.0, 1.0\n    test 397 isclockwise: False\n    test 398 isconvex: True\n    test 399 ispolar: False\n    test 400 areaOf: 2.747297e+13\n    test 401 perimeterOf: 2.332643e+07\n    test 402 centroidOf: 52.113, 102.123\n    test 403 isclockwise: False\n    test 404 isconvex: False\n    test 405 ispolar: True\n    test 406 areaOf: 8.482014e+10\n    test 407 perimeterOf: 1.334104e+06\n    test 408 centroidOf: 1.167, 1.667\n    test 409 isclockwise: False\n    test 410 isconvex: False\n    test 411 ispolar: False\n    test 412 areaOf: 5.151974e+13\n    test 413 perimeterOf: 2.638608e+07\n    test 414 centroidOf: -19.444, -133.333\n    test 415 isclockwise: True\n    test 416 isconvex: True\n    test 417 ispolar: False\n    test 418 areaOf: 1.751694e+12  FAILED, KNOWN, expected 4.469277e+12\n    test 419 perimeterOf: 1.562029e+07\n    test 420 centroidOf: -72.926, 46.47\n    test 421 isclockwise: True\n    test 422 isconvex: False\n    test 423 ispolar: True\n    test 424 points2: 18\n    test 425 nearestOn5: (-77.455114, -16.67063, 4.134666, 307.988253, 0)\n    test 426 areaCO: 2.83192062868e+11  FAILED, KNOWN, expected 2.69601367661e+11\n    test 427 isclockwise: True\n    test 428 perimeterCO: 2098630.956053  FAILED, KNOWN, expected 2099854.381923\n    test 429 latlon: (-66.6, -88.0)\n    test 430 philam: (-1.162389, -1.53589)\n    test 431 latlonheight: (-66.6, -88.0, 0)\n    test 432 philamheight: (-1.162389, -1.53589, 0)\n    test 433 _N_vector: (0.01386, -0.39691, -0.91775)\n    test 434 toNvector: (0.01386, -0.39691, -0.91775)\n    test 435 toNvector: (0.01386, -0.396906, -0.917755, 0)\n    test 436 classof: 66.6°S, 088.0°W\n    test 437 others: 66.6°S, 088.0°W\n    test 438 copy(<class 'type'>): (<class 'pygeodesy.sphericalNvector.LatLon'>, True)\n    test 439 LatLon.copy(): (<class 'pygeodesy.sphericalNvector.LatLon'>, True)\n\n    testing(pygeodesy.points, 25.05.12, LatLon=<class 'pygeodesy.sphericalTrigonometry.LatLon'>)\n    test 440 areaOf: 8.811228e+09\n    test 441 centroidOf: 45.5, 1.5\n    test 442 perimeterOf: 2.673633e+05\n    test 443 isclockwise: False\n    test 444 isconvex: True\n    test 445 ispolar: False\n    test 446 areaOf: 7.086883e+09\n    test 447 perimeterOf: 2.687460e+05\n    test 448 centroidOf: 0.333333, 0.333333\n    test 449 isclockwise: True\n    test 450 isconvex: True\n    test 451 ispolar: False\n    test 452 areaOf: 2.827856e+10\n    test 453 perimeterOf: 4.717039e+05\n    test 454 centroidOf: 1.0, 1.0\n    test 455 isclockwise: False\n    test 456 isconvex: True\n    test 457 ispolar: False\n    test 458 areaOf: 2.747297e+13\n    test 459 perimeterOf: 2.332643e+07\n    test 460 centroidOf: 52.113, 102.123\n    test 461 isclockwise: False\n    test 462 isconvex: False\n    test 463 ispolar: True\n    test 464 areaOf: 8.482014e+10\n    test 465 perimeterOf: 1.334104e+06\n    test 466 centroidOf: 1.167, 1.667\n    test 467 isclockwise: False\n    test 468 isconvex: False\n    test 469 ispolar: False\n    test 470 areaOf: 5.151974e+13\n    test 471 perimeterOf: 2.638608e+07\n    test 472 centroidOf: -19.444, -133.333\n    test 473 isclockwise: True\n    test 474 isconvex: True\n    test 475 ispolar: False\n    test 476 areaOf: 1.751694e+12  FAILED, KNOWN, expected 4.469277e+12\n    test 477 perimeterOf: 1.562029e+07\n    test 478 centroidOf: -72.926, 46.47\n    test 479 isclockwise: True\n    test 480 isconvex: False\n    test 481 ispolar: True\n    test 482 points2: 18\n    test 483 nearestOn5: (-77.455114, -16.67063, 4.134666, 307.988253, 0)\n    test 484 areaCO: 2.83192062868e+11  FAILED, KNOWN, expected 2.69601367661e+11\n    test 485 isclockwise: True\n    test 486 perimeterCO: 2098630.956053  FAILED, KNOWN, expected 2099854.381923\n    test 487 latlon: (-66.6, -88.0)\n    test 488 philam: (-1.162389, -1.53589)\n    test 489 latlonheight: (-66.6, -88.0, 0)\n    test 490 philamheight: (-1.162389, -1.53589, 0)\n    test 491 _N_vector: (0.01386, -0.39691, -0.91775)\n    test 492 toNvector: (0.01386, -0.39691, -0.91775)\n    test 493 toNvector: (0.01386, -0.396906, -0.917755, 0)\n    test 494 classof: 66.6°S, 088.0°W\n    test 495 others: 66.6°S, 088.0°W\n    test 496 copy(<class 'type'>): (<class 'pygeodesy.sphericalTrigonometry.LatLon'>, True)\n    test 497 LatLon.copy(): (<class 'pygeodesy.sphericalTrigonometry.LatLon'>, True)\n\n    testing(pygeodesy.points, 25.05.12, LatLon=<class 'pygeodesy.ellipsoidalNvector.LatLon'>)\n    test 498 areaOf: 8.811228e+09\n    test 499 centroidOf: 45.5, 1.5\n    test 500 perimeterOf: 2.673633e+05\n    test 501 isclockwise: False\n    test 502 isconvex: True\n    test 503 ispolar: False\n    test 504 areaOf: 7.086883e+09\n    test 505 perimeterOf: 2.687460e+05\n    test 506 centroidOf: 0.333333, 0.333333\n    test 507 isclockwise: True\n    test 508 isconvex: True\n    test 509 ispolar: False\n    test 510 areaOf: 2.827856e+10\n    test 511 perimeterOf: 4.717039e+05\n    test 512 centroidOf: 1.0, 1.0\n    test 513 isclockwise: False\n    test 514 isconvex: True\n    test 515 ispolar: False\n    test 516 areaOf: 2.747297e+13\n    test 517 perimeterOf: 2.332643e+07\n    test 518 centroidOf: 52.113, 102.123\n    test 519 isclockwise: False\n    test 520 isconvex: False\n    test 521 ispolar: True\n    test 522 areaOf: 8.482014e+10\n    test 523 perimeterOf: 1.334104e+06\n    test 524 centroidOf: 1.167, 1.667\n    test 525 isclockwise: False\n    test 526 isconvex: False\n    test 527 ispolar: False\n    test 528 areaOf: 5.151974e+13\n    test 529 perimeterOf: 2.638608e+07\n    test 530 centroidOf: -19.444, -133.333\n    test 531 isclockwise: True\n    test 532 isconvex: True\n    test 533 ispolar: False\n    test 534 areaOf: 1.751694e+12  FAILED, KNOWN, expected 4.469277e+12\n    test 535 perimeterOf: 1.562029e+07\n    test 536 centroidOf: -72.926, 46.47\n    test 537 isclockwise: True\n    test 538 isconvex: False\n    test 539 ispolar: True\n    test 540 points2: 18\n    test 541 nearestOn5: (-77.455114, -16.67063, 4.134666, 307.988253, 0)\n    test 542 areaCO: 2.83192062868e+11  FAILED, KNOWN, expected 2.69601367661e+11\n    test 543 isclockwise: True\n    test 544 perimeterCO: 2098630.956053  FAILED, KNOWN, expected 2099854.381923\n    test 545 latlon: (-66.6, -88.0)\n    test 546 philam: (-1.162389, -1.53589)\n    test 547 latlonheight: (-66.6, -88.0, 0)\n    test 548 philamheight: (-1.162389, -1.53589, 0)\n    test 549 _N_vector: (0.01386, -0.39691, -0.91775)\n    test 550 toNvector: (0.01386, -0.39691, -0.91775)\n    test 551 toNvector: (0.01386, -0.396906, -0.917755, 0)\n    test 552 classof: 66.6°S, 088.0°W\n    test 553 others: 66.6°S, 088.0°W\n    test 554 copy(<class 'type'>): (<class 'pygeodesy.ellipsoidalNvector.LatLon'>, True)\n    test 555 LatLon.copy(): (<class 'pygeodesy.ellipsoidalNvector.LatLon'>, True)\n\n    testing(pygeodesy.points, 25.05.12, LatLon=<class 'pygeodesy.ellipsoidalVincenty.LatLon'>)\n    test 556 areaOf: 8.811228e+09\n    test 557 centroidOf: 45.5, 1.5\n    test 558 perimeterOf: 2.673633e+05\n    test 559 isclockwise: False\n    test 560 isconvex: True\n    test 561 ispolar: False\n    test 562 areaOf: 7.086883e+09\n    test 563 perimeterOf: 2.687460e+05\n    test 564 centroidOf: 0.333333, 0.333333\n    test 565 isclockwise: True\n    test 566 isconvex: True\n    test 567 ispolar: False\n    test 568 areaOf: 2.827856e+10\n    test 569 perimeterOf: 4.717039e+05\n    test 570 centroidOf: 1.0, 1.0\n    test 571 isclockwise: False\n    test 572 isconvex: True\n    test 573 ispolar: False\n    test 574 areaOf: 2.747297e+13\n    test 575 perimeterOf: 2.332643e+07\n    test 576 centroidOf: 52.113, 102.123\n    test 577 isclockwise: False\n    test 578 isconvex: False\n    test 579 ispolar: True\n    test 580 areaOf: 8.482014e+10\n    test 581 perimeterOf: 1.334104e+06\n    test 582 centroidOf: 1.167, 1.667\n    test 583 isclockwise: False\n    test 584 isconvex: False\n    test 585 ispolar: False\n    test 586 areaOf: 5.151974e+13\n    test 587 perimeterOf: 2.638608e+07\n    test 588 centroidOf: -19.444, -133.333\n    test 589 isclockwise: True\n    test 590 isconvex: True\n    test 591 ispolar: False\n    test 592 areaOf: 1.751694e+12  FAILED, KNOWN, expected 4.469277e+12\n    test 593 perimeterOf: 1.562029e+07\n    test 594 centroidOf: -72.926, 46.47\n    test 595 isclockwise: True\n    test 596 isconvex: False\n    test 597 ispolar: True\n    test 598 points2: 18\n    test 599 nearestOn5: (-77.455114, -16.67063, 4.134666, 307.988253, 0)\n    test 600 areaCO: 2.83192062868e+11  FAILED, KNOWN, expected 2.69601367661e+11\n    test 601 isclockwise: True\n    test 602 perimeterCO: 2098630.956053  FAILED, KNOWN, expected 2099854.381923\n    test 603 latlon: (-66.6, -88.0)\n    test 604 philam: (-1.162389, -1.53589)\n    test 605 latlonheight: (-66.6, -88.0, 0)\n    test 606 philamheight: (-1.162389, -1.53589, 0)\n    test 607 _N_vector: (0.01386, -0.39691, -0.91775)\n    test 608 toNvector: (0.01386, -0.39691, -0.91775, 0)\n    test 609 toNvector: (0.01386, -0.396906, -0.917755, 0)\n    test 610 classof: 66.6°S, 088.0°W\n    test 611 others: 66.6°S, 088.0°W\n    test 612 copy(<class 'type'>): (<class 'pygeodesy.ellipsoidalVincenty.LatLon'>, True)\n    test 613 LatLon.copy(): (<class 'pygeodesy.ellipsoidalVincenty.LatLon'>, True)\n\n    testing(pygeodesy.points, 25.05.12, LatLon=<class 'pygeodesy.ellipsoidalKarney.LatLon'>)\n    test 614 areaOf: 8.811228e+09\n    test 615 centroidOf: 45.5, 1.5\n    test 616 perimeterOf: 2.673633e+05\n    test 617 isclockwise: False\n    test 618 isconvex: True\n    test 619 ispolar: False\n    test 620 areaOf: 7.086883e+09\n    test 621 perimeterOf: 2.687460e+05\n    test 622 centroidOf: 0.333333, 0.333333\n    test 623 isclockwise: True\n    test 624 isconvex: True\n    test 625 ispolar: False\n    test 626 areaOf: 2.827856e+10\n    test 627 perimeterOf: 4.717039e+05\n    test 628 centroidOf: 1.0, 1.0\n    test 629 isclockwise: False\n    test 630 isconvex: True\n    test 631 ispolar: False\n    test 632 areaOf: 2.747297e+13\n    test 633 perimeterOf: 2.332643e+07\n    test 634 centroidOf: 52.113, 102.123\n    test 635 isclockwise: False\n    test 636 isconvex: False\n    test 637 ispolar: True\n    test 638 areaOf: 8.482014e+10\n    test 639 perimeterOf: 1.334104e+06\n    test 640 centroidOf: 1.167, 1.667\n    test 641 isclockwise: False\n    test 642 isconvex: False\n    test 643 ispolar: False\n    test 644 areaOf: 5.151974e+13\n    test 645 perimeterOf: 2.638608e+07\n    test 646 centroidOf: -19.444, -133.333\n    test 647 isclockwise: True\n    test 648 isconvex: True\n    test 649 ispolar: False\n    test 650 areaOf: 1.751694e+12  FAILED, KNOWN, expected 4.469277e+12\n    test 651 perimeterOf: 1.562029e+07\n    test 652 centroidOf: -72.926, 46.47\n    test 653 isclockwise: True\n    test 654 isconvex: False\n    test 655 ispolar: True\n    test 656 points2: 18\n    test 657 nearestOn5: (-77.455114, -16.67063, 4.134666, 307.988253, 0)\n    test 658 areaCO: 2.83192062868e+11  FAILED, KNOWN, expected 2.69601367661e+11\n    test 659 isclockwise: True\n    test 660 perimeterCO: 2098630.956053  FAILED, KNOWN, expected 2099854.381923\n    test 661 latlon: (-66.6, -88.0)\n    test 662 philam: (-1.162389, -1.53589)\n    test 663 latlonheight: (-66.6, -88.0, 0)\n    test 664 philamheight: (-1.162389, -1.53589, 0)\n    test 665 _N_vector: (0.01386, -0.39691, -0.91775)\n    test 666 toNvector: (0.01386, -0.39691, -0.91775, 0)\n    test 667 toNvector: (0.01386, -0.396906, -0.917755, 0)\n    test 668 classof: 66.6°S, 088.0°W\n    test 669 others: 66.6°S, 088.0°W\n    test 670 copy(<class 'type'>): (<class 'pygeodesy.ellipsoidalKarney.LatLon'>, True)\n    test 671 LatLon.copy(): (<class 'pygeodesy.ellipsoidalKarney.LatLon'>, True)\n\n    testing(pygeodesy.points, 25.05.12, LatLon=<class 'pygeodesy.ellipsoidalExact.LatLon'>)\n    test 672 areaOf: 8.811228e+09\n    test 673 centroidOf: 45.5, 1.5\n    test 674 perimeterOf: 2.673633e+05\n    test 675 isclockwise: False\n    test 676 isconvex: True\n    test 677 ispolar: False\n    test 678 areaOf: 7.086883e+09\n    test 679 perimeterOf: 2.687460e+05\n    test 680 centroidOf: 0.333333, 0.333333\n    test 681 isclockwise: True\n    test 682 isconvex: True\n    test 683 ispolar: False\n    test 684 areaOf: 2.827856e+10\n    test 685 perimeterOf: 4.717039e+05\n    test 686 centroidOf: 1.0, 1.0\n    test 687 isclockwise: False\n    test 688 isconvex: True\n    test 689 ispolar: False\n    test 690 areaOf: 2.747297e+13\n    test 691 perimeterOf: 2.332643e+07\n    test 692 centroidOf: 52.113, 102.123\n    test 693 isclockwise: False\n    test 694 isconvex: False\n    test 695 ispolar: True\n    test 696 areaOf: 8.482014e+10\n    test 697 perimeterOf: 1.334104e+06\n    test 698 centroidOf: 1.167, 1.667\n    test 699 isclockwise: False\n    test 700 isconvex: False\n    test 701 ispolar: False\n    test 702 areaOf: 5.151974e+13\n    test 703 perimeterOf: 2.638608e+07\n    test 704 centroidOf: -19.444, -133.333\n    test 705 isclockwise: True\n    test 706 isconvex: True\n    test 707 ispolar: False\n    test 708 areaOf: 1.751694e+12  FAILED, KNOWN, expected 4.469277e+12\n    test 709 perimeterOf: 1.562029e+07\n    test 710 centroidOf: -72.926, 46.47\n    test 711 isclockwise: True\n    test 712 isconvex: False\n    test 713 ispolar: True\n    test 714 points2: 18\n    test 715 nearestOn5: (-77.455114, -16.67063, 4.134666, 307.988253, 0)\n    test 716 areaCO: 2.83192062868e+11  FAILED, KNOWN, expected 2.69601367661e+11\n    test 717 isclockwise: True\n    test 718 perimeterCO: 2098630.956053  FAILED, KNOWN, expected 2098430.887891\n    test 719 latlon: (-66.6, -88.0)\n    test 720 philam: (-1.162389, -1.53589)\n    test 721 latlonheight: (-66.6, -88.0, 0)\n    test 722 philamheight: (-1.162389, -1.53589, 0)\n    test 723 _N_vector: (0.01386, -0.39691, -0.91775)\n    test 724 toNvector: (0.01386, -0.39691, -0.91775, 0)\n    test 725 toNvector: (0.01386, -0.396906, -0.917755, 0)\n    test 726 classof: 66.6°S, 088.0°W\n    test 727 others: 66.6°S, 088.0°W\n    test 728 copy(<class 'type'>): (<class 'pygeodesy.ellipsoidalExact.LatLon'>, True)\n    test 729 LatLon.copy(): (<class 'pygeodesy.ellipsoidalExact.LatLon'>, True)\n\n    testArea(pygeodesy.ellipsoidalKarney, 25.05.27)\n    test 730 luneOf: 1.27516405431022e+14\n\n    testArea(pygeodesy.ellipsoidalExact, 25.08.28)\n    test 731 luneOf: 1.27516405431022e+14\n\n    testArea(pygeodesy.ellipsoidalGeodSolve, 25.08.28)\n    test 732 luneOf: 1.27516405431022e+14\n\n    67 of 732 testPoints.py tests (9.2%) FAILED, incl. 21 KNOWN plus 46 DeprecationWarnings (pygeodesy 26.3.26 Python 3.13.12 64bit arm64 coverage 7.10.7 geographiclib 2.1 numpy 2.3.3 scipy 1.16.2 Math 2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 macOS 26.3.1 isLazy 1 -W  default) 3.432 sec\nrunning /Library/Framewo....n3.13 -W default ~/PyGeodesy/test/testProps.py\n\n    testing testProps.py 23.03.27 isLazy=1\n\n    test<class 'pygeodesy.named._NamedBase'>(pygeodesy.props, 25.12.31)\n    test 1 P1: 1\n    test 2 p1: 2\n    test 3 P2: 1\n    test 4 p2: 3\n    test 5 q1: 1\n    test 6 q2: 2\n    test 7 q3: True\n    test 8 u1: None\n    test 9 u2: U\n    test 10 P3: 4\n    test 11 p3: 5\n    test 12 q4: False\n    test 13 q5: 2\n    test 14 u3: None\n    test 15 u4: U\n    test 16 X1: immutable Property_RO: X.setter X\n    test 17 X2: invalid Property_RO: X.deleter X\n    test 18 y1: immutable property_RO: y.setter y\n    test 19 y2: invalid property_RO: y.deleter y\n    test 20 Z1: invalid Property: Z.deleter Z\n    test 21 Z2: invalid Property: Z.getter Z\n\n    test<class 'pygeodesy.ellipsoids.Ellipsoid'>(pygeodesy.props, 25.12.31)\n    test 22 P1: 1\n    test 23 p1: 2\n    test 24 P2: 1\n    test 25 p2: 3\n    test 26 q1: 1\n    test 27 q2: 2\n    test 28 q3: True\n    test 29 u1: None\n    test 30 u2: U\n    test 31 P3: 4\n    test 32 p3: 5\n    test 33 q4: False\n    test 34 q5: 2\n    test 35 u3: None\n    test 36 u4: U\n    test 37 X1: immutable Property_RO: X.setter X\n    test 38 X2: invalid Property_RO: X.deleter X\n    test 39 y1: immutable property_RO: y.setter y\n    test 40 y2: invalid property_RO: y.deleter y\n    test 41 Z1: invalid Property: Z.deleter Z\n    test 42 Z2: invalid Property: Z.getter Z\n\n    all 42 testProps.py tests passed (pygeodesy 26.3.26 Python 3.13.12 64bit arm64 coverage 7.10.7 geographiclib 2.1 numpy 2.3.3 scipy 1.16.2 Math 2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 macOS 26.3.1 isLazy 1 -W  default) 562.906 us\nrunning /Library/Framewo....n3.13 -W default ~/PyGeodesy/test/testResections.py\n./test/testResections.py:40: DeprecationWarning: method L{collins<__main__.Cartesian_.collins>} has been DEPRECATED, use method L{collins5}.\n  self.test(collins.__name__, C_(A).collins(C, B, 109.5125, 115.0889), t, nl=1)  # DEPRECATED\n./test/testResections.py:63: DeprecationWarning: method L{tienstra<__main__.Cartesian_.tienstra>} has been DEPRECATED, use method L{tienstra7}.\n  self.test(tienstra.__name__, C_(A).tienstra(B, C, 115.0889, None, 109.5125), t, nl=1)  # DEPRECATED\n./test/testResections.py:72: DeprecationWarning: function L{collins<pygeodesy.deprecated.functions.collins>} has been DEPRECATED, use function L{pygeodesy.collins5}.\n  self.test(collins.__name__, collins(A, C, B, 109.3, 115.1), t, nl=1)  # DEPRECATED\n./test/testResections.py:94: DeprecationWarning: function L{tienstra<pygeodesy.deprecated.functions.tienstra>} has been DEPRECATED, use function L{pygeodesy.tienstra7}.\n  self.test(tienstra.__name__, tienstra(A, B, C, 115.1, beta=135.6, gamma=109.3), t, nl=1)  # DEPRECATED\n./test/testResections.py:100: DeprecationWarning: function L{triAngle4<pygeodesy.deprecated.functions.triAngle4>} has been DEPRECATED on 2023.09.14, use function L{pygeodesy.triAngle5}.\n  rA, rB, rC, _ = triAngle4(10, 30, c)\n./pygeodesy/deprecated/classes.py:33: DeprecationWarning: class L{TriAngle4Tuple<pygeodesy.deprecated.classes.TriAngle4Tuple>} has been DEPRECATED on 2023.09.14, use class L{TriAngle5Tuple}, ignoring item C{area}.\n  deprecated_class(cls)\n./test/testResections.py:107: DeprecationWarning: function L{triAngle4<pygeodesy.deprecated.functions.triAngle4>} has been DEPRECATED on 2023.09.14, use function L{pygeodesy.triAngle5}.\n  rA, rB, rC, _ = triAngle4(320, 435, 598)\n./test/testResections.py:111: DeprecationWarning: function L{triAngle4<pygeodesy.deprecated.functions.triAngle4>} has been DEPRECATED on 2023.09.14, use function L{pygeodesy.triAngle5}.\n  rA, rB, rC, _ = triAngle4(100, 100, 100)\n./test/testResections.py:115: DeprecationWarning: function L{triAngle4<pygeodesy.deprecated.functions.triAngle4>} has been DEPRECATED on 2023.09.14, use function L{pygeodesy.triAngle5}.\n  rA, rB, rC, _ = triAngle4(435, 320, 600)\n./test/testResections.py:119: DeprecationWarning: function L{triAngle4<pygeodesy.deprecated.functions.triAngle4>} has been DEPRECATED on 2023.09.14, use function L{pygeodesy.triAngle5}.\n  rA, rB, rC, _ = triAngle4(1716, 924, 1056)\n./test/testResections.py:126: DeprecationWarning: function L{triAngle4<pygeodesy.deprecated.functions.triAngle4>} has been DEPRECATED on 2023.09.14, use function L{pygeodesy.triAngle5}.\n  t = triAngle4(1, 2, EPS0 / 2)  # DEPRECATED\n\n    testing testResections.py 25.05.04 isLazy=1\n    test 1 cassini: (2128.3903, 5578.1443, 0)\n    test 2 cassini: Cartesian_(2128.3903, 5578.1443, 0)\n\n    test 3 collins5: (2128.3903, 5578.1443, 0)\n    test 4 collins5: (1830.5948, 2576.2429, 0)\n    test 5 collins5: 1581.1388, 1562.0499, 2121.3203\n    test 6 collins5: Cartesian_(2128.3903, 5578.1443, 0)\n    test 7 collins5: Cartesian_(1830.5948, 2576.2429, 0)\n    test 8 collins5: 1581.1388, 1562.0499, 2121.3203\n    test 9 collins5: 1581.1388, 1562.0499, 2121.3203\n\n    test 10 collins: (Cartesian_(2128.39, 5578.144, 0), Cartesian_(1830.595, 2576.243, 0), 1581.13883, 1562.049935, 2121.320344)\n\n    test 11 pierlot: (2128.3903, 5578.1443, 0)\n    test 12 pierlot: Cartesian_(2128.3903, 5578.1443, 0)\n    test 13 pierlot: Cartesian_(2128.3903, 5578.1443, 0.0)\n\n    test 14 pierlotx: (2128.3903, 5578.1443, 0)\n    test 15 pierlotx: Cartesian_(2128.3903, 5578.1443, 0)\n    test 16 pierlotx: Cartesian_(2128.3903, 5578.1443, 0.0)\n\n    test 17 tienstra7: (2128.3903, 5578.1443, 0)\n    test 18 tienstra7: 47.9357, 84.8896, 47.1747, 1581.1388, 2121.3203, 1562.0499\n    test 19 tienstra7: Cartesian_(2128.3903, 5578.1443, 0)\n    test 20 tienstra7: 47.9357, 84.8896, 47.1747, 1581.1388, 2121.3203, 1562.0499\n\n    test 21 tienstra: (Cartesian_(2128.39, 5578.144, 0), 47.935673, 84.889582, 47.174744, 1581.13883, 2121.320344, 1562.049935)\n\n    test 22 cassini: (2129.3018, 5575.8016, 0)\n\n    test 23 collins5: (2129.3018, 5575.8016, 0)\n    test 24 collins5: (1835.1911, 2563.0708, 0)\n    test 25 collins5: 1581.1388, 1562.0499, 2121.3203\n\n    test 26 collins: (Vector3d(2129.30185, 5575.80164, 0), Vector3d(1835.19112, 2563.07083, 0), 1581.13883, 1562.049935, 2121.320344)\n\n    test 27 pierlot: (2129.3018, 5575.8016, 0)\n    test 28 pierlot: alpha12 (115.1), alpha23 (109.3), eps (0), point1 (Vector3d(3100.0, 5000.0, 0)), point2 (Vector3d(2200.0, 6300.0, 0)) or point3 (Vector3d(1000.0, 5300.0, 0)): eps (0) invalid\n\n    test 29 pierlotx: (2129.3018, 5575.8016, 0)\n    test 30 pierlotx: (2128.2026, 4708.1218, 0)\n    test 31 pierlotx: (1969.0673, 6633.5695, 0)\n    test 32 pierlotx: (2438.0239, 5094.568, 0)\n\n    test 33 tienstra7: (2129.3018, 5575.8016, 0)\n    test 34 tienstra7: 47.9357, 84.8896, 47.1747, 1581.1388, 2121.3203, 1562.0499\n\n    test 35 tienstra: (Vector3d(2129.30185, 5575.80164, 0), 47.935673, 84.889582, 47.174744, 1581.13883, 2121.320344, 1562.049935)\n\n    test 36 triSide4: (10.0, 30.0, 0.785398, 8.840862)\n\n    test 37 snellius3: (17.54582, 38.564239, 46.317675)\n    test 38 snellius3: (844.880591, 571.107418, 835.462796)\n    test 39 snellius3: (128.557522, 100.0, 187.938524)\n    test 40 snellius3: (567.480866, 847.344375, 832.446688)\n    test 41 snellius3: (4064.197388, 3652.539386, 4988.197388)\n\n    test 42 wildberger3: (17.54582, 38.56424, 46.317675)\n    test 43 wildberger3: (844.880591, 571.107418, 835.462796)\n    test 44 wildberger3: (128.557522, 100.0, 187.938524)\n    test 45 wildberger3: (567.480866, 847.344375, 832.446688)\n    test 46 wildberger3: (4064.197358, 3652.539342, 4988.197355)  FAILED, KNOWN, expected (4064.197343, 3652.539342, 4988.197355)\n\n    test 47 triAngle: 3.141592654\n    test 48 triAngle4: (1.570796, 1.570796, 0.0, 0.0)\n    test 49 triAngle5: (1.570796, 1.570796, 0.0, 0.0, 0.0)\n    test 50 triAngle5: (0.24871, 0.927295, 1.965587, 1.5, 24.0)\n    test 51 triArea: 24.0\n    test 52 triSide2: (2.0, 0.0)\n    test 53 triSide2: (2.0, 3.141593)\n\n    17 of 53 testResections.py tests (32.1%) FAILED, incl. 1 KNOWN plus 16 DeprecationWarnings (pygeodesy 26.3.26 Python 3.13.12 64bit arm64 coverage 7.10.7 geographiclib 2.1 numpy 2.3.3 scipy 1.16.2 Math 2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 macOS 26.3.1 isLazy 1 -W  default) 21.855 ms\nrunning /Library/Framewo....n3.13 -W default ~/PyGeodesy/test/testRhumb_aux_.py\n./test/testRhumb_aux_.py:267: DeprecationWarning: method L{distance2<pygeodesy.rhumb.aux_.RhumbLineAux.distance2>} has been DEPRECATED on 23.09.23, use method L{RhumbLineAux.Inverse} or L{RhumbLine.Inverse}.\n  t = r.distance2(p.lat2, p.lon2)\n\n    testing testRhumb_aux_.py 24.08.30 (module pygeodesy.rhumb.aux_ 25.08.31) isLazy=1\n\n    testDirectX vs ...(pygeodesy.rhumb.aux_, 25.08.31)\n    test 1 Direct.azi12: -92.38889\n    test 2 Direct.lat1: 40.6\n    test 3 Direct.lat2: 21.3781208262067  FAILED, KNOWN (0.402846), expected 35.79999595\n    test 4 Direct.lon1: -73.8\n    test 5 Direct.lon2: -102.999609498889  FAILED, KNOWN (1.73414), expected 140.3000041\n    test 6 Direct.s12: 12782581.068\n\n    test 7 GDict.azi12: 51\n    test 8 GDict.lat1: 40.6\n    test 9 GDict.lat2: 71.688899882813\n    test 10 GDict.lon1: -73.8\n    test 11 GDict.lon2: 0.255519824423459  FAILED, KNOWN (3.90829e-13), expected 0.255519824423359\n    test 12 GDict.s12: 5500000\n    test 13 GDict.S12: 44095641862956.1\n\n    test 14 RhumbLineAux: TMorder=6, azi12=51.0, exact=True, lat1=40.6, lon1=-73.8, rhumb=RhumbAux(RAorder=None, TMorder=6, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), exact=True), xTM=ExactTransverseMercator(datum='WGS84', extendp=False, k0=0.9996, lon0=0.0)\n    test 15 RhumbAux: RhumbAux(RAorder=None, TMorder=6, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), exact=True)\n    test 16 isLoxodrome: True\n\n    test 17 ArcPosition.a12: 51\n    test 18 ArcPosition.azi12: 51\n    test 19 ArcPosition.lat1: 40.6\n    test 20 ArcPosition.lat2: 72.6351275818438  FAILED, KNOWN (5.75694e-09), expected 72.635128\n    test 21 ArcPosition.lon1: -73.8\n    test 22 ArcPosition.lon2: 4.06852757947448  FAILED, KNOWN (1.03361e-07), expected 4.068528\n    test 23 ArcPosition.s12: 5667780.57994388  FAILED, KNOWN (2.16901e-14), expected 5667780.579944\n    test 24 ArcPosition.S12: 46665957571716.3  FAILED, KNOWN (1.17189e-15), expected 46665957571716.4\n\n    test 25 Position.a12: 51\n    test 26 Position.azi12: 51\n    test 27 Position.lat1: 40.6\n    test 28 Position.lat2: 72.6351275818438  FAILED, KNOWN (5.75694e-09), expected 72.635128\n    test 29 Position.lon1: -73.8\n    test 30 Position.lon2: 4.06852757947448  FAILED, KNOWN (1.03361e-07), expected 4.068528\n    test 31 Position.s12: 5667780.57994388\n    test 32 Position.S12: 46665957571716.3  FAILED, KNOWN (1.17189e-15), expected 46665957571716.4\n\n    test 33 Direct.a12: 115.020619671634  FAILED, KNOWN (2.85484e-09), expected 115.02062\n    test 34 Direct.azi12: -92.38889\n    test 35 Direct.lat1: 40.6\n    test 36 Direct.lat2: 35.799995945206  FAILED, KNOWN (1.13262e-07), expected 35.8\n    test 37 Direct.lon1: -73.8\n    test 38 Direct.lon2: 140.300004102052  FAILED, KNOWN (2.92377e-08), expected 140.3\n    test 39 Direct.s12: 12782581.068\n\n    test 40 ArcDirect.a12: 115.020619671634\n    test 41 ArcDirect.azi12: -92.38889\n    test 42 ArcDirect.lat1: 40.6\n    test 43 ArcDirect.lat2: 35.799995945206  FAILED, KNOWN (1.13262e-07), expected 35.8\n    test 44 ArcDirect.lon1: -73.8\n    test 45 ArcDirect.lon2: 140.300004102052  FAILED, KNOWN (2.92377e-08), expected 140.3\n    test 46 ArcDirect.s12: 12782581.068\n\n    test 47 Direct8: (40.6, -73.8, 35.799996, 140.300004, -92.38889, 12782581.068, -63760638302268.710938, 115.02062)\n    test 48 toDirect9Tuple: (115.02062, 35.799996, 140.300004, -92.38889, 12782581.068, 12782581.068, 1.0, 1.0, -63760638302268.710938)\n    test 49 DirectLine: (40.6, -73.8, 35.799996, 140.300004, -92.38889, 12782581.068, -63760638302268.710938, 115.02062)\n\n    test 50 RhumbLineAux: TMorder=6, azi12=51.0, exact=True, lat1=40.6, lon1=-73.8, rhumb=RhumbAux(RAorder=None, TMorder=6, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), exact=True), xTM=ExactTransverseMercator(datum='WGS84', extendp=False, k0=0.9996, lon0=0.0)\n    test 51 DirectLine: TMorder=6, azi12=-51.0, exact=True, lat1=35.8, lon1=140.3, rhumb=RhumbAux(RAorder=None, TMorder=6, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), exact=True), xTM=ExactTransverseMercator(datum='WGS84', extendp=False, k0=0.9996, lon0=0.0)\n\n    testInverseX vs ...(pygeodesy.rhumb.aux_, 25.08.31)\n    test 52 Inverse.azi12: -92.3888879816996  FAILED, KNOWN (2.18457e-08), expected -92.38889\n    test 53 Inverse.lat1: 40.6\n    test 54 Inverse.lat2: 35.8\n    test 55 Inverse.lon1: -73.8\n    test 56 Inverse.lon2: 140.3\n    test 57 Inverse.s12: 1282.19384243156  FAILED, KNOWN (1.8964e-09), expected 1282.19384\n    test 58 Inverse.S12: 21234695071407.8  FAILED, KNOWN (0.00128112), expected 21207525604650.8\n\n    test 59 GDict.azi12: 77.7683897102557\n    test 60 GDict.lat1: 40.6\n    test 61 GDict.lat2: 51.6\n    test 62 GDict.lon1: -73.8\n    test 63 GDict.lon2: -0.5\n    test 64 GDict.s12: 5771083.38332803\n    test 65 GDict.S12: 37395209100030.4\n\n    test 66 Inverse.azi12: 103.582833003411  FAILED, KNOWN (3.18511e-09), expected 103.582833333333\n    test 67 Inverse.lat1: 40.6397222222222  FAILED, KNOWN (5.4681e-09), expected 40.639722\n    test 68 Inverse.lat2: 1.35916666666667  FAILED, KNOWN (2.45248e-07), expected 1.359167\n    test 69 Inverse.lon2: 103.989444444444  FAILED, KNOWN (4.27394e-09), expected 103.989444\n    test 70 Inverse.s12: 18523563.0423774  FAILED, KNOWN (2.28776e-09), expected 18523563\n\n    test 71 0,000 Km lat2: 40:38:23.0N\n    test 72 0,000 Km lon2: 073:46:44.0W\n    test 73 0,000 Km S12 : 0\n    test 74 1,000 Km lat2: 36:24:30.3N\n    test 75 1,000 Km lon2: 051:28:26.4W\n    test 76 1,000 Km S12 : 9817078307820  FAILED, KNOWN, expected 9817078307821\n    test 77 2,000 Km lat2: 32:10:26.8N\n    test 78 2,000 Km lon2: 030:20:57.3W\n    test 79 2,000 Km S12 : 18224745682004  FAILED, KNOWN, expected 18224745682005\n    test 80 3,000 Km lat2: 27:56:13.2N\n    test 81 3,000 Km lon2: 010:10:54.2W\n    test 82 3,000 Km S12 : 25358020327741\n    test 83 4,000 Km lat2: 23:41:50.1N\n    test 84 4,000 Km lon2: 009:12:45.5E\n    test 85 4,000 Km S12 : 31321269267101  FAILED, KNOWN, expected 31321269267102\n    test 86 5,000 Km lat2: 19:27:18.7N\n    test 87 5,000 Km lon2: 027:59:22.1E\n    test 88 5,000 Km S12 : 36195163180159\n    test 89 6,000 Km lat2: 15:12:40.2N\n    test 90 6,000 Km lon2: 046:17:01.1E\n    test 91 6,000 Km S12 : 40041499143669\n    test 92 7,000 Km lat2: 10:57:55.9N\n    test 93 7,000 Km lon2: 064:12:52.8E\n    test 94 7,000 Km S12 : 42906570007050\n    test 95 8,000 Km lat2: 06:43:07.3N\n    test 96 8,000 Km lon2: 081:53:28.8E\n    test 97 8,000 Km S12 : 44823504180199  FAILED, KNOWN, expected 44823504180200\n    test 98 9,000 Km lat2: 02:28:16.2N\n    test 99 9,000 Km lon2: 099:24:54.5E\n    test 100 9,000 Km S12 : 45813843358737\n    test 101 10,000 Km lat2: 01:46:36.0S\n    test 102 10,000 Km lon2: 116:52:59.7E\n    test 103 10,000 Km S12 : 45888525219677\n\n    test 104 Inverse: {a12: 49.663661, azi12: 77.692032, azi21: -102.307968, lat1: 40.6, lat2: 51.6, lon1: -73.8, lon2: -0.5, name: '_Prolate', s12: 5519269.307383}\n    test 105 Inverse8: (40.6, -73.8, 51.6, -0.5, 77.692032, 5519269.307383, 37469093881942.304688, 49.663661)\n    test 106 toInverse10Tuple: (49.663661, 5519269.307383, 0.977016, 0.213166, 0.977016, 0.213166, 5519269.307383, 1.0, 1.0, 37469093881942.304688)\n    test 107 InverseLine: -102.23161028974434\n\n    test 108 R.exact: True\n    test 109 R.exact: False\n    test 110 R: RhumbAux(RAorder=None, TMorder=6, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), exact=False)\n\n    test 111 R.exact: True\n    test 112 R.Line.exact: True\n    test 113 R.Line: RhumbLineAux(TMorder=6, azi12=3.0, exact=True, lat1=1.0, lon1=2.0, rhumb=RhumbAux(RAorder=None, TMorder=6, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), exact=True), xTM=ExactTransverseMercator(datum='WGS84', extendp=False, k0=0.9996, lon0=0.0))\n\n    test 114 PlumbTo(exact=False, est=1000000.0): PlumbTo(a02=17.967658, a12=27.74256, at=90.0, azi0=113.73626, azi12=45.0, lat0=60, lat1=30.0, lat2=49.634582, lon0=0, lon1=0.0, lon2=25.767876, name='PlumbTo', s02=1997960.116871, s12=3083112.636236)\n    test 115 a02: 17.967658\n    test 116 s02: 1997960.116871\n    test 117 s12: 3083112.636236\n    test 118 azi0: 113.736\n    test 119 azi2: 135.000\n    test 120 iteration: 7\n\n    test 121 PlumbTo(exact=False, est=None): PlumbTo(a02=17.967658, a12=27.74256, at=90.0, azi0=113.73626, azi12=45.0, lat0=60, lat1=30.0, lat2=49.634582, lon0=0, lon1=0.0, lon2=25.767876, name='PlumbTo', s02=1997960.116871, s12=3083112.636236)\n    test 122 a02: 17.967658\n    test 123 s02: 1997960.116871\n    test 124 s12: 3083112.636236\n    test 125 azi0: 113.736\n    test 126 azi2: 135.000\n    test 127 iteration: 5\n\n    test 128 Intersecant2: (Intersecant2(a03=17.798332, a12=44.076956, azi03=135.0, azi12=45.0, lat0=30.0, lat1=30.0, lat2=61.164348, lat3=45.0, lon0=0.0, lon1=0.0, lon2=46.209348, lon3=15.830286, name='Intersecant2', s03=1977981.142985, s12=4898402.305119), Intersecant2(a03=17.798332, a12=-5.034244, azi03=135.0, azi12=45.0, lat0=30.0, lat1=30.0, lat2=26.4303, lat3=45.0, lon0=0.0, lon1=0.0, lon2=-4.030999, lon3=15.830286, name='Intersecant2', s03=1977981.142985, s12=-559470.390057))\n    test 129 azi0*=-90.000: exact=False, iteration=4, max=0, mean=0.0, min=0, stdev=0.0\n\n    test 130 PlumbTo(exact=True, est=1000000.0): PlumbTo(a02=17.967658, a12=27.74256, at=90.0, azi0=113.73626, azi12=45.0, lat0=60, lat1=30.0, lat2=49.634582, lon0=0, lon1=0.0, lon2=25.767876, name='PlumbTo', s02=1997960.116871, s12=3083112.636236)\n    test 131 a02: 17.967658\n    test 132 s02: 1997960.116871\n    test 133 s12: 3083112.636236\n    test 134 azi0: 113.736\n    test 135 azi2: 135.000\n    test 136 iteration: 7\n\n    test 137 PlumbTo(exact=True, est=None): PlumbTo(a02=17.967658, a12=27.74256, at=90.0, azi0=113.73626, azi12=45.0, lat0=60, lat1=30.0, lat2=49.634582, lon0=0, lon1=0.0, lon2=25.767876, name='PlumbTo', s02=1997960.116871, s12=3083112.636236)\n    test 138 a02: 17.967658\n    test 139 s02: 1997960.116871\n    test 140 s12: 3083112.636236\n    test 141 azi0: 113.736\n    test 142 azi2: 135.000\n    test 143 iteration: 5\n\n    test 144 Intersecant2: (Intersecant2(a03=17.798332, a12=44.076956, azi03=135.0, azi12=45.0, lat0=30.0, lat1=30.0, lat2=61.164348, lat3=45.0, lon0=0.0, lon1=0.0, lon2=46.209348, lon3=15.830286, name='Intersecant2', s03=1977981.142985, s12=4898402.305119), Intersecant2(a03=17.798332, a12=-5.034244, azi03=135.0, azi12=45.0, lat0=30.0, lat1=30.0, lat2=26.4303, lat3=45.0, lon0=0.0, lon1=0.0, lon2=-4.030999, lon3=15.830286, name='Intersecant2', s03=1977981.142985, s12=-559470.390057))\n    test 145 azi0*=-90.000: exact=True, iteration=4, max=0, mean=0.0, min=0, stdev=0.0\n\n    test 146 PlumbTo(exact=None, est=None): Intersection(a02=17.798332, a12=19.521356, at=90.0, azi02=135.0, azi12=45.0, lat0=60.0, lat1=30.0, lat2=45.0, lon0=0.0, lon1=0.0, lon2=15.830286, name='Intersection', s02=1977981.142985, s12=2169465.957531)\n    test 147 a02: 17.798332\n    test 148 s02: 1977981.142985\n    test 149 s12: 2169465.957531\n    test 150 azi02: 135.000\n    test 151 iteration: 9\n\n    test 152 Intersecant2: (Intersecant2(a03=17.798332, a12=44.076956, azi03=135.0, azi12=45.0, lat0=30.0, lat1=30.0, lat2=61.164348, lat3=45.0, lon0=0.0, lon1=0.0, lon2=46.209348, lon3=15.830286, name='Intersecant2', s03=1977981.142985, s12=4898402.305119), Intersecant2(a03=17.798332, a12=-5.034244, azi03=135.0, azi12=45.0, lat0=30.0, lat1=30.0, lat2=26.4303, lat3=45.0, lon0=0.0, lon1=0.0, lon2=-4.030999, lon3=15.830286, name='Intersecant2', s03=1977981.142985, s12=-559470.390057))\n    test 153 azi0*=90.000: exact=None, iteration=15, max=0, mean=-1.802066, min=-5.060016, stdev=2.124232\n\n    test 154 xTM: ExactTransverseMercator(datum='WGS84', extendp=False, k0=0.9996, lon0=0.0)\n\n    test 155 Intersection: Intersection(a02=42.220588, a12=16.98358, at=-85.0, azi02=-50.0, azi12=35.0, lat0=0.0, lat1=10.0, lat2=23.944114, lon0=-10.0, lon1=-56.0, lon2=-45.833131, name='Intersection', s02=4694721.624938, s12=1888490.587742)  FAILED, KNOWN, expected (26.9774, -43.4088)\n    test 156 PlumbTo: Intersection(a02=0.0, a12=16.98358, at=90.0, azi02=125.0, azi12=35.0, lat0=23.944114, lat1=10.0, lat2=23.944114, lon0=-45.833131, lon1=-56.0, lon2=-45.833131, name='Intersection', s02=0.000044, s12=1888490.587743)\n    test 157 PlumbTo: Intersection(a02=0.0, a12=42.220588, at=90.0, azi02=40.0, azi12=-50.0, lat0=23.944114, lat1=0.0, lat2=23.944114, lon0=-45.833131, lon1=-10.0, lon2=-45.833131, name='Intersection', s02=0.00026, s12=4694721.624901)\n    test 158 xTM: KTransverseMercator(ellipsoid=Ellipsoid(name='Sphere', a=6371008.771415, f=0, f_=0, b=6371008.771415), k0=0.9996, TMorder=6)\n\n    test 159 Intersection: Intersection(a02=31.539478, a12=26.853309, at=-135.0, azi02=-45.0, azi12=90.0, lat0=15.0, lat1=37.0, lat2=37.0, lon0=-17.0, lon1=-76.0, lon2=-42.376015, name='Intersection', s02=3507034.715572, s12=2985955.796006)  FAILED, KNOWN, expected (37.0, -41.7028)\n    test 160 PlumbTo: Intersection(a02=0.0, a12=26.853309, at=90.0, azi02=180.0, azi12=90.0, lat0=37.0, lat1=37.0, lat2=37.0, lon0=-42.376015, lon1=-76.0, lon2=-42.376015, name='Intersection', s02=0.000162, s12=2985955.795978)\n    test 161 PlumbTo: Intersection(a02=0.0, a12=31.539478, at=90.0, azi02=45.0, azi12=-45.0, lat0=37.0, lat1=15.0, lat2=37.0, lon0=-42.376015, lon1=-17.0, lon2=-42.376015, name='Intersection', s02=0.000092, s12=3507034.71557)\n    test 162 xTM: KTransverseMercator(ellipsoid=Ellipsoid(name='Sphere', a=6371008.771415, f=0, f_=0, b=6371008.771415), k0=0.9996, TMorder=6)\n\n    50 of 162 testRhumb_aux_.py tests (30.9%) FAILED, incl. 29 KNOWN plus 21 DeprecationWarnings (pygeodesy 26.3.26 Python 3.13.12 64bit arm64 coverage 7.10.7 geographiclib 2.1 numpy 2.3.3 scipy 1.16.2 Math 2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 macOS 26.3.1 isLazy 1 -W  default) 9.991 sec\nrunning /Library/Framewo....n3.13 -W default ~/PyGeodesy/test/testRhumb_ekx.py\n./test/testRhumb_ekx.py:37: DeprecationWarning: property_RO L{rhumbx<pygeodesy.ellipsoids.Ellipsoid.rhumbx>} has been DEPRECATED on 2023.11.28, use property C{rhumbekx}.\n  R = E.rhumbx\n./test/testRhumb_ekx.py:129: DeprecationWarning: property_RO L{rhumbx<pygeodesy.ellipsoids.Ellipsoid.rhumbx>} has been DEPRECATED on 2023.11.28, use property C{rhumbekx}.\n  R = E.rhumbx\n./test/testRhumb_ekx.py:184: DeprecationWarning: property_RO L{rhumbx<pygeodesy.ellipsoids.Ellipsoid.rhumbx>} has been DEPRECATED on 2023.11.28, use property C{rhumbekx}.\n  P = Ellipsoid(E.b, E.a, name='_Prolate').rhumbx  # '_...' for iOS\n./test/testRhumb_ekx.py:218: DeprecationWarning: property_RO L{rhumbx<pygeodesy.ellipsoids.Ellipsoid.rhumbx>} has been DEPRECATED on 2023.11.28, use property C{rhumbekx}.\n  R = E.rhumbx\n./test/testRhumb_ekx.py:228: DeprecationWarning: method L{orders<pygeodesy.rhumb.ekx.Rhumb.orders>} has been DEPRECATED, use properties C{RAorder} and/or C{TMorder}.\n  t = R.orders(4, 8)\n./pygeodesy/deprecated/classes.py:33: DeprecationWarning: class L{RhumbOrder2Tuple<pygeodesy.deprecated.classes.RhumbOrder2Tuple>} has been DEPRECATED, see deprecated method L{Rhumb.orders}.\n  deprecated_class(cls)\n./test/testRhumb_ekx.py:230: DeprecationWarning: method L{orders<pygeodesy.rhumb.ekx.Rhumb.orders>} has been DEPRECATED, use properties C{RAorder} and/or C{TMorder}.\n  t = R.orders(6, 6)\n./test/testRhumb_ekx.py:269: DeprecationWarning: method L{distance2<pygeodesy.rhumb.ekx.RhumbLine.distance2>} has been DEPRECATED on 23.09.23, use method L{RhumbLineAux.Inverse} or L{RhumbLine.Inverse}.\n  t = r.distance2(p.lat2, p.lon2)\n\n    testing testRhumb_ekx.py 23.11.30 (module pygeodesy.rhumb.ekx 25.08.31) isLazy=1\n\n    testDirectX vs ...(pygeodesy.rhumb.ekx, 25.08.31)\n    test 1 Direct.azi12: -92.38889\n    test 2 Direct.lat1: 40.6\n    test 3 Direct.lat2: 35.799995945206  FAILED, KNOWN, expected 35.79999\n    test 4 Direct.lon1: -73.8\n    test 5 Direct.lon2: 140.300004102052  FAILED, KNOWN, expected 140.23651\n    test 6 Direct.s12: 12782581.068\n\n    test 7 GDict.azi12: 51\n    test 8 GDict.lat1: 40.6\n    test 9 GDict.lat2: 71.688899882813\n    test 10 GDict.lon1: -73.8\n    test 11 GDict.lon2: 0.255519824423402  FAILED, KNOWN, expected 0.255519824423359\n    test 12 GDict.s12: 5500000\n    test 13 GDict.S12: 44095641862956.1\n\n    test 14 RhumbLine: TMorder=6, azi12=51.0, exact=True, lat1=40.6, lon1=-73.8, rhumb=Rhumb(RAorder=6, TMorder=6, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), exact=True), xTM=ExactTransverseMercator(datum='WGS84', extendp=False, k0=0.9996, lon0=0.0)\n    test 15 Rhumb: Rhumb(RAorder=6, TMorder=6, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), exact=True)\n    test 16 isLoxodrome: True\n\n    test 17 ArcPosition.a12: 51\n    test 18 ArcPosition.azi12: 51\n    test 19 ArcPosition.lat1: 40.6\n    test 20 ArcPosition.lat2: 72.6351275818438  FAILED, KNOWN, expected 72.635128\n    test 21 ArcPosition.lon1: -73.8\n    test 22 ArcPosition.lon2: 4.06852757947455  FAILED, KNOWN, expected 4.068528\n    test 23 ArcPosition.s12: 5667780.57994388  FAILED, KNOWN, expected 5667780.579944\n    test 24 ArcPosition.S12: 46665957571716.4\n\n    test 25 Position.a12: 51\n    test 26 Position.azi12: 51\n    test 27 Position.lat1: 40.6\n    test 28 Position.lat2: 72.6351275818438  FAILED, KNOWN, expected 72.635128\n    test 29 Position.lon1: -73.8\n    test 30 Position.lon2: 4.06852757947455  FAILED, KNOWN, expected 4.068528\n    test 31 Position.s12: 5667780.57994388\n    test 32 Position.S12: 46665957571716.4\n\n    test 33 Direct.a12: 115.020619671634  FAILED, KNOWN, expected 115.02062\n    test 34 Direct.azi12: -92.38889\n    test 35 Direct.lat1: 40.6\n    test 36 Direct.lat2: 35.799995945206  FAILED, KNOWN, expected 35.8\n    test 37 Direct.lon1: -73.8\n    test 38 Direct.lon2: 140.300004102052  FAILED, KNOWN, expected 140.3\n    test 39 Direct.s12: 12782581.068\n\n    test 40 ArcDirect.a12: 115.020619671634\n    test 41 ArcDirect.azi12: -92.38889\n    test 42 ArcDirect.lat1: 40.6\n    test 43 ArcDirect.lat2: 35.799995945206  FAILED, KNOWN, expected 35.8\n    test 44 ArcDirect.lon1: -73.8\n    test 45 ArcDirect.lon2: 140.300004102052  FAILED, KNOWN, expected 140.3\n    test 46 ArcDirect.s12: 12782581.068\n\n    test 47 Direct8: (40.6, -73.8, 35.799996, 140.300004, -92.38889, 12782581.068, -63760638302268.796875, 115.02062)\n    test 48 toDirect9Tuple: (115.02062, 35.799996, 140.300004, -92.38889, 12782581.068, 12782581.068, 1.0, 1.0, -63760638302268.796875)\n    test 49 DirectLine: (40.6, -73.8, 35.799996, 140.300004, -92.38889, 12782581.068, -63760638302268.796875, 115.02062)\n\n    test 50 RhumbLine: TMorder=6, azi12=51.0, exact=True, lat1=40.6, lon1=-73.8, rhumb=Rhumb(RAorder=6, TMorder=6, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), exact=True), xTM=ExactTransverseMercator(datum='WGS84', extendp=False, k0=0.9996, lon0=0.0)\n    test 51 DirectLine: TMorder=6, azi12=-51.0, exact=True, lat1=35.8, lon1=140.3, rhumb=Rhumb(RAorder=6, TMorder=6, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), exact=True), xTM=ExactTransverseMercator(datum='WGS84', extendp=False, k0=0.9996, lon0=0.0)\n\n    testInverseX vs ...(pygeodesy.rhumb.ekx, 25.08.31)\n    test 52 Inverse.azi12: -92.3888879816997  FAILED, KNOWN, expected -92.38889\n    test 53 Inverse.lat1: 40.6\n    test 54 Inverse.lat2: 35.8\n    test 55 Inverse.lon1: -73.8\n    test 56 Inverse.lon2: 140.3\n    test 57 Inverse.s12: 12782581.0676842\n    test 58 Inverse.S12: -63760642939072.5  FAILED, KNOWN, expected -63760642939073\n\n    test 59 GDict.azi12: 77.7683897102557\n    test 60 GDict.lat1: 40.6\n    test 61 GDict.lat2: 51.6\n    test 62 GDict.lon1: -73.8\n    test 63 GDict.lon2: -0.5\n    test 64 GDict.s12: 5771083.38332803\n    test 65 GDict.S12: 37395209100030.4\n\n    test 66 Inverse.azi12: 103.582833003411  FAILED, KNOWN, expected 103.582833333333\n    test 67 Inverse.lat1: 40.6397222222222  FAILED, KNOWN, expected 40.639722\n    test 68 Inverse.lat2: 1.35916666666667  FAILED, KNOWN, expected 1.359167\n    test 69 Inverse.lon2: 103.989444444444  FAILED, KNOWN, expected 103.989444\n    test 70 Inverse.s12: 18523563.0423774  FAILED, KNOWN, expected 18523563\n\n    test 71 0,000 Km lat2: 40:38:23.0N\n    test 72 0,000 Km lon2: 073:46:44.0W\n    test 73 0,000 Km S12 : 0\n    test 74 1,000 Km lat2: 36:24:30.3N\n    test 75 1,000 Km lon2: 051:28:26.4W\n    test 76 1,000 Km S12 : 9817078307820  FAILED, KNOWN, expected 9817078307821\n    test 77 2,000 Km lat2: 32:10:26.8N\n    test 78 2,000 Km lon2: 030:20:57.3W\n    test 79 2,000 Km S12 : 18224745682004  FAILED, KNOWN, expected 18224745682005\n    test 80 3,000 Km lat2: 27:56:13.2N\n    test 81 3,000 Km lon2: 010:10:54.2W\n    test 82 3,000 Km S12 : 25358020327741\n    test 83 4,000 Km lat2: 23:41:50.1N\n    test 84 4,000 Km lon2: 009:12:45.5E\n    test 85 4,000 Km S12 : 31321269267101  FAILED, KNOWN, expected 31321269267102\n    test 86 5,000 Km lat2: 19:27:18.7N\n    test 87 5,000 Km lon2: 027:59:22.1E\n    test 88 5,000 Km S12 : 36195163180159\n    test 89 6,000 Km lat2: 15:12:40.2N\n    test 90 6,000 Km lon2: 046:17:01.1E\n    test 91 6,000 Km S12 : 40041499143669\n    test 92 7,000 Km lat2: 10:57:55.9N\n    test 93 7,000 Km lon2: 064:12:52.8E\n    test 94 7,000 Km S12 : 42906570007050\n    test 95 8,000 Km lat2: 06:43:07.3N\n    test 96 8,000 Km lon2: 081:53:28.8E\n    test 97 8,000 Km S12 : 44823504180199  FAILED, KNOWN, expected 44823504180200\n    test 98 9,000 Km lat2: 02:28:16.2N\n    test 99 9,000 Km lon2: 099:24:54.5E\n    test 100 9,000 Km S12 : 45813843358737\n    test 101 10,000 Km lat2: 01:46:36.0S\n    test 102 10,000 Km lon2: 116:52:59.7E\n    test 103 10,000 Km S12 : 45888525219677\n\n    test 104 Inverse: {a12: 51.420061, azi12: 77.692032, azi21: -102.307968, lat1: 40.6, lat2: 51.6, lon1: -73.8, lon2: -0.5, name: '_Prolate', s12: 5733622.743165}\n    test 105 Inverse8: (40.6, -73.8, 51.6, -0.5, 77.692032, 5733622.743165, 37469093881942.273438, 51.420061)\n    test 106 toInverse10Tuple: (51.420061, 5733622.743165, 0.977016, 0.213166, 0.977016, 0.213166, 5733622.743165, 1.0, 1.0, 37469093881942.273438)\n    test 107 InverseLine: -102.23161028974432\n\n    test 108 R.exact: True\n    test 109 R.exact: False\n    test 110 R: Rhumb(RAorder=6, TMorder=6, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), exact=False)\n\n    test 111 R.exact: True\n    test 112 R.Line.exact: True\n    test 113 R.Line: RhumbLine(TMorder=6, azi12=3.0, exact=True, lat1=1.0, lon1=2.0, rhumb=Rhumb(RAorder=6, TMorder=6, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), exact=True), xTM=ExactTransverseMercator(datum='WGS84', extendp=False, k0=0.9996, lon0=0.0))\n    test 114 orders: (6, 6)\n    test 115 orders: (4, 8)\n\n\n    test 116 PlumbTo(exact=False, est=1000000.0): PlumbTo(a02=17.967658, a12=27.74256, at=90.0, azi0=113.73626, azi12=45.0, lat0=60, lat1=30.0, lat2=49.634582, lon0=0, lon1=0.0, lon2=25.767876, name='PlumbTo', s02=1997960.116871, s12=3083112.636236)\n    test 117 a02: 17.967658\n    test 118 s02: 1997960.116871\n    test 119 s12: 3083112.636236\n    test 120 azi0: 113.736\n    test 121 azi2: 135.000\n    test 122 iteration: 7\n\n    test 123 PlumbTo(exact=False, est=None): PlumbTo(a02=17.967658, a12=27.74256, at=90.0, azi0=113.73626, azi12=45.0, lat0=60, lat1=30.0, lat2=49.634582, lon0=0, lon1=0.0, lon2=25.767876, name='PlumbTo', s02=1997960.116871, s12=3083112.636236)\n    test 124 a02: 17.967658\n    test 125 s02: 1997960.116871\n    test 126 s12: 3083112.636236\n    test 127 azi0: 113.736\n    test 128 azi2: 135.000\n    test 129 iteration: 5\n\n    test 130 Intersecant2: (Intersecant2(a03=17.798332, a12=44.076956, azi03=135.0, azi12=45.0, lat0=30.0, lat1=30.0, lat2=61.164348, lat3=45.0, lon0=0.0, lon1=0.0, lon2=46.209348, lon3=15.830286, name='Intersecant2', s03=1977981.142985, s12=4898402.305119), Intersecant2(a03=17.798332, a12=-5.034244, azi03=135.0, azi12=45.0, lat0=30.0, lat1=30.0, lat2=26.4303, lat3=45.0, lon0=0.0, lon1=0.0, lon2=-4.030999, lon3=15.830286, name='Intersecant2', s03=1977981.142985, s12=-559470.390057))\n    test 131 azi0*=-90.000: exact=False, iteration=4, max=0, mean=-0.0, min=-0.0, stdev=0.0\n\n    test 132 PlumbTo(exact=True, est=1000000.0): PlumbTo(a02=17.967658, a12=27.74256, at=90.0, azi0=113.73626, azi12=45.0, lat0=60, lat1=30.0, lat2=49.634582, lon0=0, lon1=0.0, lon2=25.767876, name='PlumbTo', s02=1997960.116871, s12=3083112.636236)\n    test 133 a02: 17.967658\n    test 134 s02: 1997960.116871\n    test 135 s12: 3083112.636236\n    test 136 azi0: 113.736\n    test 137 azi2: 135.000\n    test 138 iteration: 7\n\n    test 139 PlumbTo(exact=True, est=None): PlumbTo(a02=17.967658, a12=27.74256, at=90.0, azi0=113.73626, azi12=45.0, lat0=60, lat1=30.0, lat2=49.634582, lon0=0, lon1=0.0, lon2=25.767876, name='PlumbTo', s02=1997960.116871, s12=3083112.636236)\n    test 140 a02: 17.967658\n    test 141 s02: 1997960.116871\n    test 142 s12: 3083112.636236\n    test 143 azi0: 113.736\n    test 144 azi2: 135.000\n    test 145 iteration: 5\n\n    test 146 Intersecant2: (Intersecant2(a03=17.798332, a12=44.076956, azi03=135.0, azi12=45.0, lat0=30.0, lat1=30.0, lat2=61.164348, lat3=45.0, lon0=0.0, lon1=0.0, lon2=46.209348, lon3=15.830286, name='Intersecant2', s03=1977981.142985, s12=4898402.305119), Intersecant2(a03=17.798332, a12=-5.034244, azi03=135.0, azi12=45.0, lat0=30.0, lat1=30.0, lat2=26.4303, lat3=45.0, lon0=0.0, lon1=0.0, lon2=-4.030999, lon3=15.830286, name='Intersecant2', s03=1977981.142985, s12=-559470.390057))\n    test 147 azi0*=-90.000: exact=True, iteration=4, max=0, mean=-0.0, min=-0.0, stdev=0.0\n\n    test 148 PlumbTo(exact=None, est=None): Intersection(a02=17.798332, a12=19.521356, at=90.0, azi02=135.0, azi12=45.0, lat0=60.0, lat1=30.0, lat2=45.0, lon0=0.0, lon1=0.0, lon2=15.830286, name='Intersection', s02=1977981.142985, s12=2169465.957531)\n    test 149 a02: 17.798332\n    test 150 s02: 1977981.142985\n    test 151 s12: 2169465.957531\n    test 152 azi02: 135.000\n    test 153 iteration: 9\n\n    test 154 Intersecant2: (Intersecant2(a03=17.798332, a12=44.076956, azi03=135.0, azi12=45.0, lat0=30.0, lat1=30.0, lat2=61.164348, lat3=45.0, lon0=0.0, lon1=0.0, lon2=46.209348, lon3=15.830286, name='Intersecant2', s03=1977981.142985, s12=4898402.305119), Intersecant2(a03=17.798332, a12=-5.034244, azi03=135.0, azi12=45.0, lat0=30.0, lat1=30.0, lat2=26.4303, lat3=45.0, lon0=0.0, lon1=0.0, lon2=-4.030999, lon3=15.830286, name='Intersecant2', s03=1977981.142985, s12=-559470.390057))\n    test 155 azi0*=90.000: exact=None, iteration=15, max=0, mean=-1.802066, min=-5.060016, stdev=2.124232\n\n    test 156 xTM: KTransverseMercator(ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), k0=0.9996, TMorder=7)\n\n    test 157 Intersection: Intersection(a02=41.823427, a12=16.45698, at=-85.0, azi02=-50.0, azi12=35.0, lat0=0.0, lat1=10.0, lat2=23.944114, lon0=-10.0, lon1=-56.0, lon2=-45.833131, name='Intersection', s02=4650559.291378, s12=1829935.168035)  FAILED, KNOWN, expected (26.9774, -43.4088)\n    test 158 PlumbTo: Intersection(a02=0.0, a12=16.45698, at=90.0, azi02=125.0, azi12=35.0, lat0=23.944114, lat1=10.0, lat2=23.944114, lon0=-45.833131, lon1=-56.0, lon2=-45.833131, name='Intersection', s02=0.000043, s12=1829935.168032)\n    test 159 PlumbTo: Intersection(a02=0.0, a12=41.823427, at=90.0, azi02=40.0, azi12=-50.0, lat0=23.944114, lat1=0.0, lat2=23.944114, lon0=-45.833131, lon1=-10.0, lon2=-45.833131, name='Intersection', s02=0.000246, s12=4650559.291327)\n    test 160 xTM: KTransverseMercator(ellipsoid=Ellipsoid(name='Sphere', a=6371008.771415, f=0, f_=0, b=6371008.771415), k0=0.9996, TMorder=6)\n\n    test 161 Intersection: Intersection(a02=29.910202, a12=26.853309, at=-135.0, azi02=-45.0, azi12=90.0, lat0=15.0, lat1=37.0, lat2=37.0, lon0=-17.0, lon1=-76.0, lon2=-42.376015, name='Intersection', s02=3325867.316604, s12=2985955.796006)  FAILED, KNOWN, expected (37.0, -41.7028)\n    test 162 PlumbTo: Intersection(a02=0.0, a12=26.853309, at=90.0, azi02=180.0, azi12=90.0, lat0=37.0, lat1=37.0, lat2=37.0, lon0=-42.376015, lon1=-76.0, lon2=-42.376015, name='Intersection', s02=0.000129, s12=2985955.795978)\n    test 163 PlumbTo: Intersection(a02=0.0, a12=29.910202, at=90.0, azi02=45.0, azi12=-45.0, lat0=37.0, lat1=15.0, lat2=37.0, lon0=-42.376015, lon1=-17.0, lon2=-42.376015, name='Intersection', s02=0.000081, s12=3325867.316586)\n    test 164 xTM: KTransverseMercator(ellipsoid=Ellipsoid(name='Sphere', a=6371008.771415, f=0, f_=0, b=6371008.771415), k0=0.9996, TMorder=6)\n\n    55 of 164 testRhumb_ekx.py tests (33.5%) FAILED, incl. 26 KNOWN plus 29 DeprecationWarnings (pygeodesy 26.3.26 Python 3.13.12 64bit arm64 coverage 7.10.7 geographiclib 2.1 numpy 2.3.3 scipy 1.16.2 Math 2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 macOS 26.3.1 isLazy 1 -W  default) 8.328 sec\nrunning /Library/Framewo....n3.13 -W default ~/PyGeodesy/test/testRoutes.py\n./test/testRoutes.py:17103: DeprecationWarning: function L{areaOf<pygeodesy.ellipsoidalVincenty.areaOf>} has been DEPRECATED, use function L{ellipsoidalExact.areaOf} or L{ellipsoidalKarney.areaOf}.\n  r = f(pts, wrap=True, **kwds)\n./pygeodesy/ellipsoidalKarney.py:139: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return fabs(_polygon(datum.ellipsoid.geodesic, points, True, False, wrap, polar))\n./test/testRoutes.py:17103: DeprecationWarning: function L{perimeterOf<pygeodesy.ellipsoidalVincenty.perimeterOf>} has been DEPRECATED, use function L{ellipsoidalExact.perimeterOf} or L{ellipsoidalKarney.perimeterOf}.\n  r = f(pts, wrap=True, **kwds)\n./pygeodesy/ellipsoidalKarney.py:347: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return _polygon(datum.ellipsoid.geodesic, points, closed, True, wrap, False)\n\n    testing testRoutes.py 23.08.23 isLazy=1\n    test 1 points.areaOf('Antarctica', adjust=True, radius=6371.01, wrap=True): 1751693.701  FAILED, KNOWN, expected 13552524.800\n    test 2 points.areaOf('PtsFFI', adjust=True, radius=6371.01, wrap=True): 1.288\n    test 3 points.areaOf('RdpFFI', adjust=True, radius=6371.01, wrap=True): 1.241\n    test 4 points.areaOf('Pts', adjust=True, radius=6371.01, wrap=True): 131184.240\n    test 5 points.areaOf('VwPts', adjust=True, radius=6371.01, wrap=True): 140310.144\n    test 6 points.areaOf('_JFK_LHR1', adjust=True, radius=6371.01, wrap=True): 41383852.921  FAILED, KNOWN, expected 40041368.849\n    test 7 points.areaOf('_JFK_LHR2', adjust=True, radius=6371.01, wrap=True): 82767705.842  FAILED, KNOWN, expected 80082737.697\n    test 8 points.areaOf('Antarctica', adjust=False, radius=6371.01, wrap=True): 10446635.730  FAILED, KNOWN, expected 13552524.800\n    test 9 points.areaOf('PtsFFI', adjust=False, radius=6371.01, wrap=True): 2.185  FAILED, KNOWN, expected 1.288\n    test 10 points.areaOf('RdpFFI', adjust=False, radius=6371.01, wrap=True): 2.105  FAILED, KNOWN, expected 1.241\n    test 11 points.areaOf('Pts', adjust=False, radius=6371.01, wrap=True): 233595.011  FAILED, KNOWN, expected 131184.240\n    test 12 points.areaOf('VwPts', adjust=False, radius=6371.01, wrap=True): 258465.911  FAILED, KNOWN, expected 140310.144\n    test 13 points.areaOf('_JFK_LHR1', adjust=False, radius=6371.01, wrap=True): 41780731.678  FAILED, KNOWN, expected 40041368.849\n    test 14 points.areaOf('_JFK_LHR2', adjust=False, radius=6371.01, wrap=True): 83561463.357  FAILED, KNOWN, expected 80082737.697\n    test 15 sphericalTrigonometry.areaOf('Antarctica', radius=6371.01, wrap=True): 241480413.388\n    test 16 sphericalTrigonometry.areaOf('PtsFFI', radius=6371.01, wrap=True): 1.338\n    test 17 sphericalTrigonometry.areaOf('RdpFFI', radius=6371.01, wrap=True): 1.289\n    test 18 sphericalTrigonometry.areaOf('Pts', radius=6371.01, wrap=True): 125942.444\n    test 19 sphericalTrigonometry.areaOf('VwPts', radius=6371.01, wrap=True): 118897.757\n    test 20 sphericalTrigonometry.areaOf('_JFK_LHR1', radius=6371.01, wrap=True): 40105639.197\n    test 21 sphericalTrigonometry.areaOf('_JFK_LHR2', radius=6371.01, wrap=True): 80211278.393\n    test 22 ellipsoidalVincenty.areaOf('Antarctica', wrap=True): 1.366270e+13\n    test 23 ellipsoidalVincenty.areaOf('PtsFFI', wrap=True): 1.343272e+06\n    test 24 ellipsoidalVincenty.areaOf('RdpFFI', wrap=True): 1.294375e+06\n    test 25 ellipsoidalVincenty.areaOf('Pts', wrap=True): 1.271286e+11\n    test 26 ellipsoidalVincenty.areaOf('VwPts', wrap=True): 1.200540e+11\n    test 27 ellipsoidalVincenty.areaOf('_JFK_LHR1', wrap=True): 4.004137e+13\n    test 28 ellipsoidalVincenty.areaOf('_JFK_LHR2', wrap=True): 8.008274e+13\n    test 29 ellipsoidalVincenty.areaOf('Antarctica', wrap=True): 1.366270e+13\n    test 30 ellipsoidalVincenty.areaOf('PtsFFI', wrap=True): 1.343272e+06\n    test 31 ellipsoidalVincenty.areaOf('RdpFFI', wrap=True): 1.294375e+06\n    test 32 ellipsoidalVincenty.areaOf('Pts', wrap=True): 1.271286e+11\n    test 33 ellipsoidalVincenty.areaOf('VwPts', wrap=True): 1.200540e+11\n    test 34 ellipsoidalVincenty.areaOf('_JFK_LHR1', wrap=True): 4.004137e+13\n    test 35 ellipsoidalVincenty.areaOf('_JFK_LHR2', wrap=True): 8.008274e+13\n    test 36 points.perimeterOf('Antarctica', closed=False, radius=6.37101e+06, wrap=True): 15620294.792  FAILED, KNOWN, expected 16765661.499\n    test 37 points.perimeterOf('PtsFFI', closed=False, radius=6.37101e+06, wrap=True): 3224.123\n    test 38 points.perimeterOf('RdpFFI', closed=False, radius=6.37101e+06, wrap=True): 3185.467\n    test 39 points.perimeterOf('Pts', closed=False, radius=6.37101e+06, wrap=True): 2762313.129\n    test 40 points.perimeterOf('VwPts', closed=False, radius=6.37101e+06, wrap=True): 2672557.850\n    test 41 points.perimeterOf('_JFK_LHR1', closed=False, radius=6.37101e+06, wrap=True): 16034670.768  FAILED, KNOWN, expected 15766750.804\n    test 42 points.perimeterOf('_JFK_LHR2', closed=False, radius=6.37101e+06, wrap=True): 26286857.120  FAILED, KNOWN, expected 25981742.208\n    test 43 sphericalTrigonometry.perimeterOf('Antarctica', closed=False, radius=6.37101e+06, wrap=True): 15470624.834\n    test 44 sphericalTrigonometry.perimeterOf('PtsFFI', closed=False, radius=6.37101e+06, wrap=True): 3224.123\n    test 45 sphericalTrigonometry.perimeterOf('RdpFFI', closed=False, radius=6.37101e+06, wrap=True): 3185.467\n    test 46 sphericalTrigonometry.perimeterOf('Pts', closed=False, radius=6.37101e+06, wrap=True): 2762313.116\n    test 47 sphericalTrigonometry.perimeterOf('VwPts', closed=False, radius=6.37101e+06, wrap=True): 2672556.441\n    test 48 sphericalTrigonometry.perimeterOf('_JFK_LHR1', closed=False, radius=6.37101e+06, wrap=True): 15789078.314\n    test 49 sphericalTrigonometry.perimeterOf('_JFK_LHR2', closed=False, radius=6.37101e+06, wrap=True): 26041264.665\n    test 50 ellipsoidalVincenty.perimeterOf('Antarctica', closed=False, wrap=True): 15531947.149  FAILED, KNOWN, expected 15531770.613\n    test 51 ellipsoidalVincenty.perimeterOf('PtsFFI', closed=False, wrap=True): 3229.337\n    test 52 ellipsoidalVincenty.perimeterOf('RdpFFI', closed=False, wrap=True): 3190.602\n    test 53 ellipsoidalVincenty.perimeterOf('Pts', closed=False, wrap=True): 2769709.679  FAILED, KNOWN, expected 2769709.412\n    test 54 ellipsoidalVincenty.perimeterOf('VwPts', closed=False, wrap=True): 2679915.858\n    test 55 ellipsoidalVincenty.perimeterOf('_JFK_LHR1', closed=False, wrap=True): 15766750.804  FAILED, KNOWN, expected 15763434.962\n    test 56 ellipsoidalVincenty.perimeterOf('_JFK_LHR2', closed=False, wrap=True): 25981742.208  FAILED, KNOWN, expected 25972353.155\n    test 57 ellipsoidalVincenty.perimeterOf('Antarctica', closed=True, wrap=True): 16831067.893  FAILED, KNOWN, expected 16830891.356\n    test 58 ellipsoidalVincenty.perimeterOf('PtsFFI', closed=True, wrap=True): 5491.045\n    test 59 ellipsoidalVincenty.perimeterOf('RdpFFI', closed=True, wrap=True): 5452.310\n    test 60 ellipsoidalVincenty.perimeterOf('Pts', closed=True, wrap=True): 5259077.510  FAILED, KNOWN, expected 5259077.242\n    test 61 ellipsoidalVincenty.perimeterOf('VwPts', closed=True, wrap=True): 5171947.931\n    test 62 ellipsoidalVincenty.perimeterOf('_JFK_LHR1', closed=True, wrap=True): 23926469.479  FAILED, KNOWN, expected 23921931.540\n    test 63 ellipsoidalVincenty.perimeterOf('_JFK_LHR2', closed=True, wrap=True): 31533501.608  FAILED, KNOWN, expected 31524112.555\n    test 64 geographiclib.WNZ-SAL(WGS84): 19959679.267\n    test 65 geographiclib.WNZ-SAL(WGS84): 354.50\n    test 66 geographiclib.WNZ-SAL(Sphere): 19967403.498\n    test 67 geographiclib.WNZ-SAL(Sphere): 354.50\n    test 68 geographiclib.BJS-SFO(WGS84): 9513998.0\n    test 69 geographiclib.BJS-SFO(WGS84): 237.6\n    test 70 geographiclib.BJS-SFO(Sphere): 9491734.6\n    test 71 geographiclib.BJS-SFO(Sphere): 237.6\n    test 72 geographiclib.SW-Perth(WGS84): 32.11195529\n    test 73 geographiclib.SW-Perth(WGS84): -63.95925278\n    test 74 geographiclib.SW-Perth(Sphere): 31.96383509\n    test 75 geographiclib.SW-Perth(Sphere): -64.14670854\n    test 76 geographiclib.JFK-LHR(WGS84): 40041368848742.5\n    test 77 geographiclib.JFK-LHR(WGS84): 5551759.4\n    test 78 geographiclib.JFK-LHR(Sphere): 40105639196534.8\n    test 79 geographiclib.JFK-LHR(Sphere): 5536892.0\n    test 80 geographiclib.Antarctica Peri(WGS84): 16831067.893\n    test 81 geographiclib.Antarctica Area(WGS84): 13662703680020.1\n    test 82 geographiclib.Antarctica Peri(Sphere): 16765661.499\n    test 83 geographiclib.Antarctica Area(Sphere): 13552524809674.8\n    test 84 isclockwise('Antarctica', adjust=False, wrap=True): 1.000\n    test 85 isclockwise('PtsFFI', adjust=False, wrap=True): 1.000\n    test 86 isclockwise('RdpFFI', adjust=False, wrap=True): 1.000\n    test 87 isclockwise('Pts', adjust=False, wrap=True): 1.000\n    test 88 isclockwise('VwPts', adjust=False, wrap=True): 1.000\n    test 89 isclockwise('_JFK_LHR1', adjust=False, wrap=True): 0.000\n    test 90 isclockwise('_JFK_LHR2', adjust=False, wrap=True): 0.000\n\n    77 of 90 testRoutes.py tests (85.6%) FAILED, incl. 21 KNOWN plus 56 DeprecationWarnings (pygeodesy 26.3.26 Python 3.13.12 64bit arm64 coverage 7.10.7 geographiclib 2.1 numpy 2.3.3 scipy 1.16.2 Math 2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 macOS 26.3.1 isLazy 1 -W  default) 7.658 sec\nrunning /Library/Framewo....n3.13 -W default ~/PyGeodesy/test/testSimplify.py\n./test/testSimplify.py:37: DeprecationWarning: function L{simplifyVWm<pygeodesy.deprecated.functions.simplifyVWm>} has been DEPRECATED on 2024.11.28, use function L{pygeodesy.simplifyVW}C{(points, modified=True, ...)}.\n  r = function(points, m, **kwds)\n./test/testSimplify.py:37: DeprecationWarning: function L{simplifyRDPm<pygeodesy.deprecated.functions.simplifyRDPm>} has been DEPRECATED on 2024.11.28, use function L{pygeodesy.simplifyRDP}C{(points, modified=True, ...)}.\n  r = function(points, m, **kwds)\n\n    testing testSimplify.py 23.03.27 (module pygeodesy.simplify 25.05.12) isLazy=1\n    test 1 simplify1(16614, adjust=True) 1m (127.836 ms): 16597\n    test 2 simplifyRW(16614, adjust=True, shortest=False, indices=True) 1m (896.553 ms): 7095\n    test 3 simplifyRW(16614, adjust=True, shortest=False) 1m (894.775 ms): 7095\n    test 4 simplifyRW(16614, adjust=True, shortest=True) 1m (865.137 ms): 8302\n    test 5 simplifyVWm(16614, adjust=True, indices=True) 1m (1.648 sec): 16328\n    test 6 simplifyVWm(16614, adjust=True) 1m (1.641 sec): 16328\n    test 7 simplifyVWm(16614, adjust=False) 1m (1.610 sec): 16373\n    test 8 simplifyRDPm(16614, adjust=True, shortest=False) 1m (1.616 sec): 15864\n    test 9 simplifyRDPm(16614, adjust=True, shortest=True) 1m (3.004 sec): 15867\n    test 10 simplifyRDPgr(16614, adjust=True, shortest=True, modified=True) 1m (119.486 ms): 15867\n    test 11 simplifyRDPm(16614, adjust=False, shortest=False) 1m (1.598 sec): 15869\n    test 12 simplifyRDPfw(16614, adjust=False, shortest=False, modified=True) 1m (62.339 ms): 15869\n    test 13 simplifyRDP(16614, adjust=True, shortest=True, indices=True) 1m (43.619 sec): 10960\n    test 14 simplifyRDP(16614, adjust=True, shortest=True) 1m (43.647 sec): 10960\n    test 15 simplifyRDPgr(16614, adjust=True, shortest=True, modified=False) 1m (1.218 sec): 10960\n    test 16 simplifyRDP(16614, adjust=False, shortest=False, indices=True) 1m (22.208 sec): 11248\n    test 17 simplifyRDP(16614, adjust=False, shortest=False) 1m (22.201 sec): 11248\n    test 18 simplifyRDPfw(16614, adjust=False, shortest=False, modified=False) 1m (475.123 ms): 11248\n    test 19 simplifyVW(1661, adjust=True) 1m (163.576 ms): 1641\n    test 20 simplifyVW(1661, adjust=False) 1m (163.420 ms): 1646\n    test 21 simplifyRDP(1661, adjust=True, shortest=False) 1m (1.675 sec): 1231\n    test 22 simplifyRDP(1661, adjust=True, shortest=True) 1m (3.261 sec): 1231\n    test 23 simplifyRDPgr(1661, adjust=True, shortest=True) 1m (93.338 ms): 1231\n    test 24 simplifyRDP(1661, adjust=False, shortest=False) 1m (1.669 sec): 1267\n    test 25 simplifyRDPfw(1661, adjust=False, shortest=False) 1m (36.477 ms): 1267\n    test 26 simplifyRDPgr(1661, adjust=False, shortest=True) 1m (67.030 ms): 1267\n    test 27 simplifyVW(69, adjust=False) 1m (6.500 ms): 69\n    test 28 simplifyRDP(69, adjust=False, shortest=False) 1m (34.355 ms): 50\n    test 29 simplifyRDPfw(69, adjust=False, shortest=False) 1m (830.889 us): 50\n    test 30 simplifyRDPgr(69, adjust=False, shortest=True) 1m (1.468 ms): 50\n    test 31 simplifyRDPgr(69, adjust=True, shortest=True) 1m (2.001 ms): 45\n    test 32 simplifyRDP(5, adjust=False, shortest=True) 1m (576.973 us): 5\n    test 33 simplifyVW(5, adjust=False, attr='name') 30m (400.066 us): 5\n    test 34 numpy.__version__: 2.3.3\n    test 35 simplify1(69, adjust=False) 1m (914.812 us): 69\n    test 36 simplify1(69, adjust=False) result: <class 'numpy.ndarray'>\n    test 37 simplifyRW(69, adjust=False) 1m (3.925 ms): 33\n    test 38 simplifyRW(69, adjust=False) result: <class 'numpy.ndarray'>\n    test 39 simplifyRDP(69, adjust=False) 1m (37.635 ms): 50\n    test 40 simplifyRDP(69, adjust=False) result: <class 'numpy.ndarray'>\n    test 41 simplifyRDPm(69, adjust=False) 1m (7.492 ms): 67\n    test 42 simplifyRDPm(69, adjust=False) result: <class 'numpy.ndarray'>\n    test 43 simplifyRDPfw(69, adjust=False) 1m (3.760 ms): 50\n    test 44 simplifyRDPgr(69, adjust=False) 1m (6.853 ms): 50\n    test 45 simplifyVW(69, adjust=False) 1m (7.351 ms): 69\n    test 46 simplifyVW(69, adjust=False) result: <class 'numpy.ndarray'>\n    test 47 simplifyVWm(69, adjust=False) 1m (7.351 ms): 69\n    test 48 simplifyVWm(69, adjust=False) result: <class 'numpy.ndarray'>\n    test 49 simplify1(69, adjust=True) 1m (906.944 us): 69\n    test 50 simplify1(69, adjust=True) result: <class 'numpy.ndarray'>\n    test 51 simplifyRW(69, adjust=True) 1m (4.107 ms): 31\n    test 52 simplifyRW(69, adjust=True) result: <class 'numpy.ndarray'>\n    test 53 simplifyRDP(69, adjust=True) 1m (37.726 ms): 45\n    test 54 simplifyRDP(69, adjust=True) result: <class 'numpy.ndarray'>\n    test 55 simplifyRDPm(69, adjust=True) 1m (7.534 ms): 67\n    test 56 simplifyRDPm(69, adjust=True) result: <class 'numpy.ndarray'>\n    test 57 simplifyRDPfw(69, adjust=True) 1m (4.027 ms): 45\n    test 58 simplifyRDPgr(69, adjust=True) 1m (7.354 ms): 45\n    test 59 simplifyVW(69, adjust=True) 1m (7.401 ms): 69\n    test 60 simplifyVW(69, adjust=True) result: <class 'numpy.ndarray'>\n    test 61 simplifyVWm(69, adjust=True) 1m (7.403 ms): 69\n    test 62 simplifyVWm(69, adjust=True) result: <class 'numpy.ndarray'>\n    test 63 simplify1(69, adjust=False, indices=True) 1m (802.994 us): 69\n    test 64 simplify1(69, adjust=False, indices=True) result: <class 'list'>\n    test 65 simplifyRW(69, adjust=False, indices=True) 1m (3.854 ms): 33\n    test 66 simplifyRW(69, adjust=False, indices=True) result: <class 'list'>\n    test 67 simplifyRDP(69, adjust=False, indices=True) 1m (37.632 ms): 50\n    test 68 simplifyRDP(69, adjust=False, indices=True) result: <class 'list'>\n    test 69 simplifyRDPm(69, adjust=False, indices=True) 1m (7.402 ms): 67\n    test 70 simplifyRDPm(69, adjust=False, indices=True) result: <class 'list'>\n    test 71 simplifyRDPfw(69, adjust=True, indices=True) 1m (3.974 ms): 45\n    test 72 simplifyRDPgr(69, adjust=True, indices=True) 1m (7.336 ms): 45\n    test 73 simplifyVW(69, adjust=False, indices=True) 1m (7.296 ms): 69\n    test 74 simplifyVW(69, adjust=False, indices=True) result: <class 'list'>\n    test 75 simplifyVWm(69, adjust=False, indices=True) 1m (7.294 ms): 69\n    test 76 simplifyVWm(69, adjust=False, indices=True) result: <class 'list'>\n\n    12 of 76 testSimplify.py tests (15.8%) FAILED, incl. 12 DeprecationWarnings (pygeodesy 26.3.26 Python 3.13.12 64bit arm64 coverage 7.10.7 geographiclib 2.1 numpy 2.3.3 scipy 1.16.2 Math 2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 macOS 26.3.1 isLazy 1 -W  default) 2:34.854\nrunning /Library/Framewo....n3.13 -W default ~/PyGeodesy/test/testSpherical.py\n./test/testLatLon.py:276: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.sphericalNvector.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', p.cosineAndoyerLambertTo(q), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:277: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.sphericalNvector.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', q.cosineAndoyerLambertTo(p), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:279: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.sphericalNvector.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', p.cosineForsytheAndoyerLambertTo(q), '124801.098' if Sph else '125205.965', fmt='%.3f')\n./test/testLatLon.py:280: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.sphericalNvector.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', q.cosineForsytheAndoyerLambertTo(p), '124801.098' if Sph else '125205.965', fmt='%.3f')\n./pygeodesy/basics.py:637: DeprecationWarning: Conversion of an array with ndim > 0 to a scalar is deprecated, and will error in future. Ensure you extract a single element from your array before performing this operation. (Deprecated NumPy 1.25.)\n  return tuple(map(fun, *xs, **strict) if strict else map(fun, *xs))\n\n    testing testSpherical.py 23.10.23 isLazy=1\n\n    testLatLon(pygeodesy.sphericalNvector, 25.05.27)\n    test 1 isEllipsoidal: False\n    test 2 isSpherical: True\n    test 3 lat/lonDMS: 52.20472°N, 000.14056°E\n    test 4 lat/lonDMS F_DM: 52°12.283′N, 000°08.434′E\n    test 5 lat/lonDMS F_DM: 52°12.2832′N, 000°08.4336′E\n    test 6 lat/lonDMS F_DMS: 52°12′17″N, 000°08′26″E\n    test 7 lat/lonDMS F_DMS: 52°12′17.0″N, 000°08′26.0″E\n    test 8 lat/lonDMS F_RAD: 0.911144N, 0.002453E\n    test 9 isequalTo: True\n    test 10 isequalTo: True\n    test 11 latlon2: 52.20472, 0.14056\n    test 12 latlon2: 52.2047, 0.1406\n    test 13 latlon2: 52.205, 0.141\n    test 14 latlon2: 52.2, 0.14\n    test 15 latlon2: 52.2, 0.1\n    test 16 latlon2: 52.0, 0.0\n    test 17 chordTo: 12036677.26\n    test 18 chordTo: 12036463.78\n    test 19 initialBearingTo: 156.1666\n    test 20 initialBearingTo: 65.8921\n    test 21 initialBearingTo: 0.0\n    test 22 initialBearingTo: 180.0\n    test 23 finalBearingTo: 157.8904\n    test 24 finalBearingTo: 93.8581\n    test 25 bearingTo2: 156.1666, 157.8904\n    test 26 ispolar: True\n    test 27 copy: True\n    test 28 __eq__: True\n    test 29 __ne__: False\n    test 30 equirectangularTo: 404329.56\n    test 31 distanceTo: 404279.720589\n    test 32 distanceTo: 404279.720589\n    test 33 distanceTo: 2145\n    test 34 distanceTo: 18013602.92\n    test 35 distanceTo: 20015114.35\n    test 36 intermediateTo: 51.372084°N, 000.707337°E\n    test 37 intermediateTo: True\n    test 38 intermediateTo: 404279.721\n    test 39 intermediateTo+5: 35.160975°N, 008.989542°E\n    test 40 intermediateTo+5: 5.000\n    test 41 intermediateTo-4: 64.911647°N, 013.726301°W\n    test 42 intermediateTo-4: 4.000\n    test 43 intermediateTo-h: 125.000\n    test 44 intermediateChordTo: 51.372294°N, 000.707192°E\n    test 45 intermediateChordTo: True\n    test 46 intermediateChordTo-h: 125.000\n    test 47 midpointTo: 50.536327°N, 001.274614°E\n    test 48 destination: 51.513546°N, 000.098345°W\n    test 49 destination: 51°30′49″N, 000°05′54″W\n    test 50 destination: 34°37′N, 116°33′W\n    test 51 destination: 34.613647°N, 116.55116°W\n    test 52 destination: 0.604122N, 2.034201W\n    test 53 destination: 31.96383509°N, 064.37329146°E\n    test 54 alongTrackDistanceTo: 62331.59\n    test 55 alongTrackDistanceTo: 62331.58\n    test 56 alongTrackDistanceTo: 99.588\n    test 57 alongTrackDistanceTo: -7702.7\n    test 58 alongTrackDistanceTo: 7587.6\n    test 59 crossTrackDistanceTo: -305.66528160755445  FAILED, KNOWN, expected TypeError\n    test 60 crossTrackDistanceTo: -307.55\n    test 61 crossTrackDistanceTo: 7.4524\n    test 62 greatCircle: (-0.79408, 0.12856, 0.59406)\n    test 63 neareston6: (LatLon(45°00′00.0″N, 001°00′00.0″E), 4773243.784965, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E))  FAILED, KNOWN, expected (LatLon(45°00′00.0″N, 001°00′00.0″E), 4755443.4294, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E))\n    test 64 neareston6: (LatLon(45°30′03.93″N, 002°00′00.0″E), 38968.531578, 1.501091, 2, LatLon(45°00′00.0″N, 002°00′00.0″E), LatLon(46°00′00.0″N, 002°00′00.0″E))  FAILED, KNOWN, expected (LatLon(45°30′03.94″N, 002°00′00.0″E), 39078.729285, 1.501072, 2, LatLon(45°00′00.0″N, 002°00′00.0″E), LatLon(46°00′00.0″N, 002°00′00.0″E))\n    test 65 chordTo: 124799.103\n    test 66 cosineAndoyerLambertTo: 124801.098\n    test 67 cosineAndoyerLambertTo: 124801.098\n    test 68 cosineForsyheAndoyerLambertTo: 124801.098\n    test 69 cosineForsyheAndoyerLambertTo: 124801.098\n    test 70 cosineLawTo: 124801.098\n    test 71 cosineLawTo: 124801.098\n    test 72 equirectangularTo: 124804.754\n    test 73 equirectangularTo: 124804.754\n    test 74 euclideanTo: 130015.089\n    test 75 euclideanTo: 130015.089\n    test 76 flatLocalTo: 124804.754\n    test 77 flatLocalTo: 124804.754\n    test 78 flatPolarTo: 133663.257\n    test 79 flatPolarTo: 133663.257\n    test 80 hartzell: 53.3206°N, 001.7297°W\n    test 81 hartzell: 53.3206°N, 001.7297°W\n    test 82 height4: 0.0\n    test 83 height4: (3803904.2, -114870.8, 5109488.3, 0.0)\n    test 84 height4: 53°19′14.2″N, 001°43′46.9″W\n    test 85 height4: 53°19′14.2″N, 001°43′46.9″W\n    test 86 haversineTo: 124801.098\n    test 87 haversineTo: 124801.098\n    test 88 hubenyTo: <bound method LatLonBase.flatLocalTo of LatLon(53°19′14.16″N, 001°43′46.92″W)>\n    test 89 hubenyTo: <bound method LatLonBase.flatLocalTo of LatLon(53°11′19.32″N, 000°08′00.24″E)>\n    test 90 thomasTo: 124801.098\n    test 91 thomasTo: 124801.098\n    test 92 vincentysTo: 124801.098\n    test 93 vincentysTo: 124801.098\n    test 94 greatCircleTo: (-0.79408, 0.12859, 0.59406)\n    test 95 isclockwise: False\n    test 96 isclockwise*: False\n    test 97 isclockwise: True\n    test 98 isclockwise*: True\n    test 99 isclockwise: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 100 isclockwise*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 101 isclockwise: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 102 isclockwise*: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 103 isconvex: False\n    test 104 isconvex*: False\n    test 105 isconvex: True\n    test 106 isconvex*: True\n    test 107 isconvex: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 108 isconvex*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 109 isenclosedBy1: True\n    test 110 isenclosedBy1*: True\n    test 111 isenclosedBy2: False\n    test 112 isenclosedBy2*: False\n    test 113 isenclosedBy3: False\n    test 114 isenclosedBy3*: False\n    test 115 isenclosedBy4: False\n    test 116 isenclosedBy4*: False\n    test 117 isenclosedBy5: False\n    test 118 isenclosedBy5*: False\n    test 119 isenclosedBy6: True\n    test 120 isenclosedBy6*: True\n    test 121 isenclosedBy7: True\n    test 122 isenclosedBy7*: True\n    test 123 isenclosedBy-CCW: True\n    test 124 isenclosedBy-CW : True\n    test 125 isenclosedBy-CCW: True\n    test 126 initialBearingTo: 102.432182\n    test 127 compassAngleTo: 100.017\n    test 128 compassAngleTo: 105.599\n    test 129 initialBearingTo: 288.715918\n    test 130 compassAngleTo: 280.017\n    test 131 compassAngleTo: 285.599\n    test 132 equirectangularTo: 592.185\n    test 133 distanceTo: 591.831\n    test 134 compassAngleTo: 0.0\n    test 135 compassAngleTo: 45.0\n    test 136 compassAngleTo: 90.0\n    test 137 compassAngleTo: 180.0\n    test 138 compassAngleTo: 225.0\n    test 139 compassAngleTo: 315.0\n    test 140 compassAngleTo: 270.0\n    test 141 compassAngleTo: 359.4\n    test 142 latlon2: (53.0, 1.0)\n    test 143 philam2: (0.93, 0.02)\n    test 144 compassAngleTo: 31\n    test 145 compassAngleTo: 45\n\n    test 146 boundsOf: <class 'pygeodesy.namedTuples.Bounds2Tuple'>\n    test 147 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 148 latlon2: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 149 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 150 isequalTo: <class 'bool'>\n    test 151 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 152 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 153 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 154 xyz3: <class 'tuple'>\n    test 155 xyzh: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 156 compassAngleTo: <class 'float'>\n    test 157 cosineLawTo: <class 'float'>\n    test 158 euclideanTo: <class 'float'>\n    test 159 flatLocalTo: <class 'float'>\n    test 160 flatPolarTo: <class 'float'>\n    test 161 haversineTo: <class 'float'>\n    test 162 hubenyTo: <class 'float'>\n    test 163 vincentysTo: <class 'float'>\n./test/testVectorial.py:128: DeprecationWarning: function L{nearestOn<pygeodesy.vector2d.nearestOn>} has been DEPRECATED on 2025.05.06, use L{pygeodesy.nearestOn<pygeodesy.vector3d.nearestOn>}.\n  t = vector2d.nearestOn(Nvector(0, 0, 0), p1, p2)\n./test/testSpherical.py:318: DeprecationWarning: method L{rhumbBearingTo<pygeodesy.sphericalNvector.LatLon.rhumbBearingTo>} has been DEPRECATED, use method C{.rhumbAzimuthTo}.\n  b = p.rhumbBearingTo(q)  # rhumbAzimuthTo\n    test 164 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 165 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 166 toLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 167 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 168 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 169 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 170 toVector: (3922384.659522, 0.0, 5020423.423198)\n    test 171 toVector3d: (0.61566, 0.0, 0.78801)\n    test 172 trilaterate5 (pygeodesy.sphericalNvector) .min: 223.305\n    test 173 trilaterate5 (pygeodesy.sphericalNvector) .point: 42.67456065°N, 002.49539502°E\n    test 174 trilaterate5 (pygeodesy.sphericalNvector) .min- is .maxPoint: True\n    test 175 trilaterate5 (pygeodesy.sphericalNvector) .n: 1\n    test 176 trilaterate5 (pygeodesy.sphericalNvector) .error: sphericalNvector.LatLon.trilaterate5(area=True), MRO(nvectorBase.LatLonNvectorBase, sphericalBase.LatLonSphericalBase, latlonBase.LatLonBase, named._NamedBase, ecefLocals._EcefLocal, named._Named): not implemented\n\n    test 177 radii11: Radii11Tuple(rA=7701.409157, rB=1361.530045, rC=499.257353, cR=4886.694635, rIn=739.915482, riS=179.523525, roS=6087.250896, a=1860.787398, b=8200.666509, c=9062.939201, s=9562.196554)\n    test 178 circum4 (pygeodesy.sphericalNvector) .radius: 3185505.323  FAILED, KNOWN, expected 3184256.748\n    test 179 circum4 (pygeodesy.sphericalNvector) .center: 42.674561°N, 002.495395°E, -3185503.45m  FAILED, KNOWN, expected 43.054367°N, 002.942573°E, -3183993.92m\n    test 180 circum4 (pygeodesy.sphericalNvector) .rank: 3\n    test 181 circum4 (pygeodesy.sphericalNvector) .residuals: ()\n    test 182 circum4 (pygeodesy.sphericalNvector) .d1: 4886.695  FAILED, KNOWN, expected 57818.033\n    test 183 circum4 (pygeodesy.sphericalNvector) .d2: 4886.695  FAILED, KNOWN, expected 57834.176\n    test 184 circum4 (pygeodesy.sphericalNvector) .d3: 4886.695  FAILED, KNOWN, expected 57830.992\n    test 185 circum4 (pygeodesy.sphericalNvector) .datum: name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84\n    test 186 circum4 (pygeodesy.sphericalNvector) .Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 187 radii11: Radii11Tuple(rA=328257.82694, rB=782282.176109, rC=782282.176109, cR=782304.746354, rIn=325773.738834, riS=85162.638484, roS=INF, a=1564564.352218, b=1110540.003049, c=1110540.003049, s=1892822.179158)\n    test 188 circin6 (pygeodesy.sphericalNvector) .rB+rC: 1564564.352\n    test 189 circin6 (pygeodesy.sphericalNvector) .rC+pA: 1110540.003\n    test 190 circin6 (pygeodesy.sphericalNvector) .rA+rB: 1110540.003\n    test 191 circin6 (pygeodesy.sphericalNvector) .radius: 325773.739  FAILED, KNOWN, expected 325058.721\n    test 192 circin6 (pygeodesy.sphericalNvector) .center: 02.938473°N, 002.942346°E, -40128.57m  FAILED, KNOWN, expected 02.948531°N, 002.932537°E, -40041.19m\n    test 193 circin6 (pygeodesy.sphericalNvector) .deltas: (0.0, 0.0, 0.421782)  FAILED, KNOWN, expected (0.0, 0.0, 0.090491)\n    test 194 circin6 (pygeodesy.sphericalNvector) .cA: 05.019001°N, 005.038369°E, -48209.76m  FAILED, KNOWN, expected 05.04314°N, 005.014578°E, -48104.09m\n    test 195 circin6 (pygeodesy.sphericalNvector) .cB: 00.0°N, 002.951508°E, -20185.00m  FAILED, KNOWN, expected 00.0°N, 002.941713°E, -20168.62m\n    test 196 circin6 (pygeodesy.sphericalNvector) .cC: 02.951508°N, 000.0°E, -20185.00m  FAILED, KNOWN, expected 02.961566°N, 000.0°E, -20113.46m\n    test 197 circin6 (pygeodesy.sphericalNvector) .dA: 327983.380  FAILED, KNOWN, expected 327263.596\n    test 198 circin6 (pygeodesy.sphericalNvector) .dB: 326745.373  FAILED, KNOWN, expected 326036.153\n    test 199 circin6 (pygeodesy.sphericalNvector) .dC: 326745.373  FAILED, KNOWN, expected 326020.432\n\n    test 200 area cw/ccw: 1.0\n\n    testVectorial(pygeodesy.sphericalNvector, 25.05.27)\n    test 201 crossTrackDistanceTo: -305.67\n    test 202 crossTrackDistanceTo: -307.55\n\n    test 203 toLatLon: 44.995674°N, 045.0°E\n    test 204 toNvector: (0.50004, 0.50004, 0.70705)\n    test 205 isequalTo: False\n    test 206 isequalTo: True\n    test 207 length: 0.99992449715\n    test 208 euclid: 0.99995577\n    test 209 length: 1.00\n    test 210 euclid: 1.0000\n    test 211 meanOf: 44.995674°N, 045.0°E\n    test 212 meanOf: LatLon\n    test 213 apply: (0.5, 0.5, 0.707)\n    test 214 init: (0.5, 0.5, 0.707)\n    test 215 i***: (0.5, 0.5, 0.707)\n    test 216 abs: 0.99992449715\n    test 217 sumOf: (52.70504, 0.61904, 0.70705)\n    test 218 sumOf: Nv\n    test 219 sumOf: sumOf\n    test 220 length: 52.7134151513\n    test 221 sizeof: 217  FAILED, KNOWN, expected 128\n    test 222 length: 52.2051356286\n    test 223 sizeof: 320  FAILED, KNOWN, expected 247\n    test 224 copy: True\n    test 225 length: 52.2051356286\n    test 226 sizeof: 320\n\n    test 227 toCartesian: [3185744.919, 3185744.919, 4504643.315]\n    test 228 toLatLon: 44.995674°N, 045.0°E\n    test 229 toNvector: (0.50004, 0.50004, 0.70705)  FAILED, KNOWN, expected (0.50004, 0.50004, 0.70705, -0.00)\n\n    test 230 intersection: 02.499372°N, 002.5°E\n\n    test 231 intersection1: 02.499372°N, 002.5°E\n    test 232 intersection2: 02.499372°S, 177.5°W\n\n    test 233 isenclosedBy: True\n    test 234 isenclosedBy*: True\n    test 235 isenclosedBy: True\n    test 236 isenclosedBy*: True\n\n    test 237 iswithin: False\n    test 238 iswithin: True\n\n    test 239 nearestOn: 51.0°N, 001.0°E\n    test 240 nearestOn: 50.987°N, 000.298°W\n    test 241 nearestOn: 51.0°N, 002.0°E\n    test 242 nearestOn: 50.995°N, 002.655°E\n    test 243 nearestOn: 51.0°N, 001.9°E\n    test 244 nearestOn: True\n    test 245 distanceTo: 42.712\n    test 246 nearestOn: 51.0°N, 002.0°E\n    test 247 nearestOn: True\n    test 248 nearestOn: 00.0°N, 000.0°E\n    test 249 nearestOn: True\n    test 250 nearestOn: 00.0°N, 020.0°E\n    test 251 nearestOn: True\n    test 252 nearestOn: 02.0°N, 002.0°E\n    test 253 nearestOn: 02.0°N, 002.0°E\n\n    test 254 neareston6: (LatLon(45°00′00.0″N, 001°00′00.0″E), 4773243.784965, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E))\n    test 255 neareston6: (LatLon(45°30′03.93″N, 002°00′00.0″E), 38968.531578, 1.501091, 2, LatLon(45°00′00.0″N, 002°00′00.0″E), LatLon(46°00′00.0″N, 002°00′00.0″E))\n\n    test 256 BasseC: 47.3038°N, 002.5721°W\n    test 257 BasseH: 47.311067°N, 002.528617°W\n    test 258 triangulate: 47.323667°N, 002.568501°W\n    test 259 triangulate: True\n\n    test 260 trilaterate: 37.419078°N, 121.960579°W\n    test 261 trilaterate: True\n    test 262 trilaterate: 08.068912°S, 034.888699°W\n    test 263 trilaterate: True\n    test 264 trilaterate: 08.068912°S, 034.888695°W  FAILED, KNOWN, expected 08.068912°S, 034.888699°W\n    test 265 trilaterate: True\n    test 266 trilaterate: 42.67456065°N, 002.49539502°E\n    test 267 trilaterate: distance1 (5110), distance2 (5110), distance3 (5110), point1 (LatLon(42°41′19.82″N, 002°26′19.89″E)), point2 (LatLon(42°38′07.52″N, 002°31′21.25″E)) or point3 (LatLon(42°38′43.44″N, 002°30′17.32″E)): no intersection (useZ=False, wrap=False, z=-8.13526e-05)\n\n    testNvector(pygeodesy.sphericalNvector, 25.05.27)\n    test 268 sumOf: Nvector\n    test 269 ecef.x, .y, .z: 3185744.91853, 3185744.91853, 4504643.3148\n    test 270 ecef.lat, .lon: 44.995674, 45.0\n    test 271 ecef.height: -0.0\n    test 272 ecef.M: -0.707106781, -0.499962243, 0.500037754, 0.707106781, -0.499962243, 0.500037754, 0.0, 0.707160174, 0.707053385\n    test 273 .isEllipsoidal: False\n    test 274 .isSpherical: True\n    test 275 .latlon: (44.995674, 45.0)\n    test 276 .philam: (0.785323, 0.785398)\n    test 277 .latlonheight: (44.995674, 45.0, 0.0)\n    test 278 .philamheight: (0.785323, 0.785398, 0.0)\n    test 279 parse: (0.5, 0.5, 0.707)\n    test 280 cmp: 0\n    test 281 eq: True\n    test 282 ge: True\n    test 283 gt: False\n    test 284 le: True\n    test 285 lt: False\n    test 286 ne: False\n    test 287 *: (1.0, 1.0, 1.414)\n    test 288 +: (1.0, 1.0, 1.414)\n    test 289 /: (0.5, 0.5, 0.707)\n    test 290 -: (0.5, 0.5, 0.707)\n    test 291 @: (0.0, 0.0, 0.0)\n    test 292 @: (0.0, 0.0, 0.0)\n    test 293 rotate: (0.26268, 0.26268, 0.37143)\n./test/testLatLon.py:276: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.sphericalTrigonometry.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', p.cosineAndoyerLambertTo(q), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:277: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.sphericalTrigonometry.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', q.cosineAndoyerLambertTo(p), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:279: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.sphericalTrigonometry.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', p.cosineForsytheAndoyerLambertTo(q), '124801.098' if Sph else '125205.965', fmt='%.3f')\n./test/testLatLon.py:280: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.sphericalTrigonometry.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', q.cosineForsytheAndoyerLambertTo(p), '124801.098' if Sph else '125205.965', fmt='%.3f')\n    test 294 crosserrors: True\n    test 295 0: divisor (0): float division by zero\n    test 296 intersections2: (500.0, 0.0, 0.0)\n    test 297 nearestOn: (0.0, 0.0, 0.0)\n    test 298 nearestOn: True\n    test 299 nearestOn: (100.0, 100.0, 100.0)\n    test 300 nearestOn: True\n    test 301 iscolinearWith: False\n    test 302 iscolinearWith: True\n    test 303 nearestOn: (0.0, 0.0, 0.0)\n    test 304 nearestOn: True\n    test 305 nearestOn: (100.0, 100.0, 100.0)\n    test 306 nearestOn: True\n    test 307 iscolinearWith: False\n    test 308 iscolinearWith: True\n\n    testSpherical(pygeodesy.sphericalNvector, 25.05.27)\n    test 309 isSpherical: True\n    test 310 isEllipsoidal: False\n    test 311 datum: name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84\n    test 312 ellipsoid: name='SphereAuthalic', a=6371000, f=0, f_=0, b=6371000\n    test 313 datum: name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84\n    test 314 isSpherical: True\n    test 315 isEllipsoidal: False\n    test 316 intersection1: 50.907608°N, 004.508575°E\n    test 317 intersection1: 50°54′27.39″N, 004°30′30.87″E\n    test 318 intersection1: True\n    test 319 intersection2: True\n    test 320 intersection2: 43.5719°N, 116.188757°W\n    test 321 intersection2: 43°34′18.84″N, 116°11′19.53″W\n    test 322 intersection3: 51.882166°N, 000.267801°E\n    test 323 intersection4: 00.0°S, 026.565051°E  FAILED, KNOWN, expected 00.0°N, 026.565051°E\n    test 324 intersection5: 26.565051°N, 000.0°W\n    test 325 intersection6: 50.907809°N, 004.50841°E\n    test 326 intersection7: 01°52′46.41″S, 005°39′06.87″E\n    test 327 intersection8: 28°15′40.35″S, 032°14′33.2″E\n    test 328 toward 1,1 N,E nearest: 00.999848°N, 001.0°E\n    test 329 toward 1,1 E,N nearest: 00.999848°N, 001.0°E\n    test 330 toward 1,1 N,E antipodal: 00.999848°S, 179.0°W\n    test 331 toward/away 1,1 N,W antipodal: 00.999848°N, 001.0°E\n    test 332 toward/away 1,1 W,N antipodal: 00.999848°S, 179.0°W\n    test 333 toward/away 1,1 S,E antipodal: 00.999848°S, 179.0°W\n    test 334 toward/away 1,1 E,S antipodal: 00.999848°N, 001.0°E\n    test 335 away 1,1 S,W antipodal: 00.999848°S, 179.0°W\n    test 336 away 1,1 W,S antipodal: 00.999848°S, 179.0°W\n    test 337 1E/90E N,E antipodal: 00.017454°N, 001.0°E\n    test 338 1E/90E N,E nearest: 00.017454°N, 179.0°W\n    test 339 brng+end 1a: 01.000305°N, 002.0°E\n    test 340 brng+end 1b: 01.000305°N, 002.0°E\n    test 341 brng+end 2a: 01.000305°S, 178.0°W\n    test 342 brng+end 2b: 01.000305°S, 178.0°W\n    test 343 intersection7: 02.499372°N, 002.5°E\n    test 344 maxLat0: 90.0\n    test 345 maxLat1: 89.0\n    test 346 maxLat90: 0.0\n    test 347 minLat0: -90.0\n    test 348 minLat1: -89.0\n    test 349 minLat90: -0.0\n    test 350 parse: 00.0°N, 000.0°E\n\n    test 351 intersecant2: 04.260346°N, 006.272173°E and 01.250608°S, 000.749094°E\n    test 352 intersecant2: 700000\n    test 353 intersecant2: 699999  FAILED, KNOWN, expected 700000\n    test 354 intersecant2: 45.014  FAILED, KNOWN, expected 45.000\n\n    test 355 intersecant2: 04.261539°N, 006.265474°E and 00.0°N, 002.0°E\n    test 356 intersecant2: 699248  FAILED, KNOWN, expected 700000\n    test 357 intersecant2: 598698  FAILED, KNOWN, expected 700000\n    test 358 intersecant2: 45.000\n\n    test 359 intersecant2: 04.262363°N, 006.2663°E and 01.258709°S, 000.74119°E\n    test 360 intersecant2: 699302  FAILED, KNOWN, expected 700000\n    test 361 intersecant2: 700080  FAILED, KNOWN, expected 700000\n    test 362 intersecant2: 45.021  FAILED, KNOWN, expected 45.000\n\n    test 363 intersecant4: 02.375133°N, 024.894142°E and 25.0°S, 000.0°E  FAILED, KNOWN, expected 00.0°N, 025.0°E and 25.0°S, 000.0°E\n    test 364 intersecant4: 00.0°S, 025.0°E and 25.0°S, 000.0°E  FAILED, KNOWN, expected 00.0°N, 025.0°E and 25.0°S, 000.0°E\n    test 365 intersecant4: 02.375133°N, 024.894142°E and 25.0°S, 000.0°E  FAILED, KNOWN, expected 00.0°N, 025.0°E and 25.0°S, 000.0°E\n    test 366 intersecant4: 00.0°S, 025.0°E and 25.0°S, 000.0°E  FAILED, KNOWN, expected 00.0°N, 025.0°E and 25.0°S, 000.0°E\n\n    test 367 intersecant4: 00.725365°N, 026.558638°E and 25.747°S, 000.826763°W  FAILED, KNOWN, expected 00.0°N, 025.0°E and 25.0°S, 000.0°E\n    test 368 intersecant4: 00.725365°N, 026.558638°E and 25.747°S, 000.826763°W  FAILED, KNOWN, expected 00.0°N, 025.0°E and 25.0°S, 000.0°E\n    test 369 intersecant4: 00.021635°S, 025.811619°E and 25.0°S, 000.0°E  FAILED, KNOWN, expected 00.0°N, 025.0°E and 25.0°S, 000.0°E\n    test 370 intersecant4: 00.021635°S, 025.811619°E and 25.0°S, 000.0°E  FAILED, KNOWN, expected 00.0°N, 025.0°E and 25.0°S, 000.0°E\n\n    test 371 intersecant4: 00.807845°N, 026.641126°E and 25.0°S, 000.0°E  FAILED, KNOWN, expected 00.0°N, 025.0°E and 25.0°S, 000.0°E\n    test 372 intersecant4: 01.624807°N, 026.572609°E and 25.0°S, 000.0°E  FAILED, KNOWN, expected 00.0°N, 025.0°E and 25.0°S, 000.0°E\n    test 373 intersecant4: 00.807845°N, 026.641126°E and 25.0°S, 000.0°E  FAILED, KNOWN, expected 00.0°N, 025.0°E and 25.0°S, 000.0°E\n    test 374 intersecant4: 01.624807°N, 026.572609°E and 25.0°S, 000.0°E  FAILED, KNOWN, expected 00.0°N, 025.0°E and 25.0°S, 000.0°E\n\n    test 375 intersecant2.1: LatLon(04°04′02.63″S, 029°43′21.16″W) Napier: 3333000.000\n    test 376 intersecant2.1: LatLon(29°58′27.6″N, 000°01′46.65″W) Napier: 3333000.000\n    test 377 intersecant2.1: LatLon(29°58′27.6″N, 000°01′46.65″W) : 3332999.886  FAILED, KNOWN, expected 3333000.000\n    test 378 intersecant2.1: LatLon(02°29′47.81″S, 028°30′01.84″W) : 3180236.460  FAILED, KNOWN, expected 3333000.000\n\n    test 379 intersecant2.2: LatLon(04°04′02.63″S, 029°43′21.16″E) Napier: 3333000.000\n    test 380 intersecant2.2: LatLon(29°58′27.6″N, 000°01′46.65″E) Napier: 3333000.000\n    test 381 intersecant2.2: LatLon(02°29′47.81″S, 028°30′01.84″E) : 3180236.460  FAILED, KNOWN, expected 3333000.000\n    test 382 intersecant2.2: LatLon(29°58′27.6″N, 000°01′46.65″E) : 3332999.886  FAILED, KNOWN, expected 3333000.000\n\n    test 383 intersecant2.3: LatLon(04°04′02.63″N, 029°43′21.16″W) Napier: 3333000.000\n    test 384 intersecant2.3: LatLon(29°58′27.6″S, 000°01′46.65″W) Napier: 3333000.000\n    test 385 intersecant2.3: LatLon(29°58′27.6″S, 000°01′46.65″W) : 3332999.886  FAILED, KNOWN, expected 3333000.000\n    test 386 intersecant2.3: LatLon(02°29′47.81″N, 028°30′01.84″W) : 3180236.460  FAILED, KNOWN, expected 3333000.000\n\n    test 387 intersecant2.4: LatLon(29°50′37.22″S, 002°56′03.42″W) Napier: 3333000.000\n    test 388 intersecant2.4: LatLon(00°29′30.34″N, 029°58′14.48″E) Napier: 3333000.000\n    test 389 intersecant2.4: LatLon(00°08′01.47″N, 029°38′09.18″E) : 3295394.784  FAILED, KNOWN, expected 3333000.000\n    test 390 intersecant2.4: LatLon(29°31′09.01″S, 002°27′32.93″W) : 3292733.874  FAILED, KNOWN, expected 3333000.000\n\n    test 391 intersecant2.5: LatLon(00°01′46.69″S, 029°58′27.6″E) Napier: 3333000.000\n    test 392 intersecant2.5: LatLon(29°58′27.59″S, 000°02′03.16″E) Napier: 3333000.000\n    test 393 intersecant2.5: LatLon(01°38′23.65″S, 028°34′45.37″E) : 3182660.966  FAILED, KNOWN, expected 3333000.000\n    test 394 intersecant2.5: LatLon(29°58′27.58″S, 000°02′03.17″E) : 3332999.848  FAILED, KNOWN, expected 3333000.000\n\n    test 395 intersecant2.6: LatLon(05°08′54.91″S, 029°34′09.94″E) Napier: 3333000.000\n    test 396 intersecant2.6: LatLon(28°36′28.71″S, 009°21′04.99″E) Napier: 3333000.000\n    test 397 intersecant2.6: LatLon(11°51′13.84″S, 024°23′59.0″E) : 2998636.503  FAILED, KNOWN, expected 3333000.000\n    test 398 intersecant2.6: LatLon(26°53′11.53″S, 011°08′26.36″E) : 3218384.739  FAILED, KNOWN, expected 3333000.000\n    test 399 isenclosedBy: True\n    test 400 isenclosedBy*: True\n    test 401 isenclosedBy: True\n    test 402 isenclosedBy*: True\n    test 403 rhumbBearingTo: 116.722\n    test 404 rhumbDestination: 50.964155°N, 001.853°E\n    test 405 rhumbDestination: True\n    test 406 rhumbDistanceTo: 40307.8\n    test 407 rhumbMidpointo-0.5: 51.0455°N, 001.595727°E\n    test 408 rhumbMidpointo: True\n    test 409 rhumbMidpointo-0.0: 51.127°N, 001.338°E\n    test 410 rhumbMidpointo-0.25: 51.08625°N, 001.46692°E\n    test 411 rhumbMidpointo-0.75: 51.00475°N, 001.72442°E\n    test 412 rhumbMidpointo-1.0: 50.964°N, 001.853°E\n    test 413 rhumbMidpointo-2.0: 50.801°N, 002.366196°E\n    test 414 areaOf: 8.66605875e+09\n    test 415 perimeterOf: 3.78258541e+05\n    test 416 perimeterOf: 2.67063461e+05\n    test 417 areaOf: 6.18e+09\n    test 418 perimeterOf: 3.79639757e+05\n    test 419 perimeterOf: 2.68444678e+05\n    test 420 nearestOn3: 46.000996°N, 001.353049°E\n    test 421 nearestOn3: 569987.49\n    test 422 distanceTo: 569987.49\n    test 423 nearestOn3: 46.0°N, 002.0°E\n    test 424 nearestOn3: 134989.80\n    test 425 distanceTo: 134989.80\n    test 426 nearestOn3: 45.330691°N, 001.318551°E\n    test 427 distance: 64856.28\n    test 428 distanceTo: 64856.28\n    test 429 compassAngleTo: 304.54\n    test 430 difference: 1000.53\n    test 431 ispolar: True\n    test 432 ispolar*: True\n    test 433 ispolar: False  FAILED, KNOWN, expected True\n    test 434 ispolar*: False  FAILED, KNOWN, expected True\n    test 435 ispolar: True\n    test 436 ispolar*: True\n    test 437 nearestOn: 01.5°N, 001.5°E, +149.99m\n    test 438 nearestOn3: 01.5°N, 001.5°E, +149.99m\n    test 439 midpointTo: 50.5363°N, 001.2746°E, +150.00m\n    test 440 intermediateTo: 50.5363°N, 001.2746°E, +150.00m\n\n    testLatLon(pygeodesy.sphericalTrigonometry, 25.08.31)\n    test 441 isEllipsoidal: False\n    test 442 isSpherical: True\n    test 443 lat/lonDMS: 52.20472°N, 000.14056°E\n    test 444 lat/lonDMS F_DM: 52°12.283′N, 000°08.434′E\n    test 445 lat/lonDMS F_DM: 52°12.2832′N, 000°08.4336′E\n    test 446 lat/lonDMS F_DMS: 52°12′17″N, 000°08′26″E\n    test 447 lat/lonDMS F_DMS: 52°12′17.0″N, 000°08′26.0″E\n    test 448 lat/lonDMS F_RAD: 0.911144N, 0.002453E\n    test 449 isequalTo: True\n    test 450 isequalTo: True\n    test 451 latlon2: 52.20472, 0.14056\n    test 452 latlon2: 52.2047, 0.1406\n    test 453 latlon2: 52.205, 0.141\n    test 454 latlon2: 52.2, 0.14\n    test 455 latlon2: 52.2, 0.1\n    test 456 latlon2: 52.0, 0.0\n    test 457 chordTo: 12036677.26\n    test 458 chordTo: 12036463.78\n    test 459 initialBearingTo: 156.1666\n    test 460 initialBearingTo: 65.8921\n    test 461 initialBearingTo: 0.0\n    test 462 initialBearingTo: 180.0\n    test 463 finalBearingTo: 157.8904\n    test 464 finalBearingTo: 93.8581\n    test 465 bearingTo2: 156.1666, 157.8904\n    test 466 ispolar: True\n    test 467 copy: True\n    test 468 __eq__: True\n    test 469 __ne__: False\n    test 470 equirectangularTo: 404329.56\n    test 471 distanceTo: 404279.720589\n    test 472 distanceTo: 404279.720589\n    test 473 distanceTo: 2145\n    test 474 antipodal: False\n    test 475 distanceTo dateline: 19967403.498  FAILED, KNOWN, expected 19119590.551\n    test 476 distanceTo unrolled: 19967403.498  FAILED, KNOWN, expected 19119590.551\n    test 477 antipodal: False\n    test 478 distanceTo dateline: 9491735\n    test 479 distanceTo unrolled: 9491735\n    test 480 distanceTo: 18013602.92\n    test 481 distanceTo: 20015114.35\n    test 482 intermediateTo: 51.372084°N, 000.707337°E\n    test 483 intermediateTo: True\n    test 484 intermediateTo: 404279.721\n    test 485 intermediateTo+5: 35.160975°N, 008.989542°E\n    test 486 intermediateTo+5: 5.000\n    test 487 intermediateTo-4: 64.911647°N, 013.726301°W\n    test 488 intermediateTo-4: 4.000\n    test 489 intermediateTo-h: 125.000\n    test 490 midpointTo: 50.536327°N, 001.274614°E\n    test 491 destination: 51.513546°N, 000.098345°W\n    test 492 destination: 51°30′49″N, 000°05′54″W\n    test 493 destination: 34°37′N, 116°33′W\n    test 494 destination: 34.613647°N, 116.55116°W\n    test 495 destination: 0.604122N, 2.034201W\n    test 496 destination: 31.96383509°N, 064.37329146°E\n    test 497 alongTrackDistanceTo: type(end) (96): incompatible with sphericalTrigonometry.LatLon.alongTrackDistanceTo(end)  FAILED, KNOWN, expected incompatible ...\n    test 498 alongTrackDistanceTo: 62331.58\n    test 499 alongTrackDistanceTo: 99.588\n    test 500 alongTrackDistanceTo: -7702.7\n    test 501 alongTrackDistanceTo: 7587.6\n    test 502 crossTrackDistanceTo: type(end) (96): incompatible with sphericalTrigonometry.LatLon.crossTrackDistanceTo(end)  FAILED, KNOWN, expected incompatible ...\n    test 503 crossTrackDistanceTo: -307.55\n    test 504 crossTrackDistanceTo: 7.4524\n    test 505 greatCircle: (-0.79408, 0.12856, 0.59406)\n    test 506 neareston6: (LatLon(45°00′00.0″N, 001°00′00.0″E), 4773243.784965, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E))  FAILED, KNOWN, expected (LatLon(45°00′00.0″N, 001°00′00.0″E), 4755443.4294, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E))\n    test 507 neareston6: (LatLon(45°30′03.93″N, 002°00′00.0″E), 38968.531578, 1.501091, 2, LatLon(45°00′00.0″N, 002°00′00.0″E), LatLon(46°00′00.0″N, 002°00′00.0″E))  FAILED, KNOWN, expected (LatLon(45°30′03.94″N, 002°00′00.0″E), 39078.729285, 1.501072, 2, LatLon(45°00′00.0″N, 002°00′00.0″E), LatLon(46°00′00.0″N, 002°00′00.0″E))\n    test 508 chordTo: 124799.103\n    test 509 cosineAndoyerLambertTo: 124801.098\n    test 510 cosineAndoyerLambertTo: 124801.098\n    test 511 cosineForsyheAndoyerLambertTo: 124801.098\n    test 512 cosineForsyheAndoyerLambertTo: 124801.098\n    test 513 cosineLawTo: 124801.098\n    test 514 cosineLawTo: 124801.098\n    test 515 equirectangularTo: 124804.754\n    test 516 equirectangularTo: 124804.754\n    test 517 euclideanTo: 130015.089\n    test 518 euclideanTo: 130015.089\n    test 519 flatLocalTo: 124804.754\n    test 520 flatLocalTo: 124804.754\n    test 521 flatPolarTo: 133663.257\n    test 522 flatPolarTo: 133663.257\n    test 523 hartzell: 53.3206°N, 001.7297°W\n    test 524 hartzell: 53.3206°N, 001.7297°W\n    test 525 height4: 0.0\n    test 526 height4: (3803904.2, -114870.8, 5109488.3, 0.0)\n    test 527 height4: 53°19′14.2″N, 001°43′46.9″W\n    test 528 height4: 53°19′14.2″N, 001°43′46.9″W\n    test 529 haversineTo: 124801.098\n    test 530 haversineTo: 124801.098\n    test 531 hubenyTo: <bound method LatLonBase.flatLocalTo of LatLon(53°19′14.16″N, 001°43′46.92″W)>\n    test 532 hubenyTo: <bound method LatLonBase.flatLocalTo of LatLon(53°11′19.32″N, 000°08′00.24″E)>\n    test 533 thomasTo: 124801.098\n    test 534 thomasTo: 124801.098\n    test 535 vincentysTo: 124801.098\n    test 536 vincentysTo: 124801.098\n    test 537 isclockwise: False\n    test 538 isclockwise*: False\n    test 539 isclockwise: True\n    test 540 isclockwise*: True\n    test 541 isclockwise: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 542 isclockwise*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 543 isclockwise: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 544 isclockwise*: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 545 isconvex: False\n    test 546 isconvex*: False\n    test 547 isconvex: True\n    test 548 isconvex*: True\n    test 549 isconvex: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 550 isconvex*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 551 isenclosedBy1: True\n    test 552 isenclosedBy1*: True\n    test 553 isenclosedBy2: False\n    test 554 isenclosedBy2*: False\n    test 555 isenclosedBy3: False\n    test 556 isenclosedBy3*: False\n    test 557 isenclosedBy4: False\n    test 558 isenclosedBy4*: False\n    test 559 isenclosedBy5: False\n    test 560 isenclosedBy5*: False\n    test 561 isenclosedBy6: True\n    test 562 isenclosedBy6*: True\n    test 563 isenclosedBy7: True\n    test 564 isenclosedBy7*: True\n    test 565 isenclosedBy-CCW: True\n    test 566 isenclosedBy-CW : True\n    test 567 isenclosedBy-CCW: True\n    test 568 initialBearingTo: 102.432182\n    test 569 compassAngleTo: 100.017\n    test 570 compassAngleTo: 105.599\n    test 571 initialBearingTo: 288.715918\n    test 572 compassAngleTo: 280.017\n    test 573 compassAngleTo: 285.599\n    test 574 equirectangularTo: 592.185\n    test 575 distanceTo: 591.831\n    test 576 bearingTo: 0.0\n    test 577 compassAngleTo: 0.0\n    test 578 bearingTo: 45.0\n    test 579 compassAngleTo: 45.0\n    test 580 bearingTo: 90.0\n    test 581 compassAngleTo: 90.0\n    test 582 bearingTo: 180.0\n    test 583 compassAngleTo: 180.0\n    test 584 bearingTo: 225.0\n    test 585 compassAngleTo: 225.0\n    test 586 bearingTo: 315.0\n    test 587 compassAngleTo: 315.0\n    test 588 bearingTo: 270.0\n    test 589 compassAngleTo: 270.0\n    test 590 bearingTo: 0.0  FAILED, KNOWN, expected 359.4\n    test 591 compassAngleTo: 359.4\n    test 592 latlon2: (53.0, 1.0)\n    test 593 philam2: (0.93, 0.02)\n    test 594 bearingTo: 31\n    test 595 compassAngleTo: 31\n    test 596 compassAngleTo: 45\n\n    test 597 boundsOf: <class 'pygeodesy.namedTuples.Bounds2Tuple'>\n    test 598 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 599 latlon2: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 600 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 601 isequalTo: <class 'bool'>\n    test 602 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 603 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 604 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 605 xyz3: <class 'tuple'>\n    test 606 xyzh: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 607 compassAngleTo: <class 'float'>\n    test 608 cosineLawTo: <class 'float'>\n    test 609 euclideanTo: <class 'float'>\n    test 610 flatLocalTo: <class 'float'>\n    test 611 flatPolarTo: <class 'float'>\n    test 612 haversineTo: <class 'float'>\n    test 613 hubenyTo: <class 'float'>\n    test 614 vincentysTo: <class 'float'>\n    test 615 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 616 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 617 toLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 618 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 619 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 620 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 621 toNvector: (0.61566, 0.0, 0.78801)\n    test 622 toVector: (3922384.659522, 0.0, 5020423.423198)\n    test 623 toVector3d: (0.61566, 0.0, 0.78801)\n\n    test 624 trilaterate5 (pygeodesy.sphericalTrigonometry) .min: 313.671\n    test 625 trilaterate5 (pygeodesy.sphericalTrigonometry) .point: 42.66937229°N, 002.48639477°E\n    test 626 trilaterate5 (pygeodesy.sphericalTrigonometry) .max: 1591.044\n    test 627 trilaterate5 (pygeodesy.sphericalTrigonometry) .point: 42.65153054°N, 002.46822157°E\n    test 628 trilaterate5 (pygeodesy.sphericalTrigonometry) .n: 3\n    test 629 trilaterate5 (pygeodesy.sphericalTrigonometry) .min: 133.815\n    test 630 trilaterate5 (pygeodesy.sphericalTrigonometry) .max: 160.242\n    test 631 trilaterate5 (pygeodesy.sphericalTrigonometry) .point: 42.67817811°N, 002.49966641°E\n    test 632 trilaterate5 (pygeodesy.sphericalTrigonometry) .n: 2\n    test 633 trilaterate5 (pygeodesy.sphericalTrigonometry) .min: 2403.293\n    test 634 trilaterate5 (pygeodesy.sphericalTrigonometry) .max: 2403.293\n    test 635 trilaterate5 (pygeodesy.sphericalTrigonometry) .point: 42.66135649°N, 002.47981645°E\n    test 636 trilaterate5 (pygeodesy.sphericalTrigonometry) .min- is .maxPoint: True\n    test 637 trilaterate5 (pygeodesy.sphericalTrigonometry) .n: 1\n    test 638 trilaterate5 (pygeodesy.sphericalTrigonometry) .min: 1340.608\n    test 639 trilaterate5 (pygeodesy.sphericalTrigonometry) .point: 42.69128229°N, 002.50129001°E\n    test 640 trilaterate5 (pygeodesy.sphericalTrigonometry) .max: 1499.220\n    test 641 trilaterate5 (pygeodesy.sphericalTrigonometry) .point: 42.64295864°N, 002.44242391°E\n    test 642 trilaterate5 (pygeodesy.sphericalTrigonometry) .n: 3\n    test 643 radii11: Radii11Tuple(rA=7237.243793, rB=1825.695409, rC=2.255158, cR=57690.493993, rIn=57.33247, riS=2.087691, roS=2.443616, a=1827.950567, b=7239.49895, c=9062.939201, s=9065.194359)\n    test 644 circum3 (pygeodesy.sphericalTrigonometry) .radius: 57690.494  FAILED, KNOWN, expected 57792.067\n    test 645 circum3 (pygeodesy.sphericalTrigonometry) .center: 43.051859°N, 002.94463°E, -261.20m  FAILED, KNOWN, expected 43.053532°N, 002.943255°E, -261.66m\n    test 646 circum3 (pygeodesy.sphericalTrigonometry) .deltas: (0.0, -0.0, 28.304)  FAILED, KNOWN, expected (0.0, 0.0, 11.383)\n    test 647 circum3 (pygeodesy.sphericalTrigonometry) .d1: 57691.282  FAILED, KNOWN, expected 57792.858\n    test 648 circum3 (pygeodesy.sphericalTrigonometry) .d2: 57691.282  FAILED, KNOWN, expected 57792.859\n    test 649 circum3 (pygeodesy.sphericalTrigonometry) .d3: 57691.282  FAILED, KNOWN, expected 57792.859\n    test 650 circum3 (pygeodesy.sphericalTrigonometry) .datum: name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84\n    test 651 circum3 (pygeodesy.sphericalTrigonometry) .Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n\n    test 652 radii11: Radii11Tuple(rA=7237.243793, rB=1825.695409, rC=2.255158, cR=57690.493993, rIn=57.33247, riS=2.087691, roS=2.443616, a=1827.950567, b=7239.49895, c=9062.939201, s=9065.194359)\n    test 653 circum4 (pygeodesy.sphericalTrigonometry) .radius: 3185634.993  FAILED, KNOWN, expected 3184256.748\n    test 654 circum4 (pygeodesy.sphericalTrigonometry) .center: 43.051859°N, 002.94463°E, -3185373.78m  FAILED, KNOWN, expected 43.054367°N, 002.942573°E, -3183993.92m\n    test 655 circum4 (pygeodesy.sphericalTrigonometry) .rank: 3\n    test 656 circum4 (pygeodesy.sphericalTrigonometry) .residuals: ()\n    test 657 circum4 (pygeodesy.sphericalTrigonometry) .d1: 57691.282  FAILED, KNOWN, expected 57818.033\n    test 658 circum4 (pygeodesy.sphericalTrigonometry) .d2: 57691.282  FAILED, KNOWN, expected 57834.176\n    test 659 circum4 (pygeodesy.sphericalTrigonometry) .d3: 57691.282  FAILED, KNOWN, expected 57830.992\n    test 660 circum4 (pygeodesy.sphericalTrigonometry) .datum: name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84\n    test 661 circum4 (pygeodesy.sphericalTrigonometry) .Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 662 radii11: Radii11Tuple(rA=328257.82694, rB=782282.176109, rC=782282.176109, cR=782304.746354, rIn=325773.738834, riS=85162.638484, roS=INF, a=1564564.352218, b=1110540.003049, c=1110540.003049, s=1892822.179158)\n    test 663 circin6 (pygeodesy.sphericalTrigonometry) .rB+rC: 1564564.352\n    test 664 circin6 (pygeodesy.sphericalTrigonometry) .rC+pA: 1110540.003\n    test 665 circin6 (pygeodesy.sphericalTrigonometry) .rA+rB: 1110540.003\n    test 666 circin6 (pygeodesy.sphericalTrigonometry) .radius: 325773.739  FAILED, KNOWN, expected 325058.721\n    test 667 circin6 (pygeodesy.sphericalTrigonometry) .center: 02.938473°N, 002.942346°E, -40128.57m  FAILED, KNOWN, expected 02.948531°N, 002.932537°E, -40041.19m\n    test 668 circin6 (pygeodesy.sphericalTrigonometry) .deltas: (0.0, 0.0, 0.421782)  FAILED, KNOWN, expected (0.0, 0.0, 0.090491)\n    test 669 circin6 (pygeodesy.sphericalTrigonometry) .cA: 05.019001°N, 005.038369°E, -48209.76m  FAILED, KNOWN, expected 05.04314°N, 005.014578°E, -48104.09m\n    test 670 circin6 (pygeodesy.sphericalTrigonometry) .cB: 00.0°N, 002.951508°E, -20185.00m  FAILED, KNOWN, expected 00.0°N, 002.941713°E, -20168.62m\n    test 671 circin6 (pygeodesy.sphericalTrigonometry) .cC: 02.951508°N, 000.0°E, -20185.00m  FAILED, KNOWN, expected 02.961566°N, 000.0°E, -20113.46m\n    test 672 circin6 (pygeodesy.sphericalTrigonometry) .dA: 327983.380  FAILED, KNOWN, expected 327263.596\n    test 673 circin6 (pygeodesy.sphericalTrigonometry) .dB: 326745.373  FAILED, KNOWN, expected 326036.153\n    test 674 circin6 (pygeodesy.sphericalTrigonometry) .dC: 326745.373  FAILED, KNOWN, expected 326020.432\n./test/testSpherical.py:318: DeprecationWarning: method L{rhumbBearingTo<pygeodesy.sphericalTrigonometry.LatLon.rhumbBearingTo>} has been DEPRECATED, use method C{.rhumbAzimuthTo}.\n  b = p.rhumbBearingTo(q)  # rhumbAzimuthTo\n\n    test 675 area cw/ccw: 1.0\n\n    testSpherical(pygeodesy.sphericalTrigonometry, 25.08.31)\n    test 676 isSpherical: True\n    test 677 isEllipsoidal: False\n    test 678 datum: name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84\n    test 679 ellipsoid: name='SphereAuthalic', a=6371000, f=0, f_=0, b=6371000\n    test 680 datum: name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84\n    test 681 isSpherical: True\n    test 682 isEllipsoidal: False\n    test 683 intersection1: 50.907608°N, 004.508575°E\n    test 684 intersection1: 50°54′27.39″N, 004°30′30.87″E\n    test 685 intersection1: True\n    test 686 intersection2: True\n    test 687 intersection2: 43.5719°N, 116.188757°W\n    test 688 intersection2: 43°34′18.84″N, 116°11′19.53″W\n    test 689 intersection3: 51.882166°N, 000.267801°E\n    test 690 intersection4: 00.0°N, 026.565051°E\n    test 691 intersection5: 26.565051°N, 000.0°E  FAILED, KNOWN, expected 26.565051°N, 000.0°W\n    test 692 intersection6: 50.907809°N, 004.50841°E\n    test 693 intersection7: 01°52′46.41″S, 005°39′06.87″E\n    test 694 intersection8: 28°15′40.35″S, 032°14′33.2″E\n    test 695 toward 1,1 N,E nearest: 00.999848°N, 001.0°E\n    test 696 toward 1,1 E,N nearest: 00.999848°N, 001.0°E\n    test 697 toward 1,1 N,E antipodal: 00.999848°S, 179.0°W\n    test 698 toward/away 1,1 N,W antipodal: 00.999848°N, 001.0°E\n    test 699 toward/away 1,1 W,N antipodal: 00.999848°S, 179.0°W\n    test 700 toward/away 1,1 S,E antipodal: 00.999848°S, 179.0°W\n    test 701 toward/away 1,1 E,S antipodal: 00.999848°N, 001.0°E\n    test 702 away 1,1 S,W antipodal: 00.999848°S, 179.0°W\n    test 703 away 1,1 W,S antipodal: 00.999848°S, 179.0°W\n    test 704 1E/90E N,E antipodal: 00.017454°N, 001.0°E\n    test 705 1E/90E N,E nearest: 00.017454°N, 179.0°W\n    test 706 brng+end 1a: 01.000305°N, 002.0°E\n    test 707 brng+end 1b: 01.000305°N, 002.0°E\n    test 708 brng+end 2a: 01.000305°S, 178.0°W\n    test 709 brng+end 2b: 01.000305°S, 178.0°W\n    test 710 intersection7: 02.499372°N, 002.5°E\n    test 711 maxLat0: 90.0\n    test 712 maxLat1: 89.0\n    test 713 maxLat90: 0.0\n    test 714 minLat0: -90.0\n    test 715 minLat1: -89.0\n    test 716 minLat90: -0.0\n    test 717 parse: 00.0°N, 000.0°E\n    test 718 crossingParallels: 009°35′38.65″E, 170°24′21.35″E\n\n    test 719 intersecant2: 04.260346°N, 006.272173°E and 01.250608°S, 000.749094°E\n    test 720 intersecant2: 700000\n    test 721 intersecant2: 699999  FAILED, KNOWN, expected 700000\n    test 722 intersecant2: 45.014  FAILED, KNOWN, expected 45.000\n\n    test 723 intersecant2: 04.261539°N, 006.265474°E and 00.0°N, 002.0°E\n    test 724 intersecant2: 699248  FAILED, KNOWN, expected 700000\n    test 725 intersecant2: 598698  FAILED, KNOWN, expected 700000\n    test 726 intersecant2: 45.000\n\n    test 727 intersecant2: 04.262363°N, 006.2663°E and 01.258709°S, 000.74119°E\n    test 728 intersecant2: 699302  FAILED, KNOWN, expected 700000\n    test 729 intersecant2: 700080  FAILED, KNOWN, expected 700000\n    test 730 intersecant2: 45.021  FAILED, KNOWN, expected 45.000\n\n    test 731 intersecant4: 02.375133°N, 024.894142°E and 25.0°S, 000.0°E  FAILED, KNOWN, expected 00.0°N, 025.0°E and 25.0°S, 000.0°E\n    test 732 intersecant4: 00.0°N, 025.0°E and 25.0°S, 000.0°E\n    test 733 intersecant4: 02.375133°N, 024.894142°E and 25.0°S, 000.0°E  FAILED, KNOWN, expected 00.0°N, 025.0°E and 25.0°S, 000.0°E\n    test 734 intersecant4: 00.0°N, 025.0°E and 25.0°S, 000.0°E\n\n    test 735 intersecant4: 00.725365°N, 026.558638°E and 25.747°S, 000.826763°W  FAILED, KNOWN, expected 00.0°N, 025.0°E and 25.0°S, 000.0°E\n    test 736 intersecant4: 00.725365°N, 026.558638°E and 25.747°S, 000.826763°W  FAILED, KNOWN, expected 00.0°N, 025.0°E and 25.0°S, 000.0°E\n    test 737 intersecant4: 00.021635°S, 025.811619°E and 25.0°S, 000.0°E  FAILED, KNOWN, expected 00.0°N, 025.0°E and 25.0°S, 000.0°E\n    test 738 intersecant4: 00.021635°S, 025.811619°E and 25.0°S, 000.0°E  FAILED, KNOWN, expected 00.0°N, 025.0°E and 25.0°S, 000.0°E\n\n    test 739 intersecant4: 00.807845°N, 026.641126°E and 25.0°S, 000.0°E  FAILED, KNOWN, expected 00.0°N, 025.0°E and 25.0°S, 000.0°E\n    test 740 intersecant4: 01.624807°N, 026.572609°E and 25.0°S, 000.0°E  FAILED, KNOWN, expected 00.0°N, 025.0°E and 25.0°S, 000.0°E\n    test 741 intersecant4: 00.807845°N, 026.641126°E and 25.0°S, 000.0°E  FAILED, KNOWN, expected 00.0°N, 025.0°E and 25.0°S, 000.0°E\n    test 742 intersecant4: 01.624807°N, 026.572609°E and 25.0°S, 000.0°E  FAILED, KNOWN, expected 00.0°N, 025.0°E and 25.0°S, 000.0°E\n\n    test 743 intersecant2.1: LatLon(04°04′02.63″S, 029°43′21.16″W) Napier: 3333000.000\n    test 744 intersecant2.1: LatLon(29°58′27.6″N, 000°01′46.65″W) Napier: 3333000.000\n    test 745 intersecant2.1: LatLon(29°58′27.6″N, 000°01′46.65″W) : 3332999.886  FAILED, KNOWN, expected 3333000.000\n    test 746 intersecant2.1: LatLon(02°29′47.81″S, 028°30′01.84″W) : 3180236.460  FAILED, KNOWN, expected 3333000.000\n\n    test 747 intersecant2.2: LatLon(04°04′02.63″S, 029°43′21.16″E) Napier: 3333000.000\n    test 748 intersecant2.2: LatLon(29°58′27.6″N, 000°01′46.65″E) Napier: 3333000.000\n    test 749 intersecant2.2: LatLon(02°29′47.81″S, 028°30′01.84″E) : 3180236.460  FAILED, KNOWN, expected 3333000.000\n    test 750 intersecant2.2: LatLon(29°58′27.6″N, 000°01′46.65″E) : 3332999.886  FAILED, KNOWN, expected 3333000.000\n\n    test 751 intersecant2.3: LatLon(04°04′02.63″N, 029°43′21.16″W) Napier: 3333000.000\n    test 752 intersecant2.3: LatLon(29°58′27.6″S, 000°01′46.65″W) Napier: 3333000.000\n    test 753 intersecant2.3: LatLon(29°58′27.6″S, 000°01′46.65″W) : 3332999.886  FAILED, KNOWN, expected 3333000.000\n    test 754 intersecant2.3: LatLon(02°29′47.81″N, 028°30′01.84″W) : 3180236.460  FAILED, KNOWN, expected 3333000.000\n\n    test 755 intersecant2.4: LatLon(29°50′37.22″S, 002°56′03.42″W) Napier: 3333000.000\n    test 756 intersecant2.4: LatLon(00°29′30.34″N, 029°58′14.48″E) Napier: 3333000.000\n    test 757 intersecant2.4: LatLon(00°08′01.47″N, 029°38′09.18″E) : 3295394.784  FAILED, KNOWN, expected 3333000.000\n    test 758 intersecant2.4: LatLon(29°31′09.01″S, 002°27′32.93″W) : 3292733.874  FAILED, KNOWN, expected 3333000.000\n\n    test 759 intersecant2.5: LatLon(00°01′46.69″S, 029°58′27.6″E) Napier: 3333000.000\n    test 760 intersecant2.5: LatLon(29°58′27.59″S, 000°02′03.16″E) Napier: 3333000.000\n    test 761 intersecant2.5: LatLon(01°38′23.65″S, 028°34′45.37″E) : 3182660.966  FAILED, KNOWN, expected 3333000.000\n    test 762 intersecant2.5: LatLon(29°58′27.58″S, 000°02′03.17″E) : 3332999.848  FAILED, KNOWN, expected 3333000.000\n\n    test 763 intersecant2.6: LatLon(05°08′54.91″S, 029°34′09.94″E) Napier: 3333000.000\n    test 764 intersecant2.6: LatLon(28°36′28.71″S, 009°21′04.99″E) Napier: 3333000.000\n    test 765 intersecant2.6: LatLon(11°51′13.84″S, 024°23′59.0″E) : 2998636.503  FAILED, KNOWN, expected 3333000.000\n    test 766 intersecant2.6: LatLon(26°53′11.53″S, 011°08′26.36″E) : 3218384.739  FAILED, KNOWN, expected 3333000.000\n\n    test 767 intersections2 (pygeodesy.sphericalTrigonometry): 36.98931°N, 088.151425°W, 38.23838°N, 092.390487°W\n    test 768 intersections2 (pygeodesy.sphericalTrigonometry): 36.989310429, -088.151425243, 38.238379679, -092.390486808\n    test 769 intersections2 (pygeodesy.sphericalTrigonometry): 00.0°N, 035.26439°W, 00.0°N, 035.26439°E\n    test 770 intersections2 (pygeodesy.sphericalTrigonometry): 22.622036°N, 000.0°E, 22.622036°S, 000.0°E\n    test 771 intersections2 (pygeodesy.sphericalTrigonometry): 14.612841°N, 026.110934°W, 14.612841°S, 026.110934°E\n    test 772 intersections2 (pygeodesy.sphericalTrigonometry): 00.000001°S, 045.0°E, 00.000001°N, 045.0°E\n    test 773 intersections2 (pygeodesy.sphericalTrigonometry) 5: 04.999927°S, 005.038296°W, 04.999927°N, 005.038296°E\n    test 774 intersections2 (pygeodesy.sphericalTrigonometry) 5: 1.67511e-15 (% of radius)\n    test 775 intersections2 (pygeodesy.sphericalTrigonometry) 10: 09.997596°S, 010.311703°W, 09.997596°N, 010.311703°E\n    test 776 intersections2 (pygeodesy.sphericalTrigonometry) 10: 6.28168e-16 (% of radius)\n    test 777 intersections2 (pygeodesy.sphericalTrigonometry) 15: 14.98089°S, 016.083107°W, 14.98089°N, 016.083107°E\n    test 778 intersections2 (pygeodesy.sphericalTrigonometry) 15: 6.97964e-16 (% of radius)\n    test 779 intersections2 (pygeodesy.sphericalTrigonometry) 20: 19.914036°S, 022.676142°W, 19.914036°N, 022.676142°E\n    test 780 intersections2 (pygeodesy.sphericalTrigonometry) 20: 1.46573e-15 (% of radius)\n    test 781 intersections2 (pygeodesy.sphericalTrigonometry) 25: 24.713956°S, 030.518915°W, 24.713956°N, 030.518915°E\n    test 782 intersections2 (pygeodesy.sphericalTrigonometry) 25: 6.70046e-16 (% of radius)\n    test 783 intersections2 (pygeodesy.sphericalTrigonometry) 30: 29.205932°S, 040.202966°W, 29.205932°N, 040.202966°E\n    test 784 intersections2 (pygeodesy.sphericalTrigonometry) 30: 8.37557e-16 (% of radius)\n    test 785 intersections2 (pygeodesy.sphericalTrigonometry) 35: 33.037697°S, 052.55362°W, 33.037697°N, 052.55362°E\n    test 786 intersections2 (pygeodesy.sphericalTrigonometry) 35: 8.37557e-16 (% of radius)\n    test 787 intersections2 (pygeodesy.sphericalTrigonometry) 40: 35.512876°S, 068.682565°W, 35.512876°N, 068.682565°E\n    test 788 intersections2 (pygeodesy.sphericalTrigonometry) 40: 4.18779e-16 (% of radius)\n    test 789 intersections2 (pygeodesy.sphericalTrigonometry) 45: 35.26439°S, 090.0°W, 35.26439°N, 090.0°E\n    test 790 intersections2 (pygeodesy.sphericalTrigonometry) 45: 3.72248e-16 (% of radius)\n    test 791 intersections2 (pygeodesy.sphericalTrigonometry) 50: 29.382901°S, 118.837195°W, 29.382901°N, 118.837195°E\n    test 792 intersections2 (pygeodesy.sphericalTrigonometry) 50: 1.67511e-16 (% of radius)\n    test 793 intersections2 (pygeodesy.sphericalTrigonometry) 55: 00.687458°S, 179.605668°E abutting\n    test 794 intersections2 (pygeodesy.sphericalTrigonometry) 55: 0.0144095 (% of radius)\n    test 795 intersections2 (pygeodesy.sphericalTrigonometry) 60: 13.848979°S, 172.919423°E abutting\n    test 796 intersections2 (pygeodesy.sphericalTrigonometry) 60: 0.258708 (% of radius)\n    test 797 intersections2 (pygeodesy.sphericalTrigonometry) 65: 27.163786°S, 167.475402°E abutting\n    test 798 intersections2 (pygeodesy.sphericalTrigonometry) 65: 0.457099 (% of radius)\n    test 799 intersections2 (pygeodesy.sphericalTrigonometry): 41.212541°N, 073.702999°E Random +/- 89\n    test 800 intersections2 (pygeodesy.sphericalTrigonometry): 41.212541°N, 073.702999°E, 42.652043°N, 130.245275°E  d 1.70272e-08 meter\n    test 801 intersections2 (pygeodesy.sphericalTrigonometry): 41.212541°N, 073.702999°E, 49.563295°N, 057.220788°E  d 6.84831e-09 meter\n    test 802 intersections2 (pygeodesy.sphericalTrigonometry): 41.212541°N, 073.702999°E, 29.348825°S, 027.178886°W  d 3.18296e-09 meter\n    test 803 intersections2 (pygeodesy.sphericalTrigonometry): 41.212541°N, 073.702999°E, 00.919397°S, 022.582538°E  d 0 meter\n    test 804 intersections2 (pygeodesy.sphericalTrigonometry): 41.212541°N, 073.702999°E, 37.789721°N, 113.551077°E  d 0 meter\n    test 805 intersections2 (pygeodesy.sphericalTrigonometry): 41.212541°N, 073.702999°E, 45.8391°N, 062.488233°W  d 2.64407e-09 meter\n    test 806 intersections2 (pygeodesy.sphericalTrigonometry): 41.212541°N, 073.702999°E, 42.836396°N, 147.679061°W  d 7.94221e-09 meter\n    test 807 intersections2 (pygeodesy.sphericalTrigonometry): 41.212541°N, 073.702999°E, 76.602903°N, 073.829073°W  d 5.42574e-09 meter\n    test 808 intersections2 (pygeodesy.sphericalTrigonometry): 41.212541°N, 073.702999°E, 46.089655°N, 103.356557°E  d 3.82901e-09 meter\n    test 809 intersections2 (pygeodesy.sphericalTrigonometry): 41.212541°N, 073.702999°E, 04.154973°N, 044.386256°E  d 2.47563e-09 meter\n    test 810 intersections2 (pygeodesy.sphericalTrigonometry): 41.212541°N, 073.702999°E, 02.95074°N, 159.308477°W  d 2.99873e-09 meter\n    test 811 intersections2 (pygeodesy.sphericalTrigonometry): 41.212541°N, 073.702999°E, 33.791406°N, 143.40539°W  d 7.12163e-09 meter\n    test 812 trilaterate5 (pygeodesy.sphericalTrigonometry) .min: 313.671\n    test 813 trilaterate5 (pygeodesy.sphericalTrigonometry) .point: 42.66937229°N, 002.48639477°E\n    test 814 trilaterate5 (pygeodesy.sphericalTrigonometry) .max: 1591.044\n    test 815 trilaterate5 (pygeodesy.sphericalTrigonometry) .point: 42.65153054°N, 002.46822157°E\n    test 816 trilaterate5 (pygeodesy.sphericalTrigonometry) .n: 3\n    test 817 trilaterate5 (pygeodesy.sphericalTrigonometry) .min: 133.815\n    test 818 trilaterate5 (pygeodesy.sphericalTrigonometry) .inter: 42.6767291°N, 002.49916157°E\n    test 819 trilaterate5 (pygeodesy.sphericalTrigonometry) .n: 2\n    test 820 trilaterate5 (pygeodesy.sphericalTrigonometry) .min: 2403.293\n    test 821 trilaterate5 (pygeodesy.sphericalTrigonometry) .max: 2403.293\n    test 822 trilaterate5 (pygeodesy.sphericalTrigonometry) .point: 42.66135649°N, 002.47981645°E\n    test 823 trilaterate5 (pygeodesy.sphericalTrigonometry) .min- is .maxPoint: True\n    test 824 trilaterate5 (pygeodesy.sphericalTrigonometry) .n: 1\n    test 825 trilaterate5 (pygeodesy.sphericalTrigonometry) .inter: area (False), eps (1000) or wrap (False): no intersection, min 1.34e+03\n    test 826 isenclosedBy: True\n    test 827 isenclosedBy*: True\n    test 828 isenclosedBy: points[3] (LatLon(47°00′00.0″N, 003°00′00.0″E)) or wrap (False): not convex\n    test 829 isenclosedBy*: points[3] (LatLon(47°00′00.0″N, 003°00′00.0″E)) or wrap (False): not convex\n    test 830 rhumbBearingTo: 116.722\n    test 831 rhumbDestination: 50.964155°N, 001.853°E\n    test 832 rhumbDestination: True\n    test 833 rhumbDistanceTo: 40307.8\n    test 834 rhumbMidpointo-0.5: 51.0455°N, 001.595727°E\n    test 835 rhumbMidpointo: True\n    test 836 rhumbMidpointo-0.0: 51.127°N, 001.338°E\n    test 837 rhumbMidpointo-0.25: 51.08625°N, 001.46692°E\n    test 838 rhumbMidpointo-0.75: 51.00475°N, 001.72442°E\n    test 839 rhumbMidpointo-1.0: 50.964°N, 001.853°E\n    test 840 rhumbMidpointo-2.0: 50.801°N, 002.366196°E\n    test 841 areaOf: 8.66605875e+09\n    test 842 perimeterOf: 3.78258541e+05\n    test 843 perimeterOf: 2.67063461e+05\n    test 844 areaOf: 6.18e+09\n    test 845 perimeterOf: 3.79639757e+05\n    test 846 perimeterOf: 2.68444678e+05\n    test 847 nearestOn3: 46.0°N, 001.369324°E\n    test 848 nearestOn3: 570101.83\n    test 849 distanceTo: 570101.82\n    test 850 nearestOn3: 46.0°N, 002.0°E\n    test 851 nearestOn3: 134992.48\n    test 852 distanceTo: 134989.80\n    test 853 nearestOn3: 45.5°N, 001.5°E\n    test 854 distance: 78626.79\n    test 855 angle: 315.00\n    test 856 compassAngleTo: 315.00\n    test 857 nearestOn3: 45.331319°N, 001.331319°E\n    test 858 distance: 64074.48\n    test 859 angle: 305.10\n    test 860 distanceTo: 64074.12\n    test 861 compassAngleTo: 305.10\n    test 862 difference: 1000.53\n    test 863 nearestOn3: 00.5°N, 001.5°E\n    test 864 distance: 235880.385\n    test 865 angle: 135.00\n    test 866 nearestOn3: 01.5°N, 002.5°E\n    test 867 distance: 235880.385\n    test 868 angle: 135.00\n    test 869 nearestOn3: 02.5°N, 003.5°E\n    test 870 distance: 235880.385\n    test 871 angle: 135.00\n    test 872 nearestOn3: 03.5°N, 004.5°E\n    test 873 distance: 235880.385\n    test 874 angle: 135.00\n    test 875 nearestOn3: 04.5°N, 005.5°E\n    test 876 distance: 235880.385\n    test 877 angle: 135.00\n    test 878 nearestOn3: 05.5°N, 006.5°E\n    test 879 distance: 235880.385\n    test 880 angle: 135.00\n    test 881 nearestOn3: 06.5°N, 007.5°E\n    test 882 distance: 235880.385\n    test 883 angle: 135.00\n    test 884 nearestOn3: 07.5°N, 008.5°E\n    test 885 distance: 235880.385\n    test 886 angle: 135.00\n    test 887 meanOf: 04.004858°N, 004.990226°E\n    test 888 nearestOn3: 07.5°N, 008.5°E\n    test 889 toCartesian: [6245667.211, 766871.506, 996645.349]\n    test 890 ispolar: True\n    test 891 ispolar*: True\n    test 892 ispolar: False  FAILED, KNOWN, expected True\n    test 893 ispolar*: False  FAILED, KNOWN, expected True\n    test 894 ispolar: True\n    test 895 ispolar*: True\n    test 896 triangle7: (22.142114, 2189776.256122, 84.91384, 6998970.168483, 84.91384, 6998970.168483, 8479698853790.72168)\n    test 897 triangle7: Triangle8Tuple(A=0.38645, a=0.34371, B=1.48203, b=1.09857, C=1.48203, c=1.09857, D=3.74234, E=0.20891)\n    test 898 nearestOn: 01.5°N, 001.5°E, +149.99m\n    test 899 nearestOn3: 01.5°N, 001.5°E, +149.99m\n    test 900 midpointTo: 50.5363°N, 001.2746°E, +150.00m\n    test 901 intermediateTo: 50.5363°N, 001.2746°E, +150.00m\n\n    137 of 901 testSpherical.py tests (15.2%) FAILED, incl. 126 KNOWN plus 11 DeprecationWarnings (pygeodesy 26.3.26 Python 3.13.12 64bit arm64 coverage 7.10.7 geographiclib 2.1 numpy 2.3.3 scipy 1.16.2 Math 2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 macOS 26.3.1 isLazy 1 -W  default) 526.305 ms\nrunning /Library/Framewo....n3.13 -W default ~/PyGeodesy/test/testStreprs.py\n\n    testing testStreprs.py 23.03.27 (module pygeodesy.streprs 25.11.24) isLazy=1\n    test 1 anstr: a-b__\n    test 2 fstr: 0.123000\n    test 3 fstr: 0.123\n    test 4 fstr: 0.123, 456.789\n    test 5 fstr: 1.23000e-01\n    test 6 fstr: 1.23e-01\n    test 7 fstr: fmt ('X'): not '[%[<flags>][<width>].*]F|f|E|e|G|g'\n    test 8 fstr(1.000000): 1.0\n    test 9 fstr(1.000000): 1.0\n    test 10 fstr(-1.000000): -1.0\n    test 11 fstr(INF): INF\n    test 12 fstr(INF): INF\n    test 13 fstr(NAN): NAN\n    test 14 fstr(-0.000000): -0.0\n    test 15 fstr(0.000000): 0.0\n    test 16 fstrzs(0.0): 0.0\n    test 17 fstrzs(0.00): 0.0\n    test 18 fstrzs(0.000): 0.0\n    test 19 fstrzs(00.0): 00.0\n    test 20 fstrzs(000.00): 000.0\n    test 21 fstrzs(0.000): 0.0\n    test 22 fstrzs(0.010): 0.01\n    test 23 fstrzs(0.0200): 0.02\n    test 24 fstrzs(0.0e+01): 0.0e+01\n    test 25 fstrzs(0.00e+02): 0.0e+02\n    test 26 fstrzs(0.000e+03): 0.0e+03\n    test 27 fstrzs(00.0e+00): 00.0e+00\n    test 28 fstrzs(000.00e+01): 000.0e+01\n    test 29 fstrzs(0.000e+02): 0.0e+02\n    test 30 fstrzs(0.010e+03): 0.01e+03\n    test 31 fstrzs(0.0200e+00): 0.02e+00\n    test 32 fstrzs(0, ap1z=True): 0.0\n    test 33 fstrzs(0.0, ap1z=True): 0.0\n    test 34 fstrzs(0., ap1z=True): 0.\n    test 35 fstrzs(1e10, ap1z=True): 1.0e10\n    test 36 fstrzs(2E+2, ap1z=True): 2.0E+2\n    test 37 fstrzs(3.E3, ap1z=True): 3.E3\n    test 38 instr: LatLon_(45.0°N, 090.0°E, +1.20)\n    test 39 instr: LatLon_(45, 90, h=1.2)\n    test 40 unstr: f(1.1, 2.2)\n    test 41 unstr: f(x=1.1, y=2.2)\n    test 42 F: 0.001\n    test 43 F: 0.001\n    test 44 F: 0.001\n    test 45 F: 0.001\n    test 46 f: 0.001\n    test 47 f: 0.001\n    test 48 f: 0.001\n    test 49 f: 0.001\n    test 50 E: 1.0E-03\n    test 51 E: 1.0E-03\n    test 52 E: 1.0E-03\n    test 53 E: 1.0E-03\n    test 54 e: 1.0e-03\n    test 55 e: 1.0e-03\n    test 56 e: 1.0e-03\n    test 57 e: 1.0e-03\n    test 58 G: 0.001\n    test 59 G: 0.001\n    test 60 G: 0.001\n    test 61 G: 0.001\n    test 62 g: 0.001\n    test 63 g: 0.001\n    test 64 g: 0.001\n    test 65 g: 0.001\n\n    all 65 testStreprs.py tests passed (pygeodesy 26.3.26 Python 3.13.12 64bit arm64 coverage 7.10.7 geographiclib 2.1 numpy 2.3.3 scipy 1.16.2 Math 2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 macOS 26.3.1 isLazy 1 -W  default) 746.012 us\nrunning /Library/Framewo....n3.13 -W default ~/PyGeodesy/test/testTMcoords.py\n\n    testing testTMcoords.py 24.03.22 isLazy=1\n    test 1 TMcoords: 258\n\n    all 1 testTMcoords.py tests passed (pygeodesy 26.3.26 Python 3.13.12 64bit arm64 coverage 7.10.7 geographiclib 2.1 numpy 2.3.3 scipy 1.16.2 Math 2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 macOS 26.3.1 isLazy 1 -W  default) 59.843 us\nrunning /Library/Framewo....n3.13 -W default ~/PyGeodesy/test/testTrf.py\n./test/testTrf.py:29: DeprecationWarning: method L{convertRefFrame<pygeodesy.ellipsoidalNvector.LatLon.convertRefFrame>} has been DEPRECATED, use method L{toRefFrame}.\n  x = p.convertRefFrame(RefFrames.ETRF2000)\n./test/testTrf.py:136: DeprecationWarning: method L{convertRefFrame<pygeodesy.ellipsoidalNvector.LatLon.convertRefFrame>} has been DEPRECATED, use method L{toRefFrame}.\n  t = LatLon(0, 0, reframe=RefFrames.ITRF2000).convertRefFrame('ITRF2000')\n\n    testing testTrf.py 24.10.14 (module pygeodesy.trf 25.09.11) isLazy=1\n\n    testTrf(pygeodesy.ellipsoidalNvector, 25.05.12)\n    test 1 convertRefFrame: 51.47787826°N, 000.00147125°W, -0.00m  FAILED, KNOWN, expected 51.47787826°N, 000.00147125°W\n    test 2 copy(<class 'type'>): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 3 RefFrame.copy(): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 4 toLatLon: 50.7978°N, 004.3592°E, +148.96m\n    test 5 convertRefFrame: [3980574.395, -102.214, 4966829.941]\n    test 6 Nil: True\n    test 7 copy(<class 'type'>): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 8 RefFrame.copy(): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 9 Nil: True\n    test 10 reframe: True\n    test 11 Roundtrip: True\n    test 12 reframe: True\n    test 13 copy(<class 'type'>): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 14 RefFrame.copy(): (<class 'pygeodesy.trf.RefFrame'>, True)\n\n    test 15 Geodetic: 23°40′12.44582″S, 133°53′07.84795″E, +603.34m\n    test 16 Cartesian: [-4052051.7614, 4212836.1945, -2545106.0147]\n    test 17 Geodetic: 23°40′12.44582″S, 133°53′07.84795″E, +603.34m\n    test 18 Cartesian: [-4052051.7614, 4212836.1945, -2545106.0147]\n    test 19 Roundtrip: 23°40′12.41482″S, 133°53′07.86712″E, +603.26m\n    test 20 GNSStrans: [3370658.18892, 711877.42369, 5349787.1243]\n    test 21 Cartesian: [-734972.563, 4893188.492, 4011982.811]\n\n    test 22 EUREF EX1: [4027894.0444, 307045.6209, 4919474.8613]\n    test 23 transform0: ITRF2005@2015xETRF2020-ITRF91@2015xETRF2020@2007 max 9.3132e-10, epoched 8.0\n    test 24 transform1: ITRF2005@2015xETRF2014-ITRF91@2015xETRF2014@2007 max 0.048666, epoched 8.0\n    test 25 transform2: ITRF2005@2015xETRF2000-ITRF91@2015xETRF2000@2007 max 0.097331, epoched 8.0\n    test 26 transform3: ITRF2005@2000xITRF2000+ITRF2000@1988xITRF91@2000@2007 max 0.146, epoched 19.0\n    test 27 transform4: -ITRF2020@2015xITRF2005+ITRF2020@2015xITRF91@2007 max 0.19466, epoched 8.0\n    test 28 transform5: -ITRF2014@2010xITRF2005+ITRF2014@2010xITRF91@2007 max 0.24333, epoched 3.0\n    test 29 transform6: -ITRF2008@2005xITRF2005+ITRF2008@2000xITRF91@2005@2007 max 0.29199, epoched 7.0\n    test 30 transform7: ITRF2000@1988xITRF91+ITRF2005@2000xITRF2000@1988@2007 max 0.34066, epoched 31.0\n    test 31 transform8: ITRF2014@2010xITRF91-ITRF2014@2020xGDA2020@2010+ITRF2005@2020xGDA2020@2010@2007 max 0.98111, epoched 23.0\n    test 32 transform9: ITRF2008@2000xITRF91-ITRF2008@1994xGDA94@2000+ITRF2005@1994xGDA94@2000@2007 max 0.35972, epoched 19.0\n    test 33 transform10: ITRF2008@2000xITRF91-ITRF2008@1997xNAD83@2000+ITRF2005@1997xNAD83@2000@2007 max 0.40805, epoched 13.0\n    test 34 EUREF EX2: [4027894.0060, 307045.6000, 4919474.9100]\n    test 35 transform0: ITRF91@2015xETRF2020-ITRF2005@2015xETRF2020@2007 max 0.048666, epoched 8.0\n    test 36 transform1: ITRF91@2015xETRF2014-ITRF2005@2015xETRF2014@2007 max 1.8626e-09, epoched 8.0\n    test 37 transform2: ITRF91@2015xETRF2000-ITRF2005@2015xETRF2000@2007 max 0.048666, epoched 8.0\n    test 38 transform3: -ITRF2005@2000xITRF2000-ITRF2000@1988xITRF91@2000@2007 max 0.097331, epoched 19.0\n    test 39 EUREF EX4: [4027894.3559, 307045.2508, 4919474.6447]\n    test 40 transform0: -ITRF2000@2015xETRF2000@2012 max 4.5169e-08, epoched 3.0\n    test 41 transform1: -ITRF2000@1997xITRF97@2015-ITRF97@2015xETRF2000@2012 max 0.35826, epoched 21.0\n    test 42 transform2: -ITRF2000@1997xITRF96@2015-ITRF96@2015xETRF2000@2012 max 0.7048, epoched 21.0\n    test 43 transform3: -ITRF2000@1988xITRF93@2015-ITRF93@2015xETRF2000@2012 max 1.054, epoched 30.0\n    test 44 transform4: -ITRF2000@1988xITRF92@2015-ITRF92@2015xETRF2000@2012 max 1.4023, epoched 30.0\n    test 45 transform5: -ITRF2000@1988xITRF91@2015-ITRF91@2015xETRF2000@2012 max 1.7514, epoched 30.0\n    test 46 transform6: -ITRF2000@1988xITRF90@2015-ITRF90@2015xETRF2000@2012 max 2.1088, epoched 30.0\n    test 47 transform7: -ITRF2000@1988xITRF89@2015-ITRF89@2015xETRF2000@2012 max 2.4877, epoched 30.0\n    test 48 transform8: -ITRF2000@1988xITRF88@2015-ITRF88@2015xETRF2000@2012 max 2.8343, epoched 30.0\n    test 49 EUREF EX5: [4027893.6458, 307045.9470, 4919475.1937]  FAILED, KNOWN, expected [4027894.3662, 307045.2530, 4919474.6263]\n    test 50 transform0: ITRF2014@2015xETRF2000@2012 max 4.5169e-08, epoched 3.0\n    test 51 transform1: ITRF2014@2010xITRF2008@2015+ITRF2008@2015xETRF2000@2012 max 0.36023, epoched 8.0\n    test 52 transform2: ITRF2014@2010xITRF97@2015+ITRF97@2015xETRF2000@2012 max 0.72047, epoched 8.0\n    test 53 transform3: ITRF2014@2010xITRF93@2015+ITRF93@2015xETRF2000@2012 max 1.0807, epoched 8.0\n    test 54 transform4: ITRF2014@2010xITRF92@2015+ITRF92@2015xETRF2000@2012 max 1.4409, epoched 8.0\n    test 55 transform5: ITRF2014@2010xITRF91@2015+ITRF91@2015xETRF2000@2012 max 1.8012, epoched 8.0\n    test 56 transform6: ITRF2014@2010xITRF90@2015+ITRF90@2015xETRF2000@2012 max 2.1614, epoched 8.0\n    test 57 transform7: ITRF2014@2010xITRF89@2015+ITRF89@2015xETRF2000@2012 max 2.5216, epoched 8.0\n    test 58 transform8: ITRF2014@2010xITRF88@2015+ITRF88@2015xETRF2000@2012 max 2.8819, epoched 8.0\n\n    test 59 Case 1A: [4027893.9619, 307045.5481, 4919474.9553]\n    test 60 Case 1B: [4027894.0054, 307045.5938, 4919474.9083]\n    test 61 Case 2A: [4027893.9639, 307045.545, 4919474.9573]\n    test 62 Case 2B: [4027894.0033, 307045.5889, 4919474.9041]\n\n    test 63 TypeError: type(reframe) ('ITRF2000'): not a RefFrame\n    test 64 TRFError: epoch (1899): below 1900.0 limit\n    test 65 TypeError: type(reframe2) ('ITRF2000'): not a RefFrame\n    test 66 TRFError: no conversion: LatLon(00°00′00.0″N, 000°00′00.0″E).reframe MISSING\n    test 67 TypeError: type(reframe2) ('ITRF2000'): not a RefFrame\n    test 68 TypeError: type(reframe) ('ITRF2000'): not a RefFrame\n\n    test 69 ETRF89@1989: [4160476.944000, 653192.600000, 4774604.455000]\n    test 70 ITRF2014@2018.8: [4160476.415, 653193.057, 4774604.903]  FAILED, KNOWN, expected [4160476.485, 653193.021, 4774604.78]\n    test 71 TransformXform: -ITRF2014@2010xITRF89-ITRF89@1989xETRF89@2010@2018.8\n    test 72 Delta (m): [-0.06956, 0.035714, 0.122931]  FAILED, KNOWN, expected [0.01, 0.01, 0.01]\n    test 73 Error (m): 0.145692  FAILED, KNOWN, expected 0.01\n    test 74 Epoch range: 29.800  FAILED, KNOWN, expected 14.0\n    test 75 ETRF89@1989: [4160476.467836, 653193.103190, 4774604.868503]  FAILED, KNOWN, expected [4160476.944000, 653192.600000, 4774604.455000]\n    test 76 TransformXform: ITRF2014@2010xITRF89+ITRF89@1989xETRF89@2010@1989\n\n    test 77 inverse: -ITRF2014@2010xITRF89-ITRF89@1989xETRF89@2010@1989\n    test 78 inverse: ITRF2014@2010xITRF89+ITRF89@1989xETRF89@2010@1989\n    test 79 inverse: name='ITRF2014@2010xITRF89+ITRF89@1989xETRF89@2010@1989', tx=0.0283, ty=0.046, tz=-0.0615, s1=1.0, rx=0.0, ry=0.0, rz=-7.757e-10, s=0.00567, sx=0.0, sy=0.0, sz=-0.00016\n\n    test 80 ETRF2000@2000: [4160476.952000, 653192.582000, 4774604.441000]\n    test 81 ITRF2014@2018.8: [4160476.471, 653193.059, 4774604.804]  FAILED, KNOWN, expected [4160476.485, 653193.021, 4774604.78]\n    test 82 TransformXform: -ITRF2014@2015xETRF2000@2018.8\n    test 83 Delta (m): [-0.014174, 0.037835, 0.023963]  FAILED, KNOWN, expected [0.01, 0.01, 0.01]\n    test 84 Error (m): 0.046975  FAILED, KNOWN, expected 0.01\n    test 85 Epoch range: 18.800  FAILED, KNOWN, expected 14.0\n    test 86 ETRF2000@2000: [4160476.681125, 653192.914350, 4774604.647835]  FAILED, KNOWN, expected [4160476.952000, 653192.582000, 4774604.441000]\n    test 87 TransformXform: ITRF2014@2015xETRF2000@2000\n\n    test 88 inverse: -ITRF2014@2015xETRF2000@2000\n    test 89 inverse: ITRF2014@2015xETRF2000@2000\n    test 90 inverse: name='ITRF2014@2015xETRF2000@2000', tx=0.0537, ty=0.0512, tz=-0.0551, s1=1.0, rx=4.3197e-09, ry=2.6131e-08, rz=-4.2237e-08, s=0.00102, sx=0.000891, sy=0.00539, sz=-0.008712\n\n    test 91 ITRF2008@2005: [4160476.674000, 653192.806000, 4774604.648000]\n    test 92 ITRF2014@2018.8: [4160476.671, 653192.804, 4774604.645]  FAILED, KNOWN, expected [4160476.485, 653193.021, 4774604.78]\n    test 93 TransformXform: -ITRF2014@2010xITRF2008@2018.8\n    test 94 Delta (m): [0.186385, -0.217059, -0.134685]  FAILED, KNOWN, expected [0.01, 0.01, 0.01]\n    test 95 Error (m): 0.316218  FAILED, KNOWN, expected 0.01\n    test 96 Epoch range: 13.800  FAILED, KNOWN, expected 14.0\n    test 97 ITRF2008@2005: [4160476.672278, 653192.805730, 4774604.647403]  FAILED, KNOWN, expected [4160476.674000, 653192.806000, 4774604.648000]\n    test 98 TransformXform: ITRF2014@2010xITRF2008@2005\n\n    test 99 inverse: -ITRF2014@2010xITRF2008@2005\n    test 100 inverse: ITRF2014@2010xITRF2008@2005\n    test 101 inverse: name='ITRF2014@2010xITRF2008@2005', tx=0.0016, ty=0.0019, tz=0.0029, s1=1.0, rx=0.0, ry=0.0, rz=0.0, s=-0.00017, sx=0.0, sy=0.0, sz=0.0\n\n    test 102 toRefFrame1: ITRF2020@2015 2024.31 [0.0031474, 0.00210534, -0.00125667]\n    test 103 toRefFrame2: ITRF2014@2010 2024.32 [0.0031474, 0.00210634, -0.00125867]\n    test 104 transform0: -ITRF2020@2015xITRF2014@2010\n    test 105 transform0X: TRFXform(epoch=2010.0, name='-ITRF2020@2015xITRF2014@2010')\n    test 106 toRefFrame3: ITRF2020@2015 2010 [0.0031474, 0.00067434, 0.00160533]\n    test 107 transform2x: (4160476.488147, 653193.021674, 4774604.781605)\n    test 108 transform2v: (0.000, 0.000, 0.000)  FAILED, KNOWN, expected (0.004, 0.003, 0.004)\n\n    test 109 transform0: name='ITRF2020@2015xETRF2020@2010', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=8.75573508e-09, ry=5.28398431e-08, rz=-7.66635874e-08, s=0.0, sx=0.001806, sy=0.010899, sz=-0.015813\n    test 110 transform2c: (4027893.9585, 307045.5550, 4919474.9620)  FAILED, KNOWN, expected (4027893.9585, 307045.5550, 4919474.9619)\n    test 111     Error2c: (-0.000016463, 0.0000336, 0.000055143) max 5.514e-05, epoched 5.0\n    test 112 transform2v: (-0.00011, 0.00010, 0.00023)  FAILED, KNOWN, expected (0.00011, 0.00011, 0.00024)\n    test 113     Error2v: (-0.000220786, -0.000005544, -0.000006899) max 0.0002208\n    test 114 transform0v: (0.00009, 0.00052, -0.00075)  FAILED, KNOWN, expected (0.00011, 0.00011, 0.00024)\n    test 115     Error0v: (-0.000024, 0.000409, -0.000993) max 0.000993\n\n    test 116 transform0: name='-ITRF2014@2015xETRF2020@2010', tx=-0.0014, ty=-0.0004, tz=0.0004, s1=1.0, rx=-8.75573508e-09, ry=-5.28398431e-08, rz=7.66635874e-08, s=-0.00042, sx=-0.001806, sy=-0.010899, sz=0.015813\n    test 117 transform2c: (4027893.6719, 307045.9063, 4919475.1704)  FAILED, KNOWN, expected (4027893.6719, 307045.9064, 4919475.1704)\n    test 118     Error2c: (0.000024786, -0.000062539, -0.000021304) max 6.254e-05, epoched 5.0\n    test 119 transform2v: (-0.01339, 0.01677, 0.01045)  FAILED, KNOWN, expected (-0.01361, 0.01676, 0.01044)\n    test 120     Error2v: (0.000220784, 0.000005543, 0.000006898) max 0.0002208\n    test 121 transform0v: (-0.00009, -0.00052, 0.00075)  FAILED, KNOWN, expected (-0.01361, 0.01676, 0.01044)\n    test 122     Error0v: (0.013524, -0.017279, -0.009687) max 0.01728\n\n    test 123 transform0: name='ITRF2014@2015xETRF2014@2010', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=8.65392421e-09, ry=5.40615736e-08, rz=-7.83943722e-08, s=0.0, sx=0.001785, sy=0.011151, sz=-0.01617\n    test 124 transform2c: (4027893.9619, 307045.5481, 4919474.9553)  FAILED, KNOWN, expected (4027893.9620, 307045.5480, 4919474.9553)\n    test 125     Error2c: (-0.00007476, 0.000063039, 0.000002882) max 7.476e-05, epoched 5.0\n    test 126 transform2v: (0.00020, -0.00030, 0.00020)\n    test 127     Error2v: (0.000000724, -0.000003666, -0.000002721) max 3.666e-06\n    test 128 transform0v: (0.00009, 0.00053, -0.00077)  FAILED, KNOWN, expected (0.00020, -0.00030, 0.00020)\n    test 129     Error0v: (-0.000115, 0.000831, -0.00097) max 0.00097\n\n    test 130 transform0: name='-ITRF2000@2015xETRF2014@2010', tx=0.0007, ty=0.0012, tz=-0.0261, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 131 transform2c: (4027893.6812, 307045.9082, 4919475.1547)\n    test 132     Error2c: (0.000013934, -0.000012081, 0.000026423) max 2.642e-05, epoched 5.0\n    test 133 transform2v: (-0.01351, 0.01686, 0.00854)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 134     Error2v: (-0.000440726, -0.000036335, -0.00053728) max 0.0005373\n    test 135 transform0v: (-0.00008, -0.00053, 0.00077)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 136     Error0v: (0.012985, -0.017431, -0.00831) max 0.01743\n\n    test 137 transform0: name='ITRF2000@2015xETRF2000@2010', tx=0.054, ty=0.051, tz=-0.048, s1=1.0, rx=8.24668072e-09, ry=4.98873278e-08, rz=-8.06342114e-08, s=0.0, sx=0.001701, sy=0.01029, sz=-0.016632\n    test 138 transform2c: (4027894.0054, 307045.5938, 4919474.9083)  FAILED, KNOWN, expected (4027894.0053, 307045.5939, 4919474.9083)\n    test 139     Error2c: (0.000077874, -0.000055372, -0.000008743) max 7.787e-05, epoched 5.0\n    test 140 transform2v: (-0.00020, -0.00050, -0.00037)  FAILED, KNOWN, expected (-0.00020, -0.00050, -0.00036)\n    test 141     Error2v: (-0.000004389, 0.000002124, -0.000008036) max 8.036e-06\n    test 142 transform0v: (0.00008, 0.00049, -0.00079)  FAILED, KNOWN, expected (-0.00020, -0.00050, -0.00036)\n    test 143     Error0v: (0.000281, 0.00099, -0.000432) max 0.00099\n\n    test 144 transform0/: name='-ITRF2000@2015xETRF2014@2010', tx=0.0007, ty=0.0012, tz=-0.0261, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 145 transform2c: (4027893.6812, 307045.9082, 4919475.1547)\n    test 146     Error2c: (0.000013934, -0.000012081, 0.000026423) max 2.642e-05, epoched 5.0\n    test 147 transform2v: (-0.01351, 0.01686, 0.00854)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 148     Error2v: (-0.000440726, -0.000036335, -0.00053728) max 0.0005373\n\n    test 149 transform1/: name='-ITRF2000@1997xITRF97@2015-ITRF97@2015xETRF2014@2010', tx=0.00673, ty=-0.00033, tz=-0.05913, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=8.09154034e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01669\n    test 150 transform2c: (4027893.6865, 307045.9168, 4919475.1217)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 151     Error2c: (0.005269863, 0.008612365, -0.033003577) max 0.033, epoched 23.0\n    test 152 transform2v: (-0.01357, 0.01710, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 153     Error2v: (-0.00050027, 0.000204776, -0.00179728) max 0.001797\n\n    test 154 transform2/: name='-ITRF2000@1997xITRF96@2015-ITRF96@2015xETRF2014@2010', tx=0.00673, ty=-0.00033, tz=-0.05913, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 155 transform2c: (4027893.6872, 307045.9067, 4919475.1217)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 156     Error2c: (0.006043935, -0.001542081, -0.033003577) max 0.033, epoched 23.0\n    test 157 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 158     Error2v: (-0.000440726, -0.000576335, -0.00179728) max 0.001797\n\n    test 159 transform3/: name='-ITRF2000@1988xITRF93@2015-ITRF93@2015xETRF2014@2010', tx=0.0007, ty=0.0012, tz=-0.0261, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 160 transform2c: (4027893.6812, 307045.9082, 4919475.1547)\n    test 161     Error2c: (0.000013934, -0.000012081, 0.000026423) max 2.642e-05, epoched 32.0\n    test 162 transform2v: (-0.01351, 0.01686, 0.00854)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 163     Error2v: (-0.000440726, -0.000036335, -0.00053728) max 0.0005373\n\n    test 164 transform4/: name='-ITRF2000@1988xITRF92@2015-ITRF92@2015xETRF2014@2010', tx=0.01393, ty=0.00147, tz=-0.06633, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 165 transform2c: (4027893.6944, 307045.9085, 4919475.1145)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 166     Error2c: (0.013243935, 0.000257919, -0.040203577) max 0.0402, epoched 32.0\n    test 167 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 168     Error2v: (-0.000440726, -0.000576335, -0.00179728) max 0.001797\n./test/testTrf.py:29: DeprecationWarning: method L{convertRefFrame<pygeodesy.ellipsoidalVincenty.LatLon.convertRefFrame>} has been DEPRECATED, use method L{toRefFrame}.\n  x = p.convertRefFrame(RefFrames.ETRF2000)\n\n    test 169 transform5/: name='-ITRF2000@1988xITRF91@2015-ITRF91@2015xETRF2014@2010', tx=0.0007, ty=0.0012, tz=-0.0261, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 170 transform2c: (4027893.6812, 307045.9082, 4919475.1547)\n    test 171     Error2c: (0.000013934, -0.000012081, 0.000026423) max 2.642e-05, epoched 32.0\n    test 172 transform2v: (-0.01351, 0.01686, 0.00854)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 173     Error2v: (-0.000440726, -0.000036335, -0.00053728) max 0.0005373\n\n    test 174 transform6/: name='-ITRF2000@1988xITRF90@2015-ITRF90@2015xETRF2014@2010', tx=0.02293, ty=0.01047, tz=-0.08613, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 175 transform2c: (4027893.7034, 307045.9175, 4919475.0947)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 176     Error2c: (0.022243935, 0.009257919, -0.060003577) max 0.06, epoched 32.0\n    test 177 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 178     Error2v: (-0.000440726, -0.000576335, -0.00179728) max 0.001797\n\n    test 179 transform7/: name='-ITRF2000@1988xITRF89@2015-ITRF89@2015xETRF2014@2010', tx=0.02743, ty=0.03207, tz=-0.12033, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 180 transform2c: (4027893.7079, 307045.9391, 4919475.0605)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 181     Error2c: (0.026743934, 0.030857919, -0.094203576) max 0.0942, epoched 32.0\n    test 182 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 183     Error2v: (-0.000440726, -0.000576335, -0.00179728) max 0.001797\n\n    test 184 transform8/: name='-ITRF2000@1988xITRF88@2015-ITRF88@2015xETRF2014@2010', tx=0.02293, ty=-0.00033, tz=-0.14193, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 185 transform2c: (4027893.7034, 307045.9067, 4919475.0389)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 186     Error2c: (0.022243935, -0.001542081, -0.115803577) max 0.1158, epoched 32.0\n    test 187 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 188     Error2v: (-0.000440725, -0.000576335, -0.00179728) max 0.001797\n\n    test 189 transform0: name='ITRF2020@2015xETRF2020@2020', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=1.29251327e-08, ry=7.80016732e-08, rz=-1.13170058e-07, s=0.0, sx=0.002666, sy=0.016089, sz=-0.023343\n    test 190 transform2c: (4027893.9574, 307045.5561, 4919474.9643)\n    test 191     Error2c: (-0.000024276, -0.000021815, -0.000013824) max 2.428e-05, epoched 5.0\n    test 192 transform2v: (0.01350, -0.01676, -0.01001)\n\n    test 193 transform0: name='-ITRF2014@2015xETRF2020@2020', tx=-0.0014, ty=-0.0014, tz=0.0024, s1=1.0, rx=-1.29251327e-08, ry=-7.80016732e-08, rz=1.13170058e-07, s=-0.00042, sx=-0.002666, sy=-0.016089, sz=0.023343\n    test 194 transform2c: (4027893.5358, 307046.0740, 4919475.2748)\n    test 195     Error2c: (0.000032643, -0.000007101, 0.000047684) max 4.768e-05, epoched 5.0\n    test 196 transform2v: (-0.01350, 0.01666, 0.01021)\n\n    test 197 transform0: name='ITRF2014@2015xETRF2014@2020', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=1.27748405e-08, ry=7.980518e-08, rz=-1.15725026e-07, s=0.0, sx=0.002635, sy=0.016461, sz=-0.02387\n    test 198 transform2c: (4027893.9639, 307045.5450, 4919474.9573)\n    test 199     Error2c: (0.000032525, 0.000026405, -0.000024305) max 3.253e-05, epoched 5.0\n    test 200 transform2v: (0.01381, -0.01706, -0.01024)\n\n    test 201 transform0: name='-ITRF2000@2015xETRF2014@2020', tx=0.0017, ty=0.0022, tz=-0.0451, s1=1.0, rx=-1.27748405e-08, ry=-7.980518e-08, rz=1.15725026e-07, s=0.00322, sx=-0.002635, sy=-0.016461, sz=0.02387\n    test 202 transform2c: (4027893.5504, 307046.0772, 4919475.2456)  FAILED, KNOWN, expected (4027893.5505, 307046.0772, 4919475.2456)\n    test 203     Error2c: (-0.00006262, -0.000037673, -0.000034945) max 6.262e-05, epoched 5.0\n    test 204 transform2v: (-0.01371, 0.01716, 0.00834)\n\n    test 205 transform0: name='ITRF2000@2015xETRF2000@2020', tx=0.054, ty=0.051, tz=-0.048, s1=1.0, rx=1.21736715e-08, ry=7.36431982e-08, rz=-1.19031455e-07, s=0.0, sx=0.002511, sy=0.01519, sz=-0.024552\n    test 206 transform2c: (4027894.0033, 307045.5889, 4919474.9047)\n    test 207     Error2c: (0.000034031, -0.000034106, 0.000010915) max 3.411e-05, epoched 5.0\n    test 208 transform2v: (0.01287, -0.01740, -0.00945)\n\n    test 209 transform0*: name='-ITRF2014@2010xITRF89-ITRF89@1989xETRF89@2010@2018.8', tx=-0.03128, ty=-0.0311, tz=0.15984, s1=0.999999991, rx=-1.58921925e-08, ry=-8.23504519e-08, rz=1.00463091e-07, s=-0.009246, sx=-0.003278, sy=-0.016986, sz=0.020722\n    test 210 transform2c: (4160476.4154, 653193.0567, 4774604.9029)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 211     Error2c: (-0.069560351, 0.035713888, 0.122930501) max 0.1229, epoched 29.8\n    test 212 transform2v: (-0.01148, 0.01996, 0.01845)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 213     Error2v: (-0.015479395, 0.016963959, 0.014448874) max 0.01696\n\n    test 214 transform0*: name='-ITRF2014@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 215 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 216     Error2c: (-0.014174475, 0.037834952, 0.023962617) max 0.03783, epoched 3.8\n    test 217 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 218     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 219 transform1*: name='-ITRF2014@2010xITRF2008@2015-ITRF2008@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 220 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 221     Error2c: (-0.014174475, 0.037834952, 0.023962617) max 0.03783, epoched 8.8\n    test 222 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 223     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 224 transform2*: name='-ITRF2014@2010xITRF97@2015-ITRF97@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 225 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 226     Error2c: (-0.014174475, 0.037834952, 0.023962617) max 0.03783, epoched 8.8\n    test 227 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 228     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 229 transform3*: name='-ITRF2014@2010xITRF93@2015-ITRF93@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 230 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 231     Error2c: (-0.014174475, 0.037834952, 0.023962617) max 0.03783, epoched 8.8\n    test 232 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 233     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 234 transform4*: name='-ITRF2014@2010xITRF92@2015-ITRF92@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n./test/testTrf.py:136: DeprecationWarning: method L{convertRefFrame<pygeodesy.ellipsoidalVincenty.LatLon.convertRefFrame>} has been DEPRECATED, use method L{toRefFrame}.\n  t = LatLon(0, 0, reframe=RefFrames.ITRF2000).convertRefFrame('ITRF2000')\n    test 235 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 236     Error2c: (-0.014174475, 0.037834952, 0.023962617) max 0.03783, epoched 8.8\n    test 237 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 238     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 239 transform5*: name='-ITRF2014@2010xITRF91@2015-ITRF91@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 240 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 241     Error2c: (-0.014174475, 0.037834952, 0.023962617) max 0.03783, epoched 8.8\n    test 242 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 243     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 244 transform6*: name='-ITRF2014@2010xITRF90@2015-ITRF90@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 245 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 246     Error2c: (-0.014174475, 0.037834952, 0.023962617) max 0.03783, epoched 8.8\n    test 247 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 248     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 249 transform7*: name='-ITRF2014@2010xITRF89@2015-ITRF89@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 250 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 251     Error2c: (-0.014174475, 0.037834952, 0.023962617) max 0.03783, epoched 8.8\n    test 252 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 253     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 254 transform8*: name='-ITRF2014@2010xITRF88@2015-ITRF88@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 255 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 256     Error2c: (-0.014174475, 0.037834952, 0.023962617) max 0.03783, epoched 8.8\n    test 257 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 258     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 259 toTransform: name='-ITRF2014@2010xITRF88@2015-ITRF88@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=1.0, rx=-1.1702e-08, ry=-7.0792e-08, rz=1.1442e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.023602\n    test 260 toTransform: name='-ITRF2014@2010xITRF88@2015-ITRF88@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=1.0, rx=-1.1702e-08, ry=-7.0792e-08, rz=1.1442e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.023602\n\n    test 261 Issue80: 48.77691577°N, 008.92257142°E, +476.05m\n    test 262 Issue80: 48.77692147°N, 008.92257868°E, +476.09m\n    test 263 Issue80: 48°46′36.915134″N, 008°55′21.285094″E, +476.10m  FAILED, KNOWN, expected 48°46′36.915134″N, 008°55′21.285094″E, +476.10\n    test 264 Issue80: 0.804  FAILED, KNOWN, expected 0.01\n    test 265 Issue80: [4160476.944064, 653192.600457, 4774604.455385]\n    test 266 Issue80: [4160476.415504, 653193.057171, 4774604.903316]\n    test 267 Issue80: [4160476.467901, 653193.103647, 4774604.868888]\n    test 268 Issue80: 48°46′36.915133″N, 008°55′21.285094″E, +476.10m\n\n    test 269 Issue80: 48.77692032°N, 008.92257804°E, +476.05m\n    test 270 Issue80: 48.77691971°N, 008.92257856°E, +476.06m\n    test 271 Issue80: 48°46′36.9315″N, 008°55′21.3089″E, +476.10m  FAILED, KNOWN, expected 48°46′36.9131″N, 008°55′21.28095″E, +476.05m\n    test 272 Issue80: 0.804  FAILED, KNOWN, expected 0.01\n    test 273 Issue80: [4160476.492633, 653193.021888, 4774604.78885]\n    test 274 Issue80: [4160476.54503, 653193.068365, 4774604.754422]\n    test 275 Issue80: [4160476.016469, 653193.525079, 4774605.202353]\n    test 276 Issue80: 48°46′36.9315″N, 008°55′21.3089″E, +476.10m\n\n    test 277 ITRF96@1997xNAD83: TRFXform(epoch=1997.0, name='ITRF96@1997xNAD83')\n    test 278 ITRF96@1997xNAD83: name='ITRF96@1997xNAD83', tx=0.991, ty=-0.19072, tz=-0.5129, s1=1.0, rx=1.2503e-07, ry=4.6785e-08, rz=5.6529e-08, s=0.0, sx=0.02579, sy=0.00965, sz=0.01166\n    test 279 ITRF96@1997xNAD83: name='ITRF96@1997xNAD83@2007', tx=0.991, ty=-0.19072, tz=-0.5129, s1=1.0, rx=1.2761e-07, ry=1.0797e-08, rz=5.4997e-08, s=0.0, sx=0.026322, sy=0.002227, sz=0.011344\n    test 280 ITRF96@1997xNAD83: rx=-2.5792e-10, ry=3.5988e-09, rz=1.532e-10\n\n    testTrf(pygeodesy.ellipsoidalVincenty, 25.05.26)\n    test 281 convertRefFrame: 51.47787826°N, 000.00147125°W, -0.00m  FAILED, KNOWN, expected 51.47787826°N, 000.00147125°W\n    test 282 copy(<class 'type'>): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 283 RefFrame.copy(): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 284 toLatLon: 50.7978°N, 004.3592°E, +148.96m\n    test 285 convertRefFrame: [3980574.395, -102.214, 4966829.941]\n    test 286 Nil: True\n    test 287 copy(<class 'type'>): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 288 RefFrame.copy(): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 289 Nil: True\n    test 290 reframe: True\n    test 291 Roundtrip: True\n    test 292 reframe: True\n    test 293 copy(<class 'type'>): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 294 RefFrame.copy(): (<class 'pygeodesy.trf.RefFrame'>, True)\n\n    test 295 Geodetic: 23°40′12.44582″S, 133°53′07.84795″E, +603.34m\n    test 296 Cartesian: [-4052051.7614, 4212836.1945, -2545106.0147]\n    test 297 Geodetic: 23°40′12.44582″S, 133°53′07.84795″E, +603.34m\n    test 298 Cartesian: [-4052051.7614, 4212836.1945, -2545106.0147]\n    test 299 Roundtrip: 23°40′12.41482″S, 133°53′07.86712″E, +603.26m\n    test 300 GNSStrans: [3370658.18892, 711877.42369, 5349787.1243]\n    test 301 Cartesian: [-734972.563, 4893188.492, 4011982.811]\n\n    test 302 EUREF EX1: [4027894.0444, 307045.6209, 4919474.8613]\n    test 303 transform0: ITRF2005@2015xETRF2020-ITRF91@2015xETRF2020@2007 max 9.3132e-10, epoched 8.0\n    test 304 transform1: ITRF2005@2015xETRF2014-ITRF91@2015xETRF2014@2007 max 0.048666, epoched 8.0\n    test 305 transform2: ITRF2005@2015xETRF2000-ITRF91@2015xETRF2000@2007 max 0.097331, epoched 8.0\n    test 306 transform3: ITRF2005@2000xITRF2000+ITRF2000@1988xITRF91@2000@2007 max 0.146, epoched 19.0\n    test 307 transform4: -ITRF2020@2015xITRF2005+ITRF2020@2015xITRF91@2007 max 0.19466, epoched 8.0\n    test 308 transform5: -ITRF2014@2010xITRF2005+ITRF2014@2010xITRF91@2007 max 0.24333, epoched 3.0\n    test 309 transform6: -ITRF2008@2005xITRF2005+ITRF2008@2000xITRF91@2005@2007 max 0.29199, epoched 7.0\n    test 310 transform7: ITRF2000@1988xITRF91+ITRF2005@2000xITRF2000@1988@2007 max 0.34066, epoched 31.0\n    test 311 transform8: ITRF2014@2010xITRF91-ITRF2014@2020xGDA2020@2010+ITRF2005@2020xGDA2020@2010@2007 max 0.98111, epoched 23.0\n    test 312 transform9: ITRF2008@2000xITRF91-ITRF2008@1994xGDA94@2000+ITRF2005@1994xGDA94@2000@2007 max 0.35972, epoched 19.0\n    test 313 transform10: ITRF2008@2000xITRF91-ITRF2008@1997xNAD83@2000+ITRF2005@1997xNAD83@2000@2007 max 0.40805, epoched 13.0\n    test 314 EUREF EX2: [4027894.0060, 307045.6000, 4919474.9100]\n    test 315 transform0: ITRF91@2015xETRF2020-ITRF2005@2015xETRF2020@2007 max 0.048666, epoched 8.0\n    test 316 transform1: ITRF91@2015xETRF2014-ITRF2005@2015xETRF2014@2007 max 1.8626e-09, epoched 8.0\n    test 317 transform2: ITRF91@2015xETRF2000-ITRF2005@2015xETRF2000@2007 max 0.048666, epoched 8.0\n    test 318 transform3: -ITRF2005@2000xITRF2000-ITRF2000@1988xITRF91@2000@2007 max 0.097331, epoched 19.0\n    test 319 EUREF EX4: [4027894.3559, 307045.2508, 4919474.6447]\n    test 320 transform0: -ITRF2000@2015xETRF2000@2012 max 4.5169e-08, epoched 3.0\n    test 321 transform1: -ITRF2000@1997xITRF97@2015-ITRF97@2015xETRF2000@2012 max 0.35826, epoched 21.0\n    test 322 transform2: -ITRF2000@1997xITRF96@2015-ITRF96@2015xETRF2000@2012 max 0.7048, epoched 21.0\n    test 323 transform3: -ITRF2000@1988xITRF93@2015-ITRF93@2015xETRF2000@2012 max 1.054, epoched 30.0\n    test 324 transform4: -ITRF2000@1988xITRF92@2015-ITRF92@2015xETRF2000@2012 max 1.4023, epoched 30.0\n    test 325 transform5: -ITRF2000@1988xITRF91@2015-ITRF91@2015xETRF2000@2012 max 1.7514, epoched 30.0\n    test 326 transform6: -ITRF2000@1988xITRF90@2015-ITRF90@2015xETRF2000@2012 max 2.1088, epoched 30.0\n    test 327 transform7: -ITRF2000@1988xITRF89@2015-ITRF89@2015xETRF2000@2012 max 2.4877, epoched 30.0\n    test 328 transform8: -ITRF2000@1988xITRF88@2015-ITRF88@2015xETRF2000@2012 max 2.8343, epoched 30.0\n    test 329 EUREF EX5: [4027893.6458, 307045.9470, 4919475.1937]  FAILED, KNOWN, expected [4027894.3662, 307045.2530, 4919474.6263]\n    test 330 transform0: ITRF2014@2015xETRF2000@2012 max 4.5169e-08, epoched 3.0\n    test 331 transform1: ITRF2014@2010xITRF2008@2015+ITRF2008@2015xETRF2000@2012 max 0.36023, epoched 8.0\n    test 332 transform2: ITRF2014@2010xITRF97@2015+ITRF97@2015xETRF2000@2012 max 0.72047, epoched 8.0\n    test 333 transform3: ITRF2014@2010xITRF93@2015+ITRF93@2015xETRF2000@2012 max 1.0807, epoched 8.0\n    test 334 transform4: ITRF2014@2010xITRF92@2015+ITRF92@2015xETRF2000@2012 max 1.4409, epoched 8.0\n    test 335 transform5: ITRF2014@2010xITRF91@2015+ITRF91@2015xETRF2000@2012 max 1.8012, epoched 8.0\n    test 336 transform6: ITRF2014@2010xITRF90@2015+ITRF90@2015xETRF2000@2012 max 2.1614, epoched 8.0\n    test 337 transform7: ITRF2014@2010xITRF89@2015+ITRF89@2015xETRF2000@2012 max 2.5216, epoched 8.0\n    test 338 transform8: ITRF2014@2010xITRF88@2015+ITRF88@2015xETRF2000@2012 max 2.8819, epoched 8.0\n\n    test 339 Case 1A: [4027893.9619, 307045.5481, 4919474.9553]\n    test 340 Case 1B: [4027894.0054, 307045.5938, 4919474.9083]\n    test 341 Case 2A: [4027893.9639, 307045.545, 4919474.9573]\n    test 342 Case 2B: [4027894.0033, 307045.5889, 4919474.9041]\n\n    test 343 TypeError: type(reframe) ('ITRF2000'): not a RefFrame\n    test 344 TRFError: epoch (1899): below 1900.0 limit\n    test 345 TypeError: type(reframe2) ('ITRF2000'): not a RefFrame\n    test 346 TRFError: no conversion: LatLon(00°00′00.0″N, 000°00′00.0″E).reframe MISSING\n    test 347 TypeError: type(reframe2) ('ITRF2000'): not a RefFrame\n    test 348 TypeError: type(reframe) ('ITRF2000'): not a RefFrame\n\n    test 349 ETRF89@1989: [4160476.944000, 653192.600000, 4774604.455000]\n    test 350 ITRF2014@2018.8: [4160476.415, 653193.057, 4774604.903]  FAILED, KNOWN, expected [4160476.485, 653193.021, 4774604.78]\n    test 351 TransformXform: -ITRF2014@2010xITRF89-ITRF89@1989xETRF89@2010@2018.8\n    test 352 Delta (m): [-0.06956, 0.035714, 0.122931]  FAILED, KNOWN, expected [0.01, 0.01, 0.01]\n    test 353 Error (m): 0.145692  FAILED, KNOWN, expected 0.01\n    test 354 Epoch range: 29.800  FAILED, KNOWN, expected 14.0\n    test 355 ETRF89@1989: [4160476.467836, 653193.103190, 4774604.868503]  FAILED, KNOWN, expected [4160476.944000, 653192.600000, 4774604.455000]\n    test 356 TransformXform: ITRF2014@2010xITRF89+ITRF89@1989xETRF89@2010@1989\n\n    test 357 inverse: -ITRF2014@2010xITRF89-ITRF89@1989xETRF89@2010@1989\n    test 358 inverse: ITRF2014@2010xITRF89+ITRF89@1989xETRF89@2010@1989\n    test 359 inverse: name='ITRF2014@2010xITRF89+ITRF89@1989xETRF89@2010@1989', tx=0.0283, ty=0.046, tz=-0.0615, s1=1.0, rx=0.0, ry=0.0, rz=-7.757e-10, s=0.00567, sx=0.0, sy=0.0, sz=-0.00016\n\n    test 360 ETRF2000@2000: [4160476.952000, 653192.582000, 4774604.441000]\n    test 361 ITRF2014@2018.8: [4160476.471, 653193.059, 4774604.804]  FAILED, KNOWN, expected [4160476.485, 653193.021, 4774604.78]\n    test 362 TransformXform: -ITRF2014@2015xETRF2000@2018.8\n    test 363 Delta (m): [-0.014174, 0.037835, 0.023963]  FAILED, KNOWN, expected [0.01, 0.01, 0.01]\n    test 364 Error (m): 0.046975  FAILED, KNOWN, expected 0.01\n    test 365 Epoch range: 18.800  FAILED, KNOWN, expected 14.0\n    test 366 ETRF2000@2000: [4160476.681125, 653192.914350, 4774604.647835]  FAILED, KNOWN, expected [4160476.952000, 653192.582000, 4774604.441000]\n    test 367 TransformXform: ITRF2014@2015xETRF2000@2000\n\n    test 368 inverse: -ITRF2014@2015xETRF2000@2000\n    test 369 inverse: ITRF2014@2015xETRF2000@2000\n    test 370 inverse: name='ITRF2014@2015xETRF2000@2000', tx=0.0537, ty=0.0512, tz=-0.0551, s1=1.0, rx=4.3197e-09, ry=2.6131e-08, rz=-4.2237e-08, s=0.00102, sx=0.000891, sy=0.00539, sz=-0.008712\n\n    test 371 ITRF2008@2005: [4160476.674000, 653192.806000, 4774604.648000]\n    test 372 ITRF2014@2018.8: [4160476.671, 653192.804, 4774604.645]  FAILED, KNOWN, expected [4160476.485, 653193.021, 4774604.78]\n    test 373 TransformXform: -ITRF2014@2010xITRF2008@2018.8\n    test 374 Delta (m): [0.186385, -0.217059, -0.134685]  FAILED, KNOWN, expected [0.01, 0.01, 0.01]\n    test 375 Error (m): 0.316218  FAILED, KNOWN, expected 0.01\n    test 376 Epoch range: 13.800  FAILED, KNOWN, expected 14.0\n    test 377 ITRF2008@2005: [4160476.672278, 653192.805730, 4774604.647403]  FAILED, KNOWN, expected [4160476.674000, 653192.806000, 4774604.648000]\n    test 378 TransformXform: ITRF2014@2010xITRF2008@2005\n\n    test 379 inverse: -ITRF2014@2010xITRF2008@2005\n    test 380 inverse: ITRF2014@2010xITRF2008@2005\n    test 381 inverse: name='ITRF2014@2010xITRF2008@2005', tx=0.0016, ty=0.0019, tz=0.0029, s1=1.0, rx=0.0, ry=0.0, rz=0.0, s=-0.00017, sx=0.0, sy=0.0, sz=0.0\n\n    test 382 toRefFrame1: ITRF2020@2015 2024.31 [0.0031474, 0.00210534, -0.00125667]\n    test 383 toRefFrame2: ITRF2014@2010 2024.32 [0.0031474, 0.00210634, -0.00125867]\n    test 384 transform0: -ITRF2020@2015xITRF2014@2010\n    test 385 transform0X: TRFXform(epoch=2010.0, name='-ITRF2020@2015xITRF2014@2010')\n    test 386 toRefFrame3: ITRF2020@2015 2010 [0.0031474, 0.00067434, 0.00160533]\n    test 387 transform2x: (4160476.488147, 653193.021674, 4774604.781605)\n    test 388 transform2v: (0.000, 0.000, 0.000)  FAILED, KNOWN, expected (0.004, 0.003, 0.004)\n\n    test 389 transform0: name='ITRF2020@2015xETRF2020@2010', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=8.75573508e-09, ry=5.28398431e-08, rz=-7.66635874e-08, s=0.0, sx=0.001806, sy=0.010899, sz=-0.015813\n    test 390 transform2c: (4027893.9585, 307045.5550, 4919474.9620)  FAILED, KNOWN, expected (4027893.9585, 307045.5550, 4919474.9619)\n    test 391     Error2c: (-0.000016463, 0.0000336, 0.000055143) max 5.514e-05, epoched 5.0\n    test 392 transform2v: (-0.00011, 0.00010, 0.00023)  FAILED, KNOWN, expected (0.00011, 0.00011, 0.00024)\n    test 393     Error2v: (-0.000220786, -0.000005544, -0.000006899) max 0.0002208\n    test 394 transform0v: (0.00009, 0.00052, -0.00075)  FAILED, KNOWN, expected (0.00011, 0.00011, 0.00024)\n    test 395     Error0v: (-0.000024, 0.000409, -0.000993) max 0.000993\n\n    test 396 transform0: name='-ITRF2014@2015xETRF2020@2010', tx=-0.0014, ty=-0.0004, tz=0.0004, s1=1.0, rx=-8.75573508e-09, ry=-5.28398431e-08, rz=7.66635874e-08, s=-0.00042, sx=-0.001806, sy=-0.010899, sz=0.015813\n    test 397 transform2c: (4027893.6719, 307045.9063, 4919475.1704)  FAILED, KNOWN, expected (4027893.6719, 307045.9064, 4919475.1704)\n    test 398     Error2c: (0.000024786, -0.000062539, -0.000021304) max 6.254e-05, epoched 5.0\n    test 399 transform2v: (-0.01339, 0.01677, 0.01045)  FAILED, KNOWN, expected (-0.01361, 0.01676, 0.01044)\n    test 400     Error2v: (0.000220784, 0.000005543, 0.000006898) max 0.0002208\n    test 401 transform0v: (-0.00009, -0.00052, 0.00075)  FAILED, KNOWN, expected (-0.01361, 0.01676, 0.01044)\n    test 402     Error0v: (0.013524, -0.017279, -0.009687) max 0.01728\n\n    test 403 transform0: name='ITRF2014@2015xETRF2014@2010', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=8.65392421e-09, ry=5.40615736e-08, rz=-7.83943722e-08, s=0.0, sx=0.001785, sy=0.011151, sz=-0.01617\n    test 404 transform2c: (4027893.9619, 307045.5481, 4919474.9553)  FAILED, KNOWN, expected (4027893.9620, 307045.5480, 4919474.9553)\n    test 405     Error2c: (-0.00007476, 0.000063039, 0.000002882) max 7.476e-05, epoched 5.0\n    test 406 transform2v: (0.00020, -0.00030, 0.00020)\n    test 407     Error2v: (0.000000724, -0.000003666, -0.000002721) max 3.666e-06\n    test 408 transform0v: (0.00009, 0.00053, -0.00077)  FAILED, KNOWN, expected (0.00020, -0.00030, 0.00020)\n    test 409     Error0v: (-0.000115, 0.000831, -0.00097) max 0.00097\n\n    test 410 transform0: name='-ITRF2000@2015xETRF2014@2010', tx=0.0007, ty=0.0012, tz=-0.0261, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 411 transform2c: (4027893.6812, 307045.9082, 4919475.1547)\n    test 412     Error2c: (0.000013934, -0.000012081, 0.000026423) max 2.642e-05, epoched 5.0\n    test 413 transform2v: (-0.01351, 0.01686, 0.00854)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 414     Error2v: (-0.000440726, -0.000036335, -0.00053728) max 0.0005373\n    test 415 transform0v: (-0.00008, -0.00053, 0.00077)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 416     Error0v: (0.012985, -0.017431, -0.00831) max 0.01743\n\n    test 417 transform0: name='ITRF2000@2015xETRF2000@2010', tx=0.054, ty=0.051, tz=-0.048, s1=1.0, rx=8.24668072e-09, ry=4.98873278e-08, rz=-8.06342114e-08, s=0.0, sx=0.001701, sy=0.01029, sz=-0.016632\n    test 418 transform2c: (4027894.0054, 307045.5938, 4919474.9083)  FAILED, KNOWN, expected (4027894.0053, 307045.5939, 4919474.9083)\n    test 419     Error2c: (0.000077874, -0.000055372, -0.000008743) max 7.787e-05, epoched 5.0\n    test 420 transform2v: (-0.00020, -0.00050, -0.00037)  FAILED, KNOWN, expected (-0.00020, -0.00050, -0.00036)\n    test 421     Error2v: (-0.000004389, 0.000002124, -0.000008036) max 8.036e-06\n    test 422 transform0v: (0.00008, 0.00049, -0.00079)  FAILED, KNOWN, expected (-0.00020, -0.00050, -0.00036)\n    test 423     Error0v: (0.000281, 0.00099, -0.000432) max 0.00099\n\n    test 424 transform0/: name='-ITRF2000@2015xETRF2014@2010', tx=0.0007, ty=0.0012, tz=-0.0261, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 425 transform2c: (4027893.6812, 307045.9082, 4919475.1547)\n    test 426     Error2c: (0.000013934, -0.000012081, 0.000026423) max 2.642e-05, epoched 5.0\n    test 427 transform2v: (-0.01351, 0.01686, 0.00854)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 428     Error2v: (-0.000440726, -0.000036335, -0.00053728) max 0.0005373\n\n    test 429 transform1/: name='-ITRF2000@1997xITRF97@2015-ITRF97@2015xETRF2014@2010', tx=0.00673, ty=-0.00033, tz=-0.05913, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=8.09154034e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01669\n    test 430 transform2c: (4027893.6865, 307045.9168, 4919475.1217)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 431     Error2c: (0.005269863, 0.008612365, -0.033003577) max 0.033, epoched 23.0\n    test 432 transform2v: (-0.01357, 0.01710, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 433     Error2v: (-0.00050027, 0.000204776, -0.00179728) max 0.001797\n\n    test 434 transform2/: name='-ITRF2000@1997xITRF96@2015-ITRF96@2015xETRF2014@2010', tx=0.00673, ty=-0.00033, tz=-0.05913, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 435 transform2c: (4027893.6872, 307045.9067, 4919475.1217)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 436     Error2c: (0.006043935, -0.001542081, -0.033003577) max 0.033, epoched 23.0\n    test 437 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 438     Error2v: (-0.000440726, -0.000576335, -0.00179728) max 0.001797\n\n    test 439 transform3/: name='-ITRF2000@1988xITRF93@2015-ITRF93@2015xETRF2014@2010', tx=0.0007, ty=0.0012, tz=-0.0261, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 440 transform2c: (4027893.6812, 307045.9082, 4919475.1547)\n    test 441     Error2c: (0.000013934, -0.000012081, 0.000026423) max 2.642e-05, epoched 32.0\n    test 442 transform2v: (-0.01351, 0.01686, 0.00854)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 443     Error2v: (-0.000440726, -0.000036335, -0.00053728) max 0.0005373\n\n    test 444 transform4/: name='-ITRF2000@1988xITRF92@2015-ITRF92@2015xETRF2014@2010', tx=0.01393, ty=0.00147, tz=-0.06633, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 445 transform2c: (4027893.6944, 307045.9085, 4919475.1145)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 446     Error2c: (0.013243935, 0.000257919, -0.040203577) max 0.0402, epoched 32.0\n    test 447 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 448     Error2v: (-0.000440726, -0.000576335, -0.00179728) max 0.001797\n\n    test 449 transform5/: name='-ITRF2000@1988xITRF91@2015-ITRF91@2015xETRF2014@2010', tx=0.0007, ty=0.0012, tz=-0.0261, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 450 transform2c: (4027893.6812, 307045.9082, 4919475.1547)\n    test 451     Error2c: (0.000013934, -0.000012081, 0.000026423) max 2.642e-05, epoched 32.0\n    test 452 transform2v: (-0.01351, 0.01686, 0.00854)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 453     Error2v: (-0.000440726, -0.000036335, -0.00053728) max 0.0005373\n\n    test 454 transform6/: name='-ITRF2000@1988xITRF90@2015-ITRF90@2015xETRF2014@2010', tx=0.02293, ty=0.01047, tz=-0.08613, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 455 transform2c: (4027893.7034, 307045.9175, 4919475.0947)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 456     Error2c: (0.022243935, 0.009257919, -0.060003577) max 0.06, epoched 32.0\n    test 457 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 458     Error2v: (-0.000440726, -0.000576335, -0.00179728) max 0.001797\n\n    test 459 transform7/: name='-ITRF2000@1988xITRF89@2015-ITRF89@2015xETRF2014@2010', tx=0.02743, ty=0.03207, tz=-0.12033, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 460 transform2c: (4027893.7079, 307045.9391, 4919475.0605)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 461     Error2c: (0.026743934, 0.030857919, -0.094203576) max 0.0942, epoched 32.0\n    test 462 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 463     Error2v: (-0.000440726, -0.000576335, -0.00179728) max 0.001797\n\n    test 464 transform8/: name='-ITRF2000@1988xITRF88@2015-ITRF88@2015xETRF2014@2010', tx=0.02293, ty=-0.00033, tz=-0.14193, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 465 transform2c: (4027893.7034, 307045.9067, 4919475.0389)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 466     Error2c: (0.022243935, -0.001542081, -0.115803577) max 0.1158, epoched 32.0\n    test 467 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 468     Error2v: (-0.000440725, -0.000576335, -0.00179728) max 0.001797\n\n    test 469 transform0: name='ITRF2020@2015xETRF2020@2020', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=1.29251327e-08, ry=7.80016732e-08, rz=-1.13170058e-07, s=0.0, sx=0.002666, sy=0.016089, sz=-0.023343\n./test/testTrf.py:29: DeprecationWarning: method L{convertRefFrame<pygeodesy.ellipsoidalKarney.LatLon.convertRefFrame>} has been DEPRECATED, use method L{toRefFrame}.\n  x = p.convertRefFrame(RefFrames.ETRF2000)\n    test 470 transform2c: (4027893.9574, 307045.5561, 4919474.9643)\n    test 471     Error2c: (-0.000024276, -0.000021815, -0.000013824) max 2.428e-05, epoched 5.0\n    test 472 transform2v: (0.01350, -0.01676, -0.01001)\n\n    test 473 transform0: name='-ITRF2014@2015xETRF2020@2020', tx=-0.0014, ty=-0.0014, tz=0.0024, s1=1.0, rx=-1.29251327e-08, ry=-7.80016732e-08, rz=1.13170058e-07, s=-0.00042, sx=-0.002666, sy=-0.016089, sz=0.023343\n    test 474 transform2c: (4027893.5358, 307046.0740, 4919475.2748)\n    test 475     Error2c: (0.000032643, -0.000007101, 0.000047684) max 4.768e-05, epoched 5.0\n    test 476 transform2v: (-0.01350, 0.01666, 0.01021)\n\n    test 477 transform0: name='ITRF2014@2015xETRF2014@2020', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=1.27748405e-08, ry=7.980518e-08, rz=-1.15725026e-07, s=0.0, sx=0.002635, sy=0.016461, sz=-0.02387\n    test 478 transform2c: (4027893.9639, 307045.5450, 4919474.9573)\n    test 479     Error2c: (0.000032525, 0.000026405, -0.000024305) max 3.253e-05, epoched 5.0\n    test 480 transform2v: (0.01381, -0.01706, -0.01024)\n\n    test 481 transform0: name='-ITRF2000@2015xETRF2014@2020', tx=0.0017, ty=0.0022, tz=-0.0451, s1=1.0, rx=-1.27748405e-08, ry=-7.980518e-08, rz=1.15725026e-07, s=0.00322, sx=-0.002635, sy=-0.016461, sz=0.02387\n    test 482 transform2c: (4027893.5504, 307046.0772, 4919475.2456)  FAILED, KNOWN, expected (4027893.5505, 307046.0772, 4919475.2456)\n    test 483     Error2c: (-0.00006262, -0.000037673, -0.000034945) max 6.262e-05, epoched 5.0\n    test 484 transform2v: (-0.01371, 0.01716, 0.00834)\n\n    test 485 transform0: name='ITRF2000@2015xETRF2000@2020', tx=0.054, ty=0.051, tz=-0.048, s1=1.0, rx=1.21736715e-08, ry=7.36431982e-08, rz=-1.19031455e-07, s=0.0, sx=0.002511, sy=0.01519, sz=-0.024552\n    test 486 transform2c: (4027894.0033, 307045.5889, 4919474.9047)\n    test 487     Error2c: (0.000034031, -0.000034106, 0.000010915) max 3.411e-05, epoched 5.0\n    test 488 transform2v: (0.01287, -0.01740, -0.00945)\n\n    test 489 transform0*: name='-ITRF2014@2010xITRF89-ITRF89@1989xETRF89@2010@2018.8', tx=-0.03128, ty=-0.0311, tz=0.15984, s1=0.999999991, rx=-1.58921925e-08, ry=-8.23504519e-08, rz=1.00463091e-07, s=-0.009246, sx=-0.003278, sy=-0.016986, sz=0.020722\n    test 490 transform2c: (4160476.4154, 653193.0567, 4774604.9029)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 491     Error2c: (-0.069560351, 0.035713888, 0.122930501) max 0.1229, epoched 29.8\n    test 492 transform2v: (-0.01148, 0.01996, 0.01845)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 493     Error2v: (-0.015479395, 0.016963959, 0.014448874) max 0.01696\n\n    test 494 transform0*: name='-ITRF2014@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 495 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 496     Error2c: (-0.014174475, 0.037834952, 0.023962617) max 0.03783, epoched 3.8\n    test 497 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 498     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 499 transform1*: name='-ITRF2014@2010xITRF2008@2015-ITRF2008@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 500 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 501     Error2c: (-0.014174475, 0.037834952, 0.023962617) max 0.03783, epoched 8.8\n    test 502 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 503     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 504 transform2*: name='-ITRF2014@2010xITRF97@2015-ITRF97@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 505 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 506     Error2c: (-0.014174475, 0.037834952, 0.023962617) max 0.03783, epoched 8.8\n    test 507 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 508     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 509 transform3*: name='-ITRF2014@2010xITRF93@2015-ITRF93@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 510 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 511     Error2c: (-0.014174475, 0.037834952, 0.023962617) max 0.03783, epoched 8.8\n    test 512 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 513     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 514 transform4*: name='-ITRF2014@2010xITRF92@2015-ITRF92@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 515 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 516     Error2c: (-0.014174475, 0.037834952, 0.023962617) max 0.03783, epoched 8.8\n    test 517 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 518     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 519 transform5*: name='-ITRF2014@2010xITRF91@2015-ITRF91@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 520 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 521     Error2c: (-0.014174475, 0.037834952, 0.023962617) max 0.03783, epoched 8.8\n    test 522 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 523     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 524 transform6*: name='-ITRF2014@2010xITRF90@2015-ITRF90@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 525 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 526     Error2c: (-0.014174475, 0.037834952, 0.023962617) max 0.03783, epoched 8.8\n    test 527 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 528     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 529 transform7*: name='-ITRF2014@2010xITRF89@2015-ITRF89@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 530 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 531     Error2c: (-0.014174475, 0.037834952, 0.023962617) max 0.03783, epoched 8.8\n    test 532 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 533     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 534 transform8*: name='-ITRF2014@2010xITRF88@2015-ITRF88@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n./test/testTrf.py:136: DeprecationWarning: method L{convertRefFrame<pygeodesy.ellipsoidalKarney.LatLon.convertRefFrame>} has been DEPRECATED, use method L{toRefFrame}.\n  t = LatLon(0, 0, reframe=RefFrames.ITRF2000).convertRefFrame('ITRF2000')\n    test 535 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 536     Error2c: (-0.014174475, 0.037834952, 0.023962617) max 0.03783, epoched 8.8\n    test 537 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 538     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 539 toTransform: name='-ITRF2014@2010xITRF88@2015-ITRF88@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=1.0, rx=-1.1702e-08, ry=-7.0792e-08, rz=1.1442e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.023602\n    test 540 toTransform: name='-ITRF2014@2010xITRF88@2015-ITRF88@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=1.0, rx=-1.1702e-08, ry=-7.0792e-08, rz=1.1442e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.023602\n\n    test 541 Issue80: 48.77691577°N, 008.92257142°E, +476.05m\n    test 542 Issue80: 48.77692147°N, 008.92257868°E, +476.09m\n    test 543 Issue80: 48°46′36.915134″N, 008°55′21.285094″E, +476.10m  FAILED, KNOWN, expected 48°46′36.915134″N, 008°55′21.285094″E, +476.10\n    test 544 Issue80: 0.804  FAILED, KNOWN, expected 0.01\n    test 545 Issue80: [4160476.944064, 653192.600457, 4774604.455385]\n    test 546 Issue80: [4160476.415504, 653193.057171, 4774604.903316]\n    test 547 Issue80: [4160476.467901, 653193.103647, 4774604.868888]\n    test 548 Issue80: 48°46′36.915133″N, 008°55′21.285094″E, +476.10m\n\n    test 549 Issue80: 48.77692032°N, 008.92257804°E, +476.05m\n    test 550 Issue80: 48.77691971°N, 008.92257856°E, +476.06m\n    test 551 Issue80: 48°46′36.9315″N, 008°55′21.3089″E, +476.10m  FAILED, KNOWN, expected 48°46′36.9131″N, 008°55′21.28095″E, +476.05m\n    test 552 Issue80: 0.804  FAILED, KNOWN, expected 0.01\n    test 553 Issue80: [4160476.492633, 653193.021888, 4774604.78885]\n    test 554 Issue80: [4160476.54503, 653193.068365, 4774604.754422]\n    test 555 Issue80: [4160476.016469, 653193.525079, 4774605.202353]\n    test 556 Issue80: 48°46′36.9315″N, 008°55′21.3089″E, +476.10m\n\n    test 557 ITRF96@1997xNAD83: TRFXform(epoch=1997.0, name='ITRF96@1997xNAD83')\n    test 558 ITRF96@1997xNAD83: name='ITRF96@1997xNAD83', tx=0.991, ty=-0.19072, tz=-0.5129, s1=1.0, rx=1.2503e-07, ry=4.6785e-08, rz=5.6529e-08, s=0.0, sx=0.02579, sy=0.00965, sz=0.01166\n    test 559 ITRF96@1997xNAD83: name='ITRF96@1997xNAD83@2007', tx=0.991, ty=-0.19072, tz=-0.5129, s1=1.0, rx=1.2761e-07, ry=1.0797e-08, rz=5.4997e-08, s=0.0, sx=0.026322, sy=0.002227, sz=0.011344\n    test 560 ITRF96@1997xNAD83: rx=-2.5792e-10, ry=3.5988e-09, rz=1.532e-10\n\n    testTrf(pygeodesy.ellipsoidalKarney, 25.05.27)\n    test 561 convertRefFrame: 51.47787826°N, 000.00147125°W, -0.00m  FAILED, KNOWN, expected 51.47787826°N, 000.00147125°W\n    test 562 copy(<class 'type'>): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 563 RefFrame.copy(): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 564 toLatLon: 50.7978°N, 004.3592°E, +148.96m\n    test 565 convertRefFrame: [3980574.395, -102.214, 4966829.941]\n    test 566 Nil: True\n    test 567 copy(<class 'type'>): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 568 RefFrame.copy(): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 569 Nil: True\n    test 570 reframe: True\n    test 571 Roundtrip: True\n    test 572 reframe: True\n    test 573 copy(<class 'type'>): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 574 RefFrame.copy(): (<class 'pygeodesy.trf.RefFrame'>, True)\n\n    test 575 Geodetic: 23°40′12.44582″S, 133°53′07.84795″E, +603.34m\n    test 576 Cartesian: [-4052051.7614, 4212836.1945, -2545106.0147]\n    test 577 Geodetic: 23°40′12.44582″S, 133°53′07.84795″E, +603.34m\n    test 578 Cartesian: [-4052051.7614, 4212836.1945, -2545106.0147]\n    test 579 Roundtrip: 23°40′12.41482″S, 133°53′07.86712″E, +603.26m\n    test 580 GNSStrans: [3370658.18892, 711877.42369, 5349787.1243]\n    test 581 Cartesian: [-734972.563, 4893188.492, 4011982.811]\n\n    test 582 EUREF EX1: [4027894.0444, 307045.6209, 4919474.8613]\n    test 583 transform0: ITRF2005@2015xETRF2020-ITRF91@2015xETRF2020@2007 max 9.3132e-10, epoched 8.0\n    test 584 transform1: ITRF2005@2015xETRF2014-ITRF91@2015xETRF2014@2007 max 0.048666, epoched 8.0\n    test 585 transform2: ITRF2005@2015xETRF2000-ITRF91@2015xETRF2000@2007 max 0.097331, epoched 8.0\n    test 586 transform3: ITRF2005@2000xITRF2000+ITRF2000@1988xITRF91@2000@2007 max 0.146, epoched 19.0\n    test 587 transform4: -ITRF2020@2015xITRF2005+ITRF2020@2015xITRF91@2007 max 0.19466, epoched 8.0\n    test 588 transform5: -ITRF2014@2010xITRF2005+ITRF2014@2010xITRF91@2007 max 0.24333, epoched 3.0\n    test 589 transform6: -ITRF2008@2005xITRF2005+ITRF2008@2000xITRF91@2005@2007 max 0.29199, epoched 7.0\n    test 590 transform7: ITRF2000@1988xITRF91+ITRF2005@2000xITRF2000@1988@2007 max 0.34066, epoched 31.0\n    test 591 transform8: ITRF2014@2010xITRF91-ITRF2014@2020xGDA2020@2010+ITRF2005@2020xGDA2020@2010@2007 max 0.98111, epoched 23.0\n    test 592 transform9: ITRF2008@2000xITRF91-ITRF2008@1994xGDA94@2000+ITRF2005@1994xGDA94@2000@2007 max 0.35972, epoched 19.0\n    test 593 transform10: ITRF2008@2000xITRF91-ITRF2008@1997xNAD83@2000+ITRF2005@1997xNAD83@2000@2007 max 0.40805, epoched 13.0\n    test 594 EUREF EX2: [4027894.0060, 307045.6000, 4919474.9100]\n    test 595 transform0: ITRF91@2015xETRF2020-ITRF2005@2015xETRF2020@2007 max 0.048666, epoched 8.0\n    test 596 transform1: ITRF91@2015xETRF2014-ITRF2005@2015xETRF2014@2007 max 1.8626e-09, epoched 8.0\n    test 597 transform2: ITRF91@2015xETRF2000-ITRF2005@2015xETRF2000@2007 max 0.048666, epoched 8.0\n    test 598 transform3: -ITRF2005@2000xITRF2000-ITRF2000@1988xITRF91@2000@2007 max 0.097331, epoched 19.0\n    test 599 EUREF EX4: [4027894.3559, 307045.2508, 4919474.6447]\n    test 600 transform0: -ITRF2000@2015xETRF2000@2012 max 4.5169e-08, epoched 3.0\n    test 601 transform1: -ITRF2000@1997xITRF97@2015-ITRF97@2015xETRF2000@2012 max 0.35826, epoched 21.0\n    test 602 transform2: -ITRF2000@1997xITRF96@2015-ITRF96@2015xETRF2000@2012 max 0.7048, epoched 21.0\n    test 603 transform3: -ITRF2000@1988xITRF93@2015-ITRF93@2015xETRF2000@2012 max 1.054, epoched 30.0\n    test 604 transform4: -ITRF2000@1988xITRF92@2015-ITRF92@2015xETRF2000@2012 max 1.4023, epoched 30.0\n    test 605 transform5: -ITRF2000@1988xITRF91@2015-ITRF91@2015xETRF2000@2012 max 1.7514, epoched 30.0\n    test 606 transform6: -ITRF2000@1988xITRF90@2015-ITRF90@2015xETRF2000@2012 max 2.1088, epoched 30.0\n    test 607 transform7: -ITRF2000@1988xITRF89@2015-ITRF89@2015xETRF2000@2012 max 2.4877, epoched 30.0\n    test 608 transform8: -ITRF2000@1988xITRF88@2015-ITRF88@2015xETRF2000@2012 max 2.8343, epoched 30.0\n    test 609 EUREF EX5: [4027893.6458, 307045.9470, 4919475.1937]  FAILED, KNOWN, expected [4027894.3662, 307045.2530, 4919474.6263]\n    test 610 transform0: ITRF2014@2015xETRF2000@2012 max 4.5169e-08, epoched 3.0\n    test 611 transform1: ITRF2014@2010xITRF2008@2015+ITRF2008@2015xETRF2000@2012 max 0.36023, epoched 8.0\n    test 612 transform2: ITRF2014@2010xITRF97@2015+ITRF97@2015xETRF2000@2012 max 0.72047, epoched 8.0\n    test 613 transform3: ITRF2014@2010xITRF93@2015+ITRF93@2015xETRF2000@2012 max 1.0807, epoched 8.0\n    test 614 transform4: ITRF2014@2010xITRF92@2015+ITRF92@2015xETRF2000@2012 max 1.4409, epoched 8.0\n    test 615 transform5: ITRF2014@2010xITRF91@2015+ITRF91@2015xETRF2000@2012 max 1.8012, epoched 8.0\n    test 616 transform6: ITRF2014@2010xITRF90@2015+ITRF90@2015xETRF2000@2012 max 2.1614, epoched 8.0\n    test 617 transform7: ITRF2014@2010xITRF89@2015+ITRF89@2015xETRF2000@2012 max 2.5216, epoched 8.0\n    test 618 transform8: ITRF2014@2010xITRF88@2015+ITRF88@2015xETRF2000@2012 max 2.8819, epoched 8.0\n\n    test 619 Case 1A: [4027893.9619, 307045.5481, 4919474.9553]\n    test 620 Case 1B: [4027894.0054, 307045.5938, 4919474.9083]\n    test 621 Case 2A: [4027893.9639, 307045.545, 4919474.9573]\n    test 622 Case 2B: [4027894.0033, 307045.5889, 4919474.9041]\n\n    test 623 TypeError: type(reframe) ('ITRF2000'): not a RefFrame\n    test 624 TRFError: epoch (1899): below 1900.0 limit\n    test 625 TypeError: type(reframe2) ('ITRF2000'): not a RefFrame\n    test 626 TRFError: no conversion: LatLon(00°00′00.0″N, 000°00′00.0″E).reframe MISSING\n    test 627 TypeError: type(reframe2) ('ITRF2000'): not a RefFrame\n    test 628 TypeError: type(reframe) ('ITRF2000'): not a RefFrame\n\n    test 629 ETRF89@1989: [4160476.944000, 653192.600000, 4774604.455000]\n    test 630 ITRF2014@2018.8: [4160476.415, 653193.057, 4774604.903]  FAILED, KNOWN, expected [4160476.485, 653193.021, 4774604.78]\n    test 631 TransformXform: -ITRF2014@2010xITRF89-ITRF89@1989xETRF89@2010@2018.8\n    test 632 Delta (m): [-0.06956, 0.035714, 0.122931]  FAILED, KNOWN, expected [0.01, 0.01, 0.01]\n    test 633 Error (m): 0.145692  FAILED, KNOWN, expected 0.01\n    test 634 Epoch range: 29.800  FAILED, KNOWN, expected 14.0\n    test 635 ETRF89@1989: [4160476.467836, 653193.103190, 4774604.868503]  FAILED, KNOWN, expected [4160476.944000, 653192.600000, 4774604.455000]\n    test 636 TransformXform: ITRF2014@2010xITRF89+ITRF89@1989xETRF89@2010@1989\n\n    test 637 inverse: -ITRF2014@2010xITRF89-ITRF89@1989xETRF89@2010@1989\n    test 638 inverse: ITRF2014@2010xITRF89+ITRF89@1989xETRF89@2010@1989\n    test 639 inverse: name='ITRF2014@2010xITRF89+ITRF89@1989xETRF89@2010@1989', tx=0.0283, ty=0.046, tz=-0.0615, s1=1.0, rx=0.0, ry=0.0, rz=-7.757e-10, s=0.00567, sx=0.0, sy=0.0, sz=-0.00016\n\n    test 640 ETRF2000@2000: [4160476.952000, 653192.582000, 4774604.441000]\n    test 641 ITRF2014@2018.8: [4160476.471, 653193.059, 4774604.804]  FAILED, KNOWN, expected [4160476.485, 653193.021, 4774604.78]\n    test 642 TransformXform: -ITRF2014@2015xETRF2000@2018.8\n    test 643 Delta (m): [-0.014174, 0.037835, 0.023963]  FAILED, KNOWN, expected [0.01, 0.01, 0.01]\n    test 644 Error (m): 0.046975  FAILED, KNOWN, expected 0.01\n    test 645 Epoch range: 18.800  FAILED, KNOWN, expected 14.0\n    test 646 ETRF2000@2000: [4160476.681125, 653192.914350, 4774604.647835]  FAILED, KNOWN, expected [4160476.952000, 653192.582000, 4774604.441000]\n    test 647 TransformXform: ITRF2014@2015xETRF2000@2000\n\n    test 648 inverse: -ITRF2014@2015xETRF2000@2000\n    test 649 inverse: ITRF2014@2015xETRF2000@2000\n    test 650 inverse: name='ITRF2014@2015xETRF2000@2000', tx=0.0537, ty=0.0512, tz=-0.0551, s1=1.0, rx=4.3197e-09, ry=2.6131e-08, rz=-4.2237e-08, s=0.00102, sx=0.000891, sy=0.00539, sz=-0.008712\n\n    test 651 ITRF2008@2005: [4160476.674000, 653192.806000, 4774604.648000]\n    test 652 ITRF2014@2018.8: [4160476.671, 653192.804, 4774604.645]  FAILED, KNOWN, expected [4160476.485, 653193.021, 4774604.78]\n    test 653 TransformXform: -ITRF2014@2010xITRF2008@2018.8\n    test 654 Delta (m): [0.186385, -0.217059, -0.134685]  FAILED, KNOWN, expected [0.01, 0.01, 0.01]\n    test 655 Error (m): 0.316218  FAILED, KNOWN, expected 0.01\n    test 656 Epoch range: 13.800  FAILED, KNOWN, expected 14.0\n    test 657 ITRF2008@2005: [4160476.672278, 653192.805730, 4774604.647403]  FAILED, KNOWN, expected [4160476.674000, 653192.806000, 4774604.648000]\n    test 658 TransformXform: ITRF2014@2010xITRF2008@2005\n\n    test 659 inverse: -ITRF2014@2010xITRF2008@2005\n    test 660 inverse: ITRF2014@2010xITRF2008@2005\n    test 661 inverse: name='ITRF2014@2010xITRF2008@2005', tx=0.0016, ty=0.0019, tz=0.0029, s1=1.0, rx=0.0, ry=0.0, rz=0.0, s=-0.00017, sx=0.0, sy=0.0, sz=0.0\n\n    test 662 toRefFrame1: ITRF2020@2015 2024.31 [0.0031474, 0.00210534, -0.00125667]\n    test 663 toRefFrame2: ITRF2014@2010 2024.32 [0.0031474, 0.00210634, -0.00125867]\n    test 664 transform0: -ITRF2020@2015xITRF2014@2010\n    test 665 transform0X: TRFXform(epoch=2010.0, name='-ITRF2020@2015xITRF2014@2010')\n    test 666 toRefFrame3: ITRF2020@2015 2010 [0.0031474, 0.00067434, 0.00160533]\n    test 667 transform2x: (4160476.488147, 653193.021674, 4774604.781605)\n    test 668 transform2v: (0.000, 0.000, 0.000)  FAILED, KNOWN, expected (0.004, 0.003, 0.004)\n\n    test 669 transform0: name='ITRF2020@2015xETRF2020@2010', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=8.75573508e-09, ry=5.28398431e-08, rz=-7.66635874e-08, s=0.0, sx=0.001806, sy=0.010899, sz=-0.015813\n    test 670 transform2c: (4027893.9585, 307045.5550, 4919474.9620)  FAILED, KNOWN, expected (4027893.9585, 307045.5550, 4919474.9619)\n    test 671     Error2c: (-0.000016463, 0.0000336, 0.000055143) max 5.514e-05, epoched 5.0\n    test 672 transform2v: (-0.00011, 0.00010, 0.00023)  FAILED, KNOWN, expected (0.00011, 0.00011, 0.00024)\n    test 673     Error2v: (-0.000220786, -0.000005544, -0.000006899) max 0.0002208\n    test 674 transform0v: (0.00009, 0.00052, -0.00075)  FAILED, KNOWN, expected (0.00011, 0.00011, 0.00024)\n    test 675     Error0v: (-0.000024, 0.000409, -0.000993) max 0.000993\n\n    test 676 transform0: name='-ITRF2014@2015xETRF2020@2010', tx=-0.0014, ty=-0.0004, tz=0.0004, s1=1.0, rx=-8.75573508e-09, ry=-5.28398431e-08, rz=7.66635874e-08, s=-0.00042, sx=-0.001806, sy=-0.010899, sz=0.015813\n    test 677 transform2c: (4027893.6719, 307045.9063, 4919475.1704)  FAILED, KNOWN, expected (4027893.6719, 307045.9064, 4919475.1704)\n    test 678     Error2c: (0.000024786, -0.000062539, -0.000021304) max 6.254e-05, epoched 5.0\n    test 679 transform2v: (-0.01339, 0.01677, 0.01045)  FAILED, KNOWN, expected (-0.01361, 0.01676, 0.01044)\n    test 680     Error2v: (0.000220784, 0.000005543, 0.000006898) max 0.0002208\n    test 681 transform0v: (-0.00009, -0.00052, 0.00075)  FAILED, KNOWN, expected (-0.01361, 0.01676, 0.01044)\n    test 682     Error0v: (0.013524, -0.017279, -0.009687) max 0.01728\n\n    test 683 transform0: name='ITRF2014@2015xETRF2014@2010', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=8.65392421e-09, ry=5.40615736e-08, rz=-7.83943722e-08, s=0.0, sx=0.001785, sy=0.011151, sz=-0.01617\n    test 684 transform2c: (4027893.9619, 307045.5481, 4919474.9553)  FAILED, KNOWN, expected (4027893.9620, 307045.5480, 4919474.9553)\n    test 685     Error2c: (-0.00007476, 0.000063039, 0.000002882) max 7.476e-05, epoched 5.0\n    test 686 transform2v: (0.00020, -0.00030, 0.00020)\n    test 687     Error2v: (0.000000724, -0.000003666, -0.000002721) max 3.666e-06\n    test 688 transform0v: (0.00009, 0.00053, -0.00077)  FAILED, KNOWN, expected (0.00020, -0.00030, 0.00020)\n    test 689     Error0v: (-0.000115, 0.000831, -0.00097) max 0.00097\n\n    test 690 transform0: name='-ITRF2000@2015xETRF2014@2010', tx=0.0007, ty=0.0012, tz=-0.0261, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 691 transform2c: (4027893.6812, 307045.9082, 4919475.1547)\n    test 692     Error2c: (0.000013934, -0.000012081, 0.000026423) max 2.642e-05, epoched 5.0\n    test 693 transform2v: (-0.01351, 0.01686, 0.00854)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 694     Error2v: (-0.000440726, -0.000036335, -0.00053728) max 0.0005373\n    test 695 transform0v: (-0.00008, -0.00053, 0.00077)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 696     Error0v: (0.012985, -0.017431, -0.00831) max 0.01743\n\n    test 697 transform0: name='ITRF2000@2015xETRF2000@2010', tx=0.054, ty=0.051, tz=-0.048, s1=1.0, rx=8.24668072e-09, ry=4.98873278e-08, rz=-8.06342114e-08, s=0.0, sx=0.001701, sy=0.01029, sz=-0.016632\n    test 698 transform2c: (4027894.0054, 307045.5938, 4919474.9083)  FAILED, KNOWN, expected (4027894.0053, 307045.5939, 4919474.9083)\n    test 699     Error2c: (0.000077874, -0.000055372, -0.000008743) max 7.787e-05, epoched 5.0\n    test 700 transform2v: (-0.00020, -0.00050, -0.00037)  FAILED, KNOWN, expected (-0.00020, -0.00050, -0.00036)\n    test 701     Error2v: (-0.000004389, 0.000002124, -0.000008036) max 8.036e-06\n    test 702 transform0v: (0.00008, 0.00049, -0.00079)  FAILED, KNOWN, expected (-0.00020, -0.00050, -0.00036)\n    test 703     Error0v: (0.000281, 0.00099, -0.000432) max 0.00099\n\n    test 704 transform0/: name='-ITRF2000@2015xETRF2014@2010', tx=0.0007, ty=0.0012, tz=-0.0261, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 705 transform2c: (4027893.6812, 307045.9082, 4919475.1547)\n    test 706     Error2c: (0.000013934, -0.000012081, 0.000026423) max 2.642e-05, epoched 5.0\n    test 707 transform2v: (-0.01351, 0.01686, 0.00854)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n./test/testTrf.py:29: DeprecationWarning: method L{convertRefFrame<pygeodesy.ellipsoidalExact.LatLon.convertRefFrame>} has been DEPRECATED, use method L{toRefFrame}.\n  x = p.convertRefFrame(RefFrames.ETRF2000)\n    test 708     Error2v: (-0.000440726, -0.000036335, -0.00053728) max 0.0005373\n\n    test 709 transform1/: name='-ITRF2000@1997xITRF97@2015-ITRF97@2015xETRF2014@2010', tx=0.00673, ty=-0.00033, tz=-0.05913, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=8.09154034e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01669\n    test 710 transform2c: (4027893.6865, 307045.9168, 4919475.1217)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 711     Error2c: (0.005269863, 0.008612365, -0.033003577) max 0.033, epoched 23.0\n    test 712 transform2v: (-0.01357, 0.01710, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 713     Error2v: (-0.00050027, 0.000204776, -0.00179728) max 0.001797\n\n    test 714 transform2/: name='-ITRF2000@1997xITRF96@2015-ITRF96@2015xETRF2014@2010', tx=0.00673, ty=-0.00033, tz=-0.05913, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 715 transform2c: (4027893.6872, 307045.9067, 4919475.1217)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 716     Error2c: (0.006043935, -0.001542081, -0.033003577) max 0.033, epoched 23.0\n    test 717 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 718     Error2v: (-0.000440726, -0.000576335, -0.00179728) max 0.001797\n\n    test 719 transform3/: name='-ITRF2000@1988xITRF93@2015-ITRF93@2015xETRF2014@2010', tx=0.0007, ty=0.0012, tz=-0.0261, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 720 transform2c: (4027893.6812, 307045.9082, 4919475.1547)\n    test 721     Error2c: (0.000013934, -0.000012081, 0.000026423) max 2.642e-05, epoched 32.0\n    test 722 transform2v: (-0.01351, 0.01686, 0.00854)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 723     Error2v: (-0.000440726, -0.000036335, -0.00053728) max 0.0005373\n\n    test 724 transform4/: name='-ITRF2000@1988xITRF92@2015-ITRF92@2015xETRF2014@2010', tx=0.01393, ty=0.00147, tz=-0.06633, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 725 transform2c: (4027893.6944, 307045.9085, 4919475.1145)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 726     Error2c: (0.013243935, 0.000257919, -0.040203577) max 0.0402, epoched 32.0\n    test 727 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 728     Error2v: (-0.000440726, -0.000576335, -0.00179728) max 0.001797\n\n    test 729 transform5/: name='-ITRF2000@1988xITRF91@2015-ITRF91@2015xETRF2014@2010', tx=0.0007, ty=0.0012, tz=-0.0261, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 730 transform2c: (4027893.6812, 307045.9082, 4919475.1547)\n    test 731     Error2c: (0.000013934, -0.000012081, 0.000026423) max 2.642e-05, epoched 32.0\n    test 732 transform2v: (-0.01351, 0.01686, 0.00854)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 733     Error2v: (-0.000440726, -0.000036335, -0.00053728) max 0.0005373\n\n    test 734 transform6/: name='-ITRF2000@1988xITRF90@2015-ITRF90@2015xETRF2014@2010', tx=0.02293, ty=0.01047, tz=-0.08613, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 735 transform2c: (4027893.7034, 307045.9175, 4919475.0947)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 736     Error2c: (0.022243935, 0.009257919, -0.060003577) max 0.06, epoched 32.0\n    test 737 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 738     Error2v: (-0.000440726, -0.000576335, -0.00179728) max 0.001797\n\n    test 739 transform7/: name='-ITRF2000@1988xITRF89@2015-ITRF89@2015xETRF2014@2010', tx=0.02743, ty=0.03207, tz=-0.12033, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 740 transform2c: (4027893.7079, 307045.9391, 4919475.0605)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 741     Error2c: (0.026743934, 0.030857919, -0.094203576) max 0.0942, epoched 32.0\n    test 742 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 743     Error2v: (-0.000440726, -0.000576335, -0.00179728) max 0.001797\n\n    test 744 transform8/: name='-ITRF2000@1988xITRF88@2015-ITRF88@2015xETRF2014@2010', tx=0.02293, ty=-0.00033, tz=-0.14193, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 745 transform2c: (4027893.7034, 307045.9067, 4919475.0389)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 746     Error2c: (0.022243935, -0.001542081, -0.115803577) max 0.1158, epoched 32.0\n    test 747 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 748     Error2v: (-0.000440725, -0.000576335, -0.00179728) max 0.001797\n\n    test 749 transform0: name='ITRF2020@2015xETRF2020@2020', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=1.29251327e-08, ry=7.80016732e-08, rz=-1.13170058e-07, s=0.0, sx=0.002666, sy=0.016089, sz=-0.023343\n    test 750 transform2c: (4027893.9574, 307045.5561, 4919474.9643)\n    test 751     Error2c: (-0.000024276, -0.000021815, -0.000013824) max 2.428e-05, epoched 5.0\n    test 752 transform2v: (0.01350, -0.01676, -0.01001)\n\n    test 753 transform0: name='-ITRF2014@2015xETRF2020@2020', tx=-0.0014, ty=-0.0014, tz=0.0024, s1=1.0, rx=-1.29251327e-08, ry=-7.80016732e-08, rz=1.13170058e-07, s=-0.00042, sx=-0.002666, sy=-0.016089, sz=0.023343\n    test 754 transform2c: (4027893.5358, 307046.0740, 4919475.2748)\n    test 755     Error2c: (0.000032643, -0.000007101, 0.000047684) max 4.768e-05, epoched 5.0\n    test 756 transform2v: (-0.01350, 0.01666, 0.01021)\n\n    test 757 transform0: name='ITRF2014@2015xETRF2014@2020', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=1.27748405e-08, ry=7.980518e-08, rz=-1.15725026e-07, s=0.0, sx=0.002635, sy=0.016461, sz=-0.02387\n    test 758 transform2c: (4027893.9639, 307045.5450, 4919474.9573)\n    test 759     Error2c: (0.000032525, 0.000026405, -0.000024305) max 3.253e-05, epoched 5.0\n    test 760 transform2v: (0.01381, -0.01706, -0.01024)\n\n    test 761 transform0: name='-ITRF2000@2015xETRF2014@2020', tx=0.0017, ty=0.0022, tz=-0.0451, s1=1.0, rx=-1.27748405e-08, ry=-7.980518e-08, rz=1.15725026e-07, s=0.00322, sx=-0.002635, sy=-0.016461, sz=0.02387\n    test 762 transform2c: (4027893.5504, 307046.0772, 4919475.2456)  FAILED, KNOWN, expected (4027893.5505, 307046.0772, 4919475.2456)\n    test 763     Error2c: (-0.00006262, -0.000037673, -0.000034945) max 6.262e-05, epoched 5.0\n    test 764 transform2v: (-0.01371, 0.01716, 0.00834)\n\n    test 765 transform0: name='ITRF2000@2015xETRF2000@2020', tx=0.054, ty=0.051, tz=-0.048, s1=1.0, rx=1.21736715e-08, ry=7.36431982e-08, rz=-1.19031455e-07, s=0.0, sx=0.002511, sy=0.01519, sz=-0.024552\n    test 766 transform2c: (4027894.0033, 307045.5889, 4919474.9047)\n    test 767     Error2c: (0.000034031, -0.000034106, 0.000010915) max 3.411e-05, epoched 5.0\n    test 768 transform2v: (0.01287, -0.01740, -0.00945)\n\n    test 769 transform0*: name='-ITRF2014@2010xITRF89-ITRF89@1989xETRF89@2010@2018.8', tx=-0.03128, ty=-0.0311, tz=0.15984, s1=0.999999991, rx=-1.58921925e-08, ry=-8.23504519e-08, rz=1.00463091e-07, s=-0.009246, sx=-0.003278, sy=-0.016986, sz=0.020722\n    test 770 transform2c: (4160476.4154, 653193.0567, 4774604.9029)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 771     Error2c: (-0.069560351, 0.035713888, 0.122930501) max 0.1229, epoched 29.8\n    test 772 transform2v: (-0.01148, 0.01996, 0.01845)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 773     Error2v: (-0.015479395, 0.016963959, 0.014448874) max 0.01696\n\n    test 774 transform0*: name='-ITRF2014@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n./test/testTrf.py:136: DeprecationWarning: method L{convertRefFrame<pygeodesy.ellipsoidalExact.LatLon.convertRefFrame>} has been DEPRECATED, use method L{toRefFrame}.\n  t = LatLon(0, 0, reframe=RefFrames.ITRF2000).convertRefFrame('ITRF2000')\n    test 775 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 776     Error2c: (-0.014174475, 0.037834952, 0.023962617) max 0.03783, epoched 3.8\n    test 777 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 778     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 779 transform1*: name='-ITRF2014@2010xITRF2008@2015-ITRF2008@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 780 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 781     Error2c: (-0.014174475, 0.037834952, 0.023962617) max 0.03783, epoched 8.8\n    test 782 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 783     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 784 transform2*: name='-ITRF2014@2010xITRF97@2015-ITRF97@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 785 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 786     Error2c: (-0.014174475, 0.037834952, 0.023962617) max 0.03783, epoched 8.8\n    test 787 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 788     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 789 transform3*: name='-ITRF2014@2010xITRF93@2015-ITRF93@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 790 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 791     Error2c: (-0.014174475, 0.037834952, 0.023962617) max 0.03783, epoched 8.8\n    test 792 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 793     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 794 transform4*: name='-ITRF2014@2010xITRF92@2015-ITRF92@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 795 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 796     Error2c: (-0.014174475, 0.037834952, 0.023962617) max 0.03783, epoched 8.8\n    test 797 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 798     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 799 transform5*: name='-ITRF2014@2010xITRF91@2015-ITRF91@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 800 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 801     Error2c: (-0.014174475, 0.037834952, 0.023962617) max 0.03783, epoched 8.8\n    test 802 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 803     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 804 transform6*: name='-ITRF2014@2010xITRF90@2015-ITRF90@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 805 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 806     Error2c: (-0.014174475, 0.037834952, 0.023962617) max 0.03783, epoched 8.8\n    test 807 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 808     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 809 transform7*: name='-ITRF2014@2010xITRF89@2015-ITRF89@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 810 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 811     Error2c: (-0.014174475, 0.037834952, 0.023962617) max 0.03783, epoched 8.8\n    test 812 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 813     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 814 transform8*: name='-ITRF2014@2010xITRF88@2015-ITRF88@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 815 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 816     Error2c: (-0.014174475, 0.037834952, 0.023962617) max 0.03783, epoched 8.8\n    test 817 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 818     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 819 toTransform: name='-ITRF2014@2010xITRF88@2015-ITRF88@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=1.0, rx=-1.1702e-08, ry=-7.0792e-08, rz=1.1442e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.023602\n    test 820 toTransform: name='-ITRF2014@2010xITRF88@2015-ITRF88@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=1.0, rx=-1.1702e-08, ry=-7.0792e-08, rz=1.1442e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.023602\n\n    test 821 Issue80: 48.77691577°N, 008.92257142°E, +476.05m\n    test 822 Issue80: 48.77692147°N, 008.92257868°E, +476.09m\n    test 823 Issue80: 48°46′36.915133″N, 008°55′21.285094″E, +476.10m  FAILED, KNOWN, expected 48°46′36.915134″N, 008°55′21.285094″E, +476.10\n    test 824 Issue80: 0.804  FAILED, KNOWN, expected 0.01\n    test 825 Issue80: [4160476.944064, 653192.600457, 4774604.455385]\n    test 826 Issue80: [4160476.415504, 653193.057171, 4774604.903316]\n    test 827 Issue80: [4160476.467901, 653193.103647, 4774604.868888]\n    test 828 Issue80: 48°46′36.915133″N, 008°55′21.285094″E, +476.10m\n\n    test 829 Issue80: 48.77692032°N, 008.92257804°E, +476.05m\n    test 830 Issue80: 48.77691971°N, 008.92257856°E, +476.06m\n    test 831 Issue80: 48°46′36.9315″N, 008°55′21.3089″E, +476.10m  FAILED, KNOWN, expected 48°46′36.9131″N, 008°55′21.28095″E, +476.05m\n    test 832 Issue80: 0.804  FAILED, KNOWN, expected 0.01\n    test 833 Issue80: [4160476.492633, 653193.021888, 4774604.78885]\n    test 834 Issue80: [4160476.54503, 653193.068365, 4774604.754422]\n    test 835 Issue80: [4160476.016469, 653193.525079, 4774605.202353]\n    test 836 Issue80: 48°46′36.9315″N, 008°55′21.3089″E, +476.10m\n\n    test 837 ITRF96@1997xNAD83: TRFXform(epoch=1997.0, name='ITRF96@1997xNAD83')\n    test 838 ITRF96@1997xNAD83: name='ITRF96@1997xNAD83', tx=0.991, ty=-0.19072, tz=-0.5129, s1=1.0, rx=1.2503e-07, ry=4.6785e-08, rz=5.6529e-08, s=0.0, sx=0.02579, sy=0.00965, sz=0.01166\n    test 839 ITRF96@1997xNAD83: name='ITRF96@1997xNAD83@2007', tx=0.991, ty=-0.19072, tz=-0.5129, s1=1.0, rx=1.2761e-07, ry=1.0797e-08, rz=5.4997e-08, s=0.0, sx=0.026322, sy=0.002227, sz=0.011344\n    test 840 ITRF96@1997xNAD83: rx=-2.5792e-10, ry=3.5988e-09, rz=1.532e-10\n\n    testTrf(pygeodesy.ellipsoidalExact, 25.08.28)\n    test 841 convertRefFrame: 51.47787826°N, 000.00147125°W, -0.00m  FAILED, KNOWN, expected 51.47787826°N, 000.00147125°W\n    test 842 copy(<class 'type'>): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 843 RefFrame.copy(): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 844 toLatLon: 50.7978°N, 004.3592°E, +148.96m\n    test 845 convertRefFrame: [3980574.395, -102.214, 4966829.941]\n    test 846 Nil: True\n    test 847 copy(<class 'type'>): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 848 RefFrame.copy(): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 849 Nil: True\n    test 850 reframe: True\n    test 851 Roundtrip: True\n    test 852 reframe: True\n    test 853 copy(<class 'type'>): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 854 RefFrame.copy(): (<class 'pygeodesy.trf.RefFrame'>, True)\n\n    test 855 Geodetic: 23°40′12.44582″S, 133°53′07.84795″E, +603.34m\n    test 856 Cartesian: [-4052051.7614, 4212836.1945, -2545106.0147]\n    test 857 Geodetic: 23°40′12.44582″S, 133°53′07.84795″E, +603.34m\n    test 858 Cartesian: [-4052051.7614, 4212836.1945, -2545106.0147]\n    test 859 Roundtrip: 23°40′12.41482″S, 133°53′07.86712″E, +603.26m\n    test 860 GNSStrans: [3370658.18892, 711877.42369, 5349787.1243]\n    test 861 Cartesian: [-734972.563, 4893188.492, 4011982.811]\n\n    test 862 EUREF EX1: [4027894.0444, 307045.6209, 4919474.8613]\n    test 863 transform0: ITRF2005@2015xETRF2020-ITRF91@2015xETRF2020@2007 max 9.3132e-10, epoched 8.0\n    test 864 transform1: ITRF2005@2015xETRF2014-ITRF91@2015xETRF2014@2007 max 0.048666, epoched 8.0\n    test 865 transform2: ITRF2005@2015xETRF2000-ITRF91@2015xETRF2000@2007 max 0.097331, epoched 8.0\n    test 866 transform3: ITRF2005@2000xITRF2000+ITRF2000@1988xITRF91@2000@2007 max 0.146, epoched 19.0\n    test 867 transform4: -ITRF2020@2015xITRF2005+ITRF2020@2015xITRF91@2007 max 0.19466, epoched 8.0\n    test 868 transform5: -ITRF2014@2010xITRF2005+ITRF2014@2010xITRF91@2007 max 0.24333, epoched 3.0\n    test 869 transform6: -ITRF2008@2005xITRF2005+ITRF2008@2000xITRF91@2005@2007 max 0.29199, epoched 7.0\n    test 870 transform7: ITRF2000@1988xITRF91+ITRF2005@2000xITRF2000@1988@2007 max 0.34066, epoched 31.0\n    test 871 transform8: ITRF2014@2010xITRF91-ITRF2014@2020xGDA2020@2010+ITRF2005@2020xGDA2020@2010@2007 max 0.98111, epoched 23.0\n    test 872 transform9: ITRF2008@2000xITRF91-ITRF2008@1994xGDA94@2000+ITRF2005@1994xGDA94@2000@2007 max 0.35972, epoched 19.0\n    test 873 transform10: ITRF2008@2000xITRF91-ITRF2008@1997xNAD83@2000+ITRF2005@1997xNAD83@2000@2007 max 0.40805, epoched 13.0\n    test 874 EUREF EX2: [4027894.0060, 307045.6000, 4919474.9100]\n    test 875 transform0: ITRF91@2015xETRF2020-ITRF2005@2015xETRF2020@2007 max 0.048666, epoched 8.0\n    test 876 transform1: ITRF91@2015xETRF2014-ITRF2005@2015xETRF2014@2007 max 1.8626e-09, epoched 8.0\n    test 877 transform2: ITRF91@2015xETRF2000-ITRF2005@2015xETRF2000@2007 max 0.048666, epoched 8.0\n    test 878 transform3: -ITRF2005@2000xITRF2000-ITRF2000@1988xITRF91@2000@2007 max 0.097331, epoched 19.0\n    test 879 EUREF EX4: [4027894.3559, 307045.2508, 4919474.6447]\n    test 880 transform0: -ITRF2000@2015xETRF2000@2012 max 4.5169e-08, epoched 3.0\n    test 881 transform1: -ITRF2000@1997xITRF97@2015-ITRF97@2015xETRF2000@2012 max 0.35826, epoched 21.0\n    test 882 transform2: -ITRF2000@1997xITRF96@2015-ITRF96@2015xETRF2000@2012 max 0.7048, epoched 21.0\n    test 883 transform3: -ITRF2000@1988xITRF93@2015-ITRF93@2015xETRF2000@2012 max 1.054, epoched 30.0\n    test 884 transform4: -ITRF2000@1988xITRF92@2015-ITRF92@2015xETRF2000@2012 max 1.4023, epoched 30.0\n    test 885 transform5: -ITRF2000@1988xITRF91@2015-ITRF91@2015xETRF2000@2012 max 1.7514, epoched 30.0\n    test 886 transform6: -ITRF2000@1988xITRF90@2015-ITRF90@2015xETRF2000@2012 max 2.1088, epoched 30.0\n    test 887 transform7: -ITRF2000@1988xITRF89@2015-ITRF89@2015xETRF2000@2012 max 2.4877, epoched 30.0\n    test 888 transform8: -ITRF2000@1988xITRF88@2015-ITRF88@2015xETRF2000@2012 max 2.8343, epoched 30.0\n    test 889 EUREF EX5: [4027893.6458, 307045.9470, 4919475.1937]  FAILED, KNOWN, expected [4027894.3662, 307045.2530, 4919474.6263]\n    test 890 transform0: ITRF2014@2015xETRF2000@2012 max 4.5169e-08, epoched 3.0\n    test 891 transform1: ITRF2014@2010xITRF2008@2015+ITRF2008@2015xETRF2000@2012 max 0.36023, epoched 8.0\n    test 892 transform2: ITRF2014@2010xITRF97@2015+ITRF97@2015xETRF2000@2012 max 0.72047, epoched 8.0\n    test 893 transform3: ITRF2014@2010xITRF93@2015+ITRF93@2015xETRF2000@2012 max 1.0807, epoched 8.0\n    test 894 transform4: ITRF2014@2010xITRF92@2015+ITRF92@2015xETRF2000@2012 max 1.4409, epoched 8.0\n    test 895 transform5: ITRF2014@2010xITRF91@2015+ITRF91@2015xETRF2000@2012 max 1.8012, epoched 8.0\n    test 896 transform6: ITRF2014@2010xITRF90@2015+ITRF90@2015xETRF2000@2012 max 2.1614, epoched 8.0\n    test 897 transform7: ITRF2014@2010xITRF89@2015+ITRF89@2015xETRF2000@2012 max 2.5216, epoched 8.0\n    test 898 transform8: ITRF2014@2010xITRF88@2015+ITRF88@2015xETRF2000@2012 max 2.8819, epoched 8.0\n\n    test 899 Case 1A: [4027893.9619, 307045.5481, 4919474.9553]\n    test 900 Case 1B: [4027894.0054, 307045.5938, 4919474.9083]\n    test 901 Case 2A: [4027893.9639, 307045.545, 4919474.9573]\n    test 902 Case 2B: [4027894.0033, 307045.5889, 4919474.9041]\n\n    test 903 TypeError: type(reframe) ('ITRF2000'): not a RefFrame\n    test 904 TRFError: epoch (1899): below 1900.0 limit\n    test 905 TypeError: type(reframe2) ('ITRF2000'): not a RefFrame\n    test 906 TRFError: no conversion: LatLon(00°00′00.0″N, 000°00′00.0″E).reframe MISSING\n    test 907 TypeError: type(reframe2) ('ITRF2000'): not a RefFrame\n    test 908 TypeError: type(reframe) ('ITRF2000'): not a RefFrame\n\n    test 909 ETRF89@1989: [4160476.944000, 653192.600000, 4774604.455000]\n    test 910 ITRF2014@2018.8: [4160476.415, 653193.057, 4774604.903]  FAILED, KNOWN, expected [4160476.485, 653193.021, 4774604.78]\n    test 911 TransformXform: -ITRF2014@2010xITRF89-ITRF89@1989xETRF89@2010@2018.8\n    test 912 Delta (m): [-0.06956, 0.035714, 0.122931]  FAILED, KNOWN, expected [0.01, 0.01, 0.01]\n    test 913 Error (m): 0.145692  FAILED, KNOWN, expected 0.01\n    test 914 Epoch range: 29.800  FAILED, KNOWN, expected 14.0\n    test 915 ETRF89@1989: [4160476.467836, 653193.103190, 4774604.868503]  FAILED, KNOWN, expected [4160476.944000, 653192.600000, 4774604.455000]\n    test 916 TransformXform: ITRF2014@2010xITRF89+ITRF89@1989xETRF89@2010@1989\n\n    test 917 inverse: -ITRF2014@2010xITRF89-ITRF89@1989xETRF89@2010@1989\n    test 918 inverse: ITRF2014@2010xITRF89+ITRF89@1989xETRF89@2010@1989\n    test 919 inverse: name='ITRF2014@2010xITRF89+ITRF89@1989xETRF89@2010@1989', tx=0.0283, ty=0.046, tz=-0.0615, s1=1.0, rx=0.0, ry=0.0, rz=-7.757e-10, s=0.00567, sx=0.0, sy=0.0, sz=-0.00016\n\n    test 920 ETRF2000@2000: [4160476.952000, 653192.582000, 4774604.441000]\n    test 921 ITRF2014@2018.8: [4160476.471, 653193.059, 4774604.804]  FAILED, KNOWN, expected [4160476.485, 653193.021, 4774604.78]\n    test 922 TransformXform: -ITRF2014@2015xETRF2000@2018.8\n    test 923 Delta (m): [-0.014174, 0.037835, 0.023963]  FAILED, KNOWN, expected [0.01, 0.01, 0.01]\n    test 924 Error (m): 0.046975  FAILED, KNOWN, expected 0.01\n    test 925 Epoch range: 18.800  FAILED, KNOWN, expected 14.0\n    test 926 ETRF2000@2000: [4160476.681125, 653192.914350, 4774604.647835]  FAILED, KNOWN, expected [4160476.952000, 653192.582000, 4774604.441000]\n    test 927 TransformXform: ITRF2014@2015xETRF2000@2000\n\n    test 928 inverse: -ITRF2014@2015xETRF2000@2000\n    test 929 inverse: ITRF2014@2015xETRF2000@2000\n    test 930 inverse: name='ITRF2014@2015xETRF2000@2000', tx=0.0537, ty=0.0512, tz=-0.0551, s1=1.0, rx=4.3197e-09, ry=2.6131e-08, rz=-4.2237e-08, s=0.00102, sx=0.000891, sy=0.00539, sz=-0.008712\n\n    test 931 ITRF2008@2005: [4160476.674000, 653192.806000, 4774604.648000]\n    test 932 ITRF2014@2018.8: [4160476.671, 653192.804, 4774604.645]  FAILED, KNOWN, expected [4160476.485, 653193.021, 4774604.78]\n    test 933 TransformXform: -ITRF2014@2010xITRF2008@2018.8\n    test 934 Delta (m): [0.186385, -0.217059, -0.134685]  FAILED, KNOWN, expected [0.01, 0.01, 0.01]\n    test 935 Error (m): 0.316218  FAILED, KNOWN, expected 0.01\n    test 936 Epoch range: 13.800  FAILED, KNOWN, expected 14.0\n    test 937 ITRF2008@2005: [4160476.672278, 653192.805730, 4774604.647403]  FAILED, KNOWN, expected [4160476.674000, 653192.806000, 4774604.648000]\n    test 938 TransformXform: ITRF2014@2010xITRF2008@2005\n\n    test 939 inverse: -ITRF2014@2010xITRF2008@2005\n    test 940 inverse: ITRF2014@2010xITRF2008@2005\n    test 941 inverse: name='ITRF2014@2010xITRF2008@2005', tx=0.0016, ty=0.0019, tz=0.0029, s1=1.0, rx=0.0, ry=0.0, rz=0.0, s=-0.00017, sx=0.0, sy=0.0, sz=0.0\n\n    test 942 toRefFrame1: ITRF2020@2015 2024.31 [0.0031474, 0.00210534, -0.00125667]\n    test 943 toRefFrame2: ITRF2014@2010 2024.32 [0.0031474, 0.00210634, -0.00125867]\n    test 944 transform0: -ITRF2020@2015xITRF2014@2010\n    test 945 transform0X: TRFXform(epoch=2010.0, name='-ITRF2020@2015xITRF2014@2010')\n    test 946 toRefFrame3: ITRF2020@2015 2010 [0.0031474, 0.00067434, 0.00160533]\n    test 947 transform2x: (4160476.488147, 653193.021674, 4774604.781605)\n    test 948 transform2v: (0.000, 0.000, 0.000)  FAILED, KNOWN, expected (0.004, 0.003, 0.004)\n\n    test 949 transform0: name='ITRF2020@2015xETRF2020@2010', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=8.75573508e-09, ry=5.28398431e-08, rz=-7.66635874e-08, s=0.0, sx=0.001806, sy=0.010899, sz=-0.015813\n    test 950 transform2c: (4027893.9585, 307045.5550, 4919474.9620)  FAILED, KNOWN, expected (4027893.9585, 307045.5550, 4919474.9619)\n    test 951     Error2c: (-0.000016463, 0.0000336, 0.000055143) max 5.514e-05, epoched 5.0\n    test 952 transform2v: (-0.00011, 0.00010, 0.00023)  FAILED, KNOWN, expected (0.00011, 0.00011, 0.00024)\n    test 953     Error2v: (-0.000220786, -0.000005544, -0.000006899) max 0.0002208\n    test 954 transform0v: (0.00009, 0.00052, -0.00075)  FAILED, KNOWN, expected (0.00011, 0.00011, 0.00024)\n    test 955     Error0v: (-0.000024, 0.000409, -0.000993) max 0.000993\n\n    test 956 transform0: name='-ITRF2014@2015xETRF2020@2010', tx=-0.0014, ty=-0.0004, tz=0.0004, s1=1.0, rx=-8.75573508e-09, ry=-5.28398431e-08, rz=7.66635874e-08, s=-0.00042, sx=-0.001806, sy=-0.010899, sz=0.015813\n    test 957 transform2c: (4027893.6719, 307045.9063, 4919475.1704)  FAILED, KNOWN, expected (4027893.6719, 307045.9064, 4919475.1704)\n    test 958     Error2c: (0.000024786, -0.000062539, -0.000021304) max 6.254e-05, epoched 5.0\n    test 959 transform2v: (-0.01339, 0.01677, 0.01045)  FAILED, KNOWN, expected (-0.01361, 0.01676, 0.01044)\n    test 960     Error2v: (0.000220784, 0.000005543, 0.000006898) max 0.0002208\n    test 961 transform0v: (-0.00009, -0.00052, 0.00075)  FAILED, KNOWN, expected (-0.01361, 0.01676, 0.01044)\n    test 962     Error0v: (0.013524, -0.017279, -0.009687) max 0.01728\n\n    test 963 transform0: name='ITRF2014@2015xETRF2014@2010', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=8.65392421e-09, ry=5.40615736e-08, rz=-7.83943722e-08, s=0.0, sx=0.001785, sy=0.011151, sz=-0.01617\n    test 964 transform2c: (4027893.9619, 307045.5481, 4919474.9553)  FAILED, KNOWN, expected (4027893.9620, 307045.5480, 4919474.9553)\n    test 965     Error2c: (-0.00007476, 0.000063039, 0.000002882) max 7.476e-05, epoched 5.0\n    test 966 transform2v: (0.00020, -0.00030, 0.00020)\n    test 967     Error2v: (0.000000724, -0.000003666, -0.000002721) max 3.666e-06\n    test 968 transform0v: (0.00009, 0.00053, -0.00077)  FAILED, KNOWN, expected (0.00020, -0.00030, 0.00020)\n    test 969     Error0v: (-0.000115, 0.000831, -0.00097) max 0.00097\n\n    test 970 transform0: name='-ITRF2000@2015xETRF2014@2010', tx=0.0007, ty=0.0012, tz=-0.0261, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 971 transform2c: (4027893.6812, 307045.9082, 4919475.1547)\n    test 972     Error2c: (0.000013934, -0.000012081, 0.000026423) max 2.642e-05, epoched 5.0\n    test 973 transform2v: (-0.01351, 0.01686, 0.00854)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 974     Error2v: (-0.000440726, -0.000036335, -0.00053728) max 0.0005373\n    test 975 transform0v: (-0.00008, -0.00053, 0.00077)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 976     Error0v: (0.012985, -0.017431, -0.00831) max 0.01743\n\n    test 977 transform0: name='ITRF2000@2015xETRF2000@2010', tx=0.054, ty=0.051, tz=-0.048, s1=1.0, rx=8.24668072e-09, ry=4.98873278e-08, rz=-8.06342114e-08, s=0.0, sx=0.001701, sy=0.01029, sz=-0.016632\n    test 978 transform2c: (4027894.0054, 307045.5938, 4919474.9083)  FAILED, KNOWN, expected (4027894.0053, 307045.5939, 4919474.9083)\n    test 979     Error2c: (0.000077874, -0.000055372, -0.000008743) max 7.787e-05, epoched 5.0\n    test 980 transform2v: (-0.00020, -0.00050, -0.00037)  FAILED, KNOWN, expected (-0.00020, -0.00050, -0.00036)\n    test 981     Error2v: (-0.000004389, 0.000002124, -0.000008036) max 8.036e-06\n    test 982 transform0v: (0.00008, 0.00049, -0.00079)  FAILED, KNOWN, expected (-0.00020, -0.00050, -0.00036)\n    test 983     Error0v: (0.000281, 0.00099, -0.000432) max 0.00099\n\n    test 984 transform0/: name='-ITRF2000@2015xETRF2014@2010', tx=0.0007, ty=0.0012, tz=-0.0261, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 985 transform2c: (4027893.6812, 307045.9082, 4919475.1547)\n    test 986     Error2c: (0.000013934, -0.000012081, 0.000026423) max 2.642e-05, epoched 5.0\n    test 987 transform2v: (-0.01351, 0.01686, 0.00854)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 988     Error2v: (-0.000440726, -0.000036335, -0.00053728) max 0.0005373\n\n    test 989 transform1/: name='-ITRF2000@1997xITRF97@2015-ITRF97@2015xETRF2014@2010', tx=0.00673, ty=-0.00033, tz=-0.05913, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=8.09154034e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01669\n    test 990 transform2c: (4027893.6865, 307045.9168, 4919475.1217)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 991     Error2c: (0.005269863, 0.008612365, -0.033003577) max 0.033, epoched 23.0\n    test 992 transform2v: (-0.01357, 0.01710, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 993     Error2v: (-0.00050027, 0.000204776, -0.00179728) max 0.001797\n\n    test 994 transform2/: name='-ITRF2000@1997xITRF96@2015-ITRF96@2015xETRF2014@2010', tx=0.00673, ty=-0.00033, tz=-0.05913, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 995 transform2c: (4027893.6872, 307045.9067, 4919475.1217)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 996     Error2c: (0.006043935, -0.001542081, -0.033003577) max 0.033, epoched 23.0\n    test 997 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 998     Error2v: (-0.000440726, -0.000576335, -0.00179728) max 0.001797\n\n    test 999 transform3/: name='-ITRF2000@1988xITRF93@2015-ITRF93@2015xETRF2014@2010', tx=0.0007, ty=0.0012, tz=-0.0261, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 1000 transform2c: (4027893.6812, 307045.9082, 4919475.1547)\n    test 1001     Error2c: (0.000013934, -0.000012081, 0.000026423) max 2.642e-05, epoched 32.0\n    test 1002 transform2v: (-0.01351, 0.01686, 0.00854)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 1003     Error2v: (-0.000440726, -0.000036335, -0.00053728) max 0.0005373\n\n    test 1004 transform4/: name='-ITRF2000@1988xITRF92@2015-ITRF92@2015xETRF2014@2010', tx=0.01393, ty=0.00147, tz=-0.06633, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 1005 transform2c: (4027893.6944, 307045.9085, 4919475.1145)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 1006     Error2c: (0.013243935, 0.000257919, -0.040203577) max 0.0402, epoched 32.0\n    test 1007 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 1008     Error2v: (-0.000440726, -0.000576335, -0.00179728) max 0.001797\n\n    test 1009 transform5/: name='-ITRF2000@1988xITRF91@2015-ITRF91@2015xETRF2014@2010', tx=0.0007, ty=0.0012, tz=-0.0261, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n./test/testTrf.py:29: DeprecationWarning: method L{convertRefFrame<pygeodesy.ellipsoidalGeodSolve.LatLon.convertRefFrame>} has been DEPRECATED, use method L{toRefFrame}.\n  x = p.convertRefFrame(RefFrames.ETRF2000)\n    test 1010 transform2c: (4027893.6812, 307045.9082, 4919475.1547)\n    test 1011     Error2c: (0.000013934, -0.000012081, 0.000026423) max 2.642e-05, epoched 32.0\n    test 1012 transform2v: (-0.01351, 0.01686, 0.00854)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 1013     Error2v: (-0.000440726, -0.000036335, -0.00053728) max 0.0005373\n\n    test 1014 transform6/: name='-ITRF2000@1988xITRF90@2015-ITRF90@2015xETRF2014@2010', tx=0.02293, ty=0.01047, tz=-0.08613, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 1015 transform2c: (4027893.7034, 307045.9175, 4919475.0947)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 1016     Error2c: (0.022243935, 0.009257919, -0.060003577) max 0.06, epoched 32.0\n    test 1017 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 1018     Error2v: (-0.000440726, -0.000576335, -0.00179728) max 0.001797\n\n    test 1019 transform7/: name='-ITRF2000@1988xITRF89@2015-ITRF89@2015xETRF2014@2010', tx=0.02743, ty=0.03207, tz=-0.12033, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 1020 transform2c: (4027893.7079, 307045.9391, 4919475.0605)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 1021     Error2c: (0.026743934, 0.030857919, -0.094203576) max 0.0942, epoched 32.0\n    test 1022 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 1023     Error2v: (-0.000440726, -0.000576335, -0.00179728) max 0.001797\n\n    test 1024 transform8/: name='-ITRF2000@1988xITRF88@2015-ITRF88@2015xETRF2014@2010', tx=0.02293, ty=-0.00033, tz=-0.14193, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 1025 transform2c: (4027893.7034, 307045.9067, 4919475.0389)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 1026     Error2c: (0.022243935, -0.001542081, -0.115803577) max 0.1158, epoched 32.0\n    test 1027 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 1028     Error2v: (-0.000440725, -0.000576335, -0.00179728) max 0.001797\n\n    test 1029 transform0: name='ITRF2020@2015xETRF2020@2020', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=1.29251327e-08, ry=7.80016732e-08, rz=-1.13170058e-07, s=0.0, sx=0.002666, sy=0.016089, sz=-0.023343\n    test 1030 transform2c: (4027893.9574, 307045.5561, 4919474.9643)\n    test 1031     Error2c: (-0.000024276, -0.000021815, -0.000013824) max 2.428e-05, epoched 5.0\n    test 1032 transform2v: (0.01350, -0.01676, -0.01001)\n\n    test 1033 transform0: name='-ITRF2014@2015xETRF2020@2020', tx=-0.0014, ty=-0.0014, tz=0.0024, s1=1.0, rx=-1.29251327e-08, ry=-7.80016732e-08, rz=1.13170058e-07, s=-0.00042, sx=-0.002666, sy=-0.016089, sz=0.023343\n    test 1034 transform2c: (4027893.5358, 307046.0740, 4919475.2748)\n    test 1035     Error2c: (0.000032643, -0.000007101, 0.000047684) max 4.768e-05, epoched 5.0\n    test 1036 transform2v: (-0.01350, 0.01666, 0.01021)\n\n    test 1037 transform0: name='ITRF2014@2015xETRF2014@2020', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=1.27748405e-08, ry=7.980518e-08, rz=-1.15725026e-07, s=0.0, sx=0.002635, sy=0.016461, sz=-0.02387\n    test 1038 transform2c: (4027893.9639, 307045.5450, 4919474.9573)\n    test 1039     Error2c: (0.000032525, 0.000026405, -0.000024305) max 3.253e-05, epoched 5.0\n    test 1040 transform2v: (0.01381, -0.01706, -0.01024)\n\n    test 1041 transform0: name='-ITRF2000@2015xETRF2014@2020', tx=0.0017, ty=0.0022, tz=-0.0451, s1=1.0, rx=-1.27748405e-08, ry=-7.980518e-08, rz=1.15725026e-07, s=0.00322, sx=-0.002635, sy=-0.016461, sz=0.02387\n    test 1042 transform2c: (4027893.5504, 307046.0772, 4919475.2456)  FAILED, KNOWN, expected (4027893.5505, 307046.0772, 4919475.2456)\n    test 1043     Error2c: (-0.00006262, -0.000037673, -0.000034945) max 6.262e-05, epoched 5.0\n    test 1044 transform2v: (-0.01371, 0.01716, 0.00834)\n\n    test 1045 transform0: name='ITRF2000@2015xETRF2000@2020', tx=0.054, ty=0.051, tz=-0.048, s1=1.0, rx=1.21736715e-08, ry=7.36431982e-08, rz=-1.19031455e-07, s=0.0, sx=0.002511, sy=0.01519, sz=-0.024552\n    test 1046 transform2c: (4027894.0033, 307045.5889, 4919474.9047)\n    test 1047     Error2c: (0.000034031, -0.000034106, 0.000010915) max 3.411e-05, epoched 5.0\n    test 1048 transform2v: (0.01287, -0.01740, -0.00945)\n\n    test 1049 transform0*: name='-ITRF2014@2010xITRF89-ITRF89@1989xETRF89@2010@2018.8', tx=-0.03128, ty=-0.0311, tz=0.15984, s1=0.999999991, rx=-1.58921925e-08, ry=-8.23504519e-08, rz=1.00463091e-07, s=-0.009246, sx=-0.003278, sy=-0.016986, sz=0.020722\n    test 1050 transform2c: (4160476.4154, 653193.0567, 4774604.9029)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 1051     Error2c: (-0.069560351, 0.035713888, 0.122930501) max 0.1229, epoched 29.8\n    test 1052 transform2v: (-0.01148, 0.01996, 0.01845)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 1053     Error2v: (-0.015479395, 0.016963959, 0.014448874) max 0.01696\n\n    test 1054 transform0*: name='-ITRF2014@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 1055 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 1056     Error2c: (-0.014174475, 0.037834952, 0.023962617) max 0.03783, epoched 3.8\n    test 1057 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 1058     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 1059 transform1*: name='-ITRF2014@2010xITRF2008@2015-ITRF2008@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 1060 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 1061     Error2c: (-0.014174475, 0.037834952, 0.023962617) max 0.03783, epoched 8.8\n    test 1062 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 1063     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 1064 transform2*: name='-ITRF2014@2010xITRF97@2015-ITRF97@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 1065 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 1066     Error2c: (-0.014174475, 0.037834952, 0.023962617) max 0.03783, epoched 8.8\n    test 1067 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 1068     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 1069 transform3*: name='-ITRF2014@2010xITRF93@2015-ITRF93@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 1070 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 1071     Error2c: (-0.014174475, 0.037834952, 0.023962617) max 0.03783, epoched 8.8\n    test 1072 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 1073     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 1074 transform4*: name='-ITRF2014@2010xITRF92@2015-ITRF92@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 1075 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n./test/testTrf.py:136: DeprecationWarning: method L{convertRefFrame<pygeodesy.ellipsoidalGeodSolve.LatLon.convertRefFrame>} has been DEPRECATED, use method L{toRefFrame}.\n  t = LatLon(0, 0, reframe=RefFrames.ITRF2000).convertRefFrame('ITRF2000')\n    test 1076     Error2c: (-0.014174475, 0.037834952, 0.023962617) max 0.03783, epoched 8.8\n    test 1077 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 1078     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 1079 transform5*: name='-ITRF2014@2010xITRF91@2015-ITRF91@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 1080 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 1081     Error2c: (-0.014174475, 0.037834952, 0.023962617) max 0.03783, epoched 8.8\n    test 1082 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 1083     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 1084 transform6*: name='-ITRF2014@2010xITRF90@2015-ITRF90@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 1085 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 1086     Error2c: (-0.014174475, 0.037834952, 0.023962617) max 0.03783, epoched 8.8\n    test 1087 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 1088     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 1089 transform7*: name='-ITRF2014@2010xITRF89@2015-ITRF89@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 1090 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 1091     Error2c: (-0.014174475, 0.037834952, 0.023962617) max 0.03783, epoched 8.8\n    test 1092 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 1093     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 1094 transform8*: name='-ITRF2014@2010xITRF88@2015-ITRF88@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 1095 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 1096     Error2c: (-0.014174475, 0.037834952, 0.023962617) max 0.03783, epoched 8.8\n    test 1097 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 1098     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 1099 toTransform: name='-ITRF2014@2010xITRF88@2015-ITRF88@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=1.0, rx=-1.1702e-08, ry=-7.0792e-08, rz=1.1442e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.023602\n    test 1100 toTransform: name='-ITRF2014@2010xITRF88@2015-ITRF88@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=1.0, rx=-1.1702e-08, ry=-7.0792e-08, rz=1.1442e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.023602\n\n    test 1101 Issue80: 48.77691577°N, 008.92257142°E, +476.05m\n    test 1102 Issue80: 48.77692147°N, 008.92257868°E, +476.09m\n    test 1103 Issue80: 48°46′36.915133″N, 008°55′21.285094″E, +476.10m  FAILED, KNOWN, expected 48°46′36.915134″N, 008°55′21.285094″E, +476.10\n    test 1104 Issue80: 0.804  FAILED, KNOWN, expected 0.01\n    test 1105 Issue80: [4160476.944064, 653192.600457, 4774604.455385]\n    test 1106 Issue80: [4160476.415504, 653193.057171, 4774604.903316]\n    test 1107 Issue80: [4160476.467901, 653193.103647, 4774604.868888]\n    test 1108 Issue80: 48°46′36.915133″N, 008°55′21.285094″E, +476.10m\n\n    test 1109 Issue80: 48.77692032°N, 008.92257804°E, +476.05m\n    test 1110 Issue80: 48.77691971°N, 008.92257856°E, +476.06m\n    test 1111 Issue80: 48°46′36.9315″N, 008°55′21.3089″E, +476.10m  FAILED, KNOWN, expected 48°46′36.9131″N, 008°55′21.28095″E, +476.05m\n    test 1112 Issue80: 0.804  FAILED, KNOWN, expected 0.01\n    test 1113 Issue80: [4160476.492633, 653193.021888, 4774604.78885]\n    test 1114 Issue80: [4160476.54503, 653193.068365, 4774604.754422]\n    test 1115 Issue80: [4160476.016469, 653193.525079, 4774605.202353]\n    test 1116 Issue80: 48°46′36.9315″N, 008°55′21.3089″E, +476.10m\n\n    test 1117 ITRF96@1997xNAD83: TRFXform(epoch=1997.0, name='ITRF96@1997xNAD83')\n    test 1118 ITRF96@1997xNAD83: name='ITRF96@1997xNAD83', tx=0.991, ty=-0.19072, tz=-0.5129, s1=1.0, rx=1.2503e-07, ry=4.6785e-08, rz=5.6529e-08, s=0.0, sx=0.02579, sy=0.00965, sz=0.01166\n    test 1119 ITRF96@1997xNAD83: name='ITRF96@1997xNAD83@2007', tx=0.991, ty=-0.19072, tz=-0.5129, s1=1.0, rx=1.2761e-07, ry=1.0797e-08, rz=5.4997e-08, s=0.0, sx=0.026322, sy=0.002227, sz=0.011344\n    test 1120 ITRF96@1997xNAD83: rx=-2.5792e-10, ry=3.5988e-09, rz=1.532e-10\n\n    testTrf(pygeodesy.ellipsoidalGeodSolve, 25.08.28)\n    test 1121 convertRefFrame: 51.47787826°N, 000.00147125°W, -0.00m  FAILED, KNOWN, expected 51.47787826°N, 000.00147125°W\n    test 1122 copy(<class 'type'>): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 1123 RefFrame.copy(): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 1124 toLatLon: 50.7978°N, 004.3592°E, +148.96m\n    test 1125 convertRefFrame: [3980574.395, -102.214, 4966829.941]\n    test 1126 Nil: True\n    test 1127 copy(<class 'type'>): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 1128 RefFrame.copy(): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 1129 Nil: True\n    test 1130 reframe: True\n    test 1131 Roundtrip: True\n    test 1132 reframe: True\n    test 1133 copy(<class 'type'>): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 1134 RefFrame.copy(): (<class 'pygeodesy.trf.RefFrame'>, True)\n\n    test 1135 Geodetic: 23°40′12.44582″S, 133°53′07.84795″E, +603.34m\n    test 1136 Cartesian: [-4052051.7614, 4212836.1945, -2545106.0147]\n    test 1137 Geodetic: 23°40′12.44582″S, 133°53′07.84795″E, +603.34m\n    test 1138 Cartesian: [-4052051.7614, 4212836.1945, -2545106.0147]\n    test 1139 Roundtrip: 23°40′12.41482″S, 133°53′07.86712″E, +603.26m\n    test 1140 GNSStrans: [3370658.18892, 711877.42369, 5349787.1243]\n    test 1141 Cartesian: [-734972.563, 4893188.492, 4011982.811]\n\n    test 1142 EUREF EX1: [4027894.0444, 307045.6209, 4919474.8613]\n    test 1143 transform0: ITRF2005@2015xETRF2020-ITRF91@2015xETRF2020@2007 max 9.3132e-10, epoched 8.0\n    test 1144 transform1: ITRF2005@2015xETRF2014-ITRF91@2015xETRF2014@2007 max 0.048666, epoched 8.0\n    test 1145 transform2: ITRF2005@2015xETRF2000-ITRF91@2015xETRF2000@2007 max 0.097331, epoched 8.0\n    test 1146 transform3: ITRF2005@2000xITRF2000+ITRF2000@1988xITRF91@2000@2007 max 0.146, epoched 19.0\n    test 1147 transform4: -ITRF2020@2015xITRF2005+ITRF2020@2015xITRF91@2007 max 0.19466, epoched 8.0\n    test 1148 transform5: -ITRF2014@2010xITRF2005+ITRF2014@2010xITRF91@2007 max 0.24333, epoched 3.0\n    test 1149 transform6: -ITRF2008@2005xITRF2005+ITRF2008@2000xITRF91@2005@2007 max 0.29199, epoched 7.0\n    test 1150 transform7: ITRF2000@1988xITRF91+ITRF2005@2000xITRF2000@1988@2007 max 0.34066, epoched 31.0\n    test 1151 transform8: ITRF2014@2010xITRF91-ITRF2014@2020xGDA2020@2010+ITRF2005@2020xGDA2020@2010@2007 max 0.98111, epoched 23.0\n    test 1152 transform9: ITRF2008@2000xITRF91-ITRF2008@1994xGDA94@2000+ITRF2005@1994xGDA94@2000@2007 max 0.35972, epoched 19.0\n    test 1153 transform10: ITRF2008@2000xITRF91-ITRF2008@1997xNAD83@2000+ITRF2005@1997xNAD83@2000@2007 max 0.40805, epoched 13.0\n    test 1154 EUREF EX2: [4027894.0060, 307045.6000, 4919474.9100]\n    test 1155 transform0: ITRF91@2015xETRF2020-ITRF2005@2015xETRF2020@2007 max 0.048666, epoched 8.0\n    test 1156 transform1: ITRF91@2015xETRF2014-ITRF2005@2015xETRF2014@2007 max 1.8626e-09, epoched 8.0\n    test 1157 transform2: ITRF91@2015xETRF2000-ITRF2005@2015xETRF2000@2007 max 0.048666, epoched 8.0\n    test 1158 transform3: -ITRF2005@2000xITRF2000-ITRF2000@1988xITRF91@2000@2007 max 0.097331, epoched 19.0\n    test 1159 EUREF EX4: [4027894.3559, 307045.2508, 4919474.6447]\n    test 1160 transform0: -ITRF2000@2015xETRF2000@2012 max 4.5169e-08, epoched 3.0\n    test 1161 transform1: -ITRF2000@1997xITRF97@2015-ITRF97@2015xETRF2000@2012 max 0.35826, epoched 21.0\n    test 1162 transform2: -ITRF2000@1997xITRF96@2015-ITRF96@2015xETRF2000@2012 max 0.7048, epoched 21.0\n    test 1163 transform3: -ITRF2000@1988xITRF93@2015-ITRF93@2015xETRF2000@2012 max 1.054, epoched 30.0\n    test 1164 transform4: -ITRF2000@1988xITRF92@2015-ITRF92@2015xETRF2000@2012 max 1.4023, epoched 30.0\n    test 1165 transform5: -ITRF2000@1988xITRF91@2015-ITRF91@2015xETRF2000@2012 max 1.7514, epoched 30.0\n    test 1166 transform6: -ITRF2000@1988xITRF90@2015-ITRF90@2015xETRF2000@2012 max 2.1088, epoched 30.0\n    test 1167 transform7: -ITRF2000@1988xITRF89@2015-ITRF89@2015xETRF2000@2012 max 2.4877, epoched 30.0\n    test 1168 transform8: -ITRF2000@1988xITRF88@2015-ITRF88@2015xETRF2000@2012 max 2.8343, epoched 30.0\n    test 1169 EUREF EX5: [4027893.6458, 307045.9470, 4919475.1937]  FAILED, KNOWN, expected [4027894.3662, 307045.2530, 4919474.6263]\n    test 1170 transform0: ITRF2014@2015xETRF2000@2012 max 4.5169e-08, epoched 3.0\n    test 1171 transform1: ITRF2014@2010xITRF2008@2015+ITRF2008@2015xETRF2000@2012 max 0.36023, epoched 8.0\n    test 1172 transform2: ITRF2014@2010xITRF97@2015+ITRF97@2015xETRF2000@2012 max 0.72047, epoched 8.0\n    test 1173 transform3: ITRF2014@2010xITRF93@2015+ITRF93@2015xETRF2000@2012 max 1.0807, epoched 8.0\n    test 1174 transform4: ITRF2014@2010xITRF92@2015+ITRF92@2015xETRF2000@2012 max 1.4409, epoched 8.0\n    test 1175 transform5: ITRF2014@2010xITRF91@2015+ITRF91@2015xETRF2000@2012 max 1.8012, epoched 8.0\n    test 1176 transform6: ITRF2014@2010xITRF90@2015+ITRF90@2015xETRF2000@2012 max 2.1614, epoched 8.0\n    test 1177 transform7: ITRF2014@2010xITRF89@2015+ITRF89@2015xETRF2000@2012 max 2.5216, epoched 8.0\n    test 1178 transform8: ITRF2014@2010xITRF88@2015+ITRF88@2015xETRF2000@2012 max 2.8819, epoched 8.0\n\n    test 1179 Case 1A: [4027893.9619, 307045.5481, 4919474.9553]\n    test 1180 Case 1B: [4027894.0054, 307045.5938, 4919474.9083]\n    test 1181 Case 2A: [4027893.9639, 307045.545, 4919474.9573]\n    test 1182 Case 2B: [4027894.0033, 307045.5889, 4919474.9041]\n\n    test 1183 TypeError: type(reframe) ('ITRF2000'): not a RefFrame\n    test 1184 TRFError: epoch (1899): below 1900.0 limit\n    test 1185 TypeError: type(reframe2) ('ITRF2000'): not a RefFrame\n    test 1186 TRFError: no conversion: LatLon(00°00′00.0″N, 000°00′00.0″E).reframe MISSING\n    test 1187 TypeError: type(reframe2) ('ITRF2000'): not a RefFrame\n    test 1188 TypeError: type(reframe) ('ITRF2000'): not a RefFrame\n\n    test 1189 ETRF89@1989: [4160476.944000, 653192.600000, 4774604.455000]\n    test 1190 ITRF2014@2018.8: [4160476.415, 653193.057, 4774604.903]  FAILED, KNOWN, expected [4160476.485, 653193.021, 4774604.78]\n    test 1191 TransformXform: -ITRF2014@2010xITRF89-ITRF89@1989xETRF89@2010@2018.8\n    test 1192 Delta (m): [-0.06956, 0.035714, 0.122931]  FAILED, KNOWN, expected [0.01, 0.01, 0.01]\n    test 1193 Error (m): 0.145692  FAILED, KNOWN, expected 0.01\n    test 1194 Epoch range: 29.800  FAILED, KNOWN, expected 14.0\n    test 1195 ETRF89@1989: [4160476.467836, 653193.103190, 4774604.868503]  FAILED, KNOWN, expected [4160476.944000, 653192.600000, 4774604.455000]\n    test 1196 TransformXform: ITRF2014@2010xITRF89+ITRF89@1989xETRF89@2010@1989\n\n    test 1197 inverse: -ITRF2014@2010xITRF89-ITRF89@1989xETRF89@2010@1989\n    test 1198 inverse: ITRF2014@2010xITRF89+ITRF89@1989xETRF89@2010@1989\n    test 1199 inverse: name='ITRF2014@2010xITRF89+ITRF89@1989xETRF89@2010@1989', tx=0.0283, ty=0.046, tz=-0.0615, s1=1.0, rx=0.0, ry=0.0, rz=-7.757e-10, s=0.00567, sx=0.0, sy=0.0, sz=-0.00016\n\n    test 1200 ETRF2000@2000: [4160476.952000, 653192.582000, 4774604.441000]\n    test 1201 ITRF2014@2018.8: [4160476.471, 653193.059, 4774604.804]  FAILED, KNOWN, expected [4160476.485, 653193.021, 4774604.78]\n    test 1202 TransformXform: -ITRF2014@2015xETRF2000@2018.8\n    test 1203 Delta (m): [-0.014174, 0.037835, 0.023963]  FAILED, KNOWN, expected [0.01, 0.01, 0.01]\n    test 1204 Error (m): 0.046975  FAILED, KNOWN, expected 0.01\n    test 1205 Epoch range: 18.800  FAILED, KNOWN, expected 14.0\n    test 1206 ETRF2000@2000: [4160476.681125, 653192.914350, 4774604.647835]  FAILED, KNOWN, expected [4160476.952000, 653192.582000, 4774604.441000]\n    test 1207 TransformXform: ITRF2014@2015xETRF2000@2000\n\n    test 1208 inverse: -ITRF2014@2015xETRF2000@2000\n    test 1209 inverse: ITRF2014@2015xETRF2000@2000\n    test 1210 inverse: name='ITRF2014@2015xETRF2000@2000', tx=0.0537, ty=0.0512, tz=-0.0551, s1=1.0, rx=4.3197e-09, ry=2.6131e-08, rz=-4.2237e-08, s=0.00102, sx=0.000891, sy=0.00539, sz=-0.008712\n\n    test 1211 ITRF2008@2005: [4160476.674000, 653192.806000, 4774604.648000]\n    test 1212 ITRF2014@2018.8: [4160476.671, 653192.804, 4774604.645]  FAILED, KNOWN, expected [4160476.485, 653193.021, 4774604.78]\n    test 1213 TransformXform: -ITRF2014@2010xITRF2008@2018.8\n    test 1214 Delta (m): [0.186385, -0.217059, -0.134685]  FAILED, KNOWN, expected [0.01, 0.01, 0.01]\n    test 1215 Error (m): 0.316218  FAILED, KNOWN, expected 0.01\n    test 1216 Epoch range: 13.800  FAILED, KNOWN, expected 14.0\n    test 1217 ITRF2008@2005: [4160476.672278, 653192.805730, 4774604.647403]  FAILED, KNOWN, expected [4160476.674000, 653192.806000, 4774604.648000]\n    test 1218 TransformXform: ITRF2014@2010xITRF2008@2005\n\n    test 1219 inverse: -ITRF2014@2010xITRF2008@2005\n    test 1220 inverse: ITRF2014@2010xITRF2008@2005\n    test 1221 inverse: name='ITRF2014@2010xITRF2008@2005', tx=0.0016, ty=0.0019, tz=0.0029, s1=1.0, rx=0.0, ry=0.0, rz=0.0, s=-0.00017, sx=0.0, sy=0.0, sz=0.0\n\n    test 1222 toRefFrame1: ITRF2020@2015 2024.31 [0.0031474, 0.00210534, -0.00125667]\n    test 1223 toRefFrame2: ITRF2014@2010 2024.32 [0.0031474, 0.00210634, -0.00125867]\n    test 1224 transform0: -ITRF2020@2015xITRF2014@2010\n    test 1225 transform0X: TRFXform(epoch=2010.0, name='-ITRF2020@2015xITRF2014@2010')\n    test 1226 toRefFrame3: ITRF2020@2015 2010 [0.0031474, 0.00067434, 0.00160533]\n    test 1227 transform2x: (4160476.488147, 653193.021674, 4774604.781605)\n    test 1228 transform2v: (0.000, 0.000, 0.000)  FAILED, KNOWN, expected (0.004, 0.003, 0.004)\n\n    test 1229 transform0: name='ITRF2020@2015xETRF2020@2010', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=8.75573508e-09, ry=5.28398431e-08, rz=-7.66635874e-08, s=0.0, sx=0.001806, sy=0.010899, sz=-0.015813\n    test 1230 transform2c: (4027893.9585, 307045.5550, 4919474.9620)  FAILED, KNOWN, expected (4027893.9585, 307045.5550, 4919474.9619)\n    test 1231     Error2c: (-0.000016463, 0.0000336, 0.000055143) max 5.514e-05, epoched 5.0\n    test 1232 transform2v: (-0.00011, 0.00010, 0.00023)  FAILED, KNOWN, expected (0.00011, 0.00011, 0.00024)\n    test 1233     Error2v: (-0.000220786, -0.000005544, -0.000006899) max 0.0002208\n    test 1234 transform0v: (0.00009, 0.00052, -0.00075)  FAILED, KNOWN, expected (0.00011, 0.00011, 0.00024)\n    test 1235     Error0v: (-0.000024, 0.000409, -0.000993) max 0.000993\n\n    test 1236 transform0: name='-ITRF2014@2015xETRF2020@2010', tx=-0.0014, ty=-0.0004, tz=0.0004, s1=1.0, rx=-8.75573508e-09, ry=-5.28398431e-08, rz=7.66635874e-08, s=-0.00042, sx=-0.001806, sy=-0.010899, sz=0.015813\n    test 1237 transform2c: (4027893.6719, 307045.9063, 4919475.1704)  FAILED, KNOWN, expected (4027893.6719, 307045.9064, 4919475.1704)\n    test 1238     Error2c: (0.000024786, -0.000062539, -0.000021304) max 6.254e-05, epoched 5.0\n    test 1239 transform2v: (-0.01339, 0.01677, 0.01045)  FAILED, KNOWN, expected (-0.01361, 0.01676, 0.01044)\n    test 1240     Error2v: (0.000220784, 0.000005543, 0.000006898) max 0.0002208\n    test 1241 transform0v: (-0.00009, -0.00052, 0.00075)  FAILED, KNOWN, expected (-0.01361, 0.01676, 0.01044)\n    test 1242     Error0v: (0.013524, -0.017279, -0.009687) max 0.01728\n\n    test 1243 transform0: name='ITRF2014@2015xETRF2014@2010', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=8.65392421e-09, ry=5.40615736e-08, rz=-7.83943722e-08, s=0.0, sx=0.001785, sy=0.011151, sz=-0.01617\n    test 1244 transform2c: (4027893.9619, 307045.5481, 4919474.9553)  FAILED, KNOWN, expected (4027893.9620, 307045.5480, 4919474.9553)\n    test 1245     Error2c: (-0.00007476, 0.000063039, 0.000002882) max 7.476e-05, epoched 5.0\n    test 1246 transform2v: (0.00020, -0.00030, 0.00020)\n    test 1247     Error2v: (0.000000724, -0.000003666, -0.000002721) max 3.666e-06\n    test 1248 transform0v: (0.00009, 0.00053, -0.00077)  FAILED, KNOWN, expected (0.00020, -0.00030, 0.00020)\n    test 1249     Error0v: (-0.000115, 0.000831, -0.00097) max 0.00097\n\n    test 1250 transform0: name='-ITRF2000@2015xETRF2014@2010', tx=0.0007, ty=0.0012, tz=-0.0261, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 1251 transform2c: (4027893.6812, 307045.9082, 4919475.1547)\n    test 1252     Error2c: (0.000013934, -0.000012081, 0.000026423) max 2.642e-05, epoched 5.0\n    test 1253 transform2v: (-0.01351, 0.01686, 0.00854)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 1254     Error2v: (-0.000440726, -0.000036335, -0.00053728) max 0.0005373\n    test 1255 transform0v: (-0.00008, -0.00053, 0.00077)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 1256     Error0v: (0.012985, -0.017431, -0.00831) max 0.01743\n\n    test 1257 transform0: name='ITRF2000@2015xETRF2000@2010', tx=0.054, ty=0.051, tz=-0.048, s1=1.0, rx=8.24668072e-09, ry=4.98873278e-08, rz=-8.06342114e-08, s=0.0, sx=0.001701, sy=0.01029, sz=-0.016632\n    test 1258 transform2c: (4027894.0054, 307045.5938, 4919474.9083)  FAILED, KNOWN, expected (4027894.0053, 307045.5939, 4919474.9083)\n    test 1259     Error2c: (0.000077874, -0.000055372, -0.000008743) max 7.787e-05, epoched 5.0\n    test 1260 transform2v: (-0.00020, -0.00050, -0.00037)  FAILED, KNOWN, expected (-0.00020, -0.00050, -0.00036)\n    test 1261     Error2v: (-0.000004389, 0.000002124, -0.000008036) max 8.036e-06\n    test 1262 transform0v: (0.00008, 0.00049, -0.00079)  FAILED, KNOWN, expected (-0.00020, -0.00050, -0.00036)\n    test 1263     Error0v: (0.000281, 0.00099, -0.000432) max 0.00099\n\n    test 1264 transform0/: name='-ITRF2000@2015xETRF2014@2010', tx=0.0007, ty=0.0012, tz=-0.0261, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 1265 transform2c: (4027893.6812, 307045.9082, 4919475.1547)\n    test 1266     Error2c: (0.000013934, -0.000012081, 0.000026423) max 2.642e-05, epoched 5.0\n    test 1267 transform2v: (-0.01351, 0.01686, 0.00854)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 1268     Error2v: (-0.000440726, -0.000036335, -0.00053728) max 0.0005373\n\n    test 1269 transform1/: name='-ITRF2000@1997xITRF97@2015-ITRF97@2015xETRF2014@2010', tx=0.00673, ty=-0.00033, tz=-0.05913, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=8.09154034e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01669\n    test 1270 transform2c: (4027893.6865, 307045.9168, 4919475.1217)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 1271     Error2c: (0.005269863, 0.008612365, -0.033003577) max 0.033, epoched 23.0\n    test 1272 transform2v: (-0.01357, 0.01710, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 1273     Error2v: (-0.00050027, 0.000204776, -0.00179728) max 0.001797\n\n    test 1274 transform2/: name='-ITRF2000@1997xITRF96@2015-ITRF96@2015xETRF2014@2010', tx=0.00673, ty=-0.00033, tz=-0.05913, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 1275 transform2c: (4027893.6872, 307045.9067, 4919475.1217)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 1276     Error2c: (0.006043935, -0.001542081, -0.033003577) max 0.033, epoched 23.0\n    test 1277 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 1278     Error2v: (-0.000440726, -0.000576335, -0.00179728) max 0.001797\n\n    test 1279 transform3/: name='-ITRF2000@1988xITRF93@2015-ITRF93@2015xETRF2014@2010', tx=0.0007, ty=0.0012, tz=-0.0261, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 1280 transform2c: (4027893.6812, 307045.9082, 4919475.1547)\n    test 1281     Error2c: (0.000013934, -0.000012081, 0.000026423) max 2.642e-05, epoched 32.0\n    test 1282 transform2v: (-0.01351, 0.01686, 0.00854)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 1283     Error2v: (-0.000440726, -0.000036335, -0.00053728) max 0.0005373\n\n    test 1284 transform4/: name='-ITRF2000@1988xITRF92@2015-ITRF92@2015xETRF2014@2010', tx=0.01393, ty=0.00147, tz=-0.06633, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 1285 transform2c: (4027893.6944, 307045.9085, 4919475.1145)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 1286     Error2c: (0.013243935, 0.000257919, -0.040203577) max 0.0402, epoched 32.0\n    test 1287 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 1288     Error2v: (-0.000440726, -0.000576335, -0.00179728) max 0.001797\n\n    test 1289 transform5/: name='-ITRF2000@1988xITRF91@2015-ITRF91@2015xETRF2014@2010', tx=0.0007, ty=0.0012, tz=-0.0261, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 1290 transform2c: (4027893.6812, 307045.9082, 4919475.1547)\n    test 1291     Error2c: (0.000013934, -0.000012081, 0.000026423) max 2.642e-05, epoched 32.0\n    test 1292 transform2v: (-0.01351, 0.01686, 0.00854)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 1293     Error2v: (-0.000440726, -0.000036335, -0.00053728) max 0.0005373\n\n    test 1294 transform6/: name='-ITRF2000@1988xITRF90@2015-ITRF90@2015xETRF2014@2010', tx=0.02293, ty=0.01047, tz=-0.08613, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 1295 transform2c: (4027893.7034, 307045.9175, 4919475.0947)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 1296     Error2c: (0.022243935, 0.009257919, -0.060003577) max 0.06, epoched 32.0\n    test 1297 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 1298     Error2v: (-0.000440726, -0.000576335, -0.00179728) max 0.001797\n\n    test 1299 transform7/: name='-ITRF2000@1988xITRF89@2015-ITRF89@2015xETRF2014@2010', tx=0.02743, ty=0.03207, tz=-0.12033, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 1300 transform2c: (4027893.7079, 307045.9391, 4919475.0605)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 1301     Error2c: (0.026743934, 0.030857919, -0.094203576) max 0.0942, epoched 32.0\n    test 1302 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 1303     Error2v: (-0.000440726, -0.000576335, -0.00179728) max 0.001797\n\n    test 1304 transform8/: name='-ITRF2000@1988xITRF88@2015-ITRF88@2015xETRF2014@2010', tx=0.02293, ty=-0.00033, tz=-0.14193, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 1305 transform2c: (4027893.7034, 307045.9067, 4919475.0389)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 1306     Error2c: (0.022243935, -0.001542081, -0.115803577) max 0.1158, epoched 32.0\n    test 1307 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 1308     Error2v: (-0.000440725, -0.000576335, -0.00179728) max 0.001797\n\n    test 1309 transform0: name='ITRF2020@2015xETRF2020@2020', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=1.29251327e-08, ry=7.80016732e-08, rz=-1.13170058e-07, s=0.0, sx=0.002666, sy=0.016089, sz=-0.023343\n    test 1310 transform2c: (4027893.9574, 307045.5561, 4919474.9643)\n    test 1311     Error2c: (-0.000024276, -0.000021815, -0.000013824) max 2.428e-05, epoched 5.0\n    test 1312 transform2v: (0.01350, -0.01676, -0.01001)\n\n    test 1313 transform0: name='-ITRF2014@2015xETRF2020@2020', tx=-0.0014, ty=-0.0014, tz=0.0024, s1=1.0, rx=-1.29251327e-08, ry=-7.80016732e-08, rz=1.13170058e-07, s=-0.00042, sx=-0.002666, sy=-0.016089, sz=0.023343\n    test 1314 transform2c: (4027893.5358, 307046.0740, 4919475.2748)\n    test 1315     Error2c: (0.000032643, -0.000007101, 0.000047684) max 4.768e-05, epoched 5.0\n    test 1316 transform2v: (-0.01350, 0.01666, 0.01021)\n\n    test 1317 transform0: name='ITRF2014@2015xETRF2014@2020', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=1.27748405e-08, ry=7.980518e-08, rz=-1.15725026e-07, s=0.0, sx=0.002635, sy=0.016461, sz=-0.02387\n    test 1318 transform2c: (4027893.9639, 307045.5450, 4919474.9573)\n    test 1319     Error2c: (0.000032525, 0.000026405, -0.000024305) max 3.253e-05, epoched 5.0\n    test 1320 transform2v: (0.01381, -0.01706, -0.01024)\n\n    test 1321 transform0: name='-ITRF2000@2015xETRF2014@2020', tx=0.0017, ty=0.0022, tz=-0.0451, s1=1.0, rx=-1.27748405e-08, ry=-7.980518e-08, rz=1.15725026e-07, s=0.00322, sx=-0.002635, sy=-0.016461, sz=0.02387\n    test 1322 transform2c: (4027893.5504, 307046.0772, 4919475.2456)  FAILED, KNOWN, expected (4027893.5505, 307046.0772, 4919475.2456)\n    test 1323     Error2c: (-0.00006262, -0.000037673, -0.000034945) max 6.262e-05, epoched 5.0\n    test 1324 transform2v: (-0.01371, 0.01716, 0.00834)\n\n    test 1325 transform0: name='ITRF2000@2015xETRF2000@2020', tx=0.054, ty=0.051, tz=-0.048, s1=1.0, rx=1.21736715e-08, ry=7.36431982e-08, rz=-1.19031455e-07, s=0.0, sx=0.002511, sy=0.01519, sz=-0.024552\n    test 1326 transform2c: (4027894.0033, 307045.5889, 4919474.9047)\n    test 1327     Error2c: (0.000034031, -0.000034106, 0.000010915) max 3.411e-05, epoched 5.0\n    test 1328 transform2v: (0.01287, -0.01740, -0.00945)\n\n    test 1329 transform0*: name='-ITRF2014@2010xITRF89-ITRF89@1989xETRF89@2010@2018.8', tx=-0.03128, ty=-0.0311, tz=0.15984, s1=0.999999991, rx=-1.58921925e-08, ry=-8.23504519e-08, rz=1.00463091e-07, s=-0.009246, sx=-0.003278, sy=-0.016986, sz=0.020722\n    test 1330 transform2c: (4160476.4154, 653193.0567, 4774604.9029)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 1331     Error2c: (-0.069560351, 0.035713888, 0.122930501) max 0.1229, epoched 29.8\n    test 1332 transform2v: (-0.01148, 0.01996, 0.01845)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 1333     Error2v: (-0.015479395, 0.016963959, 0.014448874) max 0.01696\n\n    test 1334 transform0*: name='-ITRF2014@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 1335 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 1336     Error2c: (-0.014174475, 0.037834952, 0.023962617) max 0.03783, epoched 3.8\n    test 1337 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 1338     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 1339 transform1*: name='-ITRF2014@2010xITRF2008@2015-ITRF2008@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 1340 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 1341     Error2c: (-0.014174475, 0.037834952, 0.023962617) max 0.03783, epoched 8.8\n    test 1342 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 1343     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 1344 transform2*: name='-ITRF2014@2010xITRF97@2015-ITRF97@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 1345 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 1346     Error2c: (-0.014174475, 0.037834952, 0.023962617) max 0.03783, epoched 8.8\n    test 1347 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 1348     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 1349 transform3*: name='-ITRF2014@2010xITRF93@2015-ITRF93@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 1350 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 1351     Error2c: (-0.014174475, 0.037834952, 0.023962617) max 0.03783, epoched 8.8\n    test 1352 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 1353     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 1354 transform4*: name='-ITRF2014@2010xITRF92@2015-ITRF92@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 1355 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 1356     Error2c: (-0.014174475, 0.037834952, 0.023962617) max 0.03783, epoched 8.8\n    test 1357 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 1358     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 1359 transform5*: name='-ITRF2014@2010xITRF91@2015-ITRF91@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 1360 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 1361     Error2c: (-0.014174475, 0.037834952, 0.023962617) max 0.03783, epoched 8.8\n    test 1362 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 1363     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 1364 transform6*: name='-ITRF2014@2010xITRF90@2015-ITRF90@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 1365 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 1366     Error2c: (-0.014174475, 0.037834952, 0.023962617) max 0.03783, epoched 8.8\n    test 1367 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 1368     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 1369 transform7*: name='-ITRF2014@2010xITRF89@2015-ITRF89@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 1370 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 1371     Error2c: (-0.014174475, 0.037834952, 0.023962617) max 0.03783, epoched 8.8\n    test 1372 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 1373     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 1374 transform8*: name='-ITRF2014@2010xITRF88@2015-ITRF88@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 1375 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 1376     Error2c: (-0.014174475, 0.037834952, 0.023962617) max 0.03783, epoched 8.8\n    test 1377 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 1378     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 1379 toTransform: name='-ITRF2014@2010xITRF88@2015-ITRF88@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=1.0, rx=-1.1702e-08, ry=-7.0792e-08, rz=1.1442e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.023602\n    test 1380 toTransform: name='-ITRF2014@2010xITRF88@2015-ITRF88@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=1.0, rx=-1.1702e-08, ry=-7.0792e-08, rz=1.1442e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.023602\n\n    test 1381 Issue80: 48.77691577°N, 008.92257142°E, +476.05m\n    test 1382 Issue80: 48.77692147°N, 008.92257868°E, +476.09m\n    test 1383 Issue80: 48°46′36.915133″N, 008°55′21.285094″E, +476.10m  FAILED, KNOWN, expected 48°46′36.915134″N, 008°55′21.285094″E, +476.10\n    test 1384 Issue80: 0.804  FAILED, KNOWN, expected 0.01\n    test 1385 Issue80: [4160476.944064, 653192.600457, 4774604.455385]\n    test 1386 Issue80: [4160476.415504, 653193.057171, 4774604.903316]\n    test 1387 Issue80: [4160476.467901, 653193.103647, 4774604.868888]\n    test 1388 Issue80: 48°46′36.915133″N, 008°55′21.285094″E, +476.10m\n\n    test 1389 Issue80: 48.77692032°N, 008.92257804°E, +476.05m\n    test 1390 Issue80: 48.77691971°N, 008.92257856°E, +476.06m\n    test 1391 Issue80: 48°46′36.9315″N, 008°55′21.3089″E, +476.10m  FAILED, KNOWN, expected 48°46′36.9131″N, 008°55′21.28095″E, +476.05m\n    test 1392 Issue80: 0.804  FAILED, KNOWN, expected 0.01\n    test 1393 Issue80: [4160476.492633, 653193.021888, 4774604.78885]\n    test 1394 Issue80: [4160476.54503, 653193.068365, 4774604.754422]\n    test 1395 Issue80: [4160476.016469, 653193.525079, 4774605.202353]\n    test 1396 Issue80: 48°46′36.9315″N, 008°55′21.3089″E, +476.10m\n\n    test 1397 ITRF96@1997xNAD83: TRFXform(epoch=1997.0, name='ITRF96@1997xNAD83')\n    test 1398 ITRF96@1997xNAD83: name='ITRF96@1997xNAD83', tx=0.991, ty=-0.19072, tz=-0.5129, s1=1.0, rx=1.2503e-07, ry=4.6785e-08, rz=5.6529e-08, s=0.0, sx=0.02579, sy=0.00965, sz=0.01166\n    test 1399 ITRF96@1997xNAD83: name='ITRF96@1997xNAD83@2007', tx=0.991, ty=-0.19072, tz=-0.5129, s1=1.0, rx=1.2761e-07, ry=1.0797e-08, rz=5.4997e-08, s=0.0, sx=0.026322, sy=0.002227, sz=0.011344\n    test 1400 ITRF96@1997xNAD83: rx=-2.5792e-10, ry=3.5988e-09, rz=1.532e-10\n\n    test 1401 TRFError: day (2), month (1) or year (None): int() argument must be a string, a bytes-like object or a real number, not 'NoneType'\n    test 1402 toStr: name='GDA94', epoch=1994, datum=Datums.GRS80\n    test 1403 str: name='GDA94', epoch=1994, datum=Datums.GRS80\n    test 1404 toStr2: RefFrame(name='GDA94', epoch=1994, datum=Datums.GRS80)\n    test 1405 repr: RefFrame(name='GDA94', epoch=1994, datum=Datums.GRS80)\n\n    test 1406 epoch: 2020.003\n    test 1407 y-m-d: (2020, 1, 1)\n    test 1408 epoch: 2020.251\n    test 1409 y-m-d: (2020, 4, 1)\n    test 1410 epoch: 2020.500\n    test 1411 y-m-d: (2020, 7, 1)\n    test 1412 epoch: 2020.751\n    test 1413 y-m-d: (2020, 10, 1)\n    test 1414 epoch: 2021.000\n    test 1415 y-m-d: (2021, 1, 1)  FAILED, KNOWN, expected (2020, 12, 31)\n\n    test 1416 Epoch (2020).std_repr: False\n    test 1417 Epoch (2020.001): (2020, 1, 1)\n    test 1418 Epoch (2020.086): (2020, 2, 1)\n    test 1419 Epoch (2020.165): (2020, 3, 1)\n    test 1420 Epoch (2020.25): (2020, 4, 1)\n    test 1421 Epoch (2020.332): (2020, 5, 1)\n    test 1422 Epoch (2020.416): (2020, 6, 1)\n    test 1423 Epoch (2020.498): (2020, 7, 1)\n    test 1424 Epoch (2020.583): (2020, 8, 1)\n    test 1425 Epoch (2020.668): (2020, 9, 1)\n    test 1426 Epoch (2020.75): (2020, 10, 1)\n    test 1427 Epoch (2020.834): (2020, 11, 1)\n    test 1428 Epoch (2020.916): (2020, 12, 1)\n    test 1429 Epoch (2021.001): (2021, 1, 1)  FAILED, KNOWN, expected (2020, 13, 1)\n\n    367 of 1429 testTrf.py tests (25.7%) FAILED, incl. 357 KNOWN plus 10 DeprecationWarnings (pygeodesy 26.3.26 Python 3.13.12 64bit arm64 coverage 7.10.7 geographiclib 2.1 numpy 2.3.3 scipy 1.16.2 Math 2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 macOS 26.3.1 isLazy 1 -W  default) 589.384 ms\nrunning /Library/Framewo....n3.13 -W default ~/PyGeodesy/test/testTriaxials.py\n./test/testTriaxials.py:134: DeprecationWarning: method L{area_p<pygeodesy.triaxials.triaxial5.Conformal.area_p>} has been DEPRECATED on 2026-02-15, use method L{areaKT<Triaxial_.areaKT>}.\n  p = J.area_p()\n./test/testTriaxials.py:192: DeprecationWarning: method L{area_p<pygeodesy.triaxials.triaxial5.ConformalSphere.area_p>} has been DEPRECATED on 2026-02-15, use method L{areaKT<Triaxial_.areaKT>}.\n  p = J.area_p()\n\n    testing testTriaxials.py 26.03.12 isLazy=1\n\n    testHartzell(pygeodesy.triaxials.triaxial5, 26.03.09)\n    test 1 hartzell4: (884268.349816, 5592134.174908, 2927668.068131, 12669388.912805)\n    test 2 hartzell4: 0\n    test 3 hartzell4: (3642143.609933, 3678204.437754, 3714265.265575, 11296443.179278)\n    test 4 hartzell4: 0\n\n    test 5 hartzell4: (888679.181482, 5594339.590741, 2931196.612187, 12663325.092381)\n    test 6 hartzell4: 0\n    test 7 hartzell4: (3642304.092727, 3678366.509487, 3714428.926247, 11296162.453809)\n    test 8 hartzell4: 0\n\n    test 9 hartzell4: (884080.396945, 5592040.198472, 2927517.711001, 12669647.302276)\n    test 10 hartzell4: 0\n    test 11 hartzell4: (3642031.283571, 3678090.99925, 3714150.714929, 11296639.666827)\n    test 12 hartzell4: 0\n\n    test 13 hartzell: 30°38′27.119″N, 060°44′36.777″E, +142549.69m\n    test 14 hartzell: 30.640866, 060.743549, +142549.69m\n    test 15 hartzell: [2807429.59, 4862610.688, 3220373.735]\n    test 16 hartzell: [2684238.298, 4791786.806, 3231700.636]\n    test 17 hartzell: 142549.69438493284  FAILED, KNOWN, expected 142549.6943849337\n\n    test 18 hartzell: 30°00′00.0″N, 060°00′00.0″E, +100000.00m\n    test 19 hartzell: 30.0, 060.0, +100000.00m\n    test 20 hartzell: [2807429.59, 4862610.688, 3220373.735]\n    test 21 hartzell: [2764128.32, 4787610.688, 3170373.735]\n    test 22 hartzell: 100000.00000000023  FAILED, KNOWN, expected 100000.0\n\n    testConformal(pygeodesy.triaxials.triaxial5, 26.03.09)\n    test 23 Conformal: Conformal(name='Test', a=6378172, b=6378102, c=6356752, e2ab=0.00002195, e2bc=0.006683577, e2ac=0.00670538, xyQ2=xyQ2(x=10026968.259439, y=27085126.866409), volume=1083207266220584468480, area=510065604942135.875, R2=6371007.076110449)\n    test 24 xR: 1.5720928043230937  FAILED, KNOWN, expected 1.572092804\n    test 25 yR: 4.246581015231323  FAILED, KNOWN, expected 4.246581015\n    test 26 xyR2.toDegrees: (90.074283, 243.31117)\n    test 27 xyR2.toDegrees: (90.074283, 243.311169)  FAILED, KNOWN, expected ('90°04′27.42″N', '243°18′40.21″E')\n    test 28 areaRG: 510065604942135\n    test 29 area_p: 510065609807745\n    test 30 error: 9.54e-09\n    test 31 volume: 1.083207e+21\n\n    test 32 Conformal: Conformal(name='Itokawa25134', a=267.5, b=147, c=104.5, e2ab=0.6980138, e2bc=0.494643436, e2ac=0.847389292, xyQ2=xyQ2(x=460.426025, y=209.544083), volume=17212581.945495993, area=359464.659686278, R2=169.130980982)\n    test 33 xyR2: (0.0, 0.61539)\n    test 34 toDegrees: (0.0, 35.259243)\n    test 35 toDegrees: (0.0, 35.259242)  FAILED, KNOWN, expected ('00°00′00.0″N', '035°15′33.27″E')\n    test 36 xyQR2: (3.13215, 1.42547)\n    test 37 toDegrees: (179.458966, 81.673412)  FAILED, KNOWN, expected (179.4589659, 81.673412)\n    test 38 toDegrees: (179.458967, 81.673411)  FAILED, KNOWN, expected ('179°27′32.28″N', '081°40′24.28″E')\n\n    testConformalSphere(pygeodesy.triaxials.triaxial5, 26.03.09)\n    test 39 ConformalSphere: ConformalSphere(name='Test', a=6378172, ab=1, bc=2, e2ab=0, e2bc=0, e2ac=0, xyQ2=xyQ2(x=11059220.127879, y=12941050.138298), volume=1086869218894412120064, area=511213503913540.8125, R2=6378172)\n    test 40 xR: 1.7339168852579347  FAILED, KNOWN, expected 1.73391688526\n    test 41 yR: 2.028959102748815  FAILED, KNOWN, expected 2.02895910275\n    test 42 xyR2.toDegrees: (99.34612, 116.250793)\n    test 43 xyR2.toDegrees: (99.346119, 116.250794)  FAILED, KNOWN, expected ('99°20′46.03″N', '116°15′02.86″E')\n    test 44 areax: 511213503913540\n    test 45 area_p: 511213503913539  FAILED, KNOWN, expected 511213503913540\n    test 46 volume: 1.086869e+21\n\n    test 47 ConformalSphere: ConformalSphere(name='Itokawa25134', a=267.5, ab=147, bc=104.5, e2ab=0, e2bc=0, e2ac=0, xyQ2=xyQ2(x=517.119524, y=478.404858), volume=80178876.856908351, area=899202.357273738, R2=267.5)\n    test 48 xyR2: (0.0, 0.818354)\n    test 49 toDegrees: (0.0, 46.888217)\n    test 50 toDegrees: (0.0, 46.888217)  FAILED, KNOWN, expected ('00°00′00.0″N', '046°53′17.58″E')\n    test 51 xyQR2: (1.933157, 1.788429)\n    test 52 toDegrees: (110.761743, 102.469455)  FAILED, KNOWN, expected (179.4589659, 81.673412)\n    test 53 toDegrees: (110.761742, 102.469456)  FAILED, KNOWN, expected ('110°45′42.27″N', '102°28′10.04″E')\n\n    testTriaxial(pygeodesy.triaxials.triaxial5, 26.03.09)\n    test 54 Triaxial: Triaxial(name='Test', a=6378388, b=6378318, c=6356911.9461, e2ab=0.000021949, e2bc=0.006700868, e2ac=0.00672267, volume=1083307891664673177600, area=510097198412933.0625, R2=6371204.383189477)\n    test 55 Triaxial: Triaxial_(name='Un', a=6356911.9461, b=6378388, c=6378318, e2ab=-0.00676817, e2bc=0.000021949, e2ac=-0.006746073, volume=1083307891664673308672, area=510097198412933.125, R2=6371204.383189478)\n\n    test 56 forwardBetaOmega: (4234607.381429, 3551286.590486, 3176009.080037)\n    test 57 forwardBetaOmega: (4233813.533025, 3550620.827453, 3175409.655093)\n    test 58 length: 1196.973671\n\n    test 59 forwardCartesian: (4233813.533151, 3550620.827558, 3175409.654809, 1196.973671)\n    test 60 forwardCartesian: (4239665.951888, 3553574.566129, 3164352.410834, 12911.309173)\n\n    test 61 reverseCartesian: (4234607.381429, 3551286.590486, 3176009.080037)\n    test 62 reverseCartesian: (4248255.186992, 3560773.833183, 3170763.143924)  FAILED, KNOWN, expected (4234607.381429, 3551286.590486, 3176009.080037)\n\n    test 63 forwardBetaOmega_: (4233813.533025, 3550620.827453, 3175409.655093)\n\n    test 64 reverseLatLon: (30.051881, 39.984967, 0.0)\n    test 65 forwardLatLon: (4233813.533025, 3550620.827453, 3175409.655093)\n\n    test 66 reverseBetaOmega: (0.520687, 0.698121, 12892.55755)\n    test 67 reverseBetaOmega: (0.521162, 0.698437, 12918.032538)\n    test 68 toDegrees: (29.860398, 40.017494, 12918.032538)\n    test 69 toDegrees: (29.860397, 40.017494, 12918.032538)  FAILED, KNOWN, expected ('29°51′37.43″', '40°01′02.98″', 12918.032538)\n\n    test 70 height4: (3909251.554667, 3909165.750567, 3170432.501602, 999.999996)\n\n    test 71 height4: (1.206423, 1.61288, 0.433517, 3.593736)\n    test 72 height4: 52\n    test 73 height4: 0\n    test 74 height4: (-1.206423, -1.61288, -0.433517, 3.593736)\n    test 75 height4: (0.0, 1.746769, 0.487031, 3.375213)\n    test 76 height4: (1.563196, 0.0, 0.853517, 2.190477)\n    test 77 height4: (1.297504, 1.803267, 0.0, 2.306326)\n\n    test 78 height4(-2, -4, -3): (-1.206423, -1.61288, -0.433517, 3.593736) 52\n    test 79 signBit(-2, -4, -3): (True, True, True)\n\n    test 80 height4(-2, -4, 0): (-1.297504, -1.803267, 0.0, 2.306326) 52\n    test 81 signBit(-2, -4, 0): (True, True, False)\n\n    test 82 height4(-2, -4, 3): (-1.206423, -1.61288, 0.433517, 3.593736) 52\n    test 83 signBit(-2, -4, 3): (True, True, False)\n\n    test 84 height4(-2, 0, -3): (-1.563196, 0.0, -0.853517, 2.190477) 53\n    test 85 signBit(-2, 0, -3): (True, False, True)\n\n    test 86 height4(-2, 0, 0): (-3.0, 0.0, 0.0, -1.0) None\n    test 87 signBit(-2, 0, 0): (True, False, False)\n\n    test 88 height4(-2, 0, 3): (-1.563196, 0.0, 0.853517, 2.190477) 53\n    test 89 signBit(-2, 0, 3): (True, False, False)\n\n    test 90 height4(-2, 4, -3): (-1.206423, 1.61288, -0.433517, 3.593736) 52\n    test 91 signBit(-2, 4, -3): (True, False, True)\n\n    test 92 height4(-2, 4, 0): (-1.297504, 1.803267, 0.0, 2.306326) 52\n    test 93 signBit(-2, 4, 0): (True, False, False)\n\n    test 94 height4(-2, 4, 3): (-1.206423, 1.61288, 0.433517, 3.593736) 52\n    test 95 signBit(-2, 4, 3): (True, False, False)\n\n    test 96 height4(0, -4, -3): (0.0, -1.746769, -0.487031, 3.375213) 54\n    test 97 signBit(0, -4, -3): (False, True, True)\n\n    test 98 height4(0, -4, 0): (0.0, -2.0, 0.0, 2.0) None\n    test 99 signBit(0, -4, 0): (False, True, False)\n\n    test 100 height4(0, -4, 3): (0.0, -1.746769, 0.487031, 3.375213) 54\n    test 101 signBit(0, -4, 3): (False, True, False)\n\n    test 102 height4(0, 0, -3): (0.0, 0.0, -1.0, 2.0) None\n    test 103 signBit(0, 0, -3): (False, False, True)\n\n    test 104 height4(0, 0, 0): (0.0, 0.0, 0.0, -1.0) None\n    test 105 signBit(0, 0, 0): (False, False, False)\n\n    test 106 height4(0, 0, 3): (0.0, 0.0, 1.0, 2.0) None\n    test 107 signBit(0, 0, 3): (False, False, False)\n\n    test 108 height4(0, 4, -3): (0.0, 1.746769, -0.487031, 3.375213) 54\n    test 109 signBit(0, 4, -3): (False, False, True)\n\n    test 110 height4(0, 4, 0): (0.0, 2.0, 0.0, 2.0) None\n    test 111 signBit(0, 4, 0): (False, False, False)\n\n    test 112 height4(0, 4, 3): (0.0, 1.746769, 0.487031, 3.375213) 54\n    test 113 signBit(0, 4, 3): (False, False, False)\n\n    test 114 height4(2, -4, -3): (1.206423, -1.61288, -0.433517, 3.593736) 52\n    test 115 signBit(2, -4, -3): (False, True, True)\n\n    test 116 height4(2, -4, 0): (1.297504, -1.803267, 0.0, 2.306326) 52\n    test 117 signBit(2, -4, 0): (False, True, False)\n\n    test 118 height4(2, -4, 3): (1.206423, -1.61288, 0.433517, 3.593736) 52\n    test 119 signBit(2, -4, 3): (False, True, False)\n\n    test 120 height4(2, 0, -3): (1.563196, 0.0, -0.853517, 2.190477) 53\n    test 121 signBit(2, 0, -3): (False, False, True)\n\n    test 122 height4(2, 0, 0): (3.0, 0.0, 0.0, -1.0) None\n    test 123 signBit(2, 0, 0): (False, False, False)\n\n    test 124 height4(2, 0, 3): (1.563196, 0.0, 0.853517, 2.190477) 53\n    test 125 signBit(2, 0, 3): (False, False, False)\n\n    test 126 height4(2, 4, -3): (1.206423, 1.61288, -0.433517, 3.593736) 52\n    test 127 signBit(2, 4, -3): (False, False, True)\n\n    test 128 height4(2, 4, 0): (1.297504, 1.803267, 0.0, 2.306326) 52\n    test 129 signBit(2, 4, 0): (False, False, False)\n\n    test 130 height4(2, 4, 3): (1.206423, 1.61288, 0.433517, 3.593736) 52\n    test 131 signBit(2, 4, 3): (False, False, False)\n\n    test 132 _plumbTo5: 2.356, 1.116, 0.268, 6.503, 54\n    test 133 _plumbTo5: 2.356, 0.268, 1.116, 6.503, 54\n    test 134 _plumbTo5: 1.116, 2.356, 0.268, 6.503, 54\n    test 135 _plumbTo5: 1.116, 0.268, 2.356, 6.503, 54\n    test 136 _plumbTo5: 0.268, 2.356, 1.116, 6.503, 54\n    test 137 _plumbTo5: 0.268, 1.116, 2.356, 6.503, 54\n\n    test 138 _plumbTo5(-9300557.963570276, -11660481.511793813, 0.0): (-3962700.829072, -4987439.729515, 0.0, 8545303.120214) 53\n    test 139 _plumbTo5(0.0, -12673220.90213298, 4063222.7994714356): (0.0, -6073846.031207, 1947342.96726, 6930273.887183) 53\n    test 140 _plumbTo5(2499951.171555953, 6362115.170256343, -7034566.006072541): (1621709.788784, 4136852.378785, -4574066.473867, 3431786.759912) 54\n    test 141 _plumbTo5(-9399021.583039021, -7763804.562755707, -6951119.751015274): (-4256878.854533, -3529258.643752, -3159791.771735, 7664670.823131) 53\n    test 142 _plumbTo5(-9612922.39422538, 3333663.5145574105, 5962187.189486663): (-5182331.629107, 1802765.616547, 3224175.948651, 5428672.808065) 53\n    test 143 _plumbTo5(-11328035.20390406, -9256612.246624056, -7692781.497645869): (-4355036.26798, -3573470.200045, -2969720.914727, 10160123.963414) 53\n    test 144 _plumbTo5(1598946.114177574, -11973388.958217159, 0.0): (841594.384072, -6322243.162372, 0.0, 5701669.093257) 55\n    test 145 _plumbTo5(-10308543.102586422, 1905777.409769761, 6374385.685515664): (-5341300.900271, 990674.649223, 3313543.184377, 5905900.86063) 52\n    test 146 _plumbTo5(-8735659.812590662, -6834366.166941474, 0.0): (-5007671.762691, -3929037.172672, 0.0, 4726397.30293) 49\n    test 147 _plumbTo5(2573537.1013443363, 5389514.603678346, 3732045.3303140495): (2328470.382191, 4879418.28281, 3378814.925965, 667103.943892) 56\n    test 148 _plumbTo5(1431210.08717349, 1543852.068510235, -9327538.892237142): (952507.562384, 1029789.273711, -6221664.3004, 3184316.825389) 54\n    test 149 _plumbTo5(-6918305.550287351, 5935533.8579224525, 0.0): (-4827349.027207, 4150037.850017, 0.0, 2749562.724445) 53\n    test 150 _plumbTo5(-9690082.180926248, -12628809.340338562, -9286452.325150812): (-3340011.67621, -4372204.152622, -3215004.809673, 12056425.654973) 54\n    test 151 _plumbTo5(6115158.880607812, -9076497.651064131, -8024493.905200128): (2863993.849608, -4266165.0229, -3771654.917276, 7196944.734371) 53\n    test 152 _plumbTo5(1724581.719029579, -6998172.662048493, -7855478.093763296): (1028985.282031, -4186867.746033, -4699735.122818, 4283223.48619) 54\n    test 153 _plumbTo5(2415660.719960912, 3370437.398145044, 4064858.8972798586): (2653346.350446, 3699619.79338, 4461873.310774, -567869.661801) 57\n    test 154 _plumbTo5(4680172.356713349, 3934108.248885277, -12216049.126176806): (2177456.956147, 1836953.284537, -5703973.450785, 7284831.701745) 53\n    test 155 _plumbTo5(-11233201.5712916, 6234031.774633325, 2200909.912500357): (-5478411.907088, 3050833.099543, 1077077.210703, 6671833.168324) 51\n    test 156 _plumbTo5(-11715241.42141346, -10821620.410300551, 0.0): (-4668119.327083, -4329550.547309, 0.0, 9581696.139952) 53\n    test 157 _plumbTo5(-10345293.423252314, 0.0, -10870372.84072365): (-4381253.482469, 0.0, -4621478.658329, 8638197.203006) 53\n    test 158 _plumbTo5(-7557919.112373196, -11824465.154778786, -8112109.980877586): (-2962336.280569, -4653637.304907, -3192560.055644, 9835757.473797) 53\n    test 159 _plumbTo5(1838805.8848315026, -6725371.874146875, -11338156.124049723): (878072.411204, -3222840.9156, -5433254.316061, 6932430.835206) 53\n    test 160 _plumbTo5(4963022.036653666, -7903436.513628428, 4517677.539411903): (3044634.97533, -4861105.025942, 2778629.195588, 3995031.782124) 54\n    test 161 _plumbTo5(-8457240.198937353, 4465676.5419738265, 3454646.1876322697): (-5288403.367483, 2799487.292288, 2165664.890427, 3805152.59414) 52\n    test 162 _plumbTo5(0.0, -11746093.313145366, -7753017.004196427): (0.0, -5323340.222224, -3513632.219973, 7695722.228332) 53\n    test 163 _plumbTo5(-11330258.40928789, -8840032.800537905, 3934021.6803214545): (-4833061.479002, -3785417.937653, 1684578.516197, 8533621.383191) 52\n    test 164 _plumbTo5(896051.3721805144, -12424974.283212215, -11664464.01489593): (333488.669933, -4643875.404912, -4359572.240515, 10687535.748865) 55\n    test 165 _plumbTo5(-11487978.414727544, 4802532.579191126, -7527288.768773187): (-5018370.895409, 2105895.452992, -3300651.805118, 8184872.220563) 52\n    test 166 _plumbTo5(-9546307.350822354, 4184538.924485122, 3361649.2321092547): (-5541804.863402, 2436070.68603, 1956999.371538, 4589795.483837) 52\n    test 167 _plumbTo5(3304719.1006247634, 6368069.492745702, 5147486.989470732): (2382176.324136, 4598995.150383, 3717472.520953, 2454720.062131) 49\n    test 168 _plumbTo5(-11018841.687343763, -10458281.327678155, 1715534.1896014542): (-4580406.544453, -4364532.4739, 715931.106356, 8921122.603472) 52\n    test 169 _plumbTo5(3689058.5582935237, 5794731.588921194, -12171672.035017816): (1677443.495773, 2644603.971725, -5554850.5793, 7599488.492078) 54\n    test 170 _plumbTo5(-10633023.927465683, 5600503.720165909, -10521933.62404787): (-4230098.528732, 2237084.904542, -4202862.773683, 9604202.007609) 53\n    test 171 _plumbTo5(1581203.1457984832, 972784.2195132434, -11582061.407866646): (857161.119854, 528969.075136, -6297893.034445, 5351975.722701) 54\n    test 172 _plumbTo5(2258768.8877436225, -10545885.529490544, -11638568.100146323): (904335.151273, -4239307.382901, -4678490.005432, 9489473.417954) 54\n    test 173 _plumbTo5(5449452.583609067, 4374805.24215859, 0.0): (4962521.845408, 3986293.169835, 0.0, 622931.115089) 55\n    test 174 _plumbTo5(0.0, -12044606.76119266, -11107727.393653879): (0.0, -4688878.45938, -4324100.12185, 10006214.959356) 53\n    test 175 _plumbTo5(1391615.2762485908, 4643471.617773707, -8524542.497803029): (902989.115857, 3020177.55943, -5544436.689757, 3428537.552897) 55\n    test 176 _plumbTo5(4553332.79516834, 0.0, -11948204.910893947): (2263714.441299, 0.0, -5960198.641149, 6410816.741483) 46\n    test 177 _plumbTo5(-6991240.9522123765, 3573758.163707412, -11499098.86986609): (-3191114.176552, 1637205.196693, -5267888.77311, 7551104.566556) 54\n    test 178 _plumbTo5(4346071.768838822, -12676369.788059339, -8625714.865661299): (1732485.105983, -5073723.993416, -3452401.680407, 9560032.826084) 54\n    test 179 _plumbTo5(-11796704.490959167, 4693605.909583221, -7755512.678621262): (-5039630.336279, 2012890.588977, -3325972.201965, 8512644.395034) 52\n    test 180 _plumbTo5(-9857935.929440495, -7083469.29429921, -7597293.530919445): (-4375144.938277, -3155581.107273, -3384441.033989, 7952196.477921) 53\n    test 181 _plumbTo5(-7849265.43363731, -12296239.547632324, -11695203.666485839): (-2666327.692743, -4195550.606205, -3990415.860312, 12322652.315549) 54\n    test 182 _plumbTo5(5782789.149559475, 4230398.681706039, -10100876.341130221): (2968611.562144, 2178815.561377, -5202278.543157, 6010395.093456) 54\n    test 183 _plumbTo5(-6721627.728424339, 3921334.050215278, 4341917.669793846): (-4797940.587727, 2804468.92205, 3105243.492973, 2545058.535557) 54\n    test 184 _plumbTo5(3103613.487675563, 3353974.9701309437, 6140525.238593257): (2582394.320743, 2793864.508925, 5115044.92371, 1279454.190248) 56\n    test 185 _plumbTo5(4871989.8030514065, 1511221.8994557532, -11374991.639695557): (2484500.466358, 773203.931791, -5819856.095636, 6091330.459456) 55\n    test 186 _plumbTo5(3983476.357183724, -11896358.651329251, -8874776.080755137): (1646939.314496, -4937934.337559, -3683690.128022, 8990353.032611) 53\n    test 187 _plumbTo5(-12232241.75844025, -8896123.163864251, -12061095.74698321): (-4016778.735414, -2934526.024306, -3978483.447105, 12975480.52009) 51\n    test 188 _plumbTo5(6051890.922149057, -9138866.342165468, -7899662.153607158): (2846953.972979, -4314501.247901, -3729423.981743, 7137016.591055) 53\n    test 189 _plumbTo5(0.0, -12018001.797308534, -9669847.362812674): (0.0, -4969484.39998, -3998463.12413, 9046888.784727) 53\n    test 190 _plumbTo5(1104159.7450067785, -8933322.846628752, -8232288.85554826): (575505.363003, -4671223.175101, -4304608.312774, 5819935.009237) 55\n    test 191 _plumbTo5(-12285698.649100646, -6468839.019335532, 1111825.1234923722): (-5606534.170441, -2962859.976193, 509232.485363, 7567446.403608) 51\n    test 192 _plumbTo5(6164586.315447328, -6570993.547312566, -7009338.728096933): (3433836.285126, -3671148.330678, -3916009.463584, 5043290.983795) 54\n    test 193 _plumbTo5(5810856.18558647, 0.0, 5443736.935053998): (4643539.338101, 0.0, 4356032.71558, 1595534.108531) 53\n    test 194 _plumbTo5(3045291.2748601795, -12047166.523940891, 4145312.0264436): (1477707.357284, -5866107.404541, 2018447.381737, 6722080.361991) 53\n    test 195 _plumbTo5(-12310686.861604113, 4490997.749010969, 4706333.140706941): (-5620100.827678, 2057758.070922, 2156398.283032, 7562193.106949) 51\n    test 196 _plumbTo5(0.0, -10417005.95004532, 1096043.9416744518): (0.0, -6343372.094827, 667423.529425, 4096121.121766) 55\n    test 197 _plumbTo5(-9328658.157408016, -8727445.91510853, -7164361.624406569): (-4047787.679128, -3801383.053863, -3120517.243101, 8276857.235783) 53\n    test 198 _plumbTo5(4004540.7175387996, -11570302.120248156, -9648174.197345335): (1632110.000481, -4734504.672948, -3947929.189058, 9211370.549612) 54\n    test 199 _plumbTo5(4951059.590957711, -10579905.153037313, 0.0): (2695071.612036, -5776786.518702, 0.0, 5306545.993067) 54\n    test 200 _plumbTo5(-9817215.707186649, 1404424.6605718988, -7635711.877316512): (-4986241.366763, 715685.986293, -3891068.931154, 6151018.194862) 52\n    test 201 _plumbTo5(-9226958.012842577, -11904773.189821461, 1232606.3717949751): (-3879997.259142, -5025614.86624, 520339.719152, 8741860.918991) 53\n    test 202 _plumbTo5(-9294215.903196817, -9475838.607438505, -7258008.370200141): (-3904243.12217, -3996117.310094, -3060782.896861, 8757616.899067) 53\n    test 203 _plumbTo5(1813071.5166954175, -11870699.784259336, 0.0): (959984.408777, -6305237.986816, 0.0, 5630463.802609) 55\n    test 204 _plumbTo5(-8070414.213571079, 2121751.216468508, -11940859.681137668): (-3520659.244601, 929119.789927, -5228865.699716, 8195944.314347) 53\n    test 205 _plumbTo5(1983182.8093028092, -7201637.66773865, 3707586.824689597): (1514301.762836, -5507719.018525, 2835499.643779, 1962076.929429) 55\n    test 206 _plumbTo5(5748153.737118241, -6882237.916418789, 2587629.85032861): (3918240.471327, -4701352.809943, 1767633.784285, 2962640.031508) 54\n    test 207 _plumbTo5(3599567.4561901274, 3568156.378792255, 5087296.333534707): (3192628.239273, 3167175.349451, 4515586.787491, 808230.856373) 55\n    test 208 _plumbTo5(6332182.791791897, 650768.1906614412, 5229220.500981262): (4889934.279374, 503316.759349, 4044360.595285, 1872355.65326) 53\n    test 209 _plumbTo5(-7686777.522571826, 5938745.815625527, 3226655.8410251727): (-4775676.603719, 3699069.150747, 2009771.869735, 3869297.96249) 52\n    test 210 _plumbTo5(-11334586.650609732, 3226213.631890666, -9803475.289560119): (-4699110.593827, 1342813.41715, -4080346.4914, 8962753.042975) 53\n    test 211 _plumbTo5(1209250.1021613986, -7927451.295950009, -9884218.82879363): (603947.984131, -3972655.39577, -4953189.093461, 6349949.253097) 54\n    test 212 _plumbTo5(-9468560.73748405, -7719648.903467059, 5285089.176401713): (-4521609.402029, -3699428.974742, 2532704.373933, 6943350.624269) 53\n    test 213 _plumbTo5(-11609395.379492946, -12479358.161318503, -8004658.667638679): (-3916521.929023, -4228849.152327, -2712479.469611, 12460271.325154) 53\n    test 214 _plumbTo5(-7482168.509654696, -10663969.206387935, -6775795.621459396): (-3238104.211183, -4632777.701726, -2943591.132153, 8311025.447159) 54\n    test 215 _plumbTo5(-12051586.67131921, -7937133.918586954, 6171101.6767646205): (-4880071.659805, -3226907.639097, 2508879.900608, 9328918.881743) 50\n    test 216 _plumbTo5(2693704.1644080514, 5886511.878573126, -7713610.831206213): (1701853.791801, 3728264.716598, -4885431.688261, 3693290.570535) 54\n    test 217 _plumbTo5(4191881.2603775556, 5756491.153644105, 3844435.861708639): (3297512.922422, 4534806.33283, 3028527.346869, 1719917.216012) 55\n    test 218 _plumbTo5(-7620050.690786623, 6233697.178296718, -11376300.748524757): (-3218491.145035, 2643199.220824, -4823694.2317, 8671911.795086) 53\n    test 219 _plumbTo5(-10402923.998065077, -9278259.065432366, -10991960.007401204): (-3722932.992823, -3334840.833801, -3950732.720985, 11380921.834595) 52\n    test 220 _plumbTo5(1664289.6338429423, -10314363.339718409, -11403226.716545999): (683673.150532, -4253884.829219, -4702896.915317, 9087652.497142) 54\n    test 221 _plumbTo5(-7218119.32792659, 1021119.5917858669, 2969411.4999289806): (-5831133.043799, 825974.955578, 2401921.639022, 1511243.568599) 53\n    test 222 _plumbTo5(2362590.260898539, -11179920.812016979, 4029496.2855799953): (1239737.875911, -5885318.850543, 2121179.956116, 5738926.608889) 55\n    test 223 _plumbTo5(-6425902.437780579, 0.0, -7204483.762955237): (-4233887.154159, 0.0, -4757752.759748, 3285030.229037) 53\n    test 224 _plumbTo5(-7027549.803612396, 1892547.8059282005, 2643227.812884008): (-5771696.602951, 1556211.005249, 2173474.378512, 1382374.0428) 53\n    test 225 _plumbTo5(2231918.1899190005, 1142355.6533181877, -8953604.648739627): (1527716.907525, 783588.596899, -6141602.328426, 2920953.662136) 55\n    test 226 _plumbTo5(-6712867.954197352, -10099305.754589057, -6972710.889221444): (-3049882.60141, -4605349.612886, -3179563.898031, 7615049.56507) 53\n    test 227 _plumbTo5(-11544512.912700232, 5172690.252464141, -6575481.046907441): (-5146737.608908, 2314695.737583, -2942386.38478, 7892973.983796) 52\n    test 228 _plumbTo5(-7231418.854726524, -6931901.764431111, 5928608.696365689): (-3949987.12744, -3797969.170954, 3248235.531947, 5270078.555566) 53\n    test 229 _plumbTo5(2641171.1753598885, -8793189.37091239, -6725045.423073929): (1475827.679651, -4928056.107131, -3768948.901374, 5003577.445727) 54\n    test 230 _plumbTo5(0.0, -9577834.41768268, 888799.0753286064): (0.0, -6351100.567623, 589361.88746, 3240597.779516) 55\n    test 231 _plumbTo5(4002145.9929036815, 2688128.1429674844, 4846498.54240657): (3728737.130986, 2505637.898739, 4517475.240442, 465092.924316) 56\n    test 232 _plumbTo5(3585868.545969172, 1409502.4515369476, 2541452.690286451): (4950202.413631, 1940818.862431, 3499490.281395, -1749725.70905) 53\n    test 233 _plumbTo5(-8384452.668034479, 1341358.3925355002, 5593378.076872706): (-5243384.864758, 840963.227664, 3506733.764323, 3804048.731667) 52\n    test 234 _plumbTo5(-11127395.128320502, -7531662.078340402, -11376309.34465787): (-4015505.65089, -2729654.017282, -4122988.207916, 11236054.506381) 53\n    test 235 _plumbTo5(3643497.5895474995, -7089488.769009512, -10173411.609088594): (1792017.513542, -3498846.225523, -5020786.16202, 6547537.044166) 54\n    test 236 _plumbTo5(5284647.583569344, 3370368.361303387, 2734738.991192815): (4918192.413272, 3138118.630801, 2546286.185455, 473015.633089) 50\n    test 237 _plumbTo5(2165182.6086123274, -11519500.837459859, -9758941.874604877): (901938.174806, -4817510.368655, -4081184.069338, 8874085.667761) 54\n    test 238 _plumbTo5(-12600826.927904561, -9290879.419657387, -12241523.357668605): (-4027695.375886, -2983357.849127, -3930768.977006, 13503779.150543) 50\n    test 239 _plumbTo5(5612095.245443665, -10677594.811703626, -11820492.387762226): (2110828.183871, -4032984.994641, -4464602.574506, 10512793.425261) 54\n    test 240 _plumbTo5(4915145.849724457, -10885520.301474974, -6803086.4809331875): (2272648.496157, -5051467.360276, -3156961.182649, 7369748.684664) 54\n    test 241 _plumbTo5(-6728975.719938926, 3345234.81829062, -12683648.048361583): (-2900434.964377, 1447455.164183, -5488040.230257, 8368755.212366) 54\n    test 242 _plumbTo5(4910584.480358762, -12653948.216023926, 3085021.47222811): (2242049.885102, -5798659.883821, 1413691.381391, 7543831.869565) 54\n    test 243 _plumbTo5(-8976906.995057743, -9619108.708378227, 5341574.496066876): (-4017806.465846, -4321285.931711, 2399618.549335, 7830370.93785) 53\n    test 244 _plumbTo5(-8463830.60810678, -7621108.048355309, -12579467.635422356): (-3168636.328414, -2865193.748246, -4729249.094881, 10596401.956511) 53\n    test 245 _plumbTo5(1096467.0995059202, -11549861.822415227, 0.0): (600978.394585, -6349819.993803, 0.0, 5223594.937973) 54\n    test 246 _plumbTo5(-10948589.651644278, 4096868.3982894733, -9856144.814623823): (-4550546.687626, 1709491.36288, -4112599.499603, 8923162.873349) 52\n    test 247 _plumbTo5(4619417.249218382, 5237425.25954452, 3282666.6246967996): (3810828.926746, 4325750.377186, 2711244.825867, 1345915.687753) 55\n    test 248 _plumbTo5(-10352564.08620045, 2632384.685482822, -12615030.119492823): (-3979375.679008, 1016055.563474, -4869120.711095, 10160175.336446) 53\n    test 249 _plumbTo5(-6374498.1621567765, 5714309.31746465, -12658681.207655726): (-2650451.17611, 2385319.632571, -5284035.74732, 8907081.112355) 54\n    test 250 _plumbTo5(-9547671.32285483, 5249547.247491227, -10732297.281332353): (-3967173.537695, 2189855.357686, -4476934.281938, 8923745.63986) 53\n    test 251 _plumbTo5(-11972987.62530657, -12507480.894571241, 1919466.9395276478): (-4366969.326822, -4581483.837835, 703089.976087, 11052262.963641) 53\n    test 252 _plumbTo5(1652783.0323908583, 2840836.833053788, 0.0): (3220011.208786, 5499562.319795, 0.0, -3086263.982672) 52\n    test 253 _plumbTo5(6115935.680307476, 5225325.066884209, 4422997.138710556): (4238219.612231, 3628533.76556, 3071366.203986, 2811132.561087) 49\n    test 254 _plumbTo5(4786881.182332999, 5664841.95346354, -8266982.897206812): (2740994.147522, 3253066.066256, -4747315.184507, 4731847.15488) 54\n    test 255 _plumbTo5(-6496617.750344593, 5554441.1092062695, 1471685.403438614): (-4764933.099421, 4081208.542633, 1081336.529752, 2306841.60025) 54\n    test 256 _plumbTo5(-12176778.11646319, -9682834.344611239, 4347916.439438347): (-4790470.31358, -3824924.736874, 1717496.315524, 9787326.394866) 52\n    test 257 _plumbTo5(-9365644.216718012, 4733451.038753265, -11073116.001735907): (-3901241.006007, 1979474.085869, -4630588.989784, 8885395.084405) 52\n    test 258 _plumbTo5(4450309.889617256, 645982.6533403223, 3807808.3053228823): (4809066.396238, 697679.685853, 4112548.773739, -473545.7394) 56\n    test 259 _plumbTo5(-10897654.174125204, 3427500.0593593866, 4452955.484309489): (-5650155.448166, 1782842.575288, 2316217.322187, 5899728.052404) 52\n    test 260 _plumbTo5(-10300722.762891443, 4646709.354523863, 0.0): (-5795024.708596, 2621875.532137, 0.0, 4939763.857186) 52\n    test 261 _plumbTo5(-6407802.803643308, -11779837.799284488, 6016502.484862392): (-2770429.304206, -5112551.894435, 2611181.883109, 8323424.518318) 49\n    test 262 _plumbTo5(-9312220.916544143, 0.0, 2930677.098050242): (-6064270.366404, 0.0, 1912975.713433, 3403659.631104) 50\n    test 263 _plumbTo5(4223812.965309883, 4281649.191668366, 2485617.640313916): (4133584.137102, 4190786.705375, 2432868.281192, 138490.89408) 58\n    test 264 _plumbTo5(2997827.5860604886, 2363371.7748296508, 3693859.292852399): (3599054.380706, 2833535.475957, 4428726.434305, -1059508.036801) 55\n    test 265 _plumbTo5(-12671667.096779136, -8014332.614031527, -12514806.489256885): (-4121763.16835, -2618732.065372, -4089228.926937, 13160688.421384) 52\n    test 266 _plumbTo5(843842.4429774315, 5991376.498376857, 5431653.017581945): (660983.193097, 4699901.98138, 4260809.849692, 1752774.274433) 55\n    test 267 _plumbTo5(6048815.4644721355, -6531440.6165109, 2680947.655849851): (4138881.420978, -4478622.839951, 1838318.875985, 2927786.21742) 54\n    test 268 _plumbTo5(4879174.123259943, 6178552.909205879, -9312714.500258692): (2543785.883293, 3231623.200863, -4870860.478112, 5819664.946658) 54\n    test 269 _plumbTo5(5004240.984960998, 5008152.657427486, -7621306.588594056): (3059892.632886, 3070304.181009, -4672287.837379, 4028952.571922) 54\n    test 270 _plumbTo5(1028902.8176837482, 1463749.009664159, -11899885.427998018): (543636.004436, 775853.372204, -6307414.004629, 5655477.071767) 55\n    test 271 _plumbTo5(-7824340.925363246, 0.0, 6317410.509504235): (-4947745.089333, 0.0, 4004698.984614, 3690994.202275) 50\n    test 272 _plumbTo5(2676863.5805767775, -11327824.769266207, 4593035.990907264): (1359964.170989, -5774128.632267, 2341181.627765, 6135846.552017) 55\n    test 273 _plumbTo5(2249619.3764058473, 0.0, 2000528.005466659): (4772982.699562, 0.0, 4212824.696466, -3355833.593856) 53\n    test 274 _plumbTo5(4956193.912239468, -6662625.684179544, -12509472.725925844): (2097393.079693, -2830507.469295, -5314377.642959, 8638707.395552) 54\n    test 275 _plumbTo5(-7710884.382492995, -8115183.079708684, -10228275.549669709): (-3231300.879861, -3414058.684292, -4302982.275302, 8790696.179798) 51\n    test 276 _plumbTo5(-11910621.648411252, 1849226.3777106311, -11164643.952148305): (-4606783.054862, 718203.441796, -4336071.648631, 10062537.989322) 53\n    test 277 _plumbTo5(-8963429.03901859, -12098854.85488883, -12528055.925180355): (-2906246.229705, -3940759.795174, -4080495.9656, 13213827.903356) 53\n    test 278 _plumbTo5(927303.6460785953, -8533293.54233783, 4443040.206372032): (610541.887073, -5631299.878717, 2932033.79078, 3287102.922578) 54\n    test 279 _plumbTo5(-6431337.940867692, -7913672.569001737, 5828173.463683117): (-3481478.58698, -4297161.58015, 3164693.971997, 5373541.192067) 54\n    test 280 _plumbTo5(-8448735.745283416, 5129243.357844096, -10571551.163388707): (-3710087.82749, 2260926.228049, -4659791.368339, 8101291.941429) 51\n    test 281 _plumbTo5(5393086.038674854, -8494853.68575136, 5585824.584238706): (2979754.3005, -4707685.779418, 3095527.08197, 5135016.307574) 54\n    test 282 _plumbTo5(-11205486.606434723, -7011822.282899194, -10835770.19866757): (-4165498.890505, -2617612.609663, -4045090.906694, 10723051.381917) 52\n    test 283 _plumbTo5(6275896.587395679, -10723555.081638275, 3233841.235540427): (3107296.274643, -5327485.16049, 1606561.516206, 6465727.942069) 53\n    test 284 _plumbTo5(3125485.316489174, -10929776.597293055, -12044882.966157196): (1198721.510979, -4209356.554006, -4638751.976627, 10184657.115216) 54\n    test 285 _plumbTo5(1128407.9171078762, -11414403.065658463, 1389920.7991218064): (621055.484164, -6301329.382455, 767299.227734, 5175769.179769) 55\n    test 286 _plumbTo5(3289455.1444503507, -10532590.717592202, 768720.1252257226): (1891368.133389, -6073373.389023, 443260.456245, 4684569.400707) 54\n    test 287 _plumbTo5(-8273239.3690780625, 4551919.260081756, 2824563.0226685693): (-5337507.566666, 2943707.935669, 1826619.417213, 3492958.104434) 52\n    test 288 _plumbTo5(-12133632.704022642, 2746254.8093428193, 2446007.3482782515): (-6083621.960558, 1381562.116047, 1230502.798798, 6320005.336468) 51\n    test 289 _plumbTo5(4775429.171595646, -9671093.87977823, -12524798.659580927): (1835296.133104, -3732249.080536, -4833479.934748, 10152371.32696) 54\n    test 290 _plumbTo5(-10435782.82633078, -7925112.822431733, -8403700.54123353): (-4260067.658051, -3248090.663106, -3444194.209003, 9198407.317465) 53\n    test 291 _plumbTo5(3603584.0845118295, 0.0, -10120993.933385288): (2133439.195914, 0.0, -6008383.520808, 4367481.013023) 54\n    test 292 _plumbTo5(-9664916.035389349, -7917807.310617949, -12320730.836396314): (-3499114.577165, -2878933.301722, -4479784.042203, 11175321.271853) 52\n    test 293 _plumbTo5(-11223451.251595035, -11348169.077705335, -12213872.07898085): (-3546933.966741, -3602915.002067, -3877707.797474, 13726234.489077) 52\n    test 294 _plumbTo5(-6811282.166974648, -12177324.354896916, -8996003.148229187): (-2606422.576339, -4679225.458155, -3456732.925814, 10226722.1454) 54\n    test 295 _plumbTo5(-11154863.461440096, -8947080.852138057, -11618316.715300346): (-3846146.833057, -3098561.610353, -4023608.842631, 12054132.22703) 51\n    test 296 _plumbTo5(4191966.3726614984, 3123849.0923887882, 2947354.2394098826): (4448807.200943, 3313881.641178, 3126654.283481, -366371.514279) 46\n    test 297 _plumbTo5(5665049.081532614, 2566892.2880729376, -9480432.800548682): (3177104.472307, 1443841.706181, -5332562.213074, 4965474.941886) 54\n    test 298 _plumbTo5(5556124.743367095, 1168361.8576344524, 1187537.9875167399): (6091100.197387, 1280029.85706, 1301041.50474, -558168.009583) 54\n    test 299 _plumbTo5(2276563.482327411, -8689794.726123603, -7465168.684773928): (1239389.701005, -4745367.133163, -4076576.523879, 5302527.257983) 55\n    test 300 _plumbTo5(-8734090.01152988, 0.0, 4418867.843251729): (-5673436.483401, 0.0, 2877136.978074, 3427029.921067) 52\n    test 301 _plumbTo5(1444387.4150171918, 0.0, 4211625.268281281): (2073822.401778, 0.0, 6029360.501319, -1923629.324996) 55\n    test 302 _plumbTo5(-11133071.204268023, -11781972.996607397, -11485371.789095623): (-3559439.343785, -3784211.083498, -3688891.806325, 13494784.003409) 53\n    test 303 _plumbTo5(-9128602.027238317, -8530971.77034427, 3486461.3258541655): (-4473434.198708, -4194949.275765, 1714384.438693, 6603933.303668) 53\n    test 304 _plumbTo5(-9720915.901739083, 3730342.60333391, 4413725.624805318): (-5464855.737041, 2103296.034562, 2488587.166636, 4946462.04328) 52\n    test 305 _plumbTo5(-10972481.63377289, -7697329.818069239, 6184679.253598231): (-4724306.631505, -3326894.662448, 2673072.410756, 8394746.984105) 52\n    test 306 _plumbTo5(-12027956.281505307, 1110329.7659182232, -9924933.257068772): (-4889552.230375, 453174.480113, -4050749.766503, 9267939.207164) 52\n    test 307 _plumbTo5(-8103963.2829771275, -10799194.916861724, -11397381.355404545): (-2913442.831149, -3899190.416976, -4115115.734203, 11295262.601508) 54\n    test 308 _plumbTo5(937760.1549680583, 4827669.481438421, -8889403.069840351): (587287.716319, 3031022.799018, -5581111.835477, 3780947.119846) 55\n    test 309 _plumbTo5(-11922254.151162934, -11747879.35310438, -7441515.373637279): (-4135065.269048, -4092556.279272, -2592330.408245, 11948174.625401) 48\n    test 310 _plumbTo5(-7450856.414664825, -9366628.03196191, -11030656.150018612): (-2908303.9347, -3671136.457607, -4323274.43127, 9902644.941014) 50\n    test 311 _plumbTo5(1098222.4362153925, -8032723.312762036, 0.0): (862730.359678, -6319374.354403, 0.0, 1729456.900655) 55\n    test 312 _plumbTo5(1299127.4897925493, 2885681.3581270934, -12324231.3438349): (649043.363274, 1446551.021563, -6177894.257751, 6345956.592424) 53\n    test 313 _plumbTo5(4456791.842035057, -9415133.72987674, -12287162.106862785): (1757647.802402, -3728273.817222, -4865496.206044, 9731745.93566) 53\n    test 314 _plumbTo5(2071973.9900840144, -7049913.407619529, -7891732.311576463): (1222207.569923, -4170071.603383, -4667971.341485, 4405476.88435) 55\n    test 315 _plumbTo5(2046982.703788181, 6049444.90896574, 926986.7966164164): (2022381.277479, 5977223.284321, 915919.674686, 77095.229623) 59\n    test 316 _plumbTo5(5396414.831406125, -12570693.831675846, 764714.9246019324): (2503220.741109, -5852227.502514, 356005.267035, 7326350.076566) 54\n    test 317 _plumbTo5(-9197102.75829913, 4846690.558383889, 2564943.113154864): (-5460989.53354, 2885713.750285, 1527150.493499, 4345225.608819) 52\n    test 318 _plumbTo5(0.0, 2318329.077963764, 3188269.6439349214): (0.0, 3751090.547009, 5158737.156961, -2436297.938897) 51\n    test 319 _plumbTo5(-12684552.315130716, 5543633.716783456, -11039834.326458577): (-4551950.193988, 1997987.751458, -3978824.221966, 11338813.265417) 53\n    test 320 _plumbTo5(-6981850.679551049, -10229708.153014995, -12072336.553961737): (-2564251.063275, -3773153.649096, -4452732.082674, 10920652.669628) 54\n    test 321 _plumbTo5(4717153.364383534, -11550204.852326058, -9687614.149053277): (1897251.699922, -4664268.017528, -3912055.079591, 9419397.754364) 54\n    test 322 _plumbTo5(0.0, -9149649.80780371, -12025931.976038957): (0.0, -3862119.471301, -5076150.223256, 8732550.799781) 52\n    test 323 _plumbTo5(-10400971.886727747, -6619927.338470895, -9929357.98233453): (-4175137.323295, -2668094.583735, -4001874.608708, 9461134.03759) 53\n    test 324 _plumbTo5(-11028176.160065496, -9020134.774358388, -12389868.361876594): (-3710317.814977, -3048330.981378, -4187062.798472, 12509976.435296) 53\n    test 325 _plumbTo5(2160858.3727727593, -12142093.540891415, 1538265.3958220098): (1105327.992916, -6231419.001309, 789441.603717, 6050698.71728) 54\n    test 326 _plumbTo5(-11778932.210256143, 2715666.6502514402, 3389402.4416597723): (-5964418.038968, 1379692.296524, 1721964.639273, 6194655.062775) 51\n    test 327 _plumbTo5(6242300.4629256865, -11609606.987093499, -11621007.296069987): (2256327.514534, -4214473.248211, -4218552.76137, 11196978.007461) 54\n    test 328 _plumbTo5(5053610.033101153, 5726798.200078992, 1099811.8257685653): (4168403.736804, 4729243.125054, 908231.344581, 1347371.290878) 55\n    test 329 _plumbTo5(5294780.00028327, 6375398.744487379, 3043351.136814746): (3816120.677121, 4603600.762269, 2197554.80587, 2457859.417706) 51\n    test 330 _plumbTo5(2365954.408033079, 2905572.0641120616, 4151171.3655798878): (2699030.899007, 3311481.322775, 4731105.714541, -782320.98541) 57\n    test 331 _plumbTo5(-8069919.063106484, -11908872.159137841, -9885496.27648023): (-2936911.077608, -4352645.583092, -3613059.39678, 11080965.456924) 54\n    test 332 _plumbTo5(5850495.9458770165, 5722036.744563128, 5843952.116368118): (3700618.844724, 3628327.771535, 3705604.212589, 3684850.142326) 53\n    test 333 _plumbTo5(-10331153.415166039, -6434233.675718262, 0.0): (-5396216.804492, -3371586.314296, 0.0, 5808046.850001) 53\n    test 334 _plumbTo5(3164853.877214977, 4939341.954363132, 1068091.655227124): (3383371.408421, 5277929.282849, 1141310.068827, -409575.666448) 56\n    test 335 _plumbTo5(5498517.17816853, -8925354.25639353, 2445953.3664836087): (3248545.573968, -5287680.224561, 1449052.124429, 4391908.089656) 54\n    test 336 _plumbTo5(-8710547.801684523, -10332953.497187626, -8930947.738230154): (-3416510.721256, -4069489.151947, -3517282.003837, 9826779.273841) 54\n    test 337 _plumbTo5(0.0, -11550920.057393795, -7768721.120777687): (0.0, -5292693.766022, -3559627.516598, 7542006.714579) 53\n    test 338 _plumbTo5(0.0, -9803080.937976882, 4458103.176905968): (0.0, -5806187.167737, 2640430.082921, 4390796.657461) 54\n    test 339 _plumbTo5(-7276509.183351506, -8917367.667206984, 6249199.0544481715): (-3531706.297866, -4343135.080566, 3043589.887632, 6724810.966727) 50\n    test 340 _plumbTo5(2823245.411586701, 4582795.479539332, 5350381.393488043): (2369418.395217, 3850287.623379, 4495167.868088, 1214049.790639) 56\n    test 341 _plumbTo5(-12528344.906528033, -12365699.29317108, -12617957.75277874): (-3673786.830107, -3643403.961568, -3717671.312057, 15287142.745043) 51\n    test 342 _plumbTo5(0.0, -7535383.558510379, 1584260.232439418): (0.0, -6241924.809388, 1312314.882847, 1321737.420536) 56\n    test 343 _plumbTo5(5681134.892072343, 0.0, 6021997.242841809): (4366420.627852, 0.0, 4635589.853592, 1910654.088398) 53\n    test 344 _plumbTo5(-9036049.386057062, -6596315.918400789, 3304156.40609904): (-4924735.110083, -3606086.672545, 1806304.605855, 5299805.282658) 53\n    test 345 _plumbTo5(-7336909.023578265, 6090889.994283991, 4150459.4186733067): (-4486421.146722, 3734250.570018, 2544574.576346, 4032108.2127) 53\n    test 346 _plumbTo5(4362760.760163215, 5289584.135459404, -11656574.830657663): (2050393.728071, 2494868.309682, -5497838.988507, 7147552.379056) 52\n    test 347 _plumbTo5(-12461395.797481904, -7119758.596486539, -6921685.5837864615): (-4970253.759135, -2851253.421807, -2771894.543209, 9568600.270959) 53\n    test 348 _plumbTo5(-7566143.677164096, 4543104.188867149, -9082596.857817126): (-3797966.248649, 2288156.447948, -4574444.100018, 6293440.373492) 54\n    test 349 _plumbTo5(4842339.5176830925, -8813228.308928099, -6767263.109535832): (2539964.542317, -4637648.671583, -3560995.05181, 5746003.018881) 52\n    test 350 _plumbTo5(-9972761.31748726, 4662530.453764608, 4256112.435655717): (-5371604.589518, 2519181.262485, 2299569.004666, 5439912.792356) 52\n    test 351 _plumbTo5(3016605.4966718997, 1304241.0110947676, -11385253.216890456): (1618619.36137, 702003.401772, -6128012.702643, 5473173.960073) 54\n    test 352 _plumbTo5(-11724918.431583608, -9261068.189347908, -7807596.816657645): (-4419360.915762, -3505368.646064, -2955180.890694, 10490242.521891) 53\n    test 353 _plumbTo5(-12134588.631240936, 4242014.558076039, 2342159.198180888): (-5903546.269141, 2070913.070057, 1143408.0531, 6706457.701156) 50\n    test 354 _plumbTo5(0.0, 0.0, 3985743.815150218): (0.0, 0.0, 6378318.0, -2392574.18485) None\n    test 355 _plumbTo5(-7921057.044654415, -10864037.640105005, 2687706.006705687): (-3671872.603697, -5054343.586541, 1250403.451862, 7339887.740521) 53\n    test 356 _plumbTo5(-10775405.47248439, -9368474.21826664, 5537083.69858114): (-4471463.249369, -3902980.164961, 2306763.151984, 8946858.869618) 53\n    test 357 _plumbTo5(-8604739.504291004, -10561886.97668027, -7556399.07722975): (-3509688.285391, -4325183.658557, -3094370.379341, 9206829.818254) 52\n    test 358 _plumbTo5(3925721.009644486, 1893536.4839279293, 1316232.4249157286): (5489642.130955, 2640807.359749, 1835690.209158, -1809447.270617) 54\n    test 359 _plumbTo5(-10543317.047290618, 4176583.939927537, -10467484.347941227): (-4341506.282918, 1726653.407504, -4327336.664623, 9064547.97239) 53\n    test 360 _plumbTo5(5504910.383288863, 0.0, 3941980.7186291814): (5173606.529546, 0.0, 3706233.833182, 406618.786461) 55\n    test 361 _plumbTo5(-11576418.057469497, 5150121.48029749, -7199784.914373723): (-5048956.293486, 2254728.540757, -3152034.42804, 8208248.373083) 52\n    test 362 _plumbTo5(5747634.1165411, 3019800.754534434, -12588014.348788455): (2578891.377618, 1359987.253552, -5669027.170724, 7788985.490662) 53\n    test 363 _plumbTo5(-10699975.163764765, -12469268.54123148, 5851074.412260858): (-3897604.102395, -4561587.603006, 2140447.685329, 11071242.955692) 51\n    test 364 _plumbTo5(-10008114.974938048, -11305255.24208844, -10856545.703370556): (-3418502.004548, -3878738.917149, -3724736.705294, 12224518.125847) 52\n    test 365 _plumbTo5(-11339708.501863228, 3353573.953624922, -11220486.396653067): (-4420373.384937, 1312653.581403, -4391856.30456, 9933415.493209) 53\n    test 366 _plumbTo5(-11806013.5893758, 1206482.9786856282, -9638751.028646413): (-4907741.129485, 503510.885612, -4022563.173067, 8923110.372717) 52\n    test 367 _plumbTo5(-11812031.773843225, -6532810.614432961, 1153162.7559880565): (-5542356.608309, -3076255.443169, 543010.078875, 7185324.392308) 51\n    test 368 _plumbTo5(5552167.813835973, -8437735.788774159, -12516869.811745383): (2193043.778965, -3346421.513004, -4964147.812881, 9708182.369962) 54\n    test 369 _plumbTo5(4323988.540673599, -10272313.882541187, 2984426.303452739): (2383050.041963, -5678445.211525, 1649748.547077, 5162580.395082) 54\n    test 370 _plumbTo5(-12000563.945659896, -11375329.638874426, 0.0): (-4611901.004216, -4389788.847301, 0.0, 10168093.243721) 53\n    test 371 _plumbTo5(-7084905.644767572, -9716801.529767435, -6734404.088522686): (-3267099.540117, -4497050.494859, -3116724.990249, 7410063.857837) 53\n    test 372 _plumbTo5(-9299492.807924783, 0.0, -10038494.747635415): (-4319543.019846, 0.0, -4679595.851858, 7315579.0794) 52\n    test 373 _plumbTo5(5100849.267087828, -11657175.221031226, 4787967.534215877): (2384620.222134, -5469247.26915, 2246365.243671, 7219978.861854) 53\n    test 374 _plumbTo5(4665159.392919396, 5463633.976949447, 1299180.9722421006): (4068010.18408, 4768381.775495, 1133855.890443, 931286.842985) 55\n    test 375 _plumbTo5(-8064858.445005396, -9388146.191553729, 1896093.2198699364): (-4094680.727043, -4782365.842125, 965868.406734, 6151491.034079) 53\n    test 376 _plumbTo5(-10676921.034412017, 4434243.542993603, 0.0): (-5871035.613149, 2445706.819791, 0.0, 5201039.605871) 51\n    test 377 _plumbTo5(-9023055.192998646, 3544143.0538191493, -8462620.315925544): (-4457300.455779, 1756747.779582, -4194674.045764, 6500481.793821) 53\n    test 378 _plumbTo5(3476291.033153091, -7950656.589750505, 6016638.684900147): (2094107.737736, -4802288.995187, 3634088.113927, 4183204.082504) 55\n    test 379 _plumbTo5(0.0, 3559646.7792214956, 0.0): (0.0, 6378388.0, 0.0, -2818741.220779) None\n    test 380 _plumbTo5(3095613.853824863, 3997508.4430838083, 2736568.083855892): (3432883.607156, 4429795.814097, 3032505.56924, -623058.78768) 56\n    test 381 _plumbTo5(2835926.5021857405, -9045140.68774168, 2002398.4306926245): (1862547.444274, -5954303.424435, 1318144.053108, 3311939.889531) 54\n    test 382 _plumbTo5(2312432.2162906793, -9929107.155342186, -9788039.941453634): (1039780.026627, -4481180.685756, -4417461.370345, 7755169.927366) 54\n    test 383 _plumbTo5(2677701.474612112, 3278501.0486438787, -12067198.879795307): (1331054.876184, 1635234.070052, -6018749.836018, 6410734.6895) 54\n    test 384 _plumbTo5(-9173069.786116466, 2033137.2534150574, 1300061.1115269251): (-6148182.751552, 1365722.936214, 873286.091431, 3126902.678444) 51\n    test 385 _plumbTo5(-11242456.19353453, 1362723.5105300057, 4101669.110195199): (-5933679.471218, 721525.172334, 2171700.219653, 5684982.455098) 51\n    test 386 _plumbTo5(-12251486.837373294, 1314865.8046799877, -10257127.474041311): (-4856380.179641, 523324.665104, -4082345.783758, 9666543.786563) 53\n    test 387 _plumbTo5(-6729347.354649825, -12449399.222153336, -6859252.117053115): (-2718698.294944, -5049868.071154, -2782292.201528, 9352003.490564) 54\n    test 388 _plumbTo5(-11135625.716704542, -8627513.879856825, -8846859.068641137): (-4253677.71168, -3309357.919956, -3393448.844403, 10265655.080486) 53\n    test 389 _plumbTo5(-7911438.471988227, 3565866.392270913, 697649.5073143232): (-5778364.042342, 2609170.203206, 510472.179023, 2345273.858808) 52\n    test 390 _plumbTo5(1149029.6659410016, -7426070.196785206, 1807972.6442612736): (947089.604808, -6128191.102689, 1491981.502415, 1350970.145084) 56\n    test 391 _plumbTo5(3455972.2292246306, 4869644.106263283, 0.0): (3688469.895537, 5194895.921711, 0.0, -399804.837755) 56\n    test 392 _plumbTo5(-12623751.72037495, -8608825.23727696, 3430978.0105257914): (-5123195.52213, -3507798.019804, 1397986.486447, 9295798.862573) 52\n    test 393 _plumbTo5(0.0, 4168993.1829979364, 3993212.66081889): (0.0, 4606235.374963, 4412029.224784, -605465.150678) 52\n\n    test 394 _plumbTo5: (0.545455, 1.090909, 0.818182, 3.916483)\n    test 395 _plumbTo5: None\n    test 396 _plumbTo5: 0\n\n    test 397 _plumbTo5: (1.090909, 0.545455, 0.818182, 3.916483)\n    test 398 _plumbTo5: None\n    test 399 _plumbTo5: 0\n\n    test 400 _plumbTo5: (0.742781, 1.114172, 1.485563, 3.385165)\n    test 401 _plumbTo5: None\n    test 402 _plumbTo5: 0\n\n    test 403 toTriaxial: name='WGS84', a=6378137, b=6378137, c=6356752.314245179, e2ab=0, e2bc=0.00669438, e2ac=0.00669438\n    test 404 toEllipsoid: name='_', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518\n    test 405 toEllipsoid: name='', a=2, f=-0.5, f_=-2, b=3\n\n    test 406 Triaxials: 14\n    test 407 Amalthea: name='Amalthea', a=125000, b=73000, c=64000, e2ab=0.658944, e2bc=0.231375493, e2ac=0.737856\n    test 408 Ariel: name='Ariel', a=581100, b=577900, c=577700, e2ab=0.01098327, e2bc=0.000692042, e2ac=0.011667711\n    test 409 Earth: name='Earth', a=6378173.435, b=6378103.9, c=6356754.399999999, e2ab=0.000021804, e2bc=0.006683418, e2ac=0.006705077\n    test 410 Enceladus: name='Enceladus', a=256600, b=251400, c=248300, e2ab=0.040119337, e2bc=0.024509841, e2ac=0.06364586\n    test 411 Europa: name='Europa', a=1564130, b=1561230, c=1560930, e2ab=0.003704694, e2bc=0.000384275, e2ac=0.004087546\n    test 412 Io: name='Io', a=1829400, b=1819300, c=1815700, e2ab=0.011011391, e2bc=0.003953651, e2ac=0.014921506\n    test 413 Mars: name='Mars', a=3394600, b=3393300, c=3376300, e2ab=0.000765776, e2bc=0.009994646, e2ac=0.010752768\n    test 414 Mimas: name='Mimas', a=207400, b=196800, c=190600, e2ab=0.09960581, e2bc=0.062015624, e2ac=0.155444317\n    test 415 Miranda: name='Miranda', a=240400, b=234200, c=232900, e2ab=0.050915557, e2bc=0.011070811, e2ac=0.061422691\n    test 416 Moon: name='Moon', a=1735550, b=1735324, c=1734898, e2ab=0.000260419, e2bc=0.000490914, e2ac=0.000751206\n    test 417 Tethys: name='Tethys', a=535600, b=528200, c=525800, e2ab=0.027441672, e2bc=0.009066821, e2ac=0.036259685\n    test 418 WGS84_3: name='WGS84_3', a=6378171.36, b=6378101.609999999, c=6356751.84, e2ab=0.000021871, e2bc=0.006683505, e2ac=0.00670523\n    test 419 WGS84_35: name='WGS84_35', a=6378172, b=6378102, c=6356752.314245179, e2ab=0.00002195, e2bc=0.006683478, e2ac=0.006705281\n    test 420 WGS84_3r: name='WGS84_3r', a=6378172, b=6378102, c=6356752, e2ab=0.00002195, e2bc=0.006683577, e2ac=0.00670538\n\n    testTriaxial3(pygeodesy.triaxials.triaxial3, 26.02.20)\n    test 421 Triaxial3: Triaxial3(name='', a=3, b=2, c=1, k2=0.375, kp2=0.625, volume=25.132741229, area=48.882146303, R2=1.972287405)\n    test 422 reverseLatLon: (Degrees(58.69140449), Degrees(75.11263103), None, 2.586065, 'ELLIPSOIDAL')\n    test 423 forwardLatLon: (1.0, 2.0, 3.0, 2.586065, 'ELLIPSOIDAL')\n\n    test 424 ELLIPSOIDAL: (58.691404, 75.112631, None, 2.586065, 'ELLIPSOIDAL')\n    test 425 ELLIPSOIDAL: (1.0, 2.0, 3.0, 2.586065, 'ELLIPSOIDAL')\n\n    test 426 GEOCENTRIC: (29.12663, 56.916602, None, 2.391078, 'GEOCENTRIC')\n    test 427 GEOCENTRIC: (1.0, 2.0, 3.0, 2.391078, 'GEOCENTRIC')\n\n    test 428 GEOCENTRIC_X: (28.478775, 123.624552, None, 2.391078, 'GEOCENTRIC_X')\n    test 429 GEOCENTRIC_X: (1.0, 2.0, 3.0, 2.391078, 'GEOCENTRIC_X')\n\n    test 430 GEODETIC: (68.626017, 73.851827, None, 2.391078, 'GEODETIC')\n    test 431 GEODETIC: (1.0, 2.0, 3.0, 2.391078, 'GEODETIC')\n\n    test 432 GEODETIC_X: (5.817652, 159.397221, None, 2.391078, 'GEODETIC_X')\n    test 433 GEODETIC_X: (1.0, 2.0, 3.0, 2.391078, 'GEODETIC_X')\n\n    test 434 PARAMETRIC: (50.658091, 66.523762, None, 2.391078, 'PARAMETRIC')\n    test 435 PARAMETRIC: (1.0, 2.0, 3.0, 2.391078, 'PARAMETRIC')\n\n    test 436 PARAMETRIC_X: (14.628136, 143.06191, None, 2.391078, 'PARAMETRIC_X')\n    test 437 PARAMETRIC_X: (1.0, 2.0, 3.0, 2.391078, 'PARAMETRIC_X')\n\n    test 438 Triaxial3: Triaxial3(name='Bektas', a=6378388, b=6378318, c=6356911.9461, k2=0.996735077, kp2=0.003264923, volume=1083307891664673177600, area=510097198412933.0625, R2=6371204.383189477)\n    test 439 forwardBetOmg: (4234607.381429, 3551286.590486, 3176009.080037, 1200.0, 'ELLIPSOIDAL')\n    test 440 forwardBetOmg: (4233813.533025, 3550620.827453, 3175409.655093, 0, 'ELLIPSOIDAL')\n    test 441 length: 1196.973671\n    test 442 reverseBetOmg: (Degrees(30.0), Degrees(40.0), None, 1200.0, 'ELLIPSOIDAL')\n    test 443 reverseBetOmg: (Degrees(30.0), Degrees(40.0), None, 0.0, 'ELLIPSOIDAL')\n\n    test 444 forwardCartesian: (4233813.533151, 3550620.827558, 3175409.654809, 1196.973671, 'ELLIPSOIDAL')\n    test 445 forwardCartesian: (4239665.951888, 3553574.566129, 3164352.410834, 12911.309173, 'ELLIPSOIDAL')\n\n    test 446 reverseCartesian: (4234607.381429, 3551286.590486, 3176009.080037, 1196.973671, 'ELLIPSOIDAL')\n    test 447 reverseCartesian: (4248255.186992, 3560773.833183, 3170763.143924, 12911.309173, 'ELLIPSOIDAL')  FAILED, KNOWN, expected (4234607.381429, 3551286.590486, 3176009.080037, 1200.0, 'ELLIPSOIDAL')\n\n    test 448 forwardBetaOmega_: (4233813.533025, 3550620.827453, 3175409.655093, 0, 'ELLIPSOIDAL')\n    test 449 reverseLatLon: (Degrees(30.0), Degrees(40.0), None, -0.0, 'ELLIPSOIDAL')\n    test 450 forwardLatLon: (4233813.533025, 3550620.827453, 3175409.655093, 0, 'ELLIPSOIDAL')\n\n    test 451 reverseBetOmg: (Degrees(29.94812666), Degrees(40.01497072), None, 1203.037176, 'ELLIPSOIDAL')\n    test 452 reverseBetOmg: (29°56′53.26″, 40°00′53.89″, None, 1203.037176, 'ELLIPSOIDAL')\n    test 453 reverseBetOmg: (Degrees(29.97539672), Degrees(40.03311872), None, 1387.637345, 'ELLIPSOIDAL')\n    test 454 reverseBetOmg: (29°58′31.43″, 40°01′59.23″, None, 1387.637345, 'ELLIPSOIDAL')\n\n    test 455 height4: (3909251.554667, 3909165.750567, 3170432.501602, 999.999996)\n    test 456 height4: (3909251.554667, 3909165.750567, 3170432.501602, 0, None)\n    test 457 height4: (3909251.554667, 3909165.750567, 3170432.501602, 0, None)\n\n    test 458 JFK-SIN: Triaxial3(name='WGS84_35', a=6378172, b=6378102, c=6356752.314245179, k2=0.996726499, kp2=0.003273501, volume=1083207319768789942272, area=510065621722018.25, R2=6371007.180905545)\n    test 459 JFK-SIN: -54.34889\n    test 460 JFK-SIN: (2824949.36608, -3938333.736799, 4132149.896611, 0, 'GEODETIC')\n    test 461 JFK-SIN: (40°38′23.0″, 54°20′56.0″, None, 0.0, 'GEODETIC')\n    test 462 JFK-SIN: (Degrees(40.57193395), Degrees(-54.38110954), None, 0, 'ELLIPSOIDAL')\n\n    test 463 JFK-SIN: 123.42\n    test 464 JFK-SIN: (-3511912.82574, 5322047.492059, 150275.382099, 0, 'GEODETIC')\n    test 465 JFK-SIN: (1°21′33.0″, 123°25′10.0″, None, -0.0, 'GEODETIC')\n    test 466 JFK-SIN: (1.355287, 123.419709, None, 0, 'ELLIPSOIDAL')\n    test 467 JFK-SIN: (2507237.249613, -4147833.171672, 4132151.785141, 0, 'GEODETIC_LON0')\n    test 468 JFK-SIN: (Degrees(40.56616585), Degrees(-58.87899203), None, 0, 'ELLIPSOIDAL')\n    test 469 JFK-SIN: (-3083516.921703, 5581181.10656, 150275.496647, 0, 'GEODETIC_LON0')\n    test 470 JFK-SIN: (Degrees(1.35513418), Degrees(118.9196884), None, 0.0, 'ELLIPSOIDAL')\n\n    test 471 ELLIPSOIDAL: (3339312.988437, 4478220.864583, 3067838.142785, 0, 'ELLIPSOIDAL')\n    test 472 ELLIPSOIDAL: (0.44727, 0.46133, -0.76624)\n    test 473 ELLIPSOIDAL: (Radians(6.78714104), Radians(7.21349568), Radians(3.22695739), 0, 'ELLIPSOIDAL')\n    test 474 ELLIPSOIDAL: (3339312.988437, 4478220.864583, 3067838.142785, 0, 'ELLIPSOIDAL')\n    test 475 ELLIPSOIDAL: (0.35577, 0.33613, -0.87203)  FAILED, KNOWN, expected (0.44727, 0.46133, -0.76624)\n\n    test 476 GEOCENTRIC: (3775053.602526, 4836453.809766, 1737203.829149, 0, 'GEOCENTRIC')\n    test 477 GEOCENTRIC: (0.06074, 0.18165, -0.98149)\n    test 478 GEOCENTRIC: (Radians(6.55911022), Radians(7.19121867), Radians(9.36055352), -0.0, 'GEOCENTRIC')\n    test 479 GEOCENTRIC: (3775053.602526, 4836453.809766, 1737203.829149, 0, 'GEOCENTRIC')\n    test 480 GEOCENTRIC: (0.11773, 0.25514, -0.95971)  FAILED, KNOWN, expected (0.06074, 0.18165, -0.98149)\n\n    test 481 GEOCENTRIC_X: (5353065.611375, 2253062.100284, 2627312.107704, 0, 'GEOCENTRIC_X')\n    test 482 GEOCENTRIC_X: (0.37533, 0.39753, -0.83732)\n    test 483 GEOCENTRIC_X: (Radians(7.28002857), Radians(8.7159147), Radians(4.84070319), 0.0, 'GEOCENTRIC_X')\n    test 484 GEOCENTRIC_X: (5353065.611375, 2253062.100284, 2627312.107704, 0, 'GEOCENTRIC_X')\n    test 485 GEOCENTRIC_X: (0.07117, 0.68362, -0.72636)  FAILED, KNOWN, expected (0.37533, 0.39753, -0.83732)\n\n    test 486 GEODETIC: (4614879.82592, 981039.629187, 4277613.939628, 0, 'GEODETIC')\n    test 487 GEODETIC: (0.24631, 0.35287, -0.90267)\n    test 488 GEODETIC: (Radians(7.02301499), Radians(6.49265346), Radians(9.10148726), -0.0, 'GEODETIC')\n    test 489 GEODETIC: (4614879.82592, 981039.629187, 4277613.939628, 0, 'GEODETIC')\n    test 490 GEODETIC: (0.55921, 0.44366, -0.70032)  FAILED, KNOWN, expected (0.24631, 0.35287, -0.90267)\n\n    test 491 GEODETIC_LON0: (1527233.792948, 1162869.651044, 6062035.023615, 0, 'GEODETIC_LON0')\n    test 492 GEODETIC_LON0: (0.24352, 0.24941, -0.93728)\n    test 493 GEODETIC_LON0: (Radians(7.54924666), Radians(6.67338953), Radians(9.34132632), -0.0, 'GEODETIC_LON0')\n    test 494 GEODETIC_LON0: (1527233.792948, 1162869.651044, 6062035.023615, 0, 'GEODETIC_LON0')\n    test 495 GEODETIC_LON0: (0.70582, 0.6422, -0.299)  FAILED, KNOWN, expected (0.24352, 0.24941, -0.93728)\n\n    test 496 GEODETIC_X: (5508220.332714, 315937.896032, 3189373.081358, 0, 'GEODETIC_X')\n    test 497 GEODETIC_X: (0.40682, 0.33156, -0.85121)\n    test 498 GEODETIC_X: (Radians(7.32411007), Radians(9.32669619), Radians(4.54631059), 0, 'GEODETIC_X')\n    test 499 GEODETIC_X: (5508220.332714, 315937.896032, 3189373.081358, 0, 'GEODETIC_X')\n    test 500 GEODETIC_X: (-0.08327, 0.99551, 0.0449)  FAILED, KNOWN, expected (0.40682, 0.33156, -0.85121)\n\n    test 501 GEOGRAPHIC: (3465116.507243, 5223158.607824, 1175894.05015, 0, 'GEODETIC')\n    test 502 GEOGRAPHIC: (0.11315, 0.09188, -0.98932)\n    test 503 GEOGRAPHIC: (Radians(6.46985144), Radians(7.26824437), Radians(3.18515516), -0.0, 'GEODETIC')\n    test 504 GEOGRAPHIC: (3465116.507243, 5223158.607824, 1175894.05015, 0, 'GEODETIC')\n    test 505 GEOGRAPHIC: (0.13879, 0.13043, -0.9817)  FAILED, KNOWN, expected (0.11315, 0.09188, -0.98932)\n\n    test 506 PARAMETRIC: (1264892.90797, 2527765.29909, 5698436.749422, 0, 'PARAMETRIC')\n    test 507 PARAMETRIC: (0.13554, 0.82486, -0.54885)\n    test 508 PARAMETRIC: (Radians(7.39485161), Radians(7.39001874), Radians(9.17168302), -0.0, 'PARAMETRIC')\n    test 509 PARAMETRIC: (1264892.90797, 2527765.29909, 5698436.749422, 0, 'PARAMETRIC')\n    test 510 PARAMETRIC: (0.1647, 0.8887, -0.42789)  FAILED, KNOWN, expected (0.13554, 0.82486, -0.54885)\n\n    test 511 PARAMETRIC_X: (3357601.186402, 4513866.391703, 2995261.616924, 0, 'PARAMETRIC_X')\n    test 512 PARAMETRIC_X: (0.22351, 0.72002, -0.65697)\n    test 513 PARAMETRIC_X: (Radians(6.83757042), Radians(8.44138234), Radians(5.00139262), 0, 'PARAMETRIC_X')\n    test 514 PARAMETRIC_X: (3357601.186402, 4513866.391703, 2995261.616924, 0, 'PARAMETRIC_X')\n    test 515 PARAMETRIC_X: (0.24371, 0.40685, -0.88039)  FAILED, KNOWN, expected (0.22351, 0.72002, -0.65697)\n\n    test 516 PLANETOCENTRIC: (948465.932689, 3598948.847101, 5162255.209493, 0, 'GEOCENTRIC')\n    test 517 PLANETOCENTRIC: (0.1521, 0.65147, -0.74328)\n    test 518 PLANETOCENTRIC: (Radians(7.22932016), Radians(7.59630087), Radians(9.40537788), -0.0, 'GEOCENTRIC')\n    test 519 PLANETOCENTRIC: (948465.932689, 3598948.847101, 5162255.209493, 0, 'GEOCENTRIC')\n    test 520 PLANETOCENTRIC: (0.18839, 0.79097, -0.58213)  FAILED, KNOWN, expected (0.1521, 0.65147, -0.74328)\n\n    test 521 PLANETODETIC: (6109868.111296, 1803588.145775, 311341.87994, 0, 'GEODETIC')\n    test 522 PLANETODETIC: (0.23071, 0.27671, -0.93285)\n    test 523 PLANETODETIC: (Radians(6.33234784), Radians(6.57023183), Radians(9.21647244), 0.0, 'GEODETIC')\n    test 524 PLANETODETIC: (6109868.111296, 1803588.145775, 311341.87994, 0, 'GEODETIC')\n    test 525 PLANETODETIC: (-0.01244, 0.21195, -0.9772)  FAILED, KNOWN, expected (0.23071, 0.27671, -0.93285)\n\n    test 526 Lon0: -14.93\n    test 527 forwardLatLon: (6162853.284268, -1643246.23441, 0.0, 0, 'ELLIPSOIDAL')\n    test 528 reverseLatLon: (Degrees(0.0), Degrees(-14.93), None, 0, 'ELLIPSOIDAL')\n    test 529 reverseLatLon: 1.590277340731758e-15  FAILED, KNOWN, expected 0\n\n    testConformal3(pygeodesy.triaxials.conformal3, 26.02.15)\n    test 530 Conformal3: name='WGS84_3', a=6378171.36, b=6378101.609999999, c=6356751.84, k2=0.996738165, kp2=0.003261835, xyQ2=xyQ2(x=10026938.243505, y=27096412.501236)\n    test 531 forwardBetOmg: (-5077726.43188, 3922574.86203, 0, 1.19703, 'CONFORMAL')\n    test 532 reverseBetOmg: (Degrees(33.3), Degrees(44.4), None, 1.197032, 'CONFORMAL')\n\n    test 533 Conformal3: name='WGS84_3r', a=6378172, b=6378102, c=6356752, k2=0.996726547, kp2=0.003273453, xyQ2=xyQ2(x=10026968.259439, y=27085126.866409)\n    test 534 forwardBetOmg: (-5077732.396, 3922571.859, 0, 1.197, 'CONFORMAL')\n    test 535 reverseBetOmg: (Degrees(33.3), Degrees(44.4), None, 1.197034, 'CONFORMAL')\n    test 536 forwardOther: (33.299887, 44.399927, 0.000263, 1.000046, 'CONFORMAL')\n    test 537 reverseOther: (Degrees(33.3), Degrees(44.4), Degrees(0.00026262), 0.999954, 'CONFORMAL')\n\n    test 538 Conformal3: name='WGS84+/-35', a=6378172, b=6378102, c=6356752.314245179, k2=0.996726499, kp2=0.003273501, xyQ2=xyQ2(x=10026968.379966, y=27085080.683786)\n    test 539 forwardBetOmg: (-5077732.419, 3922572.019, 0, 1.197, 'CONFORMAL')\n    test 540 reverseBetOmg: (Degrees(33.3), Degrees(44.4), None, 1.197034, 'CONFORMAL')\n\n    test 541 triaxum5: (1.2, 0.2, 0.9, 3, (6.632522885329242e-31,))\n    test 542 triaxum5: (1.244625, 0.145582, 0.0, 2, ())\n\n    test 543 Geodesic3Solve: Geod3Solve='/opt/local/bin/Geod3Solve', invokation=0, status=None\n    test 544 Direct: {a12: 137.869863, alp1: 3.20824, alp2: 177.483198, bet1: 40.57193, bet2: 1.355292, omg1: -54.38111, omg2: 123.419711, s12: 15347602.0}\n    test 545 Direct: (40.57193, -54.38111, 3.20824, 1.355292, 123.419711, 177.483198, 15347602.0, 137.869863)\n    test 546 Inverse: {a12: 137.869863, alp1: 3.20824, alp2: 177.483197, bet1: 40.57193, bet2: 1.355292, omg1: -54.38111, omg2: 123.419711, s12: 15347601.953655}\n    test 547 Inverse: (40.57193, -54.38111, 3.20824, 1.355292, 123.419711, 177.483197, 15347601.953655, 137.869863)\n    test 548 GeodesicLine3Solve: alp1=3.20824, bet1=40.57193, geodesic3=Geodesic3Solve(Geod3Solve='/opt/local/bin/Geod3Solve', invokation=2, status=0), invokation=1, omg1=-54.38111, status=0\n    test 549 Position: {a12: 137.869863, alp1: 3.20824, alp2: 177.483198, bet1: 40.57193, bet2: 1.355292, omg1: -54.38111, omg2: 123.419711, s12: 15347602.0}\n    test 550 Position: (40.57193, -54.38111, 3.20824, 1.355292, 123.419711, 177.483198, 15347602.0, 137.869863)\n    test 551 GeodesicLine3Solve: alp1=3.20824, bet1=40.57193, geodesic3=Geodesic3Solve(Geod3Solve='/opt/local/bin/Geod3Solve', invokation=3, status=0), invokation=1, omg1=-54.38111, status=0\n    test 552 Position: {a12: 137.869863, alp1: 3.20824, alp2: 177.483197, bet1: 40.57193, bet2: 1.355292, omg1: -54.38111, omg2: 123.419711, s12: 15347602.0}\n    test 553 Position: (40.57193, -54.38111, 3.20824, 1.355292, 123.419711, 177.483197, 15347602.0, 137.869863)\n\n    test 554 Amalthea: name='Amalthea', a=125000, b=73000, c=64000, e2ab=0.658944, e2bc=0.231375493, e2ac=0.737856\n    test 555 Amalthea.area    : 93239507787.49036\n    test 556 Amalthea.areaKT  : 93212299402.67043\n    test 557 Amalthea.areaRG  : 93239507787.49036\n    test 558 Amalthea.area21k : 93239507787.49039  FAILED, KNOWN, expected 93239507787.49036\n    test 559 Amalthea.ellipse5: Ellipse5Tuple(a=111264.228133, b=64978.30923, height=29167.24982, lat=45.0, beta=27.112446)\n    test 560 Amalthea.toTriaxial_: name='NN', a=111264.22813306, b=64978.309229707, c=29167.249819713, e2ab=0.658944, e2bc=0.798509697, e2ac=0.931280523\n    test 561 Amalthea.toTriaxial : name='NN', a=111264.22813306, b=64978.309229707, c=29167.249819713, e2ab=0.658944, e2bc=0.798509697, e2ac=0.931280523\n\n    test 562 Ariel: name='Ariel', a=581100, b=577900, c=577700, e2ab=0.01098327, e2bc=0.000692042, e2ac=0.011667711\n    test 563 Ariel.area    : 4211301462766.58\n    test 564 Ariel.areaKT  : 4211301574065.8296\n    test 565 Ariel.areaRG  : 4211301462766.58\n    test 566 Ariel.area21k : 4211301462766.58\n    test 567 Ariel.ellipse5: Ellipse5Tuple(a=412103.585219, b=409834.214245, height=407295.279804, lat=45.0, beta=44.831891)\n    test 568 Ariel.toTriaxial_: name='NN', a=412103.585218864, b=409834.214245365, c=407295.279803537, e2ab=0.01098327, e2bc=0.012351678, e2ac=0.023199286\n    test 569 Ariel.toTriaxial : name='NN', a=412103.585218864, b=409834.214245365, c=407295.279803537, e2ab=0.01098327, e2bc=0.012351678, e2ac=0.023199286\n\n    test 570 Earth: name='Earth', a=6378173.435, b=6378103.9, c=6356754.399999999, e2ab=0.000021804, e2bc=0.006683418, e2ac=0.006705077\n    test 571 Earth.area    : 510065911057440.94\n    test 572 Earth.areaKT  : 510065915922713.7\n    test 573 Earth.areaRG  : 510065911057440.94\n    test 574 Earth.area21k : 510065911057441.06  FAILED, KNOWN, expected 510065911057440.94\n    test 575 Earth.ellipse5: Ellipse5Tuple(a=4517628.806864, b=4517579.555566, height=4487337.759918, lat=45.0, beta=44.903634)\n    test 576 Earth.toTriaxial_: name='NN', a=4517628.806863861, b=4517579.55556609, c=4487337.759917997, e2ab=0.000021804, e2bc=0.013343682, e2ac=0.013365195\n    test 577 Earth.toTriaxial : name='NN', a=4517628.806863861, b=4517579.55556609, c=4487337.759917997, e2ab=0.000021804, e2bc=0.013343682, e2ac=0.013365195\n\n    test 578 Enceladus: name='Enceladus', a=256600, b=251400, c=248300, e2ab=0.040119337, e2bc=0.024509841, e2ac=0.06364586\n    test 579 Enceladus.area    : 798618496278.5967\n    test 580 Enceladus.areaKT  : 798619018175.11\n    test 581 Enceladus.areaRG  : 798618496278.5967\n    test 582 Enceladus.area21k : 798618496278.5966  FAILED, KNOWN, expected 798618496278.5967\n    test 583 Enceladus.ellipse5: Ellipse5Tuple(a=184401.418634, b=180664.523167, height=172665.031764, lat=45.0, beta=44.058205)\n    test 584 Enceladus.toTriaxial_: name='NN', a=184401.418633881, b=180664.523166631, c=172665.031764361, e2ab=0.040119337, e2bc=0.086595751, e2ac=0.123240924\n    test 585 Enceladus.toTriaxial : name='NN', a=184401.418633881, b=180664.523166631, c=172665.031764361, e2ab=0.040119337, e2bc=0.086595751, e2ac=0.123240924\n\n    test 586 Europa: name='Europa', a=1564130, b=1561230, c=1560930, e2ab=0.003704694, e2bc=0.000384275, e2ac=0.004087546\n    test 587 Europa.area    : 30663773697323.52\n    test 588 Europa.areaKT  : 30663773794562.457\n    test 589 Europa.areaRG  : 30663773697323.52\n    test 590 Europa.area21k : 30663773697323.52\n    test 591 Europa.ellipse5: Ellipse5Tuple(a=1107138.878572, b=1105086.170198, height=1102613.397545, lat=45.0, beta=44.94133)\n    test 592 Europa.toTriaxial_: name='NN', a=1107138.878571533, b=1105086.170198279, c=1102613.397544503, e2ab=0.003704694, e2bc=0.004470251, e2ac=0.008158384\n    test 593 Europa.toTriaxial : name='NN', a=1107138.878571533, b=1105086.170198279, c=1102613.397544503, e2ab=0.003704694, e2bc=0.004470251, e2ac=0.008158384\n\n    test 594 Io: name='Io', a=1829400, b=1819300, c=1815700, e2ab=0.011011391, e2bc=0.003953651, e2ac=0.014921506\n    test 595 Io.area    : 41691875849096.734\n    test 596 Io.areaKT  : 41691877397441.21\n    test 597 Io.areaRG  : 41691875849096.734\n    test 598 Io.area21k : 41691875849096.734\n    test 599 Io.ellipse5: Ellipse5Tuple(a=1298433.860916, b=1291265.290896, height=1279059.271955, lat=45.0, beta=44.784657)\n    test 600 Io.toTriaxial_: name='NN', a=1298433.860916433, b=1291265.290896068, c=1279059.271955118, e2ab=0.011011391, e2bc=0.018816162, e2ac=0.029620361\n    test 601 Io.toTriaxial : name='NN', a=1298433.860916433, b=1291265.290896068, c=1279059.271955118, e2ab=0.011011391, e2bc=0.018816162, e2ac=0.029620361\n\n    test 602 Mars: name='Mars', a=3394600, b=3393300, c=3376300, e2ab=0.000765776, e2bc=0.009994646, e2ac=0.010752768\n    test 603 Mars.area    : 144249140795107.44\n    test 604 Mars.areaKT  : 144249144150662.16\n    test 605 Mars.areaRG  : 144249140795107.44\n    test 606 Mars.area21k : 144249140795107.44\n    test 607 Mars.ellipse5: Ellipse5Tuple(a=2406823.402595, b=2405901.68268, height=2380943.388927, lat=45.0, beta=44.845145)\n    test 608 Mars.toTriaxial_: name='NN', a=2406823.402594559, b=2405901.682679585, c=2380943.38892735, e2ab=0.000765776, e2bc=0.020639944, e2ac=0.021389914\n    test 609 Mars.toTriaxial : name='NN', a=2406823.402594559, b=2405901.682679585, c=2380943.38892735, e2ab=0.000765776, e2bc=0.020639944, e2ac=0.021389914\n\n    test 610 Mimas: name='Mimas', a=207400, b=196800, c=190600, e2ab=0.09960581, e2bc=0.062015624, e2ac=0.155444317\n    test 611 Mimas.area    : 493855762247.69183\n    test 612 Mimas.areaKT  : 493857714107.9375\n    test 613 Mimas.areaRG  : 493855762247.69183\n    test 614 Mimas.area21k : 493855762247.69183\n    test 615 Mimas.ellipse5: Ellipse5Tuple(a=152708.378956, b=144903.611276, height=128970.72925, lat=45.0, beta=42.58292)\n    test 616 Mimas.toTriaxial_: name='NN', a=152708.378956057, b=144903.611275565, c=128970.729250426, e2ab=0.09960581, e2bc=0.207819965, e2ac=0.286725699\n    test 617 Mimas.toTriaxial : name='NN', a=152708.378956057, b=144903.611275565, c=128970.729250426, e2ab=0.09960581, e2bc=0.207819965, e2ac=0.286725699\n\n    test 618 Miranda: name='Miranda', a=240400, b=234200, c=232900, e2ab=0.050915557, e2bc=0.011070811, e2ac=0.061422691\n    test 619 Miranda.area    : 698880863325.7571\n    test 620 Miranda.areaKT  : 698881306767.9503\n    test 621 Miranda.areaRG  : 698880863325.7571\n    test 622 Miranda.area21k : 698880863325.7571\n    test 623 Miranda.ellipse5: Ellipse5Tuple(a=172660.462873, b=168207.489205, height=162055.192572, lat=45.0, beta=44.092156)\n    test 624 Miranda.toTriaxial_: name='NN', a=172660.462873061, b=168207.489204954, c=162055.192571975, e2ab=0.050915557, e2bc=0.071813503, e2ac=0.119072635\n    test 625 Miranda.toTriaxial : name='NN', a=172660.462873061, b=168207.489204954, c=162055.192571975, e2ab=0.050915557, e2bc=0.071813503, e2ac=0.119072635\n\n    test 626 Moon: name='Moon', a=1735550, b=1735324, c=1734898, e2ab=0.000260419, e2bc=0.000490914, e2ac=0.000751206\n    test 627 Moon.area    : 37838824729886.09\n    test 628 Moon.areaKT  : 37838824733332.22\n    test 629 Moon.areaRG  : 37838824729886.09\n    test 630 Moon.area21k : 37838824729886.086  FAILED, KNOWN, expected 37838824729886.09\n    test 631 Moon.ellipse5: Ellipse5Tuple(a=1227449.712545, b=1227289.876392, height=1226527.645318, lat=45.0, beta=44.989236)\n    test 632 Moon.toTriaxial_: name='NN', a=1227449.71254467, b=1227289.876391845, c=1226527.645318275, e2ab=0.000260419, e2bc=0.001241751, e2ac=0.001501847\n    test 633 Moon.toTriaxial : name='NN', a=1227449.71254467, b=1227289.876391845, c=1226527.645318275, e2ab=0.000260419, e2bc=0.001241751, e2ac=0.001501847\n\n    test 634 Tethys: name='Tethys', a=535600, b=528200, c=525800, e2ab=0.027441672, e2bc=0.009066821, e2ac=0.036259685\n    test 635 Tethys.area    : 3528073490771.3936\n    test 636 Tethys.areaKT  : 3528074261832.739\n    test 637 Tethys.areaRG  : 3528073490771.3936\n    test 638 Tethys.area21k : 3528073490771.394  FAILED, KNOWN, expected 3528073490771.3936\n    test 639 Tethys.ellipse5: Ellipse5Tuple(a=382206.915043, b=376926.236979, height=368348.212846, lat=45.0, beta=44.470998)\n    test 640 Tethys.toTriaxial_: name='NN', a=382206.915042949, b=376926.236978502, c=368348.212845736, e2ab=0.027441672, e2bc=0.044997746, e2ac=0.071204605\n    test 641 Tethys.toTriaxial : name='NN', a=382206.915042949, b=376926.236978502, c=368348.212845736, e2ab=0.027441672, e2bc=0.044997746, e2ac=0.071204605\n\n    test 642 WGS84_3: name='WGS84_3', a=6378171.36, b=6378101.609999999, c=6356751.84, e2ab=0.000021871, e2bc=0.006683505, e2ac=0.00670523\n    test 643 WGS84_3.area    : 510065541435967.5\n    test 644 WGS84_3.areaKT  : 510065546301413.56\n    test 645 WGS84_3.areaRG  : 510065541435967.5\n    test 646 WGS84_3.area21k : 510065541435967.4  FAILED, KNOWN, expected 510065541435967.5\n    test 647 WGS84_3.ellipse5: Ellipse5Tuple(a=4517627.51138, b=4517578.107797, height=4487335.778543, lat=45.0, beta=44.903631)\n    test 648 WGS84_3.toTriaxial_: name='NN', a=4517627.51137994, b=4517578.107796822, c=4487335.778543438, e2ab=0.000021871, e2bc=0.013343921, e2ac=0.0133655\n    test 649 WGS84_3.toTriaxial : name='NN', a=4517627.51137994, b=4517578.107796822, c=4487335.778543438, e2ab=0.000021871, e2bc=0.013343921, e2ac=0.0133655\n\n    test 650 WGS84_35: name='WGS84_35', a=6378172, b=6378102, c=6356752.314245179, e2ab=0.00002195, e2bc=0.006683478, e2ac=0.006705281\n    test 651 WGS84_35.area    : 510065621722018.25\n    test 652 WGS84_35.areaKT  : 510065626587483.3\n    test 653 WGS84_35.areaRG  : 510065621722018.25\n    test 654 WGS84_35.area21k : 510065621722018.25\n    test 655 WGS84_35.ellipse5: Ellipse5Tuple(a=4517628.022629, b=4517578.441971, height=4487336.055381, lat=45.0, beta=44.903631)\n    test 656 WGS84_35.toTriaxial_: name='NN', a=4517628.022628974, b=4517578.441971447, c=4487336.055380745, e2ab=0.00002195, e2bc=0.013343945, e2ac=0.013365602\n    test 657 WGS84_35.toTriaxial : name='NN', a=4517628.022628974, b=4517578.441971447, c=4487336.055380745, e2ab=0.00002195, e2bc=0.013343945, e2ac=0.013365602\n\n    test 658 WGS84_3r: name='WGS84_3r', a=6378172, b=6378102, c=6356752, e2ab=0.00002195, e2bc=0.006683577, e2ac=0.00670538\n    test 659 WGS84_3r.area    : 510065604942135.9\n    test 660 WGS84_3r.areaKT  : 510065609807745.0\n    test 661 WGS84_3r.areaRG  : 510065604942135.9\n    test 662 WGS84_3r.area21k : 510065604942135.94  FAILED, KNOWN, expected 510065604942135.9\n    test 663 WGS84_3r.ellipse5: Ellipse5Tuple(a=4517628.133918, b=4517578.553259, height=4487335.722261, lat=45.0, beta=44.903629)\n    test 664 WGS84_3r.toTriaxial_: name='NN', a=4517628.133917508, b=4517578.553258759, c=4487335.722261372, e2ab=0.00002195, e2bc=0.01334414, e2ac=0.013365797\n    test 665 WGS84_3r.toTriaxial : name='NN', a=4517628.133917508, b=4517578.553258759, c=4487335.722261372, e2ab=0.00002195, e2bc=0.01334414, e2ac=0.013365797\n\n    39 of 665 testTriaxials.py tests (5.9%) FAILED, incl. 37 KNOWN plus 2 DeprecationWarnings (pygeodesy 26.3.26 Python 3.13.12 64bit arm64 coverage 7.10.7 geographiclib 2.1 numpy 2.3.3 scipy 1.16.2 Math 2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 macOS 26.3.1 isLazy 1 -W  default) 933.482 ms\nrunning /Library/Framewo....n3.13 -W default ~/PyGeodesy/test/testUnits.py\n\n    testing testUnits.py 24.07.25 isLazy=1\n\n    testing Lambertian(1.0,) (pygeodesy.units, 26.03.12)\n    test 1 .classname: Lambertian\n    test 2 isinstance: True\n    test 3 .name: lambertian\n    test 4 .named: lambertian\n    test 5 .named2: Lambertian 'lambertian'\n    test 6 .str: 1.0\n    test 7 .toStr: 1.0\n    test 8 .std_repr: True\n    test 9 .repr: 1.0\n    test 10 .toRepr: lambertian (1.0)\n    test 11 .units: lambertian\n    test 12 lambertian: psi ('X'): strRad ('X') or suffix ('NSEW'): could not convert string to float: 'X'\n    test 13 lambertian: U ('X'): strRad ('X') or suffix ('NSEW'): could not convert string to float: 'X'\n    test 14 lambertian: TypeError\n    test 15 lambertian: psi ('X'): strRad ('X') or suffix ('NSEW'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 16 .named: Test\n    test 17 .named2: Lambertian 'Test'\n    test 18 .str: 1.0\n    test 19 .toStr: 1.0\n    test 20 .repr: 1.0\n    test 21 .toRepr: Test (1.0)\n    test 22 .units: lambertian\n    test 23 .name: Test\n    test 24 ._name: Test\n    test 25 .str: 1.0\n    test 26 .repr: 1.0\n    test 27 delattr: ''\n\n    testing _Lat(1.0,) (pygeodesy.units, 26.03.12)\n    test 28 .classname: _Lat\n    test 29 isinstance: True\n    test 30 .name: _lat\n    test 31 .named: _lat\n    test 32 .named2: _Lat '_lat'\n    test 33 .str: 1.0\n    test 34 .toStr: 1.0\n    test 35 .std_repr: True\n    test 36 .repr: 1.0\n    test 37 .toRepr: _lat (1.0)\n    test 38 .units: _lat\n    test 39 _lat: lat ('X'): strDMS ('X') or suffix ('NS'): could not convert string to float: 'X'\n    test 40 _lat: U ('X'): strDMS ('X') or suffix ('NS'): could not convert string to float: 'X'\n    test 41 _lat: TypeError\n    test 42 _lat: lat ('X'): strDMS ('X') or suffix ('NS'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 43 .named: Test\n    test 44 .named2: _Lat 'Test'\n    test 45 .str: 1.0\n    test 46 .toStr: 1.0\n    test 47 .repr: 1.0\n    test 48 .toRepr: Test (1.0)\n    test 49 .units: _lat\n    test 50 .name: Test\n    test 51 ._name: Test\n    test 52 .str: 1.0\n    test 53 .repr: 1.0\n    test 54 delattr: ''\n\n    testing _Lon(1.0,) (pygeodesy.units, 26.03.12)\n    test 55 .classname: _Lon\n    test 56 isinstance: True\n    test 57 .name: _lon\n    test 58 .named: _lon\n    test 59 .named2: _Lon '_lon'\n    test 60 .str: 1.0\n    test 61 .toStr: 1.0\n    test 62 .std_repr: True\n    test 63 .repr: 1.0\n    test 64 .toRepr: _lon (1.0)\n    test 65 .units: _lon\n    test 66 _lon: lon ('X'): strDMS ('X') or suffix ('EW'): could not convert string to float: 'X'\n    test 67 _lon: U ('X'): strDMS ('X') or suffix ('EW'): could not convert string to float: 'X'\n    test 68 _lon: TypeError\n    test 69 _lon: lon ('X'): strDMS ('X') or suffix ('EW'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 70 .named: Test\n    test 71 .named2: _Lon 'Test'\n    test 72 .str: 1.0\n    test 73 .toStr: 1.0\n    test 74 .repr: 1.0\n    test 75 .toRepr: Test (1.0)\n    test 76 .units: _lon\n    test 77 .name: Test\n    test 78 ._name: Test\n    test 79 .str: 1.0\n    test 80 .repr: 1.0\n    test 81 delattr: ''\n\n    testing Bearing(1.0,) (pygeodesy.units, 26.03.12)\n    test 82 .classname: Bearing\n    test 83 isinstance: True\n    test 84 .name: bearing\n    test 85 .named: bearing\n    test 86 .named2: Bearing 'bearing'\n    test 87 .str: 1.0\n    test 88 .toStr: 1.0\n    test 89 .std_repr: True\n    test 90 .repr: 1.0\n    test 91 .toRepr: bearing (1.0)\n    test 92 .units: bearing\n    test 93 bearing: bearing ('X'): strDMS ('X') or suffix ('N'): could not convert string to float: 'X'\n    test 94 bearing: U ('X'): strDMS ('X') or suffix ('N'): could not convert string to float: 'X'\n    test 95 bearing: TypeError\n    test 96 bearing: bearing ('X'): strDMS ('X') or suffix ('N'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 97 .named: Test\n    test 98 .named2: Bearing 'Test'\n    test 99 .str: 1.0\n    test 100 .toStr: 1.0\n    test 101 .repr: 1.0\n    test 102 .toRepr: Test (1.0)\n    test 103 .units: bearing\n    test 104 .name: Test\n    test 105 ._name: Test\n    test 106 .str: 1.0\n    test 107 .repr: 1.0\n    test 108 delattr: ''\n\n    testing Degrees(1.0,) (pygeodesy.units, 26.03.12)\n    test 109 .classname: Degrees\n    test 110 isinstance: True\n    test 111 .name: degrees\n    test 112 .named: degrees\n    test 113 .named2: Degrees 'degrees'\n    test 114 .str: 1.0\n    test 115 .toStr: 1.0\n    test 116 .std_repr: True\n    test 117 .repr: 1.0\n    test 118 .toRepr: degrees (1.0)\n    test 119 .units: degrees\n    test 120 degrees: degrees ('X'): strDMS ('X') or suffix ('NSEW'): could not convert string to float: 'X'\n    test 121 degrees: U ('X'): strDMS ('X') or suffix ('NSEW'): could not convert string to float: 'X'\n    test 122 degrees: TypeError\n    test 123 degrees: degrees ('X'): strDMS ('X') or suffix ('NSEW'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 124 .named: Test\n    test 125 .named2: Degrees 'Test'\n    test 126 .str: 1.0\n    test 127 .toStr: 1.0\n    test 128 .repr: 1.0\n    test 129 .toRepr: Test (1.0)\n    test 130 .units: degrees\n    test 131 .name: Test\n    test 132 ._name: Test\n    test 133 .str: 1.0\n    test 134 .repr: 1.0\n    test 135 delattr: ''\n\n    testing Degrees2(1.0,) (pygeodesy.units, 26.03.12)\n    test 136 .classname: Degrees2\n    test 137 isinstance: True\n    test 138 .name: degrees2\n    test 139 .named: degrees2\n    test 140 .named2: Degrees2 'degrees2'\n    test 141 .str: 1.0\n    test 142 .toStr: 1.0\n    test 143 .std_repr: True\n    test 144 .repr: 1.0\n    test 145 .toRepr: degrees2 (1.0)\n    test 146 .units: degrees2\n    test 147 degrees2: degrees2 ('X'): could not convert string to float: 'X'\n    test 148 degrees2: U ('X'): could not convert string to float: 'X'\n    test 149 degrees2: TypeError\n    test 150 degrees2: degrees2 ('X'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 151 .named: Test\n    test 152 .named2: Degrees2 'Test'\n    test 153 .str: 1.0\n    test 154 .toStr: 1.0\n    test 155 .repr: 1.0\n    test 156 .toRepr: Test (1.0)\n    test 157 .units: degrees2\n    test 158 .name: Test\n    test 159 ._name: Test\n    test 160 .str: 1.0\n    test 161 .repr: 1.0\n    test 162 delattr: ''\n\n    testing Degrees_(1.0,) (pygeodesy.units, 26.03.12)\n    test 163 .classname: Degrees_\n    test 164 isinstance: True\n    test 165 .name: degrees_\n    test 166 .named: degrees_\n    test 167 .named2: Degrees_ 'degrees_'\n    test 168 .str: 1.0\n    test 169 .toStr: 1.0\n    test 170 .std_repr: True\n    test 171 .repr: 1.0\n    test 172 .toRepr: degrees_ (1.0)\n    test 173 .units: degrees_\n    test 174 degrees_: degrees ('X'): strDMS ('X') or suffix ('NSEW'): could not convert string to float: 'X'\n    test 175 degrees_: U ('X'): strDMS ('X') or suffix ('NSEW'): could not convert string to float: 'X'\n    test 176 degrees_: TypeError\n    test 177 degrees_: degrees ('X'): strDMS ('X') or suffix ('NSEW'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 178 .named: Test\n    test 179 .named2: Degrees_ 'Test'\n    test 180 .str: 1.0\n    test 181 .toStr: 1.0\n    test 182 .repr: 1.0\n    test 183 .toRepr: Test (1.0)\n    test 184 .units: degrees_\n    test 185 .name: Test\n    test 186 ._name: Test\n    test 187 .str: 1.0\n    test 188 .repr: 1.0\n    test 189 delattr: ''\n\n    testing Distance(1.0,) (pygeodesy.units, 26.03.12)\n    test 190 .classname: Distance\n    test 191 isinstance: True\n    test 192 .name: distance\n    test 193 .named: distance\n    test 194 .named2: Distance 'distance'\n    test 195 .str: 1.0\n    test 196 .toStr: 1.0\n    test 197 .std_repr: True\n    test 198 .repr: 1.0\n    test 199 .toRepr: distance (1.0)\n    test 200 .units: distance\n    test 201 distance: distance ('X'): could not convert string to float: 'X'\n    test 202 distance: U ('X'): could not convert string to float: 'X'\n    test 203 distance: TypeError\n    test 204 distance: distance ('X'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 205 .named: Test\n    test 206 .named2: Distance 'Test'\n    test 207 .str: 1.0\n    test 208 .toStr: 1.0\n    test 209 .repr: 1.0\n    test 210 .toRepr: Test (1.0)\n    test 211 .units: distance\n    test 212 .name: Test\n    test 213 ._name: Test\n    test 214 .str: 1.0\n    test 215 .repr: 1.0\n    test 216 delattr: ''\n\n    testing Distance_(1.0,) (pygeodesy.units, 26.03.12)\n    test 217 .classname: Distance_\n    test 218 isinstance: True\n    test 219 .name: distance_\n    test 220 .named: distance_\n    test 221 .named2: Distance_ 'distance_'\n    test 222 .str: 1.0\n    test 223 .toStr: 1.0\n    test 224 .std_repr: True\n    test 225 .repr: 1.0\n    test 226 .toRepr: distance_ (1.0)\n    test 227 .units: distance_\n    test 228 distance_: distance ('X'): could not convert string to float: 'X'\n    test 229 distance_: U ('X'): could not convert string to float: 'X'\n    test 230 distance_: TypeError\n    test 231 distance_: distance ('X'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 232 .named: Test\n    test 233 .named2: Distance_ 'Test'\n    test 234 .str: 1.0\n    test 235 .toStr: 1.0\n    test 236 .repr: 1.0\n    test 237 .toRepr: Test (1.0)\n    test 238 .units: distance_\n    test 239 .name: Test\n    test 240 ._name: Test\n    test 241 .str: 1.0\n    test 242 .repr: 1.0\n    test 243 delattr: ''\n\n    testing Easting(1.0,) (pygeodesy.units, 26.03.12)\n    test 244 .classname: Easting\n    test 245 isinstance: True\n    test 246 .name: easting\n    test 247 .named: easting\n    test 248 .named2: Easting 'easting'\n    test 249 .str: 1.0\n    test 250 .toStr: 1.0\n    test 251 .std_repr: True\n    test 252 .repr: 1.0\n    test 253 .toRepr: easting (1.0)\n    test 254 .units: easting\n    test 255 easting: easting ('X'): could not convert string to float: 'X'\n    test 256 easting: U ('X'): could not convert string to float: 'X'\n    test 257 easting: TypeError\n    test 258 easting: easting ('X'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 259 .named: Test\n    test 260 .named2: Easting 'Test'\n    test 261 .str: 1.0\n    test 262 .toStr: 1.0\n    test 263 .repr: 1.0\n    test 264 .toRepr: Test (1.0)\n    test 265 .units: easting\n    test 266 .name: Test\n    test 267 ._name: Test\n    test 268 .str: 1.0\n    test 269 .repr: 1.0\n    test 270 delattr: ''\n\n    testing Feet(1.0,) (pygeodesy.units, 26.03.12)\n    test 271 .classname: Feet\n    test 272 isinstance: True\n    test 273 .name: feet\n    test 274 .named: feet\n    test 275 .named2: Feet 'feet'\n    test 276 .str: 1.0\n    test 277 .toStr: 1.0\n    test 278 .std_repr: True\n    test 279 .repr: 1.0\n    test 280 .toRepr: feet (1.0)\n    test 281 .units: feet\n    test 282 feet: feet ('X'): could not convert string to float: 'X'\n    test 283 feet: U ('X'): could not convert string to float: 'X'\n    test 284 feet: TypeError\n    test 285 feet: feet ('X'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 286 .named: Test\n    test 287 .named2: Feet 'Test'\n    test 288 .str: 1.0\n    test 289 .toStr: 1.0\n    test 290 .repr: 1.0\n    test 291 .toRepr: Test (1.0)\n    test 292 .units: feet\n    test 293 .name: Test\n    test 294 ._name: Test\n    test 295 .str: 1.0\n    test 296 .repr: 1.0\n    test 297 delattr: ''\n\n    testing Float_(1.0,) (pygeodesy.units, 26.03.12)\n    test 298 .classname: Float_\n    test 299 isinstance: True\n    test 300 .name: float_\n    test 301 .named: float_\n    test 302 .named2: Float_ 'float_'\n    test 303 .str: 1.0\n    test 304 .toStr: 1.0\n    test 305 .std_repr: True\n    test 306 .repr: 1.0\n    test 307 .toRepr: float_ (1.0)\n    test 308 .units: float_\n    test 309 float_: Float_ ('X'): could not convert string to float: 'X'\n    test 310 float_: U ('X'): could not convert string to float: 'X'\n    test 311 float_: TypeError\n    test 312 float_: Float_ ('X'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 313 .named: Test\n    test 314 .named2: Float_ 'Test'\n    test 315 .str: 1.0\n    test 316 .toStr: 1.0\n    test 317 .repr: 1.0\n    test 318 .toRepr: Test (1.0)\n    test 319 .units: float_\n    test 320 .name: Test\n    test 321 ._name: Test\n    test 322 .str: 1.0\n    test 323 .repr: 1.0\n    test 324 delattr: ''\n\n    testing Height(1.0,) (pygeodesy.units, 26.03.12)\n    test 325 .classname: Height\n    test 326 isinstance: True\n    test 327 .name: height\n    test 328 .named: height\n    test 329 .named2: Height 'height'\n    test 330 .str: 1.0\n    test 331 .toStr: 1.0\n    test 332 .std_repr: True\n    test 333 .repr: 1.0\n    test 334 .toRepr: height (1.0)\n    test 335 .units: height\n    test 336 height: height ('X'): could not convert string to float: 'X'\n    test 337 height: U ('X'): could not convert string to float: 'X'\n    test 338 height: TypeError\n    test 339 height: height ('X'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 340 .named: Test\n    test 341 .named2: Height 'Test'\n    test 342 .str: 1.0\n    test 343 .toStr: 1.0\n    test 344 .repr: 1.0\n    test 345 .toRepr: Test (1.0)\n    test 346 .units: height\n    test 347 .name: Test\n    test 348 ._name: Test\n    test 349 .str: 1.0\n    test 350 .repr: 1.0\n    test 351 delattr: ''\n\n    testing HeightX(1.0,) (pygeodesy.units, 26.03.12)\n    test 352 .classname: HeightX\n    test 353 isinstance: True\n    test 354 .name: heightx\n    test 355 .named: heightx\n    test 356 .named2: HeightX 'heightx'\n    test 357 .str: 1.0\n    test 358 .toStr: 1.0\n    test 359 .std_repr: True\n    test 360 .repr: 1.0\n    test 361 .toRepr: heightx (1.0)\n    test 362 .units: heightx\n    test 363 heightx: height ('X'): could not convert string to float: 'X'\n    test 364 heightx: U ('X'): could not convert string to float: 'X'\n    test 365 heightx: TypeError\n    test 366 heightx: height ('X'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 367 .named: Test\n    test 368 .named2: HeightX 'Test'\n    test 369 .str: 1.0\n    test 370 .toStr: 1.0\n    test 371 .repr: 1.0\n    test 372 .toRepr: Test (1.0)\n    test 373 .units: heightx\n    test 374 .name: Test\n    test 375 ._name: Test\n    test 376 .str: 1.0\n    test 377 .repr: 1.0\n    test 378 delattr: ''\n\n    testing Height_(1.0,) (pygeodesy.units, 26.03.12)\n    test 379 .classname: Height_\n    test 380 isinstance: True\n    test 381 .name: height_\n    test 382 .named: height_\n    test 383 .named2: Height_ 'height_'\n    test 384 .str: 1.0\n    test 385 .toStr: 1.0\n    test 386 .std_repr: True\n    test 387 .repr: 1.0\n    test 388 .toRepr: height_ (1.0)\n    test 389 .units: height_\n    test 390 height_: height ('X'): could not convert string to float: 'X'\n    test 391 height_: U ('X'): could not convert string to float: 'X'\n    test 392 height_: TypeError\n    test 393 height_: height ('X'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 394 .named: Test\n    test 395 .named2: Height_ 'Test'\n    test 396 .str: 1.0\n    test 397 .toStr: 1.0\n    test 398 .repr: 1.0\n    test 399 .toRepr: Test (1.0)\n    test 400 .units: height_\n    test 401 .name: Test\n    test 402 ._name: Test\n    test 403 .str: 1.0\n    test 404 .repr: 1.0\n    test 405 delattr: ''\n\n    testing Lam(1.0,) (pygeodesy.units, 26.03.12)\n    test 406 .classname: Lam\n    test 407 isinstance: True\n    test 408 .name: lam\n    test 409 .named: lam\n    test 410 .named2: Lam 'lam'\n    test 411 .str: 1.0\n    test 412 .toStr: 1.0\n    test 413 .std_repr: True\n    test 414 .repr: 1.0\n    test 415 .toRepr: lam (1.0)\n    test 416 .units: lam\n    test 417 lam: lam ('X'): strRad ('X') or suffix ('EW'): could not convert string to float: 'X'\n    test 418 lam: U ('X'): strRad ('X') or suffix ('EW'): could not convert string to float: 'X'\n    test 419 lam: TypeError\n    test 420 lam: lam ('X'): strRad ('X') or suffix ('EW'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 421 .named: Test\n    test 422 .named2: Lam 'Test'\n    test 423 .str: 1.0\n    test 424 .toStr: 1.0\n    test 425 .repr: 1.0\n    test 426 .toRepr: Test (1.0)\n    test 427 .units: lam\n    test 428 .name: Test\n    test 429 ._name: Test\n    test 430 .str: 1.0\n    test 431 .repr: 1.0\n    test 432 delattr: ''\n\n    testing Lat(1.0,) (pygeodesy.units, 26.03.12)\n    test 433 .classname: Lat\n    test 434 isinstance: True\n    test 435 .name: lat\n    test 436 .named: lat\n    test 437 .named2: Lat 'lat'\n    test 438 .str: 1.0\n    test 439 .toStr: 1.0\n    test 440 .std_repr: True\n    test 441 .repr: 1.0\n    test 442 .toRepr: lat (1.0)\n    test 443 .units: lat\n    test 444 lat: lat ('X'): strDMS ('X') or suffix ('NS'): could not convert string to float: 'X'\n    test 445 lat: U ('X'): strDMS ('X') or suffix ('NS'): could not convert string to float: 'X'\n    test 446 lat: TypeError\n    test 447 lat: lat ('X'): strDMS ('X') or suffix ('NS'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 448 .named: Test\n    test 449 .named2: Lat 'Test'\n    test 450 .str: 1.0\n    test 451 .toStr: 1.0\n    test 452 .repr: 1.0\n    test 453 .toRepr: Test (1.0)\n    test 454 .units: lat\n    test 455 .name: Test\n    test 456 ._name: Test\n    test 457 .str: 1.0\n    test 458 .repr: 1.0\n    test 459 delattr: ''\n\n    testing Lat_(1.0,) (pygeodesy.units, 26.03.12)\n    test 460 .classname: Lat_\n    test 461 isinstance: True\n    test 462 .name: lat_\n    test 463 .named: lat_\n    test 464 .named2: Lat_ 'lat_'\n    test 465 .str: 1.0\n    test 466 .toStr: 1.0\n    test 467 .std_repr: True\n    test 468 .repr: 1.0\n    test 469 .toRepr: lat_ (1.0)\n    test 470 .units: lat_\n    test 471 lat_: lat ('X'): strDMS ('X') or suffix ('NS'): could not convert string to float: 'X'\n    test 472 lat_: U ('X'): strDMS ('X') or suffix ('NS'): could not convert string to float: 'X'\n    test 473 lat_: TypeError\n    test 474 lat_: lat ('X'): strDMS ('X') or suffix ('NS'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 475 .named: Test\n    test 476 .named2: Lat_ 'Test'\n    test 477 .str: 1.0\n    test 478 .toStr: 1.0\n    test 479 .repr: 1.0\n    test 480 .toRepr: Test (1.0)\n    test 481 .units: lat_\n    test 482 .name: Test\n    test 483 ._name: Test\n    test 484 .str: 1.0\n    test 485 .repr: 1.0\n    test 486 delattr: ''\n\n    testing Lon(1.0,) (pygeodesy.units, 26.03.12)\n    test 487 .classname: Lon\n    test 488 isinstance: True\n    test 489 .name: lon\n    test 490 .named: lon\n    test 491 .named2: Lon 'lon'\n    test 492 .str: 1.0\n    test 493 .toStr: 1.0\n    test 494 .std_repr: True\n    test 495 .repr: 1.0\n    test 496 .toRepr: lon (1.0)\n    test 497 .units: lon\n    test 498 lon: lon ('X'): strDMS ('X') or suffix ('EW'): could not convert string to float: 'X'\n    test 499 lon: U ('X'): strDMS ('X') or suffix ('EW'): could not convert string to float: 'X'\n    test 500 lon: TypeError\n    test 501 lon: lon ('X'): strDMS ('X') or suffix ('EW'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 502 .named: Test\n    test 503 .named2: Lon 'Test'\n    test 504 .str: 1.0\n    test 505 .toStr: 1.0\n    test 506 .repr: 1.0\n    test 507 .toRepr: Test (1.0)\n    test 508 .units: lon\n    test 509 .name: Test\n    test 510 ._name: Test\n    test 511 .str: 1.0\n    test 512 .repr: 1.0\n    test 513 delattr: ''\n\n    testing Lon_(1.0,) (pygeodesy.units, 26.03.12)\n    test 514 .classname: Lon_\n    test 515 isinstance: True\n    test 516 .name: lon_\n    test 517 .named: lon_\n    test 518 .named2: Lon_ 'lon_'\n    test 519 .str: 1.0\n    test 520 .toStr: 1.0\n    test 521 .std_repr: True\n    test 522 .repr: 1.0\n    test 523 .toRepr: lon_ (1.0)\n    test 524 .units: lon_\n    test 525 lon_: lon ('X'): strDMS ('X') or suffix ('EW'): could not convert string to float: 'X'\n    test 526 lon_: U ('X'): strDMS ('X') or suffix ('EW'): could not convert string to float: 'X'\n    test 527 lon_: TypeError\n    test 528 lon_: lon ('X'): strDMS ('X') or suffix ('EW'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 529 .named: Test\n    test 530 .named2: Lon_ 'Test'\n    test 531 .str: 1.0\n    test 532 .toStr: 1.0\n    test 533 .repr: 1.0\n    test 534 .toRepr: Test (1.0)\n    test 535 .units: lon_\n    test 536 .name: Test\n    test 537 ._name: Test\n    test 538 .str: 1.0\n    test 539 .repr: 1.0\n    test 540 delattr: ''\n\n    testing Meter(1.0,) (pygeodesy.units, 26.03.12)\n    test 541 .classname: Meter\n    test 542 isinstance: True\n    test 543 .name: meter\n    test 544 .named: meter\n    test 545 .named2: Meter 'meter'\n    test 546 .str: 1.0\n    test 547 .toStr: 1.0\n    test 548 .std_repr: True\n    test 549 .repr: 1.0\n    test 550 .toRepr: meter (1.0)\n    test 551 .units: meter\n    test 552 meter: meter ('X'): could not convert string to float: 'X'\n    test 553 meter: U ('X'): could not convert string to float: 'X'\n    test 554 meter: TypeError\n    test 555 meter: meter ('X'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 556 .named: Test\n    test 557 .named2: Meter 'Test'\n    test 558 .str: 1.0\n    test 559 .toStr: 1.0\n    test 560 .repr: 1.0\n    test 561 .toRepr: Test (1.0)\n    test 562 .units: meter\n    test 563 .name: Test\n    test 564 ._name: Test\n    test 565 .str: 1.0\n    test 566 .repr: 1.0\n    test 567 delattr: ''\n\n    testing Meter2(1.0,) (pygeodesy.units, 26.03.12)\n    test 568 .classname: Meter2\n    test 569 isinstance: True\n    test 570 .name: meter2\n    test 571 .named: meter2\n    test 572 .named2: Meter2 'meter2'\n    test 573 .str: 1.0\n    test 574 .toStr: 1.0\n    test 575 .std_repr: True\n    test 576 .repr: 1.0\n    test 577 .toRepr: meter2 (1.0)\n    test 578 .units: meter2\n    test 579 meter2: meter2 ('X'): could not convert string to float: 'X'\n    test 580 meter2: U ('X'): could not convert string to float: 'X'\n    test 581 meter2: TypeError\n    test 582 meter2: meter2 ('X'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 583 .named: Test\n    test 584 .named2: Meter2 'Test'\n    test 585 .str: 1.0\n    test 586 .toStr: 1.0\n    test 587 .repr: 1.0\n    test 588 .toRepr: Test (1.0)\n    test 589 .units: meter2\n    test 590 .name: Test\n    test 591 ._name: Test\n    test 592 .str: 1.0\n    test 593 .repr: 1.0\n    test 594 delattr: ''\n\n    testing Meter3(1.0,) (pygeodesy.units, 26.03.12)\n    test 595 .classname: Meter3\n    test 596 isinstance: True\n    test 597 .name: meter3\n    test 598 .named: meter3\n    test 599 .named2: Meter3 'meter3'\n    test 600 .str: 1.0\n    test 601 .toStr: 1.0\n    test 602 .std_repr: True\n    test 603 .repr: 1.0\n    test 604 .toRepr: meter3 (1.0)\n    test 605 .units: meter3\n    test 606 meter3: meter3 ('X'): could not convert string to float: 'X'\n    test 607 meter3: U ('X'): could not convert string to float: 'X'\n    test 608 meter3: TypeError\n    test 609 meter3: meter3 ('X'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 610 .named: Test\n    test 611 .named2: Meter3 'Test'\n    test 612 .str: 1.0\n    test 613 .toStr: 1.0\n    test 614 .repr: 1.0\n    test 615 .toRepr: Test (1.0)\n    test 616 .units: meter3\n    test 617 .name: Test\n    test 618 ._name: Test\n    test 619 .str: 1.0\n    test 620 .repr: 1.0\n    test 621 delattr: ''\n\n    testing Meter_(1.0,) (pygeodesy.units, 26.03.12)\n    test 622 .classname: Meter_\n    test 623 isinstance: True\n    test 624 .name: meter_\n    test 625 .named: meter_\n    test 626 .named2: Meter_ 'meter_'\n    test 627 .str: 1.0\n    test 628 .toStr: 1.0\n    test 629 .std_repr: True\n    test 630 .repr: 1.0\n    test 631 .toRepr: meter_ (1.0)\n    test 632 .units: meter_\n    test 633 meter_: meter ('X'): could not convert string to float: 'X'\n    test 634 meter_: U ('X'): could not convert string to float: 'X'\n    test 635 meter_: TypeError\n    test 636 meter_: meter ('X'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 637 .named: Test\n    test 638 .named2: Meter_ 'Test'\n    test 639 .str: 1.0\n    test 640 .toStr: 1.0\n    test 641 .repr: 1.0\n    test 642 .toRepr: Test (1.0)\n    test 643 .units: meter_\n    test 644 .name: Test\n    test 645 ._name: Test\n    test 646 .str: 1.0\n    test 647 .repr: 1.0\n    test 648 delattr: ''\n\n    testing Northing(1.0,) (pygeodesy.units, 26.03.12)\n    test 649 .classname: Northing\n    test 650 isinstance: True\n    test 651 .name: northing\n    test 652 .named: northing\n    test 653 .named2: Northing 'northing'\n    test 654 .str: 1.0\n    test 655 .toStr: 1.0\n    test 656 .std_repr: True\n    test 657 .repr: 1.0\n    test 658 .toRepr: northing (1.0)\n    test 659 .units: northing\n    test 660 northing: northing ('X'): could not convert string to float: 'X'\n    test 661 northing: U ('X'): could not convert string to float: 'X'\n    test 662 northing: TypeError\n    test 663 northing: northing ('X'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 664 .named: Test\n    test 665 .named2: Northing 'Test'\n    test 666 .str: 1.0\n    test 667 .toStr: 1.0\n    test 668 .repr: 1.0\n    test 669 .toRepr: Test (1.0)\n    test 670 .units: northing\n    test 671 .name: Test\n    test 672 ._name: Test\n    test 673 .str: 1.0\n    test 674 .repr: 1.0\n    test 675 delattr: ''\n\n    testing Phi(1.0,) (pygeodesy.units, 26.03.12)\n    test 676 .classname: Phi\n    test 677 isinstance: True\n    test 678 .name: phi\n    test 679 .named: phi\n    test 680 .named2: Phi 'phi'\n    test 681 .str: 1.0\n    test 682 .toStr: 1.0\n    test 683 .std_repr: True\n    test 684 .repr: 1.0\n    test 685 .toRepr: phi (1.0)\n    test 686 .units: phi\n    test 687 phi: phi ('X'): strRad ('X') or suffix ('NS'): could not convert string to float: 'X'\n    test 688 phi: U ('X'): strRad ('X') or suffix ('NS'): could not convert string to float: 'X'\n    test 689 phi: TypeError\n    test 690 phi: phi ('X'): strRad ('X') or suffix ('NS'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 691 .named: Test\n    test 692 .named2: Phi 'Test'\n    test 693 .str: 1.0\n    test 694 .toStr: 1.0\n    test 695 .repr: 1.0\n    test 696 .toRepr: Test (1.0)\n    test 697 .units: phi\n    test 698 .name: Test\n    test 699 ._name: Test\n    test 700 .str: 1.0\n    test 701 .repr: 1.0\n    test 702 delattr: ''\n\n    testing Radians(1.0,) (pygeodesy.units, 26.03.12)\n    test 703 .classname: Radians\n    test 704 isinstance: True\n    test 705 .name: radians\n    test 706 .named: radians\n    test 707 .named2: Radians 'radians'\n    test 708 .str: 1.0\n    test 709 .toStr: 1.0\n    test 710 .std_repr: True\n    test 711 .repr: 1.0\n    test 712 .toRepr: radians (1.0)\n    test 713 .units: radians\n    test 714 radians: radians ('X'): strRad ('X') or suffix ('NSEW'): could not convert string to float: 'X'\n    test 715 radians: U ('X'): strRad ('X') or suffix ('NSEW'): could not convert string to float: 'X'\n    test 716 radians: TypeError\n    test 717 radians: radians ('X'): strRad ('X') or suffix ('NSEW'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 718 .named: Test\n    test 719 .named2: Radians 'Test'\n    test 720 .str: 1.0\n    test 721 .toStr: 1.0\n    test 722 .repr: 1.0\n    test 723 .toRepr: Test (1.0)\n    test 724 .units: radians\n    test 725 .name: Test\n    test 726 ._name: Test\n    test 727 .str: 1.0\n    test 728 .repr: 1.0\n    test 729 delattr: ''\n\n    testing Radians2(1.0,) (pygeodesy.units, 26.03.12)\n    test 730 .classname: Radians2\n    test 731 isinstance: True\n    test 732 .name: radians2\n    test 733 .named: radians2\n    test 734 .named2: Radians2 'radians2'\n    test 735 .str: 1.0\n    test 736 .toStr: 1.0\n    test 737 .std_repr: True\n    test 738 .repr: 1.0\n    test 739 .toRepr: radians2 (1.0)\n    test 740 .units: radians2\n    test 741 radians2: radians2 ('X'): could not convert string to float: 'X'\n    test 742 radians2: U ('X'): could not convert string to float: 'X'\n    test 743 radians2: TypeError\n    test 744 radians2: radians2 ('X'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 745 .named: Test\n    test 746 .named2: Radians2 'Test'\n    test 747 .str: 1.0\n    test 748 .toStr: 1.0\n    test 749 .repr: 1.0\n    test 750 .toRepr: Test (1.0)\n    test 751 .units: radians2\n    test 752 .name: Test\n    test 753 ._name: Test\n    test 754 .str: 1.0\n    test 755 .repr: 1.0\n    test 756 delattr: ''\n\n    testing Radians_(1.0,) (pygeodesy.units, 26.03.12)\n    test 757 .classname: Radians_\n    test 758 isinstance: True\n    test 759 .name: radians_\n    test 760 .named: radians_\n    test 761 .named2: Radians_ 'radians_'\n    test 762 .str: 1.0\n    test 763 .toStr: 1.0\n    test 764 .std_repr: True\n    test 765 .repr: 1.0\n    test 766 .toRepr: radians_ (1.0)\n    test 767 .units: radians_\n    test 768 radians_: radians ('X'): strRad ('X') or suffix ('NSEW'): could not convert string to float: 'X'\n    test 769 radians_: U ('X'): strRad ('X') or suffix ('NSEW'): could not convert string to float: 'X'\n    test 770 radians_: TypeError\n    test 771 radians_: radians ('X'): strRad ('X') or suffix ('NSEW'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 772 .named: Test\n    test 773 .named2: Radians_ 'Test'\n    test 774 .str: 1.0\n    test 775 .toStr: 1.0\n    test 776 .repr: 1.0\n    test 777 .toRepr: Test (1.0)\n    test 778 .units: radians_\n    test 779 .name: Test\n    test 780 ._name: Test\n    test 781 .str: 1.0\n    test 782 .repr: 1.0\n    test 783 delattr: ''\n\n    testing Radius_(1.0,) (pygeodesy.units, 26.03.12)\n    test 784 .classname: Radius_\n    test 785 isinstance: True\n    test 786 .name: radius_\n    test 787 .named: radius_\n    test 788 .named2: Radius_ 'radius_'\n    test 789 .str: 1.0\n    test 790 .toStr: 1.0\n    test 791 .std_repr: True\n    test 792 .repr: 1.0\n    test 793 .toRepr: radius_ (1.0)\n    test 794 .units: radius_\n    test 795 radius_: radius ('X'): could not convert string to float: 'X'\n    test 796 radius_: U ('X'): could not convert string to float: 'X'\n    test 797 radius_: TypeError\n    test 798 radius_: radius ('X'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 799 .named: Test\n    test 800 .named2: Radius_ 'Test'\n    test 801 .str: 1.0\n    test 802 .toStr: 1.0\n    test 803 .repr: 1.0\n    test 804 .toRepr: Test (1.0)\n    test 805 .units: radius_\n    test 806 .name: Test\n    test 807 ._name: Test\n    test 808 .str: 1.0\n    test 809 .repr: 1.0\n    test 810 delattr: ''\n\n    testing Scalar(1.0,) (pygeodesy.units, 26.03.12)\n    test 811 .classname: Scalar\n    test 812 isinstance: True\n    test 813 .name: scalar\n    test 814 .named: scalar\n    test 815 .named2: Scalar 'scalar'\n    test 816 .str: 1.0\n    test 817 .toStr: 1.0\n    test 818 .std_repr: True\n    test 819 .repr: 1.0\n    test 820 .toRepr: scalar (1.0)\n    test 821 .units: scalar\n    test 822 scalar: scalar ('X'): could not convert string to float: 'X'\n    test 823 scalar: U ('X'): could not convert string to float: 'X'\n    test 824 scalar: TypeError\n    test 825 scalar: scalar ('X'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 826 .named: Test\n    test 827 .named2: Scalar 'Test'\n    test 828 .str: 1.0\n    test 829 .toStr: 1.0\n    test 830 .repr: 1.0\n    test 831 .toRepr: Test (1.0)\n    test 832 .units: scalar\n    test 833 .name: Test\n    test 834 ._name: Test\n    test 835 .str: 1.0\n    test 836 .repr: 1.0\n    test 837 delattr: ''\n\n    testing Scalar_(1.0,) (pygeodesy.units, 26.03.12)\n    test 838 .classname: Scalar_\n    test 839 isinstance: True\n    test 840 .name: scalar_\n    test 841 .named: scalar_\n    test 842 .named2: Scalar_ 'scalar_'\n    test 843 .str: 1.0\n    test 844 .toStr: 1.0\n    test 845 .std_repr: True\n    test 846 .repr: 1.0\n    test 847 .toRepr: scalar_ (1.0)\n    test 848 .units: scalar_\n    test 849 scalar_: scalar ('X'): could not convert string to float: 'X'\n    test 850 scalar_: U ('X'): could not convert string to float: 'X'\n    test 851 scalar_: TypeError\n    test 852 scalar_: scalar ('X'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 853 .named: Test\n    test 854 .named2: Scalar_ 'Test'\n    test 855 .str: 1.0\n    test 856 .toStr: 1.0\n    test 857 .repr: 1.0\n    test 858 .toRepr: Test (1.0)\n    test 859 .units: scalar_\n    test 860 .name: Test\n    test 861 ._name: Test\n    test 862 .str: 1.0\n    test 863 .repr: 1.0\n    test 864 delattr: ''\n\n    testing Float(1.0,) (pygeodesy.units, 26.03.12)\n    test 865 .classname: Float\n    test 866 isinstance: True\n    test 867 .name: float\n    test 868 .named: float\n    test 869 .named2: Float 'float'\n    test 870 .str: 1.0\n    test 871 .toStr: 1.0\n    test 872 .std_repr: True\n    test 873 .repr: 1.0\n    test 874 .toRepr: float (1.0)\n    test 875 .units: float\n    test 876 float: Float ('X'): could not convert string to float: 'X'\n    test 877 float: U ('X'): could not convert string to float: 'X'\n    test 878 float: TypeError\n    test 879 float: Float ('X'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 880 .named: Test\n    test 881 .named2: Float 'Test'\n    test 882 .str: 1.0\n    test 883 .toStr: 1.0\n    test 884 .repr: 1.0\n    test 885 .toRepr: Test (1.0)\n    test 886 .units: float\n    test 887 .name: Test\n    test 888 ._name: Test\n    test 889 .str: 1.0\n    test 890 .repr: 1.0\n    test 891 delattr: ''\n\n    testing Radius(1.0,) (pygeodesy.units, 26.03.12)\n    test 892 .classname: Radius\n    test 893 isinstance: True\n    test 894 .name: radius\n    test 895 .named: radius\n    test 896 .named2: Radius 'radius'\n    test 897 .str: 1.0\n    test 898 .toStr: 1.0\n    test 899 .std_repr: True\n    test 900 .repr: 1.0\n    test 901 .toRepr: radius (1.0)\n    test 902 .units: radius\n    test 903 radius: radius ('X'): could not convert string to float: 'X'\n    test 904 radius: U ('X'): could not convert string to float: 'X'\n    test 905 radius: TypeError\n    test 906 radius: radius ('X'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 907 .named: Test\n    test 908 .named2: Radius 'Test'\n    test 909 .str: 1.0\n    test 910 .toStr: 1.0\n    test 911 .repr: 1.0\n    test 912 .toRepr: Test (1.0)\n    test 913 .units: radius\n    test 914 .name: Test\n    test 915 ._name: Test\n    test 916 .str: 1.0\n    test 917 .repr: 1.0\n    test 918 delattr: ''\n\n    testing _Lat(1.0,) (pygeodesy.units, 26.03.12)\n    test 919 .classname: _Lat\n    test 920 isinstance: True\n    test 921 .name: _lat\n    test 922 .named: _lat\n    test 923 .named2: _Lat '_lat'\n    test 924 .str: 1.0\n    test 925 .toStr: 1.0\n    test 926 .std_repr: True\n    test 927 .repr: 1.0\n    test 928 .toRepr: _lat (1.0)\n    test 929 .units: _lat\n    test 930 _lat: lat ('X'): strDMS ('X') or suffix ('NS'): could not convert string to float: 'X'\n    test 931 _lat: U ('X'): strDMS ('X') or suffix ('NS'): could not convert string to float: 'X'\n    test 932 _lat: TypeError\n    test 933 _lat: lat ('X'): strDMS ('X') or suffix ('NS'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 934 .named: Test\n    test 935 .named2: _Lat 'Test'\n    test 936 .str: 1.0\n    test 937 .toStr: 1.0\n    test 938 .repr: 1.0\n    test 939 .toRepr: Test (1.0)\n    test 940 .units: _lat\n    test 941 .name: Test\n    test 942 ._name: Test\n    test 943 .str: 1.0\n    test 944 .repr: 1.0\n    test 945 delattr: ''\n\n    testing _Lon(1.0,) (pygeodesy.units, 26.03.12)\n    test 946 .classname: _Lon\n    test 947 isinstance: True\n    test 948 .name: _lon\n    test 949 .named: _lon\n    test 950 .named2: _Lon '_lon'\n    test 951 .str: 1.0\n    test 952 .toStr: 1.0\n    test 953 .std_repr: True\n    test 954 .repr: 1.0\n    test 955 .toRepr: _lon (1.0)\n    test 956 .units: _lon\n    test 957 _lon: lon ('X'): strDMS ('X') or suffix ('EW'): could not convert string to float: 'X'\n    test 958 _lon: U ('X'): strDMS ('X') or suffix ('EW'): could not convert string to float: 'X'\n    test 959 _lon: TypeError\n    test 960 _lon: lon ('X'): strDMS ('X') or suffix ('EW'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 961 .named: Test\n    test 962 .named2: _Lon 'Test'\n    test 963 .str: 1.0\n    test 964 .toStr: 1.0\n    test 965 .repr: 1.0\n    test 966 .toRepr: Test (1.0)\n    test 967 .units: _lon\n    test 968 .name: Test\n    test 969 ._name: Test\n    test 970 .str: 1.0\n    test 971 .repr: 1.0\n    test 972 delattr: ''\n\n    testing Band('U',) (pygeodesy.units, 26.03.12)\n    test 973 .classname: Band\n    test 974 isinstance: True\n    test 975 .name: band\n    test 976 .named: band\n    test 977 .named2: Band 'band'\n    test 978 .str: U\n    test 979 .toStr: U\n    test 980 .std_repr: True\n    test 981 .repr: 'U'\n    test 982 .toRepr: band ('U')\n    test 983 .units: band\n    test 984 error: X  FAILED, KNOWN, expected <class 'ValueError'>\n    test 985 error: X  FAILED, KNOWN, expected <class 'ValueError'>\n    test 986 Error: X  FAILED, KNOWN, expected <class 'TypeError'>\n    test 987 .named: Test\n    test 988 .named2: Band 'Test'\n    test 989 .str: U\n    test 990 .toStr: U\n    test 991 .repr: 'U'\n    test 992 .toRepr: Test ('U')\n    test 993 .units: band\n    test 994 .name: Test\n    test 995 ._name: Test\n    test 996 .str: U\n    test 997 .repr: 'U'\n    test 998 delattr: ''\n\n    testing Str('U',) (pygeodesy.units, 26.03.12)\n    test 999 .classname: Str\n    test 1000 isinstance: True\n    test 1001 .name: str\n    test 1002 .named: str\n    test 1003 .named2: Str 'str'\n    test 1004 .str: U\n    test 1005 .toStr: U\n    test 1006 .std_repr: True\n    test 1007 .repr: 'U'\n    test 1008 .toRepr: str ('U')\n    test 1009 .units: str\n    test 1010 error: X  FAILED, KNOWN, expected <class 'ValueError'>\n    test 1011 error: X  FAILED, KNOWN, expected <class 'ValueError'>\n    test 1012 Error: X  FAILED, KNOWN, expected <class 'TypeError'>\n    test 1013 .named: Test\n    test 1014 .named2: Str 'Test'\n    test 1015 .str: U\n    test 1016 .toStr: U\n    test 1017 .repr: 'U'\n    test 1018 .toRepr: Test ('U')\n    test 1019 .units: str\n    test 1020 .name: Test\n    test 1021 ._name: Test\n    test 1022 .str: U\n    test 1023 .repr: 'U'\n    test 1024 delattr: ''\n\n    testing Bool(True,) (pygeodesy.units, 26.03.12)\n    test 1025 .classname: Bool\n    test 1026 isinstance: True\n    test 1027 .name: bool\n    test 1028 .named: bool\n    test 1029 .named2: Bool 'bool'\n    test 1030 .str: True\n    test 1031 .toStr: True\n    test 1032 .std_repr: True\n    test 1033 .repr: True\n    test 1034 .toRepr: bool (True)\n    test 1035 .units: bool\n    test 1036 error: True  FAILED, KNOWN, expected <class 'ValueError'>\n    test 1037 error: True  FAILED, KNOWN, expected <class 'ValueError'>\n    test 1038 Error: True  FAILED, KNOWN, expected <class 'TypeError'>\n    test 1039 .named: Test\n    test 1040 .named2: Bool 'Test'\n    test 1041 .str: True\n    test 1042 .toStr: True\n    test 1043 .repr: True\n    test 1044 .toRepr: Test (True)\n    test 1045 .units: bool\n    test 1046 .name: Test\n    test 1047 ._name: Test\n    test 1048 .str: True\n    test 1049 .repr: True\n    test 1050 delattr: ''\n\n    testing Int(2,) (pygeodesy.units, 26.03.12)\n    test 1051 .classname: Int\n    test 1052 isinstance: True\n    test 1053 .name: int\n    test 1054 .named: int\n    test 1055 .named2: Int 'int'\n    test 1056 .str: 2\n    test 1057 .toStr: 2\n    test 1058 .std_repr: True\n    test 1059 .repr: 2\n    test 1060 .toRepr: int (2)\n    test 1061 .units: int\n    test 1062 int: Int ('X'): invalid literal for int() with base 10: 'X'\n    test 1063 int: U ('X'): invalid literal for int() with base 10: 'X'\n    test 1064 int: TypeError\n    test 1065 int: Int ('X'): invalid literal for int() with base 10: 'X'  FAILED, KNOWN, expected 'X'\n    test 1066 .named: Test\n    test 1067 .named2: Int 'Test'\n    test 1068 .str: 2\n    test 1069 .toStr: 2\n    test 1070 .repr: 2\n    test 1071 .toRepr: Test (2)\n    test 1072 .units: int\n    test 1073 .name: Test\n    test 1074 ._name: Test\n    test 1075 .str: 2\n    test 1076 .repr: 2\n    test 1077 delattr: ''\n\n    testing Int_(2,) (pygeodesy.units, 26.03.12)\n    test 1078 .classname: Int_\n    test 1079 isinstance: True\n    test 1080 .name: int_\n    test 1081 .named: int_\n    test 1082 .named2: Int_ 'int_'\n    test 1083 .str: 2\n    test 1084 .toStr: 2\n    test 1085 .std_repr: True\n    test 1086 .repr: 2\n    test 1087 .toRepr: int_ (2)\n    test 1088 .units: int_\n    test 1089 int_: Int_ ('X'): invalid literal for int() with base 10: 'X'\n    test 1090 int_: U ('X'): invalid literal for int() with base 10: 'X'\n    test 1091 int_: TypeError\n    test 1092 int_: Int_ ('X'): invalid literal for int() with base 10: 'X'  FAILED, KNOWN, expected 'X'\n    test 1093 .named: Test\n    test 1094 .named2: Int_ 'Test'\n    test 1095 .str: 2\n    test 1096 .toStr: 2\n    test 1097 .repr: 2\n    test 1098 .toRepr: Test (2)\n    test 1099 .units: int_\n    test 1100 .name: Test\n    test 1101 ._name: Test\n    test 1102 .str: 2\n    test 1103 .repr: 2\n    test 1104 delattr: ''\n\n    testing Number_(2,) (pygeodesy.units, 26.03.12)\n    test 1105 .classname: Number_\n    test 1106 isinstance: True\n    test 1107 .name: number_\n    test 1108 .named: number_\n    test 1109 .named2: Number_ 'number_'\n    test 1110 .str: 2\n    test 1111 .toStr: 2\n    test 1112 .std_repr: True\n    test 1113 .repr: 2\n    test 1114 .toRepr: number_ (2)\n    test 1115 .units: number_\n    test 1116 number_: number ('X'): invalid literal for int() with base 10: 'X'\n    test 1117 number_: U ('X'): invalid literal for int() with base 10: 'X'\n    test 1118 number_: TypeError\n    test 1119 number_: number ('X'): invalid literal for int() with base 10: 'X'  FAILED, KNOWN, expected 'X'\n    test 1120 .named: Test\n    test 1121 .named2: Number_ 'Test'\n    test 1122 .str: 2\n    test 1123 .toStr: 2\n    test 1124 .repr: 2\n    test 1125 .toRepr: Test (2)\n    test 1126 .units: number_\n    test 1127 .name: Test\n    test 1128 ._name: Test\n    test 1129 .str: 2\n    test 1130 .repr: 2\n    test 1131 delattr: ''\n\n    testing Precision_(2,) (pygeodesy.units, 26.03.12)\n    test 1132 .classname: Precision_\n    test 1133 isinstance: True\n    test 1134 .name: precision_\n    test 1135 .named: precision_\n    test 1136 .named2: Precision_ 'precision_'\n    test 1137 .str: 2\n    test 1138 .toStr: 2\n    test 1139 .std_repr: True\n    test 1140 .repr: 2\n    test 1141 .toRepr: precision_ (2)\n    test 1142 .units: precision_\n    test 1143 precision_: precision ('X'): invalid literal for int() with base 10: 'X'\n    test 1144 precision_: U ('X'): invalid literal for int() with base 10: 'X'\n    test 1145 precision_: TypeError\n    test 1146 precision_: precision ('X'): invalid literal for int() with base 10: 'X'  FAILED, KNOWN, expected 'X'\n    test 1147 .named: Test\n    test 1148 .named2: Precision_ 'Test'\n    test 1149 .str: 2\n    test 1150 .toStr: 2\n    test 1151 .repr: 2\n    test 1152 .toRepr: Test (2)\n    test 1153 .units: precision_\n    test 1154 .name: Test\n    test 1155 ._name: Test\n    test 1156 .str: 2\n    test 1157 .repr: 2\n    test 1158 delattr: ''\n\n    testing Zone(2,) (pygeodesy.units, 26.03.12)\n    test 1159 .classname: Zone\n    test 1160 isinstance: True\n    test 1161 .name: zone\n    test 1162 .named: zone\n    test 1163 .named2: Zone 'zone'\n    test 1164 .str: 2\n    test 1165 .toStr: 2\n    test 1166 .std_repr: True\n    test 1167 .repr: 2\n    test 1168 .toRepr: zone (2)\n    test 1169 .units: zone\n    test 1170 zone: zone ('X'): invalid literal for int() with base 10: 'X'\n    test 1171 zone: U ('X'): invalid literal for int() with base 10: 'X'\n    test 1172 zone: TypeError\n    test 1173 zone: zone ('X'): invalid literal for int() with base 10: 'X'  FAILED, KNOWN, expected 'X'\n    test 1174 .named: Test\n    test 1175 .named2: Zone 'Test'\n    test 1176 .str: 2\n    test 1177 .toStr: 2\n    test 1178 .repr: 2\n    test 1179 .toRepr: Test (2)\n    test 1180 .units: zone\n    test 1181 .name: Test\n    test 1182 ._name: Test\n    test 1183 .str: 2\n    test 1184 .repr: 2\n    test 1185 delattr: ''\n\n    testing Epoch(1901,) (pygeodesy.units, 26.03.12)\n    test 1186 .classname: Epoch\n    test 1187 isinstance: True\n    test 1188 .name: epoch\n    test 1189 .named: epoch\n    test 1190 .named2: Epoch 'epoch'\n    test 1191 .str: 1901\n    test 1192 .toStr: 1901\n    test 1193 .std_repr: False\n    test 1194 .repr: epoch (1901)\n    test 1195 .toRepr: epoch (1901)\n    test 1196 .units: epoch\n    test 1197 epoch: epoch ('X'): could not convert string to float: 'X'\n    test 1198 epoch: U ('X'): could not convert string to float: 'X'\n    test 1199 epoch: TypeError\n    test 1200 epoch: epoch ('X'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 1201 .named: Test\n    test 1202 .named2: Epoch 'Test'\n    test 1203 .str: 1901\n    test 1204 .toStr: 1901\n    test 1205 .repr: Test (1901)\n    test 1206 .toRepr: Test (1901)\n    test 1207 .units: epoch\n    test 1208 .name: Test\n    test 1209 ._name: Test\n    test 1210 .str: 1901\n    test 1211 .repr: Test (1901)\n    test 1212 delattr: ''\n\n    testing(pygeodesy.units, 26.03.12)\n\n    test 1213 Azimuth: 1.0\n\n    test 1214 Bearing: 1.0\n    test 1215 Bearing_: 0.01745\n\n    test 1216 Lamd: 6.30\n    test 1217 Phid: 6.30\n\n    test 1218 FIx: 1.0  FAILED, KNOWN, expected 1\n    test 1219 FIx: 1.5\n\n    test 1220 Dash: -\n    test 1221 Dash: -\n\n    test 1222 Dash: '-'\n    test 1223 Dash: Dash ('-')\n\n    test 1224 Join_d: c-a-l-l\n    test 1225 Join_d: c-a-l-l\n\n    test 1226 Join_d: 'c-a-l-l'\n    test 1227 Join_d: Join_d ('c-a-l-l')\n\n    52 of 1227 testUnits.py tests (4.2%) FAILED, ALL KNOWN (pygeodesy 26.3.26 Python 3.13.12 64bit arm64 coverage 7.10.7 geographiclib 2.1 numpy 2.3.3 scipy 1.16.2 Math 2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 macOS 26.3.1 isLazy 1 -W  default) 57.378 ms\nrunning /Library/Framewo....n3.13 -W default ~/PyGeodesy/test/testUps.py\n\n    testing testUps.py 23.03.27 (module pygeodesy.ups 25.04.14) isLazy=1\n    test 1 Ups: 00 N 448251.0 5411932.0001\n    test 2 Ups: 00 N 448252 5411933\n    test 3 Ups: 00 N 448251.795 5411932.678\n    test 4 Ups: 00Z N 448251.8 5411932.7 n/a n/a\n    test 5 Ups2: [Z:00, H:N, E:448252, N:5411933]\n    test 6 UtmUps.toLatLon: 43.610051°N, 004.46308°E\n    test 7 UtmUps.toLatLon: 43°36′36.18″N, 004°27′47.09″E\n    test 8 UtmUps.toMgrs: 60T UP 60176 38249\n    test 9 toUps: lat ('43.684097°'): inside UTM range [-79.5, 83.5]\n    test 10 UtmUps.toUtm: 60 N 360177 4838249\n    test 11 toUpsID1: 00 N 1530125.78 2426773.6 -132.24798917° 0.99647445\n    test 12 toUtmUps8ID2: 38 N 467367.68 8100752.13 -57.37878422′ 0.99961302  FAILED, KNOWN, expected 38 N 3320416.75 632668.43 +44.0° 1.01619505\n    test 13 toUtmUps8ID2: 00 N 3320416.75 632668.43 +44.0° 1.01619505\n    test 14 toUpsID3: 00 S 2222979.47 1797474.9 -132.24786194° 0.99455723\n    test 15 Ups.toLatLonID4: 84°17′14.04″N, 132°14′52.76″W\n    test 16 Ups.toLatLonID4: 84.287234°N, 132.247989°W\n    test 17 Ups.toLatLonID5: 73°00′00.0″N, 044°00′00.0″E\n    test 18 Ups.toLatLonID5: 73.0°N, 044.0°E\n    test 19 Ups.toLatLonID6: 87°17′14.4″S, 132°14′52.3″E\n    test 20 Ups.toLatLonID6: 87.287333°S, 132.247861°E\n    test 21 latlon: 84.0°N, 084.0°E\n    test 22 toUps: 00 N 2663075 1930308\n    test 23 toUps: 00 N 2663075.299562 1930307.977716 +84.0° 0.99673\n    test 24 toUps(None): (0, 'N', 2663075.299562, 1930307.977716, 'Z', ...)\n    test 25 .scale0: 0.994000\n    test 26 rescale0: 0.997261\n    test 27 NGA-10.2-1: 00 N 2000000.0 2000000.0 +0.0″ 0.994\n    test 28 NGA-10.2-2: 00 N 1998062.320046 2111009.610243 -179.0° 0.994076\n    test 29 NGA-10.2-3: 00 N 1777930.731071 2000000.0 -90.0° 0.994303\n    test 30 NGA-10.2-4: 00 N 1994185.827038 1666906.254073 -1.0° 0.994682\n    test 31 NGA-10.2-5: 00 N 2000000.0 1555731.570643 +0.0″ 0.995212\n    test 32 NGA-10.2-6: 00 N 2009694.068153 1444627.207468 +1.0° 0.995895\n    test 33 NGA-10.2-7: 00 N 2666626.157825 1988363.997132 +89.0° 0.996730\n    test 34 NGA-10.2-8: 46 N 459200.256323 9217519.441609 -2.97767886° 0.997718\n    test 35 NGA-10.2-9: 46 N 468930.934996 9105366.008486 -1.98055172° 0.998860\n    test 36 NGA-10.2-10: 60 N 534921.971582 8993806.415149 +1.97539632° 1.000156\n    test 37 NGA-10.2-11: 01 N 441867.784867 8883084.955948 -2.95450468° 1.001608\n    test 38 NGA-10.2-12: 31 N 243900.35203 4432069.056899 -1.92940969° 1.0004075\n    test 39 NGA-10.2-13: 01 N 277707.830749 331796.291679 -6.28291137′ 1.00021172\n    test 40 NGA-10.2-14: 16 N 166223.907623 221366.16603 -6.28776606′ 1.00097936\n    test 41 NGA-10.2-15: 30 N 722561.736479 110597.972524 +2.09515682′ 1.00021322\n    test 42 NGA-10.2-16: 31 N 166021.443081 0.0 +0.0″ 1.00098106\n    test 43 NGA-10.2-17: 31 S 277438.263521 9889402.027476 +2.09515682′ 1.00021322\n    test 44 NGA-10.2-18: 46 S 166223.907623 9778633.83397 +6.28776606′ 1.00097936\n    test 45 NGA-10.2-19: 60 S 722292.169251 9668203.708321 -6.28291137′ 1.00021172\n    test 46 NGA-10.2-20: 01 S 166831.065275 9557263.747314 +12.56782777′ 1.00097428\n    test 47 NGA-10.3-1: -64.9164123332 -135.0\n    test 48 NGA-10.3-2: -70.0552944014 -153.4349488229\n    test 49 NGA-10.3-3: -72.1263610163 180.0  FAILED, KNOWN, expected -72.1263610163 -180.0\n    test 50 NGA-10.3-4: -70.0552944014 153.4349488229\n    test 51 NGA-10.3-5: -64.9164123332 135.0\n    test 52 NGA-10.3-6: -70.0552944014 -116.5650511771\n    test 53 NGA-10.3-7: -77.3120791908 -135.0\n    test 54 NGA-10.3-8: -81.0106632645 180.0\n    test 55 NGA-10.3-9: -77.3120791908 135.0\n    test 56 NGA-10.3-10: -70.0552944014 116.5650511771\n    test 57 NGA-10.3-11: -72.1263610163 -90.0\n    test 58 NGA-10.3-12: -81.0106632645 -90.0\n    test 59 NGA-10.3-13: -90.0 0.0\n    test 60 NGA-10.3-14: -81.0106632645 90.0\n    test 61 NGA-10.3-15: -72.1263610163 90.0\n    test 62 NGA-10.3-16: -70.0552944014 -63.4349488229\n    test 63 NGA-10.3-17: -77.3120791908 -45.0\n    test 64 NGA-10.3-18: -81.0106632645 0.0\n    test 65 NGA-10.3-19: -77.3120791908 45.0\n    test 66 NGA-10.3-20: -70.0552944014 63.4349488229\n    test 67 NGA-10.3-21: -64.9164123332 -45.0\n    test 68 NGA-10.3-22: -70.0552944014 -26.5650511771\n    test 69 NGA-10.3-23: -72.1263610163 0.0\n    test 70 NGA-10.3-24: -70.0552944014 26.5650511771\n    test 71 NGA-10.3-25: -64.9164123332 45.0\n    test 72 toUps: 00 N 2000000 1288738\n    test 73 toUtm: 02 N 611555 10703765\n    test 74 toUtm: [Z:00Z, H:N, E:2000000, N:2000000]\n\n    2 of 74 testUps.py tests (2.7%) FAILED, ALL KNOWN (pygeodesy 26.3.26 Python 3.13.12 64bit arm64 coverage 7.10.7 geographiclib 2.1 numpy 2.3.3 scipy 1.16.2 Math 2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 macOS 26.3.1 isLazy 1 -W  default) 36.014 ms\nrunning /Library/Framewo....n3.13 -W default ~/PyGeodesy/test/testUtily.py\n\n    testing testUtily.py 24.12.24 (module pygeodesy.utily 26.03.20) isLazy=1\n\n    test 1 degrees90(PI_2): 90.0\n    test 2 degrees90(PI): 0.0\n    test 3 degrees90(PI2): 0.0\n    test 4 degrees90(-PI_2): -90.0\n    test 5 degrees90(-PI): 0.0\n    test 6 degrees90(-PI2): 0.0\n\n    test 7 degrees180(PI_2): 90.0\n    test 8 degrees180(PI): 180.0\n    test 9 degrees180(PI2): 0.0\n    test 10 degrees180(-PI_2): -90.0\n    test 11 degrees180(-PI): -180.0\n    test 12 degrees180(-PI2): 0.0\n\n    test 13 degrees360(PI_2): 90.0\n    test 14 degrees360(PI): 180.0\n    test 15 degrees360(PI2): 0.0\n    test 16 degrees360(-PI_2): 270.0\n    test 17 degrees360(-PI): 180.0\n    test 18 degrees360(-PI2): 0.0\n\n    test 19 degrees2grades(90): 100.0\n    test 20 degrees2grades(180): 200.0\n    test 21 degrees2grades(360): 400.0\n    test 22 degrees2grades(-90): -100.0\n    test 23 degrees2grades(-180): -200.0\n    test 24 degrees2grades(-360): -400.0\n\n    test 25 grades400(PI_2): 100.0\n    test 26 grades400(PI): 200.0\n    test 27 grades400(PI2): 0.0\n    test 28 grades400(-PI_2): 300.0\n    test 29 grades400(-PI): 200.0\n    test 30 grades400(-PI2): 0.0\n\n    test 31 grades2degrees(100): 90.0\n    test 32 grades2degrees(200): 180.0\n    test 33 grades2degrees(400): 360.0\n    test 34 grades2degrees(-100): -90.0\n    test 35 grades2degrees(-200): -180.0\n    test 36 grades2degrees(-400): -360.0\n\n    test 37 grades2radians(100): 1.5707963267948966\n    test 38 grades2radians(200): 3.141592653589793\n    test 39 grades2radians(400): 6.283185307179586\n    test 40 grades2radians(-100): -1.5707963267948966\n    test 41 grades2radians(-200): -3.141592653589793\n    test 42 grades2radians(-400): -6.283185307179586\n\n    test 43 radiansPI_2(90): 1.5707963267948966\n    test 44 radiansPI_2(180): 0.0\n    test 45 radiansPI_2(360): 0.0\n    test 46 radiansPI_2(-90): -1.5707963267948966\n    test 47 radiansPI_2(-180): 0.0\n    test 48 radiansPI_2(-360): 0.0\n\n    test 49 radiansPI(90): 1.5707963267948966\n    test 50 radiansPI(180): 3.141592653589793\n    test 51 radiansPI(360): 0.0\n    test 52 radiansPI(-90): -1.5707963267948966\n    test 53 radiansPI(-180): -3.141592653589793\n    test 54 radiansPI(-360): 0.0\n\n    test 55 radiansPI2(90): 1.5707963267948966\n    test 56 radiansPI2(180): 3.141592653589793\n    test 57 radiansPI2(360): 0.0\n    test 58 radiansPI2(-90): 4.71238898038469\n    test 59 radiansPI2(-180): 3.141592653589793\n    test 60 radiansPI2(-360): 0.0\n\n    test 61 wrap90(90): 90.0\n    test 62 wrap90(180): 0.0\n    test 63 wrap90(360): 0.0\n    test 64 wrap90(-90): -90.0\n    test 65 wrap90(-180): 0.0\n    test 66 wrap90(-360): 0.0\n\n    test 67 wrap180(90): 90.0\n    test 68 wrap180(180): 180.0\n    test 69 wrap180(360): 0.0\n    test 70 wrap180(-90): -90.0\n    test 71 wrap180(-180): -180.0\n    test 72 wrap180(-360): 0.0\n\n    test 73 wrap360(90): 90.0\n    test 74 wrap360(180): 180.0\n    test 75 wrap360(360): 0.0\n    test 76 wrap360(-90): 270.0\n    test 77 wrap360(-180): 180.0\n    test 78 wrap360(-360): 0.0\n\n    test 79 wrapPI_2(PI_2): 1.5707963267948966\n    test 80 wrapPI_2(PI): 0.0\n    test 81 wrapPI_2(PI2): 0.0\n    test 82 wrapPI_2(-PI_2): -1.5707963267948966\n    test 83 wrapPI_2(-PI): 0.0\n    test 84 wrapPI_2(-PI2): 0.0\n\n    test 85 wrapPI(PI_2): 1.5707963267948966\n    test 86 wrapPI(PI): 3.141592653589793\n    test 87 wrapPI(PI2): 0.0\n    test 88 wrapPI(-PI_2): -1.5707963267948966\n    test 89 wrapPI(-PI): -3.141592653589793\n    test 90 wrapPI(-PI2): 0.0\n\n    test 91 wrapPI2(PI_2): 1.5707963267948966\n    test 92 wrapPI2(PI): 3.141592653589793\n    test 93 wrapPI2(PI2): 0.0\n    test 94 wrapPI2(-PI_2): 4.71238898038469\n    test 95 wrapPI2(-PI): 3.141592653589793\n    test 96 wrapPI2(-PI2): 0.0\n\n    test 97 unroll180: -160.0, -250.0\n    test 98 unroll180: 200.0, 110.0\n\n    test 99 unroll180: -160.0, -250.0\n    test 100 unroll180: 920.0, 830.0\n\n    test 101 unroll180: -160.0, -270.0\n    test 102 unroll180: 200.0, 90.0\n\n    test 103 unroll180: -160.0, -990.0\n    test 104 unroll180: 920.0, 90.0\n\n    test 105 atan1: 0.0\n    test 106 atan1: 0.0\n\n    test 107 cot  : -0.354707939906\n    test 108 cot_ : -0.354707939906\n\n    test 109 cotd : -0.354707939906\n    test 110 cotd_: -0.354707939906\n\n    test 111 sincos2: 3.885780586188048e-16  FAILED, KNOWN, expected 1.7763568394002505e-15\n    test 112 sincos2d: 9.992007221626409e-16  FAILED, KNOWN, expected 1.7763568394002505e-15\n\n    test 113 Matan2d : 2.842170943040401e-14  FAILED, KNOWN, expected 1.7763568394002505e-15\n    test 114 Msincosd: 8.881784197001252e-16  FAILED, KNOWN, expected 1.7763568394002505e-15\n    test 115 sincos*d: 2.7755575615628914e-16  FAILED, KNOWN, expected 1.7763568394002505e-15\n\n    test 116 tan  : -2.819220794060\n    test 117 tan_ : -2.819220794060\n\n    test 118 tand : -2.819220794060\n    test 119 tand_: -2.819220794060\n\n    test 120 iFt2m: 187441\n    test 121 iFt2m: 757050\n    test 122 sFt2m: 187441\n    test 123 sFt2m: 757050\n\n    test 124 m2iFt: 614963.91\n    test 125 m2iFt: 2483759.84\n    test 126 m2sFt: 614962.68\n    test 127 m2sFt: 2483754.88\n\n    test 128 acre2ha: 0.404686\n    test 129 acre2m2: 4046.856422\n    test 130 chain2m: 20.116800\n    test 131 fathom2m: 1.828800\n    test 132 furlong2m: 201.168000\n    test 133 ha2acre: 2.471054\n    test 134 toise2m: 1.949044\n    test 135 yard2m: 0.914400\n    test 136 m2chain: 0.049710\n    test 137 m2fathom: 0.546807\n    test 138 m2furlong: 0.004971\n    test 139 m2ha: 0.000100\n    test 140 m2toise: 0.513072\n    test 141 m2yard: 1.093613\n\n    test 142 degrees2m: 10007557.1761\n    test 143 degrees2m: 8666798.7443\n    test 144 m2degrees: 90.0\n\n    test 145 degrees2m: 20015114.3522\n    test 146 degrees2m: 19987684.3336\n    test 147 m2degrees: 180.0\n\n    test 148 m2degrees2m(45, lat=0): 45.00\n    test 149 m2degrees2m(45, lat=7): 45.00\n    test 150 m2degrees2m(45, lat=14): 45.00\n    test 151 m2degrees2m(45, lat=21): 45.00\n    test 152 m2degrees2m(45, lat=28): 45.00\n    test 153 m2degrees2m(45, lat=35): 45.00\n    test 154 m2degrees2m(45, lat=42): 45.00\n    test 155 m2degrees2m(45, lat=49): 45.00\n    test 156 m2degrees2m(45, lat=56): 45.00\n    test 157 m2degrees2m(45, lat=63): 45.00\n    test 158 m2degrees2m(45, lat=70): 45.00\n    test 159 m2degrees2m(45, lat=77): 45.00\n    test 160 m2degrees2m(45, lat=84): 45.00\n\n    test 161 isPoints2: False\n\n    test 162 tan_2_semi: PI[1] edge (3.141592): semi-circular\n    test 163 sincostan3(+0.0000): (0.0, 1.0, 0.0)\n    test 164 sincostan3(-0.0000): (-0.0, 1.0, -0.0)  FAILED, KNOWN, expected (0.0, 1.0, 0.0)\n    test 165 sincostan3(+1.5708): (1.0, 0.0, inf)\n    test 166 sincostan3(-1.5708): (-1.0, 0.0, -inf)\n    test 167 sincostan3(+3.1416): (0.0, -1.0, -0.0)\n    test 168 sincostan3(-3.1416): (-0.0, -1.0, 0.0)\n    test 169 sincostan3(+4.7124): (-1.0, 0.0, -inf)  FAILED, KNOWN, expected (-1.0, -0.0, inf)\n    test 170 sincostan3(-1.5708): (-1.0, 0.0, -inf)\n    test 171 sincostan3(+6.2832): (0.0, 1.0, 0.0)  FAILED, KNOWN, expected (-0.0, 1.0, -0.0)\n    test 172 sincostan3(-6.2832): (-0.0, 1.0, -0.0)  FAILED, KNOWN, expected (0.0, 1.0, 0.0)\n\n    9 of 172 testUtily.py tests (5.2%) FAILED, ALL KNOWN (pygeodesy 26.3.26 Python 3.13.12 64bit arm64 coverage 7.10.7 geographiclib 2.1 numpy 2.3.3 scipy 1.16.2 Math 2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 macOS 26.3.1 isLazy 1 -W  default) 11.897 ms\nrunning /Library/Framewo....n3.13 -W default ~/PyGeodesy/test/testUtm.py\n\n    testing testUtm.py 25.04.25 (module pygeodesy.utm 24.11.26) isLazy=1\n    test 1 Utm1: 03 N 448251.0 5411932.0001\n    test 2 Utm2: 31 N 448252 5411933\n    test 3 Utm2: 31 N 448251.795 5411932.678\n    test 4 Utm2: 31 N 448251.8 5411932.7 n/a n/a\n    test 5 Utm.toLatLon1: 48.8582°N, 002.2945°E\n    test 6 Utm.toLatLon1: 48°51′29.52″N, 002°17′40.2″E\n    test 7 toUtm1: 31 N 448252 5411933\n    test 8 toUtm1: 31 N 448251.795 5411932.678\n    test 9 toUtm2: [Z:31U, H:N, E:448252, N:5411933, C:-31.87873265′, S:0.9996329]\n    test 10 toUtm4: 48 N 377302 1483035\n    test 11 toUtm5: 48P N 377302.354183 1483034.777084 -15.77480856′ 0.99978623\n    test 12 toUtm6: 13 S 622698 8516965\n    test 13 toUtm7: 13L S 622697.645817 8516965.222916 -15.77480856′ 0.99978623\n    test 14 toEtm: 13 S 622698 8516965\n    test 15 toMgrs1: 13L FF 22697 16965\n    test 16 toMgrs2: 31U DQ 48251 11932\n    test 17 toUtm14: 14 S -27436 8512042\n    test 18 Utm8: 18 N 516620 4574500\n    test 19 Utm8.toLatLon: 41.321801°N, 074.801413°W\n    test 20 Utm8.toLatLon: 41.321801N, 074.801413W\n    test 21 toUtm(61.44°N, 025.4°E): 35V N 414668 6812845\n    test 22 toUtm(47.04°S, 073.48°W): 18G S 615472 4789270\n    test 23 toUtm(40.4°N, 074.7°W): 18T N 525458 4472198\n    test 24 toUtm(44.5°N, 088.5°W): 16T N 380753 4928503\n    test 25 toUtm(50.8694°N, 115.6508°W): 11U N 594937 5636169\n    test 26 toUtm(00.0°N, 000.0°E): 31N N 166021 0\n    test 27 toUtm(00.13°N, 000.2324°W): 30N N 808084 14386\n    test 28 toUtm(45.6456°S, 023.3545°E): 34G S 683474 4942631\n    test 29 toUtm(12.765°S, 033.8765°W): 25L S 404859 8588691\n    test 30 toUtm(80.5434°S, 170.654°W): lat ('-80.5434°'): outside UTM range [-80, 84)\n    test 31 toUtm(90.0°N, 177.0°E): lat ('90.0°'): outside UTM range [-80, 84)\n    test 32 toUtm(90.0°S, 177.0°W): lat ('-90.0°'): outside UTM range [-80, 84)\n    test 33 toUtm(90.0°N, 003.0°E): lat ('90.0°'): outside UTM range [-80, 84)\n    test 34 toUtm(23.4578°N, 135.4545°W): 08Q N 453580 2594273\n    test 35 toUtm(77.345°N, 156.9876°E): 57X N 450794 8586116\n    test 36 toUtm(89.3454°S, 048.9306°W): lat ('-89.3454°'): outside UTM range [-80, 84)\n    test 37 toUtm(60.0°N, 001.0°E): 31V N 388456 6653097\n    test 38 toUtm(60.0°N, 003.0°E): 32V N 165640 6666594\n    test 39 toUtm(60.0°N, 006.0°E): 32V N 332705 6655205\n    test 40 toUtm(60.0°N, 009.0°E): 32V N 500000 6651411\n    test 41 toUtm(60.0°N, 012.0°E): 33V N 332705 6655205\n    test 42 toUtm(76.0°N, 001.0°E): 31X N 446000 8436100\n    test 43 toUtm(76.0°N, 007.0°E): 31X N 607943 8438843\n    test 44 toUtm(76.0°N, 013.0°E): 33X N 446000 8436100\n    test 45 toUtm(76.0°N, 019.0°E): 33X N 607943 8438843\n    test 46 toUtm(76.0°N, 025.0°E): 35X N 446000 8436100\n    test 47 toUtm(76.0°N, 031.0°E): 35X N 607943 8438843\n    test 48 toUtm(76.0°N, 037.0°E): 37X N 446000 8436100\n    test 49 toUtm(50.77535°N, 006.08389°E): 32U N 294409 5628898\n    test 50 toUtm(40.71435°N, 074.00597°W): 18T N 583960 4507523\n    test 51 toUtm(41.28646°S, 174.77624°E): 60G S 313784 5427057\n    test 52 toUtm(33.92487°S, 018.42406°E): 34H S 261878 6243186\n    test 53 toUtm(32.89018°S, 068.84405°W): 19H S 514586 6360877\n    test 54 toUtm(64.83778°N, 147.71639°W): 06W N 466013 7190568\n    test 55 toUtm(56.7968°N, 005.00601°W): 30V N 377486 6296562\n    test 56 toUtm(84.0°N, 005.00601°W): lat ('84.0°'): outside UTM range [-80, 84)\n    test 57 toUtm('Mt Assiniboine'): [Z:11U, H:N, E:594934, N:5636174]\n    test 58 Utm9: 55 S 321441 5810117\n    test 59 Utm9.toLatLon(eps=2.2204e-12): -37.83891644, 144.97077387\n    test 60 Utm9.toLatLon(eps=2.2204e-13): -37.83891644, 144.97077387\n    test 61 Utm9.toLatLon(eps=2.2204e-14): -37.83891644, 144.97077387\n    test 62 Utm9.toLatLon(eps=2.2204e-15): -37.83891644, 144.97077387\n    test 63 Utm9.toLatLon(eps=2.2204e-16): -37.83891644, 144.97077387\n    test 64 Utm9.toLatLon(eps=2.2204e-17): -37.83891644, 144.97077387\n    test 65 Utm9.toLatLon(eps=2.2204e-18): -37.83891644, 144.97077387\n    test 66 Utm9.toLatLon(eps=2.2204e-19): -37.83891644, 144.97077387\n    test 67 Utm9.toLatLon(eps=2.2204e-20): -37.83891644, 144.97077387\n    test 68 Utm10: 31 N 400000 5000000\n    test 69 Utm10.toLatLon(eps=2.2204e-12): 45.14639288, 1.72796704\n    test 70 Utm10.toLatLon(eps=2.2204e-13): 45.14639288, 1.72796704\n    test 71 Utm10.toLatLon(eps=2.2204e-14): 45.14639288, 1.72796704\n    test 72 Utm10.toLatLon(eps=2.2204e-15): 45.14639288, 1.72796704\n    test 73 Utm10.toLatLon(eps=2.2204e-16): 45.14639288, 1.72796704\n    test 74 Utm10.toLatLon(eps=2.2204e-17): 45.14639288, 1.72796704\n    test 75 Utm10.toLatLon(eps=2.2204e-18): 45.14639288, 1.72796704\n    test 76 Utm10.toLatLon(eps=2.2204e-19): 45.14639288, 1.72796704\n    test 77 Utm10.toLatLon(eps=2.2204e-20): 45.14639288, 1.72796704\n    test 78 Utm111: 37 N 1399093 8314607\n    test 79 Utm111.toLatLon(eps=2.2204e-12): 70.54298527, 40.28205459\n    test 80 Utm111.toLatLon(eps=2.2204e-13): 70.54298527, 40.28205459\n    test 81 Utm111.toLatLon(eps=2.2204e-14): 70.54298527, 40.28205459\n    test 82 Utm111.toLatLon(eps=2.2204e-15): 70.54298527, 40.28205459\n    test 83 Utm111.toLatLon(eps=2.2204e-16): 70.54298527, 40.28205459\n    test 84 Utm111.toLatLon(eps=2.2204e-17): 70.54298527, 40.28205459\n    test 85 Utm111.toLatLon(eps=2.2204e-18): 70.54298527, 40.28205459\n    test 86 Utm111.toLatLon(eps=2.2204e-19): 70.54298527, 40.28205459\n    test 87 Utm111.toLatLon(eps=2.2204e-20): 70.54298527, 40.28205459\n    test 88 CV#86: [Z:01, H:N, E:100000, N:0, C:n/a, S:n/a]\n    test 89 CV#86: 00.0°N, 179.407673°E\n    test 90 CV#86: [Z:60, H:N, E:767993, N:0, C:+0.0″, S:1.000489]  FAILED, KNOWN, expected [Z:01, H:N, E:100000, N:0, ...]\n    test 91 #63: 32 N 280000 5653000\n    test 92 toMgrs: 32U KB 80000 53000\n    test 93 toLatLon: (50.986484, 5.865326, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), -2.436605, 1.000194)\n    test 94 band: U\n    test 95 band: band ('?'): not 'C', 'D', 'E', 'F', 'G', 'H', 'J', 'K', 'L', 'M', 'N', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W' or 'X'\n    test 96 datum: Datum(name='_Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.Identity)  FAILED, KNOWN, expected same\n    test 97 repr: [Z:32U, H:N, E:280000, N:5653000]\n    test 98 E.N.: (280000.0, 5653000.0)\n\n    test 99 latFootPoint: 59.97989371\n    test 100 latFootPoint: -59.97989371\n    test 101 latFootPoint: 59.97988614\n    test 102 latFootPoint: -59.97988614\n    test 103 phiFootPoint: 1.04407841\n    test 104 phiFootPoint: -1.04407841\n\n    2 of 104 testUtm.py tests (1.9%) FAILED, ALL KNOWN (pygeodesy 26.3.26 Python 3.13.12 64bit arm64 coverage 7.10.7 geographiclib 2.1 numpy 2.3.3 scipy 1.16.2 Math 2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 macOS 26.3.1 isLazy 1 -W  default) 79.738 ms\nrunning /Library/Framewo....n3.13 -W default ~/PyGeodesy/test/testUtmTMcoords.py\n\n    testing testUtmTMcoords.py 24.03.22 (module pygeodesy.utm 24.11.26) isLazy=1\n    test 1 line 1 toUtm8.easting: 1548706.791619\n    test 2 line 1 toUtm8.northing: 8451449.198772\n    test 3 line 1 toUtm8.gamma: 43.922790\n    test 4 line 1 toUtm8.scale: 1.029060\n    test 5 line 1 toUtm8.lat: 70.579277\n    test 6 line 1 toUtm8.lon: 45.599420\n    test 7 line 2 toUtm8.easting: 2624150.740929\n    test 8 line 2 toUtm8.northing: 1204434.041605\n    test 9 line 2 toUtm8.gamma: 4.292619\n    test 10 line 2 toUtm8.scale: 1.086051\n    test 11 line 2 toUtm8.lat: 10.018894\n    test 12 line 2 toUtm8.lon: 23.313324\n    test 13 line 3 toUtm8.easting: 9855841.232935\n    test 14 line 3 toUtm8.northing: 6145496.115157  FAILED, KNOWN, expected 6145496.115155\n    test 15 line 3 toUtm8.gamma: 53.348315\n    test 16 line 3 toUtm8.scale: 2.445098\n    test 17 line 3 toUtm8.lat: 19.479896\n    test 18 line 3 toUtm8.lon: 75.662049\n    test 19 line 4 toUtm8.easting: 3206390.691996\n    test 20 line 4 toUtm8.northing: 2650745.400406\n    test 21 line 4 toUtm8.gamma: 11.666950\n    test 22 line 4 toUtm8.scale: 1.129359\n    test 23 line 4 toUtm8.lat: 21.072465\n    test 24 line 4 toUtm8.lon: 29.828684\n    test 25 line 5 toUtm8.easting: 4328154.083501\n    test 26 line 5 toUtm8.northing: 749647.623690\n    test 27 line 5 toUtm8.gamma: 4.024317\n    test 28 line 5 toUtm8.scale: 1.240829\n    test 29 line 5 toUtm8.lat: 5.458957\n    test 30 line 5 toUtm8.lon: 36.385237\n    test 31 line 6 toUtm8.easting: 847598.266514\n    test 32 line 6 toUtm8.northing: 7947180.962440\n    test 33 line 6 toUtm8.gamma: 21.639091\n    test 34 line 6 toUtm8.scale: 1.008399\n    test 35 line 6 toUtm8.lat: 70.175454\n    test 36 line 6 toUtm8.lon: 22.865350\n    test 37 line 7 toUtm8.easting: 2727657.337974\n    test 38 line 7 toUtm8.northing: 8283916.696410\n    test 39 line 7 toUtm8.gamma: 55.690909\n    test 40 line 7 toUtm8.scale: 1.091942\n    test 41 line 7 toUtm8.lat: 61.965605\n    test 42 line 7 toUtm8.lon: 58.931371\n    test 43 line 8 toUtm8.easting: 2331001.751890\n    test 44 line 8 toUtm8.northing: 1313608.224751\n    test 45 line 8 toUtm8.gamma: 4.214690\n    test 46 line 8 toUtm8.scale: 1.067599\n    test 47 line 8 toUtm8.lat: 11.116050\n    test 48 line 8 toUtm8.lon: 20.901069\n    test 49 line 9 toUtm8.easting: 6035557.239480\n    test 50 line 9 toUtm8.northing: 5791770.791879\n    test 51 line 9 toUtm8.gamma: 43.698170\n    test 52 line 9 toUtm8.scale: 1.481260\n    test 53 line 9 toUtm8.lat: 32.210543\n    test 54 line 9 toUtm8.lon: 60.705849\n    test 55 line 10 toUtm8.easting: 1064553.125852\n    test 56 line 10 toUtm8.northing: 9417273.737208\n    test 57 line 10 toUtm8.gamma: 61.100380\n    test 58 line 10 toUtm8.scale: 1.013475\n    test 59 line 10 toUtm8.lat: 79.187451\n    test 60 line 10 toUtm8.lon: 61.532382\n    test 61 line 11 toUtm8.easting: 1400137.116164\n    test 62 line 11 toUtm8.northing: 9616907.017686\n    test 63 line 11 toUtm8.gamma: 74.527087\n    test 64 line 11 toUtm8.scale: 1.023640\n    test 65 line 11 toUtm8.lat: 77.103759\n    test 66 line 11 toUtm8.lon: 74.899105\n\n    test skipped (1): line 12 toUtm8.'21.889514024862 80.019885892785 9860691.0166261508479 7433039.1433282732643 65.357693372142649007 2.43897318400097845293'\n\n    test skipped (2): line 13 toUtm8.'30.53629567699 82.186177919416 8076501.8336948099169 8561614.1747819103782 75.073393190238557702 1.90620203595203984732'\n    test 67 line 14 toUtm8.easting: 3335099.866623\n    test 68 line 14 toUtm8.northing: 6740519.084015\n    test 69 line 14 toUtm8.gamma: 40.611821\n    test 70 line 14 toUtm8.scale: 1.139021\n    test 71 line 14 toUtm8.lat: 49.990485\n    test 72 line 14 toUtm8.lon: 48.203179\n\n    test skipped (3): line 15 toUtm8.'14.486311853451 80.905136710227 12051574.9284996192629 6587213.0519512810474 59.033236797073779959 3.3574686117030164354'\n    test 73 line 16 toUtm8.easting: 5387578.735298\n    test 74 line 16 toUtm8.northing: 4111216.907168\n    test 75 line 16 toUtm8.gamma: 27.574337\n    test 76 line 16 toUtm8.scale: 1.379357\n    test 77 line 16 toUtm8.lat: 25.936824\n    test 78 line 16 toUtm8.lon: 49.913598\n    test 79 line 17 toUtm8.easting: 2622214.380233\n    test 80 line 17 toUtm8.northing: 8678923.984567\n    test 81 line 17 toUtm8.gamma: 61.697275\n    test 82 line 17 toUtm8.scale: 1.084810\n    test 83 line 17 toUtm8.lat: 64.402196\n    test 84 line 17 toUtm8.lon: 64.091395\n\n    test skipped (4): line 18 toUtm8.'48.451353594584 84.856197560189 5068474.169632778036 9492066.9937094951003 83.156739839119105102 1.3299901985118008373'\n    test 85 line 19 toUtm8.easting: 738062.047779\n    test 86 line 19 toUtm8.northing: 3031007.074116\n    test 87 line 19 toUtm8.gamma: 3.416802\n    test 88 line 19 toUtm8.scale: 1.006332\n    test 89 line 19 toUtm8.lat: 27.203895\n    test 90 line 19 toUtm8.lon: 7.440229\n    test 91 line 20 toUtm8.easting: 1944413.834565\n    test 92 line 20 toUtm8.northing: 9613299.224493\n    test 93 line 20 toUtm8.gamma: 78.462831\n    test 94 line 20 toUtm8.scale: 1.046134\n    test 95 line 20 toUtm8.lat: 72.509000\n    test 96 line 20 toUtm8.lon: 78.982283\n    test 97 line 21 toUtm8.easting: 2114521.418406\n    test 98 line 21 toUtm8.northing: 4954077.440098\n    test 99 line 21 toUtm8.gamma: 17.571878\n    test 100 line 21 toUtm8.scale: 1.055093\n    test 101 line 21 toUtm8.lat: 41.824954\n    test 102 line 21 toUtm8.lon: 25.392744\n    test 103 line 22 toUtm8.easting: 620365.905090\n    test 104 line 22 toUtm8.northing: 4755542.026562\n    test 105 line 22 toUtm8.gamma: 5.152022\n    test 106 line 22 toUtm8.scale: 1.004338\n    test 107 line 22 toUtm8.lat: 42.701376\n    test 108 line 22 toUtm8.lon: 7.572738\n    test 109 line 23 toUtm8.easting: 263004.770989\n    test 110 line 23 toUtm8.northing: 4493669.762451\n    test 111 line 23 toUtm8.gamma: 2.020523\n    test 112 line 23 toUtm8.scale: 1.000452\n    test 113 line 23 toUtm8.lat: 40.552052\n    test 114 line 23 toUtm8.lon: 3.106056\n    test 115 line 24 toUtm8.easting: 3217221.739462\n    test 116 line 24 toUtm8.northing: 437776.119161\n    test 117 line 24 toUtm8.gamma: 1.848169\n    test 118 line 24 toUtm8.scale: 1.130558\n    test 119 line 24 toUtm8.lat: 3.501242\n    test 120 line 24 toUtm8.lon: 27.806507\n\n    test skipped (5): line 25 toUtm8.'10.148714782203 85.373767569431 14661142.4449607145297 7476100.8241849819567 68.376669038799719822 4.89664968310721668858'\n    test 121 line 26 toUtm8.easting: 967777.158554\n    test 122 line 26 toUtm8.northing: 6615684.266592\n    test 123 line 26 toUtm8.gamma: 14.410044\n    test 124 line 26 toUtm8.scale: 1.011100\n    test 125 line 26 toUtm8.lat: 58.582623\n    test 126 line 26 toUtm8.lon: 16.755558\n    test 127 line 27 toUtm8.easting: 7558840.728461\n    test 128 line 27 toUtm8.northing: 4144728.130764\n    test 129 line 27 toUtm8.gamma: 32.557264\n    test 130 line 27 toUtm8.scale: 1.791490\n    test 131 line 27 toUtm8.lat: 19.793004\n    test 132 line 27 toUtm8.lon: 61.746763\n    test 133 line 28 toUtm8.easting: 1056008.314161\n    test 134 line 28 toUtm8.northing: 9290799.692669\n    test 135 line 28 toUtm8.gamma: 55.843278\n    test 136 line 28 toUtm8.scale: 1.013253\n    test 137 line 28 toUtm8.lat: 78.666776\n    test 138 line 28 toUtm8.lon: 56.365355\n    test 139 line 29 toUtm8.easting: 1943965.134687\n    test 140 line 29 toUtm8.northing: 1389972.228690\n    test 141 line 29 toUtm8.gamma: 3.774869\n    test 142 line 29 toUtm8.scale: 1.046724\n    test 143 line 29 toUtm8.lat: 11.998788\n    test 144 line 29 toUtm8.lon: 17.597873\n    test 145 line 30 toUtm8.easting: 5803077.072902\n    test 146 line 30 toUtm8.northing: 5649957.943659\n    test 147 line 30 toUtm8.gamma: 41.717943\n    test 148 line 30 toUtm8.scale: 1.442572\n    test 149 line 30 toUtm8.lat: 32.540378\n    test 150 line 30 toUtm8.lon: 58.764613\n    test 151 line 31 toUtm8.easting: 2928716.986009\n    test 152 line 31 toUtm8.northing: 5731835.058317\n    test 153 line 31 toUtm8.gamma: 28.538550\n    test 154 line 31 toUtm8.scale: 1.106780\n    test 155 line 31 toUtm8.lat: 45.160356\n    test 156 line 31 toUtm8.lon: 37.465285\n    test 157 line 32 toUtm8.easting: 326141.975756\n    test 158 line 32 toUtm8.northing: 8881325.164543\n    test 159 line 32 toUtm8.gamma: 16.111415\n    test 160 line 32 toUtm8.scale: 1.000900\n    test 161 line 32 toUtm8.lat: 79.584190\n    test 162 line 32 toUtm8.lon: 16.367006\n    test 163 line 33 toUtm8.easting: 3933015.267450\n    test 164 line 33 toUtm8.northing: 7932373.909512\n    test 165 line 33 toUtm8.gamma: 58.577424\n    test 166 line 33 toUtm8.scale: 1.194811\n    test 167 line 33 toUtm8.lat: 52.470664\n    test 168 line 33 toUtm8.lon: 64.125580\n    test 169 line 34 toUtm8.easting: 8598926.983213\n    test 170 line 34 toUtm8.northing: 6214135.167503\n    test 171 line 34 toUtm8.gamma: 52.612878\n    test 172 line 34 toUtm8.scale: 2.051367\n    test 173 line 34 toUtm8.lat: 23.702673\n    test 174 line 34 toUtm8.lon: 72.630363\n    test 175 line 35 toUtm8.easting: 6620553.333772\n    test 176 line 35 toUtm8.northing: 6540527.122948\n    test 177 line 35 toUtm8.gamma: 52.350140\n    test 178 line 35 toUtm8.scale: 1.586614\n    test 179 line 35 toUtm8.lat: 32.603520\n    test 180 line 35 toUtm8.lon: 67.280123\n    test 181 line 36 toUtm8.easting: 1515136.758292\n    test 182 line 36 toUtm8.northing: 3858996.087537\n    test 183 line 36 toUtm8.gamma: 9.225127\n    test 184 line 36 toUtm8.scale: 1.028029\n    test 185 line 36 toUtm8.lat: 33.776224\n    test 186 line 36 toUtm8.lon: 16.280993\n    test 187 line 37 toUtm8.easting: 479854.373445\n    test 188 line 37 toUtm8.northing: 8980501.389896\n    test 189 line 37 toUtm8.gamma: 25.021222\n    test 190 line 37 toUtm8.scale: 1.002415\n    test 191 line 37 toUtm8.lat: 79.932747\n    test 192 line 37 toUtm8.lon: 25.363622\n    test 193 line 38 toUtm8.easting: 5243446.564940\n    test 194 line 38 toUtm8.northing: 140657.213960\n    test 195 line 38 toUtm8.gamma: 0.862817\n    test 196 line 38 toUtm8.scale: 1.360358\n    test 197 line 38 toUtm8.lat: 0.935056\n    test 198 line 38 toUtm8.lon: 42.538824\n\n    test skipped (6): line 39 toUtm8.'13.490862440668 83.178380075606 12806457.9232176809509 7170118.6846750266674 64.708921319446620085 3.7405880916836789809'\n    test 199 line 40 toUtm8.easting: 1202993.459158\n    test 200 line 40 toUtm8.northing: 5557316.053599\n    test 201 line 40 toUtm8.gamma: 12.579061\n    test 202 line 40 toUtm8.scale: 1.017426\n    test 203 line 40 toUtm8.lat: 48.979057\n    test 204 line 40 toUtm8.lon: 16.474542\n    test 205 line 41 toUtm8.easting: 1729088.710196\n    test 206 line 41 toUtm8.northing: 7770874.289954\n    test 207 line 41 toUtm8.gamma: 36.021783\n    test 208 line 41 toUtm8.scale: 1.036397\n    test 209 line 41 toUtm8.lat: 65.036016\n    test 210 line 41 toUtm8.lon: 38.729091\n    test 211 line 42 toUtm8.easting: 2437301.517425\n    test 212 line 42 toUtm8.northing: 5539327.748318\n    test 213 line 42 toUtm8.gamma: 23.461879\n    test 214 line 42 toUtm8.scale: 1.073459\n    test 215 line 42 toUtm8.lat: 45.510091\n    test 216 line 42 toUtm8.lon: 31.303729\n    test 217 line 43 toUtm8.easting: 3647186.135066\n    test 218 line 43 toUtm8.northing: 2086412.330983\n    test 219 line 43 toUtm8.gamma: 10.023991\n    test 220 line 43 toUtm8.scale: 1.168707\n    test 221 line 43 toUtm8.lat: 16.058010\n    test 222 line 43 toUtm8.lon: 32.520026\n    test 223 line 44 toUtm8.easting: 1818497.243556\n    test 224 line 44 toUtm8.northing: 4275471.745057\n    test 225 line 44 toUtm8.gamma: 12.499656\n    test 226 line 44 toUtm8.scale: 1.040604\n    test 227 line 44 toUtm8.lat: 36.845200\n    test 228 line 44 toUtm8.lon: 20.282283\n    test 229 line 45 toUtm8.easting: 3751304.113783\n    test 230 line 45 toUtm8.northing: 5130454.001592\n    test 231 line 45 toUtm8.gamma: 28.959707\n    test 232 line 45 toUtm8.scale: 1.177681\n    test 233 line 45 toUtm8.lat: 37.865481\n    test 234 line 45 toUtm8.lon: 41.990402\n    test 235 line 46 toUtm8.easting: 2616733.138544\n    test 236 line 46 toUtm8.northing: 394644.463815\n    test 237 line 46 toUtm8.gamma: 1.390425\n    test 238 line 46 toUtm8.scale: 1.085595\n    test 239 line 46 toUtm8.lat: 3.287272\n    test 240 line 46 toUtm8.lon: 22.917604\n    test 241 line 47 toUtm8.easting: 1756506.573942\n    test 242 line 47 toUtm8.northing: 5570393.986394\n    test 243 line 47 toUtm8.gamma: 17.897894\n    test 244 line 47 toUtm8.scale: 1.037732\n    test 245 line 47 toUtm8.lat: 47.813686\n    test 246 line 47 toUtm8.lon: 23.545092\n    test 247 line 48 toUtm8.easting: 8752461.894711\n    test 248 line 48 toUtm8.northing: 6087728.152284\n    test 249 line 48 toUtm8.gamma: 51.628465\n    test 250 line 48 toUtm8.scale: 2.095465\n    test 251 line 48 toUtm8.lat: 22.836853\n    test 252 line 48 toUtm8.lon: 72.604385\n    test 253 line 49 toUtm8.easting: 1309272.216432\n    test 254 line 49 toUtm8.northing: 59520.028899\n    test 255 line 49 toUtm8.gamma: 0.109069\n    test 256 line 49 toUtm8.scale: 1.020897\n    test 257 line 49 toUtm8.lat: 0.527262\n    test 258 line 49 toUtm8.lon: 11.684209\n    test 259 line 50 toUtm8.easting: 328652.277129\n    test 260 line 50 toUtm8.northing: 2233043.958874\n    test 261 line 50 toUtm8.gamma: 1.084863\n    test 262 line 50 toUtm8.scale: 1.000935\n    test 263 line 50 toUtm8.lat: 20.166742\n    test 264 line 50 toUtm8.lon: 3.143948\n\n    test skipped (7): line 51 toUtm8.'28.604629015528 85.988721094779 8637959.7164470998207 9190635.1560309800028 81.802562643198123218 2.05432863342852874819'\n\n    test skipped (8): line 52 toUtm8.'28.984047991106 85.833447775172 8548521.4551470334531 9172410.9432821880799 81.583928102890161419 2.02964145862183583179'\n    test 265 line 53 toUtm8.easting: 796987.281104\n    test 266 line 53 toUtm8.northing: 7677446.357675\n    test 267 line 53 toUtm8.gamma: 18.084472\n    test 268 line 53 toUtm8.scale: 1.007381\n    test 269 line 53 toUtm8.lat: 68.071020\n    test 270 line 53 toUtm8.lon: 19.392823\n\n    test skipped (9): line 54 toUtm8.'61.416576191872 81.981611413918 3291036.4967623295988 9513199.6006662170596 80.890253980644739593 1.13482563910814382209'\n    test 271 line 55 toUtm8.easting: 7087225.330906\n    test 272 line 55 toUtm8.northing: 8382823.855822\n    test 273 line 55 toUtm8.gamma: 72.253756\n    test 274 line 55 toUtm8.scale: 1.678070\n    test 275 line 55 toUtm8.lat: 35.074753\n    test 276 line 55 toUtm8.lon: 79.496003\n    test 277 line 56 toUtm8.easting: 5090358.125724\n    test 278 line 56 toUtm8.northing: 4318294.133489\n    test 279 line 56 toUtm8.gamma: 28.266280\n    test 280 line 56 toUtm8.scale: 1.336264\n    test 281 line 56 toUtm8.lat: 28.078790\n    test 282 line 56 toUtm8.lon: 48.684350\n\n    test skipped (10): line 57 toUtm8.'84.986930137199 2.067177857261 20163.0752214330146 9438635.9888499043815 2.059277291707588222 .99960496589466017622'\n    test 283 line 58 toUtm8.easting: 3447670.550785\n    test 284 line 58 toUtm8.northing: 3680238.888223\n    test 285 line 58 toUtm8.gamma: 17.934948\n    test 286 line 58 toUtm8.scale: 1.149831\n    test 287 line 58 toUtm8.lat: 28.473948\n    test 288 line 58 toUtm8.lon: 34.127306\n    test 289 line 59 toUtm8.easting: 3396522.906798\n    test 290 line 59 toUtm8.northing: 8093659.687593\n    test 291 line 59 toUtm8.gamma: 57.747117\n    test 292 line 59 toUtm8.scale: 1.144006\n    test 293 line 59 toUtm8.lat: 56.629354\n    test 294 line 59 toUtm8.lon: 62.196474\n    test 295 line 60 toUtm8.easting: 11249894.100794  FAILED, KNOWN, expected 11249894.100784\n    test 296 line 60 toUtm8.northing: 1619226.506360  FAILED, KNOWN, expected 1619226.506299\n    test 297 line 60 toUtm8.gamma: 14.210358\n    test 298 line 60 toUtm8.scale: 3.048347\n    test 299 line 60 toUtm8.lat: 4.747762\n    test 300 line 60 toUtm8.lon: 70.932555\n    test 301 line 61 toUtm8.easting: 6808805.230950\n    test 302 line 61 toUtm8.northing: 8044779.777369\n    test 303 line 61 toUtm8.gamma: 68.242008\n    test 304 line 61 toUtm8.scale: 1.621464\n    test 305 line 61 toUtm8.lat: 35.882113\n    test 306 line 61 toUtm8.lon: 76.741849\n    test 307 line 62 toUtm8.easting: 2306021.556506\n    test 308 line 62 toUtm8.northing: 757191.592866\n    test 309 line 62 toUtm8.gamma: 2.385686\n    test 310 line 62 toUtm8.scale: 1.066159\n    test 311 line 62 toUtm8.lat: 6.420705\n    test 312 line 62 toUtm8.lon: 20.416028\n    test 313 line 63 toUtm8.easting: 1547406.313862\n    test 314 line 63 toUtm8.northing: 6048712.751824\n    test 315 line 63 toUtm8.gamma: 18.474372\n    test 316 line 63 toUtm8.scale: 1.029123\n    test 317 line 63 toUtm8.lat: 52.335248\n    test 318 line 63 toUtm8.lon: 22.879294\n    test 319 line 64 toUtm8.easting: 2430467.650383\n    test 320 line 64 toUtm8.northing: 7557167.613972\n    test 321 line 64 toUtm8.gamma: 42.110021\n    test 322 line 64 toUtm8.scale: 1.072759\n    test 323 line 64 toUtm8.lat: 59.846391\n    test 324 line 64 toUtm8.lon: 46.262536\n    test 325 line 65 toUtm8.easting: 2334053.905830\n    test 326 line 65 toUtm8.northing: 1948076.966582\n    test 327 line 65 toUtm8.gamma: 6.353185\n    test 328 line 65 toUtm8.scale: 1.067733\n    test 329 line 65 toUtm8.lat: 16.461790\n    test 330 line 65 toUtm8.lon: 21.433269\n    test 331 line 66 toUtm8.easting: 5564175.186737\n    test 332 line 66 toUtm8.northing: 1836851.660412\n    test 333 line 66 toUtm8.gamma: 11.870682\n    test 334 line 66 toUtm8.scale: 1.408265\n    test 335 line 66 toUtm8.lat: 11.707905\n    test 336 line 66 toUtm8.lon: 45.827075\n    test 337 line 67 toUtm8.easting: 6118505.590359\n    test 338 line 67 toUtm8.northing: 7631684.552421\n    test 339 line 67 toUtm8.gamma: 62.477323\n    test 340 line 67 toUtm8.scale: 1.493420\n    test 341 line 67 toUtm8.lat: 38.519075\n    test 342 line 67 toUtm8.lon: 71.935918\n\n    test skipped (11): line 68 toUtm8.'34.264007222954 82.647878110272 7365359.2946646287171 8818194.4515306837741 77.207042218974141605 1.73763853091849729372'\n    test 343 line 69 toUtm8.easting: 36187.342415\n    test 344 line 69 toUtm8.northing: 2142565.324802\n    test 345 line 69 toUtm8.gamma: 0.114334\n    test 346 line 69 toUtm8.scale: 0.999616\n    test 347 line 69 toUtm8.lat: 19.376880\n    test 348 line 69 toUtm8.lon: 0.344605\n    test 349 line 70 toUtm8.easting: 2380328.546851\n    test 350 line 70 toUtm8.northing: 8440109.872384\n    test 351 line 70 toUtm8.gamma: 55.076067\n    test 352 line 70 toUtm8.scale: 1.069658\n    test 353 line 70 toUtm8.lat: 65.075805\n    test 354 line 70 toUtm8.lon: 57.653438\n    test 355 line 71 toUtm8.easting: 582511.608826\n    test 356 line 71 toUtm8.northing: 8876047.217071\n    test 357 line 71 toUtm8.gamma: 27.133300\n    test 358 line 71 toUtm8.scale: 1.003749\n    test 359 line 71 toUtm8.lat: 78.691870\n    test 360 line 71 toUtm8.lon: 27.591736\n    test 361 line 72 toUtm8.easting: 899441.350477\n    test 362 line 72 toUtm8.northing: 4582046.430516\n    test 363 line 72 toUtm8.gamma: 7.031211\n    test 364 line 72 toUtm8.scale: 1.009573\n    test 365 line 72 toUtm8.lat: 40.893022\n    test 366 line 72 toUtm8.lon: 10.668804\n\n    test skipped (12): line 73 toUtm8.'48.914278679322 87.35926802682 5022485.1243369246483 9741774.9337207800497 86.505947369926030588 1.32369954850478170836'\n    test 367 line 74 toUtm8.easting: 6701004.587204\n    test 368 line 74 toUtm8.northing: 2954368.258231\n    test 369 line 74 toUtm8.gamma: 21.560153\n    test 370 line 74 toUtm8.scale: 1.608554\n    test 371 line 74 toUtm8.lat: 16.208377\n    test 372 line 74 toUtm8.lon: 54.494282\n    test 373 line 75 toUtm8.easting: 454986.218897\n    test 374 line 75 toUtm8.northing: 4885087.887884\n    test 375 line 75 toUtm8.gamma: 3.945648\n    test 376 line 75 toUtm8.scale: 1.002147\n    test 377 line 75 toUtm8.lat: 43.977936\n    test 378 line 75 toUtm8.lon: 5.672541\n\n    test skipped (13): line 76 toUtm8.'26.850860749352 82.834479937822 8903956.1403106503714 8470608.5774824981183 74.723116471645531699 2.13131124920824155268'\n    test 379 line 77 toUtm8.easting: 1547627.594741\n    test 380 line 77 toUtm8.northing: 6036584.538347\n    test 381 line 77 toUtm8.gamma: 18.407629\n    test 382 line 77 toUtm8.scale: 1.029132\n    test 383 line 77 toUtm8.lat: 52.234165\n    test 384 line 77 toUtm8.lon: 22.827655\n    test 385 line 78 toUtm8.easting: 5221488.778597\n    test 386 line 78 toUtm8.northing: 1762592.044392\n    test 387 line 78 toUtm8.gamma: 10.927880\n    test 388 line 78 toUtm8.scale: 1.356721\n    test 389 line 78 toUtm8.lat: 11.674646\n    test 390 line 78 toUtm8.lon: 43.500147\n    test 391 line 79 toUtm8.easting: 4880570.297161\n    test 392 line 79 toUtm8.northing: 3325433.988867\n    test 393 line 79 toUtm8.gamma: 20.469862\n    test 394 line 79 toUtm8.scale: 1.308476\n    test 395 line 79 toUtm8.lat: 22.492753\n    test 396 line 79 toUtm8.lon: 44.179153\n\n    test skipped (14): line 80 toUtm8.'.910999463005 88.548822916123 23930680.0826936110445 7491462.0990379651261 75.937628056628715446 15.55636485152285563369'\n    test 397 line 81 toUtm8.easting: 71519.450458\n    test 398 line 81 toUtm8.northing: 3654740.444852\n    test 399 line 81 toUtm8.gamma: 0.417448\n    test 400 line 81 toUtm8.scale: 0.999663\n    test 401 line 81 toUtm8.lat: 33.028802\n    test 402 line 81 toUtm8.lon: 0.765843\n    test 403 line 82 toUtm8.easting: 4152797.795220\n    test 404 line 82 toUtm8.northing: 7823098.502751\n    test 405 line 82 toUtm8.gamma: 58.238901\n    test 406 line 82 toUtm8.scale: 1.218052\n    test 407 line 82 toUtm8.lat: 50.649195\n    test 408 line 82 toUtm8.lon: 64.389076\n    test 409 line 83 toUtm8.easting: 2926725.707639\n    test 410 line 83 toUtm8.northing: 7904918.072844\n    test 411 line 83 toUtm8.gamma: 51.592748\n    test 412 line 83 toUtm8.scale: 1.106206\n    test 413 line 83 toUtm8.lat: 58.820640\n    test 414 line 83 toUtm8.lon: 55.841048\n    test 415 line 84 toUtm8.easting: 1325509.113869\n    test 416 line 84 toUtm8.northing: 9675214.948213\n    test 417 line 84 toUtm8.gamma: 76.116213\n    test 418 line 84 toUtm8.scale: 1.021136\n    test 419 line 84 toUtm8.lat: 77.865762\n    test 420 line 84 toUtm8.lon: 76.414618\n    test 421 line 85 toUtm8.easting: 3045296.448926\n    test 422 line 85 toUtm8.northing: 542153.443280\n    test 423 line 85 toUtm8.gamma: 2.185095\n    test 424 line 85 toUtm8.scale: 1.116664\n    test 425 line 85 toUtm8.lat: 4.389639\n    test 426 line 85 toUtm8.lon: 26.458976\n    test 427 line 86 toUtm8.easting: 11843870.887791  FAILED, KNOWN, expected 11843870.887518\n    test 428 line 86 toUtm8.northing: 5912803.073690  FAILED, KNOWN, expected 5912803.073343\n    test 429 line 86 toUtm8.gamma: 52.814260  FAILED, KNOWN, expected 52.814259\n    test 430 line 86 toUtm8.scale: 3.267256\n    test 431 line 86 toUtm8.lat: 13.924448\n    test 432 line 86 toUtm8.lon: 79.017873\n    test 433 line 87 toUtm8.easting: 8891099.704936\n    test 434 line 87 toUtm8.northing: 162160.142227\n    test 435 line 87 toUtm8.gamma: 1.312094\n    test 436 line 87 toUtm8.scale: 2.157363\n    test 437 line 87 toUtm8.lat: 0.679713\n    test 438 line 87 toUtm8.lon: 62.036792\n    test 439 line 88 toUtm8.easting: 4784814.214449\n    test 440 line 88 toUtm8.northing: 2984497.432580\n    test 441 line 88 toUtm8.gamma: 17.946545\n    test 442 line 88 toUtm8.scale: 1.296116\n    test 443 line 88 toUtm8.lat: 20.478281\n    test 444 line 88 toUtm8.lon: 42.678234\n    test 445 line 89 toUtm8.easting: 1772074.682154\n    test 446 line 89 toUtm8.northing: 9491552.560143\n    test 447 line 89 toUtm8.gamma: 73.634830\n    test 448 line 89 toUtm8.scale: 1.038202\n    test 449 line 89 toUtm8.lat: 73.695703\n    test 450 line 89 toUtm8.lon: 74.259097\n    test 451 line 90 toUtm8.easting: 1907649.782106\n    test 452 line 90 toUtm8.northing: 6994232.429379\n    test 453 line 90 toUtm8.gamma: 29.718929\n    test 454 line 90 toUtm8.scale: 1.044503\n    test 455 line 90 toUtm8.lat: 58.569370\n    test 456 line 90 toUtm8.lon: 33.777549\n    test 457 line 91 toUtm8.easting: 2084423.818962\n    test 458 line 91 toUtm8.northing: 2211816.035619\n    test 459 line 91 toUtm8.gamma: 6.556448\n    test 460 line 91 toUtm8.scale: 1.053793\n    test 461 line 91 toUtm8.lat: 18.933881\n    test 462 line 91 toUtm8.lon: 19.492695\n    test 463 line 92 toUtm8.easting: 1064373.671729\n    test 464 line 92 toUtm8.northing: 7812482.547461\n    test 465 line 92 toUtm8.gamma: 24.874124\n    test 466 line 92 toUtm8.scale: 1.013490\n    test 467 line 92 toUtm8.lat: 68.317934\n    test 468 line 92 toUtm8.lon: 26.515687\n\n    test skipped (15): line 93 toUtm8.'50.641941364984 87.111556505544 4770385.4792965339274 9734318.9029801439364 86.27311877223132818 1.29055338238288419467'\n    test 469 line 94 toUtm8.easting: 6398096.677297\n    test 470 line 94 toUtm8.northing: 4410894.752104\n    test 471 line 94 toUtm8.gamma: 32.558023\n    test 472 line 94 toUtm8.scale: 1.548004\n    test 473 line 94 toUtm8.lat: 24.411298\n    test 474 line 94 toUtm8.lon: 56.881823\n    test 475 line 95 toUtm8.easting: 3138623.300415\n    test 476 line 95 toUtm8.northing: 3082960.600798\n    test 477 line 95 toUtm8.gamma: 13.557672\n    test 478 line 95 toUtm8.scale: 1.123724\n    test 479 line 95 toUtm8.lat: 24.571871\n    test 480 line 95 toUtm8.lon: 30.073097\n    test 481 line 96 toUtm8.easting: 2748325.794651\n    test 482 line 96 toUtm8.northing: 4202811.912668\n    test 483 line 96 toUtm8.gamma: 17.578706\n    test 484 line 96 toUtm8.scale: 1.094102\n    test 485 line 96 toUtm8.lat: 34.202576\n    test 486 line 96 toUtm8.lon: 29.383166\n    test 487 line 97 toUtm8.easting: 6677830.630367\n    test 488 line 97 toUtm8.northing: 5350071.837395\n    test 489 line 97 toUtm8.gamma: 41.306641\n    test 490 line 97 toUtm8.scale: 1.599774\n    test 491 line 97 toUtm8.lat: 27.756285\n    test 492 line 97 toUtm8.lon: 61.881905\n    test 493 line 98 toUtm8.easting: 5941536.667431\n    test 494 line 98 toUtm8.northing: 3293112.175140\n    test 495 line 98 toUtm8.gamma: 22.752845\n    test 496 line 98 toUtm8.scale: 1.468473\n    test 497 line 98 toUtm8.lat: 19.742270\n    test 498 line 98 toUtm8.lon: 50.957821\n    test 499 line 99 toUtm8.easting: 3152481.792567\n    test 500 line 99 toUtm8.northing: 5903048.837978\n    test 501 line 99 toUtm8.gamma: 31.494606\n    test 502 line 99 toUtm8.scale: 1.124085\n    test 503 line 99 toUtm8.lat: 45.453582\n    test 504 line 99 toUtm8.lon: 40.659833\n    test 505 line 100 toUtm8.easting: 10460475.897726  FAILED, KNOWN, expected 10460475.897730\n    test 506 line 100 toUtm8.northing: 2553463.624385  FAILED, KNOWN, expected 2553463.624391\n    test 507 line 100 toUtm8.gamma: 21.965869\n    test 508 line 100 toUtm8.scale: 2.700296\n    test 509 line 100 toUtm8.lat: 8.322144\n    test 510 line 100 toUtm8.lon: 69.488157\n    test 511 line 101 toUtm8.easting: 1964010.778021\n    test 512 line 101 toUtm8.northing: 5634042.923056\n    test 513 line 101 toUtm8.gamma: 20.117800\n    test 514 line 101 toUtm8.scale: 1.047344\n    test 515 line 101 toUtm8.lat: 47.749831\n    test 516 line 101 toUtm8.lon: 26.322002\n    test 517 line 102 toUtm8.easting: 2065306.424934\n    test 518 line 102 toUtm8.northing: 2135008.468651\n    test 519 line 102 toUtm8.gamma: 6.258981\n    test 520 line 102 toUtm8.scale: 1.052800\n    test 521 line 102 toUtm8.lat: 18.297493\n    test 522 line 102 toUtm8.lon: 19.244669\n    test 523 line 103 toUtm8.easting: 5127738.132976\n    test 524 line 103 toUtm8.northing: 6793804.304411\n    test 525 line 103 toUtm8.gamma: 50.557915\n    test 526 line 103 toUtm8.scale: 1.339412\n    test 527 line 103 toUtm8.lat: 40.834541\n    test 528 line 103 toUtm8.lon: 61.650750\n    test 529 line 104 toUtm8.easting: 8385525.148166\n    test 530 line 104 toUtm8.northing: 6924932.344306\n    test 531 line 104 toUtm8.gamma: 59.087561\n    test 532 line 104 toUtm8.scale: 1.990364\n    test 533 line 104 toUtm8.lat: 26.273247\n    test 534 line 104 toUtm8.lon: 74.926694\n    test 535 line 105 toUtm8.easting: 2297510.791909\n    test 536 line 105 toUtm8.northing: 2805666.962834\n    test 537 line 105 toUtm8.gamma: 9.301553\n    test 538 line 105 toUtm8.scale: 1.065508\n    test 539 line 105 toUtm8.lat: 23.698347\n    test 540 line 105 toUtm8.lon: 22.155657\n\n    test skipped (16): line 106 toUtm8.'12.364112546807 86.348578425071 13749544.9176345767153 8288728.3846500523233 75.033969786420407131 4.27058754359004466627'\n    test 541 line 107 toUtm8.easting: 317518.455546\n    test 542 line 107 toUtm8.northing: 1097517.583745\n    test 543 line 107 toUtm8.gamma: 0.499004\n    test 544 line 107 toUtm8.scale: 1.000848\n    test 545 line 107 toUtm8.lat: 9.916091\n    test 546 line 107 toUtm8.lon: 2.895277\n    test 547 line 108 toUtm8.easting: 3856035.184888\n    test 548 line 108 toUtm8.northing: 9141364.450290\n    test 549 line 108 toUtm8.gamma: 75.972763\n    test 550 line 108 toUtm8.scale: 1.186786\n    test 551 line 108 toUtm8.lat: 56.553876\n    test 552 line 108 toUtm8.lon: 78.215077\n    test 553 line 109 toUtm8.easting: 1457484.942823\n    test 554 line 109 toUtm8.northing: 9385297.101973\n    test 555 line 109 toUtm8.gamma: 66.784662\n    test 556 line 109 toUtm8.scale: 1.025660\n    test 557 line 109 toUtm8.lat: 75.957631\n    test 558 line 109 toUtm8.lon: 67.407383\n    test 559 line 110 toUtm8.easting: 1304934.901841\n    test 560 line 110 toUtm8.northing: 3604655.155715\n    test 561 line 110 toUtm8.gamma: 7.343989\n    test 562 line 110 toUtm8.scale: 1.020672\n    test 563 line 110 toUtm8.lat: 31.826531\n    test 564 line 110 toUtm8.lon: 13.731050\n    test 565 line 111 toUtm8.easting: 1399093.491792\n    test 566 line 111 toUtm8.northing: 8314607.120342\n    test 567 line 111 toUtm8.gamma: 38.630161\n    test 568 line 111 toUtm8.scale: 1.023625\n    test 569 line 111 toUtm8.lat: 70.542985\n    test 570 line 111 toUtm8.lon: 40.282055\n    test 571 line 112 toUtm8.easting: 356983.618540\n    test 572 line 112 toUtm8.northing: 4282309.048994\n    test 573 line 112 toUtm8.gamma: 2.561485\n    test 574 line 112 toUtm8.scale: 1.001170\n    test 575 line 112 toUtm8.lat: 38.617487\n    test 576 line 112 toUtm8.lon: 4.099838\n    test 577 line 113 toUtm8.easting: 9952911.325092  FAILED, KNOWN, expected 9952911.325091\n    test 578 line 113 toUtm8.northing: 1510288.212230  FAILED, KNOWN, expected 1510288.212229\n    test 579 line 113 toUtm8.gamma: 12.752154\n    test 580 line 113 toUtm8.scale: 2.511357\n    test 581 line 113 toUtm8.lat: 5.389447\n    test 582 line 113 toUtm8.lon: 66.729612\n    test 583 line 114 toUtm8.easting: 6367592.504007\n    test 584 line 114 toUtm8.northing: 1200437.077672\n    test 585 line 114 toUtm8.gamma: 8.338041\n    test 586 line 114 toUtm8.scale: 1.546210\n    test 587 line 114 toUtm8.lat: 6.995168\n    test 588 line 114 toUtm8.lon: 50.014763\n    test 589 line 115 toUtm8.easting: 4391263.676460\n    test 590 line 115 toUtm8.northing: 6325455.989408\n    test 591 line 115 toUtm8.gamma: 42.653541\n    test 592 line 115 toUtm8.scale: 1.245560\n    test 593 line 115 toUtm8.lat: 42.321894\n    test 594 line 115 toUtm8.lon: 53.784040\n    test 595 line 116 toUtm8.easting: 6209880.527527\n    test 596 line 116 toUtm8.northing: 2154754.449747\n    test 597 line 116 toUtm8.gamma: 14.919512\n    test 598 line 116 toUtm8.scale: 1.516560\n    test 599 line 116 toUtm8.lat: 12.698515\n    test 600 line 116 toUtm8.lon: 50.242047\n    test 601 line 117 toUtm8.easting: 1507053.688772\n    test 602 line 117 toUtm8.northing: 6261383.513280\n    test 603 line 117 toUtm8.gamma: 19.280373\n    test 604 line 117 toUtm8.scale: 1.027584\n    test 605 line 117 toUtm8.lat: 54.207636\n    test 606 line 117 toUtm8.lon: 23.325731\n    test 607 line 118 toUtm8.easting: 8332725.003777\n    test 608 line 118 toUtm8.northing: 3002712.329753\n    test 609 line 118 toUtm8.gamma: 24.059212\n    test 610 line 118 toUtm8.scale: 1.990450\n    test 611 line 118 toUtm8.lat: 13.224787\n    test 612 line 118 toUtm8.lon: 62.426698\n    test 613 line 119 toUtm8.easting: 3958910.085235\n    test 614 line 119 toUtm8.northing: 3462284.926102\n    test 615 line 119 toUtm8.gamma: 18.546398\n    test 616 line 119 toUtm8.scale: 1.199351\n    test 617 line 119 toUtm8.lat: 25.650282\n    test 618 line 119 toUtm8.lon: 37.710391\n\n    test skipped (17): line 120 toUtm8.'20.684773383075 82.849734261238 10452892.2820830090734 8000059.6051139389546 71.07524025411428855 2.6501109339363854772'\n    test 619 line 121 toUtm8.easting: 496148.253731\n    test 620 line 121 toUtm8.northing: 6388503.365043\n    test 621 line 121 toUtm8.gamma: 6.970955\n    test 622 line 121 toUtm8.scale: 1.002620\n    test 623 line 121 toUtm8.lat: 57.367533\n    test 624 line 121 toUtm8.lon: 8.260866\n    test 625 line 122 toUtm8.easting: 7375792.085850\n    test 626 line 122 toUtm8.northing: 5544624.072155\n    test 627 line 122 toUtm8.gamma: 44.510851\n    test 628 line 122 toUtm8.scale: 1.745898\n    test 629 line 122 toUtm8.lat: 25.958757\n    test 630 line 122 toUtm8.lon: 65.760477\n    test 631 line 123 toUtm8.easting: 2826258.041979\n    test 632 line 123 toUtm8.northing: 5167759.816959\n    test 633 line 123 toUtm8.gamma: 23.783897\n    test 634 line 123 toUtm8.scale: 1.099415\n    test 635 line 123 toUtm8.lat: 41.395848\n    test 636 line 123 toUtm8.lon: 33.661790\n    test 637 line 124 toUtm8.easting: 3958563.378851\n    test 638 line 124 toUtm8.northing: 8499923.231243\n    test 639 line 124 toUtm8.gamma: 66.570945\n    test 640 line 124 toUtm8.scale: 1.197296\n    test 641 line 124 toUtm8.lat: 54.266617\n    test 642 line 124 toUtm8.lon: 70.602199\n    test 643 line 125 toUtm8.easting: 4408189.533462\n    test 644 line 125 toUtm8.northing: 8046312.003642\n    test 645 line 125 toUtm8.gamma: 62.216959\n    test 646 line 125 toUtm8.scale: 1.246750\n    test 647 line 125 toUtm8.lat: 49.840393\n    test 648 line 125 toUtm8.lon: 68.036728\n    test 649 line 126 toUtm8.easting: 3629225.627512\n    test 650 line 126 toUtm8.northing: 6371258.454645\n    test 651 line 126 toUtm8.gamma: 38.881675\n    test 652 line 126 toUtm8.scale: 1.165511\n    test 653 line 126 toUtm8.lat: 46.306035\n    test 654 line 126 toUtm8.lon: 48.085828\n    test 655 line 127 toUtm8.easting: 602838.450710\n    test 656 line 127 toUtm8.northing: 4851370.637205\n    test 657 line 127 toUtm8.gamma: 5.160395\n    test 658 line 127 toUtm8.scale: 1.004073\n    test 659 line 127 toUtm8.lat: 43.570988\n    test 660 line 127 toUtm8.lon: 7.464494\n    test 661 line 128 toUtm8.easting: 764616.665051\n    test 662 line 128 toUtm8.northing: 2164299.337945\n    test 663 line 128 toUtm8.gamma: 2.429300\n    test 664 line 128 toUtm8.scale: 1.006835\n    test 665 line 128 toUtm8.lat: 19.427290\n    test 666 line 128 toUtm8.lon: 7.268247\n    test 667 line 129 toUtm8.easting: 5048953.021931\n    test 668 line 129 toUtm8.northing: 1885974.057398\n    test 669 line 129 toUtm8.gamma: 11.459804\n    test 670 line 129 toUtm8.scale: 1.332207\n    test 671 line 129 toUtm8.lat: 12.713794\n    test 672 line 129 toUtm8.lon: 42.507018\n    test 673 line 130 toUtm8.easting: 2293996.601155\n    test 674 line 130 toUtm8.northing: 2392408.644221\n    test 675 line 130 toUtm8.gamma: 7.791838\n    test 676 line 130 toUtm8.scale: 1.065348\n    test 677 line 130 toUtm8.lat: 20.238782\n    test 678 line 130 toUtm8.lon: 21.566068\n    test 679 line 131 toUtm8.easting: 1530603.839418\n    test 680 line 131 toUtm8.northing: 7287841.459898\n    test 681 line 131 toUtm8.gamma: 27.502921\n    test 682 line 131 toUtm8.scale: 1.028416\n    test 683 line 131 toUtm8.lat: 62.367847\n    test 684 line 131 toUtm8.lon: 30.438849\n    test 685 line 132 toUtm8.easting: 2660000.093152\n    test 686 line 132 toUtm8.northing: 5161982.213248\n    test 687 line 132 toUtm8.gamma: 22.629836\n    test 688 line 132 toUtm8.scale: 1.087851\n    test 689 line 132 toUtm8.lat: 41.891569\n    test 690 line 132 toUtm8.lon: 31.959547\n    test 691 line 133 toUtm8.easting: 5037478.329414\n    test 692 line 133 toUtm8.northing: 8768172.379908\n    test 693 line 133 toUtm8.gamma: 73.511182\n    test 694 line 133 toUtm8.scale: 1.325919\n    test 695 line 133 toUtm8.lat: 47.664248\n    test 696 line 133 toUtm8.lon: 77.630062\n    test 697 line 134 toUtm8.easting: 2289650.957799\n    test 698 line 134 toUtm8.northing: 8784328.593607\n    test 699 line 134 toUtm8.gamma: 60.786067\n    test 700 line 134 toUtm8.scale: 1.064346\n    test 701 line 134 toUtm8.lat: 67.259559\n    test 702 line 134 toUtm8.lon: 62.715293\n    test 703 line 135 toUtm8.easting: 647913.889744\n    test 704 line 135 toUtm8.northing: 6742382.228217\n    test 705 line 135 toUtm8.gamma: 10.252667\n    test 706 line 135 toUtm8.scale: 1.004748\n    test 707 line 135 toUtm8.lat: 60.295381\n    test 708 line 135 toUtm8.lon: 11.763097\n    test 709 line 136 toUtm8.easting: 1118372.698566\n    test 710 line 136 toUtm8.northing: 9040627.942263\n    test 711 line 136 toUtm8.gamma: 48.936803\n    test 712 line 136 toUtm8.scale: 1.014920\n    test 713 line 136 toUtm8.lat: 76.878914\n    test 714 line 136 toUtm8.lon: 49.685773\n    test 715 line 137 toUtm8.easting: 440696.510070\n    test 716 line 137 toUtm8.northing: 5500355.826297\n    test 717 line 137 toUtm8.gamma: 4.636104\n    test 718 line 137 toUtm8.scale: 1.001986\n    test 719 line 137 toUtm8.lat: 49.495349\n    test 720 line 137 toUtm8.lon: 6.087551\n    test 721 line 138 toUtm8.easting: 601728.149727\n    test 722 line 138 toUtm8.northing: 9095352.048149\n    test 723 line 138 toUtm8.gamma: 33.435771\n    test 724 line 138 toUtm8.scale: 1.004027\n    test 725 line 138 toUtm8.lat: 80.297265\n    test 726 line 138 toUtm8.lon: 33.816372\n    test 727 line 139 toUtm8.easting: 3481444.777827\n    test 728 line 139 toUtm8.northing: 291665.708749\n    test 729 line 139 toUtm8.gamma: 1.314726\n    test 730 line 139 toUtm8.scale: 1.153534\n    test 731 line 139 toUtm8.lat: 2.286437\n    test 732 line 139 toUtm8.lon: 29.855149\n    test 733 line 140 toUtm8.easting: 3515304.901524\n    test 734 line 140 toUtm8.northing: 1443981.882918\n    test 735 line 140 toUtm8.gamma: 6.641638\n    test 736 line 140 toUtm8.scale: 1.156509\n    test 737 line 140 toUtm8.lat: 11.264457\n    test 738 line 140 toUtm8.lon: 30.743907\n    test 739 line 141 toUtm8.easting: 160012.186959\n    test 740 line 141 toUtm8.northing: 3922609.253231\n    test 741 line 141 toUtm8.gamma: 1.022225\n    test 742 line 141 toUtm8.scale: 0.999916\n    test 743 line 141 toUtm8.lat: 35.434073\n    test 744 line 141 toUtm8.lon: 1.762795\n    test 745 line 142 toUtm8.easting: 4163744.245622\n    test 746 line 142 toUtm8.northing: 936884.674804\n    test 747 line 142 toUtm8.gamma: 4.892559\n    test 748 line 142 toUtm8.scale: 1.222164\n    test 749 line 142 toUtm8.lat: 6.923695\n    test 750 line 142 toUtm8.lon: 35.289456\n    test 751 line 143 toUtm8.easting: 6155200.017926\n    test 752 line 143 toUtm8.northing: 6926306.628390\n    test 753 line 143 toUtm8.gamma: 55.103258\n    test 754 line 143 toUtm8.scale: 1.500556\n    test 755 line 143 toUtm8.lat: 36.129672\n    test 756 line 143 toUtm8.lon: 67.533176\n\n    test skipped (18): line 144 toUtm8.'4.406528980638 81.965734206053 16263383.2854400911299 3591296.7313406507021 36.040254103487111035 6.58928781751888396522'\n\n    test skipped (19): line 145 toUtm8.'8.474589009114 81.129945130597 14220995.5153984992101 5100587.4575033509156 47.314258427760984573 4.69320221531225352172'\n    test 757 line 146 toUtm8.easting: 3173034.802372\n    test 758 line 146 toUtm8.northing: 7263421.942957\n    test 759 line 146 toUtm8.gamma: 45.215808\n    test 760 line 146 toUtm8.scale: 1.125410\n    test 761 line 146 toUtm8.lat: 53.907276\n    test 762 line 146 toUtm8.lon: 51.252904\n\n    test skipped (20): line 147 toUtm8.'22.120544817855 85.756781608119 10253274.0922039670098 8867574.2997916978265 79.198250285604314115 2.57237240666878171579'\n    test 763 line 148 toUtm8.easting: 2415561.483230\n    test 764 line 148 toUtm8.northing: 8813225.217097\n    test 765 line 148 toUtm8.gamma: 62.548978\n    test 766 line 148 toUtm8.scale: 1.071748\n    test 767 line 148 toUtm8.lat: 66.444100\n    test 768 line 148 toUtm8.lon: 64.532960\n    test 769 line 149 toUtm8.easting: 9589179.293294  FAILED, KNOWN, expected 9589179.293295\n    test 770 line 149 toUtm8.northing: 1777680.784144  FAILED, KNOWN, expected 1777680.784143\n    test 771 line 149 toUtm8.gamma: 14.838483\n    test 772 line 149 toUtm8.scale: 2.380716\n    test 773 line 149 toUtm8.lat: 6.670965\n    test 774 line 149 toUtm8.lon: 65.660408\n    test 775 line 150 toUtm8.easting: 727939.438391\n    test 776 line 150 toUtm8.northing: 3684363.236810\n    test 777 line 150 toUtm8.gamma: 4.266227\n    test 778 line 150 toUtm8.scale: 1.006140\n    test 779 line 150 toUtm8.lat: 33.054057\n    test 780 line 150 toUtm8.lon: 7.787458\n    test 781 line 151 toUtm8.easting: 1250765.991085\n    test 782 line 151 toUtm8.northing: 792869.242719\n    test 783 line 151 toUtm8.gamma: 1.396497\n    test 784 line 151 toUtm8.scale: 1.019026\n    test 785 line 151 toUtm8.lat: 7.035525\n    test 786 line 151 toUtm8.lon: 11.253707\n    test 787 line 152 toUtm8.easting: 710421.705887\n    test 788 line 152 toUtm8.northing: 5019406.075928\n    test 789 line 152 toUtm8.gamma: 6.393949\n    test 790 line 152 toUtm8.scale: 1.005812\n    test 791 line 152 toUtm8.lat: 44.971340\n    test 792 line 152 toUtm8.lon: 9.009304\n    test 793 line 153 toUtm8.easting: 4600995.074643\n    test 794 line 153 toUtm8.northing: 4505712.084593\n    test 795 line 153 toUtm8.gamma: 27.997458\n    test 796 line 153 toUtm8.scale: 1.271841\n    test 797 line 153 toUtm8.lat: 30.821397\n    test 798 line 153 toUtm8.lon: 45.970577\n    test 799 line 154 toUtm8.easting: 557642.627782\n    test 800 line 154 toUtm8.northing: 7006911.251644\n    test 801 line 154 toUtm8.gamma: 9.769903\n    test 802 line 154 toUtm8.scale: 1.003411\n    test 803 line 154 toUtm8.lat: 62.763886\n    test 804 line 154 toUtm8.lon: 10.960144\n    test 805 line 155 toUtm8.easting: 4635062.294291\n    test 806 line 155 toUtm8.northing: 2702556.153311\n    test 807 line 155 toUtm8.gamma: 15.779547\n    test 808 line 155 toUtm8.scale: 1.277178\n    test 809 line 155 toUtm8.lat: 18.888611\n    test 810 line 155 toUtm8.lon: 41.009871\n\n    test skipped (21): line 156 toUtm8.'7.524119461376 81.050715469439 14554962.2559189870471 4716639.9085720199214 44.192751352918149954 4.96001986321419027847'\n    test 811 line 157 toUtm8.easting: 882126.661736\n    test 812 line 157 toUtm8.northing: 7947612.369506\n    test 813 line 157 toUtm8.gamma: 22.429487\n    test 814 line 157 toUtm8.scale: 1.009132\n    test 815 line 157 toUtm8.lat: 70.063902\n    test 816 line 157 toUtm8.lon: 23.705255\n\n    test skipped (22): line 158 toUtm8.'3.556525834215 88.363529198819 20262021.6459832969292 8113827.8207957955275 76.936057264555500879 10.34909168211805703369'\n    test 817 line 159 toUtm8.easting: 6500508.399850\n    test 818 line 159 toUtm8.northing: 6956476.342368\n    test 819 line 159 toUtm8.gamma: 56.237116\n    test 820 line 159 toUtm8.scale: 1.563162\n    test 821 line 159 toUtm8.lat: 34.551257\n    test 822 line 159 toUtm8.lon: 69.111091\n    test 823 line 160 toUtm8.easting: 3884036.641314\n    test 824 line 160 toUtm8.northing: 6890167.411733\n    test 825 line 160 toUtm8.gamma: 45.760130\n    test 826 line 160 toUtm8.scale: 1.190167\n    test 827 line 160 toUtm8.lat: 47.929051\n    test 828 line 160 toUtm8.lon: 54.103418\n    test 829 line 161 toUtm8.easting: 217855.546078\n    test 830 line 161 toUtm8.northing: 6184108.122568\n    test 831 line 161 toUtm8.gamma: 2.870993\n    test 832 line 161 toUtm8.scale: 1.000182\n    test 833 line 161 toUtm8.lat: 55.753536\n    test 834 line 161 toUtm8.lon: 3.471798\n\n    test skipped (23): line 162 toUtm8.'18.530847071862 86.555312055898 11384139.290401676268 8893889.9495562311576 79.77485364572019046 3.02467156922968230025'\n    test 835 line 163 toUtm8.easting: 3469855.989805\n    test 836 line 163 toUtm8.northing: 7723193.799228\n    test 837 line 163 toUtm8.gamma: 53.114700\n    test 838 line 163 toUtm8.scale: 1.150540\n    test 839 line 163 toUtm8.lat: 54.510125\n    test 840 line 163 toUtm8.lon: 58.556056\n\n    test skipped (24): line 164 toUtm8.'42.864161881687 84.866325602975 5926165.994939154109 9385463.7327467371322 82.506981261616342016 1.45975761947329382411'\n    test 841 line 165 toUtm8.easting: 5798639.662224\n    test 842 line 165 toUtm8.northing: 5305387.640916\n    test 843 line 165 toUtm8.gamma: 38.617257\n    test 844 line 165 toUtm8.scale: 1.442263\n    test 845 line 165 toUtm8.lat: 30.911943\n    test 846 line 165 toUtm8.lon: 57.114102\n    test 847 line 166 toUtm8.easting: 9464.934388\n    test 848 line 166 toUtm8.northing: 6489121.624944\n    test 849 line 166 toUtm8.gamma: 0.138696\n    test 850 line 166 toUtm8.scale: 0.999601\n    test 851 line 166 toUtm8.lat: 58.542493\n    test 852 line 166 toUtm8.lon: 0.162593\n\n    test skipped (25): line 167 toUtm8.'15.022689088683 85.792615487152 12575834.2756139069875 8356610.8954857643175 75.235223160840771295 3.59944161831319404851'\n    test 853 line 168 toUtm8.easting: 2719653.543469\n    test 854 line 168 toUtm8.northing: 9362389.163495\n    test 855 line 168 toUtm8.gamma: 76.049670\n    test 856 line 168 toUtm8.scale: 1.091315\n    test 857 line 168 toUtm8.lat: 65.692275\n    test 858 line 168 toUtm8.lon: 77.241377\n    test 859 line 169 toUtm8.easting: 4845341.924698\n    test 860 line 169 toUtm8.northing: 8710522.326901\n    test 861 line 169 toUtm8.gamma: 72.320942\n    test 862 line 169 toUtm8.scale: 1.300382\n    test 863 line 169 toUtm8.lat: 48.806211\n    test 864 line 169 toUtm8.lon: 76.486365\n\n    test skipped (26): line 170 toUtm8.'56.436024794624 82.61156798689 3935261.5227628794258 9454271.6490618694486 81.162334302626197333 1.19476734082123451158'\n    test 865 line 171 toUtm8.easting: 7074299.823000\n    test 866 line 171 toUtm8.northing: 1648736.065055\n    test 867 line 171 toUtm8.gamma: 12.145925\n    test 868 line 171 toUtm8.scale: 1.687551\n    test 869 line 171 toUtm8.lat: 8.766053\n    test 870 line 171 toUtm8.lon: 54.367539\n    test 871 line 172 toUtm8.easting: 3689072.579308\n    test 872 line 172 toUtm8.northing: 2230802.665211\n    test 873 line 172 toUtm8.gamma: 10.856248\n    test 874 line 172 toUtm8.scale: 1.172689\n    test 875 line 172 toUtm8.lat: 17.095495\n    test 876 line 172 toUtm8.lon: 33.059128\n    test 877 line 173 toUtm8.easting: 8102565.885587\n    test 878 line 173 toUtm8.northing: 5167396.617580\n    test 879 line 173 toUtm8.gamma: 42.324886\n    test 880 line 173 toUtm8.scale: 1.921927\n    test 881 line 173 toUtm8.lat: 22.142861\n    test 882 line 173 toUtm8.lon: 67.200684\n    test 883 line 174 toUtm8.easting: 8181271.353564\n    test 884 line 174 toUtm8.northing: 4425436.547185\n    test 885 line 174 toUtm8.gamma: 35.900845\n    test 886 line 174 toUtm8.scale: 1.945017\n    test 887 line 174 toUtm8.lat: 19.222623\n    test 888 line 174 toUtm8.lon: 65.180785\n    test 889 line 175 toUtm8.easting: 767067.394003\n    test 890 line 175 toUtm8.northing: 3701745.857296\n    test 891 line 175 toUtm8.gamma: 4.519201\n    test 892 line 175 toUtm8.scale: 1.006863\n    test 893 line 175 toUtm8.lat: 33.182474\n    test 894 line 175 toUtm8.lon: 8.216952\n    test 895 line 176 toUtm8.easting: 6688114.168572\n    test 896 line 176 toUtm8.northing: 2052857.299639\n    test 897 line 176 toUtm8.gamma: 14.766191\n    test 898 line 176 toUtm8.scale: 1.607200\n    test 899 line 176 toUtm8.lat: 11.417963\n    test 900 line 176 toUtm8.lon: 52.808691\n    test 901 line 177 toUtm8.easting: 5608408.773761\n    test 902 line 177 toUtm8.northing: 3859055.659110\n    test 903 line 177 toUtm8.gamma: 26.244151\n    test 904 line 177 toUtm8.scale: 1.413463\n    test 905 line 177 toUtm8.lat: 23.836688\n    test 906 line 177 toUtm8.lon: 50.500180\n    test 907 line 178 toUtm8.easting: 3836942.765275\n    test 908 line 178 toUtm8.northing: 6415467.634326\n    test 909 line 178 toUtm8.gamma: 40.575885\n    test 910 line 178 toUtm8.scale: 1.185615\n    test 911 line 178 toUtm8.lat: 45.550020\n    test 912 line 178 toUtm8.lon: 50.148036\n    test 913 line 179 toUtm8.easting: 1298730.366025\n    test 914 line 179 toUtm8.northing: 6021453.000792\n    test 915 line 179 toUtm8.gamma: 15.613320\n    test 916 line 179 toUtm8.scale: 1.020367\n    test 917 line 179 toUtm8.lat: 52.746079\n    test 918 line 179 toUtm8.lon: 19.343926\n    test 919 line 180 toUtm8.easting: 416934.289208\n    test 920 line 180 toUtm8.northing: 7295683.451705\n    test 921 line 180 toUtm8.gamma: 8.238232\n    test 922 line 180 toUtm8.scale: 1.001729\n    test 923 line 180 toUtm8.lat: 65.513348\n    test 924 line 180 toUtm8.lon: 9.039529\n    test 925 line 181 toUtm8.easting: 4336076.850889\n    test 926 line 181 toUtm8.northing: 7617975.722779\n    test 927 line 181 toUtm8.gamma: 56.537088\n    test 928 line 181 toUtm8.scale: 1.238582\n    test 929 line 181 toUtm8.lat: 48.709795\n    test 930 line 181 toUtm8.lon: 63.554005\n    test 931 line 182 toUtm8.easting: 168047.336980\n    test 932 line 182 toUtm8.northing: 2185000.046530\n    test 933 line 182 toUtm8.gamma: 0.542187\n    test 934 line 182 toUtm8.scale: 0.999949\n    test 935 line 182 toUtm8.lat: 19.753509\n    test 936 line 182 toUtm8.lon: 1.603846\n    test 937 line 183 toUtm8.easting: 8276281.328790\n    test 938 line 183 toUtm8.northing: 263444.350545\n    test 939 line 183 toUtm8.gamma: 2.071435\n    test 940 line 183 toUtm8.scale: 1.980314\n    test 941 line 183 toUtm8.lat: 1.202816\n    test 942 line 183 toUtm8.lon: 59.377276\n    test 943 line 184 toUtm8.easting: 4772573.810710\n    test 944 line 184 toUtm8.northing: 6765710.336002\n    test 945 line 184 toUtm8.gamma: 48.857561\n    test 946 line 184 toUtm8.scale: 1.291911\n    test 947 line 184 toUtm8.lat: 42.564975\n    test 948 line 184 toUtm8.lon: 59.356947\n    test 949 line 185 toUtm8.easting: 5427755.074639\n    test 950 line 185 toUtm8.northing: 1556055.820924\n    test 951 line 185 toUtm8.gamma: 9.862178\n    test 952 line 185 toUtm8.scale: 1.387394\n    test 953 line 185 toUtm8.lat: 10.090572\n    test 954 line 185 toUtm8.lon: 44.604132\n    test 955 line 186 toUtm8.easting: 11588458.616240  FAILED, KNOWN, expected 11588458.616041\n    test 956 line 186 toUtm8.northing: 5707993.922683  FAILED, KNOWN, expected 5707993.922613\n    test 957 line 186 toUtm8.gamma: 50.784827\n    test 958 line 186 toUtm8.scale: 3.149567\n    test 959 line 186 toUtm8.lat: 14.133028\n    test 960 line 186 toUtm8.lon: 78.097533\n    test 961 line 187 toUtm8.easting: 7152433.802688\n    test 962 line 187 toUtm8.northing: 761390.695844\n    test 963 line 187 toUtm8.gamma: 5.607350\n    test 964 line 187 toUtm8.scale: 1.705261\n    test 965 line 187 toUtm8.lat: 4.031123\n    test 966 line 187 toUtm8.lon: 54.048782\n    test 967 line 188 toUtm8.easting: 3105651.390901\n    test 968 line 188 toUtm8.northing: 9426026.169064\n    test 969 line 188 toUtm8.gamma: 78.750206\n    test 970 line 188 toUtm8.scale: 1.119737\n    test 971 line 188 toUtm8.lat: 62.746603\n    test 972 line 188 toUtm8.lon: 79.968641\n    test 973 line 189 toUtm8.easting: 2959009.639022\n    test 974 line 189 toUtm8.northing: 8339242.269282\n    test 975 line 189 toUtm8.gamma: 58.460865\n    test 976 line 189 toUtm8.scale: 1.108554\n    test 977 line 189 toUtm8.lat: 60.626429\n    test 978 line 189 toUtm8.lon: 61.851551\n    test 979 line 190 toUtm8.easting: 8640472.267145\n    test 980 line 190 toUtm8.northing: 6230320.417931\n    test 981 line 190 toUtm8.gamma: 52.816810\n    test 982 line 190 toUtm8.scale: 2.062973\n    test 983 line 190 toUtm8.lat: 23.600626\n    test 984 line 190 toUtm8.lon: 72.811634\n    test 985 line 191 toUtm8.easting: 811352.108932\n    test 986 line 191 toUtm8.northing: 9816129.813481\n    test 987 line 191 toUtm8.gamma: 77.299184\n    test 988 line 191 toUtm8.scale: 1.007651\n    test 989 line 191 toUtm8.lat: 82.572236\n    test 990 line 191 toUtm8.lon: 77.402323\n    test 991 line 192 toUtm8.easting: 6521874.973458\n    test 992 line 192 toUtm8.northing: 1053612.479744\n    test 993 line 192 toUtm8.gamma: 7.407328\n    test 994 line 192 toUtm8.scale: 1.575529\n    test 995 line 192 toUtm8.lat: 6.030051\n    test 996 line 192 toUtm8.lon: 50.783505\n    test 997 line 193 toUtm8.easting: 3477983.997875\n    test 998 line 193 toUtm8.northing: 5651613.325947\n    test 999 line 193 toUtm8.gamma: 31.530673\n    test 1000 line 193 toUtm8.scale: 1.151875\n    test 1001 line 193 toUtm8.lat: 42.411523\n    test 1002 line 193 toUtm8.lon: 42.258009\n    test 1003 line 194 toUtm8.easting: 629892.822243\n    test 1004 line 194 toUtm8.northing: 3283914.910451\n    test 1005 line 194 toUtm8.gamma: 3.210482\n    test 1006 line 194 toUtm8.scale: 1.004499\n    test 1007 line 194 toUtm8.lat: 29.526120\n    test 1008 line 194 toUtm8.lon: 6.493069\n    test 1009 line 195 toUtm8.easting: 3381879.687227\n    test 1010 line 195 toUtm8.northing: 5103629.325665\n    test 1011 line 195 toUtm8.gamma: 26.748108\n    test 1012 line 195 toUtm8.scale: 1.143559\n    test 1013 line 195 toUtm8.lat: 39.021853\n    test 1014 line 195 toUtm8.lon: 38.641779\n    test 1015 line 196 toUtm8.easting: 2815986.534177\n    test 1016 line 196 toUtm8.northing: 9387029.120718\n    test 1017 line 196 toUtm8.gamma: 76.967262\n    test 1018 line 196 toUtm8.scale: 1.098032\n    test 1019 line 196 toUtm8.lat: 64.971850\n    test 1020 line 196 toUtm8.lon: 78.151893\n    test 1021 line 197 toUtm8.easting: 3398195.889603\n    test 1022 line 197 toUtm8.northing: 9138936.031490\n    test 1023 line 197 toUtm8.gamma: 74.477499\n    test 1024 line 197 toUtm8.scale: 1.144009\n    test 1025 line 197 toUtm8.lat: 59.961819\n    test 1026 line 197 toUtm8.lon: 76.473422\n    test 1027 line 198 toUtm8.easting: 2421734.754637\n    test 1028 line 198 toUtm8.northing: 5002372.094991\n    test 1029 line 198 toUtm8.gamma: 20.017082\n    test 1030 line 198 toUtm8.scale: 1.072592\n    test 1031 line 198 toUtm8.lat: 41.374040\n    test 1032 line 198 toUtm8.lon: 28.848343\n    test 1033 line 199 toUtm8.easting: 2360869.895525\n    test 1034 line 199 toUtm8.northing: 9553298.449536\n    test 1035 line 199 toUtm8.gamma: 78.848205\n    test 1036 line 199 toUtm8.scale: 1.068453\n    test 1037 line 199 toUtm8.lat: 68.946087\n    test 1038 line 199 toUtm8.lon: 79.574523\n\n    test skipped (27): line 200 toUtm8.'79.275096210569 83.551272329394 1196539.9721941076965 9861920.8362302532842 83.437668440198132309 1.01713723718699411107'\n    test 1039 line 201 toUtm8.easting: 1327758.704795\n    test 1040 line 201 toUtm8.northing: 2375509.241683\n    test 1041 line 201 toUtm8.gamma: 4.617572\n    test 1042 line 201 toUtm8.scale: 1.021465\n    test 1043 line 201 toUtm8.lat: 21.000252\n    test 1044 line 201 toUtm8.lon: 12.697444\n    test 1045 line 202 toUtm8.easting: 2070860.327644\n    test 1046 line 202 toUtm8.northing: 8604500.719581\n    test 1047 line 202 toUtm8.gamma: 54.722761\n    test 1048 line 202 toUtm8.scale: 1.052469\n    test 1049 line 202 toUtm8.lat: 68.015227\n    test 1050 line 202 toUtm8.lon: 56.732419\n    test 1051 line 203 toUtm8.easting: 6564776.654864\n    test 1052 line 203 toUtm8.northing: 8171207.177379\n    test 1053 line 203 toUtm8.gamma: 69.237523\n    test 1054 line 203 toUtm8.scale: 1.573894\n    test 1055 line 203 toUtm8.lat: 37.423675\n    test 1056 line 203 toUtm8.lon: 76.947359\n    test 1057 line 204 toUtm8.easting: 592653.553821\n    test 1058 line 204 toUtm8.northing: 6125529.810052\n    test 1059 line 204 toUtm8.gamma: 7.600785\n    test 1060 line 204 toUtm8.scale: 1.003912\n    test 1061 line 204 toUtm8.lat: 54.922707\n    test 1062 line 204 toUtm8.lon: 9.260818\n    test 1063 line 205 toUtm8.easting: 693459.671821\n    test 1064 line 205 toUtm8.northing: 6943779.991032\n    test 1065 line 205 toUtm8.gamma: 11.787587\n    test 1066 line 205 toUtm8.scale: 1.005496\n    test 1067 line 205 toUtm8.lat: 61.982810\n    test 1068 line 205 toUtm8.lon: 13.299659\n    test 1069 line 206 toUtm8.easting: 1838956.187625\n    test 1070 line 206 toUtm8.northing: 3511959.612381\n    test 1071 line 206 toUtm8.gamma: 9.844313\n    test 1072 line 206 toUtm8.scale: 1.041603\n    test 1073 line 206 toUtm8.lat: 30.324214\n    test 1074 line 206 toUtm8.lon: 18.959769\n    test 1075 line 207 toUtm8.easting: 4460690.884597\n    test 1076 line 207 toUtm8.northing: 5541873.235403\n    test 1077 line 207 toUtm8.gamma: 35.768613\n    test 1078 line 207 toUtm8.scale: 1.254179\n    test 1079 line 207 toUtm8.lat: 37.629667\n    test 1080 line 207 toUtm8.lon: 49.649131\n    test 1081 line 208 toUtm8.easting: 2311168.998941\n    test 1082 line 208 toUtm8.northing: 9480561.869119\n    test 1083 line 208 toUtm8.gamma: 76.828257\n    test 1084 line 208 toUtm8.scale: 1.065556\n    test 1085 line 208 toUtm8.lat: 69.225574\n    test 1086 line 208 toUtm8.lon: 77.656135\n    test 1087 line 209 toUtm8.easting: 4111775.114451\n    test 1088 line 209 toUtm8.northing: 6509014.348792\n    test 1089 line 209 toUtm8.gamma: 43.052130\n    test 1090 line 209 toUtm8.scale: 1.214125\n    test 1091 line 209 toUtm8.lat: 44.698478\n    test 1092 line 209 toUtm8.lon: 52.979304\n    test 1093 line 210 toUtm8.easting: 75358.261962\n    test 1094 line 210 toUtm8.northing: 7711258.662251\n    test 1095 line 210 toUtm8.gamma: 1.806297\n    test 1096 line 210 toUtm8.scale: 0.999669\n    test 1097 line 210 toUtm8.lat: 69.499594\n    test 1098 line 210 toUtm8.lon: 1.928336\n\n    test skipped (28): line 211 toUtm8.'27.981363604998 86.061112755721 8781885.2291162503299 9184776.4522114918448 81.795538514711932534 2.09490761781464961377'\n    test 1099 line 212 toUtm8.easting: 954378.415174\n    test 1100 line 212 toUtm8.northing: 7449110.669807\n    test 1101 line 212 toUtm8.gamma: 19.380657\n    test 1102 line 212 toUtm8.scale: 1.010768\n    test 1103 line 212 toUtm8.lat: 65.699839\n    test 1104 line 212 toUtm8.lon: 21.104725\n    test 1105 line 213 toUtm8.easting: 720971.793706\n    test 1106 line 213 toUtm8.northing: 5265195.121555\n    test 1107 line 213 toUtm8.gamma: 7.002995\n    test 1108 line 213 toUtm8.scale: 1.005995\n    test 1109 line 213 toUtm8.lat: 47.143648\n    test 1110 line 213 toUtm8.lon: 9.512189\n    test 1111 line 214 toUtm8.easting: 561561.493937\n    test 1112 line 214 toUtm8.northing: 989910.236221\n    test 1113 line 214 toUtm8.gamma: 0.793118\n    test 1114 line 214 toUtm8.scale: 1.003505\n    test 1115 line 214 toUtm8.lat: 8.920167\n    test 1116 line 214 toUtm8.lon: 5.101513\n    test 1117 line 215 toUtm8.easting: 3446829.634468\n    test 1118 line 215 toUtm8.northing: 9232868.155664\n    test 1119 line 215 toUtm8.gamma: 76.279075\n    test 1120 line 215 toUtm8.scale: 1.148263\n    test 1121 line 215 toUtm8.lat: 59.778971\n    test 1122 line 215 toUtm8.lon: 78.080322\n\n    test skipped (29): line 216 toUtm8.'55.865310107291 87.384288430943 4048307.5459092527942 9800416.4229977935137 86.843918034217523739 1.20649504624906774925'\n    test 1123 line 217 toUtm8.easting: 8973188.480293\n    test 1124 line 217 toUtm8.northing: 7042230.087021\n    test 1125 line 217 toUtm8.gamma: 60.872456\n    test 1126 line 217 toUtm8.scale: 2.156098\n    test 1127 line 217 toUtm8.lat: 24.310973\n    test 1128 line 217 toUtm8.lon: 76.823777\n    test 1129 line 218 toUtm8.easting: 126314.191618\n    test 1130 line 218 toUtm8.northing: 396006.687921\n    test 1131 line 218 toUtm8.gamma: 0.071065\n    test 1132 line 218 toUtm8.scale: 0.999798\n    test 1133 line 218 toUtm8.lat: 3.582041\n    test 1134 line 218 toUtm8.lon: 1.137286\n    test 1135 line 219 toUtm8.easting: 5247652.345647\n    test 1136 line 219 toUtm8.northing: 8670513.359752\n    test 1137 line 219 toUtm8.gamma: 72.700498\n    test 1138 line 219 toUtm8.scale: 1.355272\n    test 1139 line 219 toUtm8.lat: 46.124233\n    test 1140 line 219 toUtm8.lon: 77.313118\n\n    test skipped (30): line 220 toUtm8.'31.17139056295 87.104503768139 8103656.8381187232079 9469794.014736839373 84.490673011906282841 1.91216400164486142107'\n    test 1141 line 221 toUtm8.easting: 6300112.758236\n    test 1142 line 221 toUtm8.northing: 93835.917364\n    test 1143 line 221 toUtm8.gamma: 0.644805\n    test 1144 line 221 toUtm8.scale: 1.534073\n    test 1145 line 221 toUtm8.lat: 0.553171\n    test 1146 line 221 toUtm8.lon: 49.117104\n    test 1147 line 222 toUtm8.easting: 3894813.593782\n    test 1148 line 222 toUtm8.northing: 4833832.341027\n    test 1149 line 222 toUtm8.gamma: 27.453298\n    test 1150 line 222 toUtm8.scale: 1.192135\n    test 1151 line 222 toUtm8.lat: 35.361587\n    test 1152 line 222 toUtm8.lon: 41.860599\n    test 1153 line 223 toUtm8.easting: 402511.346712\n    test 1154 line 223 toUtm8.northing: 3520621.561911\n    test 1155 line 223 toUtm8.gamma: 2.238474\n    test 1156 line 223 toUtm8.scale: 1.001599\n    test 1157 line 223 toUtm8.lat: 31.750314\n    test 1158 line 223 toUtm8.lon: 4.248167\n    test 1159 line 224 toUtm8.easting: 5357378.503148\n    test 1160 line 224 toUtm8.northing: 2772997.602234\n    test 1161 line 224 toUtm8.gamma: 17.823560\n    test 1162 line 224 toUtm8.scale: 1.376031\n    test 1163 line 224 toUtm8.lat: 17.924336\n    test 1164 line 224 toUtm8.lon: 46.096402\n    test 1165 line 225 toUtm8.easting: 2807553.985866\n    test 1166 line 225 toUtm8.northing: 8177847.980275\n    test 1167 line 225 toUtm8.gamma: 54.680045\n    test 1168 line 225 toUtm8.scale: 1.097531\n    test 1169 line 225 toUtm8.lat: 60.931488\n    test 1170 line 225 toUtm8.lon: 58.221214\n\n    test skipped (31): line 226 toUtm8.'5.358150979521 87.556213284144 18289045.16650076146 7792942.3396035398889 73.216494415207315628 8.09800850850277481729'\n\n    test skipped (32): line 227 toUtm8.'28.616673489124 80.452426461437 8376822.4595378634541 8128174.6238782329989 70.920116640676321501 1.98487312027093768388'\n    test 1171 line 228 toUtm8.easting: 11898068.352950  FAILED, KNOWN, expected 11898068.353272\n    test 1172 line 228 toUtm8.northing: 4772439.493355  FAILED, KNOWN, expected 4772439.493697\n    test 1173 line 228 toUtm8.gamma: 42.613968\n    test 1174 line 228 toUtm8.scale: 3.314412\n    test 1175 line 228 toUtm8.lat: 11.709763\n    test 1176 line 228 toUtm8.lon: 76.760295\n    test 1177 line 229 toUtm8.easting: 10550946.939052  FAILED, KNOWN, expected 10550946.939050\n    test 1178 line 229 toUtm8.northing: 3851968.815305  FAILED, KNOWN, expected 3851968.815295\n    test 1179 line 229 toUtm8.gamma: 33.383025\n    test 1180 line 229 toUtm8.scale: 2.724754\n    test 1181 line 229 toUtm8.lat: 12.009498\n    test 1182 line 229 toUtm8.lon: 71.782351\n\n    test skipped (33): line 230 toUtm8.'37.62978386356 85.795687334213 6828299.1236065501034 9394803.2274626281036 83.181386462369626591 1.62435875189611017521'\n    test 1183 line 231 toUtm8.easting: 11162550.334001  FAILED, KNOWN, expected 11162550.334022\n    test 1184 line 231 toUtm8.northing: 2640267.279546  FAILED, KNOWN, expected 2640267.279593\n    test 1185 line 231 toUtm8.gamma: 23.145404\n    test 1186 line 231 toUtm8.scale: 2.998408\n    test 1187 line 231 toUtm8.lat: 7.721128\n    test 1188 line 231 toUtm8.lon: 71.662731\n    test 1189 line 232 toUtm8.easting: 4411584.447941\n    test 1190 line 232 toUtm8.northing: 4956173.694407\n    test 1191 line 232 toUtm8.gamma: 30.713919\n    test 1192 line 232 toUtm8.scale: 1.248736\n    test 1193 line 232 toUtm8.lat: 34.295026\n    test 1194 line 232 toUtm8.lon: 46.442191\n    test 1195 line 233 toUtm8.easting: 672108.897905\n    test 1196 line 233 toUtm8.northing: 4751554.657054\n    test 1197 line 233 toUtm8.gamma: 5.569178\n    test 1198 line 233 toUtm8.scale: 1.005162\n    test 1199 line 233 toUtm8.lat: 42.622496\n    test 1200 line 233 toUtm8.lon: 8.193605\n    test 1201 line 234 toUtm8.easting: 5022964.290579\n    test 1202 line 234 toUtm8.northing: 6860418.199502\n    test 1203 line 234 toUtm8.gamma: 50.862230\n    test 1204 line 234 toUtm8.scale: 1.324925\n    test 1205 line 234 toUtm8.lat: 41.667780\n    test 1206 line 234 toUtm8.lon: 61.518288\n    test 1207 line 235 toUtm8.easting: 1669655.595207\n    test 1208 line 235 toUtm8.northing: 4152086.537021\n    test 1209 line 235 toUtm8.gamma: 11.110237\n    test 1210 line 235 toUtm8.scale: 1.034138\n    test 1211 line 235 toUtm8.lat: 36.060369\n    test 1212 line 235 toUtm8.lon: 18.444112\n    test 1213 line 236 toUtm8.easting: 6055876.729655\n    test 1214 line 236 toUtm8.northing: 4896837.552619\n    test 1215 line 236 toUtm8.gamma: 35.799747\n    test 1216 line 236 toUtm8.scale: 1.485967\n    test 1217 line 236 toUtm8.lat: 27.948091\n    test 1218 line 236 toUtm8.lon: 56.816429\n    test 1219 line 237 toUtm8.easting: 1209214.164379\n    test 1220 line 237 toUtm8.northing: 7266409.859178\n    test 1221 line 237 toUtm8.gamma: 22.319633\n    test 1222 line 237 toUtm8.scale: 1.017554\n    test 1223 line 237 toUtm8.lat: 63.386030\n    test 1224 line 237 toUtm8.lon: 24.662716\n    test 1225 line 238 toUtm8.easting: 5154564.559584\n    test 1226 line 238 toUtm8.northing: 698118.349975\n    test 1227 line 238 toUtm8.gamma: 4.242360\n    test 1228 line 238 toUtm8.scale: 1.347481\n    test 1229 line 238 toUtm8.lat: 4.680922\n    test 1230 line 238 toUtm8.lon: 42.114426\n    test 1231 line 239 toUtm8.easting: 2695149.806543\n    test 1232 line 239 toUtm8.northing: 8208197.765605\n    test 1233 line 239 toUtm8.gamma: 54.178615\n    test 1234 line 239 toUtm8.scale: 1.089730\n    test 1235 line 239 toUtm8.lat: 61.826625\n    test 1236 line 239 toUtm8.lon: 57.525096\n    test 1237 line 240 toUtm8.easting: 3394792.327820\n    test 1238 line 240 toUtm8.northing: 3217583.415552\n    test 1239 line 240 toUtm8.gamma: 15.165863\n    test 1240 line 240 toUtm8.scale: 1.145285\n    test 1241 line 240 toUtm8.lat: 25.104353\n    test 1242 line 240 toUtm8.lon: 32.528660\n    test 1243 line 241 toUtm8.easting: 1429160.966985\n    test 1244 line 241 toUtm8.northing: 8212685.362032\n    test 1245 line 241 toUtm8.gamma: 37.484904\n    test 1246 line 241 toUtm8.scale: 1.024676\n    test 1247 line 241 toUtm8.lat: 69.678351\n    test 1248 line 241 toUtm8.lon: 39.275513\n\n    test skipped (34): line 242 toUtm8.'29.671383681805 84.19659549085 8343387.9980651104898 8885196.9545780118644 78.561937382568633298 1.97473261886829061763'\n    test 1249 line 243 toUtm8.easting: 1990722.928606\n    test 1250 line 243 toUtm8.northing: 7569202.065162\n    test 1251 line 243 toUtm8.gamma: 37.075276\n    test 1252 line 243 toUtm8.scale: 1.048486\n    test 1253 line 243 toUtm8.lat: 62.300208\n    test 1254 line 243 toUtm8.lon: 40.474051\n    test 1255 line 244 toUtm8.easting: 1554980.099559\n    test 1256 line 244 toUtm8.northing: 1449423.919586\n    test 1257 line 244 toUtm8.gamma: 3.188328\n    test 1258 line 244 toUtm8.scale: 1.029664\n    test 1259 line 244 toUtm8.lat: 12.721776\n    test 1260 line 244 toUtm8.lon: 14.190003\n    test 1261 line 245 toUtm8.easting: 785205.450196\n    test 1262 line 245 toUtm8.northing: 5575158.423096\n    test 1263 line 245 toUtm8.gamma: 8.388417\n    test 1264 line 245 toUtm8.scale: 1.007181\n    test 1265 line 245 toUtm8.lat: 49.811296\n    test 1266 line 245 toUtm8.lon: 10.925011\n    test 1267 line 246 toUtm8.easting: 3310405.988313\n    test 1268 line 246 toUtm8.northing: 5955022.233881\n    test 1269 line 246 toUtm8.gamma: 33.007587\n    test 1270 line 246 toUtm8.scale: 1.137141\n    test 1271 line 246 toUtm8.lat: 45.132680\n    test 1272 line 246 toUtm8.lon: 42.478624\n    test 1273 line 247 toUtm8.easting: 4733460.960666\n    test 1274 line 247 toUtm8.northing: 129034.889816\n    test 1275 line 247 toUtm8.gamma: 0.737551\n    test 1276 line 247 toUtm8.scale: 1.290439\n    test 1277 line 247 toUtm8.lat: 0.904279\n    test 1278 line 247 toUtm8.lon: 39.078412\n    test 1279 line 248 toUtm8.easting: 3322708.343909\n    test 1280 line 248 toUtm8.northing: 3864738.078742\n    test 1281 line 248 toUtm8.gamma: 18.472566\n    test 1282 line 248 toUtm8.scale: 1.138838\n    test 1283 line 248 toUtm8.lat: 30.163605\n    test 1284 line 248 toUtm8.lon: 33.577996\n\n    test skipped (35): line 249 toUtm8.'27.643243707755 81.892859091432 8672864.4172042475623 8333465.9834441061554 73.206272638168122883 2.06544053870286774312'\n\n    test skipped (36): line 250 toUtm8.'18.201207657521 82.434617649311 11126818.23119627031 7618712.1749910723126 67.88717347393512063 2.92241673495261070414'\n\n    test skipped (37): line 251 toUtm8.'28.804576432117 89.886072420251 8650100.9817967479337 9975084.1689971279206 89.767446308690086924 2.05728879562910108817'\n    test 1285 line 252 toUtm8.easting: 2212701.180192\n    test 1286 line 252 toUtm8.northing: 650348.100229\n    test 1287 line 252 toUtm8.gamma: 1.970441\n    test 1288 line 252 toUtm8.scale: 1.060830\n    test 1289 line 252 toUtm8.lat: 5.542998\n    test 1290 line 252 toUtm8.lon: 19.589578\n    test 1291 line 253 toUtm8.easting: 6890222.326618\n    test 1292 line 253 toUtm8.northing: 7506813.499547\n    test 1293 line 253 toUtm8.gamma: 62.684825\n    test 1294 line 253 toUtm8.scale: 1.638488\n    test 1295 line 253 toUtm8.lat: 34.237147\n    test 1296 line 253 toUtm8.lon: 73.678164\n    test 1297 line 254 toUtm8.easting: 6692260.067325\n    test 1298 line 254 toUtm8.northing: 4244174.008110\n    test 1299 line 254 toUtm8.gamma: 31.812920\n    test 1300 line 254 toUtm8.scale: 1.604640\n    test 1301 line 254 toUtm8.lat: 22.704949\n    test 1302 line 254 toUtm8.lon: 57.877010\n    test 1303 line 255 toUtm8.easting: 1225564.137190\n    test 1304 line 255 toUtm8.northing: 4778923.924144\n    test 1305 line 255 toUtm8.gamma: 10.083419\n    test 1306 line 255 toUtm8.scale: 1.018134\n    test 1307 line 255 toUtm8.lat: 42.192424\n    test 1308 line 255 toUtm8.lon: 14.828196\n    test 1309 line 256 toUtm8.easting: 12341116.155088  FAILED, KNOWN, expected 12341116.154950\n    test 1310 line 256 toUtm8.northing: 5081855.520287  FAILED, KNOWN, expected 5081855.521966\n    test 1311 line 256 toUtm8.gamma: 45.712545  FAILED, KNOWN, expected 45.712546\n    test 1312 line 256 toUtm8.scale: 3.535170\n    test 1313 line 256 toUtm8.lat: 11.481151\n    test 1314 line 256 toUtm8.lon: 78.189236\n    test 1315 line 257 toUtm8.easting: 6673845.021771\n    test 1316 line 257 toUtm8.northing: 1177587.190565\n    test 1317 line 257 toUtm8.gamma: 8.389141\n    test 1318 line 257 toUtm8.scale: 1.605171\n    test 1319 line 257 toUtm8.lat: 6.609626\n    test 1320 line 257 toUtm8.lon: 51.735783\n    test 1321 line 258 toUtm8.easting: 6966354.690417\n    test 1322 line 258 toUtm8.northing: 3641802.005093\n    test 1323 line 258 toUtm8.gamma: 27.409636\n    test 1324 line 258 toUtm8.scale: 1.661469\n    test 1325 line 258 toUtm8.lat: 19.059369\n    test 1326 line 258 toUtm8.lon: 57.526439\n    test 1327 max forward error: 1.678809e-03\n    test 1328 max reverse error: 3.170463e-09\n    test 1329 Utm.scale0: 0.9996\n    test 1330 Utm.datum: WGS84\n    test 1331 Utm.datum.ellipsoid.KsOrder: 8\n    test 1332 WGS84.KsOrder: 8\n\n    23 of 1332 testUtmTMcoords.py tests (1.7%) FAILED, ALL KNOWN, 37 skipped (pygeodesy 26.3.26 Python 3.13.12 64bit arm64 coverage 7.10.7 geographiclib 2.1 numpy 2.3.3 scipy 1.16.2 Math 2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 macOS 26.3.1 isLazy 1 -W  default) 531.094 ms\nrunning /Library/Framewo....n3.13 -W default ~/PyGeodesy/test/testUtmUps.py\n\n    testing testUtmUps.py 23.03.27 (module pygeodesy.utmups 25.04.14) isLazy=1\n    test 1 UtmUps: 00 N 448251.0 5411932.0001\n    test 2 UtmUps.ValidateOK: True\n    test 3 UtmUps: 00 N 448252 5411933\n    test 4 UtmUps: 00 N 448251.795 5411932.678\n    test 5 UtmUps: 00Z N 448251.8 5411932.7 n/a n/a\n    test 6 UtmUps.ValidateOK: True\n    test 7 UtmUps.toLatLon: 43.684097°N, 175.265195°E\n    test 8 UtmUps.toLatLon: 43°41′02.75″N, 175°15′54.7″E\n    test 9 LL.toUtmUps: 60 N 360177 4838249\n    test 10 LL.toUtmUps: 60 N 360176.686 4838249.416\n    test 11 LL.toUtmUps: [Z:60T, H:N, E:360177, N:4838249, C:-1.19839167°, S:0.99984048]\n    test 12 LL.toUtmUps.ValidateOK: True\n    test 13 toUtmUps8ID1: 00Y N 1530125.78 2426773.6 -132.24798917° 0.99647445\n    test 14 toUtmUps8ID1.ValidateOK: True\n    test 15 toUtmUps8ID1.ValidateOK: True\n    test 16 toUtmUps8ID2: 38 N 467367.68 8100752.13 -57.37878422′ 0.99961302  FAILED, KNOWN, expected 38 N 3320416.75 632668.43 +44.0° 1.01619505\n    test 17 toUtmUps8ID2.ValidateOK: True\n    test 18 toUtmUps8ID2.ValidateOK: True\n    test 19 toUtmUps8ID2: 00 N 3320416.75 632668.43 +44.0° 1.01619505\n    test 20 toUtmUps8ID2.ValidateOK: easting (3320416.7473598532): outside UPS range [1300000, 2700000]  FAILED, KNOWN, expected True\n    test 21 toUtmUps8ID3: 00B S 2222979.47 1797474.9 -132.24786194° 0.99455723\n    test 22 toUtmUps8ID3.ValidateOK: True\n    test 23 toUtmUps8ID3.ValidateOK: True\n    test 24 UtmUps.toLatLonID4.ValidateOK: True\n    test 25 UtmUps.toLatLonID4: 84°17′14.04″N, 132°14′52.76″W\n    test 26 UtmUps.toLatLonID4: 84.287234°N, 132.247989°W\n    test 27 UtmUps.ValidateOK: easting (3320416.75): outside UPS range [1300000, 2700000]  FAILED, KNOWN, expected True\n    test 28 UtmUps.toLatLonID5: 73°00′00.0″N, 044°00′00.0″E\n    test 29 UtmUps.toLatLonID5: 73.0°N, 044.0°E\n    test 30 UtmUps.ValidateOK: True\n    test 31 UtmUps.toLatLonID6: 87°17′14.4″S, 132°14′52.3″E\n    test 32 UtmUps.toLatLonID6: 87.287333°S, 132.247861°E\n    test 33 latlon1: 61.2°N, 149.9°W\n    test 34 toUtmUps8: 06 N 344174 6788521\n    test 35 toUtmUps8: 06V N 344173.864114 6788521.418164 -2.54179531° 0.99989751\n    test 36 toUtmUps8.ValidateOK: True\n    test 37 toMgrs: 06V UN 44173 88521\n    test 38 latlon2: LatLon(83°37′37.2″N, 032°39′50.4″W)\n    test 39 toUtmUps8: 25 N 504164 9286466\n    test 40 toUtmUps8: [Z:25X, H:N, E:504164, N:9286466]\n    test 41 toUtmUps8: 25X N 504163.899383 9286465.664902 +20.03542083′ 0.99960021\n    test 42 toUtmUps8.ValidateOK: True\n    test 43 toMgrs: 25X EN 04163 86465\n    test 44 latlon3: 33.33°N, 044.44°E\n    test 45 toUtmUps8: 38 N 447882 3688012\n    test 46 toUtmUps8: 38S N 447882.413169 3688011.692733 -18.46228466′ 0.99963349\n    test 47 toUtmUps8.ValidateOK: True\n    test 48 toMgrs: 38S MB 47882 88011\n    test 49 latlon4: 79.0°S, 079.0°W\n    test 50 toUtmUps8: 17 S 542594 1229296\n    test 51 toUtmUps8: 17C S 542594.134555 1229296.157301 -1.96328341° 0.99962217\n    test 52 toUtmUps8.ValidateOK: True\n    test 53 toMgrs: 17C NN 42594 29296\n    test 54 latlon5: 84.0°N, 084.0°E\n    test 55 toUtmUps8: 00 N 2663075 1930308\n    test 56 toUtmUps8: 00Z N 2663075.299562 1930307.977716 +84.0° 0.99673\n    test 57 toUtmUps8.ValidateOK: True\n    test 58 latlon6: 13.4125°N, 103.8667°E\n    test 59 toUtmUps8: 48 N 377302 1483035\n    test 60 toUtmUps8: 48P N 377302.354183 1483034.777084 -15.77480856′ 0.99978623\n    test 61 toUtmUps8.ValidateOK: True\n    test 62 toMgrs: 48P UV 77302 83034\n    test 63 latlon7: 13.4125°S, 103.8667°W\n    test 64 LL.toUtmUps: 13 S 622698 8516965\n    test 65 LL.toUtmUps: 13L S 622697.645817 8516965.222916 -15.77480856′ 0.99978623\n    test 66 LL.toUtmUps.ValidateOK: True\n    test 67 toMgrs: 13L FF 22697 16965\n    test 68 latlon8: 43.684097°N, 175.265195°E\n    test 69 LL.toUtmUps: 60 N 360177 4838249\n    test 70 LL.toUtmUps: 60 N 360176.691 4838249.422\n    test 71 LL.toUtmUps: [Z:60T, H:N, E:360177, N:4838249, C:-1.19839163°, S:0.99984048]\n    test 72 LL.toUtmUps.ValidateOK: True\n    test 73 toMgrs: 60T UP 60176 38249\n    test 74 UtmUps.toLatLon: 43.684097°N, 175.265195°E\n    test 75 UtmUps.toLatLon: 43°41′02.75″N, 175°15′54.7″E\n    test 76 latlon9: 41.321801°N, 074.801413°W\n    test 77 LL.toUtmUps: 18 N 516620 4574500\n    test 78 LL.toUtmUps: [Z:18T, H:N, E:516620, N:4574500, C:+7.86748851′, S:0.9996034]\n    test 79 LL.toUtmUps.ValidateOK: True\n    test 80 toMgrs: 18T WL 16619 74500\n    test 81 UtmUps.toLatLon: 41.321801°N, 074.801413°W\n    test 82 UtmUps.toLatLon: 41°19′18.48″N, 074°48′05.09″W\n    test 83 parseUTMUPS5: 18 N 516620 4574500\n    test 84 parseUTMUPS5.ValidateOK: True\n    test 85 UtmUps.toLatLon: 41.321801°N, 074.801413°W\n    test 86 UtmUps: 00A S 321441 5810117\n    test 87 UtmUps.ValidateOK: easting (321441.0425108216): outside UPS range [800000, 3200000]  FAILED, KNOWN, expected True\n    test 88 UtmUps.toLatLon: 53.713776°S, 023.77604°W\n    test 89 UtmUps.toLatLon: 53°42′49.59″S, 023°46′33.74″W\n    test 90 LL.toUtmUps: 27 S 316807 4044745\n    test 91 LL.toUtmUps.ValidateOK: True\n    test 92 LL.toUtmUps: 27 S 316807.326 4044744.532\n    test 93 LL.toUtmUps: [Z:27F, H:S, E:316807, N:4044745, C:+2.23830171°, S:1.00001184]\n    test 94 UtmUps: 00Z N 400000 5000000\n    test 95 UtmUps.ValidateOK: True\n    test 96 parseUTMUPS5: (31, 'N', 446000.0, 8436100.0, 'X')\n    test 97 parseUTMUPS5: (0, 'S', 506346.0, 1057743.0, 'A')\n\n    4 of 97 testUtmUps.py tests (4.1%) FAILED, ALL KNOWN (pygeodesy 26.3.26 Python 3.13.12 64bit arm64 coverage 7.10.7 geographiclib 2.1 numpy 2.3.3 scipy 1.16.2 Math 2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 macOS 26.3.1 isLazy 1 -W  default) 26.684 ms\nrunning /Library/Framewo....n3.13 -W default ~/PyGeodesy/test/testUtmUpsTMcoords.py\n\n    testing testUtmUpsTMcoords.py 24.03.22 (module pygeodesy.utmups 25.04.14) isLazy=1\n    test 1 line 1 toUtmUps8.easting: 1548706.791619\n    test 2 line 1 toUtmUps8.northing: 8451449.198772\n    test 3 line 1 toUtmUps8.gamma: 43.922790\n    test 4 line 1 toUtmUps8.scale: 1.029060\n    test 5 line 1 toUtmUps8.lat: 70.579277\n    test 6 line 1 toUtmUps8.lon: 45.599420\n    test 7 line 2 toUtmUps8.easting: 2624150.740929\n    test 8 line 2 toUtmUps8.northing: 1204434.041605\n    test 9 line 2 toUtmUps8.gamma: 4.292619\n    test 10 line 2 toUtmUps8.scale: 1.086051\n    test 11 line 2 toUtmUps8.lat: 10.018894\n    test 12 line 2 toUtmUps8.lon: 23.313324\n    test 13 line 3 toUtmUps8.easting: 9855841.232935\n    test 14 line 3 toUtmUps8.northing: 6145496.115157  FAILED, KNOWN, expected 6145496.115155\n    test 15 line 3 toUtmUps8.gamma: 53.348315\n    test 16 line 3 toUtmUps8.scale: 2.445098\n    test 17 line 3 toUtmUps8.lat: 19.479896\n    test 18 line 3 toUtmUps8.lon: 75.662049\n    test 19 line 4 toUtmUps8.easting: 3206390.691996\n    test 20 line 4 toUtmUps8.northing: 2650745.400406\n    test 21 line 4 toUtmUps8.gamma: 11.666950\n    test 22 line 4 toUtmUps8.scale: 1.129359\n    test 23 line 4 toUtmUps8.lat: 21.072465\n    test 24 line 4 toUtmUps8.lon: 29.828684\n    test 25 line 5 toUtmUps8.easting: 4328154.083501\n    test 26 line 5 toUtmUps8.northing: 749647.623690\n    test 27 line 5 toUtmUps8.gamma: 4.024317\n    test 28 line 5 toUtmUps8.scale: 1.240829\n    test 29 line 5 toUtmUps8.lat: 5.458957\n    test 30 line 5 toUtmUps8.lon: 36.385237\n    test 31 line 6 toUtmUps8.easting: 847598.266514\n    test 32 line 6 toUtmUps8.northing: 7947180.962440\n    test 33 line 6 toUtmUps8.gamma: 21.639091\n    test 34 line 6 toUtmUps8.scale: 1.008399\n    test 35 line 6 toUtmUps8.lat: 70.175454\n    test 36 line 6 toUtmUps8.lon: 22.865350\n    test 37 line 7 toUtmUps8.easting: 2727657.337974\n    test 38 line 7 toUtmUps8.northing: 8283916.696410\n    test 39 line 7 toUtmUps8.gamma: 55.690909\n    test 40 line 7 toUtmUps8.scale: 1.091942\n    test 41 line 7 toUtmUps8.lat: 61.965605\n    test 42 line 7 toUtmUps8.lon: 58.931371\n    test 43 line 8 toUtmUps8.easting: 2331001.751890\n    test 44 line 8 toUtmUps8.northing: 1313608.224751\n    test 45 line 8 toUtmUps8.gamma: 4.214690\n    test 46 line 8 toUtmUps8.scale: 1.067599\n    test 47 line 8 toUtmUps8.lat: 11.116050\n    test 48 line 8 toUtmUps8.lon: 20.901069\n    test 49 line 9 toUtmUps8.easting: 6035557.239480\n    test 50 line 9 toUtmUps8.northing: 5791770.791879\n    test 51 line 9 toUtmUps8.gamma: 43.698170\n    test 52 line 9 toUtmUps8.scale: 1.481260\n    test 53 line 9 toUtmUps8.lat: 32.210543\n    test 54 line 9 toUtmUps8.lon: 60.705849\n    test 55 line 10 toUtmUps8.easting: 1064553.125852\n    test 56 line 10 toUtmUps8.northing: 9417273.737208\n    test 57 line 10 toUtmUps8.gamma: 61.100380\n    test 58 line 10 toUtmUps8.scale: 1.013475\n    test 59 line 10 toUtmUps8.lat: 79.187451\n    test 60 line 10 toUtmUps8.lon: 61.532382\n    test 61 line 11 toUtmUps8.easting: 1400137.116164\n    test 62 line 11 toUtmUps8.northing: 9616907.017686\n    test 63 line 11 toUtmUps8.gamma: 74.527087\n    test 64 line 11 toUtmUps8.scale: 1.023640\n    test 65 line 11 toUtmUps8.lat: 77.103759\n    test 66 line 11 toUtmUps8.lon: 74.899105\n\n    test skipped (1): line 12 toUtmUps8.'21.889514024862 80.019885892785 9860691.0166261508479 7433039.1433282732643 65.357693372142649007 2.43897318400097845293'\n\n    test skipped (2): line 13 toUtmUps8.'30.53629567699 82.186177919416 8076501.8336948099169 8561614.1747819103782 75.073393190238557702 1.90620203595203984732'\n    test 67 line 14 toUtmUps8.easting: 3335099.866623\n    test 68 line 14 toUtmUps8.northing: 6740519.084015\n    test 69 line 14 toUtmUps8.gamma: 40.611821\n    test 70 line 14 toUtmUps8.scale: 1.139021\n    test 71 line 14 toUtmUps8.lat: 49.990485\n    test 72 line 14 toUtmUps8.lon: 48.203179\n\n    test skipped (3): line 15 toUtmUps8.'14.486311853451 80.905136710227 12051574.9284996192629 6587213.0519512810474 59.033236797073779959 3.3574686117030164354'\n    test 73 line 16 toUtmUps8.easting: 5387578.735298\n    test 74 line 16 toUtmUps8.northing: 4111216.907168\n    test 75 line 16 toUtmUps8.gamma: 27.574337\n    test 76 line 16 toUtmUps8.scale: 1.379357\n    test 77 line 16 toUtmUps8.lat: 25.936824\n    test 78 line 16 toUtmUps8.lon: 49.913598\n    test 79 line 17 toUtmUps8.easting: 2622214.380233\n    test 80 line 17 toUtmUps8.northing: 8678923.984567\n    test 81 line 17 toUtmUps8.gamma: 61.697275\n    test 82 line 17 toUtmUps8.scale: 1.084810\n    test 83 line 17 toUtmUps8.lat: 64.402196\n    test 84 line 17 toUtmUps8.lon: 64.091395\n\n    test skipped (4): line 18 toUtmUps8.'48.451353594584 84.856197560189 5068474.169632778036 9492066.9937094951003 83.156739839119105102 1.3299901985118008373'\n    test 85 line 19 toUtmUps8.easting: 738062.047779\n    test 86 line 19 toUtmUps8.northing: 3031007.074116\n    test 87 line 19 toUtmUps8.gamma: 3.416802\n    test 88 line 19 toUtmUps8.scale: 1.006332\n    test 89 line 19 toUtmUps8.lat: 27.203895\n    test 90 line 19 toUtmUps8.lon: 7.440229\n    test 91 line 20 toUtmUps8.easting: 1944413.834565\n    test 92 line 20 toUtmUps8.northing: 9613299.224493\n    test 93 line 20 toUtmUps8.gamma: 78.462831\n    test 94 line 20 toUtmUps8.scale: 1.046134\n    test 95 line 20 toUtmUps8.lat: 72.509000\n    test 96 line 20 toUtmUps8.lon: 78.982283\n    test 97 line 21 toUtmUps8.easting: 2114521.418406\n    test 98 line 21 toUtmUps8.northing: 4954077.440098\n    test 99 line 21 toUtmUps8.gamma: 17.571878\n    test 100 line 21 toUtmUps8.scale: 1.055093\n    test 101 line 21 toUtmUps8.lat: 41.824954\n    test 102 line 21 toUtmUps8.lon: 25.392744\n    test 103 line 22 toUtmUps8.easting: 620365.905090\n    test 104 line 22 toUtmUps8.northing: 4755542.026562\n    test 105 line 22 toUtmUps8.gamma: 5.152022\n    test 106 line 22 toUtmUps8.scale: 1.004338\n    test 107 line 22 toUtmUps8.lat: 42.701376\n    test 108 line 22 toUtmUps8.lon: 7.572738\n    test 109 line 23 toUtmUps8.easting: 263004.770989\n    test 110 line 23 toUtmUps8.northing: 4493669.762451\n    test 111 line 23 toUtmUps8.gamma: 2.020523\n    test 112 line 23 toUtmUps8.scale: 1.000452\n    test 113 line 23 toUtmUps8.lat: 40.552052\n    test 114 line 23 toUtmUps8.lon: 3.106056\n    test 115 line 24 toUtmUps8.easting: 3217221.739462\n    test 116 line 24 toUtmUps8.northing: 437776.119161\n    test 117 line 24 toUtmUps8.gamma: 1.848169\n    test 118 line 24 toUtmUps8.scale: 1.130558\n    test 119 line 24 toUtmUps8.lat: 3.501242\n    test 120 line 24 toUtmUps8.lon: 27.806507\n\n    test skipped (5): line 25 toUtmUps8.'10.148714782203 85.373767569431 14661142.4449607145297 7476100.8241849819567 68.376669038799719822 4.89664968310721668858'\n    test 121 line 26 toUtmUps8.easting: 967777.158554\n    test 122 line 26 toUtmUps8.northing: 6615684.266592\n    test 123 line 26 toUtmUps8.gamma: 14.410044\n    test 124 line 26 toUtmUps8.scale: 1.011100\n    test 125 line 26 toUtmUps8.lat: 58.582623\n    test 126 line 26 toUtmUps8.lon: 16.755558\n    test 127 line 27 toUtmUps8.easting: 7558840.728461\n    test 128 line 27 toUtmUps8.northing: 4144728.130764\n    test 129 line 27 toUtmUps8.gamma: 32.557264\n    test 130 line 27 toUtmUps8.scale: 1.791490\n    test 131 line 27 toUtmUps8.lat: 19.793004\n    test 132 line 27 toUtmUps8.lon: 61.746763\n    test 133 line 28 toUtmUps8.easting: 1056008.314161\n    test 134 line 28 toUtmUps8.northing: 9290799.692669\n    test 135 line 28 toUtmUps8.gamma: 55.843278\n    test 136 line 28 toUtmUps8.scale: 1.013253\n    test 137 line 28 toUtmUps8.lat: 78.666776\n    test 138 line 28 toUtmUps8.lon: 56.365355\n    test 139 line 29 toUtmUps8.easting: 1943965.134687\n    test 140 line 29 toUtmUps8.northing: 1389972.228690\n    test 141 line 29 toUtmUps8.gamma: 3.774869\n    test 142 line 29 toUtmUps8.scale: 1.046724\n    test 143 line 29 toUtmUps8.lat: 11.998788\n    test 144 line 29 toUtmUps8.lon: 17.597873\n    test 145 line 30 toUtmUps8.easting: 5803077.072902\n    test 146 line 30 toUtmUps8.northing: 5649957.943659\n    test 147 line 30 toUtmUps8.gamma: 41.717943\n    test 148 line 30 toUtmUps8.scale: 1.442572\n    test 149 line 30 toUtmUps8.lat: 32.540378\n    test 150 line 30 toUtmUps8.lon: 58.764613\n    test 151 line 31 toUtmUps8.easting: 2928716.986009\n    test 152 line 31 toUtmUps8.northing: 5731835.058317\n    test 153 line 31 toUtmUps8.gamma: 28.538550\n    test 154 line 31 toUtmUps8.scale: 1.106780\n    test 155 line 31 toUtmUps8.lat: 45.160356\n    test 156 line 31 toUtmUps8.lon: 37.465285\n    test 157 line 32 toUtmUps8.easting: 326141.975756\n    test 158 line 32 toUtmUps8.northing: 8881325.164543\n    test 159 line 32 toUtmUps8.gamma: 16.111415\n    test 160 line 32 toUtmUps8.scale: 1.000900\n    test 161 line 32 toUtmUps8.lat: 79.584190\n    test 162 line 32 toUtmUps8.lon: 16.367006\n    test 163 line 33 toUtmUps8.easting: 3933015.267450\n    test 164 line 33 toUtmUps8.northing: 7932373.909512\n    test 165 line 33 toUtmUps8.gamma: 58.577424\n    test 166 line 33 toUtmUps8.scale: 1.194811\n    test 167 line 33 toUtmUps8.lat: 52.470664\n    test 168 line 33 toUtmUps8.lon: 64.125580\n    test 169 line 34 toUtmUps8.easting: 8598926.983213\n    test 170 line 34 toUtmUps8.northing: 6214135.167503\n    test 171 line 34 toUtmUps8.gamma: 52.612878\n    test 172 line 34 toUtmUps8.scale: 2.051367\n    test 173 line 34 toUtmUps8.lat: 23.702673\n    test 174 line 34 toUtmUps8.lon: 72.630363\n    test 175 line 35 toUtmUps8.easting: 6620553.333772\n    test 176 line 35 toUtmUps8.northing: 6540527.122948\n    test 177 line 35 toUtmUps8.gamma: 52.350140\n    test 178 line 35 toUtmUps8.scale: 1.586614\n    test 179 line 35 toUtmUps8.lat: 32.603520\n    test 180 line 35 toUtmUps8.lon: 67.280123\n    test 181 line 36 toUtmUps8.easting: 1515136.758292\n    test 182 line 36 toUtmUps8.northing: 3858996.087537\n    test 183 line 36 toUtmUps8.gamma: 9.225127\n    test 184 line 36 toUtmUps8.scale: 1.028029\n    test 185 line 36 toUtmUps8.lat: 33.776224\n    test 186 line 36 toUtmUps8.lon: 16.280993\n    test 187 line 37 toUtmUps8.easting: 479854.373445\n    test 188 line 37 toUtmUps8.northing: 8980501.389896\n    test 189 line 37 toUtmUps8.gamma: 25.021222\n    test 190 line 37 toUtmUps8.scale: 1.002415\n    test 191 line 37 toUtmUps8.lat: 79.932747\n    test 192 line 37 toUtmUps8.lon: 25.363622\n    test 193 line 38 toUtmUps8.easting: 5243446.564940\n    test 194 line 38 toUtmUps8.northing: 140657.213960\n    test 195 line 38 toUtmUps8.gamma: 0.862817\n    test 196 line 38 toUtmUps8.scale: 1.360358\n    test 197 line 38 toUtmUps8.lat: 0.935056\n    test 198 line 38 toUtmUps8.lon: 42.538824\n\n    test skipped (6): line 39 toUtmUps8.'13.490862440668 83.178380075606 12806457.9232176809509 7170118.6846750266674 64.708921319446620085 3.7405880916836789809'\n    test 199 line 40 toUtmUps8.easting: 1202993.459158\n    test 200 line 40 toUtmUps8.northing: 5557316.053599\n    test 201 line 40 toUtmUps8.gamma: 12.579061\n    test 202 line 40 toUtmUps8.scale: 1.017426\n    test 203 line 40 toUtmUps8.lat: 48.979057\n    test 204 line 40 toUtmUps8.lon: 16.474542\n    test 205 line 41 toUtmUps8.easting: 1729088.710196\n    test 206 line 41 toUtmUps8.northing: 7770874.289954\n    test 207 line 41 toUtmUps8.gamma: 36.021783\n    test 208 line 41 toUtmUps8.scale: 1.036397\n    test 209 line 41 toUtmUps8.lat: 65.036016\n    test 210 line 41 toUtmUps8.lon: 38.729091\n    test 211 line 42 toUtmUps8.easting: 2437301.517425\n    test 212 line 42 toUtmUps8.northing: 5539327.748318\n    test 213 line 42 toUtmUps8.gamma: 23.461879\n    test 214 line 42 toUtmUps8.scale: 1.073459\n    test 215 line 42 toUtmUps8.lat: 45.510091\n    test 216 line 42 toUtmUps8.lon: 31.303729\n    test 217 line 43 toUtmUps8.easting: 3647186.135066\n    test 218 line 43 toUtmUps8.northing: 2086412.330983\n    test 219 line 43 toUtmUps8.gamma: 10.023991\n    test 220 line 43 toUtmUps8.scale: 1.168707\n    test 221 line 43 toUtmUps8.lat: 16.058010\n    test 222 line 43 toUtmUps8.lon: 32.520026\n    test 223 line 44 toUtmUps8.easting: 1818497.243556\n    test 224 line 44 toUtmUps8.northing: 4275471.745057\n    test 225 line 44 toUtmUps8.gamma: 12.499656\n    test 226 line 44 toUtmUps8.scale: 1.040604\n    test 227 line 44 toUtmUps8.lat: 36.845200\n    test 228 line 44 toUtmUps8.lon: 20.282283\n    test 229 line 45 toUtmUps8.easting: 3751304.113783\n    test 230 line 45 toUtmUps8.northing: 5130454.001592\n    test 231 line 45 toUtmUps8.gamma: 28.959707\n    test 232 line 45 toUtmUps8.scale: 1.177681\n    test 233 line 45 toUtmUps8.lat: 37.865481\n    test 234 line 45 toUtmUps8.lon: 41.990402\n    test 235 line 46 toUtmUps8.easting: 2616733.138544\n    test 236 line 46 toUtmUps8.northing: 394644.463815\n    test 237 line 46 toUtmUps8.gamma: 1.390425\n    test 238 line 46 toUtmUps8.scale: 1.085595\n    test 239 line 46 toUtmUps8.lat: 3.287272\n    test 240 line 46 toUtmUps8.lon: 22.917604\n    test 241 line 47 toUtmUps8.easting: 1756506.573942\n    test 242 line 47 toUtmUps8.northing: 5570393.986394\n    test 243 line 47 toUtmUps8.gamma: 17.897894\n    test 244 line 47 toUtmUps8.scale: 1.037732\n    test 245 line 47 toUtmUps8.lat: 47.813686\n    test 246 line 47 toUtmUps8.lon: 23.545092\n    test 247 line 48 toUtmUps8.easting: 8752461.894711\n    test 248 line 48 toUtmUps8.northing: 6087728.152284\n    test 249 line 48 toUtmUps8.gamma: 51.628465\n    test 250 line 48 toUtmUps8.scale: 2.095465\n    test 251 line 48 toUtmUps8.lat: 22.836853\n    test 252 line 48 toUtmUps8.lon: 72.604385\n    test 253 line 49 toUtmUps8.easting: 1309272.216432\n    test 254 line 49 toUtmUps8.northing: 59520.028899\n    test 255 line 49 toUtmUps8.gamma: 0.109069\n    test 256 line 49 toUtmUps8.scale: 1.020897\n    test 257 line 49 toUtmUps8.lat: 0.527262\n    test 258 line 49 toUtmUps8.lon: 11.684209\n    test 259 line 50 toUtmUps8.easting: 328652.277129\n    test 260 line 50 toUtmUps8.northing: 2233043.958874\n    test 261 line 50 toUtmUps8.gamma: 1.084863\n    test 262 line 50 toUtmUps8.scale: 1.000935\n    test 263 line 50 toUtmUps8.lat: 20.166742\n    test 264 line 50 toUtmUps8.lon: 3.143948\n\n    test skipped (7): line 51 toUtmUps8.'28.604629015528 85.988721094779 8637959.7164470998207 9190635.1560309800028 81.802562643198123218 2.05432863342852874819'\n\n    test skipped (8): line 52 toUtmUps8.'28.984047991106 85.833447775172 8548521.4551470334531 9172410.9432821880799 81.583928102890161419 2.02964145862183583179'\n    test 265 line 53 toUtmUps8.easting: 796987.281104\n    test 266 line 53 toUtmUps8.northing: 7677446.357675\n    test 267 line 53 toUtmUps8.gamma: 18.084472\n    test 268 line 53 toUtmUps8.scale: 1.007381\n    test 269 line 53 toUtmUps8.lat: 68.071020\n    test 270 line 53 toUtmUps8.lon: 19.392823\n\n    test skipped (9): line 54 toUtmUps8.'61.416576191872 81.981611413918 3291036.4967623295988 9513199.6006662170596 80.890253980644739593 1.13482563910814382209'\n    test 271 line 55 toUtmUps8.easting: 7087225.330906\n    test 272 line 55 toUtmUps8.northing: 8382823.855822\n    test 273 line 55 toUtmUps8.gamma: 72.253756\n    test 274 line 55 toUtmUps8.scale: 1.678070\n    test 275 line 55 toUtmUps8.lat: 35.074753\n    test 276 line 55 toUtmUps8.lon: 79.496003\n    test 277 line 56 toUtmUps8.easting: 5090358.125724\n    test 278 line 56 toUtmUps8.northing: 4318294.133489\n    test 279 line 56 toUtmUps8.gamma: 28.266280\n    test 280 line 56 toUtmUps8.scale: 1.336264\n    test 281 line 56 toUtmUps8.lat: 28.078790\n    test 282 line 56 toUtmUps8.lon: 48.684350\n\n    test skipped (10): line 57 toUtmUps8.'84.986930137199 2.067177857261 20163.0752214330146 9438635.9888499043815 2.059277291707588222 .99960496589466017622'\n    test 283 line 58 toUtmUps8.easting: 3447670.550785\n    test 284 line 58 toUtmUps8.northing: 3680238.888223\n    test 285 line 58 toUtmUps8.gamma: 17.934948\n    test 286 line 58 toUtmUps8.scale: 1.149831\n    test 287 line 58 toUtmUps8.lat: 28.473948\n    test 288 line 58 toUtmUps8.lon: 34.127306\n    test 289 line 59 toUtmUps8.easting: 3396522.906798\n    test 290 line 59 toUtmUps8.northing: 8093659.687593\n    test 291 line 59 toUtmUps8.gamma: 57.747117\n    test 292 line 59 toUtmUps8.scale: 1.144006\n    test 293 line 59 toUtmUps8.lat: 56.629354\n    test 294 line 59 toUtmUps8.lon: 62.196474\n    test 295 line 60 toUtmUps8.easting: 11249894.100794  FAILED, KNOWN, expected 11249894.100784\n    test 296 line 60 toUtmUps8.northing: 1619226.506360  FAILED, KNOWN, expected 1619226.506299\n    test 297 line 60 toUtmUps8.gamma: 14.210358\n    test 298 line 60 toUtmUps8.scale: 3.048347\n    test 299 line 60 toUtmUps8.lat: 4.747762\n    test 300 line 60 toUtmUps8.lon: 70.932555\n    test 301 line 61 toUtmUps8.easting: 6808805.230950\n    test 302 line 61 toUtmUps8.northing: 8044779.777369\n    test 303 line 61 toUtmUps8.gamma: 68.242008\n    test 304 line 61 toUtmUps8.scale: 1.621464\n    test 305 line 61 toUtmUps8.lat: 35.882113\n    test 306 line 61 toUtmUps8.lon: 76.741849\n    test 307 line 62 toUtmUps8.easting: 2306021.556506\n    test 308 line 62 toUtmUps8.northing: 757191.592866\n    test 309 line 62 toUtmUps8.gamma: 2.385686\n    test 310 line 62 toUtmUps8.scale: 1.066159\n    test 311 line 62 toUtmUps8.lat: 6.420705\n    test 312 line 62 toUtmUps8.lon: 20.416028\n    test 313 line 63 toUtmUps8.easting: 1547406.313862\n    test 314 line 63 toUtmUps8.northing: 6048712.751824\n    test 315 line 63 toUtmUps8.gamma: 18.474372\n    test 316 line 63 toUtmUps8.scale: 1.029123\n    test 317 line 63 toUtmUps8.lat: 52.335248\n    test 318 line 63 toUtmUps8.lon: 22.879294\n    test 319 line 64 toUtmUps8.easting: 2430467.650383\n    test 320 line 64 toUtmUps8.northing: 7557167.613972\n    test 321 line 64 toUtmUps8.gamma: 42.110021\n    test 322 line 64 toUtmUps8.scale: 1.072759\n    test 323 line 64 toUtmUps8.lat: 59.846391\n    test 324 line 64 toUtmUps8.lon: 46.262536\n    test 325 line 65 toUtmUps8.easting: 2334053.905830\n    test 326 line 65 toUtmUps8.northing: 1948076.966582\n    test 327 line 65 toUtmUps8.gamma: 6.353185\n    test 328 line 65 toUtmUps8.scale: 1.067733\n    test 329 line 65 toUtmUps8.lat: 16.461790\n    test 330 line 65 toUtmUps8.lon: 21.433269\n    test 331 line 66 toUtmUps8.easting: 5564175.186737\n    test 332 line 66 toUtmUps8.northing: 1836851.660412\n    test 333 line 66 toUtmUps8.gamma: 11.870682\n    test 334 line 66 toUtmUps8.scale: 1.408265\n    test 335 line 66 toUtmUps8.lat: 11.707905\n    test 336 line 66 toUtmUps8.lon: 45.827075\n    test 337 line 67 toUtmUps8.easting: 6118505.590359\n    test 338 line 67 toUtmUps8.northing: 7631684.552421\n    test 339 line 67 toUtmUps8.gamma: 62.477323\n    test 340 line 67 toUtmUps8.scale: 1.493420\n    test 341 line 67 toUtmUps8.lat: 38.519075\n    test 342 line 67 toUtmUps8.lon: 71.935918\n\n    test skipped (11): line 68 toUtmUps8.'34.264007222954 82.647878110272 7365359.2946646287171 8818194.4515306837741 77.207042218974141605 1.73763853091849729372'\n    test 343 line 69 toUtmUps8.easting: 36187.342415\n    test 344 line 69 toUtmUps8.northing: 2142565.324802\n    test 345 line 69 toUtmUps8.gamma: 0.114334\n    test 346 line 69 toUtmUps8.scale: 0.999616\n    test 347 line 69 toUtmUps8.lat: 19.376880\n    test 348 line 69 toUtmUps8.lon: 0.344605\n    test 349 line 70 toUtmUps8.easting: 2380328.546851\n    test 350 line 70 toUtmUps8.northing: 8440109.872384\n    test 351 line 70 toUtmUps8.gamma: 55.076067\n    test 352 line 70 toUtmUps8.scale: 1.069658\n    test 353 line 70 toUtmUps8.lat: 65.075805\n    test 354 line 70 toUtmUps8.lon: 57.653438\n    test 355 line 71 toUtmUps8.easting: 582511.608826\n    test 356 line 71 toUtmUps8.northing: 8876047.217071\n    test 357 line 71 toUtmUps8.gamma: 27.133300\n    test 358 line 71 toUtmUps8.scale: 1.003749\n    test 359 line 71 toUtmUps8.lat: 78.691870\n    test 360 line 71 toUtmUps8.lon: 27.591736\n    test 361 line 72 toUtmUps8.easting: 899441.350477\n    test 362 line 72 toUtmUps8.northing: 4582046.430516\n    test 363 line 72 toUtmUps8.gamma: 7.031211\n    test 364 line 72 toUtmUps8.scale: 1.009573\n    test 365 line 72 toUtmUps8.lat: 40.893022\n    test 366 line 72 toUtmUps8.lon: 10.668804\n\n    test skipped (12): line 73 toUtmUps8.'48.914278679322 87.35926802682 5022485.1243369246483 9741774.9337207800497 86.505947369926030588 1.32369954850478170836'\n    test 367 line 74 toUtmUps8.easting: 6701004.587204\n    test 368 line 74 toUtmUps8.northing: 2954368.258231\n    test 369 line 74 toUtmUps8.gamma: 21.560153\n    test 370 line 74 toUtmUps8.scale: 1.608554\n    test 371 line 74 toUtmUps8.lat: 16.208377\n    test 372 line 74 toUtmUps8.lon: 54.494282\n    test 373 line 75 toUtmUps8.easting: 454986.218897\n    test 374 line 75 toUtmUps8.northing: 4885087.887884\n    test 375 line 75 toUtmUps8.gamma: 3.945648\n    test 376 line 75 toUtmUps8.scale: 1.002147\n    test 377 line 75 toUtmUps8.lat: 43.977936\n    test 378 line 75 toUtmUps8.lon: 5.672541\n\n    test skipped (13): line 76 toUtmUps8.'26.850860749352 82.834479937822 8903956.1403106503714 8470608.5774824981183 74.723116471645531699 2.13131124920824155268'\n    test 379 line 77 toUtmUps8.easting: 1547627.594741\n    test 380 line 77 toUtmUps8.northing: 6036584.538347\n    test 381 line 77 toUtmUps8.gamma: 18.407629\n    test 382 line 77 toUtmUps8.scale: 1.029132\n    test 383 line 77 toUtmUps8.lat: 52.234165\n    test 384 line 77 toUtmUps8.lon: 22.827655\n    test 385 line 78 toUtmUps8.easting: 5221488.778597\n    test 386 line 78 toUtmUps8.northing: 1762592.044392\n    test 387 line 78 toUtmUps8.gamma: 10.927880\n    test 388 line 78 toUtmUps8.scale: 1.356721\n    test 389 line 78 toUtmUps8.lat: 11.674646\n    test 390 line 78 toUtmUps8.lon: 43.500147\n    test 391 line 79 toUtmUps8.easting: 4880570.297161\n    test 392 line 79 toUtmUps8.northing: 3325433.988867\n    test 393 line 79 toUtmUps8.gamma: 20.469862\n    test 394 line 79 toUtmUps8.scale: 1.308476\n    test 395 line 79 toUtmUps8.lat: 22.492753\n    test 396 line 79 toUtmUps8.lon: 44.179153\n\n    test skipped (14): line 80 toUtmUps8.'.910999463005 88.548822916123 23930680.0826936110445 7491462.0990379651261 75.937628056628715446 15.55636485152285563369'\n    test 397 line 81 toUtmUps8.easting: 71519.450458\n    test 398 line 81 toUtmUps8.northing: 3654740.444852\n    test 399 line 81 toUtmUps8.gamma: 0.417448\n    test 400 line 81 toUtmUps8.scale: 0.999663\n    test 401 line 81 toUtmUps8.lat: 33.028802\n    test 402 line 81 toUtmUps8.lon: 0.765843\n    test 403 line 82 toUtmUps8.easting: 4152797.795220\n    test 404 line 82 toUtmUps8.northing: 7823098.502751\n    test 405 line 82 toUtmUps8.gamma: 58.238901\n    test 406 line 82 toUtmUps8.scale: 1.218052\n    test 407 line 82 toUtmUps8.lat: 50.649195\n    test 408 line 82 toUtmUps8.lon: 64.389076\n    test 409 line 83 toUtmUps8.easting: 2926725.707639\n    test 410 line 83 toUtmUps8.northing: 7904918.072844\n    test 411 line 83 toUtmUps8.gamma: 51.592748\n    test 412 line 83 toUtmUps8.scale: 1.106206\n    test 413 line 83 toUtmUps8.lat: 58.820640\n    test 414 line 83 toUtmUps8.lon: 55.841048\n    test 415 line 84 toUtmUps8.easting: 1325509.113869\n    test 416 line 84 toUtmUps8.northing: 9675214.948213\n    test 417 line 84 toUtmUps8.gamma: 76.116213\n    test 418 line 84 toUtmUps8.scale: 1.021136\n    test 419 line 84 toUtmUps8.lat: 77.865762\n    test 420 line 84 toUtmUps8.lon: 76.414618\n    test 421 line 85 toUtmUps8.easting: 3045296.448926\n    test 422 line 85 toUtmUps8.northing: 542153.443280\n    test 423 line 85 toUtmUps8.gamma: 2.185095\n    test 424 line 85 toUtmUps8.scale: 1.116664\n    test 425 line 85 toUtmUps8.lat: 4.389639\n    test 426 line 85 toUtmUps8.lon: 26.458976\n    test 427 line 86 toUtmUps8.easting: 11843870.887791  FAILED, KNOWN, expected 11843870.887518\n    test 428 line 86 toUtmUps8.northing: 5912803.073690  FAILED, KNOWN, expected 5912803.073343\n    test 429 line 86 toUtmUps8.gamma: 52.814260  FAILED, KNOWN, expected 52.814259\n    test 430 line 86 toUtmUps8.scale: 3.267256\n    test 431 line 86 toUtmUps8.lat: 13.924448\n    test 432 line 86 toUtmUps8.lon: 79.017873\n    test 433 line 87 toUtmUps8.easting: 8891099.704936\n    test 434 line 87 toUtmUps8.northing: 162160.142227\n    test 435 line 87 toUtmUps8.gamma: 1.312094\n    test 436 line 87 toUtmUps8.scale: 2.157363\n    test 437 line 87 toUtmUps8.lat: 0.679713\n    test 438 line 87 toUtmUps8.lon: 62.036792\n    test 439 line 88 toUtmUps8.easting: 4784814.214449\n    test 440 line 88 toUtmUps8.northing: 2984497.432580\n    test 441 line 88 toUtmUps8.gamma: 17.946545\n    test 442 line 88 toUtmUps8.scale: 1.296116\n    test 443 line 88 toUtmUps8.lat: 20.478281\n    test 444 line 88 toUtmUps8.lon: 42.678234\n    test 445 line 89 toUtmUps8.easting: 1772074.682154\n    test 446 line 89 toUtmUps8.northing: 9491552.560143\n    test 447 line 89 toUtmUps8.gamma: 73.634830\n    test 448 line 89 toUtmUps8.scale: 1.038202\n    test 449 line 89 toUtmUps8.lat: 73.695703\n    test 450 line 89 toUtmUps8.lon: 74.259097\n    test 451 line 90 toUtmUps8.easting: 1907649.782106\n    test 452 line 90 toUtmUps8.northing: 6994232.429379\n    test 453 line 90 toUtmUps8.gamma: 29.718929\n    test 454 line 90 toUtmUps8.scale: 1.044503\n    test 455 line 90 toUtmUps8.lat: 58.569370\n    test 456 line 90 toUtmUps8.lon: 33.777549\n    test 457 line 91 toUtmUps8.easting: 2084423.818962\n    test 458 line 91 toUtmUps8.northing: 2211816.035619\n    test 459 line 91 toUtmUps8.gamma: 6.556448\n    test 460 line 91 toUtmUps8.scale: 1.053793\n    test 461 line 91 toUtmUps8.lat: 18.933881\n    test 462 line 91 toUtmUps8.lon: 19.492695\n    test 463 line 92 toUtmUps8.easting: 1064373.671729\n    test 464 line 92 toUtmUps8.northing: 7812482.547461\n    test 465 line 92 toUtmUps8.gamma: 24.874124\n    test 466 line 92 toUtmUps8.scale: 1.013490\n    test 467 line 92 toUtmUps8.lat: 68.317934\n    test 468 line 92 toUtmUps8.lon: 26.515687\n\n    test skipped (15): line 93 toUtmUps8.'50.641941364984 87.111556505544 4770385.4792965339274 9734318.9029801439364 86.27311877223132818 1.29055338238288419467'\n    test 469 line 94 toUtmUps8.easting: 6398096.677297\n    test 470 line 94 toUtmUps8.northing: 4410894.752104\n    test 471 line 94 toUtmUps8.gamma: 32.558023\n    test 472 line 94 toUtmUps8.scale: 1.548004\n    test 473 line 94 toUtmUps8.lat: 24.411298\n    test 474 line 94 toUtmUps8.lon: 56.881823\n    test 475 line 95 toUtmUps8.easting: 3138623.300415\n    test 476 line 95 toUtmUps8.northing: 3082960.600798\n    test 477 line 95 toUtmUps8.gamma: 13.557672\n    test 478 line 95 toUtmUps8.scale: 1.123724\n    test 479 line 95 toUtmUps8.lat: 24.571871\n    test 480 line 95 toUtmUps8.lon: 30.073097\n    test 481 line 96 toUtmUps8.easting: 2748325.794651\n    test 482 line 96 toUtmUps8.northing: 4202811.912668\n    test 483 line 96 toUtmUps8.gamma: 17.578706\n    test 484 line 96 toUtmUps8.scale: 1.094102\n    test 485 line 96 toUtmUps8.lat: 34.202576\n    test 486 line 96 toUtmUps8.lon: 29.383166\n    test 487 line 97 toUtmUps8.easting: 6677830.630367\n    test 488 line 97 toUtmUps8.northing: 5350071.837395\n    test 489 line 97 toUtmUps8.gamma: 41.306641\n    test 490 line 97 toUtmUps8.scale: 1.599774\n    test 491 line 97 toUtmUps8.lat: 27.756285\n    test 492 line 97 toUtmUps8.lon: 61.881905\n    test 493 line 98 toUtmUps8.easting: 5941536.667431\n    test 494 line 98 toUtmUps8.northing: 3293112.175140\n    test 495 line 98 toUtmUps8.gamma: 22.752845\n    test 496 line 98 toUtmUps8.scale: 1.468473\n    test 497 line 98 toUtmUps8.lat: 19.742270\n    test 498 line 98 toUtmUps8.lon: 50.957821\n    test 499 line 99 toUtmUps8.easting: 3152481.792567\n    test 500 line 99 toUtmUps8.northing: 5903048.837978\n    test 501 line 99 toUtmUps8.gamma: 31.494606\n    test 502 line 99 toUtmUps8.scale: 1.124085\n    test 503 line 99 toUtmUps8.lat: 45.453582\n    test 504 line 99 toUtmUps8.lon: 40.659833\n    test 505 line 100 toUtmUps8.easting: 10460475.897726  FAILED, KNOWN, expected 10460475.897730\n    test 506 line 100 toUtmUps8.northing: 2553463.624385  FAILED, KNOWN, expected 2553463.624391\n    test 507 line 100 toUtmUps8.gamma: 21.965869\n    test 508 line 100 toUtmUps8.scale: 2.700296\n    test 509 line 100 toUtmUps8.lat: 8.322144\n    test 510 line 100 toUtmUps8.lon: 69.488157\n    test 511 line 101 toUtmUps8.easting: 1964010.778021\n    test 512 line 101 toUtmUps8.northing: 5634042.923056\n    test 513 line 101 toUtmUps8.gamma: 20.117800\n    test 514 line 101 toUtmUps8.scale: 1.047344\n    test 515 line 101 toUtmUps8.lat: 47.749831\n    test 516 line 101 toUtmUps8.lon: 26.322002\n    test 517 line 102 toUtmUps8.easting: 2065306.424934\n    test 518 line 102 toUtmUps8.northing: 2135008.468651\n    test 519 line 102 toUtmUps8.gamma: 6.258981\n    test 520 line 102 toUtmUps8.scale: 1.052800\n    test 521 line 102 toUtmUps8.lat: 18.297493\n    test 522 line 102 toUtmUps8.lon: 19.244669\n    test 523 line 103 toUtmUps8.easting: 5127738.132976\n    test 524 line 103 toUtmUps8.northing: 6793804.304411\n    test 525 line 103 toUtmUps8.gamma: 50.557915\n    test 526 line 103 toUtmUps8.scale: 1.339412\n    test 527 line 103 toUtmUps8.lat: 40.834541\n    test 528 line 103 toUtmUps8.lon: 61.650750\n    test 529 line 104 toUtmUps8.easting: 8385525.148166\n    test 530 line 104 toUtmUps8.northing: 6924932.344306\n    test 531 line 104 toUtmUps8.gamma: 59.087561\n    test 532 line 104 toUtmUps8.scale: 1.990364\n    test 533 line 104 toUtmUps8.lat: 26.273247\n    test 534 line 104 toUtmUps8.lon: 74.926694\n    test 535 line 105 toUtmUps8.easting: 2297510.791909\n    test 536 line 105 toUtmUps8.northing: 2805666.962834\n    test 537 line 105 toUtmUps8.gamma: 9.301553\n    test 538 line 105 toUtmUps8.scale: 1.065508\n    test 539 line 105 toUtmUps8.lat: 23.698347\n    test 540 line 105 toUtmUps8.lon: 22.155657\n\n    test skipped (16): line 106 toUtmUps8.'12.364112546807 86.348578425071 13749544.9176345767153 8288728.3846500523233 75.033969786420407131 4.27058754359004466627'\n    test 541 line 107 toUtmUps8.easting: 317518.455546\n    test 542 line 107 toUtmUps8.northing: 1097517.583745\n    test 543 line 107 toUtmUps8.gamma: 0.499004\n    test 544 line 107 toUtmUps8.scale: 1.000848\n    test 545 line 107 toUtmUps8.lat: 9.916091\n    test 546 line 107 toUtmUps8.lon: 2.895277\n    test 547 line 108 toUtmUps8.easting: 3856035.184888\n    test 548 line 108 toUtmUps8.northing: 9141364.450290\n    test 549 line 108 toUtmUps8.gamma: 75.972763\n    test 550 line 108 toUtmUps8.scale: 1.186786\n    test 551 line 108 toUtmUps8.lat: 56.553876\n    test 552 line 108 toUtmUps8.lon: 78.215077\n    test 553 line 109 toUtmUps8.easting: 1457484.942823\n    test 554 line 109 toUtmUps8.northing: 9385297.101973\n    test 555 line 109 toUtmUps8.gamma: 66.784662\n    test 556 line 109 toUtmUps8.scale: 1.025660\n    test 557 line 109 toUtmUps8.lat: 75.957631\n    test 558 line 109 toUtmUps8.lon: 67.407383\n    test 559 line 110 toUtmUps8.easting: 1304934.901841\n    test 560 line 110 toUtmUps8.northing: 3604655.155715\n    test 561 line 110 toUtmUps8.gamma: 7.343989\n    test 562 line 110 toUtmUps8.scale: 1.020672\n    test 563 line 110 toUtmUps8.lat: 31.826531\n    test 564 line 110 toUtmUps8.lon: 13.731050\n    test 565 line 111 toUtmUps8.easting: 1399093.491792\n    test 566 line 111 toUtmUps8.northing: 8314607.120342\n    test 567 line 111 toUtmUps8.gamma: 38.630161\n    test 568 line 111 toUtmUps8.scale: 1.023625\n    test 569 line 111 toUtmUps8.lat: 70.542985\n    test 570 line 111 toUtmUps8.lon: 40.282055\n    test 571 line 112 toUtmUps8.easting: 356983.618540\n    test 572 line 112 toUtmUps8.northing: 4282309.048994\n    test 573 line 112 toUtmUps8.gamma: 2.561485\n    test 574 line 112 toUtmUps8.scale: 1.001170\n    test 575 line 112 toUtmUps8.lat: 38.617487\n    test 576 line 112 toUtmUps8.lon: 4.099838\n    test 577 line 113 toUtmUps8.easting: 9952911.325092  FAILED, KNOWN, expected 9952911.325091\n    test 578 line 113 toUtmUps8.northing: 1510288.212230  FAILED, KNOWN, expected 1510288.212229\n    test 579 line 113 toUtmUps8.gamma: 12.752154\n    test 580 line 113 toUtmUps8.scale: 2.511357\n    test 581 line 113 toUtmUps8.lat: 5.389447\n    test 582 line 113 toUtmUps8.lon: 66.729612\n    test 583 line 114 toUtmUps8.easting: 6367592.504007\n    test 584 line 114 toUtmUps8.northing: 1200437.077672\n    test 585 line 114 toUtmUps8.gamma: 8.338041\n    test 586 line 114 toUtmUps8.scale: 1.546210\n    test 587 line 114 toUtmUps8.lat: 6.995168\n    test 588 line 114 toUtmUps8.lon: 50.014763\n    test 589 line 115 toUtmUps8.easting: 4391263.676460\n    test 590 line 115 toUtmUps8.northing: 6325455.989408\n    test 591 line 115 toUtmUps8.gamma: 42.653541\n    test 592 line 115 toUtmUps8.scale: 1.245560\n    test 593 line 115 toUtmUps8.lat: 42.321894\n    test 594 line 115 toUtmUps8.lon: 53.784040\n    test 595 line 116 toUtmUps8.easting: 6209880.527527\n    test 596 line 116 toUtmUps8.northing: 2154754.449747\n    test 597 line 116 toUtmUps8.gamma: 14.919512\n    test 598 line 116 toUtmUps8.scale: 1.516560\n    test 599 line 116 toUtmUps8.lat: 12.698515\n    test 600 line 116 toUtmUps8.lon: 50.242047\n    test 601 line 117 toUtmUps8.easting: 1507053.688772\n    test 602 line 117 toUtmUps8.northing: 6261383.513280\n    test 603 line 117 toUtmUps8.gamma: 19.280373\n    test 604 line 117 toUtmUps8.scale: 1.027584\n    test 605 line 117 toUtmUps8.lat: 54.207636\n    test 606 line 117 toUtmUps8.lon: 23.325731\n    test 607 line 118 toUtmUps8.easting: 8332725.003777\n    test 608 line 118 toUtmUps8.northing: 3002712.329753\n    test 609 line 118 toUtmUps8.gamma: 24.059212\n    test 610 line 118 toUtmUps8.scale: 1.990450\n    test 611 line 118 toUtmUps8.lat: 13.224787\n    test 612 line 118 toUtmUps8.lon: 62.426698\n    test 613 line 119 toUtmUps8.easting: 3958910.085235\n    test 614 line 119 toUtmUps8.northing: 3462284.926102\n    test 615 line 119 toUtmUps8.gamma: 18.546398\n    test 616 line 119 toUtmUps8.scale: 1.199351\n    test 617 line 119 toUtmUps8.lat: 25.650282\n    test 618 line 119 toUtmUps8.lon: 37.710391\n\n    test skipped (17): line 120 toUtmUps8.'20.684773383075 82.849734261238 10452892.2820830090734 8000059.6051139389546 71.07524025411428855 2.6501109339363854772'\n    test 619 line 121 toUtmUps8.easting: 496148.253731\n    test 620 line 121 toUtmUps8.northing: 6388503.365043\n    test 621 line 121 toUtmUps8.gamma: 6.970955\n    test 622 line 121 toUtmUps8.scale: 1.002620\n    test 623 line 121 toUtmUps8.lat: 57.367533\n    test 624 line 121 toUtmUps8.lon: 8.260866\n    test 625 line 122 toUtmUps8.easting: 7375792.085850\n    test 626 line 122 toUtmUps8.northing: 5544624.072155\n    test 627 line 122 toUtmUps8.gamma: 44.510851\n    test 628 line 122 toUtmUps8.scale: 1.745898\n    test 629 line 122 toUtmUps8.lat: 25.958757\n    test 630 line 122 toUtmUps8.lon: 65.760477\n    test 631 line 123 toUtmUps8.easting: 2826258.041979\n    test 632 line 123 toUtmUps8.northing: 5167759.816959\n    test 633 line 123 toUtmUps8.gamma: 23.783897\n    test 634 line 123 toUtmUps8.scale: 1.099415\n    test 635 line 123 toUtmUps8.lat: 41.395848\n    test 636 line 123 toUtmUps8.lon: 33.661790\n    test 637 line 124 toUtmUps8.easting: 3958563.378851\n    test 638 line 124 toUtmUps8.northing: 8499923.231243\n    test 639 line 124 toUtmUps8.gamma: 66.570945\n    test 640 line 124 toUtmUps8.scale: 1.197296\n    test 641 line 124 toUtmUps8.lat: 54.266617\n    test 642 line 124 toUtmUps8.lon: 70.602199\n    test 643 line 125 toUtmUps8.easting: 4408189.533462\n    test 644 line 125 toUtmUps8.northing: 8046312.003642\n    test 645 line 125 toUtmUps8.gamma: 62.216959\n    test 646 line 125 toUtmUps8.scale: 1.246750\n    test 647 line 125 toUtmUps8.lat: 49.840393\n    test 648 line 125 toUtmUps8.lon: 68.036728\n    test 649 line 126 toUtmUps8.easting: 3629225.627512\n    test 650 line 126 toUtmUps8.northing: 6371258.454645\n    test 651 line 126 toUtmUps8.gamma: 38.881675\n    test 652 line 126 toUtmUps8.scale: 1.165511\n    test 653 line 126 toUtmUps8.lat: 46.306035\n    test 654 line 126 toUtmUps8.lon: 48.085828\n    test 655 line 127 toUtmUps8.easting: 602838.450710\n    test 656 line 127 toUtmUps8.northing: 4851370.637205\n    test 657 line 127 toUtmUps8.gamma: 5.160395\n    test 658 line 127 toUtmUps8.scale: 1.004073\n    test 659 line 127 toUtmUps8.lat: 43.570988\n    test 660 line 127 toUtmUps8.lon: 7.464494\n    test 661 line 128 toUtmUps8.easting: 764616.665051\n    test 662 line 128 toUtmUps8.northing: 2164299.337945\n    test 663 line 128 toUtmUps8.gamma: 2.429300\n    test 664 line 128 toUtmUps8.scale: 1.006835\n    test 665 line 128 toUtmUps8.lat: 19.427290\n    test 666 line 128 toUtmUps8.lon: 7.268247\n    test 667 line 129 toUtmUps8.easting: 5048953.021931\n    test 668 line 129 toUtmUps8.northing: 1885974.057398\n    test 669 line 129 toUtmUps8.gamma: 11.459804\n    test 670 line 129 toUtmUps8.scale: 1.332207\n    test 671 line 129 toUtmUps8.lat: 12.713794\n    test 672 line 129 toUtmUps8.lon: 42.507018\n    test 673 line 130 toUtmUps8.easting: 2293996.601155\n    test 674 line 130 toUtmUps8.northing: 2392408.644221\n    test 675 line 130 toUtmUps8.gamma: 7.791838\n    test 676 line 130 toUtmUps8.scale: 1.065348\n    test 677 line 130 toUtmUps8.lat: 20.238782\n    test 678 line 130 toUtmUps8.lon: 21.566068\n    test 679 line 131 toUtmUps8.easting: 1530603.839418\n    test 680 line 131 toUtmUps8.northing: 7287841.459898\n    test 681 line 131 toUtmUps8.gamma: 27.502921\n    test 682 line 131 toUtmUps8.scale: 1.028416\n    test 683 line 131 toUtmUps8.lat: 62.367847\n    test 684 line 131 toUtmUps8.lon: 30.438849\n    test 685 line 132 toUtmUps8.easting: 2660000.093152\n    test 686 line 132 toUtmUps8.northing: 5161982.213248\n    test 687 line 132 toUtmUps8.gamma: 22.629836\n    test 688 line 132 toUtmUps8.scale: 1.087851\n    test 689 line 132 toUtmUps8.lat: 41.891569\n    test 690 line 132 toUtmUps8.lon: 31.959547\n    test 691 line 133 toUtmUps8.easting: 5037478.329414\n    test 692 line 133 toUtmUps8.northing: 8768172.379908\n    test 693 line 133 toUtmUps8.gamma: 73.511182\n    test 694 line 133 toUtmUps8.scale: 1.325919\n    test 695 line 133 toUtmUps8.lat: 47.664248\n    test 696 line 133 toUtmUps8.lon: 77.630062\n    test 697 line 134 toUtmUps8.easting: 2289650.957799\n    test 698 line 134 toUtmUps8.northing: 8784328.593607\n    test 699 line 134 toUtmUps8.gamma: 60.786067\n    test 700 line 134 toUtmUps8.scale: 1.064346\n    test 701 line 134 toUtmUps8.lat: 67.259559\n    test 702 line 134 toUtmUps8.lon: 62.715293\n    test 703 line 135 toUtmUps8.easting: 647913.889744\n    test 704 line 135 toUtmUps8.northing: 6742382.228217\n    test 705 line 135 toUtmUps8.gamma: 10.252667\n    test 706 line 135 toUtmUps8.scale: 1.004748\n    test 707 line 135 toUtmUps8.lat: 60.295381\n    test 708 line 135 toUtmUps8.lon: 11.763097\n    test 709 line 136 toUtmUps8.easting: 1118372.698566\n    test 710 line 136 toUtmUps8.northing: 9040627.942263\n    test 711 line 136 toUtmUps8.gamma: 48.936803\n    test 712 line 136 toUtmUps8.scale: 1.014920\n    test 713 line 136 toUtmUps8.lat: 76.878914\n    test 714 line 136 toUtmUps8.lon: 49.685773\n    test 715 line 137 toUtmUps8.easting: 440696.510070\n    test 716 line 137 toUtmUps8.northing: 5500355.826297\n    test 717 line 137 toUtmUps8.gamma: 4.636104\n    test 718 line 137 toUtmUps8.scale: 1.001986\n    test 719 line 137 toUtmUps8.lat: 49.495349\n    test 720 line 137 toUtmUps8.lon: 6.087551\n    test 721 line 138 toUtmUps8.easting: 601728.149727\n    test 722 line 138 toUtmUps8.northing: 9095352.048149\n    test 723 line 138 toUtmUps8.gamma: 33.435771\n    test 724 line 138 toUtmUps8.scale: 1.004027\n    test 725 line 138 toUtmUps8.lat: 80.297265\n    test 726 line 138 toUtmUps8.lon: 33.816372\n    test 727 line 139 toUtmUps8.easting: 3481444.777827\n    test 728 line 139 toUtmUps8.northing: 291665.708749\n    test 729 line 139 toUtmUps8.gamma: 1.314726\n    test 730 line 139 toUtmUps8.scale: 1.153534\n    test 731 line 139 toUtmUps8.lat: 2.286437\n    test 732 line 139 toUtmUps8.lon: 29.855149\n    test 733 line 140 toUtmUps8.easting: 3515304.901524\n    test 734 line 140 toUtmUps8.northing: 1443981.882918\n    test 735 line 140 toUtmUps8.gamma: 6.641638\n    test 736 line 140 toUtmUps8.scale: 1.156509\n    test 737 line 140 toUtmUps8.lat: 11.264457\n    test 738 line 140 toUtmUps8.lon: 30.743907\n    test 739 line 141 toUtmUps8.easting: 160012.186959\n    test 740 line 141 toUtmUps8.northing: 3922609.253231\n    test 741 line 141 toUtmUps8.gamma: 1.022225\n    test 742 line 141 toUtmUps8.scale: 0.999916\n    test 743 line 141 toUtmUps8.lat: 35.434073\n    test 744 line 141 toUtmUps8.lon: 1.762795\n    test 745 line 142 toUtmUps8.easting: 4163744.245622\n    test 746 line 142 toUtmUps8.northing: 936884.674804\n    test 747 line 142 toUtmUps8.gamma: 4.892559\n    test 748 line 142 toUtmUps8.scale: 1.222164\n    test 749 line 142 toUtmUps8.lat: 6.923695\n    test 750 line 142 toUtmUps8.lon: 35.289456\n    test 751 line 143 toUtmUps8.easting: 6155200.017926\n    test 752 line 143 toUtmUps8.northing: 6926306.628390\n    test 753 line 143 toUtmUps8.gamma: 55.103258\n    test 754 line 143 toUtmUps8.scale: 1.500556\n    test 755 line 143 toUtmUps8.lat: 36.129672\n    test 756 line 143 toUtmUps8.lon: 67.533176\n\n    test skipped (18): line 144 toUtmUps8.'4.406528980638 81.965734206053 16263383.2854400911299 3591296.7313406507021 36.040254103487111035 6.58928781751888396522'\n\n    test skipped (19): line 145 toUtmUps8.'8.474589009114 81.129945130597 14220995.5153984992101 5100587.4575033509156 47.314258427760984573 4.69320221531225352172'\n    test 757 line 146 toUtmUps8.easting: 3173034.802372\n    test 758 line 146 toUtmUps8.northing: 7263421.942957\n    test 759 line 146 toUtmUps8.gamma: 45.215808\n    test 760 line 146 toUtmUps8.scale: 1.125410\n    test 761 line 146 toUtmUps8.lat: 53.907276\n    test 762 line 146 toUtmUps8.lon: 51.252904\n\n    test skipped (20): line 147 toUtmUps8.'22.120544817855 85.756781608119 10253274.0922039670098 8867574.2997916978265 79.198250285604314115 2.57237240666878171579'\n    test 763 line 148 toUtmUps8.easting: 2415561.483230\n    test 764 line 148 toUtmUps8.northing: 8813225.217097\n    test 765 line 148 toUtmUps8.gamma: 62.548978\n    test 766 line 148 toUtmUps8.scale: 1.071748\n    test 767 line 148 toUtmUps8.lat: 66.444100\n    test 768 line 148 toUtmUps8.lon: 64.532960\n    test 769 line 149 toUtmUps8.easting: 9589179.293294  FAILED, KNOWN, expected 9589179.293295\n    test 770 line 149 toUtmUps8.northing: 1777680.784144  FAILED, KNOWN, expected 1777680.784143\n    test 771 line 149 toUtmUps8.gamma: 14.838483\n    test 772 line 149 toUtmUps8.scale: 2.380716\n    test 773 line 149 toUtmUps8.lat: 6.670965\n    test 774 line 149 toUtmUps8.lon: 65.660408\n    test 775 line 150 toUtmUps8.easting: 727939.438391\n    test 776 line 150 toUtmUps8.northing: 3684363.236810\n    test 777 line 150 toUtmUps8.gamma: 4.266227\n    test 778 line 150 toUtmUps8.scale: 1.006140\n    test 779 line 150 toUtmUps8.lat: 33.054057\n    test 780 line 150 toUtmUps8.lon: 7.787458\n    test 781 line 151 toUtmUps8.easting: 1250765.991085\n    test 782 line 151 toUtmUps8.northing: 792869.242719\n    test 783 line 151 toUtmUps8.gamma: 1.396497\n    test 784 line 151 toUtmUps8.scale: 1.019026\n    test 785 line 151 toUtmUps8.lat: 7.035525\n    test 786 line 151 toUtmUps8.lon: 11.253707\n    test 787 line 152 toUtmUps8.easting: 710421.705887\n    test 788 line 152 toUtmUps8.northing: 5019406.075928\n    test 789 line 152 toUtmUps8.gamma: 6.393949\n    test 790 line 152 toUtmUps8.scale: 1.005812\n    test 791 line 152 toUtmUps8.lat: 44.971340\n    test 792 line 152 toUtmUps8.lon: 9.009304\n    test 793 line 153 toUtmUps8.easting: 4600995.074643\n    test 794 line 153 toUtmUps8.northing: 4505712.084593\n    test 795 line 153 toUtmUps8.gamma: 27.997458\n    test 796 line 153 toUtmUps8.scale: 1.271841\n    test 797 line 153 toUtmUps8.lat: 30.821397\n    test 798 line 153 toUtmUps8.lon: 45.970577\n    test 799 line 154 toUtmUps8.easting: 557642.627782\n    test 800 line 154 toUtmUps8.northing: 7006911.251644\n    test 801 line 154 toUtmUps8.gamma: 9.769903\n    test 802 line 154 toUtmUps8.scale: 1.003411\n    test 803 line 154 toUtmUps8.lat: 62.763886\n    test 804 line 154 toUtmUps8.lon: 10.960144\n    test 805 line 155 toUtmUps8.easting: 4635062.294291\n    test 806 line 155 toUtmUps8.northing: 2702556.153311\n    test 807 line 155 toUtmUps8.gamma: 15.779547\n    test 808 line 155 toUtmUps8.scale: 1.277178\n    test 809 line 155 toUtmUps8.lat: 18.888611\n    test 810 line 155 toUtmUps8.lon: 41.009871\n\n    test skipped (21): line 156 toUtmUps8.'7.524119461376 81.050715469439 14554962.2559189870471 4716639.9085720199214 44.192751352918149954 4.96001986321419027847'\n    test 811 line 157 toUtmUps8.easting: 882126.661736\n    test 812 line 157 toUtmUps8.northing: 7947612.369506\n    test 813 line 157 toUtmUps8.gamma: 22.429487\n    test 814 line 157 toUtmUps8.scale: 1.009132\n    test 815 line 157 toUtmUps8.lat: 70.063902\n    test 816 line 157 toUtmUps8.lon: 23.705255\n\n    test skipped (22): line 158 toUtmUps8.'3.556525834215 88.363529198819 20262021.6459832969292 8113827.8207957955275 76.936057264555500879 10.34909168211805703369'\n    test 817 line 159 toUtmUps8.easting: 6500508.399850\n    test 818 line 159 toUtmUps8.northing: 6956476.342368\n    test 819 line 159 toUtmUps8.gamma: 56.237116\n    test 820 line 159 toUtmUps8.scale: 1.563162\n    test 821 line 159 toUtmUps8.lat: 34.551257\n    test 822 line 159 toUtmUps8.lon: 69.111091\n    test 823 line 160 toUtmUps8.easting: 3884036.641314\n    test 824 line 160 toUtmUps8.northing: 6890167.411733\n    test 825 line 160 toUtmUps8.gamma: 45.760130\n    test 826 line 160 toUtmUps8.scale: 1.190167\n    test 827 line 160 toUtmUps8.lat: 47.929051\n    test 828 line 160 toUtmUps8.lon: 54.103418\n    test 829 line 161 toUtmUps8.easting: 217855.546078\n    test 830 line 161 toUtmUps8.northing: 6184108.122568\n    test 831 line 161 toUtmUps8.gamma: 2.870993\n    test 832 line 161 toUtmUps8.scale: 1.000182\n    test 833 line 161 toUtmUps8.lat: 55.753536\n    test 834 line 161 toUtmUps8.lon: 3.471798\n\n    test skipped (23): line 162 toUtmUps8.'18.530847071862 86.555312055898 11384139.290401676268 8893889.9495562311576 79.77485364572019046 3.02467156922968230025'\n    test 835 line 163 toUtmUps8.easting: 3469855.989805\n    test 836 line 163 toUtmUps8.northing: 7723193.799228\n    test 837 line 163 toUtmUps8.gamma: 53.114700\n    test 838 line 163 toUtmUps8.scale: 1.150540\n    test 839 line 163 toUtmUps8.lat: 54.510125\n    test 840 line 163 toUtmUps8.lon: 58.556056\n\n    test skipped (24): line 164 toUtmUps8.'42.864161881687 84.866325602975 5926165.994939154109 9385463.7327467371322 82.506981261616342016 1.45975761947329382411'\n    test 841 line 165 toUtmUps8.easting: 5798639.662224\n    test 842 line 165 toUtmUps8.northing: 5305387.640916\n    test 843 line 165 toUtmUps8.gamma: 38.617257\n    test 844 line 165 toUtmUps8.scale: 1.442263\n    test 845 line 165 toUtmUps8.lat: 30.911943\n    test 846 line 165 toUtmUps8.lon: 57.114102\n    test 847 line 166 toUtmUps8.easting: 9464.934388\n    test 848 line 166 toUtmUps8.northing: 6489121.624944\n    test 849 line 166 toUtmUps8.gamma: 0.138696\n    test 850 line 166 toUtmUps8.scale: 0.999601\n    test 851 line 166 toUtmUps8.lat: 58.542493\n    test 852 line 166 toUtmUps8.lon: 0.162593\n\n    test skipped (25): line 167 toUtmUps8.'15.022689088683 85.792615487152 12575834.2756139069875 8356610.8954857643175 75.235223160840771295 3.59944161831319404851'\n    test 853 line 168 toUtmUps8.easting: 2719653.543469\n    test 854 line 168 toUtmUps8.northing: 9362389.163495\n    test 855 line 168 toUtmUps8.gamma: 76.049670\n    test 856 line 168 toUtmUps8.scale: 1.091315\n    test 857 line 168 toUtmUps8.lat: 65.692275\n    test 858 line 168 toUtmUps8.lon: 77.241377\n    test 859 line 169 toUtmUps8.easting: 4845341.924698\n    test 860 line 169 toUtmUps8.northing: 8710522.326901\n    test 861 line 169 toUtmUps8.gamma: 72.320942\n    test 862 line 169 toUtmUps8.scale: 1.300382\n    test 863 line 169 toUtmUps8.lat: 48.806211\n    test 864 line 169 toUtmUps8.lon: 76.486365\n\n    test skipped (26): line 170 toUtmUps8.'56.436024794624 82.61156798689 3935261.5227628794258 9454271.6490618694486 81.162334302626197333 1.19476734082123451158'\n    test 865 line 171 toUtmUps8.easting: 7074299.823000\n    test 866 line 171 toUtmUps8.northing: 1648736.065055\n    test 867 line 171 toUtmUps8.gamma: 12.145925\n    test 868 line 171 toUtmUps8.scale: 1.687551\n    test 869 line 171 toUtmUps8.lat: 8.766053\n    test 870 line 171 toUtmUps8.lon: 54.367539\n    test 871 line 172 toUtmUps8.easting: 3689072.579308\n    test 872 line 172 toUtmUps8.northing: 2230802.665211\n    test 873 line 172 toUtmUps8.gamma: 10.856248\n    test 874 line 172 toUtmUps8.scale: 1.172689\n    test 875 line 172 toUtmUps8.lat: 17.095495\n    test 876 line 172 toUtmUps8.lon: 33.059128\n    test 877 line 173 toUtmUps8.easting: 8102565.885587\n    test 878 line 173 toUtmUps8.northing: 5167396.617580\n    test 879 line 173 toUtmUps8.gamma: 42.324886\n    test 880 line 173 toUtmUps8.scale: 1.921927\n    test 881 line 173 toUtmUps8.lat: 22.142861\n    test 882 line 173 toUtmUps8.lon: 67.200684\n    test 883 line 174 toUtmUps8.easting: 8181271.353564\n    test 884 line 174 toUtmUps8.northing: 4425436.547185\n    test 885 line 174 toUtmUps8.gamma: 35.900845\n    test 886 line 174 toUtmUps8.scale: 1.945017\n    test 887 line 174 toUtmUps8.lat: 19.222623\n    test 888 line 174 toUtmUps8.lon: 65.180785\n    test 889 line 175 toUtmUps8.easting: 767067.394003\n    test 890 line 175 toUtmUps8.northing: 3701745.857296\n    test 891 line 175 toUtmUps8.gamma: 4.519201\n    test 892 line 175 toUtmUps8.scale: 1.006863\n    test 893 line 175 toUtmUps8.lat: 33.182474\n    test 894 line 175 toUtmUps8.lon: 8.216952\n    test 895 line 176 toUtmUps8.easting: 6688114.168572\n    test 896 line 176 toUtmUps8.northing: 2052857.299639\n    test 897 line 176 toUtmUps8.gamma: 14.766191\n    test 898 line 176 toUtmUps8.scale: 1.607200\n    test 899 line 176 toUtmUps8.lat: 11.417963\n    test 900 line 176 toUtmUps8.lon: 52.808691\n    test 901 line 177 toUtmUps8.easting: 5608408.773761\n    test 902 line 177 toUtmUps8.northing: 3859055.659110\n    test 903 line 177 toUtmUps8.gamma: 26.244151\n    test 904 line 177 toUtmUps8.scale: 1.413463\n    test 905 line 177 toUtmUps8.lat: 23.836688\n    test 906 line 177 toUtmUps8.lon: 50.500180\n    test 907 line 178 toUtmUps8.easting: 3836942.765275\n    test 908 line 178 toUtmUps8.northing: 6415467.634326\n    test 909 line 178 toUtmUps8.gamma: 40.575885\n    test 910 line 178 toUtmUps8.scale: 1.185615\n    test 911 line 178 toUtmUps8.lat: 45.550020\n    test 912 line 178 toUtmUps8.lon: 50.148036\n    test 913 line 179 toUtmUps8.easting: 1298730.366025\n    test 914 line 179 toUtmUps8.northing: 6021453.000792\n    test 915 line 179 toUtmUps8.gamma: 15.613320\n    test 916 line 179 toUtmUps8.scale: 1.020367\n    test 917 line 179 toUtmUps8.lat: 52.746079\n    test 918 line 179 toUtmUps8.lon: 19.343926\n    test 919 line 180 toUtmUps8.easting: 416934.289208\n    test 920 line 180 toUtmUps8.northing: 7295683.451705\n    test 921 line 180 toUtmUps8.gamma: 8.238232\n    test 922 line 180 toUtmUps8.scale: 1.001729\n    test 923 line 180 toUtmUps8.lat: 65.513348\n    test 924 line 180 toUtmUps8.lon: 9.039529\n    test 925 line 181 toUtmUps8.easting: 4336076.850889\n    test 926 line 181 toUtmUps8.northing: 7617975.722779\n    test 927 line 181 toUtmUps8.gamma: 56.537088\n    test 928 line 181 toUtmUps8.scale: 1.238582\n    test 929 line 181 toUtmUps8.lat: 48.709795\n    test 930 line 181 toUtmUps8.lon: 63.554005\n    test 931 line 182 toUtmUps8.easting: 168047.336980\n    test 932 line 182 toUtmUps8.northing: 2185000.046530\n    test 933 line 182 toUtmUps8.gamma: 0.542187\n    test 934 line 182 toUtmUps8.scale: 0.999949\n    test 935 line 182 toUtmUps8.lat: 19.753509\n    test 936 line 182 toUtmUps8.lon: 1.603846\n    test 937 line 183 toUtmUps8.easting: 8276281.328790\n    test 938 line 183 toUtmUps8.northing: 263444.350545\n    test 939 line 183 toUtmUps8.gamma: 2.071435\n    test 940 line 183 toUtmUps8.scale: 1.980314\n    test 941 line 183 toUtmUps8.lat: 1.202816\n    test 942 line 183 toUtmUps8.lon: 59.377276\n    test 943 line 184 toUtmUps8.easting: 4772573.810710\n    test 944 line 184 toUtmUps8.northing: 6765710.336002\n    test 945 line 184 toUtmUps8.gamma: 48.857561\n    test 946 line 184 toUtmUps8.scale: 1.291911\n    test 947 line 184 toUtmUps8.lat: 42.564975\n    test 948 line 184 toUtmUps8.lon: 59.356947\n    test 949 line 185 toUtmUps8.easting: 5427755.074639\n    test 950 line 185 toUtmUps8.northing: 1556055.820924\n    test 951 line 185 toUtmUps8.gamma: 9.862178\n    test 952 line 185 toUtmUps8.scale: 1.387394\n    test 953 line 185 toUtmUps8.lat: 10.090572\n    test 954 line 185 toUtmUps8.lon: 44.604132\n    test 955 line 186 toUtmUps8.easting: 11588458.616240  FAILED, KNOWN, expected 11588458.616041\n    test 956 line 186 toUtmUps8.northing: 5707993.922683  FAILED, KNOWN, expected 5707993.922613\n    test 957 line 186 toUtmUps8.gamma: 50.784827\n    test 958 line 186 toUtmUps8.scale: 3.149567\n    test 959 line 186 toUtmUps8.lat: 14.133028\n    test 960 line 186 toUtmUps8.lon: 78.097533\n    test 961 line 187 toUtmUps8.easting: 7152433.802688\n    test 962 line 187 toUtmUps8.northing: 761390.695844\n    test 963 line 187 toUtmUps8.gamma: 5.607350\n    test 964 line 187 toUtmUps8.scale: 1.705261\n    test 965 line 187 toUtmUps8.lat: 4.031123\n    test 966 line 187 toUtmUps8.lon: 54.048782\n    test 967 line 188 toUtmUps8.easting: 3105651.390901\n    test 968 line 188 toUtmUps8.northing: 9426026.169064\n    test 969 line 188 toUtmUps8.gamma: 78.750206\n    test 970 line 188 toUtmUps8.scale: 1.119737\n    test 971 line 188 toUtmUps8.lat: 62.746603\n    test 972 line 188 toUtmUps8.lon: 79.968641\n    test 973 line 189 toUtmUps8.easting: 2959009.639022\n    test 974 line 189 toUtmUps8.northing: 8339242.269282\n    test 975 line 189 toUtmUps8.gamma: 58.460865\n    test 976 line 189 toUtmUps8.scale: 1.108554\n    test 977 line 189 toUtmUps8.lat: 60.626429\n    test 978 line 189 toUtmUps8.lon: 61.851551\n    test 979 line 190 toUtmUps8.easting: 8640472.267145\n    test 980 line 190 toUtmUps8.northing: 6230320.417931\n    test 981 line 190 toUtmUps8.gamma: 52.816810\n    test 982 line 190 toUtmUps8.scale: 2.062973\n    test 983 line 190 toUtmUps8.lat: 23.600626\n    test 984 line 190 toUtmUps8.lon: 72.811634\n    test 985 line 191 toUtmUps8.easting: 811352.108932\n    test 986 line 191 toUtmUps8.northing: 9816129.813481\n    test 987 line 191 toUtmUps8.gamma: 77.299184\n    test 988 line 191 toUtmUps8.scale: 1.007651\n    test 989 line 191 toUtmUps8.lat: 82.572236\n    test 990 line 191 toUtmUps8.lon: 77.402323\n    test 991 line 192 toUtmUps8.easting: 6521874.973458\n    test 992 line 192 toUtmUps8.northing: 1053612.479744\n    test 993 line 192 toUtmUps8.gamma: 7.407328\n    test 994 line 192 toUtmUps8.scale: 1.575529\n    test 995 line 192 toUtmUps8.lat: 6.030051\n    test 996 line 192 toUtmUps8.lon: 50.783505\n    test 997 line 193 toUtmUps8.easting: 3477983.997875\n    test 998 line 193 toUtmUps8.northing: 5651613.325947\n    test 999 line 193 toUtmUps8.gamma: 31.530673\n    test 1000 line 193 toUtmUps8.scale: 1.151875\n    test 1001 line 193 toUtmUps8.lat: 42.411523\n    test 1002 line 193 toUtmUps8.lon: 42.258009\n    test 1003 line 194 toUtmUps8.easting: 629892.822243\n    test 1004 line 194 toUtmUps8.northing: 3283914.910451\n    test 1005 line 194 toUtmUps8.gamma: 3.210482\n    test 1006 line 194 toUtmUps8.scale: 1.004499\n    test 1007 line 194 toUtmUps8.lat: 29.526120\n    test 1008 line 194 toUtmUps8.lon: 6.493069\n    test 1009 line 195 toUtmUps8.easting: 3381879.687227\n    test 1010 line 195 toUtmUps8.northing: 5103629.325665\n    test 1011 line 195 toUtmUps8.gamma: 26.748108\n    test 1012 line 195 toUtmUps8.scale: 1.143559\n    test 1013 line 195 toUtmUps8.lat: 39.021853\n    test 1014 line 195 toUtmUps8.lon: 38.641779\n    test 1015 line 196 toUtmUps8.easting: 2815986.534177\n    test 1016 line 196 toUtmUps8.northing: 9387029.120718\n    test 1017 line 196 toUtmUps8.gamma: 76.967262\n    test 1018 line 196 toUtmUps8.scale: 1.098032\n    test 1019 line 196 toUtmUps8.lat: 64.971850\n    test 1020 line 196 toUtmUps8.lon: 78.151893\n    test 1021 line 197 toUtmUps8.easting: 3398195.889603\n    test 1022 line 197 toUtmUps8.northing: 9138936.031490\n    test 1023 line 197 toUtmUps8.gamma: 74.477499\n    test 1024 line 197 toUtmUps8.scale: 1.144009\n    test 1025 line 197 toUtmUps8.lat: 59.961819\n    test 1026 line 197 toUtmUps8.lon: 76.473422\n    test 1027 line 198 toUtmUps8.easting: 2421734.754637\n    test 1028 line 198 toUtmUps8.northing: 5002372.094991\n    test 1029 line 198 toUtmUps8.gamma: 20.017082\n    test 1030 line 198 toUtmUps8.scale: 1.072592\n    test 1031 line 198 toUtmUps8.lat: 41.374040\n    test 1032 line 198 toUtmUps8.lon: 28.848343\n    test 1033 line 199 toUtmUps8.easting: 2360869.895525\n    test 1034 line 199 toUtmUps8.northing: 9553298.449536\n    test 1035 line 199 toUtmUps8.gamma: 78.848205\n    test 1036 line 199 toUtmUps8.scale: 1.068453\n    test 1037 line 199 toUtmUps8.lat: 68.946087\n    test 1038 line 199 toUtmUps8.lon: 79.574523\n\n    test skipped (27): line 200 toUtmUps8.'79.275096210569 83.551272329394 1196539.9721941076965 9861920.8362302532842 83.437668440198132309 1.01713723718699411107'\n    test 1039 line 201 toUtmUps8.easting: 1327758.704795\n    test 1040 line 201 toUtmUps8.northing: 2375509.241683\n    test 1041 line 201 toUtmUps8.gamma: 4.617572\n    test 1042 line 201 toUtmUps8.scale: 1.021465\n    test 1043 line 201 toUtmUps8.lat: 21.000252\n    test 1044 line 201 toUtmUps8.lon: 12.697444\n    test 1045 line 202 toUtmUps8.easting: 2070860.327644\n    test 1046 line 202 toUtmUps8.northing: 8604500.719581\n    test 1047 line 202 toUtmUps8.gamma: 54.722761\n    test 1048 line 202 toUtmUps8.scale: 1.052469\n    test 1049 line 202 toUtmUps8.lat: 68.015227\n    test 1050 line 202 toUtmUps8.lon: 56.732419\n    test 1051 line 203 toUtmUps8.easting: 6564776.654864\n    test 1052 line 203 toUtmUps8.northing: 8171207.177379\n    test 1053 line 203 toUtmUps8.gamma: 69.237523\n    test 1054 line 203 toUtmUps8.scale: 1.573894\n    test 1055 line 203 toUtmUps8.lat: 37.423675\n    test 1056 line 203 toUtmUps8.lon: 76.947359\n    test 1057 line 204 toUtmUps8.easting: 592653.553821\n    test 1058 line 204 toUtmUps8.northing: 6125529.810052\n    test 1059 line 204 toUtmUps8.gamma: 7.600785\n    test 1060 line 204 toUtmUps8.scale: 1.003912\n    test 1061 line 204 toUtmUps8.lat: 54.922707\n    test 1062 line 204 toUtmUps8.lon: 9.260818\n    test 1063 line 205 toUtmUps8.easting: 693459.671821\n    test 1064 line 205 toUtmUps8.northing: 6943779.991032\n    test 1065 line 205 toUtmUps8.gamma: 11.787587\n    test 1066 line 205 toUtmUps8.scale: 1.005496\n    test 1067 line 205 toUtmUps8.lat: 61.982810\n    test 1068 line 205 toUtmUps8.lon: 13.299659\n    test 1069 line 206 toUtmUps8.easting: 1838956.187625\n    test 1070 line 206 toUtmUps8.northing: 3511959.612381\n    test 1071 line 206 toUtmUps8.gamma: 9.844313\n    test 1072 line 206 toUtmUps8.scale: 1.041603\n    test 1073 line 206 toUtmUps8.lat: 30.324214\n    test 1074 line 206 toUtmUps8.lon: 18.959769\n    test 1075 line 207 toUtmUps8.easting: 4460690.884597\n    test 1076 line 207 toUtmUps8.northing: 5541873.235403\n    test 1077 line 207 toUtmUps8.gamma: 35.768613\n    test 1078 line 207 toUtmUps8.scale: 1.254179\n    test 1079 line 207 toUtmUps8.lat: 37.629667\n    test 1080 line 207 toUtmUps8.lon: 49.649131\n    test 1081 line 208 toUtmUps8.easting: 2311168.998941\n    test 1082 line 208 toUtmUps8.northing: 9480561.869119\n    test 1083 line 208 toUtmUps8.gamma: 76.828257\n    test 1084 line 208 toUtmUps8.scale: 1.065556\n    test 1085 line 208 toUtmUps8.lat: 69.225574\n    test 1086 line 208 toUtmUps8.lon: 77.656135\n    test 1087 line 209 toUtmUps8.easting: 4111775.114451\n    test 1088 line 209 toUtmUps8.northing: 6509014.348792\n    test 1089 line 209 toUtmUps8.gamma: 43.052130\n    test 1090 line 209 toUtmUps8.scale: 1.214125\n    test 1091 line 209 toUtmUps8.lat: 44.698478\n    test 1092 line 209 toUtmUps8.lon: 52.979304\n    test 1093 line 210 toUtmUps8.easting: 75358.261962\n    test 1094 line 210 toUtmUps8.northing: 7711258.662251\n    test 1095 line 210 toUtmUps8.gamma: 1.806297\n    test 1096 line 210 toUtmUps8.scale: 0.999669\n    test 1097 line 210 toUtmUps8.lat: 69.499594\n    test 1098 line 210 toUtmUps8.lon: 1.928336\n\n    test skipped (28): line 211 toUtmUps8.'27.981363604998 86.061112755721 8781885.2291162503299 9184776.4522114918448 81.795538514711932534 2.09490761781464961377'\n    test 1099 line 212 toUtmUps8.easting: 954378.415174\n    test 1100 line 212 toUtmUps8.northing: 7449110.669807\n    test 1101 line 212 toUtmUps8.gamma: 19.380657\n    test 1102 line 212 toUtmUps8.scale: 1.010768\n    test 1103 line 212 toUtmUps8.lat: 65.699839\n    test 1104 line 212 toUtmUps8.lon: 21.104725\n    test 1105 line 213 toUtmUps8.easting: 720971.793706\n    test 1106 line 213 toUtmUps8.northing: 5265195.121555\n    test 1107 line 213 toUtmUps8.gamma: 7.002995\n    test 1108 line 213 toUtmUps8.scale: 1.005995\n    test 1109 line 213 toUtmUps8.lat: 47.143648\n    test 1110 line 213 toUtmUps8.lon: 9.512189\n    test 1111 line 214 toUtmUps8.easting: 561561.493937\n    test 1112 line 214 toUtmUps8.northing: 989910.236221\n    test 1113 line 214 toUtmUps8.gamma: 0.793118\n    test 1114 line 214 toUtmUps8.scale: 1.003505\n    test 1115 line 214 toUtmUps8.lat: 8.920167\n    test 1116 line 214 toUtmUps8.lon: 5.101513\n    test 1117 line 215 toUtmUps8.easting: 3446829.634468\n    test 1118 line 215 toUtmUps8.northing: 9232868.155664\n    test 1119 line 215 toUtmUps8.gamma: 76.279075\n    test 1120 line 215 toUtmUps8.scale: 1.148263\n    test 1121 line 215 toUtmUps8.lat: 59.778971\n    test 1122 line 215 toUtmUps8.lon: 78.080322\n\n    test skipped (29): line 216 toUtmUps8.'55.865310107291 87.384288430943 4048307.5459092527942 9800416.4229977935137 86.843918034217523739 1.20649504624906774925'\n    test 1123 line 217 toUtmUps8.easting: 8973188.480293\n    test 1124 line 217 toUtmUps8.northing: 7042230.087021\n    test 1125 line 217 toUtmUps8.gamma: 60.872456\n    test 1126 line 217 toUtmUps8.scale: 2.156098\n    test 1127 line 217 toUtmUps8.lat: 24.310973\n    test 1128 line 217 toUtmUps8.lon: 76.823777\n    test 1129 line 218 toUtmUps8.easting: 126314.191618\n    test 1130 line 218 toUtmUps8.northing: 396006.687921\n    test 1131 line 218 toUtmUps8.gamma: 0.071065\n    test 1132 line 218 toUtmUps8.scale: 0.999798\n    test 1133 line 218 toUtmUps8.lat: 3.582041\n    test 1134 line 218 toUtmUps8.lon: 1.137286\n    test 1135 line 219 toUtmUps8.easting: 5247652.345647\n    test 1136 line 219 toUtmUps8.northing: 8670513.359752\n    test 1137 line 219 toUtmUps8.gamma: 72.700498\n    test 1138 line 219 toUtmUps8.scale: 1.355272\n    test 1139 line 219 toUtmUps8.lat: 46.124233\n    test 1140 line 219 toUtmUps8.lon: 77.313118\n\n    test skipped (30): line 220 toUtmUps8.'31.17139056295 87.104503768139 8103656.8381187232079 9469794.014736839373 84.490673011906282841 1.91216400164486142107'\n    test 1141 line 221 toUtmUps8.easting: 6300112.758236\n    test 1142 line 221 toUtmUps8.northing: 93835.917364\n    test 1143 line 221 toUtmUps8.gamma: 0.644805\n    test 1144 line 221 toUtmUps8.scale: 1.534073\n    test 1145 line 221 toUtmUps8.lat: 0.553171\n    test 1146 line 221 toUtmUps8.lon: 49.117104\n    test 1147 line 222 toUtmUps8.easting: 3894813.593782\n    test 1148 line 222 toUtmUps8.northing: 4833832.341027\n    test 1149 line 222 toUtmUps8.gamma: 27.453298\n    test 1150 line 222 toUtmUps8.scale: 1.192135\n    test 1151 line 222 toUtmUps8.lat: 35.361587\n    test 1152 line 222 toUtmUps8.lon: 41.860599\n    test 1153 line 223 toUtmUps8.easting: 402511.346712\n    test 1154 line 223 toUtmUps8.northing: 3520621.561911\n    test 1155 line 223 toUtmUps8.gamma: 2.238474\n    test 1156 line 223 toUtmUps8.scale: 1.001599\n    test 1157 line 223 toUtmUps8.lat: 31.750314\n    test 1158 line 223 toUtmUps8.lon: 4.248167\n    test 1159 line 224 toUtmUps8.easting: 5357378.503148\n    test 1160 line 224 toUtmUps8.northing: 2772997.602234\n    test 1161 line 224 toUtmUps8.gamma: 17.823560\n    test 1162 line 224 toUtmUps8.scale: 1.376031\n    test 1163 line 224 toUtmUps8.lat: 17.924336\n    test 1164 line 224 toUtmUps8.lon: 46.096402\n    test 1165 line 225 toUtmUps8.easting: 2807553.985866\n    test 1166 line 225 toUtmUps8.northing: 8177847.980275\n    test 1167 line 225 toUtmUps8.gamma: 54.680045\n    test 1168 line 225 toUtmUps8.scale: 1.097531\n    test 1169 line 225 toUtmUps8.lat: 60.931488\n    test 1170 line 225 toUtmUps8.lon: 58.221214\n\n    test skipped (31): line 226 toUtmUps8.'5.358150979521 87.556213284144 18289045.16650076146 7792942.3396035398889 73.216494415207315628 8.09800850850277481729'\n\n    test skipped (32): line 227 toUtmUps8.'28.616673489124 80.452426461437 8376822.4595378634541 8128174.6238782329989 70.920116640676321501 1.98487312027093768388'\n    test 1171 line 228 toUtmUps8.easting: 11898068.352950  FAILED, KNOWN, expected 11898068.353272\n    test 1172 line 228 toUtmUps8.northing: 4772439.493355  FAILED, KNOWN, expected 4772439.493697\n    test 1173 line 228 toUtmUps8.gamma: 42.613968\n    test 1174 line 228 toUtmUps8.scale: 3.314412\n    test 1175 line 228 toUtmUps8.lat: 11.709763\n    test 1176 line 228 toUtmUps8.lon: 76.760295\n    test 1177 line 229 toUtmUps8.easting: 10550946.939052  FAILED, KNOWN, expected 10550946.939050\n    test 1178 line 229 toUtmUps8.northing: 3851968.815305  FAILED, KNOWN, expected 3851968.815295\n    test 1179 line 229 toUtmUps8.gamma: 33.383025\n    test 1180 line 229 toUtmUps8.scale: 2.724754\n    test 1181 line 229 toUtmUps8.lat: 12.009498\n    test 1182 line 229 toUtmUps8.lon: 71.782351\n\n    test skipped (33): line 230 toUtmUps8.'37.62978386356 85.795687334213 6828299.1236065501034 9394803.2274626281036 83.181386462369626591 1.62435875189611017521'\n    test 1183 line 231 toUtmUps8.easting: 11162550.334001  FAILED, KNOWN, expected 11162550.334022\n    test 1184 line 231 toUtmUps8.northing: 2640267.279546  FAILED, KNOWN, expected 2640267.279593\n    test 1185 line 231 toUtmUps8.gamma: 23.145404\n    test 1186 line 231 toUtmUps8.scale: 2.998408\n    test 1187 line 231 toUtmUps8.lat: 7.721128\n    test 1188 line 231 toUtmUps8.lon: 71.662731\n    test 1189 line 232 toUtmUps8.easting: 4411584.447941\n    test 1190 line 232 toUtmUps8.northing: 4956173.694407\n    test 1191 line 232 toUtmUps8.gamma: 30.713919\n    test 1192 line 232 toUtmUps8.scale: 1.248736\n    test 1193 line 232 toUtmUps8.lat: 34.295026\n    test 1194 line 232 toUtmUps8.lon: 46.442191\n    test 1195 line 233 toUtmUps8.easting: 672108.897905\n    test 1196 line 233 toUtmUps8.northing: 4751554.657054\n    test 1197 line 233 toUtmUps8.gamma: 5.569178\n    test 1198 line 233 toUtmUps8.scale: 1.005162\n    test 1199 line 233 toUtmUps8.lat: 42.622496\n    test 1200 line 233 toUtmUps8.lon: 8.193605\n    test 1201 line 234 toUtmUps8.easting: 5022964.290579\n    test 1202 line 234 toUtmUps8.northing: 6860418.199502\n    test 1203 line 234 toUtmUps8.gamma: 50.862230\n    test 1204 line 234 toUtmUps8.scale: 1.324925\n    test 1205 line 234 toUtmUps8.lat: 41.667780\n    test 1206 line 234 toUtmUps8.lon: 61.518288\n    test 1207 line 235 toUtmUps8.easting: 1669655.595207\n    test 1208 line 235 toUtmUps8.northing: 4152086.537021\n    test 1209 line 235 toUtmUps8.gamma: 11.110237\n    test 1210 line 235 toUtmUps8.scale: 1.034138\n    test 1211 line 235 toUtmUps8.lat: 36.060369\n    test 1212 line 235 toUtmUps8.lon: 18.444112\n    test 1213 line 236 toUtmUps8.easting: 6055876.729655\n    test 1214 line 236 toUtmUps8.northing: 4896837.552619\n    test 1215 line 236 toUtmUps8.gamma: 35.799747\n    test 1216 line 236 toUtmUps8.scale: 1.485967\n    test 1217 line 236 toUtmUps8.lat: 27.948091\n    test 1218 line 236 toUtmUps8.lon: 56.816429\n    test 1219 line 237 toUtmUps8.easting: 1209214.164379\n    test 1220 line 237 toUtmUps8.northing: 7266409.859178\n    test 1221 line 237 toUtmUps8.gamma: 22.319633\n    test 1222 line 237 toUtmUps8.scale: 1.017554\n    test 1223 line 237 toUtmUps8.lat: 63.386030\n    test 1224 line 237 toUtmUps8.lon: 24.662716\n    test 1225 line 238 toUtmUps8.easting: 5154564.559584\n    test 1226 line 238 toUtmUps8.northing: 698118.349975\n    test 1227 line 238 toUtmUps8.gamma: 4.242360\n    test 1228 line 238 toUtmUps8.scale: 1.347481\n    test 1229 line 238 toUtmUps8.lat: 4.680922\n    test 1230 line 238 toUtmUps8.lon: 42.114426\n    test 1231 line 239 toUtmUps8.easting: 2695149.806543\n    test 1232 line 239 toUtmUps8.northing: 8208197.765605\n    test 1233 line 239 toUtmUps8.gamma: 54.178615\n    test 1234 line 239 toUtmUps8.scale: 1.089730\n    test 1235 line 239 toUtmUps8.lat: 61.826625\n    test 1236 line 239 toUtmUps8.lon: 57.525096\n    test 1237 line 240 toUtmUps8.easting: 3394792.327820\n    test 1238 line 240 toUtmUps8.northing: 3217583.415552\n    test 1239 line 240 toUtmUps8.gamma: 15.165863\n    test 1240 line 240 toUtmUps8.scale: 1.145285\n    test 1241 line 240 toUtmUps8.lat: 25.104353\n    test 1242 line 240 toUtmUps8.lon: 32.528660\n    test 1243 line 241 toUtmUps8.easting: 1429160.966985\n    test 1244 line 241 toUtmUps8.northing: 8212685.362032\n    test 1245 line 241 toUtmUps8.gamma: 37.484904\n    test 1246 line 241 toUtmUps8.scale: 1.024676\n    test 1247 line 241 toUtmUps8.lat: 69.678351\n    test 1248 line 241 toUtmUps8.lon: 39.275513\n\n    test skipped (34): line 242 toUtmUps8.'29.671383681805 84.19659549085 8343387.9980651104898 8885196.9545780118644 78.561937382568633298 1.97473261886829061763'\n    test 1249 line 243 toUtmUps8.easting: 1990722.928606\n    test 1250 line 243 toUtmUps8.northing: 7569202.065162\n    test 1251 line 243 toUtmUps8.gamma: 37.075276\n    test 1252 line 243 toUtmUps8.scale: 1.048486\n    test 1253 line 243 toUtmUps8.lat: 62.300208\n    test 1254 line 243 toUtmUps8.lon: 40.474051\n    test 1255 line 244 toUtmUps8.easting: 1554980.099559\n    test 1256 line 244 toUtmUps8.northing: 1449423.919586\n    test 1257 line 244 toUtmUps8.gamma: 3.188328\n    test 1258 line 244 toUtmUps8.scale: 1.029664\n    test 1259 line 244 toUtmUps8.lat: 12.721776\n    test 1260 line 244 toUtmUps8.lon: 14.190003\n    test 1261 line 245 toUtmUps8.easting: 785205.450196\n    test 1262 line 245 toUtmUps8.northing: 5575158.423096\n    test 1263 line 245 toUtmUps8.gamma: 8.388417\n    test 1264 line 245 toUtmUps8.scale: 1.007181\n    test 1265 line 245 toUtmUps8.lat: 49.811296\n    test 1266 line 245 toUtmUps8.lon: 10.925011\n    test 1267 line 246 toUtmUps8.easting: 3310405.988313\n    test 1268 line 246 toUtmUps8.northing: 5955022.233881\n    test 1269 line 246 toUtmUps8.gamma: 33.007587\n    test 1270 line 246 toUtmUps8.scale: 1.137141\n    test 1271 line 246 toUtmUps8.lat: 45.132680\n    test 1272 line 246 toUtmUps8.lon: 42.478624\n    test 1273 line 247 toUtmUps8.easting: 4733460.960666\n    test 1274 line 247 toUtmUps8.northing: 129034.889816\n    test 1275 line 247 toUtmUps8.gamma: 0.737551\n    test 1276 line 247 toUtmUps8.scale: 1.290439\n    test 1277 line 247 toUtmUps8.lat: 0.904279\n    test 1278 line 247 toUtmUps8.lon: 39.078412\n    test 1279 line 248 toUtmUps8.easting: 3322708.343909\n    test 1280 line 248 toUtmUps8.northing: 3864738.078742\n    test 1281 line 248 toUtmUps8.gamma: 18.472566\n    test 1282 line 248 toUtmUps8.scale: 1.138838\n    test 1283 line 248 toUtmUps8.lat: 30.163605\n    test 1284 line 248 toUtmUps8.lon: 33.577996\n\n    test skipped (35): line 249 toUtmUps8.'27.643243707755 81.892859091432 8672864.4172042475623 8333465.9834441061554 73.206272638168122883 2.06544053870286774312'\n\n    test skipped (36): line 250 toUtmUps8.'18.201207657521 82.434617649311 11126818.23119627031 7618712.1749910723126 67.88717347393512063 2.92241673495261070414'\n\n    test skipped (37): line 251 toUtmUps8.'28.804576432117 89.886072420251 8650100.9817967479337 9975084.1689971279206 89.767446308690086924 2.05728879562910108817'\n    test 1285 line 252 toUtmUps8.easting: 2212701.180192\n    test 1286 line 252 toUtmUps8.northing: 650348.100229\n    test 1287 line 252 toUtmUps8.gamma: 1.970441\n    test 1288 line 252 toUtmUps8.scale: 1.060830\n    test 1289 line 252 toUtmUps8.lat: 5.542998\n    test 1290 line 252 toUtmUps8.lon: 19.589578\n    test 1291 line 253 toUtmUps8.easting: 6890222.326618\n    test 1292 line 253 toUtmUps8.northing: 7506813.499547\n    test 1293 line 253 toUtmUps8.gamma: 62.684825\n    test 1294 line 253 toUtmUps8.scale: 1.638488\n    test 1295 line 253 toUtmUps8.lat: 34.237147\n    test 1296 line 253 toUtmUps8.lon: 73.678164\n    test 1297 line 254 toUtmUps8.easting: 6692260.067325\n    test 1298 line 254 toUtmUps8.northing: 4244174.008110\n    test 1299 line 254 toUtmUps8.gamma: 31.812920\n    test 1300 line 254 toUtmUps8.scale: 1.604640\n    test 1301 line 254 toUtmUps8.lat: 22.704949\n    test 1302 line 254 toUtmUps8.lon: 57.877010\n    test 1303 line 255 toUtmUps8.easting: 1225564.137190\n    test 1304 line 255 toUtmUps8.northing: 4778923.924144\n    test 1305 line 255 toUtmUps8.gamma: 10.083419\n    test 1306 line 255 toUtmUps8.scale: 1.018134\n    test 1307 line 255 toUtmUps8.lat: 42.192424\n    test 1308 line 255 toUtmUps8.lon: 14.828196\n    test 1309 line 256 toUtmUps8.easting: 12341116.155088  FAILED, KNOWN, expected 12341116.154950\n    test 1310 line 256 toUtmUps8.northing: 5081855.520287  FAILED, KNOWN, expected 5081855.521966\n    test 1311 line 256 toUtmUps8.gamma: 45.712545  FAILED, KNOWN, expected 45.712546\n    test 1312 line 256 toUtmUps8.scale: 3.535170\n    test 1313 line 256 toUtmUps8.lat: 11.481151\n    test 1314 line 256 toUtmUps8.lon: 78.189236\n    test 1315 line 257 toUtmUps8.easting: 6673845.021771\n    test 1316 line 257 toUtmUps8.northing: 1177587.190565\n    test 1317 line 257 toUtmUps8.gamma: 8.389141\n    test 1318 line 257 toUtmUps8.scale: 1.605171\n    test 1319 line 257 toUtmUps8.lat: 6.609626\n    test 1320 line 257 toUtmUps8.lon: 51.735783\n    test 1321 line 258 toUtmUps8.easting: 6966354.690417\n    test 1322 line 258 toUtmUps8.northing: 3641802.005093\n    test 1323 line 258 toUtmUps8.gamma: 27.409636\n    test 1324 line 258 toUtmUps8.scale: 1.661469\n    test 1325 line 258 toUtmUps8.lat: 19.059369\n    test 1326 line 258 toUtmUps8.lon: 57.526439\n    test 1327 max forward error: 1.678809e-03\n    test 1328 max reverse error: 3.170463e-09\n    test 1329 Utm.scale0: 0.9996\n    test 1330 Utm.datum: WGS84\n    test 1331 Utm.datum.ellipsoid.KsOrder: 8\n    test 1332 Ups.scale0: 0.994  FAILED, KNOWN, expected 0.9996\n    test 1333 Ups.datum: WGS84\n    test 1334 Ups.datum.ellipsoid.KsOrder: 8\n    test 1335 WGS84.KsOrder: 8\n\n    24 of 1335 testUtmUpsTMcoords.py tests (1.8%) FAILED, ALL KNOWN, 37 skipped (pygeodesy 26.3.26 Python 3.13.12 64bit arm64 coverage 7.10.7 geographiclib 2.1 numpy 2.3.3 scipy 1.16.2 Math 2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 macOS 26.3.1 isLazy 1 -W  default) 548.958 ms\nrunning /Library/Framewo....n3.13 -W default ~/PyGeodesy/test/testVectorial.py\n./pygeodesy/ellipsoidalBase.py:443: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  _ = self.datum.ellipsoid.geodesic\n./pygeodesy/azimuthal.py:636: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return self.datum.ellipsoid.geodesic\n./pygeodesy/ellipsoidalNvector.py:247: DeprecationWarning: Property_RO L{ned<pygeodesy.ltpTuples.Ned.ned>} has been DEPRECATED, use property C{ned4}.\n  dn = delta.ned[:3]  # XXX Ned4Tuple.to3Tuple\n./pygeodesy/deprecated/classes.py:33: DeprecationWarning: class L{Ned3Tuple<pygeodesy.deprecated.classes.Ned3Tuple>} has been DEPRECATED, use class L{Ned4Tuple}, ignoring item C{ltp}.\n  deprecated_class(cls)\n./test/testVectorial.py:128: DeprecationWarning: function L{nearestOn<pygeodesy.vector2d.nearestOn>} has been DEPRECATED on 2025.05.06, use L{pygeodesy.nearestOn<pygeodesy.vector3d.nearestOn>}.\n  t = vector2d.nearestOn(Nvector(0, 0, 0), p1, p2)\n./pygeodesy/basics.py:637: DeprecationWarning: Conversion of an array with ndim > 0 to a scalar is deprecated, and will error in future. Ensure you extract a single element from your array before performing this operation. (Deprecated NumPy 1.25.)\n  return tuple(map(fun, *xs, **strict) if strict else map(fun, *xs))\n\n    testing testVectorial.py 25.10.07 isLazy=1\n\n    testVectorial(pygeodesy.ellipsoidalNvector, 25.05.12)\n\n    test 1 toLatLon: 44.995674°N, 045.0°E\n    test 2 toNvector: (0.50004, 0.50004, 0.70705)\n    test 3 isequalTo: False\n    test 4 isequalTo: True\n    test 5 length: 0.99992449715\n    test 6 euclid: 0.99995577\n    test 7 length: 1.00\n    test 8 euclid: 1.0000\n    test 9 meanOf: 44.995674°N, 045.0°E\n    test 10 meanOf: LatLon\n    test 11 apply: (0.5, 0.5, 0.707)\n    test 12 init: (0.5, 0.5, 0.707)\n    test 13 i***: (0.5, 0.5, 0.707)\n    test 14 abs: 0.99992449715\n    test 15 sumOf: (52.70504, 0.61904, 0.70705)\n    test 16 sumOf: Nv\n    test 17 sumOf: sumOf\n    test 18 length: 52.7134151513\n    test 19 sizeof: 217  FAILED, KNOWN, expected 128\n    test 20 length: 52.2051356286\n    test 21 sizeof: 320  FAILED, KNOWN, expected 247\n    test 22 copy: True\n    test 23 length: 52.2051356286\n    test 24 sizeof: 320\n    test 25 isenclosedBy: True\n    test 26 isenclosedBy*: True\n    test 27 isenclosedBy: True\n    test 28 isenclosedBy*: True\n\n    test 29 nearestOn: 51.0°N, 001.0°E\n    test 30 nearestOn: 50.987°N, 000.298°W\n    test 31 nearestOn: 51.0°N, 002.0°E\n    test 32 nearestOn: 50.995°N, 002.655°E\n    test 33 nearestOn: 51.0°N, 001.9°E\n    test 34 nearestOn: True\n    test 35 distanceTo: 42.826\n    test 36 nearestOn: 51.0°N, 002.0°E\n    test 37 nearestOn: True\n    test 38 nearestOn: 00.0°N, 000.0°E\n    test 39 nearestOn: True\n    test 40 nearestOn: 00.0°N, 020.0°E\n    test 41 nearestOn: True\n    test 42 nearestOn: 02.0°N, 002.0°E\n    test 43 nearestOn: 02.0°N, 002.0°E\n\n    test 44 neareston6: (LatLon(45°00′00.0″N, 001°00′00.0″E), 4755443.4294, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E))\n    test 45 neareston6: (LatLon(45°30′03.94″N, 002°00′00.0″E), 39078.729285, 1.501072, 2, LatLon(45°00′00.0″N, 002°00′00.0″E), LatLon(46°00′00.0″N, 002°00′00.0″E))\n\n    test 46 BasseC: 47.3038°N, 002.5721°W\n    test 47 BasseH: 47.311067°N, 002.528617°W\n    test 48 triangulate: 47.323667°N, 002.568501°W\n    test 49 triangulate: True\n\n    test 50 trilaterate: 37.419078°N, 121.960579°W\n    test 51 trilaterate: True\n    test 52 trilaterate: 08.068912°S, 034.888699°W\n    test 53 trilaterate: True\n    test 54 trilaterate: 08.068912°S, 034.888695°W  FAILED, KNOWN, expected 08.068912°S, 034.888699°W\n    test 55 trilaterate: True\n    test 56 trilaterate: 42.67456065°N, 002.49539502°E\n    test 57 trilaterate: distance1 (5110), distance2 (5110), distance3 (5110), point1 (LatLon(42°41′19.82″N, 002°26′19.89″E)), point2 (LatLon(42°38′07.52″N, 002°31′21.25″E)) or point3 (LatLon(42°38′43.44″N, 002°30′17.32″E)): no intersection (useZ=False, wrap=False, z=-8.13526e-05)\n\n    test 58 destinationNed: 48°53′12.01″N, 002°22′29.0″E, +0.20m\n\n    testNvector(pygeodesy.ellipsoidalNvector, 25.05.12)\n    test 59 sumOf: Nvector\n    test 60 ecef.x, .y, .z: 3194659.54086, 3194659.54086, 4487008.4122\n    test 61 ecef.lat, .lon: 44.995674, 45.0\n    test 62 ecef.height: -0.0\n    test 63 ecef.M: -0.707106781, -0.499962243, 0.500037754, 0.707106781, -0.499962243, 0.500037754, 0.0, 0.707160174, 0.707053385\n    test 64 .isEllipsoidal: True\n    test 65 .isSpherical: False\n    test 66 .latlon: (44.995674, 45.0)\n    test 67 .philam: (0.785323, 0.785398)\n    test 68 .latlonheight: (44.995674, 45.0, 0.0)\n    test 69 .philamheight: (0.785323, 0.785398, 0.0)\n    test 70 parse: (0.5, 0.5, 0.707)\n    test 71 cmp: 0\n    test 72 eq: True\n    test 73 ge: True\n    test 74 gt: False\n    test 75 le: True\n    test 76 lt: False\n    test 77 ne: False\n    test 78 *: (1.0, 1.0, 1.414)\n    test 79 +: (1.0, 1.0, 1.414)\n    test 80 /: (0.5, 0.5, 0.707)\n    test 81 -: (0.5, 0.5, 0.707)\n    test 82 @: (0.0, 0.0, 0.0)\n    test 83 @: (0.0, 0.0, 0.0)\n    test 84 rotate: (0.26268, 0.26268, 0.37143)\n    test 85 crosserrors: True\n    test 86 0: divisor (0): float division by zero\n    test 87 intersections2: (500.0, 0.0, 0.0)\n    test 88 nearestOn: (0.0, 0.0, 0.0)\n    test 89 nearestOn: True\n    test 90 nearestOn: (100.0, 100.0, 100.0)\n    test 91 nearestOn: True\n    test 92 iscolinearWith: False\n    test 93 iscolinearWith: True\n    test 94 nearestOn: (0.0, 0.0, 0.0)\n    test 95 nearestOn: True\n    test 96 nearestOn: (100.0, 100.0, 100.0)\n    test 97 nearestOn: True\n    test 98 iscolinearWith: False\n    test 99 iscolinearWith: True\n\n    testVectorial(pygeodesy.sphericalNvector, 25.05.27)\n    test 100 crossTrackDistanceTo: -305.67\n    test 101 crossTrackDistanceTo: -307.55\n\n    test 102 toLatLon: 44.995674°N, 045.0°E\n    test 103 toNvector: (0.50004, 0.50004, 0.70705)\n    test 104 isequalTo: False\n    test 105 isequalTo: True\n    test 106 length: 0.99992449715\n    test 107 euclid: 0.99995577\n    test 108 length: 1.00\n    test 109 euclid: 1.0000\n    test 110 meanOf: 44.995674°N, 045.0°E\n    test 111 meanOf: LatLon\n    test 112 apply: (0.5, 0.5, 0.707)\n    test 113 init: (0.5, 0.5, 0.707)\n    test 114 i***: (0.5, 0.5, 0.707)\n    test 115 abs: 0.99992449715\n    test 116 sumOf: (52.70504, 0.61904, 0.70705)\n    test 117 sumOf: Nv\n    test 118 sumOf: sumOf\n    test 119 length: 52.7134151513\n    test 120 sizeof: 217  FAILED, KNOWN, expected 128\n    test 121 length: 52.2051356286\n    test 122 sizeof: 320  FAILED, KNOWN, expected 247\n    test 123 copy: True\n    test 124 length: 52.2051356286\n    test 125 sizeof: 320\n\n    test 126 toCartesian: [3185744.919, 3185744.919, 4504643.315]\n    test 127 toLatLon: 44.995674°N, 045.0°E\n    test 128 toNvector: (0.50004, 0.50004, 0.70705)  FAILED, KNOWN, expected (0.50004, 0.50004, 0.70705, -0.00)\n\n    test 129 intersection: 02.499372°N, 002.5°E\n\n    test 130 intersection1: 02.499372°N, 002.5°E\n    test 131 intersection2: 02.499372°S, 177.5°W\n\n    test 132 isenclosedBy: True\n    test 133 isenclosedBy*: True\n    test 134 isenclosedBy: True\n    test 135 isenclosedBy*: True\n\n    test 136 iswithin: False\n    test 137 iswithin: True\n\n    test 138 nearestOn: 51.0°N, 001.0°E\n    test 139 nearestOn: 50.987°N, 000.298°W\n    test 140 nearestOn: 51.0°N, 002.0°E\n    test 141 nearestOn: 50.995°N, 002.655°E\n    test 142 nearestOn: 51.0°N, 001.9°E\n    test 143 nearestOn: True\n    test 144 distanceTo: 42.712\n    test 145 nearestOn: 51.0°N, 002.0°E\n    test 146 nearestOn: True\n    test 147 nearestOn: 00.0°N, 000.0°E\n    test 148 nearestOn: True\n    test 149 nearestOn: 00.0°N, 020.0°E\n    test 150 nearestOn: True\n    test 151 nearestOn: 02.0°N, 002.0°E\n    test 152 nearestOn: 02.0°N, 002.0°E\n\n    test 153 neareston6: (LatLon(45°00′00.0″N, 001°00′00.0″E), 4773243.784965, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E))\n    test 154 neareston6: (LatLon(45°30′03.93″N, 002°00′00.0″E), 38968.531578, 1.501091, 2, LatLon(45°00′00.0″N, 002°00′00.0″E), LatLon(46°00′00.0″N, 002°00′00.0″E))\n\n    test 155 BasseC: 47.3038°N, 002.5721°W\n    test 156 BasseH: 47.311067°N, 002.528617°W\n    test 157 triangulate: 47.323667°N, 002.568501°W\n    test 158 triangulate: True\n\n    test 159 trilaterate: 37.419078°N, 121.960579°W\n    test 160 trilaterate: True\n    test 161 trilaterate: 08.068912°S, 034.888699°W\n    test 162 trilaterate: True\n    test 163 trilaterate: 08.068912°S, 034.888695°W  FAILED, KNOWN, expected 08.068912°S, 034.888699°W\n    test 164 trilaterate: True\n    test 165 trilaterate: 42.67456065°N, 002.49539502°E\n    test 166 trilaterate: distance1 (5110), distance2 (5110), distance3 (5110), point1 (LatLon(42°41′19.82″N, 002°26′19.89″E)), point2 (LatLon(42°38′07.52″N, 002°31′21.25″E)) or point3 (LatLon(42°38′43.44″N, 002°30′17.32″E)): no intersection (useZ=False, wrap=False, z=-8.13526e-05)\n\n    testNvector(pygeodesy.sphericalNvector, 25.05.27)\n    test 167 sumOf: Nvector\n    test 168 ecef.x, .y, .z: 3185744.91853, 3185744.91853, 4504643.3148\n    test 169 ecef.lat, .lon: 44.995674, 45.0\n    test 170 ecef.height: -0.0\n    test 171 ecef.M: -0.707106781, -0.499962243, 0.500037754, 0.707106781, -0.499962243, 0.500037754, 0.0, 0.707160174, 0.707053385\n    test 172 .isEllipsoidal: False\n    test 173 .isSpherical: True\n    test 174 .latlon: (44.995674, 45.0)\n    test 175 .philam: (0.785323, 0.785398)\n    test 176 .latlonheight: (44.995674, 45.0, 0.0)\n    test 177 .philamheight: (0.785323, 0.785398, 0.0)\n    test 178 parse: (0.5, 0.5, 0.707)\n    test 179 cmp: 0\n    test 180 eq: True\n    test 181 ge: True\n    test 182 gt: False\n    test 183 le: True\n    test 184 lt: False\n    test 185 ne: False\n    test 186 *: (1.0, 1.0, 1.414)\n    test 187 +: (1.0, 1.0, 1.414)\n    test 188 /: (0.5, 0.5, 0.707)\n    test 189 -: (0.5, 0.5, 0.707)\n    test 190 @: (0.0, 0.0, 0.0)\n    test 191 @: (0.0, 0.0, 0.0)\n    test 192 rotate: (0.26268, 0.26268, 0.37143)\n    test 193 crosserrors: True\n    test 194 0: divisor (0): float division by zero\n    test 195 intersections2: (500.0, 0.0, 0.0)\n    test 196 nearestOn: (0.0, 0.0, 0.0)\n    test 197 nearestOn: True\n    test 198 nearestOn: (100.0, 100.0, 100.0)\n    test 199 nearestOn: True\n    test 200 iscolinearWith: False\n    test 201 iscolinearWith: True\n    test 202 nearestOn: (0.0, 0.0, 0.0)\n    test 203 nearestOn: True\n    test 204 nearestOn: (100.0, 100.0, 100.0)\n    test 205 nearestOn: True\n    test 206 iscolinearWith: False\n    test 207 iscolinearWith: True\n\n    testNvectorBase(pygeodesy.nvectorBase, 25.08.18)\n    test 208 sumOf: Vector4Tuple\n    test 209 ecef.x, .y, .z: 3185744.91853, 3185744.91853, 4504643.3148\n    test 210 ecef.lat, .lon: 44.995674, 45.0\n    test 211 ecef.height: -0.0\n    test 212 ecef.M: -0.707106781, -0.499962243, 0.500037754, 0.707106781, -0.499962243, 0.500037754, 0.0, 0.707160174, 0.707053385\n    test 213 .isEllipsoidal: False\n    test 214 .isSpherical: True\n    test 215 .latlon: (44.995674, 45.0)\n    test 216 .philam: (0.785323, 0.785398)\n    test 217 .latlonheight: (44.995674, 45.0, 0.0)\n    test 218 .philamheight: (0.785323, 0.785398, 0.0)\n    test 219 parse: (0.5, 0.5, 0.707)\n    test 220 cmp: 0\n    test 221 eq: True\n    test 222 ge: True\n    test 223 gt: False\n    test 224 le: True\n    test 225 lt: False\n    test 226 ne: False\n    test 227 *: (1.0, 1.0, 1.414)\n    test 228 +: (1.0, 1.0, 1.414)\n    test 229 /: (0.5, 0.5, 0.707)\n    test 230 -: (0.5, 0.5, 0.707)\n    test 231 @: (0.0, 0.0, 0.0)\n    test 232 @: (0.0, 0.0, 0.0)\n    test 233 rotate: (0.26268, 0.26268, 0.37143)\n    test 234 crosserrors: True\n    test 235 0: divisor (0): float division by zero\n    test 236 intersections2: (500.0, 0.0, 0.0)\n    test 237 nearestOn: (0.0, 0.0, 0.0)\n    test 238 nearestOn: True\n    test 239 nearestOn: (100.0, 100.0, 100.0)\n    test 240 nearestOn: True\n    test 241 iscolinearWith: False\n    test 242 iscolinearWith: True\n    test 243 nearestOn: (0.0, 0.0, 0.0)\n    test 244 nearestOn: True\n    test 245 nearestOn: (100.0, 100.0, 100.0)\n    test 246 nearestOn: True\n    test 247 iscolinearWith: False\n    test 248 iscolinearWith: True\n\n    testNvectorBase(pygeodesy.nvectorBase, 25.08.18)\n    test 249 sumOf: Vector4Tuple\n    test 250 ecef.x, .y, .z: 3194659.54086, 3194659.54086, 4487008.4122\n    test 251 ecef.lat, .lon: 44.995674, 45.0\n    test 252 ecef.height: -0.0\n    test 253 ecef.M: -0.707106781, -0.499962243, 0.500037754, 0.707106781, -0.499962243, 0.500037754, 0.0, 0.707160174, 0.707053385\n    test 254 .isEllipsoidal: True\n    test 255 .isSpherical: False\n    test 256 .latlon: (44.995674, 45.0)\n    test 257 .philam: (0.785323, 0.785398)\n    test 258 .latlonheight: (44.995674, 45.0, 0.0)\n    test 259 .philamheight: (0.785323, 0.785398, 0.0)\n    test 260 parse: (0.5, 0.5, 0.707)\n    test 261 cmp: 0\n    test 262 eq: True\n    test 263 ge: True\n    test 264 gt: False\n    test 265 le: True\n    test 266 lt: False\n    test 267 ne: False\n    test 268 *: (1.0, 1.0, 1.414)\n    test 269 +: (1.0, 1.0, 1.414)\n    test 270 /: (0.5, 0.5, 0.707)\n    test 271 -: (0.5, 0.5, 0.707)\n    test 272 @: (0.0, 0.0, 0.0)\n    test 273 @: (0.0, 0.0, 0.0)\n    test 274 rotate: (0.26268, 0.26268, 0.37143)\n    test 275 crosserrors: True\n    test 276 0: divisor (0): float division by zero\n    test 277 intersections2: (500.0, 0.0, 0.0)\n    test 278 nearestOn: (0.0, 0.0, 0.0)\n    test 279 nearestOn: True\n    test 280 nearestOn: (100.0, 100.0, 100.0)\n    test 281 nearestOn: True\n    test 282 iscolinearWith: False\n    test 283 iscolinearWith: True\n    test 284 nearestOn: (0.0, 0.0, 0.0)\n    test 285 nearestOn: True\n    test 286 nearestOn: (100.0, 100.0, 100.0)\n    test 287 nearestOn: True\n    test 288 iscolinearWith: False\n    test 289 iscolinearWith: True\n\n    testCartesian(pygeodesy.sphericalNvector, 25.05.27)\n    test 290 sphericalNvector.Cartesian.trilaterate3d2: 2\n    test 291 sphericalNvector.Cartesian 'trilaterate3d2': 119.8958, 130.6508, -5.1451\n    test 292 sphericalNvector.Cartesian 'trilaterate3d2': 119.9999, 129.9999, 30.0019\n    test 293 pygeodesy.vector3d.trilaterate3d2: 2\n    test 294 sphericalNvector.Cartesian 'trilaterate3d2': 24.31229, -2.52045, 1.53649\n    test 295 sphericalNvector.Cartesian 'trilaterate3d2': 24.35062, -2.48109, 1.66673\n    test 296 pygeodesy.vector3d.trilaterate3d2: center1 (Cartesian(22.59, 0.524, 1.2)), center2 (Cartesian(25.475, -6.124, 2.36)), center3 (Cartesian(22.59, 0.524, 1.2)), radius1 (3.851), radius2 (3.875) or radius3 (3.514): 'center1 and center3 near-concentric'\n    test 297 pygeodesy.vector3d.trilaterate3d2: center1 (Cartesian(27.297, -4.953, 1.47)), center2 (Cartesian(25.475, -6.124, 2.36)), center3 (Cartesian(22.59, 0.524, 1.2)), radius1 (0.3851), radius2 (0.3875) or radius3 (3.514): 'center1 and center2 too distant (2.34)'\n    test 298 pygeodesy.vector3d.trilaterate3d2: center1 (Cartesian(0.0, 0.0, 0.0)), center2 (Cartesian(0.0, 9.0, 0.0)), center3 (Cartesian(0.0, -9.0, 0.0)), radius1 (10), radius2 (10) or radius3 (10): 'colinear'\n    test 299 Cartesian.trilaterate3d2: 2\n    test 300 sphericalNvector.Cartesian 'trilaterate3d2': 24.31229, -2.52045, 1.53649\n    test 301 sphericalNvector.Cartesian 'trilaterate3d2': 24.35062, -2.48109, 1.66673\n    test 302 Cartesian.trilaterate3d2: center (Cartesian(22.59, 0.524, 1.2)), center2 (Cartesian(25.475, -6.124, 2.36)), center3 (Cartesian(22.59, 0.524, 1.2)), radius (3.851), radius2 (3.875) or radius3 (3.514): 'center and center3 near-concentric'\n    test 303 Cartesian.trilaterate3d2: center (Cartesian(27.297, -4.953, 1.47)), center2 (Cartesian(25.475, -6.124, 2.36)), center3 (Cartesian(22.59, 0.524, 1.2)), radius (0.3851), radius2 (0.3875) or radius3 (3.514): 'center and center2 too distant (2.34)'\n    test 304 Cartesian.trilaterate3d2: center (Cartesian(0.0, 0.0, 0.0)), center2 (Cartesian(0.0, 9.0, 0.0)), center3 (Cartesian(0.0, -9.0, 0.0)), radius (10), radius2 (10) or radius3 (10): 'colinear'\n\n    testCartesian(pygeodesy.sphericalTrigonometry, 25.08.31)\n    test 305 sphericalTrigonometry.Cartesian.trilaterate3d2: 2\n    test 306 sphericalTrigonometry.Cartesian 'trilaterate3d2': 119.8958, 130.6508, -5.1451\n    test 307 sphericalTrigonometry.Cartesian 'trilaterate3d2': 119.9999, 129.9999, 30.0019\n    test 308 pygeodesy.vector3d.trilaterate3d2: 2\n    test 309 sphericalTrigonometry.Cartesian 'trilaterate3d2': 24.31229, -2.52045, 1.53649\n    test 310 sphericalTrigonometry.Cartesian 'trilaterate3d2': 24.35062, -2.48109, 1.66673\n    test 311 pygeodesy.vector3d.trilaterate3d2: center1 (Cartesian(22.59, 0.524, 1.2)), center2 (Cartesian(25.475, -6.124, 2.36)), center3 (Cartesian(22.59, 0.524, 1.2)), radius1 (3.851), radius2 (3.875) or radius3 (3.514): 'center1 and center3 near-concentric'\n    test 312 pygeodesy.vector3d.trilaterate3d2: center1 (Cartesian(27.297, -4.953, 1.47)), center2 (Cartesian(25.475, -6.124, 2.36)), center3 (Cartesian(22.59, 0.524, 1.2)), radius1 (0.3851), radius2 (0.3875) or radius3 (3.514): 'center1 and center2 too distant (2.34)'\n    test 313 pygeodesy.vector3d.trilaterate3d2: center1 (Cartesian(0.0, 0.0, 0.0)), center2 (Cartesian(0.0, 9.0, 0.0)), center3 (Cartesian(0.0, -9.0, 0.0)), radius1 (10), radius2 (10) or radius3 (10): 'colinear'\n    test 314 Cartesian.trilaterate3d2: 2\n    test 315 sphericalTrigonometry.Cartesian 'trilaterate3d2': 24.31229, -2.52045, 1.53649\n    test 316 sphericalTrigonometry.Cartesian 'trilaterate3d2': 24.35062, -2.48109, 1.66673\n    test 317 Cartesian.trilaterate3d2: center (Cartesian(22.59, 0.524, 1.2)), center2 (Cartesian(25.475, -6.124, 2.36)), center3 (Cartesian(22.59, 0.524, 1.2)), radius (3.851), radius2 (3.875) or radius3 (3.514): 'center and center3 near-concentric'\n    test 318 Cartesian.trilaterate3d2: center (Cartesian(27.297, -4.953, 1.47)), center2 (Cartesian(25.475, -6.124, 2.36)), center3 (Cartesian(22.59, 0.524, 1.2)), radius (0.3851), radius2 (0.3875) or radius3 (3.514): 'center and center2 too distant (2.34)'\n    test 319 Cartesian.trilaterate3d2: center (Cartesian(0.0, 0.0, 0.0)), center2 (Cartesian(0.0, 9.0, 0.0)), center3 (Cartesian(0.0, -9.0, 0.0)), radius (10), radius2 (10) or radius3 (10): 'colinear'\n\n    testCartesian(pygeodesy.ellipsoidalNvector, 25.05.12)\n    test 320 ellipsoidalNvector.Cartesian.trilaterate3d2: 2\n    test 321 ellipsoidalNvector.Cartesian 'trilaterate3d2': 119.8958, 130.6508, -5.1451\n    test 322 ellipsoidalNvector.Cartesian 'trilaterate3d2': 119.9999, 129.9999, 30.0019\n    test 323 pygeodesy.vector3d.trilaterate3d2: 2\n    test 324 ellipsoidalNvector.Cartesian 'trilaterate3d2': 24.31229, -2.52045, 1.53649\n    test 325 ellipsoidalNvector.Cartesian 'trilaterate3d2': 24.35062, -2.48109, 1.66673\n    test 326 pygeodesy.vector3d.trilaterate3d2: center1 (Cartesian(22.59, 0.524, 1.2)), center2 (Cartesian(25.475, -6.124, 2.36)), center3 (Cartesian(22.59, 0.524, 1.2)), radius1 (3.851), radius2 (3.875) or radius3 (3.514): 'center1 and center3 near-concentric'\n    test 327 pygeodesy.vector3d.trilaterate3d2: center1 (Cartesian(27.297, -4.953, 1.47)), center2 (Cartesian(25.475, -6.124, 2.36)), center3 (Cartesian(22.59, 0.524, 1.2)), radius1 (0.3851), radius2 (0.3875) or radius3 (3.514): 'center1 and center2 too distant (2.34)'\n    test 328 pygeodesy.vector3d.trilaterate3d2: center1 (Cartesian(0.0, 0.0, 0.0)), center2 (Cartesian(0.0, 9.0, 0.0)), center3 (Cartesian(0.0, -9.0, 0.0)), radius1 (10), radius2 (10) or radius3 (10): 'colinear'\n    test 329 Cartesian.trilaterate3d2: 2\n    test 330 ellipsoidalNvector.Cartesian 'trilaterate3d2': 24.31229, -2.52045, 1.53649\n    test 331 ellipsoidalNvector.Cartesian 'trilaterate3d2': 24.35062, -2.48109, 1.66673\n    test 332 Cartesian.trilaterate3d2: center (Cartesian(22.59, 0.524, 1.2)), center2 (Cartesian(25.475, -6.124, 2.36)), center3 (Cartesian(22.59, 0.524, 1.2)), radius (3.851), radius2 (3.875) or radius3 (3.514): 'center and center3 near-concentric'\n    test 333 Cartesian.trilaterate3d2: center (Cartesian(27.297, -4.953, 1.47)), center2 (Cartesian(25.475, -6.124, 2.36)), center3 (Cartesian(22.59, 0.524, 1.2)), radius (0.3851), radius2 (0.3875) or radius3 (3.514): 'center and center2 too distant (2.34)'\n    test 334 Cartesian.trilaterate3d2: center (Cartesian(0.0, 0.0, 0.0)), center2 (Cartesian(0.0, 9.0, 0.0)), center3 (Cartesian(0.0, -9.0, 0.0)), radius (10), radius2 (10) or radius3 (10): 'colinear'\n\n    testCartesian(pygeodesy.ellipsoidalVincenty, 25.05.26)\n    test 335 ellipsoidalVincenty.Cartesian.trilaterate3d2: 2\n    test 336 ellipsoidalVincenty.Cartesian 'trilaterate3d2': 119.8958, 130.6508, -5.1451\n    test 337 ellipsoidalVincenty.Cartesian 'trilaterate3d2': 119.9999, 129.9999, 30.0019\n    test 338 pygeodesy.vector3d.trilaterate3d2: 2\n    test 339 ellipsoidalVincenty.Cartesian 'trilaterate3d2': 24.31229, -2.52045, 1.53649\n    test 340 ellipsoidalVincenty.Cartesian 'trilaterate3d2': 24.35062, -2.48109, 1.66673\n    test 341 pygeodesy.vector3d.trilaterate3d2: center1 (Cartesian(22.59, 0.524, 1.2)), center2 (Cartesian(25.475, -6.124, 2.36)), center3 (Cartesian(22.59, 0.524, 1.2)), radius1 (3.851), radius2 (3.875) or radius3 (3.514): 'center1 and center3 near-concentric'\n    test 342 pygeodesy.vector3d.trilaterate3d2: center1 (Cartesian(27.297, -4.953, 1.47)), center2 (Cartesian(25.475, -6.124, 2.36)), center3 (Cartesian(22.59, 0.524, 1.2)), radius1 (0.3851), radius2 (0.3875) or radius3 (3.514): 'center1 and center2 too distant (2.34)'\n    test 343 pygeodesy.vector3d.trilaterate3d2: center1 (Cartesian(0.0, 0.0, 0.0)), center2 (Cartesian(0.0, 9.0, 0.0)), center3 (Cartesian(0.0, -9.0, 0.0)), radius1 (10), radius2 (10) or radius3 (10): 'colinear'\n    test 344 Cartesian.trilaterate3d2: 2\n    test 345 ellipsoidalVincenty.Cartesian 'trilaterate3d2': 24.31229, -2.52045, 1.53649\n    test 346 ellipsoidalVincenty.Cartesian 'trilaterate3d2': 24.35062, -2.48109, 1.66673\n    test 347 Cartesian.trilaterate3d2: center (Cartesian(22.59, 0.524, 1.2)), center2 (Cartesian(25.475, -6.124, 2.36)), center3 (Cartesian(22.59, 0.524, 1.2)), radius (3.851), radius2 (3.875) or radius3 (3.514): 'center and center3 near-concentric'\n    test 348 Cartesian.trilaterate3d2: center (Cartesian(27.297, -4.953, 1.47)), center2 (Cartesian(25.475, -6.124, 2.36)), center3 (Cartesian(22.59, 0.524, 1.2)), radius (0.3851), radius2 (0.3875) or radius3 (3.514): 'center and center2 too distant (2.34)'\n    test 349 Cartesian.trilaterate3d2: center (Cartesian(0.0, 0.0, 0.0)), center2 (Cartesian(0.0, 9.0, 0.0)), center3 (Cartesian(0.0, -9.0, 0.0)), radius (10), radius2 (10) or radius3 (10): 'colinear'\n\n    testCartesian(pygeodesy.ellipsoidalKarney, 25.05.27)\n    test 350 ellipsoidalKarney.Cartesian.trilaterate3d2: 2\n    test 351 ellipsoidalKarney.Cartesian 'trilaterate3d2': 119.8958, 130.6508, -5.1451\n    test 352 ellipsoidalKarney.Cartesian 'trilaterate3d2': 119.9999, 129.9999, 30.0019\n    test 353 pygeodesy.vector3d.trilaterate3d2: 2\n    test 354 ellipsoidalKarney.Cartesian 'trilaterate3d2': 24.31229, -2.52045, 1.53649\n    test 355 ellipsoidalKarney.Cartesian 'trilaterate3d2': 24.35062, -2.48109, 1.66673\n    test 356 pygeodesy.vector3d.trilaterate3d2: center1 (Cartesian(22.59, 0.524, 1.2)), center2 (Cartesian(25.475, -6.124, 2.36)), center3 (Cartesian(22.59, 0.524, 1.2)), radius1 (3.851), radius2 (3.875) or radius3 (3.514): 'center1 and center3 near-concentric'\n    test 357 pygeodesy.vector3d.trilaterate3d2: center1 (Cartesian(27.297, -4.953, 1.47)), center2 (Cartesian(25.475, -6.124, 2.36)), center3 (Cartesian(22.59, 0.524, 1.2)), radius1 (0.3851), radius2 (0.3875) or radius3 (3.514): 'center1 and center2 too distant (2.34)'\n    test 358 pygeodesy.vector3d.trilaterate3d2: center1 (Cartesian(0.0, 0.0, 0.0)), center2 (Cartesian(0.0, 9.0, 0.0)), center3 (Cartesian(0.0, -9.0, 0.0)), radius1 (10), radius2 (10) or radius3 (10): 'colinear'\n    test 359 Cartesian.trilaterate3d2: 2\n    test 360 ellipsoidalKarney.Cartesian 'trilaterate3d2': 24.31229, -2.52045, 1.53649\n    test 361 ellipsoidalKarney.Cartesian 'trilaterate3d2': 24.35062, -2.48109, 1.66673\n    test 362 Cartesian.trilaterate3d2: center (Cartesian(22.59, 0.524, 1.2)), center2 (Cartesian(25.475, -6.124, 2.36)), center3 (Cartesian(22.59, 0.524, 1.2)), radius (3.851), radius2 (3.875) or radius3 (3.514): 'center and center3 near-concentric'\n    test 363 Cartesian.trilaterate3d2: center (Cartesian(27.297, -4.953, 1.47)), center2 (Cartesian(25.475, -6.124, 2.36)), center3 (Cartesian(22.59, 0.524, 1.2)), radius (0.3851), radius2 (0.3875) or radius3 (3.514): 'center and center2 too distant (2.34)'\n    test 364 Cartesian.trilaterate3d2: center (Cartesian(0.0, 0.0, 0.0)), center2 (Cartesian(0.0, 9.0, 0.0)), center3 (Cartesian(0.0, -9.0, 0.0)), radius (10), radius2 (10) or radius3 (10): 'colinear'\n\n    testCartesian(pygeodesy.ellipsoidalExact, 25.08.28)\n    test 365 ellipsoidalExact.Cartesian.trilaterate3d2: 2\n    test 366 ellipsoidalExact.Cartesian 'trilaterate3d2': 119.8958, 130.6508, -5.1451\n    test 367 ellipsoidalExact.Cartesian 'trilaterate3d2': 119.9999, 129.9999, 30.0019\n    test 368 pygeodesy.vector3d.trilaterate3d2: 2\n    test 369 ellipsoidalExact.Cartesian 'trilaterate3d2': 24.31229, -2.52045, 1.53649\n    test 370 ellipsoidalExact.Cartesian 'trilaterate3d2': 24.35062, -2.48109, 1.66673\n    test 371 pygeodesy.vector3d.trilaterate3d2: center1 (Cartesian(22.59, 0.524, 1.2)), center2 (Cartesian(25.475, -6.124, 2.36)), center3 (Cartesian(22.59, 0.524, 1.2)), radius1 (3.851), radius2 (3.875) or radius3 (3.514): 'center1 and center3 near-concentric'\n    test 372 pygeodesy.vector3d.trilaterate3d2: center1 (Cartesian(27.297, -4.953, 1.47)), center2 (Cartesian(25.475, -6.124, 2.36)), center3 (Cartesian(22.59, 0.524, 1.2)), radius1 (0.3851), radius2 (0.3875) or radius3 (3.514): 'center1 and center2 too distant (2.34)'\n    test 373 pygeodesy.vector3d.trilaterate3d2: center1 (Cartesian(0.0, 0.0, 0.0)), center2 (Cartesian(0.0, 9.0, 0.0)), center3 (Cartesian(0.0, -9.0, 0.0)), radius1 (10), radius2 (10) or radius3 (10): 'colinear'\n    test 374 Cartesian.trilaterate3d2: 2\n    test 375 ellipsoidalExact.Cartesian 'trilaterate3d2': 24.31229, -2.52045, 1.53649\n    test 376 ellipsoidalExact.Cartesian 'trilaterate3d2': 24.35062, -2.48109, 1.66673\n    test 377 Cartesian.trilaterate3d2: center (Cartesian(22.59, 0.524, 1.2)), center2 (Cartesian(25.475, -6.124, 2.36)), center3 (Cartesian(22.59, 0.524, 1.2)), radius (3.851), radius2 (3.875) or radius3 (3.514): 'center and center3 near-concentric'\n    test 378 Cartesian.trilaterate3d2: center (Cartesian(27.297, -4.953, 1.47)), center2 (Cartesian(25.475, -6.124, 2.36)), center3 (Cartesian(22.59, 0.524, 1.2)), radius (0.3851), radius2 (0.3875) or radius3 (3.514): 'center and center2 too distant (2.34)'\n    test 379 Cartesian.trilaterate3d2: center (Cartesian(0.0, 0.0, 0.0)), center2 (Cartesian(0.0, 9.0, 0.0)), center3 (Cartesian(0.0, -9.0, 0.0)), radius (10), radius2 (10) or radius3 (10): 'colinear'\n\n    testCartesian(pygeodesy.ellipsoidalGeodSolve, 25.08.28)\n    test 380 ellipsoidalGeodSolve.Cartesian.trilaterate3d2: 2\n    test 381 ellipsoidalGeodSolve.Cartesian 'trilaterate3d2': 119.8958, 130.6508, -5.1451\n    test 382 ellipsoidalGeodSolve.Cartesian 'trilaterate3d2': 119.9999, 129.9999, 30.0019\n    test 383 pygeodesy.vector3d.trilaterate3d2: 2\n    test 384 ellipsoidalGeodSolve.Cartesian 'trilaterate3d2': 24.31229, -2.52045, 1.53649\n    test 385 ellipsoidalGeodSolve.Cartesian 'trilaterate3d2': 24.35062, -2.48109, 1.66673\n    test 386 pygeodesy.vector3d.trilaterate3d2: center1 (Cartesian(22.59, 0.524, 1.2)), center2 (Cartesian(25.475, -6.124, 2.36)), center3 (Cartesian(22.59, 0.524, 1.2)), radius1 (3.851), radius2 (3.875) or radius3 (3.514): 'center1 and center3 near-concentric'\n    test 387 pygeodesy.vector3d.trilaterate3d2: center1 (Cartesian(27.297, -4.953, 1.47)), center2 (Cartesian(25.475, -6.124, 2.36)), center3 (Cartesian(22.59, 0.524, 1.2)), radius1 (0.3851), radius2 (0.3875) or radius3 (3.514): 'center1 and center2 too distant (2.34)'\n    test 388 pygeodesy.vector3d.trilaterate3d2: center1 (Cartesian(0.0, 0.0, 0.0)), center2 (Cartesian(0.0, 9.0, 0.0)), center3 (Cartesian(0.0, -9.0, 0.0)), radius1 (10), radius2 (10) or radius3 (10): 'colinear'\n    test 389 Cartesian.trilaterate3d2: 2\n    test 390 ellipsoidalGeodSolve.Cartesian 'trilaterate3d2': 24.31229, -2.52045, 1.53649\n    test 391 ellipsoidalGeodSolve.Cartesian 'trilaterate3d2': 24.35062, -2.48109, 1.66673\n    test 392 Cartesian.trilaterate3d2: center (Cartesian(22.59, 0.524, 1.2)), center2 (Cartesian(25.475, -6.124, 2.36)), center3 (Cartesian(22.59, 0.524, 1.2)), radius (3.851), radius2 (3.875) or radius3 (3.514): 'center and center3 near-concentric'\n    test 393 Cartesian.trilaterate3d2: center (Cartesian(27.297, -4.953, 1.47)), center2 (Cartesian(25.475, -6.124, 2.36)), center3 (Cartesian(22.59, 0.524, 1.2)), radius (0.3851), radius2 (0.3875) or radius3 (3.514): 'center and center2 too distant (2.34)'\n    test 394 Cartesian.trilaterate3d2: center (Cartesian(0.0, 0.0, 0.0)), center2 (Cartesian(0.0, 9.0, 0.0)), center3 (Cartesian(0.0, -9.0, 0.0)), radius (10), radius2 (10) or radius3 (10): 'colinear'\n\n    testCartesianBase(pygeodesy.cartesianBase, 26.01.06)\n    test 395 cartesianBase.CartesianBase.trilaterate3d2: 2\n    test 396 cartesianBase.CartesianBase 'trilaterate3d2': 119.8958, 130.6508, -5.1451\n    test 397 cartesianBase.CartesianBase 'trilaterate3d2': 119.9999, 129.9999, 30.0019\n    test 398 pygeodesy.vector3d.trilaterate3d2: 2\n    test 399 cartesianBase.CartesianBase 'trilaterate3d2': 24.31229, -2.52045, 1.53649\n    test 400 cartesianBase.CartesianBase 'trilaterate3d2': 24.35062, -2.48109, 1.66673\n    test 401 pygeodesy.vector3d.trilaterate3d2: center1 (CartesianBase(22.59, 0.524, 1.2)), center2 (CartesianBase(25.475, -6.124, 2.36)), center3 (CartesianBase(22.59, 0.524, 1.2)), radius1 (3.851), radius2 (3.875) or radius3 (3.514): 'center1 and center3 near-concentric'\n    test 402 pygeodesy.vector3d.trilaterate3d2: center1 (CartesianBase(27.297, -4.953, 1.47)), center2 (CartesianBase(25.475, -6.124, 2.36)), center3 (CartesianBase(22.59, 0.524, 1.2)), radius1 (0.3851), radius2 (0.3875) or radius3 (3.514): 'center1 and center2 too distant (2.34)'\n    test 403 pygeodesy.vector3d.trilaterate3d2: center1 (CartesianBase(0.0, 0.0, 0.0)), center2 (CartesianBase(0.0, 9.0, 0.0)), center3 (CartesianBase(0.0, -9.0, 0.0)), radius1 (10), radius2 (10) or radius3 (10): 'colinear'\n    test 404 CartesianBase.trilaterate3d2: 2\n    test 405 cartesianBase.CartesianBase 'trilaterate3d2': 24.31229, -2.52045, 1.53649\n    test 406 cartesianBase.CartesianBase 'trilaterate3d2': 24.35062, -2.48109, 1.66673\n    test 407 CartesianBase.trilaterate3d2: center (CartesianBase(22.59, 0.524, 1.2)), center2 (CartesianBase(25.475, -6.124, 2.36)), center3 (CartesianBase(22.59, 0.524, 1.2)), radius (3.851), radius2 (3.875) or radius3 (3.514): 'center and center3 near-concentric'\n    test 408 CartesianBase.trilaterate3d2: center (CartesianBase(27.297, -4.953, 1.47)), center2 (CartesianBase(25.475, -6.124, 2.36)), center3 (CartesianBase(22.59, 0.524, 1.2)), radius (0.3851), radius2 (0.3875) or radius3 (3.514): 'center and center2 too distant (2.34)'\n    test 409 CartesianBase.trilaterate3d2: center (CartesianBase(0.0, 0.0, 0.0)), center2 (CartesianBase(0.0, 9.0, 0.0)), center3 (CartesianBase(0.0, -9.0, 0.0)), radius (10), radius2 (10) or radius3 (10): 'colinear'\n\n    testNvectorBase(pygeodesy.nvectorBase, 25.08.18)\n    test 410 nvectorBase.NvectorBase.trilaterate3d2: 2\n    test 411 nvectorBase.NvectorBase 'trilaterate3d2': 119.8958, 130.6508, -5.1451\n    test 412 nvectorBase.NvectorBase 'trilaterate3d2': 119.9999, 129.9999, 30.0019\n    test 413 pygeodesy.vector3d.trilaterate3d2: 2\n    test 414 nvectorBase.NvectorBase 'trilaterate3d2': 24.31229, -2.52045, 1.53649\n    test 415 nvectorBase.NvectorBase 'trilaterate3d2': 24.35062, -2.48109, 1.66673\n    test 416 pygeodesy.vector3d.trilaterate3d2: center1 (NvectorBase(22.59, 0.524, 1.2)), center2 (NvectorBase(25.475, -6.124, 2.36)), center3 (NvectorBase(22.59, 0.524, 1.2)), radius1 (3.851), radius2 (3.875) or radius3 (3.514): 'center1 and center3 near-concentric'\n    test 417 pygeodesy.vector3d.trilaterate3d2: center1 (NvectorBase(27.297, -4.953, 1.47)), center2 (NvectorBase(25.475, -6.124, 2.36)), center3 (NvectorBase(22.59, 0.524, 1.2)), radius1 (0.3851), radius2 (0.3875) or radius3 (3.514): 'center1 and center2 too distant (2.34)'\n    test 418 pygeodesy.vector3d.trilaterate3d2: center1 (NvectorBase(0.0, 0.0, 0.0)), center2 (NvectorBase(0.0, 9.0, 0.0)), center3 (NvectorBase(0.0, -9.0, 0.0)), radius1 (10), radius2 (10) or radius3 (10): 'colinear'\n    test 419 NvectorBase.trilaterate3d2: 2\n    test 420 nvectorBase.NvectorBase 'trilaterate3d2': 24.31229, -2.52045, 1.53649\n    test 421 nvectorBase.NvectorBase 'trilaterate3d2': 24.35062, -2.48109, 1.66673\n    test 422 NvectorBase.trilaterate3d2: center (NvectorBase(22.59, 0.524, 1.2)), center2 (NvectorBase(25.475, -6.124, 2.36)), center3 (NvectorBase(22.59, 0.524, 1.2)), radius (3.851), radius2 (3.875) or radius3 (3.514): 'center and center3 near-concentric'\n    test 423 NvectorBase.trilaterate3d2: center (NvectorBase(27.297, -4.953, 1.47)), center2 (NvectorBase(25.475, -6.124, 2.36)), center3 (NvectorBase(22.59, 0.524, 1.2)), radius (0.3851), radius2 (0.3875) or radius3 (3.514): 'center and center2 too distant (2.34)'\n    test 424 NvectorBase.trilaterate3d2: center (NvectorBase(0.0, 0.0, 0.0)), center2 (NvectorBase(0.0, 9.0, 0.0)), center3 (NvectorBase(0.0, -9.0, 0.0)), radius (10), radius2 (10) or radius3 (10): 'colinear'\n\n    testVector3d(pygeodesy.vector2d, 26.02.27)\n    test 425 vector3d.Vector3d.trilaterate3d2: 2\n    test 426 vector3d.Vector3d 'trilaterate3d2': 119.8958, 130.6508, -5.1451\n    test 427 vector3d.Vector3d 'trilaterate3d2': 119.9999, 129.9999, 30.0019\n    test 428 pygeodesy.vector3d.trilaterate3d2: 2\n    test 429 vector3d.Vector3d 'trilaterate3d2': 24.31229, -2.52045, 1.53649\n    test 430 vector3d.Vector3d 'trilaterate3d2': 24.35062, -2.48109, 1.66673\n    test 431 pygeodesy.vector3d.trilaterate3d2: center1 (Vector3d(22.59, 0.524, 1.2)), center2 (Vector3d(25.475, -6.124, 2.36)), center3 (Vector3d(22.59, 0.524, 1.2)), radius1 (3.851), radius2 (3.875) or radius3 (3.514): 'center1 and center3 near-concentric'\n    test 432 pygeodesy.vector3d.trilaterate3d2: center1 (Vector3d(27.297, -4.953, 1.47)), center2 (Vector3d(25.475, -6.124, 2.36)), center3 (Vector3d(22.59, 0.524, 1.2)), radius1 (0.3851), radius2 (0.3875) or radius3 (3.514): 'center1 and center2 too distant (2.34)'\n    test 433 pygeodesy.vector3d.trilaterate3d2: center1 (Vector3d(0.0, 0.0, 0.0)), center2 (Vector3d(0.0, 9.0, 0.0)), center3 (Vector3d(0.0, -9.0, 0.0)), radius1 (10), radius2 (10) or radius3 (10): 'colinear'\n    test 434 Vector3d.trilaterate3d2: 2\n    test 435 vector3d.Vector3d 'trilaterate3d2': 24.31229, -2.52045, 1.53649\n    test 436 vector3d.Vector3d 'trilaterate3d2': 24.35062, -2.48109, 1.66673\n    test 437 Vector3d.trilaterate3d2: center (Vector3d(22.59, 0.524, 1.2)), center2 (Vector3d(25.475, -6.124, 2.36)), center3 (Vector3d(22.59, 0.524, 1.2)), radius (3.851), radius2 (3.875) or radius3 (3.514): 'center and center3 near-concentric'\n    test 438 Vector3d.trilaterate3d2: center (Vector3d(27.297, -4.953, 1.47)), center2 (Vector3d(25.475, -6.124, 2.36)), center3 (Vector3d(22.59, 0.524, 1.2)), radius (0.3851), radius2 (0.3875) or radius3 (3.514): 'center and center2 too distant (2.34)'\n    test 439 Vector3d.trilaterate3d2: center (Vector3d(0.0, 0.0, 0.0)), center2 (Vector3d(0.0, 9.0, 0.0)), center3 (Vector3d(0.0, -9.0, 0.0)), radius (10), radius2 (10) or radius3 (10): 'colinear'\n\n    testTrilaterate2d2(pygeodesy.vector2d, 26.02.27)\n    test 440 trilaterate2d2: (2.0, 3.0)\n    test 441 trilaterate2d2: 'delta (6.39335377062e-06), radius1 (1.0), distance (1.00000639335) and trilaterate2d2(x=1.999994, y=3.000006)': exceeds eps (2.22045e-16)\n    test 442 trilaterate2d2: (-500.0, 250.0)\n    test 443 meeus2: 2.236, 3.0, 2.0, 0.0\n    test 444 meeus2: (3.0, 2.0, 0)\n    test 445 circum3: 2.2361\n    test 446 circum3: (3.0, 2.0, 0)\n    test 447 circum3: None\n    test 448 circum4_: 2.2361\n    test 449 circum4_: (3.0, 2.0, 0.0)  FAILED, KNOWN, expected (3.0, 2.0, 0)\n    test 450 circum4_: 3\n    test 451 circum4_: ()\n    test 452 radii11: Radii11Tuple(rA=2.236068, rB=0.92621, rC=2.236068, cR=2.236068, rIn=0.92621, riS=0.24193, roS=INF, a=3.162278, b=4.472136, c=3.162278, s=5.398346)\n    test 453 circin6: Circin6Tuple(radius=0.92621, center=Vector3d(2.58579, 2.82843, 0.0), deltas=None, cA=Vector3d(2.87868, 3.70711, 0.0), cB=Vector3d(3.0, 2.0, 0.0), cC=Vector3d(1.70711, 3.12132, 0.0))\n    test 454 soddy4: Soddy4Tuple(radius=0.24193, center=Vector3d(2.52241, 2.95518, 0), deltas=None, outer=INF)\n\n    testTrilaterate3d2(pygeodesy.vector2d, 26.02.27)\n    test 455 pygeodesy.vector2d.trilaterate3d2: center1 (Vector3d(-500.0, -200.0, 0.0)), center2 (Vector3d(100.0, -100.0, 0.0)), center3 (Vector3d(500.0, 100.0, 0.0)), radius1 (450.0), radius2 (694.6221994724903) or radius3 (1011.1874208078342): 'no intersection'\n    test 456 pygeodesy.vector2d.trilaterate3d2: 2\n    test 457 vector3d.Vector3d 'trilaterate3d2': -500.0, 250.0, -0.01311  FAILED, KNOWN, expected -500.0, 250.0, 0.0\n    test 458 vector3d.Vector3d 'trilaterate3d2': -500.0, 250.0, 0.01311  FAILED, KNOWN, expected -500.0, 250.0, 0.0\n    test 459 meeus2: 1.50\n    test 460 meeus2: None\n    test 461 meeus2: -0.000000035, 0.5, 0.000000035  FAILED, KNOWN, expected 0.0, 0.5, 0.0\n    test 462 meeus2: 0.000000035, 0.5, -0.000000035  FAILED, KNOWN, expected 0.0, 0.5, 0.0\n    test 463 circum3: 1.50\n    test 464 circum3: 0.0, 0.5, -0.0  FAILED, KNOWN, expected 0.0, 0.5, 0.0\n    test 465 circum3: None\n    test 466 circum4_: 1.50\n    test 467 circum4_: -0.0, 0.5, -0.0  FAILED, KNOWN, expected 0.0, 0.5, 0.0\n    test 468 circum4_: 3\n    test 469 circum4_: ()\n    test 470 radii11: Radii11Tuple(rA=1.414214, rB=1.035276, rC=1.414214, cR=1.5, rIn=0.732051, riS=0.195611, roS=INF, a=2.44949, b=2.828427, c=2.44949, s=3.863703)\n    test 471 circin6: Circin6Tuple(radius=0.732051, center=Vector3d(-0.0, 0.73205, 0.0), deltas=None, cA=Vector3d(0.42265, 1.1547, 0.42265), cB=Vector3d(0.0, 0.0, 0.0), cC=Vector3d(-0.42265, 1.1547, -0.42265))\n    test 472 soddy4: Soddy4Tuple(radius=0.195611, center=Vector3d(0.0, 0.76911, -0.0), deltas=None, outer=INF)\n\n    testIntersection3d3(pygeodesy.vector3d, 25.05.07)\n    test 473 (30, 17): (Vector3d(30.30584, 16.75258, 0.0), 0, 0)\n    test 474 (-1,  3): (Vector3d(-1.0429, 2.92225, 0.0), -1, -2)\n    test 475 (65, 32): (Vector3d(64.86667, 32.0, 0.0), 1, -2)\n    test 476 (-2, 17): <class 'pygeodesy.errors.IntersectionError'>\n    test 477 (49, 25): (Vector3d(49.0, 25.0, 0.0), 0, 0)\n\n    test 478 at 0: (0.0, 50.0, 0.0)\n    test 479 at 3: (2.6168, 49.93148, 0.0)\n    test 480 at 6: (5.22642, 49.72609, 0.0)\n    test 481 at 9: (7.82172, 49.38442, 0.0)\n    test 482 at 12: (10.39558, 48.90738, 0.0)\n    test 483 at 15: (12.94095, 48.29629, 0.0)\n    test 484 at 18: (15.45085, 47.55283, 0.0)\n    test 485 at 21: (17.9184, 46.67902, 0.0)\n    test 486 at 24: (20.33683, 45.67727, 0.0)\n    test 487 at 27: (22.69952, 44.55033, 0.0)\n    test 488 at 30: (25.0, 43.30127, 0.0)\n    test 489 at 33: (27.23195, 41.93353, 0.0)\n    test 490 at 36: (29.38926, 40.45085, 0.0)\n    test 491 at 39: (31.46602, 38.8573, 0.0)\n    test 492 at 42: (33.45653, 37.15724, 0.0)\n    test 493 at 45: (35.35534, 35.35534, 0.0)\n    test 494 at 48: (37.15724, 33.45653, 0.0)\n    test 495 at 51: (38.8573, 31.46602, 0.0)\n    test 496 at 54: (40.45085, 29.38926, 0.0)\n    test 497 at 57: (41.93353, 27.23195, 0.0)\n    test 498 at 60: (43.30127, 25.0, 0.0)\n    test 499 at 63: (44.55033, 22.69952, 0.0)\n    test 500 at 66: (45.67727, 20.33683, 0.0)\n    test 501 at 69: (46.67902, 17.9184, 0.0)\n    test 502 at 72: (47.55283, 15.45085, 0.0)\n    test 503 at 75: (48.29629, 12.94095, 0.0)\n    test 504 at 78: (48.90738, 10.39558, 0.0)\n    test 505 at 81: (49.38442, 7.82172, 0.0)\n    test 506 at 84: (49.72609, 5.22642, 0.0)\n    test 507 at 87: (49.93148, 2.6168, 0.0)\n    test 508 at 90: (50.0, 0.0, 0.0)\n    test 509 at 93: (49.93148, -2.6168, 0.0)\n    test 510 at 96: (49.72609, -5.22642, 0.0)\n    test 511 at 99: (49.38442, -7.82172, 0.0)\n    test 512 at 102: (48.90738, -10.39558, 0.0)\n    test 513 at 105: (48.29629, -12.94095, 0.0)\n    test 514 at 108: (47.55283, -15.45085, 0.0)\n    test 515 at 111: (46.67902, -17.9184, 0.0)\n    test 516 at 114: (45.67727, -20.33683, 0.0)\n    test 517 at 117: (44.55033, -22.69952, 0.0)\n    test 518 at 120: (43.30127, -25.0, 0.0)\n    test 519 at 123: (41.93353, -27.23195, 0.0)\n    test 520 at 126: (40.45085, -29.38926, 0.0)\n    test 521 at 129: (38.8573, -31.46602, 0.0)\n    test 522 at 132: (37.15724, -33.45653, 0.0)\n    test 523 at 135: (35.35534, -35.35534, 0.0)\n    test 524 at 138: (33.45653, -37.15724, 0.0)\n    test 525 at 141: (31.46602, -38.8573, 0.0)\n    test 526 at 144: (29.38926, -40.45085, 0.0)\n    test 527 at 147: (27.23195, -41.93353, 0.0)\n    test 528 at 150: (25.0, -43.30127, 0.0)\n    test 529 at 153: (22.69952, -44.55033, 0.0)\n    test 530 at 156: (20.33683, -45.67727, 0.0)\n    test 531 at 159: (17.9184, -46.67902, 0.0)\n    test 532 at 162: (15.45085, -47.55283, 0.0)\n    test 533 at 165: (12.94095, -48.29629, 0.0)\n    test 534 at 168: (10.39558, -48.90738, 0.0)\n    test 535 at 171: (7.82172, -49.38442, 0.0)\n    test 536 at 174: (5.22642, -49.72609, 0.0)\n    test 537 at 177: (2.6168, -49.93148, 0.0)\n    test 538 at 180: (0.0, -50.0, 0.0)\n    test 539 at 183: (-2.6168, -49.93148, 0.0)\n    test 540 at 186: (-5.22642, -49.72609, 0.0)\n    test 541 at 189: (-7.82172, -49.38442, 0.0)\n    test 542 at 192: (-10.39558, -48.90738, 0.0)\n    test 543 at 195: (-12.94095, -48.29629, 0.0)\n    test 544 at 198: (-15.45085, -47.55283, 0.0)\n    test 545 at 201: (-17.9184, -46.67902, 0.0)\n    test 546 at 204: (-20.33683, -45.67727, 0.0)\n    test 547 at 207: (-22.69952, -44.55033, 0.0)\n    test 548 at 210: (-25.0, -43.30127, 0.0)\n    test 549 at 213: (-27.23195, -41.93353, 0.0)\n    test 550 at 216: (-29.38926, -40.45085, 0.0)\n    test 551 at 219: (-31.46602, -38.8573, 0.0)\n    test 552 at 222: (-33.45653, -37.15724, 0.0)\n    test 553 at 225: (-35.35534, -35.35534, 0.0)\n    test 554 at 228: (-37.15724, -33.45653, 0.0)\n    test 555 at 231: (-38.8573, -31.46602, 0.0)\n    test 556 at 234: (-40.45085, -29.38926, 0.0)\n    test 557 at 237: (-41.93353, -27.23195, 0.0)\n    test 558 at 240: (-43.30127, -25.0, 0.0)\n    test 559 at 243: (-44.55033, -22.69952, 0.0)\n    test 560 at 246: (-45.67727, -20.33683, 0.0)\n    test 561 at 249: (-46.67902, -17.9184, 0.0)\n    test 562 at 252: (-47.55283, -15.45085, 0.0)\n    test 563 at 255: (-48.29629, -12.94095, 0.0)\n    test 564 at 258: (-48.90738, -10.39558, 0.0)\n    test 565 at 261: (-49.38442, -7.82172, 0.0)\n    test 566 at 264: (-49.72609, -5.22642, 0.0)\n    test 567 at 267: (-49.93148, -2.6168, 0.0)\n    test 568 at 270: (-50.0, 0.0, 0.0)\n    test 569 at 273: (-49.93148, 2.6168, 0.0)\n    test 570 at 276: (-49.72609, 5.22642, 0.0)\n    test 571 at 279: (-49.38442, 7.82172, 0.0)\n    test 572 at 282: (-48.90738, 10.39558, 0.0)\n    test 573 at 285: (-48.29629, 12.94095, 0.0)\n    test 574 at 288: (-47.55283, 15.45085, 0.0)\n    test 575 at 291: (-46.67902, 17.9184, 0.0)\n    test 576 at 294: (-45.67727, 20.33683, 0.0)\n    test 577 at 297: (-44.55033, 22.69952, 0.0)\n    test 578 at 300: (-43.30127, 25.0, 0.0)\n    test 579 at 303: (-41.93353, 27.23195, 0.0)\n    test 580 at 306: (-40.45085, 29.38926, 0.0)\n    test 581 at 309: (-38.8573, 31.46602, 0.0)\n    test 582 at 312: (-37.15724, 33.45653, 0.0)\n    test 583 at 315: (-35.35534, 35.35534, 0.0)\n    test 584 at 318: (-33.45653, 37.15724, 0.0)\n    test 585 at 321: (-31.46602, 38.8573, 0.0)\n    test 586 at 324: (-29.38926, 40.45085, 0.0)\n    test 587 at 327: (-27.23195, 41.93353, 0.0)\n    test 588 at 330: (-25.0, 43.30127, 0.0)\n    test 589 at 333: (-22.69952, 44.55033, 0.0)\n    test 590 at 336: (-20.33683, 45.67727, 0.0)\n    test 591 at 339: (-17.9184, 46.67902, 0.0)\n    test 592 at 342: (-15.45085, 47.55283, 0.0)\n    test 593 at 345: (-12.94095, 48.29629, 0.0)\n    test 594 at 348: (-10.39558, 48.90738, 0.0)\n    test 595 at 351: (-7.82172, 49.38442, 0.0)\n    test 596 at 354: (-5.22642, 49.72609, 0.0)\n    test 597 at 357: (-2.6168, 49.93148, 0.0)\n    test 598 at 360: (0.0, 50.0, 0.0)\n    test 599 max error: 2.4343737502e-13\n\n    51 of 599 testVectorial.py tests (8.5%) FAILED, incl. 14 KNOWN plus 37 DeprecationWarnings (pygeodesy 26.3.26 Python 3.13.12 64bit arm64 coverage 7.10.7 geographiclib 2.1 numpy 2.3.3 scipy 1.16.2 Math 2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 macOS 26.3.1 isLazy 1 -W  default) 367.606 ms\nrunning /Library/Framewo....n3.13 -W default ~/PyGeodesy/test/testWebMercator.py\n\n    testing testWebMercator.py 23.06.12 (module pygeodesy.webmercator 25.05.12) isLazy=1\n    test 1 toWm1: -626172.13571216 6887893.4928338\n    test 2 Wm1.y: 6887893.49283380\n    test 3 copy(<class 'type'>): (<class 'pygeodesy.webmercator.Wm'>, True)\n    test 4 Wm.copy(): (<class 'pygeodesy.webmercator.Wm'>, True)\n    test 5 Wm2: 448251.795 5411932.678\n    test 6 Wm2: 448252 5411933\n    test 7 Wm2: 448251.8 5411932.7\n    test 8 copy(<class 'type'>): (<class 'pygeodesy.webmercator.Wm'>, True)\n    test 9 Wm.copy(): (<class 'pygeodesy.webmercator.Wm'>, True)\n    test 10 Wm2.to2ll: 43.65321741, 4.02671439\n    test 11 Wm2.toLatLon: (43.653217, 4.026714, Datum(name='_Wm', ellipsoid=Ellipsoids._Wm, transform=Transforms.Identity))\n    test 12 Wm2.toLatLon: 43.653217°N, 004.026714°E\n    test 13 Wm2.toLatLon: 43°39′11.58″N, 004°01′36.17″E\n    test 14 toWm1: 448251.795 5411932.678\n    test 15 toWm2: 448252 5411933\n    test 16 toWm3: [x:448252, y:5411933, radius:6378137]\n    test 17 copy: 448251.795 5411932.678\n    test 18 parse: 448251.795 5411932.678\n    test 19 parse: 448251.795 5411932.678\n    test 20 parse: [x:448251.795, y:5411932.678, radius:6378137.0]\n    test 21 toWm4: 11549466 1505215\n    test 22 toWm4: 11549465.988273 1505214.929251\n    test 23 toWm4E: 11562388 1496994\n    test 24 toWm4E: 11562388.154378 1496993.698095\n    test 25 toWm: -11169056 2800000\n    test 26 toWm: -11169055.576258 2800000.003136\n    test 27 toWm5E: -11169056 2782367\n    test 28 toWm5E: -11169055.576258 2782367.05923\n    test 29 toWm5: -11156573 2796871\n    test 30 toWm5: -11156573.000041 2796870.713179\n    test 31 Wm6.toLatLon: 24.46358°N, 100.333333°W\n    test 32 Wm6.toLatLon: 24°27′48.89″N, 100°20′00.0″W\n    test 33 Wm6.toLatLonE: 24.299812°N, 100.333333°W\n    test 34 Wm6.toLatLonE: 24°17′59.32″N, 100°20′00.0″W\n    test 35 Wm7.toLatLon: 24.381787°N, 100.333333°W\n    test 36 Wm7.toLatLon: 24°22′54.43″N, 100°20′00.0″W\n    test 37 Wm7.toLatLonE: 24.218566°N, 100.333333°W\n    test 38 Wm7.toLatLonE: 24°13′06.84″N, 100°20′00.0″W\n    test 39 Wm8.toWm: -33878.893, 6693890.382, 6378137.0\n    test 40 Wm8.toWm: [x:-33878.893, y:6693890.382]\n    test 41 Wm8.toWm: -33878.893 6693890.382 6371008.771\n    test 42 Wm8.toWm.x: -33878.893\n    test 43 Wm8.toWm.y: 6693890.382\n    test 44 Wm8.toWm.latlon: 51.408596, -0.304339\n    test 45 Wm8.toWm.philam: 0.897249, -0.005312\n    test 46 Wm8.toLatLon: 51.408596053784°N, 000.304339270785°W\n    test 47 Wm8.toLatLon: 51°24′30.945794″N, 000°18′15.621375″W\n    test 48 Wm9.toLatLon: TypeError\n\n    test 49 toWm(10.0000, 0, earth=R_MA).y: 1118889.97\n    test 50 toWm(20.0000, 0, earth=R_MA).y: 2273030.93\n    test 51 toWm(30.0000, 0, earth=R_MA).y: 3503549.84\n    test 52 toWm(40.0000, 0, earth=R_MA).y: 4865942.28\n    test 53 toWm(50.0000, 0, earth=R_MA).y: 6446275.84\n    test 54 toWm(60.0000, 0, earth=R_MA).y: 8399737.89\n\n    test 55 toWm(10.0003, 0, earth=R_MA).y: 1118921.37\n    test 56 toWm(20.0003, 0, earth=R_MA).y: 2273063.83\n    test 57 toWm(30.0003, 0, earth=R_MA).y: 3503585.55\n    test 58 toWm(40.0003, 0, earth=R_MA).y: 4865982.65\n    test 59 toWm(50.0003, 0, earth=R_MA).y: 6446323.95\n    test 60 toWm(60.0003, 0, earth=R_MA).y: 8399799.73\n\n    test 61 toWm(10.0000, 0, earth=WGS84).y: 1111475.10\n    test 62 toWm(20.0000, 0, earth=WGS84).y: 2258423.65\n    test 63 toWm(30.0000, 0, earth=WGS84).y: 3482189.09\n    test 64 toWm(40.0000, 0, earth=WGS84).y: 4838471.40\n    test 65 toWm(50.0000, 0, earth=WGS84).y: 6413524.59\n    test 66 toWm(60.0000, 0, earth=WGS84).y: 8362698.55\n\n    test 67 toWm(10.0003, 0, earth=WGS84).y: 1111506.30\n    test 68 toWm(20.0003, 0, earth=WGS84).y: 2258456.36\n    test 69 toWm(30.0003, 0, earth=WGS84).y: 3482224.61\n    test 70 toWm(40.0003, 0, earth=WGS84).y: 4838511.61\n    test 71 toWm(50.0003, 0, earth=WGS84).y: 6413572.57\n    test 72 toWm(60.0003, 0, earth=WGS84).y: 8362760.29\n\n    all 72 testWebMercator.py tests passed (pygeodesy 26.3.26 Python 3.13.12 64bit arm64 coverage 7.10.7 geographiclib 2.1 numpy 2.3.3 scipy 1.16.2 Math 2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 macOS 26.3.1 isLazy 1 -W  default) 3.130 ms\nrunning /Library/Framewo....n3.13 -W default ~/PyGeodesy/test/testWgrs.py\n\n    testing testWgrs.py 23.03.27 (module pygeodesy.wgrs 25.04.14) isLazy=1\n    test 1 Georef: 'NKLN2444638946'\n    test 2 Georef: Georef('NKLN2444638946')\n    test 3 Georef: NKLN2444638946\n    test 4 Georef.latlon: 57.64911, 10.40744\n    test 5 Georef.toLatLon: LatLon(57°38′56.8″N, 010°24′26.78″E)\n    test 6 codec3: NKLN2444638946\n    test 7 decode3: 57.64911, 10.40744, 6.0\n    test 8 encode: NKLN2444638946\n    test 9 Georef: 'NKLN2444638946H0'\n    test 10 Georef: Georef('NKLN2444638946H0')\n    test 11 Georef: NKLN2444638946H0\n    test 12 Georef.latlon: 57.64911, 10.40744\n    test 13 Georef.precision: 6\n    test 14 Georef.radius: None\n    test 15 Georef: 'GJPJ3424917166'\n    test 16 Georef: Georef('GJPJ3424917166')\n    test 17 Georef: GJPJ3424917166\n    test 18 Georef.latlon: 38.286108, -76.42917\n    test 19 Georef.toLatLon: LatLon(38°17′09.99″N, 076°25′45.01″W)\n    test 20 codec3: GJPJ3424917166\n    test 21 decode3: 38.286108, -76.429175, 6.0\n    test 22 encode: GJPJ3424917166\n    test 23 Georef: 'GJPJ3424917166H0'\n    test 24 Georef: Georef('GJPJ3424917166H0')\n    test 25 Georef: GJPJ3424917166H0\n    test 26 Georef.latlon: 38.286108, -76.42917\n    test 27 Georef.precision: 6\n    test 28 Georef.radius: None\n    test 29 Georef.3Tuple: 38.286108, -76.42917, 0.0\n    test 30 codec3: MKPG1204\n    test 31 decode3: 51.075, -1.7917, 3.0\n    test 32 encode: MKPG1204\n    test 33 codec3: WJKG1503\n    test 34 decode3: 36.0583, 129.2583, 3.0\n    test 35 encode: WJKG1503\n    test 36 codec5: GJPJ4103R5\n    test 37 decode5: 38.0583, -76.3083, 3.0, None, 9260.0\n    test 38 encode: GJPJ4103R5\n    test 39 codec5: GJPJ4103H17\n    test 40 decode5: 38.0583, -76.3083, 3.0, 5181.6, None\n    test 41 encode: GJPJ4103H17\n    test 42 codec5: GJPJ4103R5H17\n    test 43 decode5: 38.0583, -76.3083, 3.0, 5181.6, 9260.0\n    test 44 encode: GJPJ4103R5H17\n    test 45 precision: -1  FAILED, KNOWN, expected 0\n    test 46 resolution: 15°\n    test 47 precision: 0\n    test 48 resolution: 15°\n    test 49 precision: 1\n    test 50 resolution: 1°\n    test 51 precision: 2\n    test 52 resolution: 0.1′\n    test 53 precision: 3\n    test 54 resolution: 0.01′\n    test 55 precision: 4\n    test 56 resolution: 0.001′\n    test 57 precision: 5\n    test 58 resolution: 0.0001′\n    test 59 precision: 6\n    test 60 resolution: 0.00001′\n    test 61 precision: 7\n    test 62 resolution: 0.000001′\n    test 63 precision: 8\n    test 64 resolution: 0.0000001′\n    test 65 precision: 9\n    test 66 resolution: 0.00000001′\n    test 67 precision: 10\n    test 68 resolution: 0.000000001′\n    test 69 precision: 11\n    test 70 resolution: 0.0000000001′\n    test 71 precision: 12  FAILED, KNOWN, expected 11\n    test 72 resolution: 0.0000000001′\n\n    2 of 72 testWgrs.py tests (2.8%) FAILED, ALL KNOWN (pygeodesy 26.3.26 Python 3.13.12 64bit arm64 coverage 7.10.7 geographiclib 2.1 numpy 2.3.3 scipy 1.16.2 Math 2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 macOS 26.3.1 isLazy 1 -W  default) 2.343 ms\n\ntest/run.py /Library/Framewo....n3.13 -W default: all 49188 tests OK (pygeodesy 26.3.26 Python 3.13.12 64bit arm64 coverage 7.10.7 geographiclib 2.1 numpy 2.3.3 scipy 1.16.2 Math 2 GeoConvert 2.7 GeodSolve 2.7 Geod3Solve 2.7 macOS 26.3.1 isLazy 1 -W default) 17:37.947 (46.494 tps)\n"
  },
  {
    "path": "testresults/testresults-pygeodesy-26.3.26-Python-3.14.3-64bit-arm64-geographiclib-2.1-Math-2-macOS-26.3.1-isLazy-3--W-default.txt",
    "content": "test/run.py typical test results (pygeodesy 26.3.26 Python 3.14.3 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W default)\nrunning /Library/Framewo....n3.14 -W default ~/PyGeodesy/test/testAlbers.py\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.albers by testAlbers.py line 11\n# lazily imported pygeodesy.AlbersError from .albers by testAlbers.py line 11\n# lazily imported pygeodesy.AlbersEqualArea from .albers by testAlbers.py line 11\n# lazily imported pygeodesy.AlbersEqualArea2 from .albers by testAlbers.py line 11\n# lazily imported pygeodesy.AlbersEqualArea4 from .albers by testAlbers.py line 11\n# lazily imported pygeodesy.AlbersEqualAreaCylindrical from .albers by testAlbers.py line 11\n# lazily imported pygeodesy.AlbersEqualAreaNorth from .albers by testAlbers.py line 11\n# lazily imported pygeodesy.AlbersEqualAreaSouth from .albers by testAlbers.py line 11\n# lazily imported pygeodesy.Datums from .datums by testAlbers.py line 11\n# lazily imported pygeodesy.fstr from .streprs by testAlbers.py line 11\n# lazily imported pygeodesy.sincos2d from .utily by testAlbers.py line 11\n\n    testing testAlbers.py 24.12.31 (module pygeodesy.albers 26.02.27) isLazy=3\n    test 1 name: Karney_example\n    test 2 datum: WGS84\n    test 3 ellipsoid: WGS84\n    test 4 lat0: 40.451991337063\n    test 5 scale0: 0.999959500363\n    test 6 equatoradius: 6378137.000000000000\n    test 7 flattening: 0.003352810665\n    test 8 _sign: 1.000000000000\n    test 9 _m02: 0.580681094922\n    test 10 _n0: 0.648810669236\n    test 11 _txi0: 0.848822476849\n    test 12 iteration: 3\n    test 13 ispolar: False\n    test 14 forward: -5675721.76113533, 2516917.91242155, 39.95, -75.17, 311.23285234, 0.99999745  FAILED, KNOWN, expected -5675721.76113534, 2516917.91242155, 39.95, -75.17, 311.23285234, 0.99999745\n    test 15 reverse: -5675721.76113533, 2516917.91242155, 39.95, -75.17, 311.23285234, 0.99999745  FAILED, KNOWN, expected -5675721.76113534, 2516917.91242155, 39.95, -75.17, 311.23285234, 0.99999745\n    test 16 forward: 199089.12574012, -53115.52801838, 39.95, 2.33, 1.51160641, 0.99999745\n    test 17 reverse: 199089.12574012, -53115.52801838, 39.95, -75.17, 1.51160641, 0.99999745  FAILED, KNOWN, expected 199089.12574012, -53115.52801838, 39.95, 2.33, 1.51160641, 0.99999745\n    test 18 reverse: 220000.0, -53000.0, 39.94581132, 2.57463362, 1.67031446, 0.99999808\n    test 19 forward: 220000.0, -53000.0, 39.94581132, 2.57463362, 1.67031446, 0.99999808\n    test 20 reverse: 220000.0, -53000.0, 39.94581132, -74.92536638, 1.67031446, 0.99999808\n    test 21 forward: 220000.0, -53000.0, 39.94581132, 2.57463362, 1.67031446, 0.99999808  FAILED, KNOWN, expected 220000.0, -53000.0, 39.94581132, -74.92536638, 1.67031446, 0.99999808\n\n    testPage292(pygeodesy.albers, 26.02.27)\n    test 22 name: Snyder_p292\n    test 23 datum: NAD27\n    test 24 ellipsoid: Clarke1866\n    test 25 lat0: 37.934543880726\n    test 26 scale0: 0.990309187872\n    test 27 equatoradius: 6378206.400000000373\n    test 28 flattening: 0.003390075304\n    test 29 _sign: 1.000000000000\n    test 30 _m02: 0.623664507732\n    test 31 _n0: 0.614760830736\n    test 32 _txi0: 0.775925617021\n    test 33 iteration: 4\n    test 34 ispolar: False\n    test 35 forward: -6105839.22928149, 2214046.74930275, 35.0, -75.0, 314.78223745, 0.99155461  FAILED, KNOWN, expected -6105839.22928148, 2214046.74930274, 35.0, -75.0, 314.78223745, 0.99155461\n    test 36 reverse: -6105839.22928149, 2214046.74930275, 35.0, -75.0, 314.78223745, 0.99155461  FAILED, KNOWN, expected -6105839.22928148, 2214046.74930274, 35.0, -75.0, 314.78223745, 0.99155461\n    test 37 forward: 1885472.72581347, -119505.66687765, 35.0, 21.0, 12.66097351, 0.99155461  FAILED, KNOWN, expected 1885472.72581347, -119505.66687766, 35.0, 21.0, 12.66097351, 0.99155461\n    test 38 reverse: 1885472.72581347, -119505.66687765, 35.0, -75.0, 12.66097351, 0.99155461  FAILED, KNOWN, expected 1885472.72581347, -119505.66687766, 35.0, 21.0, 12.66097351, 0.99155461\n    test 39 reverse: 1885427.7, 1535925.0, 49.40436665, 25.93001383, 15.63329611, 1.01436109\n    test 40 forward: 1885427.7, 1535925.0, 49.40436665, 25.93001383, 15.63329611, 1.01436109\n    test 41 reverse: 1885427.7, 1535925.0, 49.40436665, -70.06998617, 15.63329611, 1.01436109\n    test 42 forward: 1885427.7, 1535925.0, 49.40436665, 25.93001383, 15.63329611, 1.01436109  FAILED, KNOWN, expected 1885427.7, 1535925.0, 49.40436665, -70.06998617, 15.63329611, 1.01436109\n\n    testTable15(pygeodesy.albers, 26.02.27)\n    test 43 52 k: 1.02863\n    test 44 50 k: 1.01727\n    test 45 45.5 k: 1.00000\n    test 46 45 k: 0.99869\n    test 47 40 k: 0.99097\n    test 48 35 k: 0.99155\n    test 49 30 k: 0.99893\n    test 50 29.5 k: 1.00000\n    test 51 25 k: 1.01222\n    test 52 22 k: 1.02283\n\n    testLats(pygeodesy.albers, 26.02.27)\n    test 53 AlbersEqualArea.toRepr: AlbersEqualArea(45.0, k0=1.0)\n    test 54 AlbersEqualArea.lat0: 45.0\n    test 55 AlbersEqualArea.lat1: 45.0\n    test 56 AlbersEqualArea.lat2: 45.0\n\n    test 57 AlbersEqualArea2.toRepr: AlbersEqualArea2(40.0, 40.0, k1=1.0)\n    test 58 AlbersEqualArea2.lat0: 40.0\n    test 59 AlbersEqualArea2.lat1: 40.0\n    test 60 AlbersEqualArea2.lat2: 40.0\n\n    test 61 AlbersEqualArea4.toRepr: AlbersEqualArea4(30.0, 30.0, k1=1.0)\n    test 62 AlbersEqualArea4.lat0: 30.0\n    test 63 AlbersEqualArea4.lat1: 30.0\n    test 64 AlbersEqualArea4.lat2: 30.0\n\n    test 65 AlbersEqualArea4.toRepr: AlbersEqualArea4(-30.0, -30.0, k1=1.0)\n    test 66 AlbersEqualArea4.lat0: -30.0\n    test 67 AlbersEqualArea4.lat1: -30.0\n    test 68 AlbersEqualArea4.lat2: -30.0\n\n    test 69 AlbersEqualAreaCylindrical.toRepr: AlbersEqualAreaCylindrical(0.0)\n    test 70 AlbersEqualAreaCylindrical.lat0: 0.0\n    test 71 AlbersEqualAreaCylindrical.lat1: 0.0\n    test 72 AlbersEqualAreaCylindrical.lat2: 0.0\n\n    test 73 AlbersEqualAreaNorth.toRepr: AlbersEqualAreaNorth(90.0)\n    test 74 AlbersEqualAreaNorth.lat0: 90.0\n    test 75 AlbersEqualAreaNorth.lat1: 90.0\n    test 76 AlbersEqualAreaNorth.lat2: 90.0\n\n    test 77 AlbersEqualAreaSouth.toRepr: AlbersEqualAreaSouth(-90.0)\n    test 78 AlbersEqualAreaSouth.lat0: -90.0\n    test 79 AlbersEqualAreaSouth.lat1: -90.0\n    test 80 AlbersEqualAreaSouth.lat2: -90.0\n\n# imported pygeodesy.basics into errors.py line 443\n    test 81 error: clat1 (-0.8660254037844386) or clat2 (1.0): negative\n    test 82 error: slat1 (-0.5) or slat2 (0.5): negative\n\n    9 of 82 testAlbers.py tests (11.0%) FAILED, ALL KNOWN (pygeodesy 26.3.26 Python 3.14.3 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 49.993 ms\nrunning /Library/Framewo....n3.14 -W default ~/PyGeodesy/test/testAngles.py\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.EPS from .constants by testAngles.py line 11\n# lazily imported pygeodesy.INF from .constants by testAngles.py line 11\n# lazily imported pygeodesy.PI from .constants by testAngles.py line 11\n# lazily imported pygeodesy.Ang from .angles by testAngles.py line 11\n# lazily imported pygeodesy.Deg from .angles by testAngles.py line 11\n# lazily imported pygeodesy.Fsum from .fsums by testAngles.py line 11\n# lazily imported pygeodesy.Lambertian from .angles by testAngles.py line 11\n# lazily imported pygeodesy.Rad from .angles by testAngles.py line 11\n\n    testing testAngles.py 25.12.01 (module pygeodesy.angles 25.12.02) isLazy=3\n    test 1 D: -716.000000\n    test 2 r: -12.496557\n    test 3 n: -2.0\n    test 4 R: -7.160000\n    test 5 d: -410.237781\n    test 6 n: -1.0\n    test 7 D: -713.000000\n    test 8 r: -12.444198\n    test 9 n: -2.0\n    test 10 R: -7.130000\n    test 11 d: -408.518908\n    test 12 n: -1.0\n    test 13 D: -710.000000\n    test 14 r: -12.391838\n    test 15 n: -2.0\n    test 16 R: -7.100000\n    test 17 d: -406.800035\n    test 18 n: -1.0\n    test 19 D: -707.000000\n    test 20 r: -12.339478\n    test 21 n: -2.0\n    test 22 R: -7.070000\n    test 23 d: -405.081161\n    test 24 n: -1.0\n    test 25 D: -704.000000\n    test 26 r: -12.287118\n    test 27 n: -2.0\n    test 28 R: -7.040000\n    test 29 d: -403.362288\n    test 30 n: -1.0\n    test 31 D: -701.000000\n    test 32 r: -12.234758\n    test 33 n: -2.0\n    test 34 R: -7.010000\n    test 35 d: -401.643414\n    test 36 n: -1.0\n    test 37 D: -698.000000\n    test 38 r: -12.182398\n    test 39 n: -2.0\n    test 40 R: -6.980000\n    test 41 d: -399.924541\n    test 42 n: -1.0\n    test 43 D: -695.000000\n    test 44 r: -12.130038\n    test 45 n: -2.0\n    test 46 R: -6.950000\n    test 47 d: -398.205668\n    test 48 n: -1.0\n    test 49 D: -692.000000\n    test 50 r: -12.077678\n    test 51 n: -2.0\n    test 52 R: -6.920000\n    test 53 d: -396.486794\n    test 54 n: -1.0\n    test 55 D: -689.000000\n    test 56 r: -12.025319\n    test 57 n: -2.0\n    test 58 R: -6.890000\n    test 59 d: -394.767921\n    test 60 n: -1.0\n    test 61 D: -686.000000\n    test 62 r: -11.972959\n    test 63 n: -2.0\n    test 64 R: -6.860000\n    test 65 d: -393.049047\n    test 66 n: -1.0\n    test 67 D: -683.000000\n    test 68 r: -11.920599\n    test 69 n: -2.0\n    test 70 R: -6.830000\n    test 71 d: -391.330174\n    test 72 n: -1.0\n    test 73 D: -680.000000\n    test 74 r: -11.868239\n    test 75 n: -2.0\n    test 76 R: -6.800000\n    test 77 d: -389.611301\n    test 78 n: -1.0\n    test 79 D: -677.000000\n    test 80 r: -11.815879\n    test 81 n: -2.0\n    test 82 R: -6.770000\n    test 83 d: -387.892427\n    test 84 n: -1.0\n    test 85 D: -674.000000\n    test 86 r: -11.763519\n    test 87 n: -2.0\n    test 88 R: -6.740000\n    test 89 d: -386.173554\n    test 90 n: -1.0\n    test 91 D: -671.000000\n    test 92 r: -11.711159\n    test 93 n: -2.0\n    test 94 R: -6.710000\n    test 95 d: -384.454681\n    test 96 n: -1.0\n    test 97 D: -668.000000\n    test 98 r: -11.658799\n    test 99 n: -2.0\n    test 100 R: -6.680000\n    test 101 d: -382.735807\n    test 102 n: -1.0\n    test 103 D: -665.000000\n    test 104 r: -11.606440\n    test 105 n: -2.0\n    test 106 R: -6.650000\n    test 107 d: -381.016934\n    test 108 n: -1.0\n    test 109 D: -662.000000\n    test 110 r: -11.554080\n    test 111 n: -2.0\n    test 112 R: -6.620000\n    test 113 d: -379.298060\n    test 114 n: -1.0\n    test 115 D: -659.000000\n    test 116 r: -11.501720\n    test 117 n: -2.0\n    test 118 R: -6.590000\n    test 119 d: -377.579187\n    test 120 n: -1.0\n    test 121 D: -656.000000\n    test 122 r: -11.449360\n    test 123 n: -2.0\n    test 124 R: -6.560000\n    test 125 d: -375.860314\n    test 126 n: -1.0\n    test 127 D: -653.000000\n    test 128 r: -11.397000\n    test 129 n: -2.0\n    test 130 R: -6.530000\n    test 131 d: -374.141440\n    test 132 n: -1.0\n    test 133 D: -650.000000\n    test 134 r: -11.344640\n    test 135 n: -2.0\n    test 136 R: -6.500000\n    test 137 d: -372.422567\n    test 138 n: -1.0\n    test 139 D: -647.000000\n    test 140 r: -11.292280\n    test 141 n: -2.0\n    test 142 R: -6.470000\n    test 143 d: -370.703693\n    test 144 n: -1.0\n    test 145 D: -644.000000\n    test 146 r: -11.239920\n    test 147 n: -2.0\n    test 148 R: -6.440000\n    test 149 d: -368.984820\n    test 150 n: -1.0\n    test 151 D: -641.000000\n    test 152 r: -11.187561\n    test 153 n: -2.0\n    test 154 R: -6.410000\n    test 155 d: -367.265947\n    test 156 n: -1.0\n    test 157 D: -638.000000\n    test 158 r: -11.135201\n    test 159 n: -2.0\n    test 160 R: -6.380000\n    test 161 d: -365.547073\n    test 162 n: -1.0\n    test 163 D: -635.000000\n    test 164 r: -11.082841\n    test 165 n: -2.0\n    test 166 R: -6.350000\n    test 167 d: -363.828200\n    test 168 n: -1.0\n    test 169 D: -632.000000\n    test 170 r: -11.030481\n    test 171 n: -2.0\n    test 172 R: -6.320000\n    test 173 d: -362.109327\n    test 174 n: -1.0\n    test 175 D: -629.000000\n    test 176 r: -10.978121\n    test 177 n: -2.0\n    test 178 R: -6.290000\n    test 179 d: -360.390453\n    test 180 n: -1.0\n    test 181 D: -626.000000\n    test 182 r: -10.925761\n    test 183 n: -2.0\n    test 184 R: -6.260000\n    test 185 d: -358.671580\n    test 186 n: -1.0\n    test 187 D: -623.000000\n    test 188 r: -10.873401\n    test 189 n: -2.0\n    test 190 R: -6.230000\n    test 191 d: -356.952706\n    test 192 n: -1.0\n    test 193 D: -620.000000\n    test 194 r: -10.821041\n    test 195 n: -2.0\n    test 196 R: -6.200000\n    test 197 d: -355.233833\n    test 198 n: -1.0\n    test 199 D: -617.000000\n    test 200 r: -10.768681\n    test 201 n: -2.0\n    test 202 R: -6.170000\n    test 203 d: -353.514960\n    test 204 n: -1.0\n    test 205 D: -614.000000\n    test 206 r: -10.716322\n    test 207 n: -2.0\n    test 208 R: -6.140000\n    test 209 d: -351.796086\n    test 210 n: -1.0\n    test 211 D: -611.000000\n    test 212 r: -10.663962\n    test 213 n: -2.0\n    test 214 R: -6.110000\n    test 215 d: -350.077213\n    test 216 n: -1.0\n    test 217 D: -608.000000\n    test 218 r: -10.611602\n    test 219 n: -2.0\n    test 220 R: -6.080000\n    test 221 d: -348.358339\n    test 222 n: -1.0\n    test 223 D: -605.000000\n    test 224 r: -10.559242\n    test 225 n: -2.0\n    test 226 R: -6.050000\n    test 227 d: -346.639466\n    test 228 n: -1.0\n    test 229 D: -602.000000\n    test 230 r: -10.506882\n    test 231 n: -2.0\n    test 232 R: -6.020000\n    test 233 d: -344.920593\n    test 234 n: -1.0\n    test 235 D: -599.000000\n    test 236 r: -10.454522\n    test 237 n: -2.0\n    test 238 R: -5.990000\n    test 239 d: -343.201719\n    test 240 n: -1.0\n    test 241 D: -596.000000\n    test 242 r: -10.402162\n    test 243 n: -2.0\n    test 244 R: -5.960000\n    test 245 d: -341.482846\n    test 246 n: -1.0\n    test 247 D: -593.000000\n    test 248 r: -10.349802\n    test 249 n: -2.0\n    test 250 R: -5.930000\n    test 251 d: -339.763973\n    test 252 n: -1.0\n    test 253 D: -590.000000\n    test 254 r: -10.297443\n    test 255 n: -2.0\n    test 256 R: -5.900000\n    test 257 d: -338.045099\n    test 258 n: -1.0\n    test 259 D: -587.000000\n    test 260 r: -10.245083\n    test 261 n: -2.0\n    test 262 R: -5.870000\n    test 263 d: -336.326226\n    test 264 n: -1.0\n    test 265 D: -584.000000\n    test 266 r: -10.192723\n    test 267 n: -2.0\n    test 268 R: -5.840000\n    test 269 d: -334.607352\n    test 270 n: -1.0\n    test 271 D: -581.000000\n    test 272 r: -10.140363\n    test 273 n: -2.0\n    test 274 R: -5.810000\n    test 275 d: -332.888479\n    test 276 n: -1.0\n    test 277 D: -578.000000\n    test 278 r: -10.088003\n    test 279 n: -2.0\n    test 280 R: -5.780000\n    test 281 d: -331.169606\n    test 282 n: -1.0\n    test 283 D: -575.000000\n    test 284 r: -10.035643\n    test 285 n: -2.0\n    test 286 R: -5.750000\n    test 287 d: -329.450732\n    test 288 n: -1.0\n    test 289 D: -572.000000\n    test 290 r: -9.983283\n    test 291 n: -2.0\n    test 292 R: -5.720000\n    test 293 d: -327.731859\n    test 294 n: -1.0\n    test 295 D: -569.000000\n    test 296 r: -9.930923\n    test 297 n: -2.0\n    test 298 R: -5.690000\n    test 299 d: -326.012985\n    test 300 n: -1.0\n    test 301 D: -566.000000\n    test 302 r: -9.878564\n    test 303 n: -2.0\n    test 304 R: -5.660000\n    test 305 d: -324.294112\n    test 306 n: -1.0\n    test 307 D: -563.000000\n    test 308 r: -9.826204\n    test 309 n: -2.0\n    test 310 R: -5.630000\n    test 311 d: -322.575239\n    test 312 n: -1.0\n    test 313 D: -560.000000\n    test 314 r: -9.773844\n    test 315 n: -2.0\n    test 316 R: -5.600000\n    test 317 d: -320.856365\n    test 318 n: -1.0\n    test 319 D: -557.000000\n    test 320 r: -9.721484\n    test 321 n: -2.0\n    test 322 R: -5.570000\n    test 323 d: -319.137492\n    test 324 n: -1.0\n    test 325 D: -554.000000\n    test 326 r: -9.669124\n    test 327 n: -2.0\n    test 328 R: -5.540000\n    test 329 d: -317.418619\n    test 330 n: -1.0\n    test 331 D: -551.000000\n    test 332 r: -9.616764\n    test 333 n: -2.0\n    test 334 R: -5.510000\n    test 335 d: -315.699745\n    test 336 n: -1.0\n    test 337 D: -548.000000\n    test 338 r: -9.564404\n    test 339 n: -2.0\n    test 340 R: -5.480000\n    test 341 d: -313.980872\n    test 342 n: -1.0\n    test 343 D: -545.000000\n    test 344 r: -9.512044\n    test 345 n: -2.0\n    test 346 R: -5.450000\n    test 347 d: -312.261998\n    test 348 n: -1.0\n    test 349 D: -542.000000\n    test 350 r: -9.459685\n    test 351 n: -2.0\n    test 352 R: -5.420000\n    test 353 d: -310.543125\n    test 354 n: -1.0\n    test 355 D: -539.000000\n    test 356 r: -9.407325\n    test 357 n: -1.0\n    test 358 R: -5.390000\n    test 359 d: -308.824252\n    test 360 n: -1.0\n    test 361 D: -536.000000\n    test 362 r: -9.354965\n    test 363 n: -1.0\n    test 364 R: -5.360000\n    test 365 d: -307.105378\n    test 366 n: -1.0\n    test 367 D: -533.000000\n    test 368 r: -9.302605\n    test 369 n: -1.0\n    test 370 R: -5.330000\n    test 371 d: -305.386505\n    test 372 n: -1.0\n    test 373 D: -530.000000\n    test 374 r: -9.250245\n    test 375 n: -1.0\n    test 376 R: -5.300000\n    test 377 d: -303.667631\n    test 378 n: -1.0\n    test 379 D: -527.000000\n    test 380 r: -9.197885\n    test 381 n: -1.0\n    test 382 R: -5.270000\n    test 383 d: -301.948758\n    test 384 n: -1.0\n    test 385 D: -524.000000\n    test 386 r: -9.145525\n    test 387 n: -1.0\n    test 388 R: -5.240000\n    test 389 d: -300.229885\n    test 390 n: -1.0\n    test 391 D: -521.000000\n    test 392 r: -9.093165\n    test 393 n: -1.0\n    test 394 R: -5.210000\n    test 395 d: -298.511011\n    test 396 n: -1.0\n    test 397 D: -518.000000\n    test 398 r: -9.040806\n    test 399 n: -1.0\n    test 400 R: -5.180000\n    test 401 d: -296.792138\n    test 402 n: -1.0\n    test 403 D: -515.000000\n    test 404 r: -8.988446\n    test 405 n: -1.0\n    test 406 R: -5.150000\n    test 407 d: -295.073264\n    test 408 n: -1.0\n    test 409 D: -512.000000\n    test 410 r: -8.936086\n    test 411 n: -1.0\n    test 412 R: -5.120000\n    test 413 d: -293.354391\n    test 414 n: -1.0\n    test 415 D: -509.000000\n    test 416 r: -8.883726\n    test 417 n: -1.0\n    test 418 R: -5.090000\n    test 419 d: -291.635518\n    test 420 n: -1.0\n    test 421 D: -506.000000\n    test 422 r: -8.831366\n    test 423 n: -1.0\n    test 424 R: -5.060000\n    test 425 d: -289.916644\n    test 426 n: -1.0\n    test 427 D: -503.000000\n    test 428 r: -8.779006\n    test 429 n: -1.0\n    test 430 R: -5.030000\n    test 431 d: -288.197771\n    test 432 n: -1.0\n    test 433 D: -500.000000\n    test 434 r: -8.726646\n    test 435 n: -1.0\n    test 436 R: -5.000000\n    test 437 d: -286.478898\n    test 438 n: -1.0\n    test 439 D: -497.000000\n    test 440 r: -8.674286\n    test 441 n: -1.0\n    test 442 R: -4.970000\n    test 443 d: -284.760024\n    test 444 n: -1.0\n    test 445 D: -494.000000\n    test 446 r: -8.621927\n    test 447 n: -1.0\n    test 448 R: -4.940000\n    test 449 d: -283.041151\n    test 450 n: -1.0\n    test 451 D: -491.000000\n    test 452 r: -8.569567\n    test 453 n: -1.0\n    test 454 R: -4.910000\n    test 455 d: -281.322277\n    test 456 n: -1.0\n    test 457 D: -488.000000\n    test 458 r: -8.517207\n    test 459 n: -1.0\n    test 460 R: -4.880000\n    test 461 d: -279.603404\n    test 462 n: -1.0\n    test 463 D: -485.000000\n    test 464 r: -8.464847\n    test 465 n: -1.0\n    test 466 R: -4.850000\n    test 467 d: -277.884531\n    test 468 n: -1.0\n    test 469 D: -482.000000\n    test 470 r: -8.412487\n    test 471 n: -1.0\n    test 472 R: -4.820000\n    test 473 d: -276.165657\n    test 474 n: -1.0\n    test 475 D: -479.000000\n    test 476 r: -8.360127\n    test 477 n: -1.0\n    test 478 R: -4.790000\n    test 479 d: -274.446784\n    test 480 n: -1.0\n    test 481 D: -476.000000\n    test 482 r: -8.307767\n    test 483 n: -1.0\n    test 484 R: -4.760000\n    test 485 d: -272.727910\n    test 486 n: -1.0\n    test 487 D: -473.000000\n    test 488 r: -8.255407\n    test 489 n: -1.0\n    test 490 R: -4.730000\n    test 491 d: -271.009037\n    test 492 n: -1.0\n    test 493 D: -470.000000\n    test 494 r: -8.203047\n    test 495 n: -1.0\n    test 496 R: -4.700000\n    test 497 d: -269.290164\n    test 498 n: -1.0\n    test 499 D: -467.000000\n    test 500 r: -8.150688\n    test 501 n: -1.0\n    test 502 R: -4.670000\n    test 503 d: -267.571290\n    test 504 n: -1.0\n    test 505 D: -464.000000\n    test 506 r: -8.098328\n    test 507 n: -1.0\n    test 508 R: -4.640000\n    test 509 d: -265.852417\n    test 510 n: -1.0\n    test 511 D: -461.000000\n    test 512 r: -8.045968\n    test 513 n: -1.0\n    test 514 R: -4.610000\n    test 515 d: -264.133544\n    test 516 n: -1.0\n    test 517 D: -458.000000\n    test 518 r: -7.993608\n    test 519 n: -1.0\n    test 520 R: -4.580000\n    test 521 d: -262.414670\n    test 522 n: -1.0\n    test 523 D: -455.000000\n    test 524 r: -7.941248\n    test 525 n: -1.0\n    test 526 R: -4.550000\n    test 527 d: -260.695797\n    test 528 n: -1.0\n    test 529 D: -452.000000\n    test 530 r: -7.888888\n    test 531 n: -1.0\n    test 532 R: -4.520000\n    test 533 d: -258.976923\n    test 534 n: -1.0\n    test 535 D: -449.000000\n    test 536 r: -7.836528\n    test 537 n: -1.0\n    test 538 R: -4.490000\n    test 539 d: -257.258050\n    test 540 n: -1.0\n    test 541 D: -446.000000\n    test 542 r: -7.784168\n    test 543 n: -1.0\n    test 544 R: -4.460000\n    test 545 d: -255.539177\n    test 546 n: -1.0\n    test 547 D: -443.000000\n    test 548 r: -7.731809\n    test 549 n: -1.0\n    test 550 R: -4.430000\n    test 551 d: -253.820303\n    test 552 n: -1.0\n    test 553 D: -440.000000\n    test 554 r: -7.679449\n    test 555 n: -1.0\n    test 556 R: -4.400000\n    test 557 d: -252.101430\n    test 558 n: -1.0\n    test 559 D: -437.000000\n    test 560 r: -7.627089\n    test 561 n: -1.0\n    test 562 R: -4.370000\n    test 563 d: -250.382556\n    test 564 n: -1.0\n    test 565 D: -434.000000\n    test 566 r: -7.574729\n    test 567 n: -1.0\n    test 568 R: -4.340000\n    test 569 d: -248.663683\n    test 570 n: -1.0\n    test 571 D: -431.000000\n    test 572 r: -7.522369\n    test 573 n: -1.0\n    test 574 R: -4.310000\n    test 575 d: -246.944810\n    test 576 n: -1.0\n    test 577 D: -428.000000\n    test 578 r: -7.470009\n    test 579 n: -1.0\n    test 580 R: -4.280000\n    test 581 d: -245.225936\n    test 582 n: -1.0\n    test 583 D: -425.000000\n    test 584 r: -7.417649\n    test 585 n: -1.0\n    test 586 R: -4.250000\n    test 587 d: -243.507063\n    test 588 n: -1.0\n    test 589 D: -422.000000\n    test 590 r: -7.365289\n    test 591 n: -1.0\n    test 592 R: -4.220000\n    test 593 d: -241.788190\n    test 594 n: -1.0\n    test 595 D: -419.000000\n    test 596 r: -7.312930\n    test 597 n: -1.0\n    test 598 R: -4.190000\n    test 599 d: -240.069316\n    test 600 n: -1.0\n    test 601 D: -416.000000\n    test 602 r: -7.260570\n    test 603 n: -1.0\n    test 604 R: -4.160000\n    test 605 d: -238.350443\n    test 606 n: -1.0\n    test 607 D: -413.000000\n    test 608 r: -7.208210\n    test 609 n: -1.0\n    test 610 R: -4.130000\n    test 611 d: -236.631569\n    test 612 n: -1.0\n    test 613 D: -410.000000\n    test 614 r: -7.155850\n    test 615 n: -1.0\n    test 616 R: -4.100000\n    test 617 d: -234.912696\n    test 618 n: -1.0\n    test 619 D: -407.000000\n    test 620 r: -7.103490\n    test 621 n: -1.0\n    test 622 R: -4.070000\n    test 623 d: -233.193823\n    test 624 n: -1.0\n    test 625 D: -404.000000\n    test 626 r: -7.051130\n    test 627 n: -1.0\n    test 628 R: -4.040000\n    test 629 d: -231.474949\n    test 630 n: -1.0\n    test 631 D: -401.000000\n    test 632 r: -6.998770\n    test 633 n: -1.0\n    test 634 R: -4.010000\n    test 635 d: -229.756076\n    test 636 n: -1.0\n    test 637 D: -398.000000\n    test 638 r: -6.946410\n    test 639 n: -1.0\n    test 640 R: -3.980000\n    test 641 d: -228.037202\n    test 642 n: -1.0\n    test 643 D: -395.000000\n    test 644 r: -6.894051\n    test 645 n: -1.0\n    test 646 R: -3.950000\n    test 647 d: -226.318329\n    test 648 n: -1.0\n    test 649 D: -392.000000\n    test 650 r: -6.841691\n    test 651 n: -1.0\n    test 652 R: -3.920000\n    test 653 d: -224.599456\n    test 654 n: -1.0\n    test 655 D: -389.000000\n    test 656 r: -6.789331\n    test 657 n: -1.0\n    test 658 R: -3.890000\n    test 659 d: -222.880582\n    test 660 n: -1.0\n    test 661 D: -386.000000\n    test 662 r: -6.736971\n    test 663 n: -1.0\n    test 664 R: -3.860000\n    test 665 d: -221.161709\n    test 666 n: -1.0\n    test 667 D: -383.000000\n    test 668 r: -6.684611\n    test 669 n: -1.0\n    test 670 R: -3.830000\n    test 671 d: -219.442836\n    test 672 n: -1.0\n    test 673 D: -380.000000\n    test 674 r: -6.632251\n    test 675 n: -1.0\n    test 676 R: -3.800000\n    test 677 d: -217.723962\n    test 678 n: -1.0\n    test 679 D: -377.000000\n    test 680 r: -6.579891\n    test 681 n: -1.0\n    test 682 R: -3.770000\n    test 683 d: -216.005089\n    test 684 n: -1.0\n    test 685 D: -374.000000\n    test 686 r: -6.527531\n    test 687 n: -1.0\n    test 688 R: -3.740000\n    test 689 d: -214.286215\n    test 690 n: -1.0\n    test 691 D: -371.000000\n    test 692 r: -6.475172\n    test 693 n: -1.0\n    test 694 R: -3.710000\n    test 695 d: -212.567342\n    test 696 n: -1.0\n    test 697 D: -368.000000\n    test 698 r: -6.422812\n    test 699 n: -1.0\n    test 700 R: -3.680000\n    test 701 d: -210.848469\n    test 702 n: -1.0\n    test 703 D: -365.000000\n    test 704 r: -6.370452\n    test 705 n: -1.0\n    test 706 R: -3.650000\n    test 707 d: -209.129595\n    test 708 n: -1.0\n    test 709 D: -362.000000\n    test 710 r: -6.318092\n    test 711 n: -1.0\n    test 712 R: -3.620000\n    test 713 d: -207.410722\n    test 714 n: -1.0\n    test 715 D: -359.000000\n    test 716 r: -6.265732\n    test 717 n: -1.0\n    test 718 R: -3.590000\n    test 719 d: -205.691848\n    test 720 n: -1.0\n    test 721 D: -356.000000\n    test 722 r: -6.213372\n    test 723 n: -1.0\n    test 724 R: -3.560000\n    test 725 d: -203.972975\n    test 726 n: -1.0\n    test 727 D: -353.000000\n    test 728 r: -6.161012\n    test 729 n: -1.0\n    test 730 R: -3.530000\n    test 731 d: -202.254102\n    test 732 n: -1.0\n    test 733 D: -350.000000\n    test 734 r: -6.108652\n    test 735 n: -1.0\n    test 736 R: -3.500000\n    test 737 d: -200.535228\n    test 738 n: -1.0\n    test 739 D: -347.000000\n    test 740 r: -6.056293\n    test 741 n: -1.0\n    test 742 R: -3.470000\n    test 743 d: -198.816355\n    test 744 n: -1.0\n    test 745 D: -344.000000\n    test 746 r: -6.003933\n    test 747 n: -1.0\n    test 748 R: -3.440000\n    test 749 d: -197.097482\n    test 750 n: -1.0\n    test 751 D: -341.000000\n    test 752 r: -5.951573\n    test 753 n: -1.0\n    test 754 R: -3.410000\n    test 755 d: -195.378608\n    test 756 n: -1.0\n    test 757 D: -338.000000\n    test 758 r: -5.899213\n    test 759 n: -1.0\n    test 760 R: -3.380000\n    test 761 d: -193.659735\n    test 762 n: -1.0\n    test 763 D: -335.000000\n    test 764 r: -5.846853\n    test 765 n: -1.0\n    test 766 R: -3.350000\n    test 767 d: -191.940861\n    test 768 n: -1.0\n    test 769 D: -332.000000\n    test 770 r: -5.794493\n    test 771 n: -1.0\n    test 772 R: -3.320000\n    test 773 d: -190.221988\n    test 774 n: -1.0\n    test 775 D: -329.000000\n    test 776 r: -5.742133\n    test 777 n: -1.0\n    test 778 R: -3.290000\n    test 779 d: -188.503115\n    test 780 n: -1.0\n    test 781 D: -326.000000\n    test 782 r: -5.689773\n    test 783 n: -1.0\n    test 784 R: -3.260000\n    test 785 d: -186.784241\n    test 786 n: -1.0\n    test 787 D: -323.000000\n    test 788 r: -5.637413\n    test 789 n: -1.0\n    test 790 R: -3.230000\n    test 791 d: -185.065368\n    test 792 n: -1.0\n    test 793 D: -320.000000\n    test 794 r: -5.585054\n    test 795 n: -1.0\n    test 796 R: -3.200000\n    test 797 d: -183.346494\n    test 798 n: -1.0\n    test 799 D: -317.000000\n    test 800 r: -5.532694\n    test 801 n: -1.0\n    test 802 R: -3.170000\n    test 803 d: -181.627621\n    test 804 n: -1.0\n    test 805 D: -314.000000\n    test 806 r: -5.480334\n    test 807 n: -1.0\n    test 808 R: -3.140000\n    test 809 d: -179.908748\n    test 810 n: 0.0\n    test 811 D: -311.000000\n    test 812 r: -5.427974\n    test 813 n: -1.0\n    test 814 R: -3.110000\n    test 815 d: -178.189874\n    test 816 n: 0.0\n    test 817 D: -308.000000\n    test 818 r: -5.375614\n    test 819 n: -1.0\n    test 820 R: -3.080000\n    test 821 d: -176.471001\n    test 822 n: 0.0\n    test 823 D: -305.000000\n    test 824 r: -5.323254\n    test 825 n: -1.0\n    test 826 R: -3.050000\n    test 827 d: -174.752128\n    test 828 n: 0.0\n    test 829 D: -302.000000\n    test 830 r: -5.270894\n    test 831 n: -1.0\n    test 832 R: -3.020000\n    test 833 d: -173.033254\n    test 834 n: 0.0\n    test 835 D: -299.000000\n    test 836 r: -5.218534\n    test 837 n: -1.0\n    test 838 R: -2.990000\n    test 839 d: -171.314381\n    test 840 n: 0.0\n    test 841 D: -296.000000\n    test 842 r: -5.166175\n    test 843 n: -1.0\n    test 844 R: -2.960000\n    test 845 d: -169.595507\n    test 846 n: 0.0\n    test 847 D: -293.000000\n    test 848 r: -5.113815\n    test 849 n: -1.0\n    test 850 R: -2.930000\n    test 851 d: -167.876634\n    test 852 n: 0.0\n    test 853 D: -290.000000\n    test 854 r: -5.061455\n    test 855 n: -1.0\n    test 856 R: -2.900000\n    test 857 d: -166.157761\n    test 858 n: 0.0\n    test 859 D: -287.000000\n    test 860 r: -5.009095\n    test 861 n: -1.0\n    test 862 R: -2.870000\n    test 863 d: -164.438887\n    test 864 n: 0.0\n    test 865 D: -284.000000\n    test 866 r: -4.956735\n    test 867 n: -1.0\n    test 868 R: -2.840000\n    test 869 d: -162.720014\n    test 870 n: 0.0\n    test 871 D: -281.000000\n    test 872 r: -4.904375\n    test 873 n: -1.0\n    test 874 R: -2.810000\n    test 875 d: -161.001140\n    test 876 n: 0.0\n    test 877 D: -278.000000\n    test 878 r: -4.852015\n    test 879 n: -1.0\n    test 880 R: -2.780000\n    test 881 d: -159.282267\n    test 882 n: 0.0\n    test 883 D: -275.000000\n    test 884 r: -4.799655\n    test 885 n: -1.0\n    test 886 R: -2.750000\n    test 887 d: -157.563394\n    test 888 n: 0.0\n    test 889 D: -272.000000\n    test 890 r: -4.747296\n    test 891 n: -1.0\n    test 892 R: -2.720000\n    test 893 d: -155.844520\n    test 894 n: 0.0\n    test 895 D: -269.000000\n    test 896 r: -4.694936\n    test 897 n: -1.0\n    test 898 R: -2.690000\n    test 899 d: -154.125647\n    test 900 n: 0.0\n    test 901 D: -266.000000\n    test 902 r: -4.642576\n    test 903 n: -1.0\n    test 904 R: -2.660000\n    test 905 d: -152.406774\n    test 906 n: 0.0\n    test 907 D: -263.000000\n    test 908 r: -4.590216\n    test 909 n: -1.0\n    test 910 R: -2.630000\n    test 911 d: -150.687900\n    test 912 n: 0.0\n    test 913 D: -260.000000\n    test 914 r: -4.537856\n    test 915 n: -1.0\n    test 916 R: -2.600000\n    test 917 d: -148.969027\n    test 918 n: 0.0\n    test 919 D: -257.000000\n    test 920 r: -4.485496\n    test 921 n: -1.0\n    test 922 R: -2.570000\n    test 923 d: -147.250153\n    test 924 n: 0.0\n    test 925 D: -254.000000\n    test 926 r: -4.433136\n    test 927 n: -1.0\n    test 928 R: -2.540000\n    test 929 d: -145.531280\n    test 930 n: 0.0\n    test 931 D: -251.000000\n    test 932 r: -4.380776\n    test 933 n: -1.0\n    test 934 R: -2.510000\n    test 935 d: -143.812407\n    test 936 n: 0.0\n    test 937 D: -248.000000\n    test 938 r: -4.328417\n    test 939 n: -1.0\n    test 940 R: -2.480000\n    test 941 d: -142.093533\n    test 942 n: 0.0\n    test 943 D: -245.000000\n    test 944 r: -4.276057\n    test 945 n: -1.0\n    test 946 R: -2.450000\n    test 947 d: -140.374660\n    test 948 n: 0.0\n    test 949 D: -242.000000\n    test 950 r: -4.223697\n    test 951 n: -1.0\n    test 952 R: -2.420000\n    test 953 d: -138.655786\n    test 954 n: 0.0\n    test 955 D: -239.000000\n    test 956 r: -4.171337\n    test 957 n: -1.0\n    test 958 R: -2.390000\n    test 959 d: -136.936913\n    test 960 n: 0.0\n    test 961 D: -236.000000\n    test 962 r: -4.118977\n    test 963 n: -1.0\n    test 964 R: -2.360000\n    test 965 d: -135.218040\n    test 966 n: 0.0\n    test 967 D: -233.000000\n    test 968 r: -4.066617\n    test 969 n: -1.0\n    test 970 R: -2.330000\n    test 971 d: -133.499166\n    test 972 n: 0.0\n    test 973 D: -230.000000\n    test 974 r: -4.014257\n    test 975 n: -1.0\n    test 976 R: -2.300000\n    test 977 d: -131.780293\n    test 978 n: 0.0\n    test 979 D: -227.000000\n    test 980 r: -3.961897\n    test 981 n: -1.0\n    test 982 R: -2.270000\n    test 983 d: -130.061419\n    test 984 n: 0.0\n    test 985 D: -224.000000\n    test 986 r: -3.909538\n    test 987 n: -1.0\n    test 988 R: -2.240000\n    test 989 d: -128.342546\n    test 990 n: 0.0\n    test 991 D: -221.000000\n    test 992 r: -3.857178\n    test 993 n: -1.0\n    test 994 R: -2.210000\n    test 995 d: -126.623673\n    test 996 n: 0.0\n    test 997 D: -218.000000\n    test 998 r: -3.804818\n    test 999 n: -1.0\n    test 1000 R: -2.180000\n    test 1001 d: -124.904799\n    test 1002 n: 0.0\n    test 1003 D: -215.000000\n    test 1004 r: -3.752458\n    test 1005 n: -1.0\n    test 1006 R: -2.150000\n    test 1007 d: -123.185926\n    test 1008 n: 0.0\n    test 1009 D: -212.000000\n    test 1010 r: -3.700098\n    test 1011 n: -1.0\n    test 1012 R: -2.120000\n    test 1013 d: -121.467053\n    test 1014 n: 0.0\n    test 1015 D: -209.000000\n    test 1016 r: -3.647738\n    test 1017 n: -1.0\n    test 1018 R: -2.090000\n    test 1019 d: -119.748179\n    test 1020 n: 0.0\n    test 1021 D: -206.000000\n    test 1022 r: -3.595378\n    test 1023 n: -1.0\n    test 1024 R: -2.060000\n    test 1025 d: -118.029306\n    test 1026 n: 0.0\n    test 1027 D: -203.000000\n    test 1028 r: -3.543018\n    test 1029 n: -1.0\n    test 1030 R: -2.030000\n    test 1031 d: -116.310432\n    test 1032 n: 0.0\n    test 1033 D: -200.000000\n    test 1034 r: -3.490659\n    test 1035 n: -1.0\n    test 1036 R: -2.000000\n    test 1037 d: -114.591559\n    test 1038 n: 0.0\n    test 1039 D: -197.000000\n    test 1040 r: -3.438299\n    test 1041 n: -1.0\n    test 1042 R: -1.970000\n    test 1043 d: -112.872686\n    test 1044 n: 0.0\n    test 1045 D: -194.000000\n    test 1046 r: -3.385939\n    test 1047 n: -1.0\n    test 1048 R: -1.940000\n    test 1049 d: -111.153812\n    test 1050 n: 0.0\n    test 1051 D: -191.000000\n    test 1052 r: -3.333579\n    test 1053 n: -1.0\n    test 1054 R: -1.910000\n    test 1055 d: -109.434939\n    test 1056 n: 0.0\n    test 1057 D: -188.000000\n    test 1058 r: -3.281219\n    test 1059 n: -1.0\n    test 1060 R: -1.880000\n    test 1061 d: -107.716065\n    test 1062 n: 0.0\n    test 1063 D: -185.000000\n    test 1064 r: -3.228859\n    test 1065 n: -1.0\n    test 1066 R: -1.850000\n    test 1067 d: -105.997192\n    test 1068 n: 0.0\n    test 1069 D: -182.000000\n    test 1070 r: -3.176499\n    test 1071 n: -1.0\n    test 1072 R: -1.820000\n    test 1073 d: -104.278319\n    test 1074 n: 0.0\n    test 1075 D: -179.000000\n    test 1076 r: -3.124139\n    test 1077 n: 0.0\n    test 1078 R: -1.790000\n    test 1079 d: -102.559445\n    test 1080 n: 0.0\n    test 1081 D: -176.000000\n    test 1082 r: -3.071779\n    test 1083 n: 0.0\n    test 1084 R: -1.760000\n    test 1085 d: -100.840572\n    test 1086 n: 0.0\n    test 1087 D: -173.000000\n    test 1088 r: -3.019420\n    test 1089 n: 0.0\n    test 1090 R: -1.730000\n    test 1091 d: -99.121699\n    test 1092 n: 0.0\n    test 1093 D: -170.000000\n    test 1094 r: -2.967060\n    test 1095 n: 0.0\n    test 1096 R: -1.700000\n    test 1097 d: -97.402825\n    test 1098 n: 0.0\n    test 1099 D: -167.000000\n    test 1100 r: -2.914700\n    test 1101 n: 0.0\n    test 1102 R: -1.670000\n    test 1103 d: -95.683952\n    test 1104 n: 0.0\n    test 1105 D: -164.000000\n    test 1106 r: -2.862340\n    test 1107 n: 0.0\n    test 1108 R: -1.640000\n    test 1109 d: -93.965078\n    test 1110 n: 0.0\n    test 1111 D: -161.000000\n    test 1112 r: -2.809980\n    test 1113 n: 0.0\n    test 1114 R: -1.610000\n    test 1115 d: -92.246205\n    test 1116 n: 0.0\n    test 1117 D: -158.000000\n    test 1118 r: -2.757620\n    test 1119 n: 0.0\n    test 1120 R: -1.580000\n    test 1121 d: -90.527332\n    test 1122 n: 0.0\n    test 1123 D: -155.000000\n    test 1124 r: -2.705260\n    test 1125 n: 0.0\n    test 1126 R: -1.550000\n    test 1127 d: -88.808458\n    test 1128 n: 0.0\n    test 1129 D: -152.000000\n    test 1130 r: -2.652900\n    test 1131 n: 0.0\n    test 1132 R: -1.520000\n    test 1133 d: -87.089585\n    test 1134 n: 0.0\n    test 1135 D: -149.000000\n    test 1136 r: -2.600541\n    test 1137 n: 0.0\n    test 1138 R: -1.490000\n    test 1139 d: -85.370711\n    test 1140 n: 0.0\n    test 1141 D: -146.000000\n    test 1142 r: -2.548181\n    test 1143 n: 0.0\n    test 1144 R: -1.460000\n    test 1145 d: -83.651838\n    test 1146 n: 0.0\n    test 1147 D: -143.000000\n    test 1148 r: -2.495821\n    test 1149 n: 0.0\n    test 1150 R: -1.430000\n    test 1151 d: -81.932965\n    test 1152 n: 0.0\n    test 1153 D: -140.000000\n    test 1154 r: -2.443461\n    test 1155 n: 0.0\n    test 1156 R: -1.400000\n    test 1157 d: -80.214091\n    test 1158 n: 0.0\n    test 1159 D: -137.000000\n    test 1160 r: -2.391101\n    test 1161 n: 0.0\n    test 1162 R: -1.370000\n    test 1163 d: -78.495218\n    test 1164 n: 0.0\n    test 1165 D: -134.000000\n    test 1166 r: -2.338741\n    test 1167 n: 0.0\n    test 1168 R: -1.340000\n    test 1169 d: -76.776345\n    test 1170 n: 0.0\n    test 1171 D: -131.000000\n    test 1172 r: -2.286381\n    test 1173 n: 0.0\n    test 1174 R: -1.310000\n    test 1175 d: -75.057471\n    test 1176 n: 0.0\n    test 1177 D: -128.000000\n    test 1178 r: -2.234021\n    test 1179 n: 0.0\n    test 1180 R: -1.280000\n    test 1181 d: -73.338598\n    test 1182 n: 0.0\n    test 1183 D: -125.000000\n    test 1184 r: -2.181662\n    test 1185 n: 0.0\n    test 1186 R: -1.250000\n    test 1187 d: -71.619724\n    test 1188 n: 0.0\n    test 1189 D: -122.000000\n    test 1190 r: -2.129302\n    test 1191 n: 0.0\n    test 1192 R: -1.220000\n    test 1193 d: -69.900851\n    test 1194 n: 0.0\n    test 1195 D: -119.000000\n    test 1196 r: -2.076942\n    test 1197 n: 0.0\n    test 1198 R: -1.190000\n    test 1199 d: -68.181978\n    test 1200 n: 0.0\n    test 1201 D: -116.000000\n    test 1202 r: -2.024582\n    test 1203 n: 0.0\n    test 1204 R: -1.160000\n    test 1205 d: -66.463104\n    test 1206 n: 0.0\n    test 1207 D: -113.000000\n    test 1208 r: -1.972222\n    test 1209 n: 0.0\n    test 1210 R: -1.130000\n    test 1211 d: -64.744231\n    test 1212 n: 0.0\n    test 1213 D: -110.000000\n    test 1214 r: -1.919862\n    test 1215 n: 0.0\n    test 1216 R: -1.100000\n    test 1217 d: -63.025357\n    test 1218 n: 0.0\n    test 1219 D: -107.000000\n    test 1220 r: -1.867502\n    test 1221 n: 0.0\n    test 1222 R: -1.070000\n    test 1223 d: -61.306484\n    test 1224 n: 0.0\n    test 1225 D: -104.000000\n    test 1226 r: -1.815142\n    test 1227 n: 0.0\n    test 1228 R: -1.040000\n    test 1229 d: -59.587611\n    test 1230 n: 0.0\n    test 1231 D: -101.000000\n    test 1232 r: -1.762783\n    test 1233 n: 0.0\n    test 1234 R: -1.010000\n    test 1235 d: -57.868737\n    test 1236 n: 0.0\n    test 1237 D: -98.000000\n    test 1238 r: -1.710423\n    test 1239 n: 0.0\n    test 1240 R: -0.980000\n    test 1241 d: -56.149864\n    test 1242 n: 0.0\n    test 1243 D: -95.000000\n    test 1244 r: -1.658063\n    test 1245 n: 0.0\n    test 1246 R: -0.950000\n    test 1247 d: -54.430991\n    test 1248 n: 0.0\n    test 1249 D: -92.000000\n    test 1250 r: -1.605703\n    test 1251 n: 0.0\n    test 1252 R: -0.920000\n    test 1253 d: -52.712117\n    test 1254 n: 0.0\n    test 1255 D: -89.000000\n    test 1256 r: -1.553343\n    test 1257 n: 0.0\n    test 1258 R: -0.890000\n    test 1259 d: -50.993244\n    test 1260 n: 0.0\n    test 1261 D: -86.000000\n    test 1262 r: -1.500983\n    test 1263 n: 0.0\n    test 1264 R: -0.860000\n    test 1265 d: -49.274370\n    test 1266 n: 0.0\n    test 1267 D: -83.000000\n    test 1268 r: -1.448623\n    test 1269 n: 0.0\n    test 1270 R: -0.830000\n    test 1271 d: -47.555497\n    test 1272 n: 0.0\n    test 1273 D: -80.000000\n    test 1274 r: -1.396263\n    test 1275 n: 0.0\n    test 1276 R: -0.800000\n    test 1277 d: -45.836624\n    test 1278 n: 0.0\n    test 1279 D: -77.000000\n    test 1280 r: -1.343904\n    test 1281 n: 0.0\n    test 1282 R: -0.770000\n    test 1283 d: -44.117750\n    test 1284 n: 0.0\n    test 1285 D: -74.000000\n    test 1286 r: -1.291544\n    test 1287 n: 0.0\n    test 1288 R: -0.740000\n    test 1289 d: -42.398877\n    test 1290 n: 0.0\n    test 1291 D: -71.000000\n    test 1292 r: -1.239184\n    test 1293 n: 0.0\n    test 1294 R: -0.710000\n    test 1295 d: -40.680003\n    test 1296 n: 0.0\n    test 1297 D: -68.000000\n    test 1298 r: -1.186824\n    test 1299 n: 0.0\n    test 1300 R: -0.680000\n    test 1301 d: -38.961130\n    test 1302 n: 0.0\n    test 1303 D: -65.000000\n    test 1304 r: -1.134464\n    test 1305 n: 0.0\n    test 1306 R: -0.650000\n    test 1307 d: -37.242257\n    test 1308 n: 0.0\n    test 1309 D: -62.000000\n    test 1310 r: -1.082104\n    test 1311 n: 0.0\n    test 1312 R: -0.620000\n    test 1313 d: -35.523383\n    test 1314 n: 0.0\n    test 1315 D: -59.000000\n    test 1316 r: -1.029744\n    test 1317 n: 0.0\n    test 1318 R: -0.590000\n    test 1319 d: -33.804510\n    test 1320 n: 0.0\n    test 1321 D: -56.000000\n    test 1322 r: -0.977384\n    test 1323 n: 0.0\n    test 1324 R: -0.560000\n    test 1325 d: -32.085637\n    test 1326 n: 0.0\n    test 1327 D: -53.000000\n    test 1328 r: -0.925025\n    test 1329 n: 0.0\n    test 1330 R: -0.530000\n    test 1331 d: -30.366763\n    test 1332 n: 0.0\n    test 1333 D: -50.000000\n    test 1334 r: -0.872665\n    test 1335 n: 0.0\n    test 1336 R: -0.500000\n    test 1337 d: -28.647890\n    test 1338 n: 0.0\n    test 1339 D: -47.000000\n    test 1340 r: -0.820305\n    test 1341 n: 0.0\n    test 1342 R: -0.470000\n    test 1343 d: -26.929016\n    test 1344 n: 0.0\n    test 1345 D: -44.000000\n    test 1346 r: -0.767945\n    test 1347 n: 0.0\n    test 1348 R: -0.440000\n    test 1349 d: -25.210143\n    test 1350 n: 0.0\n    test 1351 D: -41.000000\n    test 1352 r: -0.715585\n    test 1353 n: 0.0\n    test 1354 R: -0.410000\n    test 1355 d: -23.491270\n    test 1356 n: 0.0\n    test 1357 D: -38.000000\n    test 1358 r: -0.663225\n    test 1359 n: 0.0\n    test 1360 R: -0.380000\n    test 1361 d: -21.772396\n    test 1362 n: 0.0\n    test 1363 D: -35.000000\n    test 1364 r: -0.610865\n    test 1365 n: 0.0\n    test 1366 R: -0.350000\n    test 1367 d: -20.053523\n    test 1368 n: 0.0\n    test 1369 D: -32.000000\n    test 1370 r: -0.558505\n    test 1371 n: 0.0\n    test 1372 R: -0.320000\n    test 1373 d: -18.334649\n    test 1374 n: 0.0\n    test 1375 D: -29.000000\n    test 1376 r: -0.506145\n    test 1377 n: 0.0\n    test 1378 R: -0.290000\n    test 1379 d: -16.615776\n    test 1380 n: 0.0\n    test 1381 D: -26.000000\n    test 1382 r: -0.453786\n    test 1383 n: 0.0\n    test 1384 R: -0.260000\n    test 1385 d: -14.896903\n    test 1386 n: 0.0\n    test 1387 D: -23.000000\n    test 1388 r: -0.401426\n    test 1389 n: 0.0\n    test 1390 R: -0.230000\n    test 1391 d: -13.178029\n    test 1392 n: 0.0\n    test 1393 D: -20.000000\n    test 1394 r: -0.349066\n    test 1395 n: 0.0\n    test 1396 R: -0.200000\n    test 1397 d: -11.459156\n    test 1398 n: 0.0\n    test 1399 D: -17.000000\n    test 1400 r: -0.296706\n    test 1401 n: 0.0\n    test 1402 R: -0.170000\n    test 1403 d: -9.740283\n    test 1404 n: 0.0\n    test 1405 D: -14.000000\n    test 1406 r: -0.244346\n    test 1407 n: 0.0\n    test 1408 R: -0.140000\n    test 1409 d: -8.021409\n    test 1410 n: 0.0\n    test 1411 D: -11.000000\n    test 1412 r: -0.191986\n    test 1413 n: 0.0\n    test 1414 R: -0.110000\n    test 1415 d: -6.302536\n    test 1416 n: 0.0\n    test 1417 D: -8.000000\n    test 1418 r: -0.139626\n    test 1419 n: 0.0\n    test 1420 R: -0.080000\n    test 1421 d: -4.583662\n    test 1422 n: 0.0\n    test 1423 D: -5.000000\n    test 1424 r: -0.087266\n    test 1425 n: 0.0\n    test 1426 R: -0.050000\n    test 1427 d: -2.864789\n    test 1428 n: 0.0\n    test 1429 D: -2.000000\n    test 1430 r: -0.034907\n    test 1431 n: 0.0\n    test 1432 R: -0.020000\n    test 1433 d: -1.145916\n    test 1434 n: 0.0\n    test 1435 D: 1.000000\n    test 1436 r: 0.017453\n    test 1437 n: 0.0\n    test 1438 R: 0.010000\n    test 1439 d: 0.572958\n    test 1440 n: 0.0\n    test 1441 D: 4.000000\n    test 1442 r: 0.069813\n    test 1443 n: 0.0\n    test 1444 R: 0.040000\n    test 1445 d: 2.291831\n    test 1446 n: 0.0\n    test 1447 D: 7.000000\n    test 1448 r: 0.122173\n    test 1449 n: 0.0\n    test 1450 R: 0.070000\n    test 1451 d: 4.010705\n    test 1452 n: 0.0\n    test 1453 D: 10.000000\n    test 1454 r: 0.174533\n    test 1455 n: 0.0\n    test 1456 R: 0.100000\n    test 1457 d: 5.729578\n    test 1458 n: 0.0\n    test 1459 D: 13.000000\n    test 1460 r: 0.226893\n    test 1461 n: 0.0\n    test 1462 R: 0.130000\n    test 1463 d: 7.448451\n    test 1464 n: 0.0\n    test 1465 D: 16.000000\n    test 1466 r: 0.279253\n    test 1467 n: 0.0\n    test 1468 R: 0.160000\n    test 1469 d: 9.167325\n    test 1470 n: 0.0\n    test 1471 D: 19.000000\n    test 1472 r: 0.331613\n    test 1473 n: 0.0\n    test 1474 R: 0.190000\n    test 1475 d: 10.886198\n    test 1476 n: 0.0\n    test 1477 D: 22.000000\n    test 1478 r: 0.383972\n    test 1479 n: 0.0\n    test 1480 R: 0.220000\n    test 1481 d: 12.605071\n    test 1482 n: 0.0\n    test 1483 D: 25.000000\n    test 1484 r: 0.436332\n    test 1485 n: 0.0\n    test 1486 R: 0.250000\n    test 1487 d: 14.323945\n    test 1488 n: 0.0\n    test 1489 D: 28.000000\n    test 1490 r: 0.488692\n    test 1491 n: 0.0\n    test 1492 R: 0.280000\n    test 1493 d: 16.042818\n    test 1494 n: 0.0\n    test 1495 D: 31.000000\n    test 1496 r: 0.541052\n    test 1497 n: 0.0\n    test 1498 R: 0.310000\n    test 1499 d: 17.761692\n    test 1500 n: 0.0\n    test 1501 D: 34.000000\n    test 1502 r: 0.593412\n    test 1503 n: 0.0\n    test 1504 R: 0.340000\n    test 1505 d: 19.480565\n    test 1506 n: 0.0\n    test 1507 D: 37.000000\n    test 1508 r: 0.645772\n    test 1509 n: 0.0\n    test 1510 R: 0.370000\n    test 1511 d: 21.199438\n    test 1512 n: 0.0\n    test 1513 D: 40.000000\n    test 1514 r: 0.698132\n    test 1515 n: 0.0\n    test 1516 R: 0.400000\n    test 1517 d: 22.918312\n    test 1518 n: 0.0\n    test 1519 D: 43.000000\n    test 1520 r: 0.750492\n    test 1521 n: 0.0\n    test 1522 R: 0.430000\n    test 1523 d: 24.637185\n    test 1524 n: 0.0\n    test 1525 D: 46.000000\n    test 1526 r: 0.802851\n    test 1527 n: 0.0\n    test 1528 R: 0.460000\n    test 1529 d: 26.356059\n    test 1530 n: 0.0\n    test 1531 D: 49.000000\n    test 1532 r: 0.855211\n    test 1533 n: 0.0\n    test 1534 R: 0.490000\n    test 1535 d: 28.074932\n    test 1536 n: 0.0\n    test 1537 D: 52.000000\n    test 1538 r: 0.907571\n    test 1539 n: 0.0\n    test 1540 R: 0.520000\n    test 1541 d: 29.793805\n    test 1542 n: 0.0\n    test 1543 D: 55.000000\n    test 1544 r: 0.959931\n    test 1545 n: 0.0\n    test 1546 R: 0.550000\n    test 1547 d: 31.512679\n    test 1548 n: 0.0\n    test 1549 D: 58.000000\n    test 1550 r: 1.012291\n    test 1551 n: 0.0\n    test 1552 R: 0.580000\n    test 1553 d: 33.231552\n    test 1554 n: 0.0\n    test 1555 D: 61.000000\n    test 1556 r: 1.064651\n    test 1557 n: 0.0\n    test 1558 R: 0.610000\n    test 1559 d: 34.950426\n    test 1560 n: 0.0\n    test 1561 D: 64.000000\n    test 1562 r: 1.117011\n    test 1563 n: 0.0\n    test 1564 R: 0.640000\n    test 1565 d: 36.669299\n    test 1566 n: 0.0\n    test 1567 D: 67.000000\n    test 1568 r: 1.169371\n    test 1569 n: 0.0\n    test 1570 R: 0.670000\n    test 1571 d: 38.388172\n    test 1572 n: 0.0\n    test 1573 D: 70.000000\n    test 1574 r: 1.221730\n    test 1575 n: 0.0\n    test 1576 R: 0.700000\n    test 1577 d: 40.107046\n    test 1578 n: 0.0\n    test 1579 D: 73.000000\n    test 1580 r: 1.274090\n    test 1581 n: 0.0\n    test 1582 R: 0.730000\n    test 1583 d: 41.825919\n    test 1584 n: 0.0\n    test 1585 D: 76.000000\n    test 1586 r: 1.326450\n    test 1587 n: 0.0\n    test 1588 R: 0.760000\n    test 1589 d: 43.544792\n    test 1590 n: 0.0\n    test 1591 D: 79.000000\n    test 1592 r: 1.378810\n    test 1593 n: 0.0\n    test 1594 R: 0.790000\n    test 1595 d: 45.263666\n    test 1596 n: 0.0\n    test 1597 D: 82.000000\n    test 1598 r: 1.431170\n    test 1599 n: 0.0\n    test 1600 R: 0.820000\n    test 1601 d: 46.982539\n    test 1602 n: 0.0\n    test 1603 D: 85.000000\n    test 1604 r: 1.483530\n    test 1605 n: 0.0\n    test 1606 R: 0.850000\n    test 1607 d: 48.701413\n    test 1608 n: 0.0\n    test 1609 D: 88.000000\n    test 1610 r: 1.535890\n    test 1611 n: 0.0\n    test 1612 R: 0.880000\n    test 1613 d: 50.420286\n    test 1614 n: 0.0\n    test 1615 D: 91.000000\n    test 1616 r: 1.588250\n    test 1617 n: 0.0\n    test 1618 R: 0.910000\n    test 1619 d: 52.139159\n    test 1620 n: 0.0\n    test 1621 D: 94.000000\n    test 1622 r: 1.640609\n    test 1623 n: 0.0\n    test 1624 R: 0.940000\n    test 1625 d: 53.858033\n    test 1626 n: 0.0\n    test 1627 D: 97.000000\n    test 1628 r: 1.692969\n    test 1629 n: 0.0\n    test 1630 R: 0.970000\n    test 1631 d: 55.576906\n    test 1632 n: 0.0\n    test 1633 D: 100.000000\n    test 1634 r: 1.745329\n    test 1635 n: 0.0\n    test 1636 R: 1.000000\n    test 1637 d: 57.295780\n    test 1638 n: 0.0\n    test 1639 D: 103.000000\n    test 1640 r: 1.797689\n    test 1641 n: 0.0\n    test 1642 R: 1.030000\n    test 1643 d: 59.014653\n    test 1644 n: 0.0\n    test 1645 D: 106.000000\n    test 1646 r: 1.850049\n    test 1647 n: 0.0\n    test 1648 R: 1.060000\n    test 1649 d: 60.733526\n    test 1650 n: 0.0\n    test 1651 D: 109.000000\n    test 1652 r: 1.902409\n    test 1653 n: 0.0\n    test 1654 R: 1.090000\n    test 1655 d: 62.452400\n    test 1656 n: 0.0\n    test 1657 D: 112.000000\n    test 1658 r: 1.954769\n    test 1659 n: 0.0\n    test 1660 R: 1.120000\n    test 1661 d: 64.171273\n    test 1662 n: 0.0\n    test 1663 D: 115.000000\n    test 1664 r: 2.007129\n    test 1665 n: 0.0\n    test 1666 R: 1.150000\n    test 1667 d: 65.890146\n    test 1668 n: 0.0\n    test 1669 D: 118.000000\n    test 1670 r: 2.059489\n    test 1671 n: 0.0\n    test 1672 R: 1.180000\n    test 1673 d: 67.609020\n    test 1674 n: 0.0\n    test 1675 D: 121.000000\n    test 1676 r: 2.111848\n    test 1677 n: 0.0\n    test 1678 R: 1.210000\n    test 1679 d: 69.327893\n    test 1680 n: 0.0\n    test 1681 D: 124.000000\n    test 1682 r: 2.164208\n    test 1683 n: 0.0\n    test 1684 R: 1.240000\n    test 1685 d: 71.046767\n    test 1686 n: 0.0\n    test 1687 D: 127.000000\n    test 1688 r: 2.216568\n    test 1689 n: 0.0\n    test 1690 R: 1.270000\n    test 1691 d: 72.765640\n    test 1692 n: 0.0\n    test 1693 D: 130.000000\n    test 1694 r: 2.268928\n    test 1695 n: 0.0\n    test 1696 R: 1.300000\n    test 1697 d: 74.484513\n    test 1698 n: 0.0\n    test 1699 D: 133.000000\n    test 1700 r: 2.321288\n    test 1701 n: 0.0\n    test 1702 R: 1.330000\n    test 1703 d: 76.203387\n    test 1704 n: 0.0\n    test 1705 D: 136.000000\n    test 1706 r: 2.373648\n    test 1707 n: 0.0\n    test 1708 R: 1.360000\n    test 1709 d: 77.922260\n    test 1710 n: 0.0\n    test 1711 D: 139.000000\n    test 1712 r: 2.426008\n    test 1713 n: 0.0\n    test 1714 R: 1.390000\n    test 1715 d: 79.641134\n    test 1716 n: 0.0\n    test 1717 D: 142.000000\n    test 1718 r: 2.478368\n    test 1719 n: 0.0\n    test 1720 R: 1.420000\n    test 1721 d: 81.360007\n    test 1722 n: 0.0\n    test 1723 D: 145.000000\n    test 1724 r: 2.530727\n    test 1725 n: 0.0\n    test 1726 R: 1.450000\n    test 1727 d: 83.078880\n    test 1728 n: 0.0\n    test 1729 D: 148.000000\n    test 1730 r: 2.583087\n    test 1731 n: 0.0\n    test 1732 R: 1.480000\n    test 1733 d: 84.797754\n    test 1734 n: 0.0\n    test 1735 D: 151.000000\n    test 1736 r: 2.635447\n    test 1737 n: 0.0\n    test 1738 R: 1.510000\n    test 1739 d: 86.516627\n    test 1740 n: 0.0\n    test 1741 D: 154.000000\n    test 1742 r: 2.687807\n    test 1743 n: 0.0\n    test 1744 R: 1.540000\n    test 1745 d: 88.235500\n    test 1746 n: 0.0\n    test 1747 D: 157.000000\n    test 1748 r: 2.740167\n    test 1749 n: 0.0\n    test 1750 R: 1.570000\n    test 1751 d: 89.954374\n    test 1752 n: 0.0\n    test 1753 D: 160.000000\n    test 1754 r: 2.792527\n    test 1755 n: 0.0\n    test 1756 R: 1.600000\n    test 1757 d: 91.673247\n    test 1758 n: 0.0\n    test 1759 D: 163.000000\n    test 1760 r: 2.844887\n    test 1761 n: 0.0\n    test 1762 R: 1.630000\n    test 1763 d: 93.392121\n    test 1764 n: 0.0\n    test 1765 D: 166.000000\n    test 1766 r: 2.897247\n    test 1767 n: 0.0\n    test 1768 R: 1.660000\n    test 1769 d: 95.110994\n    test 1770 n: 0.0\n    test 1771 D: 169.000000\n    test 1772 r: 2.949606\n    test 1773 n: 0.0\n    test 1774 R: 1.690000\n    test 1775 d: 96.829867\n    test 1776 n: 0.0\n    test 1777 D: 172.000000\n    test 1778 r: 3.001966\n    test 1779 n: 0.0\n    test 1780 R: 1.720000\n    test 1781 d: 98.548741\n    test 1782 n: 0.0\n    test 1783 D: 175.000000\n    test 1784 r: 3.054326\n    test 1785 n: 0.0\n    test 1786 R: 1.750000\n    test 1787 d: 100.267614\n    test 1788 n: 0.0\n    test 1789 D: 178.000000\n    test 1790 r: 3.106686\n    test 1791 n: 0.0\n    test 1792 R: 1.780000\n    test 1793 d: 101.986488\n    test 1794 n: 0.0\n    test 1795 D: 181.000000\n    test 1796 r: 3.159046\n    test 1797 n: 1.0\n    test 1798 R: 1.810000\n    test 1799 d: 103.705361\n    test 1800 n: 0.0\n    test 1801 D: 184.000000\n    test 1802 r: 3.211406\n    test 1803 n: 1.0\n    test 1804 R: 1.840000\n    test 1805 d: 105.424234\n    test 1806 n: 0.0\n    test 1807 D: 187.000000\n    test 1808 r: 3.263766\n    test 1809 n: 1.0\n    test 1810 R: 1.870000\n    test 1811 d: 107.143108\n    test 1812 n: 0.0\n    test 1813 D: 190.000000\n    test 1814 r: 3.316126\n    test 1815 n: 1.0\n    test 1816 R: 1.900000\n    test 1817 d: 108.861981\n    test 1818 n: 0.0\n    test 1819 D: 193.000000\n    test 1820 r: 3.368485\n    test 1821 n: 1.0\n    test 1822 R: 1.930000\n    test 1823 d: 110.580854\n    test 1824 n: 0.0\n    test 1825 D: 196.000000\n    test 1826 r: 3.420845\n    test 1827 n: 1.0\n    test 1828 R: 1.960000\n    test 1829 d: 112.299728\n    test 1830 n: 0.0\n    test 1831 D: 199.000000\n    test 1832 r: 3.473205\n    test 1833 n: 1.0\n    test 1834 R: 1.990000\n    test 1835 d: 114.018601\n    test 1836 n: 0.0\n    test 1837 D: 202.000000\n    test 1838 r: 3.525565\n    test 1839 n: 1.0\n    test 1840 R: 2.020000\n    test 1841 d: 115.737475\n    test 1842 n: 0.0\n    test 1843 D: 205.000000\n    test 1844 r: 3.577925\n    test 1845 n: 1.0\n    test 1846 R: 2.050000\n    test 1847 d: 117.456348\n    test 1848 n: 0.0\n    test 1849 D: 208.000000\n    test 1850 r: 3.630285\n    test 1851 n: 1.0\n    test 1852 R: 2.080000\n    test 1853 d: 119.175221\n    test 1854 n: 0.0\n    test 1855 D: 211.000000\n    test 1856 r: 3.682645\n    test 1857 n: 1.0\n    test 1858 R: 2.110000\n    test 1859 d: 120.894095\n    test 1860 n: 0.0\n    test 1861 D: 214.000000\n    test 1862 r: 3.735005\n    test 1863 n: 1.0\n    test 1864 R: 2.140000\n    test 1865 d: 122.612968\n    test 1866 n: 0.0\n    test 1867 D: 217.000000\n    test 1868 r: 3.787364\n    test 1869 n: 1.0\n    test 1870 R: 2.170000\n    test 1871 d: 124.331842\n    test 1872 n: 0.0\n    test 1873 D: 220.000000\n    test 1874 r: 3.839724\n    test 1875 n: 1.0\n    test 1876 R: 2.200000\n    test 1877 d: 126.050715\n    test 1878 n: 0.0\n    test 1879 D: 223.000000\n    test 1880 r: 3.892084\n    test 1881 n: 1.0\n    test 1882 R: 2.230000\n    test 1883 d: 127.769588\n    test 1884 n: 0.0\n    test 1885 D: 226.000000\n    test 1886 r: 3.944444\n    test 1887 n: 1.0\n    test 1888 R: 2.260000\n    test 1889 d: 129.488462\n    test 1890 n: 0.0\n    test 1891 D: 229.000000\n    test 1892 r: 3.996804\n    test 1893 n: 1.0\n    test 1894 R: 2.290000\n    test 1895 d: 131.207335\n    test 1896 n: 0.0\n    test 1897 D: 232.000000\n    test 1898 r: 4.049164\n    test 1899 n: 1.0\n    test 1900 R: 2.320000\n    test 1901 d: 132.926208\n    test 1902 n: 0.0\n    test 1903 D: 235.000000\n    test 1904 r: 4.101524\n    test 1905 n: 1.0\n    test 1906 R: 2.350000\n    test 1907 d: 134.645082\n    test 1908 n: 0.0\n    test 1909 D: 238.000000\n    test 1910 r: 4.153884\n    test 1911 n: 1.0\n    test 1912 R: 2.380000\n    test 1913 d: 136.363955\n    test 1914 n: 0.0\n    test 1915 D: 241.000000\n    test 1916 r: 4.206243\n    test 1917 n: 1.0\n    test 1918 R: 2.410000\n    test 1919 d: 138.082829\n    test 1920 n: 0.0\n    test 1921 D: 244.000000\n    test 1922 r: 4.258603\n    test 1923 n: 1.0\n    test 1924 R: 2.440000\n    test 1925 d: 139.801702\n    test 1926 n: 0.0\n    test 1927 D: 247.000000\n    test 1928 r: 4.310963\n    test 1929 n: 1.0\n    test 1930 R: 2.470000\n    test 1931 d: 141.520575\n    test 1932 n: 0.0\n    test 1933 D: 250.000000\n    test 1934 r: 4.363323\n    test 1935 n: 1.0\n    test 1936 R: 2.500000\n    test 1937 d: 143.239449\n    test 1938 n: 0.0\n    test 1939 D: 253.000000\n    test 1940 r: 4.415683\n    test 1941 n: 1.0\n    test 1942 R: 2.530000\n    test 1943 d: 144.958322\n    test 1944 n: 0.0\n    test 1945 D: 256.000000\n    test 1946 r: 4.468043\n    test 1947 n: 1.0\n    test 1948 R: 2.560000\n    test 1949 d: 146.677196\n    test 1950 n: 0.0\n    test 1951 D: 259.000000\n    test 1952 r: 4.520403\n    test 1953 n: 1.0\n    test 1954 R: 2.590000\n    test 1955 d: 148.396069\n    test 1956 n: 0.0\n    test 1957 D: 262.000000\n    test 1958 r: 4.572763\n    test 1959 n: 1.0\n    test 1960 R: 2.620000\n    test 1961 d: 150.114942\n    test 1962 n: 0.0\n    test 1963 D: 265.000000\n    test 1964 r: 4.625123\n    test 1965 n: 1.0\n    test 1966 R: 2.650000\n    test 1967 d: 151.833816\n    test 1968 n: 0.0\n    test 1969 D: 268.000000\n    test 1970 r: 4.677482\n    test 1971 n: 1.0\n    test 1972 R: 2.680000\n    test 1973 d: 153.552689\n    test 1974 n: 0.0\n    test 1975 D: 271.000000\n    test 1976 r: 4.729842\n    test 1977 n: 1.0\n    test 1978 R: 2.710000\n    test 1979 d: 155.271562\n    test 1980 n: 0.0\n    test 1981 D: 274.000000\n    test 1982 r: 4.782202\n    test 1983 n: 1.0\n    test 1984 R: 2.740000\n    test 1985 d: 156.990436\n    test 1986 n: 0.0\n    test 1987 D: 277.000000\n    test 1988 r: 4.834562\n    test 1989 n: 1.0\n    test 1990 R: 2.770000\n    test 1991 d: 158.709309\n    test 1992 n: 0.0\n    test 1993 D: 280.000000\n    test 1994 r: 4.886922\n    test 1995 n: 1.0\n    test 1996 R: 2.800000\n    test 1997 d: 160.428183\n    test 1998 n: 0.0\n    test 1999 D: 283.000000\n    test 2000 r: 4.939282\n    test 2001 n: 1.0\n    test 2002 R: 2.830000\n    test 2003 d: 162.147056\n    test 2004 n: 0.0\n    test 2005 D: 286.000000\n    test 2006 r: 4.991642\n    test 2007 n: 1.0\n    test 2008 R: 2.860000\n    test 2009 d: 163.865929\n    test 2010 n: 0.0\n    test 2011 D: 289.000000\n    test 2012 r: 5.044002\n    test 2013 n: 1.0\n    test 2014 R: 2.890000\n    test 2015 d: 165.584803\n    test 2016 n: 0.0\n    test 2017 D: 292.000000\n    test 2018 r: 5.096361\n    test 2019 n: 1.0\n    test 2020 R: 2.920000\n    test 2021 d: 167.303676\n    test 2022 n: 0.0\n    test 2023 D: 295.000000\n    test 2024 r: 5.148721\n    test 2025 n: 1.0\n    test 2026 R: 2.950000\n    test 2027 d: 169.022550\n    test 2028 n: 0.0\n    test 2029 D: 298.000000\n    test 2030 r: 5.201081\n    test 2031 n: 1.0\n    test 2032 R: 2.980000\n    test 2033 d: 170.741423\n    test 2034 n: 0.0\n    test 2035 D: 301.000000\n    test 2036 r: 5.253441\n    test 2037 n: 1.0\n    test 2038 R: 3.010000\n    test 2039 d: 172.460296\n    test 2040 n: 0.0\n    test 2041 D: 304.000000\n    test 2042 r: 5.305801\n    test 2043 n: 1.0\n    test 2044 R: 3.040000\n    test 2045 d: 174.179170\n    test 2046 n: 0.0\n    test 2047 D: 307.000000\n    test 2048 r: 5.358161\n    test 2049 n: 1.0\n    test 2050 R: 3.070000\n    test 2051 d: 175.898043\n    test 2052 n: 0.0\n    test 2053 D: 310.000000\n    test 2054 r: 5.410521\n    test 2055 n: 1.0\n    test 2056 R: 3.100000\n    test 2057 d: 177.616916\n    test 2058 n: 0.0\n    test 2059 D: 313.000000\n    test 2060 r: 5.462881\n    test 2061 n: 1.0\n    test 2062 R: 3.130000\n    test 2063 d: 179.335790\n    test 2064 n: 0.0\n    test 2065 D: 316.000000\n    test 2066 r: 5.515240\n    test 2067 n: 1.0\n    test 2068 R: 3.160000\n    test 2069 d: 181.054663\n    test 2070 n: 1.0\n    test 2071 D: 319.000000\n    test 2072 r: 5.567600\n    test 2073 n: 1.0\n    test 2074 R: 3.190000\n    test 2075 d: 182.773537\n    test 2076 n: 1.0\n    test 2077 D: 322.000000\n    test 2078 r: 5.619960\n    test 2079 n: 1.0\n    test 2080 R: 3.220000\n    test 2081 d: 184.492410\n    test 2082 n: 1.0\n    test 2083 D: 325.000000\n    test 2084 r: 5.672320\n    test 2085 n: 1.0\n    test 2086 R: 3.250000\n    test 2087 d: 186.211283\n    test 2088 n: 1.0\n    test 2089 D: 328.000000\n    test 2090 r: 5.724680\n    test 2091 n: 1.0\n    test 2092 R: 3.280000\n    test 2093 d: 187.930157\n    test 2094 n: 1.0\n    test 2095 D: 331.000000\n    test 2096 r: 5.777040\n    test 2097 n: 1.0\n    test 2098 R: 3.310000\n    test 2099 d: 189.649030\n    test 2100 n: 1.0\n    test 2101 D: 334.000000\n    test 2102 r: 5.829400\n    test 2103 n: 1.0\n    test 2104 R: 3.340000\n    test 2105 d: 191.367904\n    test 2106 n: 1.0\n    test 2107 D: 337.000000\n    test 2108 r: 5.881760\n    test 2109 n: 1.0\n    test 2110 R: 3.370000\n    test 2111 d: 193.086777\n    test 2112 n: 1.0\n    test 2113 D: 340.000000\n    test 2114 r: 5.934119\n    test 2115 n: 1.0\n    test 2116 R: 3.400000\n    test 2117 d: 194.805650\n    test 2118 n: 1.0\n    test 2119 D: 343.000000\n    test 2120 r: 5.986479\n    test 2121 n: 1.0\n    test 2122 R: 3.430000\n    test 2123 d: 196.524524\n    test 2124 n: 1.0\n    test 2125 D: 346.000000\n    test 2126 r: 6.038839\n    test 2127 n: 1.0\n    test 2128 R: 3.460000\n    test 2129 d: 198.243397\n    test 2130 n: 1.0\n    test 2131 D: 349.000000\n    test 2132 r: 6.091199\n    test 2133 n: 1.0\n    test 2134 R: 3.490000\n    test 2135 d: 199.962271\n    test 2136 n: 1.0\n    test 2137 D: 352.000000\n    test 2138 r: 6.143559\n    test 2139 n: 1.0\n    test 2140 R: 3.520000\n    test 2141 d: 201.681144\n    test 2142 n: 1.0\n    test 2143 D: 355.000000\n    test 2144 r: 6.195919\n    test 2145 n: 1.0\n    test 2146 R: 3.550000\n    test 2147 d: 203.400017\n    test 2148 n: 1.0\n    test 2149 D: 358.000000\n    test 2150 r: 6.248279\n    test 2151 n: 1.0\n    test 2152 R: 3.580000\n    test 2153 d: 205.118891\n    test 2154 n: 1.0\n    test 2155 D: 361.000000\n    test 2156 r: 6.300639\n    test 2157 n: 1.0\n    test 2158 R: 3.610000\n    test 2159 d: 206.837764\n    test 2160 n: 1.0\n    test 2161 D: 364.000000\n    test 2162 r: 6.352998\n    test 2163 n: 1.0\n    test 2164 R: 3.640000\n    test 2165 d: 208.556637\n    test 2166 n: 1.0\n    test 2167 D: 367.000000\n    test 2168 r: 6.405358\n    test 2169 n: 1.0\n    test 2170 R: 3.670000\n    test 2171 d: 210.275511\n    test 2172 n: 1.0\n    test 2173 D: 370.000000\n    test 2174 r: 6.457718\n    test 2175 n: 1.0\n    test 2176 R: 3.700000\n    test 2177 d: 211.994384\n    test 2178 n: 1.0\n    test 2179 D: 373.000000\n    test 2180 r: 6.510078\n    test 2181 n: 1.0\n    test 2182 R: 3.730000\n    test 2183 d: 213.713258\n    test 2184 n: 1.0\n    test 2185 D: 376.000000\n    test 2186 r: 6.562438\n    test 2187 n: 1.0\n    test 2188 R: 3.760000\n    test 2189 d: 215.432131\n    test 2190 n: 1.0\n    test 2191 D: 379.000000\n    test 2192 r: 6.614798\n    test 2193 n: 1.0\n    test 2194 R: 3.790000\n    test 2195 d: 217.151004\n    test 2196 n: 1.0\n    test 2197 D: 382.000000\n    test 2198 r: 6.667158\n    test 2199 n: 1.0\n    test 2200 R: 3.820000\n    test 2201 d: 218.869878\n    test 2202 n: 1.0\n    test 2203 D: 385.000000\n    test 2204 r: 6.719518\n    test 2205 n: 1.0\n    test 2206 R: 3.850000\n    test 2207 d: 220.588751\n    test 2208 n: 1.0\n    test 2209 D: 388.000000\n    test 2210 r: 6.771877\n    test 2211 n: 1.0\n    test 2212 R: 3.880000\n    test 2213 d: 222.307625\n    test 2214 n: 1.0\n    test 2215 D: 391.000000\n    test 2216 r: 6.824237\n    test 2217 n: 1.0\n    test 2218 R: 3.910000\n    test 2219 d: 224.026498\n    test 2220 n: 1.0\n    test 2221 D: 394.000000\n    test 2222 r: 6.876597\n    test 2223 n: 1.0\n    test 2224 R: 3.940000\n    test 2225 d: 225.745371\n    test 2226 n: 1.0\n    test 2227 D: 397.000000\n    test 2228 r: 6.928957\n    test 2229 n: 1.0\n    test 2230 R: 3.970000\n    test 2231 d: 227.464245\n    test 2232 n: 1.0\n    test 2233 D: 400.000000\n    test 2234 r: 6.981317\n    test 2235 n: 1.0\n    test 2236 R: 4.000000\n    test 2237 d: 229.183118\n    test 2238 n: 1.0\n    test 2239 D: 403.000000\n    test 2240 r: 7.033677\n    test 2241 n: 1.0\n    test 2242 R: 4.030000\n    test 2243 d: 230.901991\n    test 2244 n: 1.0\n    test 2245 D: 406.000000\n    test 2246 r: 7.086037\n    test 2247 n: 1.0\n    test 2248 R: 4.060000\n    test 2249 d: 232.620865\n    test 2250 n: 1.0\n    test 2251 D: 409.000000\n    test 2252 r: 7.138397\n    test 2253 n: 1.0\n    test 2254 R: 4.090000\n    test 2255 d: 234.339738\n    test 2256 n: 1.0\n    test 2257 D: 412.000000\n    test 2258 r: 7.190757\n    test 2259 n: 1.0\n    test 2260 R: 4.120000\n    test 2261 d: 236.058612\n    test 2262 n: 1.0\n    test 2263 D: 415.000000\n    test 2264 r: 7.243116\n    test 2265 n: 1.0\n    test 2266 R: 4.150000\n    test 2267 d: 237.777485\n    test 2268 n: 1.0\n    test 2269 D: 418.000000\n    test 2270 r: 7.295476\n    test 2271 n: 1.0\n    test 2272 R: 4.180000\n    test 2273 d: 239.496358\n    test 2274 n: 1.0\n    test 2275 D: 421.000000\n    test 2276 r: 7.347836\n    test 2277 n: 1.0\n    test 2278 R: 4.210000\n    test 2279 d: 241.215232\n    test 2280 n: 1.0\n    test 2281 D: 424.000000\n    test 2282 r: 7.400196\n    test 2283 n: 1.0\n    test 2284 R: 4.240000\n    test 2285 d: 242.934105\n    test 2286 n: 1.0\n    test 2287 D: 427.000000\n    test 2288 r: 7.452556\n    test 2289 n: 1.0\n    test 2290 R: 4.270000\n    test 2291 d: 244.652979\n    test 2292 n: 1.0\n    test 2293 D: 430.000000\n    test 2294 r: 7.504916\n    test 2295 n: 1.0\n    test 2296 R: 4.300000\n    test 2297 d: 246.371852\n    test 2298 n: 1.0\n    test 2299 D: 433.000000\n    test 2300 r: 7.557276\n    test 2301 n: 1.0\n    test 2302 R: 4.330000\n    test 2303 d: 248.090725\n    test 2304 n: 1.0\n    test 2305 D: 436.000000\n    test 2306 r: 7.609636\n    test 2307 n: 1.0\n    test 2308 R: 4.360000\n    test 2309 d: 249.809599\n    test 2310 n: 1.0\n    test 2311 D: 439.000000\n    test 2312 r: 7.661995\n    test 2313 n: 1.0\n    test 2314 R: 4.390000\n    test 2315 d: 251.528472\n    test 2316 n: 1.0\n    test 2317 D: 442.000000\n    test 2318 r: 7.714355\n    test 2319 n: 1.0\n    test 2320 R: 4.420000\n    test 2321 d: 253.247345\n    test 2322 n: 1.0\n    test 2323 D: 445.000000\n    test 2324 r: 7.766715\n    test 2325 n: 1.0\n    test 2326 R: 4.450000\n    test 2327 d: 254.966219\n    test 2328 n: 1.0\n    test 2329 D: 448.000000\n    test 2330 r: 7.819075\n    test 2331 n: 1.0\n    test 2332 R: 4.480000\n    test 2333 d: 256.685092\n    test 2334 n: 1.0\n    test 2335 D: 451.000000\n    test 2336 r: 7.871435\n    test 2337 n: 1.0\n    test 2338 R: 4.510000\n    test 2339 d: 258.403966\n    test 2340 n: 1.0\n    test 2341 D: 454.000000\n    test 2342 r: 7.923795\n    test 2343 n: 1.0\n    test 2344 R: 4.540000\n    test 2345 d: 260.122839\n    test 2346 n: 1.0\n    test 2347 D: 457.000000\n    test 2348 r: 7.976155\n    test 2349 n: 1.0\n    test 2350 R: 4.570000\n    test 2351 d: 261.841712\n    test 2352 n: 1.0\n    test 2353 D: 460.000000\n    test 2354 r: 8.028515\n    test 2355 n: 1.0\n    test 2356 R: 4.600000\n    test 2357 d: 263.560586\n    test 2358 n: 1.0\n    test 2359 D: 463.000000\n    test 2360 r: 8.080874\n    test 2361 n: 1.0\n    test 2362 R: 4.630000\n    test 2363 d: 265.279459\n    test 2364 n: 1.0\n    test 2365 D: 466.000000\n    test 2366 r: 8.133234\n    test 2367 n: 1.0\n    test 2368 R: 4.660000\n    test 2369 d: 266.998333\n    test 2370 n: 1.0\n    test 2371 D: 469.000000\n    test 2372 r: 8.185594\n    test 2373 n: 1.0\n    test 2374 R: 4.690000\n    test 2375 d: 268.717206\n    test 2376 n: 1.0\n    test 2377 D: 472.000000\n    test 2378 r: 8.237954\n    test 2379 n: 1.0\n    test 2380 R: 4.720000\n    test 2381 d: 270.436079\n    test 2382 n: 1.0\n    test 2383 D: 475.000000\n    test 2384 r: 8.290314\n    test 2385 n: 1.0\n    test 2386 R: 4.750000\n    test 2387 d: 272.154953\n    test 2388 n: 1.0\n    test 2389 D: 478.000000\n    test 2390 r: 8.342674\n    test 2391 n: 1.0\n    test 2392 R: 4.780000\n    test 2393 d: 273.873826\n    test 2394 n: 1.0\n    test 2395 D: 481.000000\n    test 2396 r: 8.395034\n    test 2397 n: 1.0\n    test 2398 R: 4.810000\n    test 2399 d: 275.592699\n    test 2400 n: 1.0\n    test 2401 D: 484.000000\n    test 2402 r: 8.447394\n    test 2403 n: 1.0\n    test 2404 R: 4.840000\n    test 2405 d: 277.311573\n    test 2406 n: 1.0\n    test 2407 D: 487.000000\n    test 2408 r: 8.499753\n    test 2409 n: 1.0\n    test 2410 R: 4.870000\n    test 2411 d: 279.030446\n    test 2412 n: 1.0\n    test 2413 D: 490.000000\n    test 2414 r: 8.552113\n    test 2415 n: 1.0\n    test 2416 R: 4.900000\n    test 2417 d: 280.749320\n    test 2418 n: 1.0\n    test 2419 D: 493.000000\n    test 2420 r: 8.604473\n    test 2421 n: 1.0\n    test 2422 R: 4.930000\n    test 2423 d: 282.468193\n    test 2424 n: 1.0\n    test 2425 D: 496.000000\n    test 2426 r: 8.656833\n    test 2427 n: 1.0\n    test 2428 R: 4.960000\n    test 2429 d: 284.187066\n    test 2430 n: 1.0\n    test 2431 D: 499.000000\n    test 2432 r: 8.709193\n    test 2433 n: 1.0\n    test 2434 R: 4.990000\n    test 2435 d: 285.905940\n    test 2436 n: 1.0\n    test 2437 D: 502.000000\n    test 2438 r: 8.761553\n    test 2439 n: 1.0\n    test 2440 R: 5.020000\n    test 2441 d: 287.624813\n    test 2442 n: 1.0\n    test 2443 D: 505.000000\n    test 2444 r: 8.813913\n    test 2445 n: 1.0\n    test 2446 R: 5.050000\n    test 2447 d: 289.343687\n    test 2448 n: 1.0\n    test 2449 D: 508.000000\n    test 2450 r: 8.866273\n    test 2451 n: 1.0\n    test 2452 R: 5.080000\n    test 2453 d: 291.062560\n    test 2454 n: 1.0\n    test 2455 D: 511.000000\n    test 2456 r: 8.918632\n    test 2457 n: 1.0\n    test 2458 R: 5.110000\n    test 2459 d: 292.781433\n    test 2460 n: 1.0\n    test 2461 D: 514.000000\n    test 2462 r: 8.970992\n    test 2463 n: 1.0\n    test 2464 R: 5.140000\n    test 2465 d: 294.500307\n    test 2466 n: 1.0\n    test 2467 D: 517.000000\n    test 2468 r: 9.023352\n    test 2469 n: 1.0\n    test 2470 R: 5.170000\n    test 2471 d: 296.219180\n    test 2472 n: 1.0\n    test 2473 D: 520.000000\n    test 2474 r: 9.075712\n    test 2475 n: 1.0\n    test 2476 R: 5.200000\n    test 2477 d: 297.938053\n    test 2478 n: 1.0\n    test 2479 D: 523.000000\n    test 2480 r: 9.128072\n    test 2481 n: 1.0\n    test 2482 R: 5.230000\n    test 2483 d: 299.656927\n    test 2484 n: 1.0\n    test 2485 D: 526.000000\n    test 2486 r: 9.180432\n    test 2487 n: 1.0\n    test 2488 R: 5.260000\n    test 2489 d: 301.375800\n    test 2490 n: 1.0\n    test 2491 D: 529.000000\n    test 2492 r: 9.232792\n    test 2493 n: 1.0\n    test 2494 R: 5.290000\n    test 2495 d: 303.094674\n    test 2496 n: 1.0\n    test 2497 D: 532.000000\n    test 2498 r: 9.285152\n    test 2499 n: 1.0\n    test 2500 R: 5.320000\n    test 2501 d: 304.813547\n    test 2502 n: 1.0\n    test 2503 D: 535.000000\n    test 2504 r: 9.337511\n    test 2505 n: 1.0\n    test 2506 R: 5.350000\n    test 2507 d: 306.532420\n    test 2508 n: 1.0\n    test 2509 D: 538.000000\n    test 2510 r: 9.389871\n    test 2511 n: 1.0\n    test 2512 R: 5.380000\n    test 2513 d: 308.251294\n    test 2514 n: 1.0\n    test 2515 D: 541.000000\n    test 2516 r: 9.442231\n    test 2517 n: 2.0\n    test 2518 R: 5.410000\n    test 2519 d: 309.970167\n    test 2520 n: 1.0\n    test 2521 D: 544.000000\n    test 2522 r: 9.494591\n    test 2523 n: 2.0\n    test 2524 R: 5.440000\n    test 2525 d: 311.689041\n    test 2526 n: 1.0\n    test 2527 D: 547.000000\n    test 2528 r: 9.546951\n    test 2529 n: 2.0\n    test 2530 R: 5.470000\n    test 2531 d: 313.407914\n    test 2532 n: 1.0\n    test 2533 D: 550.000000\n    test 2534 r: 9.599311\n    test 2535 n: 2.0\n    test 2536 R: 5.500000\n    test 2537 d: 315.126787\n    test 2538 n: 1.0\n    test 2539 D: 553.000000\n    test 2540 r: 9.651671\n    test 2541 n: 2.0\n    test 2542 R: 5.530000\n    test 2543 d: 316.845661\n    test 2544 n: 1.0\n    test 2545 D: 556.000000\n    test 2546 r: 9.704031\n    test 2547 n: 2.0\n    test 2548 R: 5.560000\n    test 2549 d: 318.564534\n    test 2550 n: 1.0\n    test 2551 D: 559.000000\n    test 2552 r: 9.756391\n    test 2553 n: 2.0\n    test 2554 R: 5.590000\n    test 2555 d: 320.283407\n    test 2556 n: 1.0\n    test 2557 D: 562.000000\n    test 2558 r: 9.808750\n    test 2559 n: 2.0\n    test 2560 R: 5.620000\n    test 2561 d: 322.002281\n    test 2562 n: 1.0\n    test 2563 D: 565.000000\n    test 2564 r: 9.861110\n    test 2565 n: 2.0\n    test 2566 R: 5.650000\n    test 2567 d: 323.721154\n    test 2568 n: 1.0\n    test 2569 D: 568.000000\n    test 2570 r: 9.913470\n    test 2571 n: 2.0\n    test 2572 R: 5.680000\n    test 2573 d: 325.440028\n    test 2574 n: 1.0\n    test 2575 D: 571.000000\n    test 2576 r: 9.965830\n    test 2577 n: 2.0\n    test 2578 R: 5.710000\n    test 2579 d: 327.158901\n    test 2580 n: 1.0\n    test 2581 D: 574.000000\n    test 2582 r: 10.018190\n    test 2583 n: 2.0\n    test 2584 R: 5.740000\n    test 2585 d: 328.877774\n    test 2586 n: 1.0\n    test 2587 D: 577.000000\n    test 2588 r: 10.070550\n    test 2589 n: 2.0\n    test 2590 R: 5.770000\n    test 2591 d: 330.596648\n    test 2592 n: 1.0\n    test 2593 D: 580.000000\n    test 2594 r: 10.122910\n    test 2595 n: 2.0\n    test 2596 R: 5.800000\n    test 2597 d: 332.315521\n    test 2598 n: 1.0\n    test 2599 D: 583.000000\n    test 2600 r: 10.175270\n    test 2601 n: 2.0\n    test 2602 R: 5.830000\n    test 2603 d: 334.034395\n    test 2604 n: 1.0\n    test 2605 D: 586.000000\n    test 2606 r: 10.227629\n    test 2607 n: 2.0\n    test 2608 R: 5.860000\n    test 2609 d: 335.753268\n    test 2610 n: 1.0\n    test 2611 D: 589.000000\n    test 2612 r: 10.279989\n    test 2613 n: 2.0\n    test 2614 R: 5.890000\n    test 2615 d: 337.472141\n    test 2616 n: 1.0\n    test 2617 D: 592.000000\n    test 2618 r: 10.332349\n    test 2619 n: 2.0\n    test 2620 R: 5.920000\n    test 2621 d: 339.191015\n    test 2622 n: 1.0\n    test 2623 D: 595.000000\n    test 2624 r: 10.384709\n    test 2625 n: 2.0\n    test 2626 R: 5.950000\n    test 2627 d: 340.909888\n    test 2628 n: 1.0\n    test 2629 D: 598.000000\n    test 2630 r: 10.437069\n    test 2631 n: 2.0\n    test 2632 R: 5.980000\n    test 2633 d: 342.628761\n    test 2634 n: 1.0\n    test 2635 D: 601.000000\n    test 2636 r: 10.489429\n    test 2637 n: 2.0\n    test 2638 R: 6.010000\n    test 2639 d: 344.347635\n    test 2640 n: 1.0\n    test 2641 D: 604.000000\n    test 2642 r: 10.541789\n    test 2643 n: 2.0\n    test 2644 R: 6.040000\n    test 2645 d: 346.066508\n    test 2646 n: 1.0\n    test 2647 D: 607.000000\n    test 2648 r: 10.594149\n    test 2649 n: 2.0\n    test 2650 R: 6.070000\n    test 2651 d: 347.785382\n    test 2652 n: 1.0\n    test 2653 D: 610.000000\n    test 2654 r: 10.646508\n    test 2655 n: 2.0\n    test 2656 R: 6.100000\n    test 2657 d: 349.504255\n    test 2658 n: 1.0\n    test 2659 D: 613.000000\n    test 2660 r: 10.698868\n    test 2661 n: 2.0\n    test 2662 R: 6.130000\n    test 2663 d: 351.223128\n    test 2664 n: 1.0\n    test 2665 D: 616.000000\n    test 2666 r: 10.751228\n    test 2667 n: 2.0\n    test 2668 R: 6.160000\n    test 2669 d: 352.942002\n    test 2670 n: 1.0\n    test 2671 D: 619.000000\n    test 2672 r: 10.803588\n    test 2673 n: 2.0\n    test 2674 R: 6.190000\n    test 2675 d: 354.660875\n    test 2676 n: 1.0\n    test 2677 D: 622.000000\n    test 2678 r: 10.855948\n    test 2679 n: 2.0\n    test 2680 R: 6.220000\n    test 2681 d: 356.379749\n    test 2682 n: 1.0\n    test 2683 D: 625.000000\n    test 2684 r: 10.908308\n    test 2685 n: 2.0\n    test 2686 R: 6.250000\n    test 2687 d: 358.098622\n    test 2688 n: 1.0\n    test 2689 D: 628.000000\n    test 2690 r: 10.960668\n    test 2691 n: 2.0\n    test 2692 R: 6.280000\n    test 2693 d: 359.817495\n    test 2694 n: 1.0\n    test 2695 D: 631.000000\n    test 2696 r: 11.013028\n    test 2697 n: 2.0\n    test 2698 R: 6.310000\n    test 2699 d: 361.536369\n    test 2700 n: 1.0\n    test 2701 D: 634.000000\n    test 2702 r: 11.065387\n    test 2703 n: 2.0\n    test 2704 R: 6.340000\n    test 2705 d: 363.255242\n    test 2706 n: 1.0\n    test 2707 D: 637.000000\n    test 2708 r: 11.117747\n    test 2709 n: 2.0\n    test 2710 R: 6.370000\n    test 2711 d: 364.974115\n    test 2712 n: 1.0\n    test 2713 D: 640.000000\n    test 2714 r: 11.170107\n    test 2715 n: 2.0\n    test 2716 R: 6.400000\n    test 2717 d: 366.692989\n    test 2718 n: 1.0\n    test 2719 D: 643.000000\n    test 2720 r: 11.222467\n    test 2721 n: 2.0\n    test 2722 R: 6.430000\n    test 2723 d: 368.411862\n    test 2724 n: 1.0\n    test 2725 D: 646.000000\n    test 2726 r: 11.274827\n    test 2727 n: 2.0\n    test 2728 R: 6.460000\n    test 2729 d: 370.130736\n    test 2730 n: 1.0\n    test 2731 D: 649.000000\n    test 2732 r: 11.327187\n    test 2733 n: 2.0\n    test 2734 R: 6.490000\n    test 2735 d: 371.849609\n    test 2736 n: 1.0\n    test 2737 D: 652.000000\n    test 2738 r: 11.379547\n    test 2739 n: 2.0\n    test 2740 R: 6.520000\n    test 2741 d: 373.568482\n    test 2742 n: 1.0\n    test 2743 D: 655.000000\n    test 2744 r: 11.431907\n    test 2745 n: 2.0\n    test 2746 R: 6.550000\n    test 2747 d: 375.287356\n    test 2748 n: 1.0\n    test 2749 D: 658.000000\n    test 2750 r: 11.484266\n    test 2751 n: 2.0\n    test 2752 R: 6.580000\n    test 2753 d: 377.006229\n    test 2754 n: 1.0\n    test 2755 D: 661.000000\n    test 2756 r: 11.536626\n    test 2757 n: 2.0\n    test 2758 R: 6.610000\n    test 2759 d: 378.725103\n    test 2760 n: 1.0\n    test 2761 D: 664.000000\n    test 2762 r: 11.588986\n    test 2763 n: 2.0\n    test 2764 R: 6.640000\n    test 2765 d: 380.443976\n    test 2766 n: 1.0\n    test 2767 D: 667.000000\n    test 2768 r: 11.641346\n    test 2769 n: 2.0\n    test 2770 R: 6.670000\n    test 2771 d: 382.162849\n    test 2772 n: 1.0\n    test 2773 D: 670.000000\n    test 2774 r: 11.693706\n    test 2775 n: 2.0\n    test 2776 R: 6.700000\n    test 2777 d: 383.881723\n    test 2778 n: 1.0\n    test 2779 D: 673.000000\n    test 2780 r: 11.746066\n    test 2781 n: 2.0\n    test 2782 R: 6.730000\n    test 2783 d: 385.600596\n    test 2784 n: 1.0\n    test 2785 D: 676.000000\n    test 2786 r: 11.798426\n    test 2787 n: 2.0\n    test 2788 R: 6.760000\n    test 2789 d: 387.319470\n    test 2790 n: 1.0\n    test 2791 D: 679.000000\n    test 2792 r: 11.850786\n    test 2793 n: 2.0\n    test 2794 R: 6.790000\n    test 2795 d: 389.038343\n    test 2796 n: 1.0\n    test 2797 D: 682.000000\n    test 2798 r: 11.903145\n    test 2799 n: 2.0\n    test 2800 R: 6.820000\n    test 2801 d: 390.757216\n    test 2802 n: 1.0\n    test 2803 D: 685.000000\n    test 2804 r: 11.955505\n    test 2805 n: 2.0\n    test 2806 R: 6.850000\n    test 2807 d: 392.476090\n    test 2808 n: 1.0\n    test 2809 D: 688.000000\n    test 2810 r: 12.007865\n    test 2811 n: 2.0\n    test 2812 R: 6.880000\n    test 2813 d: 394.194963\n    test 2814 n: 1.0\n    test 2815 D: 691.000000\n    test 2816 r: 12.060225\n    test 2817 n: 2.0\n    test 2818 R: 6.910000\n    test 2819 d: 395.913836\n    test 2820 n: 1.0\n    test 2821 D: 694.000000\n    test 2822 r: 12.112585\n    test 2823 n: 2.0\n    test 2824 R: 6.940000\n    test 2825 d: 397.632710\n    test 2826 n: 1.0\n    test 2827 D: 697.000000\n    test 2828 r: 12.164945\n    test 2829 n: 2.0\n    test 2830 R: 6.970000\n    test 2831 d: 399.351583\n    test 2832 n: 1.0\n    test 2833 D: 700.000000\n    test 2834 r: 12.217305\n    test 2835 n: 2.0\n    test 2836 R: 7.000000\n    test 2837 d: 401.070457\n    test 2838 n: 1.0\n    test 2839 D: 703.000000\n    test 2840 r: 12.269665\n    test 2841 n: 2.0\n    test 2842 R: 7.030000\n    test 2843 d: 402.789330\n    test 2844 n: 1.0\n    test 2845 D: 706.000000\n    test 2846 r: 12.322025\n    test 2847 n: 2.0\n    test 2848 R: 7.060000\n    test 2849 d: 404.508203\n    test 2850 n: 1.0\n    test 2851 D: 709.000000\n    test 2852 r: 12.374384\n    test 2853 n: 2.0\n    test 2854 R: 7.090000\n    test 2855 d: 406.227077\n    test 2856 n: 1.0\n    test 2857 D: 712.000000\n    test 2858 r: 12.426744\n    test 2859 n: 2.0\n    test 2860 R: 7.120000\n    test 2861 d: 407.945950\n    test 2862 n: 1.0\n    test 2863 D: 715.000000\n    test 2864 r: 12.479104\n    test 2865 n: 2.0\n    test 2866 R: 7.150000\n    test 2867 d: 409.664824\n    test 2868 n: 1.0\n\n    test 2869 radd: 32.0\n    test 2870 rdiv: 6.67e-02\n    test 2871 rmul: 60.0\n    test 2872 rpow: 1073741824.0\n    test 2873 rsub: -28.0\n\n    test 2874 R * 2: 4.0000\n    test 2875 R / 2: 2.0000\n    test 2876 R / R: True\n    test 2877 R / R: 1.0\n    test 2878 R / R: 2.0\n    test 2879 abs  : 2.0\n    test 2880 int  : 2\n    test 2881 eq R: True\n    test 2882 ge R: True\n    test 2883 gt R: False\n    test 2884 le R: True\n    test 2885 lt R: False\n    test 2886 ne R: False\n    test 2887 if R: True\n    test 2888 gt 0: True\n    test 2889 lt 0: False\n    test 2890 eq 0: False\n    test 2891 lt 0: True\n    test 2892 gt 0: True\n    test 2893 gt 0: False\n    test 2894 signOf: 1\n    test 2895 signOf: -1\n    test 2896 ceil : 3.0\n    test 2897 floor: 2.0\n\n    test 2898 divmod : (2.0, Radians(0.0))\n    test 2899 divmod : (2.0, Radians(0.0))\n    test 2900 rdivmod : (0.0, Radians(2.0))\n    test 2901 divmod : (-2.0, Radians(1.0))\n    test 2902 imod: 0.0\n    test 2903 mod : 0.0\n    test 2904 rmod: 2.0\n    test 2905 neg : -2.0\n    test 2906 pos : 2.0\n    test 2907 is_int: False\n    test 2908 float: 9e-102\n    test 2909 is_int: False\n    test 2910 round1: 0.0\n    test 2911 R //: -2.0\n    test 2912 // R: -2.0\n    test 2913 R //=: -2.0\n    test 2914 R / 0: ZeroDivisionError('division by zero')\n\n    test 2915 pow(R, +): 0.0\n    test 2916 pow(R, -): 0.4767037\n    test 2917 pow(-R, R): TypeError('fromDegrees((1+2.8274333882308138e-101j))')  FAILED, KNOWN, expected TypeError\n    test 2918 pow(R, R): 1.0\n    test 2919 pow(R, f, i): TypeError('pow() 3rd argument not allowed unless all arguments are integers')\n    test 2920 pow(R, R, i): TypeError('fromDegrees(<Fsum[1] (2.1, 0) at 0x1032d7b10>)')\n    test 2921 pow(R, i, None): 4.0\n# imported pygeodesy.basics into errors.py line 531\n    test 2922 Z**-2: ZeroDivisionError('0.0 ** -2: zero to a negative power')\n    test 2923 pow(0): 1.000\n    test 2924 pow(1): -3.000\n    test 2925 pow(2): 9.000\n    test 2926 pow(21): -10460353203.000\n    test 2927 pow(-5): -0.004\n    test 2928 **= 2: 9.000\n\n    test 2929 F0**0: 1.0\n    test 2930 F0**0.: 1.0\n    test 2931 0**F0: 1.0\n    test 2932 0.**F0: 1.0\n    test 2933 F0**0: 1.0\n    test 2934 F0**2: 0.0\n    test 2935 F0**0.: 1.0\n    test 2936 F0**3.: 0.0\n    test 2937 F0**0.: 1.0\n\n    test 2938 R**2: 3125.000\n    test 2939 R**-1: 0.200\n    test 2940 R**-2: 0.040\n    test 2941 R**-2.5: 0.018\n    test 2942 R** 2.5: 55.902\n    test 2943 pow(2): 25.000\n    test 2944 pow(2.5): 55.902\n    test 2945 pow(R): 3125.000\n    test 2946 3pow(2, None): 25.0\n    test 2947 3pow(2.5, None): 55.9017\n    test 2948 3pow(2, 20): 5\n    test 2949 x * x: 25.0\n    test 2950 x * R: 12.5\n    test 2951 x + R: 7.5\n    test 2952 x - R: 2.5\n\n    test 2953 abs(T): 0.0\n    test 2954 bool(T): True\n    test 2955 float(T): 2.220446049250313e-16\n    test 2956 int(T): 0\n    test 2957 -T: -0.0\n    test 2958 +T: 0.0\n\n    test 2959 R==T: False\n    test 2960 R>=T: True\n    test 2961 R> T: True\n    test 2962 R<=T: False\n    test 2963 R< T: False\n    test 2964 R!=T: True\n\n    test 2965 base: 61.0\n    test 2966 flipsign: -61.0\n    test 2967 lambertian: 1.3524048166735199\n    test 2968 fromScalar: 1.35240482\n    test 2969 n0: 61.0\n    test 2970 nearest: 90.0\n    test 2971 normalize: 61.0\n    test 2972 quadrant: 0\n    test 2973 reflect: 61.0\n    test 2974 round: 61.0\n    test 2975 shift: nan\n    test 2976 t: 1.8040477552714236\n    test 2977 toLambertian: 1.3524048166735199\n    test 2978 toTuple: 0.87462, 0.48481, 0.0\n\n    1 of 2978 testAngles.py tests (0.0%) FAILED, ALL KNOWN (pygeodesy 26.3.26 Python 3.14.3 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 11.009 ms\nrunning /Library/Framewo....n3.14 -W default ~/PyGeodesy/test/testAuxilats.py\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.PI_2 from .constants by testAuxilats.py line 11\n# lazily imported pygeodesy.PI_4 from .constants by testAuxilats.py line 11\n# lazily imported pygeodesy.Fsum from .fsums by testAuxilats.py line 11\n# lazily imported pygeodesy.fsum from .fsums by testAuxilats.py line 11\n# lazily imported pygeodesy.sincos2 from .utily by testAuxilats.py line 11\n\n    testing testAuxilats.py 25.09.09 (module pygeodesy.auxilats 25.12.02) isLazy=3\n\n    test 1 Aux: 6\n\n    test 2 aout: 0\n    test 3 before: None\n    test 4 before: _Rtuple\n    test 5 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 6 before: _Rtuple\n    test 7 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 8 before: _Rtuple\n    test 9 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 10 before: _Rtuple\n    test 11 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 12 before: _Rtuple\n    test 13 after: tuple  FAILED, KNOWN, expected _Rtuple\n\n    test 14 aout: 1\n    test 15 before: _Rtuple\n    test 16 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 17 before: None\n    test 18 before: _Rtuple\n    test 19 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 20 before: _Rtuple\n    test 21 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 22 before: _Rtuple\n    test 23 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 24 before: _Rtuple\n    test 25 after: tuple  FAILED, KNOWN, expected _Rtuple\n\n    test 26 aout: 2\n    test 27 before: _Rtuple\n    test 28 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 29 before: _Rtuple\n    test 30 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 31 before: None\n    test 32 before: _Rtuple\n    test 33 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 34 before: _Rtuple\n    test 35 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 36 before: _Rtuple\n    test 37 after: tuple  FAILED, KNOWN, expected _Rtuple\n\n    test 38 aout: 3\n    test 39 before: _Rtuple\n    test 40 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 41 before: _Rtuple\n    test 42 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 43 before: _Rtuple\n    test 44 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 45 before: None\n    test 46 before: _Rtuple\n    test 47 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 48 before: _Rtuple\n    test 49 after: tuple  FAILED, KNOWN, expected _Rtuple\n\n    test 50 aout: 4\n    test 51 before: _Rtuple\n    test 52 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 53 before: _Rtuple\n    test 54 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 55 before: _Rtuple\n    test 56 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 57 before: _Rtuple\n    test 58 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 59 before: None\n    test 60 before: _Rtuple\n    test 61 after: tuple  FAILED, KNOWN, expected _Rtuple\n\n    test 62 aout: 5\n    test 63 before: _Rtuple\n    test 64 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 65 before: _Rtuple\n    test 66 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 67 before: _Rtuple\n    test 68 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 69 before: _Rtuple\n    test 70 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 71 before: _Rtuple\n    test 72 after: tuple  FAILED, KNOWN, expected _Rtuple\n    test 73 before: None\n# imported pygeodesy.basics into errors.py line 915\n\n    test 74 Aux: 4\n\n    test 75 aout: 0\n    test 76 Aux: 4\n    test 77 Aux: 4\n    test 78 Aux: 4\n    test 79 Aux: 4\n    test 80 Aux: 4\n    test 81 Aux: 4\n\n    test 82 aout: 1\n    test 83 Aux: 4\n    test 84 Aux: 4\n    test 85 Aux: 4\n    test 86 Aux: 4\n    test 87 Aux: 4\n    test 88 Aux: 4\n\n    test 89 aout: 2\n    test 90 Aux: 4\n    test 91 Aux: 4\n    test 92 Aux: 4\n    test 93 Aux: 4\n    test 94 Aux: 4\n    test 95 Aux: 4\n\n    test 96 aout: 3\n    test 97 Aux: 4\n    test 98 Aux: 4\n    test 99 Aux: 4\n    test 100 Aux: 4\n    test 101 Aux: 4\n    test 102 Aux: 4\n\n    test 103 aout: 4\n    test 104 Aux: 4\n    test 105 Aux: 4\n    test 106 Aux: 4\n    test 107 Aux: 4\n    test 108 Aux: 4\n    test 109 Aux: 4\n\n    test 110 aout: 5\n    test 111 Aux: 4\n    test 112 Aux: 4\n    test 113 Aux: 4\n    test 114 Aux: 4\n    test 115 Aux: 4\n    test 116 Aux: 4\n\n    test 117 Aux: 6\n\n    test 118 aout: 0\n    test 119 Aux: 6\n    test 120 Aux: 6\n    test 121 Aux: 6\n    test 122 Aux: 6\n    test 123 Aux: 6\n    test 124 Aux: 6\n\n    test 125 aout: 1\n    test 126 Aux: 6\n    test 127 Aux: 6\n    test 128 Aux: 6\n    test 129 Aux: 6\n    test 130 Aux: 6\n    test 131 Aux: 6\n\n    test 132 aout: 2\n    test 133 Aux: 6\n    test 134 Aux: 6\n    test 135 Aux: 6\n    test 136 Aux: 6\n    test 137 Aux: 6\n    test 138 Aux: 6\n\n    test 139 aout: 3\n    test 140 Aux: 6\n    test 141 Aux: 6\n    test 142 Aux: 6\n    test 143 Aux: 6\n    test 144 Aux: 6\n    test 145 Aux: 6\n\n    test 146 aout: 4\n    test 147 Aux: 6\n    test 148 Aux: 6\n    test 149 Aux: 6\n    test 150 Aux: 6\n    test 151 Aux: 6\n    test 152 Aux: 6\n\n    test 153 aout: 5\n    test 154 Aux: 6\n    test 155 Aux: 6\n    test 156 Aux: 6\n    test 157 Aux: 6\n    test 158 Aux: 6\n    test 159 Aux: 6\n\n    test 160 Aux: 8\n\n    test 161 aout: 0\n    test 162 Aux: 8\n    test 163 Aux: 8\n    test 164 Aux: 8\n    test 165 Aux: 8\n    test 166 Aux: 8\n    test 167 Aux: 8\n\n    test 168 aout: 1\n    test 169 Aux: 8\n    test 170 Aux: 8\n    test 171 Aux: 8\n    test 172 Aux: 8\n    test 173 Aux: 8\n    test 174 Aux: 8\n\n    test 175 aout: 2\n    test 176 Aux: 8\n    test 177 Aux: 8\n    test 178 Aux: 8\n    test 179 Aux: 8\n    test 180 Aux: 8\n    test 181 Aux: 8\n\n    test 182 aout: 3\n    test 183 Aux: 8\n    test 184 Aux: 8\n    test 185 Aux: 8\n    test 186 Aux: 8\n    test 187 Aux: 8\n    test 188 Aux: 8\n\n    test 189 aout: 4\n    test 190 Aux: 8\n    test 191 Aux: 8\n    test 192 Aux: 8\n    test 193 Aux: 8\n    test 194 Aux: 8\n    test 195 Aux: 8\n\n    test 196 aout: 5\n    test 197 Aux: 8\n    test 198 Aux: 8\n    test 199 Aux: 8\n    test 200 Aux: 8\n    test 201 Aux: 8\n    test 202 Aux: 8\n\n    test 203  0 0.000000000000 Phi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 204  0 0.000000000000 Beta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 205  0 0.000000000000 Theta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 206  0 0.000000000000 Mu(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 207  0 0.000000000000 Chi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 208  0 0.000000000000 Xi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n\n    test 209  0 0.000000000000 Phi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 210  0 0.000000000000 Beta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 211  0 0.000000000000 Theta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 212  0 0.000000000000 Mu(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 213  0 0.000000000000 Chi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 214  0 0.000000000000 Xi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n\n    test 215  7 7.023313832609 Phi(tan=0.123198, x=0.992546, y=0.122279): 0.122784560903\n    test 216  7 7.000000000000 Beta(tan=0.122785, x=0.992546, y=0.121869): 0.122784560903\n    test 217  7 6.976762016136 Theta(tan=0.122373, x=0.992546, y=0.121461): 0.122784560903\n    test 218  7 6.988357344130 Mu(tan=0.122578, x=0.992571, y=0.121668), iteration=2: 0.122784560903\n    test 219  7 6.976762787606 Chi(tan=0.122373, x=1.0, y=0.122373), iteration=3: 0.122784560903\n    test 220  7 6.992232010256 Xi(tan=0.122647, x=1.99404, y=0.244563), iteration=2: 0.122784560903\n\n    test 221  7 7.023313832609 Phi(tan=0.123198, x=0.992496, y=0.122273): 0.122784560903\n    test 222  7 7.000000000000 Beta(tan=0.122785, x=0.992546, y=0.121869): 0.122784560903\n    test 223  7 6.976762016136 Theta(tan=0.122373, x=0.992595, y=0.121467): 0.122784560903\n    test 224  7 6.988357344130 Mu(tan=0.122578, x=0.992571, y=0.121668): 0.122784560903\n    test 225  7 6.976762787606 Chi(tan=0.122373, x=0.992595, y=0.121467): 0.122784560903\n    test 226  7 6.992232010256 Xi(tan=0.122647, x=0.992563, y=0.121735): 0.122784560903\n\n    test 227 14 14.045235971490 Phi(tan=0.250167, x=0.970296, y=0.242736): 0.249328002843\n    test 228 14 14.000000000000 Beta(tan=0.249328, x=0.970296, y=0.241922): 0.249328002843\n    test 229 14 13.954897969322 Theta(tan=0.248492, x=0.970296, y=0.241111): 0.249328002843\n    test 230 14 13.977407191407 Mu(tan=0.248909, x=0.970391, y=0.241539), iteration=3: 0.249328002843\n    test 231 14 13.954903870195 Chi(tan=0.248492, x=1.0, y=0.248492), iteration=3: 0.249328002843\n    test 232 14 13.984926538790 Xi(tan=0.249049, x=1.94943, y=0.485503), iteration=3: 0.249328002843\n\n    test 233 14 14.045235971490 Phi(tan=0.250167, x=0.970104, y=0.242688): 0.249328002843\n    test 234 14 14.000000000000 Beta(tan=0.249328, x=0.970296, y=0.241922): 0.249328002843\n    test 235 14 13.954897969322 Theta(tan=0.248492, x=0.970486, y=0.241158): 0.249328002843\n    test 236 14 13.977407191407 Mu(tan=0.248909, x=0.970391, y=0.241539): 0.249328002843\n    test 237 14 13.954903870195 Chi(tan=0.248492, x=0.970486, y=0.241158): 0.249328002843\n    test 238 14 13.984926538790 Xi(tan=0.249049, x=0.970359, y=0.241667): 0.249328002843\n\n    test 239 21 21.064458966605 Phi(tan=0.385155, x=0.93358, y=0.359574): 0.383864035035\n    test 240 21 21.000000000000 Beta(tan=0.383864, x=0.93358, y=0.358368): 0.383864035035\n    test 241 21 20.935701709947 Theta(tan=0.382577, x=0.93358, y=0.357166): 0.383864035035\n    test 242 21 20.967800709613 Mu(tan=0.383219, x=0.933782, y=0.357843), iteration=2: 0.383864035035\n    test 243 21 20.935720172355 Chi(tan=0.382577, x=1.0, y=0.382577), iteration=3: 0.383864035035\n    test 244 21 20.978518383767 Xi(tan=0.383434, x=1.87581, y=0.719251), iteration=2: 0.383864035035\n\n    test 245 21 21.064458966605 Phi(tan=0.385155, x=0.933177, y=0.359418): 0.383864035035\n    test 246 21 21.000000000000 Beta(tan=0.383864, x=0.93358, y=0.358368): 0.383864035035\n    test 247 21 20.935701709947 Theta(tan=0.382577, x=0.933982, y=0.35732): 0.383864035035\n    test 248 21 20.967800709613 Mu(tan=0.383219, x=0.933782, y=0.357843): 0.383864035035\n    test 249 21 20.935720172355 Chi(tan=0.382577, x=0.933982, y=0.35732): 0.383864035035\n    test 250 21 20.978518383767 Xi(tan=0.383434, x=0.933715, y=0.358018): 0.383864035035\n\n    test 251 28 28.079838480095 Phi(tan=0.533498, x=0.882948, y=0.471051): 0.531709431661\n    test 252 28 28.000000000000 Beta(tan=0.531709, x=0.882948, y=0.469472): 0.531709431661\n    test 253 28 27.920311317014 Theta(tan=0.529927, x=0.882948, y=0.467898): 0.531709431661\n    test 254 28 27.960108897314 Mu(tan=0.530817, x=0.883274, y=0.468857), iteration=3: 0.531709431661\n    test 255 28 27.920350592883 Chi(tan=0.529928, x=1.0, y=0.529928), iteration=3: 0.531709431661\n    test 256 28 27.973388607066 Xi(tan=0.531114, x=1.77426, y=0.942335), iteration=2: 0.531709431661\n\n    test 257 28 28.079838480095 Phi(tan=0.533498, x=0.882293, y=0.470701): 0.531709431661\n    test 258 28 28.000000000000 Beta(tan=0.531709, x=0.882948, y=0.469472): 0.531709431661\n    test 259 28 27.920311317014 Theta(tan=0.529927, x=0.8836, y=0.468243): 0.531709431661\n    test 260 28 27.960108897314 Mu(tan=0.530817, x=0.883274, y=0.468857): 0.531709431661\n    test 261 28 27.920350592883 Chi(tan=0.529928, x=0.883599, y=0.468244): 0.531709431661\n    test 262 28 27.973388607066 Xi(tan=0.531114, x=0.883166, y=0.469061): 0.531709431661\n\n    test 263 35 35.090461812463 Phi(tan=0.702563, x=0.819152, y=0.575506): 0.700207538210\n    test 264 35 35.000000000000 Beta(tan=0.700208, x=0.819152, y=0.573576): 0.700207538210\n    test 265 35 34.909642037079 Theta(tan=0.69786, x=0.819152, y=0.571653): 0.700207538210\n    test 266 35 34.954788593575 Mu(tan=0.699032, x=0.819604, y=0.57293), iteration=3: 0.700207538210\n    test 267 35 34.909708526741 Chi(tan=0.697862, x=1.0, y=0.697862), iteration=3: 0.700207538210\n    test 268 35 34.969841811236 Xi(tan=0.699423, x=1.64627, y=1.15144), iteration=3: 0.700207538210\n\n    test 269 35 35.090461812463 Phi(tan=0.702563, x=0.818245, y=0.574869): 0.700207538210\n    test 270 35 35.000000000000 Beta(tan=0.700208, x=0.819152, y=0.573576): 0.700207538210\n    test 271 35 34.909642037079 Theta(tan=0.69786, x=0.820056, y=0.572284): 0.700207538210\n    test 272 35 34.954788593575 Mu(tan=0.699032, x=0.819604, y=0.57293): 0.700207538210\n    test 273 35 34.909708526741 Chi(tan=0.697862, x=0.820055, y=0.572285): 0.700207538210\n    test 274 35 34.969841811236 Xi(tan=0.699423, x=0.819454, y=0.573145): 0.700207538210\n\n    test 275 42 42.095701889505 Phi(tan=0.903433, x=0.743145, y=0.671382): 0.900404044298\n    test 276 42 42.000000000000 Beta(tan=0.900404, x=0.743145, y=0.669131): 0.900404044298\n    test 277 42 41.904331700939 Theta(tan=0.897385, x=0.743145, y=0.666887): 0.900404044298\n    test 278 42 41.952155366417 Mu(tan=0.898893, x=0.743703, y=0.66851), iteration=2: 0.900404044298\n    test 279 42 41.904427530254 Chi(tan=0.897388, x=1.0, y=0.897388), iteration=3: 0.900404044298\n    test 280 42 41.968088079226 Xi(tan=0.899396, x=1.49371, y=1.34344), iteration=2: 0.900404044298\n\n    test 281 42 42.095701889505 Phi(tan=0.903433, x=0.742026, y=0.670371): 0.900404044298\n    test 282 42 42.000000000000 Beta(tan=0.900404, x=0.743145, y=0.669131): 0.900404044298\n    test 283 42 41.904331700939 Theta(tan=0.897385, x=0.744261, y=0.667889): 0.900404044298\n    test 284 42 41.952155366417 Mu(tan=0.898893, x=0.743703, y=0.66851): 0.900404044298\n    test 285 42 41.904427530254 Chi(tan=0.897388, x=0.74426, y=0.66789): 0.900404044298\n    test 286 42 41.968088079226 Xi(tan=0.899396, x=0.743517, y=0.668717): 0.900404044298\n\n    test 287 49 49.095253561343 Phi(tan=1.15424, x=0.656059, y=0.757248): 1.150368407221\n    test 288 49 49.000000000000 Beta(tan=1.15037, x=0.656059, y=0.75471): 1.150368407221\n    test 289 49 48.904701906378 Theta(tan=1.14651, x=0.656059, y=0.752179): 1.150368407221\n    test 290 49 48.952364883757 Mu(tan=1.14844, x=0.656686, y=0.754164), iteration=3: 1.150368407221\n    test 291 49 48.904823373499 Chi(tan=1.14652, x=1.0, y=1.14652), iteration=3: 1.150368407221\n    test 292 49 48.968230641178 Xi(tan=1.14908, x=1.31885, y=1.51547), iteration=3: 1.150368407221\n\n    test 293 49 49.095253561343 Phi(tan=1.15424, x=0.654803, y=0.755799): 1.150368407221\n    test 294 49 49.000000000000 Beta(tan=1.15037, x=0.656059, y=0.75471): 1.150368407221\n    test 295 49 48.904701906378 Theta(tan=1.14651, x=0.657313, y=0.753617): 1.150368407221\n    test 296 49 48.952364883757 Mu(tan=1.14844, x=0.656686, y=0.754164): 1.150368407221\n    test 297 49 48.904823373499 Chi(tan=1.14652, x=0.657312, y=0.753619): 1.150368407221\n    test 298 49 48.968230641178 Xi(tan=1.14908, x=0.656477, y=0.754346): 1.150368407221\n\n    test 299 56 56.089150284766 Phi(tan=1.48755, x=0.559193, y=0.831827): 1.482560968513\n    test 300 56 56.000000000000 Beta(tan=1.48256, x=0.559193, y=0.829038): 1.482560968513\n    test 301 56 55.910737485374 Theta(tan=1.47759, x=0.559193, y=0.826258): 1.482560968513\n    test 302 56 55.955403845590 Mu(tan=1.48007, x=0.559838, y=0.828602), iteration=3: 1.482560968513\n    test 303 56 55.910874805786 Chi(tan=1.4776, x=1.0, y=1.4776), iteration=3: 1.482560968513\n    test 304 56 55.970259966049 Xi(tan=1.4809, x=1.12427, y=1.66494), iteration=3: 1.482560968513\n\n    test 305 56 56.089150284766 Phi(tan=1.48755, x=0.557902, y=0.829907): 1.482560968513\n    test 306 56 56.000000000000 Beta(tan=1.48256, x=0.559193, y=0.829038): 1.482560968513\n    test 307 56 55.910737485374 Theta(tan=1.47759, x=0.560484, y=0.828165): 1.482560968513\n    test 308 56 55.955403845590 Mu(tan=1.48007, x=0.559838, y=0.828602): 1.482560968513\n    test 309 56 55.910874805786 Chi(tan=1.4776, x=0.560482, y=0.828167): 1.482560968513\n    test 310 56 55.970259966049 Xi(tan=1.4809, x=0.559623, y=0.828747): 1.482560968513\n\n    test 311 63 63.077760538972 Phi(tan=1.96921, x=0.45399, y=0.894004): 1.962610505505\n    test 312 63 63.000000000000 Beta(tan=1.96261, x=0.45399, y=0.891007): 1.962610505505\n    test 313 63 62.922085806991 Theta(tan=1.95603, x=0.45399, y=0.888019): 1.962610505505\n    test 314 63 62.961090973753 Mu(tan=1.95932, x=0.454595, y=0.890698), iteration=2: 1.962610505505\n    test 315 63 62.922224287619 Chi(tan=1.95604, x=1.0, y=1.95604), iteration=3: 1.962610505505\n    test 316 63 62.974054576334 Xi(tan=1.96042, x=0.912868, y=1.7896), iteration=3: 1.962610505505\n\n    test 317 63 63.077760538972 Phi(tan=1.96921, x=0.452781, y=0.891622): 1.962610505505\n    test 318 63 63.000000000000 Beta(tan=1.96261, x=0.45399, y=0.891007): 1.962610505505\n    test 319 63 62.922085806991 Theta(tan=1.95603, x=0.455202, y=0.890388): 1.962610505505\n    test 320 63 62.961090973753 Mu(tan=1.95932, x=0.454595, y=0.890698): 1.962610505505\n    test 321 63 62.922224287619 Chi(tan=1.95604, x=0.4552, y=0.890389): 1.962610505505\n    test 322 63 62.974054576334 Xi(tan=1.96042, x=0.454394, y=0.890801): 1.962610505505\n\n    test 323 70 70.061764561164 Phi(tan=2.75672, x=0.34202, y=0.942854): 2.747477419455\n    test 324 70 70.000000000000 Beta(tan=2.74748, x=0.34202, y=0.939693): 2.747477419455\n    test 325 70 69.938076331685 Theta(tan=2.73827, x=0.34202, y=0.936542): 2.747477419455\n    test 326 70 69.969087953771 Mu(tan=2.74287, x=0.342527, y=0.939508), iteration=3: 2.747477419455\n    test 327 70 69.938198769881 Chi(tan=2.73828, x=1.0, y=2.73828), iteration=3: 2.747477419455\n    test 328 70 69.979388479327 Xi(tan=2.74441, x=0.687791, y=1.88758), iteration=3: 2.747477419455\n\n    test 329 70 70.061764561164 Phi(tan=2.75672, x=0.341007, y=0.940061): 2.747477419455\n    test 330 70 70.000000000000 Beta(tan=2.74748, x=0.34202, y=0.939693): 2.747477419455\n    test 331 70 69.938076331685 Theta(tan=2.73827, x=0.343036, y=0.939322): 2.747477419455\n    test 332 70 69.969087953771 Mu(tan=2.74287, x=0.342527, y=0.939508): 2.747477419455\n    test 333 70 69.938198769881 Chi(tan=2.73828, x=0.343034, y=0.939323): 2.747477419455\n    test 334 70 69.979388479327 Xi(tan=2.74441, x=0.342358, y=0.93957): 2.747477419455\n\n    test 335 77 77.042113102652 Phi(tan=4.34605, x=0.224951, y=0.977648): 4.331475874284\n    test 336 77 77.000000000000 Beta(tan=4.33148, x=0.224951, y=0.97437): 4.331475874284\n    test 337 77 76.957759584883 Theta(tan=4.31695, x=0.224951, y=0.971103): 4.331475874284\n    test 338 77 76.978919638565 Mu(tan=4.32422, x=0.22531, y=0.974287), iteration=3: 4.331475874284\n    test 339 77 76.957849394477 Chi(tan=4.31698, x=1.0, y=4.31698), iteration=3: 4.331475874284\n    test 340 77 76.985944723491 Xi(tan=4.32663, x=0.452402, y=1.95738), iteration=3: 4.331475874284\n\n    test 341 77 77.042113102652 Phi(tan=4.34605, x=0.224235, y=0.974535): 4.331475874284\n    test 342 77 77.000000000000 Beta(tan=4.33148, x=0.224951, y=0.97437): 4.331475874284\n    test 343 77 76.957759584883 Theta(tan=4.31695, x=0.225669, y=0.974204): 4.331475874284\n    test 344 77 76.978919638565 Mu(tan=4.32422, x=0.22531, y=0.974287): 4.331475874284\n    test 345 77 76.957849394477 Chi(tan=4.31698, x=0.225668, y=0.974204): 4.331475874284\n    test 346 77 76.985944723491 Xi(tan=4.32663, x=0.22519, y=0.974315): 4.331475874284\n\n    test 347 84 84.019970846274 Phi(tan=9.54637, x=0.104528, y=0.997868): 9.514364454223\n    test 348 84 84.000000000000 Beta(tan=9.51436, x=0.104528, y=0.994522): 9.514364454223\n    test 349 84 83.979963440552 Theta(tan=9.48246, x=0.104528, y=0.991187): 9.514364454223\n    test 350 84 83.990002289461 Mu(tan=9.49842, x=0.104702, y=0.994504), iteration=3: 9.514364454223\n    test 351 84 83.980007825249 Chi(tan=9.48254, x=1.0, y=9.48254), iteration=3: 9.514364454223\n    test 352 84 83.993334244416 Xi(tan=9.50373, x=0.210228, y=1.99795), iteration=3: 9.514364454223\n\n    test 353 84 84.019970846274 Phi(tan=9.54637, x=0.104182, y=0.994558): 9.514364454223\n    test 354 84 84.000000000000 Beta(tan=9.51436, x=0.104528, y=0.994522): 9.514364454223\n    test 355 84 83.979963440552 Theta(tan=9.48246, x=0.104876, y=0.994485): 9.514364454223\n    test 356 84 83.990002289461 Mu(tan=9.49842, x=0.104702, y=0.994504): 9.514364454223\n    test 357 84 83.980007825249 Chi(tan=9.48254, x=0.104875, y=0.994485): 9.514364454223\n    test 358 84 83.993334244416 Xi(tan=9.50373, x=0.104644, y=0.99451): 9.514364454223\n\n    test 359 91 90.996647866757 Phi(tan=-57.4827, x=-0.0174524, y=1.00321): -57.289961630759\n    test 360 91 91.000000000000 Beta(tan=-57.29, x=-0.0174524, y=0.999848): -57.289961630759\n    test 361 91 91.003363403239 Theta(tan=-57.0979, x=-0.0174524, y=0.996495): -57.289961630759\n    test 362 91 91.001678173837 Mu(tan=-57.194, x=-0.0174817, y=0.999847), iteration=3: -57.289961630759\n    test 363 91 91.003355872504 Chi(tan=-57.0983, x=-1, y=57.0983), iteration=3: -57.289961630759\n    test 364 91 91.001118877197 Xi(tan=-57.2259, x=-0.0351008, y=2.00867), iteration=3: -57.289961630759\n\n    test 365 91 90.996647866757 Phi(tan=-57.4827, x=-0.0173939, y=0.999849): -57.289961630759\n    test 366 91 91.000000000000 Beta(tan=-57.29, x=-0.0174524, y=0.999848): -57.289961630759\n    test 367 91 91.003363403239 Theta(tan=-57.0979, x=-0.0175111, y=0.999847): -57.289961630760  FAILED, KNOWN (6.07726e-15), expected -57.289961630759\n    test 368 91 91.001678173837 Mu(tan=-57.194, x=-0.0174817, y=0.999847): -57.289961630760  FAILED, KNOWN (6.44934e-15), expected -57.289961630759\n    test 369 91 91.003355872504 Chi(tan=-57.0983, x=-0.017511, y=0.999847): -57.289961630760  FAILED, KNOWN (4.21687e-15), expected -57.289961630759\n    test 370 91 91.001118877197 Xi(tan=-57.2259, x=-0.0174719, y=0.999847): -57.289961630760  FAILED, KNOWN (5.08505e-15), expected -57.289961630759\n\n    test 371 98 97.973523052479 Phi(tan=-7.13931, x=-0.139173, y=0.993599): -7.115369722384\n    test 372 98 98.000000000000 Beta(tan=-7.11537, x=-0.139173, y=0.990268): -7.115369722384\n    test 373 98 98.026562562307 Theta(tan=-7.09151, x=-0.139173, y=0.986948): -7.115369722384\n    test 374 98 98.013254483126 Mu(tan=-7.10345, x=-0.139402, y=0.990236), iteration=3: -7.115369722384\n    test 375 98 98.026504224575 Chi(tan=-7.09157, x=-1, y=7.09157), iteration=3: -7.115369722384\n    test 376 98 98.008837191904 Xi(tan=-7.10742, x=-0.279903, y=1.98939), iteration=3: -7.115369722384\n\n    test 377 98 97.973523052479 Phi(tan=-7.13931, x=-0.138715, y=0.990332): -7.115369722384\n    test 378 98 98.000000000000 Beta(tan=-7.11537, x=-0.139173, y=0.990268): -7.115369722384\n    test 379 98 98.026562562307 Theta(tan=-7.09151, x=-0.139632, y=0.990203): -7.115369722384\n    test 380 98 98.013254483126 Mu(tan=-7.10345, x=-0.139402, y=0.990236): -7.115369722384\n    test 381 98 98.026504224575 Chi(tan=-7.09157, x=-0.139631, y=0.990204): -7.115369722384\n    test 382 98 98.008837191904 Xi(tan=-7.10742, x=-0.139326, y=0.990247): -7.115369722384\n\n    test 383 105 104.951963747366 Phi(tan=-3.74461, x=-0.258819, y=0.969175): -3.732050807569\n    test 384 105 105.000000000000 Beta(tan=-3.73205, x=-0.258819, y=0.965926): -3.732050807569\n    test 385 105 105.048176169243 Theta(tan=-3.71954, x=-0.258819, y=0.962687): -3.732050807569\n    test 386 105 105.024044295704 Mu(tan=-3.7258, x=-0.259224, y=0.965817), iteration=3: -3.732050807569\n    test 387 105 105.048075510346 Chi(tan=-3.71956, x=-1, y=3.71956), iteration=3: -3.732050807569\n    test 388 105 105.016031662804 Xi(tan=-3.72788, x=-0.520505, y=1.94038), iteration=3: -3.732050807569\n\n    test 389 105 104.951963747366 Phi(tan=-3.74461, x=-0.258009, y=0.966142): -3.732050807569\n    test 390 105 105.000000000000 Beta(tan=-3.73205, x=-0.258819, y=0.965926): -3.732050807569\n    test 391 105 105.048176169243 Theta(tan=-3.71954, x=-0.259631, y=0.965708): -3.732050807569\n    test 392 105 105.024044295704 Mu(tan=-3.7258, x=-0.259224, y=0.965817): -3.732050807569\n    test 393 105 105.048075510346 Chi(tan=-3.71956, x=-0.259629, y=0.965708): -3.732050807569\n    test 394 105 105.016031662804 Xi(tan=-3.72788, x=-0.259089, y=0.965853): -3.732050807569\n\n    test 395 112 111.933246025813 Phi(tan=-2.48341, x=-0.374607, y=0.930303): -2.475086853416\n    test 396 112 112.000000000000 Beta(tan=-2.47509, x=-0.374607, y=0.927184): -2.475086853416\n    test 397 112 112.066915437341 Theta(tan=-2.46679, x=-0.374607, y=0.924075): -2.475086853416\n    test 398 112 112.033407196712 Mu(tan=-2.47094, x=-0.375147, y=0.926965), iteration=3: -2.475086853416\n    test 399 112 112.066786634266 Chi(tan=-2.4668, x=-1, y=2.4668), iteration=3: -2.475086853416\n    test 400 112 112.022275613932 Xi(tan=-2.47232, x=-0.753301, y=1.8624), iteration=3: -2.475086853416\n\n    test 401 112 111.933246025813 Phi(tan=-2.48341, x=-0.373526, y=0.92762): -2.475086853416\n    test 402 112 112.000000000000 Beta(tan=-2.47509, x=-0.374607, y=0.927184): -2.475086853416\n    test 403 112 112.066915437341 Theta(tan=-2.46679, x=-0.375689, y=0.926746): -2.475086853416\n    test 404 112 112.033407196712 Mu(tan=-2.47094, x=-0.375147, y=0.926965): -2.475086853416\n    test 405 112 112.066786634266 Chi(tan=-2.4668, x=-0.375687, y=0.926747): -2.475086853416\n    test 406 112 112.022275613932 Xi(tan=-2.47232, x=-0.374967, y=0.927038): -2.475086853416\n\n    test 407 119 118.918479987923 Phi(tan=-1.81012, x=-0.48481, y=0.877562): -1.804047755271\n    test 408 119 119.000000000000 Beta(tan=-1.80405, x=-0.48481, y=0.87462): -1.804047755271\n    test 409 119 119.081665222463 Theta(tan=-1.798, x=-0.48481, y=0.871687): -1.804047755271\n    test 410 119 119.040787185717 Mu(tan=-1.80102, x=-0.485432, y=0.874274), iteration=3: -1.804047755271\n    test 411 119 119.081525372917 Chi(tan=-1.79801, x=-1, y=1.79801), iteration=3: -1.804047755271\n    test 412 119 119.027198394988 Xi(tan=-1.80203, x=-0.974807, y=1.75663), iteration=3: -1.804047755271\n\n    test 413 119 118.918479987923 Phi(tan=-1.81012, x=-0.483565, y=0.875309): -1.804047755271\n    test 414 119 119.000000000000 Beta(tan=-1.80405, x=-0.48481, y=0.87462): -1.804047755271\n    test 415 119 119.081665222463 Theta(tan=-1.798, x=-0.486056, y=0.873928): -1.804047755271\n    test 416 119 119.040787185717 Mu(tan=-1.80102, x=-0.485432, y=0.874274): -1.804047755271\n    test 417 119 119.081525372917 Chi(tan=-1.79801, x=-0.486054, y=0.873929): -1.804047755271\n    test 418 119 119.027198394988 Xi(tan=-1.80203, x=-0.485225, y=0.874389): -1.804047755271\n\n    test 419 126 125.908544256035 Phi(tan=-1.38101, x=-0.587785, y=0.811739): -1.376381920471\n    test 420 126 126.000000000000 Beta(tan=-1.37638, x=-0.587785, y=0.809017): -1.376381920471\n    test 421 126 126.091550707249 Theta(tan=-1.37177, x=-0.587785, y=0.806305): -1.376381920471\n    test 422 126 126.045745652474 Mu(tan=-1.37407, x=-0.588431, y=0.808547), iteration=3: -1.376381920471\n    test 423 126 126.091416595783 Chi(tan=-1.37177, x=-1, y=1.37177), iteration=3: -1.376381920471\n    test 424 126 126.030507332108 Xi(tan=-1.37484, x=-1.18171, y=1.62467), iteration=2: -1.376381920471\n\n    test 425 126 125.908544256035 Phi(tan=-1.38101, x=-0.586493, y=0.809954): -1.376381920471\n    test 426 126 126.000000000000 Beta(tan=-1.37638, x=-0.587785, y=0.809017): -1.376381920471\n    test 427 126 126.091550707249 Theta(tan=-1.37177, x=-0.589077, y=0.808077): -1.376381920471\n    test 428 126 126.045745652474 Mu(tan=-1.37407, x=-0.588431, y=0.808547): -1.376381920471\n    test 429 126 126.091416595783 Chi(tan=-1.37177, x=-0.589075, y=0.808078): -1.376381920471\n    test 430 126 126.030507332108 Xi(tan=-1.37484, x=-0.588216, y=0.808704): -1.376381920471\n\n    test 431 133 132.904033458108 Phi(tan=-1.07598, x=-0.681998, y=0.733814): -1.072368710025\n    test 432 133 133.000000000000 Beta(tan=-1.07237, x=-0.681998, y=0.731354): -1.072368710025\n    test 433 133 133.095989026852 Theta(tan=-1.06877, x=-0.681998, y=0.728902): -1.072368710025\n    test 434 133 133.047987474831 Mu(tan=-1.07057, x=-0.682611, y=0.730782), iteration=3: -1.072368710025\n    test 435 133 133.095874142459 Chi(tan=-1.06878, x=-1, y=1.06878), iteration=2: -1.072368710025\n    test 436 133 133.032005165725 Xi(tan=-1.07117, x=-1.37094, y=1.46851), iteration=3: -1.072368710025\n\n    test 437 133 132.904033458108 Phi(tan=-1.07598, x=-0.680772, y=0.732495): -1.072368710025\n    test 438 133 133.000000000000 Beta(tan=-1.07237, x=-0.681998, y=0.731354): -1.072368710025\n    test 439 133 133.095989026852 Theta(tan=-1.06877, x=-0.683223, y=0.73021): -1.072368710025\n    test 440 133 133.047987474831 Mu(tan=-1.07057, x=-0.682611, y=0.730782): -1.072368710025\n    test 441 133 133.095874142459 Chi(tan=-1.06878, x=-0.683221, y=0.730211): -1.072368710025\n    test 442 133 133.032005165725 Xi(tan=-1.07117, x=-0.682407, y=0.730973): -1.072368710025\n\n    test 443 140 139.905221888853 Phi(tan=-0.841922, x=-0.766044, y=0.64495): -0.839099631177\n    test 444 140 140.000000000000 Beta(tan=-0.8391, x=-0.766044, y=0.642788): -0.839099631177\n    test 445 140 140.094722853987 Theta(tan=-0.836286, x=-0.766044, y=0.640632): -0.839099631177\n    test 446 140 140.047378679025 Mu(tan=-0.837691, x=-0.766576, y=0.642154), iteration=2: -0.839099631177\n    test 447 140 140.094635301560 Chi(tan=-0.836289, x=-1, y=0.836289), iteration=3: -0.839099631177\n    test 448 140 140.031601928062 Xi(tan=-0.83816, x=-1.53968, y=1.2905), iteration=3: -0.839099631177\n\n    test 449 140 139.905221888853 Phi(tan=-0.841922, x=-0.76498, y=0.644054): -0.839099631177\n    test 450 140 140.000000000000 Beta(tan=-0.8391, x=-0.766044, y=0.642788): -0.839099631177\n    test 451 140 140.094722853987 Theta(tan=-0.836286, x=-0.767106, y=0.64152): -0.839099631177\n    test 452 140 140.047378679025 Mu(tan=-0.837691, x=-0.766576, y=0.642154): -0.839099631177\n    test 453 140 140.094635301560 Chi(tan=-0.836289, x=-0.767105, y=0.641521): -0.839099631177\n    test 454 140 140.031601928062 Xi(tan=-0.83816, x=-0.766399, y=0.642365): -0.839099631177\n\n    test 455 147 146.912045740495 Phi(tan=-0.651592, x=-0.838671, y=0.546471): -0.649407593198\n    test 456 147 147.000000000000 Beta(tan=-0.649408, x=-0.838671, y=0.544639): -0.649407593198\n    test 457 147 147.087834196097 Theta(tan=-0.64723, x=-0.838671, y=0.542813): -0.649407593198\n    test 458 147 147.043954583618 Mu(tan=-0.648317, x=-0.839088, y=0.543995), iteration=3: -0.649407593198\n    test 459 147 147.087775924345 Chi(tan=-0.647232, x=-1, y=0.647232), iteration=3: -0.649407593198\n    test 460 147 147.029320517871 Xi(tan=-0.64868, x=-1.68543, y=1.09331), iteration=3: -0.649407593198\n\n    test 461 147 146.912045740495 Phi(tan=-0.651592, x=-0.837834, y=0.545926): -0.649407593198\n    test 462 147 147.000000000000 Beta(tan=-0.649408, x=-0.838671, y=0.544639): -0.649407593198\n    test 463 147 147.087834196097 Theta(tan=-0.64723, x=-0.839505, y=0.543353): -0.649407593198\n    test 464 147 147.043954583618 Mu(tan=-0.648317, x=-0.839088, y=0.543995): -0.649407593198\n    test 465 147 147.087775924345 Chi(tan=-0.647232, x=-0.839504, y=0.543354): -0.649407593198\n    test 466 147 147.029320517871 Xi(tan=-0.64868, x=-0.838949, y=0.54421): -0.649407593198\n\n    test 467 154 153.924105301481 Phi(tan=-0.489373, x=-0.898794, y=0.439846): -0.487732588566\n    test 468 154 154.000000000000 Beta(tan=-0.487733, x=-0.898794, y=0.438371): -0.487732588566\n    test 469 154 154.075737936138 Theta(tan=-0.486097, x=-0.898794, y=0.436901): -0.487732588566\n    test 470 154 154.037917900127 Mu(tan=-0.486914, x=-0.899084, y=0.437776), iteration=3: -0.487732588566\n    test 471 154 154.075705391203 Chi(tan=-0.486098, x=-1, y=0.486098), iteration=3: -0.487732588566\n    test 472 154 154.025295587615 Xi(tan=-0.487186, x=-1.80605, y=0.879882), iteration=3: -0.487732588566\n\n    test 473 154 153.924105301481 Phi(tan=-0.489373, x=-0.898213, y=0.439561): -0.487732588566\n    test 474 154 154.000000000000 Beta(tan=-0.487733, x=-0.898794, y=0.438371): -0.487732588566\n    test 475 154 154.075737936138 Theta(tan=-0.486097, x=-0.899373, y=0.437183): -0.487732588566\n    test 476 154 154.037917900127 Mu(tan=-0.486914, x=-0.899084, y=0.437776): -0.487732588566\n    test 477 154 154.075705391203 Chi(tan=-0.486098, x=-0.899372, y=0.437183): -0.487732588566\n    test 478 154 154.025295587615 Xi(tan=-0.487186, x=-0.898987, y=0.437974): -0.487732588566\n\n    test 479 161 160.940687365843 Phi(tan=-0.345486, x=-0.945519, y=0.326663): -0.344327613290\n    test 480 161 161.000000000000 Beta(tan=-0.344328, x=-0.945519, y=0.325568): -0.344327613290\n    test 481 161 161.059155871563 Theta(tan=-0.343173, x=-0.945519, y=0.324477): -0.344327613290\n    test 482 161 161.029626856612 Mu(tan=-0.343749, x=-0.945687, y=0.325079), iteration=3: -0.344327613290\n    test 483 161 161.059141853346 Chi(tan=-0.343173, x=-1, y=0.343173), iteration=3: -0.344327613290\n    test 484 161 161.019765751188 Xi(tan=-0.343942, x=-1.89975, y=0.653405), iteration=3: -0.344327613290\n\n    test 485 161 160.940687365843 Phi(tan=-0.345486, x=-0.945181, y=0.326547): -0.344327613290\n    test 486 161 161.000000000000 Beta(tan=-0.344328, x=-0.945519, y=0.325568): -0.344327613290\n    test 487 161 161.059155871563 Theta(tan=-0.343173, x=-0.945854, y=0.324592): -0.344327613290\n    test 488 161 161.029626856612 Mu(tan=-0.343749, x=-0.945687, y=0.325079): -0.344327613290\n    test 489 161 161.059141853346 Chi(tan=-0.343173, x=-0.945854, y=0.324592): -0.344327613290\n    test 490 161 161.019765751188 Xi(tan=-0.343942, x=-0.945631, y=0.325242): -0.344327613290\n\n    test 491 168 167.960806838131 Phi(tan=-0.213272, x=-0.978148, y=0.208611): -0.212556561670\n    test 492 168 168.000000000000 Beta(tan=-0.212557, x=-0.978148, y=0.207912): -0.212556561670\n    test 493 168 168.039073098008 Theta(tan=-0.211844, x=-0.978148, y=0.207215): -0.212556561670\n    test 494 168 168.019574010622 Mu(tan=-0.2122, x=-0.978219, y=0.207578), iteration=2: -0.212556561670\n    test 495 168 168.039069322354 Chi(tan=-0.211844, x=-1, y=0.211844), iteration=2: -0.212556561670\n    test 496 168 168.013059526305 Xi(tan=-0.212318, x=-1.96517, y=0.417243), iteration=3: -0.212556561670\n\n    test 497 168 167.960806838131 Phi(tan=-0.213272, x=-0.978005, y=0.208581): -0.212556561670\n    test 498 168 168.000000000000 Beta(tan=-0.212557, x=-0.978148, y=0.207912): -0.212556561670\n    test 499 168 168.039073098008 Theta(tan=-0.211844, x=-0.978289, y=0.207245): -0.212556561670\n    test 500 168 168.019574010622 Mu(tan=-0.2122, x=-0.978219, y=0.207578): -0.212556561670\n    test 501 168 168.039069322354 Chi(tan=-0.211844, x=-0.978289, y=0.207245): -0.212556561670\n    test 502 168 168.013059526305 Xi(tan=-0.212318, x=-0.978195, y=0.207689): -0.212556561670\n\n    test 503 175 174.983265245736 Phi(tan=-0.087783, x=-0.996195, y=0.0874489): -0.087488663526\n    test 504 175 175.000000000000 Beta(tan=-0.0874887, x=-0.996195, y=0.0871557): -0.087488663526\n    test 505 175 175.016679496811 Theta(tan=-0.0871953, x=-0.996195, y=0.0868635): -0.087488663526\n    test 506 175 175.008356987733 Mu(tan=-0.0873417, x=-0.996207, y=0.0870104), iteration=3: -0.087488663526\n    test 507 175 175.016679213606 Chi(tan=-0.0871953, x=-1, y=0.0871953), iteration=2: -0.087488663526\n    test 508 175 175.005575818689 Xi(tan=-0.0873906, x=-2.00135, y=0.174899), iteration=2: -0.087488663526\n\n    test 509 175 174.983265245736 Phi(tan=-0.087783, x=-0.996169, y=0.0874467): -0.087488663526\n    test 510 175 175.000000000000 Beta(tan=-0.0874887, x=-0.996195, y=0.0871557): -0.087488663526\n    test 511 175 175.016679496811 Theta(tan=-0.0871953, x=-0.99622, y=0.0868657): -0.087488663526\n    test 512 175 175.008356987733 Mu(tan=-0.0873417, x=-0.996207, y=0.0870104): -0.087488663526\n    test 513 175 175.016679213606 Chi(tan=-0.0871953, x=-0.99622, y=0.0868657): -0.087488663526\n    test 514 175 175.005575818689 Xi(tan=-0.0873906, x=-0.996203, y=0.0870588): -0.087488663526\n\n    test 515 182 182.006722688009 Phi(tan=0.0350382, x=-0.999391, y=-0.0350169): 0.034920769492\n    test 516 182 182.000000000000 Beta(tan=0.0349208, x=-0.999391, y=-0.0348995): 0.034920769492\n    test 517 182 181.993299797077 Theta(tan=0.0348037, x=-0.999391, y=-0.0347825): 0.034920769492\n    test 518 182 181.996642883728 Mu(tan=0.0348621, x=-0.999393, y=-0.0348409), iteration=3: 0.034920769492\n    test 519 182 181.993299815318 Chi(tan=0.0348037, x=-1, y=-0.0348037), iteration=2: 0.034920769492\n    test 520 182 181.997760106963 Xi(tan=0.0348816, x=-2.00776, y=-0.0700339), iteration=3: 0.034920769492\n\n    test 521 182 182.006722688009 Phi(tan=0.0350382, x=-0.999387, y=-0.0350168): 0.034920769492\n    test 522 182 182.000000000000 Beta(tan=0.0349208, x=-0.999391, y=-0.0348995): 0.034920769492\n    test 523 182 181.993299797077 Theta(tan=0.0348037, x=-0.999395, y=-0.0347826): 0.034920769492\n    test 524 182 181.996642883728 Mu(tan=0.0348621, x=-0.999393, y=-0.0348409): 0.034920769492\n    test 525 182 181.993299815318 Chi(tan=0.0348037, x=-0.999395, y=-0.0347826): 0.034920769492\n    test 526 182 181.997760106963 Xi(tan=0.0348816, x=-0.999392, y=-0.0348604): 0.034920769492\n\n    test 527 189 189.029778772560 Phi(tan=0.158917, x=-0.987688, y=-0.156961): 0.158384440325\n    test 528 189 189.000000000000 Beta(tan=0.158384, x=-0.987688, y=-0.156434): 0.158384440325\n    test 529 189 188.970316191157 Theta(tan=0.157853, x=-0.987688, y=-0.15591): 0.158384440325\n    test 530 189 188.985128467162 Mu(tan=0.158118, x=-0.987729, y=-0.156178), iteration=3: 0.158384440325\n    test 531 189 188.970317814928 Chi(tan=0.157853, x=-1, y=-0.157853), iteration=2: 0.158384440325\n    test 532 189 188.990077770379 Xi(tan=0.158207, x=-1.9843, y=-0.31393), iteration=3: 0.158384440325\n\n    test 533 189 189.029778772560 Phi(tan=0.158917, x=-0.987607, y=-0.156948): 0.158384440325\n    test 534 189 189.000000000000 Beta(tan=0.158384, x=-0.987688, y=-0.156434): 0.158384440325\n    test 535 189 188.970316191157 Theta(tan=0.157853, x=-0.987769, y=-0.155923): 0.158384440325\n    test 536 189 188.985128467162 Mu(tan=0.158118, x=-0.987729, y=-0.156178): 0.158384440325\n    test 537 189 188.970317814928 Chi(tan=0.157853, x=-0.987769, y=-0.155923): 0.158384440325\n    test 538 189 188.990077770379 Xi(tan=0.158207, x=-0.987715, y=-0.156263): 0.158384440325\n\n    test 539 196 196.051057415277 Phi(tan=0.28771, x=-0.961262, y=-0.276565): 0.286745385759\n    test 540 196 196.000000000000 Beta(tan=0.286745, x=-0.961262, y=-0.275637): 0.286745385759\n    test 541 196 195.949087795468 Theta(tan=0.285784, x=-0.961262, y=-0.274713): 0.286745385759\n    test 542 196 195.974498585700 Mu(tan=0.286264, x=-0.961384, y=-0.275209), iteration=2: 0.286745385759\n    test 543 196 195.949096442818 Chi(tan=0.285784, x=-1, y=-0.285784), iteration=3: 0.286745385759\n    test 544 196 195.982986192635 Xi(tan=0.286424, x=-1.93132, y=-0.553176), iteration=3: 0.286745385759\n\n    test 545 196 196.051057415277 Phi(tan=0.28771, x=-0.961016, y=-0.276494): 0.286745385759\n    test 546 196 196.000000000000 Beta(tan=0.286745, x=-0.961262, y=-0.275637): 0.286745385759\n    test 547 196 195.949087795468 Theta(tan=0.285784, x=-0.961506, y=-0.274783): 0.286745385759\n    test 548 196 195.974498585700 Mu(tan=0.286264, x=-0.961384, y=-0.275209): 0.286745385759\n    test 549 196 195.949096442818 Chi(tan=0.285784, x=-0.961506, y=-0.274783): 0.286745385759\n    test 550 196 195.982986192635 Xi(tan=0.286424, x=-0.961344, y=-0.275352): 0.286745385759\n\n    test 551 203 203.069290086312 Phi(tan=0.425903, x=-0.920505, y=-0.392046): 0.424474816210\n    test 552 203 203.000000000000 Beta(tan=0.424475, x=-0.920505, y=-0.390731): 0.424474816210\n    test 553 203 202.930871376810 Theta(tan=0.423052, x=-0.920505, y=-0.389421): 0.424474816210\n    test 554 203 202.965385294258 Mu(tan=0.423762, x=-0.920741, y=-0.390175), iteration=3: 0.424474816210\n    test 555 203 202.930894974288 Chi(tan=0.423052, x=-1, y=-0.423052), iteration=3: 0.424474816210\n    test 556 203 202.976907357652 Xi(tan=0.423999, x=-1.84959, y=-0.784226), iteration=3: 0.424474816210\n\n    test 557 203 203.069290086312 Phi(tan=0.425903, x=-0.920032, y=-0.391844): 0.424474816210\n    test 558 203 203.000000000000 Beta(tan=0.424475, x=-0.920505, y=-0.390731): 0.424474816210\n    test 559 203 202.930871376810 Theta(tan=0.423052, x=-0.920976, y=-0.38962): 0.424474816210\n    test 560 203 202.965385294258 Mu(tan=0.423762, x=-0.920741, y=-0.390175): 0.424474816210\n    test 561 203 202.930894974288 Chi(tan=0.423052, x=-0.920975, y=-0.389621): 0.424474816210\n    test 562 203 202.976907357652 Xi(tan=0.423999, x=-0.920662, y=-0.39036): 0.424474816210\n\n    test 563 210 210.083392202979 Phi(tan=0.579293, x=-0.866025, y=-0.501682): 0.577350269190\n    test 564 210 210.000000000000 Beta(tan=0.57735, x=-0.866025, y=-0.5): 0.577350269190\n    test 565 210 209.916747713236 Theta(tan=0.575415, x=-0.866025, y=-0.498324): 0.577350269190\n    test 566 210 209.958330176858 Mu(tan=0.576381, x=-0.866389, y=-0.49937), iteration=2: 0.577350269190\n    test 567 210 209.916794258180 Chi(tan=0.575416, x=-1, y=-0.575416), iteration=2: 0.577350269190\n    test 568 210 209.972202619898 Xi(tan=0.576704, x=-1.74031, y=-1.00365), iteration=2: 0.577350269190\n\n    test 569 210 210.083392202979 Phi(tan=0.579293, x=-0.865297, y=-0.50126): 0.577350269190\n    test 570 210 210.000000000000 Beta(tan=0.57735, x=-0.866025, y=-0.5): 0.577350269190\n    test 571 210 209.916747713236 Theta(tan=0.575415, x=-0.866751, y=-0.498741): 0.577350269190\n    test 572 210 209.958330176858 Mu(tan=0.576381, x=-0.866389, y=-0.49937): 0.577350269190\n    test 573 210 209.916794258180 Chi(tan=0.575416, x=-0.866751, y=-0.498742): 0.577350269190\n    test 574 210 209.972202619898 Xi(tan=0.576704, x=-0.866268, y=-0.49958): 0.577350269190\n\n    test 575 217 217.092527888642 Phi(tan=0.756089, x=-0.798636, y=-0.60384): 0.753554050103\n    test 576 217 217.000000000000 Beta(tan=0.753554, x=-0.798636, y=-0.601815): 0.753554050103\n    test 577 217 216.907557725734 Theta(tan=0.751028, x=-0.798636, y=-0.599797): 0.753554050103\n    test 578 217 216.953752130797 Mu(tan=0.752289, x=-0.799121, y=-0.60117), iteration=2: 0.753554050103\n    test 579 217 216.907632616913 Chi(tan=0.75103, x=-1, y=-0.75103), iteration=3: 0.753554050103\n    test 580 217 216.969151185746 Xi(tan=0.75271, x=-1.60509, y=-1.20817), iteration=2: 0.753554050103\n\n    test 581 217 217.092527888642 Phi(tan=0.756089, x=-0.797663, y=-0.603104): 0.753554050103\n    test 582 217 217.000000000000 Beta(tan=0.753554, x=-0.798636, y=-0.601815): 0.753554050103\n    test 583 217 216.907557725734 Theta(tan=0.751028, x=-0.799605, y=-0.600526): 0.753554050103\n    test 584 217 216.953752130797 Mu(tan=0.752289, x=-0.799121, y=-0.60117): 0.753554050103\n    test 585 217 216.907632616913 Chi(tan=0.75103, x=-0.799605, y=-0.600527): 0.753554050103\n    test 586 217 216.969151185746 Xi(tan=0.75271, x=-0.798959, y=-0.601385): 0.753554050103\n\n    test 587 224 224.096159176144 Phi(tan=0.968937, x=-0.71934, y=-0.696995): 0.965688774807\n    test 588 224 224.000000000000 Beta(tan=0.965689, x=-0.71934, y=-0.694658): 0.965688774807\n    test 589 224 223.903852093789 Theta(tan=0.962451, x=-0.71934, y=-0.692329): 0.965688774807\n    test 590 224 223.951922536530 Mu(tan=0.964068, x=-0.719922, y=-0.694055), iteration=2: 0.965688774807\n    test 591 224 223.903955899504 Chi(tan=0.962454, x=-1, y=-0.962454), iteration=3: 0.965688774807\n    test 592 224 223.967933596024 Xi(tan=0.964608, x=-1.44592, y=-1.39475), iteration=3: 0.965688774807\n\n    test 593 224 224.096159176144 Phi(tan=0.968937, x=-0.718173, y=-0.695865): 0.965688774807\n    test 594 224 224.000000000000 Beta(tan=0.965689, x=-0.71934, y=-0.694658): 0.965688774807\n    test 595 224 223.903852093789 Theta(tan=0.962451, x=-0.720504, y=-0.69345): 0.965688774807\n    test 596 224 223.951922536530 Mu(tan=0.964068, x=-0.719922, y=-0.694055): 0.965688774807\n    test 597 224 223.903955899504 Chi(tan=0.962454, x=-0.720503, y=-0.693452): 0.965688774807\n    test 598 224 223.967933596024 Xi(tan=0.964608, x=-0.719728, y=-0.694256): 0.965688774807\n\n    test 599 231 231.094076843128 Phi(tan=1.23905, x=-0.62932, y=-0.77976): 1.234897156535\n    test 600 231 231.000000000000 Beta(tan=1.2349, x=-0.62932, y=-0.777146): 1.234897156535\n    test 601 231 230.905857444036 Theta(tan=1.23076, x=-0.62932, y=-0.77454): 1.234897156535\n    test 602 231 230.952949275029 Mu(tan=1.23283, x=-0.629958, y=-0.776629), iteration=3: 1.234897156535\n    test 603 231 230.905984687641 Chi(tan=1.23076, x=-1, y=-1.23076), iteration=3: 1.234897156535\n    test 604 231 230.968621174367 Xi(tan=1.23352, x=-1.26515, y=-1.56058), iteration=3: 1.234897156535\n\n    test 605 231 231.094076843128 Phi(tan=1.23905, x=-0.628044, y=-0.778178): 1.234897156535\n    test 606 231 231.000000000000 Beta(tan=1.2349, x=-0.62932, y=-0.777146): 1.234897156535\n    test 607 231 230.905857444036 Theta(tan=1.23076, x=-0.630596, y=-0.776111): 1.234897156535\n    test 608 231 230.952949275029 Mu(tan=1.23283, x=-0.629958, y=-0.776629): 1.234897156535\n    test 609 231 230.905984687641 Chi(tan=1.23076, x=-0.630595, y=-0.776112): 1.234897156535\n    test 610 231 230.968621174367 Xi(tan=1.23352, x=-0.629746, y=-0.776801): 1.234897156535\n\n    test 611 238 238.086411314589 Phi(tan=1.60572, x=-0.529919, y=-0.850901): 1.600334529041\n    test 612 238 238.000000000000 Beta(tan=1.60033, x=-0.529919, y=-0.848048): 1.600334529041\n    test 613 238 237.913461373388 Theta(tan=1.59497, x=-0.529919, y=-0.845205): 1.600334529041\n    test 614 238 237.956770509194 Mu(tan=1.59765, x=-0.530559, y=-0.847648), iteration=3: 1.600334529041\n    test 615 238 237.913600687903 Chi(tan=1.59498, x=-1, y=-1.59498), iteration=2: 1.600334529041\n    test 616 238 237.971172027129 Xi(tan=1.59854, x=-1.06545, y=-1.70318), iteration=3: 1.600334529041\n\n    test 617 238 238.086411314589 Phi(tan=1.60572, x=-0.52864, y=-0.848846): 1.600334529041\n    test 618 238 238.000000000000 Beta(tan=1.60033, x=-0.529919, y=-0.848048): 1.600334529041\n    test 619 238 237.913461373388 Theta(tan=1.59497, x=-0.5312, y=-0.847247): 1.600334529041\n    test 620 238 237.956770509194 Mu(tan=1.59765, x=-0.530559, y=-0.847648): 1.600334529041\n    test 621 238 237.913600687903 Chi(tan=1.59498, x=-0.531197, y=-0.847248): 1.600334529041\n    test 622 238 237.971172027129 Xi(tan=1.59854, x=-0.530346, y=-0.847781): 1.600334529041\n\n    test 623 245 245.073623344306 Phi(tan=2.15172, x=-0.422618, y=-0.909357): 2.144506920510\n    test 624 245 245.000000000000 Beta(tan=2.14451, x=-0.422618, y=-0.906308): 2.144506920510\n    test 625 245 244.926217548699 Theta(tan=2.13732, x=-0.422618, y=-0.903269): 2.144506920510\n    test 626 245 244.963158554024 Mu(tan=2.14091, x=-0.423201, y=-0.906036), iteration=2: 2.144506920510\n    test 627 245 244.926353236006 Chi(tan=2.13733, x=-1, y=-2.13733), iteration=3: 2.144506920510\n    test 628 245 244.975433776813 Xi(tan=2.14211, x=-0.849812, y=-1.82039), iteration=3: 2.144506920510\n\n    test 629 245 245.073623344306 Phi(tan=2.15172, x=-0.421453, y=-0.90685): 2.144506920510\n    test 630 245 245.000000000000 Beta(tan=2.14451, x=-0.422618, y=-0.906308): 2.144506920510\n    test 631 245 244.926217548699 Theta(tan=2.13732, x=-0.423785, y=-0.905763): 2.144506920510\n    test 632 245 244.963158554024 Mu(tan=2.14091, x=-0.423201, y=-0.906036): 2.144506920510\n    test 633 245 244.926353236006 Chi(tan=2.13733, x=-0.423783, y=-0.905764): 2.144506920510\n    test 634 245 244.975433776813 Xi(tan=2.14211, x=-0.423007, y=-0.906127): 2.144506920510\n\n    test 635 252 252.056475395211 Phi(tan=3.08804, x=-0.309017, y=-0.954256): 3.077683537175\n    test 636 252 252.000000000000 Beta(tan=3.07768, x=-0.309017, y=-0.951057): 3.077683537175\n    test 637 252 251.943370950484 Theta(tan=3.06736, x=-0.309017, y=-0.947868): 3.077683537175\n    test 638 252 251.971733559721 Mu(tan=3.07253, x=-0.309486, y=-0.950904), iteration=2: 3.077683537175\n    test 639 252 251.943485649406 Chi(tan=3.06739, x=-1, y=-3.06739), iteration=2: 3.077683537175\n    test 640 252 251.981152809484 Xi(tan=3.07424, x=-0.621437, y=-1.91045), iteration=3: 3.077683537175\n\n    test 641 252 252.056475395211 Phi(tan=3.08804, x=-0.308079, y=-0.951361): 3.077683537175\n    test 642 252 252.000000000000 Beta(tan=3.07768, x=-0.309017, y=-0.951057): 3.077683537175\n    test 643 252 251.943370950484 Theta(tan=3.06736, x=-0.309957, y=-0.950751): 3.077683537175\n    test 644 252 251.971733559721 Mu(tan=3.07253, x=-0.309486, y=-0.950904): 3.077683537175\n    test 645 252 251.943485649406 Chi(tan=3.06739, x=-0.309955, y=-0.950751): 3.077683537175\n    test 646 252 251.981152809484 Xi(tan=3.07424, x=-0.30933, y=-0.950955): 3.077683537175\n\n    test 647 259 259.035985707307 Phi(tan=5.16186, x=-0.190809, y=-0.984929): 5.144554015970\n    test 648 259 259.000000000000 Beta(tan=5.14455, x=-0.190809, y=-0.981627): 5.144554015970\n    test 649 259 258.963902062378 Theta(tan=5.12731, x=-0.190809, y=-0.978336): 5.144554015970\n    test 650 259 258.981986158342 Mu(tan=5.13593, x=-0.191118, y=-0.981567), iteration=3: 5.144554015970\n    test 651 259 258.963979961875 Chi(tan=5.12734, x=-1, y=-5.12734), iteration=3: 5.144554015970\n    test 652 259 258.987989441453 Xi(tan=5.1388, x=-0.383745, y=-1.97199), iteration=3: 5.144554015970\n\n    test 653 259 259.035985707307 Phi(tan=5.16186, x=-0.190192, y=-0.981747): 5.144554015970\n    test 654 259 259.000000000000 Beta(tan=5.14455, x=-0.190809, y=-0.981627): 5.144554015970\n    test 655 259 258.963902062378 Theta(tan=5.12731, x=-0.191427, y=-0.981507): 5.144554015970\n    test 656 259 258.981986158342 Mu(tan=5.13593, x=-0.191118, y=-0.981567): 5.144554015970\n    test 657 259 258.963979961875 Chi(tan=5.12734, x=-0.191426, y=-0.981507): 5.144554015970\n    test 658 259 258.987989441453 Xi(tan=5.1388, x=-0.191015, y=-0.981587): 5.144554015970\n\n    test 659 266 266.013367926454 Phi(tan=14.3488, x=-0.0697565, y=-1.00092): 14.300666256712\n    test 660 266 266.000000000000 Beta(tan=14.3007, x=-0.0697565, y=-0.997564): 14.300666256712\n    test 661 266 265.986587541025 Theta(tan=14.2527, x=-0.0697565, y=-0.994219): 14.300666256712\n    test 662 266 265.993307710088 Mu(tan=14.2767, x=-0.069873, y=-0.997556), iteration=3: 14.300666256712\n    test 663 266 265.986617434521 Chi(tan=14.2528, x=-1, y=-14.2528), iteration=3: 14.300666256712\n    test 664 266 265.995538081208 Xi(tan=14.2847, x=-0.140295, y=-2.00408), iteration=3: 14.300666256712\n\n    test 665 266 266.013367926454 Phi(tan=14.3488, x=-0.0695237, y=-0.99758): 14.300666256712\n    test 666 266 266.000000000000 Beta(tan=14.3007, x=-0.0697565, y=-0.997564): 14.300666256712\n    test 667 266 265.986587541025 Theta(tan=14.2527, x=-0.06999, y=-0.997548): 14.300666256712\n    test 668 266 265.993307710088 Mu(tan=14.2767, x=-0.069873, y=-0.997556): 14.300666256712\n    test 669 266 265.986617434521 Chi(tan=14.2528, x=-0.0699895, y=-0.997548): 14.300666256712\n    test 670 266 265.995538081208 Xi(tan=14.2847, x=-0.0698342, y=-0.997559): 14.300666256712\n\n    test 671 273 272.989959849669 Phi(tan=-19.1453, x=0.052336, y=-1.00199): -19.081136687728\n    test 672 273 273.000000000000 Beta(tan=-19.0811, x=0.052336, y=-0.99863): -19.081136687728\n    test 673 273 273.010073740960 Theta(tan=-19.0172, x=0.052336, y=-0.995281): -19.081136687728\n    test 674 273 273.005026355872 Mu(tan=-19.0492, x=0.0524236, y=-0.998625), iteration=2: -19.081136687728\n    test 675 273 273.010051240667 Chi(tan=-19.0173, x=1.0, y=-19.0173), iteration=3: -19.081136687728\n    test 676 273 273.003351193295 Xi(tan=-19.0598, x=0.105259, y=-2.00622), iteration=3: -19.081136687728\n\n    test 677 273 272.989959849669 Phi(tan=-19.1453, x=0.052161, y=-0.998639): -19.081136687728\n    test 678 273 273.000000000000 Beta(tan=-19.0811, x=0.052336, y=-0.99863): -19.081136687728\n    test 679 273 273.010073740960 Theta(tan=-19.0172, x=0.0525115, y=-0.99862): -19.081136687728\n    test 680 273 273.005026355872 Mu(tan=-19.0492, x=0.0524236, y=-0.998625): -19.081136687728\n    test 681 273 273.010051240667 Chi(tan=-19.0173, x=0.0525111, y=-0.99862): -19.081136687728\n    test 682 273 273.003351193295 Xi(tan=-19.0598, x=0.0523944, y=-0.998626): -19.081136687728\n\n    test 683 280 279.967145322218 Phi(tan=-5.69036, x=0.173648, y=-0.988121): -5.671281819618\n    test 684 280 280.000000000000 Beta(tan=-5.67128, x=0.173648, y=-0.984808): -5.671281819618\n    test 685 280 280.032958527773 Theta(tan=-5.65227, x=0.173648, y=-0.981506): -5.671281819618\n    test 686 280 280.016446759121 Mu(tan=-5.66178, x=0.173931, y=-0.984758), iteration=3: -5.671281819618\n    test 687 280 280.032886940584 Chi(tan=-5.65231, x=1.0, y=-5.65231), iteration=3: -5.671281819618\n    test 688 280 280.010965671278 Xi(tan=-5.66494, x=0.349234, y=-1.97839), iteration=3: -5.671281819618\n\n    test 689 280 279.967145322218 Phi(tan=-5.69036, x=0.173083, y=-0.984907): -5.671281819618\n    test 690 280 280.000000000000 Beta(tan=-5.67128, x=0.173648, y=-0.984808): -5.671281819618\n    test 691 280 280.032958527773 Theta(tan=-5.65227, x=0.174215, y=-0.984708): -5.671281819618\n    test 692 280 280.016446759121 Mu(tan=-5.66178, x=0.173931, y=-0.984758): -5.671281819618\n    test 693 280 280.032886940584 Chi(tan=-5.65231, x=0.174213, y=-0.984708): -5.671281819618\n    test 694 280 280.010965671278 Xi(tan=-5.66494, x=0.173837, y=-0.984775): -5.671281819618\n\n    test 695 287 286.946273607855 Phi(tan=-3.28186, x=0.292372, y=-0.959522): -3.270852618484\n    test 696 287 287.000000000000 Beta(tan=-3.27085, x=0.292372, y=-0.956305): -3.270852618484\n    test 697 287 287.053876189570 Theta(tan=-3.25989, x=0.292372, y=-0.953098): -3.270852618484\n    test 698 287 287.026891215965 Mu(tan=-3.26537, x=0.292821, y=-0.956167), iteration=3: -3.270852618484\n    test 699 287 287.053765856507 Chi(tan=-3.25991, x=1.0, y=-3.25991), iteration=3: -3.270852618484\n    test 700 287 287.017930102981 Xi(tan=-3.2672, x=0.58797, y=-1.92101), iteration=2: -3.270852618484\n\n    test 701 287 286.946273607855 Phi(tan=-3.28186, x=0.291475, y=-0.956578): -3.270852618484\n    test 702 287 287.000000000000 Beta(tan=-3.27085, x=0.292372, y=-0.956305): -3.270852618484\n    test 703 287 287.053876189570 Theta(tan=-3.25989, x=0.293271, y=-0.956029): -3.270852618484\n    test 704 287 287.026891215965 Mu(tan=-3.26537, x=0.292821, y=-0.956167): -3.270852618484\n    test 705 287 287.053765856507 Chi(tan=-3.25991, x=0.293269, y=-0.95603): -3.270852618484\n    test 706 287 287.017930102981 Xi(tan=-3.2672, x=0.292671, y=-0.956213): -3.270852618484\n\n    test 707 294 293.928580656019 Phi(tan=-2.25359, x=0.406737, y=-0.916619): -2.246036773904\n    test 708 294 294.000000000000 Beta(tan=-2.24604, x=0.406737, y=-0.913545): -2.246036773904\n    test 709 294 294.071580020440 Theta(tan=-2.23851, x=0.406737, y=-0.910483): -2.246036773904\n    test 710 294 294.035739737781 Mu(tan=-2.24227, x=0.407306, y=-0.913292), iteration=2: -2.246036773904\n    test 711 294 294.071446269026 Chi(tan=-2.23852, x=1.0, y=-2.23852), iteration=3: -2.246036773904\n    test 712 294 294.023831365709 Xi(tan=-2.24352, x=0.817889, y=-1.83495), iteration=3: -2.246036773904\n\n    test 713 294 293.928580656019 Phi(tan=-2.25359, x=0.405598, y=-0.914052): -2.246036773904\n    test 714 294 294.000000000000 Beta(tan=-2.24604, x=0.406737, y=-0.913545): -2.246036773904\n    test 715 294 294.071580020440 Theta(tan=-2.23851, x=0.407878, y=-0.913037): -2.246036773904\n    test 716 294 294.035739737781 Mu(tan=-2.24227, x=0.407306, y=-0.913292): -2.246036773904\n    test 717 294 294.071446269026 Chi(tan=-2.23852, x=0.407875, y=-0.913038): -2.246036773904\n    test 718 294 294.023831365709 Xi(tan=-2.24352, x=0.407117, y=-0.913376): -2.246036773904\n\n    test 719 301 300.915116613042 Phi(tan=-1.66988, x=0.515038, y=-0.860051): -1.664279482351\n    test 720 301 301.000000000000 Beta(tan=-1.66428, x=0.515038, y=-0.857167): -1.664279482351\n    test 721 301 301.085017327347 Theta(tan=-1.6587, x=0.515038, y=-0.854293): -1.664279482351\n    test 722 301 301.042466766526 Mu(tan=-1.66149, x=0.515673, y=-0.856785), iteration=2: -1.664279482351\n    test 723 301 301.084877498227 Chi(tan=-1.65871, x=1.0, y=-1.65871), iteration=3: -1.664279482351\n    test 724 301 301.028319023279 Xi(tan=-1.66242, x=1.03555, y=-1.72152), iteration=2: -1.664279482351\n\n    test 725 301 300.915116613042 Phi(tan=-1.66988, x=0.513768, y=-0.857929): -1.664279482351\n    test 726 301 301.000000000000 Beta(tan=-1.66428, x=0.515038, y=-0.857167): -1.664279482351\n    test 727 301 301.085017327347 Theta(tan=-1.6587, x=0.516309, y=-0.856402): -1.664279482351\n    test 728 301 301.042466766526 Mu(tan=-1.66149, x=0.515673, y=-0.856785): -1.664279482351\n    test 729 301 301.084877498227 Chi(tan=-1.65871, x=0.516307, y=-0.856403): -1.664279482351\n    test 730 301 301.028319023279 Xi(tan=-1.66242, x=0.515462, y=-0.856913): -1.664279482351\n\n    test 731 308 307.906683665119 Phi(tan=-1.28425, x=0.615661, y=-0.790662): -1.279941632193\n    test 732 308 308.000000000000 Beta(tan=-1.27994, x=0.615661, y=-0.788011): -1.279941632193\n    test 733 308 308.093392183249 Theta(tan=-1.27565, x=0.615661, y=-0.785369): -1.279941632193\n    test 734 308 308.046672369053 Mu(tan=-1.27779, x=0.616303, y=-0.787509), iteration=3: -1.279941632193\n    test 735 308 308.093262395276 Chi(tan=-1.27566, x=1.0, y=-1.27566), iteration=3: -1.279941632193\n    test 736 308 308.031126109597 Xi(tan=-1.27851, x=1.23771, y=-1.58243), iteration=2: -1.279941632193\n\n    test 737 308 307.906683665119 Phi(tan=-1.28425, x=0.614377, y=-0.789012): -1.279941632193\n    test 738 308 308.000000000000 Beta(tan=-1.27994, x=0.615661, y=-0.788011): -1.279941632193\n    test 739 308 308.093392183249 Theta(tan=-1.27565, x=0.616945, y=-0.787006): -1.279941632193\n    test 740 308 308.046672369053 Mu(tan=-1.27779, x=0.616303, y=-0.787509): -1.279941632193\n    test 741 308 308.093262395276 Chi(tan=-1.27566, x=0.616943, y=-0.787008): -1.279941632193\n    test 742 308 308.031126109597 Xi(tan=-1.27851, x=0.616089, y=-0.787676): -1.279941632193\n\n    test 743 315 314.903787849420 Phi(tan=-1.00336, x=0.707107, y=-0.709486): -1.000000000000\n    test 744 315 315.000000000000 Beta(tan=-1, x=0.707107, y=-0.707107): -1.000000000000\n    test 745 315 315.096212150580 Theta(tan=-0.996647, x=0.707107, y=-0.704736): -1.000000000000\n    test 746 315 315.048106063986 Mu(tan=-0.998322, x=0.7077, y=-0.706513), iteration=2: -1.000000000000\n    test 747 315 315.096104515452 Chi(tan=-0.996651, x=1.0, y=-0.996651), iteration=2: -1.000000000000\n    test 748 315 315.032085072505 Xi(tan=-0.998881, x=1.42136, y=-1.41977), iteration=3: -1.000000000000\n\n    test 749 315 314.903787849420 Phi(tan=-1.00336, x=0.705918, y=-0.708293): -1.000000000000\n    test 750 315 315.000000000000 Beta(tan=-1, x=0.707107, y=-0.707107): -1.000000000000\n    test 751 315 315.096212150580 Theta(tan=-0.996647, x=0.708293, y=-0.705918): -1.000000000000\n    test 752 315 315.048106063986 Mu(tan=-0.998322, x=0.7077, y=-0.706513): -1.000000000000\n    test 753 315 315.096104515452 Chi(tan=-0.996651, x=0.708292, y=-0.70592): -1.000000000000\n    test 754 315 315.032085072505 Xi(tan=-0.998881, x=0.707503, y=-0.706711): -1.000000000000\n\n    test 755 322 321.906607816751 Phi(tan=-0.783914, x=0.788011, y=-0.617733): -0.781285626507\n    test 756 322 322.000000000000 Beta(tan=-0.781286, x=0.788011, y=-0.615661): -0.781285626507\n    test 757 322 322.093316334881 Theta(tan=-0.778666, x=0.788011, y=-0.613597): -0.781285626507\n    test 758 322 322.046681850102 Mu(tan=-0.779974, x=0.788512, y=-0.615019), iteration=3: -0.781285626507\n    test 759 322 322.093237214147 Chi(tan=-0.778668, x=1.0, y=-0.778668), iteration=3: -0.781285626507\n    test 760 322 322.031137911470 Xi(tan=-0.780411, x=1.58377, y=-1.23599), iteration=2: -0.781285626507\n\n    test 761 322 321.906607816751 Phi(tan=-0.783914, x=0.787006, y=-0.616945): -0.781285626507\n    test 762 322 322.000000000000 Beta(tan=-0.781286, x=0.788011, y=-0.615661): -0.781285626507\n    test 763 322 322.093316334881 Theta(tan=-0.778666, x=0.789012, y=-0.614377): -0.781285626507\n    test 764 322 322.046681850102 Mu(tan=-0.779974, x=0.788512, y=-0.615019): -0.781285626507\n    test 765 322 322.093237214147 Chi(tan=-0.778668, x=0.789012, y=-0.614378): -0.781285626507\n    test 766 322 322.031137911470 Xi(tan=-0.780411, x=0.788345, y=-0.615233): -0.781285626507\n\n    test 767 329 328.914982672653 Phi(tan=-0.602882, x=0.857167, y=-0.516771): -0.600860619028\n    test 768 329 329.000000000000 Beta(tan=-0.600861, x=0.857167, y=-0.515038): -0.600860619028\n    test 769 329 329.084883386958 Theta(tan=-0.598846, x=0.857167, y=-0.513311): -0.600860619028\n    test 770 329 329.042483509069 Mu(tan=-0.599852, x=0.857549, y=-0.514402), iteration=3: -0.600860619028\n    test 771 329 329.084833030986 Chi(tan=-0.598847, x=1.0, y=-0.598847), iteration=3: -0.600860619028\n    test 772 329 329.028339864157 Xi(tan=-0.600188, x=1.72254, y=-1.03385), iteration=2: -0.600860619028\n\n    test 773 329 328.914982672653 Phi(tan=-0.602882, x=0.856402, y=-0.516309): -0.600860619028\n    test 774 329 329.000000000000 Beta(tan=-0.600861, x=0.857167, y=-0.515038): -0.600860619028\n    test 775 329 329.084883386958 Theta(tan=-0.598846, x=0.857929, y=-0.513768): -0.600860619028\n    test 776 329 329.042483509069 Mu(tan=-0.599852, x=0.857549, y=-0.514402): -0.600860619028\n    test 777 329 329.084833030986 Chi(tan=-0.598847, x=0.857929, y=-0.513768): -0.600860619028\n    test 778 329 329.028339864157 Xi(tan=-0.600188, x=0.857422, y=-0.514614): -0.600860619028\n\n    test 779 336 335.928419979560 Phi(tan=-0.446726, x=0.913545, y=-0.408105): -0.445228685309\n    test 780 336 336.000000000000 Beta(tan=-0.445229, x=0.913545, y=-0.406737): -0.445228685309\n    test 781 336 336.071419343981 Theta(tan=-0.443736, x=0.913545, y=-0.405373): -0.445228685309\n    test 782 336 336.035759822314 Mu(tan=-0.444481, x=0.913799, y=-0.406166), iteration=3: -0.445228685309\n    test 783 336 336.071392925660 Chi(tan=-0.443736, x=1.0, y=-0.443736), iteration=2: -0.445228685309\n    test 784 336 336.023856366648 Xi(tan=-0.44473, x=1.83563, y=-0.816362), iteration=3: -0.445228685309\n\n    test 785 336 335.928419979560 Phi(tan=-0.446726, x=0.913037, y=-0.407878): -0.445228685309\n    test 786 336 336.000000000000 Beta(tan=-0.445229, x=0.913545, y=-0.406737): -0.445228685309\n    test 787 336 336.071419343981 Theta(tan=-0.443736, x=0.914052, y=-0.405598): -0.445228685309\n    test 788 336 336.035759822314 Mu(tan=-0.444481, x=0.913799, y=-0.406166): -0.445228685309\n    test 789 336 336.071392925660 Chi(tan=-0.443736, x=0.914052, y=-0.405598): -0.445228685309\n    test 790 336 336.023856366648 Xi(tan=-0.44473, x=0.913715, y=-0.406356): -0.445228685309\n\n    test 791 343 342.946123810430 Phi(tan=-0.306759, x=0.956305, y=-0.293355): -0.305730681459\n    test 792 343 343.000000000000 Beta(tan=-0.305731, x=0.956305, y=-0.292372): -0.305730681459\n    test 793 343 343.053726392145 Theta(tan=-0.304706, x=0.956305, y=-0.291391): -0.305730681459\n    test 794 343 343.026909940603 Mu(tan=-0.305217, x=0.956442, y=-0.291923), iteration=3: -0.305730681459\n    test 795 343 343.053716124954 Chi(tan=-0.304706, x=1.0, y=-0.304706), iteration=3: -0.305730681459\n    test 796 343 343.017953411145 Xi(tan=-0.305388, x=1.92138, y=-0.586767), iteration=2: -0.305730681459\n\n    test 797 343 342.946123810430 Phi(tan=-0.306759, x=0.956029, y=-0.293271): -0.305730681459\n    test 798 343 343.000000000000 Beta(tan=-0.305731, x=0.956305, y=-0.292372): -0.305730681459\n    test 799 343 343.053726392145 Theta(tan=-0.304706, x=0.956578, y=-0.291475): -0.305730681459\n    test 800 343 343.026909940603 Mu(tan=-0.305217, x=0.956442, y=-0.291923): -0.305730681459\n    test 801 343 343.053716124955 Chi(tan=-0.304706, x=0.956578, y=-0.291475): -0.305730681459\n    test 802 343 343.017953411145 Xi(tan=-0.305388, x=0.956396, y=-0.292072): -0.305730681459\n\n    test 803 350 349.967041472227 Phi(tan=-0.17692, x=0.984808, y=-0.174232): -0.176326980708\n    test 804 350 350.000000000000 Beta(tan=-0.176327, x=0.984808, y=-0.173648): -0.176326980708\n    test 805 350 350.032854677782 Theta(tan=-0.175736, x=0.984808, y=-0.173066): -0.176326980708\n    test 806 350 350.016459740333 Mu(tan=-0.176031, x=0.984858, y=-0.173365), iteration=3: -0.176326980708\n    test 807 350 350.032852463246 Chi(tan=-0.175736, x=1.0, y=-0.175736), iteration=3: -0.176326980708\n    test 808 350 350.010981830106 Xi(tan=-0.176129, x=1.97853, y=-0.348476), iteration=3: -0.176326980708\n\n    test 809 350 349.967041472227 Phi(tan=-0.17692, x=0.984708, y=-0.174215): -0.176326980708\n    test 810 350 350.000000000000 Beta(tan=-0.176327, x=0.984808, y=-0.173648): -0.176326980708\n    test 811 350 350.032854677782 Theta(tan=-0.175736, x=0.984907, y=-0.173083): -0.176326980708\n    test 812 350 350.016459740333 Mu(tan=-0.176031, x=0.984858, y=-0.173365): -0.176326980708\n    test 813 350 350.032852463246 Chi(tan=-0.175736, x=0.984907, y=-0.173083): -0.176326980708\n    test 814 350 350.010981830106 Xi(tan=-0.176129, x=0.984841, y=-0.173459): -0.176326980708\n\n    test 815 357 356.989926259040 Phi(tan=-0.0525841, x=0.99863, y=-0.052512): -0.052407779283\n    test 816 357 357.000000000000 Beta(tan=-0.0524078, x=0.99863, y=-0.052336): -0.052407779283\n    test 817 357 357.010040150331 Theta(tan=-0.0522321, x=0.99863, y=-0.0521605): -0.052407779283\n    test 818 357 357.005030554687 Mu(tan=-0.0523197, x=0.998634, y=-0.0522483), iteration=2: -0.052407779283\n    test 819 357 357.010040088861 Chi(tan=-0.0522321, x=1.0, y=-0.0522321), iteration=2: -0.052407779283\n    test 820 357 357.003356419920 Xi(tan=-0.052349, x=2.00623, y=-0.105024), iteration=3: -0.052407779283\n\n    test 821 357 356.989926259040 Phi(tan=-0.0525841, x=0.99862, y=-0.0525115): -0.052407779283\n    test 822 357 357.000000000000 Beta(tan=-0.0524078, x=0.99863, y=-0.052336): -0.052407779283\n    test 823 357 357.010040150331 Theta(tan=-0.0522321, x=0.998639, y=-0.052161): -0.052407779283\n    test 824 357 357.005030554687 Mu(tan=-0.0523197, x=0.998634, y=-0.0522483): -0.052407779283\n    test 825 357 357.010040088861 Chi(tan=-0.0522321, x=0.998639, y=-0.052161): -0.052407779283\n    test 826 357 357.003356419920 Xi(tan=-0.052349, x=0.998633, y=-0.0522775): -0.052407779283\n\n    test 827  0 0.000000000000 Phi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 828  0 0.000000000000 Beta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 829  0 0.000000000000 Theta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 830  0 0.000000000000 Mu(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 831  0 0.000000000000 Chi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 832  0 0.000000000000 Xi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n\n    test 833  0 0.000000000000 Phi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 834  0 0.000000000000 Beta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 835  0 0.000000000000 Theta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 836  0 0.000000000000 Mu(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 837  0 0.000000000000 Chi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 838  0 0.000000000000 Xi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n\n    test 839  7 7.046702961824 Phi(tan=0.123612, x=1.0, y=0.123612): 0.122784560903\n    test 840  7 7.023313050940 Beta(tan=0.123198, x=1.0, y=0.123198): 0.122784560903\n    test 841  7 6.999999220873 Theta(tan=0.122785, x=1.0, y=0.122785): 0.122784560903\n    test 842  7 7.011632399558 Mu(tan=0.122991, x=0.992521, y=0.122071), iteration=3: 0.122784560903\n    test 843  7 7.000000000000 Chi(tan=0.122785, x=0.992546, y=0.121869): 0.122784560903\n    test 844  7 7.015519711118 Xi(tan=0.12306, x=1.99394, y=0.245373), iteration=3: 0.122784560903\n\n    test 845  7 7.046702961824 Phi(tan=0.123612, x=0.992446, y=0.122678): 0.122784560903\n    test 846  7 7.023313050940 Beta(tan=0.123198, x=0.992496, y=0.122273): 0.122784560903\n    test 847  7 6.999999220873 Theta(tan=0.122785, x=0.992546, y=0.121869): 0.122784560903\n    test 848  7 7.011632399558 Mu(tan=0.122991, x=0.992521, y=0.122071): 0.122784560903\n    test 849  7 7.000000000000 Chi(tan=0.122785, x=0.992546, y=0.121869): 0.122784560903\n    test 850  7 7.015519711118 Xi(tan=0.12306, x=0.992513, y=0.122138): 0.122784560903\n\n    test 851 14 14.090600177106 Phi(tan=0.251008, x=1.0, y=0.251008): 0.249328002843\n    test 852 14 14.045229997878 Beta(tan=0.250167, x=1.0, y=0.250167): 0.249328002843\n    test 853 14 13.999994044068 Theta(tan=0.249328, x=1.0, y=0.249328): 0.249328002843\n    test 854 14 14.022570138869 Mu(tan=0.249746, x=0.9702, y=0.242304), iteration=2: 0.249328002843\n    test 855 14 14.000000000000 Chi(tan=0.249328, x=0.970296, y=0.241922): 0.249328002843\n    test 856 14 14.030111806086 Xi(tan=0.249886, x=1.94905, y=0.487041), iteration=3: 0.249328002843\n\n    test 857 14 14.090600177106 Phi(tan=0.251008, x=0.969912, y=0.243456): 0.249328002843\n    test 858 14 14.045229997878 Beta(tan=0.250167, x=0.970104, y=0.242688): 0.249328002843\n    test 859 14 13.999994044068 Theta(tan=0.249328, x=0.970296, y=0.241922): 0.249328002843\n    test 860 14 14.022570138869 Mu(tan=0.249746, x=0.9702, y=0.242304): 0.249328002843\n    test 861 14 14.000000000000 Chi(tan=0.249328, x=0.970296, y=0.241922): 0.249328002843\n    test 862 14 14.030111806086 Xi(tan=0.249886, x=0.970168, y=0.242432): 0.249328002843\n\n    test 863 21 21.129059974007 Phi(tan=0.386451, x=1.0, y=0.386451): 0.383864035035\n    test 864 21 21.064440302978 Beta(tan=0.385155, x=1.0, y=0.385155): 0.383864035035\n    test 865 21 20.999981382849 Theta(tan=0.383864, x=1.0, y=0.383864): 0.383864035035\n    test 866 21 21.032160674247 Mu(tan=0.384508, x=0.933379, y=0.358892), iteration=3: 0.383864035035\n    test 867 21 21.000000000000 Chi(tan=0.383864, x=0.93358, y=0.358368): 0.383864035035\n    test 868 21 21.042905101186 Xi(tan=0.384723, x=1.875, y=0.721358), iteration=2: 0.383864035035\n\n    test 869 21 21.129059974007 Phi(tan=0.386451, x=0.932771, y=0.36047): 0.383864035035\n    test 870 21 21.064440302978 Beta(tan=0.385155, x=0.933177, y=0.359418): 0.383864035035\n    test 871 21 20.999981382849 Theta(tan=0.383864, x=0.933581, y=0.358368): 0.383864035035\n    test 872 21 21.032160674247 Mu(tan=0.384508, x=0.933379, y=0.358892): 0.383864035035\n    test 873 21 21.000000000000 Chi(tan=0.383864, x=0.93358, y=0.358368): 0.383864035035\n    test 874 21 21.042905101186 Xi(tan=0.384723, x=0.933312, y=0.359067): 0.383864035035\n\n    test 875 28 28.159786713307 Phi(tan=0.535292, x=1.0, y=0.535292): 0.531709431661\n    test 876 28 28.079798849800 Beta(tan=0.533497, x=1.0, y=0.533497): 0.531709431661\n    test 877 28 27.999960443908 Theta(tan=0.531709, x=1.0, y=0.531709): 0.531709431661\n    test 878 28 28.039832991509 Mu(tan=0.532602, x=0.882621, y=0.470085), iteration=3: 0.531709431661\n    test 879 28 28.000000000000 Chi(tan=0.531709, x=0.882948, y=0.469472): 0.531709431661\n    test 880 28 28.053137609764 Xi(tan=0.5329, x=1.77295, y=0.944804), iteration=2: 0.531709431661\n\n    test 881 28 28.159786713307 Phi(tan=0.535292, x=0.881635, y=0.471932): 0.531709431661\n    test 882 28 28.079798849800 Beta(tan=0.533497, x=0.882293, y=0.470701): 0.531709431661\n    test 883 28 27.999960443908 Theta(tan=0.531709, x=0.882948, y=0.469471): 0.531709431661\n    test 884 28 28.039832991509 Mu(tan=0.532602, x=0.882621, y=0.470085): 0.531709431661\n    test 885 28 28.000000000000 Chi(tan=0.531709, x=0.882948, y=0.469472): 0.531709431661\n    test 886 28 28.053137609764 Xi(tan=0.5329, x=0.882512, y=0.47029): 0.531709431661\n\n    test 887 35 35.180959671970 Phi(tan=0.704925, x=1.0, y=0.704925): 0.700207538210\n    test 888 35 35.090394869583 Beta(tan=0.702561, x=1.0, y=0.702561): 0.700207538210\n    test 889 35 34.999933133637 Theta(tan=0.700206, x=1.0, y=0.700206): 0.700207538210\n    test 890 35 35.045131821097 Mu(tan=0.701382, x=0.8187, y=0.574222), iteration=3: 0.700207538210\n    test 891 35 35.000000000000 Chi(tan=0.700208, x=0.819152, y=0.573576): 0.700207538210\n    test 892 35 35.060202265669 Xi(tan=0.701775, x=1.64445, y=1.15403), iteration=2: 0.700207538210\n\n    test 893 35 35.180959671970 Phi(tan=0.704925, x=0.817336, y=0.576161): 0.700207538210\n    test 894 35 35.090394869583 Beta(tan=0.702561, x=0.818246, y=0.574868): 0.700207538210\n    test 895 35 34.999933133637 Theta(tan=0.700206, x=0.819153, y=0.573575): 0.700207538210\n    test 896 35 35.045131821097 Mu(tan=0.701382, x=0.8187, y=0.574222): 0.700207538210\n    test 897 35 35.000000000000 Chi(tan=0.700208, x=0.819152, y=0.573576): 0.700207538210\n    test 898 35 35.060202265669 Xi(tan=0.701775, x=0.818549, y=0.574437): 0.700207538210\n\n    test 899 42 42.191340028820 Phi(tan=0.906469, x=1.0, y=0.906469): 0.900404044298\n    test 900 42 42.095605637640 Beta(tan=0.90343, x=1.0, y=0.90343): 0.900404044298\n    test 901 42 41.999903781382 Theta(tan=0.900401, x=1.0, y=0.900401): 0.900404044298\n    test 902 42 42.047744555205 Mu(tan=0.901914, x=0.742587, y=0.66975), iteration=2: 0.900404044298\n    test 903 42 42.000000000000 Chi(tan=0.900404, x=0.743145, y=0.669131): 0.900404044298\n    test 904 42 42.063682784184 Xi(tan=0.902419, x=1.49147, y=1.34593), iteration=2: 0.900404044298\n\n    test 905 42 42.191340028820 Phi(tan=0.906469, x=0.740906, y=0.671609): 0.900404044298\n    test 906 42 42.095605637640 Beta(tan=0.90343, x=0.742027, y=0.67037): 0.900404044298\n    test 907 42 41.999903781382 Theta(tan=0.900401, x=0.743146, y=0.669129): 0.900404044298\n    test 908 42 42.047744555205 Mu(tan=0.901914, x=0.742587, y=0.66975): 0.900404044298\n    test 909 42 42.000000000000 Chi(tan=0.900404, x=0.743145, y=0.669131): 0.900404044298\n    test 910 42 42.063682784184 Xi(tan=0.902419, x=0.742401, y=0.669956): 0.900404044298\n\n    test 911 49 49.190339913877 Phi(tan=1.15812, x=1.0, y=1.15812): 1.150368407221\n    test 912 49 49.095131857689 Beta(tan=1.15423, x=1.0, y=1.15423): 1.150368407221\n    test 913 49 48.999878238776 Theta(tan=1.15036, x=1.0, y=1.15036): 1.150368407221\n    test 914 49 49.047519300953 Mu(tan=1.1523, x=0.655433, y=0.755253), iteration=2: 1.150368407221\n    test 915 49 49.000000000000 Chi(tan=1.15037, x=0.656059, y=0.75471): 1.150368407221\n    test 916 49 49.063377582472 Xi(tan=1.15294, x=1.31633, y=1.51765), iteration=3: 1.150368407221\n\n    test 917 49 49.190339913877 Phi(tan=1.15812, x=0.653548, y=0.756885): 1.150368407221\n    test 918 49 49.095131857689 Beta(tan=1.15423, x=0.654805, y=0.755798): 1.150368407221\n    test 919 49 48.999878238776 Theta(tan=1.15036, x=0.656061, y=0.754708): 1.150368407221\n    test 920 49 49.047519300953 Mu(tan=1.1523, x=0.655433, y=0.755253): 1.150368407221\n    test 921 49 49.000000000000 Chi(tan=1.15037, x=0.656059, y=0.75471): 1.150368407221\n    test 922 49 49.063377582472 Xi(tan=1.15294, x=0.655224, y=0.755435): 1.150368407221\n\n    test 923 56 56.178050530882 Phi(tan=1.49254, x=1.0, y=1.49254): 1.482560968513\n    test 924 56 56.089013022552 Beta(tan=1.48754, x=1.0, y=1.48754): 1.482560968513\n    test 925 56 55.999862564323 Theta(tan=1.48255, x=1.0, y=1.48255): 1.482560968513\n    test 926 56 56.044473121630 Mu(tan=1.48505, x=0.558549, y=0.829471), iteration=2: 1.482560968513\n    test 927 56 56.000000000000 Chi(tan=1.48256, x=0.559193, y=0.829038): 1.482560968513\n    test 928 56 56.059310533694 Xi(tan=1.48588, x=1.12168, y=1.66668), iteration=2: 1.482560968513\n\n    test 929 56 56.178050530882 Phi(tan=1.49254, x=0.556614, y=0.830771): 1.482560968513\n    test 930 56 56.089013022552 Beta(tan=1.48754, x=0.557904, y=0.829905): 1.482560968513\n    test 931 56 55.999862564323 Theta(tan=1.48255, x=0.559195, y=0.829036): 1.482560968513\n    test 932 56 56.044473121630 Mu(tan=1.48505, x=0.558549, y=0.829471): 1.482560968513\n    test 933 56 56.000000000000 Chi(tan=1.48256, x=0.559193, y=0.829038): 1.482560968513\n    test 934 56 56.059310533694 Xi(tan=1.48588, x=0.558334, y=0.829616): 1.482560968513\n\n    test 935 63 63.155229303561 Phi(tan=1.97583, x=1.0, y=1.97583): 1.962610505505\n    test 936 63 63.077622413475 Beta(tan=1.9692, x=1.0, y=1.9692): 1.962610505505\n    test 937 63 62.999861601059 Theta(tan=1.9626, x=1.0, y=1.9626): 1.962610505505\n    test 938 63 63.038790161591 Mu(tan=1.9659, x=0.453387, y=0.891314), iteration=2: 1.962610505505\n    test 939 63 63.000000000000 Chi(tan=1.96261, x=0.45399, y=0.891007): 1.962610505505\n    test 940 63 63.051728205304 Xi(tan=1.967, x=0.910441, y=1.79084), iteration=3: 1.962610505505\n\n    test 941 63 63.155229303561 Phi(tan=1.97583, x=0.451575, y=0.892233): 1.962610505505\n    test 942 63 63.077622413475 Beta(tan=1.9692, x=0.452783, y=0.891621): 1.962610505505\n    test 943 63 62.999861601059 Theta(tan=1.9626, x=0.453993, y=0.891005): 1.962610505505\n    test 944 63 63.038790161591 Mu(tan=1.9659, x=0.453387, y=0.891314): 1.962610505505\n    test 945 63 63.000000000000 Chi(tan=1.96261, x=0.45399, y=0.891007): 1.962610505505\n    test 946 63 63.051728205304 Xi(tan=1.967, x=0.453186, y=0.891416): 1.962610505505\n\n    test 947 70 70.123248546098 Phi(tan=2.76598, x=1.0, y=2.76598): 2.747477419455\n    test 948 70 70.061642655565 Beta(tan=2.7567, x=1.0, y=2.7567): 2.747477419455\n    test 949 70 69.999877780085 Theta(tan=2.74746, x=1.0, y=2.74746): 2.747477419455\n    test 950 70 70.030809967607 Mu(tan=2.75208, x=0.341515, y=0.939876), iteration=3: 2.747477419455\n    test 951 70 70.000000000000 Chi(tan=2.74748, x=0.34202, y=0.939693): 2.747477419455\n    test 952 70 70.041084059681 Xi(tan=2.75362, x=0.685758, y=1.88832), iteration=3: 2.747477419455\n\n    test 953 70 70.123248546098 Phi(tan=2.76598, x=0.339998, y=0.940426): 2.747477419455\n    test 954 70 70.061642655565 Beta(tan=2.7567, x=0.341009, y=0.94006): 2.747477419455\n    test 955 70 69.999877780085 Theta(tan=2.74746, x=0.342022, y=0.939692): 2.747477419455\n    test 956 70 70.030809967607 Mu(tan=2.75208, x=0.341515, y=0.939876): 2.747477419455\n    test 957 70 70.000000000000 Chi(tan=2.74748, x=0.34202, y=0.939693): 2.747477419455\n    test 958 70 70.041084059681 Xi(tan=2.75362, x=0.341346, y=0.939938): 2.747477419455\n\n    test 959 77 77.084010155505 Phi(tan=4.36064, x=1.0, y=4.36064): 4.331475874284\n    test 960 77 77.042023802893 Beta(tan=4.34602, x=1.0, y=4.34602): 4.331475874284\n    test 961 77 76.999910430182 Theta(tan=4.33144, x=1.0, y=4.33144): 4.331475874284\n    test 962 77 77.021006871193 Mu(tan=4.33873, x=0.224594, y=0.974452), iteration=2: 4.331475874284\n    test 963 77 77.000000000000 Chi(tan=4.33148, x=0.224951, y=0.97437): 4.331475874284\n    test 964 77 77.028010821264 Xi(tan=4.34116, x=0.450965, y=1.95771), iteration=2: 4.331475874284\n\n    test 965 77 77.084010155505 Phi(tan=4.36064, x=0.223522, y=0.974699): 4.331475874284\n    test 966 77 77.042023802893 Beta(tan=4.34602, x=0.224236, y=0.974535): 4.331475874284\n    test 967 77 76.999910430182 Theta(tan=4.33144, x=0.224953, y=0.97437): 4.331475874284\n    test 968 77 77.021006871193 Mu(tan=4.33873, x=0.224594, y=0.974452): 4.331475874284\n    test 969 77 77.000000000000 Chi(tan=4.33148, x=0.224951, y=0.97437): 4.331475874284\n    test 970 77 77.028010821264 Xi(tan=4.34116, x=0.224475, y=0.97448): 4.331475874284\n\n    test 971 84 84.039832232299 Phi(tan=9.57842, x=1.0, y=9.57842): 9.514364454223\n    test 972 84 84.019926748698 Beta(tan=9.5463, x=1.0, y=9.5463): 9.514364454223\n    test 973 84 83.999955757312 Theta(tan=9.51429, x=1.0, y=9.51429): 9.514364454223\n    test 974 84 84.009961757905 Mu(tan=9.5303, x=0.104356, y=0.99454), iteration=3: 9.514364454223\n    test 975 84 84.000000000000 Chi(tan=9.51436, x=0.104528, y=0.994522): 9.514364454223\n    test 976 84 84.013282808640 Xi(tan=9.53563, x=0.209532, y=1.99802), iteration=2: 9.514364454223\n\n    test 977 84 84.039832232299 Phi(tan=9.57842, x=0.103837, y=0.994594): 9.514364454223\n    test 978 84 84.019926748698 Beta(tan=9.5463, x=0.104183, y=0.994558): 9.514364454223\n    test 979 84 83.999955757312 Theta(tan=9.51429, x=0.104529, y=0.994522): 9.514364454223\n    test 980 84 84.009961757905 Mu(tan=9.5303, x=0.104356, y=0.99454): 9.514364454223\n    test 981 84 84.000000000000 Chi(tan=9.51436, x=0.104528, y=0.994522): 9.514364454223\n    test 982 84 84.013282808640 Xi(tan=9.53563, x=0.104298, y=0.994546): 9.514364454223\n\n    test 983 91 90.993314421151 Phi(tan=-57.6756, x=-1, y=57.6756): -57.289961630759\n    test 984 91 90.996655347181 Beta(tan=-57.4823, x=-1, y=57.4823): -57.289961630759\n    test 985 91 91.000007505573 Theta(tan=-57.2895, x=-1, y=57.2895): -57.289961630759\n    test 986 91 90.998327910374 Mu(tan=-57.3859, x=-0.0174232, y=0.999848), iteration=3: -57.289961630759\n    test 987 91 91.000000000000 Chi(tan=-57.29, x=-0.0174524, y=0.999848): -57.289961630759\n    test 988 91 90.997770483630 Xi(tan=-57.418, x=-0.0349834, y=2.00868), iteration=2: -57.289961630759\n\n    test 989 91 90.993314421151 Phi(tan=-57.6756, x=-0.0173357, y=0.99985): -57.289961630760  FAILED, KNOWN (8.1857e-15), expected -57.289961630759\n    test 990 91 90.996655347181 Beta(tan=-57.4823, x=-0.017394, y=0.999849): -57.289961630760  FAILED, KNOWN (3.72077e-15), expected -57.289961630759\n    test 991 91 91.000007505573 Theta(tan=-57.2895, x=-0.0174525, y=0.999848): -57.289961630759\n    test 992 91 90.998327910374 Mu(tan=-57.3859, x=-0.0174232, y=0.999848): -57.289961630759\n    test 993 91 91.000000000000 Chi(tan=-57.29, x=-0.0174524, y=0.999848): -57.289961630759\n    test 994 91 90.997770483630 Xi(tan=-57.418, x=-0.0174135, y=0.999848): -57.289961630760  FAILED, KNOWN (3.8448e-15), expected -57.289961630759\n\n    test 995 98 97.947189249597 Phi(tan=-7.16327, x=-1, y=7.16327): -7.115369722384\n    test 996 98 97.973581022657 Beta(tan=-7.13925, x=-1, y=7.13925): -7.115369722384\n    test 997 98 98.000058157653 Theta(tan=-7.11532, x=-1, y=7.11532): -7.115369722384\n    test 998 98 97.986792871261 Mu(tan=-7.12729, x=-0.138945, y=0.9903), iteration=3: -7.115369722384\n    test 999 98 98.000000000000 Chi(tan=-7.11537, x=-0.139173, y=0.990268): -7.115369722384\n    test 1000 98 97.982389787937 Xi(tan=-7.13127, x=-0.278984, y=1.98951), iteration=3: -7.115369722384\n\n    test 1001 98 97.947189249597 Phi(tan=-7.16327, x=-0.13826, y=0.990396): -7.115369722384\n    test 1002 98 97.973581022657 Beta(tan=-7.13925, x=-0.138716, y=0.990332): -7.115369722384\n    test 1003 98 98.000058157653 Theta(tan=-7.11532, x=-0.139174, y=0.990268): -7.115369722384\n    test 1004 98 97.986792871261 Mu(tan=-7.12729, x=-0.138945, y=0.9903): -7.115369722384\n    test 1005 98 98.000000000000 Chi(tan=-7.11537, x=-0.139173, y=0.990268): -7.115369722384\n    test 1006 98 97.982389787937 Xi(tan=-7.13127, x=-0.138869, y=0.990311): -7.115369722384\n\n    test 1007 105 104.904166968877 Phi(tan=-3.75718, x=-1, y=3.75718): -3.732050807569\n    test 1008 105 104.952063867788 Beta(tan=-3.74458, x=-1, y=3.74458): -3.732050807569\n    test 1009 105 105.000100412186 Theta(tan=-3.73202, x=-1, y=3.73202): -3.732050807569\n    test 1010 105 104.976038435868 Mu(tan=-3.7383, x=-0.258415, y=0.966034), iteration=2: -3.732050807569\n    test 1011 105 105.000000000000 Chi(tan=-3.73205, x=-0.258819, y=0.965926): -3.732050807569\n    test 1012 105 104.968049034476 Xi(tan=-3.74039, x=-0.51888, y=1.94082), iteration=2: -3.732050807569\n\n    test 1013 105 104.904166968877 Phi(tan=-3.75718, x=-0.257203, y=0.966357): -3.732050807569\n    test 1014 105 104.952063867788 Beta(tan=-3.74458, x=-0.258011, y=0.966142): -3.732050807569\n    test 1015 105 105.000100412186 Theta(tan=-3.73202, x=-0.258821, y=0.965925): -3.732050807569\n    test 1016 105 104.976038435868 Mu(tan=-3.7383, x=-0.258415, y=0.966034): -3.732050807569\n    test 1017 105 105.000000000000 Chi(tan=-3.73205, x=-0.258819, y=0.965926): -3.732050807569\n    test 1018 105 104.968049034476 Xi(tan=-3.74039, x=-0.25828, y=0.96607): -3.732050807569\n\n    test 1019 112 111.866781479115 Phi(tan=-2.49175, x=-1, y=2.49175): -2.475086853416\n    test 1020 112 111.933374328805 Beta(tan=-2.4834, x=-1, y=2.4834): -2.475086853416\n    test 1021 112 112.000128613678 Theta(tan=-2.47507, x=-1, y=2.47507): -2.475086853416\n    test 1022 112 111.966700957925 Mu(tan=-2.47923, x=-0.374068, y=0.927401), iteration=2: -2.475086853416\n    test 1023 112 112.000000000000 Chi(tan=-2.47509, x=-0.374607, y=0.927184): -2.475086853416\n    test 1024 112 111.955596207977 Xi(tan=-2.48062, x=-0.751133, y=1.86328), iteration=3: -2.475086853416\n\n    test 1025 112 111.866781479115 Phi(tan=-2.49175, x=-0.37245, y=0.928052): -2.475086853416\n    test 1026 112 111.933374328805 Beta(tan=-2.4834, x=-0.373528, y=0.927619): -2.475086853416\n    test 1027 112 112.000128613678 Theta(tan=-2.47507, x=-0.374609, y=0.927183): -2.475086853416\n    test 1028 112 111.966700957925 Mu(tan=-2.47923, x=-0.374068, y=0.927401): -2.475086853416\n    test 1029 112 112.000000000000 Chi(tan=-2.47509, x=-0.374607, y=0.927184): -2.475086853416\n    test 1030 112 111.955596207977 Xi(tan=-2.48062, x=-0.373888, y=0.927474): -2.475086853416\n\n    test 1031 119 118.837244909169 Phi(tan=-1.8162, x=-1, y=1.8162): -1.804047755271\n    test 1032 119 118.918619560007 Beta(tan=-1.81011, x=-1, y=1.81011): -1.804047755271\n    test 1033 119 119.000139821268 Theta(tan=-1.80404, x=-1, y=1.80404): -1.804047755271\n    test 1034 119 118.959334139853 Mu(tan=-1.80707, x=-0.484189, y=0.874964), iteration=3: -1.804047755271\n    test 1035 119 119.000000000000 Chi(tan=-1.80405, x=-0.48481, y=0.87462): -1.804047755271\n    test 1036 119 118.945769514985 Xi(tan=-1.80808, x=-0.972309, y=1.75801), iteration=3: -1.804047755271\n\n    test 1037 119 118.837244909169 Phi(tan=-1.8162, x=-0.482323, y=0.875993): -1.804047755271\n    test 1038 119 118.918619560007 Beta(tan=-1.81011, x=-0.483567, y=0.875307): -1.804047755271\n    test 1039 119 119.000139821268 Theta(tan=-1.80404, x=-0.484812, y=0.874619): -1.804047755271\n    test 1040 119 118.959334139853 Mu(tan=-1.80707, x=-0.484189, y=0.874964): -1.804047755271\n    test 1041 119 119.000000000000 Chi(tan=-1.80405, x=-0.48481, y=0.87462): -1.804047755271\n    test 1042 119 118.945769514985 Xi(tan=-1.80808, x=-0.483982, y=0.875078): -1.804047755271\n\n    test 1043 126 125.817318309875 Phi(tan=-1.38565, x=-1, y=1.38565): -1.376381920471\n    test 1044 126 125.908678399154 Beta(tan=-1.38101, x=-1, y=1.38101): -1.376381920471\n    test 1045 126 126.000134283091 Theta(tan=-1.37638, x=-1, y=1.37638): -1.376381920471\n    test 1046 126 125.954376379912 Mu(tan=-1.37869, x=-0.587141, y=0.809485), iteration=3: -1.376381920471\n    test 1047 126 126.000000000000 Chi(tan=-1.37638, x=-0.587785, y=0.809017): -1.376381920471\n    test 1048 126 125.939153905889 Xi(tan=-1.37946, x=-1.17912, y=1.62655), iteration=2: -1.376381920471\n\n    test 1049 126 125.817318309875 Phi(tan=-1.38565, x=-0.585203, y=0.810887): -1.376381920471\n    test 1050 126 125.908678399154 Beta(tan=-1.38101, x=-0.586495, y=0.809953): -1.376381920471\n    test 1051 126 126.000134283091 Theta(tan=-1.37638, x=-0.587787, y=0.809016): -1.376381920471\n    test 1052 126 125.954376379912 Mu(tan=-1.37869, x=-0.587141, y=0.809485): -1.376381920471\n    test 1053 126 126.000000000000 Chi(tan=-1.37638, x=-0.587785, y=0.809017): -1.376381920471\n    test 1054 126 125.939153905889 Xi(tan=-1.37946, x=-0.586926, y=0.809641): -1.376381920471\n\n    test 1055 133 132.808205632210 Phi(tan=-1.07959, x=-1, y=1.07959): -1.072368710025\n    test 1056 133 132.904148646694 Beta(tan=-1.07597, x=-1, y=1.07597): -1.072368710025\n    test 1057 133 133.000115216221 Theta(tan=-1.07236, x=-1, y=1.07236): -1.072368710025\n    test 1058 133 132.952124558388 Mu(tan=-1.07417, x=-0.681387, y=0.731923), iteration=2: -1.072368710025\n    test 1059 133 133.000000000000 Chi(tan=-1.07237, x=-0.681998, y=0.731354): -1.072368710025\n    test 1060 133 132.936146061572 Xi(tan=-1.07477, x=-1.36848, y=1.4708), iteration=3: -1.072368710025\n\n    test 1061 133 132.808205632210 Phi(tan=-1.07959, x=-0.679546, y=0.733633): -1.072368710025\n    test 1062 133 132.904148646694 Beta(tan=-1.07597, x=-0.680774, y=0.732494): -1.072368710025\n    test 1063 133 133.000115216221 Theta(tan=-1.07236, x=-0.682, y=0.731352): -1.072368710025\n    test 1064 133 132.952124558388 Mu(tan=-1.07417, x=-0.681387, y=0.731923): -1.072368710025\n    test 1065 133 133.000000000000 Chi(tan=-1.07237, x=-0.681998, y=0.731354): -1.072368710025\n    test 1066 133 132.936146061572 Xi(tan=-1.07477, x=-0.681183, y=0.732113): -1.072368710025\n\n    test 1067 140 139.810477575926 Phi(tan=-0.844752, x=-1, y=0.844752): -0.839099631177\n    test 1068 140 139.905309888599 Beta(tan=-0.84192, x=-1, y=0.84192): -0.839099631177\n    test 1069 140 140.000087948921 Theta(tan=-0.839097, x=-1, y=0.839097): -0.839099631177\n    test 1070 140 139.952715856955 Mu(tan=-0.840507, x=-0.765514, y=0.64342), iteration=2: -0.839099631177\n    test 1071 140 140.000000000000 Chi(tan=-0.8391, x=-0.766044, y=0.642788): -0.839099631177\n    test 1072 140 139.936929981390 Xi(tan=-0.840977, x=-1.53755, y=1.29304), iteration=2: -0.839099631177\n\n    test 1073 140 139.810477575926 Phi(tan=-0.844752, x=-0.763914, y=0.645318): -0.839099631177\n    test 1074 140 139.905309888599 Beta(tan=-0.84192, x=-0.764981, y=0.644053): -0.839099631177\n    test 1075 140 140.000087948921 Theta(tan=-0.839097, x=-0.766045, y=0.642786): -0.839099631177\n    test 1076 140 139.952715856955 Mu(tan=-0.840507, x=-0.765514, y=0.64342): -0.839099631177\n    test 1077 140 140.000000000000 Chi(tan=-0.8391, x=-0.766044, y=0.642788): -0.839099631177\n    test 1078 140 139.936929981390 Xi(tan=-0.840977, x=-0.765336, y=0.64363): -0.839099631177\n\n    test 1079 147 146.824030870318 Phi(tan=-0.653783, x=-1, y=0.653783): -0.649407593198\n    test 1080 147 146.912104447745 Beta(tan=-0.651591, x=-1, y=0.651591): -0.649407593198\n    test 1081 147 147.000058627387 Theta(tan=-0.649406, x=-1, y=0.649406): -0.649407593198\n    test 1082 147 146.956118815411 Mu(tan=-0.650497, x=-0.838253, y=0.545281), iteration=2: -0.649407593198\n    test 1083 147 147.000000000000 Chi(tan=-0.649408, x=-0.838671, y=0.544639): -0.649407593198\n    test 1084 147 146.941464815429 Xi(tan=-0.650861, x=-1.68375, y=1.09589), iteration=2: -0.649407593198\n\n    test 1085 147 146.824030870318 Phi(tan=-0.653783, x=-0.836994, y=0.547212): -0.649407593198\n    test 1086 147 146.912104447745 Beta(tan=-0.651591, x=-0.837834, y=0.545925): -0.649407593198\n    test 1087 147 147.000058627387 Theta(tan=-0.649406, x=-0.838671, y=0.544638): -0.649407593198\n    test 1088 147 146.956118815411 Mu(tan=-0.650497, x=-0.838253, y=0.545281): -0.649407593198\n    test 1089 147 147.000000000000 Chi(tan=-0.649408, x=-0.838671, y=0.544639): -0.649407593198\n    test 1090 147 146.941464815429 Xi(tan=-0.650861, x=-0.838114, y=0.545496): -0.649407593198\n\n    test 1091 154 153.848086974871 Phi(tan=-0.491019, x=-1, y=0.491019): -0.487732588566\n    test 1092 154 153.924138158817 Beta(tan=-0.489373, x=-1, y=0.489373): -0.487732588566\n    test 1093 154 154.000032789582 Theta(tan=-0.487732, x=-1, y=0.487732): -0.487732588566\n    test 1094 154 153.962134341087 Mu(tan=-0.488551, x=-0.898504, y=0.438965), iteration=2: -0.487732588566\n    test 1095 154 154.000000000000 Chi(tan=-0.487733, x=-0.898794, y=0.438371): -0.487732588566\n    test 1096 154 153.949485950322 Xi(tan=-0.488824, x=-1.80488, y=0.88227), iteration=2: -0.487732588566\n\n    test 1097 154 153.848086974871 Phi(tan=-0.491019, x=-0.897629, y=0.440753): -0.487732588566\n    test 1098 154 153.924138158817 Beta(tan=-0.489373, x=-0.898213, y=0.439561): -0.487732588566\n    test 1099 154 154.000032789582 Theta(tan=-0.487732, x=-0.898794, y=0.438371): -0.487732588566\n    test 1100 154 153.962134341087 Mu(tan=-0.488551, x=-0.898504, y=0.438965): -0.487732588566\n    test 1101 154 154.000000000000 Chi(tan=-0.487733, x=-0.898794, y=0.438371): -0.487732588566\n    test 1102 154 153.949485950322 Xi(tan=-0.488824, x=-0.898407, y=0.439163): -0.487732588566\n\n    test 1103 161 160.881232023490 Phi(tan=-0.346648, x=-1, y=0.346648): -0.344327613290\n    test 1104 161 160.940701543262 Beta(tan=-0.345486, x=-1, y=0.345486): -0.344327613290\n    test 1105 161 161.000014139979 Theta(tan=-0.344327, x=-1, y=0.344327): -0.344327613290\n    test 1106 161 160.970406812614 Mu(tan=-0.344905, x=-0.94535, y=0.326056), iteration=3: -0.344327613290\n    test 1107 161 161.000000000000 Chi(tan=-0.344328, x=-0.945519, y=0.325568): -0.344327613290\n    test 1108 161 160.960519598812 Xi(tan=-0.345099, x=-1.89908, y=0.655369), iteration=3: -0.344327613290\n\n    test 1109 161 160.881232023490 Phi(tan=-0.346648, x=-0.944842, y=0.327527): -0.344327613290\n    test 1110 161 160.940701543262 Beta(tan=-0.345486, x=-0.945181, y=0.326547): -0.344327613290\n    test 1111 161 161.000014139979 Theta(tan=-0.344327, x=-0.945519, y=0.325568): -0.344327613290\n    test 1112 161 160.970406812614 Mu(tan=-0.344905, x=-0.94535, y=0.326056): -0.344327613290\n    test 1113 161 161.000000000000 Chi(tan=-0.344328, x=-0.945519, y=0.325568): -0.344327613290\n    test 1114 161 160.960519598812 Xi(tan=-0.345099, x=-0.945294, y=0.32622): -0.344327613290\n\n    test 1115 168 167.921497152166 Phi(tan=-0.213989, x=-1, y=0.213989): -0.212556561670\n    test 1116 168 167.960810661508 Beta(tan=-0.213272, x=-1, y=0.213272): -0.212556561670\n    test 1117 168 168.000003811668 Theta(tan=-0.212556, x=-1, y=0.212556): -0.212556561670\n    test 1118 168 167.980444790381 Mu(tan=-0.212913, x=-0.978077, y=0.208246), iteration=2: -0.212556561670\n    test 1119 168 168.000000000000 Chi(tan=-0.212557, x=-0.978148, y=0.207912): -0.212556561670\n    test 1120 168 167.973910295272 Xi(tan=-0.213033, x=-1.96489, y=0.418585), iteration=3: -0.212556561670\n\n    test 1121 168 167.921497152166 Phi(tan=-0.213989, x=-0.977862, y=0.209252): -0.212556561670\n    test 1122 168 167.960810661508 Beta(tan=-0.213272, x=-0.978005, y=0.208581): -0.212556561670\n    test 1123 168 168.000003811668 Theta(tan=-0.212556, x=-0.978148, y=0.207912): -0.212556561670\n    test 1124 168 167.980444790381 Mu(tan=-0.212913, x=-0.978077, y=0.208246): -0.212556561670\n    test 1125 168 168.000000000000 Chi(tan=-0.212557, x=-0.978148, y=0.207912): -0.212556561670\n    test 1126 168 167.973910295272 Xi(tan=-0.213033, x=-0.978053, y=0.208357): -0.212556561670\n\n    test 1127 175 174.966475344628 Phi(tan=-0.0880783, x=-1, y=0.0880783): -0.087488663526\n    test 1128 175 174.983265532727 Beta(tan=-0.087783, x=-1, y=0.087783): -0.087488663526\n    test 1129 175 175.000000286043 Theta(tan=-0.0874887, x=-1, y=0.0874887): -0.087488663526\n    test 1130 175 174.991650204039 Mu(tan=-0.0876355, x=-0.996182, y=0.0873009), iteration=3: -0.087488663526\n    test 1131 175 175.000000000000 Chi(tan=-0.0874887, x=-0.996195, y=0.0871557): -0.087488663526\n    test 1132 175 174.988859821813 Xi(tan=-0.0876846, x=-2.0013, y=0.175483), iteration=3: -0.087488663526\n\n    test 1133 175 174.966475344628 Phi(tan=-0.0880783, x=-0.996144, y=0.0877386): -0.087488663526\n    test 1134 175 174.983265532727 Beta(tan=-0.087783, x=-0.996169, y=0.0874467): -0.087488663526\n    test 1135 175 175.000000286043 Theta(tan=-0.0874887, x=-0.996195, y=0.0871557): -0.087488663526\n    test 1136 175 174.991650204039 Mu(tan=-0.0876355, x=-0.996182, y=0.0873009): -0.087488663526\n    test 1137 175 175.000000000000 Chi(tan=-0.0874887, x=-0.996195, y=0.0871557): -0.087488663526\n    test 1138 175 174.988859821813 Xi(tan=-0.0876846, x=-0.996178, y=0.0873494): -0.087488663526\n\n    test 1139 182 182.013467917640 Phi(tan=0.0351561, x=-1, y=-0.0351561): 0.034920769492\n    test 1140 182 182.006722669522 Beta(tan=0.0350382, x=-1, y=-0.0350382): 0.034920769492\n    test 1141 182 181.999999981575 Theta(tan=0.0349208, x=-1, y=-0.0349208): 0.034920769492\n    test 1142 182 182.003354287313 Mu(tan=0.0349794, x=-0.999389, y=-0.034958), iteration=3: 0.034920769492\n    test 1143 182 182.000000000000 Chi(tan=0.0349208, x=-0.999391, y=-0.0348995): 0.034920769492\n    test 1144 182 182.004475259781 Xi(tan=0.034999, x=-2.00775, y=-0.0702692), iteration=2: 0.034920769492\n\n    test 1145 182 182.013467917640 Phi(tan=0.0351561, x=-0.999383, y=-0.0351344): 0.034920769492\n    test 1146 182 182.006722669522 Beta(tan=0.0350382, x=-0.999387, y=-0.0350168): 0.034920769492\n    test 1147 182 181.999999981575 Theta(tan=0.0349208, x=-0.999391, y=-0.0348995): 0.034920769492\n    test 1148 182 182.003354287313 Mu(tan=0.0349794, x=-0.999389, y=-0.034958): 0.034920769492\n    test 1149 182 182.000000000000 Chi(tan=0.0349208, x=-0.999391, y=-0.0348995): 0.034920769492\n    test 1150 182 182.004475259781 Xi(tan=0.034999, x=-0.999388, y=-0.0349776): 0.034920769492\n\n    test 1151 189 189.059651130185 Phi(tan=0.159452, x=-1, y=-0.159452): 0.158384440325\n    test 1152 189 189.029777127642 Beta(tan=0.158917, x=-1, y=-0.158917): 0.158384440325\n    test 1153 189 188.999998360327 Theta(tan=0.158384, x=-1, y=-0.158384): 0.158384440325\n    test 1154 189 189.014858030843 Mu(tan=0.15865, x=-0.987648, y=-0.156691), iteration=3: 0.158384440325\n    test 1155 189 189.000000000000 Chi(tan=0.158384, x=-0.987688, y=-0.156434): 0.158384440325\n    test 1156 189 189.019823164695 Xi(tan=0.158739, x=-1.98414, y=-0.31496), iteration=3: 0.158384440325\n\n    test 1157 189 189.059651130185 Phi(tan=0.159452, x=-0.987525, y=-0.157463): 0.158384440325\n    test 1158 189 189.029777127642 Beta(tan=0.158917, x=-0.987607, y=-0.156948): 0.158384440325\n    test 1159 189 188.999998360327 Theta(tan=0.158384, x=-0.987688, y=-0.156434): 0.158384440325\n    test 1160 189 189.014858030843 Mu(tan=0.15865, x=-0.987648, y=-0.156691): 0.158384440325\n    test 1161 189 189.000000000000 Chi(tan=0.158384, x=-0.987688, y=-0.156434): 0.158384440325\n    test 1162 189 189.019823164695 Xi(tan=0.158739, x=-0.987634, y=-0.156776): 0.158384440325\n\n    test 1163 196 196.102251517048 Phi(tan=0.288678, x=-1, y=-0.288678): 0.286745385759\n    test 1164 196 196.051048664417 Beta(tan=0.28771, x=-1, y=-0.28771): 0.286745385759\n    test 1165 196 195.999991274014 Theta(tan=0.286745, x=-1, y=-0.286745): 0.286745385759\n    test 1166 196 196.025474578648 Mu(tan=0.287227, x=-0.961139, y=-0.276065), iteration=3: 0.286745385759\n    test 1167 196 196.000000000000 Chi(tan=0.286745, x=-0.961262, y=-0.275637): 0.286745385759\n    test 1168 196 196.033986378622 Xi(tan=0.287387, x=-1.93083, y=-0.554895), iteration=3: 0.286745385759\n\n    test 1169 196 196.102251517048 Phi(tan=0.288678, x=-0.960768, y=-0.277352): 0.286745385759\n    test 1170 196 196.051048664417 Beta(tan=0.28771, x=-0.961016, y=-0.276494): 0.286745385759\n    test 1171 196 195.999991274014 Theta(tan=0.286745, x=-0.961262, y=-0.275637): 0.286745385759\n    test 1172 196 196.025474578648 Mu(tan=0.287227, x=-0.961139, y=-0.276065): 0.286745385759\n    test 1173 196 196.000000000000 Chi(tan=0.286745, x=-0.961262, y=-0.275637): 0.286745385759\n    test 1174 196 196.033986378622 Xi(tan=0.287387, x=-0.961098, y=-0.276208): 0.286745385759\n\n    test 1175 203 203.138717708106 Phi(tan=0.427335, x=-1, y=-0.427335): 0.424474816210\n    test 1176 203 203.069266243319 Beta(tan=0.425902, x=-1, y=-0.425902): 0.424474816210\n    test 1177 203 202.999976212498 Theta(tan=0.424474, x=-1, y=-0.424474): 0.424474816210\n    test 1178 203 203.034570842744 Mu(tan=0.425187, x=-0.920269, y=-0.391286), iteration=3: 0.424474816210\n    test 1179 203 203.000000000000 Chi(tan=0.424475, x=-0.920505, y=-0.390731): 0.424474816210\n    test 1180 203 203.046119781391 Xi(tan=0.425425, x=-1.84864, y=-0.786459), iteration=3: 0.424474816210\n\n    test 1181 203 203.138717708106 Phi(tan=0.427335, x=-0.919556, y=-0.392959): 0.424474816210\n    test 1182 203 203.069266243319 Beta(tan=0.425902, x=-0.920032, y=-0.391844): 0.424474816210\n    test 1183 203 202.999976212498 Theta(tan=0.424474, x=-0.920505, y=-0.390731): 0.424474816210\n    test 1184 203 203.034570842744 Mu(tan=0.425187, x=-0.920269, y=-0.391286): 0.424474816210\n    test 1185 203 203.000000000000 Chi(tan=0.424475, x=-0.920505, y=-0.390731): 0.424474816210\n    test 1186 203 203.046119781391 Xi(tan=0.425425, x=-0.92019, y=-0.391472): 0.424474816210\n\n    test 1187 210 210.166876834292 Phi(tan=0.58124, x=-1, y=-0.58124): 0.577350269190\n    test 1188 210 210.083345266050 Beta(tan=0.579291, x=-1, y=-0.579291): 0.577350269190\n    test 1189 210 209.999953141624 Theta(tan=0.577349, x=-1, y=-0.577349): 0.577350269190\n    test 1190 210 210.041605671429 Mu(tan=0.578319, x=-0.865662, y=-0.500629), iteration=2: 0.577350269190\n    test 1191 210 210.000000000000 Chi(tan=0.57735, x=-0.866025, y=-0.5): 0.577350269190\n    test 1192 210 210.055501367888 Xi(tan=0.578643, x=-1.73885, y=-1.00617), iteration=2: 0.577350269190\n\n    test 1193 210 210.166876834292 Phi(tan=0.58124, x=-0.864565, y=-0.50252): 0.577350269190\n    test 1194 210 210.083345266050 Beta(tan=0.579291, x=-0.865297, y=-0.501259): 0.577350269190\n    test 1195 210 209.999953141624 Theta(tan=0.577349, x=-0.866026, y=-0.499999): 0.577350269190\n    test 1196 210 210.041605671429 Mu(tan=0.578319, x=-0.865662, y=-0.500629): 0.577350269190\n    test 1197 210 210.000000000000 Chi(tan=0.57735, x=-0.866025, y=-0.5): 0.577350269190\n    test 1198 210 210.055501367888 Xi(tan=0.578643, x=-0.865541, y=-0.500839): 0.577350269190\n\n    test 1199 217 217.185065085003 Phi(tan=0.758631, x=-1, y=-0.758631): 0.753554050103\n    test 1200 217 217.092452537420 Beta(tan=0.756087, x=-1, y=-0.756087): 0.753554050103\n    test 1201 217 216.999924718107 Theta(tan=0.753552, x=-1, y=-0.753552): 0.753554050103\n    test 1202 217 217.046162172363 Mu(tan=0.754818, x=-0.79815, y=-0.602458), iteration=2: 0.753554050103\n    test 1203 217 217.000000000000 Chi(tan=0.753554, x=-0.798636, y=-0.601815): 0.753554050103\n    test 1204 217 217.061575411936 Xi(tan=0.75524, x=-1.60314, y=-1.21076), iteration=3: 0.753554050103\n\n    test 1205 217 217.185065085003 Phi(tan=0.758631, x=-0.796687, y=-0.604391): 0.753554050103\n    test 1206 217 217.092452537420 Beta(tan=0.756087, x=-0.797663, y=-0.603103): 0.753554050103\n    test 1207 217 216.999924718107 Theta(tan=0.753552, x=-0.798636, y=-0.601814): 0.753554050103\n    test 1208 217 217.046162172363 Mu(tan=0.754818, x=-0.79815, y=-0.602458): 0.753554050103\n    test 1209 217 217.000000000000 Chi(tan=0.753554, x=-0.798636, y=-0.601815): 0.753554050103\n    test 1210 217 217.061575411936 Xi(tan=0.75524, x=-0.797988, y=-0.602673): 0.753554050103\n\n    test 1211 224 224.192224339246 Phi(tan=0.972193, x=-1, y=-0.972193): 0.965688774807\n    test 1212 224 224.096054985813 Beta(tan=0.968934, x=-1, y=-0.968934): 0.965688774807\n    test 1213 224 223.999895821294 Theta(tan=0.965685, x=-1, y=-0.965685): 0.965688774807\n    test 1214 224 224.047972230974 Mu(tan=0.967308, x=-0.718758, y=-0.69526), iteration=2: 0.965688774807\n    test 1215 224 224.000000000000 Chi(tan=0.965689, x=-0.71934, y=-0.694658): 0.965688774807\n    test 1216 224 224.063985091722 Xi(tan=0.967849, x=-1.44358, y=-1.39717), iteration=3: 0.965688774807\n\n    test 1217 224 224.192224339246 Phi(tan=0.972193, x=-0.717005, y=-0.697068): 0.965688774807\n    test 1218 224 224.096054985813 Beta(tan=0.968934, x=-0.718174, y=-0.695863): 0.965688774807\n    test 1219 224 223.999895821294 Theta(tan=0.965685, x=-0.719341, y=-0.694657): 0.965688774807\n    test 1220 224 224.047972230974 Mu(tan=0.967308, x=-0.718758, y=-0.69526): 0.965688774807\n    test 1221 224 224.000000000000 Chi(tan=0.965689, x=-0.71934, y=-0.694658): 0.965688774807\n    test 1222 224 224.063985091722 Xi(tan=0.967849, x=-0.718564, y=-0.695461): 0.965688774807\n\n    test 1223 231 231.187959693265 Phi(tan=1.24321, x=-1, y=-1.24321): 1.234897156535\n    test 1224 231 231.093949439927 Beta(tan=1.23905, x=-1, y=-1.23905): 1.234897156535\n    test 1225 231 230.999872507121 Theta(tan=1.23489, x=-1, y=-1.23489): 1.234897156535\n    test 1226 231 231.046931828803 Mu(tan=1.23697, x=-0.628684, y=-0.777661), iteration=3: 1.234897156535\n    test 1227 231 231.000000000000 Chi(tan=1.2349, x=-0.62932, y=-0.777146): 1.234897156535\n    test 1228 231 231.062592734966 Xi(tan=1.23766, x=-1.26259, y=-1.56265), iteration=2: 1.234897156535\n\n    test 1229 231 231.187959693265 Phi(tan=1.24321, x=-0.626768, y=-0.779206): 1.234897156535\n    test 1230 231 231.093949439927 Beta(tan=1.23905, x=-0.628045, y=-0.778177): 1.234897156535\n    test 1231 231 230.999872507121 Theta(tan=1.23489, x=-0.629322, y=-0.777145): 1.234897156535\n    test 1232 231 231.046931828803 Mu(tan=1.23697, x=-0.628684, y=-0.777661): 1.234897156535\n    test 1233 231 231.000000000000 Chi(tan=1.2349, x=-0.62932, y=-0.777146): 1.234897156535\n    test 1234 231 231.062592734966 Xi(tan=1.23766, x=-0.628471, y=-0.777833): 1.234897156535\n\n    test 1235 238 238.172555759873 Phi(tan=1.61111, x=-1, y=-1.61111): 1.600334529041\n    test 1236 238 238.086272148408 Beta(tan=1.60571, x=-1, y=-1.60571): 1.600334529041\n    test 1237 238 237.999860628148 Theta(tan=1.60033, x=-1, y=-1.60033): 1.600334529041\n    test 1238 238 238.043106397552 Mu(tan=1.60302, x=-0.529281, y=-0.848447), iteration=2: 1.600334529041\n    test 1239 238 238.000000000000 Chi(tan=1.60033, x=-0.529919, y=-0.848048): 1.600334529041\n    test 1240 238 238.057486709388 Xi(tan=1.60391, x=-1.06289, y=-1.70478), iteration=3: 1.600334529041\n\n    test 1241 238 238.172555759873 Phi(tan=1.61111, x=-0.527363, y=-0.84964): 1.600334529041\n    test 1242 238 238.086272148408 Beta(tan=1.60571, x=-0.528642, y=-0.848845): 1.600334529041\n    test 1243 238 237.999860628148 Theta(tan=1.60033, x=-0.529921, y=-0.848047): 1.600334529041\n    test 1244 238 238.043106397552 Mu(tan=1.60302, x=-0.529281, y=-0.848447): 1.600334529041\n    test 1245 238 238.000000000000 Chi(tan=1.60033, x=-0.529919, y=-0.848048): 1.600334529041\n    test 1246 238 238.057486709388 Xi(tan=1.60391, x=-0.529068, y=-0.848579): 1.600334529041\n\n    test 1247 245 245.146952468013 Phi(tan=2.15895, x=-1, y=-2.15895): 2.144506920510\n    test 1248 245 245.073488079777 Beta(tan=2.15171, x=-1, y=-2.15171): 2.144506920510\n    test 1249 245 244.999864442704 Theta(tan=2.14449, x=-1, y=-2.14449): 2.144506920510\n    test 1250 245 245.036726085420 Mu(tan=2.1481, x=-0.422037, y=-0.906578), iteration=3: 2.144506920510\n    test 1251 245 245.000000000000 Chi(tan=2.14451, x=-0.422618, y=-0.906308): 2.144506920510\n    test 1252 245 245.048974853160 Xi(tan=2.1493, x=-0.847475, y=-1.82148), iteration=3: 2.144506920510\n\n    test 1253 245 245.146952468013 Phi(tan=2.15895, x=-0.420292, y=-0.907389): 2.144506920510\n    test 1254 245 245.073488079777 Beta(tan=2.15171, x=-0.421455, y=-0.906849): 2.144506920510\n    test 1255 245 244.999864442704 Theta(tan=2.14449, x=-0.42262, y=-0.906307): 2.144506920510\n    test 1256 245 245.036726085420 Mu(tan=2.1481, x=-0.422037, y=-0.906578): 2.144506920510\n    test 1257 245 245.000000000000 Chi(tan=2.14451, x=-0.422618, y=-0.906308): 2.144506920510\n    test 1258 245 245.048974853160 Xi(tan=2.1493, x=-0.421843, y=-0.906669): 2.144506920510\n\n    test 1259 252 252.112683493851 Phi(tan=3.0984, x=-1, y=-3.0984): 3.077683537175\n    test 1260 252 252.056361244518 Beta(tan=3.08802, x=-1, y=-3.08802): 3.077683537175\n    test 1261 252 251.999885538511 Theta(tan=3.07766, x=-1, y=-3.07766): 3.077683537175\n    test 1262 252 252.028171414224 Mu(tan=3.08284, x=-0.308549, y=-0.951208), iteration=3: 3.077683537175\n    test 1263 252 252.000000000000 Chi(tan=3.07768, x=-0.309017, y=-0.951057): 3.077683537175\n    test 1264 252 252.037565143061 Xi(tan=3.08456, x=-0.619556, y=-1.91106), iteration=3: 3.077683537175\n\n    test 1265 252 252.112683493851 Phi(tan=3.0984, x=-0.307146, y=-0.951662): 3.077683537175\n    test 1266 252 252.056361244518 Beta(tan=3.08802, x=-0.308081, y=-0.95136): 3.077683537175\n    test 1267 252 251.999885538511 Theta(tan=3.07766, x=-0.309019, y=-0.951056): 3.077683537175\n    test 1268 252 252.028171414224 Mu(tan=3.08284, x=-0.308549, y=-0.951208): 3.077683537175\n    test 1269 252 252.000000000000 Chi(tan=3.07768, x=-0.309017, y=-0.951057): 3.077683537175\n    test 1270 252 252.037565143061 Xi(tan=3.08456, x=-0.308393, y=-0.951259): 3.077683537175\n\n    test 1271 259 259.071782282365 Phi(tan=5.17919, x=-1, y=-5.17919): 5.144554015970\n    test 1272 259 259.035908272116 Beta(tan=5.16182, x=-1, y=-5.16182): 5.144554015970\n    test 1273 259 258.999922323247 Theta(tan=5.14452, x=-1, y=-5.14452): 5.144554015970\n    test 1274 259 259.017950333560 Mu(tan=5.15317, x=-0.190501, y=-0.981687), iteration=3: 5.144554015970\n    test 1275 259 259.000000000000 Chi(tan=5.14455, x=-0.190809, y=-0.981627): 5.144554015970\n    test 1276 259 259.023934988471 Xi(tan=5.15605, x=-0.382508, y=-1.97223), iteration=2: 5.144554015970\n\n    test 1277 259 259.071782282365 Phi(tan=5.17919, x=-0.189579, y=-0.981865): 5.144554015970\n    test 1278 259 259.035908272116 Beta(tan=5.16182, x=-0.190194, y=-0.981747): 5.144554015970\n    test 1279 259 258.999922323247 Theta(tan=5.14452, x=-0.19081, y=-0.981627): 5.144554015970\n    test 1280 259 259.017950333560 Mu(tan=5.15317, x=-0.190501, y=-0.981687): 5.144554015970\n    test 1281 259 259.000000000000 Chi(tan=5.14455, x=-0.190809, y=-0.981627): 5.144554015970\n    test 1282 259 259.023934988471 Xi(tan=5.15605, x=-0.190399, y=-0.981707): 5.144554015970\n\n    test 1283 266 266.026661867451 Phi(tan=14.3969, x=-1, y=-14.3969): 14.300666256712\n    test 1284 266 266.013338229951 Beta(tan=14.3487, x=-1, y=-14.3487): 14.300666256712\n    test 1285 266 265.999970204566 Theta(tan=14.3006, x=-1, y=-14.3006): 14.300666256712\n    test 1286 266 266.006668111562 Mu(tan=14.3246, x=-0.0696404, y=-0.997572), iteration=2: 14.300666256712\n    test 1287 266 266.000000000000 Chi(tan=14.3007, x=-0.0697565, y=-0.997564): 14.300666256712\n    test 1288 266 266.008891093578 Xi(tan=14.3326, x=-0.139828, y=-2.00411), iteration=3: 14.300666256712\n\n    test 1289 266 266.026661867451 Phi(tan=14.3969, x=-0.0692923, y=-0.997596): 14.300666256712\n    test 1290 266 266.013338229951 Beta(tan=14.3487, x=-0.0695242, y=-0.99758): 14.300666256712\n    test 1291 266 265.999970204566 Theta(tan=14.3006, x=-0.069757, y=-0.997564): 14.300666256712\n    test 1292 266 266.006668111562 Mu(tan=14.3246, x=-0.0696404, y=-0.997572): 14.300666256712\n    test 1293 266 266.000000000000 Chi(tan=14.3007, x=-0.0697565, y=-0.997564): 14.300666256712\n    test 1294 266 266.008891093578 Xi(tan=14.3326, x=-0.0696017, y=-0.997575): 14.300666256712\n\n    test 1295 273 272.979975455720 Phi(tan=-19.2096, x=1.0, y=-19.2096): -19.081136687728\n    test 1296 273 272.989982200734 Beta(tan=-19.1452, x=1.0, y=-19.1452): -19.081136687728\n    test 1297 273 273.000022425845 Theta(tan=-19.081, x=1.0, y=-19.081): -19.081136687728\n    test 1298 273 272.994991833280 Mu(tan=-19.1131, x=0.0522487, y=-0.998634), iteration=3: -19.081136687728\n    test 1299 273 273.000000000000 Chi(tan=-19.0811, x=0.052336, y=-0.99863): -19.081136687728\n    test 1300 273 272.993322244137 Xi(tan=-19.1238, x=0.104908, y=-2.00624), iteration=2: -19.081136687728\n\n    test 1301 273 272.979975455720 Phi(tan=-19.2096, x=0.0519869, y=-0.998648): -19.081136687728\n    test 1302 273 272.989982200734 Beta(tan=-19.1452, x=0.0521614, y=-0.998639): -19.081136687728\n    test 1303 273 273.000022425845 Theta(tan=-19.081, x=0.0523363, y=-0.99863): -19.081136687728\n    test 1304 273 272.994991833280 Mu(tan=-19.1131, x=0.0522487, y=-0.998634): -19.081136687728\n    test 1305 273 273.000000000000 Chi(tan=-19.0811, x=0.052336, y=-0.99863): -19.081136687728\n    test 1306 273 272.993322244137 Xi(tan=-19.1238, x=0.0522196, y=-0.998636): -19.081136687728\n\n    test 1307 280 279.934465137513 Phi(tan=-5.70946, x=1.0, y=-5.70946): -5.671281819618\n    test 1308 280 279.967216473785 Beta(tan=-5.69032, x=1.0, y=-5.69032): -5.671281819618\n    test 1309 280 280.000071376516 Theta(tan=-5.67124, x=1.0, y=-5.67124): -5.671281819618\n    test 1310 280 279.983611509112 Mu(tan=-5.68078, x=0.173366, y=-0.984857), iteration=3: -5.671281819618\n    test 1311 280 280.000000000000 Chi(tan=-5.67128, x=0.173648, y=-0.984808): -5.671281819618\n    test 1312 280 279.978147657318 Xi(tan=-5.68396, x=0.348101, y=-1.97859), iteration=3: -5.671281819618\n\n    test 1313 280 279.934465137513 Phi(tan=-5.70946, x=0.172522, y=-0.985006): -5.671281819618\n    test 1314 280 279.967216473785 Beta(tan=-5.69032, x=0.173085, y=-0.984907): -5.671281819618\n    test 1315 280 280.000071376516 Theta(tan=-5.67124, x=0.173649, y=-0.984808): -5.671281819618\n    test 1316 280 279.983611509112 Mu(tan=-5.68078, x=0.173366, y=-0.984857): -5.671281819618\n    test 1317 280 280.000000000000 Chi(tan=-5.67128, x=0.173648, y=-0.984808): -5.671281819618\n    test 1318 280 279.978147657318 Xi(tan=-5.68396, x=0.173273, y=-0.984874): -5.671281819618\n\n    test 1319 287 286.892806262875 Phi(tan=-3.29287, x=1.0, y=-3.29287): -3.270852618484\n    test 1320 287 286.946383391473 Beta(tan=-3.28183, x=1.0, y=-3.28183): -3.270852618484\n    test 1321 287 287.000110089905 Theta(tan=-3.27083, x=1.0, y=-3.27083): -3.270852618484\n    test 1322 287 286.973199933024 Mu(tan=-3.27633, x=0.291924, y=-0.956441), iteration=2: -3.270852618484\n    test 1323 287 287.000000000000 Chi(tan=-3.27085, x=0.292372, y=-0.956305): -3.270852618484\n    test 1324 287 286.964263697434 Xi(tan=-3.27816, x=0.586171, y=-1.92156), iteration=2: -3.270852618484\n\n    test 1325 287 286.892806262875 Phi(tan=-3.29287, x=0.290582, y=-0.95685): -3.270852618484\n    test 1326 287 286.946383391473 Beta(tan=-3.28183, x=0.291477, y=-0.956578): -3.270852618484\n    test 1327 287 287.000110089905 Theta(tan=-3.27083, x=0.292374, y=-0.956304): -3.270852618484\n    test 1328 287 286.973199933024 Mu(tan=-3.27633, x=0.291924, y=-0.956441): -3.270852618484\n    test 1329 287 287.000000000000 Chi(tan=-3.27085, x=0.292372, y=-0.956305): -3.270852618484\n    test 1330 287 286.964263697434 Xi(tan=-3.27816, x=0.291775, y=-0.956487): -3.270852618484\n\n    test 1331 294 293.857455069612 Phi(tan=-2.26116, x=1.0, y=-2.26116): -2.246036773904\n    test 1332 294 293.928713955385 Beta(tan=-2.25358, x=1.0, y=-2.25358): -2.246036773904\n    test 1333 294 294.000133599673 Theta(tan=-2.24602, x=1.0, y=-2.24602): -2.246036773904\n    test 1334 294 293.964373479294 Mu(tan=-2.2498, x=0.406169, y=-0.913798), iteration=2: -2.246036773904\n    test 1335 294 294.000000000000 Chi(tan=-2.24604, x=0.406737, y=-0.913545): -2.246036773904\n    test 1336 294 293.952491818284 Xi(tan=-2.25106, x=0.815604, y=-1.83597), iteration=3: -2.246036773904\n\n    test 1337 294 293.857455069612 Phi(tan=-2.26116, x=0.404463, y=-0.914555): -2.246036773904\n    test 1338 294 293.928713955385 Beta(tan=-2.25358, x=0.4056, y=-0.914051): -2.246036773904\n    test 1339 294 294.000133599673 Theta(tan=-2.24602, x=0.406739, y=-0.913545): -2.246036773904\n    test 1340 294 293.964373479294 Mu(tan=-2.2498, x=0.406169, y=-0.913798): -2.246036773904\n    test 1341 294 294.000000000000 Chi(tan=-2.24604, x=0.406737, y=-0.913545): -2.246036773904\n    test 1342 294 293.952491818284 Xi(tan=-2.25106, x=0.405979, y=-0.913882): -2.246036773904\n\n    test 1343 301 300.830507114227 Phi(tan=-1.67549, x=1.0, y=-1.67549): -1.664279482351\n    test 1344 301 300.915256249596 Beta(tan=-1.66987, x=1.0, y=-1.66987): -1.664279482351\n    test 1345 301 301.000139857505 Theta(tan=-1.66427, x=1.0, y=-1.66427): -1.664279482351\n    test 1346 301 300.957655989828 Mu(tan=-1.66707, x=0.514404, y=-0.857548), iteration=2: -1.664279482351\n    test 1347 301 301.000000000000 Chi(tan=-1.66428, x=0.515038, y=-0.857167): -1.664279482351\n    test 1348 301 300.943530549480 Xi(tan=-1.668, x=1.033, y=-1.72305), iteration=3: -1.664279482351\n\n    test 1349 301 300.830507114227 Phi(tan=-1.67549, x=0.5125, y=-0.858687): -1.664279482351\n    test 1350 301 300.915256249596 Beta(tan=-1.66987, x=0.51377, y=-0.857928): -1.664279482351\n    test 1351 301 301.000139857505 Theta(tan=-1.66427, x=0.51504, y=-0.857166): -1.664279482351\n    test 1352 301 300.957655989828 Mu(tan=-1.66707, x=0.514404, y=-0.857548): -1.664279482351\n    test 1353 301 301.000000000000 Chi(tan=-1.66428, x=0.515038, y=-0.857167): -1.664279482351\n    test 1354 301 300.943530549480 Xi(tan=-1.668, x=0.514193, y=-0.857674): -1.664279482351\n\n    test 1355 308 307.813573905031 Phi(tan=-1.28856, x=1.0, y=-1.28856): -1.279941632193\n    test 1356 308 307.906813571405 Beta(tan=-1.28424, x=1.0, y=-1.28424): -1.279941632193\n    test 1357 308 308.000130012564 Theta(tan=-1.27994, x=1.0, y=-1.27994): -1.279941632193\n    test 1358 308 307.953447779688 Mu(tan=-1.28209, x=0.615021, y=-0.788511), iteration=3: -1.279941632193\n    test 1359 308 308.000000000000 Chi(tan=-1.27994, x=0.615661, y=-0.788011): -1.279941632193\n    test 1360 308 307.937914195662 Xi(tan=-1.2828, x=1.23514, y=-1.58444), iteration=3: -1.279941632193\n\n    test 1361 308 307.813573905031 Phi(tan=-1.28856, x=0.613094, y=-0.79001): -1.279941632193\n    test 1362 308 307.906813571405 Beta(tan=-1.28424, x=0.614379, y=-0.789011): -1.279941632193\n    test 1363 308 308.000130012564 Theta(tan=-1.27994, x=0.615663, y=-0.788009): -1.279941632193\n    test 1364 308 307.953447779688 Mu(tan=-1.28209, x=0.615021, y=-0.788511): -1.279941632193\n    test 1365 308 308.000000000000 Chi(tan=-1.27994, x=0.615661, y=-0.788011): -1.279941632193\n    test 1366 308 307.937914195662 Xi(tan=-1.2828, x=0.614807, y=-0.788677): -1.279941632193\n\n    test 1367 315 314.807684778155 Phi(tan=-1.00674, x=1.0, y=-1.00674): -1.000000000000\n    test 1368 315 314.903895845383 Beta(tan=-1.00336, x=1.0, y=-1.00336): -1.000000000000\n    test 1369 315 315.000107996571 Theta(tan=-0.999996, x=1.0, y=-0.999996): -1.000000000000\n    test 1370 315 314.952001570934 Mu(tan=-1.00168, x=0.706514, y=-0.707699), iteration=2: -1.000000000000\n    test 1371 315 315.000000000000 Chi(tan=-1, x=0.707107, y=-0.707107): -1.000000000000\n    test 1372 315 314.935980653019 Xi(tan=-1.00224, x=1.41898, y=-1.42215), iteration=3: -1.000000000000\n\n    test 1373 315 314.807684778155 Phi(tan=-1.00674, x=0.704729, y=-0.709476): -1.000000000000\n    test 1374 315 314.903895845383 Beta(tan=-1.00336, x=0.70592, y=-0.708292): -1.000000000000\n    test 1375 315 315.000107996571 Theta(tan=-0.999996, x=0.707108, y=-0.707105): -1.000000000000\n    test 1376 315 314.952001570934 Mu(tan=-1.00168, x=0.706514, y=-0.707699): -1.000000000000\n    test 1377 315 315.000000000000 Chi(tan=-1, x=0.707107, y=-0.707107): -1.000000000000\n    test 1378 315 314.935980653019 Xi(tan=-1.00224, x=0.706316, y=-0.707896): -1.000000000000\n\n    test 1379 322 321.813220359944 Phi(tan=-0.786549, x=1.0, y=-0.786549): -0.781285626507\n    test 1380 322 321.906687396462 Beta(tan=-0.783912, x=1.0, y=-0.783912): -0.781285626507\n    test 1381 322 322.000079515502 Theta(tan=-0.781283, x=1.0, y=-0.781283): -0.781285626507\n    test 1382 322 321.953406847958 Mu(tan=-0.782596, x=0.78751, y=-0.616302), iteration=2: -0.781285626507\n    test 1383 322 322.000000000000 Chi(tan=-0.781286, x=0.788011, y=-0.615661): -0.781285626507\n    test 1384 322 321.937850353113 Xi(tan=-0.783034, x=1.58176, y=-1.23857), iteration=3: -0.781285626507\n\n    test 1385 322 321.813220359944 Phi(tan=-0.786549, x=0.786, y=-0.618227): -0.781285626507\n    test 1386 322 321.906687396462 Beta(tan=-0.783912, x=0.787007, y=-0.616944): -0.781285626507\n    test 1387 322 322.000079515502 Theta(tan=-0.781283, x=0.788012, y=-0.61566): -0.781285626507\n    test 1388 322 321.953406847958 Mu(tan=-0.782596, x=0.78751, y=-0.616302): -0.781285626507\n    test 1389 322 322.000000000000 Chi(tan=-0.781286, x=0.788011, y=-0.615661): -0.781285626507\n    test 1390 322 321.937850353113 Xi(tan=-0.783034, x=0.787342, y=-0.616516): -0.781285626507\n\n    test 1391 329 328.829882787345 Phi(tan=-0.604909, x=1.0, y=-0.604909): -0.600860619028\n    test 1392 329 328.915033437072 Beta(tan=-0.602881, x=1.0, y=-0.602881): -0.600860619028\n    test 1393 329 329.000050684665 Theta(tan=-0.600859, x=1.0, y=-0.600859): -0.600860619028\n    test 1394 329 328.957583708533 Mu(tan=-0.601869, x=0.856786, y=-0.515672), iteration=3: -0.600860619028\n    test 1395 329 329.000000000000 Chi(tan=-0.600861, x=0.857167, y=-0.515038): -0.600860619028\n    test 1396 329 328.943417809954 Xi(tan=-0.602205, x=1.72101, y=-1.0364), iteration=3: -0.600860619028\n\n    test 1397 329 328.829882787345 Phi(tan=-0.604909, x=0.855634, y=-0.517581): -0.600860619028\n    test 1398 329 328.915033437072 Beta(tan=-0.602881, x=0.856403, y=-0.516309): -0.600860619028\n    test 1399 329 329.000050684665 Theta(tan=-0.600859, x=0.857168, y=-0.515037): -0.600860619028\n    test 1400 329 328.957583708533 Mu(tan=-0.601869, x=0.856786, y=-0.515672): -0.600860619028\n    test 1401 329 329.000000000000 Chi(tan=-0.600861, x=0.857167, y=-0.515038): -0.600860619028\n    test 1402 329 328.943417809954 Xi(tan=-0.602205, x=0.856658, y=-0.515884): -0.600860619028\n\n    test 1403 336 335.856706115158 Phi(tan=-0.448229, x=1.0, y=-0.448229): -0.445228685309\n    test 1404 336 335.928446665868 Beta(tan=-0.446726, x=1.0, y=-0.446726): -0.445228685309\n    test 1405 336 336.000026626488 Theta(tan=-0.445228, x=1.0, y=-0.445228): -0.445228685309\n    test 1406 336 335.964286769667 Mu(tan=-0.445976, x=0.913292, y=-0.407306), iteration=2: -0.445228685309\n    test 1407 336 336.000000000000 Chi(tan=-0.445229, x=0.913545, y=-0.406737): -0.445228685309\n    test 1408 336 335.952356574339 Xi(tan=-0.446225, x=1.83461, y=-0.818652), iteration=2: -0.445228685309\n\n    test 1409 336 335.856706115158 Phi(tan=-0.448229, x=0.912525, y=-0.40902): -0.445228685309\n    test 1410 336 335.928446665868 Beta(tan=-0.446726, x=0.913037, y=-0.407877): -0.445228685309\n    test 1411 336 336.000026626488 Theta(tan=-0.445228, x=0.913546, y=-0.406736): -0.445228685309\n    test 1412 336 335.964286769667 Mu(tan=-0.445976, x=0.913292, y=-0.407306): -0.445228685309\n    test 1413 336 336.000000000000 Chi(tan=-0.445229, x=0.913545, y=-0.406737): -0.445228685309\n    test 1414 336 335.952356574339 Xi(tan=-0.446225, x=0.913207, y=-0.407496): -0.445228685309\n\n    test 1415 343 342.892108013861 Phi(tan=-0.307791, x=1.0, y=-0.307791): -0.305730681459\n    test 1416 343 342.946134198526 Beta(tan=-0.306759, x=1.0, y=-0.306759): -0.305730681459\n    test 1417 343 343.000010359231 Theta(tan=-0.30573, x=1.0, y=-0.30573): -0.305730681459\n    test 1418 343 342.973119094169 Mu(tan=-0.306244, x=0.956167, y=-0.29282), iteration=3: -0.305730681459\n    test 1419 343 343.000000000000 Chi(tan=-0.305731, x=0.956305, y=-0.292372): -0.305730681459\n    test 1420 343 342.964137610259 Xi(tan=-0.306415, x=1.92083, y=-0.588571), iteration=2: -0.305730681459\n\n    test 1421 343 342.892108013861 Phi(tan=-0.307791, x=0.955753, y=-0.294172): -0.305730681459\n    test 1422 343 342.946134198526 Beta(tan=-0.306759, x=0.956029, y=-0.293271): -0.305730681459\n    test 1423 343 343.000010359231 Theta(tan=-0.30573, x=0.956305, y=-0.292372): -0.305730681459\n    test 1424 343 342.973119094169 Mu(tan=-0.306244, x=0.956167, y=-0.29282): -0.305730681459\n    test 1425 343 343.000000000000 Chi(tan=-0.305731, x=0.956305, y=-0.292372): -0.305730681459\n    test 1426 343 342.964137610259 Xi(tan=-0.306415, x=0.956122, y=-0.29297): -0.305730681459\n\n    test 1427 350 349.933981060171 Phi(tan=-0.177515, x=1.0, y=-0.177515): -0.176326980708\n    test 1428 350 349.967043715347 Beta(tan=-0.17692, x=1.0, y=-0.17692): -0.176326980708\n    test 1429 350 350.000002236053 Theta(tan=-0.176327, x=1.0, y=-0.176327): -0.176326980708\n    test 1430 350 349.983555465918 Mu(tan=-0.176623, x=0.984758, y=-0.173931), iteration=3: -0.176326980708\n    test 1431 350 350.000000000000 Chi(tan=-0.176327, x=0.984808, y=-0.173648): -0.176326980708\n    test 1432 350 349.978060244759 Xi(tan=-0.176722, x=1.97833, y=-0.349613), iteration=3: -0.176326980708\n\n    test 1433 350 349.933981060171 Phi(tan=-0.177515, x=0.984607, y=-0.174783): -0.176326980708\n    test 1434 350 349.967043715347 Beta(tan=-0.17692, x=0.984708, y=-0.174215): -0.176326980708\n    test 1435 350 350.000002236053 Theta(tan=-0.176327, x=0.984808, y=-0.173648): -0.176326980708\n    test 1436 350 349.983555465918 Mu(tan=-0.176623, x=0.984758, y=-0.173931): -0.176326980708\n    test 1437 350 350.000000000000 Chi(tan=-0.176327, x=0.984808, y=-0.173648): -0.176326980708\n    test 1438 350 349.978060244759 Xi(tan=-0.176722, x=0.984741, y=-0.174025): -0.176326980708\n\n    test 1439 357 356.979818878824 Phi(tan=-0.052761, x=1.0, y=-0.052761): -0.052407779283\n    test 1440 357 356.989926321337 Beta(tan=-0.0525841, x=1.0, y=-0.0525841): -0.052407779283\n    test 1441 357 357.000000062090 Theta(tan=-0.0524078, x=1.0, y=-0.0524078): -0.052407779283\n    test 1442 357 356.994973705906 Mu(tan=-0.0524957, x=0.998625, y=-0.0524236), iteration=3: -0.052407779283\n    test 1443 357 357.000000000000 Chi(tan=-0.0524078, x=0.99863, y=-0.052336): -0.052407779283\n    test 1444 357 356.993293970223 Xi(tan=-0.0525251, x=2.00621, y=-0.105377), iteration=2: -0.052407779283\n\n    test 1445 357 356.979818878824 Phi(tan=-0.052761, x=0.998611, y=-0.0526877): -0.052407779283\n    test 1446 357 356.989926321337 Beta(tan=-0.0525841, x=0.99862, y=-0.0525115): -0.052407779283\n    test 1447 357 357.000000062090 Theta(tan=-0.0524078, x=0.99863, y=-0.052336): -0.052407779283\n    test 1448 357 356.994973705906 Mu(tan=-0.0524957, x=0.998625, y=-0.0524236): -0.052407779283\n    test 1449 357 357.000000000000 Chi(tan=-0.0524078, x=0.99863, y=-0.052336): -0.052407779283\n    test 1450 357 356.993293970223 Xi(tan=-0.0525251, x=0.998623, y=-0.0524528): -0.052407779283\n\n    test 1451  0 0.000000000000 Phi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 1452  0 0.000000000000 Beta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 1453  0 0.000000000000 Theta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 1454  0 0.000000000000 Mu(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 1455  0 0.000000000000 Chi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 1456  0 0.000000000000 Xi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n\n    test 1457  0 0.000000000000 Phi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 1458  0 0.000000000000 Beta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 1459  0 0.000000000000 Theta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 1460  0 0.000000000000 Mu(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 1461  0 0.000000000000 Chi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 1462  0 0.000000000000 Xi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n\n    test 1463  7 7.035013553420 Phi(tan=0.123405, x=1.0, y=0.123405): 0.122784560903\n    test 1464  7 7.011661662966 Beta(tan=0.122991, x=1.0, y=0.122991): 0.122784560903\n    test 1465  7 6.988385737369 Theta(tan=0.122579, x=1.0, y=0.122579): 0.122784560903\n    test 1466  7 7.000000000000 Mu(tan=0.122785, x=0.992546, y=0.121869): 0.122784560903\n    test 1467  7 6.988386512663 Chi(tan=0.122579, x=1.0, y=0.122579), iteration=3: 0.122784560903\n    test 1468  7 7.003880991951 Xi(tan=0.122853, x=1.99399, y=0.244968), iteration=3: 0.122784560903\n\n    test 1469  7 7.035013553420 Phi(tan=0.123405, x=0.992471, y=0.122476): 0.122784560903\n    test 1470  7 7.011661662966 Beta(tan=0.122991, x=0.992521, y=0.122071): 0.122784560903\n    test 1471  7 6.988385737369 Theta(tan=0.122579, x=0.992571, y=0.121668): 0.122784560903\n    test 1472  7 7.000000000000 Mu(tan=0.122785, x=0.992546, y=0.121869): 0.122784560903\n    test 1473  7 6.988386512663 Chi(tan=0.122579, x=0.992571, y=0.121668): 0.122784560903\n    test 1474  7 7.003880991951 Xi(tan=0.122853, x=0.992538, y=0.121937): 0.122784560903\n\n    test 1475 14 14.067929480939 Phi(tan=0.250588, x=1.0, y=0.250588): 0.249328002843\n    test 1476 14 14.022626357697 Beta(tan=0.249747, x=1.0, y=0.249747): 0.249328002843\n    test 1477 14 13.977457317809 Theta(tan=0.24891, x=1.0, y=0.24891): 0.249328002843\n    test 1478 14 14.000000000000 Mu(tan=0.249328, x=0.970296, y=0.241922): 0.249328002843\n    test 1479 14 13.977463246186 Chi(tan=0.24891, x=1.0, y=0.24891), iteration=3: 0.249328002843\n    test 1480 14 14.007530515250 Xi(tan=0.249468, x=1.94924, y=0.486272), iteration=2: 0.249328002843\n\n    test 1481 14 14.067929480939 Phi(tan=0.250588, x=0.970008, y=0.243072): 0.249328002843\n    test 1482 14 14.022626357697 Beta(tan=0.249747, x=0.9702, y=0.242305): 0.249328002843\n    test 1483 14 13.977457317809 Theta(tan=0.24891, x=0.970391, y=0.24154): 0.249328002843\n    test 1484 14 14.000000000000 Mu(tan=0.249328, x=0.970296, y=0.241922): 0.249328002843\n    test 1485 14 13.977463246186 Chi(tan=0.24891, x=0.970391, y=0.24154): 0.249328002843\n    test 1486 14 14.007530515250 Xi(tan=0.249468, x=0.970264, y=0.242049): 0.249328002843\n\n    test 1487 21 21.096778912148 Phi(tan=0.385803, x=1.0, y=0.385803): 0.383864035035\n    test 1488 21 21.032239504096 Beta(tan=0.38451, x=1.0, y=0.38451): 0.383864035035\n    test 1489 21 20.967860810199 Theta(tan=0.383221, x=1.0, y=0.383221): 0.383864035035\n    test 1490 21 21.000000000000 Mu(tan=0.383864, x=0.93358, y=0.358368): 0.383864035035\n    test 1491 21 20.967879349935 Chi(tan=0.383221, x=1.0, y=0.383221), iteration=3: 0.383864035035\n    test 1492 21 21.010731065364 Xi(tan=0.384079, x=1.87541, y=0.720305), iteration=3: 0.383864035035\n\n    test 1493 21 21.096778912148 Phi(tan=0.385803, x=0.932974, y=0.359944): 0.383864035035\n    test 1494 21 21.032239504096 Beta(tan=0.38451, x=0.933379, y=0.358893): 0.383864035035\n    test 1495 21 20.967860810199 Theta(tan=0.383221, x=0.933781, y=0.357844): 0.383864035035\n    test 1496 21 21.000000000000 Mu(tan=0.383864, x=0.93358, y=0.358368): 0.383864035035\n    test 1497 21 20.967879349935 Chi(tan=0.383221, x=0.933781, y=0.357845): 0.383864035035\n    test 1498 21 21.010731065364 Xi(tan=0.384079, x=0.933513, y=0.358543): 0.383864035035\n\n    test 1499 28 28.119841850563 Phi(tan=0.534395, x=1.0, y=0.534395): 0.531709431661\n    test 1500 28 28.039928546523 Beta(tan=0.532604, x=1.0, y=0.532604): 0.531709431661\n    test 1501 28 27.960164870301 Theta(tan=0.530818, x=1.0, y=0.530818): 0.531709431661\n    test 1502 28 28.000000000000 Mu(tan=0.531709, x=0.882948, y=0.469472): 0.531709431661\n    test 1503 28 27.960204286276 Chi(tan=0.530819, x=1.0, y=0.530819), iteration=3: 0.531709431661\n    test 1504 28 28.013292185978 Xi(tan=0.532007, x=1.77361, y=0.94357), iteration=2: 0.531709431661\n\n    test 1505 28 28.119841850563 Phi(tan=0.534395, x=0.881964, y=0.471317): 0.531709431661\n    test 1506 28 28.039928546523 Beta(tan=0.532604, x=0.88262, y=0.470087): 0.531709431661\n    test 1507 28 27.960164870301 Theta(tan=0.530818, x=0.883274, y=0.468858): 0.531709431661\n    test 1508 28 28.000000000000 Mu(tan=0.531709, x=0.882948, y=0.469472): 0.531709431661\n    test 1509 28 27.960204286276 Chi(tan=0.530819, x=0.883273, y=0.468858): 0.531709431661\n    test 1510 28 28.013292185978 Xi(tan=0.532007, x=0.882839, y=0.469676): 0.531709431661\n\n    test 1511 35 35.135750772251 Phi(tan=0.703744, x=1.0, y=0.703744): 0.700207538210\n    test 1512 35 35.045237306558 Beta(tan=0.701385, x=1.0, y=0.701385): 0.700207538210\n    test 1513 35 34.954827299026 Theta(tan=0.699033, x=1.0, y=0.699033): 0.700207538210\n    test 1514 35 35.000000000000 Mu(tan=0.700208, x=0.819152, y=0.573576): 0.700207538210\n    test 1515 35 34.954893977158 Chi(tan=0.699035, x=1.0, y=0.699035), iteration=3: 0.700207538210\n    test 1516 35 35.015061857454 Xi(tan=0.700599, x=1.64536, y=1.15274), iteration=3: 0.700207538210\n\n    test 1517 35 35.135750772251 Phi(tan=0.703744, x=0.817791, y=0.575516): 0.700207538210\n    test 1518 35 35.045237306558 Beta(tan=0.701385, x=0.818699, y=0.574223): 0.700207538210\n    test 1519 35 34.954827299026 Theta(tan=0.699033, x=0.819604, y=0.57293): 0.700207538210\n    test 1520 35 35.000000000000 Mu(tan=0.700208, x=0.819152, y=0.573576): 0.700207538210\n    test 1521 35 34.954893977158 Chi(tan=0.699035, x=0.819603, y=0.572931): 0.700207538210\n    test 1522 35 35.015061857454 Xi(tan=0.700599, x=0.819001, y=0.573792): 0.700207538210\n\n    test 1523 42 42.143571223962 Phi(tan=0.904952, x=1.0, y=0.904952): 0.900404044298\n    test 1524 42 42.047852933259 Beta(tan=0.901917, x=1.0, y=0.901917): 0.900404044298\n    test 1525 42 41.952167704870 Theta(tan=0.898894, x=1.0, y=0.898894): 0.900404044298\n    test 1526 42 42.000000000000 Mu(tan=0.900404, x=0.743145, y=0.669131): 0.900404044298\n    test 1527 42 41.952263729127 Chi(tan=0.898897, x=1.0, y=0.898897), iteration=3: 0.900404044298\n    test 1528 42 42.015935495968 Xi(tan=0.900908, x=1.49259, y=1.34469), iteration=2: 0.900404044298\n\n    test 1529 42 42.143571223962 Phi(tan=0.904952, x=0.741466, y=0.670991): 0.900404044298\n    test 1530 42 42.047852933259 Beta(tan=0.901917, x=0.742586, y=0.669751): 0.900404044298\n    test 1531 42 41.952167704870 Theta(tan=0.898894, x=0.743703, y=0.66851): 0.900404044298\n    test 1532 42 42.000000000000 Mu(tan=0.900404, x=0.743145, y=0.669131): 0.900404044298\n    test 1533 42 41.952263729127 Chi(tan=0.898897, x=0.743702, y=0.668511): 0.900404044298\n    test 1534 42 42.015935495968 Xi(tan=0.900908, x=0.742959, y=0.669337): 0.900404044298\n\n    test 1535 49 49.142854800592 Phi(tan=1.15618, x=1.0, y=1.15618): 1.150368407221\n    test 1536 49 49.047623888378 Beta(tan=1.1523, x=1.0, y=1.1523): 1.150368407221\n    test 1537 49 48.952347927786 Theta(tan=1.14844, x=1.0, y=1.14844): 1.150368407221\n    test 1538 49 49.000000000000 Mu(tan=1.15037, x=0.656059, y=0.75471): 1.150368407221\n    test 1539 49 48.952469542367 Chi(tan=1.14844, x=1.0, y=1.14844), iteration=3: 1.150368407221\n    test 1540 49 49.015862036782 Xi(tan=1.15101, x=1.31759, y=1.51656), iteration=2: 1.150368407221\n\n    test 1541 49 49.142854800592 Phi(tan=1.15618, x=0.654175, y=0.756343): 1.150368407221\n    test 1542 49 49.047623888378 Beta(tan=1.1523, x=0.655431, y=0.755255): 1.150368407221\n    test 1543 49 48.952347927786 Theta(tan=1.14844, x=0.656686, y=0.754164): 1.150368407221\n    test 1544 49 49.000000000000 Mu(tan=1.15037, x=0.656059, y=0.75471): 1.150368407221\n    test 1545 49 48.952469542367 Chi(tan=1.14844, x=0.656685, y=0.754165): 1.150368407221\n    test 1546 49 49.015862036782 Xi(tan=1.15101, x=0.65585, y=0.754891): 1.150368407221\n\n    test 1547 56 56.133661968442 Phi(tan=1.49005, x=1.0, y=1.49005): 1.482560968513\n    test 1548 56 56.044568042538 Beta(tan=1.48505, x=1.0, y=1.48505): 1.482560968513\n    test 1549 56 55.955361525715 Theta(tan=1.48007, x=1.0, y=1.48007): 1.482560968513\n    test 1550 56 56.000000000000 Mu(tan=1.48256, x=0.559193, y=0.829038): 1.482560968513\n    test 1551 56 55.955498904140 Chi(tan=1.48008, x=1.0, y=1.48008), iteration=3: 1.482560968513\n    test 1552 56 56.014846771252 Xi(tan=1.48339, x=1.12298, y=1.66581), iteration=2: 1.482560968513\n\n    test 1553 56 56.133661968442 Phi(tan=1.49005, x=0.557257, y=0.83034): 1.482560968513\n    test 1554 56 56.044568042538 Beta(tan=1.48505, x=0.558548, y=0.829472): 1.482560968513\n    test 1555 56 55.955361525715 Theta(tan=1.48007, x=0.559839, y=0.828602): 1.482560968513\n    test 1556 56 56.000000000000 Mu(tan=1.48256, x=0.559193, y=0.829038): 1.482560968513\n    test 1557 56 55.955498904140 Chi(tan=1.48008, x=0.559837, y=0.828603): 1.482560968513\n    test 1558 56 56.014846771252 Xi(tan=1.48339, x=0.558978, y=0.829182): 1.482560968513\n\n    test 1559 63 63.116554283961 Phi(tan=1.97252, x=1.0, y=1.97252): 1.962610505505\n    test 1560 63 63.038870615950 Beta(tan=1.96591, x=1.0, y=1.96591): 1.962610505505\n    test 1561 63 62.961033158986 Theta(tan=1.95932, x=1.0, y=1.95932): 1.962610505505\n    test 1562 63 63.000000000000 Mu(tan=1.96261, x=0.45399, y=0.891007): 1.962610505505\n    test 1563 63 62.961171598977 Chi(tan=1.95933, x=1.0, y=1.95933), iteration=3: 1.962610505505\n    test 1564 63 63.012950815476 Xi(tan=1.96371, x=0.911653, y=1.79022), iteration=2: 1.962610505505\n\n    test 1565 63 63.116554283961 Phi(tan=1.97252, x=0.452177, y=0.891928): 1.962610505505\n    test 1566 63 63.038870615950 Beta(tan=1.96591, x=0.453386, y=0.891314): 1.962610505505\n    test 1567 63 62.961033158986 Theta(tan=1.95932, x=0.454596, y=0.890698): 1.962610505505\n    test 1568 63 63.000000000000 Mu(tan=1.96261, x=0.45399, y=0.891007): 1.962610505505\n    test 1569 63 62.961171598977 Chi(tan=1.95933, x=0.454594, y=0.890699): 1.962610505505\n    test 1570 63 63.012950815476 Xi(tan=1.96371, x=0.453789, y=0.891109): 1.962610505505\n\n    test 1571 70 70.092557449454 Phi(tan=2.76135, x=1.0, y=2.76135): 2.747477419455\n    test 1572 70 70.030872319297 Beta(tan=2.75209, x=1.0, y=2.75209): 2.747477419455\n    test 1573 70 69.969028142824 Theta(tan=2.74286, x=1.0, y=2.74286): 2.747477419455\n    test 1574 70 70.000000000000 Mu(tan=2.74748, x=0.34202, y=0.939693): 2.747477419455\n    test 1575 70 69.969150471863 Chi(tan=2.74288, x=1.0, y=2.74288), iteration=2: 2.747477419455\n    test 1576 70 70.010287292906 Xi(tan=2.74901, x=0.686773, y=1.88795), iteration=3: 2.747477419455\n\n    test 1577 70 70.092557449454 Phi(tan=2.76135, x=0.340502, y=0.940244): 2.747477419455\n    test 1578 70 70.030872319297 Beta(tan=2.75209, x=0.341514, y=0.939877): 2.747477419455\n    test 1579 70 69.969028142824 Theta(tan=2.74286, x=0.342528, y=0.939508): 2.747477419455\n    test 1580 70 70.000000000000 Mu(tan=2.74748, x=0.34202, y=0.939693): 2.747477419455\n    test 1581 70 69.969150471863 Chi(tan=2.74288, x=0.342526, y=0.939508): 2.747477419455\n    test 1582 70 70.010287292906 Xi(tan=2.74901, x=0.341851, y=0.939754): 2.747477419455\n\n    test 1583 77 77.063098225048 Phi(tan=4.35334, x=1.0, y=4.35334): 4.331475874284\n    test 1584 77 77.021048596835 Beta(tan=4.33875, x=1.0, y=4.33875): 4.331475874284\n    test 1585 77 76.978871802460 Theta(tan=4.3242, x=1.0, y=4.3242): 4.331475874284\n    test 1586 77 77.000000000000 Mu(tan=4.33148, x=0.224951, y=0.97437): 4.331475874284\n    test 1587 77 76.978961492015 Chi(tan=4.32423, x=1.0, y=4.32423), iteration=3: 4.331475874284\n    test 1588 77 77.007014500932 Xi(tan=4.3339, x=0.451683, y=1.95755), iteration=3: 4.331475874284\n\n    test 1589 77 77.063098225048 Phi(tan=4.35334, x=0.223878, y=0.974617): 4.331475874284\n    test 1590 77 77.021048596835 Beta(tan=4.33875, x=0.224593, y=0.974453): 4.331475874284\n    test 1591 77 76.978871802460 Theta(tan=4.3242, x=0.22531, y=0.974287): 4.331475874284\n    test 1592 77 77.000000000000 Mu(tan=4.33148, x=0.224951, y=0.97437): 4.331475874284\n    test 1593 77 76.978961492015 Chi(tan=4.32423, x=0.225309, y=0.974287): 4.331475874284\n    test 1594 77 77.007014500932 Xi(tan=4.3339, x=0.224832, y=0.974398): 4.331475874284\n\n    test 1595 84 84.029919429066 Phi(tan=9.5624, x=1.0, y=9.5624): 9.514364454223\n    test 1596 84 84.009981321799 Beta(tan=9.53033, x=1.0, y=9.53033): 9.514364454223\n    test 1597 84 83.989977604221 Theta(tan=9.49838, x=1.0, y=9.49838): 9.514364454223\n    test 1598 84 84.000000000000 Mu(tan=9.51436, x=0.104528, y=0.994522): 9.514364454223\n    test 1599 84 83.990021917793 Chi(tan=9.49845, x=1.0, y=9.49845), iteration=3: 9.514364454223\n    test 1600 84 84.003326493225 Xi(tan=9.51968, x=0.20988, y=1.99799), iteration=2: 9.514364454223\n\n    test 1601 84 84.029919429066 Phi(tan=9.5624, x=0.104009, y=0.994576): 9.514364454223\n    test 1602 84 84.009981321799 Beta(tan=9.53033, x=0.104355, y=0.99454): 9.514364454223\n    test 1603 84 83.989977604221 Theta(tan=9.49838, x=0.104702, y=0.994504): 9.514364454223\n    test 1604 84 84.000000000000 Mu(tan=9.51436, x=0.104528, y=0.994522): 9.514364454223\n    test 1605 84 83.990021917793 Chi(tan=9.49845, x=0.104702, y=0.994504): 9.514364454223\n    test 1606 84 84.003326493225 Xi(tan=9.51968, x=0.104471, y=0.994528): 9.514364454223\n\n    test 1607 91 90.994978117111 Phi(tan=-57.5792, x=-1, y=57.5792): -57.289961630759\n    test 1608 91 90.998324636576 Beta(tan=-57.3861, x=-1, y=57.3861): -57.289961630759\n    test 1609 91 91.001682407187 Theta(tan=-57.1937, x=-1, y=57.1937): -57.289961630759\n    test 1610 91 91.000000000000 Mu(tan=-57.29, x=-0.0174524, y=0.999848): -57.289961630759\n    test 1611 91 91.001674889056 Chi(tan=-57.1941, x=-1, y=57.1941), iteration=3: -57.289961630759\n    test 1612 91 90.999441640005 Xi(tan=-57.322, x=-0.035042, y=2.00867), iteration=3: -57.289961630759\n\n    test 1613 91 90.994978117111 Phi(tan=-57.5792, x=-0.0173648, y=0.999849): -57.289961630759\n    test 1614 91 90.998324636576 Beta(tan=-57.3861, x=-0.0174232, y=0.999848): -57.289961630760  FAILED, KNOWN (5.95323e-15), expected -57.289961630759\n    test 1615 91 91.001682407187 Theta(tan=-57.1937, x=-0.0174818, y=0.999847): -57.289961630760  FAILED, KNOWN (5.82921e-15), expected -57.289961630759\n    test 1616 91 91.000000000000 Mu(tan=-57.29, x=-0.0174524, y=0.999848): -57.289961630759\n    test 1617 91 91.001674889056 Chi(tan=-57.1941, x=-0.0174816, y=0.999847): -57.289961630760  FAILED, KNOWN (9.30193e-15), expected -57.289961630759\n    test 1618 91 90.999441640005 Xi(tan=-57.322, x=-0.0174427, y=0.999848): -57.289961630759\n\n    test 1619 98 97.960332584009 Phi(tan=-7.15129, x=-1, y=7.15129): -7.115369722384\n    test 1620 98 97.986766870880 Beta(tan=-7.12731, x=-1, y=7.12731): -7.115369722384\n    test 1621 98 98.013286645922 Theta(tan=-7.10342, x=-1, y=7.10342): -7.115369722384\n    test 1622 98 98.000000000000 Mu(tan=-7.11537, x=-0.139173, y=0.990268): -7.115369722384\n    test 1623 98 98.013228398375 Chi(tan=-7.10347, x=-1, y=7.10347), iteration=3: -7.115369722384\n    test 1624 98 97.995589824971 Xi(tan=-7.11935, x=-0.279443, y=1.98945), iteration=3: -7.115369722384\n\n    test 1625 98 97.960332584009 Phi(tan=-7.15129, x=-0.138487, y=0.990364): -7.115369722384\n    test 1626 98 97.986766870880 Beta(tan=-7.12731, x=-0.138944, y=0.9903): -7.115369722384\n    test 1627 98 98.013286645922 Theta(tan=-7.10342, x=-0.139403, y=0.990236): -7.115369722384\n    test 1628 98 98.000000000000 Mu(tan=-7.11537, x=-0.139173, y=0.990268): -7.115369722384\n    test 1629 98 98.013228398375 Chi(tan=-7.10347, x=-0.139402, y=0.990236): -7.115369722384\n    test 1630 98 97.995589824971 Xi(tan=-7.11935, x=-0.139097, y=0.990279): -7.115369722384\n\n    test 1631 105 104.928024147426 Phi(tan=-3.75089, x=-1, y=3.75089): -3.732050807569\n    test 1632 105 104.975990619809 Beta(tan=-3.73832, x=-1, y=3.73832): -3.732050807569\n    test 1633 105 105.024096873204 Theta(tan=-3.72578, x=-1, y=3.72578): -3.732050807569\n    test 1634 105 105.000000000000 Mu(tan=-3.73205, x=-0.258819, y=0.965926): -3.732050807569\n    test 1635 105 105.023996337790 Chi(tan=-3.72581, x=-1, y=3.72581), iteration=3: -3.732050807569\n    test 1636 105 104.991999000074 Xi(tan=-3.73414, x=-0.519691, y=1.9406), iteration=3: -3.732050807569\n\n    test 1637 105 104.928024147426 Phi(tan=-3.75089, x=-0.257605, y=0.96625): -3.732050807569\n    test 1638 105 104.975990619809 Beta(tan=-3.73832, x=-0.258414, y=0.966034): -3.732050807569\n    test 1639 105 105.024096873204 Theta(tan=-3.72578, x=-0.259225, y=0.965817): -3.732050807569\n    test 1640 105 105.000000000000 Mu(tan=-3.73205, x=-0.258819, y=0.965926): -3.732050807569\n    test 1641 105 105.023996337790 Chi(tan=-3.72581, x=-0.259224, y=0.965817): -3.732050807569\n    test 1642 105 104.991999000074 Xi(tan=-3.73414, x=-0.258684, y=0.965962): -3.732050807569\n\n    test 1643 112 111.899959803709 Phi(tan=-2.48758, x=-1, y=2.48758): -2.475086853416\n    test 1644 112 111.966633129887 Beta(tan=-2.47924, x=-1, y=2.47924): -2.475086853416\n    test 1645 112 112.033467905647 Theta(tan=-2.47093, x=-1, y=2.47093): -2.475086853416\n    test 1646 112 112.000000000000 Mu(tan=-2.47509, x=-0.374607, y=0.927184): -2.475086853416\n    test 1647 112 112.033339197227 Chi(tan=-2.47095, x=-1, y=2.47095), iteration=3: -2.475086853416\n    test 1648 112 111.988881847875 Xi(tan=-2.47647, x=-0.752216, y=1.86284), iteration=3: -2.475086853416\n\n    test 1649 112 111.899959803709 Phi(tan=-2.48758, x=-0.372987, y=0.927837): -2.475086853416\n    test 1650 112 111.966633129887 Beta(tan=-2.47924, x=-0.374067, y=0.927402): -2.475086853416\n    test 1651 112 112.033467905647 Theta(tan=-2.47093, x=-0.375148, y=0.926965): -2.475086853416\n    test 1652 112 112.000000000000 Mu(tan=-2.47509, x=-0.374607, y=0.927184): -2.475086853416\n    test 1653 112 112.033339197227 Chi(tan=-2.47095, x=-0.375146, y=0.926966): -2.475086853416\n    test 1654 112 111.988881847875 Xi(tan=-2.47647, x=-0.374427, y=0.927257): -2.475086853416\n\n    test 1655 119 118.877801825189 Phi(tan=-1.81316, x=-1, y=1.81316): -1.804047755271\n    test 1656 119 118.959249130251 Beta(tan=-1.80708, x=-1, y=1.80708): -1.804047755271\n    test 1657 119 119.040841846602 Theta(tan=-1.80102, x=-1, y=1.80102): -1.804047755271\n    test 1658 119 119.000000000000 Mu(tan=-1.80405, x=-0.48481, y=0.87462): -1.804047755271\n    test 1659 119 119.040702010928 Chi(tan=-1.80103, x=-1, y=1.80103), iteration=3: -1.804047755271\n    test 1660 119 118.986423296510 Xi(tan=-1.80506, x=-0.973556, y=1.75732), iteration=2: -1.804047755271\n\n    test 1661 119 118.877801825189 Phi(tan=-1.81316, x=-0.482943, y=0.875652): -1.804047755271\n    test 1662 119 118.959249130251 Beta(tan=-1.80708, x=-0.484187, y=0.874964): -1.804047755271\n    test 1663 119 119.040841846602 Theta(tan=-1.80102, x=-0.485433, y=0.874274): -1.804047755271\n    test 1664 119 119.000000000000 Mu(tan=-1.80405, x=-0.48481, y=0.87462): -1.804047755271\n    test 1665 119 119.040702010928 Chi(tan=-1.80103, x=-0.485431, y=0.874275): -1.804047755271\n    test 1666 119 118.986423296510 Xi(tan=-1.80506, x=-0.484602, y=0.874735): -1.804047755271\n\n    test 1667 126 125.862870188589 Phi(tan=-1.38333, x=-1, y=1.38333): -1.376381920471\n    test 1668 126 125.954278157197 Beta(tan=-1.37869, x=-1, y=1.37869): -1.376381920471\n    test 1669 126 126.045781505815 Theta(tan=-1.37407, x=-1, y=1.37407): -1.376381920471\n    test 1670 126 126.000000000000 Mu(tan=-1.37638, x=-0.587785, y=0.809017): -1.376381920471\n    test 1671 126 126.045647308130 Chi(tan=-1.37408, x=-1, y=1.37408), iteration=3: -1.376381920471\n    test 1672 126 125.984769594047 Xi(tan=-1.37715, x=-1.18042, y=1.62561), iteration=2: -1.376381920471\n\n    test 1673 126 125.862870188589 Phi(tan=-1.38333, x=-0.585847, y=0.810421): -1.376381920471\n    test 1674 126 125.954278157197 Beta(tan=-1.37869, x=-0.587139, y=0.809486): -1.376381920471\n    test 1675 126 126.045781505815 Theta(tan=-1.37407, x=-0.588431, y=0.808547): -1.376381920471\n    test 1676 126 126.000000000000 Mu(tan=-1.37638, x=-0.587785, y=0.809017): -1.376381920471\n    test 1677 126 126.045647308130 Chi(tan=-1.37408, x=-0.58843, y=0.808548): -1.376381920471\n    test 1678 126 125.984769594047 Xi(tan=-1.37715, x=-0.58757, y=0.809173): -1.376381920471\n\n    test 1679 133 132.856063347719 Phi(tan=-1.07778, x=-1, y=1.07778): -1.072368710025\n    test 1680 133 132.952018246366 Beta(tan=-1.07417, x=-1, y=1.07417): -1.072368710025\n    test 1681 133 133.047996165770 Theta(tan=-1.07057, x=-1, y=1.07057): -1.072368710025\n    test 1682 133 133.000000000000 Mu(tan=-1.07237, x=-0.681998, y=0.731354): -1.072368710025\n    test 1683 133 133.047881115076 Chi(tan=-1.07057, x=-1, y=1.07057), iteration=3: -1.072368710025\n    test 1684 133 132.984019576906 Xi(tan=-1.07297, x=-1.36971, y=1.46966), iteration=2: -1.072368710025\n\n    test 1685 133 132.856063347719 Phi(tan=-1.07778, x=-0.680159, y=0.733065): -1.072368710025\n    test 1686 133 132.952018246366 Beta(tan=-1.07417, x=-0.681386, y=0.731925): -1.072368710025\n    test 1687 133 133.047996165770 Theta(tan=-1.07057, x=-0.682611, y=0.730782): -1.072368710025\n    test 1688 133 133.000000000000 Mu(tan=-1.07237, x=-0.681998, y=0.731354): -1.072368710025\n    test 1689 133 133.047881115076 Chi(tan=-1.07057, x=-0.682609, y=0.730784): -1.072368710025\n    test 1690 133 132.984019576906 Xi(tan=-1.07297, x=-0.681794, y=0.731544): -1.072368710025\n\n    test 1691 140 139.857802229338 Phi(tan=-0.843338, x=-1, y=0.843338): -0.839099631177\n    test 1692 140 139.952607597930 Beta(tan=-0.84051, x=-1, y=0.84051): -0.839099631177\n    test 1693 140 140.047358211970 Theta(tan=-0.837692, x=-1, y=0.837692): -0.839099631177\n    test 1694 140 140.000000000000 Mu(tan=-0.8391, x=-0.766044, y=0.642788): -0.839099631177\n    test 1695 140 140.047270461053 Chi(tan=-0.837695, x=-1, y=0.837695), iteration=3: -0.839099631177\n    test 1696 140 139.984218660625 Xi(tan=-0.839569, x=-1.53861, y=1.29177), iteration=3: -0.839099631177\n\n    test 1697 140 139.857802229338 Phi(tan=-0.843338, x=-0.764447, y=0.644687): -0.839099631177\n    test 1698 140 139.952607597930 Beta(tan=-0.84051, x=-0.765512, y=0.643421): -0.839099631177\n    test 1699 140 140.047358211970 Theta(tan=-0.837692, x=-0.766575, y=0.642154): -0.839099631177\n    test 1700 140 140.000000000000 Mu(tan=-0.8391, x=-0.766044, y=0.642788): -0.839099631177\n    test 1701 140 140.047270461053 Chi(tan=-0.837695, x=-0.766574, y=0.642155): -0.839099631177\n    test 1702 140 139.984218660625 Xi(tan=-0.839569, x=-0.765867, y=0.642999): -0.839099631177\n\n    test 1703 147 146.868001375396 Phi(tan=-0.652688, x=-1, y=0.652688): -0.649407593198\n    test 1704 147 146.956015447561 Beta(tan=-0.6505, x=-1, y=0.6505): -0.649407593198\n    test 1705 147 147.043909788845 Theta(tan=-0.648319, x=-1, y=0.648319): -0.649407593198\n    test 1706 147 147.000000000000 Mu(tan=-0.649408, x=-0.838671, y=0.544639): -0.649407593198\n    test 1707 147 147.043851339199 Chi(tan=-0.64832, x=-1, y=0.64832), iteration=3: -0.649407593198\n    test 1708 147 146.985355941570 Xi(tan=-0.649771, x=-1.68459, y=1.0946), iteration=3: -0.649407593198\n\n    test 1709 147 146.868001375396 Phi(tan=-0.652688, x=-0.837414, y=0.54657): -0.649407593198\n    test 1710 147 146.956015447561 Beta(tan=-0.6505, x=-0.838252, y=0.545283): -0.649407593198\n    test 1711 147 147.043909788845 Theta(tan=-0.648319, x=-0.839088, y=0.543996): -0.649407593198\n    test 1712 147 147.000000000000 Mu(tan=-0.649408, x=-0.838671, y=0.544639): -0.649407593198\n    test 1713 147 147.043851339199 Chi(tan=-0.64832, x=-0.839087, y=0.543997): -0.649407593198\n    test 1714 147 146.985355941570 Xi(tan=-0.649771, x=-0.838531, y=0.544853): -0.649407593198\n\n    test 1715 154 153.886069836452 Phi(tan=-0.490196, x=-1, y=0.490196): -0.487732588566\n    test 1716 154 153.962042898489 Beta(tan=-0.488553, x=-1, y=0.488553): -0.487732588566\n    test 1717 154 154.037859302268 Theta(tan=-0.486915, x=-1, y=0.486915): -0.487732588566\n    test 1718 154 154.000000000000 Mu(tan=-0.487733, x=-0.898794, y=0.438371): -0.487732588566\n    test 1719 154 154.037826635034 Chi(tan=-0.486916, x=-1, y=0.486916), iteration=3: -0.487732588566\n    test 1720 154 153.987364628293 Xi(tan=-0.488006, x=-1.80546, y=0.881077), iteration=3: -0.487732588566\n\n    test 1721 154 153.886069836452 Phi(tan=-0.490196, x=-0.897921, y=0.440157): -0.487732588566\n    test 1722 154 153.962042898489 Beta(tan=-0.488553, x=-0.898503, y=0.438966): -0.487732588566\n    test 1723 154 154.037859302268 Theta(tan=-0.486915, x=-0.899084, y=0.437777): -0.487732588566\n    test 1724 154 154.000000000000 Mu(tan=-0.487733, x=-0.898794, y=0.438371): -0.487732588566\n    test 1725 154 154.037826635034 Chi(tan=-0.486916, x=-0.899083, y=0.437778): -0.487732588566\n    test 1726 154 153.987364628293 Xi(tan=-0.488006, x=-0.898697, y=0.438569): -0.487732588566\n\n    test 1727 161 160.910942745263 Phi(tan=-0.346067, x=-1, y=0.346067): -0.344327613290\n    test 1728 161 160.970333898803 Beta(tan=-0.344907, x=-1, y=0.344907): -0.344327613290\n    test 1729 161 161.029568209135 Theta(tan=-0.34375, x=-1, y=0.34375): -0.344327613290\n    test 1730 161 161.000000000000 Mu(tan=-0.344328, x=-0.945519, y=0.325568): -0.344327613290\n    test 1731 161 161.029554130079 Chi(tan=-0.343751, x=-1, y=0.343751), iteration=2: -0.344327613290\n    test 1732 161 160.990125827674 Xi(tan=-0.34452, x=-1.89942, y=0.654387), iteration=3: -0.344327613290\n\n    test 1733 161 160.910942745263 Phi(tan=-0.346067, x=-0.945011, y=0.327037): -0.344327613290\n    test 1734 161 160.970333898803 Beta(tan=-0.344907, x=-0.94535, y=0.326058): -0.344327613290\n    test 1735 161 161.029568209135 Theta(tan=-0.34375, x=-0.945686, y=0.32508): -0.344327613290\n    test 1736 161 161.000000000000 Mu(tan=-0.344328, x=-0.945519, y=0.325568): -0.344327613290\n    test 1737 161 161.029554130079 Chi(tan=-0.343751, x=-0.945686, y=0.32508): -0.344327613290\n    test 1738 161 160.990125827674 Xi(tan=-0.34452, x=-0.945462, y=0.325731): -0.344327613290\n\n    test 1739 168 167.941142537455 Phi(tan=-0.21363, x=-1, y=0.21363): -0.212556561670\n    test 1740 168 167.980395911211 Beta(tan=-0.212914, x=-1, y=0.212914): -0.212556561670\n    test 1741 168 168.019529073263 Theta(tan=-0.2122, x=-1, y=0.2122): -0.212556561670\n    test 1742 168 168.000000000000 Mu(tan=-0.212557, x=-0.978148, y=0.207912): -0.212556561670\n    test 1743 168 168.019525279620 Chi(tan=-0.2122, x=-1, y=0.2122), iteration=3: -0.212556561670\n    test 1744 168 167.993475503952 Xi(tan=-0.212676, x=-1.96503, y=0.417914), iteration=2: -0.212556561670\n\n    test 1745 168 167.941142537455 Phi(tan=-0.21363, x=-0.977934, y=0.208916): -0.212556561670\n    test 1746 168 167.980395911211 Beta(tan=-0.212914, x=-0.978076, y=0.208246): -0.212556561670\n    test 1747 168 168.019529073263 Theta(tan=-0.2122, x=-0.978218, y=0.207578): -0.212556561670\n    test 1748 168 168.000000000000 Mu(tan=-0.212557, x=-0.978148, y=0.207912): -0.212556561670\n    test 1749 168 168.019525279620 Chi(tan=-0.2122, x=-0.978218, y=0.207578): -0.212556561670\n    test 1750 168 167.993475503952 Xi(tan=-0.212676, x=-0.978124, y=0.208023): -0.212556561670\n\n    test 1751 175 174.974866680328 Phi(tan=-0.0879307, x=-1, y=0.0879307): -0.087488663526\n    test 1752 175 174.991629164161 Beta(tan=-0.0876359, x=-1, y=0.0876359): -0.087488663526\n    test 1753 175 175.008336301828 Theta(tan=-0.0873421, x=-1, y=0.0873421): -0.087488663526\n    test 1754 175 175.000000000000 Mu(tan=-0.0874887, x=-0.996195, y=0.0871557): -0.087488663526\n    test 1755 175 175.008336017206 Chi(tan=-0.0873421, x=-1, y=0.0873421), iteration=2: -0.087488663526\n    test 1756 175 174.997214222263 Xi(tan=-0.0875377, x=-2.00133, y=0.175191), iteration=2: -0.087488663526\n\n    test 1757 175 174.974866680328 Phi(tan=-0.0879307, x=-0.996156, y=0.0875927): -0.087488663526\n    test 1758 175 174.991629164161 Beta(tan=-0.0876359, x=-0.996182, y=0.0873013): -0.087488663526\n    test 1759 175 175.008336301828 Theta(tan=-0.0873421, x=-0.996207, y=0.0870108): -0.087488663526\n    test 1760 175 175.000000000000 Mu(tan=-0.0874887, x=-0.996195, y=0.0871557): -0.087488663526\n    test 1761 175 175.008336017206 Chi(tan=-0.0873421, x=-0.996207, y=0.0870108): -0.087488663526\n    test 1762 175 174.997214222263 Xi(tan=-0.0875377, x=-0.99619, y=0.0872042): -0.087488663526\n\n    test 1763 182 182.010096724503 Phi(tan=0.0350972, x=-1, y=-0.0350972): 0.034920769492\n    test 1764 182 182.003362751638 Beta(tan=0.0349795, x=-1, y=-0.0349795): 0.034920769492\n    test 1765 182 181.996651301418 Theta(tan=0.0348623, x=-1, y=-0.0348623): 0.034920769492\n    test 1766 182 182.000000000000 Mu(tan=0.0349208, x=-0.999391, y=-0.0348995): 0.034920769492\n    test 1767 182 181.996651319751 Chi(tan=0.0348623, x=-1, y=-0.0348623), iteration=2: 0.034920769492\n    test 1768 182 182.001119098649 Xi(tan=0.0349403, x=-2.00775, y=-0.0701516), iteration=2: 0.034920769492\n\n    test 1769 182 182.010096724503 Phi(tan=0.0350972, x=-0.999385, y=-0.0350756): 0.034920769492\n    test 1770 182 182.003362751638 Beta(tan=0.0349795, x=-0.999389, y=-0.0349582): 0.034920769492\n    test 1771 182 181.996651301418 Theta(tan=0.0348623, x=-0.999393, y=-0.0348411): 0.034920769492\n    test 1772 182 182.000000000000 Mu(tan=0.0349208, x=-0.999391, y=-0.0348995): 0.034920769492\n    test 1773 182 181.996651319751 Chi(tan=0.0348623, x=-0.999393, y=-0.0348411): 0.034920769492\n    test 1774 182 182.001119098649 Xi(tan=0.0349403, x=-0.99939, y=-0.034919): 0.034920769492\n\n    test 1775 189 189.044721740866 Phi(tan=0.159185, x=-1, y=-0.159185): 0.158384440325\n    test 1776 189 189.014895327636 Beta(tan=0.158651, x=-1, y=-0.158651): 0.158384440325\n    test 1777 189 188.985164013992 Theta(tan=0.158119, x=-1, y=-0.158119): 0.158384440325\n    test 1778 189 189.000000000000 Mu(tan=0.158384, x=-0.987688, y=-0.156434): 0.158384440325\n    test 1779 189 188.985165645705 Chi(tan=0.158119, x=-1, y=-0.158119), iteration=3: 0.158384440325\n    test 1780 189 189.004957222799 Xi(tan=0.158473, x=-1.98422, y=-0.314445), iteration=3: 0.158384440325\n\n    test 1781 189 189.044721740866 Phi(tan=0.159185, x=-0.987566, y=-0.157205): 0.158384440325\n    test 1782 189 189.014895327636 Beta(tan=0.158651, x=-0.987648, y=-0.156691): 0.158384440325\n    test 1783 189 188.985164013992 Theta(tan=0.158119, x=-0.987729, y=-0.156179): 0.158384440325\n    test 1784 189 189.000000000000 Mu(tan=0.158384, x=-0.987688, y=-0.156434): 0.158384440325\n    test 1785 189 188.985165645705 Chi(tan=0.158119, x=-0.987729, y=-0.156179): 0.158384440325\n    test 1786 189 189.004957222799 Xi(tan=0.158473, x=-0.987675, y=-0.15652): 0.158384440325\n\n    test 1787 196 196.076667971970 Phi(tan=0.288194, x=-1, y=-0.288194): 0.286745385759\n    test 1788 196 196.025537779325 Beta(tan=0.287228, x=-1, y=-0.287228): 0.286745385759\n    test 1789 196 195.974552923462 Theta(tan=0.286265, x=-1, y=-0.286265): 0.286745385759\n    test 1790 196 196.000000000000 Mu(tan=0.286745, x=-0.961262, y=-0.275637): 0.286745385759\n    test 1791 196 195.974561610097 Chi(tan=0.286265, x=-1, y=-0.286265), iteration=2: 0.286745385759\n    test 1792 196 196.008499713199 Xi(tan=0.286906, x=-1.93107, y=-0.554036), iteration=3: 0.286745385759\n\n    test 1793 196 196.076667971970 Phi(tan=0.288194, x=-0.960892, y=-0.276923): 0.286745385759\n    test 1794 196 196.025537779325 Beta(tan=0.287228, x=-0.961139, y=-0.276066): 0.286745385759\n    test 1795 196 195.974552923462 Theta(tan=0.286265, x=-0.961384, y=-0.27521): 0.286745385759\n    test 1796 196 196.000000000000 Mu(tan=0.286745, x=-0.961262, y=-0.275637): 0.286745385759\n    test 1797 196 195.974561610097 Chi(tan=0.286265, x=-0.961384, y=-0.275211): 0.286745385759\n    test 1798 196 196.008499713199 Xi(tan=0.286906, x=-0.961221, y=-0.27578): 0.286745385759\n\n    test 1799 203 203.104025981749 Phi(tan=0.426619, x=-1, y=-0.426619): 0.424474816210\n    test 1800 203 203.034655104114 Beta(tan=0.425189, x=-1, y=-0.425189): 0.424474816210\n    test 1801 203 202.965445675486 Theta(tan=0.423763, x=-1, y=-0.423763): 0.424474816210\n    test 1802 203 203.000000000000 Mu(tan=0.424475, x=-0.920505, y=-0.390731): 0.424474816210\n    test 1803 203 202.965469367936 Chi(tan=0.423764, x=-1, y=-0.423764), iteration=3: 0.424474816210\n    test 1804 203 203.011535517974 Xi(tan=0.424712, x=-1.84912, y=-0.785343), iteration=2: 0.424474816210\n\n    test 1805 203 203.104025981749 Phi(tan=0.426619, x=-0.919794, y=-0.392402): 0.424474816210\n    test 1806 203 203.034655104114 Beta(tan=0.425189, x=-0.920268, y=-0.391288): 0.424474816210\n    test 1807 203 202.965445675486 Theta(tan=0.423763, x=-0.92074, y=-0.390176): 0.424474816210\n    test 1808 203 203.000000000000 Mu(tan=0.424475, x=-0.920505, y=-0.390731): 0.424474816210\n    test 1809 203 202.965469367936 Chi(tan=0.423764, x=-0.92074, y=-0.390176): 0.424474816210\n    test 1810 203 203.011535517974 Xi(tan=0.424712, x=-0.920426, y=-0.390916): 0.424474816210\n\n    test 1811 210 210.125166807834 Phi(tan=0.580267, x=-1, y=-0.580267): 0.577350269190\n    test 1812 210 210.041704779944 Beta(tan=0.578321, x=-1, y=-0.578321): 0.577350269190\n    test 1813 210 209.958382432479 Theta(tan=0.576382, x=-1, y=-0.576382): 0.577350269190\n    test 1814 210 210.000000000000 Mu(tan=0.57735, x=-0.866025, y=-0.5): 0.577350269190\n    test 1815 210 209.958429134161 Chi(tan=0.576383, x=-1, y=-0.576383), iteration=2: 0.577350269190\n    test 1816 210 210.013884093401 Xi(tan=0.577673, x=-1.73958, y=-1.00491), iteration=2: 0.577350269190\n\n    test 1817 210 210.125166807834 Phi(tan=0.580267, x=-0.864931, y=-0.501891): 0.577350269190\n    test 1818 210 210.041704779944 Beta(tan=0.578321, x=-0.865661, y=-0.50063): 0.577350269190\n    test 1819 210 209.958382432479 Theta(tan=0.576382, x=-0.866388, y=-0.499371): 0.577350269190\n    test 1820 210 210.000000000000 Mu(tan=0.57735, x=-0.866025, y=-0.5): 0.577350269190\n    test 1821 210 209.958429134161 Chi(tan=0.576383, x=-0.866388, y=-0.499372): 0.577350269190\n    test 1822 210 210.013884093401 Xi(tan=0.577673, x=-0.865904, y=-0.50021): 0.577350269190\n\n    test 1823 217 217.138839575219 Phi(tan=0.75736, x=-1, y=-0.75736): 0.753554050103\n    test 1824 217 217.046269197118 Beta(tan=0.754821, x=-1, y=-0.754821): 0.753554050103\n    test 1825 217 216.953783990372 Theta(tan=0.75229, x=-1, y=-0.75229): 0.753554050103\n    test 1826 217 217.000000000000 Mu(tan=0.753554, x=-0.798636, y=-0.601815): 0.753554050103\n    test 1827 217 216.953859077076 Chi(tan=0.752292, x=-1, y=-0.752292), iteration=3: 0.753554050103\n    test 1828 217 217.015406173898 Xi(tan=0.753976, x=-1.60412, y=-1.20947), iteration=3: 0.753554050103\n\n    test 1829 217 217.138839575219 Phi(tan=0.75736, x=-0.797175, y=-0.603749): 0.753554050103\n    test 1830 217 217.046269197118 Beta(tan=0.754821, x=-0.798149, y=-0.60246): 0.753554050103\n    test 1831 217 216.953783990372 Theta(tan=0.75229, x=-0.799121, y=-0.601171): 0.753554050103\n    test 1832 217 217.000000000000 Mu(tan=0.753554, x=-0.798636, y=-0.601815): 0.753554050103\n    test 1833 217 216.953859077076 Chi(tan=0.752292, x=-0.79912, y=-0.601172): 0.753554050103\n    test 1834 217 217.015406173898 Xi(tan=0.753976, x=-0.798474, y=-0.60203): 0.753554050103\n\n    test 1835 224 224.144244585156 Phi(tan=0.970566, x=-1, y=-0.970566): 0.965688774807\n    test 1836 224 224.048080179626 Beta(tan=0.967312, x=-1, y=-0.967312): 0.965688774807\n    test 1837 224 223.951926502986 Theta(tan=0.964069, x=-1, y=-0.964069): 0.965688774807\n    test 1838 224 224.000000000000 Mu(tan=0.965689, x=-0.71934, y=-0.694658): 0.965688774807\n    test 1839 224 223.952030495532 Chi(tan=0.964072, x=-1, y=-0.964072), iteration=2: 0.965688774807\n    test 1840 224 224.016011983610 Xi(tan=0.966229, x=-1.44475, y=-1.39596), iteration=2: 0.965688774807\n\n    test 1841 224 224.144244585156 Phi(tan=0.970566, x=-0.717589, y=-0.696467): 0.965688774807\n    test 1842 224 224.048080179626 Beta(tan=0.967312, x=-0.718757, y=-0.695262): 0.965688774807\n    test 1843 224 223.951926502986 Theta(tan=0.964069, x=-0.719922, y=-0.694055): 0.965688774807\n    test 1844 224 224.000000000000 Mu(tan=0.965689, x=-0.71934, y=-0.694658): 0.965688774807\n    test 1845 224 223.952030495532 Chi(tan=0.964072, x=-0.719921, y=-0.694056): 0.965688774807\n    test 1846 224 224.016011983610 Xi(tan=0.966229, x=-0.719146, y=-0.694859): 0.965688774807\n\n    test 1847 231 231.141077842653 Phi(tan=1.24113, x=-1, y=-1.24113): 1.234897156535\n    test 1848 231 231.047034210293 Beta(tan=1.23697, x=-1, y=-1.23697): 1.234897156535\n    test 1849 231 230.952924380812 Theta(tan=1.23282, x=-1, y=-1.23282): 1.234897156535\n    test 1850 231 231.000000000000 Mu(tan=1.2349, x=-0.62932, y=-0.777146): 1.234897156535\n    test 1851 231 230.953051749472 Chi(tan=1.23283, x=-1, y=-1.23283), iteration=3: 1.234897156535\n    test 1852 231 231.015666416855 Xi(tan=1.23559, x=-1.26387, y=-1.56162), iteration=3: 1.234897156535\n\n    test 1853 231 231.141077842654 Phi(tan=1.24113, x=-0.627405, y=-0.778693): 1.234897156535\n    test 1854 231 231.047034210293 Beta(tan=1.23697, x=-0.628682, y=-0.777662): 1.234897156535\n    test 1855 231 230.952924380812 Theta(tan=1.23282, x=-0.629959, y=-0.776629): 1.234897156535\n    test 1856 231 231.000000000000 Mu(tan=1.2349, x=-0.62932, y=-0.777146): 1.234897156535\n    test 1857 231 230.953051749472 Chi(tan=1.23283, x=-0.629957, y=-0.77663): 1.234897156535\n    test 1858 231 231.015666416855 Xi(tan=1.23559, x=-0.629108, y=-0.777318): 1.234897156535\n\n    test 1859 238 238.129545093885 Phi(tan=1.60842, x=-1, y=-1.60842): 1.600334529041\n    test 1860 238 238.043197624299 Beta(tan=1.60302, x=-1, y=-1.60302): 1.600334529041\n    test 1861 238 237.956722543300 Theta(tan=1.59765, x=-1, y=-1.59765): 1.600334529041\n    test 1862 238 238.000000000000 Mu(tan=1.60033, x=-0.529919, y=-0.848048): 1.600334529041\n    test 1863 238 237.956861886827 Chi(tan=1.59766, x=-1, y=-1.59766), iteration=3: 1.600334529041\n    test 1864 238 238.014390916077 Xi(tan=1.60123, x=-1.06417, y=-1.70398), iteration=3: 1.600334529041\n\n    test 1865 238 238.129545093885 Phi(tan=1.60842, x=-0.528, y=-0.849244): 1.600334529041\n    test 1866 238 238.043197624299 Beta(tan=1.60302, x=-0.52928, y=-0.848447): 1.600334529041\n    test 1867 238 237.956722543300 Theta(tan=1.59765, x=-0.53056, y=-0.847648): 1.600334529041\n    test 1868 238 238.000000000000 Mu(tan=1.60033, x=-0.529919, y=-0.848048): 1.600334529041\n    test 1869 238 237.956861886827 Chi(tan=1.59766, x=-0.530558, y=-0.847649): 1.600334529041\n    test 1870 238 238.014390916077 Xi(tan=1.60123, x=-0.529706, y=-0.848181): 1.600334529041\n\n    test 1871 245 245.110345489960 Phi(tan=2.15533, x=-1, y=-2.15533): 2.144506920510\n    test 1872 245 245.036801688087 Beta(tan=2.14811, x=-1, y=-2.14811): 2.144506920510\n    test 1873 245 244.963098707662 Theta(tan=2.14091, x=-1, y=-2.14091): 2.144506920510\n    test 1874 245 245.000000000000 Mu(tan=2.14451, x=-0.422618, y=-0.906308): 2.144506920510\n    test 1875 245 244.963234330104 Chi(tan=2.14092, x=-1, y=-2.14092), iteration=2: 2.144506920510\n    test 1876 245 245.012261984604 Xi(tan=2.14571, x=-0.848642, y=-1.82094), iteration=3: 2.144506920510\n\n    test 1877 245 245.110345489960 Phi(tan=2.15533, x=-0.420872, y=-0.90712): 2.144506920510\n    test 1878 245 245.036801688087 Beta(tan=2.14811, x=-0.422036, y=-0.906579): 2.144506920510\n    test 1879 245 244.963098707662 Theta(tan=2.14091, x=-0.423202, y=-0.906035): 2.144506920510\n    test 1880 245 245.000000000000 Mu(tan=2.14451, x=-0.422618, y=-0.906308): 2.144506920510\n    test 1881 245 244.963234330104 Chi(tan=2.14092, x=-0.4232, y=-0.906036): 2.144506920510\n    test 1882 245 245.012261984604 Xi(tan=2.14571, x=-0.422424, y=-0.906398): 2.144506920510\n\n    test 1883 252 252.084626804899 Phi(tan=3.09322, x=-1, y=-3.09322): 3.077683537175\n    test 1884 252 252.028228084417 Beta(tan=3.08285, x=-1, y=-3.08285): 3.077683537175\n    test 1885 252 251.971675808314 Theta(tan=3.07251, x=-1, y=-3.07251): 3.077683537175\n    test 1886 252 252.000000000000 Mu(tan=3.07768, x=-0.309017, y=-0.951057): 3.077683537175\n    test 1887 252 251.971790388449 Chi(tan=3.07254, x=-1, y=-3.07254), iteration=3: 3.077683537175\n    test 1888 252 252.009406472364 Xi(tan=3.0794, x=-0.620495, y=-1.91076), iteration=3: 3.077683537175\n\n    test 1889 252 252.084626804899 Phi(tan=3.09322, x=-0.307612, y=-0.951512): 3.077683537175\n    test 1890 252 252.028228084417 Beta(tan=3.08285, x=-0.308548, y=-0.951209): 3.077683537175\n    test 1891 252 251.971675808314 Theta(tan=3.07251, x=-0.309487, y=-0.950904): 3.077683537175\n    test 1892 252 252.000000000000 Mu(tan=3.07768, x=-0.309017, y=-0.951057): 3.077683537175\n    test 1893 252 251.971790388449 Chi(tan=3.07254, x=-0.309485, y=-0.950904): 3.077683537175\n    test 1894 252 252.009406472364 Xi(tan=3.0794, x=-0.308861, y=-0.951107): 3.077683537175\n\n    test 1895 259 259.053915611440 Phi(tan=5.17053, x=-1, y=-5.17053): 5.144554015970\n    test 1896 259 259.017985844271 Beta(tan=5.15319, x=-1, y=-5.15319): 5.144554015970\n    test 1897 259 258.981943992803 Theta(tan=5.13591, x=-1, y=-5.13591): 5.144554015970\n    test 1898 259 259.000000000000 Mu(tan=5.14455, x=-0.190809, y=-0.981627): 5.144554015970\n    test 1899 259 258.982021780770 Chi(tan=5.13595, x=-1, y=-5.13595), iteration=2: 5.144554015970\n    test 1900 259 259.005993953740 Xi(tan=5.14743, x=-0.383125, y=-1.97211), iteration=3: 5.144554015970\n\n    test 1901 259 259.053915611440 Phi(tan=5.17053, x=-0.189885, y=-0.981806): 5.144554015970\n    test 1902 259 259.017985844271 Beta(tan=5.15319, x=-0.190501, y=-0.981687): 5.144554015970\n    test 1903 259 258.981943992803 Theta(tan=5.13591, x=-0.191118, y=-0.981567): 5.144554015970\n    test 1904 259 259.000000000000 Mu(tan=5.14455, x=-0.190809, y=-0.981627): 5.144554015970\n    test 1905 259 258.982021780770 Chi(tan=5.13595, x=-0.191117, y=-0.981567): 5.144554015970\n    test 1906 259 259.005993953740 Xi(tan=5.14743, x=-0.190706, y=-0.981647): 5.144554015970\n\n    test 1907 266 266.020026926530 Phi(tan=14.3729, x=-1, y=-14.3729): 14.300666256712\n    test 1908 266 266.006681184269 Beta(tan=14.3247, x=-1, y=-14.3247): 14.300666256712\n    test 1909 266 265.993290981931 Theta(tan=14.2766, x=-1, y=-14.2766): 14.300666256712\n    test 1910 266 266.000000000000 Mu(tan=14.3007, x=-0.0697565, y=-0.997564): 14.300666256712\n    test 1911 266 265.993320826309 Chi(tan=14.2767, x=-1, y=-14.2767), iteration=3: 14.300666256712\n    test 1912 266 266.002226669943 Xi(tan=14.3087, x=-0.140061, y=-2.00409), iteration=3: 14.300666256712\n\n    test 1913 266 266.020026926530 Phi(tan=14.3729, x=-0.0694078, y=-0.997588): 14.300666256712\n    test 1914 266 266.006681184269 Beta(tan=14.3247, x=-0.0696401, y=-0.997572): 14.300666256712\n    test 1915 266 265.993290981931 Theta(tan=14.2766, x=-0.0698733, y=-0.997556): 14.300666256712\n    test 1916 266 266.000000000000 Mu(tan=14.3007, x=-0.0697565, y=-0.997564): 14.300666256712\n    test 1917 266 265.993320826309 Chi(tan=14.2767, x=-0.0698728, y=-0.997556): 14.300666256712\n    test 1918 266 266.002226669943 Xi(tan=14.3087, x=-0.0697177, y=-0.997567): 14.300666256712\n\n    test 1919 273 272.984958603323 Phi(tan=-19.1775, x=1.0, y=-19.1775): -19.081136687728\n    test 1920 273 272.994982020871 Beta(tan=-19.1132, x=1.0, y=-19.1132): -19.081136687728\n    test 1921 273 273.005038973685 Theta(tan=-19.0491, x=1.0, y=-19.0491): -19.081136687728\n    test 1922 273 273.000000000000 Mu(tan=-19.0811, x=0.052336, y=-0.99863): -19.081136687728\n    test 1923 273 273.005016510682 Chi(tan=-19.0492, x=1.0, y=-19.0492), iteration=3: -19.081136687728\n    test 1924 273 272.998327629166 Xi(tan=-19.0918, x=0.105083, y=-2.00623), iteration=3: -19.081136687728\n\n    test 1925 273 272.984958603323 Phi(tan=-19.1775, x=0.0520738, y=-0.998643): -19.081136687728\n    test 1926 273 272.994982020871 Beta(tan=-19.1132, x=0.0522485, y=-0.998634): -19.081136687728\n    test 1927 273 273.005038973685 Theta(tan=-19.0491, x=0.0524238, y=-0.998625): -19.081136687728\n    test 1928 273 273.000000000000 Mu(tan=-19.0811, x=0.052336, y=-0.99863): -19.081136687728\n    test 1929 273 273.005016510682 Chi(tan=-19.0492, x=0.0524234, y=-0.998625): -19.081136687728\n    test 1930 273 272.998327629166 Xi(tan=-19.0918, x=0.0523068, y=-0.998631): -19.081136687728\n\n    test 1931 280 279.950776225319 Phi(tan=-5.69991, x=1.0, y=-5.69991): -5.671281819618\n    test 1932 280 279.983579145989 Beta(tan=-5.6808, x=1.0, y=-5.6808): -5.671281819618\n    test 1933 280 280.016485774700 Theta(tan=-5.66176, x=1.0, y=-5.66176): -5.671281819618\n    test 1934 280 280.000000000000 Mu(tan=-5.67128, x=0.173648, y=-0.984808): -5.671281819618\n    test 1935 280 280.016414293005 Chi(tan=-5.6618, x=1.0, y=-5.6618), iteration=3: -5.671281819618\n    test 1936 280 279.994527544579 Xi(tan=-5.67445, x=0.348667, y=-1.97849), iteration=3: -5.671281819618\n\n    test 1937 280 279.950776225319 Phi(tan=-5.69991, x=0.172802, y=-0.984957): -5.671281819618\n    test 1938 280 279.983579145989 Beta(tan=-5.6808, x=0.173366, y=-0.984857): -5.671281819618\n    test 1939 280 280.016485774700 Theta(tan=-5.66176, x=0.173932, y=-0.984758): -5.671281819618\n    test 1940 280 280.000000000000 Mu(tan=-5.67128, x=0.173648, y=-0.984808): -5.671281819618\n    test 1941 280 280.016414293005 Chi(tan=-5.6618, x=0.17393, y=-0.984758): -5.671281819618\n    test 1942 280 279.994527544579 Xi(tan=-5.67445, x=0.173554, y=-0.984824): -5.671281819618\n\n    test 1943 287 286.919494515865 Phi(tan=-3.28737, x=1.0, y=-3.28737): -3.270852618484\n    test 1944 287 286.973146172898 Beta(tan=-3.27634, x=1.0, y=-3.27634): -3.270852618484\n    test 1945 287 287.026947513630 Theta(tan=-3.26536, x=1.0, y=-3.26536): -3.270852618484\n    test 1946 287 287.000000000000 Mu(tan=-3.27085, x=0.292372, y=-0.956305): -3.270852618484\n    test 1947 287 287.026837302239 Chi(tan=-3.26538, x=1.0, y=-3.26538), iteration=3: -3.270852618484\n    test 1948 287 286.991051342914 Xi(tan=-3.27268, x=0.587069, y=-1.92129), iteration=3: -3.270852618484\n\n    test 1949 287 286.919494515865 Phi(tan=-3.28737, x=0.291028, y=-0.956715): -3.270852618484\n    test 1950 287 286.973146172898 Beta(tan=-3.27634, x=0.291923, y=-0.956442): -3.270852618484\n    test 1951 287 287.026947513630 Theta(tan=-3.26536, x=0.292821, y=-0.956167): -3.270852618484\n    test 1952 287 287.000000000000 Mu(tan=-3.27085, x=0.292372, y=-0.956305): -3.270852618484\n    test 1953 287 287.026837302239 Chi(tan=-3.26538, x=0.29282, y=-0.956168): -3.270852618484\n    test 1954 287 286.991051342914 Xi(tan=-3.27268, x=0.292222, y=-0.95635): -3.270852618484\n\n    test 1955 294 293.892961362638 Phi(tan=-2.25738, x=1.0, y=-2.25738): -2.246036773904\n    test 1956 294 293.964300405205 Beta(tan=-2.24981, x=1.0, y=-2.24981): -2.246036773904\n    test 1957 294 294.035800165821 Theta(tan=-2.24227, x=1.0, y=-2.24227): -2.246036773904\n    test 1958 294 294.000000000000 Mu(tan=-2.24604, x=0.406737, y=-0.913545): -2.246036773904\n    test 1959 294 294.035666490170 Chi(tan=-2.24228, x=1.0, y=-2.24228), iteration=3: -2.246036773904\n    test 1960 294 293.988104995444 Xi(tan=-2.24729, x=0.816745, y=-1.83546), iteration=3: -2.246036773904\n\n    test 1961 294 293.892961362638 Phi(tan=-2.25738, x=0.405029, y=-0.914304): -2.246036773904\n    test 1962 294 293.964300405205 Beta(tan=-2.24981, x=0.406167, y=-0.913799): -2.246036773904\n    test 1963 294 294.035800165821 Theta(tan=-2.24227, x=0.407307, y=-0.913291): -2.246036773904\n    test 1964 294 294.000000000000 Mu(tan=-2.24604, x=0.406737, y=-0.913545): -2.246036773904\n    test 1965 294 294.035666490170 Chi(tan=-2.24228, x=0.407305, y=-0.913292): -2.246036773904\n    test 1966 294 293.988104995444 Xi(tan=-2.24729, x=0.406547, y=-0.91363): -2.246036773904\n\n    test 1967 301 300.872750492296 Phi(tan=-1.67268, x=1.0, y=-1.67268): -1.664279482351\n    test 1968 301 300.957566748779 Beta(tan=-1.66707, x=1.0, y=-1.66707): -1.664279482351\n    test 1969 301 301.042517212699 Theta(tan=-1.66149, x=1.0, y=-1.66149): -1.664279482351\n    test 1970 301 301.000000000000 Mu(tan=-1.66428, x=0.515038, y=-0.857167): -1.664279482351\n    test 1971 301 301.042377369066 Chi(tan=-1.66149, x=1.0, y=-1.66149), iteration=3: -1.664279482351\n    test 1972 301 300.985863408886 Xi(tan=-1.66521, x=1.03428, y=-1.72229), iteration=2: -1.664279482351\n\n    test 1973 301 300.872750492296 Phi(tan=-1.67268, x=0.513133, y=-0.858309): -1.664279482351\n    test 1974 301 300.957566748779 Beta(tan=-1.66707, x=0.514403, y=-0.857549): -1.664279482351\n    test 1975 301 301.042517212699 Theta(tan=-1.66149, x=0.515674, y=-0.856785): -1.664279482351\n    test 1976 301 301.000000000000 Mu(tan=-1.66428, x=0.515038, y=-0.857167): -1.664279482351\n    test 1977 301 301.042377369066 Chi(tan=-1.66149, x=0.515672, y=-0.856786): -1.664279482351\n    test 1978 301 300.985863408886 Xi(tan=-1.66521, x=0.514827, y=-0.857294): -1.664279482351\n\n    test 1979 308 307.860068599875 Phi(tan=-1.28641, x=1.0, y=-1.28641): -1.279941632193\n    test 1980 308 307.953346674264 Beta(tan=-1.28209, x=1.0, y=-1.28209): -1.279941632193\n    test 1981 308 308.046701061231 Theta(tan=-1.27779, x=1.0, y=-1.27779): -1.279941632193\n    test 1982 308 308.000000000000 Mu(tan=-1.27994, x=0.615661, y=-0.788011): -1.279941632193\n    test 1983 308 308.046571160545 Chi(tan=-1.2778, x=1.0, y=-1.2778), iteration=3: -1.279941632193\n    test 1984 308 307.984460065878 Xi(tan=-1.28066, x=1.23642, y=-1.58343), iteration=3: -1.279941632193\n\n    test 1985 308 307.860068599875 Phi(tan=-1.28641, x=0.613735, y=-0.789512): -1.279941632193\n    test 1986 308 307.953346674264 Beta(tan=-1.28209, x=0.61502, y=-0.788512): -1.279941632193\n    test 1987 308 308.046701061231 Theta(tan=-1.27779, x=0.616304, y=-0.787509): -1.279941632193\n    test 1988 308 308.000000000000 Mu(tan=-1.27994, x=0.615661, y=-0.788011): -1.279941632193\n    test 1989 308 308.046571160545 Chi(tan=-1.2778, x=0.616302, y=-0.78751): -1.279941632193\n    test 1990 308 307.984460065878 Xi(tan=-1.28066, x=0.615448, y=-0.788178): -1.279941632193\n\n    test 1991 315 314.855682294112 Phi(tan=-1.00505, x=1.0, y=-1.00505): -1.000000000000\n    test 1992 315 314.951894037750 Beta(tan=-1.00168, x=1.0, y=-1.00168): -1.000000000000\n    test 1993 315 315.048106323978 Theta(tan=-0.998322, x=1.0, y=-0.998322): -1.000000000000\n    test 1994 315 315.000000000000 Mu(tan=-1, x=0.707107, y=-0.707107): -1.000000000000\n    test 1995 315 315.047998507775 Chi(tan=-0.998326, x=1.0, y=-0.998326), iteration=3: -1.000000000000\n    test 1996 315 314.983979022806 Xi(tan=-1.00056, x=1.42017, y=-1.42096), iteration=2: -1.000000000000\n\n    test 1997 315 314.855682294112 Phi(tan=-1.00505, x=0.705323, y=-0.708886): -1.000000000000\n    test 1998 315 314.951894037750 Beta(tan=-1.00168, x=0.706513, y=-0.7077): -1.000000000000\n    test 1999 315 315.048106323978 Theta(tan=-0.998322, x=0.7077, y=-0.706513): -1.000000000000\n    test 2000 315 315.000000000000 Mu(tan=-1, x=0.707107, y=-0.707107): -1.000000000000\n    test 2001 315 315.047998507775 Chi(tan=-0.998326, x=0.707699, y=-0.706514): -1.000000000000\n    test 2002 315 314.983979022806 Xi(tan=-1.00056, x=0.706909, y=-0.707304): -1.000000000000\n\n    test 2003 322 321.859869499768 Phi(tan=-0.785232, x=1.0, y=-0.785232): -0.781285626507\n    test 2004 322 321.953299269346 Beta(tan=-0.782599, x=1.0, y=-0.782599): -0.781285626507\n    test 2005 322 322.046653656044 Theta(tan=-0.779975, x=1.0, y=-0.779975): -0.781285626507\n    test 2006 322 322.000000000000 Mu(tan=-0.781286, x=0.788011, y=-0.615661): -0.781285626507\n    test 2007 322 322.046574337734 Chi(tan=-0.779977, x=1.0, y=-0.779977), iteration=2: -0.781285626507\n    test 2008 322 321.984449756665 Xi(tan=-0.781723, x=1.58276, y=-1.23728), iteration=3: -0.781285626507\n\n    test 2009 322 321.859869499768 Phi(tan=-0.785232, x=0.786503, y=-0.617587): -0.781285626507\n    test 2010 322 321.953299269346 Beta(tan=-0.782599, x=0.787509, y=-0.616304): -0.781285626507\n    test 2011 322 322.046653656044 Theta(tan=-0.779975, x=0.788512, y=-0.61502): -0.781285626507\n    test 2012 322 322.000000000000 Mu(tan=-0.781286, x=0.788011, y=-0.615661): -0.781285626507\n    test 2013 322 322.046574337734 Chi(tan=-0.779977, x=0.788511, y=-0.615021): -0.781285626507\n    test 2014 322 321.984449756665 Xi(tan=-0.781723, x=0.787844, y=-0.615875): -0.781285626507\n\n    test 2015 329 328.872398901328 Phi(tan=-0.603896, x=1.0, y=-0.603896): -0.600860619028\n    test 2016 329 328.957483036491 Beta(tan=-0.601871, x=1.0, y=-0.601871): -0.600860619028\n    test 2017 329 329.042433500019 Theta(tan=-0.599853, x=1.0, y=-0.599853): -0.600860619028\n    test 2018 329 329.000000000000 Mu(tan=-0.600861, x=0.857167, y=-0.515038): -0.600860619028\n    test 2019 329 329.042382979662 Chi(tan=-0.599854, x=1.0, y=-0.599854), iteration=3: -0.600860619028\n    test 2020 329 328.985845203875 Xi(tan=-0.601197, x=1.72178, y=-1.03513), iteration=2: -0.600860619028\n\n    test 2021 329 328.872398901328 Phi(tan=-0.603896, x=0.856018, y=-0.516946): -0.600860619028\n    test 2022 329 328.957483036491 Beta(tan=-0.601871, x=0.856785, y=-0.515674): -0.600860619028\n    test 2023 329 329.042433500019 Theta(tan=-0.599853, x=0.857549, y=-0.514403): -0.600860619028\n    test 2024 329 329.000000000000 Mu(tan=-0.600861, x=0.857167, y=-0.515038): -0.600860619028\n    test 2025 329 329.042382979662 Chi(tan=-0.599854, x=0.857548, y=-0.514404): -0.600860619028\n    test 2026 329 328.985845203875 Xi(tan=-0.601197, x=0.85704, y=-0.51525): -0.600860619028\n\n    test 2027 336 335.892539588775 Phi(tan=-0.447478, x=1.0, y=-0.447478): -0.445228685309\n    test 2028 336 335.964199982805 Beta(tan=-0.445978, x=1.0, y=-0.445978): -0.445228685309\n    test 2029 336 336.035699743087 Theta(tan=-0.444482, x=1.0, y=-0.444482): -0.445228685309\n    test 2030 336 336.000000000000 Mu(tan=-0.445229, x=0.913545, y=-0.406737): -0.445228685309\n    test 2031 336 336.035673220720 Chi(tan=-0.444483, x=1.0, y=-0.444483), iteration=2: -0.445228685309\n    test 2032 336 335.988083156490 Xi(tan=-0.445478, x=1.83512, y=-0.817507), iteration=3: -0.445228685309\n\n    test 2033 336 335.892539588775 Phi(tan=-0.447478, x=0.912781, y=-0.408449): -0.445228685309\n    test 2034 336 335.964199982805 Beta(tan=-0.445978, x=0.913291, y=-0.407307): -0.445228685309\n    test 2035 336 336.035699743087 Theta(tan=-0.444482, x=0.913799, y=-0.406167): -0.445228685309\n    test 2036 336 336.000000000000 Mu(tan=-0.445229, x=0.913545, y=-0.406737): -0.445228685309\n    test 2037 336 336.035673220720 Chi(tan=-0.444483, x=0.913799, y=-0.406168): -0.445228685309\n    test 2038 336 335.988083156490 Xi(tan=-0.445478, x=0.913461, y=-0.406927): -0.445228685309\n\n    test 2039 343 342.919101298136 Phi(tan=-0.307275, x=1.0, y=-0.307275): -0.305730681459\n    test 2040 343 342.973052549710 Beta(tan=-0.306245, x=1.0, y=-0.306245): -0.305730681459\n    test 2041 343 343.026853890266 Theta(tan=-0.305218, x=1.0, y=-0.305218): -0.305730681459\n    test 2042 343 343.000000000000 Mu(tan=-0.305731, x=0.956305, y=-0.292372): -0.305730681459\n    test 2043 343 343.026843577092 Chi(tan=-0.305218, x=1.0, y=-0.305218), iteration=3: -0.305730681459\n    test 2044 343 342.991030982615 Xi(tan=-0.305902, x=1.92111, y=-0.58767), iteration=3: -0.305730681459\n\n    test 2045 343 342.919101298136 Phi(tan=-0.307275, x=0.955891, y=-0.293722): -0.305730681459\n    test 2046 343 342.973052549710 Beta(tan=-0.306245, x=0.956167, y=-0.292821): -0.305730681459\n    test 2047 343 343.026853890266 Theta(tan=-0.305218, x=0.956442, y=-0.291923): -0.305730681459\n    test 2048 343 343.000000000000 Mu(tan=-0.305731, x=0.956305, y=-0.292372): -0.305730681459\n    test 2049 343 343.026843577092 Chi(tan=-0.305218, x=0.956442, y=-0.291924): -0.305730681459\n    test 2050 343 342.991030982615 Xi(tan=-0.305902, x=0.956259, y=-0.292521): -0.305730681459\n\n    test 2051 350 349.950503618765 Phi(tan=-0.177218, x=1.0, y=-0.177218): -0.176326980708\n    test 2052 350 349.983514239795 Beta(tan=-0.176624, x=1.0, y=-0.176624): -0.176326980708\n    test 2053 350 350.016420868461 Theta(tan=-0.176031, x=1.0, y=-0.176031): -0.176326980708\n    test 2054 350 350.000000000000 Mu(tan=-0.176327, x=0.984808, y=-0.173648): -0.176326980708\n    test 2055 350 350.016418643178 Chi(tan=-0.176032, x=1.0, y=-0.176032), iteration=3: -0.176326980708\n    test 2056 350 349.994513429399 Xi(tan=-0.176426, x=1.97843, y=-0.349045), iteration=3: -0.176326980708\n\n    test 2057 350 349.950503618765 Phi(tan=-0.177218, x=0.984657, y=-0.174499): -0.176326980708\n    test 2058 350 349.983514239795 Beta(tan=-0.176624, x=0.984758, y=-0.173932): -0.176326980708\n    test 2059 350 350.016420868461 Theta(tan=-0.176031, x=0.984857, y=-0.173366): -0.176326980708\n    test 2060 350 350.000000000000 Mu(tan=-0.176327, x=0.984808, y=-0.173648): -0.176326980708\n    test 2061 350 350.016418643178 Chi(tan=-0.176032, x=0.984857, y=-0.173366): -0.176326980708\n    test 2062 350 349.994513429399 Xi(tan=-0.176426, x=0.984791, y=-0.173742): -0.176326980708\n\n    test 2063 357 356.984870427697 Phi(tan=-0.0526726, x=1.0, y=-0.0526726): -0.052407779283\n    test 2064 357 356.994961026729 Beta(tan=-0.052496, x=1.0, y=-0.052496): -0.052407779283\n    test 2065 357 357.005017979541 Theta(tan=-0.05232, x=1.0, y=-0.05232): -0.052407779283\n    test 2066 357 357.000000000000 Mu(tan=-0.0524078, x=0.99863, y=-0.052336): -0.052407779283\n    test 2067 357 357.005017917762 Chi(tan=-0.05232, x=1.0, y=-0.05232), iteration=3: -0.052407779283\n    test 2068 357 356.998323063562 Xi(tan=-0.0524371, x=2.00622, y=-0.105201), iteration=3: -0.052407779283\n\n    test 2069 357 356.984870427697 Phi(tan=-0.0526726, x=0.998616, y=-0.0525997): -0.052407779283\n    test 2070 357 356.994961026729 Beta(tan=-0.052496, x=0.998625, y=-0.0524238): -0.052407779283\n    test 2071 357 357.005017979541 Theta(tan=-0.05232, x=0.998634, y=-0.0522485): -0.052407779283\n    test 2072 357 357.000000000000 Mu(tan=-0.0524078, x=0.99863, y=-0.052336): -0.052407779283\n    test 2073 357 357.005017917762 Chi(tan=-0.05232, x=0.998634, y=-0.0522485): -0.052407779283\n    test 2074 357 356.998323063562 Xi(tan=-0.0524371, x=0.998628, y=-0.0523652): -0.052407779283\n\n    test 2075  0 0.000000000000 Phi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 2076  0 0.000000000000 Beta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 2077  0 0.000000000000 Theta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 2078  0 0.000000000000 Mu(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 2079  0 0.000000000000 Chi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 2080  0 0.000000000000 Xi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n\n    test 2081  0 0.000000000000 Phi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 2082  0 0.000000000000 Beta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 2083  0 0.000000000000 Theta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 2084  0 0.000000000000 Mu(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 2085  0 0.000000000000 Chi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 2086  0 0.000000000000 Xi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n\n    test 2087  7 7.000000000000 Phi(tan=0.122785, x=0.992546, y=0.121869): 0.122784560903\n    test 2088  7 6.976762016136 Beta(tan=0.122373, x=0.992546, y=0.121461): 0.122784560903\n    test 2089  7 6.953599649493 Theta(tan=0.121963, x=0.992546, y=0.121054): 0.122784560903\n    test 2090  7 6.965157241116 Mu(tan=0.122167, x=0.99262, y=0.121266), iteration=3: 0.122784560903\n    test 2091  7 6.953600413381 Chi(tan=0.121963, x=1.0, y=0.121963), iteration=2: 0.122784560903\n    test 2092  7 6.969019299974 Xi(tan=0.122236, x=1.99414, y=0.243755), iteration=3: 0.122784560903\n\n    test 2093  7 7.000000000000 Phi(tan=0.122785, x=0.992546, y=0.121869): 0.122784560903\n    test 2094  7 6.976762016136 Beta(tan=0.122373, x=0.992595, y=0.121467): 0.122784560903\n    test 2095  7 6.953599649493 Theta(tan=0.121963, x=0.992645, y=0.121066): 0.122784560903\n    test 2096  7 6.965157241116 Mu(tan=0.122167, x=0.99262, y=0.121266): 0.122784560903\n    test 2097  7 6.953600413381 Chi(tan=0.121963, x=0.992645, y=0.121066): 0.122784560903\n    test 2098  7 6.969019299974 Xi(tan=0.122236, x=0.992612, y=0.121333): 0.122784560903\n\n    test 2099 14 14.000000000000 Phi(tan=0.249328, x=0.970296, y=0.241922): 0.249328002843\n    test 2100 14 13.954897969322 Beta(tan=0.248492, x=0.970296, y=0.241111): 0.249328002843\n    test 2101 14 13.909929594324 Theta(tan=0.247659, x=0.970296, y=0.240302): 0.249328002843\n    test 2102 14 13.932372077582 Mu(tan=0.248075, x=0.970581, y=0.240776), iteration=3: 0.249328002843\n    test 2103 14 13.909935440611 Chi(tan=0.247659, x=1.0, y=0.247659), iteration=3: 0.249328002843\n    test 2104 14 13.939869149632 Xi(tan=0.248214, x=1.94981, y=0.48397), iteration=3: 0.249328002843\n\n    test 2105 14 14.000000000000 Phi(tan=0.249328, x=0.970296, y=0.241922): 0.249328002843\n    test 2106 14 13.954897969322 Beta(tan=0.248492, x=0.970486, y=0.241158): 0.249328002843\n    test 2107 14 13.909929594324 Theta(tan=0.247659, x=0.970675, y=0.240396): 0.249328002843\n    test 2108 14 13.932372077582 Mu(tan=0.248075, x=0.970581, y=0.240776): 0.249328002843\n    test 2109 14 13.909935440611 Chi(tan=0.247659, x=0.970675, y=0.240396): 0.249328002843\n    test 2110 14 13.939869149632 Xi(tan=0.248214, x=0.970549, y=0.240903): 0.249328002843\n\n    test 2111 21 21.000000000000 Phi(tan=0.383864, x=0.93358, y=0.358368): 0.383864035035\n    test 2112 21 20.935701709947 Beta(tan=0.382577, x=0.93358, y=0.357166): 0.383864035035\n    test 2113 21 20.871564019024 Theta(tan=0.381294, x=0.93358, y=0.355969): 0.383864035035\n    test 2114 21 20.903582743391 Mu(tan=0.381935, x=0.934182, y=0.356796), iteration=3: 0.383864035035\n    test 2115 21 20.871582327745 Chi(tan=0.381295, x=1.0, y=0.381295), iteration=2: 0.383864035035\n    test 2116 21 20.914273669704 Xi(tan=0.382148, x=1.87662, y=0.717147), iteration=3: 0.383864035035\n\n    test 2117 21 21.000000000000 Phi(tan=0.383864, x=0.93358, y=0.358368): 0.383864035035\n    test 2118 21 20.935701709947 Beta(tan=0.382577, x=0.933982, y=0.35732): 0.383864035035\n    test 2119 21 20.871564019024 Theta(tan=0.381294, x=0.934381, y=0.356274): 0.383864035035\n    test 2120 21 20.903582743391 Mu(tan=0.381935, x=0.934182, y=0.356796): 0.383864035035\n    test 2121 21 20.871582327745 Chi(tan=0.381295, x=0.934381, y=0.356275): 0.383864035035\n    test 2122 21 20.914273669703 Xi(tan=0.382148, x=0.934116, y=0.356971): 0.383864035035\n\n    test 2123 28 28.000000000000 Phi(tan=0.531709, x=0.882948, y=0.469472): 0.531709431661\n    test 2124 28 27.920311317014 Beta(tan=0.529927, x=0.882948, y=0.467898): 0.531709431661\n    test 2125 28 27.840772765521 Theta(tan=0.52815, x=0.882948, y=0.466329): 0.531709431661\n    test 2126 28 27.880495175823 Mu(tan=0.529037, x=0.883925, y=0.467629), iteration=3: 0.531709431661\n    test 2127 28 27.840811762412 Chi(tan=0.528151, x=1.0, y=0.528151), iteration=2: 0.531709431661\n    test 2128 28 27.893749908688 Xi(tan=0.529333, x=1.77557, y=0.939868), iteration=2: 0.531709431661\n\n    test 2129 28 28.000000000000 Phi(tan=0.531709, x=0.882948, y=0.469472): 0.531709431661\n    test 2130 28 27.920311317014 Beta(tan=0.529927, x=0.8836, y=0.468243): 0.531709431661\n    test 2131 28 27.840772765521 Theta(tan=0.52815, x=0.884249, y=0.467016): 0.531709431661\n    test 2132 28 27.880495175823 Mu(tan=0.529037, x=0.883925, y=0.467629): 0.531709431661\n    test 2133 28 27.840811762412 Chi(tan=0.528151, x=0.884249, y=0.467017): 0.531709431661\n    test 2134 28 27.893749908688 Xi(tan=0.529333, x=0.883817, y=0.467833): 0.531709431661\n\n    test 2135 35 35.000000000000 Phi(tan=0.700208, x=0.819152, y=0.573576): 0.700207538210\n    test 2136 35 34.909642037079 Beta(tan=0.69786, x=0.819152, y=0.571653): 0.700207538210\n    test 2137 35 34.819388702350 Theta(tan=0.69552, x=0.819152, y=0.569737): 0.700207538210\n    test 2138 35 34.864482701692 Mu(tan=0.696688, x=0.820506, y=0.571637), iteration=3: 0.700207538210\n    test 2139 35 34.819454815840 Chi(tan=0.695522, x=1.0, y=0.695522), iteration=3: 0.700207538210\n    test 2140 35 34.879518549737 Xi(tan=0.697078, x=1.64808, y=1.14884), iteration=3: 0.700207538210\n\n    test 2141 35 35.000000000000 Phi(tan=0.700208, x=0.819152, y=0.573576): 0.700207538210\n    test 2142 35 34.909642037079 Beta(tan=0.69786, x=0.820056, y=0.572284): 0.700207538210\n    test 2143 35 34.819388702350 Theta(tan=0.69552, x=0.820956, y=0.570991): 0.700207538210\n    test 2144 35 34.864482701692 Mu(tan=0.696688, x=0.820506, y=0.571637): 0.700207538210\n    test 2145 35 34.819454815840 Chi(tan=0.695522, x=0.820955, y=0.570992): 0.700207538210\n    test 2146 35 34.879518549737 Xi(tan=0.697078, x=0.820356, y=0.571853): 0.700207538210\n\n    test 2147 42 42.000000000000 Phi(tan=0.900404, x=0.743145, y=0.669131): 0.900404044298\n    test 2148 42 41.904331700939 Beta(tan=0.897385, x=0.743145, y=0.666887): 0.900404044298\n    test 2149 42 41.808698047037 Theta(tan=0.894376, x=0.743145, y=0.664651): 0.900404044298\n    test 2150 42 41.856504060443 Mu(tan=0.895879, x=0.744818, y=0.667267), iteration=2: 0.900404044298\n    test 2151 42 41.808793486106 Chi(tan=0.894379, x=1.0, y=0.894379), iteration=3: 0.900404044298\n    test 2152 42 41.872431075863 Xi(tan=0.896381, x=1.49595, y=1.34094), iteration=3: 0.900404044298\n\n    test 2153 42 42.000000000000 Phi(tan=0.900404, x=0.743145, y=0.669131): 0.900404044298\n    test 2154 42 41.904331700939 Beta(tan=0.897385, x=0.744261, y=0.667889): 0.900404044298\n    test 2155 42 41.808698047037 Theta(tan=0.894376, x=0.745375, y=0.666646): 0.900404044298\n    test 2156 42 41.856504060443 Mu(tan=0.895879, x=0.744818, y=0.667267): 0.900404044298\n    test 2157 42 41.808793486106 Chi(tan=0.894379, x=0.745374, y=0.666647): 0.900404044298\n    test 2158 42 41.872431075863 Xi(tan=0.896381, x=0.744633, y=0.667474): 0.900404044298\n\n    test 2159 49 49.000000000000 Phi(tan=1.15037, x=0.656059, y=0.75471): 1.150368407221\n    test 2160 49 48.904701906378 Beta(tan=1.14651, x=0.656059, y=0.752179): 1.150368407221\n    test 2161 49 48.809360314692 Theta(tan=1.14267, x=0.656059, y=0.749657): 1.150368407221\n    test 2162 49 48.857044717775 Mu(tan=1.14459, x=0.65794, y=0.75307), iteration=3: 1.150368407221\n    test 2163 49 48.809481485365 Chi(tan=1.14267, x=1.0, y=1.14267), iteration=2: 1.150368407221\n    test 2164 49 48.872917788725 Xi(tan=1.14523, x=1.32137, y=1.51327), iteration=2: 1.150368407221\n\n    test 2165 49 49.000000000000 Phi(tan=1.15037, x=0.656059, y=0.75471): 1.150368407221\n    test 2166 49 48.904701906378 Beta(tan=1.14651, x=0.657313, y=0.753617): 1.150368407221\n    test 2167 49 48.809360314692 Theta(tan=1.14267, x=0.658567, y=0.752523): 1.150368407221\n    test 2168 49 48.857044717775 Mu(tan=1.14459, x=0.65794, y=0.75307): 1.150368407221\n    test 2169 49 48.809481485365 Chi(tan=1.14267, x=0.658565, y=0.752524): 1.150368407221\n    test 2170 49 48.872917788725 Xi(tan=1.14523, x=0.657731, y=0.753253): 1.150368407221\n\n    test 2171 56 56.000000000000 Phi(tan=1.48256, x=0.559193, y=0.829038): 1.482560968513\n    test 2172 56 55.910737485374 Beta(tan=1.47759, x=0.559193, y=0.826258): 1.482560968513\n    test 2173 56 55.821363467296 Theta(tan=1.47264, x=0.559193, y=0.823488): 1.482560968513\n    test 2174 56 55.866085351958 Mu(tan=1.47511, x=0.561129, y=0.827728), iteration=3: 1.482560968513\n    test 2175 56 55.821500669702 Chi(tan=1.47264, x=1.0, y=1.47264), iteration=3: 1.482560968513\n    test 2176 56 55.880960089169 Xi(tan=1.47594, x=1.12687, y=1.66318), iteration=3: 1.482560968513\n\n    test 2177 56 56.000000000000 Phi(tan=1.48256, x=0.559193, y=0.829038): 1.482560968513\n    test 2178 56 55.910737485374 Beta(tan=1.47759, x=0.560484, y=0.828165): 1.482560968513\n    test 2179 56 55.821363467296 Theta(tan=1.47264, x=0.561775, y=0.82729): 1.482560968513\n    test 2180 56 55.866085351958 Mu(tan=1.47511, x=0.561129, y=0.827728): 1.482560968513\n    test 2181 56 55.821500669702 Chi(tan=1.47264, x=0.561773, y=0.827291): 1.482560968513\n    test 2182 56 55.880960089169 Xi(tan=1.47594, x=0.560914, y=0.827874): 1.482560968513\n\n    test 2183 63 63.000000000000 Phi(tan=1.96261, x=0.45399, y=0.891007): 1.962610505505\n    test 2184 63 62.922085806991 Beta(tan=1.95603, x=0.45399, y=0.888019): 1.962610505505\n    test 2185 63 62.844018233783 Theta(tan=1.94947, x=0.45399, y=0.885042): 1.962610505505\n    test 2186 63 62.883100004844 Mu(tan=1.95275, x=0.455807, y=0.890078), iteration=3: 1.962610505505\n    test 2187 63 62.844156794245 Chi(tan=1.94948, x=1.0, y=1.94948), iteration=3: 1.962610505505\n    test 2188 63 62.896089166605 Xi(tan=1.95384, x=0.915303, y=1.78836), iteration=3: 1.962610505505\n\n    test 2189 63 63.000000000000 Phi(tan=1.96261, x=0.45399, y=0.891007): 1.962610505505\n    test 2190 63 62.922085806991 Beta(tan=1.95603, x=0.455202, y=0.890388): 1.962610505505\n    test 2191 63 62.844018233783 Theta(tan=1.94947, x=0.456414, y=0.889767): 1.962610505505\n    test 2192 63 62.883100004844 Mu(tan=1.95275, x=0.455807, y=0.890078): 1.962610505505\n    test 2193 63 62.844156794245 Chi(tan=1.94948, x=0.456412, y=0.889768): 1.962610505505\n    test 2194 63 62.896089166605 Xi(tan=1.95384, x=0.455606, y=0.890182): 1.962610505505\n\n    test 2195 70 70.000000000000 Phi(tan=2.74748, x=0.34202, y=0.939693): 2.747477419455\n    test 2196 70 69.938076331685 Beta(tan=2.73827, x=0.34202, y=0.936542): 2.747477419455\n    test 2197 70 69.875993436424 Theta(tan=2.72908, x=0.34202, y=0.933402): 2.747477419455\n    test 2198 70 69.907084709374 Mu(tan=2.73368, x=0.343544, y=0.939137), iteration=2: 2.747477419455\n    test 2199 70 69.876116092580 Chi(tan=2.7291, x=1.0, y=2.7291), iteration=3: 2.747477419455\n    test 2200 70 69.917411740864 Xi(tan=2.7352, x=0.689832, y=1.88683), iteration=3: 2.747477419455\n\n    test 2201 70 70.000000000000 Phi(tan=2.74748, x=0.34202, y=0.939693): 2.747477419455\n    test 2202 70 69.938076331685 Beta(tan=2.73827, x=0.343036, y=0.939322): 2.747477419455\n    test 2203 70 69.875993436424 Theta(tan=2.72908, x=0.344053, y=0.93895): 2.747477419455\n    test 2204 70 69.907084709374 Mu(tan=2.73368, x=0.343544, y=0.939137): 2.747477419455\n    test 2205 70 69.876116092580 Chi(tan=2.7291, x=0.344051, y=0.938951): 2.747477419455\n    test 2206 70 69.917411740864 Xi(tan=2.7352, x=0.343374, y=0.939199): 2.747477419455\n\n    test 2207 77 77.000000000000 Phi(tan=4.33148, x=0.224951, y=0.97437): 4.331475874284\n    test 2208 77 76.957759584883 Beta(tan=4.31695, x=0.224951, y=0.971103): 4.331475874284\n    test 2209 77 76.915391564534 Theta(tan=4.30248, x=0.224951, y=0.967847): 4.331475874284\n    test 2210 77 76.936615512426 Mu(tan=4.30972, x=0.226029, y=0.974121), iteration=3: 4.331475874284\n    test 2211 77 76.915481614667 Chi(tan=4.30251, x=1.0, y=4.30251), iteration=3: 4.331475874284\n    test 2212 77 76.943661825901 Xi(tan=4.31213, x=0.453847, y=1.95704), iteration=3: 4.331475874284\n\n    test 2213 77 77.000000000000 Phi(tan=4.33148, x=0.224951, y=0.97437): 4.331475874284\n    test 2214 77 76.957759584883 Beta(tan=4.31695, x=0.225669, y=0.974204): 4.331475874284\n    test 2215 77 76.915391564534 Theta(tan=4.30248, x=0.22639, y=0.974037): 4.331475874284\n    test 2216 77 76.936615512426 Mu(tan=4.30972, x=0.226029, y=0.974121): 4.331475874284\n    test 2217 77 76.915481614667 Chi(tan=4.30251, x=0.226388, y=0.974037): 4.331475874284\n    test 2218 77 76.943661825901 Xi(tan=4.31213, x=0.225909, y=0.974148): 4.331475874284\n\n    test 2219 84 84.000000000000 Phi(tan=9.51436, x=0.104528, y=0.994522): 9.514364454223\n    test 2220 84 83.979963440552 Beta(tan=9.48246, x=0.104528, y=0.991187): 9.514364454223\n    test 2221 84 83.959860961536 Theta(tan=9.45067, x=0.104528, y=0.987864): 9.514364454223\n    test 2222 84 83.969932834829 Mu(tan=9.46657, x=0.10505, y=0.994467), iteration=3: 9.514364454223\n    test 2223 84 83.959905488972 Chi(tan=9.45074, x=1.0, y=9.45074), iteration=3: 9.514364454223\n    test 2224 84 83.973275752467 Xi(tan=9.47186, x=0.210927, y=1.99788), iteration=3: 9.514364454223\n\n    test 2225 84 84.000000000000 Phi(tan=9.51436, x=0.104528, y=0.994522): 9.514364454223\n    test 2226 84 83.979963440552 Beta(tan=9.48246, x=0.104876, y=0.994485): 9.514364454223\n    test 2227 84 83.959860961536 Theta(tan=9.45067, x=0.105225, y=0.994448): 9.514364454223\n    test 2228 84 83.969932834829 Mu(tan=9.46657, x=0.10505, y=0.994467): 9.514364454223\n    test 2229 84 83.959905488972 Chi(tan=9.45074, x=0.105224, y=0.994449): 9.514364454223\n    test 2230 84 83.973275752467 Xi(tan=9.47186, x=0.104992, y=0.994473): 9.514364454223\n\n    test 2231 91 91.000000000000 Phi(tan=-57.29, x=-0.0174524, y=0.999848): -57.289961630759\n    test 2232 91 91.003363403239 Beta(tan=-57.0979, x=-0.0174524, y=0.996495): -57.289961630759\n    test 2233 91 91.006738114317 Theta(tan=-56.9064, x=-0.0174524, y=0.993154): -57.289961630759\n    test 2234 91 91.005047219150 Mu(tan=-57.0022, x=-0.0175405, y=0.999846), iteration=2: -57.289961630759\n    test 2235 91 91.006730558280 Chi(tan=-56.9069, x=-1, y=56.9069), iteration=3: -57.289961630759\n    test 2236 91 91.004486042138 Xi(tan=-57.0341, x=-0.0352188, y=2.00867), iteration=3: -57.289961630759\n\n    test 2237 91 91.000000000000 Phi(tan=-57.29, x=-0.0174524, y=0.999848): -57.289961630759\n    test 2238 91 91.003363403239 Beta(tan=-57.0979, x=-0.0175111, y=0.999847): -57.289961630760  FAILED, KNOWN (6.07726e-15), expected -57.289961630759\n    test 2239 91 91.006738114317 Theta(tan=-56.9064, x=-0.01757, y=0.999846): -57.289961630760  FAILED, KNOWN (2.48051e-15), expected -57.289961630759\n    test 2240 91 91.005047219150 Mu(tan=-57.0022, x=-0.0175405, y=0.999846): -57.289961630760  FAILED, KNOWN (8.6818e-15), expected -57.289961630759\n    test 2241 91 91.006730558280 Chi(tan=-56.9069, x=-0.0175699, y=0.999846): -57.289961630759\n    test 2242 91 91.004486042138 Xi(tan=-57.0341, x=-0.0175307, y=0.999846): -57.289961630759\n\n    test 2243 98 98.000000000000 Phi(tan=-7.11537, x=-0.139173, y=0.990268): -7.115369722384\n    test 2244 98 98.026562562307 Beta(tan=-7.09151, x=-0.139173, y=0.986948): -7.115369722384\n    test 2245 98 98.053210993331 Theta(tan=-7.06774, x=-0.139173, y=0.983639): -7.115369722384\n    test 2246 98 98.039859900320 Mu(tan=-7.07963, x=-0.139862, y=0.990171), iteration=3: -7.115369722384\n    test 2247 98 98.053152474664 Chi(tan=-7.06779, x=-1, y=7.06779), iteration=3: -7.115369722384\n    test 2248 98 98.035428327772 Xi(tan=-7.08359, x=-0.280826, y=1.98926), iteration=2: -7.115369722384\n\n    test 2249 98 98.000000000000 Phi(tan=-7.11537, x=-0.139173, y=0.990268): -7.115369722384\n    test 2250 98 98.026562562307 Beta(tan=-7.09151, x=-0.139632, y=0.990203): -7.115369722384\n    test 2251 98 98.053210993331 Theta(tan=-7.06774, x=-0.140093, y=0.990138): -7.115369722384\n    test 2252 98 98.039859900320 Mu(tan=-7.07963, x=-0.139862, y=0.990171): -7.115369722384\n    test 2253 98 98.053152474664 Chi(tan=-7.06779, x=-0.140092, y=0.990139): -7.115369722384\n    test 2254 98 98.035428327772 Xi(tan=-7.08359, x=-0.139785, y=0.990182): -7.115369722384\n\n    test 2255 105 105.000000000000 Phi(tan=-3.73205, x=-0.258819, y=0.965926): -3.732050807569\n    test 2256 105 105.048176169243 Beta(tan=-3.71954, x=-0.258819, y=0.962687): -3.732050807569\n    test 2257 105 105.096492525996 Theta(tan=-3.70707, x=-0.258819, y=0.95946): -3.732050807569\n    test 2258 105 105.072290473972 Mu(tan=-3.7133, x=-0.260038, y=0.965599), iteration=3: -3.732050807569\n    test 2259 105 105.096391619832 Chi(tan=-3.70709, x=-1, y=3.70709), iteration=2: -3.732050807569\n    test 2260 105 105.064254515857 Xi(tan=-3.71538, x=-0.522138, y=1.93994), iteration=2: -3.732050807569\n\n    test 2261 105 105.000000000000 Phi(tan=-3.73205, x=-0.258819, y=0.965926): -3.732050807569\n    test 2262 105 105.048176169243 Beta(tan=-3.71954, x=-0.259631, y=0.965708): -3.732050807569\n    test 2263 105 105.096492525996 Theta(tan=-3.70707, x=-0.260445, y=0.965489): -3.732050807569\n    test 2264 105 105.072290473972 Mu(tan=-3.7133, x=-0.260038, y=0.965599): -3.732050807569\n    test 2265 105 105.096391619832 Chi(tan=-3.70709, x=-0.260444, y=0.965489): -3.732050807569\n    test 2266 105 105.064254515857 Xi(tan=-3.71538, x=-0.259902, y=0.965635): -3.732050807569\n\n    test 2267 112 112.000000000000 Phi(tan=-2.47509, x=-0.374607, y=0.927184): -2.475086853416\n    test 2268 112 112.066915437341 Beta(tan=-2.46679, x=-0.374607, y=0.924075): -2.475086853416\n    test 2269 112 112.133992362411 Theta(tan=-2.45852, x=-0.374607, y=0.920977): -2.475086853416\n    test 2270 112 112.100403370338 Mu(tan=-2.46265, x=-0.376231, y=0.926526), iteration=3: -2.475086853416\n    test 2271 112 112.133863370700 Chi(tan=-2.45853, x=-1, y=2.45853), iteration=3: -2.475086853416\n    test 2272 112 112.089244898668 Xi(tan=-2.46403, x=-0.755478, y=1.86152), iteration=3: -2.475086853416\n\n    test 2273 112 112.000000000000 Phi(tan=-2.47509, x=-0.374607, y=0.927184): -2.475086853416\n    test 2274 112 112.066915437341 Beta(tan=-2.46679, x=-0.375689, y=0.926746): -2.475086853416\n    test 2275 112 112.133992362411 Theta(tan=-2.45852, x=-0.376774, y=0.926305): -2.475086853416\n    test 2276 112 112.100403370338 Mu(tan=-2.46265, x=-0.376231, y=0.926526): -2.475086853416\n    test 2277 112 112.133863370700 Chi(tan=-2.45853, x=-0.376772, y=0.926306): -2.475086853416\n    test 2278 112 112.089244898668 Xi(tan=-2.46403, x=-0.37605, y=0.926599): -2.475086853416\n\n    test 2279 119 119.000000000000 Phi(tan=-1.80405, x=-0.48481, y=0.87462): -1.804047755271\n    test 2280 119 119.081665222463 Beta(tan=-1.798, x=-0.48481, y=0.871687): -1.804047755271\n    test 2281 119 119.163475249163 Theta(tan=-1.79197, x=-0.48481, y=0.868765): -1.804047755271\n    test 2282 119 119.122524937479 Mu(tan=-1.79498, x=-0.486679, y=0.873581), iteration=3: -1.804047755271\n    test 2283 119 119.163335373555 Chi(tan=-1.79198, x=-1, y=1.79198), iteration=3: -1.804047755271\n    test 2284 119 119.108912006611 Xi(tan=-1.79599, x=-0.977311, y=1.75524), iteration=3: -1.804047755271\n\n    test 2285 119 119.000000000000 Phi(tan=-1.80405, x=-0.48481, y=0.87462): -1.804047755271\n    test 2286 119 119.081665222463 Beta(tan=-1.798, x=-0.486056, y=0.873928): -1.804047755271\n    test 2287 119 119.163475249163 Theta(tan=-1.79197, x=-0.487303, y=0.873233): -1.804047755271\n    test 2288 119 119.122524937479 Mu(tan=-1.79498, x=-0.486679, y=0.873581): -1.804047755271\n    test 2289 119 119.163335373555 Chi(tan=-1.79198, x=-0.487301, y=0.873234): -1.804047755271\n    test 2290 119 119.108912006611 Xi(tan=-1.79599, x=-0.486471, y=0.873697): -1.804047755271\n\n    test 2291 126 126.000000000000 Phi(tan=-1.37638, x=-0.587785, y=0.809017): -1.376381920471\n    test 2292 126 126.091550707249 Beta(tan=-1.37177, x=-0.587785, y=0.806305): -1.376381920471\n    test 2293 126 126.183195540448 Theta(tan=-1.36717, x=-0.587785, y=0.803601): -1.376381920471\n    test 2294 126 126.137343684620 Mu(tan=-1.36947, x=-0.589723, y=0.807606), iteration=3: -1.376381920471\n    test 2295 126 126.183061603372 Chi(tan=-1.36717, x=-1, y=1.36717), iteration=3: -1.376381920471\n    test 2296 126 126.122089633630 Xi(tan=-1.37023, x=-1.18431, y=1.62278), iteration=2: -1.376381920471\n\n    test 2297 126 126.000000000000 Phi(tan=-1.37638, x=-0.587785, y=0.809017): -1.376381920471\n    test 2298 126 126.091550707249 Beta(tan=-1.37177, x=-0.589077, y=0.808077): -1.376381920471\n    test 2299 126 126.183195540448 Theta(tan=-1.36717, x=-0.590369, y=0.807133): -1.376381920471\n    test 2300 126 126.137343684620 Mu(tan=-1.36947, x=-0.589723, y=0.807606): -1.376381920471\n    test 2301 126 126.183061603372 Chi(tan=-1.36717, x=-0.590367, y=0.807135): -1.376381920471\n    test 2302 126 126.122089633630 Xi(tan=-1.37023, x=-0.589508, y=0.807763): -1.376381920471\n\n    test 2303 133 133.000000000000 Phi(tan=-1.07237, x=-0.681998, y=0.731354): -1.072368710025\n    test 2304 133 133.095989026852 Beta(tan=-1.06877, x=-0.681998, y=0.728902): -1.072368710025\n    test 2305 133 133.191999466035 Theta(tan=-1.06519, x=-0.681998, y=0.726458): -1.072368710025\n    test 2306 133 133.143987543114 Mu(tan=-1.06698, x=-0.683834, y=0.729637), iteration=2: -1.072368710025\n    test 2307 133 133.191884915480 Chi(tan=-1.06519, x=-1, y=1.06519), iteration=3: -1.072368710025\n    test 2308 133 133.128001595557 Xi(tan=-1.06758, x=-1.3734, y=1.46621), iteration=3: -1.072368710025\n\n    test 2309 133 133.000000000000 Phi(tan=-1.07237, x=-0.681998, y=0.731354): -1.072368710025\n    test 2310 133 133.095989026852 Beta(tan=-1.06877, x=-0.683223, y=0.73021): -1.072368710025\n    test 2311 133 133.191999466035 Theta(tan=-1.06519, x=-0.684445, y=0.729064): -1.072368710025\n    test 2312 133 133.143987543114 Mu(tan=-1.06698, x=-0.683834, y=0.729637): -1.072368710025\n    test 2313 133 133.191884915480 Chi(tan=-1.06519, x=-0.684444, y=0.729066): -1.072368710025\n    test 2314 133 133.128001595557 Xi(tan=-1.06758, x=-0.683631, y=0.729828): -1.072368710025\n\n    test 2315 140 140.000000000000 Phi(tan=-0.8391, x=-0.766044, y=0.642788): -0.839099631177\n    test 2316 140 140.094722853987 Beta(tan=-0.836286, x=-0.766044, y=0.640632): -0.839099631177\n    test 2317 140 140.189389448072 Theta(tan=-0.833482, x=-0.766044, y=0.638485): -0.839099631177\n    test 2318 140 140.142073716249 Mu(tan=-0.834883, x=-0.767636, y=0.640886), iteration=2: -0.839099631177\n    test 2319 140 140.189302292623 Chi(tan=-0.833485, x=-1, y=0.833485), iteration=2: -0.839099631177\n    test 2320 140 140.126306265466 Xi(tan=-0.83535, x=-1.54181, y=1.28795), iteration=2: -0.839099631177\n\n    test 2321 140 140.000000000000 Phi(tan=-0.8391, x=-0.766044, y=0.642788): -0.839099631177\n    test 2322 140 140.094722853987 Beta(tan=-0.836286, x=-0.767106, y=0.64152): -0.839099631177\n    test 2323 140 140.189389448072 Theta(tan=-0.833482, x=-0.768165, y=0.640252): -0.839099631177\n    test 2324 140 140.142073716249 Mu(tan=-0.834883, x=-0.767636, y=0.640886): -0.839099631177\n    test 2325 140 140.189302292623 Chi(tan=-0.833485, x=-0.768164, y=0.640253): -0.839099631177\n    test 2326 140 140.126306265466 Xi(tan=-0.83535, x=-0.76746, y=0.641097): -0.839099631177\n\n    test 2327 147 147.000000000000 Phi(tan=-0.649408, x=-0.838671, y=0.544639): -0.649407593198\n    test 2328 147 147.087834196097 Beta(tan=-0.64723, x=-0.838671, y=0.542813): -0.649407593198\n    test 2329 147 147.175547668144 Theta(tan=-0.64506, x=-0.838671, y=0.540993): -0.649407593198\n    test 2330 147 147.131728623858 Mu(tan=-0.646144, x=-0.839921, y=0.542709), iteration=2: -0.649407593198\n    test 2331 147 147.175489751194 Chi(tan=-0.645062, x=-1, y=0.645062), iteration=3: -0.649407593198\n    test 2332 147 147.117114615992 Xi(tan=-0.646505, x=-1.68711, y=1.09072), iteration=3: -0.649407593198\n\n    test 2333 147 147.000000000000 Phi(tan=-0.649408, x=-0.838671, y=0.544639): -0.649407593198\n    test 2334 147 147.087834196097 Beta(tan=-0.64723, x=-0.839505, y=0.543353): -0.649407593198\n    test 2335 147 147.175547668144 Theta(tan=-0.64506, x=-0.840335, y=0.542067): -0.649407593198\n    test 2336 147 147.131728623858 Mu(tan=-0.646144, x=-0.839921, y=0.542709): -0.649407593198\n    test 2337 147 147.175489751194 Chi(tan=-0.645062, x=-0.840335, y=0.542068): -0.649407593198\n    test 2338 147 147.117114615992 Xi(tan=-0.646505, x=-0.839782, y=0.542924): -0.649407593198\n\n    test 2339 154 154.000000000000 Phi(tan=-0.487733, x=-0.898794, y=0.438371): -0.487732588566\n    test 2340 154 154.075737936138 Beta(tan=-0.486097, x=-0.898794, y=0.436901): -0.487732588566\n    test 2341 154 154.151318905421 Theta(tan=-0.484468, x=-0.898794, y=0.435437): -0.487732588566\n    test 2342 154 154.113577416532 Mu(tan=-0.485281, x=-0.899661, y=0.436589), iteration=2: -0.487732588566\n    test 2343 154 154.151286603865 Chi(tan=-0.484468, x=-1, y=0.484468), iteration=2: -0.487732588566\n    test 2344 154 154.100981227925 Xi(tan=-0.485553, x=-1.80721, y=0.877495), iteration=3: -0.487732588566\n\n    test 2345 154 154.000000000000 Phi(tan=-0.487733, x=-0.898794, y=0.438371): -0.487732588566\n    test 2346 154 154.075737936138 Beta(tan=-0.486097, x=-0.899373, y=0.437183): -0.487732588566\n    test 2347 154 154.151318905421 Theta(tan=-0.484468, x=-0.899949, y=0.435996): -0.487732588566\n    test 2348 154 154.113577416532 Mu(tan=-0.485281, x=-0.899661, y=0.436589): -0.487732588566\n    test 2349 154 154.151286603865 Chi(tan=-0.484468, x=-0.899948, y=0.435996): -0.487732588566\n    test 2350 154 154.100981227925 Xi(tan=-0.485553, x=-0.899565, y=0.436786): -0.487732588566\n\n    test 2351 161 161.000000000000 Phi(tan=-0.344328, x=-0.945519, y=0.325568): -0.344327613290\n    test 2352 161 161.059155871563 Beta(tan=-0.343173, x=-0.945519, y=0.324477): -0.344327613290\n    test 2353 161 161.118155143282 Theta(tan=-0.342023, x=-0.945519, y=0.323389): -0.344327613290\n    test 2354 161 161.088704377377 Mu(tan=-0.342597, x=-0.946021, y=0.324104), iteration=2: -0.344327613290\n    test 2355 161 161.118141245926 Chi(tan=-0.342023, x=-1, y=0.342023), iteration=3: -0.344327613290\n    test 2356 161 161.078869359618 Xi(tan=-0.342789, x=-1.90043, y=0.651445), iteration=3: -0.344327613290\n\n    test 2357 161 161.000000000000 Phi(tan=-0.344328, x=-0.945519, y=0.325568): -0.344327613290\n    test 2358 161 161.059155871563 Beta(tan=-0.343173, x=-0.945854, y=0.324592): -0.344327613290\n    test 2359 161 161.118155143282 Theta(tan=-0.342023, x=-0.946188, y=0.323618): -0.344327613290\n    test 2360 161 161.088704377377 Mu(tan=-0.342597, x=-0.946021, y=0.324104): -0.344327613290\n    test 2361 161 161.118141245926 Chi(tan=-0.342023, x=-0.946188, y=0.323618): -0.344327613290\n    test 2362 161 161.078869359618 Xi(tan=-0.342789, x=-0.945966, y=0.324266): -0.344327613290\n\n    test 2363 168 168.000000000000 Phi(tan=-0.212557, x=-0.978148, y=0.207912): -0.212556561670\n    test 2364 168 168.039073098008 Beta(tan=-0.211844, x=-0.978148, y=0.207215): -0.212556561670\n    test 2365 168 168.078026427494 Theta(tan=-0.211134, x=-0.978148, y=0.20652): -0.212556561670\n    test 2366 168 168.058587132190 Mu(tan=-0.211488, x=-0.97836, y=0.206911), iteration=3: -0.212556561670\n    test 2367 168 168.078022687531 Chi(tan=-0.211134, x=-1, y=0.211134), iteration=3: -0.212556561670\n    test 2368 168 168.052092611435 Xi(tan=-0.211606, x=-1.96546, y=0.415904), iteration=3: -0.212556561670\n\n    test 2369 168 168.000000000000 Phi(tan=-0.212557, x=-0.978148, y=0.207912): -0.212556561670\n    test 2370 168 168.039073098008 Beta(tan=-0.211844, x=-0.978289, y=0.207245): -0.212556561670\n    test 2371 168 168.078026427494 Theta(tan=-0.211134, x=-0.97843, y=0.206579): -0.212556561670\n    test 2372 168 168.058587132190 Mu(tan=-0.211488, x=-0.97836, y=0.206911): -0.212556561670\n    test 2373 168 168.078022687531 Chi(tan=-0.211134, x=-0.97843, y=0.20658): -0.212556561670\n    test 2374 168 168.052092611435 Xi(tan=-0.211606, x=-0.978336, y=0.207022): -0.212556561670\n\n    test 2375 175 175.000000000000 Phi(tan=-0.0874887, x=-0.996195, y=0.0871557): -0.087488663526\n    test 2376 175 175.016679496811 Beta(tan=-0.0871953, x=-0.996195, y=0.0868635): -0.087488663526\n    test 2377 175 175.033303912991 Theta(tan=-0.086903, x=-0.996195, y=0.0865723): -0.087488663526\n    test 2378 175 175.025008889061 Mu(tan=-0.0870489, x=-0.996233, y=0.0867209), iteration=3: -0.087488663526\n    test 2379 175 175.033303632597 Chi(tan=-0.086903, x=-1, y=0.086903), iteration=2: -0.087488663526\n    test 2380 175 175.022236903877 Xi(tan=-0.0870976, x=-2.0014, y=0.174317), iteration=2: -0.087488663526\n\n    test 2381 175 175.000000000000 Phi(tan=-0.0874887, x=-0.996195, y=0.0871557): -0.087488663526\n    test 2382 175 175.016679496811 Beta(tan=-0.0871953, x=-0.99622, y=0.0868657): -0.087488663526\n    test 2383 175 175.033303912991 Theta(tan=-0.086903, x=-0.996245, y=0.0865767): -0.087488663526\n    test 2384 175 175.025008889061 Mu(tan=-0.0870489, x=-0.996233, y=0.0867209): -0.087488663526\n    test 2385 175 175.033303632597 Chi(tan=-0.086903, x=-0.996245, y=0.0865767): -0.087488663526\n    test 2386 175 175.022236903877 Xi(tan=-0.0870976, x=-0.996228, y=0.0867691): -0.087488663526\n\n    test 2387 182 182.000000000000 Phi(tan=0.0349208, x=-0.999391, y=-0.0348995): 0.034920769492\n    test 2388 182 181.993299797077 Beta(tan=0.0348037, x=-0.999391, y=-0.0347825): 0.034920769492\n    test 2389 182 181.986622004399 Theta(tan=0.034687, x=-0.999391, y=-0.0346659): 0.034920769492\n    test 2390 182 181.989953909276 Mu(tan=0.0347452, x=-0.999397, y=-0.0347243), iteration=3: 0.034920769492\n    test 2391 182 181.986622022458 Chi(tan=0.034687, x=-1, y=-0.034687), iteration=2: 0.034920769492\n    test 2392 182 181.991067395746 Xi(tan=0.0347647, x=-2.00777, y=-0.0697994), iteration=3: 0.034920769492\n\n    test 2393 182 182.000000000000 Phi(tan=0.0349208, x=-0.999391, y=-0.0348995): 0.034920769492\n    test 2394 182 181.993299797077 Beta(tan=0.0348037, x=-0.999395, y=-0.0347826): 0.034920769492\n    test 2395 182 181.986622004399 Theta(tan=0.034687, x=-0.999399, y=-0.0346661): 0.034920769492\n    test 2396 182 181.989953909276 Mu(tan=0.0347452, x=-0.999397, y=-0.0347243): 0.034920769492\n    test 2397 182 181.986622022458 Chi(tan=0.034687, x=-0.999399, y=-0.0346661): 0.034920769492\n    test 2398 182 181.991067395746 Xi(tan=0.0347647, x=-0.999396, y=-0.0347437): 0.034920769492\n\n    test 2399 189 189.000000000000 Phi(tan=0.158384, x=-0.987688, y=-0.156434): 0.158384440325\n    test 2400 189 188.970316191157 Beta(tan=0.157853, x=-0.987688, y=-0.15591): 0.158384440325\n    test 2401 189 188.940727074962 Theta(tan=0.157324, x=-0.987688, y=-0.155387): 0.158384440325\n    test 2402 189 188.955492089230 Mu(tan=0.157588, x=-0.98781, y=-0.155667), iteration=3: 0.158384440325\n    test 2403 189 188.940728682981 Chi(tan=0.157324, x=-1, y=-0.157324), iteration=3: 0.158384440325\n    test 2404 189 188.960425606105 Xi(tan=0.157676, x=-1.98446, y=-0.312903), iteration=2: 0.158384440325\n\n    test 2405 189 189.000000000000 Phi(tan=0.158384, x=-0.987688, y=-0.156434): 0.158384440325\n    test 2406 189 188.970316191157 Beta(tan=0.157853, x=-0.987769, y=-0.155923): 0.158384440325\n    test 2407 189 188.940727074962 Theta(tan=0.157324, x=-0.98785, y=-0.155413): 0.158384440325\n    test 2408 189 188.955492089230 Mu(tan=0.157588, x=-0.98781, y=-0.155667): 0.158384440325\n    test 2409 189 188.940728682981 Chi(tan=0.157324, x=-0.98785, y=-0.155413): 0.158384440325\n    test 2410 189 188.960425606105 Xi(tan=0.157676, x=-0.987796, y=-0.155752): 0.158384440325\n\n    test 2411 196 196.000000000000 Phi(tan=0.286745, x=-0.961262, y=-0.275637): 0.286745385759\n    test 2412 196 195.949087795468 Beta(tan=0.285784, x=-0.961262, y=-0.274713): 0.286745385759\n    test 2413 196 195.898320549032 Theta(tan=0.284826, x=-0.961262, y=-0.273792): 0.286745385759\n    test 2414 196 195.923658939114 Mu(tan=0.285304, x=-0.961628, y=-0.274356), iteration=3: 0.286745385759\n    test 2415 196 195.898329118388 Chi(tan=0.284826, x=-1, y=-0.284826), iteration=3: 0.286745385759\n    test 2416 196 195.932122390859 Xi(tan=0.285464, x=-1.93181, y=-0.551462), iteration=2: 0.286745385759\n\n    test 2417 196 196.000000000000 Phi(tan=0.286745, x=-0.961262, y=-0.275637): 0.286745385759\n    test 2418 196 195.949087795468 Beta(tan=0.285784, x=-0.961506, y=-0.274783): 0.286745385759\n    test 2419 196 195.898320549032 Theta(tan=0.284826, x=-0.961749, y=-0.273931): 0.286745385759\n    test 2420 196 195.923658939114 Mu(tan=0.285304, x=-0.961628, y=-0.274356): 0.286745385759\n    test 2421 196 195.898329118388 Chi(tan=0.284826, x=-0.961749, y=-0.273931): 0.286745385759\n    test 2422 196 195.932122390859 Xi(tan=0.285464, x=-0.961588, y=-0.274498): 0.286745385759\n\n    test 2423 203 203.000000000000 Phi(tan=0.424475, x=-0.920505, y=-0.390731): 0.424474816210\n    test 2424 203 202.930871376810 Beta(tan=0.423052, x=-0.920505, y=-0.389421): 0.424474816210\n    test 2425 203 202.861904242075 Theta(tan=0.421633, x=-0.920505, y=-0.388115): 0.424474816210\n    test 2426 203 202.896337407506 Mu(tan=0.422341, x=-0.92121, y=-0.389065), iteration=3: 0.424474816210\n    test 2427 203 202.861927650711 Chi(tan=0.421634, x=-1, y=-0.421634), iteration=3: 0.424474816210\n    test 2428 203 202.907832581930 Xi(tan=0.422578, x=-1.85054, y=-0.781995), iteration=3: 0.424474816210\n\n    test 2429 203 203.000000000000 Phi(tan=0.424475, x=-0.920505, y=-0.390731): 0.424474816210\n    test 2430 203 202.930871376810 Beta(tan=0.423052, x=-0.920976, y=-0.38962): 0.424474816210\n    test 2431 203 202.861904242075 Theta(tan=0.421633, x=-0.921444, y=-0.388511): 0.424474816210\n    test 2432 203 202.896337407506 Mu(tan=0.422341, x=-0.92121, y=-0.389065): 0.424474816210\n    test 2433 203 202.861927650711 Chi(tan=0.421634, x=-0.921444, y=-0.388512): 0.424474816210\n    test 2434 203 202.907832581930 Xi(tan=0.422578, x=-0.921132, y=-0.38925): 0.424474816210\n\n    test 2435 210 210.000000000000 Phi(tan=0.57735, x=-0.866025, y=-0.5): 0.577350269190\n    test 2436 210 209.916747713236 Beta(tan=0.575415, x=-0.866025, y=-0.498324): 0.577350269190\n    test 2437 210 209.833635809829 Theta(tan=0.573485, x=-0.866025, y=-0.496653): 0.577350269190\n    test 2438 210 209.875147936061 Mu(tan=0.574448, x=-0.867113, y=-0.498112), iteration=2: 0.577350269190\n    test 2439 210 209.833682042481 Chi(tan=0.573486, x=-1, y=-0.573486), iteration=2: 0.577350269190\n    test 2440 210 209.888997034460 Xi(tan=0.57477, x=-1.74177, y=-1.00112), iteration=3: 0.577350269190\n\n    test 2441 210 210.000000000000 Phi(tan=0.57735, x=-0.866025, y=-0.5): 0.577350269190\n    test 2442 210 209.916747713236 Beta(tan=0.575415, x=-0.866751, y=-0.498741): 0.577350269190\n    test 2443 210 209.833635809829 Theta(tan=0.573485, x=-0.867474, y=-0.497483): 0.577350269190\n    test 2444 210 209.875147936061 Mu(tan=0.574448, x=-0.867113, y=-0.498112): 0.577350269190\n    test 2445 210 209.833682042481 Chi(tan=0.573486, x=-0.867473, y=-0.497484): 0.577350269190\n    test 2446 210 209.888997034460 Xi(tan=0.57477, x=-0.866992, y=-0.498321): 0.577350269190\n\n    test 2447 217 217.000000000000 Phi(tan=0.753554, x=-0.798636, y=-0.601815): 0.753554050103\n    test 2448 217 216.907557725734 Beta(tan=0.751028, x=-0.798636, y=-0.599797): 0.753554050103\n    test 2449 217 216.815201948287 Theta(tan=0.748509, x=-0.798636, y=-0.597786): 0.753554050103\n    test 2450 217 216.861352829418 Mu(tan=0.749767, x=-0.800089, y=-0.599881), iteration=2: 0.753554050103\n    test 2451 217 216.815276448911 Chi(tan=0.748512, x=-1, y=-0.748512), iteration=2: 0.753554050103\n    test 2452 217 216.876737541007 Xi(tan=0.750187, x=-1.60704, y=-1.20558), iteration=3: 0.753554050103\n\n    test 2453 217 217.000000000000 Phi(tan=0.753554, x=-0.798636, y=-0.601815): 0.753554050103\n    test 2454 217 216.907557725734 Beta(tan=0.751028, x=-0.799605, y=-0.600526): 0.753554050103\n    test 2455 217 216.815201948287 Theta(tan=0.748509, x=-0.800572, y=-0.599236): 0.753554050103\n    test 2456 217 216.861352829418 Mu(tan=0.749767, x=-0.800089, y=-0.599881): 0.753554050103\n    test 2457 217 216.815276448911 Chi(tan=0.748512, x=-0.800572, y=-0.599237): 0.753554050103\n    test 2458 217 216.876737541007 Xi(tan=0.750187, x=-0.799928, y=-0.600095): 0.753554050103\n\n    test 2459 224 224.000000000000 Phi(tan=0.965689, x=-0.71934, y=-0.694658): 0.965688774807\n    test 2460 224 223.903852093789 Beta(tan=0.962451, x=-0.71934, y=-0.692329): 0.965688774807\n    test 2461 224 223.807716539068 Theta(tan=0.959224, x=-0.71934, y=-0.690008): 0.965688774807\n    test 2462 224 223.855780468115 Mu(tan=0.960836, x=-0.721086, y=-0.692846), iteration=3: 0.965688774807\n    test 2463 224 223.807819970397 Chi(tan=0.959228, x=-1, y=-0.959228), iteration=3: 0.965688774807\n    test 2464 224 223.871789544357 Xi(tan=0.961374, x=-1.44826, y=-1.39232), iteration=3: 0.965688774807\n\n    test 2465 224 224.000000000000 Phi(tan=0.965689, x=-0.71934, y=-0.694658): 0.965688774807\n    test 2466 224 223.903852093789 Beta(tan=0.962451, x=-0.720504, y=-0.69345): 0.965688774807\n    test 2467 224 223.807716539068 Theta(tan=0.959224, x=-0.721667, y=-0.69224): 0.965688774807\n    test 2468 224 223.855780468115 Mu(tan=0.960836, x=-0.721086, y=-0.692846): 0.965688774807\n    test 2469 224 223.807819970397 Chi(tan=0.959228, x=-0.721666, y=-0.692242): 0.965688774807\n    test 2470 224 223.871789544357 Xi(tan=0.961374, x=-0.720892, y=-0.693047): 0.965688774807\n\n    test 2471 231 231.000000000000 Phi(tan=1.2349, x=-0.62932, y=-0.777146): 1.234897156535\n    test 2472 231 230.905857444036 Beta(tan=1.23076, x=-0.62932, y=-0.77454): 1.234897156535\n    test 2473 231 230.811650146691 Theta(tan=1.22663, x=-0.62932, y=-0.771943): 1.234897156535\n    test 2474 231 230.858774044602 Mu(tan=1.22869, x=-0.631234, y=-0.775592), iteration=2: 1.234897156535\n    test 2475 231 230.811777138431 Chi(tan=1.22664, x=-1, y=-1.22664), iteration=3: 1.234897156535\n    test 2476 231 230.874456790611 Xi(tan=1.22938, x=-1.26771, y=-1.5585), iteration=2: 1.234897156535\n\n    test 2477 231 231.000000000000 Phi(tan=1.2349, x=-0.62932, y=-0.777146): 1.234897156535\n    test 2478 231 230.905857444036 Beta(tan=1.23076, x=-0.630596, y=-0.776111): 1.234897156535\n    test 2479 231 230.811650146691 Theta(tan=1.22663, x=-0.631872, y=-0.775073): 1.234897156535\n    test 2480 231 230.858774044602 Mu(tan=1.22869, x=-0.631234, y=-0.775592): 1.234897156535\n    test 2481 231 230.811777138431 Chi(tan=1.22664, x=-0.63187, y=-0.775074): 1.234897156535\n    test 2482 231 230.874456790611 Xi(tan=1.22938, x=-0.631022, y=-0.775765): 1.234897156535\n\n    test 2483 238 238.000000000000 Phi(tan=1.60033, x=-0.529919, y=-0.848048): 1.600334529041\n    test 2484 238 237.913461373388 Beta(tan=1.59497, x=-0.529919, y=-0.845205): 1.600334529041\n    test 2485 238 237.826796038008 Theta(tan=1.58962, x=-0.529919, y=-0.842371): 1.600334529041\n    test 2486 238 237.870168339397 Mu(tan=1.59229, x=-0.53184, y=-0.846845), iteration=2: 1.600334529041\n    test 2487 238 237.826935292578 Chi(tan=1.58963, x=-1, y=-1.58963), iteration=2: 1.600334529041\n    test 2488 238 237.884590997667 Xi(tan=1.59318, x=-1.06803, y=-1.70156), iteration=3: 1.600334529041\n\n    test 2489 238 238.000000000000 Phi(tan=1.60033, x=-0.529919, y=-0.848048): 1.600334529041\n    test 2490 238 237.913461373388 Beta(tan=1.59497, x=-0.5312, y=-0.847247): 1.600334529041\n    test 2491 238 237.826796038008 Theta(tan=1.58962, x=-0.53248, y=-0.846442): 1.600334529041\n    test 2492 238 237.870168339397 Mu(tan=1.59229, x=-0.53184, y=-0.846845): 1.600334529041\n    test 2493 238 237.826935292578 Chi(tan=1.58963, x=-0.532478, y=-0.846444): 1.600334529041\n    test 2494 238 237.884590997667 Xi(tan=1.59318, x=-0.531626, y=-0.846979): 1.600334529041\n\n    test 2495 245 245.000000000000 Phi(tan=2.14451, x=-0.422618, y=-0.906308): 2.144506920510\n    test 2496 245 244.926217548699 Beta(tan=2.13732, x=-0.422618, y=-0.903269): 2.144506920510\n    test 2497 245 244.852276137025 Theta(tan=2.13015, x=-0.422618, y=-0.900241): 2.144506920510\n    test 2498 245 244.889296576536 Mu(tan=2.13373, x=-0.424369, y=-0.90549), iteration=2: 2.144506920510\n    test 2499 245 244.852411952909 Chi(tan=2.13016, x=-1, y=-2.13016), iteration=3: 2.144506920510\n    test 2500 245 244.901598279036 Xi(tan=2.13493, x=-0.852157, y=-1.81929), iteration=2: 2.144506920510\n\n    test 2501 245 245.000000000000 Phi(tan=2.14451, x=-0.422618, y=-0.906308): 2.144506920510\n    test 2502 245 244.926217548699 Beta(tan=2.13732, x=-0.423785, y=-0.905763): 2.144506920510\n    test 2503 245 244.852276137025 Theta(tan=2.13015, x=-0.424954, y=-0.905215): 2.144506920510\n    test 2504 245 244.889296576536 Mu(tan=2.13373, x=-0.424369, y=-0.90549): 2.144506920510\n    test 2505 245 244.852411952909 Chi(tan=2.13016, x=-0.424951, y=-0.905216): 2.144506920510\n    test 2506 245 244.901598279036 Xi(tan=2.13493, x=-0.424174, y=-0.905581): 2.144506920510\n\n    test 2507 252 252.000000000000 Phi(tan=3.07768, x=-0.309017, y=-0.951057): 3.077683537175\n    test 2508 252 251.943370950484 Beta(tan=3.06736, x=-0.309017, y=-0.947868): 3.077683537175\n    test 2509 252 251.886588050489 Theta(tan=3.05708, x=-0.309017, y=-0.94469): 3.077683537175\n    test 2510 252 251.915027646278 Mu(tan=3.06222, x=-0.310427, y=-0.950597), iteration=3: 3.077683537175\n    test 2511 252 251.886702986922 Chi(tan=3.0571, x=-1, y=-3.0571), iteration=3: 3.077683537175\n    test 2512 252 251.924472501487 Xi(tan=3.06393, x=-0.623327, y=-1.90983), iteration=3: 3.077683537175\n\n    test 2513 252 252.000000000000 Phi(tan=3.07768, x=-0.309017, y=-0.951057): 3.077683537175\n    test 2514 252 251.943370950484 Beta(tan=3.06736, x=-0.309957, y=-0.950751): 3.077683537175\n    test 2515 252 251.886588050489 Theta(tan=3.05708, x=-0.310899, y=-0.950443): 3.077683537175\n    test 2516 252 251.915027646278 Mu(tan=3.06222, x=-0.310427, y=-0.950597): 3.077683537175\n    test 2517 252 251.886702986922 Chi(tan=3.0571, x=-0.310897, y=-0.950444): 3.077683537175\n    test 2518 252 251.924472501487 Xi(tan=3.06393, x=-0.31027, y=-0.950648): 3.077683537175\n\n    test 2519 259 259.000000000000 Phi(tan=5.14455, x=-0.190809, y=-0.981627): 5.144554015970\n    test 2520 259 258.963902062378 Beta(tan=5.12731, x=-0.190809, y=-0.978336): 5.144554015970\n    test 2521 259 258.927691601915 Theta(tan=5.11011, x=-0.190809, y=-0.975056): 5.144554015970\n    test 2522 259 258.945832050834 Mu(tan=5.11871, x=-0.191737, y=-0.981446), iteration=3: 5.144554015970\n    test 2523 259 258.927769725031 Chi(tan=5.11015, x=-1, y=-5.11015), iteration=3: 5.144554015970\n    test 2524 259 258.951854051022 Xi(tan=5.12157, x=-0.384988, y=-1.97175), iteration=3: 5.144554015970\n\n    test 2525 259 259.000000000000 Phi(tan=5.14455, x=-0.190809, y=-0.981627): 5.144554015970\n    test 2526 259 258.963902062378 Beta(tan=5.12731, x=-0.191427, y=-0.981507): 5.144554015970\n    test 2527 259 258.927691601915 Theta(tan=5.11011, x=-0.192048, y=-0.981386): 5.144554015970\n    test 2528 259 258.945832050834 Mu(tan=5.11871, x=-0.191737, y=-0.981446): 5.144554015970\n    test 2529 259 258.927769725031 Chi(tan=5.11015, x=-0.192046, y=-0.981386): 5.144554015970\n    test 2530 259 258.951854051022 Xi(tan=5.12157, x=-0.191634, y=-0.981466): 5.144554015970\n\n    test 2531 266 266.000000000000 Phi(tan=14.3007, x=-0.0697565, y=-0.997564): 14.300666256712\n    test 2532 266 265.986587541025 Beta(tan=14.2527, x=-0.0697565, y=-0.994219): 14.300666256712\n    test 2533 266 265.973130404128 Theta(tan=14.2049, x=-0.0697565, y=-0.990886): 14.300666256712\n    test 2534 266 265.979872957664 Mu(tan=14.2288, x=-0.0701069, y=-0.997539), iteration=3: 14.300666256712\n    test 2535 266 265.973160396216 Chi(tan=14.205, x=-1, y=-14.205), iteration=3: 14.300666256712\n    test 2536 266 265.982110758522 Xi(tan=14.2368, x=-0.140765, y=-2.00404), iteration=2: 14.300666256712\n\n    test 2537 266 266.000000000000 Phi(tan=14.3007, x=-0.0697565, y=-0.997564): 14.300666256712\n    test 2538 266 265.986587541025 Beta(tan=14.2527, x=-0.06999, y=-0.997548): 14.300666256712\n    test 2539 266 265.973130404128 Theta(tan=14.2049, x=-0.0702243, y=-0.997531): 14.300666256712\n    test 2540 266 265.979872957664 Mu(tan=14.2288, x=-0.0701069, y=-0.997539): 14.300666256712\n    test 2541 266 265.973160396216 Chi(tan=14.205, x=-0.0702238, y=-0.997531): 14.300666256712\n    test 2542 266 265.982110758522 Xi(tan=14.2368, x=-0.0700679, y=-0.997542): 14.300666256712\n\n    test 2543 273 273.000000000000 Phi(tan=-19.0811, x=0.052336, y=-0.99863): -19.081136687728\n    test 2544 273 273.010073740960 Beta(tan=-19.0172, x=0.052336, y=-0.995281): -19.081136687728\n    test 2545 273 273.020181183682 Theta(tan=-18.9534, x=0.052336, y=-0.991944): -19.081136687728\n    test 2546 273 273.015116912927 Mu(tan=-18.9853, x=0.0525994, y=-0.998616), iteration=3: -19.081136687728\n    test 2547 273 273.020158608531 Chi(tan=-18.9535, x=1.0, y=-18.9535), iteration=2: -19.081136687728\n    test 2548 273 273.013436145998 Xi(tan=-18.9959, x=0.105612, y=-2.0062), iteration=2: -19.081136687728\n\n    test 2549 273 273.000000000000 Phi(tan=-19.0811, x=0.052336, y=-0.99863): -19.081136687728\n    test 2550 273 273.010073740960 Beta(tan=-19.0172, x=0.0525115, y=-0.99862): -19.081136687728\n    test 2551 273 273.020181183682 Theta(tan=-18.9534, x=0.0526877, y=-0.998611): -19.081136687728\n    test 2552 273 273.015116912927 Mu(tan=-18.9853, x=0.0525994, y=-0.998616): -19.081136687728\n    test 2553 273 273.020158608531 Chi(tan=-18.9535, x=0.0526873, y=-0.998611): -19.081136687728\n    test 2554 273 273.013436145998 Xi(tan=-18.9959, x=0.0525701, y=-0.998617): -19.081136687728\n\n    test 2555 280 280.000000000000 Phi(tan=-5.67128, x=0.173648, y=-0.984808): -5.671281819618\n    test 2556 280 280.032958527773 Beta(tan=-5.65227, x=0.173648, y=-0.981506): -5.671281819618\n    test 2557 280 280.066021190034 Theta(tan=-5.63332, x=0.173648, y=-0.978215): -5.671281819618\n    test 2558 280 280.049457265110 Mu(tan=-5.64279, x=0.174498, y=-0.984657), iteration=3: -5.671281819618\n    test 2559 280 280.065949391281 Chi(tan=-5.63336, x=1.0, y=-5.63336), iteration=2: -5.671281819618\n    test 2560 280 280.043958856452 Xi(tan=-5.64595, x=0.350374, y=-1.97819), iteration=3: -5.671281819618\n\n    test 2561 280 280.000000000000 Phi(tan=-5.67128, x=0.173648, y=-0.984808): -5.671281819618\n    test 2562 280 280.032958527773 Beta(tan=-5.65227, x=0.174215, y=-0.984708): -5.671281819618\n    test 2563 280 280.066021190034 Theta(tan=-5.63332, x=0.174783, y=-0.984607): -5.671281819618\n    test 2564 280 280.049457265110 Mu(tan=-5.64279, x=0.174498, y=-0.984657): -5.671281819618\n    test 2565 280 280.065949391281 Chi(tan=-5.63336, x=0.174782, y=-0.984607): -5.671281819618\n    test 2566 280 280.043958856452 Xi(tan=-5.64595, x=0.174404, y=-0.984674): -5.671281819618\n\n    test 2567 287 287.000000000000 Phi(tan=-3.27085, x=0.292372, y=-0.956305): -3.270852618484\n    test 2568 287 287.053876189570 Beta(tan=-3.25989, x=0.292372, y=-0.953098): -3.270852618484\n    test 2569 287 287.107902403143 Theta(tan=-3.24896, x=0.292372, y=-0.949903): -3.270852618484\n    test 2570 287 287.080842346698 Mu(tan=-3.25442, x=0.293721, y=-0.955891), iteration=3: -3.270852618484\n    test 2571 287 287.107791826667 Chi(tan=-3.24898, x=1.0, y=-3.24898), iteration=2: -3.270852618484\n    test 2572 287 287.071856267521 Xi(tan=-3.25624, x=0.589778, y=-1.92046), iteration=3: -3.270852618484\n\n    test 2573 287 287.000000000000 Phi(tan=-3.27085, x=0.292372, y=-0.956305): -3.270852618484\n    test 2574 287 287.053876189570 Beta(tan=-3.25989, x=0.293271, y=-0.956029): -3.270852618484\n    test 2575 287 287.107902403143 Theta(tan=-3.24896, x=0.294172, y=-0.955752): -3.270852618484\n    test 2576 287 287.080842346698 Mu(tan=-3.25442, x=0.293721, y=-0.955891): -3.270852618484\n    test 2577 287 287.107791826667 Chi(tan=-3.24898, x=0.29417, y=-0.955753): -3.270852618484\n    test 2578 287 287.071856267521 Xi(tan=-3.25624, x=0.293571, y=-0.955937): -3.270852618484\n\n    test 2579 294 294.000000000000 Phi(tan=-2.24604, x=0.406737, y=-0.913545): -2.246036773904\n    test 2580 294 294.071580020440 Beta(tan=-2.23851, x=0.406737, y=-0.910483): -2.246036773904\n    test 2581 294 294.143320630937 Theta(tan=-2.231, x=0.406737, y=-0.90743): -2.246036773904\n    test 2582 294 294.107400080405 Mu(tan=-2.23475, x=0.408448, y=-0.912781), iteration=3: -2.246036773904\n    test 2583 294 294.143186728996 Chi(tan=-2.23101, x=1.0, y=-2.23101), iteration=3: -2.246036773904\n    test 2584 294 294.095464961355 Xi(tan=-2.236, x=0.820183, y=-1.83393), iteration=3: -2.246036773904\n\n    test 2585 294 294.000000000000 Phi(tan=-2.24604, x=0.406737, y=-0.913545): -2.246036773904\n    test 2586 294 294.071580020440 Beta(tan=-2.23851, x=0.407878, y=-0.913037): -2.246036773904\n    test 2587 294 294.143320630937 Theta(tan=-2.231, x=0.409021, y=-0.912525): -2.246036773904\n    test 2588 294 294.107400080405 Mu(tan=-2.23475, x=0.408448, y=-0.912781): -2.246036773904\n    test 2589 294 294.143186728996 Chi(tan=-2.23101, x=0.409018, y=-0.912526): -2.246036773904\n    test 2590 294 294.095464961355 Xi(tan=-2.236, x=0.408258, y=-0.912866): -2.246036773904\n\n    test 2591 301 301.000000000000 Phi(tan=-1.66428, x=0.515038, y=-0.857167): -1.664279482351\n    test 2592 301 301.085017327347 Beta(tan=-1.6587, x=0.515038, y=-0.854293): -1.664279482351\n    test 2593 301 301.170168056505 Theta(tan=-1.65314, x=0.515038, y=-0.851429): -1.664279482351\n    test 2594 301 301.127550963364 Mu(tan=-1.65592, x=0.516945, y=-0.856019), iteration=3: -1.664279482351\n    test 2595 301 301.170028258270 Chi(tan=-1.65315, x=1.0, y=-1.65315), iteration=3: -1.664279482351\n    test 2596 301 301.113380969671 Xi(tan=-1.65684, x=1.03811, y=-1.71998), iteration=3: -1.664279482351\n\n    test 2597 301 301.000000000000 Phi(tan=-1.66428, x=0.515038, y=-0.857167): -1.664279482351\n    test 2598 301 301.085017327347 Beta(tan=-1.6587, x=0.516309, y=-0.856402): -1.664279482351\n    test 2599 301 301.170168056505 Theta(tan=-1.65314, x=0.517582, y=-0.855634): -1.664279482351\n    test 2600 301 301.127550963364 Mu(tan=-1.65592, x=0.516945, y=-0.856019): -1.664279482351\n    test 2601 301 301.170028258270 Chi(tan=-1.65315, x=0.517579, y=-0.855635): -1.664279482351\n    test 2602 301 301.113380969671 Xi(tan=-1.65684, x=0.516733, y=-0.856146): -1.664279482351\n\n    test 2603 308 308.000000000000 Phi(tan=-1.27994, x=0.615661, y=-0.788011): -1.279941632193\n    test 2604 308 308.093392183249 Beta(tan=-1.27565, x=0.615661, y=-0.785369): -1.279941632193\n    test 2605 308 308.186859283180 Theta(tan=-1.27137, x=0.615661, y=-0.782736): -1.279941632193\n    test 2606 308 308.140102302012 Mu(tan=-1.27351, x=0.617587, y=-0.786503), iteration=2: -1.279941632193\n    test 2607 308 308.186729722475 Chi(tan=-1.27138, x=1.0, y=-1.27138), iteration=3: -1.279941632193\n    test 2608 308 308.124543504213 Xi(tan=-1.27422, x=1.24029, y=-1.58041), iteration=2: -1.279941632193\n\n    test 2609 308 308.000000000000 Phi(tan=-1.27994, x=0.615661, y=-0.788011): -1.279941632193\n    test 2610 308 308.093392183249 Beta(tan=-1.27565, x=0.616945, y=-0.787006): -1.279941632193\n    test 2611 308 308.186859283180 Theta(tan=-1.27137, x=0.618228, y=-0.785999): -1.279941632193\n    test 2612 308 308.140102302012 Mu(tan=-1.27351, x=0.617587, y=-0.786503): -1.279941632193\n    test 2613 308 308.186729722475 Chi(tan=-1.27138, x=0.618226, y=-0.786): -1.279941632193\n    test 2614 308 308.124543504213 Xi(tan=-1.27422, x=0.617373, y=-0.786671): -1.279941632193\n\n    test 2615 315 315.000000000000 Phi(tan=-1, x=0.707107, y=-0.707107): -1.000000000000\n    test 2616 315 315.096212150580 Beta(tan=-0.996647, x=0.707107, y=-0.704736): -1.000000000000\n    test 2617 315 315.192423215982 Theta(tan=-0.993306, x=0.707107, y=-0.702373): -1.000000000000\n    test 2618 315 315.144318011093 Mu(tan=-0.994975, x=0.708886, y=-0.705323), iteration=2: -1.000000000000\n    test 2619 315 315.192315943911 Chi(tan=-0.993309, x=1.0, y=-0.993309), iteration=3: -1.000000000000\n    test 2620 315 315.128297126566 Xi(tan=-0.995532, x=1.42374, y=-1.41738), iteration=3: -1.000000000000\n\n    test 2621 315 315.000000000000 Phi(tan=-1, x=0.707107, y=-0.707107): -1.000000000000\n    test 2622 315 315.096212150580 Beta(tan=-0.996647, x=0.708293, y=-0.705918): -1.000000000000\n    test 2623 315 315.192423215982 Theta(tan=-0.993306, x=0.709478, y=-0.704728): -1.000000000000\n    test 2624 315 315.144318011093 Mu(tan=-0.994975, x=0.708886, y=-0.705323): -1.000000000000\n    test 2625 315 315.192315943911 Chi(tan=-0.993309, x=0.709476, y=-0.704729): -1.000000000000\n    test 2626 315 315.128297126566 Xi(tan=-0.995532, x=0.708688, y=-0.705522): -1.000000000000\n\n    test 2627 322 322.000000000000 Phi(tan=-0.781286, x=0.788011, y=-0.615661): -0.781285626507\n    test 2628 322 322.093316334881 Beta(tan=-0.778666, x=0.788011, y=-0.613597): -0.781285626507\n    test 2629 322 322.186555893687 Theta(tan=-0.776055, x=0.788011, y=-0.61154): -0.781285626507\n    test 2630 322 322.139960086634 Mu(tan=-0.777359, x=0.789512, y=-0.613735), iteration=3: -0.781285626507\n    test 2631 322 322.186477167765 Chi(tan=-0.776058, x=1.0, y=-0.776058), iteration=3: -0.781285626507\n    test 2632 322 322.124428869604 Xi(tan=-0.777794, x=1.58578, y=-1.23341), iteration=2: -0.781285626507\n\n    test 2633 322 322.000000000000 Phi(tan=-0.781286, x=0.788011, y=-0.615661): -0.781285626507\n    test 2634 322 322.093316334881 Beta(tan=-0.778666, x=0.789012, y=-0.614377): -0.781285626507\n    test 2635 322 322.186555893687 Theta(tan=-0.776055, x=0.790011, y=-0.613092): -0.781285626507\n    test 2636 322 322.139960086634 Mu(tan=-0.777359, x=0.789512, y=-0.613735): -0.781285626507\n    test 2637 322 322.186477167765 Chi(tan=-0.776058, x=0.79001, y=-0.613094): -0.781285626507\n    test 2638 322 322.124428869604 Xi(tan=-0.777794, x=0.789346, y=-0.613949): -0.781285626507\n\n    test 2639 329 329.000000000000 Phi(tan=-0.600861, x=0.857167, y=-0.515038): -0.600860619028\n    test 2640 329 329.084883386958 Beta(tan=-0.598846, x=0.857167, y=-0.513311): -0.600860619028\n    test 2641 329 329.169632300503 Theta(tan=-0.596838, x=0.857167, y=-0.51159): -0.600860619028\n    test 2642 329 329.127299825611 Mu(tan=-0.597841, x=0.858309, y=-0.513132), iteration=2: -0.600860619028\n    test 2643 329 329.169582272165 Chi(tan=-0.596839, x=1.0, y=-0.596839), iteration=3: -0.600860619028\n    test 2644 329 329.113178536759 Xi(tan=-0.598175, x=1.72407, y=-1.0313), iteration=3: -0.600860619028\n\n    test 2645 329 329.000000000000 Phi(tan=-0.600861, x=0.857167, y=-0.515038): -0.600860619028\n    test 2646 329 329.084883386958 Beta(tan=-0.598846, x=0.857929, y=-0.513768): -0.600860619028\n    test 2647 329 329.169632300503 Theta(tan=-0.596838, x=0.858688, y=-0.512498): -0.600860619028\n    test 2648 329 329.127299825611 Mu(tan=-0.597841, x=0.858309, y=-0.513132): -0.600860619028\n    test 2649 329 329.169582272165 Chi(tan=-0.596839, x=0.858688, y=-0.512499): -0.600860619028\n    test 2650 329 329.113178536759 Xi(tan=-0.598175, x=0.858183, y=-0.513344): -0.600860619028\n\n    test 2651 336 336.000000000000 Phi(tan=-0.445229, x=0.913545, y=-0.406737): -0.445228685309\n    test 2652 336 336.071419343981 Beta(tan=-0.443736, x=0.913545, y=-0.405373): -0.445228685309\n    test 2653 336 336.142677929298 Theta(tan=-0.442248, x=0.913545, y=-0.404014): -0.445228685309\n    test 2654 336 336.107098812499 Mu(tan=-0.442991, x=0.914304, y=-0.405028), iteration=3: -0.445228685309\n    test 2655 336 336.142651717918 Chi(tan=-0.442249, x=1.0, y=-0.442249), iteration=3: -0.445228685309\n    test 2656 336 336.095222120427 Xi(tan=-0.443239, x=1.83665, y=-0.814074), iteration=3: -0.445228685309\n\n    test 2657 336 336.000000000000 Phi(tan=-0.445229, x=0.913545, y=-0.406737): -0.445228685309\n    test 2658 336 336.071419343981 Beta(tan=-0.443736, x=0.914052, y=-0.405598): -0.445228685309\n    test 2659 336 336.142677929298 Theta(tan=-0.442248, x=0.914555, y=-0.40446): -0.445228685309\n    test 2660 336 336.107098812499 Mu(tan=-0.442991, x=0.914304, y=-0.405028): -0.445228685309\n    test 2661 336 336.142651717918 Chi(tan=-0.442249, x=0.914555, y=-0.404461): -0.445228685309\n    test 2662 336 336.095222120427 Xi(tan=-0.443239, x=0.91422, y=-0.405218): -0.445228685309\n\n    test 2663 343 343.000000000000 Phi(tan=-0.305731, x=0.956305, y=-0.292372): -0.305730681459\n    test 2664 343 343.053726392145 Beta(tan=-0.304706, x=0.956305, y=-0.291391): -0.305730681459\n    test 2665 343 343.107303214923 Theta(tan=-0.303684, x=0.956305, y=-0.290414): -0.305730681459\n    test 2666 343 343.080561476830 Mu(tan=-0.304194, x=0.956715, y=-0.291027), iteration=3: -0.305730681459\n    test 2667 343 343.107293039045 Chi(tan=-0.303684, x=1.0, y=-0.303684), iteration=2: -0.305730681459\n    test 2668 343 343.071629868756 Xi(tan=-0.304364, x=1.92193, y=-0.584967), iteration=2: -0.305730681459\n\n    test 2669 343 343.000000000000 Phi(tan=-0.305731, x=0.956305, y=-0.292372): -0.305730681459\n    test 2670 343 343.053726392145 Beta(tan=-0.304706, x=0.956578, y=-0.291475): -0.305730681459\n    test 2671 343 343.107303214923 Theta(tan=-0.303684, x=0.956851, y=-0.29058): -0.305730681459\n    test 2672 343 343.080561476830 Mu(tan=-0.304194, x=0.956715, y=-0.291027): -0.305730681459\n    test 2673 343 343.107293039045 Chi(tan=-0.303684, x=0.956851, y=-0.29058): -0.305730681459\n    test 2674 343 343.071629868756 Xi(tan=-0.304364, x=0.95667, y=-0.291176): -0.305730681459\n\n    test 2675 350 350.000000000000 Phi(tan=-0.176327, x=0.984808, y=-0.173648): -0.176326980708\n    test 2676 350 350.032854677782 Beta(tan=-0.175736, x=0.984808, y=-0.173066): -0.176326980708\n    test 2677 350 350.065605789721 Theta(tan=-0.175147, x=0.984808, y=-0.172486): -0.176326980708\n    test 2678 350 350.049262546520 Mu(tan=-0.175441, x=0.984957, y=-0.172801), iteration=3: -0.176326980708\n    test 2679 350 350.065603596501 Chi(tan=-0.175147, x=1.0, y=-0.175147), iteration=2: -0.176326980708\n    test 2680 350 350.043801901064 Xi(tan=-0.175539, x=1.97873, y=-0.347343), iteration=3: -0.176326980708\n\n    test 2681 350 350.000000000000 Phi(tan=-0.176327, x=0.984808, y=-0.173648): -0.176326980708\n    test 2682 350 350.032854677782 Beta(tan=-0.175736, x=0.984907, y=-0.173083): -0.176326980708\n    test 2683 350 350.065605789721 Theta(tan=-0.175147, x=0.985006, y=-0.17252): -0.176326980708\n    test 2684 350 350.049262546520 Mu(tan=-0.175441, x=0.984957, y=-0.172801): -0.176326980708\n    test 2685 350 350.065603596501 Chi(tan=-0.175147, x=0.985006, y=-0.17252): -0.176326980708\n    test 2686 350 350.043801901064 Xi(tan=-0.175539, x=0.98494, y=-0.172895): -0.176326980708\n\n    test 2687 357 357.000000000000 Phi(tan=-0.0524078, x=0.99863, y=-0.052336): -0.052407779283\n    test 2688 357 357.010040150331 Beta(tan=-0.0522321, x=0.99863, y=-0.0521605): -0.052407779283\n    test 2689 357 357.020046820811 Theta(tan=-0.0520569, x=0.99863, y=-0.0519856): -0.052407779283\n    test 2690 357 357.015053930532 Mu(tan=-0.0521443, x=0.998643, y=-0.0520736), iteration=3: -0.052407779283\n    test 2691 357 357.020046759956 Chi(tan=-0.0520569, x=1.0, y=-0.0520569), iteration=3: -0.052407779283\n    test 2692 357 357.013385378246 Xi(tan=-0.0521735, x=2.00625, y=-0.104673), iteration=3: -0.052407779283\n\n    test 2693 357 357.000000000000 Phi(tan=-0.0524078, x=0.99863, y=-0.052336): -0.052407779283\n    test 2694 357 357.010040150331 Beta(tan=-0.0522321, x=0.998639, y=-0.052161): -0.052407779283\n    test 2695 357 357.020046820811 Theta(tan=-0.0520569, x=0.998648, y=-0.0519865): -0.052407779283\n    test 2696 357 357.015053930532 Mu(tan=-0.0521443, x=0.998643, y=-0.0520736): -0.052407779283\n    test 2697 357 357.020046759956 Chi(tan=-0.0520569, x=0.998648, y=-0.0519866): -0.052407779283\n    test 2698 357 357.013385378246 Xi(tan=-0.0521735, x=0.998642, y=-0.0521027): -0.052407779283\n\n    test 2699  0 0.000000000000 Phi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 2700  0 0.000000000000 Beta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 2701  0 0.000000000000 Theta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 2702  0 0.000000000000 Mu(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 2703  0 0.000000000000 Chi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 2704  0 0.000000000000 Xi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n\n    test 2705  0 0.000000000000 Phi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 2706  0 0.000000000000 Beta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 2707  0 0.000000000000 Theta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 2708  0 0.000000000000 Mu(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 2709  0 0.000000000000 Chi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 2710  0 0.000000000000 Xi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n\n    test 2711  7 7.046703746044 Phi(tan=0.123612, x=0.992546, y=0.122691): 0.122784560903\n    test 2712  7 7.023313832609 Beta(tan=0.123198, x=0.992546, y=0.122279): 0.122784560903\n    test 2713  7 7.000000000000 Theta(tan=0.122785, x=0.992546, y=0.121869): 0.122784560903\n    test 2714  7 7.011633179954 Mu(tan=0.122991, x=0.992521, y=0.122071), iteration=3: 0.122784560903\n    test 2715  7 7.000000779127 Chi(tan=0.122785, x=1.0, y=0.122785), iteration=2: 0.122784560903\n    test 2716  7 7.015520491938 Xi(tan=0.12306, x=1.99394, y=0.245373), iteration=2: 0.122784560903\n\n    test 2717  7 7.046703746044 Phi(tan=0.123612, x=0.992446, y=0.122678): 0.122784560903\n    test 2718  7 7.023313832609 Beta(tan=0.123198, x=0.992496, y=0.122273): 0.122784560903\n    test 2719  7 7.000000000000 Theta(tan=0.122785, x=0.992546, y=0.121869): 0.122784560903\n    test 2720  7 7.011633179954 Mu(tan=0.122991, x=0.992521, y=0.122071): 0.122784560903\n    test 2721  7 7.000000779127 Chi(tan=0.122785, x=0.992546, y=0.121869): 0.122784560903\n    test 2722  7 7.015520491938 Xi(tan=0.12306, x=0.992513, y=0.122138): 0.122784560903\n\n    test 2723 14 14.090606168436 Phi(tan=0.251008, x=0.970296, y=0.243552): 0.249328002843\n    test 2724 14 14.045235971490 Beta(tan=0.250167, x=0.970296, y=0.242736): 0.249328002843\n    test 2725 14 14.000000000000 Theta(tan=0.249328, x=0.970296, y=0.241922): 0.249328002843\n    test 2726 14 14.022576103630 Mu(tan=0.249747, x=0.9702, y=0.242304), iteration=3: 0.249328002843\n    test 2727 14 14.000005955939 Chi(tan=0.249328, x=1.0, y=0.249328), iteration=2: 0.249328002843\n    test 2728 14 14.030117773793 Xi(tan=0.249886, x=1.94905, y=0.487041), iteration=3: 0.249328002843\n\n    test 2729 14 14.090606168436 Phi(tan=0.251008, x=0.969912, y=0.243456): 0.249328002843\n    test 2730 14 14.045235971490 Beta(tan=0.250167, x=0.970104, y=0.242688): 0.249328002843\n    test 2731 14 14.000000000000 Theta(tan=0.249328, x=0.970296, y=0.241922): 0.249328002843\n    test 2732 14 14.022576103630 Mu(tan=0.249747, x=0.9702, y=0.242304): 0.249328002843\n    test 2733 14 14.000005955939 Chi(tan=0.249328, x=0.970296, y=0.241922): 0.249328002843\n    test 2734 14 14.030117773793 Xi(tan=0.249886, x=0.970168, y=0.242432): 0.249328002843\n\n    test 2735 21 21.129078684131 Phi(tan=0.386451, x=0.93358, y=0.360783): 0.383864035035\n    test 2736 21 21.064458966605 Beta(tan=0.385155, x=0.93358, y=0.359574): 0.383864035035\n    test 2737 21 21.000000000000 Theta(tan=0.383864, x=0.93358, y=0.358368): 0.383864035035\n    test 2738 21 21.032179314629 Mu(tan=0.384509, x=0.933379, y=0.358892), iteration=3: 0.383864035035\n    test 2739 21 21.000018617196 Chi(tan=0.383864, x=1.0, y=0.383864), iteration=3: 0.383864035035\n    test 2740 21 21.042923749309 Xi(tan=0.384724, x=1.875, y=0.721359), iteration=3: 0.383864035035\n\n    test 2741 21 21.129078684131 Phi(tan=0.386451, x=0.932771, y=0.36047): 0.383864035035\n    test 2742 21 21.064458966605 Beta(tan=0.385155, x=0.933177, y=0.359418): 0.383864035035\n    test 2743 21 21.000000000000 Theta(tan=0.383864, x=0.93358, y=0.358368): 0.383864035035\n    test 2744 21 21.032179314629 Mu(tan=0.384509, x=0.933379, y=0.358892): 0.383864035035\n    test 2745 21 21.000018617196 Chi(tan=0.383864, x=0.93358, y=0.358368): 0.383864035035\n    test 2746 21 21.042923749309 Xi(tan=0.384724, x=0.933312, y=0.359067): 0.383864035035\n\n    test 2747 28 28.159826417635 Phi(tan=0.535293, x=0.882948, y=0.472636): 0.531709431661\n    test 2748 28 28.079838480095 Beta(tan=0.533498, x=0.882948, y=0.471051): 0.531709431661\n    test 2749 28 28.000000000000 Theta(tan=0.531709, x=0.882948, y=0.469472): 0.531709431661\n    test 2750 28 28.039872584755 Mu(tan=0.532602, x=0.882621, y=0.470086), iteration=2: 0.531709431661\n    test 2751 28 28.000039556231 Chi(tan=0.53171, x=1.0, y=0.53171), iteration=3: 0.531709431661\n    test 2752 28 28.053177215354 Xi(tan=0.532901, x=1.77295, y=0.944805), iteration=3: 0.531709431661\n\n    test 2753 28 28.159826417635 Phi(tan=0.535293, x=0.881635, y=0.471933): 0.531709431661\n    test 2754 28 28.079838480095 Beta(tan=0.533498, x=0.882293, y=0.470701): 0.531709431661\n    test 2755 28 28.000000000000 Theta(tan=0.531709, x=0.882948, y=0.469472): 0.531709431661\n    test 2756 28 28.039872584755 Mu(tan=0.532602, x=0.882621, y=0.470086): 0.531709431661\n    test 2757 28 28.000039556231 Chi(tan=0.53171, x=0.882947, y=0.469472): 0.531709431661\n    test 2758 28 28.053177215354 Xi(tan=0.532901, x=0.882511, y=0.470291): 0.531709431661\n\n    test 2759 35 35.181026690786 Phi(tan=0.704927, x=0.819152, y=0.577442): 0.700207538210\n    test 2760 35 35.090461812463 Beta(tan=0.702563, x=0.819152, y=0.575506): 0.700207538210\n    test 2761 35 35.000000000000 Theta(tan=0.700208, x=0.819152, y=0.573576): 0.700207538210\n    test 2762 35 35.045198725900 Mu(tan=0.701384, x=0.818699, y=0.574222), iteration=3: 0.700207538210\n    test 2763 35 35.000066866642 Chi(tan=0.700209, x=1.0, y=0.700209), iteration=2: 0.700207538210\n    test 2764 35 35.060269183174 Xi(tan=0.701776, x=1.64445, y=1.15403), iteration=3: 0.700207538210\n\n    test 2765 35 35.181026690786 Phi(tan=0.704927, x=0.817336, y=0.576162): 0.700207538210\n    test 2766 35 35.090461812463 Beta(tan=0.702563, x=0.818245, y=0.574869): 0.700207538210\n    test 2767 35 35.000000000000 Theta(tan=0.700208, x=0.819152, y=0.573576): 0.700207538210\n    test 2768 35 35.045198725900 Mu(tan=0.701384, x=0.818699, y=0.574222): 0.700207538210\n    test 2769 35 35.000066866642 Chi(tan=0.700209, x=0.819151, y=0.573577): 0.700207538210\n    test 2770 35 35.060269183174 Xi(tan=0.701776, x=0.818548, y=0.574438): 0.700207538210\n\n    test 2771 42 42.191436312869 Phi(tan=0.906472, x=0.743145, y=0.67364): 0.900404044298\n    test 2772 42 42.095701889505 Beta(tan=0.903433, x=0.743145, y=0.671382): 0.900404044298\n    test 2773 42 42.000000000000 Theta(tan=0.900404, x=0.743145, y=0.669131): 0.900404044298\n    test 2774 42 42.047840790779 Mu(tan=0.901917, x=0.742586, y=0.669751), iteration=3: 0.900404044298\n    test 2775 42 42.000096219009 Chi(tan=0.900407, x=1.0, y=0.900407), iteration=2: 0.900404044298\n    test 2776 42 42.063779025222 Xi(tan=0.902422, x=1.49147, y=1.34593), iteration=2: 0.900404044298\n\n    test 2777 42 42.191436312869 Phi(tan=0.906472, x=0.740905, y=0.67161): 0.900404044298\n    test 2778 42 42.095701889505 Beta(tan=0.903433, x=0.742026, y=0.670371): 0.900404044298\n    test 2779 42 42.000000000000 Theta(tan=0.900404, x=0.743145, y=0.669131): 0.900404044298\n    test 2780 42 42.047840790779 Mu(tan=0.901917, x=0.742586, y=0.669751): 0.900404044298\n    test 2781 42 42.000096219009 Chi(tan=0.900407, x=0.743144, y=0.669132): 0.900404044298\n    test 2782 42 42.063779025222 Xi(tan=0.902422, x=0.7424, y=0.669957): 0.900404044298\n\n    test 2783 49 49.190461558643 Phi(tan=1.15812, x=0.656059, y=0.759796): 1.150368407221\n    test 2784 49 49.095253561343 Beta(tan=1.15424, x=0.656059, y=0.757248): 1.150368407221\n    test 2785 49 49.000000000000 Theta(tan=1.15037, x=0.656059, y=0.75471): 1.150368407221\n    test 2786 49 49.047641033804 Mu(tan=1.1523, x=0.655431, y=0.755255), iteration=3: 1.150368407221\n    test 2787 49 49.000121761599 Chi(tan=1.15037, x=1.0, y=1.15037), iteration=3: 1.150368407221\n    test 2788 49 49.063499305647 Xi(tan=1.15295, x=1.31633, y=1.51766), iteration=3: 1.150368407221\n\n    test 2789 49 49.190461558643 Phi(tan=1.15812, x=0.653547, y=0.756886): 1.150368407221\n    test 2790 49 49.095253561343 Beta(tan=1.15424, x=0.654803, y=0.755799): 1.150368407221\n    test 2791 49 49.000000000000 Theta(tan=1.15037, x=0.656059, y=0.75471): 1.150368407221\n    test 2792 49 49.047641033804 Mu(tan=1.1523, x=0.655431, y=0.755255): 1.150368407221\n    test 2793 49 49.000121761599 Chi(tan=1.15037, x=0.656057, y=0.754711): 1.150368407221\n    test 2794 49 49.063499305647 Xi(tan=1.15295, x=0.655222, y=0.755436): 1.150368407221\n\n    test 2795 56 56.178187618527 Phi(tan=1.49255, x=0.559193, y=0.834625): 1.482560968513\n    test 2796 56 56.089150284766 Beta(tan=1.48755, x=0.559193, y=0.831827): 1.482560968513\n    test 2797 56 56.000000000000 Theta(tan=1.48256, x=0.559193, y=0.829038): 1.482560968513\n    test 2798 56 56.044610470922 Mu(tan=1.48505, x=0.558547, y=0.829473), iteration=3: 1.482560968513\n    test 2799 56 56.000137435853 Chi(tan=1.48257, x=1.0, y=1.48257), iteration=3: 1.482560968513\n    test 2800 56 56.059447854026 Xi(tan=1.48588, x=1.12168, y=1.66668), iteration=2: 1.482560968513\n\n    test 2801 56 56.178187618527 Phi(tan=1.49255, x=0.556612, y=0.830773): 1.482560968513\n    test 2802 56 56.089150284766 Beta(tan=1.48755, x=0.557902, y=0.829907): 1.482560968513\n    test 2803 56 56.000000000000 Theta(tan=1.48256, x=0.559193, y=0.829038): 1.482560968513\n    test 2804 56 56.044610470922 Mu(tan=1.48505, x=0.558547, y=0.829473): 1.482560968513\n    test 2805 56 56.000137435853 Chi(tan=1.48257, x=0.559191, y=0.829039): 1.482560968513\n    test 2806 56 56.059447854026 Xi(tan=1.48588, x=0.558332, y=0.829617): 1.482560968513\n\n    test 2807 63 63.155367155141 Phi(tan=1.97584, x=0.45399, y=0.897011): 1.962610505505\n    test 2808 63 63.077760538972 Beta(tan=1.96921, x=0.45399, y=0.894004): 1.962610505505\n    test 2809 63 63.000000000000 Theta(tan=1.96261, x=0.45399, y=0.891007): 1.962610505505\n    test 2810 63 63.038928423958 Mu(tan=1.96591, x=0.453385, y=0.891315), iteration=3: 1.962610505505\n    test 2811 63 63.000138398794 Chi(tan=1.96262, x=1.0, y=1.96262), iteration=3: 1.962610505505\n    test 2812 63 63.051866422105 Xi(tan=1.96701, x=0.910437, y=1.79084), iteration=3: 1.962610505505\n\n    test 2813 63 63.155367155141 Phi(tan=1.97584, x=0.451573, y=0.892234): 1.962610505505\n    test 2814 63 63.077760538972 Beta(tan=1.96921, x=0.452781, y=0.891622): 1.962610505505\n    test 2815 63 63.000000000000 Theta(tan=1.96261, x=0.45399, y=0.891007): 1.962610505505\n    test 2816 63 63.038928423958 Mu(tan=1.96591, x=0.453385, y=0.891315): 1.962610505505\n    test 2817 63 63.000138398794 Chi(tan=1.96262, x=0.453988, y=0.891008): 1.962610505505\n    test 2818 63 63.051866422105 Xi(tan=1.96701, x=0.453184, y=0.891417): 1.962610505505\n\n    test 2819 70 70.123370137625 Phi(tan=2.76599, x=0.34202, y=0.946026): 2.747477419455\n    test 2820 70 70.061764561164 Beta(tan=2.75672, x=0.34202, y=0.942854): 2.747477419455\n    test 2821 70 70.000000000000 Theta(tan=2.74748, x=0.34202, y=0.939693): 2.747477419455\n    test 2822 70 70.030932030288 Mu(tan=2.7521, x=0.341513, y=0.939877), iteration=3: 2.747477419455\n    test 2823 70 70.000122219482 Chi(tan=2.7475, x=1.0, y=2.7475), iteration=3: 2.747477419455\n    test 2824 70 70.041206070039 Xi(tan=2.75364, x=0.685754, y=1.88832), iteration=2: 2.747477419455\n\n    test 2825 70 70.123370137625 Phi(tan=2.76599, x=0.339996, y=0.940427): 2.747477419455\n    test 2826 70 70.061764561164 Beta(tan=2.75672, x=0.341007, y=0.940061): 2.747477419455\n    test 2827 70 70.000000000000 Theta(tan=2.74748, x=0.34202, y=0.939693): 2.747477419455\n    test 2828 70 70.030932030288 Mu(tan=2.7521, x=0.341513, y=0.939877): 2.747477419455\n    test 2829 70 70.000122219482 Chi(tan=2.7475, x=0.342018, y=0.939693): 2.747477419455\n    test 2830 70 70.041206070039 Xi(tan=2.75364, x=0.341344, y=0.939938): 2.747477419455\n\n    test 2831 77 77.084099185826 Phi(tan=4.36067, x=0.224951, y=0.980937): 4.331475874284\n    test 2832 77 77.042113102652 Beta(tan=4.34605, x=0.224951, y=0.977648): 4.331475874284\n    test 2833 77 77.000000000000 Theta(tan=4.33148, x=0.224951, y=0.97437): 4.331475874284\n    test 2834 77 77.021096305787 Mu(tan=4.33876, x=0.224592, y=0.974453), iteration=3: 4.331475874284\n    test 2835 77 77.000089569308 Chi(tan=4.33151, x=1.0, y=4.33151), iteration=2: 4.331475874284\n    test 2836 77 77.028100210930 Xi(tan=4.34119, x=0.450962, y=1.95771), iteration=3: 4.331475874284\n\n    test 2837 77 77.084099185826 Phi(tan=4.36067, x=0.223521, y=0.974699): 4.331475874284\n    test 2838 77 77.042113102652 Beta(tan=4.34605, x=0.224235, y=0.974535): 4.331475874284\n    test 2839 77 77.000000000000 Theta(tan=4.33148, x=0.224951, y=0.97437): 4.331475874284\n    test 2840 77 77.021096305787 Mu(tan=4.33876, x=0.224592, y=0.974453): 4.331475874284\n    test 2841 77 77.000089569308 Chi(tan=4.33151, x=0.22495, y=0.97437): 4.331475874284\n    test 2842 77 77.028100210930 Xi(tan=4.34119, x=0.224473, y=0.97448): 4.331475874284\n\n    test 2843 84 84.039876185217 Phi(tan=9.57849, x=0.104528, y=1.00122): 9.514364454223\n    test 2844 84 84.019970846274 Beta(tan=9.54637, x=0.104528, y=0.997868): 9.514364454223\n    test 2845 84 84.000000000000 Theta(tan=9.51436, x=0.104528, y=0.994522): 9.514364454223\n    test 2846 84 84.010005927895 Mu(tan=9.53037, x=0.104355, y=0.99454), iteration=3: 9.514364454223\n    test 2847 84 84.000044242373 Chi(tan=9.51444, x=1.0, y=9.51444), iteration=2: 9.514364454223\n    test 2848 84 84.013326954497 Xi(tan=9.5357, x=0.209531, y=1.99802), iteration=3: 9.514364454223\n\n    test 2849 84 84.039876185217 Phi(tan=9.57849, x=0.103836, y=0.994594): 9.514364454223\n    test 2850 84 84.019970846274 Beta(tan=9.54637, x=0.104182, y=0.994558): 9.514364454223\n    test 2851 84 84.000000000000 Theta(tan=9.51436, x=0.104528, y=0.994522): 9.514364454223\n    test 2852 84 84.010005927895 Mu(tan=9.53037, x=0.104355, y=0.99454): 9.514364454223\n    test 2853 84 84.000044242373 Chi(tan=9.51444, x=0.104528, y=0.994522): 9.514364454223\n    test 2854 84 84.013326954497 Xi(tan=9.5357, x=0.104297, y=0.994546): 9.514364454223\n\n    test 2855 91 90.993306965793 Phi(tan=-57.6761, x=-0.0174524, y=1.00659): -57.289961630759\n    test 2856 91 90.996647866757 Beta(tan=-57.4827, x=-0.0174524, y=1.00321): -57.289961630759\n    test 2857 91 91.000000000000 Theta(tan=-57.29, x=-0.0174524, y=0.999848): -57.289961630759\n    test 2858 91 90.998320417403 Mu(tan=-57.3864, x=-0.0174231, y=0.999848), iteration=3: -57.289961630759\n    test 2859 91 90.999992494484 Chi(tan=-57.2904, x=-1, y=57.2904), iteration=3: -57.289961630759\n    test 2860 91 90.997762994841 Xi(tan=-57.4184, x=-0.0349831, y=2.00868), iteration=3: -57.289961630759\n\n    test 2861 91 90.993306965793 Phi(tan=-57.6761, x=-0.0173356, y=0.99985): -57.289961630760  FAILED, KNOWN (4.3409e-15), expected -57.289961630759\n    test 2862 91 90.996647866757 Beta(tan=-57.4827, x=-0.0173939, y=0.999849): -57.289961630759\n    test 2863 91 91.000000000000 Theta(tan=-57.29, x=-0.0174524, y=0.999848): -57.289961630759\n    test 2864 91 90.998320417403 Mu(tan=-57.3864, x=-0.0174231, y=0.999848): -57.289961630760  FAILED, KNOWN (4.3409e-15), expected -57.289961630759\n    test 2865 91 90.999992494484 Chi(tan=-57.2904, x=-0.0174523, y=0.999848): -57.289961630760  FAILED, KNOWN (3.72077e-15), expected -57.289961630759\n    test 2866 91 90.997762994841 Xi(tan=-57.4184, x=-0.0174134, y=0.999848): -57.289961630760  FAILED, KNOWN (2.85259e-15), expected -57.289961630759\n\n    test 2867 98 97.947131466338 Phi(tan=-7.16332, x=-0.139173, y=0.996942): -7.115369722384\n    test 2868 98 97.973523052479 Beta(tan=-7.13931, x=-0.139173, y=0.993599): -7.115369722384\n    test 2869 98 98.000000000000 Theta(tan=-7.11537, x=-0.139173, y=0.990268): -7.115369722384\n    test 2870 98 97.986734807520 Mu(tan=-7.12734, x=-0.138944, y=0.9903), iteration=3: -7.115369722384\n    test 2871 98 97.999941842742 Chi(tan=-7.11542, x=-1, y=7.11542), iteration=3: -7.115369722384\n    test 2872 98 97.982331755375 Xi(tan=-7.13133, x=-0.278982, y=1.98951), iteration=3: -7.115369722384\n\n    test 2873 98 97.947131466338 Phi(tan=-7.16332, x=-0.138259, y=0.990396): -7.115369722384\n    test 2874 98 97.973523052479 Beta(tan=-7.13931, x=-0.138715, y=0.990332): -7.115369722384\n    test 2875 98 98.000000000000 Theta(tan=-7.11537, x=-0.139173, y=0.990268): -7.115369722384\n    test 2876 98 97.986734807520 Mu(tan=-7.12734, x=-0.138944, y=0.9903): -7.115369722384\n    test 2877 98 97.999941842742 Chi(tan=-7.11542, x=-0.139172, y=0.990268): -7.115369722384\n    test 2878 98 97.982331755375 Xi(tan=-7.13133, x=-0.138868, y=0.990311): -7.115369722384\n\n    test 2879 105 104.904067139653 Phi(tan=-3.7572, x=-0.258819, y=0.972436): -3.732050807569\n    test 2880 105 104.951963747366 Beta(tan=-3.74461, x=-0.258819, y=0.969175): -3.732050807569\n    test 2881 105 105.000000000000 Theta(tan=-3.73205, x=-0.258819, y=0.965926): -3.732050807569\n    test 2882 105 104.975938169742 Mu(tan=-3.73833, x=-0.258413, y=0.966034), iteration=3: -3.732050807569\n    test 2883 105 104.999899588330 Chi(tan=-3.73208, x=-1, y=3.73208), iteration=3: -3.732050807569\n    test 2884 105 104.967948816895 Xi(tan=-3.74042, x=-0.518877, y=1.94082), iteration=2: -3.732050807569\n\n    test 2885 105 104.904067139653 Phi(tan=-3.7572, x=-0.257201, y=0.966358): -3.732050807569\n    test 2886 105 104.951963747366 Beta(tan=-3.74461, x=-0.258009, y=0.966142): -3.732050807569\n    test 2887 105 105.000000000000 Theta(tan=-3.73205, x=-0.258819, y=0.965926): -3.732050807569\n    test 2888 105 104.975938169742 Mu(tan=-3.73833, x=-0.258413, y=0.966034): -3.732050807569\n    test 2889 105 104.999899588330 Chi(tan=-3.73208, x=-0.258817, y=0.965926): -3.732050807569\n    test 2890 105 104.967948816895 Xi(tan=-3.74042, x=-0.258279, y=0.96607): -3.732050807569\n\n    test 2891 112 111.866653486751 Phi(tan=-2.49177, x=-0.374607, y=0.933433): -2.475086853416\n    test 2892 112 111.933246025813 Beta(tan=-2.48341, x=-0.374607, y=0.930303): -2.475086853416\n    test 2893 112 112.000000000000 Theta(tan=-2.47509, x=-0.374607, y=0.927184): -2.475086853416\n    test 2894 112 111.966572499608 Mu(tan=-2.47925, x=-0.374066, y=0.927402), iteration=3: -2.475086853416\n    test 2895 112 111.999871386688 Chi(tan=-2.4751, x=-1, y=2.4751), iteration=3: -2.475086853416\n    test 2896 112 111.955467801390 Xi(tan=-2.48064, x=-0.751129, y=1.86328), iteration=2: -2.475086853416\n\n    test 2897 112 111.866653486751 Phi(tan=-2.49177, x=-0.372448, y=0.928053): -2.475086853416\n    test 2898 112 111.933246025813 Beta(tan=-2.48341, x=-0.373526, y=0.92762): -2.475086853416\n    test 2899 112 112.000000000000 Theta(tan=-2.47509, x=-0.374607, y=0.927184): -2.475086853416\n    test 2900 112 111.966572499608 Mu(tan=-2.47925, x=-0.374066, y=0.927402): -2.475086853416\n    test 2901 112 111.999871386688 Chi(tan=-2.4751, x=-0.374605, y=0.927185): -2.475086853416\n    test 2902 112 111.955467801390 Xi(tan=-2.48064, x=-0.373886, y=0.927475): -2.475086853416\n\n    test 2903 119 118.837105586950 Phi(tan=-1.81621, x=-0.48481, y=0.880514): -1.804047755271\n    test 2904 119 118.918479987923 Beta(tan=-1.81012, x=-0.48481, y=0.877562): -1.804047755271\n    test 2905 119 119.000000000000 Theta(tan=-1.80405, x=-0.48481, y=0.87462): -1.804047755271\n    test 2906 119 118.959194442963 Mu(tan=-1.80708, x=-0.484187, y=0.874965), iteration=3: -1.804047755271\n    test 2907 119 118.999860178783 Chi(tan=-1.80406, x=-1, y=1.80406), iteration=3: -1.804047755271\n    test 2908 119 118.945629859635 Xi(tan=-1.80809, x=-0.972305, y=1.75802), iteration=3: -1.804047755271\n\n    test 2909 119 118.837105586950 Phi(tan=-1.81621, x=-0.482321, y=0.875995): -1.804047755271\n    test 2910 119 118.918479987923 Beta(tan=-1.81012, x=-0.483565, y=0.875309): -1.804047755271\n    test 2911 119 119.000000000000 Theta(tan=-1.80405, x=-0.48481, y=0.87462): -1.804047755271\n    test 2912 119 118.959194442963 Mu(tan=-1.80708, x=-0.484187, y=0.874965): -1.804047755271\n    test 2913 119 118.999860178783 Chi(tan=-1.80406, x=-0.484807, y=0.874621): -1.804047755271\n    test 2914 119 118.945629859635 Xi(tan=-1.80809, x=-0.483979, y=0.875079): -1.804047755271\n\n    test 2915 126 125.817184307945 Phi(tan=-1.38566, x=-0.587785, y=0.814469): -1.376381920471\n    test 2916 126 125.908544256035 Beta(tan=-1.38101, x=-0.587785, y=0.811739): -1.376381920471\n    test 2917 126 126.000000000000 Theta(tan=-1.37638, x=-0.587785, y=0.809017): -1.376381920471\n    test 2918 126 125.954242166425 Mu(tan=-1.3787, x=-0.587139, y=0.809486), iteration=2: -1.376381920471\n    test 2919 126 125.999865716658 Chi(tan=-1.37639, x=-1, y=1.37639), iteration=3: -1.376381920471\n    test 2920 126 125.939019715793 Xi(tan=-1.37947, x=-1.17912, y=1.62655), iteration=2: -1.376381920471\n\n    test 2921 126 125.817184307945 Phi(tan=-1.38566, x=-0.585201, y=0.810888): -1.376381920471\n    test 2922 126 125.908544256035 Beta(tan=-1.38101, x=-0.586493, y=0.809954): -1.376381920471\n    test 2923 126 126.000000000000 Theta(tan=-1.37638, x=-0.587785, y=0.809017): -1.376381920471\n    test 2924 126 125.954242166425 Mu(tan=-1.3787, x=-0.587139, y=0.809486): -1.376381920471\n    test 2925 126 125.999865716658 Chi(tan=-1.37639, x=-0.587783, y=0.809018): -1.376381920471\n    test 2926 126 125.939019715793 Xi(tan=-1.37947, x=-0.586924, y=0.809642): -1.376381920471\n\n    test 2927 133 132.808090472544 Phi(tan=-1.0796, x=-0.681998, y=0.736283): -1.072368710025\n    test 2928 133 132.904033458108 Beta(tan=-1.07598, x=-0.681998, y=0.733814): -1.072368710025\n    test 2929 133 133.000000000000 Theta(tan=-1.07237, x=-0.681998, y=0.731354): -1.072368710025\n    test 2930 133 132.952009355583 Mu(tan=-1.07417, x=-0.681386, y=0.731925), iteration=2: -1.072368710025\n    test 2931 133 132.999884783382 Chi(tan=-1.07237, x=-1, y=1.07237), iteration=2: -1.072368710025\n    test 2932 133 132.936030863456 Xi(tan=-1.07477, x=-1.36848, y=1.4708), iteration=3: -1.072368710025\n\n    test 2933 133 132.808090472544 Phi(tan=-1.0796, x=-0.679545, y=0.733634): -1.072368710025\n    test 2934 133 132.904033458108 Beta(tan=-1.07598, x=-0.680772, y=0.732495): -1.072368710025\n    test 2935 133 133.000000000000 Theta(tan=-1.07237, x=-0.681998, y=0.731354): -1.072368710025\n    test 2936 133 132.952009355583 Mu(tan=-1.07417, x=-0.681386, y=0.731925): -1.072368710025\n    test 2937 133 132.999884783382 Chi(tan=-1.07237, x=-0.681997, y=0.731355): -1.072368710025\n    test 2938 133 132.936030863456 Xi(tan=-1.07477, x=-0.681181, y=0.732115): -1.072368710025\n\n    test 2939 140 139.810389526291 Phi(tan=-0.844755, x=-0.766044, y=0.64712): -0.839099631177\n    test 2940 140 139.905221888853 Beta(tan=-0.841922, x=-0.766044, y=0.64495): -0.839099631177\n    test 2941 140 140.000000000000 Theta(tan=-0.8391, x=-0.766044, y=0.642788): -0.839099631177\n    test 2942 140 139.952627882329 Mu(tan=-0.84051, x=-0.765513, y=0.643421), iteration=3: -0.839099631177\n    test 2943 140 139.999912050710 Chi(tan=-0.839102, x=-1, y=0.839102), iteration=3: -0.839099631177\n    test 2944 140 139.936841998365 Xi(tan=-0.84098, x=-1.53754, y=1.29304), iteration=2: -0.839099631177\n\n    test 2945 140 139.810389526291 Phi(tan=-0.844755, x=-0.763913, y=0.645319): -0.839099631177\n    test 2946 140 139.905221888853 Beta(tan=-0.841922, x=-0.76498, y=0.644054): -0.839099631177\n    test 2947 140 140.000000000000 Theta(tan=-0.8391, x=-0.766044, y=0.642788): -0.839099631177\n    test 2948 140 139.952627882329 Mu(tan=-0.84051, x=-0.765513, y=0.643421): -0.839099631177\n    test 2949 140 139.999912050710 Chi(tan=-0.839102, x=-0.766043, y=0.642789): -0.839099631177\n    test 2950 140 139.936841998365 Xi(tan=-0.84098, x=-0.765335, y=0.643632): -0.839099631177\n\n    test 2951 147 146.823972083650 Phi(tan=-0.653784, x=-0.838671, y=0.54831): -0.649407593198\n    test 2952 147 146.912045740495 Beta(tan=-0.651592, x=-0.838671, y=0.546471): -0.649407593198\n    test 2953 147 147.000000000000 Theta(tan=-0.649408, x=-0.838671, y=0.544639): -0.649407593198\n    test 2954 147 146.956060147954 Mu(tan=-0.650498, x=-0.838253, y=0.545282), iteration=2: -0.649407593198\n    test 2955 147 146.999941372376 Chi(tan=-0.649409, x=-1, y=0.649409), iteration=2: -0.649407593198\n    test 2956 147 146.941406134703 Xi(tan=-0.650863, x=-1.68375, y=1.09589), iteration=3: -0.649407593198\n\n    test 2957 147 146.823972083650 Phi(tan=-0.653784, x=-0.836993, y=0.547213): -0.649407593198\n    test 2958 147 146.912045740495 Beta(tan=-0.651592, x=-0.837834, y=0.545926): -0.649407593198\n    test 2959 147 147.000000000000 Theta(tan=-0.649408, x=-0.838671, y=0.544639): -0.649407593198\n    test 2960 147 146.956060147954 Mu(tan=-0.650498, x=-0.838253, y=0.545282): -0.649407593198\n    test 2961 147 146.999941372376 Chi(tan=-0.649409, x=-0.83867, y=0.54464): -0.649407593198\n    test 2962 147 146.941406134703 Xi(tan=-0.650863, x=-0.838113, y=0.545496): -0.649407593198\n\n    test 2963 154 153.848054049875 Phi(tan=-0.49102, x=-0.898794, y=0.441326): -0.487732588566\n    test 2964 154 153.924105301481 Beta(tan=-0.489373, x=-0.898794, y=0.439846): -0.487732588566\n    test 2965 154 154.000000000000 Theta(tan=-0.487733, x=-0.898794, y=0.438371): -0.487732588566\n    test 2966 154 153.962101517600 Mu(tan=-0.488552, x=-0.898504, y=0.438966), iteration=3: -0.487732588566\n    test 2967 154 153.999967210311 Chi(tan=-0.487733, x=-1, y=0.487733), iteration=3: -0.487732588566\n    test 2968 154 153.949453115559 Xi(tan=-0.488825, x=-1.80488, y=0.882271), iteration=3: -0.487732588566\n\n    test 2969 154 153.848054049875 Phi(tan=-0.49102, x=-0.897628, y=0.440753): -0.487732588566\n    test 2970 154 153.924105301481 Beta(tan=-0.489373, x=-0.898213, y=0.439561): -0.487732588566\n    test 2971 154 154.000000000000 Theta(tan=-0.487733, x=-0.898794, y=0.438371): -0.487732588566\n    test 2972 154 153.962101517600 Mu(tan=-0.488552, x=-0.898504, y=0.438966): -0.487732588566\n    test 2973 154 153.999967210311 Chi(tan=-0.487733, x=-0.898794, y=0.438372): -0.487732588566\n    test 2974 154 153.949453115559 Xi(tan=-0.488825, x=-0.898407, y=0.439164): -0.487732588566\n\n    test 2975 161 160.881217808592 Phi(tan=-0.346648, x=-0.945519, y=0.327762): -0.344327613290\n    test 2976 161 160.940687365843 Beta(tan=-0.345486, x=-0.945519, y=0.326663): -0.344327613290\n    test 2977 161 161.000000000000 Theta(tan=-0.344328, x=-0.945519, y=0.325568): -0.344327613290\n    test 2978 161 160.970392653926 Mu(tan=-0.344906, x=-0.94535, y=0.326057), iteration=3: -0.344327613290\n    test 2979 161 160.999985859992 Chi(tan=-0.344328, x=-1, y=0.344328), iteration=3: -0.344327613290\n    test 2980 161 160.960505433888 Xi(tan=-0.345099, x=-1.89908, y=0.655369), iteration=3: -0.344327613290\n\n    test 2981 161 160.881217808592 Phi(tan=-0.346648, x=-0.944842, y=0.327528): -0.344327613290\n    test 2982 161 160.940687365843 Beta(tan=-0.345486, x=-0.945181, y=0.326547): -0.344327613290\n    test 2983 161 161.000000000000 Theta(tan=-0.344328, x=-0.945519, y=0.325568): -0.344327613290\n    test 2984 161 160.970392653926 Mu(tan=-0.344906, x=-0.94535, y=0.326057): -0.344327613290\n    test 2985 161 160.999985859992 Chi(tan=-0.344328, x=-0.945518, y=0.325568): -0.344327613290\n    test 2986 161 160.960505433888 Xi(tan=-0.345099, x=-0.945294, y=0.32622): -0.344327613290\n\n    test 2987 168 167.921493317051 Phi(tan=-0.213989, x=-0.978148, y=0.209313): -0.212556561670\n    test 2988 168 167.960806838131 Beta(tan=-0.213272, x=-0.978148, y=0.208611): -0.212556561670\n    test 2989 168 168.000000000000 Theta(tan=-0.212557, x=-0.978148, y=0.207912): -0.212556561670\n    test 2990 168 167.980440972867 Mu(tan=-0.212913, x=-0.978077, y=0.208246), iteration=3: -0.212556561670\n    test 2991 168 167.999996188328 Chi(tan=-0.212557, x=-1, y=0.212557), iteration=3: -0.212556561670\n    test 2992 168 167.973906475806 Xi(tan=-0.213033, x=-1.96489, y=0.418585), iteration=3: -0.212556561670\n\n    test 2993 168 167.921493317051 Phi(tan=-0.213989, x=-0.977862, y=0.209252): -0.212556561670\n    test 2994 168 167.960806838131 Beta(tan=-0.213272, x=-0.978005, y=0.208581): -0.212556561670\n    test 2995 168 168.000000000000 Theta(tan=-0.212557, x=-0.978148, y=0.207912): -0.212556561670\n    test 2996 168 167.980440972867 Mu(tan=-0.212913, x=-0.978077, y=0.208246): -0.212556561670\n    test 2997 168 167.999996188328 Chi(tan=-0.212557, x=-0.978148, y=0.207912): -0.212556561670\n    test 2998 168 167.973906475806 Xi(tan=-0.213033, x=-0.978053, y=0.208357): -0.212556561670\n\n    test 2999 175 174.966475056686 Phi(tan=-0.0880783, x=-0.996195, y=0.0877431): -0.087488663526\n    test 3000 175 174.983265245736 Beta(tan=-0.087783, x=-0.996195, y=0.0874489): -0.087488663526\n    test 3001 175 175.000000000000 Theta(tan=-0.0874887, x=-0.996195, y=0.0871557): -0.087488663526\n    test 3002 175 174.991649917523 Mu(tan=-0.0876355, x=-0.996182, y=0.0873009), iteration=3: -0.087488663526\n    test 3003 175 174.999999713957 Chi(tan=-0.0874887, x=-1, y=0.0874887), iteration=3: -0.087488663526\n    test 3004 175 174.988859535139 Xi(tan=-0.0876846, x=-2.0013, y=0.175483), iteration=2: -0.087488663526\n\n    test 3005 175 174.966475056686 Phi(tan=-0.0880783, x=-0.996144, y=0.0877386): -0.087488663526\n    test 3006 175 174.983265245736 Beta(tan=-0.087783, x=-0.996169, y=0.0874467): -0.087488663526\n    test 3007 175 175.000000000000 Theta(tan=-0.0874887, x=-0.996195, y=0.0871557): -0.087488663526\n    test 3008 175 174.991649917523 Mu(tan=-0.0876355, x=-0.996182, y=0.0873009): -0.087488663526\n    test 3009 175 174.999999713957 Chi(tan=-0.0874887, x=-0.996195, y=0.0871557): -0.087488663526\n    test 3010 175 174.988859535139 Xi(tan=-0.0876846, x=-0.996178, y=0.0873494): -0.087488663526\n\n    test 3011 182 182.013467936189 Phi(tan=0.0351561, x=-0.999391, y=-0.0351347): 0.034920769492\n    test 3012 182 182.006722688009 Beta(tan=0.0350382, x=-0.999391, y=-0.0350169): 0.034920769492\n    test 3013 182 182.000000000000 Theta(tan=0.0349208, x=-0.999391, y=-0.0348995): 0.034920769492\n    test 3014 182 182.003354305769 Mu(tan=0.0349794, x=-0.999389, y=-0.034958), iteration=3: 0.034920769492\n    test 3015 182 182.000000018425 Chi(tan=0.0349208, x=-1, y=-0.0349208), iteration=2: 0.034920769492\n    test 3016 182 182.004475278247 Xi(tan=0.034999, x=-2.00775, y=-0.0702692), iteration=3: 0.034920769492\n\n    test 3017 182 182.013467936189 Phi(tan=0.0351561, x=-0.999383, y=-0.0351344): 0.034920769492\n    test 3018 182 182.006722688009 Beta(tan=0.0350382, x=-0.999387, y=-0.0350168): 0.034920769492\n    test 3019 182 182.000000000000 Theta(tan=0.0349208, x=-0.999391, y=-0.0348995): 0.034920769492\n    test 3020 182 182.003354305769 Mu(tan=0.0349794, x=-0.999389, y=-0.034958): 0.034920769492\n    test 3021 182 182.000000018425 Chi(tan=0.0349208, x=-0.999391, y=-0.0348995): 0.034920769492\n    test 3022 182 182.004475278247 Xi(tan=0.034999, x=-0.999388, y=-0.0349776): 0.034920769492\n\n    test 3023 189 189.059652780362 Phi(tan=0.159452, x=-0.987688, y=-0.157489): 0.158384440325\n    test 3024 189 189.029778772560 Beta(tan=0.158917, x=-0.987688, y=-0.156961): 0.158384440325\n    test 3025 189 189.000000000000 Theta(tan=0.158384, x=-0.987688, y=-0.156434): 0.158384440325\n    test 3026 189 189.014859673134 Mu(tan=0.15865, x=-0.987648, y=-0.156691), iteration=2: 0.158384440325\n    test 3027 189 189.000001639674 Chi(tan=0.158384, x=-1, y=-0.158384), iteration=3: 0.158384440325\n    test 3028 189 189.019824807860 Xi(tan=0.158739, x=-1.98414, y=-0.31496), iteration=3: 0.158384440325\n\n    test 3029 189 189.059652780362 Phi(tan=0.159452, x=-0.987525, y=-0.157463): 0.158384440325\n    test 3030 189 189.029778772560 Beta(tan=0.158917, x=-0.987607, y=-0.156948): 0.158384440325\n    test 3031 189 189.000000000000 Theta(tan=0.158384, x=-0.987688, y=-0.156434): 0.158384440325\n    test 3032 189 189.014859673134 Mu(tan=0.15865, x=-0.987648, y=-0.156691): 0.158384440325\n    test 3033 189 189.000001639674 Chi(tan=0.158384, x=-0.987688, y=-0.156434): 0.158384440325\n    test 3034 189 189.019824807860 Xi(tan=0.158739, x=-0.987634, y=-0.156776): 0.158384440325\n\n    test 3035 196 196.102260292825 Phi(tan=0.288678, x=-0.961262, y=-0.277495): 0.286745385759\n    test 3036 196 196.051057415277 Beta(tan=0.28771, x=-0.961262, y=-0.276565): 0.286745385759\n    test 3037 196 196.000000000000 Theta(tan=0.286745, x=-0.961262, y=-0.275637): 0.286745385759\n    test 3038 196 196.025483317057 Mu(tan=0.287227, x=-0.961139, y=-0.276065), iteration=2: 0.286745385759\n    test 3039 196 196.000008725999 Chi(tan=0.286746, x=-1, y=-0.286746), iteration=2: 0.286745385759\n    test 3040 196 196.033995121177 Xi(tan=0.287388, x=-1.93083, y=-0.554896), iteration=2: 0.286745385759\n\n    test 3041 196 196.102260292825 Phi(tan=0.288678, x=-0.960768, y=-0.277353): 0.286745385759\n    test 3042 196 196.051057415277 Beta(tan=0.28771, x=-0.961016, y=-0.276494): 0.286745385759\n    test 3043 196 196.000000000000 Theta(tan=0.286745, x=-0.961262, y=-0.275637): 0.286745385759\n    test 3044 196 196.025483317057 Mu(tan=0.287227, x=-0.961139, y=-0.276065): 0.286745385759\n    test 3045 196 196.000008725999 Chi(tan=0.286746, x=-0.961262, y=-0.275638): 0.286745385759\n    test 3046 196 196.033995121177 Xi(tan=0.287388, x=-0.961098, y=-0.276208): 0.286745385759\n\n    test 3047 203 203.138741606579 Phi(tan=0.427336, x=-0.920505, y=-0.393364): 0.424474816210\n    test 3048 203 203.069290086312 Beta(tan=0.425903, x=-0.920505, y=-0.392046): 0.424474816210\n    test 3049 203 203.000000000000 Theta(tan=0.424475, x=-0.920505, y=-0.390731): 0.424474816210\n    test 3050 203 203.034594657995 Mu(tan=0.425188, x=-0.920269, y=-0.391287), iteration=2: 0.424474816210\n    test 3051 203 203.000023787567 Chi(tan=0.424475, x=-1, y=-0.424475), iteration=2: 0.424474816210\n    test 3052 203 203.046143605881 Xi(tan=0.425426, x=-1.84864, y=-0.78646), iteration=2: 0.424474816210\n\n    test 3053 203 203.138741606579 Phi(tan=0.427336, x=-0.919556, y=-0.392959): 0.424474816210\n    test 3054 203 203.069290086312 Beta(tan=0.425903, x=-0.920032, y=-0.391844): 0.424474816210\n    test 3055 203 203.000000000000 Theta(tan=0.424475, x=-0.920505, y=-0.390731): 0.424474816210\n    test 3056 203 203.034594657995 Mu(tan=0.425188, x=-0.920269, y=-0.391287): 0.424474816210\n    test 3057 203 203.000023787567 Chi(tan=0.424475, x=-0.920505, y=-0.390732): 0.424474816210\n    test 3058 203 203.046143605881 Xi(tan=0.425426, x=-0.92019, y=-0.391472): 0.424474816210\n\n    test 3059 210 210.166923849507 Phi(tan=0.581241, x=-0.866025, y=-0.50337): 0.577350269190\n    test 3060 210 210.083392202979 Beta(tan=0.579293, x=-0.866025, y=-0.501682): 0.577350269190\n    test 3061 210 210.000000000000 Theta(tan=0.57735, x=-0.866025, y=-0.5): 0.577350269190\n    test 3062 210 210.041652569165 Mu(tan=0.57832, x=-0.865662, y=-0.500629), iteration=3: 0.577350269190\n    test 3063 210 210.000046858553 Chi(tan=0.577351, x=-1, y=-0.577351), iteration=2: 0.577350269190\n    test 3064 210 210.055548278686 Xi(tan=0.578644, x=-1.73885, y=-1.00618), iteration=3: 0.577350269190\n\n    test 3065 210 210.166923849507 Phi(tan=0.581241, x=-0.864565, y=-0.502521): 0.577350269190\n    test 3066 210 210.083392202979 Beta(tan=0.579293, x=-0.865297, y=-0.50126): 0.577350269190\n    test 3067 210 210.000000000000 Theta(tan=0.57735, x=-0.866025, y=-0.5): 0.577350269190\n    test 3068 210 210.041652569165 Mu(tan=0.57832, x=-0.865662, y=-0.500629): 0.577350269190\n    test 3069 210 210.000046858553 Chi(tan=0.577351, x=-0.866025, y=-0.500001): 0.577350269190\n    test 3070 210 210.055548278686 Xi(tan=0.578644, x=-0.86554, y=-0.500839): 0.577350269190\n\n    test 3071 217 217.185140504831 Phi(tan=0.758633, x=-0.798636, y=-0.605871): 0.753554050103\n    test 3072 217 217.092527888642 Beta(tan=0.756089, x=-0.798636, y=-0.60384): 0.753554050103\n    test 3073 217 217.000000000000 Theta(tan=0.753554, x=-0.798636, y=-0.601815): 0.753554050103\n    test 3074 217 217.046237489147 Mu(tan=0.75482, x=-0.79815, y=-0.602459), iteration=2: 0.753554050103\n    test 3075 217 217.000075282212 Chi(tan=0.753556, x=-1, y=-0.753556), iteration=3: 0.753554050103\n    test 3076 217 217.061650740215 Xi(tan=0.755242, x=-1.60314, y=-1.21076), iteration=2: 0.753554050103\n\n    test 3077 217 217.185140504831 Phi(tan=0.758633, x=-0.796687, y=-0.604393): 0.753554050103\n    test 3078 217 217.092527888642 Beta(tan=0.756089, x=-0.797663, y=-0.603104): 0.753554050103\n    test 3079 217 217.000000000000 Theta(tan=0.753554, x=-0.798636, y=-0.601815): 0.753554050103\n    test 3080 217 217.046237489147 Mu(tan=0.75482, x=-0.79815, y=-0.602459): 0.753554050103\n    test 3081 217 217.000075282212 Chi(tan=0.753556, x=-0.798635, y=-0.601816): 0.753554050103\n    test 3082 217 217.061650740215 Xi(tan=0.755242, x=-0.797987, y=-0.602674): 0.753554050103\n\n    test 3083 224 224.192328540028 Phi(tan=0.972197, x=-0.71934, y=-0.69934): 0.965688774807\n    test 3084 224 224.096159176144 Beta(tan=0.968937, x=-0.71934, y=-0.696995): 0.965688774807\n    test 3085 224 224.000000000000 Theta(tan=0.965689, x=-0.71934, y=-0.694658): 0.965688774807\n    test 3086 224 224.048076415859 Mu(tan=0.967312, x=-0.718757, y=-0.695262), iteration=3: 0.965688774807\n    test 3087 224 224.000104179110 Chi(tan=0.965692, x=-1, y=-0.965692), iteration=3: 0.965688774807\n    test 3088 224 224.064089278462 Xi(tan=0.967853, x=-1.44358, y=-1.39717), iteration=3: 0.965688774807\n\n    test 3089 224 224.192328540028 Phi(tan=0.972197, x=-0.717004, y=-0.697069): 0.965688774807\n    test 3090 224 224.096159176144 Beta(tan=0.968937, x=-0.718173, y=-0.695865): 0.965688774807\n    test 3091 224 224.000000000000 Theta(tan=0.965689, x=-0.71934, y=-0.694658): 0.965688774807\n    test 3092 224 224.048076415859 Mu(tan=0.967312, x=-0.718757, y=-0.695262): 0.965688774807\n    test 3093 224 224.000104179110 Chi(tan=0.965692, x=-0.719339, y=-0.69466): 0.965688774807\n    test 3094 224 224.064089278462 Xi(tan=0.967853, x=-0.718562, y=-0.695463): 0.965688774807\n\n    test 3095 231 231.188087005479 Phi(tan=1.24322, x=-0.62932, y=-0.782384): 1.234897156535\n    test 3096 231 231.094076843128 Beta(tan=1.23905, x=-0.62932, y=-0.77976): 1.234897156535\n    test 3097 231 231.000000000000 Theta(tan=1.2349, x=-0.62932, y=-0.777146): 1.234897156535\n    test 3098 231 231.047059277252 Mu(tan=1.23697, x=-0.628682, y=-0.777663), iteration=3: 1.234897156535\n    test 3099 231 231.000127493216 Chi(tan=1.2349, x=-1, y=-1.2349), iteration=3: 1.234897156535\n    test 3100 231 231.062720168394 Xi(tan=1.23766, x=-1.26258, y=-1.56265), iteration=3: 1.234897156535\n\n    test 3101 231 231.188087005479 Phi(tan=1.24322, x=-0.626766, y=-0.779208): 1.234897156535\n    test 3102 231 231.094076843128 Beta(tan=1.23905, x=-0.628044, y=-0.778178): 1.234897156535\n    test 3103 231 231.000000000000 Theta(tan=1.2349, x=-0.62932, y=-0.777146): 1.234897156535\n    test 3104 231 231.047059277252 Mu(tan=1.23697, x=-0.628682, y=-0.777663): 1.234897156535\n    test 3105 231 231.000127493216 Chi(tan=1.2349, x=-0.629319, y=-0.777147): 1.234897156535\n    test 3106 231 231.062720168394 Xi(tan=1.23766, x=-0.628469, y=-0.777834): 1.234897156535\n\n    test 3107 238 238.172694719424 Phi(tan=1.61112, x=-0.529919, y=-0.853764): 1.600334529041\n    test 3108 238 238.086411314589 Beta(tan=1.60572, x=-0.529919, y=-0.850901): 1.600334529041\n    test 3109 238 238.000000000000 Theta(tan=1.60033, x=-0.529919, y=-0.848048): 1.600334529041\n    test 3110 238 238.043245666868 Mu(tan=1.60303, x=-0.529279, y=-0.848448), iteration=3: 1.600334529041\n    test 3111 238 238.000139371942 Chi(tan=1.60034, x=-1, y=-1.60034), iteration=3: 1.600334529041\n    test 3112 238 238.057625944391 Xi(tan=1.60392, x=-1.06288, y=-1.70478), iteration=3: 1.600334529041\n\n    test 3113 238 238.172694719424 Phi(tan=1.61112, x=-0.527361, y=-0.849641): 1.600334529041\n    test 3114 238 238.086411314589 Beta(tan=1.60572, x=-0.52864, y=-0.848846): 1.600334529041\n    test 3115 238 238.000000000000 Theta(tan=1.60033, x=-0.529919, y=-0.848048): 1.600334529041\n    test 3116 238 238.043245666868 Mu(tan=1.60303, x=-0.529279, y=-0.848448): 1.600334529041\n    test 3117 238 238.000139371942 Chi(tan=1.60034, x=-0.529917, y=-0.848049): 1.600334529041\n    test 3118 238 238.057625944391 Xi(tan=1.60392, x=-0.529066, y=-0.848581): 1.600334529041\n\n    test 3119 245 245.147087439517 Phi(tan=2.15896, x=-0.422618, y=-0.912416): 2.144506920510\n    test 3120 245 245.073623344306 Beta(tan=2.15172, x=-0.422618, y=-0.909357): 2.144506920510\n    test 3121 245 245.000000000000 Theta(tan=2.14451, x=-0.422618, y=-0.906308): 2.144506920510\n    test 3122 245 245.036861496413 Mu(tan=2.14811, x=-0.422035, y=-0.906579), iteration=3: 2.144506920510\n    test 3123 245 245.000135557054 Chi(tan=2.14452, x=-1, y=-2.14452), iteration=3: 2.144506920510\n    test 3124 245 245.049110215384 Xi(tan=2.14931, x=-0.847471, y=-1.82148), iteration=3: 2.144506920510\n\n    test 3125 245 245.147087439517 Phi(tan=2.15896, x=-0.42029, y=-0.90739): 2.144506920510\n    test 3126 245 245.073623344306 Beta(tan=2.15172, x=-0.421453, y=-0.90685): 2.144506920510\n    test 3127 245 245.000000000000 Theta(tan=2.14451, x=-0.422618, y=-0.906308): 2.144506920510\n    test 3128 245 245.036861496413 Mu(tan=2.14811, x=-0.422035, y=-0.906579): 2.144506920510\n    test 3129 245 245.000135557054 Chi(tan=2.14452, x=-0.422616, y=-0.906309): 2.144506920510\n    test 3130 245 245.049110215384 Xi(tan=2.14931, x=-0.421841, y=-0.90667): 2.144506920510\n\n    test 3131 252 252.112797334151 Phi(tan=3.09843, x=-0.309017, y=-0.957466): 3.077683537175\n    test 3132 252 252.056475395211 Beta(tan=3.08804, x=-0.309017, y=-0.954256): 3.077683537175\n    test 3133 252 252.000000000000 Theta(tan=3.07768, x=-0.309017, y=-0.951057): 3.077683537175\n    test 3134 252 252.028285720189 Mu(tan=3.08286, x=-0.308547, y=-0.951209), iteration=3: 3.077683537175\n    test 3135 252 252.000114461007 Chi(tan=3.0777, x=-1, y=-3.0777), iteration=3: 3.077683537175\n    test 3136 252 252.037679397301 Xi(tan=3.08458, x=-0.619552, y=-1.91106), iteration=3: 3.077683537175\n\n    test 3137 252 252.112797334151 Phi(tan=3.09843, x=-0.307144, y=-0.951663): 3.077683537175\n    test 3138 252 252.056475395211 Beta(tan=3.08804, x=-0.308079, y=-0.951361): 3.077683537175\n    test 3139 252 252.000000000000 Theta(tan=3.07768, x=-0.309017, y=-0.951057): 3.077683537175\n    test 3140 252 252.028285720189 Mu(tan=3.08286, x=-0.308547, y=-0.951209): 3.077683537175\n    test 3141 252 252.000114461007 Chi(tan=3.0777, x=-0.309015, y=-0.951057): 3.077683537175\n    test 3142 252 252.037679397301 Xi(tan=3.08458, x=-0.308391, y=-0.95126): 3.077683537175\n\n    test 3143 259 259.071859476624 Phi(tan=5.17923, x=-0.190809, y=-0.988243): 5.144554015970\n    test 3144 259 259.035985707307 Beta(tan=5.16186, x=-0.190809, y=-0.984929): 5.144554015970\n    test 3145 259 259.000000000000 Theta(tan=5.14455, x=-0.190809, y=-0.981627): 5.144554015970\n    test 3146 259 259.018027889335 Mu(tan=5.15321, x=-0.1905, y=-0.981687), iteration=3: 5.144554015970\n    test 3147 259 259.000077676273 Chi(tan=5.14459, x=-1, y=-5.14459), iteration=3: 5.144554015970\n    test 3148 259 259.024012504065 Xi(tan=5.15609, x=-0.382505, y=-1.97223), iteration=2: 5.144554015970\n\n    test 3149 259 259.071859476624 Phi(tan=5.17923, x=-0.189578, y=-0.981866): 5.144554015970\n    test 3150 259 259.035985707307 Beta(tan=5.16186, x=-0.190192, y=-0.981747): 5.144554015970\n    test 3151 259 259.000000000000 Theta(tan=5.14455, x=-0.190809, y=-0.981627): 5.144554015970\n    test 3152 259 259.018027889335 Mu(tan=5.15321, x=-0.1905, y=-0.981687): 5.144554015970\n    test 3153 259 259.000077676273 Chi(tan=5.14459, x=-0.190808, y=-0.981627): 5.144554015970\n    test 3154 259 259.024012504065 Xi(tan=5.15609, x=-0.190398, y=-0.981707): 5.144554015970\n\n    test 3155 266 266.026691465344 Phi(tan=14.397, x=-0.0697565, y=-1.00429): 14.300666256712\n    test 3156 266 266.013367926454 Beta(tan=14.3488, x=-0.0697565, y=-1.00092): 14.300666256712\n    test 3157 266 266.000000000000 Theta(tan=14.3007, x=-0.0697565, y=-0.997564): 14.300666256712\n    test 3158 266 266.006697857429 Mu(tan=14.3247, x=-0.0696399, y=-0.997572), iteration=2: 14.300666256712\n    test 3159 266 266.000029795215 Chi(tan=14.3008, x=-1, y=-14.3008), iteration=3: 14.300666256712\n    test 3160 266 266.008920822994 Xi(tan=14.3327, x=-0.139827, y=-2.00411), iteration=3: 14.300666256712\n\n    test 3161 266 266.026691465344 Phi(tan=14.397, x=-0.0692917, y=-0.997596): 14.300666256712\n    test 3162 266 266.013367926454 Beta(tan=14.3488, x=-0.0695237, y=-0.99758): 14.300666256712\n    test 3163 266 266.000000000000 Theta(tan=14.3007, x=-0.0697565, y=-0.997564): 14.300666256712\n    test 3164 266 266.006697857429 Mu(tan=14.3247, x=-0.0696399, y=-0.997572): 14.300666256712\n    test 3165 266 266.000029795215 Chi(tan=14.3008, x=-0.069756, y=-0.997564): 14.300666256712\n    test 3166 266 266.008920822994 Xi(tan=14.3327, x=-0.0696012, y=-0.997575): 14.300666256712\n\n    test 3167 273 272.979953179188 Phi(tan=-19.2097, x=0.052336, y=-1.00536): -19.081136687728\n    test 3168 273 272.989959849669 Beta(tan=-19.1453, x=0.052336, y=-1.00199): -19.081136687728\n    test 3169 273 273.000000000000 Theta(tan=-19.0811, x=0.052336, y=-0.99863): -19.081136687728\n    test 3170 273 272.994969444902 Mu(tan=-19.1132, x=0.0522483, y=-0.998634), iteration=3: -19.081136687728\n    test 3171 273 272.999977574321 Chi(tan=-19.0813, x=1.0, y=-19.0813), iteration=3: -19.081136687728\n    test 3172 273 272.993299868195 Xi(tan=-19.1239, x=0.104907, y=-2.00624), iteration=3: -19.081136687728\n\n    test 3173 273 272.979953179188 Phi(tan=-19.2097, x=0.0519865, y=-0.998648): -19.081136687728\n    test 3174 273 272.989959849669 Beta(tan=-19.1453, x=0.052161, y=-0.998639): -19.081136687728\n    test 3175 273 273.000000000000 Theta(tan=-19.0811, x=0.052336, y=-0.99863): -19.081136687728\n    test 3176 273 272.994969444902 Mu(tan=-19.1132, x=0.0522483, y=-0.998634): -19.081136687728\n    test 3177 273 272.999977574321 Chi(tan=-19.0813, x=0.0523356, y=-0.99863): -19.081136687728\n    test 3178 273 272.993299868195 Xi(tan=-19.1239, x=0.0522192, y=-0.998636): -19.081136687728\n\n    test 3179 280 279.934394210279 Phi(tan=-5.7095, x=0.173648, y=-0.991445): -5.671281819618\n    test 3180 280 279.967145322218 Beta(tan=-5.69036, x=0.173648, y=-0.988121): -5.671281819618\n    test 3181 280 280.000000000000 Theta(tan=-5.67128, x=0.173648, y=-0.984808): -5.671281819618\n    test 3182 280 279.983540245263 Mu(tan=-5.68082, x=0.173365, y=-0.984858), iteration=3: -5.671281819618\n    test 3183 280 279.999928623941 Chi(tan=-5.67132, x=1.0, y=-5.67132), iteration=3: -5.671281819618\n    test 3184 280 279.978076430885 Xi(tan=-5.684, x=0.348099, y=-1.97859), iteration=2: -5.671281819618\n\n    test 3185 280 279.934394210279 Phi(tan=-5.7095, x=0.17252, y=-0.985006): -5.671281819618\n    test 3186 280 279.967145322218 Beta(tan=-5.69036, x=0.173083, y=-0.984907): -5.671281819618\n    test 3187 280 280.000000000000 Theta(tan=-5.67128, x=0.173648, y=-0.984808): -5.671281819618\n    test 3188 280 279.983540245263 Mu(tan=-5.68082, x=0.173365, y=-0.984858): -5.671281819618\n    test 3189 280 279.999928623941 Chi(tan=-5.67132, x=0.173647, y=-0.984808): -5.671281819618\n    test 3190 280 279.978076430885 Xi(tan=-5.684, x=0.173271, y=-0.984874): -5.671281819618\n\n    test 3191 287 286.892696785077 Phi(tan=-3.2929, x=0.292372, y=-0.96275): -3.270852618484\n    test 3192 287 286.946273607855 Beta(tan=-3.28186, x=0.292372, y=-0.959522): -3.270852618484\n    test 3193 287 287.000000000000 Theta(tan=-3.27085, x=0.292372, y=-0.956305): -3.270852618484\n    test 3194 287 286.973089996409 Mu(tan=-3.27636, x=0.291923, y=-0.956442), iteration=3: -3.270852618484\n    test 3195 287 286.999889910594 Chi(tan=-3.27088, x=1.0, y=-3.27088), iteration=3: -3.270852618484\n    test 3196 287 286.964153811789 Xi(tan=-3.27819, x=0.586167, y=-1.92156), iteration=3: -3.270852618484\n\n    test 3197 287 286.892696785077 Phi(tan=-3.2929, x=0.29058, y=-0.956851): -3.270852618484\n    test 3198 287 286.946273607855 Beta(tan=-3.28186, x=0.291475, y=-0.956578): -3.270852618484\n    test 3199 287 287.000000000000 Theta(tan=-3.27085, x=0.292372, y=-0.956305): -3.270852618484\n    test 3200 287 286.973089996409 Mu(tan=-3.27636, x=0.291923, y=-0.956442): -3.270852618484\n    test 3201 287 286.999889910594 Chi(tan=-3.27088, x=0.29237, y=-0.956305): -3.270852618484\n    test 3202 287 286.964153811789 Xi(tan=-3.27819, x=0.291773, y=-0.956487): -3.270852618484\n\n    test 3203 294 293.857322070702 Phi(tan=-2.26117, x=0.406737, y=-0.919702): -2.246036773904\n    test 3204 294 293.928580656019 Beta(tan=-2.25359, x=0.406737, y=-0.916619): -2.246036773904\n    test 3205 294 294.000000000000 Theta(tan=-2.24604, x=0.406737, y=-0.913545): -2.246036773904\n    test 3206 294 293.964240029727 Mu(tan=-2.24981, x=0.406166, y=-0.913799), iteration=2: -2.246036773904\n    test 3207 294 293.999866400612 Chi(tan=-2.24605, x=1.0, y=-2.24605), iteration=3: -2.246036773904\n    test 3208 294 293.952358418734 Xi(tan=-2.25107, x=0.815599, y=-1.83597), iteration=2: -2.246036773904\n\n    test 3209 294 293.857322070702 Phi(tan=-2.26117, x=0.40446, y=-0.914555): -2.246036773904\n    test 3210 294 293.928580656019 Beta(tan=-2.25359, x=0.405598, y=-0.914052): -2.246036773904\n    test 3211 294 294.000000000000 Theta(tan=-2.24604, x=0.406737, y=-0.913545): -2.246036773904\n    test 3212 294 293.964240029727 Mu(tan=-2.24981, x=0.406166, y=-0.913799): -2.246036773904\n    test 3213 294 293.999866400612 Chi(tan=-2.24605, x=0.406735, y=-0.913546): -2.246036773904\n    test 3214 294 293.952358418734 Xi(tan=-2.25107, x=0.405977, y=-0.913883): -2.246036773904\n\n    test 3215 301 300.830367699497 Phi(tan=-1.6755, x=0.515038, y=-0.862944): -1.664279482351\n    test 3216 301 300.915116613042 Beta(tan=-1.66988, x=0.515038, y=-0.860051): -1.664279482351\n    test 3217 301 301.000000000000 Theta(tan=-1.66428, x=0.515038, y=-0.857167): -1.664279482351\n    test 3218 301 300.957516242525 Mu(tan=-1.66708, x=0.514402, y=-0.857549), iteration=3: -1.664279482351\n    test 3219 301 300.999860142450 Chi(tan=-1.66429, x=1.0, y=-1.66429), iteration=3: -1.664279482351\n    test 3220 301 300.943390839029 Xi(tan=-1.66801, x=1.033, y=-1.72305), iteration=2: -1.664279482351\n\n    test 3221 301 300.830367699497 Phi(tan=-1.6755, x=0.512498, y=-0.858688): -1.664279482351\n    test 3222 301 300.915116613042 Beta(tan=-1.66988, x=0.513768, y=-0.857929): -1.664279482351\n    test 3223 301 301.000000000000 Theta(tan=-1.66428, x=0.515038, y=-0.857167): -1.664279482351\n    test 3224 301 300.957516242525 Mu(tan=-1.66708, x=0.514402, y=-0.857549): -1.664279482351\n    test 3225 301 300.999860142450 Chi(tan=-1.66429, x=0.515036, y=-0.857169): -1.664279482351\n    test 3226 301 300.943390839029 Xi(tan=-1.66801, x=0.514191, y=-0.857676): -1.664279482351\n\n    test 3227 308 307.813444106313 Phi(tan=-1.28857, x=0.615661, y=-0.793322): -1.279941632193\n    test 3228 308 307.906683665119 Beta(tan=-1.28425, x=0.615661, y=-0.790662): -1.279941632193\n    test 3229 308 308.000000000000 Theta(tan=-1.27994, x=0.615661, y=-0.788011): -1.279941632193\n    test 3230 308 307.953317819859 Mu(tan=-1.28209, x=0.615019, y=-0.788512), iteration=3: -1.279941632193\n    test 3231 308 307.999869987124 Chi(tan=-1.27995, x=1.0, y=-1.27995), iteration=2: -1.279941632193\n    test 3232 308 307.937784253619 Xi(tan=-1.28281, x=1.23513, y=-1.58444), iteration=3: -1.279941632193\n\n    test 3233 308 307.813444106313 Phi(tan=-1.28857, x=0.613092, y=-0.790011): -1.279941632193\n    test 3234 308 307.906683665119 Beta(tan=-1.28425, x=0.614377, y=-0.789012): -1.279941632193\n    test 3235 308 308.000000000000 Theta(tan=-1.27994, x=0.615661, y=-0.788011): -1.279941632193\n    test 3236 308 307.953317819859 Mu(tan=-1.28209, x=0.615019, y=-0.788512): -1.279941632193\n    test 3237 308 307.999869987124 Chi(tan=-1.27995, x=0.61566, y=-0.788012): -1.279941632193\n    test 3238 308 307.937784253619 Xi(tan=-1.28281, x=0.614805, y=-0.788679): -1.279941632193\n\n    test 3239 315 314.807576784018 Phi(tan=-1.00674, x=0.707107, y=-0.711872): -1.000000000000\n    test 3240 315 314.903787849420 Beta(tan=-1.00336, x=0.707107, y=-0.709486): -1.000000000000\n    test 3241 315 315.000000000000 Theta(tan=-1, x=0.707107, y=-0.707107): -1.000000000000\n    test 3242 315 314.951893574286 Mu(tan=-1.00168, x=0.706513, y=-0.7077), iteration=2: -1.000000000000\n    test 3243 315 314.999892003023 Chi(tan=-1, x=1.0, y=-1), iteration=3: -1.000000000000\n    test 3244 315 314.935872656555 Xi(tan=-1.00224, x=1.41897, y=-1.42215), iteration=3: -1.000000000000\n\n    test 3245 315 314.807576784018 Phi(tan=-1.00674, x=0.704728, y=-0.709478): -1.000000000000\n    test 3246 315 314.903787849420 Beta(tan=-1.00336, x=0.705918, y=-0.708293): -1.000000000000\n    test 3247 315 315.000000000000 Theta(tan=-1, x=0.707107, y=-0.707107): -1.000000000000\n    test 3248 315 314.951893574286 Mu(tan=-1.00168, x=0.706513, y=-0.7077): -1.000000000000\n    test 3249 315 314.999892003023 Chi(tan=-1, x=0.707105, y=-0.707108): -1.000000000000\n    test 3250 315 314.935872656555 Xi(tan=-1.00224, x=0.706315, y=-0.707898): -1.000000000000\n\n    test 3251 322 321.813140716820 Phi(tan=-0.786551, x=0.788011, y=-0.619811): -0.781285626507\n    test 3252 322 321.906607816751 Beta(tan=-0.783914, x=0.788011, y=-0.617733): -0.781285626507\n    test 3253 322 322.000000000000 Theta(tan=-0.781286, x=0.788011, y=-0.615661): -0.781285626507\n    test 3254 322 321.953327300103 Mu(tan=-0.782598, x=0.787509, y=-0.616303), iteration=2: -0.781285626507\n    test 3255 322 321.999920484161 Chi(tan=-0.781288, x=1.0, y=-0.781288), iteration=2: -0.781285626507\n    test 3256 322 321.937770794620 Xi(tan=-0.783036, x=1.58175, y=-1.23857), iteration=3: -0.781285626507\n\n    test 3257 322 321.813140716820 Phi(tan=-0.786551, x=0.785999, y=-0.618228): -0.781285626507\n    test 3258 322 321.906607816751 Beta(tan=-0.783914, x=0.787006, y=-0.616945): -0.781285626507\n    test 3259 322 322.000000000000 Theta(tan=-0.781286, x=0.788011, y=-0.615661): -0.781285626507\n    test 3260 322 321.953327300103 Mu(tan=-0.782598, x=0.787509, y=-0.616303): -0.781285626507\n    test 3261 322 321.999920484161 Chi(tan=-0.781288, x=0.78801, y=-0.615663): -0.781285626507\n    test 3262 322 321.937770794620 Xi(tan=-0.783036, x=0.787342, y=-0.616517): -0.781285626507\n\n    test 3263 329 328.829831943495 Phi(tan=-0.60491, x=0.857167, y=-0.518509): -0.600860619028\n    test 3264 329 328.914982672653 Beta(tan=-0.602882, x=0.857167, y=-0.516771): -0.600860619028\n    test 3265 329 329.000000000000 Theta(tan=-0.600861, x=0.857167, y=-0.515038): -0.600860619028\n    test 3266 329 328.957532983891 Mu(tan=-0.60187, x=0.856785, y=-0.515673), iteration=2: -0.600860619028\n    test 3267 329 328.999949315138 Chi(tan=-0.600862, x=1.0, y=-0.600862), iteration=3: -0.600860619028\n    test 3268 329 328.943367072053 Xi(tan=-0.602207, x=1.72101, y=-1.0364), iteration=2: -0.600860619028\n\n    test 3269 329 328.829831943495 Phi(tan=-0.60491, x=0.855634, y=-0.517582): -0.600860619028\n    test 3270 329 328.914982672653 Beta(tan=-0.602882, x=0.856402, y=-0.516309): -0.600860619028\n    test 3271 329 329.000000000000 Theta(tan=-0.600861, x=0.857167, y=-0.515038): -0.600860619028\n    test 3272 329 328.957532983891 Mu(tan=-0.60187, x=0.856785, y=-0.515673): -0.600860619028\n    test 3273 329 328.999949315138 Chi(tan=-0.600862, x=0.857167, y=-0.515039): -0.600860619028\n    test 3274 329 328.943367072053 Xi(tan=-0.602207, x=0.856658, y=-0.515885): -0.600860619028\n\n    test 3275 336 335.856679369063 Phi(tan=-0.448229, x=0.913545, y=-0.409478): -0.445228685309\n    test 3276 336 335.928419979560 Beta(tan=-0.446726, x=0.913545, y=-0.408105): -0.445228685309\n    test 3277 336 336.000000000000 Theta(tan=-0.445229, x=0.913545, y=-0.406737): -0.445228685309\n    test 3278 336 335.964260113259 Mu(tan=-0.445976, x=0.913292, y=-0.407306), iteration=3: -0.445228685309\n    test 3279 336 335.999973373434 Chi(tan=-0.445229, x=1.0, y=-0.445229), iteration=3: -0.445228685309\n    test 3280 336 335.952329907972 Xi(tan=-0.446226, x=1.83461, y=-0.818652), iteration=3: -0.445228685309\n\n    test 3281 336 335.856679369063 Phi(tan=-0.448229, x=0.912525, y=-0.409021): -0.445228685309\n    test 3282 336 335.928419979560 Beta(tan=-0.446726, x=0.913037, y=-0.407878): -0.445228685309\n    test 3283 336 336.000000000000 Theta(tan=-0.445229, x=0.913545, y=-0.406737): -0.445228685309\n    test 3284 336 335.964260113259 Mu(tan=-0.445976, x=0.913292, y=-0.407306): -0.445228685309\n    test 3285 336 335.999973373434 Chi(tan=-0.445229, x=0.913545, y=-0.406737): -0.445228685309\n    test 3286 336 335.952329907972 Xi(tan=-0.446226, x=0.913207, y=-0.407497): -0.445228685309\n\n    test 3287 343 342.892097596857 Phi(tan=-0.307791, x=0.956305, y=-0.294342): -0.305730681459\n    test 3288 343 342.946123810430 Beta(tan=-0.306759, x=0.956305, y=-0.293355): -0.305730681459\n    test 3289 343 343.000000000000 Theta(tan=-0.305731, x=0.956305, y=-0.292372): -0.305730681459\n    test 3290 343 342.973108720519 Mu(tan=-0.306244, x=0.956167, y=-0.292821), iteration=2: -0.305730681459\n    test 3291 343 342.999989640752 Chi(tan=-0.305731, x=1.0, y=-0.305731), iteration=3: -0.305730681459\n    test 3292 343 342.964127231800 Xi(tan=-0.306415, x=1.92083, y=-0.588572), iteration=2: -0.305730681459\n\n    test 3293 343 342.892097596857 Phi(tan=-0.307791, x=0.955752, y=-0.294172): -0.305730681459\n    test 3294 343 342.946123810430 Beta(tan=-0.306759, x=0.956029, y=-0.293271): -0.305730681459\n    test 3295 343 343.000000000000 Theta(tan=-0.305731, x=0.956305, y=-0.292372): -0.305730681459\n    test 3296 343 342.973108720519 Mu(tan=-0.306244, x=0.956167, y=-0.292821): -0.305730681459\n    test 3297 343 342.999989640752 Chi(tan=-0.305731, x=0.956305, y=-0.292372): -0.305730681459\n    test 3298 343 342.964127231800 Xi(tan=-0.306415, x=0.956122, y=-0.29297): -0.305730681459\n\n    test 3299 350 349.933978809966 Phi(tan=-0.177515, x=0.984808, y=-0.174818): -0.176326980708\n    test 3300 350 349.967041472227 Beta(tan=-0.17692, x=0.984808, y=-0.174232): -0.176326980708\n    test 3301 350 350.000000000000 Theta(tan=-0.176327, x=0.984808, y=-0.173648): -0.176326980708\n    test 3302 350 349.983553226337 Mu(tan=-0.176623, x=0.984758, y=-0.173931), iteration=3: -0.176326980708\n    test 3303 350 349.999997763945 Chi(tan=-0.176327, x=1.0, y=-0.176327), iteration=2: -0.176326980708\n    test 3304 350 349.978058004001 Xi(tan=-0.176722, x=1.97833, y=-0.349613), iteration=3: -0.176326980708\n\n    test 3305 350 349.933978809966 Phi(tan=-0.177515, x=0.984607, y=-0.174783): -0.176326980708\n    test 3306 350 349.967041472227 Beta(tan=-0.17692, x=0.984708, y=-0.174215): -0.176326980708\n    test 3307 350 350.000000000000 Theta(tan=-0.176327, x=0.984808, y=-0.173648): -0.176326980708\n    test 3308 350 349.983553226337 Mu(tan=-0.176623, x=0.984758, y=-0.173931): -0.176326980708\n    test 3309 350 349.999997763945 Chi(tan=-0.176327, x=0.984808, y=-0.173648): -0.176326980708\n    test 3310 350 349.978058004001 Xi(tan=-0.176722, x=0.984741, y=-0.174025): -0.176326980708\n\n    test 3311 357 356.979818816318 Phi(tan=-0.052761, x=0.99863, y=-0.0526887): -0.052407779283\n    test 3312 357 356.989926259040 Beta(tan=-0.0525841, x=0.99863, y=-0.052512): -0.052407779283\n    test 3313 357 357.000000000000 Theta(tan=-0.0524078, x=0.99863, y=-0.052336): -0.052407779283\n    test 3314 357 356.994973643713 Mu(tan=-0.0524957, x=0.998625, y=-0.0524236), iteration=3: -0.052407779283\n    test 3315 357 356.999999937910 Chi(tan=-0.0524078, x=1.0, y=-0.0524078), iteration=3: -0.052407779283\n    test 3316 357 356.993293907994 Xi(tan=-0.0525251, x=2.00621, y=-0.105377), iteration=3: -0.052407779283\n\n    test 3317 357 356.979818816318 Phi(tan=-0.052761, x=0.998611, y=-0.0526877): -0.052407779283\n    test 3318 357 356.989926259040 Beta(tan=-0.0525841, x=0.99862, y=-0.0525115): -0.052407779283\n    test 3319 357 357.000000000000 Theta(tan=-0.0524078, x=0.99863, y=-0.052336): -0.052407779283\n    test 3320 357 356.994973643713 Mu(tan=-0.0524957, x=0.998625, y=-0.0524236): -0.052407779283\n    test 3321 357 356.999999937910 Chi(tan=-0.0524078, x=0.99863, y=-0.052336): -0.052407779283\n    test 3322 357 356.993293907994 Xi(tan=-0.0525251, x=0.998623, y=-0.0524528): -0.052407779283\n\n    test 3323  0 0.000000000000 Phi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 3324  0 0.000000000000 Beta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 3325  0 0.000000000000 Theta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 3326  0 0.000000000000 Mu(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 3327  0 0.000000000000 Chi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 3328  0 0.000000000000 Xi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n\n    test 3329  0 0.000000000000 Phi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 3330  0 0.000000000000 Beta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 3331  0 0.000000000000 Theta(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 3332  0 0.000000000000 Mu(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 3333  0 0.000000000000 Chi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n    test 3334  0 0.000000000000 Xi(tan=0.0, x=1.0, y=0.0): 0.000000000000\n\n    test 3335  7 7.031115657726 Phi(tan=0.123336, x=1.0, y=0.123336): 0.122784560903\n    test 3336  7 7.007776446248 Beta(tan=0.122922, x=1.0, y=0.122922): 0.122784560903\n    test 3337  7 6.984513160948 Theta(tan=0.12251, x=1.0, y=0.12251): 0.122784560903\n    test 3338  7 6.996121115499 Mu(tan=0.122716, x=0.992554, y=0.121802), iteration=2: 0.122784560903\n    test 3339  7 6.984513934967 Chi(tan=0.12251, x=1.0, y=0.12251), iteration=3: 0.122784560903\n    test 3340  7 7.000000000000 Xi(tan=0.122785, x=0.992546, y=0.121869): 0.122784560903\n\n    test 3341  7 7.031115657726 Phi(tan=0.123336, x=0.99248, y=0.122408): 0.122784560903\n    test 3342  7 7.007776446248 Beta(tan=0.122922, x=0.99253, y=0.122004): 0.122784560903\n    test 3343  7 6.984513160948 Theta(tan=0.12251, x=0.992579, y=0.121601): 0.122784560903\n    test 3344  7 6.996121115499 Mu(tan=0.122716, x=0.992554, y=0.121802): 0.122784560903\n    test 3345  7 6.984513934967 Chi(tan=0.12251, x=0.992579, y=0.121601): 0.122784560903\n    test 3346  7 7.000000000000 Xi(tan=0.122785, x=0.992546, y=0.121869): 0.122784560903\n\n    test 3347 14 14.060369141975 Phi(tan=0.250447, x=1.0, y=0.250447): 0.249328002843\n    test 3348 14 14.015088387186 Beta(tan=0.249608, x=1.0, y=0.249608): 0.249328002843\n    test 3349 14 13.969941668301 Theta(tan=0.248771, x=1.0, y=0.248771): 0.249328002843\n    test 3350 14 13.992473204804 Mu(tan=0.249188, x=0.970327, y=0.241794), iteration=3: 0.249328002843\n    test 3351 14 13.969947587506 Chi(tan=0.248771, x=1.0, y=0.248771), iteration=3: 0.249328002843\n    test 3352 14 14.000000000000 Xi(tan=0.249328, x=0.970296, y=0.241922): 0.249328002843\n\n    test 3353 14 14.060369141975 Phi(tan=0.250447, x=0.97004, y=0.242944): 0.249328002843\n    test 3354 14 14.015088387186 Beta(tan=0.249608, x=0.970232, y=0.242177): 0.249328002843\n    test 3355 14 13.969941668301 Theta(tan=0.248771, x=0.970423, y=0.241413): 0.249328002843\n    test 3356 14 13.992473204803 Mu(tan=0.249188, x=0.970327, y=0.241794): 0.249328002843\n    test 3357 14 13.969947587506 Chi(tan=0.248771, x=0.970422, y=0.241413): 0.249328002843\n    test 3358 14 14.000000000000 Xi(tan=0.249328, x=0.970296, y=0.241922): 0.249328002843\n\n    test 3359 21 21.086012125911 Phi(tan=0.385587, x=1.0, y=0.385587): 0.383864035035\n    test 3360 21 21.021499506340 Beta(tan=0.384295, x=1.0, y=0.384295): 0.383864035035\n    test 3361 21 20.957147588487 Theta(tan=0.383006, x=1.0, y=0.383006): 0.383864035035\n    test 3362 21 20.989273394164 Mu(tan=0.383649, x=0.933648, y=0.358193), iteration=3: 0.383864035035\n    test 3363 21 20.957166102443 Chi(tan=0.383007, x=1.0, y=0.383007), iteration=2: 0.383864035035\n    test 3364 21 21.000000000000 Xi(tan=0.383864, x=0.93358, y=0.358368): 0.383864035035\n\n    test 3365 21 21.086012125911 Phi(tan=0.385587, x=0.933041, y=0.359769): 0.383864035035\n    test 3366 21 21.021499506340 Beta(tan=0.384295, x=0.933446, y=0.358718): 0.383864035035\n    test 3367 21 20.957147588487 Theta(tan=0.383006, x=0.933848, y=0.35767): 0.383864035035\n    test 3368 21 20.989273394164 Mu(tan=0.383649, x=0.933648, y=0.358193): 0.383864035035\n    test 3369 21 20.957166102443 Chi(tan=0.383007, x=0.933848, y=0.35767): 0.383864035035\n    test 3370 21 21.000000000000 Xi(tan=0.383864, x=0.93358, y=0.358368): 0.383864035035\n\n    test 3371 28 28.106516446309 Phi(tan=0.534096, x=1.0, y=0.534096): 0.531709431661\n    test 3372 28 28.026628049399 Beta(tan=0.532306, x=1.0, y=0.532306): 0.531709431661\n    test 3373 28 27.946889336829 Theta(tan=0.530521, x=1.0, y=0.530521): 0.531709431661\n    test 3374 28 27.986711967080 Mu(tan=0.531412, x=0.883056, y=0.469267), iteration=3: 0.531709431661\n    test 3375 28 27.946928706111 Chi(tan=0.530522, x=1.0, y=0.530522), iteration=2: 0.531709431661\n    test 3376 28 28.000000000000 Xi(tan=0.531709, x=0.882948, y=0.469472): 0.531709431661\n\n    test 3377 28 28.106516446309 Phi(tan=0.534096, x=0.882073, y=0.471112): 0.531709431661\n    test 3378 28 28.026628049399 Beta(tan=0.532306, x=0.882729, y=0.469882): 0.531709431661\n    test 3379 28 27.946889336829 Theta(tan=0.530521, x=0.883382, y=0.468653): 0.531709431661\n    test 3380 28 27.986711967080 Mu(tan=0.531412, x=0.883056, y=0.469267): 0.531709431661\n    test 3381 28 27.946928706111 Chi(tan=0.530522, x=0.883382, y=0.468654): 0.531709431661\n    test 3382 28 28.000000000000 Xi(tan=0.531709, x=0.882948, y=0.469472): 0.531709431661\n\n    test 3383 35 35.120665994598 Phi(tan=0.703351, x=1.0, y=0.703351): 0.700207538210\n    test 3384 35 35.030169708409 Beta(tan=0.700993, x=1.0, y=0.700993): 0.700207538210\n    test 3385 35 34.939777010856 Theta(tan=0.698642, x=1.0, y=0.698642): 0.700207538210\n    test 3386 35 34.984941016111 Mu(tan=0.699816, x=0.819303, y=0.573361), iteration=3: 0.700207538210\n    test 3387 35 34.939843626202 Chi(tan=0.698644, x=1.0, y=0.698644), iteration=3: 0.700207538210\n    test 3388 35 35.000000000000 Xi(tan=0.700208, x=0.819152, y=0.573576): 0.700207538210\n\n    test 3389 35 35.120665994598 Phi(tan=0.703351, x=0.817942, y=0.5753): 0.700207538210\n    test 3390 35 35.030169708409 Beta(tan=0.700993, x=0.81885, y=0.574008): 0.700207538210\n    test 3391 35 34.939777010856 Theta(tan=0.698642, x=0.819754, y=0.572715): 0.700207538210\n    test 3392 35 34.984941016111 Mu(tan=0.699816, x=0.819303, y=0.573361): 0.700207538210\n    test 3393 35 34.939843626202 Chi(tan=0.698644, x=0.819754, y=0.572716): 0.700207538210\n    test 3394 35 35.000000000000 Xi(tan=0.700208, x=0.819152, y=0.573576): 0.700207538210\n\n    test 3395 42 42.127628467909 Phi(tan=0.904446, x=1.0, y=0.904446): 0.900404044298\n    test 3396 42 42.031915609918 Beta(tan=0.901413, x=1.0, y=0.901413): 0.900404044298\n    test 3397 42 41.936235990174 Theta(tan=0.898391, x=1.0, y=0.898391): 0.900404044298\n    test 3398 42 41.984065426020 Mu(tan=0.899901, x=0.743331, y=0.668924), iteration=3: 0.900404044298\n    test 3399 42 41.936331949525 Chi(tan=0.898394, x=1.0, y=0.898394), iteration=3: 0.900404044298\n    test 3400 42 42.000000000000 Xi(tan=0.900404, x=0.743145, y=0.669131): 0.900404044298\n\n    test 3401 42 42.127628467909 Phi(tan=0.904446, x=0.741652, y=0.670784): 0.900404044298\n    test 3402 42 42.031915609918 Beta(tan=0.901413, x=0.742772, y=0.669544): 0.900404044298\n    test 3403 42 41.936235990174 Theta(tan=0.898391, x=0.743889, y=0.668303): 0.900404044298\n    test 3404 42 41.984065426020 Mu(tan=0.899901, x=0.743331, y=0.668924): 0.900404044298\n    test 3405 42 41.936331949525 Chi(tan=0.898394, x=0.743888, y=0.668304): 0.900404044298\n    test 3406 42 42.000000000000 Xi(tan=0.900404, x=0.743145, y=0.669131): 0.900404044298\n\n    test 3407 49 49.127002845320 Phi(tan=1.15553, x=1.0, y=1.15553): 1.150368407221\n    test 3408 49 49.031764361370 Beta(tan=1.15166, x=1.0, y=1.15166): 1.150368407221\n    test 3409 49 48.936481000855 Theta(tan=1.1478, x=1.0, y=1.1478): 1.150368407221\n    test 3410 49 48.984136719315 Mu(tan=1.14973, x=0.656268, y=0.754528), iteration=2: 1.150368407221\n    test 3411 49 48.936602566380 Chi(tan=1.1478, x=1.0, y=1.1478), iteration=2: 1.150368407221\n    test 3412 49 49.000000000000 Xi(tan=1.15037, x=0.656059, y=0.75471): 1.150368407221\n\n    test 3413 49 49.127002845320 Phi(tan=1.15553, x=0.654385, y=0.756162): 1.150368407221\n    test 3414 49 49.031764361370 Beta(tan=1.15166, x=0.655641, y=0.755073): 1.150368407221\n    test 3415 49 48.936481000855 Theta(tan=1.1478, x=0.656895, y=0.753982): 1.150368407221\n    test 3416 49 48.984136719315 Mu(tan=1.14973, x=0.656268, y=0.754528): 1.150368407221\n    test 3417 49 48.936602566380 Chi(tan=1.1478, x=0.656894, y=0.753983): 1.150368407221\n    test 3418 49 49.000000000000 Xi(tan=1.15037, x=0.656059, y=0.75471): 1.150368407221\n\n    test 3419 56 56.118840243467 Phi(tan=1.48921, x=1.0, y=1.48921): 1.482560968513\n    test 3420 56 56.029727526967 Beta(tan=1.48422, x=1.0, y=1.48422): 1.482560968513\n    test 3421 56 55.940502339654 Theta(tan=1.47925, x=1.0, y=1.47925): 1.482560968513\n    test 3422 56 55.985150111604 Mu(tan=1.48173, x=0.559408, y=0.828893), iteration=3: 1.482560968513\n    test 3423 56 55.940639698829 Chi(tan=1.47925, x=1.0, y=1.47925), iteration=3: 1.482560968513\n    test 3424 56 56.000000000000 Xi(tan=1.48256, x=0.559193, y=0.829038): 1.482560968513\n\n    test 3425 56 56.118840243467 Phi(tan=1.48921, x=0.557472, y=0.830196): 1.482560968513\n    test 3426 56 56.029727526967 Beta(tan=1.48422, x=0.558763, y=0.829328): 1.482560968513\n    test 3427 56 55.940502339654 Theta(tan=1.47925, x=0.560053, y=0.828456): 1.482560968513\n    test 3428 56 55.985150111604 Mu(tan=1.48173, x=0.559408, y=0.828893): 1.482560968513\n    test 3429 56 55.940639698829 Chi(tan=1.47925, x=0.560052, y=0.828458): 1.482560968513\n    test 3430 56 56.000000000000 Xi(tan=1.48256, x=0.559193, y=0.829038): 1.482560968513\n\n    test 3431 63 63.103637615859 Phi(tan=1.97142, x=1.0, y=1.97142): 1.962610505505\n    test 3432 63 63.025928337212 Beta(tan=1.96481, x=1.0, y=1.96481): 1.962610505505\n    test 3433 63 62.948065314408 Theta(tan=1.95822, x=1.0, y=1.95822): 1.962610505505\n    test 3434 63 62.987044924306 Mu(tan=1.96151, x=0.454192, y=0.890904), iteration=3: 1.962610505505\n    test 3435 63 62.948203767989 Chi(tan=1.95823, x=1.0, y=1.95823), iteration=3: 1.962610505505\n    test 3436 63 63.000000000000 Xi(tan=1.96261, x=0.45399, y=0.891007): 1.962610505505\n\n    test 3437 63 63.103637615859 Phi(tan=1.97142, x=0.452378, y=0.891826): 1.962610505505\n    test 3438 63 63.025928337212 Beta(tan=1.96481, x=0.453587, y=0.891212): 1.962610505505\n    test 3439 63 62.948065314408 Theta(tan=1.95822, x=0.454798, y=0.890595): 1.962610505505\n    test 3440 63 62.987044924306 Mu(tan=1.96151, x=0.454192, y=0.890904): 1.962610505505\n    test 3441 63 62.948203767989 Chi(tan=1.95823, x=0.454796, y=0.890596): 1.962610505505\n    test 3442 63 63.000000000000 Xi(tan=1.96261, x=0.45399, y=0.891007): 1.962610505505\n\n    test 3443 70 70.082305433342 Phi(tan=2.75981, x=1.0, y=2.75981): 2.747477419455\n    test 3444 70 70.020593849911 Beta(tan=2.75055, x=1.0, y=2.75055): 2.747477419455\n    test 3445 70 69.958723199827 Theta(tan=2.74133, x=1.0, y=2.74133): 2.747477419455\n    test 3446 70 69.989708300156 Mu(tan=2.74594, x=0.342189, y=0.939631), iteration=3: 2.747477419455\n    test 3447 70 69.958845565244 Chi(tan=2.74135, x=1.0, y=2.74135), iteration=3: 2.747477419455\n    test 3448 70 70.000000000000 Xi(tan=2.74748, x=0.34202, y=0.939693): 2.747477419455\n\n    test 3449 70 70.082305433342 Phi(tan=2.75981, x=0.34067, y=0.940183): 2.747477419455\n    test 3450 70 70.020593849911 Beta(tan=2.75055, x=0.341682, y=0.939815): 2.747477419455\n    test 3451 70 69.958723199827 Theta(tan=2.74133, x=0.342697, y=0.939446): 2.747477419455\n    test 3452 70 69.989708300156 Mu(tan=2.74594, x=0.342189, y=0.939631): 2.747477419455\n    test 3453 70 69.958845565244 Chi(tan=2.74135, x=0.342695, y=0.939447): 2.747477419455\n    test 3454 70 70.000000000000 Xi(tan=2.74748, x=0.34202, y=0.939693): 2.747477419455\n\n    test 3455 77 77.056111910623 Phi(tan=4.35091, x=1.0, y=4.35091): 4.331475874284\n    test 3456 77 77.014041148140 Beta(tan=4.33632, x=1.0, y=4.33632): 4.331475874284\n    test 3457 77 76.971843170758 Theta(tan=4.32179, x=1.0, y=4.32179): 4.331475874284\n    test 3458 77 76.992981975049 Mu(tan=4.32906, x=0.22507, y=0.974343), iteration=3: 4.331475874284\n    test 3459 77 76.971932900289 Chi(tan=4.32182, x=1.0, y=4.32182), iteration=3: 4.331475874284\n    test 3460 77 77.000000000000 Xi(tan=4.33148, x=0.224951, y=0.97437): 4.331475874284\n\n    test 3461 77 77.056111910623 Phi(tan=4.35091, x=0.223997, y=0.97459): 4.331475874284\n    test 3462 77 77.014041148140 Beta(tan=4.33632, x=0.224712, y=0.974425): 4.331475874284\n    test 3463 77 76.971843170758 Theta(tan=4.32179, x=0.22543, y=0.974259): 4.331475874284\n    test 3464 77 76.992981975049 Mu(tan=4.32906, x=0.22507, y=0.974343): 4.331475874284\n    test 3465 77 76.971932900289 Chi(tan=4.32182, x=0.225428, y=0.97426): 4.331475874284\n    test 3466 77 77.000000000000 Xi(tan=4.33148, x=0.224951, y=0.97437): 4.331475874284\n\n    test 3467 84 84.026607472936 Phi(tan=9.55706, x=1.0, y=9.55706): 9.514364454223\n    test 3468 84 84.006658466345 Beta(tan=9.52501, x=1.0, y=9.52501): 9.514364454223\n    test 3469 84 83.986643815196 Theta(tan=9.49308, x=1.0, y=9.49308): 9.514364454223\n    test 3470 84 83.996671688480 Mu(tan=9.50905, x=0.104586, y=0.994516), iteration=3: 9.514364454223\n    test 3471 84 83.986688152448 Chi(tan=9.49315, x=1.0, y=9.49315), iteration=3: 9.514364454223\n    test 3472 84 84.000000000000 Xi(tan=9.51436, x=0.104528, y=0.994522): 9.514364454223\n\n    test 3473 84 84.026607472936 Phi(tan=9.55706, x=0.104067, y=0.99457): 9.514364454223\n    test 3474 84 84.006658466345 Beta(tan=9.52501, x=0.104413, y=0.994534): 9.514364454223\n    test 3475 84 83.986643815196 Theta(tan=9.49308, x=0.10476, y=0.994498): 9.514364454223\n    test 3476 84 83.996671688480 Mu(tan=9.50905, x=0.104586, y=0.994516): 9.514364454223\n    test 3477 84 83.986688152448 Chi(tan=9.49315, x=0.10476, y=0.994498): 9.514364454223\n    test 3478 84 84.000000000000 Xi(tan=9.51436, x=0.104528, y=0.994522): 9.514364454223\n\n    test 3479 91 90.995533984466 Phi(tan=-57.547, x=-1, y=57.547): -57.289961630759\n    test 3480 91 90.998882372785 Beta(tan=-57.3541, x=-1, y=57.3541): -57.289961630759\n    test 3481 91 91.002242018525 Theta(tan=-57.1618, x=-1, y=57.1618): -57.289961630759\n    test 3482 91 91.000558671809 Mu(tan=-57.258, x=-0.0174622, y=0.999848), iteration=3: -57.289961630759\n    test 3483 91 91.002234496198 Chi(tan=-57.1622, x=-1, y=57.1622), iteration=3: -57.289961630759\n    test 3484 91 91.000000000000 Xi(tan=-57.29, x=-0.0174524, y=0.999848): -57.289961630759\n\n    test 3485 91 90.995533984466 Phi(tan=-57.547, x=-0.0173745, y=0.999849): -57.289961630760  FAILED, KNOWN (9.42595e-15), expected -57.289961630759\n    test 3486 91 90.998882372785 Beta(tan=-57.3541, x=-0.0174329, y=0.999848): -57.289961630759\n    test 3487 91 91.002242018525 Theta(tan=-57.1618, x=-0.0174915, y=0.999847): -57.289961630760  FAILED, KNOWN (5.82921e-15), expected -57.289961630759\n    test 3488 91 91.000558671809 Mu(tan=-57.258, x=-0.0174622, y=0.999848): -57.289961630759\n    test 3489 91 91.002234496198 Chi(tan=-57.1622, x=-0.0174914, y=0.999847): -57.289961630760  FAILED, KNOWN (9.54998e-15), expected -57.289961630759\n    test 3490 91 91.000000000000 Xi(tan=-57.29, x=-0.0174524, y=0.999848): -57.289961630759\n\n    test 3491 98 97.964723816165 Phi(tan=-7.1473, x=-1, y=7.1473): -7.115369722384\n    test 3492 98 97.991172305797 Beta(tan=-7.12333, x=-1, y=7.12333): -7.115369722384\n    test 3493 98 98.017706325759 Theta(tan=-7.09945, x=-1, y=7.09945): -7.115369722384\n    test 3494 98 98.004412544182 Mu(tan=-7.1114, x=-0.139249, y=0.990257), iteration=3: -7.115369722384\n    test 3495 98 98.017648048185 Chi(tan=-7.0995, x=-1, y=7.0995), iteration=3: -7.115369722384\n    test 3496 98 98.000000000000 Xi(tan=-7.11537, x=-0.139173, y=0.990268): -7.115369722384\n\n    test 3497 98 97.964723816165 Phi(tan=-7.1473, x=-0.138563, y=0.990354): -7.115369722384\n    test 3498 98 97.991172305797 Beta(tan=-7.12333, x=-0.139021, y=0.990289): -7.115369722384\n    test 3499 98 98.017706325759 Theta(tan=-7.09945, x=-0.139479, y=0.990225): -7.115369722384\n    test 3500 98 98.004412544182 Mu(tan=-7.1114, x=-0.139249, y=0.990257): -7.115369722384\n    test 3501 98 98.017648048185 Chi(tan=-7.0995, x=-0.139478, y=0.990225): -7.115369722384\n    test 3502 98 98.000000000000 Xi(tan=-7.11537, x=-0.139173, y=0.990268): -7.115369722384\n\n    test 3503 105 104.935994159741 Phi(tan=-3.7488, x=-1, y=3.7488): -3.732050807569\n    test 3504 105 104.983983867222 Beta(tan=-3.73623, x=-1, y=3.73623): -3.732050807569\n    test 3505 105 105.032113400902 Theta(tan=-3.7237, x=-1, y=3.7237): -3.732050807569\n    test 3506 105 105.008004873422 Mu(tan=-3.72997, x=-0.258954, y=0.96589), iteration=2: -3.732050807569\n    test 3507 105 105.032012824358 Chi(tan=-3.72373, x=-1, y=3.72373), iteration=3: -3.732050807569\n    test 3508 105 105.000000000000 Xi(tan=-3.73205, x=-0.258819, y=0.965926): -3.732050807569\n\n    test 3509 105 104.935994159741 Phi(tan=-3.7488, x=-0.25774, y=0.966214): -3.732050807569\n    test 3510 105 104.983983867222 Beta(tan=-3.73623, x=-0.258549, y=0.965998): -3.732050807569\n    test 3511 105 105.032113400902 Theta(tan=-3.7237, x=-0.25936, y=0.965781): -3.732050807569\n    test 3512 105 105.008004873422 Mu(tan=-3.72997, x=-0.258954, y=0.96589): -3.732050807569\n    test 3513 105 105.032012824358 Chi(tan=-3.72373, x=-0.259359, y=0.965781): -3.732050807569\n    test 3514 105 105.000000000000 Xi(tan=-3.73205, x=-0.258819, y=0.965926): -3.732050807569\n\n    test 3515 112 111.911042136698 Phi(tan=-2.48619, x=-1, y=2.48619): -2.475086853416\n    test 3516 112 111.977742323906 Beta(tan=-2.47786, x=-1, y=2.47786): -2.475086853416\n    test 3517 112 112.044603965311 Theta(tan=-2.46955, x=-1, y=2.46955): -2.475086853416\n    test 3518 112 112.011122625415 Mu(tan=-2.4737, x=-0.374787, y=0.927111), iteration=3: -2.475086853416\n    test 3519 112 112.044475225333 Chi(tan=-2.46957, x=-1, y=2.46957), iteration=3: -2.475086853416\n    test 3520 112 112.000000000000 Xi(tan=-2.47509, x=-0.374607, y=0.927184): -2.475086853416\n\n    test 3521 112 111.911042136698 Phi(tan=-2.48619, x=-0.373167, y=0.927764): -2.475086853416\n    test 3522 112 111.977742323906 Beta(tan=-2.47786, x=-0.374246, y=0.927329): -2.475086853416\n    test 3523 112 112.044603965311 Theta(tan=-2.46955, x=-0.375328, y=0.926892): -2.475086853416\n    test 3524 112 112.011122625415 Mu(tan=-2.4737, x=-0.374787, y=0.927111): -2.475086853416\n    test 3525 112 112.044475225333 Chi(tan=-2.46957, x=-0.375326, y=0.926893): -2.475086853416\n    test 3526 112 112.000000000000 Xi(tan=-2.47509, x=-0.374607, y=0.927184): -2.475086853416\n\n    test 3527 119 118.891346228069 Phi(tan=-1.81214, x=-1, y=1.81214): -1.804047755271\n    test 3528 119 118.972817760312 Beta(tan=-1.80607, x=-1, y=1.80607): -1.804047755271\n    test 3529 119 119.054434637080 Theta(tan=-1.80001, x=-1, y=1.80001): -1.804047755271\n    test 3530 119 119.013580731176 Mu(tan=-1.80304, x=-0.485017, y=0.874505), iteration=3: -1.804047755271\n    test 3531 119 119.054294796723 Chi(tan=-1.80002, x=-1, y=1.80002), iteration=3: -1.804047755271\n    test 3532 119 119.000000000000 Xi(tan=-1.80405, x=-0.48481, y=0.87462): -1.804047755271\n\n    test 3533 119 118.891346228069 Phi(tan=-1.81214, x=-0.48315, y=0.875538): -1.804047755271\n    test 3534 119 118.972817760312 Beta(tan=-1.80607, x=-0.484395, y=0.87485): -1.804047755271\n    test 3535 119 119.054434637080 Theta(tan=-1.80001, x=-0.48564, y=0.874159): -1.804047755271\n    test 3536 119 119.013580731176 Mu(tan=-1.80304, x=-0.485017, y=0.874505): -1.804047755271\n    test 3537 119 119.054294796723 Chi(tan=-1.80002, x=-0.485638, y=0.87416): -1.804047755271\n    test 3538 119 119.000000000000 Xi(tan=-1.80405, x=-0.48481, y=0.87462): -1.804047755271\n\n    test 3539 126 125.878079358159 Phi(tan=-1.38256, x=-1, y=1.38256): -1.376381920471\n    test 3540 126 125.969503261502 Beta(tan=-1.37792, x=-1, y=1.37792): -1.376381920471\n    test 3541 126 126.061022406195 Theta(tan=-1.3733, x=-1, y=1.3733): -1.376381920471\n    test 3542 126 126.015233045717 Mu(tan=-1.37561, x=-0.588, y=0.808861), iteration=2: -1.376381920471\n    test 3543 126 126.060888237156 Chi(tan=-1.37331, x=-1, y=1.37331), iteration=2: -1.376381920471\n    test 3544 126 126.000000000000 Xi(tan=-1.37638, x=-0.587785, y=0.809017): -1.376381920471\n\n    test 3545 126 125.878079358159 Phi(tan=-1.38256, x=-0.586062, y=0.810266): -1.376381920471\n    test 3546 126 125.969503261502 Beta(tan=-1.37792, x=-0.587355, y=0.80933): -1.376381920471\n    test 3547 126 126.061022406195 Theta(tan=-1.3733, x=-0.588647, y=0.808391): -1.376381920471\n    test 3548 126 126.015233045717 Mu(tan=-1.37561, x=-0.588, y=0.808861): -1.376381920471\n    test 3549 126 126.060888237156 Chi(tan=-1.37331, x=-0.588645, y=0.808392): -1.376381920471\n    test 3550 126 126.000000000000 Xi(tan=-1.37638, x=-0.587785, y=0.809017): -1.376381920471\n\n    test 3551 133 132.872038576251 Phi(tan=-1.07718, x=-1, y=1.07718): -1.072368710025\n    test 3552 133 132.967997382278 Beta(tan=-1.07357, x=-1, y=1.07357): -1.072368710025\n    test 3553 133 133.063979030656 Theta(tan=-1.06997, x=-1, y=1.06997): -1.072368710025\n    test 3554 133 133.015981056163 Mu(tan=-1.07177, x=-0.682202, y=0.731163), iteration=2: -1.072368710025\n    test 3555 133 133.063864035301 Chi(tan=-1.06998, x=-1, y=1.06998), iteration=3: -1.072368710025\n    test 3556 133 133.000000000000 Xi(tan=-1.07237, x=-0.681998, y=0.731354): -1.072368710025\n\n    test 3557 133 132.872038576251 Phi(tan=-1.07718, x=-0.680363, y=0.732875): -1.072368710025\n    test 3558 133 132.967997382278 Beta(tan=-1.07357, x=-0.68159, y=0.731735): -1.072368710025\n    test 3559 133 133.063979030656 Theta(tan=-1.06997, x=-0.682815, y=0.730592): -1.072368710025\n    test 3560 133 133.015981056163 Mu(tan=-1.07177, x=-0.682202, y=0.731163): -1.072368710025\n    test 3561 133 133.063864035301 Chi(tan=-1.06998, x=-0.682813, y=0.730593): -1.072368710025\n    test 3562 133 133.000000000000 Xi(tan=-1.07237, x=-0.681998, y=0.731354): -1.072368710025\n\n    test 3563 140 139.873595650901 Phi(tan=-0.842866, x=-1, y=0.842866): -0.839099631177\n    test 3564 140 139.968391970048 Beta(tan=-0.84004, x=-1, y=0.84004): -0.839099631177\n    test 3565 140 140.063133367178 Theta(tan=-0.837224, x=-1, y=0.837224): -0.839099631177\n    test 3566 140 140.015779815968 Mu(tan=-0.83863, x=-0.766221, y=0.642577), iteration=3: -0.839099631177\n    test 3567 140 140.063045682360 Chi(tan=-0.837226, x=-1, y=0.837226), iteration=2: -0.839099631177\n    test 3568 140 140.000000000000 Xi(tan=-0.8391, x=-0.766044, y=0.642788): -0.839099631177\n\n    test 3569 140 139.873595650901 Phi(tan=-0.842866, x=-0.764624, y=0.644476): -0.839099631177\n    test 3570 140 139.968391970048 Beta(tan=-0.84004, x=-0.76569, y=0.64321): -0.839099631177\n    test 3571 140 140.063133367178 Theta(tan=-0.837224, x=-0.766752, y=0.641943): -0.839099631177\n    test 3572 140 140.015779815968 Mu(tan=-0.83863, x=-0.766221, y=0.642577): -0.839099631177\n    test 3573 140 140.063045682360 Chi(tan=-0.837226, x=-0.766751, y=0.641944): -0.839099631177\n    test 3574 140 140.000000000000 Xi(tan=-0.8391, x=-0.766044, y=0.642788): -0.839099631177\n\n    test 3575 147 146.882671979706 Phi(tan=-0.652323, x=-1, y=0.652323): -0.649407593198\n    test 3576 147 146.970666152106 Beta(tan=-0.650136, x=-1, y=0.650136): -0.649407593198\n    test 3577 147 147.058540482739 Theta(tan=-0.647956, x=-1, y=0.647956): -0.649407593198\n    test 3578 147 147.014640733824 Mu(tan=-0.649044, x=-0.83881, y=0.544425), iteration=2: -0.649407593198\n    test 3579 147 147.058482092364 Chi(tan=-0.647957, x=-1, y=0.647957), iteration=3: -0.649407593198\n    test 3580 147 147.000000000000 Xi(tan=-0.649408, x=-0.838671, y=0.544639): -0.649407593198\n\n    test 3581 147 146.882671979706 Phi(tan=-0.652323, x=-0.837554, y=0.546355): -0.649407593198\n    test 3582 147 146.970666152106 Beta(tan=-0.650136, x=-0.838392, y=0.545068): -0.649407593198\n    test 3583 147 147.058540482739 Theta(tan=-0.647956, x=-0.839227, y=0.543782): -0.649407593198\n    test 3584 147 147.014640733824 Mu(tan=-0.649044, x=-0.83881, y=0.544425): -0.649407593198\n    test 3585 147 147.058482092364 Chi(tan=-0.647957, x=-0.839226, y=0.543783): -0.649407593198\n    test 3586 147 147.000000000000 Xi(tan=-0.649408, x=-0.838671, y=0.544639): -0.649407593198\n\n    test 3587 154 153.898740000769 Phi(tan=-0.489922, x=-1, y=0.489922): -0.487732588566\n    test 3588 154 153.974686973605 Beta(tan=-0.48828, x=-1, y=0.48828): -0.487732588566\n    test 3589 154 154.050477253377 Theta(tan=-0.486642, x=-1, y=0.486642): -0.487732588566\n    test 3590 154 154.012631023956 Mu(tan=-0.48746, x=-0.898891, y=0.438173), iteration=3: -0.487732588566\n    test 3591 154 154.050444626907 Chi(tan=-0.486643, x=-1, y=0.486643), iteration=2: -0.487732588566\n    test 3592 154 154.000000000000 Xi(tan=-0.487733, x=-0.898794, y=0.438371): -0.487732588566\n\n    test 3593 154 153.898740000769 Phi(tan=-0.489922, x=-0.898018, y=0.439959): -0.487732588566\n    test 3594 154 153.974686973605 Beta(tan=-0.48828, x=-0.8986, y=0.438768): -0.487732588566\n    test 3595 154 154.050477253377 Theta(tan=-0.486642, x=-0.89918, y=0.437579): -0.487732588566\n    test 3596 154 154.012631023956 Mu(tan=-0.48746, x=-0.898891, y=0.438173): -0.487732588566\n    test 3597 154 154.050444626907 Chi(tan=-0.486643, x=-0.89918, y=0.43758): -0.487732588566\n    test 3598 154 154.000000000000 Xi(tan=-0.487733, x=-0.898794, y=0.438371): -0.487732588566\n\n    test 3599 161 160.920851786649 Phi(tan=-0.345874, x=-1, y=0.345874): -0.344327613290\n    test 3600 161 160.980216789536 Beta(tan=-0.344714, x=-1, y=0.344714): -0.344327613290\n    test 3601 161 161.039424975997 Theta(tan=-0.343558, x=-1, y=0.343558): -0.344327613290\n    test 3602 161 161.009869820426 Mu(tan=-0.344135, x=-0.945575, y=0.325405), iteration=3: -0.344327613290\n    test 3603 161 161.039410917225 Chi(tan=-0.343558, x=-1, y=0.343558), iteration=3: -0.344327613290\n    test 3604 161 161.000000000000 Xi(tan=-0.344328, x=-0.945519, y=0.325568): -0.344327613290\n\n    test 3605 161 160.920851786649 Phi(tan=-0.345874, x=-0.945068, y=0.326874): -0.344327613290\n    test 3606 161 160.980216789536 Beta(tan=-0.344714, x=-0.945406, y=0.325895): -0.344327613290\n    test 3607 161 161.039424975997 Theta(tan=-0.343558, x=-0.945742, y=0.324917): -0.344327613290\n    test 3608 161 161.009869820426 Mu(tan=-0.344135, x=-0.945575, y=0.325405): -0.344327613290\n    test 3609 161 161.039410917225 Chi(tan=-0.343558, x=-0.945742, y=0.324918): -0.344327613290\n    test 3610 161 161.000000000000 Xi(tan=-0.344328, x=-0.945519, y=0.325568): -0.344327613290\n\n    test 3611 168 167.947693775816 Phi(tan=-0.213511, x=-1, y=0.213511): -0.212556561670\n    test 3612 168 167.986927091791 Beta(tan=-0.212795, x=-1, y=0.212795): -0.212556561670\n    test 3613 168 168.026040245291 Theta(tan=-0.212082, x=-1, y=0.212082): -0.212556561670\n    test 3614 168 168.006521160939 Mu(tan=-0.212438, x=-0.978171, y=0.2078), iteration=3: -0.212556561670\n    test 3615 168 168.026036457648 Chi(tan=-0.212082, x=-1, y=0.212082), iteration=3: -0.212556561670\n    test 3616 168 168.000000000000 Xi(tan=-0.212557, x=-0.978148, y=0.207912): -0.212556561670\n\n    test 3617 168 167.947693775816 Phi(tan=-0.213511, x=-0.977957, y=0.208805): -0.212556561670\n    test 3618 168 167.986927091791 Beta(tan=-0.212795, x=-0.9781, y=0.208135): -0.212556561670\n    test 3619 168 168.026040245291 Theta(tan=-0.212082, x=-0.978242, y=0.207467): -0.212556561670\n    test 3620 168 168.006521160939 Mu(tan=-0.212438, x=-0.978171, y=0.2078): -0.212556561670\n    test 3621 168 168.026036457648 Chi(tan=-0.212082, x=-0.978242, y=0.207467): -0.212556561670\n    test 3622 168 168.000000000000 Xi(tan=-0.212557, x=-0.978148, y=0.207912): -0.212556561670\n\n    test 3623 175 174.977664774563 Phi(tan=-0.0878815, x=-1, y=0.0878815): -0.087488663526\n    test 3624 175 174.994418020079 Beta(tan=-0.0875868, x=-1, y=0.0875868): -0.087488663526\n    test 3625 175 175.011115948983 Theta(tan=-0.0872932, x=-1, y=0.0872932): -0.087488663526\n    test 3626 175 175.002784242316 Mu(tan=-0.0874397, x=-0.996199, y=0.0871073), iteration=2: -0.087488663526\n    test 3627 175 175.011115664833 Chi(tan=-0.0872932, x=-1, y=0.0872932), iteration=2: -0.087488663526\n    test 3628 175 175.000000000000 Xi(tan=-0.0874887, x=-0.996195, y=0.0871557): -0.087488663526\n\n    test 3629 175 174.977664774563 Phi(tan=-0.0878815, x=-0.996161, y=0.0875441): -0.087488663526\n    test 3630 175 174.994418020079 Beta(tan=-0.0875868, x=-0.996186, y=0.0872528): -0.087488663526\n    test 3631 175 175.011115948983 Theta(tan=-0.0872932, x=-0.996212, y=0.0869625): -0.087488663526\n    test 3632 175 175.002784242316 Mu(tan=-0.0874397, x=-0.996199, y=0.0871073): -0.087488663526\n    test 3633 175 175.011115664833 Chi(tan=-0.0872932, x=-0.996212, y=0.0869625): -0.087488663526\n    test 3634 175 175.000000000000 Xi(tan=-0.0874887, x=-0.996195, y=0.0871557): -0.087488663526\n\n    test 3635 182 182.008972613463 Phi(tan=0.0350776, x=-1, y=-0.0350776): 0.034920769492\n    test 3636 182 182.002242400308 Beta(tan=0.03496, x=-1, y=-0.03496): 0.034920769492\n    test 3637 182 181.995534697284 Theta(tan=0.0348427, x=-1, y=-0.0348427): 0.034920769492\n    test 3638 182 181.998881526172 Mu(tan=0.0349012, x=-0.999392, y=-0.03488), iteration=3: 0.034920769492\n    test 3639 182 181.995534715586 Chi(tan=0.0348427, x=-1, y=-0.0348427), iteration=2: 0.034920769492\n    test 3640 182 182.000000000000 Xi(tan=0.0349208, x=-0.999391, y=-0.0348995): 0.034920769492\n\n    test 3641 182 182.008972613463 Phi(tan=0.0350776, x=-0.999385, y=-0.035056): 0.034920769492\n    test 3642 182 182.002242400308 Beta(tan=0.03496, x=-0.999389, y=-0.0349386): 0.034920769492\n    test 3643 182 181.995534697284 Theta(tan=0.0348427, x=-0.999394, y=-0.0348216): 0.034920769492\n    test 3644 182 181.998881526172 Mu(tan=0.0349012, x=-0.999392, y=-0.03488): 0.034920769492\n    test 3645 182 181.995534715586 Chi(tan=0.0348427, x=-0.999394, y=-0.0348216): 0.034920769492\n    test 3646 182 182.000000000000 Xi(tan=0.0349208, x=-0.999391, y=-0.0348995): 0.034920769492\n\n    test 3647 189 189.039743358381 Phi(tan=0.159096, x=-1, y=-0.159096): 0.158384440325\n    test 3648 189 189.009932816166 Beta(tan=0.158562, x=-1, y=-0.158562): 0.158384440325\n    test 3649 189 188.980217328283 Theta(tan=0.158031, x=-1, y=-0.158031): 0.158384440325\n    test 3650 189 188.995045415532 Mu(tan=0.158296, x=-0.987702, y=-0.156349), iteration=3: 0.158384440325\n    test 3651 189 188.980218957347 Chi(tan=0.158031, x=-1, y=-0.158031), iteration=3: 0.158384440325\n    test 3652 189 189.000000000000 Xi(tan=0.158384, x=-0.987688, y=-0.156434): 0.158384440325\n\n    test 3653 189 189.039743358381 Phi(tan=0.159096, x=-0.98758, y=-0.15712): 0.158384440325\n    test 3654 189 189.009932816166 Beta(tan=0.158562, x=-0.987661, y=-0.156606): 0.158384440325\n    test 3655 189 188.980217328283 Theta(tan=0.158031, x=-0.987742, y=-0.156093): 0.158384440325\n    test 3656 189 188.995045415532 Mu(tan=0.158296, x=-0.987702, y=-0.156349): 0.158384440325\n    test 3657 189 188.980218957347 Chi(tan=0.158031, x=-0.987742, y=-0.156093): 0.158384440325\n    test 3658 189 189.000000000000 Xi(tan=0.158384, x=-0.987688, y=-0.156434): 0.158384440325\n\n    test 3659 196 196.068135937668 Phi(tan=0.288033, x=-1, y=-0.288033): 0.286745385759\n    test 3660 196 196.017029985937 Beta(tan=0.287067, x=-1, y=-0.287067): 0.286745385759\n    test 3661 196 195.966069329052 Theta(tan=0.286105, x=-1, y=-0.286105): 0.286745385759\n    test 3662 196 195.991504319198 Mu(tan=0.286585, x=-0.961303, y=-0.275495), iteration=3: 0.286745385759\n    test 3663 196 195.966078002587 Chi(tan=0.286105, x=-1, y=-0.286105), iteration=3: 0.286745385759\n    test 3664 196 196.000000000000 Xi(tan=0.286745, x=-0.961262, y=-0.275637): 0.286745385759\n\n    test 3665 196 196.068135937668 Phi(tan=0.288033, x=-0.960933, y=-0.27678): 0.286745385759\n    test 3666 196 196.017029985937 Beta(tan=0.287067, x=-0.96118, y=-0.275923): 0.286745385759\n    test 3667 196 195.966069329052 Theta(tan=0.286105, x=-0.961425, y=-0.275068): 0.286745385759\n    test 3668 196 195.991504319198 Mu(tan=0.286585, x=-0.961303, y=-0.275495): 0.286745385759\n    test 3669 196 195.966078002587 Chi(tan=0.286105, x=-0.961425, y=-0.275068): 0.286745385759\n    test 3670 196 196.000000000000 Xi(tan=0.286745, x=-0.961262, y=-0.275637): 0.286745385759\n\n    test 3671 203 203.092454589560 Phi(tan=0.426381, x=-1, y=-0.426381): 0.424474816210\n    test 3672 203 203.023110614245 Beta(tan=0.424951, x=-1, y=-0.424951): 0.424474816210\n    test 3673 203 202.953928092744 Theta(tan=0.423526, x=-1, y=-0.423526): 0.424474816210\n    test 3674 203 202.988468962214 Mu(tan=0.424237, x=-0.920583, y=-0.390546), iteration=2: 0.424474816210\n    test 3675 203 202.953951753533 Chi(tan=0.423527, x=-1, y=-0.423527), iteration=2: 0.424474816210\n    test 3676 203 203.000000000000 Xi(tan=0.424475, x=-0.920505, y=-0.390731): 0.424474816210\n\n    test 3677 203 203.092454589560 Phi(tan=0.426381, x=-0.919873, y=-0.392216): 0.424474816210\n    test 3678 203 203.023110614245 Beta(tan=0.424951, x=-0.920347, y=-0.391102): 0.424474816210\n    test 3679 203 202.953928092744 Theta(tan=0.423526, x=-0.920819, y=-0.389991): 0.424474816210\n    test 3680 203 202.988468962214 Mu(tan=0.424237, x=-0.920583, y=-0.390546): 0.424474816210\n    test 3681 203 202.953951753533 Chi(tan=0.423527, x=-0.920819, y=-0.389991): 0.424474816210\n    test 3682 203 203.000000000000 Xi(tan=0.424475, x=-0.920505, y=-0.390731): 0.424474816210\n\n    test 3683 210 210.111251718648 Phi(tan=0.579942, x=-1, y=-0.579942): 0.577350269190\n    test 3684 210 210.027812929728 Beta(tan=0.577998, x=-1, y=-0.577998): 0.577350269190\n    test 3685 210 209.944513899906 Theta(tan=0.57606, x=-1, y=-0.57606): 0.577350269190\n    test 3686 210 209.986119784065 Mu(tan=0.577027, x=-0.866147, y=-0.49979), iteration=3: 0.577350269190\n    test 3687 210 209.944560549356 Chi(tan=0.576061, x=-1, y=-0.576061), iteration=3: 0.577350269190\n    test 3688 210 210.000000000000 Xi(tan=0.57735, x=-0.866025, y=-0.5): 0.577350269190\n\n    test 3689 210 210.111251718648 Phi(tan=0.579942, x=-0.865053, y=-0.501681): 0.577350269190\n    test 3690 210 210.027812929728 Beta(tan=0.577998, x=-0.865783, y=-0.50042): 0.577350269190\n    test 3691 210 209.944513899906 Theta(tan=0.57606, x=-0.866509, y=-0.499161): 0.577350269190\n    test 3692 210 209.986119784065 Mu(tan=0.577027, x=-0.866147, y=-0.49979): 0.577350269190\n    test 3693 210 209.944560549356 Chi(tan=0.576061, x=-0.866509, y=-0.499162): 0.577350269190\n    test 3694 210 210.000000000000 Xi(tan=0.57735, x=-0.866025, y=-0.5): 0.577350269190\n\n    test 3695 217 217.123414552554 Phi(tan=0.756937, x=-1, y=-0.756937): 0.753554050103\n    test 3696 217 217.030858299580 Beta(tan=0.754399, x=-1, y=-0.754399): 0.753554050103\n    test 3697 217 216.938387365618 Theta(tan=0.751869, x=-1, y=-0.751869): 0.753554050103\n    test 3698 217 216.984596192751 Mu(tan=0.753133, x=-0.798797, y=-0.6016), iteration=3: 0.753554050103\n    test 3699 217 216.938462387195 Chi(tan=0.751871, x=-1, y=-0.751871), iteration=3: 0.753554050103\n    test 3700 217 217.000000000000 Xi(tan=0.753554, x=-0.798636, y=-0.601815): 0.753554050103\n\n    test 3701 217 217.123414552554 Phi(tan=0.756937, x=-0.797337, y=-0.603534): 0.753554050103\n    test 3702 217 217.030858299580 Beta(tan=0.754399, x=-0.798311, y=-0.602245): 0.753554050103\n    test 3703 217 216.938387365618 Theta(tan=0.751869, x=-0.799282, y=-0.600956): 0.753554050103\n    test 3704 217 216.984596192751 Mu(tan=0.753133, x=-0.798797, y=-0.6016): 0.753554050103\n    test 3705 217 216.938462387195 Chi(tan=0.751871, x=-0.799281, y=-0.600957): 0.753554050103\n    test 3706 217 217.000000000000 Xi(tan=0.753554, x=-0.798636, y=-0.601815): 0.753554050103\n\n    test 3707 224 224.128230303258 Phi(tan=0.970023, x=-1, y=-0.970023): 0.965688774807\n    test 3708 224 224.032067609230 Beta(tan=0.966771, x=-1, y=-0.966771): 0.965688774807\n    test 3709 224 223.935915824293 Theta(tan=0.96353, x=-1, y=-0.96353): 0.965688774807\n    test 3710 224 223.983988319148 Mu(tan=0.965149, x=-0.719534, y=-0.694457), iteration=3: 0.965688774807\n    test 3711 224 223.936019754646 Chi(tan=0.963533, x=-1, y=-0.963533), iteration=3: 0.965688774807\n    test 3712 224 224.000000000000 Xi(tan=0.965689, x=-0.71934, y=-0.694658): 0.965688774807\n\n    test 3713 224 224.128230303258 Phi(tan=0.970023, x=-0.717783, y=-0.696267): 0.965688774807\n    test 3714 224 224.032067609230 Beta(tan=0.966771, x=-0.718951, y=-0.695061): 0.965688774807\n    test 3715 224 223.935915824293 Theta(tan=0.96353, x=-0.720116, y=-0.693853): 0.965688774807\n    test 3716 224 223.983988319148 Mu(tan=0.965149, x=-0.719534, y=-0.694457): 0.965688774807\n    test 3717 224 223.936019754646 Chi(tan=0.963533, x=-0.720115, y=-0.693855): 0.965688774807\n    test 3718 224 224.000000000000 Xi(tan=0.965689, x=-0.71934, y=-0.694658): 0.965688774807\n\n    test 3719 231 231.125426196540 Phi(tan=1.24044, x=-1, y=-1.24044): 1.234897156535\n    test 3720 231 231.031371476626 Beta(tan=1.23628, x=-1, y=-1.23628): 1.234897156535\n    test 3721 231 230.937250720782 Theta(tan=1.23214, x=-1, y=-1.23214): 1.234897156535\n    test 3722 231 230.984331752747 Mu(tan=1.23421, x=-0.629533, y=-0.776974), iteration=3: 1.234897156535\n    test 3723 231 230.937378047856 Chi(tan=1.23214, x=-1, y=-1.23214), iteration=2: 1.234897156535\n    test 3724 231 231.000000000000 Xi(tan=1.2349, x=-0.62932, y=-0.777146): 1.234897156535\n\n    test 3725 231 231.125426196540 Phi(tan=1.24044, x=-0.627618, y=-0.778522): 1.234897156535\n    test 3726 231 231.031371476626 Beta(tan=1.23628, x=-0.628895, y=-0.77749): 1.234897156535\n    test 3727 231 230.937250720782 Theta(tan=1.23214, x=-0.630171, y=-0.776456): 1.234897156535\n    test 3728 231 230.984331752747 Mu(tan=1.23421, x=-0.629533, y=-0.776974): 1.234897156535\n    test 3729 231 230.937378047856 Chi(tan=1.23214, x=-0.630169, y=-0.776458): 1.234897156535\n    test 3730 231 231.000000000000 Xi(tan=1.2349, x=-0.62932, y=-0.777146): 1.234897156535\n\n    test 3731 238 238.115182546420 Phi(tan=1.60752, x=-1, y=-1.60752): 1.600334529041\n    test 3732 238 238.028813796136 Beta(tan=1.60213, x=-1, y=-1.60213): 1.600334529041\n    test 3733 238 237.942317534000 Theta(tan=1.59676, x=-1, y=-1.59676): 1.600334529041\n    test 3734 238 237.985605550109 Mu(tan=1.59944, x=-0.530132, y=-0.847915), iteration=3: 1.600334529041\n    test 3735 238 237.942456867934 Chi(tan=1.59676, x=-1, y=-1.59676), iteration=3: 1.600334529041\n    test 3736 238 238.000000000000 Xi(tan=1.60033, x=-0.529919, y=-0.848048): 1.600334529041\n\n    test 3737 238 238.115182546420 Phi(tan=1.60752, x=-0.528213, y=-0.849112): 1.600334529041\n    test 3738 238 238.028813796136 Beta(tan=1.60213, x=-0.529493, y=-0.848314): 1.600334529041\n    test 3739 238 237.942317534000 Theta(tan=1.59676, x=-0.530773, y=-0.847514): 1.600334529041\n    test 3740 238 237.985605550109 Mu(tan=1.59944, x=-0.530132, y=-0.847915): 1.600334529041\n    test 3741 238 237.942456867934 Chi(tan=1.59676, x=-0.530771, y=-0.847515): 1.600334529041\n    test 3742 238 238.000000000000 Xi(tan=1.60033, x=-0.529919, y=-0.848048): 1.600334529041\n\n    test 3743 245 245.098118836759 Phi(tan=2.15413, x=-1, y=-2.15413): 2.144506920510\n    test 3744 245 245.024548537731 Beta(tan=2.14691, x=-1, y=-2.14691): 2.144506920510\n    test 3745 245 244.950819083860 Theta(tan=2.13971, x=-1, y=-2.13971): 2.144506920510\n    test 3746 245 244.987733605483 Mu(tan=2.14331, x=-0.422812, y=-0.906217), iteration=3: 2.144506920510\n    test 3747 245 244.950954727954 Chi(tan=2.13972, x=-1, y=-2.13972), iteration=2: 2.144506920510\n    test 3748 245 245.000000000000 Xi(tan=2.14451, x=-0.422618, y=-0.906308): 2.144506920510\n\n    test 3749 245 245.098118836759 Phi(tan=2.15413, x=-0.421066, y=-0.90703): 2.144506920510\n    test 3750 245 245.024548537731 Beta(tan=2.14691, x=-0.42223, y=-0.906489): 2.144506920510\n    test 3751 245 244.950819083860 Theta(tan=2.13971, x=-0.423396, y=-0.905945): 2.144506920510\n    test 3752 245 244.987733605483 Mu(tan=2.14331, x=-0.422812, y=-0.906217): 2.144506920510\n    test 3753 245 244.950954727954 Chi(tan=2.13972, x=-0.423394, y=-0.905946): 2.144506920510\n    test 3754 245 245.000000000000 Xi(tan=2.14451, x=-0.422618, y=-0.906308): 2.144506920510\n\n    test 3755 252 252.075254383698 Phi(tan=3.09149, x=-1, y=-3.09149): 3.077683537175\n    test 3756 252 252.018830129897 Beta(tan=3.08113, x=-1, y=-3.08113): 3.077683537175\n    test 3757 252 251.962252287555 Theta(tan=3.0708, x=-1, y=-3.0708): 3.077683537175\n    test 3758 252 251.990589272651 Mu(tan=3.07596, x=-0.309173, y=-0.951006), iteration=2: 3.077683537175\n    test 3759 252 251.962366907267 Chi(tan=3.07082, x=-1, y=-3.07082), iteration=3: 3.077683537175\n    test 3760 252 252.000000000000 Xi(tan=3.07768, x=-0.309017, y=-0.951057): 3.077683537175\n\n    test 3761 252 252.075254383698 Phi(tan=3.09149, x=-0.307768, y=-0.951462): 3.077683537175\n    test 3762 252 252.018830129897 Beta(tan=3.08113, x=-0.308704, y=-0.951158): 3.077683537175\n    test 3763 252 251.962252287555 Theta(tan=3.0708, x=-0.309644, y=-0.950853): 3.077683537175\n    test 3764 252 251.990589272651 Mu(tan=3.07596, x=-0.309173, y=-0.951006): 3.077683537175\n    test 3765 252 251.962366907267 Chi(tan=3.07082, x=-0.309642, y=-0.950853): 3.077683537175\n    test 3766 252 252.000000000000 Xi(tan=3.07768, x=-0.309017, y=-0.951057): 3.077683537175\n\n    test 3767 259 259.047946497885 Phi(tan=5.16764, x=-1, y=-5.16764): 5.144554015970\n    test 3768 259 259.011998105898 Beta(tan=5.15031, x=-1, y=-5.15031): 5.144554015970\n    test 3769 259 258.975937580981 Theta(tan=5.13304, x=-1, y=-5.13304): 5.144554015970\n    test 3770 259 258.994002940120 Mu(tan=5.14168, x=-0.190912, y=-0.981607), iteration=3: 5.144554015970\n    test 3771 259 258.976015406086 Chi(tan=5.13308, x=-1, y=-5.13308), iteration=3: 5.144554015970\n    test 3772 259 259.000000000000 Xi(tan=5.14455, x=-0.190809, y=-0.981627): 5.144554015970\n\n    test 3773 259 259.047946497885 Phi(tan=5.16764, x=-0.189987, y=-0.981787): 5.144554015970\n    test 3774 259 259.011998105898 Beta(tan=5.15031, x=-0.190603, y=-0.981667): 5.144554015970\n    test 3775 259 258.975937580981 Theta(tan=5.13304, x=-0.191221, y=-0.981547): 5.144554015970\n    test 3776 259 258.994002940120 Mu(tan=5.14168, x=-0.190912, y=-0.981607): 5.144554015970\n    test 3777 259 258.976015406086 Chi(tan=5.13308, x=-0.19122, y=-0.981547): 5.144554015970\n    test 3778 259 259.000000000000 Xi(tan=5.14455, x=-0.190809, y=-0.981627): 5.144554015970\n\n    test 3779 266 266.017810106930 Phi(tan=14.3648, x=-1, y=-14.3648): 14.300666256712\n    test 3780 266 266.004456979343 Beta(tan=14.3167, x=-1, y=-14.3167): 14.300666256712\n    test 3781 266 265.991059367560 Theta(tan=14.2687, x=-1, y=-14.2687): 14.300666256712\n    test 3782 266 265.997772097900 Mu(tan=14.2927, x=-0.0697953, y=-0.997561), iteration=2: 14.300666256712\n    test 3783 266 265.991089228290 Chi(tan=14.2688, x=-1, y=-14.2688), iteration=3: 14.300666256712\n    test 3784 266 266.000000000000 Xi(tan=14.3007, x=-0.0697565, y=-0.997564): 14.300666256712\n\n    test 3785 266 266.017810106930 Phi(tan=14.3648, x=-0.0694464, y=-0.997586): 14.300666256712\n    test 3786 266 266.004456979343 Beta(tan=14.3167, x=-0.0696789, y=-0.997569): 14.300666256712\n    test 3787 266 265.991059367560 Theta(tan=14.2687, x=-0.0699121, y=-0.997553): 14.300666256712\n    test 3788 266 265.997772097900 Mu(tan=14.2927, x=-0.0697953, y=-0.997561): 14.300666256712\n    test 3789 266 265.991089228290 Chi(tan=14.2688, x=-0.0699116, y=-0.997553): 14.300666256712\n    test 3790 266 266.000000000000 Xi(tan=14.3007, x=-0.0697565, y=-0.997564): 14.300666256712\n\n    test 3791 273 272.986623544405 Phi(tan=-19.1668, x=1.0, y=-19.1668): -19.081136687728\n    test 3792 273 272.996652532418 Beta(tan=-19.1025, x=1.0, y=-19.1025): -19.081136687728\n    test 3793 273 273.006715074128 Theta(tan=-19.0384, x=1.0, y=-19.0384): -19.081136687728\n    test 3794 273 273.001673300226 Mu(tan=-19.0705, x=0.0523651, y=-0.998628), iteration=2: -19.081136687728\n    test 3795 273 273.006692598711 Chi(tan=-19.0386, x=1.0, y=-19.0386), iteration=3: -19.081136687728\n    test 3796 273 273.000000000000 Xi(tan=-19.0811, x=0.052336, y=-0.99863): -19.081136687728\n\n    test 3797 273 272.986623544405 Phi(tan=-19.1668, x=0.0521028, y=-0.998642): -19.081136687728\n    test 3798 273 272.996652532418 Beta(tan=-19.1025, x=0.0522776, y=-0.998633): -19.081136687728\n    test 3799 273 273.006715074128 Theta(tan=-19.0384, x=0.052453, y=-0.998623): -19.081136687728\n    test 3800 273 273.001673300226 Mu(tan=-19.0705, x=0.0523651, y=-0.998628): -19.081136687728\n    test 3801 273 273.006692598711 Chi(tan=-19.0386, x=0.0524526, y=-0.998623): -19.081136687728\n    test 3802 273 273.000000000000 Xi(tan=-19.0811, x=0.052336, y=-0.99863): -19.081136687728\n\n    test 3803 280 279.956225698278 Phi(tan=-5.69673, x=1.0, y=-5.69673): -5.671281819618\n    test 3804 280 279.989045850720 Beta(tan=-5.67763, x=1.0, y=-5.67763): -5.671281819618\n    test 3805 280 280.021969758476 Theta(tan=-5.65859, x=1.0, y=-5.65859): -5.671281819618\n    test 3806 280 280.005475329461 Mu(tan=-5.66811, x=0.173742, y=-0.984791), iteration=3: -5.671281819618\n    test 3807 280 280.021898241655 Chi(tan=-5.65863, x=1.0, y=-5.65863), iteration=3: -5.671281819618\n    test 3808 280 280.000000000000 Xi(tan=-5.67128, x=0.173648, y=-0.984808): -5.671281819618\n\n    test 3809 280 279.956225698278 Phi(tan=-5.69673, x=0.172896, y=-0.98494): -5.671281819618\n    test 3810 280 279.989045850720 Beta(tan=-5.67763, x=0.17346, y=-0.984841): -5.671281819618\n    test 3811 280 280.021969758476 Theta(tan=-5.65859, x=0.174026, y=-0.984741): -5.671281819618\n    test 3812 280 280.005475329461 Mu(tan=-5.66811, x=0.173742, y=-0.984791): -5.671281819618\n    test 3813 280 280.021898241655 Chi(tan=-5.65863, x=0.174025, y=-0.984741): -5.671281819618\n    test 3814 280 280.000000000000 Xi(tan=-5.67128, x=0.173648, y=-0.984808): -5.671281819618\n\n    test 3815 287 286.928409983832 Phi(tan=-3.28553, x=1.0, y=-3.28553): -3.270852618484\n    test 3816 287 286.982086527391 Beta(tan=-3.27451, x=1.0, y=-3.27451): -3.270852618484\n    test 3817 287 287.035912792570 Theta(tan=-3.26354, x=1.0, y=-3.26354): -3.270852618484\n    test 3818 287 287.008952804861 Mu(tan=-3.26903, x=0.292521, y=-0.956259), iteration=3: -3.270852618484\n    test 3819 287 287.035802540646 Chi(tan=-3.26356, x=1.0, y=-3.26356), iteration=3: -3.270852618484\n    test 3820 287 287.000000000000 Xi(tan=-3.27085, x=0.292372, y=-0.956305): -3.270852618484\n\n    test 3821 287 286.928409983832 Phi(tan=-3.28553, x=0.291177, y=-0.956669): -3.270852618484\n    test 3822 287 286.982086527391 Beta(tan=-3.27451, x=0.292073, y=-0.956396): -3.270852618484\n    test 3823 287 287.035912792570 Theta(tan=-3.26354, x=0.292971, y=-0.956121): -3.270852618484\n    test 3824 287 287.008952804861 Mu(tan=-3.26903, x=0.292521, y=-0.956259): -3.270852618484\n    test 3825 287 287.035802540646 Chi(tan=-3.26356, x=0.292969, y=-0.956122): -3.270852618484\n    test 3826 287 287.000000000000 Xi(tan=-3.27085, x=0.292372, y=-0.956305): -3.270852618484\n\n    test 3827 294 293.904820699861 Phi(tan=-2.25612, x=1.0, y=-2.25612): -2.246036773904\n    test 3828 294 293.976186490838 Beta(tan=-2.24855, x=1.0, y=-2.24855): -2.246036773904\n    test 3829 294 294.047712986128 Theta(tan=-2.24101, x=1.0, y=-2.24101): -2.246036773904\n    test 3830 294 294.011899457288 Mu(tan=-2.24478, x=0.406926, y=-0.913461), iteration=3: -2.246036773904\n    test 3831 294 294.047579285201 Chi(tan=-2.24103, x=1.0, y=-2.24103), iteration=3: -2.246036773904\n    test 3832 294 294.000000000000 Xi(tan=-2.24604, x=0.406737, y=-0.913545): -2.246036773904\n\n    test 3833 294 293.904820699861 Phi(tan=-2.25612, x=0.405219, y=-0.91422): -2.246036773904\n    test 3834 294 293.976186490838 Beta(tan=-2.24855, x=0.406357, y=-0.913714): -2.246036773904\n    test 3835 294 294.047712986128 Theta(tan=-2.24101, x=0.407497, y=-0.913206): -2.246036773904\n    test 3836 294 294.011899457288 Mu(tan=-2.24478, x=0.406926, y=-0.913461): -2.246036773904\n    test 3837 294 294.047579285201 Chi(tan=-2.24103, x=0.407495, y=-0.913207): -2.246036773904\n    test 3838 294 294.000000000000 Xi(tan=-2.24604, x=0.406737, y=-0.913545): -2.246036773904\n\n    test 3839 301 300.886857256907 Phi(tan=-1.67175, x=1.0, y=-1.67175): -1.664279482351\n    test 3840 301 300.971695886665 Beta(tan=-1.66614, x=1.0, y=-1.66614): -1.664279482351\n    test 3841 301 301.056668635072 Theta(tan=-1.66056, x=1.0, y=-1.66056): -1.664279482351\n    test 3842 301 301.014140307923 Mu(tan=-1.66335, x=0.51525, y=-0.85704), iteration=3: -1.664279482351\n    test 3843 301 301.056528796205 Chi(tan=-1.66057, x=1.0, y=-1.66057), iteration=3: -1.664279482351\n    test 3844 301 301.000000000000 Xi(tan=-1.66428, x=0.515038, y=-0.857167): -1.664279482351\n\n    test 3845 301 300.886857256907 Phi(tan=-1.67175, x=0.513344, y=-0.858183): -1.664279482351\n    test 3846 301 300.971695886665 Beta(tan=-1.66614, x=0.514615, y=-0.857422): -1.664279482351\n    test 3847 301 301.056668635072 Theta(tan=-1.66056, x=0.515886, y=-0.856657): -1.664279482351\n    test 3848 301 301.014140307923 Mu(tan=-1.66335, x=0.51525, y=-0.85704): -1.664279482351\n    test 3849 301 301.056528796205 Chi(tan=-1.66057, x=0.515884, y=-0.856659): -1.664279482351\n    test 3850 301 301.000000000000 Xi(tan=-1.66428, x=0.515038, y=-0.857167): -1.664279482351\n\n    test 3851 308 307.875591521416 Phi(tan=-1.28569, x=1.0, y=-1.28569): -1.279941632193\n    test 3852 308 307.968882364101 Beta(tan=-1.28138, x=1.0, y=-1.28138): -1.279941632193\n    test 3853 308 308.062249364871 Theta(tan=-1.27708, x=1.0, y=-1.27708): -1.279941632193\n    test 3854 308 308.015542045055 Mu(tan=-1.27923, x=0.615875, y=-0.787844), iteration=3: -1.279941632193\n    test 3855 308 308.062119501658 Chi(tan=-1.27709, x=1.0, y=-1.27709), iteration=3: -1.279941632193\n    test 3856 308 308.000000000000 Xi(tan=-1.27994, x=0.615661, y=-0.788011): -1.279941632193\n\n    test 3857 308 307.875591521416 Phi(tan=-1.28569, x=0.613949, y=-0.789346): -1.279941632193\n    test 3858 308 307.968882364101 Beta(tan=-1.28138, x=0.615233, y=-0.788345): -1.279941632193\n    test 3859 308 308.062249364871 Theta(tan=-1.27708, x=0.616517, y=-0.787341): -1.279941632193\n    test 3860 308 308.015542045055 Mu(tan=-1.27923, x=0.615875, y=-0.787844): -1.279941632193\n    test 3861 308 308.062119501659 Chi(tan=-1.27709, x=0.616515, y=-0.787343): -1.279941632193\n    test 3862 308 308.000000000000 Xi(tan=-1.27994, x=0.615661, y=-0.788011): -1.279941632193\n\n    test 3863 315 314.871703066479 Phi(tan=-1.00449, x=1.0, y=-1.00449): -1.000000000000\n    test 3864 315 314.967914975772 Beta(tan=-1.00112, x=1.0, y=-1.00112): -1.000000000000\n    test 3865 315 315.064127246955 Theta(tan=-0.997764, x=1.0, y=-0.997764): -1.000000000000\n    test 3866 315 315.016020986969 Mu(tan=-0.999441, x=0.707304, y=-0.706909), iteration=2: -1.000000000000\n    test 3867 315 315.064019491023 Chi(tan=-0.997768, x=1.0, y=-0.997768), iteration=3: -1.000000000000\n    test 3868 315 315.000000000000 Xi(tan=-1, x=0.707107, y=-0.707107): -1.000000000000\n\n    test 3869 315 314.871703066479 Phi(tan=-1.00449, x=0.705522, y=-0.708688): -1.000000000000\n    test 3870 315 314.967914975772 Beta(tan=-1.00112, x=0.706711, y=-0.707503): -1.000000000000\n    test 3871 315 315.064127246955 Theta(tan=-0.997764, x=0.707898, y=-0.706315): -1.000000000000\n    test 3872 315 315.016020986969 Mu(tan=-0.999441, x=0.707304, y=-0.706909): -1.000000000000\n    test 3873 315 315.064019491023 Chi(tan=-0.997768, x=0.707896, y=-0.706316): -1.000000000000\n    test 3874 315 315.000000000000 Xi(tan=-1, x=0.707107, y=-0.707107): -1.000000000000\n\n    test 3875 322 321.875436413614 Phi(tan=-0.784793, x=1.0, y=-0.784793): -0.781285626507\n    test 3876 322 321.968853692070 Beta(tan=-0.782161, x=1.0, y=-0.782161): -0.781285626507\n    test 3877 322 322.062195432519 Theta(tan=-0.779539, x=1.0, y=-0.779539): -0.781285626507\n    test 3878 322 322.015548148041 Mu(tan=-0.780849, x=0.788178, y=-0.615448), iteration=2: -0.781285626507\n    test 3879 322 322.062116180014 Chi(tan=-0.779541, x=1.0, y=-0.779541), iteration=3: -0.781285626507\n    test 3880 322 322.000000000000 Xi(tan=-0.781286, x=0.788011, y=-0.615661): -0.781285626507\n\n    test 3881 322 321.875436413614 Phi(tan=-0.784793, x=0.78667, y=-0.617373): -0.781285626507\n    test 3882 322 321.968853692070 Beta(tan=-0.782161, x=0.787676, y=-0.61609): -0.781285626507\n    test 3883 322 322.062195432519 Theta(tan=-0.779539, x=0.788679, y=-0.614806): -0.781285626507\n    test 3884 322 322.015548148041 Mu(tan=-0.780849, x=0.788178, y=-0.615448): -0.781285626507\n    test 3885 322 322.062116180014 Chi(tan=-0.779541, x=0.788678, y=-0.614807): -0.781285626507\n    test 3886 322 322.000000000000 Xi(tan=-0.781286, x=0.788011, y=-0.615661): -0.781285626507\n\n    test 3887 329 328.886583352158 Phi(tan=-0.603558, x=1.0, y=-0.603558): -0.600860619028\n    test 3888 329 328.971645254782 Beta(tan=-0.601534, x=1.0, y=-0.601534): -0.600860619028\n    test 3889 329 329.056573396118 Theta(tan=-0.599518, x=1.0, y=-0.599518): -0.600860619028\n    test 3890 329 329.014151085164 Mu(tan=-0.600525, x=0.857294, y=-0.514826), iteration=3: -0.600860619028\n    test 3891 329 329.056522930537 Chi(tan=-0.599519, x=1.0, y=-0.599519), iteration=3: -0.600860619028\n    test 3892 329 329.000000000000 Xi(tan=-0.600861, x=0.857167, y=-0.515038): -0.600860619028\n\n    test 3893 329 328.886583352158 Phi(tan=-0.603558, x=0.856146, y=-0.516734): -0.600860619028\n    test 3894 329 328.971645254782 Beta(tan=-0.601534, x=0.856912, y=-0.515462): -0.600860619028\n    test 3895 329 329.056573396118 Theta(tan=-0.599518, x=0.857675, y=-0.514191): -0.600860619028\n    test 3896 329 329.014151085164 Mu(tan=-0.600525, x=0.857294, y=-0.514826): -0.600860619028\n    test 3897 329 329.056522930537 Chi(tan=-0.599519, x=0.857675, y=-0.514192): -0.600860619028\n    test 3898 329 329.000000000000 Xi(tan=-0.600861, x=0.857167, y=-0.515038): -0.600860619028\n\n    test 3899 336 335.904492119885 Phi(tan=-0.447228, x=1.0, y=-0.447228): -0.445228685309\n    test 3900 336 335.976125752178 Beta(tan=-0.445728, x=1.0, y=-0.445728): -0.445228685309\n    test 3901 336 336.047598736385 Theta(tan=-0.444234, x=1.0, y=-0.444234): -0.445228685309\n    test 3902 336 336.011912385791 Mu(tan=-0.44498, x=0.91363, y=-0.406547), iteration=2: -0.445228685309\n    test 3903 336 336.047572248701 Chi(tan=-0.444234, x=1.0, y=-0.444234), iteration=3: -0.445228685309\n    test 3904 336 336.000000000000 Xi(tan=-0.445229, x=0.913545, y=-0.406737): -0.445228685309\n\n    test 3905 336 335.904492119885 Phi(tan=-0.447228, x=0.912866, y=-0.408259): -0.445228685309\n    test 3906 336 335.976125752178 Beta(tan=-0.445728, x=0.913376, y=-0.407117): -0.445228685309\n    test 3907 336 336.047598736385 Theta(tan=-0.444234, x=0.913883, y=-0.405978): -0.445228685309\n    test 3908 336 336.011912385791 Mu(tan=-0.44498, x=0.91363, y=-0.406547): -0.445228685309\n    test 3909 336 336.047572248701 Chi(tan=-0.444234, x=0.913883, y=-0.405978): -0.445228685309\n    test 3910 336 336.000000000000 Xi(tan=-0.445229, x=0.913545, y=-0.406737): -0.445228685309\n\n    test 3911 343 342.928103650624 Phi(tan=-0.307103, x=1.0, y=-0.307103): -0.305730681459\n    test 3912 343 342.982029901147 Beta(tan=-0.306074, x=1.0, y=-0.306074): -0.305730681459\n    test 3913 343 343.035806278435 Theta(tan=-0.305047, x=1.0, y=-0.305047): -0.305730681459\n    test 3914 343 343.008964858001 Mu(tan=-0.30556, x=0.95635, y=-0.292222), iteration=3: -0.305730681459\n    test 3915 343 343.035795980594 Chi(tan=-0.305048, x=1.0, y=-0.305048), iteration=3: -0.305730681459\n    test 3916 343 343.000000000000 Xi(tan=-0.305731, x=0.956305, y=-0.292372): -0.305730681459\n\n    test 3917 343 342.928103650624 Phi(tan=-0.307103, x=0.955937, y=-0.293571): -0.305730681459\n    test 3918 343 342.982029901147 Beta(tan=-0.306074, x=0.956213, y=-0.292672): -0.305730681459\n    test 3919 343 343.035806278435 Theta(tan=-0.305047, x=0.956487, y=-0.291774): -0.305730681459\n    test 3920 343 343.008964858001 Mu(tan=-0.30556, x=0.95635, y=-0.292222): -0.305730681459\n    test 3921 343 343.035795980594 Chi(tan=-0.305048, x=0.956487, y=-0.291774): -0.305730681459\n    test 3922 343 343.000000000000 Xi(tan=-0.305731, x=0.956305, y=-0.292372): -0.305730681459\n\n    test 3923 350 349.956013326444 Phi(tan=-0.177119, x=1.0, y=-0.177119): -0.176326980708\n    test 3924 350 349.989006593437 Beta(tan=-0.176525, x=1.0, y=-0.176525): -0.176326980708\n    test 3925 350 350.021895915483 Theta(tan=-0.175933, x=1.0, y=-0.175933): -0.176326980708\n    test 3926 350 350.005483685534 Mu(tan=-0.176228, x=0.984824, y=-0.173554), iteration=3: -0.176326980708\n    test 3927 350 350.021893693784 Chi(tan=-0.175933, x=1.0, y=-0.175933), iteration=3: -0.176326980708\n    test 3928 350 350.000000000000 Xi(tan=-0.176327, x=0.984808, y=-0.173648): -0.176326980708\n\n    test 3929 350 349.956013326444 Phi(tan=-0.177119, x=0.984674, y=-0.174404): -0.176326980708\n    test 3930 350 349.989006593437 Beta(tan=-0.176525, x=0.984774, y=-0.173837): -0.176326980708\n    test 3931 350 350.021895915483 Theta(tan=-0.175933, x=0.984874, y=-0.173272): -0.176326980708\n    test 3932 350 350.005483685534 Mu(tan=-0.176228, x=0.984824, y=-0.173554): -0.176326980708\n    test 3933 350 350.021893693784 Chi(tan=-0.175933, x=0.984874, y=-0.173272): -0.176326980708\n    test 3934 350 350.000000000000 Xi(tan=-0.176327, x=0.984808, y=-0.173648): -0.176326980708\n\n    test 3935 357 356.986554851958 Phi(tan=-0.0526431, x=1.0, y=-0.0526431): -0.052407779283\n    test 3936 357 356.996639834512 Beta(tan=-0.0524666, x=1.0, y=-0.0524666): -0.052407779283\n    test 3937 357 357.006691189366 Theta(tan=-0.0522907, x=1.0, y=-0.0522907): -0.052407779283\n    test 3938 357 357.001676003026 Mu(tan=-0.0523784, x=0.998631, y=-0.0523067), iteration=3: -0.052407779283\n    test 3939 357 357.006691127690 Chi(tan=-0.0522907, x=1.0, y=-0.0522907), iteration=3: -0.052407779283\n    test 3940 357 357.000000000000 Xi(tan=-0.0524078, x=0.99863, y=-0.052336): -0.052407779283\n\n    test 3941 357 356.986554851958 Phi(tan=-0.0526431, x=0.998617, y=-0.0525703): -0.052407779283\n    test 3942 357 356.996639834512 Beta(tan=-0.0524666, x=0.998626, y=-0.0523945): -0.052407779283\n    test 3943 357 357.006691189366 Theta(tan=-0.0522907, x=0.998636, y=-0.0522193): -0.052407779283\n    test 3944 357 357.001676003026 Mu(tan=-0.0523784, x=0.998631, y=-0.0523067): -0.052407779283\n    test 3945 357 357.006691127690 Chi(tan=-0.0522907, x=0.998636, y=-0.0522193): -0.052407779283\n    test 3946 357 357.000000000000 Xi(tan=-0.0524078, x=0.99863, y=-0.052336): -0.052407779283\n\n    test 3947 abs: AuxAngle(tan=2.0, x=1.0, y=2.0)\n    test 3948 add: AuxAngle(tan=-1.33333, x=-3, y=4.0)\n    test 3949 eq : True\n    test 3950 float: 2.0\n    test 3951 sub: AuxAngle(tan=0.0, x=1.0, y=0.0)\n    test 3952 neg: AuxAngle(tan=-2, x=1.0, y=-2)\n    test 3953 ne : False\n    test 3954 pos: AuxAngle(tan=2.0, x=1.0, y=2.0)\n    test 3955 iadd: AuxAngle(tan=-1.33333, x=-3, y=4.0)\n    test 3956 isub: AuxAngle(tan=0.0, x=1.0, y=0.0)\n    test 3957 radd: AuxAngle(tan=0.0, x=1.0, y=0.0)\n    test 3958 rsub: AuxAngle(tan=0.0, x=1.0, y=0.0)\n\n    6 tests skipped (6): no numpy\n\n    50 of 3958 testAuxilats.py tests (1.3%) FAILED, ALL KNOWN, 6 skipped (pygeodesy 26.3.26 Python 3.14.3 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 2.840 sec\nrunning /Library/Framewo....n3.14 -W default ~/PyGeodesy/test/testAzimuthal.py\n./pygeodesy/azimuthal.py:636: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return self.datum.ellipsoid.geodesic\n./pygeodesy/azimuthal.py:937: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return self.datum.ellipsoid.geodesic\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.Equidistant from .azimuthal by testAzimuthal.py line 11\n# lazily imported pygeodesy.EquidistantExact from .azimuthal by testAzimuthal.py line 11\n# lazily imported pygeodesy.EquidistantGeodSolve from .azimuthal by testAzimuthal.py line 11\n# lazily imported pygeodesy.EquidistantKarney from .azimuthal by testAzimuthal.py line 11\n# lazily imported pygeodesy.Gnomonic from .azimuthal by testAzimuthal.py line 11\n# lazily imported pygeodesy.GnomonicExact from .azimuthal by testAzimuthal.py line 11\n# lazily imported pygeodesy.GnomonicGeodSolve from .azimuthal by testAzimuthal.py line 11\n# lazily imported pygeodesy.GnomonicKarney from .azimuthal by testAzimuthal.py line 11\n# lazily imported pygeodesy.LambertEqualArea from .azimuthal by testAzimuthal.py line 11\n# lazily imported pygeodesy.Orthographic from .azimuthal by testAzimuthal.py line 11\n# lazily imported pygeodesy.Stereographic from .azimuthal by testAzimuthal.py line 11\n# lazily imported pygeodesy.ellipsoidalExact by testAzimuthal.py line 11\n# lazily imported pygeodesy.ellipsoidalKarney by testAzimuthal.py line 11\n# lazily imported pygeodesy.ellipsoidalNvector by testAzimuthal.py line 11\n# lazily imported pygeodesy.ellipsoidalVincenty by testAzimuthal.py line 11\n# lazily imported pygeodesy.F_D from .dms by testAzimuthal.py line 11\n# lazily imported pygeodesy.fstr from .streprs by testAzimuthal.py line 11\n# lazily imported pygeodesy.hypot from .fmath by testAzimuthal.py line 11\n# lazily imported pygeodesy.IntersectionError from .errors by testAzimuthal.py line 11\n# lazily imported pygeodesy.latlonDMS from .dms by testAzimuthal.py line 11\n# lazily imported pygeodesy.latlonDMS_ from .dms by testAzimuthal.py line 11\n# lazily imported pygeodesy.vincentys from .formy by testAzimuthal.py line 11\n# lazily imported pygeodesy.Azimuthal7Tuple from .azimuthal by testAzimuthal.py line 138\n# lazily imported pygeodesy.equidistant from .azimuthal by testAzimuthal.py line 138\n# lazily imported pygeodesy.gnomonic from .azimuthal by testAzimuthal.py line 138\n# lazily imported pygeodesy.NAN from .constants by testAzimuthal.py line 138\n\n    testing testAzimuthal.py 25.05.09 (module pygeodesy.azimuthal 25.11.29) isLazy=3\n    test 1 Equidistant(48.833333, 2.333333, name='Paris'): 48.833333 2.333333\n    test 2 forward: -37467.812512, 230294.518853, 50.9, 1.8, 350.759218, 1.000223\n    test 3 reverse: -37467.812512, 230294.518853, 50.9, 1.8, 350.759218, 1.000223\n    test 4 iteration: None\n    test 5 copy(<class 'type'>): (<class 'pygeodesy.azimuthal.Equidistant'>, True)\n    test 6 Equidistant.copy(): (<class 'pygeodesy.azimuthal.Equidistant'>, True)\n    test 7 reverse: -38000.0, 230000.0, 50.897321, 1.792455, 350.61849, 1.000222\n    test 8 forward: -38000.0, 230000.0, 50.897321, 1.792455, 350.61849, 1.000222\n    test 9 reverse: LatLon(50°53′50.36″N, 001°47′32.84″E)\n    test 10 reverse: LatLon(50°53′50.36″N, 001°47′32.84″E)\n    test 11 reverse: LatLon(50°53′50.36″N, 001°47′32.84″E)\n    test 12 reverse: LatLon(50°53′50.36″N, 001°47′32.84″E)\n    test 13 Equidistant(51.4934, 0.0098, name='Greenwich'): 51.4934 0.0098\n    test 14 forward: 170420.92566, -293667.828613, 48.833333, 2.333333, 149.872606, 1.000472\n    test 15 reverse: 170420.92566, -293667.828613, 48.833333, 2.333333, 149.872606, 1.000472\n    test 16 iteration: None\n    test 17 hypot: 339535.102  FAILED, KNOWN, expected 338901.865\n    test 18 antipodal: (170420.92566, -293667.828613, -48.833333, -177.666667, 0.0, 1.000472, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n\n    test 19 Gnomonic(48.833333, 2.333333, name='Paris'): 48.833333 2.333333\n    test 20 forward: -37484.520018, 230397.210923, 50.9, 1.8, 350.759218, 1.000669\n    test 21 reverse: -37484.520018, 230397.210923, 50.9, 1.8, 350.759218, 1.000223\n    test 22 iteration: None\n    test 23 copy(<class 'type'>): (<class 'pygeodesy.azimuthal.Gnomonic'>, True)\n    test 24 Gnomonic.copy(): (<class 'pygeodesy.azimuthal.Gnomonic'>, True)\n    test 25 reverse: -38000.0, 230000.0, 50.896405, 1.792706, 350.61849, 1.000222\n    test 26 forward: -38000.0, 230000.0, 50.896405, 1.792706, 350.61849, 1.000667\n    test 27 reverse: LatLon(50°53′47.06″N, 001°47′33.74″E)\n    test 28 reverse: LatLon(50°53′47.06″N, 001°47′33.74″E)\n    test 29 reverse: LatLon(50°53′47.06″N, 001°47′33.74″E)\n    test 30 reverse: LatLon(50°53′47.06″N, 001°47′33.74″E)\n    test 31 Gnomonic(51.4934, 0.0098, name='Greenwich'): 51.4934 0.0098\n    test 32 forward: 170581.851218, -293945.134107, 48.833333, 2.333333, 149.872606, 1.001416\n    test 33 reverse: 170581.851218, -293945.134107, 48.833333, 2.333333, 149.872606, 1.000472\n    test 34 iteration: None\n    test 35 hypot: 339855.719  FAILED, KNOWN, expected 338901.865\n    test 36 antipodal: (170581.851218, -293945.134107, -48.833333, -177.666667, 0.0, 1.000472, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n\n# lazily imported pygeodesy.geodesicx by ellipsoids.py line 1082\n    test 37 EquidistantExact(48.833333, 2.333333, name='Paris'): 48.833333 2.333333\n# lazily imported pygeodesy.elliptic by gx.py line 421\n    test 38 forward: -37526.978232, 230000.911579, 50.9, 1.8, 350.325442, 0.999778\n    test 39 reverse: -37526.978232, 230000.911579, 50.9, 1.8, 350.325442, 0.999778\n    test 40 iteration: None\n    test 41 copy(<class 'type'>): (<class 'pygeodesy.azimuthal.EquidistantExact'>, True)\n    test 42 EquidistantExact.copy(): (<class 'pygeodesy.azimuthal.EquidistantExact'>, True)\n    test 43 reverse: -38000.0, 230000.0, 50.899962, 1.793278, 350.205524, 0.999778\n    test 44 forward: -38000.0, 230000.0, 50.899962, 1.793278, 350.205524, 0.999778\n    test 45 reverse: LatLon(50°53′59.86″N, 001°47′35.8″E)\n    test 46 reverse: LatLon(50°53′59.86″N, 001°47′35.8″E)\n    test 47 reverse: LatLon(50°53′59.86″N, 001°47′35.8″E)\n    test 48 reverse: LatLon(50°53′59.86″N, 001°47′35.8″E)\n    test 49 EquidistantExact(51.4934, 0.0098, name='Greenwich'): 51.4934 0.0098\n    test 50 forward: 170617.186469, -293210.754313, 48.833333, 2.333333, 151.589952, 0.999529\n    test 51 reverse: 170617.186469, -293210.754313, 48.833333, 2.333333, 151.589952, 0.999529\n    test 52 iteration: None\n    test 53 hypot: 339238.516  FAILED, KNOWN, expected 338901.865\n    test 54 antipodal: (170617.186469, -293210.754313, -48.833333, -177.666667, 0.0, 0.999529, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n\n    test 55 GnomonicExact(48.833333, 2.333333, name='Paris'): 48.833333 2.333333\n    test 56 forward: -37543.665895, 230103.189403, 50.9, 1.8, 350.325442, 0.999333\n    test 57 reverse: -37543.665895, 230103.189403, 50.9, 1.8, 350.325442, 0.999333\n    test 58 iteration: 3\n    test 59 copy(<class 'type'>): (<class 'pygeodesy.azimuthal.GnomonicExact'>, True)\n    test 60 GnomonicExact.copy(): (<class 'pygeodesy.azimuthal.GnomonicExact'>, True)\n    test 61 reverse: -38000.0, 230000.0, 50.899044, 1.793528, 350.205718, 0.999333\n    test 62 forward: -37999.995965, 229999.975581, 50.899044, 1.793528, 350.205718, 0.999334\n    test 63 reverse: LatLon(50°53′56.56″N, 001°47′36.7″E)\n    test 64 reverse: LatLon(50°53′56.56″N, 001°47′36.7″E)\n    test 65 reverse: LatLon(50°53′56.56″N, 001°47′36.7″E)\n    test 66 reverse: LatLon(50°53′56.56″N, 001°47′36.7″E)\n    test 67 GnomonicExact(51.4934, 0.0098, name='Greenwich'): 51.4934 0.0098\n    test 68 forward: 170778.089295, -293487.270649, 48.833333, 2.333333, 151.589952, 0.998587\n    test 69 reverse: 170778.089295, -293487.270649, 48.833333, 2.333334, 151.589953, 0.998588\n    test 70 iteration: 3\n    test 71 hypot: 339558.439  FAILED, KNOWN, expected 338901.963\n    test 72 antipodal: (170778.089295, -293487.270649, -48.833333, -177.666666, 0.0, 0.998588, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n\n# lazily imported pygeodesy.geodesicw by ellipsoids.py line 1074\n    test 73 EquidistantKarney(48.833333, 2.333333, name='Paris'): 48.833333 2.333333\n    test 74 forward: -37526.978232, 230000.911579, 50.9, 1.8, 350.325442, 0.999778\n    test 75 reverse: -37526.978232, 230000.911579, 50.9, 1.8, 350.325442, 0.999778\n    test 76 iteration: None\n    test 77 copy(<class 'type'>): (<class 'pygeodesy.azimuthal.EquidistantKarney'>, True)\n    test 78 EquidistantKarney.copy(): (<class 'pygeodesy.azimuthal.EquidistantKarney'>, True)\n    test 79 reverse: -38000.0, 230000.0, 50.899962, 1.793278, 350.205524, 0.999778\n    test 80 forward: -38000.0, 230000.0, 50.899962, 1.793278, 350.205524, 0.999778\n    test 81 reverse: LatLon(50°53′59.86″N, 001°47′35.8″E)\n    test 82 reverse: LatLon(50°53′59.86″N, 001°47′35.8″E)\n    test 83 reverse: LatLon(50°53′59.86″N, 001°47′35.8″E)\n    test 84 reverse: LatLon(50°53′59.86″N, 001°47′35.8″E)\n    test 85 EquidistantKarney(51.4934, 0.0098, name='Greenwich'): 51.4934 0.0098\n    test 86 forward: 170617.186469, -293210.754313, 48.833333, 2.333333, 151.589952, 0.999529\n    test 87 reverse: 170617.186469, -293210.754313, 48.833333, 2.333333, 151.589952, 0.999529\n    test 88 iteration: None\n    test 89 hypot: 339238.516  FAILED, KNOWN, expected 338901.865\n    test 90 antipodal: (170617.186469, -293210.754313, -48.833333, -177.666667, 0.0, 0.999529, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n\n    test 91 GnomonicKarney(48.833333, 2.333333, name='Paris'): 48.833333 2.333333\n    test 92 forward: -37543.665895, 230103.189403, 50.9, 1.8, 350.325442, 0.999333\n    test 93 reverse: -37543.665895, 230103.189403, 50.9, 1.8, 350.325442, 0.999333\n    test 94 iteration: 3\n    test 95 copy(<class 'type'>): (<class 'pygeodesy.azimuthal.GnomonicKarney'>, True)\n    test 96 GnomonicKarney.copy(): (<class 'pygeodesy.azimuthal.GnomonicKarney'>, True)\n    test 97 reverse: -38000.0, 230000.0, 50.899044, 1.793528, 350.205718, 0.999333\n    test 98 forward: -37999.995965, 229999.975581, 50.899044, 1.793528, 350.205718, 0.999334\n    test 99 reverse: LatLon(50°53′56.56″N, 001°47′36.7″E)\n    test 100 reverse: LatLon(50°53′56.56″N, 001°47′36.7″E)\n    test 101 reverse: LatLon(50°53′56.56″N, 001°47′36.7″E)\n    test 102 reverse: LatLon(50°53′56.56″N, 001°47′36.7″E)\n    test 103 GnomonicKarney(51.4934, 0.0098, name='Greenwich'): 51.4934 0.0098\n    test 104 forward: 170778.089295, -293487.270649, 48.833333, 2.333333, 151.589952, 0.998587\n    test 105 reverse: 170778.089295, -293487.270649, 48.833333, 2.333334, 151.589953, 0.998588\n    test 106 iteration: 3\n    test 107 hypot: 339558.439  FAILED, KNOWN, expected 338901.963\n    test 108 antipodal: (170778.089295, -293487.270649, -48.833333, -177.666666, 0.0, 0.998588, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n\n    test 109 pygeodesy.ellipsoidalExact: 20.837802°N, 037.265561°E Random +/- 45\n    test 110 pygeodesy.ellipsoidalExact: 20.731625°N, 037.239134°E, 47.241037°N, 090.706953°W  d 12073 meter  Spherical\n    test 111 pygeodesy.ellipsoidalExact: 20.837802°N, 037.265561°E, 47.570386°N, 090.710621°W  d 2.57943e-09 meter  EquidistantExact\n    test 112 pygeodesy.ellipsoidalExact: 20.782926°N, 037.386689°E, 47.157338°N, 090.535988°W  d 13996.9 meter  Equidistant\n    test 113 pygeodesy.ellipsoidalExact: 00.054876°N, 000.121128°W  00.263%, 000.325% of Random\n    test 114 pygeodesy.ellipsoidalExact: 20.178788°N, 037.863183°E, 25.430614°N, 029.712824°E  d 95962.9 meter  Spherical\n    test 115 pygeodesy.ellipsoidalExact: 20.837802°N, 037.265561°E, 25.165736°N, 030.636290°E  d 1.86445e-08 meter  EquidistantExact\n    test 116 pygeodesy.ellipsoidalExact: 20.476289°N, 037.616298°E, 25.350745°N, 029.993058°E  d 54200.8 meter  Equidistant\n    test 117 pygeodesy.ellipsoidalExact: 00.361512°N, 000.350737°W  01.735%, 000.941% of Random\n    test 118 pygeodesy.ellipsoidalExact: 20.709830°N, 037.325305°E, 23.986765°S, 006.357154°E  d 15473.9 meter  Spherical\n    test 119 pygeodesy.ellipsoidalExact: 20.837802°N, 037.265561°E, 24.154986°S, 006.451641°E  d 2.21974e-08 meter  EquidistantExact\n    test 120 pygeodesy.ellipsoidalExact: 20.649633°N, 037.393582°E, 24.020776°S, 006.424760°E  d 24734.1 meter  Equidistant\n    test 121 pygeodesy.ellipsoidalExact: 00.188169°N, 000.128021°W  00.903%, 000.344% of Random\n    test 122 pygeodesy.ellipsoidalExact: 20.711361°N, 037.299061°E, 05.817097°S, 011.555753°E  d 14426.8 meter  Spherical\n    test 123 pygeodesy.ellipsoidalExact: 20.837802°N, 037.265561°E, 05.951600°S, 011.594991°E  d 8.19485e-10 meter  EquidistantExact\n    test 124 pygeodesy.ellipsoidalExact: 20.741251°N, 037.340858°E, 05.878220°S, 011.509974°E  d 13256.2 meter  Equidistant\n    test 125 pygeodesy.ellipsoidalExact: 00.096551°N, 000.075297°W  00.463%, 000.202% of Random\n    test 126 pygeodesy.ellipsoidalExact: 20.575926°N, 037.192481°E, 24.714874°S, 101.748846°E  d 29975.9 meter  Spherical\n    test 127 pygeodesy.ellipsoidalExact: 20.837802°N, 037.265561°E, 24.833538°S, 101.692379°E  d 8.40627e-09 meter  EquidistantExact\n    test 128 pygeodesy.ellipsoidalExact: 20.655364°N, 037.264116°E, 24.641480°S, 101.782492°E  d 20198.9 meter  Equidistant\n    test 129 pygeodesy.ellipsoidalExact: 00.182438°N, 000.001445°E  00.876%, 000.004% of Random\n    test 130 pygeodesy.ellipsoidalExact: 20.580088°N, 037.318129°E, 24.532151°N, 030.587744°W  d 29053.1 meter  Spherical\n    test 131 pygeodesy.ellipsoidalExact: 20.837802°N, 037.265561°E, 24.827619°N, 030.502704°W  d 3.17693e-09 meter  EquidistantExact\n    test 132 pygeodesy.ellipsoidalExact: 20.657872°N, 037.365880°E, 24.595305°N, 030.618001°W  d 22494.2 meter  Equidistant\n    test 133 pygeodesy.ellipsoidalExact: 00.179930°N, 000.100319°W  00.863%, 000.269% of Random\n    test 134 pygeodesy.ellipsoidalExact: 20.563907°N, 037.369395°E, 35.558645°N, 066.016542°W  d 32195.3 meter  Spherical\n    test 135 pygeodesy.ellipsoidalExact: 20.837802°N, 037.265561°E, 35.944754°N, 065.829690°W  d 5.498e-09 meter  EquidistantExact\n    test 136 pygeodesy.ellipsoidalExact: 20.685070°N, 037.419860°E, 35.556493°N, 066.016170°W  d 23326.1 meter  Equidistant\n    test 137 pygeodesy.ellipsoidalExact: 00.152732°N, 000.154299°W  00.733%, 000.414% of Random\n    test 138 pygeodesy.ellipsoidalExact: 20.653766°N, 037.295820°E, 49.956972°N, 009.743883°W  d 20617.5 meter  Spherical\n    test 139 pygeodesy.ellipsoidalExact: 20.837802°N, 037.265561°E, 50.163866°N, 009.239277°W  d 8.68226e-09 meter  EquidistantExact\n    test 140 pygeodesy.ellipsoidalExact: 20.778102°N, 037.357245°E, 49.843129°N, 009.925447°W  d 11609.8 meter  Equidistant\n    test 141 pygeodesy.ellipsoidalExact: 00.059700°N, 000.091684°W  00.286%, 000.246% of Random\n    test 142 pygeodesy.ellipsoidalExact: 20.669139°N, 037.346294°E, 25.229903°N, 036.730998°E  d 20478.8 meter  Spherical\n    test 143 pygeodesy.ellipsoidalExact: 20.837802°N, 037.265561°E, 25.068982°N, 036.706044°E  d 1.03177e-08 meter  EquidistantExact\n    test 144 pygeodesy.ellipsoidalExact: 20.355166°N, 037.510605°E, 25.474475°N, 036.786569°E  d 59225.7 meter  Equidistant\n    test 145 pygeodesy.ellipsoidalExact: 00.482636°N, 000.245043°W  02.316%, 000.658% of Random\n    test 146 pygeodesy.ellipsoidalExact: 20.651840°N, 037.302123°E, 07.288325°N, 033.384623°E  d 20937.7 meter  Spherical\n    test 147 pygeodesy.ellipsoidalExact: 20.837802°N, 037.265561°E, 07.108581°N, 033.280790°E  d 6.03814e-08 meter  EquidistantExact\n    test 148 pygeodesy.ellipsoidalExact: 20.486897°N, 037.336334°E, 07.474387°N, 033.557659°E  d 39543.3 meter  Equidistant\n    test 149 pygeodesy.ellipsoidalExact: 00.350904°N, 000.070773°W  01.684%, 000.190% of Random\n    test 150 pygeodesy.ellipsoidalExact: 20.563067°N, 037.338802°E, 36.599711°S, 073.027235°W  d 31359.2 meter  Spherical\n    test 151 pygeodesy.ellipsoidalExact: 20.837802°N, 037.265561°E, 36.849146°S, 072.969640°W  d 8.31075e-09 meter  EquidistantExact\n    test 152 pygeodesy.ellipsoidalExact: 20.610465°N, 037.435977°E, 36.598020°S, 073.014794°W  d 30799 meter  Equidistant\n    test 153 pygeodesy.ellipsoidalExact: 00.227337°N, 000.170416°W  01.091%, 000.457% of Random\n    test 154 pygeodesy.ellipsoidalExact: 20.537724°N, 037.383819°E, 11.911851°N, 075.711324°W  d 35433.5 meter  Spherical\n    test 155 pygeodesy.ellipsoidalExact: 20.837802°N, 037.265561°E, 12.125687°N, 075.616731°W  d 1.85174e-08 meter  EquidistantExact\n    test 156 pygeodesy.ellipsoidalExact: 20.617723°N, 037.447504°E, 12.013413°N, 075.806826°W  d 30867.7 meter  Equidistant\n    test 157 pygeodesy.ellipsoidalExact: 00.220078°N, 000.181943°W  01.056%, 000.488% of Random\n    test 158 pygeodesy.ellipsoidalExact: 00.482636°N, 000.350737°E  02.316%, 000.941% of Random, max\n\n    test 159 pygeodesy.ellipsoidalVincenty: 41.186078°N, 034.518810°E Random +/- 45\n    test 160 pygeodesy.ellipsoidalVincenty: 41.216002°N, 034.466444°E, 36.757969°N, 036.250386°E  d 5507.89 meter  Spherical\n    test 161 pygeodesy.ellipsoidalVincenty: 41.186078°N, 034.518810°E, 36.788859°N, 036.252161°E  d 3.31783e-05 meter  EquidistantExact\n    test 162 pygeodesy.ellipsoidalVincenty: 41.261815°N, 034.378326°E, 36.740313°N, 036.242240°E  d 14474.3 meter  Equidistant\n    test 163 pygeodesy.ellipsoidalVincenty: 00.075738°S, 000.140484°E  00.184%, 000.407% of Random\n    test 164 pygeodesy.ellipsoidalVincenty: 40.851194°N, 034.534088°E, 50.241748°S, 131.016402°W  d 37212.5 meter  Spherical\n    test 165 pygeodesy.ellipsoidalVincenty: 41.186078°N, 034.518810°E, 50.477317°S, 130.978321°W  d 1.93817e-06 meter  EquidistantExact\n    test 166 pygeodesy.ellipsoidalVincenty: 40.798654°N, 034.533581°E, 50.386452°S, 130.973130°W  d 43042.9 meter  Equidistant\n    test 167 pygeodesy.ellipsoidalVincenty: 00.387424°N, 000.014771°W  00.941%, 000.043% of Random\n    test 168 pygeodesy.ellipsoidalVincenty: 41.074804°N, 034.598238°E, 21.089845°S, 024.140244°E  d 14042.6 meter  Spherical\n    test 169 pygeodesy.ellipsoidalVincenty: 41.186078°N, 034.518810°E, 21.224760°S, 024.109286°E  d 2.6497e-05 meter  EquidistantExact\n    test 170 pygeodesy.ellipsoidalVincenty: 41.048538°N, 034.546214°E, 21.170019°S, 024.203830°E  d 15447.1 meter  Equidistant\n    test 171 pygeodesy.ellipsoidalVincenty: 00.137540°N, 000.027405°W  00.334%, 000.079% of Random\n    test 172 pygeodesy.ellipsoidalVincenty: 41.032073°N, 034.369399°E, 19.422826°S, 067.358116°E  d 21213.6 meter  Spherical\n    test 173 pygeodesy.ellipsoidalVincenty: 41.186078°N, 034.518810°E, 19.600494°S, 067.286307°E  d 4.13857e-06 meter  EquidistantExact\n    test 174 pygeodesy.ellipsoidalVincenty: 41.006716°N, 034.332358°E, 19.395639°S, 067.447246°E  d 25340.6 meter  Equidistant\n    test 175 pygeodesy.ellipsoidalVincenty: 00.179362°N, 000.186452°E  00.435%, 000.540% of Random\n    test 176 pygeodesy.ellipsoidalVincenty: 40.945458°N, 034.537613°E, 58.224252°S, 061.713015°E  d 26768.7 meter  Spherical\n    test 177 pygeodesy.ellipsoidalVincenty: 41.186078°N, 034.518810°E, 58.347421°S, 061.621933°E  d 1.06306e-05 meter  EquidistantExact\n    test 178 pygeodesy.ellipsoidalVincenty: 40.924263°N, 034.481009°E, 58.252605°S, 061.344166°E  d 29248.9 meter  Equidistant\n    test 179 pygeodesy.ellipsoidalVincenty: 00.261815°N, 000.037800°E  00.636%, 000.110% of Random\n    test 180 pygeodesy.ellipsoidalVincenty: 40.897988°N, 039.011844°E, 40.464581°N, 028.238987°E  d 379091 meter  Spherical\n    test 181 pygeodesy.ellipsoidalVincenty: 41.186078°N, 034.518810°E, 41.110091°N, 032.648742°E  d 0.000119809 meter  EquidistantExact\n    test 182 pygeodesy.ellipsoidalVincenty: 40.839819°N, 039.393167°E, 40.383760°N, 027.900519°E  d 411769 meter  Equidistant\n    test 183 pygeodesy.ellipsoidalVincenty: 00.346258°N, 004.874358°W  00.841%, 014.121% of Random\n    test 184 pygeodesy.ellipsoidalVincenty: 40.870493°N, 034.662375°E, 20.549400°S, 050.731096°W  d 37068.5 meter  Spherical\n    test 185 pygeodesy.ellipsoidalVincenty: 41.186078°N, 034.518810°E, 20.738461°S, 050.709252°W  d 2.02858e-05 meter  EquidistantExact\n    test 186 pygeodesy.ellipsoidalVincenty: 40.818186°N, 034.634875°E, 20.527794°S, 050.866478°W  d 42006.6 meter  Equidistant\n    test 187 pygeodesy.ellipsoidalVincenty: 00.367892°N, 000.116065°W  00.893%, 000.336% of Random\n    test 188 pygeodesy.ellipsoidalVincenty: 41.093896°N, 034.232689°E, 37.091356°N, 041.500904°E  d 26112.3 meter  Spherical\n    test 189 pygeodesy.ellipsoidalVincenty: 41.186078°N, 034.518810°E, 37.299306°N, 041.502155°E  d 3.94773e-06 meter  EquidistantExact\n    test 190 pygeodesy.ellipsoidalVincenty: 41.073515°N, 034.180923°E, 37.078362°N, 041.498623°E  d 31004.2 meter  Equidistant\n    test 191 pygeodesy.ellipsoidalVincenty: 00.112563°N, 000.337887°E  00.273%, 000.979% of Random\n    test 192 pygeodesy.ellipsoidalVincenty: 40.781100°N, 034.669980°E, 52.089480°N, 061.225269°W  d 46738.9 meter  Spherical\n    test 193 pygeodesy.ellipsoidalVincenty: 41.186078°N, 034.518810°E, 52.535730°N, 060.874484°W  d 3.27148e-05 meter  EquidistantExact\n    test 194 pygeodesy.ellipsoidalVincenty: 40.727656°N, 034.642283°E, 51.911337°N, 061.190728°W  d 51959.6 meter  Equidistant\n    test 195 pygeodesy.ellipsoidalVincenty: 00.458422°N, 000.123473°W  01.113%, 000.358% of Random\n    test 196 pygeodesy.ellipsoidalVincenty: 41.264357°N, 034.318737°E, 33.708712°N, 039.965866°E  d 18894.5 meter  Spherical\n    test 197 pygeodesy.ellipsoidalVincenty: 41.186078°N, 034.518810°E, 33.842045°N, 039.937641°E  d 1.60319e-05 meter  EquidistantExact\n    test 198 pygeodesy.ellipsoidalVincenty: 41.296883°N, 034.225283°E, 33.729060°N, 039.967302°E  d 27511.2 meter  Equidistant\n    test 199 pygeodesy.ellipsoidalVincenty: 00.110805°S, 000.293526°E  00.269%, 000.850% of Random\n    test 200 pygeodesy.ellipsoidalVincenty: 40.981210°N, 034.381310°E, 21.581340°S, 084.205539°E  d 25517.2 meter  Spherical\n    test 201 pygeodesy.ellipsoidalVincenty: 41.186078°N, 034.518810°E, 21.747177°S, 084.134687°E  d 6.24075e-06 meter  EquidistantExact\n    test 202 pygeodesy.ellipsoidalVincenty: 40.944802°N, 034.323160°E, 21.498714°S, 084.299938°E  d 31438.7 meter  Equidistant\n    test 203 pygeodesy.ellipsoidalVincenty: 00.241275°N, 000.195650°E  00.586%, 000.567% of Random\n    test 204 pygeodesy.ellipsoidalVincenty: 41.004915°N, 034.623936°E, 06.517706°N, 020.398169°E  d 21972.4 meter  Spherical\n    test 205 pygeodesy.ellipsoidalVincenty: 41.186078°N, 034.518810°E, 06.309051°N, 020.241933°E  d 5.18445e-05 meter  EquidistantExact\n    test 206 pygeodesy.ellipsoidalVincenty: 41.055640°N, 034.588070°E, 06.583593°N, 020.579717°E  d 15610.1 meter  Equidistant\n    test 207 pygeodesy.ellipsoidalVincenty: 00.130438°N, 000.069260°W  00.317%, 000.201% of Random\n    test 208 pygeodesy.ellipsoidalVincenty: 00.458422°N, 004.874358°E  01.113%, 014.121% of Random, max\n\n    test 209 Equidistant(10, 80): 1.37704, 0.24656\n    test 210 Equidistant(10, 80): 10.0, 80.0\n    test 211 Gnomonic(10, 80): 5.67128, 1.01543\n    test 212 Gnomonic(10, 80): 10.0, 80.0\n    test 213 LambertEqualArea(10, 80): 1.26747, 0.22694\n    test 214 LambertEqualArea(10, 80): 10.0, 80.0\n    test 215 Orthographic(10, 80): 0.96985, 0.17365\n    test 216 Orthographic(10, 80): 10.0, 80.0\n    test 217 Stereographic(10, 80): 1.65643, 0.29658\n    test 218 Stereographic(10, 80): 10.0, 80.0\n    test 219 Equidistant(20, 20): 0.33454, 0.35601\n    test 220 Equidistant(20, 20): 20.0, 20.0\n    test 221 Gnomonic(20, 20): 0.36397, 0.38733\n    test 222 Gnomonic(20, 20): 20.0, 20.0\n    test 223 LambertEqualArea(20, 20): 0.33123, 0.35248\n    test 224 LambertEqualArea(20, 20): 20.0, 20.0\n    test 225 Orthographic(20, 20): 0.32139, 0.34202\n    test 226 Orthographic(20, 20): 20.0, 20.0\n    test 227 Stereographic(20, 20): 0.34136, 0.36327\n    test 228 Stereographic(20, 20): 20.0, 20.0\n    test 229 Equidistant(40, 40): 0.57386, 0.74912\n    test 230 Equidistant(40, 40): 40.0, 40.0\n    test 231 Gnomonic(40, 40): 0.8391, 1.09537\n    test 232 Gnomonic(40, 40): 40.0, 40.0\n    test 233 LambertEqualArea(40, 40): 0.55281, 0.72164\n    test 234 LambertEqualArea(40, 40): 40.0, 40.0\n    test 235 Orthographic(40, 40): 0.4924, 0.64279\n    test 236 Orthographic(40, 40): 40.0, 40.0\n    test 237 Stereographic(40, 40): 0.62062, 0.81016\n    test 238 Stereographic(40, 40): 40.0, 40.0\n    test 239 Equidistant(60, 60): 0.58948, 1.17896\n    test 240 Equidistant(60, 60): 60.0, 60.0\n    test 241 Gnomonic(60, 60): 1.73205, 3.4641\n    test 242 Gnomonic(60, 60): 60.0, 60.0\n    test 243 LambertEqualArea(60, 60): 0.54772, 1.09545\n    test 244 LambertEqualArea(60, 60): 60.0, 60.0\n    test 245 Orthographic(60, 60): 0.43301, 0.86603\n    test 246 Orthographic(60, 60): 60.0, 60.0\n    test 247 Stereographic(60, 60): 0.69282, 1.38564\n    test 248 Stereographic(60, 60): 60.0, 60.0\n    test 249 Equidistant(70, 80): 0.50997, 1.42273\n    test 250 Equidistant(70, 80): 70.0, 80.0\n    test 251 Gnomonic(70, 80): 5.67128, 15.82209\n    test 252 Gnomonic(70, 80): 70.0, 80.0\n    test 253 LambertEqualArea(70, 80): 0.4628, 1.29114\n    test 254 LambertEqualArea(70, 80): 70.0, 80.0\n    test 255 Orthographic(70, 80): 0.33682, 0.93969\n    test 256 Orthographic(70, 80): 70.0, 80.0\n    test 257 Stereographic(70, 80): 0.63588, 1.77402\n    test 258 Stereographic(70, 80): 70.0, 80.0\n    test 259 Equidistant(80, 80): 0.26358, 1.51792\n    test 260 Equidistant(80, 80): 80.0, 80.0\n    test 261 Gnomonic(80, 80): 5.67128, 32.65961\n    test 262 Gnomonic(80, 80): 80.0, 80.0\n    test 263 LambertEqualArea(80, 80): 0.23828, 1.37219\n    test 264 LambertEqualArea(80, 80): 80.0, 80.0\n    test 265 Orthographic(80, 80): 0.17101, 0.98481\n    test 266 Orthographic(80, 80): 80.0, 80.0\n    test 267 Stereographic(80, 80): 0.33201, 1.91196\n    test 268 Stereographic(80, 80): 80.0, 80.0\n    test 269 Equidistant(80, 10): 0.04281, 1.39829\n    test 270 Equidistant(80, 10): 80.0, 10.0\n    test 271 Gnomonic(80, 10): 0.17633, 5.75877\n    test 272 Gnomonic(80, 10): 80.0, 10.0\n    test 273 LambertEqualArea(80, 10): 0.03941, 1.28702\n    test 274 LambertEqualArea(80, 10): 80.0, 10.0\n    test 275 Orthographic(80, 10): 0.03015, 0.98481\n    test 276 Orthographic(80, 10): 80.0, 10.0\n    test 277 Stereographic(80, 10): 0.0515, 1.68198\n    test 278 Stereographic(80, 10): 80.0, 10.0\n\n    test 279 function: equidistant\n    test 280 equatoradius: 1.0\n    test 281 flattening: 0.0\n    test 282 iteration: None\n    test 283 latlon0: (0.0, 0.0)\n    test 284 latlon0: (1.0, 2.0)\n    test 285 name: coverage\n    test 286 radius: 1.0\n\n    test 287 function: gnomonic\n    test 288 equatoradius: 1.0\n    test 289 flattening: 0.0\n    test 290 iteration: None\n    test 291 latlon0: (0.0, 0.0)\n    test 292 latlon0: (1.0, 2.0)\n    test 293 name: coverage\n    test 294 radius: 1.0\n    test 295 NANing: (NAN, NAN, 0.0, 0.0, 0.0, 1.0, None)\n\n    12 of 295 testAzimuthal.py tests (4.1%) FAILED, incl. 6 KNOWN plus 6 DeprecationWarnings (pygeodesy 26.3.26 Python 3.14.3 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 11.897 sec\nrunning /Library/Framewo....n3.14 -W default ~/PyGeodesy/test/testBasics.py\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.EPS from .constants by testBasics.py line 11\n# lazily imported pygeodesy.EPS0 from .constants by testBasics.py line 11\n# lazily imported pygeodesy.INF from .constants by testBasics.py line 11\n# lazily imported pygeodesy.INT0 from .constants by testBasics.py line 11\n# lazily imported pygeodesy.NAN from .constants by testBasics.py line 11\n# lazily imported pygeodesy.NEG0 from .constants by testBasics.py line 11\n# lazily imported pygeodesy.NINF from .constants by testBasics.py line 11\n# lazily imported pygeodesy.halfs2 from .basics by testBasics.py line 11\n# lazily imported pygeodesy.isclose from .constants by testBasics.py line 11\n# lazily imported pygeodesy.isfinite from .constants by testBasics.py line 11\n# lazily imported pygeodesy.isint0 from .constants by testBasics.py line 11\n# lazily imported pygeodesy.isiterable from .basics by testBasics.py line 11\n# lazily imported pygeodesy.isiterablen from .basics by testBasics.py line 11\n# lazily imported pygeodesy.isneg0 from .constants by testBasics.py line 11\n# lazily imported pygeodesy.isninf from .constants by testBasics.py line 11\n# lazily imported pygeodesy.isscalar from .basics by testBasics.py line 11\n# lazily imported pygeodesy.map1 from .basics by testBasics.py line 11\n# lazily imported pygeodesy.remainder from .constants by testBasics.py line 11\n# lazily imported pygeodesy.splice from .basics by testBasics.py line 11\n\n    testing testBasics.py 24.09.29 (module pygeodesy.basics 26.02.22) isLazy=3\n    test 1 clips: test/t....ics.py\n    test 2 halfs2: ('test/test', 'Basics.py')\n\n    test 3 isfinite(0): True\n    test 4 isint(0): True\n    test 5 isint(0+0.5): False\n    test 6 isninf(0): False\n    test 7 isscalar(0): True\n\n    test 8 isfinite(0.0): True\n    test 9 isint(0.0): True\n    test 10 isint(0.0+0.5): False\n    test 11 isninf(0.0): False\n    test 12 isscalar(0.0): True\n\n    test 13 isfinite(1): True\n    test 14 isint(1): True\n    test 15 isint(1+0.5): False\n    test 16 isninf(1): False\n    test 17 isscalar(1): True\n\n    test 18 isfinite(1.0): True\n    test 19 isint(1.0): True\n    test 20 isint(1.0+0.5): False\n    test 21 isninf(1.0): False\n    test 22 isscalar(1.0): True\n\n    test 23 isfinite(1e+300): True\n    test 24 isint(1e+300): True\n    test 25 isint(1e+300+0.5): True\n    test 26 isninf(1e+300): False\n    test 27 isscalar(1e+300): True\n\n    test 28 isfinite(-1e+300): True\n    test 29 isint(-1e+300): True\n    test 30 isint(-1e+300+0.5): True\n    test 31 isninf(-1e+300): False\n    test 32 isscalar(-1e+300): True\n\n    test 33 isfinite(inf): False\n    test 34 isint(inf): False\n    test 35 isint(inf+0.5): False\n    test 36 isninf(inf): False\n    test 37 isscalar(inf): True\n\n    test 38 isfinite(inf): False\n    test 39 isint(inf): False\n    test 40 isint(inf+0.5): False\n    test 41 isninf(inf): False\n    test 42 isscalar(inf): True\n\n    test 43 isfinite(nan): False\n    test 44 isint(nan): False\n    test 45 isint(nan+0.5): False\n    test 46 isninf(nan): False\n    test 47 isscalar(nan): True\n\n    test 48 isfinite(-0.0): True\n    test 49 isint(-0.0): True\n    test 50 isint(-0.0+0.5): False\n    test 51 isninf(-0.0): False\n    test 52 isscalar(-0.0): True\n\n    test 53 isfinite(-inf): False\n    test 54 isint(-inf): False\n    test 55 isint(-inf+0.5): False\n    test 56 isninf(-inf): True\n    test 57 isscalar(-inf): True\n\n    test 58 isfinite(complex): True\n    test 59 isfinite(complex): False\n\n    test 60 isint0(INT0): True\n    test 61 isint0(False): False\n    test 62 isint0(None): False\n    test 63 isint0(0): True\n    test 64 isint0(0.): False\n    test 65 isint0(0.0): True\n\n    test 66 isneg0(NEG0): True\n    test 67 isneg0(0.0): False\n    test 68 isneg0(INF): False\n    test 69 isneg0(NAN): False\n\n    test 70 type(C.r_o): property_RO\n    test 71 type(c.r_o): <class 'bool'>\n    test 72 c.r_o: True\n    test 73 c.r_o = False: immutable property_RO: C.r_o = False\n    test 74 c.a, c.b: (None, None)\n    test 75 d.a, d.b: (True, False)\n    test 76 c.a, c.b: (None, None)\n    test 77 splice: ((0, 2, 4, 6, 8), (1, 3, 5, 7, 9))\n    test 78 splice: ((0, 3, 6, 9), (1, 4, 7), (2, 5, 8))\n    test 79 splice: ((0, 3, 6, 9), (1, 4, 7, -1), (2, 5, 8, -1))\n    test 80 splice: ((0, 5, 10), (1, 6, 11), (2, 7), (3, 8), (4, 9))\n\n    test 81 remainder(181, 360): -179.0\n    test 82 remainder(181, -360): -179.0\n    test 83 remainder(181, inf): 181.0\n    test 84 remainder(181, nan): nan\n    test 85 remainder(181, -inf): 181.0\n    test 86 remainder(-181, 360): 179.0\n    test 87 remainder(-181, -360): 179.0\n    test 88 remainder(-181, inf): -181.0\n    test 89 remainder(-181, nan): nan\n    test 90 remainder(-181, -inf): -181.0\n    test 91 remainder(179, 360): 179.0\n    test 92 remainder(179, -360): 179.0\n    test 93 remainder(179, inf): 179.0\n    test 94 remainder(179, nan): nan\n    test 95 remainder(179, -inf): 179.0\n    test 96 remainder(-179, 360): -179.0\n    test 97 remainder(-179, -360): -179.0\n    test 98 remainder(-179, inf): -179.0\n    test 99 remainder(-179, nan): nan\n    test 100 remainder(-179, -inf): -179.0\n    test 101 remainder(inf, 360): math domain error\n    test 102 remainder(inf, -360): math domain error\n    test 103 remainder(inf, inf): math domain error\n    test 104 remainder(inf, nan): nan\n    test 105 remainder(inf, -inf): math domain error\n    test 106 remainder(nan, 360): nan\n    test 107 remainder(nan, -360): nan\n    test 108 remainder(nan, inf): nan\n    test 109 remainder(nan, nan): nan\n    test 110 remainder(nan, -inf): nan\n    test 111 remainder(-inf, 360): math domain error\n    test 112 remainder(-inf, -360): math domain error\n    test 113 remainder(-inf, inf): math domain error\n    test 114 remainder(-inf, nan): nan\n    test 115 remainder(-inf, -inf): math domain error\n    test 116 isclose: True\n    test 117 isclose: False\n\n    test 118 isiterable(dict): True\n    test 119 isiterablen(dict): True\n    test 120 isiterable(map): True\n    test 121 isiterablen(map): False\n    test 122 isiterable(list): True\n    test 123 isiterablen(list): True\n    test 124 isiterable(range): True\n    test 125 isiterablen(range): True\n    test 126 isiterable(tuple): True\n    test 127 isiterablen(tuple): True\n    test 128 isiterable(set): True\n    test 129 isiterablen(set): False\n\n    all 129 testBasics.py tests passed (pygeodesy 26.3.26 Python 3.14.3 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 318.050 us\nrunning /Library/Framewo....n3.14 -W default ~/PyGeodesy/test/testBooleans.py\n./test/testBooleans.py:50: DeprecationWarning: function L{areaOf<pygeodesy.ellipsoidalVincenty.areaOf>} has been DEPRECATED, use function L{ellipsoidalExact.areaOf} or L{ellipsoidalKarney.areaOf}.\n  self.test(areaOf.__name__, areaOf(b) == areaOf(t), True)\n./pygeodesy/ellipsoidalKarney.py:139: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return fabs(_polygon(datum.ellipsoid.geodesic, points, True, False, wrap, polar))\n./test/testBooleans.py:53: DeprecationWarning: function L{perimeterOf<pygeodesy.ellipsoidalVincenty.perimeterOf>} has been DEPRECATED, use function L{ellipsoidalExact.perimeterOf} or L{ellipsoidalKarney.perimeterOf}.\n  self.test(periOf.__name__, periOf(b, closed=True) == periOf(t, closed=True), True)\n./pygeodesy/ellipsoidalKarney.py:347: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return _polygon(datum.ellipsoid.geodesic, points, closed, True, wrap, False)\n./test/testBooleans.py:82: DeprecationWarning: function L{areaOf<pygeodesy.ellipsoidalVincenty.areaOf>} has been DEPRECATED, use function L{ellipsoidalExact.areaOf} or L{ellipsoidalKarney.areaOf}.\n  self.test(areaOf.__name__, areaOf(b) == areaOf(t), True)\n./test/testBooleans.py:85: DeprecationWarning: function L{perimeterOf<pygeodesy.ellipsoidalVincenty.perimeterOf>} has been DEPRECATED, use function L{ellipsoidalExact.perimeterOf} or L{ellipsoidalKarney.perimeterOf}.\n  self.test(periOf.__name__, periOf(b, closed=True) == periOf(t, closed=True), True)\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.BooleanFHP from .booleans by testBooleans.py line 11\n# lazily imported pygeodesy.BooleanGH from .booleans by testBooleans.py line 11\n# lazily imported pygeodesy.isenclosedBy from .points by testBooleans.py line 11\n# lazily imported pygeodesy.ellipsoidalExact by testBooleans.py line 95\n# lazily imported pygeodesy.ellipsoidalVincenty by testBooleans.py line 95\n# lazily imported pygeodesy.sphericalNvector by testBooleans.py line 95\n# lazily imported pygeodesy.sphericalTrigonometry by testBooleans.py line 95\n\n    testing testBooleans.py 23.03.31 isLazy=3\n\n    testing(pygeodesy.ellipsoidalExact, 25.08.28)\n    test 1 and: BooleanGH[4]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=7.0, lon=5.0, height=2.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=3.0, lon=5.0, height=2.0))\n    test 2 or: BooleanGH[6]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=0.0, lon=0.0, height=1.0), (lat=0.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=10.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0))\n    test 3 minus: BooleanGH[5]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=0.0, lon=0.0, height=1.0), (lat=0.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=3.0, lon=5.0, height=2.0))\n    test 4 rev_d: BooleanGH[5]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=10.0, lon=0.0, height=1.0), (lat=10.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=7.0, lon=5.0, height=2.0))\n    test 5 iand: BooleanGH[4]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=7.0, lon=5.0, height=2.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=3.0, lon=5.0, height=2.0))\n    test 6 ior: BooleanGH[6]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=0.0, lon=0.0, height=1.0), (lat=0.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=10.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0))\n    test 7 sum: BooleanGH[2][6]((lat=0.0, lon=0.0, height=1.0), (lat=7.0, lon=5.0, height=2.0), (lat=0.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0, clipid=1), (lat=3.0, lon=5.0, height=2.0, clipid=1), (lat=10.0, lon=10.0, height=3.0, clipid=1))\n\n    test 8 GH ==: True\n    test 9 equalTo: True\n# lazily imported pygeodesy.geodesicx by ellipsoids.py line 1082\n# lazily imported pygeodesy.elliptic by gx.py line 421\n    test 10 areaOf: True\n    test 11 enclosed: True\n    test 12 enclosed: False\n    test 13 perimeterOf: True\n\n    test 14 toLatLon[0:3]: (LatLon(00°00′00.0″N, 000°00′00.0″E, +1.00m), LatLon(07°00′00.0″N, 005°00′00.0″E, +2.00m), LatLon(00°00′00.0″N, 010°00′00.0″E, +3.00m))\n    test 15 toLatLon[-3:]: ((lat=10.0, lon=0.0, height=1.0, clipid=1), (lat=3.0, lon=5.0, height=2.0, clipid=1), (lat=10.0, lon=10.0, height=3.0, clipid=1))\n\n    test 16 and: BooleanFHP[4]((lat=7.0, lon=5.0, height=2.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=3.0, lon=5.0, height=2.0), (lat=5.0, lon=3.5714286, height=1.7142857))\n    test 17 or: BooleanFHP[6]((lat=0.0, lon=0.0, height=1.0), (lat=0.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=10.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0), (lat=5.0, lon=3.5714286, height=1.7142857))\n    test 18 iand: BooleanFHP[4]((lat=7.0, lon=5.0, height=2.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=3.0, lon=5.0, height=2.0), (lat=5.0, lon=3.5714286, height=1.7142857))\n    test 19 ior: BooleanFHP[6]((lat=0.0, lon=0.0, height=1.0), (lat=0.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=10.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0), (lat=5.0, lon=3.5714286, height=1.7142857))\n    test 20 sum: BooleanFHP[2][6]((lat=0.0, lon=0.0, height=1.0), (lat=7.0, lon=5.0, height=2.0), (lat=0.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0, clipid=1), (lat=3.0, lon=5.0, height=2.0, clipid=1), (lat=10.0, lon=10.0, height=3.0, clipid=1))\n\n    test 21 FHP ==: True\n    test 22 equalTo: True\n    test 23 areaOf: True\n    test 24 enclosed: True\n    test 25 enclosed: False\n    test 26 perimeterOf: True\n\n    test 27 toLatLon[0:3]: (LatLon(00°00′00.0″N, 000°00′00.0″E, +1.00m), LatLon(07°00′00.0″N, 005°00′00.0″E, +2.00m), LatLon(00°00′00.0″N, 010°00′00.0″E, +3.00m))\n    test 28 toLatLon[-3:]: ((lat=10.0, lon=0.0, height=1.0, clipid=1), (lat=3.0, lon=5.0, height=2.0, clipid=1), (lat=10.0, lon=10.0, height=3.0, clipid=1))\n\n    testing(pygeodesy.ellipsoidalVincenty, 25.05.26)\n    test 29 and: BooleanGH[4]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=7.0, lon=5.0, height=2.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=3.0, lon=5.0, height=2.0))\n    test 30 or: BooleanGH[6]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=0.0, lon=0.0, height=1.0), (lat=0.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=10.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0))\n    test 31 minus: BooleanGH[5]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=0.0, lon=0.0, height=1.0), (lat=0.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=3.0, lon=5.0, height=2.0))\n    test 32 rev_d: BooleanGH[5]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=10.0, lon=0.0, height=1.0), (lat=10.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=7.0, lon=5.0, height=2.0))\n    test 33 iand: BooleanGH[4]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=7.0, lon=5.0, height=2.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=3.0, lon=5.0, height=2.0))\n    test 34 ior: BooleanGH[6]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=0.0, lon=0.0, height=1.0), (lat=0.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=10.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0))\n    test 35 sum: BooleanGH[2][6]((lat=0.0, lon=0.0, height=1.0), (lat=7.0, lon=5.0, height=2.0), (lat=0.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0, clipid=1), (lat=3.0, lon=5.0, height=2.0, clipid=1), (lat=10.0, lon=10.0, height=3.0, clipid=1))\n\n    test 36 GH ==: True\n    test 37 equalTo: True\n# lazily imported pygeodesy.ellipsoidalKarney by ellipsoidalVincenty.py line 383\n# lazily imported pygeodesy.geodesicw by ellipsoids.py line 1074\n    test 38 areaOf: True\n    test 39 enclosed: True\n    test 40 enclosed: False\n    test 41 perimeterOf: True\n\n    test 42 toLatLon[0:3]: (LatLon(00°00′00.0″N, 000°00′00.0″E, +1.00m), LatLon(07°00′00.0″N, 005°00′00.0″E, +2.00m), LatLon(00°00′00.0″N, 010°00′00.0″E, +3.00m))\n    test 43 toLatLon[-3:]: ((lat=10.0, lon=0.0, height=1.0, clipid=1), (lat=3.0, lon=5.0, height=2.0, clipid=1), (lat=10.0, lon=10.0, height=3.0, clipid=1))\n\n    test 44 and: BooleanFHP[4]((lat=7.0, lon=5.0, height=2.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=3.0, lon=5.0, height=2.0), (lat=5.0, lon=3.5714286, height=1.7142857))\n    test 45 or: BooleanFHP[6]((lat=0.0, lon=0.0, height=1.0), (lat=0.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=10.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0), (lat=5.0, lon=3.5714286, height=1.7142857))\n    test 46 iand: BooleanFHP[4]((lat=7.0, lon=5.0, height=2.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=3.0, lon=5.0, height=2.0), (lat=5.0, lon=3.5714286, height=1.7142857))\n    test 47 ior: BooleanFHP[6]((lat=0.0, lon=0.0, height=1.0), (lat=0.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=10.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0), (lat=5.0, lon=3.5714286, height=1.7142857))\n    test 48 sum: BooleanFHP[2][6]((lat=0.0, lon=0.0, height=1.0), (lat=7.0, lon=5.0, height=2.0), (lat=0.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0, clipid=1), (lat=3.0, lon=5.0, height=2.0, clipid=1), (lat=10.0, lon=10.0, height=3.0, clipid=1))\n\n    test 49 FHP ==: True\n    test 50 equalTo: True\n    test 51 areaOf: True\n    test 52 enclosed: True\n    test 53 enclosed: False\n    test 54 perimeterOf: True\n\n    test 55 toLatLon[0:3]: (LatLon(00°00′00.0″N, 000°00′00.0″E, +1.00m), LatLon(07°00′00.0″N, 005°00′00.0″E, +2.00m), LatLon(00°00′00.0″N, 010°00′00.0″E, +3.00m))\n    test 56 toLatLon[-3:]: ((lat=10.0, lon=0.0, height=1.0, clipid=1), (lat=3.0, lon=5.0, height=2.0, clipid=1), (lat=10.0, lon=10.0, height=3.0, clipid=1))\n\n    testing(pygeodesy.sphericalNvector, 25.05.27)\n    test 57 and: BooleanGH[4]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=7.0, lon=5.0, height=2.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=3.0, lon=5.0, height=2.0))\n    test 58 or: BooleanGH[6]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=0.0, lon=0.0, height=1.0), (lat=0.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=10.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0))\n    test 59 minus: BooleanGH[5]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=0.0, lon=0.0, height=1.0), (lat=0.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=3.0, lon=5.0, height=2.0))\n    test 60 rev_d: BooleanGH[5]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=10.0, lon=0.0, height=1.0), (lat=10.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=7.0, lon=5.0, height=2.0))\n    test 61 iand: BooleanGH[4]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=7.0, lon=5.0, height=2.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=3.0, lon=5.0, height=2.0))\n    test 62 ior: BooleanGH[6]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=0.0, lon=0.0, height=1.0), (lat=0.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=10.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0))\n    test 63 sum: BooleanGH[2][6]((lat=0.0, lon=0.0, height=1.0), (lat=7.0, lon=5.0, height=2.0), (lat=0.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0, clipid=1), (lat=3.0, lon=5.0, height=2.0, clipid=1), (lat=10.0, lon=10.0, height=3.0, clipid=1))\n\n    test 64 GH ==: True\n    test 65 equalTo: True\n# imported pygeodesy.formy into latlonBase.py line 756\n    test 66 areaOf: True\n    test 67 enclosed: True\n    test 68 enclosed: False\n    test 69 perimeterOf: True\n\n    test 70 toLatLon[0:3]: (LatLon(00°00′00.0″N, 000°00′00.0″E, +1.00m), LatLon(07°00′00.0″N, 005°00′00.0″E, +2.00m), LatLon(00°00′00.0″N, 010°00′00.0″E, +3.00m))\n    test 71 toLatLon[-3:]: ((lat=10.0, lon=0.0, height=1.0, clipid=1), (lat=3.0, lon=5.0, height=2.0, clipid=1), (lat=10.0, lon=10.0, height=3.0, clipid=1))\n\n    test 72 and: BooleanFHP[4]((lat=7.0, lon=5.0, height=2.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=3.0, lon=5.0, height=2.0), (lat=5.0, lon=3.5714286, height=1.7142857))\n    test 73 or: BooleanFHP[6]((lat=0.0, lon=0.0, height=1.0), (lat=0.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=10.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0), (lat=5.0, lon=3.5714286, height=1.7142857))\n    test 74 iand: BooleanFHP[4]((lat=7.0, lon=5.0, height=2.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=3.0, lon=5.0, height=2.0), (lat=5.0, lon=3.5714286, height=1.7142857))\n    test 75 ior: BooleanFHP[6]((lat=0.0, lon=0.0, height=1.0), (lat=0.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=10.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0), (lat=5.0, lon=3.5714286, height=1.7142857))\n    test 76 sum: BooleanFHP[2][6]((lat=0.0, lon=0.0, height=1.0), (lat=7.0, lon=5.0, height=2.0), (lat=0.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0, clipid=1), (lat=3.0, lon=5.0, height=2.0, clipid=1), (lat=10.0, lon=10.0, height=3.0, clipid=1))\n\n    test 77 FHP ==: True\n    test 78 equalTo: True\n    test 79 areaOf: True\n    test 80 enclosed: True\n    test 81 enclosed: False\n    test 82 perimeterOf: True\n\n    test 83 toLatLon[0:3]: (LatLon(00°00′00.0″N, 000°00′00.0″E, +1.00m), LatLon(07°00′00.0″N, 005°00′00.0″E, +2.00m), LatLon(00°00′00.0″N, 010°00′00.0″E, +3.00m))\n    test 84 toLatLon[-3:]: ((lat=10.0, lon=0.0, height=1.0, clipid=1), (lat=3.0, lon=5.0, height=2.0, clipid=1), (lat=10.0, lon=10.0, height=3.0, clipid=1))\n\n    testing(pygeodesy.sphericalTrigonometry, 25.08.31)\n    test 85 and: BooleanGH[4]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=7.0, lon=5.0, height=2.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=3.0, lon=5.0, height=2.0))\n    test 86 or: BooleanGH[6]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=0.0, lon=0.0, height=1.0), (lat=0.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=10.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0))\n    test 87 minus: BooleanGH[5]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=0.0, lon=0.0, height=1.0), (lat=0.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=3.0, lon=5.0, height=2.0))\n    test 88 rev_d: BooleanGH[5]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=10.0, lon=0.0, height=1.0), (lat=10.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=7.0, lon=5.0, height=2.0))\n    test 89 iand: BooleanGH[4]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=7.0, lon=5.0, height=2.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=3.0, lon=5.0, height=2.0))\n    test 90 ior: BooleanGH[6]((lat=5.0, lon=3.5714286, height=1.7142857), (lat=0.0, lon=0.0, height=1.0), (lat=0.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=10.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0))\n    test 91 sum: BooleanGH[2][6]((lat=0.0, lon=0.0, height=1.0), (lat=7.0, lon=5.0, height=2.0), (lat=0.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0, clipid=1), (lat=3.0, lon=5.0, height=2.0, clipid=1), (lat=10.0, lon=10.0, height=3.0, clipid=1))\n\n    test 92 GH ==: True\n    test 93 equalTo: True\n    test 94 areaOf: True\n    test 95 enclosed: True\n    test 96 enclosed: False\n    test 97 perimeterOf: True\n\n    test 98 toLatLon[0:3]: (LatLon(00°00′00.0″N, 000°00′00.0″E, +1.00m), LatLon(07°00′00.0″N, 005°00′00.0″E, +2.00m), LatLon(00°00′00.0″N, 010°00′00.0″E, +3.00m))\n    test 99 toLatLon[-3:]: ((lat=10.0, lon=0.0, height=1.0, clipid=1), (lat=3.0, lon=5.0, height=2.0, clipid=1), (lat=10.0, lon=10.0, height=3.0, clipid=1))\n\n    test 100 and: BooleanFHP[4]((lat=7.0, lon=5.0, height=2.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=3.0, lon=5.0, height=2.0), (lat=5.0, lon=3.5714286, height=1.7142857))\n    test 101 or: BooleanFHP[6]((lat=0.0, lon=0.0, height=1.0), (lat=0.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=10.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0), (lat=5.0, lon=3.5714286, height=1.7142857))\n    test 102 iand: BooleanFHP[4]((lat=7.0, lon=5.0, height=2.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=3.0, lon=5.0, height=2.0), (lat=5.0, lon=3.5714286, height=1.7142857))\n    test 103 ior: BooleanFHP[6]((lat=0.0, lon=0.0, height=1.0), (lat=0.0, lon=10.0, height=3.0), (lat=5.0, lon=6.4285714, height=2.2857143), (lat=10.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0), (lat=5.0, lon=3.5714286, height=1.7142857))\n    test 104 sum: BooleanFHP[2][6]((lat=0.0, lon=0.0, height=1.0), (lat=7.0, lon=5.0, height=2.0), (lat=0.0, lon=10.0, height=3.0), (lat=10.0, lon=0.0, height=1.0, clipid=1), (lat=3.0, lon=5.0, height=2.0, clipid=1), (lat=10.0, lon=10.0, height=3.0, clipid=1))\n\n    test 105 FHP ==: True\n    test 106 equalTo: True\n    test 107 areaOf: True\n    test 108 enclosed: True\n    test 109 enclosed: False\n    test 110 perimeterOf: True\n\n    test 111 toLatLon[0:3]: (LatLon(00°00′00.0″N, 000°00′00.0″E, +1.00m), LatLon(07°00′00.0″N, 005°00′00.0″E, +2.00m), LatLon(00°00′00.0″N, 010°00′00.0″E, +3.00m))\n    test 112 toLatLon[-3:]: ((lat=10.0, lon=0.0, height=1.0, clipid=1), (lat=3.0, lon=5.0, height=2.0, clipid=1), (lat=10.0, lon=10.0, height=3.0, clipid=1))\n\n    16 of 112 testBooleans.py tests (14.3%) FAILED, incl. 16 DeprecationWarnings (pygeodesy 26.3.26 Python 3.14.3 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 674.462 ms\nrunning /Library/Framewo....n3.14 -W default ~/PyGeodesy/test/testCartesian.py\n./test/testCartesian.py:44: DeprecationWarning: method L{convertDatum<pygeodesy.ellipsoidalNvector.Cartesian.convertDatum>} has been DEPRECATED, use method L{toDatum}.\n  d = c.convertDatum(datum2)\n./test/testCartesian.py:45: DeprecationWarning: method L{convertDatum<pygeodesy.ellipsoidalNvector.Cartesian.convertDatum>} has been DEPRECATED, use method L{toDatum}.\n  t = d.convertDatum(datum)\n<string>:1: DeprecationWarning: method L{__matmul__<pygeodesy.trf.RefFrame.__matmul__>} has been DEPRECATED on 2024.02.16, use method C{B{point}.toRefFrame}.\n./test/testCartesian.py:44: DeprecationWarning: method L{convertDatum<pygeodesy.ellipsoidalVincenty.Cartesian.convertDatum>} has been DEPRECATED, use method L{toDatum}.\n  d = c.convertDatum(datum2)\n./test/testCartesian.py:45: DeprecationWarning: method L{convertDatum<pygeodesy.ellipsoidalVincenty.Cartesian.convertDatum>} has been DEPRECATED, use method L{toDatum}.\n  t = d.convertDatum(datum)\n./test/testCartesian.py:44: DeprecationWarning: method L{convertDatum<pygeodesy.ellipsoidalKarney.Cartesian.convertDatum>} has been DEPRECATED, use method L{toDatum}.\n  d = c.convertDatum(datum2)\n./test/testCartesian.py:45: DeprecationWarning: method L{convertDatum<pygeodesy.ellipsoidalKarney.Cartesian.convertDatum>} has been DEPRECATED, use method L{toDatum}.\n  t = d.convertDatum(datum)\n./test/testCartesian.py:44: DeprecationWarning: method L{convertDatum<pygeodesy.ellipsoidalExact.Cartesian.convertDatum>} has been DEPRECATED, use method L{toDatum}.\n  d = c.convertDatum(datum2)\n./test/testCartesian.py:45: DeprecationWarning: method L{convertDatum<pygeodesy.ellipsoidalExact.Cartesian.convertDatum>} has been DEPRECATED, use method L{toDatum}.\n  t = d.convertDatum(datum)\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.Aer from .ltpTuples by testCartesian.py line 11\n# lazily imported pygeodesy.classname from .named by testCartesian.py line 11\n# lazily imported pygeodesy.Datums from .datums by testCartesian.py line 11\n# lazily imported pygeodesy.degrees from .utily by testCartesian.py line 11\n# lazily imported pygeodesy.Enu from .ltpTuples by testCartesian.py line 11\n# lazily imported pygeodesy.fstr from .streprs by testCartesian.py line 11\n# lazily imported pygeodesy.Local9Tuple from .ltpTuples by testCartesian.py line 11\n# lazily imported pygeodesy.Ltp from .ltp by testCartesian.py line 11\n# lazily imported pygeodesy.modulename from .named by testCartesian.py line 11\n# lazily imported pygeodesy.Ned from .ltpTuples by testCartesian.py line 11\n# lazily imported pygeodesy.rtp2xyz from .cartesianBase by testCartesian.py line 11\n# lazily imported pygeodesy.xyz2rtp from .cartesianBase by testCartesian.py line 11\n# lazily imported pygeodesy.RefFrames from .trf by testCartesian.py line 11\n# lazily imported pygeodesy.XyzLocal from .ltpTuples by testCartesian.py line 11\n# lazily imported pygeodesy.Transforms from .datums by testCartesian.py line 13\n# lazily imported pygeodesy.ellipsoidalExact by testCartesian.py line 209\n# lazily imported pygeodesy.ellipsoidalNvector by testCartesian.py line 209\n# lazily imported pygeodesy.ellipsoidalVincenty by testCartesian.py line 209\n# lazily imported pygeodesy.sphericalNvector by testCartesian.py line 209\n# lazily imported pygeodesy.sphericalTrigonometry by testCartesian.py line 209\n\n    testing testCartesian.py 25.05.12 isLazy=3\n\n    testCartesian(pygeodesy.sphericalNvector, 25.05.27)\n    test 1 Cartesian0: [3980581, 97, 4966825]\n    test 2 Cartesian4: [3980581.0, 97.0, 4966825.0]\n    test 3 isEllipsoidal: False\n    test 4 isSpherical: True\n    test 5 copy(<class 'type'>): (<class 'pygeodesy.sphericalNvector.Cartesian'>, True)\n    test 6 Cartesian.copy(): (<class 'pygeodesy.sphericalNvector.Cartesian'>, True)\n    test 7 height: -5918.380258\n    test 8 height4: (3984282.2, 97.1, 4971443.2, -5918.4)\n    test 9 height4: [3984282.2, 97.1, 4971443.2]\n    test 10 height3: (3980581.0, 97.0, 4966825.0)\n    test 11 Nvector: Nvector(0.62538, 0.00002, 0.78032, -5918.38)\n    test 12 Nvector3: (0.625, 0.0, 0.78, -5918.38)\n    test 13 Nvector6: (0.625377, 0.000015, 0.780323, -5918.38)\n    test 14 LatLon: 50.0379°N, 008.5622°E\n    test 15 LatLon: 51.47°N, 000.4543°E\n    test 16 LatLon: 40.633365°N, 073.783328°W\n    test 17 LatLon: 33.95°N, 118.4°W\n    test 18 LatLon: 41.32°S, 174.81°E, +0.00m  FAILED, KNOWN, expected 41.32°S, 174.81°E\n    test 19 LatLon: 40.96°N, 005.5°E\n    test 20 LatLon: 40.1°N, 116.6°E\n    test 21 LatLon: 37.6°N, 122.4°W, -0.00m  FAILED, KNOWN, expected 37.6°N, 122.4°W\n    test 22 copy: True\n    test 23 __eq__: True\n    test 24 __ne__: False\n    test 25 Cartesian: <class 'pygeodesy.sphericalNvector.Cartesian'>\n    test 26 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 27 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 28 latlonheightdatum: <class 'pygeodesy.namedTuples.LatLon4Tuple'>\n    test 29 height4: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 30 isequalTo: <class 'bool'>\n    test 31 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 32 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 33 philamheightdatum: <class 'pygeodesy.namedTuples.PhiLam4Tuple'>\n    test 34 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n# imported pygeodesy.ltpTuples into ecefLocals.py line 80\n# imported pygeodesy.ltp into ecefLocals.py line 63\n# imported pygeodesy.ltp into ltpTuples.py line 1585\n    test 35 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 36 toEcef: <class 'pygeodesy.ecef.Ecef9Tuple'>\n    test 37 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 38 toLatLon: <class 'pygeodesy.sphericalNvector.LatLon'>\n    test 39 toLLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 40 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 41 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 42 toNvector: <class 'pygeodesy.sphericalNvector.Nvector'>\n    test 43 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 44 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 45 xyz3: <class 'tuple'>\n    test 46 Cartesian: <class 'pygeodesy.cartesianBase.CartesianBase'>\n    test 47 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 48 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 49 latlonheightdatum: <class 'pygeodesy.namedTuples.LatLon4Tuple'>\n    test 50 height4: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 51 isequalTo: <class 'bool'>\n    test 52 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 53 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 54 philamheightdatum: <class 'pygeodesy.namedTuples.PhiLam4Tuple'>\n    test 55 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 56 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 57 toEcef: <class 'pygeodesy.ecef.Ecef9Tuple'>\n    test 58 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 59 toLatLon: <class 'pygeodesy.ecef.Ecef9Tuple'>\n    test 60 toLLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 61 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 62 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 63 toNvector: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 64 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 65 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 66 xyz3: <class 'tuple'>\n    test 67 sphericalNvector.Cartesian.intersections2: 37.673442°N, 090.234036°W\n    test 68 sphericalNvector.Cartesian.intersections2: 36.109987°N, 090.95367°W\n    test 69 sphericalNvector.Cartesian.intersections2: [-0.032779, -0.784769, 0.61892]\n    test 70 sphericalNvector.Cartesian.intersections2: 38.237342°N, 092.391779°W\n    test 71 sphericalNvector.Cartesian.intersections2: [0.025768, -0.798347, 0.601646]\n    test 72 sphericalNvector.Cartesian.intersections2: 36.987868°N, 088.151309°W\n# lazily imported pygeodesy.trilaterate3d2 from .vector3d by testCartesian.py line 149\n# imported pygeodesy.vector2d into vector3d.py line 894\n\n    2 tests skipped (2): No module named 'numpy': required by vector2d._numpy\n    test 73 vector3d.intersections2: (-0.0035, -0.791926, 0.610589)\n    test 74 vector3d.intersections2: 0.0312613\n    test 75 vector3d.intersections2: (-0.021973, -0.766467, 0.0)\n    test 76 vector3d.intersections2: (0.027459, -0.797488, 0.0)\n\n    test 77 xyz2rtp: 37.417, 36.699, 63.435\n    test 78 xyz2rtp: <class 'pygeodesy.cartesianBase.RadiusThetaPhi3Tuple'>\n    test 79 rtp2xyz: 10.0, 20.0, 30.0\n    test 80 rtp2xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 81 toCartesian: Cartesian(10.0, 20.0, 30.0)\n    test 82 toRtp: Test(r=37.416574, theta=36.699225, phi=63.434949)\n\n    test 83 destinationXyz: Tuple(x=10.175954, y=20.351908, z=32.201182, lat=54.754059, lon=63.434949, height=-6370969.342158, C=2, M=None, datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84))\n    test 84 destinationXyz: Cartesian(10.176, 20.352, 32.201)\n\n    testCartesian(pygeodesy.sphericalTrigonometry, 25.08.31)\n    test 85 Cartesian0: [3980581, 97, 4966825]\n    test 86 Cartesian4: [3980581.0, 97.0, 4966825.0]\n    test 87 isEllipsoidal: False\n    test 88 isSpherical: True\n    test 89 copy(<class 'type'>): (<class 'pygeodesy.sphericalTrigonometry.Cartesian'>, True)\n    test 90 Cartesian.copy(): (<class 'pygeodesy.sphericalTrigonometry.Cartesian'>, True)\n    test 91 height: -5918.380258\n    test 92 height4: (3984282.2, 97.1, 4971443.2, -5918.4)\n    test 93 height4: [3984282.2, 97.1, 4971443.2]\n    test 94 height3: (3980581.0, 97.0, 4966825.0)\n    test 95 Vector4Tuple: 0.625376979, 1.52393751e-05, 0.780322775, -5918.38026\n    test 96 LatLon: 50.0379°N, 008.5622°E\n    test 97 LatLon: 51.47°N, 000.4543°E\n    test 98 LatLon: 40.633365°N, 073.783328°W\n    test 99 LatLon: 33.95°N, 118.4°W\n    test 100 LatLon: 41.32°S, 174.81°E, +0.00m  FAILED, KNOWN, expected 41.32°S, 174.81°E\n    test 101 LatLon: 40.96°N, 005.5°E\n    test 102 LatLon: 40.1°N, 116.6°E\n    test 103 LatLon: 37.6°N, 122.4°W, -0.00m  FAILED, KNOWN, expected 37.6°N, 122.4°W\n    test 104 copy: True\n    test 105 __eq__: True\n    test 106 __ne__: False\n    test 107 Cartesian: <class 'pygeodesy.sphericalTrigonometry.Cartesian'>\n    test 108 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 109 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 110 latlonheightdatum: <class 'pygeodesy.namedTuples.LatLon4Tuple'>\n    test 111 height4: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 112 isequalTo: <class 'bool'>\n    test 113 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 114 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 115 philamheightdatum: <class 'pygeodesy.namedTuples.PhiLam4Tuple'>\n    test 116 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 117 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 118 toEcef: <class 'pygeodesy.ecef.Ecef9Tuple'>\n    test 119 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 120 toLatLon: <class 'pygeodesy.sphericalTrigonometry.LatLon'>\n    test 121 toLLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 122 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 123 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 124 toNvector: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 125 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 126 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 127 xyz3: <class 'tuple'>\n    test 128 Cartesian: <class 'pygeodesy.cartesianBase.CartesianBase'>\n    test 129 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 130 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 131 latlonheightdatum: <class 'pygeodesy.namedTuples.LatLon4Tuple'>\n    test 132 height4: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 133 isequalTo: <class 'bool'>\n    test 134 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 135 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 136 philamheightdatum: <class 'pygeodesy.namedTuples.PhiLam4Tuple'>\n    test 137 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 138 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 139 toEcef: <class 'pygeodesy.ecef.Ecef9Tuple'>\n    test 140 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 141 toLatLon: <class 'pygeodesy.ecef.Ecef9Tuple'>\n    test 142 toLLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 143 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 144 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 145 toNvector: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 146 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 147 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 148 xyz3: <class 'tuple'>\n    test 149 sphericalTrigonometry.Cartesian.intersections2: 37.673442°N, 090.234036°W\n    test 150 sphericalTrigonometry.Cartesian.intersections2: 36.109987°N, 090.95367°W\n    test 151 sphericalTrigonometry.Cartesian.intersections2: [-0.032779, -0.784769, 0.61892]\n    test 152 sphericalTrigonometry.Cartesian.intersections2: 38.237342°N, 092.391779°W\n    test 153 sphericalTrigonometry.Cartesian.intersections2: [0.025768, -0.798347, 0.601646]\n    test 154 sphericalTrigonometry.Cartesian.intersections2: 36.987868°N, 088.151309°W\n\n    2 tests skipped (4): No module named 'numpy': required by vector2d._numpy\n    test 155 vector3d.intersections2: (-0.0035, -0.791926, 0.610589)\n    test 156 vector3d.intersections2: 0.0312613\n    test 157 vector3d.intersections2: (-0.021973, -0.766467, 0.0)\n    test 158 vector3d.intersections2: (0.027459, -0.797488, 0.0)\n\n    test 159 xyz2rtp: 37.417, 36.699, 63.435\n    test 160 xyz2rtp: <class 'pygeodesy.cartesianBase.RadiusThetaPhi3Tuple'>\n    test 161 rtp2xyz: 10.0, 20.0, 30.0\n    test 162 rtp2xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 163 toCartesian: Cartesian(10.0, 20.0, 30.0)\n    test 164 toRtp: Test(r=37.416574, theta=36.699225, phi=63.434949)\n\n    test 165 destinationXyz: Tuple(x=10.175954, y=20.351908, z=32.201182, lat=54.754059, lon=63.434949, height=-6370969.342158, C=2, M=None, datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84))\n    test 166 destinationXyz: Cartesian(10.176, 20.352, 32.201)\n\n    testCartesian(pygeodesy.ellipsoidalNvector, 25.05.12)\n    test 167 Cartesian0: [3980581, 97, 4966825]\n    test 168 Cartesian4: [3980581.0, 97.0, 4966825.0]\n    test 169 isEllipsoidal: True\n    test 170 isSpherical: False\n    test 171 copy(<class 'type'>): (<class 'pygeodesy.ellipsoidalNvector.Cartesian'>, True)\n    test 172 Cartesian.copy(): (<class 'pygeodesy.ellipsoidalNvector.Cartesian'>, True)\n    test 173 convertDatum: [3980581.0, 97.0, 4966825.0]\n# imported pygeodesy.basics into errors.py line 715\n    test 174 __matmul__: [3980580.124, 107.691, 4966819.407]\n    test 175 __matmul__: [3980580.124, 107.691, 4966819.407]\n    test 176 __matmul__: [3980580.998, 97.0, 4966824.998]\n# lazily imported pygeodesy.triaxials by lazily.py line 529\n    test 177 height: 0.242887\n    test 178 height4: (3980580.8, 97.0, 4966824.8, 0.2)\n    test 179 height4: [3980580.8, 97.0, 4966824.8]\n    test 180 height3: (3980581.0, 97.0, 4966825.0)\n    test 181 Nvector: Nvector(0.62282, 0.00002, 0.78237, +0.24)\n    test 182 Nvector3: (0.623, 0.0, 0.782, +0.24)\n    test 183 Nvector6: (0.622818, 0.000015, 0.782367, +0.24)\n    test 184 LatLon: 50.0379°N, 008.5622°E, +0.00m  FAILED, KNOWN, expected 50.0379°N, 008.5622°E\n    test 185 LatLon: 51.47°N, 000.4543°E, -0.00m  FAILED, KNOWN, expected 51.47°N, 000.4543°E\n    test 186 LatLon: 40.633365°N, 073.783328°W\n    test 187 LatLon: 33.95°N, 118.4°W\n    test 188 LatLon: 41.32°S, 174.81°E, +0.00m  FAILED, KNOWN, expected 41.32°S, 174.81°E\n    test 189 LatLon: 40.96°N, 005.5°E, -0.00m  FAILED, KNOWN, expected 40.96°N, 005.5°E\n    test 190 LatLon: 40.1°N, 116.6°E, -0.00m  FAILED, KNOWN, expected 40.1°N, 116.6°E\n    test 191 LatLon: 37.6°N, 122.4°W\n    test 192 copy: True\n    test 193 __eq__: True\n    test 194 __ne__: False\n    test 195 Cartesian: <class 'pygeodesy.ellipsoidalNvector.Cartesian'>\n    test 196 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 197 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 198 latlonheightdatum: <class 'pygeodesy.namedTuples.LatLon4Tuple'>\n    test 199 height4: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 200 isequalTo: <class 'bool'>\n    test 201 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 202 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 203 philamheightdatum: <class 'pygeodesy.namedTuples.PhiLam4Tuple'>\n    test 204 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 205 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 206 toEcef: <class 'pygeodesy.ecef.Ecef9Tuple'>\n    test 207 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 208 toLatLon: <class 'pygeodesy.ellipsoidalNvector.LatLon'>\n    test 209 toLLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 210 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 211 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 212 toNvector: <class 'pygeodesy.ellipsoidalNvector.Nvector'>\n    test 213 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 214 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 215 xyz3: <class 'tuple'>\n    test 216 Cartesian: <class 'pygeodesy.cartesianBase.CartesianBase'>\n    test 217 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 218 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 219 latlonheightdatum: <class 'pygeodesy.namedTuples.LatLon4Tuple'>\n    test 220 height4: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 221 isequalTo: <class 'bool'>\n    test 222 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 223 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 224 philamheightdatum: <class 'pygeodesy.namedTuples.PhiLam4Tuple'>\n    test 225 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 226 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 227 toEcef: <class 'pygeodesy.ecef.Ecef9Tuple'>\n    test 228 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 229 toLatLon: <class 'pygeodesy.ecef.Ecef9Tuple'>\n    test 230 toLLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 231 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 232 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 233 toNvector: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 234 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 235 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 236 xyz3: <class 'tuple'>\n    test 237 ellipsoidalNvector.Cartesian.intersections2: 89.998941°N, 090.234036°W\n    test 238 ellipsoidalNvector.Cartesian.intersections2: 89.99892°N, 090.95367°W\n    test 239 ellipsoidalNvector.Cartesian.intersections2: [-0.0035, -0.791926, 0.610589]\n    test 240 ellipsoidalNvector.Cartesian.intersections2: 89.998941°N, 090.253237°W\n    test 241 ellipsoidalNvector.Cartesian.intersections2: 0.0312613\n    test 242 vector3d.intersections2: (-0.0035, -0.791926, 0.610589)\n    test 243 vector3d.intersections2: 0.0312613\n    test 244 vector3d.intersections2: (-0.021973, -0.766467, 0.0)\n    test 245 vector3d.intersections2: (0.027459, -0.797488, 0.0)\n\n    test 246 xyz2rtp: 37.417, 36.699, 63.435\n    test 247 xyz2rtp: <class 'pygeodesy.cartesianBase.RadiusThetaPhi3Tuple'>\n    test 248 rtp2xyz: 10.0, 20.0, 30.0\n    test 249 rtp2xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 250 toCartesian: Cartesian(10.0, 20.0, 30.0)\n    test 251 toRtp: Test(r=37.416574, theta=36.699225, phi=63.434949)\n\n    test 252 destinationXyz: Tuple(x=9.553253, y=19.106505, z=32.000521, lat=89.971452, lon=63.434949, height=-6356720.308402, C=1, M=None, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 253 destinationXyz: Cartesian(9.553, 19.107, 32.001)\n\n    test 254 c.toEnu: [-17553188.505, -3108016.462, 7452592.104]\n    test 255 e.toEnu: [-17553188.505, -3108016.462, 7452592.104]\n\n    testCartesian(pygeodesy.ellipsoidalVincenty, 25.05.26)\n    test 256 Cartesian0: [3980581, 97, 4966825]\n    test 257 Cartesian4: [3980581.0, 97.0, 4966825.0]\n    test 258 isEllipsoidal: True\n    test 259 isSpherical: False\n    test 260 copy(<class 'type'>): (<class 'pygeodesy.ellipsoidalVincenty.Cartesian'>, True)\n    test 261 Cartesian.copy(): (<class 'pygeodesy.ellipsoidalVincenty.Cartesian'>, True)\n    test 262 convertDatum: [3980581.0, 97.0, 4966825.0]\n    test 263 __matmul__: [3980580.124, 107.691, 4966819.407]\n    test 264 __matmul__: [3980580.124, 107.691, 4966819.407]\n    test 265 __matmul__: [3980580.998, 97.0, 4966824.998]\n    test 266 height: 0.242887\n    test 267 height4: (3980580.8, 97.0, 4966824.8, 0.2)\n    test 268 height4: [3980580.8, 97.0, 4966824.8]\n    test 269 height3: (3980581.0, 97.0, 4966825.0)\n    test 270 Vector4Tuple: 0.622817765, 1.51770114e-05, 0.782366942, 0.242886808\n    test 271 LatLon: 50.0379°N, 008.5622°E, +0.00m  FAILED, KNOWN, expected 50.0379°N, 008.5622°E\n    test 272 LatLon: 51.47°N, 000.4543°E, -0.00m  FAILED, KNOWN, expected 51.47°N, 000.4543°E\n    test 273 LatLon: 40.633365°N, 073.783328°W\n    test 274 LatLon: 33.95°N, 118.4°W\n    test 275 LatLon: 41.32°S, 174.81°E, +0.00m  FAILED, KNOWN, expected 41.32°S, 174.81°E\n    test 276 LatLon: 40.96°N, 005.5°E, -0.00m  FAILED, KNOWN, expected 40.96°N, 005.5°E\n    test 277 LatLon: 40.1°N, 116.6°E, -0.00m  FAILED, KNOWN, expected 40.1°N, 116.6°E\n    test 278 LatLon: 37.6°N, 122.4°W\n    test 279 copy: True\n    test 280 __eq__: True\n    test 281 __ne__: False\n    test 282 Cartesian: <class 'pygeodesy.ellipsoidalVincenty.Cartesian'>\n    test 283 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 284 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 285 latlonheightdatum: <class 'pygeodesy.namedTuples.LatLon4Tuple'>\n    test 286 height4: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 287 isequalTo: <class 'bool'>\n    test 288 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 289 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 290 philamheightdatum: <class 'pygeodesy.namedTuples.PhiLam4Tuple'>\n    test 291 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 292 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 293 toEcef: <class 'pygeodesy.ecef.Ecef9Tuple'>\n    test 294 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 295 toLatLon: <class 'pygeodesy.ellipsoidalVincenty.LatLon'>\n    test 296 toLLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 297 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 298 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 299 toNvector: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 300 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 301 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 302 xyz3: <class 'tuple'>\n    test 303 Cartesian: <class 'pygeodesy.cartesianBase.CartesianBase'>\n    test 304 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 305 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 306 latlonheightdatum: <class 'pygeodesy.namedTuples.LatLon4Tuple'>\n    test 307 height4: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 308 isequalTo: <class 'bool'>\n    test 309 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 310 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 311 philamheightdatum: <class 'pygeodesy.namedTuples.PhiLam4Tuple'>\n    test 312 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 313 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 314 toEcef: <class 'pygeodesy.ecef.Ecef9Tuple'>\n    test 315 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 316 toLatLon: <class 'pygeodesy.ecef.Ecef9Tuple'>\n    test 317 toLLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 318 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 319 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 320 toNvector: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 321 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 322 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 323 xyz3: <class 'tuple'>\n    test 324 ellipsoidalVincenty.Cartesian.intersections2: 89.998941°N, 090.234036°W\n    test 325 ellipsoidalVincenty.Cartesian.intersections2: 89.99892°N, 090.95367°W\n    test 326 ellipsoidalVincenty.Cartesian.intersections2: [-0.0035, -0.791926, 0.610589]\n    test 327 ellipsoidalVincenty.Cartesian.intersections2: 89.998941°N, 090.253237°W\n    test 328 ellipsoidalVincenty.Cartesian.intersections2: 0.0312613\n    test 329 vector3d.intersections2: (-0.0035, -0.791926, 0.610589)\n    test 330 vector3d.intersections2: 0.0312613\n    test 331 vector3d.intersections2: (-0.021973, -0.766467, 0.0)\n    test 332 vector3d.intersections2: (0.027459, -0.797488, 0.0)\n\n    test 333 xyz2rtp: 37.417, 36.699, 63.435\n    test 334 xyz2rtp: <class 'pygeodesy.cartesianBase.RadiusThetaPhi3Tuple'>\n    test 335 rtp2xyz: 10.0, 20.0, 30.0\n    test 336 rtp2xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 337 toCartesian: Cartesian(10.0, 20.0, 30.0)\n    test 338 toRtp: Test(r=37.416574, theta=36.699225, phi=63.434949)\n\n    test 339 destinationXyz: Tuple(x=9.553253, y=19.106505, z=32.000521, lat=89.971452, lon=63.434949, height=-6356720.308402, C=1, M=None, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 340 destinationXyz: Cartesian(9.553, 19.107, 32.001)\n\n    test 341 c.toEnu: [-17553188.505, -3108016.462, 7452592.104]\n    test 342 e.toEnu: [-17553188.505, -3108016.462, 7452592.104]\n# lazily imported pygeodesy.ellipsoidalKarney by testCartesian.py line 221\n\n    testCartesian(pygeodesy.ellipsoidalKarney, 25.05.27)\n    test 343 Cartesian0: [3980581, 97, 4966825]\n    test 344 Cartesian4: [3980581.0, 97.0, 4966825.0]\n    test 345 isEllipsoidal: True\n    test 346 isSpherical: False\n    test 347 copy(<class 'type'>): (<class 'pygeodesy.ellipsoidalKarney.Cartesian'>, True)\n    test 348 Cartesian.copy(): (<class 'pygeodesy.ellipsoidalKarney.Cartesian'>, True)\n    test 349 convertDatum: [3980581.0, 97.0, 4966825.0]\n    test 350 __matmul__: [3980580.124, 107.691, 4966819.407]\n    test 351 __matmul__: [3980580.124, 107.691, 4966819.407]\n    test 352 __matmul__: [3980580.998, 97.0, 4966824.998]\n    test 353 height: 0.242887\n    test 354 height4: (3980580.8, 97.0, 4966824.8, 0.2)\n    test 355 height4: [3980580.8, 97.0, 4966824.8]\n    test 356 height3: (3980581.0, 97.0, 4966825.0)\n    test 357 Vector4Tuple: 0.622817765, 1.51770114e-05, 0.782366942, 0.242886808\n    test 358 LatLon: 50.0379°N, 008.5622°E, +0.00m  FAILED, KNOWN, expected 50.0379°N, 008.5622°E\n    test 359 LatLon: 51.47°N, 000.4543°E\n    test 360 LatLon: 40.633365°N, 073.783328°W\n    test 361 LatLon: 33.95°N, 118.4°W, +0.00m  FAILED, KNOWN, expected 33.95°N, 118.4°W\n    test 362 LatLon: 41.32°S, 174.81°E\n    test 363 LatLon: 40.96°N, 005.5°E\n    test 364 LatLon: 40.1°N, 116.6°E\n    test 365 LatLon: 37.6°N, 122.4°W\n    test 366 copy: True\n    test 367 __eq__: True\n    test 368 __ne__: False\n    test 369 Cartesian: <class 'pygeodesy.ellipsoidalKarney.Cartesian'>\n    test 370 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 371 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 372 latlonheightdatum: <class 'pygeodesy.namedTuples.LatLon4Tuple'>\n    test 373 height4: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 374 isequalTo: <class 'bool'>\n    test 375 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 376 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 377 philamheightdatum: <class 'pygeodesy.namedTuples.PhiLam4Tuple'>\n    test 378 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 379 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 380 toEcef: <class 'pygeodesy.ecef.Ecef9Tuple'>\n    test 381 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 382 toLatLon: <class 'pygeodesy.ellipsoidalKarney.LatLon'>\n    test 383 toLLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 384 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 385 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 386 toNvector: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 387 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 388 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 389 xyz3: <class 'tuple'>\n    test 390 Cartesian: <class 'pygeodesy.cartesianBase.CartesianBase'>\n    test 391 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 392 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 393 latlonheightdatum: <class 'pygeodesy.namedTuples.LatLon4Tuple'>\n    test 394 height4: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 395 isequalTo: <class 'bool'>\n    test 396 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 397 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 398 philamheightdatum: <class 'pygeodesy.namedTuples.PhiLam4Tuple'>\n    test 399 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 400 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 401 toEcef: <class 'pygeodesy.ecef.Ecef9Tuple'>\n    test 402 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 403 toLatLon: <class 'pygeodesy.ecef.Ecef9Tuple'>\n    test 404 toLLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 405 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 406 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 407 toNvector: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 408 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 409 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 410 xyz3: <class 'tuple'>\n    test 411 ellipsoidalKarney.Cartesian.intersections2: 89.998941°N, 090.234036°W\n    test 412 ellipsoidalKarney.Cartesian.intersections2: 89.99892°N, 090.95367°W\n    test 413 ellipsoidalKarney.Cartesian.intersections2: [-0.0035, -0.791926, 0.610589]\n    test 414 ellipsoidalKarney.Cartesian.intersections2: 89.998941°N, 090.253237°W\n    test 415 ellipsoidalKarney.Cartesian.intersections2: 0.0312613\n    test 416 vector3d.intersections2: (-0.0035, -0.791926, 0.610589)\n    test 417 vector3d.intersections2: 0.0312613\n    test 418 vector3d.intersections2: (-0.021973, -0.766467, 0.0)\n    test 419 vector3d.intersections2: (0.027459, -0.797488, 0.0)\n\n    test 420 xyz2rtp: 37.417, 36.699, 63.435\n    test 421 xyz2rtp: <class 'pygeodesy.cartesianBase.RadiusThetaPhi3Tuple'>\n    test 422 rtp2xyz: 10.0, 20.0, 30.0\n    test 423 rtp2xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 424 toCartesian: Cartesian(10.0, 20.0, 30.0)\n    test 425 toRtp: Test(r=37.416574, theta=36.699225, phi=63.434949)\n\n    test 426 destinationXyz: Tuple(x=9.553253, y=19.106506, z=32.000521, lat=89.971452, lon=63.434949, height=-6356720.308402, C=1, M=None, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 427 destinationXyz: Cartesian(9.553, 19.107, 32.001)\n\n    test 428 c.toEnu: [-17553188.505, -3108016.462, 7452592.104]\n    test 429 e.toEnu: [-17553188.505, -3108016.462, 7452592.104]\n\n    testCartesian(pygeodesy.ellipsoidalExact, 25.08.28)\n    test 430 Cartesian0: [3980581, 97, 4966825]\n    test 431 Cartesian4: [3980581.0, 97.0, 4966825.0]\n    test 432 isEllipsoidal: True\n    test 433 isSpherical: False\n    test 434 copy(<class 'type'>): (<class 'pygeodesy.ellipsoidalExact.Cartesian'>, True)\n    test 435 Cartesian.copy(): (<class 'pygeodesy.ellipsoidalExact.Cartesian'>, True)\n    test 436 convertDatum: [3980581.0, 97.0, 4966825.0]\n    test 437 __matmul__: [3980580.124, 107.691, 4966819.407]\n    test 438 __matmul__: [3980580.124, 107.691, 4966819.407]\n    test 439 __matmul__: [3980580.998, 97.0, 4966824.998]\n    test 440 height: 0.242887\n    test 441 height4: (3980580.8, 97.0, 4966824.8, 0.2)\n    test 442 height4: [3980580.8, 97.0, 4966824.8]\n    test 443 height3: (3980581.0, 97.0, 4966825.0)\n    test 444 Vector4Tuple: 0.622817765, 1.51770114e-05, 0.782366942, 0.242886808\n    test 445 LatLon: 50.0379°N, 008.5622°E, +0.00m  FAILED, KNOWN, expected 50.0379°N, 008.5622°E\n    test 446 LatLon: 51.47°N, 000.4543°E\n    test 447 LatLon: 40.633365°N, 073.783328°W\n    test 448 LatLon: 33.95°N, 118.4°W, +0.00m  FAILED, KNOWN, expected 33.95°N, 118.4°W\n    test 449 LatLon: 41.32°S, 174.81°E\n    test 450 LatLon: 40.96°N, 005.5°E\n    test 451 LatLon: 40.1°N, 116.6°E\n    test 452 LatLon: 37.6°N, 122.4°W\n    test 453 copy: True\n    test 454 __eq__: True\n    test 455 __ne__: False\n    test 456 Cartesian: <class 'pygeodesy.ellipsoidalExact.Cartesian'>\n    test 457 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 458 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 459 latlonheightdatum: <class 'pygeodesy.namedTuples.LatLon4Tuple'>\n    test 460 height4: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 461 isequalTo: <class 'bool'>\n    test 462 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 463 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 464 philamheightdatum: <class 'pygeodesy.namedTuples.PhiLam4Tuple'>\n    test 465 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 466 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 467 toEcef: <class 'pygeodesy.ecef.Ecef9Tuple'>\n    test 468 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 469 toLatLon: <class 'pygeodesy.ellipsoidalExact.LatLon'>\n    test 470 toLLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 471 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 472 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 473 toNvector: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 474 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 475 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 476 xyz3: <class 'tuple'>\n    test 477 Cartesian: <class 'pygeodesy.cartesianBase.CartesianBase'>\n    test 478 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 479 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 480 latlonheightdatum: <class 'pygeodesy.namedTuples.LatLon4Tuple'>\n    test 481 height4: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 482 isequalTo: <class 'bool'>\n    test 483 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 484 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 485 philamheightdatum: <class 'pygeodesy.namedTuples.PhiLam4Tuple'>\n    test 486 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 487 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 488 toEcef: <class 'pygeodesy.ecef.Ecef9Tuple'>\n    test 489 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 490 toLatLon: <class 'pygeodesy.ecef.Ecef9Tuple'>\n    test 491 toLLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 492 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 493 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 494 toNvector: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 495 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 496 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 497 xyz3: <class 'tuple'>\n    test 498 ellipsoidalExact.Cartesian.intersections2: 89.998941°N, 090.234036°W\n    test 499 ellipsoidalExact.Cartesian.intersections2: 89.99892°N, 090.95367°W\n    test 500 ellipsoidalExact.Cartesian.intersections2: [-0.0035, -0.791926, 0.610589]\n    test 501 ellipsoidalExact.Cartesian.intersections2: 89.998941°N, 090.253237°W\n    test 502 ellipsoidalExact.Cartesian.intersections2: 0.0312613\n    test 503 vector3d.intersections2: (-0.0035, -0.791926, 0.610589)\n    test 504 vector3d.intersections2: 0.0312613\n    test 505 vector3d.intersections2: (-0.021973, -0.766467, 0.0)\n    test 506 vector3d.intersections2: (0.027459, -0.797488, 0.0)\n\n    test 507 xyz2rtp: 37.417, 36.699, 63.435\n    test 508 xyz2rtp: <class 'pygeodesy.cartesianBase.RadiusThetaPhi3Tuple'>\n    test 509 rtp2xyz: 10.0, 20.0, 30.0\n    test 510 rtp2xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 511 toCartesian: Cartesian(10.0, 20.0, 30.0)\n    test 512 toRtp: Test(r=37.416574, theta=36.699225, phi=63.434949)\n\n    test 513 destinationXyz: Tuple(x=9.553253, y=19.106506, z=32.000521, lat=89.971452, lon=63.434949, height=-6356720.308402, C=1, M=None, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 514 destinationXyz: Cartesian(9.553, 19.107, 32.001)\n\n    test 515 c.toEnu: [-17553188.505, -3108016.462, 7452592.104]\n    test 516 e.toEnu: [-17553188.505, -3108016.462, 7452592.104]\n\n    30 of 516 testCartesian.py tests (5.8%) FAILED, incl. 18 KNOWN plus 12 DeprecationWarnings, 4 skipped (pygeodesy 26.3.26 Python 3.14.3 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 38.724 ms\nrunning /Library/Framewo....n3.14 -W default ~/PyGeodesy/test/testClasses.py\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.itemsorted from .basics by testClasses.py line 13\n# lazily imported pygeodesy.Geodesic from .geodesicw by testClasses.py line 13\n# lazily imported pygeodesy.GeodesicLine from .geodesicw by testClasses.py line 13\n# lazily imported pygeodesy.Geohashed from .geohash by testClasses.py line 13\n# lazily imported pygeodesy.Property from .props by testClasses.py line 13\n# lazily imported pygeodesy.Property_RO from .props by testClasses.py line 13\n# lazily imported pygeodesy.property_ROnce from .props by testClasses.py line 13\n# lazily imported pygeodesy.property_ROver from .props by testClasses.py line 13\n# lazily imported pygeodesy.SciPyWarning from .errors by testClasses.py line 13\n# lazily imported pygeodesy.Str_ from .interns by testClasses.py line 13\n# lazily imported pygeodesy.ellipsoidalExact by testClasses.py line 83\n# lazily imported pygeodesy.ellipsoidalKarney by testClasses.py line 83\n# lazily imported pygeodesy.ellipsoidalNvector by testClasses.py line 83\n# lazily imported pygeodesy.ellipsoidalVincenty by testClasses.py line 83\n# lazily imported pygeodesy.sphericalNvector by testClasses.py line 83\n# lazily imported pygeodesy.sphericalTrigonometry by testClasses.py line 83\n\n    testing testClasses.py 24.07.29 isLazy=3\n\n    testCartesianAttrs(24.07.29)\n    test 1 angleTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 2 apply() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 3 attrs() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 4 bearing() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 5 bools() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 6 cassini() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 7 circin6() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 8 circum3() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 9 circum4_() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 10 classname Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 11 classnaming _NamedProperty: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 12 classof() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 13 cmp() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 14 collins() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 15 collins5() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 16 convertDatum() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 17 convertRefFrame() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 18 copy() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 19 cross() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 20 crosserrors _NamedProperty: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 21 datum _NamedProperty: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 22 destinationXyz() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 23 dividedBy() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 24 dividedBy_() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 25 dot() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 26 dup() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 27 Ecef property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 28 Ecef property_ROver: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 29 ellipsoidalCartesian property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 30 epoch _NamedProperty: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 31 equals() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 32 equirectangular() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 33 euclid Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 34 fabs() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 35 floats() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 36 floorDividedBy() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 37 floorDividedBy_() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 38 hartzell() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 39 height Property: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 40 height3() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 41 height4() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 42 homogeneous property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 43 intermediateTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 44 intersections2() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 45 ints() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 46 iscolinearWith() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 47 isconjugateTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 48 isEllipsoidal Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 49 isequalTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 50 isSpherical Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 51 iteration property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 52 latlon Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 53 latlonheight Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 54 latlonheightdatum Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 55 length Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 56 length2 Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 57 meeus2() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 58 methodname() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 59 minus() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 60 minus_() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 61 name _NamedProperty: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 62 named Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 63 named2 Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 64 named3 Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 65 named4 Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 66 nearestOn() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 67 nearestOn6() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 68 negate() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 69 others() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 70 parse() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 71 philam Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 72 philamheight Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 73 philamheightdatum Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 74 pierlot() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 75 pierlotx() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 76 plus() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 77 plus_() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 78 pow() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 79 radii11() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 80 reframe _NamedProperty: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 81 rename() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 82 renamed() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 83 Roc2() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 84 rotate() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 85 rotateAround() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 86 sizeof property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 87 soddy4() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 88 sphericalCartesian property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 89 sum() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 90 tienstra() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 91 tienstra7() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 92 times() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 93 times_() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 94 to2ab() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 95 to2ll() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 96 to3llh() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 97 to3xyz() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 98 toAer() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 99 toCartesian() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 100 toDatum() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 101 toEcef() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 102 toEnu() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 103 toLatLon() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 104 toLocal() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 105 toLtp() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 106 toNed() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 107 toNvector() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 108 toRefFrame() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 109 toRepr() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 110 toRtp() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 111 toStr() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 112 toStr2() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 113 toTransform() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 114 toTransforms_() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 115 toVector() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 116 toXyz() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 117 trilaterate2d2() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 118 trilaterate3d2() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 119 typename property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 120 unit() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 121 x Property: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 122 x2y2z2 Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 123 x2y2z23 property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 124 xyz Property: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 125 xyz3 property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 126 y Property: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 127 z Property: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n\n    testCartesianMro(24.07.29)\n    test 128 pygeodesy.sphericalNvector: pygeodesy.sphericalNvector.Cartesian, pygeodesy.sphericalBase.CartesianSphericalBase, pygeodesy.cartesianBase.CartesianBase, pygeodesy.vector3d.Vector3d, pygeodesy.vector3dBase.Vector3dBase, pygeodesy.named._NamedBase, pygeodesy.ecefLocals._EcefLocal, pygeodesy.named._Named\n    test 129 pygeodesy.sphericalTrigonometry: pygeodesy.sphericalTrigonometry.Cartesian, pygeodesy.sphericalBase.CartesianSphericalBase, pygeodesy.cartesianBase.CartesianBase, pygeodesy.vector3d.Vector3d, pygeodesy.vector3dBase.Vector3dBase, pygeodesy.named._NamedBase, pygeodesy.ecefLocals._EcefLocal, pygeodesy.named._Named\n    test 130 pygeodesy.ellipsoidalNvector: pygeodesy.ellipsoidalNvector.Cartesian, pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase, pygeodesy.cartesianBase.CartesianBase, pygeodesy.vector3d.Vector3d, pygeodesy.vector3dBase.Vector3dBase, pygeodesy.named._NamedBase, pygeodesy.ecefLocals._EcefLocal, pygeodesy.named._Named\n    test 131 pygeodesy.ellipsoidalVincenty: pygeodesy.ellipsoidalVincenty.Cartesian, pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase, pygeodesy.cartesianBase.CartesianBase, pygeodesy.vector3d.Vector3d, pygeodesy.vector3dBase.Vector3dBase, pygeodesy.named._NamedBase, pygeodesy.ecefLocals._EcefLocal, pygeodesy.named._Named\n    test 132 pygeodesy.ellipsoidalKarney: pygeodesy.ellipsoidalKarney.Cartesian, pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase, pygeodesy.cartesianBase.CartesianBase, pygeodesy.vector3d.Vector3d, pygeodesy.vector3dBase.Vector3dBase, pygeodesy.named._NamedBase, pygeodesy.ecefLocals._EcefLocal, pygeodesy.named._Named\n    test 133 pygeodesy.ellipsoidalExact: pygeodesy.ellipsoidalExact.Cartesian, pygeodesy.ellipsoidalBase.CartesianEllipsoidalBase, pygeodesy.cartesianBase.CartesianBase, pygeodesy.vector3d.Vector3d, pygeodesy.vector3dBase.Vector3dBase, pygeodesy.named._NamedBase, pygeodesy.ecefLocals._EcefLocal, pygeodesy.named._Named\n\n    testLatLonAttrs(24.07.29)\n    test 134 alongTrackDistanceTo() method: pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 135 antipode() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 136 attrs() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 137 bearingTo() method: pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 138 bearingTo2() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 139 bounds() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 140 boundsOf() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 141 chordTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 142 circin6() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 143 circum3() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 144 circum4_() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 145 classname Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 146 classnaming _NamedProperty: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 147 classof() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 148 clipid property: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 149 compassAngle() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 150 compassAngleTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 151 convergence _Deprecated_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 152 convertDatum() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 153 convertRefFrame() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 154 copy() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 155 cosineAndoyerLambertTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 156 cosineForsytheAndoyerLambertTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 157 cosineLawTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 158 crossingParallels() method: pygeodesy.sphericalTrigonometry\n    test 159 crossTrackDistanceTo() method: pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 160 datum _NamedProperty: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 161 deltaTo() method: pygeodesy.ellipsoidalNvector\n    test 162 destination() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 163 destination2() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalVincenty\n    test 164 destinationNed() method: pygeodesy.ellipsoidalNvector\n    test 165 destinationXyz() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 166 distanceTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 167 distanceTo2() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 168 distanceTo3() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalVincenty\n    test 169 dup() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 170 Ecef property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 171 Ecef property_ROver: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 172 elevation2() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 173 ellipsoid() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 174 ellipsoidalLatLon property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 175 ellipsoids() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 176 epoch _NamedProperty: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 177 epsilon _NamedProperty: pygeodesy.ellipsoidalVincenty\n    test 178 equals() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 179 equals3() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 180 Equidistant Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 181 equirectangularTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 182 euclideanTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 183 finalBearingOn() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalVincenty\n    test 184 finalBearingTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 185 flatLocalTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 186 flatPolarTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 187 gamma property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 188 geodesic property_RO: pygeodesy.ellipsoidalVincenty\n    test 189 geodesic Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney\n    test 190 geodesicx Property_RO: pygeodesy.ellipsoidalExact\n    test 191 geoidHeight2() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 192 greatCircle() method: pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 193 greatCircleTo() method: pygeodesy.sphericalNvector\n    test 194 hartzell() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 195 haversineTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 196 height Property: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 197 height4() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 198 heightStr() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 199 hubenyTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 200 initialBearingTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 201 intermediateChordTo() method: pygeodesy.sphericalNvector\n    test 202 intermediateTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 203 intersecant2() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 204 intersection() method: pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 205 intersection2() method: pygeodesy.sphericalNvector\n    test 206 intersection3() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 207 intersections2() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 208 isantipode() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 209 isantipodeTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 210 isEllipsoidal Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 211 isEnclosedBy() method: pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 212 isenclosedBy() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 213 isequalTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 214 isequalTo3() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 215 isnormal Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 216 isSpherical Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 217 isWithin() method: pygeodesy.sphericalNvector\n    test 218 iswithin() method: pygeodesy.sphericalNvector\n    test 219 iteration property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 220 iterations _NamedProperty: pygeodesy.ellipsoidalVincenty\n    test 221 lam Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 222 lat Property: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 223 latlon Property: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 224 latlon2() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 225 latlon2round() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 226 latlon_() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 227 latlonheight Property: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 228 lon Property: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 229 maxLat() method: pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 230 methodname() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 231 midpointTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 232 minLat() method: pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 233 name _NamedProperty: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 234 named Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 235 named2 Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 236 named3 Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 237 named4 Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 238 napieradius _NamedProperty: pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 239 nearestOn() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 240 nearestOn2() method: pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 241 nearestOn3() method: pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 242 nearestOn6() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 243 nearestOn8() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalVincenty\n    test 244 nearestTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 245 normal() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 246 others() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 247 parse() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 248 phi Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 249 philam Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 250 philam2() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 251 philamheight Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 252 plumbTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalVincenty\n    test 253 points() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 254 points2() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 255 PointsIter() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 256 radii11() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 257 reframe _NamedProperty: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 258 rename() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 259 renamed() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 260 rhumbAzimuthTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 261 rhumbBearingTo() method: pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 262 rhumbDestination() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 263 rhumbDistanceTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 264 rhumbIntersecant2() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 265 rhumbLine() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 266 rhumbMidpointTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 267 scale Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 268 sizeof property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 269 sphericalLatLon property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 270 thomasTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 271 to2ab() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 272 to3llh() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 273 to3xyz() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 274 toAer() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 275 toCartesian() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 276 toCss() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 277 toDatum() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 278 toEcef() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 279 toEnu() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 280 toEtm() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 281 toLcc() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 282 toLocal() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 283 toLtp() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 284 toMgrs() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 285 toNed() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 286 toNormal() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 287 toNvector() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 288 toOsgr() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 289 toRefFrame() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 290 toRepr() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 291 toStr() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 292 toStr2() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 293 toTransform() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 294 toUps() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 295 toUtm() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 296 toUtmUps() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty\n    test 297 toVector() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 298 toVector3d() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 299 toWm() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 300 toXyz() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 301 triangle7() method: pygeodesy.sphericalTrigonometry\n    test 302 triangulate() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 303 trilaterate() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 304 trilaterate5() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 305 typename property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 306 vincentysTo() method: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 307 xyz property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 308 xyz3 property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n    test 309 xyzh Property_RO: pygeodesy.ellipsoidalExact, pygeodesy.ellipsoidalKarney, pygeodesy.ellipsoidalNvector, pygeodesy.ellipsoidalVincenty, pygeodesy.sphericalNvector, pygeodesy.sphericalTrigonometry\n\n    testLatLonMro(24.07.29)\n    test 310 pygeodesy.sphericalNvector: pygeodesy.sphericalNvector.LatLon, pygeodesy.nvectorBase.LatLonNvectorBase, pygeodesy.sphericalBase.LatLonSphericalBase, pygeodesy.latlonBase.LatLonBase, pygeodesy.named._NamedBase, pygeodesy.ecefLocals._EcefLocal, pygeodesy.named._Named\n    test 311 pygeodesy.sphericalTrigonometry: pygeodesy.sphericalTrigonometry.LatLon, pygeodesy.sphericalBase.LatLonSphericalBase, pygeodesy.latlonBase.LatLonBase, pygeodesy.named._NamedBase, pygeodesy.ecefLocals._EcefLocal, pygeodesy.named._Named\n    test 312 pygeodesy.ellipsoidalNvector: pygeodesy.ellipsoidalNvector.LatLon, pygeodesy.nvectorBase.LatLonNvectorBase, pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase, pygeodesy.latlonBase.LatLonBase, pygeodesy.named._NamedBase, pygeodesy.ecefLocals._EcefLocal, pygeodesy.named._Named\n    test 313 pygeodesy.ellipsoidalVincenty: pygeodesy.ellipsoidalVincenty.LatLon, pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI, pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase, pygeodesy.latlonBase.LatLonBase, pygeodesy.named._NamedBase, pygeodesy.ecefLocals._EcefLocal, pygeodesy.named._Named\n    test 314 pygeodesy.ellipsoidalKarney: pygeodesy.ellipsoidalKarney.LatLon, pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI, pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase, pygeodesy.latlonBase.LatLonBase, pygeodesy.named._NamedBase, pygeodesy.ecefLocals._EcefLocal, pygeodesy.named._Named\n    test 315 pygeodesy.ellipsoidalExact: pygeodesy.ellipsoidalExact.LatLon, pygeodesy.ellipsoidalBaseDI.LatLonEllipsoidalBaseDI, pygeodesy.ellipsoidalBase.LatLonEllipsoidalBase, pygeodesy.latlonBase.LatLonBase, pygeodesy.named._NamedBase, pygeodesy.ecefLocals._EcefLocal, pygeodesy.named._Named\n\n    testNvectorAttrs(24.07.29)\n    test 316 angleTo() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 317 apply() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 318 attrs() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 319 bearing() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 320 bools() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 321 circin6() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 322 circum3() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 323 circum4_() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 324 classname Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 325 classnaming _NamedProperty: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 326 classof() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 327 cmp() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 328 copy() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 329 cross() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 330 crosserrors _NamedProperty: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 331 datum Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 332 dividedBy() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 333 dividedBy_() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 334 dot() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 335 dup() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 336 Ecef property_ROnce: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 337 ellipsoidalNvector property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 338 equals() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 339 equirectangular() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 340 euclid Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 341 fabs() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 342 floats() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 343 floorDividedBy() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 344 floorDividedBy_() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 345 greatCircle() method: pygeodesy.sphericalNvector\n    test 346 H _NamedProperty: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 347 h _NamedProperty: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 348 homogeneous property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 349 hStr() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 350 intermediateTo() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 351 ints() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 352 iscolinearWith() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 353 isconjugateTo() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 354 isEllipsoidal Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 355 isequalTo() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 356 isSpherical Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 357 iteration property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 358 lam Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 359 lat Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 360 latlon Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 361 latlonheight Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 362 latlonheightdatum Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 363 length Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 364 length2 Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 365 lon Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 366 meeus2() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 367 methodname() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 368 minus() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 369 minus_() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 370 name _NamedProperty: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 371 named Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 372 named2 Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 373 named3 Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 374 named4 Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 375 nearestOn() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 376 nearestOn6() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 377 negate() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 378 others() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 379 parse() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 380 phi Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 381 philam Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 382 philamheight Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 383 philamheightdatum Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 384 plus() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 385 plus_() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 386 pow() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 387 radii11() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 388 rename() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 389 renamed() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 390 rotate() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 391 rotateAround() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 392 sizeof property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 393 soddy4() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 394 sphericalNvector property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 395 sum() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 396 times() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 397 times_() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 398 to2ab() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 399 to2ll() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 400 to3abh() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 401 to3llh() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 402 to3xyz() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 403 to4xyzh() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 404 toCartesian() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 405 toLatLon() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 406 toRepr() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 407 toStr() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 408 toStr2() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 409 toVector3d() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 410 trilaterate2d2() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 411 trilaterate3d2() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 412 typename property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 413 unit() method: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 414 x Property: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 415 x2y2z2 Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 416 x2y2z23 property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 417 xyz Property: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 418 xyz3 property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 419 xyzh Property_RO: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 420 y Property: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n    test 421 z Property: pygeodesy.ellipsoidalNvector, pygeodesy.sphericalNvector\n\n    testNvectorMro(24.07.29)\n    test 422 pygeodesy.sphericalNvector: pygeodesy.sphericalNvector.Nvector, pygeodesy.nvectorBase.NvectorBase, pygeodesy.vector3d.Vector3d, pygeodesy.vector3dBase.Vector3dBase, pygeodesy.named._NamedBase, pygeodesy.named._Named\n    test 423 pygeodesy.ellipsoidalNvector: pygeodesy.ellipsoidalNvector.Nvector, pygeodesy.nvectorBase.NvectorBase, pygeodesy.vector3d.Vector3d, pygeodesy.vector3dBase.Vector3dBase, pygeodesy.named._NamedBase, pygeodesy.named._Named\n\n    testVector3dAttrs(24.07.29)\n    test 424 angleTo() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 425 apply() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 426 attrs() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 427 bearing() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 428 bools() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 429 circin6() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 430 circum3() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 431 circum4_() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 432 classname Property_RO: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 433 classnaming _NamedProperty: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 434 classof() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 435 cmp() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 436 copy() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 437 cross() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 438 crosserrors _NamedProperty: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 439 dividedBy() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 440 dividedBy_() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 441 dot() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 442 dup() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 443 equals() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 444 equirectangular() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 445 euclid Property_RO: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 446 fabs() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 447 floats() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 448 floorDividedBy() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 449 floorDividedBy_() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 450 homogeneous property_RO: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 451 intermediateTo() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 452 ints() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 453 iscolinearWith() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 454 isconjugateTo() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 455 isequalTo() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 456 iteration property_RO: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 457 length Property_RO: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 458 length2 Property_RO: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 459 meeus2() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 460 methodname() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 461 minus() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 462 minus_() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 463 name _NamedProperty: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 464 named Property_RO: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 465 named2 Property_RO: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 466 named3 Property_RO: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 467 named4 Property_RO: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 468 nearestOn() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 469 nearestOn6() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 470 negate() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 471 others() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 472 parse() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 473 plus() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 474 plus_() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 475 pow() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 476 radii11() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 477 rename() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 478 renamed() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 479 rotate() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 480 rotateAround() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 481 sizeof property_RO: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 482 soddy4() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 483 sum() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 484 times() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 485 times_() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 486 to3xyz() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 487 toCartesian() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 488 toRepr() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 489 toStr() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 490 toStr2() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 491 trilaterate2d2() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 492 trilaterate3d2() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 493 typename property_RO: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 494 unit() method: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 495 x Property: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 496 x2y2z2 Property_RO: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 497 x2y2z23 property_RO: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 498 xyz Property: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 499 xyz3 property_RO: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 500 y Property: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n    test 501 z Property: pygeodesy.nvectorBase, pygeodesy.sphericalTrigonometry, pygeodesy.vector3d\n\n    testVector3dMro(24.07.29)\n    test 502 pygeodesy.nvectorBase: pygeodesy.vector3d.Vector3d, pygeodesy.vector3dBase.Vector3dBase, pygeodesy.named._NamedBase, pygeodesy.named._Named\n    test 503 pygeodesy.vector3d: pygeodesy.vector3d.Vector3d, pygeodesy.vector3dBase.Vector3dBase, pygeodesy.named._NamedBase, pygeodesy.named._Named\n    test 504 pygeodesy.sphericalTrigonometry: pygeodesy.vector3d.Vector3d, pygeodesy.vector3dBase.Vector3dBase, pygeodesy.named._NamedBase, pygeodesy.named._Named\n\n    testCopyAttr(24.07.29)\n\n    all 504 testClasses.py tests passed (pygeodesy 26.3.26 Python 3.14.3 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 2.073 ms\nrunning /Library/Framewo....n3.14 -W default ~/PyGeodesy/test/testClipy.py\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.F_D from .dms by testClipy.py line 11\n# lazily imported pygeodesy.F__F_ from .dms by testClipy.py line 11\n# lazily imported pygeodesy.boundsOf from .points by testClipy.py line 11\n# lazily imported pygeodesy.clipCS4 from .clipy by testClipy.py line 11\n# lazily imported pygeodesy.ClipError from .errors by testClipy.py line 11\n# lazily imported pygeodesy.clipFHP4 from .clipy by testClipy.py line 11\n# lazily imported pygeodesy.ClipFHP4Tuple from .clipy by testClipy.py line 11\n# lazily imported pygeodesy.clipGH4 from .clipy by testClipy.py line 11\n# lazily imported pygeodesy.clipLB6 from .clipy by testClipy.py line 11\n# lazily imported pygeodesy.clipSH from .clipy by testClipy.py line 11\n# lazily imported pygeodesy.clipSH3 from .clipy by testClipy.py line 11\n# lazily imported pygeodesy.ellipsoidalNvector by testClipy.py line 288\n# lazily imported pygeodesy.ellipsoidalVincenty by testClipy.py line 288\n# lazily imported pygeodesy.sphericalNvector by testClipy.py line 288\n# lazily imported pygeodesy.sphericalTrigonometry by testClipy.py line 288\n\n    testing testClipy.py 23.03.27 isLazy=3\n\n    testing(pygeodesy.ellipsoidalNvector, 25.05.12)\n    test 1 clipCS4.p1: 07.5°N, 010.0°E\n    test 2 clipCS4.p2: 04.5°N, 000.0°E\n    test 3 clipCS4.i: 3\n    test 4 clipCS4.j: 0\n    test 5 clipCS4.p1: 05.0°N, 005.0°E\n    test 6 clipCS4.p2: 05.0°N, 005.0°E\n    test 7 clipCS4.i: 1\n    test 8 clipCS4.j: 2\n    test 9 clipLB6.p1: 07.5°N, 010.0°E\n    test 10 clipLB6.p2: 04.5°N, 000.0°E\n    test 11 clipLB6.i: 3\n    test 12 clipLB6.fi: 3.25\n    test 13 clipLB6.fi: 07.5°N, 010.0°E\n    test 14 clipLB6.fj: 3.75\n    test 15 clipLB6.fj: 04.5°N, 000.0°E\n    test 16 clipLB6.j: 0\n    test 17 clipLB6.fin: 4\n    test 18 clipLB6.p1: 05.0°N, 005.0°E\n    test 19 clipLB6.p2: 05.0°N, 005.0°E\n    test 20 clipLB6.i: 1\n    test 21 clipLB6.fi: 1.00\n    test 22 clipLB6.fi: 05.0°N, 005.0°E\n    test 23 clipLB6.fj: 2.00\n    test 24 clipLB6.fj: 05.0°N, 005.0°E\n    test 25 clipLB6.j: 2\n    test 26 clipLB6.fin: 4\n# lazily imported pygeodesy.booleans by iters.py line 503\n    test 27 clipCS4.p1: 60.0°N, 123.333333°E\n    test 28 clipCS4.p2: 62.857143°N, 130.0°E\n    test 29 clipCS4.i: 0\n    test 30 clipCS4.j: 1\n    test 31 clipLB6.p1: 60.0°N, 123.333333°E\n    test 32 clipLB6.p2: 62.857143°N, 130.0°E\n    test 33 clipLB6.i: 0\n    test 34 clipLB6.fi: 0.666667\n    test 35 clipLB6.fi: 60.0°N, 123.333333°E\n    test 36 clipLB6.fj: 0.714286\n    test 37 clipLB6.fj: 62.857143°N, 130.0°E\n    test 38 clipLB6.j: 1\n    test 39 clipLB6.fin: 0\n    test 40 clipCS4.p1: 17.5°N, 020.0°E\n    test 41 clipCS4.p2: 16.25°N, 015.0°E\n    test 42 clipCS4.i: 2\n    test 43 clipCS4.j: 0\n    test 44 clipLB6.p1: 17.5°N, 020.0°E\n    test 45 clipLB6.p2: 16.25°N, 015.0°E\n    test 46 clipLB6.i: 2\n    test 47 clipLB6.fi: 2.500\n    test 48 clipLB6.fi: 17.5°N, 020.0°E\n    test 49 clipLB6.fj: 2.750\n    test 50 clipLB6.fj: 16.25°N, 015.0°E\n    test 51 clipLB6.j: 0\n    test 52 clipLB6.fin: 3\n# lazily imported pygeodesy.angles by units.py line 633\n    test 53 clipSH1.len: 4\n    test 54 clipSH1.0: 20.0°N, 020.0°E\n    test 55 clipSH1.LL: True\n    test 56 clipSH1.1: 17.5°N, 020.0°E\n    test 57 clipSH1.LL: True\n    test 58 clipSH1.2: 16.25°N, 015.0°E\n    test 59 clipSH1.LL: True\n    test 60 clipSH1.3: 20.0°N, 015.0°E\n    test 61 clipSH1.LL: True\n    test 62 clipSH2.len: 5\n    test 63 clipSH2.0: 18.571°N, 024.286°E\n    test 64 clipSH2.LL: True\n    test 65 clipSH2.1: 16.667°N, 016.667°E\n    test 66 clipSH2.LL: True\n    test 67 clipSH2.2: 20.0°N, 015.0°E\n    test 68 clipSH2.LL: True\n    test 69 clipSH2.3: 25.0°N, 020.0°E\n    test 70 clipSH2.LL: True\n    test 71 clipSH2.4: 22.0°N, 026.0°E\n    test 72 clipSH2.LL: True\n    test 73 clipSH3.len: 2\n    test 74 clipSH3.0: 18.571°N, 024.286°E\n    test 75 clipSH3.LL: True\n    test 76 clipSH3.1: 16.667°N, 016.667°E\n    test 77 clipSH3.LL: True\n    test 78 clipSH3.edge.: True\n    test 79 clipSH3.len: 2\n    test 80 clipSH3.0: 16.667°N, 016.667°E\n    test 81 clipSH3.LL: True\n    test 82 clipSH3.1: 20.0°N, 015.0°E\n    test 83 clipSH3.LL: True\n    test 84 clipSH3.edge.: False\n    test 85 clipSH3.len: 2\n    test 86 clipSH3.0: 20.0°N, 015.0°E\n    test 87 clipSH3.LL: True\n    test 88 clipSH3.1: 25.0°N, 020.0°E\n    test 89 clipSH3.LL: True\n    test 90 clipSH3.edge.: True\n    test 91 clipSH3.len: 2\n    test 92 clipSH3.0: 25.0°N, 020.0°E\n    test 93 clipSH3.LL: True\n    test 94 clipSH3.1: 22.0°N, 026.0°E\n    test 95 clipSH3.LL: True\n    test 96 clipSH3.edge.: True\n    test 97 clipSH3.len: 2\n    test 98 clipSH3.0: 22.0°N, 026.0°E\n    test 99 clipSH3.LL: True\n    test 100 clipSH3.1: 18.571°N, 024.286°E\n    test 101 clipSH3.LL: True\n    test 102 clipSH3.edge.: False\n    test 103 clipSH2.reversed.len: 5\n    test 104 clipSH2.reversed.0: 18.571°N, 024.286°E\n    test 105 clipSH2.reversed.LL: True\n    test 106 clipSH2.reversed.1: 16.667°N, 016.667°E\n    test 107 clipSH2.reversed.LL: True\n    test 108 clipSH2.reversed.2: 20.0°N, 015.0°E\n    test 109 clipSH2.reversed.LL: True\n    test 110 clipSH2.reversed.3: 25.0°N, 020.0°E\n    test 111 clipSH2.reversed.LL: True\n    test 112 clipSH2.reversed.4: 22.0°N, 026.0°E\n    test 113 clipSH2.reversed.LL: True\n    test 114 clipSH3.reversed.len: 2\n    test 115 clipSH3.reversed.0: 18.571°N, 024.286°E\n    test 116 clipSH3.reversed.LL: True\n    test 117 clipSH3.reversed.1: 16.667°N, 016.667°E\n    test 118 clipSH3.reversed.LL: True\n    test 119 clipSH3.edge.reversed.: True\n    test 120 clipSH3.reversed.len: 2\n    test 121 clipSH3.reversed.0: 16.667°N, 016.667°E\n    test 122 clipSH3.reversed.LL: True\n    test 123 clipSH3.reversed.1: 20.0°N, 015.0°E\n    test 124 clipSH3.reversed.LL: True\n    test 125 clipSH3.edge.reversed.: False\n    test 126 clipSH3.reversed.len: 2\n    test 127 clipSH3.reversed.0: 20.0°N, 015.0°E\n    test 128 clipSH3.reversed.LL: True\n    test 129 clipSH3.reversed.1: 25.0°N, 020.0°E\n    test 130 clipSH3.reversed.LL: True\n    test 131 clipSH3.edge.reversed.: True\n    test 132 clipSH3.reversed.len: 2\n    test 133 clipSH3.reversed.0: 25.0°N, 020.0°E\n    test 134 clipSH3.reversed.LL: True\n    test 135 clipSH3.reversed.1: 22.0°N, 026.0°E\n    test 136 clipSH3.reversed.LL: True\n    test 137 clipSH3.edge.reversed.: True\n    test 138 clipSH3.reversed.len: 2\n    test 139 clipSH3.reversed.0: 22.0°N, 026.0°E\n    test 140 clipSH3.reversed.LL: True\n    test 141 clipSH3.reversed.1: 18.571°N, 024.286°E\n    test 142 clipSH3.reversed.LL: True\n    test 143 clipSH3.edge.reversed.: False\n    test 144 clipSH.allout: ()\n    test 145 clipSH3.allout: ()\n    test 146 clipSH.allout.reversed: ()\n    test 147 clipSH3.allout.reversed: ()\n    test 148 clipSH.allin.len: 4\n    test 149 clipSH.allin.0: 20.0°N, 030.0°E\n    test 150 clipSH.allin.LL: True\n    test 151 clipSH.allin.1: 15.0°N, 010.0°E\n    test 152 clipSH.allin.LL: True\n    test 153 clipSH.allin.2: 25.0°N, 020.0°E\n    test 154 clipSH.allin.LL: True\n    test 155 clipSH.allin.3: 20.0°N, 030.0°E\n    test 156 clipSH.allin.LL: True\n    test 157 clipSH3.allin.len: 2\n    test 158 clipSH3.allin.0: 20.0°N, 030.0°E\n    test 159 clipSH3.allin.LL: True\n    test 160 clipSH3.allin.1: 15.0°N, 010.0°E\n    test 161 clipSH3.allin.LL: True\n    test 162 clipSH3.edge.: True\n    test 163 clipSH3.allin.len: 2\n    test 164 clipSH3.allin.0: 15.0°N, 010.0°E\n    test 165 clipSH3.allin.LL: True\n    test 166 clipSH3.allin.1: 25.0°N, 020.0°E\n    test 167 clipSH3.allin.LL: True\n    test 168 clipSH3.edge.: True\n    test 169 clipSH.allin.reversed.len: 4\n    test 170 clipSH.allin.reversed.0: 20.0°N, 030.0°E\n    test 171 clipSH.allin.reversed.LL: True\n    test 172 clipSH.allin.reversed.1: 15.0°N, 010.0°E\n    test 173 clipSH.allin.reversed.LL: True\n    test 174 clipSH.allin.reversed.2: 25.0°N, 020.0°E\n    test 175 clipSH.allin.reversed.LL: True\n    test 176 clipSH.allin.reversed.3: 20.0°N, 030.0°E\n    test 177 clipSH.allin.reversed.LL: True\n    test 178 clipSH3.allin.reversed.len: 2\n    test 179 clipSH3.allin.reversed.0: 20.0°N, 030.0°E\n    test 180 clipSH3.allin.reversed.LL: True\n    test 181 clipSH3.allin.reversed.1: 15.0°N, 010.0°E\n    test 182 clipSH3.allin.reversed.LL: True\n    test 183 clipSH3.edge.reversed.: True\n    test 184 clipSH3.allin.reversed.len: 2\n    test 185 clipSH3.allin.reversed.0: 15.0°N, 010.0°E\n    test 186 clipSH3.allin.reversed.LL: True\n    test 187 clipSH3.allin.reversed.1: 25.0°N, 020.0°E\n    test 188 clipSH3.allin.reversed.LL: True\n    test 189 clipSH3.edge.reversed.: True\n    test 190 clipSH.warped: clipSH clip region ((LatLon(10°00′00.0″N, 010°00′00.0″E), LatLon(20°00′00.0″N, 020°00′00.0″E), LatLon(10°00′00.0″N, 020°00′00.0″E), LatLon(20°00′00.0″N, 010°00′00.0″E))): not convex\n    test 191 clipSH3.warped: clipSH3 clip region ((LatLon(10°00′00.0″N, 010°00′00.0″E), LatLon(20°00′00.0″N, 020°00′00.0″E), LatLon(10°00′00.0″N, 020°00′00.0″E), LatLon(20°00′00.0″N, 010°00′00.0″E))): not convex\n    test 192 clipSH.warpedreversed.: clipSH clip region ((LatLon(20°00′00.0″N, 010°00′00.0″E), LatLon(10°00′00.0″N, 020°00′00.0″E), LatLon(20°00′00.0″N, 020°00′00.0″E), LatLon(10°00′00.0″N, 010°00′00.0″E))): not convex\n    test 193 clipSH3.warpedreversed.: clipSH3 clip region ((LatLon(20°00′00.0″N, 010°00′00.0″E), LatLon(10°00′00.0″N, 020°00′00.0″E), LatLon(20°00′00.0″N, 020°00′00.0″E), LatLon(10°00′00.0″N, 010°00′00.0″E))): not convex\n    test 194 boundsOf: (10.0, 10.0, 20.0, 20.0)\n    test 195 boundsOf: (15.0, 10.0, 25.0, 30.0)\n    test 196 enclosures: (5.0, 0.0, -5.0, -10.0)\n    test 197 overlap: (15.0, 10.0, 20.0, 20.0)\n    test 198 clipSH4: 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 0.0\n    test 199 clipSH5: 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 0.0\n    test 200 clipSH6: 1.0, 0.5, 2.0, 1.0, 2.0, 0.5\n    test 201 clipSH7: -0.2, 2.0, 0.2, 2.0, 0.5, 0.5, 2.0, 0.2, 2.0, -0.2, 0.5, -0.5, 0.2, -2.0, -0.2, -2.0, -0.5, -0.5, -2.0, -0.2, -2.0, 0.2, -0.5, 0.5\n    test 202 clipSH8: -0.33, 1.33, 0.0, 2.0, 0.33, 1.33, 0.5, 0.5, 0.78, 0.44, 1.18, -0.36, 0.5, -0.5, 0.2, -2.0, -0.2, -2.0, -0.5, -0.5, -1.18, -0.36, -0.78, 0.44, -0.5, 0.5\n    test 203 clipSH9: None\n    test 204 clipSH10: None\n    test 205 clipSH11: None\n    test 206 clipSH12: None\n\n    test 207 clipGH4: (ClipGH4Tuple(lat=5.0, lon=3.571429, height=1.714286, clipid=0), ClipGH4Tuple(lat=7.0, lon=5.0, height=2.0, clipid=0), ClipGH4Tuple(lat=5.0, lon=6.428571, height=2.285714, clipid=0), ClipGH4Tuple(lat=3.0, lon=5.0, height=2.0, clipid=0))\n\n    test 208 clipFHP4: (ClipFHP4Tuple(lat=7.0, lon=5.0, height=2.0, clipid=0), ClipFHP4Tuple(lat=5.0, lon=6.428571, height=2.285714, clipid=0), ClipFHP4Tuple(lat=3.0, lon=5.0, height=2.0, clipid=0), ClipFHP4Tuple(lat=5.0, lon=3.571429, height=1.714286, clipid=0))\n\n    test 209 Fig 8: (ClipFHP4Tuple(lat=4.0, lon=12.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=-1.0, lon=12.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=3.0, lon=8.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=5.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=3.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=2.0, lon=1.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=6.0, lon=3.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=6.0, lon=11.0, height=0.0, clipid=0))\n    test 210 Fig 14: (ClipFHP4Tuple(lat=3.0, lon=3.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=0.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=6.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=6.0, lon=6.0, height=0.0, clipid=1), ClipFHP4Tuple(lat=9.0, lon=3.0, height=0.0, clipid=1), ClipFHP4Tuple(lat=6.0, lon=0.0, height=0.0, clipid=1), ClipFHP4Tuple(lat=3.0, lon=3.0, height=0.0, clipid=1))\n    test 211 Fig 15: (ClipFHP4Tuple(lat=1.0, lon=3.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=4.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=2.0, lon=4.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=2.0, lon=0.0, height=0.0, clipid=1), ClipFHP4Tuple(lat=0.0, lon=0.0, height=0.0, clipid=1), ClipFHP4Tuple(lat=1.0, lon=1.0, height=0.0, clipid=1))\n    test 212 Fig 16: (ClipFHP4Tuple(lat=0.0, lon=0.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=1.0, lon=0.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=2.0, lon=2.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=2.0, height=0.0, clipid=0))\n    test 213 Fig 18: ((-10, -10, 0), (-10, -2, 0), (-8, -2, 0), (-8, -8, 0), (-2, -8, 0), (-2, -10, 0), (2, -10, 1), (2, -8, 1), (0, -8, 1), (0, -10, 1), (10, -6, 2), (8, -6, 2), (8, -8, 2), (10, -8, 2), (10, 8, 3), (8, 8, 3), (8, 6, 3), (10, 6, 3), (-6, 10, 4), (-6, 8, 4), (-4, 8, 4), (-4, 10, 4), (-10, 10, 5), (-10, 8, 5), (-8, 8, 5), (-8, 10, 5), (-10, 4, 6), (-8, 4, 6), (-8, 6, 6), (-10, 6, 6), (-10, 0, 7), (-8, 0, 7), (-8, 2, 7), (-10, 2, 7), (-6, 6, 8), (-4, 6, 8), (-4, 4, 8), (-6, 4, 8), (-6, 0, 9), (-4, 0, 9), (-4, 2, 9), (-6, 2, 9), (-6, -6, 10), (-2, -6, 10), (-2, -4, 10), (-4, -4, 10), (-4, -2, 10), (-6, -2, 10), (2, -6, 11), (2, -4, 11), (0, -4, 11), (0, -6, 11), (12, 8, 12), (20, 8, 12), (20, -8, 12), (12, -8, 12), (12, -6, 12), (18, -6, 12), (18, 6, 12), (12, 6, 12), (12, -4, 13), (14, -4, 13), (14, 4, 13), (12, 4, 13))\n\n    testing(pygeodesy.ellipsoidalVincenty, 25.05.26)\n    test 214 clipCS4.p1: 07.5°N, 010.0°E\n    test 215 clipCS4.p2: 04.5°N, 000.0°E\n    test 216 clipCS4.i: 3\n    test 217 clipCS4.j: 0\n    test 218 clipCS4.p1: 05.0°N, 005.0°E\n    test 219 clipCS4.p2: 05.0°N, 005.0°E\n    test 220 clipCS4.i: 1\n    test 221 clipCS4.j: 2\n    test 222 clipLB6.p1: 07.5°N, 010.0°E\n    test 223 clipLB6.p2: 04.5°N, 000.0°E\n    test 224 clipLB6.i: 3\n    test 225 clipLB6.fi: 3.25\n    test 226 clipLB6.fi: 07.5°N, 010.0°E\n    test 227 clipLB6.fj: 3.75\n    test 228 clipLB6.fj: 04.5°N, 000.0°E\n    test 229 clipLB6.j: 0\n    test 230 clipLB6.fin: 4\n    test 231 clipLB6.p1: 05.0°N, 005.0°E\n    test 232 clipLB6.p2: 05.0°N, 005.0°E\n    test 233 clipLB6.i: 1\n    test 234 clipLB6.fi: 1.00\n    test 235 clipLB6.fi: 05.0°N, 005.0°E\n    test 236 clipLB6.fj: 2.00\n    test 237 clipLB6.fj: 05.0°N, 005.0°E\n    test 238 clipLB6.j: 2\n    test 239 clipLB6.fin: 4\n    test 240 clipCS4.p1: 60.0°N, 123.333333°E\n    test 241 clipCS4.p2: 62.857143°N, 130.0°E\n    test 242 clipCS4.i: 0\n    test 243 clipCS4.j: 1\n    test 244 clipLB6.p1: 60.0°N, 123.333333°E\n    test 245 clipLB6.p2: 62.857143°N, 130.0°E\n    test 246 clipLB6.i: 0\n    test 247 clipLB6.fi: 0.666667\n    test 248 clipLB6.fi: 60.0°N, 123.333333°E\n    test 249 clipLB6.fj: 0.714286\n    test 250 clipLB6.fj: 62.857143°N, 130.0°E\n    test 251 clipLB6.j: 1\n    test 252 clipLB6.fin: 0\n# imported pygeodesy.formy into latlonBase.py line 756\n    test 253 clipCS4.p1: 17.5°N, 020.0°E\n    test 254 clipCS4.p2: 16.25°N, 015.0°E\n    test 255 clipCS4.i: 2\n    test 256 clipCS4.j: 0\n    test 257 clipLB6.p1: 17.5°N, 020.0°E\n    test 258 clipLB6.p2: 16.25°N, 015.0°E\n    test 259 clipLB6.i: 2\n    test 260 clipLB6.fi: 2.500\n    test 261 clipLB6.fi: 17.5°N, 020.0°E\n    test 262 clipLB6.fj: 2.750\n    test 263 clipLB6.fj: 16.25°N, 015.0°E\n    test 264 clipLB6.j: 0\n    test 265 clipLB6.fin: 3\n    test 266 clipSH1.len: 4\n    test 267 clipSH1.0: 20.0°N, 020.0°E\n    test 268 clipSH1.LL: True\n    test 269 clipSH1.1: 17.5°N, 020.0°E\n    test 270 clipSH1.LL: True\n    test 271 clipSH1.2: 16.25°N, 015.0°E\n    test 272 clipSH1.LL: True\n    test 273 clipSH1.3: 20.0°N, 015.0°E\n    test 274 clipSH1.LL: True\n    test 275 clipSH2.len: 5\n    test 276 clipSH2.0: 18.571°N, 024.286°E\n    test 277 clipSH2.LL: True\n    test 278 clipSH2.1: 16.667°N, 016.667°E\n    test 279 clipSH2.LL: True\n    test 280 clipSH2.2: 20.0°N, 015.0°E\n    test 281 clipSH2.LL: True\n    test 282 clipSH2.3: 25.0°N, 020.0°E\n    test 283 clipSH2.LL: True\n    test 284 clipSH2.4: 22.0°N, 026.0°E\n    test 285 clipSH2.LL: True\n    test 286 clipSH3.len: 2\n    test 287 clipSH3.0: 18.571°N, 024.286°E\n    test 288 clipSH3.LL: True\n    test 289 clipSH3.1: 16.667°N, 016.667°E\n    test 290 clipSH3.LL: True\n    test 291 clipSH3.edge.: True\n    test 292 clipSH3.len: 2\n    test 293 clipSH3.0: 16.667°N, 016.667°E\n    test 294 clipSH3.LL: True\n    test 295 clipSH3.1: 20.0°N, 015.0°E\n    test 296 clipSH3.LL: True\n    test 297 clipSH3.edge.: False\n    test 298 clipSH3.len: 2\n    test 299 clipSH3.0: 20.0°N, 015.0°E\n    test 300 clipSH3.LL: True\n    test 301 clipSH3.1: 25.0°N, 020.0°E\n    test 302 clipSH3.LL: True\n    test 303 clipSH3.edge.: True\n    test 304 clipSH3.len: 2\n    test 305 clipSH3.0: 25.0°N, 020.0°E\n    test 306 clipSH3.LL: True\n    test 307 clipSH3.1: 22.0°N, 026.0°E\n    test 308 clipSH3.LL: True\n    test 309 clipSH3.edge.: True\n    test 310 clipSH3.len: 2\n    test 311 clipSH3.0: 22.0°N, 026.0°E\n    test 312 clipSH3.LL: True\n    test 313 clipSH3.1: 18.571°N, 024.286°E\n    test 314 clipSH3.LL: True\n    test 315 clipSH3.edge.: False\n    test 316 clipSH2.reversed.len: 5\n    test 317 clipSH2.reversed.0: 18.571°N, 024.286°E\n    test 318 clipSH2.reversed.LL: True\n    test 319 clipSH2.reversed.1: 16.667°N, 016.667°E\n    test 320 clipSH2.reversed.LL: True\n    test 321 clipSH2.reversed.2: 20.0°N, 015.0°E\n    test 322 clipSH2.reversed.LL: True\n    test 323 clipSH2.reversed.3: 25.0°N, 020.0°E\n    test 324 clipSH2.reversed.LL: True\n    test 325 clipSH2.reversed.4: 22.0°N, 026.0°E\n    test 326 clipSH2.reversed.LL: True\n    test 327 clipSH3.reversed.len: 2\n    test 328 clipSH3.reversed.0: 18.571°N, 024.286°E\n    test 329 clipSH3.reversed.LL: True\n    test 330 clipSH3.reversed.1: 16.667°N, 016.667°E\n    test 331 clipSH3.reversed.LL: True\n    test 332 clipSH3.edge.reversed.: True\n    test 333 clipSH3.reversed.len: 2\n    test 334 clipSH3.reversed.0: 16.667°N, 016.667°E\n    test 335 clipSH3.reversed.LL: True\n    test 336 clipSH3.reversed.1: 20.0°N, 015.0°E\n    test 337 clipSH3.reversed.LL: True\n    test 338 clipSH3.edge.reversed.: False\n    test 339 clipSH3.reversed.len: 2\n    test 340 clipSH3.reversed.0: 20.0°N, 015.0°E\n    test 341 clipSH3.reversed.LL: True\n    test 342 clipSH3.reversed.1: 25.0°N, 020.0°E\n    test 343 clipSH3.reversed.LL: True\n    test 344 clipSH3.edge.reversed.: True\n    test 345 clipSH3.reversed.len: 2\n    test 346 clipSH3.reversed.0: 25.0°N, 020.0°E\n    test 347 clipSH3.reversed.LL: True\n    test 348 clipSH3.reversed.1: 22.0°N, 026.0°E\n    test 349 clipSH3.reversed.LL: True\n    test 350 clipSH3.edge.reversed.: True\n    test 351 clipSH3.reversed.len: 2\n    test 352 clipSH3.reversed.0: 22.0°N, 026.0°E\n    test 353 clipSH3.reversed.LL: True\n    test 354 clipSH3.reversed.1: 18.571°N, 024.286°E\n    test 355 clipSH3.reversed.LL: True\n    test 356 clipSH3.edge.reversed.: False\n    test 357 clipSH.allout: ()\n    test 358 clipSH3.allout: ()\n    test 359 clipSH.allout.reversed: ()\n    test 360 clipSH3.allout.reversed: ()\n    test 361 clipSH.allin.len: 4\n    test 362 clipSH.allin.0: 20.0°N, 030.0°E\n    test 363 clipSH.allin.LL: True\n    test 364 clipSH.allin.1: 15.0°N, 010.0°E\n    test 365 clipSH.allin.LL: True\n    test 366 clipSH.allin.2: 25.0°N, 020.0°E\n    test 367 clipSH.allin.LL: True\n    test 368 clipSH.allin.3: 20.0°N, 030.0°E\n    test 369 clipSH.allin.LL: True\n    test 370 clipSH3.allin.len: 2\n    test 371 clipSH3.allin.0: 20.0°N, 030.0°E\n    test 372 clipSH3.allin.LL: True\n    test 373 clipSH3.allin.1: 15.0°N, 010.0°E\n    test 374 clipSH3.allin.LL: True\n    test 375 clipSH3.edge.: True\n    test 376 clipSH3.allin.len: 2\n    test 377 clipSH3.allin.0: 15.0°N, 010.0°E\n    test 378 clipSH3.allin.LL: True\n    test 379 clipSH3.allin.1: 25.0°N, 020.0°E\n    test 380 clipSH3.allin.LL: True\n    test 381 clipSH3.edge.: True\n    test 382 clipSH.allin.reversed.len: 4\n    test 383 clipSH.allin.reversed.0: 20.0°N, 030.0°E\n    test 384 clipSH.allin.reversed.LL: True\n    test 385 clipSH.allin.reversed.1: 15.0°N, 010.0°E\n    test 386 clipSH.allin.reversed.LL: True\n    test 387 clipSH.allin.reversed.2: 25.0°N, 020.0°E\n    test 388 clipSH.allin.reversed.LL: True\n    test 389 clipSH.allin.reversed.3: 20.0°N, 030.0°E\n    test 390 clipSH.allin.reversed.LL: True\n    test 391 clipSH3.allin.reversed.len: 2\n    test 392 clipSH3.allin.reversed.0: 20.0°N, 030.0°E\n    test 393 clipSH3.allin.reversed.LL: True\n    test 394 clipSH3.allin.reversed.1: 15.0°N, 010.0°E\n    test 395 clipSH3.allin.reversed.LL: True\n    test 396 clipSH3.edge.reversed.: True\n    test 397 clipSH3.allin.reversed.len: 2\n    test 398 clipSH3.allin.reversed.0: 15.0°N, 010.0°E\n    test 399 clipSH3.allin.reversed.LL: True\n    test 400 clipSH3.allin.reversed.1: 25.0°N, 020.0°E\n    test 401 clipSH3.allin.reversed.LL: True\n    test 402 clipSH3.edge.reversed.: True\n    test 403 clipSH.warped: clipSH clip region ((LatLon(10°00′00.0″N, 010°00′00.0″E), LatLon(20°00′00.0″N, 020°00′00.0″E), LatLon(10°00′00.0″N, 020°00′00.0″E), LatLon(20°00′00.0″N, 010°00′00.0″E))): not convex\n    test 404 clipSH3.warped: clipSH3 clip region ((LatLon(10°00′00.0″N, 010°00′00.0″E), LatLon(20°00′00.0″N, 020°00′00.0″E), LatLon(10°00′00.0″N, 020°00′00.0″E), LatLon(20°00′00.0″N, 010°00′00.0″E))): not convex\n    test 405 clipSH.warpedreversed.: clipSH clip region ((LatLon(20°00′00.0″N, 010°00′00.0″E), LatLon(10°00′00.0″N, 020°00′00.0″E), LatLon(20°00′00.0″N, 020°00′00.0″E), LatLon(10°00′00.0″N, 010°00′00.0″E))): not convex\n    test 406 clipSH3.warpedreversed.: clipSH3 clip region ((LatLon(20°00′00.0″N, 010°00′00.0″E), LatLon(10°00′00.0″N, 020°00′00.0″E), LatLon(20°00′00.0″N, 020°00′00.0″E), LatLon(10°00′00.0″N, 010°00′00.0″E))): not convex\n    test 407 boundsOf: (10.0, 10.0, 20.0, 20.0)\n    test 408 boundsOf: (15.0, 10.0, 25.0, 30.0)\n    test 409 enclosures: (5.0, 0.0, -5.0, -10.0)\n    test 410 overlap: (15.0, 10.0, 20.0, 20.0)\n    test 411 clipSH4: 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 0.0\n    test 412 clipSH5: 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 0.0\n    test 413 clipSH6: 1.0, 0.5, 2.0, 1.0, 2.0, 0.5\n    test 414 clipSH7: -0.2, 2.0, 0.2, 2.0, 0.5, 0.5, 2.0, 0.2, 2.0, -0.2, 0.5, -0.5, 0.2, -2.0, -0.2, -2.0, -0.5, -0.5, -2.0, -0.2, -2.0, 0.2, -0.5, 0.5\n    test 415 clipSH8: -0.33, 1.33, 0.0, 2.0, 0.33, 1.33, 0.5, 0.5, 0.78, 0.44, 1.18, -0.36, 0.5, -0.5, 0.2, -2.0, -0.2, -2.0, -0.5, -0.5, -1.18, -0.36, -0.78, 0.44, -0.5, 0.5\n    test 416 clipSH9: None\n    test 417 clipSH10: None\n    test 418 clipSH11: None\n    test 419 clipSH12: None\n\n    test 420 clipGH4: (ClipGH4Tuple(lat=5.0, lon=3.571429, height=1.714286, clipid=0), ClipGH4Tuple(lat=7.0, lon=5.0, height=2.0, clipid=0), ClipGH4Tuple(lat=5.0, lon=6.428571, height=2.285714, clipid=0), ClipGH4Tuple(lat=3.0, lon=5.0, height=2.0, clipid=0))\n\n    test 421 clipFHP4: (ClipFHP4Tuple(lat=7.0, lon=5.0, height=2.0, clipid=0), ClipFHP4Tuple(lat=5.0, lon=6.428571, height=2.285714, clipid=0), ClipFHP4Tuple(lat=3.0, lon=5.0, height=2.0, clipid=0), ClipFHP4Tuple(lat=5.0, lon=3.571429, height=1.714286, clipid=0))\n\n    test 422 Fig 8: (ClipFHP4Tuple(lat=4.0, lon=12.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=-1.0, lon=12.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=3.0, lon=8.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=5.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=3.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=2.0, lon=1.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=6.0, lon=3.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=6.0, lon=11.0, height=0.0, clipid=0))\n    test 423 Fig 14: (ClipFHP4Tuple(lat=3.0, lon=3.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=0.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=6.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=6.0, lon=6.0, height=0.0, clipid=1), ClipFHP4Tuple(lat=9.0, lon=3.0, height=0.0, clipid=1), ClipFHP4Tuple(lat=6.0, lon=0.0, height=0.0, clipid=1), ClipFHP4Tuple(lat=3.0, lon=3.0, height=0.0, clipid=1))\n    test 424 Fig 15: (ClipFHP4Tuple(lat=1.0, lon=3.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=4.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=2.0, lon=4.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=2.0, lon=0.0, height=0.0, clipid=1), ClipFHP4Tuple(lat=0.0, lon=0.0, height=0.0, clipid=1), ClipFHP4Tuple(lat=1.0, lon=1.0, height=0.0, clipid=1))\n    test 425 Fig 16: (ClipFHP4Tuple(lat=0.0, lon=0.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=1.0, lon=0.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=2.0, lon=2.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=2.0, height=0.0, clipid=0))\n    test 426 Fig 18: ((-10, -10, 0), (-10, -2, 0), (-8, -2, 0), (-8, -8, 0), (-2, -8, 0), (-2, -10, 0), (2, -10, 1), (2, -8, 1), (0, -8, 1), (0, -10, 1), (10, -6, 2), (8, -6, 2), (8, -8, 2), (10, -8, 2), (10, 8, 3), (8, 8, 3), (8, 6, 3), (10, 6, 3), (-6, 10, 4), (-6, 8, 4), (-4, 8, 4), (-4, 10, 4), (-10, 10, 5), (-10, 8, 5), (-8, 8, 5), (-8, 10, 5), (-10, 4, 6), (-8, 4, 6), (-8, 6, 6), (-10, 6, 6), (-10, 0, 7), (-8, 0, 7), (-8, 2, 7), (-10, 2, 7), (-6, 6, 8), (-4, 6, 8), (-4, 4, 8), (-6, 4, 8), (-6, 0, 9), (-4, 0, 9), (-4, 2, 9), (-6, 2, 9), (-6, -6, 10), (-2, -6, 10), (-2, -4, 10), (-4, -4, 10), (-4, -2, 10), (-6, -2, 10), (2, -6, 11), (2, -4, 11), (0, -4, 11), (0, -6, 11), (12, 8, 12), (20, 8, 12), (20, -8, 12), (12, -8, 12), (12, -6, 12), (18, -6, 12), (18, 6, 12), (12, 6, 12), (12, -4, 13), (14, -4, 13), (14, 4, 13), (12, 4, 13))\n\n    testing(pygeodesy.sphericalNvector, 25.05.27)\n    test 427 clipCS4.p1: 07.5°N, 010.0°E\n    test 428 clipCS4.p2: 04.5°N, 000.0°E\n    test 429 clipCS4.i: 3\n    test 430 clipCS4.j: 0\n    test 431 clipCS4.p1: 05.0°N, 005.0°E\n    test 432 clipCS4.p2: 05.0°N, 005.0°E\n    test 433 clipCS4.i: 1\n    test 434 clipCS4.j: 2\n    test 435 clipLB6.p1: 07.5°N, 010.0°E\n    test 436 clipLB6.p2: 04.5°N, 000.0°E\n    test 437 clipLB6.i: 3\n    test 438 clipLB6.fi: 3.25\n    test 439 clipLB6.fi: 07.5°N, 010.0°E\n    test 440 clipLB6.fj: 3.75\n    test 441 clipLB6.fj: 04.5°N, 000.0°E\n    test 442 clipLB6.j: 0\n    test 443 clipLB6.fin: 4\n    test 444 clipLB6.p1: 05.0°N, 005.0°E\n    test 445 clipLB6.p2: 05.0°N, 005.0°E\n    test 446 clipLB6.i: 1\n    test 447 clipLB6.fi: 1.00\n    test 448 clipLB6.fi: 05.0°N, 005.0°E\n    test 449 clipLB6.fj: 2.00\n    test 450 clipLB6.fj: 05.0°N, 005.0°E\n    test 451 clipLB6.j: 2\n    test 452 clipLB6.fin: 4\n    test 453 clipCS4.p1: 60.0°N, 123.333333°E\n    test 454 clipCS4.p2: 62.857143°N, 130.0°E\n    test 455 clipCS4.i: 0\n    test 456 clipCS4.j: 1\n    test 457 clipLB6.p1: 60.0°N, 123.333333°E\n    test 458 clipLB6.p2: 62.857143°N, 130.0°E\n    test 459 clipLB6.i: 0\n    test 460 clipLB6.fi: 0.666667\n    test 461 clipLB6.fi: 60.0°N, 123.333333°E\n    test 462 clipLB6.fj: 0.714286\n    test 463 clipLB6.fj: 62.857143°N, 130.0°E\n    test 464 clipLB6.j: 1\n    test 465 clipLB6.fin: 0\n    test 466 clipCS4.p1: 17.5°N, 020.0°E\n    test 467 clipCS4.p2: 16.25°N, 015.0°E\n    test 468 clipCS4.i: 2\n    test 469 clipCS4.j: 0\n    test 470 clipLB6.p1: 17.5°N, 020.0°E\n    test 471 clipLB6.p2: 16.25°N, 015.0°E\n    test 472 clipLB6.i: 2\n    test 473 clipLB6.fi: 2.500\n    test 474 clipLB6.fi: 17.5°N, 020.0°E\n    test 475 clipLB6.fj: 2.750\n    test 476 clipLB6.fj: 16.25°N, 015.0°E\n    test 477 clipLB6.j: 0\n    test 478 clipLB6.fin: 3\n    test 479 clipSH1.len: 4\n    test 480 clipSH1.0: 20.0°N, 020.0°E\n    test 481 clipSH1.LL: True\n    test 482 clipSH1.1: 17.5°N, 020.0°E\n    test 483 clipSH1.LL: True\n    test 484 clipSH1.2: 16.25°N, 015.0°E\n    test 485 clipSH1.LL: True\n    test 486 clipSH1.3: 20.0°N, 015.0°E\n    test 487 clipSH1.LL: True\n    test 488 clipSH2.len: 5\n    test 489 clipSH2.0: 18.571°N, 024.286°E\n    test 490 clipSH2.LL: True\n    test 491 clipSH2.1: 16.667°N, 016.667°E\n    test 492 clipSH2.LL: True\n    test 493 clipSH2.2: 20.0°N, 015.0°E\n    test 494 clipSH2.LL: True\n    test 495 clipSH2.3: 25.0°N, 020.0°E\n    test 496 clipSH2.LL: True\n    test 497 clipSH2.4: 22.0°N, 026.0°E\n    test 498 clipSH2.LL: True\n    test 499 clipSH3.len: 2\n    test 500 clipSH3.0: 18.571°N, 024.286°E\n    test 501 clipSH3.LL: True\n    test 502 clipSH3.1: 16.667°N, 016.667°E\n    test 503 clipSH3.LL: True\n    test 504 clipSH3.edge.: True\n    test 505 clipSH3.len: 2\n    test 506 clipSH3.0: 16.667°N, 016.667°E\n    test 507 clipSH3.LL: True\n    test 508 clipSH3.1: 20.0°N, 015.0°E\n    test 509 clipSH3.LL: True\n    test 510 clipSH3.edge.: False\n    test 511 clipSH3.len: 2\n    test 512 clipSH3.0: 20.0°N, 015.0°E\n    test 513 clipSH3.LL: True\n    test 514 clipSH3.1: 25.0°N, 020.0°E\n    test 515 clipSH3.LL: True\n    test 516 clipSH3.edge.: True\n    test 517 clipSH3.len: 2\n    test 518 clipSH3.0: 25.0°N, 020.0°E\n    test 519 clipSH3.LL: True\n    test 520 clipSH3.1: 22.0°N, 026.0°E\n    test 521 clipSH3.LL: True\n    test 522 clipSH3.edge.: True\n    test 523 clipSH3.len: 2\n    test 524 clipSH3.0: 22.0°N, 026.0°E\n    test 525 clipSH3.LL: True\n    test 526 clipSH3.1: 18.571°N, 024.286°E\n    test 527 clipSH3.LL: True\n    test 528 clipSH3.edge.: False\n    test 529 clipSH2.reversed.len: 5\n    test 530 clipSH2.reversed.0: 18.571°N, 024.286°E\n    test 531 clipSH2.reversed.LL: True\n    test 532 clipSH2.reversed.1: 16.667°N, 016.667°E\n    test 533 clipSH2.reversed.LL: True\n    test 534 clipSH2.reversed.2: 20.0°N, 015.0°E\n    test 535 clipSH2.reversed.LL: True\n    test 536 clipSH2.reversed.3: 25.0°N, 020.0°E\n    test 537 clipSH2.reversed.LL: True\n    test 538 clipSH2.reversed.4: 22.0°N, 026.0°E\n    test 539 clipSH2.reversed.LL: True\n    test 540 clipSH3.reversed.len: 2\n    test 541 clipSH3.reversed.0: 18.571°N, 024.286°E\n    test 542 clipSH3.reversed.LL: True\n    test 543 clipSH3.reversed.1: 16.667°N, 016.667°E\n    test 544 clipSH3.reversed.LL: True\n    test 545 clipSH3.edge.reversed.: True\n    test 546 clipSH3.reversed.len: 2\n    test 547 clipSH3.reversed.0: 16.667°N, 016.667°E\n    test 548 clipSH3.reversed.LL: True\n    test 549 clipSH3.reversed.1: 20.0°N, 015.0°E\n    test 550 clipSH3.reversed.LL: True\n    test 551 clipSH3.edge.reversed.: False\n    test 552 clipSH3.reversed.len: 2\n    test 553 clipSH3.reversed.0: 20.0°N, 015.0°E\n    test 554 clipSH3.reversed.LL: True\n    test 555 clipSH3.reversed.1: 25.0°N, 020.0°E\n    test 556 clipSH3.reversed.LL: True\n    test 557 clipSH3.edge.reversed.: True\n    test 558 clipSH3.reversed.len: 2\n    test 559 clipSH3.reversed.0: 25.0°N, 020.0°E\n    test 560 clipSH3.reversed.LL: True\n    test 561 clipSH3.reversed.1: 22.0°N, 026.0°E\n    test 562 clipSH3.reversed.LL: True\n    test 563 clipSH3.edge.reversed.: True\n    test 564 clipSH3.reversed.len: 2\n    test 565 clipSH3.reversed.0: 22.0°N, 026.0°E\n    test 566 clipSH3.reversed.LL: True\n    test 567 clipSH3.reversed.1: 18.571°N, 024.286°E\n    test 568 clipSH3.reversed.LL: True\n    test 569 clipSH3.edge.reversed.: False\n    test 570 clipSH.allout: ()\n    test 571 clipSH3.allout: ()\n    test 572 clipSH.allout.reversed: ()\n    test 573 clipSH3.allout.reversed: ()\n    test 574 clipSH.allin.len: 4\n    test 575 clipSH.allin.0: 20.0°N, 030.0°E\n    test 576 clipSH.allin.LL: True\n    test 577 clipSH.allin.1: 15.0°N, 010.0°E\n    test 578 clipSH.allin.LL: True\n    test 579 clipSH.allin.2: 25.0°N, 020.0°E\n    test 580 clipSH.allin.LL: True\n    test 581 clipSH.allin.3: 20.0°N, 030.0°E\n    test 582 clipSH.allin.LL: True\n    test 583 clipSH3.allin.len: 2\n    test 584 clipSH3.allin.0: 20.0°N, 030.0°E\n    test 585 clipSH3.allin.LL: True\n    test 586 clipSH3.allin.1: 15.0°N, 010.0°E\n    test 587 clipSH3.allin.LL: True\n    test 588 clipSH3.edge.: True\n    test 589 clipSH3.allin.len: 2\n    test 590 clipSH3.allin.0: 15.0°N, 010.0°E\n    test 591 clipSH3.allin.LL: True\n    test 592 clipSH3.allin.1: 25.0°N, 020.0°E\n    test 593 clipSH3.allin.LL: True\n    test 594 clipSH3.edge.: True\n    test 595 clipSH.allin.reversed.len: 4\n    test 596 clipSH.allin.reversed.0: 20.0°N, 030.0°E\n    test 597 clipSH.allin.reversed.LL: True\n    test 598 clipSH.allin.reversed.1: 15.0°N, 010.0°E\n    test 599 clipSH.allin.reversed.LL: True\n    test 600 clipSH.allin.reversed.2: 25.0°N, 020.0°E\n    test 601 clipSH.allin.reversed.LL: True\n    test 602 clipSH.allin.reversed.3: 20.0°N, 030.0°E\n    test 603 clipSH.allin.reversed.LL: True\n    test 604 clipSH3.allin.reversed.len: 2\n    test 605 clipSH3.allin.reversed.0: 20.0°N, 030.0°E\n    test 606 clipSH3.allin.reversed.LL: True\n    test 607 clipSH3.allin.reversed.1: 15.0°N, 010.0°E\n    test 608 clipSH3.allin.reversed.LL: True\n    test 609 clipSH3.edge.reversed.: True\n    test 610 clipSH3.allin.reversed.len: 2\n    test 611 clipSH3.allin.reversed.0: 15.0°N, 010.0°E\n    test 612 clipSH3.allin.reversed.LL: True\n    test 613 clipSH3.allin.reversed.1: 25.0°N, 020.0°E\n    test 614 clipSH3.allin.reversed.LL: True\n    test 615 clipSH3.edge.reversed.: True\n    test 616 clipSH.warped: clipSH clip region ((LatLon(10°00′00.0″N, 010°00′00.0″E), LatLon(20°00′00.0″N, 020°00′00.0″E), LatLon(10°00′00.0″N, 020°00′00.0″E), LatLon(20°00′00.0″N, 010°00′00.0″E))): not convex\n    test 617 clipSH3.warped: clipSH3 clip region ((LatLon(10°00′00.0″N, 010°00′00.0″E), LatLon(20°00′00.0″N, 020°00′00.0″E), LatLon(10°00′00.0″N, 020°00′00.0″E), LatLon(20°00′00.0″N, 010°00′00.0″E))): not convex\n    test 618 clipSH.warpedreversed.: clipSH clip region ((LatLon(20°00′00.0″N, 010°00′00.0″E), LatLon(10°00′00.0″N, 020°00′00.0″E), LatLon(20°00′00.0″N, 020°00′00.0″E), LatLon(10°00′00.0″N, 010°00′00.0″E))): not convex\n    test 619 clipSH3.warpedreversed.: clipSH3 clip region ((LatLon(20°00′00.0″N, 010°00′00.0″E), LatLon(10°00′00.0″N, 020°00′00.0″E), LatLon(20°00′00.0″N, 020°00′00.0″E), LatLon(10°00′00.0″N, 010°00′00.0″E))): not convex\n    test 620 boundsOf: (10.0, 10.0, 20.0, 20.0)\n    test 621 boundsOf: (15.0, 10.0, 25.0, 30.0)\n    test 622 enclosures: (5.0, 0.0, -5.0, -10.0)\n    test 623 overlap: (15.0, 10.0, 20.0, 20.0)\n    test 624 clipSH4: 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 0.0\n    test 625 clipSH5: 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 0.0\n    test 626 clipSH6: 1.0, 0.5, 2.0, 1.0, 2.0, 0.5\n    test 627 clipSH7: -0.2, 2.0, 0.2, 2.0, 0.5, 0.5, 2.0, 0.2, 2.0, -0.2, 0.5, -0.5, 0.2, -2.0, -0.2, -2.0, -0.5, -0.5, -2.0, -0.2, -2.0, 0.2, -0.5, 0.5\n    test 628 clipSH8: -0.33, 1.33, 0.0, 2.0, 0.33, 1.33, 0.5, 0.5, 0.78, 0.44, 1.18, -0.36, 0.5, -0.5, 0.2, -2.0, -0.2, -2.0, -0.5, -0.5, -1.18, -0.36, -0.78, 0.44, -0.5, 0.5\n    test 629 clipSH9: None\n    test 630 clipSH10: None\n    test 631 clipSH11: None\n    test 632 clipSH12: None\n\n    test 633 clipGH4: (ClipGH4Tuple(lat=5.0, lon=3.571429, height=1.714286, clipid=0), ClipGH4Tuple(lat=7.0, lon=5.0, height=2.0, clipid=0), ClipGH4Tuple(lat=5.0, lon=6.428571, height=2.285714, clipid=0), ClipGH4Tuple(lat=3.0, lon=5.0, height=2.0, clipid=0))\n\n    test 634 clipFHP4: (ClipFHP4Tuple(lat=7.0, lon=5.0, height=2.0, clipid=0), ClipFHP4Tuple(lat=5.0, lon=6.428571, height=2.285714, clipid=0), ClipFHP4Tuple(lat=3.0, lon=5.0, height=2.0, clipid=0), ClipFHP4Tuple(lat=5.0, lon=3.571429, height=1.714286, clipid=0))\n\n    test 635 Fig 8: (ClipFHP4Tuple(lat=4.0, lon=12.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=-1.0, lon=12.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=3.0, lon=8.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=5.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=3.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=2.0, lon=1.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=6.0, lon=3.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=6.0, lon=11.0, height=0.0, clipid=0))\n    test 636 Fig 14: (ClipFHP4Tuple(lat=3.0, lon=3.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=0.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=6.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=6.0, lon=6.0, height=0.0, clipid=1), ClipFHP4Tuple(lat=9.0, lon=3.0, height=0.0, clipid=1), ClipFHP4Tuple(lat=6.0, lon=0.0, height=0.0, clipid=1), ClipFHP4Tuple(lat=3.0, lon=3.0, height=0.0, clipid=1))\n    test 637 Fig 15: (ClipFHP4Tuple(lat=1.0, lon=3.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=4.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=2.0, lon=4.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=2.0, lon=0.0, height=0.0, clipid=1), ClipFHP4Tuple(lat=0.0, lon=0.0, height=0.0, clipid=1), ClipFHP4Tuple(lat=1.0, lon=1.0, height=0.0, clipid=1))\n    test 638 Fig 16: (ClipFHP4Tuple(lat=0.0, lon=0.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=1.0, lon=0.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=2.0, lon=2.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=2.0, height=0.0, clipid=0))\n    test 639 Fig 18: ((-10, -10, 0), (-10, -2, 0), (-8, -2, 0), (-8, -8, 0), (-2, -8, 0), (-2, -10, 0), (2, -10, 1), (2, -8, 1), (0, -8, 1), (0, -10, 1), (10, -6, 2), (8, -6, 2), (8, -8, 2), (10, -8, 2), (10, 8, 3), (8, 8, 3), (8, 6, 3), (10, 6, 3), (-6, 10, 4), (-6, 8, 4), (-4, 8, 4), (-4, 10, 4), (-10, 10, 5), (-10, 8, 5), (-8, 8, 5), (-8, 10, 5), (-10, 4, 6), (-8, 4, 6), (-8, 6, 6), (-10, 6, 6), (-10, 0, 7), (-8, 0, 7), (-8, 2, 7), (-10, 2, 7), (-6, 6, 8), (-4, 6, 8), (-4, 4, 8), (-6, 4, 8), (-6, 0, 9), (-4, 0, 9), (-4, 2, 9), (-6, 2, 9), (-6, -6, 10), (-2, -6, 10), (-2, -4, 10), (-4, -4, 10), (-4, -2, 10), (-6, -2, 10), (2, -6, 11), (2, -4, 11), (0, -4, 11), (0, -6, 11), (12, 8, 12), (20, 8, 12), (20, -8, 12), (12, -8, 12), (12, -6, 12), (18, -6, 12), (18, 6, 12), (12, 6, 12), (12, -4, 13), (14, -4, 13), (14, 4, 13), (12, 4, 13))\n\n    testing(pygeodesy.sphericalTrigonometry, 25.08.31)\n    test 640 clipCS4.p1: 07.5°N, 010.0°E\n    test 641 clipCS4.p2: 04.5°N, 000.0°E\n    test 642 clipCS4.i: 3\n    test 643 clipCS4.j: 0\n    test 644 clipCS4.p1: 05.0°N, 005.0°E\n    test 645 clipCS4.p2: 05.0°N, 005.0°E\n    test 646 clipCS4.i: 1\n    test 647 clipCS4.j: 2\n    test 648 clipLB6.p1: 07.5°N, 010.0°E\n    test 649 clipLB6.p2: 04.5°N, 000.0°E\n    test 650 clipLB6.i: 3\n    test 651 clipLB6.fi: 3.25\n    test 652 clipLB6.fi: 07.5°N, 010.0°E\n    test 653 clipLB6.fj: 3.75\n    test 654 clipLB6.fj: 04.5°N, 000.0°E\n    test 655 clipLB6.j: 0\n    test 656 clipLB6.fin: 4\n    test 657 clipLB6.p1: 05.0°N, 005.0°E\n    test 658 clipLB6.p2: 05.0°N, 005.0°E\n    test 659 clipLB6.i: 1\n    test 660 clipLB6.fi: 1.00\n    test 661 clipLB6.fi: 05.0°N, 005.0°E\n    test 662 clipLB6.fj: 2.00\n    test 663 clipLB6.fj: 05.0°N, 005.0°E\n    test 664 clipLB6.j: 2\n    test 665 clipLB6.fin: 4\n    test 666 clipCS4.p1: 60.0°N, 123.333333°E\n    test 667 clipCS4.p2: 62.857143°N, 130.0°E\n    test 668 clipCS4.i: 0\n    test 669 clipCS4.j: 1\n    test 670 clipLB6.p1: 60.0°N, 123.333333°E\n    test 671 clipLB6.p2: 62.857143°N, 130.0°E\n    test 672 clipLB6.i: 0\n    test 673 clipLB6.fi: 0.666667\n    test 674 clipLB6.fi: 60.0°N, 123.333333°E\n    test 675 clipLB6.fj: 0.714286\n    test 676 clipLB6.fj: 62.857143°N, 130.0°E\n    test 677 clipLB6.j: 1\n    test 678 clipLB6.fin: 0\n    test 679 clipCS4.p1: 17.5°N, 020.0°E\n    test 680 clipCS4.p2: 16.25°N, 015.0°E\n    test 681 clipCS4.i: 2\n    test 682 clipCS4.j: 0\n    test 683 clipLB6.p1: 17.5°N, 020.0°E\n    test 684 clipLB6.p2: 16.25°N, 015.0°E\n    test 685 clipLB6.i: 2\n    test 686 clipLB6.fi: 2.500\n    test 687 clipLB6.fi: 17.5°N, 020.0°E\n    test 688 clipLB6.fj: 2.750\n    test 689 clipLB6.fj: 16.25°N, 015.0°E\n    test 690 clipLB6.j: 0\n    test 691 clipLB6.fin: 3\n    test 692 clipSH1.len: 4\n    test 693 clipSH1.0: 20.0°N, 020.0°E\n    test 694 clipSH1.LL: True\n    test 695 clipSH1.1: 17.5°N, 020.0°E\n    test 696 clipSH1.LL: True\n    test 697 clipSH1.2: 16.25°N, 015.0°E\n    test 698 clipSH1.LL: True\n    test 699 clipSH1.3: 20.0°N, 015.0°E\n    test 700 clipSH1.LL: True\n    test 701 clipSH2.len: 5\n    test 702 clipSH2.0: 18.571°N, 024.286°E\n    test 703 clipSH2.LL: True\n    test 704 clipSH2.1: 16.667°N, 016.667°E\n    test 705 clipSH2.LL: True\n    test 706 clipSH2.2: 20.0°N, 015.0°E\n    test 707 clipSH2.LL: True\n    test 708 clipSH2.3: 25.0°N, 020.0°E\n    test 709 clipSH2.LL: True\n    test 710 clipSH2.4: 22.0°N, 026.0°E\n    test 711 clipSH2.LL: True\n    test 712 clipSH3.len: 2\n    test 713 clipSH3.0: 18.571°N, 024.286°E\n    test 714 clipSH3.LL: True\n    test 715 clipSH3.1: 16.667°N, 016.667°E\n    test 716 clipSH3.LL: True\n    test 717 clipSH3.edge.: True\n    test 718 clipSH3.len: 2\n    test 719 clipSH3.0: 16.667°N, 016.667°E\n    test 720 clipSH3.LL: True\n    test 721 clipSH3.1: 20.0°N, 015.0°E\n    test 722 clipSH3.LL: True\n    test 723 clipSH3.edge.: False\n    test 724 clipSH3.len: 2\n    test 725 clipSH3.0: 20.0°N, 015.0°E\n    test 726 clipSH3.LL: True\n    test 727 clipSH3.1: 25.0°N, 020.0°E\n    test 728 clipSH3.LL: True\n    test 729 clipSH3.edge.: True\n    test 730 clipSH3.len: 2\n    test 731 clipSH3.0: 25.0°N, 020.0°E\n    test 732 clipSH3.LL: True\n    test 733 clipSH3.1: 22.0°N, 026.0°E\n    test 734 clipSH3.LL: True\n    test 735 clipSH3.edge.: True\n    test 736 clipSH3.len: 2\n    test 737 clipSH3.0: 22.0°N, 026.0°E\n    test 738 clipSH3.LL: True\n    test 739 clipSH3.1: 18.571°N, 024.286°E\n    test 740 clipSH3.LL: True\n    test 741 clipSH3.edge.: False\n    test 742 clipSH2.reversed.len: 5\n    test 743 clipSH2.reversed.0: 18.571°N, 024.286°E\n    test 744 clipSH2.reversed.LL: True\n    test 745 clipSH2.reversed.1: 16.667°N, 016.667°E\n    test 746 clipSH2.reversed.LL: True\n    test 747 clipSH2.reversed.2: 20.0°N, 015.0°E\n    test 748 clipSH2.reversed.LL: True\n    test 749 clipSH2.reversed.3: 25.0°N, 020.0°E\n    test 750 clipSH2.reversed.LL: True\n    test 751 clipSH2.reversed.4: 22.0°N, 026.0°E\n    test 752 clipSH2.reversed.LL: True\n    test 753 clipSH3.reversed.len: 2\n    test 754 clipSH3.reversed.0: 18.571°N, 024.286°E\n    test 755 clipSH3.reversed.LL: True\n    test 756 clipSH3.reversed.1: 16.667°N, 016.667°E\n    test 757 clipSH3.reversed.LL: True\n    test 758 clipSH3.edge.reversed.: True\n    test 759 clipSH3.reversed.len: 2\n    test 760 clipSH3.reversed.0: 16.667°N, 016.667°E\n    test 761 clipSH3.reversed.LL: True\n    test 762 clipSH3.reversed.1: 20.0°N, 015.0°E\n    test 763 clipSH3.reversed.LL: True\n    test 764 clipSH3.edge.reversed.: False\n    test 765 clipSH3.reversed.len: 2\n    test 766 clipSH3.reversed.0: 20.0°N, 015.0°E\n    test 767 clipSH3.reversed.LL: True\n    test 768 clipSH3.reversed.1: 25.0°N, 020.0°E\n    test 769 clipSH3.reversed.LL: True\n    test 770 clipSH3.edge.reversed.: True\n    test 771 clipSH3.reversed.len: 2\n    test 772 clipSH3.reversed.0: 25.0°N, 020.0°E\n    test 773 clipSH3.reversed.LL: True\n    test 774 clipSH3.reversed.1: 22.0°N, 026.0°E\n    test 775 clipSH3.reversed.LL: True\n    test 776 clipSH3.edge.reversed.: True\n    test 777 clipSH3.reversed.len: 2\n    test 778 clipSH3.reversed.0: 22.0°N, 026.0°E\n    test 779 clipSH3.reversed.LL: True\n    test 780 clipSH3.reversed.1: 18.571°N, 024.286°E\n    test 781 clipSH3.reversed.LL: True\n    test 782 clipSH3.edge.reversed.: False\n    test 783 clipSH.allout: ()\n    test 784 clipSH3.allout: ()\n    test 785 clipSH.allout.reversed: ()\n    test 786 clipSH3.allout.reversed: ()\n    test 787 clipSH.allin.len: 4\n    test 788 clipSH.allin.0: 20.0°N, 030.0°E\n    test 789 clipSH.allin.LL: True\n    test 790 clipSH.allin.1: 15.0°N, 010.0°E\n    test 791 clipSH.allin.LL: True\n    test 792 clipSH.allin.2: 25.0°N, 020.0°E\n    test 793 clipSH.allin.LL: True\n    test 794 clipSH.allin.3: 20.0°N, 030.0°E\n    test 795 clipSH.allin.LL: True\n    test 796 clipSH3.allin.len: 2\n    test 797 clipSH3.allin.0: 20.0°N, 030.0°E\n    test 798 clipSH3.allin.LL: True\n    test 799 clipSH3.allin.1: 15.0°N, 010.0°E\n    test 800 clipSH3.allin.LL: True\n    test 801 clipSH3.edge.: True\n    test 802 clipSH3.allin.len: 2\n    test 803 clipSH3.allin.0: 15.0°N, 010.0°E\n    test 804 clipSH3.allin.LL: True\n    test 805 clipSH3.allin.1: 25.0°N, 020.0°E\n    test 806 clipSH3.allin.LL: True\n    test 807 clipSH3.edge.: True\n    test 808 clipSH.allin.reversed.len: 4\n    test 809 clipSH.allin.reversed.0: 20.0°N, 030.0°E\n    test 810 clipSH.allin.reversed.LL: True\n    test 811 clipSH.allin.reversed.1: 15.0°N, 010.0°E\n    test 812 clipSH.allin.reversed.LL: True\n    test 813 clipSH.allin.reversed.2: 25.0°N, 020.0°E\n    test 814 clipSH.allin.reversed.LL: True\n    test 815 clipSH.allin.reversed.3: 20.0°N, 030.0°E\n    test 816 clipSH.allin.reversed.LL: True\n    test 817 clipSH3.allin.reversed.len: 2\n    test 818 clipSH3.allin.reversed.0: 20.0°N, 030.0°E\n    test 819 clipSH3.allin.reversed.LL: True\n    test 820 clipSH3.allin.reversed.1: 15.0°N, 010.0°E\n    test 821 clipSH3.allin.reversed.LL: True\n    test 822 clipSH3.edge.reversed.: True\n    test 823 clipSH3.allin.reversed.len: 2\n    test 824 clipSH3.allin.reversed.0: 15.0°N, 010.0°E\n    test 825 clipSH3.allin.reversed.LL: True\n    test 826 clipSH3.allin.reversed.1: 25.0°N, 020.0°E\n    test 827 clipSH3.allin.reversed.LL: True\n    test 828 clipSH3.edge.reversed.: True\n    test 829 clipSH.warped: clipSH clip region ((LatLon(10°00′00.0″N, 010°00′00.0″E), LatLon(20°00′00.0″N, 020°00′00.0″E), LatLon(10°00′00.0″N, 020°00′00.0″E), LatLon(20°00′00.0″N, 010°00′00.0″E))): not convex\n    test 830 clipSH3.warped: clipSH3 clip region ((LatLon(10°00′00.0″N, 010°00′00.0″E), LatLon(20°00′00.0″N, 020°00′00.0″E), LatLon(10°00′00.0″N, 020°00′00.0″E), LatLon(20°00′00.0″N, 010°00′00.0″E))): not convex\n    test 831 clipSH.warpedreversed.: clipSH clip region ((LatLon(20°00′00.0″N, 010°00′00.0″E), LatLon(10°00′00.0″N, 020°00′00.0″E), LatLon(20°00′00.0″N, 020°00′00.0″E), LatLon(10°00′00.0″N, 010°00′00.0″E))): not convex\n    test 832 clipSH3.warpedreversed.: clipSH3 clip region ((LatLon(20°00′00.0″N, 010°00′00.0″E), LatLon(10°00′00.0″N, 020°00′00.0″E), LatLon(20°00′00.0″N, 020°00′00.0″E), LatLon(10°00′00.0″N, 010°00′00.0″E))): not convex\n    test 833 boundsOf: (10.0, 10.0, 20.0, 20.0)\n    test 834 boundsOf: (15.0, 10.0, 25.0, 30.0)\n    test 835 enclosures: (5.0, 0.0, -5.0, -10.0)\n    test 836 overlap: (15.0, 10.0, 20.0, 20.0)\n    test 837 clipSH4: 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 0.0\n    test 838 clipSH5: 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 0.0\n    test 839 clipSH6: 1.0, 0.5, 2.0, 1.0, 2.0, 0.5\n    test 840 clipSH7: -0.2, 2.0, 0.2, 2.0, 0.5, 0.5, 2.0, 0.2, 2.0, -0.2, 0.5, -0.5, 0.2, -2.0, -0.2, -2.0, -0.5, -0.5, -2.0, -0.2, -2.0, 0.2, -0.5, 0.5\n    test 841 clipSH8: -0.33, 1.33, 0.0, 2.0, 0.33, 1.33, 0.5, 0.5, 0.78, 0.44, 1.18, -0.36, 0.5, -0.5, 0.2, -2.0, -0.2, -2.0, -0.5, -0.5, -1.18, -0.36, -0.78, 0.44, -0.5, 0.5\n    test 842 clipSH9: None\n    test 843 clipSH10: None\n    test 844 clipSH11: None\n    test 845 clipSH12: None\n\n    test 846 clipGH4: (ClipGH4Tuple(lat=5.0, lon=3.571429, height=1.714286, clipid=0), ClipGH4Tuple(lat=7.0, lon=5.0, height=2.0, clipid=0), ClipGH4Tuple(lat=5.0, lon=6.428571, height=2.285714, clipid=0), ClipGH4Tuple(lat=3.0, lon=5.0, height=2.0, clipid=0))\n\n    test 847 clipFHP4: (ClipFHP4Tuple(lat=7.0, lon=5.0, height=2.0, clipid=0), ClipFHP4Tuple(lat=5.0, lon=6.428571, height=2.285714, clipid=0), ClipFHP4Tuple(lat=3.0, lon=5.0, height=2.0, clipid=0), ClipFHP4Tuple(lat=5.0, lon=3.571429, height=1.714286, clipid=0))\n\n    test 848 Fig 8: (ClipFHP4Tuple(lat=4.0, lon=12.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=-1.0, lon=12.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=3.0, lon=8.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=5.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=3.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=2.0, lon=1.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=6.0, lon=3.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=6.0, lon=11.0, height=0.0, clipid=0))\n    test 849 Fig 14: (ClipFHP4Tuple(lat=3.0, lon=3.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=0.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=6.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=6.0, lon=6.0, height=0.0, clipid=1), ClipFHP4Tuple(lat=9.0, lon=3.0, height=0.0, clipid=1), ClipFHP4Tuple(lat=6.0, lon=0.0, height=0.0, clipid=1), ClipFHP4Tuple(lat=3.0, lon=3.0, height=0.0, clipid=1))\n    test 850 Fig 15: (ClipFHP4Tuple(lat=1.0, lon=3.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=4.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=2.0, lon=4.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=2.0, lon=0.0, height=0.0, clipid=1), ClipFHP4Tuple(lat=0.0, lon=0.0, height=0.0, clipid=1), ClipFHP4Tuple(lat=1.0, lon=1.0, height=0.0, clipid=1))\n    test 851 Fig 16: (ClipFHP4Tuple(lat=0.0, lon=0.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=1.0, lon=0.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=2.0, lon=2.0, height=0.0, clipid=0), ClipFHP4Tuple(lat=0.0, lon=2.0, height=0.0, clipid=0))\n    test 852 Fig 18: ((-10, -10, 0), (-10, -2, 0), (-8, -2, 0), (-8, -8, 0), (-2, -8, 0), (-2, -10, 0), (2, -10, 1), (2, -8, 1), (0, -8, 1), (0, -10, 1), (10, -6, 2), (8, -6, 2), (8, -8, 2), (10, -8, 2), (10, 8, 3), (8, 8, 3), (8, 6, 3), (10, 6, 3), (-6, 10, 4), (-6, 8, 4), (-4, 8, 4), (-4, 10, 4), (-10, 10, 5), (-10, 8, 5), (-8, 8, 5), (-8, 10, 5), (-10, 4, 6), (-8, 4, 6), (-8, 6, 6), (-10, 6, 6), (-10, 0, 7), (-8, 0, 7), (-8, 2, 7), (-10, 2, 7), (-6, 6, 8), (-4, 6, 8), (-4, 4, 8), (-6, 4, 8), (-6, 0, 9), (-4, 0, 9), (-4, 2, 9), (-6, 2, 9), (-6, -6, 10), (-2, -6, 10), (-2, -4, 10), (-4, -4, 10), (-4, -2, 10), (-6, -2, 10), (2, -6, 11), (2, -4, 11), (0, -4, 11), (0, -6, 11), (12, 8, 12), (20, 8, 12), (20, -8, 12), (12, -8, 12), (12, -6, 12), (18, -6, 12), (18, 6, 12), (12, 6, 12), (12, -4, 13), (14, -4, 13), (14, 4, 13), (12, 4, 13))\n\n    all 852 testClipy.py tests passed (pygeodesy 26.3.26 Python 3.14.3 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 73.134 ms\nrunning /Library/Framewo....n3.14 -W default ~/PyGeodesy/test/testConstants.py\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.Float from .unitsBase by testConstants.py line 11\n# lazily imported pygeodesy.Int from .unitsBase by testConstants.py line 11\n# lazily imported pygeodesy.Radius from .unitsBase by testConstants.py line 11\n# lazily imported pygeodesy.float_ from .constants by testConstants.py line 11\n# lazily imported pygeodesy.floats_ from .constants by testConstants.py line 11\n# lazily imported pygeodesy.isinf from .constants by testConstants.py line 11\n# lazily imported pygeodesy.isint0 from .constants by testConstants.py line 11\n# lazily imported pygeodesy.isnan from .constants by testConstants.py line 11\n# lazily imported pygeodesy.EPS from .constants by testConstants.py line 11\n# lazily imported pygeodesy.EPS0 from .constants by testConstants.py line 11\n# lazily imported pygeodesy.EPS02 from .constants by testConstants.py line 11\n# lazily imported pygeodesy.EPS1 from .constants by testConstants.py line 11\n# lazily imported pygeodesy.EPS2 from .constants by testConstants.py line 11\n# lazily imported pygeodesy.EPS_2 from .constants by testConstants.py line 11\n# lazily imported pygeodesy.EPS4 from .constants by testConstants.py line 11\n# lazily imported pygeodesy.INF from .constants by testConstants.py line 11\n# lazily imported pygeodesy.INT0 from .constants by testConstants.py line 11\n# lazily imported pygeodesy.NAN from .constants by testConstants.py line 11\n# lazily imported pygeodesy.NEG0 from .constants by testConstants.py line 11\n# lazily imported pygeodesy.NINF from .constants by testConstants.py line 11\n\n    testing testConstants.py 25.10.15 (module pygeodesy.constants 26.02.09) isLazy=3\n    test 1 _0_0: 0.0\n    test 2 _0_0001: 0.0001\n    test 3 _0_001: 0.001\n    test 4 _0_01: 0.01\n    test 5 _0_1: 0.1\n    test 6 _0_125: 0.125\n    test 7 _0_25: 0.25\n    test 8 _0_5: 0.5\n    test 9 _0_75: 0.75\n    test 10 _1000_0: 1000.0\n    test 11 _100_0: 100.0\n    test 12 _10_0: 10.0\n    test 13 _16_0: 16.0\n    test 14 _180_0: 180.0\n    test 15 _1_0: 1.0\n    test 16 _1_3rd: 0.3333333333333333  FAILED, KNOWN, expected 1.3rd\n    test 17 _1_5: 1.5\n    test 18 _1_75: 1.75\n\n    test 19 _1_EPS: _1_EPS (4.50359962737e+15)\n    test 20 _1_EPS: _1_EPS\n    test 21 _1_EPS: True\n    test 22 _270_0: 270.0\n    test 23 _2_0: 2.0\n    test 24 _2_3rd: 0.6666666666666666  FAILED, KNOWN, expected 2.3rd\n\n    test 25 _2__PI: _2__PI (0.636619772368)\n    test 26 _2__PI: _2__PI\n    test 27 _2__PI: True\n    test 28 _32_0: 32.0\n    test 29 _3600_0: 3600.0\n    test 30 _360_0: 360.0\n    test 31 _3_0: 3.0\n    test 32 _45_0: 45.0\n    test 33 _4_0: 4.0\n    test 34 _5_0: 5.0\n    test 35 _60_0: 60.0\n    test 36 _64_0: 64.0\n    test 37 _6_0: 6.0\n    test 38 _720_0: 720.0\n\n    test 39 _89_999: _89_999 (90.0)\n    test 40 _89_999: _89_999\n    test 41 _89_999: True\n    test 42 _8_0: 8.0\n    test 43 _90_0: 90.0\n    test 44 _9_0: 9.0\n\n    test 45 _EPS2e4: _EPS2e4 (4.4408920985e-12)\n    test 46 _EPS2e4: _EPS2e4\n    test 47 _EPS2e4: True\n\n    test 48 _EPS4e8: _EPS4e8 (8.881784197e-08)\n    test 49 _EPS4e8: _EPS4e8\n    test 50 _EPS4e8: True\n\n    test 51 _EPSjam: _EPSjam (1.81898940355e-12)\n    test 52 _EPSjam: _EPSjam\n    test 53 _EPSjam: True\n\n    test 54 _EPSmin: _EPSmin (1.49166814624e-154)\n    test 55 _EPSmin: _EPSmin\n    test 56 _EPSmin: True\n\n    test 57 _EPSqrt: _EPSqrt (1.49011611938e-08)\n    test 58 _EPSqrt: _EPSqrt\n    test 59 _EPSqrt: True\n\n    test 60 _EPStol: _EPStol (1.49011611938e-09)\n    test 61 _EPStol: _EPStol\n    test 62 _EPStol: True\n    test 63 _inf: inf\n\n    test 64 _K0_UPS: _K0_UPS (0.994)\n    test 65 _K0_UPS: _K0_UPS\n    test 66 _K0_UPS: True\n\n    test 67 _K0_UTM: _K0_UTM (0.9996)\n    test 68 _K0_UTM: _K0_UTM\n    test 69 _K0_UTM: True\n    test 70 _M_KM: 1000.0  FAILED, KNOWN, expected M.KM\n    test 71 _M_NM: 1852.0  FAILED, KNOWN, expected M.NM\n    test 72 _M_SM: 1609.344  FAILED, KNOWN, expected M.SM\n    test 73 _N_0_0: -0.0  FAILED, KNOWN, expected N.0.0\n    test 74 _N_0_5: -0.5  FAILED, KNOWN, expected N.0.5\n    test 75 _N_180_0: -180.0  FAILED, KNOWN, expected N.180.0\n    test 76 _N_1_0: -1.0  FAILED, KNOWN, expected N.1.0\n    test 77 _N_2_0: -2.0  FAILED, KNOWN, expected N.2.0\n    test 78 _N_90_0: -90.0  FAILED, KNOWN, expected N.90.0\n    test 79 _nan: nan\n    test 80 _pi: 3.141592653589793  FAILED, KNOWN, expected pi\n\n    test 81 _SQRT2: _SQRT2 (1.41421356237)\n    test 82 _SQRT2: _SQRT2\n    test 83 _SQRT2: True\n\n    test 84 _SQRT2_2: _SQRT2_2 (0.707106781187)\n    test 85 _SQRT2_2: _SQRT2_2\n    test 86 _SQRT2_2: True\n\n    test 87 _SQRT3: _SQRT3 (1.73205080757)\n    test 88 _SQRT3: _SQRT3\n    test 89 _SQRT3: True\n\n    test 90 _SQRT3_2: _SQRT3_2 (0.866025403784)\n    test 91 _SQRT3_2: _SQRT3_2\n    test 92 _SQRT3_2: True\n\n    test 93 DIG: DIG (15)\n    test 94 DIG: DIG\n    test 95 DIG: True\n    test 96 DIG: True\n\n    test 97 EPS: EPS (2.22044604925e-16)\n    test 98 EPS: EPS\n    test 99 EPS: True\n    test 100 EPS: True\n\n    test 101 EPS0: EPS0 (4.93038065763e-32)\n    test 102 EPS0: EPS0\n    test 103 EPS0: True\n    test 104 EPS0: True\n\n    test 105 EPS02: EPS02 (2.43086534291e-63)\n    test 106 EPS02: EPS02\n    test 107 EPS02: True\n    test 108 EPS02: True\n\n    test 109 EPS1: EPS1 (1.0)\n    test 110 EPS1: EPS1\n    test 111 EPS1: True\n    test 112 EPS1: True\n\n    test 113 EPS2: EPS2 (4.4408920985e-16)\n    test 114 EPS2: EPS2\n    test 115 EPS2: True\n    test 116 EPS2: True\n\n    test 117 EPS4: EPS4 (8.881784197e-16)\n    test 118 EPS4: EPS4\n    test 119 EPS4: True\n    test 120 EPS4: True\n\n    test 121 EPS8: EPS8 (1.7763568394e-15)\n    test 122 EPS8: EPS8\n    test 123 EPS8: True\n    test 124 EPS8: True\n\n    test 125 EPS_2: EPS_2 (1.11022302463e-16)\n    test 126 EPS_2: EPS_2\n    test 127 EPS_2: True\n    test 128 EPS_2: True\n\n    test 129 INF: INF (inf)\n    test 130 INF: INF\n    test 131 INF: True\n    test 132 INF: True\n\n    test 133 INT0: INT0 (0)\n    test 134 INT0: INT0\n    test 135 INT0: True\n    test 136 INT0: True\n\n    test 137 MANT_DIG: MANT_DIG (53)\n    test 138 MANT_DIG: MANT_DIG\n    test 139 MANT_DIG: True\n    test 140 MANT_DIG: True\n\n    test 141 MAX: MAX (1.79769313486e+308)\n    test 142 MAX: MAX\n    test 143 MAX: True\n    test 144 MAX: True\n\n    test 145 MAX_EXP: MAX_EXP (1024)\n    test 146 MAX_EXP: MAX_EXP\n    test 147 MAX_EXP: True\n    test 148 MAX_EXP: True\n\n    test 149 MIN: MIN (2.22507385851e-308)\n    test 150 MIN: MIN\n    test 151 MIN: True\n    test 152 MIN: True\n\n    test 153 MIN_EXP: MIN_EXP (-1021)\n    test 154 MIN_EXP: MIN_EXP\n    test 155 MIN_EXP: True\n    test 156 MIN_EXP: True\n\n    test 157 NAN: NAN (nan)\n    test 158 NAN: NAN\n    test 159 NAN: True\n    test 160 NAN: True\n\n    test 161 NEG0: NEG0 (-0)\n    test 162 NEG0: NEG0\n    test 163 NEG0: True\n    test 164 NEG0: True\n\n    test 165 NINF: NINF (-inf)\n    test 166 NINF: NINF\n    test 167 NINF: True\n    test 168 NINF: True\n\n    test 169 OVERFLOW: OVERFLOW (2.02824096037e+31)\n    test 170 OVERFLOW: OVERFLOW\n    test 171 OVERFLOW: True\n    test 172 OVERFLOW: True\n\n    test 173 PI: PI (3.14159265359)\n    test 174 PI: PI\n    test 175 PI: True\n    test 176 PI: True\n\n    test 177 PI2: PI2 (6.28318530718)\n    test 178 PI2: PI2\n    test 179 PI2: True\n    test 180 PI2: True\n\n    test 181 PI3: PI3 (9.42477796077)\n    test 182 PI3: PI3\n    test 183 PI3: True\n    test 184 PI3: True\n\n    test 185 PI3_2: PI3_2 (4.71238898038)\n    test 186 PI3_2: PI3_2\n    test 187 PI3_2: True\n    test 188 PI3_2: True\n\n    test 189 PI4: PI4 (12.5663706144)\n    test 190 PI4: PI4\n    test 191 PI4: True\n    test 192 PI4: True\n\n    test 193 PI_2: PI_2 (1.57079632679)\n    test 194 PI_2: PI_2\n    test 195 PI_2: True\n    test 196 PI_2: True\n\n    test 197 PI_3: PI_3 (1.0471975512)\n    test 198 PI_3: PI_3\n    test 199 PI_3: True\n    test 200 PI_3: True\n\n    test 201 PI_4: PI_4 (0.785398163397)\n    test 202 PI_4: PI_4\n    test 203 PI_4: True\n    test 204 PI_4: True\n\n    test 205 PI_6: PI_6 (0.523598775598)\n    test 206 PI_6: PI_6\n    test 207 PI_6: True\n    test 208 PI_6: True\n\n    test 209 R_FM: R_FM (6371000.0)\n    test 210 R_FM: R_FM\n    test 211 R_FM: True\n    test 212 R_FM: True\n\n    test 213 R_GM: R_GM (6371230.0)\n    test 214 R_GM: R_GM\n    test 215 R_GM: True\n    test 216 R_GM: True\n\n    test 217 R_KM: R_KM (6371.00877141)\n    test 218 R_KM: R_KM\n    test 219 R_KM: True\n    test 220 R_KM: True\n\n    test 221 R_M: R_M (6371008.77141)\n    test 222 R_M: R_M\n    test 223 R_M: True\n    test 224 R_M: True\n\n    test 225 R_MA: R_MA (6378137.0)\n    test 226 R_MA: R_MA\n    test 227 R_MA: True\n    test 228 R_MA: True\n\n    test 229 R_MB: R_MB (6356752.3)\n    test 230 R_MB: R_MB\n    test 231 R_MB: True\n    test 232 R_MB: True\n\n    test 233 R_NM: R_NM (3440.069531)\n    test 234 R_NM: R_NM\n    test 235 R_NM: True\n    test 236 R_NM: True\n\n    test 237 R_QM: R_QM (6372797.56086)\n    test 238 R_QM: R_QM\n    test 239 R_QM: True\n    test 240 R_QM: True\n\n    test 241 R_SM: R_SM (3958.76131605)\n    test 242 R_SM: R_SM\n    test 243 R_SM: True\n    test 244 R_SM: True\n\n    test 245 R_VM: R_VM (6366707.01949)\n    test 246 R_VM: R_VM\n    test 247 R_VM: True\n    test 248 R_VM: True\n\n    test 249 EPS: True\n    test 250 EPS+1: True\n    test 251 EPS-1: True\n\n    test 252 EPS0: True\n    test 253 EPS02: True\n\n    test 254 EPS_2: True\n    test 255 EPS_2: 1.1102230246251565e-16\n\n    test 256 EPS1: True\n    test 257 EPS1+1: True\n    test 258 EPS1-1: True\n\n    test 259 EPS2: True\n    test 260 EPS2: 4.440892098500626e-16\n\n    test 261 EPS4: True\n    test 262 EPS4: 8.881784197001252e-16\n\n    test 263 INF: True\n    test 264 INF: False\n    test 265 NINF: True\n    test 266 NINF: -inf\n\n    test 267 INT0: 0\n    test 268 INT0: True\n    test 269 INT0: True\n    test 270 INT0: False\n    test 271 INT0: False\n    test 272 INT0: False\n\n    test 273 NAN: True\n    test 274 NAN: False\n    test 275 NAN: False\n\n    test 276 NEG0: -0.0\n    test 277 NEG0: True\n    test 278 NEG0: False\n    test 279 NEG0: 0.0\n\n    test 280 _off90: True\n    test 281 _off90: True\n    test 282 float_: True\n    test 283 floats_: (1.0, 2.0, 3.0)\n\n    test 284 _0_0: True\n\n    test 285 _0_0s: 0\n    test 286 _0_0s: 0\n    test 287 _0_0s: 1\n    test 288 _0_0s: 1\n    test 289 _0_0s: 2\n    test 290 _0_0s: 2\n    test 291 _0_0s: 3\n    test 292 _0_0s: 3\n    test 293 _0_0s: 5\n    test 294 _0_0s: 5\n    test 295 _0_0s: 8\n    test 296 _0_0s: 8\n    test 297 _0_0s: 9\n    test 298 _0_0s: 9\n    test 299 _0_0s: 10\n    test 300 _0_0s: 10\n    test 301 _0_0s: 12\n    test 302 _0_0s: 12\n    test 303 _0_0s: 25\n    test 304 _0_0s: 25\n    test 305 _0_0s: 49\n    test 306 _0_0s: 49\n    test 307 _0_0s: 129\n    test 308 _0_0s: 129\n    test 309 _0_0s: 257\n    test 310 _0_0s: 257\n\n    12 of 310 testConstants.py tests (3.9%) FAILED, ALL KNOWN (pygeodesy 26.3.26 Python 3.14.3 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 700.951 us\nrunning /Library/Framewo....n3.14 -W default ~/PyGeodesy/test/testCss.py\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.CassiniSoldner from .css by testCss.py line 11\n# lazily imported pygeodesy.Css from .css by testCss.py line 11\n# lazily imported pygeodesy.CSSError from .css by testCss.py line 11\n# lazily imported pygeodesy.Ellipsoids from .ellipsoids by testCss.py line 11\n# lazily imported pygeodesy.fstr from .streprs by testCss.py line 11\n# lazily imported pygeodesy.haversine from .formy by testCss.py line 11\n# lazily imported pygeodesy.hypot from .fmath by testCss.py line 11\n# lazily imported pygeodesy.toCss from .css by testCss.py line 11\n# lazily imported pygeodesy.ellipsoidalExact by testCss.py line 124\n# lazily imported pygeodesy.ellipsoidalNvector by testCss.py line 124\n# lazily imported pygeodesy.ellipsoidalVincenty by testCss.py line 124\n\n    testing testCss.py 23.03.27 (module pygeodesy.css 25.04.14) isLazy=3\n# lazily imported pygeodesy.ellipsoidalKarney by testCss.py line 131\n# lazily imported pygeodesy.geodesicw by ellipsoids.py line 1074\n    test 1 CassiniSoldner(48.833333, 2.333333, name='Paris'): 48.833333 2.333333\n# lazily imported pygeodesy.geodesicx by css.py line 255\n    test 2 Exact: False\n    test 3 forward: -37518.854545, 230003.561828\n    test 4 reverse: 50.9, 1.8\n    test 5 forward4: -37518.854545, 230003.561828, 89.586104, 0.999983\n    test 6 equatorarc: 89.662511\n    test 7 equatorazimuth: 39.192992\n    test 8 copy(<class 'type'>): (<class 'pygeodesy.css.CassiniSoldner'>, True)\n    test 9 CassiniSoldner.copy(): (<class 'pygeodesy.css.CassiniSoldner'>, True)\n    test 10 reverse: 50.899937, 1.793161\n    test 11 forward: -38000.0, 230000.0\n    test 12 reverse4: 50.899937, 1.793161, 89.580797, 0.999982\n    test 13 reverse(pygeodesy.ellipsoidalKarney): LatLon(50°53′59.77″N, 001°47′35.38″E)\n    test 14 reverse(pygeodesy.ellipsoidalExact): LatLon(50°53′59.77″N, 001°47′35.38″E)\n    test 15 reverse(pygeodesy.ellipsoidalNvector): LatLon(50°53′59.77″N, 001°47′35.38″E)\n    test 16 reverse(pygeodesy.ellipsoidalVincenty): LatLon(50°53′59.77″N, 001°47′35.38″E)\n    test 17 CassiniSoldner(51.4934, 0.0098, name='Greenwich'): 51.4934 0.0098\n    test 18 forward: 170557.151692, -293280.6051\n    test 19 reverse: 48.833333, 2.333333\n    test 20 hypot: 339268.707  FAILED, KNOWN, expected 338901.865\n    test 21 toCss: -37518.854545 230003.561828 +1.00m\n    test 22 toCss: [E:-37518.854545, N:230003.561828, H:+1.00m, name:'Calais', C:CassiniSoldner(48.833333, 2.333333, name='Paris')]\n    test 23 Css.easting: -37518.854545\n    test 24 Css.northing: 230003.561828\n    test 25 Css.height: 1.0\n    test 26 Css.azi: 89.586103815\n    test 27 Css.rk: 0.999982722\n    test 28 Css.name: Calais\n    test 29 Css.cs0: 48.833333 2.333333\n    test 30 Css.toLatLon: LatLon(50°54′00.0″N, 001°48′00.0″E, +1.00m)\n    test 31 Css.toLatLon.height: 1.0\n    test 32 Css.toLatLon.name: Calais\n    test 33 Css.toLatLon.datum.name: WGS84\n    test 34 Css.toLatLon.height: 1.0  FAILED, KNOWN, expected height(1.0)\n    test 35 copy(<class 'type'>): (<class 'pygeodesy.css.Css'>, True)\n    test 36 Css.copy(): (<class 'pygeodesy.css.Css'>, True)\n    test 37 cs0.name: Paris\n    test 38 cs0.name: Default\n    test 39 cs0.flattening: 0.003352811\n    test 40 cs0.lat0: 0.0\n    test 41 cs0.equatoradius: 6378137.0\n    test 42 cs0.lat0: 0.0  FAILED, KNOWN, expected lat(0.0)\n    test 43 classof.height: 1.0\n    test 44 classof.azi: 89.586103815\n    test 45 classof.rk: 0.999982722\n    test 46 classof.name: Calais\n    test 47 classof.cs0: 48.833333 2.333333\n    test 48 cs0.latlon0: (48.833333, 2.333333)\n    test 49 cs0.latlon0: (48.833333, 2.333333)\n# imported pygeodesy.basics into errors.py line 443\n    test 50 cs0.latlon0: latlon0 (None): 'NoneType' object has no attribute 'lat'\n    test 51 cs0.latlon0: (48.0, 2.0)\n    test 52 datum: True\n    test 53 datum: False\n    test 54 forward6: (39142.269011, -229679.266845, 90.401497, 0.999981, 90.352206, 41.257592)\n\n    3 of 54 testCss.py tests (5.6%) FAILED, ALL KNOWN (pygeodesy 26.3.26 Python 3.14.3 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 4.647 ms\nrunning /Library/Framewo....n3.14 -W default ~/PyGeodesy/test/testDatums.py\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.Datum from .datums by testDatums.py line 11\n# lazily imported pygeodesy.Datums from .datums by testDatums.py line 11\n# lazily imported pygeodesy.Ellipsoid from .ellipsoids by testDatums.py line 11\n# lazily imported pygeodesy.Ellipsoids from .ellipsoids by testDatums.py line 11\n# lazily imported pygeodesy.R_M from .constants by testDatums.py line 11\n# lazily imported pygeodesy.Transform from .datums by testDatums.py line 11\n# lazily imported pygeodesy.Transforms from .datums by testDatums.py line 11\n\n    testing testDatums.py 24.05.17 (module pygeodesy.datums 26.01.13) isLazy=3\n    test 1 ellipsoid: True\n    test 2 transform: True\n    test 3 datum: True\n    test 4 TestEllipsiod: name='TestEllipsiod', a=1000, f=0, f_=0, b=1000\n    test 5 TestTransform: name='TestTransform', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=0.0, ry=0.0, rz=0.0, s=0.0, sx=0.0, sy=0.0, sz=0.0\n    test 6 TestDatum: name='TestDatum', ellipsoid=Ellipsoids.TestEllipsiod, transform=Transforms.TestTransform\n    test 7 ED50.inverse().inverse(): True\n    test 8 Sphere: True\n\n    test 9 all: all\n\n    test 10 BD72: name='BD72', ellipsoid=Ellipsoids.Intl1924, transform=Transforms.BD72\n    test 11 Intl1924: name='Intl1924', a=6378388, f=0.003367, f_=297, b=6356911.94612795\n    test 12 BD72: name='BD72', tx=106.87, ty=-52.298, tz=103.72, s1=1.0, rx=-1.6317e-06, ry=-2.2154e-06, rz=-8.9311e-06, s=1.2727, sx=-0.33657, sy=-0.45696, sz=-1.8422\n\n    test 13 DHDN: name='DHDN', ellipsoid=Ellipsoids.Bessel1841, transform=Transforms.DHDN\n    test 14 Bessel1841: name='Bessel1841', a=6377397.155, f=0.00334277, f_=299.1528128, b=6356078.962818\n    test 15 DHDN: name='DHDN', tx=-591.28, ty=-81.35, tz=-396.39, s1=0.99999, rx=7.1607e-06, ry=-3.5682e-07, rz=-7.0686e-06, s=-9.82, sx=1.477, sy=-0.0736, sz=-1.458\n\n    test 16 ED50: name='ED50', ellipsoid=Ellipsoids.Intl1924, transform=Transforms.ED50\n    test 17 Intl1924: name='Intl1924', a=6378388, f=0.003367, f_=297, b=6356911.94612795\n    test 18 ED50: name='ED50', tx=89.5, ty=93.8, tz=123.1, s1=1.0, rx=0.0, ry=0.0, rz=7.5631e-07, s=-1.2, sx=0.0, sy=0.0, sz=0.156\n\n    test 19 GDA2020: name='GDA2020', ellipsoid=Ellipsoids.GRS80, transform=Transforms.WGS84\n    test 20 GRS80: name='GRS80', a=6378137, f=0.00335281, f_=298.2572221, b=6356752.31414035\n    test 21 WGS84: name='WGS84', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=0.0, ry=0.0, rz=0.0, s=0.0, sx=0.0, sy=0.0, sz=0.0\n\n    test 22 GRS80: name='GRS80', ellipsoid=Ellipsoids.GRS80, transform=Transforms.WGS84\n    test 23 GRS80: name='GRS80', a=6378137, f=0.00335281, f_=298.2572221, b=6356752.31414035\n    test 24 WGS84: name='WGS84', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=0.0, ry=0.0, rz=0.0, s=0.0, sx=0.0, sy=0.0, sz=0.0\n\n    test 25 Irl1975: name='Irl1975', ellipsoid=Ellipsoids.AiryModified, transform=Transforms.Irl1975\n    test 26 AiryModified: name='AiryModified', a=6377340.189, f=0.00334085, f_=299.3249646, b=6356034.44793853\n    test 27 Irl1975: name='Irl1975', tx=-482.53, ty=130.6, tz=-564.56, s1=0.99999, rx=5.0518e-06, ry=1.0375e-06, rz=3.0592e-06, s=-8.15, sx=1.042, sy=0.214, sz=0.631\n\n    test 28 Krassovski1940: name='Krassovski1940', ellipsoid=Ellipsoids.Krassovski1940, transform=Transforms.Krassovski1940\n    test 29 Krassovski1940: name='Krassovski1940', a=6378245, f=0.00335233, f_=298.3, b=6356863.01877305\n    test 30 Krassovski1940: name='Krassovski1940', tx=-24, ty=123.0, tz=94.0, s1=1.0, rx=-9.6963e-08, ry=1.2605e-06, rz=6.3026e-07, s=-2.423, sx=-0.02, sy=0.26, sz=0.13\n\n    test 31 Krassowsky1940: name='Krassowsky1940', ellipsoid=Ellipsoids.Krassowsky1940, transform=Transforms.Krassowsky1940\n    test 32 Krassowsky1940: name='Krassowsky1940', a=6378245, f=0.00335233, f_=298.3, b=6356863.01877305\n    test 33 Krassowsky1940: name='Krassowsky1940', tx=-24, ty=123.0, tz=94.0, s1=1.0, rx=-9.6963e-08, ry=1.2605e-06, rz=6.3026e-07, s=-2.423, sx=-0.02, sy=0.26, sz=0.13\n\n    test 34 MGI: name='MGI', ellipsoid=Ellipsoids.Bessel1841, transform=Transforms.MGI\n    test 35 Bessel1841: name='Bessel1841', a=6377397.155, f=0.00334277, f_=299.1528128, b=6356078.962818\n    test 36 MGI: name='MGI', tx=-577.33, ty=-90.129, tz=-463.92, s1=1.0, rx=2.4905e-05, ry=7.1462e-06, rz=2.5681e-05, s=-2.423, sx=5.137, sy=1.474, sz=5.297\n\n    test 37 NAD27: name='NAD27', ellipsoid=Ellipsoids.Clarke1866, transform=Transforms.NAD27\n    test 38 Clarke1866: name='Clarke1866', a=6378206.4, f=0.00339008, f_=294.97869821, b=6356583.8\n    test 39 NAD27: name='NAD27', tx=8.0, ty=-160, tz=-176, s1=1.0, rx=0.0, ry=0.0, rz=0.0, s=0.0, sx=0.0, sy=0.0, sz=0.0\n\n    test 40 NAD83: name='NAD83', ellipsoid=Ellipsoids.GRS80, transform=Transforms.NAD83\n    test 41 GRS80: name='GRS80', a=6378137, f=0.00335281, f_=298.2572221, b=6356752.31414035\n    test 42 NAD83: name='NAD83', tx=1.004, ty=-1.91, tz=-0.515, s1=1.0, rx=1.2945e-07, ry=1.6484e-09, rz=5.333e-08, s=-0.0015, sx=0.0267, sy=0.00034, sz=0.011\n\n    test 43 NTF: name='NTF', ellipsoid=Ellipsoids.Clarke1880IGN, transform=Transforms.NTF\n    test 44 Clarke1880IGN: name='Clarke1880IGN', a=6378249.2, f=0.00340755, f_=293.46602129, b=6356515\n    test 45 NTF: name='NTF', tx=-168, ty=-60, tz=320.0, s1=1.0, rx=0.0, ry=0.0, rz=0.0, s=0.0, sx=0.0, sy=0.0, sz=0.0\n\n    test 46 OSGB36: name='OSGB36', ellipsoid=Ellipsoids.Airy1830, transform=Transforms.OSGB36\n    test 47 Airy1830: name='Airy1830', a=6377563.396, f=0.00334085, f_=299.3249646, b=6356256.90923729\n    test 48 OSGB36: name='OSGB36', tx=-446.45, ty=125.16, tz=-542.06, s1=1.0, rx=-7.2819e-07, ry=-1.1975e-06, rz=-4.0826e-06, s=20.489, sx=-0.1502, sy=-0.247, sz=-0.8421\n\n    test 49 Potsdam: name='Potsdam', ellipsoid=Ellipsoids.Bessel1841, transform=Transforms.Bessel1841\n    test 50 Bessel1841: name='Bessel1841', a=6377397.155, f=0.00334277, f_=299.1528128, b=6356078.962818\n    test 51 Bessel1841: name='Bessel1841', tx=-582, ty=-105, tz=-414, s1=0.99999, rx=-5.0421e-06, ry=-1.6968e-06, rz=1.4932e-05, s=-8.3, sx=-1.04, sy=-0.35, sz=3.08\n\n    test 52 Sphere: name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84\n    test 53 Sphere: name='Sphere', a=6371008.771415, f=0, f_=0, b=6371008.771415\n    test 54 WGS84: name='WGS84', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=0.0, ry=0.0, rz=0.0, s=0.0, sx=0.0, sy=0.0, sz=0.0\n\n    test 55 TokyoJapan: name='TokyoJapan', ellipsoid=Ellipsoids.Bessel1841, transform=Transforms.TokyoJapan\n    test 56 Bessel1841: name='Bessel1841', a=6377397.155, f=0.00334277, f_=299.1528128, b=6356078.962818\n    test 57 TokyoJapan: name='TokyoJapan', tx=148.0, ty=-507, tz=-685, s1=1.0, rx=0.0, ry=0.0, rz=0.0, s=0.0, sx=0.0, sy=0.0, sz=0.0\n\n    test 58 WGS72: name='WGS72', ellipsoid=Ellipsoids.WGS72, transform=Transforms.WGS72\n    test 59 WGS72: name='WGS72', a=6378135, f=0.00335278, f_=298.26, b=6356750.52001609\n    test 60 WGS72: name='WGS72', tx=0.0, ty=0.0, tz=-4.5, s1=1.0, rx=0.0, ry=0.0, rz=2.6859e-06, s=-0.22, sx=0.0, sy=0.0, sz=0.554\n\n    test 61 WGS84: name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84\n    test 62 WGS84: name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518\n    test 63 WGS84: name='WGS84', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=0.0, ry=0.0, rz=0.0, s=0.0, sx=0.0, sy=0.0, sz=0.0\n\n    test 64 total: 18\n\n    all 64 testDatums.py tests passed (pygeodesy 26.3.26 Python 3.14.3 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 1.412 ms\nrunning /Library/Framewo....n3.14 -W default ~/PyGeodesy/test/testDeprecated.py\n./pygeodesy/deprecated/classes.py:185: DeprecationWarning: class L{HeightIDW<pygeodesy.deprecated.classes.HeightIDW>} has been DEPRECATED, use class L{HeightIDWeuclidean}.\n  deprecated_class(self.__class__)\n./pygeodesy/deprecated/classes.py:198: DeprecationWarning: class L{HeightIDW2<pygeodesy.deprecated.classes.HeightIDW2>} has been DEPRECATED, use class L{HeightIDWequirectangular}.\n  deprecated_class(self.__class__)\n./pygeodesy/deprecated/classes.py:212: DeprecationWarning: class L{HeightIDW3<pygeodesy.deprecated.classes.HeightIDW3>} has been DEPRECATED, use class L{HeightIDWhaversine}.\n  deprecated_class(self.__class__)\n./test/testDeprecated.py:38: DeprecationWarning: function L{areaof<pygeodesy.deprecated.functions.areaof>} has been DEPRECATED, use function L{pygeodesy.areaOf}.\n  self.test('areaof', areaof(p, radius=R_MA), '7.086883e+09', fmt='%.6e')  # PYCHOK DEPRECATED\n./test/testDeprecated.py:41: DeprecationWarning: function L{bounds<pygeodesy.deprecated.functions.bounds>} has been DEPRECATED, use function L{pygeodesy.boundsOf}.\n  b = map2(float, bounds(p))  # PYCHOK DEPRECATED\n./test/testDeprecated.py:44: DeprecationWarning: function L{anStr<pygeodesy.deprecated.functions.anStr>} has been DEPRECATED, use function L{pygeodesy.anstr}.\n  self.test('anStr', anStr('a-b?_'), 'a-b__')  # PYCHOK DEPRECATED\n./test/testDeprecated.py:46: DeprecationWarning: function L{clipStr<pygeodesy.deprecated.functions.clipStr>} has been DEPRECATED, use function L{pygeodesy.clips}.\n  self.test('clipStr', clipStr('test/testBasics.py', limit=12), 'test/t....ics.py')  # PYCHOK DEPRECATED\n./test/testDeprecated.py:48: DeprecationWarning: function L{decodeEPSG2<pygeodesy.deprecated.functions.decodeEPSG2>} has been DEPRECATED, use function L{epsg.decode2}.\n  self.test('decodeEPSG2', decodeEPSG2(32712), \"(12, 'S')\")  # PYCHOK DEPRECATED\n./test/testDeprecated.py:49: DeprecationWarning: function L{encodeEPSG<pygeodesy.deprecated.functions.encodeEPSG>} has been DEPRECATED, use function L{epsg.encode}.\n  self.test('encodeEPSG', encodeEPSG(12, hemipole='S'), '32712')  # PYCHOK DEPRECATED\n./test/testDeprecated.py:51: DeprecationWarning: function L{equirectangular3<pygeodesy.deprecated.functions.equirectangular3>} has been DEPRECATED, use function L{pygeodesy.equirectangular4}.\n  t = equirectangular3(0, 2, 3, 4)  # PYCHOK DEPRECATED\n./test/testDeprecated.py:55: DeprecationWarning: function L{fStr<pygeodesy.deprecated.functions.fStr>} has been DEPRECATED, use function L{fstr}.\n  self.test('fStr', fStr(0.123, prec=-6), '0.123000')  # PYCHOK DEPRECATED\n./test/testDeprecated.py:56: DeprecationWarning: function L{fStr<pygeodesy.deprecated.functions.fStr>} has been DEPRECATED, use function L{fstr}.\n  self.test('fStr', fStr(0.123, prec=+6), '0.123')  # PYCHOK DEPRECATED\n./test/testDeprecated.py:57: DeprecationWarning: function L{fStr<pygeodesy.deprecated.functions.fStr>} has been DEPRECATED, use function L{fstr}.\n  self.test('fStr', fStr((0.123, 456.789), prec=+6), '0.123, 456.789')  # PYCHOK DEPRECATED\n./test/testDeprecated.py:58: DeprecationWarning: function L{fStr<pygeodesy.deprecated.functions.fStr>} has been DEPRECATED, use function L{fstr}.\n  self.test('fStr', fStr(0.123, prec=-5, fmt='%.*e'), '1.23000e-01')  # PYCHOK DEPRECATED\n./test/testDeprecated.py:59: DeprecationWarning: function L{fStr<pygeodesy.deprecated.functions.fStr>} has been DEPRECATED, use function L{fstr}.\n  self.test('fStr', fStr(0.123, prec=+5, fmt='%.*e'), '1.23e-01')  # PYCHOK DEPRECATED\n./test/testDeprecated.py:60: DeprecationWarning: function L{fStr<pygeodesy.deprecated.functions.fStr>} has been DEPRECATED, use function L{fstr}.\n  self.test('fStr', fStr(0.123, prec=+6, fmt='%.*f'), '0.123')  # PYCHOK DEPRECATED\n./test/testDeprecated.py:62: DeprecationWarning: function L{hypot3<pygeodesy.deprecated.functions.hypot3>} has been DEPRECATED, use function L{pygeodesy.hypot_}.\n  h = hypot3(3000, 200, 10)  # PYCHOK DEPRECATED\n./test/testDeprecated.py:67: DeprecationWarning: function L{isenclosedby<pygeodesy.deprecated.functions.isenclosedby>} has been DEPRECATED, use function L{pygeodesy.isenclosedBy}.\n  self.test('isenclosedby', isenclosedby(LatLon(45.5, 1.5), b), True)  # PYCHOK DEPRECATED\n./test/testDeprecated.py:71: DeprecationWarning: function L{nearestOn3<pygeodesy.deprecated.functions.nearestOn3>} has been DEPRECATED, use function L{pygeodesy.nearestOn5}.\n  t = nearestOn3(p, b, adjust=False)  # PYCHOK DEPRECATED\n./test/testDeprecated.py:74: DeprecationWarning: function L{nearestOn4<pygeodesy.deprecated.functions.nearestOn4>} has been DEPRECATED, use function L{pygeodesy.nearestOn5}.\n  t = nearestOn4(p, b, adjust=False)  # PYCHOK DEPRECATED\n./test/testDeprecated.py:78: DeprecationWarning: function L{parseUTM<pygeodesy.deprecated.functions.parseUTM>} has been DEPRECATED, use function L{parseUTM5}.\n  t = parseUTM('18 N 516620 4574500', Utm=None)  # PYCHOK Milford, PA\n./test/testDeprecated.py:82: DeprecationWarning: function L{perimeterof<pygeodesy.deprecated.functions.perimeterof>} has been DEPRECATED, use function L{pygeodesy.perimeterOf}.\n  self.test('perimeterof', perimeterof(p, radius=R_MA), '2.687460e+05', fmt='%.6e')  # PYCHOK DEPRECATED\n./test/testDeprecated.py:85: DeprecationWarning: function L{polygon<pygeodesy.deprecated.functions.polygon>} has been DEPRECATED, use function L{pygeodesy.points2}.\n  self.test('polygon', polygon(p)[0], 3)  # PYCHOK DEPRECATED\n./test/testDeprecated.py:87: DeprecationWarning: function L{simplify2<pygeodesy.deprecated.functions.simplify2>} has been DEPRECATED, use function L{pygeodesy.simplifyRW}.\n  t = simplify2(RdpFFI, 16, adjust=True, shortest=False)  # PYCHOK DEPRECATED\n./test/testDeprecated.py:90: DeprecationWarning: function L{toUtm<pygeodesy.deprecated.functions.toUtm>} has been DEPRECATED, use function L{pygeodesy.toUtm8}.\n  t = toUtm('50°52′10″N', '115°39′03″W', Utm=None, name='Mt Assiniboine')  # PYCHOK DEPRECATED\n./test/testDeprecated.py:93: DeprecationWarning: function L{utmZoneBand2<pygeodesy.deprecated.functions.utmZoneBand2>} has been DEPRECATED, use function L{pygeodesy.utmZoneBand5}.\n  t = utmZoneBand2('50°52′10″N', '115°39′03″W')  # PYCHOK DEPRECATED\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.R_MA from .constants by testDeprecated.py line 12\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by <frozen importlib._bootstrap> line 1423\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by <frozen importlib._bootstrap> line 1423\n# lazily imported pygeodesy.Conformal2Tuple from .triaxials.triaxial5 by <frozen importlib._bootstrap> line 1423\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by classes.py line 21\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by classes.py line 21\n# lazily imported pygeodesy.Conformal2Tuple from .triaxials.triaxial5 by classes.py line 21\n# lazily imported pygeodesy.deprecated by testDeprecated.py line 12\n# lazily imported pygeodesy.isDEPRECATED from .basics by testDeprecated.py line 12\n# lazily imported pygeodesy.unstr from .streprs by testDeprecated.py line 12\n# lazily imported pygeodesy.HeightIDWequirectangular from .heights by testDeprecated.py line 12\n# lazily imported pygeodesy.HeightIDWeuclidean from .heights by testDeprecated.py line 12\n# lazily imported pygeodesy.HeightIDWhaversine from .heights by testDeprecated.py line 12\n# lazily imported pygeodesy.LatLon_ from .points by testRoutes.py line 13\n# lazily imported pygeodesy.R_KM from .constants by testRoutes.py line 13\n# lazily imported pygeodesy.R_M from .constants by testRoutes.py line 13\n# lazily imported pygeodesy.ellipsoidalVincenty by testRoutes.py line 13\n# lazily imported pygeodesy.sphericalTrigonometry by testRoutes.py line 13\n# lazily imported pygeodesy.areaOf from .points by testRoutes.py line 13\n# lazily imported pygeodesy.isclockwise from .points by testRoutes.py line 13\n# lazily imported pygeodesy.perimeterOf from .points by testRoutes.py line 13\n\n    testing testDeprecated.py 25.05.09 (module pygeodesy.deprecated 26.02.08) isLazy=3\n# imported pygeodesy.formy into heights.py line 882\n\n    test 1 HeightIDW: True\n    test 2 HeightIDW2: True\n    test 3 HeightIDW3: True\n\n# lazily imported pygeodesy.booleans by points.py line 978\n    test 4 areaof: 7.086883e+09\n    test 5 bounds: (-85.0, -180.0, 85.0, 90.0)\n    test 6 anStr: a-b__\n    test 7 clipStr: test/t....ics.py\n# lazily imported pygeodesy.epsg by functions.py line 119\n    test 8 decodeEPSG2: (12, 'S')\n    test 9 encodeEPSG: 32712\n    test 10 equirectangular3: 3\n    test 11 equirectangular3: 12.997\n    test 12 fStr: 0.123000\n    test 13 fStr: 0.123\n    test 14 fStr: 0.123, 456.789\n    test 15 fStr: 1.23000e-01\n    test 16 fStr: 1.23e-01\n    test 17 fStr: 0.123\n    test 18 hypot3: 3006.675905\n    test 19 isenclosedby: True\n    test 20 nearestOn3: 3\n    test 21 nearestOn3: (45.5, 1.5)\n    test 22 nearestOn4: 4\n    test 23 nearestOn4: (45.5, 1.5)\n    test 24 parseUTM: (18, 'N', 516620.0, 4574500.0)\n    test 25 perimeterof: 2.687460e+05\n    test 26 polygon: 3\n# lazily imported pygeodesy.simplify by functions.py line 340\n    test 27 simplify2: 4\n    test 28 toUtm: 6\n    test 29 utmZoneBand2: (11, 'U')\n\n    test 30 HeightIDW: True\n    test 31 HeightIDW2: True\n    test 32 HeightIDW3: True\n\n    test 33 areaof: 7.086883e+09\n    test 34 bounds: (-85.0, -180.0, 85.0, 90.0)\n    test 35 anStr: a-b__\n    test 36 clipStr: test/t....ics.py\n    test 37 decodeEPSG2: (12, 'S')\n    test 38 encodeEPSG: 32712\n    test 39 equirectangular3: 3\n    test 40 equirectangular3: 12.997\n    test 41 fStr: 0.123000\n    test 42 fStr: 0.123\n    test 43 fStr: 0.123, 456.789\n    test 44 fStr: 1.23000e-01\n    test 45 fStr: 1.23e-01\n    test 46 fStr: 0.123\n    test 47 hypot3: 3006.675905\n    test 48 isenclosedby: True\n    test 49 nearestOn3: 3\n    test 50 nearestOn3: (45.5, 1.5)\n    test 51 nearestOn4: 4\n    test 52 nearestOn4: (45.5, 1.5)\n    test 53 parseUTM: (18, 'N', 516620.0, 4574500.0)\n    test 54 perimeterof: 2.687460e+05\n# imported pygeodesy.formy into latlonBase.py line 756\n    test 55 polygon: 3\n    test 56 simplify2: 4\n    test 57 toUtm: 6\n    test 58 utmZoneBand2: (11, 'U')\n\n    test 59 HeightIDW: True\n    test 60 HeightIDW2: True\n    test 61 HeightIDW3: True\n\n    test 62 areaof: 7.086883e+09\n    test 63 bounds: (-85.0, -180.0, 85.0, 90.0)\n    test 64 anStr: a-b__\n    test 65 clipStr: test/t....ics.py\n    test 66 decodeEPSG2: (12, 'S')\n    test 67 encodeEPSG: 32712\n    test 68 equirectangular3: 3\n    test 69 equirectangular3: 12.997\n    test 70 fStr: 0.123000\n    test 71 fStr: 0.123\n    test 72 fStr: 0.123, 456.789\n    test 73 fStr: 1.23000e-01\n    test 74 fStr: 1.23e-01\n    test 75 fStr: 0.123\n    test 76 hypot3: 3006.675905\n    test 77 isenclosedby: True\n    test 78 nearestOn3: 3\n    test 79 nearestOn3: (45.5, 1.5)\n    test 80 nearestOn4: 4\n    test 81 nearestOn4: (45.5, 1.5)\n    test 82 parseUTM: (18, 'N', 516620.0, 4574500.0)\n    test 83 perimeterof: 2.687460e+05\n    test 84 polygon: 3\n    test 85 simplify2: 4\n    test 86 toUtm: 6\n    test 87 utmZoneBand2: (11, 'U')\n\n    test 88 deprecated: 7\n    test 89 isDEPRECATED('bases'): True\n    test 90 isDEPRECATED('datum'): True\n    test 91 isDEPRECATED('nvector'): True\n    test 92 isDEPRECATED('rhumbaux'): True\n    test 93 isDEPRECATED('rhumbBase'): True\n    test 94 isDEPRECATED('rhumbsolve'): True\n    test 95 isDEPRECATED('rhumbx'): True\n\n    78 of 95 testDeprecated.py tests (82.1%) FAILED, incl. 78 DeprecationWarnings (pygeodesy 26.3.26 Python 3.14.3 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 24.545 ms\nrunning /Library/Framewo....n3.14 -W default ~/PyGeodesy/test/testDms.py\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.F_D from .dms by testDms.py line 11\n# lazily imported pygeodesy.F_DM from .dms by testDms.py line 11\n# lazily imported pygeodesy.F_DMS from .dms by testDms.py line 11\n# lazily imported pygeodesy.F_DEG from .dms by testDms.py line 11\n# lazily imported pygeodesy.F_MIN from .dms by testDms.py line 11\n# lazily imported pygeodesy.F_SEC from .dms by testDms.py line 11\n# lazily imported pygeodesy.F_RAD from .dms by testDms.py line 11\n# lazily imported pygeodesy.F_D60 from .dms by testDms.py line 11\n# lazily imported pygeodesy.F_D_ from .dms by testDms.py line 11\n# lazily imported pygeodesy.F_DM_ from .dms by testDms.py line 11\n# lazily imported pygeodesy.F_DMS_ from .dms by testDms.py line 11\n# lazily imported pygeodesy.F_DEG_ from .dms by testDms.py line 11\n# lazily imported pygeodesy.F_MIN_ from .dms by testDms.py line 11\n# lazily imported pygeodesy.F_SEC_ from .dms by testDms.py line 11\n# lazily imported pygeodesy.F_RAD_ from .dms by testDms.py line 11\n# lazily imported pygeodesy.F_D60_ from .dms by testDms.py line 11\n# lazily imported pygeodesy.F_D__ from .dms by testDms.py line 11\n# lazily imported pygeodesy.F_DM__ from .dms by testDms.py line 11\n# lazily imported pygeodesy.F_DMS__ from .dms by testDms.py line 11\n# lazily imported pygeodesy.F_DEG__ from .dms by testDms.py line 11\n# lazily imported pygeodesy.F_MIN__ from .dms by testDms.py line 11\n# lazily imported pygeodesy.F_SEC__ from .dms by testDms.py line 11\n# lazily imported pygeodesy.F_RAD__ from .dms by testDms.py line 11\n# lazily imported pygeodesy.F_D60__ from .dms by testDms.py line 11\n# lazily imported pygeodesy.compassPoint from .dms by testDms.py line 11\n# lazily imported pygeodesy.degDMS from .dms by testDms.py line 11\n# lazily imported pygeodesy.fstr from .streprs by testDms.py line 11\n# lazily imported pygeodesy.parseDDDMMSS from .dms by testDms.py line 11\n# lazily imported pygeodesy.parseDMS from .dms by testDms.py line 11\n# lazily imported pygeodesy.ParseError from .errors by testDms.py line 11\n# lazily imported pygeodesy.parse3llh from .dms by testDms.py line 11\n# lazily imported pygeodesy.RangeError from .errors by testDms.py line 11\n# lazily imported pygeodesy.rangerrors from .errors by testDms.py line 11\n# lazily imported pygeodesy.toDMS from .dms by testDms.py line 11\n\n    testing testDms.py 23.03.27 (module pygeodesy.dms 25.08.31) isLazy=3\n    test 1 parseDMS('0.0°'): 0.0\n    test 2 parseDMS('0°'): 0.0\n    test 3 parseDMS('000°00'00\"'): 0.0\n    test 4 parseDMS('000°00'00.0\"'): 0.0\n    test 5 parseDMS('000° 00'00\"'): 0.0\n    test 6 parseDMS('000°00 ' 00.0\"'): 0.0\n    test 7 parseDMS('000° 00' 00.0'): 0.0\n    test 8 parseDMS('000°-00′-00.0\"'): 0.0\n    test 9 parseDDDMMSS(1): 1.0\n    test 10 parseDMS(1): 1.0\n    test 11 parseDDDMMSS(12): 12.0\n    test 12 parseDMS(12): 12.0\n    test 13 parseDDDMMSS(123): 123.0\n    test 14 parseDMS(123): 123.0\n    test 15 parseDDDMMSS(1234): 12.567\n    test 16 parseDMS(1234): 1234.0\n    test 17 parseDDDMMSS(12345): 123.75\n    test 18 parseDMS(12345): 12345.0\n    test 19 parseDDDMMSS(123456): 12.582\n    test 20 parseDMS(123456): 123456.0\n    test 21 parseDDDMMSS(1234567): 123.769\n    test 22 parseDMS(1234567): 1234567.0\n    test 23 parseDDDMMSS(12345678): 1234.955\n    test 24 parseDMS(12345678): 12345678.0\n    test 25 parseDDDMMSS(0.1): 0.1\n    test 26 parseDMS(0.1): 0.1\n    test 27 parseDDDMMSS(1.2): 1.2\n    test 28 parseDMS(1.2): 1.2\n    test 29 parseDDDMMSS(12.3): 12.3\n    test 30 parseDMS(12.3): 12.3\n    test 31 parseDDDMMSS(123.4): 123.4\n    test 32 parseDMS(123.4): 123.4\n    test 33 parseDDDMMSS(1234.5): 12.575\n    test 34 parseDMS(1234.5): 1234.5\n    test 35 parseDDDMMSS(12345.6): 123.76\n    test 36 parseDMS(12345.6): 12345.6\n    test 37 parseDDDMMSS(123456.7): 12.582\n    test 38 parseDMS(123456.7): 123456.7\n    test 39 parseDDDMMSS('1N'): 1.0\n    test 40 parseDMS('1N'): 1.0\n    test 41 parseDDDMMSS('12S'): -12.0\n    test 42 parseDMS('12S'): -12.0\n    test 43 parseDDDMMSS('012.3W'): -12.3\n    test 44 parseDMS('012.3W'): -12.3\n    test 45 parseDDDMMSS('123E'): 123.0\n    test 46 parseDMS('123E'): 123.0\n    test 47 parseDDDMMSS('1234N'): 12.567\n    test 48 parseDMS('1234N'): 1234.0\n    test 49 parseDDDMMSS('12345E'): 123.75\n    test 50 parseDMS('12345E'): 12345.0\n    test 51 parseDDDMMSS('1234.5S'): -12.575\n    test 52 parseDMS('1234.5S'): -1234.5\n    test 53 parseDDDMMSS('12345.6E'): 123.76\n    test 54 parseDMS('12345.6E'): 12345.6\n    test 55 parseDDDMMSS('123456.7S'): -12.582\n    test 56 parseDMS('123456.7S'): -123456.7\n    test 57 parseDDDMMSS('1234567.8W'): -123.769\n    test 58 parseDMS('1234567.8W'): -1234567.8\n    test 59 parseDDDMMSS('12345678E'): 12345678.0\n    test 60 parseDMS('12345678E'): 12345678.0\n    test 61 parseDDDMMSS(345.0, NS): 3.75\n    test 62 parseDDDMMSS(345.0, EW): 345.0\n    test 63 parseDDDMMSS(5430.0, NS): 54.5\n    test 64 parseDDDMMSS(5430.0, EW): 54.5\n    test 65 parseDDDMMSS(76.5432, sexagecimal=False): 76.5432\n    test 66 parseDDDMMSS(76.5432, sexagecimal=True): 76.9089\n    test 67 parseDDDMMSS(00.0102, sexagecimal=False): 0.0102\n    test 68 parseDDDMMSS(00.0102, sexagecimal=True): 0.0172\n# imported pygeodesy.basics into errors.py line 443\n    test 69 parseDDDMMSS('12E'): ParseError(\"sexagecimal (False), strDDDMMSS ('12E') or suffix ('NSEW'): form DDMMSS applies N-S: invalid\")\n    test 70 parseDMS('12E'): 12.0\n    test 71 parseDDDMMSS('012.3S'): ParseError(\"sexagecimal (False), strDDDMMSS ('012.3S') or suffix ('NSEW'): form DDDMMSS applies E-W: invalid\")\n    test 72 parseDMS('012.3S'): -12.3\n    test 73 parseDDDMMSS('123N'): ParseError(\"sexagecimal (False), strDDDMMSS ('123N') or suffix ('NSEW'): form DDDMMSS applies E-W: invalid\")\n    test 74 parseDMS('123N'): 123.0\n    test 75 parseDDDMMSS('1234E'): ParseError(\"sexagecimal (False), strDDDMMSS ('1234E') or suffix ('NSEW'): form DDMMSS applies N-S: invalid\")\n    test 76 parseDMS('1234E'): 1234.0\n    test 77 parseDDDMMSS('12345N'): ParseError(\"sexagecimal (False), strDDDMMSS ('12345N') or suffix ('NSEW'): form DDDMMSS applies E-W: invalid\")\n    test 78 parseDMS('12345N'): 12345.0\n    test 79 parseDDDMMSS('1234.5W'): ParseError(\"sexagecimal (False), strDDDMMSS ('1234.5W') or suffix ('NSEW'): form DDMMSS applies N-S: invalid\")\n    test 80 parseDMS('1234.5W'): -1234.5\n    test 81 parseDDDMMSS('123456E'): ParseError(\"sexagecimal (False), strDDDMMSS ('123456E') or suffix ('NSEW'): form DDMMSS applies N-S: invalid\")\n    test 82 parseDMS('123456E'): 123456.0\n    test 83 parseDDDMMSS('1234567S'): ParseError(\"sexagecimal (False), strDDDMMSS ('1234567S') or suffix ('NSEW'): form DDDMMSS applies E-W: invalid\")\n    test 84 parseDMS('1234567S'): -1234567.0\n    test 85 parseDMS: strDMS (181) or suffix ('NSEW'): 181 beyond 180.0 degrees\n    test 86 parseDMS: -90.0\n    test 87 parse3llh: 51.477811, -0.001475, 0.0\n    test 88 toDMS(dm): 46°00.0′\n    test 89 toDMS(dm): 46°00.0′\n    test 90 toDMS(dm): 45°59.99′\n    test 91 toDMS(dm): 45°59.999′\n    test 92 toDMS(dms): 46°00′00.0″\n    test 93 toDMS(dms): 45°59′59.96″\n    test 94 toDMS(dms): 45°59′59.964″\n    test 95 toDMS(d60): 45.5959964\n    test 96 toDMS(d60): 45°45′45.36″\n    test 97 toDMS(d60): 45d45m45.36s\n    test 98 normDMS: 45°45′45.36″\n    test 99 parseDMS: 45.7626\n    test 100 toDMS(d): 45.7626°\n    test 101 toDMS(d): -45.7626°\n    test 102 toDMS(dm): 45°45.756′\n    test 103 toDMS(dm): -45°45.756′\n    test 104 toDMS(dms): 45°45′45.36″\n    test 105 toDMS(dms): -45°45′45.36″\n    test 106 toDMS(deg): 45.7626\n    test 107 toDMS(deg): -45.7626\n    test 108 toDMS(min): 4545.756\n    test 109 toDMS(min): -4545.756\n    test 110 toDMS(sec): 454545.36\n    test 111 toDMS(sec): -454545.36\n    test 112 toDMS(rad): 0.79871\n    test 113 toDMS(rad): -0.79871\n    test 114 toDMS(d60): 45.4545\n    test 115 toDMS(d60): -45.4545\n    test 116 toDMS(d): 45.7626°\n    test 117 toDMS(d): -45.7626°\n    test 118 toDMS(dm): 45°45.7560′\n    test 119 toDMS(dm): -45°45.7560′\n    test 120 toDMS(dms): 45°45′45.36″\n    test 121 toDMS(dms): -45°45′45.36″\n    test 122 toDMS(deg): 45.762600\n    test 123 toDMS(deg): -45.762600\n    test 124 toDMS(min): 4545.75600\n    test 125 toDMS(min): -4545.75600\n    test 126 toDMS(sec): 454545.360\n    test 127 toDMS(sec): -454545.360\n    test 128 toDMS(rad): 0.798708\n    test 129 toDMS(rad): -0.798708\n    test 130 toDMS(d60): 45.4545360\n    test 131 toDMS(d60): -45.4545360\n    test 132 toDMS(-d): 45.7626°\n    test 133 toDMS(-d): -45.7626°\n    test 134 toDMS(-dm): 45°45.7560′\n    test 135 toDMS(-dm): -45°45.7560′\n    test 136 toDMS(-dms): 45°45′45.36″\n    test 137 toDMS(-dms): -45°45′45.36″\n    test 138 toDMS(-deg): 45.762600\n    test 139 toDMS(-deg): -45.762600\n    test 140 toDMS(-min): 4545.75600\n    test 141 toDMS(-min): -4545.75600\n    test 142 toDMS(-sec): 454545.360\n    test 143 toDMS(-sec): -454545.360\n    test 144 toDMS(-rad): 0.798708\n    test 145 toDMS(-rad): -0.798708\n    test 146 toDMS(-d60): 45.45453600\n    test 147 toDMS(-d60): -45.45453600\n    test 148 toDMS(+d): +45.7626°\n    test 149 toDMS(+d): -45.7626°\n    test 150 toDMS(+dm): +45°45.7560′\n    test 151 toDMS(+dm): -45°45.7560′\n    test 152 toDMS(+dms): +45°45′45.36″\n    test 153 toDMS(+dms): -45°45′45.36″\n    test 154 toDMS(+deg): +45.762600\n    test 155 toDMS(+deg): -45.762600\n    test 156 toDMS(+min): +4545.75600\n    test 157 toDMS(+min): -4545.75600\n    test 158 toDMS(+sec): +454545.360\n    test 159 toDMS(+sec): -454545.360\n    test 160 toDMS(+rad): +0.798708\n    test 161 toDMS(+rad): -0.798708\n    test 162 toDMS(+d60): +45.454536\n    test 163 toDMS(+d60): -45.454536\n    test 164 compassPoint(1,): N\n    test 165 compassPoint(0,): N\n    test 166 compassPoint(-1,): N\n    test 167 compassPoint(359,): N\n    test 168 compassPoint(24,): NNE\n    test 169 compassPoint(24, 1): N\n    test 170 compassPoint(24, 2): NE\n    test 171 compassPoint(24, 3): NNE\n    test 172 compassPoint(226,): SW\n    test 173 compassPoint(226, 1): W\n    test 174 compassPoint(226, 2): SW\n    test 175 compassPoint(226, 3): SW\n    test 176 compassPoint(237,): WSW\n    test 177 compassPoint(237, 1): W\n    test 178 compassPoint(237, 2): SW\n    test 179 compassPoint(237, 3): WSW\n    test 180 compassPoint(11.25,): NNE\n    test 181 compassPoint(11.249,): N\n    test 182 compassPoint(-11.25,): N\n    test 183 compassPoint(348.749,): NNW\n    test 184 compassPoint(45, 1): E\n    test 185 compassPoint(44.99, 1): N\n    test 186 compassPoint(45, 2): NE\n    test 187 compassPoint(44.99, 2): NE\n    test 188 compassPoint(45, 3): NE\n    test 189 compassPoint(44.99, 3): NE\n    test 190 compassPoint(45, 4): NE\n    test 191 compassPoint(44.99, 4): NE\n    test 192 compassPoint(22.5, 1): N\n    test 193 compassPoint(22.49, 1): N\n    test 194 compassPoint(22.5, 2): NE\n    test 195 compassPoint(22.49, 2): N\n    test 196 compassPoint(22.5, 3): NNE\n    test 197 compassPoint(22.49, 3): NNE\n    test 198 compassPoint(22.5, 4): NNE\n    test 199 compassPoint(22.49, 4): NNE\n    test 200 compassPoint(11.25, 1): N\n    test 201 compassPoint(11.249, 1): N\n    test 202 compassPoint(11.25, 2): N\n    test 203 compassPoint(11.249, 2): N\n    test 204 compassPoint(11.25, 3): NNE\n    test 205 compassPoint(11.249, 3): N\n    test 206 compassPoint(11.25, 4): NbE\n    test 207 compassPoint(11.249, 4): NbE\n    test 208 compassPoint(24, 1): N\n    test 209 compassPoint(24, 2): NE\n    test 210 compassPoint(24, 3): NNE\n    test 211 compassPoint(24,): NNE\n    test 212 compassPoint(18, 3): NNE\n    test 213 compassPoint(11, 4): NbE\n    test 214 compassPoint(30, 4): NEbN\n    test 215 compassPoint(11.25): NbE\n    test 216 compassPoint(33.75): NEbN\n    test 217 compassPoint(56.25): NEbE\n    test 218 compassPoint(78.75): EbN\n    test 219 compassPoint(101.25): EbS\n    test 220 compassPoint(123.75): SEbE\n    test 221 compassPoint(146.25): SEbS\n    test 222 compassPoint(168.75): SbE\n    test 223 compassPoint(191.25): SbW\n    test 224 compassPoint(213.75): SWbS\n    test 225 compassPoint(236.25): SWbW\n    test 226 compassPoint(258.75): WbS\n    test 227 compassPoint(281.25): WbN\n    test 228 compassPoint(303.75): NWbW\n    test 229 compassPoint(326.25): NWbN\n    test 230 compassPoint(348.75): NbW\n    test 231 _DEG: +1.0101\n    test 232 _MIN: +0.606′\n    test 233 _SEC: +36.36″\n\n    all 233 testDms.py tests passed (pygeodesy 26.3.26 Python 3.14.3 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 1.230 ms\nrunning /Library/Framewo....n3.14 -W default ~/PyGeodesy/test/testEcef.py\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.Datums from .datums by testEcef.py line 11\n# lazily imported pygeodesy.EcefError from .ecef by testEcef.py line 11\n# lazily imported pygeodesy.EcefFarrell21 from .ecef by testEcef.py line 11\n# lazily imported pygeodesy.EcefFarrell22 from .ecef by testEcef.py line 11\n# lazily imported pygeodesy.EcefKarney from .ecef by testEcef.py line 11\n# lazily imported pygeodesy.EcefMatrix from .ecef by testEcef.py line 11\n# lazily imported pygeodesy.EcefSudano from .ecef by testEcef.py line 11\n# lazily imported pygeodesy.EcefUPC from .ecef by testEcef.py line 11\n# lazily imported pygeodesy.EcefVeness from .ecef by testEcef.py line 11\n# lazily imported pygeodesy.EcefYou from .ecef by testEcef.py line 11\n# lazily imported pygeodesy.Ellipsoids from .ellipsoids by testEcef.py line 11\n# lazily imported pygeodesy.fstr from .streprs by testEcef.py line 11\n# lazily imported pygeodesy.latDMS from .dms by testEcef.py line 11\n# lazily imported pygeodesy.lonDMS from .dms by testEcef.py line 11\n# lazily imported pygeodesy.parse3llh from .dms by testEcef.py line 11\n# lazily imported pygeodesy.sphericalNvector by testEcef.py line 11\n# lazily imported pygeodesy.ellipsoidalExact by testEcef.py line 258\n# lazily imported pygeodesy.ellipsoidalKarney by testEcef.py line 258\n# lazily imported pygeodesy.ellipsoidalNvector by testEcef.py line 258\n# lazily imported pygeodesy.ellipsoidalVincenty by testEcef.py line 258\n# lazily imported pygeodesy.sphericalTrigonometry by testEcef.py line 258\n\n    testing testEcef.py 25.08.24 isLazy=3\n\n    test 1 EcefKarney: ...\n    test 2 name: Test\n    test 3 toStr: EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name='Test')  FAILED, KNOWN, expected EcefKarney\n    test 4 a, f: a=6378137.0, f=0.003352811, datum=Datum(name='_Test', ellipsoid=Ellipsoids._Test, transform=Transforms.Identity), name='Test'  FAILED, KNOWN, expected EcefKarney\n    test 5 copy(<class 'type'>): (<class 'pygeodesy.ecef.EcefKarney'>, True)\n    test 6 EcefKarney.copy(): (<class 'pygeodesy.ecef.EcefKarney'>, True)\n    test 7 forward: 27.99, 86.93, 8820.0\n    test 8 forward: 302271.4, 5635928.4, 2979666.1\n    test 9 name: Test\n    test 10 reverse: 302271.4, 5635928.4, 2979666.1\n    test 11 reverse: 27.99, 86.93, 8820.01\n    test 12 case: 1\n    test 13 iteration: None\n    test 14 name: Test\n    test 15 reverse: 302000.0, 5636000.0, 2980000.0\n    test 16 reverse: 27.99, 86.93, 9027.03\n    test 17 case: 1\n    test 18 iteration: None\n    test 19 forward: 27.99, 86.93, 8820.0\n    test 20 forward: 302271.43, 5635928.37, 2979666.13\n    test 21 forward: 33.3, 44.4, 6000.0\n    test 22 forward: 3816209.6, 3737108.55, 3485109.57\n    test 23 reverse: 3816209.6, 3737108.55, 3485109.57\n    test 24 reverse: 33.3, 44.4, 5999.996\n    test 25 case: 1\n    test 26 iteration: None\n    test 27 reverse: 30000.0, 30000.0, 0.0\n    test 28 reverse: 6.483, 45.0, -6335709.726\n    test 29 case: 3\n    test 30 iteration: None\n    test 31 forward: 6.483, 45.0, -6335709.726\n    test 32 forward: 30000.0, 30000.0, -0.0\n    test 33 Vermeille: -168.919\n    test 34 Vermeille: 190.939\n    test 35 Vermeille: (65.772506, 169.060801)\n    test 36 Vermeille: (1.147947, 3.141593)\n    test 37 reverse-1: 45.0, 120.0, 1000.0\n    test 38 forward-1: -2259149.0, 3912960.8, 4488055.5\n    test 39 xyzh-1: -2259149.0, 3912960.8, 4488055.5, 1000.0\n    test 40 philam-1: 0.7854, 2.0944\n    test 41 reverse-2: 45.0, 120.0, 2000.0\n    test 42 forward-2: -2259502.5, 3913573.2, 4488762.6\n    test 43 xyzh-2: -2259502.5, 3913573.2, 4488762.6, 2000.0\n    test 44 philam-2: 0.7854, 2.0944\n    test 45 reverse-3: 45.0, 120.0, 3000.0\n    test 46 forward-3: -2259856.1, 3914185.6, 4489469.7\n    test 47 xyzh-3: -2259856.1, 3914185.6, 4489469.7, 3000.0\n    test 48 philam-3: 0.7854, 2.0944\n    test 49 reverse-4: 45.0, 120.0, 4000.0\n    test 50 forward-4: -2260209.7, 3914798.0, 4490176.8\n    test 51 xyzh-4: -2260209.7, 3914798.0, 4490176.8, 4000.0\n    test 52 philam-4: 0.7854, 2.0944\n    test 53 reverse-5: 45.0, 120.0, 10000.0\n    test 54 forward-5: -2262331.0, 3918472.2, 4494419.5\n    test 55 xyzh-5: -2262331.0, 3918472.2, 4494419.5, 10000.0\n    test 56 philam-5: 0.7854, 2.0944\n    test 57 reverse-6: 45.0, 120.0, 20000.0\n    test 58 forward-6: -2265866.5, 3924595.9, 4501490.5\n    test 59 xyzh-6: -2265866.5, 3924595.9, 4501490.5, 20000.0\n    test 60 philam-6: 0.7854, 2.0944\n    test 61 reverse-7: 45.0, 120.0, 100000.0\n    test 62 forward-7: -2294150.8, 3973585.7, 4558059.1\n    test 63 xyzh-7: -2294150.8, 3973585.7, 4558059.1, 100000.0\n    test 64 philam-7: 0.7854, 2.0944\n    test 65 reverse-8: 45.0, 120.0, 800000.0\n    test 66 forward-8: -2541638.2, 4402246.4, 5053033.8\n    test 67 xyzh-8: -2541638.2, 4402246.4, 5053033.8, 800000.0\n    test 68 philam-8: 0.7854, 2.0944\n    test 69 reverse-9: 45.0, 120.0, 1000000.0\n    test 70 forward-9: -2612348.8, 4524720.9, 5194455.2\n    test 71 xyzh-9: -2612348.8, 4524720.9, 5194455.2, 1000000.0\n    test 72 philam-9: 0.7854, 2.0944\n    test 73 sudano: 45.0, 0.0, 100000.0\n    test 74 name: OS-UK\n    test 75 forward: 53.61199036, -1.66444222, 299.8\n    test 76 forward: 3790644.9, -110149.21, 5111482.97\n    test 77 reverse: 3790644.9, -110149.21, 5111482.97\n    test 78 reverse: 53.61199036, -1.66444223\n    test 79 reverse.lat: 53°36′43.1653″N\n    test 80 reverse.lon: 001°39′51.992″W\n    test 81 reverse.height: 299.800\n    test 82 case: 1\n    test 83 iteration: None\n    test 84 forward: -2430601.827685, -4702442.703125, 3546587.358103\n    test 85 reverse: 34.0, -117.333569, 251.702\n    test 86 forward_: -2430601.812953, -4702442.744488, 3546587.313654, 34.0, -117.333569, 251.702\n    test 87 EcefError: (0.0, 0.0, 0.0, 90.0, 0, -6356752.31414, 3, None, Datum(name='Datum', ellipsoid=Ellipsoids.GRS80, transform=Transforms.Identity))  FAILED, KNOWN, expected (0.0, 0.0, ...)\n# imported pygeodesy.basics into errors.py line 531\n    test 88 EcefError: height (None), lat (None) or lon (None)  FAILED, KNOWN, expected lat (None), lon (None) ...\n    test 89 EcefKarney: EcefKarney(a=None, f=None) ellipsoid: type(earth) (None): not a Datum, Ellipsoid, Ellipsoid2 or a_f2Tuple  FAILED, KNOWN, expected EcefKarney\n    test 90 Mx: (0.888348, 0.25558, -0.381466, -0.45917, 0.494465, -0.738015, 0.0, 0.830773, 0.556612)\n\n    test 91 EcefFarrell21: ...\n    test 92 name: Test\n    test 93 toStr: EcefFarrell21(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name='Test')  FAILED, KNOWN, expected EcefFarrell21\n    test 94 a, f: a=6378137.0, f=0.003352811, datum=Datum(name='_Test', ellipsoid=Ellipsoids._Test, transform=Transforms.Identity), name='Test'  FAILED, KNOWN, expected EcefFarrell21\n    test 95 copy(<class 'type'>): (<class 'pygeodesy.ecef.EcefFarrell21'>, True)\n    test 96 EcefFarrell21.copy(): (<class 'pygeodesy.ecef.EcefFarrell21'>, True)\n    test 97 forward: 27.99, 86.93, 8820.0\n    test 98 forward: 302271.4, 5635928.4, 2979666.1\n    test 99 name: Test\n    test 100 reverse: 302271.4, 5635928.4, 2979666.1\n    test 101 reverse: 27.99, 86.93, 8820.01\n    test 102 case: 1\n    test 103 iteration: None\n    test 104 name: Test\n    test 105 reverse: 302000.0, 5636000.0, 2980000.0\n    test 106 reverse: 27.99, 86.93, 9027.03\n    test 107 case: 1\n    test 108 iteration: None\n    test 109 forward: 27.99, 86.93, 8820.0\n    test 110 forward: 302271.43, 5635928.37, 2979666.13\n    test 111 forward: 33.3, 44.4, 6000.0\n    test 112 forward: 3816209.6, 3737108.55, 3485109.57\n    test 113 reverse: 3816209.6, 3737108.55, 3485109.57\n    test 114 reverse: 33.3, 44.4, 5999.996\n    test 115 case: 1\n    test 116 iteration: None\n    test 117 reverse: 30000.0, 30000.0, 0.0\n    test 118 reverse: 0.0, 45.0, -6335710.593  FAILED, KNOWN, expected 6.483, 45.0, -6335709.726\n    test 119 case: 3\n    test 120 iteration: None\n    test 121 forward: 6.483, 45.0, -6335709.726\n    test 122 forward: 30000.0, 30000.0, -0.0\n    test 123 Vermeille: -168.919\n    test 124 Vermeille: 190.939\n    test 125 Vermeille: (65.772506, 169.060801)\n    test 126 Vermeille: (1.147947, 3.141593)\n    test 127 reverse-1: 45.0, 120.0, 1000.0\n    test 128 forward-1: -2259149.0, 3912960.8, 4488055.5\n    test 129 xyzh-1: -2259149.0, 3912960.8, 4488055.5, 1000.0\n    test 130 philam-1: 0.7854, 2.0944\n    test 131 reverse-2: 45.0, 120.0, 2000.0\n    test 132 forward-2: -2259502.5, 3913573.2, 4488762.6\n    test 133 xyzh-2: -2259502.5, 3913573.2, 4488762.6, 2000.0\n    test 134 philam-2: 0.7854, 2.0944\n    test 135 reverse-3: 45.0, 120.0, 3000.0\n    test 136 forward-3: -2259856.1, 3914185.6, 4489469.7\n    test 137 xyzh-3: -2259856.1, 3914185.6, 4489469.7, 3000.0\n    test 138 philam-3: 0.7854, 2.0944\n    test 139 reverse-4: 45.0, 120.0, 4000.0\n    test 140 forward-4: -2260209.7, 3914798.0, 4490176.8\n    test 141 xyzh-4: -2260209.7, 3914798.0, 4490176.8, 4000.0\n    test 142 philam-4: 0.7854, 2.0944\n    test 143 reverse-5: 45.0, 120.0, 10000.0\n    test 144 forward-5: -2262331.0, 3918472.2, 4494419.5\n    test 145 xyzh-5: -2262331.0, 3918472.2, 4494419.5, 10000.0\n    test 146 philam-5: 0.7854, 2.0944\n    test 147 reverse-6: 45.0, 120.0, 20000.0\n    test 148 forward-6: -2265866.5, 3924595.9, 4501490.5\n    test 149 xyzh-6: -2265866.5, 3924595.9, 4501490.5, 20000.0\n    test 150 philam-6: 0.7854, 2.0944\n    test 151 reverse-7: 45.0, 120.0, 100000.0\n    test 152 forward-7: -2294150.8, 3973585.7, 4558059.1\n    test 153 xyzh-7: -2294150.8, 3973585.7, 4558059.1, 100000.0\n    test 154 philam-7: 0.7854, 2.0944\n    test 155 reverse-8: 45.0, 120.0, 800000.0\n    test 156 forward-8: -2541638.2, 4402246.4, 5053033.8\n    test 157 xyzh-8: -2541638.2, 4402246.4, 5053033.8, 800000.0\n    test 158 philam-8: 0.7854, 2.0944\n    test 159 reverse-9: 45.0, 120.0, 1000000.0\n    test 160 forward-9: -2612348.8, 4524720.9, 5194455.2\n    test 161 xyzh-9: -2612348.8, 4524720.9, 5194455.2, 1000000.0\n    test 162 philam-9: 0.7854, 2.0944\n    test 163 sudano: 45.0, 0.0, 100000.0\n    test 164 name: OS-UK\n    test 165 forward: 53.61199036, -1.66444222, 299.8\n    test 166 forward: 3790644.9, -110149.21, 5111482.97\n    test 167 reverse: 3790644.9, -110149.21, 5111482.97\n    test 168 reverse: 53.61199036, -1.66444223\n    test 169 reverse.lat: 53°36′43.1653″N\n    test 170 reverse.lon: 001°39′51.992″W\n    test 171 reverse.height: 299.800\n    test 172 case: 1\n    test 173 iteration: None\n    test 174 forward: -2430601.827685, -4702442.703125, 3546587.358103\n    test 175 reverse: 34.0, -117.333569, 251.702\n    test 176 forward_: -2430601.812953, -4702442.744488, 3546587.313654, 34.0, -117.333569, 251.702\n    test 177 EcefError: (0.0, 0.0, 0.0, 90.0, 0, -6356752.31414, 2, None, Datum(name='Datum', ellipsoid=Ellipsoids.GRS80, transform=Transforms.Identity))  FAILED, KNOWN, expected (0.0, 0.0, ...)\n    test 178 EcefError: height (None), lat (None) or lon (None)  FAILED, KNOWN, expected lat (None), lon (None) ...\n    test 179 EcefFarrell21: EcefFarrell21(a=None, f=None) ellipsoid: type(earth) (None): not a Datum, Ellipsoid, Ellipsoid2 or a_f2Tuple  FAILED, KNOWN, expected EcefFarrell21\n    test 180 Mx: (0.888348, 0.25558, -0.381466, -0.45917, 0.494465, -0.738015, 0.0, 0.830773, 0.556612)\n\n    test 181 EcefFarrell22: ...\n    test 182 name: Test\n    test 183 toStr: EcefFarrell22(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name='Test')  FAILED, KNOWN, expected EcefFarrell22\n    test 184 a, f: a=6378137.0, f=0.003352811, datum=Datum(name='_Test', ellipsoid=Ellipsoids._Test, transform=Transforms.Identity), name='Test'  FAILED, KNOWN, expected EcefFarrell22\n    test 185 copy(<class 'type'>): (<class 'pygeodesy.ecef.EcefFarrell22'>, True)\n    test 186 EcefFarrell22.copy(): (<class 'pygeodesy.ecef.EcefFarrell22'>, True)\n    test 187 forward: 27.99, 86.93, 8820.0\n    test 188 forward: 302271.4, 5635928.4, 2979666.1\n    test 189 name: Test\n    test 190 reverse: 302271.4, 5635928.4, 2979666.1\n    test 191 reverse: 27.99, 86.93, 8820.01\n    test 192 case: 1\n    test 193 iteration: None\n    test 194 name: Test\n    test 195 reverse: 302000.0, 5636000.0, 2980000.0\n    test 196 reverse: 27.99, 86.93, 9027.03\n    test 197 case: 1\n    test 198 iteration: None\n    test 199 forward: 27.99, 86.93, 8820.0\n    test 200 forward: 302271.43, 5635928.37, 2979666.13\n    test 201 forward: 33.3, 44.4, 6000.0\n    test 202 forward: 3816209.6, 3737108.55, 3485109.57\n    test 203 reverse: 3816209.6, 3737108.55, 3485109.57\n    test 204 reverse: 33.3, 44.4, 5999.996\n    test 205 case: 1\n    test 206 iteration: None\n    test 207 reverse: 30000.0, 30000.0, 0.0\n    test 208 reverse: 0.0, 45.0, -6335710.593  FAILED, KNOWN, expected 6.483, 45.0, -6335709.726\n    test 209 case: 3\n    test 210 iteration: None\n    test 211 forward: 6.483, 45.0, -6335709.726\n    test 212 forward: 30000.0, 30000.0, -0.0\n    test 213 Vermeille: -168.919\n    test 214 Vermeille: 190.939\n    test 215 Vermeille: (65.772506, 169.060801)\n    test 216 Vermeille: (1.147947, 3.141593)\n    test 217 reverse-1: 45.0, 120.0, 1000.0\n    test 218 forward-1: -2259149.0, 3912960.8, 4488055.5\n    test 219 xyzh-1: -2259149.0, 3912960.8, 4488055.5, 1000.0\n    test 220 philam-1: 0.7854, 2.0944\n    test 221 reverse-2: 45.0, 120.0, 2000.0\n    test 222 forward-2: -2259502.5, 3913573.2, 4488762.6\n    test 223 xyzh-2: -2259502.5, 3913573.2, 4488762.6, 2000.0\n    test 224 philam-2: 0.7854, 2.0944\n    test 225 reverse-3: 45.0, 120.0, 3000.0\n    test 226 forward-3: -2259856.1, 3914185.6, 4489469.7\n    test 227 xyzh-3: -2259856.1, 3914185.6, 4489469.7, 3000.0\n    test 228 philam-3: 0.7854, 2.0944\n    test 229 reverse-4: 45.0, 120.0, 4000.0\n    test 230 forward-4: -2260209.7, 3914798.0, 4490176.8\n    test 231 xyzh-4: -2260209.7, 3914798.0, 4490176.8, 4000.0\n    test 232 philam-4: 0.7854, 2.0944\n    test 233 reverse-5: 45.0, 120.0, 10000.0\n    test 234 forward-5: -2262331.0, 3918472.2, 4494419.5\n    test 235 xyzh-5: -2262331.0, 3918472.2, 4494419.5, 10000.0\n    test 236 philam-5: 0.7854, 2.0944\n    test 237 reverse-6: 45.0, 120.0, 20000.0\n    test 238 forward-6: -2265866.5, 3924595.9, 4501490.5\n    test 239 xyzh-6: -2265866.5, 3924595.9, 4501490.5, 20000.0\n    test 240 philam-6: 0.7854, 2.0944\n    test 241 reverse-7: 45.0, 120.0, 100000.0\n    test 242 forward-7: -2294150.8, 3973585.7, 4558059.1\n    test 243 xyzh-7: -2294150.8, 3973585.7, 4558059.1, 100000.0\n    test 244 philam-7: 0.7854, 2.0944\n    test 245 reverse-8: 45.0, 120.0, 800000.005  FAILED, KNOWN, expected 45.0, 120.0, 800000.0\n    test 246 forward-8: -2541638.2, 4402246.4, 5053033.8\n    test 247 xyzh-8: -2541638.2, 4402246.4, 5053033.8, 800000.0\n    test 248 philam-8: 0.7854, 2.0944\n    test 249 reverse-9: 45.0, 120.0, 1000000.007  FAILED, KNOWN, expected 45.0, 120.0, 1000000.0\n    test 250 forward-9: -2612348.8, 4524720.9, 5194455.2\n    test 251 xyzh-9: -2612348.8, 4524720.9, 5194455.2, 1000000.0\n    test 252 philam-9: 0.7854, 2.0944\n    test 253 sudano: 45.0, 0.0, 100000.0\n    test 254 name: OS-UK\n    test 255 forward: 53.61199036, -1.66444222, 299.8\n    test 256 forward: 3790644.9, -110149.21, 5111482.97\n    test 257 reverse: 3790644.9, -110149.21, 5111482.97\n    test 258 reverse: 53.61199036, -1.66444223\n    test 259 reverse.lat: 53°36′43.1653″N\n    test 260 reverse.lon: 001°39′51.992″W\n    test 261 reverse.height: 299.800\n    test 262 case: 1\n    test 263 iteration: None\n    test 264 forward: -2430601.827685, -4702442.703125, 3546587.358103\n    test 265 reverse: 34.0, -117.333569, 251.702\n    test 266 forward_: -2430601.812953, -4702442.744488, 3546587.313654, 34.0, -117.333569, 251.702\n    test 267 EcefError: (0.0, 0.0, 0.0, 90.0, 0, -6356752.31414, 2, None, Datum(name='Datum', ellipsoid=Ellipsoids.GRS80, transform=Transforms.Identity))  FAILED, KNOWN, expected (0.0, 0.0, ...)\n    test 268 EcefError: height (None), lat (None) or lon (None)  FAILED, KNOWN, expected lat (None), lon (None) ...\n    test 269 EcefFarrell22: EcefFarrell22(a=None, f=None) ellipsoid: type(earth) (None): not a Datum, Ellipsoid, Ellipsoid2 or a_f2Tuple  FAILED, KNOWN, expected EcefFarrell22\n    test 270 Mx: (0.888348, 0.25558, -0.381466, -0.45917, 0.494465, -0.738015, 0.0, 0.830773, 0.556612)\n\n    test 271 EcefVeness: ...\n    test 272 name: Test\n    test 273 toStr: EcefVeness(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name='Test')  FAILED, KNOWN, expected EcefVeness\n    test 274 a, f: a=6378137.0, f=0.003352811, datum=Datum(name='_Test', ellipsoid=Ellipsoids._Test, transform=Transforms.Identity), name='Test'  FAILED, KNOWN, expected EcefVeness\n    test 275 copy(<class 'type'>): (<class 'pygeodesy.ecef.EcefVeness'>, True)\n    test 276 EcefVeness.copy(): (<class 'pygeodesy.ecef.EcefVeness'>, True)\n    test 277 forward: 27.99, 86.93, 8820.0\n    test 278 forward: 302271.4, 5635928.4, 2979666.1\n    test 279 name: Test\n    test 280 reverse: 302271.4, 5635928.4, 2979666.1\n    test 281 reverse: 27.99, 86.93, 8820.01\n    test 282 case: 1\n    test 283 iteration: None\n    test 284 name: Test\n    test 285 reverse: 302000.0, 5636000.0, 2980000.0\n    test 286 reverse: 27.99, 86.93, 9027.03\n    test 287 case: 1\n    test 288 iteration: None\n    test 289 forward: 27.99, 86.93, 8820.0\n    test 290 forward: 302271.43, 5635928.37, 2979666.13\n    test 291 forward: 33.3, 44.4, 6000.0\n    test 292 forward: 3816209.6, 3737108.55, 3485109.57\n    test 293 reverse: 3816209.6, 3737108.55, 3485109.57\n    test 294 reverse: 33.3, 44.4, 5999.996\n    test 295 case: 1\n    test 296 iteration: None\n    test 297 reverse: 30000.0, 30000.0, 0.0\n    test 298 reverse: 0.0, 45.0, -6335710.593  FAILED, KNOWN, expected 6.483, 45.0, -6335709.726\n    test 299 case: 3\n    test 300 iteration: None\n    test 301 forward: 6.483, 45.0, -6335709.726\n    test 302 forward: 30000.0, 30000.0, -0.0\n    test 303 Vermeille: -168.919\n    test 304 Vermeille: 190.939\n    test 305 Vermeille: (65.772506, 169.060801)\n    test 306 Vermeille: (1.147947, 3.141593)\n    test 307 reverse-1: 45.0, 120.0, 1000.0\n    test 308 forward-1: -2259149.0, 3912960.8, 4488055.5\n    test 309 xyzh-1: -2259149.0, 3912960.8, 4488055.5, 1000.0\n    test 310 philam-1: 0.7854, 2.0944\n    test 311 reverse-2: 45.0, 120.0, 2000.0\n    test 312 forward-2: -2259502.5, 3913573.2, 4488762.6\n    test 313 xyzh-2: -2259502.5, 3913573.2, 4488762.6, 2000.0\n    test 314 philam-2: 0.7854, 2.0944\n    test 315 reverse-3: 45.0, 120.0, 3000.0\n    test 316 forward-3: -2259856.1, 3914185.6, 4489469.7\n    test 317 xyzh-3: -2259856.1, 3914185.6, 4489469.7, 3000.0\n    test 318 philam-3: 0.7854, 2.0944\n    test 319 reverse-4: 45.0, 120.0, 4000.0\n    test 320 forward-4: -2260209.7, 3914798.0, 4490176.8\n    test 321 xyzh-4: -2260209.7, 3914798.0, 4490176.8, 4000.0\n    test 322 philam-4: 0.7854, 2.0944\n    test 323 reverse-5: 45.0, 120.0, 10000.0\n    test 324 forward-5: -2262331.0, 3918472.2, 4494419.5\n    test 325 xyzh-5: -2262331.0, 3918472.2, 4494419.5, 10000.0\n    test 326 philam-5: 0.7854, 2.0944\n    test 327 reverse-6: 45.0, 120.0, 20000.0\n    test 328 forward-6: -2265866.5, 3924595.9, 4501490.5\n    test 329 xyzh-6: -2265866.5, 3924595.9, 4501490.5, 20000.0\n    test 330 philam-6: 0.7854, 2.0944\n    test 331 reverse-7: 45.0, 120.0, 100000.0\n    test 332 forward-7: -2294150.8, 3973585.7, 4558059.1\n    test 333 xyzh-7: -2294150.8, 3973585.7, 4558059.1, 100000.0\n    test 334 philam-7: 0.7854, 2.0944\n    test 335 reverse-8: 45.0, 120.0, 800000.0\n    test 336 forward-8: -2541638.2, 4402246.4, 5053033.8\n    test 337 xyzh-8: -2541638.2, 4402246.4, 5053033.8, 800000.0\n    test 338 philam-8: 0.7854, 2.0944\n    test 339 reverse-9: 45.0, 120.0, 1000000.0\n    test 340 forward-9: -2612348.8, 4524720.9, 5194455.2\n    test 341 xyzh-9: -2612348.8, 4524720.9, 5194455.2, 1000000.0\n    test 342 philam-9: 0.7854, 2.0944\n    test 343 sudano: 45.0, 0.0, 100000.0\n    test 344 name: OS-UK\n    test 345 forward: 53.61199036, -1.66444222, 299.8\n    test 346 forward: 3790644.9, -110149.21, 5111482.97\n    test 347 reverse: 3790644.9, -110149.21, 5111482.97\n    test 348 reverse: 53.61199036, -1.66444223\n    test 349 reverse.lat: 53°36′43.1653″N\n    test 350 reverse.lon: 001°39′51.992″W\n    test 351 reverse.height: 299.800\n    test 352 case: 1\n    test 353 iteration: None\n    test 354 forward: -2430601.827685, -4702442.703125, 3546587.358103\n    test 355 reverse: 34.0, -117.333569, 251.702\n    test 356 forward_: -2430601.812953, -4702442.744488, 3546587.313654, 34.0, -117.333569, 251.702\n    test 357 EcefError: (0.0, 0.0, 0.0, 90.0, 0, -6356752.31414, 2, None, Datum(name='Datum', ellipsoid=Ellipsoids.GRS80, transform=Transforms.Identity))  FAILED, KNOWN, expected (0.0, 0.0, ...)\n    test 358 EcefError: height (None), lat (None) or lon (None)  FAILED, KNOWN, expected lat (None), lon (None) ...\n    test 359 EcefVeness: EcefVeness(a=None, f=None) ellipsoid: type(earth) (None): not a Datum, Ellipsoid, Ellipsoid2 or a_f2Tuple  FAILED, KNOWN, expected EcefVeness\n    test 360 Mx: (0.888348, 0.25558, -0.381466, -0.45917, 0.494465, -0.738015, 0.0, 0.830773, 0.556612)\n\n    test 361 EcefSudano: ...\n    test 362 name: Test\n    test 363 toStr: EcefSudano(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name='Test')  FAILED, KNOWN, expected EcefSudano\n    test 364 a, f: a=6378137.0, f=0.003352811, datum=Datum(name='_Test', ellipsoid=Ellipsoids._Test, transform=Transforms.Identity), name='Test'  FAILED, KNOWN, expected EcefSudano\n    test 365 copy(<class 'type'>): (<class 'pygeodesy.ecef.EcefSudano'>, True)\n    test 366 EcefSudano.copy(): (<class 'pygeodesy.ecef.EcefSudano'>, True)\n    test 367 forward: 27.99, 86.93, 8820.0\n    test 368 forward: 302271.4, 5635928.4, 2979666.1\n    test 369 name: Test\n    test 370 reverse: 302271.4, 5635928.4, 2979666.1\n    test 371 reverse: 28.01, 86.93, 8819.58  FAILED, KNOWN, expected 27.99, 86.93, 8820.01\n    test 372 case: 1\n    test 373 iteration: 6\n    test 374 name: Test\n    test 375 reverse: 302000.0, 5636000.0, 2980000.0\n    test 376 reverse: 28.01, 86.93, 9026.6  FAILED, KNOWN, expected 27.99, 86.93, 9027.03\n    test 377 case: 1\n    test 378 iteration: 6\n    test 379 forward: 27.99, 86.93, 8820.0\n    test 380 forward: 302271.43, 5635928.37, 2979666.13\n    test 381 forward: 33.3, 44.4, 6000.0\n    test 382 forward: 3816209.6, 3737108.55, 3485109.57\n    test 383 reverse: 3816209.6, 3737108.55, 3485109.57\n    test 384 reverse: 33.335, 44.4, 5998.836  FAILED, KNOWN, expected 33.3, 44.4, 5999.996\n    test 385 case: 1\n    test 386 iteration: 6\n    test 387 reverse: 30000.0, 30000.0, 0.0\n    test 388 reverse: 0.0, 45.0, -6335710.593  FAILED, KNOWN, expected 6.483, 45.0, -6335709.726\n    test 389 case: 3\n    test 390 iteration: 0\n    test 391 forward: 6.483, 45.0, -6335709.726\n    test 392 forward: 30000.0, 30000.0, -0.0\n    test 393 Vermeille: -168.919\n    test 394 Vermeille: 190.939\n    test 395 Vermeille: (65.979481, 169.060801)  FAILED, KNOWN, expected (65.772506, 169.060801)\n    test 396 Vermeille: (1.151559, 3.141593)  FAILED, KNOWN, expected (1.147947, 3.141593)\n    test 397 reverse-1: 45.08, 120.0, 993.852  FAILED, KNOWN, expected 45.0, 120.0, 1000.0\n    test 398 forward-1: -2256016.0, 3907534.4, 4494304.0  FAILED, KNOWN, expected -2259149.0, 3912960.8, 4488055.5\n    test 399 xyzh-1: -2256016.0, 3907534.4, 4494304.0, 993.9  FAILED, KNOWN, expected -2259149.0, 3912960.8, 4488055.5, 1000.0\n    test 400 philam-1: 0.7868, 2.0944\n    test 401 reverse-2: 45.08, 120.0, 1993.853  FAILED, KNOWN, expected 45.0, 120.0, 2000.0\n    test 402 forward-2: -2256369.6, 3908146.8, 4495011.2  FAILED, KNOWN, expected -2259502.5, 3913573.2, 4488762.6\n    test 403 xyzh-2: -2256369.6, 3908146.8, 4495011.2, 1993.9  FAILED, KNOWN, expected -2259502.5, 3913573.2, 4488762.6, 2000.0\n    test 404 philam-2: 0.7868, 2.0944\n    test 405 reverse-3: 45.08, 120.0, 2993.854  FAILED, KNOWN, expected 45.0, 120.0, 3000.0\n    test 406 forward-3: -2256723.1, 3908759.1, 4495718.3  FAILED, KNOWN, expected -2259856.1, 3914185.6, 4489469.7\n    test 407 xyzh-3: -2256723.1, 3908759.1, 4495718.3, 2993.9  FAILED, KNOWN, expected -2259856.1, 3914185.6, 4489469.7, 3000.0\n    test 408 philam-3: 0.7868, 2.0944\n    test 409 reverse-4: 45.08, 120.0, 3993.855  FAILED, KNOWN, expected 45.0, 120.0, 4000.0\n    test 410 forward-4: -2257076.7, 3909371.5, 4496425.4  FAILED, KNOWN, expected -2260209.7, 3914798.0, 4490176.8\n    test 411 xyzh-4: -2257076.7, 3909371.5, 4496425.4, 3993.9  FAILED, KNOWN, expected -2260209.7, 3914798.0, 4490176.8, 4000.0\n    test 412 philam-4: 0.7868, 2.0944\n    test 413 reverse-5: 45.08, 120.0, 9993.861  FAILED, KNOWN, expected 45.0, 120.0, 10000.0\n    test 414 forward-5: -2259198.0, 3913045.8, 4500668.0  FAILED, KNOWN, expected -2262331.0, 3918472.2, 4494419.5\n    test 415 xyzh-5: -2259198.0, 3913045.8, 4500668.0, 9993.9  FAILED, KNOWN, expected -2262331.0, 3918472.2, 4494419.5, 10000.0\n    test 416 philam-5: 0.7868, 2.0944\n    test 417 reverse-6: 45.079, 120.0, 19993.87  FAILED, KNOWN, expected 45.0, 120.0, 20000.0\n    test 418 forward-6: -2262733.6, 3919169.6, 4507739.0  FAILED, KNOWN, expected -2265866.5, 3924595.9, 4501490.5\n    test 419 xyzh-6: -2262733.6, 3919169.6, 4507739.0, 19993.9  FAILED, KNOWN, expected -2265866.5, 3924595.9, 4501490.5, 20000.0\n    test 420 philam-6: 0.7868, 2.0944\n    test 421 reverse-7: 45.078, 120.0, 99993.947  FAILED, KNOWN, expected 45.0, 120.0, 100000.0\n    test 422 forward-7: -2291018.1, 3968159.8, 4564307.3  FAILED, KNOWN, expected -2294150.8, 3973585.7, 4558059.1\n    test 423 xyzh-7: -2291018.1, 3968159.8, 4564307.3, 99993.9  FAILED, KNOWN, expected -2294150.8, 3973585.7, 4558059.1, 100000.0\n    test 424 philam-7: 0.7868, 2.0944\n    test 425 reverse-8: 45.071, 120.0, 799994.544  FAILED, KNOWN, expected 45.0, 120.0, 800000.0\n    test 426 forward-8: -2538507.3, 4396823.7, 5059280.0  FAILED, KNOWN, expected -2541638.2, 4402246.4, 5053033.8\n    test 427 xyzh-8: -2538507.3, 4396823.7, 5059280.0, 799994.5  FAILED, KNOWN, expected -2541638.2, 4402246.4, 5053033.8, 800000.0\n    test 428 philam-8: 0.7866, 2.0944\n    test 429 reverse-9: 45.069, 120.0, 999994.693  FAILED, KNOWN, expected 45.0, 120.0, 1000000.0\n    test 430 forward-9: -2609218.5, 4519299.0, 5200700.9  FAILED, KNOWN, expected -2612348.8, 4524720.9, 5194455.2\n    test 431 xyzh-9: -2609218.5, 4519299.0, 5200700.9, 999994.7  FAILED, KNOWN, expected -2612348.8, 4524720.9, 5194455.2, 1000000.0\n    test 432 philam-9: 0.7866, 2.0944\n    test 433 sudano: 45.078, 0.0, 99993.947  FAILED, KNOWN, expected 45.0, 0.0, 100000.0\n    test 434 name: OS-UK\n    test 435 forward: 53.61199036, -1.66444222, 299.8\n    test 436 forward: 3790644.9, -110149.21, 5111482.97\n    test 437 reverse: 3790644.9, -110149.21, 5111482.97\n    test 438 reverse: 53.73795244, -1.66444223  FAILED, KNOWN, expected 53.61199036, -1.66444223\n    test 439 reverse.lat: 53°44′16.6288″N  FAILED, KNOWN, expected 53°36′43.1653″N\n    test 440 reverse.lon: 001°39′51.992″W\n    test 441 reverse.height: 284.389  FAILED, KNOWN, expected 299.800\n    test 442 case: 1\n    test 443 iteration: 7\n    test 444 forward: -2430601.827685, -4702442.703125, 3546587.358103\n    test 445 reverse: 34.036724, -117.333569, 250.396541  FAILED, KNOWN, expected 34.0, -117.333569, 251.702\n    test 446 forward_: -2430601.812953, -4702442.744488, 3546587.313654, 34.0, -117.333569, 251.702\n    test 447 EcefError: (0.0, 0.0, 0.0, 90.0, 0, -6356752.31414, 2, None, Datum(name='Datum', ellipsoid=Ellipsoids.GRS80, transform=Transforms.Identity))  FAILED, KNOWN, expected (0.0, 0.0, ...)\n    test 448 EcefError: height (None), lat (None) or lon (None)  FAILED, KNOWN, expected lat (None), lon (None) ...\n    test 449 EcefSudano: EcefSudano(a=None, f=None) ellipsoid: type(earth) (None): not a Datum, Ellipsoid, Ellipsoid2 or a_f2Tuple  FAILED, KNOWN, expected EcefSudano\n    test 450 Mx: (0.888348, 0.25558, -0.381466, -0.45917, 0.494465, -0.738015, 0.0, 0.830773, 0.556612)\n\n    test 451 EcefUPC: ...\n    test 452 name: Test\n    test 453 toStr: EcefUPC(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name='Test')  FAILED, KNOWN, expected EcefUPC\n    test 454 a, f: a=6378137.0, f=0.003352811, datum=Datum(name='_Test', ellipsoid=Ellipsoids._Test, transform=Transforms.Identity), name='Test'  FAILED, KNOWN, expected EcefUPC\n    test 455 copy(<class 'type'>): (<class 'pygeodesy.ecef.EcefUPC'>, True)\n    test 456 EcefUPC.copy(): (<class 'pygeodesy.ecef.EcefUPC'>, True)\n    test 457 forward: 27.99, 86.93, 8820.0\n    test 458 forward: 302271.4, 5635928.4, 2979666.1\n    test 459 name: Test\n    test 460 reverse: 302271.4, 5635928.4, 2979666.1\n    test 461 reverse: 27.99, 86.93, 8820.01\n    test 462 case: 1\n    test 463 iteration: 5\n    test 464 name: Test\n    test 465 reverse: 302000.0, 5636000.0, 2980000.0\n    test 466 reverse: 27.99, 86.93, 9027.03\n    test 467 case: 1\n    test 468 iteration: 5\n    test 469 forward: 27.99, 86.93, 8820.0\n    test 470 forward: 302271.43, 5635928.37, 2979666.13\n    test 471 forward: 33.3, 44.4, 6000.0\n    test 472 forward: 3816209.6, 3737108.55, 3485109.57\n    test 473 reverse: 3816209.6, 3737108.55, 3485109.57\n    test 474 reverse: 33.3, 44.4, 5999.996\n    test 475 case: 1\n    test 476 iteration: 5\n    test 477 reverse: 30000.0, 30000.0, 0.0\n    test 478 reverse: 0.0, 45.0, -6335710.593  FAILED, KNOWN, expected 6.483, 45.0, -6335709.726\n    test 479 case: 3\n    test 480 iteration: 0\n    test 481 forward: 6.483, 45.0, -6335709.726\n    test 482 forward: 30000.0, 30000.0, -0.0\n    test 483 Vermeille: -168.919\n    test 484 Vermeille: 190.939\n    test 485 Vermeille: (65.772506, 169.060801)\n    test 486 Vermeille: (1.147947, 3.141593)\n    test 487 reverse-1: 45.0, 120.0, 1000.0\n    test 488 forward-1: -2259149.0, 3912960.8, 4488055.5\n    test 489 xyzh-1: -2259149.0, 3912960.8, 4488055.5, 1000.0\n    test 490 philam-1: 0.7854, 2.0944\n    test 491 reverse-2: 45.0, 120.0, 2000.0\n    test 492 forward-2: -2259502.5, 3913573.2, 4488762.6\n    test 493 xyzh-2: -2259502.5, 3913573.2, 4488762.6, 2000.0\n    test 494 philam-2: 0.7854, 2.0944\n    test 495 reverse-3: 45.0, 120.0, 3000.0\n    test 496 forward-3: -2259856.1, 3914185.6, 4489469.7\n    test 497 xyzh-3: -2259856.1, 3914185.6, 4489469.7, 3000.0\n    test 498 philam-3: 0.7854, 2.0944\n    test 499 reverse-4: 45.0, 120.0, 4000.0\n    test 500 forward-4: -2260209.7, 3914798.0, 4490176.8\n    test 501 xyzh-4: -2260209.7, 3914798.0, 4490176.8, 4000.0\n    test 502 philam-4: 0.7854, 2.0944\n    test 503 reverse-5: 45.0, 120.0, 10000.0\n    test 504 forward-5: -2262331.0, 3918472.2, 4494419.5\n    test 505 xyzh-5: -2262331.0, 3918472.2, 4494419.5, 10000.0\n    test 506 philam-5: 0.7854, 2.0944\n    test 507 reverse-6: 45.0, 120.0, 20000.0\n    test 508 forward-6: -2265866.5, 3924595.9, 4501490.5\n    test 509 xyzh-6: -2265866.5, 3924595.9, 4501490.5, 20000.0\n    test 510 philam-6: 0.7854, 2.0944\n    test 511 reverse-7: 45.0, 120.0, 100000.0\n    test 512 forward-7: -2294150.8, 3973585.7, 4558059.1\n    test 513 xyzh-7: -2294150.8, 3973585.7, 4558059.1, 100000.0\n    test 514 philam-7: 0.7854, 2.0944\n    test 515 reverse-8: 45.0, 120.0, 800000.0\n    test 516 forward-8: -2541638.2, 4402246.4, 5053033.8\n    test 517 xyzh-8: -2541638.2, 4402246.4, 5053033.8, 800000.0\n    test 518 philam-8: 0.7854, 2.0944\n    test 519 reverse-9: 45.0, 120.0, 1000000.0\n    test 520 forward-9: -2612348.8, 4524720.9, 5194455.2\n    test 521 xyzh-9: -2612348.8, 4524720.9, 5194455.2, 1000000.0\n    test 522 philam-9: 0.7854, 2.0944\n    test 523 sudano: 45.0, 0.0, 100000.0\n    test 524 name: OS-UK\n    test 525 forward: 53.61199036, -1.66444222, 299.8\n    test 526 forward: 3790644.9, -110149.21, 5111482.97\n    test 527 reverse: 3790644.9, -110149.21, 5111482.97\n    test 528 reverse: 53.61199036, -1.66444223\n    test 529 reverse.lat: 53°36′43.1653″N\n    test 530 reverse.lon: 001°39′51.992″W\n    test 531 reverse.height: 299.800\n    test 532 case: 1\n    test 533 iteration: 5\n    test 534 forward: -2430601.827685, -4702442.703125, 3546587.358103\n    test 535 reverse: 34.0, -117.333569, 251.702\n    test 536 forward_: -2430601.812953, -4702442.744488, 3546587.313654, 34.0, -117.333569, 251.702\n    test 537 EcefError: (0.0, 0.0, 0.0, 90.0, 0, -6356752.31414, 2, None, Datum(name='Datum', ellipsoid=Ellipsoids.GRS80, transform=Transforms.Identity))  FAILED, KNOWN, expected (0.0, 0.0, ...)\n    test 538 EcefError: height (None), lat (None) or lon (None)  FAILED, KNOWN, expected lat (None), lon (None) ...\n    test 539 EcefUPC: EcefUPC(a=None, f=None) ellipsoid: type(earth) (None): not a Datum, Ellipsoid, Ellipsoid2 or a_f2Tuple  FAILED, KNOWN, expected EcefUPC\n    test 540 Mx: (0.888348, 0.25558, -0.381466, -0.45917, 0.494465, -0.738015, 0.0, 0.830773, 0.556612)\n\n    test 541 EcefYou: ...\n    test 542 name: Test\n    test 543 toStr: EcefYou(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name='Test')  FAILED, KNOWN, expected EcefYou\n    test 544 a, f: a=6378137.0, f=0.003352811, datum=Datum(name='_Test', ellipsoid=Ellipsoids._Test, transform=Transforms.Identity), name='Test'  FAILED, KNOWN, expected EcefYou\n    test 545 copy(<class 'type'>): (<class 'pygeodesy.ecef.EcefYou'>, True)\n    test 546 EcefYou.copy(): (<class 'pygeodesy.ecef.EcefYou'>, True)\n    test 547 forward: 27.99, 86.93, 8820.0\n    test 548 forward: 302271.4, 5635928.4, 2979666.1\n    test 549 name: Test\n    test 550 reverse: 302271.4, 5635928.4, 2979666.1\n    test 551 reverse: 27.99, 86.93, 8820.01\n    test 552 case: 1\n    test 553 iteration: None\n    test 554 name: Test\n    test 555 reverse: 302000.0, 5636000.0, 2980000.0\n    test 556 reverse: 27.99, 86.93, 9027.03\n    test 557 case: 1\n    test 558 iteration: None\n    test 559 forward: 27.99, 86.93, 8820.0\n    test 560 forward: 302271.43, 5635928.37, 2979666.13\n    test 561 forward: 33.3, 44.4, 6000.0\n    test 562 forward: 3816209.6, 3737108.55, 3485109.57\n    test 563 reverse: 3816209.6, 3737108.55, 3485109.57\n    test 564 reverse: 33.3, 44.4, 5999.996\n    test 565 case: 1\n    test 566 iteration: None\n    test 567 reverse: 30000.0, 30000.0, 0.0\n    test 568 reverse: 0.0, 45.0, -6335710.593  FAILED, KNOWN, expected 6.483, 45.0, -6335709.726\n    test 569 case: 3\n    test 570 iteration: None\n    test 571 forward: 6.483, 45.0, -6335709.726\n    test 572 forward: 30000.0, 30000.0, -0.0\n    test 573 Vermeille: -168.919\n    test 574 Vermeille: 190.939\n    test 575 Vermeille: (65.772506, 169.060801)\n    test 576 Vermeille: (1.147947, 3.141593)\n    test 577 reverse-1: 45.0, 120.0, 1000.0\n    test 578 forward-1: -2259149.0, 3912960.8, 4488055.5\n    test 579 xyzh-1: -2259149.0, 3912960.8, 4488055.5, 1000.0\n    test 580 philam-1: 0.7854, 2.0944\n    test 581 reverse-2: 45.0, 120.0, 2000.0\n    test 582 forward-2: -2259502.5, 3913573.2, 4488762.6\n    test 583 xyzh-2: -2259502.5, 3913573.2, 4488762.6, 2000.0\n    test 584 philam-2: 0.7854, 2.0944\n    test 585 reverse-3: 45.0, 120.0, 3000.0\n    test 586 forward-3: -2259856.1, 3914185.6, 4489469.7\n    test 587 xyzh-3: -2259856.1, 3914185.6, 4489469.7, 3000.0\n    test 588 philam-3: 0.7854, 2.0944\n    test 589 reverse-4: 45.0, 120.0, 4000.0\n    test 590 forward-4: -2260209.7, 3914798.0, 4490176.8\n    test 591 xyzh-4: -2260209.7, 3914798.0, 4490176.8, 4000.0\n    test 592 philam-4: 0.7854, 2.0944\n    test 593 reverse-5: 45.0, 120.0, 10000.0\n    test 594 forward-5: -2262331.0, 3918472.2, 4494419.5\n    test 595 xyzh-5: -2262331.0, 3918472.2, 4494419.5, 10000.0\n    test 596 philam-5: 0.7854, 2.0944\n    test 597 reverse-6: 45.0, 120.0, 20000.0\n    test 598 forward-6: -2265866.5, 3924595.9, 4501490.5\n    test 599 xyzh-6: -2265866.5, 3924595.9, 4501490.5, 20000.0\n    test 600 philam-6: 0.7854, 2.0944\n    test 601 reverse-7: 45.0, 120.0, 100000.0\n    test 602 forward-7: -2294150.8, 3973585.7, 4558059.1\n    test 603 xyzh-7: -2294150.8, 3973585.7, 4558059.1, 100000.0\n    test 604 philam-7: 0.7854, 2.0944\n    test 605 reverse-8: 45.0, 120.0, 800000.0\n    test 606 forward-8: -2541638.2, 4402246.4, 5053033.8\n    test 607 xyzh-8: -2541638.2, 4402246.4, 5053033.8, 800000.0\n    test 608 philam-8: 0.7854, 2.0944\n    test 609 reverse-9: 45.0, 120.0, 1000000.0\n    test 610 forward-9: -2612348.8, 4524720.9, 5194455.2\n    test 611 xyzh-9: -2612348.8, 4524720.9, 5194455.2, 1000000.0\n    test 612 philam-9: 0.7854, 2.0944\n    test 613 sudano: 45.0, 0.0, 100000.0\n    test 614 name: OS-UK\n    test 615 forward: 53.61199036, -1.66444222, 299.8\n    test 616 forward: 3790644.9, -110149.21, 5111482.97\n    test 617 reverse: 3790644.9, -110149.21, 5111482.97\n    test 618 reverse: 53.61199036, -1.66444223\n    test 619 reverse.lat: 53°36′43.1653″N\n    test 620 reverse.lon: 001°39′51.992″W\n    test 621 reverse.height: 299.800\n    test 622 case: 1\n    test 623 iteration: None\n    test 624 forward: -2430601.827685, -4702442.703125, 3546587.358103\n    test 625 reverse: 34.0, -117.333569, 251.702\n    test 626 forward_: -2430601.812953, -4702442.744488, 3546587.313654, 34.0, -117.333569, 251.702\n    test 627 EcefError: (0.0, 0.0, 0.0, 90.0, 0, -6356752.31414, 2, None, Datum(name='Datum', ellipsoid=Ellipsoids.GRS80, transform=Transforms.Identity))  FAILED, KNOWN, expected (0.0, 0.0, ...)\n    test 628 EcefError: height (None), lat (None) or lon (None)  FAILED, KNOWN, expected lat (None), lon (None) ...\n    test 629 EcefYou: EcefYou(a=None, f=None) ellipsoid: type(earth) (None): not a Datum, Ellipsoid, Ellipsoid2 or a_f2Tuple  FAILED, KNOWN, expected EcefYou\n    test 630 Mx: (0.888348, 0.25558, -0.381466, -0.45917, 0.494465, -0.738015, 0.0, 0.830773, 0.556612)\n\n    test 631 EcefMatrix: ...\n    test 632 index: (0, 1, 2, 3, 4, 5, 6, 7, 8)\n    test 633 matrix: 0, 1, 2, 3, 4, 5, 6, 7, 8\n    test 634 multiply: 45, 54, 63, 54, 66, 78, 63, 78, 93\n    test 635 matrix3: True\n    test 636 matrixT3: True\n    test 637 copy(<class 'type'>): (<class 'pygeodesy.ecef.EcefMatrix'>, True)\n    test 638 EcefMatrix.copy(): (<class 'pygeodesy.ecef.EcefMatrix'>, True)\n    test 639 matrix: 1, 0, 0, 0, 1, 0, 0, 0, 1\n    test 640 multiply: 1, 0, 0, 0, 1, 0, 0, 0, 1\n    test 641 copy(<class 'type'>): (<class 'pygeodesy.ecef.EcefMatrix'>, True)\n    test 642 EcefMatrix.copy(): (<class 'pygeodesy.ecef.EcefMatrix'>, True)\n    test 643 unrotate: (1.0, 1.0, 1.0)\n\n    test 644 pygeodesy.sphericalNvector: Cartesian\n    test 645 Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 646 pygeodesy.sphericalNvector: LatLon\n    test 647 Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 648 forward: 48.833, 2.333, 0.0\n    test 649 forward: 4190278.55, 170716.35, 4796058.21\n    test 650 name: Paris\n    test 651 reverse: 48.833, 2.333, 0.0\n    test 652 name: Paris\n    test 653 toLatLon: LatLon(48°49′58.8″N, 002°19′58.8″E)\n    test 654 name: Paris\n    test 655 Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 656 to4Tuple: LatLon4Tuple\n    test 657 to4Tuple: Paris(lat=48.833, lon=2.333, height=0.0, datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84))\n    test 658 to3Tuple: LatLon3Tuple\n    test 659 to3Tuple: Paris(lat=48.833, lon=2.333, height=0.0)\n    test 660 toVector: (4190278.55277, 170716.34863, 4796058.20898)\n    test 661 name: Paris\n    test 662 forward: [4190278.55, 170716.35, 4796058.21]\n    test 663 Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n# imported pygeodesy.ltp into ecefLocals.py line 63\n    test 664 toLocal: (0.0, 0.0, 0.0, 48.833, 2.333, 0.0, Ltp(lat0=48.833, lon0=2.333, height0=0.0, M=EcefMatrix(_0_0_=-0.040707, _0_1_=-0.75217, _0_2_=0.65771, _1_0_=0.999171, _1_1_=-0.030644, _1_2_=0.026796, _2_0_=0.0, _2_1_=0.658256, _2_2_=0.752794), ecef=EcefKarney(a=6371008.771415, f=0.0, datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84), name=''), name='Paris'), Paris(x=4190278.55277, y=170716.348629, z=4796058.208983, lat=48.833, lon=2.333, height=0.0, C=2, M=None, datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84)), None)\n# imported pygeodesy.ltpTuples into ecefLocals.py line 80\n# imported pygeodesy.ltp into ltpTuples.py line 1585\n    test 665 toAer: [0.0, 0.0, 0.0]\n    test 666 toEnu: [0.0, 0.0, 0.0]\n    test 667 toNed: [0.0, 0.0, 0.0]\n\n    test 668 pygeodesy.sphericalTrigonometry: Cartesian\n    test 669 Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 670 pygeodesy.sphericalTrigonometry: LatLon\n    test 671 Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 672 forward: 48.833, 2.333, 0.0\n    test 673 forward: 4190278.55, 170716.35, 4796058.21\n    test 674 name: Paris\n    test 675 reverse: 48.833, 2.333, 0.0\n    test 676 name: Paris\n    test 677 toLatLon: LatLon(48°49′58.8″N, 002°19′58.8″E)\n    test 678 name: Paris\n    test 679 Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 680 to4Tuple: LatLon4Tuple\n    test 681 to4Tuple: Paris(lat=48.833, lon=2.333, height=0.0, datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84))\n    test 682 to3Tuple: LatLon3Tuple\n    test 683 to3Tuple: Paris(lat=48.833, lon=2.333, height=0.0)\n    test 684 toVector: (4190278.55277, 170716.34863, 4796058.20898)\n    test 685 name: Paris\n    test 686 forward: [4190278.55, 170716.35, 4796058.21]\n    test 687 Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 688 toLocal: (0.0, 0.0, 0.0, 48.833, 2.333, 0.0, Ltp(lat0=48.833, lon0=2.333, height0=0.0, M=EcefMatrix(_0_0_=-0.040707, _0_1_=-0.75217, _0_2_=0.65771, _1_0_=0.999171, _1_1_=-0.030644, _1_2_=0.026796, _2_0_=0.0, _2_1_=0.658256, _2_2_=0.752794), ecef=EcefKarney(a=6371008.771415, f=0.0, datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84), name=''), name='Paris'), Paris(x=4190278.55277, y=170716.348629, z=4796058.208983, lat=48.833, lon=2.333, height=0.0, C=2, M=None, datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84)), None)\n    test 689 toAer: [0.0, 0.0, 0.0]\n    test 690 toEnu: [0.0, 0.0, 0.0]\n    test 691 toNed: [0.0, 0.0, 0.0]\n\n    test 692 pygeodesy.ellipsoidalNvector: Cartesian\n    test 693 Ecef: <class 'pygeodesy.ecef.EcefVeness'>\n    test 694 pygeodesy.ellipsoidalNvector: LatLon\n    test 695 Ecef: <class 'pygeodesy.ecef.EcefVeness'>\n    test 696 forward: 48.833, 2.333, 0.0\n    test 697 forward: 4202946.8, 171232.47, 4778354.17\n    test 698 name: Paris\n    test 699 reverse: 48.833, 2.333, 0.0\n    test 700 name: Paris\n    test 701 toLatLon: LatLon(48°49′58.8″N, 002°19′58.8″E, +0.00m)\n    test 702 name: Paris\n    test 703 Ecef: <class 'pygeodesy.ecef.EcefVeness'>\n    test 704 to4Tuple: LatLon4Tuple\n    test 705 to4Tuple: Paris(lat=48.833, lon=2.333, height=0.0, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 706 to3Tuple: LatLon3Tuple\n    test 707 to3Tuple: Paris(lat=48.833, lon=2.333, height=0.0)\n    test 708 toVector: (4202946.79528, 171232.46613, 4778354.17)\n    test 709 name: Paris\n    test 710 forward: [4202946.8, 171232.47, 4778354.17]\n    test 711 Ecef: <class 'pygeodesy.ecef.EcefVeness'>\n    test 712 toLocal: (0.0, 0.0, -0.0, 48.833, 2.333, 0.0, Ltp(lat0=48.833, lon0=2.333, height0=0.000000001, M=EcefMatrix(_0_0_=-0.040707, _0_1_=-0.75217, _0_2_=0.65771, _1_0_=0.999171, _1_1_=-0.030644, _1_2_=0.026796, _2_0_=0.0, _2_1_=0.658256, _2_2_=0.752794), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Paris'), Paris(x=4202946.795276, y=171232.466132, z=4778354.169996, lat=48.833, lon=2.333, height=0.0, C=1, M=None, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84)), None)\n    test 713 toAer: [23.434, -85.849, 0.0]\n    test 714 toEnu: [0.0, 0.0, -0.0]\n    test 715 toNed: [0.0, 0.0, 0.0]\n\n    test 716 pygeodesy.ellipsoidalVincenty: Cartesian\n    test 717 Ecef: <class 'pygeodesy.ecef.EcefVeness'>\n    test 718 pygeodesy.ellipsoidalVincenty: LatLon\n    test 719 Ecef: <class 'pygeodesy.ecef.EcefVeness'>\n    test 720 forward: 48.833, 2.333, 0.0\n    test 721 forward: 4202946.8, 171232.47, 4778354.17\n    test 722 name: Paris\n    test 723 reverse: 48.833, 2.333, 0.0\n    test 724 name: Paris\n    test 725 toLatLon: LatLon(48°49′58.8″N, 002°19′58.8″E, +0.00m)\n    test 726 name: Paris\n    test 727 Ecef: <class 'pygeodesy.ecef.EcefVeness'>\n    test 728 to4Tuple: LatLon4Tuple\n    test 729 to4Tuple: Paris(lat=48.833, lon=2.333, height=0.0, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 730 to3Tuple: LatLon3Tuple\n    test 731 to3Tuple: Paris(lat=48.833, lon=2.333, height=0.0)\n    test 732 toVector: (4202946.79528, 171232.46613, 4778354.17)\n    test 733 name: Paris\n    test 734 forward: [4202946.8, 171232.47, 4778354.17]\n    test 735 Ecef: <class 'pygeodesy.ecef.EcefVeness'>\n    test 736 toLocal: (0.0, 0.0, -0.0, 48.833, 2.333, 0.0, Ltp(lat0=48.833, lon0=2.333, height0=0.000000001, M=EcefMatrix(_0_0_=-0.040707, _0_1_=-0.75217, _0_2_=0.65771, _1_0_=0.999171, _1_1_=-0.030644, _1_2_=0.026796, _2_0_=0.0, _2_1_=0.658256, _2_2_=0.752794), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Paris'), Paris(x=4202946.795276, y=171232.466132, z=4778354.169996, lat=48.833, lon=2.333, height=0.0, C=1, M=None, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84)), None)\n    test 737 toAer: [23.434, -85.849, 0.0]\n    test 738 toEnu: [0.0, 0.0, -0.0]\n    test 739 toNed: [0.0, 0.0, 0.0]\n\n    test 740 pygeodesy.ellipsoidalKarney: Cartesian\n    test 741 Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 742 pygeodesy.ellipsoidalKarney: LatLon\n    test 743 Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 744 forward: 48.833, 2.333, 0.0\n    test 745 forward: 4202946.8, 171232.47, 4778354.17\n    test 746 name: Paris\n    test 747 reverse: 48.833, 2.333, 0.0\n    test 748 name: Paris\n    test 749 toLatLon: LatLon(48°49′58.8″N, 002°19′58.8″E, +0.00m)\n    test 750 name: Paris\n    test 751 Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 752 to4Tuple: LatLon4Tuple\n    test 753 to4Tuple: Paris(lat=48.833, lon=2.333, height=0.0, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 754 to3Tuple: LatLon3Tuple\n    test 755 to3Tuple: Paris(lat=48.833, lon=2.333, height=0.0)\n    test 756 toVector: (4202946.79528, 171232.46613, 4778354.17)\n    test 757 name: Paris\n    test 758 forward: [4202946.8, 171232.47, 4778354.17]\n    test 759 Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 760 toLocal: (0.0, 0.0, -0.0, 48.833, 2.333, 0.0, Ltp(lat0=48.833, lon0=2.333, height0=0.000000001, M=EcefMatrix(_0_0_=-0.040707, _0_1_=-0.75217, _0_2_=0.65771, _1_0_=0.999171, _1_1_=-0.030644, _1_2_=0.026796, _2_0_=0.0, _2_1_=0.658256, _2_2_=0.752794), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Paris'), Paris(x=4202946.795276, y=171232.466132, z=4778354.169996, lat=48.833, lon=2.333, height=0.0, C=1, M=None, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84)), None)\n    test 761 toAer: [23.434, -85.849, 0.0]\n    test 762 toEnu: [0.0, 0.0, -0.0]\n    test 763 toNed: [0.0, 0.0, 0.0]\n\n    test 764 pygeodesy.ellipsoidalExact: Cartesian\n    test 765 Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 766 pygeodesy.ellipsoidalExact: LatLon\n    test 767 Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 768 forward: 48.833, 2.333, 0.0\n    test 769 forward: 4202946.8, 171232.47, 4778354.17\n    test 770 name: Paris\n    test 771 reverse: 48.833, 2.333, 0.0\n    test 772 name: Paris\n    test 773 toLatLon: LatLon(48°49′58.8″N, 002°19′58.8″E, +0.00m)\n    test 774 name: Paris\n    test 775 Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 776 to4Tuple: LatLon4Tuple\n    test 777 to4Tuple: Paris(lat=48.833, lon=2.333, height=0.0, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 778 to3Tuple: LatLon3Tuple\n    test 779 to3Tuple: Paris(lat=48.833, lon=2.333, height=0.0)\n    test 780 toVector: (4202946.79528, 171232.46613, 4778354.17)\n    test 781 name: Paris\n    test 782 forward: [4202946.8, 171232.47, 4778354.17]\n    test 783 Ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 784 toLocal: (0.0, 0.0, -0.0, 48.833, 2.333, 0.0, Ltp(lat0=48.833, lon0=2.333, height0=0.000000001, M=EcefMatrix(_0_0_=-0.040707, _0_1_=-0.75217, _0_2_=0.65771, _1_0_=0.999171, _1_1_=-0.030644, _1_2_=0.026796, _2_0_=0.0, _2_1_=0.658256, _2_2_=0.752794), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Paris'), Paris(x=4202946.795276, y=171232.466132, z=4778354.169996, lat=48.833, lon=2.333, height=0.0, C=1, M=None, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84)), None)\n    test 785 toAer: [23.434, -85.849, 0.0]\n    test 786 toEnu: [0.0, 0.0, -0.0]\n    test 787 toNed: [0.0, 0.0, 0.0]\n\n    80 of 787 testEcef.py tests (10.2%) FAILED, ALL KNOWN (pygeodesy 26.3.26 Python 3.14.3 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 17.811 ms\nrunning /Library/Framewo....n3.14 -W default ~/PyGeodesy/test/testElevations.py\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.elevation2 from .elevations by testElevations.py line 11\n# lazily imported pygeodesy.Datums from .datums by testElevations.py line 11\n# lazily imported pygeodesy.geoidHeight2 from .elevations by testElevations.py line 11\n\n    testing testElevations.py 24.09.25 isLazy=3\n    all testElevations.py tests SKIPPED (pygeodesy 26.3.26 Python 3.14.3 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 5.007 us\nrunning /Library/Framewo....n3.14 -W default ~/PyGeodesy/test/testEllipses.py\n./test/testEllipses.py:52: DeprecationWarning: function L{elliperim<pygeodesy.deprecated.functions.elliperim>} has been DEPRECATED on 2026.02.12, use method L{pygeodesy.Ellipse.arc} or property L{pygeodesy.Ellipse.perimeter2k_}.\n  self.test(n, elliperim(a, b), x, known=startswith, nl=1)\n./test/testEllipses.py:53: DeprecationWarning: function L{elliperim<pygeodesy.deprecated.functions.elliperim>} has been DEPRECATED on 2026.02.12, use method L{pygeodesy.Ellipse.arc} or property L{pygeodesy.Ellipse.perimeter2k_}.\n  self.test(n, elliperim(a, a), 40075236.597, prec=3)\n./test/testEllipses.py:54: DeprecationWarning: function L{elliperim<pygeodesy.deprecated.functions.elliperim>} has been DEPRECATED on 2026.02.12, use method L{pygeodesy.Ellipse.arc} or property L{pygeodesy.Ellipse.perimeter2k_}.\n  self.test(n, elliperim(a, 0), a * 4, prec=1)\n./test/testEllipses.py:55: DeprecationWarning: function L{elliperim<pygeodesy.deprecated.functions.elliperim>} has been DEPRECATED on 2026.02.12, use method L{pygeodesy.Ellipse.arc} or property L{pygeodesy.Ellipse.perimeter2k_}.\n  self.test(n, elliperim(0, b), b * 4, prec=1)\n./test/testEllipses.py:56: DeprecationWarning: function L{elliperim<pygeodesy.deprecated.functions.elliperim>} has been DEPRECATED on 2026.02.12, use method L{pygeodesy.Ellipse.arc} or property L{pygeodesy.Ellipse.perimeter2k_}.\n  self.test(n, elliperim(0, 0), '0.0')\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.Ellipse from .ellipses by testEllipses.py line 11\n# lazily imported pygeodesy.Ellipsoids from .ellipsoids by testEllipses.py line 11\n# lazily imported pygeodesy.EPS from .constants by testEllipses.py line 11\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by <frozen importlib._bootstrap> line 1423\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by <frozen importlib._bootstrap> line 1423\n# lazily imported pygeodesy.Conformal2Tuple from .triaxials.triaxial5 by <frozen importlib._bootstrap> line 1423\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by classes.py line 21\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by classes.py line 21\n# lazily imported pygeodesy.Conformal2Tuple from .triaxials.triaxial5 by classes.py line 21\n# lazily imported pygeodesy.elliperim from .deprecated.functions by testEllipses.py line 11\n# lazily imported pygeodesy.polar2d from .fmath by testEllipses.py line 11\n\n    testing testEllipses.py 26.03.25 isLazy=3\n\n    test 1 a, b, b/a, m: (6378172.0, 6378102.0, 0.9999890250686246, 2.194974230163016e-05)\n# lazily imported pygeodesy.elliptic by ellipses.py line 176\n    test 2 Ellipse.perimeter2k   : 40075016.685880177\n    test 3 Ellipse.perimeter2k_  : 40075016.685880177\n    test 4 Ellipse.perimeterAGM  : 40075016.685880177\n    test 5 Ellipse.perimeterHGK  : 40075016.685880177\n    test 6 Ellipse.perimeterCR   : 40075016.685880177\n    test 7 Ellipse.perimeterGK   : 40075016.685880177\n    test 8 Ellipse.perimeter2RC  : 40075016.685880177\n    test 9 Ellipse.perimeter2R   : 40075016.685880177\n    test 10 Ellipse.perimeter4Arc3: 40075016.6859892, 6378052.503181054, 6378221.49813043\n\n    test 11 elliperim DEPRECATED  : 40075016.68588018\n    test 12 elliperim DEPRECATED  : 40075236.597\n    test 13 elliperim DEPRECATED  : 25512688.0\n    test 14 elliperim DEPRECATED  : 25512408.0\n    test 15 elliperim DEPRECATED  : 0.0\n\n    test 16 Ellipse.apses2        : (6408054.087945863, 6348289.912054137)\n    test 17 Ellipse.arc           : 5009394.585735\n    test 18 Ellipse.arc           : 5009394.585735\n    test 19 Ellipse.arc           : 30056262.514410\n    test 20 Ellipse.arc           : 30056262.514410\n    test 21 Ellipse.area          : 127801973345104.3\n    test 22 Ellipse.e             : 0.004685055207959684\n    test 23 Ellipse.c             : 29882.087945862633\n    test 24 Ellipse.p             : 6378032.000768245\n    test 25 Ellipse.point 45      : (4510048.672774165, 4509999.1752994815)\n    test 26 Ellipse.polar2d 45    : (6378136.999711906, 45.0)\n    test 27 Ellipse.R1            : 6378148.666666666\n    test 28 Ellipse.R2            : 6378136.999903969\n    test 29 Ellipse.Roc 60        : 6378189.500552184\n    test 30 Ellipse.Roc_(-1, 1)   : 6378137.0004801545\n    test 31 Ellipse.Rrectifying   : 6378137.000048016\n    test 32 Ellipse.sideOf        : -0.9999998432135453\n    test 33 Ellipse.sideOf(c, p)  : 0.0\n    test 34 Ellipse.slope 60      : -29.999727713397277\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by ellipses.py line 800\n# lazily imported pygeodesy.hartzell4 from .triaxials.triaxial5 by bases.py line 411\n    test 35 Ellipse.hartzell4     : (4510048.672774, 4509999.175299, 0.0, 2641910.848113)\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 36 Ellipse.height4       : (4510063.170305, 4509984.677881, 0.0, 2641910.848001)\n    test 37 Ellipse.normal3d      : (0.7071, 0.70711, 0.0)\n    test 38 Ellipse.normal4       : (3189086.0, 5523598.359928, 0.0, 0.0)\n\n    test 39 Ellipse.toRepr(terse=0): Ellipse(name='', a=6378172, b=6378102, c=29882.08794586, e=0.00468506, e2=0.00002195, p=6378032.00076825, area=127801973345104.296875, perimeter2k=40075016.68588018, R2=6378136.99990397)\n    test 40 Ellipse.toEllipsoid: name='', a=6378172, f=0.00001097, f_=91116.74285714, b=6378102\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by ellipses.py line 800\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 41 Ellipse.toTriaxial_: name='_', a=6378172, b=6378102, c=0, e2ab=0.00002195, e2bc=1, e2ac=1\n\n    test 63 Ellipse.sideOfs       : 0\n    test 64 Ellipse.sideOf point  : 0.0\n    test 65 Ellipse.cw vs ccw     : 21\n    test 66 Ellipse.cw vs ccw'd   : True\n    test 91 Ellipse.slopes        : 0\n\n    test 92 a, b, b/a, m: (6378172.0, 5740354.8, 0.9, 0.18999999999999995)\n    test 93 Ellipse.perimeter2k   : 38097844.622237749\n    test 94 Ellipse.perimeter2k_  : 38097844.622237749\n    test 95 Ellipse.perimeterAGM  : 38097844.622237757\n    test 96 Ellipse.perimeterHGK  : 38097844.622237757\n    test 97 Ellipse.perimeterCR   : 38097844.622237757\n    test 98 Ellipse.perimeterGK   : 38097844.622237757\n    test 99 Ellipse.perimeter2RC  : 38097844.622237757\n    test 100 Ellipse.perimeter2R   : 38097844.622237757\n    test 101 Ellipse.perimeter4Arc3: 38107337.959388405, 5343198.019022138, 6890325.8899754025\n\n    test 102 elliperim DEPRECATED  : 38097844.62223775\n    test 103 elliperim DEPRECATED  : 40075236.597\n    test 104 elliperim DEPRECATED  : 25512688.0\n    test 105 elliperim DEPRECATED  : 22961419.2\n    test 106 elliperim DEPRECATED  : 0.0\n\n    test 107 Ellipse.apses2        : (9158352.71925207, 3597991.28074793)\n    test 108 Ellipse.arc           : 4921611.270994\n    test 109 Ellipse.arc           : 4921611.270994\n    test 110 Ellipse.arc           : 28573383.466678\n    test 111 Ellipse.arc           : 28573383.466678\n    test 112 Ellipse.area          : 115023038380546.69\n    test 113 Ellipse.e             : 0.4358898943540673\n    test 114 Ellipse.c             : 2780180.71925207\n    test 115 Ellipse.p             : 5166319.32\n    test 116 Ellipse.point 45      : (4510048.672774165, 4059043.805496748)\n    test 117 Ellipse.polar2d 45    : (6034126.999973108, 45.0)\n    test 118 Ellipse.R1            : 6165566.266666667\n    test 119 Ellipse.R2            : 6050865.248493441\n    test 120 Ellipse.Roc 60        : 6587963.642879878\n    test 121 Ellipse.Roc_(-1, 1)   : 6101359.094016017\n    test 122 Ellipse.Rrectifying   : 6063460.29277612\n    test 123 Ellipse.sideOf        : -0.9999998257947401\n    test 124 Ellipse.sideOf(c, p)  : 0.0\n    test 125 Ellipse.slope 60      : -27.457076095938262\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by ellipses.py line 800\n# lazily imported pygeodesy.hartzell4 from .triaxials.triaxial5 by bases.py line 411\n    test 126 Ellipse.hartzell4     : (4510048.672774, 4059043.805497, 0.0, 2513302.891806)\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 127 Ellipse.height4       : (4646979.930894, 3931944.941451, 0.0, 2503472.028331)\n    test 128 Ellipse.normal3d      : (0.66896, 0.74329, 0.0)\n    test 129 Ellipse.normal4       : (3189086.0, 4971293.083536, 0.0, 0.0)\n\n    test 130 Ellipse.toRepr(terse=0): Ellipse(name='', a=6378172, b=5740354.8, c=2780180.71925207, e=0.43588989, e2=0.19, p=5166319.32, area=115023038380546.6875, perimeter2k=38097844.62223775, R2=6050865.24849344)\n    test 131 Ellipse.toEllipsoid: name='', a=6378172, f=0.1, f_=10, b=5740354.8\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by ellipses.py line 800\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 132 Ellipse.toTriaxial_: name='_', a=6378172, b=5740354.8, c=0, e2ab=0.19, e2bc=1, e2ac=1\n\n    test 154 Ellipse.sideOfs       : 0\n    test 155 Ellipse.sideOf point  : 0.0\n    test 156 Ellipse.cw vs ccw     : 21\n    test 157 Ellipse.cw vs ccw'd   : True\n    test 182 Ellipse.slopes        : 0\n\n    test 183 a, b, b/a, m: (6378172.0, 3189086.0, 0.5, 0.75)\n    test 184 Ellipse.perimeter2k   : 30897294.581873503\n    test 185 Ellipse.perimeter2k_  : 30897294.581873503\n    test 186 Ellipse.perimeterAGM  : 30897294.581873506\n    test 187 Ellipse.perimeterHGK  : 30897294.581873506\n    test 188 Ellipse.perimeterCR   : 30897294.581819803\n    test 189 Ellipse.perimeterGK   : 30897294.581743788\n    test 190 Ellipse.perimeter2RC  : 30897294.567785483\n    test 191 Ellipse.perimeter2R   : 30897294.567785427\n    test 192 Ellipse.perimeter4Arc3: 31157545.70727452, 2203604.2294767764, 11538221.541046448\n\n    test 193 elliperim DEPRECATED  : 30897294.581873503\n    test 194 elliperim DEPRECATED  : 40075236.597\n    test 195 elliperim DEPRECATED  : 25512688.0\n    test 196 elliperim DEPRECATED  : 12756344.0\n    test 197 elliperim DEPRECATED  : 0.0\n\n    test 198 Ellipse.apses2        : (11901830.9817066, 854513.0182933994)\n    test 199 Ellipse.arc           : 4644738.918062\n    test 200 Ellipse.arc           : 4644738.918062\n    test 201 Ellipse.arc           : 23172970.936405\n    test 202 Ellipse.arc           : 23172970.936405\n    test 203 Ellipse.area          : 63901687989192.6\n    test 204 Ellipse.e             : 0.8660254037844386\n    test 205 Ellipse.c             : 5523658.981706601\n    test 206 Ellipse.p             : 1594543.0\n    test 207 Ellipse.point 45      : (4510048.672774165, 2255024.3363870825)\n    test 208 Ellipse.polar2d 45    : (4033910.165662294, 45.0)\n    test 209 Ellipse.R1            : 5315143.333333333\n    test 210 Ellipse.R2            : 4510048.672774164\n    test 211 Ellipse.Roc 60        : 9342460.639577284\n    test 212 Ellipse.Roc_(-1, 1)   : 6302984.633847336\n    test 213 Ellipse.Rrectifying   : 4917457.1608716035\n    test 214 Ellipse.sideOf        : -0.9999996864305322\n    test 215 Ellipse.sideOf(c, p)  : 0.0\n    test 216 Ellipse.slope 60      : -16.102113751986025\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by ellipses.py line 800\n# lazily imported pygeodesy.hartzell4 from .triaxials.triaxial5 by bases.py line 411\n    test 217 Ellipse.hartzell4     : (4510048.672774, 2255024.336387, 0.0, 2088625.375015)\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 218 Ellipse.height4       : (5309727.884418, 1766908.87251, 0.0, 1778808.761525)\n    test 219 Ellipse.normal3d      : (0.44721, 0.89443, 0.0)\n    test 220 Ellipse.normal4       : (3189086.0, 2761829.490853, 0.0, 0.0)\n\n    test 221 Ellipse.toRepr(terse=0): Ellipse(name='', a=6378172, b=3189086, c=5523658.9817066, e=0.8660254, e2=0.75, p=1594543, area=63901687989192.6015625, perimeter2k=30897294.5818735, R2=4510048.67277416)\n    test 222 Ellipse.toEllipsoid: name='', a=6378172, f=0.5, f_=2, b=3189086\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by ellipses.py line 800\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 223 Ellipse.toTriaxial_: name='_', a=6378172, b=3189086, c=0, e2ab=0.75, e2bc=1, e2ac=1\n\n    test 245 Ellipse.sideOfs       : 0\n    test 246 Ellipse.sideOf point  : 0.0\n    test 247 Ellipse.cw vs ccw     : 21\n    test 248 Ellipse.cw vs ccw'd   : True\n    test 273 Ellipse.slopes        : 0\n\n    test 274 a, b, b/a, m: (6378172.0, 1594543.0, 0.25, 0.9375)\n    test 275 Ellipse.perimeter2k   : 27357324.785247806\n    test 276 Ellipse.perimeter2k_  : 27357324.785247806\n    test 277 Ellipse.perimeterAGM  : 27357324.785247806\n    test 278 Ellipse.perimeterHGK  : 27357324.785247806\n    test 279 Ellipse.perimeterCR   : 27357324.462550402\n    test 280 Ellipse.perimeterGK   : 27357323.163297798\n    test 281 Ellipse.perimeter2RC  : 27357318.008817654\n    test 282 Ellipse.perimeter2R   : 27357317.948020011\n    test 283 Ellipse.perimeter4Arc3: 27839816.212722465, 922977.919904027, 23415319.320383895\n\n    test 284 elliperim DEPRECATED  : 27357324.785247806\n    test 285 elliperim DEPRECATED  : 40075236.597\n    test 286 elliperim DEPRECATED  : 25512688.0\n    test 287 elliperim DEPRECATED  : 6378172.0\n    test 288 elliperim DEPRECATED  : 0.0\n\n    test 289 Ellipse.apses2        : (12553810.483811613, 202533.51618838683)\n    test 290 Ellipse.arc           : 4544501.990341\n    test 291 Ellipse.arc           : 4544501.990341\n    test 292 Ellipse.arc           : 20517993.588936\n    test 293 Ellipse.arc           : 20517993.588936\n    test 294 Ellipse.area          : 31950843994596.3\n    test 295 Ellipse.e             : 0.9682458365518543\n    test 296 Ellipse.c             : 6175638.483811613\n    test 297 Ellipse.p             : 398635.75\n    test 298 Ellipse.point 45      : (4510048.672774165, 1127512.1681935412)\n    test 299 Ellipse.polar2d 45    : (2187694.9475911316, 45.0)\n    test 300 Ellipse.R1            : 4783629.0\n    test 301 Ellipse.R2            : 3189086.0\n    test 302 Ellipse.Roc 60        : 17091507.78125\n    test 303 Ellipse.Roc_(-1, 1)   : 9878809.997716203\n    test 304 Ellipse.Rrectifying   : 4354053.469342613\n    test 305 Ellipse.sideOf        : -0.9999993728610642\n    test 306 Ellipse.sideOf(c, p)  : 0.0\n    test 307 Ellipse.slope 60      : -8.213210701738216\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by ellipses.py line 800\n# lazily imported pygeodesy.hartzell4 from .triaxials.triaxial5 by bases.py line 411\n    test 308 Ellipse.hartzell4     : (4510048.672774, 1127512.168194, 0.0, 1925617.449958)\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 309 Ellipse.height4       : (5837520.368165, 642477.334856, 0.0, 1094866.757991)\n    test 310 Ellipse.normal3d      : (0.24254, 0.97014, 0.0)\n    test 311 Ellipse.normal4       : (3189086.0, 1380914.745427, 0.0, 0.0)\n\n    test 312 Ellipse.toRepr(terse=0): Ellipse(name='', a=6378172, b=1594543, c=6175638.48381161, e=0.96824584, e2=0.9375, p=398635.75, area=31950843994596.30078125, perimeter2k=27357324.78524781, R2=3189086)\n    test 313 Ellipse.toEllipsoid: name='', a=6378172, f=0.75, f_=1.33333333, b=1594543\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by ellipses.py line 800\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 314 Ellipse.toTriaxial_: name='_', a=6378172, b=1594543, c=0, e2ab=0.9375, e2bc=1, e2ac=1\n\n    test 336 Ellipse.sideOfs       : 0\n    test 337 Ellipse.sideOf point  : 0.0\n    test 338 Ellipse.cw vs ccw     : 21\n    test 339 Ellipse.cw vs ccw'd   : True\n    test 364 Ellipse.slopes        : 0\n\n    test 365 a, b, b/a, m: (6378172.0, 797271.5, 0.125, 0.984375)\n    test 366 Ellipse.perimeter2k   : 26106620.666072767\n    test 367 Ellipse.perimeter2k_  : 26106620.666072767\n    test 368 Ellipse.perimeterAGM  : 26106620.666072764\n    test 369 Ellipse.perimeterHGK  : 26106620.666072760\n    test 370 Ellipse.perimeterCR   : 26106596.269819759\n    test 371 Ellipse.perimeterGK   : 26106498.674043797\n    test 372 Ellipse.perimeter2RC  : 26106496.429202825\n    test 373 Ellipse.perimeter2R   : 26106468.693959467\n    test 374 Ellipse.perimeter4Arc3: 26548502.51849537, 426749.3250869843, 48408652.89930413\n\n    test 375 elliperim DEPRECATED  : 26106620.666072767\n    test 376 elliperim DEPRECATED  : 40075236.597\n    test 377 elliperim DEPRECATED  : 25512688.0\n    test 378 elliperim DEPRECATED  : 3189086.0\n    test 379 elliperim DEPRECATED  : 0.0\n\n    test 380 Ellipse.apses2        : (12706318.349198299, 50025.65080170147)\n    test 381 Ellipse.arc           : 4518714.450822\n    test 382 Ellipse.arc           : 4518714.450822\n    test 383 Ellipse.arc           : 19579965.499555\n    test 384 Ellipse.arc           : 19579965.499555\n    test 385 Ellipse.area          : 15975421997298.15\n    test 386 Ellipse.e             : 0.9921567416492215\n    test 387 Ellipse.c             : 6328146.3491982985\n    test 388 Ellipse.p             : 99658.9375\n    test 389 Ellipse.point 45      : (4510048.672774165, 563756.0840967706)\n    test 390 Ellipse.polar2d 45    : (1118805.3802239103, 45.0)\n    test 391 Ellipse.R1            : 4517871.833333333\n    test 392 Ellipse.R2            : 2255024.336387082\n    test 393 Ellipse.Roc 60        : 33401212.250312246\n    test 394 Ellipse.Roc_(-1, 1)   : 18464659.107211024\n    test 395 Ellipse.Rrectifying   : 4154997.72643051\n    test 396 Ellipse.sideOf        : -0.9999987457221285\n    test 397 Ellipse.sideOf(c, p)  : 0.0\n    test 398 Ellipse.slope 60      : -4.127810304512707\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by ellipses.py line 800\n# lazily imported pygeodesy.hartzell4 from .triaxials.triaxial5 by bases.py line 411\n    test 399 Ellipse.hartzell4     : (4510048.672774, 563756.084097, 0.0, 1882661.471213)\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 400 Ellipse.height4       : (6128382.04862, 220935.918585, 0.0, 628138.298638)\n    test 401 Ellipse.normal3d      : (0.12403, 0.99228, 0.0)\n    test 402 Ellipse.normal4       : (3189086.0, 690457.372713, 0.0, 0.0)\n\n    test 403 Ellipse.toRepr(terse=0): Ellipse(name='', a=6378172, b=797271.5, c=6328146.3491983, e=0.99215674, e2=0.984375, p=99658.9375, area=15975421997298.15039062, perimeter2k=26106620.66607277, R2=2255024.33638708)\n    test 404 Ellipse.toEllipsoid: name='', a=6378172, f=0.875, f_=1.14285714, b=797271.5\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by ellipses.py line 800\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 405 Ellipse.toTriaxial_: name='_', a=6378172, b=797271.5, c=0, e2ab=0.984375, e2bc=1, e2ac=1\n\n    test 427 Ellipse.sideOfs       : 0\n    test 428 Ellipse.sideOf point  : 0.0\n    test 429 Ellipse.cw vs ccw     : 21\n    test 430 Ellipse.cw vs ccw'd   : True\n    test 455 Ellipse.slopes        : 0\n\n    test 456 a, b, b/a, m: (6378172.0, 2.220446049250313e-16, 3.4813204304467065e-23, 1.0)\n    test 457 Ellipse.perimeter2k   : 25512688.000000000\n    test 458 Ellipse.perimeter2k_  : 25512688.000000000\n    test 459 Ellipse.perimeterAGM  : 25512688.000000000\n    test 460 Ellipse.perimeterHGK  : 25512688.000000000\n    test 461 Ellipse.perimeterCR   : 25512688.000000000\n    test 462 Ellipse.perimeterGK   : 25512688.000000000\n    test 463 Ellipse.perimeter2RC  : 25512688.000000000\n    test 464 Ellipse.perimeter2R   : 25512688.000000000\n    test 465 Ellipse.perimeter4Arc3: 25512688.0, 0.0, 4503599627370496.0\n\n    test 466 elliperim DEPRECATED  : 25512688.0\n    test 467 elliperim DEPRECATED  : 40075236.597\n    test 468 elliperim DEPRECATED  : 25512688.0\n    test 469 elliperim DEPRECATED  : 0.0\n    test 470 elliperim DEPRECATED  : 0.0\n\n    test 471 Ellipse.apses2        : (12756344.0, 0.0)\n    test 472 Ellipse.arc           : 3189086.000000\n    test 473 Ellipse.arc           : 3189086.000000\n    test 474 Ellipse.arc           : 19134516.000000\n    test 475 Ellipse.arc           : 19134516.000000\n    test 476 Ellipse.area          : 4.449245038736142e-09\n    test 477 Ellipse.e             : 1.0\n    test 478 Ellipse.c             : 6378172.0\n    test 479 Ellipse.p             : 7.730084195959789e-39\n    test 480 Ellipse.point 45      : (4510048.672774165, 1.5700924586837752e-16)\n    test 481 Ellipse.polar2d 45    : (3.14018491736755e-16, 45.0)\n    test 482 Ellipse.R1            : 4252114.666666666\n    test 483 Ellipse.R2            : 3.763294676057001e-05\n    test 484 Ellipse.Roc 60        : 1.1899922225051757e+29\n    test 485 Ellipse.Roc_(-1, 1)   : 6.477497206707077e+28\n    test 486 Ellipse.Rrectifying   : 4060470.406761281\n    test 487 Ellipse.sideOf        : 4503599627370494.5\n    test 488 Ellipse.sideOf(c, p)  : 0.0\n    test 489 Ellipse.slope 60      : 0.0\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by ellipses.py line 800\n# lazily imported pygeodesy.hartzell4 from .triaxials.triaxial5 by bases.py line 411\n    test 490 Ellipse.hartzell4     : (4510048.672774, 0.0, 0.0, 1868123.327226)\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 491 Ellipse.height4       : (6378172.0, 0.0, 0.0, 0.0)\n    test 492 Ellipse.normal3d      : (0.0, 1.0, 0.0)\n    test 493 Ellipse.normal4       : (3189086.0, 0.0, 0.0, 0.0)\n\n    test 494 Ellipse.toRepr(terse=0): Ellipse(name='', a=6378172, b=0, c=6378172, e=1, e2=1, p=0, area=0, perimeter2k=25512688, R2=0.00003763)\n    test 495 Ellipse.toEllipsoid: name='', a=6378172, f=0, f_=0, b=6378172\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by ellipses.py line 800\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 496 Ellipse.toTriaxial_: name='_', a=6378172, b=0, c=0, e2ab=1, e2bc=0, e2ac=1\n\n    test 497 Ellipse.isCircular    : False\n    test 498 Ellipse.isFlat        : True\n    test 499 Ellipse.isOblate      : True\n    test 500 Ellipse.isProlate     : False\n\n    test 501 Airy1830.polarimeter/2k: 40004504.322866\n    test 502 AiryModified.polarimeter/2k: 40003104.213633\n    test 503 ATS1977.polarimeter/2k: 40007850.321623\n    test 504 Australia1966.polarimeter/2k: 40008005.562578\n    test 505 Bessel1841.polarimeter/2k: 40003423.057729\n    test 506 BesselModified.polarimeter/2k: 40004018.103739\n    test 507 CGCS2000.polarimeter/2k: 40007862.916922\n    test 508 Clarke1866.polarimeter/2k: 40007552.171931\n    test 509 Clarke1880.polarimeter/2k: 40007470.206590\n    test 510 Clarke1880IGN.polarimeter/2k: 40007470.788996\n    test 511 Clarke1880Mod.polarimeter/2k: 40007470.510580\n    test 512 CPM1799.polarimeter/2k: 40000070.108863\n    test 513 Delambre1810.polarimeter/2k: 39999995.935832\n    test 514 Engelis1985.polarimeter/2k: 40007856.817888\n    test 515 Everest1969.polarimeter/2k: 40003153.246198\n    test 516 Everest1975.polarimeter/2k: 40003175.124904\n    test 517 Fisher1968.polarimeter/2k: 40007954.087654\n    test 518 GEM10C.polarimeter/2k: 40007862.917259\n    test 519 GPES.polarimeter/2k: 40075004.119208\n    test 520 GRS67.polarimeter/2k: 40008004.925042\n    test 521 GRS80.polarimeter/2k: 40007862.916922\n    test 522 Helmert1906.polarimeter/2k: 40008267.720558\n    test 523 IAU76.polarimeter/2k: 40007881.684906\n    test 524 IERS1989.polarimeter/2k: 40007856.594279\n    test 525 IERS1992TOPEX.polarimeter/2k: 40007858.526391\n    test 526 IERS2003.polarimeter/2k: 40007860.227339\n    test 527 Intl1924.polarimeter/2k: 40009153.195958\n    test 528 Intl1967.polarimeter/2k: 40007989.794372\n    test 529 Krassovski1940.polarimeter/2k: 40008549.990171\n    test 530 Krassowsky1940.polarimeter/2k: 40008549.990171\n    test 531 Maupertuis1738.polarimeter/2k: 40090266.793877\n    test 532 Mercury1960.polarimeter/2k: 40008054.450184\n    test 533 Mercury1968Mod.polarimeter/2k: 40007954.087654\n    test 534 NWL1965.polarimeter/2k: 40007911.472733\n    test 535 OSU86F.polarimeter/2k: 40007857.899134\n    test 536 OSU91A.polarimeter/2k: 40007858.526400\n    test 537 Plessis1817.polarimeter/2k: 39999996.440146\n    test 538 PZ90.polarimeter/2k: 40007856.783172\n    test 539 SGS85.polarimeter/2k: 40007856.594279\n    test 540 SoAmerican1969.polarimeter/2k: 40008005.562578\n    test 541 Sphere.polarimeter/2k: 40030228.704467\n    test 542 SphereAuthalic.polarimeter/2k: 40030173.592041\n    test 543 SpherePopular.polarimeter/2k: 40075016.685578\n    test 544 Struve1860.polarimeter/2k: 40008071.346229\n    test 545 WGS60.polarimeter/2k: 40008048.177526\n    test 546 WGS66.polarimeter/2k: 40007911.472733\n    test 547 WGS72.polarimeter/2k: 40007850.996794\n    test 548 WGS84.polarimeter/2k: 40007862.917251\n    test 549 WGS84_NGS.polarimeter/2k: 40007862.916922\n\n    30 of 549 testEllipses.py tests (5.5%) FAILED, incl. 30 DeprecationWarnings (pygeodesy 26.3.26 Python 3.14.3 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 54.603 ms\nrunning /Library/Framewo....n3.14 -W default ~/PyGeodesy/test/testEllipsoidal.py\n<string>:1: DeprecationWarning: method L{__matmul__<pygeodesy.trf.RefFrame.__matmul__>} has been DEPRECATED on 2024.02.16, use method C{B{point}.toRefFrame}.\n./test/testLatLon.py:276: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.ellipsoidalNvector.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', p.cosineAndoyerLambertTo(q), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:277: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.ellipsoidalNvector.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', q.cosineAndoyerLambertTo(p), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:279: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.ellipsoidalNvector.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', p.cosineForsytheAndoyerLambertTo(q), '124801.098' if Sph else '125205.965', fmt='%.3f')\n./test/testLatLon.py:280: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.ellipsoidalNvector.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', q.cosineForsytheAndoyerLambertTo(p), '124801.098' if Sph else '125205.965', fmt='%.3f')\n./pygeodesy/ellipsoidalBase.py:443: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  _ = self.datum.ellipsoid.geodesic\n./pygeodesy/azimuthal.py:636: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return self.datum.ellipsoid.geodesic\n./pygeodesy/ellipsoidalNvector.py:247: DeprecationWarning: Property_RO L{ned<pygeodesy.ltpTuples.Ned.ned>} has been DEPRECATED, use property C{ned4}.\n  dn = delta.ned[:3]  # XXX Ned4Tuple.to3Tuple\n./pygeodesy/deprecated/classes.py:33: DeprecationWarning: class L{Ned3Tuple<pygeodesy.deprecated.classes.Ned3Tuple>} has been DEPRECATED, use class L{Ned4Tuple}, ignoring item C{ltp}.\n  deprecated_class(cls)\n./test/testVectorial.py:128: DeprecationWarning: function L{nearestOn<pygeodesy.vector2d.nearestOn>} has been DEPRECATED on 2025.05.06, use L{pygeodesy.nearestOn<pygeodesy.vector3d.nearestOn>}.\n  t = vector2d.nearestOn(Nvector(0, 0, 0), p1, p2)\n./test/testLatLon.py:276: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.ellipsoidalVincenty.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', p.cosineAndoyerLambertTo(q), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:277: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.ellipsoidalVincenty.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', q.cosineAndoyerLambertTo(p), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:279: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.ellipsoidalVincenty.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', p.cosineForsytheAndoyerLambertTo(q), '124801.098' if Sph else '125205.965', fmt='%.3f')\n./test/testLatLon.py:280: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.ellipsoidalVincenty.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', q.cosineForsytheAndoyerLambertTo(p), '124801.098' if Sph else '125205.965', fmt='%.3f')\n./test/testLatLon.py:627: DeprecationWarning: function L{areaOf<pygeodesy.ellipsoidalVincenty.areaOf>} has been DEPRECATED, use function L{ellipsoidalExact.areaOf} or L{ellipsoidalKarney.areaOf}.\n  r = a(reversed(b))\n./pygeodesy/ellipsoidalKarney.py:139: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return fabs(_polygon(datum.ellipsoid.geodesic, points, True, False, wrap, polar))\n./test/testLatLon.py:628: DeprecationWarning: function L{areaOf<pygeodesy.ellipsoidalVincenty.areaOf>} has been DEPRECATED, use function L{ellipsoidalExact.areaOf} or L{ellipsoidalKarney.areaOf}.\n  f = a(b)  # ccw\n./pygeodesy/ellipsoidalKarney.py:94: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return self.datum.ellipsoid.geodesic\n./test/testLatLon.py:276: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.ellipsoidalKarney.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', p.cosineAndoyerLambertTo(q), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:277: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.ellipsoidalKarney.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', q.cosineAndoyerLambertTo(p), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:279: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.ellipsoidalKarney.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', p.cosineForsytheAndoyerLambertTo(q), '124801.098' if Sph else '125205.965', fmt='%.3f')\n./test/testLatLon.py:280: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.ellipsoidalKarney.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', q.cosineForsytheAndoyerLambertTo(p), '124801.098' if Sph else '125205.965', fmt='%.3f')\n./pygeodesy/ellipsoidalKarney.py:347: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return _polygon(datum.ellipsoid.geodesic, points, closed, True, wrap, False)\n./pygeodesy/ellipsoidalKarney.py:266: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  a = _polygon(datum.ellipsoid.geodesic, points, True, False, wrap, polar)\n./test/testLatLon.py:276: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.ellipsoidalExact.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', p.cosineAndoyerLambertTo(q), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:277: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.ellipsoidalExact.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', q.cosineAndoyerLambertTo(p), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:279: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.ellipsoidalExact.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', p.cosineForsytheAndoyerLambertTo(q), '124801.098' if Sph else '125205.965', fmt='%.3f')\n./test/testLatLon.py:280: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.ellipsoidalExact.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', q.cosineForsytheAndoyerLambertTo(p), '124801.098' if Sph else '125205.965', fmt='%.3f')\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.Aer from .ltpTuples by testLatLon.py line 12\n# lazily imported pygeodesy.Enu from .ltpTuples by testLatLon.py line 12\n# lazily imported pygeodesy.F_D from .dms by testLatLon.py line 12\n# lazily imported pygeodesy.F_DM from .dms by testLatLon.py line 12\n# lazily imported pygeodesy.F_DMS from .dms by testLatLon.py line 12\n# lazily imported pygeodesy.F_RAD from .dms by testLatLon.py line 12\n# lazily imported pygeodesy.R_M from .constants by testLatLon.py line 12\n# lazily imported pygeodesy.R_NM from .constants by testLatLon.py line 12\n# lazily imported pygeodesy.degrees from .utily by testLatLon.py line 12\n# lazily imported pygeodesy.fstr from .streprs by testLatLon.py line 12\n# lazily imported pygeodesy.isclockwise from .points by testLatLon.py line 12\n# lazily imported pygeodesy.isconvex from .points by testLatLon.py line 12\n# lazily imported pygeodesy.isenclosedBy from .points by testLatLon.py line 12\n# lazily imported pygeodesy.isnear0 from .constants by testLatLon.py line 12\n# lazily imported pygeodesy.ispolar from .points by testLatLon.py line 12\n# lazily imported pygeodesy.Local9Tuple from .ltpTuples by testLatLon.py line 12\n# lazily imported pygeodesy.Ltp from .ltp by testLatLon.py line 12\n# lazily imported pygeodesy.m2km from .utily by testLatLon.py line 12\n# lazily imported pygeodesy.m2NM from .utily by testLatLon.py line 12\n# lazily imported pygeodesy.Ned from .ltpTuples by testLatLon.py line 12\n# lazily imported pygeodesy.XyzLocal from .ltpTuples by testLatLon.py line 12\n# lazily imported pygeodesy.IntersectionError from .errors by testLatLon.py line 12\n# lazily imported pygeodesy.VincentyError from .ellipsoidalVincenty by testLatLon.py line 12\n# lazily imported pygeodesy.EPS from .constants by testVectorial.py line 11\n# lazily imported pygeodesy.EPS4 from .constants by testVectorial.py line 11\n# lazily imported pygeodesy.NEG0 from .constants by testVectorial.py line 11\n# lazily imported pygeodesy.circin6 from .vector2d by testVectorial.py line 11\n# lazily imported pygeodesy.circum3 from .vector2d by testVectorial.py line 11\n# lazily imported pygeodesy.circum4_ from .vector2d by testVectorial.py line 11\n# lazily imported pygeodesy.intersection3d3 from .vector3d by testVectorial.py line 11\n# lazily imported pygeodesy.meeus2 from .vector2d by testVectorial.py line 11\n# lazily imported pygeodesy.radii11 from .vector2d by testVectorial.py line 11\n# lazily imported pygeodesy.sincos2d from .utily by testVectorial.py line 11\n# lazily imported pygeodesy.sphericalNvector by testVectorial.py line 11\n# lazily imported pygeodesy.soddy4 from .vector2d by testVectorial.py line 11\n# lazily imported pygeodesy.trilaterate2d2 from .vector2d by testVectorial.py line 11\n# lazily imported pygeodesy.trilaterate3d2 from .vector3d by testVectorial.py line 11\n# lazily imported pygeodesy.Vector3d from .vector3d by testVectorial.py line 11\n# lazily imported pygeodesy.VectorError from .errors by testVectorial.py line 11\n# lazily imported pygeodesy.F_D__ from .dms by testEllipsoidal.py line 13\n# lazily imported pygeodesy.bearingDMS from .dms by testEllipsoidal.py line 13\n# lazily imported pygeodesy.compassDMS from .dms by testEllipsoidal.py line 13\n# lazily imported pygeodesy.Datums from .datums by testEllipsoidal.py line 13\n# lazily imported pygeodesy.latlonDMS from .dms by testEllipsoidal.py line 13\n# lazily imported pygeodesy.latlonDMS_ from .dms by testEllipsoidal.py line 13\n# lazily imported pygeodesy.m2SM from .utily by testEllipsoidal.py line 13\n# lazily imported pygeodesy.PI from .constants by testEllipsoidal.py line 13\n# lazily imported pygeodesy.PI_4 from .constants by testEllipsoidal.py line 13\n# lazily imported pygeodesy.RefFrames from .trf by testEllipsoidal.py line 13\n# lazily imported pygeodesy.wrap360 from .utily by testEllipsoidal.py line 13\n# lazily imported pygeodesy.ellipsoidalExact by testEllipsoidal.py line 753\n# lazily imported pygeodesy.ellipsoidalNvector by testEllipsoidal.py line 753\n# lazily imported pygeodesy.Equidistant from .azimuthal by testEllipsoidal.py line 753\n# lazily imported pygeodesy.EquidistantExact from .azimuthal by testEllipsoidal.py line 753\n# lazily imported pygeodesy.EquidistantGeodSolve from .azimuthal by testEllipsoidal.py line 753\n# lazily imported pygeodesy.EquidistantKarney from .azimuthal by testEllipsoidal.py line 753\n\n    testing testEllipsoidal.py 24.11.02 isLazy=3\n\n    testEllipsoidal(pygeodesy.ellipsoidalNvector, 25.05.12)\n    test 1 isEllipsoidal: True\n    test 2 isSpherical: False\n    test 3 isEllipsoidal: True\n    test 4 isSpherical: False\n    test 5 toDatum: 51.477284°N, 000.00002°E, -45.91m\n    test 6 toDatum: 51.4773°N, 000.0°E, -45.91m\n    test 7 toDatum: 51.4778°N, 000.0016°W\n    test 8 __matmul__: 51.477284°N, 000.00002°E, -45.91m\n    test 9 __matmul__: 51.477284°N, 000.00002°E, -45.90m\n    test 10 toNVector: (0.6228, 0.0, 0.7824, +0.24)\n    test 11 toNvector: True\n    test 12 toCartesian: [3980581, 97, 4966825]\n    test 13 toCartesian: True\n    test 14 toVector3D: (0.6228, 0.0, 0.7824)\n    test 15 Nvector: (0.5, 0.5, 0.7071)\n    test 16 toVector3D: (0.5, 0.5, 0.7071)\n    test 17 philamheight: 0.7854, 0.7854, 0.0\n    test 18 latlonheight: 45.0, 45.0, 0.0\n    test 19 xyzh: 0.5, 0.5, 0.7, 0.0\n    test 20 toCartesian: [3194434.411, 3194434.411, 4487326.82]\n    test 21 toCartesian: True\n    test 22 toLatLon: 45.0°N, 045.0°E\n    test 23 toLatLon: True\n    test 24 Nvector: (0.51, 0.512, 0.707, +1.00)\n    test 25 sat: 82.545852°N, 059.719736°E, -6353121.71m\n    test 26 dop: 51.998889°N, 004.373333°E, +134.64m\n    test 27 distance: 3806542.943645768  FAILED, KNOWN, expected 3806542.943647\n\n    32 tests skipped (32): insersecant2\n\n    testLatLon(pygeodesy.ellipsoidalNvector, 25.05.12)\n    test 28 isEllipsoidal: True\n    test 29 isSpherical: False\n    test 30 lat/lonDMS: 52.20472°N, 000.14056°E\n    test 31 lat/lonDMS F_DM: 52°12.283′N, 000°08.434′E\n    test 32 lat/lonDMS F_DM: 52°12.2832′N, 000°08.4336′E\n    test 33 lat/lonDMS F_DMS: 52°12′17″N, 000°08′26″E\n    test 34 lat/lonDMS F_DMS: 52°12′17.0″N, 000°08′26.0″E\n    test 35 lat/lonDMS F_RAD: 0.911144N, 0.002453E\n    test 36 isequalTo: True\n    test 37 isequalTo: True\n    test 38 latlon2: 52.20472, 0.14056\n    test 39 latlon2: 52.2047, 0.1406\n    test 40 latlon2: 52.205, 0.141\n    test 41 latlon2: 52.2, 0.14\n    test 42 latlon2: 52.2, 0.1\n    test 43 latlon2: 52.0, 0.0\n    test 44 chordTo: 12029263.15\n    test 45 chordTo: 12029049.69\n    test 46 copy: True\n    test 47 __eq__: True\n    test 48 __ne__: False\n# imported pygeodesy.formy into latlonBase.py line 484\n# lazily imported pygeodesy.angles by units.py line 633\n    test 49 equirectangularTo: 404329.56\n    test 50 distanceTo: 404279.720589\n    test 51 distanceTo: 404279.720589\n    test 52 distanceTo: 3972863\n    test 53 distanceTo: 18013602.92\n    test 54 distanceTo: 20015114.35  FAILED, KNOWN, expected 20003931.46\n    test 55 intermediateTo: 51.372294°N, 000.707192°E\n    test 56 intermediateTo: True\n    test 57 intermediateTo: 404279.721\n    test 58 intermediateTo+5: 35.560239°N, 008.833512°E\n    test 59 intermediateTo+5: 4.885\n    test 60 intermediateTo-4: 64.570387°N, 013.156352°W\n    test 61 intermediateTo-4: 3.885\n    test 62 intermediateTo-h: 125.000\n    test 63 midpointTo: 50.536327°N, 001.274614°E\n# lazily imported pygeodesy.booleans by iters.py line 76\n    test 64 neareston6: (LatLon(45°00′00.0″N, 001°00′00.0″E), 4755443.4294, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E))\n    test 65 neareston6: (LatLon(45°30′03.94″N, 002°00′00.0″E), 39078.729285, 1.501072, 2, LatLon(45°00′00.0″N, 002°00′00.0″E), LatLon(46°00′00.0″N, 002°00′00.0″E))\n    test 66 chordTo: 125203.963\n    test 67 cosineAndoyerLambertTo: 125205.962\n    test 68 cosineAndoyerLambertTo: 125205.962\n    test 69 cosineForsyheAndoyerLambertTo: 125205.965\n    test 70 cosineForsyheAndoyerLambertTo: 125205.965\n    test 71 cosineLawTo: 124801.098\n    test 72 cosineLawTo: 124801.098\n    test 73 equirectangularTo: 124804.754\n    test 74 equirectangularTo: 124804.754\n    test 75 euclideanTo: 130015.089\n    test 76 euclideanTo: 130015.089\n    test 77 flatLocalTo: 125209.633\n    test 78 flatLocalTo: 125209.633\n    test 79 flatPolarTo: 133663.257\n    test 80 flatPolarTo: 133663.257\n    test 81 hartzell: 53.3206°N, 001.7297°W\n# lazily imported pygeodesy.triaxials by lazily.py line 529\n# lazily imported pygeodesy.Triaxial from .triaxials.triaxial5 by ellipsoids.py line 1905\n    test 82 hartzell: 53.349541°N, 001.7297°W\n    test 83 height4: 0.0\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by cartesianBase.py line 364\n    test 84 height4: (3820333.9, -115367.0, 5097204.4, -6584.9)\n    test 85 height4: 53°19′14.2″N, 001°43′46.9″W\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by cartesianBase.py line 364\n    test 86 height4: 53°19′14.2″N, 001°43′46.9″W\n    test 87 haversineTo: 124801.098\n    test 88 haversineTo: 124801.098\n    test 89 hubenyTo: <bound method LatLonBase.flatLocalTo of LatLon(53°19′14.16″N, 001°43′46.92″W)>\n    test 90 hubenyTo: <bound method LatLonBase.flatLocalTo of LatLon(53°11′19.32″N, 000°08′00.24″E)>\n    test 91 thomasTo: 125206.188\n    test 92 thomasTo: 125206.188\n    test 93 vincentysTo: 124801.098\n    test 94 vincentysTo: 124801.098\n    test 95 isclockwise: False\n    test 96 isclockwise*: False\n    test 97 isclockwise: True\n    test 98 isclockwise*: True\n    test 99 isclockwise: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 100 isclockwise*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 101 isclockwise: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 102 isclockwise*: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 103 isconvex: False\n    test 104 isconvex*: False\n    test 105 isconvex: True\n    test 106 isconvex*: True\n    test 107 isconvex: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 108 isconvex*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 109 isenclosedBy1: True\n    test 110 isenclosedBy1*: True\n    test 111 isenclosedBy2: False\n    test 112 isenclosedBy2*: False\n    test 113 isenclosedBy3: False\n    test 114 isenclosedBy3*: False\n    test 115 isenclosedBy4: False\n    test 116 isenclosedBy4*: False\n    test 117 isenclosedBy5: False\n    test 118 isenclosedBy5*: False\n    test 119 isenclosedBy6: True\n    test 120 isenclosedBy6*: True\n    test 121 isenclosedBy7: True\n    test 122 isenclosedBy7*: True\n    test 123 isenclosedBy-CCW: True\n    test 124 isenclosedBy-CW : True\n    test 125 isenclosedBy-CCW: True\n    test 126 compassAngleTo: 100.017\n    test 127 compassAngleTo: 105.599\n    test 128 compassAngleTo: 280.017\n    test 129 compassAngleTo: 285.599\n    test 130 equirectangularTo: 592.185\n    test 131 distanceTo: 591.831\n    test 132 compassAngleTo: 0.0\n    test 133 compassAngleTo: 45.0\n    test 134 compassAngleTo: 90.0\n    test 135 compassAngleTo: 180.0\n    test 136 compassAngleTo: 225.0\n    test 137 compassAngleTo: 315.0\n    test 138 compassAngleTo: 270.0\n    test 139 compassAngleTo: 359.4\n    test 140 latlon2: (53.0, 1.0)\n    test 141 philam2: (0.93, 0.02)\n    test 142 compassAngleTo: 31\n    test 143 compassAngleTo: 45\n\n    test 144 boundsOf: <class 'pygeodesy.namedTuples.Bounds2Tuple'>\n    test 145 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 146 latlon2: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 147 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 148 isequalTo: <class 'bool'>\n    test 149 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 150 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 151 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 152 xyz3: <class 'tuple'>\n    test 153 xyzh: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 154 compassAngleTo: <class 'float'>\n    test 155 cosineLawTo: <class 'float'>\n    test 156 euclideanTo: <class 'float'>\n    test 157 flatLocalTo: <class 'float'>\n    test 158 flatPolarTo: <class 'float'>\n    test 159 haversineTo: <class 'float'>\n    test 160 hubenyTo: <class 'float'>\n    test 161 vincentysTo: <class 'float'>\n# imported pygeodesy.ltpTuples into ecefLocals.py line 80\n# imported pygeodesy.ltp into ecefLocals.py line 63\n# imported pygeodesy.ltp into ltpTuples.py line 1585\n    test 162 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 163 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 164 toLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 165 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 166 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 167 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 168 toVector: (3934960.466675, 0.0, 5002803.345483)\n    test 169 toVector3d: (0.61823, 0.0, 0.786)\n    test 170 trilaterate5 (pygeodesy.ellipsoidalNvector) .min: 223.305\n    test 171 trilaterate5 (pygeodesy.ellipsoidalNvector) .point: 42.67456065°N, 002.49539502°E\n    test 172 trilaterate5 (pygeodesy.ellipsoidalNvector) .min- is .maxPoint: True\n    test 173 trilaterate5 (pygeodesy.ellipsoidalNvector) .n: 1\n    test 174 trilaterate5 (pygeodesy.ellipsoidalNvector) .error: ellipsoidalNvector.LatLon.trilaterate5(area=True), MRO(nvectorBase.LatLonNvectorBase, ellipsoidalBase.LatLonEllipsoidalBase, latlonBase.LatLonBase, named._NamedBase, ecefLocals._EcefLocal, named._Named): not implemented\n\n    test 175 radii11: Radii11Tuple(rA=7705.84217, rB=1367.057272, rC=498.160185, cR=4897.488519, rIn=740.470746, riS=179.544791, roS=5964.029657, a=1865.217457, b=8204.002354, c=9072.899442, s=9571.059626)\n\n    22 tests skipped (54): No module named 'numpy': required by vector2d._numpy\n\n    testVectorial(pygeodesy.ellipsoidalNvector, 25.05.12)\n\n    test 176 toLatLon: 44.995674°N, 045.0°E\n    test 177 toNvector: (0.50004, 0.50004, 0.70705)\n    test 178 isequalTo: False\n    test 179 isequalTo: True\n    test 180 length: 0.99992449715\n    test 181 euclid: 0.99995577\n    test 182 length: 1.00\n    test 183 euclid: 1.0000\n    test 184 meanOf: 44.995674°N, 045.0°E\n    test 185 meanOf: LatLon\n    test 186 apply: (0.5, 0.5, 0.707)\n    test 187 init: (0.5, 0.5, 0.707)\n    test 188 i***: (0.5, 0.5, 0.707)\n    test 189 abs: 0.99992449715\n    test 190 sumOf: (52.70504, 0.61904, 0.70705)\n    test 191 sumOf: Nv\n    test 192 sumOf: sumOf\n    test 193 length: 52.7134151513\n    test 194 sizeof: 217  FAILED, KNOWN, expected 128\n    test 195 length: 52.2051356286\n    test 196 sizeof: 320  FAILED, KNOWN, expected 247\n    test 197 copy: True\n    test 198 length: 52.2051356286\n    test 199 sizeof: 320\n    test 200 isenclosedBy: True\n    test 201 isenclosedBy*: True\n    test 202 isenclosedBy: True\n    test 203 isenclosedBy*: True\n# lazily imported pygeodesy.geodesicw by ellipsoids.py line 1074\n\n    test 204 nearestOn: 51.0°N, 001.0°E\n    test 205 nearestOn: 50.987°N, 000.298°W\n    test 206 nearestOn: 51.0°N, 002.0°E\n    test 207 nearestOn: 50.995°N, 002.655°E\n    test 208 nearestOn: 51.0°N, 001.9°E\n    test 209 nearestOn: True\n    test 210 distanceTo: 42.826\n    test 211 nearestOn: 51.0°N, 002.0°E\n    test 212 nearestOn: True\n    test 213 nearestOn: 00.0°N, 000.0°E\n    test 214 nearestOn: True\n    test 215 nearestOn: 00.0°N, 020.0°E\n    test 216 nearestOn: True\n    test 217 nearestOn: 02.0°N, 002.0°E\n    test 218 nearestOn: 02.0°N, 002.0°E\n\n    test 219 neareston6: (LatLon(45°00′00.0″N, 001°00′00.0″E), 4755443.4294, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E))\n    test 220 neareston6: (LatLon(45°30′03.94″N, 002°00′00.0″E), 39078.729285, 1.501072, 2, LatLon(45°00′00.0″N, 002°00′00.0″E), LatLon(46°00′00.0″N, 002°00′00.0″E))\n\n    test 221 BasseC: 47.3038°N, 002.5721°W\n    test 222 BasseH: 47.311067°N, 002.528617°W\n    test 223 triangulate: 47.323667°N, 002.568501°W\n    test 224 triangulate: True\n\n    test 225 trilaterate: 37.419078°N, 121.960579°W\n    test 226 trilaterate: True\n    test 227 trilaterate: 08.068912°S, 034.888699°W\n    test 228 trilaterate: True\n    test 229 trilaterate: 08.068912°S, 034.888695°W  FAILED, KNOWN, expected 08.068912°S, 034.888699°W\n    test 230 trilaterate: True\n    test 231 trilaterate: 42.67456065°N, 002.49539502°E\n# imported pygeodesy.basics into errors.py line 443\n    test 232 trilaterate: distance1 (5110), distance2 (5110), distance3 (5110), point1 (LatLon(42°41′19.82″N, 002°26′19.89″E)), point2 (LatLon(42°38′07.52″N, 002°31′21.25″E)) or point3 (LatLon(42°38′43.44″N, 002°30′17.32″E)): no intersection (useZ=False, wrap=False, z=-8.13526e-05)\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by <frozen importlib._bootstrap> line 1423\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by <frozen importlib._bootstrap> line 1423\n# lazily imported pygeodesy.Conformal2Tuple from .triaxials.triaxial5 by <frozen importlib._bootstrap> line 1423\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by classes.py line 21\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by classes.py line 21\n# lazily imported pygeodesy.Conformal2Tuple from .triaxials.triaxial5 by classes.py line 21\n# lazily imported pygeodesy.deprecated by ltpTuples.py line 483\n\n    test 233 destinationNed: 48°53′12.01″N, 002°22′29.0″E, +0.20m\n\n    testNvector(pygeodesy.ellipsoidalNvector, 25.05.12)\n    test 234 sumOf: Nvector\n    test 235 ecef.x, .y, .z: 3194659.54086, 3194659.54086, 4487008.4122\n    test 236 ecef.lat, .lon: 44.995674, 45.0\n    test 237 ecef.height: -0.0\n    test 238 ecef.M: -0.707106781, -0.499962243, 0.500037754, 0.707106781, -0.499962243, 0.500037754, 0.0, 0.707160174, 0.707053385\n    test 239 nearestOn: (0.0, 0.0, 0.0)\n    test 240 nearestOn: True\n    test 241 nearestOn: (100.0, 100.0, 100.0)\n    test 242 nearestOn: True\n# imported pygeodesy.vector2d into vector3d.py line 659\n    test 243 iscolinearWith: False\n    test 244 iscolinearWith: True\n    test 245 nearestOn: (0.0, 0.0, 0.0)\n    test 246 nearestOn: True\n    test 247 nearestOn: (100.0, 100.0, 100.0)\n    test 248 nearestOn: True\n    test 249 iscolinearWith: False\n    test 250 iscolinearWith: True\n\n    testEllipsoidal(pygeodesy.ellipsoidalVincenty, 25.05.26)\n    test 251 isEllipsoidal: True\n    test 252 isSpherical: False\n    test 253 isEllipsoidal: True\n    test 254 isSpherical: False\n    test 255 toDatum: 51.477284°N, 000.00002°E, -45.91m\n    test 256 toDatum: 51.4773°N, 000.0°E, -45.91m\n    test 257 toDatum: 51.4778°N, 000.0016°W\n    test 258 __matmul__: 51.477284°N, 000.00002°E, -45.91m\n    test 259 __matmul__: 51.477284°N, 000.00002°E, -45.90m\n    test 260 sat: 82.545852°N, 059.719736°E, -6353121.71m\n    test 261 dop: 51.998889°N, 004.373333°E, +134.64m\n    test 262 distance: 3817991.0740122627  FAILED, KNOWN, expected 3817991.074015\n    test 263 neareston8: (LatLon(45°00′00.0″N, 001°00′00.0″E), 4874369.98942, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E), 0.0, 0.0)\n    test 264 iteration: 0\n    test 265 neareston8: (LatLon(45°30′03.93″N, 020°00′00.0″E), 39078.779519, 1.501069, 2, LatLon(45°00′00.0″N, 020°00′00.0″E), LatLon(46°00′00.0″N, 020°00′00.0″E), 270.356041, 269.999412)\n    test 266 iteration: 1\n# lazily imported pygeodesy.geodesicx by ellipsoids.py line 1043\n# lazily imported pygeodesy.rhumb by geodesicw.py line 606\n# lazily imported pygeodesy.geodsolve by ellipsoids.py line 1057\n# lazily imported pygeodesy.elliptic by gx.py line 421\n    test 267 intersecant2: 2.851e-11% 5 LatLon(03°18′54.69″S, 023°52′08.48″E)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 268 intersecant2: 2.948e-11% 5 LatLon(22°22′23.65″S, 007°55′54.49″E)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 269 intersecant2: 7.380e-11% 5 LatLon(10°39′24.95″N, 034°45′48.18″W)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 270 intersecant2: 6.491e-11% 4 LatLon(25°11′09.14″S, 005°10′35.44″W)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 271 intersecant2: 6.581e-12% 5 LatLon(10°14′21.91″S, 021°00′17.05″E)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 272 intersecant2: 1.993e-11% 5 LatLon(20°55′17.31″S, 010°40′21.43″E)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 273 intersecant2: center (LatLon(05°00′00.0″N, 005°00′00.0″W)), circle (3339584), end (LatLon(15°00′00.0″N, 045°00′00.0″E)), exact (False), start (LatLon(45°00′00.0″S, 015°00′00.0″W)) or wrap (False): 'too distant (3.69e+06) plumb to (16°56′45.9″S, 020°17′02.98″E)'\n    test 274 intersecant2: 4.822e-11% 5 LatLon(30°19′11.9″N, 022°18′22.76″W)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 275 intersecant2: 2.138e-11% 5 LatLon(00°59′41.3″N, 034°46′57.09″W)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 276 intersecant2: center (LatLon(05°00′00.0″N, 005°00′00.0″W)), circle (3339584), end (261.75669472183114), exact (False), start (LatLon(00°59′41.3″N, 034°46′57.09″W)) or wrap (False): 'no convergence (256), tolerance (1.49012e-08) plumb to (08°01′06.61″S, 004°29′38.58″W)'\n    test 277 intersecant2: center (LatLon(05°00′00.0″N, 005°00′00.0″W)), circle (3339584), end (LatLon(35°08′52.15″N, 004°02′04.68″W)), exact (False), start (LatLon(34°12′31.53″N, 003°04′01.61″E)) or wrap (False): 'no convergence (2.36323e-08), tolerance (1.49012e-08) plumb to (34°43′48.27″N, 000°27′49.31″W)'\n    test 278 intersecant2: center (LatLon(05°00′00.0″N, 005°00′00.0″W)), circle (3339584), end (16.240301461238964), exact (False), start (LatLon(34°12′31.53″N, 003°04′01.61″E)) or wrap (False): 'too distant (1.47e+07) plumb to (22°42′26.37″S, 138°32′28.16″W)'\n    test 279 intersecant2: 1.610e-11% 5 LatLon(07°41′21.22″S, 022°17′12.7″E)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 280 intersecant2: 5.550e-12% 5 LatLon(35°07′53.48″N, 006°26′21.82″W)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 281 intersecant2: center (LatLon(05°00′00.0″N, 005°00′00.0″W)), circle (3339584), end (357.1305274303066), exact (False), start (LatLon(35°07′53.48″N, 006°26′21.82″W)) or wrap (False): 'too distant (3.82e+06) plumb to (04°26′36.43″N, 029°25′15.75″E)'\n\n    testLatLon(pygeodesy.ellipsoidalVincenty, 25.05.26)\n    test 282 isEllipsoidal: True\n    test 283 isSpherical: False\n    test 284 lat/lonDMS: 52.20472°N, 000.14056°E\n    test 285 lat/lonDMS F_DM: 52°12.283′N, 000°08.434′E\n    test 286 lat/lonDMS F_DM: 52°12.2832′N, 000°08.4336′E\n    test 287 lat/lonDMS F_DMS: 52°12′17″N, 000°08′26″E\n    test 288 lat/lonDMS F_DMS: 52°12′17.0″N, 000°08′26.0″E\n    test 289 lat/lonDMS F_RAD: 0.911144N, 0.002453E\n    test 290 isequalTo: True\n    test 291 isequalTo: True\n    test 292 latlon2: 52.20472, 0.14056\n    test 293 latlon2: 52.2047, 0.1406\n    test 294 latlon2: 52.205, 0.141\n    test 295 latlon2: 52.2, 0.14\n    test 296 latlon2: 52.2, 0.1\n    test 297 latlon2: 52.0, 0.0\n    test 298 chordTo: 12029263.15\n    test 299 chordTo: 12029049.69\n    test 300 initialBearingTo: 156.1106\n    test 301 initialBearingTo: 65.9335\n    test 302 initialBearingTo: 0.0\n    test 303 initialBearingTo: 180.0\n    test 304 finalBearingTo: 157.8345\n    test 305 finalBearingTo: 93.9034\n    test 306 bearingTo2: 156.1106, 157.8345\n    test 307 ispolar: True\n    test 308 copy: True\n    test 309 __eq__: True\n    test 310 __ne__: False\n    test 311 equirectangularTo: 404329.56\n    test 312 distanceTo: 404607.805988\n    test 313 distanceTo: 404607.805988\n    test 314 distanceTo: 3981601\n    test 315 antipodal: False\n    test 316 distanceTo dateline: 19959679.267\n    test 317 distanceTo unrolled: 19959679.267\n    test 318 antipodal: False\n    test 319 distanceTo dateline: 9513998\n    test 320 distanceTo unrolled: 9513998\n    test 321 distanceTo: 18012714.66\n    test 322 distanceTo: ambiguous: LatLon(00°00′00.0″N, 000°00′00.0″E) antipodal to LatLon(00°00′00.0″N, 180°00′00.0″E)  FAILED, KNOWN, expected ambiguous, antipodal ...\n    test 323 distanceTo3 dateline: 19959679.2674, 161.0677, 18.8252\n    test 324 distanceTo3 dateline: 9513997.9901, 42.9164, 138.8903\n    test 325 distanceTo3 dateline: 19959679.2674, 161.0677, 18.8252\n    test 326 distanceTo3 dateline: 9513997.9901, 42.9164, 138.8903\n    test 327 intermediateTo: 51.372275°N, 000.707253°E\n    test 328 intermediateTo: True\n    test 329 intermediateTo: 404607.806\n    test 330 intermediateTo+5: 35.139582°N, 008.994368°E\n    test 331 intermediateTo+5: 5.000\n    test 332 intermediateTo-4: 64.894124°N, 013.705689°W\n    test 333 intermediateTo-4: 4.000\n    test 334 intermediateTo-h: 125.000\n    test 335 midpointTo: 50.536583°N, 001.274507°E\n    test 336 destination: 51.513526°N, 000.098038°W\n    test 337 destination: 51°30′49″N, 000°05′53″W\n    test 338 destination: 33°57′N, 118°24′W\n    test 339 destination: 33.950367°N, 118.399012°W\n    test 340 destination: 0.592546N, 2.066453W\n    test 341 destination: 32.11195529°N, 064.56074722°E  FAILED, KNOWN, expected 32.11195529°N, 063.95925278°E\n    test 342 neareston6: (LatLon(45°00′00.0″N, 001°00′00.0″E), 4755443.4294, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E))\n    test 343 neareston6: (LatLon(45°30′03.94″N, 002°00′00.0″E), 39078.729285, 1.501072, 2, LatLon(45°00′00.0″N, 002°00′00.0″E), LatLon(46°00′00.0″N, 002°00′00.0″E))\n    test 344 chordTo: 125203.963\n    test 345 cosineAndoyerLambertTo: 125205.962\n    test 346 cosineAndoyerLambertTo: 125205.962\n    test 347 cosineForsyheAndoyerLambertTo: 125205.965\n    test 348 cosineForsyheAndoyerLambertTo: 125205.965\n    test 349 cosineLawTo: 124801.098\n    test 350 cosineLawTo: 124801.098\n    test 351 equirectangularTo: 124804.754\n    test 352 equirectangularTo: 124804.754\n    test 353 euclideanTo: 130015.089\n    test 354 euclideanTo: 130015.089\n    test 355 flatLocalTo: 125209.633\n    test 356 flatLocalTo: 125209.633\n    test 357 flatPolarTo: 133663.257\n    test 358 flatPolarTo: 133663.257\n    test 359 hartzell: 53.3206°N, 001.7297°W\n# lazily imported pygeodesy.Triaxial from .triaxials.triaxial5 by ellipsoids.py line 1905\n    test 360 hartzell: 53.349541°N, 001.7297°W\n    test 361 height4: 0.0\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by cartesianBase.py line 364\n    test 362 height4: (3820333.9, -115367.0, 5097204.4, -6584.9)\n    test 363 height4: 53°19′14.2″N, 001°43′46.9″W\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by cartesianBase.py line 364\n    test 364 height4: 53°19′14.2″N, 001°43′46.9″W\n    test 365 haversineTo: 124801.098\n    test 366 haversineTo: 124801.098\n    test 367 hubenyTo: <bound method LatLonBase.flatLocalTo of LatLon(53°19′14.16″N, 001°43′46.92″W)>\n    test 368 hubenyTo: <bound method LatLonBase.flatLocalTo of LatLon(53°11′19.32″N, 000°08′00.24″E)>\n    test 369 thomasTo: 125206.188\n    test 370 thomasTo: 125206.188\n    test 371 vincentysTo: 124801.098\n    test 372 vincentysTo: 124801.098\n    test 373 isclockwise: False\n    test 374 isclockwise*: False\n    test 375 isclockwise: True\n    test 376 isclockwise*: True\n    test 377 isclockwise: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 378 isclockwise*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 379 isclockwise: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 380 isclockwise*: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 381 isconvex: False\n    test 382 isconvex*: False\n    test 383 isconvex: True\n    test 384 isconvex*: True\n    test 385 isconvex: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 386 isconvex*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 387 isenclosedBy1: True\n    test 388 isenclosedBy1*: True\n    test 389 isenclosedBy2: False\n    test 390 isenclosedBy2*: False\n    test 391 isenclosedBy3: False\n    test 392 isenclosedBy3*: False\n    test 393 isenclosedBy4: False\n    test 394 isenclosedBy4*: False\n    test 395 isenclosedBy5: False\n    test 396 isenclosedBy5*: False\n    test 397 isenclosedBy6: True\n    test 398 isenclosedBy6*: True\n    test 399 isenclosedBy7: True\n    test 400 isenclosedBy7*: True\n    test 401 isenclosedBy-CCW: True\n    test 402 isenclosedBy-CW : True\n    test 403 isenclosedBy-CCW: True\n    test 404 initialBearingTo: 102.392291\n    test 405 compassAngleTo: 100.017\n    test 406 compassAngleTo: 105.599\n    test 407 initialBearingTo: 288.676039\n    test 408 compassAngleTo: 280.017\n    test 409 compassAngleTo: 285.599\n    test 410 equirectangularTo: 592.185\n    test 411 distanceTo: 593.571\n    test 412 bearingTo: 0.0\n    test 413 compassAngleTo: 0.0\n    test 414 bearingTo: 45.2  FAILED, KNOWN, expected 45.0\n    test 415 compassAngleTo: 45.0\n    test 416 bearingTo: 90.0\n    test 417 compassAngleTo: 90.0\n    test 418 bearingTo: 180.0\n    test 419 compassAngleTo: 180.0\n    test 420 bearingTo: 225.2  FAILED, KNOWN, expected 225.0\n    test 421 compassAngleTo: 225.0\n    test 422 bearingTo: 314.8  FAILED, KNOWN, expected 315.0\n    test 423 compassAngleTo: 315.0\n    test 424 bearingTo: 270.0\n    test 425 compassAngleTo: 270.0\n    test 426 bearingTo: 360.0  FAILED, KNOWN, expected 359.4\n    test 427 compassAngleTo: 359.4\n    test 428 latlon2: (53.0, 1.0)\n    test 429 philam2: (0.93, 0.02)\n    test 430 bearingTo: 31\n    test 431 compassAngleTo: 31\n    test 432 compassAngleTo: 45\n\n    test 433 boundsOf: <class 'pygeodesy.namedTuples.Bounds2Tuple'>\n    test 434 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 435 latlon2: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 436 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 437 isequalTo: <class 'bool'>\n    test 438 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 439 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 440 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 441 xyz3: <class 'tuple'>\n    test 442 xyzh: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 443 compassAngleTo: <class 'float'>\n    test 444 cosineLawTo: <class 'float'>\n    test 445 euclideanTo: <class 'float'>\n    test 446 flatLocalTo: <class 'float'>\n    test 447 flatPolarTo: <class 'float'>\n    test 448 haversineTo: <class 'float'>\n    test 449 hubenyTo: <class 'float'>\n    test 450 vincentysTo: <class 'float'>\n    test 451 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 452 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 453 toLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 454 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 455 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 456 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 457 toNvector: (0.615661, 0.0, 0.788011, 0)\n    test 458 toVector: (3934960.466675, 0.0, 5002803.345483)\n    test 459 toVector3d: (0.61823, 0.0, 0.786)\n# lazily imported pygeodesy.sphericalTrigonometry by ellipsoidalBaseDI.py line 734\n\n    test 460 trilaterate5 (pygeodesy.ellipsoidalVincenty) .min: 305.091\n    test 461 trilaterate5 (pygeodesy.ellipsoidalVincenty) .point: 42.66933643°N, 002.48620262°E\n    test 462 trilaterate5 (pygeodesy.ellipsoidalVincenty) .max: 1592.545\n    test 463 trilaterate5 (pygeodesy.ellipsoidalVincenty) .point: 42.65141232°N, 002.46816989°E\n    test 464 trilaterate5 (pygeodesy.ellipsoidalVincenty) .n: 3\n    test 465 trilaterate5 (pygeodesy.ellipsoidalVincenty) .min: 127.229\n    test 466 trilaterate5 (pygeodesy.ellipsoidalVincenty) .max: 152.612\n    test 467 trilaterate5 (pygeodesy.ellipsoidalVincenty) .point: 42.67815375°N, 002.49950041°E\n    test 468 trilaterate5 (pygeodesy.ellipsoidalVincenty) .n: 2\n    test 469 trilaterate5 (pygeodesy.ellipsoidalVincenty) .min: 2400.293\n    test 470 trilaterate5 (pygeodesy.ellipsoidalVincenty) .max: 2400.293\n    test 471 trilaterate5 (pygeodesy.ellipsoidalVincenty) .point: 42.66128984°N, 002.47973818°E\n    test 472 trilaterate5 (pygeodesy.ellipsoidalVincenty) .min- is .maxPoint: True\n    test 473 trilaterate5 (pygeodesy.ellipsoidalVincenty) .n: 1\n    test 474 trilaterate5 (pygeodesy.ellipsoidalVincenty) .min: 1343.743\n    test 475 trilaterate5 (pygeodesy.ellipsoidalVincenty) .point: 42.69131964°N, 002.50112167°E\n    test 476 trilaterate5 (pygeodesy.ellipsoidalVincenty) .max: 1445.554\n    test 477 trilaterate5 (pygeodesy.ellipsoidalVincenty) .point: 42.67815375°N, 002.49950041°E\n    test 478 trilaterate5 (pygeodesy.ellipsoidalVincenty) .n: 2\n    test 479 radii11: Radii11Tuple(rA=7244.792747, rB=1828.106695, rC=2.25502, cR=57792.067128, rIn=57.366968, riS=2.087668, roS=2.443334, a=1830.361715, b=7247.047766, c=9072.899442, s=9075.154461)\n\n    27 tests skipped (81): No module named 'numpy': required by vector2d._numpy\n\n    test 480 radii11: Radii11Tuple(rA=7244.792747, rB=1828.106695, rC=2.25502, cR=57792.067128, rIn=57.366968, riS=2.087668, roS=2.443334, a=1830.361715, b=7247.047766, c=9072.899442, s=9075.154461)\n\n    22 tests skipped (103): No module named 'numpy': required by vector2d._numpy\n# lazily imported pygeodesy.ellipsoidalKarney by ellipsoidalVincenty.py line 383\n\n    test 481 area cw/ccw: 1.0\n\n    testNOAA(pygeodesy.ellipsoidalVincenty, 25.05.26)\n    test 482 NOAAexample1: 191872.1190, 249 03 16.4237, 67 59 11.1619\n    test 483 NOAAexample2: 182009.1679, 254 42 44.6439, 73 09 21.3315\n    test 484 NOAAexample3: 123456.7891, 245 00 34.7001, 64 20 24.6864\n    test 485 NOAAexample4: 145239.0603, 114 29 26.9586, 295 21 32.6566\n\n    testIntersection3(pygeodesy.ellipsoidalVincenty, 25.05.26)\n    test 486 (30, 17): (LatLon(30°52′03.1″N, 015°30′38.41″E), 0, 0)\n    test 487 (30, 17): (LatLon(30°52′03.1″N, 015°30′38.41″E), -1, 0)\n    test 488 (-1,  3): (LatLon(01°34′52.49″N, 006°00′51.83″E), -1, -2)\n    test 489 (-1,  3): (LatLon(01°34′52.49″N, 006°00′51.83″E), -1, 2)\n    test 490 (65, 32): (LatLon(56°58′26.51″N, 032°00′00.0″E), 1, 0)\n    test 491 (65, 32): (LatLon(56°58′26.51″N, 032°00′00.0″E), 1, 2)\n    test 492 (-2, 17): <class 'pygeodesy.errors.IntersectionError'>\n    test 493 (49, 25): (LatLon(49°00′00.0″N, 025°00′00.0″E), 1, -2)  FAILED, KNOWN, expected (LatLon(49°00′00.0″N, 025°00′00.0″E), 0, 0)\n    test 494 #58: (LatLon(01°54′25.65″S, 005°37′48.76″E), 1, -2)\n    test 495 #58: <class 'pygeodesy.errors.IntersectionError'>\n\n    testIntersections2(pygeodesy.ellipsoidalVincenty, 25.05.26)\n    test 496 Equidistant: 36.9879°N, 088.1564°W, 38.2441°N, 092.3835°W  FAILED, KNOWN, expected 36.9892°N, 088.152°W, 38.2377°N, 092.39°W\n    test 497 Equidistant: 36.9892°N, 088.152°W, 38.2377°N, 092.39°W\n    test 498 Equidistant: 00.0°S, 035.4073°W, 00.0°S, 035.4073°E\n    test 499 Equidistant: 1.63814 (% of radius)\n    test 500 Equidistant: 22.756°N, 000.0°W, 22.756°S, 000.0°W\n    test 501 Equidistant: 1.30784 (% of radius)\n    test 502 Equidistant: 29.2359°N, 040.2625°W, 29.2359°S, 040.2625°E\n    test 503 Equidistant: 1.31348 (% of radius)\n    test 504 Equidistant: 01.1557°S, 045.0894°E, 01.1557°N, 045.0894°E\n    test 505 Equidistant: 1.81093 (% of radius)\n    test 506 Equidistant 5: 05.0218°S, 005.0605°W, 05.0218°N, 005.0605°E\n    test 507 Equidistant 5: 0.00337268 (% of radius)\n    test 508 Equidistant 10: 10.0378°S, 010.3545°W, 10.0378°N, 010.3545°E\n    test 509 Equidistant 10: 0.00344677 (% of radius)\n    test 510 Equidistant 15: 15.0326°S, 016.1429°W, 15.0326°N, 016.1429°E\n    test 511 Equidistant 15: 0.00356146 (% of radius)\n    test 512 Equidistant 20: 19.9682°S, 022.7468°W, 19.9682°N, 022.7468°E\n    test 513 Equidistant 20: 0.00370135 (% of radius)\n    test 514 Equidistant 25: 24.7603°S, 030.5908°W, 24.7603°N, 030.5908°E\n    test 515 Equidistant 25: 0.00383987 (% of radius)\n    test 516 Equidistant 30: 29.2359°S, 040.2625°W, 29.2359°N, 040.2625°E\n    test 517 Equidistant 30: 0.00393258 (% of radius)\n    test 518 Equidistant 35: 33.0487°S, 052.585°W, 33.0487°N, 052.585°E\n    test 519 Equidistant 35: 0.00390516 (% of radius)\n    test 520 Equidistant 40: 35.5123°S, 068.6794°W, 35.5123°N, 068.6794°E\n    test 521 Equidistant 40: 0.0036308 (% of radius)\n    test 522 Equidistant 45: 35.2644°S, 090.0019°W, 35.2644°N, 090.0019°E\n    test 523 Equidistant 45: 0.00288386 (% of radius)\n    test 524 Equidistant 50: 29.3392°S, 119.0221°W, 29.3392°N, 119.0221°E\n    test 525 Equidistant 50: 0.00271777 (% of radius)\n    test 526 Equidistant: center1 (LatLon(55°00′00.0″N, 055°00′00.0″W)), center2 (LatLon(55°00′00.0″S, 055°00′00.0″E)), radius1 (12231458.77080936) or radius2 (12231458.77080936): 'no convergence (222847)': tolerance (0.001) too low, antipodal or near-polar?  FAILED, KNOWN, expected 2-tuple\n    test 527 Equidistant: center1 (LatLon(60°00′00.0″N, 060°00′00.0″W)), center2 (LatLon(60°00′00.0″S, 060°00′00.0″E)), radius1 (13343409.568155663) or radius2 (13343409.568155663): 'no convergence (1.02385e+06)': tolerance (0.001) too low, antipodal or near-polar?  FAILED, KNOWN, expected 2-tuple\n    test 528 Equidistant: center1 (LatLon(65°00′00.0″N, 065°00′00.0″W)), center2 (LatLon(65°00′00.0″S, 065°00′00.0″E)), radius1 (14455360.36550197) or radius2 (14455360.36550197): 'no convergence (1.55077e+06)': tolerance (0.001) too low, antipodal or near-polar?  FAILED, KNOWN, expected 2-tuple\n    test 529 Equidistant: 27.303074°S, 000.114806°W Random +/- 45\n    test 530 Equidistant: 27.139544°S, 000.202037°W, 42.598888°N, 023.760304°E  d 20075.1 meter (iteration 4)\n    test 531 Equidistant: 27.152964°S, 000.217004°W, 38.368233°N, 040.200784°E  d 19471.6 meter (iteration 5)\n    test 532 Equidistant: 27.103977°S, 000.140881°W, 01.561457°S, 053.300099°E  d 22212 meter (iteration 4)\n    test 533 Equidistant: 27.314798°S, 000.194395°W, 33.373107°S, 004.567697°W  d 7984.27 meter (iteration 3)\n    test 534 Equidistant: 27.107474°S, 000.272735°W, 16.774122°S, 025.774574°W  d 26731.4 meter (iteration 4)\n    test 535 Equidistant: 27.214548°S, 000.064356°W, 06.812675°S, 045.761846°W  d 11008.3 meter (iteration 3)\n    test 536 Equidistant: 27.114482°S, 000.011698°E, 43.624395°N, 047.204386°W  d 24367.3 meter (iteration 5)\n    test 537 Equidistant: 27.107089°S, 000.180606°W, 60.270165°N, 038.576976°W  d 22673.9 meter (iteration 4)\n    test 538 Equidistant: 27.170795°S, 000.12015°E, 28.473408°S, 010.356715°E  d 27502.7 meter (iteration 4)\n    test 539 Equidistant: 27.101449°S, 000.006328°W, 35.659876°S, 024.132585°W  d 24792.1 meter (iteration 4)\n    test 540 Equidistant: 27.15192°S, 000.013233°E, 00.089591°N, 036.199528°W  d 21009.1 meter (iteration 5)\n    test 541 Equidistant: 27.139028°S, 000.007808°W, 27.821305°N, 056.008532°W  d 21041.9 meter (iteration 5)\n\n    testVincenty(pygeodesy.ellipsoidalVincenty, 25.05.26, datum='WGS84')\n    test 542 distanceTo: 866455.43292\n    test 543 toDatum: OSGB36\n    test 544 ValueError2: Ellipsoid 'Airy1830': incompatible with Ellipsoid 'WGS84'\n    test 545 isEllipsoidal: True\n    test 546 isSpherical: False\n    test 547 epsilon: 1e-12\n    test 548 iterations: 200\n    test 549 copy: True\n    test 550 isEllipsoidal: True\n    test 551 isSpherical: False\n    test 552 copy: 37°57′03.7203″S, 144°25′29.5244″E\n    test 553 epsilon: 2.220446049250e-16\n    test 554 iterations: 400\n    test 555 iteration: None\n\n    testKarneyVincenty(pygeodesy.ellipsoidalVincenty, 25.05.26, datum='WGS84')\n    test 556 coincident: 0.0\n    test 557 coincident: 0.0, 0.0, 0.0\n    test 558 destination: 37.6528°S, 143.9265°E\n    test 559 destination: True\n    test 560 destination2: 37.652821°S, 143.926496°E, 307.1736°NW\n    test 561 destination2: True\n    test 562 finalBearingOn: 307.1736°, 307°10′25.07″NW\n    test 563 distanceTo: 969954.166\n    test 564 distanceTo3: 969954.166314, 9.141877, 11.29722\n    test 565 distanceTo2: 972708.16174, 11.22502\n    test 566 initialBearingTo: 9.1419°, 9°08′30.76″N\n    test 567 destination: 58.64402°N, 003.07009°W\n    test 568 finalBearingTo: 11.2972°, 11°17′49.99″NNE\n    test 569 finalBearingOn: 11.2972°, 11°17′49.99″NNE\n    test 570 distanceTo: 404607.806\n    test 571 distanceTo3: 404607.805988, 156.11064, 157.8345\n    test 572 distanceTo2: 402574.597287, 157.726344\n    test 573 initialBearingTo: 156.1106°, 156°06′38.31″SSE\n    test 574 destination: 48.857°N, 002.351°E\n    test 575 finalBearingTo: 157.8345°, 157°50′04.2″SSE\n    test 576 finalBearingOn: 157.8345°, 157°50′04.2″SSE\n    test 577 distanceTo: 54973.295\n    test 578 distanceTo3: 54973.29527, 233.13008, 232.82461\n    test 579 distanceTo2: 54903.41209, 232.9209\n    test 580 initialBearingTo: 233.1301°, 233°07′48.28″SW\n    test 581 destination: 37.6528°N, 143.9265°E\n    test 582 finalBearingTo: 232.8246°, 232°49′28.59″SW\n    test 583 finalBearingOn: 232.8246°, 232°49′28.59″SW\n    test 584 distanceToMP: 298396.057\n    test 585 distanceToSM: 185.415\n    test 586 distanceToMP: 111319.491\n    test 587 distanceToMP: 110574.389  FAILED, KNOWN, expected 110574.361\n    test 588 distanceToKW: 222638.982\n    test 589 distanceToKW: 111319.491\n    test 590 distanceTo3: 54972.271\n    test 591 distanceTo3: 306°52′05.37″\n    test 592 distanceTo3: 307°10′25.07″\n    test 593 distanceTo2: 54902.390\n    test 594 distanceTo2: 307°04′38.41″\n\n    testKarneyVincentyError(pygeodesy.ellipsoidalVincenty, 25.05.26, datum='WGS84')\n    test 595 distanceTo/antipodal (182): 19936288.579\n    test 596 distanceTo/VincentyError (182): no convergence (0.00746541): epsilon (1e-12) and iterations (200), LatLon(00°00′00.0″N, 000°00′00.0″E) to LatLon(00°30′00.0″N, 179°42′00.0″E)  FAILED, KNOWN, expected no convergence: ...\n    test 597 initialBearingTo/VincentyError (182): no convergence (0.00746541): epsilon (1e-12) and iterations (200), LatLon(00°00′00.0″N, 000°00′00.0″E) to LatLon(00°30′00.0″N, 179°42′00.0″E)  FAILED, KNOWN, expected no convergence: ...\n    test 598 finalBearingTo/VincentyError (182): no convergence (0.00746541): epsilon (1e-12) and iterations (200), LatLon(00°00′00.0″N, 000°00′00.0″E) to LatLon(00°30′00.0″N, 179°42′00.0″E)  FAILED, KNOWN, expected no convergence: ...\n    test 599 distanceTo/equatorial (182): ambiguous: LatLon(00°00′00.0″N, 000°00′00.0″E) antipodal to LatLon(00°00′00.0″N, 180°00′00.0″E)  FAILED, KNOWN, expected ambiguous, ...\n    test 600 initialBearingTo/equatorial (182): ambiguous: LatLon(00°00′00.0″N, 000°00′00.0″E) antipodal to LatLon(00°00′00.0″N, 180°00′00.0″E)  FAILED, KNOWN, expected ambiguous, ...\n    test 601 distanceTo/coincident (5): 111319.491\n    test 602 distanceTo/meridional (1): 10001965.729\n    test 603 initialBearingTo/meridional (1): 180.0\n    test 604 distanceTo/coincident (1): 0.0\n    test 605 initialBearingTo/coincident (1): 0.0\n    test 606 finalBearingTo/coincident (1): 0.0\n    test 607 destination/coincident (1): 50.06632°N, 005.71475°W\n    test 608 distanceTo/anti-meridian (4): 10825924.1\n    test 609 distanceTo/quadrants (5): 4015703.02\n    test 610 distanceTo/quadrants (5): 4015703.02\n    test 611 distanceTo/quadrants (5): 4015703.02\n    test 612 distanceTo/quadrants (5): 4015703.02\n    test 613 distanceTo/quadrants (5): 4015703.02\n    test 614 distanceTo/quadrants (5): 4015703.02\n    test 615 distanceTo/quadrants (5): 4015703.02\n    test 616 distanceTo/quadrants (5): 4015703.02\n    test 617 distanceTo/quadrants (5): 4015703.02\n    test 618 distanceTo/quadrants (5): 4015703.02\n    test 619 distanceTo/quadrants (5): 4015703.02\n    test 620 distanceTo/quadrants (5): 4015703.02\n    test 621 distanceTo/quadrants (5): 4015703.02\n    test 622 distanceTo/quadrants (5): 4015703.02\n    test 623 distanceTo/quadrants (5): 4015703.02\n    test 624 distanceTo/quadrants (5): 4015703.02\n\n    testVincenty(pygeodesy.ellipsoidalVincenty, 25.05.26, datum='NAD83')\n    test 625 distanceTo: 866455.43292\n    test 626 toDatum: OSGB36\n    test 627 ValueError2: Ellipsoid 'Airy1830': incompatible with Ellipsoid 'GRS80'\n    test 628 isEllipsoidal: True\n    test 629 isSpherical: False\n    test 630 epsilon: 1e-12\n    test 631 iterations: 200\n    test 632 copy: True\n    test 633 isEllipsoidal: True\n    test 634 isSpherical: False\n    test 635 copy: 37°57′03.7203″S, 144°25′29.5244″E\n    test 636 epsilon: 2.220446049250e-16\n    test 637 iterations: 400\n    test 638 iteration: None\n\n    testKarneyVincenty(pygeodesy.ellipsoidalVincenty, 25.05.26, datum='NAD83')\n    test 639 coincident: 0.0\n    test 640 coincident: 0.0, 0.0, 0.0\n    test 641 destination: 37.6528°S, 143.9265°E\n    test 642 destination: True\n    test 643 destination2: 37.652821°S, 143.926496°E, 307.1736°NW\n    test 644 destination2: True\n    test 645 finalBearingOn: 307.1736°, 307°10′25.07″NW\n    test 646 distanceTo: 969954.166\n    test 647 distanceTo3: 969954.166314, 9.141877, 11.29722\n    test 648 distanceTo2: 972708.16174, 11.22502\n    test 649 initialBearingTo: 9.1419°, 9°08′30.76″N\n    test 650 destination: 58.64402°N, 003.07009°W\n    test 651 finalBearingTo: 11.2972°, 11°17′49.99″NNE\n    test 652 finalBearingOn: 11.2972°, 11°17′49.99″NNE\n    test 653 distanceTo: 404607.806\n    test 654 distanceTo3: 404607.805988, 156.11064, 157.8345\n    test 655 distanceTo2: 402574.597287, 157.726344\n    test 656 initialBearingTo: 156.1106°, 156°06′38.31″SSE\n    test 657 destination: 48.857°N, 002.351°E\n    test 658 finalBearingTo: 157.8345°, 157°50′04.2″SSE\n    test 659 finalBearingOn: 157.8345°, 157°50′04.2″SSE\n    test 660 distanceTo: 54973.295\n    test 661 distanceTo3: 54973.29527, 233.13008, 232.82461\n    test 662 distanceTo2: 54903.41209, 232.9209\n    test 663 initialBearingTo: 233.1301°, 233°07′48.28″SW\n    test 664 destination: 37.6528°N, 143.9265°E\n    test 665 finalBearingTo: 232.8246°, 232°49′28.59″SW\n    test 666 finalBearingOn: 232.8246°, 232°49′28.59″SW\n    test 667 distanceToMP: 298396.057\n    test 668 distanceToSM: 185.415\n    test 669 distanceToMP: 111319.491\n    test 670 distanceToMP: 110574.389  FAILED, KNOWN, expected 110574.361\n    test 671 distanceToKW: 222638.982\n    test 672 distanceToKW: 111319.491\n    test 673 distanceTo3: 54972.271\n    test 674 distanceTo3: 306°52′05.37″\n    test 675 distanceTo3: 307°10′25.07″\n    test 676 distanceTo2: 54902.390\n    test 677 distanceTo2: 307°04′38.41″\n\n    testKarneyVincentyError(pygeodesy.ellipsoidalVincenty, 25.05.26, datum='NAD83')\n    test 678 distanceTo/antipodal (182): 19936288.579\n    test 679 distanceTo/VincentyError (182): no convergence (0.00746541): epsilon (1e-12) and iterations (200), LatLon(00°00′00.0″N, 000°00′00.0″E) to LatLon(00°30′00.0″N, 179°42′00.0″E)  FAILED, KNOWN, expected no convergence: ...\n    test 680 initialBearingTo/VincentyError (182): no convergence (0.00746541): epsilon (1e-12) and iterations (200), LatLon(00°00′00.0″N, 000°00′00.0″E) to LatLon(00°30′00.0″N, 179°42′00.0″E)  FAILED, KNOWN, expected no convergence: ...\n    test 681 finalBearingTo/VincentyError (182): no convergence (0.00746541): epsilon (1e-12) and iterations (200), LatLon(00°00′00.0″N, 000°00′00.0″E) to LatLon(00°30′00.0″N, 179°42′00.0″E)  FAILED, KNOWN, expected no convergence: ...\n    test 682 distanceTo/equatorial (182): ambiguous: LatLon(00°00′00.0″N, 000°00′00.0″E) antipodal to LatLon(00°00′00.0″N, 180°00′00.0″E)  FAILED, KNOWN, expected ambiguous, ...\n    test 683 initialBearingTo/equatorial (182): ambiguous: LatLon(00°00′00.0″N, 000°00′00.0″E) antipodal to LatLon(00°00′00.0″N, 180°00′00.0″E)  FAILED, KNOWN, expected ambiguous, ...\n    test 684 distanceTo/coincident (5): 111319.491\n    test 685 distanceTo/meridional (1): 10001965.729\n    test 686 initialBearingTo/meridional (1): 180.0\n    test 687 distanceTo/coincident (1): 0.0\n    test 688 initialBearingTo/coincident (1): 0.0\n    test 689 finalBearingTo/coincident (1): 0.0\n    test 690 destination/coincident (1): 50.06632°N, 005.71475°W\n    test 691 distanceTo/anti-meridian (4): 10825924.1\n    test 692 distanceTo/quadrants (5): 4015703.02\n    test 693 distanceTo/quadrants (5): 4015703.02\n    test 694 distanceTo/quadrants (5): 4015703.02\n    test 695 distanceTo/quadrants (5): 4015703.02\n    test 696 distanceTo/quadrants (5): 4015703.02\n    test 697 distanceTo/quadrants (5): 4015703.02\n    test 698 distanceTo/quadrants (5): 4015703.02\n    test 699 distanceTo/quadrants (5): 4015703.02\n    test 700 distanceTo/quadrants (5): 4015703.02\n    test 701 distanceTo/quadrants (5): 4015703.02\n    test 702 distanceTo/quadrants (5): 4015703.02\n    test 703 distanceTo/quadrants (5): 4015703.02\n    test 704 distanceTo/quadrants (5): 4015703.02\n    test 705 distanceTo/quadrants (5): 4015703.02\n    test 706 distanceTo/quadrants (5): 4015703.02\n    test 707 distanceTo/quadrants (5): 4015703.02\n\n    testEllipsoidal(pygeodesy.ellipsoidalKarney, 25.05.27)\n    test 708 isEllipsoidal: True\n    test 709 isSpherical: False\n    test 710 isEllipsoidal: True\n    test 711 isSpherical: False\n    test 712 toDatum: 51.477284°N, 000.00002°E, -45.91m\n    test 713 toDatum: 51.4773°N, 000.0°E, -45.91m\n    test 714 toDatum: 51.4778°N, 000.0016°W\n    test 715 __matmul__: 51.477284°N, 000.00002°E, -45.91m\n    test 716 __matmul__: 51.477284°N, 000.00002°E, -45.90m\n    test 717 sat: 82.219069°N, 059.719736°E, -6353120.97m\n    test 718 dop: 51.998889°N, 004.373333°E, +134.64m\n    test 719 distance: 3802238.5049886242  FAILED, KNOWN, expected 3802238.504989\n    test 720 neareston8: (LatLon(45°00′00.0″N, 001°00′00.0″E), 4874369.98942, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E), 0.0, 0.0)\n    test 721 iteration: 0\n    test 722 neareston8: (LatLon(45°30′03.93″N, 020°00′00.0″E), 39078.779519, 1.501069, 2, LatLon(45°00′00.0″N, 020°00′00.0″E), LatLon(46°00′00.0″N, 020°00′00.0″E), 270.356041, 269.999412)\n    test 723 iteration: 1\n    test 724 intersecant2: 5.577e-14% 60 LatLon(03°18′54.69″S, 023°52′08.48″E)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 725 intersecant2: 1.394e-14% 60 LatLon(22°22′23.65″S, 007°55′54.49″E)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 726 intersecant2: 1.394e-13% 57 LatLon(10°39′24.95″N, 034°45′48.18″W)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 727 intersecant2: 1.673e-13% 57 LatLon(25°11′09.14″S, 005°10′35.44″W)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 728 intersecant2: 1.394e-14% 61 LatLon(10°14′21.91″S, 021°00′17.05″E)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 729 intersecant2: 8.366e-14% 61 LatLon(20°55′17.31″S, 010°40′21.43″E)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 730 intersecant2: center (LatLon(05°00′00.0″N, 005°00′00.0″W)), circle (3339584), end (LatLon(15°00′00.0″N, 045°00′00.0″E)), exact (False), start (LatLon(45°00′00.0″S, 015°00′00.0″W)) or wrap (False): 'too distant (3.69e+06) plumb to (16°56′45.9″S, 020°17′02.98″E)'\n    test 731 intersecant2: 1.255e-13% 65 LatLon(15°42′12.97″N, 033°34′04.94″W)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 732 intersecant2: 1.255e-13% 65 LatLon(34°58′04.71″N, 001°19′53.38″W)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 733 intersecant2: center (LatLon(05°00′00.0″N, 005°00′00.0″W)), circle (3339584), end (7.325916376821472), exact (False), start (LatLon(34°58′04.71″N, 001°19′53.38″W)) or wrap (False): 'too distant (1.38e+07) plumb to (18°09′38.92″S, 129°14′23.79″W)'\n    test 734 intersecant2: 9.761e-14% 67 LatLon(22°02′23.21″N, 030°35′10.77″W)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 735 intersecant2: 1.394e-13% 67 LatLon(35°02′44.03″N, 002°09′34.44″W)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 736 intersecant2: center (LatLon(05°00′00.0″N, 005°00′00.0″W)), circle (3339584), end (5.6676265633977145), exact (False), start (LatLon(35°02′44.03″N, 002°09′34.44″W)) or wrap (False): 'too distant (9.55e+06) plumb to (05°09′18.95″N, 091°11′56.38″W)'\n    test 737 intersecant2: 5.577e-14% 52 LatLon(31°36′40.43″N, 020°03′59.04″W)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 738 intersecant2: 1.394e-13% 52 LatLon(19°52′34.59″S, 022°17′19.8″W)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 739 intersecant2: center (LatLon(05°00′00.0″N, 005°00′00.0″W)), circle (3339584), end (216.31679472482134), exact (False), start (LatLon(19°52′34.59″S, 022°17′19.8″W)) or wrap (False): 'too distant (6.38e+06) plumb to (45°26′19.21″S, 025°56′43.95″E)'\n\n    testLatLon(pygeodesy.ellipsoidalKarney, 25.05.27)\n    test 740 isEllipsoidal: True\n    test 741 isSpherical: False\n    test 742 lat/lonDMS: 52.20472°N, 000.14056°E\n    test 743 lat/lonDMS F_DM: 52°12.283′N, 000°08.434′E\n    test 744 lat/lonDMS F_DM: 52°12.2832′N, 000°08.4336′E\n    test 745 lat/lonDMS F_DMS: 52°12′17″N, 000°08′26″E\n    test 746 lat/lonDMS F_DMS: 52°12′17.0″N, 000°08′26.0″E\n    test 747 lat/lonDMS F_RAD: 0.911144N, 0.002453E\n    test 748 isequalTo: True\n    test 749 isequalTo: True\n    test 750 latlon2: 52.20472, 0.14056\n    test 751 latlon2: 52.2047, 0.1406\n    test 752 latlon2: 52.205, 0.141\n    test 753 latlon2: 52.2, 0.14\n    test 754 latlon2: 52.2, 0.1\n    test 755 latlon2: 52.0, 0.0\n    test 756 chordTo: 12029263.15\n    test 757 chordTo: 12029049.69\n    test 758 initialBearingTo: 156.1106\n    test 759 initialBearingTo: 65.9335\n    test 760 initialBearingTo: 0.0\n    test 761 initialBearingTo: 180.0\n    test 762 finalBearingTo: 157.8345\n    test 763 finalBearingTo: 93.9034\n    test 764 bearingTo2: 156.1106, 157.8345\n    test 765 ispolar: True\n    test 766 copy: True\n    test 767 __eq__: True\n    test 768 __ne__: False\n    test 769 equirectangularTo: 404329.56\n    test 770 distanceTo: 404607.805988\n    test 771 distanceTo: 404607.805988\n    test 772 distanceTo: 3981601\n    test 773 antipodal: False\n    test 774 distanceTo dateline: 19959679.267\n    test 775 distanceTo unrolled: 19959679.267\n    test 776 antipodal: False\n    test 777 distanceTo dateline: 9513998\n    test 778 distanceTo unrolled: 9513998\n    test 779 distanceTo: 18012714.66\n    test 780 distanceTo: 20003931.46\n    test 781 distanceTo3 dateline: 19959679.2674, 161.0677, 18.8252\n    test 782 distanceTo3 dateline: 9513997.9901, 42.9164, 138.8903\n    test 783 distanceTo3 dateline: 19959679.2674, 161.0677, 18.8252\n    test 784 distanceTo3 dateline: 9513997.9901, 42.9164, 138.8903\n    test 785 intermediateTo: 51.372275°N, 000.707253°E\n    test 786 intermediateTo: True\n    test 787 intermediateTo: 404607.806\n    test 788 intermediateTo+5: 35.139582°N, 008.994368°E\n    test 789 intermediateTo+5: 5.000\n    test 790 intermediateTo-4: 64.894124°N, 013.705689°W\n    test 791 intermediateTo-4: 4.000\n    test 792 intermediateTo-h: 125.000\n    test 793 midpointTo: 50.536583°N, 001.274507°E\n    test 794 destination: 51.513526°N, 000.098038°W\n    test 795 destination: 51°30′49″N, 000°05′53″W\n    test 796 destination: 33°57′N, 118°24′W\n    test 797 destination: 33.950367°N, 118.399012°W\n    test 798 destination: 0.592546N, 2.066453W\n    test 799 destination: 32.11195529°N, 064.56074722°E  FAILED, KNOWN, expected 32.11195529°N, 063.95925278°E\n    test 800 neareston6: (LatLon(45°00′00.0″N, 001°00′00.0″E), 4755443.4294, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E))\n    test 801 neareston6: (LatLon(45°30′03.94″N, 002°00′00.0″E), 39078.729285, 1.501072, 2, LatLon(45°00′00.0″N, 002°00′00.0″E), LatLon(46°00′00.0″N, 002°00′00.0″E))\n    test 802 chordTo: 125203.963\n    test 803 cosineAndoyerLambertTo: 125205.962\n    test 804 cosineAndoyerLambertTo: 125205.962\n    test 805 cosineForsyheAndoyerLambertTo: 125205.965\n    test 806 cosineForsyheAndoyerLambertTo: 125205.965\n    test 807 cosineLawTo: 124801.098\n    test 808 cosineLawTo: 124801.098\n    test 809 equirectangularTo: 124804.754\n    test 810 equirectangularTo: 124804.754\n    test 811 euclideanTo: 130015.089\n    test 812 euclideanTo: 130015.089\n    test 813 flatLocalTo: 125209.633\n    test 814 flatLocalTo: 125209.633\n    test 815 flatPolarTo: 133663.257\n    test 816 flatPolarTo: 133663.257\n    test 817 hartzell: 53.3206°N, 001.7297°W\n# lazily imported pygeodesy.Triaxial from .triaxials.triaxial5 by ellipsoids.py line 1905\n    test 818 hartzell: 53.349541°N, 001.7297°W\n    test 819 height4: 0.0\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by cartesianBase.py line 364\n    test 820 height4: (3820333.9, -115367.0, 5097204.4, -6584.9)\n    test 821 height4: 53°19′14.2″N, 001°43′46.9″W\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by cartesianBase.py line 364\n    test 822 height4: 53°19′14.2″N, 001°43′46.9″W\n    test 823 haversineTo: 124801.098\n    test 824 haversineTo: 124801.098\n    test 825 hubenyTo: <bound method LatLonBase.flatLocalTo of LatLon(53°19′14.16″N, 001°43′46.92″W)>\n    test 826 hubenyTo: <bound method LatLonBase.flatLocalTo of LatLon(53°11′19.32″N, 000°08′00.24″E)>\n    test 827 thomasTo: 125206.188\n    test 828 thomasTo: 125206.188\n    test 829 vincentysTo: 124801.098\n    test 830 vincentysTo: 124801.098\n    test 831 isclockwise: False\n    test 832 isclockwise*: False\n    test 833 isclockwise: True\n    test 834 isclockwise*: True\n    test 835 isclockwise: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 836 isclockwise*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 837 isclockwise: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 838 isclockwise*: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 839 isconvex: False\n    test 840 isconvex*: False\n    test 841 isconvex: True\n    test 842 isconvex*: True\n    test 843 isconvex: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 844 isconvex*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 845 isenclosedBy1: True\n    test 846 isenclosedBy1*: True\n    test 847 isenclosedBy2: False\n    test 848 isenclosedBy2*: False\n    test 849 isenclosedBy3: False\n    test 850 isenclosedBy3*: False\n    test 851 isenclosedBy4: False\n    test 852 isenclosedBy4*: False\n    test 853 isenclosedBy5: False\n    test 854 isenclosedBy5*: False\n    test 855 isenclosedBy6: True\n    test 856 isenclosedBy6*: True\n    test 857 isenclosedBy7: True\n    test 858 isenclosedBy7*: True\n    test 859 isenclosedBy-CCW: True\n    test 860 isenclosedBy-CW : True\n    test 861 isenclosedBy-CCW: True\n    test 862 initialBearingTo: 102.392291\n    test 863 compassAngleTo: 100.017\n    test 864 compassAngleTo: 105.599\n    test 865 initialBearingTo: 288.676039\n    test 866 compassAngleTo: 280.017\n    test 867 compassAngleTo: 285.599\n    test 868 equirectangularTo: 592.185\n    test 869 distanceTo: 593.571\n    test 870 bearingTo: 0.0\n    test 871 compassAngleTo: 0.0\n    test 872 bearingTo: 45.2  FAILED, KNOWN, expected 45.0\n    test 873 compassAngleTo: 45.0\n    test 874 bearingTo: 90.0\n    test 875 compassAngleTo: 90.0\n    test 876 bearingTo: 180.0\n    test 877 compassAngleTo: 180.0\n    test 878 bearingTo: 225.2  FAILED, KNOWN, expected 225.0\n    test 879 compassAngleTo: 225.0\n    test 880 bearingTo: 314.8  FAILED, KNOWN, expected 315.0\n    test 881 compassAngleTo: 315.0\n    test 882 bearingTo: 270.0\n    test 883 compassAngleTo: 270.0\n    test 884 bearingTo: 0.0  FAILED, KNOWN, expected 359.4\n    test 885 compassAngleTo: 359.4\n    test 886 latlon2: (53.0, 1.0)\n    test 887 philam2: (0.93, 0.02)\n    test 888 bearingTo: 31\n    test 889 compassAngleTo: 31\n    test 890 compassAngleTo: 45\n\n    test 891 boundsOf: <class 'pygeodesy.namedTuples.Bounds2Tuple'>\n    test 892 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 893 latlon2: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 894 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 895 isequalTo: <class 'bool'>\n    test 896 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 897 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 898 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 899 xyz3: <class 'tuple'>\n    test 900 xyzh: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 901 compassAngleTo: <class 'float'>\n    test 902 cosineLawTo: <class 'float'>\n    test 903 euclideanTo: <class 'float'>\n    test 904 flatLocalTo: <class 'float'>\n    test 905 flatPolarTo: <class 'float'>\n    test 906 haversineTo: <class 'float'>\n    test 907 hubenyTo: <class 'float'>\n    test 908 vincentysTo: <class 'float'>\n    test 909 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 910 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 911 toLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 912 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 913 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 914 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 915 toNvector: (0.615661, 0.0, 0.788011, 0)\n    test 916 toVector: (3934960.466675, 0.0, 5002803.345483)\n    test 917 toVector3d: (0.61823, 0.0, 0.786)\n\n    test 918 trilaterate5 (pygeodesy.ellipsoidalKarney) .min: 305.091\n    test 919 trilaterate5 (pygeodesy.ellipsoidalKarney) .point: 42.66933643°N, 002.48620262°E\n    test 920 trilaterate5 (pygeodesy.ellipsoidalKarney) .max: 1592.545\n    test 921 trilaterate5 (pygeodesy.ellipsoidalKarney) .point: 42.65141232°N, 002.46816989°E\n    test 922 trilaterate5 (pygeodesy.ellipsoidalKarney) .n: 3\n    test 923 trilaterate5 (pygeodesy.ellipsoidalKarney) .min: 127.229\n    test 924 trilaterate5 (pygeodesy.ellipsoidalKarney) .max: 152.612\n    test 925 trilaterate5 (pygeodesy.ellipsoidalKarney) .point: 42.67815375°N, 002.49950041°E\n    test 926 trilaterate5 (pygeodesy.ellipsoidalKarney) .n: 2\n    test 927 trilaterate5 (pygeodesy.ellipsoidalKarney) .min: 2400.293\n    test 928 trilaterate5 (pygeodesy.ellipsoidalKarney) .max: 2400.293\n    test 929 trilaterate5 (pygeodesy.ellipsoidalKarney) .point: 42.66128984°N, 002.47973818°E\n    test 930 trilaterate5 (pygeodesy.ellipsoidalKarney) .min- is .maxPoint: True\n    test 931 trilaterate5 (pygeodesy.ellipsoidalKarney) .n: 1\n    test 932 trilaterate5 (pygeodesy.ellipsoidalKarney) .min: 1343.743\n    test 933 trilaterate5 (pygeodesy.ellipsoidalKarney) .point: 42.69131964°N, 002.50112167°E\n    test 934 trilaterate5 (pygeodesy.ellipsoidalKarney) .max: 1445.554\n    test 935 trilaterate5 (pygeodesy.ellipsoidalKarney) .point: 42.67815375°N, 002.49950041°E\n    test 936 trilaterate5 (pygeodesy.ellipsoidalKarney) .n: 2\n    test 937 radii11: Radii11Tuple(rA=7244.792747, rB=1828.106695, rC=2.25502, cR=57792.067128, rIn=57.366968, riS=2.087668, roS=2.443334, a=1830.361715, b=7247.047766, c=9072.899442, s=9075.154461)\n\n    27 tests skipped (130): No module named 'numpy': required by vector2d._numpy\n\n    test 938 radii11: Radii11Tuple(rA=7244.792747, rB=1828.106695, rC=2.25502, cR=57792.067128, rIn=57.366968, riS=2.087668, roS=2.443334, a=1830.361715, b=7247.047766, c=9072.899442, s=9075.154461)\n\n    22 tests skipped (152): No module named 'numpy': required by vector2d._numpy\n\n    test 939 area cw/ccw: 1.0\n\n    testNOAA(pygeodesy.ellipsoidalKarney, 25.05.27)\n    test 940 NOAAexample1: 191872.1190, 249 03 16.4237, 67 59 11.1619\n    test 941 NOAAexample2: 182009.1679, 254 42 44.6439, 73 09 21.3315\n    test 942 NOAAexample3: 123456.7891, 245 00 34.7001, 64 20 24.6864\n    test 943 NOAAexample4: 145239.0603, 114 29 26.9586, 295 21 32.6566\n\n    testIntersection3(pygeodesy.ellipsoidalKarney, 25.05.27)\n    test 944 (30, 17): (LatLon(30°52′03.1″N, 015°30′38.41″E), 0, 0)\n    test 945 (30, 17): (LatLon(30°52′03.1″N, 015°30′38.41″E), -1, 0)\n    test 946 (-1,  3): (LatLon(01°34′52.49″N, 006°00′51.83″E), -1, -2)\n    test 947 (-1,  3): (LatLon(01°34′52.49″N, 006°00′51.83″E), -1, 2)\n    test 948 (65, 32): (LatLon(56°58′26.51″N, 032°00′00.0″E), 1, 0)\n    test 949 (65, 32): (LatLon(56°58′26.51″N, 032°00′00.0″E), 1, 2)\n    test 950 (-2, 17): <class 'pygeodesy.errors.IntersectionError'>\n    test 951 (49, 25): (LatLon(49°00′00.0″N, 025°00′00.0″E), 1, -2)  FAILED, KNOWN, expected (LatLon(49°00′00.0″N, 025°00′00.0″E), 0, 0)\n    test 952 #58: (LatLon(01°54′25.65″S, 005°37′48.76″E), 1, -2)\n    test 953 #58: <class 'pygeodesy.errors.IntersectionError'>\n\n    testIntersections2(pygeodesy.ellipsoidalKarney, 25.05.27)\n    test 954 EquidistantKarney: 36.9879°N, 088.1564°W, 38.2441°N, 092.3835°W\n    test 955 EquidistantKarney: 36.9879°N, 088.1564°W, 38.2441°N, 092.3835°W\n    test 956 EquidistantKarney: 00.0°N, 035.3478°W, 00.0°S, 035.3478°E\n    test 957 EquidistantKarney: 1.63715 (% of radius)\n    test 958 EquidistantKarney: 22.657°N, 000.0°W, 22.657°S, 000.0°E  FAILED, KNOWN, expected 22.657°N, 000.0°E, 22.657°S, 000.0°E\n    test 959 EquidistantKarney: 1.30663 (% of radius)\n    test 960 EquidistantKarney: 29.4898°N, 040.1785°W, 29.4898°S, 040.1785°E\n    test 961 EquidistantKarney: 1.31396 (% of radius)\n    test 962 EquidistantKarney: 02.7402°S, 044.885°E, 02.7402°N, 044.885°E\n    test 963 EquidistantKarney: 1.83268 (% of radius)\n    test 964 EquidistantKarney 5: 05.0558°S, 005.0271°W, 05.0558°N, 005.0271°E\n    test 965 EquidistantKarney 5: 0 (% of radius)\n    test 966 EquidistantKarney 10: 10.1081°S, 010.2901°W, 10.1081°N, 010.2901°E\n    test 967 EquidistantKarney 10: 2.09389e-16 (% of radius)\n    test 968 EquidistantKarney 15: 15.1433°S, 016.0531°W, 15.1433°N, 016.0531°E\n    test 969 EquidistantKarney 15: 4.18779e-16 (% of radius)\n    test 970 EquidistantKarney 20: 20.1241°S, 022.6411°W, 20.1241°N, 022.6411°E\n    test 971 EquidistantKarney 20: 6.28168e-16 (% of radius)\n    test 972 EquidistantKarney 25: 24.9655°S, 030.4846°W, 24.9655°N, 030.4846°E\n    test 973 EquidistantKarney 25: 3.35023e-16 (% of radius)\n    test 974 EquidistantKarney 30: 29.4898°S, 040.1785°W, 29.4898°N, 040.1785°E\n    test 975 EquidistantKarney 30: 4.18779e-16 (% of radius)\n    test 976 EquidistantKarney 35: 33.3405°S, 052.5516°W, 33.3405°N, 052.5516°E\n    test 977 EquidistantKarney 35: 4.78604e-16 (% of radius)\n    test 978 EquidistantKarney 40: 35.8146°S, 068.7149°W, 35.8146°N, 068.7149°E\n    test 979 EquidistantKarney 40: 4.18779e-16 (% of radius)\n    test 980 EquidistantKarney 45: 35.5368°S, 090.0616°W, 35.5368°N, 090.0616°E\n    test 981 EquidistantKarney 45: 0 (% of radius)\n    test 982 EquidistantKarney 50: 29.5972°S, 118.8695°W, 29.5972°N, 118.8695°E\n    test 983 EquidistantKarney 50: 3.35023e-16 (% of radius)\n    test 984 EquidistantKarney: center1 (LatLon(55°00′00.0″N, 055°00′00.0″W)), center2 (LatLon(55°00′00.0″S, 055°00′00.0″E)), radius1 (12231458.77080936) or radius2 (12231458.77080936): 'no convergence (188568)': tolerance (0.001) too low, antipodal or near-polar?  FAILED, KNOWN, expected 2-tuple\n    test 985 EquidistantKarney: center1 (LatLon(60°00′00.0″N, 060°00′00.0″W)), center2 (LatLon(60°00′00.0″S, 060°00′00.0″E)), radius1 (13343409.568155663) or radius2 (13343409.568155663): 'no convergence (1.01348e+06)': tolerance (0.001) too low, antipodal or near-polar?  FAILED, KNOWN, expected 2-tuple\n    test 986 EquidistantKarney: center1 (LatLon(65°00′00.0″N, 065°00′00.0″W)), center2 (LatLon(65°00′00.0″S, 065°00′00.0″E)), radius1 (14455360.36550197) or radius2 (14455360.36550197): 'no convergence (1.55092e+06)': tolerance (0.001) too low, antipodal or near-polar?  FAILED, KNOWN, expected 2-tuple\n    test 987 EquidistantKarney: 12.232165°N, 031.983261°W Random +/- 45\n    test 988 EquidistantKarney: 12.232165°N, 031.983261°W, 56.080071°S, 005.618708°W  d 6.19575e-09 meter (iteration 3)\n    test 989 EquidistantKarney: 12.232165°N, 031.983261°W, 36.579515°S, 038.359212°W  d 2.21657e-09 meter (iteration 3)\n    test 990 EquidistantKarney: 12.232165°N, 031.983261°W, 16.534506°N, 102.732034°E  d 3.26221e-09 meter (iteration 3)\n    test 991 EquidistantKarney: 12.232165°N, 031.983261°W, 31.506008°N, 011.105658°W  d 7.22445e-09 meter (iteration 3)\n    test 992 EquidistantKarney: 12.232165°N, 031.983261°W, 26.240759°S, 054.382759°E  d 4.82862e-09 meter (iteration 3)\n    test 993 EquidistantKarney: 12.232165°N, 031.983261°W, 08.328754°N, 002.632252°W  d 1.57032e-09 meter (iteration 3)\n    test 994 EquidistantKarney: 12.232165°N, 031.983261°W, 22.106883°S, 005.991654°E  d 1.76634e-09 meter (iteration 3)\n    test 995 EquidistantKarney: 12.232165°N, 031.983261°W, 77.026292°S, 014.052022°E  d 2.54962e-09 meter (iteration 3)\n    test 996 EquidistantKarney: 12.232165°N, 031.983261°W, 45.749992°N, 039.149829°W  d 1.04688e-09 meter (iteration 3)\n    test 997 EquidistantKarney: 12.232165°N, 031.983261°W, 43.385162°N, 030.379864°E  d 2.26774e-08 meter (iteration 3)\n    test 998 EquidistantKarney: 12.232165°N, 031.983261°W, 06.605562°N, 022.562672°W  d 4.60383e-09 meter (iteration 3)\n    test 999 EquidistantKarney: 12.232165°N, 031.983261°W, 29.406424°N, 010.679991°W  d 5.82871e-09 meter (iteration 3)\n\n    testKarney(pygeodesy.ellipsoidalKarney, 25.05.27, datum='WGS84')\n    test 1000 distanceTo: 866455.4329\n    test 1001 coincident: 0.0\n    test 1002 toDatum: OSGB36\n    test 1003 ValueError2: Ellipsoid 'Airy1830': incompatible with Ellipsoid 'WGS84'\n    test 1004 isEllipsoidal: True\n    test 1005 copy: True\n    test 1006 isEllipsoidal: True\n    test 1007 isSpherical: False\n    test 1008 copy: 37°57′03.7203″S, 144°25′29.5244″E\n\n    testKarneyVincenty(pygeodesy.ellipsoidalKarney, 25.05.27, datum='WGS84')\n    test 1009 coincident: 0.0\n    test 1010 coincident: 0.0, 0.0, 0.0\n    test 1011 destination: 37.6528°S, 143.9265°E\n    test 1012 destination: True\n    test 1013 destination2: 37.652821°S, 143.926496°E, 307.1736°NW\n    test 1014 destination2: True\n    test 1015 finalBearingOn: 307.1736°, 307°10′25.07″NW\n    test 1016 distanceTo: 969954.166\n    test 1017 distanceTo3: 969954.166314, 9.141877, 11.29722\n    test 1018 distanceTo2: 972708.16174, 11.22502\n    test 1019 initialBearingTo: 9.1419°, 9°08′30.76″N\n    test 1020 destination: 58.64402°N, 003.07009°W\n    test 1021 finalBearingTo: 11.2972°, 11°17′49.99″NNE\n    test 1022 finalBearingOn: 11.2972°, 11°17′49.99″NNE\n    test 1023 distanceTo: 404607.806\n    test 1024 distanceTo3: 404607.805988, 156.11064, 157.8345\n    test 1025 distanceTo2: 402574.597287, 157.726344\n    test 1026 initialBearingTo: 156.1106°, 156°06′38.31″SSE\n    test 1027 destination: 48.857°N, 002.351°E\n    test 1028 finalBearingTo: 157.8345°, 157°50′04.2″SSE\n    test 1029 finalBearingOn: 157.8345°, 157°50′04.2″SSE\n    test 1030 distanceTo: 54973.295\n    test 1031 distanceTo3: 54973.29527, 233.13008, 232.82461\n    test 1032 distanceTo2: 54903.41209, 232.9209\n    test 1033 initialBearingTo: 233.1301°, 233°07′48.28″SW\n    test 1034 destination: 37.6528°N, 143.9265°E\n    test 1035 finalBearingTo: 232.8246°, 232°49′28.59″SW\n    test 1036 finalBearingOn: 232.8246°, 232°49′28.59″SW\n    test 1037 distanceToMP: 298396.057\n    test 1038 distanceToSM: 185.415\n    test 1039 distanceToMP: 111319.491\n    test 1040 distanceToMP: 110574.389  FAILED, KNOWN, expected 110574.361\n    test 1041 distanceToKW: 222638.982\n    test 1042 distanceToKW: 111319.491\n    test 1043 distanceTo3: 54972.271\n    test 1044 distanceTo3: 306°52′05.37″\n    test 1045 distanceTo3: 307°10′25.07″\n    test 1046 distanceTo2: 54902.390\n    test 1047 distanceTo2: 307°04′38.41″\n\n    testKarneyVincentyError(pygeodesy.ellipsoidalKarney, 25.05.27, datum='WGS84')\n    test 1048 distanceTo/antipodal (None): 19936288.579\n    test 1049 distanceTo/VincentyError (None): 19944127.421\n    test 1050 initialBearingTo/VincentyError (None): 15.556883\n    test 1051 finalBearingTo/VincentyError (None): 164.442514\n    test 1052 distanceTo/equatorial (None): 20003931.46\n    test 1053 initialBearingTo/equatorial (None): 0.0\n    test 1054 distanceTo/coincident (None): 111319.491\n    test 1055 distanceTo/meridional (None): 10001965.729\n    test 1056 initialBearingTo/meridional (None): 180.0\n    test 1057 distanceTo/coincident (None): 0.0\n    test 1058 initialBearingTo/coincident (None): 180.0\n    test 1059 finalBearingTo/coincident (None): 180.0\n    test 1060 destination/coincident (None): 50.06632°N, 005.71475°W\n    test 1061 distanceTo/anti-meridian (None): 10825924.1\n    test 1062 distanceTo/quadrants (None): 4015703.02\n    test 1063 distanceTo/quadrants (None): 4015703.02\n    test 1064 distanceTo/quadrants (None): 4015703.02\n    test 1065 distanceTo/quadrants (None): 4015703.02\n    test 1066 distanceTo/quadrants (None): 4015703.02\n    test 1067 distanceTo/quadrants (None): 4015703.02\n    test 1068 distanceTo/quadrants (None): 4015703.02\n    test 1069 distanceTo/quadrants (None): 4015703.02\n    test 1070 distanceTo/quadrants (None): 4015703.02\n    test 1071 distanceTo/quadrants (None): 4015703.02\n    test 1072 distanceTo/quadrants (None): 4015703.02\n    test 1073 distanceTo/quadrants (None): 4015703.02\n    test 1074 distanceTo/quadrants (None): 4015703.02\n    test 1075 distanceTo/quadrants (None): 4015703.02\n    test 1076 distanceTo/quadrants (None): 4015703.02\n    test 1077 distanceTo/quadrants (None): 4015703.02\n\n    testKarney(pygeodesy.ellipsoidalKarney, 25.05.27, datum='NAD83')\n    test 1078 distanceTo: 866455.4329\n    test 1079 coincident: 0.0\n    test 1080 toDatum: OSGB36\n    test 1081 ValueError2: Ellipsoid 'Airy1830': incompatible with Ellipsoid 'GRS80'\n    test 1082 isEllipsoidal: True\n    test 1083 copy: True\n    test 1084 isEllipsoidal: True\n    test 1085 isSpherical: False\n    test 1086 copy: 37°57′03.7203″S, 144°25′29.5244″E\n\n    testKarneyVincenty(pygeodesy.ellipsoidalKarney, 25.05.27, datum='NAD83')\n    test 1087 coincident: 0.0\n    test 1088 coincident: 0.0, 0.0, 0.0\n    test 1089 destination: 37.6528°S, 143.9265°E\n    test 1090 destination: True\n    test 1091 destination2: 37.652821°S, 143.926496°E, 307.1736°NW\n    test 1092 destination2: True\n    test 1093 finalBearingOn: 307.1736°, 307°10′25.07″NW\n    test 1094 distanceTo: 969954.166\n    test 1095 distanceTo3: 969954.166314, 9.141877, 11.29722\n    test 1096 distanceTo2: 972708.16174, 11.22502\n    test 1097 initialBearingTo: 9.1419°, 9°08′30.76″N\n    test 1098 destination: 58.64402°N, 003.07009°W\n    test 1099 finalBearingTo: 11.2972°, 11°17′49.99″NNE\n    test 1100 finalBearingOn: 11.2972°, 11°17′49.99″NNE\n    test 1101 distanceTo: 404607.806\n    test 1102 distanceTo3: 404607.805988, 156.11064, 157.8345\n    test 1103 distanceTo2: 402574.597287, 157.726344\n    test 1104 initialBearingTo: 156.1106°, 156°06′38.31″SSE\n    test 1105 destination: 48.857°N, 002.351°E\n    test 1106 finalBearingTo: 157.8345°, 157°50′04.2″SSE\n    test 1107 finalBearingOn: 157.8345°, 157°50′04.2″SSE\n    test 1108 distanceTo: 54973.295\n    test 1109 distanceTo3: 54973.29527, 233.13008, 232.82461\n    test 1110 distanceTo2: 54903.41209, 232.9209\n    test 1111 initialBearingTo: 233.1301°, 233°07′48.28″SW\n    test 1112 destination: 37.6528°N, 143.9265°E\n    test 1113 finalBearingTo: 232.8246°, 232°49′28.59″SW\n    test 1114 finalBearingOn: 232.8246°, 232°49′28.59″SW\n    test 1115 distanceToMP: 298396.057\n    test 1116 distanceToSM: 185.415\n    test 1117 distanceToMP: 111319.491\n    test 1118 distanceToMP: 110574.389  FAILED, KNOWN, expected 110574.361\n    test 1119 distanceToKW: 222638.982\n    test 1120 distanceToKW: 111319.491\n    test 1121 distanceTo3: 54972.271\n    test 1122 distanceTo3: 306°52′05.37″\n    test 1123 distanceTo3: 307°10′25.07″\n    test 1124 distanceTo2: 54902.390\n    test 1125 distanceTo2: 307°04′38.41″\n\n    testKarneyVincentyError(pygeodesy.ellipsoidalKarney, 25.05.27, datum='NAD83')\n    test 1126 distanceTo/antipodal (None): 19936288.579\n    test 1127 distanceTo/VincentyError (None): 19944127.421\n    test 1128 initialBearingTo/VincentyError (None): 15.556883\n    test 1129 finalBearingTo/VincentyError (None): 164.442514\n    test 1130 distanceTo/equatorial (None): 20003931.46\n    test 1131 initialBearingTo/equatorial (None): 0.0\n    test 1132 distanceTo/coincident (None): 111319.491\n    test 1133 distanceTo/meridional (None): 10001965.729\n    test 1134 initialBearingTo/meridional (None): 180.0\n    test 1135 distanceTo/coincident (None): 0.0\n    test 1136 initialBearingTo/coincident (None): 180.0\n    test 1137 finalBearingTo/coincident (None): 180.0\n    test 1138 destination/coincident (None): 50.06632°N, 005.71475°W\n    test 1139 distanceTo/anti-meridian (None): 10825924.1\n    test 1140 distanceTo/quadrants (None): 4015703.02\n    test 1141 distanceTo/quadrants (None): 4015703.02\n    test 1142 distanceTo/quadrants (None): 4015703.02\n    test 1143 distanceTo/quadrants (None): 4015703.02\n    test 1144 distanceTo/quadrants (None): 4015703.02\n    test 1145 distanceTo/quadrants (None): 4015703.02\n    test 1146 distanceTo/quadrants (None): 4015703.02\n    test 1147 distanceTo/quadrants (None): 4015703.02\n    test 1148 distanceTo/quadrants (None): 4015703.02\n    test 1149 distanceTo/quadrants (None): 4015703.02\n    test 1150 distanceTo/quadrants (None): 4015703.02\n    test 1151 distanceTo/quadrants (None): 4015703.02\n    test 1152 distanceTo/quadrants (None): 4015703.02\n    test 1153 distanceTo/quadrants (None): 4015703.02\n    test 1154 distanceTo/quadrants (None): 4015703.02\n    test 1155 distanceTo/quadrants (None): 4015703.02\n\n    testKarney_s(pygeodesy.ellipsoidalKarney, 25.05.27)\n    test 1156 .lat1: -41.320\n    test 1157 .lon1: 174.810\n    test 1158 .azi1: 161.067669986160\n    test 1159 .lat2: 40.960\n    test 1160 .lon2: -5.500\n    test 1161 .azi2: 18.825195123247\n    test 1162 .s12: 19959679.267353821546\n    test 1163 distanceTo3: 19959679.267354, 161.067670, 18.825195\n    test 1164 destination2: 40.96, -5.5, 18.825195123247\n    test 1165 areaOf: 1.366270368e+13\n    test 1166 perimeterOf: 1.683106789e+07\n    test 1167 isclockwise: False\n    test 1168 isclockwise: True\n    test 1169 areaCO: 2.69154549884e+11\n    test 1170 isclockwise: True\n    test 1171 perimeterCO: 2099854.381923\n\n    testEllipsoidal(pygeodesy.ellipsoidalExact, 25.08.28)\n    test 1172 isEllipsoidal: True\n    test 1173 isSpherical: False\n    test 1174 isEllipsoidal: True\n    test 1175 isSpherical: False\n    test 1176 toDatum: 51.477284°N, 000.00002°E, -45.91m\n    test 1177 toDatum: 51.4773°N, 000.0°E, -45.91m\n    test 1178 toDatum: 51.4778°N, 000.0016°W\n    test 1179 __matmul__: 51.477284°N, 000.00002°E, -45.91m\n    test 1180 __matmul__: 51.477284°N, 000.00002°E, -45.90m\n    test 1181 sat: 82.219069°N, 059.719736°E, -6353120.97m\n    test 1182 dop: 51.998889°N, 004.373333°E, +134.64m\n    test 1183 distance: 3802238.5049886215  FAILED, KNOWN, expected 3802238.504989\n    test 1184 neareston8: (LatLon(45°00′00.0″N, 001°00′00.0″E), 4874369.98942, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E), 0.0, 0.0)\n    test 1185 iteration: 0\n    test 1186 neareston8: (LatLon(45°30′03.93″N, 020°00′00.0″E), 39078.779519, 1.501069, 2, LatLon(45°00′00.0″N, 020°00′00.0″E), LatLon(46°00′00.0″N, 020°00′00.0″E), 270.356041, 269.999412)\n    test 1187 iteration: 1\n    test 1188 nearestOn: 54.928536°N, 021.934843°W\n    test 1189 intersecant2: 2.789e-14% 60 LatLon(03°18′54.69″S, 023°52′08.48″E)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 1190 intersecant2: 1.394e-14% 60 LatLon(22°22′23.65″S, 007°55′54.49″E)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 1191 intersecant2: 1.255e-13% 57 LatLon(10°39′24.95″N, 034°45′48.18″W)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 1192 intersecant2: 1.673e-13% 57 LatLon(25°11′09.14″S, 005°10′35.44″W)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 1193 intersecant2: 1.394e-14% 61 LatLon(10°14′21.91″S, 021°00′17.05″E)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 1194 intersecant2: 5.577e-14% 61 LatLon(20°55′17.31″S, 010°40′21.43″E)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 1195 intersecant2: center (LatLon(05°00′00.0″N, 005°00′00.0″W)), circle (3339584), end (LatLon(15°00′00.0″N, 045°00′00.0″E)), exact (False), start (LatLon(45°00′00.0″S, 015°00′00.0″W)) or wrap (False): 'too distant (3.69e+06) plumb to (16°56′45.9″S, 020°17′02.98″E)'\n    test 1196 intersecant2: 2.231e-13% 60 LatLon(09°50′27.38″S, 031°13′29.64″W)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 1197 intersecant2: 1.255e-13% 60 LatLon(14°41′42.65″S, 017°56′18.86″E)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 1198 intersecant2: center (LatLon(05°00′00.0″N, 005°00′00.0″W)), circle (3339584), end (129.04590972667714), exact (False), start (LatLon(14°41′42.65″S, 017°56′18.86″E)) or wrap (False): 'too distant (3.74e+06) plumb to (37°18′15.49″N, 005°38′44.18″E)'\n    test 1199 intersecant2: 1.673e-13% 55 LatLon(34°54′14.14″N, 000°46′12.9″W)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 1200 intersecant2: 2.092e-13% 55 LatLon(13°51′35.07″S, 018°36′32.63″E)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 1201 intersecant2: center (LatLon(05°00′00.0″N, 005°00′00.0″W)), circle (3339584), end (127.05526645721615), exact (False), start (LatLon(13°51′35.07″S, 018°36′32.63″E)) or wrap (False): 'no convergence (32768), tolerance (1.49012e-08) plumb to (04°56′35.17″S, 003°00′44.58″E)'\n    test 1202 intersecant2: 2.510e-13% 53 LatLon(23°39′08.78″S, 014°40′58.21″W)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 1203 intersecant2: 2.370e-13% 53 LatLon(32°28′02.17″N, 018°16′08.49″W)  FAILED, KNOWN, expected 2.0e-10% ...\n    test 1204 intersecant2: center (LatLon(05°00′00.0″N, 005°00′00.0″W)), circle (3339584), end (332.78042603053865), exact (False), start (LatLon(32°28′02.17″N, 018°16′08.49″W)) or wrap (False): 'too distant (3.88e+06) plumb to (09°29′18.47″S, 026°53′06.97″E)'\n\n    testLatLon(pygeodesy.ellipsoidalExact, 25.08.28)\n    test 1205 isEllipsoidal: True\n    test 1206 isSpherical: False\n    test 1207 lat/lonDMS: 52.20472°N, 000.14056°E\n    test 1208 lat/lonDMS F_DM: 52°12.283′N, 000°08.434′E\n    test 1209 lat/lonDMS F_DM: 52°12.2832′N, 000°08.4336′E\n    test 1210 lat/lonDMS F_DMS: 52°12′17″N, 000°08′26″E\n    test 1211 lat/lonDMS F_DMS: 52°12′17.0″N, 000°08′26.0″E\n    test 1212 lat/lonDMS F_RAD: 0.911144N, 0.002453E\n    test 1213 isequalTo: True\n    test 1214 isequalTo: True\n    test 1215 latlon2: 52.20472, 0.14056\n    test 1216 latlon2: 52.2047, 0.1406\n    test 1217 latlon2: 52.205, 0.141\n    test 1218 latlon2: 52.2, 0.14\n    test 1219 latlon2: 52.2, 0.1\n    test 1220 latlon2: 52.0, 0.0\n    test 1221 chordTo: 12029263.15\n    test 1222 chordTo: 12029049.69\n    test 1223 initialBearingTo: 156.1106\n    test 1224 initialBearingTo: 65.9335\n    test 1225 initialBearingTo: 0.0\n    test 1226 initialBearingTo: 180.0\n    test 1227 finalBearingTo: 157.8345\n    test 1228 finalBearingTo: 93.9034\n    test 1229 bearingTo2: 156.1106, 157.8345\n    test 1230 ispolar: True\n    test 1231 copy: True\n    test 1232 __eq__: True\n    test 1233 __ne__: False\n    test 1234 equirectangularTo: 404329.56\n    test 1235 distanceTo: 404607.805988\n    test 1236 distanceTo: 404607.805988\n    test 1237 distanceTo: 3981601\n    test 1238 antipodal: False\n    test 1239 distanceTo dateline: 19959679.267\n    test 1240 distanceTo unrolled: 19959679.267\n    test 1241 antipodal: False\n    test 1242 distanceTo dateline: 9513998\n    test 1243 distanceTo unrolled: 9513998\n    test 1244 distanceTo: 18012714.66\n    test 1245 distanceTo: 20003931.46\n    test 1246 distanceTo3 dateline: 19959679.2674, 161.0677, 18.8252\n    test 1247 distanceTo3 dateline: 9513997.9901, 42.9164, 138.8903\n    test 1248 distanceTo3 dateline: 19959679.2674, 161.0677, 18.8252\n    test 1249 distanceTo3 dateline: 9513997.9901, 42.9164, 138.8903\n    test 1250 intermediateTo: 51.372275°N, 000.707253°E\n    test 1251 intermediateTo: True\n    test 1252 intermediateTo: 404607.806\n    test 1253 intermediateTo+5: 35.139582°N, 008.994368°E\n    test 1254 intermediateTo+5: 5.000\n    test 1255 intermediateTo-4: 64.894124°N, 013.705689°W\n    test 1256 intermediateTo-4: 4.000\n    test 1257 intermediateTo-h: 125.000\n    test 1258 midpointTo: 50.536583°N, 001.274507°E\n    test 1259 destination: 51.513526°N, 000.098038°W\n    test 1260 destination: 51°30′49″N, 000°05′53″W\n    test 1261 destination: 33°57′N, 118°24′W\n    test 1262 destination: 33.950367°N, 118.399012°W\n    test 1263 destination: 0.592546N, 2.066453W\n    test 1264 destination: 32.11195529°N, 064.56074722°E  FAILED, KNOWN, expected 32.11195529°N, 063.95925278°E\n    test 1265 neareston6: (LatLon(45°00′00.0″N, 001°00′00.0″E), 4755443.4294, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E))\n    test 1266 neareston6: (LatLon(45°30′03.94″N, 002°00′00.0″E), 39078.729285, 1.501072, 2, LatLon(45°00′00.0″N, 002°00′00.0″E), LatLon(46°00′00.0″N, 002°00′00.0″E))\n    test 1267 chordTo: 125203.963\n    test 1268 cosineAndoyerLambertTo: 125205.962\n    test 1269 cosineAndoyerLambertTo: 125205.962\n    test 1270 cosineForsyheAndoyerLambertTo: 125205.965\n    test 1271 cosineForsyheAndoyerLambertTo: 125205.965\n    test 1272 cosineLawTo: 124801.098\n    test 1273 cosineLawTo: 124801.098\n    test 1274 equirectangularTo: 124804.754\n    test 1275 equirectangularTo: 124804.754\n    test 1276 euclideanTo: 130015.089\n    test 1277 euclideanTo: 130015.089\n    test 1278 flatLocalTo: 125209.633\n    test 1279 flatLocalTo: 125209.633\n    test 1280 flatPolarTo: 133663.257\n    test 1281 flatPolarTo: 133663.257\n    test 1282 hartzell: 53.3206°N, 001.7297°W\n# lazily imported pygeodesy.Triaxial from .triaxials.triaxial5 by ellipsoids.py line 1905\n    test 1283 hartzell: 53.349541°N, 001.7297°W\n    test 1284 height4: 0.0\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by cartesianBase.py line 364\n    test 1285 height4: (3820333.9, -115367.0, 5097204.4, -6584.9)\n    test 1286 height4: 53°19′14.2″N, 001°43′46.9″W\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by cartesianBase.py line 364\n    test 1287 height4: 53°19′14.2″N, 001°43′46.9″W\n    test 1288 haversineTo: 124801.098\n    test 1289 haversineTo: 124801.098\n    test 1290 hubenyTo: <bound method LatLonBase.flatLocalTo of LatLon(53°19′14.16″N, 001°43′46.92″W)>\n    test 1291 hubenyTo: <bound method LatLonBase.flatLocalTo of LatLon(53°11′19.32″N, 000°08′00.24″E)>\n    test 1292 thomasTo: 125206.188\n    test 1293 thomasTo: 125206.188\n    test 1294 vincentysTo: 124801.098\n    test 1295 vincentysTo: 124801.098\n    test 1296 isclockwise: False\n    test 1297 isclockwise*: False\n    test 1298 isclockwise: True\n    test 1299 isclockwise*: True\n    test 1300 isclockwise: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 1301 isclockwise*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 1302 isclockwise: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 1303 isclockwise*: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 1304 isconvex: False\n    test 1305 isconvex*: False\n    test 1306 isconvex: True\n    test 1307 isconvex*: True\n    test 1308 isconvex: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 1309 isconvex*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 1310 isenclosedBy1: True\n    test 1311 isenclosedBy1*: True\n    test 1312 isenclosedBy2: False\n    test 1313 isenclosedBy2*: False\n    test 1314 isenclosedBy3: False\n    test 1315 isenclosedBy3*: False\n    test 1316 isenclosedBy4: False\n    test 1317 isenclosedBy4*: False\n    test 1318 isenclosedBy5: False\n    test 1319 isenclosedBy5*: False\n    test 1320 isenclosedBy6: True\n    test 1321 isenclosedBy6*: True\n    test 1322 isenclosedBy7: True\n    test 1323 isenclosedBy7*: True\n    test 1324 isenclosedBy-CCW: True\n    test 1325 isenclosedBy-CW : True\n    test 1326 isenclosedBy-CCW: True\n    test 1327 initialBearingTo: 102.392291\n    test 1328 compassAngleTo: 100.017\n    test 1329 compassAngleTo: 105.599\n    test 1330 initialBearingTo: 288.676039\n    test 1331 compassAngleTo: 280.017\n    test 1332 compassAngleTo: 285.599\n    test 1333 equirectangularTo: 592.185\n    test 1334 distanceTo: 593.571\n    test 1335 bearingTo: 0.0\n    test 1336 compassAngleTo: 0.0\n    test 1337 bearingTo: 45.2  FAILED, KNOWN, expected 45.0\n    test 1338 compassAngleTo: 45.0\n    test 1339 bearingTo: 90.0\n    test 1340 compassAngleTo: 90.0\n    test 1341 bearingTo: 180.0\n    test 1342 compassAngleTo: 180.0\n    test 1343 bearingTo: 225.2  FAILED, KNOWN, expected 225.0\n    test 1344 compassAngleTo: 225.0\n    test 1345 bearingTo: 314.8  FAILED, KNOWN, expected 315.0\n    test 1346 compassAngleTo: 315.0\n    test 1347 bearingTo: 270.0\n    test 1348 compassAngleTo: 270.0\n    test 1349 bearingTo: 0.0  FAILED, KNOWN, expected 359.4\n    test 1350 compassAngleTo: 359.4\n    test 1351 latlon2: (53.0, 1.0)\n    test 1352 philam2: (0.93, 0.02)\n    test 1353 bearingTo: 31\n    test 1354 compassAngleTo: 31\n    test 1355 compassAngleTo: 45\n\n    test 1356 boundsOf: <class 'pygeodesy.namedTuples.Bounds2Tuple'>\n    test 1357 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 1358 latlon2: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 1359 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 1360 isequalTo: <class 'bool'>\n    test 1361 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 1362 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 1363 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 1364 xyz3: <class 'tuple'>\n    test 1365 xyzh: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 1366 compassAngleTo: <class 'float'>\n    test 1367 cosineLawTo: <class 'float'>\n    test 1368 euclideanTo: <class 'float'>\n    test 1369 flatLocalTo: <class 'float'>\n    test 1370 flatPolarTo: <class 'float'>\n    test 1371 haversineTo: <class 'float'>\n    test 1372 hubenyTo: <class 'float'>\n    test 1373 vincentysTo: <class 'float'>\n    test 1374 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 1375 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 1376 toLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 1377 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 1378 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 1379 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 1380 toNvector: (0.615661, 0.0, 0.788011, 0)\n    test 1381 toVector: (3934960.466675, 0.0, 5002803.345483)\n    test 1382 toVector3d: (0.61823, 0.0, 0.786)\n\n    test 1383 trilaterate5 (pygeodesy.ellipsoidalExact) .min: 305.091\n    test 1384 trilaterate5 (pygeodesy.ellipsoidalExact) .point: 42.66933643°N, 002.48620262°E\n    test 1385 trilaterate5 (pygeodesy.ellipsoidalExact) .max: 1592.545\n    test 1386 trilaterate5 (pygeodesy.ellipsoidalExact) .point: 42.65141232°N, 002.46816989°E\n    test 1387 trilaterate5 (pygeodesy.ellipsoidalExact) .n: 3\n    test 1388 trilaterate5 (pygeodesy.ellipsoidalExact) .min: 127.229\n    test 1389 trilaterate5 (pygeodesy.ellipsoidalExact) .max: 152.612\n    test 1390 trilaterate5 (pygeodesy.ellipsoidalExact) .point: 42.67815375°N, 002.49950041°E\n    test 1391 trilaterate5 (pygeodesy.ellipsoidalExact) .n: 2\n    test 1392 trilaterate5 (pygeodesy.ellipsoidalExact) .min: 2400.293\n    test 1393 trilaterate5 (pygeodesy.ellipsoidalExact) .max: 2400.293\n    test 1394 trilaterate5 (pygeodesy.ellipsoidalExact) .point: 42.66128984°N, 002.47973818°E\n    test 1395 trilaterate5 (pygeodesy.ellipsoidalExact) .min- is .maxPoint: True\n    test 1396 trilaterate5 (pygeodesy.ellipsoidalExact) .n: 1\n    test 1397 trilaterate5 (pygeodesy.ellipsoidalExact) .min: 1343.743\n    test 1398 trilaterate5 (pygeodesy.ellipsoidalExact) .point: 42.69131964°N, 002.50112167°E\n    test 1399 trilaterate5 (pygeodesy.ellipsoidalExact) .max: 1445.554\n    test 1400 trilaterate5 (pygeodesy.ellipsoidalExact) .point: 42.67815375°N, 002.49950041°E\n    test 1401 trilaterate5 (pygeodesy.ellipsoidalExact) .n: 2\n    test 1402 radii11: Radii11Tuple(rA=7244.792747, rB=1828.106695, rC=2.25502, cR=57792.067128, rIn=57.366968, riS=2.087668, roS=2.443334, a=1830.361715, b=7247.047766, c=9072.899442, s=9075.154461)\n\n    27 tests skipped (179): No module named 'numpy': required by vector2d._numpy\n\n    test 1403 radii11: Radii11Tuple(rA=7244.792747, rB=1828.106695, rC=2.25502, cR=57792.067128, rIn=57.366968, riS=2.087668, roS=2.443334, a=1830.361715, b=7247.047766, c=9072.899442, s=9075.154461)\n\n    22 tests skipped (201): No module named 'numpy': required by vector2d._numpy\n\n    test 1404 area cw/ccw: 1.0\n\n    testNOAA(pygeodesy.ellipsoidalExact, 25.08.28)\n    test 1405 NOAAexample1: 191872.1190, 249 03 16.4237, 67 59 11.1619\n    test 1406 NOAAexample2: 182009.1679, 254 42 44.6439, 73 09 21.3315\n    test 1407 NOAAexample3: 123456.7891, 245 00 34.7001, 64 20 24.6864\n    test 1408 NOAAexample4: 145239.0603, 114 29 26.9586, 295 21 32.6566\n\n    testIntersection3(pygeodesy.ellipsoidalExact, 25.08.28)\n    test 1409 (30, 17): (LatLon(30°52′03.1″N, 015°30′38.41″E), 0, 0)\n    test 1410 (30, 17): (LatLon(30°52′03.1″N, 015°30′38.41″E), -1, 0)\n    test 1411 (-1,  3): (LatLon(01°34′52.49″N, 006°00′51.83″E), -1, -2)\n    test 1412 (-1,  3): (LatLon(01°34′52.49″N, 006°00′51.83″E), -1, 2)\n    test 1413 (65, 32): (LatLon(56°58′26.51″N, 032°00′00.0″E), 1, 0)\n    test 1414 (65, 32): (LatLon(56°58′26.51″N, 032°00′00.0″E), 1, 2)\n    test 1415 (-2, 17): <class 'pygeodesy.errors.IntersectionError'>\n    test 1416 (49, 25): (LatLon(49°00′00.0″N, 025°00′00.0″E), 0, -2)  FAILED, KNOWN, expected (LatLon(49°00′00.0″N, 025°00′00.0″E), 0, 0)\n    test 1417 #58: (LatLon(01°54′25.65″S, 005°37′48.76″E), 1, -2)\n    test 1418 #58: <class 'pygeodesy.errors.IntersectionError'>\n    test 1419 intersection3: (LatLon(54°43′01.31″N, 014°33′49.88″W), 0, 0)\n    test 1420 intersection3: 54.71703°N, 014.563856°W\n\n    testIntersections2(pygeodesy.ellipsoidalExact, 25.08.28)\n    test 1421 EquidistantExact: 36.9879°N, 088.1564°W, 38.2441°N, 092.3835°W\n    test 1422 EquidistantExact: 36.9879°N, 088.1564°W, 38.2441°N, 092.3835°W\n    test 1423 EquidistantExact: 00.0°N, 035.3478°W, 00.0°N, 035.3478°E  FAILED, KNOWN, expected 00.0°N, 035.3478°W, 00.0°S, 035.3478°E\n    test 1424 EquidistantExact: 1.63715 (% of radius)\n    test 1425 EquidistantExact: 22.657°N, 000.0°W, 22.657°S, 000.0°E  FAILED, KNOWN, expected 22.657°N, 000.0°E, 22.657°S, 000.0°E\n    test 1426 EquidistantExact: 1.30663 (% of radius)\n    test 1427 EquidistantExact: 29.4898°N, 040.1785°W, 29.4898°S, 040.1785°E\n    test 1428 EquidistantExact: 1.31396 (% of radius)\n    test 1429 EquidistantExact: 02.7402°S, 044.885°E, 02.7402°N, 044.885°E\n    test 1430 EquidistantExact: 1.83268 (% of radius)\n    test 1431 EquidistantExact 5: 05.0558°S, 005.0271°W, 05.0558°N, 005.0271°E\n    test 1432 EquidistantExact 5: 4.18779e-16 (% of radius)\n    test 1433 EquidistantExact 10: 10.1081°S, 010.2901°W, 10.1081°N, 010.2901°E\n    test 1434 EquidistantExact 10: 4.18779e-16 (% of radius)\n    test 1435 EquidistantExact 15: 15.1433°S, 016.0531°W, 15.1433°N, 016.0531°E\n    test 1436 EquidistantExact 15: 2.93145e-15 (% of radius)\n    test 1437 EquidistantExact 20: 20.1241°S, 022.6411°W, 20.1241°N, 022.6411°E\n    test 1438 EquidistantExact 20: 4.18779e-16 (% of radius)\n    test 1439 EquidistantExact 25: 24.9655°S, 030.4846°W, 24.9655°N, 030.4846°E\n    test 1440 EquidistantExact 25: 1.00507e-15 (% of radius)\n    test 1441 EquidistantExact 30: 29.4898°S, 040.1785°W, 29.4898°N, 040.1785°E\n    test 1442 EquidistantExact 30: 4.18779e-16 (% of radius)\n    test 1443 EquidistantExact 35: 33.3405°S, 052.5516°W, 33.3405°N, 052.5516°E\n    test 1444 EquidistantExact 35: 1.19651e-16 (% of radius)\n    test 1445 EquidistantExact 40: 35.8146°S, 068.7149°W, 35.8146°N, 068.7149°E\n    test 1446 EquidistantExact 40: 1.46573e-15 (% of radius)\n    test 1447 EquidistantExact 45: 35.5368°S, 090.0616°W, 35.5368°N, 090.0616°E\n    test 1448 EquidistantExact 45: 3.72248e-16 (% of radius)\n    test 1449 EquidistantExact 50: 29.5972°S, 118.8695°W, 29.5972°N, 118.8695°E\n    test 1450 EquidistantExact 50: 1.67511e-16 (% of radius)\n    test 1451 EquidistantExact: center1 (LatLon(55°00′00.0″N, 055°00′00.0″W)), center2 (LatLon(55°00′00.0″S, 055°00′00.0″E)), radius1 (12231458.77080936) or radius2 (12231458.77080936): 'no convergence (188568)': tolerance (0.001) too low, antipodal or near-polar?  FAILED, KNOWN, expected 2-tuple\n    test 1452 EquidistantExact: center1 (LatLon(60°00′00.0″N, 060°00′00.0″W)), center2 (LatLon(60°00′00.0″S, 060°00′00.0″E)), radius1 (13343409.568155663) or radius2 (13343409.568155663): 'no convergence (1.01348e+06)': tolerance (0.001) too low, antipodal or near-polar?  FAILED, KNOWN, expected 2-tuple\n    test 1453 EquidistantExact: center1 (LatLon(65°00′00.0″N, 065°00′00.0″W)), center2 (LatLon(65°00′00.0″S, 065°00′00.0″E)), radius1 (14455360.36550197) or radius2 (14455360.36550197): 'no convergence (1.55092e+06)': tolerance (0.001) too low, antipodal or near-polar?  FAILED, KNOWN, expected 2-tuple\n    test 1454 EquidistantExact: 19.786871°S, 036.127885°E Random +/- 45\n    test 1455 EquidistantExact: 19.786871°S, 036.127885°E, 16.272349°S, 054.232208°E  d 3.72279e-09 meter (iteration 3)\n    test 1456 EquidistantExact: 19.786871°S, 036.127885°E, 25.864959°S, 014.294477°W  d 2.05214e-09 meter (iteration 3)\n    test 1457 EquidistantExact: 19.786871°S, 036.127885°E, 15.479134°N, 027.504764°W  d 1.648e-09 meter (iteration 3)\n    test 1458 EquidistantExact: 19.786871°S, 036.127885°E, 24.734011°N, 060.231409°W  d 4.35471e-09 meter (iteration 3)\n    test 1459 EquidistantExact: 19.786871°S, 036.127885°E, 30.523917°N, 018.934718°W  d 1.02324e-08 meter (iteration 3)\n    test 1460 EquidistantExact: 19.786871°S, 036.127885°E, 42.592897°S, 019.962108°E  d 0 meter (iteration 3)\n    test 1461 EquidistantExact: 19.786871°S, 036.127885°E, 20.172211°S, 041.204831°E  d 3.72279e-09 meter (iteration 3)\n    test 1462 EquidistantExact: 19.786871°S, 036.127885°E, 13.653508°N, 001.297552°E  d 1.48912e-09 meter (iteration 3)\n    test 1463 EquidistantExact: 19.786871°S, 036.127885°E, 79.632143°N, 144.295881°W  d 8.94167e-09 meter (iteration 3)\n    test 1464 EquidistantExact: 19.786871°S, 036.127885°E, 13.952235°S, 022.336735°E  d 2.23367e-09 meter (iteration 3)\n    test 1465 EquidistantExact: 19.786871°S, 036.127885°E, 14.421681°N, 037.003128°E  d 9.64679e-09 meter (iteration 3)\n    test 1466 EquidistantExact: 19.786871°S, 036.127885°E, 16.086776°S, 045.658303°W  d 3.60773e-09 meter (iteration 3)\n\n    testKarney(pygeodesy.ellipsoidalExact, 25.08.28, datum='WGS84')\n    test 1467 distanceTo: 866455.4329\n    test 1468 coincident: 0.0\n    test 1469 toDatum: OSGB36\n    test 1470 ValueError2: Ellipsoid 'Airy1830': incompatible with Ellipsoid 'WGS84'\n    test 1471 isEllipsoidal: True\n    test 1472 copy: True\n    test 1473 isEllipsoidal: True\n    test 1474 isSpherical: False\n    test 1475 copy: 37°57′03.7203″S, 144°25′29.5244″E\n\n    testKarneyVincenty(pygeodesy.ellipsoidalExact, 25.08.28, datum='WGS84')\n    test 1476 coincident: 0.0\n    test 1477 coincident: 0.0, 0.0, 0.0\n    test 1478 destination: 37.6528°S, 143.9265°E\n    test 1479 destination: True\n    test 1480 destination2: 37.652821°S, 143.926496°E, 307.1736°NW\n    test 1481 destination2: True\n    test 1482 finalBearingOn: 307.1736°, 307°10′25.07″NW\n    test 1483 distanceTo: 969954.166\n    test 1484 distanceTo3: 969954.166314, 9.141877, 11.29722\n    test 1485 distanceTo2: 972708.16174, 11.22502\n    test 1486 initialBearingTo: 9.1419°, 9°08′30.76″N\n    test 1487 destination: 58.64402°N, 003.07009°W\n    test 1488 finalBearingTo: 11.2972°, 11°17′49.99″NNE\n    test 1489 finalBearingOn: 11.2972°, 11°17′49.99″NNE\n    test 1490 distanceTo: 404607.806\n    test 1491 distanceTo3: 404607.805988, 156.11064, 157.8345\n    test 1492 distanceTo2: 402574.597287, 157.726344\n    test 1493 initialBearingTo: 156.1106°, 156°06′38.31″SSE\n    test 1494 destination: 48.857°N, 002.351°E\n    test 1495 finalBearingTo: 157.8345°, 157°50′04.2″SSE\n    test 1496 finalBearingOn: 157.8345°, 157°50′04.2″SSE\n    test 1497 distanceTo: 54973.295\n    test 1498 distanceTo3: 54973.29527, 233.13008, 232.82461\n    test 1499 distanceTo2: 54903.41209, 232.9209\n    test 1500 initialBearingTo: 233.1301°, 233°07′48.28″SW\n    test 1501 destination: 37.6528°N, 143.9265°E\n    test 1502 finalBearingTo: 232.8246°, 232°49′28.59″SW\n    test 1503 finalBearingOn: 232.8246°, 232°49′28.59″SW\n    test 1504 distanceToMP: 298396.057\n    test 1505 distanceToSM: 185.415\n    test 1506 distanceToMP: 111319.491\n    test 1507 distanceToMP: 110574.389  FAILED, KNOWN, expected 110574.361\n    test 1508 distanceToKW: 222638.982\n    test 1509 distanceToKW: 111319.491\n    test 1510 distanceTo3: 54972.271\n    test 1511 distanceTo3: 306°52′05.37″\n    test 1512 distanceTo3: 307°10′25.07″\n    test 1513 distanceTo2: 54902.390\n    test 1514 distanceTo2: 307°04′38.41″\n\n    testKarneyVincentyError(pygeodesy.ellipsoidalExact, 25.08.28, datum='WGS84')\n    test 1515 distanceTo/antipodal (None): 19936288.579\n    test 1516 distanceTo/VincentyError (None): 19944127.421\n    test 1517 initialBearingTo/VincentyError (None): 15.556883\n    test 1518 finalBearingTo/VincentyError (None): 164.442514\n    test 1519 distanceTo/equatorial (None): 20001517.12  FAILED, KNOWN, expected 20003931.46\n    test 1520 initialBearingTo/equatorial (None): 0.0\n    test 1521 distanceTo/coincident (None): 111319.491\n    test 1522 distanceTo/meridional (None): 9999551.606\n    test 1523 initialBearingTo/meridional (None): 180.0\n    test 1524 distanceTo/coincident (None): 0.0\n    test 1525 initialBearingTo/coincident (None): 180.0\n    test 1526 finalBearingTo/coincident (None): 180.0\n    test 1527 destination/coincident (None): 50.06632°N, 005.71475°W\n    test 1528 distanceTo/anti-meridian (None): 10825924.1\n    test 1529 distanceTo/quadrants (None): 4015703.02\n    test 1530 distanceTo/quadrants (None): 4015703.02\n    test 1531 distanceTo/quadrants (None): 4015703.02\n    test 1532 distanceTo/quadrants (None): 4015703.02\n    test 1533 distanceTo/quadrants (None): 4015703.02\n    test 1534 distanceTo/quadrants (None): 4015703.02\n    test 1535 distanceTo/quadrants (None): 4015703.02\n    test 1536 distanceTo/quadrants (None): 4015703.02\n    test 1537 distanceTo/quadrants (None): 4015703.02\n    test 1538 distanceTo/quadrants (None): 4015703.02\n    test 1539 distanceTo/quadrants (None): 4015703.02\n    test 1540 distanceTo/quadrants (None): 4015703.02\n    test 1541 distanceTo/quadrants (None): 4015703.02\n    test 1542 distanceTo/quadrants (None): 4015703.02\n    test 1543 distanceTo/quadrants (None): 4015703.02\n    test 1544 distanceTo/quadrants (None): 4015703.02\n\n    testKarney(pygeodesy.ellipsoidalExact, 25.08.28, datum='NAD83')\n    test 1545 distanceTo: 866455.4329\n    test 1546 coincident: 0.0\n    test 1547 toDatum: OSGB36\n    test 1548 ValueError2: Ellipsoid 'Airy1830': incompatible with Ellipsoid 'GRS80'\n    test 1549 isEllipsoidal: True\n    test 1550 copy: True\n    test 1551 isEllipsoidal: True\n    test 1552 isSpherical: False\n    test 1553 copy: 37°57′03.7203″S, 144°25′29.5244″E\n\n    testKarneyVincenty(pygeodesy.ellipsoidalExact, 25.08.28, datum='NAD83')\n    test 1554 coincident: 0.0\n    test 1555 coincident: 0.0, 0.0, 0.0\n    test 1556 destination: 37.6528°S, 143.9265°E\n    test 1557 destination: True\n    test 1558 destination2: 37.652821°S, 143.926496°E, 307.1736°NW\n    test 1559 destination2: True\n    test 1560 finalBearingOn: 307.1736°, 307°10′25.07″NW\n    test 1561 distanceTo: 969954.166\n    test 1562 distanceTo3: 969954.166314, 9.141877, 11.29722\n    test 1563 distanceTo2: 972708.16174, 11.22502\n    test 1564 initialBearingTo: 9.1419°, 9°08′30.76″N\n    test 1565 destination: 58.64402°N, 003.07009°W\n    test 1566 finalBearingTo: 11.2972°, 11°17′49.99″NNE\n    test 1567 finalBearingOn: 11.2972°, 11°17′49.99″NNE\n    test 1568 distanceTo: 404607.806\n    test 1569 distanceTo3: 404607.805988, 156.11064, 157.8345\n    test 1570 distanceTo2: 402574.597287, 157.726344\n    test 1571 initialBearingTo: 156.1106°, 156°06′38.31″SSE\n    test 1572 destination: 48.857°N, 002.351°E\n    test 1573 finalBearingTo: 157.8345°, 157°50′04.2″SSE\n    test 1574 finalBearingOn: 157.8345°, 157°50′04.2″SSE\n    test 1575 distanceTo: 54973.295\n    test 1576 distanceTo3: 54973.29527, 233.13008, 232.82461\n    test 1577 distanceTo2: 54903.41209, 232.9209\n    test 1578 initialBearingTo: 233.1301°, 233°07′48.28″SW\n    test 1579 destination: 37.6528°N, 143.9265°E\n    test 1580 finalBearingTo: 232.8246°, 232°49′28.59″SW\n    test 1581 finalBearingOn: 232.8246°, 232°49′28.59″SW\n    test 1582 distanceToMP: 298396.057\n    test 1583 distanceToSM: 185.415\n    test 1584 distanceToMP: 111319.491\n    test 1585 distanceToMP: 110574.389  FAILED, KNOWN, expected 110574.361\n    test 1586 distanceToKW: 222638.982\n    test 1587 distanceToKW: 111319.491\n    test 1588 distanceTo3: 54972.271\n    test 1589 distanceTo3: 306°52′05.37″\n    test 1590 distanceTo3: 307°10′25.07″\n    test 1591 distanceTo2: 54902.390\n    test 1592 distanceTo2: 307°04′38.41″\n\n    testKarneyVincentyError(pygeodesy.ellipsoidalExact, 25.08.28, datum='NAD83')\n    test 1593 distanceTo/antipodal (None): 19936288.579\n    test 1594 distanceTo/VincentyError (None): 19944127.421\n    test 1595 initialBearingTo/VincentyError (None): 15.556883\n    test 1596 finalBearingTo/VincentyError (None): 164.442514\n    test 1597 distanceTo/equatorial (None): 20001517.12  FAILED, KNOWN, expected 20003931.46\n    test 1598 initialBearingTo/equatorial (None): 0.0\n    test 1599 distanceTo/coincident (None): 111319.491\n    test 1600 distanceTo/meridional (None): 9999551.606\n    test 1601 initialBearingTo/meridional (None): 180.0\n    test 1602 distanceTo/coincident (None): 0.0\n    test 1603 initialBearingTo/coincident (None): 180.0\n    test 1604 finalBearingTo/coincident (None): 180.0\n    test 1605 destination/coincident (None): 50.06632°N, 005.71475°W\n    test 1606 distanceTo/anti-meridian (None): 10825924.1\n    test 1607 distanceTo/quadrants (None): 4015703.02\n    test 1608 distanceTo/quadrants (None): 4015703.02\n    test 1609 distanceTo/quadrants (None): 4015703.02\n    test 1610 distanceTo/quadrants (None): 4015703.02\n    test 1611 distanceTo/quadrants (None): 4015703.02\n    test 1612 distanceTo/quadrants (None): 4015703.02\n    test 1613 distanceTo/quadrants (None): 4015703.02\n    test 1614 distanceTo/quadrants (None): 4015703.02\n    test 1615 distanceTo/quadrants (None): 4015703.02\n    test 1616 distanceTo/quadrants (None): 4015703.02\n    test 1617 distanceTo/quadrants (None): 4015703.02\n    test 1618 distanceTo/quadrants (None): 4015703.02\n    test 1619 distanceTo/quadrants (None): 4015703.02\n    test 1620 distanceTo/quadrants (None): 4015703.02\n    test 1621 distanceTo/quadrants (None): 4015703.02\n    test 1622 distanceTo/quadrants (None): 4015703.02\n\n    testKarney_s(pygeodesy.ellipsoidalExact, 25.08.28)\n    test 1623 .lat1: -41.320\n    test 1624 .lon1: 174.810\n    test 1625 .azi1: 161.067669986160\n    test 1626 .lat2: 40.960\n    test 1627 .lon2: -5.500\n    test 1628 .azi2: 18.825195123247\n    test 1629 .s12: 19959679.267353817821  FAILED, KNOWN, expected 19959679.267353821546\n    test 1630 distanceTo3: 19959679.267354, 161.067670, 18.825195\n    test 1631 destination2: 40.96, -5.5, 18.825195123247\n    test 1632 areaOf: 1.366270368e+13\n    test 1633 perimeterOf: 1.683089136e+07\n    test 1634 isclockwise: False\n    test 1635 isclockwise: True\n    test 1636 areaCO: 2.69154549884e+11\n    test 1637 isclockwise: True\n    test 1638 perimeterCO: 2099102.485159  FAILED, KNOWN, expected 2098430.887891\n\n    1133 of 1638 testEllipsoidal.py tests (69.2%) FAILED, incl. 118 KNOWN plus 1015 DeprecationWarnings, 201 skipped (pygeodesy 26.3.26 Python 3.14.3 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 2:12.754\nrunning /Library/Framewo....n3.14 -W default ~/PyGeodesy/test/testEllipsoidalGeodTest.py\n./pygeodesy/ellipsoidalKarney.py:94: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return self.datum.ellipsoid.geodesic\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.ellipsoidalExact by testEllipsoidalGeodTest.py line 15\n# lazily imported pygeodesy.ellipsoidalKarney by testEllipsoidalGeodTest.py line 15\n# lazily imported pygeodesy.ellipsoidalVincenty by testEllipsoidalGeodTest.py line 15\n# lazily imported pygeodesy.Ellipsoids from .ellipsoids by testEllipsoidalGeodTest.py line 15\n# lazily imported pygeodesy.VincentyError from .ellipsoidalVincenty by testEllipsoidalGeodTest.py line 15\n\n    testing testEllipsoidalGeodTest.py 23.12.18 (module pygeodesy.ellipsoidalKarney 25.05.27) isLazy=3\n    test 1 line 1 lat: -48.164271\n    test 2 line 1 lon: 5.762345\n    test 3 line 1 fb: 175.334308\n# lazily imported pygeodesy.geodesicw by ellipsoids.py line 1074\n    test 4 line 1 lat2: -48.164270779098\n    test 5 line 1 lon2: 5.762344694676  FAILED, KNOWN, expected 5.762344694677\n    test 6 line 1 azi2: 175.334308316285\n# lazily imported pygeodesy.geodesicx by ellipsoids.py line 1082\n# lazily imported pygeodesy.elliptic by gxline.py line 289\n    test 7 line 1 lat2: -48.164270779098\n    test 8 line 1 lon2: 5.762344694676  FAILED, KNOWN, expected 5.762344694677\n    test 9 line 1 azi2: 175.334308316285\n    test 10 line 2 lat: -23.186513\n    test 11 line 2 lon: 68.567247\n    test 12 line 2 fb: 154.287114\n    test 13 line 2 lat2: -23.186512533703\n    test 14 line 2 lon2: 68.567247430960\n    test 15 line 2 azi2: 154.287114123872\n    test 16 line 2 lat2: -23.186512533703\n    test 17 line 2 lon2: 68.567247430960\n    test 18 line 2 azi2: 154.287114123872\n    test 19 line 3 lat: 53.997072\n    test 20 line 3 lon: 44.520619\n    test 21 line 3 fb: 52.159487\n    test 22 line 3 lat2: 53.997072295385\n    test 23 line 3 lon2: 44.520619105668\n    test 24 line 3 azi2: 52.159486739948\n    test 25 line 3 lat2: 53.997072295385\n    test 26 line 3 lon2: 44.520619105668\n    test 27 line 3 azi2: 52.159486739948\n    test 28 line 4 lat: -49.416672\n    test 29 line 4 lon: 166.828083\n    test 30 line 4 fb: 22.033031\n    test 31 line 4 lat2: -49.416672064706\n    test 32 line 4 lon2: 166.828083210689\n    test 33 line 4 azi2: 22.033030848249\n    test 34 line 4 lat2: -49.416672064706\n    test 35 line 4 lon2: 166.828083210689\n    test 36 line 4 azi2: 22.033030848249\n    test 37 line 5 lat: -60.405136\n    test 38 line 5 lon: 110.581140\n    test 39 line 5 fb: 75.518296\n    test 40 line 5 lat2: -60.405136414530\n    test 41 line 5 lon2: 110.581139538777\n    test 42 line 5 azi2: 75.518295964649\n    test 43 line 5 lat2: -60.405136414530\n    test 44 line 5 lon2: 110.581139538777\n    test 45 line 5 azi2: 75.518295964649\n    test 46 line 6 lat: -11.212600\n    test 47 line 6 lon: 144.177077\n    test 48 line 6 fb: 133.027766\n    test 49 line 6 lat2: -11.212600121556\n    test 50 line 6 lon2: 144.177076511360\n    test 51 line 6 azi2: 133.027766301029\n    test 52 line 6 lat2: -11.212600121556\n    test 53 line 6 lon2: 144.177076511360\n    test 54 line 6 azi2: 133.027766301029\n    test 55 line 7 lat: -6.529067\n    test 56 line 7 lon: 2.895924\n    test 57 line 7 fb: 178.740350\n    test 58 line 7 lat2: -6.529066987956\n    test 59 line 7 lon2: 2.895923948125\n    test 60 line 7 azi2: 178.740350145954\n    test 61 line 7 lat2: -6.529066987956\n    test 62 line 7 lon2: 2.895923948125\n    test 63 line 7 azi2: 178.740350145954\n    test 64 line 8 lat: -8.855512\n    test 65 line 8 lon: 112.749196\n    test 66 line 8 fb: 119.512004\n    test 67 line 8 lat2: -8.855512357257\n    test 68 line 8 lon2: 112.749196494485\n    test 69 line 8 azi2: 119.512003891282\n    test 70 line 8 lat2: -8.855512357257\n    test 71 line 8 lon2: 112.749196494485\n    test 72 line 8 azi2: 119.512003891282\n    test 73 line 9 lat: 29.866967\n    test 74 line 9 lon: 171.726893\n    test 75 line 9 fb: 171.662245\n    test 76 line 9 lat2: 29.866967483293\n    test 77 line 9 lon2: 171.726892560963\n    test 78 line 9 azi2: 171.662244609397\n    test 79 line 9 lat2: 29.866967483293\n    test 80 line 9 lon2: 171.726892560963\n    test 81 line 9 azi2: 171.662244609397\n    test 82 line 10 lat: -29.238404\n    test 83 line 10 lon: 133.459814\n    test 84 line 10 fb: 69.814124\n    test 85 line 10 lat2: -29.238404337998\n    test 86 line 10 lon2: 133.459813533284\n    test 87 line 10 azi2: 69.814124320813\n    test 88 line 10 lat2: -29.238404337998\n    test 89 line 10 lon2: 133.459813533284\n    test 90 line 10 azi2: 69.814124320813\n    test 91 line 11 lat: 55.600487\n    test 92 line 11 lon: 75.128743\n    test 93 line 11 fb: 153.896689\n    test 94 line 11 lat2: 55.600487151983\n    test 95 line 11 lon2: 75.128743229496  FAILED, KNOWN, expected 75.128743229495\n    test 96 line 11 azi2: 153.896688535572\n    test 97 line 11 lat2: 55.600487151983\n    test 98 line 11 lon2: 75.128743229496  FAILED, KNOWN, expected 75.128743229495\n    test 99 line 11 azi2: 153.896688535572\n    test 100 line 12 lat: -22.858435\n    test 101 line 12 lon: 67.207513\n    test 102 line 12 fb: 142.939529\n    test 103 line 12 lat2: -22.858434825399\n    test 104 line 12 lon2: 67.207513019332\n    test 105 line 12 azi2: 142.939529056687\n    test 106 line 12 lat2: -22.858434825399\n    test 107 line 12 lon2: 67.207513019332\n    test 108 line 12 azi2: 142.939529056687\n    test 109 line 13 lat: -32.634475\n    test 110 line 13 lon: 22.238523\n    test 111 line 13 fb: 172.112993\n    test 112 line 13 lat2: -32.634475461067\n    test 113 line 13 lon2: 22.238523021935\n    test 114 line 13 azi2: 172.112992582333\n    test 115 line 13 lat2: -32.634475461067\n    test 116 line 13 lon2: 22.238523021935\n    test 117 line 13 azi2: 172.112992582333\n    test 118 line 14 lat: 62.224985\n    test 119 line 14 lon: 47.119133\n    test 120 line 14 fb: 54.318105\n    test 121 line 14 lat2: 62.224984867045\n    test 122 line 14 lon2: 47.119133304525\n    test 123 line 14 azi2: 54.318105291965\n    test 124 line 14 lat2: 62.224984867045\n    test 125 line 14 lon2: 47.119133304525\n    test 126 line 14 azi2: 54.318105291965\n    test 127 line 15 lat: 33.069613\n    test 128 line 15 lon: 5.796996\n    test 129 line 15 fb: 17.403845\n    test 130 line 15 lat2: 33.069613195450\n    test 131 line 15 lon2: 5.796995960186\n    test 132 line 15 azi2: 17.403844642346\n    test 133 line 15 lat2: 33.069613195450\n    test 134 line 15 lon2: 5.796995960186\n    test 135 line 15 azi2: 17.403844642346\n    test 136 line 16 lat: 53.760900\n    test 137 line 16 lon: 119.204306\n    test 138 line 16 fb: 141.069793\n    test 139 line 16 lat2: 53.760899500985\n    test 140 line 16 lon2: 119.204305898518\n    test 141 line 16 azi2: 141.069793254983\n    test 142 line 16 lat2: 53.760899500985\n    test 143 line 16 lon2: 119.204305898518\n    test 144 line 16 azi2: 141.069793254983\n    test 145 line 17 lat: -3.225632\n    test 146 line 17 lon: 103.742354\n    test 147 line 17 fb: 127.880328\n    test 148 line 17 lat2: -3.225632004245\n    test 149 line 17 lon2: 103.742354347526\n    test 150 line 17 azi2: 127.880328388524\n    test 151 line 17 lat2: -3.225632004245\n    test 152 line 17 lon2: 103.742354347526\n    test 153 line 17 azi2: 127.880328388524\n    test 154 line 18 lat: 47.108712\n    test 155 line 18 lon: 99.934107\n    test 156 line 18 fb: 104.103491\n    test 157 line 18 lat2: 47.108712008353\n    test 158 line 18 lon2: 99.934107358387\n    test 159 line 18 azi2: 104.103491123038\n    test 160 line 18 lat2: 47.108712008353\n    test 161 line 18 lon2: 99.934107358387\n    test 162 line 18 azi2: 104.103491123038\n    test 163 line 19 lat: 5.399363\n    test 164 line 19 lon: 135.250064\n    test 165 line 19 fb: 102.177018\n    test 166 line 19 lat2: 5.399363208349\n    test 167 line 19 lon2: 135.250063670790\n    test 168 line 19 azi2: 102.177017677370\n    test 169 line 19 lat2: 5.399363208349\n    test 170 line 19 lon2: 135.250063670790\n    test 171 line 19 azi2: 102.177017677370\n    test 172 line 20 lat: -58.669225\n    test 173 line 20 lon: 54.875015\n    test 174 line 20 fb: 131.345308\n    test 175 line 20 lat2: -58.669224697403\n    test 176 line 20 lon2: 54.875014559502\n    test 177 line 20 azi2: 131.345308028428\n    test 178 line 20 lat2: -58.669224697403\n    test 179 line 20 lon2: 54.875014559502\n    test 180 line 20 azi2: 131.345308028428\n    test 181 line 21 lat: 9.184229\n    test 182 line 21 lon: 151.302637\n    test 183 line 21 fb: 128.175105\n    test 184 line 21 lat2: 9.184228666560\n    test 185 line 21 lon2: 151.302636871911\n    test 186 line 21 azi2: 128.175105446048\n    test 187 line 21 lat2: 9.184228666560\n    test 188 line 21 lon2: 151.302636871911\n    test 189 line 21 azi2: 128.175105446048\n    test 190 line 22 lat: 53.467940\n    test 191 line 22 lon: 67.724192\n    test 192 line 22 fb: 78.863492\n    test 193 line 22 lat2: 53.467939714247\n    test 194 line 22 lon2: 67.724192258333\n    test 195 line 22 azi2: 78.863492168727\n    test 196 line 22 lat2: 53.467939714247\n    test 197 line 22 lon2: 67.724192258333\n    test 198 line 22 azi2: 78.863492168727\n    test 199 line 23 lat: 39.699456\n    test 200 line 23 lon: 67.156325\n    test 201 line 23 fb: 85.276830\n    test 202 line 23 lat2: 39.699455912449\n    test 203 line 23 lon2: 67.156324625647\n    test 204 line 23 azi2: 85.276829539878\n    test 205 line 23 lat2: 39.699455912449\n    test 206 line 23 lon2: 67.156324625647\n    test 207 line 23 azi2: 85.276829539878\n    test 208 line 24 lat: 70.942602\n    test 209 line 24 lon: 17.379214\n    test 210 line 24 fb: 21.869008\n    test 211 line 24 lat2: 70.942602144324\n    test 212 line 24 lon2: 17.379213644124\n    test 213 line 24 azi2: 21.869008256312\n    test 214 line 24 lat2: 70.942602144324\n    test 215 line 24 lon2: 17.379213644124\n    test 216 line 24 azi2: 21.869008256312\n    test 217 line 25 lat: 69.633349\n    test 218 line 25 lon: 110.601933\n    test 219 line 25 fb: 138.575193\n    test 220 line 25 lat2: 69.633349004538\n    test 221 line 25 lon2: 110.601933261211\n    test 222 line 25 azi2: 138.575192608514\n    test 223 line 25 lat2: 69.633349004538\n    test 224 line 25 lon2: 110.601933261211\n    test 225 line 25 azi2: 138.575192608515  FAILED, KNOWN, expected 138.575192608514\n    test 226 line 26 lat: 16.190815\n    test 227 line 26 lon: 87.606993\n    test 228 line 26 fb: 131.929410\n    test 229 line 26 lat2: 16.190814826165\n    test 230 line 26 lon2: 87.606993293114\n    test 231 line 26 azi2: 131.929409507039\n    test 232 line 26 lat2: 16.190814826165\n    test 233 line 26 lon2: 87.606993293114\n    test 234 line 26 azi2: 131.929409507039\n    test 235 line 27 lat: 54.774905\n    test 236 line 27 lon: 52.952507\n    test 237 line 27 fb: 85.904051\n    test 238 line 27 lat2: 54.774904542264\n    test 239 line 27 lon2: 52.952506835523\n    test 240 line 27 azi2: 85.904050867676\n    test 241 line 27 lat2: 54.774904542264\n    test 242 line 27 lon2: 52.952506835523\n    test 243 line 27 azi2: 85.904050867676\n    test 244 line 28 lat: -62.008569\n    test 245 line 28 lon: 172.274877\n    test 246 line 28 fb: 21.992601\n    test 247 line 28 lat2: -62.008568677307\n    test 248 line 28 lon2: 172.274876714260\n    test 249 line 28 azi2: 21.992601380429\n    test 250 line 28 lat2: -62.008568677307\n    test 251 line 28 lon2: 172.274876714260\n    test 252 line 28 azi2: 21.992601380429\n    test 253 line 29 lat: 27.303730\n    test 254 line 29 lon: 159.184451\n    test 255 line 29 fb: 150.697920\n    test 256 line 29 lat2: 27.303729660018\n    test 257 line 29 lon2: 159.184451093393\n    test 258 line 29 azi2: 150.697920369703\n    test 259 line 29 lat2: 27.303729660018\n    test 260 line 29 lon2: 159.184451093393\n    test 261 line 29 azi2: 150.697920369703\n    test 262 line 30 lat: 31.979897\n    test 263 line 30 lon: 55.946759\n    test 264 line 30 fb: 87.398293\n    test 265 line 30 lat2: 31.979897342658\n    test 266 line 30 lon2: 55.946758945497\n    test 267 line 30 azi2: 87.398292964767\n    test 268 line 30 lat2: 31.979897342658\n    test 269 line 30 lon2: 55.946758945497\n    test 270 line 30 azi2: 87.398292964767\n    test 271 line 31 lat: 49.991468\n    test 272 line 31 lon: 133.962411\n    test 273 line 31 fb: 142.016540\n    test 274 line 31 lat2: 49.991467522545\n    test 275 line 31 lon2: 133.962411191467\n    test 276 line 31 azi2: 142.016540226251\n    test 277 line 31 lat2: 49.991467522545\n    test 278 line 31 lon2: 133.962411191467\n    test 279 line 31 azi2: 142.016540226251\n    test 280 line 32 lat: 2.818559\n    test 281 line 32 lon: 7.234774\n    test 282 line 32 fb: 168.804029\n    test 283 line 32 lat2: 2.818558842278\n    test 284 line 32 lon2: 7.234774421859\n    test 285 line 32 azi2: 168.804029404993\n    test 286 line 32 lat2: 2.818558842278\n    test 287 line 32 lon2: 7.234774421859\n    test 288 line 32 azi2: 168.804029404993\n    test 289 line 33 lat: -38.118071\n    test 290 line 33 lon: 93.395971\n    test 291 line 33 fb: 117.017377\n    test 292 line 33 lat2: -38.118070550305\n    test 293 line 33 lon2: 93.395971367720\n    test 294 line 33 azi2: 117.017376985228\n    test 295 line 33 lat2: -38.118070550305\n    test 296 line 33 lon2: 93.395971367720\n    test 297 line 33 azi2: 117.017376985228\n    test 298 line 34 lat: 3.377824\n    test 299 line 34 lon: 65.294746\n    test 300 line 34 fb: 138.982544\n    test 301 line 34 lat2: 3.377824468035\n    test 302 line 34 lon2: 65.294745963255\n    test 303 line 34 azi2: 138.982543784560\n    test 304 line 34 lat2: 3.377824468035\n    test 305 line 34 lon2: 65.294745963255\n    test 306 line 34 azi2: 138.982543784560\n    test 307 line 35 lat: 4.631157\n    test 308 line 35 lon: 84.335045\n    test 309 line 35 fb: 132.120804\n    test 310 line 35 lat2: 4.631157299024\n    test 311 line 35 lon2: 84.335044694540\n    test 312 line 35 azi2: 132.120804319474\n    test 313 line 35 lat2: 4.631157299024\n    test 314 line 35 lon2: 84.335044694540\n    test 315 line 35 azi2: 132.120804319474\n    test 316 line 36 lat: 38.952215\n    test 317 line 36 lon: 133.416463\n    test 318 line 36 fb: 160.690586\n    test 319 line 36 lat2: 38.952215219507\n    test 320 line 36 lon2: 133.416463103113\n    test 321 line 36 azi2: 160.690585690749\n    test 322 line 36 lat2: 38.952215219507\n    test 323 line 36 lon2: 133.416463103113\n    test 324 line 36 azi2: 160.690585690749\n    test 325 line 37 lat: -39.013297\n    test 326 line 37 lon: 160.302849\n    test 327 line 37 fb: 115.363715\n    test 328 line 37 lat2: -39.013296805131\n    test 329 line 37 lon2: 160.302849365986\n    test 330 line 37 azi2: 115.363714797610\n    test 331 line 37 lat2: -39.013296805131\n    test 332 line 37 lon2: 160.302849365986\n    test 333 line 37 azi2: 115.363714797610\n    test 334 line 38 lat: -48.456093\n    test 335 line 38 lon: 38.613822\n    test 336 line 38 fb: 137.651668\n    test 337 line 38 lat2: -48.456093143589\n    test 338 line 38 lon2: 38.613821719886\n    test 339 line 38 azi2: 137.651668464815\n    test 340 line 38 lat2: -48.456093143589\n    test 341 line 38 lon2: 38.613821719886\n    test 342 line 38 azi2: 137.651668464815\n    test 343 line 39 lat: -13.861956\n    test 344 line 39 lon: 74.250572\n    test 345 line 39 fb: 143.968262\n    test 346 line 39 lat2: -13.861956131519\n    test 347 line 39 lon2: 74.250571564776\n    test 348 line 39 azi2: 143.968262419705\n    test 349 line 39 lat2: -13.861956131519\n    test 350 line 39 lon2: 74.250571564776\n    test 351 line 39 azi2: 143.968262419705\n    test 352 line 40 lat: 25.289202\n    test 353 line 40 lon: 47.063579\n    test 354 line 40 fb: 78.672533\n    test 355 line 40 lat2: 25.289201968371\n    test 356 line 40 lon2: 47.063578519727\n    test 357 line 40 azi2: 78.672532588106\n    test 358 line 40 lat2: 25.289201968371\n    test 359 line 40 lon2: 47.063578519727\n    test 360 line 40 azi2: 78.672532588106\n    test 361 line 41 lat: 49.498121\n    test 362 line 41 lon: 131.993365\n    test 363 line 41 fb: 157.425605\n    test 364 line 41 lat2: 49.498121110507\n    test 365 line 41 lon2: 131.993365399320\n    test 366 line 41 azi2: 157.425605424890\n    test 367 line 41 lat2: 49.498121110507\n    test 368 line 41 lon2: 131.993365399320\n    test 369 line 41 azi2: 157.425605424890\n    test 370 line 42 lat: -2.104242\n    test 371 line 42 lon: 56.532079\n    test 372 line 42 fb: 129.406955\n    test 373 line 42 lat2: -2.104241718494\n    test 374 line 42 lon2: 56.532079408825\n    test 375 line 42 azi2: 129.406954892035\n    test 376 line 42 lat2: -2.104241718494\n    test 377 line 42 lon2: 56.532079408825\n    test 378 line 42 azi2: 129.406954892035\n    test 379 line 43 lat: -39.997315\n    test 380 line 43 lon: 49.004259\n    test 381 line 43 fb: 135.432995\n    test 382 line 43 lat2: -39.997315471629\n    test 383 line 43 lon2: 49.004258662721\n    test 384 line 43 azi2: 135.432994751523\n    test 385 line 43 lat2: -39.997315471629\n    test 386 line 43 lon2: 49.004258662721\n    test 387 line 43 azi2: 135.432994751523\n    test 388 line 44 lat: 9.333272\n    test 389 line 44 lon: 98.670857\n    test 390 line 44 fb: 120.694280\n    test 391 line 44 lat2: 9.333271992381\n    test 392 line 44 lon2: 98.670857333200\n    test 393 line 44 azi2: 120.694280236304\n    test 394 line 44 lat2: 9.333271992381\n    test 395 line 44 lon2: 98.670857333200\n    test 396 line 44 azi2: 120.694280236304\n    test 397 line 45 lat: 38.653646\n    test 398 line 45 lon: 136.060468\n    test 399 line 45 fb: 152.489416\n    test 400 line 45 lat2: 38.653646179484\n    test 401 line 45 lon2: 136.060467518677\n    test 402 line 45 azi2: 152.489415748331\n    test 403 line 45 lat2: 38.653646179484\n    test 404 line 45 lon2: 136.060467518677\n    test 405 line 45 azi2: 152.489415748331\n    test 406 line 46 lat: -4.564995\n    test 407 line 46 lon: 166.894968\n    test 408 line 46 fb: 127.520036\n    test 409 line 46 lat2: -4.564994956240\n    test 410 line 46 lon2: 166.894968092836\n    test 411 line 46 azi2: 127.520036113641\n    test 412 line 46 lat2: -4.564994956240\n    test 413 line 46 lon2: 166.894968092836\n    test 414 line 46 azi2: 127.520036113641\n    test 415 line 47 lat: -38.522500\n    test 416 line 47 lon: 178.679307\n    test 417 line 47 fb: 176.468685\n    test 418 line 47 lat2: -38.522500159620\n    test 419 line 47 lon2: 178.679306959466\n    test 420 line 47 azi2: 176.468684587438\n    test 421 line 47 lat2: -38.522500159620\n    test 422 line 47 lon2: 178.679306959466\n    test 423 line 47 azi2: 176.468684587438\n    test 424 line 48 lat: 45.529796\n    test 425 line 48 lon: 145.048738\n    test 426 line 48 fb: 160.706227\n    test 427 line 48 lat2: 45.529795503687  FAILED, KNOWN, expected 45.529795503688\n    test 428 line 48 lon2: 145.048737846273\n    test 429 line 48 azi2: 160.706226714169\n    test 430 line 48 lat2: 45.529795503688\n    test 431 line 48 lon2: 145.048737846273\n    test 432 line 48 azi2: 160.706226714169\n    test 433 line 49 lat: -2.968925\n    test 434 line 49 lon: 5.044083\n    test 435 line 49 fb: 174.913528\n    test 436 line 49 lat2: -2.968924563433\n    test 437 line 49 lon2: 5.044082955485\n    test 438 line 49 azi2: 174.913527615338\n    test 439 line 49 lat2: -2.968924563433\n    test 440 line 49 lon2: 5.044082955485\n    test 441 line 49 azi2: 174.913527615338\n    test 442 line 50 lat: 1.618184\n    test 443 line 50 lon: 163.262955\n    test 444 line 50 fb: 161.097730\n    test 445 line 50 lat2: 1.618184178387\n    test 446 line 50 lon2: 163.262955108028\n    test 447 line 50 azi2: 161.097729713868\n    test 448 line 50 lat2: 1.618184178387\n    test 449 line 50 lon2: 163.262955108028\n    test 450 line 50 azi2: 161.097729713868\n    test 451 line 51 lat: 25.179740\n    test 452 line 51 lon: 107.504992\n    test 453 line 51 fb: 154.055552\n    test 454 line 51 lat2: 25.179740339437\n    test 455 line 51 lon2: 107.504991932892\n    test 456 line 51 azi2: 154.055552232572\n    test 457 line 51 lat2: 25.179740339437\n    test 458 line 51 lon2: 107.504991932892\n    test 459 line 51 azi2: 154.055552232572\n    test 460 line 52 lat: 57.391251\n    test 461 line 52 lon: 89.082271\n    test 462 line 52 fb: 101.276115\n    test 463 line 52 lat2: 57.391251345244\n    test 464 line 52 lon2: 89.082271206722\n    test 465 line 52 azi2: 101.276114553753\n    test 466 line 52 lat2: 57.391251345244\n    test 467 line 52 lon2: 89.082271206722\n    test 468 line 52 azi2: 101.276114553753\n    test 469 line 53 lat: -11.470673\n    test 470 line 53 lon: 48.285095\n    test 471 line 53 fb: 148.389696\n    test 472 line 53 lat2: -11.470672507979\n    test 473 line 53 lon2: 48.285094684225\n    test 474 line 53 azi2: 148.389695684750\n    test 475 line 53 lat2: -11.470672507979\n    test 476 line 53 lon2: 48.285094684225\n    test 477 line 53 azi2: 148.389695684750\n    test 478 line 54 lat: 27.356639\n    test 479 line 54 lon: 84.391682\n    test 480 line 54 fb: 104.661818\n    test 481 line 54 lat2: 27.356639349123\n    test 482 line 54 lon2: 84.391681754671\n    test 483 line 54 azi2: 104.661818309238\n    test 484 line 54 lat2: 27.356639349123\n    test 485 line 54 lon2: 84.391681754671\n    test 486 line 54 azi2: 104.661818309238\n    test 487 line 55 lat: -40.533598\n    test 488 line 55 lon: 103.488381\n    test 489 line 55 fb: 132.398259\n    test 490 line 55 lat2: -40.533597900971\n    test 491 line 55 lon2: 103.488381204009\n    test 492 line 55 azi2: 132.398259207371\n    test 493 line 55 lat2: -40.533597900971\n    test 494 line 55 lon2: 103.488381204009\n    test 495 line 55 azi2: 132.398259207371\n    test 496 line 56 lat: 52.337949\n    test 497 line 56 lon: 149.908279\n    test 498 line 56 fb: 162.333474\n    test 499 line 56 lat2: 52.337949466457\n    test 500 line 56 lon2: 149.908278798430\n    test 501 line 56 azi2: 162.333474334205\n    test 502 line 56 lat2: 52.337949466457\n    test 503 line 56 lon2: 149.908278798430\n    test 504 line 56 azi2: 162.333474334205\n    test 505 line 57 lat: -58.474076\n    test 506 line 57 lon: 78.718606\n    test 507 line 57 fb: 117.457565\n    test 508 line 57 lat2: -58.474075605820\n    test 509 line 57 lon2: 78.718605560533\n    test 510 line 57 azi2: 117.457565115569\n    test 511 line 57 lat2: -58.474075605820\n    test 512 line 57 lon2: 78.718605560533\n    test 513 line 57 azi2: 117.457565115569\n    test 514 line 58 lat: -35.840568\n    test 515 line 58 lon: 4.157534\n    test 516 line 58 fb: 174.451067\n    test 517 line 58 lat2: -35.840568348239\n    test 518 line 58 lon2: 4.157534199470\n    test 519 line 58 azi2: 174.451066901814\n    test 520 line 58 lat2: -35.840568348239\n    test 521 line 58 lon2: 4.157534199470\n    test 522 line 58 azi2: 174.451066901814\n    test 523 line 59 lat: 15.629163\n    test 524 line 59 lon: 102.677417\n    test 525 line 59 fb: 103.482103\n    test 526 line 59 lat2: 15.629163409998\n    test 527 line 59 lon2: 102.677417064290  FAILED, KNOWN, expected 102.677417064289\n    test 528 line 59 azi2: 103.482102722183\n    test 529 line 59 lat2: 15.629163409998\n    test 530 line 59 lon2: 102.677417064290  FAILED, KNOWN, expected 102.677417064289\n    test 531 line 59 azi2: 103.482102722183\n    test 532 line 60 lat: -1.256180\n    test 533 line 60 lon: 133.625255\n    test 534 line 60 fb: 104.470489\n    test 535 line 60 lat2: -1.256179633151\n    test 536 line 60 lon2: 133.625254783633\n    test 537 line 60 azi2: 104.470489013739\n    test 538 line 60 lat2: -1.256179633151\n    test 539 line 60 lon2: 133.625254783633\n    test 540 line 60 azi2: 104.470489013739\n    test 541 line 61 lat: -40.558253\n    test 542 line 61 lon: 112.897054\n    test 543 line 61 fb: 90.226134\n    test 544 line 61 lat2: -40.558252601871\n    test 545 line 61 lon2: 112.897053867085\n    test 546 line 61 azi2: 90.226134266467\n    test 547 line 61 lat2: -40.558252601871\n    test 548 line 61 lon2: 112.897053867085\n    test 549 line 61 azi2: 90.226134266467\n    test 550 line 62 lat: 86.193596\n    test 551 line 62 lon: 116.956880\n    test 552 line 62 fb: 117.618329\n    test 553 line 62 lat2: 86.193595821107\n    test 554 line 62 lon2: 116.956880430711\n    test 555 line 62 azi2: 117.618329340274\n    test 556 line 62 lat2: 86.193595821107\n    test 557 line 62 lon2: 116.956880430711\n    test 558 line 62 azi2: 117.618329340274\n    test 559 line 63 lat: 6.874181\n    test 560 line 63 lon: 54.891199\n    test 561 line 63 fb: 90.820790\n    test 562 line 63 lat2: 6.874181093562\n    test 563 line 63 lon2: 54.891198619261\n    test 564 line 63 azi2: 90.820789878786\n    test 565 line 63 lat2: 6.874181093562\n    test 566 line 63 lon2: 54.891198619261\n    test 567 line 63 azi2: 90.820789878786\n    test 568 line 64 lat: -2.554657\n    test 569 line 64 lon: 71.539549\n    test 570 line 64 fb: 105.722921\n    test 571 line 64 lat2: -2.554657243385\n    test 572 line 64 lon2: 71.539549368441\n    test 573 line 64 azi2: 105.722921401613\n    test 574 line 64 lat2: -2.554657243385\n    test 575 line 64 lon2: 71.539549368441\n    test 576 line 64 azi2: 105.722921401613\n    test 577 line 65 lat: 1.329645\n    test 578 line 65 lon: 138.134969\n    test 579 line 65 fb: 150.465118\n    test 580 line 65 lat2: 1.329645321136\n    test 581 line 65 lon2: 138.134968538140\n    test 582 line 65 azi2: 150.465118219879\n    test 583 line 65 lat2: 1.329645321136\n    test 584 line 65 lon2: 138.134968538140\n    test 585 line 65 azi2: 150.465118219879\n    test 586 line 66 lat: -44.026427\n    test 587 line 66 lon: 121.367591\n    test 588 line 66 fb: 123.975227\n    test 589 line 66 lat2: -44.026426573446\n    test 590 line 66 lon2: 121.367591215510\n    test 591 line 66 azi2: 123.975227063718\n    test 592 line 66 lat2: -44.026426573446\n    test 593 line 66 lon2: 121.367591215510\n    test 594 line 66 azi2: 123.975227063718\n    test 595 line 67 lat: -3.399081\n    test 596 line 67 lon: 138.655764\n    test 597 line 67 fb: 98.994343\n    test 598 line 67 lat2: -3.399080708673\n    test 599 line 67 lon2: 138.655764270175\n    test 600 line 67 azi2: 98.994343217447\n    test 601 line 67 lat2: -3.399080708673\n    test 602 line 67 lon2: 138.655764270175\n    test 603 line 67 azi2: 98.994343217447\n    test 604 line 68 lat: -26.776985\n    test 605 line 68 lon: 67.020055\n    test 606 line 68 fb: 119.394665\n    test 607 line 68 lat2: -26.776984673364\n    test 608 line 68 lon2: 67.020054548341\n    test 609 line 68 azi2: 119.394664651636\n    test 610 line 68 lat2: -26.776984673364\n    test 611 line 68 lon2: 67.020054548341\n    test 612 line 68 azi2: 119.394664651636\n    test 613 line 69 lat: 52.057239\n    test 614 line 69 lon: 151.887270\n    test 615 line 69 fb: 161.537826\n    test 616 line 69 lat2: 52.057239269050\n    test 617 line 69 lon2: 151.887270484247\n    test 618 line 69 azi2: 161.537826425477\n    test 619 line 69 lat2: 52.057239269050\n    test 620 line 69 lon2: 151.887270484247\n    test 621 line 69 azi2: 161.537826425477\n    test 622 line 70 lat: 3.784724\n    test 623 line 70 lon: 102.727745\n    test 624 line 70 fb: 116.453155\n    test 625 line 70 lat2: 3.784724165483\n    test 626 line 70 lon2: 102.727744934481\n    test 627 line 70 azi2: 116.453155405439\n    test 628 line 70 lat2: 3.784724165483\n    test 629 line 70 lon2: 102.727744934481\n    test 630 line 70 azi2: 116.453155405439\n    test 631 line 71 lat: -40.409299\n    test 632 line 71 lon: 86.033195\n    test 633 line 71 fb: 121.080298\n    test 634 line 71 lat2: -40.409298772797\n    test 635 line 71 lon2: 86.033195335657\n    test 636 line 71 azi2: 121.080297615268\n    test 637 line 71 lat2: -40.409298772797\n    test 638 line 71 lon2: 86.033195335657\n    test 639 line 71 azi2: 121.080297615268\n    test 640 line 72 lat: 73.013460\n    test 641 line 72 lon: 76.188125\n    test 642 line 72 fb: 78.877769\n    test 643 line 72 lat2: 73.013460186926\n    test 644 line 72 lon2: 76.188125151657\n    test 645 line 72 azi2: 78.877769459629\n    test 646 line 72 lat2: 73.013460186926\n    test 647 line 72 lon2: 76.188125151657\n    test 648 line 72 azi2: 78.877769459629\n    test 649 line 73 lat: 52.870132\n    test 650 line 73 lon: 51.020900\n    test 651 line 73 fb: 102.113351\n    test 652 line 73 lat2: 52.870131799667\n    test 653 line 73 lon2: 51.020900069545\n    test 654 line 73 azi2: 102.113351369331\n    test 655 line 73 lat2: 52.870131799667\n    test 656 line 73 lon2: 51.020900069545\n    test 657 line 73 azi2: 102.113351369331\n    test 658 line 74 lat: 28.909632\n    test 659 line 74 lon: 17.071526\n    test 660 line 74 fb: 103.660711\n    test 661 line 74 lat2: 28.909631785857\n    test 662 line 74 lon2: 17.071526465331\n    test 663 line 74 azi2: 103.660711362255\n    test 664 line 74 lat2: 28.909631785857\n    test 665 line 74 lon2: 17.071526465331\n    test 666 line 74 azi2: 103.660711362255\n    test 667 line 75 lat: -58.257855\n    test 668 line 75 lon: 15.812862\n    test 669 line 75 fb: 169.606337\n    test 670 line 75 lat2: -58.257854831091\n    test 671 line 75 lon2: 15.812862089412\n    test 672 line 75 azi2: 169.606337169070\n    test 673 line 75 lat2: -58.257854831091\n    test 674 line 75 lon2: 15.812862089412\n    test 675 line 75 azi2: 169.606337169070\n    test 676 line 76 lat: -58.869445\n    test 677 line 76 lon: 132.036795\n    test 678 line 76 fb: 53.946549\n    test 679 line 76 lat2: -58.869445004289\n    test 680 line 76 lon2: 132.036794965086\n    test 681 line 76 azi2: 53.946549037654\n    test 682 line 76 lat2: -58.869445004289\n    test 683 line 76 lon2: 132.036794965086\n    test 684 line 76 azi2: 53.946549037654\n    test 685 line 77 lat: -45.547043\n    test 686 line 77 lon: 77.540664\n    test 687 line 77 fb: 126.917177\n    test 688 line 77 lat2: -45.547042598505\n    test 689 line 77 lon2: 77.540663933413\n    test 690 line 77 azi2: 126.917177154676\n    test 691 line 77 lat2: -45.547042598505\n    test 692 line 77 lon2: 77.540663933413\n    test 693 line 77 azi2: 126.917177154676\n    test 694 line 78 lat: 45.046385\n    test 695 line 78 lon: 149.382429\n    test 696 line 78 fb: 162.117474\n    test 697 line 78 lat2: 45.046384823604\n    test 698 line 78 lon2: 149.382428769460\n    test 699 line 78 azi2: 162.117474447248\n    test 700 line 78 lat2: 45.046384823604\n    test 701 line 78 lon2: 149.382428769460\n    test 702 line 78 azi2: 162.117474447248\n    test 703 line 79 lat: -74.853338\n    test 704 line 79 lon: 96.072097\n    test 705 line 79 fb: 85.425493\n    test 706 line 79 lat2: -74.853338324199\n    test 707 line 79 lon2: 96.072096720955\n    test 708 line 79 azi2: 85.425493305289\n    test 709 line 79 lat2: -74.853338324199\n    test 710 line 79 lon2: 96.072096720956  FAILED, KNOWN, expected 96.072096720955\n    test 711 line 79 azi2: 85.425493305289\n    test 712 line 80 lat: -13.205775\n    test 713 line 80 lon: 57.532285\n    test 714 line 80 fb: 122.358040\n    test 715 line 80 lat2: -13.205775181752\n    test 716 line 80 lon2: 57.532285422140\n    test 717 line 80 azi2: 122.358040028964\n    test 718 line 80 lat2: -13.205775181752\n    test 719 line 80 lon2: 57.532285422140\n    test 720 line 80 azi2: 122.358040028964\n    test 721 line 81 lat: -5.135864\n    test 722 line 81 lon: 115.048833\n    test 723 line 81 fb: 93.168400\n    test 724 line 81 lat2: -5.135863872649\n    test 725 line 81 lon2: 115.048832990097\n    test 726 line 81 azi2: 93.168399576996\n    test 727 line 81 lat2: -5.135863872649\n    test 728 line 81 lon2: 115.048832990097\n    test 729 line 81 azi2: 93.168399576996\n    test 730 line 82 lat: 13.355453\n    test 731 line 82 lon: 19.253946\n    test 732 line 82 fb: 143.568719\n    test 733 line 82 lat2: 13.355452912310\n    test 734 line 82 lon2: 19.253945880531\n    test 735 line 82 azi2: 143.568718864193\n    test 736 line 82 lat2: 13.355452912310\n    test 737 line 82 lon2: 19.253945880531\n    test 738 line 82 azi2: 143.568718864193\n    test 739 line 83 lat: 0.766426\n    test 740 line 83 lon: 147.485817\n    test 741 line 83 fb: 144.982274\n    test 742 line 83 lat2: 0.766426443892\n    test 743 line 83 lon2: 147.485816830606\n    test 744 line 83 azi2: 144.982273873382\n    test 745 line 83 lat2: 0.766426443892\n    test 746 line 83 lon2: 147.485816830606\n    test 747 line 83 azi2: 144.982273873382\n    test 748 line 84 lat: 10.228416\n    test 749 line 84 lon: 159.204118\n    test 750 line 84 fb: 173.111973\n    test 751 line 84 lat2: 10.228416314659\n    test 752 line 84 lon2: 159.204118025562\n    test 753 line 84 azi2: 173.111973027488\n    test 754 line 84 lat2: 10.228416314659\n    test 755 line 84 lon2: 159.204118025562\n    test 756 line 84 azi2: 173.111973027488\n    test 757 line 85 lat: 73.178089\n    test 758 line 85 lon: 131.762700\n    test 759 line 85 fb: 135.271161\n    test 760 line 85 lat2: 73.178089048974\n    test 761 line 85 lon2: 131.762699581940\n    test 762 line 85 azi2: 135.271161440271\n    test 763 line 85 lat2: 73.178089048974\n    test 764 line 85 lon2: 131.762699581941  FAILED, KNOWN, expected 131.762699581940\n    test 765 line 85 azi2: 135.271161440271\n    test 766 line 86 lat: -16.908717\n    test 767 line 86 lon: 149.240494\n    test 768 line 86 fb: 90.725082\n    test 769 line 86 lat2: -16.908717231321\n    test 770 line 86 lon2: 149.240493850337\n    test 771 line 86 azi2: 90.725082091932\n    test 772 line 86 lat2: -16.908717231321\n    test 773 line 86 lon2: 149.240493850337\n    test 774 line 86 azi2: 90.725082091932\n    test 775 line 87 lat: -23.440025\n    test 776 line 87 lon: 98.819595\n    test 777 line 87 fb: 154.388320\n    test 778 line 87 lat2: -23.440025289757\n    test 779 line 87 lon2: 98.819595131759\n    test 780 line 87 azi2: 154.388319751570\n    test 781 line 87 lat2: -23.440025289757\n    test 782 line 87 lon2: 98.819595131759\n    test 783 line 87 azi2: 154.388319751570\n    test 784 line 88 lat: -51.344465\n    test 785 line 88 lon: 54.299399\n    test 786 line 88 fb: 139.903236\n    test 787 line 88 lat2: -51.344465279371\n    test 788 line 88 lon2: 54.299399477396\n    test 789 line 88 azi2: 139.903236261795\n    test 790 line 88 lat2: -51.344465279371\n    test 791 line 88 lon2: 54.299399477396\n    test 792 line 88 azi2: 139.903236261795\n    test 793 line 89 lat: 33.922320\n    test 794 line 89 lon: 143.463070\n    test 795 line 89 fb: 132.788230\n    test 796 line 89 lat2: 33.922319712554\n    test 797 line 89 lon2: 143.463070326988\n    test 798 line 89 azi2: 132.788229856713\n    test 799 line 89 lat2: 33.922319712554\n    test 800 line 89 lon2: 143.463070326988\n    test 801 line 89 azi2: 132.788229856713\n    test 802 line 90 lat: -83.333068\n    test 803 line 90 lon: 177.611925\n    test 804 line 90 fb: 2.633769\n    test 805 line 90 lat2: -83.333068057524\n    test 806 line 90 lon2: 177.611924577958\n    test 807 line 90 azi2: 2.633768744582\n    test 808 line 90 lat2: -83.333068057524\n    test 809 line 90 lon2: 177.611924577958\n    test 810 line 90 azi2: 2.633768744582\n    test 811 line 91 lat: 20.587333\n    test 812 line 91 lon: 164.201962\n    test 813 line 91 fb: 166.991083\n    test 814 line 91 lat2: 20.587333492522\n    test 815 line 91 lon2: 164.201962479604\n    test 816 line 91 azi2: 166.991083245940\n    test 817 line 91 lat2: 20.587333492522\n    test 818 line 91 lon2: 164.201962479604\n    test 819 line 91 azi2: 166.991083245940\n    test 820 line 92 lat: 52.612815\n    test 821 line 92 lon: 110.766184\n    test 822 line 92 fb: 168.281486\n    test 823 line 92 lat2: 52.612815386144\n    test 824 line 92 lon2: 110.766184475279\n    test 825 line 92 azi2: 168.281485715811\n    test 826 line 92 lat2: 52.612815386144\n    test 827 line 92 lon2: 110.766184475279\n    test 828 line 92 azi2: 168.281485715811\n    test 829 line 93 lat: -41.681373\n    test 830 line 93 lon: 82.150183\n    test 831 line 93 fb: 107.012959\n    test 832 line 93 lat2: -41.681372899642\n    test 833 line 93 lon2: 82.150183233451\n    test 834 line 93 azi2: 107.012959072514\n    test 835 line 93 lat2: -41.681372899642\n    test 836 line 93 lon2: 82.150183233451\n    test 837 line 93 azi2: 107.012959072514\n    test 838 line 94 lat: 27.082807\n    test 839 line 94 lon: 171.332531\n    test 840 line 94 fb: 174.934340\n    test 841 line 94 lat2: 27.082807052702\n    test 842 line 94 lon2: 171.332530862401\n    test 843 line 94 azi2: 174.934339881142\n    test 844 line 94 lat2: 27.082807052702\n    test 845 line 94 lon2: 171.332530862401\n    test 846 line 94 azi2: 174.934339881142\n    test 847 line 95 lat: 57.992299\n    test 848 line 95 lon: 15.128357\n    test 849 line 95 fb: 62.342982\n    test 850 line 95 lat2: 57.992299464191\n    test 851 line 95 lon2: 15.128356773547\n    test 852 line 95 azi2: 62.342982084737\n    test 853 line 95 lat2: 57.992299464191\n    test 854 line 95 lon2: 15.128356773547\n    test 855 line 95 azi2: 62.342982084737\n    test 856 line 96 lat: -10.526000\n    test 857 line 96 lon: 33.778702\n    test 858 line 96 fb: 165.687804\n    test 859 line 96 lat2: -10.526000344959\n    test 860 line 96 lon2: 33.778701722506\n    test 861 line 96 azi2: 165.687803859941\n    test 862 line 96 lat2: -10.526000344959\n    test 863 line 96 lon2: 33.778701722506\n    test 864 line 96 azi2: 165.687803859941\n    test 865 line 97 lat: 25.802395\n    test 866 line 97 lon: 98.502531\n    test 867 line 97 fb: 97.837271\n    test 868 line 97 lat2: 25.802394934787\n    test 869 line 97 lon2: 98.502531199301\n    test 870 line 97 azi2: 97.837270592496\n    test 871 line 97 lat2: 25.802394934787\n    test 872 line 97 lon2: 98.502531199301\n    test 873 line 97 azi2: 97.837270592496\n    test 874 line 98 lat: 47.163255\n    test 875 line 98 lon: 156.720176\n    test 876 line 98 fb: 160.291022\n    test 877 line 98 lat2: 47.163255465769\n    test 878 line 98 lon2: 156.720176105542\n    test 879 line 98 azi2: 160.291021678921\n    test 880 line 98 lat2: 47.163255465769\n    test 881 line 98 lon2: 156.720176105542\n    test 882 line 98 azi2: 160.291021678921\n    test 883 line 99 lat: 47.932063\n    test 884 line 99 lon: 35.094714\n    test 885 line 99 fb: 137.545065\n    test 886 line 99 lat2: 47.932062978964\n    test 887 line 99 lon2: 35.094714092217\n    test 888 line 99 azi2: 137.545065115425\n    test 889 line 99 lat2: 47.932062978964\n    test 890 line 99 lon2: 35.094714092217\n    test 891 line 99 azi2: 137.545065115425\n    test 892 line 100 lat: -60.204340\n    test 893 line 100 lon: 117.726218\n    test 894 line 100 fb: 72.585011\n    test 895 line 100 lat2: -60.204339807984\n    test 896 line 100 lon2: 117.726217548610\n    test 897 line 100 azi2: 72.585010656772\n    test 898 line 100 lat2: -60.204339807984\n    test 899 line 100 lon2: 117.726217548610\n    test 900 line 100 azi2: 72.585010656772\n    test 901 line 101 lat: 35.247411\n    test 902 line 101 lon: 59.471562\n    test 903 line 101 fb: 81.179468\n    test 904 line 101 lat2: 35.247410984329\n    test 905 line 101 lon2: 59.471562388985\n    test 906 line 101 azi2: 81.179468094302\n    test 907 line 101 lat2: 35.247410984329\n    test 908 line 101 lon2: 59.471562388985\n    test 909 line 101 azi2: 81.179468094302\n    test 910 line 102 lat: 19.218268\n    test 911 line 102 lon: 165.507915\n    test 912 line 102 fb: 167.452074\n    test 913 line 102 lat2: 19.218268047706\n    test 914 line 102 lon2: 165.507915017643\n    test 915 line 102 azi2: 167.452074301867\n    test 916 line 102 lat2: 19.218268047706\n    test 917 line 102 lon2: 165.507915017643\n    test 918 line 102 azi2: 167.452074301867\n    test 919 line 103 lat: 55.428809\n    test 920 line 103 lon: 121.956541\n    test 921 line 103 fb: 154.501481\n    test 922 line 103 lat2: 55.428809300888\n    test 923 line 103 lon2: 121.956541206929\n    test 924 line 103 azi2: 154.501481394521\n    test 925 line 103 lat2: 55.428809300888\n    test 926 line 103 lon2: 121.956541206929\n    test 927 line 103 azi2: 154.501481394521\n    test 928 line 104 lat: 49.294374\n    test 929 line 104 lon: 119.661420\n    test 930 line 104 fb: 157.209489\n    test 931 line 104 lat2: 49.294374468687\n    test 932 line 104 lon2: 119.661419832789\n    test 933 line 104 azi2: 157.209488754087\n    test 934 line 104 lat2: 49.294374468687\n    test 935 line 104 lon2: 119.661419832789\n    test 936 line 104 azi2: 157.209488754087\n    test 937 line 105 lat: -32.534872\n    test 938 line 105 lon: 152.280610\n    test 939 line 105 fb: 45.281812\n    test 940 line 105 lat2: -32.534872085863\n    test 941 line 105 lon2: 152.280609797481\n    test 942 line 105 azi2: 45.281812386148\n    test 943 line 105 lat2: -32.534872085863\n    test 944 line 105 lon2: 152.280609797481\n    test 945 line 105 azi2: 45.281812386148\n    test 946 line 106 lat: -1.097899\n    test 947 line 106 lon: 104.697360\n    test 948 line 106 fb: 126.298489\n    test 949 line 106 lat2: -1.097899218947\n    test 950 line 106 lon2: 104.697359959629\n    test 951 line 106 azi2: 126.298488917783\n    test 952 line 106 lat2: -1.097899218947\n    test 953 line 106 lon2: 104.697359959629\n    test 954 line 106 azi2: 126.298488917783\n    test 955 line 107 lat: -18.034366\n    test 956 line 107 lon: 28.460388\n    test 957 line 107 fb: 129.520364\n    test 958 line 107 lat2: -18.034366293950\n    test 959 line 107 lon2: 28.460387638999\n    test 960 line 107 azi2: 129.520363751001\n    test 961 line 107 lat2: -18.034366293950\n    test 962 line 107 lon2: 28.460387638999\n    test 963 line 107 azi2: 129.520363751001\n    test 964 line 108 lat: 76.310833\n    test 965 line 108 lon: 80.110525\n    test 966 line 108 fb: 106.655922\n    test 967 line 108 lat2: 76.310832995825\n    test 968 line 108 lon2: 80.110524683625\n    test 969 line 108 azi2: 106.655921818336\n    test 970 line 108 lat2: 76.310832995825\n    test 971 line 108 lon2: 80.110524683625\n    test 972 line 108 azi2: 106.655921818336\n    test 973 line 109 lat: 39.838034\n    test 974 line 109 lon: 42.989610\n    test 975 line 109 fb: 69.695281\n    test 976 line 109 lat2: 39.838033717901\n    test 977 line 109 lon2: 42.989610477861\n    test 978 line 109 azi2: 69.695281464222\n    test 979 line 109 lat2: 39.838033717901\n    test 980 line 109 lon2: 42.989610477861\n    test 981 line 109 azi2: 69.695281464222\n    test 982 line 110 lat: -56.710166\n    test 983 line 110 lon: 125.242287\n    test 984 line 110 fb: 60.118756\n    test 985 line 110 lat2: -56.710165877845\n    test 986 line 110 lon2: 125.242287231675\n    test 987 line 110 azi2: 60.118756013168\n    test 988 line 110 lat2: -56.710165877845\n    test 989 line 110 lon2: 125.242287231675\n    test 990 line 110 azi2: 60.118756013168\n    test 991 line 111 lat: 55.796062\n    test 992 line 111 lon: 59.736599\n    test 993 line 111 fb: 73.536728\n    test 994 line 111 lat2: 55.796061639165\n    test 995 line 111 lon2: 59.736598787303\n    test 996 line 111 azi2: 73.536727826063\n    test 997 line 111 lat2: 55.796061639165\n    test 998 line 111 lon2: 59.736598787303\n    test 999 line 111 azi2: 73.536727826063\n    test 1000 line 112 lat: -36.553675\n    test 1001 line 112 lon: 38.656806\n    test 1002 line 112 fb: 134.414837\n    test 1003 line 112 lat2: -36.553675319553\n    test 1004 line 112 lon2: 38.656806212281\n    test 1005 line 112 azi2: 134.414836606696\n    test 1006 line 112 lat2: -36.553675319553\n    test 1007 line 112 lon2: 38.656806212281\n    test 1008 line 112 azi2: 134.414836606696\n    test 1009 line 113 lat: -36.798456\n    test 1010 line 113 lon: 163.588375\n    test 1011 line 113 fb: 147.324204\n    test 1012 line 113 lat2: -36.798455994877\n    test 1013 line 113 lon2: 163.588375017283\n    test 1014 line 113 azi2: 147.324204021436\n    test 1015 line 113 lat2: -36.798455994877\n    test 1016 line 113 lon2: 163.588375017283\n    test 1017 line 113 azi2: 147.324204021436\n    test 1018 line 114 lat: -15.952937\n    test 1019 line 114 lon: 55.126807\n    test 1020 line 114 fb: 134.743426\n    test 1021 line 114 lat2: -15.952937085211\n    test 1022 line 114 lon2: 55.126807113658\n    test 1023 line 114 azi2: 134.743426025963\n    test 1024 line 114 lat2: -15.952937085211\n    test 1025 line 114 lon2: 55.126807113658\n    test 1026 line 114 azi2: 134.743426025963\n    test 1027 line 115 lat: -34.573087\n    test 1028 line 115 lon: 69.304064\n    test 1029 line 115 fb: 111.515973\n    test 1030 line 115 lat2: -34.573086586710\n    test 1031 line 115 lon2: 69.304064202466\n    test 1032 line 115 azi2: 111.515973223076\n    test 1033 line 115 lat2: -34.573086586710\n    test 1034 line 115 lon2: 69.304064202466\n    test 1035 line 115 azi2: 111.515973223076\n    test 1036 line 116 lat: 26.643499\n    test 1037 line 116 lon: 1.500481\n    test 1038 line 116 fb: 7.958966\n    test 1039 line 116 lat2: 26.643498959841\n    test 1040 line 116 lon2: 1.500480924882\n    test 1041 line 116 azi2: 7.958966071178\n    test 1042 line 116 lat2: 26.643498959841\n    test 1043 line 116 lon2: 1.500480924882\n    test 1044 line 116 azi2: 7.958966071178\n    test 1045 line 117 lat: 60.891878\n    test 1046 line 117 lon: 91.543410\n    test 1047 line 117 fb: 92.273095\n    test 1048 line 117 lat2: 60.891878271763\n    test 1049 line 117 lon2: 91.543409983653\n    test 1050 line 117 azi2: 92.273095036246\n    test 1051 line 117 lat2: 60.891878271763\n    test 1052 line 117 lon2: 91.543409983653\n    test 1053 line 117 azi2: 92.273095036246\n    test 1054 line 118 lat: 64.148187\n    test 1055 line 118 lon: 136.552579\n    test 1056 line 118 fb: 147.193229\n    test 1057 line 118 lat2: 64.148186913822\n    test 1058 line 118 lon2: 136.552579389353\n    test 1059 line 118 azi2: 147.193228706030\n    test 1060 line 118 lat2: 64.148186913822\n    test 1061 line 118 lon2: 136.552579389353\n    test 1062 line 118 azi2: 147.193228706030\n    test 1063 line 119 lat: 62.311678\n    test 1064 line 119 lon: 39.238630\n    test 1065 line 119 fb: 53.785893\n    test 1066 line 119 lat2: 62.311677748693\n    test 1067 line 119 lon2: 39.238629619778\n    test 1068 line 119 azi2: 53.785893324444\n    test 1069 line 119 lat2: 62.311677748693\n    test 1070 line 119 lon2: 39.238629619778\n    test 1071 line 119 azi2: 53.785893324444\n    test 1072 line 120 lat: 27.239733\n    test 1073 line 120 lon: 136.649227\n    test 1074 line 120 fb: 162.935700\n    test 1075 line 120 lat2: 27.239733033115\n    test 1076 line 120 lon2: 136.649227320518\n    test 1077 line 120 azi2: 162.935700444146\n    test 1078 line 120 lat2: 27.239733033115\n    test 1079 line 120 lon2: 136.649227320518\n    test 1080 line 120 azi2: 162.935700444146\n    test 1081 line 121 lat: 6.562844\n    test 1082 line 121 lon: 170.159007\n    test 1083 line 121 fb: 174.851345\n    test 1084 line 121 lat2: 6.562844367534\n    test 1085 line 121 lon2: 170.159007094343\n    test 1086 line 121 azi2: 174.851345174583\n    test 1087 line 121 lat2: 6.562844367534\n    test 1088 line 121 lon2: 170.159007094343\n    test 1089 line 121 azi2: 174.851345174583\n    test 1090 line 122 lat: -29.537259\n    test 1091 line 122 lon: 105.350044\n    test 1092 line 122 fb: 141.393876\n    test 1093 line 122 lat2: -29.537259231420\n    test 1094 line 122 lon2: 105.350044044462\n    test 1095 line 122 azi2: 141.393876478962\n    test 1096 line 122 lat2: -29.537259231420\n    test 1097 line 122 lon2: 105.350044044462\n    test 1098 line 122 azi2: 141.393876478962\n    test 1099 line 123 lat: -66.447700\n    test 1100 line 123 lon: 83.741961\n    test 1101 line 123 fb: 129.422490\n    test 1102 line 123 lat2: -66.447699831143\n    test 1103 line 123 lon2: 83.741960628420\n    test 1104 line 123 azi2: 129.422490051758\n    test 1105 line 123 lat2: -66.447699831143\n    test 1106 line 123 lon2: 83.741960628420\n    test 1107 line 123 azi2: 129.422490051758\n    test 1108 line 124 lat: 56.926818\n    test 1109 line 124 lon: 20.197117\n    test 1110 line 124 fb: 37.960006\n    test 1111 line 124 lat2: 56.926817599968\n    test 1112 line 124 lon2: 20.197117058896\n    test 1113 line 124 azi2: 37.960006049295\n    test 1114 line 124 lat2: 56.926817599968\n    test 1115 line 124 lon2: 20.197117058896\n    test 1116 line 124 azi2: 37.960006049295\n    test 1117 line 125 lat: 55.018266\n    test 1118 line 125 lon: 83.735441\n    test 1119 line 125 fb: 130.766515\n    test 1120 line 125 lat2: 55.018265995959\n    test 1121 line 125 lon2: 83.735441278691\n    test 1122 line 125 azi2: 130.766514657995\n    test 1123 line 125 lat2: 55.018265995959\n    test 1124 line 125 lon2: 83.735441278691\n    test 1125 line 125 azi2: 130.766514657995\n    test 1126 line 126 lat: -78.131054\n    test 1127 line 126 lon: 56.098176\n    test 1128 line 126 fb: 127.132203\n    test 1129 line 126 lat2: -78.131053729786\n    test 1130 line 126 lon2: 56.098176359327  FAILED, KNOWN, expected 56.098176359326\n    test 1131 line 126 azi2: 127.132203471256  FAILED, KNOWN, expected 127.132203471257\n    test 1132 line 126 lat2: -78.131053729786\n    test 1133 line 126 lon2: 56.098176359326\n    test 1134 line 126 azi2: 127.132203471257\n    test 1135 line 127 lat: -18.223027\n    test 1136 line 127 lon: 86.221345\n    test 1137 line 127 fb: 114.875019\n    test 1138 line 127 lat2: -18.223027345294\n    test 1139 line 127 lon2: 86.221345156045\n    test 1140 line 127 azi2: 114.875019395396\n    test 1141 line 127 lat2: -18.223027345294\n    test 1142 line 127 lon2: 86.221345156045\n    test 1143 line 127 azi2: 114.875019395396\n    test 1144 line 128 lat: -16.100413\n    test 1145 line 128 lon: 54.195260\n    test 1146 line 128 fb: 126.748474\n    test 1147 line 128 lat2: -16.100412777565\n    test 1148 line 128 lon2: 54.195259657284\n    test 1149 line 128 azi2: 126.748473963924\n    test 1150 line 128 lat2: -16.100412777565\n    test 1151 line 128 lon2: 54.195259657284\n    test 1152 line 128 azi2: 126.748473963924\n    test 1153 line 129 lat: -15.192944\n    test 1154 line 129 lon: 85.057605\n    test 1155 line 129 fb: 133.468781\n    test 1156 line 129 lat2: -15.192944143354\n    test 1157 line 129 lon2: 85.057605312625\n    test 1158 line 129 azi2: 133.468780913302\n    test 1159 line 129 lat2: -15.192944143354\n    test 1160 line 129 lon2: 85.057605312625\n    test 1161 line 129 azi2: 133.468780913302\n    test 1162 line 130 lat: -1.279757\n    test 1163 line 130 lon: 93.430943\n    test 1164 line 130 fb: 128.545662\n    test 1165 line 130 lat2: -1.279756550061\n    test 1166 line 130 lon2: 93.430943123745\n    test 1167 line 130 azi2: 128.545661704820\n    test 1168 line 130 lat2: -1.279756550061\n    test 1169 line 130 lon2: 93.430943123745\n    test 1170 line 130 azi2: 128.545661704820\n    test 1171 line 131 lat: -29.465713\n    test 1172 line 131 lon: 79.050046\n    test 1173 line 131 fb: 109.482097\n    test 1174 line 131 lat2: -29.465712645249\n    test 1175 line 131 lon2: 79.050045796725\n    test 1176 line 131 azi2: 109.482097420926\n    test 1177 line 131 lat2: -29.465712645249\n    test 1178 line 131 lon2: 79.050045796725\n    test 1179 line 131 azi2: 109.482097420926\n    test 1180 line 132 lat: 31.819596\n    test 1181 line 132 lon: 88.251997\n    test 1182 line 132 fb: 91.173935\n    test 1183 line 132 lat2: 31.819596255581\n    test 1184 line 132 lon2: 88.251997328019\n    test 1185 line 132 azi2: 91.173935030538\n    test 1186 line 132 lat2: 31.819596255581\n    test 1187 line 132 lon2: 88.251997328019\n    test 1188 line 132 azi2: 91.173935030538\n    test 1189 line 133 lat: -63.260477\n    test 1190 line 133 lon: 96.535465\n    test 1191 line 133 fb: 84.208873\n    test 1192 line 133 lat2: -63.260477387265\n    test 1193 line 133 lon2: 96.535465277415\n    test 1194 line 133 azi2: 84.208873088521\n    test 1195 line 133 lat2: -63.260477387265\n    test 1196 line 133 lon2: 96.535465277415\n    test 1197 line 133 azi2: 84.208873088521\n    test 1198 line 134 lat: 12.908849\n    test 1199 line 134 lon: 116.734308\n    test 1200 line 134 fb: 110.313866\n    test 1201 line 134 lat2: 12.908849199388\n    test 1202 line 134 lon2: 116.734308245854\n    test 1203 line 134 azi2: 110.313865884978\n    test 1204 line 134 lat2: 12.908849199388\n    test 1205 line 134 lon2: 116.734308245854\n    test 1206 line 134 azi2: 110.313865884978\n    test 1207 line 135 lat: -73.345839\n    test 1208 line 135 lon: 99.753937\n    test 1209 line 135 fb: 89.074642\n    test 1210 line 135 lat2: -73.345839080078\n    test 1211 line 135 lon2: 99.753937450114\n    test 1212 line 135 azi2: 89.074641755279\n    test 1213 line 135 lat2: -73.345839080078\n    test 1214 line 135 lon2: 99.753937450114\n    test 1215 line 135 azi2: 89.074641755279\n    test 1216 line 136 lat: -58.777033\n    test 1217 line 136 lon: 161.963990\n    test 1218 line 136 fb: 21.998889\n    test 1219 line 136 lat2: -58.777033293076\n    test 1220 line 136 lon2: 161.963989905489\n    test 1221 line 136 azi2: 21.998888971548\n    test 1222 line 136 lat2: -58.777033293076\n    test 1223 line 136 lon2: 161.963989905489\n    test 1224 line 136 azi2: 21.998888971548\n    test 1225 line 137 lat: 5.093069\n    test 1226 line 137 lon: 53.687921\n    test 1227 line 137 fb: 124.015842\n    test 1228 line 137 lat2: 5.093068996651\n    test 1229 line 137 lon2: 53.687921438754\n    test 1230 line 137 azi2: 124.015842231205\n    test 1231 line 137 lat2: 5.093068996651\n    test 1232 line 137 lon2: 53.687921438754\n    test 1233 line 137 azi2: 124.015842231205\n    test 1234 line 138 lat: 35.659489\n    test 1235 line 138 lon: 111.729315\n    test 1236 line 138 fb: 133.697281\n    test 1237 line 138 lat2: 35.659488664161\n    test 1238 line 138 lon2: 111.729315023485\n    test 1239 line 138 azi2: 133.697281357224\n    test 1240 line 138 lat2: 35.659488664161\n    test 1241 line 138 lon2: 111.729315023485\n    test 1242 line 138 azi2: 133.697281357224\n    test 1243 line 139 lat: -24.330784\n    test 1244 line 139 lon: 71.666568\n    test 1245 line 139 fb: 106.278062\n    test 1246 line 139 lat2: -24.330783755994\n    test 1247 line 139 lon2: 71.666567863169  FAILED, KNOWN, expected 71.666567863170\n    test 1248 line 139 azi2: 106.278062394907\n    test 1249 line 139 lat2: -24.330783755994\n    test 1250 line 139 lon2: 71.666567863170\n    test 1251 line 139 azi2: 106.278062394907\n    test 1252 line 140 lat: -46.218742\n    test 1253 line 140 lon: 91.580078\n    test 1254 line 140 fb: 106.279111\n    test 1255 line 140 lat2: -46.218742288678\n    test 1256 line 140 lon2: 91.580077788700\n    test 1257 line 140 azi2: 106.279110700398\n    test 1258 line 140 lat2: -46.218742288678\n    test 1259 line 140 lon2: 91.580077788700\n    test 1260 line 140 azi2: 106.279110700399  FAILED, KNOWN, expected 106.279110700398\n    test 1261 line 141 lat: 50.143353\n    test 1262 line 141 lon: 101.322503\n    test 1263 line 141 fb: 154.314496\n    test 1264 line 141 lat2: 50.143352562968\n    test 1265 line 141 lon2: 101.322502529615\n    test 1266 line 141 azi2: 154.314496467352\n    test 1267 line 141 lat2: 50.143352562968\n    test 1268 line 141 lon2: 101.322502529615\n    test 1269 line 141 azi2: 154.314496467352\n    test 1270 line 142 lat: -16.604376\n    test 1271 line 142 lon: 134.279201\n    test 1272 line 142 fb: 106.895990\n    test 1273 line 142 lat2: -16.604375537699\n    test 1274 line 142 lon2: 134.279201209117\n    test 1275 line 142 azi2: 106.895989785632\n    test 1276 line 142 lat2: -16.604375537699\n    test 1277 line 142 lon2: 134.279201209117\n    test 1278 line 142 azi2: 106.895989785632\n    test 1279 line 143 lat: 54.031290\n    test 1280 line 143 lon: 144.862702\n    test 1281 line 143 fb: 152.937010\n    test 1282 line 143 lat2: 54.031289901242\n    test 1283 line 143 lon2: 144.862701667601\n    test 1284 line 143 azi2: 152.937009701639\n    test 1285 line 143 lat2: 54.031289901242\n    test 1286 line 143 lon2: 144.862701667601\n    test 1287 line 143 azi2: 152.937009701639\n    test 1288 line 144 lat: 0.616911\n    test 1289 line 144 lon: 110.974662\n    test 1290 line 144 fb: 115.206118\n    test 1291 line 144 lat2: 0.616910921892\n    test 1292 line 144 lon2: 110.974662272005\n    test 1293 line 144 azi2: 115.206118431862\n    test 1294 line 144 lat2: 0.616910921892\n    test 1295 line 144 lon2: 110.974662272005\n    test 1296 line 144 azi2: 115.206118431862\n    test 1297 line 145 lat: -6.243779\n    test 1298 line 145 lon: 175.658895\n    test 1299 line 145 fb: 177.520147\n    test 1300 line 145 lat2: -6.243779047728\n    test 1301 line 145 lon2: 175.658894820006\n    test 1302 line 145 azi2: 177.520147377315\n    test 1303 line 145 lat2: -6.243779047728\n    test 1304 line 145 lon2: 175.658894820006\n    test 1305 line 145 azi2: 177.520147377315\n    test 1306 line 146 lat: -70.416699\n    test 1307 line 146 lon: 169.642468\n    test 1308 line 146 fb: 11.978943\n    test 1309 line 146 lat2: -70.416698815769\n    test 1310 line 146 lon2: 169.642468357274\n    test 1311 line 146 azi2: 11.978943348082\n    test 1312 line 146 lat2: -70.416698815769\n    test 1313 line 146 lon2: 169.642468357274\n    test 1314 line 146 azi2: 11.978943348082\n    test 1315 line 147 lat: 19.558617\n    test 1316 line 147 lon: 88.645709\n    test 1317 line 147 fb: 113.578814\n    test 1318 line 147 lat2: 19.558616692495\n    test 1319 line 147 lon2: 88.645708539223\n    test 1320 line 147 azi2: 113.578814362497\n    test 1321 line 147 lat2: 19.558616692495\n    test 1322 line 147 lon2: 88.645708539223\n    test 1323 line 147 azi2: 113.578814362497\n    test 1324 line 148 lat: -23.555114\n    test 1325 line 148 lon: 162.457529\n    test 1326 line 148 fb: 147.104331\n    test 1327 line 148 lat2: -23.555114207892\n    test 1328 line 148 lon2: 162.457529431664\n    test 1329 line 148 azi2: 147.104330772141\n    test 1330 line 148 lat2: -23.555114207892\n    test 1331 line 148 lon2: 162.457529431664\n    test 1332 line 148 azi2: 147.104330772141\n    test 1333 line 149 lat: -51.275738\n    test 1334 line 149 lon: 103.747943\n    test 1335 line 149 fb: 115.235374\n    test 1336 line 149 lat2: -51.275737933996\n    test 1337 line 149 lon2: 103.747943009536\n    test 1338 line 149 azi2: 115.235373813929\n    test 1339 line 149 lat2: -51.275737933996\n    test 1340 line 149 lon2: 103.747943009536\n    test 1341 line 149 azi2: 115.235373813929\n    test 1342 line 150 lat: 25.374602\n    test 1343 line 150 lon: 143.135783\n    test 1344 line 150 fb: 126.548735\n    test 1345 line 150 lat2: 25.374601552526\n    test 1346 line 150 lon2: 143.135783283239\n    test 1347 line 150 azi2: 126.548735117003\n    test 1348 line 150 lat2: 25.374601552526\n    test 1349 line 150 lon2: 143.135783283239\n    test 1350 line 150 azi2: 126.548735117003\n    test 1351 line 151 lat: 23.967825\n    test 1352 line 151 lon: 153.611116\n    test 1353 line 151 fb: 149.714116\n    test 1354 line 151 lat2: 23.967824782385\n    test 1355 line 151 lon2: 153.611115762587\n    test 1356 line 151 azi2: 149.714116426025\n    test 1357 line 151 lat2: 23.967824782385\n    test 1358 line 151 lon2: 153.611115762587\n    test 1359 line 151 azi2: 149.714116426025\n    test 1360 line 152 lat: -22.787507\n    test 1361 line 152 lon: 111.258647\n    test 1362 line 152 fb: 86.335100\n    test 1363 line 152 lat2: -22.787506689568\n    test 1364 line 152 lon2: 111.258646767306\n    test 1365 line 152 azi2: 86.335099650483\n    test 1366 line 152 lat2: -22.787506689568\n    test 1367 line 152 lon2: 111.258646767306\n    test 1368 line 152 azi2: 86.335099650483\n    test 1369 line 153 lat: -59.789842\n    test 1370 line 153 lon: 114.054983\n    test 1371 line 153 fb: 75.612605\n    test 1372 line 153 lat2: -59.789841532294\n    test 1373 line 153 lon2: 114.054983422255\n    test 1374 line 153 azi2: 75.612605242726\n    test 1375 line 153 lat2: -59.789841532294\n    test 1376 line 153 lon2: 114.054983422255\n    test 1377 line 153 azi2: 75.612605242726\n    test 1378 line 154 lat: -2.802505\n    test 1379 line 154 lon: 126.245955\n    test 1380 line 154 fb: 150.100576\n    test 1381 line 154 lat2: -2.802505438545\n    test 1382 line 154 lon2: 126.245955176418\n    test 1383 line 154 azi2: 150.100575968176\n    test 1384 line 154 lat2: -2.802505438545\n    test 1385 line 154 lon2: 126.245955176418\n    test 1386 line 154 azi2: 150.100575968176\n    test 1387 line 155 lat: 35.735653\n    test 1388 line 155 lon: 102.768725\n    test 1389 line 155 fb: 99.024702\n    test 1390 line 155 lat2: 35.735653026165\n    test 1391 line 155 lon2: 102.768725495110\n    test 1392 line 155 azi2: 99.024701978369\n    test 1393 line 155 lat2: 35.735653026165\n    test 1394 line 155 lon2: 102.768725495110\n    test 1395 line 155 azi2: 99.024701978369\n    test 1396 line 156 lat: 15.906682\n    test 1397 line 156 lon: 117.446654\n    test 1398 line 156 fb: 130.449965\n    test 1399 line 156 lat2: 15.906681603252\n    test 1400 line 156 lon2: 117.446653873860\n    test 1401 line 156 azi2: 130.449965412147\n    test 1402 line 156 lat2: 15.906681603252\n    test 1403 line 156 lon2: 117.446653873860\n    test 1404 line 156 azi2: 130.449965412147\n    test 1405 line 157 lat: -54.375988\n    test 1406 line 157 lon: 33.243363\n    test 1407 line 157 fb: 144.361175\n    test 1408 line 157 lat2: -54.375987804166\n    test 1409 line 157 lon2: 33.243362594038\n    test 1410 line 157 azi2: 144.361175098783\n    test 1411 line 157 lat2: -54.375987804166\n    test 1412 line 157 lon2: 33.243362594038\n    test 1413 line 157 azi2: 144.361175098783\n    test 1414 line 158 lat: 3.588251\n    test 1415 line 158 lon: 156.659583\n    test 1416 line 158 fb: 112.153293\n    test 1417 line 158 lat2: 3.588250783960\n    test 1418 line 158 lon2: 156.659583234995\n    test 1419 line 158 azi2: 112.153293017228\n    test 1420 line 158 lat2: 3.588250783960\n    test 1421 line 158 lon2: 156.659583234995\n    test 1422 line 158 azi2: 112.153293017228\n    test 1423 line 159 lat: -51.719977\n    test 1424 line 159 lon: 134.141061\n    test 1425 line 159 fb: 129.170451\n    test 1426 line 159 lat2: -51.719977004790\n    test 1427 line 159 lon2: 134.141060992499\n    test 1428 line 159 azi2: 129.170451102958\n    test 1429 line 159 lat2: -51.719977004790\n    test 1430 line 159 lon2: 134.141060992499\n    test 1431 line 159 azi2: 129.170451102958\n    test 1432 line 160 lat: 22.935153\n    test 1433 line 160 lon: 109.461291\n    test 1434 line 160 fb: 120.676556\n    test 1435 line 160 lat2: 22.935153219965\n    test 1436 line 160 lon2: 109.461291078917\n    test 1437 line 160 azi2: 120.676555897336\n    test 1438 line 160 lat2: 22.935153219965\n    test 1439 line 160 lon2: 109.461291078917\n    test 1440 line 160 azi2: 120.676555897336\n    test 1441 line 161 lat: -5.314690\n    test 1442 line 161 lon: 70.995225\n    test 1443 line 161 fb: 129.681273\n    test 1444 line 161 lat2: -5.314689990173\n    test 1445 line 161 lon2: 70.995224692450\n    test 1446 line 161 azi2: 129.681272635794\n    test 1447 line 161 lat2: -5.314689990173\n    test 1448 line 161 lon2: 70.995224692450\n    test 1449 line 161 azi2: 129.681272635794\n    test 1450 line 162 lat: 49.147134\n    test 1451 line 162 lon: 16.182514\n    test 1452 line 162 fb: 38.926644\n    test 1453 line 162 lat2: 49.147133873971\n    test 1454 line 162 lon2: 16.182514450690\n    test 1455 line 162 azi2: 38.926644196248\n    test 1456 line 162 lat2: 49.147133873971\n    test 1457 line 162 lon2: 16.182514450690\n    test 1458 line 162 azi2: 38.926644196248\n    test 1459 line 163 lat: -55.079363\n    test 1460 line 163 lon: 93.170898\n    test 1461 line 163 fb: 97.017492\n    test 1462 line 163 lat2: -55.079363368717\n    test 1463 line 163 lon2: 93.170898482121\n    test 1464 line 163 azi2: 97.017491592293\n    test 1465 line 163 lat2: -55.079363368717\n    test 1466 line 163 lon2: 93.170898482121\n    test 1467 line 163 azi2: 97.017491592293\n    test 1468 line 164 lat: 26.410771\n    test 1469 line 164 lon: 109.934003\n    test 1470 line 164 fb: 103.660846\n    test 1471 line 164 lat2: 26.410770923895\n    test 1472 line 164 lon2: 109.934003168641\n    test 1473 line 164 azi2: 103.660846029906\n    test 1474 line 164 lat2: 26.410770923895\n    test 1475 line 164 lon2: 109.934003168641\n    test 1476 line 164 azi2: 103.660846029906\n    test 1477 line 165 lat: -2.539670\n    test 1478 line 165 lon: 138.682325\n    test 1479 line 165 fb: 100.016568\n    test 1480 line 165 lat2: -2.539669792389\n    test 1481 line 165 lon2: 138.682325493918\n    test 1482 line 165 azi2: 100.016568432752\n    test 1483 line 165 lat2: -2.539669792389\n    test 1484 line 165 lon2: 138.682325493918\n    test 1485 line 165 azi2: 100.016568432752\n    test 1486 line 166 lat: 10.563299\n    test 1487 line 166 lon: 50.532119\n    test 1488 line 166 fb: 126.356066\n    test 1489 line 166 lat2: 10.563299452649\n    test 1490 line 166 lon2: 50.532119480076\n    test 1491 line 166 azi2: 126.356065708364\n    test 1492 line 166 lat2: 10.563299452649\n    test 1493 line 166 lon2: 50.532119480076\n    test 1494 line 166 azi2: 126.356065708364\n    test 1495 line 167 lat: 51.443871\n    test 1496 line 167 lon: 88.799162\n    test 1497 line 167 fb: 145.239198\n    test 1498 line 167 lat2: 51.443871023711\n    test 1499 line 167 lon2: 88.799161779253\n    test 1500 line 167 azi2: 145.239198135633\n    test 1501 line 167 lat2: 51.443871023711\n    test 1502 line 167 lon2: 88.799161779253\n    test 1503 line 167 azi2: 145.239198135632  FAILED, KNOWN, expected 145.239198135633\n    test 1504 line 168 lat: -80.240756\n    test 1505 line 168 lon: 170.591261\n    test 1506 line 168 fb: 19.402427\n    test 1507 line 168 lat2: -80.240756380896\n    test 1508 line 168 lon2: 170.591260542730\n    test 1509 line 168 azi2: 19.402427357239\n    test 1510 line 168 lat2: -80.240756380896\n    test 1511 line 168 lon2: 170.591260542730\n    test 1512 line 168 azi2: 19.402427357239\n    test 1513 line 169 lat: 51.976040\n    test 1514 line 169 lon: 165.045244\n    test 1515 line 169 fb: 167.962110\n    test 1516 line 169 lat2: 51.976039799074\n    test 1517 line 169 lon2: 165.045244285456\n    test 1518 line 169 azi2: 167.962110268433\n    test 1519 line 169 lat2: 51.976039799074\n    test 1520 line 169 lon2: 165.045244285456\n    test 1521 line 169 azi2: 167.962110268433\n    test 1522 line 170 lat: 29.365655\n    test 1523 line 170 lon: 91.354349\n    test 1524 line 170 fb: 135.101279\n    test 1525 line 170 lat2: 29.365654873524\n    test 1526 line 170 lon2: 91.354349089561\n    test 1527 line 170 azi2: 135.101278715212\n    test 1528 line 170 lat2: 29.365654873524\n    test 1529 line 170 lon2: 91.354349089561\n    test 1530 line 170 azi2: 135.101278715212\n    test 1531 line 171 lat: 61.745486\n    test 1532 line 171 lon: 142.333199\n    test 1533 line 171 fb: 139.666209\n    test 1534 line 171 lat2: 61.745485817368\n    test 1535 line 171 lon2: 142.333198773096\n    test 1536 line 171 azi2: 139.666208757008\n    test 1537 line 171 lat2: 61.745485817368\n    test 1538 line 171 lon2: 142.333198773096\n    test 1539 line 171 azi2: 139.666208757008\n    test 1540 line 172 lat: 13.414523\n    test 1541 line 172 lon: 39.322993\n    test 1542 line 172 fb: 144.276516\n    test 1543 line 172 lat2: 13.414522997032\n    test 1544 line 172 lon2: 39.322992706733\n    test 1545 line 172 azi2: 144.276515542083\n    test 1546 line 172 lat2: 13.414522997032\n    test 1547 line 172 lon2: 39.322992706733\n    test 1548 line 172 azi2: 144.276515542083\n    test 1549 line 173 lat: -49.831353\n    test 1550 line 173 lon: 72.426738\n    test 1551 line 173 fb: 126.251620\n    test 1552 line 173 lat2: -49.831353332108\n    test 1553 line 173 lon2: 72.426737728887\n    test 1554 line 173 azi2: 126.251620412456\n    test 1555 line 173 lat2: -49.831353332108\n    test 1556 line 173 lon2: 72.426737728887\n    test 1557 line 173 azi2: 126.251620412456\n    test 1558 line 174 lat: 1.822589\n    test 1559 line 174 lon: 53.589208\n    test 1560 line 174 fb: 97.925176\n    test 1561 line 174 lat2: 1.822589208021\n    test 1562 line 174 lon2: 53.589207810481\n    test 1563 line 174 azi2: 97.925176229124\n    test 1564 line 174 lat2: 1.822589208021\n    test 1565 line 174 lon2: 53.589207810481\n    test 1566 line 174 azi2: 97.925176229124\n    test 1567 line 175 lat: -7.987194\n    test 1568 line 175 lon: 49.318809\n    test 1569 line 175 fb: 128.386595\n    test 1570 line 175 lat2: -7.987193900849\n    test 1571 line 175 lon2: 49.318809304076\n    test 1572 line 175 azi2: 128.386594768748\n    test 1573 line 175 lat2: -7.987193900849\n    test 1574 line 175 lon2: 49.318809304075  FAILED, KNOWN, expected 49.318809304076\n    test 1575 line 175 azi2: 128.386594768748\n    test 1576 line 176 lat: -56.807375\n    test 1577 line 176 lon: 4.521802\n    test 1578 line 176 fb: 176.806063\n    test 1579 line 176 lat2: -56.807375049864\n    test 1580 line 176 lon2: 4.521801986353\n    test 1581 line 176 azi2: 176.806062785470\n    test 1582 line 176 lat2: -56.807375049864\n    test 1583 line 176 lon2: 4.521801986353\n    test 1584 line 176 azi2: 176.806062785470\n    test 1585 line 177 lat: -25.969834\n    test 1586 line 177 lon: 64.903749\n    test 1587 line 177 fb: 124.103844\n    test 1588 line 177 lat2: -25.969833883721\n    test 1589 line 177 lon2: 64.903749477059\n    test 1590 line 177 azi2: 124.103844353942\n    test 1591 line 177 lat2: -25.969833883721\n    test 1592 line 177 lon2: 64.903749477059\n    test 1593 line 177 azi2: 124.103844353942\n    test 1594 line 178 lat: 32.807360\n    test 1595 line 178 lon: 65.107962\n    test 1596 line 178 fb: 124.577990\n    test 1597 line 178 lat2: 32.807359742667\n    test 1598 line 178 lon2: 65.107961864983\n    test 1599 line 178 azi2: 124.577990419073\n    test 1600 line 178 lat2: 32.807359742667\n    test 1601 line 178 lon2: 65.107961864983\n    test 1602 line 178 azi2: 124.577990419073\n    test 1603 line 179 lat: -21.552138\n    test 1604 line 179 lon: 102.466022\n    test 1605 line 179 fb: 109.640197\n    test 1606 line 179 lat2: -21.552137872353\n    test 1607 line 179 lon2: 102.466021945025\n    test 1608 line 179 azi2: 109.640197455958\n    test 1609 line 179 lat2: -21.552137872353\n    test 1610 line 179 lon2: 102.466021945025\n    test 1611 line 179 azi2: 109.640197455958\n    test 1612 line 180 lat: -26.271741\n    test 1613 line 180 lon: 158.321581\n    test 1614 line 180 fb: 165.993649\n    test 1615 line 180 lat2: -26.271741383677\n    test 1616 line 180 lon2: 158.321581345077\n    test 1617 line 180 azi2: 165.993649158304  FAILED, KNOWN, expected 165.993649158305\n    test 1618 line 180 lat2: -26.271741383677\n    test 1619 line 180 lon2: 158.321581345077\n    test 1620 line 180 azi2: 165.993649158305\n    test 1621 line 181 lat: 41.023069\n    test 1622 line 181 lon: 155.562542\n    test 1623 line 181 fb: 153.407414\n    test 1624 line 181 lat2: 41.023069113496\n    test 1625 line 181 lon2: 155.562542134179\n    test 1626 line 181 azi2: 153.407413608014\n    test 1627 line 181 lat2: 41.023069113496\n    test 1628 line 181 lon2: 155.562542134179\n    test 1629 line 181 azi2: 153.407413608014\n    test 1630 line 182 lat: 16.445471\n    test 1631 line 182 lon: 165.261461\n    test 1632 line 182 fb: 165.424806\n    test 1633 line 182 lat2: 16.445470954340\n    test 1634 line 182 lon2: 165.261461448873\n    test 1635 line 182 azi2: 165.424806257119\n    test 1636 line 182 lat2: 16.445470954340\n    test 1637 line 182 lon2: 165.261461448873\n    test 1638 line 182 azi2: 165.424806257119\n    test 1639 line 183 lat: -3.222107\n    test 1640 line 183 lon: 84.129727\n    test 1641 line 183 fb: 154.083851\n    test 1642 line 183 lat2: -3.222107095788\n    test 1643 line 183 lon2: 84.129726900596\n    test 1644 line 183 azi2: 154.083851495688\n    test 1645 line 183 lat2: -3.222107095788\n    test 1646 line 183 lon2: 84.129726900596\n    test 1647 line 183 azi2: 154.083851495688\n    test 1648 line 184 lat: 7.811710\n    test 1649 line 184 lon: 123.143308\n    test 1650 line 184 fb: 123.998106\n    test 1651 line 184 lat2: 7.811709739638\n    test 1652 line 184 lon2: 123.143308309660\n    test 1653 line 184 azi2: 123.998105582525\n    test 1654 line 184 lat2: 7.811709739638\n    test 1655 line 184 lon2: 123.143308309660\n    test 1656 line 184 azi2: 123.998105582525\n    test 1657 line 185 lat: -45.235922\n    test 1658 line 185 lon: 129.419283\n    test 1659 line 185 fb: 91.493406\n    test 1660 line 185 lat2: -45.235922276879\n    test 1661 line 185 lon2: 129.419282696458\n    test 1662 line 185 azi2: 91.493405946969  FAILED, KNOWN, expected 91.493405946970\n    test 1663 line 185 lat2: -45.235922276879\n    test 1664 line 185 lon2: 129.419282696458\n    test 1665 line 185 azi2: 91.493405946970\n    test 1666 line 186 lat: -43.047563\n    test 1667 line 186 lon: 121.565541\n    test 1668 line 186 fb: 99.850543\n    test 1669 line 186 lat2: -43.047563118772\n    test 1670 line 186 lon2: 121.565540573788\n    test 1671 line 186 azi2: 99.850542926816\n    test 1672 line 186 lat2: -43.047563118772\n    test 1673 line 186 lon2: 121.565540573788\n    test 1674 line 186 azi2: 99.850542926816\n    test 1675 line 187 lat: -22.881002\n    test 1676 line 187 lon: 159.765030\n    test 1677 line 187 fb: 60.474878\n    test 1678 line 187 lat2: -22.881001889671\n    test 1679 line 187 lon2: 159.765030106650\n    test 1680 line 187 azi2: 60.474878214384\n    test 1681 line 187 lat2: -22.881001889671\n    test 1682 line 187 lon2: 159.765030106650\n    test 1683 line 187 azi2: 60.474878214384\n    test 1684 line 188 lat: -15.011946\n    test 1685 line 188 lon: 55.594746\n    test 1686 line 188 fb: 121.838839\n    test 1687 line 188 lat2: -15.011946251300\n    test 1688 line 188 lon2: 55.594746074667\n    test 1689 line 188 azi2: 121.838839080255\n    test 1690 line 188 lat2: -15.011946251300\n    test 1691 line 188 lon2: 55.594746074667\n    test 1692 line 188 azi2: 121.838839080255\n    test 1693 line 189 lat: -29.011142\n    test 1694 line 189 lon: 0.856639\n    test 1695 line 189 fb: 178.744943\n    test 1696 line 189 lat2: -29.011142183887\n    test 1697 line 189 lon2: 0.856639457160\n    test 1698 line 189 azi2: 178.744943180805\n    test 1699 line 189 lat2: -29.011142183887\n    test 1700 line 189 lon2: 0.856639457160\n    test 1701 line 189 azi2: 178.744943180805\n    test 1702 line 190 lat: -0.353001\n    test 1703 line 190 lon: 48.401255\n    test 1704 line 190 fb: 95.612551\n    test 1705 line 190 lat2: -0.353000909367\n    test 1706 line 190 lon2: 48.401254652488  FAILED, KNOWN, expected 48.401254652487\n    test 1707 line 190 azi2: 95.612551044908\n    test 1708 line 190 lat2: -0.353000909367\n    test 1709 line 190 lon2: 48.401254652487\n    test 1710 line 190 azi2: 95.612551044908\n    test 1711 line 191 lat: 18.843341\n    test 1712 line 191 lon: 105.405456\n    test 1713 line 191 fb: 145.215722\n    test 1714 line 191 lat2: 18.843340962664\n    test 1715 line 191 lon2: 105.405456105476\n    test 1716 line 191 azi2: 145.215722323742\n    test 1717 line 191 lat2: 18.843340962664\n    test 1718 line 191 lon2: 105.405456105476\n    test 1719 line 191 azi2: 145.215722323742\n    test 1720 line 192 lat: 19.672225\n    test 1721 line 192 lon: 64.132980\n    test 1722 line 192 fb: 131.894863\n    test 1723 line 192 lat2: 19.672224913225\n    test 1724 line 192 lon2: 64.132979510420\n    test 1725 line 192 azi2: 131.894863434272\n    test 1726 line 192 lat2: 19.672224913225\n    test 1727 line 192 lon2: 64.132979510420\n    test 1728 line 192 azi2: 131.894863434272\n    test 1729 line 193 lat: -44.315074\n    test 1730 line 193 lon: 132.711860\n    test 1731 line 193 fb: 57.236875\n    test 1732 line 193 lat2: -44.315073617889\n    test 1733 line 193 lon2: 132.711860436437\n    test 1734 line 193 azi2: 57.236875169148\n    test 1735 line 193 lat2: -44.315073617889\n    test 1736 line 193 lon2: 132.711860436437\n    test 1737 line 193 azi2: 57.236875169148\n    test 1738 line 194 lat: 71.956294\n    test 1739 line 194 lon: 23.707587\n    test 1740 line 194 fb: 28.235947\n    test 1741 line 194 lat2: 71.956293555096\n    test 1742 line 194 lon2: 23.707587498943\n    test 1743 line 194 azi2: 28.235946630177\n    test 1744 line 194 lat2: 71.956293555096\n    test 1745 line 194 lon2: 23.707587498943\n    test 1746 line 194 azi2: 28.235946630177\n    test 1747 line 195 lat: -1.372652\n    test 1748 line 195 lon: 37.704231\n    test 1749 line 195 fb: 92.737862\n    test 1750 line 195 lat2: -1.372652195171\n    test 1751 line 195 lon2: 37.704230798676\n    test 1752 line 195 azi2: 92.737862264368\n    test 1753 line 195 lat2: -1.372652195171\n    test 1754 line 195 lon2: 37.704230798676\n    test 1755 line 195 azi2: 92.737862264368\n    test 1756 line 196 lat: 32.377148\n    test 1757 line 196 lon: 148.638709\n    test 1758 line 196 fb: 164.415210\n    test 1759 line 196 lat2: 32.377147634362\n    test 1760 line 196 lon2: 148.638709383249\n    test 1761 line 196 azi2: 164.415210005459\n    test 1762 line 196 lat2: 32.377147634362\n    test 1763 line 196 lon2: 148.638709383249\n    test 1764 line 196 azi2: 164.415210005459\n    test 1765 line 197 lat: 77.876832\n    test 1766 line 197 lon: 86.074591\n    test 1767 line 197 fb: 93.017705\n    test 1768 line 197 lat2: 77.876831887051\n    test 1769 line 197 lon2: 86.074590642864\n    test 1770 line 197 azi2: 93.017704501543\n    test 1771 line 197 lat2: 77.876831887051\n    test 1772 line 197 lon2: 86.074590642864\n    test 1773 line 197 azi2: 93.017704501543\n    test 1774 line 198 lat: -7.405195\n    test 1775 line 198 lon: 11.962469\n    test 1776 line 198 fb: 123.788484\n    test 1777 line 198 lat2: -7.405194804958\n    test 1778 line 198 lon2: 11.962468510681\n    test 1779 line 198 azi2: 123.788484407208\n    test 1780 line 198 lat2: -7.405194804958\n    test 1781 line 198 lon2: 11.962468510681\n    test 1782 line 198 azi2: 123.788484407208\n    test 1783 line 199 lat: -75.001311\n    test 1784 line 199 lon: 173.334144\n    test 1785 line 199 fb: 8.916523\n    test 1786 line 199 lat2: -75.001310556015\n    test 1787 line 199 lon2: 173.334144385512\n    test 1788 line 199 azi2: 8.916523271572\n    test 1789 line 199 lat2: -75.001310556015\n    test 1790 line 199 lon2: 173.334144385512\n    test 1791 line 199 azi2: 8.916523271572\n    test 1792 line 200 lat: -33.145967\n    test 1793 line 200 lon: 32.349241\n    test 1794 line 200 fb: 154.035798\n    test 1795 line 200 lat2: -33.145966631435\n    test 1796 line 200 lon2: 32.349240627001\n    test 1797 line 200 azi2: 154.035798269631\n    test 1798 line 200 lat2: -33.145966631435\n    test 1799 line 200 lon2: 32.349240627001\n    test 1800 line 200 azi2: 154.035798269631\n    test 1801 line 201 lat: 32.938605\n    test 1802 line 201 lon: 98.042857\n    test 1803 line 201 fb: 124.954750\n    test 1804 line 201 lat2: 32.938605083648\n    test 1805 line 201 lon2: 98.042857137838\n    test 1806 line 201 azi2: 124.954750401990\n    test 1807 line 201 lat2: 32.938605083648\n    test 1808 line 201 lon2: 98.042857137838\n    test 1809 line 201 azi2: 124.954750401990\n    test 1810 line 202 lat: 18.924315\n    test 1811 line 202 lon: 20.712136\n    test 1812 line 202 fb: 118.058457\n    test 1813 line 202 lat2: 18.924314631117\n    test 1814 line 202 lon2: 20.712135699713\n    test 1815 line 202 azi2: 118.058457437327\n    test 1816 line 202 lat2: 18.924314631117\n    test 1817 line 202 lon2: 20.712135699713\n    test 1818 line 202 azi2: 118.058457437327\n    test 1819 line 203 lat: 34.281652\n    test 1820 line 203 lon: 66.815398\n    test 1821 line 203 fb: 147.693080\n    test 1822 line 203 lat2: 34.281652047931\n    test 1823 line 203 lon2: 66.815398066147\n    test 1824 line 203 azi2: 147.693079659533\n    test 1825 line 203 lat2: 34.281652047931\n    test 1826 line 203 lon2: 66.815398066147\n    test 1827 line 203 azi2: 147.693079659533\n    test 1828 line 204 lat: -56.830635\n    test 1829 line 204 lon: 2.137046\n    test 1830 line 204 fb: 178.041562\n    test 1831 line 204 lat2: -56.830634769513\n    test 1832 line 204 lon2: 2.137046322217\n    test 1833 line 204 azi2: 178.041562126305\n    test 1834 line 204 lat2: -56.830634769513\n    test 1835 line 204 lon2: 2.137046322217\n    test 1836 line 204 azi2: 178.041562126305\n    test 1837 line 205 lat: -68.481893\n    test 1838 line 205 lon: 107.036720\n    test 1839 line 205 fb: 152.384477\n    test 1840 line 205 lat2: -68.481892540174\n    test 1841 line 205 lon2: 107.036720123074\n    test 1842 line 205 azi2: 152.384476595412\n    test 1843 line 205 lat2: -68.481892540174\n    test 1844 line 205 lon2: 107.036720123074\n    test 1845 line 205 azi2: 152.384476595412\n    test 1846 line 206 lat: -22.502042\n    test 1847 line 206 lon: 171.827566\n    test 1848 line 206 fb: 158.834328\n    test 1849 line 206 lat2: -22.502042312255\n    test 1850 line 206 lon2: 171.827566033608\n    test 1851 line 206 azi2: 158.834327972407\n    test 1852 line 206 lat2: -22.502042312255\n    test 1853 line 206 lon2: 171.827566033608\n    test 1854 line 206 azi2: 158.834327972407\n    test 1855 line 207 lat: -4.504199\n    test 1856 line 207 lon: 138.544338\n    test 1857 line 207 fb: 123.633526\n    test 1858 line 207 lat2: -4.504199404775\n    test 1859 line 207 lon2: 138.544338028736\n    test 1860 line 207 azi2: 123.633526406205\n    test 1861 line 207 lat2: -4.504199404775\n    test 1862 line 207 lon2: 138.544338028736\n    test 1863 line 207 azi2: 123.633526406205\n    test 1864 line 208 lat: -9.226343\n    test 1865 line 208 lon: 120.310050\n    test 1866 line 208 fb: 142.789186\n    test 1867 line 208 lat2: -9.226343110712\n    test 1868 line 208 lon2: 120.310050148004\n    test 1869 line 208 azi2: 142.789186422068\n    test 1870 line 208 lat2: -9.226343110712\n    test 1871 line 208 lon2: 120.310050148004\n    test 1872 line 208 azi2: 142.789186422068\n    test 1873 line 209 lat: -51.684044\n    test 1874 line 209 lon: 137.764140\n    test 1875 line 209 fb: 56.844891\n    test 1876 line 209 lat2: -51.684044075582\n    test 1877 line 209 lon2: 137.764139808689\n    test 1878 line 209 azi2: 56.844890846790\n    test 1879 line 209 lat2: -51.684044075582\n    test 1880 line 209 lon2: 137.764139808689\n    test 1881 line 209 azi2: 56.844890846790\n    test 1882 line 210 lat: 19.467357\n    test 1883 line 210 lon: 93.870087\n    test 1884 line 210 fb: 129.125491\n    test 1885 line 210 lat2: 19.467357090193\n    test 1886 line 210 lon2: 93.870087361293\n    test 1887 line 210 azi2: 129.125490840370\n    test 1888 line 210 lat2: 19.467357090193\n    test 1889 line 210 lon2: 93.870087361293\n    test 1890 line 210 azi2: 129.125490840370\n    test 1891 line 211 lat: 33.594608\n    test 1892 line 211 lon: 58.324143\n    test 1893 line 211 fb: 101.975372\n    test 1894 line 211 lat2: 33.594607695347\n    test 1895 line 211 lon2: 58.324143410893\n    test 1896 line 211 azi2: 101.975372004111\n    test 1897 line 211 lat2: 33.594607695347\n    test 1898 line 211 lon2: 58.324143410893\n    test 1899 line 211 azi2: 101.975372004111\n    test 1900 line 212 lat: -1.184701\n    test 1901 line 212 lon: 92.834285\n    test 1902 line 212 fb: 134.201097\n    test 1903 line 212 lat2: -1.184701423910\n    test 1904 line 212 lon2: 92.834285031504\n    test 1905 line 212 azi2: 134.201097217000\n    test 1906 line 212 lat2: -1.184701423910\n    test 1907 line 212 lon2: 92.834285031504\n    test 1908 line 212 azi2: 134.201097217000\n    test 1909 line 213 lat: 5.878639\n    test 1910 line 213 lon: 90.756173\n    test 1911 line 213 fb: 156.936699\n    test 1912 line 213 lat2: 5.878638801092\n    test 1913 line 213 lon2: 90.756172727682\n    test 1914 line 213 azi2: 156.936698928215\n    test 1915 line 213 lat2: 5.878638801092\n    test 1916 line 213 lon2: 90.756172727682\n    test 1917 line 213 azi2: 156.936698928215\n    test 1918 line 214 lat: 47.611646\n    test 1919 line 214 lon: 131.482218\n    test 1920 line 214 fb: 152.077667\n    test 1921 line 214 lat2: 47.611646039058\n    test 1922 line 214 lon2: 131.482217984255\n    test 1923 line 214 azi2: 152.077667341138\n    test 1924 line 214 lat2: 47.611646039058\n    test 1925 line 214 lon2: 131.482217984255\n    test 1926 line 214 azi2: 152.077667341138\n    test 1927 line 215 lat: 13.906234\n    test 1928 line 215 lon: 115.526238\n    test 1929 line 215 fb: 130.769627\n    test 1930 line 215 lat2: 13.906233945801\n    test 1931 line 215 lon2: 115.526238064488\n    test 1932 line 215 azi2: 130.769627488545\n    test 1933 line 215 lat2: 13.906233945801\n    test 1934 line 215 lon2: 115.526238064488\n    test 1935 line 215 azi2: 130.769627488545\n    test 1936 line 216 lat: 3.675485\n    test 1937 line 216 lon: 80.781862\n    test 1938 line 216 fb: 94.188426\n    test 1939 line 216 lat2: 3.675485213596\n    test 1940 line 216 lon2: 80.781861923838\n    test 1941 line 216 azi2: 94.188426367881\n    test 1942 line 216 lat2: 3.675485213596\n    test 1943 line 216 lon2: 80.781861923838\n    test 1944 line 216 azi2: 94.188426367881\n    test 1945 line 217 lat: 68.665600\n    test 1946 line 217 lon: 21.503123\n    test 1947 line 217 fb: 107.667810\n    test 1948 line 217 lat2: 68.665599857810\n    test 1949 line 217 lon2: 21.503123449290\n    test 1950 line 217 azi2: 107.667809564608\n    test 1951 line 217 lat2: 68.665599857810\n    test 1952 line 217 lon2: 21.503123449290\n    test 1953 line 217 azi2: 107.667809564608\n    test 1954 line 218 lat: -60.791732\n    test 1955 line 218 lon: 82.476063\n    test 1956 line 218 fb: 117.665953\n    test 1957 line 218 lat2: -60.791732218314\n    test 1958 line 218 lon2: 82.476062801971\n    test 1959 line 218 azi2: 117.665952598924\n    test 1960 line 218 lat2: -60.791732218314\n    test 1961 line 218 lon2: 82.476062801971\n    test 1962 line 218 azi2: 117.665952598924\n    test 1963 line 219 lat: -33.122376\n    test 1964 line 219 lon: 89.871476\n    test 1965 line 219 fb: 124.068098\n    test 1966 line 219 lat2: -33.122375734012\n    test 1967 line 219 lon2: 89.871476211443\n    test 1968 line 219 azi2: 124.068098444465\n    test 1969 line 219 lat2: -33.122375734012\n    test 1970 line 219 lon2: 89.871476211443\n    test 1971 line 219 azi2: 124.068098444465\n    test 1972 line 220 lat: -34.085934\n    test 1973 line 220 lon: 117.886549\n    test 1974 line 220 fb: 93.366647\n    test 1975 line 220 lat2: -34.085934037207\n    test 1976 line 220 lon2: 117.886548615401\n    test 1977 line 220 azi2: 93.366647127153\n    test 1978 line 220 lat2: -34.085934037207\n    test 1979 line 220 lon2: 117.886548615401\n    test 1980 line 220 azi2: 93.366647127153\n    test 1981 line 221 lat: -43.746811\n    test 1982 line 221 lon: 107.199939\n    test 1983 line 221 fb: 101.218435\n    test 1984 line 221 lat2: -43.746811413059\n    test 1985 line 221 lon2: 107.199938541143\n    test 1986 line 221 azi2: 101.218434581373\n    test 1987 line 221 lat2: -43.746811413059\n    test 1988 line 221 lon2: 107.199938541143\n    test 1989 line 221 azi2: 101.218434581373\n    test 1990 line 222 lat: -44.514857\n    test 1991 line 222 lon: 19.560361\n    test 1992 line 222 fb: 166.449925\n    test 1993 line 222 lat2: -44.514857277517\n    test 1994 line 222 lon2: 19.560360617266\n    test 1995 line 222 azi2: 166.449925135617\n    test 1996 line 222 lat2: -44.514857277517\n    test 1997 line 222 lon2: 19.560360617266\n    test 1998 line 222 azi2: 166.449925135617\n    test 1999 line 223 lat: -18.049262\n    test 2000 line 223 lon: 42.099193\n    test 2001 line 223 fb: 158.127141\n    test 2002 line 223 lat2: -18.049261796697\n    test 2003 line 223 lon2: 42.099193394607\n    test 2004 line 223 azi2: 158.127140901909\n    test 2005 line 223 lat2: -18.049261796697\n    test 2006 line 223 lon2: 42.099193394607\n    test 2007 line 223 azi2: 158.127140901909\n    test 2008 line 224 lat: 9.832902\n    test 2009 line 224 lon: 51.448057\n    test 2010 line 224 fb: 114.348703\n    test 2011 line 224 lat2: 9.832901687662\n    test 2012 line 224 lon2: 51.448057387281\n    test 2013 line 224 azi2: 114.348702917675\n    test 2014 line 224 lat2: 9.832901687662\n    test 2015 line 224 lon2: 51.448057387281\n    test 2016 line 224 azi2: 114.348702917675\n    test 2017 line 225 lat: -57.516443\n    test 2018 line 225 lon: 64.700933\n    test 2019 line 225 fb: 137.459801\n    test 2020 line 225 lat2: -57.516443280706\n    test 2021 line 225 lon2: 64.700933124813\n    test 2022 line 225 azi2: 137.459801078685\n    test 2023 line 225 lat2: -57.516443280706\n    test 2024 line 225 lon2: 64.700933124813\n    test 2025 line 225 azi2: 137.459801078685\n    test 2026 line 226 lat: -23.072600\n    test 2027 line 226 lon: 95.392602\n    test 2028 line 226 fb: 140.119143\n    test 2029 line 226 lat2: -23.072599811854\n    test 2030 line 226 lon2: 95.392601883769\n    test 2031 line 226 azi2: 140.119143469104\n    test 2032 line 226 lat2: -23.072599811854\n    test 2033 line 226 lon2: 95.392601883769\n    test 2034 line 226 azi2: 140.119143469104\n    test 2035 line 227 lat: -45.117254\n    test 2036 line 227 lon: 97.361647\n    test 2037 line 227 fb: 97.339041\n    test 2038 line 227 lat2: -45.117253614100\n    test 2039 line 227 lon2: 97.361647352714\n    test 2040 line 227 azi2: 97.339040559115\n    test 2041 line 227 lat2: -45.117253614100\n    test 2042 line 227 lon2: 97.361647352714\n    test 2043 line 227 azi2: 97.339040559115\n    test 2044 line 228 lat: -11.277328\n    test 2045 line 228 lon: 19.602358\n    test 2046 line 228 fb: 156.779730\n    test 2047 line 228 lat2: -11.277328262947\n    test 2048 line 228 lon2: 19.602358024471\n    test 2049 line 228 azi2: 156.779729902321\n    test 2050 line 228 lat2: -11.277328262947\n    test 2051 line 228 lon2: 19.602358024471\n    test 2052 line 228 azi2: 156.779729902321\n    test 2053 line 229 lat: -4.823524\n    test 2054 line 229 lon: 164.626842\n    test 2055 line 229 fb: 151.314797\n    test 2056 line 229 lat2: -4.823524348693\n    test 2057 line 229 lon2: 164.626841855534\n    test 2058 line 229 azi2: 151.314796841238\n    test 2059 line 229 lat2: -4.823524348693\n    test 2060 line 229 lon2: 164.626841855534\n    test 2061 line 229 azi2: 151.314796841238\n    test 2062 line 230 lat: 36.317088\n    test 2063 line 230 lon: 89.326155\n    test 2064 line 230 fb: 94.589052\n    test 2065 line 230 lat2: 36.317087922282\n    test 2066 line 230 lon2: 89.326155365943\n    test 2067 line 230 azi2: 94.589051951235\n    test 2068 line 230 lat2: 36.317087922282\n    test 2069 line 230 lon2: 89.326155365943\n    test 2070 line 230 azi2: 94.589051951235\n    test 2071 line 231 lat: 3.975433\n    test 2072 line 231 lon: 105.460359\n    test 2073 line 231 fb: 126.257925\n    test 2074 line 231 lat2: 3.975432760073\n    test 2075 line 231 lon2: 105.460358584149\n    test 2076 line 231 azi2: 126.257925455058\n    test 2077 line 231 lat2: 3.975432760073\n    test 2078 line 231 lon2: 105.460358584149\n    test 2079 line 231 azi2: 126.257925455058\n    test 2080 line 232 lat: 28.815984\n    test 2081 line 232 lon: 89.807394\n    test 2082 line 232 fb: 116.984375\n    test 2083 line 232 lat2: 28.815983592511\n    test 2084 line 232 lon2: 89.807393686834\n    test 2085 line 232 azi2: 116.984374981602\n    test 2086 line 232 lat2: 28.815983592511\n    test 2087 line 232 lon2: 89.807393686834\n    test 2088 line 232 azi2: 116.984374981602\n    test 2089 line 233 lat: 66.161717\n    test 2090 line 233 lon: 63.218655\n    test 2091 line 233 fb: 88.869959\n    test 2092 line 233 lat2: 66.161716765270\n    test 2093 line 233 lon2: 63.218655052918\n    test 2094 line 233 azi2: 88.869959091488\n    test 2095 line 233 lat2: 66.161716765270\n    test 2096 line 233 lon2: 63.218655052918\n    test 2097 line 233 azi2: 88.869959091488\n    test 2098 line 234 lat: 74.859972\n    test 2099 line 234 lon: 53.523361\n    test 2100 line 234 fb: 58.125008\n    test 2101 line 234 lat2: 74.859971601090\n    test 2102 line 234 lon2: 53.523360738831\n    test 2103 line 234 azi2: 58.125008091802\n    test 2104 line 234 lat2: 74.859971601090\n    test 2105 line 234 lon2: 53.523360738831\n    test 2106 line 234 azi2: 58.125008091802\n    test 2107 line 235 lat: -0.265481\n    test 2108 line 235 lon: 79.537677\n    test 2109 line 235 fb: 112.945830\n    test 2110 line 235 lat2: -0.265481234322\n    test 2111 line 235 lon2: 79.537677388981\n    test 2112 line 235 azi2: 112.945829781102\n    test 2113 line 235 lat2: -0.265481234322\n    test 2114 line 235 lon2: 79.537677388981\n    test 2115 line 235 azi2: 112.945829781102\n    test 2116 line 236 lat: -12.099598\n    test 2117 line 236 lon: 155.371356\n    test 2118 line 236 fb: 76.454292\n    test 2119 line 236 lat2: -12.099598021004\n    test 2120 line 236 lon2: 155.371356164845\n    test 2121 line 236 azi2: 76.454291606612\n    test 2122 line 236 lat2: -12.099598021004\n    test 2123 line 236 lon2: 155.371356164845\n    test 2124 line 236 azi2: 76.454291606612\n    test 2125 line 237 lat: -6.746465\n    test 2126 line 237 lon: 19.102484\n    test 2127 line 237 fb: 149.342236\n    test 2128 line 237 lat2: -6.746464854112\n    test 2129 line 237 lon2: 19.102484309526\n    test 2130 line 237 azi2: 149.342236428405\n    test 2131 line 237 lat2: -6.746464854112\n    test 2132 line 237 lon2: 19.102484309526\n    test 2133 line 237 azi2: 149.342236428405\n    test 2134 line 238 lat: 0.663830\n    test 2135 line 238 lon: 101.295721\n    test 2136 line 238 fb: 133.862626\n    test 2137 line 238 lat2: 0.663830251510\n    test 2138 line 238 lon2: 101.295720736944\n    test 2139 line 238 azi2: 133.862626019473\n    test 2140 line 238 lat2: 0.663830251510\n    test 2141 line 238 lon2: 101.295720736944\n    test 2142 line 238 azi2: 133.862626019473\n    test 2143 line 239 lat: -61.764624\n    test 2144 line 239 lon: 148.537522\n    test 2145 line 239 fb: 149.298772\n    test 2146 line 239 lat2: -61.764623993813\n    test 2147 line 239 lon2: 148.537521922087\n    test 2148 line 239 azi2: 149.298771734214\n    test 2149 line 239 lat2: -61.764623993813\n    test 2150 line 239 lon2: 148.537521922087\n    test 2151 line 239 azi2: 149.298771734214\n    test 2152 line 240 lat: 14.505122\n    test 2153 line 240 lon: 111.665519\n    test 2154 line 240 fb: 97.740222\n    test 2155 line 240 lat2: 14.505121777043\n    test 2156 line 240 lon2: 111.665518774379\n    test 2157 line 240 azi2: 97.740221959573\n    test 2158 line 240 lat2: 14.505121777043\n    test 2159 line 240 lon2: 111.665518774379\n    test 2160 line 240 azi2: 97.740221959573\n    test 2161 line 241 lat: -24.713205\n    test 2162 line 241 lon: 34.159384\n    test 2163 line 241 fb: 125.866132\n    test 2164 line 241 lat2: -24.713205327375\n    test 2165 line 241 lon2: 34.159384140577\n    test 2166 line 241 azi2: 125.866132443875\n    test 2167 line 241 lat2: -24.713205327375\n    test 2168 line 241 lon2: 34.159384140577\n    test 2169 line 241 azi2: 125.866132443875\n    test 2170 line 242 lat: 50.480262\n    test 2171 line 242 lon: 42.263850\n    test 2172 line 242 fb: 153.395659\n    test 2173 line 242 lat2: 50.480261762893\n    test 2174 line 242 lon2: 42.263849601327\n    test 2175 line 242 azi2: 153.395658919028\n    test 2176 line 242 lat2: 50.480261762893\n    test 2177 line 242 lon2: 42.263849601327\n    test 2178 line 242 azi2: 153.395658919028\n    test 2179 line 243 lat: 11.787247\n    test 2180 line 243 lon: 49.506460\n    test 2181 line 243 fb: 120.836778\n    test 2182 line 243 lat2: 11.787247309610\n    test 2183 line 243 lon2: 49.506459509702\n    test 2184 line 243 azi2: 120.836778496206\n    test 2185 line 243 lat2: 11.787247309610\n    test 2186 line 243 lon2: 49.506459509702\n    test 2187 line 243 azi2: 120.836778496206\n    test 2188 line 244 lat: -19.956674\n    test 2189 line 244 lon: 14.599479\n    test 2190 line 244 fb: 177.883855\n    test 2191 line 244 lat2: -19.956673621927\n    test 2192 line 244 lon2: 14.599479227718\n    test 2193 line 244 azi2: 177.883855088778\n    test 2194 line 244 lat2: -19.956673621927\n    test 2195 line 244 lon2: 14.599479227718\n    test 2196 line 244 azi2: 177.883855088778\n    test 2197 line 245 lat: 0.738566\n    test 2198 line 245 lon: 12.600972\n    test 2199 line 245 fb: 176.085445\n    test 2200 line 245 lat2: 0.738565517815\n    test 2201 line 245 lon2: 12.600972006927\n    test 2202 line 245 azi2: 176.085445031797\n    test 2203 line 245 lat2: 0.738565517815\n    test 2204 line 245 lon2: 12.600972006927\n    test 2205 line 245 azi2: 176.085445031797\n    test 2206 line 246 lat: 25.799128\n    test 2207 line 246 lon: 9.800259\n    test 2208 line 246 fb: 166.282764\n    test 2209 line 246 lat2: 25.799128425384\n    test 2210 line 246 lon2: 9.800259258495\n    test 2211 line 246 azi2: 166.282764024264\n    test 2212 line 246 lat2: 25.799128425384\n    test 2213 line 246 lon2: 9.800259258495\n    test 2214 line 246 azi2: 166.282764024264\n    test 2215 line 247 lat: -3.897277\n    test 2216 line 247 lon: 16.693319\n    test 2217 line 247 fb: 168.780736\n    test 2218 line 247 lat2: -3.897277132184\n    test 2219 line 247 lon2: 16.693318601970\n    test 2220 line 247 azi2: 168.780736094343\n    test 2221 line 247 lat2: -3.897277132184\n    test 2222 line 247 lon2: 16.693318601970\n    test 2223 line 247 azi2: 168.780736094343\n    test 2224 line 248 lat: 2.479585\n    test 2225 line 248 lon: 72.317321\n    test 2226 line 248 fb: 126.935932\n    test 2227 line 248 lat2: 2.479585385319\n    test 2228 line 248 lon2: 72.317321261259\n    test 2229 line 248 azi2: 126.935932221711\n    test 2230 line 248 lat2: 2.479585385319\n    test 2231 line 248 lon2: 72.317321261259\n    test 2232 line 248 azi2: 126.935932221711\n    test 2233 line 249 lat: -0.836621\n    test 2234 line 249 lon: 2.490193\n    test 2235 line 249 fb: 150.640498\n    test 2236 line 249 lat2: -0.836621274662\n    test 2237 line 249 lon2: 2.490192836679\n    test 2238 line 249 azi2: 150.640498065221\n    test 2239 line 249 lat2: -0.836621274662\n    test 2240 line 249 lon2: 2.490192836679\n    test 2241 line 249 azi2: 150.640498065221\n    test 2242 line 250 lat: -69.098227\n    test 2243 line 250 lon: 43.929874\n    test 2244 line 250 fb: 143.378404\n    test 2245 line 250 lat2: -69.098226894675\n    test 2246 line 250 lon2: 43.929873562507\n    test 2247 line 250 azi2: 143.378403982035\n    test 2248 line 250 lat2: -69.098226894675\n    test 2249 line 250 lon2: 43.929873562507\n    test 2250 line 250 azi2: 143.378403982035\n    test 2251 line 251 lat: 19.156121\n    test 2252 line 251 lon: 130.658473\n    test 2253 line 251 fb: 136.204475\n    test 2254 line 251 lat2: 19.156121137418\n    test 2255 line 251 lon2: 130.658473280949\n    test 2256 line 251 azi2: 136.204475163250\n    test 2257 line 251 lat2: 19.156121137418\n    test 2258 line 251 lon2: 130.658473280949\n    test 2259 line 251 azi2: 136.204475163250\n    test 2260 line 252 lat: 68.881949\n    test 2261 line 252 lon: 79.375865\n    test 2262 line 252 fb: 99.052732\n    test 2263 line 252 lat2: 68.881948915820\n    test 2264 line 252 lon2: 79.375865154434  FAILED, KNOWN, expected 79.375865154433\n    test 2265 line 252 azi2: 99.052731550675\n    test 2266 line 252 lat2: 68.881948915820\n    test 2267 line 252 lon2: 79.375865154434  FAILED, KNOWN, expected 79.375865154433\n    test 2268 line 252 azi2: 99.052731550675\n    test 2269 line 253 lat: -23.509016\n    test 2270 line 253 lon: 122.232226\n    test 2271 line 253 fb: 90.354604\n    test 2272 line 253 lat2: -23.509015988874\n    test 2273 line 253 lon2: 122.232226283491\n    test 2274 line 253 azi2: 90.354603607380\n    test 2275 line 253 lat2: -23.509015988874\n    test 2276 line 253 lon2: 122.232226283491\n    test 2277 line 253 azi2: 90.354603607380\n    test 2278 line 254 lat: -64.950636\n    test 2279 line 254 lon: 70.184354\n    test 2280 line 254 fb: 122.478937\n    test 2281 line 254 lat2: -64.950635804577\n    test 2282 line 254 lon2: 70.184354384370\n    test 2283 line 254 azi2: 122.478937039089\n    test 2284 line 254 lat2: -64.950635804577\n    test 2285 line 254 lon2: 70.184354384370\n    test 2286 line 254 azi2: 122.478937039089\n    test 2287 line 255 lat: 4.931109\n    test 2288 line 255 lon: 176.100221\n    test 2289 line 255 fb: 175.754221\n    test 2290 line 255 lat2: 4.931108669549\n    test 2291 line 255 lon2: 176.100220910178\n    test 2292 line 255 azi2: 175.754221027085\n    test 2293 line 255 lat2: 4.931108669549\n    test 2294 line 255 lon2: 176.100220910178\n    test 2295 line 255 azi2: 175.754221027085\n    test 2296 line 256 lat: -35.503236\n    test 2297 line 256 lon: 122.767107\n    test 2298 line 256 fb: 94.201020\n    test 2299 line 256 lat2: -35.503236005727\n    test 2300 line 256 lon2: 122.767107174014\n    test 2301 line 256 azi2: 94.201020059324\n    test 2302 line 256 lat2: -35.503236005727\n    test 2303 line 256 lon2: 122.767107174014\n    test 2304 line 256 azi2: 94.201020059324\n    test 2305 line 257 lat: 58.728016\n    test 2306 line 257 lon: 76.607531\n    test 2307 line 257 fb: 114.353509\n    test 2308 line 257 lat2: 58.728016150448\n    test 2309 line 257 lon2: 76.607530844045\n    test 2310 line 257 azi2: 114.353508957613\n    test 2311 line 257 lat2: 58.728016150448\n    test 2312 line 257 lon2: 76.607530844045\n    test 2313 line 257 azi2: 114.353508957613\n    test 2314 line 258 lat: 13.725793\n    test 2315 line 258 lon: 60.384503\n    test 2316 line 258 fb: 102.783242\n    test 2317 line 258 lat2: 13.725792757601\n    test 2318 line 258 lon2: 60.384502867486\n    test 2319 line 258 azi2: 102.783241874789\n    test 2320 line 258 lat2: 13.725792757601\n    test 2321 line 258 lon2: 60.384502867486\n    test 2322 line 258 azi2: 102.783241874789\n    test 2323 line 259 lat: 40.298524\n    test 2324 line 259 lon: 59.957993\n    test 2325 line 259 fb: 90.056366\n    test 2326 line 259 lat2: 40.298523592677\n    test 2327 line 259 lon2: 59.957993458231\n    test 2328 line 259 azi2: 90.056365696933\n    test 2329 line 259 lat2: 40.298523592677\n    test 2330 line 259 lon2: 59.957993458231\n    test 2331 line 259 azi2: 90.056365696933\n    test 2332 line 260 lat: 21.526222\n    test 2333 line 260 lon: 19.836420\n    test 2334 line 260 fb: 89.081274\n    test 2335 line 260 lat2: 21.526221960544\n    test 2336 line 260 lon2: 19.836419824899\n    test 2337 line 260 azi2: 89.081274273400\n    test 2338 line 260 lat2: 21.526221960544\n    test 2339 line 260 lon2: 19.836419824899\n    test 2340 line 260 azi2: 89.081274273400\n    test 2341 line 261 lat: -65.269872\n    test 2342 line 261 lon: 134.049515\n    test 2343 line 261 fb: 54.613515\n    test 2344 line 261 lat2: -65.269872123888\n    test 2345 line 261 lon2: 134.049514626723\n    test 2346 line 261 azi2: 54.613514542799\n    test 2347 line 261 lat2: -65.269872123888\n    test 2348 line 261 lon2: 134.049514626723\n    test 2349 line 261 azi2: 54.613514542799\n    test 2350 line 262 lat: -47.687068\n    test 2351 line 262 lon: 86.855941\n    test 2352 line 262 fb: 115.133532\n    test 2353 line 262 lat2: -47.687068378110\n    test 2354 line 262 lon2: 86.855941174728\n    test 2355 line 262 azi2: 115.133531572693\n    test 2356 line 262 lat2: -47.687068378110\n    test 2357 line 262 lon2: 86.855941174728\n    test 2358 line 262 azi2: 115.133531572693\n    test 2359 line 263 lat: -56.637273\n    test 2360 line 263 lon: 158.001121\n    test 2361 line 263 fb: 35.013276\n    test 2362 line 263 lat2: -56.637272907294\n    test 2363 line 263 lon2: 158.001120751267\n    test 2364 line 263 azi2: 35.013276119319\n    test 2365 line 263 lat2: -56.637272907294\n    test 2366 line 263 lon2: 158.001120751267\n    test 2367 line 263 azi2: 35.013276119319\n    test 2368 line 264 lat: 6.880772\n    test 2369 line 264 lon: 36.289125\n    test 2370 line 264 fb: 144.499557\n    test 2371 line 264 lat2: 6.880771895178\n    test 2372 line 264 lon2: 36.289124705135\n    test 2373 line 264 azi2: 144.499557452454\n    test 2374 line 264 lat2: 6.880771895178\n    test 2375 line 264 lon2: 36.289124705135\n    test 2376 line 264 azi2: 144.499557452454\n    test 2377 line 265 lat: 59.205527\n    test 2378 line 265 lon: 115.787268\n    test 2379 line 265 fb: 116.793619\n    test 2380 line 265 lat2: 59.205526512430\n    test 2381 line 265 lon2: 115.787267608171\n    test 2382 line 265 azi2: 116.793618855456\n    test 2383 line 265 lat2: 59.205526512430\n    test 2384 line 265 lon2: 115.787267608171\n    test 2385 line 265 azi2: 116.793618855456\n    test 2386 line 266 lat: 29.463206\n    test 2387 line 266 lon: 68.742710\n    test 2388 line 266 fb: 113.906069\n    test 2389 line 266 lat2: 29.463206450868\n    test 2390 line 266 lon2: 68.742710218988\n    test 2391 line 266 azi2: 113.906069374400\n    test 2392 line 266 lat2: 29.463206450868\n    test 2393 line 266 lon2: 68.742710218988\n    test 2394 line 266 azi2: 113.906069374400\n    test 2395 line 267 lat: 5.507960\n    test 2396 line 267 lon: 2.913367\n    test 2397 line 267 fb: 175.225892\n    test 2398 line 267 lat2: 5.507959555355\n    test 2399 line 267 lon2: 2.913367209347\n    test 2400 line 267 azi2: 175.225891805562\n    test 2401 line 267 lat2: 5.507959555355\n    test 2402 line 267 lon2: 2.913367209347\n    test 2403 line 267 azi2: 175.225891805562\n    test 2404 line 268 lat: 32.568215\n    test 2405 line 268 lon: 107.814340\n    test 2406 line 268 fb: 126.321687\n    test 2407 line 268 lat2: 32.568215067951\n    test 2408 line 268 lon2: 107.814340389788\n    test 2409 line 268 azi2: 126.321687264203\n    test 2410 line 268 lat2: 32.568215067951\n    test 2411 line 268 lon2: 107.814340389788\n    test 2412 line 268 azi2: 126.321687264203\n    test 2413 line 269 lat: 48.941036\n    test 2414 line 269 lon: 170.309380\n    test 2415 line 269 fb: 170.816057\n    test 2416 line 269 lat2: 48.941036400994\n    test 2417 line 269 lon2: 170.309379989564\n    test 2418 line 269 azi2: 170.816056872564\n    test 2419 line 269 lat2: 48.941036400994\n    test 2420 line 269 lon2: 170.309379989564\n    test 2421 line 269 azi2: 170.816056872564\n    test 2422 line 270 lat: 32.657811\n    test 2423 line 270 lon: 174.401372\n    test 2424 line 270 fb: 173.967029\n    test 2425 line 270 lat2: 32.657810935795\n    test 2426 line 270 lon2: 174.401372292954\n    test 2427 line 270 azi2: 173.967029189838\n    test 2428 line 270 lat2: 32.657810935795\n    test 2429 line 270 lon2: 174.401372292954\n    test 2430 line 270 azi2: 173.967029189838\n    test 2431 line 271 lat: -30.959342\n    test 2432 line 271 lon: 144.596945\n    test 2433 line 271 fb: 157.635539\n    test 2434 line 271 lat2: -30.959341511189\n    test 2435 line 271 lon2: 144.596944855700\n    test 2436 line 271 azi2: 157.635538872114\n    test 2437 line 271 lat2: -30.959341511189\n    test 2438 line 271 lon2: 144.596944855700\n    test 2439 line 271 azi2: 157.635538872114\n    test 2440 line 272 lat: 52.180060\n    test 2441 line 272 lon: 68.363538\n    test 2442 line 272 fb: 82.619820\n    test 2443 line 272 lat2: 52.180060488771\n    test 2444 line 272 lon2: 68.363538073511\n    test 2445 line 272 azi2: 82.619819936898\n    test 2446 line 272 lat2: 52.180060488771\n    test 2447 line 272 lon2: 68.363538073511\n    test 2448 line 272 azi2: 82.619819936898\n    test 2449 line 273 lat: -49.230655\n    test 2450 line 273 lon: 119.085123\n    test 2451 line 273 fb: 81.553785\n    test 2452 line 273 lat2: -49.230654785601\n    test 2453 line 273 lon2: 119.085122995371\n    test 2454 line 273 azi2: 81.553785297210\n    test 2455 line 273 lat2: -49.230654785601\n    test 2456 line 273 lon2: 119.085122995371\n    test 2457 line 273 azi2: 81.553785297210\n    test 2458 line 274 lat: 12.315309\n    test 2459 line 274 lon: 21.800337\n    test 2460 line 274 fb: 86.572317\n    test 2461 line 274 lat2: 12.315308710130\n    test 2462 line 274 lon2: 21.800336803956\n    test 2463 line 274 azi2: 86.572316548512\n    test 2464 line 274 lat2: 12.315308710130\n    test 2465 line 274 lon2: 21.800336803956\n    test 2466 line 274 azi2: 86.572316548512\n    test 2467 line 275 lat: 0.074875\n    test 2468 line 275 lon: 122.092567\n    test 2469 line 275 fb: 93.940324\n    test 2470 line 275 lat2: 0.074874782626\n    test 2471 line 275 lon2: 122.092567299352\n    test 2472 line 275 azi2: 93.940323652996\n    test 2473 line 275 lat2: 0.074874782626\n    test 2474 line 275 lon2: 122.092567299352\n    test 2475 line 275 azi2: 93.940323652996\n    test 2476 line 276 lat: -32.420609\n    test 2477 line 276 lon: 80.147417\n    test 2478 line 276 fb: 123.183256\n    test 2479 line 276 lat2: -32.420609134175\n    test 2480 line 276 lon2: 80.147416945184\n    test 2481 line 276 azi2: 123.183256201588\n    test 2482 line 276 lat2: -32.420609134175\n    test 2483 line 276 lon2: 80.147416945184\n    test 2484 line 276 azi2: 123.183256201588\n    test 2485 line 277 lat: 82.600418\n    test 2486 line 277 lon: 34.418367\n    test 2487 line 277 fb: 35.057122\n    test 2488 line 277 lat2: 82.600418456713\n    test 2489 line 277 lon2: 34.418367124569\n    test 2490 line 277 azi2: 35.057122384192\n    test 2491 line 277 lat2: 82.600418456713\n    test 2492 line 277 lon2: 34.418367124569\n    test 2493 line 277 azi2: 35.057122384192\n    test 2494 line 278 lat: 26.274633\n    test 2495 line 278 lon: 93.043032\n    test 2496 line 278 fb: 114.480069\n    test 2497 line 278 lat2: 26.274632977288\n    test 2498 line 278 lon2: 93.043031668414\n    test 2499 line 278 azi2: 114.480069066657\n    test 2500 line 278 lat2: 26.274632977288\n    test 2501 line 278 lon2: 93.043031668414\n    test 2502 line 278 azi2: 114.480069066657\n    test 2503 line 279 lat: 28.433986\n    test 2504 line 279 lon: 132.962042\n    test 2505 line 279 fb: 118.817242\n    test 2506 line 279 lat2: 28.433985598740\n    test 2507 line 279 lon2: 132.962041543078\n    test 2508 line 279 azi2: 118.817241997246\n    test 2509 line 279 lat2: 28.433985598740\n    test 2510 line 279 lon2: 132.962041543078\n    test 2511 line 279 azi2: 118.817241997246\n    test 2512 line 280 lat: 32.426459\n    test 2513 line 280 lon: 65.171889\n    test 2514 line 280 fb: 113.230923\n    test 2515 line 280 lat2: 32.426458512822\n    test 2516 line 280 lon2: 65.171889395963\n    test 2517 line 280 azi2: 113.230923394172\n    test 2518 line 280 lat2: 32.426458512822\n    test 2519 line 280 lon2: 65.171889395963\n    test 2520 line 280 azi2: 113.230923394172\n    test 2521 line 281 lat: 8.427284\n    test 2522 line 281 lon: 20.342496\n    test 2523 line 281 fb: 140.993359\n    test 2524 line 281 lat2: 8.427284359102\n    test 2525 line 281 lon2: 20.342496251702\n    test 2526 line 281 azi2: 140.993359066103\n    test 2527 line 281 lat2: 8.427284359102\n    test 2528 line 281 lon2: 20.342496251702\n    test 2529 line 281 azi2: 140.993359066103\n    test 2530 line 282 lat: -16.412702\n    test 2531 line 282 lon: 47.392542\n    test 2532 line 282 fb: 167.389705\n    test 2533 line 282 lat2: -16.412702228950\n    test 2534 line 282 lon2: 47.392541669265\n    test 2535 line 282 azi2: 167.389704666322\n    test 2536 line 282 lat2: -16.412702228950\n    test 2537 line 282 lon2: 47.392541669265\n    test 2538 line 282 azi2: 167.389704666322\n    test 2539 line 283 lat: -54.082376\n    test 2540 line 283 lon: 159.985466\n    test 2541 line 283 fb: 56.023710\n    test 2542 line 283 lat2: -54.082375801659\n    test 2543 line 283 lon2: 159.985465829683\n    test 2544 line 283 azi2: 56.023710499162\n    test 2545 line 283 lat2: -54.082375801659\n    test 2546 line 283 lon2: 159.985465829683\n    test 2547 line 283 azi2: 56.023710499162\n    test 2548 line 284 lat: 38.704319\n    test 2549 line 284 lon: 78.307551\n    test 2550 line 284 fb: 106.582126\n    test 2551 line 284 lat2: 38.704318557557\n    test 2552 line 284 lon2: 78.307550831333\n    test 2553 line 284 azi2: 106.582125725743\n    test 2554 line 284 lat2: 38.704318557557\n    test 2555 line 284 lon2: 78.307550831333\n    test 2556 line 284 azi2: 106.582125725743\n    test 2557 line 285 lat: 15.206275\n    test 2558 line 285 lon: 59.878378\n    test 2559 line 285 fb: 114.460428\n    test 2560 line 285 lat2: 15.206274688849\n    test 2561 line 285 lon2: 59.878378252292\n    test 2562 line 285 azi2: 114.460428216582\n    test 2563 line 285 lat2: 15.206274688849\n    test 2564 line 285 lon2: 59.878378252292\n    test 2565 line 285 azi2: 114.460428216582\n    test 2566 line 286 lat: -62.789550\n    test 2567 line 286 lon: 66.649185\n    test 2568 line 286 fb: 119.232672\n    test 2569 line 286 lat2: -62.789549909136\n    test 2570 line 286 lon2: 66.649184622337\n    test 2571 line 286 azi2: 119.232671643971\n    test 2572 line 286 lat2: -62.789549909136\n    test 2573 line 286 lon2: 66.649184622337\n    test 2574 line 286 azi2: 119.232671643971\n    test 2575 line 287 lat: 31.235252\n    test 2576 line 287 lon: 19.933468\n    test 2577 line 287 fb: 145.488470\n    test 2578 line 287 lat2: 31.235252170087\n    test 2579 line 287 lon2: 19.933467970517\n    test 2580 line 287 azi2: 145.488469796544\n    test 2581 line 287 lat2: 31.235252170087\n    test 2582 line 287 lon2: 19.933467970517\n    test 2583 line 287 azi2: 145.488469796544\n    test 2584 line 288 lat: 11.983236\n    test 2585 line 288 lon: 145.307369\n    test 2586 line 288 fb: 151.192641\n    test 2587 line 288 lat2: 11.983236088753\n    test 2588 line 288 lon2: 145.307368849730\n    test 2589 line 288 azi2: 151.192640854621\n    test 2590 line 288 lat2: 11.983236088753\n    test 2591 line 288 lon2: 145.307368849730\n    test 2592 line 288 azi2: 151.192640854621\n    test 2593 line 289 lat: 27.629694\n    test 2594 line 289 lon: 16.148459\n    test 2595 line 289 fb: 63.008012\n    test 2596 line 289 lat2: 27.629693628283\n    test 2597 line 289 lon2: 16.148459400244\n    test 2598 line 289 azi2: 63.008012267521\n    test 2599 line 289 lat2: 27.629693628283\n    test 2600 line 289 lon2: 16.148459400244\n    test 2601 line 289 azi2: 63.008012267521\n    test 2602 line 290 lat: 34.077784\n    test 2603 line 290 lon: 115.693210\n    test 2604 line 290 fb: 112.252264\n    test 2605 line 290 lat2: 34.077783768135\n    test 2606 line 290 lon2: 115.693209573427\n    test 2607 line 290 azi2: 112.252263721679\n    test 2608 line 290 lat2: 34.077783768135\n    test 2609 line 290 lon2: 115.693209573427\n    test 2610 line 290 azi2: 112.252263721679\n    test 2611 line 291 lat: 17.100340\n    test 2612 line 291 lon: 26.538643\n    test 2613 line 291 fb: 131.391925\n    test 2614 line 291 lat2: 17.100339523444\n    test 2615 line 291 lon2: 26.538642768875\n    test 2616 line 291 azi2: 131.391925094902\n    test 2617 line 291 lat2: 17.100339523444\n    test 2618 line 291 lon2: 26.538642768875\n    test 2619 line 291 azi2: 131.391925094902\n    test 2620 line 292 lat: -8.128040\n    test 2621 line 292 lon: 28.609615\n    test 2622 line 292 fb: 144.189095\n    test 2623 line 292 lat2: -8.128039572354\n    test 2624 line 292 lon2: 28.609615412806\n    test 2625 line 292 azi2: 144.189095481788\n    test 2626 line 292 lat2: -8.128039572354\n    test 2627 line 292 lon2: 28.609615412806\n    test 2628 line 292 azi2: 144.189095481788\n    test 2629 line 293 lat: 17.307082\n    test 2630 line 293 lon: 150.748550\n    test 2631 line 293 fb: 172.334611\n    test 2632 line 293 lat2: 17.307081581668\n    test 2633 line 293 lon2: 150.748549863580\n    test 2634 line 293 azi2: 172.334611079260\n    test 2635 line 293 lat2: 17.307081581668\n    test 2636 line 293 lon2: 150.748549863580\n    test 2637 line 293 azi2: 172.334611079260\n    test 2638 line 294 lat: 4.135230\n    test 2639 line 294 lon: 142.094814\n    test 2640 line 294 fb: 170.513214\n    test 2641 line 294 lat2: 4.135229575811\n    test 2642 line 294 lon2: 142.094814225629\n    test 2643 line 294 azi2: 170.513213518678\n    test 2644 line 294 lat2: 4.135229575811\n    test 2645 line 294 lon2: 142.094814225629\n    test 2646 line 294 azi2: 170.513213518678\n    test 2647 line 295 lat: -61.544041\n    test 2648 line 295 lon: 167.154866\n    test 2649 line 295 fb: 51.415676\n    test 2650 line 295 lat2: -61.544040804472\n    test 2651 line 295 lon2: 167.154866481811\n    test 2652 line 295 azi2: 51.415675504866\n    test 2653 line 295 lat2: -61.544040804472\n    test 2654 line 295 lon2: 167.154866481811\n    test 2655 line 295 azi2: 51.415675504866\n    test 2656 line 296 lat: 27.782466\n    test 2657 line 296 lon: 53.844550\n    test 2658 line 296 fb: 78.357665\n    test 2659 line 296 lat2: 27.782465760718\n    test 2660 line 296 lon2: 53.844549799795\n    test 2661 line 296 azi2: 78.357665271795\n    test 2662 line 296 lat2: 27.782465760718\n    test 2663 line 296 lon2: 53.844549799795\n    test 2664 line 296 azi2: 78.357665271795\n    test 2665 line 297 lat: -30.157337\n    test 2666 line 297 lon: 14.759636\n    test 2667 line 297 fb: 157.487063\n    test 2668 line 297 lat2: -30.157336788088\n    test 2669 line 297 lon2: 14.759635614931\n    test 2670 line 297 azi2: 157.487063280783\n    test 2671 line 297 lat2: -30.157336788088\n    test 2672 line 297 lon2: 14.759635614931\n    test 2673 line 297 azi2: 157.487063280783\n    test 2674 line 298 lat: -16.819268\n    test 2675 line 298 lon: 22.734618\n    test 2676 line 298 fb: 167.761663\n    test 2677 line 298 lat2: -16.819268371139\n    test 2678 line 298 lon2: 22.734618221531\n    test 2679 line 298 azi2: 167.761663436059\n    test 2680 line 298 lat2: -16.819268371139\n    test 2681 line 298 lon2: 22.734618221531\n    test 2682 line 298 azi2: 167.761663436059\n    test 2683 line 299 lat: 58.190743\n    test 2684 line 299 lon: 15.576363\n    test 2685 line 299 fb: 71.213972\n    test 2686 line 299 lat2: 58.190742593673\n    test 2687 line 299 lon2: 15.576363250416\n    test 2688 line 299 azi2: 71.213972172079\n    test 2689 line 299 lat2: 58.190742593673\n    test 2690 line 299 lon2: 15.576363250416\n    test 2691 line 299 azi2: 71.213972172079\n    test 2692 line 300 lat: 57.214981\n    test 2693 line 300 lon: 163.530752\n    test 2694 line 300 fb: 162.056064\n    test 2695 line 300 lat2: 57.214981133823\n    test 2696 line 300 lon2: 163.530751680014\n    test 2697 line 300 azi2: 162.056064225923\n    test 2698 line 300 lat2: 57.214981133823\n    test 2699 line 300 lon2: 163.530751680014\n    test 2700 line 300 azi2: 162.056064225923\n    test 2701 line 301 lat: 31.811818\n    test 2702 line 301 lon: 81.663494\n    test 2703 line 301 fb: 112.546404\n    test 2704 line 301 lat2: 31.811817748936\n    test 2705 line 301 lon2: 81.663494432962\n    test 2706 line 301 azi2: 112.546403824977\n    test 2707 line 301 lat2: 31.811817748936\n    test 2708 line 301 lon2: 81.663494432962\n    test 2709 line 301 azi2: 112.546403824977\n    test 2710 line 302 lat: -11.315727\n    test 2711 line 302 lon: 48.409490\n    test 2712 line 302 fb: 121.434574\n    test 2713 line 302 lat2: -11.315726799012\n    test 2714 line 302 lon2: 48.409489590525\n    test 2715 line 302 azi2: 121.434573764585\n    test 2716 line 302 lat2: -11.315726799012\n    test 2717 line 302 lon2: 48.409489590525\n    test 2718 line 302 azi2: 121.434573764585\n    test 2719 line 303 lat: 6.119956\n    test 2720 line 303 lon: 5.687908\n    test 2721 line 303 fb: 94.977171\n    test 2722 line 303 lat2: 6.119956010623\n    test 2723 line 303 lon2: 5.687908365969\n    test 2724 line 303 azi2: 94.977170961146\n    test 2725 line 303 lat2: 6.119956010623\n    test 2726 line 303 lon2: 5.687908365969\n    test 2727 line 303 azi2: 94.977170961146\n    test 2728 line 304 lat: -13.455263\n    test 2729 line 304 lon: 92.797729\n    test 2730 line 304 fb: 125.067595\n    test 2731 line 304 lat2: -13.455262906771\n    test 2732 line 304 lon2: 92.797729354548\n    test 2733 line 304 azi2: 125.067595131171\n    test 2734 line 304 lat2: -13.455262906771\n    test 2735 line 304 lon2: 92.797729354548\n    test 2736 line 304 azi2: 125.067595131171\n    test 2737 line 305 lat: -61.258454\n    test 2738 line 305 lon: 32.464613\n    test 2739 line 305 fb: 153.578300\n    test 2740 line 305 lat2: -61.258454070259\n    test 2741 line 305 lon2: 32.464613321886\n    test 2742 line 305 azi2: 153.578299580216\n    test 2743 line 305 lat2: -61.258454070259\n    test 2744 line 305 lon2: 32.464613321886\n    test 2745 line 305 azi2: 153.578299580216\n    test 2746 line 306 lat: 76.656194\n    test 2747 line 306 lon: 147.658262\n    test 2748 line 306 fb: 154.870277\n    test 2749 line 306 lat2: 76.656194303754\n    test 2750 line 306 lon2: 147.658261698859\n    test 2751 line 306 azi2: 154.870276891567\n    test 2752 line 306 lat2: 76.656194303754\n    test 2753 line 306 lon2: 147.658261698859\n    test 2754 line 306 azi2: 154.870276891567\n    test 2755 line 307 lat: 38.020470\n    test 2756 line 307 lon: 22.502210\n    test 2757 line 307 fb: 164.603876\n    test 2758 line 307 lat2: 38.020470355438\n    test 2759 line 307 lon2: 22.502210018002\n    test 2760 line 307 azi2: 164.603876406614\n    test 2761 line 307 lat2: 38.020470355438\n    test 2762 line 307 lon2: 22.502210018002\n    test 2763 line 307 azi2: 164.603876406614\n    test 2764 line 308 lat: -28.475186\n    test 2765 line 308 lon: 125.031589\n    test 2766 line 308 fb: 71.946314\n    test 2767 line 308 lat2: -28.475185707347\n    test 2768 line 308 lon2: 125.031589334958\n    test 2769 line 308 azi2: 71.946313988393\n    test 2770 line 308 lat2: -28.475185707347\n    test 2771 line 308 lon2: 125.031589334958\n    test 2772 line 308 azi2: 71.946313988393\n    test 2773 line 309 lat: 33.123700\n    test 2774 line 309 lon: 47.796870\n    test 2775 line 309 fb: 66.233041\n    test 2776 line 309 lat2: 33.123699771125\n    test 2777 line 309 lon2: 47.796870281285\n    test 2778 line 309 azi2: 66.233040505915\n    test 2779 line 309 lat2: 33.123699771125\n    test 2780 line 309 lon2: 47.796870281285\n    test 2781 line 309 azi2: 66.233040505915\n    test 2782 line 310 lat: 36.967606\n    test 2783 line 310 lon: 91.462107\n    test 2784 line 310 fb: 113.555931\n    test 2785 line 310 lat2: 36.967605507925\n    test 2786 line 310 lon2: 91.462107367844\n    test 2787 line 310 azi2: 113.555931272414\n    test 2788 line 310 lat2: 36.967605507925\n    test 2789 line 310 lon2: 91.462107367844\n    test 2790 line 310 azi2: 113.555931272414\n    test 2791 line 311 lat: -3.784112\n    test 2792 line 311 lon: 75.465096\n    test 2793 line 311 fb: 146.940895\n    test 2794 line 311 lat2: -3.784112064078\n    test 2795 line 311 lon2: 75.465096433718\n    test 2796 line 311 azi2: 146.940895363525\n    test 2797 line 311 lat2: -3.784112064078\n    test 2798 line 311 lon2: 75.465096433718\n    test 2799 line 311 azi2: 146.940895363525\n    test 2800 line 312 lat: 10.772454\n    test 2801 line 312 lon: 162.137695\n    test 2802 line 312 fb: 176.774643\n    test 2803 line 312 lat2: 10.772454234710\n    test 2804 line 312 lon2: 162.137694811372\n    test 2805 line 312 azi2: 176.774642770857\n    test 2806 line 312 lat2: 10.772454234711  FAILED, KNOWN, expected 10.772454234710\n    test 2807 line 312 lon2: 162.137694811372\n    test 2808 line 312 azi2: 176.774642770857\n    test 2809 line 313 lat: 23.928740\n    test 2810 line 313 lon: 28.953169\n    test 2811 line 313 fb: 143.614710\n    test 2812 line 313 lat2: 23.928739648982\n    test 2813 line 313 lon2: 28.953169497861\n    test 2814 line 313 azi2: 143.614709768381\n    test 2815 line 313 lat2: 23.928739648982\n    test 2816 line 313 lon2: 28.953169497861\n    test 2817 line 313 azi2: 143.614709768381\n    test 2818 line 314 lat: 5.199377\n    test 2819 line 314 lon: 162.802668\n    test 2820 line 314 fb: 146.857520\n    test 2821 line 314 lat2: 5.199376594428\n    test 2822 line 314 lon2: 162.802668362269\n    test 2823 line 314 azi2: 146.857519761344\n    test 2824 line 314 lat2: 5.199376594428\n    test 2825 line 314 lon2: 162.802668362269\n    test 2826 line 314 azi2: 146.857519761344\n    test 2827 line 315 lat: 6.285334\n    test 2828 line 315 lon: 164.204548\n    test 2829 line 315 fb: 159.451359\n    test 2830 line 315 lat2: 6.285334322282\n    test 2831 line 315 lon2: 164.204548022855\n    test 2832 line 315 azi2: 159.451359223111\n    test 2833 line 315 lat2: 6.285334322282\n    test 2834 line 315 lon2: 164.204548022855\n    test 2835 line 315 azi2: 159.451359223111\n    test 2836 line 316 lat: -8.151874\n    test 2837 line 316 lon: 43.923539\n    test 2838 line 316 fb: 121.501273\n    test 2839 line 316 lat2: -8.151873580306\n    test 2840 line 316 lon2: 43.923539410568\n    test 2841 line 316 azi2: 121.501272690158\n    test 2842 line 316 lat2: -8.151873580306\n    test 2843 line 316 lon2: 43.923539410568\n    test 2844 line 316 azi2: 121.501272690158\n    test 2845 line 317 lat: 20.145480\n    test 2846 line 317 lon: 92.310645\n    test 2847 line 317 fb: 97.369333\n    test 2848 line 317 lat2: 20.145480383316\n    test 2849 line 317 lon2: 92.310644735772\n    test 2850 line 317 azi2: 97.369333245027\n    test 2851 line 317 lat2: 20.145480383316\n    test 2852 line 317 lon2: 92.310644735772\n    test 2853 line 317 azi2: 97.369333245027\n    test 2854 line 318 lat: 38.715579\n    test 2855 line 318 lon: 89.141427\n    test 2856 line 318 fb: 100.831087\n    test 2857 line 318 lat2: 38.715578802658\n    test 2858 line 318 lon2: 89.141426830360\n    test 2859 line 318 azi2: 100.831086703170\n    test 2860 line 318 lat2: 38.715578802658\n    test 2861 line 318 lon2: 89.141426830360\n    test 2862 line 318 azi2: 100.831086703170\n    test 2863 line 319 lat: -25.760685\n    test 2864 line 319 lon: 145.864001\n    test 2865 line 319 fb: 142.714674\n    test 2866 line 319 lat2: -25.760685020607\n    test 2867 line 319 lon2: 145.864001048187\n    test 2868 line 319 azi2: 142.714673928912\n    test 2869 line 319 lat2: -25.760685020607\n    test 2870 line 319 lon2: 145.864001048187\n    test 2871 line 319 azi2: 142.714673928912\n    test 2872 line 320 lat: 49.387283\n    test 2873 line 320 lon: 28.917044\n    test 2874 line 320 fb: 61.545235\n    test 2875 line 320 lat2: 49.387283074155\n    test 2876 line 320 lon2: 28.917043656754\n    test 2877 line 320 azi2: 61.545235148403\n    test 2878 line 320 lat2: 49.387283074155\n    test 2879 line 320 lon2: 28.917043656754\n    test 2880 line 320 azi2: 61.545235148403\n    test 2881 line 321 lat: 10.120685\n    test 2882 line 321 lon: 2.869738\n    test 2883 line 321 fb: 176.526916\n    test 2884 line 321 lat2: 10.120685293027\n    test 2885 line 321 lon2: 2.869737593886\n    test 2886 line 321 azi2: 176.526915822865\n    test 2887 line 321 lat2: 10.120685293027\n    test 2888 line 321 lon2: 2.869737593886\n    test 2889 line 321 azi2: 176.526915822865\n    test 2890 line 322 lat: 2.463216\n    test 2891 line 322 lon: 102.917600\n    test 2892 line 322 fb: 170.609004\n    test 2893 line 322 lat2: 2.463216066166\n    test 2894 line 322 lon2: 102.917599852201\n    test 2895 line 322 azi2: 170.609003610639\n    test 2896 line 322 lat2: 2.463216066166\n    test 2897 line 322 lon2: 102.917599852201\n    test 2898 line 322 azi2: 170.609003610639\n    test 2899 line 323 lat: 58.201294\n    test 2900 line 323 lon: 155.022079\n    test 2901 line 323 fb: 153.181269\n    test 2902 line 323 lat2: 58.201293688923\n    test 2903 line 323 lon2: 155.022079105501\n    test 2904 line 323 azi2: 153.181268692773\n    test 2905 line 323 lat2: 58.201293688923\n    test 2906 line 323 lon2: 155.022079105501\n    test 2907 line 323 azi2: 153.181268692773\n    test 2908 line 324 lat: 3.089608\n    test 2909 line 324 lon: 20.686800\n    test 2910 line 324 fb: 144.857820\n    test 2911 line 324 lat2: 3.089607756265\n    test 2912 line 324 lon2: 20.686800266169\n    test 2913 line 324 azi2: 144.857820265585\n    test 2914 line 324 lat2: 3.089607756265\n    test 2915 line 324 lon2: 20.686800266169\n    test 2916 line 324 azi2: 144.857820265585\n    test 2917 line 325 lat: 48.232274\n    test 2918 line 325 lon: 18.567244\n    test 2919 line 325 fb: 24.556438\n    test 2920 line 325 lat2: 48.232274219515\n    test 2921 line 325 lon2: 18.567244222293\n    test 2922 line 325 azi2: 24.556437713520\n    test 2923 line 325 lat2: 48.232274219515\n    test 2924 line 325 lon2: 18.567244222293\n    test 2925 line 325 azi2: 24.556437713520\n    test 2926 line 326 lat: 30.265261\n    test 2927 line 326 lon: 7.440738\n    test 2928 line 326 fb: 142.022972\n    test 2929 line 326 lat2: 30.265261486767\n    test 2930 line 326 lon2: 7.440737656545\n    test 2931 line 326 azi2: 142.022971576270\n    test 2932 line 326 lat2: 30.265261486767\n    test 2933 line 326 lon2: 7.440737656545\n    test 2934 line 326 azi2: 142.022971576270\n    test 2935 line 327 lat: -11.166197\n    test 2936 line 327 lon: 176.728934\n    test 2937 line 327 fb: 24.287273\n    test 2938 line 327 lat2: -11.166197413148\n    test 2939 line 327 lon2: 176.728933575636\n    test 2940 line 327 azi2: 24.287272842989\n    test 2941 line 327 lat2: -11.166197413148\n    test 2942 line 327 lon2: 176.728933575636\n    test 2943 line 327 azi2: 24.287272842989\n    test 2944 line 328 lat: 84.645539\n    test 2945 line 328 lon: 90.023922\n    test 2946 line 328 fb: 92.786262\n    test 2947 line 328 lat2: 84.645539196082\n    test 2948 line 328 lon2: 90.023922499395\n    test 2949 line 328 azi2: 92.786261566827\n    test 2950 line 328 lat2: 84.645539196082\n    test 2951 line 328 lon2: 90.023922499396  FAILED, KNOWN, expected 90.023922499395\n    test 2952 line 328 azi2: 92.786261566828  FAILED, KNOWN, expected 92.786261566827\n    test 2953 line 329 lat: 61.618717\n    test 2954 line 329 lon: 162.510959\n    test 2955 line 329 fb: 160.923940\n    test 2956 line 329 lat2: 61.618716728051\n    test 2957 line 329 lon2: 162.510958917359\n    test 2958 line 329 azi2: 160.923939760553\n    test 2959 line 329 lat2: 61.618716728051\n    test 2960 line 329 lon2: 162.510958917359\n    test 2961 line 329 azi2: 160.923939760553\n    test 2962 line 330 lat: 27.643242\n    test 2963 line 330 lon: 45.376215\n    test 2964 line 330 fb: 147.964522\n    test 2965 line 330 lat2: 27.643242341173\n    test 2966 line 330 lon2: 45.376215094118\n    test 2967 line 330 azi2: 147.964522484664\n    test 2968 line 330 lat2: 27.643242341173\n    test 2969 line 330 lon2: 45.376215094118\n    test 2970 line 330 azi2: 147.964522484664\n    test 2971 line 331 lat: 2.218750\n    test 2972 line 331 lon: 170.358342\n    test 2973 line 331 fb: 141.658474\n    test 2974 line 331 lat2: 2.218749985364\n    test 2975 line 331 lon2: 170.358342078292\n    test 2976 line 331 azi2: 141.658474129787\n    test 2977 line 331 lat2: 2.218749985364\n    test 2978 line 331 lon2: 170.358342078292\n    test 2979 line 331 azi2: 141.658474129787\n    test 2980 line 332 lat: 26.019142\n    test 2981 line 332 lon: 32.534760\n    test 2982 line 332 fb: 128.159784\n    test 2983 line 332 lat2: 26.019142329663\n    test 2984 line 332 lon2: 32.534760195963\n    test 2985 line 332 azi2: 128.159784291645\n    test 2986 line 332 lat2: 26.019142329663\n    test 2987 line 332 lon2: 32.534760195963\n    test 2988 line 332 azi2: 128.159784291645\n    test 2989 line 333 lat: 10.049636\n    test 2990 line 333 lon: 72.205347\n    test 2991 line 333 fb: 143.602160\n    test 2992 line 333 lat2: 10.049636247749\n    test 2993 line 333 lon2: 72.205346955818\n    test 2994 line 333 azi2: 143.602159725306\n    test 2995 line 333 lat2: 10.049636247749\n    test 2996 line 333 lon2: 72.205346955818\n    test 2997 line 333 azi2: 143.602159725306\n    test 2998 line 334 lat: -31.030497\n    test 2999 line 334 lon: 91.539195\n    test 3000 line 334 fb: 109.891398\n    test 3001 line 334 lat2: -31.030496743715\n    test 3002 line 334 lon2: 91.539195292896\n    test 3003 line 334 azi2: 109.891398221790\n    test 3004 line 334 lat2: -31.030496743715\n    test 3005 line 334 lon2: 91.539195292896\n    test 3006 line 334 azi2: 109.891398221790\n    test 3007 line 335 lat: 30.113796\n    test 3008 line 335 lon: 109.096982\n    test 3009 line 335 fb: 146.779343\n    test 3010 line 335 lat2: 30.113795853671\n    test 3011 line 335 lon2: 109.096981631502\n    test 3012 line 335 azi2: 146.779343066541\n    test 3013 line 335 lat2: 30.113795853670  FAILED, KNOWN, expected 30.113795853671\n    test 3014 line 335 lon2: 109.096981631502\n    test 3015 line 335 azi2: 146.779343066541\n    test 3016 line 336 lat: -73.967996\n    test 3017 line 336 lon: 65.944243\n    test 3018 line 336 fb: 120.592999\n    test 3019 line 336 lat2: -73.967996185770\n    test 3020 line 336 lon2: 65.944242524678\n    test 3021 line 336 azi2: 120.592998665529\n    test 3022 line 336 lat2: -73.967996185770\n    test 3023 line 336 lon2: 65.944242524678\n    test 3024 line 336 azi2: 120.592998665529\n    test 3025 line 337 lat: 52.211150\n    test 3026 line 337 lon: 168.054185\n    test 3027 line 337 fb: 172.425992\n    test 3028 line 337 lat2: 52.211149755494\n    test 3029 line 337 lon2: 168.054184827868\n    test 3030 line 337 azi2: 172.425991612467\n    test 3031 line 337 lat2: 52.211149755494\n    test 3032 line 337 lon2: 168.054184827868\n    test 3033 line 337 azi2: 172.425991612467\n    test 3034 line 338 lat: -64.497146\n    test 3035 line 338 lon: 72.073419\n    test 3036 line 338 fb: 114.249129\n    test 3037 line 338 lat2: -64.497146189688\n    test 3038 line 338 lon2: 72.073418936581\n    test 3039 line 338 azi2: 114.249128850219\n    test 3040 line 338 lat2: -64.497146189688\n    test 3041 line 338 lon2: 72.073418936581\n    test 3042 line 338 azi2: 114.249128850219\n    test 3043 line 339 lat: -25.711399\n    test 3044 line 339 lon: 6.036423\n    test 3045 line 339 fb: 169.464098\n    test 3046 line 339 lat2: -25.711398997503\n    test 3047 line 339 lon2: 6.036423474639\n    test 3048 line 339 azi2: 169.464098294263\n    test 3049 line 339 lat2: -25.711398997503\n    test 3050 line 339 lon2: 6.036423474639\n    test 3051 line 339 azi2: 169.464098294263\n    test 3052 line 340 lat: 33.904613\n    test 3053 line 340 lon: 30.989094\n    test 3054 line 340 fb: 124.896016\n    test 3055 line 340 lat2: 33.904613360449\n    test 3056 line 340 lon2: 30.989094387217\n    test 3057 line 340 azi2: 124.896016003640\n    test 3058 line 340 lat2: 33.904613360449\n    test 3059 line 340 lon2: 30.989094387217\n    test 3060 line 340 azi2: 124.896016003640\n    test 3061 line 341 lat: -25.053080\n    test 3062 line 341 lon: 137.078639\n    test 3063 line 341 fb: 115.960750\n    test 3064 line 341 lat2: -25.053079543516\n    test 3065 line 341 lon2: 137.078638665495\n    test 3066 line 341 azi2: 115.960750169086\n    test 3067 line 341 lat2: -25.053079543516\n    test 3068 line 341 lon2: 137.078638665495\n    test 3069 line 341 azi2: 115.960750169086\n    test 3070 line 342 lat: 10.298031\n    test 3071 line 342 lon: 27.737374\n    test 3072 line 342 fb: 142.265457\n    test 3073 line 342 lat2: 10.298031202629\n    test 3074 line 342 lon2: 27.737373649973\n    test 3075 line 342 azi2: 142.265457288483\n    test 3076 line 342 lat2: 10.298031202629\n    test 3077 line 342 lon2: 27.737373649973\n    test 3078 line 342 azi2: 142.265457288483\n    test 3079 line 343 lat: -0.738692\n    test 3080 line 343 lon: 150.933627\n    test 3081 line 343 fb: 174.004688\n    test 3082 line 343 lat2: -0.738692377457\n    test 3083 line 343 lon2: 150.933627031610\n    test 3084 line 343 azi2: 174.004687728765\n    test 3085 line 343 lat2: -0.738692377457\n    test 3086 line 343 lon2: 150.933627031610\n    test 3087 line 343 azi2: 174.004687728765\n    test 3088 line 344 lat: 50.619289\n    test 3089 line 344 lon: 67.178203\n    test 3090 line 344 fb: 105.177353\n    test 3091 line 344 lat2: 50.619289349009\n    test 3092 line 344 lon2: 67.178203328135\n    test 3093 line 344 azi2: 105.177353051107\n    test 3094 line 344 lat2: 50.619289349009\n    test 3095 line 344 lon2: 67.178203328135\n    test 3096 line 344 azi2: 105.177353051107\n    test 3097 line 345 lat: -2.127739\n    test 3098 line 345 lon: 38.604245\n    test 3099 line 345 fb: 118.657849\n    test 3100 line 345 lat2: -2.127739360728\n    test 3101 line 345 lon2: 38.604245449983\n    test 3102 line 345 azi2: 118.657849063154\n    test 3103 line 345 lat2: -2.127739360728\n    test 3104 line 345 lon2: 38.604245449983\n    test 3105 line 345 azi2: 118.657849063154\n    test 3106 line 346 lat: 37.188367\n    test 3107 line 346 lon: 90.865255\n    test 3108 line 346 fb: 104.826548\n    test 3109 line 346 lat2: 37.188366752551\n    test 3110 line 346 lon2: 90.865255121714\n    test 3111 line 346 azi2: 104.826548310924\n    test 3112 line 346 lat2: 37.188366752551\n    test 3113 line 346 lon2: 90.865255121714\n    test 3114 line 346 azi2: 104.826548310924\n    test 3115 line 347 lat: 46.019257\n    test 3116 line 347 lon: 20.402591\n    test 3117 line 347 fb: 31.068588\n    test 3118 line 347 lat2: 46.019256998097\n    test 3119 line 347 lon2: 20.402590686048\n    test 3120 line 347 azi2: 31.068587858373\n    test 3121 line 347 lat2: 46.019256998097\n    test 3122 line 347 lon2: 20.402590686048\n    test 3123 line 347 azi2: 31.068587858373\n    test 3124 line 348 lat: 9.023356\n    test 3125 line 348 lon: 106.678645\n    test 3126 line 348 fb: 141.375490\n    test 3127 line 348 lat2: 9.023355647006\n    test 3128 line 348 lon2: 106.678645473545\n    test 3129 line 348 azi2: 141.375490245645\n    test 3130 line 348 lat2: 9.023355647006\n    test 3131 line 348 lon2: 106.678645473545\n    test 3132 line 348 azi2: 141.375490245645\n    test 3133 line 349 lat: -1.321473\n    test 3134 line 349 lon: 67.418879\n    test 3135 line 349 fb: 105.590913\n    test 3136 line 349 lat2: -1.321473235187\n    test 3137 line 349 lon2: 67.418878731595\n    test 3138 line 349 azi2: 105.590912857546\n    test 3139 line 349 lat2: -1.321473235187\n    test 3140 line 349 lon2: 67.418878731595\n    test 3141 line 349 azi2: 105.590912857546\n    test 3142 line 350 lat: 7.459339\n    test 3143 line 350 lon: 30.150648\n    test 3144 line 350 fb: 109.667752\n    test 3145 line 350 lat2: 7.459338626177\n    test 3146 line 350 lon2: 30.150648477470\n    test 3147 line 350 azi2: 109.667751753912\n    test 3148 line 350 lat2: 7.459338626177\n    test 3149 line 350 lon2: 30.150648477470\n    test 3150 line 350 azi2: 109.667751753912\n    test 3151 line 351 lat: 16.344755\n    test 3152 line 351 lon: 146.829160\n    test 3153 line 351 fb: 128.666192\n    test 3154 line 351 lat2: 16.344755038185\n    test 3155 line 351 lon2: 146.829159972334\n    test 3156 line 351 azi2: 128.666191953616\n    test 3157 line 351 lat2: 16.344755038185\n    test 3158 line 351 lon2: 146.829159972334\n    test 3159 line 351 azi2: 128.666191953616\n    test 3160 line 352 lat: -55.785670\n    test 3161 line 352 lon: 158.086173\n    test 3162 line 352 fb: 33.903277\n    test 3163 line 352 lat2: -55.785670347270\n    test 3164 line 352 lon2: 158.086173376809\n    test 3165 line 352 azi2: 33.903276835071\n    test 3166 line 352 lat2: -55.785670347270\n    test 3167 line 352 lon2: 158.086173376809\n    test 3168 line 352 azi2: 33.903276835071\n    test 3169 line 353 lat: -74.409604\n    test 3170 line 353 lon: 111.280935\n    test 3171 line 353 fb: 78.510830\n    test 3172 line 353 lat2: -74.409603561050\n    test 3173 line 353 lon2: 111.280934985965\n    test 3174 line 353 azi2: 78.510830028461\n    test 3175 line 353 lat2: -74.409603561050\n    test 3176 line 353 lon2: 111.280934985965\n    test 3177 line 353 azi2: 78.510830028461\n    test 3178 line 354 lat: 9.922204\n    test 3179 line 354 lon: 138.538334\n    test 3180 line 354 fb: 125.268473\n    test 3181 line 354 lat2: 9.922203731557\n    test 3182 line 354 lon2: 138.538333703571\n    test 3183 line 354 azi2: 125.268473410634\n    test 3184 line 354 lat2: 9.922203731557\n    test 3185 line 354 lon2: 138.538333703571\n    test 3186 line 354 azi2: 125.268473410634\n    test 3187 line 355 lat: -27.082389\n    test 3188 line 355 lon: 91.425844\n    test 3189 line 355 fb: 153.267616\n    test 3190 line 355 lat2: -27.082389068807\n    test 3191 line 355 lon2: 91.425843733185\n    test 3192 line 355 azi2: 153.267616113653\n    test 3193 line 355 lat2: -27.082389068808  FAILED, KNOWN, expected -27.082389068807\n    test 3194 line 355 lon2: 91.425843733185\n    test 3195 line 355 azi2: 153.267616113653\n    test 3196 line 356 lat: 14.627508\n    test 3197 line 356 lon: 74.629605\n    test 3198 line 356 fb: 159.825211\n    test 3199 line 356 lat2: 14.627507744773\n    test 3200 line 356 lon2: 74.629604673488\n    test 3201 line 356 azi2: 159.825210987464\n    test 3202 line 356 lat2: 14.627507744773\n    test 3203 line 356 lon2: 74.629604673488\n    test 3204 line 356 azi2: 159.825210987464\n    test 3205 line 357 lat: 46.941087\n    test 3206 line 357 lon: 18.833436\n    test 3207 line 357 fb: 63.924917\n    test 3208 line 357 lat2: 46.941086934169\n    test 3209 line 357 lon2: 18.833435620675\n    test 3210 line 357 azi2: 63.924916745148\n    test 3211 line 357 lat2: 46.941086934169\n    test 3212 line 357 lon2: 18.833435620675\n    test 3213 line 357 azi2: 63.924916745148\n    test 3214 line 358 lat: 42.371666\n    test 3215 line 358 lon: 126.270074\n    test 3216 line 358 fb: 117.352107\n    test 3217 line 358 lat2: 42.371665615782\n    test 3218 line 358 lon2: 126.270074354353\n    test 3219 line 358 azi2: 117.352106840236\n    test 3220 line 358 lat2: 42.371665615782\n    test 3221 line 358 lon2: 126.270074354353\n    test 3222 line 358 azi2: 117.352106840236\n    test 3223 line 359 lat: 60.888684\n    test 3224 line 359 lon: 106.363657\n    test 3225 line 359 fb: 108.973271\n    test 3226 line 359 lat2: 60.888683732870\n    test 3227 line 359 lon2: 106.363656697522\n    test 3228 line 359 azi2: 108.973271101790\n    test 3229 line 359 lat2: 60.888683732870\n    test 3230 line 359 lon2: 106.363656697522\n    test 3231 line 359 azi2: 108.973271101790\n    test 3232 line 360 lat: 53.972090\n    test 3233 line 360 lon: 136.000658\n    test 3234 line 360 fb: 138.361589\n    test 3235 line 360 lat2: 53.972089572795\n    test 3236 line 360 lon2: 136.000657911062\n    test 3237 line 360 azi2: 138.361588598638\n    test 3238 line 360 lat2: 53.972089572795\n    test 3239 line 360 lon2: 136.000657911062\n    test 3240 line 360 azi2: 138.361588598638\n    test 3241 line 361 lat: 47.850867\n    test 3242 line 361 lon: 25.277934\n    test 3243 line 361 fb: 71.284668\n    test 3244 line 361 lat2: 47.850866585267\n    test 3245 line 361 lon2: 25.277933660114\n    test 3246 line 361 azi2: 71.284667717290\n    test 3247 line 361 lat2: 47.850866585267\n    test 3248 line 361 lon2: 25.277933660114\n    test 3249 line 361 azi2: 71.284667717290\n    test 3250 line 362 lat: 64.280614\n    test 3251 line 362 lon: 16.447697\n    test 3252 line 362 fb: 35.692750\n    test 3253 line 362 lat2: 64.280614171157\n    test 3254 line 362 lon2: 16.447696559380\n    test 3255 line 362 azi2: 35.692750218622\n    test 3256 line 362 lat2: 64.280614171157\n    test 3257 line 362 lon2: 16.447696559380\n    test 3258 line 362 azi2: 35.692750218622\n    test 3259 line 363 lat: -3.339044\n    test 3260 line 363 lon: 91.646260\n    test 3261 line 363 fb: 95.928001\n    test 3262 line 363 lat2: -3.339044133285\n    test 3263 line 363 lon2: 91.646260438368\n    test 3264 line 363 azi2: 95.928000721064\n    test 3265 line 363 lat2: -3.339044133285\n    test 3266 line 363 lon2: 91.646260438368\n    test 3267 line 363 azi2: 95.928000721064\n    test 3268 line 364 lat: -46.029875\n    test 3269 line 364 lon: 30.599197\n    test 3270 line 364 fb: 146.810525\n    test 3271 line 364 lat2: -46.029874698950\n    test 3272 line 364 lon2: 30.599196661458\n    test 3273 line 364 azi2: 146.810525207719\n    test 3274 line 364 lat2: -46.029874698950\n    test 3275 line 364 lon2: 30.599196661458\n    test 3276 line 364 azi2: 146.810525207719\n    test 3277 line 365 lat: 25.605076\n    test 3278 line 365 lon: 14.382003\n    test 3279 line 365 fb: 116.566847\n    test 3280 line 365 lat2: 25.605076391429\n    test 3281 line 365 lon2: 14.382002787798\n    test 3282 line 365 azi2: 116.566847403824\n    test 3283 line 365 lat2: 25.605076391429\n    test 3284 line 365 lon2: 14.382002787798\n    test 3285 line 365 azi2: 116.566847403824\n    test 3286 line 366 lat: -15.052413\n    test 3287 line 366 lon: 150.673460\n    test 3288 line 366 fb: 64.906721\n    test 3289 line 366 lat2: -15.052412502534\n    test 3290 line 366 lon2: 150.673460237577\n    test 3291 line 366 azi2: 64.906720897603\n    test 3292 line 366 lat2: -15.052412502534\n    test 3293 line 366 lon2: 150.673460237577\n    test 3294 line 366 azi2: 64.906720897603\n    test 3295 line 367 lat: -24.631882\n    test 3296 line 367 lon: 170.403348\n    test 3297 line 367 fb: 38.497784\n    test 3298 line 367 lat2: -24.631881773331\n    test 3299 line 367 lon2: 170.403348095216\n    test 3300 line 367 azi2: 38.497783925432\n    test 3301 line 367 lat2: -24.631881773331\n    test 3302 line 367 lon2: 170.403348095216\n    test 3303 line 367 azi2: 38.497783925432\n    test 3304 line 368 lat: 84.347730\n    test 3305 line 368 lon: 37.352130\n    test 3306 line 368 fb: 38.599794\n    test 3307 line 368 lat2: 84.347730272741\n    test 3308 line 368 lon2: 37.352130023033\n    test 3309 line 368 azi2: 38.599794179850\n    test 3310 line 368 lat2: 84.347730272741\n    test 3311 line 368 lon2: 37.352130023033\n    test 3312 line 368 azi2: 38.599794179850\n    test 3313 line 369 lat: 11.680773\n    test 3314 line 369 lon: 170.552617\n    test 3315 line 369 fb: 174.460436\n    test 3316 line 369 lat2: 11.680772997529\n    test 3317 line 369 lon2: 170.552617119135\n    test 3318 line 369 azi2: 174.460435573783\n    test 3319 line 369 lat2: 11.680772997529\n    test 3320 line 369 lon2: 170.552617119135\n    test 3321 line 369 azi2: 174.460435573783\n    test 3322 line 370 lat: -4.129058\n    test 3323 line 370 lon: 136.743627\n    test 3324 line 370 fb: 142.147604\n    test 3325 line 370 lat2: -4.129057873299\n    test 3326 line 370 lon2: 136.743626644380\n    test 3327 line 370 azi2: 142.147603954035\n    test 3328 line 370 lat2: -4.129057873299\n    test 3329 line 370 lon2: 136.743626644380\n    test 3330 line 370 azi2: 142.147603954035\n    test 3331 line 371 lat: 22.191782\n    test 3332 line 371 lon: 164.962392\n    test 3333 line 371 fb: 163.266967\n    test 3334 line 371 lat2: 22.191782097783\n    test 3335 line 371 lon2: 164.962391587580\n    test 3336 line 371 azi2: 163.266967353376\n    test 3337 line 371 lat2: 22.191782097783\n    test 3338 line 371 lon2: 164.962391587580\n    test 3339 line 371 azi2: 163.266967353376\n    test 3340 line 372 lat: -20.517212\n    test 3341 line 372 lon: 128.116444\n    test 3342 line 372 fb: 110.769757\n    test 3343 line 372 lat2: -20.517212185628\n    test 3344 line 372 lon2: 128.116443546305\n    test 3345 line 372 azi2: 110.769757212730\n    test 3346 line 372 lat2: -20.517212185628\n    test 3347 line 372 lon2: 128.116443546305\n    test 3348 line 372 azi2: 110.769757212730\n    test 3349 line 373 lat: -71.269219\n    test 3350 line 373 lon: 117.744329\n    test 3351 line 373 fb: 81.341006\n    test 3352 line 373 lat2: -71.269218648518\n    test 3353 line 373 lon2: 117.744328537214\n    test 3354 line 373 azi2: 81.341005509003\n    test 3355 line 373 lat2: -71.269218648518\n    test 3356 line 373 lon2: 117.744328537214\n    test 3357 line 373 azi2: 81.341005509003\n    test 3358 line 374 lat: -28.381893\n    test 3359 line 374 lon: 4.526029\n    test 3360 line 374 fb: 176.348678\n    test 3361 line 374 lat2: -28.381892766057\n    test 3362 line 374 lon2: 4.526028955177\n    test 3363 line 374 azi2: 176.348678015377\n    test 3364 line 374 lat2: -28.381892766057\n    test 3365 line 374 lon2: 4.526028955177\n    test 3366 line 374 azi2: 176.348678015377\n    test 3367 line 375 lat: -28.786090\n    test 3368 line 375 lon: 25.937634\n    test 3369 line 375 fb: 147.973102\n    test 3370 line 375 lat2: -28.786089606638\n    test 3371 line 375 lon2: 25.937634058027\n    test 3372 line 375 azi2: 147.973102126478\n    test 3373 line 375 lat2: -28.786089606638\n    test 3374 line 375 lon2: 25.937634058027\n    test 3375 line 375 azi2: 147.973102126478\n    test 3376 line 376 lat: -37.872672\n    test 3377 line 376 lon: 116.904193\n    test 3378 line 376 fb: 88.568636\n    test 3379 line 376 lat2: -37.872671755645\n    test 3380 line 376 lon2: 116.904192578457\n    test 3381 line 376 azi2: 88.568636418662\n    test 3382 line 376 lat2: -37.872671755645\n    test 3383 line 376 lon2: 116.904192578457\n    test 3384 line 376 azi2: 88.568636418662\n    test 3385 line 377 lat: -26.321447\n    test 3386 line 377 lon: 85.206987\n    test 3387 line 377 fb: 112.408109\n    test 3388 line 377 lat2: -26.321446841940\n    test 3389 line 377 lon2: 85.206986852002  FAILED, KNOWN, expected 85.206986852001\n    test 3390 line 377 azi2: 112.408108683681\n    test 3391 line 377 lat2: -26.321446841940\n    test 3392 line 377 lon2: 85.206986852001\n    test 3393 line 377 azi2: 112.408108683681\n    test 3394 line 378 lat: -54.824260\n    test 3395 line 378 lon: 156.561574\n    test 3396 line 378 fb: 45.534810\n    test 3397 line 378 lat2: -54.824260467184\n    test 3398 line 378 lon2: 156.561573965853\n    test 3399 line 378 azi2: 45.534810497878\n    test 3400 line 378 lat2: -54.824260467184\n    test 3401 line 378 lon2: 156.561573965853\n    test 3402 line 378 azi2: 45.534810497878\n    test 3403 line 379 lat: -16.423550\n    test 3404 line 379 lon: 36.685134\n    test 3405 line 379 fb: 149.426790\n    test 3406 line 379 lat2: -16.423550298805\n    test 3407 line 379 lon2: 36.685133578511\n    test 3408 line 379 azi2: 149.426789575292\n    test 3409 line 379 lat2: -16.423550298805\n    test 3410 line 379 lon2: 36.685133578511\n    test 3411 line 379 azi2: 149.426789575292\n    test 3412 line 380 lat: -16.806591\n    test 3413 line 380 lon: 149.738610\n    test 3414 line 380 fb: 108.898472\n    test 3415 line 380 lat2: -16.806590952462\n    test 3416 line 380 lon2: 149.738610286185\n    test 3417 line 380 azi2: 108.898472198507\n    test 3418 line 380 lat2: -16.806590952462\n    test 3419 line 380 lon2: 149.738610286185\n    test 3420 line 380 azi2: 108.898472198507\n    test 3421 line 381 lat: 61.200095\n    test 3422 line 381 lon: 179.666196\n    test 3423 line 381 fb: 179.746894\n    test 3424 line 381 lat2: 61.200095175201\n    test 3425 line 381 lon2: 179.666196014679\n    test 3426 line 381 azi2: 179.746893753530\n    test 3427 line 381 lat2: 61.200095175201\n    test 3428 line 381 lon2: 179.666196014679\n    test 3429 line 381 azi2: 179.746893753530\n    test 3430 line 382 lat: 66.474418\n    test 3431 line 382 lon: 1.552183\n    test 3432 line 382 fb: 2.088868\n    test 3433 line 382 lat2: 66.474418401288\n    test 3434 line 382 lon2: 1.552183188407\n    test 3435 line 382 azi2: 2.088868324926\n    test 3436 line 382 lat2: 66.474418401288\n    test 3437 line 382 lon2: 1.552183188407\n    test 3438 line 382 azi2: 2.088868324926\n    test 3439 line 383 lat: -75.177220\n    test 3440 line 383 lon: 158.741597\n    test 3441 line 383 fb: 24.127094\n    test 3442 line 383 lat2: -75.177219719926\n    test 3443 line 383 lon2: 158.741596988185\n    test 3444 line 383 azi2: 24.127093846134\n    test 3445 line 383 lat2: -75.177219719926\n    test 3446 line 383 lon2: 158.741596988185\n    test 3447 line 383 azi2: 24.127093846134\n    test 3448 line 384 lat: 43.592977\n    test 3449 line 384 lon: 90.684526\n    test 3450 line 384 fb: 91.539242\n    test 3451 line 384 lat2: 43.592976578444\n    test 3452 line 384 lon2: 90.684525887486\n    test 3453 line 384 azi2: 91.539242394540\n    test 3454 line 384 lat2: 43.592976578444\n    test 3455 line 384 lon2: 90.684525887486\n    test 3456 line 384 azi2: 91.539242394541  FAILED, KNOWN, expected 91.539242394540\n    test 3457 line 385 lat: -5.075415\n    test 3458 line 385 lon: 101.127103\n    test 3459 line 385 fb: 107.948022\n    test 3460 line 385 lat2: -5.075415464229\n    test 3461 line 385 lon2: 101.127103351067\n    test 3462 line 385 azi2: 107.948021613622\n    test 3463 line 385 lat2: -5.075415464229\n    test 3464 line 385 lon2: 101.127103351067\n    test 3465 line 385 azi2: 107.948021613622\n    test 3466 line 386 lat: 50.406166\n    test 3467 line 386 lon: 135.501939\n    test 3468 line 386 fb: 162.003144\n    test 3469 line 386 lat2: 50.406165949083\n    test 3470 line 386 lon2: 135.501938931444\n    test 3471 line 386 azi2: 162.003144394969\n    test 3472 line 386 lat2: 50.406165949083\n    test 3473 line 386 lon2: 135.501938931444\n    test 3474 line 386 azi2: 162.003144394969\n    test 3475 line 387 lat: -17.207733\n    test 3476 line 387 lon: 43.634692\n    test 3477 line 387 fb: 136.506793\n    test 3478 line 387 lat2: -17.207732564306\n    test 3479 line 387 lon2: 43.634692466982\n    test 3480 line 387 azi2: 136.506792603897\n    test 3481 line 387 lat2: -17.207732564306\n    test 3482 line 387 lon2: 43.634692466982\n    test 3483 line 387 azi2: 136.506792603897\n    test 3484 line 388 lat: -28.917723\n    test 3485 line 388 lon: 163.486470\n    test 3486 line 388 fb: 38.990274\n    test 3487 line 388 lat2: -28.917723347931\n    test 3488 line 388 lon2: 163.486470248682\n    test 3489 line 388 azi2: 38.990273918754\n    test 3490 line 388 lat2: -28.917723347931\n    test 3491 line 388 lon2: 163.486470248682\n    test 3492 line 388 azi2: 38.990273918754\n    test 3493 line 389 lat: -32.592414\n    test 3494 line 389 lon: 76.048812\n    test 3495 line 389 fb: 98.024249\n    test 3496 line 389 lat2: -32.592414472935\n    test 3497 line 389 lon2: 76.048812057267\n    test 3498 line 389 azi2: 98.024248734062\n    test 3499 line 389 lat2: -32.592414472935\n    test 3500 line 389 lon2: 76.048812057267\n    test 3501 line 389 azi2: 98.024248734062\n    test 3502 line 390 lat: 50.602735\n    test 3503 line 390 lon: 49.792893\n    test 3504 line 390 fb: 110.500761\n    test 3505 line 390 lat2: 50.602735331532\n    test 3506 line 390 lon2: 49.792893095354\n    test 3507 line 390 azi2: 110.500760610103\n    test 3508 line 390 lat2: 50.602735331532\n    test 3509 line 390 lon2: 49.792893095354\n    test 3510 line 390 azi2: 110.500760610103\n    test 3511 line 391 lat: -4.912232\n    test 3512 line 391 lon: 142.681744\n    test 3513 line 391 fb: 119.428358\n    test 3514 line 391 lat2: -4.912231564840\n    test 3515 line 391 lon2: 142.681743549937\n    test 3516 line 391 azi2: 119.428358444443\n    test 3517 line 391 lat2: -4.912231564840\n    test 3518 line 391 lon2: 142.681743549937\n    test 3519 line 391 azi2: 119.428358444443\n    test 3520 line 392 lat: -45.213515\n    test 3521 line 392 lon: 131.987859\n    test 3522 line 392 fb: 96.014100\n    test 3523 line 392 lat2: -45.213514932524\n    test 3524 line 392 lon2: 131.987859404857\n    test 3525 line 392 azi2: 96.014100177112\n    test 3526 line 392 lat2: -45.213514932524\n    test 3527 line 392 lon2: 131.987859404857\n    test 3528 line 392 azi2: 96.014100177112\n    test 3529 line 393 lat: -27.151096\n    test 3530 line 393 lon: 127.729463\n    test 3531 line 393 fb: 85.960623\n    test 3532 line 393 lat2: -27.151095883523\n    test 3533 line 393 lon2: 127.729463064736\n    test 3534 line 393 azi2: 85.960623495334\n    test 3535 line 393 lat2: -27.151095883523\n    test 3536 line 393 lon2: 127.729463064736\n    test 3537 line 393 azi2: 85.960623495334\n    test 3538 line 394 lat: 8.000358\n    test 3539 line 394 lon: 144.233747\n    test 3540 line 394 fb: 142.364017\n    test 3541 line 394 lat2: 8.000357843774\n    test 3542 line 394 lon2: 144.233746766535\n    test 3543 line 394 azi2: 142.364016793767\n    test 3544 line 394 lat2: 8.000357843774\n    test 3545 line 394 lon2: 144.233746766535\n    test 3546 line 394 azi2: 142.364016793767\n    test 3547 line 395 lat: -6.431774\n    test 3548 line 395 lon: 170.549196\n    test 3549 line 395 fb: 122.180851\n    test 3550 line 395 lat2: -6.431773707290\n    test 3551 line 395 lon2: 170.549196384306\n    test 3552 line 395 azi2: 122.180850600243\n    test 3553 line 395 lat2: -6.431773707290\n    test 3554 line 395 lon2: 170.549196384306\n    test 3555 line 395 azi2: 122.180850600243\n    test 3556 line 396 lat: 62.834146\n    test 3557 line 396 lon: 171.218298\n    test 3558 line 396 fb: 175.117433\n    test 3559 line 396 lat2: 62.834146216572\n    test 3560 line 396 lon2: 171.218297548713\n    test 3561 line 396 azi2: 175.117432600362\n    test 3562 line 396 lat2: 62.834146216572\n    test 3563 line 396 lon2: 171.218297548713\n    test 3564 line 396 azi2: 175.117432600362\n    test 3565 line 397 lat: 22.902814\n    test 3566 line 397 lon: 70.233438\n    test 3567 line 397 fb: 120.935912\n    test 3568 line 397 lat2: 22.902813652262\n    test 3569 line 397 lon2: 70.233438162142\n    test 3570 line 397 azi2: 120.935911762169\n    test 3571 line 397 lat2: 22.902813652262\n    test 3572 line 397 lon2: 70.233438162142\n    test 3573 line 397 azi2: 120.935911762169\n    test 3574 line 398 lat: 22.584853\n    test 3575 line 398 lon: 31.616865\n    test 3576 line 398 fb: 107.124038\n    test 3577 line 398 lat2: 22.584853282541\n    test 3578 line 398 lon2: 31.616864803984\n    test 3579 line 398 azi2: 107.124038156545\n    test 3580 line 398 lat2: 22.584853282541\n    test 3581 line 398 lon2: 31.616864803984\n    test 3582 line 398 azi2: 107.124038156545\n    test 3583 line 399 lat: 31.269173\n    test 3584 line 399 lon: 65.399306\n    test 3585 line 399 fb: 151.892600\n    test 3586 line 399 lat2: 31.269173344204\n    test 3587 line 399 lon2: 65.399305777763\n    test 3588 line 399 azi2: 151.892599739667\n    test 3589 line 399 lat2: 31.269173344204\n    test 3590 line 399 lon2: 65.399305777763\n    test 3591 line 399 azi2: 151.892599739668  FAILED, KNOWN, expected 151.892599739667\n    test 3592 line 400 lat: 35.519614\n    test 3593 line 400 lon: 143.165122\n    test 3594 line 400 fb: 161.479891\n    test 3595 line 400 lat2: 35.519613515115\n    test 3596 line 400 lon2: 143.165121509798\n    test 3597 line 400 azi2: 161.479891246031\n    test 3598 line 400 lat2: 35.519613515115\n    test 3599 line 400 lon2: 143.165121509798\n    test 3600 line 400 azi2: 161.479891246031\n    test 3601 line 401 lat: -53.741922\n    test 3602 line 401 lon: 67.121402\n    test 3603 line 401 fb: 130.871188\n    test 3604 line 401 lat2: -53.741921506580\n    test 3605 line 401 lon2: 67.121402135047\n    test 3606 line 401 azi2: 130.871188003209\n    test 3607 line 401 lat2: -53.741921506580\n    test 3608 line 401 lon2: 67.121402135047\n    test 3609 line 401 azi2: 130.871188003209\n    test 3610 line 402 lat: 9.046227\n    test 3611 line 402 lon: 35.933737\n    test 3612 line 402 fb: 175.770789\n    test 3613 line 402 lat2: 9.046227267580\n    test 3614 line 402 lon2: 35.933736921417\n    test 3615 line 402 azi2: 175.770788535406\n    test 3616 line 402 lat2: 9.046227267580\n    test 3617 line 402 lon2: 35.933736921417\n    test 3618 line 402 azi2: 175.770788535406\n    test 3619 line 403 lat: 75.917034\n    test 3620 line 403 lon: 125.150808\n    test 3621 line 403 fb: 135.354467\n    test 3622 line 403 lat2: 75.917034235438\n    test 3623 line 403 lon2: 125.150808062636\n    test 3624 line 403 azi2: 135.354466840051\n    test 3625 line 403 lat2: 75.917034235438\n    test 3626 line 403 lon2: 125.150808062636\n    test 3627 line 403 azi2: 135.354466840051\n    test 3628 line 404 lat: -39.724826\n    test 3629 line 404 lon: 77.372087\n    test 3630 line 404 fb: 111.852577\n    test 3631 line 404 lat2: -39.724825618504  FAILED, KNOWN, expected -39.724825618503\n    test 3632 line 404 lon2: 77.372086855267\n    test 3633 line 404 azi2: 111.852577362108\n    test 3634 line 404 lat2: -39.724825618504  FAILED, KNOWN, expected -39.724825618503\n    test 3635 line 404 lon2: 77.372086855267\n    test 3636 line 404 azi2: 111.852577362108\n    test 3637 line 405 lat: 3.917212\n    test 3638 line 405 lon: 142.621752\n    test 3639 line 405 fb: 124.176952\n    test 3640 line 405 lat2: 3.917212154431\n    test 3641 line 405 lon2: 142.621751764236\n    test 3642 line 405 azi2: 124.176952499321\n    test 3643 line 405 lat2: 3.917212154431\n    test 3644 line 405 lon2: 142.621751764236\n    test 3645 line 405 azi2: 124.176952499321\n    test 3646 line 406 lat: 60.230364\n    test 3647 line 406 lon: 26.245689\n    test 3648 line 406 fb: 48.509486\n    test 3649 line 406 lat2: 60.230364486607\n    test 3650 line 406 lon2: 26.245688508507\n    test 3651 line 406 azi2: 48.509486474608\n    test 3652 line 406 lat2: 60.230364486607\n    test 3653 line 406 lon2: 26.245688508507\n    test 3654 line 406 azi2: 48.509486474608\n    test 3655 line 407 lat: 29.597322\n    test 3656 line 407 lon: 29.129808\n    test 3657 line 407 fb: 79.288539\n    test 3658 line 407 lat2: 29.597322070518\n    test 3659 line 407 lon2: 29.129807944898\n    test 3660 line 407 azi2: 79.288538667829\n    test 3661 line 407 lat2: 29.597322070518\n    test 3662 line 407 lon2: 29.129807944898\n    test 3663 line 407 azi2: 79.288538667829\n    test 3664 line 408 lat: -62.913760\n    test 3665 line 408 lon: 14.845859\n    test 3666 line 408 fb: 165.794536\n    test 3667 line 408 lat2: -62.913759669564\n    test 3668 line 408 lon2: 14.845859018930\n    test 3669 line 408 azi2: 165.794535940950\n    test 3670 line 408 lat2: -62.913759669564\n    test 3671 line 408 lon2: 14.845859018930\n    test 3672 line 408 azi2: 165.794535940950\n    test 3673 line 409 lat: 15.360446\n    test 3674 line 409 lon: 161.450680\n    test 3675 line 409 fb: 164.457024\n    test 3676 line 409 lat2: 15.360445685187\n    test 3677 line 409 lon2: 161.450680426049\n    test 3678 line 409 azi2: 164.457024354600\n    test 3679 line 409 lat2: 15.360445685187\n    test 3680 line 409 lon2: 161.450680426049\n    test 3681 line 409 azi2: 164.457024354600\n    test 3682 line 410 lat: -58.330109\n    test 3683 line 410 lon: 17.628134\n    test 3684 line 410 fb: 161.349788\n    test 3685 line 410 lat2: -58.330108507597\n    test 3686 line 410 lon2: 17.628133627705\n    test 3687 line 410 azi2: 161.349788081184\n    test 3688 line 410 lat2: -58.330108507597\n    test 3689 line 410 lon2: 17.628133627705\n    test 3690 line 410 azi2: 161.349788081184\n    test 3691 line 411 lat: -68.514277\n    test 3692 line 411 lon: 19.958792\n    test 3693 line 411 fb: 162.262811\n    test 3694 line 411 lat2: -68.514276940652\n    test 3695 line 411 lon2: 19.958792438281\n    test 3696 line 411 azi2: 162.262811488702\n    test 3697 line 411 lat2: -68.514276940652\n    test 3698 line 411 lon2: 19.958792438281\n    test 3699 line 411 azi2: 162.262811488702\n    test 3700 line 412 lat: -23.686766\n    test 3701 line 412 lon: 77.544158\n    test 3702 line 412 fb: 97.517041\n    test 3703 line 412 lat2: -23.686765736999\n    test 3704 line 412 lon2: 77.544158137101\n    test 3705 line 412 azi2: 97.517041033585\n    test 3706 line 412 lat2: -23.686765736999\n    test 3707 line 412 lon2: 77.544158137101\n    test 3708 line 412 azi2: 97.517041033585\n    test 3709 line 413 lat: -50.843575\n    test 3710 line 413 lon: 118.404202\n    test 3711 line 413 fb: 75.928950\n    test 3712 line 413 lat2: -50.843574559525\n    test 3713 line 413 lon2: 118.404202153051\n    test 3714 line 413 azi2: 75.928950296488\n    test 3715 line 413 lat2: -50.843574559525\n    test 3716 line 413 lon2: 118.404202153051\n    test 3717 line 413 azi2: 75.928950296488\n    test 3718 line 414 lat: 44.438742\n    test 3719 line 414 lon: 152.028260\n    test 3720 line 414 fb: 156.092336\n    test 3721 line 414 lat2: 44.438741945021\n    test 3722 line 414 lon2: 152.028260148130\n    test 3723 line 414 azi2: 156.092336139519\n    test 3724 line 414 lat2: 44.438741945021\n    test 3725 line 414 lon2: 152.028260148130\n    test 3726 line 414 azi2: 156.092336139519\n    test 3727 line 415 lat: 33.820395\n    test 3728 line 415 lon: 178.008342\n    test 3729 line 415 fb: 177.679586\n    test 3730 line 415 lat2: 33.820395378014\n    test 3731 line 415 lon2: 178.008341908011\n    test 3732 line 415 azi2: 177.679585823345\n    test 3733 line 415 lat2: 33.820395378014\n    test 3734 line 415 lon2: 178.008341908011\n    test 3735 line 415 azi2: 177.679585823345\n    test 3736 line 416 lat: 27.506735\n    test 3737 line 416 lon: 153.242452\n    test 3738 line 416 fb: 150.262824\n    test 3739 line 416 lat2: 27.506735286152\n    test 3740 line 416 lon2: 153.242452449881\n    test 3741 line 416 azi2: 150.262824421351\n    test 3742 line 416 lat2: 27.506735286152\n    test 3743 line 416 lon2: 153.242452449881\n    test 3744 line 416 azi2: 150.262824421351\n    test 3745 line 417 lat: -31.250437\n    test 3746 line 417 lon: 179.014499\n    test 3747 line 417 fb: 178.103046\n    test 3748 line 417 lat2: -31.250436707468\n    test 3749 line 417 lon2: 179.014498940190\n    test 3750 line 417 azi2: 178.103045898455\n    test 3751 line 417 lat2: -31.250436707468\n    test 3752 line 417 lon2: 179.014498940190\n    test 3753 line 417 azi2: 178.103045898455\n    test 3754 line 418 lat: 40.341542\n    test 3755 line 418 lon: 109.605984\n    test 3756 line 418 fb: 105.401958\n    test 3757 line 418 lat2: 40.341542234586\n    test 3758 line 418 lon2: 109.605984313079\n    test 3759 line 418 azi2: 105.401958406556\n    test 3760 line 418 lat2: 40.341542234586\n    test 3761 line 418 lon2: 109.605984313079\n    test 3762 line 418 azi2: 105.401958406556\n    test 3763 line 419 lat: 48.318632\n    test 3764 line 419 lon: 92.282799\n    test 3765 line 419 fb: 111.987482\n    test 3766 line 419 lat2: 48.318632112439\n    test 3767 line 419 lon2: 92.282799489208\n    test 3768 line 419 azi2: 111.987482299261\n    test 3769 line 419 lat2: 48.318632112439\n    test 3770 line 419 lon2: 92.282799489208\n    test 3771 line 419 azi2: 111.987482299261\n    test 3772 line 420 lat: 0.675299\n    test 3773 line 420 lon: 6.789301\n    test 3774 line 420 fb: 164.921926\n    test 3775 line 420 lat2: 0.675299289459\n    test 3776 line 420 lon2: 6.789300798072\n    test 3777 line 420 azi2: 164.921926385405\n    test 3778 line 420 lat2: 0.675299289459\n    test 3779 line 420 lon2: 6.789300798072\n    test 3780 line 420 azi2: 164.921926385405\n    test 3781 line 421 lat: 33.232812\n    test 3782 line 421 lon: 170.163205\n    test 3783 line 421 fb: 175.445424\n    test 3784 line 421 lat2: 33.232811536179\n    test 3785 line 421 lon2: 170.163205247232  FAILED, KNOWN, expected 170.163205247231\n    test 3786 line 421 azi2: 175.445424087910\n    test 3787 line 421 lat2: 33.232811536179\n    test 3788 line 421 lon2: 170.163205247232  FAILED, KNOWN, expected 170.163205247231\n    test 3789 line 421 azi2: 175.445424087910\n    test 3790 line 422 lat: 51.425532\n    test 3791 line 422 lon: 167.128188\n    test 3792 line 422 fb: 169.431307\n    test 3793 line 422 lat2: 51.425532151818\n    test 3794 line 422 lon2: 167.128188073883\n    test 3795 line 422 azi2: 169.431306547043\n    test 3796 line 422 lat2: 51.425532151818\n    test 3797 line 422 lon2: 167.128188073883\n    test 3798 line 422 azi2: 169.431306547043\n    test 3799 line 423 lat: 72.043795\n    test 3800 line 423 lon: 23.320161\n    test 3801 line 423 fb: 85.002463\n    test 3802 line 423 lat2: 72.043794732818\n    test 3803 line 423 lon2: 23.320160820556\n    test 3804 line 423 azi2: 85.002463342037\n    test 3805 line 423 lat2: 72.043794732818\n    test 3806 line 423 lon2: 23.320160820556\n    test 3807 line 423 azi2: 85.002463342037\n    test 3808 line 424 lat: 55.279253\n    test 3809 line 424 lon: 148.483684\n    test 3810 line 424 fb: 155.614243\n    test 3811 line 424 lat2: 55.279252586695\n    test 3812 line 424 lon2: 148.483684405588\n    test 3813 line 424 azi2: 155.614243012977\n    test 3814 line 424 lat2: 55.279252586695\n    test 3815 line 424 lon2: 148.483684405588\n    test 3816 line 424 azi2: 155.614243012977\n    test 3817 line 425 lat: 50.054601\n    test 3818 line 425 lon: 43.609545\n    test 3819 line 425 fb: 100.758451\n    test 3820 line 425 lat2: 50.054601019930\n    test 3821 line 425 lon2: 43.609545475731\n    test 3822 line 425 azi2: 100.758450815354\n    test 3823 line 425 lat2: 50.054601019930\n    test 3824 line 425 lon2: 43.609545475731\n    test 3825 line 425 azi2: 100.758450815354\n    test 3826 line 426 lat: 31.194436\n    test 3827 line 426 lon: 31.458476\n    test 3828 line 426 fb: 92.204244\n    test 3829 line 426 lat2: 31.194436445411\n    test 3830 line 426 lon2: 31.458476146984\n    test 3831 line 426 azi2: 92.204244235305\n    test 3832 line 426 lat2: 31.194436445411\n    test 3833 line 426 lon2: 31.458476146984\n    test 3834 line 426 azi2: 92.204244235305\n    test 3835 line 427 lat: 57.758262\n    test 3836 line 427 lon: 164.499274\n    test 3837 line 427 fb: 162.877999\n    test 3838 line 427 lat2: 57.758262113137\n    test 3839 line 427 lon2: 164.499274258053\n    test 3840 line 427 azi2: 162.877999232894\n    test 3841 line 427 lat2: 57.758262113137\n    test 3842 line 427 lon2: 164.499274258053\n    test 3843 line 427 azi2: 162.877999232894\n    test 3844 line 428 lat: 27.006898\n    test 3845 line 428 lon: 173.173812\n    test 3846 line 428 fb: 177.878074\n    test 3847 line 428 lat2: 27.006897756516\n    test 3848 line 428 lon2: 173.173811781657\n    test 3849 line 428 azi2: 177.878073603766\n    test 3850 line 428 lat2: 27.006897756516\n    test 3851 line 428 lon2: 173.173811781657\n    test 3852 line 428 azi2: 177.878073603766\n    test 3853 line 429 lat: -62.917581\n    test 3854 line 429 lon: 18.990464\n    test 3855 line 429 fb: 169.629168\n    test 3856 line 429 lat2: -62.917580953804\n    test 3857 line 429 lon2: 18.990464058493\n    test 3858 line 429 azi2: 169.629168390979\n    test 3859 line 429 lat2: -62.917580953804\n    test 3860 line 429 lon2: 18.990464058493\n    test 3861 line 429 azi2: 169.629168390979\n    test 3862 line 430 lat: -43.128167\n    test 3863 line 430 lon: 61.680974\n    test 3864 line 430 fb: 135.269008\n    test 3865 line 430 lat2: -43.128166633902\n    test 3866 line 430 lon2: 61.680974170546\n    test 3867 line 430 azi2: 135.269008366092\n    test 3868 line 430 lat2: -43.128166633902\n    test 3869 line 430 lon2: 61.680974170546\n    test 3870 line 430 azi2: 135.269008366092\n    test 3871 line 431 lat: -49.314417\n    test 3872 line 431 lon: 55.826072\n    test 3873 line 431 fb: 131.974574\n    test 3874 line 431 lat2: -49.314417365795\n    test 3875 line 431 lon2: 55.826071541563\n    test 3876 line 431 azi2: 131.974573587520\n    test 3877 line 431 lat2: -49.314417365795\n    test 3878 line 431 lon2: 55.826071541563\n    test 3879 line 431 azi2: 131.974573587520\n    test 3880 line 432 lat: -24.322411\n    test 3881 line 432 lon: 103.867391\n    test 3882 line 432 fb: 139.458674\n    test 3883 line 432 lat2: -24.322411486444\n    test 3884 line 432 lon2: 103.867391100271\n    test 3885 line 432 azi2: 139.458674175181\n    test 3886 line 432 lat2: -24.322411486444\n    test 3887 line 432 lon2: 103.867391100271\n    test 3888 line 432 azi2: 139.458674175181\n    test 3889 line 433 lat: -19.557319\n    test 3890 line 433 lon: 81.358495\n    test 3891 line 433 fb: 134.029610\n    test 3892 line 433 lat2: -19.557318635270\n    test 3893 line 433 lon2: 81.358494523202\n    test 3894 line 433 azi2: 134.029609915778\n    test 3895 line 433 lat2: -19.557318635270\n    test 3896 line 433 lon2: 81.358494523202\n    test 3897 line 433 azi2: 134.029609915778\n    test 3898 line 434 lat: 7.830115\n    test 3899 line 434 lon: 5.114172\n    test 3900 line 434 fb: 175.025641\n    test 3901 line 434 lat2: 7.830115253087\n    test 3902 line 434 lon2: 5.114172330857\n    test 3903 line 434 azi2: 175.025640902819\n    test 3904 line 434 lat2: 7.830115253087\n    test 3905 line 434 lon2: 5.114172330857\n    test 3906 line 434 azi2: 175.025640902819\n    test 3907 line 435 lat: -65.834623\n    test 3908 line 435 lon: 41.772796\n    test 3909 line 435 fb: 143.178050\n    test 3910 line 435 lat2: -65.834622858584\n    test 3911 line 435 lon2: 41.772796000787\n    test 3912 line 435 azi2: 143.178050120951\n    test 3913 line 435 lat2: -65.834622858584\n    test 3914 line 435 lon2: 41.772796000787\n    test 3915 line 435 azi2: 143.178050120951\n    test 3916 line 436 lat: -7.997604\n    test 3917 line 436 lon: 31.723397\n    test 3918 line 436 fb: 153.896388\n    test 3919 line 436 lat2: -7.997604143032\n    test 3920 line 436 lon2: 31.723396618974\n    test 3921 line 436 azi2: 153.896387549518\n    test 3922 line 436 lat2: -7.997604143032\n    test 3923 line 436 lon2: 31.723396618974\n    test 3924 line 436 azi2: 153.896387549518\n    test 3925 line 437 lat: -22.173130\n    test 3926 line 437 lon: 164.896770\n    test 3927 line 437 fb: 152.675597\n    test 3928 line 437 lat2: -22.173129586699\n    test 3929 line 437 lon2: 164.896770399383\n    test 3930 line 437 azi2: 152.675596916021\n    test 3931 line 437 lat2: -22.173129586699\n    test 3932 line 437 lon2: 164.896770399383\n    test 3933 line 437 azi2: 152.675596916021\n    test 3934 line 438 lat: 35.085786\n    test 3935 line 438 lon: 173.892271\n    test 3936 line 438 fb: 171.931231\n    test 3937 line 438 lat2: 35.085785799083\n    test 3938 line 438 lon2: 173.892270533009\n    test 3939 line 438 azi2: 171.931230872910\n    test 3940 line 438 lat2: 35.085785799083\n    test 3941 line 438 lon2: 173.892270533009\n    test 3942 line 438 azi2: 171.931230872910\n    test 3943 line 439 lat: -25.378865\n    test 3944 line 439 lon: 2.197740\n    test 3945 line 439 fb: 178.756775\n    test 3946 line 439 lat2: -25.378865450268\n    test 3947 line 439 lon2: 2.197739985587\n    test 3948 line 439 azi2: 178.756775063163\n    test 3949 line 439 lat2: -25.378865450269  FAILED, KNOWN, expected -25.378865450268\n    test 3950 line 439 lon2: 2.197739985587\n    test 3951 line 439 azi2: 178.756775063163\n    test 3952 line 440 lat: -13.782608\n    test 3953 line 440 lon: 143.084799\n    test 3954 line 440 fb: 141.818572\n    test 3955 line 440 lat2: -13.782608118540\n    test 3956 line 440 lon2: 143.084798779239\n    test 3957 line 440 azi2: 141.818572490275\n    test 3958 line 440 lat2: -13.782608118540\n    test 3959 line 440 lon2: 143.084798779239\n    test 3960 line 440 azi2: 141.818572490275\n    test 3961 line 441 lat: -16.657589\n    test 3962 line 441 lon: 100.829440\n    test 3963 line 441 fb: 94.804409\n    test 3964 line 441 lat2: -16.657588778768\n    test 3965 line 441 lon2: 100.829440071396\n    test 3966 line 441 azi2: 94.804408628371\n    test 3967 line 441 lat2: -16.657588778768\n    test 3968 line 441 lon2: 100.829440071396\n    test 3969 line 441 azi2: 94.804408628371\n    test 3970 line 442 lat: 23.629666\n    test 3971 line 442 lon: 148.675531\n    test 3972 line 442 fb: 169.091767\n    test 3973 line 442 lat2: 23.629665922502\n    test 3974 line 442 lon2: 148.675530832608\n    test 3975 line 442 azi2: 169.091766635020\n    test 3976 line 442 lat2: 23.629665922502\n    test 3977 line 442 lon2: 148.675530832608\n    test 3978 line 442 azi2: 169.091766635020\n    test 3979 line 443 lat: 4.022724\n    test 3980 line 443 lon: 161.803702\n    test 3981 line 443 fb: 141.272785\n    test 3982 line 443 lat2: 4.022724409294\n    test 3983 line 443 lon2: 161.803702045621\n    test 3984 line 443 azi2: 141.272784545678\n    test 3985 line 443 lat2: 4.022724409294\n    test 3986 line 443 lon2: 161.803702045621\n    test 3987 line 443 azi2: 141.272784545678\n    test 3988 line 444 lat: 13.280168\n    test 3989 line 444 lon: 20.120413\n    test 3990 line 444 fb: 158.170551\n    test 3991 line 444 lat2: 13.280167579164\n    test 3992 line 444 lon2: 20.120413486875\n    test 3993 line 444 azi2: 158.170551379189\n    test 3994 line 444 lat2: 13.280167579164\n    test 3995 line 444 lon2: 20.120413486875\n    test 3996 line 444 azi2: 158.170551379189\n    test 3997 line 445 lat: -47.521450\n    test 3998 line 445 lon: 150.549196\n    test 3999 line 445 fb: 44.718791\n    test 4000 line 445 lat2: -47.521449956879\n    test 4001 line 445 lon2: 150.549196046351\n    test 4002 line 445 azi2: 44.718791294775\n    test 4003 line 445 lat2: -47.521449956879\n    test 4004 line 445 lon2: 150.549196046351\n    test 4005 line 445 azi2: 44.718791294775\n    test 4006 line 446 lat: 17.790615\n    test 4007 line 446 lon: 141.461006\n    test 4008 line 446 fb: 115.746784\n    test 4009 line 446 lat2: 17.790615163216\n    test 4010 line 446 lon2: 141.461005551791\n    test 4011 line 446 azi2: 115.746784352318\n    test 4012 line 446 lat2: 17.790615163216\n    test 4013 line 446 lon2: 141.461005551791\n    test 4014 line 446 azi2: 115.746784352318\n    test 4015 line 447 lat: -26.519374\n    test 4016 line 447 lon: 98.067906\n    test 4017 line 447 fb: 113.253929\n    test 4018 line 447 lat2: -26.519374288386\n    test 4019 line 447 lon2: 98.067906321718\n    test 4020 line 447 azi2: 113.253928642653\n    test 4021 line 447 lat2: -26.519374288386\n    test 4022 line 447 lon2: 98.067906321718\n    test 4023 line 447 azi2: 113.253928642653\n    test 4024 line 448 lat: -12.401139\n    test 4025 line 448 lon: 73.327970\n    test 4026 line 448 fb: 124.879499\n    test 4027 line 448 lat2: -12.401138571717\n    test 4028 line 448 lon2: 73.327969848986\n    test 4029 line 448 azi2: 124.879499241464\n    test 4030 line 448 lat2: -12.401138571717\n    test 4031 line 448 lon2: 73.327969848986\n    test 4032 line 448 azi2: 124.879499241464\n    test 4033 line 449 lat: 61.619396\n    test 4034 line 449 lon: 99.785406\n    test 4035 line 449 fb: 107.998380\n    test 4036 line 449 lat2: 61.619396375102\n    test 4037 line 449 lon2: 99.785406498835\n    test 4038 line 449 azi2: 107.998379654880\n    test 4039 line 449 lat2: 61.619396375102\n    test 4040 line 449 lon2: 99.785406498835\n    test 4041 line 449 azi2: 107.998379654880\n    test 4042 line 450 lat: 36.997252\n    test 4043 line 450 lon: 56.015643\n    test 4044 line 450 fb: 103.921663\n    test 4045 line 450 lat2: 36.997252125041\n    test 4046 line 450 lon2: 56.015642631106\n    test 4047 line 450 azi2: 103.921662760483\n    test 4048 line 450 lat2: 36.997252125041\n    test 4049 line 450 lon2: 56.015642631106\n    test 4050 line 450 azi2: 103.921662760483\n    test 4051 line 451 lat: 37.824447\n    test 4052 line 451 lon: 83.438440\n    test 4053 line 451 fb: 89.229164\n    test 4054 line 451 lat2: 37.824446788544\n    test 4055 line 451 lon2: 83.438439603294\n    test 4056 line 451 azi2: 89.229164462127\n    test 4057 line 451 lat2: 37.824446788544\n    test 4058 line 451 lon2: 83.438439603294\n    test 4059 line 451 azi2: 89.229164462127\n    test 4060 line 452 lat: 78.387864\n    test 4061 line 452 lon: 118.814812\n    test 4062 line 452 fb: 133.706108\n    test 4063 line 452 lat2: 78.387863550790\n    test 4064 line 452 lon2: 118.814812128945\n    test 4065 line 452 azi2: 133.706108131229\n    test 4066 line 452 lat2: 78.387863550790\n    test 4067 line 452 lon2: 118.814812128944  FAILED, KNOWN, expected 118.814812128945\n    test 4068 line 452 azi2: 133.706108131229\n    test 4069 line 453 lat: -21.219381\n    test 4070 line 453 lon: 53.544400\n    test 4071 line 453 fb: 108.462517\n    test 4072 line 453 lat2: -21.219381398156\n    test 4073 line 453 lon2: 53.544399883561\n    test 4074 line 453 azi2: 108.462517491505\n    test 4075 line 453 lat2: -21.219381398156\n    test 4076 line 453 lon2: 53.544399883561\n    test 4077 line 453 azi2: 108.462517491505\n    test 4078 line 454 lat: 63.304502\n    test 4079 line 454 lon: 132.034926\n    test 4080 line 454 fb: 139.912627\n    test 4081 line 454 lat2: 63.304502042590\n    test 4082 line 454 lon2: 132.034925840674\n    test 4083 line 454 azi2: 139.912627269623\n    test 4084 line 454 lat2: 63.304502042590\n    test 4085 line 454 lon2: 132.034925840674\n    test 4086 line 454 azi2: 139.912627269623\n    test 4087 line 455 lat: 13.515663\n    test 4088 line 455 lon: 8.989766\n    test 4089 line 455 fb: 35.949535\n    test 4090 line 455 lat2: 13.515662875313\n    test 4091 line 455 lon2: 8.989765670730\n    test 4092 line 455 azi2: 35.949534634702\n    test 4093 line 455 lat2: 13.515662875313\n    test 4094 line 455 lon2: 8.989765670730\n    test 4095 line 455 azi2: 35.949534634702\n    test 4096 line 456 lat: -6.742624\n    test 4097 line 456 lon: 4.531931\n    test 4098 line 456 fb: 171.306863\n    test 4099 line 456 lat2: -6.742624347861\n    test 4100 line 456 lon2: 4.531931315168\n    test 4101 line 456 azi2: 171.306863155411\n    test 4102 line 456 lat2: -6.742624347861\n    test 4103 line 456 lon2: 4.531931315168\n    test 4104 line 456 azi2: 171.306863155411\n    test 4105 line 457 lat: -24.910509\n    test 4106 line 457 lon: 128.137682\n    test 4107 line 457 fb: 121.711631\n    test 4108 line 457 lat2: -24.910509138681\n    test 4109 line 457 lon2: 128.137681811633\n    test 4110 line 457 azi2: 121.711631340407\n    test 4111 line 457 lat2: -24.910509138681\n    test 4112 line 457 lon2: 128.137681811633\n    test 4113 line 457 azi2: 121.711631340407\n    test 4114 line 458 lat: -40.687591\n    test 4115 line 458 lon: 76.389897\n    test 4116 line 458 fb: 116.394433\n    test 4117 line 458 lat2: -40.687590598372\n    test 4118 line 458 lon2: 76.389897347637\n    test 4119 line 458 azi2: 116.394432846311\n    test 4120 line 458 lat2: -40.687590598372\n    test 4121 line 458 lon2: 76.389897347637\n    test 4122 line 458 azi2: 116.394432846311\n    test 4123 line 459 lat: 50.593808\n    test 4124 line 459 lon: 155.175630\n    test 4125 line 459 fb: 149.533910\n    test 4126 line 459 lat2: 50.593807692461\n    test 4127 line 459 lon2: 155.175629862288\n    test 4128 line 459 azi2: 149.533910451363\n    test 4129 line 459 lat2: 50.593807692461\n    test 4130 line 459 lon2: 155.175629862288\n    test 4131 line 459 azi2: 149.533910451363\n    test 4132 line 460 lat: 12.198222\n    test 4133 line 460 lon: 165.839456\n    test 4134 line 460 fb: 172.783459\n    test 4135 line 460 lat2: 12.198221826512\n    test 4136 line 460 lon2: 165.839456381799\n    test 4137 line 460 azi2: 172.783459292833\n    test 4138 line 460 lat2: 12.198221826512\n    test 4139 line 460 lon2: 165.839456381799\n    test 4140 line 460 azi2: 172.783459292833\n    test 4141 line 461 lat: 34.436568\n    test 4142 line 461 lon: 7.117338\n    test 4143 line 461 fb: 169.786492\n    test 4144 line 461 lat2: 34.436568298724\n    test 4145 line 461 lon2: 7.117337693395\n    test 4146 line 461 azi2: 169.786491850891\n    test 4147 line 461 lat2: 34.436568298724\n    test 4148 line 461 lon2: 7.117337693395\n    test 4149 line 461 azi2: 169.786491850891\n    test 4150 line 462 lat: -3.145255\n    test 4151 line 462 lon: 30.502293\n    test 4152 line 462 fb: 103.563749\n    test 4153 line 462 lat2: -3.145254788627\n    test 4154 line 462 lon2: 30.502293345016\n    test 4155 line 462 azi2: 103.563748974525\n    test 4156 line 462 lat2: -3.145254788627\n    test 4157 line 462 lon2: 30.502293345016\n    test 4158 line 462 azi2: 103.563748974525\n    test 4159 line 463 lat: 16.264722\n    test 4160 line 463 lon: 85.497207\n    test 4161 line 463 fb: 116.933863\n    test 4162 line 463 lat2: 16.264722156696\n    test 4163 line 463 lon2: 85.497207496626\n    test 4164 line 463 azi2: 116.933862512764  FAILED, KNOWN, expected 116.933862512763\n    test 4165 line 463 lat2: 16.264722156696\n    test 4166 line 463 lon2: 85.497207496627  FAILED, KNOWN, expected 85.497207496626\n    test 4167 line 463 azi2: 116.933862512764  FAILED, KNOWN, expected 116.933862512763\n    test 4168 line 464 lat: 1.433605\n    test 4169 line 464 lon: 4.165940\n    test 4170 line 464 fb: 170.272462\n    test 4171 line 464 lat2: 1.433605151882\n    test 4172 line 464 lon2: 4.165940219923\n    test 4173 line 464 azi2: 170.272462365963\n    test 4174 line 464 lat2: 1.433605151882\n    test 4175 line 464 lon2: 4.165940219923\n    test 4176 line 464 azi2: 170.272462365963\n    test 4177 line 465 lat: -43.326676\n    test 4178 line 465 lon: 153.148367\n    test 4179 line 465 fb: 42.921394\n    test 4180 line 465 lat2: -43.326676023438\n    test 4181 line 465 lon2: 153.148366512832\n    test 4182 line 465 azi2: 42.921393854868\n    test 4183 line 465 lat2: -43.326676023438\n    test 4184 line 465 lon2: 153.148366512832\n    test 4185 line 465 azi2: 42.921393854868\n    test 4186 line 466 lat: 20.405242\n    test 4187 line 466 lon: 178.247549\n    test 4188 line 466 fb: 178.801033\n    test 4189 line 466 lat2: 20.405242225208\n    test 4190 line 466 lon2: 178.247549230810\n    test 4191 line 466 azi2: 178.801032702563\n    test 4192 line 466 lat2: 20.405242225208\n    test 4193 line 466 lon2: 178.247549230810\n    test 4194 line 466 azi2: 178.801032702563\n    test 4195 line 467 lat: -22.482832\n    test 4196 line 467 lon: 140.761211\n    test 4197 line 467 fb: 82.371737\n    test 4198 line 467 lat2: -22.482831544520\n    test 4199 line 467 lon2: 140.761210729739\n    test 4200 line 467 azi2: 82.371736722715\n    test 4201 line 467 lat2: -22.482831544520\n    test 4202 line 467 lon2: 140.761210729739\n    test 4203 line 467 azi2: 82.371736722715\n    test 4204 line 468 lat: -41.151672\n    test 4205 line 468 lon: 38.419124\n    test 4206 line 468 fb: 148.221356\n    test 4207 line 468 lat2: -41.151672070525\n    test 4208 line 468 lon2: 38.419124284860\n    test 4209 line 468 azi2: 148.221356053664\n    test 4210 line 468 lat2: -41.151672070525\n    test 4211 line 468 lon2: 38.419124284860\n    test 4212 line 468 azi2: 148.221356053664\n    test 4213 line 469 lat: -63.212817\n    test 4214 line 469 lon: 15.714998\n    test 4215 line 469 fb: 166.777356\n    test 4216 line 469 lat2: -63.212816746477\n    test 4217 line 469 lon2: 15.714998156904\n    test 4218 line 469 azi2: 166.777356149473\n    test 4219 line 469 lat2: -63.212816746477\n    test 4220 line 469 lon2: 15.714998156904\n    test 4221 line 469 azi2: 166.777356149473\n    test 4222 line 470 lat: -33.892681\n    test 4223 line 470 lon: 120.971496\n    test 4224 line 470 fb: 170.404814\n    test 4225 line 470 lat2: -33.892680517408\n    test 4226 line 470 lon2: 120.971495805190\n    test 4227 line 470 azi2: 170.404813772447\n    test 4228 line 470 lat2: -33.892680517408\n    test 4229 line 470 lon2: 120.971495805190\n    test 4230 line 470 azi2: 170.404813772447\n    test 4231 line 471 lat: -17.570093\n    test 4232 line 471 lon: 137.259693\n    test 4233 line 471 fb: 175.973637\n    test 4234 line 471 lat2: -17.570092516031\n    test 4235 line 471 lon2: 137.259693182063\n    test 4236 line 471 azi2: 175.973637230107\n    test 4237 line 471 lat2: -17.570092516031\n    test 4238 line 471 lon2: 137.259693182063\n    test 4239 line 471 azi2: 175.973637230107\n    test 4240 line 472 lat: -24.221028\n    test 4241 line 472 lon: 33.960052\n    test 4242 line 472 fb: 130.753279\n    test 4243 line 472 lat2: -24.221027716301  FAILED, KNOWN, expected -24.221027716300\n    test 4244 line 472 lon2: 33.960051796001\n    test 4245 line 472 azi2: 130.753279335550\n    test 4246 line 472 lat2: -24.221027716301  FAILED, KNOWN, expected -24.221027716300\n    test 4247 line 472 lon2: 33.960051796001\n    test 4248 line 472 azi2: 130.753279335550\n    test 4249 line 473 lat: -48.849133\n    test 4250 line 473 lon: 176.601435\n    test 4251 line 473 fb: 5.037779\n    test 4252 line 473 lat2: -48.849132604777\n    test 4253 line 473 lon2: 176.601435366477\n    test 4254 line 473 azi2: 5.037779120578\n    test 4255 line 473 lat2: -48.849132604777\n    test 4256 line 473 lon2: 176.601435366477\n    test 4257 line 473 azi2: 5.037779120578\n    test 4258 line 474 lat: -50.620233\n    test 4259 line 474 lon: 22.061011\n    test 4260 line 474 fb: 159.730881\n    test 4261 line 474 lat2: -50.620232529081\n    test 4262 line 474 lon2: 22.061010504617\n    test 4263 line 474 azi2: 159.730880799186\n    test 4264 line 474 lat2: -50.620232529081\n    test 4265 line 474 lon2: 22.061010504617\n    test 4266 line 474 azi2: 159.730880799186\n    test 4267 line 475 lat: -11.354875\n    test 4268 line 475 lon: 76.258812\n    test 4269 line 475 fb: 104.014357\n    test 4270 line 475 lat2: -11.354875472483\n    test 4271 line 475 lon2: 76.258812283705\n    test 4272 line 475 azi2: 104.014356938495\n    test 4273 line 475 lat2: -11.354875472483\n    test 4274 line 475 lon2: 76.258812283705\n    test 4275 line 475 azi2: 104.014356938495\n    test 4276 line 476 lat: -19.640051\n    test 4277 line 476 lon: 105.698979\n    test 4278 line 476 fb: 156.650619\n    test 4279 line 476 lat2: -19.640050782646\n    test 4280 line 476 lon2: 105.698978700604\n    test 4281 line 476 azi2: 156.650619021389\n    test 4282 line 476 lat2: -19.640050782646\n    test 4283 line 476 lon2: 105.698978700604\n    test 4284 line 476 azi2: 156.650619021389\n    test 4285 line 477 lat: 83.855267\n    test 4286 line 477 lon: 112.674858\n    test 4287 line 477 fb: 122.383784\n    test 4288 line 477 lat2: 83.855266840098\n    test 4289 line 477 lon2: 112.674858066810\n    test 4290 line 477 azi2: 122.383784147681\n    test 4291 line 477 lat2: 83.855266840098\n    test 4292 line 477 lon2: 112.674858066811  FAILED, KNOWN, expected 112.674858066810\n    test 4293 line 477 azi2: 122.383784147681\n    test 4294 line 478 lat: 48.296558\n    test 4295 line 478 lon: 34.072463\n    test 4296 line 478 fb: 61.415867\n    test 4297 line 478 lat2: 48.296557545891\n    test 4298 line 478 lon2: 34.072462542900\n    test 4299 line 478 azi2: 61.415867309157\n    test 4300 line 478 lat2: 48.296557545891\n    test 4301 line 478 lon2: 34.072462542900\n    test 4302 line 478 azi2: 61.415867309157\n    test 4303 line 479 lat: 20.173772\n    test 4304 line 479 lon: 12.682422\n    test 4305 line 479 fb: 165.220898\n    test 4306 line 479 lat2: 20.173772376863\n    test 4307 line 479 lon2: 12.682422408956\n    test 4308 line 479 azi2: 165.220897942891\n    test 4309 line 479 lat2: 20.173772376863\n    test 4310 line 479 lon2: 12.682422408956\n    test 4311 line 479 azi2: 165.220897942891\n    test 4312 line 480 lat: 47.501521\n    test 4313 line 480 lon: 54.338775\n    test 4314 line 480 fb: 80.572388\n    test 4315 line 480 lat2: 47.501521345953\n    test 4316 line 480 lon2: 54.338775236773\n    test 4317 line 480 azi2: 80.572387690286\n    test 4318 line 480 lat2: 47.501521345953\n    test 4319 line 480 lon2: 54.338775236773\n    test 4320 line 480 azi2: 80.572387690286\n    test 4321 line 481 lat: -34.023172\n    test 4322 line 481 lon: 174.310259\n    test 4323 line 481 fb: 123.138509\n    test 4324 line 481 lat2: -34.023171607796\n    test 4325 line 481 lon2: 174.310258612178\n    test 4326 line 481 azi2: 123.138509441522\n    test 4327 line 481 lat2: -34.023171607796\n    test 4328 line 481 lon2: 174.310258612178\n    test 4329 line 481 azi2: 123.138509441522\n    test 4330 line 482 lat: -31.540913\n    test 4331 line 482 lon: 52.441924\n    test 4332 line 482 fb: 155.194513\n    test 4333 line 482 lat2: -31.540912691186\n    test 4334 line 482 lon2: 52.441923606881  FAILED, KNOWN, expected 52.441923606882\n    test 4335 line 482 azi2: 155.194512958367\n    test 4336 line 482 lat2: -31.540912691186\n    test 4337 line 482 lon2: 52.441923606881  FAILED, KNOWN, expected 52.441923606882\n    test 4338 line 482 azi2: 155.194512958367\n    test 4339 line 483 lat: 64.121649\n    test 4340 line 483 lon: 21.295234\n    test 4341 line 483 fb: 51.966943\n    test 4342 line 483 lat2: 64.121648788158\n    test 4343 line 483 lon2: 21.295234110583\n    test 4344 line 483 azi2: 51.966943039534\n    test 4345 line 483 lat2: 64.121648788158\n    test 4346 line 483 lon2: 21.295234110583\n    test 4347 line 483 azi2: 51.966943039534\n    test 4348 line 484 lat: -4.599613\n    test 4349 line 484 lon: 107.727091\n    test 4350 line 484 fb: 109.270070\n    test 4351 line 484 lat2: -4.599612537190\n    test 4352 line 484 lon2: 107.727090701893\n    test 4353 line 484 azi2: 109.270070124629\n    test 4354 line 484 lat2: -4.599612537190\n    test 4355 line 484 lon2: 107.727090701893\n    test 4356 line 484 azi2: 109.270070124629\n    test 4357 line 485 lat: -16.799515\n    test 4358 line 485 lon: 43.675397\n    test 4359 line 485 fb: 144.940350\n    test 4360 line 485 lat2: -16.799514501718\n    test 4361 line 485 lon2: 43.675397103786  FAILED, KNOWN, expected 43.675397103785\n    test 4362 line 485 azi2: 144.940350340820\n    test 4363 line 485 lat2: -16.799514501718\n    test 4364 line 485 lon2: 43.675397103786  FAILED, KNOWN, expected 43.675397103785\n    test 4365 line 485 azi2: 144.940350340820\n    test 4366 line 486 lat: -16.337411\n    test 4367 line 486 lon: 13.110283\n    test 4368 line 486 fb: 167.467077\n    test 4369 line 486 lat2: -16.337410785184\n    test 4370 line 486 lon2: 13.110282576579\n    test 4371 line 486 azi2: 167.467077049713\n    test 4372 line 486 lat2: -16.337410785184\n    test 4373 line 486 lon2: 13.110282576579\n    test 4374 line 486 azi2: 167.467077049713\n    test 4375 line 487 lat: -26.145379\n    test 4376 line 487 lon: 9.977868\n    test 4377 line 487 fb: 171.929335\n    test 4378 line 487 lat2: -26.145378737931\n    test 4379 line 487 lon2: 9.977868070750\n    test 4380 line 487 azi2: 171.929335050809\n    test 4381 line 487 lat2: -26.145378737931\n    test 4382 line 487 lon2: 9.977868070750\n    test 4383 line 487 azi2: 171.929335050809\n    test 4384 line 488 lat: -3.245748\n    test 4385 line 488 lon: 71.931981\n    test 4386 line 488 fb: 124.120047\n    test 4387 line 488 lat2: -3.245748416402\n    test 4388 line 488 lon2: 71.931980979620\n    test 4389 line 488 azi2: 124.120046609527\n    test 4390 line 488 lat2: -3.245748416402\n    test 4391 line 488 lon2: 71.931980979620\n    test 4392 line 488 azi2: 124.120046609527\n    test 4393 line 489 lat: 72.975644\n    test 4394 line 489 lon: 36.459313\n    test 4395 line 489 fb: 49.411324\n    test 4396 line 489 lat2: 72.975644407376\n    test 4397 line 489 lon2: 36.459312843012\n    test 4398 line 489 azi2: 49.411324496539\n    test 4399 line 489 lat2: 72.975644407376\n    test 4400 line 489 lon2: 36.459312843012\n    test 4401 line 489 azi2: 49.411324496539\n    test 4402 line 490 lat: 50.342418\n    test 4403 line 490 lon: 35.445910\n    test 4404 line 490 fb: 43.087650\n    test 4405 line 490 lat2: 50.342417843481\n    test 4406 line 490 lon2: 35.445910446930\n    test 4407 line 490 azi2: 43.087650398316\n    test 4408 line 490 lat2: 50.342417843481\n    test 4409 line 490 lon2: 35.445910446930\n    test 4410 line 490 azi2: 43.087650398316\n    test 4411 line 491 lat: -22.878804\n    test 4412 line 491 lon: 69.376306\n    test 4413 line 491 fb: 102.211558\n    test 4414 line 491 lat2: -22.878804028267\n    test 4415 line 491 lon2: 69.376306288000\n    test 4416 line 491 azi2: 102.211557813582\n    test 4417 line 491 lat2: -22.878804028267\n    test 4418 line 491 lon2: 69.376306288000\n    test 4419 line 491 azi2: 102.211557813582\n    test 4420 line 492 lat: 21.254912\n    test 4421 line 492 lon: 21.899215\n    test 4422 line 492 fb: 92.966926\n    test 4423 line 492 lat2: 21.254912121078\n    test 4424 line 492 lon2: 21.899214754868\n    test 4425 line 492 azi2: 92.966926161390\n    test 4426 line 492 lat2: 21.254912121078\n    test 4427 line 492 lon2: 21.899214754868\n    test 4428 line 492 azi2: 92.966926161390\n    test 4429 line 493 lat: 26.486641\n    test 4430 line 493 lon: 19.097603\n    test 4431 line 493 fb: 158.053447\n    test 4432 line 493 lat2: 26.486640906235\n    test 4433 line 493 lon2: 19.097602913800\n    test 4434 line 493 azi2: 158.053446850267\n    test 4435 line 493 lat2: 26.486640906235\n    test 4436 line 493 lon2: 19.097602913800\n    test 4437 line 493 azi2: 158.053446850267\n    test 4438 line 494 lat: 43.041538\n    test 4439 line 494 lon: 114.186950\n    test 4440 line 494 fb: 155.795323\n    test 4441 line 494 lat2: 43.041538374784\n    test 4442 line 494 lon2: 114.186949886941\n    test 4443 line 494 azi2: 155.795322500736\n    test 4444 line 494 lat2: 43.041538374784\n    test 4445 line 494 lon2: 114.186949886941\n    test 4446 line 494 azi2: 155.795322500736\n    test 4447 line 495 lat: -10.570764\n    test 4448 line 495 lon: 107.625834\n    test 4449 line 495 fb: 98.142401\n    test 4450 line 495 lat2: -10.570763915882\n    test 4451 line 495 lon2: 107.625834147204\n    test 4452 line 495 azi2: 98.142400502747\n    test 4453 line 495 lat2: -10.570763915882\n    test 4454 line 495 lon2: 107.625834147204\n    test 4455 line 495 azi2: 98.142400502747\n    test 4456 line 496 lat: 12.624313\n    test 4457 line 496 lon: 139.841077\n    test 4458 line 496 fb: 148.385662\n    test 4459 line 496 lat2: 12.624313141297\n    test 4460 line 496 lon2: 139.841076840613\n    test 4461 line 496 azi2: 148.385661923898\n    test 4462 line 496 lat2: 12.624313141297\n    test 4463 line 496 lon2: 139.841076840613\n    test 4464 line 496 azi2: 148.385661923898\n    test 4465 line 497 lat: -25.169999\n    test 4466 line 497 lon: 33.175749\n    test 4467 line 497 fb: 169.905377\n    test 4468 line 497 lat2: -25.169998746665\n    test 4469 line 497 lon2: 33.175749310362\n    test 4470 line 497 azi2: 169.905376778384\n    test 4471 line 497 lat2: -25.169998746665\n    test 4472 line 497 lon2: 33.175749310362\n    test 4473 line 497 azi2: 169.905376778384\n    test 4474 line 498 lat: -41.360282\n    test 4475 line 498 lon: 147.341948\n    test 4476 line 498 fb: 136.551910\n    test 4477 line 498 lat2: -41.360281944908\n    test 4478 line 498 lon2: 147.341948469937\n    test 4479 line 498 azi2: 136.551910060918\n    test 4480 line 498 lat2: -41.360281944908\n    test 4481 line 498 lon2: 147.341948469937\n    test 4482 line 498 azi2: 136.551910060918\n    test 4483 line 499 lat: 39.182099\n    test 4484 line 499 lon: 150.590705\n    test 4485 line 499 fb: 165.522951\n    test 4486 line 499 lat2: 39.182099298590\n    test 4487 line 499 lon2: 150.590705311219\n    test 4488 line 499 azi2: 165.522950851635\n    test 4489 line 499 lat2: 39.182099298590\n    test 4490 line 499 lon2: 150.590705311219\n    test 4491 line 499 azi2: 165.522950851635\n    test 4492 line 500 lat: -57.494441\n    test 4493 line 500 lon: 113.054057\n    test 4494 line 500 fb: 130.988277\n    test 4495 line 500 lat2: -57.494440629886\n    test 4496 line 500 lon2: 113.054056725195\n    test 4497 line 500 azi2: 130.988276746436\n    test 4498 line 500 lat2: -57.494440629886\n    test 4499 line 500 lon2: 113.054056725195\n    test 4500 line 500 azi2: 130.988276746436\n    test 4501 WGS84.KsOrder: 8\n\n    545 of 4501 testEllipsoidalGeodTest.py tests (12.1%) FAILED, incl. 45 KNOWN plus 500 DeprecationWarnings (pygeodesy 26.3.26 Python 3.14.3 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 3.124 sec\nrunning /Library/Framewo....n3.14 -W default ~/PyGeodesy/test/testEllipsoids.py\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.EcefKarney from .ecef by testEllipsoids.py line 11\n# lazily imported pygeodesy.Ellipsoid from .ellipsoids by testEllipsoids.py line 11\n# lazily imported pygeodesy.Ellipsoid2 from .ellipsoids by testEllipsoids.py line 11\n# lazily imported pygeodesy.Ellipsoids from .ellipsoids by testEllipsoids.py line 11\n# lazily imported pygeodesy.Vector3d from .vector3d by testEllipsoids.py line 11\n# lazily imported pygeodesy.a_b2f_ from .ellipsoids by testEllipsoids.py line 11\n# lazily imported pygeodesy.a_b2f2 from .ellipsoids by testEllipsoids.py line 11\n# lazily imported pygeodesy.a_b2n from .ellipsoids by testEllipsoids.py line 11\n# lazily imported pygeodesy.a_f2Tuple from .ellipsoids by testEllipsoids.py line 11\n# lazily imported pygeodesy.b_f2a from .ellipsoids by testEllipsoids.py line 11\n# lazily imported pygeodesy.b_f_2a from .ellipsoids by testEllipsoids.py line 11\n# lazily imported pygeodesy.circle4 from .utily by testEllipsoids.py line 11\n# lazily imported pygeodesy.e2f from .ellipsoids by testEllipsoids.py line 11\n# lazily imported pygeodesy.f_2f from .ellipsoids by testEllipsoids.py line 11\n# lazily imported pygeodesy.fstr from .streprs by testEllipsoids.py line 11\n# lazily imported pygeodesy.hypot_ from .fmath by testEllipsoids.py line 11\n# lazily imported pygeodesy.n2e2 from .ellipsoids by testEllipsoids.py line 11\n# lazily imported pygeodesy.n2f from .ellipsoids by testEllipsoids.py line 11\n# lazily imported pygeodesy.PI_2 from .constants by testEllipsoids.py line 11\n# lazily imported pygeodesy.R_M from .constants by testEllipsoids.py line 11\n# lazily imported pygeodesy.sincos2d from .utily by testEllipsoids.py line 11\n# lazily imported pygeodesy.unstr from .streprs by testEllipsoids.py line 11\n\n    testing testEllipsoids.py 25.08.28 (module pygeodesy.ellipsoids 26.03.25) isLazy=3\n    test 1 ellipsoid: True\n    test 2 TestEllipsoid: name='TestEllipsoid', a=1000, f=0, f_=0, b=1000\n\n    testWGS84(pygeodesy.ellipsoids, 26.03.25)\n    test 3 R1: 6371008.7714\n    test 4 R2: 6371007.2\n    test 5 R3: 6371000.8\n    test 6 A: 6367449.1\n# lazily imported pygeodesy.elliptic by ellipsoids.py line 856\n    test 7 L: 10001965.7\n    test 8 Rrectifying: 6367449.1\n    test 9 Rgeometric: 6367435.7\n    test 10 Rgeocentric: 6378137.000\n    test 11 Rgeocentric: 6367489.544\n    test 12 Rgeocentric: 6356752.314\n# lazily imported pygeodesy.angles by units.py line 633\n    test 13 Rlat: 6378137.000\n    test 14 Rlat: 6367444.657\n    test 15 Rlat: 6356752.314\n    test 16 circle4.radius: 6378137.000\n    test 17 circle4.radius: 4517590.879\n    test 18 circle4.radius: 0.000\n    test 19 distance2: 156903.472, 45.192\n    test 20 distance2: 1569034.719, 45.192\n    test 21 distance2: 1400742.676, 37.563\n    test 22 distance2: 1179164.848, 18.896\n    test 23 roc2: 6335439.327, 6378137.0\n    test 24 roc2: 6367381.816, 6388838.29\n    test 25 roc2: 6399593.626, 6399593.626\n    test 26 rocBearing: 6335439.327\n    test 27 rocBearing: 6378092.008\n    test 28 rocBearing: 6399593.626\n    test 29 rocGauss: 6356752.314\n    test 30 rocGauss: 6378101.030\n    test 31 rocGauss: 6399593.626\n    test 32 rocMean: 6356716.465\n    test 33 rocMean: 6378092.008\n    test 34 rocMean: 6399593.626\n    test 35 rocMeridional: 6335439.327\n    test 36 rocMeridional: 6367381.816\n    test 37 rocMeridional: 6399593.626\n    test 38 rocPrimeVertical: 6378137.0\n    test 39 rocPrimeVertical: 6388838.29\n    test 40 rocPrimeVertical: 6399593.626\n\n    testGRS80(pygeodesy.ellipsoids, 26.03.25)\n    test 41 R1: 6371008.7714\n    test 42 R2: 6371007.2\n    test 43 R3: 6371000.8\n    test 44 A: 6367449.1\n    test 45 L: 10001965.7\n    test 46 Rrectifying: 6367449.1\n    test 47 Rgeometric: 6367435.7\n    test 48 Rgeocentric: 6378137.000\n    test 49 Rgeocentric: 6367489.544\n    test 50 Rgeocentric: 6356752.314\n    test 51 Rlat: 6378137.000\n    test 52 Rlat: 6367444.657\n    test 53 Rlat: 6356752.314\n    test 54 circle4.radius: 6378137.000\n    test 55 circle4.radius: 4517590.879\n    test 56 circle4.radius: 0.000\n    test 57 distance2: 156903.472, 45.192\n    test 58 distance2: 1569034.719, 45.192\n    test 59 distance2: 1400742.676, 37.563\n    test 60 distance2: 1179164.848, 18.896\n    test 61 roc2: 6335439.327, 6378137.0\n    test 62 roc2: 6367381.816, 6388838.29\n    test 63 roc2: 6399593.626, 6399593.626\n    test 64 rocBearing: 6335439.327\n    test 65 rocBearing: 6378092.008\n    test 66 rocBearing: 6399593.626\n    test 67 rocGauss: 6356752.314\n    test 68 rocGauss: 6378101.030\n    test 69 rocGauss: 6399593.626\n    test 70 rocMean: 6356716.465\n    test 71 rocMean: 6378092.008\n    test 72 rocMean: 6399593.626\n    test 73 rocMeridional: 6335439.327\n    test 74 rocMeridional: 6367381.816\n    test 75 rocMeridional: 6399593.626\n    test 76 rocPrimeVertical: 6378137.0\n    test 77 rocPrimeVertical: 6388838.29\n    test 78 rocPrimeVertical: 6399593.626\n\n    test<function Ellipsoid.__init__ at 0x101b27d70>(pygeodesy.ellipsoids, 26.03.25)\n    test 79 a, b, None: 2.0\n    test 80 a, None, f_: 500.0\n\n    testWGS84(pygeodesy.ellipsoids, 26.03.25)\n    test 81 WGS84.copy: True\n    test 82 WGS84.copy: True\n    test 83 WGS84.find: None\n    test 84 WGS84.a2_b: 6399593.625758\n    test 85 WGS84.b2_a: 6335439.327293\n    test 86 WGS84.R2: 6371007.180918\n    test 87 WGS84.c2: 40589732499315\n    test 88 WGS84.es: 0.081819\n    test 89 WGS84.e22: 0.006739\n    test 90 WGS84.f2: 0.003364\n    test 91 WGS84.m2degrees: 90\n    test 92 WGS84.degrees2m: 10018754\n    test 93 WGS84.area: 5.101e+14\n    test 94 WGS84.volume: 1.083e+21\n    test 95 WGS84.ecef: <class 'pygeodesy.ecef.EcefKarney'>\n    test 96 WGS84.ecef: WGS84\n    test 97 WGS84: name='WGS84', a=6378137, f=0.0033528107, f_=298.257223563, b=6356752.3142451793, f2=0.0033640898, n=0.0016792204, e=0.0818191908, e2=0.00669438, e21=0.99330562, e22=0.0067394967, e32=0.0033584313, A=6367449.1458234144, L=10001965.7293127235, R1=6371008.7714150595, R2=6371007.1809184738, R3=6371000.7900091587, Rbiaxial=6367453.6345163295, Rtriaxial=6372797.5559594007\n    test 98 WGS84.: A=6367449.1458234144, e=0.0818191908, f_=298.2572235630, n=0.0016792204 (1.5612511284e-17)\n\n    testKruegers(pygeodesy.ellipsoids, 26.03.25)\n    test 99 WGS84.AlphaKs: 8.377318206245e-04, 7.608527773572e-07, 1.197645503242e-09, 2.429170680397e-12, 5.711818370428e-15, 1.47999793138e-17, 4.107624109371e-20, 1.210785038923e-22\n    test 100 WGS84.BetaKs : 8.377321640579e-04, 5.90587015222e-08, 1.673482665344e-10, 2.164798110491e-13, 3.787930968626e-16, 7.236769021816e-19, 1.493479824778e-21, 3.259522545838e-24\n    test 101 WGS84.AlphaKs: 8.377318206245e-04, 7.608527773572e-07, 1.197645503329e-09, 2.429170607201e-12, 5.711757677866e-15, 1.491117731258e-17\n    test 102 WGS84.BetaKs : 8.377321640579e-04, 5.90587015222e-08, 1.673482665284e-10, 2.164798040063e-13, 3.787978046169e-16, 7.248748890694e-19\n    test 103 WGS84.AlphaKs: 8.377318206304e-04, 7.608527714249e-07, 1.197638001561e-09, 2.443376194522e-12\n    test 104 WGS84.BetaKs : 8.377321640601e-04, 5.905869567934e-08, 1.673488880355e-10, 2.167737763022e-13\n\n    testProlate(pygeodesy.ellipsoids, 26.03.25)\n    test 105 a [Radius_]: 6356752.314\n    test 106 b [Radius_]: 6378137.000\n    test 107 n [Float]: -0.002\n    test 108 R1 [Radius]: 6363880.543\n    test 109 R2 [Radius]: 6363878.941\n    test 110 R3 [Radius]: 6363872.564\n    test 111 Rbiaxial [Radius]: 6367453.635\n    test 112 Rgeometric [Radius]: 6367435.680\n    test 113 c2 [Meter2]: 40498955180263.188\n    test 114 area [Meter2]: 508924880289508.500\n    test 115 volume [Meter3]: 1079575530747445379072.000\n\n    testauxLats WGS84(pygeodesy.ellipsoids, 26.03.25)\n    test 116 isEllipsoidal: True\n    test 117 isOblate: True\n    test 118 isProlate: False\n    test 119 isSpherical: False\n# lazily imported pygeodesy.albers by ellipsoids.py line 383\n    test 120 auxAuthalic(-90): -90.0\n    test 121 name: auxAuthalic\n    test 122 inverse: lat (-90.0)\n    test 123 auxConformal(-90): -90.0\n    test 124 name: auxConformal\n    test 125 inverse: lat (-90.0)\n    test 126 auxRectifying(-90): -90.0\n    test 127 name: auxRectifying\n    test 128 inverse: lat (-90.0)\n    test 129 auxIsometric(-90): -2178.287790219\n    test 130 name: auxIsometric\n    test 131 inverse: lat (-90.0)\n    test 132 auxParametric(-90): -90.0\n    test 133 name: auxParametric\n    test 134 inverse: lat (-90.0)\n    test 135 auxGeocentric(-90): -90.0\n    test 136 name: auxGeocentric\n    test 137 inverse: lat (-90.0)\n    test 138 auxGeocentric(-90, height=1.0e+06): -90.0\n    test 139 name: auxGeocentric\n    test 140 inverse: lat (-90.0)\n    test 141 auxAuthalic(-61): -60.891087993\n    test 142 name: auxAuthalic\n    test 143 inverse: lat (-61.0)\n    test 144 auxConformal(-61): -60.836664626\n    test 145 name: auxConformal\n    test 146 inverse: lat (-61.0)\n    test 147 auxRectifying(-61): -60.877475063\n    test 148 name: auxRectifying\n    test 149 inverse: lat (-61.0)\n    test 150 auxIsometric(-61): -77.151044895\n    test 151 name: auxIsometric\n    test 152 inverse: lat (-61.0)\n    test 153 auxParametric(-61): -60.918334778\n    test 154 name: auxParametric\n    test 155 inverse: lat (-61.0)\n    test 156 auxGeocentric(-61): -60.836524751\n    test 157 name: auxGeocentric\n    test 158 inverse: lat (-61.0)\n    test 159 auxGeocentric(-61, height=1.0e+06): -60.858730579\n    test 160 name: auxGeocentric\n    test 161 inverse: lat (-61.0)\n    test 162 auxAuthalic(-32): -31.884783413\n    test 163 name: auxAuthalic\n    test 164 inverse: lat (-32.0)\n    test 165 auxConformal(-32): -31.827359208\n    test 166 name: auxConformal\n    test 167 inverse: lat (-32.0)\n    test 168 auxRectifying(-32): -31.870407049\n    test 169 name: auxRectifying\n    test 170 inverse: lat (-32.0)\n    test 171 auxIsometric(-32): -33.603011359\n    test 172 name: auxIsometric\n    test 173 inverse: lat (-32.0)\n    test 174 auxParametric(-32): -31.913588685\n    test 175 name: auxParametric\n    test 176 inverse: lat (-32.0)\n    test 177 auxGeocentric(-32): -31.827305281\n    test 178 name: auxGeocentric\n    test 179 inverse: lat (-32.0)\n    test 180 auxGeocentric(-32, height=1.0e+06): -31.850730486\n    test 181 name: auxGeocentric\n    test 182 inverse: lat (-32.0)\n    test 183 auxAuthalic(-3): -2.986614622\n    test 184 name: auxAuthalic\n    test 185 inverse: lat (-3.0)\n    test 186 auxConformal(-3): -2.97995324\n    test 187 name: auxConformal\n    test 188 inverse: lat (-3.0)\n    test 189 auxRectifying(-3): -2.984946069\n    test 190 name: auxRectifying\n    test 191 inverse: lat (-3.0)\n    test 192 auxIsometric(-3): -2.981297631\n    test 193 name: auxIsometric\n    test 194 inverse: lat (-3.0)\n    test 195 auxParametric(-3): -2.98995985\n    test 196 name: auxParametric\n    test 197 inverse: lat (-3.0)\n    test 198 auxGeocentric(-3): -2.979953179\n    test 199 name: auxGeocentric\n    test 200 inverse: lat (-3.0)\n    test 201 auxGeocentric(-3, height=1.0e+06): -2.982670258\n    test 202 name: auxGeocentric\n    test 203 inverse: lat (-3.0)\n    test 204 auxAuthalic(26): 25.899018772\n    test 205 name: auxAuthalic\n    test 206 inverse: lat (26.0)\n    test 207 auxConformal(26): 25.848713396\n    test 208 name: auxConformal\n    test 209 inverse: lat (26.0)\n    test 210 auxRectifying(26): 25.886422583\n    test 211 name: auxRectifying\n    test 212 inverse: lat (26.0)\n    test 213 auxIsometric(26): 26.772988826\n    test 214 name: auxIsometric\n    test 215 inverse: lat (26.0)\n    test 216 auxParametric(26): 25.924262064\n    test 217 name: auxParametric\n    test 218 inverse: lat (26.0)\n    test 219 auxGeocentric(26): 25.848681095\n    test 220 name: auxGeocentric\n    test 221 inverse: lat (26.0)\n    test 222 auxGeocentric(26, height=1.0e+06): 25.869201526\n    test 223 name: auxGeocentric\n    test 224 inverse: lat (26.0)\n    test 225 auxAuthalic(55): 54.879361595\n    test 226 name: auxAuthalic\n    test 227 inverse: lat (55.0)\n    test 228 auxConformal(55): 54.819109025\n    test 229 name: auxConformal\n    test 230 inverse: lat (55.0)\n    test 231 auxRectifying(55): 54.864287984\n    test 232 name: auxRectifying\n    test 233 inverse: lat (55.0)\n    test 234 auxIsometric(55): 65.818103037\n    test 235 name: auxIsometric\n    test 236 inverse: lat (55.0)\n    test 237 auxParametric(55): 54.909538188\n    test 238 name: auxParametric\n    test 239 inverse: lat (55.0)\n    test 240 auxGeocentric(55): 54.818973309\n    test 241 name: auxGeocentric\n    test 242 inverse: lat (55.0)\n    test 243 auxGeocentric(55, height=1.0e+06): 54.843556517\n    test 244 name: auxGeocentric\n    test 245 inverse: lat (55.0)\n    test 246 auxAuthalic(84): 83.973275752\n    test 247 name: auxAuthalic\n    test 248 inverse: lat (84.0)\n    test 249 auxConformal(84): 83.959905489\n    test 250 name: auxConformal\n    test 251 inverse: lat (84.0)\n    test 252 auxRectifying(84): 83.969932835\n    test 253 name: auxRectifying\n    test 254 inverse: lat (84.0)\n    test 255 auxIsometric(84): 168.565774939\n    test 256 name: auxIsometric\n    test 257 inverse: lat (84.0)\n    test 258 auxParametric(84): 83.979963441\n    test 259 name: auxParametric\n    test 260 inverse: lat (84.0)\n    test 261 auxGeocentric(84): 83.959860962\n    test 262 name: auxGeocentric\n    test 263 inverse: lat (84.0)\n    test 264 auxGeocentric(84, height=1.0e+06): 83.965316868\n    test 265 name: auxGeocentric\n    test 266 inverse: lat (84.0)\n\n    testauxLats Prolate(pygeodesy.ellipsoids, 26.03.25)\n    test 267 isEllipsoidal: True\n    test 268 isOblate: False\n    test 269 isProlate: True\n    test 270 isSpherical: False\n    test 271 auxAuthalic(-90): -90.0\n    test 272 name: auxAuthalic\n    test 273 inverse: lat (-90.0)\n    test 274 auxConformal(-90): -90.0\n    test 275 name: auxConformal\n    test 276 inverse: lat (-90.0)\n    test 277 auxRectifying(-90): -90.0\n    test 278 name: auxRectifying\n    test 279 inverse: lat (-90.0)\n    test 280 auxIsometric(-90): -2179.057490028\n    test 281 name: auxIsometric\n    test 282 inverse: lat (-90.0)\n    test 283 auxParametric(-90): -90.0\n    test 284 name: auxParametric\n    test 285 inverse: lat (-90.0)\n    test 286 auxGeocentric(-90): -90.0\n    test 287 name: auxGeocentric\n    test 288 inverse: lat (-90.0)\n    test 289 auxGeocentric(-90, height=1.0e+06): -90.0\n    test 290 name: auxGeocentric\n    test 291 inverse: lat (-90.0)\n    test 292 auxAuthalic(-61): -61.10866822\n    test 293 name: auxAuthalic\n    test 294 inverse: lat (-61.0)\n    test 295 auxConformal(-61): -61.163034022\n    test 296 name: auxConformal\n    test 297 inverse: lat (-61.0)\n    test 298 auxRectifying(-61): -61.041077146\n    test 299 name: auxRectifying\n    test 300 inverse: lat (-61.0)\n    test 301 auxIsometric(-61): -77.824239376\n    test 302 name: auxIsometric\n    test 303 inverse: lat (-61.0)\n    test 304 auxParametric(-61): -61.081520012\n    test 305 name: auxParametric\n    test 306 inverse: lat (-61.0)\n    test 307 auxGeocentric(-61): -61.162894413\n    test 308 name: auxGeocentric\n    test 309 inverse: lat (-61.0)\n    test 310 auxGeocentric(-61, height=1.0e+06): -61.140801491\n    test 311 name: auxGeocentric\n    test 312 inverse: lat (-61.0)\n    test 313 auxAuthalic(-32): -32.115383155\n    test 314 name: auxAuthalic\n    test 315 inverse: lat (-32.0)\n    test 316 auxConformal(-32): -32.173258776\n    test 317 name: auxConformal\n    test 318 inverse: lat (-32.0)\n    test 319 auxRectifying(-32): -32.043518766\n    test 320 name: auxRectifying\n    test 321 inverse: lat (-32.0)\n    test 322 auxIsometric(-32): -34.010891137\n    test 323 name: auxIsometric\n    test 324 inverse: lat (-32.0)\n    test 325 auxParametric(-32): -32.086538627\n    test 326 name: auxParametric\n    test 327 inverse: lat (-32.0)\n    test 328 auxGeocentric(-32): -32.173203962\n    test 329 name: auxGeocentric\n    test 330 inverse: lat (-32.0)\n    test 331 auxGeocentric(-32, height=1.0e+06): -32.149679767\n    test 332 name: auxGeocentric\n    test 333 inverse: lat (-32.0)\n    test 334 auxAuthalic(-3): -3.013433135\n    test 335 name: auxAuthalic\n    test 336 inverse: lat (-3.0)\n    test 337 auxConformal(-3): -3.020181246\n    test 338 name: auxConformal\n    test 339 inverse: lat (-3.0)\n    test 340 auxRectifying(-3): -3.005060047\n    test 341 name: auxRectifying\n    test 342 inverse: lat (-3.0)\n    test 343 auxIsometric(-3): -3.021580847\n    test 344 name: auxIsometric\n    test 345 inverse: lat (-3.0)\n    test 346 auxParametric(-3): -3.010073741\n    test 347 name: auxParametric\n    test 348 inverse: lat (-3.0)\n    test 349 auxGeocentric(-3): -3.020181184\n    test 350 name: auxGeocentric\n    test 351 inverse: lat (-3.0)\n    test 352 auxGeocentric(-3, height=1.0e+06): -3.017437987\n    test 353 name: auxGeocentric\n    test 354 inverse: lat (-3.0)\n    test 355 auxAuthalic(26): 26.10119548\n    test 356 name: auxAuthalic\n    test 357 inverse: lat (26.0)\n    test 358 auxConformal(26): 26.151978892\n    test 359 name: auxConformal\n    test 360 inverse: lat (26.0)\n    test 361 auxRectifying(26): 26.038152061\n    test 362 name: auxRectifying\n    test 363 inverse: lat (26.0)\n    test 364 auxIsometric(26): 27.110404181\n    test 365 name: auxIsometric\n    test 366 inverse: lat (26.0)\n    test 367 auxParametric(26): 26.075894699\n    test 368 name: auxParametric\n    test 369 inverse: lat (26.0)\n    test 370 auxGeocentric(26): 26.15194595\n    test 371 name: auxGeocentric\n    test 372 inverse: lat (26.0)\n    test 373 auxGeocentric(26, height=1.0e+06): 26.131303631\n    test 374 name: auxGeocentric\n    test 375 inverse: lat (26.0)\n    test 376 auxAuthalic(55): 55.120454487\n    test 377 name: auxAuthalic\n    test 378 inverse: lat (55.0)\n    test 379 auxConformal(55): 55.180747234\n    test 380 name: auxConformal\n    test 381 inverse: lat (55.0)\n    test 382 auxRectifying(55): 55.045512882\n    test 383 name: auxRectifying\n    test 384 inverse: lat (55.0)\n    test 385 auxIsometric(55): 66.448604201\n    test 386 name: auxIsometric\n    test 387 inverse: lat (55.0)\n    test 388 auxParametric(55): 55.090357963\n    test 389 name: auxParametric\n    test 390 inverse: lat (55.0)\n    test 391 auxGeocentric(55): 55.180611298\n    test 392 name: auxGeocentric\n    test 393 inverse: lat (55.0)\n    test 394 auxGeocentric(55, height=1.0e+06): 55.156108835\n    test 395 name: auxGeocentric\n    test 396 inverse: lat (55.0)\n    test 397 auxAuthalic(84): 84.026618976\n    test 398 name: auxAuthalic\n    test 399 inverse: lat (84.0)\n    test 400 auxConformal(84): 84.039920255\n    test 401 name: auxConformal\n    test 402 inverse: lat (84.0)\n    test 403 auxRectifying(84): 84.010072387\n    test 404 name: auxRectifying\n    test 405 inverse: lat (84.0)\n    test 406 auxIsometric(84): 169.331258228\n    test 407 name: auxIsometric\n    test 408 inverse: lat (84.0)\n    test 409 auxParametric(84): 84.019970846\n    test 410 name: auxParametric\n    test 411 inverse: lat (84.0)\n    test 412 auxGeocentric(84): 84.039876185\n    test 413 name: auxGeocentric\n    test 414 inverse: lat (84.0)\n    test 415 auxGeocentric(84, height=1.0e+06): 84.034471374\n    test 416 name: auxGeocentric\n    test 417 inverse: lat (84.0)\n\n    testauxLats Sphere(pygeodesy.ellipsoids, 26.03.25)\n    test 418 isEllipsoidal: False\n    test 419 isOblate: False\n    test 420 isProlate: False\n    test 421 isSpherical: True\n    test 422 auxAuthalic(-90): -90.0\n    test 423 name: auxAuthalic\n    test 424 inverse: lat (-90.0)\n    test 425 auxConformal(-90): -90.0\n    test 426 name: auxConformal\n    test 427 inverse: lat (-90.0)\n    test 428 auxRectifying(-90): -90.0\n    test 429 name: auxRectifying\n    test 430 inverse: lat (-90.0)\n    test 431 auxIsometric(-90): -90.0\n    test 432 name: auxIsometric\n    test 433 inverse: lat (-90.0)\n    test 434 auxParametric(-90): -90.0\n    test 435 name: auxParametric\n    test 436 inverse: lat (-90.0)\n    test 437 auxGeocentric(-90): -90.0\n    test 438 name: auxGeocentric\n    test 439 inverse: lat (-90.0)\n    test 440 auxGeocentric(-90, height=1.0e+06): -90.0\n    test 441 name: auxGeocentric\n    test 442 inverse: lat (-90.0)\n    test 443 auxAuthalic(-61): -61.0\n    test 444 name: auxAuthalic\n    test 445 inverse: lat (-61.0)\n    test 446 auxConformal(-61): -61.0\n    test 447 name: auxConformal\n    test 448 inverse: lat (-61.0)\n    test 449 auxRectifying(-61): -61.0\n    test 450 name: auxRectifying\n    test 451 inverse: lat (-61.0)\n    test 452 auxIsometric(-61): -61.0\n    test 453 name: auxIsometric\n    test 454 inverse: lat (-61.0)\n    test 455 auxParametric(-61): -61.0\n    test 456 name: auxParametric\n    test 457 inverse: lat (-61.0)\n    test 458 auxGeocentric(-61): -61.0\n    test 459 name: auxGeocentric\n    test 460 inverse: lat (-61.0)\n    test 461 auxGeocentric(-61, height=1.0e+06): -61.0\n    test 462 name: auxGeocentric\n    test 463 inverse: lat (-61.0)\n    test 464 auxAuthalic(-32): -32.0\n    test 465 name: auxAuthalic\n    test 466 inverse: lat (-32.0)\n    test 467 auxConformal(-32): -32.0\n    test 468 name: auxConformal\n    test 469 inverse: lat (-32.0)\n    test 470 auxRectifying(-32): -32.0\n    test 471 name: auxRectifying\n    test 472 inverse: lat (-32.0)\n    test 473 auxIsometric(-32): -32.0\n    test 474 name: auxIsometric\n    test 475 inverse: lat (-32.0)\n    test 476 auxParametric(-32): -32.0\n    test 477 name: auxParametric\n    test 478 inverse: lat (-32.0)\n    test 479 auxGeocentric(-32): -32.0\n    test 480 name: auxGeocentric\n    test 481 inverse: lat (-32.0)\n    test 482 auxGeocentric(-32, height=1.0e+06): -32.0\n    test 483 name: auxGeocentric\n    test 484 inverse: lat (-32.0)\n    test 485 auxAuthalic(-3): -3.0\n    test 486 name: auxAuthalic\n    test 487 inverse: lat (-3.0)\n    test 488 auxConformal(-3): -3.0\n    test 489 name: auxConformal\n    test 490 inverse: lat (-3.0)\n    test 491 auxRectifying(-3): -3.0\n    test 492 name: auxRectifying\n    test 493 inverse: lat (-3.0)\n    test 494 auxIsometric(-3): -3.0\n    test 495 name: auxIsometric\n    test 496 inverse: lat (-3.0)\n    test 497 auxParametric(-3): -3.0\n    test 498 name: auxParametric\n    test 499 inverse: lat (-3.0)\n    test 500 auxGeocentric(-3): -3.0\n    test 501 name: auxGeocentric\n    test 502 inverse: lat (-3.0)\n    test 503 auxGeocentric(-3, height=1.0e+06): -3.0\n    test 504 name: auxGeocentric\n    test 505 inverse: lat (-3.0)\n    test 506 auxAuthalic(26): 26.0\n    test 507 name: auxAuthalic\n    test 508 inverse: lat (26.0)\n    test 509 auxConformal(26): 26.0\n    test 510 name: auxConformal\n    test 511 inverse: lat (26.0)\n    test 512 auxRectifying(26): 26.0\n    test 513 name: auxRectifying\n    test 514 inverse: lat (26.0)\n    test 515 auxIsometric(26): 26.0\n    test 516 name: auxIsometric\n    test 517 inverse: lat (26.0)\n    test 518 auxParametric(26): 26.0\n    test 519 name: auxParametric\n    test 520 inverse: lat (26.0)\n    test 521 auxGeocentric(26): 26.0\n    test 522 name: auxGeocentric\n    test 523 inverse: lat (26.0)\n    test 524 auxGeocentric(26, height=1.0e+06): 26.0\n    test 525 name: auxGeocentric\n    test 526 inverse: lat (26.0)\n    test 527 auxAuthalic(55): 55.0\n    test 528 name: auxAuthalic\n    test 529 inverse: lat (55.0)\n    test 530 auxConformal(55): 55.0\n    test 531 name: auxConformal\n    test 532 inverse: lat (55.0)\n    test 533 auxRectifying(55): 55.0\n    test 534 name: auxRectifying\n    test 535 inverse: lat (55.0)\n    test 536 auxIsometric(55): 55.0\n    test 537 name: auxIsometric\n    test 538 inverse: lat (55.0)\n    test 539 auxParametric(55): 55.0\n    test 540 name: auxParametric\n    test 541 inverse: lat (55.0)\n    test 542 auxGeocentric(55): 55.0\n    test 543 name: auxGeocentric\n    test 544 inverse: lat (55.0)\n    test 545 auxGeocentric(55, height=1.0e+06): 55.0\n    test 546 name: auxGeocentric\n    test 547 inverse: lat (55.0)\n    test 548 auxAuthalic(84): 84.0\n    test 549 name: auxAuthalic\n    test 550 inverse: lat (84.0)\n    test 551 auxConformal(84): 84.0\n    test 552 name: auxConformal\n    test 553 inverse: lat (84.0)\n    test 554 auxRectifying(84): 84.0\n    test 555 name: auxRectifying\n    test 556 inverse: lat (84.0)\n    test 557 auxIsometric(84): 84.0\n    test 558 name: auxIsometric\n    test 559 inverse: lat (84.0)\n    test 560 auxParametric(84): 84.0\n    test 561 name: auxParametric\n    test 562 inverse: lat (84.0)\n    test 563 auxGeocentric(84): 84.0\n    test 564 name: auxGeocentric\n    test 565 inverse: lat (84.0)\n    test 566 auxGeocentric(84, height=1.0e+06): 84.0\n    test 567 name: auxGeocentric\n    test 568 inverse: lat (84.0)\n\n    testFlattenings(pygeodesy.ellipsoids, 26.03.25)\n    test 569 all: all\n    test 570 _TOL: 1.4901161193847657e-09\n\n    test 571 Airy1830.f_ - 1 / .f: 0.0\n    test 572 Airy1830.f - 1 / .f_: 0.0\n\n    test 573 AiryModified.f_ - 1 / .f: 0.0\n    test 574 AiryModified.f - 1 / .f_: 0.0\n\n    test 575 ATS1977.f_ - 1 / .f: 0.0\n    test 576 ATS1977.f - 1 / .f_: 0.0\n\n    test 577 Australia1966.f_ - 1 / .f: 0.0\n    test 578 Australia1966.f - 1 / .f_: 0.0\n\n    test 579 Bessel1841.f_ - 1 / .f: -3.6334313335828483e-10\n    test 580 Bessel1841.f - 1 / .f_: -4.060120295523717e-15\n\n    test 581 BesselModified.f_ - 1 / .f: 0.0\n    test 582 BesselModified.f - 1 / .f_: 0.0\n\n    test 583 CGCS2000.f_ - 1 / .f: 0.0\n    test 584 CGCS2000.f - 1 / .f_: 0.0\n\n    test 585 Clarke1866.f_ - 1 / .f: 1.0180656317970715e-10\n    test 586 Clarke1866.f - 1 / .f_: 1.1700709845463564e-15\n\n    test 587 Clarke1880.f_ - 1 / .f: -6.275513442233205e-11\n    test 588 Clarke1880.f - 1 / .f_: -7.28583859910259e-16\n\n    test 589 Clarke1880IGN.f_ - 1 / .f: 3.73063357983483e-10\n    test 590 Clarke1880IGN.f - 1 / .f_: 4.3320382003830815e-15\n\n    test 591 Clarke1880Mod.f_ - 1 / .f: 6.866684998385608e-11\n    test 592 Clarke1880Mod.f - 1 / .f_: 7.971054372113429e-16\n\n    test 593 CPM1799.f_ - 1 / .f: -4.774847184307873e-11\n    test 594 CPM1799.f - 1 / .f_: -4.2674197509029455e-16\n\n    test 595 Delambre1810.f_ - 1 / .f: 6.008349373587407e-11\n    test 596 Delambre1810.f - 1 / .f_: 6.192962809237201e-16\n\n    test 597 Engelis1985.f_ - 1 / .f: 3.171862772433087e-11\n    test 598 Engelis1985.f - 1 / .f_: 3.5691935518222806e-16\n\n    test 599 Everest1969.f_ - 1 / .f: -1.0334133548894897e-10\n    test 600 Everest1969.f - 1 / .f_: -1.1418817280617333e-15\n\n    test 601 Everest1975.f_ - 1 / .f: 2.1088908397359774e-11\n    test 602 Everest1975.f - 1 / .f_: 2.3288662664988635e-16\n\n    test 603 Fisher1968.f_ - 1 / .f: 6.394884621840902e-11\n    test 604 Fisher1968.f - 1 / .f_: 7.186091999233923e-16\n\n    test 605 GEM10C.f_ - 1 / .f: 3.501554601825774e-11\n    test 606 GEM10C.f - 1 / .f_: 3.937822290467352e-16\n\n    test 607 GRS67.f_ - 1 / .f: 0.0\n    test 608 GRS67.f - 1 / .f_: 0.0\n\n    test 609 GRS80.f_ - 1 / .f: 5.7980287238024175e-12\n    test 610 GRS80.f - 1 / .f_: 6.505213034913027e-17\n\n    test 611 Helmert1906.f_ - 1 / .f: 1.944044925039634e-11\n    test 612 Helmert1906.f - 1 / .f_: 2.185751579730777e-16\n\n    test 613 IAU76.f_ - 1 / .f: 0.0\n    test 614 IAU76.f - 1 / .f_: 0.0\n\n    test 615 IERS1989.f_ - 1 / .f: 0.0\n    test 616 IERS1989.f - 1 / .f_: 0.0\n\n    test 617 IERS1992TOPEX.f_ - 1 / .f: -4.746425474877469e-11\n    test 618 IERS1992TOPEX.f - 1 / .f_: -5.334274688628682e-16\n\n    test 619 IERS2003.f_ - 1 / .f: -3.6777692002942786e-11\n    test 620 IERS2003.f - 1 / .f_: -4.137315490204685e-16\n\n    test 621 Intl1924.f_ - 1 / .f: 0.0\n    test 622 Intl1924.f - 1 / .f_: 0.0\n\n    test 623 Intl1967.f_ - 1 / .f: -1.3528733688872308e-11\n    test 624 Intl1967.f - 1 / .f_: -1.5222198501696482e-16\n\n    test 625 Krassovski1940.f_ - 1 / .f: -3.8767211663071066e-11\n    test 626 Krassovski1940.f - 1 / .f_: -4.358492733391728e-16\n\n    test 627 Krassowsky1940.f_ - 1 / .f: -3.8767211663071066e-11\n    test 628 Krassowsky1940.f - 1 / .f_: -4.358492733391728e-16\n\n    test 629 Maupertuis1738.f_ - 1 / .f: 1.5347723092418164e-11\n    test 630 Maupertuis1738.f - 1 / .f_: 4.206704429243757e-16\n\n    test 631 Mercury1960.f_ - 1 / .f: -4.803268893738277e-11\n    test 632 Mercury1960.f - 1 / .f_: -5.39499001028787e-16\n\n    test 633 Mercury1968Mod.f_ - 1 / .f: 6.394884621840902e-11\n    test 634 Mercury1968Mod.f - 1 / .f_: 7.186091999233923e-16\n\n    test 635 NWL1965.f_ - 1 / .f: 5.32054400537163e-11\n    test 636 NWL1965.f - 1 / .f_: 5.980459183430042e-16\n\n    test 637 OSU86F.f_ - 1 / .f: 1.460875864722766e-11\n    test 638 OSU86F.f - 1 / .f_: 1.6436504934880247e-16\n\n    test 639 OSU91A.f_ - 1 / .f: -2.2737367544323206e-12\n    test 640 OSU91A.f - 1 / .f_: -2.5587171270657905e-17\n\n    test 641 Plessis1817.f_ - 1 / .f: 4.2234660213580355e-11\n    test 642 Plessis1817.f - 1 / .f_: 4.432218481120742e-16\n\n    test 643 Prolate.f_ - 1 / .f: 0.0\n    test 644 Prolate.f - 1 / .f_: 0.0\n\n    test 645 PZ90.f_ - 1 / .f: 0.0\n    test 646 PZ90.f - 1 / .f_: 0.0\n\n    test 647 SGS85.f_ - 1 / .f: 1.659827830735594e-11\n    test 648 SGS85.f - 1 / .f_: 1.8691645453650096e-16\n\n    test 649 SoAmerican1969.f_ - 1 / .f: -5.6843418860808015e-11\n    test 650 SoAmerican1969.f - 1 / .f_: -6.388119200284592e-16\n\n    test 651 Struve1860.f_ - 1 / .f: 1.9042545318370685e-11\n    test 652 Struve1860.f - 1 / .f_: 2.194425197110661e-16\n\n    test 653 WGS60.f_ - 1 / .f: -5.076117304270156e-11\n    test 654 WGS60.f - 1 / .f_: -5.702903427273753e-16\n\n    test 655 WGS66.f_ - 1 / .f: 5.32054400537163e-11\n    test 656 WGS66.f - 1 / .f_: 5.980459183430042e-16\n\n    test 657 WGS72.f_ - 1 / .f: 0.0\n    test 658 WGS72.f - 1 / .f_: 0.0\n\n    test 659 WGS84.f_ - 1 / .f: 0.0\n    test 660 WGS84.f - 1 / .f_: 0.0\n\n    test 661 WGS84_NGS.f_ - 1 / .f: 0.0\n    test 662 WGS84_NGS.f - 1 / .f_: 0.0\n\n    testEllipsoid2(pygeodesy.ellipsoids, 26.03.25)\n    test 663 _2_Airy1830: a=6377563.396, f=0.0033409, f_=299.3249646, b=6356256.9092373\n    test 664 _2_AiryModified: a=6377340.189, f=0.0033409, f_=299.3249646, b=6356034.4479385\n    test 665 _2_ATS1977: a=6378135, f=0.0033528, f_=298.257, b=6356750.3049216\n    test 666 _2_Australia1966: a=6378160, f=0.0033529, f_=298.25, b=6356774.7191953\n    test 667 _2_Bessel1841: a=6377397.155, f=0.0033428, f_=299.1528128, b=6356078.962818\n    test 668 _2_BesselModified: a=6377492.018, f=0.0033428, f_=299.1528128, b=6356173.5087127\n    test 669 _2_CGCS2000: a=6378137, f=0.0033528, f_=298.2572221, b=6356752.3141404\n    test 670 _2_Clarke1866: a=6378206.4, f=0.0033901, f_=294.9786982, b=6356583.8\n    test 671 _2_Clarke1880: a=6378249.145, f=0.0034076, f_=293.465, b=6356514.8695498\n    test 672 _2_Clarke1880IGN: a=6378249.2, f=0.0034075, f_=293.4660213, b=6356515\n    test 673 _2_Clarke1880Mod: a=6378249.145, f=0.0034075, f_=293.4663077, b=6356514.9663955\n    test 674 _2_CPM1799: a=6375738.7, f=0.0029905, f_=334.39, b=6356671.9255749\n    test 675 _2_Delambre1810: a=6376428, f=0.0032103, f_=311.5, b=6355957.9261637\n    test 676 _2_Engelis1985: a=6378136.05, f=0.0033528, f_=298.2566, b=6356751.3227215\n    test 677 _2_Everest1969: a=6377295.664, f=0.0033244, f_=300.8017, b=6356094.667915\n    test 678 _2_Everest1975: a=6377299.151, f=0.0033244, f_=300.8017255, b=6356098.1451201\n    test 679 _2_Fisher1968: a=6378150, f=0.0033523, f_=298.3, b=6356768.3372444\n    test 680 _2_GEM10C: a=6378137, f=0.0033528, f_=298.2572236, b=6356752.3142478\n    test 681 _2_GPES: a=6378135, f=0, f_=0, b=6378135\n    test 682 _2_GRS67: a=6378160, f=0.0033529, f_=298.2471674, b=6356774.5160907\n    test 683 _2_GRS80: a=6378137, f=0.0033528, f_=298.2572221, b=6356752.3141403\n    test 684 _2_Helmert1906: a=6378200, f=0.0033523, f_=298.3, b=6356818.1696279\n    test 685 _2_IAU76: a=6378140, f=0.0033528, f_=298.257, b=6356755.2881575\n    test 686 _2_IERS1989: a=6378136, f=0.0033528, f_=298.257, b=6356751.3015688\n    test 687 _2_IERS1992TOPEX: a=6378136.3, f=0.0033528, f_=298.2572236, b=6356751.6165922\n    test 688 _2_IERS2003: a=6378136.6, f=0.0033528, f_=298.25642, b=6356751.8579716\n    test 689 _2_Intl1924: a=6378388, f=0.003367, f_=297, b=6356911.9461279\n    test 690 _2_Intl1967: a=6378157.5, f=0.0033529, f_=298.2496154, b=6356772.2\n    test 691 _2_Krassovski1940: a=6378245, f=0.0033523, f_=298.3, b=6356863.0187731\n    test 692 _2_Krassowsky1940: a=6378245, f=0.0033523, f_=298.3, b=6356863.0187731\n    test 693 _2_Maupertuis1738: a=6397300, f=0.0052356, f_=191, b=6363806.2827225\n    test 694 _2_Mercury1960: a=6378166, f=0.0033523, f_=298.3, b=6356784.2836071\n    test 695 _2_Mercury1968Mod: a=6378150, f=0.0033523, f_=298.3, b=6356768.3372444\n    test 696 _2_NWL1965: a=6378145, f=0.0033529, f_=298.25, b=6356759.7694887\n    test 697 _2_OSU86F: a=6378136.2, f=0.0033528, f_=298.2572236, b=6356751.5169301\n    test 698 _2_OSU91A: a=6378136.3, f=0.0033528, f_=298.2572236, b=6356751.6165948\n    test 699 _2_Plessis1817: a=6376523, f=0.00324, f_=308.64, b=6355862.9332556\n    test 700 _2_Prolate: a=6356752.3142452, f=-0.0033641, f_=-297.2572236, b=6378137\n    test 701 _2_PZ90: a=6378136, f=0.0033528, f_=298.2578393, b=6356751.3617457\n    test 702 _2_SGS85: a=6378136, f=0.0033528, f_=298.257, b=6356751.3015688\n    test 703 _2_SoAmerican1969: a=6378160, f=0.0033529, f_=298.25, b=6356774.7191953\n    test 704 _2_Sphere: a=6371008.771415, f=0, f_=0, b=6371008.771415\n    test 705 _2_SphereAuthalic: a=6371000, f=0, f_=0, b=6371000\n    test 706 _2_SpherePopular: a=6378137, f=0, f_=0, b=6378137\n    test 707 _2_Struve1860: a=6378298.3, f=0.0033929, f_=294.73, b=6356657.1426696\n    test 708 _2_WGS60: a=6378165, f=0.0033523, f_=298.3, b=6356783.2869594\n    test 709 _2_WGS66: a=6378145, f=0.0033529, f_=298.25, b=6356759.7694887\n    test 710 _2_WGS72: a=6378135, f=0.0033528, f_=298.26, b=6356750.5200161\n    test 711 _2_WGS84: a=6378137, f=0.0033528, f_=298.2572236, b=6356752.3142452\n    test 712 _2_WGS84_NGS: a=6378137, f=0.0033528, f_=298.2572221, b=6356752.3141403\n\n    testa_f2Tuple(pygeodesy.ellipsoids, 26.03.25)\n    test 713 a_b_Airy1830: a=6377563.396, f=0.0033409, f_=299.3249646, b=6356256.9092373\n    test 714 a_b_AiryModified: a=6377340.189, f=0.0033409, f_=299.3249646, b=6356034.4479385\n    test 715 a_b_ATS1977: a=6378135, f=0.0033528, f_=298.257, b=6356750.3049216\n    test 716 a_b_Australia1966: a=6378160, f=0.0033529, f_=298.25, b=6356774.7191953\n    test 717 a_b_Bessel1841: a=6377397.155, f=0.0033428, f_=299.1528128, b=6356078.962818\n    test 718 a_b_BesselModified: a=6377492.018, f=0.0033428, f_=299.1528128, b=6356173.5087127\n    test 719 a_b_CGCS2000: a=6378137, f=0.0033528, f_=298.2572221, b=6356752.3141404\n    test 720 a_b_Clarke1866: a=6378206.4, f=0.0033901, f_=294.9786982, b=6356583.8\n    test 721 a_b_Clarke1880: a=6378249.145, f=0.0034076, f_=293.465, b=6356514.8695498\n    test 722 a_b_Clarke1880IGN: a=6378249.2, f=0.0034075, f_=293.4660213, b=6356515\n    test 723 a_b_Clarke1880Mod: a=6378249.145, f=0.0034075, f_=293.4663077, b=6356514.9663955\n    test 724 a_b_CPM1799: a=6375738.7, f=0.0029905, f_=334.39, b=6356671.9255749\n    test 725 a_b_Delambre1810: a=6376428, f=0.0032103, f_=311.5, b=6355957.9261637\n    test 726 a_b_Engelis1985: a=6378136.05, f=0.0033528, f_=298.2566, b=6356751.3227215\n    test 727 a_b_Everest1969: a=6377295.664, f=0.0033244, f_=300.8017, b=6356094.667915\n    test 728 a_b_Everest1975: a=6377299.151, f=0.0033244, f_=300.8017255, b=6356098.1451201\n    test 729 a_b_Fisher1968: a=6378150, f=0.0033523, f_=298.3, b=6356768.3372444\n    test 730 a_b_GEM10C: a=6378137, f=0.0033528, f_=298.2572236, b=6356752.3142478\n    test 731 a_b_GPES: a=6378135, f=0, f_=0, b=6378135\n    test 732 a_b_GRS67: a=6378160, f=0.0033529, f_=298.2471674, b=6356774.5160907\n    test 733 a_b_GRS80: a=6378137, f=0.0033528, f_=298.2572221, b=6356752.3141403\n    test 734 a_b_Helmert1906: a=6378200, f=0.0033523, f_=298.3, b=6356818.1696279\n    test 735 a_b_IAU76: a=6378140, f=0.0033528, f_=298.257, b=6356755.2881575\n    test 736 a_b_IERS1989: a=6378136, f=0.0033528, f_=298.257, b=6356751.3015688\n    test 737 a_b_IERS1992TOPEX: a=6378136.3, f=0.0033528, f_=298.2572236, b=6356751.6165922\n    test 738 a_b_IERS2003: a=6378136.6, f=0.0033528, f_=298.25642, b=6356751.8579716\n    test 739 a_b_Intl1924: a=6378388, f=0.003367, f_=297, b=6356911.9461279\n    test 740 a_b_Intl1967: a=6378157.5, f=0.0033529, f_=298.2496154, b=6356772.2\n    test 741 a_b_Krassovski1940: a=6378245, f=0.0033523, f_=298.3, b=6356863.0187731\n    test 742 a_b_Krassowsky1940: a=6378245, f=0.0033523, f_=298.3, b=6356863.0187731\n    test 743 a_b_Maupertuis1738: a=6397300, f=0.0052356, f_=191, b=6363806.2827225\n    test 744 a_b_Mercury1960: a=6378166, f=0.0033523, f_=298.3, b=6356784.2836071\n    test 745 a_b_Mercury1968Mod: a=6378150, f=0.0033523, f_=298.3, b=6356768.3372444\n    test 746 a_b_NWL1965: a=6378145, f=0.0033529, f_=298.25, b=6356759.7694887\n    test 747 a_b_OSU86F: a=6378136.2, f=0.0033528, f_=298.2572236, b=6356751.5169301\n    test 748 a_b_OSU91A: a=6378136.3, f=0.0033528, f_=298.2572236, b=6356751.6165948\n    test 749 a_b_Plessis1817: a=6376523, f=0.00324, f_=308.64, b=6355862.9332556\n    test 750 a_b_Prolate: a=6356752.3142452, f=-0.0033641, f_=-297.2572236, b=6378137\n    test 751 a_b_PZ90: a=6378136, f=0.0033528, f_=298.2578393, b=6356751.3617457\n    test 752 a_b_SGS85: a=6378136, f=0.0033528, f_=298.257, b=6356751.3015688\n    test 753 a_b_SoAmerican1969: a=6378160, f=0.0033529, f_=298.25, b=6356774.7191953\n    test 754 a_b_Sphere: a=6371008.771415, f=0, f_=0, b=6371008.771415\n    test 755 a_b_SphereAuthalic: a=6371000, f=0, f_=0, b=6371000\n    test 756 a_b_SpherePopular: a=6378137, f=0, f_=0, b=6378137\n    test 757 a_b_Struve1860: a=6378298.3, f=0.0033929, f_=294.73, b=6356657.1426696\n    test 758 a_b_WGS60: a=6378165, f=0.0033523, f_=298.3, b=6356783.2869594\n    test 759 a_b_WGS66: a=6378145, f=0.0033529, f_=298.25, b=6356759.7694887\n    test 760 a_b_WGS72: a=6378135, f=0.0033528, f_=298.26, b=6356750.5200161\n    test 761 a_b_WGS84: a=6378137, f=0.0033528, f_=298.2572236, b=6356752.3142452\n    test 762 a_b_WGS84_NGS: a=6378137, f=0.0033528, f_=298.2572221, b=6356752.3141403\n    test 763 _a_f_ellipsoid: a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518\n    test 764 _toEllipsoid2: a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518\n\n    testFunctions(pygeodesy.ellipsoids, 26.03.25)\n\n    test 765 a_b2f_(Airy1830): 299.32496460\n    test 766 a_b2f2(Airy1830): 0.00335205\n    test 767 a_b2n(Airy1830): 0.00167322\n    test 768 b_f2a(Airy1830): 6377563.396\n    test 769 b_f_2a(Airy1830): 6377563.396\n    test 770 f_2f(Airy1830): 0.00334085\n    test 771 e2f(Airy1830): 0.00334085\n    test 772 n2e2(Airy1830): 0.00667054\n    test 773 n2f(Airy1830): 0.00334085\n\n    test 774 a_b2f_(AiryModified): 299.32496460\n    test 775 a_b2f2(AiryModified): 0.00335205\n    test 776 a_b2n(AiryModified): 0.00167322\n    test 777 b_f2a(AiryModified): 6377340.189\n    test 778 b_f_2a(AiryModified): 6377340.189\n    test 779 f_2f(AiryModified): 0.00334085\n    test 780 e2f(AiryModified): 0.00334085\n    test 781 n2e2(AiryModified): 0.00667054\n    test 782 n2f(AiryModified): 0.00334085\n\n    test 783 a_b2f_(ATS1977): 298.25700000\n    test 784 a_b2f2(ATS1977): 0.00336409\n    test 785 a_b2n(ATS1977): 0.00167922\n    test 786 b_f2a(ATS1977): 6378135.000\n    test 787 b_f_2a(ATS1977): 6378135.000\n    test 788 f_2f(ATS1977): 0.00335281\n    test 789 e2f(ATS1977): 0.00335281\n    test 790 n2e2(ATS1977): 0.00669438\n    test 791 n2f(ATS1977): 0.00335281\n\n    test 792 a_b2f_(Australia1966): 298.25000000\n    test 793 a_b2f2(Australia1966): 0.00336417\n    test 794 a_b2n(Australia1966): 0.00167926\n    test 795 b_f2a(Australia1966): 6378160.000\n    test 796 b_f_2a(Australia1966): 6378160.000\n    test 797 f_2f(Australia1966): 0.00335289\n    test 798 e2f(Australia1966): 0.00335289\n    test 799 n2e2(Australia1966): 0.00669454\n    test 800 n2f(Australia1966): 0.00335289\n\n    test 801 a_b2f_(Bessel1841): 299.15281280\n    test 802 a_b2f2(Bessel1841): 0.00335398\n    test 803 a_b2n(Bessel1841): 0.00167418\n    test 804 b_f2a(Bessel1841): 6377397.155\n    test 805 b_f_2a(Bessel1841): 6377397.155\n    test 806 f_2f(Bessel1841): 0.00334277\n    test 807 e2f(Bessel1841): 0.00334277\n    test 808 n2e2(Bessel1841): 0.00667437\n    test 809 n2f(Bessel1841): 0.00334277\n\n    test 810 a_b2f_(BesselModified): 299.15281280\n    test 811 a_b2f2(BesselModified): 0.00335398\n    test 812 a_b2n(BesselModified): 0.00167418\n    test 813 b_f2a(BesselModified): 6377492.018\n    test 814 b_f_2a(BesselModified): 6377492.018\n    test 815 f_2f(BesselModified): 0.00334277\n    test 816 e2f(BesselModified): 0.00334277\n    test 817 n2e2(BesselModified): 0.00667437\n    test 818 n2f(BesselModified): 0.00334277\n\n    test 819 a_b2f_(CGCS2000): 298.25722210\n    test 820 a_b2f2(CGCS2000): 0.00336409\n    test 821 a_b2n(CGCS2000): 0.00167922\n    test 822 b_f2a(CGCS2000): 6378137.000\n    test 823 b_f_2a(CGCS2000): 6378137.000\n    test 824 f_2f(CGCS2000): 0.00335281\n    test 825 e2f(CGCS2000): 0.00335281\n    test 826 n2e2(CGCS2000): 0.00669438\n    test 827 n2f(CGCS2000): 0.00335281\n\n    test 828 a_b2f_(Clarke1866): 294.97869821\n    test 829 a_b2f2(Clarke1866): 0.00340161\n    test 830 a_b2n(Clarke1866): 0.00169792\n    test 831 b_f2a(Clarke1866): 6378206.400\n    test 832 b_f_2a(Clarke1866): 6378206.400\n    test 833 f_2f(Clarke1866): 0.00339008\n    test 834 e2f(Clarke1866): 0.00339008\n    test 835 n2e2(Clarke1866): 0.00676866\n    test 836 n2f(Clarke1866): 0.00339008\n\n    test 837 a_b2f_(Clarke1880): 293.46500000\n    test 838 a_b2f2(Clarke1880): 0.00341921\n    test 839 a_b2n(Clarke1880): 0.00170669\n    test 840 b_f2a(Clarke1880): 6378249.145\n    test 841 b_f_2a(Clarke1880): 6378249.145\n    test 842 f_2f(Clarke1880): 0.00340756\n    test 843 e2f(Clarke1880): 0.00340756\n    test 844 n2e2(Clarke1880): 0.00680351\n    test 845 n2f(Clarke1880): 0.00340756\n\n    test 846 a_b2f_(Clarke1880IGN): 293.46602129\n    test 847 a_b2f2(Clarke1880IGN): 0.00341920\n    test 848 a_b2n(Clarke1880IGN): 0.00170668\n    test 849 b_f2a(Clarke1880IGN): 6378249.200\n    test 850 b_f_2a(Clarke1880IGN): 6378249.200\n    test 851 f_2f(Clarke1880IGN): 0.00340755\n    test 852 e2f(Clarke1880IGN): 0.00340755\n    test 853 n2e2(Clarke1880IGN): 0.00680349\n    test 854 n2f(Clarke1880IGN): 0.00340755\n\n    test 855 a_b2f_(Clarke1880Mod): 293.46630766\n    test 856 a_b2f2(Clarke1880Mod): 0.00341920\n    test 857 a_b2n(Clarke1880Mod): 0.00170668\n    test 858 b_f2a(Clarke1880Mod): 6378249.145\n    test 859 b_f_2a(Clarke1880Mod): 6378249.145\n    test 860 f_2f(Clarke1880Mod): 0.00340755\n    test 861 e2f(Clarke1880Mod): 0.00340755\n    test 862 n2e2(Clarke1880Mod): 0.00680348\n    test 863 n2f(Clarke1880Mod): 0.00340755\n\n    test 864 a_b2f_(CPM1799): 334.39000000\n    test 865 a_b2f2(CPM1799): 0.00299949\n    test 866 a_b2n(CPM1799): 0.00149750\n    test 867 b_f2a(CPM1799): 6375738.700\n    test 868 b_f_2a(CPM1799): 6375738.700\n    test 869 f_2f(CPM1799): 0.00299052\n    test 870 e2f(CPM1799): 0.00299052\n    test 871 n2e2(CPM1799): 0.00597210\n    test 872 n2f(CPM1799): 0.00299052\n\n    test 873 a_b2f_(Delambre1810): 311.50000000\n    test 874 a_b2f2(Delambre1810): 0.00322061\n    test 875 a_b2n(Delambre1810): 0.00160772\n    test 876 b_f2a(Delambre1810): 6376428.000\n    test 877 b_f_2a(Delambre1810): 6376428.000\n    test 878 f_2f(Delambre1810): 0.00321027\n    test 879 e2f(Delambre1810): 0.00321027\n    test 880 n2e2(Delambre1810): 0.00641024\n    test 881 n2f(Delambre1810): 0.00321027\n\n    test 882 a_b2f_(Engelis1985): 298.25660000\n    test 883 a_b2f2(Engelis1985): 0.00336410\n    test 884 a_b2n(Engelis1985): 0.00167922\n    test 885 b_f2a(Engelis1985): 6378136.050\n    test 886 b_f_2a(Engelis1985): 6378136.050\n    test 887 f_2f(Engelis1985): 0.00335282\n    test 888 e2f(Engelis1985): 0.00335282\n    test 889 n2e2(Engelis1985): 0.00669439\n    test 890 n2f(Engelis1985): 0.00335282\n\n    test 891 a_b2f_(Everest1969): 300.80170000\n    test 892 a_b2f2(Everest1969): 0.00333554\n    test 893 a_b2n(Everest1969): 0.00166499\n    test 894 b_f2a(Everest1969): 6377295.664\n    test 895 b_f_2a(Everest1969): 6377295.664\n    test 896 f_2f(Everest1969): 0.00332445\n    test 897 e2f(Everest1969): 0.00332445\n    test 898 n2e2(Everest1969): 0.00663785\n    test 899 n2f(Everest1969): 0.00332445\n\n    test 900 a_b2f_(Everest1975): 300.80172550\n    test 901 a_b2f2(Everest1975): 0.00333554\n    test 902 a_b2n(Everest1975): 0.00166499\n    test 903 b_f2a(Everest1975): 6377299.151\n    test 904 b_f_2a(Everest1975): 6377299.151\n    test 905 f_2f(Everest1975): 0.00332445\n    test 906 e2f(Everest1975): 0.00332445\n    test 907 n2e2(Everest1975): 0.00663785\n    test 908 n2f(Everest1975): 0.00332445\n\n    test 909 a_b2f_(Fisher1968): 298.30000000\n    test 910 a_b2f2(Fisher1968): 0.00336361\n    test 911 a_b2n(Fisher1968): 0.00167898\n    test 912 b_f2a(Fisher1968): 6378150.000\n    test 913 b_f_2a(Fisher1968): 6378150.000\n    test 914 f_2f(Fisher1968): 0.00335233\n    test 915 e2f(Fisher1968): 0.00335233\n    test 916 n2e2(Fisher1968): 0.00669342\n    test 917 n2f(Fisher1968): 0.00335233\n\n    test 918 a_b2f_(GEM10C): 298.25722360\n    test 919 a_b2f2(GEM10C): 0.00336409\n    test 920 a_b2n(GEM10C): 0.00167922\n    test 921 b_f2a(GEM10C): 6378137.000\n    test 922 b_f_2a(GEM10C): 6378137.000\n    test 923 f_2f(GEM10C): 0.00335281\n    test 924 e2f(GEM10C): 0.00335281\n    test 925 n2e2(GEM10C): 0.00669438\n    test 926 n2f(GEM10C): 0.00335281\n\n    test 927 a_b2f_(GPES): 0.00000000\n    test 928 a_b2f2(GPES): 0.00000000\n    test 929 a_b2n(GPES): 0.00000000\n    test 930 b_f2a(GPES): 6378135.000\n    test 931 b_f_2a(GPES): 6378135.000\n    test 932 f_2f(GPES): 0.00000000\n    test 933 e2f(GPES): 0.00000000\n    test 934 n2e2(GPES): 0.00000000\n    test 935 n2f(GPES): 0.00000000\n\n    test 936 a_b2f_(GRS67): 298.24716743\n    test 937 a_b2f2(GRS67): 0.00336420\n    test 938 a_b2n(GRS67): 0.00167928\n    test 939 b_f2a(GRS67): 6378160.000\n    test 940 b_f_2a(GRS67): 6378160.000\n    test 941 f_2f(GRS67): 0.00335292\n    test 942 e2f(GRS67): 0.00335292\n    test 943 n2e2(GRS67): 0.00669461\n    test 944 n2f(GRS67): 0.00335292\n\n    test 945 a_b2f_(GRS80): 298.25722210\n    test 946 a_b2f2(GRS80): 0.00336409\n    test 947 a_b2n(GRS80): 0.00167922\n    test 948 b_f2a(GRS80): 6378137.000\n    test 949 b_f_2a(GRS80): 6378137.000\n    test 950 f_2f(GRS80): 0.00335281\n    test 951 e2f(GRS80): 0.00335281\n    test 952 n2e2(GRS80): 0.00669438\n    test 953 n2f(GRS80): 0.00335281\n\n    test 954 a_b2f_(Helmert1906): 298.30000000\n    test 955 a_b2f2(Helmert1906): 0.00336361\n    test 956 a_b2n(Helmert1906): 0.00167898\n    test 957 b_f2a(Helmert1906): 6378200.000\n    test 958 b_f_2a(Helmert1906): 6378200.000\n    test 959 f_2f(Helmert1906): 0.00335233\n    test 960 e2f(Helmert1906): 0.00335233\n    test 961 n2e2(Helmert1906): 0.00669342\n    test 962 n2f(Helmert1906): 0.00335233\n\n    test 963 a_b2f_(IAU76): 298.25700000\n    test 964 a_b2f2(IAU76): 0.00336409\n    test 965 a_b2n(IAU76): 0.00167922\n    test 966 b_f2a(IAU76): 6378140.000\n    test 967 b_f_2a(IAU76): 6378140.000\n    test 968 f_2f(IAU76): 0.00335281\n    test 969 e2f(IAU76): 0.00335281\n    test 970 n2e2(IAU76): 0.00669438\n    test 971 n2f(IAU76): 0.00335281\n\n    test 972 a_b2f_(IERS1989): 298.25700000\n    test 973 a_b2f2(IERS1989): 0.00336409\n    test 974 a_b2n(IERS1989): 0.00167922\n    test 975 b_f2a(IERS1989): 6378136.000\n    test 976 b_f_2a(IERS1989): 6378136.000\n    test 977 f_2f(IERS1989): 0.00335281\n    test 978 e2f(IERS1989): 0.00335281\n    test 979 n2e2(IERS1989): 0.00669438\n    test 980 n2f(IERS1989): 0.00335281\n\n    test 981 a_b2f_(IERS1992TOPEX): 298.25722356\n    test 982 a_b2f2(IERS1992TOPEX): 0.00336409\n    test 983 a_b2n(IERS1992TOPEX): 0.00167922\n    test 984 b_f2a(IERS1992TOPEX): 6378136.300\n    test 985 b_f_2a(IERS1992TOPEX): 6378136.300\n    test 986 f_2f(IERS1992TOPEX): 0.00335281\n    test 987 e2f(IERS1992TOPEX): 0.00335281\n    test 988 n2e2(IERS1992TOPEX): 0.00669438\n    test 989 n2f(IERS1992TOPEX): 0.00335281\n\n    test 990 a_b2f_(IERS2003): 298.25642000\n    test 991 a_b2f2(IERS2003): 0.00336410\n    test 992 a_b2n(IERS2003): 0.00167922\n    test 993 b_f2a(IERS2003): 6378136.600\n    test 994 b_f_2a(IERS2003): 6378136.600\n    test 995 f_2f(IERS2003): 0.00335282\n    test 996 e2f(IERS2003): 0.00335282\n    test 997 n2e2(IERS2003): 0.00669440\n    test 998 n2f(IERS2003): 0.00335282\n\n    test 999 a_b2f_(Intl1924): 297.00000000\n    test 1000 a_b2f2(Intl1924): 0.00337838\n    test 1001 a_b2n(Intl1924): 0.00168634\n    test 1002 b_f2a(Intl1924): 6378388.000\n    test 1003 b_f_2a(Intl1924): 6378388.000\n    test 1004 f_2f(Intl1924): 0.00336700\n    test 1005 e2f(Intl1924): 0.00336700\n    test 1006 n2e2(Intl1924): 0.00672267\n    test 1007 n2f(Intl1924): 0.00336700\n\n    test 1008 a_b2f_(Intl1967): 298.24961539\n    test 1009 a_b2f2(Intl1967): 0.00336418\n    test 1010 a_b2n(Intl1967): 0.00167926\n    test 1011 b_f2a(Intl1967): 6378157.500\n    test 1012 b_f_2a(Intl1967): 6378157.500\n    test 1013 f_2f(Intl1967): 0.00335290\n    test 1014 e2f(Intl1967): 0.00335290\n    test 1015 n2e2(Intl1967): 0.00669455\n    test 1016 n2f(Intl1967): 0.00335290\n\n    test 1017 a_b2f_(Krassovski1940): 298.30000000\n    test 1018 a_b2f2(Krassovski1940): 0.00336361\n    test 1019 a_b2n(Krassovski1940): 0.00167898\n    test 1020 b_f2a(Krassovski1940): 6378245.000\n    test 1021 b_f_2a(Krassovski1940): 6378245.000\n    test 1022 f_2f(Krassovski1940): 0.00335233\n    test 1023 e2f(Krassovski1940): 0.00335233\n    test 1024 n2e2(Krassovski1940): 0.00669342\n    test 1025 n2f(Krassovski1940): 0.00335233\n\n    test 1026 a_b2f_(Krassowsky1940): 298.30000000\n    test 1027 a_b2f2(Krassowsky1940): 0.00336361\n    test 1028 a_b2n(Krassowsky1940): 0.00167898\n    test 1029 b_f2a(Krassowsky1940): 6378245.000\n    test 1030 b_f_2a(Krassowsky1940): 6378245.000\n    test 1031 f_2f(Krassowsky1940): 0.00335233\n    test 1032 e2f(Krassowsky1940): 0.00335233\n    test 1033 n2e2(Krassowsky1940): 0.00669342\n    test 1034 n2f(Krassowsky1940): 0.00335233\n\n    test 1035 a_b2f_(Maupertuis1738): 191.00000000\n    test 1036 a_b2f2(Maupertuis1738): 0.00526316\n    test 1037 a_b2n(Maupertuis1738): 0.00262467\n    test 1038 b_f2a(Maupertuis1738): 6397300.000\n    test 1039 b_f_2a(Maupertuis1738): 6397300.000\n    test 1040 f_2f(Maupertuis1738): 0.00523560\n    test 1041 e2f(Maupertuis1738): 0.00523560\n    test 1042 n2e2(Maupertuis1738): 0.01044379\n    test 1043 n2f(Maupertuis1738): 0.00523560\n\n    test 1044 a_b2f_(Mercury1960): 298.30000000\n    test 1045 a_b2f2(Mercury1960): 0.00336361\n    test 1046 a_b2n(Mercury1960): 0.00167898\n    test 1047 b_f2a(Mercury1960): 6378166.000\n    test 1048 b_f_2a(Mercury1960): 6378166.000\n    test 1049 f_2f(Mercury1960): 0.00335233\n    test 1050 e2f(Mercury1960): 0.00335233\n    test 1051 n2e2(Mercury1960): 0.00669342\n    test 1052 n2f(Mercury1960): 0.00335233\n\n    test 1053 a_b2f_(Mercury1968Mod): 298.30000000\n    test 1054 a_b2f2(Mercury1968Mod): 0.00336361\n    test 1055 a_b2n(Mercury1968Mod): 0.00167898\n    test 1056 b_f2a(Mercury1968Mod): 6378150.000\n    test 1057 b_f_2a(Mercury1968Mod): 6378150.000\n    test 1058 f_2f(Mercury1968Mod): 0.00335233\n    test 1059 e2f(Mercury1968Mod): 0.00335233\n    test 1060 n2e2(Mercury1968Mod): 0.00669342\n    test 1061 n2f(Mercury1968Mod): 0.00335233\n\n    test 1062 a_b2f_(NWL1965): 298.25000000\n    test 1063 a_b2f2(NWL1965): 0.00336417\n    test 1064 a_b2n(NWL1965): 0.00167926\n    test 1065 b_f2a(NWL1965): 6378145.000\n    test 1066 b_f_2a(NWL1965): 6378145.000\n    test 1067 f_2f(NWL1965): 0.00335289\n    test 1068 e2f(NWL1965): 0.00335289\n    test 1069 n2e2(NWL1965): 0.00669454\n    test 1070 n2f(NWL1965): 0.00335289\n\n    test 1071 a_b2f_(OSU86F): 298.25722360\n    test 1072 a_b2f2(OSU86F): 0.00336409\n    test 1073 a_b2n(OSU86F): 0.00167922\n    test 1074 b_f2a(OSU86F): 6378136.200\n    test 1075 b_f_2a(OSU86F): 6378136.200\n    test 1076 f_2f(OSU86F): 0.00335281\n    test 1077 e2f(OSU86F): 0.00335281\n    test 1078 n2e2(OSU86F): 0.00669438\n    test 1079 n2f(OSU86F): 0.00335281\n\n    test 1080 a_b2f_(OSU91A): 298.25722360\n    test 1081 a_b2f2(OSU91A): 0.00336409\n    test 1082 a_b2n(OSU91A): 0.00167922\n    test 1083 b_f2a(OSU91A): 6378136.300\n    test 1084 b_f_2a(OSU91A): 6378136.300\n    test 1085 f_2f(OSU91A): 0.00335281\n    test 1086 e2f(OSU91A): 0.00335281\n    test 1087 n2e2(OSU91A): 0.00669438\n    test 1088 n2f(OSU91A): 0.00335281\n\n    test 1089 a_b2f_(Plessis1817): 308.64000000\n    test 1090 a_b2f2(Plessis1817): 0.00325055\n    test 1091 a_b2n(Plessis1817): 0.00162264\n    test 1092 b_f2a(Plessis1817): 6376523.000\n    test 1093 b_f_2a(Plessis1817): 6376523.000\n    test 1094 f_2f(Plessis1817): 0.00324002\n    test 1095 e2f(Plessis1817): 0.00324002\n    test 1096 n2e2(Plessis1817): 0.00646954\n    test 1097 n2f(Plessis1817): 0.00324002\n\n    test 1098 a_b2f_(Prolate): -297.25722356\n    test 1099 a_b2f2(Prolate): -0.00335281\n    test 1100 a_b2n(Prolate): -0.00167922\n    test 1101 b_f2a(Prolate): 6356752.314\n    test 1102 b_f_2a(Prolate): 6356752.314\n    test 1103 f_2f(Prolate): -0.00336409\n    test 1104 e2f(Prolate): 0.00337545  FAILED, KNOWN, expected -0.00336409\n    test 1105 n2e2(Prolate): -0.00673950\n    test 1106 n2f(Prolate): -0.00336409\n\n    test 1107 a_b2f_(PZ90): 298.25783930\n    test 1108 a_b2f2(PZ90): 0.00336408\n    test 1109 a_b2n(PZ90): 0.00167922\n    test 1110 b_f2a(PZ90): 6378136.000\n    test 1111 b_f_2a(PZ90): 6378136.000\n    test 1112 f_2f(PZ90): 0.00335280\n    test 1113 e2f(PZ90): 0.00335280\n    test 1114 n2e2(PZ90): 0.00669437\n    test 1115 n2f(PZ90): 0.00335280\n\n    test 1116 a_b2f_(SGS85): 298.25700000\n    test 1117 a_b2f2(SGS85): 0.00336409\n    test 1118 a_b2n(SGS85): 0.00167922\n    test 1119 b_f2a(SGS85): 6378136.000\n    test 1120 b_f_2a(SGS85): 6378136.000\n    test 1121 f_2f(SGS85): 0.00335281\n    test 1122 e2f(SGS85): 0.00335281\n    test 1123 n2e2(SGS85): 0.00669438\n    test 1124 n2f(SGS85): 0.00335281\n\n    test 1125 a_b2f_(SoAmerican1969): 298.25000000\n    test 1126 a_b2f2(SoAmerican1969): 0.00336417\n    test 1127 a_b2n(SoAmerican1969): 0.00167926\n    test 1128 b_f2a(SoAmerican1969): 6378160.000\n    test 1129 b_f_2a(SoAmerican1969): 6378160.000\n    test 1130 f_2f(SoAmerican1969): 0.00335289\n    test 1131 e2f(SoAmerican1969): 0.00335289\n    test 1132 n2e2(SoAmerican1969): 0.00669454\n    test 1133 n2f(SoAmerican1969): 0.00335289\n\n    test 1134 a_b2f_(Sphere): 0.00000000\n    test 1135 a_b2f2(Sphere): 0.00000000\n    test 1136 a_b2n(Sphere): 0.00000000\n    test 1137 b_f2a(Sphere): 6371008.771\n    test 1138 b_f_2a(Sphere): 6371008.771\n    test 1139 f_2f(Sphere): 0.00000000\n    test 1140 e2f(Sphere): 0.00000000\n    test 1141 n2e2(Sphere): 0.00000000\n    test 1142 n2f(Sphere): 0.00000000\n\n    test 1143 a_b2f_(SphereAuthalic): 0.00000000\n    test 1144 a_b2f2(SphereAuthalic): 0.00000000\n    test 1145 a_b2n(SphereAuthalic): 0.00000000\n    test 1146 b_f2a(SphereAuthalic): 6371000.000\n    test 1147 b_f_2a(SphereAuthalic): 6371000.000\n    test 1148 f_2f(SphereAuthalic): 0.00000000\n    test 1149 e2f(SphereAuthalic): 0.00000000\n    test 1150 n2e2(SphereAuthalic): 0.00000000\n    test 1151 n2f(SphereAuthalic): 0.00000000\n\n    test 1152 a_b2f_(SpherePopular): 0.00000000\n    test 1153 a_b2f2(SpherePopular): 0.00000000\n    test 1154 a_b2n(SpherePopular): 0.00000000\n    test 1155 b_f2a(SpherePopular): 6378137.000\n    test 1156 b_f_2a(SpherePopular): 6378137.000\n    test 1157 f_2f(SpherePopular): 0.00000000\n    test 1158 e2f(SpherePopular): 0.00000000\n    test 1159 n2e2(SpherePopular): 0.00000000\n    test 1160 n2f(SpherePopular): 0.00000000\n\n    test 1161 a_b2f_(Struve1860): 294.73000000\n    test 1162 a_b2f2(Struve1860): 0.00340449\n    test 1163 a_b2n(Struve1860): 0.00169935\n    test 1164 b_f2a(Struve1860): 6378298.300\n    test 1165 b_f_2a(Struve1860): 6378298.300\n    test 1166 f_2f(Struve1860): 0.00339294\n    test 1167 e2f(Struve1860): 0.00339294\n    test 1168 n2e2(Struve1860): 0.00677436\n    test 1169 n2f(Struve1860): 0.00339294\n\n    test 1170 a_b2f_(WGS60): 298.30000000\n    test 1171 a_b2f2(WGS60): 0.00336361\n    test 1172 a_b2n(WGS60): 0.00167898\n    test 1173 b_f2a(WGS60): 6378165.000\n    test 1174 b_f_2a(WGS60): 6378165.000\n    test 1175 f_2f(WGS60): 0.00335233\n    test 1176 e2f(WGS60): 0.00335233\n    test 1177 n2e2(WGS60): 0.00669342\n    test 1178 n2f(WGS60): 0.00335233\n\n    test 1179 a_b2f_(WGS66): 298.25000000\n    test 1180 a_b2f2(WGS66): 0.00336417\n    test 1181 a_b2n(WGS66): 0.00167926\n    test 1182 b_f2a(WGS66): 6378145.000\n    test 1183 b_f_2a(WGS66): 6378145.000\n    test 1184 f_2f(WGS66): 0.00335289\n    test 1185 e2f(WGS66): 0.00335289\n    test 1186 n2e2(WGS66): 0.00669454\n    test 1187 n2f(WGS66): 0.00335289\n\n    test 1188 a_b2f_(WGS72): 298.26000000\n    test 1189 a_b2f2(WGS72): 0.00336406\n    test 1190 a_b2n(WGS72): 0.00167920\n    test 1191 b_f2a(WGS72): 6378135.000\n    test 1192 b_f_2a(WGS72): 6378135.000\n    test 1193 f_2f(WGS72): 0.00335278\n    test 1194 e2f(WGS72): 0.00335278\n    test 1195 n2e2(WGS72): 0.00669432\n    test 1196 n2f(WGS72): 0.00335278\n\n    test 1197 a_b2f_(WGS84): 298.25722356\n    test 1198 a_b2f2(WGS84): 0.00336409\n    test 1199 a_b2n(WGS84): 0.00167922\n    test 1200 b_f2a(WGS84): 6378137.000\n    test 1201 b_f_2a(WGS84): 6378137.000\n    test 1202 f_2f(WGS84): 0.00335281\n    test 1203 e2f(WGS84): 0.00335281\n    test 1204 n2e2(WGS84): 0.00669438\n    test 1205 n2f(WGS84): 0.00335281\n\n    test 1206 a_b2f_(WGS84_NGS): 298.25722210\n    test 1207 a_b2f2(WGS84_NGS): 0.00336409\n    test 1208 a_b2n(WGS84_NGS): 0.00167922\n    test 1209 b_f2a(WGS84_NGS): 6378137.000\n    test 1210 b_f_2a(WGS84_NGS): 6378137.000\n    test 1211 f_2f(WGS84_NGS): 0.00335281\n    test 1212 e2f(WGS84_NGS): 0.00335281\n    test 1213 n2e2(WGS84_NGS): 0.00669438\n    test 1214 n2f(WGS84_NGS): 0.00335281\n\n    test 1215 total: 50\n\n    testWGS84(pygeodesy.ellipsoids, 26.03.25)\n    test 1216 roc1_ 0: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1217 roc1_ 0: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1218 roc1_ 5: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1219 roc1_ 5: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1220 roc1_ 10: 9.313225746154785e-10  FAILED, KNOWN, expected 1.863e-09\n    test 1221 roc1_ 10: 9.313225746154785e-10  FAILED, KNOWN, expected 1.863e-09\n    test 1222 roc1_ 15: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1223 roc1_ 15: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1224 roc1_ 20: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1225 roc1_ 20: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1226 roc1_ 25: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1227 roc1_ 25: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1228 roc1_ 30: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1229 roc1_ 30: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1230 roc1_ 35: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1231 roc1_ 35: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1232 roc1_ 40: 9.313225746154785e-10  FAILED, KNOWN, expected 1.863e-09\n    test 1233 roc1_ 40: 9.313225746154785e-10  FAILED, KNOWN, expected 1.863e-09\n    test 1234 roc1_ 45: 9.313225746154785e-10  FAILED, KNOWN, expected 1.863e-09\n    test 1235 roc1_ 45: 9.313225746154785e-10  FAILED, KNOWN, expected 1.863e-09\n    test 1236 roc1_ 50: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1237 roc1_ 50: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1238 roc1_ 55: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1239 roc1_ 55: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1240 roc1_ 60: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1241 roc1_ 60: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1242 roc1_ 65: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1243 roc1_ 65: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1244 roc1_ 70: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1245 roc1_ 70: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1246 roc1_ 75: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1247 roc1_ 75: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1248 roc1_ 80: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1249 roc1_ 80: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1250 roc1_ 85: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1251 roc1_ 85: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1252 roc1_ 90: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1253 roc1_ 90: 0.0  FAILED, KNOWN, expected 1.863e-09\n\n    testProlate(pygeodesy.ellipsoids, 26.03.25)\n    test 1254 roc1_ 0: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1255 roc1_ 0: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1256 roc1_ 5: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1257 roc1_ 5: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1258 roc1_ 10: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1259 roc1_ 10: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1260 roc1_ 15: 9.313225746154785e-10  FAILED, KNOWN, expected 1.863e-09\n    test 1261 roc1_ 15: 9.313225746154785e-10  FAILED, KNOWN, expected 1.863e-09\n    test 1262 roc1_ 20: 9.313225746154785e-10  FAILED, KNOWN, expected 1.863e-09\n    test 1263 roc1_ 20: 9.313225746154785e-10  FAILED, KNOWN, expected 1.863e-09\n    test 1264 roc1_ 25: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1265 roc1_ 25: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1266 roc1_ 30: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1267 roc1_ 30: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1268 roc1_ 35: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1269 roc1_ 35: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1270 roc1_ 40: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1271 roc1_ 40: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1272 roc1_ 45: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1273 roc1_ 45: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1274 roc1_ 50: 9.313225746154785e-10  FAILED, KNOWN, expected 1.863e-09\n    test 1275 roc1_ 50: 9.313225746154785e-10  FAILED, KNOWN, expected 1.863e-09\n    test 1276 roc1_ 55: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1277 roc1_ 55: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1278 roc1_ 60: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1279 roc1_ 60: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1280 roc1_ 65: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1281 roc1_ 65: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1282 roc1_ 70: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1283 roc1_ 70: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1284 roc1_ 75: 9.313225746154785e-10  FAILED, KNOWN, expected 1.863e-09\n    test 1285 roc1_ 75: 9.313225746154785e-10  FAILED, KNOWN, expected 1.863e-09\n    test 1286 roc1_ 80: 9.313225746154785e-10  FAILED, KNOWN, expected 1.863e-09\n    test 1287 roc1_ 80: 9.313225746154785e-10  FAILED, KNOWN, expected 1.863e-09\n    test 1288 roc1_ 85: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1289 roc1_ 85: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1290 roc1_ 90: 0.0  FAILED, KNOWN, expected 1.863e-09\n    test 1291 roc1_ 90: 0.0  FAILED, KNOWN, expected 1.863e-09\n\n    testSphereAuthalic(pygeodesy.ellipsoids, 26.03.25)\n    test 1292 roc1_ 0: 0.0\n    test 1293 roc1_ 0: 0.0\n    test 1294 roc1_ 5: 0.0\n    test 1295 roc1_ 5: 0.0\n    test 1296 roc1_ 10: 0.0\n    test 1297 roc1_ 10: 0.0\n    test 1298 roc1_ 15: 0.0\n    test 1299 roc1_ 15: 0.0\n    test 1300 roc1_ 20: 0.0\n    test 1301 roc1_ 20: 0.0\n    test 1302 roc1_ 25: 0.0\n    test 1303 roc1_ 25: 0.0\n    test 1304 roc1_ 30: 0.0\n    test 1305 roc1_ 30: 0.0\n    test 1306 roc1_ 35: 0.0\n    test 1307 roc1_ 35: 0.0\n    test 1308 roc1_ 40: 0.0\n    test 1309 roc1_ 40: 0.0\n    test 1310 roc1_ 45: 0.0\n    test 1311 roc1_ 45: 0.0\n    test 1312 roc1_ 50: 0.0\n    test 1313 roc1_ 50: 0.0\n    test 1314 roc1_ 55: 0.0\n    test 1315 roc1_ 55: 0.0\n    test 1316 roc1_ 60: 0.0\n    test 1317 roc1_ 60: 0.0\n    test 1318 roc1_ 65: 0.0\n    test 1319 roc1_ 65: 0.0\n    test 1320 roc1_ 70: 0.0\n    test 1321 roc1_ 70: 0.0\n    test 1322 roc1_ 75: 0.0\n    test 1323 roc1_ 75: 0.0\n    test 1324 roc1_ 80: 0.0\n    test 1325 roc1_ 80: 0.0\n    test 1326 roc1_ 85: 0.0\n    test 1327 roc1_ 85: 0.0\n    test 1328 roc1_ 90: 0.0\n    test 1329 roc1_ 90: 0.0\n\n    testcircle4(pygeodesy.ellipsoids, 26.03.25)\n\n    testWGS84(pygeodesy.ellipsoids, 26.03.25)\n    test 1330 circle4 0: 6378137.000000\n    test 1331 circle4 0: 6378137.000000\n    test 1332 circle4 10: 6377497.402124\n    test 1333 circle4 10: 6377497.402124\n    test 1334 circle4 20: 6375653.951276\n    test 1335 circle4 20: 6375653.951276\n    test 1336 circle4 30: 6372824.420294\n    test 1337 circle4 30: 6372824.420294\n    test 1338 circle4 40: 6369344.863240\n    test 1339 circle4 40: 6369344.863240\n    test 1340 circle4 50: 6365631.517537\n    test 1341 circle4 50: 6365631.517537\n    test 1342 circle4 60: 6362132.224397\n    test 1343 circle4 60: 6362132.224397\n    test 1344 circle4 70: 6359272.455642\n    test 1345 circle4 70: 6359272.455642\n    test 1346 circle4 80: 6357402.413808\n    test 1347 circle4 80: 6357402.413808\n    test 1348 circle4 90: 6356752.314245\n    test 1349 circle4 90: 6356752.314245\n\n    testSphere(pygeodesy.ellipsoids, 26.03.25)\n    test 1350 circle4 0: 6371008.771415\n    test 1351 circle4 0: 6371008.771415\n    test 1352 circle4 10: 6371008.771415\n    test 1353 circle4 10: 6371008.771415\n    test 1354 circle4 20: 6371008.771415\n    test 1355 circle4 20: 6371008.771415\n    test 1356 circle4 30: 6371008.771415\n    test 1357 circle4 30: 6371008.771415\n    test 1358 circle4 40: 6371008.771415\n    test 1359 circle4 40: 6371008.771415\n    test 1360 circle4 50: 6371008.771415\n    test 1361 circle4 50: 6371008.771415\n    test 1362 circle4 60: 6371008.771415\n    test 1363 circle4 60: 6371008.771415\n    test 1364 circle4 70: 6371008.771415\n    test 1365 circle4 70: 6371008.771415\n    test 1366 circle4 80: 6371008.771415\n    test 1367 circle4 80: 6371008.771415\n    test 1368 circle4 90: 6371008.771415\n    test 1369 circle4 90: 6371008.771415\n# lazily imported pygeodesy.triaxials by lazily.py line 529\n# lazily imported pygeodesy.Triaxial from .triaxials.triaxial5 by ellipsoids.py line 1905\n# lazily imported pygeodesy.latlonBase by basics.py line 473\n\n    test 1370 hartzell4: (3642031.283571, 3678090.99925, 3714150.714929, 11296639.666827)\n\n    77 of 1370 testEllipsoids.py tests (5.6%) FAILED, ALL KNOWN (pygeodesy 26.3.26 Python 3.14.3 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 40.190 ms\nrunning /Library/Framewo....n3.14 -W default ~/PyGeodesy/test/testElliptic.py\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.elliptic by testElliptic.py line 11\n# lazily imported pygeodesy.Elliptic from .elliptic by testElliptic.py line 11\n# lazily imported pygeodesy.EllipticError from .elliptic by testElliptic.py line 11\n# lazily imported pygeodesy.Elliptic3Tuple from .elliptic by testElliptic.py line 11\n# lazily imported pygeodesy.EPS from .constants by testElliptic.py line 11\n# lazily imported pygeodesy.fstr from .streprs by testElliptic.py line 11\n# lazily imported pygeodesy.PI_2 from .constants by testElliptic.py line 11\n# lazily imported pygeodesy.PI_4 from .constants by testElliptic.py line 11\n# lazily imported pygeodesy.radians from .utily by testElliptic.py line 11\n# lazily imported pygeodesy.Scalar from .units by testElliptic.py line 11\n# lazily imported pygeodesy.sincos2 from .utily by testElliptic.py line 11\n\n    testing testElliptic.py 26.02.12 isLazy=3\n    test 1 eps4: 8.881784197e-16\n    test 2 RC, RF(0.020, ...): 3.914361830671\n    test 3 RC, RF(0.030, ...): 6.584789484624\n    test 4 RC, RF(0.040, ...): 5.493061443341\n    test 5 RC, RF(0.050, ...): 4.812118250596\n    test 6 RC, RF(0.060, ...): 4.335073632453\n    test 7 RC, RF(0.070, ...): 3.976827306120\n    test 8 RC, RF(0.080, ...): 3.694989719259\n    test 9 RC, RF(0.090, ...): 3.465735902800\n    test 10 RC, RF(0.100, ...): 3.274501502373\n    test 11 RC, RF(0.110, ...): 3.111812518574\n    test 12 RC, RF(0.120, ...): 2.971203516685\n    test 13 RC, RF(0.130, ...): 2.848090500183\n    test 14 RC, RF(0.140, ...): 2.739120555165\n    test 15 RC, RF(0.150, ...): 2.641776814832\n    test 16 RC, RF(0.160, ...): 2.554128118830\n    test 17 RC, RF(0.170, ...): 2.474664615473\n    test 18 RC, RF(0.180, ...): 2.402186472893\n    test 19 RC, RF(0.190, ...): 2.335726540516\n    test 20 RC, RF(0.200, ...): 2.274495360058\n    test 21 RC, RF(0.210, ...): 2.217841271926\n    test 22 RC, RF(0.220, ...): 2.165220951174\n    test 23 RC, RF(0.230, ...): 2.116177296054\n    test 24 RC, RF(0.240, ...): 2.070322594382\n    test 25 RC, RF(0.250, ...): 2.027325540541\n    test 26 RC, RF(0.260, ...): 1.986901103492\n    test 27 RC, RF(0.270, ...): 1.948802534199\n    test 28 RC, RF(0.280, ...): 1.912814998209\n    test 29 RC, RF(0.290, ...): 1.878750456745\n    test 30 RC, RF(0.300, ...): 1.846443516895\n    test 31 RC, RF(0.310, ...): 1.815748041271\n    test 32 RC, RF(0.320, ...): 1.786534358134\n    test 33 RC, RF(0.330, ...): 1.758686950216\n    test 34 RC, RF(0.340, ...): 1.732102528083\n    test 35 RC, RF(0.350, ...): 1.706688414643\n    test 36 RC, RF(0.360, ...): 1.682361183106\n    test 37 RC, RF(0.370, ...): 1.659045502693\n    test 38 RC, RF(0.380, ...): 1.636673155658\n    test 39 RC, RF(0.390, ...): 1.615182196359\n    test 40 RC, RF(0.400, ...): 1.594516228743\n    test 41 RC, RF(0.410, ...): 1.574623783019\n    test 42 RC, RF(0.420, ...): 1.555457775830\n    test 43 RC, RF(0.430, ...): 1.536975041007\n    test 44 RC, RF(0.440, ...): 1.519135920258\n    test 45 RC, RF(0.450, ...): 1.501903904951\n    test 46 RC, RF(0.460, ...): 1.485245321610\n    test 47 RC, RF(0.470, ...): 1.469129054970\n    test 48 RC, RF(0.480, ...): 1.453526303390\n    test 49 RC, RF(0.490, ...): 1.438410362259\n    test 50 RC, RF(0.500, ...): 1.423756431678\n    test 51 RC, RF(0.510, ...): 1.409541445271\n    test 52 RC, RF(0.520, ...): 1.395743917431\n    test 53 RC, RF(0.530, ...): 1.382343806706\n    test 54 RC, RF(0.540, ...): 1.369322393343\n    test 55 RC, RF(0.550, ...): 1.356662169284\n    test 56 RC, RF(0.560, ...): 1.344346739158\n    test 57 RC, RF(0.570, ...): 1.332360730978\n    test 58 RC, RF(0.580, ...): 1.320689715446\n    test 59 RC, RF(0.590, ...): 1.309320132904\n    test 60 RC, RF(0.600, ...): 1.298239227085\n    test 61 RC, RF(0.610, ...): 1.287434984930\n    test 62 RC, RF(0.620, ...): 1.276896081822\n    test 63 RC, RF(0.630, ...): 1.266611831682\n    test 64 RC, RF(0.640, ...): 1.256572141405\n    test 65 RC, RF(0.650, ...): 1.246767469214\n    test 66 RC, RF(0.660, ...): 1.237188786540\n    test 67 RC, RF(0.670, ...): 1.227827543058\n    test 68 RC, RF(0.680, ...): 1.218675634611\n    test 69 RC, RF(0.690, ...): 1.209725373708\n    test 70 RC, RF(0.700, ...): 1.200969462383\n    test 71 RC, RF(0.710, ...): 1.192400967179\n    test 72 RC, RF(0.720, ...): 1.184013296070\n    test 73 RC, RF(0.730, ...): 1.175800177139\n    test 74 RC, RF(0.740, ...): 1.167755638871\n    test 75 RC, RF(0.750, ...): 1.159873991901\n    test 76 RC, RF(0.760, ...): 1.152149812097\n    test 77 RC, RF(0.770, ...): 1.144577924881\n    test 78 RC, RF(0.780, ...): 1.137153390647\n    test 79 RC, RF(0.790, ...): 1.129871491226\n    test 80 RC, RF(0.800, ...): 1.122727717281\n    test 81 RC, RF(0.810, ...): 1.115717756571\n    test 82 RC, RF(0.820, ...): 1.108837483013\n    test 83 RC, RF(0.830, ...): 1.102082946473\n    test 84 RC, RF(0.840, ...): 1.095450363236\n    test 85 RC, RF(0.850, ...): 1.088936107101\n    test 86 RC, RF(0.860, ...): 1.082536701044\n    test 87 RC, RF(0.870, ...): 1.076248809425\n    test 88 RC, RF(0.880, ...): 1.070069230678\n    test 89 RC, RF(0.890, ...): 1.063994890459\n    test 90 RC, RF(0.900, ...): 1.058022835225\n    test 91 RC, RF(0.910, ...): 1.052150226192\n    test 92 RC, RF(0.920, ...): 1.046374333669\n    test 93 RC, RF(0.930, ...): 1.040692531726\n    test 94 RC, RF(0.940, ...): 1.035102293176\n    test 95 RC, RF(0.950, ...): 1.029601184852\n    test 96 RC, RF(0.960, ...): 1.024186863158\n    test 97 RC, RF(0.970, ...): 1.018857069872\n    test 98 RC, RF(0.980, ...): 1.013609628192\n    test 99 RC, RF(0.990, ...): 1.008442438994\n    test 100 RD, RJ(0.010, ...): 8.120132781711\n    test 101 RD, RJ(0.020, ...): 7.119021204087\n    test 102 RD, RJ(0.030, ...): 6.544107485563\n    test 103 RD, RJ(0.040, ...): 6.142532079666\n    test 104 RD, RJ(0.050, ...): 5.835358486352\n    test 105 RD, RJ(0.060, ...): 5.587552234737\n    test 106 RD, RJ(0.070, ...): 5.380489023690\n    test 107 RD, RJ(0.080, ...): 5.203088814832\n    test 108 RD, RJ(0.090, ...): 5.048227960523\n    test 109 RD, RJ(0.100, ...): 4.911057935480\n    test 110 RD, RJ(0.110, ...): 4.788131254930\n    test 111 RD, RJ(0.120, ...): 4.676910208210\n    test 112 RD, RJ(0.130, ...): 4.575473423301\n    test 113 RD, RJ(0.140, ...): 4.482331804788\n    test 114 RD, RJ(0.150, ...): 4.396308333326\n    test 115 RD, RJ(0.160, ...): 4.316456874863\n    test 116 RD, RJ(0.170, ...): 4.242005741804\n    test 117 RD, RJ(0.180, ...): 4.172317477477\n    test 118 RD, RJ(0.190, ...): 4.106859576449\n    test 119 RD, RJ(0.200, ...): 4.045182759349\n    test 120 RD, RJ(0.210, ...): 3.986904580308\n    test 121 RD, RJ(0.220, ...): 3.931696871490\n    test 122 RD, RJ(0.230, ...): 3.879275996390\n    test 123 RD, RJ(0.240, ...): 3.829395191121\n    test 124 RD, RJ(0.250, ...): 3.781838479725\n    test 125 RD, RJ(0.260, ...): 3.736415791191\n    test 126 RD, RJ(0.270, ...): 3.692959004641\n    test 127 RD, RJ(0.280, ...): 3.651318719062\n    test 128 RD, RJ(0.290, ...): 3.611361594199\n    test 129 RD, RJ(0.300, ...): 3.572968145771\n    test 130 RD, RJ(0.310, ...): 3.536030905108\n    test 131 RD, RJ(0.320, ...): 3.500452873386\n    test 132 RD, RJ(0.330, ...): 3.466146215741\n    test 133 RD, RJ(0.340, ...): 3.433031152013\n    test 134 RD, RJ(0.350, ...): 3.401035009727\n    test 135 RD, RJ(0.360, ...): 3.370091411694\n    test 136 RD, RJ(0.370, ...): 3.340139575961\n    test 137 RD, RJ(0.380, ...): 3.311123710009\n    test 138 RD, RJ(0.390, ...): 3.282992484411\n    test 139 RD, RJ(0.400, ...): 3.255698573796\n    test 140 RD, RJ(0.410, ...): 3.229198255060\n    test 141 RD, RJ(0.420, ...): 3.203451054514\n    test 142 RD, RJ(0.430, ...): 3.178419436977\n    test 143 RD, RJ(0.440, ...): 3.154068531006\n    test 144 RD, RJ(0.450, ...): 3.130365885345\n    test 145 RD, RJ(0.460, ...): 3.107281252437\n    test 146 RD, RJ(0.470, ...): 3.084786395490\n    test 147 RD, RJ(0.480, ...): 3.062854916088\n    test 148 RD, RJ(0.490, ...): 3.041462099793\n    test 149 RD, RJ(0.500, ...): 3.020584777522\n    test 150 RD, RJ(0.510, ...): 3.000201200833\n    test 151 RD, RJ(0.520, ...): 2.980290929460\n    test 152 RD, RJ(0.530, ...): 2.960834729701\n    test 153 RD, RJ(0.540, ...): 2.941814482427\n    test 154 RD, RJ(0.550, ...): 2.923213099639\n    test 155 RD, RJ(0.560, ...): 2.905014448642\n    test 156 RD, RJ(0.570, ...): 2.887203283023\n    test 157 RD, RJ(0.580, ...): 2.869765179714\n    test 158 RD, RJ(0.590, ...): 2.852686481504\n    test 159 RD, RJ(0.600, ...): 2.835954244454\n    test 160 RD, RJ(0.610, ...): 2.819556189720\n    test 161 RD, RJ(0.620, ...): 2.803480659351\n    test 162 RD, RJ(0.630, ...): 2.787716575666\n    test 163 RD, RJ(0.640, ...): 2.772253403892\n    test 164 RD, RJ(0.650, ...): 2.757081117726\n    test 165 RD, RJ(0.660, ...): 2.742190167580\n    test 166 RD, RJ(0.670, ...): 2.727571451237\n    test 167 RD, RJ(0.680, ...): 2.713216286727\n    test 168 RD, RJ(0.690, ...): 2.699116387203\n    test 169 RD, RJ(0.700, ...): 2.685263837661\n    test 170 RD, RJ(0.710, ...): 2.671651073335\n    test 171 RD, RJ(0.720, ...): 2.658270859623\n    test 172 RD, RJ(0.730, ...): 2.645116273430\n    test 173 RD, RJ(0.740, ...): 2.632180685789\n    test 174 RD, RJ(0.750, ...): 2.619457745678\n    test 175 RD, RJ(0.760, ...): 2.606941364924\n    test 176 RD, RJ(0.770, ...): 2.594625704104\n    test 177 RD, RJ(0.780, ...): 2.582505159384\n    test 178 RD, RJ(0.790, ...): 2.570574350197\n    test 179 RD, RJ(0.800, ...): 2.558828107720\n    test 180 RD, RJ(0.810, ...): 2.547261464073\n    test 181 RD, RJ(0.820, ...): 2.535869642198\n    test 182 RD, RJ(0.830, ...): 2.524648046356\n    test 183 RD, RJ(0.840, ...): 2.513592253209\n    test 184 RD, RJ(0.850, ...): 2.502698003435\n    test 185 RD, RJ(0.860, ...): 2.491961193848\n    test 186 RD, RJ(0.870, ...): 2.481377869975\n    test 187 RD, RJ(0.880, ...): 2.470944219069\n    test 188 RD, RJ(0.890, ...): 2.460656563526\n    test 189 RD, RJ(0.900, ...): 2.450511354674\n    test 190 RD, RJ(0.910, ...): 2.440505166909\n    test 191 RD, RJ(0.920, ...): 2.430634692166\n    test 192 RD, RJ(0.930, ...): 2.420896734686\n    test 193 RD, RJ(0.940, ...): 2.411288206073\n    test 194 RD, RJ(0.950, ...): 2.401806120619\n    test 195 RD, RJ(0.960, ...): 2.392447590873\n    test 196 RD, RJ(0.970, ...): 2.383209823448\n    test 197 RD, RJ(0.980, ...): 2.374090115050\n    test 198 RD, RJ(0.990, ...): 2.365085848706\n\n    test 199 eps4: 8.881784197e-16\n    test 200 k2: 0.1000000\n    test 201 kp2: 0.9000000\n    test 202 eps: 0.0263340\n    test 203 cD: 0.816837118\n    test 204 cE: 1.530757637\n    test 205 cG: 1.530757637\n    test 206 cH: 0.795604230\n    test 207 cK: 1.612441349\n    test 208 cKE: 0.081683712\n    test 209 cPi: 1.612441349\n    test 210 fE(phi): 0.348372822\n    test 211 fDelta(sn, cn): 0.994133906\n    test 212 fD(sn, cn, dn): 0.013885234\n    test 213 fE(sn, cn, dn): 0.348372822\n    test 214 fEd(PI_2): 0.027415224\n    test 215 fEinv(PI_2): 1.612999420\n    test 216 fF(sn, cn, dn): 0.349761345\n    test 217 fG(sn, cn, dn): 0.348372822\n    test 218 fH(sn, cn, dn): 0.335876111\n    test 219 fPi(sn, cn, dn): 0.349761345\n    test 220 fPi(sn, None, dn): invokation Elliptic.fPi(0, None, 1): invalid\n    test 221 fPi(sn, dn, None): invokation Elliptic.fH(0, 1, None): invalid\n\n    test 222 deltaD(sn, cn, dn): -0.3223642\n    test 223 deltaE(sn, cn, dn): 0.0084191\n    test 224 deltaEinv(sn, cn): -0.0082518\n    test 225 deltaF(sn, cn, dn): -0.0083379\n    test 226 deltaG(sn, cn, dn): 0.0084191\n    test 227 deltaH(sn, cn, dn): 0.3140691\n    test 228 deltaPi(sn, cn, dn): -0.0083379\n    test 229 deltaPi(sn, None, dn): invokation Elliptic.deltaPi(0, None, 1): invalid\n    test 230 deltaPi(sn, dn, None): invokation Elliptic.deltaPi(0, 1, None): invalid\n\n    test 231 RF(1,   2, 0): 1.3110287771461\n    test 232 RF(0.5, 1, 0): 1.8540746773014\n    test 233 RF(2,   3, 4): 0.58408284167715\n\n    test 234 RC(0,  1/4): 3.1415926535898\n    test 235 RC(9/4,  2): 0.69314718055995\n    test 236 RC(1/4, -2): 0.23104906018665\n\n    test 237 RJ(0, 1, 2, 3): 0.77688623778582\n    test 238 RJ(2, 3, 4, 5): 0.14297579667157\n\n    test 239 RD(0, 2, 1): 1.7972103521034\n    test 240 RD(2, 3, 4): 0.16510527294261\n\n    test 241 RG(0, 16, 16): 3.1415926535898\n    test 242 RG(2,  3,  4): 1.7255030280692\n    test 243 RG(0,  0.0796, 4): 1.0284758090288\n\n    test 244 reset: 5\n\n    test 245 sncndn(x, jam=True): 0.0, 1.0, 1.0\n    test 246 sncndn(x, jam=True): 0.998602459, 0.052850065, 0.948830497\n    test 247 sncndn(x, jam=True): 0.0, 1.0, 1.0\n    test 248 sncndn(x, jam=True): 0.917152336, 0.398536815, 0.398536815\n    test 249 sncndn(x, jam=True): <class 'pygeodesy.elliptic.Elliptic3Tuple'>\n\n    test 250 sncndn(x, jam=False): 0.0, 1.0, 1.0\n    test 251 sncndn(x, jam=False): 0.999219618, 0.0394988, 0.948765522\n    test 252 sncndn(x, jam=False): 0.0, 1.0, 1.0\n    test 253 sncndn(x, jam=False): 0.917152336, 0.398536815, 0.398536815\n    test 254 sncndn(x, jam=False): <class 'pygeodesy.elliptic.Elliptic3Tuple'>\n\n    test 255 copy(<class 'type'>): (<class 'pygeodesy.elliptic.Elliptic'>, True)\n    test 256 Elliptic.copy(): (<class 'pygeodesy.elliptic.Elliptic'>, True)\n    test 257 k2 alpha2 kp2 alphap2: (0.0, 0.0, 0.0, 0.0)\n    test 258 k2 alpha2 kp2 alphap2: (0.25, 0.25, 0.25, 0.25)\n    test 259 k2 alpha2 kp2 alphap2: (0.5, 0.5, 0.5, 0.5)\n    test 260 k2 alpha2 kp2 alphap2: (0.75, 0.75, 0.75, 0.75)\n# imported pygeodesy.streprs into errors.py line 99\n# imported pygeodesy.basics into errors.py line 443\n\n    test 261 ConvergenceError: maxit (9): no convergence (1), tolerance (2)\n\n    test 262 _ellipticError: invokation Elliptic.testElliptic(None): test\n    test 263 _ellipticError: invokation Elliptic._ellipticError(None): invokation Elliptic.testElliptic(None): test\n\n    all 263 testElliptic.py tests passed (pygeodesy 26.3.26 Python 3.14.3 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 162.984 ms\nrunning /Library/Framewo....n3.14 -W default ~/PyGeodesy/test/testEpsg.py\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.Epsg from .epsg by testEpsg.py line 11\n# lazily imported pygeodesy.toUtmUps8 from .utmups by testEpsg.py line 11\n# lazily imported pygeodesy.Ellipsoids from .ellipsoids by testTMcoords.py line 14\n# lazily imported pygeodesy.EPS from .constants by testTMcoords.py line 14\n# lazily imported pygeodesy.RangeError from .errors by testTMcoords.py line 14\n\n    testing testEpsg.py 23.03.27 isLazy=3\n    test 1 Epsg: Epsg(32661)\n    test 2 0 N: (0, 'N')\n    test 3 1 N: (1, 'N')\n    test 4 2 N: (2, 'N')\n    test 5 3 N: (3, 'N')\n    test 6 4 N: (4, 'N')\n    test 7 5 N: (5, 'N')\n    test 8 6 N: (6, 'N')\n    test 9 7 N: (7, 'N')\n    test 10 8 N: (8, 'N')\n    test 11 9 N: (9, 'N')\n    test 12 10 N: (10, 'N')\n    test 13 11 N: (11, 'N')\n    test 14 12 N: (12, 'N')\n    test 15 13 N: (13, 'N')\n    test 16 14 N: (14, 'N')\n    test 17 15 N: (15, 'N')\n    test 18 16 N: (16, 'N')\n    test 19 17 N: (17, 'N')\n    test 20 18 N: (18, 'N')\n    test 21 19 N: (19, 'N')\n    test 22 20 N: (20, 'N')\n    test 23 21 N: (21, 'N')\n    test 24 22 N: (22, 'N')\n    test 25 23 N: (23, 'N')\n    test 26 24 N: (24, 'N')\n    test 27 25 N: (25, 'N')\n    test 28 26 N: (26, 'N')\n    test 29 27 N: (27, 'N')\n    test 30 28 N: (28, 'N')\n    test 31 29 N: (29, 'N')\n    test 32 30 N: (30, 'N')\n    test 33 31 N: (31, 'N')\n    test 34 32 N: (32, 'N')\n    test 35 33 N: (33, 'N')\n    test 36 34 N: (34, 'N')\n    test 37 35 N: (35, 'N')\n    test 38 36 N: (36, 'N')\n    test 39 37 N: (37, 'N')\n    test 40 38 N: (38, 'N')\n    test 41 39 N: (39, 'N')\n    test 42 40 N: (40, 'N')\n    test 43 41 N: (41, 'N')\n    test 44 42 N: (42, 'N')\n    test 45 43 N: (43, 'N')\n    test 46 44 N: (44, 'N')\n    test 47 45 N: (45, 'N')\n    test 48 46 N: (46, 'N')\n    test 49 47 N: (47, 'N')\n    test 50 48 N: (48, 'N')\n    test 51 49 N: (49, 'N')\n    test 52 50 N: (50, 'N')\n    test 53 51 N: (51, 'N')\n    test 54 52 N: (52, 'N')\n    test 55 53 N: (53, 'N')\n    test 56 54 N: (54, 'N')\n    test 57 55 N: (55, 'N')\n    test 58 56 N: (56, 'N')\n    test 59 57 N: (57, 'N')\n    test 60 58 N: (58, 'N')\n    test 61 59 N: (59, 'N')\n    test 62 60 N: (60, 'N')\n    test 63 Epsg: Epsg(32761)\n    test 64 0 S: (0, 'S')\n    test 65 1 S: (1, 'S')\n    test 66 2 S: (2, 'S')\n    test 67 3 S: (3, 'S')\n    test 68 4 S: (4, 'S')\n    test 69 5 S: (5, 'S')\n    test 70 6 S: (6, 'S')\n    test 71 7 S: (7, 'S')\n    test 72 8 S: (8, 'S')\n    test 73 9 S: (9, 'S')\n    test 74 10 S: (10, 'S')\n    test 75 11 S: (11, 'S')\n    test 76 12 S: (12, 'S')\n    test 77 13 S: (13, 'S')\n    test 78 14 S: (14, 'S')\n    test 79 15 S: (15, 'S')\n    test 80 16 S: (16, 'S')\n    test 81 17 S: (17, 'S')\n    test 82 18 S: (18, 'S')\n    test 83 19 S: (19, 'S')\n    test 84 20 S: (20, 'S')\n    test 85 21 S: (21, 'S')\n    test 86 22 S: (22, 'S')\n    test 87 23 S: (23, 'S')\n    test 88 24 S: (24, 'S')\n    test 89 25 S: (25, 'S')\n    test 90 26 S: (26, 'S')\n    test 91 27 S: (27, 'S')\n    test 92 28 S: (28, 'S')\n    test 93 29 S: (29, 'S')\n    test 94 30 S: (30, 'S')\n    test 95 31 S: (31, 'S')\n    test 96 32 S: (32, 'S')\n    test 97 33 S: (33, 'S')\n    test 98 34 S: (34, 'S')\n    test 99 35 S: (35, 'S')\n    test 100 36 S: (36, 'S')\n    test 101 37 S: (37, 'S')\n    test 102 38 S: (38, 'S')\n    test 103 39 S: (39, 'S')\n    test 104 40 S: (40, 'S')\n    test 105 41 S: (41, 'S')\n    test 106 42 S: (42, 'S')\n    test 107 43 S: (43, 'S')\n    test 108 44 S: (44, 'S')\n    test 109 45 S: (45, 'S')\n    test 110 46 S: (46, 'S')\n    test 111 47 S: (47, 'S')\n    test 112 48 S: (48, 'S')\n    test 113 49 S: (49, 'S')\n    test 114 50 S: (50, 'S')\n    test 115 51 S: (51, 'S')\n    test 116 52 S: (52, 'S')\n    test 117 53 S: (53, 'S')\n    test 118 54 S: (54, 'S')\n    test 119 55 S: (55, 'S')\n    test 120 56 S: (56, 'S')\n    test 121 57 S: (57, 'S')\n    test 122 58 S: (58, 'S')\n    test 123 59 S: (59, 'S')\n    test 124 60 S: (60, 'S')\n    test 125 Ups: Epsg(32761)\n    test 126 Ups: 00A S\n    test 127 copy(<class 'type'>): (<class 'pygeodesy.epsg.Epsg'>, True)\n    test 128 Epsg.copy(): (<class 'pygeodesy.epsg.Epsg'>, True)\n    test 129 Ups: Epsg(32761)\n    test 130 Ups: 00B S\n    test 131 copy(<class 'type'>): (<class 'pygeodesy.epsg.Epsg'>, True)\n    test 132 Epsg.copy(): (<class 'pygeodesy.epsg.Epsg'>, True)\n    test 133 Ups: Epsg(32661)\n    test 134 Ups: 00Y N\n    test 135 copy(<class 'type'>): (<class 'pygeodesy.epsg.Epsg'>, True)\n    test 136 Epsg.copy(): (<class 'pygeodesy.epsg.Epsg'>, True)\n    test 137 Ups: Epsg(32661)\n    test 138 Ups: 00Z N\n    test 139 copy(<class 'type'>): (<class 'pygeodesy.epsg.Epsg'>, True)\n    test 140 Epsg.copy(): (<class 'pygeodesy.epsg.Epsg'>, True)\n    test 141 TMcoord 1: 38W N\n    test 142 TMcoord 2: 34P N\n    test 143 TMcoord 3: 43Q N\n    test 144 TMcoord 4: 35Q N\n    test 145 TMcoord 5: 37N N\n    test 146 TMcoord 6: 34W N\n    test 147 TMcoord 7: 40V N\n    test 148 TMcoord 8: 34P N\n    test 149 TMcoord 9: 41S N\n    test 150 TMcoord 10: 41X N\n    test 151 TMcoord 11: 43X N\n    test 152 TMcoord 12: 44Q N\n    test 153 TMcoord 13: 44R N\n    test 154 TMcoord 14: 39U N\n    test 155 TMcoord 15: 44P N\n    test 156 TMcoord 16: 39R N\n    test 157 TMcoord 17: 41W N\n    test 158 TMcoord 18: 45U N\n    test 159 TMcoord 19: 32R N\n    test 160 TMcoord 20: 44X N\n    test 161 TMcoord 21: 35T N\n    test 162 TMcoord 22: 32T N\n    test 163 TMcoord 23: 31T N\n    test 164 TMcoord 24: 35N N\n    test 165 TMcoord 25: 45P N\n    test 166 TMcoord 26: 33V N\n    test 167 TMcoord 27: 41Q N\n    test 168 TMcoord 28: 40X N\n    test 169 TMcoord 29: 33P N\n    test 170 TMcoord 30: 40S N\n    test 171 TMcoord 31: 37T N\n    test 172 TMcoord 32: 33X N\n    test 173 TMcoord 33: 41U N\n    test 174 TMcoord 34: 43Q N\n    test 175 TMcoord 35: 42S N\n    test 176 TMcoord 36: 33S N\n    test 177 TMcoord 37: 35X N\n    test 178 TMcoord 38: 38N N\n    test 179 TMcoord 39: 44P N\n    test 180 TMcoord 40: 33U N\n    test 181 TMcoord 41: 37W N\n    test 182 TMcoord 42: 36T N\n    test 183 TMcoord 43: 36Q N\n    test 184 TMcoord 44: 34S N\n    test 185 TMcoord 45: 37S N\n    test 186 TMcoord 46: 34N N\n    test 187 TMcoord 47: 34T N\n    test 188 TMcoord 48: 43Q N\n    test 189 TMcoord 49: 32N N\n    test 190 TMcoord 50: 31Q N\n    test 191 TMcoord 51: 45R N\n    test 192 TMcoord 52: 45R N\n    test 193 TMcoord 53: 34W N\n    test 194 TMcoord 54: 44V N\n    test 195 TMcoord 55: 44S N\n    test 196 TMcoord 56: 39R N\n# imported pygeodesy.basics into errors.py line 443\n    test 197 TMcoord 57: 00Z N\n    test 198 TMcoord 58: 36R N\n    test 199 TMcoord 59: 41V N\n    test 200 TMcoord 60: 42N N\n    test 201 TMcoord 61: 43S N\n    test 202 TMcoord 62: 34N N\n    test 203 TMcoord 63: 34U N\n    test 204 TMcoord 64: 38V N\n    test 205 TMcoord 65: 34Q N\n    test 206 TMcoord 66: 38P N\n    test 207 TMcoord 67: 42S N\n    test 208 TMcoord 68: 44S N\n    test 209 TMcoord 69: 31Q N\n    test 210 TMcoord 70: 40W N\n    test 211 TMcoord 71: 35X N\n    test 212 TMcoord 72: 32T N\n    test 213 TMcoord 73: 45U N\n    test 214 TMcoord 74: 40Q N\n    test 215 TMcoord 75: 31T N\n    test 216 TMcoord 76: 44R N\n    test 217 TMcoord 77: 34U N\n    test 218 TMcoord 78: 38P N\n    test 219 TMcoord 79: 38Q N\n    test 220 TMcoord 80: 45N N\n    test 221 TMcoord 81: 31S N\n    test 222 TMcoord 82: 41U N\n    test 223 TMcoord 83: 40V N\n    test 224 TMcoord 84: 43X N\n    test 225 TMcoord 85: 35N N\n    test 226 TMcoord 86: 44P N\n    test 227 TMcoord 87: 41N N\n    test 228 TMcoord 88: 38Q N\n    test 229 TMcoord 89: 43X N\n    test 230 TMcoord 90: 36V N\n    test 231 TMcoord 91: 34Q N\n    test 232 TMcoord 92: 35W N\n    test 233 TMcoord 93: 45U N\n    test 234 TMcoord 94: 40R N\n    test 235 TMcoord 95: 36R N\n    test 236 TMcoord 96: 35S N\n    test 237 TMcoord 97: 41R N\n    test 238 TMcoord 98: 39Q N\n    test 239 TMcoord 99: 37T N\n    test 240 TMcoord 100: 42P N\n    test 241 TMcoord 101: 35T N\n    test 242 TMcoord 102: 34Q N\n    test 243 TMcoord 103: 41T N\n    test 244 TMcoord 104: 43R N\n    test 245 TMcoord 105: 34Q N\n    test 246 TMcoord 106: 45P N\n    test 247 TMcoord 107: 31P N\n    test 248 TMcoord 108: 44V N\n    test 249 TMcoord 109: 42X N\n    test 250 TMcoord 110: 33R N\n    test 251 TMcoord 111: 37W N\n    test 252 TMcoord 112: 31S N\n    test 253 TMcoord 113: 42N N\n    test 254 TMcoord 114: 39N N\n    test 255 TMcoord 115: 39T N\n    test 256 TMcoord 116: 39P N\n    test 257 TMcoord 117: 34U N\n    test 258 TMcoord 118: 41P N\n    test 259 TMcoord 119: 37R N\n    test 260 TMcoord 120: 44Q N\n    test 261 TMcoord 121: 32V N\n    test 262 TMcoord 122: 41R N\n    test 263 TMcoord 123: 36T N\n    test 264 TMcoord 124: 42U N\n    test 265 TMcoord 125: 42U N\n    test 266 TMcoord 126: 39T N\n    test 267 TMcoord 127: 32T N\n    test 268 TMcoord 128: 32Q N\n    test 269 TMcoord 129: 38P N\n    test 270 TMcoord 130: 34Q N\n    test 271 TMcoord 131: 36V N\n    test 272 TMcoord 132: 36T N\n    test 273 TMcoord 133: 43T N\n    test 274 TMcoord 134: 41W N\n    test 275 TMcoord 135: 32V N\n    test 276 TMcoord 136: 39X N\n    test 277 TMcoord 137: 32U N\n    test 278 TMcoord 138: 37X N\n    test 279 TMcoord 139: 35N N\n    test 280 TMcoord 140: 36P N\n    test 281 TMcoord 141: 31S N\n    test 282 TMcoord 142: 36N N\n    test 283 TMcoord 143: 42S N\n    test 284 TMcoord 144: 44N N\n    test 285 TMcoord 145: 44P N\n    test 286 TMcoord 146: 39U N\n    test 287 TMcoord 147: 45Q N\n    test 288 TMcoord 148: 41W N\n    test 289 TMcoord 149: 41N N\n    test 290 TMcoord 150: 32S N\n    test 291 TMcoord 151: 32N N\n    test 292 TMcoord 152: 32T N\n    test 293 TMcoord 153: 38R N\n    test 294 TMcoord 154: 32V N\n    test 295 TMcoord 155: 37Q N\n    test 296 TMcoord 156: 44N N\n    test 297 TMcoord 157: 34W N\n    test 298 TMcoord 158: 45N N\n    test 299 TMcoord 159: 42S N\n    test 300 TMcoord 160: 40T N\n    test 301 TMcoord 161: 31U N\n    test 302 TMcoord 162: 45Q N\n    test 303 TMcoord 163: 40U N\n    test 304 TMcoord 164: 45T N\n    test 305 TMcoord 165: 40R N\n    test 306 TMcoord 166: 31V N\n    test 307 TMcoord 167: 45P N\n    test 308 TMcoord 168: 43W N\n    test 309 TMcoord 169: 43U N\n    test 310 TMcoord 170: 44V N\n    test 311 TMcoord 171: 40P N\n    test 312 TMcoord 172: 36Q N\n    test 313 TMcoord 173: 42Q N\n    test 314 TMcoord 174: 41Q N\n    test 315 TMcoord 175: 32S N\n    test 316 TMcoord 176: 39P N\n    test 317 TMcoord 177: 39Q N\n    test 318 TMcoord 178: 39T N\n    test 319 TMcoord 179: 34U N\n    test 320 TMcoord 180: 32W N\n    test 321 TMcoord 181: 41U N\n    test 322 TMcoord 182: 31Q N\n    test 323 TMcoord 183: 40N N\n    test 324 TMcoord 184: 40T N\n    test 325 TMcoord 185: 38P N\n    test 326 TMcoord 186: 44P N\n    test 327 TMcoord 187: 40N N\n    test 328 TMcoord 188: 44V N\n    test 329 TMcoord 189: 41V N\n    test 330 TMcoord 190: 43Q N\n    test 331 TMcoord 191: 43X N\n    test 332 TMcoord 192: 39N N\n    test 333 TMcoord 193: 38T N\n    test 334 TMcoord 194: 32R N\n    test 335 TMcoord 195: 37S N\n    test 336 TMcoord 196: 44W N\n    test 337 TMcoord 197: 43V N\n    test 338 TMcoord 198: 35T N\n    test 339 TMcoord 199: 44W N\n    test 340 TMcoord 200: 44X N\n    test 341 TMcoord 201: 33Q N\n    test 342 TMcoord 202: 40W N\n    test 343 TMcoord 203: 43S N\n    test 344 TMcoord 204: 32U N\n    test 345 TMcoord 205: 33V N\n    test 346 TMcoord 206: 34R N\n    test 347 TMcoord 207: 39S N\n    test 348 TMcoord 208: 43W N\n    test 349 TMcoord 209: 39T N\n    test 350 TMcoord 210: 31W N\n    test 351 TMcoord 211: 45R N\n    test 352 TMcoord 212: 34W N\n    test 353 TMcoord 213: 32T N\n    test 354 TMcoord 214: 31P N\n    test 355 TMcoord 215: 44V N\n    test 356 TMcoord 216: 45U N\n    test 357 TMcoord 217: 43R N\n    test 358 TMcoord 218: 31N N\n    test 359 TMcoord 219: 43T N\n    test 360 TMcoord 220: 45R N\n    test 361 TMcoord 221: 39N N\n    test 362 TMcoord 222: 37S N\n    test 363 TMcoord 223: 31R N\n    test 364 TMcoord 224: 38Q N\n    test 365 TMcoord 225: 40V N\n    test 366 TMcoord 226: 45N N\n    test 367 TMcoord 227: 44R N\n    test 368 TMcoord 228: 43P N\n    test 369 TMcoord 229: 42P N\n    test 370 TMcoord 230: 45S N\n    test 371 TMcoord 231: 42N N\n    test 372 TMcoord 232: 38S N\n    test 373 TMcoord 233: 32T N\n    test 374 TMcoord 234: 41T N\n    test 375 TMcoord 235: 34S N\n    test 376 TMcoord 236: 40R N\n    test 377 TMcoord 237: 35V N\n    test 378 TMcoord 238: 38N N\n    test 379 TMcoord 239: 40V N\n    test 380 TMcoord 240: 36R N\n    test 381 TMcoord 241: 37W N\n    test 382 TMcoord 242: 45R N\n    test 383 TMcoord 243: 37V N\n    test 384 TMcoord 244: 33P N\n    test 385 TMcoord 245: 32U N\n    test 386 TMcoord 246: 38T N\n    test 387 TMcoord 247: 37N N\n    test 388 TMcoord 248: 36R N\n    test 389 TMcoord 249: 44R N\n    test 390 TMcoord 250: 44Q N\n    test 391 TMcoord 251: 45R N\n    test 392 TMcoord 252: 34N N\n    test 393 TMcoord 253: 43S N\n    test 394 TMcoord 254: 40Q N\n    test 395 TMcoord 255: 33T N\n    test 396 TMcoord 256: 44P N\n    test 397 TMcoord 257: 39N N\n    test 398 TMcoord 258: 40Q N\n\n    all 398 testEpsg.py tests passed (pygeodesy 26.3.26 Python 3.14.3 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 88.717 ms\nrunning /Library/Framewo....n3.14 -W default ~/PyGeodesy/test/testErrors.py\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.crosserrors from .errors by testErrors.py line 11\n# lazily imported pygeodesy.exception_chaining from .errors by testErrors.py line 11\n# lazily imported pygeodesy.LenError from .errors by testErrors.py line 11\n# lazily imported pygeodesy.LimitError from .errors by testErrors.py line 11\n# lazily imported pygeodesy.limiterrors from .errors by testErrors.py line 11\n# lazily imported pygeodesy.RangeError from .errors by testErrors.py line 11\n# lazily imported pygeodesy.rangerrors from .errors by testErrors.py line 11\n# lazily imported pygeodesy.ClipError from .errors by testErrors.py line 93\n# lazily imported pygeodesy.CrossError from .errors by testErrors.py line 93\n# lazily imported pygeodesy.CSSError from .css by testErrors.py line 93\n# lazily imported pygeodesy.EcefError from .ecef by testErrors.py line 93\n# lazily imported pygeodesy.EllipticError from .elliptic by testErrors.py line 93\n# lazily imported pygeodesy.EPSGError from .epsg by testErrors.py line 93\n# lazily imported pygeodesy.ETMError from .etm by testErrors.py line 93\n# lazily imported pygeodesy.FrechetError from .frechet by testErrors.py line 93\n# lazily imported pygeodesy.GARSError from .gars by testErrors.py line 93\n# lazily imported pygeodesy.GeohashError from .geohash by testErrors.py line 93\n# lazily imported pygeodesy.GeoidError from .geoids by testErrors.py line 93\n# lazily imported pygeodesy.HausdorffError from .hausdorff by testErrors.py line 93\n# lazily imported pygeodesy.HeightError from .heights by testErrors.py line 93\n# lazily imported pygeodesy.LCCError from .lcc by testErrors.py line 93\n# lazily imported pygeodesy.MGRSError from .errors by testErrors.py line 93\n# lazily imported pygeodesy.OSGRError from .osgr by testErrors.py line 93\n# lazily imported pygeodesy.PGMError from .geoids by testErrors.py line 93\n# lazily imported pygeodesy.PointsError from .errors by testErrors.py line 93\n# lazily imported pygeodesy.SciPyError from .errors by testErrors.py line 93\n# lazily imported pygeodesy.SciPyWarning from .errors by testErrors.py line 93\n# lazily imported pygeodesy.TRFError from .errors by testErrors.py line 93\n# lazily imported pygeodesy.UnitError from .errors by testErrors.py line 93\n# lazily imported pygeodesy.UPSError from .ups by testErrors.py line 93\n# lazily imported pygeodesy.UTMError from .utm by testErrors.py line 93\n# lazily imported pygeodesy.UTMUPSError from .utmups by testErrors.py line 93\n# lazily imported pygeodesy.VectorError from .errors by testErrors.py line 93\n# lazily imported pygeodesy.VincentyError from .ellipsoidalVincenty by testErrors.py line 93\n# lazily imported pygeodesy.WebMercatorError from .webmercator by testErrors.py line 93\n# lazily imported pygeodesy.WGRSError from .wgrs by testErrors.py line 93\n\n    testing testErrors.py 23.03.27 (module pygeodesy.errors 26.02.12) isLazy=3\n    test 1 AssertionError: name ('value'): test1 txt\n    test 2 AssertionError: 'name=value' MISSING: test2 txt\n    test 3 AttributeError: name ('value'): test1 txt\n    test 4 AttributeError: 'name=value' MISSING: test2 txt\n    test 5 IndexError: name ('value'): test1 txt\n    test 6 IndexError: 'name=value' MISSING: test2 txt\n    test 7 LimitError: name ('value'): test1 txt\n    test 8 LimitError: 'name=value' MISSING: test2 txt\n    test 9 NameError: name ('value'): test1 txt\n    test 10 NameError: 'name=value' MISSING: test2 txt\n    test 11 ParseError: name ('value'): test1 txt\n    test 12 ParseError: 'name=value' MISSING: test2 txt\n    test 13 TypeError: type(name) ('value'): test1 txt\n    test 14 TypeError: 'name=value' MISSING: test2 txt\n    test 15 ClipError: name ('value'): test1 txt\n    test 16 ClipError: 'name=value' MISSING: test2 txt\n    test 17 CrossError: name ('value'): test1 txt\n    test 18 CrossError: 'name=value' MISSING: test2 txt\n    test 19 CSSError: name ('value'): test1 txt\n    test 20 CSSError: 'name=value' MISSING: test2 txt\n    test 21 EcefError: name ('value'): test1 txt\n    test 22 EcefError: 'name=value' MISSING: test2 txt\n    test 23 EllipticError: name ('value'): test1 txt\n    test 24 EllipticError: 'name=value' MISSING: test2 txt\n    test 25 EPSGError: name ('value'): test1 txt\n    test 26 EPSGError: 'name=value' MISSING: test2 txt\n    test 27 ETMError: name ('value'): test1 txt\n    test 28 ETMError: 'name=value' MISSING: test2 txt\n    test 29 FrechetError: name ('value'): test1 txt\n    test 30 FrechetError: 'name=value' MISSING: test2 txt\n    test 31 GARSError: name ('value'): test1 txt\n    test 32 GARSError: 'name=value' MISSING: test2 txt\n    test 33 GeohashError: name ('value'): test1 txt\n    test 34 GeohashError: 'name=value' MISSING: test2 txt\n    test 35 GeoidError: name ('value'): test1 txt\n    test 36 GeoidError: 'name=value' MISSING: test2 txt\n    test 37 HausdorffError: name ('value'): test1 txt\n    test 38 HausdorffError: 'name=value' MISSING: test2 txt\n    test 39 HeightError: name ('value'): test1 txt\n    test 40 HeightError: 'name=value' MISSING: test2 txt\n    test 41 LazyImportError: name ('value'): test1 txt\n    test 42 LazyImportError: 'name=value' MISSING: test2 txt\n    test 43 LCCError: name ('value'): test1 txt\n    test 44 LCCError: 'name=value' MISSING: test2 txt\n    test 45 MGRSError: name ('value'): test1 txt\n    test 46 MGRSError: 'name=value' MISSING: test2 txt\n    test 47 OSGRError: name ('value'): test1 txt\n    test 48 OSGRError: 'name=value' MISSING: test2 txt\n    test 49 PGMError: name ('value'): test1 txt\n    test 50 PGMError: 'name=value' MISSING: test2 txt\n    test 51 PointsError: name ('value'): test1 txt\n    test 52 PointsError: 'name=value' MISSING: test2 txt\n    test 53 SciPyError: name ('value'): test1 txt\n    test 54 SciPyError: 'name=value' MISSING: test2 txt\n    test 55 SciPyWarning: name ('value'): test1 txt\n    test 56 SciPyWarning: 'name=value' MISSING: test2 txt\n    test 57 TRFError: name ('value'): test1 txt\n    test 58 TRFError: 'name=value' MISSING: test2 txt\n    test 59 UnitError: name ('value'): test1 txt\n    test 60 UnitError: 'name=value' MISSING: test2 txt\n    test 61 UPSError: name ('value'): test1 txt\n    test 62 UPSError: 'name=value' MISSING: test2 txt\n    test 63 UTMError: name ('value'): test1 txt\n    test 64 UTMError: 'name=value' MISSING: test2 txt\n    test 65 UTMUPSError: name ('value'): test1 txt\n    test 66 UTMUPSError: 'name=value' MISSING: test2 txt\n    test 67 VectorError: name ('value'): test1 txt\n    test 68 VectorError: 'name=value' MISSING: test2 txt\n    test 69 VincentyError: name ('value'): test1 txt\n    test 70 VincentyError: 'name=value' MISSING: test2 txt\n    test 71 WebMercatorError: name ('value'): test1 txt\n    test 72 WebMercatorError: 'name=value' MISSING: test2 txt\n    test 73 WGRSError: name ('value'): test1 txt\n    test 74 WGRSError: 'name=value' MISSING: test2 txt\n# imported pygeodesy.basics into errors.py line 443\n    test 75 _InvalidError: zero (1): invalid\n    test 76 _InvalidError: ValueError('zero (1): invalid')\n    test 77 _InvalidError: one (2) or zero (1): outside\n    test 78 _InvalidError: ValueError('one (2) or zero (1): outside')\n    test 79 _InvalidError: one (2) or zero (1): outside\n    test 80 _InvalidError: RangeError('one (2) or zero (1): outside')\n# imported pygeodesy.streprs into errors.py line 553\n    test 81 _IsnotError: _None (None): not an int or float\n    test 82 _IsnotError: TypeError('_None (None): not an int or float')\n    test 83 _IsnotError: _None (None): not a scalar\n    test 84 _IsnotError: TypeError('_None (None): not a scalar')\n    test 85 _IsnotError: _None (None): not a scalar\n    test 86 _IsnotError: LimitError('_None (None): not a scalar')\n    test 87 LenError: LenError(a, b, c, d) len 1 vs 2 vs 3 vs 4: invalid\n    test 88 crosserrors: True\n    test 89 crosserrors: False\n    test 90 limiterrors: True\n    test 91 limiterrors: False\n    test 92 rangerrors: True\n    test 93 rangerrors: False\n    test 94 exception_chaining: False\n    test 95 exception_chaining: None\n    test 96 exception_chaining: None\n    test 97 _xkwds_get: test1\n    test 98 _xkwds_get: test2\n    test 99 _xkwds_get: _xkwds_get({})\n    test 100 _xkwds_get: _xkwds_get({}, n1='d1', n2='d2')\n    test 101 _xkwds_pop: test1\n    test 102 _xkwds_pop: test2\n    test 103 _xkwds_pop: _xkwds_pop2({})\n    test 104 _xkwds_pop: _xkwds_pop2({}, n1='d1', n2='d2')\n\n    all 104 testErrors.py tests passed (pygeodesy 26.3.26 Python 3.14.3 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 523.090 us\nrunning /Library/Framewo....n3.14 -W default ~/PyGeodesy/test/testEtm.py\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.etm by testEtm.py line 11\n# lazily imported pygeodesy.ExactTransverseMercator from .etm by testEtm.py line 11\n# lazily imported pygeodesy.ellipsoidalNvector by testEtm.py line 115\n# lazily imported pygeodesy.ellipsoidalVincenty by testEtm.py line 115\n\n    testing testEtm.py 23.08.30 (module pygeodesy.etm 25.09.15) isLazy=3\n\n    testExactTransverseMercator(pygeodesy.etm, 25.09.15)\n    test 1 name: test\n    test 2 toStr: datum='WGS84', extendp=True, k0=0.9996, lon0=0.0, name='test'\n# lazily imported pygeodesy.elliptic by etm.py line 354\n\n    test 3 easting: -59401.921148\n    test 4 northing: 4472390.031129\n    test 5 gamma: -0.453697\n    test 6 scale: 0.999643\n    test 7 lat: 40.400000\n    test 8 lon: -3.700000\n    test 9 gamma: -0.453697\n    test 10 scale: 0.999643\n    test 11 easting: -59401.921148\n    test 12 northing: 4472390.031129\n    test 13 gamma: -0.453697\n    test 14 scale: 0.999643\n\n    test 15 easting: 25495.511523\n    test 16 northing: 4461098.320889\n    test 17 gamma: 0.194038\n    test 18 scale: 0.999608\n    test 19 lat: 40.300000\n    test 20 lon: -74.700000\n    test 21 gamma: 0.194038\n    test 22 scale: 0.999608\n    test 23 easting: 25495.511523\n    test 24 northing: 4461098.320889\n    test 25 gamma: 0.194038\n    test 26 scale: 0.999608\n\n    test 27 lat: -2.00000000\n    test 28 lon: 88.00000000\n    test 29 gamma: 67.63332900\n    test 30 scale: 26.33699547\n    test 31 easting: 29735142.378357\n    test 32 northing: 4235043.607933\n    test 33 gamma: 67.633329\n    test 34 scale: 26.336995\n\n    test 35 copy(<class 'type'>): (<class 'pygeodesy.etm.ExactTransverseMercator'>, True)\n    test 36 ExactTransverseMercator.copy(): (<class 'pygeodesy.etm.ExactTransverseMercator'>, True)\n\n    testExactTransverseMercator(pygeodesy.etm, 25.09.15)\n    test 37 name: test\n    test 38 toStr: datum='WGS84', extendp=False, k0=0.9996, lon0=0.0, name='test'\n\n    test 39 easting: -59401.921148\n    test 40 northing: 4472390.031129\n    test 41 gamma: -0.453697\n    test 42 scale: 0.999643\n    test 43 lat: 40.400000\n    test 44 lon: -3.700000\n    test 45 gamma: -0.453697\n    test 46 scale: 0.999643\n    test 47 easting: -59401.921148\n    test 48 northing: 4472390.031129\n    test 49 gamma: -0.453697\n    test 50 scale: 0.999643\n\n    test 51 easting: 25495.511523\n    test 52 northing: 4461098.320889\n    test 53 gamma: 0.194038\n    test 54 scale: 0.999608\n    test 55 lat: 40.300000\n    test 56 lon: -74.700000\n    test 57 gamma: 0.194038\n    test 58 scale: 0.999608\n    test 59 easting: 25495.511523\n    test 60 northing: 4461098.320889\n    test 61 gamma: 0.194038\n    test 62 scale: 0.999608\n\n    test 63 lat: -2.00000000\n    test 64 lon: 88.00000000\n    test 65 gamma: 67.63332900\n    test 66 scale: 26.33699547\n\n    test 67 easting: 0.000\n    test 68 northing: -9997964.943\n    test 69 gamma: 120.000\n    test 70 scale: 1.000\n    test 71 lat: -90.000\n    test 72 lon: 180.000  FAILED, KNOWN, expected 0.000\n    test 73 gamma: -180.000\n    test 74 scale: 1.000\n\n    test 75 copy(<class 'type'>): (<class 'pygeodesy.etm.ExactTransverseMercator'>, True)\n    test 76 ExactTransverseMercator.copy(): (<class 'pygeodesy.etm.ExactTransverseMercator'>, True)\n\n    testLatLon(pygeodesy.etm, 25.09.15)\n    test 77 toEtm8: 45 S -20297797 5336899\n    test 78 name: test\n    test 79 toUtm: 45 S -20297797 5336899\n    test 80 name: test\n    test 81 toETM5: 45 S -20297797 5336899\n    test 82 copy(<class 'type'>): (<class 'pygeodesy.etm.Etm'>, True)\n    test 83 .name: test\n    test 84 Etm.copy(): (<class 'pygeodesy.etm.Etm'>, True)\n    test 85 .name: test\n    test 86 parse: 31 N 448251 5411932\n    test 87 name: parse\n    test 88 parse: 31 N 448251 5411932\n    test 89 name: parse\n\n    testLatLon(pygeodesy.etm, 25.09.15)\n    test 90 toEtm8: 45 S -20297797 5336899\n    test 91 name: test\n    test 92 toUtm: 45 S -20297797 5336899\n    test 93 name: test\n    test 94 toETM5: 45 S -20297797 5336899\n    test 95 copy(<class 'type'>): (<class 'pygeodesy.etm.Etm'>, True)\n    test 96 .name: test\n    test 97 Etm.copy(): (<class 'pygeodesy.etm.Etm'>, True)\n    test 98 .name: test\n    test 99 parse: 31 N 448251 5411932\n    test 100 name: parse\n    test 101 parse: 31 N 448251 5411932\n    test 102 name: parse\n\n    1 of 102 testEtm.py tests (1.0%) FAILED, ALL KNOWN (pygeodesy 26.3.26 Python 3.14.3 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 87.942 ms\nrunning /Library/Framewo....n3.14 -W default ~/PyGeodesy/test/testEtmTMcoords.py\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.Ellipsoids from .ellipsoids by testTMcoords.py line 14\n# lazily imported pygeodesy.EPS from .constants by testTMcoords.py line 14\n# lazily imported pygeodesy.RangeError from .errors by testTMcoords.py line 14\n# lazily imported pygeodesy.etm by testEtmTMcoords.py line 17\n# lazily imported pygeodesy.Etm from .etm by testEtmTMcoords.py line 17\n# lazily imported pygeodesy.toEtm8 from .etm by testEtmTMcoords.py line 17\n\n    testing testEtmTMcoords.py 24.03.22 (module pygeodesy.etm 25.09.15) isLazy=3\n# lazily imported pygeodesy.elliptic by etm.py line 354\n    test 1 line 1 toEtm8.easting: 1548706.791619\n    test 2 line 1 toEtm8.northing: 8451449.198772\n    test 3 line 1 toEtm8.gamma: 43.922790\n    test 4 line 1 toEtm8.scale: 1.029060\n    test 5 line 1 toEtm8.lat: 70.579277\n    test 6 line 1 toEtm8.lon: 45.599420\n    test 7 line 2 toEtm8.easting: 2624150.740929\n    test 8 line 2 toEtm8.northing: 1204434.041605\n    test 9 line 2 toEtm8.gamma: 4.292619\n    test 10 line 2 toEtm8.scale: 1.086051\n    test 11 line 2 toEtm8.lat: 10.018894\n    test 12 line 2 toEtm8.lon: 23.313324\n    test 13 line 3 toEtm8.easting: 9855841.232935\n    test 14 line 3 toEtm8.northing: 6145496.115155\n    test 15 line 3 toEtm8.gamma: 53.348315\n    test 16 line 3 toEtm8.scale: 2.445098\n    test 17 line 3 toEtm8.lat: 19.479896\n    test 18 line 3 toEtm8.lon: 75.662049\n    test 19 line 4 toEtm8.easting: 3206390.691996\n    test 20 line 4 toEtm8.northing: 2650745.400406\n    test 21 line 4 toEtm8.gamma: 11.666950\n    test 22 line 4 toEtm8.scale: 1.129359\n    test 23 line 4 toEtm8.lat: 21.072465\n    test 24 line 4 toEtm8.lon: 29.828684\n    test 25 line 5 toEtm8.easting: 4328154.083501\n    test 26 line 5 toEtm8.northing: 749647.623690\n    test 27 line 5 toEtm8.gamma: 4.024317\n    test 28 line 5 toEtm8.scale: 1.240829\n    test 29 line 5 toEtm8.lat: 5.458957\n    test 30 line 5 toEtm8.lon: 36.385237\n    test 31 line 6 toEtm8.easting: 847598.266514\n    test 32 line 6 toEtm8.northing: 7947180.962440\n    test 33 line 6 toEtm8.gamma: 21.639091\n    test 34 line 6 toEtm8.scale: 1.008399\n    test 35 line 6 toEtm8.lat: 70.175454\n    test 36 line 6 toEtm8.lon: 22.865350\n    test 37 line 7 toEtm8.easting: 2727657.337974\n    test 38 line 7 toEtm8.northing: 8283916.696410\n    test 39 line 7 toEtm8.gamma: 55.690909\n    test 40 line 7 toEtm8.scale: 1.091942\n    test 41 line 7 toEtm8.lat: 61.965605\n    test 42 line 7 toEtm8.lon: 58.931371\n    test 43 line 8 toEtm8.easting: 2331001.751890\n    test 44 line 8 toEtm8.northing: 1313608.224751\n    test 45 line 8 toEtm8.gamma: 4.214690\n    test 46 line 8 toEtm8.scale: 1.067599\n    test 47 line 8 toEtm8.lat: 11.116050\n    test 48 line 8 toEtm8.lon: 20.901069\n    test 49 line 9 toEtm8.easting: 6035557.239480\n    test 50 line 9 toEtm8.northing: 5791770.791879\n    test 51 line 9 toEtm8.gamma: 43.698170\n    test 52 line 9 toEtm8.scale: 1.481260\n    test 53 line 9 toEtm8.lat: 32.210543\n    test 54 line 9 toEtm8.lon: 60.705849\n    test 55 line 10 toEtm8.easting: 1064553.125852\n    test 56 line 10 toEtm8.northing: 9417273.737208\n    test 57 line 10 toEtm8.gamma: 61.100380\n    test 58 line 10 toEtm8.scale: 1.013475\n    test 59 line 10 toEtm8.lat: 79.187451\n    test 60 line 10 toEtm8.lon: 61.532382\n    test 61 line 11 toEtm8.easting: 1400137.116164\n    test 62 line 11 toEtm8.northing: 9616907.017686\n    test 63 line 11 toEtm8.gamma: 74.527087\n    test 64 line 11 toEtm8.scale: 1.023640\n    test 65 line 11 toEtm8.lat: 77.103759\n    test 66 line 11 toEtm8.lon: 74.899105\n    test 67 line 12 toEtm8.easting: 9860691.016626\n    test 68 line 12 toEtm8.northing: 7433039.143328\n    test 69 line 12 toEtm8.gamma: 65.357693\n    test 70 line 12 toEtm8.scale: 2.438973\n    test 71 line 12 toEtm8.lat: 21.889514\n    test 72 line 12 toEtm8.lon: 80.019886\n    test 73 line 13 toEtm8.easting: 8076501.833695\n    test 74 line 13 toEtm8.northing: 8561614.174782\n    test 75 line 13 toEtm8.gamma: 75.073393\n    test 76 line 13 toEtm8.scale: 1.906202\n    test 77 line 13 toEtm8.lat: 30.536296\n    test 78 line 13 toEtm8.lon: 82.186178\n    test 79 line 14 toEtm8.easting: 3335099.866623\n    test 80 line 14 toEtm8.northing: 6740519.084015\n    test 81 line 14 toEtm8.gamma: 40.611821\n    test 82 line 14 toEtm8.scale: 1.139021\n    test 83 line 14 toEtm8.lat: 49.990485\n    test 84 line 14 toEtm8.lon: 48.203179\n    test 85 line 15 toEtm8.easting: 12051574.928500\n    test 86 line 15 toEtm8.northing: 6587213.051951\n    test 87 line 15 toEtm8.gamma: 59.033237\n    test 88 line 15 toEtm8.scale: 3.357469\n    test 89 line 15 toEtm8.lat: 14.486312\n    test 90 line 15 toEtm8.lon: 80.905137\n    test 91 line 16 toEtm8.easting: 5387578.735298\n    test 92 line 16 toEtm8.northing: 4111216.907168\n    test 93 line 16 toEtm8.gamma: 27.574337\n    test 94 line 16 toEtm8.scale: 1.379357\n    test 95 line 16 toEtm8.lat: 25.936824\n    test 96 line 16 toEtm8.lon: 49.913598\n    test 97 line 17 toEtm8.easting: 2622214.380233\n    test 98 line 17 toEtm8.northing: 8678923.984567\n    test 99 line 17 toEtm8.gamma: 61.697275\n    test 100 line 17 toEtm8.scale: 1.084810\n    test 101 line 17 toEtm8.lat: 64.402196\n    test 102 line 17 toEtm8.lon: 64.091395\n    test 103 line 18 toEtm8.easting: 5068474.169633\n    test 104 line 18 toEtm8.northing: 9492066.993709\n    test 105 line 18 toEtm8.gamma: 83.156740\n    test 106 line 18 toEtm8.scale: 1.329990\n    test 107 line 18 toEtm8.lat: 48.451354\n    test 108 line 18 toEtm8.lon: 84.856198\n    test 109 line 19 toEtm8.easting: 738062.047779\n    test 110 line 19 toEtm8.northing: 3031007.074116\n    test 111 line 19 toEtm8.gamma: 3.416802\n    test 112 line 19 toEtm8.scale: 1.006332\n    test 113 line 19 toEtm8.lat: 27.203895\n    test 114 line 19 toEtm8.lon: 7.440229\n    test 115 line 20 toEtm8.easting: 1944413.834565\n    test 116 line 20 toEtm8.northing: 9613299.224493\n    test 117 line 20 toEtm8.gamma: 78.462831\n    test 118 line 20 toEtm8.scale: 1.046134\n    test 119 line 20 toEtm8.lat: 72.509000\n    test 120 line 20 toEtm8.lon: 78.982283\n    test 121 line 21 toEtm8.easting: 2114521.418406\n    test 122 line 21 toEtm8.northing: 4954077.440098\n    test 123 line 21 toEtm8.gamma: 17.571878\n    test 124 line 21 toEtm8.scale: 1.055093\n    test 125 line 21 toEtm8.lat: 41.824954\n    test 126 line 21 toEtm8.lon: 25.392744\n    test 127 line 22 toEtm8.easting: 620365.905090\n    test 128 line 22 toEtm8.northing: 4755542.026562\n    test 129 line 22 toEtm8.gamma: 5.152022\n    test 130 line 22 toEtm8.scale: 1.004338\n    test 131 line 22 toEtm8.lat: 42.701376\n    test 132 line 22 toEtm8.lon: 7.572738\n    test 133 line 23 toEtm8.easting: 263004.770989\n    test 134 line 23 toEtm8.northing: 4493669.762451\n    test 135 line 23 toEtm8.gamma: 2.020523\n    test 136 line 23 toEtm8.scale: 1.000452\n    test 137 line 23 toEtm8.lat: 40.552052\n    test 138 line 23 toEtm8.lon: 3.106056\n    test 139 line 24 toEtm8.easting: 3217221.739462\n    test 140 line 24 toEtm8.northing: 437776.119161\n    test 141 line 24 toEtm8.gamma: 1.848169\n    test 142 line 24 toEtm8.scale: 1.130558\n    test 143 line 24 toEtm8.lat: 3.501242\n    test 144 line 24 toEtm8.lon: 27.806507\n    test 145 line 25 toEtm8.easting: 14661142.444961\n    test 146 line 25 toEtm8.northing: 7476100.824185\n    test 147 line 25 toEtm8.gamma: 68.376669\n    test 148 line 25 toEtm8.scale: 4.896650\n    test 149 line 25 toEtm8.lat: 10.148715\n    test 150 line 25 toEtm8.lon: 85.373768\n    test 151 line 26 toEtm8.easting: 967777.158554\n    test 152 line 26 toEtm8.northing: 6615684.266592\n    test 153 line 26 toEtm8.gamma: 14.410044\n    test 154 line 26 toEtm8.scale: 1.011100\n    test 155 line 26 toEtm8.lat: 58.582623\n    test 156 line 26 toEtm8.lon: 16.755558\n    test 157 line 27 toEtm8.easting: 7558840.728461\n    test 158 line 27 toEtm8.northing: 4144728.130764\n    test 159 line 27 toEtm8.gamma: 32.557264\n    test 160 line 27 toEtm8.scale: 1.791490\n    test 161 line 27 toEtm8.lat: 19.793004\n    test 162 line 27 toEtm8.lon: 61.746763\n    test 163 line 28 toEtm8.easting: 1056008.314161\n    test 164 line 28 toEtm8.northing: 9290799.692669\n    test 165 line 28 toEtm8.gamma: 55.843278\n    test 166 line 28 toEtm8.scale: 1.013253\n    test 167 line 28 toEtm8.lat: 78.666776\n    test 168 line 28 toEtm8.lon: 56.365355\n    test 169 line 29 toEtm8.easting: 1943965.134687\n    test 170 line 29 toEtm8.northing: 1389972.228690\n    test 171 line 29 toEtm8.gamma: 3.774869\n    test 172 line 29 toEtm8.scale: 1.046724\n    test 173 line 29 toEtm8.lat: 11.998788\n    test 174 line 29 toEtm8.lon: 17.597873\n    test 175 line 30 toEtm8.easting: 5803077.072902\n    test 176 line 30 toEtm8.northing: 5649957.943659\n    test 177 line 30 toEtm8.gamma: 41.717943\n    test 178 line 30 toEtm8.scale: 1.442572\n    test 179 line 30 toEtm8.lat: 32.540378\n    test 180 line 30 toEtm8.lon: 58.764613\n    test 181 line 31 toEtm8.easting: 2928716.986009\n    test 182 line 31 toEtm8.northing: 5731835.058317\n    test 183 line 31 toEtm8.gamma: 28.538550\n    test 184 line 31 toEtm8.scale: 1.106780\n    test 185 line 31 toEtm8.lat: 45.160356\n    test 186 line 31 toEtm8.lon: 37.465285\n    test 187 line 32 toEtm8.easting: 326141.975756\n    test 188 line 32 toEtm8.northing: 8881325.164543\n    test 189 line 32 toEtm8.gamma: 16.111415\n    test 190 line 32 toEtm8.scale: 1.000900\n    test 191 line 32 toEtm8.lat: 79.584190\n    test 192 line 32 toEtm8.lon: 16.367006\n    test 193 line 33 toEtm8.easting: 3933015.267450\n    test 194 line 33 toEtm8.northing: 7932373.909512\n    test 195 line 33 toEtm8.gamma: 58.577424\n    test 196 line 33 toEtm8.scale: 1.194811\n    test 197 line 33 toEtm8.lat: 52.470664\n    test 198 line 33 toEtm8.lon: 64.125580\n    test 199 line 34 toEtm8.easting: 8598926.983213\n    test 200 line 34 toEtm8.northing: 6214135.167503\n    test 201 line 34 toEtm8.gamma: 52.612878\n    test 202 line 34 toEtm8.scale: 2.051367\n    test 203 line 34 toEtm8.lat: 23.702673\n    test 204 line 34 toEtm8.lon: 72.630363\n    test 205 line 35 toEtm8.easting: 6620553.333772\n    test 206 line 35 toEtm8.northing: 6540527.122948\n    test 207 line 35 toEtm8.gamma: 52.350140\n    test 208 line 35 toEtm8.scale: 1.586614\n    test 209 line 35 toEtm8.lat: 32.603520\n    test 210 line 35 toEtm8.lon: 67.280123\n    test 211 line 36 toEtm8.easting: 1515136.758292\n    test 212 line 36 toEtm8.northing: 3858996.087537\n    test 213 line 36 toEtm8.gamma: 9.225127\n    test 214 line 36 toEtm8.scale: 1.028029\n    test 215 line 36 toEtm8.lat: 33.776224\n    test 216 line 36 toEtm8.lon: 16.280993\n    test 217 line 37 toEtm8.easting: 479854.373445\n    test 218 line 37 toEtm8.northing: 8980501.389896\n    test 219 line 37 toEtm8.gamma: 25.021222\n    test 220 line 37 toEtm8.scale: 1.002415\n    test 221 line 37 toEtm8.lat: 79.932747\n    test 222 line 37 toEtm8.lon: 25.363622\n    test 223 line 38 toEtm8.easting: 5243446.564940\n    test 224 line 38 toEtm8.northing: 140657.213960\n    test 225 line 38 toEtm8.gamma: 0.862817\n    test 226 line 38 toEtm8.scale: 1.360358\n    test 227 line 38 toEtm8.lat: 0.935056\n    test 228 line 38 toEtm8.lon: 42.538824\n    test 229 line 39 toEtm8.easting: 12806457.923218\n    test 230 line 39 toEtm8.northing: 7170118.684675\n    test 231 line 39 toEtm8.gamma: 64.708921\n    test 232 line 39 toEtm8.scale: 3.740588\n    test 233 line 39 toEtm8.lat: 13.490862\n    test 234 line 39 toEtm8.lon: 83.178380\n    test 235 line 40 toEtm8.easting: 1202993.459158\n    test 236 line 40 toEtm8.northing: 5557316.053599\n    test 237 line 40 toEtm8.gamma: 12.579061\n    test 238 line 40 toEtm8.scale: 1.017426\n    test 239 line 40 toEtm8.lat: 48.979057\n    test 240 line 40 toEtm8.lon: 16.474542\n    test 241 line 41 toEtm8.easting: 1729088.710196\n    test 242 line 41 toEtm8.northing: 7770874.289954\n    test 243 line 41 toEtm8.gamma: 36.021783\n    test 244 line 41 toEtm8.scale: 1.036397\n    test 245 line 41 toEtm8.lat: 65.036016\n    test 246 line 41 toEtm8.lon: 38.729091\n    test 247 line 42 toEtm8.easting: 2437301.517425\n    test 248 line 42 toEtm8.northing: 5539327.748318\n    test 249 line 42 toEtm8.gamma: 23.461879\n    test 250 line 42 toEtm8.scale: 1.073459\n    test 251 line 42 toEtm8.lat: 45.510091\n    test 252 line 42 toEtm8.lon: 31.303729\n    test 253 line 43 toEtm8.easting: 3647186.135066\n    test 254 line 43 toEtm8.northing: 2086412.330983\n    test 255 line 43 toEtm8.gamma: 10.023991\n    test 256 line 43 toEtm8.scale: 1.168707\n    test 257 line 43 toEtm8.lat: 16.058010\n    test 258 line 43 toEtm8.lon: 32.520026\n    test 259 line 44 toEtm8.easting: 1818497.243556\n    test 260 line 44 toEtm8.northing: 4275471.745057\n    test 261 line 44 toEtm8.gamma: 12.499656\n    test 262 line 44 toEtm8.scale: 1.040604\n    test 263 line 44 toEtm8.lat: 36.845200\n    test 264 line 44 toEtm8.lon: 20.282283\n    test 265 line 45 toEtm8.easting: 3751304.113783\n    test 266 line 45 toEtm8.northing: 5130454.001592\n    test 267 line 45 toEtm8.gamma: 28.959707\n    test 268 line 45 toEtm8.scale: 1.177681\n    test 269 line 45 toEtm8.lat: 37.865481\n    test 270 line 45 toEtm8.lon: 41.990402\n    test 271 line 46 toEtm8.easting: 2616733.138544\n    test 272 line 46 toEtm8.northing: 394644.463815\n    test 273 line 46 toEtm8.gamma: 1.390425\n    test 274 line 46 toEtm8.scale: 1.085595\n    test 275 line 46 toEtm8.lat: 3.287272\n    test 276 line 46 toEtm8.lon: 22.917604\n    test 277 line 47 toEtm8.easting: 1756506.573942\n    test 278 line 47 toEtm8.northing: 5570393.986394\n    test 279 line 47 toEtm8.gamma: 17.897894\n    test 280 line 47 toEtm8.scale: 1.037732\n    test 281 line 47 toEtm8.lat: 47.813686\n    test 282 line 47 toEtm8.lon: 23.545092\n    test 283 line 48 toEtm8.easting: 8752461.894711\n    test 284 line 48 toEtm8.northing: 6087728.152284\n    test 285 line 48 toEtm8.gamma: 51.628465\n    test 286 line 48 toEtm8.scale: 2.095465\n    test 287 line 48 toEtm8.lat: 22.836853\n    test 288 line 48 toEtm8.lon: 72.604385\n    test 289 line 49 toEtm8.easting: 1309272.216432\n    test 290 line 49 toEtm8.northing: 59520.028899\n    test 291 line 49 toEtm8.gamma: 0.109069\n    test 292 line 49 toEtm8.scale: 1.020897\n    test 293 line 49 toEtm8.lat: 0.527262\n    test 294 line 49 toEtm8.lon: 11.684209\n    test 295 line 50 toEtm8.easting: 328652.277129\n    test 296 line 50 toEtm8.northing: 2233043.958874\n    test 297 line 50 toEtm8.gamma: 1.084863\n    test 298 line 50 toEtm8.scale: 1.000935\n    test 299 line 50 toEtm8.lat: 20.166742\n    test 300 line 50 toEtm8.lon: 3.143948\n    test 301 line 51 toEtm8.easting: 8637959.716447\n    test 302 line 51 toEtm8.northing: 9190635.156031\n    test 303 line 51 toEtm8.gamma: 81.802563\n    test 304 line 51 toEtm8.scale: 2.054329\n    test 305 line 51 toEtm8.lat: 28.604629\n    test 306 line 51 toEtm8.lon: 85.988721\n    test 307 line 52 toEtm8.easting: 8548521.455147\n    test 308 line 52 toEtm8.northing: 9172410.943282\n    test 309 line 52 toEtm8.gamma: 81.583928\n    test 310 line 52 toEtm8.scale: 2.029641\n    test 311 line 52 toEtm8.lat: 28.984048\n    test 312 line 52 toEtm8.lon: 85.833448\n    test 313 line 53 toEtm8.easting: 796987.281104\n    test 314 line 53 toEtm8.northing: 7677446.357675\n    test 315 line 53 toEtm8.gamma: 18.084472\n    test 316 line 53 toEtm8.scale: 1.007381\n    test 317 line 53 toEtm8.lat: 68.071020\n    test 318 line 53 toEtm8.lon: 19.392823\n    test 319 line 54 toEtm8.easting: 3291036.496762\n    test 320 line 54 toEtm8.northing: 9513199.600666\n    test 321 line 54 toEtm8.gamma: 80.890254\n    test 322 line 54 toEtm8.scale: 1.134826\n    test 323 line 54 toEtm8.lat: 61.416576\n    test 324 line 54 toEtm8.lon: 81.981611\n    test 325 line 55 toEtm8.easting: 7087225.330906\n    test 326 line 55 toEtm8.northing: 8382823.855822\n    test 327 line 55 toEtm8.gamma: 72.253756\n    test 328 line 55 toEtm8.scale: 1.678070\n    test 329 line 55 toEtm8.lat: 35.074753\n    test 330 line 55 toEtm8.lon: 79.496003\n    test 331 line 56 toEtm8.easting: 5090358.125724\n    test 332 line 56 toEtm8.northing: 4318294.133489\n    test 333 line 56 toEtm8.gamma: 28.266280\n    test 334 line 56 toEtm8.scale: 1.336264\n    test 335 line 56 toEtm8.lat: 28.078790\n    test 336 line 56 toEtm8.lon: 48.684350\n\n    test skipped (1): line 57 toEtm8.'84.986930137199 2.067177857261 20163.0752214330146 9438635.9888499043815 2.059277291707588222 .99960496589466017622'\n    test 337 line 58 toEtm8.easting: 3447670.550785\n    test 338 line 58 toEtm8.northing: 3680238.888223\n    test 339 line 58 toEtm8.gamma: 17.934948\n    test 340 line 58 toEtm8.scale: 1.149831\n    test 341 line 58 toEtm8.lat: 28.473948\n    test 342 line 58 toEtm8.lon: 34.127306\n    test 343 line 59 toEtm8.easting: 3396522.906798\n    test 344 line 59 toEtm8.northing: 8093659.687593\n    test 345 line 59 toEtm8.gamma: 57.747117\n    test 346 line 59 toEtm8.scale: 1.144006\n    test 347 line 59 toEtm8.lat: 56.629354\n    test 348 line 59 toEtm8.lon: 62.196474\n    test 349 line 60 toEtm8.easting: 11249894.100784\n    test 350 line 60 toEtm8.northing: 1619226.506299\n    test 351 line 60 toEtm8.gamma: 14.210358\n    test 352 line 60 toEtm8.scale: 3.048347\n    test 353 line 60 toEtm8.lat: 4.747762\n    test 354 line 60 toEtm8.lon: 70.932555\n    test 355 line 61 toEtm8.easting: 6808805.230950\n    test 356 line 61 toEtm8.northing: 8044779.777369\n    test 357 line 61 toEtm8.gamma: 68.242008\n    test 358 line 61 toEtm8.scale: 1.621464\n    test 359 line 61 toEtm8.lat: 35.882113\n    test 360 line 61 toEtm8.lon: 76.741849\n    test 361 line 62 toEtm8.easting: 2306021.556506\n    test 362 line 62 toEtm8.northing: 757191.592866\n    test 363 line 62 toEtm8.gamma: 2.385686\n    test 364 line 62 toEtm8.scale: 1.066159\n    test 365 line 62 toEtm8.lat: 6.420705\n    test 366 line 62 toEtm8.lon: 20.416028\n    test 367 line 63 toEtm8.easting: 1547406.313862\n    test 368 line 63 toEtm8.northing: 6048712.751824\n    test 369 line 63 toEtm8.gamma: 18.474372\n    test 370 line 63 toEtm8.scale: 1.029123\n    test 371 line 63 toEtm8.lat: 52.335248\n    test 372 line 63 toEtm8.lon: 22.879294\n    test 373 line 64 toEtm8.easting: 2430467.650383\n    test 374 line 64 toEtm8.northing: 7557167.613972\n    test 375 line 64 toEtm8.gamma: 42.110021\n    test 376 line 64 toEtm8.scale: 1.072759\n    test 377 line 64 toEtm8.lat: 59.846391\n    test 378 line 64 toEtm8.lon: 46.262536\n    test 379 line 65 toEtm8.easting: 2334053.905830\n    test 380 line 65 toEtm8.northing: 1948076.966582\n    test 381 line 65 toEtm8.gamma: 6.353185\n    test 382 line 65 toEtm8.scale: 1.067733\n    test 383 line 65 toEtm8.lat: 16.461790\n    test 384 line 65 toEtm8.lon: 21.433269\n    test 385 line 66 toEtm8.easting: 5564175.186737\n    test 386 line 66 toEtm8.northing: 1836851.660412\n    test 387 line 66 toEtm8.gamma: 11.870682\n    test 388 line 66 toEtm8.scale: 1.408265\n    test 389 line 66 toEtm8.lat: 11.707905\n    test 390 line 66 toEtm8.lon: 45.827075\n    test 391 line 67 toEtm8.easting: 6118505.590359\n    test 392 line 67 toEtm8.northing: 7631684.552421\n    test 393 line 67 toEtm8.gamma: 62.477323\n    test 394 line 67 toEtm8.scale: 1.493420\n    test 395 line 67 toEtm8.lat: 38.519075\n    test 396 line 67 toEtm8.lon: 71.935918\n    test 397 line 68 toEtm8.easting: 7365359.294665\n    test 398 line 68 toEtm8.northing: 8818194.451531\n    test 399 line 68 toEtm8.gamma: 77.207042\n    test 400 line 68 toEtm8.scale: 1.737639\n    test 401 line 68 toEtm8.lat: 34.264007\n    test 402 line 68 toEtm8.lon: 82.647878\n    test 403 line 69 toEtm8.easting: 36187.342415\n    test 404 line 69 toEtm8.northing: 2142565.324802\n    test 405 line 69 toEtm8.gamma: 0.114334\n    test 406 line 69 toEtm8.scale: 0.999616\n    test 407 line 69 toEtm8.lat: 19.376880\n    test 408 line 69 toEtm8.lon: 0.344605\n    test 409 line 70 toEtm8.easting: 2380328.546851\n    test 410 line 70 toEtm8.northing: 8440109.872384\n    test 411 line 70 toEtm8.gamma: 55.076067\n    test 412 line 70 toEtm8.scale: 1.069658\n    test 413 line 70 toEtm8.lat: 65.075805\n    test 414 line 70 toEtm8.lon: 57.653438\n    test 415 line 71 toEtm8.easting: 582511.608826\n    test 416 line 71 toEtm8.northing: 8876047.217071\n    test 417 line 71 toEtm8.gamma: 27.133300\n    test 418 line 71 toEtm8.scale: 1.003749\n    test 419 line 71 toEtm8.lat: 78.691870\n    test 420 line 71 toEtm8.lon: 27.591736\n    test 421 line 72 toEtm8.easting: 899441.350477\n    test 422 line 72 toEtm8.northing: 4582046.430516\n    test 423 line 72 toEtm8.gamma: 7.031211\n    test 424 line 72 toEtm8.scale: 1.009573\n    test 425 line 72 toEtm8.lat: 40.893022\n    test 426 line 72 toEtm8.lon: 10.668804\n    test 427 line 73 toEtm8.easting: 5022485.124337\n    test 428 line 73 toEtm8.northing: 9741774.933721\n    test 429 line 73 toEtm8.gamma: 86.505947\n    test 430 line 73 toEtm8.scale: 1.323700\n    test 431 line 73 toEtm8.lat: 48.914279\n    test 432 line 73 toEtm8.lon: 87.359268\n    test 433 line 74 toEtm8.easting: 6701004.587204\n    test 434 line 74 toEtm8.northing: 2954368.258231\n    test 435 line 74 toEtm8.gamma: 21.560153\n    test 436 line 74 toEtm8.scale: 1.608554\n    test 437 line 74 toEtm8.lat: 16.208377\n    test 438 line 74 toEtm8.lon: 54.494282\n    test 439 line 75 toEtm8.easting: 454986.218897\n    test 440 line 75 toEtm8.northing: 4885087.887884\n    test 441 line 75 toEtm8.gamma: 3.945648\n    test 442 line 75 toEtm8.scale: 1.002147\n    test 443 line 75 toEtm8.lat: 43.977936\n    test 444 line 75 toEtm8.lon: 5.672541\n    test 445 line 76 toEtm8.easting: 8903956.140311\n    test 446 line 76 toEtm8.northing: 8470608.577482\n    test 447 line 76 toEtm8.gamma: 74.723116\n    test 448 line 76 toEtm8.scale: 2.131311\n    test 449 line 76 toEtm8.lat: 26.850861\n    test 450 line 76 toEtm8.lon: 82.834480\n    test 451 line 77 toEtm8.easting: 1547627.594741\n    test 452 line 77 toEtm8.northing: 6036584.538347\n    test 453 line 77 toEtm8.gamma: 18.407629\n    test 454 line 77 toEtm8.scale: 1.029132\n    test 455 line 77 toEtm8.lat: 52.234165\n    test 456 line 77 toEtm8.lon: 22.827655\n    test 457 line 78 toEtm8.easting: 5221488.778597\n    test 458 line 78 toEtm8.northing: 1762592.044392\n    test 459 line 78 toEtm8.gamma: 10.927880\n    test 460 line 78 toEtm8.scale: 1.356721\n    test 461 line 78 toEtm8.lat: 11.674646\n    test 462 line 78 toEtm8.lon: 43.500147\n    test 463 line 79 toEtm8.easting: 4880570.297161\n    test 464 line 79 toEtm8.northing: 3325433.988867\n    test 465 line 79 toEtm8.gamma: 20.469862\n    test 466 line 79 toEtm8.scale: 1.308476\n    test 467 line 79 toEtm8.lat: 22.492753\n    test 468 line 79 toEtm8.lon: 44.179153\n    test 469 line 80 toEtm8.easting: 23930680.082694\n    test 470 line 80 toEtm8.northing: 7491462.099038\n    test 471 line 80 toEtm8.gamma: 75.937628\n    test 472 line 80 toEtm8.scale: 15.556365\n    test 473 line 80 toEtm8.lat: 0.910999\n    test 474 line 80 toEtm8.lon: 88.548823\n    test 475 line 81 toEtm8.easting: 71519.450458\n    test 476 line 81 toEtm8.northing: 3654740.444852\n    test 477 line 81 toEtm8.gamma: 0.417448\n    test 478 line 81 toEtm8.scale: 0.999663\n    test 479 line 81 toEtm8.lat: 33.028802\n    test 480 line 81 toEtm8.lon: 0.765843\n    test 481 line 82 toEtm8.easting: 4152797.795220\n    test 482 line 82 toEtm8.northing: 7823098.502751\n    test 483 line 82 toEtm8.gamma: 58.238901\n    test 484 line 82 toEtm8.scale: 1.218052\n    test 485 line 82 toEtm8.lat: 50.649195\n    test 486 line 82 toEtm8.lon: 64.389076\n    test 487 line 83 toEtm8.easting: 2926725.707639\n    test 488 line 83 toEtm8.northing: 7904918.072844\n    test 489 line 83 toEtm8.gamma: 51.592748\n    test 490 line 83 toEtm8.scale: 1.106206\n    test 491 line 83 toEtm8.lat: 58.820640\n    test 492 line 83 toEtm8.lon: 55.841048\n    test 493 line 84 toEtm8.easting: 1325509.113869\n    test 494 line 84 toEtm8.northing: 9675214.948213\n    test 495 line 84 toEtm8.gamma: 76.116213\n    test 496 line 84 toEtm8.scale: 1.021136\n    test 497 line 84 toEtm8.lat: 77.865762\n    test 498 line 84 toEtm8.lon: 76.414618\n    test 499 line 85 toEtm8.easting: 3045296.448926\n    test 500 line 85 toEtm8.northing: 542153.443280\n    test 501 line 85 toEtm8.gamma: 2.185095\n    test 502 line 85 toEtm8.scale: 1.116664\n    test 503 line 85 toEtm8.lat: 4.389639\n    test 504 line 85 toEtm8.lon: 26.458976\n    test 505 line 86 toEtm8.easting: 11843870.887518\n    test 506 line 86 toEtm8.northing: 5912803.073343\n    test 507 line 86 toEtm8.gamma: 52.814259\n    test 508 line 86 toEtm8.scale: 3.267256\n    test 509 line 86 toEtm8.lat: 13.924448\n    test 510 line 86 toEtm8.lon: 79.017873\n    test 511 line 87 toEtm8.easting: 8891099.704936\n    test 512 line 87 toEtm8.northing: 162160.142227\n    test 513 line 87 toEtm8.gamma: 1.312094\n    test 514 line 87 toEtm8.scale: 2.157363\n    test 515 line 87 toEtm8.lat: 0.679713\n    test 516 line 87 toEtm8.lon: 62.036792\n    test 517 line 88 toEtm8.easting: 4784814.214449\n    test 518 line 88 toEtm8.northing: 2984497.432580\n    test 519 line 88 toEtm8.gamma: 17.946545\n    test 520 line 88 toEtm8.scale: 1.296116\n    test 521 line 88 toEtm8.lat: 20.478281\n    test 522 line 88 toEtm8.lon: 42.678234\n    test 523 line 89 toEtm8.easting: 1772074.682154\n    test 524 line 89 toEtm8.northing: 9491552.560143\n    test 525 line 89 toEtm8.gamma: 73.634830\n    test 526 line 89 toEtm8.scale: 1.038202\n    test 527 line 89 toEtm8.lat: 73.695703\n    test 528 line 89 toEtm8.lon: 74.259097\n    test 529 line 90 toEtm8.easting: 1907649.782106\n    test 530 line 90 toEtm8.northing: 6994232.429379\n    test 531 line 90 toEtm8.gamma: 29.718929\n    test 532 line 90 toEtm8.scale: 1.044503\n    test 533 line 90 toEtm8.lat: 58.569370\n    test 534 line 90 toEtm8.lon: 33.777549\n    test 535 line 91 toEtm8.easting: 2084423.818962\n    test 536 line 91 toEtm8.northing: 2211816.035619\n    test 537 line 91 toEtm8.gamma: 6.556448\n    test 538 line 91 toEtm8.scale: 1.053793\n    test 539 line 91 toEtm8.lat: 18.933881\n    test 540 line 91 toEtm8.lon: 19.492695\n    test 541 line 92 toEtm8.easting: 1064373.671729\n    test 542 line 92 toEtm8.northing: 7812482.547461\n    test 543 line 92 toEtm8.gamma: 24.874124\n    test 544 line 92 toEtm8.scale: 1.013490\n    test 545 line 92 toEtm8.lat: 68.317934\n    test 546 line 92 toEtm8.lon: 26.515687\n    test 547 line 93 toEtm8.easting: 4770385.479297\n    test 548 line 93 toEtm8.northing: 9734318.902980\n    test 549 line 93 toEtm8.gamma: 86.273119\n    test 550 line 93 toEtm8.scale: 1.290553\n    test 551 line 93 toEtm8.lat: 50.641941\n    test 552 line 93 toEtm8.lon: 87.111557\n    test 553 line 94 toEtm8.easting: 6398096.677297\n    test 554 line 94 toEtm8.northing: 4410894.752104\n    test 555 line 94 toEtm8.gamma: 32.558023\n    test 556 line 94 toEtm8.scale: 1.548004\n    test 557 line 94 toEtm8.lat: 24.411298\n    test 558 line 94 toEtm8.lon: 56.881823\n    test 559 line 95 toEtm8.easting: 3138623.300415\n    test 560 line 95 toEtm8.northing: 3082960.600798\n    test 561 line 95 toEtm8.gamma: 13.557672\n    test 562 line 95 toEtm8.scale: 1.123724\n    test 563 line 95 toEtm8.lat: 24.571871\n    test 564 line 95 toEtm8.lon: 30.073097\n    test 565 line 96 toEtm8.easting: 2748325.794651\n    test 566 line 96 toEtm8.northing: 4202811.912668\n    test 567 line 96 toEtm8.gamma: 17.578706\n    test 568 line 96 toEtm8.scale: 1.094102\n    test 569 line 96 toEtm8.lat: 34.202576\n    test 570 line 96 toEtm8.lon: 29.383166\n    test 571 line 97 toEtm8.easting: 6677830.630367\n    test 572 line 97 toEtm8.northing: 5350071.837395\n    test 573 line 97 toEtm8.gamma: 41.306641\n    test 574 line 97 toEtm8.scale: 1.599774\n    test 575 line 97 toEtm8.lat: 27.756285\n    test 576 line 97 toEtm8.lon: 61.881905\n    test 577 line 98 toEtm8.easting: 5941536.667431\n    test 578 line 98 toEtm8.northing: 3293112.175140\n    test 579 line 98 toEtm8.gamma: 22.752845\n    test 580 line 98 toEtm8.scale: 1.468473\n    test 581 line 98 toEtm8.lat: 19.742270\n    test 582 line 98 toEtm8.lon: 50.957821\n    test 583 line 99 toEtm8.easting: 3152481.792567\n    test 584 line 99 toEtm8.northing: 5903048.837978\n    test 585 line 99 toEtm8.gamma: 31.494606\n    test 586 line 99 toEtm8.scale: 1.124085\n    test 587 line 99 toEtm8.lat: 45.453582\n    test 588 line 99 toEtm8.lon: 40.659833\n    test 589 line 100 toEtm8.easting: 10460475.897730\n    test 590 line 100 toEtm8.northing: 2553463.624391\n    test 591 line 100 toEtm8.gamma: 21.965869\n    test 592 line 100 toEtm8.scale: 2.700296\n    test 593 line 100 toEtm8.lat: 8.322144\n    test 594 line 100 toEtm8.lon: 69.488157\n    test 595 line 101 toEtm8.easting: 1964010.778021\n    test 596 line 101 toEtm8.northing: 5634042.923056\n    test 597 line 101 toEtm8.gamma: 20.117800\n    test 598 line 101 toEtm8.scale: 1.047344\n    test 599 line 101 toEtm8.lat: 47.749831\n    test 600 line 101 toEtm8.lon: 26.322002\n    test 601 line 102 toEtm8.easting: 2065306.424934\n    test 602 line 102 toEtm8.northing: 2135008.468651\n    test 603 line 102 toEtm8.gamma: 6.258981\n    test 604 line 102 toEtm8.scale: 1.052800\n    test 605 line 102 toEtm8.lat: 18.297493\n    test 606 line 102 toEtm8.lon: 19.244669\n    test 607 line 103 toEtm8.easting: 5127738.132976\n    test 608 line 103 toEtm8.northing: 6793804.304411\n    test 609 line 103 toEtm8.gamma: 50.557915\n    test 610 line 103 toEtm8.scale: 1.339412\n    test 611 line 103 toEtm8.lat: 40.834541\n    test 612 line 103 toEtm8.lon: 61.650750\n    test 613 line 104 toEtm8.easting: 8385525.148166\n    test 614 line 104 toEtm8.northing: 6924932.344306\n    test 615 line 104 toEtm8.gamma: 59.087561\n    test 616 line 104 toEtm8.scale: 1.990364\n    test 617 line 104 toEtm8.lat: 26.273247\n    test 618 line 104 toEtm8.lon: 74.926694\n    test 619 line 105 toEtm8.easting: 2297510.791909\n    test 620 line 105 toEtm8.northing: 2805666.962834\n    test 621 line 105 toEtm8.gamma: 9.301553\n    test 622 line 105 toEtm8.scale: 1.065508\n    test 623 line 105 toEtm8.lat: 23.698347\n    test 624 line 105 toEtm8.lon: 22.155657\n    test 625 line 106 toEtm8.easting: 13749544.917635\n    test 626 line 106 toEtm8.northing: 8288728.384650\n    test 627 line 106 toEtm8.gamma: 75.033970\n    test 628 line 106 toEtm8.scale: 4.270588\n    test 629 line 106 toEtm8.lat: 12.364113\n    test 630 line 106 toEtm8.lon: 86.348578\n    test 631 line 107 toEtm8.easting: 317518.455546\n    test 632 line 107 toEtm8.northing: 1097517.583745\n    test 633 line 107 toEtm8.gamma: 0.499004\n    test 634 line 107 toEtm8.scale: 1.000848\n    test 635 line 107 toEtm8.lat: 9.916091\n    test 636 line 107 toEtm8.lon: 2.895277\n    test 637 line 108 toEtm8.easting: 3856035.184888\n    test 638 line 108 toEtm8.northing: 9141364.450290\n    test 639 line 108 toEtm8.gamma: 75.972763\n    test 640 line 108 toEtm8.scale: 1.186786\n    test 641 line 108 toEtm8.lat: 56.553876\n    test 642 line 108 toEtm8.lon: 78.215077\n    test 643 line 109 toEtm8.easting: 1457484.942823\n    test 644 line 109 toEtm8.northing: 9385297.101973\n    test 645 line 109 toEtm8.gamma: 66.784662\n    test 646 line 109 toEtm8.scale: 1.025660\n    test 647 line 109 toEtm8.lat: 75.957631\n    test 648 line 109 toEtm8.lon: 67.407383\n    test 649 line 110 toEtm8.easting: 1304934.901841\n    test 650 line 110 toEtm8.northing: 3604655.155715\n    test 651 line 110 toEtm8.gamma: 7.343989\n    test 652 line 110 toEtm8.scale: 1.020672\n    test 653 line 110 toEtm8.lat: 31.826531\n    test 654 line 110 toEtm8.lon: 13.731050\n    test 655 line 111 toEtm8.easting: 1399093.491792\n    test 656 line 111 toEtm8.northing: 8314607.120342\n    test 657 line 111 toEtm8.gamma: 38.630161\n    test 658 line 111 toEtm8.scale: 1.023625\n    test 659 line 111 toEtm8.lat: 70.542985\n    test 660 line 111 toEtm8.lon: 40.282055\n    test 661 line 112 toEtm8.easting: 356983.618540\n    test 662 line 112 toEtm8.northing: 4282309.048994\n    test 663 line 112 toEtm8.gamma: 2.561485\n    test 664 line 112 toEtm8.scale: 1.001170\n    test 665 line 112 toEtm8.lat: 38.617487\n    test 666 line 112 toEtm8.lon: 4.099838\n    test 667 line 113 toEtm8.easting: 9952911.325091\n    test 668 line 113 toEtm8.northing: 1510288.212229\n    test 669 line 113 toEtm8.gamma: 12.752154\n    test 670 line 113 toEtm8.scale: 2.511357\n    test 671 line 113 toEtm8.lat: 5.389447\n    test 672 line 113 toEtm8.lon: 66.729612\n    test 673 line 114 toEtm8.easting: 6367592.504007\n    test 674 line 114 toEtm8.northing: 1200437.077672\n    test 675 line 114 toEtm8.gamma: 8.338041\n    test 676 line 114 toEtm8.scale: 1.546210\n    test 677 line 114 toEtm8.lat: 6.995168\n    test 678 line 114 toEtm8.lon: 50.014763\n    test 679 line 115 toEtm8.easting: 4391263.676460\n    test 680 line 115 toEtm8.northing: 6325455.989408\n    test 681 line 115 toEtm8.gamma: 42.653541\n    test 682 line 115 toEtm8.scale: 1.245560\n    test 683 line 115 toEtm8.lat: 42.321894\n    test 684 line 115 toEtm8.lon: 53.784040\n    test 685 line 116 toEtm8.easting: 6209880.527527\n    test 686 line 116 toEtm8.northing: 2154754.449747\n    test 687 line 116 toEtm8.gamma: 14.919512\n    test 688 line 116 toEtm8.scale: 1.516560\n    test 689 line 116 toEtm8.lat: 12.698515\n    test 690 line 116 toEtm8.lon: 50.242047\n    test 691 line 117 toEtm8.easting: 1507053.688772\n    test 692 line 117 toEtm8.northing: 6261383.513280\n    test 693 line 117 toEtm8.gamma: 19.280373\n    test 694 line 117 toEtm8.scale: 1.027584\n    test 695 line 117 toEtm8.lat: 54.207636\n    test 696 line 117 toEtm8.lon: 23.325731\n    test 697 line 118 toEtm8.easting: 8332725.003777\n    test 698 line 118 toEtm8.northing: 3002712.329753\n    test 699 line 118 toEtm8.gamma: 24.059212\n    test 700 line 118 toEtm8.scale: 1.990450\n    test 701 line 118 toEtm8.lat: 13.224787\n    test 702 line 118 toEtm8.lon: 62.426698\n    test 703 line 119 toEtm8.easting: 3958910.085235\n    test 704 line 119 toEtm8.northing: 3462284.926102\n    test 705 line 119 toEtm8.gamma: 18.546398\n    test 706 line 119 toEtm8.scale: 1.199351\n    test 707 line 119 toEtm8.lat: 25.650282\n    test 708 line 119 toEtm8.lon: 37.710391\n    test 709 line 120 toEtm8.easting: 10452892.282083\n    test 710 line 120 toEtm8.northing: 8000059.605114\n    test 711 line 120 toEtm8.gamma: 71.075240\n    test 712 line 120 toEtm8.scale: 2.650111\n    test 713 line 120 toEtm8.lat: 20.684773\n    test 714 line 120 toEtm8.lon: 82.849734\n    test 715 line 121 toEtm8.easting: 496148.253731\n    test 716 line 121 toEtm8.northing: 6388503.365043\n    test 717 line 121 toEtm8.gamma: 6.970955\n    test 718 line 121 toEtm8.scale: 1.002620\n    test 719 line 121 toEtm8.lat: 57.367533\n    test 720 line 121 toEtm8.lon: 8.260866\n    test 721 line 122 toEtm8.easting: 7375792.085850\n    test 722 line 122 toEtm8.northing: 5544624.072155\n    test 723 line 122 toEtm8.gamma: 44.510851\n    test 724 line 122 toEtm8.scale: 1.745898\n    test 725 line 122 toEtm8.lat: 25.958757\n    test 726 line 122 toEtm8.lon: 65.760477\n    test 727 line 123 toEtm8.easting: 2826258.041979\n    test 728 line 123 toEtm8.northing: 5167759.816959\n    test 729 line 123 toEtm8.gamma: 23.783897\n    test 730 line 123 toEtm8.scale: 1.099415\n    test 731 line 123 toEtm8.lat: 41.395848\n    test 732 line 123 toEtm8.lon: 33.661790\n    test 733 line 124 toEtm8.easting: 3958563.378851\n    test 734 line 124 toEtm8.northing: 8499923.231243\n    test 735 line 124 toEtm8.gamma: 66.570945\n    test 736 line 124 toEtm8.scale: 1.197296\n    test 737 line 124 toEtm8.lat: 54.266617\n    test 738 line 124 toEtm8.lon: 70.602199\n    test 739 line 125 toEtm8.easting: 4408189.533462\n    test 740 line 125 toEtm8.northing: 8046312.003642\n    test 741 line 125 toEtm8.gamma: 62.216959\n    test 742 line 125 toEtm8.scale: 1.246750\n    test 743 line 125 toEtm8.lat: 49.840393\n    test 744 line 125 toEtm8.lon: 68.036728\n    test 745 line 126 toEtm8.easting: 3629225.627512\n    test 746 line 126 toEtm8.northing: 6371258.454645\n    test 747 line 126 toEtm8.gamma: 38.881675\n    test 748 line 126 toEtm8.scale: 1.165511\n    test 749 line 126 toEtm8.lat: 46.306035\n    test 750 line 126 toEtm8.lon: 48.085828\n    test 751 line 127 toEtm8.easting: 602838.450710\n    test 752 line 127 toEtm8.northing: 4851370.637205\n    test 753 line 127 toEtm8.gamma: 5.160395\n    test 754 line 127 toEtm8.scale: 1.004073\n    test 755 line 127 toEtm8.lat: 43.570988\n    test 756 line 127 toEtm8.lon: 7.464494\n    test 757 line 128 toEtm8.easting: 764616.665051\n    test 758 line 128 toEtm8.northing: 2164299.337945\n    test 759 line 128 toEtm8.gamma: 2.429300\n    test 760 line 128 toEtm8.scale: 1.006835\n    test 761 line 128 toEtm8.lat: 19.427290\n    test 762 line 128 toEtm8.lon: 7.268247\n    test 763 line 129 toEtm8.easting: 5048953.021931\n    test 764 line 129 toEtm8.northing: 1885974.057398\n    test 765 line 129 toEtm8.gamma: 11.459804\n    test 766 line 129 toEtm8.scale: 1.332207\n    test 767 line 129 toEtm8.lat: 12.713794\n    test 768 line 129 toEtm8.lon: 42.507018\n    test 769 line 130 toEtm8.easting: 2293996.601155\n    test 770 line 130 toEtm8.northing: 2392408.644221\n    test 771 line 130 toEtm8.gamma: 7.791838\n    test 772 line 130 toEtm8.scale: 1.065348\n    test 773 line 130 toEtm8.lat: 20.238782\n    test 774 line 130 toEtm8.lon: 21.566068\n    test 775 line 131 toEtm8.easting: 1530603.839418\n    test 776 line 131 toEtm8.northing: 7287841.459898\n    test 777 line 131 toEtm8.gamma: 27.502921\n    test 778 line 131 toEtm8.scale: 1.028416\n    test 779 line 131 toEtm8.lat: 62.367847\n    test 780 line 131 toEtm8.lon: 30.438849\n    test 781 line 132 toEtm8.easting: 2660000.093152\n    test 782 line 132 toEtm8.northing: 5161982.213248\n    test 783 line 132 toEtm8.gamma: 22.629836\n    test 784 line 132 toEtm8.scale: 1.087851\n    test 785 line 132 toEtm8.lat: 41.891569\n    test 786 line 132 toEtm8.lon: 31.959547\n    test 787 line 133 toEtm8.easting: 5037478.329414\n    test 788 line 133 toEtm8.northing: 8768172.379908\n    test 789 line 133 toEtm8.gamma: 73.511182\n    test 790 line 133 toEtm8.scale: 1.325919\n    test 791 line 133 toEtm8.lat: 47.664248\n    test 792 line 133 toEtm8.lon: 77.630062\n    test 793 line 134 toEtm8.easting: 2289650.957799\n    test 794 line 134 toEtm8.northing: 8784328.593607\n    test 795 line 134 toEtm8.gamma: 60.786067\n    test 796 line 134 toEtm8.scale: 1.064346\n    test 797 line 134 toEtm8.lat: 67.259559\n    test 798 line 134 toEtm8.lon: 62.715293\n    test 799 line 135 toEtm8.easting: 647913.889744\n    test 800 line 135 toEtm8.northing: 6742382.228217\n    test 801 line 135 toEtm8.gamma: 10.252667\n    test 802 line 135 toEtm8.scale: 1.004748\n    test 803 line 135 toEtm8.lat: 60.295381\n    test 804 line 135 toEtm8.lon: 11.763097\n    test 805 line 136 toEtm8.easting: 1118372.698566\n    test 806 line 136 toEtm8.northing: 9040627.942263\n    test 807 line 136 toEtm8.gamma: 48.936803\n    test 808 line 136 toEtm8.scale: 1.014920\n    test 809 line 136 toEtm8.lat: 76.878914\n    test 810 line 136 toEtm8.lon: 49.685773\n    test 811 line 137 toEtm8.easting: 440696.510070\n    test 812 line 137 toEtm8.northing: 5500355.826297\n    test 813 line 137 toEtm8.gamma: 4.636104\n    test 814 line 137 toEtm8.scale: 1.001986\n    test 815 line 137 toEtm8.lat: 49.495349\n    test 816 line 137 toEtm8.lon: 6.087551\n    test 817 line 138 toEtm8.easting: 601728.149727\n    test 818 line 138 toEtm8.northing: 9095352.048149\n    test 819 line 138 toEtm8.gamma: 33.435771\n    test 820 line 138 toEtm8.scale: 1.004027\n    test 821 line 138 toEtm8.lat: 80.297265\n    test 822 line 138 toEtm8.lon: 33.816372\n    test 823 line 139 toEtm8.easting: 3481444.777827\n    test 824 line 139 toEtm8.northing: 291665.708749\n    test 825 line 139 toEtm8.gamma: 1.314726\n    test 826 line 139 toEtm8.scale: 1.153534\n    test 827 line 139 toEtm8.lat: 2.286437\n    test 828 line 139 toEtm8.lon: 29.855149\n    test 829 line 140 toEtm8.easting: 3515304.901524\n    test 830 line 140 toEtm8.northing: 1443981.882918\n    test 831 line 140 toEtm8.gamma: 6.641638\n    test 832 line 140 toEtm8.scale: 1.156509\n    test 833 line 140 toEtm8.lat: 11.264457\n    test 834 line 140 toEtm8.lon: 30.743907\n    test 835 line 141 toEtm8.easting: 160012.186959\n    test 836 line 141 toEtm8.northing: 3922609.253231\n    test 837 line 141 toEtm8.gamma: 1.022225\n    test 838 line 141 toEtm8.scale: 0.999916\n    test 839 line 141 toEtm8.lat: 35.434073\n    test 840 line 141 toEtm8.lon: 1.762795\n    test 841 line 142 toEtm8.easting: 4163744.245622\n    test 842 line 142 toEtm8.northing: 936884.674804\n    test 843 line 142 toEtm8.gamma: 4.892559\n    test 844 line 142 toEtm8.scale: 1.222164\n    test 845 line 142 toEtm8.lat: 6.923695\n    test 846 line 142 toEtm8.lon: 35.289456\n    test 847 line 143 toEtm8.easting: 6155200.017926\n    test 848 line 143 toEtm8.northing: 6926306.628390\n    test 849 line 143 toEtm8.gamma: 55.103258\n    test 850 line 143 toEtm8.scale: 1.500556\n    test 851 line 143 toEtm8.lat: 36.129672\n    test 852 line 143 toEtm8.lon: 67.533176\n    test 853 line 144 toEtm8.easting: 16263383.285440\n    test 854 line 144 toEtm8.northing: 3591296.731341\n    test 855 line 144 toEtm8.gamma: 36.040254\n    test 856 line 144 toEtm8.scale: 6.589288\n    test 857 line 144 toEtm8.lat: 4.406529\n    test 858 line 144 toEtm8.lon: 81.965734\n    test 859 line 145 toEtm8.easting: 14220995.515398\n    test 860 line 145 toEtm8.northing: 5100587.457503\n    test 861 line 145 toEtm8.gamma: 47.314258\n    test 862 line 145 toEtm8.scale: 4.693202\n    test 863 line 145 toEtm8.lat: 8.474589\n    test 864 line 145 toEtm8.lon: 81.129945\n    test 865 line 146 toEtm8.easting: 3173034.802372\n    test 866 line 146 toEtm8.northing: 7263421.942957\n    test 867 line 146 toEtm8.gamma: 45.215808\n    test 868 line 146 toEtm8.scale: 1.125410\n    test 869 line 146 toEtm8.lat: 53.907276\n    test 870 line 146 toEtm8.lon: 51.252904\n    test 871 line 147 toEtm8.easting: 10253274.092204\n    test 872 line 147 toEtm8.northing: 8867574.299792\n    test 873 line 147 toEtm8.gamma: 79.198250\n    test 874 line 147 toEtm8.scale: 2.572372\n    test 875 line 147 toEtm8.lat: 22.120545\n    test 876 line 147 toEtm8.lon: 85.756782\n    test 877 line 148 toEtm8.easting: 2415561.483230\n    test 878 line 148 toEtm8.northing: 8813225.217097\n    test 879 line 148 toEtm8.gamma: 62.548978\n    test 880 line 148 toEtm8.scale: 1.071748\n    test 881 line 148 toEtm8.lat: 66.444100\n    test 882 line 148 toEtm8.lon: 64.532960\n    test 883 line 149 toEtm8.easting: 9589179.293295\n    test 884 line 149 toEtm8.northing: 1777680.784143\n    test 885 line 149 toEtm8.gamma: 14.838483\n    test 886 line 149 toEtm8.scale: 2.380716\n    test 887 line 149 toEtm8.lat: 6.670965\n    test 888 line 149 toEtm8.lon: 65.660408\n    test 889 line 150 toEtm8.easting: 727939.438391\n    test 890 line 150 toEtm8.northing: 3684363.236810\n    test 891 line 150 toEtm8.gamma: 4.266227\n    test 892 line 150 toEtm8.scale: 1.006140\n    test 893 line 150 toEtm8.lat: 33.054057\n    test 894 line 150 toEtm8.lon: 7.787458\n    test 895 line 151 toEtm8.easting: 1250765.991085\n    test 896 line 151 toEtm8.northing: 792869.242719\n    test 897 line 151 toEtm8.gamma: 1.396497\n    test 898 line 151 toEtm8.scale: 1.019026\n    test 899 line 151 toEtm8.lat: 7.035525\n    test 900 line 151 toEtm8.lon: 11.253707\n    test 901 line 152 toEtm8.easting: 710421.705887\n    test 902 line 152 toEtm8.northing: 5019406.075928\n    test 903 line 152 toEtm8.gamma: 6.393949\n    test 904 line 152 toEtm8.scale: 1.005812\n    test 905 line 152 toEtm8.lat: 44.971340\n    test 906 line 152 toEtm8.lon: 9.009304\n    test 907 line 153 toEtm8.easting: 4600995.074643\n    test 908 line 153 toEtm8.northing: 4505712.084593\n    test 909 line 153 toEtm8.gamma: 27.997458\n    test 910 line 153 toEtm8.scale: 1.271841\n    test 911 line 153 toEtm8.lat: 30.821397\n    test 912 line 153 toEtm8.lon: 45.970577\n    test 913 line 154 toEtm8.easting: 557642.627782\n    test 914 line 154 toEtm8.northing: 7006911.251644\n    test 915 line 154 toEtm8.gamma: 9.769903\n    test 916 line 154 toEtm8.scale: 1.003411\n    test 917 line 154 toEtm8.lat: 62.763886\n    test 918 line 154 toEtm8.lon: 10.960144\n    test 919 line 155 toEtm8.easting: 4635062.294291\n    test 920 line 155 toEtm8.northing: 2702556.153311\n    test 921 line 155 toEtm8.gamma: 15.779547\n    test 922 line 155 toEtm8.scale: 1.277178\n    test 923 line 155 toEtm8.lat: 18.888611\n    test 924 line 155 toEtm8.lon: 41.009871\n    test 925 line 156 toEtm8.easting: 14554962.255919\n    test 926 line 156 toEtm8.northing: 4716639.908572\n    test 927 line 156 toEtm8.gamma: 44.192751\n    test 928 line 156 toEtm8.scale: 4.960020\n    test 929 line 156 toEtm8.lat: 7.524119\n    test 930 line 156 toEtm8.lon: 81.050715\n    test 931 line 157 toEtm8.easting: 882126.661736\n    test 932 line 157 toEtm8.northing: 7947612.369506\n    test 933 line 157 toEtm8.gamma: 22.429487\n    test 934 line 157 toEtm8.scale: 1.009132\n    test 935 line 157 toEtm8.lat: 70.063902\n    test 936 line 157 toEtm8.lon: 23.705255\n    test 937 line 158 toEtm8.easting: 20262021.645983\n    test 938 line 158 toEtm8.northing: 8113827.820796\n    test 939 line 158 toEtm8.gamma: 76.936057\n    test 940 line 158 toEtm8.scale: 10.349092\n    test 941 line 158 toEtm8.lat: 3.556526\n    test 942 line 158 toEtm8.lon: 88.363529\n    test 943 line 159 toEtm8.easting: 6500508.399850\n    test 944 line 159 toEtm8.northing: 6956476.342368\n    test 945 line 159 toEtm8.gamma: 56.237116\n    test 946 line 159 toEtm8.scale: 1.563162\n    test 947 line 159 toEtm8.lat: 34.551257\n    test 948 line 159 toEtm8.lon: 69.111091\n    test 949 line 160 toEtm8.easting: 3884036.641314\n    test 950 line 160 toEtm8.northing: 6890167.411733\n    test 951 line 160 toEtm8.gamma: 45.760130\n    test 952 line 160 toEtm8.scale: 1.190167\n    test 953 line 160 toEtm8.lat: 47.929051\n    test 954 line 160 toEtm8.lon: 54.103418\n    test 955 line 161 toEtm8.easting: 217855.546078\n    test 956 line 161 toEtm8.northing: 6184108.122568\n    test 957 line 161 toEtm8.gamma: 2.870993\n    test 958 line 161 toEtm8.scale: 1.000182\n    test 959 line 161 toEtm8.lat: 55.753536\n    test 960 line 161 toEtm8.lon: 3.471798\n    test 961 line 162 toEtm8.easting: 11384139.290402\n    test 962 line 162 toEtm8.northing: 8893889.949556\n    test 963 line 162 toEtm8.gamma: 79.774854\n    test 964 line 162 toEtm8.scale: 3.024672\n    test 965 line 162 toEtm8.lat: 18.530847\n    test 966 line 162 toEtm8.lon: 86.555312\n    test 967 line 163 toEtm8.easting: 3469855.989805\n    test 968 line 163 toEtm8.northing: 7723193.799228\n    test 969 line 163 toEtm8.gamma: 53.114700\n    test 970 line 163 toEtm8.scale: 1.150540\n    test 971 line 163 toEtm8.lat: 54.510125\n    test 972 line 163 toEtm8.lon: 58.556056\n    test 973 line 164 toEtm8.easting: 5926165.994939\n    test 974 line 164 toEtm8.northing: 9385463.732747\n    test 975 line 164 toEtm8.gamma: 82.506981\n    test 976 line 164 toEtm8.scale: 1.459758\n    test 977 line 164 toEtm8.lat: 42.864162\n    test 978 line 164 toEtm8.lon: 84.866326\n    test 979 line 165 toEtm8.easting: 5798639.662224\n    test 980 line 165 toEtm8.northing: 5305387.640916\n    test 981 line 165 toEtm8.gamma: 38.617257\n    test 982 line 165 toEtm8.scale: 1.442263\n    test 983 line 165 toEtm8.lat: 30.911943\n    test 984 line 165 toEtm8.lon: 57.114102\n    test 985 line 166 toEtm8.easting: 9464.934388\n    test 986 line 166 toEtm8.northing: 6489121.624944\n    test 987 line 166 toEtm8.gamma: 0.138696\n    test 988 line 166 toEtm8.scale: 0.999601\n    test 989 line 166 toEtm8.lat: 58.542493\n    test 990 line 166 toEtm8.lon: 0.162593\n    test 991 line 167 toEtm8.easting: 12575834.275614\n    test 992 line 167 toEtm8.northing: 8356610.895486\n    test 993 line 167 toEtm8.gamma: 75.235223\n    test 994 line 167 toEtm8.scale: 3.599442\n    test 995 line 167 toEtm8.lat: 15.022689\n    test 996 line 167 toEtm8.lon: 85.792615\n    test 997 line 168 toEtm8.easting: 2719653.543469\n    test 998 line 168 toEtm8.northing: 9362389.163495\n    test 999 line 168 toEtm8.gamma: 76.049670\n    test 1000 line 168 toEtm8.scale: 1.091315\n    test 1001 line 168 toEtm8.lat: 65.692275\n    test 1002 line 168 toEtm8.lon: 77.241377\n    test 1003 line 169 toEtm8.easting: 4845341.924698\n    test 1004 line 169 toEtm8.northing: 8710522.326901\n    test 1005 line 169 toEtm8.gamma: 72.320942\n    test 1006 line 169 toEtm8.scale: 1.300382\n    test 1007 line 169 toEtm8.lat: 48.806211\n    test 1008 line 169 toEtm8.lon: 76.486365\n    test 1009 line 170 toEtm8.easting: 3935261.522763\n    test 1010 line 170 toEtm8.northing: 9454271.649062\n    test 1011 line 170 toEtm8.gamma: 81.162334\n    test 1012 line 170 toEtm8.scale: 1.194767\n    test 1013 line 170 toEtm8.lat: 56.436025\n    test 1014 line 170 toEtm8.lon: 82.611568\n    test 1015 line 171 toEtm8.easting: 7074299.823000\n    test 1016 line 171 toEtm8.northing: 1648736.065055\n    test 1017 line 171 toEtm8.gamma: 12.145925\n    test 1018 line 171 toEtm8.scale: 1.687551\n    test 1019 line 171 toEtm8.lat: 8.766053\n    test 1020 line 171 toEtm8.lon: 54.367539\n    test 1021 line 172 toEtm8.easting: 3689072.579308\n    test 1022 line 172 toEtm8.northing: 2230802.665211\n    test 1023 line 172 toEtm8.gamma: 10.856248\n    test 1024 line 172 toEtm8.scale: 1.172689\n    test 1025 line 172 toEtm8.lat: 17.095495\n    test 1026 line 172 toEtm8.lon: 33.059128\n    test 1027 line 173 toEtm8.easting: 8102565.885587\n    test 1028 line 173 toEtm8.northing: 5167396.617580\n    test 1029 line 173 toEtm8.gamma: 42.324886\n    test 1030 line 173 toEtm8.scale: 1.921927\n    test 1031 line 173 toEtm8.lat: 22.142861\n    test 1032 line 173 toEtm8.lon: 67.200684\n    test 1033 line 174 toEtm8.easting: 8181271.353564\n    test 1034 line 174 toEtm8.northing: 4425436.547185\n    test 1035 line 174 toEtm8.gamma: 35.900845\n    test 1036 line 174 toEtm8.scale: 1.945017\n    test 1037 line 174 toEtm8.lat: 19.222623\n    test 1038 line 174 toEtm8.lon: 65.180785\n    test 1039 line 175 toEtm8.easting: 767067.394003\n    test 1040 line 175 toEtm8.northing: 3701745.857296\n    test 1041 line 175 toEtm8.gamma: 4.519201\n    test 1042 line 175 toEtm8.scale: 1.006863\n    test 1043 line 175 toEtm8.lat: 33.182474\n    test 1044 line 175 toEtm8.lon: 8.216952\n    test 1045 line 176 toEtm8.easting: 6688114.168572\n    test 1046 line 176 toEtm8.northing: 2052857.299639\n    test 1047 line 176 toEtm8.gamma: 14.766191\n    test 1048 line 176 toEtm8.scale: 1.607200\n    test 1049 line 176 toEtm8.lat: 11.417963\n    test 1050 line 176 toEtm8.lon: 52.808691\n    test 1051 line 177 toEtm8.easting: 5608408.773761\n    test 1052 line 177 toEtm8.northing: 3859055.659110\n    test 1053 line 177 toEtm8.gamma: 26.244151\n    test 1054 line 177 toEtm8.scale: 1.413463\n    test 1055 line 177 toEtm8.lat: 23.836688\n    test 1056 line 177 toEtm8.lon: 50.500180\n    test 1057 line 178 toEtm8.easting: 3836942.765275\n    test 1058 line 178 toEtm8.northing: 6415467.634326\n    test 1059 line 178 toEtm8.gamma: 40.575885\n    test 1060 line 178 toEtm8.scale: 1.185615\n    test 1061 line 178 toEtm8.lat: 45.550020\n    test 1062 line 178 toEtm8.lon: 50.148036\n    test 1063 line 179 toEtm8.easting: 1298730.366025\n    test 1064 line 179 toEtm8.northing: 6021453.000792\n    test 1065 line 179 toEtm8.gamma: 15.613320\n    test 1066 line 179 toEtm8.scale: 1.020367\n    test 1067 line 179 toEtm8.lat: 52.746079\n    test 1068 line 179 toEtm8.lon: 19.343926\n    test 1069 line 180 toEtm8.easting: 416934.289208\n    test 1070 line 180 toEtm8.northing: 7295683.451705\n    test 1071 line 180 toEtm8.gamma: 8.238232\n    test 1072 line 180 toEtm8.scale: 1.001729\n    test 1073 line 180 toEtm8.lat: 65.513348\n    test 1074 line 180 toEtm8.lon: 9.039529\n    test 1075 line 181 toEtm8.easting: 4336076.850889\n    test 1076 line 181 toEtm8.northing: 7617975.722779\n    test 1077 line 181 toEtm8.gamma: 56.537088\n    test 1078 line 181 toEtm8.scale: 1.238582\n    test 1079 line 181 toEtm8.lat: 48.709795\n    test 1080 line 181 toEtm8.lon: 63.554005\n    test 1081 line 182 toEtm8.easting: 168047.336980\n    test 1082 line 182 toEtm8.northing: 2185000.046530\n    test 1083 line 182 toEtm8.gamma: 0.542187\n    test 1084 line 182 toEtm8.scale: 0.999949\n    test 1085 line 182 toEtm8.lat: 19.753509\n    test 1086 line 182 toEtm8.lon: 1.603846\n    test 1087 line 183 toEtm8.easting: 8276281.328790\n    test 1088 line 183 toEtm8.northing: 263444.350545\n    test 1089 line 183 toEtm8.gamma: 2.071435\n    test 1090 line 183 toEtm8.scale: 1.980314\n    test 1091 line 183 toEtm8.lat: 1.202816\n    test 1092 line 183 toEtm8.lon: 59.377276\n    test 1093 line 184 toEtm8.easting: 4772573.810710\n    test 1094 line 184 toEtm8.northing: 6765710.336002\n    test 1095 line 184 toEtm8.gamma: 48.857561\n    test 1096 line 184 toEtm8.scale: 1.291911\n    test 1097 line 184 toEtm8.lat: 42.564975\n    test 1098 line 184 toEtm8.lon: 59.356947\n    test 1099 line 185 toEtm8.easting: 5427755.074639\n    test 1100 line 185 toEtm8.northing: 1556055.820924\n    test 1101 line 185 toEtm8.gamma: 9.862178\n    test 1102 line 185 toEtm8.scale: 1.387394\n    test 1103 line 185 toEtm8.lat: 10.090572\n    test 1104 line 185 toEtm8.lon: 44.604132\n    test 1105 line 186 toEtm8.easting: 11588458.616041\n    test 1106 line 186 toEtm8.northing: 5707993.922613\n    test 1107 line 186 toEtm8.gamma: 50.784827\n    test 1108 line 186 toEtm8.scale: 3.149567\n    test 1109 line 186 toEtm8.lat: 14.133028\n    test 1110 line 186 toEtm8.lon: 78.097533\n    test 1111 line 187 toEtm8.easting: 7152433.802688\n    test 1112 line 187 toEtm8.northing: 761390.695844\n    test 1113 line 187 toEtm8.gamma: 5.607350\n    test 1114 line 187 toEtm8.scale: 1.705261\n    test 1115 line 187 toEtm8.lat: 4.031123\n    test 1116 line 187 toEtm8.lon: 54.048782\n    test 1117 line 188 toEtm8.easting: 3105651.390901\n    test 1118 line 188 toEtm8.northing: 9426026.169064\n    test 1119 line 188 toEtm8.gamma: 78.750206\n    test 1120 line 188 toEtm8.scale: 1.119737\n    test 1121 line 188 toEtm8.lat: 62.746603\n    test 1122 line 188 toEtm8.lon: 79.968641\n    test 1123 line 189 toEtm8.easting: 2959009.639022\n    test 1124 line 189 toEtm8.northing: 8339242.269282\n    test 1125 line 189 toEtm8.gamma: 58.460865\n    test 1126 line 189 toEtm8.scale: 1.108554\n    test 1127 line 189 toEtm8.lat: 60.626429\n    test 1128 line 189 toEtm8.lon: 61.851551\n    test 1129 line 190 toEtm8.easting: 8640472.267145\n    test 1130 line 190 toEtm8.northing: 6230320.417931\n    test 1131 line 190 toEtm8.gamma: 52.816810\n    test 1132 line 190 toEtm8.scale: 2.062973\n    test 1133 line 190 toEtm8.lat: 23.600626\n    test 1134 line 190 toEtm8.lon: 72.811634\n    test 1135 line 191 toEtm8.easting: 811352.108932\n    test 1136 line 191 toEtm8.northing: 9816129.813481\n    test 1137 line 191 toEtm8.gamma: 77.299184\n    test 1138 line 191 toEtm8.scale: 1.007651\n    test 1139 line 191 toEtm8.lat: 82.572236\n    test 1140 line 191 toEtm8.lon: 77.402323\n    test 1141 line 192 toEtm8.easting: 6521874.973458\n    test 1142 line 192 toEtm8.northing: 1053612.479744\n    test 1143 line 192 toEtm8.gamma: 7.407328\n    test 1144 line 192 toEtm8.scale: 1.575529\n    test 1145 line 192 toEtm8.lat: 6.030051\n    test 1146 line 192 toEtm8.lon: 50.783505\n    test 1147 line 193 toEtm8.easting: 3477983.997875\n    test 1148 line 193 toEtm8.northing: 5651613.325947\n    test 1149 line 193 toEtm8.gamma: 31.530673\n    test 1150 line 193 toEtm8.scale: 1.151875\n    test 1151 line 193 toEtm8.lat: 42.411523\n    test 1152 line 193 toEtm8.lon: 42.258009\n    test 1153 line 194 toEtm8.easting: 629892.822243\n    test 1154 line 194 toEtm8.northing: 3283914.910451\n    test 1155 line 194 toEtm8.gamma: 3.210482\n    test 1156 line 194 toEtm8.scale: 1.004499\n    test 1157 line 194 toEtm8.lat: 29.526120\n    test 1158 line 194 toEtm8.lon: 6.493069\n    test 1159 line 195 toEtm8.easting: 3381879.687227\n    test 1160 line 195 toEtm8.northing: 5103629.325665\n    test 1161 line 195 toEtm8.gamma: 26.748108\n    test 1162 line 195 toEtm8.scale: 1.143559\n    test 1163 line 195 toEtm8.lat: 39.021853\n    test 1164 line 195 toEtm8.lon: 38.641779\n    test 1165 line 196 toEtm8.easting: 2815986.534177\n    test 1166 line 196 toEtm8.northing: 9387029.120718\n    test 1167 line 196 toEtm8.gamma: 76.967262\n    test 1168 line 196 toEtm8.scale: 1.098032\n    test 1169 line 196 toEtm8.lat: 64.971850\n    test 1170 line 196 toEtm8.lon: 78.151893\n    test 1171 line 197 toEtm8.easting: 3398195.889603\n    test 1172 line 197 toEtm8.northing: 9138936.031490\n    test 1173 line 197 toEtm8.gamma: 74.477499\n    test 1174 line 197 toEtm8.scale: 1.144009\n    test 1175 line 197 toEtm8.lat: 59.961819\n    test 1176 line 197 toEtm8.lon: 76.473422\n    test 1177 line 198 toEtm8.easting: 2421734.754637\n    test 1178 line 198 toEtm8.northing: 5002372.094991\n    test 1179 line 198 toEtm8.gamma: 20.017082\n    test 1180 line 198 toEtm8.scale: 1.072592\n    test 1181 line 198 toEtm8.lat: 41.374040\n    test 1182 line 198 toEtm8.lon: 28.848343\n    test 1183 line 199 toEtm8.easting: 2360869.895525\n    test 1184 line 199 toEtm8.northing: 9553298.449536\n    test 1185 line 199 toEtm8.gamma: 78.848205\n    test 1186 line 199 toEtm8.scale: 1.068453\n    test 1187 line 199 toEtm8.lat: 68.946087\n    test 1188 line 199 toEtm8.lon: 79.574523\n    test 1189 line 200 toEtm8.easting: 1196539.972194\n    test 1190 line 200 toEtm8.northing: 9861920.836230\n    test 1191 line 200 toEtm8.gamma: 83.437668\n    test 1192 line 200 toEtm8.scale: 1.017137\n    test 1193 line 200 toEtm8.lat: 79.275096\n    test 1194 line 200 toEtm8.lon: 83.551272\n    test 1195 line 201 toEtm8.easting: 1327758.704795\n    test 1196 line 201 toEtm8.northing: 2375509.241683\n    test 1197 line 201 toEtm8.gamma: 4.617572\n    test 1198 line 201 toEtm8.scale: 1.021465\n    test 1199 line 201 toEtm8.lat: 21.000252\n    test 1200 line 201 toEtm8.lon: 12.697444\n    test 1201 line 202 toEtm8.easting: 2070860.327644\n    test 1202 line 202 toEtm8.northing: 8604500.719581\n    test 1203 line 202 toEtm8.gamma: 54.722761\n    test 1204 line 202 toEtm8.scale: 1.052469\n    test 1205 line 202 toEtm8.lat: 68.015227\n    test 1206 line 202 toEtm8.lon: 56.732419\n    test 1207 line 203 toEtm8.easting: 6564776.654864\n    test 1208 line 203 toEtm8.northing: 8171207.177379\n    test 1209 line 203 toEtm8.gamma: 69.237523\n    test 1210 line 203 toEtm8.scale: 1.573894\n    test 1211 line 203 toEtm8.lat: 37.423675\n    test 1212 line 203 toEtm8.lon: 76.947359\n    test 1213 line 204 toEtm8.easting: 592653.553821\n    test 1214 line 204 toEtm8.northing: 6125529.810052\n    test 1215 line 204 toEtm8.gamma: 7.600785\n    test 1216 line 204 toEtm8.scale: 1.003912\n    test 1217 line 204 toEtm8.lat: 54.922707\n    test 1218 line 204 toEtm8.lon: 9.260818\n    test 1219 line 205 toEtm8.easting: 693459.671821\n    test 1220 line 205 toEtm8.northing: 6943779.991032\n    test 1221 line 205 toEtm8.gamma: 11.787587\n    test 1222 line 205 toEtm8.scale: 1.005496\n    test 1223 line 205 toEtm8.lat: 61.982810\n    test 1224 line 205 toEtm8.lon: 13.299659\n    test 1225 line 206 toEtm8.easting: 1838956.187625\n    test 1226 line 206 toEtm8.northing: 3511959.612381\n    test 1227 line 206 toEtm8.gamma: 9.844313\n    test 1228 line 206 toEtm8.scale: 1.041603\n    test 1229 line 206 toEtm8.lat: 30.324214\n    test 1230 line 206 toEtm8.lon: 18.959769\n    test 1231 line 207 toEtm8.easting: 4460690.884597\n    test 1232 line 207 toEtm8.northing: 5541873.235403\n    test 1233 line 207 toEtm8.gamma: 35.768613\n    test 1234 line 207 toEtm8.scale: 1.254179\n    test 1235 line 207 toEtm8.lat: 37.629667\n    test 1236 line 207 toEtm8.lon: 49.649131\n    test 1237 line 208 toEtm8.easting: 2311168.998941\n    test 1238 line 208 toEtm8.northing: 9480561.869119\n    test 1239 line 208 toEtm8.gamma: 76.828257\n    test 1240 line 208 toEtm8.scale: 1.065556\n    test 1241 line 208 toEtm8.lat: 69.225574\n    test 1242 line 208 toEtm8.lon: 77.656135\n    test 1243 line 209 toEtm8.easting: 4111775.114451\n    test 1244 line 209 toEtm8.northing: 6509014.348792\n    test 1245 line 209 toEtm8.gamma: 43.052130\n    test 1246 line 209 toEtm8.scale: 1.214125\n    test 1247 line 209 toEtm8.lat: 44.698478\n    test 1248 line 209 toEtm8.lon: 52.979304\n    test 1249 line 210 toEtm8.easting: 75358.261962\n    test 1250 line 210 toEtm8.northing: 7711258.662251\n    test 1251 line 210 toEtm8.gamma: 1.806297\n    test 1252 line 210 toEtm8.scale: 0.999669\n    test 1253 line 210 toEtm8.lat: 69.499594\n    test 1254 line 210 toEtm8.lon: 1.928336\n    test 1255 line 211 toEtm8.easting: 8781885.229116\n    test 1256 line 211 toEtm8.northing: 9184776.452211\n    test 1257 line 211 toEtm8.gamma: 81.795539\n    test 1258 line 211 toEtm8.scale: 2.094908\n    test 1259 line 211 toEtm8.lat: 27.981364\n    test 1260 line 211 toEtm8.lon: 86.061113\n    test 1261 line 212 toEtm8.easting: 954378.415174\n    test 1262 line 212 toEtm8.northing: 7449110.669807\n    test 1263 line 212 toEtm8.gamma: 19.380657\n    test 1264 line 212 toEtm8.scale: 1.010768\n    test 1265 line 212 toEtm8.lat: 65.699839\n    test 1266 line 212 toEtm8.lon: 21.104725\n    test 1267 line 213 toEtm8.easting: 720971.793706\n    test 1268 line 213 toEtm8.northing: 5265195.121555\n    test 1269 line 213 toEtm8.gamma: 7.002995\n    test 1270 line 213 toEtm8.scale: 1.005995\n    test 1271 line 213 toEtm8.lat: 47.143648\n    test 1272 line 213 toEtm8.lon: 9.512189\n    test 1273 line 214 toEtm8.easting: 561561.493937\n    test 1274 line 214 toEtm8.northing: 989910.236221\n    test 1275 line 214 toEtm8.gamma: 0.793118\n    test 1276 line 214 toEtm8.scale: 1.003505\n    test 1277 line 214 toEtm8.lat: 8.920167\n    test 1278 line 214 toEtm8.lon: 5.101513\n    test 1279 line 215 toEtm8.easting: 3446829.634468\n    test 1280 line 215 toEtm8.northing: 9232868.155664\n    test 1281 line 215 toEtm8.gamma: 76.279075\n    test 1282 line 215 toEtm8.scale: 1.148263\n    test 1283 line 215 toEtm8.lat: 59.778971\n    test 1284 line 215 toEtm8.lon: 78.080322\n    test 1285 line 216 toEtm8.easting: 4048307.545909\n    test 1286 line 216 toEtm8.northing: 9800416.422998\n    test 1287 line 216 toEtm8.gamma: 86.843918\n    test 1288 line 216 toEtm8.scale: 1.206495\n    test 1289 line 216 toEtm8.lat: 55.865310\n    test 1290 line 216 toEtm8.lon: 87.384288\n    test 1291 line 217 toEtm8.easting: 8973188.480293\n    test 1292 line 217 toEtm8.northing: 7042230.087021\n    test 1293 line 217 toEtm8.gamma: 60.872456\n    test 1294 line 217 toEtm8.scale: 2.156098\n    test 1295 line 217 toEtm8.lat: 24.310973\n    test 1296 line 217 toEtm8.lon: 76.823777\n    test 1297 line 218 toEtm8.easting: 126314.191618\n    test 1298 line 218 toEtm8.northing: 396006.687921\n    test 1299 line 218 toEtm8.gamma: 0.071065\n    test 1300 line 218 toEtm8.scale: 0.999798\n    test 1301 line 218 toEtm8.lat: 3.582041\n    test 1302 line 218 toEtm8.lon: 1.137286\n    test 1303 line 219 toEtm8.easting: 5247652.345647\n    test 1304 line 219 toEtm8.northing: 8670513.359752\n    test 1305 line 219 toEtm8.gamma: 72.700498\n    test 1306 line 219 toEtm8.scale: 1.355272\n    test 1307 line 219 toEtm8.lat: 46.124233\n    test 1308 line 219 toEtm8.lon: 77.313118\n    test 1309 line 220 toEtm8.easting: 8103656.838119\n    test 1310 line 220 toEtm8.northing: 9469794.014737\n    test 1311 line 220 toEtm8.gamma: 84.490673\n    test 1312 line 220 toEtm8.scale: 1.912164\n    test 1313 line 220 toEtm8.lat: 31.171391\n    test 1314 line 220 toEtm8.lon: 87.104504\n    test 1315 line 221 toEtm8.easting: 6300112.758236\n    test 1316 line 221 toEtm8.northing: 93835.917364\n    test 1317 line 221 toEtm8.gamma: 0.644805\n    test 1318 line 221 toEtm8.scale: 1.534073\n    test 1319 line 221 toEtm8.lat: 0.553171\n    test 1320 line 221 toEtm8.lon: 49.117104\n    test 1321 line 222 toEtm8.easting: 3894813.593782\n    test 1322 line 222 toEtm8.northing: 4833832.341027\n    test 1323 line 222 toEtm8.gamma: 27.453298\n    test 1324 line 222 toEtm8.scale: 1.192135\n    test 1325 line 222 toEtm8.lat: 35.361587\n    test 1326 line 222 toEtm8.lon: 41.860599\n    test 1327 line 223 toEtm8.easting: 402511.346712\n    test 1328 line 223 toEtm8.northing: 3520621.561911\n    test 1329 line 223 toEtm8.gamma: 2.238474\n    test 1330 line 223 toEtm8.scale: 1.001599\n    test 1331 line 223 toEtm8.lat: 31.750314\n    test 1332 line 223 toEtm8.lon: 4.248167\n    test 1333 line 224 toEtm8.easting: 5357378.503148\n    test 1334 line 224 toEtm8.northing: 2772997.602234\n    test 1335 line 224 toEtm8.gamma: 17.823560\n    test 1336 line 224 toEtm8.scale: 1.376031\n    test 1337 line 224 toEtm8.lat: 17.924336\n    test 1338 line 224 toEtm8.lon: 46.096402\n    test 1339 line 225 toEtm8.easting: 2807553.985866\n    test 1340 line 225 toEtm8.northing: 8177847.980275\n    test 1341 line 225 toEtm8.gamma: 54.680045\n    test 1342 line 225 toEtm8.scale: 1.097531\n    test 1343 line 225 toEtm8.lat: 60.931488\n    test 1344 line 225 toEtm8.lon: 58.221214\n    test 1345 line 226 toEtm8.easting: 18289045.166501\n    test 1346 line 226 toEtm8.northing: 7792942.339604\n    test 1347 line 226 toEtm8.gamma: 73.216494\n    test 1348 line 226 toEtm8.scale: 8.098009\n    test 1349 line 226 toEtm8.lat: 5.358151\n    test 1350 line 226 toEtm8.lon: 87.556213\n    test 1351 line 227 toEtm8.easting: 8376822.459538\n    test 1352 line 227 toEtm8.northing: 8128174.623878\n    test 1353 line 227 toEtm8.gamma: 70.920117\n    test 1354 line 227 toEtm8.scale: 1.984873\n    test 1355 line 227 toEtm8.lat: 28.616673\n    test 1356 line 227 toEtm8.lon: 80.452426\n    test 1357 line 228 toEtm8.easting: 11898068.353272\n    test 1358 line 228 toEtm8.northing: 4772439.493697\n    test 1359 line 228 toEtm8.gamma: 42.613968\n    test 1360 line 228 toEtm8.scale: 3.314412\n    test 1361 line 228 toEtm8.lat: 11.709763\n    test 1362 line 228 toEtm8.lon: 76.760295\n    test 1363 line 229 toEtm8.easting: 10550946.939050\n    test 1364 line 229 toEtm8.northing: 3851968.815295\n    test 1365 line 229 toEtm8.gamma: 33.383025\n    test 1366 line 229 toEtm8.scale: 2.724754\n    test 1367 line 229 toEtm8.lat: 12.009498\n    test 1368 line 229 toEtm8.lon: 71.782351\n    test 1369 line 230 toEtm8.easting: 6828299.123607\n    test 1370 line 230 toEtm8.northing: 9394803.227463\n    test 1371 line 230 toEtm8.gamma: 83.181386\n    test 1372 line 230 toEtm8.scale: 1.624359\n    test 1373 line 230 toEtm8.lat: 37.629784\n    test 1374 line 230 toEtm8.lon: 85.795687\n    test 1375 line 231 toEtm8.easting: 11162550.334022\n    test 1376 line 231 toEtm8.northing: 2640267.279593\n    test 1377 line 231 toEtm8.gamma: 23.145404\n    test 1378 line 231 toEtm8.scale: 2.998408\n    test 1379 line 231 toEtm8.lat: 7.721128\n    test 1380 line 231 toEtm8.lon: 71.662731\n    test 1381 line 232 toEtm8.easting: 4411584.447941\n    test 1382 line 232 toEtm8.northing: 4956173.694407\n    test 1383 line 232 toEtm8.gamma: 30.713919\n    test 1384 line 232 toEtm8.scale: 1.248736\n    test 1385 line 232 toEtm8.lat: 34.295026\n    test 1386 line 232 toEtm8.lon: 46.442191\n    test 1387 line 233 toEtm8.easting: 672108.897905\n    test 1388 line 233 toEtm8.northing: 4751554.657054\n    test 1389 line 233 toEtm8.gamma: 5.569178\n    test 1390 line 233 toEtm8.scale: 1.005162\n    test 1391 line 233 toEtm8.lat: 42.622496\n    test 1392 line 233 toEtm8.lon: 8.193605\n    test 1393 line 234 toEtm8.easting: 5022964.290579\n    test 1394 line 234 toEtm8.northing: 6860418.199502\n    test 1395 line 234 toEtm8.gamma: 50.862230\n    test 1396 line 234 toEtm8.scale: 1.324925\n    test 1397 line 234 toEtm8.lat: 41.667780\n    test 1398 line 234 toEtm8.lon: 61.518288\n    test 1399 line 235 toEtm8.easting: 1669655.595207\n    test 1400 line 235 toEtm8.northing: 4152086.537021\n    test 1401 line 235 toEtm8.gamma: 11.110237\n    test 1402 line 235 toEtm8.scale: 1.034138\n    test 1403 line 235 toEtm8.lat: 36.060369\n    test 1404 line 235 toEtm8.lon: 18.444112\n    test 1405 line 236 toEtm8.easting: 6055876.729655\n    test 1406 line 236 toEtm8.northing: 4896837.552619\n    test 1407 line 236 toEtm8.gamma: 35.799747\n    test 1408 line 236 toEtm8.scale: 1.485967\n    test 1409 line 236 toEtm8.lat: 27.948091\n    test 1410 line 236 toEtm8.lon: 56.816429\n    test 1411 line 237 toEtm8.easting: 1209214.164379\n    test 1412 line 237 toEtm8.northing: 7266409.859178\n    test 1413 line 237 toEtm8.gamma: 22.319633\n    test 1414 line 237 toEtm8.scale: 1.017554\n    test 1415 line 237 toEtm8.lat: 63.386030\n    test 1416 line 237 toEtm8.lon: 24.662716\n    test 1417 line 238 toEtm8.easting: 5154564.559584\n    test 1418 line 238 toEtm8.northing: 698118.349975\n    test 1419 line 238 toEtm8.gamma: 4.242360\n    test 1420 line 238 toEtm8.scale: 1.347481\n    test 1421 line 238 toEtm8.lat: 4.680922\n    test 1422 line 238 toEtm8.lon: 42.114426\n    test 1423 line 239 toEtm8.easting: 2695149.806543\n    test 1424 line 239 toEtm8.northing: 8208197.765605\n    test 1425 line 239 toEtm8.gamma: 54.178615\n    test 1426 line 239 toEtm8.scale: 1.089730\n    test 1427 line 239 toEtm8.lat: 61.826625\n    test 1428 line 239 toEtm8.lon: 57.525096\n    test 1429 line 240 toEtm8.easting: 3394792.327820\n    test 1430 line 240 toEtm8.northing: 3217583.415552\n    test 1431 line 240 toEtm8.gamma: 15.165863\n    test 1432 line 240 toEtm8.scale: 1.145285\n    test 1433 line 240 toEtm8.lat: 25.104353\n    test 1434 line 240 toEtm8.lon: 32.528660\n    test 1435 line 241 toEtm8.easting: 1429160.966985\n    test 1436 line 241 toEtm8.northing: 8212685.362032\n    test 1437 line 241 toEtm8.gamma: 37.484904\n    test 1438 line 241 toEtm8.scale: 1.024676\n    test 1439 line 241 toEtm8.lat: 69.678351\n    test 1440 line 241 toEtm8.lon: 39.275513\n    test 1441 line 242 toEtm8.easting: 8343387.998065\n    test 1442 line 242 toEtm8.northing: 8885196.954578\n    test 1443 line 242 toEtm8.gamma: 78.561937\n    test 1444 line 242 toEtm8.scale: 1.974733\n    test 1445 line 242 toEtm8.lat: 29.671384\n    test 1446 line 242 toEtm8.lon: 84.196595\n    test 1447 line 243 toEtm8.easting: 1990722.928606\n    test 1448 line 243 toEtm8.northing: 7569202.065162\n    test 1449 line 243 toEtm8.gamma: 37.075276\n    test 1450 line 243 toEtm8.scale: 1.048486\n    test 1451 line 243 toEtm8.lat: 62.300208\n    test 1452 line 243 toEtm8.lon: 40.474051\n    test 1453 line 244 toEtm8.easting: 1554980.099559\n    test 1454 line 244 toEtm8.northing: 1449423.919586\n    test 1455 line 244 toEtm8.gamma: 3.188328\n    test 1456 line 244 toEtm8.scale: 1.029664\n    test 1457 line 244 toEtm8.lat: 12.721776\n    test 1458 line 244 toEtm8.lon: 14.190003\n    test 1459 line 245 toEtm8.easting: 785205.450196\n    test 1460 line 245 toEtm8.northing: 5575158.423096\n    test 1461 line 245 toEtm8.gamma: 8.388417\n    test 1462 line 245 toEtm8.scale: 1.007181\n    test 1463 line 245 toEtm8.lat: 49.811296\n    test 1464 line 245 toEtm8.lon: 10.925011\n    test 1465 line 246 toEtm8.easting: 3310405.988313\n    test 1466 line 246 toEtm8.northing: 5955022.233881\n    test 1467 line 246 toEtm8.gamma: 33.007587\n    test 1468 line 246 toEtm8.scale: 1.137141\n    test 1469 line 246 toEtm8.lat: 45.132680\n    test 1470 line 246 toEtm8.lon: 42.478624\n    test 1471 line 247 toEtm8.easting: 4733460.960666\n    test 1472 line 247 toEtm8.northing: 129034.889816\n    test 1473 line 247 toEtm8.gamma: 0.737551\n    test 1474 line 247 toEtm8.scale: 1.290439\n    test 1475 line 247 toEtm8.lat: 0.904279\n    test 1476 line 247 toEtm8.lon: 39.078412\n    test 1477 line 248 toEtm8.easting: 3322708.343909\n    test 1478 line 248 toEtm8.northing: 3864738.078742\n    test 1479 line 248 toEtm8.gamma: 18.472566\n    test 1480 line 248 toEtm8.scale: 1.138838\n    test 1481 line 248 toEtm8.lat: 30.163605\n    test 1482 line 248 toEtm8.lon: 33.577996\n    test 1483 line 249 toEtm8.easting: 8672864.417204\n    test 1484 line 249 toEtm8.northing: 8333465.983444\n    test 1485 line 249 toEtm8.gamma: 73.206273\n    test 1486 line 249 toEtm8.scale: 2.065441\n    test 1487 line 249 toEtm8.lat: 27.643244\n    test 1488 line 249 toEtm8.lon: 81.892859\n    test 1489 line 250 toEtm8.easting: 11126818.231196\n    test 1490 line 250 toEtm8.northing: 7618712.174991\n    test 1491 line 250 toEtm8.gamma: 67.887173\n    test 1492 line 250 toEtm8.scale: 2.922417\n    test 1493 line 250 toEtm8.lat: 18.201208\n    test 1494 line 250 toEtm8.lon: 82.434618\n    test 1495 line 251 toEtm8.easting: 8650100.981797\n    test 1496 line 251 toEtm8.northing: 9975084.168997\n    test 1497 line 251 toEtm8.gamma: 89.767446\n    test 1498 line 251 toEtm8.scale: 2.057289\n    test 1499 line 251 toEtm8.lat: 28.804576\n    test 1500 line 251 toEtm8.lon: 89.886072\n    test 1501 line 252 toEtm8.easting: 2212701.180192\n    test 1502 line 252 toEtm8.northing: 650348.100229\n    test 1503 line 252 toEtm8.gamma: 1.970441\n    test 1504 line 252 toEtm8.scale: 1.060830\n    test 1505 line 252 toEtm8.lat: 5.542998\n    test 1506 line 252 toEtm8.lon: 19.589578\n    test 1507 line 253 toEtm8.easting: 6890222.326618\n    test 1508 line 253 toEtm8.northing: 7506813.499547\n    test 1509 line 253 toEtm8.gamma: 62.684825\n    test 1510 line 253 toEtm8.scale: 1.638488\n    test 1511 line 253 toEtm8.lat: 34.237147\n    test 1512 line 253 toEtm8.lon: 73.678164\n    test 1513 line 254 toEtm8.easting: 6692260.067325\n    test 1514 line 254 toEtm8.northing: 4244174.008110\n    test 1515 line 254 toEtm8.gamma: 31.812920\n    test 1516 line 254 toEtm8.scale: 1.604640\n    test 1517 line 254 toEtm8.lat: 22.704949\n    test 1518 line 254 toEtm8.lon: 57.877010\n    test 1519 line 255 toEtm8.easting: 1225564.137190\n    test 1520 line 255 toEtm8.northing: 4778923.924144\n    test 1521 line 255 toEtm8.gamma: 10.083419\n    test 1522 line 255 toEtm8.scale: 1.018134\n    test 1523 line 255 toEtm8.lat: 42.192424\n    test 1524 line 255 toEtm8.lon: 14.828196\n    test 1525 line 256 toEtm8.easting: 12341116.154950\n    test 1526 line 256 toEtm8.northing: 5081855.521966\n    test 1527 line 256 toEtm8.gamma: 45.712546\n    test 1528 line 256 toEtm8.scale: 3.535170\n    test 1529 line 256 toEtm8.lat: 11.481151\n    test 1530 line 256 toEtm8.lon: 78.189236\n    test 1531 line 257 toEtm8.easting: 6673845.021771\n    test 1532 line 257 toEtm8.northing: 1177587.190565\n    test 1533 line 257 toEtm8.gamma: 8.389141\n    test 1534 line 257 toEtm8.scale: 1.605171\n    test 1535 line 257 toEtm8.lat: 6.609626\n    test 1536 line 257 toEtm8.lon: 51.735783\n    test 1537 line 258 toEtm8.easting: 6966354.690417\n    test 1538 line 258 toEtm8.northing: 3641802.005093\n    test 1539 line 258 toEtm8.gamma: 27.409636\n    test 1540 line 258 toEtm8.scale: 1.661469\n    test 1541 line 258 toEtm8.lat: 19.059369\n    test 1542 line 258 toEtm8.lon: 57.526439\n    test 1543 max forward error: 2.235174e-08\n    test 1544 max reverse error: 8.526513e-14\n    test 1545 Etm.scale0: 0.9996\n    test 1546 Etm.datum: WGS84\n    test 1547 Etm.datum.ellipsoid.KsOrder: 8\n    test 1548 WGS84.KsOrder: 8\n\n    all 1548 testEtmTMcoords.py tests passed, 1 skipped (pygeodesy 26.3.26 Python 3.14.3 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 1.547 sec\nrunning /Library/Framewo....n3.14 -W default ~/PyGeodesy/test/testExactTMcoords.py\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.Ellipsoids from .ellipsoids by testTMcoords.py line 14\n# lazily imported pygeodesy.EPS from .constants by testTMcoords.py line 14\n# lazily imported pygeodesy.RangeError from .errors by testTMcoords.py line 14\n# lazily imported pygeodesy.etm by testExactTMcoords.py line 14\n# lazily imported pygeodesy.ExactTransverseMercator from .etm by testExactTMcoords.py line 14\n# lazily imported pygeodesy.LatLon_ from .points by testExactTMcoords.py line 14\n\n    testing testExactTMcoords.py 24.03.22 (module pygeodesy.etm 25.09.15) isLazy=3\n# lazily imported pygeodesy.elliptic by etm.py line 354\n    test 1 line 1 _ExactTM.easting: 1548706.791619\n    test 2 line 1 _ExactTM.northing: 8451449.198772\n    test 3 line 1 _ExactTM.gamma: 43.922790\n    test 4 line 1 _ExactTM.scale: 1.029060\n    test 5 line 1 _ExactTM.lat: 70.579277\n    test 6 line 1 _ExactTM.lon: 45.599420\n    test 7 line 2 _ExactTM.easting: 2624150.740929\n    test 8 line 2 _ExactTM.northing: 1204434.041605\n    test 9 line 2 _ExactTM.gamma: 4.292619\n    test 10 line 2 _ExactTM.scale: 1.086051\n    test 11 line 2 _ExactTM.lat: 10.018894\n    test 12 line 2 _ExactTM.lon: 23.313324\n    test 13 line 3 _ExactTM.easting: 9855841.232935\n    test 14 line 3 _ExactTM.northing: 6145496.115155\n    test 15 line 3 _ExactTM.gamma: 53.348315\n    test 16 line 3 _ExactTM.scale: 2.445098\n    test 17 line 3 _ExactTM.lat: 19.479896\n    test 18 line 3 _ExactTM.lon: 75.662049\n    test 19 line 4 _ExactTM.easting: 3206390.691996\n    test 20 line 4 _ExactTM.northing: 2650745.400406\n    test 21 line 4 _ExactTM.gamma: 11.666950\n    test 22 line 4 _ExactTM.scale: 1.129359\n    test 23 line 4 _ExactTM.lat: 21.072465\n    test 24 line 4 _ExactTM.lon: 29.828684\n    test 25 line 5 _ExactTM.easting: 4328154.083501\n    test 26 line 5 _ExactTM.northing: 749647.623690\n    test 27 line 5 _ExactTM.gamma: 4.024317\n    test 28 line 5 _ExactTM.scale: 1.240829\n    test 29 line 5 _ExactTM.lat: 5.458957\n    test 30 line 5 _ExactTM.lon: 36.385237\n    test 31 line 6 _ExactTM.easting: 847598.266514\n    test 32 line 6 _ExactTM.northing: 7947180.962440\n    test 33 line 6 _ExactTM.gamma: 21.639091\n    test 34 line 6 _ExactTM.scale: 1.008399\n    test 35 line 6 _ExactTM.lat: 70.175454\n    test 36 line 6 _ExactTM.lon: 22.865350\n    test 37 line 7 _ExactTM.easting: 2727657.337974\n    test 38 line 7 _ExactTM.northing: 8283916.696410\n    test 39 line 7 _ExactTM.gamma: 55.690909\n    test 40 line 7 _ExactTM.scale: 1.091942\n    test 41 line 7 _ExactTM.lat: 61.965605\n    test 42 line 7 _ExactTM.lon: 58.931371\n    test 43 line 8 _ExactTM.easting: 2331001.751890\n    test 44 line 8 _ExactTM.northing: 1313608.224751\n    test 45 line 8 _ExactTM.gamma: 4.214690\n    test 46 line 8 _ExactTM.scale: 1.067599\n    test 47 line 8 _ExactTM.lat: 11.116050\n    test 48 line 8 _ExactTM.lon: 20.901069\n    test 49 line 9 _ExactTM.easting: 6035557.239480\n    test 50 line 9 _ExactTM.northing: 5791770.791879\n    test 51 line 9 _ExactTM.gamma: 43.698170\n    test 52 line 9 _ExactTM.scale: 1.481260\n    test 53 line 9 _ExactTM.lat: 32.210543\n    test 54 line 9 _ExactTM.lon: 60.705849\n    test 55 line 10 _ExactTM.easting: 1064553.125852\n    test 56 line 10 _ExactTM.northing: 9417273.737208\n    test 57 line 10 _ExactTM.gamma: 61.100380\n    test 58 line 10 _ExactTM.scale: 1.013475\n    test 59 line 10 _ExactTM.lat: 79.187451\n    test 60 line 10 _ExactTM.lon: 61.532382\n    test 61 line 11 _ExactTM.easting: 1400137.116164\n    test 62 line 11 _ExactTM.northing: 9616907.017686\n    test 63 line 11 _ExactTM.gamma: 74.527087\n    test 64 line 11 _ExactTM.scale: 1.023640\n    test 65 line 11 _ExactTM.lat: 77.103759\n    test 66 line 11 _ExactTM.lon: 74.899105\n    test 67 line 12 _ExactTM.easting: 9860691.016626\n    test 68 line 12 _ExactTM.northing: 7433039.143328\n    test 69 line 12 _ExactTM.gamma: 65.357693\n    test 70 line 12 _ExactTM.scale: 2.438973\n    test 71 line 12 _ExactTM.lat: 21.889514\n    test 72 line 12 _ExactTM.lon: 80.019886\n    test 73 line 13 _ExactTM.easting: 8076501.833695\n    test 74 line 13 _ExactTM.northing: 8561614.174782\n    test 75 line 13 _ExactTM.gamma: 75.073393\n    test 76 line 13 _ExactTM.scale: 1.906202\n    test 77 line 13 _ExactTM.lat: 30.536296\n    test 78 line 13 _ExactTM.lon: 82.186178\n    test 79 line 14 _ExactTM.easting: 3335099.866623\n    test 80 line 14 _ExactTM.northing: 6740519.084015\n    test 81 line 14 _ExactTM.gamma: 40.611821\n    test 82 line 14 _ExactTM.scale: 1.139021\n    test 83 line 14 _ExactTM.lat: 49.990485\n    test 84 line 14 _ExactTM.lon: 48.203179\n    test 85 line 15 _ExactTM.easting: 12051574.928500\n    test 86 line 15 _ExactTM.northing: 6587213.051951\n    test 87 line 15 _ExactTM.gamma: 59.033237\n    test 88 line 15 _ExactTM.scale: 3.357469\n    test 89 line 15 _ExactTM.lat: 14.486312\n    test 90 line 15 _ExactTM.lon: 80.905137\n    test 91 line 16 _ExactTM.easting: 5387578.735298\n    test 92 line 16 _ExactTM.northing: 4111216.907168\n    test 93 line 16 _ExactTM.gamma: 27.574337\n    test 94 line 16 _ExactTM.scale: 1.379357\n    test 95 line 16 _ExactTM.lat: 25.936824\n    test 96 line 16 _ExactTM.lon: 49.913598\n    test 97 line 17 _ExactTM.easting: 2622214.380233\n    test 98 line 17 _ExactTM.northing: 8678923.984567\n    test 99 line 17 _ExactTM.gamma: 61.697275\n    test 100 line 17 _ExactTM.scale: 1.084810\n    test 101 line 17 _ExactTM.lat: 64.402196\n    test 102 line 17 _ExactTM.lon: 64.091395\n    test 103 line 18 _ExactTM.easting: 5068474.169633\n    test 104 line 18 _ExactTM.northing: 9492066.993709\n    test 105 line 18 _ExactTM.gamma: 83.156740\n    test 106 line 18 _ExactTM.scale: 1.329990\n    test 107 line 18 _ExactTM.lat: 48.451354\n    test 108 line 18 _ExactTM.lon: 84.856198\n    test 109 line 19 _ExactTM.easting: 738062.047779\n    test 110 line 19 _ExactTM.northing: 3031007.074116\n    test 111 line 19 _ExactTM.gamma: 3.416802\n    test 112 line 19 _ExactTM.scale: 1.006332\n    test 113 line 19 _ExactTM.lat: 27.203895\n    test 114 line 19 _ExactTM.lon: 7.440229\n    test 115 line 20 _ExactTM.easting: 1944413.834565\n    test 116 line 20 _ExactTM.northing: 9613299.224493\n    test 117 line 20 _ExactTM.gamma: 78.462831\n    test 118 line 20 _ExactTM.scale: 1.046134\n    test 119 line 20 _ExactTM.lat: 72.509000\n    test 120 line 20 _ExactTM.lon: 78.982283\n    test 121 line 21 _ExactTM.easting: 2114521.418406\n    test 122 line 21 _ExactTM.northing: 4954077.440098\n    test 123 line 21 _ExactTM.gamma: 17.571878\n    test 124 line 21 _ExactTM.scale: 1.055093\n    test 125 line 21 _ExactTM.lat: 41.824954\n    test 126 line 21 _ExactTM.lon: 25.392744\n    test 127 line 22 _ExactTM.easting: 620365.905090\n    test 128 line 22 _ExactTM.northing: 4755542.026562\n    test 129 line 22 _ExactTM.gamma: 5.152022\n    test 130 line 22 _ExactTM.scale: 1.004338\n    test 131 line 22 _ExactTM.lat: 42.701376\n    test 132 line 22 _ExactTM.lon: 7.572738\n    test 133 line 23 _ExactTM.easting: 263004.770989\n    test 134 line 23 _ExactTM.northing: 4493669.762451\n    test 135 line 23 _ExactTM.gamma: 2.020523\n    test 136 line 23 _ExactTM.scale: 1.000452\n    test 137 line 23 _ExactTM.lat: 40.552052\n    test 138 line 23 _ExactTM.lon: 3.106056\n    test 139 line 24 _ExactTM.easting: 3217221.739462\n    test 140 line 24 _ExactTM.northing: 437776.119161\n    test 141 line 24 _ExactTM.gamma: 1.848169\n    test 142 line 24 _ExactTM.scale: 1.130558\n    test 143 line 24 _ExactTM.lat: 3.501242\n    test 144 line 24 _ExactTM.lon: 27.806507\n    test 145 line 25 _ExactTM.easting: 14661142.444961\n    test 146 line 25 _ExactTM.northing: 7476100.824185\n    test 147 line 25 _ExactTM.gamma: 68.376669\n    test 148 line 25 _ExactTM.scale: 4.896650\n    test 149 line 25 _ExactTM.lat: 10.148715\n    test 150 line 25 _ExactTM.lon: 85.373768\n    test 151 line 26 _ExactTM.easting: 967777.158554\n    test 152 line 26 _ExactTM.northing: 6615684.266592\n    test 153 line 26 _ExactTM.gamma: 14.410044\n    test 154 line 26 _ExactTM.scale: 1.011100\n    test 155 line 26 _ExactTM.lat: 58.582623\n    test 156 line 26 _ExactTM.lon: 16.755558\n    test 157 line 27 _ExactTM.easting: 7558840.728461\n    test 158 line 27 _ExactTM.northing: 4144728.130764\n    test 159 line 27 _ExactTM.gamma: 32.557264\n    test 160 line 27 _ExactTM.scale: 1.791490\n    test 161 line 27 _ExactTM.lat: 19.793004\n    test 162 line 27 _ExactTM.lon: 61.746763\n    test 163 line 28 _ExactTM.easting: 1056008.314161\n    test 164 line 28 _ExactTM.northing: 9290799.692669\n    test 165 line 28 _ExactTM.gamma: 55.843278\n    test 166 line 28 _ExactTM.scale: 1.013253\n    test 167 line 28 _ExactTM.lat: 78.666776\n    test 168 line 28 _ExactTM.lon: 56.365355\n    test 169 line 29 _ExactTM.easting: 1943965.134687\n    test 170 line 29 _ExactTM.northing: 1389972.228690\n    test 171 line 29 _ExactTM.gamma: 3.774869\n    test 172 line 29 _ExactTM.scale: 1.046724\n    test 173 line 29 _ExactTM.lat: 11.998788\n    test 174 line 29 _ExactTM.lon: 17.597873\n    test 175 line 30 _ExactTM.easting: 5803077.072902\n    test 176 line 30 _ExactTM.northing: 5649957.943659\n    test 177 line 30 _ExactTM.gamma: 41.717943\n    test 178 line 30 _ExactTM.scale: 1.442572\n    test 179 line 30 _ExactTM.lat: 32.540378\n    test 180 line 30 _ExactTM.lon: 58.764613\n    test 181 line 31 _ExactTM.easting: 2928716.986009\n    test 182 line 31 _ExactTM.northing: 5731835.058317\n    test 183 line 31 _ExactTM.gamma: 28.538550\n    test 184 line 31 _ExactTM.scale: 1.106780\n    test 185 line 31 _ExactTM.lat: 45.160356\n    test 186 line 31 _ExactTM.lon: 37.465285\n    test 187 line 32 _ExactTM.easting: 326141.975756\n    test 188 line 32 _ExactTM.northing: 8881325.164543\n    test 189 line 32 _ExactTM.gamma: 16.111415\n    test 190 line 32 _ExactTM.scale: 1.000900\n    test 191 line 32 _ExactTM.lat: 79.584190\n    test 192 line 32 _ExactTM.lon: 16.367006\n    test 193 line 33 _ExactTM.easting: 3933015.267450\n    test 194 line 33 _ExactTM.northing: 7932373.909512\n    test 195 line 33 _ExactTM.gamma: 58.577424\n    test 196 line 33 _ExactTM.scale: 1.194811\n    test 197 line 33 _ExactTM.lat: 52.470664\n    test 198 line 33 _ExactTM.lon: 64.125580\n    test 199 line 34 _ExactTM.easting: 8598926.983213\n    test 200 line 34 _ExactTM.northing: 6214135.167503\n    test 201 line 34 _ExactTM.gamma: 52.612878\n    test 202 line 34 _ExactTM.scale: 2.051367\n    test 203 line 34 _ExactTM.lat: 23.702673\n    test 204 line 34 _ExactTM.lon: 72.630363\n    test 205 line 35 _ExactTM.easting: 6620553.333772\n    test 206 line 35 _ExactTM.northing: 6540527.122948\n    test 207 line 35 _ExactTM.gamma: 52.350140\n    test 208 line 35 _ExactTM.scale: 1.586614\n    test 209 line 35 _ExactTM.lat: 32.603520\n    test 210 line 35 _ExactTM.lon: 67.280123\n    test 211 line 36 _ExactTM.easting: 1515136.758292\n    test 212 line 36 _ExactTM.northing: 3858996.087537\n    test 213 line 36 _ExactTM.gamma: 9.225127\n    test 214 line 36 _ExactTM.scale: 1.028029\n    test 215 line 36 _ExactTM.lat: 33.776224\n    test 216 line 36 _ExactTM.lon: 16.280993\n    test 217 line 37 _ExactTM.easting: 479854.373445\n    test 218 line 37 _ExactTM.northing: 8980501.389896\n    test 219 line 37 _ExactTM.gamma: 25.021222\n    test 220 line 37 _ExactTM.scale: 1.002415\n    test 221 line 37 _ExactTM.lat: 79.932747\n    test 222 line 37 _ExactTM.lon: 25.363622\n    test 223 line 38 _ExactTM.easting: 5243446.564940\n    test 224 line 38 _ExactTM.northing: 140657.213960\n    test 225 line 38 _ExactTM.gamma: 0.862817\n    test 226 line 38 _ExactTM.scale: 1.360358\n    test 227 line 38 _ExactTM.lat: 0.935056\n    test 228 line 38 _ExactTM.lon: 42.538824\n    test 229 line 39 _ExactTM.easting: 12806457.923218\n    test 230 line 39 _ExactTM.northing: 7170118.684675\n    test 231 line 39 _ExactTM.gamma: 64.708921\n    test 232 line 39 _ExactTM.scale: 3.740588\n    test 233 line 39 _ExactTM.lat: 13.490862\n    test 234 line 39 _ExactTM.lon: 83.178380\n    test 235 line 40 _ExactTM.easting: 1202993.459158\n    test 236 line 40 _ExactTM.northing: 5557316.053599\n    test 237 line 40 _ExactTM.gamma: 12.579061\n    test 238 line 40 _ExactTM.scale: 1.017426\n    test 239 line 40 _ExactTM.lat: 48.979057\n    test 240 line 40 _ExactTM.lon: 16.474542\n    test 241 line 41 _ExactTM.easting: 1729088.710196\n    test 242 line 41 _ExactTM.northing: 7770874.289954\n    test 243 line 41 _ExactTM.gamma: 36.021783\n    test 244 line 41 _ExactTM.scale: 1.036397\n    test 245 line 41 _ExactTM.lat: 65.036016\n    test 246 line 41 _ExactTM.lon: 38.729091\n    test 247 line 42 _ExactTM.easting: 2437301.517425\n    test 248 line 42 _ExactTM.northing: 5539327.748318\n    test 249 line 42 _ExactTM.gamma: 23.461879\n    test 250 line 42 _ExactTM.scale: 1.073459\n    test 251 line 42 _ExactTM.lat: 45.510091\n    test 252 line 42 _ExactTM.lon: 31.303729\n    test 253 line 43 _ExactTM.easting: 3647186.135066\n    test 254 line 43 _ExactTM.northing: 2086412.330983\n    test 255 line 43 _ExactTM.gamma: 10.023991\n    test 256 line 43 _ExactTM.scale: 1.168707\n    test 257 line 43 _ExactTM.lat: 16.058010\n    test 258 line 43 _ExactTM.lon: 32.520026\n    test 259 line 44 _ExactTM.easting: 1818497.243556\n    test 260 line 44 _ExactTM.northing: 4275471.745057\n    test 261 line 44 _ExactTM.gamma: 12.499656\n    test 262 line 44 _ExactTM.scale: 1.040604\n    test 263 line 44 _ExactTM.lat: 36.845200\n    test 264 line 44 _ExactTM.lon: 20.282283\n    test 265 line 45 _ExactTM.easting: 3751304.113783\n    test 266 line 45 _ExactTM.northing: 5130454.001592\n    test 267 line 45 _ExactTM.gamma: 28.959707\n    test 268 line 45 _ExactTM.scale: 1.177681\n    test 269 line 45 _ExactTM.lat: 37.865481\n    test 270 line 45 _ExactTM.lon: 41.990402\n    test 271 line 46 _ExactTM.easting: 2616733.138544\n    test 272 line 46 _ExactTM.northing: 394644.463815\n    test 273 line 46 _ExactTM.gamma: 1.390425\n    test 274 line 46 _ExactTM.scale: 1.085595\n    test 275 line 46 _ExactTM.lat: 3.287272\n    test 276 line 46 _ExactTM.lon: 22.917604\n    test 277 line 47 _ExactTM.easting: 1756506.573942\n    test 278 line 47 _ExactTM.northing: 5570393.986394\n    test 279 line 47 _ExactTM.gamma: 17.897894\n    test 280 line 47 _ExactTM.scale: 1.037732\n    test 281 line 47 _ExactTM.lat: 47.813686\n    test 282 line 47 _ExactTM.lon: 23.545092\n    test 283 line 48 _ExactTM.easting: 8752461.894711\n    test 284 line 48 _ExactTM.northing: 6087728.152284\n    test 285 line 48 _ExactTM.gamma: 51.628465\n    test 286 line 48 _ExactTM.scale: 2.095465\n    test 287 line 48 _ExactTM.lat: 22.836853\n    test 288 line 48 _ExactTM.lon: 72.604385\n    test 289 line 49 _ExactTM.easting: 1309272.216432\n    test 290 line 49 _ExactTM.northing: 59520.028899\n    test 291 line 49 _ExactTM.gamma: 0.109069\n    test 292 line 49 _ExactTM.scale: 1.020897\n    test 293 line 49 _ExactTM.lat: 0.527262\n    test 294 line 49 _ExactTM.lon: 11.684209\n    test 295 line 50 _ExactTM.easting: 328652.277129\n    test 296 line 50 _ExactTM.northing: 2233043.958874\n    test 297 line 50 _ExactTM.gamma: 1.084863\n    test 298 line 50 _ExactTM.scale: 1.000935\n    test 299 line 50 _ExactTM.lat: 20.166742\n    test 300 line 50 _ExactTM.lon: 3.143948\n    test 301 line 51 _ExactTM.easting: 8637959.716447\n    test 302 line 51 _ExactTM.northing: 9190635.156031\n    test 303 line 51 _ExactTM.gamma: 81.802563\n    test 304 line 51 _ExactTM.scale: 2.054329\n    test 305 line 51 _ExactTM.lat: 28.604629\n    test 306 line 51 _ExactTM.lon: 85.988721\n    test 307 line 52 _ExactTM.easting: 8548521.455147\n    test 308 line 52 _ExactTM.northing: 9172410.943282\n    test 309 line 52 _ExactTM.gamma: 81.583928\n    test 310 line 52 _ExactTM.scale: 2.029641\n    test 311 line 52 _ExactTM.lat: 28.984048\n    test 312 line 52 _ExactTM.lon: 85.833448\n    test 313 line 53 _ExactTM.easting: 796987.281104\n    test 314 line 53 _ExactTM.northing: 7677446.357675\n    test 315 line 53 _ExactTM.gamma: 18.084472\n    test 316 line 53 _ExactTM.scale: 1.007381\n    test 317 line 53 _ExactTM.lat: 68.071020\n    test 318 line 53 _ExactTM.lon: 19.392823\n    test 319 line 54 _ExactTM.easting: 3291036.496762\n    test 320 line 54 _ExactTM.northing: 9513199.600666\n    test 321 line 54 _ExactTM.gamma: 80.890254\n    test 322 line 54 _ExactTM.scale: 1.134826\n    test 323 line 54 _ExactTM.lat: 61.416576\n    test 324 line 54 _ExactTM.lon: 81.981611\n    test 325 line 55 _ExactTM.easting: 7087225.330906\n    test 326 line 55 _ExactTM.northing: 8382823.855822\n    test 327 line 55 _ExactTM.gamma: 72.253756\n    test 328 line 55 _ExactTM.scale: 1.678070\n    test 329 line 55 _ExactTM.lat: 35.074753\n    test 330 line 55 _ExactTM.lon: 79.496003\n    test 331 line 56 _ExactTM.easting: 5090358.125724\n    test 332 line 56 _ExactTM.northing: 4318294.133489\n    test 333 line 56 _ExactTM.gamma: 28.266280\n    test 334 line 56 _ExactTM.scale: 1.336264\n    test 335 line 56 _ExactTM.lat: 28.078790\n    test 336 line 56 _ExactTM.lon: 48.684350\n\n    test skipped (1): line 57 _ExactTM.'84.986930137199 2.067177857261 20163.0752214330146 9438635.9888499043815 2.059277291707588222 .99960496589466017622'\n    test 337 line 58 _ExactTM.easting: 3447670.550785\n    test 338 line 58 _ExactTM.northing: 3680238.888223\n    test 339 line 58 _ExactTM.gamma: 17.934948\n    test 340 line 58 _ExactTM.scale: 1.149831\n    test 341 line 58 _ExactTM.lat: 28.473948\n    test 342 line 58 _ExactTM.lon: 34.127306\n    test 343 line 59 _ExactTM.easting: 3396522.906798\n    test 344 line 59 _ExactTM.northing: 8093659.687593\n    test 345 line 59 _ExactTM.gamma: 57.747117\n    test 346 line 59 _ExactTM.scale: 1.144006\n    test 347 line 59 _ExactTM.lat: 56.629354\n    test 348 line 59 _ExactTM.lon: 62.196474\n    test 349 line 60 _ExactTM.easting: 11249894.100784\n    test 350 line 60 _ExactTM.northing: 1619226.506299\n    test 351 line 60 _ExactTM.gamma: 14.210358\n    test 352 line 60 _ExactTM.scale: 3.048347\n    test 353 line 60 _ExactTM.lat: 4.747762\n    test 354 line 60 _ExactTM.lon: 70.932555\n    test 355 line 61 _ExactTM.easting: 6808805.230950\n    test 356 line 61 _ExactTM.northing: 8044779.777369\n    test 357 line 61 _ExactTM.gamma: 68.242008\n    test 358 line 61 _ExactTM.scale: 1.621464\n    test 359 line 61 _ExactTM.lat: 35.882113\n    test 360 line 61 _ExactTM.lon: 76.741849\n    test 361 line 62 _ExactTM.easting: 2306021.556506\n    test 362 line 62 _ExactTM.northing: 757191.592866\n    test 363 line 62 _ExactTM.gamma: 2.385686\n    test 364 line 62 _ExactTM.scale: 1.066159\n    test 365 line 62 _ExactTM.lat: 6.420705\n    test 366 line 62 _ExactTM.lon: 20.416028\n    test 367 line 63 _ExactTM.easting: 1547406.313862\n    test 368 line 63 _ExactTM.northing: 6048712.751824\n    test 369 line 63 _ExactTM.gamma: 18.474372\n    test 370 line 63 _ExactTM.scale: 1.029123\n    test 371 line 63 _ExactTM.lat: 52.335248\n    test 372 line 63 _ExactTM.lon: 22.879294\n    test 373 line 64 _ExactTM.easting: 2430467.650383\n    test 374 line 64 _ExactTM.northing: 7557167.613972\n    test 375 line 64 _ExactTM.gamma: 42.110021\n    test 376 line 64 _ExactTM.scale: 1.072759\n    test 377 line 64 _ExactTM.lat: 59.846391\n    test 378 line 64 _ExactTM.lon: 46.262536\n    test 379 line 65 _ExactTM.easting: 2334053.905830\n    test 380 line 65 _ExactTM.northing: 1948076.966582\n    test 381 line 65 _ExactTM.gamma: 6.353185\n    test 382 line 65 _ExactTM.scale: 1.067733\n    test 383 line 65 _ExactTM.lat: 16.461790\n    test 384 line 65 _ExactTM.lon: 21.433269\n    test 385 line 66 _ExactTM.easting: 5564175.186737\n    test 386 line 66 _ExactTM.northing: 1836851.660412\n    test 387 line 66 _ExactTM.gamma: 11.870682\n    test 388 line 66 _ExactTM.scale: 1.408265\n    test 389 line 66 _ExactTM.lat: 11.707905\n    test 390 line 66 _ExactTM.lon: 45.827075\n    test 391 line 67 _ExactTM.easting: 6118505.590359\n    test 392 line 67 _ExactTM.northing: 7631684.552421\n    test 393 line 67 _ExactTM.gamma: 62.477323\n    test 394 line 67 _ExactTM.scale: 1.493420\n    test 395 line 67 _ExactTM.lat: 38.519075\n    test 396 line 67 _ExactTM.lon: 71.935918\n    test 397 line 68 _ExactTM.easting: 7365359.294665\n    test 398 line 68 _ExactTM.northing: 8818194.451531\n    test 399 line 68 _ExactTM.gamma: 77.207042\n    test 400 line 68 _ExactTM.scale: 1.737639\n    test 401 line 68 _ExactTM.lat: 34.264007\n    test 402 line 68 _ExactTM.lon: 82.647878\n    test 403 line 69 _ExactTM.easting: 36187.342415\n    test 404 line 69 _ExactTM.northing: 2142565.324802\n    test 405 line 69 _ExactTM.gamma: 0.114334\n    test 406 line 69 _ExactTM.scale: 0.999616\n    test 407 line 69 _ExactTM.lat: 19.376880\n    test 408 line 69 _ExactTM.lon: 0.344605\n    test 409 line 70 _ExactTM.easting: 2380328.546851\n    test 410 line 70 _ExactTM.northing: 8440109.872384\n    test 411 line 70 _ExactTM.gamma: 55.076067\n    test 412 line 70 _ExactTM.scale: 1.069658\n    test 413 line 70 _ExactTM.lat: 65.075805\n    test 414 line 70 _ExactTM.lon: 57.653438\n    test 415 line 71 _ExactTM.easting: 582511.608826\n    test 416 line 71 _ExactTM.northing: 8876047.217071\n    test 417 line 71 _ExactTM.gamma: 27.133300\n    test 418 line 71 _ExactTM.scale: 1.003749\n    test 419 line 71 _ExactTM.lat: 78.691870\n    test 420 line 71 _ExactTM.lon: 27.591736\n    test 421 line 72 _ExactTM.easting: 899441.350477\n    test 422 line 72 _ExactTM.northing: 4582046.430516\n    test 423 line 72 _ExactTM.gamma: 7.031211\n    test 424 line 72 _ExactTM.scale: 1.009573\n    test 425 line 72 _ExactTM.lat: 40.893022\n    test 426 line 72 _ExactTM.lon: 10.668804\n    test 427 line 73 _ExactTM.easting: 5022485.124337\n    test 428 line 73 _ExactTM.northing: 9741774.933721\n    test 429 line 73 _ExactTM.gamma: 86.505947\n    test 430 line 73 _ExactTM.scale: 1.323700\n    test 431 line 73 _ExactTM.lat: 48.914279\n    test 432 line 73 _ExactTM.lon: 87.359268\n    test 433 line 74 _ExactTM.easting: 6701004.587204\n    test 434 line 74 _ExactTM.northing: 2954368.258231\n    test 435 line 74 _ExactTM.gamma: 21.560153\n    test 436 line 74 _ExactTM.scale: 1.608554\n    test 437 line 74 _ExactTM.lat: 16.208377\n    test 438 line 74 _ExactTM.lon: 54.494282\n    test 439 line 75 _ExactTM.easting: 454986.218897\n    test 440 line 75 _ExactTM.northing: 4885087.887884\n    test 441 line 75 _ExactTM.gamma: 3.945648\n    test 442 line 75 _ExactTM.scale: 1.002147\n    test 443 line 75 _ExactTM.lat: 43.977936\n    test 444 line 75 _ExactTM.lon: 5.672541\n    test 445 line 76 _ExactTM.easting: 8903956.140311\n    test 446 line 76 _ExactTM.northing: 8470608.577482\n    test 447 line 76 _ExactTM.gamma: 74.723116\n    test 448 line 76 _ExactTM.scale: 2.131311\n    test 449 line 76 _ExactTM.lat: 26.850861\n    test 450 line 76 _ExactTM.lon: 82.834480\n    test 451 line 77 _ExactTM.easting: 1547627.594741\n    test 452 line 77 _ExactTM.northing: 6036584.538347\n    test 453 line 77 _ExactTM.gamma: 18.407629\n    test 454 line 77 _ExactTM.scale: 1.029132\n    test 455 line 77 _ExactTM.lat: 52.234165\n    test 456 line 77 _ExactTM.lon: 22.827655\n    test 457 line 78 _ExactTM.easting: 5221488.778597\n    test 458 line 78 _ExactTM.northing: 1762592.044392\n    test 459 line 78 _ExactTM.gamma: 10.927880\n    test 460 line 78 _ExactTM.scale: 1.356721\n    test 461 line 78 _ExactTM.lat: 11.674646\n    test 462 line 78 _ExactTM.lon: 43.500147\n    test 463 line 79 _ExactTM.easting: 4880570.297161\n    test 464 line 79 _ExactTM.northing: 3325433.988867\n    test 465 line 79 _ExactTM.gamma: 20.469862\n    test 466 line 79 _ExactTM.scale: 1.308476\n    test 467 line 79 _ExactTM.lat: 22.492753\n    test 468 line 79 _ExactTM.lon: 44.179153\n    test 469 line 80 _ExactTM.easting: 23930680.082694\n    test 470 line 80 _ExactTM.northing: 7491462.099038\n    test 471 line 80 _ExactTM.gamma: 75.937628\n    test 472 line 80 _ExactTM.scale: 15.556365\n    test 473 line 80 _ExactTM.lat: 0.910999\n    test 474 line 80 _ExactTM.lon: 88.548823\n    test 475 line 81 _ExactTM.easting: 71519.450458\n    test 476 line 81 _ExactTM.northing: 3654740.444852\n    test 477 line 81 _ExactTM.gamma: 0.417448\n    test 478 line 81 _ExactTM.scale: 0.999663\n    test 479 line 81 _ExactTM.lat: 33.028802\n    test 480 line 81 _ExactTM.lon: 0.765843\n    test 481 line 82 _ExactTM.easting: 4152797.795220\n    test 482 line 82 _ExactTM.northing: 7823098.502751\n    test 483 line 82 _ExactTM.gamma: 58.238901\n    test 484 line 82 _ExactTM.scale: 1.218052\n    test 485 line 82 _ExactTM.lat: 50.649195\n    test 486 line 82 _ExactTM.lon: 64.389076\n    test 487 line 83 _ExactTM.easting: 2926725.707639\n    test 488 line 83 _ExactTM.northing: 7904918.072844\n    test 489 line 83 _ExactTM.gamma: 51.592748\n    test 490 line 83 _ExactTM.scale: 1.106206\n    test 491 line 83 _ExactTM.lat: 58.820640\n    test 492 line 83 _ExactTM.lon: 55.841048\n    test 493 line 84 _ExactTM.easting: 1325509.113869\n    test 494 line 84 _ExactTM.northing: 9675214.948213\n    test 495 line 84 _ExactTM.gamma: 76.116213\n    test 496 line 84 _ExactTM.scale: 1.021136\n    test 497 line 84 _ExactTM.lat: 77.865762\n    test 498 line 84 _ExactTM.lon: 76.414618\n    test 499 line 85 _ExactTM.easting: 3045296.448926\n    test 500 line 85 _ExactTM.northing: 542153.443280\n    test 501 line 85 _ExactTM.gamma: 2.185095\n    test 502 line 85 _ExactTM.scale: 1.116664\n    test 503 line 85 _ExactTM.lat: 4.389639\n    test 504 line 85 _ExactTM.lon: 26.458976\n    test 505 line 86 _ExactTM.easting: 11843870.887518\n    test 506 line 86 _ExactTM.northing: 5912803.073343\n    test 507 line 86 _ExactTM.gamma: 52.814259\n    test 508 line 86 _ExactTM.scale: 3.267256\n    test 509 line 86 _ExactTM.lat: 13.924448\n    test 510 line 86 _ExactTM.lon: 79.017873\n    test 511 line 87 _ExactTM.easting: 8891099.704936\n    test 512 line 87 _ExactTM.northing: 162160.142227\n    test 513 line 87 _ExactTM.gamma: 1.312094\n    test 514 line 87 _ExactTM.scale: 2.157363\n    test 515 line 87 _ExactTM.lat: 0.679713\n    test 516 line 87 _ExactTM.lon: 62.036792\n    test 517 line 88 _ExactTM.easting: 4784814.214449\n    test 518 line 88 _ExactTM.northing: 2984497.432580\n    test 519 line 88 _ExactTM.gamma: 17.946545\n    test 520 line 88 _ExactTM.scale: 1.296116\n    test 521 line 88 _ExactTM.lat: 20.478281\n    test 522 line 88 _ExactTM.lon: 42.678234\n    test 523 line 89 _ExactTM.easting: 1772074.682154\n    test 524 line 89 _ExactTM.northing: 9491552.560143\n    test 525 line 89 _ExactTM.gamma: 73.634830\n    test 526 line 89 _ExactTM.scale: 1.038202\n    test 527 line 89 _ExactTM.lat: 73.695703\n    test 528 line 89 _ExactTM.lon: 74.259097\n    test 529 line 90 _ExactTM.easting: 1907649.782106\n    test 530 line 90 _ExactTM.northing: 6994232.429379\n    test 531 line 90 _ExactTM.gamma: 29.718929\n    test 532 line 90 _ExactTM.scale: 1.044503\n    test 533 line 90 _ExactTM.lat: 58.569370\n    test 534 line 90 _ExactTM.lon: 33.777549\n    test 535 line 91 _ExactTM.easting: 2084423.818962\n    test 536 line 91 _ExactTM.northing: 2211816.035619\n    test 537 line 91 _ExactTM.gamma: 6.556448\n    test 538 line 91 _ExactTM.scale: 1.053793\n    test 539 line 91 _ExactTM.lat: 18.933881\n    test 540 line 91 _ExactTM.lon: 19.492695\n    test 541 line 92 _ExactTM.easting: 1064373.671729\n    test 542 line 92 _ExactTM.northing: 7812482.547461\n    test 543 line 92 _ExactTM.gamma: 24.874124\n    test 544 line 92 _ExactTM.scale: 1.013490\n    test 545 line 92 _ExactTM.lat: 68.317934\n    test 546 line 92 _ExactTM.lon: 26.515687\n    test 547 line 93 _ExactTM.easting: 4770385.479297\n    test 548 line 93 _ExactTM.northing: 9734318.902980\n    test 549 line 93 _ExactTM.gamma: 86.273119\n    test 550 line 93 _ExactTM.scale: 1.290553\n    test 551 line 93 _ExactTM.lat: 50.641941\n    test 552 line 93 _ExactTM.lon: 87.111557\n    test 553 line 94 _ExactTM.easting: 6398096.677297\n    test 554 line 94 _ExactTM.northing: 4410894.752104\n    test 555 line 94 _ExactTM.gamma: 32.558023\n    test 556 line 94 _ExactTM.scale: 1.548004\n    test 557 line 94 _ExactTM.lat: 24.411298\n    test 558 line 94 _ExactTM.lon: 56.881823\n    test 559 line 95 _ExactTM.easting: 3138623.300415\n    test 560 line 95 _ExactTM.northing: 3082960.600798\n    test 561 line 95 _ExactTM.gamma: 13.557672\n    test 562 line 95 _ExactTM.scale: 1.123724\n    test 563 line 95 _ExactTM.lat: 24.571871\n    test 564 line 95 _ExactTM.lon: 30.073097\n    test 565 line 96 _ExactTM.easting: 2748325.794651\n    test 566 line 96 _ExactTM.northing: 4202811.912668\n    test 567 line 96 _ExactTM.gamma: 17.578706\n    test 568 line 96 _ExactTM.scale: 1.094102\n    test 569 line 96 _ExactTM.lat: 34.202576\n    test 570 line 96 _ExactTM.lon: 29.383166\n    test 571 line 97 _ExactTM.easting: 6677830.630367\n    test 572 line 97 _ExactTM.northing: 5350071.837395\n    test 573 line 97 _ExactTM.gamma: 41.306641\n    test 574 line 97 _ExactTM.scale: 1.599774\n    test 575 line 97 _ExactTM.lat: 27.756285\n    test 576 line 97 _ExactTM.lon: 61.881905\n    test 577 line 98 _ExactTM.easting: 5941536.667431\n    test 578 line 98 _ExactTM.northing: 3293112.175140\n    test 579 line 98 _ExactTM.gamma: 22.752845\n    test 580 line 98 _ExactTM.scale: 1.468473\n    test 581 line 98 _ExactTM.lat: 19.742270\n    test 582 line 98 _ExactTM.lon: 50.957821\n    test 583 line 99 _ExactTM.easting: 3152481.792567\n    test 584 line 99 _ExactTM.northing: 5903048.837978\n    test 585 line 99 _ExactTM.gamma: 31.494606\n    test 586 line 99 _ExactTM.scale: 1.124085\n    test 587 line 99 _ExactTM.lat: 45.453582\n    test 588 line 99 _ExactTM.lon: 40.659833\n    test 589 line 100 _ExactTM.easting: 10460475.897730\n    test 590 line 100 _ExactTM.northing: 2553463.624391\n    test 591 line 100 _ExactTM.gamma: 21.965869\n    test 592 line 100 _ExactTM.scale: 2.700296\n    test 593 line 100 _ExactTM.lat: 8.322144\n    test 594 line 100 _ExactTM.lon: 69.488157\n    test 595 line 101 _ExactTM.easting: 1964010.778021\n    test 596 line 101 _ExactTM.northing: 5634042.923056\n    test 597 line 101 _ExactTM.gamma: 20.117800\n    test 598 line 101 _ExactTM.scale: 1.047344\n    test 599 line 101 _ExactTM.lat: 47.749831\n    test 600 line 101 _ExactTM.lon: 26.322002\n    test 601 line 102 _ExactTM.easting: 2065306.424934\n    test 602 line 102 _ExactTM.northing: 2135008.468651\n    test 603 line 102 _ExactTM.gamma: 6.258981\n    test 604 line 102 _ExactTM.scale: 1.052800\n    test 605 line 102 _ExactTM.lat: 18.297493\n    test 606 line 102 _ExactTM.lon: 19.244669\n    test 607 line 103 _ExactTM.easting: 5127738.132976\n    test 608 line 103 _ExactTM.northing: 6793804.304411\n    test 609 line 103 _ExactTM.gamma: 50.557915\n    test 610 line 103 _ExactTM.scale: 1.339412\n    test 611 line 103 _ExactTM.lat: 40.834541\n    test 612 line 103 _ExactTM.lon: 61.650750\n    test 613 line 104 _ExactTM.easting: 8385525.148166\n    test 614 line 104 _ExactTM.northing: 6924932.344306\n    test 615 line 104 _ExactTM.gamma: 59.087561\n    test 616 line 104 _ExactTM.scale: 1.990364\n    test 617 line 104 _ExactTM.lat: 26.273247\n    test 618 line 104 _ExactTM.lon: 74.926694\n    test 619 line 105 _ExactTM.easting: 2297510.791909\n    test 620 line 105 _ExactTM.northing: 2805666.962834\n    test 621 line 105 _ExactTM.gamma: 9.301553\n    test 622 line 105 _ExactTM.scale: 1.065508\n    test 623 line 105 _ExactTM.lat: 23.698347\n    test 624 line 105 _ExactTM.lon: 22.155657\n    test 625 line 106 _ExactTM.easting: 13749544.917635\n    test 626 line 106 _ExactTM.northing: 8288728.384650\n    test 627 line 106 _ExactTM.gamma: 75.033970\n    test 628 line 106 _ExactTM.scale: 4.270588\n    test 629 line 106 _ExactTM.lat: 12.364113\n    test 630 line 106 _ExactTM.lon: 86.348578\n    test 631 line 107 _ExactTM.easting: 317518.455546\n    test 632 line 107 _ExactTM.northing: 1097517.583745\n    test 633 line 107 _ExactTM.gamma: 0.499004\n    test 634 line 107 _ExactTM.scale: 1.000848\n    test 635 line 107 _ExactTM.lat: 9.916091\n    test 636 line 107 _ExactTM.lon: 2.895277\n    test 637 line 108 _ExactTM.easting: 3856035.184888\n    test 638 line 108 _ExactTM.northing: 9141364.450290\n    test 639 line 108 _ExactTM.gamma: 75.972763\n    test 640 line 108 _ExactTM.scale: 1.186786\n    test 641 line 108 _ExactTM.lat: 56.553876\n    test 642 line 108 _ExactTM.lon: 78.215077\n    test 643 line 109 _ExactTM.easting: 1457484.942823\n    test 644 line 109 _ExactTM.northing: 9385297.101973\n    test 645 line 109 _ExactTM.gamma: 66.784662\n    test 646 line 109 _ExactTM.scale: 1.025660\n    test 647 line 109 _ExactTM.lat: 75.957631\n    test 648 line 109 _ExactTM.lon: 67.407383\n    test 649 line 110 _ExactTM.easting: 1304934.901841\n    test 650 line 110 _ExactTM.northing: 3604655.155715\n    test 651 line 110 _ExactTM.gamma: 7.343989\n    test 652 line 110 _ExactTM.scale: 1.020672\n    test 653 line 110 _ExactTM.lat: 31.826531\n    test 654 line 110 _ExactTM.lon: 13.731050\n    test 655 line 111 _ExactTM.easting: 1399093.491792\n    test 656 line 111 _ExactTM.northing: 8314607.120342\n    test 657 line 111 _ExactTM.gamma: 38.630161\n    test 658 line 111 _ExactTM.scale: 1.023625\n    test 659 line 111 _ExactTM.lat: 70.542985\n    test 660 line 111 _ExactTM.lon: 40.282055\n    test 661 line 112 _ExactTM.easting: 356983.618540\n    test 662 line 112 _ExactTM.northing: 4282309.048994\n    test 663 line 112 _ExactTM.gamma: 2.561485\n    test 664 line 112 _ExactTM.scale: 1.001170\n    test 665 line 112 _ExactTM.lat: 38.617487\n    test 666 line 112 _ExactTM.lon: 4.099838\n    test 667 line 113 _ExactTM.easting: 9952911.325091\n    test 668 line 113 _ExactTM.northing: 1510288.212229\n    test 669 line 113 _ExactTM.gamma: 12.752154\n    test 670 line 113 _ExactTM.scale: 2.511357\n    test 671 line 113 _ExactTM.lat: 5.389447\n    test 672 line 113 _ExactTM.lon: 66.729612\n    test 673 line 114 _ExactTM.easting: 6367592.504007\n    test 674 line 114 _ExactTM.northing: 1200437.077672\n    test 675 line 114 _ExactTM.gamma: 8.338041\n    test 676 line 114 _ExactTM.scale: 1.546210\n    test 677 line 114 _ExactTM.lat: 6.995168\n    test 678 line 114 _ExactTM.lon: 50.014763\n    test 679 line 115 _ExactTM.easting: 4391263.676460\n    test 680 line 115 _ExactTM.northing: 6325455.989408\n    test 681 line 115 _ExactTM.gamma: 42.653541\n    test 682 line 115 _ExactTM.scale: 1.245560\n    test 683 line 115 _ExactTM.lat: 42.321894\n    test 684 line 115 _ExactTM.lon: 53.784040\n    test 685 line 116 _ExactTM.easting: 6209880.527527\n    test 686 line 116 _ExactTM.northing: 2154754.449747\n    test 687 line 116 _ExactTM.gamma: 14.919512\n    test 688 line 116 _ExactTM.scale: 1.516560\n    test 689 line 116 _ExactTM.lat: 12.698515\n    test 690 line 116 _ExactTM.lon: 50.242047\n    test 691 line 117 _ExactTM.easting: 1507053.688772\n    test 692 line 117 _ExactTM.northing: 6261383.513280\n    test 693 line 117 _ExactTM.gamma: 19.280373\n    test 694 line 117 _ExactTM.scale: 1.027584\n    test 695 line 117 _ExactTM.lat: 54.207636\n    test 696 line 117 _ExactTM.lon: 23.325731\n    test 697 line 118 _ExactTM.easting: 8332725.003777\n    test 698 line 118 _ExactTM.northing: 3002712.329753\n    test 699 line 118 _ExactTM.gamma: 24.059212\n    test 700 line 118 _ExactTM.scale: 1.990450\n    test 701 line 118 _ExactTM.lat: 13.224787\n    test 702 line 118 _ExactTM.lon: 62.426698\n    test 703 line 119 _ExactTM.easting: 3958910.085235\n    test 704 line 119 _ExactTM.northing: 3462284.926102\n    test 705 line 119 _ExactTM.gamma: 18.546398\n    test 706 line 119 _ExactTM.scale: 1.199351\n    test 707 line 119 _ExactTM.lat: 25.650282\n    test 708 line 119 _ExactTM.lon: 37.710391\n    test 709 line 120 _ExactTM.easting: 10452892.282083\n    test 710 line 120 _ExactTM.northing: 8000059.605114\n    test 711 line 120 _ExactTM.gamma: 71.075240\n    test 712 line 120 _ExactTM.scale: 2.650111\n    test 713 line 120 _ExactTM.lat: 20.684773\n    test 714 line 120 _ExactTM.lon: 82.849734\n    test 715 line 121 _ExactTM.easting: 496148.253731\n    test 716 line 121 _ExactTM.northing: 6388503.365043\n    test 717 line 121 _ExactTM.gamma: 6.970955\n    test 718 line 121 _ExactTM.scale: 1.002620\n    test 719 line 121 _ExactTM.lat: 57.367533\n    test 720 line 121 _ExactTM.lon: 8.260866\n    test 721 line 122 _ExactTM.easting: 7375792.085850\n    test 722 line 122 _ExactTM.northing: 5544624.072155\n    test 723 line 122 _ExactTM.gamma: 44.510851\n    test 724 line 122 _ExactTM.scale: 1.745898\n    test 725 line 122 _ExactTM.lat: 25.958757\n    test 726 line 122 _ExactTM.lon: 65.760477\n    test 727 line 123 _ExactTM.easting: 2826258.041979\n    test 728 line 123 _ExactTM.northing: 5167759.816959\n    test 729 line 123 _ExactTM.gamma: 23.783897\n    test 730 line 123 _ExactTM.scale: 1.099415\n    test 731 line 123 _ExactTM.lat: 41.395848\n    test 732 line 123 _ExactTM.lon: 33.661790\n    test 733 line 124 _ExactTM.easting: 3958563.378851\n    test 734 line 124 _ExactTM.northing: 8499923.231243\n    test 735 line 124 _ExactTM.gamma: 66.570945\n    test 736 line 124 _ExactTM.scale: 1.197296\n    test 737 line 124 _ExactTM.lat: 54.266617\n    test 738 line 124 _ExactTM.lon: 70.602199\n    test 739 line 125 _ExactTM.easting: 4408189.533462\n    test 740 line 125 _ExactTM.northing: 8046312.003642\n    test 741 line 125 _ExactTM.gamma: 62.216959\n    test 742 line 125 _ExactTM.scale: 1.246750\n    test 743 line 125 _ExactTM.lat: 49.840393\n    test 744 line 125 _ExactTM.lon: 68.036728\n    test 745 line 126 _ExactTM.easting: 3629225.627512\n    test 746 line 126 _ExactTM.northing: 6371258.454645\n    test 747 line 126 _ExactTM.gamma: 38.881675\n    test 748 line 126 _ExactTM.scale: 1.165511\n    test 749 line 126 _ExactTM.lat: 46.306035\n    test 750 line 126 _ExactTM.lon: 48.085828\n    test 751 line 127 _ExactTM.easting: 602838.450710\n    test 752 line 127 _ExactTM.northing: 4851370.637205\n    test 753 line 127 _ExactTM.gamma: 5.160395\n    test 754 line 127 _ExactTM.scale: 1.004073\n    test 755 line 127 _ExactTM.lat: 43.570988\n    test 756 line 127 _ExactTM.lon: 7.464494\n    test 757 line 128 _ExactTM.easting: 764616.665051\n    test 758 line 128 _ExactTM.northing: 2164299.337945\n    test 759 line 128 _ExactTM.gamma: 2.429300\n    test 760 line 128 _ExactTM.scale: 1.006835\n    test 761 line 128 _ExactTM.lat: 19.427290\n    test 762 line 128 _ExactTM.lon: 7.268247\n    test 763 line 129 _ExactTM.easting: 5048953.021931\n    test 764 line 129 _ExactTM.northing: 1885974.057398\n    test 765 line 129 _ExactTM.gamma: 11.459804\n    test 766 line 129 _ExactTM.scale: 1.332207\n    test 767 line 129 _ExactTM.lat: 12.713794\n    test 768 line 129 _ExactTM.lon: 42.507018\n    test 769 line 130 _ExactTM.easting: 2293996.601155\n    test 770 line 130 _ExactTM.northing: 2392408.644221\n    test 771 line 130 _ExactTM.gamma: 7.791838\n    test 772 line 130 _ExactTM.scale: 1.065348\n    test 773 line 130 _ExactTM.lat: 20.238782\n    test 774 line 130 _ExactTM.lon: 21.566068\n    test 775 line 131 _ExactTM.easting: 1530603.839418\n    test 776 line 131 _ExactTM.northing: 7287841.459898\n    test 777 line 131 _ExactTM.gamma: 27.502921\n    test 778 line 131 _ExactTM.scale: 1.028416\n    test 779 line 131 _ExactTM.lat: 62.367847\n    test 780 line 131 _ExactTM.lon: 30.438849\n    test 781 line 132 _ExactTM.easting: 2660000.093152\n    test 782 line 132 _ExactTM.northing: 5161982.213248\n    test 783 line 132 _ExactTM.gamma: 22.629836\n    test 784 line 132 _ExactTM.scale: 1.087851\n    test 785 line 132 _ExactTM.lat: 41.891569\n    test 786 line 132 _ExactTM.lon: 31.959547\n    test 787 line 133 _ExactTM.easting: 5037478.329414\n    test 788 line 133 _ExactTM.northing: 8768172.379908\n    test 789 line 133 _ExactTM.gamma: 73.511182\n    test 790 line 133 _ExactTM.scale: 1.325919\n    test 791 line 133 _ExactTM.lat: 47.664248\n    test 792 line 133 _ExactTM.lon: 77.630062\n    test 793 line 134 _ExactTM.easting: 2289650.957799\n    test 794 line 134 _ExactTM.northing: 8784328.593607\n    test 795 line 134 _ExactTM.gamma: 60.786067\n    test 796 line 134 _ExactTM.scale: 1.064346\n    test 797 line 134 _ExactTM.lat: 67.259559\n    test 798 line 134 _ExactTM.lon: 62.715293\n    test 799 line 135 _ExactTM.easting: 647913.889744\n    test 800 line 135 _ExactTM.northing: 6742382.228217\n    test 801 line 135 _ExactTM.gamma: 10.252667\n    test 802 line 135 _ExactTM.scale: 1.004748\n    test 803 line 135 _ExactTM.lat: 60.295381\n    test 804 line 135 _ExactTM.lon: 11.763097\n    test 805 line 136 _ExactTM.easting: 1118372.698566\n    test 806 line 136 _ExactTM.northing: 9040627.942263\n    test 807 line 136 _ExactTM.gamma: 48.936803\n    test 808 line 136 _ExactTM.scale: 1.014920\n    test 809 line 136 _ExactTM.lat: 76.878914\n    test 810 line 136 _ExactTM.lon: 49.685773\n    test 811 line 137 _ExactTM.easting: 440696.510070\n    test 812 line 137 _ExactTM.northing: 5500355.826297\n    test 813 line 137 _ExactTM.gamma: 4.636104\n    test 814 line 137 _ExactTM.scale: 1.001986\n    test 815 line 137 _ExactTM.lat: 49.495349\n    test 816 line 137 _ExactTM.lon: 6.087551\n    test 817 line 138 _ExactTM.easting: 601728.149727\n    test 818 line 138 _ExactTM.northing: 9095352.048149\n    test 819 line 138 _ExactTM.gamma: 33.435771\n    test 820 line 138 _ExactTM.scale: 1.004027\n    test 821 line 138 _ExactTM.lat: 80.297265\n    test 822 line 138 _ExactTM.lon: 33.816372\n    test 823 line 139 _ExactTM.easting: 3481444.777827\n    test 824 line 139 _ExactTM.northing: 291665.708749\n    test 825 line 139 _ExactTM.gamma: 1.314726\n    test 826 line 139 _ExactTM.scale: 1.153534\n    test 827 line 139 _ExactTM.lat: 2.286437\n    test 828 line 139 _ExactTM.lon: 29.855149\n    test 829 line 140 _ExactTM.easting: 3515304.901524\n    test 830 line 140 _ExactTM.northing: 1443981.882918\n    test 831 line 140 _ExactTM.gamma: 6.641638\n    test 832 line 140 _ExactTM.scale: 1.156509\n    test 833 line 140 _ExactTM.lat: 11.264457\n    test 834 line 140 _ExactTM.lon: 30.743907\n    test 835 line 141 _ExactTM.easting: 160012.186959\n    test 836 line 141 _ExactTM.northing: 3922609.253231\n    test 837 line 141 _ExactTM.gamma: 1.022225\n    test 838 line 141 _ExactTM.scale: 0.999916\n    test 839 line 141 _ExactTM.lat: 35.434073\n    test 840 line 141 _ExactTM.lon: 1.762795\n    test 841 line 142 _ExactTM.easting: 4163744.245622\n    test 842 line 142 _ExactTM.northing: 936884.674804\n    test 843 line 142 _ExactTM.gamma: 4.892559\n    test 844 line 142 _ExactTM.scale: 1.222164\n    test 845 line 142 _ExactTM.lat: 6.923695\n    test 846 line 142 _ExactTM.lon: 35.289456\n    test 847 line 143 _ExactTM.easting: 6155200.017926\n    test 848 line 143 _ExactTM.northing: 6926306.628390\n    test 849 line 143 _ExactTM.gamma: 55.103258\n    test 850 line 143 _ExactTM.scale: 1.500556\n    test 851 line 143 _ExactTM.lat: 36.129672\n    test 852 line 143 _ExactTM.lon: 67.533176\n    test 853 line 144 _ExactTM.easting: 16263383.285440\n    test 854 line 144 _ExactTM.northing: 3591296.731341\n    test 855 line 144 _ExactTM.gamma: 36.040254\n    test 856 line 144 _ExactTM.scale: 6.589288\n    test 857 line 144 _ExactTM.lat: 4.406529\n    test 858 line 144 _ExactTM.lon: 81.965734\n    test 859 line 145 _ExactTM.easting: 14220995.515398\n    test 860 line 145 _ExactTM.northing: 5100587.457503\n    test 861 line 145 _ExactTM.gamma: 47.314258\n    test 862 line 145 _ExactTM.scale: 4.693202\n    test 863 line 145 _ExactTM.lat: 8.474589\n    test 864 line 145 _ExactTM.lon: 81.129945\n    test 865 line 146 _ExactTM.easting: 3173034.802372\n    test 866 line 146 _ExactTM.northing: 7263421.942957\n    test 867 line 146 _ExactTM.gamma: 45.215808\n    test 868 line 146 _ExactTM.scale: 1.125410\n    test 869 line 146 _ExactTM.lat: 53.907276\n    test 870 line 146 _ExactTM.lon: 51.252904\n    test 871 line 147 _ExactTM.easting: 10253274.092204\n    test 872 line 147 _ExactTM.northing: 8867574.299792\n    test 873 line 147 _ExactTM.gamma: 79.198250\n    test 874 line 147 _ExactTM.scale: 2.572372\n    test 875 line 147 _ExactTM.lat: 22.120545\n    test 876 line 147 _ExactTM.lon: 85.756782\n    test 877 line 148 _ExactTM.easting: 2415561.483230\n    test 878 line 148 _ExactTM.northing: 8813225.217097\n    test 879 line 148 _ExactTM.gamma: 62.548978\n    test 880 line 148 _ExactTM.scale: 1.071748\n    test 881 line 148 _ExactTM.lat: 66.444100\n    test 882 line 148 _ExactTM.lon: 64.532960\n    test 883 line 149 _ExactTM.easting: 9589179.293295\n    test 884 line 149 _ExactTM.northing: 1777680.784143\n    test 885 line 149 _ExactTM.gamma: 14.838483\n    test 886 line 149 _ExactTM.scale: 2.380716\n    test 887 line 149 _ExactTM.lat: 6.670965\n    test 888 line 149 _ExactTM.lon: 65.660408\n    test 889 line 150 _ExactTM.easting: 727939.438391\n    test 890 line 150 _ExactTM.northing: 3684363.236810\n    test 891 line 150 _ExactTM.gamma: 4.266227\n    test 892 line 150 _ExactTM.scale: 1.006140\n    test 893 line 150 _ExactTM.lat: 33.054057\n    test 894 line 150 _ExactTM.lon: 7.787458\n    test 895 line 151 _ExactTM.easting: 1250765.991085\n    test 896 line 151 _ExactTM.northing: 792869.242719\n    test 897 line 151 _ExactTM.gamma: 1.396497\n    test 898 line 151 _ExactTM.scale: 1.019026\n    test 899 line 151 _ExactTM.lat: 7.035525\n    test 900 line 151 _ExactTM.lon: 11.253707\n    test 901 line 152 _ExactTM.easting: 710421.705887\n    test 902 line 152 _ExactTM.northing: 5019406.075928\n    test 903 line 152 _ExactTM.gamma: 6.393949\n    test 904 line 152 _ExactTM.scale: 1.005812\n    test 905 line 152 _ExactTM.lat: 44.971340\n    test 906 line 152 _ExactTM.lon: 9.009304\n    test 907 line 153 _ExactTM.easting: 4600995.074643\n    test 908 line 153 _ExactTM.northing: 4505712.084593\n    test 909 line 153 _ExactTM.gamma: 27.997458\n    test 910 line 153 _ExactTM.scale: 1.271841\n    test 911 line 153 _ExactTM.lat: 30.821397\n    test 912 line 153 _ExactTM.lon: 45.970577\n    test 913 line 154 _ExactTM.easting: 557642.627782\n    test 914 line 154 _ExactTM.northing: 7006911.251644\n    test 915 line 154 _ExactTM.gamma: 9.769903\n    test 916 line 154 _ExactTM.scale: 1.003411\n    test 917 line 154 _ExactTM.lat: 62.763886\n    test 918 line 154 _ExactTM.lon: 10.960144\n    test 919 line 155 _ExactTM.easting: 4635062.294291\n    test 920 line 155 _ExactTM.northing: 2702556.153311\n    test 921 line 155 _ExactTM.gamma: 15.779547\n    test 922 line 155 _ExactTM.scale: 1.277178\n    test 923 line 155 _ExactTM.lat: 18.888611\n    test 924 line 155 _ExactTM.lon: 41.009871\n    test 925 line 156 _ExactTM.easting: 14554962.255919\n    test 926 line 156 _ExactTM.northing: 4716639.908572\n    test 927 line 156 _ExactTM.gamma: 44.192751\n    test 928 line 156 _ExactTM.scale: 4.960020\n    test 929 line 156 _ExactTM.lat: 7.524119\n    test 930 line 156 _ExactTM.lon: 81.050715\n    test 931 line 157 _ExactTM.easting: 882126.661736\n    test 932 line 157 _ExactTM.northing: 7947612.369506\n    test 933 line 157 _ExactTM.gamma: 22.429487\n    test 934 line 157 _ExactTM.scale: 1.009132\n    test 935 line 157 _ExactTM.lat: 70.063902\n    test 936 line 157 _ExactTM.lon: 23.705255\n    test 937 line 158 _ExactTM.easting: 20262021.645983\n    test 938 line 158 _ExactTM.northing: 8113827.820796\n    test 939 line 158 _ExactTM.gamma: 76.936057\n    test 940 line 158 _ExactTM.scale: 10.349092\n    test 941 line 158 _ExactTM.lat: 3.556526\n    test 942 line 158 _ExactTM.lon: 88.363529\n    test 943 line 159 _ExactTM.easting: 6500508.399850\n    test 944 line 159 _ExactTM.northing: 6956476.342368\n    test 945 line 159 _ExactTM.gamma: 56.237116\n    test 946 line 159 _ExactTM.scale: 1.563162\n    test 947 line 159 _ExactTM.lat: 34.551257\n    test 948 line 159 _ExactTM.lon: 69.111091\n    test 949 line 160 _ExactTM.easting: 3884036.641314\n    test 950 line 160 _ExactTM.northing: 6890167.411733\n    test 951 line 160 _ExactTM.gamma: 45.760130\n    test 952 line 160 _ExactTM.scale: 1.190167\n    test 953 line 160 _ExactTM.lat: 47.929051\n    test 954 line 160 _ExactTM.lon: 54.103418\n    test 955 line 161 _ExactTM.easting: 217855.546078\n    test 956 line 161 _ExactTM.northing: 6184108.122568\n    test 957 line 161 _ExactTM.gamma: 2.870993\n    test 958 line 161 _ExactTM.scale: 1.000182\n    test 959 line 161 _ExactTM.lat: 55.753536\n    test 960 line 161 _ExactTM.lon: 3.471798\n    test 961 line 162 _ExactTM.easting: 11384139.290402\n    test 962 line 162 _ExactTM.northing: 8893889.949556\n    test 963 line 162 _ExactTM.gamma: 79.774854\n    test 964 line 162 _ExactTM.scale: 3.024672\n    test 965 line 162 _ExactTM.lat: 18.530847\n    test 966 line 162 _ExactTM.lon: 86.555312\n    test 967 line 163 _ExactTM.easting: 3469855.989805\n    test 968 line 163 _ExactTM.northing: 7723193.799228\n    test 969 line 163 _ExactTM.gamma: 53.114700\n    test 970 line 163 _ExactTM.scale: 1.150540\n    test 971 line 163 _ExactTM.lat: 54.510125\n    test 972 line 163 _ExactTM.lon: 58.556056\n    test 973 line 164 _ExactTM.easting: 5926165.994939\n    test 974 line 164 _ExactTM.northing: 9385463.732747\n    test 975 line 164 _ExactTM.gamma: 82.506981\n    test 976 line 164 _ExactTM.scale: 1.459758\n    test 977 line 164 _ExactTM.lat: 42.864162\n    test 978 line 164 _ExactTM.lon: 84.866326\n    test 979 line 165 _ExactTM.easting: 5798639.662224\n    test 980 line 165 _ExactTM.northing: 5305387.640916\n    test 981 line 165 _ExactTM.gamma: 38.617257\n    test 982 line 165 _ExactTM.scale: 1.442263\n    test 983 line 165 _ExactTM.lat: 30.911943\n    test 984 line 165 _ExactTM.lon: 57.114102\n    test 985 line 166 _ExactTM.easting: 9464.934388\n    test 986 line 166 _ExactTM.northing: 6489121.624944\n    test 987 line 166 _ExactTM.gamma: 0.138696\n    test 988 line 166 _ExactTM.scale: 0.999601\n    test 989 line 166 _ExactTM.lat: 58.542493\n    test 990 line 166 _ExactTM.lon: 0.162593\n    test 991 line 167 _ExactTM.easting: 12575834.275614\n    test 992 line 167 _ExactTM.northing: 8356610.895486\n    test 993 line 167 _ExactTM.gamma: 75.235223\n    test 994 line 167 _ExactTM.scale: 3.599442\n    test 995 line 167 _ExactTM.lat: 15.022689\n    test 996 line 167 _ExactTM.lon: 85.792615\n    test 997 line 168 _ExactTM.easting: 2719653.543469\n    test 998 line 168 _ExactTM.northing: 9362389.163495\n    test 999 line 168 _ExactTM.gamma: 76.049670\n    test 1000 line 168 _ExactTM.scale: 1.091315\n    test 1001 line 168 _ExactTM.lat: 65.692275\n    test 1002 line 168 _ExactTM.lon: 77.241377\n    test 1003 line 169 _ExactTM.easting: 4845341.924698\n    test 1004 line 169 _ExactTM.northing: 8710522.326901\n    test 1005 line 169 _ExactTM.gamma: 72.320942\n    test 1006 line 169 _ExactTM.scale: 1.300382\n    test 1007 line 169 _ExactTM.lat: 48.806211\n    test 1008 line 169 _ExactTM.lon: 76.486365\n    test 1009 line 170 _ExactTM.easting: 3935261.522763\n    test 1010 line 170 _ExactTM.northing: 9454271.649062\n    test 1011 line 170 _ExactTM.gamma: 81.162334\n    test 1012 line 170 _ExactTM.scale: 1.194767\n    test 1013 line 170 _ExactTM.lat: 56.436025\n    test 1014 line 170 _ExactTM.lon: 82.611568\n    test 1015 line 171 _ExactTM.easting: 7074299.823000\n    test 1016 line 171 _ExactTM.northing: 1648736.065055\n    test 1017 line 171 _ExactTM.gamma: 12.145925\n    test 1018 line 171 _ExactTM.scale: 1.687551\n    test 1019 line 171 _ExactTM.lat: 8.766053\n    test 1020 line 171 _ExactTM.lon: 54.367539\n    test 1021 line 172 _ExactTM.easting: 3689072.579308\n    test 1022 line 172 _ExactTM.northing: 2230802.665211\n    test 1023 line 172 _ExactTM.gamma: 10.856248\n    test 1024 line 172 _ExactTM.scale: 1.172689\n    test 1025 line 172 _ExactTM.lat: 17.095495\n    test 1026 line 172 _ExactTM.lon: 33.059128\n    test 1027 line 173 _ExactTM.easting: 8102565.885587\n    test 1028 line 173 _ExactTM.northing: 5167396.617580\n    test 1029 line 173 _ExactTM.gamma: 42.324886\n    test 1030 line 173 _ExactTM.scale: 1.921927\n    test 1031 line 173 _ExactTM.lat: 22.142861\n    test 1032 line 173 _ExactTM.lon: 67.200684\n    test 1033 line 174 _ExactTM.easting: 8181271.353564\n    test 1034 line 174 _ExactTM.northing: 4425436.547185\n    test 1035 line 174 _ExactTM.gamma: 35.900845\n    test 1036 line 174 _ExactTM.scale: 1.945017\n    test 1037 line 174 _ExactTM.lat: 19.222623\n    test 1038 line 174 _ExactTM.lon: 65.180785\n    test 1039 line 175 _ExactTM.easting: 767067.394003\n    test 1040 line 175 _ExactTM.northing: 3701745.857296\n    test 1041 line 175 _ExactTM.gamma: 4.519201\n    test 1042 line 175 _ExactTM.scale: 1.006863\n    test 1043 line 175 _ExactTM.lat: 33.182474\n    test 1044 line 175 _ExactTM.lon: 8.216952\n    test 1045 line 176 _ExactTM.easting: 6688114.168572\n    test 1046 line 176 _ExactTM.northing: 2052857.299639\n    test 1047 line 176 _ExactTM.gamma: 14.766191\n    test 1048 line 176 _ExactTM.scale: 1.607200\n    test 1049 line 176 _ExactTM.lat: 11.417963\n    test 1050 line 176 _ExactTM.lon: 52.808691\n    test 1051 line 177 _ExactTM.easting: 5608408.773761\n    test 1052 line 177 _ExactTM.northing: 3859055.659110\n    test 1053 line 177 _ExactTM.gamma: 26.244151\n    test 1054 line 177 _ExactTM.scale: 1.413463\n    test 1055 line 177 _ExactTM.lat: 23.836688\n    test 1056 line 177 _ExactTM.lon: 50.500180\n    test 1057 line 178 _ExactTM.easting: 3836942.765275\n    test 1058 line 178 _ExactTM.northing: 6415467.634326\n    test 1059 line 178 _ExactTM.gamma: 40.575885\n    test 1060 line 178 _ExactTM.scale: 1.185615\n    test 1061 line 178 _ExactTM.lat: 45.550020\n    test 1062 line 178 _ExactTM.lon: 50.148036\n    test 1063 line 179 _ExactTM.easting: 1298730.366025\n    test 1064 line 179 _ExactTM.northing: 6021453.000792\n    test 1065 line 179 _ExactTM.gamma: 15.613320\n    test 1066 line 179 _ExactTM.scale: 1.020367\n    test 1067 line 179 _ExactTM.lat: 52.746079\n    test 1068 line 179 _ExactTM.lon: 19.343926\n    test 1069 line 180 _ExactTM.easting: 416934.289208\n    test 1070 line 180 _ExactTM.northing: 7295683.451705\n    test 1071 line 180 _ExactTM.gamma: 8.238232\n    test 1072 line 180 _ExactTM.scale: 1.001729\n    test 1073 line 180 _ExactTM.lat: 65.513348\n    test 1074 line 180 _ExactTM.lon: 9.039529\n    test 1075 line 181 _ExactTM.easting: 4336076.850889\n    test 1076 line 181 _ExactTM.northing: 7617975.722779\n    test 1077 line 181 _ExactTM.gamma: 56.537088\n    test 1078 line 181 _ExactTM.scale: 1.238582\n    test 1079 line 181 _ExactTM.lat: 48.709795\n    test 1080 line 181 _ExactTM.lon: 63.554005\n    test 1081 line 182 _ExactTM.easting: 168047.336980\n    test 1082 line 182 _ExactTM.northing: 2185000.046530\n    test 1083 line 182 _ExactTM.gamma: 0.542187\n    test 1084 line 182 _ExactTM.scale: 0.999949\n    test 1085 line 182 _ExactTM.lat: 19.753509\n    test 1086 line 182 _ExactTM.lon: 1.603846\n    test 1087 line 183 _ExactTM.easting: 8276281.328790\n    test 1088 line 183 _ExactTM.northing: 263444.350545\n    test 1089 line 183 _ExactTM.gamma: 2.071435\n    test 1090 line 183 _ExactTM.scale: 1.980314\n    test 1091 line 183 _ExactTM.lat: 1.202816\n    test 1092 line 183 _ExactTM.lon: 59.377276\n    test 1093 line 184 _ExactTM.easting: 4772573.810710\n    test 1094 line 184 _ExactTM.northing: 6765710.336002\n    test 1095 line 184 _ExactTM.gamma: 48.857561\n    test 1096 line 184 _ExactTM.scale: 1.291911\n    test 1097 line 184 _ExactTM.lat: 42.564975\n    test 1098 line 184 _ExactTM.lon: 59.356947\n    test 1099 line 185 _ExactTM.easting: 5427755.074639\n    test 1100 line 185 _ExactTM.northing: 1556055.820924\n    test 1101 line 185 _ExactTM.gamma: 9.862178\n    test 1102 line 185 _ExactTM.scale: 1.387394\n    test 1103 line 185 _ExactTM.lat: 10.090572\n    test 1104 line 185 _ExactTM.lon: 44.604132\n    test 1105 line 186 _ExactTM.easting: 11588458.616041\n    test 1106 line 186 _ExactTM.northing: 5707993.922613\n    test 1107 line 186 _ExactTM.gamma: 50.784827\n    test 1108 line 186 _ExactTM.scale: 3.149567\n    test 1109 line 186 _ExactTM.lat: 14.133028\n    test 1110 line 186 _ExactTM.lon: 78.097533\n    test 1111 line 187 _ExactTM.easting: 7152433.802688\n    test 1112 line 187 _ExactTM.northing: 761390.695844\n    test 1113 line 187 _ExactTM.gamma: 5.607350\n    test 1114 line 187 _ExactTM.scale: 1.705261\n    test 1115 line 187 _ExactTM.lat: 4.031123\n    test 1116 line 187 _ExactTM.lon: 54.048782\n    test 1117 line 188 _ExactTM.easting: 3105651.390901\n    test 1118 line 188 _ExactTM.northing: 9426026.169064\n    test 1119 line 188 _ExactTM.gamma: 78.750206\n    test 1120 line 188 _ExactTM.scale: 1.119737\n    test 1121 line 188 _ExactTM.lat: 62.746603\n    test 1122 line 188 _ExactTM.lon: 79.968641\n    test 1123 line 189 _ExactTM.easting: 2959009.639022\n    test 1124 line 189 _ExactTM.northing: 8339242.269282\n    test 1125 line 189 _ExactTM.gamma: 58.460865\n    test 1126 line 189 _ExactTM.scale: 1.108554\n    test 1127 line 189 _ExactTM.lat: 60.626429\n    test 1128 line 189 _ExactTM.lon: 61.851551\n    test 1129 line 190 _ExactTM.easting: 8640472.267145\n    test 1130 line 190 _ExactTM.northing: 6230320.417931\n    test 1131 line 190 _ExactTM.gamma: 52.816810\n    test 1132 line 190 _ExactTM.scale: 2.062973\n    test 1133 line 190 _ExactTM.lat: 23.600626\n    test 1134 line 190 _ExactTM.lon: 72.811634\n    test 1135 line 191 _ExactTM.easting: 811352.108932\n    test 1136 line 191 _ExactTM.northing: 9816129.813481\n    test 1137 line 191 _ExactTM.gamma: 77.299184\n    test 1138 line 191 _ExactTM.scale: 1.007651\n    test 1139 line 191 _ExactTM.lat: 82.572236\n    test 1140 line 191 _ExactTM.lon: 77.402323\n    test 1141 line 192 _ExactTM.easting: 6521874.973458\n    test 1142 line 192 _ExactTM.northing: 1053612.479744\n    test 1143 line 192 _ExactTM.gamma: 7.407328\n    test 1144 line 192 _ExactTM.scale: 1.575529\n    test 1145 line 192 _ExactTM.lat: 6.030051\n    test 1146 line 192 _ExactTM.lon: 50.783505\n    test 1147 line 193 _ExactTM.easting: 3477983.997875\n    test 1148 line 193 _ExactTM.northing: 5651613.325947\n    test 1149 line 193 _ExactTM.gamma: 31.530673\n    test 1150 line 193 _ExactTM.scale: 1.151875\n    test 1151 line 193 _ExactTM.lat: 42.411523\n    test 1152 line 193 _ExactTM.lon: 42.258009\n    test 1153 line 194 _ExactTM.easting: 629892.822243\n    test 1154 line 194 _ExactTM.northing: 3283914.910451\n    test 1155 line 194 _ExactTM.gamma: 3.210482\n    test 1156 line 194 _ExactTM.scale: 1.004499\n    test 1157 line 194 _ExactTM.lat: 29.526120\n    test 1158 line 194 _ExactTM.lon: 6.493069\n    test 1159 line 195 _ExactTM.easting: 3381879.687227\n    test 1160 line 195 _ExactTM.northing: 5103629.325665\n    test 1161 line 195 _ExactTM.gamma: 26.748108\n    test 1162 line 195 _ExactTM.scale: 1.143559\n    test 1163 line 195 _ExactTM.lat: 39.021853\n    test 1164 line 195 _ExactTM.lon: 38.641779\n    test 1165 line 196 _ExactTM.easting: 2815986.534177\n    test 1166 line 196 _ExactTM.northing: 9387029.120718\n    test 1167 line 196 _ExactTM.gamma: 76.967262\n    test 1168 line 196 _ExactTM.scale: 1.098032\n    test 1169 line 196 _ExactTM.lat: 64.971850\n    test 1170 line 196 _ExactTM.lon: 78.151893\n    test 1171 line 197 _ExactTM.easting: 3398195.889603\n    test 1172 line 197 _ExactTM.northing: 9138936.031490\n    test 1173 line 197 _ExactTM.gamma: 74.477499\n    test 1174 line 197 _ExactTM.scale: 1.144009\n    test 1175 line 197 _ExactTM.lat: 59.961819\n    test 1176 line 197 _ExactTM.lon: 76.473422\n    test 1177 line 198 _ExactTM.easting: 2421734.754637\n    test 1178 line 198 _ExactTM.northing: 5002372.094991\n    test 1179 line 198 _ExactTM.gamma: 20.017082\n    test 1180 line 198 _ExactTM.scale: 1.072592\n    test 1181 line 198 _ExactTM.lat: 41.374040\n    test 1182 line 198 _ExactTM.lon: 28.848343\n    test 1183 line 199 _ExactTM.easting: 2360869.895525\n    test 1184 line 199 _ExactTM.northing: 9553298.449536\n    test 1185 line 199 _ExactTM.gamma: 78.848205\n    test 1186 line 199 _ExactTM.scale: 1.068453\n    test 1187 line 199 _ExactTM.lat: 68.946087\n    test 1188 line 199 _ExactTM.lon: 79.574523\n    test 1189 line 200 _ExactTM.easting: 1196539.972194\n    test 1190 line 200 _ExactTM.northing: 9861920.836230\n    test 1191 line 200 _ExactTM.gamma: 83.437668\n    test 1192 line 200 _ExactTM.scale: 1.017137\n    test 1193 line 200 _ExactTM.lat: 79.275096\n    test 1194 line 200 _ExactTM.lon: 83.551272\n    test 1195 line 201 _ExactTM.easting: 1327758.704795\n    test 1196 line 201 _ExactTM.northing: 2375509.241683\n    test 1197 line 201 _ExactTM.gamma: 4.617572\n    test 1198 line 201 _ExactTM.scale: 1.021465\n    test 1199 line 201 _ExactTM.lat: 21.000252\n    test 1200 line 201 _ExactTM.lon: 12.697444\n    test 1201 line 202 _ExactTM.easting: 2070860.327644\n    test 1202 line 202 _ExactTM.northing: 8604500.719581\n    test 1203 line 202 _ExactTM.gamma: 54.722761\n    test 1204 line 202 _ExactTM.scale: 1.052469\n    test 1205 line 202 _ExactTM.lat: 68.015227\n    test 1206 line 202 _ExactTM.lon: 56.732419\n    test 1207 line 203 _ExactTM.easting: 6564776.654864\n    test 1208 line 203 _ExactTM.northing: 8171207.177379\n    test 1209 line 203 _ExactTM.gamma: 69.237523\n    test 1210 line 203 _ExactTM.scale: 1.573894\n    test 1211 line 203 _ExactTM.lat: 37.423675\n    test 1212 line 203 _ExactTM.lon: 76.947359\n    test 1213 line 204 _ExactTM.easting: 592653.553821\n    test 1214 line 204 _ExactTM.northing: 6125529.810052\n    test 1215 line 204 _ExactTM.gamma: 7.600785\n    test 1216 line 204 _ExactTM.scale: 1.003912\n    test 1217 line 204 _ExactTM.lat: 54.922707\n    test 1218 line 204 _ExactTM.lon: 9.260818\n    test 1219 line 205 _ExactTM.easting: 693459.671821\n    test 1220 line 205 _ExactTM.northing: 6943779.991032\n    test 1221 line 205 _ExactTM.gamma: 11.787587\n    test 1222 line 205 _ExactTM.scale: 1.005496\n    test 1223 line 205 _ExactTM.lat: 61.982810\n    test 1224 line 205 _ExactTM.lon: 13.299659\n    test 1225 line 206 _ExactTM.easting: 1838956.187625\n    test 1226 line 206 _ExactTM.northing: 3511959.612381\n    test 1227 line 206 _ExactTM.gamma: 9.844313\n    test 1228 line 206 _ExactTM.scale: 1.041603\n    test 1229 line 206 _ExactTM.lat: 30.324214\n    test 1230 line 206 _ExactTM.lon: 18.959769\n    test 1231 line 207 _ExactTM.easting: 4460690.884597\n    test 1232 line 207 _ExactTM.northing: 5541873.235403\n    test 1233 line 207 _ExactTM.gamma: 35.768613\n    test 1234 line 207 _ExactTM.scale: 1.254179\n    test 1235 line 207 _ExactTM.lat: 37.629667\n    test 1236 line 207 _ExactTM.lon: 49.649131\n    test 1237 line 208 _ExactTM.easting: 2311168.998941\n    test 1238 line 208 _ExactTM.northing: 9480561.869119\n    test 1239 line 208 _ExactTM.gamma: 76.828257\n    test 1240 line 208 _ExactTM.scale: 1.065556\n    test 1241 line 208 _ExactTM.lat: 69.225574\n    test 1242 line 208 _ExactTM.lon: 77.656135\n    test 1243 line 209 _ExactTM.easting: 4111775.114451\n    test 1244 line 209 _ExactTM.northing: 6509014.348792\n    test 1245 line 209 _ExactTM.gamma: 43.052130\n    test 1246 line 209 _ExactTM.scale: 1.214125\n    test 1247 line 209 _ExactTM.lat: 44.698478\n    test 1248 line 209 _ExactTM.lon: 52.979304\n    test 1249 line 210 _ExactTM.easting: 75358.261962\n    test 1250 line 210 _ExactTM.northing: 7711258.662251\n    test 1251 line 210 _ExactTM.gamma: 1.806297\n    test 1252 line 210 _ExactTM.scale: 0.999669\n    test 1253 line 210 _ExactTM.lat: 69.499594\n    test 1254 line 210 _ExactTM.lon: 1.928336\n    test 1255 line 211 _ExactTM.easting: 8781885.229116\n    test 1256 line 211 _ExactTM.northing: 9184776.452211\n    test 1257 line 211 _ExactTM.gamma: 81.795539\n    test 1258 line 211 _ExactTM.scale: 2.094908\n    test 1259 line 211 _ExactTM.lat: 27.981364\n    test 1260 line 211 _ExactTM.lon: 86.061113\n    test 1261 line 212 _ExactTM.easting: 954378.415174\n    test 1262 line 212 _ExactTM.northing: 7449110.669807\n    test 1263 line 212 _ExactTM.gamma: 19.380657\n    test 1264 line 212 _ExactTM.scale: 1.010768\n    test 1265 line 212 _ExactTM.lat: 65.699839\n    test 1266 line 212 _ExactTM.lon: 21.104725\n    test 1267 line 213 _ExactTM.easting: 720971.793706\n    test 1268 line 213 _ExactTM.northing: 5265195.121555\n    test 1269 line 213 _ExactTM.gamma: 7.002995\n    test 1270 line 213 _ExactTM.scale: 1.005995\n    test 1271 line 213 _ExactTM.lat: 47.143648\n    test 1272 line 213 _ExactTM.lon: 9.512189\n    test 1273 line 214 _ExactTM.easting: 561561.493937\n    test 1274 line 214 _ExactTM.northing: 989910.236221\n    test 1275 line 214 _ExactTM.gamma: 0.793118\n    test 1276 line 214 _ExactTM.scale: 1.003505\n    test 1277 line 214 _ExactTM.lat: 8.920167\n    test 1278 line 214 _ExactTM.lon: 5.101513\n    test 1279 line 215 _ExactTM.easting: 3446829.634468\n    test 1280 line 215 _ExactTM.northing: 9232868.155664\n    test 1281 line 215 _ExactTM.gamma: 76.279075\n    test 1282 line 215 _ExactTM.scale: 1.148263\n    test 1283 line 215 _ExactTM.lat: 59.778971\n    test 1284 line 215 _ExactTM.lon: 78.080322\n    test 1285 line 216 _ExactTM.easting: 4048307.545909\n    test 1286 line 216 _ExactTM.northing: 9800416.422998\n    test 1287 line 216 _ExactTM.gamma: 86.843918\n    test 1288 line 216 _ExactTM.scale: 1.206495\n    test 1289 line 216 _ExactTM.lat: 55.865310\n    test 1290 line 216 _ExactTM.lon: 87.384288\n    test 1291 line 217 _ExactTM.easting: 8973188.480293\n    test 1292 line 217 _ExactTM.northing: 7042230.087021\n    test 1293 line 217 _ExactTM.gamma: 60.872456\n    test 1294 line 217 _ExactTM.scale: 2.156098\n    test 1295 line 217 _ExactTM.lat: 24.310973\n    test 1296 line 217 _ExactTM.lon: 76.823777\n    test 1297 line 218 _ExactTM.easting: 126314.191618\n    test 1298 line 218 _ExactTM.northing: 396006.687921\n    test 1299 line 218 _ExactTM.gamma: 0.071065\n    test 1300 line 218 _ExactTM.scale: 0.999798\n    test 1301 line 218 _ExactTM.lat: 3.582041\n    test 1302 line 218 _ExactTM.lon: 1.137286\n    test 1303 line 219 _ExactTM.easting: 5247652.345647\n    test 1304 line 219 _ExactTM.northing: 8670513.359752\n    test 1305 line 219 _ExactTM.gamma: 72.700498\n    test 1306 line 219 _ExactTM.scale: 1.355272\n    test 1307 line 219 _ExactTM.lat: 46.124233\n    test 1308 line 219 _ExactTM.lon: 77.313118\n    test 1309 line 220 _ExactTM.easting: 8103656.838119\n    test 1310 line 220 _ExactTM.northing: 9469794.014737\n    test 1311 line 220 _ExactTM.gamma: 84.490673\n    test 1312 line 220 _ExactTM.scale: 1.912164\n    test 1313 line 220 _ExactTM.lat: 31.171391\n    test 1314 line 220 _ExactTM.lon: 87.104504\n    test 1315 line 221 _ExactTM.easting: 6300112.758236\n    test 1316 line 221 _ExactTM.northing: 93835.917364\n    test 1317 line 221 _ExactTM.gamma: 0.644805\n    test 1318 line 221 _ExactTM.scale: 1.534073\n    test 1319 line 221 _ExactTM.lat: 0.553171\n    test 1320 line 221 _ExactTM.lon: 49.117104\n    test 1321 line 222 _ExactTM.easting: 3894813.593782\n    test 1322 line 222 _ExactTM.northing: 4833832.341027\n    test 1323 line 222 _ExactTM.gamma: 27.453298\n    test 1324 line 222 _ExactTM.scale: 1.192135\n    test 1325 line 222 _ExactTM.lat: 35.361587\n    test 1326 line 222 _ExactTM.lon: 41.860599\n    test 1327 line 223 _ExactTM.easting: 402511.346712\n    test 1328 line 223 _ExactTM.northing: 3520621.561911\n    test 1329 line 223 _ExactTM.gamma: 2.238474\n    test 1330 line 223 _ExactTM.scale: 1.001599\n    test 1331 line 223 _ExactTM.lat: 31.750314\n    test 1332 line 223 _ExactTM.lon: 4.248167\n    test 1333 line 224 _ExactTM.easting: 5357378.503148\n    test 1334 line 224 _ExactTM.northing: 2772997.602234\n    test 1335 line 224 _ExactTM.gamma: 17.823560\n    test 1336 line 224 _ExactTM.scale: 1.376031\n    test 1337 line 224 _ExactTM.lat: 17.924336\n    test 1338 line 224 _ExactTM.lon: 46.096402\n    test 1339 line 225 _ExactTM.easting: 2807553.985866\n    test 1340 line 225 _ExactTM.northing: 8177847.980275\n    test 1341 line 225 _ExactTM.gamma: 54.680045\n    test 1342 line 225 _ExactTM.scale: 1.097531\n    test 1343 line 225 _ExactTM.lat: 60.931488\n    test 1344 line 225 _ExactTM.lon: 58.221214\n    test 1345 line 226 _ExactTM.easting: 18289045.166501\n    test 1346 line 226 _ExactTM.northing: 7792942.339604\n    test 1347 line 226 _ExactTM.gamma: 73.216494\n    test 1348 line 226 _ExactTM.scale: 8.098009\n    test 1349 line 226 _ExactTM.lat: 5.358151\n    test 1350 line 226 _ExactTM.lon: 87.556213\n    test 1351 line 227 _ExactTM.easting: 8376822.459538\n    test 1352 line 227 _ExactTM.northing: 8128174.623878\n    test 1353 line 227 _ExactTM.gamma: 70.920117\n    test 1354 line 227 _ExactTM.scale: 1.984873\n    test 1355 line 227 _ExactTM.lat: 28.616673\n    test 1356 line 227 _ExactTM.lon: 80.452426\n    test 1357 line 228 _ExactTM.easting: 11898068.353272\n    test 1358 line 228 _ExactTM.northing: 4772439.493697\n    test 1359 line 228 _ExactTM.gamma: 42.613968\n    test 1360 line 228 _ExactTM.scale: 3.314412\n    test 1361 line 228 _ExactTM.lat: 11.709763\n    test 1362 line 228 _ExactTM.lon: 76.760295\n    test 1363 line 229 _ExactTM.easting: 10550946.939050\n    test 1364 line 229 _ExactTM.northing: 3851968.815295\n    test 1365 line 229 _ExactTM.gamma: 33.383025\n    test 1366 line 229 _ExactTM.scale: 2.724754\n    test 1367 line 229 _ExactTM.lat: 12.009498\n    test 1368 line 229 _ExactTM.lon: 71.782351\n    test 1369 line 230 _ExactTM.easting: 6828299.123607\n    test 1370 line 230 _ExactTM.northing: 9394803.227463\n    test 1371 line 230 _ExactTM.gamma: 83.181386\n    test 1372 line 230 _ExactTM.scale: 1.624359\n    test 1373 line 230 _ExactTM.lat: 37.629784\n    test 1374 line 230 _ExactTM.lon: 85.795687\n    test 1375 line 231 _ExactTM.easting: 11162550.334022\n    test 1376 line 231 _ExactTM.northing: 2640267.279593\n    test 1377 line 231 _ExactTM.gamma: 23.145404\n    test 1378 line 231 _ExactTM.scale: 2.998408\n    test 1379 line 231 _ExactTM.lat: 7.721128\n    test 1380 line 231 _ExactTM.lon: 71.662731\n    test 1381 line 232 _ExactTM.easting: 4411584.447941\n    test 1382 line 232 _ExactTM.northing: 4956173.694407\n    test 1383 line 232 _ExactTM.gamma: 30.713919\n    test 1384 line 232 _ExactTM.scale: 1.248736\n    test 1385 line 232 _ExactTM.lat: 34.295026\n    test 1386 line 232 _ExactTM.lon: 46.442191\n    test 1387 line 233 _ExactTM.easting: 672108.897905\n    test 1388 line 233 _ExactTM.northing: 4751554.657054\n    test 1389 line 233 _ExactTM.gamma: 5.569178\n    test 1390 line 233 _ExactTM.scale: 1.005162\n    test 1391 line 233 _ExactTM.lat: 42.622496\n    test 1392 line 233 _ExactTM.lon: 8.193605\n    test 1393 line 234 _ExactTM.easting: 5022964.290579\n    test 1394 line 234 _ExactTM.northing: 6860418.199502\n    test 1395 line 234 _ExactTM.gamma: 50.862230\n    test 1396 line 234 _ExactTM.scale: 1.324925\n    test 1397 line 234 _ExactTM.lat: 41.667780\n    test 1398 line 234 _ExactTM.lon: 61.518288\n    test 1399 line 235 _ExactTM.easting: 1669655.595207\n    test 1400 line 235 _ExactTM.northing: 4152086.537021\n    test 1401 line 235 _ExactTM.gamma: 11.110237\n    test 1402 line 235 _ExactTM.scale: 1.034138\n    test 1403 line 235 _ExactTM.lat: 36.060369\n    test 1404 line 235 _ExactTM.lon: 18.444112\n    test 1405 line 236 _ExactTM.easting: 6055876.729655\n    test 1406 line 236 _ExactTM.northing: 4896837.552619\n    test 1407 line 236 _ExactTM.gamma: 35.799747\n    test 1408 line 236 _ExactTM.scale: 1.485967\n    test 1409 line 236 _ExactTM.lat: 27.948091\n    test 1410 line 236 _ExactTM.lon: 56.816429\n    test 1411 line 237 _ExactTM.easting: 1209214.164379\n    test 1412 line 237 _ExactTM.northing: 7266409.859178\n    test 1413 line 237 _ExactTM.gamma: 22.319633\n    test 1414 line 237 _ExactTM.scale: 1.017554\n    test 1415 line 237 _ExactTM.lat: 63.386030\n    test 1416 line 237 _ExactTM.lon: 24.662716\n    test 1417 line 238 _ExactTM.easting: 5154564.559584\n    test 1418 line 238 _ExactTM.northing: 698118.349975\n    test 1419 line 238 _ExactTM.gamma: 4.242360\n    test 1420 line 238 _ExactTM.scale: 1.347481\n    test 1421 line 238 _ExactTM.lat: 4.680922\n    test 1422 line 238 _ExactTM.lon: 42.114426\n    test 1423 line 239 _ExactTM.easting: 2695149.806543\n    test 1424 line 239 _ExactTM.northing: 8208197.765605\n    test 1425 line 239 _ExactTM.gamma: 54.178615\n    test 1426 line 239 _ExactTM.scale: 1.089730\n    test 1427 line 239 _ExactTM.lat: 61.826625\n    test 1428 line 239 _ExactTM.lon: 57.525096\n    test 1429 line 240 _ExactTM.easting: 3394792.327820\n    test 1430 line 240 _ExactTM.northing: 3217583.415552\n    test 1431 line 240 _ExactTM.gamma: 15.165863\n    test 1432 line 240 _ExactTM.scale: 1.145285\n    test 1433 line 240 _ExactTM.lat: 25.104353\n    test 1434 line 240 _ExactTM.lon: 32.528660\n    test 1435 line 241 _ExactTM.easting: 1429160.966985\n    test 1436 line 241 _ExactTM.northing: 8212685.362032\n    test 1437 line 241 _ExactTM.gamma: 37.484904\n    test 1438 line 241 _ExactTM.scale: 1.024676\n    test 1439 line 241 _ExactTM.lat: 69.678351\n    test 1440 line 241 _ExactTM.lon: 39.275513\n    test 1441 line 242 _ExactTM.easting: 8343387.998065\n    test 1442 line 242 _ExactTM.northing: 8885196.954578\n    test 1443 line 242 _ExactTM.gamma: 78.561937\n    test 1444 line 242 _ExactTM.scale: 1.974733\n    test 1445 line 242 _ExactTM.lat: 29.671384\n    test 1446 line 242 _ExactTM.lon: 84.196595\n    test 1447 line 243 _ExactTM.easting: 1990722.928606\n    test 1448 line 243 _ExactTM.northing: 7569202.065162\n    test 1449 line 243 _ExactTM.gamma: 37.075276\n    test 1450 line 243 _ExactTM.scale: 1.048486\n    test 1451 line 243 _ExactTM.lat: 62.300208\n    test 1452 line 243 _ExactTM.lon: 40.474051\n    test 1453 line 244 _ExactTM.easting: 1554980.099559\n    test 1454 line 244 _ExactTM.northing: 1449423.919586\n    test 1455 line 244 _ExactTM.gamma: 3.188328\n    test 1456 line 244 _ExactTM.scale: 1.029664\n    test 1457 line 244 _ExactTM.lat: 12.721776\n    test 1458 line 244 _ExactTM.lon: 14.190003\n    test 1459 line 245 _ExactTM.easting: 785205.450196\n    test 1460 line 245 _ExactTM.northing: 5575158.423096\n    test 1461 line 245 _ExactTM.gamma: 8.388417\n    test 1462 line 245 _ExactTM.scale: 1.007181\n    test 1463 line 245 _ExactTM.lat: 49.811296\n    test 1464 line 245 _ExactTM.lon: 10.925011\n    test 1465 line 246 _ExactTM.easting: 3310405.988313\n    test 1466 line 246 _ExactTM.northing: 5955022.233881\n    test 1467 line 246 _ExactTM.gamma: 33.007587\n    test 1468 line 246 _ExactTM.scale: 1.137141\n    test 1469 line 246 _ExactTM.lat: 45.132680\n    test 1470 line 246 _ExactTM.lon: 42.478624\n    test 1471 line 247 _ExactTM.easting: 4733460.960666\n    test 1472 line 247 _ExactTM.northing: 129034.889816\n    test 1473 line 247 _ExactTM.gamma: 0.737551\n    test 1474 line 247 _ExactTM.scale: 1.290439\n    test 1475 line 247 _ExactTM.lat: 0.904279\n    test 1476 line 247 _ExactTM.lon: 39.078412\n    test 1477 line 248 _ExactTM.easting: 3322708.343909\n    test 1478 line 248 _ExactTM.northing: 3864738.078742\n    test 1479 line 248 _ExactTM.gamma: 18.472566\n    test 1480 line 248 _ExactTM.scale: 1.138838\n    test 1481 line 248 _ExactTM.lat: 30.163605\n    test 1482 line 248 _ExactTM.lon: 33.577996\n    test 1483 line 249 _ExactTM.easting: 8672864.417204\n    test 1484 line 249 _ExactTM.northing: 8333465.983444\n    test 1485 line 249 _ExactTM.gamma: 73.206273\n    test 1486 line 249 _ExactTM.scale: 2.065441\n    test 1487 line 249 _ExactTM.lat: 27.643244\n    test 1488 line 249 _ExactTM.lon: 81.892859\n    test 1489 line 250 _ExactTM.easting: 11126818.231196\n    test 1490 line 250 _ExactTM.northing: 7618712.174991\n    test 1491 line 250 _ExactTM.gamma: 67.887173\n    test 1492 line 250 _ExactTM.scale: 2.922417\n    test 1493 line 250 _ExactTM.lat: 18.201208\n    test 1494 line 250 _ExactTM.lon: 82.434618\n    test 1495 line 251 _ExactTM.easting: 8650100.981797\n    test 1496 line 251 _ExactTM.northing: 9975084.168997\n    test 1497 line 251 _ExactTM.gamma: 89.767446\n    test 1498 line 251 _ExactTM.scale: 2.057289\n    test 1499 line 251 _ExactTM.lat: 28.804576\n    test 1500 line 251 _ExactTM.lon: 89.886072\n    test 1501 line 252 _ExactTM.easting: 2212701.180192\n    test 1502 line 252 _ExactTM.northing: 650348.100229\n    test 1503 line 252 _ExactTM.gamma: 1.970441\n    test 1504 line 252 _ExactTM.scale: 1.060830\n    test 1505 line 252 _ExactTM.lat: 5.542998\n    test 1506 line 252 _ExactTM.lon: 19.589578\n    test 1507 line 253 _ExactTM.easting: 6890222.326618\n    test 1508 line 253 _ExactTM.northing: 7506813.499547\n    test 1509 line 253 _ExactTM.gamma: 62.684825\n    test 1510 line 253 _ExactTM.scale: 1.638488\n    test 1511 line 253 _ExactTM.lat: 34.237147\n    test 1512 line 253 _ExactTM.lon: 73.678164\n    test 1513 line 254 _ExactTM.easting: 6692260.067325\n    test 1514 line 254 _ExactTM.northing: 4244174.008110\n    test 1515 line 254 _ExactTM.gamma: 31.812920\n    test 1516 line 254 _ExactTM.scale: 1.604640\n    test 1517 line 254 _ExactTM.lat: 22.704949\n    test 1518 line 254 _ExactTM.lon: 57.877010\n    test 1519 line 255 _ExactTM.easting: 1225564.137190\n    test 1520 line 255 _ExactTM.northing: 4778923.924144\n    test 1521 line 255 _ExactTM.gamma: 10.083419\n    test 1522 line 255 _ExactTM.scale: 1.018134\n    test 1523 line 255 _ExactTM.lat: 42.192424\n    test 1524 line 255 _ExactTM.lon: 14.828196\n    test 1525 line 256 _ExactTM.easting: 12341116.154950\n    test 1526 line 256 _ExactTM.northing: 5081855.521966\n    test 1527 line 256 _ExactTM.gamma: 45.712546\n    test 1528 line 256 _ExactTM.scale: 3.535170\n    test 1529 line 256 _ExactTM.lat: 11.481151\n    test 1530 line 256 _ExactTM.lon: 78.189236\n    test 1531 line 257 _ExactTM.easting: 6673845.021771\n    test 1532 line 257 _ExactTM.northing: 1177587.190565\n    test 1533 line 257 _ExactTM.gamma: 8.389141\n    test 1534 line 257 _ExactTM.scale: 1.605171\n    test 1535 line 257 _ExactTM.lat: 6.609626\n    test 1536 line 257 _ExactTM.lon: 51.735783\n    test 1537 line 258 _ExactTM.easting: 6966354.690417\n    test 1538 line 258 _ExactTM.northing: 3641802.005093\n    test 1539 line 258 _ExactTM.gamma: 27.409636\n    test 1540 line 258 _ExactTM.scale: 1.661469\n    test 1541 line 258 _ExactTM.lat: 19.059369\n    test 1542 line 258 _ExactTM.lon: 57.526439\n    test 1543 max forward error: 2.048910e-08\n    test 1544 max reverse error: 8.526513e-14\n    test 1545 _ExactTM.scale0: 0.9996\n    test 1546 _ExactTM.datum: WGS84\n    test 1547 _ExactTM.datum.ellipsoid.KsOrder: 8\n    test 1548 WGS84.KsOrder: 8\n\n    all 1548 testExactTMcoords.py tests passed, 1 skipped (pygeodesy 26.3.26 Python 3.14.3 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 1.511 sec\nrunning /Library/Framewo....n3.14 -W default ~/PyGeodesy/test/testFmath.py\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.EPS from .constants by testFmath.py line 11\n# lazily imported pygeodesy.Fcbrt from .fmath by testFmath.py line 11\n# lazily imported pygeodesy.Fhypot from .fmath by testFmath.py line 11\n# lazily imported pygeodesy.INF from .constants by testFmath.py line 11\n# lazily imported pygeodesy.Fpowers from .fmath by testFmath.py line 11\n# lazily imported pygeodesy.Froot from .fmath by testFmath.py line 11\n# lazily imported pygeodesy.Fsqrt from .fmath by testFmath.py line 11\n# lazily imported pygeodesy.Fsum from .fsums by testFmath.py line 11\n# lazily imported pygeodesy.bqrt from .fmath by testFmath.py line 11\n# lazily imported pygeodesy.cbrt from .fmath by testFmath.py line 11\n# lazily imported pygeodesy.cbrt2 from .fmath by testFmath.py line 11\n# lazily imported pygeodesy.euclid_ from .fmath by testFmath.py line 11\n# lazily imported pygeodesy.Ellipsoids from .ellipsoids by testFmath.py line 11\n# lazily imported pygeodesy.facos1 from .fmath by testFmath.py line 11\n# lazily imported pygeodesy.fasin1 from .fmath by testFmath.py line 11\n# lazily imported pygeodesy.fatan from .fmath by testFmath.py line 11\n# lazily imported pygeodesy.fatan1 from .fmath by testFmath.py line 11\n# lazily imported pygeodesy.fatan2 from .fmath by testFmath.py line 11\n# lazily imported pygeodesy.fhorner from .fmath by testFmath.py line 11\n# lazily imported pygeodesy.fma from .fmath by testFmath.py line 11\n# lazily imported pygeodesy.f2mul_ from .fmath by testFmath.py line 11\n# lazily imported pygeodesy.fpolynomial from .fmath by testFmath.py line 11\n# lazily imported pygeodesy.fpowers from .fmath by testFmath.py line 11\n# lazily imported pygeodesy.frandoms from .fmath by testFmath.py line 11\n# lazily imported pygeodesy.fsum_ from .fsums by testFmath.py line 11\n# lazily imported pygeodesy.hypot from .fmath by testFmath.py line 11\n# lazily imported pygeodesy.hypot_ from .fmath by testFmath.py line 11\n# lazily imported pygeodesy.hypot2_ from .fmath by testFmath.py line 11\n# lazily imported pygeodesy.isinf from .constants by testFmath.py line 11\n# lazily imported pygeodesy.norm_ from .fmath by testFmath.py line 11\n# lazily imported pygeodesy.signOf from .basics by testFmath.py line 11\n# lazily imported pygeodesy.sqrt3 from .fmath by testFmath.py line 11\n# lazily imported pygeodesy.sqrt_a from .fmath by testFmath.py line 11\n# lazily imported pygeodesy.zcrt from .fmath by testFmath.py line 11\n# lazily imported pygeodesy.zqrt from .fmath by testFmath.py line 11\n\n    testing testFmath.py 25.09.09 (module pygeodesy.fmath 26.03.25) isLazy=3\n    test 1 fpolynomialA: 1.21197509765625\n    test 2 fhornerA: 1.21197509765625\n    test 3 fpolynomialB: 0.1513671875\n    test 4 fhornerB: 0.1513671875\n\n    test 5 fpolynomialA: 1.21197509765625\n    test 6 fhornerA: 1.21197509765625\n    test 7 fpolynomialB: 0.1513671875\n    test 8 fhornerB: 0.1513671875\n\n    test 9 fpolynomialA: 1.21197509765625\n    test 10 fhornerA: 1.21197509765625\n    test 11 fpolynomialB: 0.1513671875\n    test 12 fhornerB: 0.1513671875\n\n    test 13 fpolynomialA: 1.21197509765625\n    test 14 fhornerA: 1.21197509765625\n    test 15 fpolynomialB: 0.1513671875\n    test 16 fhornerB: 0.1513671875\n\n    test 17 fpolynomialA: 1.21197509765625\n    test 18 fhornerA: 1.21197509765625\n    test 19 fpolynomialB: 0.1513671875\n    test 20 fhornerB: 0.1513671875\n\n    test 21 fpolynomialA: 1.21197509765625\n    test 22 fhornerA: 1.21197509765625\n    test 23 fpolynomialB: 0.1513671875\n    test 24 fhornerB: 0.1513671875\n\n    test 25 fpolynomialA: 1.21197509765625\n    test 26 fhornerA: 1.21197509765625\n    test 27 fpolynomialB: 0.1513671875\n    test 28 fhornerB: 0.1513671875\n\n    test 29 fpolynomialA: 1.21197509765625\n    test 30 fhornerA: 1.21197509765625\n    test 31 fpolynomialB: 0.1513671875\n    test 32 fhornerB: 0.1513671875\n\n    test 33 fpolynomialA: 1.21197509765625\n    test 34 fhornerA: 1.21197509765625\n    test 35 fpolynomialB: 0.1513671875\n    test 36 fhornerB: 0.1513671875\n\n    test 37 fpolynomialA: 1.21197509765625\n    test 38 fhornerA: 1.21197509765625\n    test 39 fpolynomialB: 0.1513671875\n    test 40 fhornerB: 0.1513671875\n\n    test 41 fpolynomialA: 1.21197509765625\n    test 42 fhornerA: 1.21197509765625\n    test 43 fpolynomialB: 0.1513671875\n    test 44 fhornerB: 0.1513671875\n\n    test 45 fpolynomialA: 1.21197509765625\n    test 46 fhornerA: 1.21197509765625\n    test 47 fpolynomialB: 0.1513671875\n    test 48 fhornerB: 0.1513671875\n\n    test 49 fpolynomialA: 1.21197509765625\n    test 50 fhornerA: 1.21197509765625\n    test 51 fpolynomialB: 0.1513671875\n    test 52 fhornerB: 0.1513671875\n\n    test 53 fpolynomialA: 1.21197509765625\n    test 54 fhornerA: 1.21197509765625\n    test 55 fpolynomialB: 0.1513671875\n    test 56 fhornerB: 0.1513671875\n\n    test 57 fpolynomialA: 1.21197509765625\n    test 58 fhornerA: 1.21197509765625\n    test 59 fpolynomialB: 0.1513671875\n    test 60 fhornerB: 0.1513671875\n\n    test 61 fpolynomialA: 1.21197509765625\n    test 62 fhornerA: 1.21197509765625\n    test 63 fpolynomialB: 0.1513671875\n    test 64 fhornerB: 0.1513671875\n\n    test 65 fpolynomialA: 1.21197509765625\n    test 66 fhornerA: 1.21197509765625\n    test 67 fpolynomialB: 0.1513671875\n    test 68 fhornerB: 0.1513671875\n\n    test 69 fpolynomialA: 1.21197509765625\n    test 70 fhornerA: 1.21197509765625\n    test 71 fpolynomialB: 0.1513671875\n    test 72 fhornerB: 0.1513671875\n\n    test 73 fpolynomialA: 1.21197509765625\n    test 74 fhornerA: 1.21197509765625\n    test 75 fpolynomialB: 0.1513671875\n    test 76 fhornerB: 0.1513671875\n\n    test 77 fpolynomialA: 1.21197509765625\n    test 78 fhornerA: 1.21197509765625\n    test 79 fpolynomialB: 0.1513671875\n    test 80 fhornerB: 0.1513671875\n\n    test 81 fpolynomialA: 1.21197509765625\n    test 82 fhornerA: 1.21197509765625\n    test 83 fpolynomialB: 0.1513671875\n    test 84 fhornerB: 0.1513671875\n\n    test 85 fpolynomialA: 1.21197509765625\n    test 86 fhornerA: 1.21197509765625\n    test 87 fpolynomialB: 0.1513671875\n    test 88 fhornerB: 0.1513671875\n\n    test 89 fpolynomialA: 1.21197509765625\n    test 90 fhornerA: 1.21197509765625\n    test 91 fpolynomialB: 0.1513671875\n    test 92 fhornerB: 0.1513671875\n\n    test 93 fpolynomialA: 1.21197509765625\n    test 94 fhornerA: 1.21197509765625\n    test 95 fpolynomialB: 0.1513671875\n    test 96 fhornerB: 0.1513671875\n\n    test 97 fpolynomialA: 1.21197509765625\n    test 98 fhornerA: 1.21197509765625\n    test 99 fpolynomialB: 0.1513671875\n    test 100 fhornerB: 0.1513671875\n\n    test 101 fpolynomialA: 1.21197509765625\n    test 102 fhornerA: 1.21197509765625\n    test 103 fpolynomialB: 0.1513671875\n    test 104 fhornerB: 0.1513671875\n\n    test 105 fpolynomialA: 1.21197509765625\n    test 106 fhornerA: 1.21197509765625\n    test 107 fpolynomialB: 0.1513671875\n    test 108 fhornerB: 0.1513671875\n\n    test 109 fpolynomialA: 1.21197509765625\n    test 110 fhornerA: 1.21197509765625\n    test 111 fpolynomialB: 0.1513671875\n    test 112 fhornerB: 0.1513671875\n\n    test 113 fpolynomialA: 1.21197509765625\n    test 114 fhornerA: 1.21197509765625\n    test 115 fpolynomialB: 0.1513671875\n    test 116 fhornerB: 0.1513671875\n\n    test 117 fpolynomialA: 1.21197509765625\n    test 118 fhornerA: 1.21197509765625\n    test 119 fpolynomialB: 0.1513671875\n    test 120 fhornerB: 0.1513671875\n\n    test 121 fpolynomialA: 1.21197509765625\n    test 122 fhornerA: 1.21197509765625\n    test 123 fpolynomialB: 0.1513671875\n    test 124 fhornerB: 0.1513671875\n\n    test 125 fpolynomialA: 1.21197509765625\n    test 126 fhornerA: 1.21197509765625\n    test 127 fpolynomialB: 0.1513671875\n    test 128 fhornerB: 0.1513671875\n\n    test 129 fpolynomialA: 1.21197509765625\n    test 130 fhornerA: 1.21197509765625\n    test 131 fpolynomialB: 0.1513671875\n    test 132 fhornerB: 0.1513671875\n\n    test 133 fpowers: 10\n    test 134 fpowers: 2\n    test 135 fpowers: 1024\n    test 136 fpowers: 4\n    test 137 fpowers: 16\n    test 138 fpowers: 1024\n    test 139 fpowers: 4\n    test 140 fpowers: 8\n    test 141 fpowers: 512\n\n    test 142 Airy1830: 6366914.608925221\n    test 143 Airy1830: 6366914.608925221\n    test 144 Airy1830: 6366914.608925221\n    test 145 Airy1830: 6366914.608925221\n\n    test 146 AiryModified: 6366691.774619882  FAILED, KNOWN, expected 6366691.774619881\n    test 147 AiryModified: 6366691.774619882  FAILED, KNOWN, expected 6366691.774619881\n    test 148 AiryModified: 6366691.774619882  FAILED, KNOWN, expected 6366691.774619881\n    test 149 AiryModified: 6366691.774619882  FAILED, KNOWN, expected 6366691.774619881\n\n    test 150 ATS1977: 6367447.141166951  FAILED, KNOWN, expected 6367447.141166950\n    test 151 ATS1977: 6367447.141166951  FAILED, KNOWN, expected 6367447.141166950\n    test 152 ATS1977: 6367447.141166951  FAILED, KNOWN, expected 6367447.141166950\n    test 153 ATS1977: 6367447.141166951  FAILED, KNOWN, expected 6367447.141166950\n\n    test 154 Australia1966: 6367471.848532283  FAILED, KNOWN, expected 6367471.848532284\n    test 155 Australia1966: 6367471.848532283  FAILED, KNOWN, expected 6367471.848532284\n    test 156 Australia1966: 6367471.848532283  FAILED, KNOWN, expected 6367471.848532284\n    test 157 Australia1966: 6367471.848532283  FAILED, KNOWN, expected 6367471.848532284\n\n    test 158 Bessel1841: 6366742.520233950\n    test 159 Bessel1841: 6366742.520233950\n    test 160 Bessel1841: 6366742.520233950\n    test 161 Bessel1841: 6366742.520233950\n\n    test 162 BesselModified: 6366837.224747659  FAILED, KNOWN, expected 6366837.224747658\n    test 163 BesselModified: 6366837.224747659  FAILED, KNOWN, expected 6366837.224747658\n    test 164 BesselModified: 6366837.224747659  FAILED, KNOWN, expected 6366837.224747658\n    test 165 BesselModified: 6366837.224747659  FAILED, KNOWN, expected 6366837.224747658\n\n    test 166 CGCS2000: 6367449.145771047  FAILED, KNOWN, expected 6367449.145771048\n    test 167 CGCS2000: 6367449.145771047  FAILED, KNOWN, expected 6367449.145771048\n    test 168 CGCS2000: 6367449.145771047  FAILED, KNOWN, expected 6367449.145771048\n    test 169 CGCS2000: 6367449.145771047  FAILED, KNOWN, expected 6367449.145771048\n\n    test 170 Clarke1866: 6367399.689169783\n    test 171 Clarke1866: 6367399.689169783\n    test 172 Clarke1866: 6367399.689169783\n    test 173 Clarke1866: 6367399.689169783\n\n    test 174 Clarke1880: 6367386.643980513\n    test 175 Clarke1880: 6367386.643980513\n    test 176 Clarke1880: 6367386.643980513\n    test 177 Clarke1880: 6367386.643980513\n\n    test 178 Clarke1880IGN: 6367386.736673363\n    test 179 Clarke1880IGN: 6367386.736673363\n    test 180 Clarke1880IGN: 6367386.736673363\n    test 181 Clarke1880IGN: 6367386.736673363\n\n    test 182 Clarke1880Mod: 6367386.692362010  FAILED, KNOWN, expected 6367386.692362011\n    test 183 Clarke1880Mod: 6367386.692362010  FAILED, KNOWN, expected 6367386.692362011\n    test 184 Clarke1880Mod: 6367386.692362010  FAILED, KNOWN, expected 6367386.692362011\n    test 185 Clarke1880Mod: 6367386.692362010  FAILED, KNOWN, expected 6367386.692362011\n\n    test 186 CPM1799: 6366208.881847842  FAILED, KNOWN, expected 6366208.881847841\n    test 187 CPM1799: 6366208.881847842  FAILED, KNOWN, expected 6366208.881847841\n    test 188 CPM1799: 6366208.881847842  FAILED, KNOWN, expected 6366208.881847841\n    test 189 CPM1799: 6366208.881847842  FAILED, KNOWN, expected 6366208.881847841\n\n    test 190 Delambre1810: 6366197.076843344\n    test 191 Delambre1810: 6366197.076843344\n    test 192 Delambre1810: 6366197.076843344\n    test 193 Delambre1810: 6366197.076843344\n\n    test 194 Engelis1985: 6367448.175079710  FAILED, KNOWN, expected 6367448.175079712\n    test 195 Engelis1985: 6367448.175079710  FAILED, KNOWN, expected 6367448.175079712\n    test 196 Engelis1985: 6367448.175079710  FAILED, KNOWN, expected 6367448.175079712\n    test 197 Engelis1985: 6367448.175079710  FAILED, KNOWN, expected 6367448.175079712\n\n    test 198 Everest1969: 6366699.578395008  FAILED, KNOWN, expected 6366699.578395010\n    test 199 Everest1969: 6366699.578395008  FAILED, KNOWN, expected 6366699.578395010\n    test 200 Everest1969: 6366699.578395008  FAILED, KNOWN, expected 6366699.578395010\n    test 201 Everest1969: 6366699.578395008  FAILED, KNOWN, expected 6366699.578395010\n\n    test 202 Everest1975: 6366703.060499237\n    test 203 Everest1975: 6366703.060499237\n    test 204 Everest1975: 6366703.060499237\n    test 205 Everest1975: 6366703.060499237\n\n    test 206 Fisher1968: 6367463.656043807\n    test 207 Fisher1968: 6367463.656043807\n    test 208 Fisher1968: 6367463.656043807\n    test 209 Fisher1968: 6367463.656043807\n\n    test 210 GEM10C: 6367449.145824739  FAILED, KNOWN, expected 6367449.145824740\n    test 211 GEM10C: 6367449.145824739  FAILED, KNOWN, expected 6367449.145824740\n    test 212 GEM10C: 6367449.145824739  FAILED, KNOWN, expected 6367449.145824740\n    test 213 GEM10C: 6367449.145824739  FAILED, KNOWN, expected 6367449.145824740\n\n    test 214 GPES: 6378135.000000000\n    test 215 GPES: 6378135.000000000\n    test 216 GPES: 6378135.000000000\n    test 217 GPES: 6378135.000000000\n\n    test 218 GRS67: 6367471.747065325\n    test 219 GRS67: 6367471.747065325\n    test 220 GRS67: 6367471.747065325\n    test 221 GRS67: 6367471.747065325\n\n    test 222 GRS80: 6367449.145771043\n    test 223 GRS80: 6367449.145771043\n    test 224 GRS80: 6367449.145771043\n    test 225 GRS80: 6367449.145771043\n\n    test 226 Helmert1906: 6367513.572270742\n    test 227 Helmert1906: 6367513.572270742\n    test 228 Helmert1906: 6367513.572270742\n    test 229 Helmert1906: 6367513.572270742\n\n    test 230 IAU76: 6367452.132788436\n    test 231 IAU76: 6367452.132788436\n    test 232 IAU76: 6367452.132788436\n    test 233 IAU76: 6367452.132788436\n\n    test 234 IERS1989: 6367448.139491247\n    test 235 IERS1989: 6367448.139491247\n    test 236 IERS1989: 6367448.139491247\n    test 237 IERS1989: 6367448.139491247\n\n    test 238 IERS1992TOPEX: 6367448.446996409\n    test 239 IERS1992TOPEX: 6367448.446996409\n    test 240 IERS1992TOPEX: 6367448.446996409\n    test 241 IERS1992TOPEX: 6367448.446996409\n\n    test 242 IERS2003: 6367448.717710576  FAILED, KNOWN, expected 6367448.717710577\n    test 243 IERS2003: 6367448.717710576  FAILED, KNOWN, expected 6367448.717710577\n    test 244 IERS2003: 6367448.717710576  FAILED, KNOWN, expected 6367448.717710577\n    test 245 IERS2003: 6367448.717710576  FAILED, KNOWN, expected 6367448.717710577\n\n    test 246 Intl1924: 6367654.500057585  FAILED, KNOWN, expected 6367654.500057584\n    test 247 Intl1924: 6367654.500057585  FAILED, KNOWN, expected 6367654.500057584\n    test 248 Intl1924: 6367654.500057585  FAILED, KNOWN, expected 6367654.500057584\n    test 249 Intl1924: 6367654.500057585  FAILED, KNOWN, expected 6367654.500057584\n\n    test 250 Intl1967: 6367469.338944457\n    test 251 Intl1967: 6367469.338944457\n    test 252 Intl1967: 6367469.338944457\n    test 253 Intl1967: 6367469.338944457\n\n    test 254 Krassovski1940: 6367558.496874981\n    test 255 Krassovski1940: 6367558.496874981\n    test 256 Krassovski1940: 6367558.496874981\n    test 257 Krassovski1940: 6367558.496874981\n\n    test 258 Krassowsky1940: 6367558.496874981\n    test 259 Krassowsky1940: 6367558.496874981\n    test 260 Krassowsky1940: 6367558.496874981\n    test 261 Krassowsky1940: 6367558.496874981\n\n    test 262 Maupertuis1738: 6380564.130118373\n    test 263 Maupertuis1738: 6380564.130118373\n    test 264 Maupertuis1738: 6380564.130118373\n    test 265 Maupertuis1738: 6380564.130118373\n\n    test 266 Mercury1960: 6367479.629236430\n    test 267 Mercury1960: 6367479.629236430\n    test 268 Mercury1960: 6367479.629236430\n    test 269 Mercury1960: 6367479.629236430\n\n    test 270 Mercury1968Mod: 6367463.656043807\n    test 271 Mercury1968Mod: 6367463.656043807\n    test 272 Mercury1968Mod: 6367463.656043807\n    test 273 Mercury1968Mod: 6367463.656043807\n\n    test 274 NWL1965: 6367456.873668412\n    test 275 NWL1965: 6367456.873668412\n    test 276 NWL1965: 6367456.873668412\n    test 277 NWL1965: 6367456.873668412\n\n    test 278 OSU86F: 6367448.347165301\n    test 279 OSU86F: 6367448.347165301\n    test 280 OSU86F: 6367448.347165301\n    test 281 OSU86F: 6367448.347165301\n\n    test 282 OSU91A: 6367448.446997731  FAILED, KNOWN, expected 6367448.446997732\n    test 283 OSU91A: 6367448.446997731  FAILED, KNOWN, expected 6367448.446997732\n    test 284 OSU91A: 6367448.446997731  FAILED, KNOWN, expected 6367448.446997732\n    test 285 OSU91A: 6367448.446997731  FAILED, KNOWN, expected 6367448.446997732\n\n    test 286 Plessis1817: 6366197.157107386  FAILED, KNOWN, expected 6366197.157107385\n    test 287 Plessis1817: 6366197.157107386  FAILED, KNOWN, expected 6366197.157107385\n    test 288 Plessis1817: 6366197.157107386  FAILED, KNOWN, expected 6366197.157107385\n    test 289 Plessis1817: 6366197.157107386  FAILED, KNOWN, expected 6366197.157107385\n\n    test 290 PZ90: 6367448.169554430  FAILED, KNOWN, expected 6367448.169554429\n    test 291 PZ90: 6367448.169554430  FAILED, KNOWN, expected 6367448.169554429\n    test 292 PZ90: 6367448.169554430  FAILED, KNOWN, expected 6367448.169554429\n    test 293 PZ90: 6367448.169554430  FAILED, KNOWN, expected 6367448.169554429\n\n    test 294 SGS85: 6367448.139491247\n    test 295 SGS85: 6367448.139491247\n    test 296 SGS85: 6367448.139491247\n    test 297 SGS85: 6367448.139491247\n\n    test 298 SoAmerican1969: 6367471.848532285\n    test 299 SoAmerican1969: 6367471.848532285\n    test 300 SoAmerican1969: 6367471.848532285\n    test 301 SoAmerican1969: 6367471.848532285\n\n    test 302 Sphere: 6371008.771415000\n    test 303 Sphere: 6371008.771415000\n    test 304 Sphere: 6371008.771415000\n    test 305 Sphere: 6371008.771415000\n\n    test 306 SphereAuthalic: 6371000.000000000\n    test 307 SphereAuthalic: 6371000.000000000\n    test 308 SphereAuthalic: 6371000.000000000\n    test 309 SphereAuthalic: 6371000.000000000\n\n    test 310 SpherePopular: 6378137.000000000\n    test 311 SpherePopular: 6378137.000000000\n    test 312 SpherePopular: 6378137.000000000\n    test 313 SpherePopular: 6378137.000000000\n\n    test 314 Struve1860: 6367482.318325493\n    test 315 Struve1860: 6367482.318325493\n    test 316 Struve1860: 6367482.318325493\n    test 317 Struve1860: 6367482.318325493\n\n    test 318 WGS60: 6367478.630911891  FAILED, KNOWN, expected 6367478.630911890\n    test 319 WGS60: 6367478.630911891  FAILED, KNOWN, expected 6367478.630911890\n    test 320 WGS60: 6367478.630911891  FAILED, KNOWN, expected 6367478.630911890\n    test 321 WGS60: 6367478.630911891  FAILED, KNOWN, expected 6367478.630911890\n\n    test 322 WGS66: 6367456.873668412\n    test 323 WGS66: 6367456.873668412\n    test 324 WGS66: 6367456.873668412\n    test 325 WGS66: 6367456.873668412\n\n    test 326 WGS72: 6367447.248623827  FAILED, KNOWN, expected 6367447.248623826\n    test 327 WGS72: 6367447.248623827  FAILED, KNOWN, expected 6367447.248623826\n    test 328 WGS72: 6367447.248623827  FAILED, KNOWN, expected 6367447.248623826\n    test 329 WGS72: 6367447.248623827  FAILED, KNOWN, expected 6367447.248623826\n\n    test 330 WGS84: 6367449.145823414\n    test 331 WGS84: 6367449.145823414\n    test 332 WGS84: 6367449.145823414\n    test 333 WGS84: 6367449.145823414\n\n    test 334 WGS84_NGS: 6367449.145771043\n    test 335 WGS84_NGS: 6367449.145771043\n    test 336 WGS84_NGS: 6367449.145771043\n    test 337 WGS84_NGS: 6367449.145771043\n\n    test 338 hypot: 1\n    test 339 sqrt_a: 0.6102683302836\n    test 340 sqrt_a: 0.6102683302836\n    test 341 hypot_ : 1.00001250\n    test 342 euclid_: 1.00207107  FAILED, KNOWN, expected 1.00001250\n    test 343 hypot2_: 1.00002500\n    test 344 norm_  : 1.00000000\n    test 345 hypot_ : 3606.937759\n    test 346 euclid_: 3845.584412  FAILED, KNOWN, expected 3859.423403\n    test 347 hypot2_: 13010000.0\n    test 348 norm_  : 1.0\n    test 349 hypot_ : 40112.842\n    test 350 hypot2_: 1609040100.0\n    test 351 euclid_: 41277.666  FAILED, KNOWN, expected 41316.227\n    test 352 bqrt: 2.00\n    test 353 cbrt: 3.00\n    test 354 cbrt: -3.00\n    test 355 cbrt2: 9.00\n    test 356 cbrt2: 9.00\n    test 357 sqrt3: 27.00\n    test 358 zcrt: 2.00\n    test 359 zqrt: 2.00\n    test 360 facos1: 0.005%\n    test 361 fasin1: 0.439%\n    test 362 fatan : 0.134%\n    test 363 fatan1: 2.834%\n    test 364 fatan2: 0.321%\n\n    test 365 Fhypot: Fhypot[1] (5.0, 0)\n    test 366 Fhypot: Fhypot[1] (9.43398, 0)\n    test 367 Fhypot: Fhypot[1] (5.0, 0)\n    test 368 Fhypot: Fhypot[1] (-2.18182, 0)\n    test 369 Fhypot: Fhypot[1] (-12, 0)\n    test 370 Fhypot: Fhypot[1] (1.41421, 0)\n    test 371 Fhypot: Fhypot[1] (-0.5, 0)\n    test 372 Fhypot: Fhypot[1] (-0.333333, 0)\n# imported pygeodesy.basics into errors.py line 531\n    test 373 Fhypot: fmath.Fhypot(<Fsum[1] (-1, 0) at 0x101abb110>, -1, root=0): 1.0 / 0: division by zero\n\n    test 374 Fsqrt: Fsqrt[1] (3.0, 0)\n    test 375 Fsqrt: Fcbrt[1] (3.0, 0)\n    test 376 Fsqrt: Fsqrt[1] (1.41421, 0)\n    test 377 Fsqrt: Fsqrt[1] (1.41421, 0)\n    test 378 Froot: Froot[1] (0.5, 0)\n    test 379 Froot: Froot[1] (0.5, 0)\n    test 380 Fsqrt: fmath.Fsqrt(<Fsum[1] (-1, 0) at 0x101abaf30>, -1, root=2): -2.0 root Fsum[1] (0.5, 0): complex (8.659560562354934e-17+1.4142135623730951j) from 2-arg pow(-2, 0.5)\n    test 381 Fsqrt: fmath.Froot(<Fsum[1] (-1, 0) at 0x101abaf30>, -1, root=0): 1.0 / 0: division by zero\n    test 382 Froot: Froot[1] (-0.25, 0)\n\n    test 383 Fhypot2: 3.74165739e+100\n    test 384 Fpowers2: -1467.89542\n    test 385 Fsqrt2: 0.0541578006\n    test 386 Fcbrt2: 0.143144285\n\n    test 387 Fhypot3: 3.74165739e+100\n    test 388 Fpowers3: -16881.7154\n    test 389 Fsqrt3: 5.36080943e-05\n    test 390 Fcbrt3: 0.00142174021\n\n    test 391 Fhypot4: 3.74165739e+100\n    test 392 Fpowers4: -1723.70141\n    test 393 Fsqrt4: 0.00484039916\n    test 394 Fcbrt4: 0.028614585\n\n    test 395 Fhypot5: 3.74165739e+100\n    test 396 Fpowers5: 365.124737\n    test 397 Fsqrt5: 0.448148418\n    test 398 Fcbrt5: 0.585618218\n\n    test 399 Fhypot6: 3.74165739e+100\n    test 400 Fpowers6: 523.671403\n    test 401 Fsqrt6: 0.0430933845\n    test 402 Fcbrt6: 0.122915618\n\n    test 403 Fhypot8: 3.74165739e+100\n    test 404 Fpowers8: -23525.9173\n    test 405 Fsqrt8: 0.121977256\n    test 406 Fcbrt8: 0.245953254\n\n    test 407 fma: 2.4412441982659e-05\n    test 408 fma: 6.365860485903399\n    test 409 abc: 6.3658604845404625  FAILED, KNOWN, expected 6.365860485903399\n\n    test 410 f2mul_: 24.0\n    test 411 f2mul_: inf\n    test 412 f2mul_: inf\n\n    72 of 412 testFmath.py tests (17.5%) FAILED, ALL KNOWN (pygeodesy 26.3.26 Python 3.14.3 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 30.422 ms\nrunning /Library/Framewo....n3.14 -W default ~/PyGeodesy/test/testFormy.py\n./test/testFormy.py:28: DeprecationWarning: function L{cosineAndoyerLambert<pygeodesy.deprecated.functions.cosineAndoyerLambert>} has been DEPRECATED on 2024.12.31, use function L{pygeodesy.cosineLaw} with C{B{corr}=1}.\n  d = f(lat1, lon1, lat2, lon2, wrap=True, **kwds)\n./test/testFormy.py:28: DeprecationWarning: function L{cosineForsytheAndoyerLambert<pygeodesy.deprecated.functions.cosineForsytheAndoyerLambert>} has been DEPRECATED on 2024.12.31, use function L{pygeodesy.cosineLaw} with C{B{corr}=2}.\n  d = f(lat1, lon1, lat2, lon2, wrap=True, **kwds)\n./pygeodesy/formy.py:1097: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  if d.ellipsoid.geodesic:\n./pygeodesy/azimuthal.py:636: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return self.datum.ellipsoid.geodesic\n./pygeodesy/ellipsoidalKarney.py:94: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return self.datum.ellipsoid.geodesic\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.PI from .constants by testFormy.py line 11\n# lazily imported pygeodesy.PI_2 from .constants by testFormy.py line 11\n# lazily imported pygeodesy.R_M from .constants by testFormy.py line 11\n# lazily imported pygeodesy.angle2chord from .formy by testFormy.py line 11\n# lazily imported pygeodesy.antipode from .formy by testFormy.py line 11\n# lazily imported pygeodesy.bearing from .formy by testFormy.py line 11\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by <frozen importlib._bootstrap> line 1423\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by <frozen importlib._bootstrap> line 1423\n# lazily imported pygeodesy.Conformal2Tuple from .triaxials.triaxial5 by <frozen importlib._bootstrap> line 1423\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by classes.py line 21\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by classes.py line 21\n# lazily imported pygeodesy.Conformal2Tuple from .triaxials.triaxial5 by classes.py line 21\n# lazily imported pygeodesy.cosineAndoyerLambert from .deprecated.functions by testFormy.py line 11\n# lazily imported pygeodesy.chord2angle from .formy by testFormy.py line 11\n# lazily imported pygeodesy.cosineForsytheAndoyerLambert from .deprecated.functions by testFormy.py line 11\n# lazily imported pygeodesy.cosineLaw from .formy by testFormy.py line 11\n# lazily imported pygeodesy.Datums from .datums by testFormy.py line 11\n# lazily imported pygeodesy.equirectangular from .formy by testFormy.py line 11\n# lazily imported pygeodesy.euclidean from .formy by testFormy.py line 11\n# lazily imported pygeodesy.excessAbc_ from .formy by testFormy.py line 11\n# lazily imported pygeodesy.excessCagnoli_ from .formy by testFormy.py line 11\n# lazily imported pygeodesy.excessGirard_ from .formy by testFormy.py line 11\n# lazily imported pygeodesy.excessLHuilier_ from .formy by testFormy.py line 11\n# lazily imported pygeodesy.excessKarney from .formy by testFormy.py line 11\n# lazily imported pygeodesy.excessQuad from .formy by testFormy.py line 11\n# lazily imported pygeodesy.Degrees from .units by testFormy.py line 11\n# lazily imported pygeodesy.flatLocal from .formy by testFormy.py line 11\n# lazily imported pygeodesy.flatPolar from .formy by testFormy.py line 11\n# lazily imported pygeodesy.hartzell from .formy by testFormy.py line 11\n# lazily imported pygeodesy.haversine from .formy by testFormy.py line 11\n# lazily imported pygeodesy.heightOf from .formy by testFormy.py line 11\n# lazily imported pygeodesy.heightOrthometric from .formy by testFormy.py line 11\n# lazily imported pygeodesy.horizon from .formy by testFormy.py line 11\n# lazily imported pygeodesy.hubeny from .formy by testFormy.py line 11\n# lazily imported pygeodesy.IntersectionError from .errors by testFormy.py line 11\n# lazily imported pygeodesy.intersection2 from .formy by testFormy.py line 11\n# lazily imported pygeodesy.intersections2 from .formy by testFormy.py line 11\n# lazily imported pygeodesy.isantipode from .formy by testFormy.py line 11\n# lazily imported pygeodesy.isantipode_ from .formy by testFormy.py line 11\n# lazily imported pygeodesy.isnormal from .formy by testFormy.py line 11\n# lazily imported pygeodesy.isnormal_ from .formy by testFormy.py line 11\n# lazily imported pygeodesy.LatLon_ from .points by testFormy.py line 11\n# lazily imported pygeodesy.latlonDMS from .dms by testFormy.py line 11\n# lazily imported pygeodesy.LimitError from .errors by testFormy.py line 11\n# lazily imported pygeodesy.limiterrors from .errors by testFormy.py line 11\n# lazily imported pygeodesy.map1 from .basics by testFormy.py line 11\n# lazily imported pygeodesy.normal from .formy by testFormy.py line 11\n# lazily imported pygeodesy.parseDMS from .dms by testFormy.py line 11\n# lazily imported pygeodesy.radical2 from .formy by testFormy.py line 11\n# lazily imported pygeodesy.thomas from .formy by testFormy.py line 11\n# lazily imported pygeodesy.Vector3d from .vector3d by testFormy.py line 11\n# lazily imported pygeodesy.vincentys from .formy by testFormy.py line 11\n\n    testing testFormy.py 26.01.05 isLazy=3\n    test 1 angle2chord: 9009967.011\n    test 2 chord2angle: 1.570796\n    test 3 antipode1: (-89.0, -1.0)\n    test 4 antipode2: (89.0, 1.0)\n    test 5 bearing1: 251.364\n    test 6 bearing2: 251.364\n    test 7 bearing3: 249.614\n    test 8 excessAbc_: 11.9698\n    test 9 excessAbc_: 11.9698\n    test 10 excessCagnoli_: 11.9698\n    test 11 excessGirard_: 11.9698\n    test 12 excessLHuilier_: 11.9698\n    test 13 excessKarney: 56.9625\n    test 14 excessQuad: 56.9625\n    test 15 excessKarney: 44.0235\n    test 16 excessQuad: 44.0235\n    test 17 excessKarney: -44.0235\n    test 18 excessQuad: -44.0235\n\n    test 19 isantipode1: True\n    test 20 isantipode2: True\n    test 21 isantipode3: False\n    test 22 isantipode4: True\n    test 23 isantipode5: True\n    test 24 isantipode6: True\n    test 25 isantipode7: False\n    test 26 isantipode8: True\n\n    test 27 isnormal1: True\n    test 28 isnormal2: False\n    test 29 isnormal3: True\n    test 30 isnormal4: True\n    test 31 isnormal5: True\n    test 32 isnormal6: False\n    test 33 isnormal7: True\n    test 34 isnormal8: True\n# lazily imported pygeodesy.Triaxial from .triaxials.triaxial5 by ellipsoids.py line 1905\n# lazily imported pygeodesy.cartesianBase by formy.py line 933\n\n    test 35 hartzell: (884080.396945, 5592040.198472, 2927517.711001)\n# lazily imported pygeodesy.Triaxial from .triaxials.triaxial5 by ellipsoids.py line 1905\n# lazily imported pygeodesy.ecef by ecefLocals.py line 34\n    test 36 hartzell: 27.500482°N, 081.016111°E, +12669647.30  FAILED, KNOWN, expected 27.500482°N, 081.016111°E, +12669647.30, 'hartzell'\n# lazily imported pygeodesy.Triaxial from .triaxials.triaxial5 by ellipsoids.py line 1905\n    test 37 hartzell: (3642031.283571, 3678090.99925, 3714150.714929)\n# lazily imported pygeodesy.Triaxial from .triaxials.triaxial5 by ellipsoids.py line 1905\n    test 38 hartzell: 35.843738°N, 045.282243°E, +11296639.67  FAILED, KNOWN, expected 35.843738°N, 045.282243°E, +11296639.67, 'hartzell'\n# lazily imported pygeodesy.Triaxial from .triaxials.triaxial5 by ellipsoids.py line 1905\n    test 39 hartzell: (3647362.058328, 3683474.553955, 3703640.299338)\n# lazily imported pygeodesy.Triaxial from .triaxials.triaxial5 by ellipsoids.py line 1905\n    test 40 hartzell: 35.726966°N, 045.282243°E, +11296619.03  FAILED, KNOWN, expected 35.726966°N, 045.282243°E, +11296619.03, 'hartzell'\n    test 41 heightOf0: 2638958.23912\n    test 42 heightOf45: 5401080.43931\n    test 43 heightOf90: 6371008.77141\n    test 44 heightOf135: 5401080.43931\n    test 45 horizon0: 0.0\n    test 46 horizon10Km: 357099.672\n    test 47 horizon30Kft: 392310.704\n    test 48 horizon10Kft: 214877.422\n    test 49 normal1: (-89.0, 179.0)\n    test 50 normal2: (81.0, 180.0)\n    test 51 normal3: (81.0, -19.0)\n    test 52 normal4: (-81.0, 0.0)\n\n    test 53 haversine1 (0.00%): 298009.404\n    test 54 vincentys1 (0.00%): 298009.404\n    test 55 vincentys1 (0.00%): 298009.404\n    test 56 cosineAndoyerLambert1 (0.13%): 298395.796  FAILED, KNOWN, expected 298009.404\n    test 57 cosineForsytheAndoyerLambert1 (0.13%): 298396.056  FAILED, KNOWN, expected 298009.404\n    test 58 cosineLaw1 (0.00%): 298009.404\n    test 59 equirectangular1 (0.01%): 298039.206  FAILED, KNOWN, expected 298009.404\n    test 60 euclidean1 (5.26%): 313698.901  FAILED, KNOWN, expected 298009.404\n    test 61 flatLocal1 (0.14%): 298425.999  FAILED, KNOWN, expected 298009.404\n    test 62 flatPolar1 (8.67%): 323841.582  FAILED, KNOWN, expected 298009.404\n    test 63 thomas1 (0.13%): 298396.261  FAILED, KNOWN, expected 298009.404\n    test 64 hubeny1: <function flatLocal at 0x106116c40>\n\n    test 65 haversine2 (0.00%): 98164.988\n    test 66 vincentys2 (0.00%): 98164.988\n    test 67 vincentys2 (0.00%): 98164.988\n    test 68 cosineAndoyerLambert2 (0.10%): 98071.421  FAILED, KNOWN, expected 98164.988\n    test 69 cosineForsytheAndoyerLambert2 (0.10%): 98071.560  FAILED, KNOWN, expected 98164.988\n    test 70 cosineLaw2 (0.00%): 98164.988\n    test 71 equirectangular2 (0.00%): 98165.123  FAILED, KNOWN, expected 98164.988\n    test 72 euclidean2 (6.37%): 104419.458  FAILED, KNOWN, expected 98164.988\n    test 73 flatLocal2 (0.10%): 98071.693  FAILED, KNOWN, expected 98164.988\n    test 74 flatPolar2 (0.57%): 98725.040  FAILED, KNOWN, expected 98164.988\n    test 75 thomas2 (0.10%): 98071.535  FAILED, KNOWN, expected 98164.988\n    test 76 hubeny2: <function flatLocal at 0x106116c40>\n\n    test 77 haversine3 (0.00%): 651816.987\n    test 78 vincentys3 (0.00%): 651816.987\n    test 79 vincentys3 (0.00%): 651816.987\n    test 80 cosineAndoyerLambert3 (0.25%): 653456.144  FAILED, KNOWN, expected 651816.987\n    test 81 cosineForsytheAndoyerLambert3 (0.25%): 653456.175  FAILED, KNOWN, expected 651816.987\n    test 82 cosineLaw3 (0.00%): 651816.987\n    test 83 equirectangular3 (0.03%): 652041.760  FAILED, KNOWN, expected 651816.987\n    test 84 euclidean3 (4.37%): 680281.470  FAILED, KNOWN, expected 651816.987\n    test 85 flatLocal3 (0.29%): 653681.559  FAILED, KNOWN, expected 651816.987\n    test 86 flatPolar3 (13.00%): 736534.840  FAILED, KNOWN, expected 651816.987\n    test 87 thomas3 (0.25%): 653456.933  FAILED, KNOWN, expected 651816.987\n    test 88 hubeny3: <function flatLocal at 0x106116c40>\n\n    test 89 haversine4 (0.00%): 4084985.780\n    test 90 vincentys4 (0.00%): 4084985.780\n    test 91 vincentys4 (0.00%): 4084985.780\n    test 92 cosineAndoyerLambert4 (0.24%): 4094954.008  FAILED, KNOWN, expected 4084985.780\n    test 93 cosineForsytheAndoyerLambert4 (0.24%): 4094953.639  FAILED, KNOWN, expected 4084985.780\n    test 94 cosineLaw4 (0.00%): 4084985.780\n    test 95 equirectangular4 (1.26%): 4136407.022  FAILED, KNOWN, expected 4084985.780\n    test 96 euclidean4 (4.22%): 4257296.511  FAILED, KNOWN, expected 4084985.780\n    test 97 flatLocal4 (1.51%): 4146513.247  FAILED, KNOWN, expected 4084985.780\n    test 98 flatPolar4 (12.31%): 4587896.452  FAILED, KNOWN, expected 4084985.780\n    test 99 thomas4 (0.24%): 4094958.301  FAILED, KNOWN, expected 4084985.780\n    test 100 hubeny4: <function flatLocal at 0x106116c40>\n\n    test 101 haversine5 (0.00%): 9670051.606\n    test 102 vincentys5 (0.00%): 9670051.606\n    test 103 vincentys5 (0.00%): 9670051.606\n    test 104 cosineAndoyerLambert5 (0.21%): 9690752.610  FAILED, KNOWN, expected 9670051.606\n    test 105 cosineForsytheAndoyerLambert5 (0.21%): 9690746.120  FAILED, KNOWN, expected 9670051.606\n    test 106 cosineLaw5 (0.00%): 9670051.606\n    test 107 equirectangular5 (7.79%): 10423307.214  FAILED, KNOWN, expected 9670051.606\n    test 108 euclidean5 (9.34%): 10573030.726  FAILED, KNOWN, expected 9670051.606\n    test 109 flatLocal5 (8.03%): 10446503.342  FAILED, KNOWN, expected 9670051.606\n    test 110 flatPolar5 (55.59%): 15045906.074  FAILED, KNOWN, expected 9670051.606\n    test 111 thomas5 (0.21%): 9690767.767  FAILED, KNOWN, expected 9670051.606\n    test 112 hubeny5: <function flatLocal at 0x106116c40>\n\n    test 113 haversine6 (0.00%): 10496496.577\n    test 114 vincentys6 (0.00%): 10496496.577\n    test 115 vincentys6 (0.00%): 10496496.577\n    test 116 cosineAndoyerLambert6 (0.18%): 10477328.664  FAILED, KNOWN, expected 10496496.577\n    test 117 cosineForsytheAndoyerLambert6 (0.18%): 10477342.084  FAILED, KNOWN, expected 10496496.577\n    test 118 cosineLaw6 (0.00%): 10496496.577\n    test 119 equirectangular6 (3.32%): 10844969.236  FAILED, KNOWN, expected 10496496.577\n    test 120 euclidean6 (4.50%): 10968488.107  FAILED, KNOWN, expected 10496496.577\n    test 121 flatLocal6 (3.07%): 10818798.605  FAILED, KNOWN, expected 10496496.577\n    test 122 flatPolar6 (23.87%): 13002288.857  FAILED, KNOWN, expected 10496496.577\n    test 123 thomas6 (0.18%): 10477316.498  FAILED, KNOWN, expected 10496496.577\n    test 124 hubeny6: <function flatLocal at 0x106116c40>\n\n    test 125 haversine7 (0.00%): 8998396.669\n    test 126 vincentys7 (0.00%): 8998396.669\n    test 127 vincentys7 (0.00%): 8998396.669\n    test 128 cosineAndoyerLambert7 (0.27%): 8974227.489  FAILED, KNOWN, expected 8998396.669\n    test 129 cosineForsytheAndoyerLambert7 (0.27%): 8974238.592  FAILED, KNOWN, expected 8998396.669\n    test 130 cosineLaw7 (0.00%): 8998396.669\n    test 131 equirectangular7 (2.05%): 9182626.289  FAILED, KNOWN, expected 8998396.669\n    test 132 euclidean7 (7.76%): 9696965.812  FAILED, KNOWN, expected 8998396.669\n    test 133 flatLocal7 (1.71%): 9151831.117  FAILED, KNOWN, expected 8998396.669\n    test 134 flatPolar7 (17.56%): 10578638.162  FAILED, KNOWN, expected 8998396.669\n    test 135 thomas7 (0.27%): 8974216.867  FAILED, KNOWN, expected 8998396.669\n    test 136 hubeny7: <function flatLocal at 0x106116c40>\n\n    test 137 haversine8 (0.00%): 6906867.946\n    test 138 vincentys8 (0.00%): 6906867.946\n    test 139 vincentys8 (0.00%): 6906867.946\n    test 140 cosineAndoyerLambert8 (0.13%): 6916085.969  FAILED, KNOWN, expected 6906867.946\n    test 141 cosineForsytheAndoyerLambert8 (0.13%): 6916085.333  FAILED, KNOWN, expected 6906867.946\n    test 142 cosineLaw8 (0.00%): 6906867.946\n    test 143 equirectangular8 (0.91%): 6969581.760  FAILED, KNOWN, expected 6906867.946\n    test 144 euclidean8 (6.54%): 7358706.022  FAILED, KNOWN, expected 6906867.946\n    test 145 flatLocal8 (1.04%): 6978905.097  FAILED, KNOWN, expected 6906867.946\n    test 146 flatPolar8 (23.23%): 8511564.321  FAILED, KNOWN, expected 6906867.946\n    test 147 thomas8 (0.13%): 6916087.828  FAILED, KNOWN, expected 6906867.946\n    test 148 hubeny8: <function flatLocal at 0x106116c40>\n\n    test 149 haversine9 (0.01%): 8045325.213  FAILED, KNOWN, expected 8044806.076\n    test 150 vincentys9 (0.01%): 8045325.213  FAILED, KNOWN, expected 8044806.076\n    test 151 cosineAndoyerLambert9 (0.07%): 8050357.566  FAILED, KNOWN, expected 8044806.076\n    test 152 cosineForsytheAndoyerLambert9 (0.07%): 8050363.635  FAILED, KNOWN, expected 8044806.076\n    test 153 cosineLaw9 (0.01%): 8045325.213  FAILED, KNOWN, expected 8044806.076\n    test 154 flatLocal9 (15.21%): 9268128.573  FAILED, KNOWN, expected 8044806.076\n    test 155 thomas9 (0.07%): 8050370.796  FAILED, KNOWN, expected 8044806.076\n    test 156 hubeny9: <function flatLocal at 0x106116c40>\n\n    test 157 intersection2: pygeodesy.formy\n    test 158 intersection2(None): (25.980762, 15.0)  FAILED, KNOWN, expected (24.284126, 15.0)\n# lazily imported pygeodesy.sphericalTrigonometry by formy.py line 1093\n    test 159 intersection2(6371008.771415): (24.146108, 15.0)  FAILED, KNOWN, expected (24.284126, 15.0)\n# lazily imported pygeodesy.sphericalNvector by formy.py line 1088\n    test 160 intersection2(-6371008.771415): (24.146108, 15.0)  FAILED, KNOWN, expected (24.284126, 15.0)\n# lazily imported pygeodesy.geodesicw by ellipsoids.py line 1074\n# lazily imported pygeodesy.ellipsoidalKarney by formy.py line 1099\n# lazily imported pygeodesy.azimuthal by ellipsoidalKarney.py line 85\n    test 161 intersection2(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84): (24.284126, 15.0)\n\n    test 162 intersections2: pygeodesy.formy\n    test 163 intersections2(None) 1: (1.0003, 1.0003), (-1.0003, -1.0003)\n    test 164 intersections2(None) 2: (2.0024, 2.0024), (-2.0024, -2.0024)\n    test 165 intersections2(None) 5: (5.0381, 5.0381), (-5.0381, -5.0381)\n    test 166 intersections2(None) 10: (10.3062, 10.3062), (-10.3062, -10.3062)\n    test 167 intersections2(None) 20: (-22.494, -22.494), (22.494, 22.494)\n    test 168 intersections2(None) 30: (38.7298, 38.7298), (-38.7298, -38.7298)\n    test 169 intersections2(None) 40: (62.0732, 62.0732), (-62.0732, -62.0732)\n    test 170 intersections2(R_M) 1: (-1.0, -1.0003), (1.0, 1.0003)\n    test 171 intersections2(R_M) 2: (-2.0, -2.0024), (2.0, 2.0024)\n    test 172 intersections2(R_M) 5: (-4.9999, -5.0383), (4.9999, 5.0383)\n    test 173 intersections2(R_M) 10: (-9.9976, -10.3117), (9.9976, 10.3117)\n    test 174 intersections2(R_M) 20: (-19.914, -22.6761), (19.914, 22.6761)\n    test 175 intersections2(R_M) 30: (-29.2059, -40.203), (29.2059, 40.203)\n    test 176 intersections2(R_M) 40: (-35.5129, -68.6826), (35.5129, 68.6826)\n    test 177 intersections2(WGS84) 1: (-1.0112, -0.998), (1.0112, 0.998)\n    test 178 intersections2(WGS84) 2: (-2.0224, -1.9979), (2.0224, 1.9979)\n    test 179 intersections2(WGS84) 5: (-5.0558, -5.0271), (5.0558, 5.0271)\n    test 180 intersections2(WGS84) 10: (-10.1081, -10.2901), (10.1081, 10.2901)\n    test 181 intersections2(WGS84) 20: (-20.1241, -22.6411), (20.1241, 22.6411)\n    test 182 intersections2(WGS84) 30: (-29.4898, -40.1785), (29.4898, 40.1785)\n    test 183 intersections2(WGS84) 40: (-35.8146, -68.7149), (35.8146, 68.7149)\n\n    test 184 radical2: (0.26, 2.6)\n    test 185 radical2: (0.74, 7.4)\n    test 186 radical2: (0.5, 5.0)\n    test 187 radical2: (0.5, 0.0)\n# imported pygeodesy.basics into errors.py line 443\n    test 188 IntersectionError: distance (10.0), radius1 (5.0) or radius2 (4.0): too distant  FAILED, KNOWN, expected distance (10.0), ...\n\n    test 189 LimitError: equirectangular4(0.0, 0.0, 60.0, 120.0, limit=45, wrap=False): delta (120) exceeds limit (45)  FAILED, KNOWN, expected delta exceeds ...\n\n    test 190 heightOrthometric: -1.0\n    test 191 heightOrthometric: 1.0\n\n    161 of 191 testFormy.py tests (84.3%) FAILED, incl. 71 KNOWN plus 90 DeprecationWarnings (pygeodesy 26.3.26 Python 3.14.3 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 32.923 ms\nrunning /Library/Framewo....n3.14 -W default ~/PyGeodesy/test/testFrechet.py\n./pygeodesy/frechet.py:644: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  self._func = self.datum.ellipsoid.geodesic.Inverse1\n./pygeodesy/ellipsoidalKarney.py:94: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return self.datum.ellipsoid.geodesic\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.FrechetError from .frechet by testFrechet.py line 12\n# lazily imported pygeodesy.fstr from .streprs by testFrechet.py line 12\n# lazily imported pygeodesy.LatLon_ from .points by testFrechet.py line 12\n# lazily imported pygeodesy.randomrangenerator from .hausdorff by testFrechet.py line 12\n# lazily imported pygeodesy.fractional from .points by testFrechet.py line 59\n# lazily imported pygeodesy.frechet_ from .frechet by testFrechet.py line 59\n# lazily imported pygeodesy.FrechetCosineLaw from .frechet by testFrechet.py line 59\n# lazily imported pygeodesy.FrechetDegrees from .frechet by testFrechet.py line 59\n# lazily imported pygeodesy.FrechetDistanceTo from .frechet by testFrechet.py line 59\n# lazily imported pygeodesy.FrechetEquirectangular from .frechet by testFrechet.py line 59\n# lazily imported pygeodesy.FrechetEuclidean from .frechet by testFrechet.py line 59\n# lazily imported pygeodesy.FrechetExact from .frechet by testFrechet.py line 59\n# lazily imported pygeodesy.FrechetFlatLocal from .frechet by testFrechet.py line 59\n# lazily imported pygeodesy.FrechetFlatPolar from .frechet by testFrechet.py line 59\n# lazily imported pygeodesy.FrechetKarney from .frechet by testFrechet.py line 59\n# lazily imported pygeodesy.FrechetHaversine from .frechet by testFrechet.py line 59\n# lazily imported pygeodesy.FrechetHubeny from .frechet by testFrechet.py line 59\n# lazily imported pygeodesy.FrechetRadians from .frechet by testFrechet.py line 59\n# lazily imported pygeodesy.FrechetThomas from .frechet by testFrechet.py line 59\n# lazily imported pygeodesy.FrechetVincentys from .frechet by testFrechet.py line 59\n\n    testing testFrechet.py 25.04.21 isLazy=3\n# lazily imported pygeodesy.booleans by iters.py line 503\n\n    test 1 FrechetDegrees_ (degrees): (178.5, 74, 56, 0, 5400)\n    test 2 FrechetDegrees_ (degrees): (175.5, 74, 52.5, 29, 10710)\n    test 3 copy(<class 'type'>): (<class '__main__.FrechetDegrees_'>, True)\n    test 4 FrechetDegrees_.copy(): (<class '__main__.FrechetDegrees_'>, True)\n\n    test 5 FrechetRadians_ (radians): (3.11541, 74, 56, 0, 5400)\n    test 6 FrechetRadians_ (radians): (3.06305, 74, 52.5, 29, 10710)\n    test 7 copy(<class 'type'>): (<class '__main__.FrechetRadians_'>, True)\n    test 8 FrechetRadians_.copy(): (<class '__main__.FrechetRadians_'>, True)\n# imported pygeodesy.formy into frechet.py line 424\n\n    test 9 FrechetCosineLaw (radians): (2.63867, 0, 13, 0, 5400)\n    test 10 FrechetCosineLaw (radians): (2.63867, 0, 0, 208, 10710)\n    test 11 copy(<class 'type'>): (<class 'pygeodesy.frechet.FrechetCosineLaw'>, True)\n    test 12 FrechetCosineLaw.copy(): (<class 'pygeodesy.frechet.FrechetCosineLaw'>, True)\n\n    test 13 FrechetCosineLaw (radians): (2.6319, 0, 13, 0, 5400)\n    test 14 FrechetCosineLaw (radians): (2.6319, 0, 0, 208, 10710)\n    test 15 copy(<class 'type'>): (<class 'pygeodesy.frechet.FrechetCosineLaw'>, True)\n    test 16 FrechetCosineLaw.copy(): (<class 'pygeodesy.frechet.FrechetCosineLaw'>, True)\n\n    test 17 FrechetCosineLaw (radians): (2.6319, 0, 13, 0, 5400)\n    test 18 FrechetCosineLaw (radians): (2.6319, 0, 0, 208, 10710)\n    test 19 copy(<class 'type'>): (<class 'pygeodesy.frechet.FrechetCosineLaw'>, True)\n    test 20 FrechetCosineLaw.copy(): (<class 'pygeodesy.frechet.FrechetCosineLaw'>, True)\n\n    test 21 FrechetEquirectangular (radians2): (7.1331, 8, 3, 0, 5400)\n    test 22 FrechetEquirectangular (radians2): (7.01295, 0, 0, 208, 10710)\n    test 23 copy(<class 'type'>): (<class 'pygeodesy.frechet.FrechetEquirectangular'>, True)\n    test 24 FrechetEquirectangular.copy(): (<class 'pygeodesy.frechet.FrechetEquirectangular'>, True)\n\n    test 25 FrechetEuclidean (radians): (2.81124, 8, 3, 0, 5400)\n    test 26 FrechetEuclidean (radians): (2.74296, 0, 0, 208, 10710)\n    test 27 copy(<class 'type'>): (<class 'pygeodesy.frechet.FrechetEuclidean'>, True)\n    test 28 FrechetEuclidean.copy(): (<class 'pygeodesy.frechet.FrechetEuclidean'>, True)\n\n    test 29 FrechetFlatLocal (radians2): (7.13778, 8, 3, 0, 5400)\n    test 30 FrechetFlatLocal (radians2): (6.92262, 0, 0, 208, 10710)\n    test 31 copy(<class 'type'>): (<class 'pygeodesy.frechet.FrechetFlatLocal'>, True)\n    test 32 FrechetFlatLocal.copy(): (<class 'pygeodesy.frechet.FrechetFlatLocal'>, True)\n\n    test 33 FrechetFlatPolar (radians): (2.65039, 0, 4, 0, 5400)\n    test 34 FrechetFlatPolar (radians): (2.65039, 0, 0, 208, 10710)\n    test 35 copy(<class 'type'>): (<class 'pygeodesy.frechet.FrechetFlatPolar'>, True)\n    test 36 FrechetFlatPolar.copy(): (<class 'pygeodesy.frechet.FrechetFlatPolar'>, True)\n\n    test 37 FrechetHaversine (radians): (2.63867, 0, 13, 0, 5400)\n    test 38 FrechetHaversine (radians): (2.63867, 0, 0, 208, 10710)\n    test 39 copy(<class 'type'>): (<class 'pygeodesy.frechet.FrechetHaversine'>, True)\n    test 40 FrechetHaversine.copy(): (<class 'pygeodesy.frechet.FrechetHaversine'>, True)\n\n    test 41 FrechetHubeny (radians2): (7.13778, 8, 3, 0, 5400)\n    test 42 FrechetHubeny (radians2): (6.92262, 0, 0, 208, 10710)\n    test 43 copy(<class 'type'>): (<class 'pygeodesy.frechet.FrechetHubeny'>, True)\n    test 44 FrechetHubeny.copy(): (<class 'pygeodesy.frechet.FrechetHubeny'>, True)\n\n    test 45 FrechetThomas (radians): (2.63187, 0, 13, 0, 5400)\n    test 46 FrechetThomas (radians): (2.63187, 0, 0, 208, 10710)\n    test 47 copy(<class 'type'>): (<class 'pygeodesy.frechet.FrechetThomas'>, True)\n    test 48 FrechetThomas.copy(): (<class 'pygeodesy.frechet.FrechetThomas'>, True)\n\n    test 49 FrechetVincentys (radians): (2.63867, 0, 13, 0, 5400)\n    test 50 FrechetVincentys (radians): (2.63867, 0, 0, 208, 10710)\n    test 51 copy(<class 'type'>): (<class 'pygeodesy.frechet.FrechetVincentys'>, True)\n    test 52 FrechetVincentys.copy(): (<class 'pygeodesy.frechet.FrechetVincentys'>, True)\n# lazily imported pygeodesy.geodesicw by ellipsoids.py line 1074\n\n    test 53 FrechetKarney (degrees): (151.09508, 0, 13, 0, 5400)\n    test 54 FrechetKarney (degrees): (151.09508, 0, 0, 208, 10710)\n    test 55 copy(<class 'type'>): (<class 'pygeodesy.frechet.FrechetKarney'>, True)\n    test 56 FrechetKarney.copy(): (<class 'pygeodesy.frechet.FrechetKarney'>, True)\n# lazily imported pygeodesy.ellipsoidalNvector by testFrechet.py line 218\n# lazily imported pygeodesy.ellipsoidalVincenty by testFrechet.py line 218\n# lazily imported pygeodesy.sphericalNvector by testFrechet.py line 218\n# lazily imported pygeodesy.sphericalTrigonometry by testFrechet.py line 218\n# lazily imported pygeodesy.ellipsoidalKarney by testFrechet.py line 223\n\n    test 57 FrechetDistanceTo (meter): (16786640.7064, 0, 13, 0, 5400)\n    test 58 FrechetDistanceTo (meter): (16786640.7064, 0, 0, 208, 10710)\n    test 59 copy(<class 'type'>): (<class 'pygeodesy.frechet.FrechetDistanceTo'>, True)\n    test 60 FrechetDistanceTo.copy(): (<class 'pygeodesy.frechet.FrechetDistanceTo'>, True)\n\n    test 61 FrechetDistanceTo (meter): (16786640.7064, 0, 13, 0, 5400)\n    test 62 FrechetDistanceTo (meter): (16786640.7064, 0, 0, 208, 10710)\n    test 63 copy(<class 'type'>): (<class 'pygeodesy.frechet.FrechetDistanceTo'>, True)\n    test 64 FrechetDistanceTo.copy(): (<class 'pygeodesy.frechet.FrechetDistanceTo'>, True)\n\n    test 65 FrechetDistanceTo (meter): (16810959.0015, 0, 13, 0, 5400)\n    test 66 FrechetDistanceTo (meter): (16810959.0015, 0, 0, 208, 10710)\n    test 67 copy(<class 'type'>): (<class 'pygeodesy.frechet.FrechetDistanceTo'>, True)\n    test 68 FrechetDistanceTo.copy(): (<class 'pygeodesy.frechet.FrechetDistanceTo'>, True)\n\n    test 69 FrechetDistanceTo (meter): (16810959.0015, 0, 13, 0, 5400)\n    test 70 FrechetDistanceTo (meter): (16810959.0015, 0, 0, 208, 10710)\n    test 71 copy(<class 'type'>): (<class 'pygeodesy.frechet.FrechetDistanceTo'>, True)\n    test 72 FrechetDistanceTo.copy(): (<class 'pygeodesy.frechet.FrechetDistanceTo'>, True)\n\n    test 73 FrechetDistanceTo (meter): (16810959.0015, 0, 13, 0, 5400)\n    test 74 FrechetDistanceTo (meter): (16810959.0015, 0, 0, 208, 10710)\n    test 75 copy(<class 'type'>): (<class 'pygeodesy.frechet.FrechetDistanceTo'>, True)\n    test 76 FrechetDistanceTo.copy(): (<class 'pygeodesy.frechet.FrechetDistanceTo'>, True)\n\n    test 77 frechet_: (178.5, 74, 56, 19, 5400, 'recursive')\n    test 78 [fi1]: 64.0°S, 096.0°E\n    test 79 [fi2]: 41.0°S, 071.0°W\n    test 80 [fi1]: LatLon_(64.0°S, 096.0°E)\n    test 81 [fi2]: LatLon_(41.0°S, 071.0°W)\n\n    test 82 frechet_: (178.5, 74, 56, 0, 5400, 'non-recursive')\n    test 83 frechet_: (178.5, 15, 3, 0, 5400, 'non-recursive-reversed')\n\n    91 of 83 testFrechet.py tests (109.6%) FAILED, incl. 91 DeprecationWarnings (pygeodesy 26.3.26 Python 3.14.3 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 15.985 sec\nrunning /Library/Framewo....n3.14 -W default ~/PyGeodesy/test/testFrozen.py\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n\n    testing testFrozen.py 24.03.03 isLazy=3\n    test 1 cmd: /Library/Frameworks/Python.framework/Versions/3.14/bin/python3.14 -c 'import sys; sys.frozen = True; import pygeodesy; sys.exit(0 if pygeodesy._isfrozen else 1)'\n    test 2 PYGEODESY_LAZY_IMPORT=0: 0\n    test 3 PYGEODESY_LAZY_IMPORT=1: 0\n    test 4 PYGEODESY_LAZY_IMPORT=2: 0\n\n    all 4 testFrozen.py tests passed (pygeodesy 26.3.26 Python 3.14.3 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 242.989 ms\nrunning /Library/Framewo....n3.14 -W default ~/PyGeodesy/test/testFstats.py\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.EPS0 from .constants by testFstats.py line 11\n# lazily imported pygeodesy.Fcook from .fstats by testFstats.py line 11\n# lazily imported pygeodesy.Flinear from .fstats by testFstats.py line 11\n# lazily imported pygeodesy.Fsum from .fsums by testFstats.py line 11\n# lazily imported pygeodesy.Fsum2Tuple from .fsums by testFstats.py line 11\n# lazily imported pygeodesy.Fwelford from .fstats by testFstats.py line 11\n\n    testing testFstats.py 23.05.08 (module pygeodesy.fstats 25.05.12) isLazy=3\n    test 1 Fcook: 8\n    test 2 Fcook: -0.218750\n    test 3 Fcook: 4.562500\n    test 4 Fcook: 5.0\n    test 5 Fcook: 0.656250\n    test 6 Fcook: 2.0\n    test 7 Fcook: 4.0\n    test 8 Fcook: 1.039635\n\n    test 9 copy: Fcook copy[8]\n    test 10 copy: 5.0\n    test 11 copy: 2.0\n    test 12 Fcook: 8\n\n    test 13 Doubled: 16\n    test 14 Doubled: -0.218750\n    test 15 Doubled: 4.5625\n    test 16 Doubled: 5.0\n    test 17 Doubled: 0.656250\n    test 18 Doubled: 2.0\n    test 19 Doubled: 4.0\n    test 20 Doubled: 1.340453  FAILED, KNOWN, expected 1.039635\n\n    test 21 Empty: Fcook Empty[16]\n    test 22 Empty: 18\n    test 23 Empty: TypeError('Fcook Empty[18] += None: None: not iterable')\n\n    test 24 Excel: 8\n    test 25 Excel: -1.114187\n    test 26 Excel: -0.939792\n    test 27 Excel: 2.735294\n    test 28 Excel: 2.50\n    test 29 Excel: -0.342403\n    test 30 Excel: -0.427052\n    test 31 Excel: 2.061553\n    test 32 Excel: 4.2\n    test 33 Excel: 0.470372\n\n    test 34 Fwelford: 8\n    test 35 Fwelford: 5.0\n    test 36 Fwelford: 2.0\n    test 37 Fwelford: 4.0\n\n    test 38 copy: Fwelford copy[8]\n    test 39 copy: 5.0\n    test 40 copy: 2.0\n    test 41 copy: 4.0\n    test 42 copy: 8\n    test 43 __add__: 18\n    test 44 __add__: TypeError('Fwelford __add__[18] += None: None: not iterable')\n\n    test 45 Flinear: 9\n    test 46 Flinear: 0.988288\n    test 47 Flinear: 167.682949\n    test 48 Flinear: 23.422786\n    test 49 __add__: 10\n    test 50 __add__: 21\n    test 51 __add__: TypeError('Flinear __add__[21] += None: None: not iterable')\n    test 52 __add__: ValueError('Flinear __add__[21] += (1, 2, 3): odd len (3): invalid')\n\n    1 of 52 testFstats.py tests (1.9%) FAILED, ALL KNOWN (pygeodesy 26.3.26 Python 3.14.3 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 149.843 ms\nrunning /Library/Framewo....n3.14 -W default ~/PyGeodesy/test/testFsums.py\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.EPS from .constants by testFsums.py line 11\n# lazily imported pygeodesy.INF from .constants by testFsums.py line 11\n# lazily imported pygeodesy.NAN from .constants by testFsums.py line 11\n# lazily imported pygeodesy.Fsum from .fsums by testFsums.py line 11\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by <frozen importlib._bootstrap> line 1423\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by <frozen importlib._bootstrap> line 1423\n# lazily imported pygeodesy.Conformal2Tuple from .triaxials.triaxial5 by <frozen importlib._bootstrap> line 1423\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by classes.py line 21\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by classes.py line 21\n# lazily imported pygeodesy.Conformal2Tuple from .triaxials.triaxial5 by classes.py line 21\n# lazily imported pygeodesy.Fsum2product from .deprecated.functions by testFsums.py line 11\n# lazily imported pygeodesy.Fsum2Tuple from .fsums by testFsums.py line 11\n# lazily imported pygeodesy.ResidualError from .fsums by testFsums.py line 11\n# lazily imported pygeodesy.f2product from .fsums by testFsums.py line 11\n# lazily imported pygeodesy.frandoms from .fmath by testFsums.py line 11\n# lazily imported pygeodesy.fsum from .fsums by testFsums.py line 11\n# lazily imported pygeodesy.fsum_ from .fsums by testFsums.py line 11\n# lazily imported pygeodesy.isfinite from .constants by testFsums.py line 11\n# lazily imported pygeodesy.nonfiniterrors from .fsums by testFsums.py line 11\n\n    testing testFsums.py 25.06.02 (module pygeodesy.fsums 26.02.02) isLazy=3\n    test 1 sum1: 1.0  FAILED, KNOWN, expected 2.0\n    test 2 fsum: 2.0\n    test 3 Fsum: 2.0\n    test 4 sum2: 3.0  FAILED, KNOWN, expected 4.0\n    test 5 fsum: 4.0\n    test 6 Fsum: 4.0\n    test 7 sum3: 7.0  FAILED, KNOWN, expected 8.0\n    test 8 fsum: 8.0\n    test 9 Fsum: 8.0\n    test 10 sum4: 15.0  FAILED, KNOWN, expected 16.0\n    test 11 fsum: 16.0\n    test 12 Fsum: 16.0\n    test 13 sum5: 31.0  FAILED, KNOWN, expected 32.0\n    test 14 fsum: 32.0\n    test 15 Fsum: 32.0\n    test 16 sum6: 63.0  FAILED, KNOWN, expected 64.0\n    test 17 fsum: 64.0\n    test 18 Fsum: 64.0\n    test 19 sum7: 127.0  FAILED, KNOWN, expected 128.0\n    test 20 fsum: 128.0\n    test 21 Fsum: 128.0\n    test 22 sum8: 255.0  FAILED, KNOWN, expected 256.0\n    test 23 fsum: 256.0\n    test 24 Fsum: 256.0\n    test 25 sum9: 511.0  FAILED, KNOWN, expected 512.0\n    test 26 fsum: 512.0\n    test 27 Fsum: 512.0\n    test 28 sum10: 1023.0  FAILED, KNOWN, expected 1024.0\n    test 29 fsum: 1024.0\n    test 30 Fsum: 1024.0\n    test 31 sum: 1.005000000001\n    test 32 fsum: 1.005000000001\n    test 33 Fsum: 1.005000000001\n    test 34 fsum: 1.0000000000000002e+16\n    test 35 Fsum: 1.0000000000000002e+16\n    test 36 Fsum: 1.0000000000000002e+16\n\n\n    test 37 fsum: 1.4203229439040998e-06\n    test 38 sum1: 1.4203235725318564e-06  FAILED, KNOWN, expected 1.4203229439040998e-06\n    test 39 pow(4): Fsum[17] pow(4.06957e-24, 2.33188e-40)\n    test 40 pow(1): Fsum[842] pow(1.42032e-06, 4.98687e-23)\n    test 41 pow(0): Fsum[1] pow(1.0, 0)\n    test 42 ceil: True\n    test 43 floor: True\n    test 44 divmod: Fsum[847] (0.0, 0)\n    test 45 residual: 0\n    test 46 is_exact: True\n    test 47 Fsum: 1.4203229439040998e-06\n    test 48 Fsum: 1.4203229439040998e-06\n\n    test 49 fsum: 0.017239254941143905\n    test 50 sum2: 0.0  FAILED, KNOWN, expected 0.017239254941143905\n    test 51 pow(4): Fsum[21] pow(8.8323e-08, 2.46487e-26)\n    test 52 pow(1): Fsum[842] pow(0.0172393, -6.15105e-19)\n    test 53 pow(0): Fsum[1] pow(1.0, 0)\n    test 54 ceil: True\n    test 55 floor: True\n    test 56 divmod: Fsum[849] (0.0, 0)\n    test 57 residual: 0\n    test 58 is_exact: True\n    test 59 Fsum: 0.017239254941143905\n    test 60 Fsum: 0.017239254941143905\n\n    test 61 fsum: -4.399912565500297\n    test 62 sum3: -4.399912565499886  FAILED, KNOWN, expected -4.399912565500297\n    test 63 pow(4): Fsum[34] pow(374.78, -2.78761e-14)\n    test 64 pow(1): Fsum[842] pow(-4.39991, -9.03137e-17)\n    test 65 pow(0): Fsum[1] pow(1.0, 0)\n    test 66 ceil: True\n    test 67 floor: True\n    test 68 divmod: Fsum[852] (0.0, 0)\n    test 69 residual: 0\n    test 70 is_exact: True\n    test 71 Fsum: -4.399912565500297\n    test 72 Fsum: -4.399912565500297\n\n    test 73 fsum: 4.2324766388316953e-11\n    test 74 sum4: 0.0  FAILED, KNOWN, expected 4.2324766388316953e-11\n    test 75 pow(4): Fsum[8] pow(3.20906e-42, -1.32347e-58)\n    test 76 pow(1): Fsum[842] pow(4.23248e-11, 2.93802e-28)\n    test 77 pow(0): Fsum[1] pow(1.0, 0)\n    test 78 ceil: True\n    test 79 floor: True\n    test 80 divmod: Fsum[845] (0.0, 0)\n    test 81 residual: 0\n    test 82 is_exact: True\n    test 83 Fsum: 4.2324766388316953e-11\n    test 84 Fsum: 4.2324766388316953e-11\n\n    test 85 fsum: -0.008914133182563242\n    test 86 sum5: -0.008914133182585715  FAILED, KNOWN, expected -0.008914133182563242\n    test 87 pow(4): Fsum[59] pow(6.31417e-09, 4.22286e-27)\n    test 88 pow(1): Fsum[842] pow(-0.00891413, -5.71362e-19)\n    test 89 pow(0): Fsum[1] pow(1.0, 0)\n    test 90 ceil: True\n    test 91 floor: True\n    test 92 divmod: Fsum[854] (0.0, 0)\n    test 93 residual: 0\n    test 94 is_exact: True\n    test 95 Fsum: -0.008914133182563242\n    test 96 Fsum: -0.008914133182563242\n\n    test 97 fsum: 0.2668150469030887\n    test 98 sum6: 0.26681504690336055  FAILED, KNOWN, expected 0.2668150469030887\n    test 99 pow(4): Fsum[28] pow(0.00506805, -6.31247e-20)\n    test 100 pow(1): Fsum[842] pow(0.266815, 2.51382e-17)\n    test 101 pow(0): Fsum[1] pow(1.0, 0)\n    test 102 ceil: True\n    test 103 floor: True\n    test 104 divmod: Fsum[849] (0.0, 0)\n    test 105 residual: 0\n    test 106 is_exact: True\n    test 107 Fsum: 0.2668150469030887\n    test 108 Fsum: 0.2668150469030887\n\n    test 109 fsum: -1.8483996395074306e-08\n    test 110 sum7: 0.0  FAILED, KNOWN, expected -1.8483996395074306e-08\n    test 111 pow(4): Fsum[8] pow(1.1673e-31, -2.07516e-49)\n    test 112 pow(1): Fsum[842] pow(-1.8484e-08, -1.41426e-24)\n    test 113 pow(0): Fsum[1] pow(1.0, 0)\n    test 114 ceil: True\n    test 115 floor: True\n    test 116 divmod: Fsum[847] (0.0, 0)\n    test 117 residual: 0\n    test 118 is_exact: True\n    test 119 Fsum: -1.8483996395074306e-08\n    test 120 Fsum: -1.8483996395074306e-08\n\n    test 121 fsum: -0.0005853306979721807\n    test 122 sum8: 0.0  FAILED, KNOWN, expected -0.0005853306979721807\n    test 123 pow(4): Fsum[22] pow(1.17383e-13, 8.69761e-30)\n    test 124 pow(1): Fsum[842] pow(-0.000585331, -4.27854e-21)\n    test 125 pow(0): Fsum[1] pow(1.0, 0)\n    test 126 ceil: True\n    test 127 floor: True\n    test 128 divmod: Fsum[848] (0.0, 0)\n    test 129 residual: 0\n    test 130 is_exact: True\n    test 131 Fsum: -0.0005853306979721807\n    test 132 Fsum: -0.0005853306979721807\n\n    test 133 fsum: 0.28395513510726667\n    test 134 sum9: 0.0  FAILED, KNOWN, expected 0.28395513510726667\n    test 135 pow(4): Fsum[36] pow(0.00650128, -2.68753e-19)\n    test 136 pow(1): Fsum[842] pow(0.283955, 2.59189e-18)\n    test 137 pow(0): Fsum[1] pow(1.0, 0)\n    test 138 ceil: True\n    test 139 floor: True\n    test 140 divmod: Fsum[848] (0.0, 0)\n    test 141 residual: 0\n    test 142 is_exact: True\n    test 143 Fsum: 0.28395513510726667\n    test 144 Fsum: 0.28395513510726667\n\n    test 145 fsum: 0.00019154119665364008\n    test 146 sum10: 0.0  FAILED, KNOWN, expected 0.00019154119665364008\n    test 147 pow(4): Fsum[17] pow(1.34601e-15, -3.08746e-32)\n    test 148 pow(1): Fsum[842] pow(0.000191541, -1.15795e-20)\n    test 149 pow(0): Fsum[1] pow(1.0, 0)\n    test 150 ceil: True\n    test 151 floor: True\n    test 152 divmod: Fsum[848] (0.0, 0)\n    test 153 residual: 0\n    test 154 is_exact: True\n    test 155 Fsum: 0.00019154119665364008\n    test 156 Fsum: 0.00019154119665364008\n\n    test 157 fsum: 5.358490922383404e-08\n    test 158 sum11: 0.0  FAILED, KNOWN, expected 5.358490922383404e-08\n    test 159 pow(4): Fsum[13] pow(8.24461e-30, 4.46501e-46)\n    test 160 pow(1): Fsum[842] pow(5.35849e-08, 2.67612e-24)\n    test 161 pow(0): Fsum[1] pow(1.0, 0)\n    test 162 ceil: True\n    test 163 floor: True\n    test 164 divmod: Fsum[846] (0.0, 0)\n    test 165 residual: 0\n    test 166 is_exact: True\n    test 167 Fsum: 5.358490922383404e-08\n    test 168 Fsum: 5.358490922383404e-08\n\n    test 169 fsum: -1.9453763248695655\n    test 170 sum12: -1.9453763248691303  FAILED, KNOWN, expected -1.9453763248695655\n    test 171 pow(4): Fsum[26] pow(14.3224, 7.12534e-16)\n    test 172 pow(1): Fsum[842] pow(-1.94538, 8.67095e-17)\n    test 173 pow(0): Fsum[1] pow(1.0, 0)\n    test 174 ceil: True\n    test 175 floor: True\n    test 176 divmod: Fsum[847] (0.0, 0)\n    test 177 residual: 0\n    test 178 is_exact: True\n    test 179 Fsum: -1.9453763248695655\n    test 180 Fsum: -1.9453763248695655\n\n    test 181 fsum: 4.161773385984235e-09\n    test 182 sum13: 0.0  FAILED, KNOWN, expected 4.161773385984235e-09\n    test 183 pow(4): Fsum[13] pow(2.99995e-34, -1.62273e-50)\n    test 184 pow(1): Fsum[842] pow(4.16177e-09, -5.2347e-26)\n    test 185 pow(0): Fsum[1] pow(1.0, 0)\n    test 186 ceil: True\n    test 187 floor: True\n    test 188 divmod: Fsum[846] (0.0, 0)\n    test 189 residual: 0\n    test 190 is_exact: True\n    test 191 Fsum: 4.161773385984235e-09\n    test 192 Fsum: 4.161773385984235e-09\n\n    test 193 fsum: -5.330669493335932e-08\n    test 194 sum14: 0.0  FAILED, KNOWN, expected -5.330669493335932e-08\n    test 195 pow(4): Fsum[27] pow(8.07471e-30, -6.13932e-46)\n    test 196 pow(1): Fsum[842] pow(-5.33067e-08, 1.37312e-24)\n    test 197 pow(0): Fsum[1] pow(1.0, 0)\n    test 198 ceil: True\n    test 199 floor: True\n    test 200 divmod: Fsum[851] (0.0, 0)\n    test 201 residual: 0\n    test 202 is_exact: True\n    test 203 Fsum: -5.330669493335932e-08\n    test 204 Fsum: -5.330669493335932e-08\n\n    test 205 fsum: -6.4410389150402375e-09\n    test 206 sum15: 0.0  FAILED, KNOWN, expected -6.4410389150402375e-09\n    test 207 pow(4): Fsum[10] pow(1.72117e-33, -4.5197e-50)\n    test 208 pow(1): Fsum[842] pow(-6.44104e-09, -2.62447e-25)\n    test 209 pow(0): Fsum[1] pow(1.0, 0)\n    test 210 ceil: True\n    test 211 floor: True\n    test 212 divmod: Fsum[846] (0.0, 0)\n    test 213 residual: 0\n    test 214 is_exact: True\n    test 215 Fsum: -6.4410389150402375e-09\n    test 216 Fsum: -6.4410389150402375e-09\n\n    test 217 fsum: -100.70449671778515\n    test 218 sum16: -100.7044967177855  FAILED, KNOWN, expected -100.70449671778515\n    test 219 pow(4): Fsum[38] pow(1.02848e+08, -7.80444e-10)\n    test 220 pow(1): Fsum[842] pow(-100.704, 6.85494e-15)\n    test 221 pow(0): Fsum[1] pow(1.0, 0)\n    test 222 ceil: True\n    test 223 floor: True\n    test 224 divmod: Fsum[851] (0.0, 0)\n    test 225 residual: 0\n    test 226 is_exact: True\n    test 227 Fsum: -100.70449671778515\n    test 228 Fsum: -100.70449671778515\n\n    test 229 fsum: 0.031430096586523674\n    test 230 sum17: 0.031430096586926304  FAILED, KNOWN, expected 0.031430096586523674\n    test 231 pow(4): Fsum[35] pow(9.7585e-07, -9.07106e-24)\n    test 232 pow(1): Fsum[842] pow(0.0314301, 3.07914e-18)\n    test 233 pow(0): Fsum[1] pow(1.0, 0)\n    test 234 ceil: True\n    test 235 floor: True\n    test 236 divmod: Fsum[853] (0.0, 0)\n    test 237 residual: 0\n    test 238 is_exact: True\n    test 239 Fsum: 0.031430096586523674\n    test 240 Fsum: 0.031430096586523674\n\n    test 241 fsum: 4.749236242624645e-07\n    test 242 sum18: 4.7492264343418356e-07  FAILED, KNOWN, expected 4.749236242624645e-07\n    test 243 pow(4): Fsum[16] pow(5.08739e-26, 1.39809e-42)\n    test 244 pow(1): Fsum[842] pow(4.74924e-07, -1.8261e-24)\n    test 245 pow(0): Fsum[1] pow(1.0, 0)\n    test 246 ceil: True\n    test 247 floor: True\n    test 248 divmod: Fsum[848] (0.0, 0)\n    test 249 residual: 0\n    test 250 is_exact: True\n    test 251 Fsum: 4.749236242624645e-07\n    test 252 Fsum: 4.749236242624645e-07\n\n    test 253 fsum: 4.020975754301224e-09\n    test 254 sum19: 0.0  FAILED, KNOWN, expected 4.020975754301224e-09\n    test 255 pow(4): Fsum[14] pow(2.61412e-34, 1.54533e-50)\n    test 256 pow(1): Fsum[842] pow(4.02098e-09, 3.15474e-25)\n    test 257 pow(0): Fsum[1] pow(1.0, 0)\n    test 258 ceil: True\n    test 259 floor: True\n    test 260 divmod: Fsum[846] (0.0, 0)\n    test 261 residual: 0\n    test 262 is_exact: True\n    test 263 Fsum: 4.020975754301224e-09\n    test 264 Fsum: 4.020975754301224e-09\n\n    test 265 fsum: 0.048270757278626016\n    test 266 sum20: 0.04827075727799013  FAILED, KNOWN, expected 0.048270757278626016\n    test 267 pow(4): Fsum[26] pow(5.42921e-06, 2.03035e-22)\n    test 268 pow(1): Fsum[842] pow(0.0482708, -2.89109e-18)\n    test 269 pow(0): Fsum[1] pow(1.0, 0)\n    test 270 ceil: True\n    test 271 floor: True\n    test 272 divmod: Fsum[849] (0.0, 0)\n    test 273 residual: 0\n    test 274 is_exact: True\n    test 275 Fsum: 0.048270757278626016\n    test 276 Fsum: 0.048270757278626016\n\n    test 277 fsum: 1.2425017682661341e-09\n    test 278 sum21: 1.2425971362972632e-09  FAILED, KNOWN, expected 1.2425017682661341e-09\n    test 279 pow(4): Fsum[12] pow(2.38335e-36, -8.97596e-53)\n    test 280 pow(1): Fsum[842] pow(1.2425e-09, -7.95438e-26)\n    test 281 pow(0): Fsum[1] pow(1.0, 0)\n    test 282 ceil: True\n    test 283 floor: True\n    test 284 divmod: Fsum[847] (0.0, 0)\n    test 285 residual: 0\n    test 286 is_exact: True\n    test 287 Fsum: 1.2425017682661341e-09\n    test 288 Fsum: 1.2425017682661341e-09\n\n    test 289 fsum: -1.8530858503343324e-06\n    test 290 sum22: -1.8530857097687203e-06  FAILED, KNOWN, expected -1.8530858503343324e-06\n    test 291 pow(4): Fsum[14] pow(1.17919e-23, 7.1125e-40)\n    test 292 pow(1): Fsum[842] pow(-1.85309e-06, -1.00107e-23)\n    test 293 pow(0): Fsum[1] pow(1.0, 0)\n    test 294 ceil: True\n    test 295 floor: True\n    test 296 divmod: Fsum[847] (0.0, 0)\n    test 297 residual: 0\n    test 298 is_exact: True\n    test 299 Fsum: -1.8530858503343324e-06\n    test 300 Fsum: -1.8530858503343324e-06\n\n    test 301 fsum: -4.916695735069353e-09\n    test 302 sum23: 0.0  FAILED, KNOWN, expected -4.916695735069353e-09\n    test 303 pow(4): Fsum[12] pow(5.84377e-34, -2.28233e-50)\n    test 304 pow(1): Fsum[842] pow(-4.9167e-09, -2.81786e-25)\n    test 305 pow(0): Fsum[1] pow(1.0, 0)\n    test 306 ceil: True\n    test 307 floor: True\n    test 308 divmod: Fsum[849] (0.0, 0)\n    test 309 residual: 0\n    test 310 is_exact: True\n    test 311 Fsum: -4.916695735069353e-09\n    test 312 Fsum: -4.916695735069353e-09\n\n    test 313 fsum: 0.006121711945771237\n    test 314 sum24: 0.006121711946502684  FAILED, KNOWN, expected 0.006121711945771237\n    test 315 pow(4): Fsum[22] pow(1.4044e-09, -4.91356e-26)\n    test 316 pow(1): Fsum[842] pow(0.00612171, -4.08653e-19)\n    test 317 pow(0): Fsum[1] pow(1.0, 0)\n    test 318 ceil: True\n    test 319 floor: True\n    test 320 divmod: Fsum[849] (0.0, 0)\n    test 321 residual: 0\n    test 322 is_exact: True\n    test 323 Fsum: 0.006121711945771237\n    test 324 Fsum: 0.006121711945771237\n\n    test 325 fsum: 4.220812132230373e-06\n    test 326 sum25: 0.0  FAILED, KNOWN, expected 4.220812132230373e-06\n    test 327 pow(4): Fsum[17] pow(3.17383e-22, 1.41457e-38)\n    test 328 pow(1): Fsum[842] pow(4.22081e-06, 1.93379e-22)\n    test 329 pow(0): Fsum[1] pow(1.0, 0)\n    test 330 ceil: True\n    test 331 floor: True\n    test 332 divmod: Fsum[850] (0.0, 0)\n    test 333 residual: 0\n    test 334 is_exact: True\n    test 335 Fsum: 4.220812132230373e-06\n    test 336 Fsum: 4.220812132230373e-06\n\n    test 337 fsum: 8.867746101512408e-13\n    test 338 sum26: 0.0  FAILED, KNOWN, expected 8.867746101512408e-13\n    test 339 pow(4): Fsum[8] pow(6.18377e-49, -1.97301e-65)\n    test 340 pow(1): Fsum[842] pow(8.86775e-13, -4.73128e-29)\n    test 341 pow(0): Fsum[1] pow(1.0, 0)\n    test 342 ceil: True\n    test 343 floor: True\n    test 344 divmod: Fsum[845] (0.0, 0)\n    test 345 residual: 0\n    test 346 is_exact: True\n    test 347 Fsum: 8.867746101512408e-13\n    test 348 Fsum: 8.867746101512408e-13\n\n    test 349 fsum: -6.398629890964825e-08\n    test 350 sum27: 0.0  FAILED, KNOWN, expected -6.398629890964825e-08\n    test 351 pow(4): Fsum[11] pow(1.67629e-29, 6.7953e-46)\n    test 352 pow(1): Fsum[842] pow(-6.39863e-08, -6.52054e-24)\n    test 353 pow(0): Fsum[1] pow(1.0, 0)\n    test 354 ceil: True\n    test 355 floor: True\n    test 356 divmod: Fsum[847] (0.0, 0)\n    test 357 residual: 0\n    test 358 is_exact: True\n    test 359 Fsum: -6.398629890964825e-08\n    test 360 Fsum: -6.398629890964825e-08\n\n    test 361 fsum: -0.17897224932807945\n    test 362 sum28: 0.0  FAILED, KNOWN, expected -0.17897224932807945\n    test 363 pow(4): Fsum[31] pow(0.00102599, -8.96384e-20)\n    test 364 pow(1): Fsum[842] pow(-0.178972, 9.98442e-18)\n    test 365 pow(0): Fsum[1] pow(1.0, 0)\n    test 366 ceil: True\n    test 367 floor: True\n    test 368 divmod: Fsum[849] (0.0, 0)\n    test 369 residual: 0\n    test 370 is_exact: True\n    test 371 Fsum: -0.17897224932807945\n    test 372 Fsum: -0.17897224932807945\n\n    test 373 fsum: 5.7855200966644714e-05\n    test 374 sum29: 0.0  FAILED, KNOWN, expected 5.7855200966644714e-05\n    test 375 pow(4): Fsum[23] pow(1.12039e-17, -3.07461e-34)\n    test 376 pow(1): Fsum[842] pow(5.78552e-05, -1.28468e-21)\n    test 377 pow(0): Fsum[1] pow(1.0, 0)\n    test 378 ceil: True\n    test 379 floor: True\n    test 380 divmod: Fsum[848] (0.0, 0)\n    test 381 residual: 0\n    test 382 is_exact: True\n    test 383 Fsum: 5.7855200966644714e-05\n    test 384 Fsum: 5.7855200966644714e-05\n\n    test 385 fsum: -0.1696709590636187\n    test 386 sum30: 0.0  FAILED, KNOWN, expected -0.1696709590636187\n    test 387 pow(4): Fsum[30] pow(0.000828762, 1.4922e-20)\n    test 388 pow(1): Fsum[842] pow(-0.169671, 8.42014e-18)\n    test 389 pow(0): Fsum[1] pow(1.0, 0)\n    test 390 ceil: True\n    test 391 floor: True\n    test 392 divmod: Fsum[851] (0.0, 0)\n    test 393 residual: 0\n    test 394 is_exact: True\n    test 395 Fsum: -0.1696709590636187\n    test 396 Fsum: -0.1696709590636187\n\n    test 397 fsum: -0.012598183978412492\n    test 398 sum31: 0.0  FAILED, KNOWN, expected -0.012598183978412492\n    test 399 pow(4): Fsum[25] pow(2.51902e-08, 1.6108e-25)\n    test 400 pow(1): Fsum[842] pow(-0.0125982, -6.63642e-19)\n    test 401 pow(0): Fsum[1] pow(1.0, 0)\n    test 402 ceil: True\n    test 403 floor: True\n    test 404 divmod: Fsum[849] (0.0, 0)\n    test 405 residual: 0\n    test 406 is_exact: True\n    test 407 Fsum: -0.012598183978412492\n    test 408 Fsum: -0.012598183978412492\n\n    test 409 fsum: 3.093510407095073e-12\n    test 410 sum32: 0.0  FAILED, KNOWN, expected 3.093510407095073e-12\n    test 411 pow(4): Fsum[7] pow(9.15812e-47, -1.12933e-64)\n    test 412 pow(1): Fsum[842] pow(3.09351e-12, -1.4592e-28)\n    test 413 pow(0): Fsum[1] pow(1.0, 0)\n    test 414 ceil: True\n    test 415 floor: True\n    test 416 divmod: Fsum[847] (0.0, 0)\n    test 417 residual: 0\n    test 418 is_exact: True\n    test 419 Fsum: 3.093510407095073e-12\n    test 420 Fsum: 3.093510407095073e-12\n\n    test 421 fsum: 0.0017197856474203425\n    test 422 sum33: 0.0017197856474950868  FAILED, KNOWN, expected 0.0017197856474203425\n    test 423 pow(4): Fsum[22] pow(8.74777e-12, -4.52575e-28)\n    test 424 pow(1): Fsum[842] pow(0.00171979, 5.34528e-20)\n    test 425 pow(0): Fsum[1] pow(1.0, 0)\n    test 426 ceil: True\n    test 427 floor: True\n    test 428 divmod: Fsum[848] (0.0, 0)\n    test 429 residual: 0\n    test 430 is_exact: True\n    test 431 Fsum: 0.0017197856474203425\n    test 432 Fsum: 0.0017197856474203425\n\n    test 433 fsum: -0.2959541337937912\n    test 434 sum34: 0.0  FAILED, KNOWN, expected -0.2959541337937912\n    test 435 pow(4): Fsum[26] pow(0.00767181, -2.77125e-19)\n    test 436 pow(1): Fsum[842] pow(-0.295954, 6.44717e-18)\n    test 437 pow(0): Fsum[1] pow(1.0, 0)\n    test 438 ceil: True\n    test 439 floor: True\n    test 440 divmod: Fsum[851] (0.0, 0)\n    test 441 residual: 0\n    test 442 is_exact: True\n    test 443 Fsum: -0.2959541337937912\n    test 444 Fsum: -0.2959541337937912\n\n    test 445 fsum: 1.1234860549063546e-09\n    test 446 sum35: 0.0  FAILED, KNOWN, expected 1.1234860549063546e-09\n    test 447 pow(4): Fsum[14] pow(1.5932e-36, 5.49567e-53)\n    test 448 pow(1): Fsum[842] pow(1.12349e-09, 2.18605e-26)\n    test 449 pow(0): Fsum[1] pow(1.0, 0)\n    test 450 ceil: True\n    test 451 floor: True\n    test 452 divmod: Fsum[845] (0.0, 0)\n    test 453 residual: 0\n    test 454 is_exact: True\n    test 455 Fsum: 1.1234860549063546e-09\n    test 456 Fsum: 1.1234860549063546e-09\n\n    test 457 fsum: 3.0216063258744465e-09\n    test 458 sum36: 3.0215403512556804e-09  FAILED, KNOWN, expected 3.0216063258744465e-09\n    test 459 pow(4): Fsum[11] pow(8.33588e-35, -2.21935e-51)\n    test 460 pow(1): Fsum[842] pow(3.02161e-09, 1.76e-25)\n    test 461 pow(0): Fsum[1] pow(1.0, 0)\n    test 462 ceil: True\n    test 463 floor: True\n    test 464 divmod: Fsum[848] (0.0, 0)\n    test 465 residual: 0\n    test 466 is_exact: True\n    test 467 Fsum: 3.0216063258744465e-09\n    test 468 Fsum: 3.0216063258744465e-09\n\n    test 469 fsum: -40.38391063402946\n    test 470 sum37: -40.383910634030144  FAILED, KNOWN, expected -40.38391063402946\n    test 471 pow(4): Fsum[24] pow(2.65971e+06, -1.14693e-10)\n    test 472 pow(1): Fsum[842] pow(-40.3839, -1.00384e-15)\n    test 473 pow(0): Fsum[1] pow(1.0, 0)\n    test 474 ceil: True\n    test 475 floor: True\n    test 476 divmod: Fsum[848] (0.0, 0)\n    test 477 residual: 0\n    test 478 is_exact: True\n    test 479 Fsum: -40.38391063402946\n    test 480 Fsum: -40.38391063402946\n\n    test 481 fsum: -8.315323065039467e-09\n    test 482 sum38: -8.315794275404187e-09  FAILED, KNOWN, expected -8.315323065039467e-09\n    test 483 pow(4): Fsum[10] pow(4.78098e-33, -3.13806e-50)\n    test 484 pow(1): Fsum[842] pow(-8.31532e-09, -7.87767e-25)\n    test 485 pow(0): Fsum[1] pow(1.0, 0)\n    test 486 ceil: True\n    test 487 floor: True\n    test 488 divmod: Fsum[848] (0.0, 0)\n    test 489 residual: 0\n    test 490 is_exact: True\n    test 491 Fsum: -8.315323065039467e-09\n    test 492 Fsum: -8.315323065039467e-09\n\n    test 493 fsum: 0.00025425233271824874\n    test 494 sum39: 0.00025425233258147273  FAILED, KNOWN, expected 0.00025425233271824874\n    test 495 pow(4): Fsum[28] pow(4.17888e-15, 1.21236e-31)\n    test 496 pow(1): Fsum[842] pow(0.000254252, -1.33013e-20)\n    test 497 pow(0): Fsum[1] pow(1.0, 0)\n    test 498 ceil: True\n    test 499 floor: True\n    test 500 divmod: Fsum[848] (0.0, 0)\n    test 501 residual: 0\n    test 502 is_exact: True\n    test 503 Fsum: 0.00025425233271824874\n    test 504 Fsum: 0.00025425233271824874\n\n    test 505 fsum: 0.010596031823027785\n    test 506 sum40: 0.0  FAILED, KNOWN, expected 0.010596031823027785\n    test 507 pow(4): Fsum[25] pow(1.26059e-08, 3.63943e-25)\n    test 508 pow(1): Fsum[842] pow(0.010596, 8.02159e-19)\n    test 509 pow(0): Fsum[1] pow(1.0, 0)\n    test 510 ceil: True\n    test 511 floor: True\n    test 512 divmod: Fsum[847] (0.0, 0)\n    test 513 residual: 0\n    test 514 is_exact: True\n    test 515 Fsum: 0.010596031823027785\n    test 516 Fsum: 0.010596031823027785\n\n    test 517 fsum: 7.833592181697467e-09\n    test 518 sum41: 7.83336417953251e-09  FAILED, KNOWN, expected 7.833592181697467e-09\n    test 519 pow(4): Fsum[12] pow(3.76568e-33, 1.40079e-49)\n    test 520 pow(1): Fsum[842] pow(7.83359e-09, -7.43605e-26)\n    test 521 pow(0): Fsum[1] pow(1.0, 0)\n    test 522 ceil: True\n    test 523 floor: True\n    test 524 divmod: Fsum[846] (0.0, 0)\n    test 525 residual: 0\n    test 526 is_exact: True\n    test 527 Fsum: 7.833592181697467e-09\n    test 528 Fsum: 7.833592181697467e-09\n\n    test 529 fsum: 6.610846222782073e-13\n    test 530 sum42: 8.668621376273222e-13  FAILED, KNOWN, expected 6.610846222782073e-13\n    test 531 pow(4): Fsum[8] pow(1.90998e-49, -1.46724e-65)\n    test 532 pow(1): Fsum[842] pow(6.61085e-13, 4.14257e-29)\n    test 533 pow(0): Fsum[1] pow(1.0, 0)\n    test 534 ceil: True\n    test 535 floor: True\n    test 536 divmod: Fsum[844] (0.0, 0)\n    test 537 residual: 0\n    test 538 is_exact: True\n    test 539 Fsum: 6.610846222782073e-13\n    test 540 Fsum: 6.610846222782073e-13\n\n    test 541 fsum: -0.0061295368005402735\n    test 542 sum43: 0.0  FAILED, KNOWN, expected -0.0061295368005402735\n    test 543 pow(4): Fsum[15] pow(1.4116e-09, 2.25116e-26)\n    test 544 pow(1): Fsum[842] pow(-0.00612954, -3.65373e-19)\n    test 545 pow(0): Fsum[1] pow(1.0, 0)\n    test 546 ceil: True\n    test 547 floor: True\n    test 548 divmod: Fsum[846] (0.0, 0)\n    test 549 residual: 0\n    test 550 is_exact: True\n    test 551 Fsum: -0.0061295368005402735\n    test 552 Fsum: -0.0061295368005402735\n\n    test 553 fsum: 7.515207385115806e-05\n    test 554 sum44: 0.0  FAILED, KNOWN, expected 7.515207385115806e-05\n    test 555 pow(4): Fsum[17] pow(3.1898e-17, -1.42121e-33)\n    test 556 pow(1): Fsum[842] pow(7.51521e-05, -1.86692e-21)\n    test 557 pow(0): Fsum[1] pow(1.0, 0)\n    test 558 ceil: True\n    test 559 floor: True\n    test 560 divmod: Fsum[849] (0.0, 0)\n    test 561 residual: 0\n    test 562 is_exact: True\n    test 563 Fsum: 7.515207385115806e-05\n    test 564 Fsum: 7.515207385115806e-05\n\n    test 565 fsum: -0.003654295215608957\n    test 566 sum45: -0.0036542952176290555  FAILED, KNOWN, expected -0.003654295215608957\n    test 567 pow(4): Fsum[23] pow(1.78326e-10, -6.45194e-27)\n    test 568 pow(1): Fsum[842] pow(-0.0036543, -1.28938e-19)\n    test 569 pow(0): Fsum[1] pow(1.0, 0)\n    test 570 ceil: True\n    test 571 floor: True\n    test 572 divmod: Fsum[850] (0.0, 0)\n    test 573 residual: 0\n    test 574 is_exact: True\n    test 575 Fsum: -0.003654295215608957\n    test 576 Fsum: -0.003654295215608957\n\n    test 577 fsum: -1.5402369794874465e-07\n    test 578 sum46: -1.540232119623397e-07  FAILED, KNOWN, expected -1.5402369794874465e-07\n    test 579 pow(4): Fsum[11] pow(5.62795e-28, 1.65807e-44)\n    test 580 pow(1): Fsum[842] pow(-1.54024e-07, 8.44467e-24)\n    test 581 pow(0): Fsum[1] pow(1.0, 0)\n    test 582 ceil: True\n    test 583 floor: True\n    test 584 divmod: Fsum[847] (0.0, 0)\n    test 585 residual: 0\n    test 586 is_exact: True\n    test 587 Fsum: -1.5402369794874465e-07\n    test 588 Fsum: -1.5402369794874465e-07\n\n    test 589 fsum: 0.0031351073041314135\n    test 590 sum47: 0.003135107303876339  FAILED, KNOWN, expected 0.0031351073041314135\n    test 591 pow(4): Fsum[22] pow(9.66072e-11, 1.76042e-27)\n    test 592 pow(1): Fsum[842] pow(0.00313511, 1.16991e-19)\n    test 593 pow(0): Fsum[1] pow(1.0, 0)\n    test 594 ceil: True\n    test 595 floor: True\n    test 596 divmod: Fsum[849] (0.0, 0)\n    test 597 residual: 0\n    test 598 is_exact: True\n    test 599 Fsum: 0.0031351073041314135\n    test 600 Fsum: 0.0031351073041314135\n\n    test 601 fsum: -1.0195462358526644e-12\n    test 602 sum48: 0.0  FAILED, KNOWN, expected -1.0195462358526644e-12\n    test 603 pow(4): Fsum[9] pow(1.08051e-48, -1.76047e-65)\n    test 604 pow(1): Fsum[842] pow(-1.01955e-12, -3.41487e-29)\n    test 605 pow(0): Fsum[1] pow(1.0, 0)\n    test 606 ceil: True\n    test 607 floor: True\n    test 608 divmod: Fsum[847] (0.0, 0)\n    test 609 residual: 0\n    test 610 is_exact: True\n    test 611 Fsum: -1.0195462358526644e-12\n    test 612 Fsum: -1.0195462358526644e-12\n\n    test 613 fsum: -2.762699041302757\n    test 614 sum49: 0.0  FAILED, KNOWN, expected -2.762699041302757\n    test 615 pow(4): Fsum[37] pow(58.2551, -2.32244e-15)\n    test 616 pow(1): Fsum[842] pow(-2.7627, -2.8164e-17)\n    test 617 pow(0): Fsum[1] pow(1.0, 0)\n    test 618 ceil: True\n    test 619 floor: True\n    test 620 divmod: Fsum[851] (0.0, 0)\n    test 621 residual: 0\n    test 622 is_exact: True\n    test 623 Fsum: -2.762699041302757\n    test 624 Fsum: -2.762699041302757\n\n    test 625 fsum: -0.004373577971488287\n    test 626 sum50: 0.0  FAILED, KNOWN, expected -0.004373577971488287\n    test 627 pow(4): Fsum[22] pow(3.65887e-10, -1.55116e-26)\n    test 628 pow(1): Fsum[842] pow(-0.00437358, -6.81992e-20)\n    test 629 pow(0): Fsum[1] pow(1.0, 0)\n    test 630 ceil: True\n    test 631 floor: True\n    test 632 divmod: Fsum[850] (0.0, 0)\n    test 633 residual: 0\n    test 634 is_exact: True\n    test 635 Fsum: -0.004373577971488287\n    test 636 Fsum: -0.004373577971488287\n\n    test 637 fsum: -1.5970499450308288e-05\n    test 638 sum51: 0.0  FAILED, KNOWN, expected -1.5970499450308288e-05\n    test 639 pow(4): Fsum[21] pow(6.5054e-20, 2.00273e-36)\n    test 640 pow(1): Fsum[842] pow(-1.59705e-05, -4.34169e-22)\n    test 641 pow(0): Fsum[1] pow(1.0, 0)\n    test 642 ceil: True\n    test 643 floor: True\n    test 644 divmod: Fsum[850] (0.0, 0)\n    test 645 residual: 0\n    test 646 is_exact: True\n    test 647 Fsum: -1.5970499450308288e-05\n    test 648 Fsum: -1.5970499450308288e-05\n\n    test 649 fsum: 0.032100297320307135\n    test 650 sum52: 0.0  FAILED, KNOWN, expected 0.032100297320307135\n    test 651 pow(4): Fsum[27] pow(1.06178e-06, 3.51272e-24)\n    test 652 pow(1): Fsum[842] pow(0.0321003, 1.23842e-18)\n    test 653 pow(0): Fsum[1] pow(1.0, 0)\n    test 654 ceil: True\n    test 655 floor: True\n    test 656 divmod: Fsum[849] (0.0, 0)\n    test 657 residual: 0\n    test 658 is_exact: True\n    test 659 Fsum: 0.032100297320307135\n    test 660 Fsum: 0.032100297320307135\n\n    test 661 fsum: -0.0014902560786330264\n    test 662 sum53: 0.0  FAILED, KNOWN, expected -0.0014902560786330264\n    test 663 pow(4): Fsum[20] pow(4.93223e-12, -5.12988e-29)\n    test 664 pow(1): Fsum[842] pow(-0.00149026, 1.02621e-19)\n    test 665 pow(0): Fsum[1] pow(1.0, 0)\n    test 666 ceil: True\n    test 667 floor: True\n    test 668 divmod: Fsum[848] (0.0, 0)\n    test 669 residual: 0\n    test 670 is_exact: True\n    test 671 Fsum: -0.0014902560786330264\n    test 672 Fsum: -0.0014902560786330264\n\n    test 673 fsum: -6.93260830709721e-07\n    test 674 sum54: 0.0  FAILED, KNOWN, expected -6.93260830709721e-07\n    test 675 pow(4): Fsum[14] pow(2.30987e-25, -1.94477e-41)\n    test 676 pow(1): Fsum[842] pow(-6.93261e-07, 1.07769e-23)\n    test 677 pow(0): Fsum[1] pow(1.0, 0)\n    test 678 ceil: True\n    test 679 floor: True\n    test 680 divmod: Fsum[847] (0.0, 0)\n    test 681 residual: 0\n    test 682 is_exact: True\n    test 683 Fsum: -6.93260830709721e-07\n    test 684 Fsum: -6.93260830709721e-07\n\n    test 685 fsum: 2.9080913265077775e-14\n    test 686 sum55: 0.0  FAILED, KNOWN, expected 2.9080913265077775e-14\n    test 687 pow(4): Fsum[8] pow(7.15208e-55, 1.38481e-71)\n    test 688 pow(1): Fsum[842] pow(2.90809e-14, -2.36504e-30)\n    test 689 pow(0): Fsum[1] pow(1.0, 0)\n    test 690 ceil: True\n    test 691 floor: True\n    test 692 divmod: Fsum[848] (0.0, 0)\n    test 693 residual: 0\n    test 694 is_exact: True\n    test 695 Fsum: 2.9080913265077775e-14\n    test 696 Fsum: 2.9080913265077775e-14\n\n    test 697 fsum: -5.3637224787681174e-08\n    test 698 sum56: -5.363676791603211e-08  FAILED, KNOWN, expected -5.3637224787681174e-08\n    test 699 pow(4): Fsum[14] pow(8.27685e-30, 1.57615e-46)\n    test 700 pow(1): Fsum[842] pow(-5.36372e-08, -6.77893e-25)\n    test 701 pow(0): Fsum[1] pow(1.0, 0)\n    test 702 ceil: True\n    test 703 floor: True\n    test 704 divmod: Fsum[849] (0.0, 0)\n    test 705 residual: 0\n    test 706 is_exact: True\n    test 707 Fsum: -5.3637224787681174e-08\n    test 708 Fsum: -5.3637224787681174e-08\n\n    test 709 fsum: -0.4665950454344666\n    test 710 sum57: -0.46659504543437474  FAILED, KNOWN, expected -0.4665950454344666\n    test 711 pow(4): Fsum[26] pow(0.0473981, 4.66047e-19)\n    test 712 pow(1): Fsum[842] pow(-0.466595, 2.28423e-17)\n    test 713 pow(0): Fsum[1] pow(1.0, 0)\n    test 714 ceil: True\n    test 715 floor: True\n    test 716 divmod: Fsum[849] (0.0, 0)\n    test 717 residual: 0\n    test 718 is_exact: True\n    test 719 Fsum: -0.4665950454344666\n    test 720 Fsum: -0.4665950454344666\n\n    test 721 fsum: -1.097912213493587\n    test 722 sum58: -1.0979122134934158  FAILED, KNOWN, expected -1.097912213493587\n    test 723 pow(4): Fsum[38] pow(1.45302, 1.00912e-16)\n    test 724 pow(1): Fsum[842] pow(-1.09791, 5.96349e-18)\n    test 725 pow(0): Fsum[1] pow(1.0, 0)\n    test 726 ceil: True\n    test 727 floor: True\n    test 728 divmod: Fsum[851] (0.0, 0)\n    test 729 residual: 0\n    test 730 is_exact: True\n    test 731 Fsum: -1.097912213493587\n    test 732 Fsum: -1.097912213493587\n\n    test 733 fsum: 0.0008318527265511295\n    test 734 sum59: 0.0008318527261188535  FAILED, KNOWN, expected 0.0008318527265511295\n    test 735 pow(4): Fsum[20] pow(4.78835e-13, -2.74362e-29)\n    test 736 pow(1): Fsum[842] pow(0.000831853, 2.70689e-20)\n    test 737 pow(0): Fsum[1] pow(1.0, 0)\n    test 738 ceil: True\n    test 739 floor: True\n    test 740 divmod: Fsum[848] (0.0, 0)\n    test 741 residual: 0\n    test 742 is_exact: True\n    test 743 Fsum: 0.0008318527265511295\n    test 744 Fsum: 0.0008318527265511295\n\n    test 745 fsum: 2.0048130696662265\n    test 746 sum60: 2.004813069672796  FAILED, KNOWN, expected 2.0048130696662265\n    test 747 pow(4): Fsum[29] pow(16.1546, 2.0711e-16)\n    test 748 pow(1): Fsum[842] pow(2.00481, -1.77471e-17)\n    test 749 pow(0): Fsum[1] pow(1.0, 0)\n    test 750 ceil: True\n    test 751 floor: True\n    test 752 divmod: Fsum[849] (0.0, 0)\n    test 753 residual: 0\n    test 754 is_exact: True\n    test 755 Fsum: 2.0048130696662265\n    test 756 Fsum: 2.0048130696662265\n\n    test 757 fsum: -8.91303377980622e-08\n    test 758 sum61: -8.912991500409362e-08  FAILED, KNOWN, expected -8.91303377980622e-08\n    test 759 pow(4): Fsum[11] pow(6.31106e-29, -4.66422e-45)\n    test 760 pow(1): Fsum[842] pow(-8.91303e-08, 4.34956e-24)\n    test 761 pow(0): Fsum[1] pow(1.0, 0)\n    test 762 ceil: True\n    test 763 floor: True\n    test 764 divmod: Fsum[846] (0.0, 0)\n    test 765 residual: 0\n    test 766 is_exact: True\n    test 767 Fsum: -8.91303377980622e-08\n    test 768 Fsum: -8.91303377980622e-08\n\n    test 769 fsum: -1.0430211818701006e-08\n    test 770 sum62: -1.0429332064632035e-08  FAILED, KNOWN, expected -1.0430211818701006e-08\n    test 771 pow(4): Fsum[15] pow(1.18351e-32, 5.56889e-49)\n    test 772 pow(1): Fsum[842] pow(-1.04302e-08, 5.94016e-25)\n    test 773 pow(0): Fsum[1] pow(1.0, 0)\n    test 774 ceil: True\n    test 775 floor: True\n    test 776 divmod: Fsum[848] (0.0, 0)\n    test 777 residual: 0\n    test 778 is_exact: True\n    test 779 Fsum: -1.0430211818701006e-08\n    test 780 Fsum: -1.0430211818701006e-08\n\n    test 781 fsum: 1.2492275836146128e-14\n    test 782 sum63: -7.247535904753022e-13  FAILED, KNOWN, expected 1.2492275836146128e-14\n    test 783 pow(4): Fsum[9] pow(2.43538e-56, -3.40779e-73)\n    test 784 pow(1): Fsum[842] pow(1.24923e-14, -4.40539e-31)\n    test 785 pow(0): Fsum[1] pow(1.0, 0)\n    test 786 ceil: True\n    test 787 floor: True\n    test 788 divmod: Fsum[850] (0.0, 0)\n    test 789 residual: 0\n    test 790 is_exact: True\n    test 791 Fsum: 1.2492275836146128e-14\n    test 792 Fsum: 1.2492275836146128e-14\n\n    test 793 fsum: 1.2779036473104664e-08\n    test 794 sum64: 1.2779204618118545e-08  FAILED, KNOWN, expected 1.2779036473104664e-08\n    test 795 pow(4): Fsum[15] pow(2.66681e-32, -2.21257e-48)\n    test 796 pow(1): Fsum[842] pow(1.2779e-08, 3.69114e-25)\n    test 797 pow(0): Fsum[1] pow(1.0, 0)\n    test 798 ceil: True\n    test 799 floor: True\n    test 800 divmod: Fsum[848] (0.0, 0)\n    test 801 residual: 0\n    test 802 is_exact: True\n    test 803 Fsum: 1.2779036473104664e-08\n    test 804 Fsum: 1.2779036473104664e-08\n\n    test 805 fsum: 0.04191632620812525\n    test 806 sum65: 0.0  FAILED, KNOWN, expected 0.04191632620812525\n    test 807 pow(4): Fsum[24] pow(3.08697e-06, -1.28339e-22)\n    test 808 pow(1): Fsum[842] pow(0.0419163, -2.09349e-19)\n    test 809 pow(0): Fsum[1] pow(1.0, 0)\n    test 810 ceil: True\n    test 811 floor: True\n    test 812 divmod: Fsum[848] (0.0, 0)\n    test 813 residual: 0\n    test 814 is_exact: True\n    test 815 Fsum: 0.04191632620812525\n    test 816 Fsum: 0.04191632620812525\n\n    test 817 fsum: 3.5267358478583304e-07\n    test 818 sum66: 0.0  FAILED, KNOWN, expected 3.5267358478583304e-07\n    test 819 pow(4): Fsum[14] pow(1.54701e-26, -4.41296e-43)\n    test 820 pow(1): Fsum[842] pow(3.52674e-07, 1.05929e-23)\n    test 821 pow(0): Fsum[1] pow(1.0, 0)\n    test 822 ceil: True\n    test 823 floor: True\n    test 824 divmod: Fsum[845] (0.0, 0)\n    test 825 residual: 0\n    test 826 is_exact: True\n    test 827 Fsum: 3.5267358478583304e-07\n    test 828 Fsum: 3.5267358478583304e-07\n\n    test 829 fsum: -3.252533092497974e-05\n    test 830 sum67: -3.2525331205235375e-05  FAILED, KNOWN, expected -3.252533092497974e-05\n    test 831 pow(4): Fsum[21] pow(1.11915e-18, 6.16139e-35)\n    test 832 pow(1): Fsum[842] pow(-3.25253e-05, -2.32756e-21)\n    test 833 pow(0): Fsum[1] pow(1.0, 0)\n    test 834 ceil: True\n    test 835 floor: True\n    test 836 divmod: Fsum[850] (0.0, 0)\n    test 837 residual: 0\n    test 838 is_exact: True\n    test 839 Fsum: -3.252533092497974e-05\n    test 840 Fsum: -3.252533092497974e-05\n\n    test 841 fsum: 165.34478448565338\n    test 842 sum68: 0.0  FAILED, KNOWN, expected 165.34478448565338\n    test 843 pow(4): Fsum[41] pow(7.47415e+08, 4.93484e-08)\n    test 844 pow(1): Fsum[842] pow(165.345, -6.4152e-15)\n    test 845 pow(0): Fsum[1] pow(1.0, 0)\n    test 846 ceil: True\n    test 847 floor: True\n    test 848 divmod: Fsum[853] (0.0, 0)\n    test 849 residual: 0\n    test 850 is_exact: True\n    test 851 Fsum: 165.34478448565338\n    test 852 Fsum: 165.34478448565338\n\n    test 853 fsum: -0.0001757526565796681\n    test 854 sum69: 0.0  FAILED, KNOWN, expected -0.0001757526565796681\n    test 855 pow(4): Fsum[17] pow(9.5413e-16, 1.40348e-32)\n    test 856 pow(1): Fsum[842] pow(-0.000175753, 5.39102e-21)\n    test 857 pow(0): Fsum[1] pow(1.0, 0)\n    test 858 ceil: True\n    test 859 floor: True\n    test 860 divmod: Fsum[850] (0.0, 0)\n    test 861 residual: 0\n    test 862 is_exact: True\n    test 863 Fsum: -0.0001757526565796681\n    test 864 Fsum: -0.0001757526565796681\n\n    test 865 fsum: -0.05553150797701166\n    test 866 sum70: 0.0  FAILED, KNOWN, expected -0.05553150797701166\n    test 867 pow(4): Fsum[39] pow(9.5095e-06, 4.39972e-22)\n    test 868 pow(1): Fsum[842] pow(-0.0555315, 1.80786e-18)\n    test 869 pow(0): Fsum[1] pow(1.0, 0)\n    test 870 ceil: True\n    test 871 floor: True\n    test 872 divmod: Fsum[852] (0.0, 0)\n    test 873 residual: 0\n    test 874 is_exact: True\n    test 875 Fsum: -0.05553150797701166\n    test 876 Fsum: -0.05553150797701166\n\n    test 877 fsum: 5.886312795661918e-05\n    test 878 sum71: 5.8863129630992717e-05  FAILED, KNOWN, expected 5.886312795661918e-05\n    test 879 pow(4): Fsum[18] pow(1.20053e-17, 5.83407e-34)\n    test 880 pow(1): Fsum[842] pow(5.88631e-05, -4.59058e-22)\n    test 881 pow(0): Fsum[1] pow(1.0, 0)\n    test 882 ceil: True\n    test 883 floor: True\n    test 884 divmod: Fsum[849] (0.0, 0)\n    test 885 residual: 0\n    test 886 is_exact: True\n    test 887 Fsum: 5.886312795661918e-05\n    test 888 Fsum: 5.886312795661918e-05\n\n    test 889 fsum: -0.00016888123419475597\n    test 890 sum72: -0.0001688812348419333  FAILED, KNOWN, expected -0.00016888123419475597\n    test 891 pow(4): Fsum[18] pow(8.1344e-16, -8.39452e-33)\n    test 892 pow(1): Fsum[842] pow(-0.000168881, 7.90085e-21)\n    test 893 pow(0): Fsum[1] pow(1.0, 0)\n    test 894 ceil: True\n    test 895 floor: True\n    test 896 divmod: Fsum[848] (0.0, 0)\n    test 897 residual: 0\n    test 898 is_exact: True\n    test 899 Fsum: -0.00016888123419475597\n    test 900 Fsum: -0.00016888123419475597\n\n    test 901 fsum: -1.4062586274292843e-08\n    test 902 sum73: -1.4063971320865676e-08  FAILED, KNOWN, expected -1.4062586274292843e-08\n    test 903 pow(4): Fsum[16] pow(3.91076e-32, -2.47068e-48)\n    test 904 pow(1): Fsum[842] pow(-1.40626e-08, 4.95379e-25)\n    test 905 pow(0): Fsum[1] pow(1.0, 0)\n    test 906 ceil: True\n    test 907 floor: True\n    test 908 divmod: Fsum[848] (0.0, 0)\n    test 909 residual: 0\n    test 910 is_exact: True\n    test 911 Fsum: -1.4062586274292843e-08\n    test 912 Fsum: -1.4062586274292843e-08\n\n    test 913 fsum: -0.01196513456467219\n    test 914 sum74: -0.011965134564377422  FAILED, KNOWN, expected -0.01196513456467219\n    test 915 pow(4): Fsum[22] pow(2.04961e-08, 1.49577e-24)\n    test 916 pow(1): Fsum[842] pow(-0.0119651, -4.93275e-20)\n    test 917 pow(0): Fsum[1] pow(1.0, 0)\n    test 918 ceil: True\n    test 919 floor: True\n    test 920 divmod: Fsum[852] (0.0, 0)\n    test 921 residual: 0\n    test 922 is_exact: True\n    test 923 Fsum: -0.01196513456467219\n    test 924 Fsum: -0.01196513456467219\n\n    test 925 fsum: -6.925513760895447e-07\n    test 926 sum75: 0.0  FAILED, KNOWN, expected -6.925513760895447e-07\n    test 927 pow(4): Fsum[14] pow(2.30042e-25, 6.53338e-42)\n    test 928 pow(1): Fsum[842] pow(-6.92551e-07, 1.41639e-23)\n    test 929 pow(0): Fsum[1] pow(1.0, 0)\n    test 930 ceil: True\n    test 931 floor: True\n    test 932 divmod: Fsum[849] (0.0, 0)\n    test 933 residual: 0\n    test 934 is_exact: True\n    test 935 Fsum: -6.925513760895447e-07\n    test 936 Fsum: -6.925513760895447e-07\n\n    test 937 fsum: 9.957524498585636e-06\n    test 938 sum76: 0.0  FAILED, KNOWN, expected 9.957524498585636e-06\n    test 939 pow(4): Fsum[17] pow(9.83118e-21, -1.4554e-37)\n    test 940 pow(1): Fsum[842] pow(9.95752e-06, -4.85105e-22)\n    test 941 pow(0): Fsum[1] pow(1.0, 0)\n    test 942 ceil: True\n    test 943 floor: True\n    test 944 divmod: Fsum[848] (0.0, 0)\n    test 945 residual: 0\n    test 946 is_exact: True\n    test 947 Fsum: 9.957524498585636e-06\n    test 948 Fsum: 9.957524498585636e-06\n\n    test 949 fsum: 0.0014631781981059653\n    test 950 sum77: 0.0014631781995717574  FAILED, KNOWN, expected 0.0014631781981059653\n    test 951 pow(4): Fsum[25] pow(4.58341e-12, 1.61625e-28)\n    test 952 pow(1): Fsum[842] pow(0.00146318, -9.64519e-20)\n    test 953 pow(0): Fsum[1] pow(1.0, 0)\n    test 954 ceil: True\n    test 955 floor: True\n    test 956 divmod: Fsum[847] (0.0, 0)\n    test 957 residual: 0\n    test 958 is_exact: True\n    test 959 Fsum: 0.0014631781981059653\n    test 960 Fsum: 0.0014631781981059653\n\n    test 961 fsum: -5.992658029434769e-10\n    test 962 sum78: 0.0  FAILED, KNOWN, expected -5.992658029434769e-10\n    test 963 pow(4): Fsum[14] pow(1.28967e-37, 8.12815e-54)\n    test 964 pow(1): Fsum[842] pow(-5.99266e-10, 1.0121e-26)\n    test 965 pow(0): Fsum[1] pow(1.0, 0)\n    test 966 ceil: True\n    test 967 floor: True\n    test 968 divmod: Fsum[849] (0.0, 0)\n    test 969 residual: 0\n    test 970 is_exact: True\n    test 971 Fsum: -5.992658029434769e-10\n    test 972 Fsum: -5.992658029434769e-10\n\n    test 973 fsum: 0.016908889311496828\n    test 974 sum79: 0.0  FAILED, KNOWN, expected 0.016908889311496828\n    test 975 pow(4): Fsum[32] pow(8.17448e-08, -1.79158e-24)\n    test 976 pow(1): Fsum[842] pow(0.0169089, 4.89016e-19)\n    test 977 pow(0): Fsum[1] pow(1.0, 0)\n    test 978 ceil: True\n    test 979 floor: True\n    test 980 divmod: Fsum[851] (0.0, 0)\n    test 981 residual: 0\n    test 982 is_exact: True\n    test 983 Fsum: 0.016908889311496828\n    test 984 Fsum: 0.016908889311496828\n\n    test 985 fsum: -1.708398806013404\n    test 986 sum80: -1.7083988060137516  FAILED, KNOWN, expected -1.708398806013404\n    test 987 pow(4): Fsum[35] pow(8.51838, 7.35711e-16)\n    test 988 pow(1): Fsum[842] pow(-1.7084, -1.71182e-17)\n    test 989 pow(0): Fsum[1] pow(1.0, 0)\n    test 990 ceil: True\n    test 991 floor: True\n    test 992 divmod: Fsum[850] (0.0, 0)\n    test 993 residual: 0\n    test 994 is_exact: True\n    test 995 Fsum: -1.708398806013404\n    test 996 Fsum: -1.708398806013404\n\n    test 997 fsum: 7.930658007200038e-09\n    test 998 sum81: 0.0  FAILED, KNOWN, expected 7.930658007200038e-09\n    test 999 pow(4): Fsum[13] pow(3.95582e-33, -5.78802e-50)\n    test 1000 pow(1): Fsum[842] pow(7.93066e-09, -6.17986e-25)\n    test 1001 pow(0): Fsum[1] pow(1.0, 0)\n    test 1002 ceil: True\n    test 1003 floor: True\n    test 1004 divmod: Fsum[847] (0.0, 0)\n    test 1005 residual: 0\n    test 1006 is_exact: True\n    test 1007 Fsum: 7.930658007200038e-09\n    test 1008 Fsum: 7.930658007200038e-09\n\n    test 1009 fsum: 1.849496426352178e-05\n    test 1010 sum82: 1.8494961864234938e-05  FAILED, KNOWN, expected 1.849496426352178e-05\n    test 1011 pow(4): Fsum[20] pow(1.17008e-19, 8.6168e-36)\n    test 1012 pow(1): Fsum[842] pow(1.8495e-05, -3.13643e-22)\n    test 1013 pow(0): Fsum[1] pow(1.0, 0)\n    test 1014 ceil: True\n    test 1015 floor: True\n    test 1016 divmod: Fsum[848] (0.0, 0)\n    test 1017 residual: 0\n    test 1018 is_exact: True\n    test 1019 Fsum: 1.849496426352178e-05\n    test 1020 Fsum: 1.849496426352178e-05\n\n    test 1021 fsum: -1.144351548810233e-09\n    test 1022 sum83: 0.0  FAILED, KNOWN, expected -1.144351548810233e-09\n    test 1023 pow(4): Fsum[13] pow(1.7149e-36, -1.31575e-52)\n    test 1024 pow(1): Fsum[842] pow(-1.14435e-09, 7.57464e-26)\n    test 1025 pow(0): Fsum[1] pow(1.0, 0)\n    test 1026 ceil: True\n    test 1027 floor: True\n    test 1028 divmod: Fsum[847] (0.0, 0)\n    test 1029 residual: 0\n    test 1030 is_exact: True\n    test 1031 Fsum: -1.144351548810233e-09\n    test 1032 Fsum: -1.144351548810233e-09\n\n    test 1033 fsum: 0.0018078863936274512\n    test 1034 sum84: 0.0  FAILED, KNOWN, expected 0.0018078863936274512\n    test 1035 pow(4): Fsum[32] pow(1.06828e-11, -2.05339e-28)\n    test 1036 pow(1): Fsum[842] pow(0.00180789, 2.03635e-20)\n    test 1037 pow(0): Fsum[1] pow(1.0, 0)\n    test 1038 ceil: True\n    test 1039 floor: True\n    test 1040 divmod: Fsum[851] (0.0, 0)\n    test 1041 residual: 0\n    test 1042 is_exact: True\n    test 1043 Fsum: 0.0018078863936274512\n    test 1044 Fsum: 0.0018078863936274512\n\n    test 1045 fsum: -0.004949726479280443\n    test 1046 sum85: 0.0  FAILED, KNOWN, expected -0.004949726479280443\n    test 1047 pow(4): Fsum[25] pow(6.0024e-10, 1.15936e-26)\n    test 1048 pow(1): Fsum[842] pow(-0.00494973, 2.53198e-19)\n    test 1049 pow(0): Fsum[1] pow(1.0, 0)\n    test 1050 ceil: True\n    test 1051 floor: True\n    test 1052 divmod: Fsum[850] (0.0, 0)\n    test 1053 residual: 0\n    test 1054 is_exact: True\n    test 1055 Fsum: -0.004949726479280443\n    test 1056 Fsum: -0.004949726479280443\n\n    test 1057 fsum: 9.862280823221828e-08\n    test 1058 sum86: 9.862312566610854e-08  FAILED, KNOWN, expected 9.862280823221828e-08\n    test 1059 pow(4): Fsum[16] pow(9.4604e-29, -3.33182e-45)\n    test 1060 pow(1): Fsum[842] pow(9.86228e-08, -5.42095e-24)\n    test 1061 pow(0): Fsum[1] pow(1.0, 0)\n    test 1062 ceil: True\n    test 1063 floor: True\n    test 1064 divmod: Fsum[848] (0.0, 0)\n    test 1065 residual: 0\n    test 1066 is_exact: True\n    test 1067 Fsum: 9.862280823221828e-08\n    test 1068 Fsum: 9.862280823221828e-08\n\n    test 1069 fsum: 1.746884968367393e-06\n    test 1070 sum87: 1.7468846351675893e-06  FAILED, KNOWN, expected 1.746884968367393e-06\n    test 1071 pow(4): Fsum[19] pow(9.31231e-24, 4.4825e-40)\n    test 1072 pow(1): Fsum[842] pow(1.74688e-06, 6.89839e-23)\n    test 1073 pow(0): Fsum[1] pow(1.0, 0)\n    test 1074 ceil: True\n    test 1075 floor: True\n    test 1076 divmod: Fsum[848] (0.0, 0)\n    test 1077 residual: 0\n    test 1078 is_exact: True\n    test 1079 Fsum: 1.746884968367393e-06\n    test 1080 Fsum: 1.746884968367393e-06\n\n    test 1081 fsum: 1.716932512935431e-05\n    test 1082 sum88: 0.0  FAILED, KNOWN, expected 1.716932512935431e-05\n    test 1083 pow(4): Fsum[19] pow(8.68986e-20, 2.7511e-36)\n    test 1084 pow(1): Fsum[842] pow(1.71693e-05, 1.04923e-21)\n    test 1085 pow(0): Fsum[1] pow(1.0, 0)\n    test 1086 ceil: True\n    test 1087 floor: True\n    test 1088 divmod: Fsum[847] (0.0, 0)\n    test 1089 residual: 0\n    test 1090 is_exact: True\n    test 1091 Fsum: 1.716932512935431e-05\n    test 1092 Fsum: 1.716932512935431e-05\n\n    test 1093 fsum: 1.3746860967291014e-14\n    test 1094 sum89: 0.0  FAILED, KNOWN, expected 1.3746860967291014e-14\n    test 1095 pow(4): Fsum[6] pow(3.5712e-56, -2.2157e-72)\n    test 1096 pow(1): Fsum[842] pow(1.37469e-14, -5.32098e-31)\n    test 1097 pow(0): Fsum[1] pow(1.0, 0)\n    test 1098 ceil: True\n    test 1099 floor: True\n    test 1100 divmod: Fsum[846] (0.0, 0)\n    test 1101 residual: 0\n    test 1102 is_exact: True\n    test 1103 Fsum: 1.3746860967291014e-14\n    test 1104 Fsum: 1.3746860967291014e-14\n\n    test 1105 fsum: 9.398950587440378e-07\n    test 1106 sum90: 0.0  FAILED, KNOWN, expected 9.398950587440378e-07\n    test 1107 pow(4): Fsum[12] pow(7.804e-25, -1.26761e-41)\n    test 1108 pow(1): Fsum[842] pow(9.39895e-07, 4.04483e-23)\n    test 1109 pow(0): Fsum[1] pow(1.0, 0)\n    test 1110 ceil: True\n    test 1111 floor: True\n    test 1112 divmod: Fsum[846] (0.0, 0)\n    test 1113 residual: 0\n    test 1114 is_exact: True\n    test 1115 Fsum: 9.398950587440378e-07\n    test 1116 Fsum: 9.398950587440378e-07\n\n    test 1117 fsum: -3.845334870378444e-12\n    test 1118 sum91: -4.431566225093775e-12  FAILED, KNOWN, expected -3.845334870378444e-12\n    test 1119 pow(4): Fsum[9] pow(2.18644e-46, 1.5833e-62)\n    test 1120 pow(1): Fsum[842] pow(-3.84533e-12, -1.71882e-29)\n    test 1121 pow(0): Fsum[1] pow(1.0, 0)\n    test 1122 ceil: True\n    test 1123 floor: True\n    test 1124 divmod: Fsum[847] (0.0, 0)\n    test 1125 residual: 0\n    test 1126 is_exact: True\n    test 1127 Fsum: -3.845334870378444e-12\n    test 1128 Fsum: -3.845334870378444e-12\n\n    test 1129 fsum: -0.014953425762466112\n    test 1130 sum92: 0.0  FAILED, KNOWN, expected -0.014953425762466112\n    test 1131 pow(4): Fsum[29] pow(4.99992e-08, 1.91214e-24)\n    test 1132 pow(1): Fsum[842] pow(-0.0149534, 2.85809e-19)\n    test 1133 pow(0): Fsum[1] pow(1.0, 0)\n    test 1134 ceil: True\n    test 1135 floor: True\n    test 1136 divmod: Fsum[850] (0.0, 0)\n    test 1137 residual: 0\n    test 1138 is_exact: True\n    test 1139 Fsum: -0.014953425762466112\n    test 1140 Fsum: -0.014953425762466112\n\n    test 1141 fsum: -2.181482332993425e-05\n    test 1142 sum93: 0.0  FAILED, KNOWN, expected -2.181482332993425e-05\n    test 1143 pow(4): Fsum[16] pow(2.26468e-19, 1.30909e-35)\n    test 1144 pow(1): Fsum[842] pow(-2.18148e-05, -4.93833e-22)\n    test 1145 pow(0): Fsum[1] pow(1.0, 0)\n    test 1146 ceil: True\n    test 1147 floor: True\n    test 1148 divmod: Fsum[847] (0.0, 0)\n    test 1149 residual: 0\n    test 1150 is_exact: True\n    test 1151 Fsum: -2.181482332993425e-05\n    test 1152 Fsum: -2.181482332993425e-05\n\n    test 1153 fsum: 0.1796640595568802\n    test 1154 sum94: 0.0  FAILED, KNOWN, expected 0.1796640595568802\n    test 1155 pow(4): Fsum[24] pow(0.00104195, -4.88791e-20)\n    test 1156 pow(1): Fsum[842] pow(0.179664, 9.89054e-18)\n    test 1157 pow(0): Fsum[1] pow(1.0, 0)\n    test 1158 ceil: True\n    test 1159 floor: True\n    test 1160 divmod: Fsum[849] (0.0, 0)\n    test 1161 residual: 0\n    test 1162 is_exact: True\n    test 1163 Fsum: 0.1796640595568802\n    test 1164 Fsum: 0.1796640595568802\n\n    test 1165 fsum: -0.26056206166280493\n    test 1166 sum95: 0.0  FAILED, KNOWN, expected -0.26056206166280493\n    test 1167 pow(4): Fsum[27] pow(0.0046094, 3.05581e-19)\n    test 1168 pow(1): Fsum[842] pow(-0.260562, -2.11672e-17)\n    test 1169 pow(0): Fsum[1] pow(1.0, 0)\n    test 1170 ceil: True\n    test 1171 floor: True\n    test 1172 divmod: Fsum[850] (0.0, 0)\n    test 1173 residual: 0\n    test 1174 is_exact: True\n    test 1175 Fsum: -0.26056206166280493\n    test 1176 Fsum: -0.26056206166280493\n\n    test 1177 fsum: -1.3288325397540682e-10\n    test 1178 sum96: -1.3380940799834207e-10  FAILED, KNOWN, expected -1.3288325397540682e-10\n    test 1179 pow(4): Fsum[12] pow(3.11804e-40, 6.88257e-57)\n    test 1180 pow(1): Fsum[842] pow(-1.32883e-10, 1.33468e-27)\n    test 1181 pow(0): Fsum[1] pow(1.0, 0)\n    test 1182 ceil: True\n    test 1183 floor: True\n    test 1184 divmod: Fsum[847] (0.0, 0)\n    test 1185 residual: 0\n    test 1186 is_exact: True\n    test 1187 Fsum: -1.3288325397540682e-10\n    test 1188 Fsum: -1.3288325397540682e-10\n\n    test 1189 fsum: -2.1153789389272494e-05\n    test 1190 sum97: 0.0  FAILED, KNOWN, expected -2.1153789389272494e-05\n    test 1191 pow(4): Fsum[16] pow(2.00241e-19, -1.12698e-36)\n    test 1192 pow(1): Fsum[842] pow(-2.11538e-05, 6.85903e-22)\n    test 1193 pow(0): Fsum[1] pow(1.0, 0)\n    test 1194 ceil: True\n    test 1195 floor: True\n    test 1196 divmod: Fsum[847] (0.0, 0)\n    test 1197 residual: 0\n    test 1198 is_exact: True\n    test 1199 Fsum: -2.1153789389272494e-05\n    test 1200 Fsum: -2.1153789389272494e-05\n\n    test 1201 fsum: -7.135903088885889e-05\n    test 1202 sum98: -7.135903142874156e-05  FAILED, KNOWN, expected -7.135903088885889e-05\n    test 1203 pow(4): Fsum[21] pow(2.59296e-17, -1.13303e-33)\n    test 1204 pow(1): Fsum[842] pow(-7.1359e-05, -5.24526e-21)\n    test 1205 pow(0): Fsum[1] pow(1.0, 0)\n    test 1206 ceil: True\n    test 1207 floor: True\n    test 1208 divmod: Fsum[850] (0.0, 0)\n    test 1209 residual: 0\n    test 1210 is_exact: True\n    test 1211 Fsum: -7.135903088885889e-05\n    test 1212 Fsum: -7.135903088885889e-05\n\n    test 1213 fsum: -0.00039188050506964707\n    test 1214 sum99: 0.0  FAILED, KNOWN, expected -0.00039188050506964707\n    test 1215 pow(4): Fsum[29] pow(2.35838e-14, -1.06578e-30)\n    test 1216 pow(1): Fsum[842] pow(-0.000391881, -1.76219e-20)\n    test 1217 pow(0): Fsum[1] pow(1.0, 0)\n    test 1218 ceil: True\n    test 1219 floor: True\n    test 1220 divmod: Fsum[850] (0.0, 0)\n    test 1221 residual: 0\n    test 1222 is_exact: True\n    test 1223 Fsum: -0.00039188050506964707\n    test 1224 Fsum: -0.00039188050506964707\n\n    test 1225 fsum: -2.659736477135389e-11\n    test 1226 sum100: 0.0  FAILED, KNOWN, expected -2.659736477135389e-11\n    test 1227 pow(4): Fsum[8] pow(5.00443e-43, 9.18713e-60)\n    test 1228 pow(1): Fsum[842] pow(-2.65974e-11, -4.86868e-28)\n    test 1229 pow(0): Fsum[1] pow(1.0, 0)\n    test 1230 ceil: True\n    test 1231 floor: True\n    test 1232 divmod: Fsum[846] (0.0, 0)\n    test 1233 residual: 0\n    test 1234 is_exact: True\n    test 1235 Fsum: -2.659736477135389e-11\n    test 1236 Fsum: -2.659736477135389e-11\n    test 1237 fmul: 0.00000000\n\n    test 1238 len1: 4\n    test 1239 FSum+: 4.0\n    test 1240 FSum-: 2.0\n    test 1241 FSum-: 0.0\n    test 1242 FSum*: 4.0\n    test 1243 copy(<class 'type'>): (<class 'pygeodesy.fsums.Fsum'>, True)\n    test 1244 ._fint2: (4, 0)\n    test 1245 ._fprs: 4.0\n    test 1246 ._fprs2: (4.0, 0)\n    test 1247 ._n: 5\n    test 1248 ._ps: [4.0]\n    test 1249 Fsum.copy(): (<class 'pygeodesy.fsums.Fsum'>, True)\n    test 1250 ._fint2: (4, 0)\n    test 1251 ._fprs: 4.0\n    test 1252 ._fprs2: (4.0, 0)\n    test 1253 ._n: 5\n    test 1254 ._ps: [4.0]\n    test 1255 len2: 8\n    test 1256 FSum+: 8.0\n    test 1257 FSum-: 4.0\n    test 1258 FSum-: 0.0\n    test 1259 FSum*: 8.0\n    test 1260 copy(<class 'type'>): (<class 'pygeodesy.fsums.Fsum'>, True)\n    test 1261 ._fint2: (8, 0)\n    test 1262 ._fprs: 8.0\n    test 1263 ._fprs2: (8.0, 0)\n    test 1264 ._n: 9\n    test 1265 ._ps: [8.0]\n    test 1266 Fsum.copy(): (<class 'pygeodesy.fsums.Fsum'>, True)\n    test 1267 ._fint2: (8, 0)\n    test 1268 ._fprs: 8.0\n    test 1269 ._fprs2: (8.0, 0)\n    test 1270 ._n: 9\n    test 1271 ._ps: [8.0]\n    test 1272 len3: 16\n    test 1273 FSum+: 16.0\n    test 1274 FSum-: 8.0\n    test 1275 FSum-: 0.0\n    test 1276 FSum*: 16.0\n    test 1277 copy(<class 'type'>): (<class 'pygeodesy.fsums.Fsum'>, True)\n    test 1278 ._fint2: (16, 0)\n    test 1279 ._fprs: 16.0\n    test 1280 ._fprs2: (16.0, 0)\n    test 1281 ._n: 17\n    test 1282 ._ps: [16.0]\n    test 1283 Fsum.copy(): (<class 'pygeodesy.fsums.Fsum'>, True)\n    test 1284 ._fint2: (16, 0)\n    test 1285 ._fprs: 16.0\n    test 1286 ._fprs2: (16.0, 0)\n    test 1287 ._n: 17\n    test 1288 ._ps: [16.0]\n    test 1289 len4: 32\n    test 1290 FSum+: 32.0\n    test 1291 FSum-: 16.0\n    test 1292 FSum-: 0.0\n    test 1293 FSum*: 32.0\n    test 1294 copy(<class 'type'>): (<class 'pygeodesy.fsums.Fsum'>, True)\n    test 1295 ._fint2: (32, 0)\n    test 1296 ._fprs: 32.0\n    test 1297 ._fprs2: (32.0, 0)\n    test 1298 ._n: 33\n    test 1299 ._ps: [32.0]\n    test 1300 Fsum.copy(): (<class 'pygeodesy.fsums.Fsum'>, True)\n    test 1301 ._fint2: (32, 0)\n    test 1302 ._fprs: 32.0\n    test 1303 ._fprs2: (32.0, 0)\n    test 1304 ._n: 33\n    test 1305 ._ps: [32.0]\n    test 1306 len5: 64\n    test 1307 FSum+: 64.0\n    test 1308 FSum-: 32.0\n    test 1309 FSum-: 0.0\n    test 1310 FSum*: 64.0\n    test 1311 copy(<class 'type'>): (<class 'pygeodesy.fsums.Fsum'>, True)\n    test 1312 ._fint2: (64, 0)\n    test 1313 ._fprs: 64.0\n    test 1314 ._fprs2: (64.0, 0)\n    test 1315 ._n: 65\n    test 1316 ._ps: [64.0]\n    test 1317 Fsum.copy(): (<class 'pygeodesy.fsums.Fsum'>, True)\n    test 1318 ._fint2: (64, 0)\n    test 1319 ._fprs: 64.0\n    test 1320 ._fprs2: (64.0, 0)\n    test 1321 ._n: 65\n    test 1322 ._ps: [64.0]\n    test 1323 len6: 128\n    test 1324 FSum+: 128.0\n    test 1325 FSum-: 64.0\n    test 1326 FSum-: 0.0\n    test 1327 FSum*: 128.0\n    test 1328 copy(<class 'type'>): (<class 'pygeodesy.fsums.Fsum'>, True)\n    test 1329 ._fint2: (128, 0)\n    test 1330 ._fprs: 128.0\n    test 1331 ._fprs2: (128.0, 0)\n    test 1332 ._n: 129\n    test 1333 ._ps: [128.0]\n    test 1334 Fsum.copy(): (<class 'pygeodesy.fsums.Fsum'>, True)\n    test 1335 ._fint2: (128, 0)\n    test 1336 ._fprs: 128.0\n    test 1337 ._fprs2: (128.0, 0)\n    test 1338 ._n: 129\n    test 1339 ._ps: [128.0]\n    test 1340 len7: 256\n    test 1341 FSum+: 256.0\n    test 1342 FSum-: 128.0\n    test 1343 FSum-: 0.0\n    test 1344 FSum*: 256.0\n    test 1345 copy(<class 'type'>): (<class 'pygeodesy.fsums.Fsum'>, True)\n    test 1346 ._fint2: (256, 0)\n    test 1347 ._fprs: 256.0\n    test 1348 ._fprs2: (256.0, 0)\n    test 1349 ._n: 257\n    test 1350 ._ps: [256.0]\n    test 1351 Fsum.copy(): (<class 'pygeodesy.fsums.Fsum'>, True)\n    test 1352 ._fint2: (256, 0)\n    test 1353 ._fprs: 256.0\n    test 1354 ._fprs2: (256.0, 0)\n    test 1355 ._n: 257\n    test 1356 ._ps: [256.0]\n    test 1357 len8: 512\n    test 1358 FSum+: 512.0\n    test 1359 FSum-: 256.0\n    test 1360 FSum-: 0.0\n    test 1361 FSum*: 512.0\n    test 1362 copy(<class 'type'>): (<class 'pygeodesy.fsums.Fsum'>, True)\n    test 1363 ._fint2: (512, 0)\n    test 1364 ._fprs: 512.0\n    test 1365 ._fprs2: (512.0, 0)\n    test 1366 ._n: 513\n    test 1367 ._ps: [512.0]\n    test 1368 Fsum.copy(): (<class 'pygeodesy.fsums.Fsum'>, True)\n    test 1369 ._fint2: (512, 0)\n    test 1370 ._fprs: 512.0\n    test 1371 ._fprs2: (512.0, 0)\n    test 1372 ._n: 513\n    test 1373 ._ps: [512.0]\n    test 1374 len: 513\n    test 1375 partials: (512.0,)\n\n    test 1376 FSum0: 0.0\n    test 1377 FSum0: 0.0\n    test 1378 FSum0: 0.0\n    test 1379 FSum0: 0.0\n    test 1380 FSum0: 0.0\n    test 1381 sizeof: 421  FAILED, KNOWN, expected 413\n    test 1382 FSum0: 0.0\n    test 1383 Fsum#: 514\n    test 1384 Fsum#: 1\n    test 1385 FSum.: Fsum[514] (0.0, 0)\n    test 1386 FsumI: 0.0\n    test 1387 FsumR: 0.0\n    test 1388 radd: 514.0\n    test 1389 rdiv: 3.91e-03\n    test 1390 rmul: 1024.0\n    test 1391 rpow: 1.0\n    test 1392 rsub: -510.0\n    test 1393 _2sum: OverflowError('_2sum(1.0e+308, inf): not finite (inf)')\n    test 1394 F(\"nan\"): TypeError('0.0 + nan: invalid')\n    test 1395 F(None): TypeError('0.0 + None: invalid')\n\n    test 1396 ints: 1\n    test 1397 ints: 1\n    test 1398 fsum : -3.58905099e+19  FAILED, KNOWN, expected 1.0\n    test 1399 fsum_: -3.58905099e+19  FAILED, KNOWN, expected 1.0\n    test 1400 Fsum : -3.58905099e+19  FAILED, KNOWN, expected 1.0\n    test 1401 sum  : -3.58905099e+19  FAILED, KNOWN, expected 1.0\n    test 1402 F * 2: 4.0000\n    test 1403 F / 2: 2.0000\n    test 1404 F / F: True\n    test 1405 F / F: 1.0\n    test 1406 F / F: 2.0\n    test 1407 abs  : Fsum[4] __abs__(2.0, 0)  FAILED, KNOWN, expected Fsum[4] (2.0, 0)\n    test 1408 int  : 2\n    test 1409 eq F: True\n    test 1410 ge F: True\n    test 1411 gt F: False\n    test 1412 le F: True\n    test 1413 lt F: False\n    test 1414 ne F: False\n    test 1415 if F: True\n    test 1416 gt 0: True\n    test 1417 lt 0: False\n    test 1418 eq 0: False\n    test 1419 lt 0: True\n    test 1420 gt 0: True\n    test 1421 gt 0: False\n    test 1422 signOf: 1\n    test 1423 signOf: -1\n    test 1424 ceil : 3\n    test 1425 floor: 2\n\n    test 1426 divmod : (2, <Fsum[2] __divmod__(0.0, 0) at 0x107f0ff70>)\n    test 1427 divmod : (2, <Fsum[2] __divmod__(0.0, 0) at 0x107f900f0>)\n    test 1428 rdivmod : (0, <Fsum[1] __rdivmod__(2, 0) at 0x107f0ff70>)\n    test 1429 divmod : (-2, <Fsum[2] __divmod__(1.0, 0) at 0x107f900f0>)\n    test 1430 imod: Fsum[2] __imod__(0.0, 0)\n    test 1431 mod : Fsum[2] __mod__(0.0, 0)\n    test 1432 rmod: Fsum[1] __rmod__(2, 0)\n    test 1433 neg : Fsum[1] __neg__(-2, 0)\n    test 1434 pos : Fsum[4] (2.0, 0)\n    test 1435 is_int: True\n    test 1436 float: 9e-102\n    test 1437 is_int: False\n    test 1438 round1: 0.0\n    test 1439 fset_: Fsum[4] (9.0e-102, 5.9483e-118)\n\n    test 1440 F //: Fsum[1] __floordiv__(-1, 0)\n    test 1441 // F: Fsum[1] __rfloordiv__(-2, 0)\n    test 1442 F //=: Fsum[1] m(-2, 0)\n# imported pygeodesy.basics into errors.py line 531\n    test 1443 F / 0: ZeroDivisionError('Fsum[2] __truediv__(9.0e-102, 5.9483e-118) / 0: division by zero')\n    test 1444 pow(F, +): Fsum[1] __pow__(6.36662e-213, 0)\n    test 1445 pow(F, -): Fsum[1] __pow__(1.11111e+101, 0)\n    test 1446 pow(-F, F): ValueError('-2 ** 9e-102: complex (1+2.8274333882308138e-101j) from 2-arg pow(-2, 9.0e-102)')\n    test 1447 pow(F, F): Fsum[1] __pow__(1.0, 0)\n    test 1448 pow(F, f, i): TypeError('Fsum[2] __pow__(9.0e-102, 5.9483e-118) ** 2.1: mod (2), pow() 3rd argument not allowed unless all arguments are integers')\n    test 1449 pow(F, F, i): TypeError('-2 ** Fsum[1] (2.1, 0): mod (2), pow() 3rd argument not allowed unless all arguments are integers')\n    test 1450 pow(F, i, None): Fsum[1] __pow__(4, 0)\n    test 1451 Z**-2: ZeroDivisionError('0.0 ** -2: zero to a negative power')\n    test 1452 pow(0): 1.000\n    test 1453 pow(1): -3.000\n    test 1454 pow(2): 9.000\n    test 1455 pow(21): -10460353203.000\n    test 1456 pow(-5): -0.004\n    test 1457 **= 2: 9.000\n    test 1458 F0**0: Fsum[1] __pow__(1, 0)\n    test 1459 F0**0.: Fsum[1] __pow__(1.0, 0)\n    test 1460 0**F0: Fsum[1] __rpow__(1.0, 0)\n    test 1461 0.**F0: Fsum[1] __rpow__(1.0, 0)\n    test 1462 F0**0: Fsum[1] pow(1, 0)\n    test 1463 F0**2: Fsum[1] pow(0.0, 0)\n    test 1464 F0**0.: Fsum[1] pow(1.0, 0)\n    test 1465 F0**3.: Fsum[1] pow(0.0, 0)\n    test 1466 F0**0.: Fsum[1] pow(1, 0)\n    test 1467 2**F0: Fsum[1] __rpow__(1.0, 0)\n    test 1468 2.**F0: Fsum[1] __rpow__(1.0, 0)\n    test 1469 F2**0: Fsum[1] __pow__(1, 0)\n    test 1470 F2.**0: Fsum[1] __pow__(1, 0)\n    test 1471 F2**F2: Fsum[1] __pow__(4, 0)\n    test 1472 F2**F2: Fsum[1] __rpow__(4, 0)\n    test 1473 F**2: 3125.000\n    test 1474 F**-1: 0.200\n    test 1475 F**-2: 0.040\n    test 1476 F**-2.5: 0.018\n    test 1477 F** 2.5: 55.902\n    test 1478 pow(2): 25.000\n    test 1479 pow(2.5): 55.902\n    test 1480 pow(F): 3125.000\n    test 1481 3pow(2, None): Fsum[1] pow(25, 0)\n    test 1482 3pow(2.5, None): Fsum[1] pow(55.902, 0)\n    test 1483 3pow(2, 20): Fsum[1] pow(5, 0)\n\n    test 1484 fsum(): 5.0\n    test 1485 fsum(): True\n    test 1486 fsum2(): (5.0, 0)\n    test 1487 fsum2(): True\n    test 1488 fsum2(): Fsum2Tuple(fsum=5.0, residual=0)\n    test 1489 Fsum2Tuple: ('fsum', 5.0, <class 'pygeodesy.unitsBase.Float'>)\n    test 1490 Fsum2Tuple: ('residual', 0, <class 'pygeodesy.unitsBase.Int'>)\n    test 1491 fmul(x): 25.0\n    test 1492 fmul(F): 62.5\n    test 1493 fadd(F): 65.0\n    test 1494 fsub(F): 62.5\n    test 1495 Fsum(F): 125.0\n\n    test 1496 ratio: (-27021597764141911, 9007199254740992)\n    test 1497 ratio: Fsum[1] (-3, 0)  FAILED, KNOWN, expected Fsum[4] (-3, 8.80732e-17)\n    test 1498 int_float: -3.000\n    test 1499 fint: Fsum[1] fint(-2, 0)\n    test 1500 fint2: (-2, -1)\n    test 1501 f2mul_: Fsum[6] f2mul_(12.0, -3.52293e-16)  FAILED, KNOWN, expected (12.0, ...\n    test 1502 f2mul_: Fsum[1] f2mul_(-inf, 0)  FAILED, KNOWN, expected NINF\n    test 1503 f2mul_: Fsum[1] f2mul_(nan, 0)  FAILED, KNOWN, expected NAN\n    test 1504 += NAN: Fsum[5] (nan, 0.0)  FAILED, KNOWN, expected nan\n    test 1505 -= NAN: Fsum[5] (nan, 0.0)  FAILED, KNOWN, expected nan\n    test 1506 pow3: Fsum[1] __pow__(3, 0)\n\n    test 1507 is_math_fsum: True\n\n    test 1508 RESIDUAL: 0.0\n    test 1509 RESIDUAL: 0.0\n    test 1510 RESIDUAL: 1e-32\n    test 1511 RESIDUAL: 9.0\n    test 1512 RESIDUAL: sorted\n\n    test 1513 ResidualError: 1 / Fsum[2] sorted(1.0e+17, 1.0): non-zero residual (1.0), ratio (1.0e-17) exceeds RESIDUAL (-1e-18) threshold\n\n    test 1514 recursive: 8.0\n    test 1515 recursive: 16.0\n\n    test 1516 +=F2T: 17.0\n    test 1517 -=F2T: 16.0\n    test 1518 *=F2T: 16.000000000000004\n    test 1519 /=F2T: 16.0\n    test 1520 **F2T: 16.0\n    test 1521 %=F2T: 16.0\n\n    test 1522 abs(T): Fsum[2] __abs__(1.0, 0)\n    test 1523 bool(T): True\n    test 1524 float(T): 1.0000000000000002\n    test 1525 T.Fsum_: Fsum[2] (2.0, 0)\n    test 1526 int(T): 1\n    test 1527 -T: Fsum[1] __neg__(-1, 0)\n    test 1528 +T: Fsum[2] (1.0, 0)\n    test 1529 as_i_: (4503599627370497, 4503599627370496)\n    test 1530 is_x?: True\n    test 1531 is_i?: False\n\n    test 1532 F==T: False\n    test 1533 F>=T: True\n    test 1534 F> T: True\n    test 1535 F<=T: False\n    test 1536 F< T: False\n    test 1537 F!=T: True\n\n    test 1538 T._fint2: (1, 2.220446049250313e-16)\n    test 1539 T._fprs2: (1.0, 0)\n    test 1540 T._n: 2\n    test 1541 T._ps: [1.0000000000000002]\n    test 1542 T._ps_neg: [-1.0000000000000002]\n    test 1543 T.signOf: 1\n\n    test 1544 f2product: (True, None)\n    test 1545 nonfinite*: (True, None)\n    test 1546 Nones: (None, None)\n\n    test 1547 fma_: Fsum[1] (69.0, 0)\n\n    122 of 1547 testFsums.py tests (7.9%) FAILED, ALL KNOWN (pygeodesy 26.3.26 Python 3.14.3 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 383.886 ms\nrunning /Library/Framewo....n3.14 -W default ~/PyGeodesy/test/testGars.py\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.degDMS from .dms by testGars.py line 11\n# lazily imported pygeodesy.fstr from .streprs by testGars.py line 11\n# lazily imported pygeodesy.gars by testGars.py line 11\n# lazily imported pygeodesy.Garef from .gars by testGars.py line 11\n# lazily imported pygeodesy.S_MIN from .dms by testGars.py line 11\n# lazily imported pygeodesy.ellipsoidalVincenty by testGars.py line 56\n\n    testing testGars.py 23.03.27 (module pygeodesy.gars 25.05.07) isLazy=3\n    test 1 Garef: 381NH45\n    test 2 Garef: 381NH45\n    test 3 Garef: Garef('381NH45')\n    test 4 Garef: '381NH45'\n    test 5 Garef: '381NH45'  FAILED, KNOWN, expected Garef('381NH45')\n    test 6 Garef.precision: 2\n    test 7 copy(<class 'type'>): (<class 'pygeodesy.gars.Garef'>, True)\n    test 8 Garef.copy(): (<class 'pygeodesy.gars.Garef'>, True)\n    test 9 Garef.latlon: 57.64911, 10.40744\n    test 10 Garef.toLatLon: LatLon(57°38′56.8″N, 010°24′26.78″E)\n    test 11 codec3: 381NH45\n    test 12 decode3: 57.625, 10.375, 2.0\n    test 13 encode: 381NH45\n    test 14 Garef(LatLon): 381NH45\n    test 15 copy(<class 'type'>): (<class 'pygeodesy.gars.Garef'>, True)\n    test 16 Garef.copy(): (<class 'pygeodesy.gars.Garef'>, True)\n    test 17 precision: -1  FAILED, KNOWN, expected 0\n    test 18 resolution: 30′\n    test 19 precision: 0\n    test 20 resolution: 30′\n    test 21 precision: 1\n    test 22 resolution: 15′\n    test 23 precision: 2\n    test 24 resolution: 5′\n    test 25 precision: 3  FAILED, KNOWN, expected 2\n    test 26 resolution: 5′\n\n    3 of 26 testGars.py tests (11.5%) FAILED, ALL KNOWN (pygeodesy 26.3.26 Python 3.14.3 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 347.853 us\nrunning /Library/Framewo....n3.14 -W default ~/PyGeodesy/test/testGeodesici.py\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.euclid from .fmath by testGeodesici.py line 11\n# lazily imported pygeodesy.geodesici by testGeodesici.py line 11\n# lazily imported pygeodesy.Intersectool from .geodesici by testGeodesici.py line 11\n# lazily imported pygeodesy.Intersector from .geodesici by testGeodesici.py line 11\n# lazily imported pygeodesy.LatLon_ from .points by testGeodesici.py line 11\n# lazily imported pygeodesy.GeodesicExact from .geodesicx by testGeodesici.py line 135\n\n    testing testGeodesici.py 25.05.09 (module pygeodesy.geodesici 26.02.04) isLazy=3\n\n    testGeodesicExact(pygeodesy.geodesici, 26.02.04)\n# lazily imported pygeodesy.geodsolve by ellipsoids.py line 1057\n# lazily imported pygeodesy.geodesicw by ellipsoids.py line 1059\n# lazily imported pygeodesy.elliptic by gxline.py line 289\n    test 1 Intersector: name='', geodesic=GeodesicExact(name='', caps=0, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), C4order=30)\n\n    test 2 Closest.1.sA: 4.2253e+06\n    test 3 Closest.1.sB: 2.70933e+06\n    test 4 Closest.1.c: 0\n    test 5 Closest.1.sX0: 6.93463e+06\n\n    test 6 Closest5.1.A: {a1X: 38.075573, azi1: 45.0, aziX: 51.790249, lat1: 0.0, latX: 25.92918, lon1: 0.0, lonX: 28.89426, m12: 3921213.171755, M12: 0.787198, M21: 0.787384, s1X: 4225301.108897}\n    test 7 Closest5.1.B: {a1X: 24.392077, azi1: 135.0, aziX: 146.182975, lat1: 45.0, latX: 25.92918, lon1: 10.0, lonX: 28.89426, m12: 2628412.372503, M12: 0.911005, M21: 0.910881, s1X: 2709328.885611}\n    test 8 Closest5.1.sAB: 7.94571e-10\n    test 9 Closest5.1.aAB: 7.15718e-15\n    test 10 Closest5.1.c: 0\n\n    test 11 Closest.2.sA: 6.05805e+06\n    test 12 Closest.2.sB: -3.31125e+06\n    test 13 Closest.2.c: 0\n    test 14 Closest.2.sX0: 9.3693e+06\n\n    test 15 Closest5.2.A: {a1X: 54.562637, azi1: -147.7, aziX: -159.869978, lat1: 50.0, latX: 0.0, lon1: -4.0, lonX: -29.745492, m12: 5184118.430287, M12: 0.58097, M21: 0.579813, s1X: 6058048.653081}\n    test 16 Closest5.2.B: {a1X: -29.845558, azi1: 90.0, aziX: 90.0, lat1: 0.0, latX: -0.0, lon1: 0.0, lonX: -29.745492, m12: -3163525.514556, M12: 0.86737, M21: 0.86737, s1X: -3311252.995823}\n    test 17 Closest5.2.sAB: 3.95486e-10\n    test 18 Closest5.2.aAB: 3.56467e-15\n    test 19 Closest5.2.c: 0\n\n    test 20 All[0].sA: -494582\n    test 21 All[0].sB: 1.40522e+07\n    test 22 All[0].c: 0\n    test 23 All[0].sX0: 1.45468e+07\n    test 24 All[0].iteration: 4\n\n    test 25 All[1].sA: 1.95291e+07\n    test 26 All[1].sB: -5.93234e+06\n    test 27 All[1].c: 0\n    test 28 All[1].sX0: 2.54615e+07\n    test 29 All[1].iteration: 4\n\n    test 30 All[2].sA: -494582\n    test 31 All[2].sB: -2.59556e+07\n    test 32 All[2].c: 0\n    test 33 All[2].sX0: 2.64502e+07\n    test 34 All[2].iteration: 4\n\n    test 35 All[3].sA: -2.05181e+07\n    test 36 All[3].sB: -5.97086e+06\n    test 37 All[3].c: 0\n    test 38 All[3].sX0: 2.64889e+07\n    test 39 All[3].iteration: 4\n\n    test 40 All5[0].A: {a1X: -4.448619, azi1: -147.7, aziX: -144.55245, lat1: 50.0, latX: 53.692598, lon1: -4.0, lonX: 0.0, m12: -494087.771694, M12: 0.996999, M21: 0.997, s1X: -494582.492241}\n    test 41 All5[0].B: {a1X: 126.399265, azi1: 0.0, aziX: 180.0, lat1: 0.0, latX: 53.692598, lon1: 180.0, lonX: 0.0, m12: 5161737.753947, M12: -0.593409, M21: -0.586165, s1X: 14052229.965229}\n    test 42 All5[0].sAB: 3.54078e-09\n    test 43 All5[0].aAB: 3.18449e-14\n    test 44 All5[0].c: 0\n    test 45 All5[0].iteration: 4\n\n    test 46 All5[1].A: {a1X: 175.764866, azi1: -147.7, aziX: -35.280487, lat1: 50.0, latX: -53.518675, lon1: -4.0, lonX: 180.0, m12: 488198.978244, M12: -1.001203, M21: -0.992673, s1X: 19529110.042937}\n    test 47 All5[1].B: {a1X: -53.426639, azi1: 0.0, aziX: 0.0, lat1: 0.0, latX: -53.518675, lon1: 180.0, lonX: 180.0, m12: -5110370.613686, M12: 0.595852, M21: 0.597076, s1X: -5932344.259165}\n    test 48 All5[1].sAB: 4.00748e-09\n    test 49 All5[1].aAB: 3.60427e-14\n    test 50 All5[1].c: 0\n    test 51 All5[1].iteration: 4\n\n    test 52 All5[2].A: {a1X: -4.448619, azi1: -147.7, aziX: -144.55245, lat1: 50.0, latX: 53.692598, lon1: -4.0, lonX: -0.0, m12: -494087.771694, M12: 0.996999, M21: 0.997, s1X: -494582.492241}\n    test 53 All5[2].B: {a1X: -233.600735, azi1: 0.0, aziX: 180.0, lat1: 0.0, latX: 53.692598, lon1: 180.0, lonX: 0.0, m12: 5082071.927222, M12: -0.593409, M21: -0.603127, s1X: -25955632.952022}\n    test 54 All5[2].sAB: 1.78008e-09\n    test 55 All5[2].aAB: 1.60097e-14\n    test 56 All5[2].c: 0\n    test 57 All5[2].iteration: 4\n\n    test 58 All5[3].A: {a1X: -184.660358, azi1: -147.7, aziX: -35.614985, lat1: 50.0, latX: -53.864737, lon1: -4.0, lonX: -180.0, m12: 499994.868419, M12: -0.992833, M21: -1.001337, s1X: -20518081.166643}\n    test 59 All5[3].B: {a1X: -53.773048, azi1: 0.0, aziX: 0.0, lat1: 0.0, latX: -53.864737, lon1: 180.0, lonX: 180.0, m12: -5133274.754826, M12: 0.590985, M21: 0.592236, s1X: -5970860.779079}\n    test 60 All5[3].sAB: 2.34461e-09\n    test 61 All5[3].aAB: 2.10867e-14\n    test 62 All5[3].c: 0\n    test 63 All5[3].iteration: 4\n\n    test 64 Middle.sA: 782555\n    test 65 Middle.sB: 5.53684e+06\n    test 66 Middle.c: 0\n    test 67 Middle.sX0: 0\n\n    test 68 Middle5.A: {a12: 14.106434, a1M: 7.053396, azi1: 44.75191, azi2: 45.629037, aziM: 44.969535, lat1: 0.0, lat2: 10.0, latM: 5.019509, lon1: 0.0, lon2: 10.0, lonM: 4.961883, m12: 780579.492953, M12: 0.992432, M21: 0.992432, s12: 1565109.099218, s1M: 782554.549609}\n    test 69 Middle5.B: {a12: 99.810444, a1M: 49.869061, azi1: 180.0, azi2: 180.0, aziM: 180.0, lat1: 50.0, lat2: -50.0, latM: 0.036282, lon1: -4.0, lon2: -4.0, lonM: -4.0, m12: 4864571.105922, M12: 0.645508, M21: 0.644537, s12: 11073670.322999, s1M: 5536835.161499}\n    test 70 Middle5.sMM: 1.13857e+06\n    test 71 Middle5.aMM: 10.2623\n    test 72 Middle5.c: 0\n# imported pygeodesy.basics into errors.py line 443\n\n    test 73 Segment.sA: -631414\n    test 74 Segment.sB: 5.98889e+06\n    test 75 Segment.c: 0\n    test 76 Segment.sX0: 1.86602e+06\n    test 77 Segment.kA: -1\n    test 78 Segment.kB: 0\n    test 79 Segment.k: -3\n\n    test 80 Segment5.A: {a1X: -5.691141, azi1: 44.75191, azi2: 45.629037, aziX: 44.893464, k2: -1, lat1: 0.0, lat2: 10.0, latX: -4.051871, lon1: 0.0, lon2: 10.0, lonX: -4.0, m12: -630376.505305, M12: 0.995071, M21: 0.995071, s1X: -631414.26877}\n    test 81 Segment5.B: {a1X: 53.943553, azi1: 180.0, azi2: 180.0, aziX: 180.0, k2: 0, lat1: 50.0, lat2: -50.0, latX: -4.051871, lon1: -4.0, lon2: -4.0, lonX: -4.0, m12: 5143394.782542, M12: 0.589657, M21: 0.588535, s1X: 5988887.278435}\n    test 82 Segment5.sAB: 1.36757e-09\n    test 83 Segment5.aAB: 1.23262e-14\n    test 84 Segment5.c: 0\n\n    test 85 intersect7s[0].A: 04.051871°S, 004.0°W\n    test 86 intersect7s[0].B: 04.051871°S, 004.0°W\n    test 87 intersect7s[0].sAB: 1.4124e-09\n    test 88 intersect7s[0].aAB: 1.27222e-14\n    test 89 intersect7s[0].c: 0\n    test 90 intersect7s[0].kA: 0\n    test 91 intersect7s[0].kB: 0\n    test 92 intersect7s[0].iteration: None\n\n    test 93 intersect7s[1].A: 03.623464°N, 176.0°E\n    test 94 intersect7s[1].B: 03.623464°N, 176.0°E\n    test 95 intersect7s[1].sAB: 1.67723e-09\n    test 96 intersect7s[1].aAB: 1.51076e-14\n    test 97 intersect7s[1].c: 0\n    test 98 intersect7s[1].kA: 0\n    test 99 intersect7s[1].kB: 0\n    test 100 intersect7s[1].iteration: None\n\n    test 101 intersect7s[2].A: 04.051871°S, 004.0°W\n    test 102 intersect7s[2].B: 04.051871°S, 004.0°W\n    test 103 intersect7s[2].sAB: 3.53101e-10\n    test 104 intersect7s[2].aAB: 3.18055e-15\n    test 105 intersect7s[2].c: 0\n    test 106 intersect7s[2].kA: 0\n    test 107 intersect7s[2].kB: 0\n    test 108 intersect7s[2].iteration: None\n\n    test 109 intersect7s[3].A: 04.4796°N, 176.0°E\n    test 110 intersect7s[3].B: 04.4796°N, 176.0°E\n    test 111 intersect7s[3].sAB: 3.19839e-09\n    test 112 intersect7s[3].aAB: 2.88277e-14\n    test 113 intersect7s[3].c: 0\n    test 114 intersect7s[3].kA: 0\n    test 115 intersect7s[3].kB: 0\n    test 116 intersect7s[3].iteration: None\n\n    test 117 Sphere.Closest.sA: 6.07719e+06\n    test 118 Sphere.Closest.sB: -3.31802e+06\n    test 119 Sphere.Closest.c: 0\n    test 120 Sphere.Closest.sX0: 9.39521e+06\n\n    test 121 Sphere.Closest5.A: {a1X: 54.653489, azi1: -147.7, aziX: -159.911264, lat1: 50.0, latX: -0.0, lon1: -4.0, lonX: -29.839663, m12: 5196622.322619, M12: 0.57852, M21: 0.57852, s1X: 6077190.710199}\n    test 122 Sphere.Closest5.B: {a1X: -29.839663, azi1: 90.0, aziX: 90.0, lat1: 0.0, latX: -0.0, lon1: 0.0, lonX: -29.839663, m12: -3170047.454389, M12: 0.867421, M21: 0.867421, s1X: -3318019.115902}\n    test 123 Sphere.Closest5.sAB: 2.06452e-09\n    test 124 Sphere.Closest5.aAB: 1.85667e-14\n    test 125 Sphere.Closest5.c: 0\n\n    test 126 _Xdict2: 124\n\n    testGeodesic(pygeodesy.geodesici, 26.02.04)\n    test 127 Intersector: name='', geodesic=<pygeodesy.geodesicw._gWrapped.Geodesic.<locals>.Geodesic object at 0x10a7ba660>\n\n    test 128 Closest.1.sA: 4.2253e+06\n    test 129 Closest.1.sB: 2.70933e+06\n    test 130 Closest.1.c: 0\n    test 131 Closest.1.sX0: 6.93463e+06\n\n    test 132 Closest5.1.A: {a1X: 38.075573, azi1: 45.0, aziX: 51.790249, lat1: 0.0, latX: 25.92918, lon1: 0.0, lonX: 28.89426, s1X: 4225301.108897}  FAILED, KNOWN, expected {a1X: 38.075573, azi1: 45.0, aziX: 51.790249, lat1: 0.0, latX: 25.92918, lon1: 0.0, lonX: 28.89426, m12: 3921213.171755, M12: 0.787198, M21: 0.787384, s1X: 4225301.108897}\n    test 133 Closest5.1.B: {a1X: 24.392077, azi1: 135.0, aziX: 146.182975, lat1: 45.0, latX: 25.92918, lon1: 10.0, lonX: 28.89426, s1X: 2709328.885611}  FAILED, KNOWN, expected {a1X: 24.392077, azi1: 135.0, aziX: 146.182975, lat1: 45.0, latX: 25.92918, lon1: 10.0, lonX: 28.89426, m12: 2628412.372503, M12: 0.911005, M21: 0.910881, s1X: 2709328.885611}\n    test 134 Closest5.1.sAB: 7.11805e-10  FAILED, KNOWN (8.27663e-11), expected 7.94571e-10\n    test 135 Closest5.1.aAB: 6.41166e-15  FAILED, KNOWN (7.45526e-16), expected 7.15718e-15\n    test 136 Closest5.1.c: 0\n\n    test 137 Closest.2.sA: 6.05805e+06\n    test 138 Closest.2.sB: -3.31125e+06\n    test 139 Closest.2.c: 0\n    test 140 Closest.2.sX0: 9.3693e+06\n\n    test 141 Closest5.2.A: {a1X: 54.562637, azi1: -147.7, aziX: -159.869978, lat1: 50.0, latX: -0.0, lon1: -4.0, lonX: -29.745492, s1X: 6058048.653081}  FAILED, KNOWN, expected {a1X: 54.562637, azi1: -147.7, aziX: -159.869978, lat1: 50.0, latX: 0.0, lon1: -4.0, lonX: -29.745492, m12: 5184118.430287, M12: 0.58097, M21: 0.579813, s1X: 6058048.653081}\n    test 142 Closest5.2.B: {a1X: -29.845558, azi1: 90.0, aziX: 90.0, lat1: 0.0, latX: -0.0, lon1: 0.0, lonX: -29.745492, s1X: -3311252.995823}  FAILED, KNOWN, expected {a1X: -29.845558, azi1: 90.0, aziX: 90.0, lat1: 0.0, latX: -0.0, lon1: 0.0, lonX: -29.745492, m12: -3163525.514556, M12: 0.86737, M21: 0.86737, s1X: -3311252.995823}\n    test 143 Closest5.2.sAB: 1.27e-09  FAILED, KNOWN (8.7451e-10), expected 3.95486e-10\n    test 144 Closest5.2.aAB: 1.14469e-14  FAILED, KNOWN (7.88228e-15), expected 3.56467e-15\n    test 145 Closest5.2.c: 0\n\n    test 146 All[0].sA: -494582\n    test 147 All[0].sB: 1.40522e+07\n    test 148 All[0].c: 0\n    test 149 All[0].sX0: 1.45468e+07\n    test 150 All[0].iteration: 4\n\n    test 151 All[1].sA: 1.95291e+07\n    test 152 All[1].sB: -5.93234e+06\n    test 153 All[1].c: 0\n    test 154 All[1].sX0: 2.54615e+07\n    test 155 All[1].iteration: 4\n\n    test 156 All[2].sA: -494582\n    test 157 All[2].sB: -2.59556e+07\n    test 158 All[2].c: 0\n    test 159 All[2].sX0: 2.64502e+07\n    test 160 All[2].iteration: 4\n\n    test 161 All[3].sA: -2.05181e+07\n    test 162 All[3].sB: -5.97086e+06\n    test 163 All[3].c: 0\n    test 164 All[3].sX0: 2.64889e+07\n    test 165 All[3].iteration: 4\n\n    test 166 All5[0].A: {a1X: -4.448619, azi1: -147.7, aziX: -144.55245, lat1: 50.0, latX: 53.692598, lon1: -4.0, lonX: 0.0, s1X: -494582.492241}  FAILED, KNOWN, expected {a1X: -4.448619, azi1: -147.7, aziX: -144.55245, lat1: 50.0, latX: 53.692598, lon1: -4.0, lonX: 0.0, m12: -494087.771694, M12: 0.996999, M21: 0.997, s1X: -494582.492241}\n    test 167 All5[0].B: {a1X: 126.399265, azi1: 0.0, aziX: 180.0, lat1: 0.0, latX: 53.692598, lon1: 180.0, lonX: 0.0, s1X: 14052229.965229}  FAILED, KNOWN, expected {a1X: 126.399265, azi1: 0.0, aziX: 180.0, lat1: 0.0, latX: 53.692598, lon1: 180.0, lonX: 0.0, m12: 5161737.753947, M12: -0.593409, M21: -0.586165, s1X: 14052229.965229}\n    test 168 All5[0].sAB: 1.44466e-09  FAILED, KNOWN (2.09612e-09), expected 3.54078e-09\n    test 169 All5[0].aAB: 1.29929e-14  FAILED, KNOWN (1.8852e-14), expected 3.18449e-14\n    test 170 All5[0].c: 0\n    test 171 All5[0].iteration: 4\n\n    test 172 All5[1].A: {a1X: 175.764866, azi1: -147.7, aziX: -35.280487, lat1: 50.0, latX: -53.518675, lon1: -4.0, lonX: 180.0, s1X: 19529110.042937}  FAILED, KNOWN, expected {a1X: 175.764866, azi1: -147.7, aziX: -35.280487, lat1: 50.0, latX: -53.518675, lon1: -4.0, lonX: 180.0, m12: 488198.978244, M12: -1.001203, M21: -0.992673, s1X: 19529110.042937}\n    test 173 All5[1].B: {a1X: -53.426639, azi1: 0.0, aziX: 0.0, lat1: 0.0, latX: -53.518675, lon1: 180.0, lonX: 180.0, s1X: -5932344.259165}  FAILED, KNOWN, expected {a1X: -53.426639, azi1: 0.0, aziX: 0.0, lat1: 0.0, latX: -53.518675, lon1: 180.0, lonX: 180.0, m12: -5110370.613686, M12: 0.595852, M21: 0.597076, s1X: -5932344.259165}\n    test 174 All5[1].sAB: 4.71379e-09  FAILED, KNOWN (7.06309e-10), expected 4.00748e-09\n    test 175 All5[1].aAB: 4.23951e-14  FAILED, KNOWN (6.35244e-15), expected 3.60427e-14\n    test 176 All5[1].c: 0\n    test 177 All5[1].iteration: 4\n\n    test 178 All5[2].A: {a1X: -4.448619, azi1: -147.7, aziX: -144.55245, lat1: 50.0, latX: 53.692598, lon1: -4.0, lonX: 0.0, s1X: -494582.492241}  FAILED, KNOWN, expected {a1X: -4.448619, azi1: -147.7, aziX: -144.55245, lat1: 50.0, latX: 53.692598, lon1: -4.0, lonX: -0.0, m12: -494087.771694, M12: 0.996999, M21: 0.997, s1X: -494582.492241}\n    test 179 All5[2].B: {a1X: -233.600735, azi1: 0.0, aziX: 180.0, lat1: 0.0, latX: 53.692598, lon1: 180.0, lonX: 0.0, s1X: -25955632.952022}  FAILED, KNOWN, expected {a1X: -233.600735, azi1: 0.0, aziX: 180.0, lat1: 0.0, latX: 53.692598, lon1: 180.0, lonX: 0.0, m12: 5082071.927222, M12: -0.593409, M21: -0.603127, s1X: -25955632.952022}\n    test 180 All5[2].sAB: 1.8823e-09  FAILED, KNOWN (1.02215e-10), expected 1.78008e-09\n    test 181 All5[2].aAB: 1.6929e-14  FAILED, KNOWN (9.19299e-16), expected 1.60097e-14\n    test 182 All5[2].c: 0\n    test 183 All5[2].iteration: 4\n\n    test 184 All5[3].A: {a1X: -184.660358, azi1: -147.7, aziX: -35.614985, lat1: 50.0, latX: -53.864737, lon1: -4.0, lonX: 180.0, s1X: -20518081.166643}  FAILED, KNOWN, expected {a1X: -184.660358, azi1: -147.7, aziX: -35.614985, lat1: 50.0, latX: -53.864737, lon1: -4.0, lonX: -180.0, m12: 499994.868419, M12: -0.992833, M21: -1.001337, s1X: -20518081.166643}\n    test 185 All5[3].A.lonX: 179.99999999999994  FAILED, KNOWN (2), expected -179.99999999999997\n    test 186 All5[3].B: {a1X: -53.773048, azi1: 0.0, aziX: 0.0, lat1: 0.0, latX: -53.864737, lon1: 180.0, lonX: 180.0, s1X: -5970860.779079}  FAILED, KNOWN, expected {a1X: -53.773048, azi1: 0.0, aziX: 0.0, lat1: 0.0, latX: -53.864737, lon1: 180.0, lonX: 180.0, m12: -5133274.754826, M12: 0.590985, M21: 0.592236, s1X: -5970860.779079}\n    test 187 All5[3].sAB: 3.99823e-09  FAILED, KNOWN (1.65361e-09), expected 2.34461e-09\n    test 188 All5[3].aAB: 3.59587e-14  FAILED, KNOWN (1.4872e-14), expected 2.10867e-14\n    test 189 All5[3].c: 0\n    test 190 All5[3].iteration: 4\n\n    test 191 Middle.sA: 782555\n    test 192 Middle.sB: 5.54085e+06  FAILED, KNOWN (0.000724055), expected 5.53684e+06\n    test 193 Middle.c: 0\n    test 194 Middle.sX0: 0\n\n    test 195 Middle5.A: {a12: 14.106434, a1M: 7.053396, azi1: 44.75191, azi2: 45.629037, aziM: 44.969535, lat1: 0.0, lat2: 10.0, latM: 5.019509, lon1: 0.0, lon2: 10.0, lonM: 4.961883, s12: 1565109.099218, s1M: 782554.549609}  FAILED, KNOWN, expected {a12: 14.106434, a1M: 7.053396, azi1: 44.75191, azi2: 45.629037, aziM: 44.969535, lat1: 0.0, lat2: 10.0, latM: 5.019509, lon1: 0.0, lon2: 10.0, lonM: 4.961883, m12: 780579.492953, M12: 0.992432, M21: 0.992432, s12: 1565109.099218, s1M: 782554.549609}\n    test 196 Middle5.B: {a12: 99.810444, a1M: 49.905222, azi1: 180.0, azi2: 180.0, aziM: 180.0, lat1: 50.0, lat2: -50.0, latM: 0.0, lon1: -4.0, lon2: -4.0, lonM: -4.0, s12: 11081694.083368, s1M: 5540847.041684}  FAILED, KNOWN, expected {a12: 99.810444, a1M: 49.869061, azi1: 180.0, azi2: 180.0, aziM: 180.0, lat1: 50.0, lat2: -50.0, latM: 0.036282, lon1: -4.0, lon2: -4.0, lonM: -4.0, m12: 4864571.105922, M12: 0.645508, M21: 0.644537, s12: 11073670.322999, s1M: 5536835.161499}\n    test 197 Middle5.B.latM: 0.0  FAILED, KNOWN (0.0362822), expected 0.03628221979727372\n    test 198 Middle5.B.s1M: 5540847.04168415  FAILED, KNOWN (0.000724055), expected 5536835.161499482\n    test 199 Middle5.B.a1M: 49.905221888853184  FAILED, KNOWN (0.000724585), expected 49.869061316437026\n    test 200 Middle5.B.s12: 11081694.0833683  FAILED, KNOWN (0.000724055), expected 11073670.322998963\n    test 201 Middle5.sMM: 1.14053e+06  FAILED, KNOWN (0.0017142), expected 1.13857e+06\n    test 202 Middle5.aMM: 10.2799  FAILED, KNOWN (0.00171426), expected 10.2623\n    test 203 Middle5.c: 0\n\n    test 204 Segment.sA: -631414\n    test 205 Segment.sB: 5.98889e+06\n    test 206 Segment.c: 0\n    test 207 Segment.sX0: 1.86201e+06  FAILED, KNOWN (0.00214997), expected 1.86602e+06\n    test 208 Segment.kA: -1\n    test 209 Segment.kB: 0\n    test 210 Segment.k: -3\n\n    test 211 Segment5.A: {a1X: -5.691141, azi1: 44.75191, aziX: 44.893464, k2: -1, lat1: 0.0, latX: -4.051871, lon1: 0.0, lonX: -4.0, s1X: -631414.26877}  FAILED, KNOWN, expected {a1X: -5.691141, azi1: 44.75191, azi2: 45.629037, aziX: 44.893464, k2: -1, lat1: 0.0, lat2: 10.0, latX: -4.051871, lon1: 0.0, lon2: 10.0, lonX: -4.0, m12: -630376.505305, M12: 0.995071, M21: 0.995071, s1X: -631414.26877}\n    test 212 Segment5.B: {a1X: 53.943553, azi1: 180.0, aziX: 180.0, k2: 0, lat1: 50.0, latX: -4.051871, lon1: -4.0, lonX: -4.0, s1X: 5988887.278435}  FAILED, KNOWN, expected {a1X: 53.943553, azi1: 180.0, azi2: 180.0, aziX: 180.0, k2: 0, lat1: 50.0, lat2: -50.0, latX: -4.051871, lon1: -4.0, lon2: -4.0, lonX: -4.0, m12: 5143394.782542, M12: 0.589657, M21: 0.588535, s1X: 5988887.278435}\n    test 213 Segment5.sAB: 5.496e-10  FAILED, KNOWN (8.17969e-10), expected 1.36757e-09\n    test 214 Segment5.aAB: 4.95367e-15  FAILED, KNOWN (7.37254e-15), expected 1.23262e-14\n    test 215 Segment5.c: 0\n\n    test 216 intersect7s[0].A: 04.051871°S, 004.0°W\n    test 217 intersect7s[0].B: 04.051871°S, 004.0°W\n    test 218 intersect7s[0].sAB: 2.64649e-10  FAILED, KNOWN (1.14775e-09), expected 1.4124e-09\n    test 219 intersect7s[0].aAB: 2.38534e-15  FAILED, KNOWN (1.03369e-14), expected 1.27222e-14\n    test 220 intersect7s[0].c: 0\n    test 221 intersect7s[0].kA: 0\n    test 222 intersect7s[0].kB: 0\n    test 223 intersect7s[0].iteration: None\n\n    test 224 intersect7s[1].A: 03.623464°N, 176.0°E\n    test 225 intersect7s[1].B: 03.623464°N, 176.0°E\n    test 226 intersect7s[1].sAB: 1.67611e-09  FAILED, KNOWN (1.12026e-12), expected 1.67723e-09\n    test 227 intersect7s[1].aAB: 1.51076e-14\n    test 228 intersect7s[1].c: 0\n    test 229 intersect7s[1].kA: 0\n    test 230 intersect7s[1].kB: 0\n    test 231 intersect7s[1].iteration: None\n\n    test 232 intersect7s[2].A: 04.051871°S, 004.0°W\n    test 233 intersect7s[2].B: 04.051871°S, 004.0°W\n    test 234 intersect7s[2].sAB: 5.83925e-10  FAILED, KNOWN (2.30824e-10), expected 3.53101e-10\n    test 235 intersect7s[2].aAB: 5.26305e-15  FAILED, KNOWN (2.08249e-15), expected 3.18055e-15\n    test 236 intersect7s[2].c: 0\n    test 237 intersect7s[2].kA: 0\n    test 238 intersect7s[2].kB: 0\n    test 239 intersect7s[2].iteration: None\n\n    test 240 intersect7s[3].A: 04.4796°N, 176.0°E\n    test 241 intersect7s[3].B: 04.4796°N, 176.0°E\n    test 242 intersect7s[3].sAB: 3.49267e-09  FAILED, KNOWN (2.94276e-10), expected 3.19839e-09\n    test 243 intersect7s[3].aAB: 3.14801e-14  FAILED, KNOWN (2.65236e-15), expected 2.88277e-14\n    test 244 intersect7s[3].c: 0\n    test 245 intersect7s[3].kA: 0\n    test 246 intersect7s[3].kB: 0\n    test 247 intersect7s[3].iteration: None\n\n    test 248 Sphere.Closest.sA: 6.07719e+06\n    test 249 Sphere.Closest.sB: -3.31802e+06\n    test 250 Sphere.Closest.c: 0\n    test 251 Sphere.Closest.sX0: 9.39521e+06\n\n    test 252 Sphere.Closest5.A: {a1X: 54.653489, azi1: -147.7, aziX: -159.911264, lat1: 50.0, latX: -0.0, lon1: -4.0, lonX: -29.839663, s1X: 6077190.710199}  FAILED, KNOWN, expected {a1X: 54.653489, azi1: -147.7, aziX: -159.911264, lat1: 50.0, latX: -0.0, lon1: -4.0, lonX: -29.839663, m12: 5196622.322619, M12: 0.57852, M21: 0.57852, s1X: 6077190.710199}\n    test 253 Sphere.Closest5.B: {a1X: -29.839663, azi1: 90.0, aziX: 90.0, lat1: 0.0, latX: -0.0, lon1: 0.0, lonX: -29.839663, s1X: -3318019.115902}  FAILED, KNOWN, expected {a1X: -29.839663, azi1: 90.0, aziX: 90.0, lat1: 0.0, latX: -0.0, lon1: 0.0, lonX: -29.839663, m12: -3170047.454389, M12: 0.867421, M21: 0.867421, s1X: -3318019.115902}\n    test 254 Sphere.Closest5.sAB: 8.56921e-10  FAILED, KNOWN (1.2076e-09), expected 2.06452e-09\n    test 255 Sphere.Closest5.aAB: 7.70647e-15  FAILED, KNOWN (1.08602e-14), expected 1.85667e-14\n    test 256 Sphere.Closest5.c: 0\n\n    test 257 _Xdict2: 124\n\n    testGeodesicExact(pygeodesy.geodesici, 26.02.04)\n    test 258 Intersector: name='', geodesic=GeodesicExact(name='', caps=0, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), C4order=30)\n\n    test 259 Closest.1.sA: 4.2253e+06\n    test 260 Closest.1.sB: 2.70933e+06\n    test 261 Closest.1.c: 0\n    test 262 Closest.1.sX0: 6.93463e+06\n\n    test 263 Closest5.1.A: {a1X: 38.075573, azi1: 45.0, aziX: 51.790249, lat1: 0.0, latX: 25.92918, lon1: 0.0, lonX: 28.89426, m12: 3921213.171755, M12: 0.787198, M21: 0.787384, s1X: 4225301.108897}\n    test 264 Closest5.1.B: {a1X: 24.392077, azi1: 135.0, aziX: 146.182975, lat1: 45.0, latX: 25.92918, lon1: 10.0, lonX: 28.89426, m12: 2628412.372503, M12: 0.911005, M21: 0.910881, s1X: 2709328.885611}\n    test 265 Closest5.1.sAB: 7.94571e-10\n    test 266 Closest5.1.aAB: 7.15718e-15\n    test 267 Closest5.1.c: 0\n\n    test 268 Closest.2.sA: 6.05805e+06\n    test 269 Closest.2.sB: -3.31125e+06\n    test 270 Closest.2.c: 0\n    test 271 Closest.2.sX0: 9.3693e+06\n\n    test 272 Closest5.2.A: {a1X: 54.562637, azi1: -147.7, aziX: -159.869978, lat1: 50.0, latX: 0.0, lon1: -4.0, lonX: -29.745492, m12: 5184118.430287, M12: 0.58097, M21: 0.579813, s1X: 6058048.653081}\n    test 273 Closest5.2.B: {a1X: -29.845558, azi1: 90.0, aziX: 90.0, lat1: 0.0, latX: -0.0, lon1: 0.0, lonX: -29.745492, m12: -3163525.514556, M12: 0.86737, M21: 0.86737, s1X: -3311252.995823}\n    test 274 Closest5.2.sAB: 3.95486e-10\n    test 275 Closest5.2.aAB: 3.56467e-15\n    test 276 Closest5.2.c: 0\n\n    test 277 All[0].sA: -494582\n    test 278 All[0].sB: 1.40522e+07\n    test 279 All[0].c: 0\n    test 280 All[0].sX0: 1.45468e+07\n    test 281 All[0].iteration: 4\n\n    test 282 All[1].sA: 1.95291e+07\n    test 283 All[1].sB: -5.93234e+06\n    test 284 All[1].c: 0\n    test 285 All[1].sX0: 2.54615e+07\n    test 286 All[1].iteration: 4\n\n    test 287 All[2].sA: -494582\n    test 288 All[2].sB: -2.59556e+07\n    test 289 All[2].c: 0\n    test 290 All[2].sX0: 2.64502e+07\n    test 291 All[2].iteration: 4\n\n    test 292 All[3].sA: -2.05181e+07\n    test 293 All[3].sB: -5.97086e+06\n    test 294 All[3].c: 0\n    test 295 All[3].sX0: 2.64889e+07\n    test 296 All[3].iteration: 4\n\n    test 297 All5[0].A: {a1X: -4.448619, azi1: -147.7, aziX: -144.55245, lat1: 50.0, latX: 53.692598, lon1: -4.0, lonX: 0.0, m12: -494087.771694, M12: 0.996999, M21: 0.997, s1X: -494582.492241}\n    test 298 All5[0].B: {a1X: 126.399265, azi1: 0.0, aziX: 180.0, lat1: 0.0, latX: 53.692598, lon1: 180.0, lonX: 0.0, m12: 5161737.753947, M12: -0.593409, M21: -0.586165, s1X: 14052229.965229}\n    test 299 All5[0].sAB: 3.54078e-09\n    test 300 All5[0].aAB: 3.18449e-14\n    test 301 All5[0].c: 0\n    test 302 All5[0].iteration: 4\n\n    test 303 All5[1].A: {a1X: 175.764866, azi1: -147.7, aziX: -35.280487, lat1: 50.0, latX: -53.518675, lon1: -4.0, lonX: 180.0, m12: 488198.978244, M12: -1.001203, M21: -0.992673, s1X: 19529110.042937}\n    test 304 All5[1].B: {a1X: -53.426639, azi1: 0.0, aziX: 0.0, lat1: 0.0, latX: -53.518675, lon1: 180.0, lonX: 180.0, m12: -5110370.613686, M12: 0.595852, M21: 0.597076, s1X: -5932344.259165}\n    test 305 All5[1].sAB: 4.00748e-09\n    test 306 All5[1].aAB: 3.60427e-14\n    test 307 All5[1].c: 0\n    test 308 All5[1].iteration: 4\n\n    test 309 All5[2].A: {a1X: -4.448619, azi1: -147.7, aziX: -144.55245, lat1: 50.0, latX: 53.692598, lon1: -4.0, lonX: -0.0, m12: -494087.771694, M12: 0.996999, M21: 0.997, s1X: -494582.492241}\n    test 310 All5[2].B: {a1X: -233.600735, azi1: 0.0, aziX: 180.0, lat1: 0.0, latX: 53.692598, lon1: 180.0, lonX: 0.0, m12: 5082071.927222, M12: -0.593409, M21: -0.603127, s1X: -25955632.952022}\n    test 311 All5[2].sAB: 1.78008e-09\n    test 312 All5[2].aAB: 1.60097e-14\n    test 313 All5[2].c: 0\n    test 314 All5[2].iteration: 4\n\n    test 315 All5[3].A: {a1X: -184.660358, azi1: -147.7, aziX: -35.614985, lat1: 50.0, latX: -53.864737, lon1: -4.0, lonX: -180.0, m12: 499994.868419, M12: -0.992833, M21: -1.001337, s1X: -20518081.166643}\n    test 316 All5[3].B: {a1X: -53.773048, azi1: 0.0, aziX: 0.0, lat1: 0.0, latX: -53.864737, lon1: 180.0, lonX: 180.0, m12: -5133274.754826, M12: 0.590985, M21: 0.592236, s1X: -5970860.779079}\n    test 317 All5[3].sAB: 2.34461e-09\n    test 318 All5[3].aAB: 2.10867e-14\n    test 319 All5[3].c: 0\n    test 320 All5[3].iteration: 4\n\n    test 321 Middle.sA: 782555\n    test 322 Middle.sB: 5.53684e+06\n    test 323 Middle.c: 0\n    test 324 Middle.sX0: 0\n\n    test 325 Middle5.A: {a12: 14.106434, a1M: 7.053396, azi1: 44.75191, azi2: 45.629037, aziM: 44.969535, lat1: 0.0, lat2: 10.0, latM: 5.019509, lon1: 0.0, lon2: 10.0, lonM: 4.961883, m12: 780579.492953, M12: 0.992432, M21: 0.992432, s12: 1565109.099218, s1M: 782554.549609}\n    test 326 Middle5.B: {a12: 99.810444, a1M: 49.869061, azi1: 180.0, azi2: 180.0, aziM: 180.0, lat1: 50.0, lat2: -50.0, latM: 0.036282, lon1: -4.0, lon2: -4.0, lonM: -4.0, m12: 4864571.105922, M12: 0.645508, M21: 0.644537, s12: 11073670.322999, s1M: 5536835.161499}\n    test 327 Middle5.sMM: 1.13857e+06\n    test 328 Middle5.aMM: 10.2623\n    test 329 Middle5.c: 0\n\n    test 330 Segment.sA: -631414\n    test 331 Segment.sB: 5.98889e+06\n    test 332 Segment.c: 0\n    test 333 Segment.sX0: 1.86602e+06\n    test 334 Segment.kA: -1\n    test 335 Segment.kB: 0\n    test 336 Segment.k: -3\n\n    test 337 Segment5.A: {a1X: -5.691141, azi1: 44.75191, azi2: 45.629037, aziX: 44.893464, k2: -1, lat1: 0.0, lat2: 10.0, latX: -4.051871, lon1: 0.0, lon2: 10.0, lonX: -4.0, m12: -630376.505305, M12: 0.995071, M21: 0.995071, s1X: -631414.26877}\n    test 338 Segment5.B: {a1X: 53.943553, azi1: 180.0, azi2: 180.0, aziX: 180.0, k2: 0, lat1: 50.0, lat2: -50.0, latX: -4.051871, lon1: -4.0, lon2: -4.0, lonX: -4.0, m12: 5143394.782542, M12: 0.589657, M21: 0.588535, s1X: 5988887.278435}\n    test 339 Segment5.sAB: 1.36757e-09\n    test 340 Segment5.aAB: 1.23262e-14\n    test 341 Segment5.c: 0\n\n    test 342 intersect7s[0].A: 04.051871°S, 004.0°W\n    test 343 intersect7s[0].B: 04.051871°S, 004.0°W\n    test 344 intersect7s[0].sAB: 1.4124e-09\n    test 345 intersect7s[0].aAB: 1.27222e-14\n    test 346 intersect7s[0].c: 0\n    test 347 intersect7s[0].kA: 0\n    test 348 intersect7s[0].kB: 0\n    test 349 intersect7s[0].iteration: None\n\n    test 350 intersect7s[1].A: 03.623464°N, 176.0°E\n    test 351 intersect7s[1].B: 03.623464°N, 176.0°E\n    test 352 intersect7s[1].sAB: 1.67723e-09\n    test 353 intersect7s[1].aAB: 1.51076e-14\n    test 354 intersect7s[1].c: 0\n    test 355 intersect7s[1].kA: 0\n    test 356 intersect7s[1].kB: 0\n    test 357 intersect7s[1].iteration: None\n\n    test 358 intersect7s[2].A: 04.051871°S, 004.0°W\n    test 359 intersect7s[2].B: 04.051871°S, 004.0°W\n    test 360 intersect7s[2].sAB: 3.53101e-10\n    test 361 intersect7s[2].aAB: 3.18055e-15\n    test 362 intersect7s[2].c: 0\n    test 363 intersect7s[2].kA: 0\n    test 364 intersect7s[2].kB: 0\n    test 365 intersect7s[2].iteration: None\n\n    test 366 intersect7s[3].A: 04.4796°N, 176.0°E\n    test 367 intersect7s[3].B: 04.4796°N, 176.0°E\n    test 368 intersect7s[3].sAB: 3.19839e-09\n    test 369 intersect7s[3].aAB: 2.88277e-14\n    test 370 intersect7s[3].c: 0\n    test 371 intersect7s[3].kA: 0\n    test 372 intersect7s[3].kB: 0\n    test 373 intersect7s[3].iteration: None\n\n    test 374 Sphere.Closest.sA: 6.07719e+06\n    test 375 Sphere.Closest.sB: -3.31802e+06\n    test 376 Sphere.Closest.c: 0\n    test 377 Sphere.Closest.sX0: 9.39521e+06\n\n    test 378 Sphere.Closest5.A: {a1X: 54.653489, azi1: -147.7, aziX: -159.911264, lat1: 50.0, latX: -0.0, lon1: -4.0, lonX: -29.839663, m12: 5196622.322619, M12: 0.57852, M21: 0.57852, s1X: 6077190.710199}\n    test 379 Sphere.Closest5.B: {a1X: -29.839663, azi1: 90.0, aziX: 90.0, lat1: 0.0, latX: -0.0, lon1: 0.0, lonX: -29.839663, m12: -3170047.454389, M12: 0.867421, M21: 0.867421, s1X: -3318019.115902}\n    test 380 Sphere.Closest5.sAB: 2.06452e-09\n    test 381 Sphere.Closest5.aAB: 1.85667e-14\n    test 382 Sphere.Closest5.c: 0\n\n    test 383 _Xdict2: 124\n\n    testGeodesic(pygeodesy.geodesici, 26.02.04)\n    test 384 Intersector: name='', geodesic=<pygeodesy.geodesicw._gWrapped.Geodesic.<locals>.Geodesic object at 0x10a8e0690>\n\n    test 385 Closest.1.sA: 4.2253e+06\n    test 386 Closest.1.sB: 2.70933e+06\n    test 387 Closest.1.c: 0\n    test 388 Closest.1.sX0: 6.93463e+06\n    test 389 Closest.1.latA: 25.9292\n    test 390 Closest.1.lonA: 28.8943\n    test 391 Closest.1.latB: 25.9292\n    test 392 Closest.1.lonB: 28.8943\n    test 393 Closest.1.sAB: 7.11805e-10\n    test 394 Closest.1.aAB: 6.41166e-15\n\n    test 395 Closest5.1.A: {a1X: 38.075573, azi1: 45.0, aziX: 51.790249, lat1: 0.0, latX: 25.92918, lon1: 0.0, lonX: 28.89426, s1X: 4225301.108897}  FAILED, KNOWN, expected {a1X: 38.075573, azi1: 45.0, aziX: 51.790249, lat1: 0.0, latX: 25.92918, lon1: 0.0, lonX: 28.89426, m12: 3921213.171755, M12: 0.787198, M21: 0.787384, s1X: 4225301.108897}\n    test 396 Closest5.1.B: {a1X: 24.392077, azi1: 135.0, aziX: 146.182975, lat1: 45.0, latX: 25.92918, lon1: 10.0, lonX: 28.89426, s1X: 2709328.885611}  FAILED, KNOWN, expected {a1X: 24.392077, azi1: 135.0, aziX: 146.182975, lat1: 45.0, latX: 25.92918, lon1: 10.0, lonX: 28.89426, m12: 2628412.372503, M12: 0.911005, M21: 0.910881, s1X: 2709328.885611}\n    test 397 Closest5.1.sAB: 7.11805e-10  FAILED, KNOWN (8.27663e-11), expected 7.94571e-10\n    test 398 Closest5.1.aAB: 6.41166e-15  FAILED, KNOWN (7.45526e-16), expected 7.15718e-15\n    test 399 Closest5.1.c: 0\n\n    test 400 Closest.2.sA: 6.05805e+06\n    test 401 Closest.2.sB: -3.31125e+06\n    test 402 Closest.2.c: 0\n    test 403 Closest.2.sX0: 9.3693e+06\n    test 404 Closest.2.latA: -8.98894e-15\n    test 405 Closest.2.lonA: -29.7455\n    test 406 Closest.2.latB: -0\n    test 407 Closest.2.lonB: -29.7455\n    test 408 Closest.2.sAB: 1.27e-09\n    test 409 Closest.2.aAB: 1.14469e-14\n\n    test 410 Closest5.2.A: {a1X: 54.562637, azi1: -147.7, aziX: -159.869978, lat1: 50.0, latX: -0.0, lon1: -4.0, lonX: -29.745492, s1X: 6058048.653081}  FAILED, KNOWN, expected {a1X: 54.562637, azi1: -147.7, aziX: -159.869978, lat1: 50.0, latX: 0.0, lon1: -4.0, lonX: -29.745492, m12: 5184118.430287, M12: 0.58097, M21: 0.579813, s1X: 6058048.653081}\n    test 411 Closest5.2.B: {a1X: -29.845558, azi1: 90.0, aziX: 90.0, lat1: 0.0, latX: -0.0, lon1: 0.0, lonX: -29.745492, s1X: -3311252.995823}  FAILED, KNOWN, expected {a1X: -29.845558, azi1: 90.0, aziX: 90.0, lat1: 0.0, latX: -0.0, lon1: 0.0, lonX: -29.745492, m12: -3163525.514556, M12: 0.86737, M21: 0.86737, s1X: -3311252.995823}\n    test 412 Closest5.2.sAB: 1.27e-09  FAILED, KNOWN (8.7451e-10), expected 3.95486e-10\n    test 413 Closest5.2.aAB: 1.14469e-14  FAILED, KNOWN (7.88228e-15), expected 3.56467e-15\n    test 414 Closest5.2.c: 0\n\n    test 415 All[0].sA: -494582\n    test 416 All[0].sB: 1.40522e+07\n    test 417 All[0].c: 0\n    test 418 All[0].sX0: 1.45468e+07\n    test 419 All[0].latA: 53.6926\n    test 420 All[0].lonA: 4.44089e-15\n    test 421 All[0].latB: 53.6926\n    test 422 All[0].lonB: 0\n    test 423 All[0].sAB: 1.44466e-09\n    test 424 All[0].aAB: 1.29929e-14\n    test 425 All[0].iteration: 4\n\n    test 426 All[1].sA: 1.95291e+07\n    test 427 All[1].sB: -5.93234e+06\n    test 428 All[1].c: 0\n    test 429 All[1].sX0: 2.54615e+07\n    test 430 All[1].latA: -53.5187\n    test 431 All[1].lonA: 180\n    test 432 All[1].latB: -53.5187\n    test 433 All[1].lonB: 180\n    test 434 All[1].sAB: 4.71379e-09\n    test 435 All[1].aAB: 4.23951e-14\n    test 436 All[1].iteration: 4\n\n    test 437 All[2].sA: -494582\n    test 438 All[2].sB: -2.59556e+07\n    test 439 All[2].c: 0\n    test 440 All[2].sX0: 2.64502e+07\n    test 441 All[2].latA: 53.6926\n    test 442 All[2].lonA: 9.76996e-15\n    test 443 All[2].latB: 53.6926\n    test 444 All[2].lonB: 0\n    test 445 All[2].sAB: 1.8823e-09\n    test 446 All[2].aAB: 1.6929e-14\n    test 447 All[2].iteration: 4\n\n    test 448 All[3].sA: -2.05181e+07\n    test 449 All[3].sB: -5.97086e+06\n    test 450 All[3].c: 0\n    test 451 All[3].sX0: 2.64889e+07\n    test 452 All[3].latA: -53.8647\n    test 453 All[3].lonA: 180\n    test 454 All[3].latB: -53.8647\n    test 455 All[3].lonB: 180\n    test 456 All[3].sAB: 3.99823e-09\n    test 457 All[3].aAB: 3.59587e-14\n    test 458 All[3].iteration: 4\n\n    test 459 All5[0].A: {a1X: -4.448619, azi1: -147.7, aziX: -144.55245, lat1: 50.0, latX: 53.692598, lon1: -4.0, lonX: 0.0, s1X: -494582.492241}  FAILED, KNOWN, expected {a1X: -4.448619, azi1: -147.7, aziX: -144.55245, lat1: 50.0, latX: 53.692598, lon1: -4.0, lonX: 0.0, m12: -494087.771694, M12: 0.996999, M21: 0.997, s1X: -494582.492241}\n    test 460 All5[0].B: {a1X: 126.399265, azi1: 0.0, aziX: 180.0, lat1: 0.0, latX: 53.692598, lon1: 180.0, lonX: 0.0, s1X: 14052229.965229}  FAILED, KNOWN, expected {a1X: 126.399265, azi1: 0.0, aziX: 180.0, lat1: 0.0, latX: 53.692598, lon1: 180.0, lonX: 0.0, m12: 5161737.753947, M12: -0.593409, M21: -0.586165, s1X: 14052229.965229}\n    test 461 All5[0].sAB: 1.44466e-09  FAILED, KNOWN (2.09612e-09), expected 3.54078e-09\n    test 462 All5[0].aAB: 1.29929e-14  FAILED, KNOWN (1.8852e-14), expected 3.18449e-14\n    test 463 All5[0].c: 0\n    test 464 All5[0].iteration: 4\n\n    test 465 All5[1].A: {a1X: 175.764866, azi1: -147.7, aziX: -35.280487, lat1: 50.0, latX: -53.518675, lon1: -4.0, lonX: 180.0, s1X: 19529110.042937}  FAILED, KNOWN, expected {a1X: 175.764866, azi1: -147.7, aziX: -35.280487, lat1: 50.0, latX: -53.518675, lon1: -4.0, lonX: 180.0, m12: 488198.978244, M12: -1.001203, M21: -0.992673, s1X: 19529110.042937}\n    test 466 All5[1].B: {a1X: -53.426639, azi1: 0.0, aziX: 0.0, lat1: 0.0, latX: -53.518675, lon1: 180.0, lonX: 180.0, s1X: -5932344.259165}  FAILED, KNOWN, expected {a1X: -53.426639, azi1: 0.0, aziX: 0.0, lat1: 0.0, latX: -53.518675, lon1: 180.0, lonX: 180.0, m12: -5110370.613686, M12: 0.595852, M21: 0.597076, s1X: -5932344.259165}\n    test 467 All5[1].sAB: 4.71379e-09  FAILED, KNOWN (7.06309e-10), expected 4.00748e-09\n    test 468 All5[1].aAB: 4.23951e-14  FAILED, KNOWN (6.35244e-15), expected 3.60427e-14\n    test 469 All5[1].c: 0\n    test 470 All5[1].iteration: 4\n\n    test 471 All5[2].A: {a1X: -4.448619, azi1: -147.7, aziX: -144.55245, lat1: 50.0, latX: 53.692598, lon1: -4.0, lonX: 0.0, s1X: -494582.492241}  FAILED, KNOWN, expected {a1X: -4.448619, azi1: -147.7, aziX: -144.55245, lat1: 50.0, latX: 53.692598, lon1: -4.0, lonX: -0.0, m12: -494087.771694, M12: 0.996999, M21: 0.997, s1X: -494582.492241}\n    test 472 All5[2].B: {a1X: -233.600735, azi1: 0.0, aziX: 180.0, lat1: 0.0, latX: 53.692598, lon1: 180.0, lonX: 0.0, s1X: -25955632.952022}  FAILED, KNOWN, expected {a1X: -233.600735, azi1: 0.0, aziX: 180.0, lat1: 0.0, latX: 53.692598, lon1: 180.0, lonX: 0.0, m12: 5082071.927222, M12: -0.593409, M21: -0.603127, s1X: -25955632.952022}\n    test 473 All5[2].sAB: 1.8823e-09  FAILED, KNOWN (1.02215e-10), expected 1.78008e-09\n    test 474 All5[2].aAB: 1.6929e-14  FAILED, KNOWN (9.19299e-16), expected 1.60097e-14\n    test 475 All5[2].c: 0\n    test 476 All5[2].iteration: 4\n\n    test 477 All5[3].A: {a1X: -184.660358, azi1: -147.7, aziX: -35.614985, lat1: 50.0, latX: -53.864737, lon1: -4.0, lonX: 180.0, s1X: -20518081.166643}  FAILED, KNOWN, expected {a1X: -184.660358, azi1: -147.7, aziX: -35.614985, lat1: 50.0, latX: -53.864737, lon1: -4.0, lonX: -180.0, m12: 499994.868419, M12: -0.992833, M21: -1.001337, s1X: -20518081.166643}\n    test 478 All5[3].A.lonX: 179.99999999999994  FAILED, KNOWN (2), expected -179.99999999999997\n    test 479 All5[3].B: {a1X: -53.773048, azi1: 0.0, aziX: 0.0, lat1: 0.0, latX: -53.864737, lon1: 180.0, lonX: 180.0, s1X: -5970860.779079}  FAILED, KNOWN, expected {a1X: -53.773048, azi1: 0.0, aziX: 0.0, lat1: 0.0, latX: -53.864737, lon1: 180.0, lonX: 180.0, m12: -5133274.754826, M12: 0.590985, M21: 0.592236, s1X: -5970860.779079}\n    test 480 All5[3].sAB: 3.99823e-09  FAILED, KNOWN (1.65361e-09), expected 2.34461e-09\n    test 481 All5[3].aAB: 3.59587e-14  FAILED, KNOWN (1.4872e-14), expected 2.10867e-14\n    test 482 All5[3].c: 0\n    test 483 All5[3].iteration: 4\n\n    test 484 Middle.sA: 782555\n    test 485 Middle.sB: 5.54085e+06  FAILED, KNOWN (0.000724055), expected 5.53684e+06\n    test 486 Middle.c: 0\n    test 487 Middle.sX0: 0\n    test 488 Middle.latA: 5.01951\n    test 489 Middle.lonA: 4.96188\n    test 490 Middle.latB: 0\n    test 491 Middle.lonB: -4\n    test 492 Middle.sAB: 1.14053e+06\n    test 493 Middle.aAB: 10.2799\n\n    test 494 Middle5.A: {a12: 14.106434, a1M: 7.053396, azi1: 44.75191, azi2: 45.629037, aziM: 44.969535, lat1: 0.0, lat2: 10.0, latM: 5.019509, lon1: 0.0, lon2: 10.0, lonM: 4.961883, s12: 1565109.099218, s1M: 782554.549609}  FAILED, KNOWN, expected {a12: 14.106434, a1M: 7.053396, azi1: 44.75191, azi2: 45.629037, aziM: 44.969535, lat1: 0.0, lat2: 10.0, latM: 5.019509, lon1: 0.0, lon2: 10.0, lonM: 4.961883, m12: 780579.492953, M12: 0.992432, M21: 0.992432, s12: 1565109.099218, s1M: 782554.549609}\n    test 495 Middle5.B: {a12: 99.810444, a1M: 49.905222, azi1: 180.0, azi2: 180.0, aziM: 180.0, lat1: 50.0, lat2: -50.0, latM: 0.0, lon1: -4.0, lon2: -4.0, lonM: -4.0, s12: 11081694.083368, s1M: 5540847.041684}  FAILED, KNOWN, expected {a12: 99.810444, a1M: 49.869061, azi1: 180.0, azi2: 180.0, aziM: 180.0, lat1: 50.0, lat2: -50.0, latM: 0.036282, lon1: -4.0, lon2: -4.0, lonM: -4.0, m12: 4864571.105922, M12: 0.645508, M21: 0.644537, s12: 11073670.322999, s1M: 5536835.161499}\n    test 496 Middle5.B.latM: 0.0  FAILED, KNOWN (0.0362822), expected 0.03628221979727372\n    test 497 Middle5.B.s1M: 5540847.04168415  FAILED, KNOWN (0.000724055), expected 5536835.161499482\n    test 498 Middle5.B.a1M: 49.905221888853184  FAILED, KNOWN (0.000724585), expected 49.869061316437026\n    test 499 Middle5.B.s12: 11081694.0833683  FAILED, KNOWN (0.000724055), expected 11073670.322998963\n    test 500 Middle5.sMM: 1.14053e+06  FAILED, KNOWN (0.0017142), expected 1.13857e+06\n    test 501 Middle5.aMM: 10.2799  FAILED, KNOWN (0.00171426), expected 10.2623\n    test 502 Middle5.c: 0\n\n    test 503 Segment.sA: -631414\n    test 504 Segment.sB: 5.98889e+06\n    test 505 Segment.c: 0\n    test 506 Segment.sX0: 1.86201e+06  FAILED, KNOWN (0.00214997), expected 1.86602e+06\n    test 507 Segment.kA: -1\n    test 508 Segment.kB: 0\n    test 509 Segment.k: -3\n    test 510 Segment.latA: -4.05187\n    test 511 Segment.lonA: -4\n    test 512 Segment.latB: -4.05187\n    test 513 Segment.lonB: -4\n    test 514 Segment.sAB: 5.496e-10\n    test 515 Segment.aAB: 4.95367e-15\n\n    test 516 Segment5.A: {a1X: -5.691141, azi1: 44.75191, aziX: 44.893464, k2: -1, lat1: 0.0, latX: -4.051871, lon1: 0.0, lonX: -4.0, s1X: -631414.26877}  FAILED, KNOWN, expected {a1X: -5.691141, azi1: 44.75191, azi2: 45.629037, aziX: 44.893464, k2: -1, lat1: 0.0, lat2: 10.0, latX: -4.051871, lon1: 0.0, lon2: 10.0, lonX: -4.0, m12: -630376.505305, M12: 0.995071, M21: 0.995071, s1X: -631414.26877}\n    test 517 Segment5.B: {a1X: 53.943553, azi1: 180.0, aziX: 180.0, k2: 0, lat1: 50.0, latX: -4.051871, lon1: -4.0, lonX: -4.0, s1X: 5988887.278435}  FAILED, KNOWN, expected {a1X: 53.943553, azi1: 180.0, azi2: 180.0, aziX: 180.0, k2: 0, lat1: 50.0, lat2: -50.0, latX: -4.051871, lon1: -4.0, lon2: -4.0, lonX: -4.0, m12: 5143394.782542, M12: 0.589657, M21: 0.588535, s1X: 5988887.278435}\n    test 518 Segment5.sAB: 5.496e-10  FAILED, KNOWN (8.17969e-10), expected 1.36757e-09\n    test 519 Segment5.aAB: 4.95367e-15  FAILED, KNOWN (7.37254e-15), expected 1.23262e-14\n    test 520 Segment5.c: 0\n\n    test 521 intersect7s[0].A: 04.051871°S, 004.0°W\n    test 522 intersect7s[0].B: 04.051871°S, 004.0°W\n    test 523 intersect7s[0].sAB: 2.64649e-10  FAILED, KNOWN (1.14775e-09), expected 1.4124e-09\n    test 524 intersect7s[0].aAB: 2.38534e-15  FAILED, KNOWN (1.03369e-14), expected 1.27222e-14\n    test 525 intersect7s[0].c: 0\n    test 526 intersect7s[0].kA: 0\n    test 527 intersect7s[0].kB: 0\n    test 528 intersect7s[0].iteration: None\n\n    test 529 intersect7s[1].A: 03.623464°N, 176.0°E\n    test 530 intersect7s[1].B: 03.623464°N, 176.0°E\n    test 531 intersect7s[1].sAB: 1.67611e-09  FAILED, KNOWN (1.12026e-12), expected 1.67723e-09\n    test 532 intersect7s[1].aAB: 1.51076e-14\n    test 533 intersect7s[1].c: 0\n    test 534 intersect7s[1].kA: 0\n    test 535 intersect7s[1].kB: 0\n    test 536 intersect7s[1].iteration: None\n\n    test 537 intersect7s[2].A: 04.051871°S, 004.0°W\n    test 538 intersect7s[2].B: 04.051871°S, 004.0°W\n    test 539 intersect7s[2].sAB: 5.83925e-10  FAILED, KNOWN (2.30824e-10), expected 3.53101e-10\n    test 540 intersect7s[2].aAB: 5.26305e-15  FAILED, KNOWN (2.08249e-15), expected 3.18055e-15\n    test 541 intersect7s[2].c: 0\n    test 542 intersect7s[2].kA: 0\n    test 543 intersect7s[2].kB: 0\n    test 544 intersect7s[2].iteration: None\n\n    test 545 intersect7s[3].A: 04.4796°N, 176.0°E\n    test 546 intersect7s[3].B: 04.4796°N, 176.0°E\n    test 547 intersect7s[3].sAB: 3.49267e-09  FAILED, KNOWN (2.94276e-10), expected 3.19839e-09\n    test 548 intersect7s[3].aAB: 3.14801e-14  FAILED, KNOWN (2.65236e-15), expected 2.88277e-14\n    test 549 intersect7s[3].c: 0\n    test 550 intersect7s[3].kA: 0\n    test 551 intersect7s[3].kB: 0\n    test 552 intersect7s[3].iteration: None\n\n    test 553 Sphere.Closest.sA: 6.07719e+06\n    test 554 Sphere.Closest.sB: -3.31802e+06\n    test 555 Sphere.Closest.c: 0\n    test 556 Sphere.Closest.sX0: 9.39521e+06\n    test 557 Sphere.Closest.latA: -2.98706e-15\n    test 558 Sphere.Closest.lonA: -29.8397\n    test 559 Sphere.Closest.latB: -0\n    test 560 Sphere.Closest.lonB: -29.8397\n    test 561 Sphere.Closest.sAB: 8.56921e-10\n    test 562 Sphere.Closest.aAB: 7.70647e-15\n\n    test 563 Sphere.Closest5.A: {a1X: 54.653489, azi1: -147.7, aziX: -159.911264, lat1: 50.0, latX: -0.0, lon1: -4.0, lonX: -29.839663, s1X: 6077190.710199}  FAILED, KNOWN, expected {a1X: 54.653489, azi1: -147.7, aziX: -159.911264, lat1: 50.0, latX: -0.0, lon1: -4.0, lonX: -29.839663, m12: 5196622.322619, M12: 0.57852, M21: 0.57852, s1X: 6077190.710199}\n    test 564 Sphere.Closest5.B: {a1X: -29.839663, azi1: 90.0, aziX: 90.0, lat1: 0.0, latX: -0.0, lon1: 0.0, lonX: -29.839663, s1X: -3318019.115902}  FAILED, KNOWN, expected {a1X: -29.839663, azi1: 90.0, aziX: 90.0, lat1: 0.0, latX: -0.0, lon1: 0.0, lonX: -29.839663, m12: -3170047.454389, M12: 0.867421, M21: 0.867421, s1X: -3318019.115902}\n    test 565 Sphere.Closest5.sAB: 8.56921e-10  FAILED, KNOWN (1.2076e-09), expected 2.06452e-09\n    test 566 Sphere.Closest5.aAB: 7.70647e-15  FAILED, KNOWN (1.08602e-14), expected 1.85667e-14\n    test 567 Sphere.Closest5.c: 0\n\n    test 568 _Xdict2: 178\n\n    100 of 568 testGeodesici.py tests (17.6%) FAILED, ALL KNOWN (pygeodesy 26.3.26 Python 3.14.3 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 2.648 sec\nrunning /Library/Framewo....n3.14 -W default ~/PyGeodesy/test/testGeodesicx.py\n./test/testGeodesicx.py:49: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  gP = E.geodesic\n./test/testGeodesicx.py:143: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  gP = E.geodesic\n./test/testGeodesicx.py:284: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  t.testPolygon(geodesicw, E.geodesic, K=True)  # XXX geographiclib 1.49 issue?\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.classname from .named by testGeodesicx.py line 12\n# lazily imported pygeodesy.DIG from .constants by testGeodesicx.py line 12\n# lazily imported pygeodesy.Ellipsoid from .ellipsoids by testGeodesicx.py line 12\n# lazily imported pygeodesy.GDict from .karney by testGeodesicx.py line 12\n# lazily imported pygeodesy.GeodesicLineExact from .geodesicx by testGeodesicx.py line 12\n# lazily imported pygeodesy.itemsorted from .basics by testGeodesicx.py line 12\n# lazily imported pygeodesy.Ellipsoids from .ellipsoids by testGeodesicx.py line 263\n# lazily imported pygeodesy.geodesicw by testGeodesicx.py line 263\n# lazily imported pygeodesy.geodsolve by testGeodesicx.py line 263\n\n    testing testGeodesicx.py 25.09.03 (module pygeodesy.geodesicx 25.12.23) isLazy=3\n\n    testDirectX vs ...(pygeodesy.geodesicx, 25.12.23)\n# lazily imported pygeodesy.elliptic by gxline.py line 289\n    test 1 C++X.a12: 49.4755274632515\n    test 2 C++X.azi1: 51\n    test 3 C++X.azi2: 107.189397162606\n    test 4 C++X.lat1: 40.6\n    test 5 C++X.lat2: 51.8845645056068\n    test 6 C++X.lon1: -73.8\n    test 7 C++X.lon2: -1.14117286120084  FAILED, KNOWN, expected -1.14117286120083\n    test 8 C++X.m12: 4844148.70310149\n    test 9 C++X.M12: 0.650910566998086\n    test 10 C++X.M21: 0.651228658921966\n    test 11 C++X.s12: 5500000\n    test 12 C++X.S12: 39735075134877.1\n    test 13 iteration: None\n\n    test 14 Python.a12: 49.4755274632515\n    test 15 Python.azi1: 51\n    test 16 Python.azi2: 107.189397162606\n    test 17 Python.lat1: 40.6\n    test 18 Python.lat2: 51.8845645056068\n    test 19 Python.lon1: -73.8\n    test 20 Python.lon2: -1.14117286120084\n    test 21 Python.m12: 4844148.70310149\n    test 22 Python.M12: 0.650910566998086\n    test 23 Python.M21: 0.651228658921966\n    test 24 Python.s12: 5500000\n    test 25 Python.S12: 39735075134877.1\n    test 26 iteration: None\n\n    test 27 GeodesicLineExact: name='', lat1=40.6, lon1=-73.8, azi1=51, a13=49.475527, s13=5500000, caps=36747, geodesic=GeodesicExact(name='WGS84', caps=0, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), C4order=30)\n    test 28 GeodesicExact: GeodesicExact(name='WGS84', caps=0, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), C4order=30)\n    test 29 GeodesicLineExact: Direct9Tuple(a12=49.475527, lat2=51.884565, lon2=-1.141173, azi2=107.189397, s12=5500000.0, m12=4844148.703101, M12=0.650911, M21=0.651229, S12=NAN)\n\n    test 30 GeodesicExact: {a12: 49.475527, azi1: 51.0, azi2: 107.189397, lat1: 40.6, lat2: 51.884565, lon1: -73.8, lon2: -1.141173, m12: 4844148.703101, M12: 0.650911, M21: 0.651229, s12: 5500000.0}\n    test 31 GeodesicExact: (49.475527, 51.884565, -1.141173, 107.189397, 5500000.0, 4844148.703101, 0.650911, 0.651229, NAN)\n    test 32 GeodesicExact: {a12: 49.475527, azi2: 107.189397, lat2: 51.884565, lon2: -1.141173, m12: 4844148.703101, M12: 0.650911, M21: 0.651229, s12: 5500000.0, S12: NAN}  FAILED, KNOWN, expected {a12: 49.475527, azi1: 51.0, azi2: 107.189397, lat1: 40.6, lat2: 51.884565, lon1: -73.8, lon2: -1.141173, m12: 4844148.703101, M12: 0.650911, M21: 0.651229, s12: 5500000.0}\n\n    test 33 Geodesic: {a12: 49.475527, azi2: 107.189397, lat2: 51.884565, lon2: -1.141173, m12: NAN, M12: NAN, M21: NAN, s12: 5500000.0, S12: NAN}\n    test 34 Geodesic: (49.475527, 51.884565, -1.141173, 107.189397, 5500000.0, NAN, NAN, NAN, NAN)\n    test 35 Geodesic: {a12: 49.475527, azi2: 107.189397, lat2: 51.884565, lon2: -1.141173, m12: NAN, M12: NAN, M21: NAN, s12: 5500000.0, S12: NAN}\n\n    test 36 ArcDirect.a12: 49.8\n    test 37 ArcDirect.azi1: 51\n    test 38 ArcDirect.azi2: 107.582082475406  FAILED, KNOWN, expected 107.5820825\n    test 39 ArcDirect.lat1: 40.6\n    test 40 ArcDirect.lat2: 51.7876866587893  FAILED, KNOWN, expected 51.7876867\n    test 41 ArcDirect.lon1: -73.8\n    test 42 ArcDirect.lon2: -0.641731343091337  FAILED, KNOWN, expected -0.641731\n    test 43 ArcDirect.s12: 5536073.73439267  FAILED, KNOWN, expected 5536073.734393\n    test 44 iteration: None\n\n    test 45 ArcDirectLine: name='', lat1=40.6, lon1=-73.8, azi1=51, a13=49.8, s13=5536073.734393, caps=36747, geodesic=GeodesicExact(name='WGS84', caps=0, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), C4order=30)\n    test 46 iteration: None\n\n    test 47 GeodesicLineExact: name='', lat1=40.6, lon1=-73.8, azi1=51, a13=NAN, s13=NAN, caps=65439, geodesic=GeodesicExact(name='WGS84', caps=0, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), C4order=30)\n    test 48 iteration: None\n\n    testInverseX vs ...(pygeodesy.geodesicx, 25.12.23)\n    test 49 C++X.a12: 49.941310217899\n    test 50 C++X.azi1: 51.1988828455798\n    test 51 C++X.azi2: 107.821776735514\n    test 52 C++X.lat1: 40.6\n    test 53 C++X.lat2: 51.6\n    test 54 C++X.lon1: -73.8\n    test 55 C++X.lon2: -0.5\n    test 56 C++X.m12: 4877684.6027062\n    test 57 C++X.M12: 0.644729692059482\n    test 58 C++X.M21: 0.645045678521344\n    test 59 C++X.s12: 5551759.40031868\n    test 60 C++X.S12: 40041368848742.5\n    test 61 iteration: 3\n\n    test 62 Python.a12: 49.941310217899\n    test 63 Python.azi1: 51.1988828455798\n    test 64 Python.azi2: 107.821776735514\n    test 65 Python.lat1: 40.6\n    test 66 Python.lat2: 51.6\n    test 67 Python.lon1: -73.8\n    test 68 Python.lon2: -0.5\n    test 69 Python.m12: 4877684.6027062\n    test 70 Python.M12: 0.644729692059482\n    test 71 Python.M21: 0.645045678521344\n    test 72 Python.s12: 5551759.40031868\n    test 73 Python.S12: 40041368848742.5\n    test 74 iteration: None\n\n    test 75 GeodesicLineExact: GeodesicLineExact(name='', lat1=40.6, lon1=-73.8, azi1=51.198883, a13=49.94131, s13=5551759.400319, caps=36747, geodesic=GeodesicExact(name='WGS84', caps=0, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), C4order=30))\n    test 76 GeodesicExact: name='WGS84', caps=0, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), C4order=30\n    test 77 GeodesicLineExact: Direct9Tuple(a12=49.94131, lat2=51.6, lon2=-0.5, azi2=107.821777, s12=5551759.400319, m12=4877684.602706, M12=0.64473, M21=0.645046, S12=NAN)\n\n    test 78 GeodesicExact: GDict(a12=49.94131, azi1=51.198883, azi2=107.821777, lat1=40.6, lat2=51.6, lon1=-73.8, lon2=-0.5, m12=4877684.602706, M12=0.64473, M21=0.645046, s12=5551759.400319)\n    test 79 GeodesicExact: Inverse10Tuple(a12=49.94131, s12=5551759.400319, salp1=NAN, calp1=NAN, salp2=NAN, calp2=NAN, m12=4877684.602706, M12=0.64473, M21=0.645046, S12=NAN)\n    test 80 GeodesicExact: {a12: 49.94131, azi1: NAN, azi2: NAN, calp1: NAN, calp2: NAN, m12: 4877684.602706, M12: 0.64473, M21: 0.645046, s12: 5551759.400319, S12: NAN, salp1: NAN, salp2: NAN}  FAILED, KNOWN, expected {a12: 49.94131, azi1: 51.198883, azi2: 107.821777, lat1: 40.6, lat2: 51.6, lon1: -73.8, lon2: -0.5, m12: 4877684.602706, M12: 0.64473, M21: 0.645046, s12: 5551759.400319}\n\n    test 81 Geodesic: GDict(a12=49.94131, azi1=51.198883, azi2=107.821777, calp1=0.626619, calp2=-0.306057, lon1=-73.8, lon2=-0.5, m12=NAN, M12=NAN, M21=NAN, s12=5551759.400319, S12=NAN, salp1=0.779326, salp2=0.952013)\n    test 82 Geodesic: Inverse10Tuple(a12=49.94131, s12=5551759.400319, salp1=0.779326, calp1=0.626619, salp2=0.952013, calp2=-0.306057, m12=NAN, M12=NAN, M21=NAN, S12=NAN)\n    test 83 Geodesic: {a12: 49.94131, azi1: 51.198883, azi2: 107.821777, calp1: 0.626619, calp2: -0.306057, m12: NAN, M12: NAN, M21: NAN, s12: 5551759.400319, S12: NAN, salp1: 0.779326, salp2: 0.952013}  FAILED, KNOWN, expected {a12: 49.94131, azi1: 51.198883, azi2: 107.821777, calp1: 0.626619, calp2: -0.306057, lon1: -73.8, lon2: -0.5, m12: NAN, M12: NAN, M21: NAN, s12: 5551759.400319, S12: NAN, salp1: 0.779326, salp2: 0.952013}\n\n    test 84 Inverse: {a12: 49.647855, azi1: 51.139649, azi2: 107.74164, lat1: 40.6, lat2: 51.6, lon1: -73.8, lon2: -0.5, m12: 4848370.615026, M12: 0.646331, M21: 0.646017, s12: 5515844.227497}\n    test 85 Inverse1: 49.647854761166144\n\n    testPolygon24(pygeodesy.geodesicx, 25.12.23)\n    test 86 Compute: (1, 0, 0)\n    test 87 AddEdges: (4, 4000, 1000000)\n    test 88 TestEdge: (5, 4000, 1000000)\n    test 89 Clear: 0\n    test 90 TestPoint: (1, 0, 0)\n    test 91 AddPoints: (4, 29506941, 65690027591346)\n    test 92 TestPoint: (5, 29506941, 65690027591346)\n    test 93 toStr: area=65690027591345.671875, geodesic=GeodesicExact(name='WGS84', caps=0, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), C4order=24), num=4, perimeter=29506941.155178, polyline=False\n\n    testPolygon27(pygeodesy.geodesicx, 25.12.23)\n    test 94 Compute: (1, 0, 0)\n    test 95 AddEdges: (4, 4000, 1000000)\n    test 96 TestEdge: (5, 4000, 1000000)\n    test 97 Clear: 0\n    test 98 TestPoint: (1, 0, 0)\n    test 99 AddPoints: (4, 29506941, 65690027591346)\n    test 100 TestPoint: (5, 29506941, 65690027591346)\n    test 101 toStr: area=65690027591345.671875, geodesic=GeodesicExact(name='WGS84', caps=0, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), C4order=27), num=4, perimeter=29506941.155178, polyline=False\n\n    testPolygon30(pygeodesy.geodesicx, 25.12.23)\n    test 102 Compute: (1, 0, 0)\n    test 103 AddEdges: (4, 4000, 1000000)\n    test 104 TestEdge: (5, 4000, 1000000)\n    test 105 Clear: 0\n    test 106 TestPoint: (1, 0, 0)\n    test 107 AddPoints: (4, 29506941, 65690027591346)\n    test 108 TestPoint: (5, 29506941, 65690027591346)\n    test 109 toStr: area=65690027591345.671875, geodesic=GeodesicExact(name='WGS84', caps=0, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), C4order=30), num=4, perimeter=29506941.155178, polyline=False\n\n    testPolygon(pygeodesy.geodesicw, 25.05.28)\n    test 110 Compute: (1, 0, 0)\n    test 111 AddEdges: (4, 4000, 1000000)\n    test 112 TestEdge: (5, 4000, 1000000)\n    test 113 Clear: None  FAILED, KNOWN, expected 0\n    test 114 TestPoint: (1, 0, 0)\n    test 115 AddPoints: (4, 29506941, 65690027591346)\n    test 116 TestPoint: (5, 29506941, 65690027591346)\n\n    testPlumbTo ...(pygeodesy.geodesicx, 25.12.23)\n# lazily imported pygeodesy.rhumb by geodesicw.py line 606\n# imported pygeodesy.basics into errors.py line 443\n    test 117 lat2: 51.846089\n    test 118 lon2: 5.260428\n    test 119 s12: 24784.288415\n    test 120 at: -270.000000\n    test 121 iteration: 6\n\n    test 122 lat2: 54.928531\n    test 123 lon2: -21.937291\n    test 124 s12: 3928788.572003\n    test 125 at: 270.000000\n    test 126 iteration: 27\n\n    test 127 lat2: 37.976203  FAILED, KNOWN, expected 37.976217\n    test 128 lon2: 18.344790  FAILED, KNOWN, expected 18.344820\n    test 129 s12: 1012793.617854  FAILED, KNOWN, expected 1012790.599291\n    test 130 at: 270.005476  FAILED, KNOWN, expected 270.005437\n    test 131 iteration: 128\n\n    16 of 131 testGeodesicx.py tests (12.2%) FAILED, incl. 13 KNOWN plus 3 DeprecationWarnings (pygeodesy 26.3.26 Python 3.14.3 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 5.910 sec\nrunning /Library/Framewo....n3.14 -W default ~/PyGeodesy/test/testGeohash.py\n./test/testGeohash.py:38: DeprecationWarning: function L{decode_error<pygeodesy.geohash.decode_error>} has been DEPRECATED on 2024.07.28, use L{geohash.decode_error2}.\n  self.test('decode_error',  fstr(geohash.decode_error( g), fmt='%.*e'), '2.145767e-05, 2.145767e-05')  # DEPRECATED\n./test/testGeohash.py:45: DeprecationWarning: property_RO L{sizes<pygeodesy.geohash.Geohash.sizes>} has been DEPRECATED on 2024.07.28, use property C{Geohash.sizes3}.\n  self.test('sizes', fstr(g.sizes, prec=1), '4.8, 4.8')\n./test/testGeohash.py:87: DeprecationWarning: function L{decode_error<pygeodesy.geohash.decode_error>} has been DEPRECATED on 2024.07.28, use L{geohash.decode_error2}.\n  self.test('decode_error',  fstr(geohash.decode_error( 'u120fxw'), fmt='%.*e'), '6.866455e-04, 6.866455e-04')  # DEPRECATED\n./test/testGeohash.py:94: DeprecationWarning: function L{sizes<pygeodesy.geohash.sizes>} has been DEPRECATED on 2024.07.28, use function L{pygeodesy.geohash.sizes3}.\n  self.test('sizes',  fstr(geohash.sizes( 'u120fxw'), prec=1), '153.0, 153.0')  # DEPRECATED\n./test/testGeohash.py:102: DeprecationWarning: function L{sizes<pygeodesy.geohash.sizes>} has been DEPRECATED on 2024.07.28, use function L{pygeodesy.geohash.sizes3}.\n  self.test('sizes',  fstr(geohash.sizes( g), prec=1), '610.0, 1220.0')  # DEPRECATED\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.classname from .named by testGeohash.py line 11\n# lazily imported pygeodesy.fstr from .streprs by testGeohash.py line 11\n# lazily imported pygeodesy.geohash by testGeohash.py line 11\n# lazily imported pygeodesy.Geohash from .geohash by testGeohash.py line 11\n# lazily imported pygeodesy.Geohashed from .geohash by testGeohash.py line 11\n# lazily imported pygeodesy.ellipsoidalVincenty by testGeohash.py line 161\n\n    testing testGeohash.py 24.08.01 (module pygeodesy.geohash 25.09.16) isLazy=3\n    test 1 Geohash: geek\n    test 2 Geohash: geek\n    test 3 Geohash: 'geek'\n    test 4 Geohash: Geohash('geek')\n    test 5 Geohash: geek\n    test 6 bounds: (LatLon(65°23′26.25″N, 017°55′46.88″W), LatLon(65°33′59.06″N, 017°34′41.25″W))\n    test 7 toLatLon: 65.478516°N, 017.753906°W\n    test 8 latlon: 65.4785156, -17.7539062\n    test 9 philam: 1.1428157, -0.3098641\n    test 10 copy(<class 'type'>): (<class 'pygeodesy.geohash.Geohash'>, True)\n    test 11 Geohash.copy(): (<class 'pygeodesy.geohash.Geohash'>, True)\n    test 12 Geohash: geehpbpbp\n    test 13 toLatLon: 65.390625°N, 017.929689°W\n    test 14 latlon: 65.390625, -17.929689\n    test 15 ab: 1.1412817, -0.3129321\n    test 16 decode: ('65.390646', '-17.929709')\n    test 17 decode2: (65.390646, -17.929709)\n    test 18 decode_error: 2.145767e-05, 2.145767e-05\n    test 19 decode_error2: 2.145767e-05, 2.145767e-05\n    test 20 distance1To: 2758.887\n# imported pygeodesy.formy into geohash.py line 444\n    test 21 distance2To: 682.760\n    test 22 distance3To: 410.732\n    test 23 distance4To: 397.404\n    test 24 distance5To: 397.404\n    test 25 sizes: 4.8, 4.8\n    test 26 copy(<class 'type'>): (<class 'pygeodesy.geohash.Geohash'>, True)\n    test 27 Geohash.copy(): (<class 'pygeodesy.geohash.Geohash'>, True)\n    test 28 N: geehpbpbr\n    test 29 NE: geek00002\n    test 30 E: geek00000\n    test 31 SE: gee7bpbpb\n    test 32 S: gee5zzzzz\n    test 33 SW: gee5zzzzy\n    test 34 W: geehpbpbn\n    test 35 NW: geehpbpbq\n    test 36 N: geehpbpbr\n    test 37 NE: geek00002\n    test 38 E: geek00000\n    test 39 SE: gee7bpbpb\n    test 40 S: gee5zzzzz\n    test 41 SW: gee5zzzzy\n    test 42 W: geehpbpbn\n    test 43 NW: geehpbpbq\n    test 44 N: geehpbpbr\n    test 45 NE: geek00002\n    test 46 E: geek00000\n    test 47 SE: gee7bpbpb\n    test 48 S: gee5zzzzz\n    test 49 SW: gee5zzzzy\n    test 50 W: geehpbpbn\n    test 51 NW: geehpbpbq\n    test 52 N: geehpbpbr\n    test 53 NE: geek00002\n    test 54 E: geek00000\n    test 55 SE: gee7bpbpb\n    test 56 S: gee5zzzzz\n    test 57 SW: gee5zzzzy\n    test 58 W: geehpbpbn\n    test 59 NW: geehpbpbq\n\n    test 60 bounds: 52.20428467, 0.11810303, 52.20565796, 0.11947632\n    test 61 decode: 52.205, 0.1188\n    test 62 encode-decode: u120fxw\n    test 63 encode-decode: geek\n    test 64 encode-decode: fur\n    test 65 encode-decode: geehpbpbp\n    test 66 encode-decode: u4pruydqqvj8\n    test 67 encode-decode: bgr96qxvpd46\n    test 68 encode-decode: 0123456789\n    test 69 encode-decode: zzzzzz\n    test 70 Geohash: u4pruydq\n    test 71 N.E.S.W: True\n    test 72 E.S.W.N: True\n    test 73 S.W.N.E: True\n    test 74 W.N.E.S: True\n    test 75 N.E.S.S.W.W.N.N.E.S: True\n    test 76 Geohash: u4pruydqq\n    test 77 N.E.S.W: True\n    test 78 E.S.W.N: True\n    test 79 S.W.N.E: True\n    test 80 W.N.E.S: True\n    test 81 N.E.S.S.W.W.N.N.E.S: True\n    test 82 Geohash: u4pruydqqv\n    test 83 N.E.S.W: True\n    test 84 E.S.W.N: True\n    test 85 S.W.N.E: True\n    test 86 W.N.E.S: True\n    test 87 N.E.S.S.W.W.N.N.E.S: True\n    test 88 Geohash: u4pruydqqvj\n    test 89 N.E.S.W: True\n    test 90 E.S.W.N: True\n    test 91 S.W.N.E: True\n    test 92 W.N.E.S: True\n    test 93 N.E.S.S.W.W.N.N.E.S: True\n    test 94 Geohash: u4pruydqqvj8\n    test 95 N.E.S.W: True\n    test 96 E.S.W.N: True\n    test 97 S.W.N.E: True\n    test 98 W.N.E.S: True\n    test 99 N.E.S.S.W.W.N.N.E.S: True\n\n    test 100 encode: u120fxw\n    test 101 decode: ('52.205', '0.1188')\n    test 102 decode2: (52.205, 0.1188)\n    test 103 decode_error: 6.866455e-04, 6.866455e-04\n    test 104 decode_error2: 6.866455e-04, 6.866455e-04\n    test 105 distance_: 486.710\n    test 106 distance2: 3.374\n    test 107 distance3: 2.992\n    test 108 distance4: 2.798\n    test 109 distance5: 2.798\n    test 110 sizes: 153.0, 153.0\n    test 111 sizes3: 153.0, 153.0, 86.3\n\n    test 112 Geohash: u336xv\n    test 113 encode: u336xv\n    test 114 equal: True\n    test 115 sizes: 610.0, 1220.0\n    test 116 sizes3: 610.0, 1220.0, 486.7\n    test 117 encode: fur\n    test 118 decode: ('69.6', '-45.7')\n    test 119 decode: ('70.3', '-51')\n    test 120 decode: ('68', '-68')\n    test 121 decode_error2: (0.703125, 0.703125)\n    test 122 decode_error2: (2.8125, 5.625)\n    test 123 decode_error2: (22.5, 22.5)\n    test 124 encode: ezs42e44yx96\n    test 125 decode: ('42.60000003', '-5.59999997')\n    test 126 encode: ezs42\n    test 127 decode: ('42.605', '-5.603')\n    test 128 distance1: 503442.4\n    test 129 distance2: 303317.6\n    test 130 distance3: 185425.4\n    test 131 distance4: 179940.1\n    test 132 distance5: 179940.1\n\n    test 133 precision: 0  FAILED, KNOWN, expected 1\n    test 134 resolution: 360.0, 180.0\n    test 135 inferred: w\n    test 136 precision: 1\n    test 137 resolution: 45.0, 45.0\n    test 138 inferred: wp\n    test 139 precision: 2\n    test 140 resolution: 11.25, 5.625\n    test 141 inferred: wpy\n    test 142 precision: 3\n    test 143 resolution: 1.4062, 1.4062\n    test 144 inferred: wpy6\n    test 145 precision: 4\n    test 146 resolution: 0.35156, 0.17578\n    test 147 inferred: wpy6kc\n    test 148 precision: 5\n    test 149 resolution: 0.043945, 0.043945\n    test 150 inferred: wpy6kcc\n    test 151 precision: 6\n    test 152 resolution: 0.0109863, 0.0054932\n    test 153 inferred: wpy6kccw\n    test 154 precision: 7\n    test 155 resolution: 0.00137329, 0.00137329\n    test 156 inferred: wpy6kccwe4\n    test 157 precision: 8\n    test 158 resolution: 0.000343323, 0.000171661\n    test 159 inferred: wpy6kccwe4q\n    test 160 precision: 9\n    test 161 resolution: 0.0000429153, 0.0000429153\n    test 162 inferred: wpy6kccwe4qr\n    test 163 precision: 10\n    test 164 resolution: 0.00001072884, 0.00000536442\n    test 165 inferred: wpy6kccwe4qr\n    test 166 precision: 11\n    test 167 resolution: 0.000001341105, 0.000001341105\n    test 168 inferred: wpy6kccwe4qr\n    test 169 precision: 12\n    test 170 resolution: 0.0000003352761, 0.0000001676381\n    test 171 inferred: wpy6kccwe4qr\n    test 172 precision: 13  FAILED, KNOWN, expected 12\n    test 173 resolution: 0.00000033527613, 0.00000016763806\n    test 174 inferred: wpy6kccwe4qr\n\n    test 175 precision: 12\n    test 176 ndigits: None\n    test 177 encoded: tuvz4p141zc1\n    test 178 encoded: tuvz4p141zc1\n    test 179 encoded: True\n    test 180 encoded: tuvz4p141zc1\n    test 181 encoded: True\n    test 182 decoded: (27.988056, 86.925278)\n    test 183 decoded: (27.988056, 86.925278)\n    test 184 decoded: True\n    test 185 len: 1\n    test 186 len2: (1, 1)\n\n    test 187 precision: 12\n    test 188 ndigits: 12\n    test 189 encoded: tuvz4p141zc1\n    test 190 encoded: tuvz4p141zc1\n    test 191 encoded: True\n    test 192 encoded: tuvz4p141zc1\n    test 193 encoded: True\n    test 194 decoded: (27.988056, 86.925278)\n    test 195 decoded: (27.988056, 86.925278)\n    test 196 decoded: True\n    test 197 len: 1\n    test 198 len2: (1, 1)\n\n    7 of 198 testGeohash.py tests (3.5%) FAILED, incl. 2 KNOWN plus 5 DeprecationWarnings (pygeodesy 26.3.26 Python 3.14.3 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 3.501 ms\nrunning /Library/Framewo....n3.14 -W default ~/PyGeodesy/test/testGeoids.py\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.fstr from .streprs by testGeoids.py line 17\n# lazily imported pygeodesy.len2 from .basics by testGeoids.py line 17\n# lazily imported pygeodesy.egmGeoidHeights from .geoids by testGeoids.py line 17\n# lazily imported pygeodesy.Fwelford from .fstats by testGeoids.py line 17\n# lazily imported pygeodesy.GeoidEGM96 from .geoids by testGeoids.py line 17\n# lazily imported pygeodesy.GeoidError from .geoids by testGeoids.py line 17\n# lazily imported pygeodesy.GeoidG2012B from .geoids by testGeoids.py line 17\n# lazily imported pygeodesy.GeoidKarney from .geoids by testGeoids.py line 17\n# lazily imported pygeodesy.GeoidPGM from .geoids by testGeoids.py line 17\n# lazily imported pygeodesy.LatLon_ from .points by testGeoids.py line 17\n# lazily imported pygeodesy.RangeError from .errors by testGeoids.py line 17\n# lazily imported pygeodesy.reprs from .streprs by testGeoids.py line 17\n\n    testing testGeoids.py 26.01.21 isLazy=3\n    test 1 GeoidKarney('egm96-5.pgm').height(-76.981, 34.17) kind 2: 11.422  FAILED, KNOWN, expected 11.423\n    test 2 GeoidKarney('egm96-5.pgm').height(79.695, 88.806) kind 2: 0.887  FAILED, KNOWN, expected 0.892\n    test 3 GeoidKarney('egm96-5.pgm').height(-15.245, 168.748) kind 2: 65.226\n    test 4 GeoidKarney('egm96-5.pgm').height(-19.379, 15.855) kind 2: 24.460  FAILED, KNOWN, expected 24.463\n    test 5 GeoidKarney('egm96-5.pgm').height(43.378, -130.552) kind 2: -29.682\n    test 6 GeoidKarney('egm96-5.pgm').height(-16.075, 21.795) kind 2: 10.503\n    test 7 GeoidKarney('egm96-5.pgm').height(-11.256, -73.75) kind 2: 29.325  FAILED, KNOWN, expected 29.326\n    test 8 GeoidKarney('egm96-5.pgm').height(69.017, -15.921) kind 2: 60.423  FAILED, KNOWN, expected 60.424\n    test 9 GeoidKarney('egm96-5.pgm').height(2.221, 139.739) kind 2: 68.997  FAILED, KNOWN, expected 68.996\n    test 10 GeoidKarney('egm96-5.pgm').height(-9.097, 119.142) kind 2: 36.295  FAILED, KNOWN, expected 36.287\n    test 11 GeoidKarney('egm96-5.pgm').height(-28.524, -22.192) kind 2: 6.627  FAILED, KNOWN, expected 6.626\n    test 12 GeoidKarney('egm96-5.pgm').height(12.272, -136.424) kind 2: -20.860\n    test 13 GeoidKarney('egm96-5.pgm').height(-15.203, -85.604) kind 2: -3.266  FAILED, KNOWN, expected -3.267\n    test 14 GeoidKarney('egm96-5.pgm').height(-63.736, -77.17) kind 2: -1.296  FAILED, KNOWN, expected -1.294\n    test 15 GeoidKarney('egm96-5.pgm').height(-48.771, -90.102) kind 2: -2.322\n    test 16 GeoidKarney('egm96-5.pgm').height(-0.179, -126.368) kind 2: -17.556  FAILED, KNOWN, expected -17.557\n    test 17 GeoidKarney('egm96-5.pgm').height(1.586, -128.887) kind 2: -16.594\n    test 18 GeoidKarney('egm96-5.pgm').height(-48.781, -2.684) kind 2: 24.455  FAILED, KNOWN, expected 24.453\n    test 19 GeoidKarney('egm96-5.pgm').height(-49.092, 136.862) kind 2: -18.591  FAILED, KNOWN, expected -18.592\n    test 20 GeoidKarney('egm96-5.pgm').height(47.732, 17.552) kind 2: 44.051  FAILED, KNOWN, expected 44.049\n    test 21 GeoidKarney('egm96-5.pgm').height(-49.11, 85.706) kind 2: 18.582  FAILED, KNOWN, expected 18.581\n    test 22 GeoidKarney('egm96-5.pgm').height(-49.162, 40.321) kind 2: 44.290  FAILED, KNOWN, expected 44.289\n    test 23 GeoidKarney('egm96-5.pgm').height(3.498, 158.118) kind 2: 49.821  FAILED, KNOWN, expected 49.816\n    test 24 GeoidKarney('egm96-5.pgm').height(-35.616, 122.648) kind 2: -36.108  FAILED, KNOWN, expected -36.114\n    test 25 GeoidKarney('egm96-5.pgm').height(56.598, -96.114) kind 2: -41.046  FAILED, KNOWN, expected -41.048\n    test 26 GeoidKarney('egm96-5.pgm').height(-31.85, 149.121) kind 2: 26.457  FAILED, KNOWN, expected 26.456\n    test 27 GeoidKarney('egm96-5.pgm').height(-26.569, -177.792) kind 2: 49.309  FAILED, KNOWN, expected 49.317\n    test 28 GeoidKarney('egm96-5.pgm').height(76.735, -65.753) kind 2: 20.706  FAILED, KNOWN, expected 20.714\n    test 29 GeoidKarney('egm96-5.pgm').height(-21.404, -122.268) kind 2: -7.363  FAILED, KNOWN, expected -7.362\n    test 30 GeoidKarney('egm96-5.pgm').height(-77.133, -65.474) kind 2: -16.499  FAILED, KNOWN, expected -16.492\n    test 31 GeoidKarney('egm96-5.pgm').height(-58.812, 2.276) kind 2: 18.108  FAILED, KNOWN, expected 18.110\n    test 32 GeoidKarney('egm96-5.pgm').height(4.415, 155.683) kind 2: 51.859  FAILED, KNOWN, expected 51.858\n    test 33 GeoidKarney('egm96-5.pgm').height(-28.146, 107.081) kind 2: -38.979  FAILED, KNOWN, expected -38.981\n    test 34 GeoidKarney('egm96-5.pgm').height(-10.551, -126.69) kind 2: -9.912  FAILED, KNOWN, expected -9.913\n    test 35 GeoidKarney('egm96-5.pgm').height(-25.444, -103.337) kind 2: -2.827  FAILED, KNOWN, expected -2.828\n    test 36 GeoidKarney('egm96-5.pgm').height(24.436, 46.159) kind 2: -5.719\n    test 37 GeoidKarney('egm96-5.pgm').height(-72.889, 37.107) kind 2: 22.420  FAILED, KNOWN, expected 22.426\n    test 38 GeoidKarney('egm96-5.pgm').height(-19.629, 13.245) kind 2: 24.546  FAILED, KNOWN, expected 24.545\n    test 39 GeoidKarney('egm96-5.pgm').height(-7.602, 171.265) kind 2: 40.651  FAILED, KNOWN, expected 40.652\n    test 40 GeoidKarney('egm96-5.pgm').height(-45.364, -1.876) kind 2: 22.380  FAILED, KNOWN, expected 22.383\n    test 41 GeoidKarney('egm96-5.pgm').height(-7.292, -69.18) kind 2: 22.185  FAILED, KNOWN, expected 22.182\n    test 42 GeoidKarney('egm96-5.pgm').height(-31.566, -166.689) kind 2: 14.927  FAILED, KNOWN, expected 14.930\n    test 43 GeoidKarney('egm96-5.pgm').height(-82.751, -162.085) kind 2: -47.093  FAILED, KNOWN, expected -47.094\n    test 44 GeoidKarney('egm96-5.pgm').height(-40.7, 99.466) kind 2: -18.421\n    test 45 GeoidKarney('egm96-5.pgm').height(48.676, 39.69) kind 2: 10.060  FAILED, KNOWN, expected 10.055\n    test 46 GeoidKarney('egm96-5.pgm').height(74.817, -78.404) kind 2: 5.784  FAILED, KNOWN, expected 5.786\n    test 47 GeoidKarney('egm96-5.pgm').height(-81.032, -63.865) kind 2: -22.840  FAILED, KNOWN, expected -22.838\n    test 48 GeoidKarney('egm96-5.pgm').height(74.022, 9.432) kind 2: 42.988  FAILED, KNOWN, expected 42.989\n    test 49 GeoidKarney('egm96-5.pgm').height(-75.071, 17.579) kind 2: 15.351  FAILED, KNOWN, expected 15.353\n    test 50 GeoidKarney('egm96-5.pgm').height(-12.546, -54.851) kind 2: -6.341  FAILED, KNOWN, expected -6.337\n    test 51 GeoidKarney('egm96-5.pgm').height(-13.621, 42.408) kind 2: -25.551  FAILED, KNOWN, expected -25.555\n    test 52 GeoidKarney('egm96-5.pgm').height(-2.266, -91.951) kind 2: -9.921  FAILED, KNOWN, expected -9.923\n    test 53 GeoidKarney('egm96-5.pgm').height(-18.672, 42.547) kind 2: -10.861  FAILED, KNOWN, expected -10.852\n    test 54 GeoidKarney('egm96-5.pgm').height(-41.44, 157.413) kind 2: -0.136  FAILED, KNOWN, expected -0.135\n    test 55 GeoidKarney('egm96-5.pgm').height(53.686, -79.375) kind 2: -43.808  FAILED, KNOWN, expected -43.809\n    test 56 GeoidKarney('egm96-5.pgm').height(39.26, -30.351) kind 2: 57.151  FAILED, KNOWN, expected 57.150\n    test 57 GeoidKarney('egm96-5.pgm').height(-51.699, -141.493) kind 2: -17.660  FAILED, KNOWN, expected -17.657\n    test 58 GeoidKarney('egm96-5.pgm').height(36.585, 4.515) kind 2: 46.356  FAILED, KNOWN, expected 46.358\n    test 59 GeoidKarney('egm96-5.pgm').height(39.642, -54.659) kind 2: -14.404\n    test 60 GeoidKarney('egm96-5.pgm').height(59.761, 166.567) kind 2: 11.239  FAILED, KNOWN, expected 11.242\n    test 61 GeoidKarney('egm96-5.pgm').height(51.83, 13.357) kind 2: 42.236  FAILED, KNOWN, expected 42.237\n    test 62 GeoidKarney('egm96-5.pgm').height(-36.531, -175.431) kind 2: 22.148  FAILED, KNOWN, expected 22.147\n    test 63 GeoidKarney('egm96-5.pgm').height(-37.08, 125.264) kind 2: -33.395  FAILED, KNOWN, expected -33.396\n    test 64 GeoidKarney('egm96-5.pgm').height(-68.651, 92.732) kind 2: 7.965  FAILED, KNOWN, expected 7.961\n    test 65 GeoidKarney('egm96-5.pgm').height(35.087, 45.336) kind 2: 7.228  FAILED, KNOWN, expected 7.229\n    test 66 GeoidKarney('egm96-5.pgm').height(-61.356, -169.379) kind 2: -44.289  FAILED, KNOWN, expected -44.292\n    test 67 GeoidKarney('egm96-5.pgm').height(-36.955, 179.12) kind 2: 21.872  FAILED, KNOWN, expected 21.875\n    test 68 GeoidKarney('egm96-5.pgm').height(10.248, -6.714) kind 2: 28.935  FAILED, KNOWN, expected 28.933\n    test 69 GeoidKarney('egm96-5.pgm').height(36.868, 84.602) kind 2: -41.255  FAILED, KNOWN, expected -41.238\n    test 70 GeoidKarney('egm96-5.pgm').height(28.637, 88.933) kind 2: -31.334  FAILED, KNOWN, expected -31.331\n    test 71 GeoidKarney('egm96-5.pgm').height(54.811, -99.968) kind 2: -32.702\n    test 72 GeoidKarney('egm96-5.pgm').height(7.611, 145.911) kind 2: 60.118  FAILED, KNOWN, expected 60.117\n    test 73 GeoidKarney('egm96-5.pgm').height(59.412, 170.102) kind 2: 6.456  FAILED, KNOWN, expected 6.457\n    test 74 GeoidKarney('egm96-5.pgm').height(-61.469, 126.144) kind 2: -31.959  FAILED, KNOWN, expected -31.961\n    test 75 GeoidKarney('egm96-5.pgm').height(18.514, -137.083) kind 2: -26.572  FAILED, KNOWN, expected -26.571\n    test 76 GeoidKarney('egm96-5.pgm').height(7.854, -126.799) kind 2: -29.761  FAILED, KNOWN, expected -29.760\n    test 77 GeoidKarney('egm96-5.pgm').height(47.489, 134.183) kind 2: 21.980\n    test 78 GeoidKarney('egm96-5.pgm').height(-34.144, -11.922) kind 2: 16.849\n    test 79 GeoidKarney('egm96-5.pgm').height(-58.389, 117.458) kind 2: -20.922  FAILED, KNOWN, expected -20.923\n    test 80 GeoidKarney('egm96-5.pgm').height(9.773, 95.846) kind 2: -42.745  FAILED, KNOWN, expected -42.749\n    test 81 GeoidKarney('egm96-5.pgm').height(-53.12, 136.994) kind 2: -21.839  FAILED, KNOWN, expected -21.841\n    test 82 GeoidKarney('egm96-5.pgm').height(-50.35, 0.075) kind 2: 25.482\n    test 83 GeoidKarney('egm96-5.pgm').height(31.438, -170.879) kind 2: -8.845  FAILED, KNOWN, expected -8.847\n    test 84 GeoidKarney('egm96-5.pgm').height(37.541, -153.024) kind 2: -19.600  FAILED, KNOWN, expected -19.604\n    test 85 GeoidKarney('egm96-5.pgm').height(27.586, 2.444) kind 2: 25.672  FAILED, KNOWN, expected 25.668\n    test 86 GeoidKarney('egm96-5.pgm').height(-26.139, -106.201) kind 2: -3.772\n    test 87 GeoidKarney('egm96-5.pgm').height(-33.426, -14.84) kind 2: 17.747  FAILED, KNOWN, expected 17.748\n    test 88 GeoidKarney('egm96-5.pgm').height(39.586, -153.019) kind 2: -17.838  FAILED, KNOWN, expected -17.839\n    test 89 GeoidKarney('egm96-5.pgm').height(-60.79, -2.578) kind 2: 14.293  FAILED, KNOWN, expected 14.292\n    test 90 GeoidKarney('egm96-5.pgm').height(-20.131, 21.975) kind 2: 16.529\n    test 91 GeoidKarney('egm96-5.pgm').height(75.649, 99.921) kind 2: -8.230  FAILED, KNOWN, expected -8.229\n    test 92 GeoidKarney('egm96-5.pgm').height(-0.385, -23.788) kind 2: 9.828  FAILED, KNOWN, expected 9.830\n    test 93 GeoidKarney('egm96-5.pgm').height(-51.56, -50.327) kind 2: 6.213  FAILED, KNOWN, expected 6.215\n    test 94 GeoidKarney('egm96-5.pgm').height(-43.129, -167.271) kind 2: -2.957  FAILED, KNOWN, expected -2.960\n    test 95 GeoidKarney('egm96-5.pgm').height(46.374, 71.948) kind 2: -42.326  FAILED, KNOWN, expected -42.323\n    test 96 GeoidKarney('egm96-5.pgm').height(-22.783, 140.657) kind 2: 38.352  FAILED, KNOWN, expected 38.356\n    test 97 GeoidKarney('egm96-5.pgm').height(-12.056, 122.804) kind 2: 34.242  FAILED, KNOWN, expected 34.259\n    test 98 GeoidKarney('egm96-5.pgm').height(30.127, 94.738) kind 2: -37.390  FAILED, KNOWN, expected -37.397\n    test 99 GeoidKarney('egm96-5.pgm').height(46.296, -174.479) kind 2: -2.015  FAILED, KNOWN, expected -2.016\n    test 100 GeoidKarney('egm96-5.pgm').height(34.99, 15.052) kind 2: 33.915  FAILED, KNOWN, expected 33.912\n    test 101 GeoidKarney('egm96-5.pgm').height(-51.287, 90.565) kind 2: 12.676\n    test 102 GeoidKarney('egm96-5.pgm').height(34.217, 141.302) kind 2: 15.729  FAILED, KNOWN, expected 15.692\n    test 103 GeoidKarney('egm96-5.pgm').height(-40.423, -142.787) kind 2: -11.117\n    test 104 GeoidKarney('egm96-5.pgm').height(-17.854, -170.216) kind 2: 27.443  FAILED, KNOWN, expected 27.437\n    test 105 GeoidKarney('egm96-5.pgm').height(47.803, 112.701) kind 2: -23.893  FAILED, KNOWN, expected -23.894\n    test 106 GeoidKarney('egm96-5.pgm').height(-23.276, 133.454) kind 2: 18.749  FAILED, KNOWN, expected 18.766\n    test 107 GeoidKarney('egm96-5.pgm').height(-26.884, -36.571) kind 2: -7.452\n    test 108 GeoidKarney('egm96-5.pgm').height(-37.106, 31.128) kind 2: 30.141  FAILED, KNOWN, expected 30.143\n    test 109 GeoidKarney('egm96-5.pgm').height(-75.363, -173.674) kind 2: -61.176  FAILED, KNOWN, expected -61.172\n    test 110 GeoidKarney('egm96-5.pgm').height(-18.305, 69.016) kind 2: -24.892  FAILED, KNOWN, expected -24.890\n    test 111 GeoidKarney('egm96-5.pgm').height(39.527, 23.58) kind 2: 39.523  FAILED, KNOWN, expected 39.519\n    test 112 GeoidKarney('egm96-5.pgm').height(68.903, 30.97) kind 2: 19.417  FAILED, KNOWN, expected 19.419\n    test 113 GeoidKarney('egm96-5.pgm').height(53.937, 168.318) kind 2: 2.069\n    test 114 GeoidKarney('egm96-5.pgm').height(-38.6, 64.812) kind 2: 25.048\n    test 115 GeoidKarney('egm96-5.pgm').height(-41.396, -69.739) kind 2: 22.547\n    test 116 GeoidKarney('egm96-5.pgm').height(50.158, 72.319) kind 2: -34.359\n    test 117 GeoidKarney('egm96-5.pgm').height(27.692, 176.153) kind 2: -5.454  FAILED, KNOWN, expected -5.453\n    test 118 GeoidKarney('egm96-5.pgm').height(-48.419, 170.454) kind 2: -6.802  FAILED, KNOWN, expected -6.804\n    test 119 GeoidKarney('egm96-5.pgm').height(-65.346, -124.976) kind 2: -35.053  FAILED, KNOWN, expected -35.054\n    test 120 GeoidKarney('egm96-5.pgm').height(-51.873, 167.266) kind 2: -15.417  FAILED, KNOWN, expected -15.418\n    test 121 GeoidKarney('egm96-5.pgm').height(-7.263, 84.308) kind 2: -79.556  FAILED, KNOWN, expected -79.557\n    test 122 GeoidKarney('egm96-5.pgm').height(-1.461, -105.458) kind 2: -16.894\n    test 123 GeoidKarney('egm96-5.pgm').height(7.684, 161.873) kind 2: 36.213  FAILED, KNOWN, expected 36.215\n    test 124 GeoidKarney('egm96-5.pgm').height(-31.475, -158.52) kind 2: 3.524  FAILED, KNOWN, expected 3.523\n    test 125 GeoidKarney('egm96-5.pgm').height(-36.187, 62.917) kind 2: 23.796  FAILED, KNOWN, expected 23.797\n    test 126 GeoidKarney('egm96-5.pgm').height(16.003, 141.687) kind 2: 51.587  FAILED, KNOWN, expected 51.586\n    test 127 GeoidKarney('egm96-5.pgm').height(30.182, 86.261) kind 2: -30.131\n    test 128 GeoidKarney('egm96-5.pgm').height(-77.304, 159.498) kind 2: -51.853  FAILED, KNOWN, expected -51.848\n    test 129 GeoidKarney('egm96-5.pgm').height(39.536, 139.795) kind 2: 37.200  FAILED, KNOWN, expected 37.192\n    test 130 GeoidKarney('egm96-5.pgm').height(8.569, 134.618) kind 2: 63.583  FAILED, KNOWN, expected 63.597\n    test 131 GeoidKarney('egm96-5.pgm').height(14.473, 90.596) kind 2: -62.636\n    test 132 GeoidKarney('egm96-5.pgm').height(-13.138, -99.589) kind 2: -8.717\n    test 133 GeoidKarney('egm96-5.pgm').height(34.212, -26.307) kind 2: 40.649  FAILED, KNOWN, expected 40.645\n    test 134 GeoidKarney('egm96-5.pgm').height(21.89, 76.371) kind 2: -60.730  FAILED, KNOWN, expected -60.729\n    test 135 GeoidKarney('egm96-5.pgm').height(29.793, 120.487) kind 2: 8.784  FAILED, KNOWN, expected 8.783\n    test 136 GeoidKarney('egm96-5.pgm').height(15.724, 122.714) kind 2: 31.569  FAILED, KNOWN, expected 31.523\n    test 137 GeoidKarney('egm96-5.pgm').height(-66.208, -78.499) kind 2: -6.249  FAILED, KNOWN, expected -6.250\n    test 138 GeoidKarney('egm96-5.pgm').height(-39.507, 55.809) kind 2: 32.599\n    test 139 GeoidKarney('egm96-5.pgm').height(28.159, 51.476) kind 2: -24.531  FAILED, KNOWN, expected -24.536\n    test 140 GeoidKarney('egm96-5.pgm').height(-36.207, 120.205) kind 2: -38.863  FAILED, KNOWN, expected -38.869\n    test 141 GeoidKarney('egm96-5.pgm').height(30.575, -99.998) kind 2: -23.214  FAILED, KNOWN, expected -23.213\n    test 142 GeoidKarney('egm96-5.pgm').height(-16.993, 37.136) kind 2: -11.824\n    test 143 GeoidKarney('egm96-5.pgm').height(-11.477, 12.039) kind 2: 16.712  FAILED, KNOWN, expected 16.709\n    test 144 GeoidKarney('egm96-5.pgm').height(30.428, -144.765) kind 2: -22.380  FAILED, KNOWN, expected -22.379\n    test 145 GeoidKarney('egm96-5.pgm').height(-17.44, -92.424) kind 2: -4.941\n    test 146 GeoidKarney('egm96-5.pgm').height(40.203, 143.43) kind 2: 19.382  FAILED, KNOWN, expected 19.394\n    test 147 GeoidKarney('egm96-5.pgm').height(-37.098, -106.574) kind 2: -9.381\n    test 148 GeoidKarney('egm96-5.pgm').height(54.62, -68.413) kind 2: -23.319\n    test 149 GeoidKarney('egm96-5.pgm').height(-31.633, 148.182) kind 2: 24.470  FAILED, KNOWN, expected 24.468\n    test 150 GeoidKarney('egm96-5.pgm').height(-56.07, -141.407) kind 2: -21.762  FAILED, KNOWN, expected -21.761\n    test 151 GeoidKarney('egm96-5.pgm').height(-8.195, -52.691) kind 2: -18.798\n    test 152 GeoidKarney('egm96-5.pgm').height(17.851, 24.749) kind 2: 12.611  FAILED, KNOWN, expected 12.612\n    test 153 GeoidKarney('egm96-5.pgm').height(0.349, -108.333) kind 2: -19.708  FAILED, KNOWN, expected -19.706\n    test 154 GeoidKarney('egm96-5.pgm').height(15.038, 126.191) kind 2: 45.794  FAILED, KNOWN, expected 45.792\n    test 155 GeoidKarney('egm96-5.pgm').height(-21.111, -123.696) kind 2: -8.408  FAILED, KNOWN, expected -8.406\n    test 156 GeoidKarney('egm96-5.pgm').height(30.947, 173.002) kind 2: -8.366  FAILED, KNOWN, expected -8.367\n    test 157 GeoidKarney('egm96-5.pgm').height(-10.698, -144.091) kind 2: -2.026  FAILED, KNOWN, expected -2.025\n    test 158 GeoidKarney('egm96-5.pgm').height(-29.412, 124.753) kind 2: -16.569\n    test 159 GeoidKarney('egm96-5.pgm').height(38.224, -137.189) kind 2: -35.434  FAILED, KNOWN, expected -35.435\n    test 160 GeoidKarney('egm96-5.pgm').height(36.064, -132.409) kind 2: -39.009\n    test 161 GeoidKarney('egm96-5.pgm').height(29.975, 178.076) kind 2: -6.921\n    test 162 GeoidKarney('egm96-5.pgm').height(-21.346, 169.26) kind 2: 50.811  FAILED, KNOWN, expected 50.795\n    test 163 GeoidKarney('egm96-5.pgm').height(49.282, -152.934) kind 2: 1.069  FAILED, KNOWN, expected 1.070\n    test 164 GeoidKarney('egm96-5.pgm').height(16.349, -99.962) kind 2: -14.198  FAILED, KNOWN, expected -14.214\n    test 165 GeoidKarney('egm96-5.pgm').height(-14.293, -167.34) kind 2: 17.603  FAILED, KNOWN, expected 17.600\n    test 166 GeoidKarney('egm96-5.pgm').height(47.166, -38.523) kind 2: 44.803  FAILED, KNOWN, expected 44.804\n    test 167 GeoidKarney('egm96-5.pgm').height(-58.911, 114.347) kind 2: -17.924  FAILED, KNOWN, expected -17.922\n    test 168 GeoidKarney('egm96-5.pgm').height(-9.055, 111.294) kind 2: 10.681  FAILED, KNOWN, expected 10.662\n    test 169 GeoidKarney('egm96-5.pgm').height(18.391, 29.692) kind 2: 7.672  FAILED, KNOWN, expected 7.670\n    test 170 GeoidKarney('egm96-5.pgm').height(-15.074, 22.153) kind 2: 8.622  FAILED, KNOWN, expected 8.623\n    test 171 GeoidKarney('egm96-5.pgm').height(-4.235, 62.001) kind 2: -60.723\n    test 172 GeoidKarney('egm96-5.pgm').height(15.171, -86.583) kind 2: 3.818\n    test 173 GeoidKarney('egm96-5.pgm').height(79.254, 112.116) kind 2: -1.870  FAILED, KNOWN, expected -1.871\n    test 174 GeoidKarney('egm96-5.pgm').height(15.947, 156.093) kind 2: 30.642  FAILED, KNOWN, expected 30.633\n    test 175 GeoidKarney('egm96-5.pgm').height(68.371, -177.382) kind 2: 2.801\n    test 176 GeoidKarney('egm96-5.pgm').height(-41.931, -72.093) kind 2: 19.858  FAILED, KNOWN, expected 19.859\n    test 177 GeoidKarney('egm96-5.pgm').height(-1.193, -143.133) kind 2: 5.347  FAILED, KNOWN, expected 5.348\n    test 178 GeoidKarney('egm96-5.pgm').height(-37.006, 154.513) kind 2: 9.940  FAILED, KNOWN, expected 9.941\n    test 179 GeoidKarney('egm96-5.pgm').height(-22.148, 9.938) kind 2: 22.322  FAILED, KNOWN, expected 22.321\n    test 180 GeoidKarney('egm96-5.pgm').height(24.329, 109.044) kind 2: -24.136  FAILED, KNOWN, expected -24.135\n    test 181 GeoidKarney('egm96-5.pgm').height(-54.878, 114.691) kind 2: -17.680  FAILED, KNOWN, expected -17.679\n    test 182 GeoidKarney('egm96-5.pgm').height(45.601, -80.458) kind 2: -37.149  FAILED, KNOWN, expected -37.150\n    test 183 GeoidKarney('egm96-5.pgm').height(2.372, 58.974) kind 2: -61.158\n    test 184 GeoidKarney('egm96-5.pgm').height(15.937, 165.854) kind 2: 20.600  FAILED, KNOWN, expected 20.602\n    test 185 GeoidKarney('egm96-5.pgm').height(4.889, -24.213) kind 2: 13.054  FAILED, KNOWN, expected 13.055\n    test 186 GeoidKarney('egm96-5.pgm').height(-11.392, 179.558) kind 2: 40.138  FAILED, KNOWN, expected 40.132\n    test 187 GeoidKarney('egm96-5.pgm').height(58.246, 4.862) kind 2: 43.263\n    test 188 GeoidKarney('egm96-5.pgm').height(34.302, -109.109) kind 2: -23.129  FAILED, KNOWN, expected -23.126\n    test 189 GeoidKarney('egm96-5.pgm').height(-58.196, 117.306) kind 2: -20.677  FAILED, KNOWN, expected -20.678\n    test 190 GeoidKarney('egm96-5.pgm').height(44.5, 173.769) kind 2: -8.531  FAILED, KNOWN, expected -8.529\n    test 191 GeoidKarney('egm96-5.pgm').height(-28.863, -139.775) kind 2: -8.669  FAILED, KNOWN, expected -8.666\n    test 192 GeoidKarney('egm96-5.pgm').height(19.507, -96.099) kind 2: -12.798  FAILED, KNOWN, expected -12.796\n    test 193 GeoidKarney('egm96-5.pgm').height(-42.488, -73.907) kind 2: 15.770  FAILED, KNOWN, expected 15.773\n    test 194 GeoidKarney('egm96-5.pgm').height(46.138, -141.429) kind 2: -19.955  FAILED, KNOWN, expected -19.954\n    test 195 GeoidKarney('egm96-5.pgm').height(60.507, 93.743) kind 2: -31.479  FAILED, KNOWN, expected -31.480\n    test 196 GeoidKarney('egm96-5.pgm').height(26.219, -145.434) kind 2: -17.428  FAILED, KNOWN, expected -17.429\n    test 197 GeoidKarney('egm96-5.pgm').height(-28.687, 3.37) kind 2: 24.037\n    test 198 GeoidKarney('egm96-5.pgm').height(-15.008, 117.45) kind 2: 4.522  FAILED, KNOWN, expected 4.520\n    test 199 GeoidKarney('egm96-5.pgm').height(40.71, 144.095) kind 2: 11.403  FAILED, KNOWN, expected 11.394\n    test 200 GeoidKarney('egm96-5.pgm').height(20.823, -173.611) kind 2: 5.676  FAILED, KNOWN, expected 5.679\n    test 201 GeoidKarney('egm96-5.pgm').height(16.776, -3.009) kind 2: 28.705  FAILED, KNOWN, expected 28.707\n    test 202 GeoidKarney('egm96-5.pgm').height(41.0, -95.0) kind 2: -30.261  FAILED, KNOWN, expected -30.262\n    test 203 GeoidKarney('egm96-5.pgm').height(49.0, -120.5) kind 2: -15.984\n    test 204 GeoidKarney('egm96-5.pgm').height(49.0, -103.5) kind 2: -18.636  FAILED, KNOWN, expected -18.635\n    test 205 GeoidKarney('egm96-5.pgm').height(49.0, -86.5) kind 2: -37.749\n    test 206 GeoidKarney('egm96-5.pgm').height(49.0, -69.5) kind 2: -26.691\n    test 207 GeoidKarney('egm96-5.pgm').height(33.0, -120.5) kind 2: -39.561\n    test 208 GeoidKarney('egm96-5.pgm').height(33.0, -103.5) kind 2: -22.563  FAILED, KNOWN, expected -22.562\n    test 209 GeoidKarney('egm96-5.pgm').height(33.0, -86.5) kind 2: -30.012\n    test 210 GeoidKarney('egm96-5.pgm').height(33.0, -69.5) kind 2: -48.039\n\n    test 211 GeoidKarney('egm96-5.pgm').height() kind 2, hits 0, eps max (in 0 FAILED): 0.046496\n    test 212 GeoidKarney('egm96-5.pgm').height() kind 2, hits 0, eps mean (of 210 total): 0.002766\n    test 213 GeoidKarney('egm96-5.pgm').height() kind 2, hits 0, eps stdev (of 210 total): 0.005116\n    test 214 GeoidKarney('egm96-5.pgm').toStr: GeoidKarney('egm96-5.pgm'): lowerleft(-90.0, -180.0, -29.535), upperright(90.0, 180.0, 13.605), center(0.0, 0.0, 17.163), highest(-8.167, 147.25, 85.422), lowest(4.667, 78.833, -107.043)\n\n    test 215 closed: True\n    test 216 copy(<class 'type'>): (<class 'pygeodesy.geoids.GeoidKarney'>, True)\n    test 217 GeoidKarney.copy(): (<class 'pygeodesy.geoids.GeoidKarney'>, True)\n    test 218 GeoidKarney('egm96-5.pgm').height(-76.981, 34.17) kind 3: 11.424  FAILED, KNOWN, expected 11.423\n    test 219 GeoidKarney('egm96-5.pgm').height(79.695, 88.806) kind 3: 0.892\n    test 220 GeoidKarney('egm96-5.pgm').height(-15.245, 168.748) kind 3: 65.225  FAILED, KNOWN, expected 65.226\n    test 221 GeoidKarney('egm96-5.pgm').height(-19.379, 15.855) kind 3: 24.464  FAILED, KNOWN, expected 24.463\n    test 222 GeoidKarney('egm96-5.pgm').height(43.378, -130.552) kind 3: -29.682\n    test 223 GeoidKarney('egm96-5.pgm').height(-16.075, 21.795) kind 3: 10.503\n    test 224 GeoidKarney('egm96-5.pgm').height(-11.256, -73.75) kind 3: 29.325  FAILED, KNOWN, expected 29.326\n    test 225 GeoidKarney('egm96-5.pgm').height(69.017, -15.921) kind 3: 60.423  FAILED, KNOWN, expected 60.424\n    test 226 GeoidKarney('egm96-5.pgm').height(2.221, 139.739) kind 3: 68.996\n    test 227 GeoidKarney('egm96-5.pgm').height(-9.097, 119.142) kind 3: 36.287\n    test 228 GeoidKarney('egm96-5.pgm').height(-28.524, -22.192) kind 3: 6.626\n    test 229 GeoidKarney('egm96-5.pgm').height(12.272, -136.424) kind 3: -20.861  FAILED, KNOWN, expected -20.860\n    test 230 GeoidKarney('egm96-5.pgm').height(-15.203, -85.604) kind 3: -3.267\n    test 231 GeoidKarney('egm96-5.pgm').height(-63.736, -77.17) kind 3: -1.295  FAILED, KNOWN, expected -1.294\n    test 232 GeoidKarney('egm96-5.pgm').height(-48.771, -90.102) kind 3: -2.323  FAILED, KNOWN, expected -2.322\n    test 233 GeoidKarney('egm96-5.pgm').height(-0.179, -126.368) kind 3: -17.555  FAILED, KNOWN, expected -17.557\n    test 234 GeoidKarney('egm96-5.pgm').height(1.586, -128.887) kind 3: -16.594\n    test 235 GeoidKarney('egm96-5.pgm').height(-48.781, -2.684) kind 3: 24.454  FAILED, KNOWN, expected 24.453\n    test 236 GeoidKarney('egm96-5.pgm').height(-49.092, 136.862) kind 3: -18.592\n    test 237 GeoidKarney('egm96-5.pgm').height(47.732, 17.552) kind 3: 44.048  FAILED, KNOWN, expected 44.049\n    test 238 GeoidKarney('egm96-5.pgm').height(-49.11, 85.706) kind 3: 18.582  FAILED, KNOWN, expected 18.581\n    test 239 GeoidKarney('egm96-5.pgm').height(-49.162, 40.321) kind 3: 44.290  FAILED, KNOWN, expected 44.289\n    test 240 GeoidKarney('egm96-5.pgm').height(3.498, 158.118) kind 3: 49.817  FAILED, KNOWN, expected 49.816\n    test 241 GeoidKarney('egm96-5.pgm').height(-35.616, 122.648) kind 3: -36.114\n    test 242 GeoidKarney('egm96-5.pgm').height(56.598, -96.114) kind 3: -41.047  FAILED, KNOWN, expected -41.048\n    test 243 GeoidKarney('egm96-5.pgm').height(-31.85, 149.121) kind 3: 26.456\n    test 244 GeoidKarney('egm96-5.pgm').height(-26.569, -177.792) kind 3: 49.317\n    test 245 GeoidKarney('egm96-5.pgm').height(76.735, -65.753) kind 3: 20.714\n    test 246 GeoidKarney('egm96-5.pgm').height(-21.404, -122.268) kind 3: -7.362\n    test 247 GeoidKarney('egm96-5.pgm').height(-77.133, -65.474) kind 3: -16.491  FAILED, KNOWN, expected -16.492\n    test 248 GeoidKarney('egm96-5.pgm').height(-58.812, 2.276) kind 3: 18.110\n    test 249 GeoidKarney('egm96-5.pgm').height(4.415, 155.683) kind 3: 51.858\n    test 250 GeoidKarney('egm96-5.pgm').height(-28.146, 107.081) kind 3: -38.979  FAILED, KNOWN, expected -38.981\n    test 251 GeoidKarney('egm96-5.pgm').height(-10.551, -126.69) kind 3: -9.913\n    test 252 GeoidKarney('egm96-5.pgm').height(-25.444, -103.337) kind 3: -2.828\n    test 253 GeoidKarney('egm96-5.pgm').height(24.436, 46.159) kind 3: -5.718  FAILED, KNOWN, expected -5.719\n    test 254 GeoidKarney('egm96-5.pgm').height(-72.889, 37.107) kind 3: 22.427  FAILED, KNOWN, expected 22.426\n    test 255 GeoidKarney('egm96-5.pgm').height(-19.629, 13.245) kind 3: 24.545\n    test 256 GeoidKarney('egm96-5.pgm').height(-7.602, 171.265) kind 3: 40.651  FAILED, KNOWN, expected 40.652\n    test 257 GeoidKarney('egm96-5.pgm').height(-45.364, -1.876) kind 3: 22.383\n    test 258 GeoidKarney('egm96-5.pgm').height(-7.292, -69.18) kind 3: 22.183  FAILED, KNOWN, expected 22.182\n    test 259 GeoidKarney('egm96-5.pgm').height(-31.566, -166.689) kind 3: 14.929  FAILED, KNOWN, expected 14.930\n    test 260 GeoidKarney('egm96-5.pgm').height(-82.751, -162.085) kind 3: -47.094\n    test 261 GeoidKarney('egm96-5.pgm').height(-40.7, 99.466) kind 3: -18.421\n    test 262 GeoidKarney('egm96-5.pgm').height(48.676, 39.69) kind 3: 10.055\n    test 263 GeoidKarney('egm96-5.pgm').height(74.817, -78.404) kind 3: 5.786\n    test 264 GeoidKarney('egm96-5.pgm').height(-81.032, -63.865) kind 3: -22.838\n    test 265 GeoidKarney('egm96-5.pgm').height(74.022, 9.432) kind 3: 42.989\n    test 266 GeoidKarney('egm96-5.pgm').height(-75.071, 17.579) kind 3: 15.352  FAILED, KNOWN, expected 15.353\n    test 267 GeoidKarney('egm96-5.pgm').height(-12.546, -54.851) kind 3: -6.338  FAILED, KNOWN, expected -6.337\n    test 268 GeoidKarney('egm96-5.pgm').height(-13.621, 42.408) kind 3: -25.554  FAILED, KNOWN, expected -25.555\n    test 269 GeoidKarney('egm96-5.pgm').height(-2.266, -91.951) kind 3: -9.922  FAILED, KNOWN, expected -9.923\n    test 270 GeoidKarney('egm96-5.pgm').height(-18.672, 42.547) kind 3: -10.853  FAILED, KNOWN, expected -10.852\n    test 271 GeoidKarney('egm96-5.pgm').height(-41.44, 157.413) kind 3: -0.135\n    test 272 GeoidKarney('egm96-5.pgm').height(53.686, -79.375) kind 3: -43.809\n    test 273 GeoidKarney('egm96-5.pgm').height(39.26, -30.351) kind 3: 57.150\n    test 274 GeoidKarney('egm96-5.pgm').height(-51.699, -141.493) kind 3: -17.656  FAILED, KNOWN, expected -17.657\n    test 275 GeoidKarney('egm96-5.pgm').height(36.585, 4.515) kind 3: 46.359  FAILED, KNOWN, expected 46.358\n    test 276 GeoidKarney('egm96-5.pgm').height(39.642, -54.659) kind 3: -14.404\n    test 277 GeoidKarney('egm96-5.pgm').height(59.761, 166.567) kind 3: 11.242\n    test 278 GeoidKarney('egm96-5.pgm').height(51.83, 13.357) kind 3: 42.237\n    test 279 GeoidKarney('egm96-5.pgm').height(-36.531, -175.431) kind 3: 22.147\n    test 280 GeoidKarney('egm96-5.pgm').height(-37.08, 125.264) kind 3: -33.396\n    test 281 GeoidKarney('egm96-5.pgm').height(-68.651, 92.732) kind 3: 7.961\n    test 282 GeoidKarney('egm96-5.pgm').height(35.087, 45.336) kind 3: 7.228  FAILED, KNOWN, expected 7.229\n    test 283 GeoidKarney('egm96-5.pgm').height(-61.356, -169.379) kind 3: -44.290  FAILED, KNOWN, expected -44.292\n    test 284 GeoidKarney('egm96-5.pgm').height(-36.955, 179.12) kind 3: 21.874  FAILED, KNOWN, expected 21.875\n    test 285 GeoidKarney('egm96-5.pgm').height(10.248, -6.714) kind 3: 28.933\n    test 286 GeoidKarney('egm96-5.pgm').height(36.868, 84.602) kind 3: -41.238\n    test 287 GeoidKarney('egm96-5.pgm').height(28.637, 88.933) kind 3: -31.331\n    test 288 GeoidKarney('egm96-5.pgm').height(54.811, -99.968) kind 3: -32.702\n    test 289 GeoidKarney('egm96-5.pgm').height(7.611, 145.911) kind 3: 60.117\n    test 290 GeoidKarney('egm96-5.pgm').height(59.412, 170.102) kind 3: 6.457\n    test 291 GeoidKarney('egm96-5.pgm').height(-61.469, 126.144) kind 3: -31.961\n    test 292 GeoidKarney('egm96-5.pgm').height(18.514, -137.083) kind 3: -26.572  FAILED, KNOWN, expected -26.571\n    test 293 GeoidKarney('egm96-5.pgm').height(7.854, -126.799) kind 3: -29.761  FAILED, KNOWN, expected -29.760\n    test 294 GeoidKarney('egm96-5.pgm').height(47.489, 134.183) kind 3: 21.981  FAILED, KNOWN, expected 21.980\n    test 295 GeoidKarney('egm96-5.pgm').height(-34.144, -11.922) kind 3: 16.849\n    test 296 GeoidKarney('egm96-5.pgm').height(-58.389, 117.458) kind 3: -20.923\n    test 297 GeoidKarney('egm96-5.pgm').height(9.773, 95.846) kind 3: -42.749\n    test 298 GeoidKarney('egm96-5.pgm').height(-53.12, 136.994) kind 3: -21.840  FAILED, KNOWN, expected -21.841\n    test 299 GeoidKarney('egm96-5.pgm').height(-50.35, 0.075) kind 3: 25.481  FAILED, KNOWN, expected 25.482\n    test 300 GeoidKarney('egm96-5.pgm').height(31.438, -170.879) kind 3: -8.846  FAILED, KNOWN, expected -8.847\n    test 301 GeoidKarney('egm96-5.pgm').height(37.541, -153.024) kind 3: -19.603  FAILED, KNOWN, expected -19.604\n    test 302 GeoidKarney('egm96-5.pgm').height(27.586, 2.444) kind 3: 25.668\n    test 303 GeoidKarney('egm96-5.pgm').height(-26.139, -106.201) kind 3: -3.772\n    test 304 GeoidKarney('egm96-5.pgm').height(-33.426, -14.84) kind 3: 17.747  FAILED, KNOWN, expected 17.748\n    test 305 GeoidKarney('egm96-5.pgm').height(39.586, -153.019) kind 3: -17.838  FAILED, KNOWN, expected -17.839\n    test 306 GeoidKarney('egm96-5.pgm').height(-60.79, -2.578) kind 3: 14.292\n    test 307 GeoidKarney('egm96-5.pgm').height(-20.131, 21.975) kind 3: 16.529\n    test 308 GeoidKarney('egm96-5.pgm').height(75.649, 99.921) kind 3: -8.230  FAILED, KNOWN, expected -8.229\n    test 309 GeoidKarney('egm96-5.pgm').height(-0.385, -23.788) kind 3: 9.831  FAILED, KNOWN, expected 9.830\n    test 310 GeoidKarney('egm96-5.pgm').height(-51.56, -50.327) kind 3: 6.215\n    test 311 GeoidKarney('egm96-5.pgm').height(-43.129, -167.271) kind 3: -2.960\n    test 312 GeoidKarney('egm96-5.pgm').height(46.374, 71.948) kind 3: -42.323\n    test 313 GeoidKarney('egm96-5.pgm').height(-22.783, 140.657) kind 3: 38.356\n    test 314 GeoidKarney('egm96-5.pgm').height(-12.056, 122.804) kind 3: 34.259\n    test 315 GeoidKarney('egm96-5.pgm').height(30.127, 94.738) kind 3: -37.397\n    test 316 GeoidKarney('egm96-5.pgm').height(46.296, -174.479) kind 3: -2.017  FAILED, KNOWN, expected -2.016\n    test 317 GeoidKarney('egm96-5.pgm').height(34.99, 15.052) kind 3: 33.912\n    test 318 GeoidKarney('egm96-5.pgm').height(-51.287, 90.565) kind 3: 12.676\n    test 319 GeoidKarney('egm96-5.pgm').height(34.217, 141.302) kind 3: 15.692\n    test 320 GeoidKarney('egm96-5.pgm').height(-40.423, -142.787) kind 3: -11.117\n    test 321 GeoidKarney('egm96-5.pgm').height(-17.854, -170.216) kind 3: 27.437\n    test 322 GeoidKarney('egm96-5.pgm').height(47.803, 112.701) kind 3: -23.894\n    test 323 GeoidKarney('egm96-5.pgm').height(-23.276, 133.454) kind 3: 18.765  FAILED, KNOWN, expected 18.766\n    test 324 GeoidKarney('egm96-5.pgm').height(-26.884, -36.571) kind 3: -7.452\n    test 325 GeoidKarney('egm96-5.pgm').height(-37.106, 31.128) kind 3: 30.143\n    test 326 GeoidKarney('egm96-5.pgm').height(-75.363, -173.674) kind 3: -61.172\n    test 327 GeoidKarney('egm96-5.pgm').height(-18.305, 69.016) kind 3: -24.890\n    test 328 GeoidKarney('egm96-5.pgm').height(39.527, 23.58) kind 3: 39.519\n    test 329 GeoidKarney('egm96-5.pgm').height(68.903, 30.97) kind 3: 19.420  FAILED, KNOWN, expected 19.419\n    test 330 GeoidKarney('egm96-5.pgm').height(53.937, 168.318) kind 3: 2.067  FAILED, KNOWN, expected 2.069\n    test 331 GeoidKarney('egm96-5.pgm').height(-38.6, 64.812) kind 3: 25.049  FAILED, KNOWN, expected 25.048\n    test 332 GeoidKarney('egm96-5.pgm').height(-41.396, -69.739) kind 3: 22.546  FAILED, KNOWN, expected 22.547\n    test 333 GeoidKarney('egm96-5.pgm').height(50.158, 72.319) kind 3: -34.358  FAILED, KNOWN, expected -34.359\n    test 334 GeoidKarney('egm96-5.pgm').height(27.692, 176.153) kind 3: -5.454  FAILED, KNOWN, expected -5.453\n    test 335 GeoidKarney('egm96-5.pgm').height(-48.419, 170.454) kind 3: -6.804\n    test 336 GeoidKarney('egm96-5.pgm').height(-65.346, -124.976) kind 3: -35.053  FAILED, KNOWN, expected -35.054\n    test 337 GeoidKarney('egm96-5.pgm').height(-51.873, 167.266) kind 3: -15.417  FAILED, KNOWN, expected -15.418\n    test 338 GeoidKarney('egm96-5.pgm').height(-7.263, 84.308) kind 3: -79.557\n    test 339 GeoidKarney('egm96-5.pgm').height(-1.461, -105.458) kind 3: -16.894\n    test 340 GeoidKarney('egm96-5.pgm').height(7.684, 161.873) kind 3: 36.215\n    test 341 GeoidKarney('egm96-5.pgm').height(-31.475, -158.52) kind 3: 3.523\n    test 342 GeoidKarney('egm96-5.pgm').height(-36.187, 62.917) kind 3: 23.797\n    test 343 GeoidKarney('egm96-5.pgm').height(16.003, 141.687) kind 3: 51.587  FAILED, KNOWN, expected 51.586\n    test 344 GeoidKarney('egm96-5.pgm').height(30.182, 86.261) kind 3: -30.131\n    test 345 GeoidKarney('egm96-5.pgm').height(-77.304, 159.498) kind 3: -51.849  FAILED, KNOWN, expected -51.848\n    test 346 GeoidKarney('egm96-5.pgm').height(39.536, 139.795) kind 3: 37.191  FAILED, KNOWN, expected 37.192\n    test 347 GeoidKarney('egm96-5.pgm').height(8.569, 134.618) kind 3: 63.596  FAILED, KNOWN, expected 63.597\n    test 348 GeoidKarney('egm96-5.pgm').height(14.473, 90.596) kind 3: -62.636\n    test 349 GeoidKarney('egm96-5.pgm').height(-13.138, -99.589) kind 3: -8.718  FAILED, KNOWN, expected -8.717\n    test 350 GeoidKarney('egm96-5.pgm').height(34.212, -26.307) kind 3: 40.645\n    test 351 GeoidKarney('egm96-5.pgm').height(21.89, 76.371) kind 3: -60.729\n    test 352 GeoidKarney('egm96-5.pgm').height(29.793, 120.487) kind 3: 8.784  FAILED, KNOWN, expected 8.783\n    test 353 GeoidKarney('egm96-5.pgm').height(15.724, 122.714) kind 3: 31.523\n    test 354 GeoidKarney('egm96-5.pgm').height(-66.208, -78.499) kind 3: -6.251  FAILED, KNOWN, expected -6.250\n    test 355 GeoidKarney('egm96-5.pgm').height(-39.507, 55.809) kind 3: 32.598  FAILED, KNOWN, expected 32.599\n    test 356 GeoidKarney('egm96-5.pgm').height(28.159, 51.476) kind 3: -24.536\n    test 357 GeoidKarney('egm96-5.pgm').height(-36.207, 120.205) kind 3: -38.869\n    test 358 GeoidKarney('egm96-5.pgm').height(30.575, -99.998) kind 3: -23.212  FAILED, KNOWN, expected -23.213\n    test 359 GeoidKarney('egm96-5.pgm').height(-16.993, 37.136) kind 3: -11.824\n    test 360 GeoidKarney('egm96-5.pgm').height(-11.477, 12.039) kind 3: 16.710  FAILED, KNOWN, expected 16.709\n    test 361 GeoidKarney('egm96-5.pgm').height(30.428, -144.765) kind 3: -22.378  FAILED, KNOWN, expected -22.379\n    test 362 GeoidKarney('egm96-5.pgm').height(-17.44, -92.424) kind 3: -4.941\n    test 363 GeoidKarney('egm96-5.pgm').height(40.203, 143.43) kind 3: 19.394\n    test 364 GeoidKarney('egm96-5.pgm').height(-37.098, -106.574) kind 3: -9.381\n    test 365 GeoidKarney('egm96-5.pgm').height(54.62, -68.413) kind 3: -23.318  FAILED, KNOWN, expected -23.319\n    test 366 GeoidKarney('egm96-5.pgm').height(-31.633, 148.182) kind 3: 24.467  FAILED, KNOWN, expected 24.468\n    test 367 GeoidKarney('egm96-5.pgm').height(-56.07, -141.407) kind 3: -21.761\n    test 368 GeoidKarney('egm96-5.pgm').height(-8.195, -52.691) kind 3: -18.798\n    test 369 GeoidKarney('egm96-5.pgm').height(17.851, 24.749) kind 3: 12.612\n    test 370 GeoidKarney('egm96-5.pgm').height(0.349, -108.333) kind 3: -19.708  FAILED, KNOWN, expected -19.706\n    test 371 GeoidKarney('egm96-5.pgm').height(15.038, 126.191) kind 3: 45.792\n    test 372 GeoidKarney('egm96-5.pgm').height(-21.111, -123.696) kind 3: -8.406\n    test 373 GeoidKarney('egm96-5.pgm').height(30.947, 173.002) kind 3: -8.367\n    test 374 GeoidKarney('egm96-5.pgm').height(-10.698, -144.091) kind 3: -2.026  FAILED, KNOWN, expected -2.025\n    test 375 GeoidKarney('egm96-5.pgm').height(-29.412, 124.753) kind 3: -16.567  FAILED, KNOWN, expected -16.569\n    test 376 GeoidKarney('egm96-5.pgm').height(38.224, -137.189) kind 3: -35.435\n    test 377 GeoidKarney('egm96-5.pgm').height(36.064, -132.409) kind 3: -39.008  FAILED, KNOWN, expected -39.009\n    test 378 GeoidKarney('egm96-5.pgm').height(29.975, 178.076) kind 3: -6.921\n    test 379 GeoidKarney('egm96-5.pgm').height(-21.346, 169.26) kind 3: 50.795\n    test 380 GeoidKarney('egm96-5.pgm').height(49.282, -152.934) kind 3: 1.071  FAILED, KNOWN, expected 1.070\n    test 381 GeoidKarney('egm96-5.pgm').height(16.349, -99.962) kind 3: -14.214\n    test 382 GeoidKarney('egm96-5.pgm').height(-14.293, -167.34) kind 3: 17.600\n    test 383 GeoidKarney('egm96-5.pgm').height(47.166, -38.523) kind 3: 44.803  FAILED, KNOWN, expected 44.804\n    test 384 GeoidKarney('egm96-5.pgm').height(-58.911, 114.347) kind 3: -17.923  FAILED, KNOWN, expected -17.922\n    test 385 GeoidKarney('egm96-5.pgm').height(-9.055, 111.294) kind 3: 10.662\n    test 386 GeoidKarney('egm96-5.pgm').height(18.391, 29.692) kind 3: 7.670\n    test 387 GeoidKarney('egm96-5.pgm').height(-15.074, 22.153) kind 3: 8.624  FAILED, KNOWN, expected 8.623\n    test 388 GeoidKarney('egm96-5.pgm').height(-4.235, 62.001) kind 3: -60.722  FAILED, KNOWN, expected -60.723\n    test 389 GeoidKarney('egm96-5.pgm').height(15.171, -86.583) kind 3: 3.820  FAILED, KNOWN, expected 3.818\n    test 390 GeoidKarney('egm96-5.pgm').height(79.254, 112.116) kind 3: -1.871\n    test 391 GeoidKarney('egm96-5.pgm').height(15.947, 156.093) kind 3: 30.634  FAILED, KNOWN, expected 30.633\n    test 392 GeoidKarney('egm96-5.pgm').height(68.371, -177.382) kind 3: 2.800  FAILED, KNOWN, expected 2.801\n    test 393 GeoidKarney('egm96-5.pgm').height(-41.931, -72.093) kind 3: 19.858  FAILED, KNOWN, expected 19.859\n    test 394 GeoidKarney('egm96-5.pgm').height(-1.193, -143.133) kind 3: 5.347  FAILED, KNOWN, expected 5.348\n    test 395 GeoidKarney('egm96-5.pgm').height(-37.006, 154.513) kind 3: 9.941\n    test 396 GeoidKarney('egm96-5.pgm').height(-22.148, 9.938) kind 3: 22.322  FAILED, KNOWN, expected 22.321\n    test 397 GeoidKarney('egm96-5.pgm').height(24.329, 109.044) kind 3: -24.135\n    test 398 GeoidKarney('egm96-5.pgm').height(-54.878, 114.691) kind 3: -17.680  FAILED, KNOWN, expected -17.679\n    test 399 GeoidKarney('egm96-5.pgm').height(45.601, -80.458) kind 3: -37.151  FAILED, KNOWN, expected -37.150\n    test 400 GeoidKarney('egm96-5.pgm').height(2.372, 58.974) kind 3: -61.158\n    test 401 GeoidKarney('egm96-5.pgm').height(15.937, 165.854) kind 3: 20.603  FAILED, KNOWN, expected 20.602\n    test 402 GeoidKarney('egm96-5.pgm').height(4.889, -24.213) kind 3: 13.056  FAILED, KNOWN, expected 13.055\n    test 403 GeoidKarney('egm96-5.pgm').height(-11.392, 179.558) kind 3: 40.133  FAILED, KNOWN, expected 40.132\n    test 404 GeoidKarney('egm96-5.pgm').height(58.246, 4.862) kind 3: 43.263\n    test 405 GeoidKarney('egm96-5.pgm').height(34.302, -109.109) kind 3: -23.126\n    test 406 GeoidKarney('egm96-5.pgm').height(-58.196, 117.306) kind 3: -20.678\n    test 407 GeoidKarney('egm96-5.pgm').height(44.5, 173.769) kind 3: -8.530  FAILED, KNOWN, expected -8.529\n    test 408 GeoidKarney('egm96-5.pgm').height(-28.863, -139.775) kind 3: -8.666\n    test 409 GeoidKarney('egm96-5.pgm').height(19.507, -96.099) kind 3: -12.795  FAILED, KNOWN, expected -12.796\n    test 410 GeoidKarney('egm96-5.pgm').height(-42.488, -73.907) kind 3: 15.774  FAILED, KNOWN, expected 15.773\n    test 411 GeoidKarney('egm96-5.pgm').height(46.138, -141.429) kind 3: -19.955  FAILED, KNOWN, expected -19.954\n    test 412 GeoidKarney('egm96-5.pgm').height(60.507, 93.743) kind 3: -31.480\n    test 413 GeoidKarney('egm96-5.pgm').height(26.219, -145.434) kind 3: -17.428  FAILED, KNOWN, expected -17.429\n    test 414 GeoidKarney('egm96-5.pgm').height(-28.687, 3.37) kind 3: 24.037\n    test 415 GeoidKarney('egm96-5.pgm').height(-15.008, 117.45) kind 3: 4.519  FAILED, KNOWN, expected 4.520\n    test 416 GeoidKarney('egm96-5.pgm').height(40.71, 144.095) kind 3: 11.393  FAILED, KNOWN, expected 11.394\n    test 417 GeoidKarney('egm96-5.pgm').height(20.823, -173.611) kind 3: 5.678  FAILED, KNOWN, expected 5.679\n    test 418 GeoidKarney('egm96-5.pgm').height(16.776, -3.009) kind 3: 28.707\n    test 419 GeoidKarney('egm96-5.pgm').height(41.0, -95.0) kind 3: -30.261  FAILED, KNOWN, expected -30.262\n    test 420 GeoidKarney('egm96-5.pgm').height(49.0, -120.5) kind 3: -15.984\n    test 421 GeoidKarney('egm96-5.pgm').height(49.0, -103.5) kind 3: -18.635\n    test 422 GeoidKarney('egm96-5.pgm').height(49.0, -86.5) kind 3: -37.749\n    test 423 GeoidKarney('egm96-5.pgm').height(49.0, -69.5) kind 3: -26.691\n    test 424 GeoidKarney('egm96-5.pgm').height(33.0, -120.5) kind 3: -39.561\n    test 425 GeoidKarney('egm96-5.pgm').height(33.0, -103.5) kind 3: -22.562\n    test 426 GeoidKarney('egm96-5.pgm').height(33.0, -86.5) kind 3: -30.012\n    test 427 GeoidKarney('egm96-5.pgm').height(33.0, -69.5) kind 3: -48.039\n\n    test 428 GeoidKarney('egm96-5.pgm').height() kind 3, hits 0, eps max (in 0 FAILED): 0.001756\n    test 429 GeoidKarney('egm96-5.pgm').height() kind 3, hits 0, eps mean (of 210 total): 0.000524\n    test 430 GeoidKarney('egm96-5.pgm').height() kind 3, hits 0, eps stdev (of 210 total): 0.000371\n    test 431 GeoidKarney('egm96-5.pgm').toStr: GeoidKarney('egm96-5.pgm'): lowerleft(-90.0, -180.0, -29.535), upperright(90.0, 180.0, 13.605), center(0.0, 0.0, 17.163), highest(-8.167, 147.25, 85.422), lowest(4.667, 78.833, -107.043)\n\n    test 432 closed: True\n    test 433 copy(<class 'type'>): (<class 'pygeodesy.geoids.GeoidKarney'>, True)\n    test 434 GeoidKarney.copy(): (<class 'pygeodesy.geoids.GeoidKarney'>, True)\n\n    213 tests skipped (213): no scipy\n    test 435 GeoidKarney('egm2008-1.pgm').height(-76.981, 34.17) kind 2: 12.637  FAILED, KNOWN, expected 12.636\n    test 436 GeoidKarney('egm2008-1.pgm').height(79.695, 88.806) kind 2: 0.749\n    test 437 GeoidKarney('egm2008-1.pgm').height(-15.245, 168.748) kind 2: 65.110  FAILED, KNOWN, expected 65.109\n    test 438 GeoidKarney('egm2008-1.pgm').height(-19.379, 15.855) kind 2: 24.889\n    test 439 GeoidKarney('egm2008-1.pgm').height(43.378, -130.552) kind 2: -29.557\n    test 440 GeoidKarney('egm2008-1.pgm').height(-16.075, 21.795) kind 2: 9.741  FAILED, KNOWN, expected 9.742\n    test 441 GeoidKarney('egm2008-1.pgm').height(-11.256, -73.75) kind 2: 30.061  FAILED, KNOWN, expected 30.059\n    test 442 GeoidKarney('egm2008-1.pgm').height(69.017, -15.921) kind 2: 60.691  FAILED, KNOWN, expected 60.690\n    test 443 GeoidKarney('egm2008-1.pgm').height(2.221, 139.739) kind 2: 69.134  FAILED, KNOWN, expected 69.133\n    test 444 GeoidKarney('egm2008-1.pgm').height(-9.097, 119.142) kind 2: 36.522  FAILED, KNOWN, expected 36.520\n    test 445 GeoidKarney('egm2008-1.pgm').height(-28.524, -22.192) kind 2: 6.801\n    test 446 GeoidKarney('egm2008-1.pgm').height(12.272, -136.424) kind 2: -20.652  FAILED, KNOWN, expected -20.651\n    test 447 GeoidKarney('egm2008-1.pgm').height(-15.203, -85.604) kind 2: -3.040\n    test 448 GeoidKarney('egm2008-1.pgm').height(-63.736, -77.17) kind 2: -1.329  FAILED, KNOWN, expected -1.328\n    test 449 GeoidKarney('egm2008-1.pgm').height(-48.771, -90.102) kind 2: -2.171  FAILED, KNOWN, expected -2.172\n    test 450 GeoidKarney('egm2008-1.pgm').height(-0.179, -126.368) kind 2: -17.411\n    test 451 GeoidKarney('egm2008-1.pgm').height(1.586, -128.887) kind 2: -16.426  FAILED, KNOWN, expected -16.425\n    test 452 GeoidKarney('egm2008-1.pgm').height(-48.781, -2.684) kind 2: 24.699  FAILED, KNOWN, expected 24.698\n    test 453 GeoidKarney('egm2008-1.pgm').height(-49.092, 136.862) kind 2: -18.328  FAILED, KNOWN, expected -18.329\n    test 454 GeoidKarney('egm2008-1.pgm').height(47.732, 17.552) kind 2: 43.802\n    test 455 GeoidKarney('egm2008-1.pgm').height(-49.11, 85.706) kind 2: 18.716\n    test 456 GeoidKarney('egm2008-1.pgm').height(-49.162, 40.321) kind 2: 44.468  FAILED, KNOWN, expected 44.469\n    test 457 GeoidKarney('egm2008-1.pgm').height(3.498, 158.118) kind 2: 49.943  FAILED, KNOWN, expected 49.944\n    test 458 GeoidKarney('egm2008-1.pgm').height(-35.616, 122.648) kind 2: -35.878\n    test 459 GeoidKarney('egm2008-1.pgm').height(56.598, -96.114) kind 2: -40.777\n    test 460 GeoidKarney('egm2008-1.pgm').height(-31.85, 149.121) kind 2: 26.560  FAILED, KNOWN, expected 26.559\n    test 461 GeoidKarney('egm2008-1.pgm').height(-26.569, -177.792) kind 2: 49.361\n    test 462 GeoidKarney('egm2008-1.pgm').height(76.735, -65.753) kind 2: 21.106  FAILED, KNOWN, expected 21.107\n    test 463 GeoidKarney('egm2008-1.pgm').height(-21.404, -122.268) kind 2: -7.202\n    test 464 GeoidKarney('egm2008-1.pgm').height(-77.133, -65.474) kind 2: -17.168\n    test 465 GeoidKarney('egm2008-1.pgm').height(-58.812, 2.276) kind 2: 18.359\n    test 466 GeoidKarney('egm2008-1.pgm').height(4.415, 155.683) kind 2: 52.118\n    test 467 GeoidKarney('egm2008-1.pgm').height(-28.146, 107.081) kind 2: -38.949  FAILED, KNOWN, expected -38.950\n    test 468 GeoidKarney('egm2008-1.pgm').height(-10.551, -126.69) kind 2: -9.935  FAILED, KNOWN, expected -9.934\n    test 469 GeoidKarney('egm2008-1.pgm').height(-25.444, -103.337) kind 2: -2.879\n    test 470 GeoidKarney('egm2008-1.pgm').height(24.436, 46.159) kind 2: -5.025\n    test 471 GeoidKarney('egm2008-1.pgm').height(-72.889, 37.107) kind 2: 24.296\n    test 472 GeoidKarney('egm2008-1.pgm').height(-19.629, 13.245) kind 2: 25.131\n    test 473 GeoidKarney('egm2008-1.pgm').height(-7.602, 171.265) kind 2: 40.720  FAILED, KNOWN, expected 40.721\n    test 474 GeoidKarney('egm2008-1.pgm').height(-45.364, -1.876) kind 2: 22.388\n    test 475 GeoidKarney('egm2008-1.pgm').height(-7.292, -69.18) kind 2: 22.485  FAILED, KNOWN, expected 22.486\n    test 476 GeoidKarney('egm2008-1.pgm').height(-31.566, -166.689) kind 2: 14.942  FAILED, KNOWN, expected 14.943\n    test 477 GeoidKarney('egm2008-1.pgm').height(-82.751, -162.085) kind 2: -47.387\n    test 478 GeoidKarney('egm2008-1.pgm').height(-40.7, 99.466) kind 2: -18.404  FAILED, KNOWN, expected -18.403\n    test 479 GeoidKarney('egm2008-1.pgm').height(48.676, 39.69) kind 2: 10.186  FAILED, KNOWN, expected 10.185\n    test 480 GeoidKarney('egm2008-1.pgm').height(74.817, -78.404) kind 2: 5.671\n    test 481 GeoidKarney('egm2008-1.pgm').height(-81.032, -63.865) kind 2: -24.577\n    test 482 GeoidKarney('egm2008-1.pgm').height(74.022, 9.432) kind 2: 43.288\n    test 483 GeoidKarney('egm2008-1.pgm').height(-75.071, 17.579) kind 2: 13.747  FAILED, KNOWN, expected 13.748\n    test 484 GeoidKarney('egm2008-1.pgm').height(-12.546, -54.851) kind 2: -5.342\n    test 485 GeoidKarney('egm2008-1.pgm').height(-13.621, 42.408) kind 2: -25.579\n    test 486 GeoidKarney('egm2008-1.pgm').height(-2.266, -91.951) kind 2: -9.849\n    test 487 GeoidKarney('egm2008-1.pgm').height(-18.672, 42.547) kind 2: -10.491\n    test 488 GeoidKarney('egm2008-1.pgm').height(-41.44, 157.413) kind 2: 0.243  FAILED, KNOWN, expected 0.244\n    test 489 GeoidKarney('egm2008-1.pgm').height(53.686, -79.375) kind 2: -43.820  FAILED, KNOWN, expected -43.821\n    test 490 GeoidKarney('egm2008-1.pgm').height(39.26, -30.351) kind 2: 57.400  FAILED, KNOWN, expected 57.401\n    test 491 GeoidKarney('egm2008-1.pgm').height(-51.699, -141.493) kind 2: -17.889  FAILED, KNOWN, expected -17.890\n    test 492 GeoidKarney('egm2008-1.pgm').height(36.585, 4.515) kind 2: 46.422  FAILED, KNOWN, expected 46.421\n    test 493 GeoidKarney('egm2008-1.pgm').height(39.642, -54.659) kind 2: -14.475\n    test 494 GeoidKarney('egm2008-1.pgm').height(59.761, 166.567) kind 2: 11.119  FAILED, KNOWN, expected 11.118\n    test 495 GeoidKarney('egm2008-1.pgm').height(51.83, 13.357) kind 2: 42.291\n    test 496 GeoidKarney('egm2008-1.pgm').height(-36.531, -175.431) kind 2: 22.327  FAILED, KNOWN, expected 22.326\n    test 497 GeoidKarney('egm2008-1.pgm').height(-37.08, 125.264) kind 2: -33.098\n    test 498 GeoidKarney('egm2008-1.pgm').height(-68.651, 92.732) kind 2: 9.431  FAILED, KNOWN, expected 9.430\n    test 499 GeoidKarney('egm2008-1.pgm').height(35.087, 45.336) kind 2: 6.032\n    test 500 GeoidKarney('egm2008-1.pgm').height(-61.356, -169.379) kind 2: -44.330\n    test 501 GeoidKarney('egm2008-1.pgm').height(-36.955, 179.12) kind 2: 21.775\n    test 502 GeoidKarney('egm2008-1.pgm').height(10.248, -6.714) kind 2: 29.243\n    test 503 GeoidKarney('egm2008-1.pgm').height(36.868, 84.602) kind 2: -40.677  FAILED, KNOWN, expected -40.676\n    test 504 GeoidKarney('egm2008-1.pgm').height(28.637, 88.933) kind 2: -31.353\n    test 505 GeoidKarney('egm2008-1.pgm').height(54.811, -99.968) kind 2: -32.700  FAILED, KNOWN, expected -32.701\n    test 506 GeoidKarney('egm2008-1.pgm').height(7.611, 145.911) kind 2: 60.628  FAILED, KNOWN, expected 60.629\n    test 507 GeoidKarney('egm2008-1.pgm').height(59.412, 170.102) kind 2: 6.617\n    test 508 GeoidKarney('egm2008-1.pgm').height(-61.469, 126.144) kind 2: -31.888  FAILED, KNOWN, expected -31.887\n    test 509 GeoidKarney('egm2008-1.pgm').height(18.514, -137.083) kind 2: -26.536  FAILED, KNOWN, expected -26.535\n    test 510 GeoidKarney('egm2008-1.pgm').height(7.854, -126.799) kind 2: -29.631  FAILED, KNOWN, expected -29.630\n    test 511 GeoidKarney('egm2008-1.pgm').height(47.489, 134.183) kind 2: 22.274  FAILED, KNOWN, expected 22.275\n    test 512 GeoidKarney('egm2008-1.pgm').height(-34.144, -11.922) kind 2: 17.095  FAILED, KNOWN, expected 17.094\n    test 513 GeoidKarney('egm2008-1.pgm').height(-58.389, 117.458) kind 2: -20.940  FAILED, KNOWN, expected -20.941\n    test 514 GeoidKarney('egm2008-1.pgm').height(9.773, 95.846) kind 2: -42.740\n    test 515 GeoidKarney('egm2008-1.pgm').height(-53.12, 136.994) kind 2: -21.651\n    test 516 GeoidKarney('egm2008-1.pgm').height(-50.35, 0.075) kind 2: 25.240\n    test 517 GeoidKarney('egm2008-1.pgm').height(31.438, -170.879) kind 2: -8.758\n    test 518 GeoidKarney('egm2008-1.pgm').height(37.541, -153.024) kind 2: -19.606  FAILED, KNOWN, expected -19.607\n    test 519 GeoidKarney('egm2008-1.pgm').height(27.586, 2.444) kind 2: 26.258\n    test 520 GeoidKarney('egm2008-1.pgm').height(-26.139, -106.201) kind 2: -3.824\n    test 521 GeoidKarney('egm2008-1.pgm').height(-33.426, -14.84) kind 2: 18.194  FAILED, KNOWN, expected 18.195\n    test 522 GeoidKarney('egm2008-1.pgm').height(39.586, -153.019) kind 2: -17.724  FAILED, KNOWN, expected -17.725\n    test 523 GeoidKarney('egm2008-1.pgm').height(-60.79, -2.578) kind 2: 14.511  FAILED, KNOWN, expected 14.513\n    test 524 GeoidKarney('egm2008-1.pgm').height(-20.131, 21.975) kind 2: 16.808  FAILED, KNOWN, expected 16.809\n    test 525 GeoidKarney('egm2008-1.pgm').height(75.649, 99.921) kind 2: -8.025  FAILED, KNOWN, expected -8.026\n    test 526 GeoidKarney('egm2008-1.pgm').height(-0.385, -23.788) kind 2: 9.688\n    test 527 GeoidKarney('egm2008-1.pgm').height(-51.56, -50.327) kind 2: 6.218\n    test 528 GeoidKarney('egm2008-1.pgm').height(-43.129, -167.271) kind 2: -2.725  FAILED, KNOWN, expected -2.724\n    test 529 GeoidKarney('egm2008-1.pgm').height(46.374, 71.948) kind 2: -42.566  FAILED, KNOWN, expected -42.565\n    test 530 GeoidKarney('egm2008-1.pgm').height(-22.783, 140.657) kind 2: 38.341\n    test 531 GeoidKarney('egm2008-1.pgm').height(-12.056, 122.804) kind 2: 33.888  FAILED, KNOWN, expected 33.889\n    test 532 GeoidKarney('egm2008-1.pgm').height(30.127, 94.738) kind 2: -37.382  FAILED, KNOWN, expected -37.380\n    test 533 GeoidKarney('egm2008-1.pgm').height(46.296, -174.479) kind 2: -1.857  FAILED, KNOWN, expected -1.858\n    test 534 GeoidKarney('egm2008-1.pgm').height(34.99, 15.052) kind 2: 34.196  FAILED, KNOWN, expected 34.195\n    test 535 GeoidKarney('egm2008-1.pgm').height(-51.287, 90.565) kind 2: 12.767\n    test 536 GeoidKarney('egm2008-1.pgm').height(34.217, 141.302) kind 2: 15.612\n    test 537 GeoidKarney('egm2008-1.pgm').height(-40.423, -142.787) kind 2: -11.063\n    test 538 GeoidKarney('egm2008-1.pgm').height(-17.854, -170.216) kind 2: 27.387\n    test 539 GeoidKarney('egm2008-1.pgm').height(47.803, 112.701) kind 2: -23.817\n    test 540 GeoidKarney('egm2008-1.pgm').height(-23.276, 133.454) kind 2: 18.713  FAILED, KNOWN, expected 18.712\n    test 541 GeoidKarney('egm2008-1.pgm').height(-26.884, -36.571) kind 2: -7.343  FAILED, KNOWN, expected -7.344\n    test 542 GeoidKarney('egm2008-1.pgm').height(-37.106, 31.128) kind 2: 29.997  FAILED, KNOWN, expected 29.998\n    test 543 GeoidKarney('egm2008-1.pgm').height(-75.363, -173.674) kind 2: -61.869\n    test 544 GeoidKarney('egm2008-1.pgm').height(-18.305, 69.016) kind 2: -24.937\n    test 545 GeoidKarney('egm2008-1.pgm').height(39.527, 23.58) kind 2: 38.558  FAILED, KNOWN, expected 38.556\n    test 546 GeoidKarney('egm2008-1.pgm').height(68.903, 30.97) kind 2: 19.672  FAILED, KNOWN, expected 19.671\n    test 547 GeoidKarney('egm2008-1.pgm').height(53.937, 168.318) kind 2: 2.273  FAILED, KNOWN, expected 2.272\n    test 548 GeoidKarney('egm2008-1.pgm').height(-38.6, 64.812) kind 2: 24.863\n    test 549 GeoidKarney('egm2008-1.pgm').height(-41.396, -69.739) kind 2: 21.637  FAILED, KNOWN, expected 21.636\n    test 550 GeoidKarney('egm2008-1.pgm').height(50.158, 72.319) kind 2: -33.851\n    test 551 GeoidKarney('egm2008-1.pgm').height(27.692, 176.153) kind 2: -5.299\n    test 552 GeoidKarney('egm2008-1.pgm').height(-48.419, 170.454) kind 2: -6.789\n    test 553 GeoidKarney('egm2008-1.pgm').height(-65.346, -124.976) kind 2: -35.030\n    test 554 GeoidKarney('egm2008-1.pgm').height(-51.873, 167.266) kind 2: -15.338\n    test 555 GeoidKarney('egm2008-1.pgm').height(-7.263, 84.308) kind 2: -79.356\n    test 556 GeoidKarney('egm2008-1.pgm').height(-1.461, -105.458) kind 2: -16.650\n    test 557 GeoidKarney('egm2008-1.pgm').height(7.684, 161.873) kind 2: 36.358  FAILED, KNOWN, expected 36.359\n    test 558 GeoidKarney('egm2008-1.pgm').height(-31.475, -158.52) kind 2: 3.614  FAILED, KNOWN, expected 3.615\n    test 559 GeoidKarney('egm2008-1.pgm').height(-36.187, 62.917) kind 2: 23.946  FAILED, KNOWN, expected 23.947\n    test 560 GeoidKarney('egm2008-1.pgm').height(16.003, 141.687) kind 2: 51.495\n    test 561 GeoidKarney('egm2008-1.pgm').height(30.182, 86.261) kind 2: -30.909  FAILED, KNOWN, expected -30.910\n    test 562 GeoidKarney('egm2008-1.pgm').height(-77.304, 159.498) kind 2: -52.131\n    test 563 GeoidKarney('egm2008-1.pgm').height(39.536, 139.795) kind 2: 37.046  FAILED, KNOWN, expected 37.045\n    test 564 GeoidKarney('egm2008-1.pgm').height(8.569, 134.618) kind 2: 64.181  FAILED, KNOWN, expected 64.180\n    test 565 GeoidKarney('egm2008-1.pgm').height(14.473, 90.596) kind 2: -62.475\n    test 566 GeoidKarney('egm2008-1.pgm').height(-13.138, -99.589) kind 2: -8.454\n    test 567 GeoidKarney('egm2008-1.pgm').height(34.212, -26.307) kind 2: 40.834\n    test 568 GeoidKarney('egm2008-1.pgm').height(21.89, 76.371) kind 2: -60.456  FAILED, KNOWN, expected -60.455\n    test 569 GeoidKarney('egm2008-1.pgm').height(29.793, 120.487) kind 2: 9.727\n    test 570 GeoidKarney('egm2008-1.pgm').height(15.724, 122.714) kind 2: 32.143  FAILED, KNOWN, expected 32.142\n    test 571 GeoidKarney('egm2008-1.pgm').height(-66.208, -78.499) kind 2: -6.221  FAILED, KNOWN, expected -6.220\n    test 572 GeoidKarney('egm2008-1.pgm').height(-39.507, 55.809) kind 2: 32.489\n    test 573 GeoidKarney('egm2008-1.pgm').height(28.159, 51.476) kind 2: -24.692\n    test 574 GeoidKarney('egm2008-1.pgm').height(-36.207, 120.205) kind 2: -38.748  FAILED, KNOWN, expected -38.749\n    test 575 GeoidKarney('egm2008-1.pgm').height(30.575, -99.998) kind 2: -23.254  FAILED, KNOWN, expected -23.255\n    test 576 GeoidKarney('egm2008-1.pgm').height(-16.993, 37.136) kind 2: -13.454  FAILED, KNOWN, expected -13.455\n    test 577 GeoidKarney('egm2008-1.pgm').height(-11.477, 12.039) kind 2: 16.627\n    test 578 GeoidKarney('egm2008-1.pgm').height(30.428, -144.765) kind 2: -22.221\n    test 579 GeoidKarney('egm2008-1.pgm').height(-17.44, -92.424) kind 2: -4.836\n    test 580 GeoidKarney('egm2008-1.pgm').height(40.203, 143.43) kind 2: 19.571\n    test 581 GeoidKarney('egm2008-1.pgm').height(-37.098, -106.574) kind 2: -9.227\n    test 582 GeoidKarney('egm2008-1.pgm').height(54.62, -68.413) kind 2: -23.248\n    test 583 GeoidKarney('egm2008-1.pgm').height(-31.633, 148.182) kind 2: 24.829\n    test 584 GeoidKarney('egm2008-1.pgm').height(-56.07, -141.407) kind 2: -21.706  FAILED, KNOWN, expected -21.705\n    test 585 GeoidKarney('egm2008-1.pgm').height(-8.195, -52.691) kind 2: -17.054  FAILED, KNOWN, expected -17.053\n    test 586 GeoidKarney('egm2008-1.pgm').height(17.851, 24.749) kind 2: 11.716\n    test 587 GeoidKarney('egm2008-1.pgm').height(0.349, -108.333) kind 2: -19.529  FAILED, KNOWN, expected -19.530\n    test 588 GeoidKarney('egm2008-1.pgm').height(15.038, 126.191) kind 2: 45.929\n    test 589 GeoidKarney('egm2008-1.pgm').height(-21.111, -123.696) kind 2: -8.283\n    test 590 GeoidKarney('egm2008-1.pgm').height(30.947, 173.002) kind 2: -8.467\n    test 591 GeoidKarney('egm2008-1.pgm').height(-10.698, -144.091) kind 2: -1.829\n    test 592 GeoidKarney('egm2008-1.pgm').height(-29.412, 124.753) kind 2: -16.505  FAILED, KNOWN, expected -16.506\n    test 593 GeoidKarney('egm2008-1.pgm').height(38.224, -137.189) kind 2: -35.384\n    test 594 GeoidKarney('egm2008-1.pgm').height(36.064, -132.409) kind 2: -38.962  FAILED, KNOWN, expected -38.963\n    test 595 GeoidKarney('egm2008-1.pgm').height(29.975, 178.076) kind 2: -6.956\n    test 596 GeoidKarney('egm2008-1.pgm').height(-21.346, 169.26) kind 2: 51.006  FAILED, KNOWN, expected 51.005\n    test 597 GeoidKarney('egm2008-1.pgm').height(49.282, -152.934) kind 2: 1.193  FAILED, KNOWN, expected 1.192\n    test 598 GeoidKarney('egm2008-1.pgm').height(16.349, -99.962) kind 2: -15.038\n    test 599 GeoidKarney('egm2008-1.pgm').height(-14.293, -167.34) kind 2: 17.792  FAILED, KNOWN, expected 17.791\n    test 600 GeoidKarney('egm2008-1.pgm').height(47.166, -38.523) kind 2: 44.653  FAILED, KNOWN, expected 44.652\n    test 601 GeoidKarney('egm2008-1.pgm').height(-58.911, 114.347) kind 2: -17.972  FAILED, KNOWN, expected -17.971\n    test 602 GeoidKarney('egm2008-1.pgm').height(-9.055, 111.294) kind 2: 11.631\n    test 603 GeoidKarney('egm2008-1.pgm').height(18.391, 29.692) kind 2: 7.394\n    test 604 GeoidKarney('egm2008-1.pgm').height(-15.074, 22.153) kind 2: 7.932\n    test 605 GeoidKarney('egm2008-1.pgm').height(-4.235, 62.001) kind 2: -60.594  FAILED, KNOWN, expected -60.593\n    test 606 GeoidKarney('egm2008-1.pgm').height(15.171, -86.583) kind 2: 4.382  FAILED, KNOWN, expected 4.384\n    test 607 GeoidKarney('egm2008-1.pgm').height(79.254, 112.116) kind 2: 1.296  FAILED, KNOWN, expected 1.297\n    test 608 GeoidKarney('egm2008-1.pgm').height(15.947, 156.093) kind 2: 30.852\n    test 609 GeoidKarney('egm2008-1.pgm').height(68.371, -177.382) kind 2: 2.705  FAILED, KNOWN, expected 2.704\n    test 610 GeoidKarney('egm2008-1.pgm').height(-41.931, -72.093) kind 2: 21.263  FAILED, KNOWN, expected 21.264\n    test 611 GeoidKarney('egm2008-1.pgm').height(-1.193, -143.133) kind 2: 5.443\n    test 612 GeoidKarney('egm2008-1.pgm').height(-37.006, 154.513) kind 2: 9.998\n    test 613 GeoidKarney('egm2008-1.pgm').height(-22.148, 9.938) kind 2: 22.428\n    test 614 GeoidKarney('egm2008-1.pgm').height(24.329, 109.044) kind 2: -23.156  FAILED, KNOWN, expected -23.154\n    test 615 GeoidKarney('egm2008-1.pgm').height(-54.878, 114.691) kind 2: -17.662\n    test 616 GeoidKarney('egm2008-1.pgm').height(45.601, -80.458) kind 2: -36.840  FAILED, KNOWN, expected -36.839\n    test 617 GeoidKarney('egm2008-1.pgm').height(2.372, 58.974) kind 2: -61.220  FAILED, KNOWN, expected -61.221\n    test 618 GeoidKarney('egm2008-1.pgm').height(15.937, 165.854) kind 2: 20.355\n    test 619 GeoidKarney('egm2008-1.pgm').height(4.889, -24.213) kind 2: 13.147\n    test 620 GeoidKarney('egm2008-1.pgm').height(-11.392, 179.558) kind 2: 41.072\n    test 621 GeoidKarney('egm2008-1.pgm').height(58.246, 4.862) kind 2: 42.982\n    test 622 GeoidKarney('egm2008-1.pgm').height(34.302, -109.109) kind 2: -22.997  FAILED, KNOWN, expected -22.998\n    test 623 GeoidKarney('egm2008-1.pgm').height(-58.196, 117.306) kind 2: -20.662\n    test 624 GeoidKarney('egm2008-1.pgm').height(44.5, 173.769) kind 2: -8.438\n    test 625 GeoidKarney('egm2008-1.pgm').height(-28.863, -139.775) kind 2: -8.711  FAILED, KNOWN, expected -8.712\n    test 626 GeoidKarney('egm2008-1.pgm').height(19.507, -96.099) kind 2: -12.654  FAILED, KNOWN, expected -12.653\n    test 627 GeoidKarney('egm2008-1.pgm').height(-42.488, -73.907) kind 2: 17.163  FAILED, KNOWN, expected 17.166\n    test 628 GeoidKarney('egm2008-1.pgm').height(46.138, -141.429) kind 2: -19.873  FAILED, KNOWN, expected -19.874\n    test 629 GeoidKarney('egm2008-1.pgm').height(60.507, 93.743) kind 2: -31.124\n    test 630 GeoidKarney('egm2008-1.pgm').height(26.219, -145.434) kind 2: -17.307\n    test 631 GeoidKarney('egm2008-1.pgm').height(-28.687, 3.37) kind 2: 23.437  FAILED, KNOWN, expected 23.434\n    test 632 GeoidKarney('egm2008-1.pgm').height(-15.008, 117.45) kind 2: 4.508\n    test 633 GeoidKarney('egm2008-1.pgm').height(40.71, 144.095) kind 2: 11.550  FAILED, KNOWN, expected 11.549\n    test 634 GeoidKarney('egm2008-1.pgm').height(20.823, -173.611) kind 2: 5.749  FAILED, KNOWN, expected 5.748\n    test 635 GeoidKarney('egm2008-1.pgm').height(16.776, -3.009) kind 2: 28.788\n    test 636 GeoidKarney('egm2008-1.pgm').height(41.0, -95.0) kind 2: -30.588  FAILED, KNOWN, expected -30.589\n    test 637 GeoidKarney('egm2008-1.pgm').height(49.0, -120.5) kind 2: -15.273\n    test 638 GeoidKarney('egm2008-1.pgm').height(49.0, -103.5) kind 2: -18.624\n    test 639 GeoidKarney('egm2008-1.pgm').height(49.0, -86.5) kind 2: -37.872  FAILED, KNOWN, expected -37.873\n    test 640 GeoidKarney('egm2008-1.pgm').height(49.0, -69.5) kind 2: -26.511\n    test 641 GeoidKarney('egm2008-1.pgm').height(33.0, -120.5) kind 2: -39.600\n    test 642 GeoidKarney('egm2008-1.pgm').height(33.0, -103.5) kind 2: -22.689\n    test 643 GeoidKarney('egm2008-1.pgm').height(33.0, -86.5) kind 2: -30.066  FAILED, KNOWN, expected -30.067\n    test 644 GeoidKarney('egm2008-1.pgm').height(33.0, -69.5) kind 2: -48.093\n\n    test 645 GeoidKarney('egm2008-1.pgm').height() kind 2, hits 0, eps max (in 0 FAILED): 0.002537\n    test 646 GeoidKarney('egm2008-1.pgm').height() kind 2, hits 0, eps mean (of 210 total): 0.000543\n    test 647 GeoidKarney('egm2008-1.pgm').height() kind 2, hits 0, eps stdev (of 210 total): 0.000458\n    test 648 GeoidKarney('egm2008-1.pgm').toStr: GeoidKarney('egm2008-1.pgm'): lowerleft(-90.0, -180.0, -30.15), upperright(90.0, 180.0, 14.898), center(0.0, 0.0, 17.226), highest(-8.4, 147.367, 85.839), lowest(4.7, 78.767, -106.911)\n\n    test 649 closed: True\n    test 650 copy(<class 'type'>): (<class 'pygeodesy.geoids.GeoidKarney'>, True)\n    test 651 GeoidKarney.copy(): (<class 'pygeodesy.geoids.GeoidKarney'>, True)\n    test 652 GeoidKarney('egm2008-1.pgm').height(-76.981, 34.17) kind 3: 12.637  FAILED, KNOWN, expected 12.636\n    test 653 GeoidKarney('egm2008-1.pgm').height(79.695, 88.806) kind 3: 0.749\n    test 654 GeoidKarney('egm2008-1.pgm').height(-15.245, 168.748) kind 3: 65.110  FAILED, KNOWN, expected 65.109\n    test 655 GeoidKarney('egm2008-1.pgm').height(-19.379, 15.855) kind 3: 24.889\n    test 656 GeoidKarney('egm2008-1.pgm').height(43.378, -130.552) kind 3: -29.556  FAILED, KNOWN, expected -29.557\n    test 657 GeoidKarney('egm2008-1.pgm').height(-16.075, 21.795) kind 3: 9.741  FAILED, KNOWN, expected 9.742\n    test 658 GeoidKarney('egm2008-1.pgm').height(-11.256, -73.75) kind 3: 30.060  FAILED, KNOWN, expected 30.059\n    test 659 GeoidKarney('egm2008-1.pgm').height(69.017, -15.921) kind 3: 60.690\n    test 660 GeoidKarney('egm2008-1.pgm').height(2.221, 139.739) kind 3: 69.134  FAILED, KNOWN, expected 69.133\n    test 661 GeoidKarney('egm2008-1.pgm').height(-9.097, 119.142) kind 3: 36.521  FAILED, KNOWN, expected 36.520\n    test 662 GeoidKarney('egm2008-1.pgm').height(-28.524, -22.192) kind 3: 6.801\n    test 663 GeoidKarney('egm2008-1.pgm').height(12.272, -136.424) kind 3: -20.652  FAILED, KNOWN, expected -20.651\n    test 664 GeoidKarney('egm2008-1.pgm').height(-15.203, -85.604) kind 3: -3.040\n    test 665 GeoidKarney('egm2008-1.pgm').height(-63.736, -77.17) kind 3: -1.329  FAILED, KNOWN, expected -1.328\n    test 666 GeoidKarney('egm2008-1.pgm').height(-48.771, -90.102) kind 3: -2.171  FAILED, KNOWN, expected -2.172\n    test 667 GeoidKarney('egm2008-1.pgm').height(-0.179, -126.368) kind 3: -17.411\n    test 668 GeoidKarney('egm2008-1.pgm').height(1.586, -128.887) kind 3: -16.426  FAILED, KNOWN, expected -16.425\n    test 669 GeoidKarney('egm2008-1.pgm').height(-48.781, -2.684) kind 3: 24.699  FAILED, KNOWN, expected 24.698\n    test 670 GeoidKarney('egm2008-1.pgm').height(-49.092, 136.862) kind 3: -18.328  FAILED, KNOWN, expected -18.329\n    test 671 GeoidKarney('egm2008-1.pgm').height(47.732, 17.552) kind 3: 43.802\n    test 672 GeoidKarney('egm2008-1.pgm').height(-49.11, 85.706) kind 3: 18.716\n    test 673 GeoidKarney('egm2008-1.pgm').height(-49.162, 40.321) kind 3: 44.468  FAILED, KNOWN, expected 44.469\n    test 674 GeoidKarney('egm2008-1.pgm').height(3.498, 158.118) kind 3: 49.943  FAILED, KNOWN, expected 49.944\n    test 675 GeoidKarney('egm2008-1.pgm').height(-35.616, 122.648) kind 3: -35.878\n    test 676 GeoidKarney('egm2008-1.pgm').height(56.598, -96.114) kind 3: -40.777\n    test 677 GeoidKarney('egm2008-1.pgm').height(-31.85, 149.121) kind 3: 26.559\n    test 678 GeoidKarney('egm2008-1.pgm').height(-26.569, -177.792) kind 3: 49.362  FAILED, KNOWN, expected 49.361\n    test 679 GeoidKarney('egm2008-1.pgm').height(76.735, -65.753) kind 3: 21.106  FAILED, KNOWN, expected 21.107\n    test 680 GeoidKarney('egm2008-1.pgm').height(-21.404, -122.268) kind 3: -7.203  FAILED, KNOWN, expected -7.202\n    test 681 GeoidKarney('egm2008-1.pgm').height(-77.133, -65.474) kind 3: -17.167  FAILED, KNOWN, expected -17.168\n    test 682 GeoidKarney('egm2008-1.pgm').height(-58.812, 2.276) kind 3: 18.359\n    test 683 GeoidKarney('egm2008-1.pgm').height(4.415, 155.683) kind 3: 52.117  FAILED, KNOWN, expected 52.118\n    test 684 GeoidKarney('egm2008-1.pgm').height(-28.146, 107.081) kind 3: -38.950\n    test 685 GeoidKarney('egm2008-1.pgm').height(-10.551, -126.69) kind 3: -9.935  FAILED, KNOWN, expected -9.934\n    test 686 GeoidKarney('egm2008-1.pgm').height(-25.444, -103.337) kind 3: -2.879\n    test 687 GeoidKarney('egm2008-1.pgm').height(24.436, 46.159) kind 3: -5.025\n    test 688 GeoidKarney('egm2008-1.pgm').height(-72.889, 37.107) kind 3: 24.296\n    test 689 GeoidKarney('egm2008-1.pgm').height(-19.629, 13.245) kind 3: 25.131\n    test 690 GeoidKarney('egm2008-1.pgm').height(-7.602, 171.265) kind 3: 40.720  FAILED, KNOWN, expected 40.721\n    test 691 GeoidKarney('egm2008-1.pgm').height(-45.364, -1.876) kind 3: 22.387  FAILED, KNOWN, expected 22.388\n    test 692 GeoidKarney('egm2008-1.pgm').height(-7.292, -69.18) kind 3: 22.485  FAILED, KNOWN, expected 22.486\n    test 693 GeoidKarney('egm2008-1.pgm').height(-31.566, -166.689) kind 3: 14.942  FAILED, KNOWN, expected 14.943\n    test 694 GeoidKarney('egm2008-1.pgm').height(-82.751, -162.085) kind 3: -47.387\n    test 695 GeoidKarney('egm2008-1.pgm').height(-40.7, 99.466) kind 3: -18.404  FAILED, KNOWN, expected -18.403\n    test 696 GeoidKarney('egm2008-1.pgm').height(48.676, 39.69) kind 3: 10.185\n    test 697 GeoidKarney('egm2008-1.pgm').height(74.817, -78.404) kind 3: 5.670  FAILED, KNOWN, expected 5.671\n    test 698 GeoidKarney('egm2008-1.pgm').height(-81.032, -63.865) kind 3: -24.577\n    test 699 GeoidKarney('egm2008-1.pgm').height(74.022, 9.432) kind 3: 43.288\n    test 700 GeoidKarney('egm2008-1.pgm').height(-75.071, 17.579) kind 3: 13.747  FAILED, KNOWN, expected 13.748\n    test 701 GeoidKarney('egm2008-1.pgm').height(-12.546, -54.851) kind 3: -5.342\n    test 702 GeoidKarney('egm2008-1.pgm').height(-13.621, 42.408) kind 3: -25.579\n    test 703 GeoidKarney('egm2008-1.pgm').height(-2.266, -91.951) kind 3: -9.849\n    test 704 GeoidKarney('egm2008-1.pgm').height(-18.672, 42.547) kind 3: -10.490  FAILED, KNOWN, expected -10.491\n    test 705 GeoidKarney('egm2008-1.pgm').height(-41.44, 157.413) kind 3: 0.243  FAILED, KNOWN, expected 0.244\n    test 706 GeoidKarney('egm2008-1.pgm').height(53.686, -79.375) kind 3: -43.820  FAILED, KNOWN, expected -43.821\n    test 707 GeoidKarney('egm2008-1.pgm').height(39.26, -30.351) kind 3: 57.401\n    test 708 GeoidKarney('egm2008-1.pgm').height(-51.699, -141.493) kind 3: -17.889  FAILED, KNOWN, expected -17.890\n    test 709 GeoidKarney('egm2008-1.pgm').height(36.585, 4.515) kind 3: 46.423  FAILED, KNOWN, expected 46.421\n    test 710 GeoidKarney('egm2008-1.pgm').height(39.642, -54.659) kind 3: -14.475\n    test 711 GeoidKarney('egm2008-1.pgm').height(59.761, 166.567) kind 3: 11.118\n    test 712 GeoidKarney('egm2008-1.pgm').height(51.83, 13.357) kind 3: 42.291\n    test 713 GeoidKarney('egm2008-1.pgm').height(-36.531, -175.431) kind 3: 22.327  FAILED, KNOWN, expected 22.326\n    test 714 GeoidKarney('egm2008-1.pgm').height(-37.08, 125.264) kind 3: -33.098\n    test 715 GeoidKarney('egm2008-1.pgm').height(-68.651, 92.732) kind 3: 9.431  FAILED, KNOWN, expected 9.430\n    test 716 GeoidKarney('egm2008-1.pgm').height(35.087, 45.336) kind 3: 6.032\n    test 717 GeoidKarney('egm2008-1.pgm').height(-61.356, -169.379) kind 3: -44.330\n    test 718 GeoidKarney('egm2008-1.pgm').height(-36.955, 179.12) kind 3: 21.775\n    test 719 GeoidKarney('egm2008-1.pgm').height(10.248, -6.714) kind 3: 29.243\n    test 720 GeoidKarney('egm2008-1.pgm').height(36.868, 84.602) kind 3: -40.677  FAILED, KNOWN, expected -40.676\n    test 721 GeoidKarney('egm2008-1.pgm').height(28.637, 88.933) kind 3: -31.352  FAILED, KNOWN, expected -31.353\n    test 722 GeoidKarney('egm2008-1.pgm').height(54.811, -99.968) kind 3: -32.700  FAILED, KNOWN, expected -32.701\n    test 723 GeoidKarney('egm2008-1.pgm').height(7.611, 145.911) kind 3: 60.628  FAILED, KNOWN, expected 60.629\n    test 724 GeoidKarney('egm2008-1.pgm').height(59.412, 170.102) kind 3: 6.617\n    test 725 GeoidKarney('egm2008-1.pgm').height(-61.469, 126.144) kind 3: -31.887\n    test 726 GeoidKarney('egm2008-1.pgm').height(18.514, -137.083) kind 3: -26.536  FAILED, KNOWN, expected -26.535\n    test 727 GeoidKarney('egm2008-1.pgm').height(7.854, -126.799) kind 3: -29.631  FAILED, KNOWN, expected -29.630\n    test 728 GeoidKarney('egm2008-1.pgm').height(47.489, 134.183) kind 3: 22.274  FAILED, KNOWN, expected 22.275\n    test 729 GeoidKarney('egm2008-1.pgm').height(-34.144, -11.922) kind 3: 17.095  FAILED, KNOWN, expected 17.094\n    test 730 GeoidKarney('egm2008-1.pgm').height(-58.389, 117.458) kind 3: -20.940  FAILED, KNOWN, expected -20.941\n    test 731 GeoidKarney('egm2008-1.pgm').height(9.773, 95.846) kind 3: -42.740\n    test 732 GeoidKarney('egm2008-1.pgm').height(-53.12, 136.994) kind 3: -21.651\n    test 733 GeoidKarney('egm2008-1.pgm').height(-50.35, 0.075) kind 3: 25.240\n    test 734 GeoidKarney('egm2008-1.pgm').height(31.438, -170.879) kind 3: -8.758\n    test 735 GeoidKarney('egm2008-1.pgm').height(37.541, -153.024) kind 3: -19.606  FAILED, KNOWN, expected -19.607\n    test 736 GeoidKarney('egm2008-1.pgm').height(27.586, 2.444) kind 3: 26.258\n    test 737 GeoidKarney('egm2008-1.pgm').height(-26.139, -106.201) kind 3: -3.823  FAILED, KNOWN, expected -3.824\n    test 738 GeoidKarney('egm2008-1.pgm').height(-33.426, -14.84) kind 3: 18.195\n    test 739 GeoidKarney('egm2008-1.pgm').height(39.586, -153.019) kind 3: -17.724  FAILED, KNOWN, expected -17.725\n    test 740 GeoidKarney('egm2008-1.pgm').height(-60.79, -2.578) kind 3: 14.512  FAILED, KNOWN, expected 14.513\n    test 741 GeoidKarney('egm2008-1.pgm').height(-20.131, 21.975) kind 3: 16.808  FAILED, KNOWN, expected 16.809\n    test 742 GeoidKarney('egm2008-1.pgm').height(75.649, 99.921) kind 3: -8.025  FAILED, KNOWN, expected -8.026\n    test 743 GeoidKarney('egm2008-1.pgm').height(-0.385, -23.788) kind 3: 9.689  FAILED, KNOWN, expected 9.688\n    test 744 GeoidKarney('egm2008-1.pgm').height(-51.56, -50.327) kind 3: 6.218\n    test 745 GeoidKarney('egm2008-1.pgm').height(-43.129, -167.271) kind 3: -2.725  FAILED, KNOWN, expected -2.724\n    test 746 GeoidKarney('egm2008-1.pgm').height(46.374, 71.948) kind 3: -42.566  FAILED, KNOWN, expected -42.565\n    test 747 GeoidKarney('egm2008-1.pgm').height(-22.783, 140.657) kind 3: 38.342  FAILED, KNOWN, expected 38.341\n    test 748 GeoidKarney('egm2008-1.pgm').height(-12.056, 122.804) kind 3: 33.888  FAILED, KNOWN, expected 33.889\n    test 749 GeoidKarney('egm2008-1.pgm').height(30.127, 94.738) kind 3: -37.381  FAILED, KNOWN, expected -37.380\n    test 750 GeoidKarney('egm2008-1.pgm').height(46.296, -174.479) kind 3: -1.857  FAILED, KNOWN, expected -1.858\n    test 751 GeoidKarney('egm2008-1.pgm').height(34.99, 15.052) kind 3: 34.196  FAILED, KNOWN, expected 34.195\n    test 752 GeoidKarney('egm2008-1.pgm').height(-51.287, 90.565) kind 3: 12.767\n    test 753 GeoidKarney('egm2008-1.pgm').height(34.217, 141.302) kind 3: 15.612\n    test 754 GeoidKarney('egm2008-1.pgm').height(-40.423, -142.787) kind 3: -11.063\n    test 755 GeoidKarney('egm2008-1.pgm').height(-17.854, -170.216) kind 3: 27.386  FAILED, KNOWN, expected 27.387\n    test 756 GeoidKarney('egm2008-1.pgm').height(47.803, 112.701) kind 3: -23.817\n    test 757 GeoidKarney('egm2008-1.pgm').height(-23.276, 133.454) kind 3: 18.713  FAILED, KNOWN, expected 18.712\n    test 758 GeoidKarney('egm2008-1.pgm').height(-26.884, -36.571) kind 3: -7.343  FAILED, KNOWN, expected -7.344\n    test 759 GeoidKarney('egm2008-1.pgm').height(-37.106, 31.128) kind 3: 29.997  FAILED, KNOWN, expected 29.998\n    test 760 GeoidKarney('egm2008-1.pgm').height(-75.363, -173.674) kind 3: -61.869\n    test 761 GeoidKarney('egm2008-1.pgm').height(-18.305, 69.016) kind 3: -24.938  FAILED, KNOWN, expected -24.937\n    test 762 GeoidKarney('egm2008-1.pgm').height(39.527, 23.58) kind 3: 38.557  FAILED, KNOWN, expected 38.556\n    test 763 GeoidKarney('egm2008-1.pgm').height(68.903, 30.97) kind 3: 19.671\n    test 764 GeoidKarney('egm2008-1.pgm').height(53.937, 168.318) kind 3: 2.273  FAILED, KNOWN, expected 2.272\n    test 765 GeoidKarney('egm2008-1.pgm').height(-38.6, 64.812) kind 3: 24.863\n    test 766 GeoidKarney('egm2008-1.pgm').height(-41.396, -69.739) kind 3: 21.636\n    test 767 GeoidKarney('egm2008-1.pgm').height(50.158, 72.319) kind 3: -33.850  FAILED, KNOWN, expected -33.851\n    test 768 GeoidKarney('egm2008-1.pgm').height(27.692, 176.153) kind 3: -5.299\n    test 769 GeoidKarney('egm2008-1.pgm').height(-48.419, 170.454) kind 3: -6.789\n    test 770 GeoidKarney('egm2008-1.pgm').height(-65.346, -124.976) kind 3: -35.030\n    test 771 GeoidKarney('egm2008-1.pgm').height(-51.873, 167.266) kind 3: -15.338\n    test 772 GeoidKarney('egm2008-1.pgm').height(-7.263, 84.308) kind 3: -79.356\n    test 773 GeoidKarney('egm2008-1.pgm').height(-1.461, -105.458) kind 3: -16.649  FAILED, KNOWN, expected -16.650\n    test 774 GeoidKarney('egm2008-1.pgm').height(7.684, 161.873) kind 3: 36.359\n    test 775 GeoidKarney('egm2008-1.pgm').height(-31.475, -158.52) kind 3: 3.614  FAILED, KNOWN, expected 3.615\n    test 776 GeoidKarney('egm2008-1.pgm').height(-36.187, 62.917) kind 3: 23.946  FAILED, KNOWN, expected 23.947\n    test 777 GeoidKarney('egm2008-1.pgm').height(16.003, 141.687) kind 3: 51.494  FAILED, KNOWN, expected 51.495\n    test 778 GeoidKarney('egm2008-1.pgm').height(30.182, 86.261) kind 3: -30.909  FAILED, KNOWN, expected -30.910\n    test 779 GeoidKarney('egm2008-1.pgm').height(-77.304, 159.498) kind 3: -52.131\n    test 780 GeoidKarney('egm2008-1.pgm').height(39.536, 139.795) kind 3: 37.046  FAILED, KNOWN, expected 37.045\n    test 781 GeoidKarney('egm2008-1.pgm').height(8.569, 134.618) kind 3: 64.181  FAILED, KNOWN, expected 64.180\n    test 782 GeoidKarney('egm2008-1.pgm').height(14.473, 90.596) kind 3: -62.475\n    test 783 GeoidKarney('egm2008-1.pgm').height(-13.138, -99.589) kind 3: -8.454\n    test 784 GeoidKarney('egm2008-1.pgm').height(34.212, -26.307) kind 3: 40.834\n    test 785 GeoidKarney('egm2008-1.pgm').height(21.89, 76.371) kind 3: -60.455\n    test 786 GeoidKarney('egm2008-1.pgm').height(29.793, 120.487) kind 3: 9.728  FAILED, KNOWN, expected 9.727\n    test 787 GeoidKarney('egm2008-1.pgm').height(15.724, 122.714) kind 3: 32.141  FAILED, KNOWN, expected 32.142\n    test 788 GeoidKarney('egm2008-1.pgm').height(-66.208, -78.499) kind 3: -6.221  FAILED, KNOWN, expected -6.220\n    test 789 GeoidKarney('egm2008-1.pgm').height(-39.507, 55.809) kind 3: 32.488  FAILED, KNOWN, expected 32.489\n    test 790 GeoidKarney('egm2008-1.pgm').height(28.159, 51.476) kind 3: -24.692\n    test 791 GeoidKarney('egm2008-1.pgm').height(-36.207, 120.205) kind 3: -38.749\n    test 792 GeoidKarney('egm2008-1.pgm').height(30.575, -99.998) kind 3: -23.254  FAILED, KNOWN, expected -23.255\n    test 793 GeoidKarney('egm2008-1.pgm').height(-16.993, 37.136) kind 3: -13.454  FAILED, KNOWN, expected -13.455\n    test 794 GeoidKarney('egm2008-1.pgm').height(-11.477, 12.039) kind 3: 16.627\n    test 795 GeoidKarney('egm2008-1.pgm').height(30.428, -144.765) kind 3: -22.221\n    test 796 GeoidKarney('egm2008-1.pgm').height(-17.44, -92.424) kind 3: -4.836\n    test 797 GeoidKarney('egm2008-1.pgm').height(40.203, 143.43) kind 3: 19.571\n    test 798 GeoidKarney('egm2008-1.pgm').height(-37.098, -106.574) kind 3: -9.227\n    test 799 GeoidKarney('egm2008-1.pgm').height(54.62, -68.413) kind 3: -23.248\n    test 800 GeoidKarney('egm2008-1.pgm').height(-31.633, 148.182) kind 3: 24.829\n    test 801 GeoidKarney('egm2008-1.pgm').height(-56.07, -141.407) kind 3: -21.706  FAILED, KNOWN, expected -21.705\n    test 802 GeoidKarney('egm2008-1.pgm').height(-8.195, -52.691) kind 3: -17.054  FAILED, KNOWN, expected -17.053\n    test 803 GeoidKarney('egm2008-1.pgm').height(17.851, 24.749) kind 3: 11.715  FAILED, KNOWN, expected 11.716\n    test 804 GeoidKarney('egm2008-1.pgm').height(0.349, -108.333) kind 3: -19.529  FAILED, KNOWN, expected -19.530\n    test 805 GeoidKarney('egm2008-1.pgm').height(15.038, 126.191) kind 3: 45.929\n    test 806 GeoidKarney('egm2008-1.pgm').height(-21.111, -123.696) kind 3: -8.283\n    test 807 GeoidKarney('egm2008-1.pgm').height(30.947, 173.002) kind 3: -8.467\n    test 808 GeoidKarney('egm2008-1.pgm').height(-10.698, -144.091) kind 3: -1.829\n    test 809 GeoidKarney('egm2008-1.pgm').height(-29.412, 124.753) kind 3: -16.505  FAILED, KNOWN, expected -16.506\n    test 810 GeoidKarney('egm2008-1.pgm').height(38.224, -137.189) kind 3: -35.384\n    test 811 GeoidKarney('egm2008-1.pgm').height(36.064, -132.409) kind 3: -38.962  FAILED, KNOWN, expected -38.963\n    test 812 GeoidKarney('egm2008-1.pgm').height(29.975, 178.076) kind 3: -6.956\n    test 813 GeoidKarney('egm2008-1.pgm').height(-21.346, 169.26) kind 3: 51.006  FAILED, KNOWN, expected 51.005\n    test 814 GeoidKarney('egm2008-1.pgm').height(49.282, -152.934) kind 3: 1.193  FAILED, KNOWN, expected 1.192\n    test 815 GeoidKarney('egm2008-1.pgm').height(16.349, -99.962) kind 3: -15.038\n    test 816 GeoidKarney('egm2008-1.pgm').height(-14.293, -167.34) kind 3: 17.791\n    test 817 GeoidKarney('egm2008-1.pgm').height(47.166, -38.523) kind 3: 44.653  FAILED, KNOWN, expected 44.652\n    test 818 GeoidKarney('egm2008-1.pgm').height(-58.911, 114.347) kind 3: -17.972  FAILED, KNOWN, expected -17.971\n    test 819 GeoidKarney('egm2008-1.pgm').height(-9.055, 111.294) kind 3: 11.630  FAILED, KNOWN, expected 11.631\n    test 820 GeoidKarney('egm2008-1.pgm').height(18.391, 29.692) kind 3: 7.394\n    test 821 GeoidKarney('egm2008-1.pgm').height(-15.074, 22.153) kind 3: 7.932\n    test 822 GeoidKarney('egm2008-1.pgm').height(-4.235, 62.001) kind 3: -60.594  FAILED, KNOWN, expected -60.593\n    test 823 GeoidKarney('egm2008-1.pgm').height(15.171, -86.583) kind 3: 4.384\n    test 824 GeoidKarney('egm2008-1.pgm').height(79.254, 112.116) kind 3: 1.296  FAILED, KNOWN, expected 1.297\n    test 825 GeoidKarney('egm2008-1.pgm').height(15.947, 156.093) kind 3: 30.852\n    test 826 GeoidKarney('egm2008-1.pgm').height(68.371, -177.382) kind 3: 2.705  FAILED, KNOWN, expected 2.704\n    test 827 GeoidKarney('egm2008-1.pgm').height(-41.931, -72.093) kind 3: 21.264\n    test 828 GeoidKarney('egm2008-1.pgm').height(-1.193, -143.133) kind 3: 5.443\n    test 829 GeoidKarney('egm2008-1.pgm').height(-37.006, 154.513) kind 3: 9.998\n    test 830 GeoidKarney('egm2008-1.pgm').height(-22.148, 9.938) kind 3: 22.428\n    test 831 GeoidKarney('egm2008-1.pgm').height(24.329, 109.044) kind 3: -23.155  FAILED, KNOWN, expected -23.154\n    test 832 GeoidKarney('egm2008-1.pgm').height(-54.878, 114.691) kind 3: -17.662\n    test 833 GeoidKarney('egm2008-1.pgm').height(45.601, -80.458) kind 3: -36.840  FAILED, KNOWN, expected -36.839\n    test 834 GeoidKarney('egm2008-1.pgm').height(2.372, 58.974) kind 3: -61.220  FAILED, KNOWN, expected -61.221\n    test 835 GeoidKarney('egm2008-1.pgm').height(15.937, 165.854) kind 3: 20.355\n    test 836 GeoidKarney('egm2008-1.pgm').height(4.889, -24.213) kind 3: 13.147\n    test 837 GeoidKarney('egm2008-1.pgm').height(-11.392, 179.558) kind 3: 41.073  FAILED, KNOWN, expected 41.072\n    test 838 GeoidKarney('egm2008-1.pgm').height(58.246, 4.862) kind 3: 42.982\n    test 839 GeoidKarney('egm2008-1.pgm').height(34.302, -109.109) kind 3: -22.997  FAILED, KNOWN, expected -22.998\n    test 840 GeoidKarney('egm2008-1.pgm').height(-58.196, 117.306) kind 3: -20.662\n    test 841 GeoidKarney('egm2008-1.pgm').height(44.5, 173.769) kind 3: -8.438\n    test 842 GeoidKarney('egm2008-1.pgm').height(-28.863, -139.775) kind 3: -8.711  FAILED, KNOWN, expected -8.712\n    test 843 GeoidKarney('egm2008-1.pgm').height(19.507, -96.099) kind 3: -12.653\n    test 844 GeoidKarney('egm2008-1.pgm').height(-42.488, -73.907) kind 3: 17.166\n    test 845 GeoidKarney('egm2008-1.pgm').height(46.138, -141.429) kind 3: -19.873  FAILED, KNOWN, expected -19.874\n    test 846 GeoidKarney('egm2008-1.pgm').height(60.507, 93.743) kind 3: -31.124\n    test 847 GeoidKarney('egm2008-1.pgm').height(26.219, -145.434) kind 3: -17.306  FAILED, KNOWN, expected -17.307\n    test 848 GeoidKarney('egm2008-1.pgm').height(-28.687, 3.37) kind 3: 23.435  FAILED, KNOWN, expected 23.434\n    test 849 GeoidKarney('egm2008-1.pgm').height(-15.008, 117.45) kind 3: 4.508\n    test 850 GeoidKarney('egm2008-1.pgm').height(40.71, 144.095) kind 3: 11.550  FAILED, KNOWN, expected 11.549\n    test 851 GeoidKarney('egm2008-1.pgm').height(20.823, -173.611) kind 3: 5.749  FAILED, KNOWN, expected 5.748\n    test 852 GeoidKarney('egm2008-1.pgm').height(16.776, -3.009) kind 3: 28.788\n    test 853 GeoidKarney('egm2008-1.pgm').height(41.0, -95.0) kind 3: -30.589\n    test 854 GeoidKarney('egm2008-1.pgm').height(49.0, -120.5) kind 3: -15.273\n    test 855 GeoidKarney('egm2008-1.pgm').height(49.0, -103.5) kind 3: -18.624\n    test 856 GeoidKarney('egm2008-1.pgm').height(49.0, -86.5) kind 3: -37.872  FAILED, KNOWN, expected -37.873\n    test 857 GeoidKarney('egm2008-1.pgm').height(49.0, -69.5) kind 3: -26.511\n    test 858 GeoidKarney('egm2008-1.pgm').height(33.0, -120.5) kind 3: -39.600\n    test 859 GeoidKarney('egm2008-1.pgm').height(33.0, -103.5) kind 3: -22.689\n    test 860 GeoidKarney('egm2008-1.pgm').height(33.0, -86.5) kind 3: -30.067\n    test 861 GeoidKarney('egm2008-1.pgm').height(33.0, -69.5) kind 3: -48.093\n\n    test 862 GeoidKarney('egm2008-1.pgm').height() kind 3, hits 0, eps max (in 0 FAILED): 0.001323\n    test 863 GeoidKarney('egm2008-1.pgm').height() kind 3, hits 0, eps mean (of 210 total): 0.000468\n    test 864 GeoidKarney('egm2008-1.pgm').height() kind 3, hits 0, eps stdev (of 210 total): 0.000333\n    test 865 GeoidKarney('egm2008-1.pgm').toStr: GeoidKarney('egm2008-1.pgm'): lowerleft(-90.0, -180.0, -30.15), upperright(90.0, 180.0, 14.898), center(0.0, 0.0, 17.226), highest(-8.4, 147.367, 85.839), lowest(4.7, 78.767, -106.911)\n\n    test 866 closed: True\n    test 867 copy(<class 'type'>): (<class 'pygeodesy.geoids.GeoidKarney'>, True)\n    test 868 GeoidKarney.copy(): (<class 'pygeodesy.geoids.GeoidKarney'>, True)\n\n    213 tests skipped (426): no scipy\n    test 869 GeoidKarney('egm84-15.pgm').height(-76.981, 34.17) kind 2: 11.727  FAILED, KNOWN, expected 11.729\n    test 870 GeoidKarney('egm84-15.pgm').height(79.695, 88.806) kind 2: 0.280  FAILED, KNOWN, expected 0.270\n    test 871 GeoidKarney('egm84-15.pgm').height(-15.245, 168.748) kind 2: 67.071  FAILED, KNOWN, expected 67.074\n    test 872 GeoidKarney('egm84-15.pgm').height(-19.379, 15.855) kind 2: 25.366  FAILED, KNOWN, expected 25.344\n    test 873 GeoidKarney('egm84-15.pgm').height(43.378, -130.552) kind 2: -28.913  FAILED, KNOWN, expected -28.919\n    test 874 GeoidKarney('egm84-15.pgm').height(-16.075, 21.795) kind 2: 14.383  FAILED, KNOWN, expected 14.386\n    test 875 GeoidKarney('egm84-15.pgm').height(-11.256, -73.75) kind 2: 30.701  FAILED, KNOWN, expected 30.700\n    test 876 GeoidKarney('egm84-15.pgm').height(69.017, -15.921) kind 2: 62.222  FAILED, KNOWN, expected 62.225\n    test 877 GeoidKarney('egm84-15.pgm').height(2.221, 139.739) kind 2: 70.221  FAILED, KNOWN, expected 70.222\n    test 878 GeoidKarney('egm84-15.pgm').height(-9.097, 119.142) kind 2: 34.290  FAILED, KNOWN, expected 34.336\n    test 879 GeoidKarney('egm84-15.pgm').height(-28.524, -22.192) kind 2: 8.205  FAILED, KNOWN, expected 8.206\n    test 880 GeoidKarney('egm84-15.pgm').height(12.272, -136.424) kind 2: -20.068  FAILED, KNOWN, expected -20.074\n    test 881 GeoidKarney('egm84-15.pgm').height(-15.203, -85.604) kind 2: -3.129\n    test 882 GeoidKarney('egm84-15.pgm').height(-63.736, -77.17) kind 2: -3.214  FAILED, KNOWN, expected -3.217\n    test 883 GeoidKarney('egm84-15.pgm').height(-48.771, -90.102) kind 2: -1.536  FAILED, KNOWN, expected -1.531\n    test 884 GeoidKarney('egm84-15.pgm').height(-0.179, -126.368) kind 2: -16.742\n    test 885 GeoidKarney('egm84-15.pgm').height(1.586, -128.887) kind 2: -15.418  FAILED, KNOWN, expected -15.412\n    test 886 GeoidKarney('egm84-15.pgm').height(-48.781, -2.684) kind 2: 25.077  FAILED, KNOWN, expected 25.078\n    test 887 GeoidKarney('egm84-15.pgm').height(-49.092, 136.862) kind 2: -18.114  FAILED, KNOWN, expected -18.120\n    test 888 GeoidKarney('egm84-15.pgm').height(47.732, 17.552) kind 2: 46.230  FAILED, KNOWN, expected 46.224\n    test 889 GeoidKarney('egm84-15.pgm').height(-49.11, 85.706) kind 2: 18.648  FAILED, KNOWN, expected 18.649\n    test 890 GeoidKarney('egm84-15.pgm').height(-49.162, 40.321) kind 2: 44.759  FAILED, KNOWN, expected 44.764\n    test 891 GeoidKarney('egm84-15.pgm').height(3.498, 158.118) kind 2: 51.095  FAILED, KNOWN, expected 51.089\n    test 892 GeoidKarney('egm84-15.pgm').height(-35.616, 122.648) kind 2: -34.436  FAILED, KNOWN, expected -34.471\n    test 893 GeoidKarney('egm84-15.pgm').height(56.598, -96.114) kind 2: -39.124\n    test 894 GeoidKarney('egm84-15.pgm').height(-31.85, 149.121) kind 2: 28.131  FAILED, KNOWN, expected 28.142\n    test 895 GeoidKarney('egm84-15.pgm').height(-26.569, -177.792) kind 2: 49.606  FAILED, KNOWN, expected 49.619\n    test 896 GeoidKarney('egm84-15.pgm').height(76.735, -65.753) kind 2: 22.568  FAILED, KNOWN, expected 22.575\n    test 897 GeoidKarney('egm84-15.pgm').height(-21.404, -122.268) kind 2: -6.894  FAILED, KNOWN, expected -6.893\n    test 898 GeoidKarney('egm84-15.pgm').height(-77.133, -65.474) kind 2: -15.017  FAILED, KNOWN, expected -15.012\n    test 899 GeoidKarney('egm84-15.pgm').height(-58.812, 2.276) kind 2: 18.777  FAILED, KNOWN, expected 18.776\n    test 900 GeoidKarney('egm84-15.pgm').height(4.415, 155.683) kind 2: 53.644  FAILED, KNOWN, expected 53.645\n    test 901 GeoidKarney('egm84-15.pgm').height(-28.146, 107.081) kind 2: -39.058  FAILED, KNOWN, expected -39.074\n    test 902 GeoidKarney('egm84-15.pgm').height(-10.551, -126.69) kind 2: -9.643  FAILED, KNOWN, expected -9.645\n    test 903 GeoidKarney('egm84-15.pgm').height(-25.444, -103.337) kind 2: -2.520  FAILED, KNOWN, expected -2.528\n    test 904 GeoidKarney('egm84-15.pgm').height(24.436, 46.159) kind 2: -6.918  FAILED, KNOWN, expected -6.907\n    test 905 GeoidKarney('egm84-15.pgm').height(-72.889, 37.107) kind 2: 21.758  FAILED, KNOWN, expected 21.711\n    test 906 GeoidKarney('egm84-15.pgm').height(-19.629, 13.245) kind 2: 25.617  FAILED, KNOWN, expected 25.611\n    test 907 GeoidKarney('egm84-15.pgm').height(-7.602, 171.265) kind 2: 41.585  FAILED, KNOWN, expected 41.569\n    test 908 GeoidKarney('egm84-15.pgm').height(-45.364, -1.876) kind 2: 23.283  FAILED, KNOWN, expected 23.280\n    test 909 GeoidKarney('egm84-15.pgm').height(-7.292, -69.18) kind 2: 24.497  FAILED, KNOWN, expected 24.502\n    test 910 GeoidKarney('egm84-15.pgm').height(-31.566, -166.689) kind 2: 14.825  FAILED, KNOWN, expected 14.826\n    test 911 GeoidKarney('egm84-15.pgm').height(-82.751, -162.085) kind 2: -45.104\n    test 912 GeoidKarney('egm84-15.pgm').height(-40.7, 99.466) kind 2: -17.254  FAILED, KNOWN, expected -17.252\n    test 913 GeoidKarney('egm84-15.pgm').height(48.676, 39.69) kind 2: 12.984  FAILED, KNOWN, expected 12.972\n    test 914 GeoidKarney('egm84-15.pgm').height(74.817, -78.404) kind 2: 4.773  FAILED, KNOWN, expected 4.776\n    test 915 GeoidKarney('egm84-15.pgm').height(-81.032, -63.865) kind 2: -23.577\n    test 916 GeoidKarney('egm84-15.pgm').height(74.022, 9.432) kind 2: 43.884  FAILED, KNOWN, expected 43.885\n    test 917 GeoidKarney('egm84-15.pgm').height(-75.071, 17.579) kind 2: 17.064  FAILED, KNOWN, expected 17.072\n    test 918 GeoidKarney('egm84-15.pgm').height(-12.546, -54.851) kind 2: -6.637  FAILED, KNOWN, expected -6.643\n    test 919 GeoidKarney('egm84-15.pgm').height(-13.621, 42.408) kind 2: -23.332  FAILED, KNOWN, expected -23.325\n    test 920 GeoidKarney('egm84-15.pgm').height(-2.266, -91.951) kind 2: -10.689  FAILED, KNOWN, expected -10.698\n    test 921 GeoidKarney('egm84-15.pgm').height(-18.672, 42.547) kind 2: -10.305  FAILED, KNOWN, expected -10.265\n    test 922 GeoidKarney('egm84-15.pgm').height(-41.44, 157.413) kind 2: 0.692  FAILED, KNOWN, expected 0.689\n    test 923 GeoidKarney('egm84-15.pgm').height(53.686, -79.375) kind 2: -43.763  FAILED, KNOWN, expected -43.758\n    test 924 GeoidKarney('egm84-15.pgm').height(39.26, -30.351) kind 2: 57.551  FAILED, KNOWN, expected 57.554\n    test 925 GeoidKarney('egm84-15.pgm').height(-51.699, -141.493) kind 2: -16.939  FAILED, KNOWN, expected -16.936\n    test 926 GeoidKarney('egm84-15.pgm').height(36.585, 4.515) kind 2: 45.227  FAILED, KNOWN, expected 45.295\n    test 927 GeoidKarney('egm84-15.pgm').height(39.642, -54.659) kind 2: -13.585  FAILED, KNOWN, expected -13.586\n    test 928 GeoidKarney('egm84-15.pgm').height(59.761, 166.567) kind 2: 11.469  FAILED, KNOWN, expected 11.468\n    test 929 GeoidKarney('egm84-15.pgm').height(51.83, 13.357) kind 2: 42.090  FAILED, KNOWN, expected 42.092\n    test 930 GeoidKarney('egm84-15.pgm').height(-36.531, -175.431) kind 2: 22.828  FAILED, KNOWN, expected 22.830\n    test 931 GeoidKarney('egm84-15.pgm').height(-37.08, 125.264) kind 2: -32.300  FAILED, KNOWN, expected -32.302\n    test 932 GeoidKarney('egm84-15.pgm').height(-68.651, 92.732) kind 2: 9.212  FAILED, KNOWN, expected 9.228\n    test 933 GeoidKarney('egm84-15.pgm').height(35.087, 45.336) kind 2: 6.000  FAILED, KNOWN, expected 5.965\n    test 934 GeoidKarney('egm84-15.pgm').height(-61.356, -169.379) kind 2: -45.000  FAILED, KNOWN, expected -45.013\n    test 935 GeoidKarney('egm84-15.pgm').height(-36.955, 179.12) kind 2: 21.148  FAILED, KNOWN, expected 21.118\n    test 936 GeoidKarney('egm84-15.pgm').height(10.248, -6.714) kind 2: 30.500  FAILED, KNOWN, expected 30.497\n    test 937 GeoidKarney('egm84-15.pgm').height(36.868, 84.602) kind 2: -40.416  FAILED, KNOWN, expected -40.396\n    test 938 GeoidKarney('egm84-15.pgm').height(28.637, 88.933) kind 2: -31.726  FAILED, KNOWN, expected -31.704\n    test 939 GeoidKarney('egm84-15.pgm').height(54.811, -99.968) kind 2: -32.271  FAILED, KNOWN, expected -32.277\n    test 940 GeoidKarney('egm84-15.pgm').height(7.611, 145.911) kind 2: 61.016  FAILED, KNOWN, expected 61.024\n    test 941 GeoidKarney('egm84-15.pgm').height(59.412, 170.102) kind 2: 5.017  FAILED, KNOWN, expected 4.994\n    test 942 GeoidKarney('egm84-15.pgm').height(-61.469, 126.144) kind 2: -30.240  FAILED, KNOWN, expected -30.237\n    test 943 GeoidKarney('egm84-15.pgm').height(18.514, -137.083) kind 2: -26.007  FAILED, KNOWN, expected -26.006\n    test 944 GeoidKarney('egm84-15.pgm').height(7.854, -126.799) kind 2: -29.280  FAILED, KNOWN, expected -29.283\n    test 945 GeoidKarney('egm84-15.pgm').height(47.489, 134.183) kind 2: 22.400  FAILED, KNOWN, expected 22.394\n    test 946 GeoidKarney('egm84-15.pgm').height(-34.144, -11.922) kind 2: 17.549  FAILED, KNOWN, expected 17.550\n    test 947 GeoidKarney('egm84-15.pgm').height(-58.389, 117.458) kind 2: -20.621  FAILED, KNOWN, expected -20.622\n    test 948 GeoidKarney('egm84-15.pgm').height(9.773, 95.846) kind 2: -41.463  FAILED, KNOWN, expected -41.484\n    test 949 GeoidKarney('egm84-15.pgm').height(-53.12, 136.994) kind 2: -20.969  FAILED, KNOWN, expected -20.968\n    test 950 GeoidKarney('egm84-15.pgm').height(-50.35, 0.075) kind 2: 25.561  FAILED, KNOWN, expected 25.568\n    test 951 GeoidKarney('egm84-15.pgm').height(31.438, -170.879) kind 2: -8.574  FAILED, KNOWN, expected -8.581\n    test 952 GeoidKarney('egm84-15.pgm').height(37.541, -153.024) kind 2: -18.329\n    test 953 GeoidKarney('egm84-15.pgm').height(27.586, 2.444) kind 2: 25.003  FAILED, KNOWN, expected 25.001\n    test 954 GeoidKarney('egm84-15.pgm').height(-26.139, -106.201) kind 2: -2.945  FAILED, KNOWN, expected -2.940\n    test 955 GeoidKarney('egm84-15.pgm').height(-33.426, -14.84) kind 2: 18.220  FAILED, KNOWN, expected 18.228\n    test 956 GeoidKarney('egm84-15.pgm').height(39.586, -153.019) kind 2: -16.511  FAILED, KNOWN, expected -16.507\n    test 957 GeoidKarney('egm84-15.pgm').height(-60.79, -2.578) kind 2: 14.277  FAILED, KNOWN, expected 14.275\n    test 958 GeoidKarney('egm84-15.pgm').height(-20.131, 21.975) kind 2: 16.866  FAILED, KNOWN, expected 16.852\n    test 959 GeoidKarney('egm84-15.pgm').height(75.649, 99.921) kind 2: -6.870  FAILED, KNOWN, expected -6.872\n    test 960 GeoidKarney('egm84-15.pgm').height(-0.385, -23.788) kind 2: 8.987  FAILED, KNOWN, expected 9.006\n    test 961 GeoidKarney('egm84-15.pgm').height(-51.56, -50.327) kind 2: 6.277  FAILED, KNOWN, expected 6.296\n    test 962 GeoidKarney('egm84-15.pgm').height(-43.129, -167.271) kind 2: -1.483  FAILED, KNOWN, expected -1.481\n    test 963 GeoidKarney('egm84-15.pgm').height(46.374, 71.948) kind 2: -40.929  FAILED, KNOWN, expected -40.915\n    test 964 GeoidKarney('egm84-15.pgm').height(-22.783, 140.657) kind 2: 37.481  FAILED, KNOWN, expected 37.495\n    test 965 GeoidKarney('egm84-15.pgm').height(-12.056, 122.804) kind 2: 32.222  FAILED, KNOWN, expected 32.258\n    test 966 GeoidKarney('egm84-15.pgm').height(30.127, 94.738) kind 2: -41.529\n    test 967 GeoidKarney('egm84-15.pgm').height(46.296, -174.479) kind 2: -1.377\n    test 968 GeoidKarney('egm84-15.pgm').height(34.99, 15.052) kind 2: 35.263  FAILED, KNOWN, expected 35.280\n    test 969 GeoidKarney('egm84-15.pgm').height(-51.287, 90.565) kind 2: 12.958\n    test 970 GeoidKarney('egm84-15.pgm').height(34.217, 141.302) kind 2: 18.423  FAILED, KNOWN, expected 18.307\n    test 971 GeoidKarney('egm84-15.pgm').height(-40.423, -142.787) kind 2: -10.400\n    test 972 GeoidKarney('egm84-15.pgm').height(-17.854, -170.216) kind 2: 28.649  FAILED, KNOWN, expected 28.638\n    test 973 GeoidKarney('egm84-15.pgm').height(47.803, 112.701) kind 2: -24.060  FAILED, KNOWN, expected -24.059\n    test 974 GeoidKarney('egm84-15.pgm').height(-23.276, 133.454) kind 2: 18.800  FAILED, KNOWN, expected 18.806\n    test 975 GeoidKarney('egm84-15.pgm').height(-26.884, -36.571) kind 2: -6.808  FAILED, KNOWN, expected -6.820\n    test 976 GeoidKarney('egm84-15.pgm').height(-37.106, 31.128) kind 2: 31.485  FAILED, KNOWN, expected 31.486\n    test 977 GeoidKarney('egm84-15.pgm').height(-75.363, -173.674) kind 2: -62.021  FAILED, KNOWN, expected -62.024\n    test 978 GeoidKarney('egm84-15.pgm').height(-18.305, 69.016) kind 2: -24.246  FAILED, KNOWN, expected -24.248\n    test 979 GeoidKarney('egm84-15.pgm').height(39.527, 23.58) kind 2: 43.246  FAILED, KNOWN, expected 43.255\n    test 980 GeoidKarney('egm84-15.pgm').height(68.903, 30.97) kind 2: 18.496  FAILED, KNOWN, expected 18.498\n    test 981 GeoidKarney('egm84-15.pgm').height(53.937, 168.318) kind 2: 4.100  FAILED, KNOWN, expected 4.067\n    test 982 GeoidKarney('egm84-15.pgm').height(-38.6, 64.812) kind 2: 25.456  FAILED, KNOWN, expected 25.454\n    test 983 GeoidKarney('egm84-15.pgm').height(-41.396, -69.739) kind 2: 26.619  FAILED, KNOWN, expected 26.657\n    test 984 GeoidKarney('egm84-15.pgm').height(50.158, 72.319) kind 2: -32.003  FAILED, KNOWN, expected -31.966\n    test 985 GeoidKarney('egm84-15.pgm').height(27.692, 176.153) kind 2: -4.422  FAILED, KNOWN, expected -4.415\n    test 986 GeoidKarney('egm84-15.pgm').height(-48.419, 170.454) kind 2: -6.717  FAILED, KNOWN, expected -6.741\n    test 987 GeoidKarney('egm84-15.pgm').height(-65.346, -124.976) kind 2: -34.915  FAILED, KNOWN, expected -34.900\n    test 988 GeoidKarney('egm84-15.pgm').height(-51.873, 167.266) kind 2: -14.214  FAILED, KNOWN, expected -14.223\n    test 989 GeoidKarney('egm84-15.pgm').height(-7.263, 84.308) kind 2: -79.313  FAILED, KNOWN, expected -79.317\n    test 990 GeoidKarney('egm84-15.pgm').height(-1.461, -105.458) kind 2: -16.163\n    test 991 GeoidKarney('egm84-15.pgm').height(7.684, 161.873) kind 2: 36.296  FAILED, KNOWN, expected 36.287\n    test 992 GeoidKarney('egm84-15.pgm').height(-31.475, -158.52) kind 2: 4.066  FAILED, KNOWN, expected 4.068\n    test 993 GeoidKarney('egm84-15.pgm').height(-36.187, 62.917) kind 2: 24.401  FAILED, KNOWN, expected 24.407\n    test 994 GeoidKarney('egm84-15.pgm').height(16.003, 141.687) kind 2: 53.051  FAILED, KNOWN, expected 53.054\n    test 995 GeoidKarney('egm84-15.pgm').height(30.182, 86.261) kind 2: -30.616  FAILED, KNOWN, expected -30.622\n    test 996 GeoidKarney('egm84-15.pgm').height(-77.304, 159.498) kind 2: -53.544  FAILED, KNOWN, expected -53.540\n    test 997 GeoidKarney('egm84-15.pgm').height(39.536, 139.795) kind 2: 36.274  FAILED, KNOWN, expected 36.262\n    test 998 GeoidKarney('egm84-15.pgm').height(8.569, 134.618) kind 2: 64.339  FAILED, KNOWN, expected 64.369\n    test 999 GeoidKarney('egm84-15.pgm').height(14.473, 90.596) kind 2: -61.320  FAILED, KNOWN, expected -61.300\n    test 1000 GeoidKarney('egm84-15.pgm').height(-13.138, -99.589) kind 2: -7.996  FAILED, KNOWN, expected -7.999\n    test 1001 GeoidKarney('egm84-15.pgm').height(34.212, -26.307) kind 2: 41.489  FAILED, KNOWN, expected 41.477\n    test 1002 GeoidKarney('egm84-15.pgm').height(21.89, 76.371) kind 2: -59.881  FAILED, KNOWN, expected -59.876\n    test 1003 GeoidKarney('egm84-15.pgm').height(29.793, 120.487) kind 2: 8.422  FAILED, KNOWN, expected 8.404\n    test 1004 GeoidKarney('egm84-15.pgm').height(15.724, 122.714) kind 2: 39.200  FAILED, KNOWN, expected 39.152\n    test 1005 GeoidKarney('egm84-15.pgm').height(-66.208, -78.499) kind 2: -7.068  FAILED, KNOWN, expected -7.076\n    test 1006 GeoidKarney('egm84-15.pgm').height(-39.507, 55.809) kind 2: 33.179  FAILED, KNOWN, expected 33.178\n    test 1007 GeoidKarney('egm84-15.pgm').height(28.159, 51.476) kind 2: -23.801  FAILED, KNOWN, expected -23.832\n    test 1008 GeoidKarney('egm84-15.pgm').height(-36.207, 120.205) kind 2: -38.175  FAILED, KNOWN, expected -38.206\n    test 1009 GeoidKarney('egm84-15.pgm').height(30.575, -99.998) kind 2: -22.171  FAILED, KNOWN, expected -22.142\n    test 1010 GeoidKarney('egm84-15.pgm').height(-16.993, 37.136) kind 2: -13.746  FAILED, KNOWN, expected -13.765\n    test 1011 GeoidKarney('egm84-15.pgm').height(-11.477, 12.039) kind 2: 16.909  FAILED, KNOWN, expected 16.898\n    test 1012 GeoidKarney('egm84-15.pgm').height(30.428, -144.765) kind 2: -22.479  FAILED, KNOWN, expected -22.474\n    test 1013 GeoidKarney('egm84-15.pgm').height(-17.44, -92.424) kind 2: -4.710  FAILED, KNOWN, expected -4.718\n    test 1014 GeoidKarney('egm84-15.pgm').height(40.203, 143.43) kind 2: 16.680  FAILED, KNOWN, expected 16.635\n    test 1015 GeoidKarney('egm84-15.pgm').height(-37.098, -106.574) kind 2: -9.012\n    test 1016 GeoidKarney('egm84-15.pgm').height(54.62, -68.413) kind 2: -23.556  FAILED, KNOWN, expected -23.543\n    test 1017 GeoidKarney('egm84-15.pgm').height(-31.633, 148.182) kind 2: 26.240  FAILED, KNOWN, expected 26.236\n    test 1018 GeoidKarney('egm84-15.pgm').height(-56.07, -141.407) kind 2: -21.963  FAILED, KNOWN, expected -21.953\n    test 1019 GeoidKarney('egm84-15.pgm').height(-8.195, -52.691) kind 2: -17.959\n    test 1020 GeoidKarney('egm84-15.pgm').height(17.851, 24.749) kind 2: 9.072  FAILED, KNOWN, expected 9.078\n    test 1021 GeoidKarney('egm84-15.pgm').height(0.349, -108.333) kind 2: -19.160  FAILED, KNOWN, expected -19.158\n    test 1022 GeoidKarney('egm84-15.pgm').height(15.038, 126.191) kind 2: 46.776\n    test 1023 GeoidKarney('egm84-15.pgm').height(-21.111, -123.696) kind 2: -8.053  FAILED, KNOWN, expected -8.055\n    test 1024 GeoidKarney('egm84-15.pgm').height(30.947, 173.002) kind 2: -7.681  FAILED, KNOWN, expected -7.696\n    test 1025 GeoidKarney('egm84-15.pgm').height(-10.698, -144.091) kind 2: -1.052  FAILED, KNOWN, expected -1.049\n    test 1026 GeoidKarney('egm84-15.pgm').height(-29.412, 124.753) kind 2: -16.081\n    test 1027 GeoidKarney('egm84-15.pgm').height(38.224, -137.189) kind 2: -35.429  FAILED, KNOWN, expected -35.427\n    test 1028 GeoidKarney('egm84-15.pgm').height(36.064, -132.409) kind 2: -38.648\n    test 1029 GeoidKarney('egm84-15.pgm').height(29.975, 178.076) kind 2: -5.524  FAILED, KNOWN, expected -5.519\n    test 1030 GeoidKarney('egm84-15.pgm').height(-21.346, 169.26) kind 2: 53.448  FAILED, KNOWN, expected 53.431\n    test 1031 GeoidKarney('egm84-15.pgm').height(49.282, -152.934) kind 2: 1.977  FAILED, KNOWN, expected 1.979\n    test 1032 GeoidKarney('egm84-15.pgm').height(16.349, -99.962) kind 2: -13.131  FAILED, KNOWN, expected -13.197\n    test 1033 GeoidKarney('egm84-15.pgm').height(-14.293, -167.34) kind 2: 18.953  FAILED, KNOWN, expected 18.945\n    test 1034 GeoidKarney('egm84-15.pgm').height(47.166, -38.523) kind 2: 45.180  FAILED, KNOWN, expected 45.187\n    test 1035 GeoidKarney('egm84-15.pgm').height(-58.911, 114.347) kind 2: -17.155  FAILED, KNOWN, expected -17.145\n    test 1036 GeoidKarney('egm84-15.pgm').height(-9.055, 111.294) kind 2: 13.136  FAILED, KNOWN, expected 13.146\n    test 1037 GeoidKarney('egm84-15.pgm').height(18.391, 29.692) kind 2: 4.933\n    test 1038 GeoidKarney('egm84-15.pgm').height(-15.074, 22.153) kind 2: 12.313  FAILED, KNOWN, expected 12.326\n    test 1039 GeoidKarney('egm84-15.pgm').height(-4.235, 62.001) kind 2: -60.029  FAILED, KNOWN, expected -60.030\n    test 1040 GeoidKarney('egm84-15.pgm').height(15.171, -86.583) kind 2: 3.034  FAILED, KNOWN, expected 3.110\n    test 1041 GeoidKarney('egm84-15.pgm').height(79.254, 112.116) kind 2: -2.741\n    test 1042 GeoidKarney('egm84-15.pgm').height(15.947, 156.093) kind 2: 32.108  FAILED, KNOWN, expected 32.085\n    test 1043 GeoidKarney('egm84-15.pgm').height(68.371, -177.382) kind 2: 2.069  FAILED, KNOWN, expected 2.060\n    test 1044 GeoidKarney('egm84-15.pgm').height(-41.931, -72.093) kind 2: 22.901  FAILED, KNOWN, expected 22.916\n    test 1045 GeoidKarney('egm84-15.pgm').height(-1.193, -143.133) kind 2: 5.526  FAILED, KNOWN, expected 5.519\n    test 1046 GeoidKarney('egm84-15.pgm').height(-37.006, 154.513) kind 2: 11.019  FAILED, KNOWN, expected 11.020\n    test 1047 GeoidKarney('egm84-15.pgm').height(-22.148, 9.938) kind 2: 22.181  FAILED, KNOWN, expected 22.171\n    test 1048 GeoidKarney('egm84-15.pgm').height(24.329, 109.044) kind 2: -22.957  FAILED, KNOWN, expected -22.944\n    test 1049 GeoidKarney('egm84-15.pgm').height(-54.878, 114.691) kind 2: -17.583  FAILED, KNOWN, expected -17.580\n    test 1050 GeoidKarney('egm84-15.pgm').height(45.601, -80.458) kind 2: -35.728  FAILED, KNOWN, expected -35.738\n    test 1051 GeoidKarney('egm84-15.pgm').height(2.372, 58.974) kind 2: -61.036  FAILED, KNOWN, expected -61.040\n    test 1052 GeoidKarney('egm84-15.pgm').height(15.937, 165.854) kind 2: 20.897  FAILED, KNOWN, expected 20.907\n    test 1053 GeoidKarney('egm84-15.pgm').height(4.889, -24.213) kind 2: 13.865  FAILED, KNOWN, expected 13.874\n    test 1054 GeoidKarney('egm84-15.pgm').height(-11.392, 179.558) kind 2: 40.920  FAILED, KNOWN, expected 40.929\n    test 1055 GeoidKarney('egm84-15.pgm').height(58.246, 4.862) kind 2: 43.196  FAILED, KNOWN, expected 43.191\n    test 1056 GeoidKarney('egm84-15.pgm').height(34.302, -109.109) kind 2: -22.016  FAILED, KNOWN, expected -22.006\n    test 1057 GeoidKarney('egm84-15.pgm').height(-58.196, 117.306) kind 2: -20.378  FAILED, KNOWN, expected -20.375\n    test 1058 GeoidKarney('egm84-15.pgm').height(44.5, 173.769) kind 2: -7.856  FAILED, KNOWN, expected -7.852\n    test 1059 GeoidKarney('egm84-15.pgm').height(-28.863, -139.775) kind 2: -8.680  FAILED, KNOWN, expected -8.674\n    test 1060 GeoidKarney('egm84-15.pgm').height(19.507, -96.099) kind 2: -14.089  FAILED, KNOWN, expected -14.117\n    test 1061 GeoidKarney('egm84-15.pgm').height(-42.488, -73.907) kind 2: 17.249  FAILED, KNOWN, expected 17.251\n    test 1062 GeoidKarney('egm84-15.pgm').height(46.138, -141.429) kind 2: -19.434  FAILED, KNOWN, expected -19.436\n    test 1063 GeoidKarney('egm84-15.pgm').height(60.507, 93.743) kind 2: -31.333  FAILED, KNOWN, expected -31.330\n    test 1064 GeoidKarney('egm84-15.pgm').height(26.219, -145.434) kind 2: -17.088  FAILED, KNOWN, expected -17.090\n    test 1065 GeoidKarney('egm84-15.pgm').height(-28.687, 3.37) kind 2: 24.177  FAILED, KNOWN, expected 24.184\n    test 1066 GeoidKarney('egm84-15.pgm').height(-15.008, 117.45) kind 2: 6.146  FAILED, KNOWN, expected 6.142\n    test 1067 GeoidKarney('egm84-15.pgm').height(40.71, 144.095) kind 2: 11.771  FAILED, KNOWN, expected 11.693\n    test 1068 GeoidKarney('egm84-15.pgm').height(20.823, -173.611) kind 2: 6.830  FAILED, KNOWN, expected 6.840\n    test 1069 GeoidKarney('egm84-15.pgm').height(16.776, -3.009) kind 2: 31.293  FAILED, KNOWN, expected 31.298\n    test 1070 GeoidKarney('egm84-15.pgm').height(41.0, -95.0) kind 2: -31.953  FAILED, KNOWN, expected -31.952\n    test 1071 GeoidKarney('egm84-15.pgm').height(49.0, -120.5) kind 2: -14.946\n    test 1072 GeoidKarney('egm84-15.pgm').height(49.0, -103.5) kind 2: -17.031  FAILED, KNOWN, expected -17.032\n    test 1073 GeoidKarney('egm84-15.pgm').height(49.0, -86.5) kind 2: -37.962\n    test 1074 GeoidKarney('egm84-15.pgm').height(49.0, -69.5) kind 2: -26.493  FAILED, KNOWN, expected -26.492\n    test 1075 GeoidKarney('egm84-15.pgm').height(33.0, -120.5) kind 2: -39.543\n    test 1076 GeoidKarney('egm84-15.pgm').height(33.0, -103.5) kind 2: -22.557  FAILED, KNOWN, expected -22.556\n    test 1077 GeoidKarney('egm84-15.pgm').height(33.0, -86.5) kind 2: -28.710\n    test 1078 GeoidKarney('egm84-15.pgm').height(33.0, -69.5) kind 2: -46.590\n\n    test 1079 GeoidKarney('egm84-15.pgm').height() kind 2, hits 0, eps max (in 0 FAILED): 0.115669\n    test 1080 GeoidKarney('egm84-15.pgm').height() kind 2, hits 0, eps mean (of 210 total): 0.010307\n    test 1081 GeoidKarney('egm84-15.pgm').height() kind 2, hits 0, eps stdev (of 210 total): 0.015203\n    test 1082 GeoidKarney('egm84-15.pgm').toStr: GeoidKarney('egm84-15.pgm'): lowerleft(-90.0, -180.0, -29.712), upperright(90.0, 180.0, 13.098), center(0.0, 0.0, 18.33), highest(-4.5, 148.75, 81.33), lowest(4.75, 79.25, -107.34)\n\n    test 1083 closed: True\n    test 1084 copy(<class 'type'>): (<class 'pygeodesy.geoids.GeoidKarney'>, True)\n    test 1085 GeoidKarney.copy(): (<class 'pygeodesy.geoids.GeoidKarney'>, True)\n    test 1086 GeoidKarney('egm84-15.pgm').height(-76.981, 34.17) kind 3: 11.729\n    test 1087 GeoidKarney('egm84-15.pgm').height(79.695, 88.806) kind 3: 0.271  FAILED, KNOWN, expected 0.270\n    test 1088 GeoidKarney('egm84-15.pgm').height(-15.245, 168.748) kind 3: 67.074\n    test 1089 GeoidKarney('egm84-15.pgm').height(-19.379, 15.855) kind 3: 25.345  FAILED, KNOWN, expected 25.344\n    test 1090 GeoidKarney('egm84-15.pgm').height(43.378, -130.552) kind 3: -28.919\n    test 1091 GeoidKarney('egm84-15.pgm').height(-16.075, 21.795) kind 3: 14.386\n    test 1092 GeoidKarney('egm84-15.pgm').height(-11.256, -73.75) kind 3: 30.699  FAILED, KNOWN, expected 30.700\n    test 1093 GeoidKarney('egm84-15.pgm').height(69.017, -15.921) kind 3: 62.226  FAILED, KNOWN, expected 62.225\n    test 1094 GeoidKarney('egm84-15.pgm').height(2.221, 139.739) kind 3: 70.222\n    test 1095 GeoidKarney('egm84-15.pgm').height(-9.097, 119.142) kind 3: 34.334  FAILED, KNOWN, expected 34.336\n    test 1096 GeoidKarney('egm84-15.pgm').height(-28.524, -22.192) kind 3: 8.206\n    test 1097 GeoidKarney('egm84-15.pgm').height(12.272, -136.424) kind 3: -20.073  FAILED, KNOWN, expected -20.074\n    test 1098 GeoidKarney('egm84-15.pgm').height(-15.203, -85.604) kind 3: -3.129\n    test 1099 GeoidKarney('egm84-15.pgm').height(-63.736, -77.17) kind 3: -3.216  FAILED, KNOWN, expected -3.217\n    test 1100 GeoidKarney('egm84-15.pgm').height(-48.771, -90.102) kind 3: -1.532  FAILED, KNOWN, expected -1.531\n    test 1101 GeoidKarney('egm84-15.pgm').height(-0.179, -126.368) kind 3: -16.741  FAILED, KNOWN, expected -16.742\n    test 1102 GeoidKarney('egm84-15.pgm').height(1.586, -128.887) kind 3: -15.413  FAILED, KNOWN, expected -15.412\n    test 1103 GeoidKarney('egm84-15.pgm').height(-48.781, -2.684) kind 3: 25.079  FAILED, KNOWN, expected 25.078\n    test 1104 GeoidKarney('egm84-15.pgm').height(-49.092, 136.862) kind 3: -18.120\n    test 1105 GeoidKarney('egm84-15.pgm').height(47.732, 17.552) kind 3: 46.225  FAILED, KNOWN, expected 46.224\n    test 1106 GeoidKarney('egm84-15.pgm').height(-49.11, 85.706) kind 3: 18.649\n    test 1107 GeoidKarney('egm84-15.pgm').height(-49.162, 40.321) kind 3: 44.763  FAILED, KNOWN, expected 44.764\n    test 1108 GeoidKarney('egm84-15.pgm').height(3.498, 158.118) kind 3: 51.090  FAILED, KNOWN, expected 51.089\n    test 1109 GeoidKarney('egm84-15.pgm').height(-35.616, 122.648) kind 3: -34.470  FAILED, KNOWN, expected -34.471\n    test 1110 GeoidKarney('egm84-15.pgm').height(56.598, -96.114) kind 3: -39.125  FAILED, KNOWN, expected -39.124\n    test 1111 GeoidKarney('egm84-15.pgm').height(-31.85, 149.121) kind 3: 28.142\n    test 1112 GeoidKarney('egm84-15.pgm').height(-26.569, -177.792) kind 3: 49.620  FAILED, KNOWN, expected 49.619\n    test 1113 GeoidKarney('egm84-15.pgm').height(76.735, -65.753) kind 3: 22.576  FAILED, KNOWN, expected 22.575\n    test 1114 GeoidKarney('egm84-15.pgm').height(-21.404, -122.268) kind 3: -6.893\n    test 1115 GeoidKarney('egm84-15.pgm').height(-77.133, -65.474) kind 3: -15.013  FAILED, KNOWN, expected -15.012\n    test 1116 GeoidKarney('egm84-15.pgm').height(-58.812, 2.276) kind 3: 18.777  FAILED, KNOWN, expected 18.776\n    test 1117 GeoidKarney('egm84-15.pgm').height(4.415, 155.683) kind 3: 53.645\n    test 1118 GeoidKarney('egm84-15.pgm').height(-28.146, 107.081) kind 3: -39.073  FAILED, KNOWN, expected -39.074\n    test 1119 GeoidKarney('egm84-15.pgm').height(-10.551, -126.69) kind 3: -9.645\n    test 1120 GeoidKarney('egm84-15.pgm').height(-25.444, -103.337) kind 3: -2.527  FAILED, KNOWN, expected -2.528\n    test 1121 GeoidKarney('egm84-15.pgm').height(24.436, 46.159) kind 3: -6.907\n    test 1122 GeoidKarney('egm84-15.pgm').height(-72.889, 37.107) kind 3: 21.715  FAILED, KNOWN, expected 21.711\n    test 1123 GeoidKarney('egm84-15.pgm').height(-19.629, 13.245) kind 3: 25.612  FAILED, KNOWN, expected 25.611\n    test 1124 GeoidKarney('egm84-15.pgm').height(-7.602, 171.265) kind 3: 41.570  FAILED, KNOWN, expected 41.569\n    test 1125 GeoidKarney('egm84-15.pgm').height(-45.364, -1.876) kind 3: 23.280\n    test 1126 GeoidKarney('egm84-15.pgm').height(-7.292, -69.18) kind 3: 24.502\n    test 1127 GeoidKarney('egm84-15.pgm').height(-31.566, -166.689) kind 3: 14.825  FAILED, KNOWN, expected 14.826\n    test 1128 GeoidKarney('egm84-15.pgm').height(-82.751, -162.085) kind 3: -45.104\n    test 1129 GeoidKarney('egm84-15.pgm').height(-40.7, 99.466) kind 3: -17.252\n    test 1130 GeoidKarney('egm84-15.pgm').height(48.676, 39.69) kind 3: 12.972\n    test 1131 GeoidKarney('egm84-15.pgm').height(74.817, -78.404) kind 3: 4.777  FAILED, KNOWN, expected 4.776\n    test 1132 GeoidKarney('egm84-15.pgm').height(-81.032, -63.865) kind 3: -23.578  FAILED, KNOWN, expected -23.577\n    test 1133 GeoidKarney('egm84-15.pgm').height(74.022, 9.432) kind 3: 43.886  FAILED, KNOWN, expected 43.885\n    test 1134 GeoidKarney('egm84-15.pgm').height(-75.071, 17.579) kind 3: 17.071  FAILED, KNOWN, expected 17.072\n    test 1135 GeoidKarney('egm84-15.pgm').height(-12.546, -54.851) kind 3: -6.643\n    test 1136 GeoidKarney('egm84-15.pgm').height(-13.621, 42.408) kind 3: -23.326  FAILED, KNOWN, expected -23.325\n    test 1137 GeoidKarney('egm84-15.pgm').height(-2.266, -91.951) kind 3: -10.699  FAILED, KNOWN, expected -10.698\n    test 1138 GeoidKarney('egm84-15.pgm').height(-18.672, 42.547) kind 3: -10.268  FAILED, KNOWN, expected -10.265\n    test 1139 GeoidKarney('egm84-15.pgm').height(-41.44, 157.413) kind 3: 0.690  FAILED, KNOWN, expected 0.689\n    test 1140 GeoidKarney('egm84-15.pgm').height(53.686, -79.375) kind 3: -43.759  FAILED, KNOWN, expected -43.758\n    test 1141 GeoidKarney('egm84-15.pgm').height(39.26, -30.351) kind 3: 57.553  FAILED, KNOWN, expected 57.554\n    test 1142 GeoidKarney('egm84-15.pgm').height(-51.699, -141.493) kind 3: -16.937  FAILED, KNOWN, expected -16.936\n    test 1143 GeoidKarney('egm84-15.pgm').height(36.585, 4.515) kind 3: 45.291  FAILED, KNOWN, expected 45.295\n    test 1144 GeoidKarney('egm84-15.pgm').height(39.642, -54.659) kind 3: -13.585  FAILED, KNOWN, expected -13.586\n    test 1145 GeoidKarney('egm84-15.pgm').height(59.761, 166.567) kind 3: 11.467  FAILED, KNOWN, expected 11.468\n    test 1146 GeoidKarney('egm84-15.pgm').height(51.83, 13.357) kind 3: 42.092\n    test 1147 GeoidKarney('egm84-15.pgm').height(-36.531, -175.431) kind 3: 22.830\n    test 1148 GeoidKarney('egm84-15.pgm').height(-37.08, 125.264) kind 3: -32.302\n    test 1149 GeoidKarney('egm84-15.pgm').height(-68.651, 92.732) kind 3: 9.228\n    test 1150 GeoidKarney('egm84-15.pgm').height(35.087, 45.336) kind 3: 5.966  FAILED, KNOWN, expected 5.965\n    test 1151 GeoidKarney('egm84-15.pgm').height(-61.356, -169.379) kind 3: -45.012  FAILED, KNOWN, expected -45.013\n    test 1152 GeoidKarney('egm84-15.pgm').height(-36.955, 179.12) kind 3: 21.118\n    test 1153 GeoidKarney('egm84-15.pgm').height(10.248, -6.714) kind 3: 30.497\n    test 1154 GeoidKarney('egm84-15.pgm').height(36.868, 84.602) kind 3: -40.397  FAILED, KNOWN, expected -40.396\n    test 1155 GeoidKarney('egm84-15.pgm').height(28.637, 88.933) kind 3: -31.701  FAILED, KNOWN, expected -31.704\n    test 1156 GeoidKarney('egm84-15.pgm').height(54.811, -99.968) kind 3: -32.276  FAILED, KNOWN, expected -32.277\n    test 1157 GeoidKarney('egm84-15.pgm').height(7.611, 145.911) kind 3: 61.024\n    test 1158 GeoidKarney('egm84-15.pgm').height(59.412, 170.102) kind 3: 4.996  FAILED, KNOWN, expected 4.994\n    test 1159 GeoidKarney('egm84-15.pgm').height(-61.469, 126.144) kind 3: -30.238  FAILED, KNOWN, expected -30.237\n    test 1160 GeoidKarney('egm84-15.pgm').height(18.514, -137.083) kind 3: -26.006\n    test 1161 GeoidKarney('egm84-15.pgm').height(7.854, -126.799) kind 3: -29.283\n    test 1162 GeoidKarney('egm84-15.pgm').height(47.489, 134.183) kind 3: 22.393  FAILED, KNOWN, expected 22.394\n    test 1163 GeoidKarney('egm84-15.pgm').height(-34.144, -11.922) kind 3: 17.550\n    test 1164 GeoidKarney('egm84-15.pgm').height(-58.389, 117.458) kind 3: -20.623  FAILED, KNOWN, expected -20.622\n    test 1165 GeoidKarney('egm84-15.pgm').height(9.773, 95.846) kind 3: -41.482  FAILED, KNOWN, expected -41.484\n    test 1166 GeoidKarney('egm84-15.pgm').height(-53.12, 136.994) kind 3: -20.968\n    test 1167 GeoidKarney('egm84-15.pgm').height(-50.35, 0.075) kind 3: 25.567  FAILED, KNOWN, expected 25.568\n    test 1168 GeoidKarney('egm84-15.pgm').height(31.438, -170.879) kind 3: -8.581\n    test 1169 GeoidKarney('egm84-15.pgm').height(37.541, -153.024) kind 3: -18.330  FAILED, KNOWN, expected -18.329\n    test 1170 GeoidKarney('egm84-15.pgm').height(27.586, 2.444) kind 3: 25.000  FAILED, KNOWN, expected 25.001\n    test 1171 GeoidKarney('egm84-15.pgm').height(-26.139, -106.201) kind 3: -2.941  FAILED, KNOWN, expected -2.940\n    test 1172 GeoidKarney('egm84-15.pgm').height(-33.426, -14.84) kind 3: 18.229  FAILED, KNOWN, expected 18.228\n    test 1173 GeoidKarney('egm84-15.pgm').height(39.586, -153.019) kind 3: -16.507\n    test 1174 GeoidKarney('egm84-15.pgm').height(-60.79, -2.578) kind 3: 14.275\n    test 1175 GeoidKarney('egm84-15.pgm').height(-20.131, 21.975) kind 3: 16.853  FAILED, KNOWN, expected 16.852\n    test 1176 GeoidKarney('egm84-15.pgm').height(75.649, 99.921) kind 3: -6.872\n    test 1177 GeoidKarney('egm84-15.pgm').height(-0.385, -23.788) kind 3: 9.005  FAILED, KNOWN, expected 9.006\n    test 1178 GeoidKarney('egm84-15.pgm').height(-51.56, -50.327) kind 3: 6.294  FAILED, KNOWN, expected 6.296\n    test 1179 GeoidKarney('egm84-15.pgm').height(-43.129, -167.271) kind 3: -1.482  FAILED, KNOWN, expected -1.481\n    test 1180 GeoidKarney('egm84-15.pgm').height(46.374, 71.948) kind 3: -40.916  FAILED, KNOWN, expected -40.915\n    test 1181 GeoidKarney('egm84-15.pgm').height(-22.783, 140.657) kind 3: 37.495\n    test 1182 GeoidKarney('egm84-15.pgm').height(-12.056, 122.804) kind 3: 32.255  FAILED, KNOWN, expected 32.258\n    test 1183 GeoidKarney('egm84-15.pgm').height(30.127, 94.738) kind 3: -41.528  FAILED, KNOWN, expected -41.529\n    test 1184 GeoidKarney('egm84-15.pgm').height(46.296, -174.479) kind 3: -1.376  FAILED, KNOWN, expected -1.377\n    test 1185 GeoidKarney('egm84-15.pgm').height(34.99, 15.052) kind 3: 35.279  FAILED, KNOWN, expected 35.280\n    test 1186 GeoidKarney('egm84-15.pgm').height(-51.287, 90.565) kind 3: 12.958\n    test 1187 GeoidKarney('egm84-15.pgm').height(34.217, 141.302) kind 3: 18.313  FAILED, KNOWN, expected 18.307\n    test 1188 GeoidKarney('egm84-15.pgm').height(-40.423, -142.787) kind 3: -10.400\n    test 1189 GeoidKarney('egm84-15.pgm').height(-17.854, -170.216) kind 3: 28.640  FAILED, KNOWN, expected 28.638\n    test 1190 GeoidKarney('egm84-15.pgm').height(47.803, 112.701) kind 3: -24.059\n    test 1191 GeoidKarney('egm84-15.pgm').height(-23.276, 133.454) kind 3: 18.806\n    test 1192 GeoidKarney('egm84-15.pgm').height(-26.884, -36.571) kind 3: -6.819  FAILED, KNOWN, expected -6.820\n    test 1193 GeoidKarney('egm84-15.pgm').height(-37.106, 31.128) kind 3: 31.486\n    test 1194 GeoidKarney('egm84-15.pgm').height(-75.363, -173.674) kind 3: -62.024\n    test 1195 GeoidKarney('egm84-15.pgm').height(-18.305, 69.016) kind 3: -24.247  FAILED, KNOWN, expected -24.248\n    test 1196 GeoidKarney('egm84-15.pgm').height(39.527, 23.58) kind 3: 43.255\n    test 1197 GeoidKarney('egm84-15.pgm').height(68.903, 30.97) kind 3: 18.499  FAILED, KNOWN, expected 18.498\n    test 1198 GeoidKarney('egm84-15.pgm').height(53.937, 168.318) kind 3: 4.069  FAILED, KNOWN, expected 4.067\n    test 1199 GeoidKarney('egm84-15.pgm').height(-38.6, 64.812) kind 3: 25.455  FAILED, KNOWN, expected 25.454\n    test 1200 GeoidKarney('egm84-15.pgm').height(-41.396, -69.739) kind 3: 26.655  FAILED, KNOWN, expected 26.657\n    test 1201 GeoidKarney('egm84-15.pgm').height(50.158, 72.319) kind 3: -31.967  FAILED, KNOWN, expected -31.966\n    test 1202 GeoidKarney('egm84-15.pgm').height(27.692, 176.153) kind 3: -4.416  FAILED, KNOWN, expected -4.415\n    test 1203 GeoidKarney('egm84-15.pgm').height(-48.419, 170.454) kind 3: -6.741\n    test 1204 GeoidKarney('egm84-15.pgm').height(-65.346, -124.976) kind 3: -34.902  FAILED, KNOWN, expected -34.900\n    test 1205 GeoidKarney('egm84-15.pgm').height(-51.873, 167.266) kind 3: -14.223\n    test 1206 GeoidKarney('egm84-15.pgm').height(-7.263, 84.308) kind 3: -79.317\n    test 1207 GeoidKarney('egm84-15.pgm').height(-1.461, -105.458) kind 3: -16.162  FAILED, KNOWN, expected -16.163\n    test 1208 GeoidKarney('egm84-15.pgm').height(7.684, 161.873) kind 3: 36.288  FAILED, KNOWN, expected 36.287\n    test 1209 GeoidKarney('egm84-15.pgm').height(-31.475, -158.52) kind 3: 4.067  FAILED, KNOWN, expected 4.068\n    test 1210 GeoidKarney('egm84-15.pgm').height(-36.187, 62.917) kind 3: 24.406  FAILED, KNOWN, expected 24.407\n    test 1211 GeoidKarney('egm84-15.pgm').height(16.003, 141.687) kind 3: 53.053  FAILED, KNOWN, expected 53.054\n    test 1212 GeoidKarney('egm84-15.pgm').height(30.182, 86.261) kind 3: -30.621  FAILED, KNOWN, expected -30.622\n    test 1213 GeoidKarney('egm84-15.pgm').height(-77.304, 159.498) kind 3: -53.540\n    test 1214 GeoidKarney('egm84-15.pgm').height(39.536, 139.795) kind 3: 36.262\n    test 1215 GeoidKarney('egm84-15.pgm').height(8.569, 134.618) kind 3: 64.367  FAILED, KNOWN, expected 64.369\n    test 1216 GeoidKarney('egm84-15.pgm').height(14.473, 90.596) kind 3: -61.301  FAILED, KNOWN, expected -61.300\n    test 1217 GeoidKarney('egm84-15.pgm').height(-13.138, -99.589) kind 3: -8.000  FAILED, KNOWN, expected -7.999\n    test 1218 GeoidKarney('egm84-15.pgm').height(34.212, -26.307) kind 3: 41.479  FAILED, KNOWN, expected 41.477\n    test 1219 GeoidKarney('egm84-15.pgm').height(21.89, 76.371) kind 3: -59.875  FAILED, KNOWN, expected -59.876\n    test 1220 GeoidKarney('egm84-15.pgm').height(29.793, 120.487) kind 3: 8.404\n    test 1221 GeoidKarney('egm84-15.pgm').height(15.724, 122.714) kind 3: 39.154  FAILED, KNOWN, expected 39.152\n    test 1222 GeoidKarney('egm84-15.pgm').height(-66.208, -78.499) kind 3: -7.076\n    test 1223 GeoidKarney('egm84-15.pgm').height(-39.507, 55.809) kind 3: 33.179  FAILED, KNOWN, expected 33.178\n    test 1224 GeoidKarney('egm84-15.pgm').height(28.159, 51.476) kind 3: -23.832\n    test 1225 GeoidKarney('egm84-15.pgm').height(-36.207, 120.205) kind 3: -38.206\n    test 1226 GeoidKarney('egm84-15.pgm').height(30.575, -99.998) kind 3: -22.144  FAILED, KNOWN, expected -22.142\n    test 1227 GeoidKarney('egm84-15.pgm').height(-16.993, 37.136) kind 3: -13.763  FAILED, KNOWN, expected -13.765\n    test 1228 GeoidKarney('egm84-15.pgm').height(-11.477, 12.039) kind 3: 16.899  FAILED, KNOWN, expected 16.898\n    test 1229 GeoidKarney('egm84-15.pgm').height(30.428, -144.765) kind 3: -22.475  FAILED, KNOWN, expected -22.474\n    test 1230 GeoidKarney('egm84-15.pgm').height(-17.44, -92.424) kind 3: -4.717  FAILED, KNOWN, expected -4.718\n    test 1231 GeoidKarney('egm84-15.pgm').height(40.203, 143.43) kind 3: 16.635\n    test 1232 GeoidKarney('egm84-15.pgm').height(-37.098, -106.574) kind 3: -9.011  FAILED, KNOWN, expected -9.012\n    test 1233 GeoidKarney('egm84-15.pgm').height(54.62, -68.413) kind 3: -23.544  FAILED, KNOWN, expected -23.543\n    test 1234 GeoidKarney('egm84-15.pgm').height(-31.633, 148.182) kind 3: 26.236\n    test 1235 GeoidKarney('egm84-15.pgm').height(-56.07, -141.407) kind 3: -21.955  FAILED, KNOWN, expected -21.953\n    test 1236 GeoidKarney('egm84-15.pgm').height(-8.195, -52.691) kind 3: -17.959\n    test 1237 GeoidKarney('egm84-15.pgm').height(17.851, 24.749) kind 3: 9.078\n    test 1238 GeoidKarney('egm84-15.pgm').height(0.349, -108.333) kind 3: -19.157  FAILED, KNOWN, expected -19.158\n    test 1239 GeoidKarney('egm84-15.pgm').height(15.038, 126.191) kind 3: 46.776\n    test 1240 GeoidKarney('egm84-15.pgm').height(-21.111, -123.696) kind 3: -8.055\n    test 1241 GeoidKarney('egm84-15.pgm').height(30.947, 173.002) kind 3: -7.695  FAILED, KNOWN, expected -7.696\n    test 1242 GeoidKarney('egm84-15.pgm').height(-10.698, -144.091) kind 3: -1.048  FAILED, KNOWN, expected -1.049\n    test 1243 GeoidKarney('egm84-15.pgm').height(-29.412, 124.753) kind 3: -16.082  FAILED, KNOWN, expected -16.081\n    test 1244 GeoidKarney('egm84-15.pgm').height(38.224, -137.189) kind 3: -35.426  FAILED, KNOWN, expected -35.427\n    test 1245 GeoidKarney('egm84-15.pgm').height(36.064, -132.409) kind 3: -38.648\n    test 1246 GeoidKarney('egm84-15.pgm').height(29.975, 178.076) kind 3: -5.519\n    test 1247 GeoidKarney('egm84-15.pgm').height(-21.346, 169.26) kind 3: 53.430  FAILED, KNOWN, expected 53.431\n    test 1248 GeoidKarney('egm84-15.pgm').height(49.282, -152.934) kind 3: 1.978  FAILED, KNOWN, expected 1.979\n    test 1249 GeoidKarney('egm84-15.pgm').height(16.349, -99.962) kind 3: -13.194  FAILED, KNOWN, expected -13.197\n    test 1250 GeoidKarney('egm84-15.pgm').height(-14.293, -167.34) kind 3: 18.945\n    test 1251 GeoidKarney('egm84-15.pgm').height(47.166, -38.523) kind 3: 45.185  FAILED, KNOWN, expected 45.187\n    test 1252 GeoidKarney('egm84-15.pgm').height(-58.911, 114.347) kind 3: -17.146  FAILED, KNOWN, expected -17.145\n    test 1253 GeoidKarney('egm84-15.pgm').height(-9.055, 111.294) kind 3: 13.145  FAILED, KNOWN, expected 13.146\n    test 1254 GeoidKarney('egm84-15.pgm').height(18.391, 29.692) kind 3: 4.932  FAILED, KNOWN, expected 4.933\n    test 1255 GeoidKarney('egm84-15.pgm').height(-15.074, 22.153) kind 3: 12.327  FAILED, KNOWN, expected 12.326\n    test 1256 GeoidKarney('egm84-15.pgm').height(-4.235, 62.001) kind 3: -60.029  FAILED, KNOWN, expected -60.030\n    test 1257 GeoidKarney('egm84-15.pgm').height(15.171, -86.583) kind 3: 3.107  FAILED, KNOWN, expected 3.110\n    test 1258 GeoidKarney('egm84-15.pgm').height(79.254, 112.116) kind 3: -2.741\n    test 1259 GeoidKarney('egm84-15.pgm').height(15.947, 156.093) kind 3: 32.086  FAILED, KNOWN, expected 32.085\n    test 1260 GeoidKarney('egm84-15.pgm').height(68.371, -177.382) kind 3: 2.060\n    test 1261 GeoidKarney('egm84-15.pgm').height(-41.931, -72.093) kind 3: 22.916\n    test 1262 GeoidKarney('egm84-15.pgm').height(-1.193, -143.133) kind 3: 5.519\n    test 1263 GeoidKarney('egm84-15.pgm').height(-37.006, 154.513) kind 3: 11.021  FAILED, KNOWN, expected 11.020\n    test 1264 GeoidKarney('egm84-15.pgm').height(-22.148, 9.938) kind 3: 22.171\n    test 1265 GeoidKarney('egm84-15.pgm').height(24.329, 109.044) kind 3: -22.945  FAILED, KNOWN, expected -22.944\n    test 1266 GeoidKarney('egm84-15.pgm').height(-54.878, 114.691) kind 3: -17.579  FAILED, KNOWN, expected -17.580\n    test 1267 GeoidKarney('egm84-15.pgm').height(45.601, -80.458) kind 3: -35.737  FAILED, KNOWN, expected -35.738\n    test 1268 GeoidKarney('egm84-15.pgm').height(2.372, 58.974) kind 3: -61.040\n    test 1269 GeoidKarney('egm84-15.pgm').height(15.937, 165.854) kind 3: 20.906  FAILED, KNOWN, expected 20.907\n    test 1270 GeoidKarney('egm84-15.pgm').height(4.889, -24.213) kind 3: 13.874\n    test 1271 GeoidKarney('egm84-15.pgm').height(-11.392, 179.558) kind 3: 40.928  FAILED, KNOWN, expected 40.929\n    test 1272 GeoidKarney('egm84-15.pgm').height(58.246, 4.862) kind 3: 43.191\n    test 1273 GeoidKarney('egm84-15.pgm').height(34.302, -109.109) kind 3: -22.006\n    test 1274 GeoidKarney('egm84-15.pgm').height(-58.196, 117.306) kind 3: -20.375\n    test 1275 GeoidKarney('egm84-15.pgm').height(44.5, 173.769) kind 3: -7.851  FAILED, KNOWN, expected -7.852\n    test 1276 GeoidKarney('egm84-15.pgm').height(-28.863, -139.775) kind 3: -8.675  FAILED, KNOWN, expected -8.674\n    test 1277 GeoidKarney('egm84-15.pgm').height(19.507, -96.099) kind 3: -14.116  FAILED, KNOWN, expected -14.117\n    test 1278 GeoidKarney('egm84-15.pgm').height(-42.488, -73.907) kind 3: 17.252  FAILED, KNOWN, expected 17.251\n    test 1279 GeoidKarney('egm84-15.pgm').height(46.138, -141.429) kind 3: -19.435  FAILED, KNOWN, expected -19.436\n    test 1280 GeoidKarney('egm84-15.pgm').height(60.507, 93.743) kind 3: -31.331  FAILED, KNOWN, expected -31.330\n    test 1281 GeoidKarney('egm84-15.pgm').height(26.219, -145.434) kind 3: -17.091  FAILED, KNOWN, expected -17.090\n    test 1282 GeoidKarney('egm84-15.pgm').height(-28.687, 3.37) kind 3: 24.184\n    test 1283 GeoidKarney('egm84-15.pgm').height(-15.008, 117.45) kind 3: 6.142\n    test 1284 GeoidKarney('egm84-15.pgm').height(40.71, 144.095) kind 3: 11.693\n    test 1285 GeoidKarney('egm84-15.pgm').height(20.823, -173.611) kind 3: 6.839  FAILED, KNOWN, expected 6.840\n    test 1286 GeoidKarney('egm84-15.pgm').height(16.776, -3.009) kind 3: 31.298\n    test 1287 GeoidKarney('egm84-15.pgm').height(41.0, -95.0) kind 3: -31.952\n    test 1288 GeoidKarney('egm84-15.pgm').height(49.0, -120.5) kind 3: -14.946\n    test 1289 GeoidKarney('egm84-15.pgm').height(49.0, -103.5) kind 3: -17.032\n    test 1290 GeoidKarney('egm84-15.pgm').height(49.0, -86.5) kind 3: -37.962\n    test 1291 GeoidKarney('egm84-15.pgm').height(49.0, -69.5) kind 3: -26.492\n    test 1292 GeoidKarney('egm84-15.pgm').height(33.0, -120.5) kind 3: -39.543\n    test 1293 GeoidKarney('egm84-15.pgm').height(33.0, -103.5) kind 3: -22.556\n    test 1294 GeoidKarney('egm84-15.pgm').height(33.0, -86.5) kind 3: -28.710\n    test 1295 GeoidKarney('egm84-15.pgm').height(33.0, -69.5) kind 3: -46.590\n\n    test 1296 GeoidKarney('egm84-15.pgm').height() kind 3, hits 0, eps max (in 0 FAILED): 0.005459\n    test 1297 GeoidKarney('egm84-15.pgm').height() kind 3, hits 0, eps mean (of 210 total): 0.000736\n    test 1298 GeoidKarney('egm84-15.pgm').height() kind 3, hits 0, eps stdev (of 210 total): 0.000728\n    test 1299 GeoidKarney('egm84-15.pgm').toStr: GeoidKarney('egm84-15.pgm'): lowerleft(-90.0, -180.0, -29.712), upperright(90.0, 180.0, 13.098), center(0.0, 0.0, 18.33), highest(-4.5, 148.75, 81.33), lowest(4.75, 79.25, -107.34)\n\n    test 1300 closed: True\n    test 1301 copy(<class 'type'>): (<class 'pygeodesy.geoids.GeoidKarney'>, True)\n    test 1302 GeoidKarney.copy(): (<class 'pygeodesy.geoids.GeoidKarney'>, True)\n\n    213 tests skipped (639): no scipy\n\n    12 tests skipped (651): no scipy\n\n    12 tests skipped (663): no scipy\n\n    778 of 1302 testGeoids.py tests (59.8%) FAILED, ALL KNOWN, 663 skipped (pygeodesy 26.3.26 Python 3.14.3 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 9.011 sec\nrunning /Library/Framewo....n3.14 -W default ~/PyGeodesy/test/testGreatCircle.py\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.F_D from .dms by testGreatCircle.py line 40\n# lazily imported pygeodesy.F_DMS from .dms by testGreatCircle.py line 40\n# lazily imported pygeodesy.classname from .named by testGreatCircle.py line 40\n# lazily imported pygeodesy.bearingDMS from .dms by testGreatCircle.py line 40\n# lazily imported pygeodesy.CrossError from .errors by testGreatCircle.py line 40\n# lazily imported pygeodesy.crosserrors from .errors by testGreatCircle.py line 40\n# lazily imported pygeodesy.sphericalNvector by testGreatCircle.py line 190\n# lazily imported pygeodesy.sphericalTrigonometry by testGreatCircle.py line 190\n\n    testing testGreatCircle.py 23.05.05 isLazy=3\n\n    testGreatCircle(pygeodesy.sphericalNvector, 25.05.27)\n    test 1 InitialBearingSameLocations: 0.0\n    test 2 InitialBearingEqualLocations: 0.0\n    test 3 FinalBearingSameLocations: 180.0\n    test 4 FinalBearingEqualLocations: 180.0\n# imported pygeodesy.basics into errors.py line 443\n    test 5 FinalBearingCrossError: point (LatLon(43°55′51.28″N, 072°03′13.72″W)) or other (LatLon(43°55′51.28″N, 072°03′13.72″W)): coincident\n    test 6 DistanceSameLocations: 0.0\n    test 7 DistanceEqualLocations: 0.0\n    test 8 DistanceEiffelToVersailles: 14084.300096  FAILED, KNOWN, expected 14084.280705\n    test 9 DistanceVersaillesToEiffel: 14084.300096  FAILED, KNOWN, expected 14084.280705\n    test 10 InitialBearingEiffelToVersailles: 245.13460297\n    test 11 InitialBearingEiffelToVersailles(DMS): 245°08′04.5707″\n    test 12 InitialBearingVersaillesToEiffel: 65.003253951\n    test 13 InitialBearingVersaillesToEiffel(DMS): 65°00′11.7142″\n    test 14 FinalBearingEiffelToVersailles: 245.00325395\n    test 15 FinalBearingEiffelToVersailles(DMS): 245°00′11.7142″\n    test 16 FinalBearingVersaillesToEiffel: 65.134602969\n    test 17 FinalBearingVersaillesToEiffel(DMS): 65°08′04.5707″\n    test 18 GenerateLocationVersailles: 48.804766°N, 002.120339°E\n    test 19 GenerateLocationEiffel: 48.858158°N, 002.294825°E\n    test 20 MidpointEiffelToVersailles: 48.831495°N, 002.207536°E\n    test 21 MidpointEiffelToVersailles(DMS): 48°49′53.3817″N, 002°12′27.1279″E\n    test 22 MidpointEiffelToVersailles(m): 7042.15004788  FAILED, KNOWN, expected 7042.15974330\n    test 23 MidpointVersaillesToEiffel: 48.831495°N, 002.207536°E  FAILED, KNOWN, expected 48.831495°N, 002.207535°E\n    test 24 MidpointVersaillesToEiffel(DMS): 48°49′53.3817″N, 002°12′27.1279″E\n    test 25 MidpointVersaillesToEiffel(m): 7042.15004788  FAILED, KNOWN, expected 7042.15974330\n    test 26 Intersection: 48.83569095°N, 002.221252031°E\n    test 27 Intersection: 48.8356909498836°N, 002.2212520313074°E\n    test 28 CrossTrackDistance200m+90°: 200.0\n    test 29 CrossTrackDistance200m+270°: -200.0\n    test 30 CrossTrackDistanceCloseToZero: 0.0000000\n\n    testGreatCircle(pygeodesy.sphericalTrigonometry, 25.08.31)\n    test 31 InitialBearingSameLocations: 0.0\n    test 32 InitialBearingEqualLocations: 0.0\n    test 33 FinalBearingSameLocations: 180.0\n    test 34 FinalBearingEqualLocations: 180.0\n    test 35 FinalBearingCrossError: point (LatLon(43°55′51.28″N, 072°03′13.72″W)), other (LatLon(43°55′51.28″N, 072°03′13.72″W)) or wrap (False): coincident\n    test 36 DistanceSameLocations: 0.0\n    test 37 DistanceEqualLocations: 0.0\n    test 38 DistanceEiffelToVersailles: 14084.300096  FAILED, KNOWN, expected 14084.280705\n    test 39 DistanceVersaillesToEiffel: 14084.300096  FAILED, KNOWN, expected 14084.280705\n    test 40 InitialBearingEiffelToVersailles: 245.13460297\n    test 41 InitialBearingEiffelToVersailles(DMS): 245°08′04.5707″\n    test 42 InitialBearingVersaillesToEiffel: 65.003253951\n    test 43 InitialBearingVersaillesToEiffel(DMS): 65°00′11.7142″\n    test 44 FinalBearingEiffelToVersailles: 245.00325395\n    test 45 FinalBearingEiffelToVersailles(DMS): 245°00′11.7142″\n    test 46 FinalBearingVersaillesToEiffel: 65.134602969\n    test 47 FinalBearingVersaillesToEiffel(DMS): 65°08′04.5707″\n    test 48 GenerateLocationVersailles: 48.804766°N, 002.120339°E\n    test 49 GenerateLocationEiffel: 48.858158°N, 002.294825°E\n    test 50 MidpointEiffelToVersailles: 48.831495°N, 002.207536°E\n    test 51 MidpointEiffelToVersailles(DMS): 48°49′53.3817″N, 002°12′27.1279″E\n    test 52 MidpointEiffelToVersailles(m): 7042.15004788  FAILED, KNOWN, expected 7042.15974330\n    test 53 MidpointVersaillesToEiffel: 48.831495°N, 002.207536°E  FAILED, KNOWN, expected 48.831495°N, 002.207535°E\n    test 54 MidpointVersaillesToEiffel(DMS): 48°49′53.3817″N, 002°12′27.1279″E\n    test 55 MidpointVersaillesToEiffel(m): 7042.15004788  FAILED, KNOWN, expected 7042.15974330\n    test 56 Intersection: 48.83569095°N, 002.221252031°E\n    test 57 Intersection: 48.8356909498836°N, 002.2212520313074°E\n    test 58 CrossTrackDistance200m+90°: 200.0\n    test 59 CrossTrackDistance200m+270°: -200.0\n    test 60 CrossTrackDistanceCloseToZero: 0.0000000\n\n    10 of 60 testGreatCircle.py tests (16.7%) FAILED, ALL KNOWN (pygeodesy 26.3.26 Python 3.14.3 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 7.227 ms\nrunning /Library/Framewo....n3.14 -W default ~/PyGeodesy/test/testHausdorff.py\n./pygeodesy/hausdorff.py:605: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  self._func = self.datum.ellipsoid.geodesic.Inverse1\n./pygeodesy/ellipsoidalKarney.py:94: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return self.datum.ellipsoid.geodesic\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.Datums from .datums by testHausdorff.py line 12\n# lazily imported pygeodesy.fstr from .streprs by testHausdorff.py line 12\n# lazily imported pygeodesy.hausdorff_ from .hausdorff by testHausdorff.py line 12\n# lazily imported pygeodesy.HausdorffCosineLaw from .hausdorff by testHausdorff.py line 12\n# lazily imported pygeodesy.HausdorffDegrees from .hausdorff by testHausdorff.py line 12\n# lazily imported pygeodesy.HausdorffDistanceTo from .hausdorff by testHausdorff.py line 12\n# lazily imported pygeodesy.HausdorffEquirectangular from .hausdorff by testHausdorff.py line 12\n# lazily imported pygeodesy.HausdorffEuclidean from .hausdorff by testHausdorff.py line 12\n# lazily imported pygeodesy.HausdorffExact from .hausdorff by testHausdorff.py line 12\n# lazily imported pygeodesy.HausdorffFlatLocal from .hausdorff by testHausdorff.py line 12\n# lazily imported pygeodesy.HausdorffFlatPolar from .hausdorff by testHausdorff.py line 12\n# lazily imported pygeodesy.HausdorffHaversine from .hausdorff by testHausdorff.py line 12\n# lazily imported pygeodesy.HausdorffHubeny from .hausdorff by testHausdorff.py line 12\n# lazily imported pygeodesy.HausdorffKarney from .hausdorff by testHausdorff.py line 12\n# lazily imported pygeodesy.HausdorffRadians from .hausdorff by testHausdorff.py line 12\n# lazily imported pygeodesy.HausdorffThomas from .hausdorff by testHausdorff.py line 12\n# lazily imported pygeodesy.HausdorffVincentys from .hausdorff by testHausdorff.py line 12\n# lazily imported pygeodesy.LatLon_ from .points by testHausdorff.py line 12\n# lazily imported pygeodesy.randomrangenerator from .hausdorff by testHausdorff.py line 12\n\n    testing testHausdorff.py 24.12.31 isLazy=3\n    test 1 randomrange[0]: ()\n    test 2 randomrange[1]: (0,)\n    test 3 randomrange[2]: (0, 1)\n    test 4 randomrange[8]: (1, 4, 2, 6, 0, 3, 5, 7)\n    test 5 randomrange[32]: (11, 6, 30, 28, 21, 9, 13, 26, 4, 29, 8, 27, 31, 15, 1, 24, 0, 25, 22, 2, 20, 17, 3, 23, 12, 19, 18, 14, 7, 10, 16, 5)\n    test 6 randomrange[128]: (122, 62, 14, 24, 65, 57, 75, 84, 42, 32, 82, 43, 13, 34, 53, 104, 71, 22, 76, 15, 108, 113, 52, 79, 112, 54, 90, 106, 10, 87, 115, 123, 119, 120, 48, 61, 39, 19, 31, 94, 124, 98, 96, 3, 101, 25, 118, 30, 99, 105, 92, 66, 126, 114, 23, 117, 72, 67, 73, 64, 68, 50, 5, 74, 51, 9, 17, 21, 80, 95, 41, 37, 2, 11, 55, 127, 38, 85, 81, 109, 36, 121, 6, 102, 12, 1, 93, 91, 83, 16, 116, 103, 70, 56, 89, 35, 88, 86, 27, 20, 44, 110, 63, 28, 8, 4, 18, 45, 78, 100, 60, 125, 58, 33, 0, 7, 40, 59, 46, 69, 26, 77, 107, 47, 49, 97, 111, 29)\n# lazily imported pygeodesy.booleans by iters.py line 503\n    test 7 HausdorffDegrees_ (degrees): (40.0, 22, 6, 90, 18.16111)\n    test 8 HausdorffDegrees_ (degrees): (48.0, 38, 36, 150, 17.30667)\n    test 9 HausdorffDegrees_ (degrees): (40.0, 22, 6, 90, 18.16111)\n    test 10 HausdorffDegrees_ (degrees): (48.0, 38, 36, 150, 17.30667)\n    test 11 HausdorffDegrees_ (degrees): (40.0, 22, 6, 90, None)\n    test 12 HausdorffDegrees_ (degrees): (48.0, 38, 36, 150, None)\n    test 13 HausdorffDegrees_ (degrees): (40.0, 22, 6, 90, None)\n    test 14 HausdorffDegrees_ (degrees): (48.0, 38, 36, 150, None)\n    test 15 copy(<class 'type'>): (<class '__main__.HausdorffDegrees_'>, True)\n    test 16 HausdorffDegrees_.copy(): (<class '__main__.HausdorffDegrees_'>, True)\n    test 17 HausdorffRadians_ (radians): (0.69813, 22, 6, 90, 0.31697)\n    test 18 HausdorffRadians_ (radians): (0.83776, 38, 36, 150, 0.30206)\n    test 19 HausdorffRadians_ (radians): (0.69813, 22, 6, 90, 0.31697)\n    test 20 HausdorffRadians_ (radians): (0.83776, 38, 36, 150, 0.30206)\n    test 21 HausdorffRadians_ (radians): (0.69813, 22, 6, 90, None)\n    test 22 HausdorffRadians_ (radians): (0.83776, 38, 36, 150, None)\n    test 23 HausdorffRadians_ (radians): (0.69813, 22, 6, 90, None)\n    test 24 HausdorffRadians_ (radians): (0.83776, 38, 36, 150, None)\n    test 25 copy(<class 'type'>): (<class '__main__.HausdorffRadians_'>, True)\n    test 26 HausdorffRadians_.copy(): (<class '__main__.HausdorffRadians_'>, True)\n# imported pygeodesy.formy into hausdorff.py line 371\n    test 27 HausdorffCosineLaw (meter): (0.50097, 35, 3, 90, 0.212)\n    test 28 HausdorffCosineLaw (meter): (0.50097, 35, 3, 150, 0.20099)\n    test 29 HausdorffCosineLaw (meter): (0.50097, 35, 3, 90, 0.212)\n    test 30 HausdorffCosineLaw (meter): (0.50097, 35, 3, 150, 0.20099)\n    test 31 HausdorffCosineLaw (meter): (0.50097, 35, 3, 90, None)\n    test 32 HausdorffCosineLaw (meter): (0.50097, 35, 3, 150, None)\n    test 33 HausdorffCosineLaw (meter): (0.50097, 35, 3, 90, None)\n    test 34 HausdorffCosineLaw (meter): (0.50097, 35, 3, 150, None)\n    test 35 copy(<class 'type'>): (<class 'pygeodesy.hausdorff.HausdorffCosineLaw'>, True)\n    test 36 HausdorffCosineLaw.copy(): (<class 'pygeodesy.hausdorff.HausdorffCosineLaw'>, True)\n    test 37 HausdorffCosineLaw (meter): (0.501, 35, 3, 90, 0.21184)\n    test 38 HausdorffCosineLaw (meter): (0.501, 35, 3, 150, 0.20084)\n    test 39 HausdorffCosineLaw (meter): (0.501, 35, 3, 90, 0.21184)\n    test 40 HausdorffCosineLaw (meter): (0.501, 35, 3, 150, 0.20084)\n    test 41 HausdorffCosineLaw (meter): (0.501, 35, 3, 90, None)\n    test 42 HausdorffCosineLaw (meter): (0.501, 35, 3, 150, None)\n    test 43 HausdorffCosineLaw (meter): (0.501, 35, 3, 90, None)\n    test 44 HausdorffCosineLaw (meter): (0.501, 35, 3, 150, None)\n    test 45 copy(<class 'type'>): (<class 'pygeodesy.hausdorff.HausdorffCosineLaw'>, True)\n    test 46 HausdorffCosineLaw.copy(): (<class 'pygeodesy.hausdorff.HausdorffCosineLaw'>, True)\n    test 47 HausdorffCosineLaw (meter): (0.501, 35, 3, 90, 0.21184)\n    test 48 HausdorffCosineLaw (meter): (0.501, 35, 3, 150, 0.20084)\n    test 49 HausdorffCosineLaw (meter): (0.501, 35, 3, 90, 0.21184)\n    test 50 HausdorffCosineLaw (meter): (0.501, 35, 3, 150, 0.20084)\n    test 51 HausdorffCosineLaw (meter): (0.501, 35, 3, 90, None)\n    test 52 HausdorffCosineLaw (meter): (0.501, 35, 3, 150, None)\n    test 53 HausdorffCosineLaw (meter): (0.501, 35, 3, 90, None)\n    test 54 HausdorffCosineLaw (meter): (0.501, 35, 3, 150, None)\n    test 55 copy(<class 'type'>): (<class 'pygeodesy.hausdorff.HausdorffCosineLaw'>, True)\n    test 56 HausdorffCosineLaw.copy(): (<class 'pygeodesy.hausdorff.HausdorffCosineLaw'>, True)\n    test 57 HausdorffEquirectangular (degrees2): (0.25113, 35, 3, 90, 0.05965)\n    test 58 HausdorffEquirectangular (degrees2): (0.25113, 35, 3, 150, 0.05532)\n    test 59 HausdorffEquirectangular (degrees2): (0.25113, 35, 3, 90, 0.05965)\n    test 60 HausdorffEquirectangular (degrees2): (0.25113, 35, 3, 150, 0.05532)\n    test 61 HausdorffEquirectangular (degrees2): (0.25113, 35, 3, 90, None)\n    test 62 HausdorffEquirectangular (degrees2): (0.25113, 35, 3, 150, None)\n    test 63 HausdorffEquirectangular (degrees2): (0.25113, 35, 3, 90, None)\n    test 64 HausdorffEquirectangular (degrees2): (0.25113, 35, 3, 150, None)\n    test 65 copy(<class 'type'>): (<class 'pygeodesy.hausdorff.HausdorffEquirectangular'>, True)\n    test 66 HausdorffEquirectangular.copy(): (<class 'pygeodesy.hausdorff.HausdorffEquirectangular'>, True)\n    test 67 HausdorffEuclidean (meter): (0.52803, 56, 51, 90, 0.22571)\n    test 68 HausdorffEuclidean (meter): (0.52803, 56, 51, 150, 0.21579)\n    test 69 HausdorffEuclidean (meter): (0.52803, 56, 51, 90, 0.22571)\n    test 70 HausdorffEuclidean (meter): (0.52803, 56, 51, 150, 0.21579)\n    test 71 HausdorffEuclidean (meter): (0.52803, 56, 51, 90, None)\n    test 72 HausdorffEuclidean (meter): (0.52803, 56, 51, 150, None)\n    test 73 HausdorffEuclidean (meter): (0.52803, 56, 51, 90, None)\n    test 74 HausdorffEuclidean (meter): (0.52803, 56, 51, 150, None)\n    test 75 copy(<class 'type'>): (<class 'pygeodesy.hausdorff.HausdorffEuclidean'>, True)\n    test 76 HausdorffEuclidean.copy(): (<class 'pygeodesy.hausdorff.HausdorffEuclidean'>, True)\n    test 77 HausdorffFlatLocal (radians2): (0.25116, 35, 3, 90, 0.05951)\n    test 78 HausdorffFlatLocal (radians2): (0.25116, 35, 3, 150, 0.0552)\n    test 79 HausdorffFlatLocal (radians2): (0.25116, 35, 3, 90, 0.05951)\n    test 80 HausdorffFlatLocal (radians2): (0.25116, 35, 3, 150, 0.0552)\n    test 81 HausdorffFlatLocal (radians2): (0.25116, 35, 3, 90, None)\n    test 82 HausdorffFlatLocal (radians2): (0.25116, 35, 3, 150, None)\n    test 83 HausdorffFlatLocal (radians2): (0.25116, 35, 3, 90, None)\n    test 84 HausdorffFlatLocal (radians2): (0.25116, 35, 3, 150, None)\n    test 85 copy(<class 'type'>): (<class 'pygeodesy.hausdorff.HausdorffFlatLocal'>, True)\n    test 86 HausdorffFlatLocal.copy(): (<class 'pygeodesy.hausdorff.HausdorffFlatLocal'>, True)\n    test 87 HausdorffFlatPolar (meter): (0.69043, 4, 31, 90, 0.22286)\n    test 88 HausdorffFlatPolar (meter): (0.69043, 4, 31, 150, 0.21318)\n    test 89 HausdorffFlatPolar (meter): (0.69043, 4, 31, 90, 0.22286)\n    test 90 HausdorffFlatPolar (meter): (0.69043, 4, 31, 150, 0.21318)\n    test 91 HausdorffFlatPolar (meter): (0.69043, 4, 31, 90, None)\n    test 92 HausdorffFlatPolar (meter): (0.69043, 4, 31, 150, None)\n    test 93 HausdorffFlatPolar (meter): (0.69043, 4, 31, 90, None)\n    test 94 HausdorffFlatPolar (meter): (0.69043, 4, 31, 150, None)\n    test 95 copy(<class 'type'>): (<class 'pygeodesy.hausdorff.HausdorffFlatPolar'>, True)\n    test 96 HausdorffFlatPolar.copy(): (<class 'pygeodesy.hausdorff.HausdorffFlatPolar'>, True)\n    test 97 HausdorffHaversine (meter): (0.50097, 35, 3, 90, 0.212)\n    test 98 HausdorffHaversine (meter): (0.50097, 35, 3, 150, 0.20099)\n    test 99 HausdorffHaversine (meter): (0.50097, 35, 3, 90, 0.212)\n    test 100 HausdorffHaversine (meter): (0.50097, 35, 3, 150, 0.20099)\n    test 101 HausdorffHaversine (meter): (0.50097, 35, 3, 90, None)\n    test 102 HausdorffHaversine (meter): (0.50097, 35, 3, 150, None)\n    test 103 HausdorffHaversine (meter): (0.50097, 35, 3, 90, None)\n    test 104 HausdorffHaversine (meter): (0.50097, 35, 3, 150, None)\n    test 105 copy(<class 'type'>): (<class 'pygeodesy.hausdorff.HausdorffHaversine'>, True)\n    test 106 HausdorffHaversine.copy(): (<class 'pygeodesy.hausdorff.HausdorffHaversine'>, True)\n    test 107 HausdorffHubeny (radians2): (0.25116, 35, 3, 90, 0.05951)\n    test 108 HausdorffHubeny (radians2): (0.25116, 35, 3, 150, 0.0552)\n    test 109 HausdorffHubeny (radians2): (0.25116, 35, 3, 90, 0.05951)\n    test 110 HausdorffHubeny (radians2): (0.25116, 35, 3, 150, 0.0552)\n    test 111 HausdorffHubeny (radians2): (0.25116, 35, 3, 90, None)\n    test 112 HausdorffHubeny (radians2): (0.25116, 35, 3, 150, None)\n    test 113 HausdorffHubeny (radians2): (0.25116, 35, 3, 90, None)\n    test 114 HausdorffHubeny (radians2): (0.25116, 35, 3, 150, None)\n    test 115 copy(<class 'type'>): (<class 'pygeodesy.hausdorff.HausdorffHubeny'>, True)\n    test 116 HausdorffHubeny.copy(): (<class 'pygeodesy.hausdorff.HausdorffHubeny'>, True)\n    test 117 HausdorffThomas (meter): (0.501, 35, 3, 90, 0.21184)\n    test 118 HausdorffThomas (meter): (0.501, 35, 3, 150, 0.20084)\n    test 119 HausdorffThomas (meter): (0.501, 35, 3, 90, 0.21184)\n    test 120 HausdorffThomas (meter): (0.501, 35, 3, 150, 0.20084)\n    test 121 HausdorffThomas (meter): (0.501, 35, 3, 90, None)\n    test 122 HausdorffThomas (meter): (0.501, 35, 3, 150, None)\n    test 123 HausdorffThomas (meter): (0.501, 35, 3, 90, None)\n    test 124 HausdorffThomas (meter): (0.501, 35, 3, 150, None)\n    test 125 copy(<class 'type'>): (<class 'pygeodesy.hausdorff.HausdorffThomas'>, True)\n    test 126 HausdorffThomas.copy(): (<class 'pygeodesy.hausdorff.HausdorffThomas'>, True)\n    test 127 HausdorffVincentys (meter): (0.50097, 35, 3, 90, 0.212)\n    test 128 HausdorffVincentys (meter): (0.50097, 35, 3, 150, 0.20099)\n    test 129 HausdorffVincentys (meter): (0.50097, 35, 3, 90, 0.212)\n    test 130 HausdorffVincentys (meter): (0.50097, 35, 3, 150, 0.20099)\n    test 131 HausdorffVincentys (meter): (0.50097, 35, 3, 90, None)\n    test 132 HausdorffVincentys (meter): (0.50097, 35, 3, 150, None)\n    test 133 HausdorffVincentys (meter): (0.50097, 35, 3, 90, None)\n    test 134 HausdorffVincentys (meter): (0.50097, 35, 3, 150, None)\n    test 135 copy(<class 'type'>): (<class 'pygeodesy.hausdorff.HausdorffVincentys'>, True)\n    test 136 HausdorffVincentys.copy(): (<class 'pygeodesy.hausdorff.HausdorffVincentys'>, True)\n# lazily imported pygeodesy.geodesicw by ellipsoids.py line 1074\n    test 137 HausdorffKarney (degrees): (28.79903, 35, 3, 90, 12.16138)\n    test 138 HausdorffKarney (degrees): (28.79903, 35, 3, 150, 11.53021)\n    test 139 HausdorffKarney (degrees): (28.79903, 35, 3, 90, 12.16138)\n    test 140 HausdorffKarney (degrees): (28.79903, 35, 3, 150, 11.53021)\n    test 141 HausdorffKarney (degrees): (28.79903, 35, 3, 90, None)\n    test 142 HausdorffKarney (degrees): (28.79903, 35, 3, 150, None)\n    test 143 HausdorffKarney (degrees): (28.79903, 35, 3, 90, None)\n    test 144 HausdorffKarney (degrees): (28.79903, 35, 3, 150, None)\n    test 145 copy(<class 'type'>): (<class 'pygeodesy.hausdorff.HausdorffKarney'>, True)\n    test 146 HausdorffKarney.copy(): (<class 'pygeodesy.hausdorff.HausdorffKarney'>, True)\n    test 147 hausdorff_: (40.0, 22, 6, 90, 18.16111)\n    test 148 hausdorff_: (48.0, 38, 36, 150, 17.30667)\n    test 149 hausdorff_: (40.0, 22, 6, 90, 18.16111)\n    test 150 hausdorff_: (48.0, 38, 36, 150, 17.30667)\n    test 151 hausdorff_: (40.0, 22, 6, 90, None)\n    test 152 hausdorff_: (48.0, 38, 36, 150, None)\n    test 153 hausdorff_: (40.0, 22, 6, 90, None)\n    test 154 hausdorff_: (48.0, 38, 36, 150, None)\n# lazily imported pygeodesy.ellipsoidalNvector by testHausdorff.py line 257\n# lazily imported pygeodesy.ellipsoidalVincenty by testHausdorff.py line 257\n# lazily imported pygeodesy.sphericalNvector by testHausdorff.py line 257\n# lazily imported pygeodesy.sphericalTrigonometry by testHausdorff.py line 257\n# lazily imported pygeodesy.ellipsoidalKarney by testHausdorff.py line 262\n    test 155 HausdorffDistanceTo (meter): (3195418.34044, 35, 3, 90, 1351164.35982)  FAILED, KNOWN, expected (3195418.34044, 35, 3, 90, 1351164.35981)\n    test 156 HausdorffDistanceTo (meter): (3195418.34044, 35, 3, 150, 1280992.80341)\n    test 157 HausdorffDistanceTo (meter): (3195418.34044, 35, 3, 90, 1351164.35982)  FAILED, KNOWN, expected (3195418.34044, 35, 3, 90, 1351164.35981)\n    test 158 HausdorffDistanceTo (meter): (3195418.34044, 35, 3, 150, 1280992.80341)\n    test 159 HausdorffDistanceTo (meter): (3195418.34044, 35, 3, 90, None)\n    test 160 HausdorffDistanceTo (meter): (3195418.34044, 35, 3, 150, None)\n    test 161 HausdorffDistanceTo (meter): (3195418.34044, 35, 3, 90, None)\n    test 162 HausdorffDistanceTo (meter): (3195418.34044, 35, 3, 150, None)\n    test 163 copy(<class 'type'>): (<class 'pygeodesy.hausdorff.HausdorffDistanceTo'>, True)\n    test 164 HausdorffDistanceTo.copy(): (<class 'pygeodesy.hausdorff.HausdorffDistanceTo'>, True)\n    test 165 HausdorffDistanceTo (meter): (3195418.34044, 35, 3, 90, 1351164.35981)\n    test 166 HausdorffDistanceTo (meter): (3195418.34044, 35, 3, 150, 1280992.80341)\n    test 167 HausdorffDistanceTo (meter): (3195418.34044, 35, 3, 90, 1351164.35981)\n    test 168 HausdorffDistanceTo (meter): (3195418.34044, 35, 3, 150, 1280992.80341)\n    test 169 HausdorffDistanceTo (meter): (3195418.34044, 35, 3, 90, None)\n    test 170 HausdorffDistanceTo (meter): (3195418.34044, 35, 3, 150, None)\n    test 171 HausdorffDistanceTo (meter): (3195418.34044, 35, 3, 90, None)\n    test 172 HausdorffDistanceTo (meter): (3195418.34044, 35, 3, 150, None)\n    test 173 copy(<class 'type'>): (<class 'pygeodesy.hausdorff.HausdorffDistanceTo'>, True)\n    test 174 HausdorffDistanceTo.copy(): (<class 'pygeodesy.hausdorff.HausdorffDistanceTo'>, True)\n    test 175 HausdorffDistanceTo (meter): (3191685.70841, 35, 3, 90, 1350684.04012)\n    test 176 HausdorffDistanceTo (meter): (3191685.70841, 35, 3, 150, 1280478.58707)\n    test 177 HausdorffDistanceTo (meter): (3191685.70841, 35, 3, 90, 1350684.04012)\n    test 178 HausdorffDistanceTo (meter): (3191685.70841, 35, 3, 150, 1280478.58707)\n    test 179 HausdorffDistanceTo (meter): (3191685.70841, 35, 3, 90, None)\n    test 180 HausdorffDistanceTo (meter): (3191685.70841, 35, 3, 150, None)\n    test 181 HausdorffDistanceTo (meter): (3191685.70841, 35, 3, 90, None)\n    test 182 HausdorffDistanceTo (meter): (3191685.70841, 35, 3, 150, None)\n    test 183 copy(<class 'type'>): (<class 'pygeodesy.hausdorff.HausdorffDistanceTo'>, True)\n    test 184 HausdorffDistanceTo.copy(): (<class 'pygeodesy.hausdorff.HausdorffDistanceTo'>, True)\n    test 185 HausdorffDistanceTo (meter): (3191685.70841, 35, 3, 90, 1350684.04012)\n    test 186 HausdorffDistanceTo (meter): (3191685.70841, 35, 3, 150, 1280478.58707)\n    test 187 HausdorffDistanceTo (meter): (3191685.70841, 35, 3, 90, 1350684.04012)\n    test 188 HausdorffDistanceTo (meter): (3191685.70841, 35, 3, 150, 1280478.58707)\n    test 189 HausdorffDistanceTo (meter): (3191685.70841, 35, 3, 90, None)\n    test 190 HausdorffDistanceTo (meter): (3191685.70841, 35, 3, 150, None)\n    test 191 HausdorffDistanceTo (meter): (3191685.70841, 35, 3, 90, None)\n    test 192 HausdorffDistanceTo (meter): (3191685.70841, 35, 3, 150, None)\n    test 193 copy(<class 'type'>): (<class 'pygeodesy.hausdorff.HausdorffDistanceTo'>, True)\n    test 194 HausdorffDistanceTo.copy(): (<class 'pygeodesy.hausdorff.HausdorffDistanceTo'>, True)\n    test 195 HausdorffDistanceTo (meter): (3191685.70841, 35, 3, 90, 1350684.04012)\n    test 196 HausdorffDistanceTo (meter): (3191685.70841, 35, 3, 150, 1280478.58707)\n    test 197 HausdorffDistanceTo (meter): (3191685.70841, 35, 3, 90, 1350684.04012)\n    test 198 HausdorffDistanceTo (meter): (3191685.70841, 35, 3, 150, 1280478.58707)\n    test 199 HausdorffDistanceTo (meter): (3191685.70841, 35, 3, 90, None)\n    test 200 HausdorffDistanceTo (meter): (3191685.70841, 35, 3, 150, None)\n    test 201 HausdorffDistanceTo (meter): (3191685.70841, 35, 3, 90, None)\n    test 202 HausdorffDistanceTo (meter): (3191685.70841, 35, 3, 150, None)\n    test 203 copy(<class 'type'>): (<class 'pygeodesy.hausdorff.HausdorffDistanceTo'>, True)\n    test 204 HausdorffDistanceTo.copy(): (<class 'pygeodesy.hausdorff.HausdorffDistanceTo'>, True)\n\n    156 of 204 testHausdorff.py tests (76.5%) FAILED, incl. 2 KNOWN plus 154 DeprecationWarnings (pygeodesy 26.3.26 Python 3.14.3 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 23.030 sec\nrunning /Library/Framewo....n3.14 -W default ~/PyGeodesy/test/testHeights.py\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.Datums from .datums by testHeights.py line 17\n# lazily imported pygeodesy.fstr from .streprs by testHeights.py line 17\n# lazily imported pygeodesy.SciPyError from .errors by testHeights.py line 17\n# lazily imported pygeodesy.HeightError from .heights by testHeights.py line 17\n# lazily imported pygeodesy.HeightIDWcosineLaw from .heights by testHeights.py line 17\n# lazily imported pygeodesy.HeightCubic from .heights by testHeights.py line 17\n# lazily imported pygeodesy.HeightIDWdistanceTo from .heights by testHeights.py line 17\n# lazily imported pygeodesy.HeightIDWequirectangular from .heights by testHeights.py line 17\n# lazily imported pygeodesy.HeightIDWeuclidean from .heights by testHeights.py line 17\n# lazily imported pygeodesy.HeightIDWexact from .heights by testHeights.py line 17\n# lazily imported pygeodesy.HeightIDWflatLocal from .heights by testHeights.py line 17\n# lazily imported pygeodesy.HeightIDWflatPolar from .heights by testHeights.py line 17\n# lazily imported pygeodesy.HeightIDWhaversine from .heights by testHeights.py line 17\n# lazily imported pygeodesy.HeightIDWhubeny from .heights by testHeights.py line 17\n# lazily imported pygeodesy.HeightIDWkarney from .heights by testHeights.py line 17\n# lazily imported pygeodesy.HeightIDWthomas from .heights by testHeights.py line 17\n# lazily imported pygeodesy.HeightIDWvincentys from .heights by testHeights.py line 17\n# lazily imported pygeodesy.HeightLinear from .heights by testHeights.py line 17\n# lazily imported pygeodesy.HeightLSQBiSpline from .heights by testHeights.py line 17\n# lazily imported pygeodesy.HeightSmoothBiSpline from .heights by testHeights.py line 17\n\n    testing testHeights.py 24.12.31 isLazy=3\n# imported pygeodesy.formy into heights.py line 789\n\n    test 1 HeightIDWcosineLaw(wrap=True): 6.108538037\n    test 2 HeightIDWcosineLaw(float): <class 'float'>\n    test 3 HeightIDWcosineLaw(latlon): True\n    test 4 HeightIDWcosineLaw_(tuple): True\n    test 5 HeightIDWcosineLaw(wrap=True): 5.0\n    test 6 HeightIDWcosineLaw(float): <class 'float'>\n    test 7 HeightIDWcosineLaw(latlon): True\n    test 8 HeightIDWcosineLaw(wrap=True): (6.108538037, 5.0,)\n    test 9 HeightIDWcosineLaw(tuple): <class 'tuple'>\n    test 10 HeightIDWcosineLaw(tuple-float): <class 'float'>\n    test 11 HeightIDWcosineLaw(tuple-float): <class 'float'>\n    test 12 HeightIDWcosineLaw(wrap=True): [6.108538037, 5.0]\n    test 13 HeightIDWcosineLaw(list: <class 'list'>\n    test 14 HeightIDWcosineLaw(list-float): <class 'float'>\n    test 15 HeightIDWcosineLaw(list-float): <class 'float'>\n    test 16 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWcosineLaw'>, True)\n    test 17 HeightIDWcosineLaw.copy(): (<class 'pygeodesy.heights.HeightIDWcosineLaw'>, True)\n    test 18 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n\n    test 19 HeightIDWcosineLaw(wrap=False): 6.108538037\n    test 20 HeightIDWcosineLaw(float): <class 'float'>\n    test 21 HeightIDWcosineLaw(latlon): True\n    test 22 HeightIDWcosineLaw_(tuple): True\n    test 23 HeightIDWcosineLaw(wrap=False): 5.0\n    test 24 HeightIDWcosineLaw(float): <class 'float'>\n    test 25 HeightIDWcosineLaw(latlon): True\n    test 26 HeightIDWcosineLaw(wrap=False): (6.108538037, 5.0,)\n    test 27 HeightIDWcosineLaw(tuple): <class 'tuple'>\n    test 28 HeightIDWcosineLaw(tuple-float): <class 'float'>\n    test 29 HeightIDWcosineLaw(tuple-float): <class 'float'>\n    test 30 HeightIDWcosineLaw(wrap=False): [6.108538037, 5.0]\n    test 31 HeightIDWcosineLaw(list: <class 'list'>\n    test 32 HeightIDWcosineLaw(list-float): <class 'float'>\n    test 33 HeightIDWcosineLaw(list-float): <class 'float'>\n    test 34 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWcosineLaw'>, True)\n    test 35 HeightIDWcosineLaw.copy(): (<class 'pygeodesy.heights.HeightIDWcosineLaw'>, True)\n    test 36 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n\n    test 37 HeightIDWcosineLaw(corr=1, wrap=False): 6.111157919\n    test 38 HeightIDWcosineLaw(float): <class 'float'>\n    test 39 HeightIDWcosineLaw(latlon): True\n    test 40 HeightIDWcosineLaw_(tuple): True\n    test 41 HeightIDWcosineLaw(corr=1, wrap=False): 5.0\n    test 42 HeightIDWcosineLaw(float): <class 'float'>\n    test 43 HeightIDWcosineLaw(latlon): True\n    test 44 HeightIDWcosineLaw(corr=1, wrap=False): (6.111157919, 5.0,)\n    test 45 HeightIDWcosineLaw(tuple): <class 'tuple'>\n    test 46 HeightIDWcosineLaw(tuple-float): <class 'float'>\n    test 47 HeightIDWcosineLaw(tuple-float): <class 'float'>\n    test 48 HeightIDWcosineLaw(corr=1, wrap=False): [6.111157919, 5.0]\n    test 49 HeightIDWcosineLaw(list: <class 'list'>\n    test 50 HeightIDWcosineLaw(list-float): <class 'float'>\n    test 51 HeightIDWcosineLaw(list-float): <class 'float'>\n    test 52 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWcosineLaw'>, True)\n    test 53 HeightIDWcosineLaw.copy(): (<class 'pygeodesy.heights.HeightIDWcosineLaw'>, True)\n    test 54 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n\n    test 55 HeightIDWcosineLaw(corr=2, wrap=False): 6.111158354\n    test 56 HeightIDWcosineLaw(float): <class 'float'>\n    test 57 HeightIDWcosineLaw(latlon): True\n    test 58 HeightIDWcosineLaw_(tuple): True\n    test 59 HeightIDWcosineLaw(corr=2, wrap=False): 5.0\n    test 60 HeightIDWcosineLaw(float): <class 'float'>\n    test 61 HeightIDWcosineLaw(latlon): True\n    test 62 HeightIDWcosineLaw(corr=2, wrap=False): (6.111158354, 5.0,)\n    test 63 HeightIDWcosineLaw(tuple): <class 'tuple'>\n    test 64 HeightIDWcosineLaw(tuple-float): <class 'float'>\n    test 65 HeightIDWcosineLaw(tuple-float): <class 'float'>\n    test 66 HeightIDWcosineLaw(corr=2, wrap=False): [6.111158354, 5.0]\n    test 67 HeightIDWcosineLaw(list: <class 'list'>\n    test 68 HeightIDWcosineLaw(list-float): <class 'float'>\n    test 69 HeightIDWcosineLaw(list-float): <class 'float'>\n    test 70 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWcosineLaw'>, True)\n    test 71 HeightIDWcosineLaw.copy(): (<class 'pygeodesy.heights.HeightIDWcosineLaw'>, True)\n    test 72 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n\n    test 73 HeightIDWdistanceTo(): 6.108538037\n    test 74 HeightIDWdistanceTo(float): <class 'float'>\n    test 75 HeightIDWdistanceTo(latlon): True\n    test 76 HeightIDWdistanceTo_(tuple): True\n    test 77 HeightIDWdistanceTo(): 5.0\n    test 78 HeightIDWdistanceTo(float): <class 'float'>\n    test 79 HeightIDWdistanceTo(latlon): True\n    test 80 HeightIDWdistanceTo(): (6.108538037, 5.0,)\n    test 81 HeightIDWdistanceTo(tuple): <class 'tuple'>\n    test 82 HeightIDWdistanceTo(tuple-float): <class 'float'>\n    test 83 HeightIDWdistanceTo(tuple-float): <class 'float'>\n    test 84 HeightIDWdistanceTo(): [6.108538037, 5.0]\n    test 85 HeightIDWdistanceTo(list: <class 'list'>\n    test 86 HeightIDWdistanceTo(list-float): <class 'float'>\n    test 87 HeightIDWdistanceTo(list-float): <class 'float'>\n    test 88 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWdistanceTo'>, True)\n    test 89 HeightIDWdistanceTo.copy(): (<class 'pygeodesy.heights.HeightIDWdistanceTo'>, True)\n    test 90 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n\n    test 91 HeightIDWequirectangular(adjust=True, wrap=True): 6.860459007\n    test 92 HeightIDWequirectangular(float): <class 'float'>\n    test 93 HeightIDWequirectangular(latlon): True\n    test 94 HeightIDWequirectangular_(tuple): True\n    test 95 HeightIDWequirectangular(adjust=True, wrap=True): 5.0\n    test 96 HeightIDWequirectangular(float): <class 'float'>\n    test 97 HeightIDWequirectangular(latlon): True\n    test 98 HeightIDWequirectangular(adjust=True, wrap=True): (6.860459007, 5.0,)\n    test 99 HeightIDWequirectangular(tuple): <class 'tuple'>\n    test 100 HeightIDWequirectangular(tuple-float): <class 'float'>\n    test 101 HeightIDWequirectangular(tuple-float): <class 'float'>\n    test 102 HeightIDWequirectangular(adjust=True, wrap=True): [6.860459007, 5.0]\n    test 103 HeightIDWequirectangular(list: <class 'list'>\n    test 104 HeightIDWequirectangular(list-float): <class 'float'>\n    test 105 HeightIDWequirectangular(list-float): <class 'float'>\n    test 106 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWequirectangular'>, True)\n    test 107 HeightIDWequirectangular.copy(): (<class 'pygeodesy.heights.HeightIDWequirectangular'>, True)\n    test 108 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n\n    test 109 HeightIDWequirectangular(adjust=False, wrap=True): 6.860498092\n    test 110 HeightIDWequirectangular(float): <class 'float'>\n    test 111 HeightIDWequirectangular(latlon): True\n    test 112 HeightIDWequirectangular_(tuple): True\n    test 113 HeightIDWequirectangular(adjust=False, wrap=True): 5.0\n    test 114 HeightIDWequirectangular(float): <class 'float'>\n    test 115 HeightIDWequirectangular(latlon): True\n    test 116 HeightIDWequirectangular(adjust=False, wrap=True): (6.860498092, 5.0,)\n    test 117 HeightIDWequirectangular(tuple): <class 'tuple'>\n    test 118 HeightIDWequirectangular(tuple-float): <class 'float'>\n    test 119 HeightIDWequirectangular(tuple-float): <class 'float'>\n    test 120 HeightIDWequirectangular(adjust=False, wrap=True): [6.860498092, 5.0]\n    test 121 HeightIDWequirectangular(list: <class 'list'>\n    test 122 HeightIDWequirectangular(list-float): <class 'float'>\n    test 123 HeightIDWequirectangular(list-float): <class 'float'>\n    test 124 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWequirectangular'>, True)\n    test 125 HeightIDWequirectangular.copy(): (<class 'pygeodesy.heights.HeightIDWequirectangular'>, True)\n    test 126 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n\n    test 127 HeightIDWeuclidean(): 6.142945781\n    test 128 HeightIDWeuclidean(float): <class 'float'>\n    test 129 HeightIDWeuclidean(latlon): True\n    test 130 HeightIDWeuclidean_(tuple): True\n    test 131 HeightIDWeuclidean(): 5.0\n    test 132 HeightIDWeuclidean(float): <class 'float'>\n    test 133 HeightIDWeuclidean(latlon): True\n    test 134 HeightIDWeuclidean(): (6.142945781, 5.0,)\n    test 135 HeightIDWeuclidean(tuple): <class 'tuple'>\n    test 136 HeightIDWeuclidean(tuple-float): <class 'float'>\n    test 137 HeightIDWeuclidean(tuple-float): <class 'float'>\n    test 138 HeightIDWeuclidean(): [6.142945781, 5.0]\n    test 139 HeightIDWeuclidean(list: <class 'list'>\n    test 140 HeightIDWeuclidean(list-float): <class 'float'>\n    test 141 HeightIDWeuclidean(list-float): <class 'float'>\n    test 142 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWeuclidean'>, True)\n    test 143 HeightIDWeuclidean.copy(): (<class 'pygeodesy.heights.HeightIDWeuclidean'>, True)\n    test 144 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n# lazily imported pygeodesy.geodesicx by ellipsoids.py line 1082\n# lazily imported pygeodesy.elliptic by gx.py line 421\n\n    test 145 HeightIDWexact(): 6.108538037\n    test 146 HeightIDWexact(float): <class 'float'>\n    test 147 HeightIDWexact(latlon): True\n    test 148 HeightIDWexact_(tuple): True\n    test 149 HeightIDWexact(): 5.0\n    test 150 HeightIDWexact(float): <class 'float'>\n    test 151 HeightIDWexact(latlon): True\n    test 152 HeightIDWexact(): (6.108538037, 5.0,)\n    test 153 HeightIDWexact(tuple): <class 'tuple'>\n    test 154 HeightIDWexact(tuple-float): <class 'float'>\n    test 155 HeightIDWexact(tuple-float): <class 'float'>\n    test 156 HeightIDWexact(): [6.108538037, 5.0]\n    test 157 HeightIDWexact(list: <class 'list'>\n    test 158 HeightIDWexact(list-float): <class 'float'>\n    test 159 HeightIDWexact(list-float): <class 'float'>\n    test 160 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWexact'>, True)\n    test 161 HeightIDWexact.copy(): (<class 'pygeodesy.heights.HeightIDWexact'>, True)\n    test 162 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n\n    test 163 HeightIDWflatLocal(): 6.111158784\n    test 164 HeightIDWflatLocal(float): <class 'float'>\n    test 165 HeightIDWflatLocal(latlon): True\n    test 166 HeightIDWflatLocal_(tuple): True\n    test 167 HeightIDWflatLocal(): 5.0\n    test 168 HeightIDWflatLocal(float): <class 'float'>\n    test 169 HeightIDWflatLocal(latlon): True\n    test 170 HeightIDWflatLocal(): (6.111158784, 5.0,)\n    test 171 HeightIDWflatLocal(tuple): <class 'tuple'>\n    test 172 HeightIDWflatLocal(tuple-float): <class 'float'>\n    test 173 HeightIDWflatLocal(tuple-float): <class 'float'>\n    test 174 HeightIDWflatLocal(): [6.111158784, 5.0]\n    test 175 HeightIDWflatLocal(list: <class 'list'>\n    test 176 HeightIDWflatLocal(list-float): <class 'float'>\n    test 177 HeightIDWflatLocal(list-float): <class 'float'>\n    test 178 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWflatLocal'>, True)\n    test 179 HeightIDWflatLocal.copy(): (<class 'pygeodesy.heights.HeightIDWflatLocal'>, True)\n    test 180 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n\n    test 181 HeightIDWflatPolar(): 6.261469975\n    test 182 HeightIDWflatPolar(float): <class 'float'>\n    test 183 HeightIDWflatPolar(latlon): True\n    test 184 HeightIDWflatPolar_(tuple): True\n    test 185 HeightIDWflatPolar(): 5.0\n    test 186 HeightIDWflatPolar(float): <class 'float'>\n    test 187 HeightIDWflatPolar(latlon): True\n    test 188 HeightIDWflatPolar(): (6.261469975, 5.0,)\n    test 189 HeightIDWflatPolar(tuple): <class 'tuple'>\n    test 190 HeightIDWflatPolar(tuple-float): <class 'float'>\n    test 191 HeightIDWflatPolar(tuple-float): <class 'float'>\n    test 192 HeightIDWflatPolar(): [6.261469975, 5.0]\n    test 193 HeightIDWflatPolar(list: <class 'list'>\n    test 194 HeightIDWflatPolar(list-float): <class 'float'>\n    test 195 HeightIDWflatPolar(list-float): <class 'float'>\n    test 196 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWflatPolar'>, True)\n    test 197 HeightIDWflatPolar.copy(): (<class 'pygeodesy.heights.HeightIDWflatPolar'>, True)\n    test 198 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n\n    test 199 HeightIDWhaversine(): 6.108538037\n    test 200 HeightIDWhaversine(float): <class 'float'>\n    test 201 HeightIDWhaversine(latlon): True\n    test 202 HeightIDWhaversine_(tuple): True\n    test 203 HeightIDWhaversine(): 5.0\n    test 204 HeightIDWhaversine(float): <class 'float'>\n    test 205 HeightIDWhaversine(latlon): True\n    test 206 HeightIDWhaversine(): (6.108538037, 5.0,)\n    test 207 HeightIDWhaversine(tuple): <class 'tuple'>\n    test 208 HeightIDWhaversine(tuple-float): <class 'float'>\n    test 209 HeightIDWhaversine(tuple-float): <class 'float'>\n    test 210 HeightIDWhaversine(): [6.108538037, 5.0]\n    test 211 HeightIDWhaversine(list: <class 'list'>\n    test 212 HeightIDWhaversine(list-float): <class 'float'>\n    test 213 HeightIDWhaversine(list-float): <class 'float'>\n    test 214 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWhaversine'>, True)\n    test 215 HeightIDWhaversine.copy(): (<class 'pygeodesy.heights.HeightIDWhaversine'>, True)\n    test 216 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n\n    test 217 HeightIDWhubeny(): 6.111158784\n    test 218 HeightIDWhubeny(float): <class 'float'>\n    test 219 HeightIDWhubeny(latlon): True\n    test 220 HeightIDWhubeny_(tuple): True\n    test 221 HeightIDWhubeny(): 5.0\n    test 222 HeightIDWhubeny(float): <class 'float'>\n    test 223 HeightIDWhubeny(latlon): True\n    test 224 HeightIDWhubeny(): (6.111158784, 5.0,)\n    test 225 HeightIDWhubeny(tuple): <class 'tuple'>\n    test 226 HeightIDWhubeny(tuple-float): <class 'float'>\n    test 227 HeightIDWhubeny(tuple-float): <class 'float'>\n    test 228 HeightIDWhubeny(): [6.111158784, 5.0]\n    test 229 HeightIDWhubeny(list: <class 'list'>\n    test 230 HeightIDWhubeny(list-float): <class 'float'>\n    test 231 HeightIDWhubeny(list-float): <class 'float'>\n    test 232 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWhubeny'>, True)\n    test 233 HeightIDWhubeny.copy(): (<class 'pygeodesy.heights.HeightIDWhubeny'>, True)\n    test 234 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n# lazily imported pygeodesy.geodesicw by ellipsoids.py line 1074\n\n    test 235 HeightIDWkarney(datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), wrap=True): 6.111158743\n    test 236 HeightIDWkarney(float): <class 'float'>\n    test 237 HeightIDWkarney(latlon): True\n    test 238 HeightIDWkarney_(tuple): True\n    test 239 HeightIDWkarney(datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), wrap=True): 5.0\n    test 240 HeightIDWkarney(float): <class 'float'>\n    test 241 HeightIDWkarney(latlon): True\n    test 242 HeightIDWkarney(datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), wrap=True): (6.111158743, 5.0,)\n    test 243 HeightIDWkarney(tuple): <class 'tuple'>\n    test 244 HeightIDWkarney(tuple-float): <class 'float'>\n    test 245 HeightIDWkarney(tuple-float): <class 'float'>\n    test 246 HeightIDWkarney(datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), wrap=True): [6.111158743, 5.0]\n    test 247 HeightIDWkarney(list: <class 'list'>\n    test 248 HeightIDWkarney(list-float): <class 'float'>\n    test 249 HeightIDWkarney(list-float): <class 'float'>\n    test 250 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWkarney'>, True)\n    test 251 HeightIDWkarney.copy(): (<class 'pygeodesy.heights.HeightIDWkarney'>, True)\n    test 252 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n\n    test 253 HeightIDWkarney(datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), wrap=False): 6.111158743\n    test 254 HeightIDWkarney(float): <class 'float'>\n    test 255 HeightIDWkarney(latlon): True\n    test 256 HeightIDWkarney_(tuple): True\n    test 257 HeightIDWkarney(datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), wrap=False): 5.0\n    test 258 HeightIDWkarney(float): <class 'float'>\n    test 259 HeightIDWkarney(latlon): True\n    test 260 HeightIDWkarney(datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), wrap=False): (6.111158743, 5.0,)\n    test 261 HeightIDWkarney(tuple): <class 'tuple'>\n    test 262 HeightIDWkarney(tuple-float): <class 'float'>\n    test 263 HeightIDWkarney(tuple-float): <class 'float'>\n    test 264 HeightIDWkarney(datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), wrap=False): [6.111158743, 5.0]\n    test 265 HeightIDWkarney(list: <class 'list'>\n    test 266 HeightIDWkarney(list-float): <class 'float'>\n    test 267 HeightIDWkarney(list-float): <class 'float'>\n    test 268 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWkarney'>, True)\n    test 269 HeightIDWkarney.copy(): (<class 'pygeodesy.heights.HeightIDWkarney'>, True)\n    test 270 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n\n    test 271 HeightIDWkarney(datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84), wrap=True): 6.108538037\n    test 272 HeightIDWkarney(float): <class 'float'>\n    test 273 HeightIDWkarney(latlon): True\n    test 274 HeightIDWkarney_(tuple): True\n    test 275 HeightIDWkarney(datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84), wrap=True): 5.0\n    test 276 HeightIDWkarney(float): <class 'float'>\n    test 277 HeightIDWkarney(latlon): True\n    test 278 HeightIDWkarney(datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84), wrap=True): (6.108538037, 5.0,)\n    test 279 HeightIDWkarney(tuple): <class 'tuple'>\n    test 280 HeightIDWkarney(tuple-float): <class 'float'>\n    test 281 HeightIDWkarney(tuple-float): <class 'float'>\n    test 282 HeightIDWkarney(datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84), wrap=True): [6.108538037, 5.0]\n    test 283 HeightIDWkarney(list: <class 'list'>\n    test 284 HeightIDWkarney(list-float): <class 'float'>\n    test 285 HeightIDWkarney(list-float): <class 'float'>\n    test 286 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWkarney'>, True)\n    test 287 HeightIDWkarney.copy(): (<class 'pygeodesy.heights.HeightIDWkarney'>, True)\n    test 288 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n\n    test 289 HeightIDWkarney(datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84), wrap=False): 6.108538037\n    test 290 HeightIDWkarney(float): <class 'float'>\n    test 291 HeightIDWkarney(latlon): True\n    test 292 HeightIDWkarney_(tuple): True\n    test 293 HeightIDWkarney(datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84), wrap=False): 5.0\n    test 294 HeightIDWkarney(float): <class 'float'>\n    test 295 HeightIDWkarney(latlon): True\n    test 296 HeightIDWkarney(datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84), wrap=False): (6.108538037, 5.0,)\n    test 297 HeightIDWkarney(tuple): <class 'tuple'>\n    test 298 HeightIDWkarney(tuple-float): <class 'float'>\n    test 299 HeightIDWkarney(tuple-float): <class 'float'>\n    test 300 HeightIDWkarney(datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84), wrap=False): [6.108538037, 5.0]\n    test 301 HeightIDWkarney(list: <class 'list'>\n    test 302 HeightIDWkarney(list-float): <class 'float'>\n    test 303 HeightIDWkarney(list-float): <class 'float'>\n    test 304 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWkarney'>, True)\n    test 305 HeightIDWkarney.copy(): (<class 'pygeodesy.heights.HeightIDWkarney'>, True)\n    test 306 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n\n    test 307 HeightIDWthomas(wrap=True): 6.111159454\n    test 308 HeightIDWthomas(float): <class 'float'>\n    test 309 HeightIDWthomas(latlon): True\n    test 310 HeightIDWthomas_(tuple): True\n    test 311 HeightIDWthomas(wrap=True): 5.0\n    test 312 HeightIDWthomas(float): <class 'float'>\n    test 313 HeightIDWthomas(latlon): True\n    test 314 HeightIDWthomas(wrap=True): (6.111159454, 5.0,)\n    test 315 HeightIDWthomas(tuple): <class 'tuple'>\n    test 316 HeightIDWthomas(tuple-float): <class 'float'>\n    test 317 HeightIDWthomas(tuple-float): <class 'float'>\n    test 318 HeightIDWthomas(wrap=True): [6.111159454, 5.0]\n    test 319 HeightIDWthomas(list: <class 'list'>\n    test 320 HeightIDWthomas(list-float): <class 'float'>\n    test 321 HeightIDWthomas(list-float): <class 'float'>\n    test 322 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWthomas'>, True)\n    test 323 HeightIDWthomas.copy(): (<class 'pygeodesy.heights.HeightIDWthomas'>, True)\n    test 324 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n\n    test 325 HeightIDWthomas(wrap=False): 6.111159454\n    test 326 HeightIDWthomas(float): <class 'float'>\n    test 327 HeightIDWthomas(latlon): True\n    test 328 HeightIDWthomas_(tuple): True\n    test 329 HeightIDWthomas(wrap=False): 5.0\n    test 330 HeightIDWthomas(float): <class 'float'>\n    test 331 HeightIDWthomas(latlon): True\n    test 332 HeightIDWthomas(wrap=False): (6.111159454, 5.0,)\n    test 333 HeightIDWthomas(tuple): <class 'tuple'>\n    test 334 HeightIDWthomas(tuple-float): <class 'float'>\n    test 335 HeightIDWthomas(tuple-float): <class 'float'>\n    test 336 HeightIDWthomas(wrap=False): [6.111159454, 5.0]\n    test 337 HeightIDWthomas(list: <class 'list'>\n    test 338 HeightIDWthomas(list-float): <class 'float'>\n    test 339 HeightIDWthomas(list-float): <class 'float'>\n    test 340 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWthomas'>, True)\n    test 341 HeightIDWthomas.copy(): (<class 'pygeodesy.heights.HeightIDWthomas'>, True)\n    test 342 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n\n    test 343 HeightIDWvincentys(wrap=True): 6.108538037\n    test 344 HeightIDWvincentys(float): <class 'float'>\n    test 345 HeightIDWvincentys(latlon): True\n    test 346 HeightIDWvincentys_(tuple): True\n    test 347 HeightIDWvincentys(wrap=True): 5.0\n    test 348 HeightIDWvincentys(float): <class 'float'>\n    test 349 HeightIDWvincentys(latlon): True\n    test 350 HeightIDWvincentys(wrap=True): (6.108538037, 5.0,)\n    test 351 HeightIDWvincentys(tuple): <class 'tuple'>\n    test 352 HeightIDWvincentys(tuple-float): <class 'float'>\n    test 353 HeightIDWvincentys(tuple-float): <class 'float'>\n    test 354 HeightIDWvincentys(wrap=True): [6.108538037, 5.0]\n    test 355 HeightIDWvincentys(list: <class 'list'>\n    test 356 HeightIDWvincentys(list-float): <class 'float'>\n    test 357 HeightIDWvincentys(list-float): <class 'float'>\n    test 358 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWvincentys'>, True)\n    test 359 HeightIDWvincentys.copy(): (<class 'pygeodesy.heights.HeightIDWvincentys'>, True)\n    test 360 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n\n    test 361 HeightIDWvincentys(wrap=False): 6.108538037\n    test 362 HeightIDWvincentys(float): <class 'float'>\n    test 363 HeightIDWvincentys(latlon): True\n    test 364 HeightIDWvincentys_(tuple): True\n    test 365 HeightIDWvincentys(wrap=False): 5.0\n    test 366 HeightIDWvincentys(float): <class 'float'>\n    test 367 HeightIDWvincentys(latlon): True\n    test 368 HeightIDWvincentys(wrap=False): (6.108538037, 5.0,)\n    test 369 HeightIDWvincentys(tuple): <class 'tuple'>\n    test 370 HeightIDWvincentys(tuple-float): <class 'float'>\n    test 371 HeightIDWvincentys(tuple-float): <class 'float'>\n    test 372 HeightIDWvincentys(wrap=False): [6.108538037, 5.0]\n    test 373 HeightIDWvincentys(list: <class 'list'>\n    test 374 HeightIDWvincentys(list-float): <class 'float'>\n    test 375 HeightIDWvincentys(list-float): <class 'float'>\n    test 376 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWvincentys'>, True)\n    test 377 HeightIDWvincentys.copy(): (<class 'pygeodesy.heights.HeightIDWvincentys'>, True)\n    test 378 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n    test 379 intersection: 02.64932°N, 002.550079°E, +2.50m\n\n\n    test 380 HeightIDWcosineLaw(wrap=True): 2.592742938\n    test 381 HeightIDWcosineLaw(float): <class 'float'>\n    test 382 HeightIDWcosineLaw(latlon): True\n    test 383 HeightIDWcosineLaw_(tuple): True\n    test 384 HeightIDWcosineLaw(wrap=True): 3.0\n    test 385 HeightIDWcosineLaw(float): <class 'float'>\n    test 386 HeightIDWcosineLaw(latlon): True\n    test 387 HeightIDWcosineLaw(wrap=True): (2.592742938, 3.0,)\n    test 388 HeightIDWcosineLaw(tuple): <class 'tuple'>\n    test 389 HeightIDWcosineLaw(tuple-float): <class 'float'>\n    test 390 HeightIDWcosineLaw(tuple-float): <class 'float'>\n    test 391 HeightIDWcosineLaw(wrap=True): [2.592742938, 3.0]\n    test 392 HeightIDWcosineLaw(list: <class 'list'>\n    test 393 HeightIDWcosineLaw(list-float): <class 'float'>\n    test 394 HeightIDWcosineLaw(list-float): <class 'float'>\n    test 395 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWcosineLaw'>, True)\n    test 396 HeightIDWcosineLaw.copy(): (<class 'pygeodesy.heights.HeightIDWcosineLaw'>, True)\n    test 397 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n\n    test 398 HeightIDWcosineLaw(wrap=False): 2.592742938\n    test 399 HeightIDWcosineLaw(float): <class 'float'>\n    test 400 HeightIDWcosineLaw(latlon): True\n    test 401 HeightIDWcosineLaw_(tuple): True\n    test 402 HeightIDWcosineLaw(wrap=False): 3.0\n    test 403 HeightIDWcosineLaw(float): <class 'float'>\n    test 404 HeightIDWcosineLaw(latlon): True\n    test 405 HeightIDWcosineLaw(wrap=False): (2.592742938, 3.0,)\n    test 406 HeightIDWcosineLaw(tuple): <class 'tuple'>\n    test 407 HeightIDWcosineLaw(tuple-float): <class 'float'>\n    test 408 HeightIDWcosineLaw(tuple-float): <class 'float'>\n    test 409 HeightIDWcosineLaw(wrap=False): [2.592742938, 3.0]\n    test 410 HeightIDWcosineLaw(list: <class 'list'>\n    test 411 HeightIDWcosineLaw(list-float): <class 'float'>\n    test 412 HeightIDWcosineLaw(list-float): <class 'float'>\n    test 413 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWcosineLaw'>, True)\n    test 414 HeightIDWcosineLaw.copy(): (<class 'pygeodesy.heights.HeightIDWcosineLaw'>, True)\n    test 415 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n\n    test 416 HeightIDWcosineLaw(corr=1, wrap=False): 2.592742781\n    test 417 HeightIDWcosineLaw(float): <class 'float'>\n    test 418 HeightIDWcosineLaw(latlon): True\n    test 419 HeightIDWcosineLaw_(tuple): True\n    test 420 HeightIDWcosineLaw(corr=1, wrap=False): 3.0\n    test 421 HeightIDWcosineLaw(float): <class 'float'>\n    test 422 HeightIDWcosineLaw(latlon): True\n    test 423 HeightIDWcosineLaw(corr=1, wrap=False): (2.592742781, 3.0,)\n    test 424 HeightIDWcosineLaw(tuple): <class 'tuple'>\n    test 425 HeightIDWcosineLaw(tuple-float): <class 'float'>\n    test 426 HeightIDWcosineLaw(tuple-float): <class 'float'>\n    test 427 HeightIDWcosineLaw(corr=1, wrap=False): [2.592742781, 3.0]\n    test 428 HeightIDWcosineLaw(list: <class 'list'>\n    test 429 HeightIDWcosineLaw(list-float): <class 'float'>\n    test 430 HeightIDWcosineLaw(list-float): <class 'float'>\n    test 431 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWcosineLaw'>, True)\n    test 432 HeightIDWcosineLaw.copy(): (<class 'pygeodesy.heights.HeightIDWcosineLaw'>, True)\n    test 433 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n\n    test 434 HeightIDWcosineLaw(corr=2, wrap=False): 2.592742781\n    test 435 HeightIDWcosineLaw(float): <class 'float'>\n    test 436 HeightIDWcosineLaw(latlon): True\n    test 437 HeightIDWcosineLaw_(tuple): True\n    test 438 HeightIDWcosineLaw(corr=2, wrap=False): 3.0\n    test 439 HeightIDWcosineLaw(float): <class 'float'>\n    test 440 HeightIDWcosineLaw(latlon): True\n    test 441 HeightIDWcosineLaw(corr=2, wrap=False): (2.592742781, 3.0,)\n    test 442 HeightIDWcosineLaw(tuple): <class 'tuple'>\n    test 443 HeightIDWcosineLaw(tuple-float): <class 'float'>\n    test 444 HeightIDWcosineLaw(tuple-float): <class 'float'>\n    test 445 HeightIDWcosineLaw(corr=2, wrap=False): [2.592742781, 3.0]\n    test 446 HeightIDWcosineLaw(list: <class 'list'>\n    test 447 HeightIDWcosineLaw(list-float): <class 'float'>\n    test 448 HeightIDWcosineLaw(list-float): <class 'float'>\n    test 449 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWcosineLaw'>, True)\n    test 450 HeightIDWcosineLaw.copy(): (<class 'pygeodesy.heights.HeightIDWcosineLaw'>, True)\n    test 451 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n\n    test 452 HeightIDWequirectangular(adjust=True, wrap=True): 2.689429914\n    test 453 HeightIDWequirectangular(float): <class 'float'>\n    test 454 HeightIDWequirectangular(latlon): True\n    test 455 HeightIDWequirectangular_(tuple): True\n    test 456 HeightIDWequirectangular(adjust=True, wrap=True): 3.0\n    test 457 HeightIDWequirectangular(float): <class 'float'>\n    test 458 HeightIDWequirectangular(latlon): True\n    test 459 HeightIDWequirectangular(adjust=True, wrap=True): (2.689429914, 3.0,)\n    test 460 HeightIDWequirectangular(tuple): <class 'tuple'>\n    test 461 HeightIDWequirectangular(tuple-float): <class 'float'>\n    test 462 HeightIDWequirectangular(tuple-float): <class 'float'>\n    test 463 HeightIDWequirectangular(adjust=True, wrap=True): [2.689429914, 3.0]\n    test 464 HeightIDWequirectangular(list: <class 'list'>\n    test 465 HeightIDWequirectangular(list-float): <class 'float'>\n    test 466 HeightIDWequirectangular(list-float): <class 'float'>\n    test 467 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWequirectangular'>, True)\n    test 468 HeightIDWequirectangular.copy(): (<class 'pygeodesy.heights.HeightIDWequirectangular'>, True)\n    test 469 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n\n    test 470 HeightIDWequirectangular(adjust=False, wrap=True): 2.689413401\n    test 471 HeightIDWequirectangular(float): <class 'float'>\n    test 472 HeightIDWequirectangular(latlon): True\n    test 473 HeightIDWequirectangular_(tuple): True\n    test 474 HeightIDWequirectangular(adjust=False, wrap=True): 3.0\n    test 475 HeightIDWequirectangular(float): <class 'float'>\n    test 476 HeightIDWequirectangular(latlon): True\n    test 477 HeightIDWequirectangular(adjust=False, wrap=True): (2.689413401, 3.0,)\n    test 478 HeightIDWequirectangular(tuple): <class 'tuple'>\n    test 479 HeightIDWequirectangular(tuple-float): <class 'float'>\n    test 480 HeightIDWequirectangular(tuple-float): <class 'float'>\n    test 481 HeightIDWequirectangular(adjust=False, wrap=True): [2.689413401, 3.0]\n    test 482 HeightIDWequirectangular(list: <class 'list'>\n    test 483 HeightIDWequirectangular(list-float): <class 'float'>\n    test 484 HeightIDWequirectangular(list-float): <class 'float'>\n    test 485 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWequirectangular'>, True)\n    test 486 HeightIDWequirectangular.copy(): (<class 'pygeodesy.heights.HeightIDWequirectangular'>, True)\n    test 487 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n\n    test 488 HeightIDWeuclidean(adjust=False): 2.592735541\n    test 489 HeightIDWeuclidean(float): <class 'float'>\n    test 490 HeightIDWeuclidean(latlon): True\n    test 491 HeightIDWeuclidean_(tuple): True\n    test 492 HeightIDWeuclidean(adjust=False): 3.0\n    test 493 HeightIDWeuclidean(float): <class 'float'>\n    test 494 HeightIDWeuclidean(latlon): True\n    test 495 HeightIDWeuclidean(adjust=False): (2.592735541, 3.0,)\n    test 496 HeightIDWeuclidean(tuple): <class 'tuple'>\n    test 497 HeightIDWeuclidean(tuple-float): <class 'float'>\n    test 498 HeightIDWeuclidean(tuple-float): <class 'float'>\n    test 499 HeightIDWeuclidean(adjust=False): [2.592735541, 3.0]\n    test 500 HeightIDWeuclidean(list: <class 'list'>\n    test 501 HeightIDWeuclidean(list-float): <class 'float'>\n    test 502 HeightIDWeuclidean(list-float): <class 'float'>\n    test 503 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWeuclidean'>, True)\n    test 504 HeightIDWeuclidean.copy(): (<class 'pygeodesy.heights.HeightIDWeuclidean'>, True)\n    test 505 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n\n    test 506 HeightIDWexact(): 2.592742938\n    test 507 HeightIDWexact(float): <class 'float'>\n    test 508 HeightIDWexact(latlon): True\n    test 509 HeightIDWexact_(tuple): True\n    test 510 HeightIDWexact(): 3.0\n    test 511 HeightIDWexact(float): <class 'float'>\n    test 512 HeightIDWexact(latlon): True\n    test 513 HeightIDWexact(): (2.592742938, 3.0,)\n    test 514 HeightIDWexact(tuple): <class 'tuple'>\n    test 515 HeightIDWexact(tuple-float): <class 'float'>\n    test 516 HeightIDWexact(tuple-float): <class 'float'>\n    test 517 HeightIDWexact(): [2.592742938, 3.0]\n    test 518 HeightIDWexact(list: <class 'list'>\n    test 519 HeightIDWexact(list-float): <class 'float'>\n    test 520 HeightIDWexact(list-float): <class 'float'>\n    test 521 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWexact'>, True)\n    test 522 HeightIDWexact.copy(): (<class 'pygeodesy.heights.HeightIDWexact'>, True)\n    test 523 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n\n    test 524 HeightIDWflatLocal(): 2.592743288\n    test 525 HeightIDWflatLocal(float): <class 'float'>\n    test 526 HeightIDWflatLocal(latlon): True\n    test 527 HeightIDWflatLocal_(tuple): True\n    test 528 HeightIDWflatLocal(): 3.0\n    test 529 HeightIDWflatLocal(float): <class 'float'>\n    test 530 HeightIDWflatLocal(latlon): True\n    test 531 HeightIDWflatLocal(): (2.592743288, 3.0,)\n    test 532 HeightIDWflatLocal(tuple): <class 'tuple'>\n    test 533 HeightIDWflatLocal(tuple-float): <class 'float'>\n    test 534 HeightIDWflatLocal(tuple-float): <class 'float'>\n    test 535 HeightIDWflatLocal(): [2.592743288, 3.0]\n    test 536 HeightIDWflatLocal(list: <class 'list'>\n    test 537 HeightIDWflatLocal(list-float): <class 'float'>\n    test 538 HeightIDWflatLocal(list-float): <class 'float'>\n    test 539 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWflatLocal'>, True)\n    test 540 HeightIDWflatLocal.copy(): (<class 'pygeodesy.heights.HeightIDWflatLocal'>, True)\n    test 541 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n\n    test 542 HeightIDWflatPolar(): 2.592973059\n    test 543 HeightIDWflatPolar(float): <class 'float'>\n    test 544 HeightIDWflatPolar(latlon): True\n    test 545 HeightIDWflatPolar_(tuple): True\n    test 546 HeightIDWflatPolar(): 3.0\n    test 547 HeightIDWflatPolar(float): <class 'float'>\n    test 548 HeightIDWflatPolar(latlon): True\n    test 549 HeightIDWflatPolar(): (2.592973059, 3.0,)\n    test 550 HeightIDWflatPolar(tuple): <class 'tuple'>\n    test 551 HeightIDWflatPolar(tuple-float): <class 'float'>\n    test 552 HeightIDWflatPolar(tuple-float): <class 'float'>\n    test 553 HeightIDWflatPolar(): [2.592973059, 3.0]\n    test 554 HeightIDWflatPolar(list: <class 'list'>\n    test 555 HeightIDWflatPolar(list-float): <class 'float'>\n    test 556 HeightIDWflatPolar(list-float): <class 'float'>\n    test 557 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWflatPolar'>, True)\n    test 558 HeightIDWflatPolar.copy(): (<class 'pygeodesy.heights.HeightIDWflatPolar'>, True)\n    test 559 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n\n    test 560 HeightIDWhaversine(): 2.592742938\n    test 561 HeightIDWhaversine(float): <class 'float'>\n    test 562 HeightIDWhaversine(latlon): True\n    test 563 HeightIDWhaversine_(tuple): True\n    test 564 HeightIDWhaversine(): 3.0\n    test 565 HeightIDWhaversine(float): <class 'float'>\n    test 566 HeightIDWhaversine(latlon): True\n    test 567 HeightIDWhaversine(): (2.592742938, 3.0,)\n    test 568 HeightIDWhaversine(tuple): <class 'tuple'>\n    test 569 HeightIDWhaversine(tuple-float): <class 'float'>\n    test 570 HeightIDWhaversine(tuple-float): <class 'float'>\n    test 571 HeightIDWhaversine(): [2.592742938, 3.0]\n    test 572 HeightIDWhaversine(list: <class 'list'>\n    test 573 HeightIDWhaversine(list-float): <class 'float'>\n    test 574 HeightIDWhaversine(list-float): <class 'float'>\n    test 575 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWhaversine'>, True)\n    test 576 HeightIDWhaversine.copy(): (<class 'pygeodesy.heights.HeightIDWhaversine'>, True)\n    test 577 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n\n    test 578 HeightIDWhubeny(): 2.592743288\n    test 579 HeightIDWhubeny(float): <class 'float'>\n    test 580 HeightIDWhubeny(latlon): True\n    test 581 HeightIDWhubeny_(tuple): True\n    test 582 HeightIDWhubeny(): 3.0\n    test 583 HeightIDWhubeny(float): <class 'float'>\n    test 584 HeightIDWhubeny(latlon): True\n    test 585 HeightIDWhubeny(): (2.592743288, 3.0,)\n    test 586 HeightIDWhubeny(tuple): <class 'tuple'>\n    test 587 HeightIDWhubeny(tuple-float): <class 'float'>\n    test 588 HeightIDWhubeny(tuple-float): <class 'float'>\n    test 589 HeightIDWhubeny(): [2.592743288, 3.0]\n    test 590 HeightIDWhubeny(list: <class 'list'>\n    test 591 HeightIDWhubeny(list-float): <class 'float'>\n    test 592 HeightIDWhubeny(list-float): <class 'float'>\n    test 593 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWhubeny'>, True)\n    test 594 HeightIDWhubeny.copy(): (<class 'pygeodesy.heights.HeightIDWhubeny'>, True)\n    test 595 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n\n    test 596 HeightIDWkarney(datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), wrap=True): 2.592742915\n    test 597 HeightIDWkarney(float): <class 'float'>\n    test 598 HeightIDWkarney(latlon): True\n    test 599 HeightIDWkarney_(tuple): True\n    test 600 HeightIDWkarney(datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), wrap=True): 3.0\n    test 601 HeightIDWkarney(float): <class 'float'>\n    test 602 HeightIDWkarney(latlon): True\n    test 603 HeightIDWkarney(datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), wrap=True): (2.592742915, 3.0,)\n    test 604 HeightIDWkarney(tuple): <class 'tuple'>\n    test 605 HeightIDWkarney(tuple-float): <class 'float'>\n    test 606 HeightIDWkarney(tuple-float): <class 'float'>\n    test 607 HeightIDWkarney(datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), wrap=True): [2.592742915, 3.0]\n    test 608 HeightIDWkarney(list: <class 'list'>\n    test 609 HeightIDWkarney(list-float): <class 'float'>\n    test 610 HeightIDWkarney(list-float): <class 'float'>\n    test 611 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWkarney'>, True)\n    test 612 HeightIDWkarney.copy(): (<class 'pygeodesy.heights.HeightIDWkarney'>, True)\n    test 613 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n\n    test 614 HeightIDWkarney(datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), wrap=False): 2.592742915\n    test 615 HeightIDWkarney(float): <class 'float'>\n    test 616 HeightIDWkarney(latlon): True\n    test 617 HeightIDWkarney_(tuple): True\n    test 618 HeightIDWkarney(datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), wrap=False): 3.0\n    test 619 HeightIDWkarney(float): <class 'float'>\n    test 620 HeightIDWkarney(latlon): True\n    test 621 HeightIDWkarney(datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), wrap=False): (2.592742915, 3.0,)\n    test 622 HeightIDWkarney(tuple): <class 'tuple'>\n    test 623 HeightIDWkarney(tuple-float): <class 'float'>\n    test 624 HeightIDWkarney(tuple-float): <class 'float'>\n    test 625 HeightIDWkarney(datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), wrap=False): [2.592742915, 3.0]\n    test 626 HeightIDWkarney(list: <class 'list'>\n    test 627 HeightIDWkarney(list-float): <class 'float'>\n    test 628 HeightIDWkarney(list-float): <class 'float'>\n    test 629 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWkarney'>, True)\n    test 630 HeightIDWkarney.copy(): (<class 'pygeodesy.heights.HeightIDWkarney'>, True)\n    test 631 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n\n    test 632 HeightIDWkarney(datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84), wrap=True): 2.592742938\n    test 633 HeightIDWkarney(float): <class 'float'>\n    test 634 HeightIDWkarney(latlon): True\n    test 635 HeightIDWkarney_(tuple): True\n    test 636 HeightIDWkarney(datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84), wrap=True): 3.0\n    test 637 HeightIDWkarney(float): <class 'float'>\n    test 638 HeightIDWkarney(latlon): True\n    test 639 HeightIDWkarney(datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84), wrap=True): (2.592742938, 3.0,)\n    test 640 HeightIDWkarney(tuple): <class 'tuple'>\n    test 641 HeightIDWkarney(tuple-float): <class 'float'>\n    test 642 HeightIDWkarney(tuple-float): <class 'float'>\n    test 643 HeightIDWkarney(datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84), wrap=True): [2.592742938, 3.0]\n    test 644 HeightIDWkarney(list: <class 'list'>\n    test 645 HeightIDWkarney(list-float): <class 'float'>\n    test 646 HeightIDWkarney(list-float): <class 'float'>\n    test 647 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWkarney'>, True)\n    test 648 HeightIDWkarney.copy(): (<class 'pygeodesy.heights.HeightIDWkarney'>, True)\n    test 649 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n\n    test 650 HeightIDWkarney(datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84), wrap=False): 2.592742938\n    test 651 HeightIDWkarney(float): <class 'float'>\n    test 652 HeightIDWkarney(latlon): True\n    test 653 HeightIDWkarney_(tuple): True\n    test 654 HeightIDWkarney(datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84), wrap=False): 3.0\n    test 655 HeightIDWkarney(float): <class 'float'>\n    test 656 HeightIDWkarney(latlon): True\n    test 657 HeightIDWkarney(datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84), wrap=False): (2.592742938, 3.0,)\n    test 658 HeightIDWkarney(tuple): <class 'tuple'>\n    test 659 HeightIDWkarney(tuple-float): <class 'float'>\n    test 660 HeightIDWkarney(tuple-float): <class 'float'>\n    test 661 HeightIDWkarney(datum=Datum(name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84), wrap=False): [2.592742938, 3.0]\n    test 662 HeightIDWkarney(list: <class 'list'>\n    test 663 HeightIDWkarney(list-float): <class 'float'>\n    test 664 HeightIDWkarney(list-float): <class 'float'>\n    test 665 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWkarney'>, True)\n    test 666 HeightIDWkarney.copy(): (<class 'pygeodesy.heights.HeightIDWkarney'>, True)\n    test 667 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n\n    test 668 HeightIDWthomas(wrap=True): 2.592742781\n    test 669 HeightIDWthomas(float): <class 'float'>\n    test 670 HeightIDWthomas(latlon): True\n    test 671 HeightIDWthomas_(tuple): True\n    test 672 HeightIDWthomas(wrap=True): 3.0\n    test 673 HeightIDWthomas(float): <class 'float'>\n    test 674 HeightIDWthomas(latlon): True\n    test 675 HeightIDWthomas(wrap=True): (2.592742781, 3.0,)\n    test 676 HeightIDWthomas(tuple): <class 'tuple'>\n    test 677 HeightIDWthomas(tuple-float): <class 'float'>\n    test 678 HeightIDWthomas(tuple-float): <class 'float'>\n    test 679 HeightIDWthomas(wrap=True): [2.592742781, 3.0]\n    test 680 HeightIDWthomas(list: <class 'list'>\n    test 681 HeightIDWthomas(list-float): <class 'float'>\n    test 682 HeightIDWthomas(list-float): <class 'float'>\n    test 683 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWthomas'>, True)\n    test 684 HeightIDWthomas.copy(): (<class 'pygeodesy.heights.HeightIDWthomas'>, True)\n    test 685 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n\n    test 686 HeightIDWthomas(wrap=False): 2.592742781\n    test 687 HeightIDWthomas(float): <class 'float'>\n    test 688 HeightIDWthomas(latlon): True\n    test 689 HeightIDWthomas_(tuple): True\n    test 690 HeightIDWthomas(wrap=False): 3.0\n    test 691 HeightIDWthomas(float): <class 'float'>\n    test 692 HeightIDWthomas(latlon): True\n    test 693 HeightIDWthomas(wrap=False): (2.592742781, 3.0,)\n    test 694 HeightIDWthomas(tuple): <class 'tuple'>\n    test 695 HeightIDWthomas(tuple-float): <class 'float'>\n    test 696 HeightIDWthomas(tuple-float): <class 'float'>\n    test 697 HeightIDWthomas(wrap=False): [2.592742781, 3.0]\n    test 698 HeightIDWthomas(list: <class 'list'>\n    test 699 HeightIDWthomas(list-float): <class 'float'>\n    test 700 HeightIDWthomas(list-float): <class 'float'>\n    test 701 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWthomas'>, True)\n    test 702 HeightIDWthomas.copy(): (<class 'pygeodesy.heights.HeightIDWthomas'>, True)\n    test 703 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n\n    test 704 HeightIDWvincentys(wrap=True): 2.592742938\n    test 705 HeightIDWvincentys(float): <class 'float'>\n    test 706 HeightIDWvincentys(latlon): True\n    test 707 HeightIDWvincentys_(tuple): True\n    test 708 HeightIDWvincentys(wrap=True): 3.0\n    test 709 HeightIDWvincentys(float): <class 'float'>\n    test 710 HeightIDWvincentys(latlon): True\n    test 711 HeightIDWvincentys(wrap=True): (2.592742938, 3.0,)\n    test 712 HeightIDWvincentys(tuple): <class 'tuple'>\n    test 713 HeightIDWvincentys(tuple-float): <class 'float'>\n    test 714 HeightIDWvincentys(tuple-float): <class 'float'>\n    test 715 HeightIDWvincentys(wrap=True): [2.592742938, 3.0]\n    test 716 HeightIDWvincentys(list: <class 'list'>\n    test 717 HeightIDWvincentys(list-float): <class 'float'>\n    test 718 HeightIDWvincentys(list-float): <class 'float'>\n    test 719 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWvincentys'>, True)\n    test 720 HeightIDWvincentys.copy(): (<class 'pygeodesy.heights.HeightIDWvincentys'>, True)\n    test 721 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n\n    test 722 HeightIDWvincentys(wrap=False): 2.592742938\n    test 723 HeightIDWvincentys(float): <class 'float'>\n    test 724 HeightIDWvincentys(latlon): True\n    test 725 HeightIDWvincentys_(tuple): True\n    test 726 HeightIDWvincentys(wrap=False): 3.0\n    test 727 HeightIDWvincentys(float): <class 'float'>\n    test 728 HeightIDWvincentys(latlon): True\n    test 729 HeightIDWvincentys(wrap=False): (2.592742938, 3.0,)\n    test 730 HeightIDWvincentys(tuple): <class 'tuple'>\n    test 731 HeightIDWvincentys(tuple-float): <class 'float'>\n    test 732 HeightIDWvincentys(tuple-float): <class 'float'>\n    test 733 HeightIDWvincentys(wrap=False): [2.592742938, 3.0]\n    test 734 HeightIDWvincentys(list: <class 'list'>\n    test 735 HeightIDWvincentys(list-float): <class 'float'>\n    test 736 HeightIDWvincentys(list-float): <class 'float'>\n    test 737 copy(<class 'type'>): (<class 'pygeodesy.heights.HeightIDWvincentys'>, True)\n    test 738 HeightIDWvincentys.copy(): (<class 'pygeodesy.heights.HeightIDWvincentys'>, True)\n    test 739 HeightError: llis[0] (9.0): 'float' object has no attribute 'lon'\n\n    80 tests skipped (80): No module named 'numpy': required by heights.HeightLinear\n\n    8 of 739 testHeights.py tests (1.1%) FAILED, incl. 8 DeprecationWarnings, 80 skipped (pygeodesy 26.3.26 Python 3.14.3 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 263.485 ms\nrunning /Library/Framewo....n3.14 -W default ~/PyGeodesy/test/testInterns.py\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.machine from .internals by testInterns.py line 11\n\n    testing testInterns.py 25.04.12 (module pygeodesy.interns 25.11.07) isLazy=3\n    test 1 _0_ = '0': True\n    test 2 _0_ = '0': 0\n    test 3 _0to9_ = '0123456789': True\n    test 4 _0to9_ = '0123456789': 0123456789  FAILED, KNOWN, expected 0to9\n    test 5 _1_ = '1': True\n    test 6 _1_ = '1': 1\n    test 7 _2_ = '2': True\n    test 8 _2_ = '2': 2\n    test 9 _3_ = '3': True\n    test 10 _3_ = '3': 3\n    test 11 _4_ = '4': True\n    test 12 _4_ = '4': 4\n    test 13 __all__ = ('NN', 'Str_'): False  FAILED, KNOWN, expected True\n    test 14 __builtins__ = {'__name__': 'builtins', ....) for help about object.}: False  FAILED, KNOWN, expected True\n    test 15 __cached__ = './pygeodesy/__pycache__/interns.cpython-314.pyc': True\n    test 16 __doc__ = \"Single C{str}ing constan.... L{pygeodesy.machine}.\\n\": True\n    test 17 __file__ = './pygeodesy/interns.py': True\n    test 18 __loader__ = <_frozen_importlib_extern....er object at 0x105b63050>: False  FAILED, KNOWN, expected True\n    test 19 __name__ = 'pygeodesy.interns': True\n    test 20 __package__ = 'pygeodesy': True\n    test 21 __spec__ = ModuleSpec(name='pygeodes....'./pygeodesy/interns.py'): False  FAILED, KNOWN, expected True\n    test 22 __version__ = '25.11.07': True\n    test 23 _a12_ = 'a12': True\n    test 24 _a12_ = 'a12': a12\n    test 25 _A_ = 'A': True\n    test 26 _A_ = 'A': a\n    test 27 _a_ = 'a': True\n    test 28 _a_ = 'a': a\n    test 29 _Airy1830_ = 'Airy1830': True\n    test 30 _Airy1830_ = 'Airy1830': airy1830\n    test 31 _AiryModified_ = 'AiryModified': True\n    test 32 _AiryModified_ = 'AiryModified': airymodified\n    test 33 _ambiguous_ = 'ambiguous': True\n    test 34 _ambiguous_ = 'ambiguous': ambiguous\n    test 35 _AMPERSAND_ = '&': True\n    test 36 _AMPERSAND_ = '&': &  FAILED, KNOWN, expected ampersand\n    test 37 _an_ = 'an': True\n    test 38 _an_ = 'an': an\n    test 39 _and_ = 'and': True\n    test 40 _and_ = 'and': and\n    test 41 _angle_ = 'angle': True\n    test 42 _angle_ = 'angle': angle\n    test 43 _antipodal_ = 'antipodal': True\n    test 44 _antipodal_ = 'antipodal': antipodal\n    test 45 _area_ = 'area': True\n    test 46 _area_ = 'area': area\n    test 47 _arg_ = 'arg': True\n    test 48 _arg_ = 'arg': arg\n    test 49 _AT_ = '@': True\n    test 50 _AT_ = '@': @  FAILED, KNOWN, expected at\n    test 51 _AtoZnoIO_ = 'ABCDEFGHJKLMNPQRSTUVWXYZ': True\n    test 52 _AtoZnoIO_ = 'ABCDEFGHJKLMNPQRSTUVWXYZ': abcdefghjklmnpqrstuvwxyz  FAILED, KNOWN, expected atoznoio\n    test 53 _attribute_ = 'attribute': True\n    test 54 _attribute_ = 'attribute': attribute\n    test 55 _azi12_ = 'azi12': True\n    test 56 _azi12_ = 'azi12': azi12\n    test 57 _azi1_ = 'azi1': True\n    test 58 _azi1_ = 'azi1': azi1\n    test 59 _azi2_ = 'azi2': True\n    test 60 _azi2_ = 'azi2': azi2\n    test 61 _azimuth_ = 'azimuth': True\n    test 62 _azimuth_ = 'azimuth': azimuth\n    test 63 _B_ = 'B': True\n    test 64 _B_ = 'B': b\n    test 65 _b_ = 'b': True\n    test 66 _b_ = 'b': b\n    test 67 _BACKSLASH_ = '\\\\': True\n    test 68 _BACKSLASH_ = '\\\\': \\  FAILED, KNOWN, expected backslash\n    test 69 _band_ = 'band': True\n    test 70 _band_ = 'band': band\n    test 71 _BANG_ = '!': True\n    test 72 _BANG_ = '!': !  FAILED, KNOWN, expected bang\n    test 73 _BAR_ = '|': True\n    test 74 _BAR_ = '|': |  FAILED, KNOWN, expected bar\n    test 75 _bearing_ = 'bearing': True\n    test 76 _bearing_ = 'bearing': bearing\n    test 77 _Bessel1841_ = 'Bessel1841': True\n    test 78 _Bessel1841_ = 'Bessel1841': bessel1841\n    test 79 _beta_ = 'beta': True\n    test 80 _beta_ = 'beta': beta\n    test 81 _by_ = 'by': True\n    test 82 _by_ = 'by': by\n    test 83 _C_ = 'C': True\n    test 84 _C_ = 'C': c\n    test 85 _c_ = 'c': True\n    test 86 _c_ = 'c': c\n    test 87 _cartesian_ = 'cartesian': True\n    test 88 _cartesian_ = 'cartesian': cartesian\n    test 89 _center_ = 'center': True\n    test 90 _center_ = 'center': center\n    test 91 _Clarke1866_ = 'Clarke1866': True\n    test 92 _Clarke1866_ = 'Clarke1866': clarke1866\n    test 93 _Clarke1880IGN_ = 'Clarke1880IGN': True\n    test 94 _Clarke1880IGN_ = 'Clarke1880IGN': clarke1880ign\n    test 95 _clip_ = 'clip': True\n    test 96 _clip_ = 'clip': clip\n    test 97 _clipid_ = 'clipid': True\n    test 98 _clipid_ = 'clipid': clipid\n    test 99 _coincident_ = 'coincident': True\n    test 100 _coincident_ = 'coincident': coincident\n    test 101 _colinear_ = 'colinear': True\n    test 102 _colinear_ = 'colinear': colinear\n    test 103 _COLON_ = ':': True\n    test 104 _COLON_ = ':': :  FAILED, KNOWN, expected colon\n    test 105 _COLONSPACE_ = ': ': True\n    test 106 _COLONSPACE_ = ': ': :   FAILED, KNOWN, expected colonspace\n    test 107 _COMMA_ = ',': True\n    test 108 _COMMA_ = ',': ,  FAILED, KNOWN, expected comma\n    test 109 _COMMASPACE_ = ', ': True\n    test 110 _COMMASPACE_ = ', ': ,   FAILED, KNOWN, expected commaspace\n    test 111 _composite_ = 'composite': True\n    test 112 _composite_ = 'composite': composite\n    test 113 _concentric_ = 'concentric': True\n    test 114 _concentric_ = 'concentric': concentric\n    test 115 _convergence_ = 'convergence': True\n    test 116 _convergence_ = 'convergence': convergence\n    test 117 _conversion_ = 'conversion': True\n    test 118 _conversion_ = 'conversion': conversion\n    test 119 _convex_ = 'convex': True\n    test 120 _convex_ = 'convex': convex\n    test 121 _D_ = 'D': True\n    test 122 _D_ = 'D': d\n    test 123 _d_ = 'd': True\n    test 124 _d_ = 'd': d\n    test 125 _DALL_ = '__all__': True\n    test 126 _DALL_ = '__all__': __all__  FAILED, KNOWN, expected dall\n    test 127 _DASH_ = '-': True\n    test 128 _DASH_ = '-': -  FAILED, KNOWN, expected dash\n    test 129 _datum_ = 'datum': True\n    test 130 _datum_ = 'datum': datum\n    test 131 _DDOT_ = '..': True\n    test 132 _DDOT_ = '..': ..  FAILED, KNOWN, expected ddot\n    test 133 _decode3_ = 'decode3': True\n    test 134 _decode3_ = 'decode3': decode3\n    test 135 _deg_ = 'deg': True\n    test 136 _deg_ = 'deg': deg\n    test 137 _degrees2_ = 'degrees2': True\n    test 138 _degrees2_ = 'degrees2': degrees2\n    test 139 _degrees_ = 'degrees': True\n    test 140 _degrees_ = 'degrees': degrees\n    test 141 _delta_ = 'delta': True\n    test 142 _delta_ = 'delta': delta\n    test 143 _DEPRECATED_ = 'DEPRECATED': True\n    test 144 _DEPRECATED_ = 'DEPRECATED': deprecated\n    test 145 _DEQUALSPACED_ = ' == ': True\n    test 146 _DEQUALSPACED_ = ' == ':  ==   FAILED, KNOWN, expected dequalspaced\n    test 147 _distance_ = 'distance': True\n    test 148 _distance_ = 'distance': distance\n    test 149 _distant_ = 'distant': True\n    test 150 _distant_ = 'distant': distant\n    test 151 _DMAIN_ = '__main__': True\n    test 152 _DMAIN_ = '__main__': __main__  FAILED, KNOWN, expected dmain\n    test 153 _DNAME_ = '__name__': True\n    test 154 _DNAME_ = '__name__': __name__  FAILED, KNOWN, expected dname\n    test 155 _doesn_t_exist_ = \"doesn't exist\": True\n    test 156 _doesn_t_exist_ = \"doesn't exist\": doesn't exist  FAILED, KNOWN, expected doesn_t_exist\n    test 157 _DOT_ = '.': True\n    test 158 _DOT_ = '.': .  FAILED, KNOWN, expected dot\n    test 159 _DSLASH_ = '//': True\n    test 160 _DSLASH_ = '//': //  FAILED, KNOWN, expected dslash\n    test 161 _DSTAR_ = '**': True\n    test 162 _DSTAR_ = '**': **  FAILED, KNOWN, expected dstar\n    test 163 _DUNDER_ = '__': True\n    test 164 _DUNDER_ = '__': __  FAILED, KNOWN, expected dunder\n    test 165 _duplicate_ = 'duplicate': True\n    test 166 _duplicate_ = 'duplicate': duplicate\n    test 167 _E_ = 'E': True\n    test 168 _E_ = 'E': e\n    test 169 _e_ = 'e': True\n    test 170 _e_ = 'e': e\n    test 171 _earth_ = 'earth': True\n    test 172 _earth_ = 'earth': earth\n    test 173 _easting_ = 'easting': True\n    test 174 _easting_ = 'easting': easting\n    test 175 _ecef_ = 'ecef': True\n    test 176 _ecef_ = 'ecef': ecef\n    test 177 _edge_ = 'edge': True\n    test 178 _edge_ = 'edge': edge\n    test 179 _elevation_ = 'elevation': True\n    test 180 _elevation_ = 'elevation': elevation\n    test 181 _ELLIPSIS4_ = '....': True\n    test 182 _ELLIPSIS4_ = '....': ....  FAILED, KNOWN, expected ellipsis4\n    test 183 _ELLIPSIS_ = '...': True\n    test 184 _ELLIPSIS_ = '...': ...  FAILED, KNOWN, expected ellipsis\n    test 185 _ellipsoid_ = 'ellipsoid': True\n    test 186 _ellipsoid_ = 'ellipsoid': ellipsoid\n    test 187 _ellipsoidal_ = 'ellipsoidal': True\n    test 188 _ellipsoidal_ = 'ellipsoidal': ellipsoidal\n    test 189 _encode_ = 'encode': True\n    test 190 _encode_ = 'encode': encode\n    test 191 _end_ = 'end': True\n    test 192 _end_ = 'end': end\n    test 193 _epoch_ = 'epoch': True\n    test 194 _epoch_ = 'epoch': epoch\n    test 195 _EQUAL_ = '=': True\n    test 196 _EQUAL_ = '=': =  FAILED, KNOWN, expected equal\n    test 197 _EQUALSPACED_ = ' = ': True\n    test 198 _EQUALSPACED_ = ' = ':  =   FAILED, KNOWN, expected equalspaced\n    test 199 _Error_ = 'Error': True\n    test 200 _Error_ = 'Error': error\n    test 201 _EW_ = 'EW': True\n    test 202 _EW_ = 'EW': ew\n    test 203 _exceed_PI_radians_ = 'exceed PI radians': True\n    test 204 _exceed_PI_radians_ = 'exceed PI radians': exceed pi radians  FAILED, KNOWN, expected exceed_pi_radians\n    test 205 _exceeds_ = 'exceeds': True\n    test 206 _exceeds_ = 'exceeds': exceeds\n    test 207 _exists_ = 'exists': True\n    test 208 _exists_ = 'exists': exists\n    test 209 _F_ = 'F': True\n    test 210 _F_ = 'F': f\n    test 211 _f_ = 'f': True\n    test 212 _f_ = 'f': f\n    test 213 _feet_ = 'feet': True\n    test 214 _feet_ = 'feet': feet\n    test 215 _few_ = 'few': True\n    test 216 _few_ = 'few': few\n    test 217 _fi_ = 'fi': True\n    test 218 _fi_ = 'fi': fi\n    test 219 _finite_ = 'finite': True\n    test 220 _finite_ = 'finite': finite\n    test 221 _from_ = 'from': True\n    test 222 _from_ = 'from': from\n    test 223 _g_ = 'g': True\n    test 224 _g_ = 'g': g\n    test 225 _gamma_ = 'gamma': True\n    test 226 _gamma_ = 'gamma': gamma\n    test 227 _GRS80_ = 'GRS80': True\n    test 228 _GRS80_ = 'GRS80': grs80\n    test 229 _H_ = 'H': True\n    test 230 _H_ = 'H': h\n    test 231 _h_ = 'h': True\n    test 232 _h_ = 'h': h\n    test 233 _HASH_ = '#': True\n    test 234 _HASH_ = '#': #  FAILED, KNOWN, expected hash\n    test 235 _height_ = 'height': True\n    test 236 _height_ = 'height': height\n    test 237 _hemipole_ = 'hemipole': True\n    test 238 _hemipole_ = 'hemipole': hemipole\n    test 239 _i_ = 'i': True\n    test 240 _i_ = 'i': i\n    test 241 _immutable_ = 'immutable': True\n    test 242 _immutable_ = 'immutable': immutable\n    test 243 _in_ = 'in': True\n    test 244 _in_ = 'in': in\n    test 245 _incompatible_ = 'incompatible': True\n    test 246 _incompatible_ = 'incompatible': incompatible\n    test 247 _INF_ = 'INF': True\n    test 248 _INF_ = 'INF': inf\n    test 249 _infinite_ = 'infinite': True\n    test 250 _infinite_ = 'infinite': infinite\n    test 251 _initial_ = 'initial': True\n    test 252 _initial_ = 'initial': initial\n    test 253 _inside_ = 'inside': True\n    test 254 _inside_ = 'inside': inside\n    test 255 _insufficient_ = 'insufficient': True\n    test 256 _insufficient_ = 'insufficient': insufficient\n    test 257 _intersection_ = 'intersection': True\n    test 258 _intersection_ = 'intersection': intersection\n    test 259 _Intl1924_ = 'Intl1924': True\n    test 260 _Intl1924_ = 'Intl1924': intl1924\n    test 261 _INV_ = 'INV': True\n    test 262 _INV_ = 'INV': inv\n    test 263 _invalid_ = 'invalid': True\n    test 264 _invalid_ = 'invalid': invalid\n    test 265 _invokation_ = 'invokation': True\n    test 266 _invokation_ = 'invokation': invokation\n    test 267 _j_ = 'j': True\n    test 268 _j_ = 'j': j\n    test 269 _k0_ = 'k0': True\n    test 270 _k0_ = 'k0': k0\n    test 271 _keyword_ = 'keyword': True\n    test 272 _keyword_ = 'keyword': keyword\n    test 273 _kind_ = 'kind': True\n    test 274 _kind_ = 'kind': kind\n    test 275 _Krassovski1940_ = 'Krassovski1940': True\n    test 276 _Krassovski1940_ = 'Krassovski1940': krassovski1940\n    test 277 _Krassowsky1940_ = 'Krassowsky1940': True\n    test 278 _Krassowsky1940_ = 'Krassowsky1940': krassowsky1940\n    test 279 _lam_ = 'lam': True\n    test 280 _lam_ = 'lam': lam\n    test 281 _LANGLE_ = '<': True\n    test 282 _LANGLE_ = '<': <  FAILED, KNOWN, expected langle\n    test 283 _lat0_ = 'lat0': True\n    test 284 _lat0_ = 'lat0': lat0\n    test 285 _lat1_ = 'lat1': True\n    test 286 _lat1_ = 'lat1': lat1\n    test 287 _lat2_ = 'lat2': True\n    test 288 _lat2_ = 'lat2': lat2\n    test 289 _lat_ = 'lat': True\n    test 290 _lat_ = 'lat': lat\n    test 291 _LatLon_ = 'LatLon': True\n    test 292 _LatLon_ = 'LatLon': latlon\n    test 293 _latlon_ = 'latlon': True\n    test 294 _latlon_ = 'latlon': latlon\n    test 295 _LCURLY_ = '{': True\n    test 296 _LCURLY_ = '{': {  FAILED, KNOWN, expected lcurly\n    test 297 _len_ = 'len': True\n    test 298 _len_ = 'len': len\n    test 299 _limit_ = 'limit': True\n    test 300 _limit_ = 'limit': limit\n    test 301 _line_ = 'line': True\n    test 302 _line_ = 'line': line\n    test 303 _lon0_ = 'lon0': True\n    test 304 _lon0_ = 'lon0': lon0\n    test 305 _lon1_ = 'lon1': True\n    test 306 _lon1_ = 'lon1': lon1\n    test 307 _lon2_ = 'lon2': True\n    test 308 _lon2_ = 'lon2': lon2\n    test 309 _lon_ = 'lon': True\n    test 310 _lon_ = 'lon': lon\n    test 311 _low_ = 'low': True\n    test 312 _low_ = 'low': low\n    test 313 _LPAREN_ = '(': True\n    test 314 _LPAREN_ = '(': (  FAILED, KNOWN, expected lparen\n    test 315 _LSQUARE_ = '[': True\n    test 316 _LSQUARE_ = '[': [  FAILED, KNOWN, expected lsquare\n    test 317 _ltp_ = 'ltp': True\n    test 318 _ltp_ = 'ltp': ltp\n    test 319 _M12_ = 'M12': True\n    test 320 _M12_ = 'M12': m12\n    test 321 _m12_ = 'm12': True\n    test 322 _m12_ = 'm12': m12\n    test 323 _M21_ = 'M21': True\n    test 324 _M21_ = 'M21': m21\n    test 325 _M_ = 'M': True\n    test 326 _M_ = 'M': m\n    test 327 _m_ = 'm': True\n    test 328 _m_ = 'm': m\n    test 329 _MANT_DIG_ = 'MANT_DIG': True\n    test 330 _MANT_DIG_ = 'MANT_DIG': mant_dig\n    test 331 _MAX_ = 'MAX': True\n    test 332 _MAX_ = 'MAX': max\n    test 333 _mean_ = 'mean': True\n    test 334 _mean_ = 'mean': mean\n    test 335 _meanOf_ = 'meanOf': True\n    test 336 _meanOf_ = 'meanOf': meanof\n    test 337 _meridional_ = 'meridional': True\n    test 338 _meridional_ = 'meridional': meridional\n    test 339 _meter2_ = 'meter2': True\n    test 340 _meter2_ = 'meter2': meter2\n    test 341 _meter_ = 'meter': True\n    test 342 _meter_ = 'meter': meter\n    test 343 _MGRS_ = 'MGRS': True\n    test 344 _MGRS_ = 'MGRS': mgrs\n    test 345 _MIN_ = 'MIN': True\n    test 346 _MIN_ = 'MIN': min\n    test 347 _MINUS_ = '-': True\n    test 348 _MINUS_ = '-': -  FAILED, KNOWN, expected minus\n    test 349 _module_ = 'module': True\n    test 350 _module_ = 'module': module\n    test 351 _N_ = 'N': True\n    test 352 _N_ = 'N': n\n    test 353 _n_ = 'n': True\n    test 354 _n_ = 'n': n\n    test 355 _N_A_ = 'N/A': True\n    test 356 _N_A_ = 'N/A': n/a  FAILED, KNOWN, expected n_a\n    test 357 _n_a_ = 'n/a': True\n    test 358 _n_a_ = 'n/a': n/a  FAILED, KNOWN, expected n_a\n    test 359 _NAD27_ = 'NAD27': True\n    test 360 _NAD27_ = 'NAD27': nad27\n    test 361 _NAD83_ = 'NAD83': True\n    test 362 _NAD83_ = 'NAD83': nad83\n    test 363 _name_ = 'name': True\n    test 364 _name_ = 'name': name\n    test 365 _NAN_ = 'NAN': True\n    test 366 _NAN_ = 'NAN': nan\n    test 367 _NE_ = 'NE': True\n    test 368 _NE_ = 'NE': ne\n    test 369 _near_ = 'near': True\n    test 370 _near_ = 'near': near\n    test 371 _nearestOn2_ = 'nearestOn2': True\n    test 372 _nearestOn2_ = 'nearestOn2': neareston2\n    test 373 _negative_ = 'negative': True\n    test 374 _negative_ = 'negative': negative\n    test 375 _NL_ = '\\n': True\n    test 376 _NL_ = '\\n': \n  FAILED, KNOWN, expected nl\n    test 377 _NLATvar_ = '\\n@var ': True\n    test 378 _NLATvar_ = '\\n@var ': \n@var   FAILED, KNOWN, expected nlatvar\n    test 379 _NLHASH_ = '\\n# ': True\n    test 380 _NLHASH_ = '\\n# ': \n#   FAILED, KNOWN, expected nlhash\n    test 381 _NN_ = 'NN': True\n    test 382 _NN_ = 'NN': nn\n    test 383 _no_ = 'no': True\n    test 384 _no_ = 'no': no\n    test 385 _northing_ = 'northing': True\n    test 386 _northing_ = 'northing': northing\n    test 387 _not_ = 'not': True\n    test 388 _not_ = 'not': not\n    test 389 _not_finite_ = 'not finite': True\n    test 390 _not_finite_ = 'not finite': not finite  FAILED, KNOWN, expected not_finite\n    test 391 _not_scalar_ = 'not scalar': True\n    test 392 _not_scalar_ = 'not scalar': not scalar  FAILED, KNOWN, expected not_scalar\n    test 393 _NOTEQUAL_ = '!=': True\n    test 394 _NOTEQUAL_ = '!=': !=  FAILED, KNOWN, expected notequal\n    test 395 _NS_ = 'NS': True\n    test 396 _NS_ = 'NS': ns\n    test 397 _NSEW_ = 'NSEW': True\n    test 398 _NSEW_ = 'NSEW': nsew\n    test 399 _NTF_ = 'NTF': True\n    test 400 _NTF_ = 'NTF': ntf\n    test 401 _null_ = 'null': True\n    test 402 _null_ = 'null': null\n    test 403 _number_ = 'number': True\n    test 404 _number_ = 'number': number\n    test 405 _numpy_ = 'numpy': True\n    test 406 _numpy_ = 'numpy': numpy\n    test 407 _Nv00_ = 'Nv00': True\n    test 408 _Nv00_ = 'Nv00': nv00\n    test 409 _NW_ = 'NW': True\n    test 410 _NW_ = 'NW': nw\n    test 411 _odd_ = 'odd': True\n    test 412 _odd_ = 'odd': odd\n    test 413 _of_ = 'of': True\n    test 414 _of_ = 'of': of\n    test 415 _on_ = 'on': True\n    test 416 _on_ = 'on': on\n    test 417 _opposite_ = 'opposite': True\n    test 418 _opposite_ = 'opposite': opposite\n    test 419 _or_ = 'or': True\n    test 420 _or_ = 'or': or\n    test 421 _other_ = 'other': True\n    test 422 _other_ = 'other': other\n    test 423 _outside_ = 'outside': True\n    test 424 _outside_ = 'outside': outside\n    test 425 _overlap_ = 'overlap': True\n    test 426 _overlap_ = 'overlap': overlap\n    test 427 _parallel_ = 'parallel': True\n    test 428 _parallel_ = 'parallel': parallel\n    test 429 _PERCENT_ = '%': True\n    test 430 _PERCENT_ = '%': %  FAILED, KNOWN, expected percent\n    test 431 _PERCENTDOTSTAR_ = '%.*': True\n    test 432 _PERCENTDOTSTAR_ = '%.*': %.*  FAILED, KNOWN, expected percentdotstar\n    test 433 _phi_ = 'phi': True\n    test 434 _phi_ = 'phi': phi\n    test 435 _PLUS_ = '+': True\n    test 436 _PLUS_ = '+': +  FAILED, KNOWN, expected plus\n    test 437 _PLUSMINUS_ = '+-': True\n    test 438 _PLUSMINUS_ = '+-': +-  FAILED, KNOWN, expected plusminus\n    test 439 _point_ = 'point': True\n    test 440 _point_ = 'point': point\n    test 441 _points_ = 'points': True\n    test 442 _points_ = 'points': points\n    test 443 _pole_ = 'pole': True\n    test 444 _pole_ = 'pole': pole\n    test 445 _precision_ = 'precision': True\n    test 446 _precision_ = 'precision': precision\n    test 447 _prime_vertical_ = 'prime_vertical': True\n    test 448 _prime_vertical_ = 'prime_vertical': prime_vertical\n    test 449 _pygeodesy_ = 'pygeodesy': True\n    test 450 _pygeodesy_ = 'pygeodesy': pygeodesy\n    test 451 _pygeodesy_abspath_ = 'pygeodesy_abspath': True\n    test 452 _pygeodesy_abspath_ = 'pygeodesy_abspath': pygeodesy_abspath\n    test 453 _PyPy__ = 'PyPy ': True\n    test 454 _PyPy__ = 'PyPy ': pypy   FAILED, KNOWN, expected pypy\n    test 455 _Python_ = 'Python': True\n    test 456 _Python_ = 'Python': python\n    test 457 _python_ = 'python': True\n    test 458 _python_ = 'python': python\n    test 459 _QUOTE1_ = \"'\": True\n    test 460 _QUOTE1_ = \"'\": '  FAILED, KNOWN, expected quote1\n    test 461 _QUOTE2_ = '\"': True\n    test 462 _QUOTE2_ = '\"': \"  FAILED, KNOWN, expected quote2\n    test 463 _QUOTE3_ = \"'''\": True\n    test 464 _QUOTE3_ = \"'''\": '''  FAILED, KNOWN, expected quote3\n    test 465 _R_ = 'R': True\n    test 466 _R_ = 'R': r\n    test 467 _radians2_ = 'radians2': True\n    test 468 _radians2_ = 'radians2': radians2\n    test 469 _radians_ = 'radians': True\n    test 470 _radians_ = 'radians': radians\n    test 471 _radius1_ = 'radius1': True\n    test 472 _radius1_ = 'radius1': radius1\n    test 473 _radius2_ = 'radius2': True\n    test 474 _radius2_ = 'radius2': radius2\n    test 475 _radius_ = 'radius': True\n    test 476 _radius_ = 'radius': radius\n    test 477 _range_ = 'range': True\n    test 478 _range_ = 'range': range\n    test 479 _RANGLE_ = '>': True\n    test 480 _RANGLE_ = '>': >  FAILED, KNOWN, expected rangle\n    test 481 _RCURLY_ = '}': True\n    test 482 _RCURLY_ = '}': }  FAILED, KNOWN, expected rcurly\n    test 483 _reciprocal_ = 'reciprocal': True\n    test 484 _reciprocal_ = 'reciprocal': reciprocal\n    test 485 _reframe_ = 'reframe': True\n    test 486 _reframe_ = 'reframe': reframe\n    test 487 _resolution_ = 'resolution': True\n    test 488 _resolution_ = 'resolution': resolution\n    test 489 _rIn_ = 'rIn': True\n    test 490 _rIn_ = 'rIn': rin\n    test 491 _RPAREN_ = ')': True\n    test 492 _RPAREN_ = ')': )  FAILED, KNOWN, expected rparen\n    test 493 _RSQUARE_ = ']': True\n    test 494 _RSQUARE_ = ']': ]  FAILED, KNOWN, expected rsquare\n    test 495 _S12_ = 'S12': True\n    test 496 _S12_ = 'S12': s12\n    test 497 _s12_ = 's12': True\n    test 498 _s12_ = 's12': s12\n    test 499 _S_ = 'S': True\n    test 500 _S_ = 'S': s\n    test 501 _s_ = 's': True\n    test 502 _s_ = 's': s\n    test 503 _scalar_ = 'scalar': True\n    test 504 _scalar_ = 'scalar': scalar\n    test 505 _scale0_ = 'scale0': True\n    test 506 _scale0_ = 'scale0': scale0\n    test 507 _scale_ = 'scale': True\n    test 508 _scale_ = 'scale': scale\n    test 509 _scipy_ = 'scipy': True\n    test 510 _scipy_ = 'scipy': scipy\n    test 511 _SE_ = 'SE': True\n    test 512 _SE_ = 'SE': se\n    test 513 _semi_circular_ = 'semi-circular': True\n    test 514 _semi_circular_ = 'semi-circular': semi-circular  FAILED, KNOWN, expected semi_circular\n    test 515 _sep_ = 'sep': True\n    test 516 _sep_ = 'sep': sep\n    test 517 _singular_ = 'singular': True\n    test 518 _singular_ = 'singular': singular\n    test 519 _SLASH_ = '/': True\n    test 520 _SLASH_ = '/': /  FAILED, KNOWN, expected slash\n    test 521 _small_ = 'small': True\n    test 522 _small_ = 'small': small\n    test 523 _SPACE_ = ' ': True\n    test 524 _SPACE_ = ' ':    FAILED, KNOWN, expected space\n    test 525 _specified_ = 'specified': True\n    test 526 _specified_ = 'specified': specified\n    test 527 _Sphere_ = 'Sphere': True\n    test 528 _Sphere_ = 'Sphere': sphere\n    test 529 _spherical_ = 'spherical': True\n    test 530 _spherical_ = 'spherical': spherical\n    test 531 _STAR_ = '*': True\n    test 532 _STAR_ = '*': *  FAILED, KNOWN, expected star\n    test 533 _start_ = 'start': True\n    test 534 _start_ = 'start': start\n    test 535 _std_ = 'std': True\n    test 536 _std_ = 'std': std\n    test 537 _stdev_ = 'stdev': True\n    test 538 _stdev_ = 'stdev': stdev\n    test 539 _SW_ = 'SW': True\n    test 540 _SW_ = 'SW': sw\n    test 541 _tbd_ = 'tbd': True\n    test 542 _tbd_ = 'tbd': tbd\n    test 543 _TILDE_ = '~': True\n    test 544 _TILDE_ = '~': ~  FAILED, KNOWN, expected tilde\n    test 545 _to_ = 'to': True\n    test 546 _to_ = 'to': to\n    test 547 _tolerance_ = 'tolerance': True\n    test 548 _tolerance_ = 'tolerance': tolerance\n    test 549 _too_ = 'too': True\n    test 550 _too_ = 'too': too\n    test 551 _transform_ = 'transform': True\n    test 552 _transform_ = 'transform': transform\n    test 553 _UNDER_ = '_': True\n    test 554 _UNDER_ = '_': _  FAILED, KNOWN, expected under\n    test 555 _units_ = 'units': True\n    test 556 _units_ = 'units': units\n    test 557 _UNUSED_ = 'UNUSED': True\n    test 558 _UNUSED_ = 'UNUSED': unused\n    test 559 _up_ = 'up': True\n    test 560 _up_ = 'up': up\n    test 561 _UPS_ = 'UPS': True\n    test 562 _UPS_ = 'UPS': ups\n    test 563 _utf_8_ = 'utf-8': True\n    test 564 _utf_8_ = 'utf-8': utf-8  FAILED, KNOWN, expected utf_8\n    test 565 _UTM_ = 'UTM': True\n    test 566 _UTM_ = 'UTM': utm\n    test 567 _V_ = 'V': True\n    test 568 _V_ = 'V': v\n    test 569 _valid_ = 'valid': True\n    test 570 _valid_ = 'valid': valid\n    test 571 _value_ = 'value': True\n    test 572 _value_ = 'value': value\n    test 573 _version_ = 'version': True\n    test 574 _version_ = 'version': version\n    test 575 _vs_ = 'vs': True\n    test 576 _vs_ = 'vs': vs\n    test 577 _W_ = 'W': True\n    test 578 _W_ = 'W': w\n    test 579 _WGS72_ = 'WGS72': True\n    test 580 _WGS72_ = 'WGS72': wgs72\n    test 581 _WGS84_ = 'WGS84': True\n    test 582 _WGS84_ = 'WGS84': wgs84\n    test 583 _width_ = 'width': True\n    test 584 _width_ = 'width': width\n    test 585 _with_ = 'with': True\n    test 586 _with_ = 'with': with\n    test 587 _X_ = 'X': True\n    test 588 _X_ = 'X': x\n    test 589 _x_ = 'x': True\n    test 590 _x_ = 'x': x\n    test 591 _xyz_ = 'xyz': True\n    test 592 _xyz_ = 'xyz': xyz\n    test 593 _Y_ = 'Y': True\n    test 594 _Y_ = 'Y': y\n    test 595 _y_ = 'y': True\n    test 596 _y_ = 'y': y\n    test 597 _Z_ = 'Z': True\n    test 598 _Z_ = 'Z': z\n    test 599 _z_ = 'z': True\n    test 600 _z_ = 'z': z\n    test 601 _zone_ = 'zone': True\n    test 602 _zone_ = 'zone': zone\n    test 603 .tillC: ABC\n    test 604 .fromX: XYZ\n    test 605 .fromH.tillJ: HJ\n    test 606 .fromN.tillP: NP\n\n    test 607 machine: arm64\n    test 608 sysctl: 0\n    test 609 usage: python3 -m pygeodesy.interns\n    test 610 version: (3, 14)\n\n    64 of 610 testInterns.py tests (10.5%) FAILED, ALL KNOWN (pygeodesy 26.3.26 Python 3.14.3 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 10.405 ms\nrunning /Library/Framewo....n3.14 -W default ~/PyGeodesy/test/testIters.py\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.PointsError from .errors by testIters.py line 11\n# lazily imported pygeodesy.PointsIter from .iters by testIters.py line 11\n\n    testing testIters.py 23.03.27 (module pygeodesy.iters 25.05.19) isLazy=3\n# lazily imported pygeodesy.booleans by iters.py line 76\n    test 1 i : 7\n    test 2 dedup: False\n    test 3 i : 0\n    test 4 p0: True\n    test 5 dedup: True\n    test 6 copies: [0, 1, 2, 3, 4, 5, 6, 7]\n    test 7 i : 0\n    test 8 copies: 9\n    test 9 p0: True\n    test 10 copies: True\n    test 11 copies: (0, 1, 2, 3, 4, 5, 6, 7)\n    test 12 iter: 1\n    test 13 iter: 2\n    test 14 iter: 3\n    test 15 re-iter: PointsError('points (0): too few')\n\n    all 15 testIters.py tests passed (pygeodesy 26.3.26 Python 3.14.3 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 2.454 ms\nrunning /Library/Framewo....n3.14 -W default ~/PyGeodesy/test/testKarney.py\n./pygeodesy/ellipsoidalKarney.py:139: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return fabs(_polygon(datum.ellipsoid.geodesic, points, True, False, wrap, polar))\n./pygeodesy/ellipsoidalKarney.py:347: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return _polygon(datum.ellipsoid.geodesic, points, closed, True, wrap, False)\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.fsum_ from .fsums by testKarney.py line 11\n# lazily imported pygeodesy.LatLon_ from .points by testKarney.py line 11\n# lazily imported pygeodesy.sincos2d from .utily by testKarney.py line 11\n# lazily imported pygeodesy.unroll180 from .utily by testKarney.py line 11\n# lazily imported pygeodesy.wrap180 from .utily by testKarney.py line 11\n# lazily imported pygeodesy.ellipsoidalExact by testKarney.py line 220\n# lazily imported pygeodesy.geodesicw by testKarney.py line 220\n# lazily imported pygeodesy.geodesicx by testKarney.py line 220\n\n    testing testKarney.py 25.12.20 (module pygeodesy.karney 25.12.23) isLazy=3\n# lazily imported pygeodesy.ellipsoidalKarney by testKarney.py line 225\n    test 1 Geodesic: True\n    test 2 Geodesic: True\n\n    testDirect(pygeodesy.geodesicw, 25.05.28)\n    test 3 Direct.lat2: -11.174910000000\n    test 4 Direct.lon2: -69.959210000000\n    test 5 Direct.azi2: 129.289270889709\n    test 6 Direct.a12: 80.507297142820\n    test 7 Direct.m12: 6273170.205530384555  FAILED, KNOWN (1.48461e-14), expected 6273170.205530383624\n    test 8 Direct.M12: 0.166063184474\n    test 9 Direct.M21: 0.164791169456\n    test 10 Direct.S12: 12841384694976.431640625000\n    test 11 Direct.lat2: 77.031960000000\n    test 12 Direct.lon2: 197.182340000000\n    test 13 Direct.azi2: 109.112041110672\n    test 14 Direct.a12: 36.892740690446\n    test 15 Direct.m12: 3828869.334438760299  FAILED, KNOWN (1.21618e-14), expected 3828869.334438760765\n    test 16 Direct.M12: 0.800763496081\n    test 17 Direct.M21: 0.801010069842\n    test 18 Direct.S12: 61674961290615.609375000000  FAILED, KNOWN (1.26672e-14), expected 61674961290615.617187500000\n    test 19 Direct.lat2: 41.841380000000\n    test 20 Direct.lon2: 98.566350000000\n    test 21 Direct.azi2: -41.843599514405\n    test 22 Direct.a12: 75.629304910115\n    test 23 Direct.m12: 6161154.577311060391  FAILED, KNOWN (1.5116e-14), expected 6161154.577311061323\n    test 24 Direct.M12: 0.248163392340\n    test 25 Direct.M21: 0.249302512036\n    test 26 Direct.S12: -6637997720646.715820312500  FAILED, KNOWN (1.47117e-14), expected -6637997720646.716796875000\n    test 27 Direct.lat2: -12.706310000000\n    test 28 Direct.lon2: 285.903440000000\n    test 29 Direct.azi2: 2.512956620914\n    test 30 Direct.a12: 100.278634181156\n    test 31 Direct.m12: 6289939.567044666968  FAILED, KNOWN (2.96131e-14), expected 6289939.567044668831\n    test 32 Direct.M12: -0.171994902747\n    test 33 Direct.M21: -0.177225695263\n    test 34 Direct.S12: -121287239862139.734375000000  FAILED, KNOWN (1.28826e-14), expected -121287239862139.750000000000\n    test 35 Direct.lat2: -15.847840000000\n    test 36 Direct.lon2: 5.935570000000\n    test 37 Direct.azi2: -20.787484651537\n    test 38 Direct.a12: 144.640108810286\n    test 39 Direct.m12: 3732902.158387716860  FAILED, KNOWN (4.9898e-14), expected 3732902.158387718722\n    test 40 Direct.M12: -0.812736387001\n    test 41 Direct.M21: -0.812998005192\n    test 42 Direct.S12: 97825992354058.703125000000\n\n    testInverse(pygeodesy.geodesicw, 25.05.28)\n    test 43 Inverse.lat2: -11.174910000000\n    test 44 Inverse.lon2: -69.959210000000\n    test 45 Inverse.azi1: 111.098748429560\n    test 46 Inverse.azi2: 129.289270889709\n    test 47 Inverse.s12: 8935244.560481829569\n    test 48 Inverse.a12: 80.507297142820\n    test 49 Inverse.m12: 6273170.205530383624\n    test 50 Inverse.M12: 0.166063184474\n    test 51 Inverse.M21: 0.164791169456\n    test 52 Inverse.S12: 12841384694976.433593750000  FAILED, KNOWN (1.52096e-14), expected 12841384694976.431640625000\n    test 53 Inverse.lat2: 77.031960000000\n    test 54 Inverse.lon2: 197.182340000000\n    test 55 Inverse.azi1: 22.020059880983\n    test 56 Inverse.azi2: 109.112041110672\n    test 57 Inverse.s12: 4105086.171392441727  FAILED, KNOWN (2.2687e-14), expected 4105086.171392440796\n    test 58 Inverse.a12: 36.892740690446\n    test 59 Inverse.m12: 3828869.334438761696  FAILED, KNOWN (2.43237e-14), expected 3828869.334438760765\n    test 60 Inverse.M12: 0.800763496081\n    test 61 Inverse.M21: 0.801010069842\n    test 62 Inverse.S12: 61674961290615.617187500000\n    test 63 Inverse.lat2: 41.841380000000\n    test 64 Inverse.lon2: 98.566350000000\n    test 65 Inverse.azi1: -32.444568764332\n    test 66 Inverse.azi2: -41.843599514405\n    test 67 Inverse.s12: 8394328.894657669589  FAILED, KNOWN (2.21893e-14), expected 8394328.894657671452\n    test 68 Inverse.a12: 75.629304910115\n    test 69 Inverse.m12: 6161154.577311060391  FAILED, KNOWN (1.5116e-14), expected 6161154.577311061323\n    test 70 Inverse.M12: 0.248163392340\n    test 71 Inverse.M21: 0.249302512036\n    test 72 Inverse.S12: -6637997720646.717773437500  FAILED, KNOWN (1.47117e-14), expected -6637997720646.716796875000\n    test 73 Inverse.lat2: -12.706310000000\n    test 74 Inverse.lon2: 285.903440000000\n    test 75 Inverse.azi1: 173.734912408784\n    test 76 Inverse.azi2: 2.512956620914\n    test 77 Inverse.s12: 11150344.231208024547\n    test 78 Inverse.a12: 100.278634181156\n    test 79 Inverse.m12: 6289939.567044666968  FAILED, KNOWN (2.96131e-14), expected 6289939.567044668831\n    test 80 Inverse.M12: -0.171994902747\n    test 81 Inverse.M21: -0.177225695263\n    test 82 Inverse.S12: -121287239862139.718750000000  FAILED, KNOWN (2.57653e-14), expected -121287239862139.750000000000\n    test 83 Inverse.lat2: -15.847840000000\n    test 84 Inverse.lon2: 5.935570000000\n    test 85 Inverse.azi1: -159.033557661193\n    test 86 Inverse.azi2: -20.787484651537\n    test 87 Inverse.s12: 16076603.163118068129\n    test 88 Inverse.a12: 144.640108810286\n    test 89 Inverse.m12: 3732902.158387719188  FAILED, KNOWN (1.24745e-14), expected 3732902.158387718722\n    test 90 Inverse.M12: -0.812736387001\n    test 91 Inverse.M21: -0.812998005192\n    test 92 Inverse.S12: 97825992354058.703125000000\n    test 93 Inverse.lat2: 90.000000000000\n    test 94 Inverse.lon2: 0.000000000000\n    test 95 Inverse.azi1: 0.000000000000\n    test 96 Inverse.azi2: 0.000000000000\n    test 97 Inverse.s12: 558455.588646476739  FAILED, KNOWN (8.53641e-11), expected 558455.588646000018\n    test 98 Inverse.a12: 5.016734754264  FAILED, KNOWN (4.89833e-06), expected 5.016735000000\n    test 99 Inverse.m12: 557747.059253584128  FAILED, KNOWN (7.45563e-11), expected 557747.059253999963\n    test 100 Inverse.M12: 0.996194698092  FAILED, KNOWN (3.03061e-05), expected 0.996195000000\n    test 101 Inverse.M21: 0.996194828008  FAILED, KNOWN (1.72648e-05), expected 0.996195000000\n    test 102 Inverse.S12: 0.000000000000\n    test 103 Inverse.lat2: 90.000000000000\n    test 104 Inverse.lon2: 10.000000000000\n    test 105 Inverse.azi1: 0.000000000000\n    test 106 Inverse.azi2: 10.000000000000\n    test 107 Inverse.s12: 558455.588646476739  FAILED, KNOWN (8.53641e-11), expected 558455.588646000018\n    test 108 Inverse.a12: 5.016734754264  FAILED, KNOWN (4.89833e-06), expected 5.016735000000\n    test 109 Inverse.m12: 557747.059253584128  FAILED, KNOWN (7.45563e-11), expected 557747.059253999963\n    test 110 Inverse.M12: 0.996194698092  FAILED, KNOWN (3.03061e-05), expected 0.996195000000\n    test 111 Inverse.M21: 0.996194828008  FAILED, KNOWN (1.72648e-05), expected 0.996195000000\n    test 112 Inverse.S12: 7084244746167.895507812500\n\n    testInverseLine(pygeodesy.geodesicw, 25.05.28)\n    test 113 InverseLine[0].lat: 40.640\n    test 114 InverseLine[0].lon: -73.779\n    test 115 InverseLine[1].lat: 49.825  FAILED, KNOWN (0.00641087), expected 49.829\n    test 116 InverseLine[1].lon: -72.962\n    test 117 InverseLine[2].lat: 58.992  FAILED, KNOWN (0.0026387), expected 58.994\n    test 118 InverseLine[2].lon: -71.759\n    test 119 InverseLine[3].lat: 68.132  FAILED, KNOWN (0.00640093), expected 68.127\n    test 120 InverseLine[3].lon: -69.677  FAILED, KNOWN (0.0019843), expected -69.678\n    test 121 InverseLine[4].lat: 77.203  FAILED, KNOWN (0.0174018), expected 77.190\n    test 122 InverseLine[4].lon: -64.830  FAILED, KNOWN (0.0188051), expected -64.842\n    test 123 InverseLine[5].lat: 85.794  FAILED, KNOWN (0.023512), expected 85.774\n    test 124 InverseLine[5].lon: -39.425  FAILED, KNOWN (0.511977), expected -39.628\n    test 125 InverseLine[6].lat: 83.690  FAILED, KNOWN (0.0405821), expected 83.724\n    test 126 InverseLine[6].lon: 80.754  FAILED, KNOWN (0.167168), expected 80.619\n    test 127 InverseLine[7].lat: 74.828  FAILED, KNOWN (0.0632801), expected 74.875\n    test 128 InverseLine[7].lon: 94.774  FAILED, KNOWN (0.0324631), expected 94.743\n    test 129 InverseLine[8].lat: 65.730  FAILED, KNOWN (0.0856355), expected 65.786\n    test 130 InverseLine[8].lon: 98.489  FAILED, KNOWN (0.0149102), expected 98.474\n    test 131 InverseLine[9].lat: 56.582  FAILED, KNOWN (0.108466), expected 56.643\n    test 132 InverseLine[9].lon: 100.254  FAILED, KNOWN (0.0088657), expected 100.246\n    test 133 InverseLine[10].lat: 47.409  FAILED, KNOWN (0.13059), expected 47.471\n    test 134 InverseLine[10].lon: 101.327  FAILED, KNOWN (0.00584966), expected 101.321\n    test 135 InverseLine[11].lat: 38.220  FAILED, KNOWN (0.150547), expected 38.277\n    test 136 InverseLine[11].lon: 102.079  FAILED, KNOWN (0.00399913), expected 102.075\n    test 137 InverseLine[12].lat: 29.017  FAILED, KNOWN (0.166648), expected 29.066\n    test 138 InverseLine[12].lon: 102.662  FAILED, KNOWN (0.0026948), expected 102.659\n    test 139 InverseLine[13].lat: 19.804  FAILED, KNOWN (0.176529), expected 19.839\n    test 140 InverseLine[13].lon: 103.148  FAILED, KNOWN (0.00167385), expected 103.147\n    test 141 InverseLine[14].lat: 10.584  FAILED, KNOWN (0.173707), expected 10.602\n    test 142 InverseLine[14].lon: 103.581\n    test 143 InverseLine[15].lat: 1.359\n    test 144 InverseLine[15].lon: 103.989\n\n    testGeodCalc(pygeodesy.ellipsoidalKarney, 25.05.27)\n# lazily imported pygeodesy.booleans by karney.py line 875\n    test 145 area: 13662703680020\n    test 146 perimeter: 16831067.892791\n\n    testMask(pygeodesy.geodesicw, 25.05.28)\n    test 147 Geodesic.EMPTY: 0b0\n    test 148 Geodesic.LATITUDE: 0b10000000\n    test 149 Geodesic.LONGITUDE: 0b100001000\n    test 150 Geodesic.AZIMUTH: 0b1000000000\n    test 151 Geodesic.AREA: 0b100000000010000\n    test 152 Geodesic.DISTANCE: 0b10000000001\n    test 153 Geodesic.DISTANCE_IN: 0b100000000011\n    test 154 Geodesic.REDUCEDLENGTH: 0b1000000000101\n    test 155 Geodesic.GEODESICSCALE: 0b10000000000101\n    test 156 Geodesic.STANDARD: 0b11110001001\n    test 157 Geodesic.STANDARD_LINE: 0b111110001011\n    test 158 Geodesic.ALL: 0b111111110011111\n    test 159 Caps: ALL|AREA|AZIMUTH|AZIMUTH_DISTANCE|AZIMUTH_DISTANCE_AREA|DISTANCE|DISTANCE_IN|GEODESICSCALE|LATITUDE|LATITUDE_LONGITUDE|LATITUDE_LONGITUDE_AREA|LINE_CAPS|LONGITUDE|REDUCEDLENGTH|STANDARD|STANDARD_LINE\n    test 160 Caps: ALL|AREA|AZIMUTH|AZIMUTH_DISTANCE|AZIMUTH_DISTANCE_AREA|DISTANCE|DISTANCE_IN|GEODESICSCALE|LATITUDE|LATITUDE_LONGITUDE|LATITUDE_LONGITUDE_AREA|LINE_CAPS|LONGITUDE|REDUCEDLENGTH|STANDARD|STANDARD_LINE\n\n    testDirect(pygeodesy.geodesicx, 25.12.23)\n# lazily imported pygeodesy.elliptic by gxline.py line 289\n    test 161 Direct.lat2: -11.174910000000\n    test 162 Direct.lon2: -69.959210000000\n    test 163 Direct.azi2: 129.289270889709\n    test 164 Direct.a12: 80.507297142820\n    test 165 Direct.m12: 6273170.205530384555  FAILED, KNOWN (1.48461e-14), expected 6273170.205530383624\n    test 166 Direct.M12: 0.166063184474\n    test 167 Direct.M21: 0.164791169456\n    test 168 Direct.S12: 12841384694976.431640625000\n    test 169 Direct.lat2: 77.031960000000\n    test 170 Direct.lon2: 197.182340000000\n    test 171 Direct.azi2: 109.112041110672\n    test 172 Direct.a12: 36.892740690446\n    test 173 Direct.m12: 3828869.334438760299  FAILED, KNOWN (1.21618e-14), expected 3828869.334438760765\n    test 174 Direct.M12: 0.800763496081\n    test 175 Direct.M21: 0.801010069842\n    test 176 Direct.S12: 61674961290615.609375000000  FAILED, KNOWN (1.26672e-14), expected 61674961290615.617187500000\n    test 177 Direct.lat2: 41.841380000000\n    test 178 Direct.lon2: 98.566350000000\n    test 179 Direct.azi2: -41.843599514405\n    test 180 Direct.a12: 75.629304910115\n    test 181 Direct.m12: 6161154.577311059460  FAILED, KNOWN (3.02321e-14), expected 6161154.577311061323\n    test 182 Direct.M12: 0.248163392340\n    test 183 Direct.M21: 0.249302512036\n    test 184 Direct.S12: -6637997720646.717773437500  FAILED, KNOWN (1.47117e-14), expected -6637997720646.716796875000\n    test 185 Direct.lat2: -12.706310000000\n    test 186 Direct.lon2: 285.903440000000\n    test 187 Direct.azi2: 2.512956620914\n    test 188 Direct.a12: 100.278634181156\n    test 189 Direct.m12: 6289939.567044666968  FAILED, KNOWN (2.96131e-14), expected 6289939.567044668831\n    test 190 Direct.M12: -0.171994902747\n    test 191 Direct.M21: -0.177225695263\n    test 192 Direct.S12: -121287239862139.734375000000  FAILED, KNOWN (1.28826e-14), expected -121287239862139.750000000000\n    test 193 Direct.lat2: -15.847840000000\n    test 194 Direct.lon2: 5.935570000000\n    test 195 Direct.azi2: -20.787484651537\n    test 196 Direct.a12: 144.640108810286\n    test 197 Direct.m12: 3732902.158387716860  FAILED, KNOWN (4.9898e-14), expected 3732902.158387718722\n    test 198 Direct.M12: -0.812736387001\n    test 199 Direct.M21: -0.812998005192\n    test 200 Direct.S12: 97825992354058.703125000000\n\n    testInverse(pygeodesy.geodesicx, 25.12.23)\n    test 201 Inverse.lat2: -11.174910000000\n    test 202 Inverse.lon2: -69.959210000000\n    test 203 Inverse.azi1: 111.098748429560\n    test 204 Inverse.azi2: 129.289270889709\n    test 205 Inverse.s12: 8935244.560481829569\n    test 206 Inverse.a12: 80.507297142820\n    test 207 Inverse.m12: 6273170.205530382693  FAILED, KNOWN (1.48461e-14), expected 6273170.205530383624\n    test 208 Inverse.M12: 0.166063184474\n    test 209 Inverse.M21: 0.164791169456\n    test 210 Inverse.S12: 12841384694976.433593750000  FAILED, KNOWN (1.52096e-14), expected 12841384694976.431640625000\n    test 211 Inverse.lat2: 77.031960000000\n    test 212 Inverse.lon2: 197.182340000000\n    test 213 Inverse.azi1: 22.020059880983\n    test 214 Inverse.azi2: 109.112041110672\n    test 215 Inverse.s12: 4105086.171392441727  FAILED, KNOWN (2.2687e-14), expected 4105086.171392440796\n    test 216 Inverse.a12: 36.892740690446\n    test 217 Inverse.m12: 3828869.334438761696  FAILED, KNOWN (2.43237e-14), expected 3828869.334438760765\n    test 218 Inverse.M12: 0.800763496081\n    test 219 Inverse.M21: 0.801010069842\n    test 220 Inverse.S12: 61674961290615.617187500000\n    test 221 Inverse.lat2: 41.841380000000\n    test 222 Inverse.lon2: 98.566350000000\n    test 223 Inverse.azi1: -32.444568764332\n    test 224 Inverse.azi2: -41.843599514405\n    test 225 Inverse.s12: 8394328.894657669589  FAILED, KNOWN (2.21893e-14), expected 8394328.894657671452\n    test 226 Inverse.a12: 75.629304910115\n    test 227 Inverse.m12: 6161154.577311059460  FAILED, KNOWN (3.02321e-14), expected 6161154.577311061323\n    test 228 Inverse.M12: 0.248163392340\n    test 229 Inverse.M21: 0.249302512036\n    test 230 Inverse.S12: -6637997720646.717773437500  FAILED, KNOWN (1.47117e-14), expected -6637997720646.716796875000\n    test 231 Inverse.lat2: -12.706310000000\n    test 232 Inverse.lon2: 285.903440000000\n    test 233 Inverse.azi1: 173.734912408784\n    test 234 Inverse.azi2: 2.512956620914\n    test 235 Inverse.s12: 11150344.231208024547\n    test 236 Inverse.a12: 100.278634181156\n    test 237 Inverse.m12: 6289939.567044666968  FAILED, KNOWN (2.96131e-14), expected 6289939.567044668831\n    test 238 Inverse.M12: -0.171994902747\n    test 239 Inverse.M21: -0.177225695263\n    test 240 Inverse.S12: -121287239862139.718750000000  FAILED, KNOWN (2.57653e-14), expected -121287239862139.750000000000\n    test 241 Inverse.lat2: -15.847840000000\n    test 242 Inverse.lon2: 5.935570000000\n    test 243 Inverse.azi1: -159.033557661193\n    test 244 Inverse.azi2: -20.787484651537\n    test 245 Inverse.s12: 16076603.163118068129\n    test 246 Inverse.a12: 144.640108810286\n    test 247 Inverse.m12: 3732902.158387718257  FAILED, KNOWN (1.24745e-14), expected 3732902.158387718722\n    test 248 Inverse.M12: -0.812736387001\n    test 249 Inverse.M21: -0.812998005192\n    test 250 Inverse.S12: 97825992354058.703125000000\n    test 251 Inverse.lat2: 90.000000000000\n    test 252 Inverse.lon2: 0.000000000000\n    test 253 Inverse.azi1: 0.000000000000\n    test 254 Inverse.azi2: 0.000000000000\n    test 255 Inverse.s12: 558020.704208072624  FAILED, KNOWN (0.0778727), expected 558455.588646000018\n    test 256 Inverse.a12: 5.016734754264  FAILED, KNOWN (4.89833e-06), expected 5.016735000000\n    test 257 Inverse.m12: 557747.059253584128  FAILED, KNOWN (7.45563e-11), expected 557747.059253999963\n    test 258 Inverse.M12: 0.996194698092  FAILED, KNOWN (3.03061e-05), expected 0.996195000000\n    test 259 Inverse.M21: 0.996188865576  FAILED, KNOWN (0.000615785), expected 0.996195000000\n    test 260 Inverse.S12: 0.000000000000\n    test 261 Inverse.lat2: 90.000000000000\n    test 262 Inverse.lon2: 10.000000000000\n    test 263 Inverse.azi1: 0.000000000000\n    test 264 Inverse.azi2: 10.000000000000\n    test 265 Inverse.s12: 558020.704208072624  FAILED, KNOWN (0.0778727), expected 558455.588646000018\n    test 266 Inverse.a12: 5.016734754264  FAILED, KNOWN (4.89833e-06), expected 5.016735000000\n    test 267 Inverse.m12: 557747.059253584128  FAILED, KNOWN (7.45563e-11), expected 557747.059253999963\n    test 268 Inverse.M12: 0.996194698092  FAILED, KNOWN (3.03061e-05), expected 0.996195000000\n    test 269 Inverse.M21: 0.996188865576  FAILED, KNOWN (0.000615785), expected 0.996195000000\n    test 270 Inverse.S12: 7084244746167.895507812500\n\n    testInverseLine(pygeodesy.geodesicx, 25.12.23)\n    test 271 InverseLine[0].lat: 40.640\n    test 272 InverseLine[0].lon: -73.779\n    test 273 InverseLine[1].lat: 49.825  FAILED, KNOWN (0.00641087), expected 49.829\n    test 274 InverseLine[1].lon: -72.962\n    test 275 InverseLine[2].lat: 58.992  FAILED, KNOWN (0.0026387), expected 58.994\n    test 276 InverseLine[2].lon: -71.759\n    test 277 InverseLine[3].lat: 68.132  FAILED, KNOWN (0.00640093), expected 68.127\n    test 278 InverseLine[3].lon: -69.677  FAILED, KNOWN (0.0019843), expected -69.678\n    test 279 InverseLine[4].lat: 77.203  FAILED, KNOWN (0.0174018), expected 77.190\n    test 280 InverseLine[4].lon: -64.830  FAILED, KNOWN (0.0188051), expected -64.842\n    test 281 InverseLine[5].lat: 85.794  FAILED, KNOWN (0.023512), expected 85.774\n    test 282 InverseLine[5].lon: -39.425  FAILED, KNOWN (0.511977), expected -39.628\n    test 283 InverseLine[6].lat: 83.690  FAILED, KNOWN (0.0405821), expected 83.724\n    test 284 InverseLine[6].lon: 80.754  FAILED, KNOWN (0.167168), expected 80.619\n    test 285 InverseLine[7].lat: 74.828  FAILED, KNOWN (0.0632801), expected 74.875\n    test 286 InverseLine[7].lon: 94.774  FAILED, KNOWN (0.0324631), expected 94.743\n    test 287 InverseLine[8].lat: 65.730  FAILED, KNOWN (0.0856355), expected 65.786\n    test 288 InverseLine[8].lon: 98.489  FAILED, KNOWN (0.0149102), expected 98.474\n    test 289 InverseLine[9].lat: 56.582  FAILED, KNOWN (0.108466), expected 56.643\n    test 290 InverseLine[9].lon: 100.254  FAILED, KNOWN (0.0088657), expected 100.246\n    test 291 InverseLine[10].lat: 47.409  FAILED, KNOWN (0.13059), expected 47.471\n    test 292 InverseLine[10].lon: 101.327  FAILED, KNOWN (0.00584966), expected 101.321\n    test 293 InverseLine[11].lat: 38.220  FAILED, KNOWN (0.150547), expected 38.277\n    test 294 InverseLine[11].lon: 102.079  FAILED, KNOWN (0.00399913), expected 102.075\n    test 295 InverseLine[12].lat: 29.017  FAILED, KNOWN (0.166648), expected 29.066\n    test 296 InverseLine[12].lon: 102.662  FAILED, KNOWN (0.0026948), expected 102.659\n    test 297 InverseLine[13].lat: 19.804  FAILED, KNOWN (0.176529), expected 19.839\n    test 298 InverseLine[13].lon: 103.148  FAILED, KNOWN (0.00167385), expected 103.147\n    test 299 InverseLine[14].lat: 10.584  FAILED, KNOWN (0.173707), expected 10.602\n    test 300 InverseLine[14].lon: 103.581\n    test 301 InverseLine[15].lat: 1.359\n    test 302 InverseLine[15].lon: 103.989\n\n    testGeodCalc(pygeodesy.ellipsoidalExact, 25.08.28)\n    test 303 area: 13662703680020\n    test 304 perimeter: 16830891.356049\n\n    testMask(pygeodesy.geodesicx, 25.12.23)\n    test 305 Geodesic.EMPTY: 0b0\n    test 306 Geodesic.LATITUDE: 0b10000000\n    test 307 Geodesic.LONGITUDE: 0b100001000\n    test 308 Geodesic.AZIMUTH: 0b1000000000\n    test 309 Geodesic.AREA: 0b100000000010000\n    test 310 Geodesic.DISTANCE: 0b10000000001\n    test 311 Geodesic.DISTANCE_IN: 0b100000000011\n    test 312 Geodesic.REDUCEDLENGTH: 0b1000000000101\n    test 313 Geodesic.GEODESICSCALE: 0b10000000000101\n    test 314 Geodesic.STANDARD: 0b11110001001\n    test 315 Geodesic.STANDARD_LINE: 0b111110001011\n    test 316 Geodesic.ALL: 0b111111110011111\n    test 317 Caps: ALL|AREA|AZIMUTH|AZIMUTH_DISTANCE|AZIMUTH_DISTANCE_AREA|DISTANCE|DISTANCE_IN|GEODESICSCALE|LATITUDE|LATITUDE_LONGITUDE|LATITUDE_LONGITUDE_AREA|LINE_CAPS|LONGITUDE|REDUCEDLENGTH|STANDARD|STANDARD_LINE\n    test 318 Caps: ALL|AREA|AZIMUTH|AZIMUTH_DISTANCE|AZIMUTH_DISTANCE_AREA|DISTANCE|DISTANCE_IN|GEODESICSCALE|LATITUDE|LATITUDE_LONGITUDE|LATITUDE_LONGITUDE_AREA|LINE_CAPS|LONGITUDE|REDUCEDLENGTH|STANDARD|STANDARD_LINE\n\n    102 tests skipped (102): no GeodSolve\n\n    testMath(pygeodesy.karney, 25.12.23)\n    test 319 sin(-360): -0.0\n    test 320 cos(-360): 1.0\n    test 321 sin(-345): 0.25881904510252074\n    test 322 cos(-345): 0.9659258262890683\n    test 323 sin(-330): 0.5  FAILED, KNOWN, expected 0.49999999999999994\n    test 324 cos(-330): 0.8660254037844386\n    test 325 sin(-315): 0.7071067811865476  FAILED, KNOWN, expected 0.7071067811865475\n    test 326 cos(-315): 0.7071067811865476\n    test 327 sin(-300): 0.8660254037844386  FAILED, KNOWN, expected 0.8660254037844387\n    test 328 cos(-300): 0.5000000000000001\n    test 329 sin(-285): 0.9659258262890683\n    test 330 cos(-285): 0.25881904510252074\n    test 331 sin(-270): 1.0\n    test 332 cos(-270): 0.0\n    test 333 sin(-255): 0.9659258262890683\n    test 334 cos(-255): -0.25881904510252074\n    test 335 sin(-240): 0.8660254037844386  FAILED, KNOWN, expected 0.8660254037844387\n    test 336 cos(-240): -0.5\n    test 337 sin(-225): 0.7071067811865476  FAILED, KNOWN, expected 0.7071067811865475\n    test 338 cos(-225): -0.7071067811865476\n    test 339 sin(-210): 0.5000000000000001  FAILED, KNOWN, expected 0.49999999999999994\n    test 340 cos(-210): -0.8660254037844386\n    test 341 sin(-195): 0.25881904510252074\n    test 342 cos(-195): -0.9659258262890683\n    test 343 sin(-180): -0.0\n    test 344 cos(-180): -1.0\n    test 345 sin(-165): -0.25881904510252074\n    test 346 cos(-165): -0.9659258262890683\n    test 347 sin(-150): -0.5  FAILED, KNOWN, expected -0.49999999999999994\n    test 348 cos(-150): -0.8660254037844386\n    test 349 sin(-135): -0.7071067811865476  FAILED, KNOWN, expected -0.7071067811865475\n    test 350 cos(-135): -0.7071067811865476\n    test 351 sin(-120): -0.8660254037844386  FAILED, KNOWN, expected -0.8660254037844387\n    test 352 cos(-120): -0.5000000000000001\n    test 353 sin(-105): -0.9659258262890683\n    test 354 cos(-105): -0.25881904510252074\n    test 355 sin(-90): -1.0\n    test 356 cos(-90): 0.0\n    test 357 sin(-75): -0.9659258262890683\n    test 358 cos(-75): 0.25881904510252074\n    test 359 sin(-60): -0.8660254037844386  FAILED, KNOWN, expected -0.8660254037844387\n    test 360 cos(-60): 0.5\n    test 361 sin(-45): -0.7071067811865476  FAILED, KNOWN, expected -0.7071067811865475\n    test 362 cos(-45): 0.7071067811865476\n    test 363 sin(-30): -0.5000000000000001  FAILED, KNOWN, expected -0.49999999999999994\n    test 364 cos(-30): 0.8660254037844386\n    test 365 sin(-15): -0.25881904510252074\n    test 366 cos(-15): 0.9659258262890683\n    test 367 sin(0): 0.0\n    test 368 cos(0): 1.0\n    test 369 sin(15): 0.25881904510252074\n    test 370 cos(15): 0.9659258262890683\n    test 371 sin(30): 0.5  FAILED, KNOWN, expected 0.49999999999999994\n    test 372 cos(30): 0.8660254037844386\n    test 373 sin(45): 0.7071067811865476  FAILED, KNOWN, expected 0.7071067811865475\n    test 374 cos(45): 0.7071067811865476\n    test 375 sin(60): 0.8660254037844386  FAILED, KNOWN, expected 0.8660254037844387\n    test 376 cos(60): 0.5000000000000001\n    test 377 sin(75): 0.9659258262890683\n    test 378 cos(75): 0.25881904510252074\n    test 379 sin(90): 1.0\n    test 380 cos(90): 0.0\n    test 381 sin(105): 0.9659258262890683\n    test 382 cos(105): -0.25881904510252074\n    test 383 sin(120): 0.8660254037844386  FAILED, KNOWN, expected 0.8660254037844387\n    test 384 cos(120): -0.5\n    test 385 sin(135): 0.7071067811865476  FAILED, KNOWN, expected 0.7071067811865475\n    test 386 cos(135): -0.7071067811865476\n    test 387 sin(150): 0.5000000000000001  FAILED, KNOWN, expected 0.49999999999999994\n    test 388 cos(150): -0.8660254037844386\n    test 389 sin(165): 0.25881904510252074\n    test 390 cos(165): -0.9659258262890683\n    test 391 sin(180): 0.0\n    test 392 cos(180): -1.0\n    test 393 sin(195): -0.25881904510252074\n    test 394 cos(195): -0.9659258262890683\n    test 395 sin(210): -0.5  FAILED, KNOWN, expected -0.49999999999999994\n    test 396 cos(210): -0.8660254037844386\n    test 397 sin(225): -0.7071067811865476  FAILED, KNOWN, expected -0.7071067811865475\n    test 398 cos(225): -0.7071067811865476\n    test 399 sin(240): -0.8660254037844386  FAILED, KNOWN, expected -0.8660254037844387\n    test 400 cos(240): -0.5000000000000001\n    test 401 sin(255): -0.9659258262890683\n    test 402 cos(255): -0.25881904510252074\n    test 403 sin(270): -1.0\n    test 404 cos(270): 0.0\n    test 405 sin(285): -0.9659258262890683\n    test 406 cos(285): 0.25881904510252074\n    test 407 sin(300): -0.8660254037844386  FAILED, KNOWN, expected -0.8660254037844387\n    test 408 cos(300): 0.5\n    test 409 sin(315): -0.7071067811865476  FAILED, KNOWN, expected -0.7071067811865475\n    test 410 cos(315): 0.7071067811865476\n    test 411 sin(330): -0.5000000000000001  FAILED, KNOWN, expected -0.49999999999999994\n    test 412 cos(330): 0.8660254037844386\n    test 413 sin(345): -0.25881904510252074\n    test 414 cos(345): 0.9659258262890683\n    test 415 sin(360): 0.0\n    test 416 cos(360): 1.0\n    test 417 sin(375): 0.25881904510252074\n    test 418 cos(375): 0.9659258262890683\n    test 419 sin(390): 0.5  FAILED, KNOWN, expected 0.49999999999999994\n    test 420 cos(390): 0.8660254037844386\n    test 421 _diff182(-180, -180): 0.0  FAILED, KNOWN, expected -0.0\n    test 422 _diff182(-180, -90): 90.0\n    test 423 _diff182(-180, 0): 180.0\n    test 424 _diff182(-180, 90): -90.0\n    test 425 _diff182(-180, 180): 0.0\n    test 426 _diff182(-90, -180): -90.0\n    test 427 _diff182(-90, -90): 0.0  FAILED, KNOWN, expected -0.0\n    test 428 _diff182(-90, 0): 90.0\n    test 429 _diff182(-90, 90): 180.0\n    test 430 _diff182(-90, 180): -90.0\n    test 431 _diff182(0, -180): -180.0\n    test 432 _diff182(0, -90): -90.0\n    test 433 _diff182(0, 0): 0.0  FAILED, KNOWN, expected -0.0\n    test 434 _diff182(0, 90): 90.0\n    test 435 _diff182(0, 180): 180.0\n    test 436 _diff182(90, -180): 90.0\n    test 437 _diff182(90, -90): -180.0\n    test 438 _diff182(90, 0): -90.0\n    test 439 _diff182(90, 90): 0.0  FAILED, KNOWN, expected -0.0\n    test 440 _diff182(90, 180): 90.0\n    test 441 _diff182(180, -180): -0.0\n    test 442 _diff182(180, -90): 90.0\n    test 443 _diff182(180, 0): -180.0\n    test 444 _diff182(180, 90): -90.0\n    test 445 _diff182(180, 180): 0.0  FAILED, KNOWN, expected -0.0\n    test 446 _norm180(-361): -1.0\n    test 447  wrap180(-361): -1.0\n    test 448 _norm180(-360): -0.0\n    test 449  wrap180(-360): 0.0  FAILED, KNOWN, expected -0.0\n    test 450 _norm180(-180): -180.0  FAILED, KNOWN, expected 180.0\n    test 451  wrap180(-180): -180.0  FAILED, KNOWN, expected 180.0\n    test 452 _norm180(-90): -90.0\n    test 453  wrap180(-90): -90.0\n    test 454 _norm180(0): 0.0\n    test 455  wrap180(0): 0.0\n    test 456 _norm180(0): 0.0\n    test 457  wrap180(0): 0.0\n    test 458 _norm180(90): 90.0\n    test 459  wrap180(90): 90.0\n    test 460 _norm180(180): 180.0\n    test 461  wrap180(180): 180.0\n    test 462 _norm180(360): 0.0\n    test 463  wrap180(360): 0.0\n    test 464 _norm180(361): 1.0\n    test 465  wrap180(361): 1.0\n    test 466 unroll(-30, 0): (30.0, 0.0)\n    test 467 unroll(-30, 30): (60.0, 30.0)\n    test 468 unroll(-30, 60): (90.0, 60.0)\n    test 469 unroll(-30, 90): (120.0, 90.0)\n    test 470 unroll(-30, 120): (150.0, 120.0)\n    test 471 unroll(-30, 150): (180.0, 150.0)\n    test 472 unroll(-30, 180): (-150.0, -180.0)\n    test 473 unroll(-30, 210): (-120.0, -150.0)\n    test 474 unroll(-30, 240): (-90.0, -120.0)\n    test 475 unroll(-30, 270): (-60.0, -90.0)\n    test 476 unroll(-30, 300): (-30.0, -60.0)\n    test 477 unroll(-30, 330): (0.0, -30.0)\n    test 478 unroll(-30, 360): (30.0, 0.0)\n\n    test 479 _sum3.s: 1.000e-20\n    test 480 _sum3.t: 0.000e+00\n    test 481 fsum_: 1.000e-20\n\n    test 482 _sum3.s: 1.000e-20\n    test 483 _sum3.t: 0.000e+00\n    test 484 fsum_: 1.000e-20\n\n    test 485 _sum3.s: 1.000e-20\n    test 486 _sum3.t: 0.000e+00\n    test 487 fsum_: 1.000e-20\n\n    test 488 _sum3.s: -3.589e+19  FAILED, KNOWN, expected 1.0\n    test 489 _sum3.t: -2.048e+03  FAILED, KNOWN, expected 0.000e+00\n    test 490 fsum_: -3.589e+19  FAILED, KNOWN, expected 1.0\n\n    143 of 490 testKarney.py tests (29.2%) FAILED, incl. 141 KNOWN plus 2 DeprecationWarnings, 102 skipped (pygeodesy 26.3.26 Python 3.14.3 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 997.932 ms\nrunning /Library/Framewo....n3.14 -W default ~/PyGeodesy/test/testKarneySigns.py\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.EPS from .constants by testKarneySigns.py line 12\n# lazily imported pygeodesy.INF from .constants by testKarneySigns.py line 12\n# lazily imported pygeodesy.NAN from .constants by testKarneySigns.py line 12\n# lazily imported pygeodesy.signBit from .basics by testKarneySigns.py line 12\n\n    testing testKarneySigns.py 25.12.23 isLazy=3\n\n    test 1 test_AngDiff: ...\n    test 2 test_1: 0.0\n    test 3 test_2: -0.0\n    test 4 test_3: 0.0\n    test 5 test_4: 0.0\n    test 6 test_5: 0.0\n    test 7 test_6: -0.0\n    test 8 test_7: 180.0\n    test 9 test_8: -180.0\n    test 10 test_9: 180.0\n    test 11 test_10: -180.0\n    test 12 test_11: 180.0\n    test 13 test_12: -180.0\n    test 14 test_13: 57.99999999999997\n\n    test 15 test_AngNormalize: ...\n    test 16 test_1: -180.0\n    test 17 test_2: -0.0\n    test 18 test_3: -180.0\n    test 19 test_4: -0.0\n    test 20 test_5: -180.0\n    test 21 test_6: -0.0\n    test 22 test_7: 0.0\n    test 23 test_8: 180.0\n    test 24 test_9: 0.0\n    test 25 test_10: 180.0\n    test 26 test_11: 0.0\n    test 27 test_12: 180.0\n\n    test 28 test_AngRound: ...\n    test 29 test_1: 6.938893903907228e-18\n    test 30 test_2: -6.938893903907228e-18\n    test 31 test_3: -0.0\n    test 32 test_4: -0.0\n    test 33 test_5: 0.0\n    test 34 test_6: 0.0\n    test 35 test_7: 0.015624999999999993\n    test 36 test_8: 0.015625\n    test 37 test_9: 0.015625\n    test 38 test_10: 0.015625\n    test 39 test_11: 0.015625\n    test 40 test_12: 0.015625\n    test 41 test_13: 0.015625\n    test 42 test_14: 0.015625000000000007\n    test 43 test_15: 0.031249999999999993\n    test 44 test_16: 0.03125\n    test 45 test_17: 0.03125\n    test 46 test_18: 0.03125\n    test 47 test_19: 0.03125\n    test 48 test_20: 0.03125000000000001\n    test 49 test_21: 0.062499999999999986\n    test 50 test_22: 0.06249999999999999\n    test 51 test_23: 0.0625\n    test 52 test_24: 0.0625\n    test 53 test_25: 0.0625\n    test 54 test_26: 0.0625\n    test 55 test_27: 0.06250000000000001\n    test 56 test_28: 0.12499999999999997\n    test 57 test_29: 0.12499999999999999\n    test 58 test_30: 0.125\n    test 59 test_31: 0.125\n    test 60 test_32: 0.12500000000000003\n    test 61 test_33: 0.9999999999999998\n    test 62 test_34: 0.9999999999999999\n    test 63 test_35: 1.0\n    test 64 test_36: 1.0\n    test 65 test_37: 1.0\n    test 66 test_38: 1.0\n    test 67 test_39: 1.0000000000000002\n    test 68 test_40: 89.99999999999999\n    test 69 test_41: 90.0\n    test 70 test_42: 90.0\n\n    test 71 test_antipodal: ...\n# lazily imported pygeodesy.elliptic by gx.py line 421\n    test 72 test_1: 0.0\n    test 73 test_1: 180.0\n    test 74 test_2: 180.0\n    test 75 test_2: 0.0\n    test 76 test_3: -0.0\n    test 77 test_3: -180.0\n    test 78 test_4: -180.0\n    test 79 test_4: -0.0\n\n    test 80 test_antipodal_prolate: ...\n    test 81 test_1: 90.0\n    test 82 test_1: 90.0\n    test 83 test_2: -90.0\n    test 84 test_2: -90.0\n\n    test 85 test_azimuth_0_180: ...\n    test 86 test_1: 180.0\n    test 87 test_1: 180.0\n    test 88 test_2: -180.0\n    test 89 test_2: -180.0\n    test 90 test_3: 180.0\n    test 91 test_3: 0.0\n    test 92 test_4: -180.0\n    test 93 test_4: -0.0\n\n    test 94 test_equatorial_coincident: ...\n    test 95 test_1: 180.0\n    test 96 test_1: 180.0\n    test 97 test_2: 0.0\n    test 98 test_2: 0.0\n\n    test 99 test_equatorial_NS: ...\n    test 100 test_1: 55.97  FAILED, KNOWN, expected 56.00\n    test 101 test_1: 124.03  FAILED, KNOWN, expected 124.00\n    test 102 test_2: 124.03  FAILED, KNOWN, expected 124.00\n    test 103 test_2: 55.97  FAILED, KNOWN, expected 56.00\n\n    test 104 test_atan2d: ...\n    test 105 test_1: 179.99999999999997\n    test 106 test_2: 180.0\n    test 107 test_3: -180.0\n    test 108 test_4: 0.0\n    test 109 test_5: -0.0\n    test 110 test_6: 180.0\n    test 111 test_7: -180.0\n    test 112 test_8: 0.0\n    test 113 test_9: -0.0\n    test 114 test_10: -90.0\n    test 115 test_11: -90.0\n    test 116 test_12: 90.0\n    test 117 test_13: 90.0\n    test 118 test_14: 180.0\n    test 119 test_15: -180.0\n    test 120 test_16: 0.0\n    test 121 test_17: -0.0\n    test 122 test_18: 90.0\n    test 123 test_19: 90.0\n    test 124 test_20: -90.0\n    test 125 test_21: -90.0\n    test 126 test_22: 135.0\n    test 127 test_23: -135.0\n    test 128 test_24: 45.0\n    test 129 test_25: -45.0\n    test 130 test_26: nan\n    test 131 test_27: nan\n\n    test 132 test_sincosd: ...\n    test 133 test_1: -1.0000000000000000\n    test 134 test_1: 0.0\n    test 135 test_2: -0.0000000000000000\n    test 136 test_2: 1.0\n    test 137 test_3: 1.0000000000000000\n    test 138 test_3: 0.0\n    test 139 test_4: -0.0000000000000000\n    test 140 test_4: -1.0\n    test 141 test_5: -1.0000000000000000\n    test 142 test_5: 0.0\n    test 143 test_6: -0.0000000000000000\n    test 144 test_6: 1.0\n    test 145 test_7: 1.0000000000000000\n    test 146 test_7: 0.0\n    test 147 test_8: -0.0000000000000000\n    test 148 test_8: -1.0\n    test 149 test_9: -1.0000000000000000\n    test 150 test_9: 0.0\n    test 151 test_10: -0.0000000000000000\n    test 152 test_10: 1.0\n    test 153 test_11: 0.0000000000000000\n    test 154 test_11: 1.0\n    test 155 test_12: 1.0000000000000000\n    test 156 test_12: 0.0\n    test 157 test_13: 0.0000000000000000\n    test 158 test_13: -1.0\n    test 159 test_14: -1.0000000000000000\n    test 160 test_14: 0.0\n    test 161 test_15: 0.0000000000000000\n    test 162 test_15: 1.0\n    test 163 test_16: 1.0000000000000000\n    test 164 test_16: 0.0\n    test 165 test_17: 0.0000000000000000\n    test 166 test_17: -1.0\n    test 167 test_18: -1.0000000000000000\n    test 168 test_18: 0.0\n    test 169 test_19: 0.0000000000000000\n    test 170 test_19: 1.0\n    test 171 test_20: 1.0000000000000000\n    test 172 test_20: 0.0\n    test 173 test_21: nan\n    test 174 test_21: nan\n    test 175 test_22: nan\n    test 176 test_22: nan\n    test 177 test_23: nan\n    test 178 test_23: nan\n    test 179 test_23: 0.1564344650402309\n    test 180 test_23: 0.9876883405951378\n    test 181 test_23: 0.1564344650402309\n    test 182 test_23: 0.9876883405951378\n\n    test 183 test_sum2: ...\n    test 184 test_1: 0.0\n    test 185 test_2: 0.0\n    test 186 test_3: 0.0\n    test 187 test_4: 0.0\n    test 188 test_5: -0.0\n    test 189 test_6: 0.0\n\n    test 190 Accu: 5103.0\n\n    4 of 190 testKarneySigns.py tests (2.1%) FAILED, ALL KNOWN (pygeodesy 26.3.26 Python 3.14.3 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 34.847 ms\nrunning /Library/Framewo....n3.14 -W default ~/PyGeodesy/test/testKtm.py\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.fstr from .streprs by testKtm.py line 10\n# lazily imported pygeodesy.hypot from .fmath by testKtm.py line 10\n# lazily imported pygeodesy.sincos2d from .utily by testKtm.py line 10\n# lazily imported pygeodesy.Ellipsoids from .ellipsoids by testKtm.py line 56\n# lazily imported pygeodesy.ExactTransverseMercator from .etm by testKtm.py line 56\n# lazily imported pygeodesy.ktm by testKtm.py line 56\n# lazily imported pygeodesy.KTransverseMercator from .ktm by testKtm.py line 56\n\n    testing testKtm.py 23.03.27 (module pygeodesy.ktm 25.08.31) isLazy=3\n# imported pygeodesy.basics into errors.py line 915\n\n    test 1 _TM: KTransverseMercator(ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), k0=0.9996, TMorder=7)\n    test 2 forward 0N (80.000, 0.000) -/-: 0.0, 8881585.815988, 0.0, 0.9996\n    test 3 reverse 0N (80.000, 0.000) -/-: 0.0\n    test 4 forward 3N (79.890, 8.374) -/-: 163544.38007, 8881136.361771, 8.245542, 0.999927\n    test 5 reverse 3N (79.890, 8.374) -/-: 1.7763568394002505e-15\n    test 6 forward 6N (79.562, 16.725) -/-: 333788.634116, 8880946.730424, 16.462884, 1.000962\n    test 7 reverse 6N (79.562, 16.725) -/-: 7.105427357601002e-15\n    test 8 forward 9N (79.015, 25.030) -/-: 516782.400098, 8884389.933155, 24.625783, 1.002865\n    test 9 reverse 9N (79.015, 25.030) -/-: 2.1316282072803006e-14\n    test 10 forward 12N (78.252, 33.266) -/-: 717349.637417, 8896761.249834, 32.712011, 1.005894\n    test 11 reverse 12N (78.252, 33.266) -/-: 5.1728291973635394e-14\n    test 12 forward 15N (77.274, 41.411) -/-: 938645.229361, 8924845.3123, 40.705476, 1.010384\n    test 13 reverse 15N (77.274, 41.411) -/-: 0.0\n    test 14 forward 18N (76.085, 49.443) -/-: 1181870.215451, 8976407.252949, 48.598167, 1.016714\n    test 15 reverse 18N (76.085, 49.443) -/-: 3.8263897345803626e-14\n    test 16 forward 21N (74.686, 57.339) -/-: 1446137.252018, 9059670.735504, 56.391495, 1.025259\n    test 17 reverse 21N (74.686, 57.339) -/-: 5.684341886080802e-14\n    test 18 forward 24N (73.084, 65.078) -/-: 1728450.251911, 9182823.938232, 64.096558, 1.036319\n    test 19 reverse 24N (73.084, 65.078) -/-: 1.4210854715202004e-14\n    test 20 forward 27N (71.281, 72.638) -/-: 2023752.790526, 9353559.771346, 71.732868, 1.050046\n    test 21 reverse 27N (71.281, 72.638) -/-: 1.4210854715202004e-14\n    test 22 forward 30N (69.282, 80.000) -/-: 2325015.074835, 9578621.128889, 79.325231, 1.066355\n    test 23 reverse 30N (69.282, 80.000) -/-: 2.842170943040401e-14\n    test 24 forward 33N (67.094, 87.142) -/-: 2623368.28288, 9863301.12097, 86.898617, 1.084836\n    test 25 reverse 33N (67.094, 87.142) -/-: 0.0\n    test 26 forward 36N (64.721, 94.046) -/-: 2908348.733697, 10210857.598605, 94.471204, 1.104695\n    test 27 reverse 36N (64.721, 94.046) -/-: 0.0\n    test 28 forward 39N (62.172, 100.691) -/-: 3168362.707459, 10621853.317461, 102.04623, 1.124739\n    test 29 reverse 39N (62.172, 100.691) -/-: 7.105427357601002e-15\n    test 30 forward 42N (59.452, 107.061) -/-: 3391492.622467, 11093528.387239, 109.604086, 1.14345\n    test 31 reverse 42N (59.452, 107.061) -/-: 1.5888218580782548e-14\n    test 32 forward 45N (56.569, 113.137) -/-: 3566696.824822, 11619422.467571, 117.096854, 1.159166\n    test 33 reverse 45N (56.569, 113.137) -/-: 0.0\n    test 34 forward 48N (53.530, 118.903) -/-: 3685290.742854, 12189522.028618, 124.447841, 1.170375\n    test 35 reverse 48N (53.530, 118.903) -/-: 1.5888218580782548e-14\n    test 36 forward 51N (50.346, 124.343) -/-: 3742386.824274, 12791126.616764, 131.557863, 1.176031\n    test 37 reverse 51N (50.346, 124.343) -/-: 1.4210854715202004e-14\n    test 38 forward 54N (47.023, 129.443) -/-: 3737846.053669, 13410380.03778, 138.317827, 1.175799\n    test 39 reverse 54N (47.023, 129.443) -/-: 2.929642751054232e-14\n    test 40 forward 57N (43.571, 134.187) -/-: 3676387.634221, 14034104.572541, 144.624552, 1.170121\n    test 41 reverse 57N (43.571, 134.187) -/-: 0.0\n    test 42 forward 60N (40.000, 138.564) -/-: 3566810.754496, 14651410.305646, 150.395289, 1.16007\n    test 43 reverse 60N (40.000, 138.564) -/-: 0.0\n    test 44 forward 63N (36.319, 142.561) -/-: 3420621.906486, 15254653.660248, 155.577129, 1.147079\n    test 45 reverse 63N (36.319, 142.561) -/-: 7.105427357601002e-15\n    test 46 forward 66N (32.539, 146.167) -/-: 3250522.133697, 15839614.666766, 160.149958, 1.132638\n    test 47 reverse 66N (32.539, 146.167) -/-: 7.105427357601002e-15\n    test 48 forward 69N (28.669, 149.373) -/-: 3069132.144368, 16405050.640186, 164.124094, 1.118063\n    test 49 reverse 69N (28.669, 149.373) -/-: 3.552713678800501e-15\n    test 50 forward 72N (24.721, 152.169) -/-: 2888128.173431, 16951919.948156, 167.534978, 1.104377\n    test 51 reverse 72N (24.721, 152.169) -/-: 1.0658141036401503e-14\n    test 52 forward 75N (20.706, 154.548) -/-: 2717773.256417, 17482549.021439, 170.437193, 1.09228\n    test 53 reverse 75N (20.706, 154.548) -/-: 1.7763568394002505e-14\n    test 54 forward 78N (16.633, 156.504) -/-: 2566730.586316, 17999918.486885, 172.899178, 1.082187\n    test 55 reverse 78N (16.633, 156.504) -/-: 1.7763568394002505e-14\n    test 56 forward 81N (12.515, 158.030) -/-: 2442031.891673, 18507145.758, 174.99917, 1.074303\n    test 57 reverse 81N (12.515, 158.030) -/-: 1.2434497875801753e-14\n    test 58 forward 84N (8.362, 159.124) -/-: 2349105.316925, 19007174.828239, 176.822266, 1.068689\n    test 59 reverse 84N (8.362, 159.124) -/-: 1.7763568394002505e-14\n    test 60 forward 87N (4.187, 159.781) -/-: 2291809.478825, 19502649.329559, 178.458273, 1.06534\n    test 61 reverse 87N (4.187, 159.781) -/-: 8.881784197001252e-15\n    test 62 forward 90N (0.000, 160.000) -/-: 2272454.379192, -19995929.886042, -180.0, 1.064227\n    test 63 reverse 90N (0.000, 160.000) -/-: 2.4016501336544057e-14\n    test 64 forward 93N (-4.187, 159.781) -/-: 2291809.478825, -19502649.329559, -178.458273, 1.06534\n    test 65 reverse 93N (-4.187, 159.781) -/-: 6.217248937900877e-15\n    test 66 forward 96N (-8.362, 159.124) -/-: 2349105.316925, -19007174.828239, -176.822266, 1.068689\n    test 67 reverse 96N (-8.362, 159.124) -/-: 1.5987211554602254e-14\n    test 68 forward 99N (-12.515, 158.030) -/-: 2442031.891673, -18507145.758, -174.99917, 1.074303\n    test 69 reverse 99N (-12.515, 158.030) -/-: 7.105427357601002e-15\n    test 70 forward 102N (-16.633, 156.504) -/-: 2566730.586316, -17999918.486885, -172.899178, 1.082187\n    test 71 reverse 102N (-16.633, 156.504) -/-: 2.842170943040401e-14\n    test 72 forward 105N (-20.706, 154.548) -/-: 2717773.256417, -17482549.021439, -170.437193, 1.09228\n    test 73 reverse 105N (-20.706, 154.548) -/-: 1.7763568394002505e-14\n    test 74 forward 108N (-24.721, 152.169) -/-: 2888128.173431, -16951919.948156, -167.534978, 1.104377\n    test 75 reverse 108N (-24.721, 152.169) -/-: 7.105427357601002e-15\n    test 76 forward 111N (-28.669, 149.373) -/-: 3069132.144368, -16405050.640186, -164.124094, 1.118063\n    test 77 reverse 111N (-28.669, 149.373) -/-: 7.105427357601002e-15\n    test 78 forward 114N (-32.539, 146.167) -/-: 3250522.133697, -15839614.666766, -160.149958, 1.132638\n    test 79 reverse 114N (-32.539, 146.167) -/-: 7.105427357601002e-15\n    test 80 forward 117N (-36.319, 142.561) -/-: 3420621.906486, -15254653.660248, -155.577129, 1.147079\n    test 81 reverse 117N (-36.319, 142.561) -/-: 7.105427357601002e-15\n    test 82 forward 120N (-40.000, 138.564) -/-: 3566810.754496, -14651410.305646, -150.395289, 1.16007\n    test 83 reverse 120N (-40.000, 138.564) -/-: 0.0\n    test 84 forward 123N (-43.571, 134.187) -/-: 3676387.634221, -14034104.572541, -144.624552, 1.170121\n    test 85 reverse 123N (-43.571, 134.187) -/-: 0.0\n    test 86 forward 126N (-47.023, 129.443) -/-: 3737846.053669, -13410380.03778, -138.317827, 1.175799\n    test 87 reverse 126N (-47.023, 129.443) -/-: 2.929642751054232e-14\n    test 88 forward 129N (-50.346, 124.343) -/-: 3742386.824274, -12791126.616764, -131.557863, 1.176031\n    test 89 reverse 129N (-50.346, 124.343) -/-: 1.4210854715202004e-14\n    test 90 forward 132N (-53.530, 118.903) -/-: 3685290.742854, -12189522.028618, -124.447841, 1.170375\n    test 91 reverse 132N (-53.530, 118.903) -/-: 1.5888218580782548e-14\n    test 92 forward 135N (-56.569, 113.137) -/-: 3566696.824822, -11619422.467571, -117.096854, 1.159166\n    test 93 reverse 135N (-56.569, 113.137) -/-: 0.0\n    test 94 forward 138N (-59.452, 107.061) -/-: 3391492.622467, -11093528.387239, -109.604086, 1.14345\n    test 95 reverse 138N (-59.452, 107.061) -/-: 1.5888218580782548e-14\n    test 96 forward 141N (-62.172, 100.691) -/-: 3168362.707459, -10621853.317461, -102.04623, 1.124739\n    test 97 reverse 141N (-62.172, 100.691) -/-: 7.105427357601002e-15\n    test 98 forward 144N (-64.721, 94.046) -/-: 2908348.733697, -10210857.598605, -94.471204, 1.104695\n    test 99 reverse 144N (-64.721, 94.046) -/-: 0.0\n    test 100 forward 147N (-67.094, 87.142) -/-: 2623368.28288, -9863301.12097, -86.898617, 1.084836\n    test 101 reverse 147N (-67.094, 87.142) -/-: 0.0\n    test 102 forward 150N (-69.282, 80.000) -/-: 2325015.074835, -9578621.128889, -79.325231, 1.066355\n    test 103 reverse 150N (-69.282, 80.000) -/-: 2.842170943040401e-14\n    test 104 forward 153N (-71.281, 72.638) -/-: 2023752.790526, -9353559.771346, -71.732868, 1.050046\n    test 105 reverse 153N (-71.281, 72.638) -/-: 1.4210854715202004e-14\n    test 106 forward 156N (-73.084, 65.078) -/-: 1728450.251911, -9182823.938232, -64.096558, 1.036319\n    test 107 reverse 156N (-73.084, 65.078) -/-: 1.4210854715202004e-14\n    test 108 forward 159N (-74.686, 57.339) -/-: 1446137.252018, -9059670.735504, -56.391495, 1.025259\n    test 109 reverse 159N (-74.686, 57.339) -/-: 1.4210854715202004e-14\n    test 110 forward 162N (-76.085, 49.443) -/-: 1181870.215451, -8976407.252949, -48.598167, 1.016714\n    test 111 reverse 162N (-76.085, 49.443) -/-: 3.552713678800501e-14\n    test 112 forward 165N (-77.274, 41.411) -/-: 938645.229361, -8924845.3123, -40.705476, 1.010384\n    test 113 reverse 165N (-77.274, 41.411) -/-: 0.0\n    test 114 forward 168N (-78.252, 33.266) -/-: 717349.637417, -8896761.249834, -32.712011, 1.005894\n    test 115 reverse 168N (-78.252, 33.266) -/-: 2.5618982671915014e-14\n    test 116 forward 171N (-79.015, 25.030) -/-: 516782.400098, -8884389.933155, -24.625783, 1.002865\n    test 117 reverse 171N (-79.015, 25.030) -/-: 2.842170943040401e-14\n    test 118 forward 174N (-79.562, 16.725) -/-: 333788.634116, -8880946.730424, -16.462884, 1.000962\n    test 119 reverse 174N (-79.562, 16.725) -/-: 1.0658141036401503e-14\n    test 120 forward 177N (-79.890, 8.374) -/-: 163544.38007, -8881136.361771, -8.245542, 0.999927\n    test 121 reverse 177N (-79.890, 8.374) -/-: 1.7763568394002505e-15\n    test 122 forward 180N (-80.000, 0.000) -/-: 0.0, -8881585.815988, 0.0, 0.9996\n    test 123 reverse 180N (-80.000, 0.000) -/-: 0.0\n    test 124 forward 183N (-79.890, -8.374) -/-: -163544.38007, -8881136.361771, 8.245542, 0.999927\n    test 125 reverse 183N (-79.890, -8.374) -/-: 1.7763568394002505e-15\n    test 126 forward 186N (-79.562, -16.725) -/-: -333788.634116, -8880946.730424, 16.462884, 1.000962\n    test 127 reverse 186N (-79.562, -16.725) -/-: 7.105427357601002e-15\n    test 128 forward 189N (-79.015, -25.030) -/-: -516782.400098, -8884389.933155, 24.625783, 1.002865\n    test 129 reverse 189N (-79.015, -25.030) -/-: 2.1316282072803006e-14\n    test 130 forward 192N (-78.252, -33.266) -/-: -717349.637417, -8896761.249834, 32.712011, 1.005894\n    test 131 reverse 192N (-78.252, -33.266) -/-: 5.1728291973635394e-14\n    test 132 forward 195N (-77.274, -41.411) -/-: -938645.229361, -8924845.3123, 40.705476, 1.010384\n    test 133 reverse 195N (-77.274, -41.411) -/-: 0.0\n    test 134 forward 198N (-76.085, -49.443) -/-: -1181870.215451, -8976407.252949, 48.598167, 1.016714\n    test 135 reverse 198N (-76.085, -49.443) -/-: 3.8263897345803626e-14\n    test 136 forward 201N (-74.686, -57.339) -/-: -1446137.252018, -9059670.735504, 56.391495, 1.025259\n    test 137 reverse 201N (-74.686, -57.339) -/-: 5.684341886080802e-14\n    test 138 forward 204N (-73.084, -65.078) -/-: -1728450.251911, -9182823.938232, 64.096558, 1.036319\n    test 139 reverse 204N (-73.084, -65.078) -/-: 1.4210854715202004e-14\n    test 140 forward 207N (-71.281, -72.638) -/-: -2023752.790526, -9353559.771346, 71.732868, 1.050046\n    test 141 reverse 207N (-71.281, -72.638) -/-: 1.4210854715202004e-14\n    test 142 forward 210N (-69.282, -80.000) -/-: -2325015.074835, -9578621.128889, 79.325231, 1.066355\n    test 143 reverse 210N (-69.282, -80.000) -/-: 2.842170943040401e-14\n    test 144 forward 213N (-67.094, -87.142) -/-: -2623368.28288, -9863301.12097, 86.898617, 1.084836\n    test 145 reverse 213N (-67.094, -87.142) -/-: 0.0\n    test 146 forward 216N (-64.721, -94.046) -/-: -2908348.733697, -10210857.598605, 94.471204, 1.104695\n    test 147 reverse 216N (-64.721, -94.046) -/-: 0.0\n    test 148 forward 219N (-62.172, -100.691) -/-: -3168362.707459, -10621853.317461, 102.04623, 1.124739\n    test 149 reverse 219N (-62.172, -100.691) -/-: 7.105427357601002e-15\n    test 150 forward 222N (-59.452, -107.061) -/-: -3391492.622467, -11093528.387239, 109.604086, 1.14345\n    test 151 reverse 222N (-59.452, -107.061) -/-: 1.5888218580782548e-14\n    test 152 forward 225N (-56.569, -113.137) -/-: -3566696.824822, -11619422.467571, 117.096854, 1.159166\n    test 153 reverse 225N (-56.569, -113.137) -/-: 0.0\n    test 154 forward 228N (-53.530, -118.903) -/-: -3685290.742854, -12189522.028618, 124.447841, 1.170375\n    test 155 reverse 228N (-53.530, -118.903) -/-: 1.5888218580782548e-14\n    test 156 forward 231N (-50.346, -124.343) -/-: -3742386.824274, -12791126.616764, 131.557863, 1.176031\n    test 157 reverse 231N (-50.346, -124.343) -/-: 1.4210854715202004e-14\n    test 158 forward 234N (-47.023, -129.443) -/-: -3737846.053669, -13410380.03778, 138.317827, 1.175799\n    test 159 reverse 234N (-47.023, -129.443) -/-: 2.929642751054232e-14\n    test 160 forward 237N (-43.571, -134.187) -/-: -3676387.634221, -14034104.572541, 144.624552, 1.170121\n    test 161 reverse 237N (-43.571, -134.187) -/-: 0.0\n    test 162 forward 240N (-40.000, -138.564) -/-: -3566810.754496, -14651410.305646, 150.395289, 1.16007\n    test 163 reverse 240N (-40.000, -138.564) -/-: 0.0\n    test 164 forward 243N (-36.319, -142.561) -/-: -3420621.906486, -15254653.660248, 155.577129, 1.147079\n    test 165 reverse 243N (-36.319, -142.561) -/-: 7.105427357601002e-15\n    test 166 forward 246N (-32.539, -146.167) -/-: -3250522.133697, -15839614.666766, 160.149958, 1.132638\n    test 167 reverse 246N (-32.539, -146.167) -/-: 7.105427357601002e-15\n    test 168 forward 249N (-28.669, -149.373) -/-: -3069132.144368, -16405050.640186, 164.124094, 1.118063\n    test 169 reverse 249N (-28.669, -149.373) -/-: 3.552713678800501e-15\n    test 170 forward 252N (-24.721, -152.169) -/-: -2888128.173431, -16951919.948156, 167.534978, 1.104377\n    test 171 reverse 252N (-24.721, -152.169) -/-: 1.0658141036401503e-14\n    test 172 forward 255N (-20.706, -154.548) -/-: -2717773.256417, -17482549.021439, 170.437193, 1.09228\n    test 173 reverse 255N (-20.706, -154.548) -/-: 1.7763568394002505e-14\n    test 174 forward 258N (-16.633, -156.504) -/-: -2566730.586316, -17999918.486885, 172.899178, 1.082187\n    test 175 reverse 258N (-16.633, -156.504) -/-: 1.7763568394002505e-14\n    test 176 forward 261N (-12.515, -158.030) -/-: -2442031.891673, -18507145.758, 174.99917, 1.074303\n    test 177 reverse 261N (-12.515, -158.030) -/-: 1.2434497875801753e-14\n    test 178 forward 264N (-8.362, -159.124) -/-: -2349105.316925, -19007174.828239, 176.822266, 1.068689\n    test 179 reverse 264N (-8.362, -159.124) -/-: 1.7763568394002505e-14\n    test 180 forward 267N (-4.187, -159.781) -/-: -2291809.478825, -19502649.329559, 178.458273, 1.06534\n    test 181 reverse 267N (-4.187, -159.781) -/-: 8.881784197001252e-15\n    test 182 forward 270N (0.000, -160.000) -/-: -2272454.379192, -19995929.886042, 180.0, 1.064227\n    test 183 reverse 270N (0.000, -160.000) -/-: 2.4016501336544057e-14\n    test 184 forward 273N (4.187, -159.781) -/-: -2291809.478825, 19502649.329559, -178.458273, 1.06534\n    test 185 reverse 273N (4.187, -159.781) -/-: 6.217248937900877e-15\n    test 186 forward 276N (8.362, -159.124) -/-: -2349105.316925, 19007174.828239, -176.822266, 1.068689\n    test 187 reverse 276N (8.362, -159.124) -/-: 1.5987211554602254e-14\n    test 188 forward 279N (12.515, -158.030) -/-: -2442031.891673, 18507145.758, -174.99917, 1.074303\n    test 189 reverse 279N (12.515, -158.030) -/-: 7.105427357601002e-15\n    test 190 forward 282N (16.633, -156.504) -/-: -2566730.586316, 17999918.486885, -172.899178, 1.082187\n    test 191 reverse 282N (16.633, -156.504) -/-: 2.842170943040401e-14\n    test 192 forward 285N (20.706, -154.548) -/-: -2717773.256417, 17482549.021439, -170.437193, 1.09228\n    test 193 reverse 285N (20.706, -154.548) -/-: 1.7763568394002505e-14\n    test 194 forward 288N (24.721, -152.169) -/-: -2888128.173431, 16951919.948156, -167.534978, 1.104377\n    test 195 reverse 288N (24.721, -152.169) -/-: 7.105427357601002e-15\n    test 196 forward 291N (28.669, -149.373) -/-: -3069132.144368, 16405050.640186, -164.124094, 1.118063\n    test 197 reverse 291N (28.669, -149.373) -/-: 7.105427357601002e-15\n    test 198 forward 294N (32.539, -146.167) -/-: -3250522.133697, 15839614.666766, -160.149958, 1.132638\n    test 199 reverse 294N (32.539, -146.167) -/-: 7.105427357601002e-15\n    test 200 forward 297N (36.319, -142.561) -/-: -3420621.906486, 15254653.660248, -155.577129, 1.147079\n    test 201 reverse 297N (36.319, -142.561) -/-: 7.105427357601002e-15\n    test 202 forward 300N (40.000, -138.564) -/-: -3566810.754496, 14651410.305646, -150.395289, 1.16007\n    test 203 reverse 300N (40.000, -138.564) -/-: 0.0\n    test 204 forward 303N (43.571, -134.187) -/-: -3676387.634221, 14034104.572541, -144.624552, 1.170121\n    test 205 reverse 303N (43.571, -134.187) -/-: 0.0\n    test 206 forward 306N (47.023, -129.443) -/-: -3737846.053669, 13410380.03778, -138.317827, 1.175799\n    test 207 reverse 306N (47.023, -129.443) -/-: 2.929642751054232e-14\n    test 208 forward 309N (50.346, -124.343) -/-: -3742386.824274, 12791126.616764, -131.557863, 1.176031\n    test 209 reverse 309N (50.346, -124.343) -/-: 1.4210854715202004e-14\n    test 210 forward 312N (53.530, -118.903) -/-: -3685290.742854, 12189522.028618, -124.447841, 1.170375\n    test 211 reverse 312N (53.530, -118.903) -/-: 1.5888218580782548e-14\n    test 212 forward 315N (56.569, -113.137) -/-: -3566696.824822, 11619422.467571, -117.096854, 1.159166\n    test 213 reverse 315N (56.569, -113.137) -/-: 0.0\n    test 214 forward 318N (59.452, -107.061) -/-: -3391492.622467, 11093528.387239, -109.604086, 1.14345\n    test 215 reverse 318N (59.452, -107.061) -/-: 1.5888218580782548e-14\n    test 216 forward 321N (62.172, -100.691) -/-: -3168362.707459, 10621853.317461, -102.04623, 1.124739\n    test 217 reverse 321N (62.172, -100.691) -/-: 7.105427357601002e-15\n    test 218 forward 324N (64.721, -94.046) -/-: -2908348.733697, 10210857.598605, -94.471204, 1.104695\n    test 219 reverse 324N (64.721, -94.046) -/-: 0.0\n    test 220 forward 327N (67.094, -87.142) -/-: -2623368.28288, 9863301.12097, -86.898617, 1.084836\n    test 221 reverse 327N (67.094, -87.142) -/-: 0.0\n    test 222 forward 330N (69.282, -80.000) -/-: -2325015.074835, 9578621.128889, -79.325231, 1.066355\n    test 223 reverse 330N (69.282, -80.000) -/-: 2.842170943040401e-14\n    test 224 forward 333N (71.281, -72.638) -/-: -2023752.790526, 9353559.771346, -71.732868, 1.050046\n    test 225 reverse 333N (71.281, -72.638) -/-: 1.4210854715202004e-14\n    test 226 forward 336N (73.084, -65.078) -/-: -1728450.251911, 9182823.938232, -64.096558, 1.036319\n    test 227 reverse 336N (73.084, -65.078) -/-: 1.4210854715202004e-14\n    test 228 forward 339N (74.686, -57.339) -/-: -1446137.252018, 9059670.735504, -56.391495, 1.025259\n    test 229 reverse 339N (74.686, -57.339) -/-: 1.4210854715202004e-14\n    test 230 forward 342N (76.085, -49.443) -/-: -1181870.215451, 8976407.252949, -48.598167, 1.016714\n    test 231 reverse 342N (76.085, -49.443) -/-: 3.552713678800501e-14\n    test 232 forward 345N (77.274, -41.411) -/-: -938645.229361, 8924845.3123, -40.705476, 1.010384\n    test 233 reverse 345N (77.274, -41.411) -/-: 0.0\n    test 234 forward 348N (78.252, -33.266) -/-: -717349.637417, 8896761.249834, -32.712011, 1.005894\n    test 235 reverse 348N (78.252, -33.266) -/-: 2.5618982671915014e-14\n    test 236 forward 351N (79.015, -25.030) -/-: -516782.400098, 8884389.933155, -24.625783, 1.002865\n    test 237 reverse 351N (79.015, -25.030) -/-: 2.842170943040401e-14\n    test 238 forward 354N (79.562, -16.725) -/-: -333788.634116, 8880946.730424, -16.462884, 1.000962\n    test 239 reverse 354N (79.562, -16.725) -/-: 1.0658141036401503e-14\n    test 240 forward 357N (79.890, -8.374) -/-: -163544.38007, 8881136.361771, -8.245542, 0.999927\n    test 241 reverse 357N (79.890, -8.374) -/-: 1.7763568394002505e-15\n    test 242 forward 360N (80.000, 0.000) -/-: 0.0, 8881585.815988, 0.0, 0.9996\n    test 243 reverse 360N (80.000, 0.000) -/-: 0.0\n    test 244 max: 5.684341886080802e-14  FAILED, KNOWN, expected 6e-14\n\n    test 245 forward: 6208422.5374, 5452954.287187, 41.077484, 1.511911\n    test 246 reverse: 30.244228, 60.169664, 41.479185, 1.510346\n\n    test 247 _TM: KTransverseMercator(ellipsoid=Ellipsoid(name='Sphere', a=6371008.771415, f=0, f_=0, b=6371008.771415), k0=0.9996, TMorder=4)\n    test 248 forward 0N (80.000, 0.000) -/-: 0.0, 8892048.136219, 0.0, 0.9996\n    test 249 reverse 0N (80.000, 0.000) -/-: 0.0\n    test 250 forward 3N (79.890, 8.374) -/-: 162830.781916, 8891598.152508, 8.245541, 0.999927\n    test 251 reverse 3N (79.890, 8.374) -/-: 3.552713678800501e-15\n    test 252 forward 6N (79.562, 16.725) -/-: 332334.438121, 8891401.702739, 16.462875, 1.000961\n    test 253 reverse 6N (79.562, 16.725) -/-: 3.552713678800501e-15\n    test 254 forward 9N (79.015, 25.030) -/-: 514536.969405, 8894816.626946, 24.625748, 1.002864\n    test 255 reverse 9N (79.015, 25.030) -/-: 3.552713678800501e-15\n    test 256 forward 12N (78.252, 33.266) -/-: 714245.109628, 8907114.580812, 32.711919, 1.005893\n    test 257 reverse 12N (78.252, 33.266) -/-: 1.4210854715202004e-14\n    test 258 forward 15N (77.274, 41.411) -/-: 934605.427053, 8935050.398758, 40.705275, 1.010384\n    test 259 reverse 15N (77.274, 41.411) -/-: 2.1316282072803006e-14\n    test 260 forward 18N (76.085, 49.443) -/-: 1176821.393989, 8986356.098856, 48.597784, 1.016715\n    test 261 reverse 18N (76.085, 49.443) -/-: 7.105427357601002e-15\n    test 262 forward 21N (74.686, 57.339) -/-: 1440020.023752, 9069222.197918, 56.390849, 1.025263\n    test 263 reverse 21N (74.686, 57.339) -/-: 2.0097183471152322e-14\n    test 264 forward 24N (73.084, 65.078) -/-: 1721232.03303, 9191807.409386, 64.095597, 1.036332\n    test 265 reverse 24N (73.084, 65.078) -/-: 4.4938668397781776e-14\n    test 266 forward 27N (71.281, 72.638) -/-: 2015439.94304, 9361783.139474, 71.731644, 1.050076\n    test 267 reverse 27N (71.281, 72.638) -/-: 0.0\n    test 268 forward 30N (69.282, 80.000) -/-: 2315663.380439, 9585883.63353, 79.324018, 1.066413\n    test 269 reverse 30N (69.282, 80.000) -/-: 1.4210854715202004e-14\n    test 270 forward 33N (67.094, 87.142) -/-: 2613089.50746, 9869411.258858, 86.898056, 1.084934\n    test 271 reverse 33N (67.094, 87.142) -/-: 1.4210854715202004e-14\n    test 272 forward 36N (64.721, 94.046) -/-: 2897310.302591, 10215654.794479, 94.472414, 1.104843\n    test 273 reverse 36N (64.721, 94.046) -/-: 4.263256414560601e-14\n    test 274 forward 39N (62.172, 100.691) -/-: 3156777.9732, 10625229.653451, 102.050793, 1.12494\n    test 275 reverse 39N (62.172, 100.691) -/-: 7.105427357601002e-15\n    test 276 forward 42N (59.452, 107.061) -/-: 3379601.994821, 11095444.501021, 109.613799, 1.143688\n    test 277 reverse 42N (59.452, 107.061) -/-: 1.5888218580782548e-14\n    test 278 forward 45N (56.569, 113.137) -/-: 3554744.82183, 11619912.294696, 117.113212, 1.159405\n    test 279 reverse 45N (56.569, 113.137) -/-: 7.105427357601002e-15\n    test 280 forward 48N (53.530, 118.903) -/-: 3673507.549162, 12188686.186502, 124.471401, 1.170561\n    test 281 reverse 48N (53.530, 118.903) -/-: 1.4210854715202004e-14\n    test 282 forward 51N (50.346, 124.343) -/-: 3730980.59573, 12789121.454112, 131.587794, 1.176106\n    test 283 reverse 51N (50.346, 124.343) -/-: 1.4210854715202004e-14\n    test 284 forward 54N (47.023, 129.443) -/-: 3727003.760242, 13407411.821957, 138.351947, 1.175719\n    test 285 reverse 54N (47.023, 129.443) -/-: 7.105427357601002e-15\n    test 286 forward 57N (43.571, 134.187) -/-: 3666275.084648, 14030431.844036, 144.659906, 1.16987\n    test 287 reverse 57N (43.571, 134.187) -/-: 0.0\n    test 288 forward 60N (40.000, 138.564) -/-: 3557564.445775, 14647347.719581, 150.428973, 1.159665\n    test 289 reverse 60N (40.000, 138.564) -/-: 7.105427357601002e-15\n    test 290 forward 63N (36.319, 142.561) -/-: 3412334.48396, 15250567.642625, 155.606964, 1.146559\n    test 291 reverse 63N (36.319, 142.561) -/-: 0.0\n    test 292 forward 66N (32.539, 146.167) -/-: 3243229.892204, 15835907.12812, 160.174784, 1.132049\n    test 293 reverse 66N (32.539, 146.167) -/-: 3.1776437161565096e-14\n    test 294 forward 69N (28.669, 149.373) -/-: 3062811.744735, 16402134.803105, 164.143685, 1.117448\n    test 295 reverse 69N (28.669, 149.373) -/-: 3.552713678800501e-15\n    test 296 forward 72N (24.721, 152.169) -/-: 2882703.816659, 16950195.447611, 167.549757, 1.103767\n    test 297 reverse 72N (24.721, 152.169) -/-: 0.0\n    test 298 forward 75N (20.706, 154.548) -/-: 2713130.658999, 17482381.525728, 170.447906, 1.091693\n    test 299 reverse 75N (20.706, 154.548) -/-: 1.0658141036401503e-14\n    test 300 forward 78N (16.633, 156.504) -/-: 2562732.651149, 18001625.534999, 172.906642, 1.081633\n    test 301 reverse 78N (16.633, 156.504) -/-: 7.105427357601002e-15\n    test 302 forward 81N (12.515, 158.030) -/-: 2438532.075646, 18510987.984533, 175.004113, 1.07378\n    test 303 reverse 81N (12.515, 158.030) -/-: 3.552713678800501e-15\n    test 304 forward 84N (8.362, 159.124) -/-: 2345956.628332, 19013350.872509, 176.82525, 1.068192\n    test 305 reverse 84N (8.362, 159.124) -/-: 8.881784197001252e-15\n    test 306 forward 87N (4.187, 159.781) -/-: 2288868.720832, 19511292.939628, 178.459673, 1.064859\n    test 307 reverse 87N (4.187, 159.781) -/-: 1.9539925233402755e-14\n    test 308 forward 90N (0.000, 160.000) -/-: 2269582.383311, -20007108.306493, -180.0, 1.063752\n    test 309 reverse 90N (0.000, 160.000) -/-: 0.0\n    test 310 forward 93N (-4.187, 159.781) -/-: 2288868.720832, -19511292.939628, -178.459673, 1.064859\n    test 311 reverse 93N (-4.187, 159.781) -/-: 3.019806626980426e-14\n    test 312 forward 96N (-8.362, 159.124) -/-: 2345956.628332, -19013350.872509, -176.82525, 1.068192\n    test 313 reverse 96N (-8.362, 159.124) -/-: 1.0658141036401503e-14\n    test 314 forward 99N (-12.515, 158.030) -/-: 2438532.075646, -18510987.984533, -175.004113, 1.07378\n    test 315 reverse 99N (-12.515, 158.030) -/-: 8.881784197001252e-15\n    test 316 forward 102N (-16.633, 156.504) -/-: 2562732.651149, -18001625.534999, -172.906642, 1.081633\n    test 317 reverse 102N (-16.633, 156.504) -/-: 3.552713678800501e-15\n    test 318 forward 105N (-20.706, 154.548) -/-: 2713130.658999, -17482381.525728, -170.447906, 1.091693\n    test 319 reverse 105N (-20.706, 154.548) -/-: 1.0658141036401503e-14\n    test 320 forward 108N (-24.721, 152.169) -/-: 2882703.816659, -16950195.447611, -167.549757, 1.103767\n    test 321 reverse 108N (-24.721, 152.169) -/-: 3.552713678800501e-15\n    test 322 forward 111N (-28.669, 149.373) -/-: 3062811.744735, -16402134.803105, -164.143685, 1.117448\n    test 323 reverse 111N (-28.669, 149.373) -/-: 1.0658141036401503e-14\n    test 324 forward 114N (-32.539, 146.167) -/-: 3243229.892204, -15835907.12812, -160.174784, 1.132049\n    test 325 reverse 114N (-32.539, 146.167) -/-: 3.1776437161565096e-14\n    test 326 forward 117N (-36.319, 142.561) -/-: 3412334.48396, -15250567.642625, -155.606964, 1.146559\n    test 327 reverse 117N (-36.319, 142.561) -/-: 0.0\n    test 328 forward 120N (-40.000, 138.564) -/-: 3557564.445775, -14647347.719581, -150.428973, 1.159665\n    test 329 reverse 120N (-40.000, 138.564) -/-: 0.0\n    test 330 forward 123N (-43.571, 134.187) -/-: 3666275.084648, -14030431.844036, -144.659906, 1.16987\n    test 331 reverse 123N (-43.571, 134.187) -/-: 0.0\n    test 332 forward 126N (-47.023, 129.443) -/-: 3727003.760242, -13407411.821957, -138.351947, 1.175719\n    test 333 reverse 126N (-47.023, 129.443) -/-: 7.105427357601002e-15\n    test 334 forward 129N (-50.346, 124.343) -/-: 3730980.59573, -12789121.454112, -131.587794, 1.176106\n    test 335 reverse 129N (-50.346, 124.343) -/-: 1.4210854715202004e-14\n    test 336 forward 132N (-53.530, 118.903) -/-: 3673507.549162, -12188686.186502, -124.471401, 1.170561\n    test 337 reverse 132N (-53.530, 118.903) -/-: 1.4210854715202004e-14\n    test 338 forward 135N (-56.569, 113.137) -/-: 3554744.82183, -11619912.294696, -117.113212, 1.159405\n    test 339 reverse 135N (-56.569, 113.137) -/-: 7.105427357601002e-15\n    test 340 forward 138N (-59.452, 107.061) -/-: 3379601.994821, -11095444.501021, -109.613799, 1.143688\n    test 341 reverse 138N (-59.452, 107.061) -/-: 1.5888218580782548e-14\n    test 342 forward 141N (-62.172, 100.691) -/-: 3156777.9732, -10625229.653451, -102.050793, 1.12494\n    test 343 reverse 141N (-62.172, 100.691) -/-: 7.105427357601002e-15\n    test 344 forward 144N (-64.721, 94.046) -/-: 2897310.302591, -10215654.794479, -94.472414, 1.104843\n    test 345 reverse 144N (-64.721, 94.046) -/-: 4.263256414560601e-14\n    test 346 forward 147N (-67.094, 87.142) -/-: 2613089.50746, -9869411.258858, -86.898056, 1.084934\n    test 347 reverse 147N (-67.094, 87.142) -/-: 1.4210854715202004e-14\n    test 348 forward 150N (-69.282, 80.000) -/-: 2315663.380439, -9585883.63353, -79.324018, 1.066413\n    test 349 reverse 150N (-69.282, 80.000) -/-: 2.842170943040401e-14\n    test 350 forward 153N (-71.281, 72.638) -/-: 2015439.94304, -9361783.139474, -71.731644, 1.050076\n    test 351 reverse 153N (-71.281, 72.638) -/-: 0.0\n    test 352 forward 156N (-73.084, 65.078) -/-: 1721232.03303, -9191807.409386, -64.095597, 1.036332\n    test 353 reverse 156N (-73.084, 65.078) -/-: 4.4938668397781776e-14\n    test 354 forward 159N (-74.686, 57.339) -/-: 1440020.023752, -9069222.197918, -56.390849, 1.025263\n    test 355 reverse 159N (-74.686, 57.339) -/-: 7.105427357601002e-15\n    test 356 forward 162N (-76.085, 49.443) -/-: 1176821.393989, -8986356.098856, -48.597784, 1.016715\n    test 357 reverse 162N (-76.085, 49.443) -/-: 7.105427357601002e-15\n    test 358 forward 165N (-77.274, 41.411) -/-: 934605.427053, -8935050.398758, -40.705275, 1.010384\n    test 359 reverse 165N (-77.274, 41.411) -/-: 2.1316282072803006e-14\n    test 360 forward 168N (-78.252, 33.266) -/-: 714245.109628, -8907114.580812, -32.711919, 1.005893\n    test 361 reverse 168N (-78.252, 33.266) -/-: 1.4210854715202004e-14\n    test 362 forward 171N (-79.015, 25.030) -/-: 514536.969405, -8894816.626946, -24.625748, 1.002864\n    test 363 reverse 171N (-79.015, 25.030) -/-: 3.552713678800501e-15\n    test 364 forward 174N (-79.562, 16.725) -/-: 332334.438121, -8891401.702739, -16.462875, 1.000961\n    test 365 reverse 174N (-79.562, 16.725) -/-: 3.552713678800501e-15\n    test 366 forward 177N (-79.890, 8.374) -/-: 162830.781916, -8891598.152508, -8.245541, 0.999927\n    test 367 reverse 177N (-79.890, 8.374) -/-: 1.7763568394002505e-15\n    test 368 forward 180N (-80.000, 0.000) -/-: 0.0, -8892048.136219, 0.0, 0.9996\n    test 369 reverse 180N (-80.000, 0.000) -/-: 0.0\n    test 370 forward 183N (-79.890, -8.374) -/-: -162830.781916, -8891598.152508, 8.245541, 0.999927\n    test 371 reverse 183N (-79.890, -8.374) -/-: 3.552713678800501e-15\n    test 372 forward 186N (-79.562, -16.725) -/-: -332334.438121, -8891401.702739, 16.462875, 1.000961\n    test 373 reverse 186N (-79.562, -16.725) -/-: 3.552713678800501e-15\n    test 374 forward 189N (-79.015, -25.030) -/-: -514536.969405, -8894816.626946, 24.625748, 1.002864\n    test 375 reverse 189N (-79.015, -25.030) -/-: 3.552713678800501e-15\n    test 376 forward 192N (-78.252, -33.266) -/-: -714245.109628, -8907114.580812, 32.711919, 1.005893\n    test 377 reverse 192N (-78.252, -33.266) -/-: 1.4210854715202004e-14\n    test 378 forward 195N (-77.274, -41.411) -/-: -934605.427053, -8935050.398758, 40.705275, 1.010384\n    test 379 reverse 195N (-77.274, -41.411) -/-: 2.1316282072803006e-14\n    test 380 forward 198N (-76.085, -49.443) -/-: -1176821.393989, -8986356.098856, 48.597784, 1.016715\n    test 381 reverse 198N (-76.085, -49.443) -/-: 7.105427357601002e-15\n    test 382 forward 201N (-74.686, -57.339) -/-: -1440020.023752, -9069222.197918, 56.390849, 1.025263\n    test 383 reverse 201N (-74.686, -57.339) -/-: 2.0097183471152322e-14\n    test 384 forward 204N (-73.084, -65.078) -/-: -1721232.03303, -9191807.409386, 64.095597, 1.036332\n    test 385 reverse 204N (-73.084, -65.078) -/-: 4.4938668397781776e-14\n    test 386 forward 207N (-71.281, -72.638) -/-: -2015439.94304, -9361783.139474, 71.731644, 1.050076\n    test 387 reverse 207N (-71.281, -72.638) -/-: 0.0\n    test 388 forward 210N (-69.282, -80.000) -/-: -2315663.380439, -9585883.63353, 79.324018, 1.066413\n    test 389 reverse 210N (-69.282, -80.000) -/-: 1.4210854715202004e-14\n    test 390 forward 213N (-67.094, -87.142) -/-: -2613089.50746, -9869411.258858, 86.898056, 1.084934\n    test 391 reverse 213N (-67.094, -87.142) -/-: 1.4210854715202004e-14\n    test 392 forward 216N (-64.721, -94.046) -/-: -2897310.302591, -10215654.794479, 94.472414, 1.104843\n    test 393 reverse 216N (-64.721, -94.046) -/-: 4.263256414560601e-14\n    test 394 forward 219N (-62.172, -100.691) -/-: -3156777.9732, -10625229.653451, 102.050793, 1.12494\n    test 395 reverse 219N (-62.172, -100.691) -/-: 7.105427357601002e-15\n    test 396 forward 222N (-59.452, -107.061) -/-: -3379601.994821, -11095444.501021, 109.613799, 1.143688\n    test 397 reverse 222N (-59.452, -107.061) -/-: 1.5888218580782548e-14\n    test 398 forward 225N (-56.569, -113.137) -/-: -3554744.82183, -11619912.294696, 117.113212, 1.159405\n    test 399 reverse 225N (-56.569, -113.137) -/-: 7.105427357601002e-15\n    test 400 forward 228N (-53.530, -118.903) -/-: -3673507.549162, -12188686.186502, 124.471401, 1.170561\n    test 401 reverse 228N (-53.530, -118.903) -/-: 1.4210854715202004e-14\n    test 402 forward 231N (-50.346, -124.343) -/-: -3730980.59573, -12789121.454112, 131.587794, 1.176106\n    test 403 reverse 231N (-50.346, -124.343) -/-: 1.4210854715202004e-14\n    test 404 forward 234N (-47.023, -129.443) -/-: -3727003.760242, -13407411.821957, 138.351947, 1.175719\n    test 405 reverse 234N (-47.023, -129.443) -/-: 7.105427357601002e-15\n    test 406 forward 237N (-43.571, -134.187) -/-: -3666275.084648, -14030431.844036, 144.659906, 1.16987\n    test 407 reverse 237N (-43.571, -134.187) -/-: 0.0\n    test 408 forward 240N (-40.000, -138.564) -/-: -3557564.445775, -14647347.719581, 150.428973, 1.159665\n    test 409 reverse 240N (-40.000, -138.564) -/-: 7.105427357601002e-15\n    test 410 forward 243N (-36.319, -142.561) -/-: -3412334.48396, -15250567.642625, 155.606964, 1.146559\n    test 411 reverse 243N (-36.319, -142.561) -/-: 0.0\n    test 412 forward 246N (-32.539, -146.167) -/-: -3243229.892204, -15835907.12812, 160.174784, 1.132049\n    test 413 reverse 246N (-32.539, -146.167) -/-: 3.1776437161565096e-14\n    test 414 forward 249N (-28.669, -149.373) -/-: -3062811.744735, -16402134.803105, 164.143685, 1.117448\n    test 415 reverse 249N (-28.669, -149.373) -/-: 3.552713678800501e-15\n    test 416 forward 252N (-24.721, -152.169) -/-: -2882703.816659, -16950195.447611, 167.549757, 1.103767\n    test 417 reverse 252N (-24.721, -152.169) -/-: 0.0\n    test 418 forward 255N (-20.706, -154.548) -/-: -2713130.658999, -17482381.525728, 170.447906, 1.091693\n    test 419 reverse 255N (-20.706, -154.548) -/-: 1.0658141036401503e-14\n    test 420 forward 258N (-16.633, -156.504) -/-: -2562732.651149, -18001625.534999, 172.906642, 1.081633\n    test 421 reverse 258N (-16.633, -156.504) -/-: 7.105427357601002e-15\n    test 422 forward 261N (-12.515, -158.030) -/-: -2438532.075646, -18510987.984533, 175.004113, 1.07378\n    test 423 reverse 261N (-12.515, -158.030) -/-: 3.552713678800501e-15\n    test 424 forward 264N (-8.362, -159.124) -/-: -2345956.628332, -19013350.872509, 176.82525, 1.068192\n    test 425 reverse 264N (-8.362, -159.124) -/-: 8.881784197001252e-15\n    test 426 forward 267N (-4.187, -159.781) -/-: -2288868.720832, -19511292.939628, 178.459673, 1.064859\n    test 427 reverse 267N (-4.187, -159.781) -/-: 1.9539925233402755e-14\n    test 428 forward 270N (0.000, -160.000) -/-: -2269582.383311, -20007108.306493, 180.0, 1.063752\n    test 429 reverse 270N (0.000, -160.000) -/-: 0.0\n    test 430 forward 273N (4.187, -159.781) -/-: -2288868.720832, 19511292.939628, -178.459673, 1.064859\n    test 431 reverse 273N (4.187, -159.781) -/-: 3.019806626980426e-14\n    test 432 forward 276N (8.362, -159.124) -/-: -2345956.628332, 19013350.872509, -176.82525, 1.068192\n    test 433 reverse 276N (8.362, -159.124) -/-: 1.0658141036401503e-14\n    test 434 forward 279N (12.515, -158.030) -/-: -2438532.075646, 18510987.984533, -175.004113, 1.07378\n    test 435 reverse 279N (12.515, -158.030) -/-: 8.881784197001252e-15\n    test 436 forward 282N (16.633, -156.504) -/-: -2562732.651149, 18001625.534999, -172.906642, 1.081633\n    test 437 reverse 282N (16.633, -156.504) -/-: 3.552713678800501e-15\n    test 438 forward 285N (20.706, -154.548) -/-: -2713130.658999, 17482381.525728, -170.447906, 1.091693\n    test 439 reverse 285N (20.706, -154.548) -/-: 1.0658141036401503e-14\n    test 440 forward 288N (24.721, -152.169) -/-: -2882703.816659, 16950195.447611, -167.549757, 1.103767\n    test 441 reverse 288N (24.721, -152.169) -/-: 3.552713678800501e-15\n    test 442 forward 291N (28.669, -149.373) -/-: -3062811.744735, 16402134.803105, -164.143685, 1.117448\n    test 443 reverse 291N (28.669, -149.373) -/-: 1.0658141036401503e-14\n    test 444 forward 294N (32.539, -146.167) -/-: -3243229.892204, 15835907.12812, -160.174784, 1.132049\n    test 445 reverse 294N (32.539, -146.167) -/-: 3.1776437161565096e-14\n    test 446 forward 297N (36.319, -142.561) -/-: -3412334.48396, 15250567.642625, -155.606964, 1.146559\n    test 447 reverse 297N (36.319, -142.561) -/-: 0.0\n    test 448 forward 300N (40.000, -138.564) -/-: -3557564.445775, 14647347.719581, -150.428973, 1.159665\n    test 449 reverse 300N (40.000, -138.564) -/-: 0.0\n    test 450 forward 303N (43.571, -134.187) -/-: -3666275.084648, 14030431.844036, -144.659906, 1.16987\n    test 451 reverse 303N (43.571, -134.187) -/-: 0.0\n    test 452 forward 306N (47.023, -129.443) -/-: -3727003.760242, 13407411.821957, -138.351947, 1.175719\n    test 453 reverse 306N (47.023, -129.443) -/-: 7.105427357601002e-15\n    test 454 forward 309N (50.346, -124.343) -/-: -3730980.59573, 12789121.454112, -131.587794, 1.176106\n    test 455 reverse 309N (50.346, -124.343) -/-: 1.4210854715202004e-14\n    test 456 forward 312N (53.530, -118.903) -/-: -3673507.549162, 12188686.186502, -124.471401, 1.170561\n    test 457 reverse 312N (53.530, -118.903) -/-: 1.4210854715202004e-14\n    test 458 forward 315N (56.569, -113.137) -/-: -3554744.82183, 11619912.294696, -117.113212, 1.159405\n    test 459 reverse 315N (56.569, -113.137) -/-: 7.105427357601002e-15\n    test 460 forward 318N (59.452, -107.061) -/-: -3379601.994821, 11095444.501021, -109.613799, 1.143688\n    test 461 reverse 318N (59.452, -107.061) -/-: 1.5888218580782548e-14\n    test 462 forward 321N (62.172, -100.691) -/-: -3156777.9732, 10625229.653451, -102.050793, 1.12494\n    test 463 reverse 321N (62.172, -100.691) -/-: 7.105427357601002e-15\n    test 464 forward 324N (64.721, -94.046) -/-: -2897310.302591, 10215654.794479, -94.472414, 1.104843\n    test 465 reverse 324N (64.721, -94.046) -/-: 4.263256414560601e-14\n    test 466 forward 327N (67.094, -87.142) -/-: -2613089.50746, 9869411.258858, -86.898056, 1.084934\n    test 467 reverse 327N (67.094, -87.142) -/-: 1.4210854715202004e-14\n    test 468 forward 330N (69.282, -80.000) -/-: -2315663.380439, 9585883.63353, -79.324018, 1.066413\n    test 469 reverse 330N (69.282, -80.000) -/-: 2.842170943040401e-14\n    test 470 forward 333N (71.281, -72.638) -/-: -2015439.94304, 9361783.139474, -71.731644, 1.050076\n    test 471 reverse 333N (71.281, -72.638) -/-: 0.0\n    test 472 forward 336N (73.084, -65.078) -/-: -1721232.03303, 9191807.409386, -64.095597, 1.036332\n    test 473 reverse 336N (73.084, -65.078) -/-: 4.4938668397781776e-14\n    test 474 forward 339N (74.686, -57.339) -/-: -1440020.023752, 9069222.197918, -56.390849, 1.025263\n    test 475 reverse 339N (74.686, -57.339) -/-: 7.105427357601002e-15\n    test 476 forward 342N (76.085, -49.443) -/-: -1176821.393989, 8986356.098856, -48.597784, 1.016715\n    test 477 reverse 342N (76.085, -49.443) -/-: 7.105427357601002e-15\n    test 478 forward 345N (77.274, -41.411) -/-: -934605.427053, 8935050.398758, -40.705275, 1.010384\n    test 479 reverse 345N (77.274, -41.411) -/-: 2.1316282072803006e-14\n    test 480 forward 348N (78.252, -33.266) -/-: -714245.109628, 8907114.580812, -32.711919, 1.005893\n    test 481 reverse 348N (78.252, -33.266) -/-: 1.4210854715202004e-14\n    test 482 forward 351N (79.015, -25.030) -/-: -514536.969405, 8894816.626946, -24.625748, 1.002864\n    test 483 reverse 351N (79.015, -25.030) -/-: 3.552713678800501e-15\n    test 484 forward 354N (79.562, -16.725) -/-: -332334.438121, 8891401.702739, -16.462875, 1.000961\n    test 485 reverse 354N (79.562, -16.725) -/-: 3.552713678800501e-15\n    test 486 forward 357N (79.890, -8.374) -/-: -162830.781916, 8891598.152508, -8.245541, 0.999927\n    test 487 reverse 357N (79.890, -8.374) -/-: 1.7763568394002505e-15\n    test 488 forward 360N (80.000, 0.000) -/-: 0.0, 8892048.136219, 0.0, 0.9996\n    test 489 reverse 360N (80.000, 0.000) -/-: 0.0\n    test 490 max: 4.4938668397781776e-14  FAILED, KNOWN, expected 5e-14\n\n    test 491 forward: 6196225.831883, 5458228.732328, 40.893395, 1.511253\n    test 492 reverse: 30.172556, 60.208316, 41.279729, 1.511925\n\n    test 493 _TM: ExactTransverseMercator(datum='WGS84', extendp=False, k0=0.9996, lon0=0.0)\n# lazily imported pygeodesy.elliptic by etm.py line 354\n    test 494 forward 0N (80.000, 0.000) 3/3: 0.0, 8881585.815988, 0.0, 0.9996\n    test 495 reverse 0N (80.000, 0.000) 3/3: 0.0\n    test 496 forward 3N (79.890, 8.374) 3/4: 163544.38007, 8881136.361771, 8.245542, 0.999927\n    test 497 reverse 3N (79.890, 8.374) 3/3: 5.123796534383003e-14\n    test 498 forward 6N (79.562, 16.725) 3/4: 333788.634116, 8880946.730424, 16.462884, 1.000962\n    test 499 reverse 6N (79.562, 16.725) 3/3: 6.039613253960852e-14\n    test 500 forward 9N (79.015, 25.030) 3/4: 516782.400098, 8884389.933155, 24.625783, 1.002865\n    test 501 reverse 9N (79.015, 25.030) 3/3: 1.5888218580782548e-14\n    test 502 forward 12N (78.252, 33.266) 3/4: 717349.637417, 8896761.249834, 32.712011, 1.005894\n    test 503 reverse 12N (78.252, 33.266) 3/3: 1.4210854715202004e-14\n    test 504 forward 15N (77.274, 41.411) 3/4: 938645.229361, 8924845.3123, 40.705476, 1.010384\n    test 505 reverse 15N (77.274, 41.411) 3/3: 4.4938668397781776e-14\n    test 506 forward 18N (76.085, 49.443) 3/4: 1181870.215451, 8976407.252949, 48.598167, 1.016714\n    test 507 reverse 18N (76.085, 49.443) 3/3: 7.105427357601002e-15\n    test 508 forward 21N (74.686, 57.339) 3/4: 1446137.252018, 9059670.735504, 56.391495, 1.025259\n    test 509 reverse 21N (74.686, 57.339) 3/3: 7.944109290391274e-14\n    test 510 forward 24N (73.084, 65.078) 3/4: 1728450.251911, 9182823.938232, 64.096558, 1.036319\n    test 511 reverse 24N (73.084, 65.078) 3/3: 1.4210854715202004e-14\n    test 512 forward 27N (71.281, 72.638) 3/4: 2023752.790526, 9353559.771346, 71.732868, 1.050046\n    test 513 reverse 27N (71.281, 72.638) 3/3: 2.842170943040401e-14\n    test 514 forward 30N (69.282, 80.000) 3/4: 2325015.074835, 9578621.128889, 79.325231, 1.066355\n    test 515 reverse 30N (69.282, 80.000) 3/4: 5.684341886080802e-14\n    test 516 forward 33N (67.094, 87.142) 3/4: 2623368.28288, 9863301.12097, 86.898617, 1.084836\n    test 517 reverse 33N (67.094, 87.142) 3/4: 1.4210854715202004e-14\n    test 518 forward 36N (64.721, 94.046) 3/4: 2908348.733697, 10210857.598605, 94.471204, 1.104695\n    test 519 reverse 36N (64.721, 94.046) 3/4: 1.4210854715202004e-14\n    test 520 forward 39N (62.172, 100.691) 3/4: 3168362.707459, 10621853.317461, 102.04623, 1.124739\n    test 521 reverse 39N (62.172, 100.691) 3/4: 2.929642751054232e-14\n    test 522 forward 42N (59.452, 107.061) 3/4: 3391492.622467, 11093528.387239, 109.604086, 1.14345\n    test 523 reverse 42N (59.452, 107.061) 3/4: 7.105427357601002e-15\n    test 524 forward 45N (56.569, 113.137) 3/4: 3566696.824822, 11619422.467571, 117.096854, 1.159166\n    test 525 reverse 45N (56.569, 113.137) 3/4: 2.0097183471152322e-14\n    test 526 forward 48N (53.530, 118.903) 3/4: 3685290.742854, 12189522.028618, 124.447841, 1.170375\n    test 527 reverse 48N (53.530, 118.903) 3/4: 2.842170943040401e-14\n    test 528 forward 51N (50.346, 124.343) 3/4: 3742386.824274, 12791126.616764, 131.557863, 1.176031\n    test 529 reverse 51N (50.346, 124.343) 3/4: 5.684341886080802e-14\n    test 530 forward 54N (47.023, 129.443) 3/4: 3737846.053669, 13410380.03778, 138.317827, 1.175799\n    test 531 reverse 54N (47.023, 129.443) 3/4: 4.0194366942304644e-14\n    test 532 forward 57N (43.571, 134.187) 3/4: 3676387.634221, 14034104.572541, 144.624552, 1.170121\n    test 533 reverse 57N (43.571, 134.187) 3/4: 0.0\n    test 534 forward 60N (40.000, 138.564) 3/4: 3566810.754496, 14651410.305646, 150.395289, 1.16007\n    test 535 reverse 60N (40.000, 138.564) 3/4: 1.4210854715202004e-14\n    test 536 forward 63N (36.319, 142.561) 3/4: 3420621.906486, 15254653.660248, 155.577129, 1.147079\n    test 537 reverse 63N (36.319, 142.561) 3/4: 7.105427357601002e-15\n    test 538 forward 66N (32.539, 146.167) 3/4: 3250522.133697, 15839614.666766, 160.149958, 1.132638\n    test 539 reverse 66N (32.539, 146.167) 3/4: 1.4210854715202004e-14\n    test 540 forward 69N (28.669, 149.373) 3/4: 3069132.144368, 16405050.640186, 164.124094, 1.118063\n    test 541 reverse 69N (28.669, 149.373) 3/4: 1.0658141036401503e-14\n    test 542 forward 72N (24.721, 152.169) 3/4: 2888128.173431, 16951919.948156, 167.534978, 1.104377\n    test 543 reverse 72N (24.721, 152.169) 3/4: 7.105427357601002e-15\n    test 544 forward 75N (20.706, 154.548) 3/4: 2717773.256417, 17482549.021439, 170.437193, 1.09228\n    test 545 reverse 75N (20.706, 154.548) 3/4: 3.552713678800501e-15\n    test 546 forward 78N (16.633, 156.504) 3/4: 2566730.586316, 17999918.486885, 172.899178, 1.082187\n    test 547 reverse 78N (16.633, 156.504) 3/4: 3.552713678800501e-15\n    test 548 forward 81N (12.515, 158.030) 3/4: 2442031.891673, 18507145.758, 174.99917, 1.074303\n    test 549 reverse 81N (12.515, 158.030) 3/4: 5.329070518200751e-15\n    test 550 forward 84N (8.362, 159.124) 3/4: 2349105.316925, 19007174.828239, 176.822266, 1.068689\n    test 551 reverse 84N (8.362, 159.124) 3/4: 8.881784197001252e-15\n    test 552 forward 87N (4.187, 159.781) 3/4: 2291809.478825, 19502649.329559, 178.458273, 1.06534\n    test 553 reverse 87N (4.187, 159.781) 3/4: 9.769962616701378e-15\n    test 554 forward 90N (0.000, 160.000) 3/4: 2272454.379192, -19995929.886042, -180.0, 1.064227\n    test 555 reverse 90N (0.000, 160.000) 3/3: 0.0\n    test 556 forward 93N (-4.187, 159.781) 3/4: 2291809.478825, -19502649.329559, -178.458273, 1.06534\n    test 557 reverse 93N (-4.187, 159.781) 3/4: 2.842170943040401e-14\n    test 558 forward 96N (-8.362, 159.124) 3/4: 2349105.316925, -19007174.828239, -176.822266, 1.068689\n    test 559 reverse 96N (-8.362, 159.124) 3/4: 1.0658141036401503e-14\n    test 560 forward 99N (-12.515, 158.030) 3/4: 2442031.891673, -18507145.758, -174.99917, 1.074303\n    test 561 reverse 99N (-12.515, 158.030) 3/4: 1.0658141036401503e-14\n    test 562 forward 102N (-16.633, 156.504) 3/4: 2566730.586316, -17999918.486885, -172.899178, 1.082187\n    test 563 reverse 102N (-16.633, 156.504) 3/4: 1.4210854715202004e-14\n    test 564 forward 105N (-20.706, 154.548) 3/4: 2717773.256417, -17482549.021439, -170.437193, 1.09228\n    test 565 reverse 105N (-20.706, 154.548) 3/4: 3.552713678800501e-15\n    test 566 forward 108N (-24.721, 152.169) 3/4: 2888128.173431, -16951919.948156, -167.534978, 1.104377\n    test 567 reverse 108N (-24.721, 152.169) 3/4: 1.7763568394002505e-14\n    test 568 forward 111N (-28.669, 149.373) 3/4: 3069132.144368, -16405050.640186, -164.124094, 1.118063\n    test 569 reverse 111N (-28.669, 149.373) 3/4: 7.105427357601002e-15\n    test 570 forward 114N (-32.539, 146.167) 3/4: 3250522.133697, -15839614.666766, -160.149958, 1.132638\n    test 571 reverse 114N (-32.539, 146.167) 3/4: 1.4210854715202004e-14\n    test 572 forward 117N (-36.319, 142.561) 3/4: 3420621.906486, -15254653.660248, -155.577129, 1.147079\n    test 573 reverse 117N (-36.319, 142.561) 3/4: 7.105427357601002e-15\n    test 574 forward 120N (-40.000, 138.564) 3/4: 3566810.754496, -14651410.305646, -150.395289, 1.16007\n    test 575 reverse 120N (-40.000, 138.564) 3/4: 7.105427357601002e-15\n    test 576 forward 123N (-43.571, 134.187) 3/4: 3676387.634221, -14034104.572541, -144.624552, 1.170121\n    test 577 reverse 123N (-43.571, 134.187) 3/4: 0.0\n    test 578 forward 126N (-47.023, 129.443) 3/4: 3737846.053669, -13410380.03778, -138.317827, 1.175799\n    test 579 reverse 126N (-47.023, 129.443) 3/4: 4.0194366942304644e-14\n    test 580 forward 129N (-50.346, 124.343) 3/4: 3742386.824274, -12791126.616764, -131.557863, 1.176031\n    test 581 reverse 129N (-50.346, 124.343) 3/4: 5.684341886080802e-14\n    test 582 forward 132N (-53.530, 118.903) 3/4: 3685290.742854, -12189522.028618, -124.447841, 1.170375\n    test 583 reverse 132N (-53.530, 118.903) 3/4: 2.842170943040401e-14\n    test 584 forward 135N (-56.569, 113.137) 3/4: 3566696.824822, -11619422.467571, -117.096854, 1.159166\n    test 585 reverse 135N (-56.569, 113.137) 3/4: 2.0097183471152322e-14\n    test 586 forward 138N (-59.452, 107.061) 3/4: 3391492.622467, -11093528.387239, -109.604086, 1.14345\n    test 587 reverse 138N (-59.452, 107.061) 3/4: 7.105427357601002e-15\n    test 588 forward 141N (-62.172, 100.691) 3/4: 3168362.707459, -10621853.317461, -102.04623, 1.124739\n    test 589 reverse 141N (-62.172, 100.691) 3/4: 2.929642751054232e-14\n    test 590 forward 144N (-64.721, 94.046) 3/4: 2908348.733697, -10210857.598605, -94.471204, 1.104695\n    test 591 reverse 144N (-64.721, 94.046) 3/4: 1.4210854715202004e-14\n    test 592 forward 147N (-67.094, 87.142) 3/4: 2623368.28288, -9863301.12097, -86.898617, 1.084836\n    test 593 reverse 147N (-67.094, 87.142) 3/4: 1.4210854715202004e-14\n    test 594 forward 150N (-69.282, 80.000) 3/4: 2325015.074835, -9578621.128889, -79.325231, 1.066355\n    test 595 reverse 150N (-69.282, 80.000) 3/4: 7.105427357601002e-14\n    test 596 forward 153N (-71.281, 72.638) 3/4: 2023752.790526, -9353559.771346, -71.732868, 1.050046\n    test 597 reverse 153N (-71.281, 72.638) 3/3: 2.842170943040401e-14\n    test 598 forward 156N (-73.084, 65.078) 3/4: 1728450.251911, -9182823.938232, -64.096558, 1.036319\n    test 599 reverse 156N (-73.084, 65.078) 3/3: 1.4210854715202004e-14\n    test 600 forward 159N (-74.686, 57.339) 3/4: 1446137.252018, -9059670.735504, -56.391495, 1.025259\n    test 601 reverse 159N (-74.686, 57.339) 3/3: 5.859285502108464e-14\n    test 602 forward 162N (-76.085, 49.443) 3/4: 1181870.215451, -8976407.252949, -48.598167, 1.016714\n    test 603 reverse 162N (-76.085, 49.443) 3/3: 0.0\n    test 604 forward 165N (-77.274, 41.411) 3/4: 938645.229361, -8924845.3123, -40.705476, 1.010384\n    test 605 reverse 165N (-77.274, 41.411) 3/3: 4.4938668397781776e-14\n    test 606 forward 168N (-78.252, 33.266) 3/4: 717349.637417, -8896761.249834, -32.712011, 1.005894\n    test 607 reverse 168N (-78.252, 33.266) 3/3: 3.1776437161565096e-14\n    test 608 forward 171N (-79.015, 25.030) 3/4: 516782.400098, -8884389.933155, -24.625783, 1.002865\n    test 609 reverse 171N (-79.015, 25.030) 3/3: 1.4210854715202004e-14\n    test 610 forward 174N (-79.562, 16.725) 3/4: 333788.634116, -8880946.730424, -16.462884, 1.000962\n    test 611 reverse 174N (-79.562, 16.725) 3/3: 5.728578676879116e-14\n    test 612 forward 177N (-79.890, 8.374) 3/4: 163544.38007, -8881136.361771, -8.245542, 0.999927\n    test 613 reverse 177N (-79.890, 8.374) 3/3: 5.224422199693188e-14\n    test 614 forward 180N (-80.000, 0.000) 3/3: 0.0, -8881585.815988, 0.0, 0.9996\n    test 615 reverse 180N (-80.000, 0.000) 3/3: 0.0\n    test 616 forward 183N (-79.890, -8.374) 3/4: -163544.38007, -8881136.361771, 8.245542, 0.999927\n    test 617 reverse 183N (-79.890, -8.374) 3/3: 5.123796534383003e-14\n    test 618 forward 186N (-79.562, -16.725) 3/4: -333788.634116, -8880946.730424, 16.462884, 1.000962\n    test 619 reverse 186N (-79.562, -16.725) 3/3: 6.039613253960852e-14\n    test 620 forward 189N (-79.015, -25.030) 3/4: -516782.400098, -8884389.933155, 24.625783, 1.002865\n    test 621 reverse 189N (-79.015, -25.030) 3/3: 1.5888218580782548e-14\n    test 622 forward 192N (-78.252, -33.266) 3/4: -717349.637417, -8896761.249834, 32.712011, 1.005894\n    test 623 reverse 192N (-78.252, -33.266) 3/3: 1.4210854715202004e-14\n    test 624 forward 195N (-77.274, -41.411) 3/4: -938645.229361, -8924845.3123, 40.705476, 1.010384\n    test 625 reverse 195N (-77.274, -41.411) 3/3: 4.4938668397781776e-14\n    test 626 forward 198N (-76.085, -49.443) 3/4: -1181870.215451, -8976407.252949, 48.598167, 1.016714\n    test 627 reverse 198N (-76.085, -49.443) 3/3: 7.105427357601002e-15\n    test 628 forward 201N (-74.686, -57.339) 3/4: -1446137.252018, -9059670.735504, 56.391495, 1.025259\n    test 629 reverse 201N (-74.686, -57.339) 3/3: 7.944109290391274e-14\n    test 630 forward 204N (-73.084, -65.078) 3/4: -1728450.251911, -9182823.938232, 64.096558, 1.036319\n    test 631 reverse 204N (-73.084, -65.078) 3/3: 1.4210854715202004e-14\n    test 632 forward 207N (-71.281, -72.638) 3/4: -2023752.790526, -9353559.771346, 71.732868, 1.050046\n    test 633 reverse 207N (-71.281, -72.638) 3/3: 2.842170943040401e-14\n    test 634 forward 210N (-69.282, -80.000) 3/4: -2325015.074835, -9578621.128889, 79.325231, 1.066355\n    test 635 reverse 210N (-69.282, -80.000) 3/4: 5.684341886080802e-14\n    test 636 forward 213N (-67.094, -87.142) 3/4: -2623368.28288, -9863301.12097, 86.898617, 1.084836\n    test 637 reverse 213N (-67.094, -87.142) 3/4: 1.4210854715202004e-14\n    test 638 forward 216N (-64.721, -94.046) 3/4: -2908348.733697, -10210857.598605, 94.471204, 1.104695\n    test 639 reverse 216N (-64.721, -94.046) 3/4: 1.4210854715202004e-14\n    test 640 forward 219N (-62.172, -100.691) 3/4: -3168362.707459, -10621853.317461, 102.04623, 1.124739\n    test 641 reverse 219N (-62.172, -100.691) 3/4: 2.929642751054232e-14\n    test 642 forward 222N (-59.452, -107.061) 3/4: -3391492.622467, -11093528.387239, 109.604086, 1.14345\n    test 643 reverse 222N (-59.452, -107.061) 3/4: 7.105427357601002e-15\n    test 644 forward 225N (-56.569, -113.137) 3/4: -3566696.824822, -11619422.467571, 117.096854, 1.159166\n    test 645 reverse 225N (-56.569, -113.137) 3/4: 2.0097183471152322e-14\n    test 646 forward 228N (-53.530, -118.903) 3/4: -3685290.742854, -12189522.028618, 124.447841, 1.170375\n    test 647 reverse 228N (-53.530, -118.903) 3/4: 2.842170943040401e-14\n    test 648 forward 231N (-50.346, -124.343) 3/4: -3742386.824274, -12791126.616764, 131.557863, 1.176031\n    test 649 reverse 231N (-50.346, -124.343) 3/4: 5.684341886080802e-14\n    test 650 forward 234N (-47.023, -129.443) 3/4: -3737846.053669, -13410380.03778, 138.317827, 1.175799\n    test 651 reverse 234N (-47.023, -129.443) 3/4: 4.0194366942304644e-14\n    test 652 forward 237N (-43.571, -134.187) 3/4: -3676387.634221, -14034104.572541, 144.624552, 1.170121\n    test 653 reverse 237N (-43.571, -134.187) 3/4: 0.0\n    test 654 forward 240N (-40.000, -138.564) 3/4: -3566810.754496, -14651410.305646, 150.395289, 1.16007\n    test 655 reverse 240N (-40.000, -138.564) 3/4: 1.4210854715202004e-14\n    test 656 forward 243N (-36.319, -142.561) 3/4: -3420621.906486, -15254653.660248, 155.577129, 1.147079\n    test 657 reverse 243N (-36.319, -142.561) 3/4: 7.105427357601002e-15\n    test 658 forward 246N (-32.539, -146.167) 3/4: -3250522.133697, -15839614.666766, 160.149958, 1.132638\n    test 659 reverse 246N (-32.539, -146.167) 3/4: 1.4210854715202004e-14\n    test 660 forward 249N (-28.669, -149.373) 3/4: -3069132.144368, -16405050.640186, 164.124094, 1.118063\n    test 661 reverse 249N (-28.669, -149.373) 3/4: 1.0658141036401503e-14\n    test 662 forward 252N (-24.721, -152.169) 3/4: -2888128.173431, -16951919.948156, 167.534978, 1.104377\n    test 663 reverse 252N (-24.721, -152.169) 3/4: 7.105427357601002e-15\n    test 664 forward 255N (-20.706, -154.548) 3/4: -2717773.256417, -17482549.021439, 170.437193, 1.09228\n    test 665 reverse 255N (-20.706, -154.548) 3/4: 3.552713678800501e-15\n    test 666 forward 258N (-16.633, -156.504) 3/4: -2566730.586316, -17999918.486885, 172.899178, 1.082187\n    test 667 reverse 258N (-16.633, -156.504) 3/4: 3.552713678800501e-15\n    test 668 forward 261N (-12.515, -158.030) 3/4: -2442031.891673, -18507145.758, 174.99917, 1.074303\n    test 669 reverse 261N (-12.515, -158.030) 3/4: 5.329070518200751e-15\n    test 670 forward 264N (-8.362, -159.124) 3/4: -2349105.316925, -19007174.828239, 176.822266, 1.068689\n    test 671 reverse 264N (-8.362, -159.124) 3/4: 8.881784197001252e-15\n    test 672 forward 267N (-4.187, -159.781) 3/4: -2291809.478825, -19502649.329559, 178.458273, 1.06534\n    test 673 reverse 267N (-4.187, -159.781) 3/4: 9.769962616701378e-15\n    test 674 forward 270N (0.000, -160.000) 3/4: -2272454.379192, -19995929.886042, 180.0, 1.064227\n    test 675 reverse 270N (0.000, -160.000) 3/3: 0.0\n    test 676 forward 273N (4.187, -159.781) 3/4: -2291809.478825, 19502649.329559, -178.458273, 1.06534\n    test 677 reverse 273N (4.187, -159.781) 3/4: 2.842170943040401e-14\n    test 678 forward 276N (8.362, -159.124) 3/4: -2349105.316925, 19007174.828239, -176.822266, 1.068689\n    test 679 reverse 276N (8.362, -159.124) 3/4: 1.0658141036401503e-14\n    test 680 forward 279N (12.515, -158.030) 3/4: -2442031.891673, 18507145.758, -174.99917, 1.074303\n    test 681 reverse 279N (12.515, -158.030) 3/4: 1.0658141036401503e-14\n    test 682 forward 282N (16.633, -156.504) 3/4: -2566730.586316, 17999918.486885, -172.899178, 1.082187\n    test 683 reverse 282N (16.633, -156.504) 3/4: 1.4210854715202004e-14\n    test 684 forward 285N (20.706, -154.548) 3/4: -2717773.256417, 17482549.021439, -170.437193, 1.09228\n    test 685 reverse 285N (20.706, -154.548) 3/4: 3.552713678800501e-15\n    test 686 forward 288N (24.721, -152.169) 3/4: -2888128.173431, 16951919.948156, -167.534978, 1.104377\n    test 687 reverse 288N (24.721, -152.169) 3/4: 1.7763568394002505e-14\n    test 688 forward 291N (28.669, -149.373) 3/4: -3069132.144368, 16405050.640186, -164.124094, 1.118063\n    test 689 reverse 291N (28.669, -149.373) 3/4: 7.105427357601002e-15\n    test 690 forward 294N (32.539, -146.167) 3/4: -3250522.133697, 15839614.666766, -160.149958, 1.132638\n    test 691 reverse 294N (32.539, -146.167) 3/4: 1.4210854715202004e-14\n    test 692 forward 297N (36.319, -142.561) 3/4: -3420621.906486, 15254653.660248, -155.577129, 1.147079\n    test 693 reverse 297N (36.319, -142.561) 3/4: 7.105427357601002e-15\n    test 694 forward 300N (40.000, -138.564) 3/4: -3566810.754496, 14651410.305646, -150.395289, 1.16007\n    test 695 reverse 300N (40.000, -138.564) 3/4: 7.105427357601002e-15\n    test 696 forward 303N (43.571, -134.187) 3/4: -3676387.634221, 14034104.572541, -144.624552, 1.170121\n    test 697 reverse 303N (43.571, -134.187) 3/4: 0.0\n    test 698 forward 306N (47.023, -129.443) 3/4: -3737846.053669, 13410380.03778, -138.317827, 1.175799\n    test 699 reverse 306N (47.023, -129.443) 3/4: 4.0194366942304644e-14\n    test 700 forward 309N (50.346, -124.343) 3/4: -3742386.824274, 12791126.616764, -131.557863, 1.176031\n    test 701 reverse 309N (50.346, -124.343) 3/4: 5.684341886080802e-14\n    test 702 forward 312N (53.530, -118.903) 3/4: -3685290.742854, 12189522.028618, -124.447841, 1.170375\n    test 703 reverse 312N (53.530, -118.903) 3/4: 2.842170943040401e-14\n    test 704 forward 315N (56.569, -113.137) 3/4: -3566696.824822, 11619422.467571, -117.096854, 1.159166\n    test 705 reverse 315N (56.569, -113.137) 3/4: 2.0097183471152322e-14\n    test 706 forward 318N (59.452, -107.061) 3/4: -3391492.622467, 11093528.387239, -109.604086, 1.14345\n    test 707 reverse 318N (59.452, -107.061) 3/4: 7.105427357601002e-15\n    test 708 forward 321N (62.172, -100.691) 3/4: -3168362.707459, 10621853.317461, -102.04623, 1.124739\n    test 709 reverse 321N (62.172, -100.691) 3/4: 2.929642751054232e-14\n    test 710 forward 324N (64.721, -94.046) 3/4: -2908348.733697, 10210857.598605, -94.471204, 1.104695\n    test 711 reverse 324N (64.721, -94.046) 3/4: 1.4210854715202004e-14\n    test 712 forward 327N (67.094, -87.142) 3/4: -2623368.28288, 9863301.12097, -86.898617, 1.084836\n    test 713 reverse 327N (67.094, -87.142) 3/4: 1.4210854715202004e-14\n    test 714 forward 330N (69.282, -80.000) 3/4: -2325015.074835, 9578621.128889, -79.325231, 1.066355\n    test 715 reverse 330N (69.282, -80.000) 3/4: 7.105427357601002e-14\n    test 716 forward 333N (71.281, -72.638) 3/4: -2023752.790526, 9353559.771346, -71.732868, 1.050046\n    test 717 reverse 333N (71.281, -72.638) 3/3: 2.842170943040401e-14\n    test 718 forward 336N (73.084, -65.078) 3/4: -1728450.251911, 9182823.938232, -64.096558, 1.036319\n    test 719 reverse 336N (73.084, -65.078) 3/3: 1.4210854715202004e-14\n    test 720 forward 339N (74.686, -57.339) 3/4: -1446137.252018, 9059670.735504, -56.391495, 1.025259\n    test 721 reverse 339N (74.686, -57.339) 3/3: 5.859285502108464e-14\n    test 722 forward 342N (76.085, -49.443) 3/4: -1181870.215451, 8976407.252949, -48.598167, 1.016714\n    test 723 reverse 342N (76.085, -49.443) 3/3: 0.0\n    test 724 forward 345N (77.274, -41.411) 3/4: -938645.229361, 8924845.3123, -40.705476, 1.010384\n    test 725 reverse 345N (77.274, -41.411) 3/3: 4.4938668397781776e-14\n    test 726 forward 348N (78.252, -33.266) 3/4: -717349.637417, 8896761.249834, -32.712011, 1.005894\n    test 727 reverse 348N (78.252, -33.266) 3/3: 3.1776437161565096e-14\n    test 728 forward 351N (79.015, -25.030) 3/4: -516782.400098, 8884389.933155, -24.625783, 1.002865\n    test 729 reverse 351N (79.015, -25.030) 3/3: 1.4210854715202004e-14\n    test 730 forward 354N (79.562, -16.725) 3/4: -333788.634116, 8880946.730424, -16.462884, 1.000962\n    test 731 reverse 354N (79.562, -16.725) 3/3: 5.728578676879116e-14\n    test 732 forward 357N (79.890, -8.374) 3/4: -163544.38007, 8881136.361771, -8.245542, 0.999927\n    test 733 reverse 357N (79.890, -8.374) 3/3: 5.224422199693188e-14\n    test 734 forward 360N (80.000, 0.000) 3/3: 0.0, 8881585.815988, 0.0, 0.9996\n    test 735 reverse 360N (80.000, 0.000) 3/3: 0.0\n    test 736 max: 7.944109290391274e-14  FAILED, KNOWN, expected 9e-14\n\n    test 737 forward: 6208422.5374, 5452954.287187, 41.077484, 1.511911\n    test 738 reverse: 30.244228, 60.169664, 41.479185, 1.510346\n\n    3 of 738 testKtm.py tests (0.4%) FAILED, ALL KNOWN (pygeodesy 26.3.26 Python 3.14.3 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 817.308 ms\nrunning /Library/Framewo....n3.14 -W default ~/PyGeodesy/test/testLatLon.py\n./test/testLatLon.py:276: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.sphericalNvector.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', p.cosineAndoyerLambertTo(q), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:277: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.sphericalNvector.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', q.cosineAndoyerLambertTo(p), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:279: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.sphericalNvector.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', p.cosineForsytheAndoyerLambertTo(q), '124801.098' if Sph else '125205.965', fmt='%.3f')\n./test/testLatLon.py:280: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.sphericalNvector.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', q.cosineForsytheAndoyerLambertTo(p), '124801.098' if Sph else '125205.965', fmt='%.3f')\n./test/testLatLon.py:276: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.sphericalTrigonometry.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', p.cosineAndoyerLambertTo(q), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:277: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.sphericalTrigonometry.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', q.cosineAndoyerLambertTo(p), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:279: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.sphericalTrigonometry.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', p.cosineForsytheAndoyerLambertTo(q), '124801.098' if Sph else '125205.965', fmt='%.3f')\n./test/testLatLon.py:280: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.sphericalTrigonometry.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', q.cosineForsytheAndoyerLambertTo(p), '124801.098' if Sph else '125205.965', fmt='%.3f')\n./test/testLatLon.py:276: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.ellipsoidalNvector.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', p.cosineAndoyerLambertTo(q), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:277: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.ellipsoidalNvector.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', q.cosineAndoyerLambertTo(p), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:279: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.ellipsoidalNvector.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', p.cosineForsytheAndoyerLambertTo(q), '124801.098' if Sph else '125205.965', fmt='%.3f')\n./test/testLatLon.py:280: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.ellipsoidalNvector.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', q.cosineForsytheAndoyerLambertTo(p), '124801.098' if Sph else '125205.965', fmt='%.3f')\n./test/testLatLon.py:276: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.ellipsoidalVincenty.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', p.cosineAndoyerLambertTo(q), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:277: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.ellipsoidalVincenty.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', q.cosineAndoyerLambertTo(p), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:279: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.ellipsoidalVincenty.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', p.cosineForsytheAndoyerLambertTo(q), '124801.098' if Sph else '125205.965', fmt='%.3f')\n./test/testLatLon.py:280: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.ellipsoidalVincenty.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', q.cosineForsytheAndoyerLambertTo(p), '124801.098' if Sph else '125205.965', fmt='%.3f')\n./pygeodesy/ellipsoidalBase.py:443: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  _ = self.datum.ellipsoid.geodesic\n./pygeodesy/azimuthal.py:636: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return self.datum.ellipsoid.geodesic\n./test/testLatLon.py:627: DeprecationWarning: function L{areaOf<pygeodesy.ellipsoidalVincenty.areaOf>} has been DEPRECATED, use function L{ellipsoidalExact.areaOf} or L{ellipsoidalKarney.areaOf}.\n  r = a(reversed(b))\n./pygeodesy/ellipsoidalKarney.py:139: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return fabs(_polygon(datum.ellipsoid.geodesic, points, True, False, wrap, polar))\n./test/testLatLon.py:628: DeprecationWarning: function L{areaOf<pygeodesy.ellipsoidalVincenty.areaOf>} has been DEPRECATED, use function L{ellipsoidalExact.areaOf} or L{ellipsoidalKarney.areaOf}.\n  f = a(b)  # ccw\n./pygeodesy/ellipsoidalKarney.py:94: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return self.datum.ellipsoid.geodesic\n./test/testLatLon.py:276: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.ellipsoidalKarney.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', p.cosineAndoyerLambertTo(q), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:277: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.ellipsoidalKarney.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', q.cosineAndoyerLambertTo(p), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:279: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.ellipsoidalKarney.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', p.cosineForsytheAndoyerLambertTo(q), '124801.098' if Sph else '125205.965', fmt='%.3f')\n./test/testLatLon.py:280: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.ellipsoidalKarney.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', q.cosineForsytheAndoyerLambertTo(p), '124801.098' if Sph else '125205.965', fmt='%.3f')\n./test/testLatLon.py:276: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.ellipsoidalExact.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', p.cosineAndoyerLambertTo(q), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:277: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.ellipsoidalExact.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', q.cosineAndoyerLambertTo(p), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:279: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.ellipsoidalExact.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', p.cosineForsytheAndoyerLambertTo(q), '124801.098' if Sph else '125205.965', fmt='%.3f')\n./test/testLatLon.py:280: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.ellipsoidalExact.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', q.cosineForsytheAndoyerLambertTo(p), '124801.098' if Sph else '125205.965', fmt='%.3f')\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.Aer from .ltpTuples by testLatLon.py line 12\n# lazily imported pygeodesy.Enu from .ltpTuples by testLatLon.py line 12\n# lazily imported pygeodesy.F_D from .dms by testLatLon.py line 12\n# lazily imported pygeodesy.F_DM from .dms by testLatLon.py line 12\n# lazily imported pygeodesy.F_DMS from .dms by testLatLon.py line 12\n# lazily imported pygeodesy.F_RAD from .dms by testLatLon.py line 12\n# lazily imported pygeodesy.R_M from .constants by testLatLon.py line 12\n# lazily imported pygeodesy.R_NM from .constants by testLatLon.py line 12\n# lazily imported pygeodesy.degrees from .utily by testLatLon.py line 12\n# lazily imported pygeodesy.fstr from .streprs by testLatLon.py line 12\n# lazily imported pygeodesy.isclockwise from .points by testLatLon.py line 12\n# lazily imported pygeodesy.isconvex from .points by testLatLon.py line 12\n# lazily imported pygeodesy.isenclosedBy from .points by testLatLon.py line 12\n# lazily imported pygeodesy.isnear0 from .constants by testLatLon.py line 12\n# lazily imported pygeodesy.ispolar from .points by testLatLon.py line 12\n# lazily imported pygeodesy.Local9Tuple from .ltpTuples by testLatLon.py line 12\n# lazily imported pygeodesy.Ltp from .ltp by testLatLon.py line 12\n# lazily imported pygeodesy.m2km from .utily by testLatLon.py line 12\n# lazily imported pygeodesy.m2NM from .utily by testLatLon.py line 12\n# lazily imported pygeodesy.Ned from .ltpTuples by testLatLon.py line 12\n# lazily imported pygeodesy.XyzLocal from .ltpTuples by testLatLon.py line 12\n# lazily imported pygeodesy.IntersectionError from .errors by testLatLon.py line 12\n# lazily imported pygeodesy.VincentyError from .ellipsoidalVincenty by testLatLon.py line 12\n# lazily imported pygeodesy.ellipsoidalExact by testLatLon.py line 639\n# lazily imported pygeodesy.ellipsoidalNvector by testLatLon.py line 639\n# lazily imported pygeodesy.sphericalNvector by testLatLon.py line 639\n# lazily imported pygeodesy.sphericalTrigonometry by testLatLon.py line 639\n\n    testing testLatLon.py 25.05.09 isLazy=3\n\n    testLatLon(pygeodesy.sphericalNvector, 25.05.27)\n    test 1 isEllipsoidal: False\n    test 2 isSpherical: True\n    test 3 lat/lonDMS: 52.20472°N, 000.14056°E\n    test 4 lat/lonDMS F_DM: 52°12.283′N, 000°08.434′E\n    test 5 lat/lonDMS F_DM: 52°12.2832′N, 000°08.4336′E\n    test 6 lat/lonDMS F_DMS: 52°12′17″N, 000°08′26″E\n    test 7 lat/lonDMS F_DMS: 52°12′17.0″N, 000°08′26.0″E\n    test 8 lat/lonDMS F_RAD: 0.911144N, 0.002453E\n# imported pygeodesy.formy into latlonBase.py line 756\n    test 9 isequalTo: True\n    test 10 isequalTo: True\n    test 11 latlon2: 52.20472, 0.14056\n    test 12 latlon2: 52.2047, 0.1406\n    test 13 latlon2: 52.205, 0.141\n    test 14 latlon2: 52.2, 0.14\n    test 15 latlon2: 52.2, 0.1\n    test 16 latlon2: 52.0, 0.0\n    test 17 chordTo: 12036677.26\n    test 18 chordTo: 12036463.78\n    test 19 initialBearingTo: 156.1666\n    test 20 initialBearingTo: 65.8921\n    test 21 initialBearingTo: 0.0\n    test 22 initialBearingTo: 180.0\n    test 23 finalBearingTo: 157.8904\n    test 24 finalBearingTo: 93.8581\n    test 25 bearingTo2: 156.1666, 157.8904\n    test 26 ispolar: True\n    test 27 copy: True\n    test 28 __eq__: True\n    test 29 __ne__: False\n# lazily imported pygeodesy.angles by units.py line 633\n    test 30 equirectangularTo: 404329.56\n    test 31 distanceTo: 404279.720589\n    test 32 distanceTo: 404279.720589\n    test 33 distanceTo: 2145\n    test 34 distanceTo: 18013602.92\n    test 35 distanceTo: 20015114.35\n    test 36 intermediateTo: 51.372084°N, 000.707337°E\n    test 37 intermediateTo: True\n    test 38 intermediateTo: 404279.721\n    test 39 intermediateTo+5: 35.160975°N, 008.989542°E\n    test 40 intermediateTo+5: 5.000\n    test 41 intermediateTo-4: 64.911647°N, 013.726301°W\n    test 42 intermediateTo-4: 4.000\n    test 43 intermediateTo-h: 125.000\n    test 44 intermediateChordTo: 51.372294°N, 000.707192°E\n    test 45 intermediateChordTo: True\n    test 46 intermediateChordTo-h: 125.000\n    test 47 midpointTo: 50.536327°N, 001.274614°E\n    test 48 destination: 51.513546°N, 000.098345°W\n    test 49 destination: 51°30′49″N, 000°05′54″W\n    test 50 destination: 34°37′N, 116°33′W\n    test 51 destination: 34.613647°N, 116.55116°W\n    test 52 destination: 0.604122N, 2.034201W\n    test 53 destination: 31.96383509°N, 064.37329146°E\n    test 54 alongTrackDistanceTo: 62331.59\n    test 55 alongTrackDistanceTo: 62331.58\n    test 56 alongTrackDistanceTo: 99.588\n    test 57 alongTrackDistanceTo: -7702.7\n    test 58 alongTrackDistanceTo: 7587.6\n    test 59 crossTrackDistanceTo: -305.66528160755445  FAILED, KNOWN, expected TypeError\n    test 60 crossTrackDistanceTo: -307.55\n    test 61 crossTrackDistanceTo: 7.4524\n    test 62 greatCircle: (-0.79408, 0.12856, 0.59406)\n# lazily imported pygeodesy.booleans by iters.py line 76\n    test 63 neareston6: (LatLon(45°00′00.0″N, 001°00′00.0″E), 4773243.784965, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E))  FAILED, KNOWN, expected (LatLon(45°00′00.0″N, 001°00′00.0″E), 4755443.4294, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E))\n    test 64 neareston6: (LatLon(45°30′03.93″N, 002°00′00.0″E), 38968.531578, 1.501091, 2, LatLon(45°00′00.0″N, 002°00′00.0″E), LatLon(46°00′00.0″N, 002°00′00.0″E))  FAILED, KNOWN, expected (LatLon(45°30′03.94″N, 002°00′00.0″E), 39078.729285, 1.501072, 2, LatLon(45°00′00.0″N, 002°00′00.0″E), LatLon(46°00′00.0″N, 002°00′00.0″E))\n    test 65 chordTo: 124799.103\n    test 66 cosineAndoyerLambertTo: 124801.098\n    test 67 cosineAndoyerLambertTo: 124801.098\n    test 68 cosineForsyheAndoyerLambertTo: 124801.098\n    test 69 cosineForsyheAndoyerLambertTo: 124801.098\n    test 70 cosineLawTo: 124801.098\n    test 71 cosineLawTo: 124801.098\n    test 72 equirectangularTo: 124804.754\n    test 73 equirectangularTo: 124804.754\n    test 74 euclideanTo: 130015.089\n    test 75 euclideanTo: 130015.089\n    test 76 flatLocalTo: 124804.754\n    test 77 flatLocalTo: 124804.754\n    test 78 flatPolarTo: 133663.257\n    test 79 flatPolarTo: 133663.257\n    test 80 hartzell: 53.3206°N, 001.7297°W\n# lazily imported pygeodesy.triaxials by lazily.py line 529\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by ellipsoids.py line 1905\n    test 81 hartzell: 53.3206°N, 001.7297°W\n    test 82 height4: 0.0\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by cartesianBase.py line 364\n    test 83 height4: (3803904.2, -114870.8, 5109488.3, 0.0)\n    test 84 height4: 53°19′14.2″N, 001°43′46.9″W\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by cartesianBase.py line 364\n    test 85 height4: 53°19′14.2″N, 001°43′46.9″W\n    test 86 haversineTo: 124801.098\n    test 87 haversineTo: 124801.098\n    test 88 hubenyTo: <bound method LatLonBase.flatLocalTo of LatLon(53°19′14.16″N, 001°43′46.92″W)>\n    test 89 hubenyTo: <bound method LatLonBase.flatLocalTo of LatLon(53°11′19.32″N, 000°08′00.24″E)>\n    test 90 thomasTo: 124801.098\n    test 91 thomasTo: 124801.098\n    test 92 vincentysTo: 124801.098\n    test 93 vincentysTo: 124801.098\n    test 94 greatCircleTo: (-0.79408, 0.12859, 0.59406)\n    test 95 isclockwise: False\n    test 96 isclockwise*: False\n    test 97 isclockwise: True\n    test 98 isclockwise*: True\n    test 99 isclockwise: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 100 isclockwise*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 101 isclockwise: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 102 isclockwise*: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 103 isconvex: False\n    test 104 isconvex*: False\n    test 105 isconvex: True\n    test 106 isconvex*: True\n    test 107 isconvex: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 108 isconvex*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 109 isenclosedBy1: True\n    test 110 isenclosedBy1*: True\n    test 111 isenclosedBy2: False\n    test 112 isenclosedBy2*: False\n    test 113 isenclosedBy3: False\n    test 114 isenclosedBy3*: False\n    test 115 isenclosedBy4: False\n    test 116 isenclosedBy4*: False\n    test 117 isenclosedBy5: False\n    test 118 isenclosedBy5*: False\n    test 119 isenclosedBy6: True\n    test 120 isenclosedBy6*: True\n    test 121 isenclosedBy7: True\n    test 122 isenclosedBy7*: True\n    test 123 isenclosedBy-CCW: True\n    test 124 isenclosedBy-CW : True\n    test 125 isenclosedBy-CCW: True\n    test 126 initialBearingTo: 102.432182\n    test 127 compassAngleTo: 100.017\n    test 128 compassAngleTo: 105.599\n    test 129 initialBearingTo: 288.715918\n    test 130 compassAngleTo: 280.017\n    test 131 compassAngleTo: 285.599\n    test 132 equirectangularTo: 592.185\n    test 133 distanceTo: 591.831\n    test 134 compassAngleTo: 0.0\n    test 135 compassAngleTo: 45.0\n    test 136 compassAngleTo: 90.0\n    test 137 compassAngleTo: 180.0\n    test 138 compassAngleTo: 225.0\n    test 139 compassAngleTo: 315.0\n    test 140 compassAngleTo: 270.0\n    test 141 compassAngleTo: 359.4\n    test 142 latlon2: (53.0, 1.0)\n    test 143 philam2: (0.93, 0.02)\n    test 144 compassAngleTo: 31\n    test 145 compassAngleTo: 45\n\n    test 146 boundsOf: <class 'pygeodesy.namedTuples.Bounds2Tuple'>\n    test 147 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 148 latlon2: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 149 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 150 isequalTo: <class 'bool'>\n    test 151 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 152 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 153 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 154 xyz3: <class 'tuple'>\n    test 155 xyzh: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 156 compassAngleTo: <class 'float'>\n    test 157 cosineLawTo: <class 'float'>\n    test 158 euclideanTo: <class 'float'>\n    test 159 flatLocalTo: <class 'float'>\n    test 160 flatPolarTo: <class 'float'>\n    test 161 haversineTo: <class 'float'>\n    test 162 hubenyTo: <class 'float'>\n    test 163 vincentysTo: <class 'float'>\n# imported pygeodesy.ltpTuples into ecefLocals.py line 80\n# imported pygeodesy.ltp into ecefLocals.py line 63\n# imported pygeodesy.ltp into ltpTuples.py line 1585\n    test 164 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 165 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 166 toLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 167 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 168 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 169 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 170 toVector: (3922384.659522, 0.0, 5020423.423198)\n    test 171 toVector3d: (0.61566, 0.0, 0.78801)\n    test 172 trilaterate5 (pygeodesy.sphericalNvector) .min: 223.305\n    test 173 trilaterate5 (pygeodesy.sphericalNvector) .point: 42.67456065°N, 002.49539502°E\n    test 174 trilaterate5 (pygeodesy.sphericalNvector) .min- is .maxPoint: True\n    test 175 trilaterate5 (pygeodesy.sphericalNvector) .n: 1\n    test 176 trilaterate5 (pygeodesy.sphericalNvector) .error: sphericalNvector.LatLon.trilaterate5(area=True), MRO(nvectorBase.LatLonNvectorBase, sphericalBase.LatLonSphericalBase, latlonBase.LatLonBase, named._NamedBase, ecefLocals._EcefLocal, named._Named): not implemented\n# lazily imported pygeodesy.vector2d by latlonBase.py line 1074\n\n    test 177 radii11: Radii11Tuple(rA=7701.409157, rB=1361.530045, rC=499.257353, cR=4886.694635, rIn=739.915482, riS=179.523525, roS=6087.250896, a=1860.787398, b=8200.666509, c=9062.939201, s=9562.196554)\n\n    22 tests skipped (22): No module named 'numpy': required by vector2d._numpy\n\n    test 178 area cw/ccw: 1.0\n\n    testLatLon(pygeodesy.sphericalTrigonometry, 25.08.31)\n    test 179 isEllipsoidal: False\n    test 180 isSpherical: True\n    test 181 lat/lonDMS: 52.20472°N, 000.14056°E\n    test 182 lat/lonDMS F_DM: 52°12.283′N, 000°08.434′E\n    test 183 lat/lonDMS F_DM: 52°12.2832′N, 000°08.4336′E\n    test 184 lat/lonDMS F_DMS: 52°12′17″N, 000°08′26″E\n    test 185 lat/lonDMS F_DMS: 52°12′17.0″N, 000°08′26.0″E\n    test 186 lat/lonDMS F_RAD: 0.911144N, 0.002453E\n    test 187 isequalTo: True\n    test 188 isequalTo: True\n    test 189 latlon2: 52.20472, 0.14056\n    test 190 latlon2: 52.2047, 0.1406\n    test 191 latlon2: 52.205, 0.141\n    test 192 latlon2: 52.2, 0.14\n    test 193 latlon2: 52.2, 0.1\n    test 194 latlon2: 52.0, 0.0\n    test 195 chordTo: 12036677.26\n    test 196 chordTo: 12036463.78\n    test 197 initialBearingTo: 156.1666\n    test 198 initialBearingTo: 65.8921\n    test 199 initialBearingTo: 0.0\n    test 200 initialBearingTo: 180.0\n    test 201 finalBearingTo: 157.8904\n    test 202 finalBearingTo: 93.8581\n    test 203 bearingTo2: 156.1666, 157.8904\n    test 204 ispolar: True\n    test 205 copy: True\n    test 206 __eq__: True\n    test 207 __ne__: False\n    test 208 equirectangularTo: 404329.56\n    test 209 distanceTo: 404279.720589\n    test 210 distanceTo: 404279.720589\n    test 211 distanceTo: 2145\n    test 212 antipodal: False\n    test 213 distanceTo dateline: 19967403.498  FAILED, KNOWN, expected 19119590.551\n    test 214 distanceTo unrolled: 19967403.498  FAILED, KNOWN, expected 19119590.551\n    test 215 antipodal: False\n    test 216 distanceTo dateline: 9491735\n    test 217 distanceTo unrolled: 9491735\n    test 218 distanceTo: 18013602.92\n    test 219 distanceTo: 20015114.35\n    test 220 intermediateTo: 51.372084°N, 000.707337°E\n    test 221 intermediateTo: True\n    test 222 intermediateTo: 404279.721\n    test 223 intermediateTo+5: 35.160975°N, 008.989542°E\n    test 224 intermediateTo+5: 5.000\n    test 225 intermediateTo-4: 64.911647°N, 013.726301°W\n    test 226 intermediateTo-4: 4.000\n    test 227 intermediateTo-h: 125.000\n    test 228 midpointTo: 50.536327°N, 001.274614°E\n    test 229 destination: 51.513546°N, 000.098345°W\n    test 230 destination: 51°30′49″N, 000°05′54″W\n    test 231 destination: 34°37′N, 116°33′W\n    test 232 destination: 34.613647°N, 116.55116°W\n    test 233 destination: 0.604122N, 2.034201W\n    test 234 destination: 31.96383509°N, 064.37329146°E\n    test 235 alongTrackDistanceTo: type(end) (96): incompatible with sphericalTrigonometry.LatLon.alongTrackDistanceTo(end)  FAILED, KNOWN, expected incompatible ...\n    test 236 alongTrackDistanceTo: 62331.58\n    test 237 alongTrackDistanceTo: 99.588\n    test 238 alongTrackDistanceTo: -7702.7\n    test 239 alongTrackDistanceTo: 7587.6\n    test 240 crossTrackDistanceTo: type(end) (96): incompatible with sphericalTrigonometry.LatLon.crossTrackDistanceTo(end)  FAILED, KNOWN, expected incompatible ...\n    test 241 crossTrackDistanceTo: -307.55\n    test 242 crossTrackDistanceTo: 7.4524\n    test 243 greatCircle: (-0.79408, 0.12856, 0.59406)\n    test 244 neareston6: (LatLon(45°00′00.0″N, 001°00′00.0″E), 4773243.784965, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E))  FAILED, KNOWN, expected (LatLon(45°00′00.0″N, 001°00′00.0″E), 4755443.4294, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E))\n    test 245 neareston6: (LatLon(45°30′03.93″N, 002°00′00.0″E), 38968.531578, 1.501091, 2, LatLon(45°00′00.0″N, 002°00′00.0″E), LatLon(46°00′00.0″N, 002°00′00.0″E))  FAILED, KNOWN, expected (LatLon(45°30′03.94″N, 002°00′00.0″E), 39078.729285, 1.501072, 2, LatLon(45°00′00.0″N, 002°00′00.0″E), LatLon(46°00′00.0″N, 002°00′00.0″E))\n    test 246 chordTo: 124799.103\n    test 247 cosineAndoyerLambertTo: 124801.098\n    test 248 cosineAndoyerLambertTo: 124801.098\n    test 249 cosineForsyheAndoyerLambertTo: 124801.098\n    test 250 cosineForsyheAndoyerLambertTo: 124801.098\n    test 251 cosineLawTo: 124801.098\n    test 252 cosineLawTo: 124801.098\n    test 253 equirectangularTo: 124804.754\n    test 254 equirectangularTo: 124804.754\n    test 255 euclideanTo: 130015.089\n    test 256 euclideanTo: 130015.089\n    test 257 flatLocalTo: 124804.754\n    test 258 flatLocalTo: 124804.754\n    test 259 flatPolarTo: 133663.257\n    test 260 flatPolarTo: 133663.257\n    test 261 hartzell: 53.3206°N, 001.7297°W\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by ellipsoids.py line 1905\n    test 262 hartzell: 53.3206°N, 001.7297°W\n    test 263 height4: 0.0\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by cartesianBase.py line 364\n    test 264 height4: (3803904.2, -114870.8, 5109488.3, 0.0)\n    test 265 height4: 53°19′14.2″N, 001°43′46.9″W\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by cartesianBase.py line 364\n    test 266 height4: 53°19′14.2″N, 001°43′46.9″W\n    test 267 haversineTo: 124801.098\n    test 268 haversineTo: 124801.098\n    test 269 hubenyTo: <bound method LatLonBase.flatLocalTo of LatLon(53°19′14.16″N, 001°43′46.92″W)>\n    test 270 hubenyTo: <bound method LatLonBase.flatLocalTo of LatLon(53°11′19.32″N, 000°08′00.24″E)>\n    test 271 thomasTo: 124801.098\n    test 272 thomasTo: 124801.098\n    test 273 vincentysTo: 124801.098\n    test 274 vincentysTo: 124801.098\n    test 275 isclockwise: False\n    test 276 isclockwise*: False\n    test 277 isclockwise: True\n    test 278 isclockwise*: True\n    test 279 isclockwise: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 280 isclockwise*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 281 isclockwise: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 282 isclockwise*: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 283 isconvex: False\n    test 284 isconvex*: False\n    test 285 isconvex: True\n    test 286 isconvex*: True\n    test 287 isconvex: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 288 isconvex*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 289 isenclosedBy1: True\n    test 290 isenclosedBy1*: True\n    test 291 isenclosedBy2: False\n    test 292 isenclosedBy2*: False\n    test 293 isenclosedBy3: False\n    test 294 isenclosedBy3*: False\n    test 295 isenclosedBy4: False\n    test 296 isenclosedBy4*: False\n    test 297 isenclosedBy5: False\n    test 298 isenclosedBy5*: False\n    test 299 isenclosedBy6: True\n    test 300 isenclosedBy6*: True\n    test 301 isenclosedBy7: True\n    test 302 isenclosedBy7*: True\n    test 303 isenclosedBy-CCW: True\n    test 304 isenclosedBy-CW : True\n    test 305 isenclosedBy-CCW: True\n    test 306 initialBearingTo: 102.432182\n    test 307 compassAngleTo: 100.017\n    test 308 compassAngleTo: 105.599\n    test 309 initialBearingTo: 288.715918\n    test 310 compassAngleTo: 280.017\n    test 311 compassAngleTo: 285.599\n    test 312 equirectangularTo: 592.185\n    test 313 distanceTo: 591.831\n    test 314 bearingTo: 0.0\n    test 315 compassAngleTo: 0.0\n    test 316 bearingTo: 45.0\n    test 317 compassAngleTo: 45.0\n    test 318 bearingTo: 90.0\n    test 319 compassAngleTo: 90.0\n    test 320 bearingTo: 180.0\n    test 321 compassAngleTo: 180.0\n    test 322 bearingTo: 225.0\n    test 323 compassAngleTo: 225.0\n    test 324 bearingTo: 315.0\n    test 325 compassAngleTo: 315.0\n    test 326 bearingTo: 270.0\n    test 327 compassAngleTo: 270.0\n    test 328 bearingTo: 0.0  FAILED, KNOWN, expected 359.4\n    test 329 compassAngleTo: 359.4\n    test 330 latlon2: (53.0, 1.0)\n    test 331 philam2: (0.93, 0.02)\n    test 332 bearingTo: 31\n    test 333 compassAngleTo: 31\n    test 334 compassAngleTo: 45\n\n    test 335 boundsOf: <class 'pygeodesy.namedTuples.Bounds2Tuple'>\n    test 336 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 337 latlon2: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 338 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 339 isequalTo: <class 'bool'>\n    test 340 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 341 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 342 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 343 xyz3: <class 'tuple'>\n    test 344 xyzh: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 345 compassAngleTo: <class 'float'>\n    test 346 cosineLawTo: <class 'float'>\n    test 347 euclideanTo: <class 'float'>\n    test 348 flatLocalTo: <class 'float'>\n    test 349 flatPolarTo: <class 'float'>\n    test 350 haversineTo: <class 'float'>\n    test 351 hubenyTo: <class 'float'>\n    test 352 vincentysTo: <class 'float'>\n    test 353 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 354 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 355 toLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 356 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 357 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 358 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 359 toNvector: (0.61566, 0.0, 0.78801)\n    test 360 toVector: (3922384.659522, 0.0, 5020423.423198)\n    test 361 toVector3d: (0.61566, 0.0, 0.78801)\n\n    test 362 trilaterate5 (pygeodesy.sphericalTrigonometry) .min: 313.671\n    test 363 trilaterate5 (pygeodesy.sphericalTrigonometry) .point: 42.66937229°N, 002.48639477°E\n    test 364 trilaterate5 (pygeodesy.sphericalTrigonometry) .max: 1591.044\n    test 365 trilaterate5 (pygeodesy.sphericalTrigonometry) .point: 42.65153054°N, 002.46822157°E\n    test 366 trilaterate5 (pygeodesy.sphericalTrigonometry) .n: 3\n    test 367 trilaterate5 (pygeodesy.sphericalTrigonometry) .min: 133.815\n    test 368 trilaterate5 (pygeodesy.sphericalTrigonometry) .max: 160.242\n    test 369 trilaterate5 (pygeodesy.sphericalTrigonometry) .point: 42.67817811°N, 002.49966641°E\n    test 370 trilaterate5 (pygeodesy.sphericalTrigonometry) .n: 2\n    test 371 trilaterate5 (pygeodesy.sphericalTrigonometry) .min: 2403.293\n    test 372 trilaterate5 (pygeodesy.sphericalTrigonometry) .max: 2403.293\n    test 373 trilaterate5 (pygeodesy.sphericalTrigonometry) .point: 42.66135649°N, 002.47981645°E\n    test 374 trilaterate5 (pygeodesy.sphericalTrigonometry) .min- is .maxPoint: True\n    test 375 trilaterate5 (pygeodesy.sphericalTrigonometry) .n: 1\n    test 376 trilaterate5 (pygeodesy.sphericalTrigonometry) .min: 1340.608\n    test 377 trilaterate5 (pygeodesy.sphericalTrigonometry) .point: 42.69128229°N, 002.50129001°E\n    test 378 trilaterate5 (pygeodesy.sphericalTrigonometry) .max: 1499.220\n    test 379 trilaterate5 (pygeodesy.sphericalTrigonometry) .point: 42.64295864°N, 002.44242391°E\n    test 380 trilaterate5 (pygeodesy.sphericalTrigonometry) .n: 3\n    test 381 radii11: Radii11Tuple(rA=7237.243793, rB=1825.695409, rC=2.255158, cR=57690.493993, rIn=57.33247, riS=2.087691, roS=2.443616, a=1827.950567, b=7239.49895, c=9062.939201, s=9065.194359)\n\n    27 tests skipped (49): No module named 'numpy': required by vector2d._numpy\n\n    test 382 radii11: Radii11Tuple(rA=7237.243793, rB=1825.695409, rC=2.255158, cR=57690.493993, rIn=57.33247, riS=2.087691, roS=2.443616, a=1827.950567, b=7239.49895, c=9062.939201, s=9065.194359)\n\n    22 tests skipped (71): No module named 'numpy': required by vector2d._numpy\n\n    test 383 area cw/ccw: 1.0\n\n    testLatLon(pygeodesy.ellipsoidalNvector, 25.05.12)\n    test 384 isEllipsoidal: True\n    test 385 isSpherical: False\n    test 386 lat/lonDMS: 52.20472°N, 000.14056°E\n    test 387 lat/lonDMS F_DM: 52°12.283′N, 000°08.434′E\n    test 388 lat/lonDMS F_DM: 52°12.2832′N, 000°08.4336′E\n    test 389 lat/lonDMS F_DMS: 52°12′17″N, 000°08′26″E\n    test 390 lat/lonDMS F_DMS: 52°12′17.0″N, 000°08′26.0″E\n    test 391 lat/lonDMS F_RAD: 0.911144N, 0.002453E\n    test 392 isequalTo: True\n    test 393 isequalTo: True\n    test 394 latlon2: 52.20472, 0.14056\n    test 395 latlon2: 52.2047, 0.1406\n    test 396 latlon2: 52.205, 0.141\n    test 397 latlon2: 52.2, 0.14\n    test 398 latlon2: 52.2, 0.1\n    test 399 latlon2: 52.0, 0.0\n    test 400 chordTo: 12029263.15\n    test 401 chordTo: 12029049.69\n    test 402 copy: True\n    test 403 __eq__: True\n    test 404 __ne__: False\n    test 405 equirectangularTo: 404329.56\n    test 406 distanceTo: 404279.720589\n    test 407 distanceTo: 404279.720589\n    test 408 distanceTo: 3972863\n    test 409 distanceTo: 18013602.92\n    test 410 distanceTo: 20015114.35  FAILED, KNOWN, expected 20003931.46\n    test 411 intermediateTo: 51.372294°N, 000.707192°E\n    test 412 intermediateTo: True\n    test 413 intermediateTo: 404279.721\n    test 414 intermediateTo+5: 35.560239°N, 008.833512°E\n    test 415 intermediateTo+5: 4.885\n    test 416 intermediateTo-4: 64.570387°N, 013.156352°W\n    test 417 intermediateTo-4: 3.885\n    test 418 intermediateTo-h: 125.000\n    test 419 midpointTo: 50.536327°N, 001.274614°E\n    test 420 neareston6: (LatLon(45°00′00.0″N, 001°00′00.0″E), 4755443.4294, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E))\n    test 421 neareston6: (LatLon(45°30′03.94″N, 002°00′00.0″E), 39078.729285, 1.501072, 2, LatLon(45°00′00.0″N, 002°00′00.0″E), LatLon(46°00′00.0″N, 002°00′00.0″E))\n    test 422 chordTo: 125203.963\n    test 423 cosineAndoyerLambertTo: 125205.962\n    test 424 cosineAndoyerLambertTo: 125205.962\n    test 425 cosineForsyheAndoyerLambertTo: 125205.965\n    test 426 cosineForsyheAndoyerLambertTo: 125205.965\n    test 427 cosineLawTo: 124801.098\n    test 428 cosineLawTo: 124801.098\n    test 429 equirectangularTo: 124804.754\n    test 430 equirectangularTo: 124804.754\n    test 431 euclideanTo: 130015.089\n    test 432 euclideanTo: 130015.089\n    test 433 flatLocalTo: 125209.633\n    test 434 flatLocalTo: 125209.633\n    test 435 flatPolarTo: 133663.257\n    test 436 flatPolarTo: 133663.257\n    test 437 hartzell: 53.3206°N, 001.7297°W\n# lazily imported pygeodesy.Triaxial from .triaxials.triaxial5 by ellipsoids.py line 1905\n    test 438 hartzell: 53.349541°N, 001.7297°W\n    test 439 height4: 0.0\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by cartesianBase.py line 364\n    test 440 height4: (3820333.9, -115367.0, 5097204.4, -6584.9)\n    test 441 height4: 53°19′14.2″N, 001°43′46.9″W\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by cartesianBase.py line 364\n    test 442 height4: 53°19′14.2″N, 001°43′46.9″W\n    test 443 haversineTo: 124801.098\n    test 444 haversineTo: 124801.098\n    test 445 hubenyTo: <bound method LatLonBase.flatLocalTo of LatLon(53°19′14.16″N, 001°43′46.92″W)>\n    test 446 hubenyTo: <bound method LatLonBase.flatLocalTo of LatLon(53°11′19.32″N, 000°08′00.24″E)>\n    test 447 thomasTo: 125206.188\n    test 448 thomasTo: 125206.188\n    test 449 vincentysTo: 124801.098\n    test 450 vincentysTo: 124801.098\n    test 451 isclockwise: False\n    test 452 isclockwise*: False\n    test 453 isclockwise: True\n    test 454 isclockwise*: True\n    test 455 isclockwise: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 456 isclockwise*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 457 isclockwise: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 458 isclockwise*: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 459 isconvex: False\n    test 460 isconvex*: False\n    test 461 isconvex: True\n    test 462 isconvex*: True\n    test 463 isconvex: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 464 isconvex*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 465 isenclosedBy1: True\n    test 466 isenclosedBy1*: True\n    test 467 isenclosedBy2: False\n    test 468 isenclosedBy2*: False\n    test 469 isenclosedBy3: False\n    test 470 isenclosedBy3*: False\n    test 471 isenclosedBy4: False\n    test 472 isenclosedBy4*: False\n    test 473 isenclosedBy5: False\n    test 474 isenclosedBy5*: False\n    test 475 isenclosedBy6: True\n    test 476 isenclosedBy6*: True\n    test 477 isenclosedBy7: True\n    test 478 isenclosedBy7*: True\n    test 479 isenclosedBy-CCW: True\n    test 480 isenclosedBy-CW : True\n    test 481 isenclosedBy-CCW: True\n    test 482 compassAngleTo: 100.017\n    test 483 compassAngleTo: 105.599\n    test 484 compassAngleTo: 280.017\n    test 485 compassAngleTo: 285.599\n    test 486 equirectangularTo: 592.185\n    test 487 distanceTo: 591.831\n    test 488 compassAngleTo: 0.0\n    test 489 compassAngleTo: 45.0\n    test 490 compassAngleTo: 90.0\n    test 491 compassAngleTo: 180.0\n    test 492 compassAngleTo: 225.0\n    test 493 compassAngleTo: 315.0\n    test 494 compassAngleTo: 270.0\n    test 495 compassAngleTo: 359.4\n    test 496 latlon2: (53.0, 1.0)\n    test 497 philam2: (0.93, 0.02)\n    test 498 compassAngleTo: 31\n    test 499 compassAngleTo: 45\n\n    test 500 boundsOf: <class 'pygeodesy.namedTuples.Bounds2Tuple'>\n    test 501 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 502 latlon2: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 503 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 504 isequalTo: <class 'bool'>\n    test 505 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 506 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 507 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 508 xyz3: <class 'tuple'>\n    test 509 xyzh: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 510 compassAngleTo: <class 'float'>\n    test 511 cosineLawTo: <class 'float'>\n    test 512 euclideanTo: <class 'float'>\n    test 513 flatLocalTo: <class 'float'>\n    test 514 flatPolarTo: <class 'float'>\n    test 515 haversineTo: <class 'float'>\n    test 516 hubenyTo: <class 'float'>\n    test 517 vincentysTo: <class 'float'>\n    test 518 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 519 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 520 toLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 521 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 522 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 523 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 524 toVector: (3934960.466675, 0.0, 5002803.345483)\n    test 525 toVector3d: (0.61823, 0.0, 0.786)\n    test 526 trilaterate5 (pygeodesy.ellipsoidalNvector) .min: 223.305\n    test 527 trilaterate5 (pygeodesy.ellipsoidalNvector) .point: 42.67456065°N, 002.49539502°E\n    test 528 trilaterate5 (pygeodesy.ellipsoidalNvector) .min- is .maxPoint: True\n    test 529 trilaterate5 (pygeodesy.ellipsoidalNvector) .n: 1\n    test 530 trilaterate5 (pygeodesy.ellipsoidalNvector) .error: ellipsoidalNvector.LatLon.trilaterate5(area=True), MRO(nvectorBase.LatLonNvectorBase, ellipsoidalBase.LatLonEllipsoidalBase, latlonBase.LatLonBase, named._NamedBase, ecefLocals._EcefLocal, named._Named): not implemented\n\n    test 531 radii11: Radii11Tuple(rA=7705.84217, rB=1367.057272, rC=498.160185, cR=4897.488519, rIn=740.470746, riS=179.544791, roS=5964.029657, a=1865.217457, b=8204.002354, c=9072.899442, s=9571.059626)\n\n    22 tests skipped (93): No module named 'numpy': required by vector2d._numpy\n\n    testLatLon(pygeodesy.ellipsoidalVincenty, 25.05.26)\n    test 532 isEllipsoidal: True\n    test 533 isSpherical: False\n    test 534 lat/lonDMS: 52.20472°N, 000.14056°E\n    test 535 lat/lonDMS F_DM: 52°12.283′N, 000°08.434′E\n    test 536 lat/lonDMS F_DM: 52°12.2832′N, 000°08.4336′E\n    test 537 lat/lonDMS F_DMS: 52°12′17″N, 000°08′26″E\n    test 538 lat/lonDMS F_DMS: 52°12′17.0″N, 000°08′26.0″E\n    test 539 lat/lonDMS F_RAD: 0.911144N, 0.002453E\n    test 540 isequalTo: True\n    test 541 isequalTo: True\n    test 542 latlon2: 52.20472, 0.14056\n    test 543 latlon2: 52.2047, 0.1406\n    test 544 latlon2: 52.205, 0.141\n    test 545 latlon2: 52.2, 0.14\n    test 546 latlon2: 52.2, 0.1\n    test 547 latlon2: 52.0, 0.0\n    test 548 chordTo: 12029263.15\n    test 549 chordTo: 12029049.69\n    test 550 initialBearingTo: 156.1106\n    test 551 initialBearingTo: 65.9335\n    test 552 initialBearingTo: 0.0\n    test 553 initialBearingTo: 180.0\n    test 554 finalBearingTo: 157.8345\n    test 555 finalBearingTo: 93.9034\n    test 556 bearingTo2: 156.1106, 157.8345\n    test 557 ispolar: True\n    test 558 copy: True\n    test 559 __eq__: True\n    test 560 __ne__: False\n    test 561 equirectangularTo: 404329.56\n    test 562 distanceTo: 404607.805988\n    test 563 distanceTo: 404607.805988\n    test 564 distanceTo: 3981601\n    test 565 antipodal: False\n    test 566 distanceTo dateline: 19959679.267\n    test 567 distanceTo unrolled: 19959679.267\n    test 568 antipodal: False\n    test 569 distanceTo dateline: 9513998\n    test 570 distanceTo unrolled: 9513998\n    test 571 distanceTo: 18012714.66\n    test 572 distanceTo: ambiguous: LatLon(00°00′00.0″N, 000°00′00.0″E) antipodal to LatLon(00°00′00.0″N, 180°00′00.0″E)  FAILED, KNOWN, expected ambiguous, antipodal ...\n    test 573 distanceTo3 dateline: 19959679.2674, 161.0677, 18.8252\n    test 574 distanceTo3 dateline: 9513997.9901, 42.9164, 138.8903\n    test 575 distanceTo3 dateline: 19959679.2674, 161.0677, 18.8252\n    test 576 distanceTo3 dateline: 9513997.9901, 42.9164, 138.8903\n    test 577 intermediateTo: 51.372275°N, 000.707253°E\n    test 578 intermediateTo: True\n    test 579 intermediateTo: 404607.806\n    test 580 intermediateTo+5: 35.139582°N, 008.994368°E\n    test 581 intermediateTo+5: 5.000\n    test 582 intermediateTo-4: 64.894124°N, 013.705689°W\n    test 583 intermediateTo-4: 4.000\n    test 584 intermediateTo-h: 125.000\n    test 585 midpointTo: 50.536583°N, 001.274507°E\n    test 586 destination: 51.513526°N, 000.098038°W\n    test 587 destination: 51°30′49″N, 000°05′53″W\n    test 588 destination: 33°57′N, 118°24′W\n    test 589 destination: 33.950367°N, 118.399012°W\n    test 590 destination: 0.592546N, 2.066453W\n    test 591 destination: 32.11195529°N, 064.56074722°E  FAILED, KNOWN, expected 32.11195529°N, 063.95925278°E\n    test 592 neareston6: (LatLon(45°00′00.0″N, 001°00′00.0″E), 4755443.4294, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E))\n    test 593 neareston6: (LatLon(45°30′03.94″N, 002°00′00.0″E), 39078.729285, 1.501072, 2, LatLon(45°00′00.0″N, 002°00′00.0″E), LatLon(46°00′00.0″N, 002°00′00.0″E))\n    test 594 chordTo: 125203.963\n    test 595 cosineAndoyerLambertTo: 125205.962\n    test 596 cosineAndoyerLambertTo: 125205.962\n    test 597 cosineForsyheAndoyerLambertTo: 125205.965\n    test 598 cosineForsyheAndoyerLambertTo: 125205.965\n    test 599 cosineLawTo: 124801.098\n    test 600 cosineLawTo: 124801.098\n    test 601 equirectangularTo: 124804.754\n    test 602 equirectangularTo: 124804.754\n    test 603 euclideanTo: 130015.089\n    test 604 euclideanTo: 130015.089\n    test 605 flatLocalTo: 125209.633\n    test 606 flatLocalTo: 125209.633\n    test 607 flatPolarTo: 133663.257\n    test 608 flatPolarTo: 133663.257\n    test 609 hartzell: 53.3206°N, 001.7297°W\n# lazily imported pygeodesy.Triaxial from .triaxials.triaxial5 by ellipsoids.py line 1905\n    test 610 hartzell: 53.349541°N, 001.7297°W\n    test 611 height4: 0.0\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by cartesianBase.py line 364\n    test 612 height4: (3820333.9, -115367.0, 5097204.4, -6584.9)\n    test 613 height4: 53°19′14.2″N, 001°43′46.9″W\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by cartesianBase.py line 364\n    test 614 height4: 53°19′14.2″N, 001°43′46.9″W\n    test 615 haversineTo: 124801.098\n    test 616 haversineTo: 124801.098\n    test 617 hubenyTo: <bound method LatLonBase.flatLocalTo of LatLon(53°19′14.16″N, 001°43′46.92″W)>\n    test 618 hubenyTo: <bound method LatLonBase.flatLocalTo of LatLon(53°11′19.32″N, 000°08′00.24″E)>\n    test 619 thomasTo: 125206.188\n    test 620 thomasTo: 125206.188\n    test 621 vincentysTo: 124801.098\n    test 622 vincentysTo: 124801.098\n    test 623 isclockwise: False\n    test 624 isclockwise*: False\n    test 625 isclockwise: True\n    test 626 isclockwise*: True\n    test 627 isclockwise: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 628 isclockwise*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 629 isclockwise: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 630 isclockwise*: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 631 isconvex: False\n    test 632 isconvex*: False\n    test 633 isconvex: True\n    test 634 isconvex*: True\n    test 635 isconvex: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 636 isconvex*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 637 isenclosedBy1: True\n    test 638 isenclosedBy1*: True\n    test 639 isenclosedBy2: False\n    test 640 isenclosedBy2*: False\n    test 641 isenclosedBy3: False\n    test 642 isenclosedBy3*: False\n    test 643 isenclosedBy4: False\n    test 644 isenclosedBy4*: False\n    test 645 isenclosedBy5: False\n    test 646 isenclosedBy5*: False\n    test 647 isenclosedBy6: True\n    test 648 isenclosedBy6*: True\n    test 649 isenclosedBy7: True\n    test 650 isenclosedBy7*: True\n    test 651 isenclosedBy-CCW: True\n    test 652 isenclosedBy-CW : True\n    test 653 isenclosedBy-CCW: True\n    test 654 initialBearingTo: 102.392291\n    test 655 compassAngleTo: 100.017\n    test 656 compassAngleTo: 105.599\n    test 657 initialBearingTo: 288.676039\n    test 658 compassAngleTo: 280.017\n    test 659 compassAngleTo: 285.599\n    test 660 equirectangularTo: 592.185\n    test 661 distanceTo: 593.571\n    test 662 bearingTo: 0.0\n    test 663 compassAngleTo: 0.0\n    test 664 bearingTo: 45.2  FAILED, KNOWN, expected 45.0\n    test 665 compassAngleTo: 45.0\n    test 666 bearingTo: 90.0\n    test 667 compassAngleTo: 90.0\n    test 668 bearingTo: 180.0\n    test 669 compassAngleTo: 180.0\n    test 670 bearingTo: 225.2  FAILED, KNOWN, expected 225.0\n    test 671 compassAngleTo: 225.0\n    test 672 bearingTo: 314.8  FAILED, KNOWN, expected 315.0\n    test 673 compassAngleTo: 315.0\n    test 674 bearingTo: 270.0\n    test 675 compassAngleTo: 270.0\n    test 676 bearingTo: 360.0  FAILED, KNOWN, expected 359.4\n    test 677 compassAngleTo: 359.4\n    test 678 latlon2: (53.0, 1.0)\n    test 679 philam2: (0.93, 0.02)\n    test 680 bearingTo: 31\n    test 681 compassAngleTo: 31\n    test 682 compassAngleTo: 45\n\n    test 683 boundsOf: <class 'pygeodesy.namedTuples.Bounds2Tuple'>\n    test 684 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 685 latlon2: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 686 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 687 isequalTo: <class 'bool'>\n    test 688 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 689 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 690 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 691 xyz3: <class 'tuple'>\n    test 692 xyzh: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 693 compassAngleTo: <class 'float'>\n    test 694 cosineLawTo: <class 'float'>\n    test 695 euclideanTo: <class 'float'>\n    test 696 flatLocalTo: <class 'float'>\n    test 697 flatPolarTo: <class 'float'>\n    test 698 haversineTo: <class 'float'>\n    test 699 hubenyTo: <class 'float'>\n    test 700 vincentysTo: <class 'float'>\n    test 701 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 702 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 703 toLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 704 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 705 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 706 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 707 toNvector: (0.615661, 0.0, 0.788011, 0)\n    test 708 toVector: (3934960.466675, 0.0, 5002803.345483)\n    test 709 toVector3d: (0.61823, 0.0, 0.786)\n# lazily imported pygeodesy.geodesicw by ellipsoids.py line 1074\n# lazily imported pygeodesy.azimuthal by ellipsoidalBase.py line 444\n\n    test 710 trilaterate5 (pygeodesy.ellipsoidalVincenty) .min: 305.091\n    test 711 trilaterate5 (pygeodesy.ellipsoidalVincenty) .point: 42.66933643°N, 002.48620262°E\n    test 712 trilaterate5 (pygeodesy.ellipsoidalVincenty) .max: 1592.545\n    test 713 trilaterate5 (pygeodesy.ellipsoidalVincenty) .point: 42.65141232°N, 002.46816989°E\n    test 714 trilaterate5 (pygeodesy.ellipsoidalVincenty) .n: 3\n    test 715 trilaterate5 (pygeodesy.ellipsoidalVincenty) .min: 127.229\n    test 716 trilaterate5 (pygeodesy.ellipsoidalVincenty) .max: 152.612\n    test 717 trilaterate5 (pygeodesy.ellipsoidalVincenty) .point: 42.67815375°N, 002.49950041°E\n    test 718 trilaterate5 (pygeodesy.ellipsoidalVincenty) .n: 2\n    test 719 trilaterate5 (pygeodesy.ellipsoidalVincenty) .min: 2400.293\n    test 720 trilaterate5 (pygeodesy.ellipsoidalVincenty) .max: 2400.293\n    test 721 trilaterate5 (pygeodesy.ellipsoidalVincenty) .point: 42.66128984°N, 002.47973818°E\n    test 722 trilaterate5 (pygeodesy.ellipsoidalVincenty) .min- is .maxPoint: True\n    test 723 trilaterate5 (pygeodesy.ellipsoidalVincenty) .n: 1\n    test 724 trilaterate5 (pygeodesy.ellipsoidalVincenty) .min: 1343.743\n    test 725 trilaterate5 (pygeodesy.ellipsoidalVincenty) .point: 42.69131964°N, 002.50112167°E\n    test 726 trilaterate5 (pygeodesy.ellipsoidalVincenty) .max: 1445.554\n    test 727 trilaterate5 (pygeodesy.ellipsoidalVincenty) .point: 42.67815375°N, 002.49950041°E\n    test 728 trilaterate5 (pygeodesy.ellipsoidalVincenty) .n: 2\n    test 729 radii11: Radii11Tuple(rA=7244.792747, rB=1828.106695, rC=2.25502, cR=57792.067128, rIn=57.366968, riS=2.087668, roS=2.443334, a=1830.361715, b=7247.047766, c=9072.899442, s=9075.154461)\n\n    27 tests skipped (120): No module named 'numpy': required by vector2d._numpy\n\n    test 730 radii11: Radii11Tuple(rA=7244.792747, rB=1828.106695, rC=2.25502, cR=57792.067128, rIn=57.366968, riS=2.087668, roS=2.443334, a=1830.361715, b=7247.047766, c=9072.899442, s=9075.154461)\n\n    22 tests skipped (142): No module named 'numpy': required by vector2d._numpy\n# lazily imported pygeodesy.ellipsoidalKarney by ellipsoidalVincenty.py line 383\n\n    test 731 area cw/ccw: 1.0\n\n    testLatLon(pygeodesy.ellipsoidalKarney, 25.05.27)\n    test 732 isEllipsoidal: True\n    test 733 isSpherical: False\n    test 734 lat/lonDMS: 52.20472°N, 000.14056°E\n    test 735 lat/lonDMS F_DM: 52°12.283′N, 000°08.434′E\n    test 736 lat/lonDMS F_DM: 52°12.2832′N, 000°08.4336′E\n    test 737 lat/lonDMS F_DMS: 52°12′17″N, 000°08′26″E\n    test 738 lat/lonDMS F_DMS: 52°12′17.0″N, 000°08′26.0″E\n    test 739 lat/lonDMS F_RAD: 0.911144N, 0.002453E\n    test 740 isequalTo: True\n    test 741 isequalTo: True\n    test 742 latlon2: 52.20472, 0.14056\n    test 743 latlon2: 52.2047, 0.1406\n    test 744 latlon2: 52.205, 0.141\n    test 745 latlon2: 52.2, 0.14\n    test 746 latlon2: 52.2, 0.1\n    test 747 latlon2: 52.0, 0.0\n    test 748 chordTo: 12029263.15\n    test 749 chordTo: 12029049.69\n    test 750 initialBearingTo: 156.1106\n    test 751 initialBearingTo: 65.9335\n    test 752 initialBearingTo: 0.0\n    test 753 initialBearingTo: 180.0\n    test 754 finalBearingTo: 157.8345\n    test 755 finalBearingTo: 93.9034\n    test 756 bearingTo2: 156.1106, 157.8345\n    test 757 ispolar: True\n    test 758 copy: True\n    test 759 __eq__: True\n    test 760 __ne__: False\n    test 761 equirectangularTo: 404329.56\n    test 762 distanceTo: 404607.805988\n    test 763 distanceTo: 404607.805988\n    test 764 distanceTo: 3981601\n    test 765 antipodal: False\n    test 766 distanceTo dateline: 19959679.267\n    test 767 distanceTo unrolled: 19959679.267\n    test 768 antipodal: False\n    test 769 distanceTo dateline: 9513998\n    test 770 distanceTo unrolled: 9513998\n    test 771 distanceTo: 18012714.66\n    test 772 distanceTo: 20003931.46\n    test 773 distanceTo3 dateline: 19959679.2674, 161.0677, 18.8252\n    test 774 distanceTo3 dateline: 9513997.9901, 42.9164, 138.8903\n    test 775 distanceTo3 dateline: 19959679.2674, 161.0677, 18.8252\n    test 776 distanceTo3 dateline: 9513997.9901, 42.9164, 138.8903\n    test 777 intermediateTo: 51.372275°N, 000.707253°E\n    test 778 intermediateTo: True\n    test 779 intermediateTo: 404607.806\n    test 780 intermediateTo+5: 35.139582°N, 008.994368°E\n    test 781 intermediateTo+5: 5.000\n    test 782 intermediateTo-4: 64.894124°N, 013.705689°W\n    test 783 intermediateTo-4: 4.000\n    test 784 intermediateTo-h: 125.000\n    test 785 midpointTo: 50.536583°N, 001.274507°E\n    test 786 destination: 51.513526°N, 000.098038°W\n    test 787 destination: 51°30′49″N, 000°05′53″W\n    test 788 destination: 33°57′N, 118°24′W\n    test 789 destination: 33.950367°N, 118.399012°W\n    test 790 destination: 0.592546N, 2.066453W\n    test 791 destination: 32.11195529°N, 064.56074722°E  FAILED, KNOWN, expected 32.11195529°N, 063.95925278°E\n    test 792 neareston6: (LatLon(45°00′00.0″N, 001°00′00.0″E), 4755443.4294, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E))\n    test 793 neareston6: (LatLon(45°30′03.94″N, 002°00′00.0″E), 39078.729285, 1.501072, 2, LatLon(45°00′00.0″N, 002°00′00.0″E), LatLon(46°00′00.0″N, 002°00′00.0″E))\n    test 794 chordTo: 125203.963\n    test 795 cosineAndoyerLambertTo: 125205.962\n    test 796 cosineAndoyerLambertTo: 125205.962\n    test 797 cosineForsyheAndoyerLambertTo: 125205.965\n    test 798 cosineForsyheAndoyerLambertTo: 125205.965\n    test 799 cosineLawTo: 124801.098\n    test 800 cosineLawTo: 124801.098\n    test 801 equirectangularTo: 124804.754\n    test 802 equirectangularTo: 124804.754\n    test 803 euclideanTo: 130015.089\n    test 804 euclideanTo: 130015.089\n    test 805 flatLocalTo: 125209.633\n    test 806 flatLocalTo: 125209.633\n    test 807 flatPolarTo: 133663.257\n    test 808 flatPolarTo: 133663.257\n    test 809 hartzell: 53.3206°N, 001.7297°W\n# lazily imported pygeodesy.Triaxial from .triaxials.triaxial5 by ellipsoids.py line 1905\n    test 810 hartzell: 53.349541°N, 001.7297°W\n    test 811 height4: 0.0\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by cartesianBase.py line 364\n    test 812 height4: (3820333.9, -115367.0, 5097204.4, -6584.9)\n    test 813 height4: 53°19′14.2″N, 001°43′46.9″W\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by cartesianBase.py line 364\n    test 814 height4: 53°19′14.2″N, 001°43′46.9″W\n    test 815 haversineTo: 124801.098\n    test 816 haversineTo: 124801.098\n    test 817 hubenyTo: <bound method LatLonBase.flatLocalTo of LatLon(53°19′14.16″N, 001°43′46.92″W)>\n    test 818 hubenyTo: <bound method LatLonBase.flatLocalTo of LatLon(53°11′19.32″N, 000°08′00.24″E)>\n    test 819 thomasTo: 125206.188\n    test 820 thomasTo: 125206.188\n    test 821 vincentysTo: 124801.098\n    test 822 vincentysTo: 124801.098\n    test 823 isclockwise: False\n    test 824 isclockwise*: False\n    test 825 isclockwise: True\n    test 826 isclockwise*: True\n    test 827 isclockwise: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 828 isclockwise*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 829 isclockwise: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 830 isclockwise*: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 831 isconvex: False\n    test 832 isconvex*: False\n    test 833 isconvex: True\n    test 834 isconvex*: True\n    test 835 isconvex: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 836 isconvex*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 837 isenclosedBy1: True\n    test 838 isenclosedBy1*: True\n    test 839 isenclosedBy2: False\n    test 840 isenclosedBy2*: False\n    test 841 isenclosedBy3: False\n    test 842 isenclosedBy3*: False\n    test 843 isenclosedBy4: False\n    test 844 isenclosedBy4*: False\n    test 845 isenclosedBy5: False\n    test 846 isenclosedBy5*: False\n    test 847 isenclosedBy6: True\n    test 848 isenclosedBy6*: True\n    test 849 isenclosedBy7: True\n    test 850 isenclosedBy7*: True\n    test 851 isenclosedBy-CCW: True\n    test 852 isenclosedBy-CW : True\n    test 853 isenclosedBy-CCW: True\n    test 854 initialBearingTo: 102.392291\n    test 855 compassAngleTo: 100.017\n    test 856 compassAngleTo: 105.599\n    test 857 initialBearingTo: 288.676039\n    test 858 compassAngleTo: 280.017\n    test 859 compassAngleTo: 285.599\n    test 860 equirectangularTo: 592.185\n    test 861 distanceTo: 593.571\n    test 862 bearingTo: 0.0\n    test 863 compassAngleTo: 0.0\n    test 864 bearingTo: 45.2  FAILED, KNOWN, expected 45.0\n    test 865 compassAngleTo: 45.0\n    test 866 bearingTo: 90.0\n    test 867 compassAngleTo: 90.0\n    test 868 bearingTo: 180.0\n    test 869 compassAngleTo: 180.0\n    test 870 bearingTo: 225.2  FAILED, KNOWN, expected 225.0\n    test 871 compassAngleTo: 225.0\n    test 872 bearingTo: 314.8  FAILED, KNOWN, expected 315.0\n    test 873 compassAngleTo: 315.0\n    test 874 bearingTo: 270.0\n    test 875 compassAngleTo: 270.0\n    test 876 bearingTo: 0.0  FAILED, KNOWN, expected 359.4\n    test 877 compassAngleTo: 359.4\n    test 878 latlon2: (53.0, 1.0)\n    test 879 philam2: (0.93, 0.02)\n    test 880 bearingTo: 31\n    test 881 compassAngleTo: 31\n    test 882 compassAngleTo: 45\n\n    test 883 boundsOf: <class 'pygeodesy.namedTuples.Bounds2Tuple'>\n    test 884 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 885 latlon2: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 886 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 887 isequalTo: <class 'bool'>\n    test 888 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 889 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 890 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 891 xyz3: <class 'tuple'>\n    test 892 xyzh: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 893 compassAngleTo: <class 'float'>\n    test 894 cosineLawTo: <class 'float'>\n    test 895 euclideanTo: <class 'float'>\n    test 896 flatLocalTo: <class 'float'>\n    test 897 flatPolarTo: <class 'float'>\n    test 898 haversineTo: <class 'float'>\n    test 899 hubenyTo: <class 'float'>\n    test 900 vincentysTo: <class 'float'>\n    test 901 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 902 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 903 toLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 904 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 905 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 906 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 907 toNvector: (0.615661, 0.0, 0.788011, 0)\n    test 908 toVector: (3934960.466675, 0.0, 5002803.345483)\n    test 909 toVector3d: (0.61823, 0.0, 0.786)\n\n    test 910 trilaterate5 (pygeodesy.ellipsoidalKarney) .min: 305.091\n    test 911 trilaterate5 (pygeodesy.ellipsoidalKarney) .point: 42.66933643°N, 002.48620262°E\n    test 912 trilaterate5 (pygeodesy.ellipsoidalKarney) .max: 1592.545\n    test 913 trilaterate5 (pygeodesy.ellipsoidalKarney) .point: 42.65141232°N, 002.46816989°E\n    test 914 trilaterate5 (pygeodesy.ellipsoidalKarney) .n: 3\n    test 915 trilaterate5 (pygeodesy.ellipsoidalKarney) .min: 127.229\n    test 916 trilaterate5 (pygeodesy.ellipsoidalKarney) .max: 152.612\n    test 917 trilaterate5 (pygeodesy.ellipsoidalKarney) .point: 42.67815375°N, 002.49950041°E\n    test 918 trilaterate5 (pygeodesy.ellipsoidalKarney) .n: 2\n    test 919 trilaterate5 (pygeodesy.ellipsoidalKarney) .min: 2400.293\n    test 920 trilaterate5 (pygeodesy.ellipsoidalKarney) .max: 2400.293\n    test 921 trilaterate5 (pygeodesy.ellipsoidalKarney) .point: 42.66128984°N, 002.47973818°E\n    test 922 trilaterate5 (pygeodesy.ellipsoidalKarney) .min- is .maxPoint: True\n    test 923 trilaterate5 (pygeodesy.ellipsoidalKarney) .n: 1\n    test 924 trilaterate5 (pygeodesy.ellipsoidalKarney) .min: 1343.743\n    test 925 trilaterate5 (pygeodesy.ellipsoidalKarney) .point: 42.69131964°N, 002.50112167°E\n    test 926 trilaterate5 (pygeodesy.ellipsoidalKarney) .max: 1445.554\n    test 927 trilaterate5 (pygeodesy.ellipsoidalKarney) .point: 42.67815375°N, 002.49950041°E\n    test 928 trilaterate5 (pygeodesy.ellipsoidalKarney) .n: 2\n    test 929 radii11: Radii11Tuple(rA=7244.792747, rB=1828.106695, rC=2.25502, cR=57792.067128, rIn=57.366968, riS=2.087668, roS=2.443334, a=1830.361715, b=7247.047766, c=9072.899442, s=9075.154461)\n\n    27 tests skipped (169): No module named 'numpy': required by vector2d._numpy\n\n    test 930 radii11: Radii11Tuple(rA=7244.792747, rB=1828.106695, rC=2.25502, cR=57792.067128, rIn=57.366968, riS=2.087668, roS=2.443334, a=1830.361715, b=7247.047766, c=9072.899442, s=9075.154461)\n\n    22 tests skipped (191): No module named 'numpy': required by vector2d._numpy\n\n    test 931 area cw/ccw: 1.0\n\n    testLatLon(pygeodesy.ellipsoidalExact, 25.08.28)\n    test 932 isEllipsoidal: True\n    test 933 isSpherical: False\n    test 934 lat/lonDMS: 52.20472°N, 000.14056°E\n    test 935 lat/lonDMS F_DM: 52°12.283′N, 000°08.434′E\n    test 936 lat/lonDMS F_DM: 52°12.2832′N, 000°08.4336′E\n    test 937 lat/lonDMS F_DMS: 52°12′17″N, 000°08′26″E\n    test 938 lat/lonDMS F_DMS: 52°12′17.0″N, 000°08′26.0″E\n    test 939 lat/lonDMS F_RAD: 0.911144N, 0.002453E\n    test 940 isequalTo: True\n    test 941 isequalTo: True\n    test 942 latlon2: 52.20472, 0.14056\n    test 943 latlon2: 52.2047, 0.1406\n    test 944 latlon2: 52.205, 0.141\n    test 945 latlon2: 52.2, 0.14\n    test 946 latlon2: 52.2, 0.1\n    test 947 latlon2: 52.0, 0.0\n    test 948 chordTo: 12029263.15\n    test 949 chordTo: 12029049.69\n# lazily imported pygeodesy.geodesicx by ellipsoids.py line 1082\n# lazily imported pygeodesy.elliptic by gx.py line 421\n    test 950 initialBearingTo: 156.1106\n    test 951 initialBearingTo: 65.9335\n    test 952 initialBearingTo: 0.0\n    test 953 initialBearingTo: 180.0\n    test 954 finalBearingTo: 157.8345\n    test 955 finalBearingTo: 93.9034\n    test 956 bearingTo2: 156.1106, 157.8345\n    test 957 ispolar: True\n    test 958 copy: True\n    test 959 __eq__: True\n    test 960 __ne__: False\n    test 961 equirectangularTo: 404329.56\n    test 962 distanceTo: 404607.805988\n    test 963 distanceTo: 404607.805988\n    test 964 distanceTo: 3981601\n    test 965 antipodal: False\n    test 966 distanceTo dateline: 19959679.267\n    test 967 distanceTo unrolled: 19959679.267\n    test 968 antipodal: False\n    test 969 distanceTo dateline: 9513998\n    test 970 distanceTo unrolled: 9513998\n    test 971 distanceTo: 18012714.66\n    test 972 distanceTo: 20003931.46\n    test 973 distanceTo3 dateline: 19959679.2674, 161.0677, 18.8252\n    test 974 distanceTo3 dateline: 9513997.9901, 42.9164, 138.8903\n    test 975 distanceTo3 dateline: 19959679.2674, 161.0677, 18.8252\n    test 976 distanceTo3 dateline: 9513997.9901, 42.9164, 138.8903\n    test 977 intermediateTo: 51.372275°N, 000.707253°E\n    test 978 intermediateTo: True\n    test 979 intermediateTo: 404607.806\n    test 980 intermediateTo+5: 35.139582°N, 008.994368°E\n    test 981 intermediateTo+5: 5.000\n    test 982 intermediateTo-4: 64.894124°N, 013.705689°W\n    test 983 intermediateTo-4: 4.000\n    test 984 intermediateTo-h: 125.000\n    test 985 midpointTo: 50.536583°N, 001.274507°E\n    test 986 destination: 51.513526°N, 000.098038°W\n    test 987 destination: 51°30′49″N, 000°05′53″W\n    test 988 destination: 33°57′N, 118°24′W\n    test 989 destination: 33.950367°N, 118.399012°W\n    test 990 destination: 0.592546N, 2.066453W\n    test 991 destination: 32.11195529°N, 064.56074722°E  FAILED, KNOWN, expected 32.11195529°N, 063.95925278°E\n    test 992 neareston6: (LatLon(45°00′00.0″N, 001°00′00.0″E), 4755443.4294, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E))\n    test 993 neareston6: (LatLon(45°30′03.94″N, 002°00′00.0″E), 39078.729285, 1.501072, 2, LatLon(45°00′00.0″N, 002°00′00.0″E), LatLon(46°00′00.0″N, 002°00′00.0″E))\n    test 994 chordTo: 125203.963\n    test 995 cosineAndoyerLambertTo: 125205.962\n    test 996 cosineAndoyerLambertTo: 125205.962\n    test 997 cosineForsyheAndoyerLambertTo: 125205.965\n    test 998 cosineForsyheAndoyerLambertTo: 125205.965\n    test 999 cosineLawTo: 124801.098\n    test 1000 cosineLawTo: 124801.098\n    test 1001 equirectangularTo: 124804.754\n    test 1002 equirectangularTo: 124804.754\n    test 1003 euclideanTo: 130015.089\n    test 1004 euclideanTo: 130015.089\n    test 1005 flatLocalTo: 125209.633\n    test 1006 flatLocalTo: 125209.633\n    test 1007 flatPolarTo: 133663.257\n    test 1008 flatPolarTo: 133663.257\n    test 1009 hartzell: 53.3206°N, 001.7297°W\n# lazily imported pygeodesy.Triaxial from .triaxials.triaxial5 by ellipsoids.py line 1905\n    test 1010 hartzell: 53.349541°N, 001.7297°W\n    test 1011 height4: 0.0\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by cartesianBase.py line 364\n    test 1012 height4: (3820333.9, -115367.0, 5097204.4, -6584.9)\n    test 1013 height4: 53°19′14.2″N, 001°43′46.9″W\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by cartesianBase.py line 364\n    test 1014 height4: 53°19′14.2″N, 001°43′46.9″W\n    test 1015 haversineTo: 124801.098\n    test 1016 haversineTo: 124801.098\n    test 1017 hubenyTo: <bound method LatLonBase.flatLocalTo of LatLon(53°19′14.16″N, 001°43′46.92″W)>\n    test 1018 hubenyTo: <bound method LatLonBase.flatLocalTo of LatLon(53°11′19.32″N, 000°08′00.24″E)>\n    test 1019 thomasTo: 125206.188\n    test 1020 thomasTo: 125206.188\n    test 1021 vincentysTo: 124801.098\n    test 1022 vincentysTo: 124801.098\n    test 1023 isclockwise: False\n    test 1024 isclockwise*: False\n    test 1025 isclockwise: True\n    test 1026 isclockwise*: True\n    test 1027 isclockwise: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 1028 isclockwise*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 1029 isclockwise: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 1030 isclockwise*: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 1031 isconvex: False\n    test 1032 isconvex*: False\n    test 1033 isconvex: True\n    test 1034 isconvex*: True\n    test 1035 isconvex: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 1036 isconvex*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 1037 isenclosedBy1: True\n    test 1038 isenclosedBy1*: True\n    test 1039 isenclosedBy2: False\n    test 1040 isenclosedBy2*: False\n    test 1041 isenclosedBy3: False\n    test 1042 isenclosedBy3*: False\n    test 1043 isenclosedBy4: False\n    test 1044 isenclosedBy4*: False\n    test 1045 isenclosedBy5: False\n    test 1046 isenclosedBy5*: False\n    test 1047 isenclosedBy6: True\n    test 1048 isenclosedBy6*: True\n    test 1049 isenclosedBy7: True\n    test 1050 isenclosedBy7*: True\n    test 1051 isenclosedBy-CCW: True\n    test 1052 isenclosedBy-CW : True\n    test 1053 isenclosedBy-CCW: True\n    test 1054 initialBearingTo: 102.392291\n    test 1055 compassAngleTo: 100.017\n    test 1056 compassAngleTo: 105.599\n    test 1057 initialBearingTo: 288.676039\n    test 1058 compassAngleTo: 280.017\n    test 1059 compassAngleTo: 285.599\n    test 1060 equirectangularTo: 592.185\n    test 1061 distanceTo: 593.571\n    test 1062 bearingTo: 0.0\n    test 1063 compassAngleTo: 0.0\n    test 1064 bearingTo: 45.2  FAILED, KNOWN, expected 45.0\n    test 1065 compassAngleTo: 45.0\n    test 1066 bearingTo: 90.0\n    test 1067 compassAngleTo: 90.0\n    test 1068 bearingTo: 180.0\n    test 1069 compassAngleTo: 180.0\n    test 1070 bearingTo: 225.2  FAILED, KNOWN, expected 225.0\n    test 1071 compassAngleTo: 225.0\n    test 1072 bearingTo: 314.8  FAILED, KNOWN, expected 315.0\n    test 1073 compassAngleTo: 315.0\n    test 1074 bearingTo: 270.0\n    test 1075 compassAngleTo: 270.0\n    test 1076 bearingTo: 0.0  FAILED, KNOWN, expected 359.4\n    test 1077 compassAngleTo: 359.4\n    test 1078 latlon2: (53.0, 1.0)\n    test 1079 philam2: (0.93, 0.02)\n    test 1080 bearingTo: 31\n    test 1081 compassAngleTo: 31\n    test 1082 compassAngleTo: 45\n\n    test 1083 boundsOf: <class 'pygeodesy.namedTuples.Bounds2Tuple'>\n    test 1084 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 1085 latlon2: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 1086 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 1087 isequalTo: <class 'bool'>\n    test 1088 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 1089 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 1090 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 1091 xyz3: <class 'tuple'>\n    test 1092 xyzh: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 1093 compassAngleTo: <class 'float'>\n    test 1094 cosineLawTo: <class 'float'>\n    test 1095 euclideanTo: <class 'float'>\n    test 1096 flatLocalTo: <class 'float'>\n    test 1097 flatPolarTo: <class 'float'>\n    test 1098 haversineTo: <class 'float'>\n    test 1099 hubenyTo: <class 'float'>\n    test 1100 vincentysTo: <class 'float'>\n    test 1101 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 1102 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 1103 toLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 1104 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 1105 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 1106 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 1107 toNvector: (0.615661, 0.0, 0.788011, 0)\n    test 1108 toVector: (3934960.466675, 0.0, 5002803.345483)\n    test 1109 toVector3d: (0.61823, 0.0, 0.786)\n\n    test 1110 trilaterate5 (pygeodesy.ellipsoidalExact) .min: 305.091\n    test 1111 trilaterate5 (pygeodesy.ellipsoidalExact) .point: 42.66933643°N, 002.48620262°E\n    test 1112 trilaterate5 (pygeodesy.ellipsoidalExact) .max: 1592.545\n    test 1113 trilaterate5 (pygeodesy.ellipsoidalExact) .point: 42.65141232°N, 002.46816989°E\n    test 1114 trilaterate5 (pygeodesy.ellipsoidalExact) .n: 3\n    test 1115 trilaterate5 (pygeodesy.ellipsoidalExact) .min: 127.229\n    test 1116 trilaterate5 (pygeodesy.ellipsoidalExact) .max: 152.612\n    test 1117 trilaterate5 (pygeodesy.ellipsoidalExact) .point: 42.67815375°N, 002.49950041°E\n    test 1118 trilaterate5 (pygeodesy.ellipsoidalExact) .n: 2\n    test 1119 trilaterate5 (pygeodesy.ellipsoidalExact) .min: 2400.293\n    test 1120 trilaterate5 (pygeodesy.ellipsoidalExact) .max: 2400.293\n    test 1121 trilaterate5 (pygeodesy.ellipsoidalExact) .point: 42.66128984°N, 002.47973818°E\n    test 1122 trilaterate5 (pygeodesy.ellipsoidalExact) .min- is .maxPoint: True\n    test 1123 trilaterate5 (pygeodesy.ellipsoidalExact) .n: 1\n    test 1124 trilaterate5 (pygeodesy.ellipsoidalExact) .min: 1343.743\n    test 1125 trilaterate5 (pygeodesy.ellipsoidalExact) .point: 42.69131964°N, 002.50112167°E\n    test 1126 trilaterate5 (pygeodesy.ellipsoidalExact) .max: 1445.554\n    test 1127 trilaterate5 (pygeodesy.ellipsoidalExact) .point: 42.67815375°N, 002.49950041°E\n    test 1128 trilaterate5 (pygeodesy.ellipsoidalExact) .n: 2\n    test 1129 radii11: Radii11Tuple(rA=7244.792747, rB=1828.106695, rC=2.25502, cR=57792.067128, rIn=57.366968, riS=2.087668, roS=2.443334, a=1830.361715, b=7247.047766, c=9072.899442, s=9075.154461)\n\n    27 tests skipped (218): No module named 'numpy': required by vector2d._numpy\n\n    test 1130 radii11: Radii11Tuple(rA=7244.792747, rB=1828.106695, rC=2.25502, cR=57792.067128, rIn=57.366968, riS=2.087668, roS=2.443334, a=1830.361715, b=7247.047766, c=9072.899442, s=9075.154461)\n\n    22 tests skipped (240): No module named 'numpy': required by vector2d._numpy\n\n    test 1131 area cw/ccw: 1.0\n\n    274 of 1131 testLatLon.py tests (24.2%) FAILED, incl. 63 KNOWN plus 211 DeprecationWarnings, 240 skipped (pygeodesy 26.3.26 Python 3.14.3 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 3.850 sec\nrunning /Library/Framewo....n3.14 -W default ~/PyGeodesy/test/testLatLonBase.py\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.F_D from .dms by testLatLonBase.py line 11\n# lazily imported pygeodesy.F_DMS from .dms by testLatLonBase.py line 11\n# lazily imported pygeodesy.isCartesian from .basics by testLatLonBase.py line 11\n# lazily imported pygeodesy.isLatLon from .basics by testLatLonBase.py line 11\n# lazily imported pygeodesy.isNvector from .basics by testLatLonBase.py line 11\n# lazily imported pygeodesy.precision from .dms by testLatLonBase.py line 11\n# lazily imported pygeodesy.ellipsoidalExact by testLatLonBase.py line 140\n# lazily imported pygeodesy.ellipsoidalKarney by testLatLonBase.py line 140\n# lazily imported pygeodesy.ellipsoidalNvector by testLatLonBase.py line 140\n# lazily imported pygeodesy.ellipsoidalVincenty by testLatLonBase.py line 140\n# lazily imported pygeodesy.sphericalNvector by testLatLonBase.py line 140\n# lazily imported pygeodesy.sphericalTrigonometry by testLatLonBase.py line 140\n\n    testing testLatLonBase.py 23.10.15 isLazy=3\n\n    testLatLon(pygeodesy.sphericalNvector, 25.05.27)\n    test 1 lat, lon: 50.06632°N, 005.71475°W\n    test 2 lat, lon: 50.066389°N, 005.714722°W\n# imported pygeodesy.formy into latlonBase.py line 756\n    test 3 isequalTo: True\n    test 4 isequalTo3: True\n    test 5 latlon: (52.205, 0.119)\n    test 6 latlonheight: (52.205, 0.119, 0)\n    test 7 phimlam: (0.911149, 0.002077)\n    test 8 phimlamheight: (0.911149, 0.002077, 0)\n    test 9 isequalTo: False\n    test 10 antipode1: 52.205°S, 179.881°W\n    test 11 antipode2: True\n    test 12 antipode3: 52.205°N, 000.119°E\n    test 13 antipode4: True\n    test 14 antipode5: 52.205°N, 000.119°E\n    test 15 isnormal1: True\n    test 16 isnormal2: False\n    test 17 normal1: False\n    test 18 normal2: True\n    test 19 toStr: 51°28′40″N, 000°00′06″W\n    test 20 toStr: 51.4778°N, 000.0016°W\n    test 21 precision: 0\n    test 22 toStr: 51°28′40″N, 000°00′06″W, +42.00m\n    test 23 isequalTo: True\n    test 24 isequalTo3: False\n    test 25 latlon: (51.4778, -0.0016)\n    test 26 phimlam: (0.898457, -0.000028)\n    test 27 isequalTo: True\n    test 28 isequalTo3: True\n    test 29 latlon: (51.4778, -0.0016)\n    test 30 latlonheight: (51.4778, -0.0016, 42.0)\n    test 31 phimlam: (0.898457, -0.000028)\n    test 32 phimlamheight: (0.898457, -0.000028, 42.0)\n    test 33 latlon: LatLon2Tuple(lat=51.4778, lon=-0.0016)\n    test 34 latlonheight: LatLon3Tuple(lat=51.4778, lon=-0.0016, height=42.0)\n    test 35 phimlam: PhiLam2Tuple(phi=0.898457, lam=-0.000028)\n    test 36 phimlamheight: PhiLam3Tuple(phi=0.898457, lam=-0.000028, height=42.0)\n    test 37 ellipsoidalLatLon: True\n    test 38 sphericalLatLon: True\n# lazily imported pygeodesy.rhumb by ellipsoids.py line 1518\n\n    test 39 rhumbLine: TMorder=6, azi12=30.0, exact=False, lat1=51.4778, lon1=-0.0016, rhumb=Rhumb....ere', a=6371008.771415, f=0, f_=0, b=6371008.771415), k0=0.9996, TMorder=6)\n    test 40 rhumbLine: TMorder=6, azi12=105.484906, exact=False, lat1=51.4778, lon1=-0.0016, rhumb....ere', a=6371008.771415, f=0, f_=0, b=6371008.771415), k0=0.9996, TMorder=6)\n    test 41 rhumbAzimuthTo: 107.563\n    test 42 rhumbDestination: 50.964155°N, 001.853°E\n    test 43 rhumbDestination: True\n    test 44 rhumbDistanceTo: 42186.1\n# lazily imported pygeodesy.elliptic by ellipsoids.py line 850\n    test 45 rhumbIntersecant2: (LatLon(58°40′08.68″N, 042°42′40.63″E), LatLon(18°47′05.09″N, 011°00′15.53″W))\n    test 46 rhumbMidpointo-0.5: 51.069759°N, 001.625988°E\n    test 47 rhumbMidpointo: True\n    test 48 rhumbMidpointo-0.0: 51.127°N, 001.338°E\n    test 49 rhumbMidpointo-0.25: 51.09838°N, 001.482038°E\n    test 50 rhumbMidpointo-0.75: 51.041139°N, 001.769848°E\n    test 51 rhumbMidpointo-1.0: 51.012519°N, 001.913619°E\n    test 52 rhumbMidpointo-2.0: 50.898038°N, 002.48782°E\n\n    testLatLon(pygeodesy.sphericalTrigonometry, 25.08.31)\n    test 53 lat, lon: 50.06632°N, 005.71475°W\n    test 54 lat, lon: 50.066389°N, 005.714722°W\n    test 55 isequalTo: True\n    test 56 isequalTo3: True\n    test 57 latlon: (52.205, 0.119)\n    test 58 latlonheight: (52.205, 0.119, 0)\n    test 59 phimlam: (0.911149, 0.002077)\n    test 60 phimlamheight: (0.911149, 0.002077, 0)\n    test 61 isequalTo: False\n    test 62 antipode1: 52.205°S, 179.881°W\n    test 63 antipode2: True\n    test 64 antipode3: 52.205°N, 000.119°E\n    test 65 antipode4: True\n    test 66 antipode5: 52.205°N, 000.119°E\n    test 67 isnormal1: True\n    test 68 isnormal2: False\n    test 69 normal1: False\n    test 70 normal2: True\n    test 71 toStr: 51°28′40″N, 000°00′06″W\n    test 72 toStr: 51.4778°N, 000.0016°W\n    test 73 precision: 0\n    test 74 toStr: 51°28′40″N, 000°00′06″W, +42.00m\n    test 75 isequalTo: True\n    test 76 isequalTo3: False\n    test 77 latlon: (51.4778, -0.0016)\n    test 78 phimlam: (0.898457, -0.000028)\n    test 79 isequalTo: True\n    test 80 isequalTo3: True\n    test 81 latlon: (51.4778, -0.0016)\n    test 82 latlonheight: (51.4778, -0.0016, 42.0)\n    test 83 phimlam: (0.898457, -0.000028)\n    test 84 phimlamheight: (0.898457, -0.000028, 42.0)\n    test 85 latlon: LatLon2Tuple(lat=51.4778, lon=-0.0016)\n    test 86 latlonheight: LatLon3Tuple(lat=51.4778, lon=-0.0016, height=42.0)\n    test 87 phimlam: PhiLam2Tuple(phi=0.898457, lam=-0.000028)\n    test 88 phimlamheight: PhiLam3Tuple(phi=0.898457, lam=-0.000028, height=42.0)\n    test 89 ellipsoidalLatLon: True\n    test 90 sphericalLatLon: True\n\n    test 91 rhumbLine: TMorder=6, azi12=30.0, exact=False, lat1=51.4778, lon1=-0.0016, rhumb=Rhumb....ere', a=6371008.771415, f=0, f_=0, b=6371008.771415), k0=0.9996, TMorder=6)\n    test 92 rhumbLine: TMorder=6, azi12=105.484906, exact=False, lat1=51.4778, lon1=-0.0016, rhumb....ere', a=6371008.771415, f=0, f_=0, b=6371008.771415), k0=0.9996, TMorder=6)\n    test 93 rhumbAzimuthTo: 107.563\n    test 94 rhumbDestination: 50.964155°N, 001.853°E\n    test 95 rhumbDestination: True\n    test 96 rhumbDistanceTo: 42186.1\n    test 97 rhumbIntersecant2: (LatLon(58°40′08.68″N, 042°42′40.63″E), LatLon(18°47′05.09″N, 011°00′15.53″W))\n    test 98 rhumbMidpointo-0.5: 51.069759°N, 001.625988°E\n    test 99 rhumbMidpointo: True\n    test 100 rhumbMidpointo-0.0: 51.127°N, 001.338°E\n    test 101 rhumbMidpointo-0.25: 51.09838°N, 001.482038°E\n    test 102 rhumbMidpointo-0.75: 51.041139°N, 001.769848°E\n    test 103 rhumbMidpointo-1.0: 51.012519°N, 001.913619°E\n    test 104 rhumbMidpointo-2.0: 50.898038°N, 002.48782°E\n\n    testLatLon(pygeodesy.ellipsoidalNvector, 25.05.12)\n    test 105 lat, lon: 50.06632°N, 005.71475°W\n    test 106 lat, lon: 50.066389°N, 005.714722°W\n    test 107 isequalTo: True\n    test 108 isequalTo3: True\n    test 109 latlon: (52.205, 0.119)\n    test 110 latlonheight: (52.205, 0.119, 0)\n    test 111 phimlam: (0.911149, 0.002077)\n    test 112 phimlamheight: (0.911149, 0.002077, 0)\n    test 113 isequalTo: False\n    test 114 antipode1: 52.205°S, 179.881°W\n    test 115 antipode2: True\n    test 116 antipode3: 52.205°N, 000.119°E\n    test 117 antipode4: True\n    test 118 antipode5: 52.205°N, 000.119°E\n    test 119 isnormal1: True\n    test 120 isnormal2: False\n    test 121 normal1: False\n    test 122 normal2: True\n    test 123 toStr: 51°28′40″N, 000°00′06″W\n    test 124 toStr: 51.4778°N, 000.0016°W\n    test 125 precision: 0\n    test 126 toStr: 51°28′40″N, 000°00′06″W, +42.00m\n    test 127 isequalTo: True\n    test 128 isequalTo3: False\n    test 129 latlon: (51.4778, -0.0016)\n    test 130 phimlam: (0.898457, -0.000028)\n    test 131 isequalTo: True\n    test 132 isequalTo3: True\n    test 133 latlon: (51.4778, -0.0016)\n    test 134 latlonheight: (51.4778, -0.0016, 42.0)\n    test 135 phimlam: (0.898457, -0.000028)\n    test 136 phimlamheight: (0.898457, -0.000028, 42.0)\n    test 137 latlon: LatLon2Tuple(lat=51.4778, lon=-0.0016)\n    test 138 latlonheight: LatLon3Tuple(lat=51.4778, lon=-0.0016, height=42.0)\n    test 139 phimlam: PhiLam2Tuple(phi=0.898457, lam=-0.000028)\n    test 140 phimlamheight: PhiLam3Tuple(phi=0.898457, lam=-0.000028, height=42.0)\n    test 141 ellipsoidalLatLon: True\n    test 142 sphericalLatLon: True\n\n    test 143 rhumbLine: TMorder=6, azi12=30.0, exact=False, lat1=51.4778, lon1=-0.0016, rhumb=Rhumb...., f=0.00335281, f_=298.25722356, b=6356752.31424518), k0=0.9996, TMorder=6)\n    test 144 rhumbLine: TMorder=6, azi12=113.805696, exact=False, lat1=51.4778, lon1=-0.0016, rhumb...., f=0.00335281, f_=298.25722356, b=6356752.31424518), k0=0.9996, TMorder=6)\n    test 145 rhumbAzimuthTo: 116.661\n    test 146 rhumbDestination: 50.964234°N, 001.851383°E\n    test 147 rhumbDestination: True\n    test 148 rhumbDistanceTo: 40413.1\n    test 149 rhumbIntersecant2: (LatLon(58°59′33.52″N, 043°11′56.62″E), LatLon(20°25′12.01″N, 009°12′37.27″W))\n    test 150 rhumbMidpointo-0.5: 51.045501°N, 001.595726°E\n    test 151 rhumbMidpointo: True\n    test 152 rhumbMidpointo-0.0: 51.127°N, 001.338°E\n    test 153 rhumbMidpointo-0.25: 51.08625°N, 001.46692°E\n    test 154 rhumbMidpointo-0.75: 51.00475°N, 001.724419°E\n    test 155 rhumbMidpointo-1.0: 50.964°N, 001.853°E\n    test 156 rhumbMidpointo-2.0: 50.800995°N, 002.366201°E\n\n    testLatLon(pygeodesy.ellipsoidalVincenty, 25.05.26)\n    test 157 lat, lon: 50.06632°N, 005.71475°W\n    test 158 lat, lon: 50.066389°N, 005.714722°W\n    test 159 isequalTo: True\n    test 160 isequalTo3: True\n    test 161 latlon: (52.205, 0.119)\n    test 162 latlonheight: (52.205, 0.119, 0)\n    test 163 phimlam: (0.911149, 0.002077)\n    test 164 phimlamheight: (0.911149, 0.002077, 0)\n    test 165 isequalTo: False\n    test 166 antipode1: 52.205°S, 179.881°W\n    test 167 antipode2: True\n    test 168 antipode3: 52.205°N, 000.119°E\n    test 169 antipode4: True\n    test 170 antipode5: 52.205°N, 000.119°E\n    test 171 isnormal1: True\n    test 172 isnormal2: False\n    test 173 normal1: False\n    test 174 normal2: True\n    test 175 toStr: 51°28′40″N, 000°00′06″W\n    test 176 toStr: 51.4778°N, 000.0016°W\n    test 177 precision: 0\n    test 178 toStr: 51°28′40″N, 000°00′06″W, +42.00m\n    test 179 isequalTo: True\n    test 180 isequalTo3: False\n    test 181 latlon: (51.4778, -0.0016)\n    test 182 phimlam: (0.898457, -0.000028)\n    test 183 isequalTo: True\n    test 184 isequalTo3: True\n    test 185 latlon: (51.4778, -0.0016)\n    test 186 latlonheight: (51.4778, -0.0016, 42.0)\n    test 187 phimlam: (0.898457, -0.000028)\n    test 188 phimlamheight: (0.898457, -0.000028, 42.0)\n    test 189 latlon: LatLon2Tuple(lat=51.4778, lon=-0.0016)\n    test 190 latlonheight: LatLon3Tuple(lat=51.4778, lon=-0.0016, height=42.0)\n    test 191 phimlam: PhiLam2Tuple(phi=0.898457, lam=-0.000028)\n    test 192 phimlamheight: PhiLam3Tuple(phi=0.898457, lam=-0.000028, height=42.0)\n    test 193 ellipsoidalLatLon: True\n    test 194 sphericalLatLon: True\n\n    test 195 rhumbLine: TMorder=6, azi12=30.0, exact=False, lat1=51.4778, lon1=-0.0016, rhumb=Rhumb...., f=0.00335281, f_=298.25722356, b=6356752.31424518), k0=0.9996, TMorder=6)\n    test 196 rhumbLine: TMorder=6, azi12=113.805696, exact=False, lat1=51.4778, lon1=-0.0016, rhumb...., f=0.00335281, f_=298.25722356, b=6356752.31424518), k0=0.9996, TMorder=6)\n    test 197 rhumbAzimuthTo: 116.661\n    test 198 rhumbDestination: 50.964234°N, 001.851383°E\n    test 199 rhumbDestination: True\n    test 200 rhumbDistanceTo: 40413.1\n    test 201 rhumbIntersecant2: (LatLon(58°59′33.52″N, 043°11′56.62″E), LatLon(20°25′12.01″N, 009°12′37.27″W))\n    test 202 rhumbMidpointo-0.5: 51.045501°N, 001.595726°E\n    test 203 rhumbMidpointo: True\n    test 204 rhumbMidpointo-0.0: 51.127°N, 001.338°E\n    test 205 rhumbMidpointo-0.25: 51.08625°N, 001.46692°E\n    test 206 rhumbMidpointo-0.75: 51.00475°N, 001.724419°E\n    test 207 rhumbMidpointo-1.0: 50.964°N, 001.853°E\n    test 208 rhumbMidpointo-2.0: 50.800995°N, 002.366201°E\n\n    testLatLon(pygeodesy.ellipsoidalKarney, 25.05.27)\n    test 209 lat, lon: 50.06632°N, 005.71475°W\n    test 210 lat, lon: 50.066389°N, 005.714722°W\n    test 211 isequalTo: True\n    test 212 isequalTo3: True\n    test 213 latlon: (52.205, 0.119)\n    test 214 latlonheight: (52.205, 0.119, 0)\n    test 215 phimlam: (0.911149, 0.002077)\n    test 216 phimlamheight: (0.911149, 0.002077, 0)\n    test 217 isequalTo: False\n    test 218 antipode1: 52.205°S, 179.881°W\n    test 219 antipode2: True\n    test 220 antipode3: 52.205°N, 000.119°E\n    test 221 antipode4: True\n    test 222 antipode5: 52.205°N, 000.119°E\n    test 223 isnormal1: True\n    test 224 isnormal2: False\n    test 225 normal1: False\n    test 226 normal2: True\n    test 227 toStr: 51°28′40″N, 000°00′06″W\n    test 228 toStr: 51.4778°N, 000.0016°W\n    test 229 precision: 0\n    test 230 toStr: 51°28′40″N, 000°00′06″W, +42.00m\n    test 231 isequalTo: True\n    test 232 isequalTo3: False\n    test 233 latlon: (51.4778, -0.0016)\n    test 234 phimlam: (0.898457, -0.000028)\n    test 235 isequalTo: True\n    test 236 isequalTo3: True\n    test 237 latlon: (51.4778, -0.0016)\n    test 238 latlonheight: (51.4778, -0.0016, 42.0)\n    test 239 phimlam: (0.898457, -0.000028)\n    test 240 phimlamheight: (0.898457, -0.000028, 42.0)\n    test 241 latlon: LatLon2Tuple(lat=51.4778, lon=-0.0016)\n    test 242 latlonheight: LatLon3Tuple(lat=51.4778, lon=-0.0016, height=42.0)\n    test 243 phimlam: PhiLam2Tuple(phi=0.898457, lam=-0.000028)\n    test 244 phimlamheight: PhiLam3Tuple(phi=0.898457, lam=-0.000028, height=42.0)\n    test 245 ellipsoidalLatLon: True\n    test 246 sphericalLatLon: True\n\n    test 247 rhumbLine: TMorder=6, azi12=30.0, exact=False, lat1=51.4778, lon1=-0.0016, rhumb=Rhumb...., f=0.00335281, f_=298.25722356, b=6356752.31424518), k0=0.9996, TMorder=6)\n    test 248 rhumbLine: TMorder=6, azi12=113.805696, exact=False, lat1=51.4778, lon1=-0.0016, rhumb...., f=0.00335281, f_=298.25722356, b=6356752.31424518), k0=0.9996, TMorder=6)\n    test 249 rhumbAzimuthTo: 116.661\n    test 250 rhumbDestination: 50.964234°N, 001.851383°E\n    test 251 rhumbDestination: True\n    test 252 rhumbDistanceTo: 40413.1\n    test 253 rhumbIntersecant2: (LatLon(58°59′33.52″N, 043°11′56.62″E), LatLon(20°25′12.01″N, 009°12′37.27″W))\n    test 254 rhumbMidpointo-0.5: 51.045501°N, 001.595726°E\n    test 255 rhumbMidpointo: True\n    test 256 rhumbMidpointo-0.0: 51.127°N, 001.338°E\n    test 257 rhumbMidpointo-0.25: 51.08625°N, 001.46692°E\n    test 258 rhumbMidpointo-0.75: 51.00475°N, 001.724419°E\n    test 259 rhumbMidpointo-1.0: 50.964°N, 001.853°E\n    test 260 rhumbMidpointo-2.0: 50.800995°N, 002.366201°E\n\n    testLatLon(pygeodesy.ellipsoidalExact, 25.08.28)\n    test 261 lat, lon: 50.06632°N, 005.71475°W\n    test 262 lat, lon: 50.066389°N, 005.714722°W\n    test 263 isequalTo: True\n    test 264 isequalTo3: True\n    test 265 latlon: (52.205, 0.119)\n    test 266 latlonheight: (52.205, 0.119, 0)\n    test 267 phimlam: (0.911149, 0.002077)\n    test 268 phimlamheight: (0.911149, 0.002077, 0)\n    test 269 isequalTo: False\n    test 270 antipode1: 52.205°S, 179.881°W\n    test 271 antipode2: True\n    test 272 antipode3: 52.205°N, 000.119°E\n    test 273 antipode4: True\n    test 274 antipode5: 52.205°N, 000.119°E\n    test 275 isnormal1: True\n    test 276 isnormal2: False\n    test 277 normal1: False\n    test 278 normal2: True\n    test 279 toStr: 51°28′40″N, 000°00′06″W\n    test 280 toStr: 51.4778°N, 000.0016°W\n    test 281 precision: 0\n    test 282 toStr: 51°28′40″N, 000°00′06″W, +42.00m\n    test 283 isequalTo: True\n    test 284 isequalTo3: False\n    test 285 latlon: (51.4778, -0.0016)\n    test 286 phimlam: (0.898457, -0.000028)\n    test 287 isequalTo: True\n    test 288 isequalTo3: True\n    test 289 latlon: (51.4778, -0.0016)\n    test 290 latlonheight: (51.4778, -0.0016, 42.0)\n    test 291 phimlam: (0.898457, -0.000028)\n    test 292 phimlamheight: (0.898457, -0.000028, 42.0)\n    test 293 latlon: LatLon2Tuple(lat=51.4778, lon=-0.0016)\n    test 294 latlonheight: LatLon3Tuple(lat=51.4778, lon=-0.0016, height=42.0)\n    test 295 phimlam: PhiLam2Tuple(phi=0.898457, lam=-0.000028)\n    test 296 phimlamheight: PhiLam3Tuple(phi=0.898457, lam=-0.000028, height=42.0)\n    test 297 ellipsoidalLatLon: True\n    test 298 sphericalLatLon: True\n\n    test 299 rhumbLine: TMorder=6, azi12=30.0, exact=False, lat1=51.4778, lon1=-0.0016, rhumb=Rhumb...., f=0.00335281, f_=298.25722356, b=6356752.31424518), k0=0.9996, TMorder=6)\n    test 300 rhumbLine: TMorder=6, azi12=113.805696, exact=False, lat1=51.4778, lon1=-0.0016, rhumb...., f=0.00335281, f_=298.25722356, b=6356752.31424518), k0=0.9996, TMorder=6)\n    test 301 rhumbAzimuthTo: 116.661\n    test 302 rhumbDestination: 50.964234°N, 001.851383°E\n    test 303 rhumbDestination: True\n    test 304 rhumbDistanceTo: 40413.1\n    test 305 rhumbIntersecant2: (LatLon(58°59′33.52″N, 043°11′56.62″E), LatLon(20°25′12.01″N, 009°12′37.27″W))\n    test 306 rhumbMidpointo-0.5: 51.045501°N, 001.595726°E\n    test 307 rhumbMidpointo: True\n    test 308 rhumbMidpointo-0.0: 51.127°N, 001.338°E\n    test 309 rhumbMidpointo-0.25: 51.08625°N, 001.46692°E\n    test 310 rhumbMidpointo-0.75: 51.00475°N, 001.724419°E\n    test 311 rhumbMidpointo-1.0: 50.964°N, 001.853°E\n    test 312 rhumbMidpointo-2.0: 50.800995°N, 002.366201°E\n\n    testLatLonEllipsoidalBase(pygeodesy.ellipsoidalBase, 25.07.21)\n    test 313 lat, lon: 50.06632°N, 005.71475°W\n    test 314 lat, lon: 50.066389°N, 005.714722°W\n    test 315 isequalTo: True\n    test 316 isequalTo3: True\n    test 317 latlon: (52.205, 0.119)\n    test 318 latlonheight: (52.205, 0.119, 0)\n    test 319 phimlam: (0.911149, 0.002077)\n    test 320 phimlamheight: (0.911149, 0.002077, 0)\n    test 321 isequalTo: False\n    test 322 antipode1: 52.205°S, 179.881°W\n    test 323 antipode2: True\n    test 324 antipode3: 52.205°N, 000.119°E\n    test 325 antipode4: True\n    test 326 antipode5: 52.205°N, 000.119°E\n    test 327 isnormal1: True\n    test 328 isnormal2: False\n    test 329 normal1: False\n    test 330 normal2: True\n    test 331 toStr: 51°28′40″N, 000°00′06″W\n    test 332 toStr: 51.4778°N, 000.0016°W\n    test 333 precision: 0\n    test 334 toStr: 51°28′40″N, 000°00′06″W, +42.00m\n    test 335 isequalTo: True\n    test 336 isequalTo3: False\n    test 337 latlon: (51.4778, -0.0016)\n    test 338 phimlam: (0.898457, -0.000028)\n    test 339 isequalTo: True\n    test 340 isequalTo3: True\n    test 341 latlon: (51.4778, -0.0016)\n    test 342 latlonheight: (51.4778, -0.0016, 42.0)\n    test 343 phimlam: (0.898457, -0.000028)\n    test 344 phimlamheight: (0.898457, -0.000028, 42.0)\n    test 345 latlon: LatLon2Tuple(lat=51.4778, lon=-0.0016)\n    test 346 latlonheight: LatLon3Tuple(lat=51.4778, lon=-0.0016, height=42.0)\n    test 347 phimlam: PhiLam2Tuple(phi=0.898457, lam=-0.000028)\n    test 348 phimlamheight: PhiLam3Tuple(phi=0.898457, lam=-0.000028, height=42.0)\n    test 349 ellipsoidalLatLon: True\n    test 350 sphericalLatLon: True\n\n    test 351 rhumbLine: TMorder=6, azi12=30.0, exact=False, lat1=51.4778, lon1=-0.0016, rhumb=Rhumb...., f=0.00335281, f_=298.25722356, b=6356752.31424518), k0=0.9996, TMorder=6)\n    test 352 rhumbLine: TMorder=6, azi12=113.805696, exact=False, lat1=51.4778, lon1=-0.0016, rhumb...., f=0.00335281, f_=298.25722356, b=6356752.31424518), k0=0.9996, TMorder=6)\n    test 353 rhumbAzimuthTo: 116.661\n    test 354 rhumbDestination: 50.964234°N, 001.851383°E\n    test 355 rhumbDestination: True\n    test 356 rhumbDistanceTo: 40413.1\n    test 357 rhumbIntersecant2: (LatLonEllipsoidalBase(58°59′33.52″N, 043°11′56.62″E), LatLonEllipsoidalBase(20°25′12.01″N, 009°12′37.27″W))\n    test 358 rhumbMidpointo-0.5: 51.045501°N, 001.595726°E\n    test 359 rhumbMidpointo: True\n    test 360 rhumbMidpointo-0.0: 51.127°N, 001.338°E\n    test 361 rhumbMidpointo-0.25: 51.08625°N, 001.46692°E\n    test 362 rhumbMidpointo-0.75: 51.00475°N, 001.724419°E\n    test 363 rhumbMidpointo-1.0: 50.964°N, 001.853°E\n    test 364 rhumbMidpointo-2.0: 50.800995°N, 002.366201°E\n\n    testLatLonEllipsoidalBaseDI(pygeodesy.ellipsoidalBaseDI, 25.05.23)\n    test 365 lat, lon: 50.06632°N, 005.71475°W\n    test 366 lat, lon: 50.066389°N, 005.714722°W\n    test 367 isequalTo: True\n    test 368 isequalTo3: True\n    test 369 latlon: (52.205, 0.119)\n    test 370 latlonheight: (52.205, 0.119, 0)\n    test 371 phimlam: (0.911149, 0.002077)\n    test 372 phimlamheight: (0.911149, 0.002077, 0)\n    test 373 isequalTo: False\n    test 374 antipode1: 52.205°S, 179.881°W\n    test 375 antipode2: True\n    test 376 antipode3: 52.205°N, 000.119°E\n    test 377 antipode4: True\n    test 378 antipode5: 52.205°N, 000.119°E\n    test 379 isnormal1: True\n    test 380 isnormal2: False\n    test 381 normal1: False\n    test 382 normal2: True\n    test 383 toStr: 51°28′40″N, 000°00′06″W\n    test 384 toStr: 51.4778°N, 000.0016°W\n    test 385 precision: 0\n    test 386 toStr: 51°28′40″N, 000°00′06″W, +42.00m\n    test 387 isequalTo: True\n    test 388 isequalTo3: False\n    test 389 latlon: (51.4778, -0.0016)\n    test 390 phimlam: (0.898457, -0.000028)\n    test 391 isequalTo: True\n    test 392 isequalTo3: True\n    test 393 latlon: (51.4778, -0.0016)\n    test 394 latlonheight: (51.4778, -0.0016, 42.0)\n    test 395 phimlam: (0.898457, -0.000028)\n    test 396 phimlamheight: (0.898457, -0.000028, 42.0)\n    test 397 latlon: LatLon2Tuple(lat=51.4778, lon=-0.0016)\n    test 398 latlonheight: LatLon3Tuple(lat=51.4778, lon=-0.0016, height=42.0)\n    test 399 phimlam: PhiLam2Tuple(phi=0.898457, lam=-0.000028)\n    test 400 phimlamheight: PhiLam3Tuple(phi=0.898457, lam=-0.000028, height=42.0)\n    test 401 ellipsoidalLatLon: True\n    test 402 sphericalLatLon: True\n\n    test 403 rhumbLine: TMorder=6, azi12=30.0, exact=False, lat1=51.4778, lon1=-0.0016, rhumb=Rhumb...., f=0.00335281, f_=298.25722356, b=6356752.31424518), k0=0.9996, TMorder=6)\n    test 404 rhumbLine: TMorder=6, azi12=113.805696, exact=False, lat1=51.4778, lon1=-0.0016, rhumb...., f=0.00335281, f_=298.25722356, b=6356752.31424518), k0=0.9996, TMorder=6)\n    test 405 rhumbAzimuthTo: 116.661\n    test 406 rhumbDestination: 50.964234°N, 001.851383°E\n    test 407 rhumbDestination: True\n    test 408 rhumbDistanceTo: 40413.1\n    test 409 rhumbIntersecant2: (LatLonEllipsoidalBaseDI(58°59′33.52″N, 043°11′56.62″E), LatLonEllipsoidalBaseDI(20°25′12.01″N, 009°12′37.27″W))\n    test 410 rhumbMidpointo-0.5: 51.045501°N, 001.595726°E\n    test 411 rhumbMidpointo: True\n    test 412 rhumbMidpointo-0.0: 51.127°N, 001.338°E\n    test 413 rhumbMidpointo-0.25: 51.08625°N, 001.46692°E\n    test 414 rhumbMidpointo-0.75: 51.00475°N, 001.724419°E\n    test 415 rhumbMidpointo-1.0: 50.964°N, 001.853°E\n    test 416 rhumbMidpointo-2.0: 50.800995°N, 002.366201°E\n\n    testLatLonBase(pygeodesy.latlonBase, 25.08.18)\n    test 417 lat, lon: 50.06632°N, 005.71475°W\n    test 418 lat, lon: 50.066389°N, 005.714722°W\n    test 419 isequalTo: True\n    test 420 isequalTo3: True\n    test 421 latlon: (52.205, 0.119)\n    test 422 latlonheight: (52.205, 0.119, 0)\n    test 423 phimlam: (0.911149, 0.002077)\n    test 424 phimlamheight: (0.911149, 0.002077, 0)\n    test 425 isequalTo: False\n    test 426 antipode1: 52.205°S, 179.881°W\n    test 427 antipode2: True\n    test 428 antipode3: 52.205°N, 000.119°E\n    test 429 antipode4: True\n    test 430 antipode5: 52.205°N, 000.119°E\n    test 431 isnormal1: True\n    test 432 isnormal2: False\n    test 433 normal1: False\n    test 434 normal2: True\n    test 435 toStr: 51°28′40″N, 000°00′06″W\n    test 436 toStr: 51.4778°N, 000.0016°W\n    test 437 precision: 0\n    test 438 toStr: 51°28′40″N, 000°00′06″W, +42.00m\n    test 439 isequalTo: True\n    test 440 isequalTo3: False\n    test 441 latlon: (51.4778, -0.0016)\n    test 442 phimlam: (0.898457, -0.000028)\n    test 443 isequalTo: True\n    test 444 isequalTo3: True\n    test 445 latlon: (51.4778, -0.0016)\n    test 446 latlonheight: (51.4778, -0.0016, 42.0)\n    test 447 phimlam: (0.898457, -0.000028)\n    test 448 phimlamheight: (0.898457, -0.000028, 42.0)\n    test 449 latlon: LatLon2Tuple(lat=51.4778, lon=-0.0016)\n    test 450 latlonheight: LatLon3Tuple(lat=51.4778, lon=-0.0016, height=42.0)\n    test 451 phimlam: PhiLam2Tuple(phi=0.898457, lam=-0.000028)\n    test 452 phimlamheight: PhiLam3Tuple(phi=0.898457, lam=-0.000028, height=42.0)\n    test 453 ellipsoidalLatLon: True\n    test 454 sphericalLatLon: True\n    test 455 isCartesian(LatLonBase, None): None\n    test 456 isCartesian(LatLonBase, True): None\n    test 457 isCartesian(LatLonBase, False): None\n    test 458 isLatLon(LatLonBase, None): <class 'pygeodesy.latlonBase.LatLonBase'>\n    test 459 isLatLon(LatLonBase, True): False\n    test 460 isLatLon(LatLonBase, False): False\n    test 461 isNvector(LatLonBase, None): None\n    test 462 isNvector(LatLonBase, True): None\n    test 463 isNvector(LatLonBase, False): None\n\n    testLatLonNvectorBase(pygeodesy.nvectorBase, 25.08.18)\n    test 464 lat, lon: 50.06632°N, 005.71475°W\n    test 465 lat, lon: 50.066389°N, 005.714722°W\n    test 466 isequalTo: True\n    test 467 isequalTo3: True\n    test 468 latlon: (52.205, 0.119)\n    test 469 latlonheight: (52.205, 0.119, 0)\n    test 470 phimlam: (0.911149, 0.002077)\n    test 471 phimlamheight: (0.911149, 0.002077, 0)\n    test 472 isequalTo: False\n    test 473 antipode1: 52.205°S, 179.881°W\n    test 474 antipode2: True\n    test 475 antipode3: 52.205°N, 000.119°E\n    test 476 antipode4: True\n    test 477 antipode5: 52.205°N, 000.119°E\n    test 478 isnormal1: True\n    test 479 isnormal2: False\n    test 480 normal1: False\n    test 481 normal2: True\n    test 482 toStr: 51°28′40″N, 000°00′06″W\n    test 483 toStr: 51.4778°N, 000.0016°W\n    test 484 precision: 0\n    test 485 toStr: 51°28′40″N, 000°00′06″W, +42.00m\n    test 486 isequalTo: True\n    test 487 isequalTo3: False\n    test 488 latlon: (51.4778, -0.0016)\n    test 489 phimlam: (0.898457, -0.000028)\n    test 490 isequalTo: True\n    test 491 isequalTo3: True\n    test 492 latlon: (51.4778, -0.0016)\n    test 493 latlonheight: (51.4778, -0.0016, 42.0)\n    test 494 phimlam: (0.898457, -0.000028)\n    test 495 phimlamheight: (0.898457, -0.000028, 42.0)\n    test 496 latlon: LatLon2Tuple(lat=51.4778, lon=-0.0016)\n    test 497 latlonheight: LatLon3Tuple(lat=51.4778, lon=-0.0016, height=42.0)\n    test 498 phimlam: PhiLam2Tuple(phi=0.898457, lam=-0.000028)\n    test 499 phimlamheight: PhiLam3Tuple(phi=0.898457, lam=-0.000028, height=42.0)\n    test 500 ellipsoidalLatLon: True\n    test 501 sphericalLatLon: True\n    test 502 isCartesian(LatLonNvectorBase, None): None\n    test 503 isCartesian(LatLonNvectorBase, True): None\n    test 504 isCartesian(LatLonNvectorBase, False): None\n    test 505 isLatLon(LatLonNvectorBase, None): <class 'pygeodesy.nvectorBase.LatLonNvectorBase'>\n    test 506 isLatLon(LatLonNvectorBase, True): False\n    test 507 isLatLon(LatLonNvectorBase, False): False\n    test 508 isNvector(LatLonNvectorBase, None): None\n    test 509 isNvector(LatLonNvectorBase, True): None\n    test 510 isNvector(LatLonNvectorBase, False): None\n\n    testLatLonSphericalBase(pygeodesy.sphericalBase, 25.05.26)\n    test 511 lat, lon: 50.06632°N, 005.71475°W\n    test 512 lat, lon: 50.066389°N, 005.714722°W\n    test 513 isequalTo: True\n    test 514 isequalTo3: True\n    test 515 latlon: (52.205, 0.119)\n    test 516 latlonheight: (52.205, 0.119, 0)\n    test 517 phimlam: (0.911149, 0.002077)\n    test 518 phimlamheight: (0.911149, 0.002077, 0)\n    test 519 isequalTo: False\n    test 520 antipode1: 52.205°S, 179.881°W\n    test 521 antipode2: True\n    test 522 antipode3: 52.205°N, 000.119°E\n    test 523 antipode4: True\n    test 524 antipode5: 52.205°N, 000.119°E\n    test 525 isnormal1: True\n    test 526 isnormal2: False\n    test 527 normal1: False\n    test 528 normal2: True\n    test 529 toStr: 51°28′40″N, 000°00′06″W\n    test 530 toStr: 51.4778°N, 000.0016°W\n    test 531 precision: 0\n    test 532 toStr: 51°28′40″N, 000°00′06″W, +42.00m\n    test 533 isequalTo: True\n    test 534 isequalTo3: False\n    test 535 latlon: (51.4778, -0.0016)\n    test 536 phimlam: (0.898457, -0.000028)\n    test 537 isequalTo: True\n    test 538 isequalTo3: True\n    test 539 latlon: (51.4778, -0.0016)\n    test 540 latlonheight: (51.4778, -0.0016, 42.0)\n    test 541 phimlam: (0.898457, -0.000028)\n    test 542 phimlamheight: (0.898457, -0.000028, 42.0)\n    test 543 latlon: LatLon2Tuple(lat=51.4778, lon=-0.0016)\n    test 544 latlonheight: LatLon3Tuple(lat=51.4778, lon=-0.0016, height=42.0)\n    test 545 phimlam: PhiLam2Tuple(phi=0.898457, lam=-0.000028)\n    test 546 phimlamheight: PhiLam3Tuple(phi=0.898457, lam=-0.000028, height=42.0)\n    test 547 ellipsoidalLatLon: True\n    test 548 sphericalLatLon: True\n\n    test 549 rhumbLine: TMorder=6, azi12=30.0, exact=False, lat1=51.4778, lon1=-0.0016, rhumb=Rhumb....ere', a=6371008.771415, f=0, f_=0, b=6371008.771415), k0=0.9996, TMorder=6)\n    test 550 rhumbLine: TMorder=6, azi12=105.484906, exact=False, lat1=51.4778, lon1=-0.0016, rhumb....ere', a=6371008.771415, f=0, f_=0, b=6371008.771415), k0=0.9996, TMorder=6)\n    test 551 rhumbAzimuthTo: 107.563\n    test 552 rhumbDestination: 50.964155°N, 001.853°E\n    test 553 rhumbDestination: True\n    test 554 rhumbDistanceTo: 42186.1\n    test 555 rhumbIntersecant2: (LatLonSphericalBase(58°40′08.68″N, 042°42′40.63″E), LatLonSphericalBase(18°47′05.09″N, 011°00′15.53″W))\n    test 556 rhumbMidpointo-0.5: 51.069759°N, 001.625988°E\n    test 557 rhumbMidpointo: True\n    test 558 rhumbMidpointo-0.0: 51.127°N, 001.338°E\n    test 559 rhumbMidpointo-0.25: 51.09838°N, 001.482038°E\n    test 560 rhumbMidpointo-0.75: 51.041139°N, 001.769848°E\n    test 561 rhumbMidpointo-1.0: 51.012519°N, 001.913619°E\n    test 562 rhumbMidpointo-2.0: 50.898038°N, 002.48782°E\n\n    all 562 testLatLonBase.py tests passed (pygeodesy 26.3.26 Python 3.14.3 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 327.025 ms\nrunning /Library/Framewo....n3.14 -W default ~/PyGeodesy/test/testLazily.py\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n\n    testing testLazily.py 25.12.06 isLazy=3\n\n    test 1 isLazy: 3\n\n    test 2 cmd: /Library/Frameworks/Python.framework/Versions/3.14/bin/python3.14 -c 'import sys; import pygeodesy; sys.exit(0 if pygeodesy.isLazy == %s else 1)'\n    test 3 PYGEODESY_LAZY_IMPORT=0: 0\n    test 4 PYGEODESY_LAZY_IMPORT=1: 0\n    test 5 PYGEODESY_LAZY_IMPORT=2: 0\n    test 6 PYGEODESY_LAZY_IMPORT=3: 0\n    test 7 PYGEODESY_LAZY_IMPORT=4: 0\n\n    test 8 items: _ALL_MODS\n    test 9 pygeodesy: <module 'pygeodesy' from './pygeodesy/__init__.py'>\n    test 10 pygeodesy.basics: <module 'pygeodesy.basics' from './pygeodesy/basics.py'>\n    test 11 pygeodesy.constants: <module 'pygeodesy.constants' from './pygeodesy/constants.py'>\n    test 12 pygeodesy.dms: <module 'pygeodesy.dms' from './pygeodesy/dms.py'>\n    test 13 pygeodesy.errors: <module 'pygeodesy.errors' from './pygeodesy/errors.py'>\n    test 14 pygeodesy.fmath: <module 'pygeodesy.fmath' from './pygeodesy/fmath.py'>\n    test 15 pygeodesy.fsums: <module 'pygeodesy.fsums' from './pygeodesy/fsums.py'>\n    test 16 pygeodesy.internals: <module 'pygeodesy.internals' from './pygeodesy/internals.py'>\n    test 17 pygeodesy.interns: <module 'pygeodesy.interns' from './pygeodesy/interns.py'>\n    test 18 pygeodesy.iters: <module 'pygeodesy.iters' from './pygeodesy/iters.py'>\n    test 19 pygeodesy.karney: <module 'pygeodesy.karney' from './pygeodesy/karney.py'>\n    test 20 pygeodesy.lazily: <module 'pygeodesy.lazily' from './pygeodesy/lazily.py'>\n    test 21 pygeodesy.named: <module 'pygeodesy.named' from './pygeodesy/named.py'>\n    test 22 pygeodesy.namedTuples: <module 'pygeodesy.namedTuples' from './pygeodesy/namedTuples.py'>\n    test 23 pygeodesy.props: <module 'pygeodesy.props' from './pygeodesy/props.py'>\n    test 24 pygeodesy.streprs: <module 'pygeodesy.streprs' from './pygeodesy/streprs.py'>\n    test 25 pygeodesy.units: <module 'pygeodesy.units' from './pygeodesy/units.py'>\n    test 26 pygeodesy.unitsBase: <module 'pygeodesy.unitsBase' from './pygeodesy/unitsBase.py'>\n    test 27 pygeodesy.utily: <module 'pygeodesy.utily' from './pygeodesy/utily.py'>\n\n    all 27 testLazily.py tests passed (pygeodesy 26.3.26 Python 3.14.3 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 142.746 ms\nrunning /Library/Framewo....n3.14 -W default ~/PyGeodesy/test/testLcc.py\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.F_D from .dms by testLcc.py line 11\n# lazily imported pygeodesy.F_DMS from .dms by testLcc.py line 11\n# lazily imported pygeodesy.Conic from .lcc by testLcc.py line 11\n# lazily imported pygeodesy.Conics from .lcc by testLcc.py line 11\n# lazily imported pygeodesy.Datums from .datums by testLcc.py line 11\n# lazily imported pygeodesy.Lcc from .lcc by testLcc.py line 11\n# lazily imported pygeodesy.toLcc from .lcc by testLcc.py line 11\n# lazily imported pygeodesy.ellipsoidalNvector by testLcc.py line 92\n# lazily imported pygeodesy.ellipsoidalVincenty by testLcc.py line 92\n\n    testing testLcc.py 23.03.27 (module pygeodesy.lcc 25.08.31) isLazy=3\n\n    testLcc(pygeodesy.ellipsoidalNvector, 25.05.12)\n    test 1 lb1: 448251.0 5411932.0001\n    test 2 lb1: 448251, 5411932\n    test 3 lb1: [E:448251, N:5411932]\n    test 4 lb1: WRF_Lb.WGS84\n    test 5 lb1: lb1\n    test 6 lb1: (81.929348, -79.558697)\n    test 7 lb1: (1.429937, -1.388561)\n    test 8 LatLon: 46.5°N, 003.0°E\n    test 9 LatLon: 46°30′00.0″N, 003°00′00.0″E\n    test 10 toLcc1: 700000 6600000\n    test 11 toLcc1: 46.5°N, 003.0°E\n    test 12 lb2: 1894411 1564650\n    test 13 lb2: Clarke1866\n    test 14 lb2: lb2\n    test 15 toLatLon2: 35.0°N, 075.0°W\n    test 16 toLatLon2: 35°00′00.0007″N, 074°59′59.9997″W\n    test 17 toLatLon2: NAD27\n    test 18 toLcc2: 1894410.9 1564649.5\n    test 19 toLcc2: [E:1894411, N:1564649]\n    test 20 toLcc2: Snyder.NAD27\n\n    test 21 Be08Lb: 49.833334°N, 003.025883°E\n    test 22 Be08Lb: GRS80\n\n    test 23 Be08Lb: 49.833334°N, 004.359216°E\n    test 24 Be08Lb: GRS80\n\n    test 25 Be08Lb: 49.833334°N, 005.692549°E\n    test 26 Be08Lb: GRS80\n\n    test 27 Be08Lb: 51.166667°N, 003.025883°E\n    test 28 Be08Lb: GRS80\n\n    test 29 Be08Lb: 51.166667°N, 004.359216°E\n    test 30 Be08Lb: GRS80\n\n    test 31 Be08Lb: 51.166667°N, 005.692549°E\n    test 32 Be08Lb: GRS80\n\n    test 33 Be72Lb: 49.833334°N, 003.034153°E\n    test 34 Be72Lb: NAD83\n\n    test 35 Be72Lb: 49.833334°N, 004.367487°E\n    test 36 Be72Lb: NAD83\n\n    test 37 Be72Lb: 49.833334°N, 005.70082°E\n    test 38 Be72Lb: NAD83\n\n    test 39 Be72Lb: 51.166667°N, 003.034153°E\n    test 40 Be72Lb: NAD83\n\n    test 41 Be72Lb: 51.166667°N, 004.367487°E\n    test 42 Be72Lb: NAD83\n\n    test 43 Be72Lb: 51.166667°N, 005.70082°E\n    test 44 Be72Lb: NAD83\n\n    test 45 Fr93Lb: 49.0°N, 002.0°W\n    test 46 Fr93Lb: WGS84\n\n    test 47 Fr93Lb: 49.0°N, 003.0°E\n    test 48 Fr93Lb: WGS84\n\n    test 49 Fr93Lb: 49.0°N, 008.0°E\n    test 50 Fr93Lb: WGS84\n\n    test 51 Fr93Lb: 44.0°N, 002.0°W\n    test 52 Fr93Lb: WGS84\n\n    test 53 Fr93Lb: 44.0°N, 003.0°E\n    test 54 Fr93Lb: WGS84\n\n    test 55 Fr93Lb: 44.0°N, 008.0°E\n    test 56 Fr93Lb: WGS84\n\n    test 57 MaNLb: 31.73°N, 008.54°W\n    test 58 MaNLb: NTF\n\n    test 59 MaNLb: 31.73°N, 005.4°W\n    test 60 MaNLb: NTF\n\n    test 61 MaNLb: 31.73°N, 002.26°W\n    test 62 MaNLb: NTF\n\n    test 63 MaNLb: 34.87°N, 008.54°W\n    test 64 MaNLb: NTF\n\n    test 65 MaNLb: 34.87°N, 005.4°W\n    test 66 MaNLb: NTF\n\n    test 67 MaNLb: 34.87°N, 002.26°W\n    test 68 MaNLb: NTF\n\n    test 69 MxLb: 17.5°N, 114.0°W\n    test 70 MxLb: WGS84\n\n    test 71 MxLb: 17.5°N, 102.0°W\n    test 72 MxLb: WGS84\n\n    test 73 MxLb: 17.5°N, 090.0°W\n    test 74 MxLb: WGS84\n\n    test 75 MxLb: 29.5°N, 114.0°W\n    test 76 MxLb: WGS84\n\n    test 77 MxLb: 29.5°N, 102.0°W\n    test 78 MxLb: WGS84\n\n    test 79 MxLb: 29.5°N, 090.0°W\n    test 80 MxLb: WGS84\n\n    test 81 PyT_Lb: 45.898939°N, 000.540154°E\n    test 82 PyT_Lb: NTF\n\n    test 83 PyT_Lb: 45.898939°N, 002.337229°E\n    test 84 PyT_Lb: NTF\n\n    test 85 PyT_Lb: 45.898939°N, 004.134305°E\n    test 86 PyT_Lb: NTF\n\n    test 87 PyT_Lb: 47.696014°N, 000.540154°E\n    test 88 PyT_Lb: NTF\n\n    test 89 PyT_Lb: 47.696014°N, 002.337229°E\n    test 90 PyT_Lb: NTF\n\n    test 91 PyT_Lb: 47.696014°N, 004.134305°E\n    test 92 PyT_Lb: NTF\n\n    test 93 Snyder: 33.0°N, 108.0°W\n    test 94 Snyder: NAD27\n\n    test 95 Snyder: 33.0°N, 096.0°W\n    test 96 Snyder: NAD27\n\n    test 97 Snyder: 33.0°N, 084.0°W\n    test 98 Snyder: NAD27\n\n    test 99 Snyder: 45.0°N, 108.0°W\n    test 100 Snyder: NAD27\n\n    test 101 Snyder: 45.0°N, 096.0°W\n    test 102 Snyder: NAD27\n\n    test 103 Snyder: 45.0°N, 084.0°W\n    test 104 Snyder: NAD27\n\n    test 105 USA_Lb: 33.0°N, 108.0°W\n    test 106 USA_Lb: WGS84\n\n    test 107 USA_Lb: 33.0°N, 096.0°W\n    test 108 USA_Lb: WGS84\n\n    test 109 USA_Lb: 33.0°N, 084.0°W\n    test 110 USA_Lb: WGS84\n\n    test 111 USA_Lb: 45.0°N, 108.0°W\n    test 112 USA_Lb: WGS84\n\n    test 113 USA_Lb: 45.0°N, 096.0°W\n    test 114 USA_Lb: WGS84\n\n    test 115 USA_Lb: 45.0°N, 084.0°W\n    test 116 USA_Lb: WGS84\n\n    test 117 WRF_Lb: 33.0°N, 109.0°W\n    test 118 WRF_Lb: WGS84\n\n    test 119 WRF_Lb: 33.0°N, 097.0°W\n    test 120 WRF_Lb: WGS84\n\n    test 121 WRF_Lb: 33.0°N, 085.0°W\n    test 122 WRF_Lb: WGS84\n\n    test 123 WRF_Lb: 45.0°N, 109.0°W\n    test 124 WRF_Lb: WGS84\n\n    test 125 WRF_Lb: 45.0°N, 097.0°W\n    test 126 WRF_Lb: WGS84\n\n    test 127 WRF_Lb: 45.0°N, 085.0°W\n    test 128 WRF_Lb: WGS84\n\n\n    testLcc(pygeodesy.ellipsoidalVincenty, 25.05.26)\n    test 129 lb1: 448251.0 5411932.0001\n    test 130 lb1: 448251, 5411932\n    test 131 lb1: [E:448251, N:5411932]\n    test 132 lb1: WRF_Lb.WGS84\n    test 133 lb1: lb1\n    test 134 lb1: (81.929348, -79.558697)\n    test 135 lb1: (1.429937, -1.388561)\n    test 136 LatLon: 46.5°N, 003.0°E\n    test 137 LatLon: 46°30′00.0″N, 003°00′00.0″E\n    test 138 toLcc1: 700000 6600000\n    test 139 toLcc1: 46.5°N, 003.0°E\n    test 140 lb2: 1894411 1564650\n    test 141 lb2: Clarke1866\n    test 142 lb2: lb2\n    test 143 toLatLon2: 35.0°N, 075.0°W\n    test 144 toLatLon2: 35°00′00.0007″N, 074°59′59.9997″W\n    test 145 toLatLon2: NAD27\n    test 146 toLcc2: 1894410.9 1564649.5\n    test 147 toLcc2: [E:1894411, N:1564649]\n    test 148 toLcc2: Snyder.NAD27\n\n    test 149 Be08Lb: 49.833334°N, 003.025883°E\n    test 150 Be08Lb: GRS80\n\n    test 151 Be08Lb: 49.833334°N, 004.359216°E\n    test 152 Be08Lb: GRS80\n\n    test 153 Be08Lb: 49.833334°N, 005.692549°E\n    test 154 Be08Lb: GRS80\n\n    test 155 Be08Lb: 51.166667°N, 003.025883°E\n    test 156 Be08Lb: GRS80\n\n    test 157 Be08Lb: 51.166667°N, 004.359216°E\n    test 158 Be08Lb: GRS80\n\n    test 159 Be08Lb: 51.166667°N, 005.692549°E\n    test 160 Be08Lb: GRS80\n\n    test 161 Be72Lb: 49.833334°N, 003.034153°E\n    test 162 Be72Lb: NAD83\n\n    test 163 Be72Lb: 49.833334°N, 004.367487°E\n    test 164 Be72Lb: NAD83\n\n    test 165 Be72Lb: 49.833334°N, 005.70082°E\n    test 166 Be72Lb: NAD83\n\n    test 167 Be72Lb: 51.166667°N, 003.034153°E\n    test 168 Be72Lb: NAD83\n\n    test 169 Be72Lb: 51.166667°N, 004.367487°E\n    test 170 Be72Lb: NAD83\n\n    test 171 Be72Lb: 51.166667°N, 005.70082°E\n    test 172 Be72Lb: NAD83\n\n    test 173 Fr93Lb: 49.0°N, 002.0°W\n    test 174 Fr93Lb: WGS84\n\n    test 175 Fr93Lb: 49.0°N, 003.0°E\n    test 176 Fr93Lb: WGS84\n\n    test 177 Fr93Lb: 49.0°N, 008.0°E\n    test 178 Fr93Lb: WGS84\n\n    test 179 Fr93Lb: 44.0°N, 002.0°W\n    test 180 Fr93Lb: WGS84\n\n    test 181 Fr93Lb: 44.0°N, 003.0°E\n    test 182 Fr93Lb: WGS84\n\n    test 183 Fr93Lb: 44.0°N, 008.0°E\n    test 184 Fr93Lb: WGS84\n\n    test 185 MaNLb: 31.73°N, 008.54°W\n    test 186 MaNLb: NTF\n\n    test 187 MaNLb: 31.73°N, 005.4°W\n    test 188 MaNLb: NTF\n\n    test 189 MaNLb: 31.73°N, 002.26°W\n    test 190 MaNLb: NTF\n\n    test 191 MaNLb: 34.87°N, 008.54°W\n    test 192 MaNLb: NTF\n\n    test 193 MaNLb: 34.87°N, 005.4°W\n    test 194 MaNLb: NTF\n\n    test 195 MaNLb: 34.87°N, 002.26°W\n    test 196 MaNLb: NTF\n\n    test 197 MxLb: 17.5°N, 114.0°W\n    test 198 MxLb: WGS84\n\n    test 199 MxLb: 17.5°N, 102.0°W\n    test 200 MxLb: WGS84\n\n    test 201 MxLb: 17.5°N, 090.0°W\n    test 202 MxLb: WGS84\n\n    test 203 MxLb: 29.5°N, 114.0°W\n    test 204 MxLb: WGS84\n\n    test 205 MxLb: 29.5°N, 102.0°W\n    test 206 MxLb: WGS84\n\n    test 207 MxLb: 29.5°N, 090.0°W\n    test 208 MxLb: WGS84\n\n    test 209 PyT_Lb: 45.898939°N, 000.540154°E\n    test 210 PyT_Lb: NTF\n\n    test 211 PyT_Lb: 45.898939°N, 002.337229°E\n    test 212 PyT_Lb: NTF\n\n    test 213 PyT_Lb: 45.898939°N, 004.134305°E\n    test 214 PyT_Lb: NTF\n\n    test 215 PyT_Lb: 47.696014°N, 000.540154°E\n    test 216 PyT_Lb: NTF\n\n    test 217 PyT_Lb: 47.696014°N, 002.337229°E\n    test 218 PyT_Lb: NTF\n\n    test 219 PyT_Lb: 47.696014°N, 004.134305°E\n    test 220 PyT_Lb: NTF\n\n    test 221 Snyder: 33.0°N, 108.0°W\n    test 222 Snyder: NAD27\n\n    test 223 Snyder: 33.0°N, 096.0°W\n    test 224 Snyder: NAD27\n\n    test 225 Snyder: 33.0°N, 084.0°W\n    test 226 Snyder: NAD27\n\n    test 227 Snyder: 45.0°N, 108.0°W\n    test 228 Snyder: NAD27\n\n    test 229 Snyder: 45.0°N, 096.0°W\n    test 230 Snyder: NAD27\n\n    test 231 Snyder: 45.0°N, 084.0°W\n    test 232 Snyder: NAD27\n\n    test 233 USA_Lb: 33.0°N, 108.0°W\n    test 234 USA_Lb: WGS84\n\n    test 235 USA_Lb: 33.0°N, 096.0°W\n    test 236 USA_Lb: WGS84\n\n    test 237 USA_Lb: 33.0°N, 084.0°W\n    test 238 USA_Lb: WGS84\n\n    test 239 USA_Lb: 45.0°N, 108.0°W\n    test 240 USA_Lb: WGS84\n\n    test 241 USA_Lb: 45.0°N, 096.0°W\n    test 242 USA_Lb: WGS84\n\n    test 243 USA_Lb: 45.0°N, 084.0°W\n    test 244 USA_Lb: WGS84\n\n    test 245 WRF_Lb: 33.0°N, 109.0°W\n    test 246 WRF_Lb: WGS84\n\n    test 247 WRF_Lb: 33.0°N, 097.0°W\n    test 248 WRF_Lb: WGS84\n\n    test 249 WRF_Lb: 33.0°N, 085.0°W\n    test 250 WRF_Lb: WGS84\n\n    test 251 WRF_Lb: 45.0°N, 109.0°W\n    test 252 WRF_Lb: WGS84\n\n    test 253 WRF_Lb: 45.0°N, 097.0°W\n    test 254 WRF_Lb: WGS84\n\n    test 255 WRF_Lb: 45.0°N, 085.0°W\n    test 256 WRF_Lb: WGS84\n\n\n    testConic(pygeodesy.ellipsoidalNvector, 25.05.12)\n    test 257 SnyderN: name='SnyderN', lat0=23, lon0=-96, par1=33, par2=45, E0=0, N0=0, k0=1, SP=2, datum=Datum(name='NAD27', ellipsoid=Ellipsoids.Clarke1866, transform=Transforms.NAD27)\n    test 258 _SnyderN: name='_SnyderN', lat0=23, lon0=-96, par1=33, E0=0, N0=0, k0=1, SP=1, datum=Datum(name='NAD27', ellipsoid=Ellipsoids.Clarke1866, transform=Transforms.NAD27)\n    test 259 _SnyderN: name='_SnyderN', lat0=23, lon0=-96, par1=33, E0=0, N0=0, k0=1, SP=1, datum=Datum(name='NAD83', ellipsoid=Ellipsoids.GRS80, transform=Transforms.NAD83)\n    test 260 _SnyderN .auth: ''\n    test 261 _SnyderN .opt3: 0.0\n    test 262 _SnyderN .latlon0: (23.0, -96.0)\n    test 263 _SnyderN .philam0: (0.401426, -1.675516)\n\n    testConic(pygeodesy.ellipsoidalVincenty, 25.05.26)\n    test 264 SnyderV: name='SnyderV', lat0=23, lon0=-96, par1=33, par2=45, E0=0, N0=0, k0=1, SP=2, datum=Datum(name='NAD27', ellipsoid=Ellipsoids.Clarke1866, transform=Transforms.NAD27)\n    test 265 _SnyderV: name='_SnyderV', lat0=23, lon0=-96, par1=33, E0=0, N0=0, k0=1, SP=1, datum=Datum(name='NAD27', ellipsoid=Ellipsoids.Clarke1866, transform=Transforms.NAD27)\n    test 266 _SnyderV: name='_SnyderV', lat0=23, lon0=-96, par1=33, E0=0, N0=0, k0=1, SP=1, datum=Datum(name='NAD83', ellipsoid=Ellipsoids.GRS80, transform=Transforms.NAD83)\n    test 267 _SnyderV .auth: ''\n    test 268 _SnyderV .opt3: 0.0\n    test 269 _SnyderV .latlon0: (23.0, -96.0)\n    test 270 _SnyderV .philam0: (0.401426, -1.675516)\n\n    all 270 testLcc.py tests passed (pygeodesy 26.3.26 Python 3.14.3 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 7.406 ms\nrunning /Library/Framewo....n3.14 -W default ~/PyGeodesy/test/testLtp.py\n./pygeodesy/deprecated/classes.py:75: DeprecationWarning: class L{EcefCartesian_<pygeodesy.deprecated.classes.EcefCartesian_>} has been DEPRECATED, use class L{LocalCartesian} or L{Ltp}.\n  deprecated_class(self.__class__)\n./test/testLtp.py:41: DeprecationWarning: method L{forward<pygeodesy.deprecated.classes.EcefCartesian_.forward>} has been DEPRECATED, use method L{LocalCartesian.forward} or L{Ltp.forward}.\n  t = c.forward(33.3, 44.4, 6000)\n./test/testLtp.py:45: DeprecationWarning: method L{reverse<pygeodesy.deprecated.classes.EcefCartesian_.reverse>} has been DEPRECATED, use method L{LocalCartesian.reverse} or L{Ltp.reverse}.\n  t = c.reverse(37288.97, 33374.29, 5783.65)\n./test/testLtp.py:54: DeprecationWarning: method L{forward<pygeodesy.deprecated.classes.EcefCartesian_.forward>} has been DEPRECATED, use method L{LocalCartesian.forward} or L{Ltp.forward}.\n  t = c.forward(LatLon_(50.9, 1.8, name='Calais'))  # Local9Tuple\n./test/testLtp.py:58: DeprecationWarning: method L{reverse<pygeodesy.deprecated.classes.EcefCartesian_.reverse>} has been DEPRECATED, use method L{LocalCartesian.reverse} or L{Ltp.reverse}.\n  t = c.reverse(-37518.64, 229949.65, -4260.43)  # Local9Tuple\n./test/testLtp.py:62: DeprecationWarning: method L{reverse<pygeodesy.deprecated.classes.EcefCartesian_.reverse>} has been DEPRECATED, use method L{LocalCartesian.reverse} or L{Ltp.reverse}.\n  t = c.reverse(-38e3, 230e3, -4e3)\n./test/testLtp.py:66: DeprecationWarning: method L{forward<pygeodesy.deprecated.classes.EcefCartesian_.forward>} has been DEPRECATED, use method L{LocalCartesian.forward} or L{Ltp.forward}.\n  t = c.forward(50.9, 1.79, 264.92)  # Local9Tuple\n./test/testLtp.py:74: DeprecationWarning: method L{reverse<pygeodesy.deprecated.classes.EcefCartesian_.reverse>} has been DEPRECATED, use method L{LocalCartesian.reverse} or L{Ltp.reverse}.\n  t = Z.reverse(M).toLatLon(datum=None)  # Matterhorn Xyz to LatLon\n./test/testLtp.py:76: DeprecationWarning: method L{forward<pygeodesy.deprecated.classes.EcefCartesian_.forward>} has been DEPRECATED, use method L{LocalCartesian.forward} or L{Ltp.forward}.\n  self.test('xyz', Z.forward(t).xyz.toStr(prec=1), '(-7134.8, -4556.3, 2852.4)', known=Sudano)\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.Aer from .ltpTuples by testLtp.py line 11\n# lazily imported pygeodesy.Attitude from .ltp by testLtp.py line 11\n# lazily imported pygeodesy.ChLV from .ltp by testLtp.py line 11\n# lazily imported pygeodesy.ChLVa from .ltp by testLtp.py line 11\n# lazily imported pygeodesy.ChLVe from .ltp by testLtp.py line 11\n# lazily imported pygeodesy.EcefFarrell21 from .ecef by testLtp.py line 11\n# lazily imported pygeodesy.EcefFarrell22 from .ecef by testLtp.py line 11\n# lazily imported pygeodesy.EcefKarney from .ecef by testLtp.py line 11\n# lazily imported pygeodesy.EcefVeness from .ecef by testLtp.py line 11\n# lazily imported pygeodesy.EcefSudano from .ecef by testLtp.py line 11\n# lazily imported pygeodesy.Ecef9Tuple from .ecef by testLtp.py line 11\n# lazily imported pygeodesy.EcefYou from .ecef by testLtp.py line 11\n# lazily imported pygeodesy.Enu from .ltpTuples by testLtp.py line 11\n# lazily imported pygeodesy.Frustum from .ltp by testLtp.py line 11\n# lazily imported pygeodesy.fstr from .streprs by testLtp.py line 11\n# lazily imported pygeodesy.LatLon_ from .points by testLtp.py line 11\n# lazily imported pygeodesy.LocalCartesian from .ltp by testLtp.py line 11\n# lazily imported pygeodesy.Local9Tuple from .ltpTuples by testLtp.py line 11\n# lazily imported pygeodesy.Ltp from .ltp by testLtp.py line 11\n# lazily imported pygeodesy.Ned from .ltpTuples by testLtp.py line 11\n# lazily imported pygeodesy.tyr3d from .ltp by testLtp.py line 11\n# lazily imported pygeodesy.XyzLocal from .ltpTuples by testLtp.py line 11\n# lazily imported pygeodesy.latDMS from .dms by testLtp.py line 11\n# lazily imported pygeodesy.lonDMS from .dms by testLtp.py line 11\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by <frozen importlib._bootstrap> line 1423\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by <frozen importlib._bootstrap> line 1423\n# lazily imported pygeodesy.Conformal2Tuple from .triaxials.triaxial5 by <frozen importlib._bootstrap> line 1423\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by classes.py line 21\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by classes.py line 21\n# lazily imported pygeodesy.Conformal2Tuple from .triaxials.triaxial5 by classes.py line 21\n# lazily imported pygeodesy.Ellipsoids from .ellipsoids by testLtp.py line 286\n\n    testing testLtp.py 23.11.21 isLazy=3\n\n    test 1 EcefCartesian: {}\n    test 2 name: Test\n    test 3 toStr: EcefCartesian_(lat0=33.0, lon0=44.0, height0=20.0, M=EcefMatrix(_0_0_=-0.694658, _0_1_=-0.391781, _0_2_=0.603289, _1_0_=0.71934, _1_1_=-0.378338, _1_2_=0.58259, _2_0_=0.0, _2_1_=0.838671, _2_2_=0.544639), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Test')  FAILED, KNOWN, expected EcefCartesian_\n    test 4 copy(<class 'type'>): (<class 'pygeodesy.deprecated.classes.EcefCartesian.<locals>.EcefCartesian_'>, True)\n    test 5 EcefCartesian_.copy(): (<class 'pygeodesy.deprecated.classes.EcefCartesian.<locals>.EcefCartesian_'>, True)\n    test 6 New: lat0=33.0, lon0=44.0, height0=20.0, M=EcefMatrix(_0_0_=-0.694658, _0_1_=-0.391781, _0_2_=0.603289, _1_0_=0.71934, _1_1_=-0.378338, _1_2_=0.58259, _2_0_=0.0, _2_1_=0.838671, _2_2_=0.544639), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Test'\n    test 7 forward: 37288.97, 33374.29, 5783.65\n    test 8 name: Test\n    test 9 reverse: 33.3, 44.4, 6000.0\n    test 10 name: Test\n    test 11 name: Paris\n    test 12 Paris: 48.833, 2.333, 0.0\n    test 13 forward: -37518.64, 229949.65, -4260.43\n    test 14 name: Calais\n    test 15 reverse: 50.9, 1.8, -0.0\n    test 16 name: Paris\n    test 17 reverse: -38000.0, 230000.0, -4000.0\n    test 18 reverse: 50.9, 1.79, 264.92\n    test 19 forward: -38223.7, 229964.2, -4000.0\n\n    test 20 Zermatt: lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'  FAILED, KNOWN, expected EcefCartesian_\n    test 21 Matterhorn: (45.976, 7.658, 4531.01)\n    test 22 xyz: (-7134.8, -4556.3, 2852.4)\n    test 23 _local2ecef: 4403757.602, 592124.536, 4566652.082\n    test 24 _local2ecef: (4403757.602, 592124.536, 4566652.082, 45.976, 7.658, 4531.01, 1, None, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))  FAILED, KNOWN, expected Ecef9Tuple\n    test 25 _local2ecef: Ecef9Tuple\n    test 26 _ecef2local: (-7134.8, -4556.3, 2852.4, 45.976, 7.658, 4531.01, EcefCartesian_(lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'), Ecef9Tuple(x=4403757.601549, y=592124.535536, z=4566652.082005, lat=45.976, lon=7.657999, height=4531.009608, C=1, M=None, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84)), None)  FAILED, KNOWN, expected Local9Tuple\n    test 27 _ecef2local: Local9Tuple\n    test 28 Xyz: (-7134.8, -4556.3, 2852.4, None)\n    test 29 Aer: (-7134.912, -4444.548, 2852.474, None)\n    test 30 Enu: (-7134.8, -4556.3, 2852.4, None)\n    test 31 Ned: [-4556.3, -7134.8, -2852.4]\n    test 32 Enu: [-7134.8, -4556.3, 2852.4]\n    test 33 Ned: [-4556.3, -7134.8, -2852.4]\n\n    test 34 lon00: (90.0, 57.3, 0.0, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 35 lon00: (90.0, 3.75, 0.0, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n\n    test 36 Frustum: 90.0, 90.0\n    test 37 hfov: 90.0\n    test 38 vfov: 90.0\n    test 39 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None))\n    test 40 footprint.xyzLocal5: ([X:0.0, Y:0.0, Z:0.0], [X:1000.0, Y:1000.0, Z:0.0], [X:1000.0, Y:1000.0, Z:0.0], [X:-1000.0, Y:-1000.0, Z:0.0], [X:-1000.0, Y:-1000.0, Z:0.0])\n# imported pygeodesy.ltp into ltpTuples.py line 1534\n    test 41 footprint.toLatLon5: (LatLon_(00.0°N, 000.0°E), LatLon_(00.009044°N, 000.008983°E, +0.16), LatLon_(00.009044°N, 000.008983°E, +0.16), LatLon_(00.009044°S, 000.008983°W, +0.16), LatLon_(00.009044°S, 000.008983°W, +0.16))\n\n    test 42 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None))\n    test 43 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=414.213562, y=414.213562, z=0.0, ltp=None), Xyz4Tuple(x=414.213562, y=414.213562, z=0.0, ltp=None), Xyz4Tuple(x=-414.213562, y=-414.213562, z=0.0, ltp=None), Xyz4Tuple(x=-414.213562, y=-414.213562, z=0.0, ltp=None))\n    test 44 footprint: (Xyz4Tuple(x=-57289.961631, y=-57289.961631, z=0.0, ltp=None), Xyz4Tuple(x=2538.647896, y=2538.647896, z=0.0, ltp=None), Xyz4Tuple(x=2538.647896, y=2538.647896, z=0.0, ltp=None), Xyz4Tuple(x=-2299.842547, y=-2299.842547, z=0.0, ltp=None), Xyz4Tuple(x=-2299.842547, y=-2299.842547, z=0.0, ltp=None))\n\n    test 45 Attitude: (0.0, -10.0, 330.0, -20.0)\n    test 46 alt: 0.0\n    test 47 tilt: -10.0\n    test 48 roll: -20.0\n    test 49 yaw: 330.0\n    test 50 matrix: ((0.8137976813493736, -0.44096961052988237, -0.37852230636979256), (0.46984631039295416, 0.8825641192593855, -0.018028311236297286), (0.3420201433256688, -0.16317591116653488, 0.9254165783983233))  FAILED, KNOWN, expected ((0.8137976813493737, -0.4409696105298823, -0.3785223063697926), (0.4698463103929541, 0.8825641192593856, -0.01802831123629725), (0.3420201433256688, -0.16317591116653488, 0.9254165783983233))\n    test 51 rotate: (-0.005694, 1.334382, 1.104261)\n    test 52 tyr3d: (0.0, 0.0, 0.0)\n    test 53 tyr3d: (0.0, -2.0, 0.0)\n    test 54 tyr3d: (0.0, -2.0, 0.0)\n    test 55 tyr3d: (0.0, 0.0, -2.0)\n\n    test 56 LocalCartesian: {}\n    test 57 name: Test\n    test 58 toStr: LocalCartesian(lat0=33.0, lon0=44.0, height0=20.0, M=EcefMatrix(_0_0_=-0.694658, _0_1_=-0.391781, _0_2_=0.603289, _1_0_=0.71934, _1_1_=-0.378338, _1_2_=0.58259, _2_0_=0.0, _2_1_=0.838671, _2_2_=0.544639), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Test')  FAILED, KNOWN, expected LocalCartesian\n    test 59 copy(<class 'type'>): (<class 'pygeodesy.ltp.LocalCartesian'>, True)\n    test 60 LocalCartesian.copy(): (<class 'pygeodesy.ltp.LocalCartesian'>, True)\n    test 61 New: lat0=33.0, lon0=44.0, height0=20.0, M=EcefMatrix(_0_0_=-0.694658, _0_1_=-0.391781, _0_2_=0.603289, _1_0_=0.71934, _1_1_=-0.378338, _1_2_=0.58259, _2_0_=0.0, _2_1_=0.838671, _2_2_=0.544639), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Test'\n    test 62 forward: 37288.97, 33374.29, 5783.65\n    test 63 name: Test\n    test 64 reverse: 33.3, 44.4, 6000.0\n    test 65 name: Test\n    test 66 name: Paris\n    test 67 Paris: 48.833, 2.333, 0.0\n    test 68 forward: -37518.64, 229949.65, -4260.43\n    test 69 name: Calais\n    test 70 reverse: 50.9, 1.8, -0.0\n    test 71 name: Paris\n    test 72 reverse: -38000.0, 230000.0, -4000.0\n    test 73 reverse: 50.9, 1.79, 264.92\n    test 74 forward: -38223.7, 229964.2, -4000.0\n\n    test 75 Zermatt: lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'  FAILED, KNOWN, expected LocalCartesian\n    test 76 Matterhorn: (45.976, 7.658, 4531.01)\n    test 77 xyz: (-7134.8, -4556.3, 2852.4)\n    test 78 _local2ecef: 4403757.602, 592124.536, 4566652.082\n    test 79 _local2ecef: (4403757.602, 592124.536, 4566652.082, 45.976, 7.658, 4531.01, 1, None, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))  FAILED, KNOWN, expected Ecef9Tuple\n    test 80 _local2ecef: Ecef9Tuple\n    test 81 _ecef2local: (-7134.8, -4556.3, 2852.4, 45.976, 7.658, 4531.01, LocalCartesian(lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'), Ecef9Tuple(x=4403757.601549, y=592124.535536, z=4566652.082005, lat=45.976, lon=7.657999, height=4531.009608, C=1, M=None, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84)), None)  FAILED, KNOWN, expected Local9Tuple\n    test 82 _ecef2local: Local9Tuple\n    test 83 Xyz: (-7134.8, -4556.3, 2852.4, None)\n    test 84 Aer: (-7134.912, -4444.548, 2852.474, None)\n    test 85 Enu: (-7134.8, -4556.3, 2852.4, None)\n    test 86 Ned: [-4556.3, -7134.8, -2852.4]\n    test 87 Enu: [-7134.8, -4556.3, 2852.4]\n    test 88 Ned: [-4556.3, -7134.8, -2852.4]\n\n    test 89 lon00: (90.0, 57.3, 0.0, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 90 lon00: (90.0, 3.75, 0.0, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n\n    test 91 Frustum: 90.0, 90.0\n    test 92 hfov: 90.0\n    test 93 vfov: 90.0\n    test 94 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None))\n    test 95 footprint.xyzLocal5: ([X:0.0, Y:0.0, Z:0.0], [X:1000.0, Y:1000.0, Z:0.0], [X:1000.0, Y:1000.0, Z:0.0], [X:-1000.0, Y:-1000.0, Z:0.0], [X:-1000.0, Y:-1000.0, Z:0.0])\n    test 96 footprint.toLatLon5: (LatLon_(00.0°N, 000.0°E), LatLon_(00.009044°N, 000.008983°E, +0.16), LatLon_(00.009044°N, 000.008983°E, +0.16), LatLon_(00.009044°S, 000.008983°W, +0.16), LatLon_(00.009044°S, 000.008983°W, +0.16))\n\n    test 97 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None))\n    test 98 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=414.213562, y=414.213562, z=0.0, ltp=None), Xyz4Tuple(x=414.213562, y=414.213562, z=0.0, ltp=None), Xyz4Tuple(x=-414.213562, y=-414.213562, z=0.0, ltp=None), Xyz4Tuple(x=-414.213562, y=-414.213562, z=0.0, ltp=None))\n    test 99 footprint: (Xyz4Tuple(x=-57289.961631, y=-57289.961631, z=0.0, ltp=None), Xyz4Tuple(x=2538.647896, y=2538.647896, z=0.0, ltp=None), Xyz4Tuple(x=2538.647896, y=2538.647896, z=0.0, ltp=None), Xyz4Tuple(x=-2299.842547, y=-2299.842547, z=0.0, ltp=None), Xyz4Tuple(x=-2299.842547, y=-2299.842547, z=0.0, ltp=None))\n\n    test 100 Attitude: (0.0, -10.0, 330.0, -20.0)\n    test 101 alt: 0.0\n    test 102 tilt: -10.0\n    test 103 roll: -20.0\n    test 104 yaw: 330.0\n    test 105 matrix: ((0.8137976813493736, -0.44096961052988237, -0.37852230636979256), (0.46984631039295416, 0.8825641192593855, -0.018028311236297286), (0.3420201433256688, -0.16317591116653488, 0.9254165783983233))  FAILED, KNOWN, expected ((0.8137976813493737, -0.4409696105298823, -0.3785223063697926), (0.4698463103929541, 0.8825641192593856, -0.01802831123629725), (0.3420201433256688, -0.16317591116653488, 0.9254165783983233))\n    test 106 rotate: (-0.005694, 1.334382, 1.104261)\n    test 107 tyr3d: (0.0, 0.0, 0.0)\n    test 108 tyr3d: (0.0, -2.0, 0.0)\n    test 109 tyr3d: (0.0, -2.0, 0.0)\n    test 110 tyr3d: (0.0, 0.0, -2.0)\n\n    test 111 Ltp: {}\n    test 112 name: Test\n    test 113 toStr: Ltp(lat0=33.0, lon0=44.0, height0=20.0, M=EcefMatrix(_0_0_=-0.694658, _0_1_=-0.391781, _0_2_=0.603289, _1_0_=0.71934, _1_1_=-0.378338, _1_2_=0.58259, _2_0_=0.0, _2_1_=0.838671, _2_2_=0.544639), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Test')  FAILED, KNOWN, expected Ltp\n    test 114 copy(<class 'type'>): (<class 'pygeodesy.ltp.Ltp'>, True)\n    test 115 Ltp.copy(): (<class 'pygeodesy.ltp.Ltp'>, True)\n    test 116 New: lat0=33.0, lon0=44.0, height0=20.0, M=EcefMatrix(_0_0_=-0.694658, _0_1_=-0.391781, _0_2_=0.603289, _1_0_=0.71934, _1_1_=-0.378338, _1_2_=0.58259, _2_0_=0.0, _2_1_=0.838671, _2_2_=0.544639), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Test'\n    test 117 forward: 37288.97, 33374.29, 5783.65\n    test 118 name: Test\n    test 119 reverse: 33.3, 44.4, 6000.0\n    test 120 name: Test\n    test 121 name: Paris\n    test 122 Paris: 48.833, 2.333, 0.0\n    test 123 forward: -37518.64, 229949.65, -4260.43\n    test 124 name: Calais\n    test 125 reverse: 50.9, 1.8, -0.0\n    test 126 name: Paris\n    test 127 reverse: -38000.0, 230000.0, -4000.0\n    test 128 reverse: 50.9, 1.79, 264.92\n    test 129 forward: -38223.7, 229964.2, -4000.0\n\n    test 130 Zermatt: lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'  FAILED, KNOWN, expected Ltp\n    test 131 Matterhorn: (45.976, 7.658, 4531.01)\n    test 132 xyz: (-7134.8, -4556.3, 2852.4)\n    test 133 _local2ecef: 4403757.602, 592124.536, 4566652.082\n    test 134 _local2ecef: (4403757.602, 592124.536, 4566652.082, 45.976, 7.658, 4531.01, 1, None, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))  FAILED, KNOWN, expected Ecef9Tuple\n    test 135 _local2ecef: Ecef9Tuple\n    test 136 _ecef2local: (-7134.8, -4556.3, 2852.4, 45.976, 7.658, 4531.01, Ltp(lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'), Ecef9Tuple(x=4403757.601549, y=592124.535536, z=4566652.082005, lat=45.976, lon=7.657999, height=4531.009608, C=1, M=None, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84)), None)  FAILED, KNOWN, expected Local9Tuple\n    test 137 _ecef2local: Local9Tuple\n    test 138 Xyz: (-7134.8, -4556.3, 2852.4, None)\n    test 139 Aer: (-7134.912, -4444.548, 2852.474, None)\n    test 140 Enu: (-7134.8, -4556.3, 2852.4, None)\n    test 141 Ned: [-4556.3, -7134.8, -2852.4]\n    test 142 Enu: [-7134.8, -4556.3, 2852.4]\n    test 143 Ned: [-4556.3, -7134.8, -2852.4]\n\n    test 144 lon00: (90.0, 57.3, 0.0, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 145 lon00: (90.0, 3.75, 0.0, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n\n    test 146 Frustum: 90.0, 90.0\n    test 147 hfov: 90.0\n    test 148 vfov: 90.0\n    test 149 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None))\n    test 150 footprint.xyzLocal5: ([X:0.0, Y:0.0, Z:0.0], [X:1000.0, Y:1000.0, Z:0.0], [X:1000.0, Y:1000.0, Z:0.0], [X:-1000.0, Y:-1000.0, Z:0.0], [X:-1000.0, Y:-1000.0, Z:0.0])\n    test 151 footprint.toLatLon5: (LatLon_(00.0°N, 000.0°E), LatLon_(00.009044°N, 000.008983°E, +0.16), LatLon_(00.009044°N, 000.008983°E, +0.16), LatLon_(00.009044°S, 000.008983°W, +0.16), LatLon_(00.009044°S, 000.008983°W, +0.16))\n\n    test 152 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None))\n    test 153 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=414.213562, y=414.213562, z=0.0, ltp=None), Xyz4Tuple(x=414.213562, y=414.213562, z=0.0, ltp=None), Xyz4Tuple(x=-414.213562, y=-414.213562, z=0.0, ltp=None), Xyz4Tuple(x=-414.213562, y=-414.213562, z=0.0, ltp=None))\n    test 154 footprint: (Xyz4Tuple(x=-57289.961631, y=-57289.961631, z=0.0, ltp=None), Xyz4Tuple(x=2538.647896, y=2538.647896, z=0.0, ltp=None), Xyz4Tuple(x=2538.647896, y=2538.647896, z=0.0, ltp=None), Xyz4Tuple(x=-2299.842547, y=-2299.842547, z=0.0, ltp=None), Xyz4Tuple(x=-2299.842547, y=-2299.842547, z=0.0, ltp=None))\n\n    test 155 Attitude: (0.0, -10.0, 330.0, -20.0)\n    test 156 alt: 0.0\n    test 157 tilt: -10.0\n    test 158 roll: -20.0\n    test 159 yaw: 330.0\n    test 160 matrix: ((0.8137976813493736, -0.44096961052988237, -0.37852230636979256), (0.46984631039295416, 0.8825641192593855, -0.018028311236297286), (0.3420201433256688, -0.16317591116653488, 0.9254165783983233))  FAILED, KNOWN, expected ((0.8137976813493737, -0.4409696105298823, -0.3785223063697926), (0.4698463103929541, 0.8825641192593856, -0.01802831123629725), (0.3420201433256688, -0.16317591116653488, 0.9254165783983233))\n    test 161 rotate: (-0.005694, 1.334382, 1.104261)\n    test 162 tyr3d: (0.0, 0.0, 0.0)\n    test 163 tyr3d: (0.0, -2.0, 0.0)\n    test 164 tyr3d: (0.0, -2.0, 0.0)\n    test 165 tyr3d: (0.0, 0.0, -2.0)\n\n    test 166 Ltp: {'ecef': EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name='')}\n    test 167 name: Test\n    test 168 toStr: Ltp(lat0=33.0, lon0=44.0, height0=20.0, M=EcefMatrix(_0_0_=-0.694658, _0_1_=-0.391781, _0_2_=0.603289, _1_0_=0.71934, _1_1_=-0.378338, _1_2_=0.58259, _2_0_=0.0, _2_1_=0.838671, _2_2_=0.544639), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Test')  FAILED, KNOWN, expected Ltp\n    test 169 copy(<class 'type'>): (<class 'pygeodesy.ltp.Ltp'>, True)\n    test 170 Ltp.copy(): (<class 'pygeodesy.ltp.Ltp'>, True)\n    test 171 New: lat0=33.0, lon0=44.0, height0=20.0, M=EcefMatrix(_0_0_=-0.694658, _0_1_=-0.391781, _0_2_=0.603289, _1_0_=0.71934, _1_1_=-0.378338, _1_2_=0.58259, _2_0_=0.0, _2_1_=0.838671, _2_2_=0.544639), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Test'\n    test 172 forward: 37288.97, 33374.29, 5783.65\n    test 173 name: Test\n    test 174 reverse: 33.3, 44.4, 6000.0\n    test 175 name: Test\n    test 176 name: Paris\n    test 177 Paris: 48.833, 2.333, 0.0\n    test 178 forward: -37518.64, 229949.65, -4260.43\n    test 179 name: Calais\n    test 180 reverse: 50.9, 1.8, -0.0\n    test 181 name: Paris\n    test 182 reverse: -38000.0, 230000.0, -4000.0\n    test 183 reverse: 50.9, 1.79, 264.92\n    test 184 forward: -38223.7, 229964.2, -4000.0\n\n    test 185 Zermatt: lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'  FAILED, KNOWN, expected Ltp\n    test 186 Matterhorn: (45.976, 7.658, 4531.01)\n    test 187 xyz: (-7134.8, -4556.3, 2852.4)\n    test 188 _local2ecef: 4403757.602, 592124.536, 4566652.082\n    test 189 _local2ecef: (4403757.602, 592124.536, 4566652.082, 45.976, 7.658, 4531.01, 1, None, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))  FAILED, KNOWN, expected Ecef9Tuple\n    test 190 _local2ecef: Ecef9Tuple\n    test 191 _ecef2local: (-7134.8, -4556.3, 2852.4, 45.976, 7.658, 4531.01, Ltp(lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'), Ecef9Tuple(x=4403757.601549, y=592124.535536, z=4566652.082005, lat=45.976, lon=7.657999, height=4531.009608, C=1, M=None, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84)), None)  FAILED, KNOWN, expected Local9Tuple\n    test 192 _ecef2local: Local9Tuple\n    test 193 Xyz: (-7134.8, -4556.3, 2852.4, None)\n    test 194 Aer: (-7134.912, -4444.548, 2852.474, None)\n    test 195 Enu: (-7134.8, -4556.3, 2852.4, None)\n    test 196 Ned: [-4556.3, -7134.8, -2852.4]\n    test 197 Enu: [-7134.8, -4556.3, 2852.4]\n    test 198 Ned: [-4556.3, -7134.8, -2852.4]\n\n    test 199 lon00: (90.0, 57.3, 0.0, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 200 lon00: (90.0, 3.75, 0.0, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n\n    test 201 Frustum: 90.0, 90.0\n    test 202 hfov: 90.0\n    test 203 vfov: 90.0\n    test 204 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None))\n    test 205 footprint.xyzLocal5: ([X:0.0, Y:0.0, Z:0.0], [X:1000.0, Y:1000.0, Z:0.0], [X:1000.0, Y:1000.0, Z:0.0], [X:-1000.0, Y:-1000.0, Z:0.0], [X:-1000.0, Y:-1000.0, Z:0.0])\n    test 206 footprint.toLatLon5: (LatLon_(00.0°N, 000.0°E), LatLon_(00.009044°N, 000.008983°E, +0.16), LatLon_(00.009044°N, 000.008983°E, +0.16), LatLon_(00.009044°S, 000.008983°W, +0.16), LatLon_(00.009044°S, 000.008983°W, +0.16))\n\n    test 207 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None))\n    test 208 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=414.213562, y=414.213562, z=0.0, ltp=None), Xyz4Tuple(x=414.213562, y=414.213562, z=0.0, ltp=None), Xyz4Tuple(x=-414.213562, y=-414.213562, z=0.0, ltp=None), Xyz4Tuple(x=-414.213562, y=-414.213562, z=0.0, ltp=None))\n    test 209 footprint: (Xyz4Tuple(x=-57289.961631, y=-57289.961631, z=0.0, ltp=None), Xyz4Tuple(x=2538.647896, y=2538.647896, z=0.0, ltp=None), Xyz4Tuple(x=2538.647896, y=2538.647896, z=0.0, ltp=None), Xyz4Tuple(x=-2299.842547, y=-2299.842547, z=0.0, ltp=None), Xyz4Tuple(x=-2299.842547, y=-2299.842547, z=0.0, ltp=None))\n\n    test 210 Attitude: (0.0, -10.0, 330.0, -20.0)\n    test 211 alt: 0.0\n    test 212 tilt: -10.0\n    test 213 roll: -20.0\n    test 214 yaw: 330.0\n    test 215 matrix: ((0.8137976813493736, -0.44096961052988237, -0.37852230636979256), (0.46984631039295416, 0.8825641192593855, -0.018028311236297286), (0.3420201433256688, -0.16317591116653488, 0.9254165783983233))  FAILED, KNOWN, expected ((0.8137976813493737, -0.4409696105298823, -0.3785223063697926), (0.4698463103929541, 0.8825641192593856, -0.01802831123629725), (0.3420201433256688, -0.16317591116653488, 0.9254165783983233))\n    test 216 rotate: (-0.005694, 1.334382, 1.104261)\n    test 217 tyr3d: (0.0, 0.0, 0.0)\n    test 218 tyr3d: (0.0, -2.0, 0.0)\n    test 219 tyr3d: (0.0, -2.0, 0.0)\n    test 220 tyr3d: (0.0, 0.0, -2.0)\n\n    test 221 Ltp: {'ecef': EcefFarrell21(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name='')}\n    test 222 name: Test\n    test 223 toStr: Ltp(lat0=33.0, lon0=44.0, height0=20.0, M=EcefMatrix(_0_0_=-0.694658, _0_1_=-0.391781, _0_2_=0.603289, _1_0_=0.71934, _1_1_=-0.378338, _1_2_=0.58259, _2_0_=0.0, _2_1_=0.838671, _2_2_=0.544639), ecef=EcefFarrell21(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Test')  FAILED, KNOWN, expected Ltp\n    test 224 copy(<class 'type'>): (<class 'pygeodesy.ltp.Ltp'>, True)\n    test 225 Ltp.copy(): (<class 'pygeodesy.ltp.Ltp'>, True)\n    test 226 New: lat0=33.0, lon0=44.0, height0=20.0, M=EcefMatrix(_0_0_=-0.694658, _0_1_=-0.391781, _0_2_=0.603289, _1_0_=0.71934, _1_1_=-0.378338, _1_2_=0.58259, _2_0_=0.0, _2_1_=0.838671, _2_2_=0.544639), ecef=EcefFarrell21(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Test'\n    test 227 forward: 37288.97, 33374.29, 5783.65\n    test 228 name: Test\n    test 229 reverse: 33.3, 44.4, 6000.0\n    test 230 name: Test\n    test 231 name: Paris\n    test 232 Paris: 48.833, 2.333, 0.0\n    test 233 forward: -37518.64, 229949.65, -4260.43\n    test 234 name: Calais\n    test 235 reverse: 50.9, 1.8, -0.0\n    test 236 name: Paris\n    test 237 reverse: -38000.0, 230000.0, -4000.0\n    test 238 reverse: 50.9, 1.79, 264.92\n    test 239 forward: -38223.7, 229964.2, -4000.0\n\n    test 240 Zermatt: lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefFarrell21(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'  FAILED, KNOWN, expected Ltp\n    test 241 Matterhorn: (45.976, 7.658, 4531.01)\n    test 242 xyz: (-7134.8, -4556.3, 2852.4)\n    test 243 _local2ecef: 4403757.602, 592124.536, 4566652.082\n    test 244 _local2ecef: (4403757.602, 592124.536, 4566652.082, 45.976, 7.658, 4531.01, 1, None, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))  FAILED, KNOWN, expected Ecef9Tuple\n    test 245 _local2ecef: Ecef9Tuple\n    test 246 _ecef2local: (-7134.8, -4556.3, 2852.4, 45.976, 7.658, 4531.01, Ltp(lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefFarrell21(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'), Ecef9Tuple(x=4403757.601549, y=592124.535536, z=4566652.082005, lat=45.976, lon=7.657999, height=4531.009608, C=1, M=None, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84)), None)  FAILED, KNOWN, expected Local9Tuple\n    test 247 _ecef2local: Local9Tuple\n    test 248 Xyz: (-7134.8, -4556.3, 2852.4, None)\n    test 249 Aer: (-7134.912, -4444.548, 2852.474, None)\n    test 250 Enu: (-7134.8, -4556.3, 2852.4, None)\n    test 251 Ned: [-4556.3, -7134.8, -2852.4]\n    test 252 Enu: [-7134.8, -4556.3, 2852.4]\n    test 253 Ned: [-4556.3, -7134.8, -2852.4]\n\n    test 254 lon00: (90.0, 57.3, 0.0, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 255 lon00: (90.0, 3.75, 0.0, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n\n    test 256 Frustum: 90.0, 90.0\n    test 257 hfov: 90.0\n    test 258 vfov: 90.0\n    test 259 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None))\n    test 260 footprint.xyzLocal5: ([X:0.0, Y:0.0, Z:0.0], [X:1000.0, Y:1000.0, Z:0.0], [X:1000.0, Y:1000.0, Z:0.0], [X:-1000.0, Y:-1000.0, Z:0.0], [X:-1000.0, Y:-1000.0, Z:0.0])\n    test 261 footprint.toLatLon5: (LatLon_(00.0°N, 000.0°E), LatLon_(00.009044°N, 000.008983°E, +0.16), LatLon_(00.009044°N, 000.008983°E, +0.16), LatLon_(00.009044°S, 000.008983°W, +0.16), LatLon_(00.009044°S, 000.008983°W, +0.16))\n\n    test 262 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None))\n    test 263 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=414.213562, y=414.213562, z=0.0, ltp=None), Xyz4Tuple(x=414.213562, y=414.213562, z=0.0, ltp=None), Xyz4Tuple(x=-414.213562, y=-414.213562, z=0.0, ltp=None), Xyz4Tuple(x=-414.213562, y=-414.213562, z=0.0, ltp=None))\n    test 264 footprint: (Xyz4Tuple(x=-57289.961631, y=-57289.961631, z=0.0, ltp=None), Xyz4Tuple(x=2538.647896, y=2538.647896, z=0.0, ltp=None), Xyz4Tuple(x=2538.647896, y=2538.647896, z=0.0, ltp=None), Xyz4Tuple(x=-2299.842547, y=-2299.842547, z=0.0, ltp=None), Xyz4Tuple(x=-2299.842547, y=-2299.842547, z=0.0, ltp=None))\n\n    test 265 Attitude: (0.0, -10.0, 330.0, -20.0)\n    test 266 alt: 0.0\n    test 267 tilt: -10.0\n    test 268 roll: -20.0\n    test 269 yaw: 330.0\n    test 270 matrix: ((0.8137976813493736, -0.44096961052988237, -0.37852230636979256), (0.46984631039295416, 0.8825641192593855, -0.018028311236297286), (0.3420201433256688, -0.16317591116653488, 0.9254165783983233))  FAILED, KNOWN, expected ((0.8137976813493737, -0.4409696105298823, -0.3785223063697926), (0.4698463103929541, 0.8825641192593856, -0.01802831123629725), (0.3420201433256688, -0.16317591116653488, 0.9254165783983233))\n    test 271 rotate: (-0.005694, 1.334382, 1.104261)\n    test 272 tyr3d: (0.0, 0.0, 0.0)\n    test 273 tyr3d: (0.0, -2.0, 0.0)\n    test 274 tyr3d: (0.0, -2.0, 0.0)\n    test 275 tyr3d: (0.0, 0.0, -2.0)\n\n    test 276 Ltp: {'ecef': EcefFarrell22(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name='')}\n    test 277 name: Test\n    test 278 toStr: Ltp(lat0=33.0, lon0=44.0, height0=20.0, M=EcefMatrix(_0_0_=-0.694658, _0_1_=-0.391781, _0_2_=0.603289, _1_0_=0.71934, _1_1_=-0.378338, _1_2_=0.58259, _2_0_=0.0, _2_1_=0.838671, _2_2_=0.544639), ecef=EcefFarrell22(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Test')  FAILED, KNOWN, expected Ltp\n    test 279 copy(<class 'type'>): (<class 'pygeodesy.ltp.Ltp'>, True)\n    test 280 Ltp.copy(): (<class 'pygeodesy.ltp.Ltp'>, True)\n    test 281 New: lat0=33.0, lon0=44.0, height0=20.0, M=EcefMatrix(_0_0_=-0.694658, _0_1_=-0.391781, _0_2_=0.603289, _1_0_=0.71934, _1_1_=-0.378338, _1_2_=0.58259, _2_0_=0.0, _2_1_=0.838671, _2_2_=0.544639), ecef=EcefFarrell22(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Test'\n    test 282 forward: 37288.97, 33374.29, 5783.65\n    test 283 name: Test\n    test 284 reverse: 33.3, 44.4, 6000.0\n    test 285 name: Test\n    test 286 name: Paris\n    test 287 Paris: 48.833, 2.333, 0.0\n    test 288 forward: -37518.64, 229949.65, -4260.43\n    test 289 name: Calais\n    test 290 reverse: 50.9, 1.8, -0.0\n    test 291 name: Paris\n    test 292 reverse: -38000.0, 230000.0, -4000.0\n    test 293 reverse: 50.9, 1.79, 264.92\n    test 294 forward: -38223.7, 229964.2, -4000.0\n\n    test 295 Zermatt: lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefFarrell22(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'  FAILED, KNOWN, expected Ltp\n    test 296 Matterhorn: (45.976, 7.658, 4531.01)\n    test 297 xyz: (-7134.8, -4556.3, 2852.4)\n    test 298 _local2ecef: 4403757.602, 592124.536, 4566652.082\n    test 299 _local2ecef: (4403757.602, 592124.536, 4566652.082, 45.976, 7.658, 4531.01, 1, None, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))  FAILED, KNOWN, expected Ecef9Tuple\n    test 300 _local2ecef: Ecef9Tuple\n    test 301 _ecef2local: (-7134.8, -4556.3, 2852.4, 45.976, 7.658, 4531.01, Ltp(lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefFarrell22(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'), Ecef9Tuple(x=4403757.601549, y=592124.535536, z=4566652.082005, lat=45.976, lon=7.657999, height=4531.009609, C=1, M=None, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84)), None)  FAILED, KNOWN, expected Local9Tuple\n    test 302 _ecef2local: Local9Tuple\n    test 303 Xyz: (-7134.8, -4556.3, 2852.4, None)\n    test 304 Aer: (-7134.912, -4444.548, 2852.474, None)\n    test 305 Enu: (-7134.8, -4556.3, 2852.4, None)\n    test 306 Ned: [-4556.3, -7134.8, -2852.4]\n    test 307 Enu: [-7134.8, -4556.3, 2852.4]\n    test 308 Ned: [-4556.3, -7134.8, -2852.4]\n\n    test 309 lon00: (90.0, 57.3, 0.0, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 310 lon00: (90.0, 3.75, 0.0, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n\n    test 311 Frustum: 90.0, 90.0\n    test 312 hfov: 90.0\n    test 313 vfov: 90.0\n    test 314 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None))\n    test 315 footprint.xyzLocal5: ([X:0.0, Y:0.0, Z:0.0], [X:1000.0, Y:1000.0, Z:0.0], [X:1000.0, Y:1000.0, Z:0.0], [X:-1000.0, Y:-1000.0, Z:0.0], [X:-1000.0, Y:-1000.0, Z:0.0])\n    test 316 footprint.toLatLon5: (LatLon_(00.0°N, 000.0°E), LatLon_(00.009044°N, 000.008983°E, +0.16), LatLon_(00.009044°N, 000.008983°E, +0.16), LatLon_(00.009044°S, 000.008983°W, +0.16), LatLon_(00.009044°S, 000.008983°W, +0.16))\n\n    test 317 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None))\n    test 318 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=414.213562, y=414.213562, z=0.0, ltp=None), Xyz4Tuple(x=414.213562, y=414.213562, z=0.0, ltp=None), Xyz4Tuple(x=-414.213562, y=-414.213562, z=0.0, ltp=None), Xyz4Tuple(x=-414.213562, y=-414.213562, z=0.0, ltp=None))\n    test 319 footprint: (Xyz4Tuple(x=-57289.961631, y=-57289.961631, z=0.0, ltp=None), Xyz4Tuple(x=2538.647896, y=2538.647896, z=0.0, ltp=None), Xyz4Tuple(x=2538.647896, y=2538.647896, z=0.0, ltp=None), Xyz4Tuple(x=-2299.842547, y=-2299.842547, z=0.0, ltp=None), Xyz4Tuple(x=-2299.842547, y=-2299.842547, z=0.0, ltp=None))\n\n    test 320 Attitude: (0.0, -10.0, 330.0, -20.0)\n    test 321 alt: 0.0\n    test 322 tilt: -10.0\n    test 323 roll: -20.0\n    test 324 yaw: 330.0\n    test 325 matrix: ((0.8137976813493736, -0.44096961052988237, -0.37852230636979256), (0.46984631039295416, 0.8825641192593855, -0.018028311236297286), (0.3420201433256688, -0.16317591116653488, 0.9254165783983233))  FAILED, KNOWN, expected ((0.8137976813493737, -0.4409696105298823, -0.3785223063697926), (0.4698463103929541, 0.8825641192593856, -0.01802831123629725), (0.3420201433256688, -0.16317591116653488, 0.9254165783983233))\n    test 326 rotate: (-0.005694, 1.334382, 1.104261)\n    test 327 tyr3d: (0.0, 0.0, 0.0)\n    test 328 tyr3d: (0.0, -2.0, 0.0)\n    test 329 tyr3d: (0.0, -2.0, 0.0)\n    test 330 tyr3d: (0.0, 0.0, -2.0)\n\n    test 331 Ltp: {'ecef': EcefVeness(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name='')}\n    test 332 name: Test\n    test 333 toStr: Ltp(lat0=33.0, lon0=44.0, height0=20.0, M=EcefMatrix(_0_0_=-0.694658, _0_1_=-0.391781, _0_2_=0.603289, _1_0_=0.71934, _1_1_=-0.378338, _1_2_=0.58259, _2_0_=0.0, _2_1_=0.838671, _2_2_=0.544639), ecef=EcefVeness(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Test')  FAILED, KNOWN, expected Ltp\n    test 334 copy(<class 'type'>): (<class 'pygeodesy.ltp.Ltp'>, True)\n    test 335 Ltp.copy(): (<class 'pygeodesy.ltp.Ltp'>, True)\n    test 336 New: lat0=33.0, lon0=44.0, height0=20.0, M=EcefMatrix(_0_0_=-0.694658, _0_1_=-0.391781, _0_2_=0.603289, _1_0_=0.71934, _1_1_=-0.378338, _1_2_=0.58259, _2_0_=0.0, _2_1_=0.838671, _2_2_=0.544639), ecef=EcefVeness(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Test'\n    test 337 forward: 37288.97, 33374.29, 5783.65\n    test 338 name: Test\n    test 339 reverse: 33.3, 44.4, 6000.0\n    test 340 name: Test\n    test 341 name: Paris\n    test 342 Paris: 48.833, 2.333, 0.0\n    test 343 forward: -37518.64, 229949.65, -4260.43\n    test 344 name: Calais\n    test 345 reverse: 50.9, 1.8, -0.0\n    test 346 name: Paris\n    test 347 reverse: -38000.0, 230000.0, -4000.0\n    test 348 reverse: 50.9, 1.79, 264.92\n    test 349 forward: -38223.7, 229964.2, -4000.0\n\n    test 350 Zermatt: lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefVeness(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'  FAILED, KNOWN, expected Ltp\n    test 351 Matterhorn: (45.976, 7.658, 4531.01)\n    test 352 xyz: (-7134.8, -4556.3, 2852.4)\n    test 353 _local2ecef: 4403757.602, 592124.536, 4566652.082\n    test 354 _local2ecef: (4403757.602, 592124.536, 4566652.082, 45.976, 7.658, 4531.01, 1, None, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))  FAILED, KNOWN, expected Ecef9Tuple\n    test 355 _local2ecef: Ecef9Tuple\n    test 356 _ecef2local: (-7134.8, -4556.3, 2852.4, 45.976, 7.658, 4531.01, Ltp(lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefVeness(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'), Ecef9Tuple(x=4403757.601549, y=592124.535536, z=4566652.082005, lat=45.976, lon=7.657999, height=4531.009608, C=1, M=None, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84)), None)  FAILED, KNOWN, expected Local9Tuple\n    test 357 _ecef2local: Local9Tuple\n    test 358 Xyz: (-7134.8, -4556.3, 2852.4, None)\n    test 359 Aer: (-7134.912, -4444.548, 2852.474, None)\n    test 360 Enu: (-7134.8, -4556.3, 2852.4, None)\n    test 361 Ned: [-4556.3, -7134.8, -2852.4]\n    test 362 Enu: [-7134.8, -4556.3, 2852.4]\n    test 363 Ned: [-4556.3, -7134.8, -2852.4]\n\n    test 364 lon00: (90.0, 57.3, 0.0, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 365 lon00: (90.0, 3.75, 0.0, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n\n    test 366 Frustum: 90.0, 90.0\n    test 367 hfov: 90.0\n    test 368 vfov: 90.0\n    test 369 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None))\n    test 370 footprint.xyzLocal5: ([X:0.0, Y:0.0, Z:0.0], [X:1000.0, Y:1000.0, Z:0.0], [X:1000.0, Y:1000.0, Z:0.0], [X:-1000.0, Y:-1000.0, Z:0.0], [X:-1000.0, Y:-1000.0, Z:0.0])\n    test 371 footprint.toLatLon5: (LatLon_(00.0°N, 000.0°E), LatLon_(00.009044°N, 000.008983°E, +0.16), LatLon_(00.009044°N, 000.008983°E, +0.16), LatLon_(00.009044°S, 000.008983°W, +0.16), LatLon_(00.009044°S, 000.008983°W, +0.16))\n\n    test 372 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None))\n    test 373 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=414.213562, y=414.213562, z=0.0, ltp=None), Xyz4Tuple(x=414.213562, y=414.213562, z=0.0, ltp=None), Xyz4Tuple(x=-414.213562, y=-414.213562, z=0.0, ltp=None), Xyz4Tuple(x=-414.213562, y=-414.213562, z=0.0, ltp=None))\n    test 374 footprint: (Xyz4Tuple(x=-57289.961631, y=-57289.961631, z=0.0, ltp=None), Xyz4Tuple(x=2538.647896, y=2538.647896, z=0.0, ltp=None), Xyz4Tuple(x=2538.647896, y=2538.647896, z=0.0, ltp=None), Xyz4Tuple(x=-2299.842547, y=-2299.842547, z=0.0, ltp=None), Xyz4Tuple(x=-2299.842547, y=-2299.842547, z=0.0, ltp=None))\n\n    test 375 Attitude: (0.0, -10.0, 330.0, -20.0)\n    test 376 alt: 0.0\n    test 377 tilt: -10.0\n    test 378 roll: -20.0\n    test 379 yaw: 330.0\n    test 380 matrix: ((0.8137976813493736, -0.44096961052988237, -0.37852230636979256), (0.46984631039295416, 0.8825641192593855, -0.018028311236297286), (0.3420201433256688, -0.16317591116653488, 0.9254165783983233))  FAILED, KNOWN, expected ((0.8137976813493737, -0.4409696105298823, -0.3785223063697926), (0.4698463103929541, 0.8825641192593856, -0.01802831123629725), (0.3420201433256688, -0.16317591116653488, 0.9254165783983233))\n    test 381 rotate: (-0.005694, 1.334382, 1.104261)\n    test 382 tyr3d: (0.0, 0.0, 0.0)\n    test 383 tyr3d: (0.0, -2.0, 0.0)\n    test 384 tyr3d: (0.0, -2.0, 0.0)\n    test 385 tyr3d: (0.0, 0.0, -2.0)\n\n    test 386 Ltp: {'ecef': EcefSudano(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name='')}\n    test 387 name: Test\n    test 388 toStr: Ltp(lat0=33.0, lon0=44.0, height0=20.0, M=EcefMatrix(_0_0_=-0.694658, _0_1_=-0.391781, _0_2_=0.603289, _1_0_=0.71934, _1_1_=-0.378338, _1_2_=0.58259, _2_0_=0.0, _2_1_=0.838671, _2_2_=0.544639), ecef=EcefSudano(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Test')  FAILED, KNOWN, expected Ltp\n    test 389 copy(<class 'type'>): (<class 'pygeodesy.ltp.Ltp'>, True)\n    test 390 Ltp.copy(): (<class 'pygeodesy.ltp.Ltp'>, True)\n    test 391 New: lat0=33.0, lon0=44.0, height0=20.0, M=EcefMatrix(_0_0_=-0.694658, _0_1_=-0.391781, _0_2_=0.603289, _1_0_=0.71934, _1_1_=-0.378338, _1_2_=0.58259, _2_0_=0.0, _2_1_=0.838671, _2_2_=0.544639), ecef=EcefSudano(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Test'\n    test 392 forward: 37288.97, 33374.29, 5783.65\n    test 393 name: Test\n    test 394 reverse: 33.33, 44.4, 5998.84  FAILED, KNOWN, expected 33.3, 44.4, 6000.0\n    test 395 name: Test\n    test 396 name: Paris\n    test 397 Paris: 48.833, 2.333, 0.0\n    test 398 forward: -37518.64, 229949.65, -4260.43\n    test 399 name: Calais\n    test 400 reverse: 51.01, 1.8, -11.8  FAILED, KNOWN, expected 50.9, 1.8, -0.0\n    test 401 name: Paris\n    test 402 reverse: -38000.0, 230000.0, -4000.0\n    test 403 reverse: 51.01, 1.79, 253.12  FAILED, KNOWN, expected 50.9, 1.79, 264.92\n    test 404 forward: -38223.7, 229964.2, -4000.0\n\n    test 405 Zermatt: lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefSudano(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'  FAILED, KNOWN, expected Ltp\n    test 406 Matterhorn: (46.06, 7.658, 4524.116)  FAILED, KNOWN, expected (45.976, 7.658, 4531.01)\n    test 407 xyz: (-7124.0, 4817.7, 2845.3)  FAILED, KNOWN, expected (-7134.8, -4556.3, 2852.4)\n    test 408 _local2ecef: 4403757.602, 592124.536, 4566652.082\n    test 409 _local2ecef: (4403757.602, 592124.536, 4566652.082, 46.06, 7.658, 4524.116, 1, None, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))  FAILED, KNOWN, expected Ecef9Tuple\n    test 410 _local2ecef: Ecef9Tuple\n    test 411 _ecef2local: (-7134.8, -4556.3, 2852.4, 46.06, 7.658, 4524.116, Ltp(lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefSudano(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'), Ecef9Tuple(x=4403757.601549, y=592124.535536, z=4566652.082005, lat=46.060275, lon=7.657999, height=4524.115631, C=1, M=None, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84)), None)  FAILED, KNOWN, expected Local9Tuple\n    test 412 _ecef2local: Local9Tuple\n    test 413 Xyz: (-7134.8, -4556.3, 2852.4, None)\n    test 414 Aer: (-7134.912, -4444.548, 2852.474, None)\n    test 415 Enu: (-7134.8, -4556.3, 2852.4, None)\n    test 416 Ned: [-4556.3, -7134.8, -2852.4]\n    test 417 Enu: [-7134.8, -4556.3, 2852.4]\n    test 418 Ned: [-4556.3, -7134.8, -2852.4]\n\n    test 419 lon00: (90.0, 57.3, 0.0, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 420 lon00: (90.0, 3.75, 0.0, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n\n    test 421 Frustum: 90.0, 90.0\n    test 422 hfov: 90.0\n    test 423 vfov: 90.0\n    test 424 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None))\n    test 425 footprint.xyzLocal5: ([X:0.0, Y:0.0, Z:0.0], [X:1000.0, Y:1000.0, Z:0.0], [X:1000.0, Y:1000.0, Z:0.0], [X:-1000.0, Y:-1000.0, Z:0.0], [X:-1000.0, Y:-1000.0, Z:0.0])\n    test 426 footprint.toLatLon5: (LatLon_(00.0°N, 000.0°E), LatLon_(00.009044°N, 000.008983°E, +0.16), LatLon_(00.009044°N, 000.008983°E, +0.16), LatLon_(00.009044°S, 000.008983°W, +0.16), LatLon_(00.009044°S, 000.008983°W, +0.16))\n\n    test 427 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None))\n    test 428 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=414.213562, y=414.213562, z=0.0, ltp=None), Xyz4Tuple(x=414.213562, y=414.213562, z=0.0, ltp=None), Xyz4Tuple(x=-414.213562, y=-414.213562, z=0.0, ltp=None), Xyz4Tuple(x=-414.213562, y=-414.213562, z=0.0, ltp=None))\n    test 429 footprint: (Xyz4Tuple(x=-57289.961631, y=-57289.961631, z=0.0, ltp=None), Xyz4Tuple(x=2538.647896, y=2538.647896, z=0.0, ltp=None), Xyz4Tuple(x=2538.647896, y=2538.647896, z=0.0, ltp=None), Xyz4Tuple(x=-2299.842547, y=-2299.842547, z=0.0, ltp=None), Xyz4Tuple(x=-2299.842547, y=-2299.842547, z=0.0, ltp=None))\n\n    test 430 Attitude: (0.0, -10.0, 330.0, -20.0)\n    test 431 alt: 0.0\n    test 432 tilt: -10.0\n    test 433 roll: -20.0\n    test 434 yaw: 330.0\n    test 435 matrix: ((0.8137976813493736, -0.44096961052988237, -0.37852230636979256), (0.46984631039295416, 0.8825641192593855, -0.018028311236297286), (0.3420201433256688, -0.16317591116653488, 0.9254165783983233))  FAILED, KNOWN, expected ((0.8137976813493737, -0.4409696105298823, -0.3785223063697926), (0.4698463103929541, 0.8825641192593856, -0.01802831123629725), (0.3420201433256688, -0.16317591116653488, 0.9254165783983233))\n    test 436 rotate: (-0.005694, 1.334382, 1.104261)\n    test 437 tyr3d: (0.0, 0.0, 0.0)\n    test 438 tyr3d: (0.0, -2.0, 0.0)\n    test 439 tyr3d: (0.0, -2.0, 0.0)\n    test 440 tyr3d: (0.0, 0.0, -2.0)\n\n    test 441 Ltp: {'ecef': EcefYou(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name='')}\n    test 442 name: Test\n    test 443 toStr: Ltp(lat0=33.0, lon0=44.0, height0=20.0, M=EcefMatrix(_0_0_=-0.694658, _0_1_=-0.391781, _0_2_=0.603289, _1_0_=0.71934, _1_1_=-0.378338, _1_2_=0.58259, _2_0_=0.0, _2_1_=0.838671, _2_2_=0.544639), ecef=EcefYou(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Test')  FAILED, KNOWN, expected Ltp\n    test 444 copy(<class 'type'>): (<class 'pygeodesy.ltp.Ltp'>, True)\n    test 445 Ltp.copy(): (<class 'pygeodesy.ltp.Ltp'>, True)\n    test 446 New: lat0=33.0, lon0=44.0, height0=20.0, M=EcefMatrix(_0_0_=-0.694658, _0_1_=-0.391781, _0_2_=0.603289, _1_0_=0.71934, _1_1_=-0.378338, _1_2_=0.58259, _2_0_=0.0, _2_1_=0.838671, _2_2_=0.544639), ecef=EcefYou(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Test'\n    test 447 forward: 37288.97, 33374.29, 5783.65\n    test 448 name: Test\n    test 449 reverse: 33.3, 44.4, 6000.0\n    test 450 name: Test\n    test 451 name: Paris\n    test 452 Paris: 48.833, 2.333, 0.0\n    test 453 forward: -37518.64, 229949.65, -4260.43\n    test 454 name: Calais\n    test 455 reverse: 50.9, 1.8, -0.0\n    test 456 name: Paris\n    test 457 reverse: -38000.0, 230000.0, -4000.0\n    test 458 reverse: 50.9, 1.79, 264.92\n    test 459 forward: -38223.7, 229964.2, -4000.0\n\n    test 460 Zermatt: lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefYou(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'  FAILED, KNOWN, expected Ltp\n    test 461 Matterhorn: (45.976, 7.658, 4531.01)\n    test 462 xyz: (-7134.8, -4556.3, 2852.4)\n    test 463 _local2ecef: 4403757.602, 592124.536, 4566652.082\n    test 464 _local2ecef: (4403757.602, 592124.536, 4566652.082, 45.976, 7.658, 4531.01, 1, None, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))  FAILED, KNOWN, expected Ecef9Tuple\n    test 465 _local2ecef: Ecef9Tuple\n    test 466 _ecef2local: (-7134.8, -4556.3, 2852.4, 45.976, 7.658, 4531.01, Ltp(lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefYou(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'), Ecef9Tuple(x=4403757.601549, y=592124.535536, z=4566652.082005, lat=45.976, lon=7.657999, height=4531.009608, C=1, M=None, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84)), None)  FAILED, KNOWN, expected Local9Tuple\n    test 467 _ecef2local: Local9Tuple\n    test 468 Xyz: (-7134.8, -4556.3, 2852.4, None)\n    test 469 Aer: (-7134.912, -4444.548, 2852.474, None)\n    test 470 Enu: (-7134.8, -4556.3, 2852.4, None)\n    test 471 Ned: [-4556.3, -7134.8, -2852.4]\n    test 472 Enu: [-7134.8, -4556.3, 2852.4]\n    test 473 Ned: [-4556.3, -7134.8, -2852.4]\n\n    test 474 lon00: (90.0, 57.3, 0.0, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 475 lon00: (90.0, 3.75, 0.0, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n\n    test 476 Frustum: 90.0, 90.0\n    test 477 hfov: 90.0\n    test 478 vfov: 90.0\n    test 479 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None))\n    test 480 footprint.xyzLocal5: ([X:0.0, Y:0.0, Z:0.0], [X:1000.0, Y:1000.0, Z:0.0], [X:1000.0, Y:1000.0, Z:0.0], [X:-1000.0, Y:-1000.0, Z:0.0], [X:-1000.0, Y:-1000.0, Z:0.0])\n    test 481 footprint.toLatLon5: (LatLon_(00.0°N, 000.0°E), LatLon_(00.009044°N, 000.008983°E, +0.16), LatLon_(00.009044°N, 000.008983°E, +0.16), LatLon_(00.009044°S, 000.008983°W, +0.16), LatLon_(00.009044°S, 000.008983°W, +0.16))\n\n    test 482 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=1000.0, y=1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None), Xyz4Tuple(x=-1000.0, y=-1000.0, z=0.0, ltp=None))\n    test 483 footprint: (Xyz4Tuple(x=0.0, y=0.0, z=0.0, ltp=None), Xyz4Tuple(x=414.213562, y=414.213562, z=0.0, ltp=None), Xyz4Tuple(x=414.213562, y=414.213562, z=0.0, ltp=None), Xyz4Tuple(x=-414.213562, y=-414.213562, z=0.0, ltp=None), Xyz4Tuple(x=-414.213562, y=-414.213562, z=0.0, ltp=None))\n    test 484 footprint: (Xyz4Tuple(x=-57289.961631, y=-57289.961631, z=0.0, ltp=None), Xyz4Tuple(x=2538.647896, y=2538.647896, z=0.0, ltp=None), Xyz4Tuple(x=2538.647896, y=2538.647896, z=0.0, ltp=None), Xyz4Tuple(x=-2299.842547, y=-2299.842547, z=0.0, ltp=None), Xyz4Tuple(x=-2299.842547, y=-2299.842547, z=0.0, ltp=None))\n\n    test 485 Attitude: (0.0, -10.0, 330.0, -20.0)\n    test 486 alt: 0.0\n    test 487 tilt: -10.0\n    test 488 roll: -20.0\n    test 489 yaw: 330.0\n    test 490 matrix: ((0.8137976813493736, -0.44096961052988237, -0.37852230636979256), (0.46984631039295416, 0.8825641192593855, -0.018028311236297286), (0.3420201433256688, -0.16317591116653488, 0.9254165783983233))  FAILED, KNOWN, expected ((0.8137976813493737, -0.4409696105298823, -0.3785223063697926), (0.4698463103929541, 0.8825641192593856, -0.01802831123629725), (0.3420201433256688, -0.16317591116653488, 0.9254165783983233))\n    test 491 rotate: (-0.005694, 1.334382, 1.104261)\n    test 492 tyr3d: (0.0, 0.0, 0.0)\n    test 493 tyr3d: (0.0, -2.0, 0.0)\n    test 494 tyr3d: (0.0, -2.0, 0.0)\n    test 495 tyr3d: (0.0, 0.0, -2.0)\n\n    test 496 ChLV: ...\n    test 497 name: Test\n    test 498 ChLV_: ChLV\n\n    test 499 forward1: (-72.039994, -147.361444, -49.552111, 46.95108, 7.438637, 0.0, ChLV(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n    test 500 Y, X, h_: (-72.03999403763596, -147.36144397473055, -49.5521107337268)\n    test 501 EN2_LV95: (2599927.960006, 1199852.638556)\n    test 502 yx2_LV03: (599927.960006, 199852.638556)\n    test 503 reverse1: (-72.039994, -147.361444, -49.552111, 46.95108, 7.438637, 0.0, ChLV(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n\n    test 504 reverse2: (100000.0, 0.0, 600.0, 46.944873, 8.752874, 1431.948128, ChLV(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n    test 505 forward2: (100000.0, 0.0, 600.0, 46.944873, 8.752874, 1431.948128, ChLV(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n    test 506 Y, X, h_: (100000.00000000006, -6.588459045415719e-10, 600.0000000007242)\n    test 507 EN2_LV95: (2700000.0, 1200000.0)\n    test 508 yx2_LV03: (700000.0, 200000.0)\n\n    test 509 forward3: (99920.639806, -100148.24791, -967.661696, 46.044131, 8.730497, 650.6, ChLV(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n    test 510 Y, X, h_: (99920.63980649532, -100148.24791021261, -967.6616955399912)\n    test 511 EN2_LV95: (2699920.639806, 1099851.75209)\n    test 512 yx2_LV03: (699920.639806, 99851.75209)\n    test 513 reverse3: (99920.639806, -100148.24791, -967.661696, 46.044131, 8.730497, 650.6, ChLV(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n\n    test 514 forward4: (79527.502386, 12274.804229, -556.312155, 47.058043, 8.48642, 0.0, ChLV(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n    test 515 Y, X, h_: (79527.50238583283, 12274.80422893927, -556.3121548987446)\n    test 516 EN2_LV95: (2679527.502386, 1212274.804229)\n    test 517 yx2_LV03: (679527.502386, 212274.804229)\n    test 518 reverse4: (79527.502386, 12274.804229, -556.312155, 47.058043, 8.48642, -0.0, ChLV(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n\n    test 519 REFRAME1: (8.616351530455896, 46.654750670631664, 3083.4064441197074)  FAILED, KNOWN, expected (8.61588452888461, 46.6532932166132, 2367.70367439557)\n    test 520 REFRAME1:  0.00146 m\n    test 521 REFRAME2: (10.204043023734306, 46.777835938708535, 5053.168786317753)  FAILED, KNOWN, expected (10.2046874099038, 46.7763864160066, 1546.62256775331)\n    test 522 REFRAME2:  0.00145 m\n    test 523 REFRAME3: (7.231565437123991, 47.395386713752515, 1150.358929550846)  FAILED, KNOWN, expected (7.23058814336896, 47.3941353658685, 940.206020880491)\n    test 524 REFRAME3:  0.00125 m\n    test 525 REFRAME4: (9.843252123471997, 46.814319314291666, 4291.256736215736)  FAILED, KNOWN, expected (9.84351348200287, 46.8129146868336, 1645.59174753912)\n    test 526 REFRAME4:  0.0014 m\n    test 527 REFRAME5: (6.568908171267955, 46.52284580890318, 985.7597106108213)  FAILED, KNOWN, expected (6.56789363190021, 46.5214647527993, 460.491580192)\n    test 528 REFRAME5:  0.00138 m\n    test 529 REFRAME6: (8.731242095241983, 46.04567715552448, 2216.7888714367236)  FAILED, KNOWN, expected (8.73049738375132, 46.0441209510033, 650.012275829911)\n    test 530 REFRAME6:  0.00156 m\n\n    test 531 Bollinger.lat: 46°11′13.03444″N  FAILED, KNOWN, expected 46°11′12.03969″N\n    test 532 Bollinger.lon: 009°07′55.69155″E  FAILED, KNOWN, expected 009°07′57.29664″E\n    test 533 Zermatt: (46.01693292843191, 7.7455811694023975, 2629.5454517406183)  FAILED, KNOWN, expected (46.015314107, 7.74720273, 1742.449)\n    test 534 Zermatt:  0.00162 m\n    test 535 Zimmerwald: (46.878427446046224, 7.466218796566257, 953.0972897404835)  FAILED, KNOWN, expected (46.878427446, 7.466218797, 953.0973)\n    test 536 Zimmerwald:  4.34e-10 m\n    test 537 Chrischona: (47.56830864684501, 7.66954858440231, 897.4060435656095)  FAILED, KNOWN, expected (47.568308647, 7.6695485844, 897.406)\n    test 538 Chrischona:  1.55e-10 m\n    test 539 Pfaender: (47.516320169780975, 9.784378737247414, 3868.8598426346603)  FAILED, KNOWN, expected (47.5163201698, 9.7843787372, 3868.8599)\n    test 540 Pfaender:  4.74e-11 m\n    test 541 La Givrine: (46.45557406857667, 6.103316269663712, 2313.9449708991415)  FAILED, KNOWN, expected (46.4555740686, 6.1033162697, 2313.94497)\n    test 542 La Givrine:  3.63e-11 m\n    test 543 Monte Generoso: (45.93111844449693, 9.021602047098654, 3855.4332412055323)  FAILED, KNOWN, expected (45.9311184445, 9.0216020471, 3855.4332)\n    test 544 Monte Generoso:  3.07e-12 m\n\n    test 545 ChLVa: ...\n    test 546 name: Test\n    test 547 ChLV_: ChLVa\n\n    test 548 forward1: (0.329415, -0.292702, -49.554242, 46.95108, 7.438637, 0.0, ChLVa(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n    test 549 Y, X, h_: (0.3294154685019251, -0.2927016084473205, -49.554241824400016)\n    test 550 EN2_LV95: (2600000.329415, 1199999.707298)\n    test 551 yx2_LV03: (600000.329415, 199999.707298)\n    test 552 reverse1: (0.329415, -0.292702, -49.554242, 46.951078, 7.438642, -0.004239, ChLVa(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n\n    test 553 reverse2: (100000.0, -100000.0, 600.0, 46.044127, 8.730499, 650.554, ChLVa(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n    test 554 forward2: (99999.933937, -100000.44412, 600.003469, 46.044127, 8.730499, 650.554, ChLVa(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n    test 555 Y, X, h_: (99999.93393731702, -100000.44412019118, 600.0034685464)\n    test 556 EN2_LV95: (2699999.933937, 1099999.55588)\n    test 557 yx2_LV03: (699999.933937, 99999.55588)\n\n    test 558 forward3: (99999.763621, -100000.026905, 600.049476, 46.044131, 8.730497, 650.6, ChLVa(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n    test 559 Y, X, h_: (99999.76362116335, -100000.0269049639, 600.0494759100001)\n    test 560 EN2_LV95: (2699999.763621, 1099999.973095)\n    test 561 yx2_LV03: (699999.763621, 99999.973095)\n    test 562 reverse3: (99999.763621, -100000.026905, 600.049476, 46.044127, 8.730496, 650.603479, ChLVa(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n\n    test 563 forward4: (79602.736359, 12421.914221, -48.257243, 47.058043, 8.48642, 0.0, ChLVa(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n    test 564 Y, X, h_: (79602.73635877526, 12421.914220824743, -48.25724328779257)\n    test 565 EN2_LV95: (2679602.736359, 1212421.914221)\n    test 566 yx2_LV03: (679602.736359, 212421.914221)\n    test 567 reverse4: (79602.736359, 12421.914221, -48.257243, 47.058038, 8.486421, 0.00853, ChLVa(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n\n    test 568 REFRAME1: (8.615878879495897, 46.65329026883798, 2365.31877736998)  FAILED, KNOWN, expected (8.61588452888461, 46.6532932166132, 2367.70367439557)\n    test 569 REFRAME1:  5.65e-06 m\n    test 570 REFRAME2: (10.204675703252203, 46.77638487390875, 1542.5231657804)  FAILED, KNOWN, expected (10.2046874099038, 46.7763864160066, 1546.62256775331)\n    test 571 REFRAME2:  1.17e-05 m\n    test 572 REFRAME3: (7.230597895755378, 47.39413163959343, 939.5622657947999)  FAILED, KNOWN, expected (7.23058814336896, 47.3941353658685, 940.206020880491)\n    test 573 REFRAME3:  9.75e-06 m\n    test 574 REFRAME4: (9.843502988079765, 46.812913925274714, 1642.70478811448)  FAILED, KNOWN, expected (9.84351348200287, 46.8129146868336, 1645.59174753912)\n    test 575 REFRAME4:  1.05e-05 m\n    test 576 REFRAME5: (6.5678939352793595, 46.521468558550154, 462.1027394584)  FAILED, KNOWN, expected (6.56789363190021, 46.5214647527993, 460.491580192)\n    test 577 REFRAME5:  3.81e-06 m\n    test 578 REFRAME6: (8.730499333333333, 46.04412677777777, 650.554)  FAILED, KNOWN, expected (8.73049738375132, 46.0441209510033, 650.012275829911)\n    test 579 REFRAME6:  5.83e-06 m\n\n    test 580 Bollinger.lat: 46°11′07.65425″N  FAILED, KNOWN, expected 46°11′12.03969″N\n    test 581 Bollinger.lon: 009°07′52.99874″E  FAILED, KNOWN, expected 009°07′57.29664″E\n    test 582 Zermatt: (46.01531297876282, 7.744712831892469, 1739.1724096628)  FAILED, KNOWN, expected (46.015314107, 7.74720273, 1742.449)\n    test 583 Zermatt:  0.00249 m\n    test 584 Zimmerwald: (46.877092307814216, 7.465275686541408, 947.6256267527999)  FAILED, KNOWN, expected (46.878427446, 7.466218797, 953.0973)\n    test 585 Zimmerwald:  0.00134 m\n    test 586 Chrischona: (47.56704452300608, 7.668609312668058, 503.84493534800004)  FAILED, KNOWN, expected (47.568308647, 7.6695485844, 897.406)\n    test 587 Chrischona:  0.00126 m\n    test 588 Pfaender: (47.51533372240414, 9.784358161933797, 1088.46794437916)  FAILED, KNOWN, expected (47.5163201698, 9.7843787372, 3868.8599)\n    test 589 Pfaender:  0.000986 m\n    test 590 La Givrine: (46.45409066669543, 6.1020351431347315, 1259.50889260448)  FAILED, KNOWN, expected (46.4555740686, 6.1033162697, 2313.94497)\n    test 591 La Givrine:  0.00148 m\n    test 592 Monte Generoso: (45.92930092608269, 9.021219925007552, 1687.1468504651998)  FAILED, KNOWN, expected (45.9311184445, 9.0216020471, 3855.4332)\n    test 593 Monte Generoso:  0.00182 m\n\n    test 594 ChLVe: ...\n    test 595 name: Test\n    test 596 ChLV_: ChLVe\n\n    test 597 forward1: (-72.031251, -147.344948, -49.554242, 46.95108, 7.438637, 0.0, ChLVe(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n    test 598 Y, X, h_: (-72.031251437589, -147.3449483831346, -49.554241824400016)\n    test 599 EN2_LV95: (2599927.968749, 1199852.655052)\n    test 600 yx2_LV03: (599927.968749, 199852.655052)\n    test 601 reverse1: (-72.031251, -147.344948, -49.554242, 46.95108, 7.438637, 0.000002, ChLVe(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n\n    test 602 reverse2: (100000.0, 0.0, 600.0, 46.944869, 8.753274, 648.29, ChLVe(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n    test 603 forward2: (100000.000001, 0.0, 600.012265, 46.944869, 8.753274, 648.29, ChLVe(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n    test 604 Y, X, h_: (100000.00000057962, 1.8112537807228997e-07, 600.0122653531955)\n    test 605 EN2_LV95: (2700000.000001, 1200000.0)\n    test 606 yx2_LV03: (700000.000001, 200000.0)\n\n    test 607 forward3: (99914.740455, -100135.079382, 600.049476, 46.044131, 8.730497, 650.6, ChLVe(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n    test 608 Y, X, h_: (99914.74045471674, -100135.07938181335, 600.0494759100001)\n    test 609 EN2_LV95: (2699914.740455, 1099864.920618)\n    test 610 yx2_LV03: (699914.740455, 99864.920618)\n    test 611 reverse3: (99914.740455, -100135.079382, 600.049476, 46.044131, 8.730497, 650.607608, ChLVe(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n\n    test 612 forward4: (79520.050001, 12273.439993, -48.257243, 47.058043, 8.48642, 0.0, ChLVe(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n    test 613 Y, X, h_: (79520.05000103211, 12273.439993103837, -48.25724328779257)\n    test 614 EN2_LV95: (2679520.050001, 1212273.439993)\n    test 615 yx2_LV03: (679520.050001, 212273.439993)\n    test 616 reverse4: (79520.050001, 12273.439993, -48.257243, 47.058043, 8.48642, 0.012933, ChLVe(lat0=46.952405556, lon0=7.439583333, height0=49.55, M=...\n\n    test 617 REFRAME1: (8.617004216786864, 46.65457267826783, 2365.31877736998)  FAILED, KNOWN, expected (8.61588452888461, 46.6532932166132, 2367.70367439557)\n    test 618 REFRAME1:  0.00128 m\n    test 619 REFRAME2: (10.206045201491072, 46.77766011924391, 1542.5231657804)  FAILED, KNOWN, expected (10.2046874099038, 46.7763864160066, 1546.62256775331)\n    test 620 REFRAME2:  0.00136 m\n    test 621 REFRAME3: (7.231508661195409, 47.39550748841831, 939.5622657947999)  FAILED, KNOWN, expected (7.23058814336896, 47.3941353658685, 940.206020880491)\n    test 622 REFRAME3:  0.00137 m\n    test 623 REFRAME4: (9.844818386934287, 46.81419800173997, 1642.70478811448)  FAILED, KNOWN, expected (9.84351348200287, 46.8129146868336, 1645.59174753912)\n    test 624 REFRAME4:  0.0013 m\n    test 625 REFRAME5: (6.568709824649145, 46.52273852064229, 462.1027394584)  FAILED, KNOWN, expected (6.56789363190021, 46.5214647527993, 460.491580192)\n    test 626 REFRAME5:  0.00127 m\n    test 627 REFRAME6: (8.731627351611777, 46.04533300622347, 650.554)  FAILED, KNOWN, expected (8.73049738375132, 46.0441209510033, 650.012275829911)\n    test 628 REFRAME6:  0.00121 m\n\n    test 629 Bollinger.lat: 46°11′12.03969″N\n    test 630 Bollinger.lon: 009°07′57.29664″E\n    test 631 Bollinger.gamma: 1.3747154949761575\n\n    test 632 Zermatt: (46.016524980589146, 7.745700583699864, 1739.1724096628)  FAILED, KNOWN, expected (46.015314107, 7.74720273, 1742.449)\n    test 633 Zermatt:  0.0015 m\n    test 634 Zimmerwald: (46.878408134660475, 7.46622597045386, 947.6256267527999)  FAILED, KNOWN, expected (46.878427446, 7.466218797, 953.0973)\n    test 635 Zimmerwald:  1.93e-05 m\n    test 636 Chrischona: (47.56844071309313, 7.66959585429788, 503.84493534800004)  FAILED, KNOWN, expected (47.568308647, 7.6695485844, 897.406)\n    test 637 Chrischona:  0.000132 m\n    test 638 Pfaender: (47.51669640784962, 9.785678729594727, 1088.46794437916)  FAILED, KNOWN, expected (47.5163201698, 9.7843787372, 3868.8599)\n    test 639 Pfaender:  0.0013 m\n    test 640 La Givrine: (46.45534732351903, 6.102781792813615, 1259.50889260448)  FAILED, KNOWN, expected (46.4555740686, 6.1033162697, 2313.94497)\n    test 641 La Givrine:  0.000534 m\n    test 642 Monte Generoso: (45.93048753878003, 9.022387820586593, 1687.1468504651998)  FAILED, KNOWN, expected (45.9311184445, 9.0216020471, 3855.4332)\n    test 643 Monte Generoso:  0.000786 m\n\n    102 of 643 testLtp.py tests (15.9%) FAILED, incl. 90 KNOWN plus 12 DeprecationWarnings (pygeodesy 26.3.26 Python 3.14.3 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 58.345 ms\nrunning /Library/Framewo....n3.14 -W default ~/PyGeodesy/test/testLtpTuples.py\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.Aer from .ltpTuples by testLtpTuples.py line 11\n# lazily imported pygeodesy.Enu from .ltpTuples by testLtpTuples.py line 11\n# lazily imported pygeodesy.fstr from .streprs by testLtpTuples.py line 11\n# lazily imported pygeodesy.Local9Tuple from .ltpTuples by testLtpTuples.py line 11\n# lazily imported pygeodesy.Los from .ltpTuples by testLtpTuples.py line 11\n# lazily imported pygeodesy.Ltp from .ltp by testLtpTuples.py line 11\n# lazily imported pygeodesy.Ned from .ltpTuples by testLtpTuples.py line 11\n# lazily imported pygeodesy.XyzLocal from .ltpTuples by testLtpTuples.py line 11\n\n    testing testLtpTuples.py 23.11.21 isLazy=3\n# imported pygeodesy.ltp into ltpTuples.py line 1585\n\n    test 1 Aer.toRepr: [A:60.0°, E:40.0°, R:1000.0]\n    test 2 Aer.toStr: [60.0, 40.0, 1000.0]\n    test 3 Aer.xyzLocal.toAer: [60.0, 40.0, 1000.0]\n    test 4 Aer.xyzLocal.toAer: [60.0, 40.0, 1000.0]\n    test 5 Aer.xyzLocal.toEnu: [663.41, 383.02, 642.79]\n    test 6 Enu.xyzLocal.toAer: [60.0, 40.0, 1000.0]\n    test 7 Aer.xyzLocal.toNed: [383.02, 663.41, -642.79]\n    test 8 Ned.xyzLocal.toAer: [60.0, 40.0, 1000.0]\n    test 9 Aer.xyzLocal.toXyz: [663.41, 383.02, 642.79]\n    test 10 Xyz.xyzLocal.toAer: [60.0, 40.0, 1000.0]\n    test 11 Aer.toCartesian: [4397663.96, 599165.33, 4568492.25]\n# imported pygeodesy.ltp into ecefLocals.py line 63\n    test 12 Cartesian.toLocal Aer: [60.0, 40.0, 1000.0]\n    test 13 Aer.toLatLon: 46°01′13.6″N, 007°45′30.83″E, +2315.83m\n    test 14 LatLon.toLocal Aer: [60.0, 40.0, 1000.0]\n    test 15 Aer.azimuth: 60.0\n    test 16 Aer.elevation: 40.0\n    test 17 Aer.slantrange: 1000.0\n    test 18 Aer.groundrange: 766.044\n    test 19 Aer.east: 663.414\n    test 20 Aer.north: 383.022\n    test 21 Aer.up: 642.788\n    test 22 Aer.down: -642.788\n    test 23 Aer.x: 663.414\n    test 24 Aer.y: 383.022\n    test 25 Aer.z: 642.788\n    test 26 Aer.xyz: 663.414, 383.022, 642.788\n\n    test 27 Los: [A:45.0°, E:-45.0°, R:1.0]\n    test 28 Los: [E:0.5, N:0.5, U:-0.707]\n    test 29 Los: [U:-0.707, V:0.5, W:0.5]\n    test 30 Los: [E:0.5, N:0.5, U:-0.707]\n\n    test 31 Enu.toRepr: [E:100.0, N:200.0, U:1000.0]\n    test 32 Enu.toStr: [100.0, 200.0, 1000.0]\n    test 33 Enu.xyzLocal.toAer: [26.57, 77.4, 1024.7]\n    test 34 Aer.xyzLocal.toEnu: [100.0, 200.0, 1000.0]\n    test 35 Enu.xyzLocal.toEnu: [100.0, 200.0, 1000.0]\n    test 36 Enu.xyzLocal.toEnu: [100.0, 200.0, 1000.0]\n    test 37 Enu.xyzLocal.toNed: [200.0, 100.0, -1000.0]\n    test 38 Ned.xyzLocal.toEnu: [100.0, 200.0, 1000.0]\n    test 39 Enu.xyzLocal.toXyz: [100.0, 200.0, 1000.0]\n    test 40 Xyz.xyzLocal.toEnu: [100.0, 200.0, 1000.0]\n    test 41 Enu.toCartesian: [4398116.23, 598658.27, 4568622.18]\n    test 42 Cartesian.toLocal Enu: [100.0, 200.0, 1000.0]\n    test 43 Enu.toLatLon: 46°01′07.67″N, 007°45′04.65″E, +2673.00m\n    test 44 LatLon.toLocal Enu: [100.0, 200.0, 1000.0]\n    test 45 Enu.azimuth: 26.565\n    test 46 Enu.elevation: 77.396\n    test 47 Enu.slantrange: 1024.695\n    test 48 Enu.groundrange: 223.607\n    test 49 Enu.east: 100.0\n    test 50 Enu.north: 200.0\n    test 51 Enu.up: 1000.0\n    test 52 Enu.down: -1000.0\n    test 53 Enu.x: 100.0\n    test 54 Enu.y: 200.0\n    test 55 Enu.z: 1000.0\n    test 56 Enu.xyz: 100.0, 200.0, 1000.0\n\n    test 57 Los: [A:45.0°, E:-45.0°, R:1.0]\n    test 58 Los: [E:0.5, N:0.5, U:-0.707]\n    test 59 Los: [U:-0.707, V:0.5, W:0.5]\n    test 60 Los: [E:0.5, N:0.5, U:-0.707]\n\n    test 61 Ned.toRepr: [N:200.0, E:100.0, D:1000.0]\n    test 62 Ned.toStr: [200.0, 100.0, 1000.0]\n    test 63 Ned.xyzLocal.toAer: [26.57, -77.4, 1024.7]\n    test 64 Aer.xyzLocal.toNed: [200.0, 100.0, 1000.0]\n    test 65 Ned.xyzLocal.toEnu: [100.0, 200.0, -1000.0]\n    test 66 Enu.xyzLocal.toNed: [200.0, 100.0, 1000.0]\n    test 67 Ned.xyzLocal.toNed: [200.0, 100.0, 1000.0]\n    test 68 Ned.xyzLocal.toNed: [200.0, 100.0, 1000.0]\n    test 69 Ned.xyzLocal.toXyz: [100.0, 200.0, -1000.0]\n    test 70 Xyz.xyzLocal.toNed: [200.0, 100.0, 1000.0]\n    test 71 Ned.toCartesian: [4396740.02, 598470.98, 4567183.09]\n    test 72 Cartesian.toLocal Ned: [200.0, 100.0, 1000.0]\n    test 73 Ned.toLatLon: 46°01′07.68″N, 007°45′04.65″E, +673.00m\n    test 74 LatLon.toLocal Ned: [200.0, 100.0, 1000.0]\n    test 75 Ned.azimuth: 26.565\n    test 76 Ned.elevation: -77.396\n    test 77 Ned.slantrange: 1024.695\n    test 78 Ned.groundrange: 223.607\n    test 79 Ned.east: 100.0\n    test 80 Ned.north: 200.0\n    test 81 Ned.up: -1000.0\n    test 82 Ned.down: 1000.0\n    test 83 Ned.x: 100.0\n    test 84 Ned.y: 200.0\n    test 85 Ned.z: -1000.0\n    test 86 Ned.xyz: 100.0, 200.0, -1000.0\n\n    test 87 Los: [A:45.0°, E:-45.0°, R:1.0]\n    test 88 Los: [E:0.5, N:0.5, U:-0.707]\n    test 89 Los: [U:-0.707, V:0.5, W:0.5]\n    test 90 Los: [E:0.5, N:0.5, U:-0.707]\n\n    test 91 Xyz.toRepr: [X:10.0, Y:20.0, Z:100.0]\n    test 92 Xyz.toStr: [10.0, 20.0, 100.0]\n    test 93 Xyz.xyzLocal.toAer: [26.57, 77.4, 102.47]\n    test 94 Aer.xyzLocal.toXyz: [10.0, 20.0, 100.0]\n    test 95 Xyz.xyzLocal.toEnu: [10.0, 20.0, 100.0]\n    test 96 Enu.xyzLocal.toXyz: [10.0, 20.0, 100.0]\n    test 97 Xyz.xyzLocal.toNed: [20.0, 10.0, -100.0]\n    test 98 Ned.xyzLocal.toXyz: [10.0, 20.0, 100.0]\n    test 99 Xyz.xyzLocal.toXyz: [10.0, 20.0, 100.0]\n    test 100 Xyz.xyzLocal.toXyz: [10.0, 20.0, 100.0]\n    test 101 Xyz.toCartesian: [4397637.41, 598502.28, 4567849.59]\n    test 102 Cartesian.toLocal Xyz: [10.0, 20.0, 100.0]\n    test 103 Xyz.toLatLon: 46°01′01.85″N, 007°45′00.46″E, +1773.00m\n    test 104 LatLon.toLocal Xyz: [10.0, 20.0, 100.0]\n    test 105 Xyz.azimuth: 26.565\n    test 106 Xyz.elevation: 77.396\n    test 107 Xyz.slantrange: 102.47\n    test 108 Xyz.groundrange: 22.361\n    test 109 Xyz.east: 10.0\n    test 110 Xyz.north: 20.0\n    test 111 Xyz.up: 100.0\n    test 112 Xyz.down: -100.0\n    test 113 Xyz.x: 10.0\n    test 114 Xyz.y: 20.0\n    test 115 Xyz.z: 100.0\n    test 116 Xyz.xyz: 10.0, 20.0, 100.0\n\n    test 117 Los: [A:45.0°, E:-45.0°, R:1.0]\n    test 118 Los: [E:0.5, N:0.5, U:-0.707]\n    test 119 Los: [U:-0.707, V:0.5, W:0.5]\n    test 120 Los: [E:0.5, N:0.5, U:-0.707]\n\n    test 121 Local9Tuple.toRepr: Local9Tuple(x=10.0, y=20.0, z=100.0, lat=46.02, lon=7.75, height=1773.0, ltp=Ltp(lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transfo\n    test 122 Local9Tuple.toStr: (10.0, 20.0, 100.0, 46.02, 7.75, 1773.0, Ltp(lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'\n    test 123 Local9Tuple.xyzLocal.toAer: [26.57, 77.4, 102.47]\n    test 124 Aer.xyzLocal.toLocal9Tuple: (10.0, 20.0, 100.0, 46.02, 7.75, 1773.0, Ltp(lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'\n    test 125 Local9Tuple.xyzLocal.toEnu: [10.0, 20.0, 100.0]\n    test 126 Enu.xyzLocal.toLocal9Tuple: (10.0, 20.0, 100.0, 46.02, 7.75, 1773.0, Ltp(lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'\n    test 127 Local9Tuple.xyzLocal.toNed: [20.0, 10.0, -100.0]\n    test 128 Ned.xyzLocal.toLocal9Tuple: (10.0, 20.0, 100.0, 46.02, 7.75, 1773.0, Ltp(lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'\n    test 129 Local9Tuple.xyzLocal.toXyz: [10.0, 20.0, 100.0]\n    test 130 Xyz.xyzLocal.toLocal9Tuple: (10.0, 20.0, 100.0, 46.02, 7.75, 1773.0, Ltp(lat0=46.017, lon0=7.75, height0=1673.0, M=EcefMatrix(_0_0_=-0.134851, _0_1_=-0.712973, _0_2_=0.688102, _1_0_=0.990866, _1_1_=-0.097031, _1_2_=0.093647, _2_0_=0.0, _2_1_=0.694445, _2_2_=0.719546), ecef=EcefKarney(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name='Zermatt'\n    test 131 Local9Tuple.toCartesian: [4397637.41, 598502.28, 4567849.59]\n    test 132 Local9Tuple.toLatLon: 46°01′01.85″N, 007°45′00.46″E, +1773.00m\n    test 133 Local9Tuple.azimuth: 26.565\n    test 134 Local9Tuple.elevation: 77.396\n    test 135 Local9Tuple.slantrange: 102.47\n    test 136 Local9Tuple.groundrange: 22.361\n    test 137 Local9Tuple.east: 10.0\n    test 138 Local9Tuple.north: 20.0\n    test 139 Local9Tuple.up: 100.0\n    test 140 Local9Tuple.down: -100.0\n    test 141 Local9Tuple.x: 10.0\n    test 142 Local9Tuple.y: 20.0\n    test 143 Local9Tuple.z: 100.0\n    test 144 Local9Tuple.xyz: 10.0, 20.0, 100.0\n    test 145 Local9Tuple.lat: 46.02\n    test 146 Local9Tuple.lon: 7.75\n    test 147 Local9Tuple.latlon: 46.02, 7.75\n    test 148 Local9Tuple.latlonheight: 46.02, 7.75, 1773.0\n    test 149 Local9Tuple.phi: 0.803\n    test 150 Local9Tuple.lam: 0.135\n    test 151 Local9Tuple.philam: 0.803, 0.135\n    test 152 Local9Tuple.philamheight: 0.803, 0.135, 1773.0\n\n    test 153 Los: [A:45.0°, E:-45.0°, R:1.0]\n    test 154 Los: [E:0.5, N:0.5, U:-0.707]\n    test 155 Los: [U:-0.707, V:0.5, W:0.5]\n    test 156 Los: [E:0.5, N:0.5, U:-0.707]\n\n    all 156 testLtpTuples.py tests passed (pygeodesy 26.3.26 Python 3.14.3 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 8.273 ms\nrunning /Library/Framewo....n3.14 -W default ~/PyGeodesy/test/testMgrs.py\n./test/testMgrs.py:88: DeprecationWarning: property_RO L{en100k<pygeodesy.mgrs.Mgrs.en100k>} has been DEPRECATED, use property C{EN}.\n  self.test(a, getattr(p, a), x)\n./test/testMgrs.py:88: DeprecationWarning: property_RO L{digraph<pygeodesy.mgrs.Mgrs.digraph>} has been DEPRECATED, use property C{EN}.\n  self.test(a, getattr(p, a), x)\n./test/testMgrs.py:94: DeprecationWarning: property_RO L{digraph<pygeodesy.mgrs.Mgrs6Tuple.digraph>} has been DEPRECATED, use attribute C{EN}.\n  self.test('digraph', m.digraph, m.EN, nt=1)  # DEPRECATED\n./test/testMgrs.py:117: DeprecationWarning: property_RO L{digraph<pygeodesy.mgrs.Mgrs4Tuple.digraph>} has been DEPRECATED, use attribute C{EN}.\n  self.test('digraph', t.digraph, t.EN)  # DEPRECATED\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.mgrs by testMgrs.py line 11\n# lazily imported pygeodesy.Mgrs from .mgrs by testMgrs.py line 11\n# lazily imported pygeodesy.parseMGRS from .mgrs by testMgrs.py line 11\n# lazily imported pygeodesy.ellipsoidalVincenty by testMgrs.py line 204\n\n    testing testMgrs.py 24.10.13 (module pygeodesy.mgrs 25.05.12) isLazy=3\n    test 1 Mgrs1: 42S XD 09705 38646\n    test 2 Mgrs1: [Z:42S, G:XD, E:09705, N:38646]\n    test 3 Mgrs2: 42S XD 19705 08646\n    test 4 Mgrs2: [Z:42S, G:XD, E:19705, N:08646]\n    test 5 Mgrs3: 42S XD 19000 38000\n    test 6 Mgrs3: [Z:42S, G:XD, E:19000, N:38000]\n    test 7 Mgrs4: 31U DQ 48251 11932\n    test 8 Mgrs4: [Z:31U, G:DQ, E:48251, N:11932]\n    test 9 Mgrs5: 31U DQ 48251 11932\n    test 10 Mgrs5: [Z:31U, G:DQ, E:48251, N:11932]\n    test 11 Mgrs6: 31U DQ 48251 11932\n    test 12 Mgrs6: [Z:31U, G:DQ, E:48251, N:11932]\n    test 13 Mgrs7: 31U DQ 48251 11932\n    test 14 Mgrs7: [Z:31U, G:DQ, E:48251, N:11932]\n    test 15 Mgrs8: 31 N 431000 4582000\n    test 16 Mgrs8: (41.38657, 2.174726, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), -0.54564, 0.999659)\n    test 17 Mgrs8: 31 N 431500 4582500\n    test 18 Mgrs8: 31T DF 31000 82000\n    test 19 Mgrs8: 41.391116°N, 002.180649°E\n    test 20 Mgrs8: 31T DF 31000 82000\n    test 21 Mgrs9: 31U DQ 48251 11932\n    test 22 Mgrs9: [Z:31U, G:DQ, E:48251, N:11932]\n    test 23 toUtm1: 31 N 448251 5411932\n    test 24 toUtm1: [Z:31U, H:N, E:448251, N:5411932]\n    test 25 toMgrs1: 31U DQ 48251 11932\n    test 26 toMgrs1: [Z:31U, G:DQ, E:48251, N:11932]\n\n    test 27 toUtm(None): (31, 'N', 448251.0, 5411932.0, 'U')\n    test 28 easting: 48251.0\n    test 29 northing: 11932.0\n    test 30 EN: DQ\n    test 31 en100k: DQ\n    test 32 digraph: DQ\n    test 33 zone: 31\n    test 34 band: U\n    test 35 bandLatitude: 48\n    test 36 eastingnorthing: (48251.0, 11932.0)\n    test 37 resolution: 1.0\n# lazily imported pygeodesy.utmups by mgrs.py line 278\n    test 38 tilesize: 100000.0\n\n    test 39 toMgrs: 31U DQ 48251 11932\n    test 40 toMgrs(None): Mgrs6Tuple\n    test 41 digraph: DQ\n\n    test 42 (60.0°N, 001.0°E).toUtmUps.toMgrs: 31V CG 88455 53097\n    test 43 (60.0°N, 003.0°E).toUtmUps.toMgrs: 32V JM 65640 66593\n    test 44 (60.0°N, 009.0°E).toUtmUps.toMgrs: 32V NM 00000 51411\n    test 45 (76.0°N, 001.0°E).toUtmUps.toMgrs: 31X DE 45999 36099\n    test 46 (76.0°N, 013.0°E).toUtmUps.toMgrs: 33X VE 45999 36099\n    test 47 (76.0°N, 025.0°E).toUtmUps.toMgrs: 35X ME 45999 36099\n    test 48 (76.0°N, 037.0°E).toUtmUps.toMgrs: 37X DE 45999 36099\n# imported pygeodesy.basics into errors.py line 443\n    test 49 (84.0°N, 042.0°E).toUtmUps.toMgrs: Z GC 46127 04524\n    test 50 (90.0°S, 000.0°E).toUtmUps.toMgrs: B AN 00000 00000\n\n    test 51 Mgrs: BAN00\n    test 52 Mgrs4Tuple: ('B', 'AN', 0.0, 0.0)\n    test 53 Mgrs4Tuple: SouthPole(zone='B', EN='AN', easting=0.0, northing=0.0)\n    test 54 digraph: AN\n    test 55 toMgrs.toLatLon: SouthPole(lat=-90.0, lon=0.0, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), gamma=-0.0, scale=0.994)\n\n    test 56 Ups: 00 S 2000000 2000000\n    test 57 Ups: 00 S 2000500 2000500\n    test 58 Mgrs: 0.1\n\n    test 59 Mgrs: Y UB 17770 03800\n    test 60 Mgrs: [Z:Y, G:UB, E:17770, N:03800]\n    test 61 toUtmUps: 00 N 1617775 1403805\n    test 62 toUtmUps: [Z:00Y, H:N, E:1617775, N:1403805]\n    test 63 toLatLon: (83.627518, -32.664231, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), -0.570098, 0.99708)\n    test 64 toLatLon: LatLonDatum5Tuple(lat=83.627518, lon=-32.664231, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), gamma=-0.570098, scale=0.99708)\n    test 65 toMgrs!: 25X EN 04160 86523\n\n    test 66 Mgrs: B FS 77514 99182\n    test 67 Mgrs: [Z:B, G:FS, E:77514, N:99182]\n    test 68 toUtmUps: 00 S 2377514 2499182\n    test 69 toUtmUps: [Z:00B, H:S, E:2377514, N:2499182]\n    test 70 toLatLon: (-84.367192, 37.098959, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), -0.647499, 0.996406)\n    test 71 toLatLon: LatLonDatum5Tuple(lat=-84.367192, lon=37.098959, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), gamma=-0.647499, scale=0.996406)\n    test 72 toMgrs: B FS 77514 99182\n\n    test 73 Mgrs: 45S XT 47000 91000\n    test 74 Mgrs: [Z:45S, G:XT, E:47000, N:91000]\n    test 75 toUtmUps: 45 N 647500 3791500\n    test 76 toUtmUps: [Z:45S, H:N, E:647500, N:3791500]\n    test 77 toLatLon: (34.254177, 88.601932, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), 0.901835, 0.999868)\n    test 78 toLatLon: LatLonDatum5Tuple(lat=34.254177, lon=88.601932, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), gamma=0.901835, scale=0.999868)\n    test 79 toMgrs: 45S XT 47499 91499\n\n    test 80 Mgrs: Y XK 35000 43000\n    test 81 Mgrs: [Z:Y, G:XK, E:35000, N:43000]\n    test 82 toUtmUps: 00 N 1735500 2243500\n    test 83 toUtmUps: [Z:00Y, H:N, E:1735500, N:2243500]\n    test 84 toLatLon: (86.762629, -132.632821, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), -2.314879, 0.994794)\n    test 85 toLatLon: LatLonDatum5Tuple(lat=86.762629, lon=-132.632821, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), gamma=-2.314879, scale=0.994794)\n    test 86 toMgrs: Y XK 35499 43500\n\n    4 of 86 testMgrs.py tests (4.7%) FAILED, incl. 4 DeprecationWarnings (pygeodesy 26.3.26 Python 3.14.3 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 10.457 ms\nrunning /Library/Framewo....n3.14 -W default ~/PyGeodesy/test/testModules.py\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n\n    testing testModules.py 24.06.05 isLazy=3\n\n    2805 tests skipped (2805): pygeodesy\n\n    all testModules.py tests passed, 2805 skipped (pygeodesy 26.3.26 Python 3.14.3 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 5.245 us\nrunning /Library/Framewo....n3.14 -W default ~/PyGeodesy/test/testNamed.py\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.angles by testNamed.py line 10\n# lazily imported pygeodesy.geohash by testNamed.py line 10\n# lazily imported pygeodesy.Datum from .datums by testNamed.py line 10\n# lazily imported pygeodesy.Datums from .datums by testNamed.py line 10\n# lazily imported pygeodesy.ltpTuples by testNamed.py line 10\n# lazily imported pygeodesy.nameof from .named by testNamed.py line 10\n# lazily imported pygeodesy.ub2str from .basics by testNamed.py line 10\n\n    testing testNamed.py 25.12.06 isLazy=3\n\n    testing _Named() (pygeodesy.named, 26.01.14)\n    test 1 _Named: _Named\n    test 2 _Named: True\n    test 3 _Named: ''\n    test 4 Test: Test\n    test 5 _Named 'Test': _Named 'Test'\n    test 6 named._Named 'Test': named._Named 'Test'\n    test 7 pygeodesy.named._Named 'Test': pygeodesy.named._Named 'Test'\n    test 8 Test: _Named.name = 'X' (was 'Test'): use _Named.rename('X')\n    test 9 Test: _Named 'Test'\n    test 10 _Named 'Test': Test\n    test 11 _Named 'Test': Test\n    test 12 _Named 'Test': _Named 'Test'\n    test 13 _Named 'Test': <_Named 'Test' at 0x105a3b770>  FAILED, KNOWN, expected _Named 'Test'\n    test 14 _Named 'Test': ''\n\n    testing _NamedBase() (pygeodesy.named, 26.01.14)\n    test 15 _NamedBase: _NamedBase\n    test 16 _NamedBase: True\n    test 17 _NamedBase: ''\n    test 18 Test: Test\n    test 19 _NamedBase 'Test': _NamedBase 'Test'\n    test 20 named._NamedBase 'Test': named._NamedBase 'Test'\n    test 21 pygeodesy.named._NamedBase 'Test': pygeodesy.named._NamedBase 'Test'\n    test 22 Test: _NamedBase.name = 'X' (was 'Test'): use _NamedBase.rename('X')\n    test 23 Test: named._NamedBase.toStr(), MRO(named._Named): not overloaded\n    test 24 _NamedBase 'Test': Test\n    test 25 _NamedBase 'Test': Test\n    test 26 _NamedBase 'Test': named._NamedBase.toStr(), MRO(named._Named): not overloaded\n    test 27 _NamedBase 'Test': named._NamedBase.toStr(), MRO(named._Named): not overloaded\n    test 28 _NamedBase 'Test': ''\n\n    testing _NamedDict() (pygeodesy.named, 26.01.14)\n    test 29 _NamedDict: _NamedDict\n    test 30 _NamedDict: True\n    test 31 _NamedDict: ''\n    test 32 Test: Test\n    test 33 _NamedDict 'Test': _NamedDict 'Test'\n    test 34 named._NamedDict 'Test': named._NamedDict 'Test'\n    test 35 pygeodesy.named._NamedDict 'Test': pygeodesy.named._NamedDict 'Test'\n    test 36 Test: _NamedDict.name = 'X' (was 'Test'): use _NamedDict.rename('X')\n    test 37 Test: {}\n    test 38 _NamedDict 'Test': Test\n    test 39 _NamedDict 'Test': Test\n    test 40 _NamedDict 'Test': {}\n    test 41 _NamedDict 'Test': Test()  FAILED, KNOWN, expected {}\n    test 42 _NamedDict: ''\n\n    testing _NamedEnum(<class 'pygeodesy.datums.Datum'>,) (pygeodesy.named, 26.01.14)\n    test 43 Datums: _NamedEnum\n    test 44 Datums: True\n    test 45 Datums: 'Datums'  FAILED, KNOWN, expected ''\n    test 46 Test: Test\n    test 47 _NamedEnum 'Test': _NamedEnum 'Test'\n    test 48 named._NamedEnum 'Test': named._NamedEnum 'Test'\n    test 49 pygeodesy.named._NamedEnum 'Test': pygeodesy.named._NamedEnum 'Test'\n    test 50 Test: _NamedEnum.name = 'X' (was 'Test'): use _NamedEnum.rename('X')\n    test 51 Test: Test.\n    test 52 _NamedEnum 'Test': Test\n    test 53 _NamedEnum 'Test': Test\n    test 54 _NamedEnum 'Test': Test.\n    test 55 _NamedEnum 'Test':   FAILED, KNOWN, expected Test.\n    test 56 _NamedEnum: ''\n\n    testing _NamedEnumItem() (pygeodesy.named, 26.01.14)\n    test 57 _NamedEnumItem: _NamedEnumItem\n    test 58 _NamedEnumItem: True\n    test 59 _NamedEnumItem: ''\n    test 60 Test: Test\n    test 61 _NamedEnumItem 'Test': _NamedEnumItem 'Test'\n    test 62 named._NamedEnumItem 'Test': named._NamedEnumItem 'Test'\n    test 63 pygeodesy.named._NamedEnumItem 'Test': pygeodesy.named._NamedEnumItem 'Test'\n    test 64 _NamedEnumItem 'Test': Test\n    test 65 _NamedEnumItem 'Test': Test\n    test 66 _NamedEnumItem 'Test': named._NamedEnumItem.toStr(), MRO(named._NamedBase, named._Named): not overloaded\n    test 67 _NamedEnumItem 'Test': named._NamedEnumItem.toStr(), MRO(named._NamedBase, named._Named): not overloaded\n    test 68 _NamedEnumItem 'Test': ''\n\n    testing LatLon2Tuple(0, 0) (pygeodesy.named, 26.01.14)\n    test 69 LatLon2Tuple: LatLon2Tuple\n    test 70 LatLon2Tuple: True\n    test 71 LatLon2Tuple: ''\n    test 72 Test: Test\n    test 73 LatLon2Tuple 'Test': LatLon2Tuple 'Test'\n    test 74 namedTuples.LatLon2Tuple 'Test': namedTuples.LatLon2Tuple 'Test'\n    test 75 pygeodesy.namedTuples.LatLon2Tuple 'Test': pygeodesy.namedTuples.LatLon2Tuple 'Test'\n    test 76 Test: LatLon2Tuple.name = 'X' (was 'Test'): use LatLon2Tuple.rename('X')\n    test 77 Test: (0, 0)\n    test 78 LatLon2Tuple 'Test': Test\n    test 79 LatLon2Tuple 'Test': Test\n    test 80 LatLon2Tuple 'Test': (0, 0)\n    test 81 LatLon2Tuple 'Test': Test(lat=0, lon=0)  FAILED, KNOWN, expected (0, 0)\n    test 82 LatLon2Tuple 'Test': ''\n\n    testing NamedDicts (pygeodesy.named, 26.01.14)\n# lazily imported pygeodesy.albers by bases.py line 199\n# lazily imported pygeodesy.azimuthal by bases.py line 199\n# lazily imported pygeodesy.booleans by bases.py line 199\n# lazily imported pygeodesy.clipy by bases.py line 199\n# lazily imported pygeodesy.css by bases.py line 199\n# lazily imported pygeodesy.ecef by bases.py line 199\n# lazily imported pygeodesy.elevations by bases.py line 199\n# lazily imported pygeodesy.ellipses by bases.py line 199\n# lazily imported pygeodesy.ellipsoidalBaseDI by bases.py line 199\n# lazily imported pygeodesy.ellipsoidalExact by bases.py line 199\n# lazily imported pygeodesy.ellipsoidalGeodSolve by bases.py line 199\n# lazily imported pygeodesy.ellipsoidalKarney by bases.py line 199\n# lazily imported pygeodesy.ellipsoidalNvector by bases.py line 199\n# lazily imported pygeodesy.ellipsoidalVincenty by bases.py line 199\n# lazily imported pygeodesy.elliptic by bases.py line 199\n# lazily imported pygeodesy.epsg by bases.py line 199\n# lazily imported pygeodesy.etm by bases.py line 199\n# lazily imported pygeodesy.frechet by bases.py line 199\n# lazily imported pygeodesy.fstats by bases.py line 199\n# lazily imported pygeodesy.gars by bases.py line 199\n# lazily imported pygeodesy.geod3solve by bases.py line 199\n# lazily imported pygeodesy.geodesici by bases.py line 199\n# lazily imported pygeodesy.geodesicw by bases.py line 199\n# lazily imported pygeodesy.geodsolve by bases.py line 199\n    test 83 Neighbors8Dict: Neighbors8Dict\n    test 84 Neighbors8Dict: 8-Dict C{(N, NE, E, SE, S, SW, W, NW)}\n    test 85 Neighbors8Dict: 8\n# lazily imported pygeodesy.geoids by bases.py line 199\n# lazily imported pygeodesy.hausdorff by bases.py line 199\n# lazily imported pygeodesy.ktm by bases.py line 199\n# lazily imported pygeodesy.lcc by bases.py line 199\n# lazily imported pygeodesy.ltp by bases.py line 199\n# lazily imported pygeodesy.mgrs by bases.py line 199\n# lazily imported pygeodesy.osgr by bases.py line 199\n# lazily imported pygeodesy.resections by bases.py line 199\n# lazily imported pygeodesy.simplify by bases.py line 199\n# lazily imported pygeodesy.sphericalBase by bases.py line 199\n# lazily imported pygeodesy.sphericalNvector by bases.py line 199\n# lazily imported pygeodesy.sphericalTrigonometry by bases.py line 199\n# lazily imported pygeodesy.trf by bases.py line 199\n# lazily imported pygeodesy.utmups by bases.py line 199\n# lazily imported pygeodesy.vector2d by bases.py line 199\n# lazily imported pygeodesy.webmercator by bases.py line 199\n# lazily imported pygeodesy.wgrs by bases.py line 199\n# lazily imported pygeodesy.auxilats by bases.py line 199\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by <frozen importlib._bootstrap> line 1423\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by <frozen importlib._bootstrap> line 1423\n# lazily imported pygeodesy.Conformal2Tuple from .triaxials.triaxial5 by <frozen importlib._bootstrap> line 1423\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by classes.py line 21\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by classes.py line 21\n# lazily imported pygeodesy.Conformal2Tuple from .triaxials.triaxial5 by classes.py line 21\n# lazily imported pygeodesy.deprecated by bases.py line 199\n# lazily imported pygeodesy.geodesicx by bases.py line 199\n\n    testing NamedTuples (pygeodesy.namedTuples, 26.03.12)\n    test 86 Albers7Tuple: Albers7Tuple\n    test 87 Albers7Tuple: 7-Tuple C{(x, y, lat, lon, gamma, scale, datum)}\n    test 88 Albers7Tuple: 7\n    test 89 Azimuthal7Tuple: Azimuthal7Tuple\n    test 90 Azimuthal7Tuple: 7-Tuple C{(x, y, lat, lon, azimuth, scale, datum)}\n    test 91 Azimuthal7Tuple: 7\n    test 92 RadiusThetaPhi3Tuple: RadiusThetaPhi3Tuple\n    test 93 RadiusThetaPhi3Tuple: 3-Tuple C{(r, theta, phi)}\n    test 94 RadiusThetaPhi3Tuple: 3\n    test 95 ClipCS4Tuple: ClipCS4Tuple\n    test 96 ClipCS4Tuple: 4-Tuple C{(start, end, i, j)}\n    test 97 ClipCS4Tuple: 4\n    test 98 ClipFHP4Tuple: ClipFHP4Tuple\n    test 99 ClipFHP4Tuple: 4-Tuple C{(lat, lon, height, clipid)}\n    test 100 ClipFHP4Tuple: 4\n    test 101 ClipGH4Tuple: ClipGH4Tuple\n    test 102 ClipGH4Tuple: 4-Tuple C{(lat, lon, height, clipid)}\n    test 103 ClipGH4Tuple: 4\n    test 104 ClipLB6Tuple: ClipLB6Tuple\n    test 105 ClipLB6Tuple: 6-Tuple C{(start, end, i, fi, fj, j)}\n    test 106 ClipLB6Tuple: 6\n    test 107 ClipSH3Tuple: ClipSH3Tuple\n    test 108 ClipSH3Tuple: 3-Tuple C{(start, end, original)}\n    test 109 ClipSH3Tuple: 3\n    test 110 EasNorAziRk4Tuple: EasNorAziRk4Tuple\n    test 111 EasNorAziRk4Tuple: 4-Tuple C{(easting, northing, azimuth, reciprocal)}\n    test 112 EasNorAziRk4Tuple: 4\n    test 113 EasNorAziRkEqu6Tuple: EasNorAziRkEqu6Tuple\n    test 114 EasNorAziRkEqu6Tuple: 6-Tuple C{(easting, northing, azimuth, reciprocal, equatorarc, equatorazimuth)}\n    test 115 EasNorAziRkEqu6Tuple: 6\n    test 116 LatLonAziRk4Tuple: LatLonAziRk4Tuple\n    test 117 LatLonAziRk4Tuple: 4-Tuple C{(lat, lon, azimuth, reciprocal)}\n    test 118 LatLonAziRk4Tuple: 4\n    test 119 Ecef9Tuple: Ecef9Tuple\n    test 120 Ecef9Tuple: 9-Tuple C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 121 Ecef9Tuple: 9\n    test 122 Elevation2Tuple: Elevation2Tuple\n    test 123 Elevation2Tuple: 2-Tuple C{(elevation, data_source)}\n    test 124 Elevation2Tuple: 2\n    test 125 GeoidHeight2Tuple: GeoidHeight2Tuple\n    test 126 GeoidHeight2Tuple: 2-Tuple C{(height, model_name)}\n    test 127 GeoidHeight2Tuple: 2\n    test 128 Curvature2Tuple: Curvature2Tuple\n    test 129 Curvature2Tuple: 2-Tuple C{(meridional, prime_vertical)}\n    test 130 Curvature2Tuple: 2\n    test 131 a_f2Tuple: a_f2Tuple\n    test 132 a_f2Tuple: 2-Tuple C{(a, f)}\n    test 133 a_f2Tuple: 2\n    test 134 Elliptic3Tuple: Elliptic3Tuple\n    test 135 Elliptic3Tuple: 3-Tuple C{(sn, cn, dn)}\n    test 136 Elliptic3Tuple: 3\n    test 137 Radical2Tuple: Radical2Tuple\n    test 138 Radical2Tuple: 2-Tuple C{(ratio, xline)}\n    test 139 Radical2Tuple: 2\n    test 140 Frechet6Tuple: Frechet6Tuple\n    test 141 Frechet6Tuple: 6-Tuple C{(fd, fi1, fi2, r, n, units)}\n    test 142 Frechet6Tuple: 6\n    test 143 DivMod2Tuple: DivMod2Tuple\n    test 144 DivMod2Tuple: 2-Tuple C{(div, mod)}\n    test 145 DivMod2Tuple: 2\n    test 146 Fsum2Tuple: Fsum2Tuple\n    test 147 Fsum2Tuple: 2-Tuple C{(fsum, residual)}\n    test 148 Fsum2Tuple: 2\n    test 149 Geod3Solve8Tuple: Geod3Solve8Tuple\n    test 150 Geod3Solve8Tuple: 8-Tuple C{(bet1, omg1, alp1, bet2, omg2, alp2, s12, a12)}\n    test 151 Geod3Solve8Tuple: 8\n    test 152 Intersect7Tuple: Intersect7Tuple\n    test 153 Intersect7Tuple: 7-Tuple C{(A, B, sAB, aAB, c, kA, kB)}\n    test 154 Intersect7Tuple: 7\n    test 155 Intersectool5Tuple: Intersectool5Tuple\n    test 156 Intersectool5Tuple: 5-Tuple C{(A, B, sAB, aAB, c)}\n    test 157 Intersectool5Tuple: 5\n    test 158 Intersector5Tuple: Intersector5Tuple\n    test 159 Intersector5Tuple: 5-Tuple C{(A, B, sAB, aAB, c)}\n    test 160 Intersector5Tuple: 5\n    test 161 Middle5Tuple: Middle5Tuple\n    test 162 Middle5Tuple: 5-Tuple C{(A, B, sMM, aMM, c)}\n    test 163 Middle5Tuple: 5\n    test 164 GeodSolve12Tuple: GeodSolve12Tuple\n    test 165 GeodSolve12Tuple: 12-Tuple C{(lat1, lon1, azi1, lat2, lon2, azi2, s12, a12, m12, M12, M21, S12)}\n    test 166 GeodSolve12Tuple: 12\n    test 167 Resolutions2Tuple: Resolutions2Tuple\n    test 168 Resolutions2Tuple: 2-Tuple C{(res1, res2)}\n    test 169 Resolutions2Tuple: 2\n    test 170 Sizes3Tuple: Sizes3Tuple\n    test 171 Sizes3Tuple: 3-Tuple C{(height, width, radius)}\n    test 172 Sizes3Tuple: 3\n    test 173 GeoidHeight5Tuple: GeoidHeight5Tuple\n    test 174 GeoidHeight5Tuple: 5-Tuple C{(lat, lon, egm84, egm96, egm2008)}\n    test 175 GeoidHeight5Tuple: 5\n    test 176 Hausdorff6Tuple: Hausdorff6Tuple\n    test 177 Hausdorff6Tuple: 6-Tuple C{(hd, i, j, mn, md, units)}\n    test 178 Hausdorff6Tuple: 6\n    test 179 Area3Tuple: Area3Tuple\n    test 180 Area3Tuple: 3-Tuple C{(number, perimeter, area)}\n    test 181 Area3Tuple: 3\n    test 182 Direct9Tuple: Direct9Tuple\n    test 183 Direct9Tuple: 9-Tuple C{(a12, lat2, lon2, azi2, s12, m12, M12, M21, S12)}\n    test 184 Direct9Tuple: 9\n    test 185 Inverse10Tuple: Inverse10Tuple\n    test 186 Inverse10Tuple: 10-Tuple C{(a12, s12, salp1, calp1, salp2, calp2, m12, M12, M21, S12)}\n    test 187 Inverse10Tuple: 10\n    test 188 Rhumb8Tuple: Rhumb8Tuple\n    test 189 Rhumb8Tuple: 8-Tuple C{(lat1, lon1, lat2, lon2, azi12, s12, S12, a12)}\n    test 190 Rhumb8Tuple: 8\n    test 191 Aer4Tuple: Aer4Tuple\n    test 192 Aer4Tuple: 4-Tuple C{(azimuth, elevation, slantrange, ltp)}\n    test 193 Aer4Tuple: 4\n    test 194 Attitude4Tuple: Attitude4Tuple\n    test 195 Attitude4Tuple: 4-Tuple C{(alt, tilt, yaw, roll)}\n    test 196 Attitude4Tuple: 4\n    test 197 ChLV9Tuple: ChLV9Tuple\n    test 198 ChLV9Tuple: 9-Tuple C{(Y, X, h_, lat, lon, height, ltp, ecef, M)}\n    test 199 ChLV9Tuple: 9\n    test 200 ChLVEN2Tuple: ChLVEN2Tuple\n    test 201 ChLVEN2Tuple: 2-Tuple C{(E_LV95, N_LV95)}\n    test 202 ChLVEN2Tuple: 2\n    test 203 ChLVYX2Tuple: ChLVYX2Tuple\n    test 204 ChLVYX2Tuple: 2-Tuple C{(Y, X)}\n    test 205 ChLVYX2Tuple: 2\n    test 206 ChLVyx2Tuple: ChLVyx2Tuple\n    test 207 ChLVyx2Tuple: 2-Tuple C{(y_LV03, x_LV03)}\n    test 208 ChLVyx2Tuple: 2\n    test 209 Enu4Tuple: Enu4Tuple\n    test 210 Enu4Tuple: 4-Tuple C{(east, north, up, ltp)}\n    test 211 Enu4Tuple: 4\n    test 212 Footprint5Tuple: Footprint5Tuple\n    test 213 Footprint5Tuple: 5-Tuple C{(center, upperleft, upperight, loweright, lowerleft)}\n    test 214 Footprint5Tuple: 5\n    test 215 Local9Tuple: Local9Tuple\n    test 216 Local9Tuple: 9-Tuple C{(x, y, z, lat, lon, height, ltp, ecef, M)}\n    test 217 Local9Tuple: 9\n    test 218 Ned4Tuple: Ned4Tuple\n    test 219 Ned4Tuple: 4-Tuple C{(north, east, down, ltp)}\n    test 220 Ned4Tuple: 4\n    test 221 Uvw3Tuple: Uvw3Tuple\n    test 222 Uvw3Tuple: 3-Tuple C{(u, v, w)}\n    test 223 Uvw3Tuple: 3\n    test 224 Xyz4Tuple: Xyz4Tuple\n    test 225 Xyz4Tuple: 4-Tuple C{(x, y, z, ltp)}\n    test 226 Xyz4Tuple: 4\n    test 227 Mgrs4Tuple: Mgrs4Tuple\n    test 228 Mgrs4Tuple: 4-Tuple C{(zone, EN, easting, northing)}\n    test 229 Mgrs4Tuple: 4\n    test 230 Mgrs6Tuple: Mgrs6Tuple\n    test 231 Mgrs6Tuple: 6-Tuple C{(zone, EN, easting, northing, band, datum)}\n    test 232 Mgrs6Tuple: 6\n    test 233 Bearing2Tuple: Bearing2Tuple\n    test 234 Bearing2Tuple: 2-Tuple C{(initial, final)}\n    test 235 Bearing2Tuple: 2\n    test 236 Bounds2Tuple: Bounds2Tuple\n    test 237 Bounds2Tuple: 2-Tuple C{(latlonSW, latlonNE)}\n    test 238 Bounds2Tuple: 2\n    test 239 Bounds4Tuple: Bounds4Tuple\n    test 240 Bounds4Tuple: 4-Tuple C{(latS, lonW, latN, lonE)}\n    test 241 Bounds4Tuple: 4\n    test 242 Circle4Tuple: Circle4Tuple\n    test 243 Circle4Tuple: 4-Tuple C{(radius, height, lat, beta)}\n    test 244 Circle4Tuple: 4\n    test 245 Destination2Tuple: Destination2Tuple\n    test 246 Destination2Tuple: 2-Tuple C{(destination, final)}\n    test 247 Destination2Tuple: 2\n    test 248 Destination3Tuple: Destination3Tuple\n    test 249 Destination3Tuple: 3-Tuple C{(lat, lon, final)}\n    test 250 Destination3Tuple: 3\n    test 251 Distance2Tuple: Distance2Tuple\n    test 252 Distance2Tuple: 2-Tuple C{(distance, initial)}\n    test 253 Distance2Tuple: 2\n    test 254 Distance3Tuple: Distance3Tuple\n    test 255 Distance3Tuple: 3-Tuple C{(distance, initial, final)}\n    test 256 Distance3Tuple: 3\n    test 257 Distance4Tuple: Distance4Tuple\n    test 258 Distance4Tuple: 4-Tuple C{(distance2, delta_lat, delta_lon, unroll_lon2)}\n    test 259 Distance4Tuple: 4\n    test 260 EasNor2Tuple: EasNor2Tuple\n    test 261 EasNor2Tuple: 2-Tuple C{(easting, northing)}\n    test 262 EasNor2Tuple: 2\n    test 263 EasNor3Tuple: EasNor3Tuple\n    test 264 EasNor3Tuple: 3-Tuple C{(easting, northing, height)}\n    test 265 EasNor3Tuple: 3\n    test 266 Ellipse5Tuple: Ellipse5Tuple\n    test 267 Ellipse5Tuple: 5-Tuple C{(a, b, height, lat, beta)}\n    test 268 Ellipse5Tuple: 5\n    test 269 Forward4Tuple: Forward4Tuple\n    test 270 Forward4Tuple: 4-Tuple C{(easting, northing, gamma, scale)}\n    test 271 Forward4Tuple: 4\n    test 272 Intersection3Tuple: Intersection3Tuple\n    test 273 Intersection3Tuple: 3-Tuple C{(point, outside1, outside2)}\n    test 274 Intersection3Tuple: 3\n    test 275 LatLon2Tuple: LatLon2Tuple\n    test 276 LatLon2Tuple: 2-Tuple C{(lat, lon)}\n    test 277 LatLon2Tuple: 2\n    test 278 LatLon3Tuple: LatLon3Tuple\n    test 279 LatLon3Tuple: 3-Tuple C{(lat, lon, height)}\n    test 280 LatLon3Tuple: 3\n    test 281 LatLon4Tuple: LatLon4Tuple\n    test 282 LatLon4Tuple: 4-Tuple C{(lat, lon, height, datum)}\n    test 283 LatLon4Tuple: 4\n    test 284 LatLonDatum3Tuple: LatLonDatum3Tuple\n    test 285 LatLonDatum3Tuple: 3-Tuple C{(lat, lon, datum)}\n    test 286 LatLonDatum3Tuple: 3\n    test 287 LatLonDatum5Tuple: LatLonDatum5Tuple\n    test 288 LatLonDatum5Tuple: 5-Tuple C{(lat, lon, datum, gamma, scale)}\n    test 289 LatLonDatum5Tuple: 5\n    test 290 LatLonPrec3Tuple: LatLonPrec3Tuple\n    test 291 LatLonPrec3Tuple: 3-Tuple C{(lat, lon, precision)}\n    test 292 LatLonPrec3Tuple: 3\n    test 293 LatLonPrec5Tuple: LatLonPrec5Tuple\n    test 294 LatLonPrec5Tuple: 5-Tuple C{(lat, lon, precision, height, radius)}\n    test 295 LatLonPrec5Tuple: 5\n    test 296 NearestOn2Tuple: NearestOn2Tuple\n    test 297 NearestOn2Tuple: 2-Tuple C{(closest, fraction)}\n    test 298 NearestOn2Tuple: 2\n    test 299 NearestOn3Tuple: NearestOn3Tuple\n    test 300 NearestOn3Tuple: 3-Tuple C{(closest, distance, angle)}\n    test 301 NearestOn3Tuple: 3\n    test 302 NearestOn5Tuple: NearestOn5Tuple\n    test 303 NearestOn5Tuple: 5-Tuple C{(lat, lon, distance, angle, height)}\n    test 304 NearestOn5Tuple: 5\n    test 305 NearestOn6Tuple: NearestOn6Tuple\n    test 306 NearestOn6Tuple: 6-Tuple C{(closest, distance, fi, j, start, end)}\n    test 307 NearestOn6Tuple: 6\n    test 308 NearestOn8Tuple: NearestOn8Tuple\n    test 309 NearestOn8Tuple: 8-Tuple C{(closest, distance, fi, j, start, end, initial, final)}\n    test 310 NearestOn8Tuple: 8\n    test 311 PhiLam2Tuple: PhiLam2Tuple\n    test 312 PhiLam2Tuple: 2-Tuple C{(phi, lam)}\n    test 313 PhiLam2Tuple: 2\n    test 314 PhiLam3Tuple: PhiLam3Tuple\n    test 315 PhiLam3Tuple: 3-Tuple C{(phi, lam, height)}\n    test 316 PhiLam3Tuple: 3\n    test 317 PhiLam4Tuple: PhiLam4Tuple\n    test 318 PhiLam4Tuple: 4-Tuple C{(phi, lam, height, datum)}\n    test 319 PhiLam4Tuple: 4\n    test 320 Point3Tuple: Point3Tuple\n    test 321 Point3Tuple: 3-Tuple C{(x, y, ll)}\n    test 322 Point3Tuple: 3\n    test 323 Points2Tuple: Points2Tuple\n    test 324 Points2Tuple: 2-Tuple C{(number, points)}\n    test 325 Points2Tuple: 2\n    test 326 Reverse4Tuple: Reverse4Tuple\n    test 327 Reverse4Tuple: 4-Tuple C{(lat, lon, gamma, scale)}\n    test 328 Reverse4Tuple: 4\n    test 329 Triangle7Tuple: Triangle7Tuple\n    test 330 Triangle7Tuple: 7-Tuple C{(A, a, B, b, C, c, area)}\n    test 331 Triangle7Tuple: 7\n    test 332 Triangle8Tuple: Triangle8Tuple\n    test 333 Triangle8Tuple: 8-Tuple C{(A, a, B, b, C, c, D, E)}\n    test 334 Triangle8Tuple: 8\n    test 335 Trilaterate5Tuple: Trilaterate5Tuple\n    test 336 Trilaterate5Tuple: 5-Tuple C{(min, minPoint, max, maxPoint, n)}\n    test 337 Trilaterate5Tuple: 5\n    test 338 UtmUps2Tuple: UtmUps2Tuple\n    test 339 UtmUps2Tuple: 2-Tuple C{(zone, hemipole)}\n    test 340 UtmUps2Tuple: 2\n    test 341 UtmUps5Tuple: UtmUps5Tuple\n    test 342 UtmUps5Tuple: 5-Tuple C{(zone, hemipole, easting, northing, band)}\n    test 343 UtmUps5Tuple: 5\n    test 344 UtmUps8Tuple: UtmUps8Tuple\n    test 345 UtmUps8Tuple: 8-Tuple C{(zone, hemipole, easting, northing, band, datum, gamma, scale)}\n    test 346 UtmUps8Tuple: 8\n    test 347 UtmUpsLatLon5Tuple: UtmUpsLatLon5Tuple\n    test 348 UtmUpsLatLon5Tuple: 5-Tuple C{(zone, band, hemipole, lat, lon)}\n    test 349 UtmUpsLatLon5Tuple: 5\n    test 350 Vector2Tuple: Vector2Tuple\n    test 351 Vector2Tuple: 2-Tuple C{(x, y)}\n    test 352 Vector2Tuple: 2\n    test 353 Vector3Tuple: Vector3Tuple\n    test 354 Vector3Tuple: 3-Tuple C{(x, y, z)}\n    test 355 Vector3Tuple: 3\n    test 356 Vector4Tuple: Vector4Tuple\n    test 357 Vector4Tuple: 4-Tuple C{(x, y, z, h)}\n    test 358 Vector4Tuple: 4\n    test 359 Shape2Tuple: Shape2Tuple\n    test 360 Shape2Tuple: 2-Tuple C{(nrows, ncols)}\n    test 361 Shape2Tuple: 2\n    test 362 Collins5Tuple: Collins5Tuple\n    test 363 Collins5Tuple: 5-Tuple C{(pointP, pointH, a, b, c)}\n    test 364 Collins5Tuple: 5\n    test 365 Survey3Tuple: Survey3Tuple\n    test 366 Survey3Tuple: 3-Tuple C{(PA, PB, PC)}\n    test 367 Survey3Tuple: 3\n    test 368 Tienstra7Tuple: Tienstra7Tuple\n    test 369 Tienstra7Tuple: 7-Tuple C{(pointP, A, B, C, a, b, c)}\n    test 370 Tienstra7Tuple: 7\n    test 371 TriAngle5Tuple: TriAngle5Tuple\n    test 372 TriAngle5Tuple: 5-Tuple C{(radA, radB, radC, rIn, area)}\n    test 373 TriAngle5Tuple: 5\n    test 374 TriSide2Tuple: TriSide2Tuple\n    test 375 TriSide2Tuple: 2-Tuple C{(a, radA)}\n    test 376 TriSide2Tuple: 2\n    test 377 TriSide4Tuple: TriSide4Tuple\n    test 378 TriSide4Tuple: 4-Tuple C{(a, b, radC, d)}\n    test 379 TriSide4Tuple: 4\n    test 380 TRFXform7Tuple: TRFXform7Tuple\n    test 381 TRFXform7Tuple: 7-Tuple C{(tx, ty, tz, s, sx, sy, sz)}\n    test 382 TRFXform7Tuple: 7\n    test 383 Circin6Tuple: Circin6Tuple\n    test 384 Circin6Tuple: 6-Tuple C{(radius, center, deltas, cA, cB, cC)}\n    test 385 Circin6Tuple: 6\n    test 386 Circum3Tuple: Circum3Tuple\n    test 387 Circum3Tuple: 3-Tuple C{(radius, center, deltas)}\n    test 388 Circum3Tuple: 3\n    test 389 Circum4Tuple: Circum4Tuple\n    test 390 Circum4Tuple: 4-Tuple C{(radius, center, rank, residuals)}\n    test 391 Circum4Tuple: 4\n    test 392 Meeus2Tuple: Meeus2Tuple\n    test 393 Meeus2Tuple: 2-Tuple C{(radius, Type)}\n    test 394 Meeus2Tuple: 2\n    test 395 Radii11Tuple: Radii11Tuple\n    test 396 Radii11Tuple: 11-Tuple C{(rA, rB, rC, cR, rIn, riS, roS, a, b, c, s)}\n    test 397 Radii11Tuple: 11\n    test 398 Soddy4Tuple: Soddy4Tuple\n    test 399 Soddy4Tuple: 4-Tuple C{(radius, center, deltas, outer)}\n    test 400 Soddy4Tuple: 4\n    test 401 Triaxum5Tuple: Triaxum5Tuple\n    test 402 Triaxum5Tuple: 5-Tuple C{(a, b, c, rank, residuals)}\n    test 403 Triaxum5Tuple: 5\n    test 404 EasNorRadius3Tuple: EasNorRadius3Tuple\n    test 405 EasNorRadius3Tuple: 3-Tuple C{(easting, northing, radius)}\n    test 406 EasNorRadius3Tuple: 3\n    test 407 ClipCS3Tuple: DEPRECATED, see I{DEPRECATED} function L{pygeodesy.deprecated.clipCS3}.\n    test 408 EasNorExact4Tuple: DEPRECATED, use class L{Forward4Tuple}, item C{gamma} for C{convergence}.\n    test 409 Transform7Tuple: DEPRECATED on 2024.02.02, use class L{TRFXform7Tuple}, I{without} keyword arguments.\n    test 410 Jacobi2Tuple: DEPRECATED on 25.11.11, use class L{Conformal2Tuple}.\n    test 411 LatLonExact4Tuple: DEPRECATED, use class L{Reverse4Tuple}, item C{gamma} for C{convergence}.\n    test 412 NearestOn4Tuple: DEPRECATED on 2023.10.10, see methods L{RhumbLine.nearestOn4} and L{RhumbLineAux.nearestOn4}.\n    test 413 Ned3Tuple: DEPRECATED, use class L{Ned4Tuple}, ignoring item C{ltp}.\n    test 414 Rhumb7Tuple: DEPRECATED, use class L{Rhumb8Tuple}, ignoring item C{a12}.\n    test 415 RhumbOrder2Tuple: DEPRECATED, see deprecated method L{Rhumb.orders}.\n    test 416 Transform7Tuple: DEPRECATED on 2024.02.02, use class L{TRFXform7Tuple}, I{without} keyword arguments.\n    test 417 TriAngle4Tuple: DEPRECATED on 2023.09.14, use class L{TriAngle5Tuple}, ignoring item C{area}.\n    test 418 UtmUps4Tuple: DEPRECATED and OBSOLETE, expect a L{UtmUps5Tuple} from method C{pygeodesy.Mgrs.toUtm(utm=None)}. 4-Tuple C{(zone, hemipole, easting, northing)} with as C{zone} B{C{str}} and no C{band}.\n    test 419 RhumbSolve7Tuple: RhumbSolve7Tuple\n    test 420 RhumbSolve7Tuple: 7-Tuple C{(lat1, lon1, lat2, lon2, azi12, s12, S12)}\n    test 421 RhumbSolve7Tuple: 7\n    test 422 Conformal5Tuple: Conformal5Tuple\n    test 423 Conformal5Tuple: 5-Tuple C{(x, y, z, scale, llk)}\n    test 424 Conformal5Tuple: 5\n    test 425 BetOmgGam5Tuple: BetOmgGam5Tuple\n    test 426 BetOmgGam5Tuple: 5-Tuple C{(bet, omg, gam, scale, llk)}\n    test 427 BetOmgGam5Tuple: 5\n    test 428 BetOmgAlp5Tuple: BetOmgAlp5Tuple\n    test 429 BetOmgAlp5Tuple: 5-Tuple C{(bet, omg, alp, h, llk)}\n    test 430 BetOmgAlp5Tuple: 5\n    test 431 Cartesian5Tuple: Cartesian5Tuple\n    test 432 Cartesian5Tuple: 5-Tuple C{(x, y, z, h, llk)}\n    test 433 Cartesian5Tuple: 5\n    test 434 PhiLamZet5Tuple: PhiLamZet5Tuple\n    test 435 PhiLamZet5Tuple: 5-Tuple C{(phi, lam, zet, h, llk)}\n    test 436 PhiLamZet5Tuple: 5\n    test 437 BetaOmega2Tuple: BetaOmega2Tuple\n    test 438 BetaOmega2Tuple: 2-Tuple C{(beta, omega)}\n    test 439 BetaOmega2Tuple: 2\n    test 440 BetaOmega3Tuple: BetaOmega3Tuple\n    test 441 BetaOmega3Tuple: 3-Tuple C{(beta, omega, height)}\n    test 442 BetaOmega3Tuple: 3\n    test 443 Conformal2Tuple: Conformal2Tuple\n    test 444 Conformal2Tuple: 2-Tuple C{(x, y)}\n    test 445 Conformal2Tuple: 2\n\n    testing __init__.py (pygeodesy.named, 26.01.14)\n\n    testing __main__.py (pygeodesy.named, 26.01.14)\n\n    testing albers.py (pygeodesy.named, 26.01.14)\n    test 446 albers.py:235: L{Albers7Tuple}C{(x, y, lat, lon, gamma, scale, datum)}\n    test 447 albers.py:356: L{Albers7Tuple}C{(x, y, lat, lon, gamma, scale, datum)}\n\n    testing angles.py (pygeodesy.named, 26.01.14)\n\n    testing azimuthal.py (pygeodesy.named, 26.01.14)\n    test 448 azimuthal.py:185: L{LatLon2Tuple}C{(lat, lon)}\n    test 449 azimuthal.py:361: L{Azimuthal7Tuple}C{(x, y, lat, lon, azimuth, scale, datum)}\n    test 450 azimuthal.py:394: L{Azimuthal7Tuple}C{(x, y, lat, lon, azimuth, scale, datum)}\n    test 451 azimuthal.py:487: L{Azimuthal7Tuple}C{(x, y, lat, lon, azimuth, scale, datum)}\n    test 452 azimuthal.py:513: L{Azimuthal7Tuple}C{(x, y, lat, lon, azimuth, scale, datum)}\n    test 453 azimuthal.py:658: L{Azimuthal7Tuple}C{(x, y, lat, lon, azimuth, scale, datum)}\n    test 454 azimuthal.py:683: L{Azimuthal7Tuple}C{(x, y, lat, lon, azimuth, scale, datum)}\n    test 455 azimuthal.py:753: L{Azimuthal7Tuple}C{(x, y, lat, lon, azimuth, scale, datum)}\n    test 456 azimuthal.py:791: L{Azimuthal7Tuple}C{(x, y, lat, lon, azimuth, scale, datum)}\n    test 457 azimuthal.py:956: L{Azimuthal7Tuple}C{(x, y, lat, lon, azimuth, scale, datum)}\n    test 458 azimuthal.py:982: L{Azimuthal7Tuple}C{(x, y, lat, lon, azimuth, scale, datum)}\n    test 459 azimuthal.py:1011: L{Azimuthal7Tuple}C{(x, y, lat, lon, azimuth, scale, datum)}\n    test 460 azimuthal.py:1034: L{Azimuthal7Tuple}C{(x, y, lat, lon, azimuth, scale, datum)}\n    test 461 azimuthal.py:1065: L{Azimuthal7Tuple}C{(x, y, lat, lon, azimuth, scale, datum)}\n    test 462 azimuthal.py:1105: L{Azimuthal7Tuple}C{(x, y, lat, lon, azimuth, scale, datum)}\n\n    testing basics.py (pygeodesy.named, 26.01.14)\n\n    testing booleans.py (pygeodesy.named, 26.01.14)\n\n    testing cartesianBase.py (pygeodesy.named, 26.01.14)\n    test 463 cartesianBase.py:141: L{Collins5Tuple}C{(pointP, pointH, a, b, c)}\n    test 464 cartesianBase.py:196: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 465 cartesianBase.py:296: L{Vector3Tuple}C{(x, y, z)}\n    test 466 cartesianBase.py:348: L{Vector4Tuple}C{(x, y, z, h)}\n    test 467 cartesianBase.py:393: L{LatLon2Tuple}C{(lat, lon)}\n    test 468 cartesianBase.py:399: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 469 cartesianBase.py:405: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n    test 470 cartesianBase.py:466: L{PhiLam2Tuple}C{(phi, lam)}\n    test 471 cartesianBase.py:472: L{PhiLam3Tuple}C{(phi, lam, height)}\n    test 472 cartesianBase.py:478: L{PhiLam4Tuple}C{(phi, lam, height, datum)}\n    test 473 cartesianBase.py:598: L{Tienstra7Tuple}C{(pointP, A, B, C, a, b, c)}\n    test 474 cartesianBase.py:618: L{PhiLam2Tuple}C{(phi, lam)}\n    test 475 cartesianBase.py:626: L{LatLon2Tuple}C{(lat, lon)}\n    test 476 cartesianBase.py:634: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n    test 477 cartesianBase.py:691: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 478 cartesianBase.py:709: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 479 cartesianBase.py:739: L{Vector4Tuple}C{(x, y, z, h)}\n    test 480 cartesianBase.py:765: L{RadiusThetaPhi3Tuple}C{(r, theta, phi)}\n    test 481 cartesianBase.py:815: L{Vector3Tuple}C{(x, y, z)}\n    test 482 cartesianBase.py:841: L{Vector3Tuple}C{(x, y, z)}\n    test 483 cartesianBase.py:855: L{RadiusThetaPhi3Tuple}C{(r, theta, phi)}\n    test 484 cartesianBase.py:865: L{RadiusThetaPhi3Tuple}C{(r, theta, phi)}\n    test 485 cartesianBase.py:912: L{Vector3Tuple}C{(x, y, z)}\n    test 486 cartesianBase.py:965: L{RadiusThetaPhi3Tuple}C{(r, theta, phi)}\n    test 487 cartesianBase.py:983: L{RadiusThetaPhi3Tuple}C{(r, theta, phi)}\n\n    testing clipy.py (pygeodesy.named, 26.01.14)\n    test 488 clipy.py:197: L{ClipCS4Tuple}C{(start, end, i, j)}\n    test 489 clipy.py:276: L{ClipFHP4Tuple}C{(lat, lon, height, clipid)}\n    test 490 clipy.py:318: L{ClipGH4Tuple}C{(lat, lon, height, clipid)}\n    test 491 clipy.py:382: L{ClipLB6Tuple}C{(start, end, i, fi, fj, j)}\n    test 492 clipy.py:660: L{ClipSH3Tuple}C{(start, end, original)}\n\n    testing constants.py (pygeodesy.named, 26.01.14)\n\n    testing css.py (pygeodesy.named, 26.01.14)\n    test 493 css.py:138: L{EasNor2Tuple}C{(easting, northing)}\n    test 494 css.py:157: L{EasNorAziRk4Tuple}C{(easting, northing, azimuth, reciprocal)}\n    test 495 css.py:178: L{EasNorAziRkEqu6Tuple}C{(easting, northing, azimuth, reciprocal, equatorarc, equatorazimuth)}\n    test 496 css.py:265: L{LatLon2Tuple}C{(lat, lon)}\n    test 497 css.py:330: L{LatLon2Tuple}C{(lat, lon)}\n    test 498 css.py:359: L{LatLonAziRk4Tuple}C{(lat, lon, azimuth, reciprocal)}\n    test 499 css.py:525: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n    test 500 css.py:619: L{EasNor3Tuple}C{(easting, northing, height)}\n\n    testing datums.py (pygeodesy.named, 26.01.14)\n    test 501 datums.py:275: L{Vector3Tuple}C{(x, y, z)}\n\n    testing dms.py (pygeodesy.named, 26.01.14)\n    test 502 dms.py:760: L{LatLon2Tuple}C{(lat, lon)}\n    test 503 dms.py:813: L{LatLon3Tuple}C{(lat, lon, height)}\n\n    testing ecef.py (pygeodesy.named, 26.01.14)\n    test 504 ecef.py:233: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 505 ecef.py:259: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 506 ecef.py:369: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 507 ecef.py:441: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 508 ecef.py:491: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 509 ecef.py:621: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 510 ecef.py:703: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 511 ecef.py:769: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 512 ecef.py:838: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 513 ecef.py:1099: L{LatLon2Tuple}C{(lat, lon)}\n    test 514 ecef.py:1105: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 515 ecef.py:1111: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n    test 516 ecef.py:1117: L{LatLon2Tuple}C{(lat, lon)}\n    test 517 ecef.py:1147: L{PhiLam2Tuple}C{(phi, lam)}\n    test 518 ecef.py:1153: L{PhiLam3Tuple}C{(phi, lam, height)}\n    test 519 ecef.py:1159: L{PhiLam4Tuple}C{(phi, lam, height, datum)}\n    test 520 ecef.py:1165: L{PhiLam2Tuple}C{(phi, lam)}\n    test 521 ecef.py:1184: L{Vector4Tuple}C{(x, y, z, h)}\n    test 522 ecef.py:1225: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n    test 523 ecef.py:1226: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 524 ecef.py:1254: L{Vector3Tuple}C{(x, y, z)}\n    test 525 ecef.py:1271: L{Vector3Tuple}C{(x, y, z)}\n    test 526 ecef.py:1277: L{Vector4Tuple}C{(x, y, z, h)}\n\n    testing ecefLocals.py (pygeodesy.named, 26.01.14)\n    test 527 ecefLocals.py:108: L{Local9Tuple}C{(x, y, z, lat, lon, height, ltp, ecef, M)}\n\n    testing elevations.py (pygeodesy.named, 26.01.14)\n    test 528 elevations.py:151: L{Elevation2Tuple}C{(elevation, data_source)}\n    test 529 elevations.py:207: L{GeoidHeight2Tuple}C{(height, model_name)}\n\n    testing ellipses.py (pygeodesy.named, 26.01.14)\n    test 530 ellipses.py:240: L{Vector4Tuple}C{(x, y, z, h)}\n    test 531 ellipses.py:267: L{Vector4Tuple}C{(x, y, z, h)}\n    test 532 ellipses.py:361: L{Vector4Tuple}C{(x, y, z, h)}\n\n    testing ellipsoidalBase.py (pygeodesy.named, 26.01.14)\n    test 533 ellipsoidalBase.py:332: L{Distance2Tuple}C{(distance, initial)}\n    test 534 ellipsoidalBase.py:367: L{Elevation2Tuple}C{(elevation, data_source)}\n    test 535 ellipsoidalBase.py:479: L{GeoidHeight2Tuple}C{(height, model_name)}\n    test 536 ellipsoidalBase.py:521: L{Intersection3Tuple}C{(point, outside1, outside2)}\n    test 537 ellipsoidalBase.py:998: L{Vector3Tuple}C{(x, y, z)}\n    test 538 ellipsoidalBase.py:1042: L{Trilaterate5Tuple}C{(min, minPoint, max, maxPoint, n)}\n\n    testing ellipsoidalBaseDI.py (pygeodesy.named, 26.01.14)\n    test 539 ellipsoidalBaseDI.py:60: L{Bearing2Tuple}C{(initial, final)}\n    test 540 ellipsoidalBaseDI.py:102: L{Destination2Tuple}C{(destination, final)}\n    test 541 ellipsoidalBaseDI.py:109: L{Destination2Tuple}C{(destination, final)}\n    test 542 ellipsoidalBaseDI.py:110: L{Destination3Tuple}C{(lat, lon, final)}\n    test 543 ellipsoidalBaseDI.py:162: L{Distance3Tuple}C{(distance, initial, final)}\n    test 544 ellipsoidalBaseDI.py:316: L{Distance3Tuple}C{(distance, initial, final)}\n    test 545 ellipsoidalBaseDI.py:341: L{NearestOn8Tuple}C{(closest, distance, fi, j, start, end, initial, final)}\n\n    testing ellipsoidalExact.py (pygeodesy.named, 26.01.14)\n    test 546 ellipsoidalExact.py:43: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 547 ellipsoidalExact.py:81: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 548 ellipsoidalExact.py:143: L{Intersection3Tuple}C{(point, outside1, outside2)}\n    test 549 ellipsoidalExact.py:144: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n    test 550 ellipsoidalExact.py:193: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n    test 551 ellipsoidalExact.py:270: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n\n    testing ellipsoidalGeodSolve.py (pygeodesy.named, 26.01.14)\n    test 552 ellipsoidalGeodSolve.py:43: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 553 ellipsoidalGeodSolve.py:81: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 554 ellipsoidalGeodSolve.py:141: L{Intersection3Tuple}C{(point, outside1, outside2)}\n    test 555 ellipsoidalGeodSolve.py:142: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n    test 556 ellipsoidalGeodSolve.py:193: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n    test 557 ellipsoidalGeodSolve.py:270: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n\n    testing ellipsoidalKarney.py (pygeodesy.named, 26.01.14)\n    test 558 ellipsoidalKarney.py:60: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 559 ellipsoidalKarney.py:104: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 560 ellipsoidalKarney.py:168: L{Intersection3Tuple}C{(point, outside1, outside2)}\n    test 561 ellipsoidalKarney.py:169: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n    test 562 ellipsoidalKarney.py:220: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n    test 563 ellipsoidalKarney.py:301: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n\n    testing ellipsoidalNvector.py (pygeodesy.named, 26.01.14)\n    test 564 ellipsoidalNvector.py:102: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 565 ellipsoidalNvector.py:119: L{Vector4Tuple}C{(x, y, z, h)}\n    test 566 ellipsoidalNvector.py:398: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 567 ellipsoidalNvector.py:415: L{Vector4Tuple}C{(x, y, z, h)}\n    test 568 ellipsoidalNvector.py:483: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 569 ellipsoidalNvector.py:501: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 570 ellipsoidalNvector.py:542: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 571 ellipsoidalNvector.py:580: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n    test 572 ellipsoidalNvector.py:636: L{Ned3Tuple}C{(north, east, down)}  FAILED, KNOWN, expected DEPRECATED\n\n    testing ellipsoidalVincenty.py (pygeodesy.named, 26.01.14)\n    test 573 ellipsoidalVincenty.py:110: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 574 ellipsoidalVincenty.py:190: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 575 ellipsoidalVincenty.py:439: L{Intersection3Tuple}C{(point, outside1, outside2)}\n    test 576 ellipsoidalVincenty.py:440: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n    test 577 ellipsoidalVincenty.py:491: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n    test 578 ellipsoidalVincenty.py:541: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n\n    testing ellipsoids.py (pygeodesy.named, 26.01.14)\n    test 579 ellipsoids.py:146: L{a_f2Tuple}C{(a, f)}\n    test 580 ellipsoids.py:678: L{Circle4Tuple}C{(radius, height, lat, beta)}\n    test 581 ellipsoids.py:739: L{Distance2Tuple}C{(distance, initial)}\n    test 582 ellipsoids.py:1113: L{Vector4Tuple}C{(x, y, z, h)}\n    test 583 ellipsoids.py:1149: L{Vector4Tuple}C{(x, y, z, h)}\n    test 584 ellipsoids.py:1635: L{Curvature2Tuple}C{(meridional, prime_vertical)}\n    test 585 ellipsoids.py:1654: L{Curvature2Tuple}C{(meridional, prime_vertical)}\n    test 586 ellipsoids.py:1723: L{Curvature2Tuple}C{(meridional, prime_vertical)}\n\n    testing elliptic.py (pygeodesy.named, 26.01.14)\n    test 587 elliptic.py:830: L{Elliptic3Tuple}C{(sn, cn, dn)}\n\n    testing epsg.py (pygeodesy.named, 26.01.14)\n    test 588 epsg.py:148: L{UtmUps2Tuple}C{(zone, hemipole)}\n\n    testing errors.py (pygeodesy.named, 26.01.14)\n\n    testing etm.py (pygeodesy.named, 26.01.14)\n    test 589 etm.py:185: L{LatLonDatum5Tuple}C{(lat, lon, datum, gamma, scale)}\n    test 590 etm.py:446: L{Forward4Tuple}C{(easting, northing, gamma, scale)}\n    test 591 etm.py:685: L{Reverse4Tuple}C{(lat, lon, gamma, scale)}\n    test 592 etm.py:1048: L{UtmUps5Tuple}C{(zone, hemipole, easting, northing, band)}\n    test 593 etm.py:1079: L{UtmUps8Tuple}C{(zone, hemipole, easting, northing, band, datum, gamma, scale)}\n\n    testing fmath.py (pygeodesy.named, 26.01.14)\n\n    testing formy.py (pygeodesy.named, 26.01.14)\n    test 594 formy.py:90: L{LatLon2Tuple}C{(lat, lon)}\n    test 595 formy.py:106: L{PhiLam2Tuple}C{(phi, lam)}\n    test 596 formy.py:433: L{Distance4Tuple}C{(distance2, delta_lat, delta_lon, unroll_lon2)}\n    test 597 formy.py:1149: L{LatLon2Tuple}C{(lat, lon)}\n    test 598 formy.py:1212: L{LatLon2Tuple}C{(lat, lon)}\n    test 599 formy.py:1361: L{LatLon2Tuple}C{(lat, lon)}\n    test 600 formy.py:1377: L{PhiLam2Tuple}C{(phi, lam)}\n    test 601 formy.py:1460: L{Radical2Tuple}C{(ratio, xline)}\n\n    testing frechet.py (pygeodesy.named, 26.01.14)\n    test 602 frechet.py:199: L{Frechet6Tuple}C{(fd, fi1, fi2, r, n, units)}\n    test 603 frechet.py:371: L{PhiLam2Tuple}C{(phi, lam)}\n    test 604 frechet.py:745: L{Frechet6Tuple}C{(fd, fi1, fi2, r, n, units)}\n\n    testing fstats.py (pygeodesy.named, 26.01.14)\n\n    testing fsums.py (pygeodesy.named, 26.01.14)\n    test 605 fsums.py:1395: L{Fsum2Tuple}C{(fsum, residual)}\n    test 606 fsums.py:1848: L{Fsum2Tuple}C{(fsum, residual)}\n\n    testing gars.py (pygeodesy.named, 26.01.14)\n    test 607 gars.py:206: L{LatLonPrec3Tuple}C{(lat, lon, precision)}\n\n    testing geod3solve.py (pygeodesy.named, 26.01.14)\n\n    testing geodesici.py (pygeodesy.named, 26.01.14)\n    test 608 geodesici.py:347: L{Intersect7Tuple}C{(A, B, sAB, aAB, c, kA, kB)}\n    test 609 geodesici.py:349: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n    test 610 geodesici.py:904: L{Intersector5Tuple}C{(A, B, sAB, aAB, c)}\n    test 611 geodesici.py:975: L{Intersector5Tuple}C{(A, B, sAB, aAB, c)}\n    test 612 geodesici.py:1132: L{Middle5Tuple}C{(A, B, sMM, aMM, c)}\n    test 613 geodesici.py:1204: L{Intersector5Tuple}C{(A, B, sAB, aAB, c)}\n    test 614 geodesici.py:1331: L{Intersector5Tuple}C{(A, B, sAB, aAB, c)}\n    test 615 geodesici.py:1424: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n\n    testing geodesicw.py (pygeodesy.named, 26.01.14)\n\n    testing geodsolve.py (pygeodesy.named, 26.01.14)\n    test 616 geodsolve.py:129: L{Destination3Tuple}C{(lat, lon, final)}\n    test 617 geodsolve.py:175: L{Distance3Tuple}C{(distance, initial, final)}\n\n    testing geohash.py (pygeodesy.named, 26.01.14)\n    test 618 geohash.py:489: L{Neighbors8Dict}C{(N, NE, E, SE, S, SW, W, NW)}\n    test 619 geohash.py:972: L{Neighbors8Dict}C{(N, NE, E, SE, S, SW, W, NW)}\n    test 620 geohash.py:365: L{Bounds2Tuple}C{(latlonSW, latlonNE)}\n    test 621 geohash.py:366: L{Bounds4Tuple}C{(latS, lonW, latN, lonE)}\n    test 622 geohash.py:482: L{LatLon2Tuple}C{(lat, lon)}\n    test 623 geohash.py:499: L{PhiLam2Tuple}C{(phi, lam)}\n    test 624 geohash.py:512: L{Resolutions2Tuple}C{(res1, res2)}\n    test 625 geohash.py:525: L{Sizes3Tuple}C{(height, width, radius)}\n    test 626 geohash.py:540: L{LatLon2Tuple}C{(lat, lon)}\n    test 627 geohash.py:781: L{Bounds2Tuple}C{(latlonSW, latlonNE)}\n    test 628 geohash.py:782: L{Bounds4Tuple}C{(latS, lonW, latN, lonE)}\n    test 629 geohash.py:824: L{LatLon2Tuple}C{(lat, lon)}\n    test 630 geohash.py:849: L{LatLon2Tuple}C{(lat, lon)}\n    test 631 geohash.py:1015: L{Resolutions2Tuple}C{(res1, res2)}\n    test 632 geohash.py:1042: L{Sizes3Tuple}C{(height, width, radius)}\n\n    testing geoids.py (pygeodesy.named, 26.01.14)\n    test 633 geoids.py:352: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 634 geoids.py:478: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 635 geoids.py:543: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 636 geoids.py:561: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 637 geoids.py:581: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 638 geoids.py:726: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 639 geoids.py:744: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 640 geoids.py:1210: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 641 geoids.py:1265: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 642 geoids.py:1724: L{GeoidHeight5Tuple}C{(lat, lon, egm84, egm96, egm2008)}\n\n    testing hausdorff.py (pygeodesy.named, 26.01.14)\n    test 643 hausdorff.py:166: L{Hausdorff6Tuple}C{(hd, i, j, mn, md, units)}\n    test 644 hausdorff.py:244: L{Hausdorff6Tuple}C{(hd, i, j, mn, md, units)}\n    test 645 hausdorff.py:309: L{PhiLam2Tuple}C{(phi, lam)}\n    test 646 hausdorff.py:733: L{Hausdorff6Tuple}C{(hd, i, j, mn, md, units)}\n\n    testing heights.py (pygeodesy.named, 26.01.14)\n\n    testing internals.py (pygeodesy.named, 26.01.14)\n\n    testing interns.py (pygeodesy.named, 26.01.14)\n\n    testing iters.py (pygeodesy.named, 26.01.14)\n    test 647 iters.py:375: L{Point3Tuple}C{(x, y, ll)}\n    test 648 iters.py:495: L{Points2Tuple}C{(number, points)}\n\n    testing karney.py (pygeodesy.named, 26.01.14)\n    test 649 karney.py:453: L{Direct9Tuple}C{(a12, lat2, lon2, azi2, s12, m12, M12, M21, S12)}\n    test 650 karney.py:465: L{GeodSolve12Tuple}C{(lat1, lon1, azi1, lat2, lon2, azi2, s12, a12, m12, M12, M21, S12)}\n    test 651 karney.py:477: L{Geod3Solve8Tuple}C{(bet1, omg1, alp1, bet2, omg2, alp2, s12, a12)}\n    test 652 karney.py:487: L{Inverse10Tuple}C{(a12, s12, salp1, calp1, salp2, calp2, m12, M12, M21, S12)}\n    test 653 karney.py:517: L{Rhumb8Tuple}C{(lat1, lon1, lat2, lon2, azi12, s12, S12, a12)}\n    test 654 karney.py:527: L{RhumbSolve7Tuple}C{(lat1, lon1, lat2, lon2, azi12, s12, S12)}\n    test 655 karney.py:595: L{Direct9Tuple}C{(a12, lat2, lon2, azi2, s12, m12, M12, M21, S12)}\n    test 656 karney.py:612: L{Inverse10Tuple}C{(a12, s12, salp1, calp1, salp2, calp2, m12, M12, M21, S12)}\n\n    testing ktm.py (pygeodesy.named, 26.01.14)\n    test 657 ktm.py:230: L{Forward4Tuple}C{(easting, northing, gamma, scale)}\n    test 658 ktm.py:361: L{Reverse4Tuple}C{(lat, lon, gamma, scale)}\n\n    testing latlonBase.py (pygeodesy.named, 26.01.14)\n    test 659 latlonBase.py:148: L{Bounds2Tuple}C{(latlonSW, latlonNE)}\n    test 660 latlonBase.py:202: L{Circin6Tuple}C{(radius, center, deltas, cA, cB, cC)}\n    test 661 latlonBase.py:219: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 662 latlonBase.py:250: L{Circum3Tuple}C{(radius, center, deltas)}\n    test 663 latlonBase.py:253: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 664 latlonBase.py:270: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 665 latlonBase.py:292: L{Circum4Tuple}C{(radius, center, rank, residuals)}\n    test 666 latlonBase.py:409: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n    test 667 latlonBase.py:409: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 668 latlonBase.py:654: L{Vector4Tuple}C{(x, y, z, h)}\n    test 669 latlonBase.py:816: L{LatLon2Tuple}C{(lat, lon)}\n    test 670 latlonBase.py:855: L{LatLon2Tuple}C{(lat, lon)}\n    test 671 latlonBase.py:873: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 672 latlonBase.py:920: L{NearestOn6Tuple}C{(closest, distance, fi, j, start, end)}\n    test 673 latlonBase.py:993: L{PhiLam2Tuple}C{(phi, lam)}\n    test 674 latlonBase.py:1002: L{PhiLam2Tuple}C{(phi, lam)}\n    test 675 latlonBase.py:1012: L{PhiLam3Tuple}C{(phi, lam, height)}\n    test 676 latlonBase.py:1028: L{Points2Tuple}C{(number, points)}\n    test 677 latlonBase.py:1062: L{Radii11Tuple}C{(rA, rB, rC, cR, rIn, riS, roS, a, b, c, s)}\n    test 678 latlonBase.py:1299: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 679 latlonBase.py:1340: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 680 latlonBase.py:1381: L{Vector4Tuple}C{(x, y, z, h)}\n    test 681 latlonBase.py:1435: L{Vector3Tuple}C{(x, y, z)}\n    test 682 latlonBase.py:1512: L{Vector3Tuple}C{(x, y, z)}\n    test 683 latlonBase.py:1524: L{Vector4Tuple}C{(x, y, z, h)}\n    test 684 latlonBase.py:1567: L{Vector3Tuple}C{(x, y, z)}\n    test 685 latlonBase.py:1593: L{Vector3Tuple}C{(x, y, z)}\n\n    testing lazily.py (pygeodesy.named, 26.01.14)\n\n    testing lcc.py (pygeodesy.named, 26.01.14)\n    test 686 lcc.py:168: L{LatLon2Tuple}C{(lat, lon)}\n    test 687 lcc.py:222: L{PhiLam2Tuple}C{(phi, lam)}\n    test 688 lcc.py:483: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 689 lcc.py:489: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n    test 690 lcc.py:508: L{PhiLam3Tuple}C{(phi, lam, height)}\n    test 691 lcc.py:514: L{PhiLam4Tuple}C{(phi, lam, height, datum)}\n    test 692 lcc.py:525: L{LatLonDatum3Tuple}C{(lat, lon, datum)}\n    test 693 lcc.py:552: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n    test 694 lcc.py:630: L{EasNor3Tuple}C{(easting, northing, height)}\n\n    testing ltp.py (pygeodesy.named, 26.01.14)\n    test 695 ltp.py:163: L{Vector3Tuple}C{(x, y, z)}\n    test 696 ltp.py:292: L{Footprint5Tuple}C{(center, upperleft, upperight, loweright, lowerleft)}\n    test 697 ltp.py:484: L{Local9Tuple}C{(x, y, z, lat, lon, height, ltp, ecef, M)}\n    test 698 ltp.py:524: L{Local9Tuple}C{(x, y, z, lat, lon, height, ltp, ecef, M)}\n    test 699 ltp.py:556: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 700 ltp.py:568: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 701 ltp.py:646: L{Local9Tuple}C{(x, y, z, lat, lon, height, ltp, ecef, M)}\n    test 702 ltp.py:756: L{ChLV9Tuple}C{(Y, X, h_, lat, lon, height, ltp, ecef, M)}\n    test 703 ltp.py:778: L{ChLV9Tuple}C{(Y, X, h_, lat, lon, height, ltp, ecef, M)}\n    test 704 ltp.py:892: L{ChLVEN2Tuple}C{(E_LV95, N_LV95)}\n    test 705 ltp.py:893: L{ChLVyx2Tuple}C{(y_LV03, x_LV03)}\n    test 706 ltp.py:894: L{ChLVYX2Tuple}C{(Y, X)}\n    test 707 ltp.py:944: L{ChLVYX2Tuple}C{(Y, X)}\n    test 708 ltp.py:1100: L{Vector3Tuple}C{(x, y, z)}\n\n    testing ltpTuples.py (pygeodesy.named, 26.01.14)\n    test 709 ltpTuples.py:79: L{Aer4Tuple}C{(azimuth, elevation, slantrange, ltp)}\n    test 710 ltpTuples.py:94: L{Enu4Tuple}C{(east, north, up, ltp)}\n    test 711 ltpTuples.py:109: L{Ned4Tuple}C{(north, east, down, ltp)}\n    test 712 ltpTuples.py:125: L{Xyz4Tuple}C{(x, y, z, ltp)}\n    test 713 ltpTuples.py:134: L{Vector3Tuple}C{(x, y, z)}\n    test 714 ltpTuples.py:767: L{Aer4Tuple}C{(azimuth, elevation, slantrange, ltp)}\n    test 715 ltpTuples.py:786: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 716 ltpTuples.py:809: L{Enu4Tuple}C{(east, north, up, ltp)}\n    test 717 ltpTuples.py:827: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 718 ltpTuples.py:847: L{Local9Tuple}C{(x, y, z, lat, lon, height, ltp, ecef, M)}\n    test 719 ltpTuples.py:865: L{Ned4Tuple}C{(north, east, down, ltp)}\n    test 720 ltpTuples.py:881: L{Xyz4Tuple}C{(x, y, z, ltp)}\n    test 721 ltpTuples.py:902: L{Vector3Tuple}C{(x, y, z)}\n    test 722 ltpTuples.py:995: L{Uvw3Tuple}C{(u, v, w)}\n    test 723 ltpTuples.py:1090: L{LatLon2Tuple}C{(lat, lon)}\n    test 724 ltpTuples.py:1096: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 725 ltpTuples.py:1114: L{PhiLam2Tuple}C{(phi, lam)}\n    test 726 ltpTuples.py:1120: L{PhiLam3Tuple}C{(phi, lam, height)}\n    test 727 ltpTuples.py:1138: L{Aer4Tuple}C{(azimuth, elevation, slantrange, ltp)}\n    test 728 ltpTuples.py:1155: L{Vector4Tuple}C{(x, y, z, h)}\n    test 729 ltpTuples.py:1170: L{Enu4Tuple}C{(east, north, up, ltp)}\n    test 730 ltpTuples.py:1186: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n    test 731 ltpTuples.py:1187: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 732 ltpTuples.py:1202: L{Ned4Tuple}C{(north, east, down, ltp)}\n    test 733 ltpTuples.py:1217: L{Xyz4Tuple}C{(x, y, z, ltp)}\n    test 734 ltpTuples.py:1232: L{Vector3Tuple}C{(x, y, z)}\n    test 735 ltpTuples.py:1279: L{Enu4Tuple}C{(east, north, up, ltp)}\n    test 736 ltpTuples.py:1305: L{Uvw3Tuple}C{(u, v, w)}\n    test 737 ltpTuples.py:1526: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 738 ltpTuples.py:1527: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n\n    testing mgrs.py (pygeodesy.named, 26.01.14)\n    test 739 mgrs.py:207: L{EasNor2Tuple}C{(easting, northing)}\n    test 740 mgrs.py:292: L{LatLonDatum5Tuple}C{(lat, lon, datum, gamma, scale)}\n    test 741 mgrs.py:353: L{UtmUps5Tuple}C{(zone, hemipole, easting, northing, band)}\n    test 742 mgrs.py:371: L{UtmUps5Tuple}C{(zone, hemipole, easting, northing, band)}\n    test 743 mgrs.py:391: L{UtmUps5Tuple}C{(zone, hemipole, easting, northing, band)}\n    test 744 mgrs.py:465: L{Mgrs6Tuple}C{(zone, EN, easting, northing, band, datum)}\n    test 745 mgrs.py:549: L{Mgrs4Tuple}C{(zone, EN, easting, northing)}\n    test 746 mgrs.py:605: L{Mgrs6Tuple}C{(zone, EN, easting, northing, band, datum)}\n\n    testing named.py (pygeodesy.named, 26.01.14)\n\n    testing namedTuples.py (pygeodesy.named, 26.01.14)\n    test 747 namedTuples.py:279: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 748 namedTuples.py:293: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n    test 749 namedTuples.py:316: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n    test 750 namedTuples.py:383: L{LatLonPrec5Tuple}C{(lat, lon, precision, height, radius)}\n    test 751 namedTuples.py:442: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 752 namedTuples.py:510: L{PhiLam3Tuple}C{(phi, lam, height)}\n    test 753 namedTuples.py:522: L{PhiLam4Tuple}C{(phi, lam, height, datum)}\n    test 754 namedTuples.py:550: L{PhiLam4Tuple}C{(phi, lam, height, datum)}\n    test 755 namedTuples.py:727: L{Vector3Tuple}C{(x, y, z)}\n    test 756 namedTuples.py:771: L{Vector4Tuple}C{(x, y, z, h)}\n    test 757 namedTuples.py:811: L{Vector3Tuple}C{(x, y, z)}\n\n    testing nvectorBase.py (pygeodesy.named, 26.01.14)\n    test 758 nvectorBase.py:160: L{LatLon2Tuple}C{(lat, lon)}\n    test 759 nvectorBase.py:166: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 760 nvectorBase.py:172: L{LatLon4Tuple}C{(lat, lon, height, datum)}\n    test 761 nvectorBase.py:190: L{PhiLam2Tuple}C{(phi, lam)}\n    test 762 nvectorBase.py:196: L{PhiLam3Tuple}C{(phi, lam, height)}\n    test 763 nvectorBase.py:202: L{PhiLam4Tuple}C{(phi, lam, height, datum)}\n    test 764 nvectorBase.py:233: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 765 nvectorBase.py:291: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 766 nvectorBase.py:353: L{Vector4Tuple}C{(x, y, z, h)}\n    test 767 nvectorBase.py:427: L{Vector4Tuple}C{(x, y, z, h)}\n    test 768 nvectorBase.py:496: L{Trilaterate5Tuple}C{(min, minPoint, max, maxPoint, n)}\n    test 769 nvectorBase.py:531: L{LatLon2Tuple}C{(lat, lon)}\n    test 770 nvectorBase.py:549: L{PhiLam2Tuple}C{(phi, lam)}\n    test 771 nvectorBase.py:589: L{Vector4Tuple}C{(x, y, z, h)}\n\n    testing osgr.py (pygeodesy.named, 26.01.14)\n    test 772 osgr.py:301: L{LatLonDatum3Tuple}C{(lat, lon, datum)}\n    test 773 osgr.py:522: L{EasNor2Tuple}C{(easting, northing)}\n    test 774 osgr.py:600: L{EasNor2Tuple}C{(easting, northing)}\n\n    testing points.py (pygeodesy.named, 26.01.14)\n    test 775 points.py:559: L{Shape2Tuple}C{(nrows, ncols)}\n    test 776 points.py:761: L{Point3Tuple}C{(x, y, ll)}\n    test 777 points.py:995: L{Bounds2Tuple}C{(latlonSW, latlonNE)}\n    test 778 points.py:997: L{Bounds4Tuple}C{(latS, lonW, latN, lonE)}\n    test 779 points.py:1037: L{LatLon2Tuple}C{(lat, lon)}\n    test 780 points.py:1117: L{LatLon2Tuple}C{(lat, lon)}\n    test 781 points.py:1485: L{NearestOn3Tuple}C{(closest, distance, angle)}\n    test 782 points.py:1487: L{NearestOn5Tuple}C{(lat, lon, distance, angle, height)}\n\n    testing props.py (pygeodesy.named, 26.01.14)\n\n    testing resections.py (pygeodesy.named, 26.01.14)\n    test 783 resections.py:229: L{Collins5Tuple}C{(pointP, pointH, a, b, c)}\n    test 784 resections.py:549: L{Survey3Tuple}C{(PA, PB, PC)}\n    test 785 resections.py:613: L{Tienstra7Tuple}C{(pointP, A, B, C, a, b, c)}\n    test 786 resections.py:733: L{TriAngle5Tuple}C{(radA, radB, radC, rIn, area)}\n    test 787 resections.py:864: L{TriSide2Tuple}C{(a, radA)}\n    test 788 resections.py:910: L{TriSide4Tuple}C{(a, b, radC, d)}\n    test 789 resections.py:956: L{Survey3Tuple}C{(PA, PB, PC)}\n\n    testing simplify.py (pygeodesy.named, 26.01.14)\n\n    testing solveBase.py (pygeodesy.named, 26.01.14)\n\n    testing sphericalBase.py (pygeodesy.named, 26.01.14)\n    test 790 sphericalBase.py:151: L{Bearing2Tuple}C{(initial, final)}\n    test 791 sphericalBase.py:579: L{Vector4Tuple}C{(x, y, z, h)}\n\n    testing sphericalNvector.py (pygeodesy.named, 26.01.14)\n    test 792 sphericalNvector.py:83: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 793 sphericalNvector.py:99: L{Vector4Tuple}C{(x, y, z, h)}\n    test 794 sphericalNvector.py:641: L{NearestOn3Tuple}C{(closest, distance, angle)}\n    test 795 sphericalNvector.py:677: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 796 sphericalNvector.py:692: L{Vector4Tuple}C{(x, y, z, h)}\n    test 797 sphericalNvector.py:731: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 798 sphericalNvector.py:748: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 799 sphericalNvector.py:882: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 800 sphericalNvector.py:913: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 801 sphericalNvector.py:1045: L{NearestOn3Tuple}C{(closest, distance, angle)}\n\n    testing sphericalTrigonometry.py (pygeodesy.named, 26.01.14)\n    test 802 sphericalTrigonometry.py:80: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 803 sphericalTrigonometry.py:622: L{NearestOn3Tuple}C{(closest, distance, angle)}\n    test 804 sphericalTrigonometry.py:653: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 805 sphericalTrigonometry.py:671: L{Triangle7Tuple}C{(A, a, B, b, C, c, area)}\n    test 806 sphericalTrigonometry.py:672: L{Triangle8Tuple}C{(A, a, B, b, C, c, D, E)}\n    test 807 sphericalTrigonometry.py:722: L{Trilaterate5Tuple}C{(min, minPoint, max, maxPoint, n)}\n    test 808 sphericalTrigonometry.py:1010: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 809 sphericalTrigonometry.py:1054: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 810 sphericalTrigonometry.py:1172: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 811 sphericalTrigonometry.py:1197: L{LatLon2Tuple}C{(lat, lon)}\n    test 812 sphericalTrigonometry.py:1228: L{NearestOn3Tuple}C{(closest, distance, angle)}\n    test 813 sphericalTrigonometry.py:1229: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 814 sphericalTrigonometry.py:1325: L{Triangle7Tuple}C{(A, a, B, b, C, c, area)}\n    test 815 sphericalTrigonometry.py:1330: L{Triangle8Tuple}C{(A, a, B, b, C, c, D, E)}\n    test 816 sphericalTrigonometry.py:1357: L{Triangle8Tuple}C{(A, a, B, b, C, c, D, E)}\n\n    testing streprs.py (pygeodesy.named, 26.01.14)\n\n    testing trf.py (pygeodesy.named, 26.01.14)\n    test 817 trf.py:472: L{Vector3Tuple}C{(x, y, z)}\n    test 818 trf.py:514: L{Vector3Tuple}C{(x, y, z)}\n\n    testing units.py (pygeodesy.named, 26.01.14)\n\n    testing unitsBase.py (pygeodesy.named, 26.01.14)\n\n    testing ups.py (pygeodesy.named, 26.01.14)\n    test 819 ups.py:147: L{EasNor2Tuple}C{(easting, northing)}\n    test 820 ups.py:209: L{LatLonDatum5Tuple}C{(lat, lon, datum, gamma, scale)}\n    test 821 ups.py:355: L{UtmUps5Tuple}C{(zone, hemipole, easting, northing, band)}\n    test 822 ups.py:402: L{UtmUps8Tuple}C{(zone, hemipole, easting, northing, band, datum, gamma, scale)}\n    test 823 ups.py:477: L{UtmUpsLatLon5Tuple}C{(zone, band, hemipole, lat, lon)}\n\n    testing utily.py (pygeodesy.named, 26.01.14)\n    test 824 utily.py:203: L{Circle4Tuple}C{(radius, height, lat, beta)}\n\n    testing utm.py (pygeodesy.named, 26.01.14)\n    test 825 utm.py:252: L{EasNor2Tuple}C{(easting, northing)}\n    test 826 utm.py:306: L{LatLonDatum5Tuple}C{(lat, lon, datum, gamma, scale)}\n    test 827 utm.py:512: L{UtmUps5Tuple}C{(zone, hemipole, easting, northing, band)}\n    test 828 utm.py:542: L{UtmUps8Tuple}C{(zone, hemipole, easting, northing, band, datum, gamma, scale)}\n    test 829 utm.py:721: L{UtmUpsLatLon5Tuple}C{(zone, band, hemipole, lat, lon)}\n\n    testing utmups.py (pygeodesy.named, 26.01.14)\n    test 830 utmups.py:89: L{UtmUps5Tuple}C{(zone, hemipole, easting, northing, band)}\n    test 831 utmups.py:129: L{UtmUps8Tuple}C{(zone, hemipole, easting, northing, band, datum, gamma, scale)}\n    test 832 utmups.py:278: L{UtmUpsLatLon5Tuple}C{(zone, band, hemipole, lat, lon)}\n\n    testing utmupsBase.py (pygeodesy.named, 26.01.14)\n    test 833 utmupsBase.py:158: L{EasNor2Tuple}C{(easting, northing)}\n    test 834 utmupsBase.py:168: L{EasNor2Tuple}C{(easting, northing)}\n    test 835 utmupsBase.py:366: L{EasNor2Tuple}C{(easting, northing)}\n\n    testing vector2d.py (pygeodesy.named, 26.01.14)\n    test 836 vector2d.py:148: L{Circin6Tuple}C{(radius, center, deltas, cA, cB, cC)}\n    test 837 vector2d.py:212: L{Circum3Tuple}C{(radius, center, deltas)}\n    test 838 vector2d.py:262: L{Circum4Tuple}C{(radius, center, rank, residuals)}\n    test 839 vector2d.py:338: L{Meeus2Tuple}C{(radius, Type)}\n    test 840 vector2d.py:513: L{Radii11Tuple}C{(rA, rB, rC, cR, rIn, riS, roS, a, b, c, s)}\n    test 841 vector2d.py:590: L{Soddy4Tuple}C{(radius, center, deltas, outer)}\n    test 842 vector2d.py:623: L{Triaxum5Tuple}C{(a, b, c, rank, residuals)}\n    test 843 vector2d.py:705: L{Vector2Tuple}C{(x, y)}\n\n    testing vector3d.py (pygeodesy.named, 26.01.14)\n    test 844 vector3d.py:75: L{Circin6Tuple}C{(radius, center, deltas, cA, cB, cC)}\n    test 845 vector3d.py:109: L{Circum3Tuple}C{(radius, center, deltas)}\n    test 846 vector3d.py:135: L{Circum4Tuple}C{(radius, center, rank, residuals)}\n    test 847 vector3d.py:182: L{Meeus2Tuple}C{(radius, Type)}\n    test 848 vector3d.py:228: L{NearestOn6Tuple}C{(closest, distance, fi, j, start, end)}\n    test 849 vector3d.py:264: L{Radii11Tuple}C{(rA, rB, rC, cR, rIn, riS, roS, a, b, c, s)}\n    test 850 vector3d.py:291: L{Soddy4Tuple}C{(radius, center, deltas, outer)}\n    test 851 vector3d.py:516: L{Intersection3Tuple}C{(point, outside1, outside2)}\n    test 852 vector3d.py:742: L{NearestOn6Tuple}C{(closest, distance, fi, j, start, end)}\n    test 853 vector3d.py:813: L{Vector3Tuple}C{(x, y, z)}\n    test 854 vector3d.py:837: L{Vector3Tuple}C{(x, y, z)}\n\n    testing vector3dBase.py (pygeodesy.named, 26.01.14)\n    test 855 vector3dBase.py:1039: L{PhiLam2Tuple}C{(phi, lam)}\n    test 856 vector3dBase.py:1047: L{LatLon2Tuple}C{(lat, lon)}\n    test 857 vector3dBase.py:1113: L{Vector3Tuple}C{(x, y, z)}\n\n    testing webmercator.py (pygeodesy.named, 26.01.14)\n    test 858 webmercator.py:121: L{LatLon2Tuple}C{(lat, lon)}\n    test 859 webmercator.py:179: L{LatLon2Tuple}C{(lat, lon)}\n    test 860 webmercator.py:288: L{EasNorRadius3Tuple}C{(easting, northing, radius)}\n    test 861 webmercator.py:324: L{EasNorRadius3Tuple}C{(easting, northing, radius)}\n\n    testing wgrs.py (pygeodesy.named, 26.01.14)\n    test 862 wgrs.py:221: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 863 wgrs.py:239: L{LatLonPrec3Tuple}C{(lat, lon, precision)}\n    test 864 wgrs.py:292: L{LatLonPrec5Tuple}C{(lat, lon, precision, height, radius)}\n\n    testing auxilats._CX_4.py (pygeodesy.named, 26.01.14)\n\n    testing auxilats._CX_6.py (pygeodesy.named, 26.01.14)\n\n    testing auxilats._CX_8.py (pygeodesy.named, 26.01.14)\n\n    testing auxilats._CX_Rs.py (pygeodesy.named, 26.01.14)\n\n    testing auxilats.__init__.py (pygeodesy.named, 26.01.14)\n\n    testing auxilats.__main__.py (pygeodesy.named, 26.01.14)\n\n    testing auxilats.auxAngle.py (pygeodesy.named, 26.01.14)\n\n    testing auxilats.auxDLat.py (pygeodesy.named, 26.01.14)\n\n    testing auxilats.auxDST.py (pygeodesy.named, 26.01.14)\n\n    testing auxilats.auxLat.py (pygeodesy.named, 26.01.14)\n\n    testing auxilats.auxily.py (pygeodesy.named, 26.01.14)\n\n    testing deprecated.__init__.py (pygeodesy.named, 26.01.14)\n\n    testing deprecated.bases.py (pygeodesy.named, 26.01.14)\n\n    testing deprecated.classes.py (pygeodesy.named, 26.01.14)\n    test 865 deprecated.classes.py:82: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n    test 866 deprecated.classes.py:96: L{Ecef9Tuple}C{(x, y, z, lat, lon, height, C, M, datum)}\n\n    testing deprecated.consterns.py (pygeodesy.named, 26.01.14)\n\n    testing deprecated.datum.py (pygeodesy.named, 26.01.14)\n\n    testing deprecated.functions.py (pygeodesy.named, 26.01.14)\n    test 867 deprecated.functions.py:56: L{ClipCS3Tuple}C{(start, end, index)}  FAILED, KNOWN, expected DEPRECATED\n    test 868 deprecated.functions.py:390: L{TriAngle4Tuple}C{(radA, radB, radC, rIn)}  FAILED, KNOWN, expected DEPRECATED\n\n    testing deprecated.nvector.py (pygeodesy.named, 26.01.14)\n\n    testing deprecated.rhumbBase.py (pygeodesy.named, 26.01.14)\n\n    testing deprecated.rhumbaux.py (pygeodesy.named, 26.01.14)\n\n    testing deprecated.rhumbsolve.py (pygeodesy.named, 26.01.14)\n\n    testing deprecated.rhumbx.py (pygeodesy.named, 26.01.14)\n\n    testing geodesicx._C4_24.py (pygeodesy.named, 26.01.14)\n\n    testing geodesicx._C4_27.py (pygeodesy.named, 26.01.14)\n\n    testing geodesicx._C4_30.py (pygeodesy.named, 26.01.14)\n\n    testing geodesicx.__init__.py (pygeodesy.named, 26.01.14)\n\n    testing geodesicx.__main__.py (pygeodesy.named, 26.01.14)\n\n    testing geodesicx.gx.py (pygeodesy.named, 26.01.14)\n    test 869 geodesicx.gx.py:357: L{Destination3Tuple}C{(lat, lon, final)}\n    test 870 geodesicx.gx.py:710: L{Direct9Tuple}C{(a12, lat2, lon2, azi2, s12, m12, M12, M21, S12)}\n    test 871 geodesicx.gx.py:719: L{Inverse10Tuple}C{(a12, s12, salp1, calp1, salp2, calp2, m12, M12, M21, S12)}\n    test 872 geodesicx.gx.py:774: L{Distance3Tuple}C{(distance, initial, final)}\n\n    testing geodesicx.gxarea.py (pygeodesy.named, 26.01.14)\n    test 873 geodesicx.gxarea.py:161: L{Area3Tuple}C{(number, perimeter, area)}\n    test 874 geodesicx.gxarea.py:323: L{Area3Tuple}C{(number, perimeter, area)}\n    test 875 geodesicx.gxarea.py:350: L{Area3Tuple}C{(number, perimeter, area)}\n\n    testing geodesicx.gxbases.py (pygeodesy.named, 26.01.14)\n\n    testing geodesicx.gxline.py (pygeodesy.named, 26.01.14)\n    test 876 geodesicx.gxline.py:464: L{Direct9Tuple}C{(a12, lat2, lon2, azi2, s12, m12, M12, M21, S12)}\n\n    testing rhumb.__init__.py (pygeodesy.named, 26.01.14)\n\n    testing rhumb.aux_.py (pygeodesy.named, 26.01.14)\n\n    testing rhumb.bases.py (pygeodesy.named, 26.01.14)\n    test 877 rhumb.bases.py:589: L{Distance2Tuple}C{(distance, initial)}\n    test 878 rhumb.bases.py:782: L{LatLon2Tuple}C{(lat, lon)}\n\n    testing rhumb.ekx.py (pygeodesy.named, 26.01.14)\n    test 879 rhumb.ekx.py:201: L{RhumbOrder2Tuple}C{(RAorder, TMorder)}  FAILED, KNOWN, expected DEPRECATED\n\n    testing rhumb.solve.py (pygeodesy.named, 26.01.14)\n    test 880 rhumb.solve.py:120: L{Destination3Tuple}C{(lat, lon, final)}\n    test 881 rhumb.solve.py:184: L{Distance3Tuple}C{(distance, initial, final)}\n\n    testing triaxials.__init__.py (pygeodesy.named, 26.01.14)\n\n    testing triaxials.bases.py (pygeodesy.named, 26.01.14)\n    test 882 triaxials.bases.py:379: L{Ellipse5Tuple}C{(a, b, height, lat, beta)}\n    test 883 triaxials.bases.py:508: L{Vector4Tuple}C{(x, y, z, h)}\n\n    testing triaxials.conformal3.py (pygeodesy.named, 26.01.14)\n    test 884 triaxials.conformal3.py:174: L{Conformal5Tuple}C{(x, y, z, scale, llk)}\n    test 885 triaxials.conformal3.py:190: L{BetOmgGam5Tuple}C{(bet, omg, gam, scale, llk)}\n    test 886 triaxials.conformal3.py:216: L{Cartesian5Tuple}C{(x, y, z, h, llk)}\n    test 887 triaxials.conformal3.py:248: L{BetOmgGam5Tuple}C{(bet, omg, gam, scale, llk)}\n    test 888 triaxials.conformal3.py:269: L{BetOmgGam5Tuple}C{(bet, omg, gam, scale, llk)}\n    test 889 triaxials.conformal3.py:290: L{BetOmgGam5Tuple}C{(bet, omg, gam, scale, llk)}\n\n    testing triaxials.triaxial3.py (pygeodesy.named, 26.01.14)\n    test 890 triaxials.triaxial3.py:175: L{Cartesian5Tuple}C{(x, y, z, h, llk)}\n    test 891 triaxials.triaxial3.py:203: L{Cartesian5Tuple}C{(x, y, z, h, llk)}\n    test 892 triaxials.triaxial3.py:277: L{Cartesian5Tuple}C{(x, y, z, h, llk)}\n    test 893 triaxials.triaxial3.py:303: L{Cartesian5Tuple}C{(x, y, z, h, llk)}\n    test 894 triaxials.triaxial3.py:323: L{Cartesian5Tuple}C{(x, y, z, h, llk)}\n    test 895 triaxials.triaxial3.py:347: L{Cartesian5Tuple}C{(x, y, z, h, llk)}\n    test 896 triaxials.triaxial3.py:421: L{Cartesian5Tuple}C{(x, y, z, h, llk)}\n    test 897 triaxials.triaxial3.py:458: L{BetOmgAlp5Tuple}C{(bet, omg, alp, h, llk)}\n    test 898 triaxials.triaxial3.py:497: L{BetOmgAlp5Tuple}C{(bet, omg, alp, h, llk)}\n    test 899 triaxials.triaxial3.py:580: L{Cartesian5Tuple}C{(x, y, z, h, llk)}\n    test 900 triaxials.triaxial3.py:607: L{BetOmgAlp5Tuple}C{(bet, omg, alp, h, llk)}\n    test 901 triaxials.triaxial3.py:608: L{PhiLamZet5Tuple}C{(phi, lam, zet, h, llk)}\n    test 902 triaxials.triaxial3.py:630: L{PhiLamZet5Tuple}C{(phi, lam, zet, h, llk)}\n    test 903 triaxials.triaxial3.py:649: L{PhiLamZet5Tuple}C{(phi, lam, zet, h, llk)}\n    test 904 triaxials.triaxial3.py:683: L{Cartesian5Tuple}C{(x, y, z, h, llk)}\n    test 905 triaxials.triaxial3.py:738: L{BetOmgAlp5Tuple}C{(bet, omg, alp, h, llk)}\n    test 906 triaxials.triaxial3.py:739: L{PhiLamZet5Tuple}C{(phi, lam, zet, h, llk)}\n    test 907 triaxials.triaxial3.py:767: L{Cartesian5Tuple}C{(x, y, z, h, llk)}\n\n    testing triaxials.triaxial5.py (pygeodesy.named, 26.01.14)\n    test 908 triaxials.triaxial5.py:107: L{BetaOmega2Tuple}C{(beta, omega)}\n    test 909 triaxials.triaxial5.py:119: L{BetaOmega2Tuple}C{(beta, omega)}\n    test 910 triaxials.triaxial5.py:140: L{BetaOmega3Tuple}C{(beta, omega, height)}\n    test 911 triaxials.triaxial5.py:152: L{BetaOmega3Tuple}C{(beta, omega, height)}\n    test 912 triaxials.triaxial5.py:177: L{Conformal2Tuple}C{(x, y)}\n    test 913 triaxials.triaxial5.py:188: L{Conformal2Tuple}C{(x, y)}\n    test 914 triaxials.triaxial5.py:250: L{Vector3Tuple}C{(x, y, z)}\n    test 915 triaxials.triaxial5.py:286: L{Vector3Tuple}C{(x, y, z)}\n    test 916 triaxials.triaxial5.py:311: L{Vector4Tuple}C{(x, y, z, h)}\n    test 917 triaxials.triaxial5.py:328: L{Vector3Tuple}C{(x, y, z)}\n    test 918 triaxials.triaxial5.py:348: L{Vector3Tuple}C{(x, y, z)}\n    test 919 triaxials.triaxial5.py:388: L{BetaOmega3Tuple}C{(beta, omega, height)}\n    test 920 triaxials.triaxial5.py:416: L{Vector3Tuple}C{(x, y, z)}\n    test 921 triaxials.triaxial5.py:444: L{LatLon3Tuple}C{(lat, lon, height)}\n    test 922 triaxials.triaxial5.py:572: L{Vector2Tuple}C{(x, y)}\n    test 923 triaxials.triaxial5.py:583: L{Vector2Tuple}C{(x, y)}\n    test 924 triaxials.triaxial5.py:592: L{Conformal2Tuple}C{(x, y)}\n    test 925 triaxials.triaxial5.py:606: L{Conformal2Tuple}C{(x, y)}\n    test 926 triaxials.triaxial5.py:621: L{Conformal2Tuple}C{(x, y)}\n    test 927 triaxials.triaxial5.py:829: L{Vector4Tuple}C{(x, y, z, h)}\n    test 928 triaxials.triaxial5.py:872: L{Vector4Tuple}C{(x, y, z, h)}\n\n    testing xtend (pygeodesy.namedTuples, 26.03.12)\n    test 929 LatLon2Tuple(lat=0, lon=1): (0, 1, 2)\n    test 930 LatLon2Tuple(lat=0, lon=1): <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 931 LatLon2Tuple(lat=0, lon=1): (0, 1, 2, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 932 LatLon2Tuple(lat=0, lon=1): <class 'pygeodesy.namedTuples.LatLon4Tuple'>\n    test 933 LatLon3Tuple(lat=0, lon=1, height=2): (0, 1, 2, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 934 LatLon3Tuple(lat=0, lon=1, height=2): <class 'pygeodesy.namedTuples.LatLon4Tuple'>\n    test 935 PhiLam2Tuple(phi=0, lam=1): (0, 1, 2)\n    test 936 PhiLam2Tuple(phi=0, lam=1): <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 937 Vector3Tuple(x=0, y=1, z=2): (0, 1, 2, 4)\n    test 938 Vector3Tuple(x=0, y=1, z=2): <class 'pygeodesy.namedTuples.Vector4Tuple'>\n\n    testing bases (pygeodesy.named, 26.01.14)\n    test 939 nd.dict: test(1=1, 2=2)\n    test 940 nd.name: test\n    test 941 nd.dict: test(1=1, 2=2)\n    test 942 nd.name: test\n    test 943 nd.kwds: test(one=1, two=2)\n    test 944 nd.name: test\n    test 945 nd.dict: test(1=1, 2=2)\n    test 946 nd.name: test\n    test 947 nd.list: test(1=1, 2=2)\n    test 948 nd.name: test\n    test 949 nd.updated: test(1=1, 2=2, name='kwds')\n    test 950 nd.name: test\n\n    testing coverage (pygeodesy.named, 26.01.14)\n{E: 'E', N: 'N', NE: 'NE', NW: 'NW', S: 'S', SE: 'SE', SW: 'SW', W: 'W'}\n    test 951 nd.name: name\n    test 952 nd.named: name\n    test 953 nd.named: Neighbors8Dict\n    test 954 nd.name: test\n    test 955 nd.test: test\n# imported pygeodesy.basics into errors.py line 443\n    test 956 nd.test: None\n    test 957 nd.classnaming: False\n    test 958 nd.classname: Neighbors8Dict\n    test 959 nd.named2: Neighbors8Dict 'test'\n    test 960 nd.classnaming: True\n    test 961 nd.classname: geohash.Neighbors8Dict\n    test 962 nd.named2: geohash.Neighbors8Dict 'test'\n    test 963 delattr: None\n    test 964 classnaming: False\n    test 965 classnaming: True\n\n    testing unregister (pygeodesy.named, 26.01.14)\n# lazily imported pygeodesy.Conics from .lcc by testNamed.py line 198\n# lazily imported pygeodesy.Ellipsoid from .ellipsoids by testNamed.py line 198\n# lazily imported pygeodesy.Ellipsoids from .ellipsoids by testNamed.py line 198\n# lazily imported pygeodesy.RefFrames from .trf by testNamed.py line 198\n# lazily imported pygeodesy.Transforms from .datums by testNamed.py line 198\n    test 966 Conics: 1\n    test 967 Conics: 8\n    test 968 Conics.Be08Lb.unregister: None\n    test 969 Conics.Be72Lb.unregister: None\n    test 970 Conics.Fr93Lb.unregister: None\n    test 971 Conics.MaNLb.unregister: None\n    test 972 Conics.MxLb.unregister: None\n    test 973 Conics.PyT_Lb.unregister: None\n    test 974 Conics.USA_Lb.unregister: None\n    test 975 Conics.WRF_Lb.unregister: None\n    test 976 Conics: 0\n\n    test 977 Datums: 6\n    test 978 Datums: 18\n    test 979 Datums.unregister(BD72): None\n    test 980 Datums.unregister(DHDN): None\n    test 981 Datums.unregister(ED50): None\n    test 982 Datums.unregister(GDA2020): None\n    test 983 Datums.unregister(GRS80): None\n    test 984 Datums.unregister(Irl1975): None\n    test 985 Datums.unregister(Krassovski1940): None\n    test 986 Datums.unregister(Krassowsky1940): None\n    test 987 Datums.unregister(MGI): None\n    test 988 Datums.unregister(NAD27): None\n    test 989 Datums.unregister(NAD83): None\n    test 990 Datums.unregister(NTF): None\n    test 991 Datums.unregister(OSGB36): None\n    test 992 Datums.unregister(Potsdam): None\n    test 993 Datums.unregister(Sphere): None\n    test 994 Datums.unregister(TokyoJapan): None\n    test 995 Datums.unregister(WGS72): None\n    test 996 Datums.unregister(WGS84): None\n    test 997 Datums: 0\n\n    test 998 RefFrames: 32  FAILED, KNOWN, expected 0\n    test 999 RefFrames: 36\n    test 1000 RefFrames.ETRF2000.unregister: None\n    test 1001 RefFrames.ETRF2005.unregister: None\n    test 1002 RefFrames.ETRF2008.unregister: None\n    test 1003 RefFrames.ETRF2014.unregister: None\n    test 1004 RefFrames.ETRF2020.unregister: None\n    test 1005 RefFrames.ETRF88.unregister: None\n    test 1006 RefFrames.ETRF89.unregister: None\n    test 1007 RefFrames.ETRF90.unregister: None\n    test 1008 RefFrames.ETRF91.unregister: None\n    test 1009 RefFrames.ETRF92.unregister: None\n    test 1010 RefFrames.ETRF93.unregister: None\n    test 1011 RefFrames.ETRF94.unregister: None\n    test 1012 RefFrames.ETRF96.unregister: None\n    test 1013 RefFrames.ETRF97.unregister: None\n    test 1014 RefFrames.GDA2020.unregister: None\n    test 1015 RefFrames.GDA94.unregister: None\n    test 1016 RefFrames.ITRF2000.unregister: None\n    test 1017 RefFrames.ITRF2005.unregister: None\n    test 1018 RefFrames.ITRF2008.unregister: None\n    test 1019 RefFrames.ITRF2014.unregister: None\n    test 1020 RefFrames.ITRF2020.unregister: None\n    test 1021 RefFrames.ITRF88.unregister: None\n    test 1022 RefFrames.ITRF89.unregister: None\n    test 1023 RefFrames.ITRF90.unregister: None\n    test 1024 RefFrames.ITRF91.unregister: None\n    test 1025 RefFrames.ITRF92.unregister: None\n    test 1026 RefFrames.ITRF93.unregister: None\n    test 1027 RefFrames.ITRF94.unregister: None\n    test 1028 RefFrames.ITRF96.unregister: None\n    test 1029 RefFrames.ITRF97.unregister: None\n    test 1030 RefFrames.NAD83.unregister: None\n    test 1031 RefFrames.NAD83cors96.unregister: None\n    test 1032 RefFrames.WGS84.unregister: None\n    test 1033 RefFrames.WGS84g1150.unregister: None\n    test 1034 RefFrames.WGS84g1674.unregister: None\n    test 1035 RefFrames.WGS84g1762.unregister: None\n    test 1036 RefFrames: 0\n\n    test 1037 Ellipsoids: 12\n    test 1038 Ellipsoids: 49\n    test 1039 Ellipsoids.Airy1830.unregister: None\n    test 1040 Ellipsoids.AiryModified.unregister: None\n    test 1041 Ellipsoids.ATS1977.unregister: None\n    test 1042 Ellipsoids.Australia1966.unregister: None\n    test 1043 Ellipsoids.Bessel1841.unregister: None\n    test 1044 Ellipsoids.BesselModified.unregister: None\n    test 1045 Ellipsoids.CGCS2000.unregister: None\n    test 1046 Ellipsoids.Clarke1866.unregister: None\n    test 1047 Ellipsoids.Clarke1880.unregister: None\n    test 1048 Ellipsoids.Clarke1880IGN.unregister: None\n    test 1049 Ellipsoids.Clarke1880Mod.unregister: None\n    test 1050 Ellipsoids.CPM1799.unregister: None\n    test 1051 Ellipsoids.Delambre1810.unregister: None\n    test 1052 Ellipsoids.Engelis1985.unregister: None\n    test 1053 Ellipsoids.Everest1969.unregister: None\n    test 1054 Ellipsoids.Everest1975.unregister: None\n    test 1055 Ellipsoids.Fisher1968.unregister: None\n    test 1056 Ellipsoids.GEM10C.unregister: None\n    test 1057 Ellipsoids.GPES.unregister: None\n    test 1058 Ellipsoids.GRS67.unregister: None\n    test 1059 Ellipsoids.GRS80.unregister: None\n    test 1060 Ellipsoids.Helmert1906.unregister: None\n    test 1061 Ellipsoids.IAU76.unregister: None\n    test 1062 Ellipsoids.IERS1989.unregister: None\n    test 1063 Ellipsoids.IERS1992TOPEX.unregister: None\n    test 1064 Ellipsoids.IERS2003.unregister: None\n    test 1065 Ellipsoids.Intl1924.unregister: None\n    test 1066 Ellipsoids.Intl1967.unregister: None\n    test 1067 Ellipsoids.Krassovski1940.unregister: None\n    test 1068 Ellipsoids.Krassowsky1940.unregister: None\n    test 1069 Ellipsoids.Maupertuis1738.unregister: None\n    test 1070 Ellipsoids.Mercury1960.unregister: None\n    test 1071 Ellipsoids.Mercury1968Mod.unregister: None\n    test 1072 Ellipsoids.NWL1965.unregister: None\n    test 1073 Ellipsoids.OSU86F.unregister: None\n    test 1074 Ellipsoids.OSU91A.unregister: None\n    test 1075 Ellipsoids.Plessis1817.unregister: None\n    test 1076 Ellipsoids.PZ90.unregister: None\n    test 1077 Ellipsoids.SGS85.unregister: None\n    test 1078 Ellipsoids.SoAmerican1969.unregister: None\n    test 1079 Ellipsoids.Sphere.unregister: None\n    test 1080 Ellipsoids.SphereAuthalic.unregister: None\n    test 1081 Ellipsoids.SpherePopular.unregister: None\n    test 1082 Ellipsoids.Struve1860.unregister: None\n    test 1083 Ellipsoids.WGS60.unregister: None\n    test 1084 Ellipsoids.WGS66.unregister: None\n    test 1085 Ellipsoids.WGS72.unregister: None\n    test 1086 Ellipsoids.WGS84.unregister: None\n    test 1087 Ellipsoids.WGS84_NGS.unregister: None\n    test 1088 Ellipsoids: 0\n\n    test 1089 Transforms: 16\n    test 1090 Transforms: 20\n    test 1091 Transforms.BD72.unregister: None\n    test 1092 Transforms.Bessel1841.unregister: None\n    test 1093 Transforms.Clarke1866.unregister: None\n    test 1094 Transforms.DHDN.unregister: None\n    test 1095 Transforms.DHDNE.unregister: None\n    test 1096 Transforms.DHDNW.unregister: None\n    test 1097 Transforms.ED50.unregister: None\n    test 1098 Transforms.Identity.unregister: None\n    test 1099 Transforms.Irl1965.unregister: None\n    test 1100 Transforms.Irl1975.unregister: None\n    test 1101 Transforms.Krassovski1940.unregister: None\n    test 1102 Transforms.Krassowsky1940.unregister: None\n    test 1103 Transforms.MGI.unregister: None\n    test 1104 Transforms.NAD27.unregister: None\n    test 1105 Transforms.NAD83.unregister: None\n    test 1106 Transforms.NTF.unregister: None\n    test 1107 Transforms.OSGB36.unregister: None\n    test 1108 Transforms.TokyoJapan.unregister: None\n    test 1109 Transforms.WGS72.unregister: None\n    test 1110 Transforms.WGS84.unregister: None\n    test 1111 Transforms: 0\n\n    test 1112 nameof: KsOrder\n\n    10 of 1112 testNamed.py tests (0.9%) FAILED, ALL KNOWN (pygeodesy 26.3.26 Python 3.14.3 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 54.573 ms\nrunning /Library/Framewo....n3.14 -W default ~/PyGeodesy/test/testNamedTuples.py\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.FIx from .units by testNamedTuples.py line 10\n\n    testing testNamedTuples.py 25.12.06 isLazy=3\n    test 1 pygeodesy.albers: Albers7Tuple(x=0.5, y=0.5, lat=0.5, lon=0.5, gamma=0.5, scale=0.5, datum=0.5)\n    test 2 pygeodesy.albers: Albers7Tuple(x=Meter, y=Meter, lat=Lat, lon=Lon, gamma=Bearing, scale=_Pass, datum=_Pass)\n    test 3 pygeodesy.albers.Albers7Tuple.x: 0.5\n    test 4 pygeodesy.albers.Albers7Tuple.y: 0.5\n    test 5 pygeodesy.albers.Albers7Tuple.lat: 0.5\n    test 6 pygeodesy.albers.Albers7Tuple.lon: 0.5\n    test 7 pygeodesy.albers.Albers7Tuple.gamma: 0.5\n    test 8 pygeodesy.albers.Albers7Tuple.scale: 0.5\n    test 9 pygeodesy.albers.Albers7Tuple.datum: 0.5\n    test 10 pygeodesy.albers.Albers7Tuple._validated: True\n    test 11 pygeodesy.albers.Albers7Tuple._validated: True\n    test 12 pygeodesy.angles: _Ang3Tuple(Ang=Ang, Ang=Ang, Ang=_Pass)\n    test 13 pygeodesy.angles._Ang3Tuple.Ang: 0.5\n    test 14 pygeodesy.angles._Ang3Tuple.Ang: 0.5\n    test 15 pygeodesy.angles._Ang3Tuple.Ang: 0.5\n    test 16 pygeodesy.angles._Ang3Tuple._validated: True\n    test 17 pygeodesy.angles._Ang3Tuple._validated: True\n# lazily imported pygeodesy.azimuthal by bases.py line 199\n    test 18 pygeodesy.azimuthal: Azimuthal7Tuple(x=0.5, y=0.5, lat=0.5, lon=0.5, azimuth=0.5, scale=0.5, datum=0.5)\n    test 19 pygeodesy.azimuthal: Azimuthal7Tuple(x=Easting, y=Northing, lat=Lat_, lon=Lon_, azimuth=Azimuth, scale=Scalar, datum=_Pass)\n    test 20 pygeodesy.azimuthal.Azimuthal7Tuple.x: 0.5\n    test 21 pygeodesy.azimuthal.Azimuthal7Tuple.y: 0.5\n    test 22 pygeodesy.azimuthal.Azimuthal7Tuple.lat: 0.5\n    test 23 pygeodesy.azimuthal.Azimuthal7Tuple.lon: 0.5\n    test 24 pygeodesy.azimuthal.Azimuthal7Tuple.azimuth: 0.5\n    test 25 pygeodesy.azimuthal.Azimuthal7Tuple.scale: 0.5\n    test 26 pygeodesy.azimuthal.Azimuthal7Tuple.datum: 0.5\n    test 27 pygeodesy.azimuthal.Azimuthal7Tuple._validated: True\n    test 28 pygeodesy.azimuthal.Azimuthal7Tuple._validated: True\n# lazily imported pygeodesy.booleans by bases.py line 199\n    test 29 pygeodesy.cartesianBase: RadiusThetaPhi3Tuple(r=0.5, theta=0.5, phi=0.5)\n    test 30 pygeodesy.cartesianBase: RadiusThetaPhi3Tuple(r=Meter, theta=_Pass, phi=_Pass)\n    test 31 pygeodesy.cartesianBase.RadiusThetaPhi3Tuple.r: 0.5\n    test 32 pygeodesy.cartesianBase.RadiusThetaPhi3Tuple.theta: 0.5\n    test 33 pygeodesy.cartesianBase.RadiusThetaPhi3Tuple.phi: 0.5\n    test 34 pygeodesy.cartesianBase.RadiusThetaPhi3Tuple._validated: True\n    test 35 pygeodesy.cartesianBase.RadiusThetaPhi3Tuple._validated: True\n# lazily imported pygeodesy.clipy by bases.py line 199\n    test 36 pygeodesy.clipy: ClipCS4Tuple(start=0.5, end=0.5, i=0, j=0)\n    test 37 pygeodesy.clipy: ClipCS4Tuple(start=_Pass, end=_Pass, i=Number_, j=Number_)\n    test 38 pygeodesy.clipy.ClipCS4Tuple.start: 0.5\n    test 39 pygeodesy.clipy.ClipCS4Tuple.end: 0.5\n    test 40 pygeodesy.clipy.ClipCS4Tuple.i: 0.5\n    test 41 pygeodesy.clipy.ClipCS4Tuple.j: 0.5\n    test 42 pygeodesy.clipy.ClipCS4Tuple._validated: True\n    test 43 pygeodesy.clipy.ClipCS4Tuple._validated: True\n    test 44 pygeodesy.clipy: ClipFHP4Tuple(lat=0.5, lon=0.5, height=0.5, clipid=0)\n    test 45 pygeodesy.clipy: ClipFHP4Tuple(lat=Lat, lon=Lon, height=_Pass, clipid=Number_)\n    test 46 pygeodesy.clipy.ClipFHP4Tuple.lat: 0.5\n    test 47 pygeodesy.clipy.ClipFHP4Tuple.lon: 0.5\n    test 48 pygeodesy.clipy.ClipFHP4Tuple.height: 0.5\n    test 49 pygeodesy.clipy.ClipFHP4Tuple.clipid: 0.5\n    test 50 pygeodesy.clipy.ClipFHP4Tuple._validated: True\n    test 51 pygeodesy.clipy.ClipFHP4Tuple._validated: True\n    test 52 pygeodesy.clipy: ClipGH4Tuple(lat=0.5, lon=0.5, height=0.5, clipid=0)\n    test 53 pygeodesy.clipy: ClipGH4Tuple(lat=Lat, lon=Lon, height=_Pass, clipid=Number_)\n    test 54 pygeodesy.clipy.ClipGH4Tuple.lat: 0.5\n    test 55 pygeodesy.clipy.ClipGH4Tuple.lon: 0.5\n    test 56 pygeodesy.clipy.ClipGH4Tuple.height: 0.5\n    test 57 pygeodesy.clipy.ClipGH4Tuple.clipid: 0.5\n    test 58 pygeodesy.clipy.ClipGH4Tuple._validated: True\n    test 59 pygeodesy.clipy.ClipGH4Tuple._validated: True\n    test 60 pygeodesy.clipy: ClipLB6Tuple(start=0.5, end=0.5, i=0, fi=0.5, fj=0.5, j=0)\n    test 61 pygeodesy.clipy: ClipLB6Tuple(start=_Pass, end=_Pass, i=Number_, fi=_Pass, fj=_Pass, j=Number_)\n    test 62 pygeodesy.clipy.ClipLB6Tuple.start: 0.5\n    test 63 pygeodesy.clipy.ClipLB6Tuple.end: 0.5\n    test 64 pygeodesy.clipy.ClipLB6Tuple.i: 0.5\n    test 65 pygeodesy.clipy.ClipLB6Tuple.fi: 0.5\n    test 66 pygeodesy.clipy.ClipLB6Tuple.fj: 0.5\n    test 67 pygeodesy.clipy.ClipLB6Tuple.j: 0.5\n    test 68 pygeodesy.clipy.ClipLB6Tuple._validated: True\n    test 69 pygeodesy.clipy.ClipLB6Tuple._validated: True\n    test 70 pygeodesy.clipy: ClipSH3Tuple(start=0.5, end=0.5, original=True)\n    test 71 pygeodesy.clipy: ClipSH3Tuple(start=_Pass, end=_Pass, original=Bool)\n    test 72 pygeodesy.clipy.ClipSH3Tuple.start: 0.5\n    test 73 pygeodesy.clipy.ClipSH3Tuple.end: 0.5\n    test 74 pygeodesy.clipy.ClipSH3Tuple.original: 0.5\n    test 75 pygeodesy.clipy.ClipSH3Tuple._validated: True\n    test 76 pygeodesy.clipy.ClipSH3Tuple._validated: True\n# lazily imported pygeodesy.css by bases.py line 199\n    test 77 pygeodesy.css: EasNorAziRk4Tuple(easting=0.5, northing=0.5, azimuth=0.5, reciprocal=0.5)\n    test 78 pygeodesy.css: EasNorAziRk4Tuple(easting=Easting, northing=Northing, azimuth=Azimuth, reciprocal=Scalar)\n    test 79 pygeodesy.css.EasNorAziRk4Tuple.easting: 0.5\n    test 80 pygeodesy.css.EasNorAziRk4Tuple.northing: 0.5\n    test 81 pygeodesy.css.EasNorAziRk4Tuple.azimuth: 0.5\n    test 82 pygeodesy.css.EasNorAziRk4Tuple.reciprocal: 0.5\n    test 83 pygeodesy.css.EasNorAziRk4Tuple._validated: True\n    test 84 pygeodesy.css.EasNorAziRk4Tuple._validated: True\n    test 85 pygeodesy.css: EasNorAziRkEqu6Tuple(easting=0.5, northing=0.5, azimuth=0.5, reciprocal=0.5, equatorarc=0.5, equatorazimuth=0.5)\n    test 86 pygeodesy.css: EasNorAziRkEqu6Tuple(easting=Easting, northing=Northing, azimuth=Azimuth, reciprocal=Scalar, equatorarc=Degrees, equatorazimuth=Azimuth)\n    test 87 pygeodesy.css.EasNorAziRkEqu6Tuple.easting: 0.5\n    test 88 pygeodesy.css.EasNorAziRkEqu6Tuple.northing: 0.5\n    test 89 pygeodesy.css.EasNorAziRkEqu6Tuple.azimuth: 0.5\n    test 90 pygeodesy.css.EasNorAziRkEqu6Tuple.reciprocal: 0.5\n    test 91 pygeodesy.css.EasNorAziRkEqu6Tuple.equatorarc: 0.5\n    test 92 pygeodesy.css.EasNorAziRkEqu6Tuple.equatorazimuth: 0.5\n    test 93 pygeodesy.css.EasNorAziRkEqu6Tuple._validated: True\n    test 94 pygeodesy.css.EasNorAziRkEqu6Tuple._validated: True\n    test 95 pygeodesy.css: LatLonAziRk4Tuple(lat=0.5, lon=0.5, azimuth=0.5, reciprocal=0.5)\n    test 96 pygeodesy.css: LatLonAziRk4Tuple(lat=Lat_, lon=Lon_, azimuth=Azimuth, reciprocal=Scalar)\n    test 97 pygeodesy.css.LatLonAziRk4Tuple.lat: 0.5\n    test 98 pygeodesy.css.LatLonAziRk4Tuple.lon: 0.5\n    test 99 pygeodesy.css.LatLonAziRk4Tuple.azimuth: 0.5\n    test 100 pygeodesy.css.LatLonAziRk4Tuple.reciprocal: 0.5\n    test 101 pygeodesy.css.LatLonAziRk4Tuple._validated: True\n    test 102 pygeodesy.css.LatLonAziRk4Tuple._validated: True\n# lazily imported pygeodesy.ecef by bases.py line 199\n    test 103 pygeodesy.ecef: Ecef9Tuple(x=0.5, y=0.5, z=0.5, lat=0.5, lon=0.5, height=0.5, C=0, M=0.5, datum=0.5)\n    test 104 pygeodesy.ecef: Ecef9Tuple(x=Meter, y=Meter, z=Meter, lat=Lat, lon=Lon, height=Height, C=Int, M=_Pass, datum=_Pass)\n    test 105 pygeodesy.ecef.Ecef9Tuple.x: 0.5\n    test 106 pygeodesy.ecef.Ecef9Tuple.y: 0.5\n    test 107 pygeodesy.ecef.Ecef9Tuple.z: 0.5\n    test 108 pygeodesy.ecef.Ecef9Tuple.lat: 0.5\n    test 109 pygeodesy.ecef.Ecef9Tuple.lon: 0.5\n    test 110 pygeodesy.ecef.Ecef9Tuple.height: 0.5\n    test 111 pygeodesy.ecef.Ecef9Tuple.C: 0.5\n    test 112 pygeodesy.ecef.Ecef9Tuple.M: 0.5\n    test 113 pygeodesy.ecef.Ecef9Tuple.datum: 0.5\n    test 114 pygeodesy.ecef.Ecef9Tuple._validated: True\n    test 115 pygeodesy.ecef.Ecef9Tuple._validated: True\n    test 116 pygeodesy.ecef: EcefMatrix(_0_0_=0.5, _0_1_=0.5, _0_2_=0.5, _1_0_=0.5, _1_1_=0.5, _1_2_=0.5, _2_0_=0.5, _2_1_=0.5, _2_2_=0.5)\n    test 117 pygeodesy.ecef: EcefMatrix(_0_0_=Scalar, _0_1_=Scalar, _0_2_=Scalar, _1_0_=Scalar, _1_1_=Scalar, _1_2_=Scalar, _2_0_=Scalar, _2_1_=Scalar, _2_2_=Scalar)\n    test 118 pygeodesy.ecef.EcefMatrix._0_0_: 0.5\n    test 119 pygeodesy.ecef.EcefMatrix._0_1_: 0.5\n    test 120 pygeodesy.ecef.EcefMatrix._0_2_: 0.5\n    test 121 pygeodesy.ecef.EcefMatrix._1_0_: 0.5\n    test 122 pygeodesy.ecef.EcefMatrix._1_1_: 0.5\n    test 123 pygeodesy.ecef.EcefMatrix._1_2_: 0.5\n    test 124 pygeodesy.ecef.EcefMatrix._2_0_: 0.5\n    test 125 pygeodesy.ecef.EcefMatrix._2_1_: 0.5\n    test 126 pygeodesy.ecef.EcefMatrix._2_2_: 0.5\n    test 127 pygeodesy.ecef.EcefMatrix._validated: True\n    test 128 pygeodesy.ecef.EcefMatrix._validated: True\n# lazily imported pygeodesy.elevations by bases.py line 199\n    test 129 pygeodesy.elevations: Elevation2Tuple(elevation=0.5, data_source='0.5')\n    test 130 pygeodesy.elevations: Elevation2Tuple(elevation=Meter, data_source=Str)\n    test 131 pygeodesy.elevations.Elevation2Tuple.elevation: 0.5\n    test 132 pygeodesy.elevations.Elevation2Tuple.data_source: 0.5\n    test 133 pygeodesy.elevations.Elevation2Tuple._validated: True\n    test 134 pygeodesy.elevations.Elevation2Tuple._validated: True\n    test 135 pygeodesy.elevations: GeoidHeight2Tuple(height=0.5, model_name='0.5')\n    test 136 pygeodesy.elevations: GeoidHeight2Tuple(height=Meter, model_name=Str)\n    test 137 pygeodesy.elevations.GeoidHeight2Tuple.height: 0.5\n    test 138 pygeodesy.elevations.GeoidHeight2Tuple.model_name: 0.5\n    test 139 pygeodesy.elevations.GeoidHeight2Tuple._validated: True\n    test 140 pygeodesy.elevations.GeoidHeight2Tuple._validated: True\n# lazily imported pygeodesy.ellipses by bases.py line 199\n# lazily imported pygeodesy.ellipsoidalBaseDI by bases.py line 199\n# lazily imported pygeodesy.ellipsoidalExact by bases.py line 199\n# lazily imported pygeodesy.ellipsoidalGeodSolve by bases.py line 199\n# lazily imported pygeodesy.ellipsoidalKarney by bases.py line 199\n# lazily imported pygeodesy.ellipsoidalNvector by bases.py line 199\n# lazily imported pygeodesy.ellipsoidalVincenty by bases.py line 199\n    test 141 pygeodesy.ellipsoids: Curvature2Tuple(meridional=0.5, prime_vertical=0.5)\n    test 142 pygeodesy.ellipsoids: Curvature2Tuple(meridional=Meter, prime_vertical=Meter)\n    test 143 pygeodesy.ellipsoids.Curvature2Tuple.meridional: 0.5\n    test 144 pygeodesy.ellipsoids.Curvature2Tuple.prime_vertical: 0.5\n    test 145 pygeodesy.ellipsoids.Curvature2Tuple._validated: True\n    test 146 pygeodesy.ellipsoids.Curvature2Tuple._validated: True\n    test 147 pygeodesy.ellipsoids: a_f2Tuple(a=0.5, f=0.5)\n    test 148 pygeodesy.ellipsoids: a_f2Tuple(a=_Pass, f=_Pass)\n    test 149 pygeodesy.ellipsoids.a_f2Tuple.a: 0.5\n    test 150 pygeodesy.ellipsoids.a_f2Tuple.f: 0.5\n    test 151 pygeodesy.ellipsoids.a_f2Tuple._validated: True\n    test 152 pygeodesy.ellipsoids.a_f2Tuple._validated: True\n# lazily imported pygeodesy.elliptic by bases.py line 199\n    test 153 pygeodesy.elliptic: Elliptic3Tuple(sn=0.5, cn=0.5, dn=0.5)\n    test 154 pygeodesy.elliptic: Elliptic3Tuple(sn=Scalar, cn=Scalar, dn=Scalar)\n    test 155 pygeodesy.elliptic.Elliptic3Tuple.sn: 0.5\n    test 156 pygeodesy.elliptic.Elliptic3Tuple.cn: 0.5\n    test 157 pygeodesy.elliptic.Elliptic3Tuple.dn: 0.5\n    test 158 pygeodesy.elliptic.Elliptic3Tuple._validated: True\n    test 159 pygeodesy.elliptic.Elliptic3Tuple._validated: True\n# lazily imported pygeodesy.epsg by bases.py line 199\n# lazily imported pygeodesy.etm by bases.py line 199\n    test 160 pygeodesy.formy: Radical2Tuple(ratio=0.5, xline=0.5)\n    test 161 pygeodesy.formy: Radical2Tuple(ratio=Scalar, xline=Scalar)\n    test 162 pygeodesy.formy.Radical2Tuple.ratio: 0.5\n    test 163 pygeodesy.formy.Radical2Tuple.xline: 0.5\n    test 164 pygeodesy.formy.Radical2Tuple._validated: True\n    test 165 pygeodesy.formy.Radical2Tuple._validated: True\n    test 166 pygeodesy.frechet: Frechet6Tuple(fd=0.5, fi1=0.5, fi2=0.5, r=0, n=0, units='test')\n    test 167 pygeodesy.frechet: Frechet6Tuple(fd=_Pass, fi1=FIx, fi2=FIx, r=Number_, n=Number_, units=_Pass)\n    test 168 pygeodesy.frechet.Frechet6Tuple.fd: 0.5\n    test 169 pygeodesy.frechet.Frechet6Tuple.fi1: 0.5\n    test 170 pygeodesy.frechet.Frechet6Tuple.fi2: 0.5\n    test 171 pygeodesy.frechet.Frechet6Tuple.r: 0.5\n    test 172 pygeodesy.frechet.Frechet6Tuple.n: 0.5\n    test 173 pygeodesy.frechet.Frechet6Tuple.units: <bound method _NamedTuple.units of Frechet6Tuple(fd=0.5, fi1=0.5, fi2=0.5, r=0.5, n=0.5, units='test')>\n    test 174 pygeodesy.frechet.Frechet6Tuple._validated: True\n    test 175 pygeodesy.frechet.Frechet6Tuple._validated: True\n# lazily imported pygeodesy.fstats by bases.py line 199\n    test 176 pygeodesy.fsums: Fsum2Tuple(fsum=0.5, residual=0.5)\n    test 177 pygeodesy.fsums: Fsum2Tuple(fsum=_Float_Int, residual=_Float_Int)\n    test 178 pygeodesy.fsums.Fsum2Tuple.fsum: 0.5\n    test 179 pygeodesy.fsums.Fsum2Tuple.residual: 0.5\n    test 180 pygeodesy.fsums.Fsum2Tuple._validated: True\n    test 181 pygeodesy.fsums.Fsum2Tuple._validated: True\n# lazily imported pygeodesy.gars by bases.py line 199\n# lazily imported pygeodesy.geod3solve by bases.py line 199\n    test 182 pygeodesy.geod3solve: Geod3Solve8Tuple(bet1=Deg, omg1=Deg, alp1=Deg, bet2=Deg, omg2=Deg, alp2=Deg, s12=Meter, a12=Deg)\n    test 183 pygeodesy.geod3solve.Geod3Solve8Tuple.bet1: 0.5\n    test 184 pygeodesy.geod3solve.Geod3Solve8Tuple.omg1: 0.5\n    test 185 pygeodesy.geod3solve.Geod3Solve8Tuple.alp1: 0.5\n    test 186 pygeodesy.geod3solve.Geod3Solve8Tuple.bet2: 0.5\n    test 187 pygeodesy.geod3solve.Geod3Solve8Tuple.omg2: 0.5\n    test 188 pygeodesy.geod3solve.Geod3Solve8Tuple.alp2: 0.5\n    test 189 pygeodesy.geod3solve.Geod3Solve8Tuple.s12: 0.5\n    test 190 pygeodesy.geod3solve.Geod3Solve8Tuple.a12: 0.5\n    test 191 pygeodesy.geod3solve.Geod3Solve8Tuple._validated: True\n    test 192 pygeodesy.geod3solve.Geod3Solve8Tuple._validated: True\n# lazily imported pygeodesy.geodesici by bases.py line 199\n    test 193 pygeodesy.geodesici: Intersect7Tuple(A=0.5, B=0.5, sAB=0.5, aAB=0.5, c=0, kA=0, kB=0)\n    test 194 pygeodesy.geodesici: Intersect7Tuple(A=_Pass, B=_Pass, sAB=Meter, aAB=Degrees, c=Int, kA=Int, kB=Int)\n    test 195 pygeodesy.geodesici.Intersect7Tuple.A: 0.5\n    test 196 pygeodesy.geodesici.Intersect7Tuple.B: 0.5\n    test 197 pygeodesy.geodesici.Intersect7Tuple.sAB: 0.5\n    test 198 pygeodesy.geodesici.Intersect7Tuple.aAB: 0.5\n    test 199 pygeodesy.geodesici.Intersect7Tuple.c: 0.5\n    test 200 pygeodesy.geodesici.Intersect7Tuple.kA: 0.5\n    test 201 pygeodesy.geodesici.Intersect7Tuple.kB: 0.5\n    test 202 pygeodesy.geodesici.Intersect7Tuple._validated: True\n    test 203 pygeodesy.geodesici.Intersect7Tuple._validated: True\n    test 204 pygeodesy.geodesici: Intersectool5Tuple(A=0.5, B=0.5, sAB=0.5, aAB=0.5, c=0)\n    test 205 pygeodesy.geodesici: Intersectool5Tuple(A=_Pass, B=_Pass, sAB=Meter, aAB=Degrees, c=Int)\n    test 206 pygeodesy.geodesici.Intersectool5Tuple.A: 0.5\n    test 207 pygeodesy.geodesici.Intersectool5Tuple.B: 0.5\n    test 208 pygeodesy.geodesici.Intersectool5Tuple.sAB: 0.5\n    test 209 pygeodesy.geodesici.Intersectool5Tuple.aAB: 0.5\n    test 210 pygeodesy.geodesici.Intersectool5Tuple.c: 0.5\n    test 211 pygeodesy.geodesici.Intersectool5Tuple._validated: True\n    test 212 pygeodesy.geodesici.Intersectool5Tuple._validated: True\n    test 213 pygeodesy.geodesici: Intersector5Tuple(A=0.5, B=0.5, sAB=0.5, aAB=0.5, c=0)\n    test 214 pygeodesy.geodesici: Intersector5Tuple(A=_Pass, B=_Pass, sAB=Meter, aAB=Degrees, c=Int)\n    test 215 pygeodesy.geodesici.Intersector5Tuple.A: 0.5\n    test 216 pygeodesy.geodesici.Intersector5Tuple.B: 0.5\n    test 217 pygeodesy.geodesici.Intersector5Tuple.sAB: 0.5\n    test 218 pygeodesy.geodesici.Intersector5Tuple.aAB: 0.5\n    test 219 pygeodesy.geodesici.Intersector5Tuple.c: 0.5\n    test 220 pygeodesy.geodesici.Intersector5Tuple._validated: True\n    test 221 pygeodesy.geodesici.Intersector5Tuple._validated: True\n    test 222 pygeodesy.geodesici: Middle5Tuple(A=0.5, B=0.5, sMM=0.5, aMM=0.5, c=0)\n    test 223 pygeodesy.geodesici: Middle5Tuple(A=_Pass, B=_Pass, sMM=Meter, aMM=Degrees, c=Int)\n    test 224 pygeodesy.geodesici.Middle5Tuple.A: 0.5\n    test 225 pygeodesy.geodesici.Middle5Tuple.B: 0.5\n    test 226 pygeodesy.geodesici.Middle5Tuple.sMM: 0.5\n    test 227 pygeodesy.geodesici.Middle5Tuple.aMM: 0.5\n    test 228 pygeodesy.geodesici.Middle5Tuple.c: 0.5\n    test 229 pygeodesy.geodesici.Middle5Tuple._validated: True\n    test 230 pygeodesy.geodesici.Middle5Tuple._validated: True\n# lazily imported pygeodesy.geodesicw by bases.py line 199\n# lazily imported pygeodesy.geodsolve by bases.py line 199\n    test 231 pygeodesy.geodsolve: GeodSolve12Tuple(lat1=0.5, lon1=0.5, azi1=0.5, lat2=0.5, lon2=0.5, azi2=0.5, s12=0.5, a12=0.5, m12=0.5, M12=0.5, M21=0.5, S12=0.5)\n    test 232 pygeodesy.geodsolve: GeodSolve12Tuple(lat1=_Lat, lon1=_Lon, azi1=Azimuth, lat2=_Lat, lon2=_Lon, azi2=Azimuth, s12=Meter, a12=Degrees, m12=_Pass, M12=_Pass, M21=_Pass, S12=Meter2)\n    test 233 pygeodesy.geodsolve.GeodSolve12Tuple.lat1: 0.5\n    test 234 pygeodesy.geodsolve.GeodSolve12Tuple.lon1: 0.5\n    test 235 pygeodesy.geodsolve.GeodSolve12Tuple.azi1: 0.5\n    test 236 pygeodesy.geodsolve.GeodSolve12Tuple.lat2: 0.5\n    test 237 pygeodesy.geodsolve.GeodSolve12Tuple.lon2: 0.5\n    test 238 pygeodesy.geodsolve.GeodSolve12Tuple.azi2: 0.5\n    test 239 pygeodesy.geodsolve.GeodSolve12Tuple.s12: 0.5\n    test 240 pygeodesy.geodsolve.GeodSolve12Tuple.a12: 0.5\n    test 241 pygeodesy.geodsolve.GeodSolve12Tuple.m12: 0.5\n    test 242 pygeodesy.geodsolve.GeodSolve12Tuple.M12: 0.5\n    test 243 pygeodesy.geodsolve.GeodSolve12Tuple.M21: 0.5\n    test 244 pygeodesy.geodsolve.GeodSolve12Tuple.S12: 0.5\n    test 245 pygeodesy.geodsolve.GeodSolve12Tuple._validated: True\n    test 246 pygeodesy.geodsolve.GeodSolve12Tuple._validated: True\n# lazily imported pygeodesy.geohash by bases.py line 199\n    test 247 pygeodesy.geohash: Resolutions2Tuple(res1=0.5, res2=0.5)\n    test 248 pygeodesy.geohash: Resolutions2Tuple(res1=Degrees_, res2=Degrees_)\n    test 249 pygeodesy.geohash.Resolutions2Tuple.res1: 0.5\n    test 250 pygeodesy.geohash.Resolutions2Tuple.res2: 0.5\n    test 251 pygeodesy.geohash.Resolutions2Tuple._validated: True\n    test 252 pygeodesy.geohash.Resolutions2Tuple._validated: True\n    test 253 pygeodesy.geohash: Sizes3Tuple(height=0.5, width=0.5, radius=0.5)\n    test 254 pygeodesy.geohash: Sizes3Tuple(height=Meter, width=Meter, radius=Meter)\n    test 255 pygeodesy.geohash.Sizes3Tuple.height: 0.5\n    test 256 pygeodesy.geohash.Sizes3Tuple.width: 0.5\n    test 257 pygeodesy.geohash.Sizes3Tuple.radius: 0.5\n    test 258 pygeodesy.geohash.Sizes3Tuple._validated: True\n    test 259 pygeodesy.geohash.Sizes3Tuple._validated: True\n# lazily imported pygeodesy.geoids by bases.py line 199\n    test 260 pygeodesy.geoids: GeoidHeight5Tuple(lat=0.5, lon=0.5, egm84=0.5, egm96=0.5, egm2008=0.5)\n    test 261 pygeodesy.geoids: GeoidHeight5Tuple(lat=Lat, lon=Lon, egm84=Height, egm96=Height, egm2008=Height)\n    test 262 pygeodesy.geoids.GeoidHeight5Tuple.lat: 0.5\n    test 263 pygeodesy.geoids.GeoidHeight5Tuple.lon: 0.5\n    test 264 pygeodesy.geoids.GeoidHeight5Tuple.egm84: 0.5\n    test 265 pygeodesy.geoids.GeoidHeight5Tuple.egm96: 0.5\n    test 266 pygeodesy.geoids.GeoidHeight5Tuple.egm2008: 0.5\n    test 267 pygeodesy.geoids.GeoidHeight5Tuple._validated: True\n    test 268 pygeodesy.geoids.GeoidHeight5Tuple._validated: True\n    test 269 pygeodesy.hausdorff: Hausdorff6Tuple(hd=0.5, i=0, j=0, mn=0, md=0.5, units='test')\n    test 270 pygeodesy.hausdorff: Hausdorff6Tuple(hd=_Pass, i=Number_, j=Number_, mn=Number_, md=_Pass, units=_Pass)\n    test 271 pygeodesy.hausdorff.Hausdorff6Tuple.hd: 0.5\n    test 272 pygeodesy.hausdorff.Hausdorff6Tuple.i: 0.5\n    test 273 pygeodesy.hausdorff.Hausdorff6Tuple.j: 0.5\n    test 274 pygeodesy.hausdorff.Hausdorff6Tuple.mn: 0.5\n    test 275 pygeodesy.hausdorff.Hausdorff6Tuple.md: 0.5\n    test 276 pygeodesy.hausdorff.Hausdorff6Tuple.units: <bound method _NamedTuple.units of Hausdorff6Tuple(hd=0.5, i=0.5, j=0.5, mn=0.5, md=0.5, units='test')>\n    test 277 pygeodesy.hausdorff.Hausdorff6Tuple._validated: True\n    test 278 pygeodesy.hausdorff.Hausdorff6Tuple._validated: True\n    test 279 pygeodesy.karney: Area3Tuple(number=0, perimeter=0.5, area=0.5)\n    test 280 pygeodesy.karney: Area3Tuple(number=Number_, perimeter=Meter, area=Meter2)\n    test 281 pygeodesy.karney.Area3Tuple.number: 0.5\n    test 282 pygeodesy.karney.Area3Tuple.perimeter: 0.5\n    test 283 pygeodesy.karney.Area3Tuple.area: 0.5\n    test 284 pygeodesy.karney.Area3Tuple._validated: True\n    test 285 pygeodesy.karney.Area3Tuple._validated: True\n    test 286 pygeodesy.karney: Direct9Tuple(a12=0.5, lat2=0.5, lon2=0.5, azi2=0.5, s12=0.5, m12=0.5, M12=0.5, M21=0.5, S12=0.5)\n    test 287 pygeodesy.karney: Direct9Tuple(a12=Azimuth, lat2=_Lat, lon2=_Lon, azi2=Azimuth, s12=Meter, m12=_Pass, M12=_Pass, M21=_Pass, S12=Meter2)\n    test 288 pygeodesy.karney.Direct9Tuple.a12: 0.5\n    test 289 pygeodesy.karney.Direct9Tuple.lat2: 0.5\n    test 290 pygeodesy.karney.Direct9Tuple.lon2: 0.5\n    test 291 pygeodesy.karney.Direct9Tuple.azi2: 0.5\n    test 292 pygeodesy.karney.Direct9Tuple.s12: 0.5\n    test 293 pygeodesy.karney.Direct9Tuple.m12: 0.5\n    test 294 pygeodesy.karney.Direct9Tuple.M12: 0.5\n    test 295 pygeodesy.karney.Direct9Tuple.M21: 0.5\n    test 296 pygeodesy.karney.Direct9Tuple.S12: 0.5\n    test 297 pygeodesy.karney.Direct9Tuple._validated: True\n    test 298 pygeodesy.karney.Direct9Tuple._validated: True\n    test 299 pygeodesy.karney: Inverse10Tuple(a12=0.5, s12=0.5, salp1=0.5, calp1=0.5, salp2=0.5, calp2=0.5, m12=0.5, M12=0.5, M21=0.5, S12=0.5)\n    test 300 pygeodesy.karney: Inverse10Tuple(a12=Azimuth, s12=Meter, salp1=_Pass, calp1=_Pass, salp2=_Pass, calp2=_Pass, m12=_Pass, M12=_Pass, M21=_Pass, S12=Meter2)\n    test 301 pygeodesy.karney.Inverse10Tuple.a12: 0.5\n    test 302 pygeodesy.karney.Inverse10Tuple.s12: 0.5\n    test 303 pygeodesy.karney.Inverse10Tuple.salp1: 0.5\n    test 304 pygeodesy.karney.Inverse10Tuple.calp1: 0.5\n    test 305 pygeodesy.karney.Inverse10Tuple.salp2: 0.5\n    test 306 pygeodesy.karney.Inverse10Tuple.calp2: 0.5\n    test 307 pygeodesy.karney.Inverse10Tuple.m12: 0.5\n    test 308 pygeodesy.karney.Inverse10Tuple.M12: 0.5\n    test 309 pygeodesy.karney.Inverse10Tuple.M21: 0.5\n    test 310 pygeodesy.karney.Inverse10Tuple.S12: 0.5\n    test 311 pygeodesy.karney.Inverse10Tuple._validated: True\n    test 312 pygeodesy.karney.Inverse10Tuple._validated: True\n    test 313 pygeodesy.karney: Rhumb8Tuple(lat1=0.5, lon1=0.5, lat2=0.5, lon2=0.5, azi12=0.5, s12=0.5, S12=0.5, a12=0.5)\n    test 314 pygeodesy.karney: Rhumb8Tuple(lat1=Lat, lon1=Lon, lat2=Lat, lon2=Lon, azi12=Azimuth, s12=Meter, S12=Meter2, a12=Degrees)\n    test 315 pygeodesy.karney.Rhumb8Tuple.lat1: 0.5\n    test 316 pygeodesy.karney.Rhumb8Tuple.lon1: 0.5\n    test 317 pygeodesy.karney.Rhumb8Tuple.lat2: 0.5\n    test 318 pygeodesy.karney.Rhumb8Tuple.lon2: 0.5\n    test 319 pygeodesy.karney.Rhumb8Tuple.azi12: 0.5\n    test 320 pygeodesy.karney.Rhumb8Tuple.s12: 0.5\n    test 321 pygeodesy.karney.Rhumb8Tuple.S12: 0.5\n    test 322 pygeodesy.karney.Rhumb8Tuple.a12: 0.5\n    test 323 pygeodesy.karney.Rhumb8Tuple._validated: True\n    test 324 pygeodesy.karney.Rhumb8Tuple._validated: True\n# lazily imported pygeodesy.ktm by bases.py line 199\n# lazily imported pygeodesy.lcc by bases.py line 199\n# lazily imported pygeodesy.ltp by bases.py line 199\n    test 325 pygeodesy.ltpTuples: Aer4Tuple(azimuth=0.5, elevation=0.5, slantrange=0.5, ltp=0.5)\n    test 326 pygeodesy.ltpTuples: Aer4Tuple(azimuth=Meter, elevation=Meter, slantrange=Meter, ltp=_Pass)\n    test 327 pygeodesy.ltpTuples.Aer4Tuple.azimuth: 0.5\n    test 328 pygeodesy.ltpTuples.Aer4Tuple.elevation: 0.5\n    test 329 pygeodesy.ltpTuples.Aer4Tuple.slantrange: 0.5\n    test 330 pygeodesy.ltpTuples.Aer4Tuple.ltp: 0.5\n    test 331 pygeodesy.ltpTuples.Aer4Tuple._validated: True\n    test 332 pygeodesy.ltpTuples.Aer4Tuple._validated: True\n    test 333 pygeodesy.ltpTuples: Attitude4Tuple(alt=0.5, tilt=0.5, yaw=0.5, roll=0.5)\n    test 334 pygeodesy.ltpTuples: Attitude4Tuple(alt=Meter, tilt=Degrees, yaw=Bearing, roll=Degrees)\n    test 335 pygeodesy.ltpTuples.Attitude4Tuple.alt: 0.5\n    test 336 pygeodesy.ltpTuples.Attitude4Tuple.tilt: 0.5\n    test 337 pygeodesy.ltpTuples.Attitude4Tuple.yaw: 0.5\n    test 338 pygeodesy.ltpTuples.Attitude4Tuple.roll: 0.5\n    test 339 pygeodesy.ltpTuples.Attitude4Tuple._validated: True\n    test 340 pygeodesy.ltpTuples.Attitude4Tuple._validated: True\n    test 341 pygeodesy.ltpTuples: ChLV9Tuple(Y=0.5, X=0.5, h_=0.5, lat=0.5, lon=0.5, height=0.5, ltp=0.5, ecef=0.5, M=0.5)\n    test 342 pygeodesy.ltpTuples: ChLV9Tuple(Y=Meter, X=Meter, h_=Meter, lat=Lat, lon=Lon, height=Height, ltp=_Pass, ecef=_Pass, M=_Pass)\n    test 343 pygeodesy.ltpTuples.ChLV9Tuple.Y: 0.5\n    test 344 pygeodesy.ltpTuples.ChLV9Tuple.X: 0.5\n    test 345 pygeodesy.ltpTuples.ChLV9Tuple.h_: 0.5\n    test 346 pygeodesy.ltpTuples.ChLV9Tuple.lat: 0.5\n    test 347 pygeodesy.ltpTuples.ChLV9Tuple.lon: 0.5\n    test 348 pygeodesy.ltpTuples.ChLV9Tuple.height: 0.5\n    test 349 pygeodesy.ltpTuples.ChLV9Tuple.ltp: 0.5\n    test 350 pygeodesy.ltpTuples.ChLV9Tuple.ecef: 0.5\n    test 351 pygeodesy.ltpTuples.ChLV9Tuple.M: 0.5\n    test 352 pygeodesy.ltpTuples.ChLV9Tuple._validated: True\n    test 353 pygeodesy.ltpTuples.ChLV9Tuple._validated: True\n    test 354 pygeodesy.ltpTuples: ChLVEN2Tuple(E_LV95=0.5, N_LV95=0.5)\n    test 355 pygeodesy.ltpTuples: ChLVEN2Tuple(E_LV95=Meter, N_LV95=Meter)\n    test 356 pygeodesy.ltpTuples.ChLVEN2Tuple.E_LV95: 0.5\n    test 357 pygeodesy.ltpTuples.ChLVEN2Tuple.N_LV95: 0.5\n    test 358 pygeodesy.ltpTuples.ChLVEN2Tuple._validated: True\n    test 359 pygeodesy.ltpTuples.ChLVEN2Tuple._validated: True\n    test 360 pygeodesy.ltpTuples: ChLVYX2Tuple(Y=0.5, X=0.5)\n    test 361 pygeodesy.ltpTuples: ChLVYX2Tuple(Y=Meter, X=Meter)\n    test 362 pygeodesy.ltpTuples.ChLVYX2Tuple.Y: 0.5\n    test 363 pygeodesy.ltpTuples.ChLVYX2Tuple.X: 0.5\n    test 364 pygeodesy.ltpTuples.ChLVYX2Tuple._validated: True\n    test 365 pygeodesy.ltpTuples.ChLVYX2Tuple._validated: True\n    test 366 pygeodesy.ltpTuples: ChLVyx2Tuple(y_LV03=0.5, x_LV03=0.5)\n    test 367 pygeodesy.ltpTuples: ChLVyx2Tuple(y_LV03=Meter, x_LV03=Meter)\n    test 368 pygeodesy.ltpTuples.ChLVyx2Tuple.y_LV03: 0.5\n    test 369 pygeodesy.ltpTuples.ChLVyx2Tuple.x_LV03: 0.5\n    test 370 pygeodesy.ltpTuples.ChLVyx2Tuple._validated: True\n    test 371 pygeodesy.ltpTuples.ChLVyx2Tuple._validated: True\n    test 372 pygeodesy.ltpTuples: Enu4Tuple(east=0.5, north=0.5, up=0.5, ltp=0.5)\n    test 373 pygeodesy.ltpTuples: Enu4Tuple(east=Meter, north=Meter, up=Meter, ltp=_Pass)\n    test 374 pygeodesy.ltpTuples.Enu4Tuple.east: 0.5\n    test 375 pygeodesy.ltpTuples.Enu4Tuple.north: 0.5\n    test 376 pygeodesy.ltpTuples.Enu4Tuple.up: 0.5\n    test 377 pygeodesy.ltpTuples.Enu4Tuple.ltp: 0.5\n    test 378 pygeodesy.ltpTuples.Enu4Tuple._validated: True\n    test 379 pygeodesy.ltpTuples.Enu4Tuple._validated: True\n    test 380 pygeodesy.ltpTuples: Footprint5Tuple(center=0.5, upperleft=0.5, upperight=0.5, loweright=0.5, lowerleft=0.5)\n    test 381 pygeodesy.ltpTuples: Footprint5Tuple(center=_Pass, upperleft=_Pass, upperight=_Pass, loweright=_Pass, lowerleft=_Pass)\n    test 382 pygeodesy.ltpTuples.Footprint5Tuple.center: 0.5\n    test 383 pygeodesy.ltpTuples.Footprint5Tuple.upperleft: 0.5\n    test 384 pygeodesy.ltpTuples.Footprint5Tuple.upperight: 0.5\n    test 385 pygeodesy.ltpTuples.Footprint5Tuple.loweright: 0.5\n    test 386 pygeodesy.ltpTuples.Footprint5Tuple.lowerleft: 0.5\n    test 387 pygeodesy.ltpTuples.Footprint5Tuple._validated: True\n    test 388 pygeodesy.ltpTuples.Footprint5Tuple._validated: True\n    test 389 pygeodesy.ltpTuples: Local9Tuple(x=0.5, y=0.5, z=0.5, lat=0.5, lon=0.5, height=0.5, ltp=0.5, ecef=0.5, M=0.5)\n    test 390 pygeodesy.ltpTuples: Local9Tuple(x=Meter, y=Meter, z=Meter, lat=Lat, lon=Lon, height=Height, ltp=_Pass, ecef=_Pass, M=_Pass)\n    test 391 pygeodesy.ltpTuples.Local9Tuple.x: 0.5\n    test 392 pygeodesy.ltpTuples.Local9Tuple.y: 0.5\n    test 393 pygeodesy.ltpTuples.Local9Tuple.z: 0.5\n    test 394 pygeodesy.ltpTuples.Local9Tuple.lat: 0.5\n    test 395 pygeodesy.ltpTuples.Local9Tuple.lon: 0.5\n    test 396 pygeodesy.ltpTuples.Local9Tuple.height: 0.5\n    test 397 pygeodesy.ltpTuples.Local9Tuple.ltp: 0.5\n    test 398 pygeodesy.ltpTuples.Local9Tuple.ecef: 0.5\n    test 399 pygeodesy.ltpTuples.Local9Tuple.M: 0.5\n    test 400 pygeodesy.ltpTuples.Local9Tuple._validated: True\n    test 401 pygeodesy.ltpTuples.Local9Tuple._validated: True\n    test 402 pygeodesy.ltpTuples: Ned4Tuple(north=0.5, east=0.5, down=0.5, ltp=0.5)\n    test 403 pygeodesy.ltpTuples: Ned4Tuple(north=Meter, east=Meter, down=Meter, ltp=_Pass)\n    test 404 pygeodesy.ltpTuples.Ned4Tuple.north: 0.5\n    test 405 pygeodesy.ltpTuples.Ned4Tuple.east: 0.5\n    test 406 pygeodesy.ltpTuples.Ned4Tuple.down: 0.5\n    test 407 pygeodesy.ltpTuples.Ned4Tuple.ltp: 0.5\n    test 408 pygeodesy.ltpTuples.Ned4Tuple._validated: True\n    test 409 pygeodesy.ltpTuples.Ned4Tuple._validated: True\n    test 410 pygeodesy.ltpTuples: Uvw3Tuple(u=0.5, v=0.5, w=0.5)\n    test 411 pygeodesy.ltpTuples: Uvw3Tuple(u=Meter, v=Meter, w=Meter)\n    test 412 pygeodesy.ltpTuples.Uvw3Tuple.u: 0.5\n    test 413 pygeodesy.ltpTuples.Uvw3Tuple.v: 0.5\n    test 414 pygeodesy.ltpTuples.Uvw3Tuple.w: 0.5\n    test 415 pygeodesy.ltpTuples.Uvw3Tuple._validated: True\n    test 416 pygeodesy.ltpTuples.Uvw3Tuple._validated: True\n    test 417 pygeodesy.ltpTuples: Xyz4Tuple(x=0.5, y=0.5, z=0.5, ltp=0.5)\n    test 418 pygeodesy.ltpTuples: Xyz4Tuple(x=Meter, y=Meter, z=Meter, ltp=_Pass)\n    test 419 pygeodesy.ltpTuples.Xyz4Tuple.x: 0.5\n    test 420 pygeodesy.ltpTuples.Xyz4Tuple.y: 0.5\n    test 421 pygeodesy.ltpTuples.Xyz4Tuple.z: 0.5\n    test 422 pygeodesy.ltpTuples.Xyz4Tuple.ltp: 0.5\n    test 423 pygeodesy.ltpTuples.Xyz4Tuple._validated: True\n    test 424 pygeodesy.ltpTuples.Xyz4Tuple._validated: True\n# lazily imported pygeodesy.mgrs by bases.py line 199\n    test 425 pygeodesy.mgrs: Mgrs4Tuple(zone='0.5', EN='0.5', easting=0.5, northing=0.5)\n    test 426 pygeodesy.mgrs: Mgrs4Tuple(zone=Str, EN=Str, easting=Easting, northing=Northing)\n    test 427 pygeodesy.mgrs.Mgrs4Tuple.zone: 0.5\n    test 428 pygeodesy.mgrs.Mgrs4Tuple.EN: 0.5\n    test 429 pygeodesy.mgrs.Mgrs4Tuple.easting: 0.5\n    test 430 pygeodesy.mgrs.Mgrs4Tuple.northing: 0.5\n    test 431 pygeodesy.mgrs.Mgrs4Tuple._validated: True\n    test 432 pygeodesy.mgrs.Mgrs4Tuple._validated: True\n    test 433 pygeodesy.mgrs: Mgrs6Tuple(zone='0.5', EN='0.5', easting=0.5, northing=0.5, band='0.5', datum=0.5)\n    test 434 pygeodesy.mgrs: Mgrs6Tuple(zone=Str, EN=Str, easting=Easting, northing=Northing, band=Str, datum=_Pass)\n    test 435 pygeodesy.mgrs.Mgrs6Tuple.zone: 0.5\n    test 436 pygeodesy.mgrs.Mgrs6Tuple.EN: 0.5\n    test 437 pygeodesy.mgrs.Mgrs6Tuple.easting: 0.5\n    test 438 pygeodesy.mgrs.Mgrs6Tuple.northing: 0.5\n    test 439 pygeodesy.mgrs.Mgrs6Tuple.band: 0.5\n    test 440 pygeodesy.mgrs.Mgrs6Tuple.datum: 0.5\n    test 441 pygeodesy.mgrs.Mgrs6Tuple._validated: True\n    test 442 pygeodesy.mgrs.Mgrs6Tuple._validated: True\n    test 443 pygeodesy.namedTuples: Bearing2Tuple(initial=0.5, final=0.5)\n    test 444 pygeodesy.namedTuples: Bearing2Tuple(initial=Bearing, final=Bearing)\n    test 445 pygeodesy.namedTuples.Bearing2Tuple.initial: 0.5\n    test 446 pygeodesy.namedTuples.Bearing2Tuple.final: 0.5\n    test 447 pygeodesy.namedTuples.Bearing2Tuple._validated: True\n    test 448 pygeodesy.namedTuples.Bearing2Tuple._validated: True\n    test 449 pygeodesy.namedTuples: Bounds2Tuple(latlonSW=0.5, latlonNE=0.5)\n    test 450 pygeodesy.namedTuples: Bounds2Tuple(latlonSW=_Pass, latlonNE=_Pass)\n    test 451 pygeodesy.namedTuples.Bounds2Tuple.latlonSW: 0.5\n    test 452 pygeodesy.namedTuples.Bounds2Tuple.latlonNE: 0.5\n    test 453 pygeodesy.namedTuples.Bounds2Tuple._validated: True\n    test 454 pygeodesy.namedTuples.Bounds2Tuple._validated: True\n    test 455 pygeodesy.namedTuples: Bounds4Tuple(latS=0.5, lonW=0.5, latN=0.5, lonE=0.5)\n    test 456 pygeodesy.namedTuples: Bounds4Tuple(latS=Lat, lonW=Lon, latN=Lat, lonE=Lon)\n    test 457 pygeodesy.namedTuples.Bounds4Tuple.latS: 0.5\n    test 458 pygeodesy.namedTuples.Bounds4Tuple.lonW: 0.5\n    test 459 pygeodesy.namedTuples.Bounds4Tuple.latN: 0.5\n    test 460 pygeodesy.namedTuples.Bounds4Tuple.lonE: 0.5\n    test 461 pygeodesy.namedTuples.Bounds4Tuple._validated: True\n    test 462 pygeodesy.namedTuples.Bounds4Tuple._validated: True\n    test 463 pygeodesy.namedTuples: Circle4Tuple(radius=0.5, height=0.5, lat=0.5, beta=0.5)\n    test 464 pygeodesy.namedTuples: Circle4Tuple(radius=Radius, height=Height, lat=Lat, beta=Lat)\n    test 465 pygeodesy.namedTuples.Circle4Tuple.radius: 0.5\n    test 466 pygeodesy.namedTuples.Circle4Tuple.height: 0.5\n    test 467 pygeodesy.namedTuples.Circle4Tuple.lat: 0.5\n    test 468 pygeodesy.namedTuples.Circle4Tuple.beta: 0.5\n    test 469 pygeodesy.namedTuples.Circle4Tuple._validated: True\n    test 470 pygeodesy.namedTuples.Circle4Tuple._validated: True\n    test 471 pygeodesy.namedTuples: Destination2Tuple(destination=0.5, final=0.5)\n    test 472 pygeodesy.namedTuples: Destination2Tuple(destination=_Pass, final=Bearing)\n    test 473 pygeodesy.namedTuples.Destination2Tuple.destination: 0.5\n    test 474 pygeodesy.namedTuples.Destination2Tuple.final: 0.5\n    test 475 pygeodesy.namedTuples.Destination2Tuple._validated: True\n    test 476 pygeodesy.namedTuples.Destination2Tuple._validated: True\n    test 477 pygeodesy.namedTuples: Destination3Tuple(lat=0.5, lon=0.5, final=0.5)\n    test 478 pygeodesy.namedTuples: Destination3Tuple(lat=Lat, lon=Lon, final=Bearing)\n    test 479 pygeodesy.namedTuples.Destination3Tuple.lat: 0.5\n    test 480 pygeodesy.namedTuples.Destination3Tuple.lon: 0.5\n    test 481 pygeodesy.namedTuples.Destination3Tuple.final: 0.5\n    test 482 pygeodesy.namedTuples.Destination3Tuple._validated: True\n    test 483 pygeodesy.namedTuples.Destination3Tuple._validated: True\n    test 484 pygeodesy.namedTuples: Distance2Tuple(distance=0.5, initial=0.5)\n    test 485 pygeodesy.namedTuples: Distance2Tuple(distance=Meter, initial=Bearing)\n    test 486 pygeodesy.namedTuples.Distance2Tuple.distance: 0.5\n    test 487 pygeodesy.namedTuples.Distance2Tuple.initial: 0.5\n    test 488 pygeodesy.namedTuples.Distance2Tuple._validated: True\n    test 489 pygeodesy.namedTuples.Distance2Tuple._validated: True\n    test 490 pygeodesy.namedTuples: Distance3Tuple(distance=0.5, initial=0.5, final=0.5)\n    test 491 pygeodesy.namedTuples: Distance3Tuple(distance=Meter, initial=Bearing, final=Bearing)\n    test 492 pygeodesy.namedTuples.Distance3Tuple.distance: 0.5\n    test 493 pygeodesy.namedTuples.Distance3Tuple.initial: 0.5\n    test 494 pygeodesy.namedTuples.Distance3Tuple.final: 0.5\n    test 495 pygeodesy.namedTuples.Distance3Tuple._validated: True\n    test 496 pygeodesy.namedTuples.Distance3Tuple._validated: True\n    test 497 pygeodesy.namedTuples: Distance4Tuple(distance2=0.5, delta_lat=0.5, delta_lon=0.5, unroll_lon2=0.5)\n    test 498 pygeodesy.namedTuples: Distance4Tuple(distance2=Degrees2, delta_lat=Degrees, delta_lon=Degrees, unroll_lon2=Degrees)\n    test 499 pygeodesy.namedTuples.Distance4Tuple.distance2: 0.5\n    test 500 pygeodesy.namedTuples.Distance4Tuple.delta_lat: 0.5\n    test 501 pygeodesy.namedTuples.Distance4Tuple.delta_lon: 0.5\n    test 502 pygeodesy.namedTuples.Distance4Tuple.unroll_lon2: 0.5\n    test 503 pygeodesy.namedTuples.Distance4Tuple._validated: True\n    test 504 pygeodesy.namedTuples.Distance4Tuple._validated: True\n    test 505 pygeodesy.namedTuples: EasNor2Tuple(easting=0.5, northing=0.5)\n    test 506 pygeodesy.namedTuples: EasNor2Tuple(easting=Easting, northing=Northing)\n    test 507 pygeodesy.namedTuples.EasNor2Tuple.easting: 0.5\n    test 508 pygeodesy.namedTuples.EasNor2Tuple.northing: 0.5\n    test 509 pygeodesy.namedTuples.EasNor2Tuple._validated: True\n    test 510 pygeodesy.namedTuples.EasNor2Tuple._validated: True\n    test 511 pygeodesy.namedTuples: EasNor3Tuple(easting=0.5, northing=0.5, height=0.5)\n    test 512 pygeodesy.namedTuples: EasNor3Tuple(easting=Easting, northing=Northing, height=Height)\n    test 513 pygeodesy.namedTuples.EasNor3Tuple.easting: 0.5\n    test 514 pygeodesy.namedTuples.EasNor3Tuple.northing: 0.5\n    test 515 pygeodesy.namedTuples.EasNor3Tuple.height: 0.5\n    test 516 pygeodesy.namedTuples.EasNor3Tuple._validated: True\n    test 517 pygeodesy.namedTuples.EasNor3Tuple._validated: True\n    test 518 pygeodesy.namedTuples: Ellipse5Tuple(a=0.5, b=0.5, height=0.5, lat=0.5, beta=0.5)\n    test 519 pygeodesy.namedTuples: Ellipse5Tuple(a=Radius, b=Radius, height=Height, lat=Lat, beta=Lat)\n    test 520 pygeodesy.namedTuples.Ellipse5Tuple.a: 0.5\n    test 521 pygeodesy.namedTuples.Ellipse5Tuple.b: 0.5\n    test 522 pygeodesy.namedTuples.Ellipse5Tuple.height: 0.5\n    test 523 pygeodesy.namedTuples.Ellipse5Tuple.lat: 0.5\n    test 524 pygeodesy.namedTuples.Ellipse5Tuple.beta: 0.5\n    test 525 pygeodesy.namedTuples.Ellipse5Tuple._validated: True\n    test 526 pygeodesy.namedTuples.Ellipse5Tuple._validated: True\n    test 527 pygeodesy.namedTuples: Forward4Tuple(easting=0.5, northing=0.5, gamma=0.5, scale=0.5)\n    test 528 pygeodesy.namedTuples: Forward4Tuple(easting=Easting, northing=Northing, gamma=Degrees, scale=Scalar)\n    test 529 pygeodesy.namedTuples.Forward4Tuple.easting: 0.5\n    test 530 pygeodesy.namedTuples.Forward4Tuple.northing: 0.5\n    test 531 pygeodesy.namedTuples.Forward4Tuple.gamma: 0.5\n    test 532 pygeodesy.namedTuples.Forward4Tuple.scale: 0.5\n    test 533 pygeodesy.namedTuples.Forward4Tuple._validated: True\n    test 534 pygeodesy.namedTuples.Forward4Tuple._validated: True\n    test 535 pygeodesy.namedTuples: Intersection3Tuple(point=0.5, outside1=0, outside2=0)\n    test 536 pygeodesy.namedTuples: Intersection3Tuple(point=_Pass, outside1=Int, outside2=Int)\n    test 537 pygeodesy.namedTuples.Intersection3Tuple.point: 0.5\n    test 538 pygeodesy.namedTuples.Intersection3Tuple.outside1: 0.5\n    test 539 pygeodesy.namedTuples.Intersection3Tuple.outside2: 0.5\n    test 540 pygeodesy.namedTuples.Intersection3Tuple._validated: True\n    test 541 pygeodesy.namedTuples.Intersection3Tuple._validated: True\n    test 542 pygeodesy.namedTuples: LatLon2Tuple(lat=0.5, lon=0.5)\n    test 543 pygeodesy.namedTuples: LatLon2Tuple(lat=Lat, lon=Lon)\n    test 544 pygeodesy.namedTuples.LatLon2Tuple.lat: 0.5\n    test 545 pygeodesy.namedTuples.LatLon2Tuple.lon: 0.5\n    test 546 pygeodesy.namedTuples.LatLon2Tuple._validated: True\n    test 547 pygeodesy.namedTuples.LatLon2Tuple._validated: True\n    test 548 pygeodesy.namedTuples: LatLon3Tuple(lat=0.5, lon=0.5, height=0.5)\n    test 549 pygeodesy.namedTuples: LatLon3Tuple(lat=Lat, lon=Lon, height=Height)\n    test 550 pygeodesy.namedTuples.LatLon3Tuple.lat: 0.5\n    test 551 pygeodesy.namedTuples.LatLon3Tuple.lon: 0.5\n    test 552 pygeodesy.namedTuples.LatLon3Tuple.height: 0.5\n    test 553 pygeodesy.namedTuples.LatLon3Tuple._validated: True\n    test 554 pygeodesy.namedTuples.LatLon3Tuple._validated: True\n    test 555 pygeodesy.namedTuples: LatLon4Tuple(lat=0.5, lon=0.5, height=0.5, datum=0.5)\n    test 556 pygeodesy.namedTuples: LatLon4Tuple(lat=Lat, lon=Lon, height=Height, datum=_Pass)\n    test 557 pygeodesy.namedTuples.LatLon4Tuple.lat: 0.5\n    test 558 pygeodesy.namedTuples.LatLon4Tuple.lon: 0.5\n    test 559 pygeodesy.namedTuples.LatLon4Tuple.height: 0.5\n    test 560 pygeodesy.namedTuples.LatLon4Tuple.datum: 0.5\n    test 561 pygeodesy.namedTuples.LatLon4Tuple._validated: True\n    test 562 pygeodesy.namedTuples.LatLon4Tuple._validated: True\n    test 563 pygeodesy.namedTuples: LatLonDatum3Tuple(lat=0.5, lon=0.5, datum=0.5)\n    test 564 pygeodesy.namedTuples: LatLonDatum3Tuple(lat=Lat, lon=Lon, datum=_Pass)\n    test 565 pygeodesy.namedTuples.LatLonDatum3Tuple.lat: 0.5\n    test 566 pygeodesy.namedTuples.LatLonDatum3Tuple.lon: 0.5\n    test 567 pygeodesy.namedTuples.LatLonDatum3Tuple.datum: 0.5\n    test 568 pygeodesy.namedTuples.LatLonDatum3Tuple._validated: True\n    test 569 pygeodesy.namedTuples.LatLonDatum3Tuple._validated: True\n    test 570 pygeodesy.namedTuples: LatLonDatum5Tuple(lat=0.5, lon=0.5, datum=0.5, gamma=0.5, scale=0.5)\n    test 571 pygeodesy.namedTuples: LatLonDatum5Tuple(lat=Lat, lon=Lon, datum=_Pass, gamma=Degrees, scale=Scalar)\n    test 572 pygeodesy.namedTuples.LatLonDatum5Tuple.lat: 0.5\n    test 573 pygeodesy.namedTuples.LatLonDatum5Tuple.lon: 0.5\n    test 574 pygeodesy.namedTuples.LatLonDatum5Tuple.datum: 0.5\n    test 575 pygeodesy.namedTuples.LatLonDatum5Tuple.gamma: 0.5\n    test 576 pygeodesy.namedTuples.LatLonDatum5Tuple.scale: 0.5\n    test 577 pygeodesy.namedTuples.LatLonDatum5Tuple._validated: True\n    test 578 pygeodesy.namedTuples.LatLonDatum5Tuple._validated: True\n    test 579 pygeodesy.namedTuples: LatLonPrec3Tuple(lat=0.5, lon=0.5, precision=0)\n    test 580 pygeodesy.namedTuples: LatLonPrec3Tuple(lat=Lat, lon=Lon, precision=Precision_)\n    test 581 pygeodesy.namedTuples.LatLonPrec3Tuple.lat: 0.5\n    test 582 pygeodesy.namedTuples.LatLonPrec3Tuple.lon: 0.5\n    test 583 pygeodesy.namedTuples.LatLonPrec3Tuple.precision: 0.5\n    test 584 pygeodesy.namedTuples.LatLonPrec3Tuple._validated: True\n    test 585 pygeodesy.namedTuples.LatLonPrec3Tuple._validated: True\n    test 586 pygeodesy.namedTuples: LatLonPrec5Tuple(lat=0.5, lon=0.5, precision=0, height=0.5, radius=0.5)\n    test 587 pygeodesy.namedTuples: LatLonPrec5Tuple(lat=Lat, lon=Lon, precision=Precision_, height=Height, radius=Radius)\n    test 588 pygeodesy.namedTuples.LatLonPrec5Tuple.lat: 0.5\n    test 589 pygeodesy.namedTuples.LatLonPrec5Tuple.lon: 0.5\n    test 590 pygeodesy.namedTuples.LatLonPrec5Tuple.precision: 0.5\n    test 591 pygeodesy.namedTuples.LatLonPrec5Tuple.height: 0.5\n    test 592 pygeodesy.namedTuples.LatLonPrec5Tuple.radius: 0.5\n    test 593 pygeodesy.namedTuples.LatLonPrec5Tuple._validated: True\n    test 594 pygeodesy.namedTuples.LatLonPrec5Tuple._validated: True\n    test 595 pygeodesy.namedTuples: NearestOn2Tuple(closest=0.5, fraction=0.5)\n    test 596 pygeodesy.namedTuples: NearestOn2Tuple(closest=_Pass, fraction=_Pass)\n    test 597 pygeodesy.namedTuples.NearestOn2Tuple.closest: 0.5\n    test 598 pygeodesy.namedTuples.NearestOn2Tuple.fraction: 0.5\n    test 599 pygeodesy.namedTuples.NearestOn2Tuple._validated: True\n    test 600 pygeodesy.namedTuples.NearestOn2Tuple._validated: True\n    test 601 pygeodesy.namedTuples: NearestOn3Tuple(closest=0.5, distance=0.5, angle=0.5)\n    test 602 pygeodesy.namedTuples: NearestOn3Tuple(closest=_Pass, distance=Meter, angle=Degrees)\n    test 603 pygeodesy.namedTuples.NearestOn3Tuple.closest: 0.5\n    test 604 pygeodesy.namedTuples.NearestOn3Tuple.distance: 0.5\n    test 605 pygeodesy.namedTuples.NearestOn3Tuple.angle: 0.5\n    test 606 pygeodesy.namedTuples.NearestOn3Tuple._validated: True\n    test 607 pygeodesy.namedTuples.NearestOn3Tuple._validated: True\n    test 608 pygeodesy.namedTuples: NearestOn5Tuple(lat=0.5, lon=0.5, distance=0.5, angle=0.5, height=0.5)\n    test 609 pygeodesy.namedTuples: NearestOn5Tuple(lat=Lat, lon=Lon, distance=Degrees, angle=Degrees, height=Meter)\n    test 610 pygeodesy.namedTuples.NearestOn5Tuple.lat: 0.5\n    test 611 pygeodesy.namedTuples.NearestOn5Tuple.lon: 0.5\n    test 612 pygeodesy.namedTuples.NearestOn5Tuple.distance: 0.5\n    test 613 pygeodesy.namedTuples.NearestOn5Tuple.angle: 0.5\n    test 614 pygeodesy.namedTuples.NearestOn5Tuple.height: 0.5\n    test 615 pygeodesy.namedTuples.NearestOn5Tuple._validated: True\n    test 616 pygeodesy.namedTuples.NearestOn5Tuple._validated: True\n    test 617 pygeodesy.namedTuples: NearestOn6Tuple(closest=0.5, distance=0.5, fi=0.5, j=0, start=0.5, end=0.5)\n    test 618 pygeodesy.namedTuples: NearestOn6Tuple(closest=_Pass, distance=Meter, fi=FIx, j=Number_, start=_Pass, end=_Pass)\n    test 619 pygeodesy.namedTuples.NearestOn6Tuple.closest: 0.5\n    test 620 pygeodesy.namedTuples.NearestOn6Tuple.distance: 0.5\n    test 621 pygeodesy.namedTuples.NearestOn6Tuple.fi: 0.5\n    test 622 pygeodesy.namedTuples.NearestOn6Tuple.j: 0.5\n    test 623 pygeodesy.namedTuples.NearestOn6Tuple.start: 0.5\n    test 624 pygeodesy.namedTuples.NearestOn6Tuple.end: 0.5\n    test 625 pygeodesy.namedTuples.NearestOn6Tuple._validated: True\n    test 626 pygeodesy.namedTuples.NearestOn6Tuple._validated: True\n    test 627 pygeodesy.namedTuples: NearestOn8Tuple(closest=0.5, distance=0.5, fi=0.5, j=0, start=0.5, end=0.5, initial=0.5, final=0.5)\n    test 628 pygeodesy.namedTuples: NearestOn8Tuple(closest=_Pass, distance=Meter, fi=FIx, j=Number_, start=_Pass, end=_Pass, initial=Bearing, final=Bearing)\n    test 629 pygeodesy.namedTuples.NearestOn8Tuple.closest: 0.5\n    test 630 pygeodesy.namedTuples.NearestOn8Tuple.distance: 0.5\n    test 631 pygeodesy.namedTuples.NearestOn8Tuple.fi: 0.5\n    test 632 pygeodesy.namedTuples.NearestOn8Tuple.j: 0.5\n    test 633 pygeodesy.namedTuples.NearestOn8Tuple.start: 0.5\n    test 634 pygeodesy.namedTuples.NearestOn8Tuple.end: 0.5\n    test 635 pygeodesy.namedTuples.NearestOn8Tuple.initial: 0.5\n    test 636 pygeodesy.namedTuples.NearestOn8Tuple.final: 0.5\n    test 637 pygeodesy.namedTuples.NearestOn8Tuple._validated: True\n    test 638 pygeodesy.namedTuples.NearestOn8Tuple._validated: True\n    test 639 pygeodesy.namedTuples: PhiLam2Tuple(phi=0.5, lam=0.5)\n    test 640 pygeodesy.namedTuples: PhiLam2Tuple(phi=Phi, lam=Lam)\n    test 641 pygeodesy.namedTuples.PhiLam2Tuple.phi: 0.5\n    test 642 pygeodesy.namedTuples.PhiLam2Tuple.lam: 0.5\n    test 643 pygeodesy.namedTuples.PhiLam2Tuple._validated: True\n    test 644 pygeodesy.namedTuples.PhiLam2Tuple._validated: True\n    test 645 pygeodesy.namedTuples: PhiLam3Tuple(phi=0.5, lam=0.5, height=0.5)\n    test 646 pygeodesy.namedTuples: PhiLam3Tuple(phi=Phi, lam=Lam, height=Height)\n    test 647 pygeodesy.namedTuples.PhiLam3Tuple.phi: 0.5\n    test 648 pygeodesy.namedTuples.PhiLam3Tuple.lam: 0.5\n    test 649 pygeodesy.namedTuples.PhiLam3Tuple.height: 0.5\n    test 650 pygeodesy.namedTuples.PhiLam3Tuple._validated: True\n    test 651 pygeodesy.namedTuples.PhiLam3Tuple._validated: True\n    test 652 pygeodesy.namedTuples: PhiLam4Tuple(phi=0.5, lam=0.5, height=0.5, datum=0.5)\n    test 653 pygeodesy.namedTuples: PhiLam4Tuple(phi=Phi, lam=Lam, height=Height, datum=_Pass)\n    test 654 pygeodesy.namedTuples.PhiLam4Tuple.phi: 0.5\n    test 655 pygeodesy.namedTuples.PhiLam4Tuple.lam: 0.5\n    test 656 pygeodesy.namedTuples.PhiLam4Tuple.height: 0.5\n    test 657 pygeodesy.namedTuples.PhiLam4Tuple.datum: 0.5\n    test 658 pygeodesy.namedTuples.PhiLam4Tuple._validated: True\n    test 659 pygeodesy.namedTuples.PhiLam4Tuple._validated: True\n    test 660 pygeodesy.namedTuples: Point3Tuple(x=0.5, y=0.5, ll=0.5)\n    test 661 pygeodesy.namedTuples: Point3Tuple(x=Meter, y=Meter, ll=_Pass)\n    test 662 pygeodesy.namedTuples.Point3Tuple.x: 0.5\n    test 663 pygeodesy.namedTuples.Point3Tuple.y: 0.5\n    test 664 pygeodesy.namedTuples.Point3Tuple.ll: 0.5\n    test 665 pygeodesy.namedTuples.Point3Tuple._validated: True\n    test 666 pygeodesy.namedTuples.Point3Tuple._validated: True\n    test 667 pygeodesy.namedTuples: Points2Tuple(number=0, points=0.5)\n    test 668 pygeodesy.namedTuples: Points2Tuple(number=Number_, points=_Pass)\n    test 669 pygeodesy.namedTuples.Points2Tuple.number: 0.5\n    test 670 pygeodesy.namedTuples.Points2Tuple.points: 0.5\n    test 671 pygeodesy.namedTuples.Points2Tuple._validated: True\n    test 672 pygeodesy.namedTuples.Points2Tuple._validated: True\n    test 673 pygeodesy.namedTuples: Reverse4Tuple(lat=0.5, lon=0.5, gamma=0.5, scale=0.5)\n    test 674 pygeodesy.namedTuples: Reverse4Tuple(lat=Lat, lon=Lon, gamma=Degrees, scale=Scalar)\n    test 675 pygeodesy.namedTuples.Reverse4Tuple.lat: 0.5\n    test 676 pygeodesy.namedTuples.Reverse4Tuple.lon: 0.5\n    test 677 pygeodesy.namedTuples.Reverse4Tuple.gamma: 0.5\n    test 678 pygeodesy.namedTuples.Reverse4Tuple.scale: 0.5\n    test 679 pygeodesy.namedTuples.Reverse4Tuple._validated: True\n    test 680 pygeodesy.namedTuples.Reverse4Tuple._validated: True\n    test 681 pygeodesy.namedTuples: Triangle7Tuple(A=0.5, a=0.5, B=0.5, b=0.5, C=0.5, c=0.5, area=0.5)\n    test 682 pygeodesy.namedTuples: Triangle7Tuple(A=Degrees, a=Meter, B=Degrees, b=Meter, C=Degrees, c=Meter, area=Meter2)\n    test 683 pygeodesy.namedTuples.Triangle7Tuple.A: 0.5\n    test 684 pygeodesy.namedTuples.Triangle7Tuple.a: 0.5\n    test 685 pygeodesy.namedTuples.Triangle7Tuple.B: 0.5\n    test 686 pygeodesy.namedTuples.Triangle7Tuple.b: 0.5\n    test 687 pygeodesy.namedTuples.Triangle7Tuple.C: 0.5\n    test 688 pygeodesy.namedTuples.Triangle7Tuple.c: 0.5\n    test 689 pygeodesy.namedTuples.Triangle7Tuple.area: 0.5\n    test 690 pygeodesy.namedTuples.Triangle7Tuple._validated: True\n    test 691 pygeodesy.namedTuples.Triangle7Tuple._validated: True\n    test 692 pygeodesy.namedTuples: Triangle8Tuple(A=0.5, a=0.5, B=0.5, b=0.5, C=0.5, c=0.5, D=0.5, E=0.5)\n    test 693 pygeodesy.namedTuples: Triangle8Tuple(A=Radians, a=Radians, B=Radians, b=Radians, C=Radians, c=Radians, D=Radians, E=Radians)\n    test 694 pygeodesy.namedTuples.Triangle8Tuple.A: 0.5\n    test 695 pygeodesy.namedTuples.Triangle8Tuple.a: 0.5\n    test 696 pygeodesy.namedTuples.Triangle8Tuple.B: 0.5\n    test 697 pygeodesy.namedTuples.Triangle8Tuple.b: 0.5\n    test 698 pygeodesy.namedTuples.Triangle8Tuple.C: 0.5\n    test 699 pygeodesy.namedTuples.Triangle8Tuple.c: 0.5\n    test 700 pygeodesy.namedTuples.Triangle8Tuple.D: 0.5\n    test 701 pygeodesy.namedTuples.Triangle8Tuple.E: 0.5\n    test 702 pygeodesy.namedTuples.Triangle8Tuple._validated: True\n    test 703 pygeodesy.namedTuples.Triangle8Tuple._validated: True\n    test 704 pygeodesy.namedTuples: Trilaterate5Tuple(min=0.5, minPoint=0.5, max=0.5, maxPoint=0.5, n=0)\n    test 705 pygeodesy.namedTuples: Trilaterate5Tuple(min=Meter, minPoint=_Pass, max=Meter, maxPoint=_Pass, n=Number_)\n    test 706 pygeodesy.namedTuples.Trilaterate5Tuple.min: 0.5\n    test 707 pygeodesy.namedTuples.Trilaterate5Tuple.minPoint: 0.5\n    test 708 pygeodesy.namedTuples.Trilaterate5Tuple.max: 0.5\n    test 709 pygeodesy.namedTuples.Trilaterate5Tuple.maxPoint: 0.5\n    test 710 pygeodesy.namedTuples.Trilaterate5Tuple.n: 0.5\n    test 711 pygeodesy.namedTuples.Trilaterate5Tuple._validated: True\n    test 712 pygeodesy.namedTuples.Trilaterate5Tuple._validated: True\n    test 713 pygeodesy.namedTuples: UtmUps2Tuple(zone=0, hemipole='0.5')\n    test 714 pygeodesy.namedTuples: UtmUps2Tuple(zone=Number_, hemipole=Str)\n    test 715 pygeodesy.namedTuples.UtmUps2Tuple.zone: 0.5\n    test 716 pygeodesy.namedTuples.UtmUps2Tuple.hemipole: 0.5\n    test 717 pygeodesy.namedTuples.UtmUps2Tuple._validated: True\n    test 718 pygeodesy.namedTuples.UtmUps2Tuple._validated: True\n    test 719 pygeodesy.namedTuples: UtmUps5Tuple(zone=0, hemipole='0.5', easting=0.5, northing=0.5, band='0.5')\n    test 720 pygeodesy.namedTuples: UtmUps5Tuple(zone=Number_, hemipole=Str, easting=Easting, northing=Northing, band=Band)\n    test 721 pygeodesy.namedTuples.UtmUps5Tuple.zone: 0.5\n    test 722 pygeodesy.namedTuples.UtmUps5Tuple.hemipole: 0.5\n    test 723 pygeodesy.namedTuples.UtmUps5Tuple.easting: 0.5\n    test 724 pygeodesy.namedTuples.UtmUps5Tuple.northing: 0.5\n    test 725 pygeodesy.namedTuples.UtmUps5Tuple.band: 0.5\n    test 726 pygeodesy.namedTuples.UtmUps5Tuple._validated: True\n    test 727 pygeodesy.namedTuples.UtmUps5Tuple._validated: True\n    test 728 pygeodesy.namedTuples: UtmUps8Tuple(zone=0, hemipole='0.5', easting=0.5, northing=0.5, band='0.5', datum=0.5, gamma=0.5, scale=0.5)\n    test 729 pygeodesy.namedTuples: UtmUps8Tuple(zone=Number_, hemipole=Str, easting=Easting, northing=Northing, band=Band, datum=_Pass, gamma=Degrees, scale=Scalar)\n    test 730 pygeodesy.namedTuples.UtmUps8Tuple.zone: 0.5\n    test 731 pygeodesy.namedTuples.UtmUps8Tuple.hemipole: 0.5\n    test 732 pygeodesy.namedTuples.UtmUps8Tuple.easting: 0.5\n    test 733 pygeodesy.namedTuples.UtmUps8Tuple.northing: 0.5\n    test 734 pygeodesy.namedTuples.UtmUps8Tuple.band: 0.5\n    test 735 pygeodesy.namedTuples.UtmUps8Tuple.datum: 0.5\n    test 736 pygeodesy.namedTuples.UtmUps8Tuple.gamma: 0.5\n    test 737 pygeodesy.namedTuples.UtmUps8Tuple.scale: 0.5\n    test 738 pygeodesy.namedTuples.UtmUps8Tuple._validated: True\n    test 739 pygeodesy.namedTuples.UtmUps8Tuple._validated: True\n    test 740 pygeodesy.namedTuples: UtmUpsLatLon5Tuple(zone=0, band='0.5', hemipole='0.5', lat=0.5, lon=0.5)\n    test 741 pygeodesy.namedTuples: UtmUpsLatLon5Tuple(zone=Number_, band=Band, hemipole=Str, lat=Lat, lon=Lon)\n    test 742 pygeodesy.namedTuples.UtmUpsLatLon5Tuple.zone: 0.5\n    test 743 pygeodesy.namedTuples.UtmUpsLatLon5Tuple.band: 0.5\n    test 744 pygeodesy.namedTuples.UtmUpsLatLon5Tuple.hemipole: 0.5\n    test 745 pygeodesy.namedTuples.UtmUpsLatLon5Tuple.lat: 0.5\n    test 746 pygeodesy.namedTuples.UtmUpsLatLon5Tuple.lon: 0.5\n    test 747 pygeodesy.namedTuples.UtmUpsLatLon5Tuple._validated: True\n    test 748 pygeodesy.namedTuples.UtmUpsLatLon5Tuple._validated: True\n    test 749 pygeodesy.namedTuples: Vector2Tuple(x=0.5, y=0.5)\n    test 750 pygeodesy.namedTuples: Vector2Tuple(x=Scalar, y=Scalar)\n    test 751 pygeodesy.namedTuples.Vector2Tuple.x: 0.5\n    test 752 pygeodesy.namedTuples.Vector2Tuple.y: 0.5\n    test 753 pygeodesy.namedTuples.Vector2Tuple._validated: True\n    test 754 pygeodesy.namedTuples.Vector2Tuple._validated: True\n    test 755 pygeodesy.namedTuples: Vector3Tuple(x=0.5, y=0.5, z=0.5)\n    test 756 pygeodesy.namedTuples: Vector3Tuple(x=Scalar, y=Scalar, z=Scalar)\n    test 757 pygeodesy.namedTuples.Vector3Tuple.x: 0.5\n    test 758 pygeodesy.namedTuples.Vector3Tuple.y: 0.5\n    test 759 pygeodesy.namedTuples.Vector3Tuple.z: 0.5\n    test 760 pygeodesy.namedTuples.Vector3Tuple._validated: True\n    test 761 pygeodesy.namedTuples.Vector3Tuple._validated: True\n    test 762 pygeodesy.namedTuples: Vector4Tuple(x=0.5, y=0.5, z=0.5, h=0.5)\n    test 763 pygeodesy.namedTuples: Vector4Tuple(x=Scalar, y=Scalar, z=Scalar, h=Height)\n    test 764 pygeodesy.namedTuples.Vector4Tuple.x: 0.5\n    test 765 pygeodesy.namedTuples.Vector4Tuple.y: 0.5\n    test 766 pygeodesy.namedTuples.Vector4Tuple.z: 0.5\n    test 767 pygeodesy.namedTuples.Vector4Tuple.h: 0.5\n    test 768 pygeodesy.namedTuples.Vector4Tuple._validated: True\n    test 769 pygeodesy.namedTuples.Vector4Tuple._validated: True\n# lazily imported pygeodesy.osgr by bases.py line 199\n    test 770 pygeodesy.points: Shape2Tuple(nrows=0, ncols=0)\n    test 771 pygeodesy.points: Shape2Tuple(nrows=Number_, ncols=Number_)\n    test 772 pygeodesy.points.Shape2Tuple.nrows: 0.5\n    test 773 pygeodesy.points.Shape2Tuple.ncols: 0.5\n    test 774 pygeodesy.points.Shape2Tuple._validated: True\n    test 775 pygeodesy.points.Shape2Tuple._validated: True\n# lazily imported pygeodesy.resections by bases.py line 199\n    test 776 pygeodesy.resections: Collins5Tuple(pointP=0.5, pointH=0.5, a=0.5, b=0.5, c=0.5)\n    test 777 pygeodesy.resections: Collins5Tuple(pointP=_Pass, pointH=_Pass, a=Distance, b=Distance, c=Distance)\n    test 778 pygeodesy.resections.Collins5Tuple.pointP: 0.5\n    test 779 pygeodesy.resections.Collins5Tuple.pointH: 0.5\n    test 780 pygeodesy.resections.Collins5Tuple.a: 0.5\n    test 781 pygeodesy.resections.Collins5Tuple.b: 0.5\n    test 782 pygeodesy.resections.Collins5Tuple.c: 0.5\n    test 783 pygeodesy.resections.Collins5Tuple._validated: True\n    test 784 pygeodesy.resections.Collins5Tuple._validated: True\n    test 785 pygeodesy.resections: Survey3Tuple(PA=0.5, PB=0.5, PC=0.5)\n    test 786 pygeodesy.resections: Survey3Tuple(PA=Distance, PB=Distance, PC=Distance)\n    test 787 pygeodesy.resections.Survey3Tuple.PA: 0.5\n    test 788 pygeodesy.resections.Survey3Tuple.PB: 0.5\n    test 789 pygeodesy.resections.Survey3Tuple.PC: 0.5\n    test 790 pygeodesy.resections.Survey3Tuple._validated: True\n    test 791 pygeodesy.resections.Survey3Tuple._validated: True\n    test 792 pygeodesy.resections: Tienstra7Tuple(pointP=0.5, A=0.5, B=0.5, C=0.5, a=0.5, b=0.5, c=0.5)\n    test 793 pygeodesy.resections: Tienstra7Tuple(pointP=_Pass, A=Degrees, B=Degrees, C=Degrees, a=Distance, b=Distance, c=Distance)\n    test 794 pygeodesy.resections.Tienstra7Tuple.pointP: 0.5\n    test 795 pygeodesy.resections.Tienstra7Tuple.A: 0.5\n    test 796 pygeodesy.resections.Tienstra7Tuple.B: 0.5\n    test 797 pygeodesy.resections.Tienstra7Tuple.C: 0.5\n    test 798 pygeodesy.resections.Tienstra7Tuple.a: 0.5\n    test 799 pygeodesy.resections.Tienstra7Tuple.b: 0.5\n    test 800 pygeodesy.resections.Tienstra7Tuple.c: 0.5\n    test 801 pygeodesy.resections.Tienstra7Tuple._validated: True\n    test 802 pygeodesy.resections.Tienstra7Tuple._validated: True\n    test 803 pygeodesy.resections: TriAngle5Tuple(radA=0.5, radB=0.5, radC=0.5, rIn=0.5, area=0.5)\n    test 804 pygeodesy.resections: TriAngle5Tuple(radA=Radians, radB=Radians, radC=Radians, rIn=Distance, area=_Pass)\n    test 805 pygeodesy.resections.TriAngle5Tuple.radA: 0.5\n    test 806 pygeodesy.resections.TriAngle5Tuple.radB: 0.5\n    test 807 pygeodesy.resections.TriAngle5Tuple.radC: 0.5\n    test 808 pygeodesy.resections.TriAngle5Tuple.rIn: 0.5\n    test 809 pygeodesy.resections.TriAngle5Tuple.area: 0.5\n    test 810 pygeodesy.resections.TriAngle5Tuple._validated: True\n    test 811 pygeodesy.resections.TriAngle5Tuple._validated: True\n    test 812 pygeodesy.resections: TriSide2Tuple(a=0.5, radA=0.5)\n    test 813 pygeodesy.resections: TriSide2Tuple(a=Distance, radA=Radians)\n    test 814 pygeodesy.resections.TriSide2Tuple.a: 0.5\n    test 815 pygeodesy.resections.TriSide2Tuple.radA: 0.5\n    test 816 pygeodesy.resections.TriSide2Tuple._validated: True\n    test 817 pygeodesy.resections.TriSide2Tuple._validated: True\n    test 818 pygeodesy.resections: TriSide4Tuple(a=0.5, b=0.5, radC=0.5, d=0.5)\n    test 819 pygeodesy.resections: TriSide4Tuple(a=Distance, b=Distance, radC=Radians, d=Distance)\n    test 820 pygeodesy.resections.TriSide4Tuple.a: 0.5\n    test 821 pygeodesy.resections.TriSide4Tuple.b: 0.5\n    test 822 pygeodesy.resections.TriSide4Tuple.radC: 0.5\n    test 823 pygeodesy.resections.TriSide4Tuple.d: 0.5\n    test 824 pygeodesy.resections.TriSide4Tuple._validated: True\n    test 825 pygeodesy.resections.TriSide4Tuple._validated: True\n# lazily imported pygeodesy.simplify by bases.py line 199\n# lazily imported pygeodesy.sphericalBase by bases.py line 199\n# lazily imported pygeodesy.sphericalNvector by bases.py line 199\n# lazily imported pygeodesy.sphericalTrigonometry by bases.py line 199\n# lazily imported pygeodesy.trf by bases.py line 199\n    test 826 pygeodesy.trf: TRFXform7Tuple(tx=0.5, ty=0.5, tz=0.5, s=0.5, sx=0.5, sy=0.5, sz=0.5)\n    test 827 pygeodesy.trf: TRFXform7Tuple(tx=Float, ty=Float, tz=Float, s=Float, sx=Float, sy=Float, sz=Float)\n    test 828 pygeodesy.trf.TRFXform7Tuple.tx: 0.5\n    test 829 pygeodesy.trf.TRFXform7Tuple.ty: 0.5\n    test 830 pygeodesy.trf.TRFXform7Tuple.tz: 0.5\n    test 831 pygeodesy.trf.TRFXform7Tuple.s: 0.5\n    test 832 pygeodesy.trf.TRFXform7Tuple.sx: 0.5\n    test 833 pygeodesy.trf.TRFXform7Tuple.sy: 0.5\n    test 834 pygeodesy.trf.TRFXform7Tuple.sz: 0.5\n    test 835 pygeodesy.trf.TRFXform7Tuple._validated: True\n    test 836 pygeodesy.trf.TRFXform7Tuple._validated: True\n# lazily imported pygeodesy.utmups by bases.py line 199\n# lazily imported pygeodesy.vector2d by bases.py line 199\n    test 837 pygeodesy.vector2d: Circin6Tuple(radius=0.5, center=0.5, deltas=0.5, cA=0.5, cB=0.5, cC=0.5)\n    test 838 pygeodesy.vector2d: Circin6Tuple(radius=Radius, center=_Pass, deltas=_Pass, cA=_Pass, cB=_Pass, cC=_Pass)\n    test 839 pygeodesy.vector2d.Circin6Tuple.radius: 0.5\n    test 840 pygeodesy.vector2d.Circin6Tuple.center: 0.5\n    test 841 pygeodesy.vector2d.Circin6Tuple.deltas: 0.5\n    test 842 pygeodesy.vector2d.Circin6Tuple.cA: 0.5\n    test 843 pygeodesy.vector2d.Circin6Tuple.cB: 0.5\n    test 844 pygeodesy.vector2d.Circin6Tuple.cC: 0.5\n    test 845 pygeodesy.vector2d.Circin6Tuple._validated: True\n    test 846 pygeodesy.vector2d.Circin6Tuple._validated: True\n    test 847 pygeodesy.vector2d: Circum3Tuple(radius=0.5, center=0.5, deltas=0.5)\n    test 848 pygeodesy.vector2d: Circum3Tuple(radius=Radius, center=_Pass, deltas=_Pass)\n    test 849 pygeodesy.vector2d.Circum3Tuple.radius: 0.5\n    test 850 pygeodesy.vector2d.Circum3Tuple.center: 0.5\n    test 851 pygeodesy.vector2d.Circum3Tuple.deltas: 0.5\n    test 852 pygeodesy.vector2d.Circum3Tuple._validated: True\n    test 853 pygeodesy.vector2d.Circum3Tuple._validated: True\n    test 854 pygeodesy.vector2d: Circum4Tuple(radius=0.5, center=0.5, rank=0, residuals=0.5)\n    test 855 pygeodesy.vector2d: Circum4Tuple(radius=Radius, center=_Pass, rank=Int, residuals=_Pass)\n    test 856 pygeodesy.vector2d.Circum4Tuple.radius: 0.5\n    test 857 pygeodesy.vector2d.Circum4Tuple.center: 0.5\n    test 858 pygeodesy.vector2d.Circum4Tuple.rank: 0.5\n    test 859 pygeodesy.vector2d.Circum4Tuple.residuals: 0.5\n    test 860 pygeodesy.vector2d.Circum4Tuple._validated: True\n    test 861 pygeodesy.vector2d.Circum4Tuple._validated: True\n    test 862 pygeodesy.vector2d: Meeus2Tuple(radius=0.5, Type=0.5)\n    test 863 pygeodesy.vector2d: Meeus2Tuple(radius=Radius, Type=_Pass)\n    test 864 pygeodesy.vector2d.Meeus2Tuple.radius: 0.5\n    test 865 pygeodesy.vector2d.Meeus2Tuple.Type: 0.5\n    test 866 pygeodesy.vector2d.Meeus2Tuple._validated: True\n    test 867 pygeodesy.vector2d.Meeus2Tuple._validated: True\n    test 868 pygeodesy.vector2d: Radii11Tuple(rA=0.5, rB=0.5, rC=0.5, cR=0.5, rIn=0.5, riS=0.5, roS=0.5, a=0.5, b=0.5, c=0.5, s=0.5)\n    test 869 pygeodesy.vector2d: Radii11Tuple(rA=Meter, rB=Meter, rC=Meter, cR=Meter, rIn=Meter, riS=Meter, roS=Meter, a=Meter, b=Meter, c=Meter, s=Meter)\n    test 870 pygeodesy.vector2d.Radii11Tuple.rA: 0.5\n    test 871 pygeodesy.vector2d.Radii11Tuple.rB: 0.5\n    test 872 pygeodesy.vector2d.Radii11Tuple.rC: 0.5\n    test 873 pygeodesy.vector2d.Radii11Tuple.cR: 0.5\n    test 874 pygeodesy.vector2d.Radii11Tuple.rIn: 0.5\n    test 875 pygeodesy.vector2d.Radii11Tuple.riS: 0.5\n    test 876 pygeodesy.vector2d.Radii11Tuple.roS: 0.5\n    test 877 pygeodesy.vector2d.Radii11Tuple.a: 0.5\n    test 878 pygeodesy.vector2d.Radii11Tuple.b: 0.5\n    test 879 pygeodesy.vector2d.Radii11Tuple.c: 0.5\n    test 880 pygeodesy.vector2d.Radii11Tuple.s: 0.5\n    test 881 pygeodesy.vector2d.Radii11Tuple._validated: True\n    test 882 pygeodesy.vector2d.Radii11Tuple._validated: True\n    test 883 pygeodesy.vector2d: Soddy4Tuple(radius=0.5, center=0.5, deltas=0.5, outer=0.5)\n    test 884 pygeodesy.vector2d: Soddy4Tuple(radius=Radius, center=_Pass, deltas=_Pass, outer=Radius)\n    test 885 pygeodesy.vector2d.Soddy4Tuple.radius: 0.5\n    test 886 pygeodesy.vector2d.Soddy4Tuple.center: 0.5\n    test 887 pygeodesy.vector2d.Soddy4Tuple.deltas: 0.5\n    test 888 pygeodesy.vector2d.Soddy4Tuple.outer: 0.5\n    test 889 pygeodesy.vector2d.Soddy4Tuple._validated: True\n    test 890 pygeodesy.vector2d.Soddy4Tuple._validated: True\n    test 891 pygeodesy.vector2d: Triaxum5Tuple(a=0.5, b=0.5, c=0.5, rank=0, residuals=0.5)\n    test 892 pygeodesy.vector2d: Triaxum5Tuple(a=Radius, b=Radius, c=Radius, rank=Int, residuals=_Pass)\n    test 893 pygeodesy.vector2d.Triaxum5Tuple.a: 0.5\n    test 894 pygeodesy.vector2d.Triaxum5Tuple.b: 0.5\n    test 895 pygeodesy.vector2d.Triaxum5Tuple.c: 0.5\n    test 896 pygeodesy.vector2d.Triaxum5Tuple.rank: 0.5\n    test 897 pygeodesy.vector2d.Triaxum5Tuple.residuals: 0.5\n    test 898 pygeodesy.vector2d.Triaxum5Tuple._validated: True\n    test 899 pygeodesy.vector2d.Triaxum5Tuple._validated: True\n# lazily imported pygeodesy.webmercator by bases.py line 199\n    test 900 pygeodesy.webmercator: EasNorRadius3Tuple(easting=0.5, northing=0.5, radius=0.5)\n    test 901 pygeodesy.webmercator: EasNorRadius3Tuple(easting=Easting, northing=Northing, radius=Radius)\n    test 902 pygeodesy.webmercator.EasNorRadius3Tuple.easting: 0.5\n    test 903 pygeodesy.webmercator.EasNorRadius3Tuple.northing: 0.5\n    test 904 pygeodesy.webmercator.EasNorRadius3Tuple.radius: 0.5\n    test 905 pygeodesy.webmercator.EasNorRadius3Tuple._validated: True\n    test 906 pygeodesy.webmercator.EasNorRadius3Tuple._validated: True\n# lazily imported pygeodesy.wgrs by bases.py line 199\n# lazily imported pygeodesy.auxilats by bases.py line 199\n# lazily imported pygeodesy.geodesicx by bases.py line 199\n# lazily imported pygeodesy.rhumb by bases.py line 199\n    test 907 pygeodesy.rhumb.solve: RhumbSolve7Tuple(lat1=0.5, lon1=0.5, lat2=0.5, lon2=0.5, azi12=0.5, s12=0.5, S12=0.5)\n    test 908 pygeodesy.rhumb.solve: RhumbSolve7Tuple(lat1=Lat, lon1=Lon, lat2=Lat, lon2=Lon, azi12=Azimuth, s12=Meter, S12=Meter2)\n    test 909 pygeodesy.rhumb.solve.RhumbSolve7Tuple.lat1: 0.5\n    test 910 pygeodesy.rhumb.solve.RhumbSolve7Tuple.lon1: 0.5\n    test 911 pygeodesy.rhumb.solve.RhumbSolve7Tuple.lat2: 0.5\n    test 912 pygeodesy.rhumb.solve.RhumbSolve7Tuple.lon2: 0.5\n    test 913 pygeodesy.rhumb.solve.RhumbSolve7Tuple.azi12: 0.5\n    test 914 pygeodesy.rhumb.solve.RhumbSolve7Tuple.s12: 0.5\n    test 915 pygeodesy.rhumb.solve.RhumbSolve7Tuple.S12: 0.5\n    test 916 pygeodesy.rhumb.solve.RhumbSolve7Tuple._validated: True\n    test 917 pygeodesy.rhumb.solve.RhumbSolve7Tuple._validated: True\n    test 918 pygeodesy.triaxials.bases: Conformal5Tuple(x=0.5, y=0.5, z=0.5, scale=0.5, llk=0.5)\n    test 919 pygeodesy.triaxials.bases: Conformal5Tuple(x=Easting, y=Northing, z=_Pass, scale=Scalar, llk=_Pass)\n    test 920 pygeodesy.triaxials.bases.Conformal5Tuple.x: 0.5\n    test 921 pygeodesy.triaxials.bases.Conformal5Tuple.y: 0.5\n    test 922 pygeodesy.triaxials.bases.Conformal5Tuple.z: 0.5\n    test 923 pygeodesy.triaxials.bases.Conformal5Tuple.scale: 0.5\n    test 924 pygeodesy.triaxials.bases.Conformal5Tuple.llk: 0.5\n    test 925 pygeodesy.triaxials.bases.Conformal5Tuple._validated: True\n    test 926 pygeodesy.triaxials.bases.Conformal5Tuple._validated: True\n    test 927 pygeodesy.triaxials.conformal3: BetOmgGam5Tuple(bet=Ang, omg=Ang, gam=_Pass, scale=Scalar, llk=_Pass)\n    test 928 pygeodesy.triaxials.conformal3.BetOmgGam5Tuple.bet: 0.5\n    test 929 pygeodesy.triaxials.conformal3.BetOmgGam5Tuple.omg: 0.5\n    test 930 pygeodesy.triaxials.conformal3.BetOmgGam5Tuple.gam: 0.5\n    test 931 pygeodesy.triaxials.conformal3.BetOmgGam5Tuple.scale: 0.5\n    test 932 pygeodesy.triaxials.conformal3.BetOmgGam5Tuple.llk: 0.5\n    test 933 pygeodesy.triaxials.conformal3.BetOmgGam5Tuple._validated: True\n    test 934 pygeodesy.triaxials.conformal3.BetOmgGam5Tuple._validated: True\n    test 935 pygeodesy.triaxials.triaxial3: BetOmgAlp5Tuple(bet=Ang, omg=Ang, alp=_Pass, h=_HeightINT0, llk=_Pass)\n    test 936 pygeodesy.triaxials.triaxial3.BetOmgAlp5Tuple.bet: 0.5\n    test 937 pygeodesy.triaxials.triaxial3.BetOmgAlp5Tuple.omg: 0.5\n    test 938 pygeodesy.triaxials.triaxial3.BetOmgAlp5Tuple.alp: 0.5\n    test 939 pygeodesy.triaxials.triaxial3.BetOmgAlp5Tuple.h: 0.5\n    test 940 pygeodesy.triaxials.triaxial3.BetOmgAlp5Tuple.llk: 0.5\n    test 941 pygeodesy.triaxials.triaxial3.BetOmgAlp5Tuple._validated: True\n    test 942 pygeodesy.triaxials.triaxial3.BetOmgAlp5Tuple._validated: True\n    test 943 pygeodesy.triaxials.triaxial3: Cartesian5Tuple(x=0.5, y=0.5, z=0.5, h=0.5, llk=0.5)\n    test 944 pygeodesy.triaxials.triaxial3: Cartesian5Tuple(x=Scalar, y=Scalar, z=Scalar, h=Height, llk=_Pass)\n    test 945 pygeodesy.triaxials.triaxial3.Cartesian5Tuple.x: 0.5\n    test 946 pygeodesy.triaxials.triaxial3.Cartesian5Tuple.y: 0.5\n    test 947 pygeodesy.triaxials.triaxial3.Cartesian5Tuple.z: 0.5\n    test 948 pygeodesy.triaxials.triaxial3.Cartesian5Tuple.h: 0.5\n    test 949 pygeodesy.triaxials.triaxial3.Cartesian5Tuple.llk: 0.5\n    test 950 pygeodesy.triaxials.triaxial3.Cartesian5Tuple._validated: True\n    test 951 pygeodesy.triaxials.triaxial3.Cartesian5Tuple._validated: True\n    test 952 pygeodesy.triaxials.triaxial3: PhiLamZet5Tuple(phi=Ang, lam=Ang, zet=_Pass, h=_HeightINT0, llk=_Pass)\n    test 953 pygeodesy.triaxials.triaxial3.PhiLamZet5Tuple.phi: 0.5\n    test 954 pygeodesy.triaxials.triaxial3.PhiLamZet5Tuple.lam: 0.5\n    test 955 pygeodesy.triaxials.triaxial3.PhiLamZet5Tuple.zet: 0.5\n    test 956 pygeodesy.triaxials.triaxial3.PhiLamZet5Tuple.h: 0.5\n    test 957 pygeodesy.triaxials.triaxial3.PhiLamZet5Tuple.llk: 0.5\n    test 958 pygeodesy.triaxials.triaxial3.PhiLamZet5Tuple._validated: True\n    test 959 pygeodesy.triaxials.triaxial3.PhiLamZet5Tuple._validated: True\n    test 960 pygeodesy.triaxials.triaxial5: BetaOmega2Tuple(beta=0.5, omega=0.5)\n    test 961 pygeodesy.triaxials.triaxial5: BetaOmega2Tuple(beta=_Pass, omega=_Pass)\n    test 962 pygeodesy.triaxials.triaxial5.BetaOmega2Tuple.beta: 0.5\n    test 963 pygeodesy.triaxials.triaxial5.BetaOmega2Tuple.omega: 0.5\n    test 964 pygeodesy.triaxials.triaxial5.BetaOmega2Tuple._validated: True\n    test 965 pygeodesy.triaxials.triaxial5.BetaOmega2Tuple._validated: True\n    test 966 pygeodesy.triaxials.triaxial5: BetaOmega3Tuple(beta=0.5, omega=0.5, height=0.5)\n    test 967 pygeodesy.triaxials.triaxial5: BetaOmega3Tuple(beta=_Pass, omega=_Pass, height=Meter)\n    test 968 pygeodesy.triaxials.triaxial5.BetaOmega3Tuple.beta: 0.5\n    test 969 pygeodesy.triaxials.triaxial5.BetaOmega3Tuple.omega: 0.5\n    test 970 pygeodesy.triaxials.triaxial5.BetaOmega3Tuple.height: 0.5\n    test 971 pygeodesy.triaxials.triaxial5.BetaOmega3Tuple._validated: True\n    test 972 pygeodesy.triaxials.triaxial5.BetaOmega3Tuple._validated: True\n    test 973 pygeodesy.triaxials.triaxial5: Conformal2Tuple(x=0.5, y=0.5)\n    test 974 pygeodesy.triaxials.triaxial5: Conformal2Tuple(x=_Pass, y=_Pass)\n    test 975 pygeodesy.triaxials.triaxial5.Conformal2Tuple.x: 0.5\n    test 976 pygeodesy.triaxials.triaxial5.Conformal2Tuple.y: 0.5\n    test 977 pygeodesy.triaxials.triaxial5.Conformal2Tuple._validated: True\n    test 978 pygeodesy.triaxials.triaxial5.Conformal2Tuple._validated: True\n    test 979 pygeodesy.named._NamedTuple._validated: False\n\n    all 979 testNamedTuples.py tests passed (pygeodesy 26.3.26 Python 3.14.3 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 36.087 ms\nrunning /Library/Framewo....n3.14 -W default ~/PyGeodesy/test/testNavlabExamples.py\n./pygeodesy/ellipsoidalNvector.py:61: DeprecationWarning: class L{Ned<pygeodesy.ellipsoidalNvector.Ned>} has been DEPRECATED on 2024.02.04, use class L{pygeodesy.Ned}.\n  deprecated_class(self.__class__)\n./test/testNavlabExamples.py:41: DeprecationWarning: method L{toRepr<pygeodesy.ellipsoidalNvector.Ned.toRepr>} has been DEPRECATED, use class L{pygeodesy.Ned}.\n  t.test(1, 'delta', delta.toRepr(prec=3), '[L:470357.384, B:45.109°, E:-2.12°]')  # DEPRECATED\n./test/testNavlabExamples.py:43: DeprecationWarning: Property_RO L{bearing<pygeodesy.ellipsoidalNvector.Ned.bearing>} has been DEPRECATED, use C{azimuth}.\n  t.test(1, 'bearing', delta.bearing, 45.109, fmt='%.3f')  # 45.109°\n./test/testNavlabExamples.py:44: DeprecationWarning: Property_RO L{length<pygeodesy.ellipsoidalNvector.Ned.length>} has been DEPRECATED, use C{slantrange}.\n  t.test(1, 'length', delta.length, 470357.384, fmt='%.3f')  # 470357.384 m\n./test/testNavlabExamples.py:63: DeprecationWarning: method L{toRepr<pygeodesy.ellipsoidalNvector.Ned.toRepr>} has been DEPRECATED, use class L{pygeodesy.Ned}.\n  t.test(2, 'delta', delta.toRepr(prec=3), '[L:3606.938, B:33.69°, E:-1.589°]')  # DEPRECATED\n./pygeodesy/ellipsoidalNvector.py:247: DeprecationWarning: Property_RO L{ned<pygeodesy.ellipsoidalNvector.Ned.ned>} has been DEPRECATED, use property C{ned4}.\n  dn = delta.ned[:3]  # XXX Ned4Tuple.to3Tuple\n./pygeodesy/deprecated/classes.py:33: DeprecationWarning: class L{Ned3Tuple<pygeodesy.deprecated.classes.Ned3Tuple>} has been DEPRECATED, use class L{Ned4Tuple}, ignoring item C{ltp}.\n  deprecated_class(cls)\n./test/testNavlabExamples.py:71: DeprecationWarning: method L{toRepr<pygeodesy.ellipsoidalNvector.Ned.toRepr>} has been DEPRECATED, use class L{pygeodesy.Ned}.\n  t.test(2, 'delta', delta.toRepr(prec=3), '[L:116807.681, B:222.493°, E:-0.524°]')  # DEPRECATED\n./pygeodesy/ellipsoidalKarney.py:94: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return self.datum.ellipsoid.geodesic\n./test/testNavlabExamples.py:143: DeprecationWarning: function L{toNed<pygeodesy.ellipsoidalNvector.toNed>} has been DEPRECATED, use L{pygeodesy.Aer}C{(bearing, elevation, distance).xyzLocal.toNed(B{Ned}, name=B{name})} or L{XyzLocal}C{(pygeodesy.Aer(bearing, elevation, distance)).toNed(B{Ned}, name=B{name})}.\n  d = ellipsoidalNvector.toNed(116809.178, 222.493, -0.5416)\n./test/testNavlabExamples.py:145: DeprecationWarning: Property_RO L{bearing<pygeodesy.ellipsoidalNvector.Ned.bearing>} has been DEPRECATED, use C{azimuth}.\n  TestsBase.test(t, 'bearing',   d.bearing, '227.507',  fmt='%.3f')  # '222.493'\n./test/testNavlabExamples.py:147: DeprecationWarning: Property_RO L{length<pygeodesy.ellipsoidalNvector.Ned.length>} has been DEPRECATED, use C{slantrange}.\n  TestsBase.test(t, 'length',    d.length, '116809.178',  fmt='%.3f')\n./test/testNavlabExamples.py:148: DeprecationWarning: method L{toVector3d<pygeodesy.ellipsoidalNvector.Ned.toVector3d>} has been DEPRECATED, use property L{xyz}.\n  v = d.toVector3d()\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.Datums from .datums by testNavlabExamples.py line 18\n# lazily imported pygeodesy.F_D from .dms by testNavlabExamples.py line 18\n# lazily imported pygeodesy.ellipsoidalExact by testNavlabExamples.py line 18\n# lazily imported pygeodesy.ellipsoidalNvector by testNavlabExamples.py line 18\n# lazily imported pygeodesy.ellipsoidalVincenty by testNavlabExamples.py line 18\n# lazily imported pygeodesy.sphericalNvector by testNavlabExamples.py line 18\n# lazily imported pygeodesy.sphericalTrigonometry by testNavlabExamples.py line 18\n# lazily imported pygeodesy.EcefVeness from .ecef by testNavlabExamples.py line 18\n# lazily imported pygeodesy.Ned from .ltpTuples by testNavlabExamples.py line 18\n# lazily imported pygeodesy.Ned4Tuple from .ltpTuples by testNavlabExamples.py line 18\n\n    testing testNavlabExamples.py 23.03.27 isLazy=3\n    test 1 Example 1 delta: [331730.863, 332998.501, 17398.304]\n    test 2 Example 1 delta: [L:470357.384, B:45.109°, E:-2.12°]\n    test 3 Example 1 elevation: -2.1198\n    test 4 Example 1 bearing: 45.109\n    test 5 Example 1 length: 470357.384\n\n    test 6 Example 1 delta: [331730.863, 332998.501, 17398.304]\n    test 7 Example 1 delta: <class 'pygeodesy.ltpTuples.Ned'>\n# lazily imported pygeodesy.ltp by ellipsoidalNvector.py line 201\n    test 8 Example 1 delta: (331730.863099, 332998.501491, 17398.304211, Ltp(lat0=1.0, lon0=2.0, height0=3.0, M=EcefMatrix(_0_0_=-0.034899, _0_1_=-0.017442, _0_2_=0.999239, _1_0_=0.999391, _1_1_=-0.000609, _1_2_=0.034894, _2_0_=0.0, _2_1_=0.999848, _2_2_=0.017452), ecef=EcefVeness(a=6378137.0, f=0.003352811, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), name=''), name=''))\n    test 9 Example 1 delta: <class 'pygeodesy.ltpTuples.Ned4Tuple'>\n    test 10 Example 1 delta: <class 'pygeodesy.ecef.EcefVeness'>\n\n    test 11 Example 2 LatLon: 53.301°N, 063.435°E, +400.00m\n    test 12 Example 2 toNvector: (0.267, 0.535, 0.802, +400.00)\n    test 13 Example 2 delta: [3000.0, 2000.0, 100.0]\n    test 14 Example 2 delta: [L:3606.938, B:33.69°, E:-1.589°]\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by <frozen importlib._bootstrap> line 1423\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by <frozen importlib._bootstrap> line 1423\n# lazily imported pygeodesy.Conformal2Tuple from .triaxials.triaxial5 by <frozen importlib._bootstrap> line 1423\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by classes.py line 21\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by classes.py line 21\n# lazily imported pygeodesy.Conformal2Tuple from .triaxials.triaxial5 by classes.py line 21\n# lazily imported pygeodesy.deprecated by ltpTuples.py line 483\n    test 15 Example 2 destinationNed: 53.327702°N, 063.465119°E, +296.01m  FAILED, KNOWN, expected 53.327726°N, 063.464965°E, +299.138m\n    test 16 Example 2 delta: [-86126, -78900, 1069]\n    test 17 Example 2 delta: [L:116807.681, B:222.493°, E:-0.524°]\n    test 18 Example 2 destinationNed: 48.88667°N, 002.37472°E\n\n    test 19 Example 3 toLatLon: 39.379°N, 048.013°W, +4702059.83m\n\n    test 20 Example 4 toCartesian: [6373290.277, 222560.201, 110568.827]\n\n    test 21 Example 5 distanceTo: 332457\n\n    test 22 Example 6 intermediateChordTo: 89.799981°N, 180.0°E\n    test 23 Example 6 intermediateTo: 89.8°N, 180.0°E\n    test 24 Example 6 intermediateChordTo: 51.372294°N, 000.707192°E\n    test 25 Example 6 intermediateTo: 51.372084°N, 000.707337°E\n\n    test 26 Example 7 meanOf: 67.2362°N, 006.9175°W\n\n    test 27 Example 8 destination(pygeodesy.sphericalNvector): 79.991549°N, 090.017698°W\n    test 28 Example 8 destination(pygeodesy.sphericalTrigonometry): 79.991549°N, 090.017698°W\n    test 29 Example 8 destination(pygeodesy.ellipsoidalVincenty): 79.991584°N, 090.017621°W\n# lazily imported pygeodesy.ellipsoidalKarney by testNavlabExamples.py line 120\n# lazily imported pygeodesy.geodesicw by ellipsoids.py line 1074\n    test 30 Example 8 destination(pygeodesy.ellipsoidalKarney): 79.991584°N, 090.017621°W\n# lazily imported pygeodesy.geodesicx by ellipsoids.py line 1082\n# lazily imported pygeodesy.elliptic by gxline.py line 289\n    test 31 Example 8 destination(pygeodesy.ellipsoidalExact): 79.991584°N, 090.017621°W\n\n    test 32 Example 9 intersection: 40.318643°N, 055.901868°E\n\n    test 33 Example 10 crossTrackDistance: 11118\n\n    test 34 toNed: [-78901.1, -86126.6, 1104.1]\n    test 35 bearing: 227.507\n    test 36 elevation: -0.5416\n    test 37 length: 116809.178\n    test 38 toVector3d: (-86126.6, -78901.1, -1104.1)\n\n    19 of 38 testNavlabExamples.py tests (50.0%) FAILED, incl. 1 KNOWN plus 18 DeprecationWarnings (pygeodesy 26.3.26 Python 3.14.3 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 20.438 ms\nrunning /Library/Framewo....n3.14 -W default ~/PyGeodesy/test/testOsgr.py\n./test/testOsgr.py:25: DeprecationWarning: method L{convertDatum<pygeodesy.ellipsoidalNvector.LatLon.convertDatum>} has been DEPRECATED, use method L{toDatum}.\n  r = p.convertDatum(Datums.OSGB36)\n./test/testOsgr.py:27: DeprecationWarning: method L{convertDatum<pygeodesy.ellipsoidalNvector.LatLon.convertDatum>} has been DEPRECATED, use method L{toDatum}.\n  r = r.convertDatum(Datums.WGS84)\n./test/testOsgr.py:25: DeprecationWarning: method L{convertDatum<pygeodesy.ellipsoidalVincenty.LatLon.convertDatum>} has been DEPRECATED, use method L{toDatum}.\n  r = p.convertDatum(Datums.OSGB36)\n./test/testOsgr.py:27: DeprecationWarning: method L{convertDatum<pygeodesy.ellipsoidalVincenty.LatLon.convertDatum>} has been DEPRECATED, use method L{toDatum}.\n  r = r.convertDatum(Datums.WGS84)\n./test/testOsgr.py:25: DeprecationWarning: method L{convertDatum<pygeodesy.ellipsoidalKarney.LatLon.convertDatum>} has been DEPRECATED, use method L{toDatum}.\n  r = p.convertDatum(Datums.OSGB36)\n./test/testOsgr.py:27: DeprecationWarning: method L{convertDatum<pygeodesy.ellipsoidalKarney.LatLon.convertDatum>} has been DEPRECATED, use method L{toDatum}.\n  r = r.convertDatum(Datums.WGS84)\n./pygeodesy/ellipsoidalKarney.py:94: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return self.datum.ellipsoid.geodesic\n./test/testOsgr.py:25: DeprecationWarning: method L{convertDatum<pygeodesy.ellipsoidalExact.LatLon.convertDatum>} has been DEPRECATED, use method L{toDatum}.\n  r = p.convertDatum(Datums.OSGB36)\n./test/testOsgr.py:27: DeprecationWarning: method L{convertDatum<pygeodesy.ellipsoidalExact.LatLon.convertDatum>} has been DEPRECATED, use method L{toDatum}.\n  r = r.convertDatum(Datums.WGS84)\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.F_D from .dms by testOsgr.py line 11\n# lazily imported pygeodesy.F_DEG from .dms by testOsgr.py line 11\n# lazily imported pygeodesy.F_DMS from .dms by testOsgr.py line 11\n# lazily imported pygeodesy.fstr from .streprs by testOsgr.py line 11\n# lazily imported pygeodesy.Datums from .datums by testOsgr.py line 11\n# lazily imported pygeodesy.Osgr from .osgr by testOsgr.py line 11\n# lazily imported pygeodesy.parseOSGR from .osgr by testOsgr.py line 11\n# lazily imported pygeodesy.toOsgr from .osgr by testOsgr.py line 11\n# lazily imported pygeodesy.ellipsoidalExact by testOsgr.py line 221\n# lazily imported pygeodesy.ellipsoidalKarney by testOsgr.py line 221\n# lazily imported pygeodesy.ellipsoidalNvector by testOsgr.py line 221\n# lazily imported pygeodesy.ellipsoidalVincenty by testOsgr.py line 221\n\n    testing testOsgr.py 23.03.27 (module pygeodesy.osgr 25.05.12) isLazy=3\n\n    testOSgr(pygeodesy.ellipsoidalNvector, 25.05.12)\n    test 1 WGS84: 51.4778°N, 000.0016°W\n# lazily imported pygeodesy.ecef by ellipsoidalNvector.py line 524\n    test 2 OSGB36: 51.477284°N, 000.00002°E\n    test 3 WGS84: 51.4778°N, 000.0016°W\n    test 4 OSgr1: TG 51409 13177\n    test 5 OSgr1: [G:TG, E:51409, N:13177]\n    test 6 iteration: None\n    test 7 toLatLon1: 52°39′28.72″N, 001°42′57.79″E\n    test 8 toLatLon1: 52.657979°N, 001.716052°E\n    test 9 iteration: 4\n    test 10 toOsgr1: 651409.903,313177.270\n    test 11 toOsgr1: 651409.903,313177.270\n    test 12 toOsgr1: TG5140990313177270\n    test 13 toLatLon2: 52°39′27.25″N, 001°43′04.52″E\n    test 14 toLatLon2: 52.65757°N, 001.717922°E  FAILED, KNOWN, expected 52.657570°N, 001.717922°E\n    test 15 iteration: 4\n    test 16 toOsgr2: 651409,313177\n    test 17 toOsgr2: 651409,313177\n    test 18 toOsgr3: TG 51409 13177\n    test 19 toLatLon3: (52.65798, 1.71605, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n# lazily imported pygeodesy.ktm by osgr.py line 108\n    test 20 toOsgr4: TG 51409 13177\n    test 21 toLatLon4: (52.657570000, 1.717910000, Datum(name='OSGB36', ellipsoid=Ellipsoids.Airy1830, transform=Transforms.OSGB36))\n    test 22 toLatLon4: (52.657569999, 1.717910045, Datum(name='OSGB36', ellipsoid=Ellipsoids.Airy1830, transform=Transforms.OSGB36))\n    test 23 toLatLon4: (52.657978296, 1.716040366, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 24 toLatLon4: (52.657978295, 1.716040411, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 25 toOsgr5: 0.001\n    test 26 toOsgr5: TG5140900013177000\n    test 27 toOsgr5: 651409.000,313177.000\n    test 28 toLatLon5: (52.657976595, 1.716038422, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n\n    test 29 OSGR1: TG 48251 11932\n    test 30 OSGR1: [G:TG, E:48251, N:11932]\n    test 31 OSGR2: TG 51409 13177\n    test 32 OSGR2: [G:TG, E:51409, N:13177]\n    test 33 OSGR3: TG 51409 13177\n    test 34 OSGR3: [G:TG, E:51409, N:13177]\n    test 35 OSGR4: TG 51409 13177\n    test 36 OSGR4: [G:TG, E:51409, N:13177]\n    test 37 OSGR5: 651409,313177\n    test 38 OSGR5: TG51409001317700\n    test 39 OSGR5: 651409,313177\n    test 40 OSGR5: 651409.000000,313177.000000\n    test 41 OSGR5: 651409.00,313177.00\n    test 42 OSGR5: [OSGR:651409.000,313177.000]\n    test 43 OSGR5: [OSGR:651409,313177]\n    test 44 OSGR5: [OSGR:651409.000,313177.000]\n    test 45 OSGR5: [OSGR:651,313]\n    test 46 OSGR6: 651409.000,313177.000\n    test 47 OSGR6: 651409,313177\n    test 48 OSGR6: (651409, 313177)\n    test 49 OSGR6: 651409,313177\n    test 50 OSGR6: 651409,313177\n    test 51 OSGR6: (651409, 313177)\n    test 52 OSGR6: 651409 313177\n\n    test 53 issue: 38\n    test 54 toOsgr: [G:TL, E:29158, N:35174]\n    test 55 toOsgr: 529158.072, 235174.785\n    test 56 toOsgr: OSGB36\n    test 57 toLatLonOSGB36: 51°59′58.37″N, 000°07′06.14″W\n    test 58 toLatLonOSGB36: OSGB36\n    test 59 toLatLonWGS84 : 52°00′00.0″N, 000°07′12.0″W\n    test 60 toLatLonWGS84 : WGS84\n\n    test 61 Osgr: [G:TQ, E:32014, N:23971]\n    test 62 Osgr: 532014.0, 123971.0\n    test 63 Osgr: OSGB36\n    test 64 toLatLonOSGB36: 50.999425N, 000.118417W\n    test 65 toLatLonOSGB36: OSGB36\n    test 66 toLatLonWGS84 : 50.999995N, 000.120004W\n    test 67 toLatLonWGS84 : WGS84\n    test 68 parseOSGR: [G:TQ, E:32014, N:23971]\n    test 69 parseOSGR: 532014.0, 123971.0\n    test 70 parseOSGR: OSGB36\n    test 71 toLatLonOSGB36: 50.999425N, 000.118417W\n    test 72 toLatLonOSGB36: OSGB36\n    test 73 toLatLonWGS84: 50.999995N, 000.120004W\n    test 74 toLatLonWGS84: WGS84\n    test 75 toOsgr: [G:TQ, E:32013, N:23971]\n    test 76 toOsgr: 532013.969, 123971.046\n    test 77 toOsgr: OSGB36\n    test 78 toLatLonOSGB36: 50.999426N, 000.118417W\n    test 79 toLatLonOSGB36: OSGB36\n    test 80 toLatLonWGS84 : 50.999995N, 000.120004W\n    test 81 toLatLonWGS84 : WGS84\n    test 82 toOsgr: [G:TQ, E:48853, N:24427]\n    test 83 toOsgr: 548853.602, 124427.985\n    test 84 toOsgr: OSGB36\n    test 85 toLatLonOSGB36: 50.999422N, 000.121618E\n    test 86 toLatLonOSGB36: OSGB36\n    test 87 toLatLonWGS84 : 50.999995N, 000.120004E\n    test 88 toLatLonWGS84 : WGS84\n\n    test 89 LatLon: 49.926244°N, 006.297934°W\n    test 90 datum: WGS84\n    test 91 datum: OSGB36\n    test 92 toOsgr: [G:SV, E:91645, N:11753]\n    test 93 datum: OSGB36\n    test 94 LatLon: 49.926244°N, 006.297934°W\n    test 95 datum: WGS84\n    test 96 distanceTo: 0.0103  FAILED, KNOWN, expected 0.0104\n\n    test 97 prec=-2: [G:SV, E:91600, N:11700]\n\n    test 98 toLatLon: 52.0N, 000.12W\n    test 99 toLatLon: 52.0N, 000.12W\n    test 100 toLatLon: 52.0N, 000.12W\n    test 101 toLatLon: 52.0N, 000.12W\n    test 102 toLatLon: 52.0N, 000.12W\n    test 103 toLatLon: 52.0N, 000.12W\n    test 104 toLatLon: 52.0N, 000.12W\n    test 105 toLatLon: 52.0N, 000.12W\n\n    testOSgr(pygeodesy.ellipsoidalVincenty, 25.05.26)\n    test 106 WGS84: 51.4778°N, 000.0016°W\n    test 107 OSGB36: 51.477284°N, 000.00002°E\n    test 108 WGS84: 51.4778°N, 000.0016°W\n    test 109 OSgr1: TG 51409 13177\n    test 110 OSgr1: [G:TG, E:51409, N:13177]\n    test 111 iteration: None\n    test 112 toLatLon1: 52°39′28.72″N, 001°42′57.79″E\n    test 113 toLatLon1: 52.657979°N, 001.716052°E\n    test 114 iteration: 4\n    test 115 toOsgr1: 651409.903,313177.270\n    test 116 toOsgr1: 651409.903,313177.270\n    test 117 toOsgr1: TG5140990313177270\n    test 118 toLatLon2: 52°39′27.25″N, 001°43′04.52″E\n    test 119 toLatLon2: 52.65757°N, 001.717922°E  FAILED, KNOWN, expected 52.657570°N, 001.717922°E\n    test 120 iteration: 4\n    test 121 toOsgr2: 651409,313177\n    test 122 toOsgr2: 651409,313177\n    test 123 toOsgr3: TG 51409 13177\n    test 124 toLatLon3: (52.65798, 1.71605, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 125 toOsgr4: TG 51409 13177\n    test 126 toLatLon4: (52.657570000, 1.717910000, Datum(name='OSGB36', ellipsoid=Ellipsoids.Airy1830, transform=Transforms.OSGB36))\n    test 127 toLatLon4: (52.657569999, 1.717910045, Datum(name='OSGB36', ellipsoid=Ellipsoids.Airy1830, transform=Transforms.OSGB36))\n    test 128 toLatLon4: (52.657978296, 1.716040366, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 129 toLatLon4: (52.657978295, 1.716040411, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 130 toOsgr5: 0.001\n    test 131 toOsgr5: TG5140900013177000\n    test 132 toOsgr5: 651409.000,313177.000\n    test 133 toLatLon5: (52.657976595, 1.716038422, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n\n    test 134 OSGR1: TG 48251 11932\n    test 135 OSGR1: [G:TG, E:48251, N:11932]\n    test 136 OSGR2: TG 51409 13177\n    test 137 OSGR2: [G:TG, E:51409, N:13177]\n    test 138 OSGR3: TG 51409 13177\n    test 139 OSGR3: [G:TG, E:51409, N:13177]\n    test 140 OSGR4: TG 51409 13177\n    test 141 OSGR4: [G:TG, E:51409, N:13177]\n    test 142 OSGR5: 651409,313177\n    test 143 OSGR5: TG51409001317700\n    test 144 OSGR5: 651409,313177\n    test 145 OSGR5: 651409.000000,313177.000000\n    test 146 OSGR5: 651409.00,313177.00\n    test 147 OSGR5: [OSGR:651409.000,313177.000]\n    test 148 OSGR5: [OSGR:651409,313177]\n    test 149 OSGR5: [OSGR:651409.000,313177.000]\n    test 150 OSGR5: [OSGR:651,313]\n    test 151 OSGR6: 651409.000,313177.000\n    test 152 OSGR6: 651409,313177\n    test 153 OSGR6: (651409, 313177)\n    test 154 OSGR6: 651409,313177\n    test 155 OSGR6: 651409,313177\n    test 156 OSGR6: (651409, 313177)\n    test 157 OSGR6: 651409 313177\n\n    test 158 issue: 38\n    test 159 toOsgr: [G:TL, E:29158, N:35174]\n    test 160 toOsgr: 529158.072, 235174.785\n    test 161 toOsgr: OSGB36\n    test 162 toLatLonOSGB36: 51°59′58.37″N, 000°07′06.14″W\n    test 163 toLatLonOSGB36: OSGB36\n    test 164 toLatLonWGS84 : 52°00′00.0″N, 000°07′12.0″W\n    test 165 toLatLonWGS84 : WGS84\n\n    test 166 Osgr: [G:TQ, E:32014, N:23971]\n    test 167 Osgr: 532014.0, 123971.0\n    test 168 Osgr: OSGB36\n    test 169 toLatLonOSGB36: 50.999425N, 000.118417W\n    test 170 toLatLonOSGB36: OSGB36\n    test 171 toLatLonWGS84 : 50.999995N, 000.120004W\n    test 172 toLatLonWGS84 : WGS84\n    test 173 parseOSGR: [G:TQ, E:32014, N:23971]\n    test 174 parseOSGR: 532014.0, 123971.0\n    test 175 parseOSGR: OSGB36\n    test 176 toLatLonOSGB36: 50.999425N, 000.118417W\n    test 177 toLatLonOSGB36: OSGB36\n    test 178 toLatLonWGS84: 50.999995N, 000.120004W\n    test 179 toLatLonWGS84: WGS84\n    test 180 toOsgr: [G:TQ, E:32013, N:23971]\n    test 181 toOsgr: 532013.969, 123971.046\n    test 182 toOsgr: OSGB36\n    test 183 toLatLonOSGB36: 50.999426N, 000.118417W\n    test 184 toLatLonOSGB36: OSGB36\n    test 185 toLatLonWGS84 : 50.999995N, 000.120004W\n    test 186 toLatLonWGS84 : WGS84\n    test 187 toOsgr: [G:TQ, E:48853, N:24427]\n    test 188 toOsgr: 548853.602, 124427.985\n    test 189 toOsgr: OSGB36\n    test 190 toLatLonOSGB36: 50.999422N, 000.121618E\n    test 191 toLatLonOSGB36: OSGB36\n    test 192 toLatLonWGS84 : 50.999995N, 000.120004E\n    test 193 toLatLonWGS84 : WGS84\n\n    test 194 LatLon: 49.926244°N, 006.297934°W\n    test 195 datum: WGS84\n    test 196 datum: OSGB36\n    test 197 toOsgr: [G:SV, E:91645, N:11753]\n    test 198 datum: OSGB36\n    test 199 LatLon: 49.926244°N, 006.297934°W\n    test 200 datum: WGS84\n    test 201 distanceTo: 0.0104\n\n    test 202 prec=-2: [G:SV, E:91600, N:11700]\n\n    test 203 toLatLon: 52.0N, 000.12W\n    test 204 toLatLon: 52.0N, 000.12W\n    test 205 toLatLon: 52.0N, 000.12W\n    test 206 toLatLon: 52.0N, 000.12W\n    test 207 toLatLon: 52.0N, 000.12W\n    test 208 toLatLon: 52.0N, 000.12W\n    test 209 toLatLon: 52.0N, 000.12W\n    test 210 toLatLon: 52.0N, 000.12W\n\n    testOSgr(pygeodesy.ellipsoidalKarney, 25.05.27)\n    test 211 WGS84: 51.4778°N, 000.0016°W\n    test 212 OSGB36: 51.477284°N, 000.00002°E\n    test 213 WGS84: 51.4778°N, 000.0016°W\n    test 214 OSgr1: TG 51409 13177\n    test 215 OSgr1: [G:TG, E:51409, N:13177]\n    test 216 iteration: None\n    test 217 toLatLon1: 52°39′28.72″N, 001°42′57.79″E\n    test 218 toLatLon1: 52.657979°N, 001.716052°E\n    test 219 iteration: 4\n    test 220 toOsgr1: 651409.903,313177.270\n    test 221 toOsgr1: 651409.903,313177.270\n    test 222 toOsgr1: TG5140990313177270\n    test 223 toLatLon2: 52°39′27.25″N, 001°43′04.52″E\n    test 224 toLatLon2: 52.65757°N, 001.717922°E  FAILED, KNOWN, expected 52.657570°N, 001.717922°E\n    test 225 iteration: 4\n    test 226 toOsgr2: 651409,313177\n    test 227 toOsgr2: 651409,313177\n    test 228 toOsgr3: TG 51409 13177\n    test 229 toLatLon3: (52.65798, 1.71605, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 230 toOsgr4: TG 51409 13177\n    test 231 toLatLon4: (52.657570000, 1.717910000, Datum(name='OSGB36', ellipsoid=Ellipsoids.Airy1830, transform=Transforms.OSGB36))\n    test 232 toLatLon4: (52.657569999, 1.717910045, Datum(name='OSGB36', ellipsoid=Ellipsoids.Airy1830, transform=Transforms.OSGB36))\n    test 233 toLatLon4: (52.657978296, 1.716040366, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 234 toLatLon4: (52.657978295, 1.716040411, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 235 toOsgr5: 0.001\n    test 236 toOsgr5: TG5140900013177000\n    test 237 toOsgr5: 651409.000,313177.000\n    test 238 toLatLon5: (52.657976595, 1.716038422, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n\n    test 239 OSGR1: TG 48251 11932\n    test 240 OSGR1: [G:TG, E:48251, N:11932]\n    test 241 OSGR2: TG 51409 13177\n    test 242 OSGR2: [G:TG, E:51409, N:13177]\n    test 243 OSGR3: TG 51409 13177\n    test 244 OSGR3: [G:TG, E:51409, N:13177]\n    test 245 OSGR4: TG 51409 13177\n    test 246 OSGR4: [G:TG, E:51409, N:13177]\n    test 247 OSGR5: 651409,313177\n    test 248 OSGR5: TG51409001317700\n    test 249 OSGR5: 651409,313177\n    test 250 OSGR5: 651409.000000,313177.000000\n    test 251 OSGR5: 651409.00,313177.00\n    test 252 OSGR5: [OSGR:651409.000,313177.000]\n    test 253 OSGR5: [OSGR:651409,313177]\n    test 254 OSGR5: [OSGR:651409.000,313177.000]\n    test 255 OSGR5: [OSGR:651,313]\n    test 256 OSGR6: 651409.000,313177.000\n    test 257 OSGR6: 651409,313177\n    test 258 OSGR6: (651409, 313177)\n    test 259 OSGR6: 651409,313177\n    test 260 OSGR6: 651409,313177\n    test 261 OSGR6: (651409, 313177)\n    test 262 OSGR6: 651409 313177\n\n    test 263 issue: 38\n    test 264 toOsgr: [G:TL, E:29158, N:35174]\n    test 265 toOsgr: 529158.072, 235174.785\n    test 266 toOsgr: OSGB36\n    test 267 toLatLonOSGB36: 51°59′58.37″N, 000°07′06.14″W\n    test 268 toLatLonOSGB36: OSGB36\n    test 269 toLatLonWGS84 : 52°00′00.0″N, 000°07′12.0″W\n    test 270 toLatLonWGS84 : WGS84\n\n    test 271 Osgr: [G:TQ, E:32014, N:23971]\n    test 272 Osgr: 532014.0, 123971.0\n    test 273 Osgr: OSGB36\n    test 274 toLatLonOSGB36: 50.999425N, 000.118417W\n    test 275 toLatLonOSGB36: OSGB36\n    test 276 toLatLonWGS84 : 50.999995N, 000.120004W\n    test 277 toLatLonWGS84 : WGS84\n    test 278 parseOSGR: [G:TQ, E:32014, N:23971]\n    test 279 parseOSGR: 532014.0, 123971.0\n    test 280 parseOSGR: OSGB36\n    test 281 toLatLonOSGB36: 50.999425N, 000.118417W\n    test 282 toLatLonOSGB36: OSGB36\n    test 283 toLatLonWGS84: 50.999995N, 000.120004W\n    test 284 toLatLonWGS84: WGS84\n    test 285 toOsgr: [G:TQ, E:32013, N:23971]\n    test 286 toOsgr: 532013.969, 123971.046\n    test 287 toOsgr: OSGB36\n    test 288 toLatLonOSGB36: 50.999426N, 000.118417W\n    test 289 toLatLonOSGB36: OSGB36\n    test 290 toLatLonWGS84 : 50.999995N, 000.120004W\n    test 291 toLatLonWGS84 : WGS84\n    test 292 toOsgr: [G:TQ, E:48853, N:24427]\n    test 293 toOsgr: 548853.602, 124427.985\n    test 294 toOsgr: OSGB36\n    test 295 toLatLonOSGB36: 50.999422N, 000.121618E\n    test 296 toLatLonOSGB36: OSGB36\n    test 297 toLatLonWGS84 : 50.999995N, 000.120004E\n    test 298 toLatLonWGS84 : WGS84\n\n    test 299 LatLon: 49.926244°N, 006.297934°W\n    test 300 datum: WGS84\n    test 301 datum: OSGB36\n    test 302 toOsgr: [G:SV, E:91645, N:11753]\n    test 303 datum: OSGB36\n# lazily imported pygeodesy.geodesicw by ellipsoids.py line 1074\n    test 304 LatLon: 49.926244°N, 006.297934°W\n    test 305 datum: WGS84\n    test 306 distanceTo: 0.0104\n\n    test 307 prec=-2: [G:SV, E:91600, N:11700]\n\n    test 308 toLatLon: 52.0N, 000.12W\n    test 309 toLatLon: 52.0N, 000.12W\n    test 310 toLatLon: 52.0N, 000.12W\n    test 311 toLatLon: 52.0N, 000.12W\n    test 312 toLatLon: 52.0N, 000.12W\n    test 313 toLatLon: 52.0N, 000.12W\n    test 314 toLatLon: 52.0N, 000.12W\n    test 315 toLatLon: 52.0N, 000.12W\n\n    testOSgr(pygeodesy.ellipsoidalExact, 25.08.28)\n    test 316 WGS84: 51.4778°N, 000.0016°W\n    test 317 OSGB36: 51.477284°N, 000.00002°E\n    test 318 WGS84: 51.4778°N, 000.0016°W\n    test 319 OSgr1: TG 51409 13177\n    test 320 OSgr1: [G:TG, E:51409, N:13177]\n    test 321 iteration: None\n    test 322 toLatLon1: 52°39′28.72″N, 001°42′57.79″E\n    test 323 toLatLon1: 52.657979°N, 001.716052°E\n    test 324 iteration: 4\n    test 325 toOsgr1: 651409.903,313177.270\n    test 326 toOsgr1: 651409.903,313177.270\n    test 327 toOsgr1: TG5140990313177270\n    test 328 toLatLon2: 52°39′27.25″N, 001°43′04.52″E\n    test 329 toLatLon2: 52.65757°N, 001.717922°E  FAILED, KNOWN, expected 52.657570°N, 001.717922°E\n    test 330 iteration: 4\n    test 331 toOsgr2: 651409,313177\n    test 332 toOsgr2: 651409,313177\n    test 333 toOsgr3: TG 51409 13177\n    test 334 toLatLon3: (52.65798, 1.71605, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 335 toOsgr4: TG 51409 13177\n    test 336 toLatLon4: (52.657570000, 1.717910000, Datum(name='OSGB36', ellipsoid=Ellipsoids.Airy1830, transform=Transforms.OSGB36))\n    test 337 toLatLon4: (52.657569999, 1.717910045, Datum(name='OSGB36', ellipsoid=Ellipsoids.Airy1830, transform=Transforms.OSGB36))\n    test 338 toLatLon4: (52.657978296, 1.716040366, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 339 toLatLon4: (52.657978295, 1.716040411, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n    test 340 toOsgr5: 0.001\n    test 341 toOsgr5: TG5140900013177000\n    test 342 toOsgr5: 651409.000,313177.000\n    test 343 toLatLon5: (52.657976595, 1.716038422, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84))\n\n    test 344 OSGR1: TG 48251 11932\n    test 345 OSGR1: [G:TG, E:48251, N:11932]\n    test 346 OSGR2: TG 51409 13177\n    test 347 OSGR2: [G:TG, E:51409, N:13177]\n    test 348 OSGR3: TG 51409 13177\n    test 349 OSGR3: [G:TG, E:51409, N:13177]\n    test 350 OSGR4: TG 51409 13177\n    test 351 OSGR4: [G:TG, E:51409, N:13177]\n    test 352 OSGR5: 651409,313177\n    test 353 OSGR5: TG51409001317700\n    test 354 OSGR5: 651409,313177\n    test 355 OSGR5: 651409.000000,313177.000000\n    test 356 OSGR5: 651409.00,313177.00\n    test 357 OSGR5: [OSGR:651409.000,313177.000]\n    test 358 OSGR5: [OSGR:651409,313177]\n    test 359 OSGR5: [OSGR:651409.000,313177.000]\n    test 360 OSGR5: [OSGR:651,313]\n    test 361 OSGR6: 651409.000,313177.000\n    test 362 OSGR6: 651409,313177\n    test 363 OSGR6: (651409, 313177)\n    test 364 OSGR6: 651409,313177\n    test 365 OSGR6: 651409,313177\n    test 366 OSGR6: (651409, 313177)\n    test 367 OSGR6: 651409 313177\n\n    test 368 issue: 38\n    test 369 toOsgr: [G:TL, E:29158, N:35174]\n    test 370 toOsgr: 529158.072, 235174.785\n    test 371 toOsgr: OSGB36\n    test 372 toLatLonOSGB36: 51°59′58.37″N, 000°07′06.14″W\n    test 373 toLatLonOSGB36: OSGB36\n    test 374 toLatLonWGS84 : 52°00′00.0″N, 000°07′12.0″W\n    test 375 toLatLonWGS84 : WGS84\n\n    test 376 Osgr: [G:TQ, E:32014, N:23971]\n    test 377 Osgr: 532014.0, 123971.0\n    test 378 Osgr: OSGB36\n    test 379 toLatLonOSGB36: 50.999425N, 000.118417W\n    test 380 toLatLonOSGB36: OSGB36\n    test 381 toLatLonWGS84 : 50.999995N, 000.120004W\n    test 382 toLatLonWGS84 : WGS84\n    test 383 parseOSGR: [G:TQ, E:32014, N:23971]\n    test 384 parseOSGR: 532014.0, 123971.0\n    test 385 parseOSGR: OSGB36\n    test 386 toLatLonOSGB36: 50.999425N, 000.118417W\n    test 387 toLatLonOSGB36: OSGB36\n    test 388 toLatLonWGS84: 50.999995N, 000.120004W\n    test 389 toLatLonWGS84: WGS84\n    test 390 toOsgr: [G:TQ, E:32013, N:23971]\n    test 391 toOsgr: 532013.969, 123971.046\n    test 392 toOsgr: OSGB36\n    test 393 toLatLonOSGB36: 50.999426N, 000.118417W\n    test 394 toLatLonOSGB36: OSGB36\n    test 395 toLatLonWGS84 : 50.999995N, 000.120004W\n    test 396 toLatLonWGS84 : WGS84\n    test 397 toOsgr: [G:TQ, E:48853, N:24427]\n    test 398 toOsgr: 548853.602, 124427.985\n    test 399 toOsgr: OSGB36\n    test 400 toLatLonOSGB36: 50.999422N, 000.121618E\n    test 401 toLatLonOSGB36: OSGB36\n    test 402 toLatLonWGS84 : 50.999995N, 000.120004E\n    test 403 toLatLonWGS84 : WGS84\n\n    test 404 LatLon: 49.926244°N, 006.297934°W\n    test 405 datum: WGS84\n    test 406 datum: OSGB36\n    test 407 toOsgr: [G:SV, E:91645, N:11753]\n    test 408 datum: OSGB36\n# lazily imported pygeodesy.geodesicx by ellipsoids.py line 1082\n    test 409 LatLon: 49.926244°N, 006.297934°W\n    test 410 datum: WGS84\n    test 411 distanceTo: 0.0104\n\n    test 412 prec=-2: [G:SV, E:91600, N:11700]\n\n    test 413 toLatLon: 52.0N, 000.12W\n    test 414 toLatLon: 52.0N, 000.12W\n    test 415 toLatLon: 52.0N, 000.12W\n    test 416 toLatLon: 52.0N, 000.12W\n    test 417 toLatLon: 52.0N, 000.12W\n    test 418 toLatLon: 52.0N, 000.12W\n    test 419 toLatLon: 52.0N, 000.12W\n    test 420 toLatLon: 52.0N, 000.12W\n\n    14 of 420 testOsgr.py tests (3.3%) FAILED, incl. 5 KNOWN plus 9 DeprecationWarnings (pygeodesy 26.3.26 Python 3.14.3 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 51.743 ms\nrunning /Library/Framewo....n3.14 -W default ~/PyGeodesy/test/testPoints.py\n./pygeodesy/ellipsoidalKarney.py:94: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return self.datum.ellipsoid.geodesic\n./pygeodesy/ellipsoidalKarney.py:139: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return fabs(_polygon(datum.ellipsoid.geodesic, points, True, False, wrap, polar))\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.EPS from .constants by testPoints.py line 12\n# lazily imported pygeodesy.R_M from .constants by testPoints.py line 12\n# lazily imported pygeodesy.R_MA from .constants by testPoints.py line 12\n# lazily imported pygeodesy.LatLon_ from .points by testPoints.py line 12\n# lazily imported pygeodesy.LatLon2psxy from .points by testPoints.py line 12\n# lazily imported pygeodesy.Numpy2LatLon from .points by testPoints.py line 12\n# lazily imported pygeodesy.Tuple2LatLon from .points by testPoints.py line 12\n# lazily imported pygeodesy.areaOf from .points by testPoints.py line 12\n# lazily imported pygeodesy.boundsOf from .points by testPoints.py line 12\n# lazily imported pygeodesy.centroidOf from .points by testPoints.py line 12\n# lazily imported pygeodesy.classname from .named by testPoints.py line 12\n# lazily imported pygeodesy.fstr from .streprs by testPoints.py line 12\n# lazily imported pygeodesy.isclockwise from .points by testPoints.py line 12\n# lazily imported pygeodesy.isconvex from .points by testPoints.py line 12\n# lazily imported pygeodesy.ispolar from .points by testPoints.py line 12\n# lazily imported pygeodesy.luneOf from .points by testPoints.py line 12\n# lazily imported pygeodesy.nearestOn5 from .points by testPoints.py line 12\n# lazily imported pygeodesy.perimeterOf from .points by testPoints.py line 12\n# lazily imported pygeodesy.quadOf from .points by testPoints.py line 12\n# lazily imported pygeodesy.R_KM from .constants by testRoutes.py line 13\n# lazily imported pygeodesy.ellipsoidalVincenty by testRoutes.py line 13\n# lazily imported pygeodesy.sphericalTrigonometry by testRoutes.py line 13\n# lazily imported pygeodesy.unstr from .streprs by testRoutes.py line 13\n\n    testing testPoints.py 23.12.03 (module pygeodesy.points 25.05.12) isLazy=3\n    test 1 sizeof(LatLon_.__dict__): 48\n# lazily imported pygeodesy.booleans by iters.py line 503\n    test 2 LatLon2psxy.ABC: True\n    test 3 LatLon2psxy.epsilon: 2.220446049250313e-16\n    test 4 LatLon2psxy.epsilon: 0.0\n    test 5 LatLon2psxy.len: 69\n    test 6 LatLon2psxy.iter: 69\n    test 7 LatLon2psxy.slice1: 11\n    test 8 LatLon2psxy.slice2: <class 'pygeodesy.points.LatLon2psxy'>\n    test 9 LatLon2psxy.slice3: (-0.701418, 52.220485, LatLon_(52.220485°N, 000.701418°W))\n    test 10 LatLon2psxy.str/repr: LatLon2psxy('[LatLon_(52.220489°N, 000.701206°W) ... ][69]', closed=False, radius=None, wrap=False)\n    test 11 LatLon2psxy.find LL: 10\n    test 12 LatLon2psxy.find LL: -1\n    test 13 LatLon2psxy.count: 1\n    test 14 LatLon2psxy.index: 10\n    test 15 LatLon2psxy.rfind: 10\n    test 16 LatLon2psxy.in: True\n    test 17 LatLon2psxy.count: 0\n    test 18 LatLon2psxy.find: -1\n    test 19 LatLon2psxy.rfind: -1\n    test 20 LatLon2psxy.not in: True\n    test 21 LatLon2psxy.find LL: 20\n    test 22 LatLon2psxy.find LL: -1\n    test 23 LatLon2psxy.count: 1\n    test 24 LatLon2psxy.index: 20\n    test 25 LatLon2psxy.rfind: 20\n    test 26 LatLon2psxy.in: True\n    test 27 LatLon2psxy.count: 0\n    test 28 LatLon2psxy.find: -1\n    test 29 LatLon2psxy.rfind: -1\n    test 30 LatLon2psxy.not in: True\n    test 31 LatLon2psxy.find LL: 30\n    test 32 LatLon2psxy.find LL: -1\n    test 33 LatLon2psxy.count: 1\n    test 34 LatLon2psxy.index: 30\n    test 35 LatLon2psxy.rfind: 30\n    test 36 LatLon2psxy.in: True\n    test 37 LatLon2psxy.count: 0\n    test 38 LatLon2psxy.find: -1\n    test 39 LatLon2psxy.rfind: -1\n    test 40 LatLon2psxy.not in: True\n    test 41 LatLon2psxy.find LL: 40\n    test 42 LatLon2psxy.find LL: -1\n    test 43 LatLon2psxy.count: 1\n    test 44 LatLon2psxy.index: 40\n    test 45 LatLon2psxy.rfind: 40\n    test 46 LatLon2psxy.in: True\n    test 47 LatLon2psxy.count: 0\n    test 48 LatLon2psxy.find: -1\n    test 49 LatLon2psxy.rfind: -1\n    test 50 LatLon2psxy.not in: True\n    test 51 LatLon2psxy.find LL: 50\n    test 52 LatLon2psxy.find LL: -1\n    test 53 LatLon2psxy.count: 1\n    test 54 LatLon2psxy.index: 50\n    test 55 LatLon2psxy.rfind: 50\n    test 56 LatLon2psxy.in: True\n    test 57 LatLon2psxy.count: 0\n    test 58 LatLon2psxy.find: -1\n    test 59 LatLon2psxy.rfind: -1\n    test 60 LatLon2psxy.not in: True\n    test 61 LatLon2psxy.find LL: 60\n    test 62 LatLon2psxy.find LL: -1\n    test 63 LatLon2psxy.count: 1\n    test 64 LatLon2psxy.index: 60\n    test 65 LatLon2psxy.rfind: 60\n    test 66 LatLon2psxy.in: True\n    test 67 LatLon2psxy.count: 0\n    test 68 LatLon2psxy.find: -1\n    test 69 LatLon2psxy.rfind: -1\n    test 70 LatLon2psxy.not in: True\n    test 71 LatLon2psxy.enumerate[0]: (-0.701206, 52.220489, LatLon_(52.220489°N, 000.701206°W))\n    test 72 LatLon2psxy.enumerate[1]: (-0.705456, 52.221916, LatLon_(52.221916°N, 000.705456°W))\n    test 73 LatLon2psxy.enumerate[2]: (-0.71, 52.225944, LatLon_(52.225944°N, 000.71°W))\n    test 74 LatLon2psxy.enumerate[3]: (-0.71446, 52.232448, LatLon_(52.232448°N, 000.71446°W))\n    test 75 LatLon2psxy.enumerate[4]: (-0.71486, 52.233013, LatLon_(52.233013°N, 000.71486°W))\n    test 76 LatLon2psxy.enumerate[5]: (-0.714348, 52.234375, LatLon_(52.234375°N, 000.714348°W))\n    test 77 LatLon2psxy.enumerate[6]: (-0.713572, 52.235607, LatLon_(52.235607°N, 000.713572°W))\n    test 78 LatLon2psxy.enumerate[7]: (-0.71233, 52.237495, LatLon_(52.237495°N, 000.71233°W))\n    test 79 LatLon2psxy.enumerate[8]: (-0.710784, 52.239315, LatLon_(52.239315°N, 000.710784°W))\n    test 80 LatLon2psxy.enumerate[9]: (-0.708684, 52.240627, LatLon_(52.240627°N, 000.708684°W))\n    test 81 LatLon2psxy.enumerate[10]: (-0.707042, 52.240745, LatLon_(52.240745°N, 000.707042°W))\n    test 82 LatLon2psxy.enumerate[11]: (-0.704945, 52.240863, LatLon_(52.240863°N, 000.704945°W))\n    test 83 LatLon2psxy.enumerate[*]: 11\n    test 84 LatLon2psxy.reversed[11]: (-0.704945, 52.240863, LatLon_(52.240863°N, 000.704945°W))\n    test 85 LatLon2psxy.reversed[10]: (-0.707042, 52.240745, LatLon_(52.240745°N, 000.707042°W))\n    test 86 LatLon2psxy.reversed[9]: (-0.708684, 52.240627, LatLon_(52.240627°N, 000.708684°W))\n    test 87 LatLon2psxy.reversed[8]: (-0.710784, 52.239315, LatLon_(52.239315°N, 000.710784°W))\n    test 88 LatLon2psxy.reversed[7]: (-0.71233, 52.237495, LatLon_(52.237495°N, 000.71233°W))\n    test 89 LatLon2psxy.reversed[6]: (-0.713572, 52.235607, LatLon_(52.235607°N, 000.713572°W))\n    test 90 LatLon2psxy.reversed[5]: (-0.714348, 52.234375, LatLon_(52.234375°N, 000.714348°W))\n    test 91 LatLon2psxy.reversed[4]: (-0.71486, 52.233013, LatLon_(52.233013°N, 000.71486°W))\n    test 92 LatLon2psxy.reversed[3]: (-0.71446, 52.232448, LatLon_(52.232448°N, 000.71446°W))\n    test 93 LatLon2psxy.reversed[2]: (-0.71, 52.225944, LatLon_(52.225944°N, 000.71°W))\n    test 94 LatLon2psxy.reversed[1]: (-0.705456, 52.221916, LatLon_(52.221916°N, 000.705456°W))\n    test 95 LatLon2psxy.reversed[0]: (-0.701206, 52.220489, LatLon_(52.220489°N, 000.701206°W))\n    test 96 LatLon2psxy.findall[0]: (0,)\n    test 97 LatLon2psxy.findall[1]: (1,)\n    test 98 LatLon2psxy.findall[2]: (2,)\n    test 99 LatLon2psxy.findall[3]: (3,)\n    test 100 LatLon2psxy.findall[4]: (4,)\n    test 101 LatLon2psxy.findall[5]: (5,)\n    test 102 LatLon2psxy.findall[6]: (6,)\n    test 103 LatLon2psxy.findall[7]: (7,)\n    test 104 LatLon2psxy.findall[8]: (8,)\n    test 105 LatLon2psxy.findall[9]: (9,)\n    test 106 LatLon2psxy.findall[10]: (10,)\n    test 107 LatLon2psxy.findall[11]: (11,)\n    test 108 LatLon2psxy.findall[*]: 11\n    test 109 LatLon2psxy.isNumpy2: False\n    test 110 LatLon2psxy.isPoints2: True\n    test 111 LatLon2psxy.isTuple2: False\n    test 112 no: numpy\n    test 113 Tuple2LatLon.ABC: True\n    test 114 Tuple2LatLon.epsilon: 2.220446049250313e-16\n    test 115 Tuple2LatLon.epsilon: 0.0\n    test 116 Tuple2LatLon.len: 69\n    test 117 Tuple2LatLon.iter: 69\n    test 118 Tuple2LatLon.slice1: 11\n    test 119 Tuple2LatLon.slice2: <class 'pygeodesy.points.Tuple2LatLon'>\n    test 120 Tuple2LatLon.slice3: 52.220485°N, 000.701418°W\n    test 121 Tuple2LatLon.str/repr: Tuple2LatLon('[(0, -0.701206, 0, 52.220489) ... ][69]', ilat=3, ilon=1)\n    test 122 Tuple2LatLon.subset: <class 'list'>\n    test 123 Tuple2LatLon.count: 1\n    test 124 Tuple2LatLon.index: 10\n    test 125 Tuple2LatLon.rfind: 10\n    test 126 Tuple2LatLon.in: True\n    test 127 Tuple2LatLon.count: 0\n    test 128 Tuple2LatLon.find: -1\n    test 129 Tuple2LatLon.rfind: -1\n    test 130 Tuple2LatLon.not in: True\n    test 131 Tuple2LatLon.count: 1\n    test 132 Tuple2LatLon.index: 20\n    test 133 Tuple2LatLon.rfind: 20\n    test 134 Tuple2LatLon.in: True\n    test 135 Tuple2LatLon.count: 0\n    test 136 Tuple2LatLon.find: -1\n    test 137 Tuple2LatLon.rfind: -1\n    test 138 Tuple2LatLon.not in: True\n    test 139 Tuple2LatLon.count: 1\n    test 140 Tuple2LatLon.index: 30\n    test 141 Tuple2LatLon.rfind: 30\n    test 142 Tuple2LatLon.in: True\n    test 143 Tuple2LatLon.count: 0\n    test 144 Tuple2LatLon.find: -1\n    test 145 Tuple2LatLon.rfind: -1\n    test 146 Tuple2LatLon.not in: True\n    test 147 Tuple2LatLon.count: 1\n    test 148 Tuple2LatLon.index: 40\n    test 149 Tuple2LatLon.rfind: 40\n    test 150 Tuple2LatLon.in: True\n    test 151 Tuple2LatLon.count: 0\n    test 152 Tuple2LatLon.find: -1\n    test 153 Tuple2LatLon.rfind: -1\n    test 154 Tuple2LatLon.not in: True\n    test 155 Tuple2LatLon.count: 1\n    test 156 Tuple2LatLon.index: 50\n    test 157 Tuple2LatLon.rfind: 50\n    test 158 Tuple2LatLon.in: True\n    test 159 Tuple2LatLon.count: 0\n    test 160 Tuple2LatLon.find: -1\n    test 161 Tuple2LatLon.rfind: -1\n    test 162 Tuple2LatLon.not in: True\n    test 163 Tuple2LatLon.count: 1\n    test 164 Tuple2LatLon.index: 60\n    test 165 Tuple2LatLon.rfind: 60\n    test 166 Tuple2LatLon.in: True\n    test 167 Tuple2LatLon.count: 0\n    test 168 Tuple2LatLon.find: -1\n    test 169 Tuple2LatLon.rfind: -1\n    test 170 Tuple2LatLon.not in: True\n    test 171 Tuple2LatLon.enumerate[0]: 52.220489°N, 000.701206°W\n    test 172 Tuple2LatLon.enumerate[1]: 52.221916°N, 000.705456°W\n    test 173 Tuple2LatLon.enumerate[2]: 52.225944°N, 000.71°W\n    test 174 Tuple2LatLon.enumerate[3]: 52.232448°N, 000.71446°W\n    test 175 Tuple2LatLon.enumerate[4]: 52.233013°N, 000.71486°W\n    test 176 Tuple2LatLon.enumerate[5]: 52.234375°N, 000.714348°W\n    test 177 Tuple2LatLon.enumerate[6]: 52.235607°N, 000.713572°W\n    test 178 Tuple2LatLon.enumerate[7]: 52.237495°N, 000.71233°W\n    test 179 Tuple2LatLon.enumerate[8]: 52.239315°N, 000.710784°W\n    test 180 Tuple2LatLon.enumerate[9]: 52.240627°N, 000.708684°W\n    test 181 Tuple2LatLon.enumerate[10]: 52.240745°N, 000.707042°W\n    test 182 Tuple2LatLon.enumerate[11]: 52.240863°N, 000.704945°W\n    test 183 Tuple2LatLon.enumerate[*]: 11\n    test 184 Tuple2LatLon.reversed[11]: 52.240863°N, 000.704945°W\n    test 185 Tuple2LatLon.reversed[10]: 52.240745°N, 000.707042°W\n    test 186 Tuple2LatLon.reversed[9]: 52.240627°N, 000.708684°W\n    test 187 Tuple2LatLon.reversed[8]: 52.239315°N, 000.710784°W\n    test 188 Tuple2LatLon.reversed[7]: 52.237495°N, 000.71233°W\n    test 189 Tuple2LatLon.reversed[6]: 52.235607°N, 000.713572°W\n    test 190 Tuple2LatLon.reversed[5]: 52.234375°N, 000.714348°W\n    test 191 Tuple2LatLon.reversed[4]: 52.233013°N, 000.71486°W\n    test 192 Tuple2LatLon.reversed[3]: 52.232448°N, 000.71446°W\n    test 193 Tuple2LatLon.reversed[2]: 52.225944°N, 000.71°W\n    test 194 Tuple2LatLon.reversed[1]: 52.221916°N, 000.705456°W\n    test 195 Tuple2LatLon.reversed[0]: 52.220489°N, 000.701206°W\n    test 196 Tuple2LatLon.findall[0]: (0,)\n    test 197 Tuple2LatLon.findall[1]: (1,)\n    test 198 Tuple2LatLon.findall[2]: (2,)\n    test 199 Tuple2LatLon.findall[3]: (3,)\n    test 200 Tuple2LatLon.findall[4]: (4,)\n    test 201 Tuple2LatLon.findall[5]: (5,)\n    test 202 Tuple2LatLon.findall[6]: (6,)\n    test 203 Tuple2LatLon.findall[7]: (7,)\n    test 204 Tuple2LatLon.findall[8]: (8,)\n    test 205 Tuple2LatLon.findall[9]: (9,)\n    test 206 Tuple2LatLon.findall[10]: (10,)\n    test 207 Tuple2LatLon.findall[11]: (11,)\n    test 208 Tuple2LatLon.findall[*]: 11\n    test 209 Tuple2LatLon.isNumpy2: False\n    test 210 Tuple2LatLon.isPoints2: False\n    test 211 Tuple2LatLon.isTuple2: True\n# lazily imported pygeodesy.ellipsoidalExact by testPoints.py line 276\n# lazily imported pygeodesy.ellipsoidalKarney by testPoints.py line 276\n# lazily imported pygeodesy.ellipsoidalNvector by testPoints.py line 276\n# lazily imported pygeodesy.Ellipsoids from .ellipsoids by testPoints.py line 276\n# lazily imported pygeodesy.sphericalNvector by testPoints.py line 276\n\n    testing(pygeodesy.points, 25.05.12, LatLon=<class 'pygeodesy.points.LatLon_'>)\n# lazily imported pygeodesy.angles by units.py line 633\n    test 212 areaOf: 8.811228e+09\n    test 213 centroidOf: 45.5, 1.5\n    test 214 perimeterOf: 2.673633e+05\n    test 215 isclockwise: False\n    test 216 isconvex: True\n# imported pygeodesy.formy into latlonBase.py line 756\n    test 217 ispolar: False\n    test 218 areaOf: 7.086883e+09\n    test 219 perimeterOf: 2.687460e+05\n    test 220 centroidOf: 0.333333, 0.333333\n    test 221 isclockwise: True\n    test 222 isconvex: True\n    test 223 ispolar: False\n    test 224 areaOf: 2.827856e+10\n    test 225 perimeterOf: 4.717039e+05\n    test 226 centroidOf: 1.0, 1.0\n    test 227 isclockwise: False\n    test 228 isconvex: True\n    test 229 ispolar: False\n    test 230 areaOf: 2.747297e+13\n    test 231 perimeterOf: 2.332643e+07\n    test 232 centroidOf: 52.113, 102.123\n    test 233 isclockwise: False\n    test 234 isconvex: False\n    test 235 ispolar: True\n    test 236 areaOf: 8.482014e+10\n    test 237 perimeterOf: 1.334104e+06\n    test 238 centroidOf: 1.167, 1.667\n    test 239 isclockwise: False\n    test 240 isconvex: False\n    test 241 ispolar: False\n    test 242 areaOf: 5.151974e+13\n    test 243 perimeterOf: 2.638608e+07\n    test 244 centroidOf: -19.444, -133.333\n    test 245 isclockwise: True\n    test 246 isconvex: True\n    test 247 ispolar: False\n    test 248 areaOf: 1.751694e+12  FAILED, KNOWN, expected 4.469277e+12\n    test 249 perimeterOf: 1.562029e+07\n    test 250 centroidOf: -72.926, 46.47\n    test 251 isclockwise: True\n    test 252 isconvex: False\n    test 253 ispolar: True\n    test 254 points2: 18\n    test 255 nearestOn5: (-77.455114, -16.67063, 4.134666, 307.988253, 0)\n    test 256 areaCO: 2.83192062868e+11  FAILED, KNOWN, expected 2.69601367661e+11\n    test 257 isclockwise: True\n    test 258 perimeterCO: 2098630.956053  FAILED, KNOWN, expected 2099854.381923\n    test 259 boundsOf: (-77.9, -163.0, -63.1, 172.0)\n    test 260 quadOf: 77.9°S, 163.0°W, 63.1°S, 163.0°W, 63.1°S, 172.0°E, 77.9°S, 172.0°E\n    test 261 intermediateTo: 51.368°N, 000.677°E, 'intermediateTo'\n    test 262 intermediateTo: True\n    test 263 intermediateTo: 51.368°N, 000.677°E\n    test 264 intermediateTo: 52.205°N, 000.119°E\n    test 265 intermediateTo: 48.857°N, 002.351°E\n    test 266 _isLatLon_: _Array2LatLon('[ ... ][1]', ilat=0, ilon=1)\n    test 267 latlon: (-66.6, -88.0)\n    test 268 philam: (-1.162389, -1.53589)\n    test 269 toStr: 66.6°S, 088.0°W\n    test 270 __ne__: False\n    test 271 isequalTo: True\n    test 272 isequalTo: True\n    test 273 latlonheight: (-66.6, -88.0, 0)\n    test 274 philamheight: (-1.162389, -1.53589, 0)\n    test 275 _N_vector: (0.01386, -0.39691, -0.91775)\n    test 276 toNvector: (0.01386, -0.39691, -0.91775, 0)\n    test 277 toNvector: (0.01386, -0.396906, -0.917755, 0)\n    test 278 classof: 66.6°S, 088.0°W\n    test 279 others: 66.6°S, 088.0°W\n    test 280 copy(<class 'type'>): (<class 'pygeodesy.points.LatLon_'>, True)\n    test 281 LatLon_.copy(): (<class 'pygeodesy.points.LatLon_'>, True)\n\n    testing(pygeodesy.points, 25.05.12, LatLon=<class 'pygeodesy.sphericalNvector.LatLon'>)\n    test 282 areaOf: 8.811228e+09\n    test 283 centroidOf: 45.5, 1.5\n    test 284 perimeterOf: 2.673633e+05\n    test 285 isclockwise: False\n    test 286 isconvex: True\n    test 287 ispolar: False\n    test 288 areaOf: 7.086883e+09\n    test 289 perimeterOf: 2.687460e+05\n    test 290 centroidOf: 0.333333, 0.333333\n    test 291 isclockwise: True\n    test 292 isconvex: True\n    test 293 ispolar: False\n    test 294 areaOf: 2.827856e+10\n    test 295 perimeterOf: 4.717039e+05\n    test 296 centroidOf: 1.0, 1.0\n    test 297 isclockwise: False\n    test 298 isconvex: True\n    test 299 ispolar: False\n    test 300 areaOf: 2.747297e+13\n    test 301 perimeterOf: 2.332643e+07\n    test 302 centroidOf: 52.113, 102.123\n    test 303 isclockwise: False\n    test 304 isconvex: False\n    test 305 ispolar: True\n    test 306 areaOf: 8.482014e+10\n    test 307 perimeterOf: 1.334104e+06\n    test 308 centroidOf: 1.167, 1.667\n    test 309 isclockwise: False\n    test 310 isconvex: False\n    test 311 ispolar: False\n    test 312 areaOf: 5.151974e+13\n    test 313 perimeterOf: 2.638608e+07\n    test 314 centroidOf: -19.444, -133.333\n    test 315 isclockwise: True\n    test 316 isconvex: True\n    test 317 ispolar: False\n    test 318 areaOf: 1.751694e+12  FAILED, KNOWN, expected 4.469277e+12\n    test 319 perimeterOf: 1.562029e+07\n    test 320 centroidOf: -72.926, 46.47\n    test 321 isclockwise: True\n    test 322 isconvex: False\n    test 323 ispolar: True\n    test 324 points2: 18\n    test 325 nearestOn5: (-77.455114, -16.67063, 4.134666, 307.988253, 0)\n    test 326 areaCO: 2.83192062868e+11  FAILED, KNOWN, expected 2.69601367661e+11\n    test 327 isclockwise: True\n    test 328 perimeterCO: 2098630.956053  FAILED, KNOWN, expected 2099854.381923\n    test 329 latlon: (-66.6, -88.0)\n    test 330 philam: (-1.162389, -1.53589)\n    test 331 latlonheight: (-66.6, -88.0, 0)\n    test 332 philamheight: (-1.162389, -1.53589, 0)\n    test 333 _N_vector: (0.01386, -0.39691, -0.91775)\n    test 334 toNvector: (0.01386, -0.39691, -0.91775)\n    test 335 toNvector: (0.01386, -0.396906, -0.917755, 0)\n    test 336 classof: 66.6°S, 088.0°W\n    test 337 others: 66.6°S, 088.0°W\n    test 338 copy(<class 'type'>): (<class 'pygeodesy.sphericalNvector.LatLon'>, True)\n    test 339 LatLon.copy(): (<class 'pygeodesy.sphericalNvector.LatLon'>, True)\n\n    testing(pygeodesy.points, 25.05.12, LatLon=<class 'pygeodesy.sphericalTrigonometry.LatLon'>)\n    test 340 areaOf: 8.811228e+09\n    test 341 centroidOf: 45.5, 1.5\n    test 342 perimeterOf: 2.673633e+05\n    test 343 isclockwise: False\n    test 344 isconvex: True\n    test 345 ispolar: False\n    test 346 areaOf: 7.086883e+09\n    test 347 perimeterOf: 2.687460e+05\n    test 348 centroidOf: 0.333333, 0.333333\n    test 349 isclockwise: True\n    test 350 isconvex: True\n    test 351 ispolar: False\n    test 352 areaOf: 2.827856e+10\n    test 353 perimeterOf: 4.717039e+05\n    test 354 centroidOf: 1.0, 1.0\n    test 355 isclockwise: False\n    test 356 isconvex: True\n    test 357 ispolar: False\n    test 358 areaOf: 2.747297e+13\n    test 359 perimeterOf: 2.332643e+07\n    test 360 centroidOf: 52.113, 102.123\n    test 361 isclockwise: False\n    test 362 isconvex: False\n    test 363 ispolar: True\n    test 364 areaOf: 8.482014e+10\n    test 365 perimeterOf: 1.334104e+06\n    test 366 centroidOf: 1.167, 1.667\n    test 367 isclockwise: False\n    test 368 isconvex: False\n    test 369 ispolar: False\n    test 370 areaOf: 5.151974e+13\n    test 371 perimeterOf: 2.638608e+07\n    test 372 centroidOf: -19.444, -133.333\n    test 373 isclockwise: True\n    test 374 isconvex: True\n    test 375 ispolar: False\n    test 376 areaOf: 1.751694e+12  FAILED, KNOWN, expected 4.469277e+12\n    test 377 perimeterOf: 1.562029e+07\n    test 378 centroidOf: -72.926, 46.47\n    test 379 isclockwise: True\n    test 380 isconvex: False\n    test 381 ispolar: True\n    test 382 points2: 18\n    test 383 nearestOn5: (-77.455114, -16.67063, 4.134666, 307.988253, 0)\n    test 384 areaCO: 2.83192062868e+11  FAILED, KNOWN, expected 2.69601367661e+11\n    test 385 isclockwise: True\n    test 386 perimeterCO: 2098630.956053  FAILED, KNOWN, expected 2099854.381923\n    test 387 latlon: (-66.6, -88.0)\n    test 388 philam: (-1.162389, -1.53589)\n    test 389 latlonheight: (-66.6, -88.0, 0)\n    test 390 philamheight: (-1.162389, -1.53589, 0)\n    test 391 _N_vector: (0.01386, -0.39691, -0.91775)\n    test 392 toNvector: (0.01386, -0.39691, -0.91775)\n    test 393 toNvector: (0.01386, -0.396906, -0.917755, 0)\n    test 394 classof: 66.6°S, 088.0°W\n    test 395 others: 66.6°S, 088.0°W\n    test 396 copy(<class 'type'>): (<class 'pygeodesy.sphericalTrigonometry.LatLon'>, True)\n    test 397 LatLon.copy(): (<class 'pygeodesy.sphericalTrigonometry.LatLon'>, True)\n\n    testing(pygeodesy.points, 25.05.12, LatLon=<class 'pygeodesy.ellipsoidalNvector.LatLon'>)\n    test 398 areaOf: 8.811228e+09\n    test 399 centroidOf: 45.5, 1.5\n    test 400 perimeterOf: 2.673633e+05\n    test 401 isclockwise: False\n    test 402 isconvex: True\n    test 403 ispolar: False\n    test 404 areaOf: 7.086883e+09\n    test 405 perimeterOf: 2.687460e+05\n    test 406 centroidOf: 0.333333, 0.333333\n    test 407 isclockwise: True\n    test 408 isconvex: True\n    test 409 ispolar: False\n    test 410 areaOf: 2.827856e+10\n    test 411 perimeterOf: 4.717039e+05\n    test 412 centroidOf: 1.0, 1.0\n    test 413 isclockwise: False\n    test 414 isconvex: True\n    test 415 ispolar: False\n    test 416 areaOf: 2.747297e+13\n    test 417 perimeterOf: 2.332643e+07\n    test 418 centroidOf: 52.113, 102.123\n    test 419 isclockwise: False\n    test 420 isconvex: False\n    test 421 ispolar: True\n    test 422 areaOf: 8.482014e+10\n    test 423 perimeterOf: 1.334104e+06\n    test 424 centroidOf: 1.167, 1.667\n    test 425 isclockwise: False\n    test 426 isconvex: False\n    test 427 ispolar: False\n    test 428 areaOf: 5.151974e+13\n    test 429 perimeterOf: 2.638608e+07\n    test 430 centroidOf: -19.444, -133.333\n    test 431 isclockwise: True\n    test 432 isconvex: True\n    test 433 ispolar: False\n    test 434 areaOf: 1.751694e+12  FAILED, KNOWN, expected 4.469277e+12\n    test 435 perimeterOf: 1.562029e+07\n    test 436 centroidOf: -72.926, 46.47\n    test 437 isclockwise: True\n    test 438 isconvex: False\n    test 439 ispolar: True\n    test 440 points2: 18\n    test 441 nearestOn5: (-77.455114, -16.67063, 4.134666, 307.988253, 0)\n    test 442 areaCO: 2.83192062868e+11  FAILED, KNOWN, expected 2.69601367661e+11\n    test 443 isclockwise: True\n    test 444 perimeterCO: 2098630.956053  FAILED, KNOWN, expected 2099854.381923\n    test 445 latlon: (-66.6, -88.0)\n    test 446 philam: (-1.162389, -1.53589)\n    test 447 latlonheight: (-66.6, -88.0, 0)\n    test 448 philamheight: (-1.162389, -1.53589, 0)\n    test 449 _N_vector: (0.01386, -0.39691, -0.91775)\n    test 450 toNvector: (0.01386, -0.39691, -0.91775)\n    test 451 toNvector: (0.01386, -0.396906, -0.917755, 0)\n    test 452 classof: 66.6°S, 088.0°W\n    test 453 others: 66.6°S, 088.0°W\n    test 454 copy(<class 'type'>): (<class 'pygeodesy.ellipsoidalNvector.LatLon'>, True)\n    test 455 LatLon.copy(): (<class 'pygeodesy.ellipsoidalNvector.LatLon'>, True)\n\n    testing(pygeodesy.points, 25.05.12, LatLon=<class 'pygeodesy.ellipsoidalVincenty.LatLon'>)\n    test 456 areaOf: 8.811228e+09\n    test 457 centroidOf: 45.5, 1.5\n    test 458 perimeterOf: 2.673633e+05\n    test 459 isclockwise: False\n    test 460 isconvex: True\n    test 461 ispolar: False\n    test 462 areaOf: 7.086883e+09\n    test 463 perimeterOf: 2.687460e+05\n    test 464 centroidOf: 0.333333, 0.333333\n    test 465 isclockwise: True\n    test 466 isconvex: True\n    test 467 ispolar: False\n    test 468 areaOf: 2.827856e+10\n    test 469 perimeterOf: 4.717039e+05\n    test 470 centroidOf: 1.0, 1.0\n    test 471 isclockwise: False\n    test 472 isconvex: True\n    test 473 ispolar: False\n    test 474 areaOf: 2.747297e+13\n    test 475 perimeterOf: 2.332643e+07\n    test 476 centroidOf: 52.113, 102.123\n    test 477 isclockwise: False\n    test 478 isconvex: False\n    test 479 ispolar: True\n    test 480 areaOf: 8.482014e+10\n    test 481 perimeterOf: 1.334104e+06\n    test 482 centroidOf: 1.167, 1.667\n    test 483 isclockwise: False\n    test 484 isconvex: False\n    test 485 ispolar: False\n    test 486 areaOf: 5.151974e+13\n    test 487 perimeterOf: 2.638608e+07\n    test 488 centroidOf: -19.444, -133.333\n    test 489 isclockwise: True\n    test 490 isconvex: True\n    test 491 ispolar: False\n    test 492 areaOf: 1.751694e+12  FAILED, KNOWN, expected 4.469277e+12\n    test 493 perimeterOf: 1.562029e+07\n    test 494 centroidOf: -72.926, 46.47\n    test 495 isclockwise: True\n    test 496 isconvex: False\n    test 497 ispolar: True\n    test 498 points2: 18\n    test 499 nearestOn5: (-77.455114, -16.67063, 4.134666, 307.988253, 0)\n    test 500 areaCO: 2.83192062868e+11  FAILED, KNOWN, expected 2.69601367661e+11\n    test 501 isclockwise: True\n    test 502 perimeterCO: 2098630.956053  FAILED, KNOWN, expected 2099854.381923\n    test 503 latlon: (-66.6, -88.0)\n    test 504 philam: (-1.162389, -1.53589)\n    test 505 latlonheight: (-66.6, -88.0, 0)\n    test 506 philamheight: (-1.162389, -1.53589, 0)\n    test 507 _N_vector: (0.01386, -0.39691, -0.91775)\n    test 508 toNvector: (0.01386, -0.39691, -0.91775, 0)\n    test 509 toNvector: (0.01386, -0.396906, -0.917755, 0)\n    test 510 classof: 66.6°S, 088.0°W\n    test 511 others: 66.6°S, 088.0°W\n    test 512 copy(<class 'type'>): (<class 'pygeodesy.ellipsoidalVincenty.LatLon'>, True)\n    test 513 LatLon.copy(): (<class 'pygeodesy.ellipsoidalVincenty.LatLon'>, True)\n\n    testing(pygeodesy.points, 25.05.12, LatLon=<class 'pygeodesy.ellipsoidalKarney.LatLon'>)\n    test 514 areaOf: 8.811228e+09\n    test 515 centroidOf: 45.5, 1.5\n    test 516 perimeterOf: 2.673633e+05\n    test 517 isclockwise: False\n    test 518 isconvex: True\n# lazily imported pygeodesy.geodesicw by ellipsoids.py line 1074\n    test 519 ispolar: False\n    test 520 areaOf: 7.086883e+09\n    test 521 perimeterOf: 2.687460e+05\n    test 522 centroidOf: 0.333333, 0.333333\n    test 523 isclockwise: True\n    test 524 isconvex: True\n    test 525 ispolar: False\n    test 526 areaOf: 2.827856e+10\n    test 527 perimeterOf: 4.717039e+05\n    test 528 centroidOf: 1.0, 1.0\n    test 529 isclockwise: False\n    test 530 isconvex: True\n    test 531 ispolar: False\n    test 532 areaOf: 2.747297e+13\n    test 533 perimeterOf: 2.332643e+07\n    test 534 centroidOf: 52.113, 102.123\n    test 535 isclockwise: False\n    test 536 isconvex: False\n    test 537 ispolar: True\n    test 538 areaOf: 8.482014e+10\n    test 539 perimeterOf: 1.334104e+06\n    test 540 centroidOf: 1.167, 1.667\n    test 541 isclockwise: False\n    test 542 isconvex: False\n    test 543 ispolar: False\n    test 544 areaOf: 5.151974e+13\n    test 545 perimeterOf: 2.638608e+07\n    test 546 centroidOf: -19.444, -133.333\n    test 547 isclockwise: True\n    test 548 isconvex: True\n    test 549 ispolar: False\n    test 550 areaOf: 1.751694e+12  FAILED, KNOWN, expected 4.469277e+12\n    test 551 perimeterOf: 1.562029e+07\n    test 552 centroidOf: -72.926, 46.47\n    test 553 isclockwise: True\n    test 554 isconvex: False\n    test 555 ispolar: True\n    test 556 points2: 18\n    test 557 nearestOn5: (-77.455114, -16.67063, 4.134666, 307.988253, 0)\n    test 558 areaCO: 2.83192062868e+11  FAILED, KNOWN, expected 2.69601367661e+11\n    test 559 isclockwise: True\n    test 560 perimeterCO: 2098630.956053  FAILED, KNOWN, expected 2099854.381923\n    test 561 latlon: (-66.6, -88.0)\n    test 562 philam: (-1.162389, -1.53589)\n    test 563 latlonheight: (-66.6, -88.0, 0)\n    test 564 philamheight: (-1.162389, -1.53589, 0)\n    test 565 _N_vector: (0.01386, -0.39691, -0.91775)\n    test 566 toNvector: (0.01386, -0.39691, -0.91775, 0)\n    test 567 toNvector: (0.01386, -0.396906, -0.917755, 0)\n    test 568 classof: 66.6°S, 088.0°W\n    test 569 others: 66.6°S, 088.0°W\n    test 570 copy(<class 'type'>): (<class 'pygeodesy.ellipsoidalKarney.LatLon'>, True)\n    test 571 LatLon.copy(): (<class 'pygeodesy.ellipsoidalKarney.LatLon'>, True)\n\n    testing(pygeodesy.points, 25.05.12, LatLon=<class 'pygeodesy.ellipsoidalExact.LatLon'>)\n    test 572 areaOf: 8.811228e+09\n    test 573 centroidOf: 45.5, 1.5\n    test 574 perimeterOf: 2.673633e+05\n    test 575 isclockwise: False\n    test 576 isconvex: True\n# lazily imported pygeodesy.geodesicx by ellipsoids.py line 1082\n# lazily imported pygeodesy.elliptic by gx.py line 421\n    test 577 ispolar: False\n    test 578 areaOf: 7.086883e+09\n    test 579 perimeterOf: 2.687460e+05\n    test 580 centroidOf: 0.333333, 0.333333\n    test 581 isclockwise: True\n    test 582 isconvex: True\n    test 583 ispolar: False\n    test 584 areaOf: 2.827856e+10\n    test 585 perimeterOf: 4.717039e+05\n    test 586 centroidOf: 1.0, 1.0\n    test 587 isclockwise: False\n    test 588 isconvex: True\n    test 589 ispolar: False\n    test 590 areaOf: 2.747297e+13\n    test 591 perimeterOf: 2.332643e+07\n    test 592 centroidOf: 52.113, 102.123\n    test 593 isclockwise: False\n    test 594 isconvex: False\n    test 595 ispolar: True\n    test 596 areaOf: 8.482014e+10\n    test 597 perimeterOf: 1.334104e+06\n    test 598 centroidOf: 1.167, 1.667\n    test 599 isclockwise: False\n    test 600 isconvex: False\n    test 601 ispolar: False\n    test 602 areaOf: 5.151974e+13\n    test 603 perimeterOf: 2.638608e+07\n    test 604 centroidOf: -19.444, -133.333\n    test 605 isclockwise: True\n    test 606 isconvex: True\n    test 607 ispolar: False\n    test 608 areaOf: 1.751694e+12  FAILED, KNOWN, expected 4.469277e+12\n    test 609 perimeterOf: 1.562029e+07\n    test 610 centroidOf: -72.926, 46.47\n    test 611 isclockwise: True\n    test 612 isconvex: False\n    test 613 ispolar: True\n    test 614 points2: 18\n    test 615 nearestOn5: (-77.455114, -16.67063, 4.134666, 307.988253, 0)\n    test 616 areaCO: 2.83192062868e+11  FAILED, KNOWN, expected 2.69601367661e+11\n    test 617 isclockwise: True\n    test 618 perimeterCO: 2098630.956053  FAILED, KNOWN, expected 2098430.887891\n    test 619 latlon: (-66.6, -88.0)\n    test 620 philam: (-1.162389, -1.53589)\n    test 621 latlonheight: (-66.6, -88.0, 0)\n    test 622 philamheight: (-1.162389, -1.53589, 0)\n    test 623 _N_vector: (0.01386, -0.39691, -0.91775)\n    test 624 toNvector: (0.01386, -0.39691, -0.91775, 0)\n    test 625 toNvector: (0.01386, -0.396906, -0.917755, 0)\n    test 626 classof: 66.6°S, 088.0°W\n    test 627 others: 66.6°S, 088.0°W\n    test 628 copy(<class 'type'>): (<class 'pygeodesy.ellipsoidalExact.LatLon'>, True)\n    test 629 LatLon.copy(): (<class 'pygeodesy.ellipsoidalExact.LatLon'>, True)\n\n    testArea(pygeodesy.ellipsoidalKarney, 25.05.27)\n    test 630 luneOf: 1.27516405431022e+14\n\n    testArea(pygeodesy.ellipsoidalExact, 25.08.28)\n    test 631 luneOf: 1.27516405431022e+14\n\n    67 of 631 testPoints.py tests (10.6%) FAILED, incl. 21 KNOWN plus 46 DeprecationWarnings (pygeodesy 26.3.26 Python 3.14.3 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 821.779 ms\nrunning /Library/Framewo....n3.14 -W default ~/PyGeodesy/test/testProps.py\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.Property from .props by testProps.py line 11\n# lazily imported pygeodesy.Property_RO from .props by testProps.py line 11\n# lazily imported pygeodesy.Ellipsoid from .ellipsoids by testProps.py line 149\n# lazily imported pygeodesy.R_M from .constants by testProps.py line 149\n\n    testing testProps.py 23.03.27 isLazy=3\n\n    test<class 'pygeodesy.named._NamedBase'>(pygeodesy.props, 25.12.31)\n    test 1 P1: 1\n    test 2 p1: 2\n    test 3 P2: 1\n    test 4 p2: 3\n    test 5 q1: 1\n    test 6 q2: 2\n    test 7 q3: True\n    test 8 u1: None\n    test 9 u2: U\n    test 10 P3: 4\n    test 11 p3: 5\n    test 12 q4: False\n    test 13 q5: 2\n    test 14 u3: None\n    test 15 u4: U\n    test 16 X1: immutable Property_RO: X.setter X\n    test 17 X2: invalid Property_RO: X.deleter X\n    test 18 y1: immutable property_RO: y.setter y\n    test 19 y2: invalid property_RO: y.deleter y\n    test 20 Z1: invalid Property: Z.deleter Z\n    test 21 Z2: invalid Property: Z.getter Z\n\n    test<class 'pygeodesy.ellipsoids.Ellipsoid'>(pygeodesy.props, 25.12.31)\n    test 22 P1: 1\n    test 23 p1: 2\n    test 24 P2: 1\n    test 25 p2: 3\n    test 26 q1: 1\n    test 27 q2: 2\n    test 28 q3: True\n    test 29 u1: None\n    test 30 u2: U\n    test 31 P3: 4\n    test 32 p3: 5\n    test 33 q4: False\n    test 34 q5: 2\n    test 35 u3: None\n    test 36 u4: U\n    test 37 X1: immutable Property_RO: X.setter X\n    test 38 X2: invalid Property_RO: X.deleter X\n    test 39 y1: immutable property_RO: y.setter y\n    test 40 y2: invalid property_RO: y.deleter y\n    test 41 Z1: invalid Property: Z.deleter Z\n    test 42 Z2: invalid Property: Z.getter Z\n\n    all 42 testProps.py tests passed (pygeodesy 26.3.26 Python 3.14.3 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 239.849 us\nrunning /Library/Framewo....n3.14 -W default ~/PyGeodesy/test/testResections.py\n./test/testResections.py:40: DeprecationWarning: method L{collins<__main__.Cartesian_.collins>} has been DEPRECATED, use method L{collins5}.\n  self.test(collins.__name__, C_(A).collins(C, B, 109.5125, 115.0889), t, nl=1)  # DEPRECATED\n./test/testResections.py:63: DeprecationWarning: method L{tienstra<__main__.Cartesian_.tienstra>} has been DEPRECATED, use method L{tienstra7}.\n  self.test(tienstra.__name__, C_(A).tienstra(B, C, 115.0889, None, 109.5125), t, nl=1)  # DEPRECATED\n./test/testResections.py:72: DeprecationWarning: function L{collins<pygeodesy.deprecated.functions.collins>} has been DEPRECATED, use function L{pygeodesy.collins5}.\n  self.test(collins.__name__, collins(A, C, B, 109.3, 115.1), t, nl=1)  # DEPRECATED\n./test/testResections.py:94: DeprecationWarning: function L{tienstra<pygeodesy.deprecated.functions.tienstra>} has been DEPRECATED, use function L{pygeodesy.tienstra7}.\n  self.test(tienstra.__name__, tienstra(A, B, C, 115.1, beta=135.6, gamma=109.3), t, nl=1)  # DEPRECATED\n./test/testResections.py:100: DeprecationWarning: function L{triAngle4<pygeodesy.deprecated.functions.triAngle4>} has been DEPRECATED on 2023.09.14, use function L{pygeodesy.triAngle5}.\n  rA, rB, rC, _ = triAngle4(10, 30, c)\n./pygeodesy/deprecated/classes.py:33: DeprecationWarning: class L{TriAngle4Tuple<pygeodesy.deprecated.classes.TriAngle4Tuple>} has been DEPRECATED on 2023.09.14, use class L{TriAngle5Tuple}, ignoring item C{area}.\n  deprecated_class(cls)\n./test/testResections.py:107: DeprecationWarning: function L{triAngle4<pygeodesy.deprecated.functions.triAngle4>} has been DEPRECATED on 2023.09.14, use function L{pygeodesy.triAngle5}.\n  rA, rB, rC, _ = triAngle4(320, 435, 598)\n./test/testResections.py:111: DeprecationWarning: function L{triAngle4<pygeodesy.deprecated.functions.triAngle4>} has been DEPRECATED on 2023.09.14, use function L{pygeodesy.triAngle5}.\n  rA, rB, rC, _ = triAngle4(100, 100, 100)\n./test/testResections.py:115: DeprecationWarning: function L{triAngle4<pygeodesy.deprecated.functions.triAngle4>} has been DEPRECATED on 2023.09.14, use function L{pygeodesy.triAngle5}.\n  rA, rB, rC, _ = triAngle4(435, 320, 600)\n./test/testResections.py:119: DeprecationWarning: function L{triAngle4<pygeodesy.deprecated.functions.triAngle4>} has been DEPRECATED on 2023.09.14, use function L{pygeodesy.triAngle5}.\n  rA, rB, rC, _ = triAngle4(1716, 924, 1056)\n./test/testResections.py:126: DeprecationWarning: function L{triAngle4<pygeodesy.deprecated.functions.triAngle4>} has been DEPRECATED on 2023.09.14, use function L{pygeodesy.triAngle5}.\n  t = triAngle4(1, 2, EPS0 / 2)  # DEPRECATED\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.EPS0 from .constants by testResections.py line 11\n# lazily imported pygeodesy.PI from .constants by testResections.py line 11\n# lazily imported pygeodesy.PI_4 from .constants by testResections.py line 11\n# lazily imported pygeodesy.cassini from .resections by testResections.py line 11\n# lazily imported pygeodesy.collins5 from .resections by testResections.py line 11\n# lazily imported pygeodesy.fstr from .streprs by testResections.py line 11\n# lazily imported pygeodesy.pierlot from .resections by testResections.py line 11\n# lazily imported pygeodesy.pierlotx from .resections by testResections.py line 11\n# lazily imported pygeodesy.ResectionError from .resections by testResections.py line 11\n# lazily imported pygeodesy.snellius3 from .resections by testResections.py line 11\n# lazily imported pygeodesy.tienstra7 from .resections by testResections.py line 11\n# lazily imported pygeodesy.triAngle from .resections by testResections.py line 11\n# lazily imported pygeodesy.triAngle5 from .resections by testResections.py line 11\n# lazily imported pygeodesy.triArea from .resections by testResections.py line 11\n# lazily imported pygeodesy.triSide from .resections by testResections.py line 11\n# lazily imported pygeodesy.triSide2 from .resections by testResections.py line 11\n# lazily imported pygeodesy.triSide4 from .resections by testResections.py line 11\n# lazily imported pygeodesy.Vector3d from .vector3d by testResections.py line 11\n# lazily imported pygeodesy.wildberger3 from .resections by testResections.py line 11\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by <frozen importlib._bootstrap> line 1423\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by <frozen importlib._bootstrap> line 1423\n# lazily imported pygeodesy.Conformal2Tuple from .triaxials.triaxial5 by <frozen importlib._bootstrap> line 1423\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by classes.py line 21\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by classes.py line 21\n# lazily imported pygeodesy.Conformal2Tuple from .triaxials.triaxial5 by classes.py line 21\n\n    testing testResections.py 25.05.04 isLazy=3\n    test 1 cassini: (2128.3903, 5578.1443, 0)\n# imported pygeodesy.resections into cartesianBase.py line 116\n    test 2 cassini: Cartesian_(2128.3903, 5578.1443, 0)\n\n    test 3 collins5: (2128.3903, 5578.1443, 0)\n    test 4 collins5: (1830.5948, 2576.2429, 0)\n    test 5 collins5: 1581.1388, 1562.0499, 2121.3203\n    test 6 collins5: Cartesian_(2128.3903, 5578.1443, 0)\n    test 7 collins5: Cartesian_(1830.5948, 2576.2429, 0)\n    test 8 collins5: 1581.1388, 1562.0499, 2121.3203\n    test 9 collins5: 1581.1388, 1562.0499, 2121.3203\n\n    test 10 collins: (Cartesian_(2128.39, 5578.144, 0), Cartesian_(1830.595, 2576.243, 0), 1581.13883, 1562.049935, 2121.320344)\n\n    test 11 pierlot: (2128.3903, 5578.1443, 0)\n    test 12 pierlot: Cartesian_(2128.3903, 5578.1443, 0)\n    test 13 pierlot: Cartesian_(2128.3903, 5578.1443, 0.0)\n\n    test 14 pierlotx: (2128.3903, 5578.1443, 0)\n    test 15 pierlotx: Cartesian_(2128.3903, 5578.1443, 0)\n    test 16 pierlotx: Cartesian_(2128.3903, 5578.1443, 0.0)\n\n    test 17 tienstra7: (2128.3903, 5578.1443, 0)\n    test 18 tienstra7: 47.9357, 84.8896, 47.1747, 1581.1388, 2121.3203, 1562.0499\n    test 19 tienstra7: Cartesian_(2128.3903, 5578.1443, 0)\n    test 20 tienstra7: 47.9357, 84.8896, 47.1747, 1581.1388, 2121.3203, 1562.0499\n\n    test 21 tienstra: (Cartesian_(2128.39, 5578.144, 0), 47.935673, 84.889582, 47.174744, 1581.13883, 2121.320344, 1562.049935)\n\n    test 22 cassini: (2129.3018, 5575.8016, 0)\n\n    test 23 collins5: (2129.3018, 5575.8016, 0)\n    test 24 collins5: (1835.1911, 2563.0708, 0)\n    test 25 collins5: 1581.1388, 1562.0499, 2121.3203\n\n    test 26 collins: (Vector3d(2129.30185, 5575.80164, 0), Vector3d(1835.19112, 2563.07083, 0), 1581.13883, 1562.049935, 2121.320344)\n\n    test 27 pierlot: (2129.3018, 5575.8016, 0)\n# imported pygeodesy.basics into errors.py line 443\n    test 28 pierlot: alpha12 (115.1), alpha23 (109.3), eps (0), point1 (Vector3d(3100.0, 5000.0, 0)), point2 (Vector3d(2200.0, 6300.0, 0)) or point3 (Vector3d(1000.0, 5300.0, 0)): eps (0) invalid\n\n    test 29 pierlotx: (2129.3018, 5575.8016, 0)\n    test 30 pierlotx: (2128.2026, 4708.1218, 0)\n    test 31 pierlotx: (1969.0673, 6633.5695, 0)\n    test 32 pierlotx: (2438.0239, 5094.568, 0)\n\n    test 33 tienstra7: (2129.3018, 5575.8016, 0)\n    test 34 tienstra7: 47.9357, 84.8896, 47.1747, 1581.1388, 2121.3203, 1562.0499\n\n    test 35 tienstra: (Vector3d(2129.30185, 5575.80164, 0), 47.935673, 84.889582, 47.174744, 1581.13883, 2121.320344, 1562.049935)\n\n    test 36 triSide4: (10.0, 30.0, 0.785398, 8.840862)\n\n    test 37 snellius3: (17.54582, 38.564239, 46.317675)\n    test 38 snellius3: (844.880591, 571.107418, 835.462796)\n    test 39 snellius3: (128.557522, 100.0, 187.938524)\n    test 40 snellius3: (567.480866, 847.344375, 832.446688)\n    test 41 snellius3: (4064.197388, 3652.539386, 4988.197388)\n\n    test 42 wildberger3: (17.54582, 38.56424, 46.317675)\n    test 43 wildberger3: (844.880591, 571.107418, 835.462796)\n    test 44 wildberger3: (128.557522, 100.0, 187.938524)\n    test 45 wildberger3: (567.480866, 847.344375, 832.446688)\n    test 46 wildberger3: (4064.197358, 3652.539342, 4988.197355)  FAILED, KNOWN, expected (4064.197343, 3652.539342, 4988.197355)\n\n    test 47 triAngle: 3.141592654\n    test 48 triAngle4: (1.570796, 1.570796, 0.0, 0.0)\n    test 49 triAngle5: (1.570796, 1.570796, 0.0, 0.0, 0.0)\n    test 50 triAngle5: (0.24871, 0.927295, 1.965587, 1.5, 24.0)\n    test 51 triArea: 24.0\n    test 52 triSide2: (2.0, 0.0)\n    test 53 triSide2: (2.0, 3.141593)\n\n    17 of 53 testResections.py tests (32.1%) FAILED, incl. 1 KNOWN plus 16 DeprecationWarnings (pygeodesy 26.3.26 Python 3.14.3 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 6.804 ms\nrunning /Library/Framewo....n3.14 -W default ~/PyGeodesy/test/testRhumb_aux_.py\n./test/testRhumb_aux_.py:267: DeprecationWarning: method L{distance2<pygeodesy.rhumb.aux_.RhumbLineAux.distance2>} has been DEPRECATED on 23.09.23, use method L{RhumbLineAux.Inverse} or L{RhumbLine.Inverse}.\n  t = r.distance2(p.lat2, p.lon2)\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.Caps from .karney by testRhumb_aux_.py line 11\n# lazily imported pygeodesy.classname from .named by testRhumb_aux_.py line 11\n# lazily imported pygeodesy.DIG from .constants by testRhumb_aux_.py line 11\n# lazily imported pygeodesy.Ellipsoid from .ellipsoids by testRhumb_aux_.py line 11\n# lazily imported pygeodesy.Ellipsoids from .ellipsoids by testRhumb_aux_.py line 11\n# lazily imported pygeodesy.GDict from .karney by testRhumb_aux_.py line 11\n# lazily imported pygeodesy.isfinite from .constants by testRhumb_aux_.py line 11\n# lazily imported pygeodesy.itemsorted from .basics by testRhumb_aux_.py line 11\n# lazily imported pygeodesy.latDMS from .dms by testRhumb_aux_.py line 11\n# lazily imported pygeodesy.lonDMS from .dms by testRhumb_aux_.py line 11\n# lazily imported pygeodesy.parseDMS from .dms by testRhumb_aux_.py line 11\n# lazily imported pygeodesy.parseDMS2 from .dms by testRhumb_aux_.py line 11\n# lazily imported pygeodesy.RhumbAux from .rhumb.aux_ by testRhumb_aux_.py line 11\n# lazily imported pygeodesy.RhumbLineAux from .rhumb.aux_ by testRhumb_aux_.py line 11\n# lazily imported pygeodesy.RhumbLineSolve from .rhumb.solve by testRhumb_aux_.py line 11\n# lazily imported pygeodesy.R_M from .constants by testRhumb_aux_.py line 11\n# lazily imported pygeodesy.Fwelford from .fstats by testRhumb_aux_.py line 11\n# lazily imported pygeodesy.fremainder from .fmath by testRhumb_aux_.py line 11\n\n    testing testRhumb_aux_.py 24.08.30 (module pygeodesy.rhumb.aux_ 25.08.31) isLazy=3\n\n    testDirectX vs ...(pygeodesy.rhumb.aux_, 25.08.31)\n    test 1 Direct.azi12: -92.38889\n    test 2 Direct.lat1: 40.6\n    test 3 Direct.lat2: 21.3781208262067  FAILED, KNOWN (0.402846), expected 35.79999595\n    test 4 Direct.lon1: -73.8\n    test 5 Direct.lon2: -102.999609498889  FAILED, KNOWN (1.73414), expected 140.3000041\n    test 6 Direct.s12: 12782581.068\n\n    20 tests skipped (20): No module named 'numpy': required by auxDST.AuxDST\n\n    testInverseX vs ...(pygeodesy.rhumb.aux_, 25.08.31)\n    test 7 Inverse.azi12: -92.3888879816996  FAILED, KNOWN (2.18457e-08), expected -92.38889\n    test 8 Inverse.lat1: 40.6\n    test 9 Inverse.lat2: 35.8\n    test 10 Inverse.lon1: -73.8\n    test 11 Inverse.lon2: 140.3\n    test 12 Inverse.s12: 1282.19384243156  FAILED, KNOWN (1.8964e-09), expected 1282.19384\n    test 13 Inverse.S12: 21234695071407.8  FAILED, KNOWN (0.00128112), expected 21207525604650.8\n\n    60 tests skipped (80): No module named 'numpy': required by auxDST.AuxDST\n\n    test 14 R.exact: True\n    test 15 R.exact: False\n    test 16 R: RhumbAux(RAorder=None, TMorder=6, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), exact=False)\n\n    test 17 R.exact: True\n    test 18 R.Line.exact: True\n# lazily imported pygeodesy.etm by bases.py line 1013\n    test 19 R.Line: RhumbLineAux(TMorder=6, azi12=3.0, exact=True, lat1=1.0, lon1=2.0, rhumb=RhumbAux(RAorder=None, TMorder=6, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), exact=True), xTM=ExactTransverseMercator(datum='WGS84', extendp=False, k0=0.9996, lon0=0.0))\n# lazily imported pygeodesy.ktm by bases.py line 448\n# imported pygeodesy.basics into errors.py line 915\n# lazily imported pygeodesy.geodesicx by ellipsoids.py line 1043\n\n    test 20 PlumbTo(exact=False, est=1000000.0): PlumbTo(a02=17.967658, a12=27.74256, at=90.0, azi0=113.73626, azi12=45.0, lat0=60, lat1=30.0, lat2=49.634582, lon0=0, lon1=0.0, lon2=25.767876, name='PlumbTo', s02=1997960.116871, s12=3083112.636236)\n    test 21 a02: 17.967658\n    test 22 s02: 1997960.116871\n    test 23 s12: 3083112.636236\n    test 24 azi0: 113.736\n    test 25 azi2: 135.000\n    test 26 iteration: 7\n\n    test 27 PlumbTo(exact=False, est=None): PlumbTo(a02=17.967658, a12=27.74256, at=90.0, azi0=113.73626, azi12=45.0, lat0=60, lat1=30.0, lat2=49.634582, lon0=0, lon1=0.0, lon2=25.767876, name='PlumbTo', s02=1997960.116871, s12=3083112.636236)\n    test 28 a02: 17.967658\n    test 29 s02: 1997960.116871\n    test 30 s12: 3083112.636236\n    test 31 azi0: 113.736\n    test 32 azi2: 135.000\n    test 33 iteration: 5\n# lazily imported pygeodesy.formy by bases.py line 705\n\n    test 34 Intersecant2: (Intersecant2(a03=17.798332, a12=44.076956, azi03=135.0, azi12=45.0, lat0=30.0, lat1=30.0, lat2=61.164348, lat3=45.0, lon0=0.0, lon1=0.0, lon2=46.209348, lon3=15.830286, name='Intersecant2', s03=1977981.142985, s12=4898402.305119), Intersecant2(a03=17.798332, a12=-5.034244, azi03=135.0, azi12=45.0, lat0=30.0, lat1=30.0, lat2=26.4303, lat3=45.0, lon0=0.0, lon1=0.0, lon2=-4.030999, lon3=15.830286, name='Intersecant2', s03=1977981.142985, s12=-559470.390057))\n    test 35 azi0*=-90.000: exact=False, iteration=5, max=0.0, mean=0.0, min=-0.0, stdev=0.0\n\n    test 36 PlumbTo(exact=True, est=1000000.0): PlumbTo(a02=17.967658, a12=27.74256, at=90.0, azi0=113.73626, azi12=45.0, lat0=60, lat1=30.0, lat2=49.634582, lon0=0, lon1=0.0, lon2=25.767876, name='PlumbTo', s02=1997960.116871, s12=3083112.636236)\n    test 37 a02: 17.967658\n    test 38 s02: 1997960.116871\n    test 39 s12: 3083112.636236\n    test 40 azi0: 113.736\n    test 41 azi2: 135.000\n    test 42 iteration: 7\n\n    test 43 PlumbTo(exact=True, est=None): PlumbTo(a02=17.967658, a12=27.74256, at=90.0, azi0=113.73626, azi12=45.0, lat0=60, lat1=30.0, lat2=49.634582, lon0=0, lon1=0.0, lon2=25.767876, name='PlumbTo', s02=1997960.116871, s12=3083112.636236)\n    test 44 a02: 17.967658\n    test 45 s02: 1997960.116871\n    test 46 s12: 3083112.636236\n    test 47 azi0: 113.736\n    test 48 azi2: 135.000\n    test 49 iteration: 5\n\n    test 50 Intersecant2: (Intersecant2(a03=17.798332, a12=44.076956, azi03=135.0, azi12=45.0, lat0=30.0, lat1=30.0, lat2=61.164348, lat3=45.0, lon0=0.0, lon1=0.0, lon2=46.209348, lon3=15.830286, name='Intersecant2', s03=1977981.142985, s12=4898402.305119), Intersecant2(a03=17.798332, a12=-5.034244, azi03=135.0, azi12=45.0, lat0=30.0, lat1=30.0, lat2=26.4303, lat3=45.0, lon0=0.0, lon1=0.0, lon2=-4.030999, lon3=15.830286, name='Intersecant2', s03=1977981.142985, s12=-559470.390057))\n    test 51 azi0*=-90.000: exact=True, iteration=5, max=0.0, mean=0.0, min=-0.0, stdev=0.0\n\n    test 52 PlumbTo(exact=None, est=None): Intersection(a02=17.798332, a12=19.521356, at=90.0, azi02=135.0, azi12=45.0, lat0=60.0, lat1=30.0, lat2=45.0, lon0=0.0, lon1=0.0, lon2=15.830286, name='Intersection', s02=1977981.142985, s12=2169465.957531)\n    test 53 a02: 17.798332\n    test 54 s02: 1977981.142985\n    test 55 s12: 2169465.957531\n    test 56 azi02: 135.000\n    test 57 iteration: 9\n\n    test 58 Intersecant2: (Intersecant2(a03=17.798332, a12=44.076956, azi03=135.0, azi12=45.0, lat0=30.0, lat1=30.0, lat2=61.164348, lat3=45.0, lon0=0.0, lon1=0.0, lon2=46.209348, lon3=15.830286, name='Intersecant2', s03=1977981.142985, s12=4898402.305119), Intersecant2(a03=17.798332, a12=-5.034244, azi03=135.0, azi12=45.0, lat0=30.0, lat1=30.0, lat2=26.4303, lat3=45.0, lon0=0.0, lon1=0.0, lon2=-4.030999, lon3=15.830286, name='Intersecant2', s03=1977981.142985, s12=-559470.390057))\n    test 59 azi0*=90.000: exact=None, iteration=20, max=0.507468, mean=-2.015217, min=-6.079451, stdev=2.057451\n\n    test 60 xTM: ExactTransverseMercator(datum='WGS84', extendp=False, k0=0.9996, lon0=0.0)\n\n    test 61 Intersection: Intersection(a02=42.220588, a12=16.98358, at=-85.0, azi02=-50.0, azi12=35.0, lat0=0.0, lat1=10.0, lat2=23.944114, lon0=-10.0, lon1=-56.0, lon2=-45.833131, name='Intersection', s02=4694721.624938, s12=1888490.587742)  FAILED, KNOWN, expected (26.9774, -43.4088)\n    test 62 PlumbTo: Intersection(a02=0.0, a12=16.98358, at=90.0, azi02=125.0, azi12=35.0, lat0=23.944114, lat1=10.0, lat2=23.944114, lon0=-45.833131, lon1=-56.0, lon2=-45.833131, name='Intersection', s02=0.000044, s12=1888490.587743)\n    test 63 PlumbTo: Intersection(a02=0.0, a12=42.220588, at=90.0, azi02=40.0, azi12=-50.0, lat0=23.944114, lat1=0.0, lat2=23.944114, lon0=-45.833131, lon1=-10.0, lon2=-45.833131, name='Intersection', s02=0.00026, s12=4694721.624901)\n    test 64 xTM: KTransverseMercator(ellipsoid=Ellipsoid(name='Sphere', a=6371008.771415, f=0, f_=0, b=6371008.771415), k0=0.9996, TMorder=6)\n\n    test 65 Intersection: Intersection(a02=31.539478, a12=26.853309, at=-135.0, azi02=-45.0, azi12=90.0, lat0=15.0, lat1=37.0, lat2=37.0, lon0=-17.0, lon1=-76.0, lon2=-42.376015, name='Intersection', s02=3507034.715572, s12=2985955.796006)  FAILED, KNOWN, expected (37.0, -41.7028)\n    test 66 PlumbTo: Intersection(a02=0.0, a12=26.853309, at=90.0, azi02=180.0, azi12=90.0, lat0=37.0, lat1=37.0, lat2=37.0, lon0=-42.376015, lon1=-76.0, lon2=-42.376015, name='Intersection', s02=0.000162, s12=2985955.795978)\n    test 67 PlumbTo: Intersection(a02=0.0, a12=31.539478, at=90.0, azi02=45.0, azi12=-45.0, lat0=37.0, lat1=15.0, lat2=37.0, lon0=-42.376015, lon1=-17.0, lon2=-42.376015, name='Intersection', s02=0.000092, s12=3507034.71557)\n    test 68 xTM: KTransverseMercator(ellipsoid=Ellipsoid(name='Sphere', a=6371008.771415, f=0, f_=0, b=6371008.771415), k0=0.9996, TMorder=6)\n\n    190 of 68 testRhumb_aux_.py tests (279.4%) FAILED, incl. 7 KNOWN plus 183 DeprecationWarnings, 80 skipped (pygeodesy 26.3.26 Python 3.14.3 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 16.986 sec\nrunning /Library/Framewo....n3.14 -W default ~/PyGeodesy/test/testRhumb_ekx.py\n./test/testRhumb_ekx.py:37: DeprecationWarning: property_RO L{rhumbx<pygeodesy.ellipsoids.Ellipsoid.rhumbx>} has been DEPRECATED on 2023.11.28, use property C{rhumbekx}.\n  R = E.rhumbx\n./test/testRhumb_ekx.py:129: DeprecationWarning: property_RO L{rhumbx<pygeodesy.ellipsoids.Ellipsoid.rhumbx>} has been DEPRECATED on 2023.11.28, use property C{rhumbekx}.\n  R = E.rhumbx\n./test/testRhumb_ekx.py:184: DeprecationWarning: property_RO L{rhumbx<pygeodesy.ellipsoids.Ellipsoid.rhumbx>} has been DEPRECATED on 2023.11.28, use property C{rhumbekx}.\n  P = Ellipsoid(E.b, E.a, name='_Prolate').rhumbx  # '_...' for iOS\n./test/testRhumb_ekx.py:218: DeprecationWarning: property_RO L{rhumbx<pygeodesy.ellipsoids.Ellipsoid.rhumbx>} has been DEPRECATED on 2023.11.28, use property C{rhumbekx}.\n  R = E.rhumbx\n./test/testRhumb_ekx.py:228: DeprecationWarning: method L{orders<pygeodesy.rhumb.ekx.Rhumb.orders>} has been DEPRECATED, use properties C{RAorder} and/or C{TMorder}.\n  t = R.orders(4, 8)\n./pygeodesy/deprecated/classes.py:33: DeprecationWarning: class L{RhumbOrder2Tuple<pygeodesy.deprecated.classes.RhumbOrder2Tuple>} has been DEPRECATED, see deprecated method L{Rhumb.orders}.\n  deprecated_class(cls)\n./test/testRhumb_ekx.py:230: DeprecationWarning: method L{orders<pygeodesy.rhumb.ekx.Rhumb.orders>} has been DEPRECATED, use properties C{RAorder} and/or C{TMorder}.\n  t = R.orders(6, 6)\n./test/testRhumb_ekx.py:269: DeprecationWarning: method L{distance2<pygeodesy.rhumb.ekx.RhumbLine.distance2>} has been DEPRECATED on 23.09.23, use method L{RhumbLineAux.Inverse} or L{RhumbLine.Inverse}.\n  t = r.distance2(p.lat2, p.lon2)\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.Caps from .karney by testRhumb_ekx.py line 11\n# lazily imported pygeodesy.classname from .named by testRhumb_ekx.py line 11\n# lazily imported pygeodesy.DIG from .constants by testRhumb_ekx.py line 11\n# lazily imported pygeodesy.Ellipsoid from .ellipsoids by testRhumb_ekx.py line 11\n# lazily imported pygeodesy.GDict from .karney by testRhumb_ekx.py line 11\n# lazily imported pygeodesy.isfinite from .constants by testRhumb_ekx.py line 11\n# lazily imported pygeodesy.itemsorted from .basics by testRhumb_ekx.py line 11\n# lazily imported pygeodesy.latDMS from .dms by testRhumb_ekx.py line 11\n# lazily imported pygeodesy.lonDMS from .dms by testRhumb_ekx.py line 11\n# lazily imported pygeodesy.parseDMS from .dms by testRhumb_ekx.py line 11\n# lazily imported pygeodesy.parseDMS2 from .dms by testRhumb_ekx.py line 11\n# lazily imported pygeodesy.Rhumb from .rhumb.ekx by testRhumb_ekx.py line 11\n# lazily imported pygeodesy.RhumbLine from .rhumb.ekx by testRhumb_ekx.py line 11\n# lazily imported pygeodesy.RhumbLineSolve from .rhumb.solve by testRhumb_ekx.py line 11\n# lazily imported pygeodesy.R_M from .constants by testRhumb_ekx.py line 11\n# lazily imported pygeodesy.Fwelford from .fstats by testRhumb_ekx.py line 11\n# lazily imported pygeodesy.fremainder from .fmath by testRhumb_ekx.py line 11\n# lazily imported pygeodesy.Ellipsoids from .ellipsoids by testRhumb_ekx.py line 346\n\n    testing testRhumb_ekx.py 23.11.30 (module pygeodesy.rhumb.ekx 25.08.31) isLazy=3\n\n    testDirectX vs ...(pygeodesy.rhumb.ekx, 25.08.31)\n# lazily imported pygeodesy.elliptic by ellipsoids.py line 856\n    test 1 Direct.azi12: -92.38889\n    test 2 Direct.lat1: 40.6\n    test 3 Direct.lat2: 35.799995945206  FAILED, KNOWN, expected 35.79999\n    test 4 Direct.lon1: -73.8\n    test 5 Direct.lon2: 140.300004102052  FAILED, KNOWN, expected 140.23651\n    test 6 Direct.s12: 12782581.068\n\n    test 7 GDict.azi12: 51\n    test 8 GDict.lat1: 40.6\n    test 9 GDict.lat2: 71.688899882813\n    test 10 GDict.lon1: -73.8\n    test 11 GDict.lon2: 0.255519824423402  FAILED, KNOWN, expected 0.255519824423359\n    test 12 GDict.s12: 5500000\n    test 13 GDict.S12: 44095641862956.1\n# lazily imported pygeodesy.etm by bases.py line 1013\n\n    test 14 RhumbLine: TMorder=6, azi12=51.0, exact=True, lat1=40.6, lon1=-73.8, rhumb=Rhumb(RAorder=6, TMorder=6, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), exact=True), xTM=ExactTransverseMercator(datum='WGS84', extendp=False, k0=0.9996, lon0=0.0)\n    test 15 Rhumb: Rhumb(RAorder=6, TMorder=6, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), exact=True)\n    test 16 isLoxodrome: True\n\n    test 17 ArcPosition.a12: 51\n    test 18 ArcPosition.azi12: 51\n    test 19 ArcPosition.lat1: 40.6\n    test 20 ArcPosition.lat2: 72.6351275818438  FAILED, KNOWN, expected 72.635128\n    test 21 ArcPosition.lon1: -73.8\n    test 22 ArcPosition.lon2: 4.06852757947455  FAILED, KNOWN, expected 4.068528\n    test 23 ArcPosition.s12: 5667780.57994388  FAILED, KNOWN, expected 5667780.579944\n    test 24 ArcPosition.S12: 46665957571716.4\n\n    test 25 Position.a12: 51\n    test 26 Position.azi12: 51\n    test 27 Position.lat1: 40.6\n    test 28 Position.lat2: 72.6351275818438  FAILED, KNOWN, expected 72.635128\n    test 29 Position.lon1: -73.8\n    test 30 Position.lon2: 4.06852757947455  FAILED, KNOWN, expected 4.068528\n    test 31 Position.s12: 5667780.57994388\n    test 32 Position.S12: 46665957571716.4\n\n    test 33 Direct.a12: 115.020619671634  FAILED, KNOWN, expected 115.02062\n    test 34 Direct.azi12: -92.38889\n    test 35 Direct.lat1: 40.6\n    test 36 Direct.lat2: 35.799995945206  FAILED, KNOWN, expected 35.8\n    test 37 Direct.lon1: -73.8\n    test 38 Direct.lon2: 140.300004102052  FAILED, KNOWN, expected 140.3\n    test 39 Direct.s12: 12782581.068\n\n    test 40 ArcDirect.a12: 115.020619671634\n    test 41 ArcDirect.azi12: -92.38889\n    test 42 ArcDirect.lat1: 40.6\n    test 43 ArcDirect.lat2: 35.799995945206  FAILED, KNOWN, expected 35.8\n    test 44 ArcDirect.lon1: -73.8\n    test 45 ArcDirect.lon2: 140.300004102052  FAILED, KNOWN, expected 140.3\n    test 46 ArcDirect.s12: 12782581.068\n\n    test 47 Direct8: (40.6, -73.8, 35.799996, 140.300004, -92.38889, 12782581.068, -63760638302268.796875, 115.02062)\n    test 48 toDirect9Tuple: (115.02062, 35.799996, 140.300004, -92.38889, 12782581.068, 12782581.068, 1.0, 1.0, -63760638302268.796875)\n    test 49 DirectLine: (40.6, -73.8, 35.799996, 140.300004, -92.38889, 12782581.068, -63760638302268.796875, 115.02062)\n\n    test 50 RhumbLine: TMorder=6, azi12=51.0, exact=True, lat1=40.6, lon1=-73.8, rhumb=Rhumb(RAorder=6, TMorder=6, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), exact=True), xTM=ExactTransverseMercator(datum='WGS84', extendp=False, k0=0.9996, lon0=0.0)\n    test 51 DirectLine: TMorder=6, azi12=-51.0, exact=True, lat1=35.8, lon1=140.3, rhumb=Rhumb(RAorder=6, TMorder=6, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), exact=True), xTM=ExactTransverseMercator(datum='WGS84', extendp=False, k0=0.9996, lon0=0.0)\n\n    testInverseX vs ...(pygeodesy.rhumb.ekx, 25.08.31)\n    test 52 Inverse.azi12: -92.3888879816997  FAILED, KNOWN, expected -92.38889\n    test 53 Inverse.lat1: 40.6\n    test 54 Inverse.lat2: 35.8\n    test 55 Inverse.lon1: -73.8\n    test 56 Inverse.lon2: 140.3\n    test 57 Inverse.s12: 12782581.0676842\n    test 58 Inverse.S12: -63760642939072.5  FAILED, KNOWN, expected -63760642939073\n\n    test 59 GDict.azi12: 77.7683897102557\n    test 60 GDict.lat1: 40.6\n    test 61 GDict.lat2: 51.6\n    test 62 GDict.lon1: -73.8\n    test 63 GDict.lon2: -0.5\n    test 64 GDict.s12: 5771083.38332803\n    test 65 GDict.S12: 37395209100030.4\n\n    test 66 Inverse.azi12: 103.582833003411  FAILED, KNOWN, expected 103.582833333333\n    test 67 Inverse.lat1: 40.6397222222222  FAILED, KNOWN, expected 40.639722\n    test 68 Inverse.lat2: 1.35916666666667  FAILED, KNOWN, expected 1.359167\n    test 69 Inverse.lon2: 103.989444444444  FAILED, KNOWN, expected 103.989444\n    test 70 Inverse.s12: 18523563.0423774  FAILED, KNOWN, expected 18523563\n\n    test 71 0,000 Km lat2: 40:38:23.0N\n    test 72 0,000 Km lon2: 073:46:44.0W\n    test 73 0,000 Km S12 : 0\n    test 74 1,000 Km lat2: 36:24:30.3N\n    test 75 1,000 Km lon2: 051:28:26.4W\n    test 76 1,000 Km S12 : 9817078307820  FAILED, KNOWN, expected 9817078307821\n    test 77 2,000 Km lat2: 32:10:26.8N\n    test 78 2,000 Km lon2: 030:20:57.3W\n    test 79 2,000 Km S12 : 18224745682004  FAILED, KNOWN, expected 18224745682005\n    test 80 3,000 Km lat2: 27:56:13.2N\n    test 81 3,000 Km lon2: 010:10:54.2W\n    test 82 3,000 Km S12 : 25358020327741\n    test 83 4,000 Km lat2: 23:41:50.1N\n    test 84 4,000 Km lon2: 009:12:45.5E\n    test 85 4,000 Km S12 : 31321269267101  FAILED, KNOWN, expected 31321269267102\n    test 86 5,000 Km lat2: 19:27:18.7N\n    test 87 5,000 Km lon2: 027:59:22.1E\n    test 88 5,000 Km S12 : 36195163180159\n    test 89 6,000 Km lat2: 15:12:40.2N\n    test 90 6,000 Km lon2: 046:17:01.1E\n    test 91 6,000 Km S12 : 40041499143669\n    test 92 7,000 Km lat2: 10:57:55.9N\n    test 93 7,000 Km lon2: 064:12:52.8E\n    test 94 7,000 Km S12 : 42906570007050\n    test 95 8,000 Km lat2: 06:43:07.3N\n    test 96 8,000 Km lon2: 081:53:28.8E\n    test 97 8,000 Km S12 : 44823504180199  FAILED, KNOWN, expected 44823504180200\n    test 98 9,000 Km lat2: 02:28:16.2N\n    test 99 9,000 Km lon2: 099:24:54.5E\n    test 100 9,000 Km S12 : 45813843358737\n    test 101 10,000 Km lat2: 01:46:36.0S\n    test 102 10,000 Km lon2: 116:52:59.7E\n    test 103 10,000 Km S12 : 45888525219677\n\n    test 104 Inverse: {a12: 51.420061, azi12: 77.692032, azi21: -102.307968, lat1: 40.6, lat2: 51.6, lon1: -73.8, lon2: -0.5, name: '_Prolate', s12: 5733622.743165}\n    test 105 Inverse8: (40.6, -73.8, 51.6, -0.5, 77.692032, 5733622.743165, 37469093881942.273438, 51.420061)\n    test 106 toInverse10Tuple: (51.420061, 5733622.743165, 0.977016, 0.213166, 0.977016, 0.213166, 5733622.743165, 1.0, 1.0, 37469093881942.273438)\n    test 107 InverseLine: -102.23161028974432\n\n    test 108 R.exact: True\n    test 109 R.exact: False\n    test 110 R: Rhumb(RAorder=6, TMorder=6, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), exact=False)\n\n    test 111 R.exact: True\n    test 112 R.Line.exact: True\n    test 113 R.Line: RhumbLine(TMorder=6, azi12=3.0, exact=True, lat1=1.0, lon1=2.0, rhumb=Rhumb(RAorder=6, TMorder=6, ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), exact=True), xTM=ExactTransverseMercator(datum='WGS84', extendp=False, k0=0.9996, lon0=0.0))\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by <frozen importlib._bootstrap> line 1423\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by <frozen importlib._bootstrap> line 1423\n# lazily imported pygeodesy.Conformal2Tuple from .triaxials.triaxial5 by <frozen importlib._bootstrap> line 1423\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by classes.py line 21\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by classes.py line 21\n# lazily imported pygeodesy.Conformal2Tuple from .triaxials.triaxial5 by classes.py line 21\n# lazily imported pygeodesy.deprecated by ekx.py line 204\n# imported pygeodesy.basics into errors.py line 915\n    test 114 orders: (6, 6)\n    test 115 orders: (4, 8)\n\n# lazily imported pygeodesy.geodesicx by ellipsoids.py line 1043\n\n    test 116 PlumbTo(exact=False, est=1000000.0): PlumbTo(a02=17.967658, a12=27.74256, at=90.0, azi0=113.73626, azi12=45.0, lat0=60, lat1=30.0, lat2=49.634582, lon0=0, lon1=0.0, lon2=25.767876, name='PlumbTo', s02=1997960.116871, s12=3083112.636236)\n    test 117 a02: 17.967658\n    test 118 s02: 1997960.116871\n    test 119 s12: 3083112.636236\n    test 120 azi0: 113.736\n    test 121 azi2: 135.000\n    test 122 iteration: 7\n\n    test 123 PlumbTo(exact=False, est=None): PlumbTo(a02=17.967658, a12=27.74256, at=90.0, azi0=113.73626, azi12=45.0, lat0=60, lat1=30.0, lat2=49.634582, lon0=0, lon1=0.0, lon2=25.767876, name='PlumbTo', s02=1997960.116871, s12=3083112.636236)\n    test 124 a02: 17.967658\n    test 125 s02: 1997960.116871\n    test 126 s12: 3083112.636236\n    test 127 azi0: 113.736\n    test 128 azi2: 135.000\n    test 129 iteration: 5\n\n    test 130 Intersecant2: (Intersecant2(a03=17.798332, a12=44.076956, azi03=135.0, azi12=45.0, lat0=30.0, lat1=30.0, lat2=61.164348, lat3=45.0, lon0=0.0, lon1=0.0, lon2=46.209348, lon3=15.830286, name='Intersecant2', s03=1977981.142985, s12=4898402.305119), Intersecant2(a03=17.798332, a12=-5.034244, azi03=135.0, azi12=45.0, lat0=30.0, lat1=30.0, lat2=26.4303, lat3=45.0, lon0=0.0, lon1=0.0, lon2=-4.030999, lon3=15.830286, name='Intersecant2', s03=1977981.142985, s12=-559470.390057))\n    test 131 azi0*=-90.000: exact=False, iteration=128, max=0.0, mean=0.0, min=-0.0, stdev=0.0\n\n    test 132 PlumbTo(exact=True, est=1000000.0): PlumbTo(a02=17.967658, a12=27.74256, at=90.0, azi0=113.73626, azi12=45.0, lat0=60, lat1=30.0, lat2=49.634582, lon0=0, lon1=0.0, lon2=25.767876, name='PlumbTo', s02=1997960.116871, s12=3083112.636236)\n    test 133 a02: 17.967658\n    test 134 s02: 1997960.116871\n    test 135 s12: 3083112.636236\n    test 136 azi0: 113.736\n    test 137 azi2: 135.000\n    test 138 iteration: 7\n\n    test 139 PlumbTo(exact=True, est=None): PlumbTo(a02=17.967658, a12=27.74256, at=90.0, azi0=113.73626, azi12=45.0, lat0=60, lat1=30.0, lat2=49.634582, lon0=0, lon1=0.0, lon2=25.767876, name='PlumbTo', s02=1997960.116871, s12=3083112.636236)\n    test 140 a02: 17.967658\n    test 141 s02: 1997960.116871\n    test 142 s12: 3083112.636236\n    test 143 azi0: 113.736\n    test 144 azi2: 135.000\n    test 145 iteration: 5\n\n    test 146 Intersecant2: (Intersecant2(a03=17.798332, a12=44.076956, azi03=135.0, azi12=45.0, lat0=30.0, lat1=30.0, lat2=61.164348, lat3=45.0, lon0=0.0, lon1=0.0, lon2=46.209348, lon3=15.830286, name='Intersecant2', s03=1977981.142985, s12=4898402.305119), Intersecant2(a03=17.798332, a12=-5.034244, azi03=135.0, azi12=45.0, lat0=30.0, lat1=30.0, lat2=26.4303, lat3=45.0, lon0=0.0, lon1=0.0, lon2=-4.030999, lon3=15.830286, name='Intersecant2', s03=1977981.142985, s12=-559470.390057))\n    test 147 azi0*=-90.000: exact=True, iteration=128, max=0.0, mean=0.0, min=-0.0, stdev=0.0\n\n    test 148 PlumbTo(exact=None, est=None): Intersection(a02=17.798332, a12=19.521356, at=90.0, azi02=135.0, azi12=45.0, lat0=60.0, lat1=30.0, lat2=45.0, lon0=0.0, lon1=0.0, lon2=15.830286, name='Intersection', s02=1977981.142985, s12=2169465.957531)\n    test 149 a02: 17.798332\n    test 150 s02: 1977981.142985\n    test 151 s12: 2169465.957531\n    test 152 azi02: 135.000\n    test 153 iteration: 9\n\n    test 154 Intersecant2: (Intersecant2(a03=17.798332, a12=44.076956, azi03=135.0, azi12=45.0, lat0=30.0, lat1=30.0, lat2=61.164348, lat3=45.0, lon0=0.0, lon1=0.0, lon2=46.209348, lon3=15.830286, name='Intersecant2', s03=1977981.142985, s12=4898402.305119), Intersecant2(a03=17.798332, a12=-5.034244, azi03=135.0, azi12=45.0, lat0=30.0, lat1=30.0, lat2=26.4303, lat3=45.0, lon0=0.0, lon1=0.0, lon2=-4.030999, lon3=15.830286, name='Intersecant2', s03=1977981.142985, s12=-559470.390057))\n    test 155 azi0*=90.000: exact=None, iteration=20, max=0.507468, mean=-2.015217, min=-6.079451, stdev=2.057451\n\n    test 156 xTM: KTransverseMercator(ellipsoid=Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518), k0=0.9996, TMorder=7)\n\n    test 157 Intersection: Intersection(a02=41.823427, a12=16.45698, at=-85.0, azi02=-50.0, azi12=35.0, lat0=0.0, lat1=10.0, lat2=23.944114, lon0=-10.0, lon1=-56.0, lon2=-45.833131, name='Intersection', s02=4650559.291378, s12=1829935.168035)  FAILED, KNOWN, expected (26.9774, -43.4088)\n    test 158 PlumbTo: Intersection(a02=0.0, a12=16.45698, at=90.0, azi02=125.0, azi12=35.0, lat0=23.944114, lat1=10.0, lat2=23.944114, lon0=-45.833131, lon1=-56.0, lon2=-45.833131, name='Intersection', s02=0.000043, s12=1829935.168032)\n    test 159 PlumbTo: Intersection(a02=0.0, a12=41.823427, at=90.0, azi02=40.0, azi12=-50.0, lat0=23.944114, lat1=0.0, lat2=23.944114, lon0=-45.833131, lon1=-10.0, lon2=-45.833131, name='Intersection', s02=0.000246, s12=4650559.291327)\n    test 160 xTM: KTransverseMercator(ellipsoid=Ellipsoid(name='Sphere', a=6371008.771415, f=0, f_=0, b=6371008.771415), k0=0.9996, TMorder=6)\n\n    test 161 Intersection: Intersection(a02=29.910202, a12=26.853309, at=-135.0, azi02=-45.0, azi12=90.0, lat0=15.0, lat1=37.0, lat2=37.0, lon0=-17.0, lon1=-76.0, lon2=-42.376015, name='Intersection', s02=3325867.316604, s12=2985955.796006)  FAILED, KNOWN, expected (37.0, -41.7028)\n    test 162 PlumbTo: Intersection(a02=0.0, a12=26.853309, at=90.0, azi02=180.0, azi12=90.0, lat0=37.0, lat1=37.0, lat2=37.0, lon0=-42.376015, lon1=-76.0, lon2=-42.376015, name='Intersection', s02=0.000129, s12=2985955.795978)\n    test 163 PlumbTo: Intersection(a02=0.0, a12=29.910202, at=90.0, azi02=45.0, azi12=-45.0, lat0=37.0, lat1=15.0, lat2=37.0, lon0=-42.376015, lon1=-17.0, lon2=-42.376015, name='Intersection', s02=0.000081, s12=3325867.316586)\n    test 164 xTM: KTransverseMercator(ellipsoid=Ellipsoid(name='Sphere', a=6371008.771415, f=0, f_=0, b=6371008.771415), k0=0.9996, TMorder=6)\n\n    217 of 164 testRhumb_ekx.py tests (132.3%) FAILED, incl. 26 KNOWN plus 191 DeprecationWarnings (pygeodesy 26.3.26 Python 3.14.3 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 20.167 sec\nrunning /Library/Framewo....n3.14 -W default ~/PyGeodesy/test/testRoutes.py\n./test/testRoutes.py:17103: DeprecationWarning: function L{areaOf<pygeodesy.ellipsoidalVincenty.areaOf>} has been DEPRECATED, use function L{ellipsoidalExact.areaOf} or L{ellipsoidalKarney.areaOf}.\n  r = f(pts, wrap=True, **kwds)\n./pygeodesy/ellipsoidalKarney.py:139: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return fabs(_polygon(datum.ellipsoid.geodesic, points, True, False, wrap, polar))\n./test/testRoutes.py:17103: DeprecationWarning: function L{perimeterOf<pygeodesy.ellipsoidalVincenty.perimeterOf>} has been DEPRECATED, use function L{ellipsoidalExact.perimeterOf} or L{ellipsoidalKarney.perimeterOf}.\n  r = f(pts, wrap=True, **kwds)\n./pygeodesy/ellipsoidalKarney.py:347: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return _polygon(datum.ellipsoid.geodesic, points, closed, True, wrap, False)\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.LatLon_ from .points by testRoutes.py line 13\n# lazily imported pygeodesy.R_KM from .constants by testRoutes.py line 13\n# lazily imported pygeodesy.R_M from .constants by testRoutes.py line 13\n# lazily imported pygeodesy.ellipsoidalVincenty by testRoutes.py line 13\n# lazily imported pygeodesy.sphericalTrigonometry by testRoutes.py line 13\n# lazily imported pygeodesy.areaOf from .points by testRoutes.py line 13\n# lazily imported pygeodesy.isclockwise from .points by testRoutes.py line 13\n# lazily imported pygeodesy.perimeterOf from .points by testRoutes.py line 13\n# lazily imported pygeodesy.unstr from .streprs by testRoutes.py line 13\n\n    testing testRoutes.py 23.08.23 isLazy=3\n# lazily imported pygeodesy.booleans by points.py line 978\n# lazily imported pygeodesy.angles by units.py line 633\n    test 1 points.areaOf('Antarctica', adjust=True, radius=6371.01, wrap=True): 1751693.701  FAILED, KNOWN, expected 13552524.800\n    test 2 points.areaOf('PtsFFI', adjust=True, radius=6371.01, wrap=True): 1.288\n    test 3 points.areaOf('RdpFFI', adjust=True, radius=6371.01, wrap=True): 1.241\n    test 4 points.areaOf('Pts', adjust=True, radius=6371.01, wrap=True): 131184.240\n    test 5 points.areaOf('VwPts', adjust=True, radius=6371.01, wrap=True): 140310.144\n    test 6 points.areaOf('_JFK_LHR1', adjust=True, radius=6371.01, wrap=True): 41383852.921  FAILED, KNOWN, expected 40041368.849\n    test 7 points.areaOf('_JFK_LHR2', adjust=True, radius=6371.01, wrap=True): 82767705.842  FAILED, KNOWN, expected 80082737.697\n    test 8 points.areaOf('Antarctica', adjust=False, radius=6371.01, wrap=True): 10446635.730  FAILED, KNOWN, expected 13552524.800\n    test 9 points.areaOf('PtsFFI', adjust=False, radius=6371.01, wrap=True): 2.185  FAILED, KNOWN, expected 1.288\n    test 10 points.areaOf('RdpFFI', adjust=False, radius=6371.01, wrap=True): 2.105  FAILED, KNOWN, expected 1.241\n    test 11 points.areaOf('Pts', adjust=False, radius=6371.01, wrap=True): 233595.011  FAILED, KNOWN, expected 131184.240\n    test 12 points.areaOf('VwPts', adjust=False, radius=6371.01, wrap=True): 258465.911  FAILED, KNOWN, expected 140310.144\n    test 13 points.areaOf('_JFK_LHR1', adjust=False, radius=6371.01, wrap=True): 41780731.678  FAILED, KNOWN, expected 40041368.849\n    test 14 points.areaOf('_JFK_LHR2', adjust=False, radius=6371.01, wrap=True): 83561463.357  FAILED, KNOWN, expected 80082737.697\n# imported pygeodesy.formy into latlonBase.py line 756\n    test 15 sphericalTrigonometry.areaOf('Antarctica', radius=6371.01, wrap=True): 241480413.388\n    test 16 sphericalTrigonometry.areaOf('PtsFFI', radius=6371.01, wrap=True): 1.338\n    test 17 sphericalTrigonometry.areaOf('RdpFFI', radius=6371.01, wrap=True): 1.289\n    test 18 sphericalTrigonometry.areaOf('Pts', radius=6371.01, wrap=True): 125942.444\n    test 19 sphericalTrigonometry.areaOf('VwPts', radius=6371.01, wrap=True): 118897.757\n    test 20 sphericalTrigonometry.areaOf('_JFK_LHR1', radius=6371.01, wrap=True): 40105639.197\n    test 21 sphericalTrigonometry.areaOf('_JFK_LHR2', radius=6371.01, wrap=True): 80211278.393\n# lazily imported pygeodesy.ellipsoidalKarney by ellipsoidalVincenty.py line 383\n# lazily imported pygeodesy.geodesicw by ellipsoids.py line 1074\n    test 22 ellipsoidalVincenty.areaOf('Antarctica', wrap=True): 1.366270e+13\n    test 23 ellipsoidalVincenty.areaOf('PtsFFI', wrap=True): 1.343272e+06\n    test 24 ellipsoidalVincenty.areaOf('RdpFFI', wrap=True): 1.294375e+06\n    test 25 ellipsoidalVincenty.areaOf('Pts', wrap=True): 1.271286e+11\n    test 26 ellipsoidalVincenty.areaOf('VwPts', wrap=True): 1.200540e+11\n    test 27 ellipsoidalVincenty.areaOf('_JFK_LHR1', wrap=True): 4.004137e+13\n    test 28 ellipsoidalVincenty.areaOf('_JFK_LHR2', wrap=True): 8.008274e+13\n    test 29 ellipsoidalVincenty.areaOf('Antarctica', wrap=True): 1.366270e+13\n    test 30 ellipsoidalVincenty.areaOf('PtsFFI', wrap=True): 1.343272e+06\n    test 31 ellipsoidalVincenty.areaOf('RdpFFI', wrap=True): 1.294375e+06\n    test 32 ellipsoidalVincenty.areaOf('Pts', wrap=True): 1.271286e+11\n    test 33 ellipsoidalVincenty.areaOf('VwPts', wrap=True): 1.200540e+11\n    test 34 ellipsoidalVincenty.areaOf('_JFK_LHR1', wrap=True): 4.004137e+13\n    test 35 ellipsoidalVincenty.areaOf('_JFK_LHR2', wrap=True): 8.008274e+13\n    test 36 points.perimeterOf('Antarctica', closed=False, radius=6.37101e+06, wrap=True): 15620294.792  FAILED, KNOWN, expected 16765661.499\n    test 37 points.perimeterOf('PtsFFI', closed=False, radius=6.37101e+06, wrap=True): 3224.123\n    test 38 points.perimeterOf('RdpFFI', closed=False, radius=6.37101e+06, wrap=True): 3185.467\n    test 39 points.perimeterOf('Pts', closed=False, radius=6.37101e+06, wrap=True): 2762313.129\n    test 40 points.perimeterOf('VwPts', closed=False, radius=6.37101e+06, wrap=True): 2672557.850\n    test 41 points.perimeterOf('_JFK_LHR1', closed=False, radius=6.37101e+06, wrap=True): 16034670.768  FAILED, KNOWN, expected 15766750.804\n    test 42 points.perimeterOf('_JFK_LHR2', closed=False, radius=6.37101e+06, wrap=True): 26286857.120  FAILED, KNOWN, expected 25981742.208\n    test 43 sphericalTrigonometry.perimeterOf('Antarctica', closed=False, radius=6.37101e+06, wrap=True): 15470624.834\n    test 44 sphericalTrigonometry.perimeterOf('PtsFFI', closed=False, radius=6.37101e+06, wrap=True): 3224.123\n    test 45 sphericalTrigonometry.perimeterOf('RdpFFI', closed=False, radius=6.37101e+06, wrap=True): 3185.467\n    test 46 sphericalTrigonometry.perimeterOf('Pts', closed=False, radius=6.37101e+06, wrap=True): 2762313.116\n    test 47 sphericalTrigonometry.perimeterOf('VwPts', closed=False, radius=6.37101e+06, wrap=True): 2672556.441\n    test 48 sphericalTrigonometry.perimeterOf('_JFK_LHR1', closed=False, radius=6.37101e+06, wrap=True): 15789078.314\n    test 49 sphericalTrigonometry.perimeterOf('_JFK_LHR2', closed=False, radius=6.37101e+06, wrap=True): 26041264.665\n    test 50 ellipsoidalVincenty.perimeterOf('Antarctica', closed=False, wrap=True): 15531947.149  FAILED, KNOWN, expected 15531770.613\n    test 51 ellipsoidalVincenty.perimeterOf('PtsFFI', closed=False, wrap=True): 3229.337\n    test 52 ellipsoidalVincenty.perimeterOf('RdpFFI', closed=False, wrap=True): 3190.602\n    test 53 ellipsoidalVincenty.perimeterOf('Pts', closed=False, wrap=True): 2769709.679  FAILED, KNOWN, expected 2769709.412\n    test 54 ellipsoidalVincenty.perimeterOf('VwPts', closed=False, wrap=True): 2679915.858\n    test 55 ellipsoidalVincenty.perimeterOf('_JFK_LHR1', closed=False, wrap=True): 15766750.804  FAILED, KNOWN, expected 15763434.962\n    test 56 ellipsoidalVincenty.perimeterOf('_JFK_LHR2', closed=False, wrap=True): 25981742.208  FAILED, KNOWN, expected 25972353.155\n    test 57 ellipsoidalVincenty.perimeterOf('Antarctica', closed=True, wrap=True): 16831067.893  FAILED, KNOWN, expected 16830891.356\n    test 58 ellipsoidalVincenty.perimeterOf('PtsFFI', closed=True, wrap=True): 5491.045\n    test 59 ellipsoidalVincenty.perimeterOf('RdpFFI', closed=True, wrap=True): 5452.310\n    test 60 ellipsoidalVincenty.perimeterOf('Pts', closed=True, wrap=True): 5259077.510  FAILED, KNOWN, expected 5259077.242\n    test 61 ellipsoidalVincenty.perimeterOf('VwPts', closed=True, wrap=True): 5171947.931\n    test 62 ellipsoidalVincenty.perimeterOf('_JFK_LHR1', closed=True, wrap=True): 23926469.479  FAILED, KNOWN, expected 23921931.540\n    test 63 ellipsoidalVincenty.perimeterOf('_JFK_LHR2', closed=True, wrap=True): 31533501.608  FAILED, KNOWN, expected 31524112.555\n    test 64 geographiclib.WNZ-SAL(WGS84): 19959679.267\n    test 65 geographiclib.WNZ-SAL(WGS84): 354.50\n    test 66 geographiclib.WNZ-SAL(Sphere): 19967403.498\n    test 67 geographiclib.WNZ-SAL(Sphere): 354.50\n    test 68 geographiclib.BJS-SFO(WGS84): 9513998.0\n    test 69 geographiclib.BJS-SFO(WGS84): 237.6\n    test 70 geographiclib.BJS-SFO(Sphere): 9491734.6\n    test 71 geographiclib.BJS-SFO(Sphere): 237.6\n    test 72 geographiclib.SW-Perth(WGS84): 32.11195529\n    test 73 geographiclib.SW-Perth(WGS84): -63.95925278\n    test 74 geographiclib.SW-Perth(Sphere): 31.96383509\n    test 75 geographiclib.SW-Perth(Sphere): -64.14670854\n    test 76 geographiclib.JFK-LHR(WGS84): 40041368848742.5\n    test 77 geographiclib.JFK-LHR(WGS84): 5551759.4\n    test 78 geographiclib.JFK-LHR(Sphere): 40105639196534.8\n    test 79 geographiclib.JFK-LHR(Sphere): 5536892.0\n    test 80 geographiclib.Antarctica Peri(WGS84): 16831067.893\n    test 81 geographiclib.Antarctica Area(WGS84): 13662703680020.1\n    test 82 geographiclib.Antarctica Peri(Sphere): 16765661.499\n    test 83 geographiclib.Antarctica Area(Sphere): 13552524809674.8\n    test 84 isclockwise('Antarctica', adjust=False, wrap=True): 1.000\n    test 85 isclockwise('PtsFFI', adjust=False, wrap=True): 1.000\n    test 86 isclockwise('RdpFFI', adjust=False, wrap=True): 1.000\n    test 87 isclockwise('Pts', adjust=False, wrap=True): 1.000\n    test 88 isclockwise('VwPts', adjust=False, wrap=True): 1.000\n    test 89 isclockwise('_JFK_LHR1', adjust=False, wrap=True): 0.000\n    test 90 isclockwise('_JFK_LHR2', adjust=False, wrap=True): 0.000\n\n    77 of 90 testRoutes.py tests (85.6%) FAILED, incl. 21 KNOWN plus 56 DeprecationWarnings (pygeodesy 26.3.26 Python 3.14.3 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 2.501 sec\nrunning /Library/Framewo....n3.14 -W default ~/PyGeodesy/test/testSimplify.py\n./test/testSimplify.py:37: DeprecationWarning: function L{simplifyVWm<pygeodesy.deprecated.functions.simplifyVWm>} has been DEPRECATED on 2024.11.28, use function L{pygeodesy.simplifyVW}C{(points, modified=True, ...)}.\n  r = function(points, m, **kwds)\n./test/testSimplify.py:37: DeprecationWarning: function L{simplifyRDPm<pygeodesy.deprecated.functions.simplifyRDPm>} has been DEPRECATED on 2024.11.28, use function L{pygeodesy.simplifyRDP}C{(points, modified=True, ...)}.\n  r = function(points, m, **kwds)\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.EPS from .constants by testSimplify.py line 11\n# lazily imported pygeodesy.R_M from .constants by testSimplify.py line 11\n# lazily imported pygeodesy.LatLon_ from .points by testSimplify.py line 11\n# lazily imported pygeodesy.Numpy2LatLon from .points by testSimplify.py line 11\n# lazily imported pygeodesy.simplify1 from .simplify by testSimplify.py line 11\n# lazily imported pygeodesy.simplifyRW from .simplify by testSimplify.py line 11\n# lazily imported pygeodesy.simplifyRDP from .simplify by testSimplify.py line 11\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by <frozen importlib._bootstrap> line 1423\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by <frozen importlib._bootstrap> line 1423\n# lazily imported pygeodesy.Conformal2Tuple from .triaxials.triaxial5 by <frozen importlib._bootstrap> line 1423\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by classes.py line 21\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by classes.py line 21\n# lazily imported pygeodesy.Conformal2Tuple from .triaxials.triaxial5 by classes.py line 21\n# lazily imported pygeodesy.simplifyRDPm from .deprecated.functions by testSimplify.py line 11\n# lazily imported pygeodesy.simplifyVW from .simplify by testSimplify.py line 11\n# lazily imported pygeodesy.simplifyVWm from .deprecated.functions by testSimplify.py line 11\n# lazily imported pygeodesy.R_KM from .constants by testRoutes.py line 13\n# lazily imported pygeodesy.ellipsoidalVincenty by testRoutes.py line 13\n# lazily imported pygeodesy.sphericalTrigonometry by testRoutes.py line 13\n# lazily imported pygeodesy.areaOf from .points by testRoutes.py line 13\n# lazily imported pygeodesy.isclockwise from .points by testRoutes.py line 13\n# lazily imported pygeodesy.perimeterOf from .points by testRoutes.py line 13\n# lazily imported pygeodesy.unstr from .streprs by testRoutes.py line 13\n\n    testing testSimplify.py 23.03.27 (module pygeodesy.simplify 25.05.12) isLazy=3\n    test 1 simplify1(16614, adjust=True) 1m (29.893 ms): 16597\n    test 2 simplifyRW(16614, adjust=True, shortest=False, indices=True) 1m (200.670 ms): 7095\n    test 3 simplifyRW(16614, adjust=True, shortest=False) 1m (203.995 ms): 7095\n    test 4 simplifyRW(16614, adjust=True, shortest=True) 1m (196.239 ms): 8302\n    test 5 simplifyVWm(16614, adjust=True, indices=True) 1m (369.500 ms): 16328\n    test 6 simplifyVWm(16614, adjust=True) 1m (365.336 ms): 16328\n    test 7 simplifyVWm(16614, adjust=False) 1m (361.857 ms): 16373\n    test 8 simplifyRDPm(16614, adjust=True, shortest=False) 1m (367.755 ms): 15864\n    test 9 simplifyRDPm(16614, adjust=True, shortest=True) 1m (672.402 ms): 15867\n    test 10 simplifyRDPgr(16614, adjust=True, shortest=True, modified=True) 1m (31.033 ms): 15867\n    test 11 simplifyRDPm(16614, adjust=False, shortest=False) 1m (359.688 ms): 15869\n    test 12 simplifyRDPfw(16614, adjust=False, shortest=False, modified=True) 1m (17.343 ms): 15869\n    test 13 simplifyRDP(16614, adjust=True, shortest=True, indices=True) 1m (9.656 sec): 10960\n    test 14 simplifyRDP(16614, adjust=True, shortest=True) 1m (9.639 sec): 10960\n    test 15 simplifyRDPgr(16614, adjust=True, shortest=True, modified=False) 1m (311.941 ms): 10960\n    test 16 simplifyRDP(16614, adjust=False, shortest=False, indices=True) 1m (4.934 sec): 11248\n    test 17 simplifyRDP(16614, adjust=False, shortest=False) 1m (4.949 sec): 11248\n    test 18 simplifyRDPfw(16614, adjust=False, shortest=False, modified=False) 1m (128.367 ms): 11248\n    test 19 simplifyVW(1661, adjust=True) 1m (37.112 ms): 1641\n    test 20 simplifyVW(1661, adjust=False) 1m (36.334 ms): 1646\n    test 21 simplifyRDP(1661, adjust=True, shortest=False) 1m (370.517 ms): 1231\n    test 22 simplifyRDP(1661, adjust=True, shortest=True) 1m (718.775 ms): 1231\n    test 23 simplifyRDPgr(1661, adjust=True, shortest=True) 1m (23.405 ms): 1231\n    test 24 simplifyRDP(1661, adjust=False, shortest=False) 1m (373.964 ms): 1267\n    test 25 simplifyRDPfw(1661, adjust=False, shortest=False) 1m (10.017 ms): 1267\n    test 26 simplifyRDPgr(1661, adjust=False, shortest=True) 1m (17.025 ms): 1267\n    test 27 simplifyVW(69, adjust=False) 1m (1.517 ms): 69\n    test 28 simplifyRDP(69, adjust=False, shortest=False) 1m (7.826 ms): 50\n    test 29 simplifyRDPfw(69, adjust=False, shortest=False) 1m (226.021 us): 50\n    test 30 simplifyRDPgr(69, adjust=False, shortest=True) 1m (379.086 us): 50\n    test 31 simplifyRDPgr(69, adjust=True, shortest=True) 1m (497.818 us): 45\n    test 32 simplifyRDP(5, adjust=False, shortest=True) 1m (151.873 us): 5\n    test 33 simplifyVW(5, adjust=False, attr='name') 30m (113.249 us): 5\n    test 34 no module: numpy\n\n    6 of 34 testSimplify.py tests (17.6%) FAILED, incl. 6 DeprecationWarnings (pygeodesy 26.3.26 Python 3.14.3 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 34.392 sec\nrunning /Library/Framewo....n3.14 -W default ~/PyGeodesy/test/testSpherical.py\n./test/testLatLon.py:276: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.sphericalNvector.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', p.cosineAndoyerLambertTo(q), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:277: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.sphericalNvector.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', q.cosineAndoyerLambertTo(p), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:279: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.sphericalNvector.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', p.cosineForsytheAndoyerLambertTo(q), '124801.098' if Sph else '125205.965', fmt='%.3f')\n./test/testLatLon.py:280: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.sphericalNvector.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', q.cosineForsytheAndoyerLambertTo(p), '124801.098' if Sph else '125205.965', fmt='%.3f')\n./test/testVectorial.py:128: DeprecationWarning: function L{nearestOn<pygeodesy.vector2d.nearestOn>} has been DEPRECATED on 2025.05.06, use L{pygeodesy.nearestOn<pygeodesy.vector3d.nearestOn>}.\n  t = vector2d.nearestOn(Nvector(0, 0, 0), p1, p2)\n./test/testSpherical.py:318: DeprecationWarning: method L{rhumbBearingTo<pygeodesy.sphericalNvector.LatLon.rhumbBearingTo>} has been DEPRECATED, use method C{.rhumbAzimuthTo}.\n  b = p.rhumbBearingTo(q)  # rhumbAzimuthTo\n./test/testLatLon.py:276: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.sphericalTrigonometry.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', p.cosineAndoyerLambertTo(q), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:277: DeprecationWarning: method L{cosineAndoyerLambertTo<pygeodesy.sphericalTrigonometry.LatLon.cosineAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=1}.\n  self.test('cosineAndoyerLambertTo', q.cosineAndoyerLambertTo(p), '124801.098' if Sph else '125205.962', fmt='%.3f')\n./test/testLatLon.py:279: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.sphericalTrigonometry.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', p.cosineForsytheAndoyerLambertTo(q), '124801.098' if Sph else '125205.965', fmt='%.3f')\n./test/testLatLon.py:280: DeprecationWarning: method L{cosineForsytheAndoyerLambertTo<pygeodesy.sphericalTrigonometry.LatLon.cosineForsytheAndoyerLambertTo>} has been DEPRECATED on 2024.12.31, use method L{cosineLawTo} with C{B{corr}=2}.\n  self.test('cosineForsyheAndoyerLambertTo', q.cosineForsytheAndoyerLambertTo(p), '124801.098' if Sph else '125205.965', fmt='%.3f')\n./test/testSpherical.py:318: DeprecationWarning: method L{rhumbBearingTo<pygeodesy.sphericalTrigonometry.LatLon.rhumbBearingTo>} has been DEPRECATED, use method C{.rhumbAzimuthTo}.\n  b = p.rhumbBearingTo(q)  # rhumbAzimuthTo\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.Aer from .ltpTuples by testLatLon.py line 12\n# lazily imported pygeodesy.Enu from .ltpTuples by testLatLon.py line 12\n# lazily imported pygeodesy.F_D from .dms by testLatLon.py line 12\n# lazily imported pygeodesy.F_DM from .dms by testLatLon.py line 12\n# lazily imported pygeodesy.F_DMS from .dms by testLatLon.py line 12\n# lazily imported pygeodesy.F_RAD from .dms by testLatLon.py line 12\n# lazily imported pygeodesy.R_M from .constants by testLatLon.py line 12\n# lazily imported pygeodesy.R_NM from .constants by testLatLon.py line 12\n# lazily imported pygeodesy.degrees from .utily by testLatLon.py line 12\n# lazily imported pygeodesy.fstr from .streprs by testLatLon.py line 12\n# lazily imported pygeodesy.isclockwise from .points by testLatLon.py line 12\n# lazily imported pygeodesy.isconvex from .points by testLatLon.py line 12\n# lazily imported pygeodesy.isenclosedBy from .points by testLatLon.py line 12\n# lazily imported pygeodesy.isnear0 from .constants by testLatLon.py line 12\n# lazily imported pygeodesy.ispolar from .points by testLatLon.py line 12\n# lazily imported pygeodesy.Local9Tuple from .ltpTuples by testLatLon.py line 12\n# lazily imported pygeodesy.Ltp from .ltp by testLatLon.py line 12\n# lazily imported pygeodesy.m2km from .utily by testLatLon.py line 12\n# lazily imported pygeodesy.m2NM from .utily by testLatLon.py line 12\n# lazily imported pygeodesy.Ned from .ltpTuples by testLatLon.py line 12\n# lazily imported pygeodesy.XyzLocal from .ltpTuples by testLatLon.py line 12\n# lazily imported pygeodesy.IntersectionError from .errors by testLatLon.py line 12\n# lazily imported pygeodesy.VincentyError from .ellipsoidalVincenty by testLatLon.py line 12\n# lazily imported pygeodesy.EPS from .constants by testVectorial.py line 11\n# lazily imported pygeodesy.EPS4 from .constants by testVectorial.py line 11\n# lazily imported pygeodesy.NEG0 from .constants by testVectorial.py line 11\n# lazily imported pygeodesy.circin6 from .vector2d by testVectorial.py line 11\n# lazily imported pygeodesy.circum3 from .vector2d by testVectorial.py line 11\n# lazily imported pygeodesy.circum4_ from .vector2d by testVectorial.py line 11\n# lazily imported pygeodesy.intersection3d3 from .vector3d by testVectorial.py line 11\n# lazily imported pygeodesy.meeus2 from .vector2d by testVectorial.py line 11\n# lazily imported pygeodesy.radii11 from .vector2d by testVectorial.py line 11\n# lazily imported pygeodesy.sincos2d from .utily by testVectorial.py line 11\n# lazily imported pygeodesy.sphericalNvector by testVectorial.py line 11\n# lazily imported pygeodesy.soddy4 from .vector2d by testVectorial.py line 11\n# lazily imported pygeodesy.trilaterate2d2 from .vector2d by testVectorial.py line 11\n# lazily imported pygeodesy.trilaterate3d2 from .vector3d by testVectorial.py line 11\n# lazily imported pygeodesy.Vector3d from .vector3d by testVectorial.py line 11\n# lazily imported pygeodesy.VectorError from .errors by testVectorial.py line 11\n# lazily imported pygeodesy.F_DEG_ from .dms by testSpherical.py line 13\n# lazily imported pygeodesy.PI_4 from .constants by testSpherical.py line 13\n# lazily imported pygeodesy.classname from .named by testSpherical.py line 13\n# lazily imported pygeodesy.degrees2m from .utily by testSpherical.py line 13\n# lazily imported pygeodesy.Ellipsoids from .ellipsoids by testSpherical.py line 13\n# lazily imported pygeodesy.latlonDMS from .dms by testSpherical.py line 13\n# lazily imported pygeodesy.lonDMS from .dms by testSpherical.py line 13\n# lazily imported pygeodesy.sphericalTrigonometry by testSpherical.py line 446\n\n    testing testSpherical.py 23.10.23 isLazy=3\n\n    testLatLon(pygeodesy.sphericalNvector, 25.05.27)\n    test 1 isEllipsoidal: False\n    test 2 isSpherical: True\n    test 3 lat/lonDMS: 52.20472°N, 000.14056°E\n    test 4 lat/lonDMS F_DM: 52°12.283′N, 000°08.434′E\n    test 5 lat/lonDMS F_DM: 52°12.2832′N, 000°08.4336′E\n    test 6 lat/lonDMS F_DMS: 52°12′17″N, 000°08′26″E\n    test 7 lat/lonDMS F_DMS: 52°12′17.0″N, 000°08′26.0″E\n    test 8 lat/lonDMS F_RAD: 0.911144N, 0.002453E\n# imported pygeodesy.formy into latlonBase.py line 756\n    test 9 isequalTo: True\n    test 10 isequalTo: True\n    test 11 latlon2: 52.20472, 0.14056\n    test 12 latlon2: 52.2047, 0.1406\n    test 13 latlon2: 52.205, 0.141\n    test 14 latlon2: 52.2, 0.14\n    test 15 latlon2: 52.2, 0.1\n    test 16 latlon2: 52.0, 0.0\n    test 17 chordTo: 12036677.26\n    test 18 chordTo: 12036463.78\n    test 19 initialBearingTo: 156.1666\n    test 20 initialBearingTo: 65.8921\n    test 21 initialBearingTo: 0.0\n    test 22 initialBearingTo: 180.0\n    test 23 finalBearingTo: 157.8904\n    test 24 finalBearingTo: 93.8581\n    test 25 bearingTo2: 156.1666, 157.8904\n    test 26 ispolar: True\n    test 27 copy: True\n    test 28 __eq__: True\n    test 29 __ne__: False\n# lazily imported pygeodesy.angles by units.py line 633\n    test 30 equirectangularTo: 404329.56\n    test 31 distanceTo: 404279.720589\n    test 32 distanceTo: 404279.720589\n    test 33 distanceTo: 2145\n    test 34 distanceTo: 18013602.92\n    test 35 distanceTo: 20015114.35\n    test 36 intermediateTo: 51.372084°N, 000.707337°E\n    test 37 intermediateTo: True\n    test 38 intermediateTo: 404279.721\n    test 39 intermediateTo+5: 35.160975°N, 008.989542°E\n    test 40 intermediateTo+5: 5.000\n    test 41 intermediateTo-4: 64.911647°N, 013.726301°W\n    test 42 intermediateTo-4: 4.000\n    test 43 intermediateTo-h: 125.000\n    test 44 intermediateChordTo: 51.372294°N, 000.707192°E\n    test 45 intermediateChordTo: True\n    test 46 intermediateChordTo-h: 125.000\n    test 47 midpointTo: 50.536327°N, 001.274614°E\n    test 48 destination: 51.513546°N, 000.098345°W\n    test 49 destination: 51°30′49″N, 000°05′54″W\n    test 50 destination: 34°37′N, 116°33′W\n    test 51 destination: 34.613647°N, 116.55116°W\n    test 52 destination: 0.604122N, 2.034201W\n    test 53 destination: 31.96383509°N, 064.37329146°E\n    test 54 alongTrackDistanceTo: 62331.59\n    test 55 alongTrackDistanceTo: 62331.58\n    test 56 alongTrackDistanceTo: 99.588\n    test 57 alongTrackDistanceTo: -7702.7\n    test 58 alongTrackDistanceTo: 7587.6\n    test 59 crossTrackDistanceTo: -305.66528160755445  FAILED, KNOWN, expected TypeError\n    test 60 crossTrackDistanceTo: -307.55\n    test 61 crossTrackDistanceTo: 7.4524\n    test 62 greatCircle: (-0.79408, 0.12856, 0.59406)\n# lazily imported pygeodesy.booleans by iters.py line 76\n    test 63 neareston6: (LatLon(45°00′00.0″N, 001°00′00.0″E), 4773243.784965, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E))  FAILED, KNOWN, expected (LatLon(45°00′00.0″N, 001°00′00.0″E), 4755443.4294, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E))\n    test 64 neareston6: (LatLon(45°30′03.93″N, 002°00′00.0″E), 38968.531578, 1.501091, 2, LatLon(45°00′00.0″N, 002°00′00.0″E), LatLon(46°00′00.0″N, 002°00′00.0″E))  FAILED, KNOWN, expected (LatLon(45°30′03.94″N, 002°00′00.0″E), 39078.729285, 1.501072, 2, LatLon(45°00′00.0″N, 002°00′00.0″E), LatLon(46°00′00.0″N, 002°00′00.0″E))\n    test 65 chordTo: 124799.103\n    test 66 cosineAndoyerLambertTo: 124801.098\n    test 67 cosineAndoyerLambertTo: 124801.098\n    test 68 cosineForsyheAndoyerLambertTo: 124801.098\n    test 69 cosineForsyheAndoyerLambertTo: 124801.098\n    test 70 cosineLawTo: 124801.098\n    test 71 cosineLawTo: 124801.098\n    test 72 equirectangularTo: 124804.754\n    test 73 equirectangularTo: 124804.754\n    test 74 euclideanTo: 130015.089\n    test 75 euclideanTo: 130015.089\n    test 76 flatLocalTo: 124804.754\n    test 77 flatLocalTo: 124804.754\n    test 78 flatPolarTo: 133663.257\n    test 79 flatPolarTo: 133663.257\n    test 80 hartzell: 53.3206°N, 001.7297°W\n# lazily imported pygeodesy.triaxials by lazily.py line 529\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by ellipsoids.py line 1905\n    test 81 hartzell: 53.3206°N, 001.7297°W\n    test 82 height4: 0.0\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by cartesianBase.py line 364\n    test 83 height4: (3803904.2, -114870.8, 5109488.3, 0.0)\n    test 84 height4: 53°19′14.2″N, 001°43′46.9″W\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by cartesianBase.py line 364\n    test 85 height4: 53°19′14.2″N, 001°43′46.9″W\n    test 86 haversineTo: 124801.098\n    test 87 haversineTo: 124801.098\n    test 88 hubenyTo: <bound method LatLonBase.flatLocalTo of LatLon(53°19′14.16″N, 001°43′46.92″W)>\n    test 89 hubenyTo: <bound method LatLonBase.flatLocalTo of LatLon(53°11′19.32″N, 000°08′00.24″E)>\n    test 90 thomasTo: 124801.098\n    test 91 thomasTo: 124801.098\n    test 92 vincentysTo: 124801.098\n    test 93 vincentysTo: 124801.098\n    test 94 greatCircleTo: (-0.79408, 0.12859, 0.59406)\n    test 95 isclockwise: False\n    test 96 isclockwise*: False\n    test 97 isclockwise: True\n    test 98 isclockwise*: True\n    test 99 isclockwise: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 100 isclockwise*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 101 isclockwise: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 102 isclockwise*: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 103 isconvex: False\n    test 104 isconvex*: False\n    test 105 isconvex: True\n    test 106 isconvex*: True\n    test 107 isconvex: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 108 isconvex*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 109 isenclosedBy1: True\n    test 110 isenclosedBy1*: True\n    test 111 isenclosedBy2: False\n    test 112 isenclosedBy2*: False\n    test 113 isenclosedBy3: False\n    test 114 isenclosedBy3*: False\n    test 115 isenclosedBy4: False\n    test 116 isenclosedBy4*: False\n    test 117 isenclosedBy5: False\n    test 118 isenclosedBy5*: False\n    test 119 isenclosedBy6: True\n    test 120 isenclosedBy6*: True\n    test 121 isenclosedBy7: True\n    test 122 isenclosedBy7*: True\n    test 123 isenclosedBy-CCW: True\n    test 124 isenclosedBy-CW : True\n    test 125 isenclosedBy-CCW: True\n    test 126 initialBearingTo: 102.432182\n    test 127 compassAngleTo: 100.017\n    test 128 compassAngleTo: 105.599\n    test 129 initialBearingTo: 288.715918\n    test 130 compassAngleTo: 280.017\n    test 131 compassAngleTo: 285.599\n    test 132 equirectangularTo: 592.185\n    test 133 distanceTo: 591.831\n    test 134 compassAngleTo: 0.0\n    test 135 compassAngleTo: 45.0\n    test 136 compassAngleTo: 90.0\n    test 137 compassAngleTo: 180.0\n    test 138 compassAngleTo: 225.0\n    test 139 compassAngleTo: 315.0\n    test 140 compassAngleTo: 270.0\n    test 141 compassAngleTo: 359.4\n    test 142 latlon2: (53.0, 1.0)\n    test 143 philam2: (0.93, 0.02)\n    test 144 compassAngleTo: 31\n    test 145 compassAngleTo: 45\n\n    test 146 boundsOf: <class 'pygeodesy.namedTuples.Bounds2Tuple'>\n    test 147 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 148 latlon2: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 149 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 150 isequalTo: <class 'bool'>\n    test 151 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 152 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 153 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 154 xyz3: <class 'tuple'>\n    test 155 xyzh: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 156 compassAngleTo: <class 'float'>\n    test 157 cosineLawTo: <class 'float'>\n    test 158 euclideanTo: <class 'float'>\n    test 159 flatLocalTo: <class 'float'>\n    test 160 flatPolarTo: <class 'float'>\n    test 161 haversineTo: <class 'float'>\n    test 162 hubenyTo: <class 'float'>\n    test 163 vincentysTo: <class 'float'>\n# imported pygeodesy.ltpTuples into ecefLocals.py line 80\n# imported pygeodesy.ltp into ecefLocals.py line 63\n# imported pygeodesy.ltp into ltpTuples.py line 1585\n    test 164 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 165 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 166 toLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 167 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 168 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 169 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 170 toVector: (3922384.659522, 0.0, 5020423.423198)\n    test 171 toVector3d: (0.61566, 0.0, 0.78801)\n    test 172 trilaterate5 (pygeodesy.sphericalNvector) .min: 223.305\n    test 173 trilaterate5 (pygeodesy.sphericalNvector) .point: 42.67456065°N, 002.49539502°E\n    test 174 trilaterate5 (pygeodesy.sphericalNvector) .min- is .maxPoint: True\n    test 175 trilaterate5 (pygeodesy.sphericalNvector) .n: 1\n    test 176 trilaterate5 (pygeodesy.sphericalNvector) .error: sphericalNvector.LatLon.trilaterate5(area=True), MRO(nvectorBase.LatLonNvectorBase, sphericalBase.LatLonSphericalBase, latlonBase.LatLonBase, named._NamedBase, ecefLocals._EcefLocal, named._Named): not implemented\n\n    test 177 radii11: Radii11Tuple(rA=7701.409157, rB=1361.530045, rC=499.257353, cR=4886.694635, rIn=739.915482, riS=179.523525, roS=6087.250896, a=1860.787398, b=8200.666509, c=9062.939201, s=9562.196554)\n\n    22 tests skipped (22): No module named 'numpy': required by vector2d._numpy\n\n    test 178 area cw/ccw: 1.0\n\n    testVectorial(pygeodesy.sphericalNvector, 25.05.27)\n    test 179 crossTrackDistanceTo: -305.67\n    test 180 crossTrackDistanceTo: -307.55\n\n    test 181 toLatLon: 44.995674°N, 045.0°E\n    test 182 toNvector: (0.50004, 0.50004, 0.70705)\n    test 183 isequalTo: False\n    test 184 isequalTo: True\n    test 185 length: 0.99992449715\n    test 186 euclid: 0.99995577\n    test 187 length: 1.00\n    test 188 euclid: 1.0000\n    test 189 meanOf: 44.995674°N, 045.0°E\n    test 190 meanOf: LatLon\n    test 191 apply: (0.5, 0.5, 0.707)\n    test 192 init: (0.5, 0.5, 0.707)\n    test 193 i***: (0.5, 0.5, 0.707)\n    test 194 abs: 0.99992449715\n    test 195 sumOf: (52.70504, 0.61904, 0.70705)\n    test 196 sumOf: Nv\n    test 197 sumOf: sumOf\n    test 198 length: 52.7134151513\n    test 199 sizeof: 217  FAILED, KNOWN, expected 128\n    test 200 length: 52.2051356286\n    test 201 sizeof: 320  FAILED, KNOWN, expected 247\n    test 202 copy: True\n    test 203 length: 52.2051356286\n    test 204 sizeof: 320\n\n    test 205 toCartesian: [3185744.919, 3185744.919, 4504643.315]\n    test 206 toLatLon: 44.995674°N, 045.0°E\n    test 207 toNvector: (0.50004, 0.50004, 0.70705)  FAILED, KNOWN, expected (0.50004, 0.50004, 0.70705, -0.00)\n\n    test 208 intersection: 02.499372°N, 002.5°E\n\n    test 209 intersection1: 02.499372°N, 002.5°E\n    test 210 intersection2: 02.499372°S, 177.5°W\n\n    test 211 isenclosedBy: True\n    test 212 isenclosedBy*: True\n    test 213 isenclosedBy: True\n    test 214 isenclosedBy*: True\n\n    test 215 iswithin: False\n    test 216 iswithin: True\n\n    test 217 nearestOn: 51.0°N, 001.0°E\n    test 218 nearestOn: 50.987°N, 000.298°W\n    test 219 nearestOn: 51.0°N, 002.0°E\n    test 220 nearestOn: 50.995°N, 002.655°E\n    test 221 nearestOn: 51.0°N, 001.9°E\n    test 222 nearestOn: True\n    test 223 distanceTo: 42.712\n    test 224 nearestOn: 51.0°N, 002.0°E\n    test 225 nearestOn: True\n    test 226 nearestOn: 00.0°N, 000.0°E\n    test 227 nearestOn: True\n    test 228 nearestOn: 00.0°N, 020.0°E\n    test 229 nearestOn: True\n    test 230 nearestOn: 02.0°N, 002.0°E\n    test 231 nearestOn: 02.0°N, 002.0°E\n\n    test 232 neareston6: (LatLon(45°00′00.0″N, 001°00′00.0″E), 4773243.784965, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E))\n    test 233 neareston6: (LatLon(45°30′03.93″N, 002°00′00.0″E), 38968.531578, 1.501091, 2, LatLon(45°00′00.0″N, 002°00′00.0″E), LatLon(46°00′00.0″N, 002°00′00.0″E))\n\n    test 234 BasseC: 47.3038°N, 002.5721°W\n    test 235 BasseH: 47.311067°N, 002.528617°W\n    test 236 triangulate: 47.323667°N, 002.568501°W\n    test 237 triangulate: True\n\n    test 238 trilaterate: 37.419078°N, 121.960579°W\n    test 239 trilaterate: True\n    test 240 trilaterate: 08.068912°S, 034.888699°W\n    test 241 trilaterate: True\n    test 242 trilaterate: 08.068912°S, 034.888695°W  FAILED, KNOWN, expected 08.068912°S, 034.888699°W\n    test 243 trilaterate: True\n    test 244 trilaterate: 42.67456065°N, 002.49539502°E\n# imported pygeodesy.basics into errors.py line 443\n    test 245 trilaterate: distance1 (5110), distance2 (5110), distance3 (5110), point1 (LatLon(42°41′19.82″N, 002°26′19.89″E)), point2 (LatLon(42°38′07.52″N, 002°31′21.25″E)) or point3 (LatLon(42°38′43.44″N, 002°30′17.32″E)): no intersection (useZ=False, wrap=False, z=-8.13526e-05)\n\n    testNvector(pygeodesy.sphericalNvector, 25.05.27)\n    test 246 sumOf: Nvector\n    test 247 ecef.x, .y, .z: 3185744.91853, 3185744.91853, 4504643.3148\n    test 248 ecef.lat, .lon: 44.995674, 45.0\n    test 249 ecef.height: -0.0\n    test 250 ecef.M: -0.707106781, -0.499962243, 0.500037754, 0.707106781, -0.499962243, 0.500037754, 0.0, 0.707160174, 0.707053385\n    test 251 nearestOn: (0.0, 0.0, 0.0)\n    test 252 nearestOn: True\n    test 253 nearestOn: (100.0, 100.0, 100.0)\n    test 254 nearestOn: True\n# imported pygeodesy.vector2d into vector3d.py line 659\n    test 255 iscolinearWith: False\n    test 256 iscolinearWith: True\n    test 257 nearestOn: (0.0, 0.0, 0.0)\n    test 258 nearestOn: True\n    test 259 nearestOn: (100.0, 100.0, 100.0)\n    test 260 nearestOn: True\n    test 261 iscolinearWith: False\n    test 262 iscolinearWith: True\n\n    testSpherical(pygeodesy.sphericalNvector, 25.05.27)\n    test 263 isSpherical: True\n    test 264 isEllipsoidal: False\n    test 265 datum: name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84\n    test 266 ellipsoid: name='SphereAuthalic', a=6371000, f=0, f_=0, b=6371000\n    test 267 datum: name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84\n    test 268 isSpherical: True\n    test 269 isEllipsoidal: False\n    test 270 intersection1: 50.907608°N, 004.508575°E\n    test 271 intersection1: 50°54′27.39″N, 004°30′30.87″E\n    test 272 intersection1: True\n    test 273 intersection2: True\n    test 274 intersection2: 43.5719°N, 116.188757°W\n    test 275 intersection2: 43°34′18.84″N, 116°11′19.53″W\n    test 276 intersection3: 51.882166°N, 000.267801°E\n    test 277 intersection4: 00.0°S, 026.565051°E  FAILED, KNOWN, expected 00.0°N, 026.565051°E\n    test 278 intersection5: 26.565051°N, 000.0°W\n    test 279 intersection6: 50.907809°N, 004.50841°E\n    test 280 intersection7: 01°52′46.41″S, 005°39′06.87″E\n    test 281 intersection8: 28°15′40.35″S, 032°14′33.2″E\n    test 282 toward 1,1 N,E nearest: 00.999848°N, 001.0°E\n    test 283 toward 1,1 E,N nearest: 00.999848°N, 001.0°E\n    test 284 toward 1,1 N,E antipodal: 00.999848°S, 179.0°W\n    test 285 toward/away 1,1 N,W antipodal: 00.999848°N, 001.0°E\n    test 286 toward/away 1,1 W,N antipodal: 00.999848°S, 179.0°W\n    test 287 toward/away 1,1 S,E antipodal: 00.999848°S, 179.0°W\n    test 288 toward/away 1,1 E,S antipodal: 00.999848°N, 001.0°E\n    test 289 away 1,1 S,W antipodal: 00.999848°S, 179.0°W\n    test 290 away 1,1 W,S antipodal: 00.999848°S, 179.0°W\n    test 291 1E/90E N,E antipodal: 00.017454°N, 001.0°E\n    test 292 1E/90E N,E nearest: 00.017454°N, 179.0°W\n    test 293 brng+end 1a: 01.000305°N, 002.0°E\n    test 294 brng+end 1b: 01.000305°N, 002.0°E\n    test 295 brng+end 2a: 01.000305°S, 178.0°W\n    test 296 brng+end 2b: 01.000305°S, 178.0°W\n    test 297 intersection7: 02.499372°N, 002.5°E\n    test 298 maxLat0: 90.0\n    test 299 maxLat1: 89.0\n    test 300 maxLat90: 0.0\n    test 301 minLat0: -90.0\n    test 302 minLat1: -89.0\n    test 303 minLat90: -0.0\n    test 304 parse: 00.0°N, 000.0°E\n\n    test 305 intersecant2: 04.260346°N, 006.272173°E and 01.250608°S, 000.749094°E\n    test 306 intersecant2: 700000\n    test 307 intersecant2: 699999  FAILED, KNOWN, expected 700000\n    test 308 intersecant2: 45.014  FAILED, KNOWN, expected 45.000\n\n    test 309 intersecant2: 04.261539°N, 006.265474°E and 00.0°N, 002.0°E\n    test 310 intersecant2: 699248  FAILED, KNOWN, expected 700000\n    test 311 intersecant2: 598698  FAILED, KNOWN, expected 700000\n    test 312 intersecant2: 45.000\n# lazily imported pygeodesy.rhumb by ellipsoids.py line 1518\n\n    test 313 intersecant2: 04.262363°N, 006.2663°E and 01.258709°S, 000.74119°E\n    test 314 intersecant2: 699302  FAILED, KNOWN, expected 700000\n    test 315 intersecant2: 700080  FAILED, KNOWN, expected 700000\n    test 316 intersecant2: 45.021  FAILED, KNOWN, expected 45.000\n\n    test 317 intersecant4: 02.375133°N, 024.894142°E and 25.0°S, 000.0°E  FAILED, KNOWN, expected 00.0°N, 025.0°E and 25.0°S, 000.0°E\n    test 318 intersecant4: 00.0°S, 025.0°E and 25.0°S, 000.0°E  FAILED, KNOWN, expected 00.0°N, 025.0°E and 25.0°S, 000.0°E\n    test 319 intersecant4: 02.375133°N, 024.894142°E and 25.0°S, 000.0°E  FAILED, KNOWN, expected 00.0°N, 025.0°E and 25.0°S, 000.0°E\n    test 320 intersecant4: 00.0°S, 025.0°E and 25.0°S, 000.0°E  FAILED, KNOWN, expected 00.0°N, 025.0°E and 25.0°S, 000.0°E\n\n    test 321 intersecant4: 00.725365°N, 026.558638°E and 25.747°S, 000.826763°W  FAILED, KNOWN, expected 00.0°N, 025.0°E and 25.0°S, 000.0°E\n    test 322 intersecant4: 00.725365°N, 026.558638°E and 25.747°S, 000.826763°W  FAILED, KNOWN, expected 00.0°N, 025.0°E and 25.0°S, 000.0°E\n    test 323 intersecant4: 00.021635°S, 025.811619°E and 25.0°S, 000.0°E  FAILED, KNOWN, expected 00.0°N, 025.0°E and 25.0°S, 000.0°E\n    test 324 intersecant4: 00.021635°S, 025.811619°E and 25.0°S, 000.0°E  FAILED, KNOWN, expected 00.0°N, 025.0°E and 25.0°S, 000.0°E\n\n    test 325 intersecant4: 00.807845°N, 026.641126°E and 25.0°S, 000.0°E  FAILED, KNOWN, expected 00.0°N, 025.0°E and 25.0°S, 000.0°E\n    test 326 intersecant4: 01.624807°N, 026.572609°E and 25.0°S, 000.0°E  FAILED, KNOWN, expected 00.0°N, 025.0°E and 25.0°S, 000.0°E\n    test 327 intersecant4: 00.807845°N, 026.641126°E and 25.0°S, 000.0°E  FAILED, KNOWN, expected 00.0°N, 025.0°E and 25.0°S, 000.0°E\n    test 328 intersecant4: 01.624807°N, 026.572609°E and 25.0°S, 000.0°E  FAILED, KNOWN, expected 00.0°N, 025.0°E and 25.0°S, 000.0°E\n\n    test 329 intersecant2.1: LatLon(04°04′02.63″S, 029°43′21.16″W) Napier: 3333000.000\n    test 330 intersecant2.1: LatLon(29°58′27.6″N, 000°01′46.65″W) Napier: 3333000.000\n    test 331 intersecant2.1: LatLon(29°58′27.6″N, 000°01′46.65″W) : 3332999.886  FAILED, KNOWN, expected 3333000.000\n    test 332 intersecant2.1: LatLon(02°29′47.81″S, 028°30′01.84″W) : 3180236.460  FAILED, KNOWN, expected 3333000.000\n\n    test 333 intersecant2.2: LatLon(04°04′02.63″S, 029°43′21.16″E) Napier: 3333000.000\n    test 334 intersecant2.2: LatLon(29°58′27.6″N, 000°01′46.65″E) Napier: 3333000.000\n    test 335 intersecant2.2: LatLon(02°29′47.81″S, 028°30′01.84″E) : 3180236.460  FAILED, KNOWN, expected 3333000.000\n    test 336 intersecant2.2: LatLon(29°58′27.6″N, 000°01′46.65″E) : 3332999.886  FAILED, KNOWN, expected 3333000.000\n\n    test 337 intersecant2.3: LatLon(04°04′02.63″N, 029°43′21.16″W) Napier: 3333000.000\n    test 338 intersecant2.3: LatLon(29°58′27.6″S, 000°01′46.65″W) Napier: 3333000.000\n    test 339 intersecant2.3: LatLon(29°58′27.6″S, 000°01′46.65″W) : 3332999.886  FAILED, KNOWN, expected 3333000.000\n    test 340 intersecant2.3: LatLon(02°29′47.81″N, 028°30′01.84″W) : 3180236.460  FAILED, KNOWN, expected 3333000.000\n\n    test 341 intersecant2.4: LatLon(29°50′37.22″S, 002°56′03.42″W) Napier: 3333000.000\n    test 342 intersecant2.4: LatLon(00°29′30.34″N, 029°58′14.48″E) Napier: 3333000.000\n    test 343 intersecant2.4: LatLon(00°08′01.47″N, 029°38′09.18″E) : 3295394.784  FAILED, KNOWN, expected 3333000.000\n    test 344 intersecant2.4: LatLon(29°31′09.01″S, 002°27′32.93″W) : 3292733.874  FAILED, KNOWN, expected 3333000.000\n\n    test 345 intersecant2.5: LatLon(00°01′46.69″S, 029°58′27.6″E) Napier: 3333000.000\n    test 346 intersecant2.5: LatLon(29°58′27.59″S, 000°02′03.16″E) Napier: 3333000.000\n    test 347 intersecant2.5: LatLon(01°38′23.65″S, 028°34′45.37″E) : 3182660.966  FAILED, KNOWN, expected 3333000.000\n    test 348 intersecant2.5: LatLon(29°58′27.58″S, 000°02′03.17″E) : 3332999.848  FAILED, KNOWN, expected 3333000.000\n\n    test 349 intersecant2.6: LatLon(05°08′54.91″S, 029°34′09.94″E) Napier: 3333000.000\n    test 350 intersecant2.6: LatLon(28°36′28.71″S, 009°21′04.99″E) Napier: 3333000.000\n    test 351 intersecant2.6: LatLon(11°51′13.84″S, 024°23′59.0″E) : 2998636.503  FAILED, KNOWN, expected 3333000.000\n    test 352 intersecant2.6: LatLon(26°53′11.53″S, 011°08′26.36″E) : 3218384.739  FAILED, KNOWN, expected 3333000.000\n    test 353 isenclosedBy: True\n    test 354 isenclosedBy*: True\n    test 355 isenclosedBy: True\n    test 356 isenclosedBy*: True\n    test 357 rhumbBearingTo: 116.722\n    test 358 rhumbDestination: 50.964155°N, 001.853°E\n    test 359 rhumbDestination: True\n    test 360 rhumbDistanceTo: 40307.8\n    test 361 rhumbMidpointo-0.5: 51.0455°N, 001.595727°E\n    test 362 rhumbMidpointo: True\n    test 363 rhumbMidpointo-0.0: 51.127°N, 001.338°E\n    test 364 rhumbMidpointo-0.25: 51.08625°N, 001.46692°E\n    test 365 rhumbMidpointo-0.75: 51.00475°N, 001.72442°E\n    test 366 rhumbMidpointo-1.0: 50.964°N, 001.853°E\n    test 367 rhumbMidpointo-2.0: 50.801°N, 002.366196°E\n    test 368 areaOf: 8.66605875e+09\n    test 369 perimeterOf: 3.78258541e+05\n    test 370 perimeterOf: 2.67063461e+05\n    test 371 areaOf: 6.18e+09\n    test 372 perimeterOf: 3.79639757e+05\n    test 373 perimeterOf: 2.68444678e+05\n    test 374 nearestOn3: 46.000996°N, 001.353049°E\n    test 375 nearestOn3: 569987.49\n    test 376 distanceTo: 569987.49\n    test 377 nearestOn3: 46.0°N, 002.0°E\n    test 378 nearestOn3: 134989.80\n    test 379 distanceTo: 134989.80\n    test 380 nearestOn3: 45.330691°N, 001.318551°E\n    test 381 distance: 64856.28\n    test 382 distanceTo: 64856.28\n    test 383 compassAngleTo: 304.54\n    test 384 difference: 1000.53\n    test 385 ispolar: True\n    test 386 ispolar*: True\n    test 387 ispolar: False  FAILED, KNOWN, expected True\n    test 388 ispolar*: False  FAILED, KNOWN, expected True\n    test 389 ispolar: True\n    test 390 ispolar*: True\n    test 391 nearestOn: 01.5°N, 001.5°E, +149.99m\n    test 392 nearestOn3: 01.5°N, 001.5°E, +149.99m\n    test 393 midpointTo: 50.5363°N, 001.2746°E, +150.00m\n    test 394 intermediateTo: 50.5363°N, 001.2746°E, +150.00m\n\n    testLatLon(pygeodesy.sphericalTrigonometry, 25.08.31)\n    test 395 isEllipsoidal: False\n    test 396 isSpherical: True\n    test 397 lat/lonDMS: 52.20472°N, 000.14056°E\n    test 398 lat/lonDMS F_DM: 52°12.283′N, 000°08.434′E\n    test 399 lat/lonDMS F_DM: 52°12.2832′N, 000°08.4336′E\n    test 400 lat/lonDMS F_DMS: 52°12′17″N, 000°08′26″E\n    test 401 lat/lonDMS F_DMS: 52°12′17.0″N, 000°08′26.0″E\n    test 402 lat/lonDMS F_RAD: 0.911144N, 0.002453E\n    test 403 isequalTo: True\n    test 404 isequalTo: True\n    test 405 latlon2: 52.20472, 0.14056\n    test 406 latlon2: 52.2047, 0.1406\n    test 407 latlon2: 52.205, 0.141\n    test 408 latlon2: 52.2, 0.14\n    test 409 latlon2: 52.2, 0.1\n    test 410 latlon2: 52.0, 0.0\n    test 411 chordTo: 12036677.26\n    test 412 chordTo: 12036463.78\n    test 413 initialBearingTo: 156.1666\n    test 414 initialBearingTo: 65.8921\n    test 415 initialBearingTo: 0.0\n    test 416 initialBearingTo: 180.0\n    test 417 finalBearingTo: 157.8904\n    test 418 finalBearingTo: 93.8581\n    test 419 bearingTo2: 156.1666, 157.8904\n    test 420 ispolar: True\n    test 421 copy: True\n    test 422 __eq__: True\n    test 423 __ne__: False\n    test 424 equirectangularTo: 404329.56\n    test 425 distanceTo: 404279.720589\n    test 426 distanceTo: 404279.720589\n    test 427 distanceTo: 2145\n    test 428 antipodal: False\n    test 429 distanceTo dateline: 19967403.498  FAILED, KNOWN, expected 19119590.551\n    test 430 distanceTo unrolled: 19967403.498  FAILED, KNOWN, expected 19119590.551\n    test 431 antipodal: False\n    test 432 distanceTo dateline: 9491735\n    test 433 distanceTo unrolled: 9491735\n    test 434 distanceTo: 18013602.92\n    test 435 distanceTo: 20015114.35\n    test 436 intermediateTo: 51.372084°N, 000.707337°E\n    test 437 intermediateTo: True\n    test 438 intermediateTo: 404279.721\n    test 439 intermediateTo+5: 35.160975°N, 008.989542°E\n    test 440 intermediateTo+5: 5.000\n    test 441 intermediateTo-4: 64.911647°N, 013.726301°W\n    test 442 intermediateTo-4: 4.000\n    test 443 intermediateTo-h: 125.000\n    test 444 midpointTo: 50.536327°N, 001.274614°E\n    test 445 destination: 51.513546°N, 000.098345°W\n    test 446 destination: 51°30′49″N, 000°05′54″W\n    test 447 destination: 34°37′N, 116°33′W\n    test 448 destination: 34.613647°N, 116.55116°W\n    test 449 destination: 0.604122N, 2.034201W\n    test 450 destination: 31.96383509°N, 064.37329146°E\n    test 451 alongTrackDistanceTo: type(end) (96): incompatible with sphericalTrigonometry.LatLon.alongTrackDistanceTo(end)  FAILED, KNOWN, expected incompatible ...\n    test 452 alongTrackDistanceTo: 62331.58\n    test 453 alongTrackDistanceTo: 99.588\n    test 454 alongTrackDistanceTo: -7702.7\n    test 455 alongTrackDistanceTo: 7587.6\n    test 456 crossTrackDistanceTo: type(end) (96): incompatible with sphericalTrigonometry.LatLon.crossTrackDistanceTo(end)  FAILED, KNOWN, expected incompatible ...\n    test 457 crossTrackDistanceTo: -307.55\n    test 458 crossTrackDistanceTo: 7.4524\n    test 459 greatCircle: (-0.79408, 0.12856, 0.59406)\n    test 460 neareston6: (LatLon(45°00′00.0″N, 001°00′00.0″E), 4773243.784965, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E))  FAILED, KNOWN, expected (LatLon(45°00′00.0″N, 001°00′00.0″E), 4755443.4294, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E))\n    test 461 neareston6: (LatLon(45°30′03.93″N, 002°00′00.0″E), 38968.531578, 1.501091, 2, LatLon(45°00′00.0″N, 002°00′00.0″E), LatLon(46°00′00.0″N, 002°00′00.0″E))  FAILED, KNOWN, expected (LatLon(45°30′03.94″N, 002°00′00.0″E), 39078.729285, 1.501072, 2, LatLon(45°00′00.0″N, 002°00′00.0″E), LatLon(46°00′00.0″N, 002°00′00.0″E))\n    test 462 chordTo: 124799.103\n    test 463 cosineAndoyerLambertTo: 124801.098\n    test 464 cosineAndoyerLambertTo: 124801.098\n    test 465 cosineForsyheAndoyerLambertTo: 124801.098\n    test 466 cosineForsyheAndoyerLambertTo: 124801.098\n    test 467 cosineLawTo: 124801.098\n    test 468 cosineLawTo: 124801.098\n    test 469 equirectangularTo: 124804.754\n    test 470 equirectangularTo: 124804.754\n    test 471 euclideanTo: 130015.089\n    test 472 euclideanTo: 130015.089\n    test 473 flatLocalTo: 124804.754\n    test 474 flatLocalTo: 124804.754\n    test 475 flatPolarTo: 133663.257\n    test 476 flatPolarTo: 133663.257\n    test 477 hartzell: 53.3206°N, 001.7297°W\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by ellipsoids.py line 1905\n    test 478 hartzell: 53.3206°N, 001.7297°W\n    test 479 height4: 0.0\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by cartesianBase.py line 364\n    test 480 height4: (3803904.2, -114870.8, 5109488.3, 0.0)\n    test 481 height4: 53°19′14.2″N, 001°43′46.9″W\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by cartesianBase.py line 364\n    test 482 height4: 53°19′14.2″N, 001°43′46.9″W\n    test 483 haversineTo: 124801.098\n    test 484 haversineTo: 124801.098\n    test 485 hubenyTo: <bound method LatLonBase.flatLocalTo of LatLon(53°19′14.16″N, 001°43′46.92″W)>\n    test 486 hubenyTo: <bound method LatLonBase.flatLocalTo of LatLon(53°11′19.32″N, 000°08′00.24″E)>\n    test 487 thomasTo: 124801.098\n    test 488 thomasTo: 124801.098\n    test 489 vincentysTo: 124801.098\n    test 490 vincentysTo: 124801.098\n    test 491 isclockwise: False\n    test 492 isclockwise*: False\n    test 493 isclockwise: True\n    test 494 isclockwise*: True\n    test 495 isclockwise: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 496 isclockwise*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 497 isclockwise: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 498 isclockwise*: zero or polar area: (LatLon(85°00′00.0″N, 135°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″W), LatLon(85°00′00.0″N, 045°00′00.0″E))...  FAILED, KNOWN, expected zero or polar area\n    test 499 isconvex: False\n    test 500 isconvex*: False\n    test 501 isconvex: True\n    test 502 isconvex*: True\n    test 503 isconvex: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 504 isconvex*: latlon (3): too few  FAILED, KNOWN, expected points (2): too few\n    test 505 isenclosedBy1: True\n    test 506 isenclosedBy1*: True\n    test 507 isenclosedBy2: False\n    test 508 isenclosedBy2*: False\n    test 509 isenclosedBy3: False\n    test 510 isenclosedBy3*: False\n    test 511 isenclosedBy4: False\n    test 512 isenclosedBy4*: False\n    test 513 isenclosedBy5: False\n    test 514 isenclosedBy5*: False\n    test 515 isenclosedBy6: True\n    test 516 isenclosedBy6*: True\n    test 517 isenclosedBy7: True\n    test 518 isenclosedBy7*: True\n    test 519 isenclosedBy-CCW: True\n    test 520 isenclosedBy-CW : True\n    test 521 isenclosedBy-CCW: True\n    test 522 initialBearingTo: 102.432182\n    test 523 compassAngleTo: 100.017\n    test 524 compassAngleTo: 105.599\n    test 525 initialBearingTo: 288.715918\n    test 526 compassAngleTo: 280.017\n    test 527 compassAngleTo: 285.599\n    test 528 equirectangularTo: 592.185\n    test 529 distanceTo: 591.831\n    test 530 bearingTo: 0.0\n    test 531 compassAngleTo: 0.0\n    test 532 bearingTo: 45.0\n    test 533 compassAngleTo: 45.0\n    test 534 bearingTo: 90.0\n    test 535 compassAngleTo: 90.0\n    test 536 bearingTo: 180.0\n    test 537 compassAngleTo: 180.0\n    test 538 bearingTo: 225.0\n    test 539 compassAngleTo: 225.0\n    test 540 bearingTo: 315.0\n    test 541 compassAngleTo: 315.0\n    test 542 bearingTo: 270.0\n    test 543 compassAngleTo: 270.0\n    test 544 bearingTo: 0.0  FAILED, KNOWN, expected 359.4\n    test 545 compassAngleTo: 359.4\n    test 546 latlon2: (53.0, 1.0)\n    test 547 philam2: (0.93, 0.02)\n    test 548 bearingTo: 31\n    test 549 compassAngleTo: 31\n    test 550 compassAngleTo: 45\n\n    test 551 boundsOf: <class 'pygeodesy.namedTuples.Bounds2Tuple'>\n    test 552 latlon: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 553 latlon2: <class 'pygeodesy.namedTuples.LatLon2Tuple'>\n    test 554 latlonheight: <class 'pygeodesy.namedTuples.LatLon3Tuple'>\n    test 555 isequalTo: <class 'bool'>\n    test 556 philam: <class 'pygeodesy.namedTuples.PhiLam2Tuple'>\n    test 557 philamheight: <class 'pygeodesy.namedTuples.PhiLam3Tuple'>\n    test 558 xyz: <class 'pygeodesy.namedTuples.Vector3Tuple'>\n    test 559 xyz3: <class 'tuple'>\n    test 560 xyzh: <class 'pygeodesy.namedTuples.Vector4Tuple'>\n    test 561 compassAngleTo: <class 'float'>\n    test 562 cosineLawTo: <class 'float'>\n    test 563 euclideanTo: <class 'float'>\n    test 564 flatLocalTo: <class 'float'>\n    test 565 flatPolarTo: <class 'float'>\n    test 566 haversineTo: <class 'float'>\n    test 567 hubenyTo: <class 'float'>\n    test 568 vincentysTo: <class 'float'>\n    test 569 toAer: <class 'pygeodesy.ltpTuples.Aer'>\n    test 570 toEnu: <class 'pygeodesy.ltpTuples.Enu'>\n    test 571 toLocal: <class 'pygeodesy.ltpTuples.Local9Tuple'>\n    test 572 toLtp: <class 'pygeodesy.ltp.Ltp'>\n    test 573 toNed: <class 'pygeodesy.ltpTuples.Ned'>\n    test 574 toXyz: <class 'pygeodesy.ltpTuples.XyzLocal'>\n    test 575 toNvector: (0.61566, 0.0, 0.78801)\n    test 576 toVector: (3922384.659522, 0.0, 5020423.423198)\n    test 577 toVector3d: (0.61566, 0.0, 0.78801)\n\n    test 578 trilaterate5 (pygeodesy.sphericalTrigonometry) .min: 313.671\n    test 579 trilaterate5 (pygeodesy.sphericalTrigonometry) .point: 42.66937229°N, 002.48639477°E\n    test 580 trilaterate5 (pygeodesy.sphericalTrigonometry) .max: 1591.044\n    test 581 trilaterate5 (pygeodesy.sphericalTrigonometry) .point: 42.65153054°N, 002.46822157°E\n    test 582 trilaterate5 (pygeodesy.sphericalTrigonometry) .n: 3\n    test 583 trilaterate5 (pygeodesy.sphericalTrigonometry) .min: 133.815\n    test 584 trilaterate5 (pygeodesy.sphericalTrigonometry) .max: 160.242\n    test 585 trilaterate5 (pygeodesy.sphericalTrigonometry) .point: 42.67817811°N, 002.49966641°E\n    test 586 trilaterate5 (pygeodesy.sphericalTrigonometry) .n: 2\n    test 587 trilaterate5 (pygeodesy.sphericalTrigonometry) .min: 2403.293\n    test 588 trilaterate5 (pygeodesy.sphericalTrigonometry) .max: 2403.293\n    test 589 trilaterate5 (pygeodesy.sphericalTrigonometry) .point: 42.66135649°N, 002.47981645°E\n    test 590 trilaterate5 (pygeodesy.sphericalTrigonometry) .min- is .maxPoint: True\n    test 591 trilaterate5 (pygeodesy.sphericalTrigonometry) .n: 1\n    test 592 trilaterate5 (pygeodesy.sphericalTrigonometry) .min: 1340.608\n    test 593 trilaterate5 (pygeodesy.sphericalTrigonometry) .point: 42.69128229°N, 002.50129001°E\n    test 594 trilaterate5 (pygeodesy.sphericalTrigonometry) .max: 1499.220\n    test 595 trilaterate5 (pygeodesy.sphericalTrigonometry) .point: 42.64295864°N, 002.44242391°E\n    test 596 trilaterate5 (pygeodesy.sphericalTrigonometry) .n: 3\n    test 597 radii11: Radii11Tuple(rA=7237.243793, rB=1825.695409, rC=2.255158, cR=57690.493993, rIn=57.33247, riS=2.087691, roS=2.443616, a=1827.950567, b=7239.49895, c=9062.939201, s=9065.194359)\n\n    27 tests skipped (49): No module named 'numpy': required by vector2d._numpy\n\n    test 598 radii11: Radii11Tuple(rA=7237.243793, rB=1825.695409, rC=2.255158, cR=57690.493993, rIn=57.33247, riS=2.087691, roS=2.443616, a=1827.950567, b=7239.49895, c=9062.939201, s=9065.194359)\n\n    22 tests skipped (71): No module named 'numpy': required by vector2d._numpy\n\n    test 599 area cw/ccw: 1.0\n\n    testSpherical(pygeodesy.sphericalTrigonometry, 25.08.31)\n    test 600 isSpherical: True\n    test 601 isEllipsoidal: False\n    test 602 datum: name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84\n    test 603 ellipsoid: name='SphereAuthalic', a=6371000, f=0, f_=0, b=6371000\n    test 604 datum: name='Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.WGS84\n    test 605 isSpherical: True\n    test 606 isEllipsoidal: False\n    test 607 intersection1: 50.907608°N, 004.508575°E\n    test 608 intersection1: 50°54′27.39″N, 004°30′30.87″E\n    test 609 intersection1: True\n    test 610 intersection2: True\n    test 611 intersection2: 43.5719°N, 116.188757°W\n    test 612 intersection2: 43°34′18.84″N, 116°11′19.53″W\n    test 613 intersection3: 51.882166°N, 000.267801°E\n    test 614 intersection4: 00.0°N, 026.565051°E\n    test 615 intersection5: 26.565051°N, 000.0°E  FAILED, KNOWN, expected 26.565051°N, 000.0°W\n    test 616 intersection6: 50.907809°N, 004.50841°E\n    test 617 intersection7: 01°52′46.41″S, 005°39′06.87″E\n    test 618 intersection8: 28°15′40.35″S, 032°14′33.2″E\n    test 619 toward 1,1 N,E nearest: 00.999848°N, 001.0°E\n    test 620 toward 1,1 E,N nearest: 00.999848°N, 001.0°E\n    test 621 toward 1,1 N,E antipodal: 00.999848°S, 179.0°W\n    test 622 toward/away 1,1 N,W antipodal: 00.999848°N, 001.0°E\n    test 623 toward/away 1,1 W,N antipodal: 00.999848°S, 179.0°W\n    test 624 toward/away 1,1 S,E antipodal: 00.999848°S, 179.0°W\n    test 625 toward/away 1,1 E,S antipodal: 00.999848°N, 001.0°E\n    test 626 away 1,1 S,W antipodal: 00.999848°S, 179.0°W\n    test 627 away 1,1 W,S antipodal: 00.999848°S, 179.0°W\n    test 628 1E/90E N,E antipodal: 00.017454°N, 001.0°E\n    test 629 1E/90E N,E nearest: 00.017454°N, 179.0°W\n    test 630 brng+end 1a: 01.000305°N, 002.0°E\n    test 631 brng+end 1b: 01.000305°N, 002.0°E\n    test 632 brng+end 2a: 01.000305°S, 178.0°W\n    test 633 brng+end 2b: 01.000305°S, 178.0°W\n    test 634 intersection7: 02.499372°N, 002.5°E\n    test 635 maxLat0: 90.0\n    test 636 maxLat1: 89.0\n    test 637 maxLat90: 0.0\n    test 638 minLat0: -90.0\n    test 639 minLat1: -89.0\n    test 640 minLat90: -0.0\n    test 641 parse: 00.0°N, 000.0°E\n    test 642 crossingParallels: 009°35′38.65″E, 170°24′21.35″E\n\n    test 643 intersecant2: 04.260346°N, 006.272173°E and 01.250608°S, 000.749094°E\n    test 644 intersecant2: 700000\n    test 645 intersecant2: 699999  FAILED, KNOWN, expected 700000\n    test 646 intersecant2: 45.014  FAILED, KNOWN, expected 45.000\n\n    test 647 intersecant2: 04.261539°N, 006.265474°E and 00.0°N, 002.0°E\n    test 648 intersecant2: 699248  FAILED, KNOWN, expected 700000\n    test 649 intersecant2: 598698  FAILED, KNOWN, expected 700000\n    test 650 intersecant2: 45.000\n\n    test 651 intersecant2: 04.262363°N, 006.2663°E and 01.258709°S, 000.74119°E\n    test 652 intersecant2: 699302  FAILED, KNOWN, expected 700000\n    test 653 intersecant2: 700080  FAILED, KNOWN, expected 700000\n    test 654 intersecant2: 45.021  FAILED, KNOWN, expected 45.000\n\n    test 655 intersecant4: 02.375133°N, 024.894142°E and 25.0°S, 000.0°E  FAILED, KNOWN, expected 00.0°N, 025.0°E and 25.0°S, 000.0°E\n    test 656 intersecant4: 00.0°N, 025.0°E and 25.0°S, 000.0°E\n    test 657 intersecant4: 02.375133°N, 024.894142°E and 25.0°S, 000.0°E  FAILED, KNOWN, expected 00.0°N, 025.0°E and 25.0°S, 000.0°E\n    test 658 intersecant4: 00.0°N, 025.0°E and 25.0°S, 000.0°E\n\n    test 659 intersecant4: 00.725365°N, 026.558638°E and 25.747°S, 000.826763°W  FAILED, KNOWN, expected 00.0°N, 025.0°E and 25.0°S, 000.0°E\n    test 660 intersecant4: 00.725365°N, 026.558638°E and 25.747°S, 000.826763°W  FAILED, KNOWN, expected 00.0°N, 025.0°E and 25.0°S, 000.0°E\n    test 661 intersecant4: 00.021635°S, 025.811619°E and 25.0°S, 000.0°E  FAILED, KNOWN, expected 00.0°N, 025.0°E and 25.0°S, 000.0°E\n    test 662 intersecant4: 00.021635°S, 025.811619°E and 25.0°S, 000.0°E  FAILED, KNOWN, expected 00.0°N, 025.0°E and 25.0°S, 000.0°E\n\n    test 663 intersecant4: 00.807845°N, 026.641126°E and 25.0°S, 000.0°E  FAILED, KNOWN, expected 00.0°N, 025.0°E and 25.0°S, 000.0°E\n    test 664 intersecant4: 01.624807°N, 026.572609°E and 25.0°S, 000.0°E  FAILED, KNOWN, expected 00.0°N, 025.0°E and 25.0°S, 000.0°E\n    test 665 intersecant4: 00.807845°N, 026.641126°E and 25.0°S, 000.0°E  FAILED, KNOWN, expected 00.0°N, 025.0°E and 25.0°S, 000.0°E\n    test 666 intersecant4: 01.624807°N, 026.572609°E and 25.0°S, 000.0°E  FAILED, KNOWN, expected 00.0°N, 025.0°E and 25.0°S, 000.0°E\n\n    test 667 intersecant2.1: LatLon(04°04′02.63″S, 029°43′21.16″W) Napier: 3333000.000\n    test 668 intersecant2.1: LatLon(29°58′27.6″N, 000°01′46.65″W) Napier: 3333000.000\n    test 669 intersecant2.1: LatLon(29°58′27.6″N, 000°01′46.65″W) : 3332999.886  FAILED, KNOWN, expected 3333000.000\n    test 670 intersecant2.1: LatLon(02°29′47.81″S, 028°30′01.84″W) : 3180236.460  FAILED, KNOWN, expected 3333000.000\n\n    test 671 intersecant2.2: LatLon(04°04′02.63″S, 029°43′21.16″E) Napier: 3333000.000\n    test 672 intersecant2.2: LatLon(29°58′27.6″N, 000°01′46.65″E) Napier: 3333000.000\n    test 673 intersecant2.2: LatLon(02°29′47.81″S, 028°30′01.84″E) : 3180236.460  FAILED, KNOWN, expected 3333000.000\n    test 674 intersecant2.2: LatLon(29°58′27.6″N, 000°01′46.65″E) : 3332999.886  FAILED, KNOWN, expected 3333000.000\n\n    test 675 intersecant2.3: LatLon(04°04′02.63″N, 029°43′21.16″W) Napier: 3333000.000\n    test 676 intersecant2.3: LatLon(29°58′27.6″S, 000°01′46.65″W) Napier: 3333000.000\n    test 677 intersecant2.3: LatLon(29°58′27.6″S, 000°01′46.65″W) : 3332999.886  FAILED, KNOWN, expected 3333000.000\n    test 678 intersecant2.3: LatLon(02°29′47.81″N, 028°30′01.84″W) : 3180236.460  FAILED, KNOWN, expected 3333000.000\n\n    test 679 intersecant2.4: LatLon(29°50′37.22″S, 002°56′03.42″W) Napier: 3333000.000\n    test 680 intersecant2.4: LatLon(00°29′30.34″N, 029°58′14.48″E) Napier: 3333000.000\n    test 681 intersecant2.4: LatLon(00°08′01.47″N, 029°38′09.18″E) : 3295394.784  FAILED, KNOWN, expected 3333000.000\n    test 682 intersecant2.4: LatLon(29°31′09.01″S, 002°27′32.93″W) : 3292733.874  FAILED, KNOWN, expected 3333000.000\n\n    test 683 intersecant2.5: LatLon(00°01′46.69″S, 029°58′27.6″E) Napier: 3333000.000\n    test 684 intersecant2.5: LatLon(29°58′27.59″S, 000°02′03.16″E) Napier: 3333000.000\n    test 685 intersecant2.5: LatLon(01°38′23.65″S, 028°34′45.37″E) : 3182660.966  FAILED, KNOWN, expected 3333000.000\n    test 686 intersecant2.5: LatLon(29°58′27.58″S, 000°02′03.17″E) : 3332999.848  FAILED, KNOWN, expected 3333000.000\n\n    test 687 intersecant2.6: LatLon(05°08′54.91″S, 029°34′09.94″E) Napier: 3333000.000\n    test 688 intersecant2.6: LatLon(28°36′28.71″S, 009°21′04.99″E) Napier: 3333000.000\n    test 689 intersecant2.6: LatLon(11°51′13.84″S, 024°23′59.0″E) : 2998636.503  FAILED, KNOWN, expected 3333000.000\n    test 690 intersecant2.6: LatLon(26°53′11.53″S, 011°08′26.36″E) : 3218384.739  FAILED, KNOWN, expected 3333000.000\n\n    test 691 intersections2 (pygeodesy.sphericalTrigonometry): 36.98931°N, 088.151425°W, 38.23838°N, 092.390487°W\n    test 692 intersections2 (pygeodesy.sphericalTrigonometry): 36.989310429, -088.151425243, 38.238379679, -092.390486808\n    test 693 intersections2 (pygeodesy.sphericalTrigonometry): 00.0°N, 035.26439°W, 00.0°N, 035.26439°E\n    test 694 intersections2 (pygeodesy.sphericalTrigonometry): 22.622036°N, 000.0°E, 22.622036°S, 000.0°E\n    test 695 intersections2 (pygeodesy.sphericalTrigonometry): 14.612841°N, 026.110934°W, 14.612841°S, 026.110934°E\n    test 696 intersections2 (pygeodesy.sphericalTrigonometry): 00.000001°S, 045.0°E, 00.000001°N, 045.0°E\n    test 697 intersections2 (pygeodesy.sphericalTrigonometry) 5: 04.999927°S, 005.038296°W, 04.999927°N, 005.038296°E\n    test 698 intersections2 (pygeodesy.sphericalTrigonometry) 5: 1.67511e-15 (% of radius)\n    test 699 intersections2 (pygeodesy.sphericalTrigonometry) 10: 09.997596°S, 010.311703°W, 09.997596°N, 010.311703°E\n    test 700 intersections2 (pygeodesy.sphericalTrigonometry) 10: 6.28168e-16 (% of radius)\n    test 701 intersections2 (pygeodesy.sphericalTrigonometry) 15: 14.98089°S, 016.083107°W, 14.98089°N, 016.083107°E\n    test 702 intersections2 (pygeodesy.sphericalTrigonometry) 15: 6.97964e-16 (% of radius)\n    test 703 intersections2 (pygeodesy.sphericalTrigonometry) 20: 19.914036°S, 022.676142°W, 19.914036°N, 022.676142°E\n    test 704 intersections2 (pygeodesy.sphericalTrigonometry) 20: 1.46573e-15 (% of radius)\n    test 705 intersections2 (pygeodesy.sphericalTrigonometry) 25: 24.713956°S, 030.518915°W, 24.713956°N, 030.518915°E\n    test 706 intersections2 (pygeodesy.sphericalTrigonometry) 25: 6.70046e-16 (% of radius)\n    test 707 intersections2 (pygeodesy.sphericalTrigonometry) 30: 29.205932°S, 040.202966°W, 29.205932°N, 040.202966°E\n    test 708 intersections2 (pygeodesy.sphericalTrigonometry) 30: 8.37557e-16 (% of radius)\n    test 709 intersections2 (pygeodesy.sphericalTrigonometry) 35: 33.037697°S, 052.55362°W, 33.037697°N, 052.55362°E\n    test 710 intersections2 (pygeodesy.sphericalTrigonometry) 35: 8.37557e-16 (% of radius)\n    test 711 intersections2 (pygeodesy.sphericalTrigonometry) 40: 35.512876°S, 068.682565°W, 35.512876°N, 068.682565°E\n    test 712 intersections2 (pygeodesy.sphericalTrigonometry) 40: 4.18779e-16 (% of radius)\n    test 713 intersections2 (pygeodesy.sphericalTrigonometry) 45: 35.26439°S, 090.0°W, 35.26439°N, 090.0°E\n    test 714 intersections2 (pygeodesy.sphericalTrigonometry) 45: 3.72248e-16 (% of radius)\n    test 715 intersections2 (pygeodesy.sphericalTrigonometry) 50: 29.382901°S, 118.837195°W, 29.382901°N, 118.837195°E\n    test 716 intersections2 (pygeodesy.sphericalTrigonometry) 50: 1.67511e-16 (% of radius)\n    test 717 intersections2 (pygeodesy.sphericalTrigonometry) 55: 00.687458°S, 179.605668°E abutting\n    test 718 intersections2 (pygeodesy.sphericalTrigonometry) 55: 0.0144095 (% of radius)\n    test 719 intersections2 (pygeodesy.sphericalTrigonometry) 60: 13.848979°S, 172.919423°E abutting\n    test 720 intersections2 (pygeodesy.sphericalTrigonometry) 60: 0.258708 (% of radius)\n    test 721 intersections2 (pygeodesy.sphericalTrigonometry) 65: 27.163786°S, 167.475402°E abutting\n    test 722 intersections2 (pygeodesy.sphericalTrigonometry) 65: 0.457099 (% of radius)\n    test 723 intersections2 (pygeodesy.sphericalTrigonometry): 41.212541°N, 073.702999°E Random +/- 89\n    test 724 intersections2 (pygeodesy.sphericalTrigonometry): 41.212541°N, 073.702999°E, 42.652043°N, 130.245275°E  d 1.70272e-08 meter\n    test 725 intersections2 (pygeodesy.sphericalTrigonometry): 41.212541°N, 073.702999°E, 49.563295°N, 057.220788°E  d 6.84831e-09 meter\n    test 726 intersections2 (pygeodesy.sphericalTrigonometry): 41.212541°N, 073.702999°E, 29.348825°S, 027.178886°W  d 3.18296e-09 meter\n    test 727 intersections2 (pygeodesy.sphericalTrigonometry): 41.212541°N, 073.702999°E, 00.919397°S, 022.582538°E  d 0 meter\n    test 728 intersections2 (pygeodesy.sphericalTrigonometry): 41.212541°N, 073.702999°E, 37.789721°N, 113.551077°E  d 0 meter\n    test 729 intersections2 (pygeodesy.sphericalTrigonometry): 41.212541°N, 073.702999°E, 45.8391°N, 062.488233°W  d 2.64407e-09 meter\n    test 730 intersections2 (pygeodesy.sphericalTrigonometry): 41.212541°N, 073.702999°E, 42.836396°N, 147.679061°W  d 7.94221e-09 meter\n    test 731 intersections2 (pygeodesy.sphericalTrigonometry): 41.212541°N, 073.702999°E, 76.602903°N, 073.829073°W  d 5.42574e-09 meter\n    test 732 intersections2 (pygeodesy.sphericalTrigonometry): 41.212541°N, 073.702999°E, 46.089655°N, 103.356557°E  d 3.82901e-09 meter\n    test 733 intersections2 (pygeodesy.sphericalTrigonometry): 41.212541°N, 073.702999°E, 04.154973°N, 044.386256°E  d 2.47563e-09 meter\n    test 734 intersections2 (pygeodesy.sphericalTrigonometry): 41.212541°N, 073.702999°E, 02.95074°N, 159.308477°W  d 2.99873e-09 meter\n    test 735 intersections2 (pygeodesy.sphericalTrigonometry): 41.212541°N, 073.702999°E, 33.791406°N, 143.40539°W  d 7.12163e-09 meter\n    test 736 trilaterate5 (pygeodesy.sphericalTrigonometry) .min: 313.671\n    test 737 trilaterate5 (pygeodesy.sphericalTrigonometry) .point: 42.66937229°N, 002.48639477°E\n    test 738 trilaterate5 (pygeodesy.sphericalTrigonometry) .max: 1591.044\n    test 739 trilaterate5 (pygeodesy.sphericalTrigonometry) .point: 42.65153054°N, 002.46822157°E\n    test 740 trilaterate5 (pygeodesy.sphericalTrigonometry) .n: 3\n    test 741 trilaterate5 (pygeodesy.sphericalTrigonometry) .min: 133.815\n    test 742 trilaterate5 (pygeodesy.sphericalTrigonometry) .inter: 42.6767291°N, 002.49916157°E\n    test 743 trilaterate5 (pygeodesy.sphericalTrigonometry) .n: 2\n    test 744 trilaterate5 (pygeodesy.sphericalTrigonometry) .min: 2403.293\n    test 745 trilaterate5 (pygeodesy.sphericalTrigonometry) .max: 2403.293\n    test 746 trilaterate5 (pygeodesy.sphericalTrigonometry) .point: 42.66135649°N, 002.47981645°E\n    test 747 trilaterate5 (pygeodesy.sphericalTrigonometry) .min- is .maxPoint: True\n    test 748 trilaterate5 (pygeodesy.sphericalTrigonometry) .n: 1\n    test 749 trilaterate5 (pygeodesy.sphericalTrigonometry) .inter: area (False), eps (1000) or wrap (False): no intersection, min 1.34e+03\n    test 750 isenclosedBy: True\n    test 751 isenclosedBy*: True\n    test 752 isenclosedBy: points[3] (LatLon(47°00′00.0″N, 003°00′00.0″E)) or wrap (False): not convex\n    test 753 isenclosedBy*: points[3] (LatLon(47°00′00.0″N, 003°00′00.0″E)) or wrap (False): not convex\n    test 754 rhumbBearingTo: 116.722\n    test 755 rhumbDestination: 50.964155°N, 001.853°E\n    test 756 rhumbDestination: True\n    test 757 rhumbDistanceTo: 40307.8\n    test 758 rhumbMidpointo-0.5: 51.0455°N, 001.595727°E\n    test 759 rhumbMidpointo: True\n    test 760 rhumbMidpointo-0.0: 51.127°N, 001.338°E\n    test 761 rhumbMidpointo-0.25: 51.08625°N, 001.46692°E\n    test 762 rhumbMidpointo-0.75: 51.00475°N, 001.72442°E\n    test 763 rhumbMidpointo-1.0: 50.964°N, 001.853°E\n    test 764 rhumbMidpointo-2.0: 50.801°N, 002.366196°E\n    test 765 areaOf: 8.66605875e+09\n    test 766 perimeterOf: 3.78258541e+05\n    test 767 perimeterOf: 2.67063461e+05\n    test 768 areaOf: 6.18e+09\n    test 769 perimeterOf: 3.79639757e+05\n    test 770 perimeterOf: 2.68444678e+05\n    test 771 nearestOn3: 46.0°N, 001.369324°E\n    test 772 nearestOn3: 570101.83\n    test 773 distanceTo: 570101.82\n    test 774 nearestOn3: 46.0°N, 002.0°E\n    test 775 nearestOn3: 134992.48\n    test 776 distanceTo: 134989.80\n    test 777 nearestOn3: 45.5°N, 001.5°E\n    test 778 distance: 78626.79\n    test 779 angle: 315.00\n    test 780 compassAngleTo: 315.00\n    test 781 nearestOn3: 45.331319°N, 001.331319°E\n    test 782 distance: 64074.48\n    test 783 angle: 305.10\n    test 784 distanceTo: 64074.12\n    test 785 compassAngleTo: 305.10\n    test 786 difference: 1000.53\n    test 787 nearestOn3: 00.5°N, 001.5°E\n    test 788 distance: 235880.385\n    test 789 angle: 135.00\n    test 790 nearestOn3: 01.5°N, 002.5°E\n    test 791 distance: 235880.385\n    test 792 angle: 135.00\n    test 793 nearestOn3: 02.5°N, 003.5°E\n    test 794 distance: 235880.385\n    test 795 angle: 135.00\n    test 796 nearestOn3: 03.5°N, 004.5°E\n    test 797 distance: 235880.385\n    test 798 angle: 135.00\n    test 799 nearestOn3: 04.5°N, 005.5°E\n    test 800 distance: 235880.385\n    test 801 angle: 135.00\n    test 802 nearestOn3: 05.5°N, 006.5°E\n    test 803 distance: 235880.385\n    test 804 angle: 135.00\n    test 805 nearestOn3: 06.5°N, 007.5°E\n    test 806 distance: 235880.385\n    test 807 angle: 135.00\n    test 808 nearestOn3: 07.5°N, 008.5°E\n    test 809 distance: 235880.385\n    test 810 angle: 135.00\n    test 811 meanOf: 04.004858°N, 004.990226°E\n    test 812 nearestOn3: 07.5°N, 008.5°E\n    test 813 toCartesian: [6245667.211, 766871.506, 996645.349]\n    test 814 ispolar: True\n    test 815 ispolar*: True\n    test 816 ispolar: False  FAILED, KNOWN, expected True\n    test 817 ispolar*: False  FAILED, KNOWN, expected True\n    test 818 ispolar: True\n    test 819 ispolar*: True\n    test 820 triangle7: (22.142114, 2189776.256122, 84.91384, 6998970.168483, 84.91384, 6998970.168483, 8479698853790.72168)\n    test 821 triangle7: Triangle8Tuple(A=0.38645, a=0.34371, B=1.48203, b=1.09857, C=1.48203, c=1.09857, D=3.74234, E=0.20891)\n    test 822 nearestOn: 01.5°N, 001.5°E, +149.99m\n    test 823 nearestOn3: 01.5°N, 001.5°E, +149.99m\n    test 824 midpointTo: 50.5363°N, 001.2746°E, +150.00m\n    test 825 intermediateTo: 50.5363°N, 001.2746°E, +150.00m\n\n    103 of 825 testSpherical.py tests (12.5%) FAILED, incl. 92 KNOWN plus 11 DeprecationWarnings, 71 skipped (pygeodesy 26.3.26 Python 3.14.3 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 135.720 ms\nrunning /Library/Framewo....n3.14 -W default ~/PyGeodesy/test/testStreprs.py\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.INF from .constants by testStreprs.py line 11\n# lazily imported pygeodesy.NEG0 from .constants by testStreprs.py line 11\n# lazily imported pygeodesy.NAN from .constants by testStreprs.py line 11\n# lazily imported pygeodesy.fstr from .streprs by testStreprs.py line 11\n# lazily imported pygeodesy.fstrzs from .streprs by testStreprs.py line 11\n# lazily imported pygeodesy.instr from .streprs by testStreprs.py line 11\n# lazily imported pygeodesy.LatLon_ from .points by testStreprs.py line 11\n# lazily imported pygeodesy.unstr from .streprs by testStreprs.py line 11\n\n    testing testStreprs.py 23.03.27 (module pygeodesy.streprs 25.11.24) isLazy=3\n    test 1 anstr: a-b__\n    test 2 fstr: 0.123000\n    test 3 fstr: 0.123\n    test 4 fstr: 0.123, 456.789\n    test 5 fstr: 1.23000e-01\n    test 6 fstr: 1.23e-01\n# imported pygeodesy.basics into errors.py line 443\n    test 7 fstr: fmt ('X'): not '[%[<flags>][<width>].*]F|f|E|e|G|g'\n    test 8 fstr(1.000000): 1.0\n    test 9 fstr(1.000000): 1.0\n    test 10 fstr(-1.000000): -1.0\n    test 11 fstr(INF): INF\n    test 12 fstr(INF): INF\n    test 13 fstr(NAN): NAN\n    test 14 fstr(-0.000000): -0.0\n    test 15 fstr(0.000000): 0.0\n    test 16 fstrzs(0.0): 0.0\n    test 17 fstrzs(0.00): 0.0\n    test 18 fstrzs(0.000): 0.0\n    test 19 fstrzs(00.0): 00.0\n    test 20 fstrzs(000.00): 000.0\n    test 21 fstrzs(0.000): 0.0\n    test 22 fstrzs(0.010): 0.01\n    test 23 fstrzs(0.0200): 0.02\n    test 24 fstrzs(0.0e+01): 0.0e+01\n    test 25 fstrzs(0.00e+02): 0.0e+02\n    test 26 fstrzs(0.000e+03): 0.0e+03\n    test 27 fstrzs(00.0e+00): 00.0e+00\n    test 28 fstrzs(000.00e+01): 000.0e+01\n    test 29 fstrzs(0.000e+02): 0.0e+02\n    test 30 fstrzs(0.010e+03): 0.01e+03\n    test 31 fstrzs(0.0200e+00): 0.02e+00\n    test 32 fstrzs(0, ap1z=True): 0.0\n    test 33 fstrzs(0.0, ap1z=True): 0.0\n    test 34 fstrzs(0., ap1z=True): 0.\n    test 35 fstrzs(1e10, ap1z=True): 1.0e10\n    test 36 fstrzs(2E+2, ap1z=True): 2.0E+2\n    test 37 fstrzs(3.E3, ap1z=True): 3.E3\n    test 38 instr: LatLon_(45.0°N, 090.0°E, +1.20)\n    test 39 instr: LatLon_(45, 90, h=1.2)\n    test 40 unstr: f(1.1, 2.2)\n    test 41 unstr: f(x=1.1, y=2.2)\n    test 42 F: 0.001\n    test 43 F: 0.001\n    test 44 F: 0.001\n    test 45 F: 0.001\n    test 46 f: 0.001\n    test 47 f: 0.001\n    test 48 f: 0.001\n    test 49 f: 0.001\n    test 50 E: 1.0E-03\n    test 51 E: 1.0E-03\n    test 52 E: 1.0E-03\n    test 53 E: 1.0E-03\n    test 54 e: 1.0e-03\n    test 55 e: 1.0e-03\n    test 56 e: 1.0e-03\n    test 57 e: 1.0e-03\n    test 58 G: 0.001\n    test 59 G: 0.001\n    test 60 G: 0.001\n    test 61 G: 0.001\n    test 62 g: 0.001\n    test 63 g: 0.001\n    test 64 g: 0.001\n    test 65 g: 0.001\n\n    all 65 testStreprs.py tests passed (pygeodesy 26.3.26 Python 3.14.3 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 402.927 us\nrunning /Library/Framewo....n3.14 -W default ~/PyGeodesy/test/testTMcoords.py\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.Ellipsoids from .ellipsoids by testTMcoords.py line 14\n# lazily imported pygeodesy.EPS from .constants by testTMcoords.py line 14\n# lazily imported pygeodesy.RangeError from .errors by testTMcoords.py line 14\n\n    testing testTMcoords.py 24.03.22 isLazy=3\n    test 1 TMcoords: 258\n\n    all 1 testTMcoords.py tests passed (pygeodesy 26.3.26 Python 3.14.3 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 36.955 us\nrunning /Library/Framewo....n3.14 -W default ~/PyGeodesy/test/testTrf.py\n./test/testTrf.py:29: DeprecationWarning: method L{convertRefFrame<pygeodesy.ellipsoidalNvector.LatLon.convertRefFrame>} has been DEPRECATED, use method L{toRefFrame}.\n  x = p.convertRefFrame(RefFrames.ETRF2000)\n./test/testTrf.py:136: DeprecationWarning: method L{convertRefFrame<pygeodesy.ellipsoidalNvector.LatLon.convertRefFrame>} has been DEPRECATED, use method L{toRefFrame}.\n  t = LatLon(0, 0, reframe=RefFrames.ITRF2000).convertRefFrame('ITRF2000')\n./test/testTrf.py:29: DeprecationWarning: method L{convertRefFrame<pygeodesy.ellipsoidalVincenty.LatLon.convertRefFrame>} has been DEPRECATED, use method L{toRefFrame}.\n  x = p.convertRefFrame(RefFrames.ETRF2000)\n./test/testTrf.py:136: DeprecationWarning: method L{convertRefFrame<pygeodesy.ellipsoidalVincenty.LatLon.convertRefFrame>} has been DEPRECATED, use method L{toRefFrame}.\n  t = LatLon(0, 0, reframe=RefFrames.ITRF2000).convertRefFrame('ITRF2000')\n./test/testTrf.py:29: DeprecationWarning: method L{convertRefFrame<pygeodesy.ellipsoidalKarney.LatLon.convertRefFrame>} has been DEPRECATED, use method L{toRefFrame}.\n  x = p.convertRefFrame(RefFrames.ETRF2000)\n./test/testTrf.py:136: DeprecationWarning: method L{convertRefFrame<pygeodesy.ellipsoidalKarney.LatLon.convertRefFrame>} has been DEPRECATED, use method L{toRefFrame}.\n  t = LatLon(0, 0, reframe=RefFrames.ITRF2000).convertRefFrame('ITRF2000')\n./test/testTrf.py:29: DeprecationWarning: method L{convertRefFrame<pygeodesy.ellipsoidalExact.LatLon.convertRefFrame>} has been DEPRECATED, use method L{toRefFrame}.\n  x = p.convertRefFrame(RefFrames.ETRF2000)\n./test/testTrf.py:136: DeprecationWarning: method L{convertRefFrame<pygeodesy.ellipsoidalExact.LatLon.convertRefFrame>} has been DEPRECATED, use method L{toRefFrame}.\n  t = LatLon(0, 0, reframe=RefFrames.ITRF2000).convertRefFrame('ITRF2000')\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.date2epoch from .trf by testTrf.py line 15\n# lazily imported pygeodesy.Epoch from .units by testTrf.py line 15\n# lazily imported pygeodesy.epoch2date from .trf by testTrf.py line 15\n# lazily imported pygeodesy.F_D from .dms by testTrf.py line 15\n# lazily imported pygeodesy.F_DMS from .dms by testTrf.py line 15\n# lazily imported pygeodesy.fstr from .streprs by testTrf.py line 15\n# lazily imported pygeodesy.RefFrames from .trf by testTrf.py line 15\n# lazily imported pygeodesy.TRFError from .errors by testTrf.py line 15\n# lazily imported pygeodesy.trfTransform0 from .trf by testTrf.py line 15\n# lazily imported pygeodesy.trfTransforms from .trf by testTrf.py line 15\n# lazily imported pygeodesy.trfXform from .trf by testTrf.py line 15\n# lazily imported pygeodesy.Vector3d from .vector3d by testTrf.py line 15\n# lazily imported pygeodesy.ellipsoidalExact by testTrf.py line 392\n# lazily imported pygeodesy.ellipsoidalKarney by testTrf.py line 392\n# lazily imported pygeodesy.ellipsoidalNvector by testTrf.py line 392\n# lazily imported pygeodesy.ellipsoidalVincenty by testTrf.py line 392\n\n    testing testTrf.py 24.10.14 (module pygeodesy.trf 25.09.11) isLazy=3\n\n    testTrf(pygeodesy.ellipsoidalNvector, 25.05.12)\n# lazily imported pygeodesy.ecef by ellipsoidalNvector.py line 524\n    test 1 convertRefFrame: 51.47787826°N, 000.00147125°W, -0.00m  FAILED, KNOWN, expected 51.47787826°N, 000.00147125°W\n    test 2 copy(<class 'type'>): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 3 RefFrame.copy(): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 4 toLatLon: 50.7978°N, 004.3592°E, +148.96m\n# imported pygeodesy.basics into errors.py line 715\n    test 5 convertRefFrame: [3980574.395, -102.214, 4966829.941]\n    test 6 Nil: True\n    test 7 copy(<class 'type'>): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 8 RefFrame.copy(): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 9 Nil: True\n    test 10 reframe: True\n    test 11 Roundtrip: True\n    test 12 reframe: True\n    test 13 copy(<class 'type'>): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 14 RefFrame.copy(): (<class 'pygeodesy.trf.RefFrame'>, True)\n\n    test 15 Geodetic: 23°40′12.44582″S, 133°53′07.84795″E, +603.34m\n    test 16 Cartesian: [-4052051.7614, 4212836.1945, -2545106.0147]\n    test 17 Geodetic: 23°40′12.44582″S, 133°53′07.84795″E, +603.34m\n    test 18 Cartesian: [-4052051.7614, 4212836.1945, -2545106.0147]\n    test 19 Roundtrip: 23°40′12.41482″S, 133°53′07.86712″E, +603.26m\n    test 20 GNSStrans: [3370658.18892, 711877.42369, 5349787.1243]\n    test 21 Cartesian: [-734972.563, 4893188.492, 4011982.811]\n\n    test 22 EUREF EX1: [4027894.0444, 307045.6209, 4919474.8613]\n    test 23 transform0: ITRF2005@2015xETRF2020-ITRF91@2015xETRF2020@2007 max 9.3132e-10, epoched 8.0\n    test 24 transform1: ITRF2005@2015xETRF2014-ITRF91@2015xETRF2014@2007 max 0.048666, epoched 8.0\n    test 25 transform2: ITRF2005@2015xETRF2000-ITRF91@2015xETRF2000@2007 max 0.097331, epoched 8.0\n    test 26 transform3: ITRF2005@2000xITRF2000+ITRF2000@1988xITRF91@2000@2007 max 0.146, epoched 19.0\n    test 27 transform4: -ITRF2020@2015xITRF2005+ITRF2020@2015xITRF91@2007 max 0.19466, epoched 8.0\n    test 28 transform5: -ITRF2014@2010xITRF2005+ITRF2014@2010xITRF91@2007 max 0.24333, epoched 3.0\n    test 29 transform6: -ITRF2008@2005xITRF2005+ITRF2008@2000xITRF91@2005@2007 max 0.29199, epoched 7.0\n    test 30 transform7: ITRF2000@1988xITRF91+ITRF2005@2000xITRF2000@1988@2007 max 0.34066, epoched 31.0\n    test 31 transform8: ITRF2014@2010xITRF91-ITRF2014@2020xGDA2020@2010+ITRF2005@2020xGDA2020@2010@2007 max 0.98111, epoched 23.0\n    test 32 transform9: ITRF2008@2000xITRF91-ITRF2008@1994xGDA94@2000+ITRF2005@1994xGDA94@2000@2007 max 0.35972, epoched 19.0\n    test 33 transform10: ITRF2008@2000xITRF91-ITRF2008@1997xNAD83@2000+ITRF2005@1997xNAD83@2000@2007 max 0.40805, epoched 13.0\n    test 34 EUREF EX2: [4027894.0060, 307045.6000, 4919474.9100]\n    test 35 transform0: ITRF91@2015xETRF2020-ITRF2005@2015xETRF2020@2007 max 0.048666, epoched 8.0\n    test 36 transform1: ITRF91@2015xETRF2014-ITRF2005@2015xETRF2014@2007 max 1.8626e-09, epoched 8.0\n    test 37 transform2: ITRF91@2015xETRF2000-ITRF2005@2015xETRF2000@2007 max 0.048666, epoched 8.0\n    test 38 transform3: -ITRF2005@2000xITRF2000-ITRF2000@1988xITRF91@2000@2007 max 0.097331, epoched 19.0\n    test 39 EUREF EX4: [4027894.3559, 307045.2508, 4919474.6447]\n    test 40 transform0: -ITRF2000@2015xETRF2000@2012 max 4.5169e-08, epoched 3.0\n    test 41 transform1: -ITRF2000@1997xITRF97@2015-ITRF97@2015xETRF2000@2012 max 0.35826, epoched 21.0\n    test 42 transform2: -ITRF2000@1997xITRF96@2015-ITRF96@2015xETRF2000@2012 max 0.7048, epoched 21.0\n    test 43 transform3: -ITRF2000@1988xITRF93@2015-ITRF93@2015xETRF2000@2012 max 1.054, epoched 30.0\n    test 44 transform4: -ITRF2000@1988xITRF92@2015-ITRF92@2015xETRF2000@2012 max 1.4023, epoched 30.0\n    test 45 transform5: -ITRF2000@1988xITRF91@2015-ITRF91@2015xETRF2000@2012 max 1.7514, epoched 30.0\n    test 46 transform6: -ITRF2000@1988xITRF90@2015-ITRF90@2015xETRF2000@2012 max 2.1088, epoched 30.0\n    test 47 transform7: -ITRF2000@1988xITRF89@2015-ITRF89@2015xETRF2000@2012 max 2.4877, epoched 30.0\n    test 48 transform8: -ITRF2000@1988xITRF88@2015-ITRF88@2015xETRF2000@2012 max 2.8343, epoched 30.0\n    test 49 EUREF EX5: [4027893.6458, 307045.9470, 4919475.1937]  FAILED, KNOWN, expected [4027894.3662, 307045.2530, 4919474.6263]\n    test 50 transform0: ITRF2014@2015xETRF2000@2012 max 4.5169e-08, epoched 3.0\n    test 51 transform1: ITRF2014@2010xITRF2008@2015+ITRF2008@2015xETRF2000@2012 max 0.36023, epoched 8.0\n    test 52 transform2: ITRF2014@2010xITRF97@2015+ITRF97@2015xETRF2000@2012 max 0.72047, epoched 8.0\n    test 53 transform3: ITRF2014@2010xITRF93@2015+ITRF93@2015xETRF2000@2012 max 1.0807, epoched 8.0\n    test 54 transform4: ITRF2014@2010xITRF92@2015+ITRF92@2015xETRF2000@2012 max 1.4409, epoched 8.0\n    test 55 transform5: ITRF2014@2010xITRF91@2015+ITRF91@2015xETRF2000@2012 max 1.8012, epoched 8.0\n    test 56 transform6: ITRF2014@2010xITRF90@2015+ITRF90@2015xETRF2000@2012 max 2.1614, epoched 8.0\n    test 57 transform7: ITRF2014@2010xITRF89@2015+ITRF89@2015xETRF2000@2012 max 2.5216, epoched 8.0\n    test 58 transform8: ITRF2014@2010xITRF88@2015+ITRF88@2015xETRF2000@2012 max 2.8819, epoched 8.0\n\n    test 59 Case 1A: [4027893.9619, 307045.5481, 4919474.9553]\n    test 60 Case 1B: [4027894.0054, 307045.5938, 4919474.9083]\n    test 61 Case 2A: [4027893.9639, 307045.545, 4919474.9573]\n    test 62 Case 2B: [4027894.0033, 307045.5889, 4919474.9041]\n\n    test 63 TypeError: type(reframe) ('ITRF2000'): not a RefFrame\n    test 64 TRFError: epoch (1899): below 1900.0 limit\n    test 65 TypeError: type(reframe2) ('ITRF2000'): not a RefFrame\n    test 66 TRFError: no conversion: LatLon(00°00′00.0″N, 000°00′00.0″E).reframe MISSING\n    test 67 TypeError: type(reframe2) ('ITRF2000'): not a RefFrame\n    test 68 TypeError: type(reframe) ('ITRF2000'): not a RefFrame\n\n    test 69 ETRF89@1989: [4160476.944000, 653192.600000, 4774604.455000]\n    test 70 ITRF2014@2018.8: [4160476.415, 653193.057, 4774604.903]  FAILED, KNOWN, expected [4160476.485, 653193.021, 4774604.78]\n    test 71 TransformXform: -ITRF2014@2010xITRF89-ITRF89@1989xETRF89@2010@2018.8\n    test 72 Delta (m): [-0.06956, 0.035714, 0.122931]  FAILED, KNOWN, expected [0.01, 0.01, 0.01]\n    test 73 Error (m): 0.145692  FAILED, KNOWN, expected 0.01\n    test 74 Epoch range: 29.800  FAILED, KNOWN, expected 14.0\n    test 75 ETRF89@1989: [4160476.467836, 653193.103190, 4774604.868503]  FAILED, KNOWN, expected [4160476.944000, 653192.600000, 4774604.455000]\n    test 76 TransformXform: ITRF2014@2010xITRF89+ITRF89@1989xETRF89@2010@1989\n\n    test 77 inverse: -ITRF2014@2010xITRF89-ITRF89@1989xETRF89@2010@1989\n    test 78 inverse: ITRF2014@2010xITRF89+ITRF89@1989xETRF89@2010@1989\n    test 79 inverse: name='ITRF2014@2010xITRF89+ITRF89@1989xETRF89@2010@1989', tx=0.0283, ty=0.046, tz=-0.0615, s1=1.0, rx=0.0, ry=0.0, rz=-7.757e-10, s=0.00567, sx=0.0, sy=0.0, sz=-0.00016\n\n    test 80 ETRF2000@2000: [4160476.952000, 653192.582000, 4774604.441000]\n    test 81 ITRF2014@2018.8: [4160476.471, 653193.059, 4774604.804]  FAILED, KNOWN, expected [4160476.485, 653193.021, 4774604.78]\n    test 82 TransformXform: -ITRF2014@2015xETRF2000@2018.8\n    test 83 Delta (m): [-0.014174, 0.037835, 0.023963]  FAILED, KNOWN, expected [0.01, 0.01, 0.01]\n    test 84 Error (m): 0.046975  FAILED, KNOWN, expected 0.01\n    test 85 Epoch range: 18.800  FAILED, KNOWN, expected 14.0\n    test 86 ETRF2000@2000: [4160476.681125, 653192.914350, 4774604.647835]  FAILED, KNOWN, expected [4160476.952000, 653192.582000, 4774604.441000]\n    test 87 TransformXform: ITRF2014@2015xETRF2000@2000\n\n    test 88 inverse: -ITRF2014@2015xETRF2000@2000\n    test 89 inverse: ITRF2014@2015xETRF2000@2000\n    test 90 inverse: name='ITRF2014@2015xETRF2000@2000', tx=0.0537, ty=0.0512, tz=-0.0551, s1=1.0, rx=4.3197e-09, ry=2.6131e-08, rz=-4.2237e-08, s=0.00102, sx=0.000891, sy=0.00539, sz=-0.008712\n\n    test 91 ITRF2008@2005: [4160476.674000, 653192.806000, 4774604.648000]\n    test 92 ITRF2014@2018.8: [4160476.671, 653192.804, 4774604.645]  FAILED, KNOWN, expected [4160476.485, 653193.021, 4774604.78]\n    test 93 TransformXform: -ITRF2014@2010xITRF2008@2018.8\n    test 94 Delta (m): [0.186385, -0.217059, -0.134685]  FAILED, KNOWN, expected [0.01, 0.01, 0.01]\n    test 95 Error (m): 0.316218  FAILED, KNOWN, expected 0.01\n    test 96 Epoch range: 13.800  FAILED, KNOWN, expected 14.0\n    test 97 ITRF2008@2005: [4160476.672278, 653192.805730, 4774604.647403]  FAILED, KNOWN, expected [4160476.674000, 653192.806000, 4774604.648000]\n    test 98 TransformXform: ITRF2014@2010xITRF2008@2005\n\n    test 99 inverse: -ITRF2014@2010xITRF2008@2005\n    test 100 inverse: ITRF2014@2010xITRF2008@2005\n    test 101 inverse: name='ITRF2014@2010xITRF2008@2005', tx=0.0016, ty=0.0019, tz=0.0029, s1=1.0, rx=0.0, ry=0.0, rz=0.0, s=-0.00017, sx=0.0, sy=0.0, sz=0.0\n\n    test 102 toRefFrame1: ITRF2020@2015 2024.31 [0.0031474, 0.00210534, -0.00125667]\n    test 103 toRefFrame2: ITRF2014@2010 2024.32 [0.0031474, 0.00210634, -0.00125867]\n    test 104 transform0: -ITRF2020@2015xITRF2014@2010\n    test 105 transform0X: TRFXform(epoch=2010.0, name='-ITRF2020@2015xITRF2014@2010')\n    test 106 toRefFrame3: ITRF2020@2015 2010 [0.0031474, 0.00067434, 0.00160533]\n    test 107 transform2x: (4160476.488147, 653193.021674, 4774604.781605)\n    test 108 transform2v: (0.000, 0.000, 0.000)  FAILED, KNOWN, expected (0.004, 0.003, 0.004)\n\n    test 109 transform0: name='ITRF2020@2015xETRF2020@2010', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=8.75573508e-09, ry=5.28398431e-08, rz=-7.66635874e-08, s=0.0, sx=0.001806, sy=0.010899, sz=-0.015813\n    test 110 transform2c: (4027893.9585, 307045.5550, 4919474.9620)  FAILED, KNOWN, expected (4027893.9585, 307045.5550, 4919474.9619)\n    test 111     Error2c: (-0.000016463, 0.0000336, 0.000055143) max 5.514e-05, epoched 5.0\n    test 112 transform2v: (-0.00011, 0.00010, 0.00023)  FAILED, KNOWN, expected (0.00011, 0.00011, 0.00024)\n    test 113     Error2v: (-0.000220786, -0.000005544, -0.000006899) max 0.0002208\n    test 114 transform0v: (0.00009, 0.00052, -0.00075)  FAILED, KNOWN, expected (0.00011, 0.00011, 0.00024)\n    test 115     Error0v: (-0.000024, 0.000409, -0.000993) max 0.000993\n\n    test 116 transform0: name='-ITRF2014@2015xETRF2020@2010', tx=-0.0014, ty=-0.0004, tz=0.0004, s1=1.0, rx=-8.75573508e-09, ry=-5.28398431e-08, rz=7.66635874e-08, s=-0.00042, sx=-0.001806, sy=-0.010899, sz=0.015813\n    test 117 transform2c: (4027893.6719, 307045.9063, 4919475.1704)  FAILED, KNOWN, expected (4027893.6719, 307045.9064, 4919475.1704)\n    test 118     Error2c: (0.000024786, -0.000062539, -0.000021304) max 6.254e-05, epoched 5.0\n    test 119 transform2v: (-0.01339, 0.01677, 0.01045)  FAILED, KNOWN, expected (-0.01361, 0.01676, 0.01044)\n    test 120     Error2v: (0.000220784, 0.000005543, 0.000006898) max 0.0002208\n    test 121 transform0v: (-0.00009, -0.00052, 0.00075)  FAILED, KNOWN, expected (-0.01361, 0.01676, 0.01044)\n    test 122     Error0v: (0.013524, -0.017279, -0.009687) max 0.01728\n\n    test 123 transform0: name='ITRF2014@2015xETRF2014@2010', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=8.65392421e-09, ry=5.40615736e-08, rz=-7.83943722e-08, s=0.0, sx=0.001785, sy=0.011151, sz=-0.01617\n    test 124 transform2c: (4027893.9619, 307045.5481, 4919474.9553)  FAILED, KNOWN, expected (4027893.9620, 307045.5480, 4919474.9553)\n    test 125     Error2c: (-0.00007476, 0.000063039, 0.000002882) max 7.476e-05, epoched 5.0\n    test 126 transform2v: (0.00020, -0.00030, 0.00020)\n    test 127     Error2v: (0.000000724, -0.000003666, -0.000002721) max 3.666e-06\n    test 128 transform0v: (0.00009, 0.00053, -0.00077)  FAILED, KNOWN, expected (0.00020, -0.00030, 0.00020)\n    test 129     Error0v: (-0.000115, 0.000831, -0.00097) max 0.00097\n\n    test 130 transform0: name='-ITRF2000@2015xETRF2014@2010', tx=0.0007, ty=0.0012, tz=-0.0261, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 131 transform2c: (4027893.6812, 307045.9082, 4919475.1547)\n    test 132     Error2c: (0.000013934, -0.000012081, 0.000026423) max 2.642e-05, epoched 5.0\n    test 133 transform2v: (-0.01351, 0.01686, 0.00854)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 134     Error2v: (-0.000440726, -0.000036335, -0.00053728) max 0.0005373\n    test 135 transform0v: (-0.00008, -0.00053, 0.00077)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 136     Error0v: (0.012985, -0.017431, -0.00831) max 0.01743\n\n    test 137 transform0: name='ITRF2000@2015xETRF2000@2010', tx=0.054, ty=0.051, tz=-0.048, s1=1.0, rx=8.24668072e-09, ry=4.98873278e-08, rz=-8.06342114e-08, s=0.0, sx=0.001701, sy=0.01029, sz=-0.016632\n    test 138 transform2c: (4027894.0054, 307045.5938, 4919474.9083)  FAILED, KNOWN, expected (4027894.0053, 307045.5939, 4919474.9083)\n    test 139     Error2c: (0.000077874, -0.000055372, -0.000008743) max 7.787e-05, epoched 5.0\n    test 140 transform2v: (-0.00020, -0.00050, -0.00037)  FAILED, KNOWN, expected (-0.00020, -0.00050, -0.00036)\n    test 141     Error2v: (-0.000004389, 0.000002124, -0.000008036) max 8.036e-06\n    test 142 transform0v: (0.00008, 0.00049, -0.00079)  FAILED, KNOWN, expected (-0.00020, -0.00050, -0.00036)\n    test 143     Error0v: (0.000281, 0.00099, -0.000432) max 0.00099\n\n    test 144 transform0/: name='-ITRF2000@2015xETRF2014@2010', tx=0.0007, ty=0.0012, tz=-0.0261, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 145 transform2c: (4027893.6812, 307045.9082, 4919475.1547)\n    test 146     Error2c: (0.000013934, -0.000012081, 0.000026423) max 2.642e-05, epoched 5.0\n    test 147 transform2v: (-0.01351, 0.01686, 0.00854)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 148     Error2v: (-0.000440726, -0.000036335, -0.00053728) max 0.0005373\n\n    test 149 transform1/: name='-ITRF2000@1997xITRF97@2015-ITRF97@2015xETRF2014@2010', tx=0.00673, ty=-0.00033, tz=-0.05913, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=8.09154034e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01669\n    test 150 transform2c: (4027893.6865, 307045.9168, 4919475.1217)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 151     Error2c: (0.005269863, 0.008612365, -0.033003577) max 0.033, epoched 23.0\n    test 152 transform2v: (-0.01357, 0.01710, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 153     Error2v: (-0.00050027, 0.000204776, -0.00179728) max 0.001797\n\n    test 154 transform2/: name='-ITRF2000@1997xITRF96@2015-ITRF96@2015xETRF2014@2010', tx=0.00673, ty=-0.00033, tz=-0.05913, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 155 transform2c: (4027893.6872, 307045.9067, 4919475.1217)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 156     Error2c: (0.006043935, -0.001542081, -0.033003577) max 0.033, epoched 23.0\n    test 157 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 158     Error2v: (-0.000440726, -0.000576335, -0.00179728) max 0.001797\n\n    test 159 transform3/: name='-ITRF2000@1988xITRF93@2015-ITRF93@2015xETRF2014@2010', tx=0.0007, ty=0.0012, tz=-0.0261, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 160 transform2c: (4027893.6812, 307045.9082, 4919475.1547)\n    test 161     Error2c: (0.000013934, -0.000012081, 0.000026423) max 2.642e-05, epoched 32.0\n    test 162 transform2v: (-0.01351, 0.01686, 0.00854)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 163     Error2v: (-0.000440726, -0.000036335, -0.00053728) max 0.0005373\n\n    test 164 transform4/: name='-ITRF2000@1988xITRF92@2015-ITRF92@2015xETRF2014@2010', tx=0.01393, ty=0.00147, tz=-0.06633, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 165 transform2c: (4027893.6944, 307045.9085, 4919475.1145)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 166     Error2c: (0.013243935, 0.000257919, -0.040203577) max 0.0402, epoched 32.0\n    test 167 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 168     Error2v: (-0.000440726, -0.000576335, -0.00179728) max 0.001797\n\n    test 169 transform5/: name='-ITRF2000@1988xITRF91@2015-ITRF91@2015xETRF2014@2010', tx=0.0007, ty=0.0012, tz=-0.0261, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 170 transform2c: (4027893.6812, 307045.9082, 4919475.1547)\n    test 171     Error2c: (0.000013934, -0.000012081, 0.000026423) max 2.642e-05, epoched 32.0\n    test 172 transform2v: (-0.01351, 0.01686, 0.00854)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 173     Error2v: (-0.000440726, -0.000036335, -0.00053728) max 0.0005373\n\n    test 174 transform6/: name='-ITRF2000@1988xITRF90@2015-ITRF90@2015xETRF2014@2010', tx=0.02293, ty=0.01047, tz=-0.08613, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 175 transform2c: (4027893.7034, 307045.9175, 4919475.0947)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 176     Error2c: (0.022243935, 0.009257919, -0.060003577) max 0.06, epoched 32.0\n    test 177 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 178     Error2v: (-0.000440726, -0.000576335, -0.00179728) max 0.001797\n\n    test 179 transform7/: name='-ITRF2000@1988xITRF89@2015-ITRF89@2015xETRF2014@2010', tx=0.02743, ty=0.03207, tz=-0.12033, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 180 transform2c: (4027893.7079, 307045.9391, 4919475.0605)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 181     Error2c: (0.026743934, 0.030857919, -0.094203576) max 0.0942, epoched 32.0\n    test 182 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 183     Error2v: (-0.000440726, -0.000576335, -0.00179728) max 0.001797\n\n    test 184 transform8/: name='-ITRF2000@1988xITRF88@2015-ITRF88@2015xETRF2014@2010', tx=0.02293, ty=-0.00033, tz=-0.14193, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 185 transform2c: (4027893.7034, 307045.9067, 4919475.0389)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 186     Error2c: (0.022243935, -0.001542081, -0.115803577) max 0.1158, epoched 32.0\n    test 187 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 188     Error2v: (-0.000440725, -0.000576335, -0.00179728) max 0.001797\n\n    test 189 transform0: name='ITRF2020@2015xETRF2020@2020', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=1.29251327e-08, ry=7.80016732e-08, rz=-1.13170058e-07, s=0.0, sx=0.002666, sy=0.016089, sz=-0.023343\n    test 190 transform2c: (4027893.9574, 307045.5561, 4919474.9643)\n    test 191     Error2c: (-0.000024276, -0.000021815, -0.000013824) max 2.428e-05, epoched 5.0\n    test 192 transform2v: (0.01350, -0.01676, -0.01001)\n\n    test 193 transform0: name='-ITRF2014@2015xETRF2020@2020', tx=-0.0014, ty=-0.0014, tz=0.0024, s1=1.0, rx=-1.29251327e-08, ry=-7.80016732e-08, rz=1.13170058e-07, s=-0.00042, sx=-0.002666, sy=-0.016089, sz=0.023343\n    test 194 transform2c: (4027893.5358, 307046.0740, 4919475.2748)\n    test 195     Error2c: (0.000032643, -0.000007101, 0.000047684) max 4.768e-05, epoched 5.0\n    test 196 transform2v: (-0.01350, 0.01666, 0.01021)\n\n    test 197 transform0: name='ITRF2014@2015xETRF2014@2020', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=1.27748405e-08, ry=7.980518e-08, rz=-1.15725026e-07, s=0.0, sx=0.002635, sy=0.016461, sz=-0.02387\n    test 198 transform2c: (4027893.9639, 307045.5450, 4919474.9573)\n    test 199     Error2c: (0.000032525, 0.000026405, -0.000024305) max 3.253e-05, epoched 5.0\n    test 200 transform2v: (0.01381, -0.01706, -0.01024)\n\n    test 201 transform0: name='-ITRF2000@2015xETRF2014@2020', tx=0.0017, ty=0.0022, tz=-0.0451, s1=1.0, rx=-1.27748405e-08, ry=-7.980518e-08, rz=1.15725026e-07, s=0.00322, sx=-0.002635, sy=-0.016461, sz=0.02387\n    test 202 transform2c: (4027893.5504, 307046.0772, 4919475.2456)  FAILED, KNOWN, expected (4027893.5505, 307046.0772, 4919475.2456)\n    test 203     Error2c: (-0.00006262, -0.000037673, -0.000034945) max 6.262e-05, epoched 5.0\n    test 204 transform2v: (-0.01371, 0.01716, 0.00834)\n\n    test 205 transform0: name='ITRF2000@2015xETRF2000@2020', tx=0.054, ty=0.051, tz=-0.048, s1=1.0, rx=1.21736715e-08, ry=7.36431982e-08, rz=-1.19031455e-07, s=0.0, sx=0.002511, sy=0.01519, sz=-0.024552\n    test 206 transform2c: (4027894.0033, 307045.5889, 4919474.9047)\n    test 207     Error2c: (0.000034031, -0.000034106, 0.000010915) max 3.411e-05, epoched 5.0\n    test 208 transform2v: (0.01287, -0.01740, -0.00945)\n\n    test 209 transform0*: name='-ITRF2014@2010xITRF89-ITRF89@1989xETRF89@2010@2018.8', tx=-0.03128, ty=-0.0311, tz=0.15984, s1=0.999999991, rx=-1.58921925e-08, ry=-8.23504519e-08, rz=1.00463091e-07, s=-0.009246, sx=-0.003278, sy=-0.016986, sz=0.020722\n    test 210 transform2c: (4160476.4154, 653193.0567, 4774604.9029)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 211     Error2c: (-0.069560351, 0.035713888, 0.122930501) max 0.1229, epoched 29.8\n    test 212 transform2v: (-0.01148, 0.01996, 0.01845)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 213     Error2v: (-0.015479395, 0.016963959, 0.014448874) max 0.01696\n\n    test 214 transform0*: name='-ITRF2014@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 215 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 216     Error2c: (-0.014174475, 0.037834952, 0.023962617) max 0.03783, epoched 3.8\n    test 217 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 218     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 219 transform1*: name='-ITRF2014@2010xITRF2008@2015-ITRF2008@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 220 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 221     Error2c: (-0.014174475, 0.037834952, 0.023962617) max 0.03783, epoched 8.8\n    test 222 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 223     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 224 transform2*: name='-ITRF2014@2010xITRF97@2015-ITRF97@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 225 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 226     Error2c: (-0.014174475, 0.037834952, 0.023962617) max 0.03783, epoched 8.8\n    test 227 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 228     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 229 transform3*: name='-ITRF2014@2010xITRF93@2015-ITRF93@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 230 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 231     Error2c: (-0.014174475, 0.037834952, 0.023962617) max 0.03783, epoched 8.8\n    test 232 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 233     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 234 transform4*: name='-ITRF2014@2010xITRF92@2015-ITRF92@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 235 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 236     Error2c: (-0.014174475, 0.037834952, 0.023962617) max 0.03783, epoched 8.8\n    test 237 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 238     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 239 transform5*: name='-ITRF2014@2010xITRF91@2015-ITRF91@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 240 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 241     Error2c: (-0.014174475, 0.037834952, 0.023962617) max 0.03783, epoched 8.8\n    test 242 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 243     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 244 transform6*: name='-ITRF2014@2010xITRF90@2015-ITRF90@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 245 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 246     Error2c: (-0.014174475, 0.037834952, 0.023962617) max 0.03783, epoched 8.8\n    test 247 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 248     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 249 transform7*: name='-ITRF2014@2010xITRF89@2015-ITRF89@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 250 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 251     Error2c: (-0.014174475, 0.037834952, 0.023962617) max 0.03783, epoched 8.8\n    test 252 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 253     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 254 transform8*: name='-ITRF2014@2010xITRF88@2015-ITRF88@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 255 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 256     Error2c: (-0.014174475, 0.037834952, 0.023962617) max 0.03783, epoched 8.8\n    test 257 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 258     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 259 toTransform: name='-ITRF2014@2010xITRF88@2015-ITRF88@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=1.0, rx=-1.1702e-08, ry=-7.0792e-08, rz=1.1442e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.023602\n    test 260 toTransform: name='-ITRF2014@2010xITRF88@2015-ITRF88@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=1.0, rx=-1.1702e-08, ry=-7.0792e-08, rz=1.1442e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.023602\n\n    test 261 Issue80: 48.77691577°N, 008.92257142°E, +476.05m\n    test 262 Issue80: 48.77692147°N, 008.92257868°E, +476.09m\n# imported pygeodesy.formy into latlonBase.py line 1503\n    test 263 Issue80: 48°46′36.915134″N, 008°55′21.285094″E, +476.10m  FAILED, KNOWN, expected 48°46′36.915134″N, 008°55′21.285094″E, +476.10\n    test 264 Issue80: 0.804  FAILED, KNOWN, expected 0.01\n    test 265 Issue80: [4160476.944064, 653192.600457, 4774604.455385]\n    test 266 Issue80: [4160476.415504, 653193.057171, 4774604.903316]\n    test 267 Issue80: [4160476.467901, 653193.103647, 4774604.868888]\n    test 268 Issue80: 48°46′36.915133″N, 008°55′21.285094″E, +476.10m\n\n    test 269 Issue80: 48.77692032°N, 008.92257804°E, +476.05m\n    test 270 Issue80: 48.77691971°N, 008.92257856°E, +476.06m\n    test 271 Issue80: 48°46′36.9315″N, 008°55′21.3089″E, +476.10m  FAILED, KNOWN, expected 48°46′36.9131″N, 008°55′21.28095″E, +476.05m\n    test 272 Issue80: 0.804  FAILED, KNOWN, expected 0.01\n    test 273 Issue80: [4160476.492633, 653193.021888, 4774604.78885]\n    test 274 Issue80: [4160476.54503, 653193.068365, 4774604.754422]\n    test 275 Issue80: [4160476.016469, 653193.525079, 4774605.202353]\n    test 276 Issue80: 48°46′36.9315″N, 008°55′21.3089″E, +476.10m\n\n    test 277 ITRF96@1997xNAD83: TRFXform(epoch=1997.0, name='ITRF96@1997xNAD83')\n    test 278 ITRF96@1997xNAD83: name='ITRF96@1997xNAD83', tx=0.991, ty=-0.19072, tz=-0.5129, s1=1.0, rx=1.2503e-07, ry=4.6785e-08, rz=5.6529e-08, s=0.0, sx=0.02579, sy=0.00965, sz=0.01166\n    test 279 ITRF96@1997xNAD83: name='ITRF96@1997xNAD83@2007', tx=0.991, ty=-0.19072, tz=-0.5129, s1=1.0, rx=1.2761e-07, ry=1.0797e-08, rz=5.4997e-08, s=0.0, sx=0.026322, sy=0.002227, sz=0.011344\n    test 280 ITRF96@1997xNAD83: rx=-2.5792e-10, ry=3.5988e-09, rz=1.532e-10\n\n    testTrf(pygeodesy.ellipsoidalVincenty, 25.05.26)\n    test 281 convertRefFrame: 51.47787826°N, 000.00147125°W, -0.00m  FAILED, KNOWN, expected 51.47787826°N, 000.00147125°W\n    test 282 copy(<class 'type'>): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 283 RefFrame.copy(): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 284 toLatLon: 50.7978°N, 004.3592°E, +148.96m\n    test 285 convertRefFrame: [3980574.395, -102.214, 4966829.941]\n    test 286 Nil: True\n    test 287 copy(<class 'type'>): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 288 RefFrame.copy(): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 289 Nil: True\n    test 290 reframe: True\n    test 291 Roundtrip: True\n    test 292 reframe: True\n    test 293 copy(<class 'type'>): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 294 RefFrame.copy(): (<class 'pygeodesy.trf.RefFrame'>, True)\n\n    test 295 Geodetic: 23°40′12.44582″S, 133°53′07.84795″E, +603.34m\n    test 296 Cartesian: [-4052051.7614, 4212836.1945, -2545106.0147]\n    test 297 Geodetic: 23°40′12.44582″S, 133°53′07.84795″E, +603.34m\n    test 298 Cartesian: [-4052051.7614, 4212836.1945, -2545106.0147]\n    test 299 Roundtrip: 23°40′12.41482″S, 133°53′07.86712″E, +603.26m\n    test 300 GNSStrans: [3370658.18892, 711877.42369, 5349787.1243]\n    test 301 Cartesian: [-734972.563, 4893188.492, 4011982.811]\n\n    test 302 EUREF EX1: [4027894.0444, 307045.6209, 4919474.8613]\n    test 303 transform0: ITRF2005@2015xETRF2020-ITRF91@2015xETRF2020@2007 max 9.3132e-10, epoched 8.0\n    test 304 transform1: ITRF2005@2015xETRF2014-ITRF91@2015xETRF2014@2007 max 0.048666, epoched 8.0\n    test 305 transform2: ITRF2005@2015xETRF2000-ITRF91@2015xETRF2000@2007 max 0.097331, epoched 8.0\n    test 306 transform3: ITRF2005@2000xITRF2000+ITRF2000@1988xITRF91@2000@2007 max 0.146, epoched 19.0\n    test 307 transform4: -ITRF2020@2015xITRF2005+ITRF2020@2015xITRF91@2007 max 0.19466, epoched 8.0\n    test 308 transform5: -ITRF2014@2010xITRF2005+ITRF2014@2010xITRF91@2007 max 0.24333, epoched 3.0\n    test 309 transform6: -ITRF2008@2005xITRF2005+ITRF2008@2000xITRF91@2005@2007 max 0.29199, epoched 7.0\n    test 310 transform7: ITRF2000@1988xITRF91+ITRF2005@2000xITRF2000@1988@2007 max 0.34066, epoched 31.0\n    test 311 transform8: ITRF2014@2010xITRF91-ITRF2014@2020xGDA2020@2010+ITRF2005@2020xGDA2020@2010@2007 max 0.98111, epoched 23.0\n    test 312 transform9: ITRF2008@2000xITRF91-ITRF2008@1994xGDA94@2000+ITRF2005@1994xGDA94@2000@2007 max 0.35972, epoched 19.0\n    test 313 transform10: ITRF2008@2000xITRF91-ITRF2008@1997xNAD83@2000+ITRF2005@1997xNAD83@2000@2007 max 0.40805, epoched 13.0\n    test 314 EUREF EX2: [4027894.0060, 307045.6000, 4919474.9100]\n    test 315 transform0: ITRF91@2015xETRF2020-ITRF2005@2015xETRF2020@2007 max 0.048666, epoched 8.0\n    test 316 transform1: ITRF91@2015xETRF2014-ITRF2005@2015xETRF2014@2007 max 1.8626e-09, epoched 8.0\n    test 317 transform2: ITRF91@2015xETRF2000-ITRF2005@2015xETRF2000@2007 max 0.048666, epoched 8.0\n    test 318 transform3: -ITRF2005@2000xITRF2000-ITRF2000@1988xITRF91@2000@2007 max 0.097331, epoched 19.0\n    test 319 EUREF EX4: [4027894.3559, 307045.2508, 4919474.6447]\n    test 320 transform0: -ITRF2000@2015xETRF2000@2012 max 4.5169e-08, epoched 3.0\n    test 321 transform1: -ITRF2000@1997xITRF97@2015-ITRF97@2015xETRF2000@2012 max 0.35826, epoched 21.0\n    test 322 transform2: -ITRF2000@1997xITRF96@2015-ITRF96@2015xETRF2000@2012 max 0.7048, epoched 21.0\n    test 323 transform3: -ITRF2000@1988xITRF93@2015-ITRF93@2015xETRF2000@2012 max 1.054, epoched 30.0\n    test 324 transform4: -ITRF2000@1988xITRF92@2015-ITRF92@2015xETRF2000@2012 max 1.4023, epoched 30.0\n    test 325 transform5: -ITRF2000@1988xITRF91@2015-ITRF91@2015xETRF2000@2012 max 1.7514, epoched 30.0\n    test 326 transform6: -ITRF2000@1988xITRF90@2015-ITRF90@2015xETRF2000@2012 max 2.1088, epoched 30.0\n    test 327 transform7: -ITRF2000@1988xITRF89@2015-ITRF89@2015xETRF2000@2012 max 2.4877, epoched 30.0\n    test 328 transform8: -ITRF2000@1988xITRF88@2015-ITRF88@2015xETRF2000@2012 max 2.8343, epoched 30.0\n    test 329 EUREF EX5: [4027893.6458, 307045.9470, 4919475.1937]  FAILED, KNOWN, expected [4027894.3662, 307045.2530, 4919474.6263]\n    test 330 transform0: ITRF2014@2015xETRF2000@2012 max 4.5169e-08, epoched 3.0\n    test 331 transform1: ITRF2014@2010xITRF2008@2015+ITRF2008@2015xETRF2000@2012 max 0.36023, epoched 8.0\n    test 332 transform2: ITRF2014@2010xITRF97@2015+ITRF97@2015xETRF2000@2012 max 0.72047, epoched 8.0\n    test 333 transform3: ITRF2014@2010xITRF93@2015+ITRF93@2015xETRF2000@2012 max 1.0807, epoched 8.0\n    test 334 transform4: ITRF2014@2010xITRF92@2015+ITRF92@2015xETRF2000@2012 max 1.4409, epoched 8.0\n    test 335 transform5: ITRF2014@2010xITRF91@2015+ITRF91@2015xETRF2000@2012 max 1.8012, epoched 8.0\n    test 336 transform6: ITRF2014@2010xITRF90@2015+ITRF90@2015xETRF2000@2012 max 2.1614, epoched 8.0\n    test 337 transform7: ITRF2014@2010xITRF89@2015+ITRF89@2015xETRF2000@2012 max 2.5216, epoched 8.0\n    test 338 transform8: ITRF2014@2010xITRF88@2015+ITRF88@2015xETRF2000@2012 max 2.8819, epoched 8.0\n\n    test 339 Case 1A: [4027893.9619, 307045.5481, 4919474.9553]\n    test 340 Case 1B: [4027894.0054, 307045.5938, 4919474.9083]\n    test 341 Case 2A: [4027893.9639, 307045.545, 4919474.9573]\n    test 342 Case 2B: [4027894.0033, 307045.5889, 4919474.9041]\n\n    test 343 TypeError: type(reframe) ('ITRF2000'): not a RefFrame\n    test 344 TRFError: epoch (1899): below 1900.0 limit\n    test 345 TypeError: type(reframe2) ('ITRF2000'): not a RefFrame\n    test 346 TRFError: no conversion: LatLon(00°00′00.0″N, 000°00′00.0″E).reframe MISSING\n    test 347 TypeError: type(reframe2) ('ITRF2000'): not a RefFrame\n    test 348 TypeError: type(reframe) ('ITRF2000'): not a RefFrame\n\n    test 349 ETRF89@1989: [4160476.944000, 653192.600000, 4774604.455000]\n    test 350 ITRF2014@2018.8: [4160476.415, 653193.057, 4774604.903]  FAILED, KNOWN, expected [4160476.485, 653193.021, 4774604.78]\n    test 351 TransformXform: -ITRF2014@2010xITRF89-ITRF89@1989xETRF89@2010@2018.8\n    test 352 Delta (m): [-0.06956, 0.035714, 0.122931]  FAILED, KNOWN, expected [0.01, 0.01, 0.01]\n    test 353 Error (m): 0.145692  FAILED, KNOWN, expected 0.01\n    test 354 Epoch range: 29.800  FAILED, KNOWN, expected 14.0\n    test 355 ETRF89@1989: [4160476.467836, 653193.103190, 4774604.868503]  FAILED, KNOWN, expected [4160476.944000, 653192.600000, 4774604.455000]\n    test 356 TransformXform: ITRF2014@2010xITRF89+ITRF89@1989xETRF89@2010@1989\n\n    test 357 inverse: -ITRF2014@2010xITRF89-ITRF89@1989xETRF89@2010@1989\n    test 358 inverse: ITRF2014@2010xITRF89+ITRF89@1989xETRF89@2010@1989\n    test 359 inverse: name='ITRF2014@2010xITRF89+ITRF89@1989xETRF89@2010@1989', tx=0.0283, ty=0.046, tz=-0.0615, s1=1.0, rx=0.0, ry=0.0, rz=-7.757e-10, s=0.00567, sx=0.0, sy=0.0, sz=-0.00016\n\n    test 360 ETRF2000@2000: [4160476.952000, 653192.582000, 4774604.441000]\n    test 361 ITRF2014@2018.8: [4160476.471, 653193.059, 4774604.804]  FAILED, KNOWN, expected [4160476.485, 653193.021, 4774604.78]\n    test 362 TransformXform: -ITRF2014@2015xETRF2000@2018.8\n    test 363 Delta (m): [-0.014174, 0.037835, 0.023963]  FAILED, KNOWN, expected [0.01, 0.01, 0.01]\n    test 364 Error (m): 0.046975  FAILED, KNOWN, expected 0.01\n    test 365 Epoch range: 18.800  FAILED, KNOWN, expected 14.0\n    test 366 ETRF2000@2000: [4160476.681125, 653192.914350, 4774604.647835]  FAILED, KNOWN, expected [4160476.952000, 653192.582000, 4774604.441000]\n    test 367 TransformXform: ITRF2014@2015xETRF2000@2000\n\n    test 368 inverse: -ITRF2014@2015xETRF2000@2000\n    test 369 inverse: ITRF2014@2015xETRF2000@2000\n    test 370 inverse: name='ITRF2014@2015xETRF2000@2000', tx=0.0537, ty=0.0512, tz=-0.0551, s1=1.0, rx=4.3197e-09, ry=2.6131e-08, rz=-4.2237e-08, s=0.00102, sx=0.000891, sy=0.00539, sz=-0.008712\n\n    test 371 ITRF2008@2005: [4160476.674000, 653192.806000, 4774604.648000]\n    test 372 ITRF2014@2018.8: [4160476.671, 653192.804, 4774604.645]  FAILED, KNOWN, expected [4160476.485, 653193.021, 4774604.78]\n    test 373 TransformXform: -ITRF2014@2010xITRF2008@2018.8\n    test 374 Delta (m): [0.186385, -0.217059, -0.134685]  FAILED, KNOWN, expected [0.01, 0.01, 0.01]\n    test 375 Error (m): 0.316218  FAILED, KNOWN, expected 0.01\n    test 376 Epoch range: 13.800  FAILED, KNOWN, expected 14.0\n    test 377 ITRF2008@2005: [4160476.672278, 653192.805730, 4774604.647403]  FAILED, KNOWN, expected [4160476.674000, 653192.806000, 4774604.648000]\n    test 378 TransformXform: ITRF2014@2010xITRF2008@2005\n\n    test 379 inverse: -ITRF2014@2010xITRF2008@2005\n    test 380 inverse: ITRF2014@2010xITRF2008@2005\n    test 381 inverse: name='ITRF2014@2010xITRF2008@2005', tx=0.0016, ty=0.0019, tz=0.0029, s1=1.0, rx=0.0, ry=0.0, rz=0.0, s=-0.00017, sx=0.0, sy=0.0, sz=0.0\n\n    test 382 toRefFrame1: ITRF2020@2015 2024.31 [0.0031474, 0.00210534, -0.00125667]\n    test 383 toRefFrame2: ITRF2014@2010 2024.32 [0.0031474, 0.00210634, -0.00125867]\n    test 384 transform0: -ITRF2020@2015xITRF2014@2010\n    test 385 transform0X: TRFXform(epoch=2010.0, name='-ITRF2020@2015xITRF2014@2010')\n    test 386 toRefFrame3: ITRF2020@2015 2010 [0.0031474, 0.00067434, 0.00160533]\n    test 387 transform2x: (4160476.488147, 653193.021674, 4774604.781605)\n    test 388 transform2v: (0.000, 0.000, 0.000)  FAILED, KNOWN, expected (0.004, 0.003, 0.004)\n\n    test 389 transform0: name='ITRF2020@2015xETRF2020@2010', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=8.75573508e-09, ry=5.28398431e-08, rz=-7.66635874e-08, s=0.0, sx=0.001806, sy=0.010899, sz=-0.015813\n    test 390 transform2c: (4027893.9585, 307045.5550, 4919474.9620)  FAILED, KNOWN, expected (4027893.9585, 307045.5550, 4919474.9619)\n    test 391     Error2c: (-0.000016463, 0.0000336, 0.000055143) max 5.514e-05, epoched 5.0\n    test 392 transform2v: (-0.00011, 0.00010, 0.00023)  FAILED, KNOWN, expected (0.00011, 0.00011, 0.00024)\n    test 393     Error2v: (-0.000220786, -0.000005544, -0.000006899) max 0.0002208\n    test 394 transform0v: (0.00009, 0.00052, -0.00075)  FAILED, KNOWN, expected (0.00011, 0.00011, 0.00024)\n    test 395     Error0v: (-0.000024, 0.000409, -0.000993) max 0.000993\n\n    test 396 transform0: name='-ITRF2014@2015xETRF2020@2010', tx=-0.0014, ty=-0.0004, tz=0.0004, s1=1.0, rx=-8.75573508e-09, ry=-5.28398431e-08, rz=7.66635874e-08, s=-0.00042, sx=-0.001806, sy=-0.010899, sz=0.015813\n    test 397 transform2c: (4027893.6719, 307045.9063, 4919475.1704)  FAILED, KNOWN, expected (4027893.6719, 307045.9064, 4919475.1704)\n    test 398     Error2c: (0.000024786, -0.000062539, -0.000021304) max 6.254e-05, epoched 5.0\n    test 399 transform2v: (-0.01339, 0.01677, 0.01045)  FAILED, KNOWN, expected (-0.01361, 0.01676, 0.01044)\n    test 400     Error2v: (0.000220784, 0.000005543, 0.000006898) max 0.0002208\n    test 401 transform0v: (-0.00009, -0.00052, 0.00075)  FAILED, KNOWN, expected (-0.01361, 0.01676, 0.01044)\n    test 402     Error0v: (0.013524, -0.017279, -0.009687) max 0.01728\n\n    test 403 transform0: name='ITRF2014@2015xETRF2014@2010', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=8.65392421e-09, ry=5.40615736e-08, rz=-7.83943722e-08, s=0.0, sx=0.001785, sy=0.011151, sz=-0.01617\n    test 404 transform2c: (4027893.9619, 307045.5481, 4919474.9553)  FAILED, KNOWN, expected (4027893.9620, 307045.5480, 4919474.9553)\n    test 405     Error2c: (-0.00007476, 0.000063039, 0.000002882) max 7.476e-05, epoched 5.0\n    test 406 transform2v: (0.00020, -0.00030, 0.00020)\n    test 407     Error2v: (0.000000724, -0.000003666, -0.000002721) max 3.666e-06\n    test 408 transform0v: (0.00009, 0.00053, -0.00077)  FAILED, KNOWN, expected (0.00020, -0.00030, 0.00020)\n    test 409     Error0v: (-0.000115, 0.000831, -0.00097) max 0.00097\n\n    test 410 transform0: name='-ITRF2000@2015xETRF2014@2010', tx=0.0007, ty=0.0012, tz=-0.0261, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 411 transform2c: (4027893.6812, 307045.9082, 4919475.1547)\n    test 412     Error2c: (0.000013934, -0.000012081, 0.000026423) max 2.642e-05, epoched 5.0\n    test 413 transform2v: (-0.01351, 0.01686, 0.00854)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 414     Error2v: (-0.000440726, -0.000036335, -0.00053728) max 0.0005373\n    test 415 transform0v: (-0.00008, -0.00053, 0.00077)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 416     Error0v: (0.012985, -0.017431, -0.00831) max 0.01743\n\n    test 417 transform0: name='ITRF2000@2015xETRF2000@2010', tx=0.054, ty=0.051, tz=-0.048, s1=1.0, rx=8.24668072e-09, ry=4.98873278e-08, rz=-8.06342114e-08, s=0.0, sx=0.001701, sy=0.01029, sz=-0.016632\n    test 418 transform2c: (4027894.0054, 307045.5938, 4919474.9083)  FAILED, KNOWN, expected (4027894.0053, 307045.5939, 4919474.9083)\n    test 419     Error2c: (0.000077874, -0.000055372, -0.000008743) max 7.787e-05, epoched 5.0\n    test 420 transform2v: (-0.00020, -0.00050, -0.00037)  FAILED, KNOWN, expected (-0.00020, -0.00050, -0.00036)\n    test 421     Error2v: (-0.000004389, 0.000002124, -0.000008036) max 8.036e-06\n    test 422 transform0v: (0.00008, 0.00049, -0.00079)  FAILED, KNOWN, expected (-0.00020, -0.00050, -0.00036)\n    test 423     Error0v: (0.000281, 0.00099, -0.000432) max 0.00099\n\n    test 424 transform0/: name='-ITRF2000@2015xETRF2014@2010', tx=0.0007, ty=0.0012, tz=-0.0261, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 425 transform2c: (4027893.6812, 307045.9082, 4919475.1547)\n    test 426     Error2c: (0.000013934, -0.000012081, 0.000026423) max 2.642e-05, epoched 5.0\n    test 427 transform2v: (-0.01351, 0.01686, 0.00854)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 428     Error2v: (-0.000440726, -0.000036335, -0.00053728) max 0.0005373\n\n    test 429 transform1/: name='-ITRF2000@1997xITRF97@2015-ITRF97@2015xETRF2014@2010', tx=0.00673, ty=-0.00033, tz=-0.05913, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=8.09154034e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01669\n    test 430 transform2c: (4027893.6865, 307045.9168, 4919475.1217)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 431     Error2c: (0.005269863, 0.008612365, -0.033003577) max 0.033, epoched 23.0\n    test 432 transform2v: (-0.01357, 0.01710, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 433     Error2v: (-0.00050027, 0.000204776, -0.00179728) max 0.001797\n\n    test 434 transform2/: name='-ITRF2000@1997xITRF96@2015-ITRF96@2015xETRF2014@2010', tx=0.00673, ty=-0.00033, tz=-0.05913, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 435 transform2c: (4027893.6872, 307045.9067, 4919475.1217)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 436     Error2c: (0.006043935, -0.001542081, -0.033003577) max 0.033, epoched 23.0\n    test 437 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 438     Error2v: (-0.000440726, -0.000576335, -0.00179728) max 0.001797\n\n    test 439 transform3/: name='-ITRF2000@1988xITRF93@2015-ITRF93@2015xETRF2014@2010', tx=0.0007, ty=0.0012, tz=-0.0261, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 440 transform2c: (4027893.6812, 307045.9082, 4919475.1547)\n    test 441     Error2c: (0.000013934, -0.000012081, 0.000026423) max 2.642e-05, epoched 32.0\n    test 442 transform2v: (-0.01351, 0.01686, 0.00854)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 443     Error2v: (-0.000440726, -0.000036335, -0.00053728) max 0.0005373\n\n    test 444 transform4/: name='-ITRF2000@1988xITRF92@2015-ITRF92@2015xETRF2014@2010', tx=0.01393, ty=0.00147, tz=-0.06633, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 445 transform2c: (4027893.6944, 307045.9085, 4919475.1145)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 446     Error2c: (0.013243935, 0.000257919, -0.040203577) max 0.0402, epoched 32.0\n    test 447 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 448     Error2v: (-0.000440726, -0.000576335, -0.00179728) max 0.001797\n\n    test 449 transform5/: name='-ITRF2000@1988xITRF91@2015-ITRF91@2015xETRF2014@2010', tx=0.0007, ty=0.0012, tz=-0.0261, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 450 transform2c: (4027893.6812, 307045.9082, 4919475.1547)\n    test 451     Error2c: (0.000013934, -0.000012081, 0.000026423) max 2.642e-05, epoched 32.0\n    test 452 transform2v: (-0.01351, 0.01686, 0.00854)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 453     Error2v: (-0.000440726, -0.000036335, -0.00053728) max 0.0005373\n\n    test 454 transform6/: name='-ITRF2000@1988xITRF90@2015-ITRF90@2015xETRF2014@2010', tx=0.02293, ty=0.01047, tz=-0.08613, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 455 transform2c: (4027893.7034, 307045.9175, 4919475.0947)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 456     Error2c: (0.022243935, 0.009257919, -0.060003577) max 0.06, epoched 32.0\n    test 457 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 458     Error2v: (-0.000440726, -0.000576335, -0.00179728) max 0.001797\n\n    test 459 transform7/: name='-ITRF2000@1988xITRF89@2015-ITRF89@2015xETRF2014@2010', tx=0.02743, ty=0.03207, tz=-0.12033, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 460 transform2c: (4027893.7079, 307045.9391, 4919475.0605)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 461     Error2c: (0.026743934, 0.030857919, -0.094203576) max 0.0942, epoched 32.0\n    test 462 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 463     Error2v: (-0.000440726, -0.000576335, -0.00179728) max 0.001797\n\n    test 464 transform8/: name='-ITRF2000@1988xITRF88@2015-ITRF88@2015xETRF2014@2010', tx=0.02293, ty=-0.00033, tz=-0.14193, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 465 transform2c: (4027893.7034, 307045.9067, 4919475.0389)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 466     Error2c: (0.022243935, -0.001542081, -0.115803577) max 0.1158, epoched 32.0\n    test 467 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 468     Error2v: (-0.000440725, -0.000576335, -0.00179728) max 0.001797\n\n    test 469 transform0: name='ITRF2020@2015xETRF2020@2020', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=1.29251327e-08, ry=7.80016732e-08, rz=-1.13170058e-07, s=0.0, sx=0.002666, sy=0.016089, sz=-0.023343\n    test 470 transform2c: (4027893.9574, 307045.5561, 4919474.9643)\n    test 471     Error2c: (-0.000024276, -0.000021815, -0.000013824) max 2.428e-05, epoched 5.0\n    test 472 transform2v: (0.01350, -0.01676, -0.01001)\n\n    test 473 transform0: name='-ITRF2014@2015xETRF2020@2020', tx=-0.0014, ty=-0.0014, tz=0.0024, s1=1.0, rx=-1.29251327e-08, ry=-7.80016732e-08, rz=1.13170058e-07, s=-0.00042, sx=-0.002666, sy=-0.016089, sz=0.023343\n    test 474 transform2c: (4027893.5358, 307046.0740, 4919475.2748)\n    test 475     Error2c: (0.000032643, -0.000007101, 0.000047684) max 4.768e-05, epoched 5.0\n    test 476 transform2v: (-0.01350, 0.01666, 0.01021)\n\n    test 477 transform0: name='ITRF2014@2015xETRF2014@2020', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=1.27748405e-08, ry=7.980518e-08, rz=-1.15725026e-07, s=0.0, sx=0.002635, sy=0.016461, sz=-0.02387\n    test 478 transform2c: (4027893.9639, 307045.5450, 4919474.9573)\n    test 479     Error2c: (0.000032525, 0.000026405, -0.000024305) max 3.253e-05, epoched 5.0\n    test 480 transform2v: (0.01381, -0.01706, -0.01024)\n\n    test 481 transform0: name='-ITRF2000@2015xETRF2014@2020', tx=0.0017, ty=0.0022, tz=-0.0451, s1=1.0, rx=-1.27748405e-08, ry=-7.980518e-08, rz=1.15725026e-07, s=0.00322, sx=-0.002635, sy=-0.016461, sz=0.02387\n    test 482 transform2c: (4027893.5504, 307046.0772, 4919475.2456)  FAILED, KNOWN, expected (4027893.5505, 307046.0772, 4919475.2456)\n    test 483     Error2c: (-0.00006262, -0.000037673, -0.000034945) max 6.262e-05, epoched 5.0\n    test 484 transform2v: (-0.01371, 0.01716, 0.00834)\n\n    test 485 transform0: name='ITRF2000@2015xETRF2000@2020', tx=0.054, ty=0.051, tz=-0.048, s1=1.0, rx=1.21736715e-08, ry=7.36431982e-08, rz=-1.19031455e-07, s=0.0, sx=0.002511, sy=0.01519, sz=-0.024552\n    test 486 transform2c: (4027894.0033, 307045.5889, 4919474.9047)\n    test 487     Error2c: (0.000034031, -0.000034106, 0.000010915) max 3.411e-05, epoched 5.0\n    test 488 transform2v: (0.01287, -0.01740, -0.00945)\n\n    test 489 transform0*: name='-ITRF2014@2010xITRF89-ITRF89@1989xETRF89@2010@2018.8', tx=-0.03128, ty=-0.0311, tz=0.15984, s1=0.999999991, rx=-1.58921925e-08, ry=-8.23504519e-08, rz=1.00463091e-07, s=-0.009246, sx=-0.003278, sy=-0.016986, sz=0.020722\n    test 490 transform2c: (4160476.4154, 653193.0567, 4774604.9029)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 491     Error2c: (-0.069560351, 0.035713888, 0.122930501) max 0.1229, epoched 29.8\n    test 492 transform2v: (-0.01148, 0.01996, 0.01845)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 493     Error2v: (-0.015479395, 0.016963959, 0.014448874) max 0.01696\n\n    test 494 transform0*: name='-ITRF2014@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 495 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 496     Error2c: (-0.014174475, 0.037834952, 0.023962617) max 0.03783, epoched 3.8\n    test 497 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 498     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 499 transform1*: name='-ITRF2014@2010xITRF2008@2015-ITRF2008@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 500 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 501     Error2c: (-0.014174475, 0.037834952, 0.023962617) max 0.03783, epoched 8.8\n    test 502 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 503     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 504 transform2*: name='-ITRF2014@2010xITRF97@2015-ITRF97@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 505 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 506     Error2c: (-0.014174475, 0.037834952, 0.023962617) max 0.03783, epoched 8.8\n    test 507 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 508     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 509 transform3*: name='-ITRF2014@2010xITRF93@2015-ITRF93@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 510 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 511     Error2c: (-0.014174475, 0.037834952, 0.023962617) max 0.03783, epoched 8.8\n    test 512 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 513     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 514 transform4*: name='-ITRF2014@2010xITRF92@2015-ITRF92@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 515 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 516     Error2c: (-0.014174475, 0.037834952, 0.023962617) max 0.03783, epoched 8.8\n    test 517 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 518     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 519 transform5*: name='-ITRF2014@2010xITRF91@2015-ITRF91@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 520 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 521     Error2c: (-0.014174475, 0.037834952, 0.023962617) max 0.03783, epoched 8.8\n    test 522 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 523     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 524 transform6*: name='-ITRF2014@2010xITRF90@2015-ITRF90@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 525 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 526     Error2c: (-0.014174475, 0.037834952, 0.023962617) max 0.03783, epoched 8.8\n    test 527 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 528     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 529 transform7*: name='-ITRF2014@2010xITRF89@2015-ITRF89@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 530 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 531     Error2c: (-0.014174475, 0.037834952, 0.023962617) max 0.03783, epoched 8.8\n    test 532 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 533     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 534 transform8*: name='-ITRF2014@2010xITRF88@2015-ITRF88@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 535 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 536     Error2c: (-0.014174475, 0.037834952, 0.023962617) max 0.03783, epoched 8.8\n    test 537 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 538     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 539 toTransform: name='-ITRF2014@2010xITRF88@2015-ITRF88@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=1.0, rx=-1.1702e-08, ry=-7.0792e-08, rz=1.1442e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.023602\n    test 540 toTransform: name='-ITRF2014@2010xITRF88@2015-ITRF88@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=1.0, rx=-1.1702e-08, ry=-7.0792e-08, rz=1.1442e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.023602\n\n    test 541 Issue80: 48.77691577°N, 008.92257142°E, +476.05m\n    test 542 Issue80: 48.77692147°N, 008.92257868°E, +476.09m\n    test 543 Issue80: 48°46′36.915134″N, 008°55′21.285094″E, +476.10m  FAILED, KNOWN, expected 48°46′36.915134″N, 008°55′21.285094″E, +476.10\n    test 544 Issue80: 0.804  FAILED, KNOWN, expected 0.01\n    test 545 Issue80: [4160476.944064, 653192.600457, 4774604.455385]\n    test 546 Issue80: [4160476.415504, 653193.057171, 4774604.903316]\n    test 547 Issue80: [4160476.467901, 653193.103647, 4774604.868888]\n    test 548 Issue80: 48°46′36.915133″N, 008°55′21.285094″E, +476.10m\n\n    test 549 Issue80: 48.77692032°N, 008.92257804°E, +476.05m\n    test 550 Issue80: 48.77691971°N, 008.92257856°E, +476.06m\n    test 551 Issue80: 48°46′36.9315″N, 008°55′21.3089″E, +476.10m  FAILED, KNOWN, expected 48°46′36.9131″N, 008°55′21.28095″E, +476.05m\n    test 552 Issue80: 0.804  FAILED, KNOWN, expected 0.01\n    test 553 Issue80: [4160476.492633, 653193.021888, 4774604.78885]\n    test 554 Issue80: [4160476.54503, 653193.068365, 4774604.754422]\n    test 555 Issue80: [4160476.016469, 653193.525079, 4774605.202353]\n    test 556 Issue80: 48°46′36.9315″N, 008°55′21.3089″E, +476.10m\n\n    test 557 ITRF96@1997xNAD83: TRFXform(epoch=1997.0, name='ITRF96@1997xNAD83')\n    test 558 ITRF96@1997xNAD83: name='ITRF96@1997xNAD83', tx=0.991, ty=-0.19072, tz=-0.5129, s1=1.0, rx=1.2503e-07, ry=4.6785e-08, rz=5.6529e-08, s=0.0, sx=0.02579, sy=0.00965, sz=0.01166\n    test 559 ITRF96@1997xNAD83: name='ITRF96@1997xNAD83@2007', tx=0.991, ty=-0.19072, tz=-0.5129, s1=1.0, rx=1.2761e-07, ry=1.0797e-08, rz=5.4997e-08, s=0.0, sx=0.026322, sy=0.002227, sz=0.011344\n    test 560 ITRF96@1997xNAD83: rx=-2.5792e-10, ry=3.5988e-09, rz=1.532e-10\n\n    testTrf(pygeodesy.ellipsoidalKarney, 25.05.27)\n    test 561 convertRefFrame: 51.47787826°N, 000.00147125°W, -0.00m  FAILED, KNOWN, expected 51.47787826°N, 000.00147125°W\n    test 562 copy(<class 'type'>): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 563 RefFrame.copy(): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 564 toLatLon: 50.7978°N, 004.3592°E, +148.96m\n    test 565 convertRefFrame: [3980574.395, -102.214, 4966829.941]\n    test 566 Nil: True\n    test 567 copy(<class 'type'>): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 568 RefFrame.copy(): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 569 Nil: True\n    test 570 reframe: True\n    test 571 Roundtrip: True\n    test 572 reframe: True\n    test 573 copy(<class 'type'>): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 574 RefFrame.copy(): (<class 'pygeodesy.trf.RefFrame'>, True)\n\n    test 575 Geodetic: 23°40′12.44582″S, 133°53′07.84795″E, +603.34m\n    test 576 Cartesian: [-4052051.7614, 4212836.1945, -2545106.0147]\n    test 577 Geodetic: 23°40′12.44582″S, 133°53′07.84795″E, +603.34m\n    test 578 Cartesian: [-4052051.7614, 4212836.1945, -2545106.0147]\n    test 579 Roundtrip: 23°40′12.41482″S, 133°53′07.86712″E, +603.26m\n    test 580 GNSStrans: [3370658.18892, 711877.42369, 5349787.1243]\n    test 581 Cartesian: [-734972.563, 4893188.492, 4011982.811]\n\n    test 582 EUREF EX1: [4027894.0444, 307045.6209, 4919474.8613]\n    test 583 transform0: ITRF2005@2015xETRF2020-ITRF91@2015xETRF2020@2007 max 9.3132e-10, epoched 8.0\n    test 584 transform1: ITRF2005@2015xETRF2014-ITRF91@2015xETRF2014@2007 max 0.048666, epoched 8.0\n    test 585 transform2: ITRF2005@2015xETRF2000-ITRF91@2015xETRF2000@2007 max 0.097331, epoched 8.0\n    test 586 transform3: ITRF2005@2000xITRF2000+ITRF2000@1988xITRF91@2000@2007 max 0.146, epoched 19.0\n    test 587 transform4: -ITRF2020@2015xITRF2005+ITRF2020@2015xITRF91@2007 max 0.19466, epoched 8.0\n    test 588 transform5: -ITRF2014@2010xITRF2005+ITRF2014@2010xITRF91@2007 max 0.24333, epoched 3.0\n    test 589 transform6: -ITRF2008@2005xITRF2005+ITRF2008@2000xITRF91@2005@2007 max 0.29199, epoched 7.0\n    test 590 transform7: ITRF2000@1988xITRF91+ITRF2005@2000xITRF2000@1988@2007 max 0.34066, epoched 31.0\n    test 591 transform8: ITRF2014@2010xITRF91-ITRF2014@2020xGDA2020@2010+ITRF2005@2020xGDA2020@2010@2007 max 0.98111, epoched 23.0\n    test 592 transform9: ITRF2008@2000xITRF91-ITRF2008@1994xGDA94@2000+ITRF2005@1994xGDA94@2000@2007 max 0.35972, epoched 19.0\n    test 593 transform10: ITRF2008@2000xITRF91-ITRF2008@1997xNAD83@2000+ITRF2005@1997xNAD83@2000@2007 max 0.40805, epoched 13.0\n    test 594 EUREF EX2: [4027894.0060, 307045.6000, 4919474.9100]\n    test 595 transform0: ITRF91@2015xETRF2020-ITRF2005@2015xETRF2020@2007 max 0.048666, epoched 8.0\n    test 596 transform1: ITRF91@2015xETRF2014-ITRF2005@2015xETRF2014@2007 max 1.8626e-09, epoched 8.0\n    test 597 transform2: ITRF91@2015xETRF2000-ITRF2005@2015xETRF2000@2007 max 0.048666, epoched 8.0\n    test 598 transform3: -ITRF2005@2000xITRF2000-ITRF2000@1988xITRF91@2000@2007 max 0.097331, epoched 19.0\n    test 599 EUREF EX4: [4027894.3559, 307045.2508, 4919474.6447]\n    test 600 transform0: -ITRF2000@2015xETRF2000@2012 max 4.5169e-08, epoched 3.0\n    test 601 transform1: -ITRF2000@1997xITRF97@2015-ITRF97@2015xETRF2000@2012 max 0.35826, epoched 21.0\n    test 602 transform2: -ITRF2000@1997xITRF96@2015-ITRF96@2015xETRF2000@2012 max 0.7048, epoched 21.0\n    test 603 transform3: -ITRF2000@1988xITRF93@2015-ITRF93@2015xETRF2000@2012 max 1.054, epoched 30.0\n    test 604 transform4: -ITRF2000@1988xITRF92@2015-ITRF92@2015xETRF2000@2012 max 1.4023, epoched 30.0\n    test 605 transform5: -ITRF2000@1988xITRF91@2015-ITRF91@2015xETRF2000@2012 max 1.7514, epoched 30.0\n    test 606 transform6: -ITRF2000@1988xITRF90@2015-ITRF90@2015xETRF2000@2012 max 2.1088, epoched 30.0\n    test 607 transform7: -ITRF2000@1988xITRF89@2015-ITRF89@2015xETRF2000@2012 max 2.4877, epoched 30.0\n    test 608 transform8: -ITRF2000@1988xITRF88@2015-ITRF88@2015xETRF2000@2012 max 2.8343, epoched 30.0\n    test 609 EUREF EX5: [4027893.6458, 307045.9470, 4919475.1937]  FAILED, KNOWN, expected [4027894.3662, 307045.2530, 4919474.6263]\n    test 610 transform0: ITRF2014@2015xETRF2000@2012 max 4.5169e-08, epoched 3.0\n    test 611 transform1: ITRF2014@2010xITRF2008@2015+ITRF2008@2015xETRF2000@2012 max 0.36023, epoched 8.0\n    test 612 transform2: ITRF2014@2010xITRF97@2015+ITRF97@2015xETRF2000@2012 max 0.72047, epoched 8.0\n    test 613 transform3: ITRF2014@2010xITRF93@2015+ITRF93@2015xETRF2000@2012 max 1.0807, epoched 8.0\n    test 614 transform4: ITRF2014@2010xITRF92@2015+ITRF92@2015xETRF2000@2012 max 1.4409, epoched 8.0\n    test 615 transform5: ITRF2014@2010xITRF91@2015+ITRF91@2015xETRF2000@2012 max 1.8012, epoched 8.0\n    test 616 transform6: ITRF2014@2010xITRF90@2015+ITRF90@2015xETRF2000@2012 max 2.1614, epoched 8.0\n    test 617 transform7: ITRF2014@2010xITRF89@2015+ITRF89@2015xETRF2000@2012 max 2.5216, epoched 8.0\n    test 618 transform8: ITRF2014@2010xITRF88@2015+ITRF88@2015xETRF2000@2012 max 2.8819, epoched 8.0\n\n    test 619 Case 1A: [4027893.9619, 307045.5481, 4919474.9553]\n    test 620 Case 1B: [4027894.0054, 307045.5938, 4919474.9083]\n    test 621 Case 2A: [4027893.9639, 307045.545, 4919474.9573]\n    test 622 Case 2B: [4027894.0033, 307045.5889, 4919474.9041]\n\n    test 623 TypeError: type(reframe) ('ITRF2000'): not a RefFrame\n    test 624 TRFError: epoch (1899): below 1900.0 limit\n    test 625 TypeError: type(reframe2) ('ITRF2000'): not a RefFrame\n    test 626 TRFError: no conversion: LatLon(00°00′00.0″N, 000°00′00.0″E).reframe MISSING\n    test 627 TypeError: type(reframe2) ('ITRF2000'): not a RefFrame\n    test 628 TypeError: type(reframe) ('ITRF2000'): not a RefFrame\n\n    test 629 ETRF89@1989: [4160476.944000, 653192.600000, 4774604.455000]\n    test 630 ITRF2014@2018.8: [4160476.415, 653193.057, 4774604.903]  FAILED, KNOWN, expected [4160476.485, 653193.021, 4774604.78]\n    test 631 TransformXform: -ITRF2014@2010xITRF89-ITRF89@1989xETRF89@2010@2018.8\n    test 632 Delta (m): [-0.06956, 0.035714, 0.122931]  FAILED, KNOWN, expected [0.01, 0.01, 0.01]\n    test 633 Error (m): 0.145692  FAILED, KNOWN, expected 0.01\n    test 634 Epoch range: 29.800  FAILED, KNOWN, expected 14.0\n    test 635 ETRF89@1989: [4160476.467836, 653193.103190, 4774604.868503]  FAILED, KNOWN, expected [4160476.944000, 653192.600000, 4774604.455000]\n    test 636 TransformXform: ITRF2014@2010xITRF89+ITRF89@1989xETRF89@2010@1989\n\n    test 637 inverse: -ITRF2014@2010xITRF89-ITRF89@1989xETRF89@2010@1989\n    test 638 inverse: ITRF2014@2010xITRF89+ITRF89@1989xETRF89@2010@1989\n    test 639 inverse: name='ITRF2014@2010xITRF89+ITRF89@1989xETRF89@2010@1989', tx=0.0283, ty=0.046, tz=-0.0615, s1=1.0, rx=0.0, ry=0.0, rz=-7.757e-10, s=0.00567, sx=0.0, sy=0.0, sz=-0.00016\n\n    test 640 ETRF2000@2000: [4160476.952000, 653192.582000, 4774604.441000]\n    test 641 ITRF2014@2018.8: [4160476.471, 653193.059, 4774604.804]  FAILED, KNOWN, expected [4160476.485, 653193.021, 4774604.78]\n    test 642 TransformXform: -ITRF2014@2015xETRF2000@2018.8\n    test 643 Delta (m): [-0.014174, 0.037835, 0.023963]  FAILED, KNOWN, expected [0.01, 0.01, 0.01]\n    test 644 Error (m): 0.046975  FAILED, KNOWN, expected 0.01\n    test 645 Epoch range: 18.800  FAILED, KNOWN, expected 14.0\n    test 646 ETRF2000@2000: [4160476.681125, 653192.914350, 4774604.647835]  FAILED, KNOWN, expected [4160476.952000, 653192.582000, 4774604.441000]\n    test 647 TransformXform: ITRF2014@2015xETRF2000@2000\n\n    test 648 inverse: -ITRF2014@2015xETRF2000@2000\n    test 649 inverse: ITRF2014@2015xETRF2000@2000\n    test 650 inverse: name='ITRF2014@2015xETRF2000@2000', tx=0.0537, ty=0.0512, tz=-0.0551, s1=1.0, rx=4.3197e-09, ry=2.6131e-08, rz=-4.2237e-08, s=0.00102, sx=0.000891, sy=0.00539, sz=-0.008712\n\n    test 651 ITRF2008@2005: [4160476.674000, 653192.806000, 4774604.648000]\n    test 652 ITRF2014@2018.8: [4160476.671, 653192.804, 4774604.645]  FAILED, KNOWN, expected [4160476.485, 653193.021, 4774604.78]\n    test 653 TransformXform: -ITRF2014@2010xITRF2008@2018.8\n    test 654 Delta (m): [0.186385, -0.217059, -0.134685]  FAILED, KNOWN, expected [0.01, 0.01, 0.01]\n    test 655 Error (m): 0.316218  FAILED, KNOWN, expected 0.01\n    test 656 Epoch range: 13.800  FAILED, KNOWN, expected 14.0\n    test 657 ITRF2008@2005: [4160476.672278, 653192.805730, 4774604.647403]  FAILED, KNOWN, expected [4160476.674000, 653192.806000, 4774604.648000]\n    test 658 TransformXform: ITRF2014@2010xITRF2008@2005\n\n    test 659 inverse: -ITRF2014@2010xITRF2008@2005\n    test 660 inverse: ITRF2014@2010xITRF2008@2005\n    test 661 inverse: name='ITRF2014@2010xITRF2008@2005', tx=0.0016, ty=0.0019, tz=0.0029, s1=1.0, rx=0.0, ry=0.0, rz=0.0, s=-0.00017, sx=0.0, sy=0.0, sz=0.0\n\n    test 662 toRefFrame1: ITRF2020@2015 2024.31 [0.0031474, 0.00210534, -0.00125667]\n    test 663 toRefFrame2: ITRF2014@2010 2024.32 [0.0031474, 0.00210634, -0.00125867]\n    test 664 transform0: -ITRF2020@2015xITRF2014@2010\n    test 665 transform0X: TRFXform(epoch=2010.0, name='-ITRF2020@2015xITRF2014@2010')\n    test 666 toRefFrame3: ITRF2020@2015 2010 [0.0031474, 0.00067434, 0.00160533]\n    test 667 transform2x: (4160476.488147, 653193.021674, 4774604.781605)\n    test 668 transform2v: (0.000, 0.000, 0.000)  FAILED, KNOWN, expected (0.004, 0.003, 0.004)\n\n    test 669 transform0: name='ITRF2020@2015xETRF2020@2010', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=8.75573508e-09, ry=5.28398431e-08, rz=-7.66635874e-08, s=0.0, sx=0.001806, sy=0.010899, sz=-0.015813\n    test 670 transform2c: (4027893.9585, 307045.5550, 4919474.9620)  FAILED, KNOWN, expected (4027893.9585, 307045.5550, 4919474.9619)\n    test 671     Error2c: (-0.000016463, 0.0000336, 0.000055143) max 5.514e-05, epoched 5.0\n    test 672 transform2v: (-0.00011, 0.00010, 0.00023)  FAILED, KNOWN, expected (0.00011, 0.00011, 0.00024)\n    test 673     Error2v: (-0.000220786, -0.000005544, -0.000006899) max 0.0002208\n    test 674 transform0v: (0.00009, 0.00052, -0.00075)  FAILED, KNOWN, expected (0.00011, 0.00011, 0.00024)\n    test 675     Error0v: (-0.000024, 0.000409, -0.000993) max 0.000993\n\n    test 676 transform0: name='-ITRF2014@2015xETRF2020@2010', tx=-0.0014, ty=-0.0004, tz=0.0004, s1=1.0, rx=-8.75573508e-09, ry=-5.28398431e-08, rz=7.66635874e-08, s=-0.00042, sx=-0.001806, sy=-0.010899, sz=0.015813\n    test 677 transform2c: (4027893.6719, 307045.9063, 4919475.1704)  FAILED, KNOWN, expected (4027893.6719, 307045.9064, 4919475.1704)\n    test 678     Error2c: (0.000024786, -0.000062539, -0.000021304) max 6.254e-05, epoched 5.0\n    test 679 transform2v: (-0.01339, 0.01677, 0.01045)  FAILED, KNOWN, expected (-0.01361, 0.01676, 0.01044)\n    test 680     Error2v: (0.000220784, 0.000005543, 0.000006898) max 0.0002208\n    test 681 transform0v: (-0.00009, -0.00052, 0.00075)  FAILED, KNOWN, expected (-0.01361, 0.01676, 0.01044)\n    test 682     Error0v: (0.013524, -0.017279, -0.009687) max 0.01728\n\n    test 683 transform0: name='ITRF2014@2015xETRF2014@2010', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=8.65392421e-09, ry=5.40615736e-08, rz=-7.83943722e-08, s=0.0, sx=0.001785, sy=0.011151, sz=-0.01617\n    test 684 transform2c: (4027893.9619, 307045.5481, 4919474.9553)  FAILED, KNOWN, expected (4027893.9620, 307045.5480, 4919474.9553)\n    test 685     Error2c: (-0.00007476, 0.000063039, 0.000002882) max 7.476e-05, epoched 5.0\n    test 686 transform2v: (0.00020, -0.00030, 0.00020)\n    test 687     Error2v: (0.000000724, -0.000003666, -0.000002721) max 3.666e-06\n    test 688 transform0v: (0.00009, 0.00053, -0.00077)  FAILED, KNOWN, expected (0.00020, -0.00030, 0.00020)\n    test 689     Error0v: (-0.000115, 0.000831, -0.00097) max 0.00097\n\n    test 690 transform0: name='-ITRF2000@2015xETRF2014@2010', tx=0.0007, ty=0.0012, tz=-0.0261, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 691 transform2c: (4027893.6812, 307045.9082, 4919475.1547)\n    test 692     Error2c: (0.000013934, -0.000012081, 0.000026423) max 2.642e-05, epoched 5.0\n    test 693 transform2v: (-0.01351, 0.01686, 0.00854)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 694     Error2v: (-0.000440726, -0.000036335, -0.00053728) max 0.0005373\n    test 695 transform0v: (-0.00008, -0.00053, 0.00077)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 696     Error0v: (0.012985, -0.017431, -0.00831) max 0.01743\n\n    test 697 transform0: name='ITRF2000@2015xETRF2000@2010', tx=0.054, ty=0.051, tz=-0.048, s1=1.0, rx=8.24668072e-09, ry=4.98873278e-08, rz=-8.06342114e-08, s=0.0, sx=0.001701, sy=0.01029, sz=-0.016632\n    test 698 transform2c: (4027894.0054, 307045.5938, 4919474.9083)  FAILED, KNOWN, expected (4027894.0053, 307045.5939, 4919474.9083)\n    test 699     Error2c: (0.000077874, -0.000055372, -0.000008743) max 7.787e-05, epoched 5.0\n    test 700 transform2v: (-0.00020, -0.00050, -0.00037)  FAILED, KNOWN, expected (-0.00020, -0.00050, -0.00036)\n    test 701     Error2v: (-0.000004389, 0.000002124, -0.000008036) max 8.036e-06\n    test 702 transform0v: (0.00008, 0.00049, -0.00079)  FAILED, KNOWN, expected (-0.00020, -0.00050, -0.00036)\n    test 703     Error0v: (0.000281, 0.00099, -0.000432) max 0.00099\n\n    test 704 transform0/: name='-ITRF2000@2015xETRF2014@2010', tx=0.0007, ty=0.0012, tz=-0.0261, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 705 transform2c: (4027893.6812, 307045.9082, 4919475.1547)\n    test 706     Error2c: (0.000013934, -0.000012081, 0.000026423) max 2.642e-05, epoched 5.0\n    test 707 transform2v: (-0.01351, 0.01686, 0.00854)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 708     Error2v: (-0.000440726, -0.000036335, -0.00053728) max 0.0005373\n\n    test 709 transform1/: name='-ITRF2000@1997xITRF97@2015-ITRF97@2015xETRF2014@2010', tx=0.00673, ty=-0.00033, tz=-0.05913, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=8.09154034e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01669\n    test 710 transform2c: (4027893.6865, 307045.9168, 4919475.1217)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 711     Error2c: (0.005269863, 0.008612365, -0.033003577) max 0.033, epoched 23.0\n    test 712 transform2v: (-0.01357, 0.01710, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 713     Error2v: (-0.00050027, 0.000204776, -0.00179728) max 0.001797\n\n    test 714 transform2/: name='-ITRF2000@1997xITRF96@2015-ITRF96@2015xETRF2014@2010', tx=0.00673, ty=-0.00033, tz=-0.05913, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 715 transform2c: (4027893.6872, 307045.9067, 4919475.1217)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 716     Error2c: (0.006043935, -0.001542081, -0.033003577) max 0.033, epoched 23.0\n    test 717 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 718     Error2v: (-0.000440726, -0.000576335, -0.00179728) max 0.001797\n\n    test 719 transform3/: name='-ITRF2000@1988xITRF93@2015-ITRF93@2015xETRF2014@2010', tx=0.0007, ty=0.0012, tz=-0.0261, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 720 transform2c: (4027893.6812, 307045.9082, 4919475.1547)\n    test 721     Error2c: (0.000013934, -0.000012081, 0.000026423) max 2.642e-05, epoched 32.0\n    test 722 transform2v: (-0.01351, 0.01686, 0.00854)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 723     Error2v: (-0.000440726, -0.000036335, -0.00053728) max 0.0005373\n\n    test 724 transform4/: name='-ITRF2000@1988xITRF92@2015-ITRF92@2015xETRF2014@2010', tx=0.01393, ty=0.00147, tz=-0.06633, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 725 transform2c: (4027893.6944, 307045.9085, 4919475.1145)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 726     Error2c: (0.013243935, 0.000257919, -0.040203577) max 0.0402, epoched 32.0\n    test 727 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 728     Error2v: (-0.000440726, -0.000576335, -0.00179728) max 0.001797\n\n    test 729 transform5/: name='-ITRF2000@1988xITRF91@2015-ITRF91@2015xETRF2014@2010', tx=0.0007, ty=0.0012, tz=-0.0261, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 730 transform2c: (4027893.6812, 307045.9082, 4919475.1547)\n    test 731     Error2c: (0.000013934, -0.000012081, 0.000026423) max 2.642e-05, epoched 32.0\n    test 732 transform2v: (-0.01351, 0.01686, 0.00854)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 733     Error2v: (-0.000440726, -0.000036335, -0.00053728) max 0.0005373\n\n    test 734 transform6/: name='-ITRF2000@1988xITRF90@2015-ITRF90@2015xETRF2014@2010', tx=0.02293, ty=0.01047, tz=-0.08613, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 735 transform2c: (4027893.7034, 307045.9175, 4919475.0947)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 736     Error2c: (0.022243935, 0.009257919, -0.060003577) max 0.06, epoched 32.0\n    test 737 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 738     Error2v: (-0.000440726, -0.000576335, -0.00179728) max 0.001797\n\n    test 739 transform7/: name='-ITRF2000@1988xITRF89@2015-ITRF89@2015xETRF2014@2010', tx=0.02743, ty=0.03207, tz=-0.12033, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 740 transform2c: (4027893.7079, 307045.9391, 4919475.0605)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 741     Error2c: (0.026743934, 0.030857919, -0.094203576) max 0.0942, epoched 32.0\n    test 742 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 743     Error2v: (-0.000440726, -0.000576335, -0.00179728) max 0.001797\n\n    test 744 transform8/: name='-ITRF2000@1988xITRF88@2015-ITRF88@2015xETRF2014@2010', tx=0.02293, ty=-0.00033, tz=-0.14193, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 745 transform2c: (4027893.7034, 307045.9067, 4919475.0389)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 746     Error2c: (0.022243935, -0.001542081, -0.115803577) max 0.1158, epoched 32.0\n    test 747 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 748     Error2v: (-0.000440725, -0.000576335, -0.00179728) max 0.001797\n\n    test 749 transform0: name='ITRF2020@2015xETRF2020@2020', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=1.29251327e-08, ry=7.80016732e-08, rz=-1.13170058e-07, s=0.0, sx=0.002666, sy=0.016089, sz=-0.023343\n    test 750 transform2c: (4027893.9574, 307045.5561, 4919474.9643)\n    test 751     Error2c: (-0.000024276, -0.000021815, -0.000013824) max 2.428e-05, epoched 5.0\n    test 752 transform2v: (0.01350, -0.01676, -0.01001)\n\n    test 753 transform0: name='-ITRF2014@2015xETRF2020@2020', tx=-0.0014, ty=-0.0014, tz=0.0024, s1=1.0, rx=-1.29251327e-08, ry=-7.80016732e-08, rz=1.13170058e-07, s=-0.00042, sx=-0.002666, sy=-0.016089, sz=0.023343\n    test 754 transform2c: (4027893.5358, 307046.0740, 4919475.2748)\n    test 755     Error2c: (0.000032643, -0.000007101, 0.000047684) max 4.768e-05, epoched 5.0\n    test 756 transform2v: (-0.01350, 0.01666, 0.01021)\n\n    test 757 transform0: name='ITRF2014@2015xETRF2014@2020', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=1.27748405e-08, ry=7.980518e-08, rz=-1.15725026e-07, s=0.0, sx=0.002635, sy=0.016461, sz=-0.02387\n    test 758 transform2c: (4027893.9639, 307045.5450, 4919474.9573)\n    test 759     Error2c: (0.000032525, 0.000026405, -0.000024305) max 3.253e-05, epoched 5.0\n    test 760 transform2v: (0.01381, -0.01706, -0.01024)\n\n    test 761 transform0: name='-ITRF2000@2015xETRF2014@2020', tx=0.0017, ty=0.0022, tz=-0.0451, s1=1.0, rx=-1.27748405e-08, ry=-7.980518e-08, rz=1.15725026e-07, s=0.00322, sx=-0.002635, sy=-0.016461, sz=0.02387\n    test 762 transform2c: (4027893.5504, 307046.0772, 4919475.2456)  FAILED, KNOWN, expected (4027893.5505, 307046.0772, 4919475.2456)\n    test 763     Error2c: (-0.00006262, -0.000037673, -0.000034945) max 6.262e-05, epoched 5.0\n    test 764 transform2v: (-0.01371, 0.01716, 0.00834)\n\n    test 765 transform0: name='ITRF2000@2015xETRF2000@2020', tx=0.054, ty=0.051, tz=-0.048, s1=1.0, rx=1.21736715e-08, ry=7.36431982e-08, rz=-1.19031455e-07, s=0.0, sx=0.002511, sy=0.01519, sz=-0.024552\n    test 766 transform2c: (4027894.0033, 307045.5889, 4919474.9047)\n    test 767     Error2c: (0.000034031, -0.000034106, 0.000010915) max 3.411e-05, epoched 5.0\n    test 768 transform2v: (0.01287, -0.01740, -0.00945)\n\n    test 769 transform0*: name='-ITRF2014@2010xITRF89-ITRF89@1989xETRF89@2010@2018.8', tx=-0.03128, ty=-0.0311, tz=0.15984, s1=0.999999991, rx=-1.58921925e-08, ry=-8.23504519e-08, rz=1.00463091e-07, s=-0.009246, sx=-0.003278, sy=-0.016986, sz=0.020722\n    test 770 transform2c: (4160476.4154, 653193.0567, 4774604.9029)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 771     Error2c: (-0.069560351, 0.035713888, 0.122930501) max 0.1229, epoched 29.8\n    test 772 transform2v: (-0.01148, 0.01996, 0.01845)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 773     Error2v: (-0.015479395, 0.016963959, 0.014448874) max 0.01696\n\n    test 774 transform0*: name='-ITRF2014@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 775 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 776     Error2c: (-0.014174475, 0.037834952, 0.023962617) max 0.03783, epoched 3.8\n    test 777 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 778     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 779 transform1*: name='-ITRF2014@2010xITRF2008@2015-ITRF2008@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 780 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 781     Error2c: (-0.014174475, 0.037834952, 0.023962617) max 0.03783, epoched 8.8\n    test 782 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 783     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 784 transform2*: name='-ITRF2014@2010xITRF97@2015-ITRF97@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 785 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 786     Error2c: (-0.014174475, 0.037834952, 0.023962617) max 0.03783, epoched 8.8\n    test 787 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 788     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 789 transform3*: name='-ITRF2014@2010xITRF93@2015-ITRF93@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 790 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 791     Error2c: (-0.014174475, 0.037834952, 0.023962617) max 0.03783, epoched 8.8\n    test 792 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 793     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 794 transform4*: name='-ITRF2014@2010xITRF92@2015-ITRF92@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 795 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 796     Error2c: (-0.014174475, 0.037834952, 0.023962617) max 0.03783, epoched 8.8\n    test 797 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 798     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 799 transform5*: name='-ITRF2014@2010xITRF91@2015-ITRF91@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 800 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 801     Error2c: (-0.014174475, 0.037834952, 0.023962617) max 0.03783, epoched 8.8\n    test 802 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 803     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 804 transform6*: name='-ITRF2014@2010xITRF90@2015-ITRF90@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 805 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 806     Error2c: (-0.014174475, 0.037834952, 0.023962617) max 0.03783, epoched 8.8\n    test 807 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 808     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 809 transform7*: name='-ITRF2014@2010xITRF89@2015-ITRF89@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 810 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 811     Error2c: (-0.014174475, 0.037834952, 0.023962617) max 0.03783, epoched 8.8\n    test 812 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 813     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 814 transform8*: name='-ITRF2014@2010xITRF88@2015-ITRF88@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 815 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 816     Error2c: (-0.014174475, 0.037834952, 0.023962617) max 0.03783, epoched 8.8\n    test 817 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 818     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 819 toTransform: name='-ITRF2014@2010xITRF88@2015-ITRF88@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=1.0, rx=-1.1702e-08, ry=-7.0792e-08, rz=1.1442e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.023602\n    test 820 toTransform: name='-ITRF2014@2010xITRF88@2015-ITRF88@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=1.0, rx=-1.1702e-08, ry=-7.0792e-08, rz=1.1442e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.023602\n\n    test 821 Issue80: 48.77691577°N, 008.92257142°E, +476.05m\n    test 822 Issue80: 48.77692147°N, 008.92257868°E, +476.09m\n    test 823 Issue80: 48°46′36.915133″N, 008°55′21.285094″E, +476.10m  FAILED, KNOWN, expected 48°46′36.915134″N, 008°55′21.285094″E, +476.10\n    test 824 Issue80: 0.804  FAILED, KNOWN, expected 0.01\n    test 825 Issue80: [4160476.944064, 653192.600457, 4774604.455385]\n    test 826 Issue80: [4160476.415504, 653193.057171, 4774604.903316]\n    test 827 Issue80: [4160476.467901, 653193.103647, 4774604.868888]\n    test 828 Issue80: 48°46′36.915133″N, 008°55′21.285094″E, +476.10m\n\n    test 829 Issue80: 48.77692032°N, 008.92257804°E, +476.05m\n    test 830 Issue80: 48.77691971°N, 008.92257856°E, +476.06m\n    test 831 Issue80: 48°46′36.9315″N, 008°55′21.3089″E, +476.10m  FAILED, KNOWN, expected 48°46′36.9131″N, 008°55′21.28095″E, +476.05m\n    test 832 Issue80: 0.804  FAILED, KNOWN, expected 0.01\n    test 833 Issue80: [4160476.492633, 653193.021888, 4774604.78885]\n    test 834 Issue80: [4160476.54503, 653193.068365, 4774604.754422]\n    test 835 Issue80: [4160476.016469, 653193.525079, 4774605.202353]\n    test 836 Issue80: 48°46′36.9315″N, 008°55′21.3089″E, +476.10m\n\n    test 837 ITRF96@1997xNAD83: TRFXform(epoch=1997.0, name='ITRF96@1997xNAD83')\n    test 838 ITRF96@1997xNAD83: name='ITRF96@1997xNAD83', tx=0.991, ty=-0.19072, tz=-0.5129, s1=1.0, rx=1.2503e-07, ry=4.6785e-08, rz=5.6529e-08, s=0.0, sx=0.02579, sy=0.00965, sz=0.01166\n    test 839 ITRF96@1997xNAD83: name='ITRF96@1997xNAD83@2007', tx=0.991, ty=-0.19072, tz=-0.5129, s1=1.0, rx=1.2761e-07, ry=1.0797e-08, rz=5.4997e-08, s=0.0, sx=0.026322, sy=0.002227, sz=0.011344\n    test 840 ITRF96@1997xNAD83: rx=-2.5792e-10, ry=3.5988e-09, rz=1.532e-10\n\n    testTrf(pygeodesy.ellipsoidalExact, 25.08.28)\n    test 841 convertRefFrame: 51.47787826°N, 000.00147125°W, -0.00m  FAILED, KNOWN, expected 51.47787826°N, 000.00147125°W\n    test 842 copy(<class 'type'>): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 843 RefFrame.copy(): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 844 toLatLon: 50.7978°N, 004.3592°E, +148.96m\n    test 845 convertRefFrame: [3980574.395, -102.214, 4966829.941]\n    test 846 Nil: True\n    test 847 copy(<class 'type'>): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 848 RefFrame.copy(): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 849 Nil: True\n    test 850 reframe: True\n    test 851 Roundtrip: True\n    test 852 reframe: True\n    test 853 copy(<class 'type'>): (<class 'pygeodesy.trf.RefFrame'>, True)\n    test 854 RefFrame.copy(): (<class 'pygeodesy.trf.RefFrame'>, True)\n\n    test 855 Geodetic: 23°40′12.44582″S, 133°53′07.84795″E, +603.34m\n    test 856 Cartesian: [-4052051.7614, 4212836.1945, -2545106.0147]\n    test 857 Geodetic: 23°40′12.44582″S, 133°53′07.84795″E, +603.34m\n    test 858 Cartesian: [-4052051.7614, 4212836.1945, -2545106.0147]\n    test 859 Roundtrip: 23°40′12.41482″S, 133°53′07.86712″E, +603.26m\n    test 860 GNSStrans: [3370658.18892, 711877.42369, 5349787.1243]\n    test 861 Cartesian: [-734972.563, 4893188.492, 4011982.811]\n\n    test 862 EUREF EX1: [4027894.0444, 307045.6209, 4919474.8613]\n    test 863 transform0: ITRF2005@2015xETRF2020-ITRF91@2015xETRF2020@2007 max 9.3132e-10, epoched 8.0\n    test 864 transform1: ITRF2005@2015xETRF2014-ITRF91@2015xETRF2014@2007 max 0.048666, epoched 8.0\n    test 865 transform2: ITRF2005@2015xETRF2000-ITRF91@2015xETRF2000@2007 max 0.097331, epoched 8.0\n    test 866 transform3: ITRF2005@2000xITRF2000+ITRF2000@1988xITRF91@2000@2007 max 0.146, epoched 19.0\n    test 867 transform4: -ITRF2020@2015xITRF2005+ITRF2020@2015xITRF91@2007 max 0.19466, epoched 8.0\n    test 868 transform5: -ITRF2014@2010xITRF2005+ITRF2014@2010xITRF91@2007 max 0.24333, epoched 3.0\n    test 869 transform6: -ITRF2008@2005xITRF2005+ITRF2008@2000xITRF91@2005@2007 max 0.29199, epoched 7.0\n    test 870 transform7: ITRF2000@1988xITRF91+ITRF2005@2000xITRF2000@1988@2007 max 0.34066, epoched 31.0\n    test 871 transform8: ITRF2014@2010xITRF91-ITRF2014@2020xGDA2020@2010+ITRF2005@2020xGDA2020@2010@2007 max 0.98111, epoched 23.0\n    test 872 transform9: ITRF2008@2000xITRF91-ITRF2008@1994xGDA94@2000+ITRF2005@1994xGDA94@2000@2007 max 0.35972, epoched 19.0\n    test 873 transform10: ITRF2008@2000xITRF91-ITRF2008@1997xNAD83@2000+ITRF2005@1997xNAD83@2000@2007 max 0.40805, epoched 13.0\n    test 874 EUREF EX2: [4027894.0060, 307045.6000, 4919474.9100]\n    test 875 transform0: ITRF91@2015xETRF2020-ITRF2005@2015xETRF2020@2007 max 0.048666, epoched 8.0\n    test 876 transform1: ITRF91@2015xETRF2014-ITRF2005@2015xETRF2014@2007 max 1.8626e-09, epoched 8.0\n    test 877 transform2: ITRF91@2015xETRF2000-ITRF2005@2015xETRF2000@2007 max 0.048666, epoched 8.0\n    test 878 transform3: -ITRF2005@2000xITRF2000-ITRF2000@1988xITRF91@2000@2007 max 0.097331, epoched 19.0\n    test 879 EUREF EX4: [4027894.3559, 307045.2508, 4919474.6447]\n    test 880 transform0: -ITRF2000@2015xETRF2000@2012 max 4.5169e-08, epoched 3.0\n    test 881 transform1: -ITRF2000@1997xITRF97@2015-ITRF97@2015xETRF2000@2012 max 0.35826, epoched 21.0\n    test 882 transform2: -ITRF2000@1997xITRF96@2015-ITRF96@2015xETRF2000@2012 max 0.7048, epoched 21.0\n    test 883 transform3: -ITRF2000@1988xITRF93@2015-ITRF93@2015xETRF2000@2012 max 1.054, epoched 30.0\n    test 884 transform4: -ITRF2000@1988xITRF92@2015-ITRF92@2015xETRF2000@2012 max 1.4023, epoched 30.0\n    test 885 transform5: -ITRF2000@1988xITRF91@2015-ITRF91@2015xETRF2000@2012 max 1.7514, epoched 30.0\n    test 886 transform6: -ITRF2000@1988xITRF90@2015-ITRF90@2015xETRF2000@2012 max 2.1088, epoched 30.0\n    test 887 transform7: -ITRF2000@1988xITRF89@2015-ITRF89@2015xETRF2000@2012 max 2.4877, epoched 30.0\n    test 888 transform8: -ITRF2000@1988xITRF88@2015-ITRF88@2015xETRF2000@2012 max 2.8343, epoched 30.0\n    test 889 EUREF EX5: [4027893.6458, 307045.9470, 4919475.1937]  FAILED, KNOWN, expected [4027894.3662, 307045.2530, 4919474.6263]\n    test 890 transform0: ITRF2014@2015xETRF2000@2012 max 4.5169e-08, epoched 3.0\n    test 891 transform1: ITRF2014@2010xITRF2008@2015+ITRF2008@2015xETRF2000@2012 max 0.36023, epoched 8.0\n    test 892 transform2: ITRF2014@2010xITRF97@2015+ITRF97@2015xETRF2000@2012 max 0.72047, epoched 8.0\n    test 893 transform3: ITRF2014@2010xITRF93@2015+ITRF93@2015xETRF2000@2012 max 1.0807, epoched 8.0\n    test 894 transform4: ITRF2014@2010xITRF92@2015+ITRF92@2015xETRF2000@2012 max 1.4409, epoched 8.0\n    test 895 transform5: ITRF2014@2010xITRF91@2015+ITRF91@2015xETRF2000@2012 max 1.8012, epoched 8.0\n    test 896 transform6: ITRF2014@2010xITRF90@2015+ITRF90@2015xETRF2000@2012 max 2.1614, epoched 8.0\n    test 897 transform7: ITRF2014@2010xITRF89@2015+ITRF89@2015xETRF2000@2012 max 2.5216, epoched 8.0\n    test 898 transform8: ITRF2014@2010xITRF88@2015+ITRF88@2015xETRF2000@2012 max 2.8819, epoched 8.0\n\n    test 899 Case 1A: [4027893.9619, 307045.5481, 4919474.9553]\n    test 900 Case 1B: [4027894.0054, 307045.5938, 4919474.9083]\n    test 901 Case 2A: [4027893.9639, 307045.545, 4919474.9573]\n    test 902 Case 2B: [4027894.0033, 307045.5889, 4919474.9041]\n\n    test 903 TypeError: type(reframe) ('ITRF2000'): not a RefFrame\n    test 904 TRFError: epoch (1899): below 1900.0 limit\n    test 905 TypeError: type(reframe2) ('ITRF2000'): not a RefFrame\n    test 906 TRFError: no conversion: LatLon(00°00′00.0″N, 000°00′00.0″E).reframe MISSING\n    test 907 TypeError: type(reframe2) ('ITRF2000'): not a RefFrame\n    test 908 TypeError: type(reframe) ('ITRF2000'): not a RefFrame\n\n    test 909 ETRF89@1989: [4160476.944000, 653192.600000, 4774604.455000]\n    test 910 ITRF2014@2018.8: [4160476.415, 653193.057, 4774604.903]  FAILED, KNOWN, expected [4160476.485, 653193.021, 4774604.78]\n    test 911 TransformXform: -ITRF2014@2010xITRF89-ITRF89@1989xETRF89@2010@2018.8\n    test 912 Delta (m): [-0.06956, 0.035714, 0.122931]  FAILED, KNOWN, expected [0.01, 0.01, 0.01]\n    test 913 Error (m): 0.145692  FAILED, KNOWN, expected 0.01\n    test 914 Epoch range: 29.800  FAILED, KNOWN, expected 14.0\n    test 915 ETRF89@1989: [4160476.467836, 653193.103190, 4774604.868503]  FAILED, KNOWN, expected [4160476.944000, 653192.600000, 4774604.455000]\n    test 916 TransformXform: ITRF2014@2010xITRF89+ITRF89@1989xETRF89@2010@1989\n\n    test 917 inverse: -ITRF2014@2010xITRF89-ITRF89@1989xETRF89@2010@1989\n    test 918 inverse: ITRF2014@2010xITRF89+ITRF89@1989xETRF89@2010@1989\n    test 919 inverse: name='ITRF2014@2010xITRF89+ITRF89@1989xETRF89@2010@1989', tx=0.0283, ty=0.046, tz=-0.0615, s1=1.0, rx=0.0, ry=0.0, rz=-7.757e-10, s=0.00567, sx=0.0, sy=0.0, sz=-0.00016\n\n    test 920 ETRF2000@2000: [4160476.952000, 653192.582000, 4774604.441000]\n    test 921 ITRF2014@2018.8: [4160476.471, 653193.059, 4774604.804]  FAILED, KNOWN, expected [4160476.485, 653193.021, 4774604.78]\n    test 922 TransformXform: -ITRF2014@2015xETRF2000@2018.8\n    test 923 Delta (m): [-0.014174, 0.037835, 0.023963]  FAILED, KNOWN, expected [0.01, 0.01, 0.01]\n    test 924 Error (m): 0.046975  FAILED, KNOWN, expected 0.01\n    test 925 Epoch range: 18.800  FAILED, KNOWN, expected 14.0\n    test 926 ETRF2000@2000: [4160476.681125, 653192.914350, 4774604.647835]  FAILED, KNOWN, expected [4160476.952000, 653192.582000, 4774604.441000]\n    test 927 TransformXform: ITRF2014@2015xETRF2000@2000\n\n    test 928 inverse: -ITRF2014@2015xETRF2000@2000\n    test 929 inverse: ITRF2014@2015xETRF2000@2000\n    test 930 inverse: name='ITRF2014@2015xETRF2000@2000', tx=0.0537, ty=0.0512, tz=-0.0551, s1=1.0, rx=4.3197e-09, ry=2.6131e-08, rz=-4.2237e-08, s=0.00102, sx=0.000891, sy=0.00539, sz=-0.008712\n\n    test 931 ITRF2008@2005: [4160476.674000, 653192.806000, 4774604.648000]\n    test 932 ITRF2014@2018.8: [4160476.671, 653192.804, 4774604.645]  FAILED, KNOWN, expected [4160476.485, 653193.021, 4774604.78]\n    test 933 TransformXform: -ITRF2014@2010xITRF2008@2018.8\n    test 934 Delta (m): [0.186385, -0.217059, -0.134685]  FAILED, KNOWN, expected [0.01, 0.01, 0.01]\n    test 935 Error (m): 0.316218  FAILED, KNOWN, expected 0.01\n    test 936 Epoch range: 13.800  FAILED, KNOWN, expected 14.0\n    test 937 ITRF2008@2005: [4160476.672278, 653192.805730, 4774604.647403]  FAILED, KNOWN, expected [4160476.674000, 653192.806000, 4774604.648000]\n    test 938 TransformXform: ITRF2014@2010xITRF2008@2005\n\n    test 939 inverse: -ITRF2014@2010xITRF2008@2005\n    test 940 inverse: ITRF2014@2010xITRF2008@2005\n    test 941 inverse: name='ITRF2014@2010xITRF2008@2005', tx=0.0016, ty=0.0019, tz=0.0029, s1=1.0, rx=0.0, ry=0.0, rz=0.0, s=-0.00017, sx=0.0, sy=0.0, sz=0.0\n\n    test 942 toRefFrame1: ITRF2020@2015 2024.31 [0.0031474, 0.00210534, -0.00125667]\n    test 943 toRefFrame2: ITRF2014@2010 2024.32 [0.0031474, 0.00210634, -0.00125867]\n    test 944 transform0: -ITRF2020@2015xITRF2014@2010\n    test 945 transform0X: TRFXform(epoch=2010.0, name='-ITRF2020@2015xITRF2014@2010')\n    test 946 toRefFrame3: ITRF2020@2015 2010 [0.0031474, 0.00067434, 0.00160533]\n    test 947 transform2x: (4160476.488147, 653193.021674, 4774604.781605)\n    test 948 transform2v: (0.000, 0.000, 0.000)  FAILED, KNOWN, expected (0.004, 0.003, 0.004)\n\n    test 949 transform0: name='ITRF2020@2015xETRF2020@2010', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=8.75573508e-09, ry=5.28398431e-08, rz=-7.66635874e-08, s=0.0, sx=0.001806, sy=0.010899, sz=-0.015813\n    test 950 transform2c: (4027893.9585, 307045.5550, 4919474.9620)  FAILED, KNOWN, expected (4027893.9585, 307045.5550, 4919474.9619)\n    test 951     Error2c: (-0.000016463, 0.0000336, 0.000055143) max 5.514e-05, epoched 5.0\n    test 952 transform2v: (-0.00011, 0.00010, 0.00023)  FAILED, KNOWN, expected (0.00011, 0.00011, 0.00024)\n    test 953     Error2v: (-0.000220786, -0.000005544, -0.000006899) max 0.0002208\n    test 954 transform0v: (0.00009, 0.00052, -0.00075)  FAILED, KNOWN, expected (0.00011, 0.00011, 0.00024)\n    test 955     Error0v: (-0.000024, 0.000409, -0.000993) max 0.000993\n\n    test 956 transform0: name='-ITRF2014@2015xETRF2020@2010', tx=-0.0014, ty=-0.0004, tz=0.0004, s1=1.0, rx=-8.75573508e-09, ry=-5.28398431e-08, rz=7.66635874e-08, s=-0.00042, sx=-0.001806, sy=-0.010899, sz=0.015813\n    test 957 transform2c: (4027893.6719, 307045.9063, 4919475.1704)  FAILED, KNOWN, expected (4027893.6719, 307045.9064, 4919475.1704)\n    test 958     Error2c: (0.000024786, -0.000062539, -0.000021304) max 6.254e-05, epoched 5.0\n    test 959 transform2v: (-0.01339, 0.01677, 0.01045)  FAILED, KNOWN, expected (-0.01361, 0.01676, 0.01044)\n    test 960     Error2v: (0.000220784, 0.000005543, 0.000006898) max 0.0002208\n    test 961 transform0v: (-0.00009, -0.00052, 0.00075)  FAILED, KNOWN, expected (-0.01361, 0.01676, 0.01044)\n    test 962     Error0v: (0.013524, -0.017279, -0.009687) max 0.01728\n\n    test 963 transform0: name='ITRF2014@2015xETRF2014@2010', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=8.65392421e-09, ry=5.40615736e-08, rz=-7.83943722e-08, s=0.0, sx=0.001785, sy=0.011151, sz=-0.01617\n    test 964 transform2c: (4027893.9619, 307045.5481, 4919474.9553)  FAILED, KNOWN, expected (4027893.9620, 307045.5480, 4919474.9553)\n    test 965     Error2c: (-0.00007476, 0.000063039, 0.000002882) max 7.476e-05, epoched 5.0\n    test 966 transform2v: (0.00020, -0.00030, 0.00020)\n    test 967     Error2v: (0.000000724, -0.000003666, -0.000002721) max 3.666e-06\n    test 968 transform0v: (0.00009, 0.00053, -0.00077)  FAILED, KNOWN, expected (0.00020, -0.00030, 0.00020)\n    test 969     Error0v: (-0.000115, 0.000831, -0.00097) max 0.00097\n\n    test 970 transform0: name='-ITRF2000@2015xETRF2014@2010', tx=0.0007, ty=0.0012, tz=-0.0261, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 971 transform2c: (4027893.6812, 307045.9082, 4919475.1547)\n    test 972     Error2c: (0.000013934, -0.000012081, 0.000026423) max 2.642e-05, epoched 5.0\n    test 973 transform2v: (-0.01351, 0.01686, 0.00854)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 974     Error2v: (-0.000440726, -0.000036335, -0.00053728) max 0.0005373\n    test 975 transform0v: (-0.00008, -0.00053, 0.00077)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 976     Error0v: (0.012985, -0.017431, -0.00831) max 0.01743\n\n    test 977 transform0: name='ITRF2000@2015xETRF2000@2010', tx=0.054, ty=0.051, tz=-0.048, s1=1.0, rx=8.24668072e-09, ry=4.98873278e-08, rz=-8.06342114e-08, s=0.0, sx=0.001701, sy=0.01029, sz=-0.016632\n    test 978 transform2c: (4027894.0054, 307045.5938, 4919474.9083)  FAILED, KNOWN, expected (4027894.0053, 307045.5939, 4919474.9083)\n    test 979     Error2c: (0.000077874, -0.000055372, -0.000008743) max 7.787e-05, epoched 5.0\n    test 980 transform2v: (-0.00020, -0.00050, -0.00037)  FAILED, KNOWN, expected (-0.00020, -0.00050, -0.00036)\n    test 981     Error2v: (-0.000004389, 0.000002124, -0.000008036) max 8.036e-06\n    test 982 transform0v: (0.00008, 0.00049, -0.00079)  FAILED, KNOWN, expected (-0.00020, -0.00050, -0.00036)\n    test 983     Error0v: (0.000281, 0.00099, -0.000432) max 0.00099\n\n    test 984 transform0/: name='-ITRF2000@2015xETRF2014@2010', tx=0.0007, ty=0.0012, tz=-0.0261, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 985 transform2c: (4027893.6812, 307045.9082, 4919475.1547)\n    test 986     Error2c: (0.000013934, -0.000012081, 0.000026423) max 2.642e-05, epoched 5.0\n    test 987 transform2v: (-0.01351, 0.01686, 0.00854)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 988     Error2v: (-0.000440726, -0.000036335, -0.00053728) max 0.0005373\n\n    test 989 transform1/: name='-ITRF2000@1997xITRF97@2015-ITRF97@2015xETRF2014@2010', tx=0.00673, ty=-0.00033, tz=-0.05913, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=8.09154034e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01669\n    test 990 transform2c: (4027893.6865, 307045.9168, 4919475.1217)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 991     Error2c: (0.005269863, 0.008612365, -0.033003577) max 0.033, epoched 23.0\n    test 992 transform2v: (-0.01357, 0.01710, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 993     Error2v: (-0.00050027, 0.000204776, -0.00179728) max 0.001797\n\n    test 994 transform2/: name='-ITRF2000@1997xITRF96@2015-ITRF96@2015xETRF2014@2010', tx=0.00673, ty=-0.00033, tz=-0.05913, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 995 transform2c: (4027893.6872, 307045.9067, 4919475.1217)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 996     Error2c: (0.006043935, -0.001542081, -0.033003577) max 0.033, epoched 23.0\n    test 997 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 998     Error2v: (-0.000440726, -0.000576335, -0.00179728) max 0.001797\n\n    test 999 transform3/: name='-ITRF2000@1988xITRF93@2015-ITRF93@2015xETRF2014@2010', tx=0.0007, ty=0.0012, tz=-0.0261, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 1000 transform2c: (4027893.6812, 307045.9082, 4919475.1547)\n    test 1001     Error2c: (0.000013934, -0.000012081, 0.000026423) max 2.642e-05, epoched 32.0\n    test 1002 transform2v: (-0.01351, 0.01686, 0.00854)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 1003     Error2v: (-0.000440726, -0.000036335, -0.00053728) max 0.0005373\n\n    test 1004 transform4/: name='-ITRF2000@1988xITRF92@2015-ITRF92@2015xETRF2014@2010', tx=0.01393, ty=0.00147, tz=-0.06633, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 1005 transform2c: (4027893.6944, 307045.9085, 4919475.1145)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 1006     Error2c: (0.013243935, 0.000257919, -0.040203577) max 0.0402, epoched 32.0\n    test 1007 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 1008     Error2v: (-0.000440726, -0.000576335, -0.00179728) max 0.001797\n\n    test 1009 transform5/: name='-ITRF2000@1988xITRF91@2015-ITRF91@2015xETRF2014@2010', tx=0.0007, ty=0.0012, tz=-0.0261, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 1010 transform2c: (4027893.6812, 307045.9082, 4919475.1547)\n    test 1011     Error2c: (0.000013934, -0.000012081, 0.000026423) max 2.642e-05, epoched 32.0\n    test 1012 transform2v: (-0.01351, 0.01686, 0.00854)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 1013     Error2v: (-0.000440726, -0.000036335, -0.00053728) max 0.0005373\n\n    test 1014 transform6/: name='-ITRF2000@1988xITRF90@2015-ITRF90@2015xETRF2014@2010', tx=0.02293, ty=0.01047, tz=-0.08613, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 1015 transform2c: (4027893.7034, 307045.9175, 4919475.0947)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 1016     Error2c: (0.022243935, 0.009257919, -0.060003577) max 0.06, epoched 32.0\n    test 1017 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 1018     Error2v: (-0.000440726, -0.000576335, -0.00179728) max 0.001797\n\n    test 1019 transform7/: name='-ITRF2000@1988xITRF89@2015-ITRF89@2015xETRF2014@2010', tx=0.02743, ty=0.03207, tz=-0.12033, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 1020 transform2c: (4027893.7079, 307045.9391, 4919475.0605)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 1021     Error2c: (0.026743934, 0.030857919, -0.094203576) max 0.0942, epoched 32.0\n    test 1022 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 1023     Error2v: (-0.000440726, -0.000576335, -0.00179728) max 0.001797\n\n    test 1024 transform8/: name='-ITRF2000@1988xITRF88@2015-ITRF88@2015xETRF2014@2010', tx=0.02293, ty=-0.00033, tz=-0.14193, s1=1.0, rx=-8.65392421e-09, ry=-5.40615736e-08, rz=7.83943722e-08, s=0.00212, sx=-0.001785, sy=-0.011151, sz=0.01617\n    test 1025 transform2c: (4027893.7034, 307045.9067, 4919475.0389)  FAILED, KNOWN, expected (4027893.6812, 307045.9082, 4919475.1547)\n    test 1026     Error2c: (0.022243935, -0.001542081, -0.115803577) max 0.1158, epoched 32.0\n    test 1027 transform2v: (-0.01351, 0.01632, 0.00728)  FAILED, KNOWN, expected (-0.01307, 0.01690, 0.00908)\n    test 1028     Error2v: (-0.000440725, -0.000576335, -0.00179728) max 0.001797\n\n    test 1029 transform0: name='ITRF2020@2015xETRF2020@2020', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=1.29251327e-08, ry=7.80016732e-08, rz=-1.13170058e-07, s=0.0, sx=0.002666, sy=0.016089, sz=-0.023343\n    test 1030 transform2c: (4027893.9574, 307045.5561, 4919474.9643)\n    test 1031     Error2c: (-0.000024276, -0.000021815, -0.000013824) max 2.428e-05, epoched 5.0\n    test 1032 transform2v: (0.01350, -0.01676, -0.01001)\n\n    test 1033 transform0: name='-ITRF2014@2015xETRF2020@2020', tx=-0.0014, ty=-0.0014, tz=0.0024, s1=1.0, rx=-1.29251327e-08, ry=-7.80016732e-08, rz=1.13170058e-07, s=-0.00042, sx=-0.002666, sy=-0.016089, sz=0.023343\n    test 1034 transform2c: (4027893.5358, 307046.0740, 4919475.2748)\n    test 1035     Error2c: (0.000032643, -0.000007101, 0.000047684) max 4.768e-05, epoched 5.0\n    test 1036 transform2v: (-0.01350, 0.01666, 0.01021)\n\n    test 1037 transform0: name='ITRF2014@2015xETRF2014@2020', tx=0.0, ty=0.0, tz=0.0, s1=1.0, rx=1.27748405e-08, ry=7.980518e-08, rz=-1.15725026e-07, s=0.0, sx=0.002635, sy=0.016461, sz=-0.02387\n    test 1038 transform2c: (4027893.9639, 307045.5450, 4919474.9573)\n    test 1039     Error2c: (0.000032525, 0.000026405, -0.000024305) max 3.253e-05, epoched 5.0\n    test 1040 transform2v: (0.01381, -0.01706, -0.01024)\n\n    test 1041 transform0: name='-ITRF2000@2015xETRF2014@2020', tx=0.0017, ty=0.0022, tz=-0.0451, s1=1.0, rx=-1.27748405e-08, ry=-7.980518e-08, rz=1.15725026e-07, s=0.00322, sx=-0.002635, sy=-0.016461, sz=0.02387\n    test 1042 transform2c: (4027893.5504, 307046.0772, 4919475.2456)  FAILED, KNOWN, expected (4027893.5505, 307046.0772, 4919475.2456)\n    test 1043     Error2c: (-0.00006262, -0.000037673, -0.000034945) max 6.262e-05, epoched 5.0\n    test 1044 transform2v: (-0.01371, 0.01716, 0.00834)\n\n    test 1045 transform0: name='ITRF2000@2015xETRF2000@2020', tx=0.054, ty=0.051, tz=-0.048, s1=1.0, rx=1.21736715e-08, ry=7.36431982e-08, rz=-1.19031455e-07, s=0.0, sx=0.002511, sy=0.01519, sz=-0.024552\n    test 1046 transform2c: (4027894.0033, 307045.5889, 4919474.9047)\n    test 1047     Error2c: (0.000034031, -0.000034106, 0.000010915) max 3.411e-05, epoched 5.0\n    test 1048 transform2v: (0.01287, -0.01740, -0.00945)\n\n    test 1049 transform0*: name='-ITRF2014@2010xITRF89-ITRF89@1989xETRF89@2010@2018.8', tx=-0.03128, ty=-0.0311, tz=0.15984, s1=0.999999991, rx=-1.58921925e-08, ry=-8.23504519e-08, rz=1.00463091e-07, s=-0.009246, sx=-0.003278, sy=-0.016986, sz=0.020722\n    test 1050 transform2c: (4160476.4154, 653193.0567, 4774604.9029)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 1051     Error2c: (-0.069560351, 0.035713888, 0.122930501) max 0.1229, epoched 29.8\n    test 1052 transform2v: (-0.01148, 0.01996, 0.01845)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 1053     Error2v: (-0.015479395, 0.016963959, 0.014448874) max 0.01696\n\n    test 1054 transform0*: name='-ITRF2014@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 1055 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 1056     Error2c: (-0.014174475, 0.037834952, 0.023962617) max 0.03783, epoched 3.8\n    test 1057 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 1058     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 1059 transform1*: name='-ITRF2014@2010xITRF2008@2015-ITRF2008@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 1060 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 1061     Error2c: (-0.014174475, 0.037834952, 0.023962617) max 0.03783, epoched 8.8\n    test 1062 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 1063     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 1064 transform2*: name='-ITRF2014@2010xITRF97@2015-ITRF97@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 1065 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 1066     Error2c: (-0.014174475, 0.037834952, 0.023962617) max 0.03783, epoched 8.8\n    test 1067 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 1068     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 1069 transform3*: name='-ITRF2014@2010xITRF93@2015-ITRF93@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 1070 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 1071     Error2c: (-0.014174475, 0.037834952, 0.023962617) max 0.03783, epoched 8.8\n    test 1072 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 1073     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 1074 transform4*: name='-ITRF2014@2010xITRF92@2015-ITRF92@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 1075 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 1076     Error2c: (-0.014174475, 0.037834952, 0.023962617) max 0.03783, epoched 8.8\n    test 1077 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 1078     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 1079 transform5*: name='-ITRF2014@2010xITRF91@2015-ITRF91@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 1080 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 1081     Error2c: (-0.014174475, 0.037834952, 0.023962617) max 0.03783, epoched 8.8\n    test 1082 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 1083     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 1084 transform6*: name='-ITRF2014@2010xITRF90@2015-ITRF90@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 1085 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 1086     Error2c: (-0.014174475, 0.037834952, 0.023962617) max 0.03783, epoched 8.8\n    test 1087 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 1088     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 1089 transform7*: name='-ITRF2014@2010xITRF89@2015-ITRF89@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 1090 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 1091     Error2c: (-0.014174475, 0.037834952, 0.023962617) max 0.03783, epoched 8.8\n    test 1092 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 1093     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 1094 transform8*: name='-ITRF2014@2010xITRF88@2015-ITRF88@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=0.999999997, rx=-1.17024326e-08, ry=-7.07924937e-08, rz=1.14423786e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.0236016\n    test 1095 transform2c: (4160476.4708, 653193.0588, 4774604.8040)  FAILED, KNOWN, expected (4160476.4850, 653193.0210, 4774604.7800)\n    test 1096     Error2c: (-0.014174475, 0.037834952, 0.023962617) max 0.03783, epoched 8.8\n    test 1097 transform2v: (-0.00995, 0.02075, 0.01553)  FAILED, KNOWN, expected (0.00400, 0.00300, 0.00400)\n    test 1098     Error2v: (-0.013950571, 0.017750066, 0.011527066) max 0.01775\n\n    test 1099 toTransform: name='-ITRF2014@2010xITRF88@2015-ITRF88@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=1.0, rx=-1.1702e-08, ry=-7.0792e-08, rz=1.1442e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.023602\n    test 1100 toTransform: name='-ITRF2014@2010xITRF88@2015-ITRF88@2015xETRF2000@2018.8', tx=-0.05558, ty=-0.05308, tz=0.09082, s1=1.0, rx=-1.1702e-08, ry=-7.0792e-08, rz=1.1442e-07, s=-0.003088, sx=-0.0024138, sy=-0.014602, sz=0.023602\n\n    test 1101 Issue80: 48.77691577°N, 008.92257142°E, +476.05m\n    test 1102 Issue80: 48.77692147°N, 008.92257868°E, +476.09m\n    test 1103 Issue80: 48°46′36.915133″N, 008°55′21.285094″E, +476.10m  FAILED, KNOWN, expected 48°46′36.915134″N, 008°55′21.285094″E, +476.10\n    test 1104 Issue80: 0.804  FAILED, KNOWN, expected 0.01\n    test 1105 Issue80: [4160476.944064, 653192.600457, 4774604.455385]\n    test 1106 Issue80: [4160476.415504, 653193.057171, 4774604.903316]\n    test 1107 Issue80: [4160476.467901, 653193.103647, 4774604.868888]\n    test 1108 Issue80: 48°46′36.915133″N, 008°55′21.285094″E, +476.10m\n\n    test 1109 Issue80: 48.77692032°N, 008.92257804°E, +476.05m\n    test 1110 Issue80: 48.77691971°N, 008.92257856°E, +476.06m\n    test 1111 Issue80: 48°46′36.9315″N, 008°55′21.3089″E, +476.10m  FAILED, KNOWN, expected 48°46′36.9131″N, 008°55′21.28095″E, +476.05m\n    test 1112 Issue80: 0.804  FAILED, KNOWN, expected 0.01\n    test 1113 Issue80: [4160476.492633, 653193.021888, 4774604.78885]\n    test 1114 Issue80: [4160476.54503, 653193.068365, 4774604.754422]\n    test 1115 Issue80: [4160476.016469, 653193.525079, 4774605.202353]\n    test 1116 Issue80: 48°46′36.9315″N, 008°55′21.3089″E, +476.10m\n\n    test 1117 ITRF96@1997xNAD83: TRFXform(epoch=1997.0, name='ITRF96@1997xNAD83')\n    test 1118 ITRF96@1997xNAD83: name='ITRF96@1997xNAD83', tx=0.991, ty=-0.19072, tz=-0.5129, s1=1.0, rx=1.2503e-07, ry=4.6785e-08, rz=5.6529e-08, s=0.0, sx=0.02579, sy=0.00965, sz=0.01166\n    test 1119 ITRF96@1997xNAD83: name='ITRF96@1997xNAD83@2007', tx=0.991, ty=-0.19072, tz=-0.5129, s1=1.0, rx=1.2761e-07, ry=1.0797e-08, rz=5.4997e-08, s=0.0, sx=0.026322, sy=0.002227, sz=0.011344\n    test 1120 ITRF96@1997xNAD83: rx=-2.5792e-10, ry=3.5988e-09, rz=1.532e-10\n\n    test 1121 TRFError: day (2), month (1) or year (None): int() argument must be a string, a bytes-like object or a real number, not 'NoneType'\n    test 1122 toStr: name='GDA94', epoch=1994, datum=Datums.GRS80\n    test 1123 str: name='GDA94', epoch=1994, datum=Datums.GRS80\n    test 1124 toStr2: RefFrame(name='GDA94', epoch=1994, datum=Datums.GRS80)\n    test 1125 repr: RefFrame(name='GDA94', epoch=1994, datum=Datums.GRS80)\n\n    test 1126 epoch: 2020.003\n    test 1127 y-m-d: (2020, 1, 1)\n    test 1128 epoch: 2020.251\n    test 1129 y-m-d: (2020, 4, 1)\n    test 1130 epoch: 2020.500\n    test 1131 y-m-d: (2020, 7, 1)\n    test 1132 epoch: 2020.751\n    test 1133 y-m-d: (2020, 10, 1)\n    test 1134 epoch: 2021.000\n    test 1135 y-m-d: (2021, 1, 1)  FAILED, KNOWN, expected (2020, 12, 31)\n\n    test 1136 Epoch (2020).std_repr: False\n    test 1137 Epoch (2020.001): (2020, 1, 1)\n    test 1138 Epoch (2020.086): (2020, 2, 1)\n    test 1139 Epoch (2020.165): (2020, 3, 1)\n    test 1140 Epoch (2020.25): (2020, 4, 1)\n    test 1141 Epoch (2020.332): (2020, 5, 1)\n    test 1142 Epoch (2020.416): (2020, 6, 1)\n    test 1143 Epoch (2020.498): (2020, 7, 1)\n    test 1144 Epoch (2020.583): (2020, 8, 1)\n    test 1145 Epoch (2020.668): (2020, 9, 1)\n    test 1146 Epoch (2020.75): (2020, 10, 1)\n    test 1147 Epoch (2020.834): (2020, 11, 1)\n    test 1148 Epoch (2020.916): (2020, 12, 1)\n    test 1149 Epoch (2021.001): (2021, 1, 1)  FAILED, KNOWN, expected (2020, 13, 1)\n\n    294 of 1149 testTrf.py tests (25.6%) FAILED, incl. 286 KNOWN plus 8 DeprecationWarnings (pygeodesy 26.3.26 Python 3.14.3 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 133.282 ms\nrunning /Library/Framewo....n3.14 -W default ~/PyGeodesy/test/testTriaxials.py\n./test/testTriaxials.py:134: DeprecationWarning: method L{area_p<pygeodesy.triaxials.triaxial5.Conformal.area_p>} has been DEPRECATED on 2026-02-15, use method L{areaKT<Triaxial_.areaKT>}.\n  p = J.area_p()\n./test/testTriaxials.py:192: DeprecationWarning: method L{area_p<pygeodesy.triaxials.triaxial5.ConformalSphere.area_p>} has been DEPRECATED on 2026-02-15, use method L{areaKT<Triaxial_.areaKT>}.\n  p = J.area_p()\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.EPS4 from .constants by testTriaxials.py line 13\n# lazily imported pygeodesy.F_DEG_ from .dms by testTriaxials.py line 13\n# lazily imported pygeodesy.F_DMS from .dms by testTriaxials.py line 13\n# lazily imported pygeodesy.PI_2 from .constants by testTriaxials.py line 13\n# lazily imported pygeodesy.PI_4 from .constants by testTriaxials.py line 13\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by testTriaxials.py line 13\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by testTriaxials.py line 13\n# lazily imported pygeodesy.Degrees from .units by testTriaxials.py line 13\n# lazily imported pygeodesy.Ellipsoids from .ellipsoids by testTriaxials.py line 13\n# lazily imported pygeodesy.fstr from .streprs by testTriaxials.py line 13\n# lazily imported pygeodesy.LLK from .triaxials.bases by testTriaxials.py line 13\n# lazily imported pygeodesy.Los from .ltpTuples by testTriaxials.py line 13\n# lazily imported pygeodesy.map1 from .basics by testTriaxials.py line 13\n# lazily imported pygeodesy.signBit from .basics by testTriaxials.py line 13\n# lazily imported pygeodesy.sincos2d_ from .utily by testTriaxials.py line 13\n# lazily imported pygeodesy.Triaxial from .triaxials.triaxial5 by testTriaxials.py line 13\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by testTriaxials.py line 13\n# lazily imported pygeodesy.Triaxials from .triaxials.triaxial5 by testTriaxials.py line 13\n# lazily imported pygeodesy.Triaxial3s from .triaxials.triaxial3 by testTriaxials.py line 13\n# lazily imported pygeodesy.triaxum5 from .vector2d by testTriaxials.py line 13\n# lazily imported pygeodesy.Vector3d from .vector3d by testTriaxials.py line 13\n\n    testing testTriaxials.py 26.03.12 isLazy=3\n\n    testHartzell(pygeodesy.triaxials.triaxial5, 26.03.09)\n# lazily imported pygeodesy.hartzell4 from .triaxials.triaxial5 by bases.py line 411\n    test 1 hartzell4: (884268.349816, 5592134.174908, 2927668.068131, 12669388.912805)\n    test 2 hartzell4: 0\n# lazily imported pygeodesy.hartzell4 from .triaxials.triaxial5 by bases.py line 411\n    test 3 hartzell4: (3642143.609933, 3678204.437754, 3714265.265575, 11296443.179278)\n    test 4 hartzell4: 0\n# lazily imported pygeodesy.hartzell4 from .triaxials.triaxial5 by bases.py line 411\n\n    test 5 hartzell4: (888679.181482, 5594339.590741, 2931196.612187, 12663325.092381)\n    test 6 hartzell4: 0\n# lazily imported pygeodesy.hartzell4 from .triaxials.triaxial5 by bases.py line 411\n    test 7 hartzell4: (3642304.092727, 3678366.509487, 3714428.926247, 11296162.453809)\n    test 8 hartzell4: 0\n# lazily imported pygeodesy.Triaxial from .triaxials.triaxial5 by ellipsoids.py line 1905\n# lazily imported pygeodesy.hartzell4 from .triaxials.triaxial5 by bases.py line 411\n\n    test 9 hartzell4: (884080.396945, 5592040.198472, 2927517.711001, 12669647.302276)\n    test 10 hartzell4: 0\n# lazily imported pygeodesy.hartzell4 from .triaxials.triaxial5 by bases.py line 411\n    test 11 hartzell4: (3642031.283571, 3678090.99925, 3714150.714929, 11296639.666827)\n    test 12 hartzell4: 0\n# imported pygeodesy.formy into latlonBase.py line 577\n# lazily imported pygeodesy.Triaxial from .triaxials.triaxial5 by ellipsoids.py line 1905\n# lazily imported pygeodesy.ecef by ellipsoidalVincenty.py line 377\n\n    test 13 hartzell: 30°38′27.119″N, 060°44′36.777″E, +142549.69m\n    test 14 hartzell: 30.640866, 060.743549, +142549.69m\n    test 15 hartzell: [2807429.59, 4862610.688, 3220373.735]\n# lazily imported pygeodesy.Triaxial from .triaxials.triaxial5 by ellipsoids.py line 1905\n    test 16 hartzell: [2684238.298, 4791786.806, 3231700.636]\n    test 17 hartzell: 142549.69438493284  FAILED, KNOWN, expected 142549.6943849337\n# lazily imported pygeodesy.Triaxial from .triaxials.triaxial5 by ellipsoids.py line 1905\n\n    test 18 hartzell: 30°00′00.0″N, 060°00′00.0″E, +100000.00m\n    test 19 hartzell: 30.0, 060.0, +100000.00m\n    test 20 hartzell: [2807429.59, 4862610.688, 3220373.735]\n# lazily imported pygeodesy.Triaxial from .triaxials.triaxial5 by ellipsoids.py line 1905\n    test 21 hartzell: [2764128.32, 4787610.688, 3170373.735]\n    test 22 hartzell: 100000.00000000023  FAILED, KNOWN, expected 100000.0\n\n    testConformal(pygeodesy.triaxials.triaxial5, 26.03.09)\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n# lazily imported pygeodesy.elliptic by triaxial5.py line 542\n# lazily imported pygeodesy.ellipses by bases.py line 424\n    test 23 Conformal: Conformal(name='Test', a=6378172, b=6378102, c=6356752, e2ab=0.00002195, e2bc=0.006683577, e2ac=0.00670538, xyQ2=xyQ2(x=10026968.259439, y=27085126.866409), volume=1083207266220584468480, area=510065604942135.875, R2=6371007.076110449)\n    test 24 xR: 1.5720928043230937  FAILED, KNOWN, expected 1.572092804\n    test 25 yR: 4.246581015231323  FAILED, KNOWN, expected 4.246581015\n    test 26 xyR2.toDegrees: (90.074283, 243.31117)\n    test 27 xyR2.toDegrees: (90.074283, 243.311169)  FAILED, KNOWN, expected ('90°04′27.42″N', '243°18′40.21″E')\n    test 28 areaRG: 510065604942135\n    test 29 area_p: 510065609807745\n    test 30 error: 9.54e-09\n    test 31 volume: 1.083207e+21\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n\n    test 32 Conformal: Conformal(name='Itokawa25134', a=267.5, b=147, c=104.5, e2ab=0.6980138, e2bc=0.494643436, e2ac=0.847389292, xyQ2=xyQ2(x=460.426025, y=209.544083), volume=17212581.945495993, area=359464.659686278, R2=169.130980982)\n    test 33 xyR2: (0.0, 0.61539)\n    test 34 toDegrees: (0.0, 35.259243)\n    test 35 toDegrees: (0.0, 35.259242)  FAILED, KNOWN, expected ('00°00′00.0″N', '035°15′33.27″E')\n    test 36 xyQR2: (3.13215, 1.42547)\n    test 37 toDegrees: (179.458966, 81.673412)  FAILED, KNOWN, expected (179.4589659, 81.673412)\n    test 38 toDegrees: (179.458967, 81.673411)  FAILED, KNOWN, expected ('179°27′32.28″N', '081°40′24.28″E')\n\n    testConformalSphere(pygeodesy.triaxials.triaxial5, 26.03.09)\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 39 ConformalSphere: ConformalSphere(name='Test', a=6378172, ab=1, bc=2, e2ab=0, e2bc=0, e2ac=0, xyQ2=xyQ2(x=11059220.127879, y=12941050.138298), volume=1086869218894412120064, area=511213503913540.8125, R2=6378172)\n    test 40 xR: 1.7339168852579347  FAILED, KNOWN, expected 1.73391688526\n    test 41 yR: 2.028959102748815  FAILED, KNOWN, expected 2.02895910275\n    test 42 xyR2.toDegrees: (99.34612, 116.250793)\n    test 43 xyR2.toDegrees: (99.346119, 116.250794)  FAILED, KNOWN, expected ('99°20′46.03″N', '116°15′02.86″E')\n    test 44 areax: 511213503913540\n    test 45 area_p: 511213503913539  FAILED, KNOWN, expected 511213503913540\n    test 46 volume: 1.086869e+21\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n\n    test 47 ConformalSphere: ConformalSphere(name='Itokawa25134', a=267.5, ab=147, bc=104.5, e2ab=0, e2bc=0, e2ac=0, xyQ2=xyQ2(x=517.119524, y=478.404858), volume=80178876.856908351, area=899202.357273738, R2=267.5)\n    test 48 xyR2: (0.0, 0.818354)\n    test 49 toDegrees: (0.0, 46.888217)\n    test 50 toDegrees: (0.0, 46.888217)  FAILED, KNOWN, expected ('00°00′00.0″N', '046°53′17.58″E')\n    test 51 xyQR2: (1.933157, 1.788429)\n    test 52 toDegrees: (110.761743, 102.469455)  FAILED, KNOWN, expected (179.4589659, 81.673412)\n    test 53 toDegrees: (110.761742, 102.469456)  FAILED, KNOWN, expected ('110°45′42.27″N', '102°28′10.04″E')\n\n    testTriaxial(pygeodesy.triaxials.triaxial5, 26.03.09)\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 54 Triaxial: Triaxial(name='Test', a=6378388, b=6378318, c=6356911.9461, e2ab=0.000021949, e2bc=0.006700868, e2ac=0.00672267, volume=1083307891664673177600, area=510097198412933.0625, R2=6371204.383189477)\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 55 Triaxial: Triaxial_(name='Un', a=6356911.9461, b=6378388, c=6378318, e2ab=-0.00676817, e2bc=0.000021949, e2ac=-0.006746073, volume=1083307891664673308672, area=510097198412933.125, R2=6371204.383189478)\n\n    test 56 forwardBetaOmega: (4234607.381429, 3551286.590486, 3176009.080037)\n    test 57 forwardBetaOmega: (4233813.533025, 3550620.827453, 3175409.655093)\n    test 58 length: 1196.973671\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n\n    test 59 forwardCartesian: (4233813.533151, 3550620.827558, 3175409.654809, 1196.973671)\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 60 forwardCartesian: (4239665.951888, 3553574.566129, 3164352.410834, 12911.309173)\n\n    test 61 reverseCartesian: (4234607.381429, 3551286.590486, 3176009.080037)\n    test 62 reverseCartesian: (4248255.186992, 3560773.833183, 3170763.143924)  FAILED, KNOWN, expected (4234607.381429, 3551286.590486, 3176009.080037)\n\n    test 63 forwardBetaOmega_: (4233813.533025, 3550620.827453, 3175409.655093)\n\n    test 64 reverseLatLon: (30.051881, 39.984967, 0.0)\n    test 65 forwardLatLon: (4233813.533025, 3550620.827453, 3175409.655093)\n\n    test 66 reverseBetaOmega: (0.520687, 0.698121, 12892.55755)\n    test 67 reverseBetaOmega: (0.521162, 0.698437, 12918.032538)\n    test 68 toDegrees: (29.860398, 40.017494, 12918.032538)\n    test 69 toDegrees: (29.860397, 40.017494, 12918.032538)  FAILED, KNOWN, expected ('29°51′37.43″', '40°01′02.98″', 12918.032538)\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n\n    test 70 height4: (3909251.554667, 3909165.750567, 3170432.501602, 999.999996)\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n\n    test 71 height4: (1.206423, 1.61288, 0.433517, 3.593736)\n    test 72 height4: 52\n    test 73 height4: 0\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 74 height4: (-1.206423, -1.61288, -0.433517, 3.593736)\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 75 height4: (0.0, 1.746769, 0.487031, 3.375213)\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 76 height4: (1.563196, 0.0, 0.853517, 2.190477)\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 77 height4: (1.297504, 1.803267, 0.0, 2.306326)\n\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 78 height4(-2, -4, -3): (-1.206423, -1.61288, -0.433517, 3.593736) 52\n    test 79 signBit(-2, -4, -3): (True, True, True)\n\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 80 height4(-2, -4, 0): (-1.297504, -1.803267, 0.0, 2.306326) 52\n    test 81 signBit(-2, -4, 0): (True, True, False)\n\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 82 height4(-2, -4, 3): (-1.206423, -1.61288, 0.433517, 3.593736) 52\n    test 83 signBit(-2, -4, 3): (True, True, False)\n\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 84 height4(-2, 0, -3): (-1.563196, 0.0, -0.853517, 2.190477) 53\n    test 85 signBit(-2, 0, -3): (True, False, True)\n\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 86 height4(-2, 0, 0): (-3.0, 0.0, 0.0, -1.0) None\n    test 87 signBit(-2, 0, 0): (True, False, False)\n\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 88 height4(-2, 0, 3): (-1.563196, 0.0, 0.853517, 2.190477) 53\n    test 89 signBit(-2, 0, 3): (True, False, False)\n\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 90 height4(-2, 4, -3): (-1.206423, 1.61288, -0.433517, 3.593736) 52\n    test 91 signBit(-2, 4, -3): (True, False, True)\n\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 92 height4(-2, 4, 0): (-1.297504, 1.803267, 0.0, 2.306326) 52\n    test 93 signBit(-2, 4, 0): (True, False, False)\n\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 94 height4(-2, 4, 3): (-1.206423, 1.61288, 0.433517, 3.593736) 52\n    test 95 signBit(-2, 4, 3): (True, False, False)\n\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 96 height4(0, -4, -3): (0.0, -1.746769, -0.487031, 3.375213) 54\n    test 97 signBit(0, -4, -3): (False, True, True)\n\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 98 height4(0, -4, 0): (0.0, -2.0, 0.0, 2.0) None\n    test 99 signBit(0, -4, 0): (False, True, False)\n\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 100 height4(0, -4, 3): (0.0, -1.746769, 0.487031, 3.375213) 54\n    test 101 signBit(0, -4, 3): (False, True, False)\n\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 102 height4(0, 0, -3): (0.0, 0.0, -1.0, 2.0) None\n    test 103 signBit(0, 0, -3): (False, False, True)\n\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 104 height4(0, 0, 0): (0.0, 0.0, 0.0, -1.0) None\n    test 105 signBit(0, 0, 0): (False, False, False)\n\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 106 height4(0, 0, 3): (0.0, 0.0, 1.0, 2.0) None\n    test 107 signBit(0, 0, 3): (False, False, False)\n\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 108 height4(0, 4, -3): (0.0, 1.746769, -0.487031, 3.375213) 54\n    test 109 signBit(0, 4, -3): (False, False, True)\n\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 110 height4(0, 4, 0): (0.0, 2.0, 0.0, 2.0) None\n    test 111 signBit(0, 4, 0): (False, False, False)\n\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 112 height4(0, 4, 3): (0.0, 1.746769, 0.487031, 3.375213) 54\n    test 113 signBit(0, 4, 3): (False, False, False)\n\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 114 height4(2, -4, -3): (1.206423, -1.61288, -0.433517, 3.593736) 52\n    test 115 signBit(2, -4, -3): (False, True, True)\n\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 116 height4(2, -4, 0): (1.297504, -1.803267, 0.0, 2.306326) 52\n    test 117 signBit(2, -4, 0): (False, True, False)\n\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 118 height4(2, -4, 3): (1.206423, -1.61288, 0.433517, 3.593736) 52\n    test 119 signBit(2, -4, 3): (False, True, False)\n\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 120 height4(2, 0, -3): (1.563196, 0.0, -0.853517, 2.190477) 53\n    test 121 signBit(2, 0, -3): (False, False, True)\n\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 122 height4(2, 0, 0): (3.0, 0.0, 0.0, -1.0) None\n    test 123 signBit(2, 0, 0): (False, False, False)\n\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 124 height4(2, 0, 3): (1.563196, 0.0, 0.853517, 2.190477) 53\n    test 125 signBit(2, 0, 3): (False, False, False)\n\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 126 height4(2, 4, -3): (1.206423, 1.61288, -0.433517, 3.593736) 52\n    test 127 signBit(2, 4, -3): (False, False, True)\n\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 128 height4(2, 4, 0): (1.297504, 1.803267, 0.0, 2.306326) 52\n    test 129 signBit(2, 4, 0): (False, False, False)\n\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 130 height4(2, 4, 3): (1.206423, 1.61288, 0.433517, 3.593736) 52\n    test 131 signBit(2, 4, 3): (False, False, False)\n\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 132 _plumbTo5: 2.356, 1.116, 0.268, 6.503, 54\n    test 133 _plumbTo5: 2.356, 0.268, 1.116, 6.503, 54\n    test 134 _plumbTo5: 1.116, 2.356, 0.268, 6.503, 54\n    test 135 _plumbTo5: 1.116, 0.268, 2.356, 6.503, 54\n    test 136 _plumbTo5: 0.268, 2.356, 1.116, 6.503, 54\n    test 137 _plumbTo5: 0.268, 1.116, 2.356, 6.503, 54\n\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 138 _plumbTo5(-9300557.963570276, -11660481.511793813, 0.0): (-3962700.829072, -4987439.729515, 0.0, 8545303.120214) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 139 _plumbTo5(0.0, -12673220.90213298, 4063222.7994714356): (0.0, -6073846.031207, 1947342.96726, 6930273.887183) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 140 _plumbTo5(2499951.171555953, 6362115.170256343, -7034566.006072541): (1621709.788784, 4136852.378785, -4574066.473867, 3431786.759912) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 141 _plumbTo5(-9399021.583039021, -7763804.562755707, -6951119.751015274): (-4256878.854533, -3529258.643752, -3159791.771735, 7664670.823131) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 142 _plumbTo5(-9612922.39422538, 3333663.5145574105, 5962187.189486663): (-5182331.629107, 1802765.616547, 3224175.948651, 5428672.808065) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 143 _plumbTo5(-11328035.20390406, -9256612.246624056, -7692781.497645869): (-4355036.26798, -3573470.200045, -2969720.914727, 10160123.963414) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 144 _plumbTo5(1598946.114177574, -11973388.958217159, 0.0): (841594.384072, -6322243.162372, 0.0, 5701669.093257) 55\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 145 _plumbTo5(-10308543.102586422, 1905777.409769761, 6374385.685515664): (-5341300.900271, 990674.649223, 3313543.184377, 5905900.86063) 52\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 146 _plumbTo5(-8735659.812590662, -6834366.166941474, 0.0): (-5007671.762691, -3929037.172672, 0.0, 4726397.30293) 49\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 147 _plumbTo5(2573537.1013443363, 5389514.603678346, 3732045.3303140495): (2328470.382191, 4879418.28281, 3378814.925965, 667103.943892) 56\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 148 _plumbTo5(1431210.08717349, 1543852.068510235, -9327538.892237142): (952507.562384, 1029789.273711, -6221664.3004, 3184316.825389) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 149 _plumbTo5(-6918305.550287351, 5935533.8579224525, 0.0): (-4827349.027207, 4150037.850017, 0.0, 2749562.724445) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 150 _plumbTo5(-9690082.180926248, -12628809.340338562, -9286452.325150812): (-3340011.67621, -4372204.152622, -3215004.809673, 12056425.654973) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 151 _plumbTo5(6115158.880607812, -9076497.651064131, -8024493.905200128): (2863993.849608, -4266165.0229, -3771654.917276, 7196944.734371) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 152 _plumbTo5(1724581.719029579, -6998172.662048493, -7855478.093763296): (1028985.282031, -4186867.746033, -4699735.122818, 4283223.48619) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 153 _plumbTo5(2415660.719960912, 3370437.398145044, 4064858.8972798586): (2653346.350446, 3699619.79338, 4461873.310774, -567869.661801) 57\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 154 _plumbTo5(4680172.356713349, 3934108.248885277, -12216049.126176806): (2177456.956147, 1836953.284537, -5703973.450785, 7284831.701745) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 155 _plumbTo5(-11233201.5712916, 6234031.774633325, 2200909.912500357): (-5478411.907088, 3050833.099543, 1077077.210703, 6671833.168324) 51\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 156 _plumbTo5(-11715241.42141346, -10821620.410300551, 0.0): (-4668119.327083, -4329550.547309, 0.0, 9581696.139952) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 157 _plumbTo5(-10345293.423252314, 0.0, -10870372.84072365): (-4381253.482469, 0.0, -4621478.658329, 8638197.203006) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 158 _plumbTo5(-7557919.112373196, -11824465.154778786, -8112109.980877586): (-2962336.280569, -4653637.304907, -3192560.055644, 9835757.473797) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 159 _plumbTo5(1838805.8848315026, -6725371.874146875, -11338156.124049723): (878072.411204, -3222840.9156, -5433254.316061, 6932430.835206) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 160 _plumbTo5(4963022.036653666, -7903436.513628428, 4517677.539411903): (3044634.97533, -4861105.025942, 2778629.195588, 3995031.782124) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 161 _plumbTo5(-8457240.198937353, 4465676.5419738265, 3454646.1876322697): (-5288403.367483, 2799487.292288, 2165664.890427, 3805152.59414) 52\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 162 _plumbTo5(0.0, -11746093.313145366, -7753017.004196427): (0.0, -5323340.222224, -3513632.219973, 7695722.228332) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 163 _plumbTo5(-11330258.40928789, -8840032.800537905, 3934021.6803214545): (-4833061.479002, -3785417.937653, 1684578.516197, 8533621.383191) 52\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 164 _plumbTo5(896051.3721805144, -12424974.283212215, -11664464.01489593): (333488.669933, -4643875.404912, -4359572.240515, 10687535.748865) 55\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 165 _plumbTo5(-11487978.414727544, 4802532.579191126, -7527288.768773187): (-5018370.895409, 2105895.452992, -3300651.805118, 8184872.220563) 52\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 166 _plumbTo5(-9546307.350822354, 4184538.924485122, 3361649.2321092547): (-5541804.863402, 2436070.68603, 1956999.371538, 4589795.483837) 52\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 167 _plumbTo5(3304719.1006247634, 6368069.492745702, 5147486.989470732): (2382176.324136, 4598995.150383, 3717472.520953, 2454720.062131) 49\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 168 _plumbTo5(-11018841.687343763, -10458281.327678155, 1715534.1896014542): (-4580406.544453, -4364532.4739, 715931.106356, 8921122.603472) 52\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 169 _plumbTo5(3689058.5582935237, 5794731.588921194, -12171672.035017816): (1677443.495773, 2644603.971725, -5554850.5793, 7599488.492078) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 170 _plumbTo5(-10633023.927465683, 5600503.720165909, -10521933.62404787): (-4230098.528732, 2237084.904542, -4202862.773683, 9604202.007609) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 171 _plumbTo5(1581203.1457984832, 972784.2195132434, -11582061.407866646): (857161.119854, 528969.075136, -6297893.034445, 5351975.722701) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 172 _plumbTo5(2258768.8877436225, -10545885.529490544, -11638568.100146323): (904335.151273, -4239307.382901, -4678490.005432, 9489473.417954) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 173 _plumbTo5(5449452.583609067, 4374805.24215859, 0.0): (4962521.845408, 3986293.169835, 0.0, 622931.115089) 55\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 174 _plumbTo5(0.0, -12044606.76119266, -11107727.393653879): (0.0, -4688878.45938, -4324100.12185, 10006214.959356) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 175 _plumbTo5(1391615.2762485908, 4643471.617773707, -8524542.497803029): (902989.115857, 3020177.55943, -5544436.689757, 3428537.552897) 55\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 176 _plumbTo5(4553332.79516834, 0.0, -11948204.910893947): (2263714.441299, 0.0, -5960198.641149, 6410816.741483) 46\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 177 _plumbTo5(-6991240.9522123765, 3573758.163707412, -11499098.86986609): (-3191114.176552, 1637205.196693, -5267888.77311, 7551104.566556) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 178 _plumbTo5(4346071.768838822, -12676369.788059339, -8625714.865661299): (1732485.105983, -5073723.993416, -3452401.680407, 9560032.826084) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 179 _plumbTo5(-11796704.490959167, 4693605.909583221, -7755512.678621262): (-5039630.336279, 2012890.588977, -3325972.201965, 8512644.395034) 52\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 180 _plumbTo5(-9857935.929440495, -7083469.29429921, -7597293.530919445): (-4375144.938277, -3155581.107273, -3384441.033989, 7952196.477921) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 181 _plumbTo5(-7849265.43363731, -12296239.547632324, -11695203.666485839): (-2666327.692743, -4195550.606205, -3990415.860312, 12322652.315549) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 182 _plumbTo5(5782789.149559475, 4230398.681706039, -10100876.341130221): (2968611.562144, 2178815.561377, -5202278.543157, 6010395.093456) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 183 _plumbTo5(-6721627.728424339, 3921334.050215278, 4341917.669793846): (-4797940.587727, 2804468.92205, 3105243.492973, 2545058.535557) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 184 _plumbTo5(3103613.487675563, 3353974.9701309437, 6140525.238593257): (2582394.320743, 2793864.508925, 5115044.92371, 1279454.190248) 56\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 185 _plumbTo5(4871989.8030514065, 1511221.8994557532, -11374991.639695557): (2484500.466358, 773203.931791, -5819856.095636, 6091330.459456) 55\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 186 _plumbTo5(3983476.357183724, -11896358.651329251, -8874776.080755137): (1646939.314496, -4937934.337559, -3683690.128022, 8990353.032611) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 187 _plumbTo5(-12232241.75844025, -8896123.163864251, -12061095.74698321): (-4016778.735414, -2934526.024306, -3978483.447105, 12975480.52009) 51\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 188 _plumbTo5(6051890.922149057, -9138866.342165468, -7899662.153607158): (2846953.972979, -4314501.247901, -3729423.981743, 7137016.591055) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 189 _plumbTo5(0.0, -12018001.797308534, -9669847.362812674): (0.0, -4969484.39998, -3998463.12413, 9046888.784727) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 190 _plumbTo5(1104159.7450067785, -8933322.846628752, -8232288.85554826): (575505.363003, -4671223.175101, -4304608.312774, 5819935.009237) 55\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 191 _plumbTo5(-12285698.649100646, -6468839.019335532, 1111825.1234923722): (-5606534.170441, -2962859.976193, 509232.485363, 7567446.403608) 51\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 192 _plumbTo5(6164586.315447328, -6570993.547312566, -7009338.728096933): (3433836.285126, -3671148.330678, -3916009.463584, 5043290.983795) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 193 _plumbTo5(5810856.18558647, 0.0, 5443736.935053998): (4643539.338101, 0.0, 4356032.71558, 1595534.108531) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 194 _plumbTo5(3045291.2748601795, -12047166.523940891, 4145312.0264436): (1477707.357284, -5866107.404541, 2018447.381737, 6722080.361991) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 195 _plumbTo5(-12310686.861604113, 4490997.749010969, 4706333.140706941): (-5620100.827678, 2057758.070922, 2156398.283032, 7562193.106949) 51\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 196 _plumbTo5(0.0, -10417005.95004532, 1096043.9416744518): (0.0, -6343372.094827, 667423.529425, 4096121.121766) 55\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 197 _plumbTo5(-9328658.157408016, -8727445.91510853, -7164361.624406569): (-4047787.679128, -3801383.053863, -3120517.243101, 8276857.235783) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 198 _plumbTo5(4004540.7175387996, -11570302.120248156, -9648174.197345335): (1632110.000481, -4734504.672948, -3947929.189058, 9211370.549612) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 199 _plumbTo5(4951059.590957711, -10579905.153037313, 0.0): (2695071.612036, -5776786.518702, 0.0, 5306545.993067) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 200 _plumbTo5(-9817215.707186649, 1404424.6605718988, -7635711.877316512): (-4986241.366763, 715685.986293, -3891068.931154, 6151018.194862) 52\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 201 _plumbTo5(-9226958.012842577, -11904773.189821461, 1232606.3717949751): (-3879997.259142, -5025614.86624, 520339.719152, 8741860.918991) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 202 _plumbTo5(-9294215.903196817, -9475838.607438505, -7258008.370200141): (-3904243.12217, -3996117.310094, -3060782.896861, 8757616.899067) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 203 _plumbTo5(1813071.5166954175, -11870699.784259336, 0.0): (959984.408777, -6305237.986816, 0.0, 5630463.802609) 55\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 204 _plumbTo5(-8070414.213571079, 2121751.216468508, -11940859.681137668): (-3520659.244601, 929119.789927, -5228865.699716, 8195944.314347) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 205 _plumbTo5(1983182.8093028092, -7201637.66773865, 3707586.824689597): (1514301.762836, -5507719.018525, 2835499.643779, 1962076.929429) 55\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 206 _plumbTo5(5748153.737118241, -6882237.916418789, 2587629.85032861): (3918240.471327, -4701352.809943, 1767633.784285, 2962640.031508) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 207 _plumbTo5(3599567.4561901274, 3568156.378792255, 5087296.333534707): (3192628.239273, 3167175.349451, 4515586.787491, 808230.856373) 55\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 208 _plumbTo5(6332182.791791897, 650768.1906614412, 5229220.500981262): (4889934.279374, 503316.759349, 4044360.595285, 1872355.65326) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 209 _plumbTo5(-7686777.522571826, 5938745.815625527, 3226655.8410251727): (-4775676.603719, 3699069.150747, 2009771.869735, 3869297.96249) 52\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 210 _plumbTo5(-11334586.650609732, 3226213.631890666, -9803475.289560119): (-4699110.593827, 1342813.41715, -4080346.4914, 8962753.042975) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 211 _plumbTo5(1209250.1021613986, -7927451.295950009, -9884218.82879363): (603947.984131, -3972655.39577, -4953189.093461, 6349949.253097) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 212 _plumbTo5(-9468560.73748405, -7719648.903467059, 5285089.176401713): (-4521609.402029, -3699428.974742, 2532704.373933, 6943350.624269) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 213 _plumbTo5(-11609395.379492946, -12479358.161318503, -8004658.667638679): (-3916521.929023, -4228849.152327, -2712479.469611, 12460271.325154) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 214 _plumbTo5(-7482168.509654696, -10663969.206387935, -6775795.621459396): (-3238104.211183, -4632777.701726, -2943591.132153, 8311025.447159) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 215 _plumbTo5(-12051586.67131921, -7937133.918586954, 6171101.6767646205): (-4880071.659805, -3226907.639097, 2508879.900608, 9328918.881743) 50\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 216 _plumbTo5(2693704.1644080514, 5886511.878573126, -7713610.831206213): (1701853.791801, 3728264.716598, -4885431.688261, 3693290.570535) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 217 _plumbTo5(4191881.2603775556, 5756491.153644105, 3844435.861708639): (3297512.922422, 4534806.33283, 3028527.346869, 1719917.216012) 55\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 218 _plumbTo5(-7620050.690786623, 6233697.178296718, -11376300.748524757): (-3218491.145035, 2643199.220824, -4823694.2317, 8671911.795086) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 219 _plumbTo5(-10402923.998065077, -9278259.065432366, -10991960.007401204): (-3722932.992823, -3334840.833801, -3950732.720985, 11380921.834595) 52\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 220 _plumbTo5(1664289.6338429423, -10314363.339718409, -11403226.716545999): (683673.150532, -4253884.829219, -4702896.915317, 9087652.497142) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 221 _plumbTo5(-7218119.32792659, 1021119.5917858669, 2969411.4999289806): (-5831133.043799, 825974.955578, 2401921.639022, 1511243.568599) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 222 _plumbTo5(2362590.260898539, -11179920.812016979, 4029496.2855799953): (1239737.875911, -5885318.850543, 2121179.956116, 5738926.608889) 55\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 223 _plumbTo5(-6425902.437780579, 0.0, -7204483.762955237): (-4233887.154159, 0.0, -4757752.759748, 3285030.229037) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 224 _plumbTo5(-7027549.803612396, 1892547.8059282005, 2643227.812884008): (-5771696.602951, 1556211.005249, 2173474.378512, 1382374.0428) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 225 _plumbTo5(2231918.1899190005, 1142355.6533181877, -8953604.648739627): (1527716.907525, 783588.596899, -6141602.328426, 2920953.662136) 55\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 226 _plumbTo5(-6712867.954197352, -10099305.754589057, -6972710.889221444): (-3049882.60141, -4605349.612886, -3179563.898031, 7615049.56507) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 227 _plumbTo5(-11544512.912700232, 5172690.252464141, -6575481.046907441): (-5146737.608908, 2314695.737583, -2942386.38478, 7892973.983796) 52\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 228 _plumbTo5(-7231418.854726524, -6931901.764431111, 5928608.696365689): (-3949987.12744, -3797969.170954, 3248235.531947, 5270078.555566) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 229 _plumbTo5(2641171.1753598885, -8793189.37091239, -6725045.423073929): (1475827.679651, -4928056.107131, -3768948.901374, 5003577.445727) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 230 _plumbTo5(0.0, -9577834.41768268, 888799.0753286064): (0.0, -6351100.567623, 589361.88746, 3240597.779516) 55\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 231 _plumbTo5(4002145.9929036815, 2688128.1429674844, 4846498.54240657): (3728737.130986, 2505637.898739, 4517475.240442, 465092.924316) 56\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 232 _plumbTo5(3585868.545969172, 1409502.4515369476, 2541452.690286451): (4950202.413631, 1940818.862431, 3499490.281395, -1749725.70905) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 233 _plumbTo5(-8384452.668034479, 1341358.3925355002, 5593378.076872706): (-5243384.864758, 840963.227664, 3506733.764323, 3804048.731667) 52\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 234 _plumbTo5(-11127395.128320502, -7531662.078340402, -11376309.34465787): (-4015505.65089, -2729654.017282, -4122988.207916, 11236054.506381) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 235 _plumbTo5(3643497.5895474995, -7089488.769009512, -10173411.609088594): (1792017.513542, -3498846.225523, -5020786.16202, 6547537.044166) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 236 _plumbTo5(5284647.583569344, 3370368.361303387, 2734738.991192815): (4918192.413272, 3138118.630801, 2546286.185455, 473015.633089) 50\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 237 _plumbTo5(2165182.6086123274, -11519500.837459859, -9758941.874604877): (901938.174806, -4817510.368655, -4081184.069338, 8874085.667761) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 238 _plumbTo5(-12600826.927904561, -9290879.419657387, -12241523.357668605): (-4027695.375886, -2983357.849127, -3930768.977006, 13503779.150543) 50\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 239 _plumbTo5(5612095.245443665, -10677594.811703626, -11820492.387762226): (2110828.183871, -4032984.994641, -4464602.574506, 10512793.425261) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 240 _plumbTo5(4915145.849724457, -10885520.301474974, -6803086.4809331875): (2272648.496157, -5051467.360276, -3156961.182649, 7369748.684664) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 241 _plumbTo5(-6728975.719938926, 3345234.81829062, -12683648.048361583): (-2900434.964377, 1447455.164183, -5488040.230257, 8368755.212366) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 242 _plumbTo5(4910584.480358762, -12653948.216023926, 3085021.47222811): (2242049.885102, -5798659.883821, 1413691.381391, 7543831.869565) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 243 _plumbTo5(-8976906.995057743, -9619108.708378227, 5341574.496066876): (-4017806.465846, -4321285.931711, 2399618.549335, 7830370.93785) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 244 _plumbTo5(-8463830.60810678, -7621108.048355309, -12579467.635422356): (-3168636.328414, -2865193.748246, -4729249.094881, 10596401.956511) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 245 _plumbTo5(1096467.0995059202, -11549861.822415227, 0.0): (600978.394585, -6349819.993803, 0.0, 5223594.937973) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 246 _plumbTo5(-10948589.651644278, 4096868.3982894733, -9856144.814623823): (-4550546.687626, 1709491.36288, -4112599.499603, 8923162.873349) 52\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 247 _plumbTo5(4619417.249218382, 5237425.25954452, 3282666.6246967996): (3810828.926746, 4325750.377186, 2711244.825867, 1345915.687753) 55\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 248 _plumbTo5(-10352564.08620045, 2632384.685482822, -12615030.119492823): (-3979375.679008, 1016055.563474, -4869120.711095, 10160175.336446) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 249 _plumbTo5(-6374498.1621567765, 5714309.31746465, -12658681.207655726): (-2650451.17611, 2385319.632571, -5284035.74732, 8907081.112355) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 250 _plumbTo5(-9547671.32285483, 5249547.247491227, -10732297.281332353): (-3967173.537695, 2189855.357686, -4476934.281938, 8923745.63986) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 251 _plumbTo5(-11972987.62530657, -12507480.894571241, 1919466.9395276478): (-4366969.326822, -4581483.837835, 703089.976087, 11052262.963641) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 252 _plumbTo5(1652783.0323908583, 2840836.833053788, 0.0): (3220011.208786, 5499562.319795, 0.0, -3086263.982672) 52\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 253 _plumbTo5(6115935.680307476, 5225325.066884209, 4422997.138710556): (4238219.612231, 3628533.76556, 3071366.203986, 2811132.561087) 49\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 254 _plumbTo5(4786881.182332999, 5664841.95346354, -8266982.897206812): (2740994.147522, 3253066.066256, -4747315.184507, 4731847.15488) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 255 _plumbTo5(-6496617.750344593, 5554441.1092062695, 1471685.403438614): (-4764933.099421, 4081208.542633, 1081336.529752, 2306841.60025) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 256 _plumbTo5(-12176778.11646319, -9682834.344611239, 4347916.439438347): (-4790470.31358, -3824924.736874, 1717496.315524, 9787326.394866) 52\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 257 _plumbTo5(-9365644.216718012, 4733451.038753265, -11073116.001735907): (-3901241.006007, 1979474.085869, -4630588.989784, 8885395.084405) 52\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 258 _plumbTo5(4450309.889617256, 645982.6533403223, 3807808.3053228823): (4809066.396238, 697679.685853, 4112548.773739, -473545.7394) 56\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 259 _plumbTo5(-10897654.174125204, 3427500.0593593866, 4452955.484309489): (-5650155.448166, 1782842.575288, 2316217.322187, 5899728.052404) 52\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 260 _plumbTo5(-10300722.762891443, 4646709.354523863, 0.0): (-5795024.708596, 2621875.532137, 0.0, 4939763.857186) 52\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 261 _plumbTo5(-6407802.803643308, -11779837.799284488, 6016502.484862392): (-2770429.304206, -5112551.894435, 2611181.883109, 8323424.518318) 49\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 262 _plumbTo5(-9312220.916544143, 0.0, 2930677.098050242): (-6064270.366404, 0.0, 1912975.713433, 3403659.631104) 50\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 263 _plumbTo5(4223812.965309883, 4281649.191668366, 2485617.640313916): (4133584.137102, 4190786.705375, 2432868.281192, 138490.89408) 58\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 264 _plumbTo5(2997827.5860604886, 2363371.7748296508, 3693859.292852399): (3599054.380706, 2833535.475957, 4428726.434305, -1059508.036801) 55\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 265 _plumbTo5(-12671667.096779136, -8014332.614031527, -12514806.489256885): (-4121763.16835, -2618732.065372, -4089228.926937, 13160688.421384) 52\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 266 _plumbTo5(843842.4429774315, 5991376.498376857, 5431653.017581945): (660983.193097, 4699901.98138, 4260809.849692, 1752774.274433) 55\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 267 _plumbTo5(6048815.4644721355, -6531440.6165109, 2680947.655849851): (4138881.420978, -4478622.839951, 1838318.875985, 2927786.21742) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 268 _plumbTo5(4879174.123259943, 6178552.909205879, -9312714.500258692): (2543785.883293, 3231623.200863, -4870860.478112, 5819664.946658) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 269 _plumbTo5(5004240.984960998, 5008152.657427486, -7621306.588594056): (3059892.632886, 3070304.181009, -4672287.837379, 4028952.571922) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 270 _plumbTo5(1028902.8176837482, 1463749.009664159, -11899885.427998018): (543636.004436, 775853.372204, -6307414.004629, 5655477.071767) 55\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 271 _plumbTo5(-7824340.925363246, 0.0, 6317410.509504235): (-4947745.089333, 0.0, 4004698.984614, 3690994.202275) 50\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 272 _plumbTo5(2676863.5805767775, -11327824.769266207, 4593035.990907264): (1359964.170989, -5774128.632267, 2341181.627765, 6135846.552017) 55\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 273 _plumbTo5(2249619.3764058473, 0.0, 2000528.005466659): (4772982.699562, 0.0, 4212824.696466, -3355833.593856) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 274 _plumbTo5(4956193.912239468, -6662625.684179544, -12509472.725925844): (2097393.079693, -2830507.469295, -5314377.642959, 8638707.395552) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 275 _plumbTo5(-7710884.382492995, -8115183.079708684, -10228275.549669709): (-3231300.879861, -3414058.684292, -4302982.275302, 8790696.179798) 51\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 276 _plumbTo5(-11910621.648411252, 1849226.3777106311, -11164643.952148305): (-4606783.054862, 718203.441796, -4336071.648631, 10062537.989322) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 277 _plumbTo5(-8963429.03901859, -12098854.85488883, -12528055.925180355): (-2906246.229705, -3940759.795174, -4080495.9656, 13213827.903356) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 278 _plumbTo5(927303.6460785953, -8533293.54233783, 4443040.206372032): (610541.887073, -5631299.878717, 2932033.79078, 3287102.922578) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 279 _plumbTo5(-6431337.940867692, -7913672.569001737, 5828173.463683117): (-3481478.58698, -4297161.58015, 3164693.971997, 5373541.192067) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 280 _plumbTo5(-8448735.745283416, 5129243.357844096, -10571551.163388707): (-3710087.82749, 2260926.228049, -4659791.368339, 8101291.941429) 51\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 281 _plumbTo5(5393086.038674854, -8494853.68575136, 5585824.584238706): (2979754.3005, -4707685.779418, 3095527.08197, 5135016.307574) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 282 _plumbTo5(-11205486.606434723, -7011822.282899194, -10835770.19866757): (-4165498.890505, -2617612.609663, -4045090.906694, 10723051.381917) 52\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 283 _plumbTo5(6275896.587395679, -10723555.081638275, 3233841.235540427): (3107296.274643, -5327485.16049, 1606561.516206, 6465727.942069) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 284 _plumbTo5(3125485.316489174, -10929776.597293055, -12044882.966157196): (1198721.510979, -4209356.554006, -4638751.976627, 10184657.115216) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 285 _plumbTo5(1128407.9171078762, -11414403.065658463, 1389920.7991218064): (621055.484164, -6301329.382455, 767299.227734, 5175769.179769) 55\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 286 _plumbTo5(3289455.1444503507, -10532590.717592202, 768720.1252257226): (1891368.133389, -6073373.389023, 443260.456245, 4684569.400707) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 287 _plumbTo5(-8273239.3690780625, 4551919.260081756, 2824563.0226685693): (-5337507.566666, 2943707.935669, 1826619.417213, 3492958.104434) 52\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 288 _plumbTo5(-12133632.704022642, 2746254.8093428193, 2446007.3482782515): (-6083621.960558, 1381562.116047, 1230502.798798, 6320005.336468) 51\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 289 _plumbTo5(4775429.171595646, -9671093.87977823, -12524798.659580927): (1835296.133104, -3732249.080536, -4833479.934748, 10152371.32696) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 290 _plumbTo5(-10435782.82633078, -7925112.822431733, -8403700.54123353): (-4260067.658051, -3248090.663106, -3444194.209003, 9198407.317465) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 291 _plumbTo5(3603584.0845118295, 0.0, -10120993.933385288): (2133439.195914, 0.0, -6008383.520808, 4367481.013023) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 292 _plumbTo5(-9664916.035389349, -7917807.310617949, -12320730.836396314): (-3499114.577165, -2878933.301722, -4479784.042203, 11175321.271853) 52\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 293 _plumbTo5(-11223451.251595035, -11348169.077705335, -12213872.07898085): (-3546933.966741, -3602915.002067, -3877707.797474, 13726234.489077) 52\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 294 _plumbTo5(-6811282.166974648, -12177324.354896916, -8996003.148229187): (-2606422.576339, -4679225.458155, -3456732.925814, 10226722.1454) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 295 _plumbTo5(-11154863.461440096, -8947080.852138057, -11618316.715300346): (-3846146.833057, -3098561.610353, -4023608.842631, 12054132.22703) 51\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 296 _plumbTo5(4191966.3726614984, 3123849.0923887882, 2947354.2394098826): (4448807.200943, 3313881.641178, 3126654.283481, -366371.514279) 46\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 297 _plumbTo5(5665049.081532614, 2566892.2880729376, -9480432.800548682): (3177104.472307, 1443841.706181, -5332562.213074, 4965474.941886) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 298 _plumbTo5(5556124.743367095, 1168361.8576344524, 1187537.9875167399): (6091100.197387, 1280029.85706, 1301041.50474, -558168.009583) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 299 _plumbTo5(2276563.482327411, -8689794.726123603, -7465168.684773928): (1239389.701005, -4745367.133163, -4076576.523879, 5302527.257983) 55\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 300 _plumbTo5(-8734090.01152988, 0.0, 4418867.843251729): (-5673436.483401, 0.0, 2877136.978074, 3427029.921067) 52\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 301 _plumbTo5(1444387.4150171918, 0.0, 4211625.268281281): (2073822.401778, 0.0, 6029360.501319, -1923629.324996) 55\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 302 _plumbTo5(-11133071.204268023, -11781972.996607397, -11485371.789095623): (-3559439.343785, -3784211.083498, -3688891.806325, 13494784.003409) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 303 _plumbTo5(-9128602.027238317, -8530971.77034427, 3486461.3258541655): (-4473434.198708, -4194949.275765, 1714384.438693, 6603933.303668) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 304 _plumbTo5(-9720915.901739083, 3730342.60333391, 4413725.624805318): (-5464855.737041, 2103296.034562, 2488587.166636, 4946462.04328) 52\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 305 _plumbTo5(-10972481.63377289, -7697329.818069239, 6184679.253598231): (-4724306.631505, -3326894.662448, 2673072.410756, 8394746.984105) 52\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 306 _plumbTo5(-12027956.281505307, 1110329.7659182232, -9924933.257068772): (-4889552.230375, 453174.480113, -4050749.766503, 9267939.207164) 52\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 307 _plumbTo5(-8103963.2829771275, -10799194.916861724, -11397381.355404545): (-2913442.831149, -3899190.416976, -4115115.734203, 11295262.601508) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 308 _plumbTo5(937760.1549680583, 4827669.481438421, -8889403.069840351): (587287.716319, 3031022.799018, -5581111.835477, 3780947.119846) 55\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 309 _plumbTo5(-11922254.151162934, -11747879.35310438, -7441515.373637279): (-4135065.269048, -4092556.279272, -2592330.408245, 11948174.625401) 48\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 310 _plumbTo5(-7450856.414664825, -9366628.03196191, -11030656.150018612): (-2908303.9347, -3671136.457607, -4323274.43127, 9902644.941014) 50\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 311 _plumbTo5(1098222.4362153925, -8032723.312762036, 0.0): (862730.359678, -6319374.354403, 0.0, 1729456.900655) 55\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 312 _plumbTo5(1299127.4897925493, 2885681.3581270934, -12324231.3438349): (649043.363274, 1446551.021563, -6177894.257751, 6345956.592424) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 313 _plumbTo5(4456791.842035057, -9415133.72987674, -12287162.106862785): (1757647.802402, -3728273.817222, -4865496.206044, 9731745.93566) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 314 _plumbTo5(2071973.9900840144, -7049913.407619529, -7891732.311576463): (1222207.569923, -4170071.603383, -4667971.341485, 4405476.88435) 55\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 315 _plumbTo5(2046982.703788181, 6049444.90896574, 926986.7966164164): (2022381.277479, 5977223.284321, 915919.674686, 77095.229623) 59\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 316 _plumbTo5(5396414.831406125, -12570693.831675846, 764714.9246019324): (2503220.741109, -5852227.502514, 356005.267035, 7326350.076566) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 317 _plumbTo5(-9197102.75829913, 4846690.558383889, 2564943.113154864): (-5460989.53354, 2885713.750285, 1527150.493499, 4345225.608819) 52\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 318 _plumbTo5(0.0, 2318329.077963764, 3188269.6439349214): (0.0, 3751090.547009, 5158737.156961, -2436297.938897) 51\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 319 _plumbTo5(-12684552.315130716, 5543633.716783456, -11039834.326458577): (-4551950.193988, 1997987.751458, -3978824.221966, 11338813.265417) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 320 _plumbTo5(-6981850.679551049, -10229708.153014995, -12072336.553961737): (-2564251.063275, -3773153.649096, -4452732.082674, 10920652.669628) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 321 _plumbTo5(4717153.364383534, -11550204.852326058, -9687614.149053277): (1897251.699922, -4664268.017528, -3912055.079591, 9419397.754364) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 322 _plumbTo5(0.0, -9149649.80780371, -12025931.976038957): (0.0, -3862119.471301, -5076150.223256, 8732550.799781) 52\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 323 _plumbTo5(-10400971.886727747, -6619927.338470895, -9929357.98233453): (-4175137.323295, -2668094.583735, -4001874.608708, 9461134.03759) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 324 _plumbTo5(-11028176.160065496, -9020134.774358388, -12389868.361876594): (-3710317.814977, -3048330.981378, -4187062.798472, 12509976.435296) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 325 _plumbTo5(2160858.3727727593, -12142093.540891415, 1538265.3958220098): (1105327.992916, -6231419.001309, 789441.603717, 6050698.71728) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 326 _plumbTo5(-11778932.210256143, 2715666.6502514402, 3389402.4416597723): (-5964418.038968, 1379692.296524, 1721964.639273, 6194655.062775) 51\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 327 _plumbTo5(6242300.4629256865, -11609606.987093499, -11621007.296069987): (2256327.514534, -4214473.248211, -4218552.76137, 11196978.007461) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 328 _plumbTo5(5053610.033101153, 5726798.200078992, 1099811.8257685653): (4168403.736804, 4729243.125054, 908231.344581, 1347371.290878) 55\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 329 _plumbTo5(5294780.00028327, 6375398.744487379, 3043351.136814746): (3816120.677121, 4603600.762269, 2197554.80587, 2457859.417706) 51\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 330 _plumbTo5(2365954.408033079, 2905572.0641120616, 4151171.3655798878): (2699030.899007, 3311481.322775, 4731105.714541, -782320.98541) 57\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 331 _plumbTo5(-8069919.063106484, -11908872.159137841, -9885496.27648023): (-2936911.077608, -4352645.583092, -3613059.39678, 11080965.456924) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 332 _plumbTo5(5850495.9458770165, 5722036.744563128, 5843952.116368118): (3700618.844724, 3628327.771535, 3705604.212589, 3684850.142326) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 333 _plumbTo5(-10331153.415166039, -6434233.675718262, 0.0): (-5396216.804492, -3371586.314296, 0.0, 5808046.850001) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 334 _plumbTo5(3164853.877214977, 4939341.954363132, 1068091.655227124): (3383371.408421, 5277929.282849, 1141310.068827, -409575.666448) 56\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 335 _plumbTo5(5498517.17816853, -8925354.25639353, 2445953.3664836087): (3248545.573968, -5287680.224561, 1449052.124429, 4391908.089656) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 336 _plumbTo5(-8710547.801684523, -10332953.497187626, -8930947.738230154): (-3416510.721256, -4069489.151947, -3517282.003837, 9826779.273841) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 337 _plumbTo5(0.0, -11550920.057393795, -7768721.120777687): (0.0, -5292693.766022, -3559627.516598, 7542006.714579) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 338 _plumbTo5(0.0, -9803080.937976882, 4458103.176905968): (0.0, -5806187.167737, 2640430.082921, 4390796.657461) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 339 _plumbTo5(-7276509.183351506, -8917367.667206984, 6249199.0544481715): (-3531706.297866, -4343135.080566, 3043589.887632, 6724810.966727) 50\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 340 _plumbTo5(2823245.411586701, 4582795.479539332, 5350381.393488043): (2369418.395217, 3850287.623379, 4495167.868088, 1214049.790639) 56\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 341 _plumbTo5(-12528344.906528033, -12365699.29317108, -12617957.75277874): (-3673786.830107, -3643403.961568, -3717671.312057, 15287142.745043) 51\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 342 _plumbTo5(0.0, -7535383.558510379, 1584260.232439418): (0.0, -6241924.809388, 1312314.882847, 1321737.420536) 56\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 343 _plumbTo5(5681134.892072343, 0.0, 6021997.242841809): (4366420.627852, 0.0, 4635589.853592, 1910654.088398) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 344 _plumbTo5(-9036049.386057062, -6596315.918400789, 3304156.40609904): (-4924735.110083, -3606086.672545, 1806304.605855, 5299805.282658) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 345 _plumbTo5(-7336909.023578265, 6090889.994283991, 4150459.4186733067): (-4486421.146722, 3734250.570018, 2544574.576346, 4032108.2127) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 346 _plumbTo5(4362760.760163215, 5289584.135459404, -11656574.830657663): (2050393.728071, 2494868.309682, -5497838.988507, 7147552.379056) 52\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 347 _plumbTo5(-12461395.797481904, -7119758.596486539, -6921685.5837864615): (-4970253.759135, -2851253.421807, -2771894.543209, 9568600.270959) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 348 _plumbTo5(-7566143.677164096, 4543104.188867149, -9082596.857817126): (-3797966.248649, 2288156.447948, -4574444.100018, 6293440.373492) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 349 _plumbTo5(4842339.5176830925, -8813228.308928099, -6767263.109535832): (2539964.542317, -4637648.671583, -3560995.05181, 5746003.018881) 52\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 350 _plumbTo5(-9972761.31748726, 4662530.453764608, 4256112.435655717): (-5371604.589518, 2519181.262485, 2299569.004666, 5439912.792356) 52\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 351 _plumbTo5(3016605.4966718997, 1304241.0110947676, -11385253.216890456): (1618619.36137, 702003.401772, -6128012.702643, 5473173.960073) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 352 _plumbTo5(-11724918.431583608, -9261068.189347908, -7807596.816657645): (-4419360.915762, -3505368.646064, -2955180.890694, 10490242.521891) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 353 _plumbTo5(-12134588.631240936, 4242014.558076039, 2342159.198180888): (-5903546.269141, 2070913.070057, 1143408.0531, 6706457.701156) 50\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 354 _plumbTo5(0.0, 0.0, 3985743.815150218): (0.0, 0.0, 6378318.0, -2392574.18485) None\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 355 _plumbTo5(-7921057.044654415, -10864037.640105005, 2687706.006705687): (-3671872.603697, -5054343.586541, 1250403.451862, 7339887.740521) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 356 _plumbTo5(-10775405.47248439, -9368474.21826664, 5537083.69858114): (-4471463.249369, -3902980.164961, 2306763.151984, 8946858.869618) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 357 _plumbTo5(-8604739.504291004, -10561886.97668027, -7556399.07722975): (-3509688.285391, -4325183.658557, -3094370.379341, 9206829.818254) 52\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 358 _plumbTo5(3925721.009644486, 1893536.4839279293, 1316232.4249157286): (5489642.130955, 2640807.359749, 1835690.209158, -1809447.270617) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 359 _plumbTo5(-10543317.047290618, 4176583.939927537, -10467484.347941227): (-4341506.282918, 1726653.407504, -4327336.664623, 9064547.97239) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 360 _plumbTo5(5504910.383288863, 0.0, 3941980.7186291814): (5173606.529546, 0.0, 3706233.833182, 406618.786461) 55\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 361 _plumbTo5(-11576418.057469497, 5150121.48029749, -7199784.914373723): (-5048956.293486, 2254728.540757, -3152034.42804, 8208248.373083) 52\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 362 _plumbTo5(5747634.1165411, 3019800.754534434, -12588014.348788455): (2578891.377618, 1359987.253552, -5669027.170724, 7788985.490662) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 363 _plumbTo5(-10699975.163764765, -12469268.54123148, 5851074.412260858): (-3897604.102395, -4561587.603006, 2140447.685329, 11071242.955692) 51\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 364 _plumbTo5(-10008114.974938048, -11305255.24208844, -10856545.703370556): (-3418502.004548, -3878738.917149, -3724736.705294, 12224518.125847) 52\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 365 _plumbTo5(-11339708.501863228, 3353573.953624922, -11220486.396653067): (-4420373.384937, 1312653.581403, -4391856.30456, 9933415.493209) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 366 _plumbTo5(-11806013.5893758, 1206482.9786856282, -9638751.028646413): (-4907741.129485, 503510.885612, -4022563.173067, 8923110.372717) 52\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 367 _plumbTo5(-11812031.773843225, -6532810.614432961, 1153162.7559880565): (-5542356.608309, -3076255.443169, 543010.078875, 7185324.392308) 51\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 368 _plumbTo5(5552167.813835973, -8437735.788774159, -12516869.811745383): (2193043.778965, -3346421.513004, -4964147.812881, 9708182.369962) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 369 _plumbTo5(4323988.540673599, -10272313.882541187, 2984426.303452739): (2383050.041963, -5678445.211525, 1649748.547077, 5162580.395082) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 370 _plumbTo5(-12000563.945659896, -11375329.638874426, 0.0): (-4611901.004216, -4389788.847301, 0.0, 10168093.243721) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 371 _plumbTo5(-7084905.644767572, -9716801.529767435, -6734404.088522686): (-3267099.540117, -4497050.494859, -3116724.990249, 7410063.857837) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 372 _plumbTo5(-9299492.807924783, 0.0, -10038494.747635415): (-4319543.019846, 0.0, -4679595.851858, 7315579.0794) 52\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 373 _plumbTo5(5100849.267087828, -11657175.221031226, 4787967.534215877): (2384620.222134, -5469247.26915, 2246365.243671, 7219978.861854) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 374 _plumbTo5(4665159.392919396, 5463633.976949447, 1299180.9722421006): (4068010.18408, 4768381.775495, 1133855.890443, 931286.842985) 55\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 375 _plumbTo5(-8064858.445005396, -9388146.191553729, 1896093.2198699364): (-4094680.727043, -4782365.842125, 965868.406734, 6151491.034079) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 376 _plumbTo5(-10676921.034412017, 4434243.542993603, 0.0): (-5871035.613149, 2445706.819791, 0.0, 5201039.605871) 51\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 377 _plumbTo5(-9023055.192998646, 3544143.0538191493, -8462620.315925544): (-4457300.455779, 1756747.779582, -4194674.045764, 6500481.793821) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 378 _plumbTo5(3476291.033153091, -7950656.589750505, 6016638.684900147): (2094107.737736, -4802288.995187, 3634088.113927, 4183204.082504) 55\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 379 _plumbTo5(0.0, 3559646.7792214956, 0.0): (0.0, 6378388.0, 0.0, -2818741.220779) None\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 380 _plumbTo5(3095613.853824863, 3997508.4430838083, 2736568.083855892): (3432883.607156, 4429795.814097, 3032505.56924, -623058.78768) 56\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 381 _plumbTo5(2835926.5021857405, -9045140.68774168, 2002398.4306926245): (1862547.444274, -5954303.424435, 1318144.053108, 3311939.889531) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 382 _plumbTo5(2312432.2162906793, -9929107.155342186, -9788039.941453634): (1039780.026627, -4481180.685756, -4417461.370345, 7755169.927366) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 383 _plumbTo5(2677701.474612112, 3278501.0486438787, -12067198.879795307): (1331054.876184, 1635234.070052, -6018749.836018, 6410734.6895) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 384 _plumbTo5(-9173069.786116466, 2033137.2534150574, 1300061.1115269251): (-6148182.751552, 1365722.936214, 873286.091431, 3126902.678444) 51\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 385 _plumbTo5(-11242456.19353453, 1362723.5105300057, 4101669.110195199): (-5933679.471218, 721525.172334, 2171700.219653, 5684982.455098) 51\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 386 _plumbTo5(-12251486.837373294, 1314865.8046799877, -10257127.474041311): (-4856380.179641, 523324.665104, -4082345.783758, 9666543.786563) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 387 _plumbTo5(-6729347.354649825, -12449399.222153336, -6859252.117053115): (-2718698.294944, -5049868.071154, -2782292.201528, 9352003.490564) 54\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 388 _plumbTo5(-11135625.716704542, -8627513.879856825, -8846859.068641137): (-4253677.71168, -3309357.919956, -3393448.844403, 10265655.080486) 53\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 389 _plumbTo5(-7911438.471988227, 3565866.392270913, 697649.5073143232): (-5778364.042342, 2609170.203206, 510472.179023, 2345273.858808) 52\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 390 _plumbTo5(1149029.6659410016, -7426070.196785206, 1807972.6442612736): (947089.604808, -6128191.102689, 1491981.502415, 1350970.145084) 56\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 391 _plumbTo5(3455972.2292246306, 4869644.106263283, 0.0): (3688469.895537, 5194895.921711, 0.0, -399804.837755) 56\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 392 _plumbTo5(-12623751.72037495, -8608825.23727696, 3430978.0105257914): (-5123195.52213, -3507798.019804, 1397986.486447, 9295798.862573) 52\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 393 _plumbTo5(0.0, 4168993.1829979364, 3993212.66081889): (0.0, 4606235.374963, 4412029.224784, -605465.150678) 52\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n\n    test 394 _plumbTo5: (0.545455, 1.090909, 0.818182, 3.916483)\n    test 395 _plumbTo5: None\n    test 396 _plumbTo5: 0\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n\n    test 397 _plumbTo5: (1.090909, 0.545455, 0.818182, 3.916483)\n    test 398 _plumbTo5: None\n    test 399 _plumbTo5: 0\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n\n    test 400 _plumbTo5: (0.742781, 1.114172, 1.485563, 3.385165)\n    test 401 _plumbTo5: None\n    test 402 _plumbTo5: 0\n# lazily imported pygeodesy.Triaxial from .triaxials.triaxial5 by ellipsoids.py line 1905\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n\n    test 403 toTriaxial: name='WGS84', a=6378137, b=6378137, c=6356752.314245179, e2ab=0, e2bc=0.00669438, e2ac=0.00669438\n    test 404 toEllipsoid: name='_', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518\n    test 405 toEllipsoid: name='', a=2, f=-0.5, f_=-2, b=3\n\n    test 406 Triaxials: 14\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 407 Amalthea: name='Amalthea', a=125000, b=73000, c=64000, e2ab=0.658944, e2bc=0.231375493, e2ac=0.737856\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 408 Ariel: name='Ariel', a=581100, b=577900, c=577700, e2ab=0.01098327, e2bc=0.000692042, e2ac=0.011667711\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 409 Earth: name='Earth', a=6378173.435, b=6378103.9, c=6356754.399999999, e2ab=0.000021804, e2bc=0.006683418, e2ac=0.006705077\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 410 Enceladus: name='Enceladus', a=256600, b=251400, c=248300, e2ab=0.040119337, e2bc=0.024509841, e2ac=0.06364586\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 411 Europa: name='Europa', a=1564130, b=1561230, c=1560930, e2ab=0.003704694, e2bc=0.000384275, e2ac=0.004087546\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 412 Io: name='Io', a=1829400, b=1819300, c=1815700, e2ab=0.011011391, e2bc=0.003953651, e2ac=0.014921506\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 413 Mars: name='Mars', a=3394600, b=3393300, c=3376300, e2ab=0.000765776, e2bc=0.009994646, e2ac=0.010752768\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 414 Mimas: name='Mimas', a=207400, b=196800, c=190600, e2ab=0.09960581, e2bc=0.062015624, e2ac=0.155444317\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 415 Miranda: name='Miranda', a=240400, b=234200, c=232900, e2ab=0.050915557, e2bc=0.011070811, e2ac=0.061422691\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 416 Moon: name='Moon', a=1735550, b=1735324, c=1734898, e2ab=0.000260419, e2bc=0.000490914, e2ac=0.000751206\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 417 Tethys: name='Tethys', a=535600, b=528200, c=525800, e2ab=0.027441672, e2bc=0.009066821, e2ac=0.036259685\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 418 WGS84_3: name='WGS84_3', a=6378171.36, b=6378101.609999999, c=6356751.84, e2ab=0.000021871, e2bc=0.006683505, e2ac=0.00670523\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 419 WGS84_35: name='WGS84_35', a=6378172, b=6378102, c=6356752.314245179, e2ab=0.00002195, e2bc=0.006683478, e2ac=0.006705281\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 420 WGS84_3r: name='WGS84_3r', a=6378172, b=6378102, c=6356752, e2ab=0.00002195, e2bc=0.006683577, e2ac=0.00670538\n\n    testTriaxial3(pygeodesy.triaxials.triaxial3, 26.02.20)\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 421 Triaxial3: Triaxial3(name='', a=3, b=2, c=1, k2=0.375, kp2=0.625, volume=25.132741229, area=48.882146303, R2=1.972287405)\n    test 422 reverseLatLon: (Degrees(58.69140449), Degrees(75.11263103), None, 2.586065, 'ELLIPSOIDAL')\n    test 423 forwardLatLon: (1.0, 2.0, 3.0, 2.586065, 'ELLIPSOIDAL')\n\n    test 424 ELLIPSOIDAL: (58.691404, 75.112631, None, 2.586065, 'ELLIPSOIDAL')\n    test 425 ELLIPSOIDAL: (1.0, 2.0, 3.0, 2.586065, 'ELLIPSOIDAL')\n\n    test 426 GEOCENTRIC: (29.12663, 56.916602, None, 2.391078, 'GEOCENTRIC')\n    test 427 GEOCENTRIC: (1.0, 2.0, 3.0, 2.391078, 'GEOCENTRIC')\n\n    test 428 GEOCENTRIC_X: (28.478775, 123.624552, None, 2.391078, 'GEOCENTRIC_X')\n    test 429 GEOCENTRIC_X: (1.0, 2.0, 3.0, 2.391078, 'GEOCENTRIC_X')\n\n    test 430 GEODETIC: (68.626017, 73.851827, None, 2.391078, 'GEODETIC')\n    test 431 GEODETIC: (1.0, 2.0, 3.0, 2.391078, 'GEODETIC')\n\n    test 432 GEODETIC_X: (5.817652, 159.397221, None, 2.391078, 'GEODETIC_X')\n    test 433 GEODETIC_X: (1.0, 2.0, 3.0, 2.391078, 'GEODETIC_X')\n\n    test 434 PARAMETRIC: (50.658091, 66.523762, None, 2.391078, 'PARAMETRIC')\n    test 435 PARAMETRIC: (1.0, 2.0, 3.0, 2.391078, 'PARAMETRIC')\n\n    test 436 PARAMETRIC_X: (14.628136, 143.06191, None, 2.391078, 'PARAMETRIC_X')\n    test 437 PARAMETRIC_X: (1.0, 2.0, 3.0, 2.391078, 'PARAMETRIC_X')\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n\n    test 438 Triaxial3: Triaxial3(name='Bektas', a=6378388, b=6378318, c=6356911.9461, k2=0.996735077, kp2=0.003264923, volume=1083307891664673177600, area=510097198412933.0625, R2=6371204.383189477)\n    test 439 forwardBetOmg: (4234607.381429, 3551286.590486, 3176009.080037, 1200.0, 'ELLIPSOIDAL')\n    test 440 forwardBetOmg: (4233813.533025, 3550620.827453, 3175409.655093, 0, 'ELLIPSOIDAL')\n    test 441 length: 1196.973671\n    test 442 reverseBetOmg: (Degrees(30.0), Degrees(40.0), None, 1200.0, 'ELLIPSOIDAL')\n    test 443 reverseBetOmg: (Degrees(30.0), Degrees(40.0), None, 0.0, 'ELLIPSOIDAL')\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n\n    test 444 forwardCartesian: (4233813.533151, 3550620.827558, 3175409.654809, 1196.973671, 'ELLIPSOIDAL')\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n    test 445 forwardCartesian: (4239665.951888, 3553574.566129, 3164352.410834, 12911.309173, 'ELLIPSOIDAL')\n\n    test 446 reverseCartesian: (4234607.381429, 3551286.590486, 3176009.080037, 1196.973671, 'ELLIPSOIDAL')\n    test 447 reverseCartesian: (4248255.186992, 3560773.833183, 3170763.143924, 12911.309173, 'ELLIPSOIDAL')  FAILED, KNOWN, expected (4234607.381429, 3551286.590486, 3176009.080037, 1200.0, 'ELLIPSOIDAL')\n\n    test 448 forwardBetaOmega_: (4233813.533025, 3550620.827453, 3175409.655093, 0, 'ELLIPSOIDAL')\n    test 449 reverseLatLon: (Degrees(30.0), Degrees(40.0), None, -0.0, 'ELLIPSOIDAL')\n    test 450 forwardLatLon: (4233813.533025, 3550620.827453, 3175409.655093, 0, 'ELLIPSOIDAL')\n\n    test 451 reverseBetOmg: (Degrees(29.94812666), Degrees(40.01497072), None, 1203.037176, 'ELLIPSOIDAL')\n    test 452 reverseBetOmg: (29°56′53.26″, 40°00′53.89″, None, 1203.037176, 'ELLIPSOIDAL')\n    test 453 reverseBetOmg: (Degrees(29.97539672), Degrees(40.03311872), None, 1387.637345, 'ELLIPSOIDAL')\n    test 454 reverseBetOmg: (29°58′31.43″, 40°01′59.23″, None, 1387.637345, 'ELLIPSOIDAL')\n# lazily imported pygeodesy.height4 from .triaxials.triaxial5 by bases.py line 418\n\n    test 455 height4: (3909251.554667, 3909165.750567, 3170432.501602, 999.999996)\n    test 456 height4: (3909251.554667, 3909165.750567, 3170432.501602, 0, None)\n    test 457 height4: (3909251.554667, 3909165.750567, 3170432.501602, 0, None)\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n\n    test 458 JFK-SIN: Triaxial3(name='WGS84_35', a=6378172, b=6378102, c=6356752.314245179, k2=0.996726499, kp2=0.003273501, volume=1083207319768789942272, area=510065621722018.25, R2=6371007.180905545)\n    test 459 JFK-SIN: -54.34889\n    test 460 JFK-SIN: (2824949.36608, -3938333.736799, 4132149.896611, 0, 'GEODETIC')\n    test 461 JFK-SIN: (40°38′23.0″, 54°20′56.0″, None, 0.0, 'GEODETIC')\n    test 462 JFK-SIN: (Degrees(40.57193395), Degrees(-54.38110954), None, 0, 'ELLIPSOIDAL')\n\n    test 463 JFK-SIN: 123.42\n    test 464 JFK-SIN: (-3511912.82574, 5322047.492059, 150275.382099, 0, 'GEODETIC')\n    test 465 JFK-SIN: (1°21′33.0″, 123°25′10.0″, None, -0.0, 'GEODETIC')\n    test 466 JFK-SIN: (1.355287, 123.419709, None, 0, 'ELLIPSOIDAL')\n    test 467 JFK-SIN: (2507237.249613, -4147833.171672, 4132151.785141, 0, 'GEODETIC_LON0')\n    test 468 JFK-SIN: (Degrees(40.56616585), Degrees(-58.87899203), None, 0, 'ELLIPSOIDAL')\n    test 469 JFK-SIN: (-3083516.921703, 5581181.10656, 150275.496647, 0, 'GEODETIC_LON0')\n    test 470 JFK-SIN: (Degrees(1.35513418), Degrees(118.9196884), None, 0.0, 'ELLIPSOIDAL')\n\n    test 471 ELLIPSOIDAL: (3339312.988437, 4478220.864583, 3067838.142785, 0, 'ELLIPSOIDAL')\n    test 472 ELLIPSOIDAL: (0.44727, 0.46133, -0.76624)\n    test 473 ELLIPSOIDAL: (Radians(6.78714104), Radians(7.21349568), Radians(3.22695739), 0, 'ELLIPSOIDAL')\n    test 474 ELLIPSOIDAL: (3339312.988437, 4478220.864583, 3067838.142785, 0, 'ELLIPSOIDAL')\n    test 475 ELLIPSOIDAL: (0.35577, 0.33613, -0.87203)  FAILED, KNOWN, expected (0.44727, 0.46133, -0.76624)\n\n    test 476 GEOCENTRIC: (3775053.602526, 4836453.809766, 1737203.829149, 0, 'GEOCENTRIC')\n    test 477 GEOCENTRIC: (0.06074, 0.18165, -0.98149)\n    test 478 GEOCENTRIC: (Radians(6.55911022), Radians(7.19121867), Radians(9.36055352), -0.0, 'GEOCENTRIC')\n    test 479 GEOCENTRIC: (3775053.602526, 4836453.809766, 1737203.829149, 0, 'GEOCENTRIC')\n    test 480 GEOCENTRIC: (0.11773, 0.25514, -0.95971)  FAILED, KNOWN, expected (0.06074, 0.18165, -0.98149)\n\n    test 481 GEOCENTRIC_X: (5353065.611375, 2253062.100284, 2627312.107704, 0, 'GEOCENTRIC_X')\n    test 482 GEOCENTRIC_X: (0.37533, 0.39753, -0.83732)\n    test 483 GEOCENTRIC_X: (Radians(7.28002857), Radians(8.7159147), Radians(4.84070319), 0.0, 'GEOCENTRIC_X')\n    test 484 GEOCENTRIC_X: (5353065.611375, 2253062.100284, 2627312.107704, 0, 'GEOCENTRIC_X')\n    test 485 GEOCENTRIC_X: (0.07117, 0.68362, -0.72636)  FAILED, KNOWN, expected (0.37533, 0.39753, -0.83732)\n\n    test 486 GEODETIC: (4614879.82592, 981039.629187, 4277613.939628, 0, 'GEODETIC')\n    test 487 GEODETIC: (0.24631, 0.35287, -0.90267)\n    test 488 GEODETIC: (Radians(7.02301499), Radians(6.49265346), Radians(9.10148726), -0.0, 'GEODETIC')\n    test 489 GEODETIC: (4614879.82592, 981039.629187, 4277613.939628, 0, 'GEODETIC')\n    test 490 GEODETIC: (0.55921, 0.44366, -0.70032)  FAILED, KNOWN, expected (0.24631, 0.35287, -0.90267)\n\n    test 491 GEODETIC_LON0: (1527233.792948, 1162869.651044, 6062035.023615, 0, 'GEODETIC_LON0')\n    test 492 GEODETIC_LON0: (0.24352, 0.24941, -0.93728)\n    test 493 GEODETIC_LON0: (Radians(7.54924666), Radians(6.67338953), Radians(9.34132632), -0.0, 'GEODETIC_LON0')\n    test 494 GEODETIC_LON0: (1527233.792948, 1162869.651044, 6062035.023615, 0, 'GEODETIC_LON0')\n    test 495 GEODETIC_LON0: (0.70582, 0.6422, -0.299)  FAILED, KNOWN, expected (0.24352, 0.24941, -0.93728)\n\n    test 496 GEODETIC_X: (5508220.332714, 315937.896032, 3189373.081358, 0, 'GEODETIC_X')\n    test 497 GEODETIC_X: (0.40682, 0.33156, -0.85121)\n    test 498 GEODETIC_X: (Radians(7.32411007), Radians(9.32669619), Radians(4.54631059), 0, 'GEODETIC_X')\n    test 499 GEODETIC_X: (5508220.332714, 315937.896032, 3189373.081358, 0, 'GEODETIC_X')\n    test 500 GEODETIC_X: (-0.08327, 0.99551, 0.0449)  FAILED, KNOWN, expected (0.40682, 0.33156, -0.85121)\n\n    test 501 GEOGRAPHIC: (3465116.507243, 5223158.607824, 1175894.05015, 0, 'GEODETIC')\n    test 502 GEOGRAPHIC: (0.11315, 0.09188, -0.98932)\n    test 503 GEOGRAPHIC: (Radians(6.46985144), Radians(7.26824437), Radians(3.18515516), -0.0, 'GEODETIC')\n    test 504 GEOGRAPHIC: (3465116.507243, 5223158.607824, 1175894.05015, 0, 'GEODETIC')\n    test 505 GEOGRAPHIC: (0.13879, 0.13043, -0.9817)  FAILED, KNOWN, expected (0.11315, 0.09188, -0.98932)\n\n    test 506 PARAMETRIC: (1264892.90797, 2527765.29909, 5698436.749422, 0, 'PARAMETRIC')\n    test 507 PARAMETRIC: (0.13554, 0.82486, -0.54885)\n    test 508 PARAMETRIC: (Radians(7.39485161), Radians(7.39001874), Radians(9.17168302), -0.0, 'PARAMETRIC')\n    test 509 PARAMETRIC: (1264892.90797, 2527765.29909, 5698436.749422, 0, 'PARAMETRIC')\n    test 510 PARAMETRIC: (0.1647, 0.8887, -0.42789)  FAILED, KNOWN, expected (0.13554, 0.82486, -0.54885)\n\n    test 511 PARAMETRIC_X: (3357601.186402, 4513866.391703, 2995261.616924, 0, 'PARAMETRIC_X')\n    test 512 PARAMETRIC_X: (0.22351, 0.72002, -0.65697)\n    test 513 PARAMETRIC_X: (Radians(6.83757042), Radians(8.44138234), Radians(5.00139262), 0, 'PARAMETRIC_X')\n    test 514 PARAMETRIC_X: (3357601.186402, 4513866.391703, 2995261.616924, 0, 'PARAMETRIC_X')\n    test 515 PARAMETRIC_X: (0.24371, 0.40685, -0.88039)  FAILED, KNOWN, expected (0.22351, 0.72002, -0.65697)\n\n    test 516 PLANETOCENTRIC: (948465.932689, 3598948.847101, 5162255.209493, 0, 'GEOCENTRIC')\n    test 517 PLANETOCENTRIC: (0.1521, 0.65147, -0.74328)\n    test 518 PLANETOCENTRIC: (Radians(7.22932016), Radians(7.59630087), Radians(9.40537788), -0.0, 'GEOCENTRIC')\n    test 519 PLANETOCENTRIC: (948465.932689, 3598948.847101, 5162255.209493, 0, 'GEOCENTRIC')\n    test 520 PLANETOCENTRIC: (0.18839, 0.79097, -0.58213)  FAILED, KNOWN, expected (0.1521, 0.65147, -0.74328)\n\n    test 521 PLANETODETIC: (6109868.111296, 1803588.145775, 311341.87994, 0, 'GEODETIC')\n    test 522 PLANETODETIC: (0.23071, 0.27671, -0.93285)\n    test 523 PLANETODETIC: (Radians(6.33234784), Radians(6.57023183), Radians(9.21647244), 0.0, 'GEODETIC')\n    test 524 PLANETODETIC: (6109868.111296, 1803588.145775, 311341.87994, 0, 'GEODETIC')\n    test 525 PLANETODETIC: (-0.01244, 0.21195, -0.9772)  FAILED, KNOWN, expected (0.23071, 0.27671, -0.93285)\n\n    test 526 Lon0: -14.93\n    test 527 forwardLatLon: (6162853.284268, -1643246.23441, 0.0, 0, 'ELLIPSOIDAL')\n    test 528 reverseLatLon: (Degrees(0.0), Degrees(-14.93), None, 0, 'ELLIPSOIDAL')\n    test 529 reverseLatLon: 1.590277340731758e-15  FAILED, KNOWN, expected 0\n\n    testConformal3(pygeodesy.triaxials.conformal3, 26.02.15)\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 530 Conformal3: name='WGS84_3', a=6378171.36, b=6378101.609999999, c=6356751.84, k2=0.996738165, kp2=0.003261835, xyQ2=xyQ2(x=10026938.243505, y=27096412.501236)\n    test 531 forwardBetOmg: (-5077726.43188, 3922574.86203, 0, 1.19703, 'CONFORMAL')\n    test 532 reverseBetOmg: (Degrees(33.3), Degrees(44.4), None, 1.197032, 'CONFORMAL')\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n\n    test 533 Conformal3: name='WGS84_3r', a=6378172, b=6378102, c=6356752, k2=0.996726547, kp2=0.003273453, xyQ2=xyQ2(x=10026968.259439, y=27085126.866409)\n    test 534 forwardBetOmg: (-5077732.396, 3922571.859, 0, 1.197, 'CONFORMAL')\n    test 535 reverseBetOmg: (Degrees(33.3), Degrees(44.4), None, 1.197034, 'CONFORMAL')\n    test 536 forwardOther: (33.299887, 44.399927, 0.000263, 1.000046, 'CONFORMAL')\n    test 537 reverseOther: (Degrees(33.3), Degrees(44.4), Degrees(0.00026262), 0.999954, 'CONFORMAL')\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n\n    test 538 Conformal3: name='WGS84+/-35', a=6378172, b=6378102, c=6356752.314245179, k2=0.996726499, kp2=0.003273501, xyQ2=xyQ2(x=10026968.379966, y=27085080.683786)\n    test 539 forwardBetOmg: (-5077732.419, 3922572.019, 0, 1.197, 'CONFORMAL')\n    test 540 reverseBetOmg: (Degrees(33.3), Degrees(44.4), None, 1.197034, 'CONFORMAL')\n\n    2 tests skipped (2): triaxum5\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n\n    test 541 Amalthea: name='Amalthea', a=125000, b=73000, c=64000, e2ab=0.658944, e2bc=0.231375493, e2ac=0.737856\n    test 542 Amalthea.area    : 93239507787.49036\n    test 543 Amalthea.areaKT  : 93212299402.67043\n    test 544 Amalthea.areaRG  : 93239507787.49036\n    test 545 Amalthea.area21k : 93239507787.49039  FAILED, KNOWN, expected 93239507787.49036\n    test 546 Amalthea.ellipse5: Ellipse5Tuple(a=111264.228133, b=64978.30923, height=29167.24982, lat=45.0, beta=27.112446)\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by namedTuples.py line 236\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 547 Amalthea.toTriaxial_: name='NN', a=111264.22813306, b=64978.309229707, c=29167.249819713, e2ab=0.658944, e2bc=0.798509697, e2ac=0.931280523\n# lazily imported pygeodesy.Triaxial from .triaxials.triaxial5 by namedTuples.py line 227\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 548 Amalthea.toTriaxial : name='NN', a=111264.22813306, b=64978.309229707, c=29167.249819713, e2ab=0.658944, e2bc=0.798509697, e2ac=0.931280523\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n\n    test 549 Ariel: name='Ariel', a=581100, b=577900, c=577700, e2ab=0.01098327, e2bc=0.000692042, e2ac=0.011667711\n    test 550 Ariel.area    : 4211301462766.58\n    test 551 Ariel.areaKT  : 4211301574065.8296\n    test 552 Ariel.areaRG  : 4211301462766.58\n    test 553 Ariel.area21k : 4211301462766.58\n    test 554 Ariel.ellipse5: Ellipse5Tuple(a=412103.585219, b=409834.214245, height=407295.279804, lat=45.0, beta=44.831891)\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by namedTuples.py line 236\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 555 Ariel.toTriaxial_: name='NN', a=412103.585218864, b=409834.214245365, c=407295.279803537, e2ab=0.01098327, e2bc=0.012351678, e2ac=0.023199286\n# lazily imported pygeodesy.Triaxial from .triaxials.triaxial5 by namedTuples.py line 227\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 556 Ariel.toTriaxial : name='NN', a=412103.585218864, b=409834.214245365, c=407295.279803537, e2ab=0.01098327, e2bc=0.012351678, e2ac=0.023199286\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n\n    test 557 Earth: name='Earth', a=6378173.435, b=6378103.9, c=6356754.399999999, e2ab=0.000021804, e2bc=0.006683418, e2ac=0.006705077\n    test 558 Earth.area    : 510065911057440.94\n    test 559 Earth.areaKT  : 510065915922713.7\n    test 560 Earth.areaRG  : 510065911057440.94\n    test 561 Earth.area21k : 510065911057441.06  FAILED, KNOWN, expected 510065911057440.94\n    test 562 Earth.ellipse5: Ellipse5Tuple(a=4517628.806864, b=4517579.555566, height=4487337.759918, lat=45.0, beta=44.903634)\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by namedTuples.py line 236\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 563 Earth.toTriaxial_: name='NN', a=4517628.806863861, b=4517579.55556609, c=4487337.759917997, e2ab=0.000021804, e2bc=0.013343682, e2ac=0.013365195\n# lazily imported pygeodesy.Triaxial from .triaxials.triaxial5 by namedTuples.py line 227\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 564 Earth.toTriaxial : name='NN', a=4517628.806863861, b=4517579.55556609, c=4487337.759917997, e2ab=0.000021804, e2bc=0.013343682, e2ac=0.013365195\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n\n    test 565 Enceladus: name='Enceladus', a=256600, b=251400, c=248300, e2ab=0.040119337, e2bc=0.024509841, e2ac=0.06364586\n    test 566 Enceladus.area    : 798618496278.5967\n    test 567 Enceladus.areaKT  : 798619018175.11\n    test 568 Enceladus.areaRG  : 798618496278.5967\n    test 569 Enceladus.area21k : 798618496278.5966  FAILED, KNOWN, expected 798618496278.5967\n    test 570 Enceladus.ellipse5: Ellipse5Tuple(a=184401.418634, b=180664.523167, height=172665.031764, lat=45.0, beta=44.058205)\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by namedTuples.py line 236\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 571 Enceladus.toTriaxial_: name='NN', a=184401.418633881, b=180664.523166631, c=172665.031764361, e2ab=0.040119337, e2bc=0.086595751, e2ac=0.123240924\n# lazily imported pygeodesy.Triaxial from .triaxials.triaxial5 by namedTuples.py line 227\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 572 Enceladus.toTriaxial : name='NN', a=184401.418633881, b=180664.523166631, c=172665.031764361, e2ab=0.040119337, e2bc=0.086595751, e2ac=0.123240924\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n\n    test 573 Europa: name='Europa', a=1564130, b=1561230, c=1560930, e2ab=0.003704694, e2bc=0.000384275, e2ac=0.004087546\n    test 574 Europa.area    : 30663773697323.52\n    test 575 Europa.areaKT  : 30663773794562.457\n    test 576 Europa.areaRG  : 30663773697323.52\n    test 577 Europa.area21k : 30663773697323.52\n    test 578 Europa.ellipse5: Ellipse5Tuple(a=1107138.878572, b=1105086.170198, height=1102613.397545, lat=45.0, beta=44.94133)\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by namedTuples.py line 236\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 579 Europa.toTriaxial_: name='NN', a=1107138.878571533, b=1105086.170198279, c=1102613.397544503, e2ab=0.003704694, e2bc=0.004470251, e2ac=0.008158384\n# lazily imported pygeodesy.Triaxial from .triaxials.triaxial5 by namedTuples.py line 227\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 580 Europa.toTriaxial : name='NN', a=1107138.878571533, b=1105086.170198279, c=1102613.397544503, e2ab=0.003704694, e2bc=0.004470251, e2ac=0.008158384\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n\n    test 581 Io: name='Io', a=1829400, b=1819300, c=1815700, e2ab=0.011011391, e2bc=0.003953651, e2ac=0.014921506\n    test 582 Io.area    : 41691875849096.734\n    test 583 Io.areaKT  : 41691877397441.21\n    test 584 Io.areaRG  : 41691875849096.734\n    test 585 Io.area21k : 41691875849096.734\n    test 586 Io.ellipse5: Ellipse5Tuple(a=1298433.860916, b=1291265.290896, height=1279059.271955, lat=45.0, beta=44.784657)\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by namedTuples.py line 236\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 587 Io.toTriaxial_: name='NN', a=1298433.860916433, b=1291265.290896068, c=1279059.271955118, e2ab=0.011011391, e2bc=0.018816162, e2ac=0.029620361\n# lazily imported pygeodesy.Triaxial from .triaxials.triaxial5 by namedTuples.py line 227\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 588 Io.toTriaxial : name='NN', a=1298433.860916433, b=1291265.290896068, c=1279059.271955118, e2ab=0.011011391, e2bc=0.018816162, e2ac=0.029620361\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n\n    test 589 Mars: name='Mars', a=3394600, b=3393300, c=3376300, e2ab=0.000765776, e2bc=0.009994646, e2ac=0.010752768\n    test 590 Mars.area    : 144249140795107.44\n    test 591 Mars.areaKT  : 144249144150662.16\n    test 592 Mars.areaRG  : 144249140795107.44\n    test 593 Mars.area21k : 144249140795107.44\n    test 594 Mars.ellipse5: Ellipse5Tuple(a=2406823.402595, b=2405901.68268, height=2380943.388927, lat=45.0, beta=44.845145)\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by namedTuples.py line 236\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 595 Mars.toTriaxial_: name='NN', a=2406823.402594559, b=2405901.682679585, c=2380943.38892735, e2ab=0.000765776, e2bc=0.020639944, e2ac=0.021389914\n# lazily imported pygeodesy.Triaxial from .triaxials.triaxial5 by namedTuples.py line 227\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 596 Mars.toTriaxial : name='NN', a=2406823.402594559, b=2405901.682679585, c=2380943.38892735, e2ab=0.000765776, e2bc=0.020639944, e2ac=0.021389914\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n\n    test 597 Mimas: name='Mimas', a=207400, b=196800, c=190600, e2ab=0.09960581, e2bc=0.062015624, e2ac=0.155444317\n    test 598 Mimas.area    : 493855762247.69183\n    test 599 Mimas.areaKT  : 493857714107.9375\n    test 600 Mimas.areaRG  : 493855762247.69183\n    test 601 Mimas.area21k : 493855762247.69183\n    test 602 Mimas.ellipse5: Ellipse5Tuple(a=152708.378956, b=144903.611276, height=128970.72925, lat=45.0, beta=42.58292)\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by namedTuples.py line 236\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 603 Mimas.toTriaxial_: name='NN', a=152708.378956057, b=144903.611275565, c=128970.729250426, e2ab=0.09960581, e2bc=0.207819965, e2ac=0.286725699\n# lazily imported pygeodesy.Triaxial from .triaxials.triaxial5 by namedTuples.py line 227\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 604 Mimas.toTriaxial : name='NN', a=152708.378956057, b=144903.611275565, c=128970.729250426, e2ab=0.09960581, e2bc=0.207819965, e2ac=0.286725699\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n\n    test 605 Miranda: name='Miranda', a=240400, b=234200, c=232900, e2ab=0.050915557, e2bc=0.011070811, e2ac=0.061422691\n    test 606 Miranda.area    : 698880863325.7571\n    test 607 Miranda.areaKT  : 698881306767.9503\n    test 608 Miranda.areaRG  : 698880863325.7571\n    test 609 Miranda.area21k : 698880863325.7571\n    test 610 Miranda.ellipse5: Ellipse5Tuple(a=172660.462873, b=168207.489205, height=162055.192572, lat=45.0, beta=44.092156)\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by namedTuples.py line 236\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 611 Miranda.toTriaxial_: name='NN', a=172660.462873061, b=168207.489204954, c=162055.192571975, e2ab=0.050915557, e2bc=0.071813503, e2ac=0.119072635\n# lazily imported pygeodesy.Triaxial from .triaxials.triaxial5 by namedTuples.py line 227\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 612 Miranda.toTriaxial : name='NN', a=172660.462873061, b=168207.489204954, c=162055.192571975, e2ab=0.050915557, e2bc=0.071813503, e2ac=0.119072635\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n\n    test 613 Moon: name='Moon', a=1735550, b=1735324, c=1734898, e2ab=0.000260419, e2bc=0.000490914, e2ac=0.000751206\n    test 614 Moon.area    : 37838824729886.09\n    test 615 Moon.areaKT  : 37838824733332.22\n    test 616 Moon.areaRG  : 37838824729886.09\n    test 617 Moon.area21k : 37838824729886.086  FAILED, KNOWN, expected 37838824729886.09\n    test 618 Moon.ellipse5: Ellipse5Tuple(a=1227449.712545, b=1227289.876392, height=1226527.645318, lat=45.0, beta=44.989236)\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by namedTuples.py line 236\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 619 Moon.toTriaxial_: name='NN', a=1227449.71254467, b=1227289.876391845, c=1226527.645318275, e2ab=0.000260419, e2bc=0.001241751, e2ac=0.001501847\n# lazily imported pygeodesy.Triaxial from .triaxials.triaxial5 by namedTuples.py line 227\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 620 Moon.toTriaxial : name='NN', a=1227449.71254467, b=1227289.876391845, c=1226527.645318275, e2ab=0.000260419, e2bc=0.001241751, e2ac=0.001501847\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n\n    test 621 Tethys: name='Tethys', a=535600, b=528200, c=525800, e2ab=0.027441672, e2bc=0.009066821, e2ac=0.036259685\n    test 622 Tethys.area    : 3528073490771.3936\n    test 623 Tethys.areaKT  : 3528074261832.739\n    test 624 Tethys.areaRG  : 3528073490771.3936\n    test 625 Tethys.area21k : 3528073490771.394  FAILED, KNOWN, expected 3528073490771.3936\n    test 626 Tethys.ellipse5: Ellipse5Tuple(a=382206.915043, b=376926.236979, height=368348.212846, lat=45.0, beta=44.470998)\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by namedTuples.py line 236\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 627 Tethys.toTriaxial_: name='NN', a=382206.915042949, b=376926.236978502, c=368348.212845736, e2ab=0.027441672, e2bc=0.044997746, e2ac=0.071204605\n# lazily imported pygeodesy.Triaxial from .triaxials.triaxial5 by namedTuples.py line 227\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 628 Tethys.toTriaxial : name='NN', a=382206.915042949, b=376926.236978502, c=368348.212845736, e2ab=0.027441672, e2bc=0.044997746, e2ac=0.071204605\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n\n    test 629 WGS84_3: name='WGS84_3', a=6378171.36, b=6378101.609999999, c=6356751.84, e2ab=0.000021871, e2bc=0.006683505, e2ac=0.00670523\n    test 630 WGS84_3.area    : 510065541435967.5\n    test 631 WGS84_3.areaKT  : 510065546301413.56\n    test 632 WGS84_3.areaRG  : 510065541435967.5\n    test 633 WGS84_3.area21k : 510065541435967.4  FAILED, KNOWN, expected 510065541435967.5\n    test 634 WGS84_3.ellipse5: Ellipse5Tuple(a=4517627.51138, b=4517578.107797, height=4487335.778543, lat=45.0, beta=44.903631)\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by namedTuples.py line 236\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 635 WGS84_3.toTriaxial_: name='NN', a=4517627.51137994, b=4517578.107796822, c=4487335.778543438, e2ab=0.000021871, e2bc=0.013343921, e2ac=0.0133655\n# lazily imported pygeodesy.Triaxial from .triaxials.triaxial5 by namedTuples.py line 227\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 636 WGS84_3.toTriaxial : name='NN', a=4517627.51137994, b=4517578.107796822, c=4487335.778543438, e2ab=0.000021871, e2bc=0.013343921, e2ac=0.0133655\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n\n    test 637 WGS84_35: name='WGS84_35', a=6378172, b=6378102, c=6356752.314245179, e2ab=0.00002195, e2bc=0.006683478, e2ac=0.006705281\n    test 638 WGS84_35.area    : 510065621722018.25\n    test 639 WGS84_35.areaKT  : 510065626587483.3\n    test 640 WGS84_35.areaRG  : 510065621722018.25\n    test 641 WGS84_35.area21k : 510065621722018.25\n    test 642 WGS84_35.ellipse5: Ellipse5Tuple(a=4517628.022629, b=4517578.441971, height=4487336.055381, lat=45.0, beta=44.903631)\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by namedTuples.py line 236\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 643 WGS84_35.toTriaxial_: name='NN', a=4517628.022628974, b=4517578.441971447, c=4487336.055380745, e2ab=0.00002195, e2bc=0.013343945, e2ac=0.013365602\n# lazily imported pygeodesy.Triaxial from .triaxials.triaxial5 by namedTuples.py line 227\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 644 WGS84_35.toTriaxial : name='NN', a=4517628.022628974, b=4517578.441971447, c=4487336.055380745, e2ab=0.00002195, e2bc=0.013343945, e2ac=0.013365602\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n\n    test 645 WGS84_3r: name='WGS84_3r', a=6378172, b=6378102, c=6356752, e2ab=0.00002195, e2bc=0.006683577, e2ac=0.00670538\n    test 646 WGS84_3r.area    : 510065604942135.9\n    test 647 WGS84_3r.areaKT  : 510065609807745.0\n    test 648 WGS84_3r.areaRG  : 510065604942135.9\n    test 649 WGS84_3r.area21k : 510065604942135.94  FAILED, KNOWN, expected 510065604942135.9\n    test 650 WGS84_3r.ellipse5: Ellipse5Tuple(a=4517628.133918, b=4517578.553259, height=4487335.722261, lat=45.0, beta=44.903629)\n# lazily imported pygeodesy.Triaxial_ from .triaxials.triaxial5 by namedTuples.py line 236\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 651 WGS84_3r.toTriaxial_: name='NN', a=4517628.133917508, b=4517578.553258759, c=4487335.722261372, e2ab=0.00002195, e2bc=0.01334414, e2ac=0.013365797\n# lazily imported pygeodesy.Triaxial from .triaxials.triaxial5 by namedTuples.py line 227\n# lazily imported pygeodesy.Triaxial3B from .triaxials.triaxial3 by bases.py line 708\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by bases.py line 713\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by bases.py line 718\n# lazily imported pygeodesy.Conformal3 from .triaxials.conformal3 by bases.py line 718\n    test 652 WGS84_3r.toTriaxial : name='NN', a=4517628.133917508, b=4517578.553258759, c=4487335.722261372, e2ab=0.00002195, e2bc=0.01334414, e2ac=0.013365797\n\n    39 of 652 testTriaxials.py tests (6.0%) FAILED, incl. 37 KNOWN plus 2 DeprecationWarnings, 2 skipped (pygeodesy 26.3.26 Python 3.14.3 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 238.137 ms\nrunning /Library/Framewo....n3.14 -W default ~/PyGeodesy/test/testUnits.py\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.Azimuth from .units by testUnits.py line 11\n# lazily imported pygeodesy.Band from .units by testUnits.py line 11\n# lazily imported pygeodesy.Bearing from .units by testUnits.py line 11\n# lazily imported pygeodesy.Bearing_ from .units by testUnits.py line 11\n# lazily imported pygeodesy.Bool from .units by testUnits.py line 11\n# lazily imported pygeodesy.Epoch from .units by testUnits.py line 11\n# lazily imported pygeodesy.Epsg from .epsg by testUnits.py line 11\n# lazily imported pygeodesy.FIx from .units by testUnits.py line 11\n# lazily imported pygeodesy.Garef from .gars by testUnits.py line 11\n# lazily imported pygeodesy.Geohash from .geohash by testUnits.py line 11\n# lazily imported pygeodesy.Georef from .wgrs by testUnits.py line 11\n# lazily imported pygeodesy.Int from .unitsBase by testUnits.py line 11\n# lazily imported pygeodesy.Int_ from .units by testUnits.py line 11\n# lazily imported pygeodesy.Number_ from .units by testUnits.py line 11\n# lazily imported pygeodesy.Precision_ from .units by testUnits.py line 11\n# lazily imported pygeodesy.Lamd from .units by testUnits.py line 11\n# lazily imported pygeodesy.Phid from .units by testUnits.py line 11\n# lazily imported pygeodesy.Str from .unitsBase by testUnits.py line 11\n# lazily imported pygeodesy.Zone from .units by testUnits.py line 11\n# lazily imported pygeodesy.Float from .unitsBase by testUnits.py line 11\n\n    testing testUnits.py 24.07.25 isLazy=3\n# lazily imported pygeodesy.albers by bases.py line 199\n# lazily imported pygeodesy.angles by bases.py line 199\n\n    testing Lambertian(1.0,) (pygeodesy.units, 26.03.12)\n    test 1 .classname: Lambertian\n    test 2 isinstance: True\n    test 3 .name: lambertian\n    test 4 .named: lambertian\n    test 5 .named2: Lambertian 'lambertian'\n    test 6 .str: 1.0\n    test 7 .toStr: 1.0\n    test 8 .std_repr: True\n    test 9 .repr: 1.0\n    test 10 .toRepr: lambertian (1.0)\n    test 11 .units: lambertian\n# imported pygeodesy.basics into errors.py line 531\n    test 12 lambertian: psi ('X'): strRad ('X') or suffix ('NSEW'): could not convert string to float: 'X'\n    test 13 lambertian: U ('X'): strRad ('X') or suffix ('NSEW'): could not convert string to float: 'X'\n    test 14 lambertian: TypeError\n    test 15 lambertian: psi ('X'): strRad ('X') or suffix ('NSEW'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 16 .named: Test\n    test 17 .named2: Lambertian 'Test'\n    test 18 .str: 1.0\n    test 19 .toStr: 1.0\n    test 20 .repr: 1.0\n    test 21 .toRepr: Test (1.0)\n    test 22 .units: lambertian\n    test 23 .name: Test\n    test 24 ._name: Test\n    test 25 .str: 1.0\n    test 26 .repr: 1.0\n    test 27 delattr: ''\n# lazily imported pygeodesy.azimuthal by bases.py line 199\n# lazily imported pygeodesy.booleans by bases.py line 199\n# lazily imported pygeodesy.clipy by bases.py line 199\n# lazily imported pygeodesy.css by bases.py line 199\n# lazily imported pygeodesy.ecef by bases.py line 199\n# lazily imported pygeodesy.elevations by bases.py line 199\n# lazily imported pygeodesy.ellipses by bases.py line 199\n# lazily imported pygeodesy.ellipsoidalBaseDI by bases.py line 199\n# lazily imported pygeodesy.ellipsoidalExact by bases.py line 199\n# lazily imported pygeodesy.ellipsoidalGeodSolve by bases.py line 199\n# lazily imported pygeodesy.ellipsoidalKarney by bases.py line 199\n# lazily imported pygeodesy.ellipsoidalNvector by bases.py line 199\n# lazily imported pygeodesy.ellipsoidalVincenty by bases.py line 199\n# lazily imported pygeodesy.elliptic by bases.py line 199\n# lazily imported pygeodesy.etm by bases.py line 199\n# lazily imported pygeodesy.frechet by bases.py line 199\n# lazily imported pygeodesy.fstats by bases.py line 199\n# lazily imported pygeodesy.geod3solve by bases.py line 199\n# lazily imported pygeodesy.geodesici by bases.py line 199\n# lazily imported pygeodesy.geodesicw by bases.py line 199\n# lazily imported pygeodesy.geodsolve by bases.py line 199\n# lazily imported pygeodesy.geoids by bases.py line 199\n# lazily imported pygeodesy.hausdorff by bases.py line 199\n\n    testing _Lat(1.0,) (pygeodesy.units, 26.03.12)\n    test 28 .classname: _Lat\n    test 29 isinstance: True\n    test 30 .name: _lat\n    test 31 .named: _lat\n    test 32 .named2: _Lat '_lat'\n    test 33 .str: 1.0\n    test 34 .toStr: 1.0\n    test 35 .std_repr: True\n    test 36 .repr: 1.0\n    test 37 .toRepr: _lat (1.0)\n    test 38 .units: _lat\n    test 39 _lat: lat ('X'): strDMS ('X') or suffix ('NS'): could not convert string to float: 'X'\n    test 40 _lat: U ('X'): strDMS ('X') or suffix ('NS'): could not convert string to float: 'X'\n    test 41 _lat: TypeError\n    test 42 _lat: lat ('X'): strDMS ('X') or suffix ('NS'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 43 .named: Test\n    test 44 .named2: _Lat 'Test'\n    test 45 .str: 1.0\n    test 46 .toStr: 1.0\n    test 47 .repr: 1.0\n    test 48 .toRepr: Test (1.0)\n    test 49 .units: _lat\n    test 50 .name: Test\n    test 51 ._name: Test\n    test 52 .str: 1.0\n    test 53 .repr: 1.0\n    test 54 delattr: ''\n\n    testing _Lon(1.0,) (pygeodesy.units, 26.03.12)\n    test 55 .classname: _Lon\n    test 56 isinstance: True\n    test 57 .name: _lon\n    test 58 .named: _lon\n    test 59 .named2: _Lon '_lon'\n    test 60 .str: 1.0\n    test 61 .toStr: 1.0\n    test 62 .std_repr: True\n    test 63 .repr: 1.0\n    test 64 .toRepr: _lon (1.0)\n    test 65 .units: _lon\n    test 66 _lon: lon ('X'): strDMS ('X') or suffix ('EW'): could not convert string to float: 'X'\n    test 67 _lon: U ('X'): strDMS ('X') or suffix ('EW'): could not convert string to float: 'X'\n    test 68 _lon: TypeError\n    test 69 _lon: lon ('X'): strDMS ('X') or suffix ('EW'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 70 .named: Test\n    test 71 .named2: _Lon 'Test'\n    test 72 .str: 1.0\n    test 73 .toStr: 1.0\n    test 74 .repr: 1.0\n    test 75 .toRepr: Test (1.0)\n    test 76 .units: _lon\n    test 77 .name: Test\n    test 78 ._name: Test\n    test 79 .str: 1.0\n    test 80 .repr: 1.0\n    test 81 delattr: ''\n# lazily imported pygeodesy.ktm by bases.py line 199\n# lazily imported pygeodesy.lcc by bases.py line 199\n# lazily imported pygeodesy.ltp by bases.py line 199\n# lazily imported pygeodesy.mgrs by bases.py line 199\n# lazily imported pygeodesy.osgr by bases.py line 199\n# lazily imported pygeodesy.resections by bases.py line 199\n# lazily imported pygeodesy.simplify by bases.py line 199\n# lazily imported pygeodesy.sphericalBase by bases.py line 199\n# lazily imported pygeodesy.sphericalNvector by bases.py line 199\n# lazily imported pygeodesy.sphericalTrigonometry by bases.py line 199\n# lazily imported pygeodesy.trf by bases.py line 199\n\n    testing Bearing(1.0,) (pygeodesy.units, 26.03.12)\n    test 82 .classname: Bearing\n    test 83 isinstance: True\n    test 84 .name: bearing\n    test 85 .named: bearing\n    test 86 .named2: Bearing 'bearing'\n    test 87 .str: 1.0\n    test 88 .toStr: 1.0\n    test 89 .std_repr: True\n    test 90 .repr: 1.0\n    test 91 .toRepr: bearing (1.0)\n    test 92 .units: bearing\n    test 93 bearing: bearing ('X'): strDMS ('X') or suffix ('N'): could not convert string to float: 'X'\n    test 94 bearing: U ('X'): strDMS ('X') or suffix ('N'): could not convert string to float: 'X'\n    test 95 bearing: TypeError\n    test 96 bearing: bearing ('X'): strDMS ('X') or suffix ('N'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 97 .named: Test\n    test 98 .named2: Bearing 'Test'\n    test 99 .str: 1.0\n    test 100 .toStr: 1.0\n    test 101 .repr: 1.0\n    test 102 .toRepr: Test (1.0)\n    test 103 .units: bearing\n    test 104 .name: Test\n    test 105 ._name: Test\n    test 106 .str: 1.0\n    test 107 .repr: 1.0\n    test 108 delattr: ''\n\n    testing Degrees(1.0,) (pygeodesy.units, 26.03.12)\n    test 109 .classname: Degrees\n    test 110 isinstance: True\n    test 111 .name: degrees\n    test 112 .named: degrees\n    test 113 .named2: Degrees 'degrees'\n    test 114 .str: 1.0\n    test 115 .toStr: 1.0\n    test 116 .std_repr: True\n    test 117 .repr: 1.0\n    test 118 .toRepr: degrees (1.0)\n    test 119 .units: degrees\n    test 120 degrees: degrees ('X'): strDMS ('X') or suffix ('NSEW'): could not convert string to float: 'X'\n    test 121 degrees: U ('X'): strDMS ('X') or suffix ('NSEW'): could not convert string to float: 'X'\n    test 122 degrees: TypeError\n    test 123 degrees: degrees ('X'): strDMS ('X') or suffix ('NSEW'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 124 .named: Test\n    test 125 .named2: Degrees 'Test'\n    test 126 .str: 1.0\n    test 127 .toStr: 1.0\n    test 128 .repr: 1.0\n    test 129 .toRepr: Test (1.0)\n    test 130 .units: degrees\n    test 131 .name: Test\n    test 132 ._name: Test\n    test 133 .str: 1.0\n    test 134 .repr: 1.0\n    test 135 delattr: ''\n\n    testing Degrees2(1.0,) (pygeodesy.units, 26.03.12)\n    test 136 .classname: Degrees2\n    test 137 isinstance: True\n    test 138 .name: degrees2\n    test 139 .named: degrees2\n    test 140 .named2: Degrees2 'degrees2'\n    test 141 .str: 1.0\n    test 142 .toStr: 1.0\n    test 143 .std_repr: True\n    test 144 .repr: 1.0\n    test 145 .toRepr: degrees2 (1.0)\n    test 146 .units: degrees2\n    test 147 degrees2: degrees2 ('X'): could not convert string to float: 'X'\n    test 148 degrees2: U ('X'): could not convert string to float: 'X'\n    test 149 degrees2: TypeError\n    test 150 degrees2: degrees2 ('X'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 151 .named: Test\n    test 152 .named2: Degrees2 'Test'\n    test 153 .str: 1.0\n    test 154 .toStr: 1.0\n    test 155 .repr: 1.0\n    test 156 .toRepr: Test (1.0)\n    test 157 .units: degrees2\n    test 158 .name: Test\n    test 159 ._name: Test\n    test 160 .str: 1.0\n    test 161 .repr: 1.0\n    test 162 delattr: ''\n\n    testing Degrees_(1.0,) (pygeodesy.units, 26.03.12)\n    test 163 .classname: Degrees_\n    test 164 isinstance: True\n    test 165 .name: degrees_\n    test 166 .named: degrees_\n    test 167 .named2: Degrees_ 'degrees_'\n    test 168 .str: 1.0\n    test 169 .toStr: 1.0\n    test 170 .std_repr: True\n    test 171 .repr: 1.0\n    test 172 .toRepr: degrees_ (1.0)\n    test 173 .units: degrees_\n    test 174 degrees_: degrees ('X'): strDMS ('X') or suffix ('NSEW'): could not convert string to float: 'X'\n    test 175 degrees_: U ('X'): strDMS ('X') or suffix ('NSEW'): could not convert string to float: 'X'\n    test 176 degrees_: TypeError\n    test 177 degrees_: degrees ('X'): strDMS ('X') or suffix ('NSEW'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 178 .named: Test\n    test 179 .named2: Degrees_ 'Test'\n    test 180 .str: 1.0\n    test 181 .toStr: 1.0\n    test 182 .repr: 1.0\n    test 183 .toRepr: Test (1.0)\n    test 184 .units: degrees_\n    test 185 .name: Test\n    test 186 ._name: Test\n    test 187 .str: 1.0\n    test 188 .repr: 1.0\n    test 189 delattr: ''\n\n    testing Distance(1.0,) (pygeodesy.units, 26.03.12)\n    test 190 .classname: Distance\n    test 191 isinstance: True\n    test 192 .name: distance\n    test 193 .named: distance\n    test 194 .named2: Distance 'distance'\n    test 195 .str: 1.0\n    test 196 .toStr: 1.0\n    test 197 .std_repr: True\n    test 198 .repr: 1.0\n    test 199 .toRepr: distance (1.0)\n    test 200 .units: distance\n    test 201 distance: distance ('X'): could not convert string to float: 'X'\n    test 202 distance: U ('X'): could not convert string to float: 'X'\n    test 203 distance: TypeError\n    test 204 distance: distance ('X'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 205 .named: Test\n    test 206 .named2: Distance 'Test'\n    test 207 .str: 1.0\n    test 208 .toStr: 1.0\n    test 209 .repr: 1.0\n    test 210 .toRepr: Test (1.0)\n    test 211 .units: distance\n    test 212 .name: Test\n    test 213 ._name: Test\n    test 214 .str: 1.0\n    test 215 .repr: 1.0\n    test 216 delattr: ''\n\n    testing Distance_(1.0,) (pygeodesy.units, 26.03.12)\n    test 217 .classname: Distance_\n    test 218 isinstance: True\n    test 219 .name: distance_\n    test 220 .named: distance_\n    test 221 .named2: Distance_ 'distance_'\n    test 222 .str: 1.0\n    test 223 .toStr: 1.0\n    test 224 .std_repr: True\n    test 225 .repr: 1.0\n    test 226 .toRepr: distance_ (1.0)\n    test 227 .units: distance_\n    test 228 distance_: distance ('X'): could not convert string to float: 'X'\n    test 229 distance_: U ('X'): could not convert string to float: 'X'\n    test 230 distance_: TypeError\n    test 231 distance_: distance ('X'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 232 .named: Test\n    test 233 .named2: Distance_ 'Test'\n    test 234 .str: 1.0\n    test 235 .toStr: 1.0\n    test 236 .repr: 1.0\n    test 237 .toRepr: Test (1.0)\n    test 238 .units: distance_\n    test 239 .name: Test\n    test 240 ._name: Test\n    test 241 .str: 1.0\n    test 242 .repr: 1.0\n    test 243 delattr: ''\n\n    testing Easting(1.0,) (pygeodesy.units, 26.03.12)\n    test 244 .classname: Easting\n    test 245 isinstance: True\n    test 246 .name: easting\n    test 247 .named: easting\n    test 248 .named2: Easting 'easting'\n    test 249 .str: 1.0\n    test 250 .toStr: 1.0\n    test 251 .std_repr: True\n    test 252 .repr: 1.0\n    test 253 .toRepr: easting (1.0)\n    test 254 .units: easting\n    test 255 easting: easting ('X'): could not convert string to float: 'X'\n    test 256 easting: U ('X'): could not convert string to float: 'X'\n    test 257 easting: TypeError\n    test 258 easting: easting ('X'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 259 .named: Test\n    test 260 .named2: Easting 'Test'\n    test 261 .str: 1.0\n    test 262 .toStr: 1.0\n    test 263 .repr: 1.0\n    test 264 .toRepr: Test (1.0)\n    test 265 .units: easting\n    test 266 .name: Test\n    test 267 ._name: Test\n    test 268 .str: 1.0\n    test 269 .repr: 1.0\n    test 270 delattr: ''\n\n    testing Feet(1.0,) (pygeodesy.units, 26.03.12)\n    test 271 .classname: Feet\n    test 272 isinstance: True\n    test 273 .name: feet\n    test 274 .named: feet\n    test 275 .named2: Feet 'feet'\n    test 276 .str: 1.0\n    test 277 .toStr: 1.0\n    test 278 .std_repr: True\n    test 279 .repr: 1.0\n    test 280 .toRepr: feet (1.0)\n    test 281 .units: feet\n    test 282 feet: feet ('X'): could not convert string to float: 'X'\n    test 283 feet: U ('X'): could not convert string to float: 'X'\n    test 284 feet: TypeError\n    test 285 feet: feet ('X'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 286 .named: Test\n    test 287 .named2: Feet 'Test'\n    test 288 .str: 1.0\n    test 289 .toStr: 1.0\n    test 290 .repr: 1.0\n    test 291 .toRepr: Test (1.0)\n    test 292 .units: feet\n    test 293 .name: Test\n    test 294 ._name: Test\n    test 295 .str: 1.0\n    test 296 .repr: 1.0\n    test 297 delattr: ''\n\n    testing Float_(1.0,) (pygeodesy.units, 26.03.12)\n    test 298 .classname: Float_\n    test 299 isinstance: True\n    test 300 .name: float_\n    test 301 .named: float_\n    test 302 .named2: Float_ 'float_'\n    test 303 .str: 1.0\n    test 304 .toStr: 1.0\n    test 305 .std_repr: True\n    test 306 .repr: 1.0\n    test 307 .toRepr: float_ (1.0)\n    test 308 .units: float_\n    test 309 float_: Float_ ('X'): could not convert string to float: 'X'\n    test 310 float_: U ('X'): could not convert string to float: 'X'\n    test 311 float_: TypeError\n    test 312 float_: Float_ ('X'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 313 .named: Test\n    test 314 .named2: Float_ 'Test'\n    test 315 .str: 1.0\n    test 316 .toStr: 1.0\n    test 317 .repr: 1.0\n    test 318 .toRepr: Test (1.0)\n    test 319 .units: float_\n    test 320 .name: Test\n    test 321 ._name: Test\n    test 322 .str: 1.0\n    test 323 .repr: 1.0\n    test 324 delattr: ''\n\n    testing Height(1.0,) (pygeodesy.units, 26.03.12)\n    test 325 .classname: Height\n    test 326 isinstance: True\n    test 327 .name: height\n    test 328 .named: height\n    test 329 .named2: Height 'height'\n    test 330 .str: 1.0\n    test 331 .toStr: 1.0\n    test 332 .std_repr: True\n    test 333 .repr: 1.0\n    test 334 .toRepr: height (1.0)\n    test 335 .units: height\n    test 336 height: height ('X'): could not convert string to float: 'X'\n    test 337 height: U ('X'): could not convert string to float: 'X'\n    test 338 height: TypeError\n    test 339 height: height ('X'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 340 .named: Test\n    test 341 .named2: Height 'Test'\n    test 342 .str: 1.0\n    test 343 .toStr: 1.0\n    test 344 .repr: 1.0\n    test 345 .toRepr: Test (1.0)\n    test 346 .units: height\n    test 347 .name: Test\n    test 348 ._name: Test\n    test 349 .str: 1.0\n    test 350 .repr: 1.0\n    test 351 delattr: ''\n\n    testing HeightX(1.0,) (pygeodesy.units, 26.03.12)\n    test 352 .classname: HeightX\n    test 353 isinstance: True\n    test 354 .name: heightx\n    test 355 .named: heightx\n    test 356 .named2: HeightX 'heightx'\n    test 357 .str: 1.0\n    test 358 .toStr: 1.0\n    test 359 .std_repr: True\n    test 360 .repr: 1.0\n    test 361 .toRepr: heightx (1.0)\n    test 362 .units: heightx\n    test 363 heightx: height ('X'): could not convert string to float: 'X'\n    test 364 heightx: U ('X'): could not convert string to float: 'X'\n    test 365 heightx: TypeError\n    test 366 heightx: height ('X'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 367 .named: Test\n    test 368 .named2: HeightX 'Test'\n    test 369 .str: 1.0\n    test 370 .toStr: 1.0\n    test 371 .repr: 1.0\n    test 372 .toRepr: Test (1.0)\n    test 373 .units: heightx\n    test 374 .name: Test\n    test 375 ._name: Test\n    test 376 .str: 1.0\n    test 377 .repr: 1.0\n    test 378 delattr: ''\n\n    testing Height_(1.0,) (pygeodesy.units, 26.03.12)\n    test 379 .classname: Height_\n    test 380 isinstance: True\n    test 381 .name: height_\n    test 382 .named: height_\n    test 383 .named2: Height_ 'height_'\n    test 384 .str: 1.0\n    test 385 .toStr: 1.0\n    test 386 .std_repr: True\n    test 387 .repr: 1.0\n    test 388 .toRepr: height_ (1.0)\n    test 389 .units: height_\n    test 390 height_: height ('X'): could not convert string to float: 'X'\n    test 391 height_: U ('X'): could not convert string to float: 'X'\n    test 392 height_: TypeError\n    test 393 height_: height ('X'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 394 .named: Test\n    test 395 .named2: Height_ 'Test'\n    test 396 .str: 1.0\n    test 397 .toStr: 1.0\n    test 398 .repr: 1.0\n    test 399 .toRepr: Test (1.0)\n    test 400 .units: height_\n    test 401 .name: Test\n    test 402 ._name: Test\n    test 403 .str: 1.0\n    test 404 .repr: 1.0\n    test 405 delattr: ''\n\n    testing Lam(1.0,) (pygeodesy.units, 26.03.12)\n    test 406 .classname: Lam\n    test 407 isinstance: True\n    test 408 .name: lam\n    test 409 .named: lam\n    test 410 .named2: Lam 'lam'\n    test 411 .str: 1.0\n    test 412 .toStr: 1.0\n    test 413 .std_repr: True\n    test 414 .repr: 1.0\n    test 415 .toRepr: lam (1.0)\n    test 416 .units: lam\n    test 417 lam: lam ('X'): strRad ('X') or suffix ('EW'): could not convert string to float: 'X'\n    test 418 lam: U ('X'): strRad ('X') or suffix ('EW'): could not convert string to float: 'X'\n    test 419 lam: TypeError\n    test 420 lam: lam ('X'): strRad ('X') or suffix ('EW'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 421 .named: Test\n    test 422 .named2: Lam 'Test'\n    test 423 .str: 1.0\n    test 424 .toStr: 1.0\n    test 425 .repr: 1.0\n    test 426 .toRepr: Test (1.0)\n    test 427 .units: lam\n    test 428 .name: Test\n    test 429 ._name: Test\n    test 430 .str: 1.0\n    test 431 .repr: 1.0\n    test 432 delattr: ''\n\n    testing Lat(1.0,) (pygeodesy.units, 26.03.12)\n    test 433 .classname: Lat\n    test 434 isinstance: True\n    test 435 .name: lat\n    test 436 .named: lat\n    test 437 .named2: Lat 'lat'\n    test 438 .str: 1.0\n    test 439 .toStr: 1.0\n    test 440 .std_repr: True\n    test 441 .repr: 1.0\n    test 442 .toRepr: lat (1.0)\n    test 443 .units: lat\n    test 444 lat: lat ('X'): strDMS ('X') or suffix ('NS'): could not convert string to float: 'X'\n    test 445 lat: U ('X'): strDMS ('X') or suffix ('NS'): could not convert string to float: 'X'\n    test 446 lat: TypeError\n    test 447 lat: lat ('X'): strDMS ('X') or suffix ('NS'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 448 .named: Test\n    test 449 .named2: Lat 'Test'\n    test 450 .str: 1.0\n    test 451 .toStr: 1.0\n    test 452 .repr: 1.0\n    test 453 .toRepr: Test (1.0)\n    test 454 .units: lat\n    test 455 .name: Test\n    test 456 ._name: Test\n    test 457 .str: 1.0\n    test 458 .repr: 1.0\n    test 459 delattr: ''\n\n    testing Lat_(1.0,) (pygeodesy.units, 26.03.12)\n    test 460 .classname: Lat_\n    test 461 isinstance: True\n    test 462 .name: lat_\n    test 463 .named: lat_\n    test 464 .named2: Lat_ 'lat_'\n    test 465 .str: 1.0\n    test 466 .toStr: 1.0\n    test 467 .std_repr: True\n    test 468 .repr: 1.0\n    test 469 .toRepr: lat_ (1.0)\n    test 470 .units: lat_\n    test 471 lat_: lat ('X'): strDMS ('X') or suffix ('NS'): could not convert string to float: 'X'\n    test 472 lat_: U ('X'): strDMS ('X') or suffix ('NS'): could not convert string to float: 'X'\n    test 473 lat_: TypeError\n    test 474 lat_: lat ('X'): strDMS ('X') or suffix ('NS'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 475 .named: Test\n    test 476 .named2: Lat_ 'Test'\n    test 477 .str: 1.0\n    test 478 .toStr: 1.0\n    test 479 .repr: 1.0\n    test 480 .toRepr: Test (1.0)\n    test 481 .units: lat_\n    test 482 .name: Test\n    test 483 ._name: Test\n    test 484 .str: 1.0\n    test 485 .repr: 1.0\n    test 486 delattr: ''\n\n    testing Lon(1.0,) (pygeodesy.units, 26.03.12)\n    test 487 .classname: Lon\n    test 488 isinstance: True\n    test 489 .name: lon\n    test 490 .named: lon\n    test 491 .named2: Lon 'lon'\n    test 492 .str: 1.0\n    test 493 .toStr: 1.0\n    test 494 .std_repr: True\n    test 495 .repr: 1.0\n    test 496 .toRepr: lon (1.0)\n    test 497 .units: lon\n    test 498 lon: lon ('X'): strDMS ('X') or suffix ('EW'): could not convert string to float: 'X'\n    test 499 lon: U ('X'): strDMS ('X') or suffix ('EW'): could not convert string to float: 'X'\n    test 500 lon: TypeError\n    test 501 lon: lon ('X'): strDMS ('X') or suffix ('EW'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 502 .named: Test\n    test 503 .named2: Lon 'Test'\n    test 504 .str: 1.0\n    test 505 .toStr: 1.0\n    test 506 .repr: 1.0\n    test 507 .toRepr: Test (1.0)\n    test 508 .units: lon\n    test 509 .name: Test\n    test 510 ._name: Test\n    test 511 .str: 1.0\n    test 512 .repr: 1.0\n    test 513 delattr: ''\n\n    testing Lon_(1.0,) (pygeodesy.units, 26.03.12)\n    test 514 .classname: Lon_\n    test 515 isinstance: True\n    test 516 .name: lon_\n    test 517 .named: lon_\n    test 518 .named2: Lon_ 'lon_'\n    test 519 .str: 1.0\n    test 520 .toStr: 1.0\n    test 521 .std_repr: True\n    test 522 .repr: 1.0\n    test 523 .toRepr: lon_ (1.0)\n    test 524 .units: lon_\n    test 525 lon_: lon ('X'): strDMS ('X') or suffix ('EW'): could not convert string to float: 'X'\n    test 526 lon_: U ('X'): strDMS ('X') or suffix ('EW'): could not convert string to float: 'X'\n    test 527 lon_: TypeError\n    test 528 lon_: lon ('X'): strDMS ('X') or suffix ('EW'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 529 .named: Test\n    test 530 .named2: Lon_ 'Test'\n    test 531 .str: 1.0\n    test 532 .toStr: 1.0\n    test 533 .repr: 1.0\n    test 534 .toRepr: Test (1.0)\n    test 535 .units: lon_\n    test 536 .name: Test\n    test 537 ._name: Test\n    test 538 .str: 1.0\n    test 539 .repr: 1.0\n    test 540 delattr: ''\n\n    testing Meter(1.0,) (pygeodesy.units, 26.03.12)\n    test 541 .classname: Meter\n    test 542 isinstance: True\n    test 543 .name: meter\n    test 544 .named: meter\n    test 545 .named2: Meter 'meter'\n    test 546 .str: 1.0\n    test 547 .toStr: 1.0\n    test 548 .std_repr: True\n    test 549 .repr: 1.0\n    test 550 .toRepr: meter (1.0)\n    test 551 .units: meter\n    test 552 meter: meter ('X'): could not convert string to float: 'X'\n    test 553 meter: U ('X'): could not convert string to float: 'X'\n    test 554 meter: TypeError\n    test 555 meter: meter ('X'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 556 .named: Test\n    test 557 .named2: Meter 'Test'\n    test 558 .str: 1.0\n    test 559 .toStr: 1.0\n    test 560 .repr: 1.0\n    test 561 .toRepr: Test (1.0)\n    test 562 .units: meter\n    test 563 .name: Test\n    test 564 ._name: Test\n    test 565 .str: 1.0\n    test 566 .repr: 1.0\n    test 567 delattr: ''\n\n    testing Meter2(1.0,) (pygeodesy.units, 26.03.12)\n    test 568 .classname: Meter2\n    test 569 isinstance: True\n    test 570 .name: meter2\n    test 571 .named: meter2\n    test 572 .named2: Meter2 'meter2'\n    test 573 .str: 1.0\n    test 574 .toStr: 1.0\n    test 575 .std_repr: True\n    test 576 .repr: 1.0\n    test 577 .toRepr: meter2 (1.0)\n    test 578 .units: meter2\n    test 579 meter2: meter2 ('X'): could not convert string to float: 'X'\n    test 580 meter2: U ('X'): could not convert string to float: 'X'\n    test 581 meter2: TypeError\n    test 582 meter2: meter2 ('X'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 583 .named: Test\n    test 584 .named2: Meter2 'Test'\n    test 585 .str: 1.0\n    test 586 .toStr: 1.0\n    test 587 .repr: 1.0\n    test 588 .toRepr: Test (1.0)\n    test 589 .units: meter2\n    test 590 .name: Test\n    test 591 ._name: Test\n    test 592 .str: 1.0\n    test 593 .repr: 1.0\n    test 594 delattr: ''\n\n    testing Meter3(1.0,) (pygeodesy.units, 26.03.12)\n    test 595 .classname: Meter3\n    test 596 isinstance: True\n    test 597 .name: meter3\n    test 598 .named: meter3\n    test 599 .named2: Meter3 'meter3'\n    test 600 .str: 1.0\n    test 601 .toStr: 1.0\n    test 602 .std_repr: True\n    test 603 .repr: 1.0\n    test 604 .toRepr: meter3 (1.0)\n    test 605 .units: meter3\n    test 606 meter3: meter3 ('X'): could not convert string to float: 'X'\n    test 607 meter3: U ('X'): could not convert string to float: 'X'\n    test 608 meter3: TypeError\n    test 609 meter3: meter3 ('X'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 610 .named: Test\n    test 611 .named2: Meter3 'Test'\n    test 612 .str: 1.0\n    test 613 .toStr: 1.0\n    test 614 .repr: 1.0\n    test 615 .toRepr: Test (1.0)\n    test 616 .units: meter3\n    test 617 .name: Test\n    test 618 ._name: Test\n    test 619 .str: 1.0\n    test 620 .repr: 1.0\n    test 621 delattr: ''\n\n    testing Meter_(1.0,) (pygeodesy.units, 26.03.12)\n    test 622 .classname: Meter_\n    test 623 isinstance: True\n    test 624 .name: meter_\n    test 625 .named: meter_\n    test 626 .named2: Meter_ 'meter_'\n    test 627 .str: 1.0\n    test 628 .toStr: 1.0\n    test 629 .std_repr: True\n    test 630 .repr: 1.0\n    test 631 .toRepr: meter_ (1.0)\n    test 632 .units: meter_\n    test 633 meter_: meter ('X'): could not convert string to float: 'X'\n    test 634 meter_: U ('X'): could not convert string to float: 'X'\n    test 635 meter_: TypeError\n    test 636 meter_: meter ('X'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 637 .named: Test\n    test 638 .named2: Meter_ 'Test'\n    test 639 .str: 1.0\n    test 640 .toStr: 1.0\n    test 641 .repr: 1.0\n    test 642 .toRepr: Test (1.0)\n    test 643 .units: meter_\n    test 644 .name: Test\n    test 645 ._name: Test\n    test 646 .str: 1.0\n    test 647 .repr: 1.0\n    test 648 delattr: ''\n\n    testing Northing(1.0,) (pygeodesy.units, 26.03.12)\n    test 649 .classname: Northing\n    test 650 isinstance: True\n    test 651 .name: northing\n    test 652 .named: northing\n    test 653 .named2: Northing 'northing'\n    test 654 .str: 1.0\n    test 655 .toStr: 1.0\n    test 656 .std_repr: True\n    test 657 .repr: 1.0\n    test 658 .toRepr: northing (1.0)\n    test 659 .units: northing\n    test 660 northing: northing ('X'): could not convert string to float: 'X'\n    test 661 northing: U ('X'): could not convert string to float: 'X'\n    test 662 northing: TypeError\n    test 663 northing: northing ('X'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 664 .named: Test\n    test 665 .named2: Northing 'Test'\n    test 666 .str: 1.0\n    test 667 .toStr: 1.0\n    test 668 .repr: 1.0\n    test 669 .toRepr: Test (1.0)\n    test 670 .units: northing\n    test 671 .name: Test\n    test 672 ._name: Test\n    test 673 .str: 1.0\n    test 674 .repr: 1.0\n    test 675 delattr: ''\n\n    testing Phi(1.0,) (pygeodesy.units, 26.03.12)\n    test 676 .classname: Phi\n    test 677 isinstance: True\n    test 678 .name: phi\n    test 679 .named: phi\n    test 680 .named2: Phi 'phi'\n    test 681 .str: 1.0\n    test 682 .toStr: 1.0\n    test 683 .std_repr: True\n    test 684 .repr: 1.0\n    test 685 .toRepr: phi (1.0)\n    test 686 .units: phi\n    test 687 phi: phi ('X'): strRad ('X') or suffix ('NS'): could not convert string to float: 'X'\n    test 688 phi: U ('X'): strRad ('X') or suffix ('NS'): could not convert string to float: 'X'\n    test 689 phi: TypeError\n    test 690 phi: phi ('X'): strRad ('X') or suffix ('NS'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 691 .named: Test\n    test 692 .named2: Phi 'Test'\n    test 693 .str: 1.0\n    test 694 .toStr: 1.0\n    test 695 .repr: 1.0\n    test 696 .toRepr: Test (1.0)\n    test 697 .units: phi\n    test 698 .name: Test\n    test 699 ._name: Test\n    test 700 .str: 1.0\n    test 701 .repr: 1.0\n    test 702 delattr: ''\n\n    testing Radians(1.0,) (pygeodesy.units, 26.03.12)\n    test 703 .classname: Radians\n    test 704 isinstance: True\n    test 705 .name: radians\n    test 706 .named: radians\n    test 707 .named2: Radians 'radians'\n    test 708 .str: 1.0\n    test 709 .toStr: 1.0\n    test 710 .std_repr: True\n    test 711 .repr: 1.0\n    test 712 .toRepr: radians (1.0)\n    test 713 .units: radians\n    test 714 radians: radians ('X'): strRad ('X') or suffix ('NSEW'): could not convert string to float: 'X'\n    test 715 radians: U ('X'): strRad ('X') or suffix ('NSEW'): could not convert string to float: 'X'\n    test 716 radians: TypeError\n    test 717 radians: radians ('X'): strRad ('X') or suffix ('NSEW'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 718 .named: Test\n    test 719 .named2: Radians 'Test'\n    test 720 .str: 1.0\n    test 721 .toStr: 1.0\n    test 722 .repr: 1.0\n    test 723 .toRepr: Test (1.0)\n    test 724 .units: radians\n    test 725 .name: Test\n    test 726 ._name: Test\n    test 727 .str: 1.0\n    test 728 .repr: 1.0\n    test 729 delattr: ''\n\n    testing Radians2(1.0,) (pygeodesy.units, 26.03.12)\n    test 730 .classname: Radians2\n    test 731 isinstance: True\n    test 732 .name: radians2\n    test 733 .named: radians2\n    test 734 .named2: Radians2 'radians2'\n    test 735 .str: 1.0\n    test 736 .toStr: 1.0\n    test 737 .std_repr: True\n    test 738 .repr: 1.0\n    test 739 .toRepr: radians2 (1.0)\n    test 740 .units: radians2\n    test 741 radians2: radians2 ('X'): could not convert string to float: 'X'\n    test 742 radians2: U ('X'): could not convert string to float: 'X'\n    test 743 radians2: TypeError\n    test 744 radians2: radians2 ('X'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 745 .named: Test\n    test 746 .named2: Radians2 'Test'\n    test 747 .str: 1.0\n    test 748 .toStr: 1.0\n    test 749 .repr: 1.0\n    test 750 .toRepr: Test (1.0)\n    test 751 .units: radians2\n    test 752 .name: Test\n    test 753 ._name: Test\n    test 754 .str: 1.0\n    test 755 .repr: 1.0\n    test 756 delattr: ''\n\n    testing Radians_(1.0,) (pygeodesy.units, 26.03.12)\n    test 757 .classname: Radians_\n    test 758 isinstance: True\n    test 759 .name: radians_\n    test 760 .named: radians_\n    test 761 .named2: Radians_ 'radians_'\n    test 762 .str: 1.0\n    test 763 .toStr: 1.0\n    test 764 .std_repr: True\n    test 765 .repr: 1.0\n    test 766 .toRepr: radians_ (1.0)\n    test 767 .units: radians_\n    test 768 radians_: radians ('X'): strRad ('X') or suffix ('NSEW'): could not convert string to float: 'X'\n    test 769 radians_: U ('X'): strRad ('X') or suffix ('NSEW'): could not convert string to float: 'X'\n    test 770 radians_: TypeError\n    test 771 radians_: radians ('X'): strRad ('X') or suffix ('NSEW'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 772 .named: Test\n    test 773 .named2: Radians_ 'Test'\n    test 774 .str: 1.0\n    test 775 .toStr: 1.0\n    test 776 .repr: 1.0\n    test 777 .toRepr: Test (1.0)\n    test 778 .units: radians_\n    test 779 .name: Test\n    test 780 ._name: Test\n    test 781 .str: 1.0\n    test 782 .repr: 1.0\n    test 783 delattr: ''\n\n    testing Radius_(1.0,) (pygeodesy.units, 26.03.12)\n    test 784 .classname: Radius_\n    test 785 isinstance: True\n    test 786 .name: radius_\n    test 787 .named: radius_\n    test 788 .named2: Radius_ 'radius_'\n    test 789 .str: 1.0\n    test 790 .toStr: 1.0\n    test 791 .std_repr: True\n    test 792 .repr: 1.0\n    test 793 .toRepr: radius_ (1.0)\n    test 794 .units: radius_\n    test 795 radius_: radius ('X'): could not convert string to float: 'X'\n    test 796 radius_: U ('X'): could not convert string to float: 'X'\n    test 797 radius_: TypeError\n    test 798 radius_: radius ('X'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 799 .named: Test\n    test 800 .named2: Radius_ 'Test'\n    test 801 .str: 1.0\n    test 802 .toStr: 1.0\n    test 803 .repr: 1.0\n    test 804 .toRepr: Test (1.0)\n    test 805 .units: radius_\n    test 806 .name: Test\n    test 807 ._name: Test\n    test 808 .str: 1.0\n    test 809 .repr: 1.0\n    test 810 delattr: ''\n\n    testing Scalar(1.0,) (pygeodesy.units, 26.03.12)\n    test 811 .classname: Scalar\n    test 812 isinstance: True\n    test 813 .name: scalar\n    test 814 .named: scalar\n    test 815 .named2: Scalar 'scalar'\n    test 816 .str: 1.0\n    test 817 .toStr: 1.0\n    test 818 .std_repr: True\n    test 819 .repr: 1.0\n    test 820 .toRepr: scalar (1.0)\n    test 821 .units: scalar\n    test 822 scalar: scalar ('X'): could not convert string to float: 'X'\n    test 823 scalar: U ('X'): could not convert string to float: 'X'\n    test 824 scalar: TypeError\n    test 825 scalar: scalar ('X'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 826 .named: Test\n    test 827 .named2: Scalar 'Test'\n    test 828 .str: 1.0\n    test 829 .toStr: 1.0\n    test 830 .repr: 1.0\n    test 831 .toRepr: Test (1.0)\n    test 832 .units: scalar\n    test 833 .name: Test\n    test 834 ._name: Test\n    test 835 .str: 1.0\n    test 836 .repr: 1.0\n    test 837 delattr: ''\n\n    testing Scalar_(1.0,) (pygeodesy.units, 26.03.12)\n    test 838 .classname: Scalar_\n    test 839 isinstance: True\n    test 840 .name: scalar_\n    test 841 .named: scalar_\n    test 842 .named2: Scalar_ 'scalar_'\n    test 843 .str: 1.0\n    test 844 .toStr: 1.0\n    test 845 .std_repr: True\n    test 846 .repr: 1.0\n    test 847 .toRepr: scalar_ (1.0)\n    test 848 .units: scalar_\n    test 849 scalar_: scalar ('X'): could not convert string to float: 'X'\n    test 850 scalar_: U ('X'): could not convert string to float: 'X'\n    test 851 scalar_: TypeError\n    test 852 scalar_: scalar ('X'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 853 .named: Test\n    test 854 .named2: Scalar_ 'Test'\n    test 855 .str: 1.0\n    test 856 .toStr: 1.0\n    test 857 .repr: 1.0\n    test 858 .toRepr: Test (1.0)\n    test 859 .units: scalar_\n    test 860 .name: Test\n    test 861 ._name: Test\n    test 862 .str: 1.0\n    test 863 .repr: 1.0\n    test 864 delattr: ''\n\n    testing Float(1.0,) (pygeodesy.units, 26.03.12)\n    test 865 .classname: Float\n    test 866 isinstance: True\n    test 867 .name: float\n    test 868 .named: float\n    test 869 .named2: Float 'float'\n    test 870 .str: 1.0\n    test 871 .toStr: 1.0\n    test 872 .std_repr: True\n    test 873 .repr: 1.0\n    test 874 .toRepr: float (1.0)\n    test 875 .units: float\n    test 876 float: Float ('X'): could not convert string to float: 'X'\n    test 877 float: U ('X'): could not convert string to float: 'X'\n    test 878 float: TypeError\n    test 879 float: Float ('X'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 880 .named: Test\n    test 881 .named2: Float 'Test'\n    test 882 .str: 1.0\n    test 883 .toStr: 1.0\n    test 884 .repr: 1.0\n    test 885 .toRepr: Test (1.0)\n    test 886 .units: float\n    test 887 .name: Test\n    test 888 ._name: Test\n    test 889 .str: 1.0\n    test 890 .repr: 1.0\n    test 891 delattr: ''\n\n    testing Radius(1.0,) (pygeodesy.units, 26.03.12)\n    test 892 .classname: Radius\n    test 893 isinstance: True\n    test 894 .name: radius\n    test 895 .named: radius\n    test 896 .named2: Radius 'radius'\n    test 897 .str: 1.0\n    test 898 .toStr: 1.0\n    test 899 .std_repr: True\n    test 900 .repr: 1.0\n    test 901 .toRepr: radius (1.0)\n    test 902 .units: radius\n    test 903 radius: radius ('X'): could not convert string to float: 'X'\n    test 904 radius: U ('X'): could not convert string to float: 'X'\n    test 905 radius: TypeError\n    test 906 radius: radius ('X'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 907 .named: Test\n    test 908 .named2: Radius 'Test'\n    test 909 .str: 1.0\n    test 910 .toStr: 1.0\n    test 911 .repr: 1.0\n    test 912 .toRepr: Test (1.0)\n    test 913 .units: radius\n    test 914 .name: Test\n    test 915 ._name: Test\n    test 916 .str: 1.0\n    test 917 .repr: 1.0\n    test 918 delattr: ''\n# lazily imported pygeodesy.utmups by bases.py line 199\n# lazily imported pygeodesy.vector2d by bases.py line 199\n# lazily imported pygeodesy.webmercator by bases.py line 199\n# lazily imported pygeodesy.auxilats by bases.py line 199\n# lazily imported pygeodesy.geodesicx by bases.py line 199\n# lazily imported pygeodesy.rhumb by bases.py line 199\n\n    testing _Lat(1.0,) (pygeodesy.units, 26.03.12)\n    test 919 .classname: _Lat\n    test 920 isinstance: True\n    test 921 .name: _lat\n    test 922 .named: _lat\n    test 923 .named2: _Lat '_lat'\n    test 924 .str: 1.0\n    test 925 .toStr: 1.0\n    test 926 .std_repr: True\n    test 927 .repr: 1.0\n    test 928 .toRepr: _lat (1.0)\n    test 929 .units: _lat\n    test 930 _lat: lat ('X'): strDMS ('X') or suffix ('NS'): could not convert string to float: 'X'\n    test 931 _lat: U ('X'): strDMS ('X') or suffix ('NS'): could not convert string to float: 'X'\n    test 932 _lat: TypeError\n    test 933 _lat: lat ('X'): strDMS ('X') or suffix ('NS'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 934 .named: Test\n    test 935 .named2: _Lat 'Test'\n    test 936 .str: 1.0\n    test 937 .toStr: 1.0\n    test 938 .repr: 1.0\n    test 939 .toRepr: Test (1.0)\n    test 940 .units: _lat\n    test 941 .name: Test\n    test 942 ._name: Test\n    test 943 .str: 1.0\n    test 944 .repr: 1.0\n    test 945 delattr: ''\n\n    testing _Lon(1.0,) (pygeodesy.units, 26.03.12)\n    test 946 .classname: _Lon\n    test 947 isinstance: True\n    test 948 .name: _lon\n    test 949 .named: _lon\n    test 950 .named2: _Lon '_lon'\n    test 951 .str: 1.0\n    test 952 .toStr: 1.0\n    test 953 .std_repr: True\n    test 954 .repr: 1.0\n    test 955 .toRepr: _lon (1.0)\n    test 956 .units: _lon\n    test 957 _lon: lon ('X'): strDMS ('X') or suffix ('EW'): could not convert string to float: 'X'\n    test 958 _lon: U ('X'): strDMS ('X') or suffix ('EW'): could not convert string to float: 'X'\n    test 959 _lon: TypeError\n    test 960 _lon: lon ('X'): strDMS ('X') or suffix ('EW'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 961 .named: Test\n    test 962 .named2: _Lon 'Test'\n    test 963 .str: 1.0\n    test 964 .toStr: 1.0\n    test 965 .repr: 1.0\n    test 966 .toRepr: Test (1.0)\n    test 967 .units: _lon\n    test 968 .name: Test\n    test 969 ._name: Test\n    test 970 .str: 1.0\n    test 971 .repr: 1.0\n    test 972 delattr: ''\n\n    testing Band('U',) (pygeodesy.units, 26.03.12)\n    test 973 .classname: Band\n    test 974 isinstance: True\n    test 975 .name: band\n    test 976 .named: band\n    test 977 .named2: Band 'band'\n    test 978 .str: U\n    test 979 .toStr: U\n    test 980 .std_repr: True\n    test 981 .repr: 'U'\n    test 982 .toRepr: band ('U')\n    test 983 .units: band\n    test 984 error: X  FAILED, KNOWN, expected <class 'ValueError'>\n    test 985 error: X  FAILED, KNOWN, expected <class 'ValueError'>\n    test 986 Error: X  FAILED, KNOWN, expected <class 'TypeError'>\n    test 987 .named: Test\n    test 988 .named2: Band 'Test'\n    test 989 .str: U\n    test 990 .toStr: U\n    test 991 .repr: 'U'\n    test 992 .toRepr: Test ('U')\n    test 993 .units: band\n    test 994 .name: Test\n    test 995 ._name: Test\n    test 996 .str: U\n    test 997 .repr: 'U'\n    test 998 delattr: ''\n\n    testing Str('U',) (pygeodesy.units, 26.03.12)\n    test 999 .classname: Str\n    test 1000 isinstance: True\n    test 1001 .name: str\n    test 1002 .named: str\n    test 1003 .named2: Str 'str'\n    test 1004 .str: U\n    test 1005 .toStr: U\n    test 1006 .std_repr: True\n    test 1007 .repr: 'U'\n    test 1008 .toRepr: str ('U')\n    test 1009 .units: str\n    test 1010 error: X  FAILED, KNOWN, expected <class 'ValueError'>\n    test 1011 error: X  FAILED, KNOWN, expected <class 'ValueError'>\n    test 1012 Error: X  FAILED, KNOWN, expected <class 'TypeError'>\n    test 1013 .named: Test\n    test 1014 .named2: Str 'Test'\n    test 1015 .str: U\n    test 1016 .toStr: U\n    test 1017 .repr: 'U'\n    test 1018 .toRepr: Test ('U')\n    test 1019 .units: str\n    test 1020 .name: Test\n    test 1021 ._name: Test\n    test 1022 .str: U\n    test 1023 .repr: 'U'\n    test 1024 delattr: ''\n\n    testing Bool(True,) (pygeodesy.units, 26.03.12)\n    test 1025 .classname: Bool\n    test 1026 isinstance: True\n    test 1027 .name: bool\n    test 1028 .named: bool\n    test 1029 .named2: Bool 'bool'\n    test 1030 .str: True\n    test 1031 .toStr: True\n    test 1032 .std_repr: True\n    test 1033 .repr: True\n    test 1034 .toRepr: bool (True)\n    test 1035 .units: bool\n    test 1036 error: True  FAILED, KNOWN, expected <class 'ValueError'>\n    test 1037 error: True  FAILED, KNOWN, expected <class 'ValueError'>\n    test 1038 Error: True  FAILED, KNOWN, expected <class 'TypeError'>\n    test 1039 .named: Test\n    test 1040 .named2: Bool 'Test'\n    test 1041 .str: True\n    test 1042 .toStr: True\n    test 1043 .repr: True\n    test 1044 .toRepr: Test (True)\n    test 1045 .units: bool\n    test 1046 .name: Test\n    test 1047 ._name: Test\n    test 1048 .str: True\n    test 1049 .repr: True\n    test 1050 delattr: ''\n\n    testing Int(2,) (pygeodesy.units, 26.03.12)\n    test 1051 .classname: Int\n    test 1052 isinstance: True\n    test 1053 .name: int\n    test 1054 .named: int\n    test 1055 .named2: Int 'int'\n    test 1056 .str: 2\n    test 1057 .toStr: 2\n    test 1058 .std_repr: True\n    test 1059 .repr: 2\n    test 1060 .toRepr: int (2)\n    test 1061 .units: int\n    test 1062 int: Int ('X'): invalid literal for int() with base 10: 'X'\n    test 1063 int: U ('X'): invalid literal for int() with base 10: 'X'\n    test 1064 int: TypeError\n    test 1065 int: Int ('X'): invalid literal for int() with base 10: 'X'  FAILED, KNOWN, expected 'X'\n    test 1066 .named: Test\n    test 1067 .named2: Int 'Test'\n    test 1068 .str: 2\n    test 1069 .toStr: 2\n    test 1070 .repr: 2\n    test 1071 .toRepr: Test (2)\n    test 1072 .units: int\n    test 1073 .name: Test\n    test 1074 ._name: Test\n    test 1075 .str: 2\n    test 1076 .repr: 2\n    test 1077 delattr: ''\n\n    testing Int_(2,) (pygeodesy.units, 26.03.12)\n    test 1078 .classname: Int_\n    test 1079 isinstance: True\n    test 1080 .name: int_\n    test 1081 .named: int_\n    test 1082 .named2: Int_ 'int_'\n    test 1083 .str: 2\n    test 1084 .toStr: 2\n    test 1085 .std_repr: True\n    test 1086 .repr: 2\n    test 1087 .toRepr: int_ (2)\n    test 1088 .units: int_\n    test 1089 int_: Int_ ('X'): invalid literal for int() with base 10: 'X'\n    test 1090 int_: U ('X'): invalid literal for int() with base 10: 'X'\n    test 1091 int_: TypeError\n    test 1092 int_: Int_ ('X'): invalid literal for int() with base 10: 'X'  FAILED, KNOWN, expected 'X'\n    test 1093 .named: Test\n    test 1094 .named2: Int_ 'Test'\n    test 1095 .str: 2\n    test 1096 .toStr: 2\n    test 1097 .repr: 2\n    test 1098 .toRepr: Test (2)\n    test 1099 .units: int_\n    test 1100 .name: Test\n    test 1101 ._name: Test\n    test 1102 .str: 2\n    test 1103 .repr: 2\n    test 1104 delattr: ''\n\n    testing Number_(2,) (pygeodesy.units, 26.03.12)\n    test 1105 .classname: Number_\n    test 1106 isinstance: True\n    test 1107 .name: number_\n    test 1108 .named: number_\n    test 1109 .named2: Number_ 'number_'\n    test 1110 .str: 2\n    test 1111 .toStr: 2\n    test 1112 .std_repr: True\n    test 1113 .repr: 2\n    test 1114 .toRepr: number_ (2)\n    test 1115 .units: number_\n    test 1116 number_: number ('X'): invalid literal for int() with base 10: 'X'\n    test 1117 number_: U ('X'): invalid literal for int() with base 10: 'X'\n    test 1118 number_: TypeError\n    test 1119 number_: number ('X'): invalid literal for int() with base 10: 'X'  FAILED, KNOWN, expected 'X'\n    test 1120 .named: Test\n    test 1121 .named2: Number_ 'Test'\n    test 1122 .str: 2\n    test 1123 .toStr: 2\n    test 1124 .repr: 2\n    test 1125 .toRepr: Test (2)\n    test 1126 .units: number_\n    test 1127 .name: Test\n    test 1128 ._name: Test\n    test 1129 .str: 2\n    test 1130 .repr: 2\n    test 1131 delattr: ''\n\n    testing Precision_(2,) (pygeodesy.units, 26.03.12)\n    test 1132 .classname: Precision_\n    test 1133 isinstance: True\n    test 1134 .name: precision_\n    test 1135 .named: precision_\n    test 1136 .named2: Precision_ 'precision_'\n    test 1137 .str: 2\n    test 1138 .toStr: 2\n    test 1139 .std_repr: True\n    test 1140 .repr: 2\n    test 1141 .toRepr: precision_ (2)\n    test 1142 .units: precision_\n    test 1143 precision_: precision ('X'): invalid literal for int() with base 10: 'X'\n    test 1144 precision_: U ('X'): invalid literal for int() with base 10: 'X'\n    test 1145 precision_: TypeError\n    test 1146 precision_: precision ('X'): invalid literal for int() with base 10: 'X'  FAILED, KNOWN, expected 'X'\n    test 1147 .named: Test\n    test 1148 .named2: Precision_ 'Test'\n    test 1149 .str: 2\n    test 1150 .toStr: 2\n    test 1151 .repr: 2\n    test 1152 .toRepr: Test (2)\n    test 1153 .units: precision_\n    test 1154 .name: Test\n    test 1155 ._name: Test\n    test 1156 .str: 2\n    test 1157 .repr: 2\n    test 1158 delattr: ''\n\n    testing Zone(2,) (pygeodesy.units, 26.03.12)\n    test 1159 .classname: Zone\n    test 1160 isinstance: True\n    test 1161 .name: zone\n    test 1162 .named: zone\n    test 1163 .named2: Zone 'zone'\n    test 1164 .str: 2\n    test 1165 .toStr: 2\n    test 1166 .std_repr: True\n    test 1167 .repr: 2\n    test 1168 .toRepr: zone (2)\n    test 1169 .units: zone\n    test 1170 zone: zone ('X'): invalid literal for int() with base 10: 'X'\n    test 1171 zone: U ('X'): invalid literal for int() with base 10: 'X'\n    test 1172 zone: TypeError\n    test 1173 zone: zone ('X'): invalid literal for int() with base 10: 'X'  FAILED, KNOWN, expected 'X'\n    test 1174 .named: Test\n    test 1175 .named2: Zone 'Test'\n    test 1176 .str: 2\n    test 1177 .toStr: 2\n    test 1178 .repr: 2\n    test 1179 .toRepr: Test (2)\n    test 1180 .units: zone\n    test 1181 .name: Test\n    test 1182 ._name: Test\n    test 1183 .str: 2\n    test 1184 .repr: 2\n    test 1185 delattr: ''\n\n    testing Epoch(1901,) (pygeodesy.units, 26.03.12)\n    test 1186 .classname: Epoch\n    test 1187 isinstance: True\n    test 1188 .name: epoch\n    test 1189 .named: epoch\n    test 1190 .named2: Epoch 'epoch'\n    test 1191 .str: 1901\n    test 1192 .toStr: 1901\n    test 1193 .std_repr: False\n    test 1194 .repr: epoch (1901)\n    test 1195 .toRepr: epoch (1901)\n    test 1196 .units: epoch\n    test 1197 epoch: epoch ('X'): could not convert string to float: 'X'\n    test 1198 epoch: U ('X'): could not convert string to float: 'X'\n    test 1199 epoch: TypeError\n    test 1200 epoch: epoch ('X'): could not convert string to float: 'X'  FAILED, KNOWN, expected 'X'\n    test 1201 .named: Test\n    test 1202 .named2: Epoch 'Test'\n    test 1203 .str: 1901\n    test 1204 .toStr: 1901\n    test 1205 .repr: Test (1901)\n    test 1206 .toRepr: Test (1901)\n    test 1207 .units: epoch\n    test 1208 .name: Test\n    test 1209 ._name: Test\n    test 1210 .str: 1901\n    test 1211 .repr: Test (1901)\n    test 1212 delattr: ''\n\n    testing(pygeodesy.units, 26.03.12)\n\n    test 1213 Azimuth: 1.0\n\n    test 1214 Bearing: 1.0\n    test 1215 Bearing_: 0.01745\n\n    test 1216 Lamd: 6.30\n    test 1217 Phid: 6.30\n\n    test 1218 FIx: 1.0  FAILED, KNOWN, expected 1\n    test 1219 FIx: 1.5\n\n    test 1220 Dash: -\n    test 1221 Dash: -\n\n    test 1222 Dash: '-'\n    test 1223 Dash: Dash ('-')\n\n    test 1224 Join_d: c-a-l-l\n    test 1225 Join_d: c-a-l-l\n\n    test 1226 Join_d: 'c-a-l-l'\n    test 1227 Join_d: Join_d ('c-a-l-l')\n\n    52 of 1227 testUnits.py tests (4.2%) FAILED, ALL KNOWN (pygeodesy 26.3.26 Python 3.14.3 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 36.592 ms\nrunning /Library/Framewo....n3.14 -W default ~/PyGeodesy/test/testUps.py\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.degDMS from .dms by testUps.py line 11\n# lazily imported pygeodesy.F_DMS from .dms by testUps.py line 11\n# lazily imported pygeodesy.parseUTMUPS5 from .utmups by testUps.py line 11\n# lazily imported pygeodesy.RangeError from .errors by testUps.py line 11\n# lazily imported pygeodesy.strs from .streprs by testUps.py line 11\n# lazily imported pygeodesy.toUps8 from .ups by testUps.py line 11\n# lazily imported pygeodesy.toUtmUps8 from .utmups by testUps.py line 11\n# lazily imported pygeodesy.Ups from .ups by testUps.py line 11\n# lazily imported pygeodesy.UtmUps from .utmups by testUps.py line 11\n# lazily imported pygeodesy.ellipsoidalVincenty by testUps.py line 195\n\n    testing testUps.py 23.03.27 (module pygeodesy.ups 25.04.14) isLazy=3\n    test 1 Ups: 00 N 448251.0 5411932.0001\n    test 2 Ups: 00 N 448252 5411933\n    test 3 Ups: 00 N 448251.795 5411932.678\n    test 4 Ups: 00Z N 448251.8 5411932.7 n/a n/a\n    test 5 Ups2: [Z:00, H:N, E:448252, N:5411933]\n    test 6 UtmUps.toLatLon: 43.610051°N, 004.46308°E\n    test 7 UtmUps.toLatLon: 43°36′36.18″N, 004°27′47.09″E\n# lazily imported pygeodesy.mgrs by utmupsBase.py line 523\n    test 8 UtmUps.toMgrs: 60T UP 60176 38249\n# imported pygeodesy.basics into errors.py line 443\n    test 9 toUps: lat ('43.684097°'): inside UTM range [-79.5, 83.5]\n    test 10 UtmUps.toUtm: 60 N 360177 4838249\n    test 11 toUpsID1: 00 N 1530125.78 2426773.6 -132.24798917° 0.99647445\n    test 12 toUtmUps8ID2: 38 N 467367.68 8100752.13 -57.37878422′ 0.99961302  FAILED, KNOWN, expected 38 N 3320416.75 632668.43 +44.0° 1.01619505\n    test 13 toUtmUps8ID2: 00 N 3320416.75 632668.43 +44.0° 1.01619505\n    test 14 toUpsID3: 00 S 2222979.47 1797474.9 -132.24786194° 0.99455723\n    test 15 Ups.toLatLonID4: 84°17′14.04″N, 132°14′52.76″W\n    test 16 Ups.toLatLonID4: 84.287234°N, 132.247989°W\n    test 17 Ups.toLatLonID5: 73°00′00.0″N, 044°00′00.0″E\n    test 18 Ups.toLatLonID5: 73.0°N, 044.0°E\n    test 19 Ups.toLatLonID6: 87°17′14.4″S, 132°14′52.3″E\n    test 20 Ups.toLatLonID6: 87.287333°S, 132.247861°E\n    test 21 latlon: 84.0°N, 084.0°E\n    test 22 toUps: 00 N 2663075 1930308\n    test 23 toUps: 00 N 2663075.299562 1930307.977716 +84.0° 0.99673\n    test 24 toUps(None): (0, 'N', 2663075.299562, 1930307.977716, 'Z', ...)\n    test 25 .scale0: 0.994000\n    test 26 rescale0: 0.997261\n    test 27 NGA-10.2-1: 00 N 2000000.0 2000000.0 +0.0″ 0.994\n    test 28 NGA-10.2-2: 00 N 1998062.320046 2111009.610243 -179.0° 0.994076\n    test 29 NGA-10.2-3: 00 N 1777930.731071 2000000.0 -90.0° 0.994303\n    test 30 NGA-10.2-4: 00 N 1994185.827038 1666906.254073 -1.0° 0.994682\n    test 31 NGA-10.2-5: 00 N 2000000.0 1555731.570643 +0.0″ 0.995212\n    test 32 NGA-10.2-6: 00 N 2009694.068153 1444627.207468 +1.0° 0.995895\n    test 33 NGA-10.2-7: 00 N 2666626.157825 1988363.997132 +89.0° 0.996730\n    test 34 NGA-10.2-8: 46 N 459200.256323 9217519.441609 -2.97767886° 0.997718\n    test 35 NGA-10.2-9: 46 N 468930.934996 9105366.008486 -1.98055172° 0.998860\n    test 36 NGA-10.2-10: 60 N 534921.971582 8993806.415149 +1.97539632° 1.000156\n    test 37 NGA-10.2-11: 01 N 441867.784867 8883084.955948 -2.95450468° 1.001608\n    test 38 NGA-10.2-12: 31 N 243900.35203 4432069.056899 -1.92940969° 1.0004075\n    test 39 NGA-10.2-13: 01 N 277707.830749 331796.291679 -6.28291137′ 1.00021172\n    test 40 NGA-10.2-14: 16 N 166223.907623 221366.16603 -6.28776606′ 1.00097936\n    test 41 NGA-10.2-15: 30 N 722561.736479 110597.972524 +2.09515682′ 1.00021322\n    test 42 NGA-10.2-16: 31 N 166021.443081 0.0 +0.0″ 1.00098106\n    test 43 NGA-10.2-17: 31 S 277438.263521 9889402.027476 +2.09515682′ 1.00021322\n    test 44 NGA-10.2-18: 46 S 166223.907623 9778633.83397 +6.28776606′ 1.00097936\n    test 45 NGA-10.2-19: 60 S 722292.169251 9668203.708321 -6.28291137′ 1.00021172\n    test 46 NGA-10.2-20: 01 S 166831.065275 9557263.747314 +12.56782777′ 1.00097428\n    test 47 NGA-10.3-1: -64.9164123332 -135.0\n    test 48 NGA-10.3-2: -70.0552944014 -153.4349488229\n    test 49 NGA-10.3-3: -72.1263610163 180.0  FAILED, KNOWN, expected -72.1263610163 -180.0\n    test 50 NGA-10.3-4: -70.0552944014 153.4349488229\n    test 51 NGA-10.3-5: -64.9164123332 135.0\n    test 52 NGA-10.3-6: -70.0552944014 -116.5650511771\n    test 53 NGA-10.3-7: -77.3120791908 -135.0\n    test 54 NGA-10.3-8: -81.0106632645 180.0\n    test 55 NGA-10.3-9: -77.3120791908 135.0\n    test 56 NGA-10.3-10: -70.0552944014 116.5650511771\n    test 57 NGA-10.3-11: -72.1263610163 -90.0\n    test 58 NGA-10.3-12: -81.0106632645 -90.0\n    test 59 NGA-10.3-13: -90.0 0.0\n    test 60 NGA-10.3-14: -81.0106632645 90.0\n    test 61 NGA-10.3-15: -72.1263610163 90.0\n    test 62 NGA-10.3-16: -70.0552944014 -63.4349488229\n    test 63 NGA-10.3-17: -77.3120791908 -45.0\n    test 64 NGA-10.3-18: -81.0106632645 0.0\n    test 65 NGA-10.3-19: -77.3120791908 45.0\n    test 66 NGA-10.3-20: -70.0552944014 63.4349488229\n    test 67 NGA-10.3-21: -64.9164123332 -45.0\n    test 68 NGA-10.3-22: -70.0552944014 -26.5650511771\n    test 69 NGA-10.3-23: -72.1263610163 0.0\n    test 70 NGA-10.3-24: -70.0552944014 26.5650511771\n    test 71 NGA-10.3-25: -64.9164123332 45.0\n    test 72 toUps: 00 N 2000000 1288738\n    test 73 toUtm: 02 N 611555 10703765\n    test 74 toUtm: [Z:00Z, H:N, E:2000000, N:2000000]\n\n    2 of 74 testUps.py tests (2.7%) FAILED, ALL KNOWN (pygeodesy 26.3.26 Python 3.14.3 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 11.217 ms\nrunning /Library/Framewo....n3.14 -W default ~/PyGeodesy/test/testUtily.py\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.EPS from .constants by testUtily.py line 11\n# lazily imported pygeodesy.INF from .constants by testUtily.py line 11\n# lazily imported pygeodesy.NEG0 from .constants by testUtily.py line 11\n# lazily imported pygeodesy.NINF from .constants by testUtily.py line 11\n# lazily imported pygeodesy.PI from .constants by testUtily.py line 11\n# lazily imported pygeodesy.PI2 from .constants by testUtily.py line 11\n# lazily imported pygeodesy.PI_2 from .constants by testUtily.py line 11\n# lazily imported pygeodesy.PI3_2 from .constants by testUtily.py line 11\n# lazily imported pygeodesy.acre2ha from .utily by testUtily.py line 11\n# lazily imported pygeodesy.acre2m2 from .utily by testUtily.py line 11\n# lazily imported pygeodesy.atan1 from .utily by testUtily.py line 11\n# lazily imported pygeodesy.atan2d from .utily by testUtily.py line 11\n# lazily imported pygeodesy.chain2m from .utily by testUtily.py line 11\n# lazily imported pygeodesy.cot from .utily by testUtily.py line 11\n# lazily imported pygeodesy.cot_ from .utily by testUtily.py line 11\n# lazily imported pygeodesy.cotd from .utily by testUtily.py line 11\n# lazily imported pygeodesy.cotd_ from .utily by testUtily.py line 11\n# lazily imported pygeodesy.degrees90 from .utily by testUtily.py line 11\n# lazily imported pygeodesy.degrees180 from .utily by testUtily.py line 11\n# lazily imported pygeodesy.degrees360 from .utily by testUtily.py line 11\n# lazily imported pygeodesy.degrees2m from .utily by testUtily.py line 11\n# lazily imported pygeodesy.fathom2m from .utily by testUtily.py line 11\n# lazily imported pygeodesy.fstr from .streprs by testUtily.py line 11\n# lazily imported pygeodesy.ft2m from .utily by testUtily.py line 11\n# lazily imported pygeodesy.furlong2m from .utily by testUtily.py line 11\n# lazily imported pygeodesy.grades400 from .utily by testUtily.py line 11\n# lazily imported pygeodesy.degrees2grades from .utily by testUtily.py line 11\n# lazily imported pygeodesy.grades2degrees from .utily by testUtily.py line 11\n# lazily imported pygeodesy.grades2radians from .utily by testUtily.py line 11\n# lazily imported pygeodesy.ha2acre from .utily by testUtily.py line 11\n# lazily imported pygeodesy.isPoints2 from .iters by testUtily.py line 11\n# lazily imported pygeodesy.map1 from .basics by testUtily.py line 11\n# lazily imported pygeodesy.m2chain from .utily by testUtily.py line 11\n# lazily imported pygeodesy.m2degrees from .utily by testUtily.py line 11\n# lazily imported pygeodesy.m2fathom from .utily by testUtily.py line 11\n# lazily imported pygeodesy.m2ft from .utily by testUtily.py line 11\n# lazily imported pygeodesy.m2furlong from .utily by testUtily.py line 11\n# lazily imported pygeodesy.m2ha from .utily by testUtily.py line 11\n# lazily imported pygeodesy.m2toise from .utily by testUtily.py line 11\n# lazily imported pygeodesy.m2yard from .utily by testUtily.py line 11\n# lazily imported pygeodesy.radiansPI from .utily by testUtily.py line 11\n# lazily imported pygeodesy.radiansPI2 from .utily by testUtily.py line 11\n# lazily imported pygeodesy.radiansPI_2 from .utily by testUtily.py line 11\n# lazily imported pygeodesy.sincos2 from .utily by testUtily.py line 11\n# lazily imported pygeodesy.sincos2d from .utily by testUtily.py line 11\n# lazily imported pygeodesy.sincostan3 from .utily by testUtily.py line 11\n# lazily imported pygeodesy.tan from .utily by testUtily.py line 11\n# lazily imported pygeodesy.tan_ from .utily by testUtily.py line 11\n# lazily imported pygeodesy.tan_2 from .utily by testUtily.py line 11\n# lazily imported pygeodesy.tand from .utily by testUtily.py line 11\n# lazily imported pygeodesy.tand_ from .utily by testUtily.py line 11\n# lazily imported pygeodesy.toise2m from .utily by testUtily.py line 11\n# lazily imported pygeodesy.unroll180 from .utily by testUtily.py line 11\n# lazily imported pygeodesy.wrap90 from .utily by testUtily.py line 11\n# lazily imported pygeodesy.wrap180 from .utily by testUtily.py line 11\n# lazily imported pygeodesy.wrap360 from .utily by testUtily.py line 11\n# lazily imported pygeodesy.wrapPI from .utily by testUtily.py line 11\n# lazily imported pygeodesy.wrapPI2 from .utily by testUtily.py line 11\n# lazily imported pygeodesy.wrapPI_2 from .utily by testUtily.py line 11\n# lazily imported pygeodesy.yard2m from .utily by testUtily.py line 11\n\n    testing testUtily.py 24.12.24 (module pygeodesy.utily 26.03.20) isLazy=3\n\n    test 1 degrees90(PI_2): 90.0\n    test 2 degrees90(PI): 0.0\n    test 3 degrees90(PI2): 0.0\n    test 4 degrees90(-PI_2): -90.0\n    test 5 degrees90(-PI): 0.0\n    test 6 degrees90(-PI2): 0.0\n\n    test 7 degrees180(PI_2): 90.0\n    test 8 degrees180(PI): 180.0\n    test 9 degrees180(PI2): 0.0\n    test 10 degrees180(-PI_2): -90.0\n    test 11 degrees180(-PI): -180.0\n    test 12 degrees180(-PI2): 0.0\n\n    test 13 degrees360(PI_2): 90.0\n    test 14 degrees360(PI): 180.0\n    test 15 degrees360(PI2): 0.0\n    test 16 degrees360(-PI_2): 270.0\n    test 17 degrees360(-PI): 180.0\n    test 18 degrees360(-PI2): 0.0\n\n    test 19 degrees2grades(90): 100.0\n    test 20 degrees2grades(180): 200.0\n    test 21 degrees2grades(360): 400.0\n    test 22 degrees2grades(-90): -100.0\n    test 23 degrees2grades(-180): -200.0\n    test 24 degrees2grades(-360): -400.0\n\n    test 25 grades400(PI_2): 100.0\n    test 26 grades400(PI): 200.0\n    test 27 grades400(PI2): 0.0\n    test 28 grades400(-PI_2): 300.0\n    test 29 grades400(-PI): 200.0\n    test 30 grades400(-PI2): 0.0\n\n    test 31 grades2degrees(100): 90.0\n    test 32 grades2degrees(200): 180.0\n    test 33 grades2degrees(400): 360.0\n    test 34 grades2degrees(-100): -90.0\n    test 35 grades2degrees(-200): -180.0\n    test 36 grades2degrees(-400): -360.0\n\n    test 37 grades2radians(100): 1.5707963267948966\n    test 38 grades2radians(200): 3.141592653589793\n    test 39 grades2radians(400): 6.283185307179586\n    test 40 grades2radians(-100): -1.5707963267948966\n    test 41 grades2radians(-200): -3.141592653589793\n    test 42 grades2radians(-400): -6.283185307179586\n\n    test 43 radiansPI_2(90): 1.5707963267948966\n    test 44 radiansPI_2(180): 0.0\n    test 45 radiansPI_2(360): 0.0\n    test 46 radiansPI_2(-90): -1.5707963267948966\n    test 47 radiansPI_2(-180): 0.0\n    test 48 radiansPI_2(-360): 0.0\n\n    test 49 radiansPI(90): 1.5707963267948966\n    test 50 radiansPI(180): 3.141592653589793\n    test 51 radiansPI(360): 0.0\n    test 52 radiansPI(-90): -1.5707963267948966\n    test 53 radiansPI(-180): -3.141592653589793\n    test 54 radiansPI(-360): 0.0\n\n    test 55 radiansPI2(90): 1.5707963267948966\n    test 56 radiansPI2(180): 3.141592653589793\n    test 57 radiansPI2(360): 0.0\n    test 58 radiansPI2(-90): 4.71238898038469\n    test 59 radiansPI2(-180): 3.141592653589793\n    test 60 radiansPI2(-360): 0.0\n\n    test 61 wrap90(90): 90.0\n    test 62 wrap90(180): 0.0\n    test 63 wrap90(360): 0.0\n    test 64 wrap90(-90): -90.0\n    test 65 wrap90(-180): 0.0\n    test 66 wrap90(-360): 0.0\n\n    test 67 wrap180(90): 90.0\n    test 68 wrap180(180): 180.0\n    test 69 wrap180(360): 0.0\n    test 70 wrap180(-90): -90.0\n    test 71 wrap180(-180): -180.0\n    test 72 wrap180(-360): 0.0\n\n    test 73 wrap360(90): 90.0\n    test 74 wrap360(180): 180.0\n    test 75 wrap360(360): 0.0\n    test 76 wrap360(-90): 270.0\n    test 77 wrap360(-180): 180.0\n    test 78 wrap360(-360): 0.0\n\n    test 79 wrapPI_2(PI_2): 1.5707963267948966\n    test 80 wrapPI_2(PI): 0.0\n    test 81 wrapPI_2(PI2): 0.0\n    test 82 wrapPI_2(-PI_2): -1.5707963267948966\n    test 83 wrapPI_2(-PI): 0.0\n    test 84 wrapPI_2(-PI2): 0.0\n\n    test 85 wrapPI(PI_2): 1.5707963267948966\n    test 86 wrapPI(PI): 3.141592653589793\n    test 87 wrapPI(PI2): 0.0\n    test 88 wrapPI(-PI_2): -1.5707963267948966\n    test 89 wrapPI(-PI): -3.141592653589793\n    test 90 wrapPI(-PI2): 0.0\n\n    test 91 wrapPI2(PI_2): 1.5707963267948966\n    test 92 wrapPI2(PI): 3.141592653589793\n    test 93 wrapPI2(PI2): 0.0\n    test 94 wrapPI2(-PI_2): 4.71238898038469\n    test 95 wrapPI2(-PI): 3.141592653589793\n    test 96 wrapPI2(-PI2): 0.0\n\n    test 97 unroll180: -160.0, -250.0\n    test 98 unroll180: 200.0, 110.0\n\n    test 99 unroll180: -160.0, -250.0\n    test 100 unroll180: 920.0, 830.0\n\n    test 101 unroll180: -160.0, -270.0\n    test 102 unroll180: 200.0, 90.0\n\n    test 103 unroll180: -160.0, -990.0\n    test 104 unroll180: 920.0, 90.0\n\n    test 105 atan1: 0.0\n    test 106 atan1: 0.0\n\n    test 107 cot  : -0.354707939906\n    test 108 cot_ : -0.354707939906\n\n    test 109 cotd : -0.354707939906\n    test 110 cotd_: -0.354707939906\n\n    test 111 sincos2: 3.885780586188048e-16  FAILED, KNOWN, expected 1.7763568394002505e-15\n    test 112 sincos2d: 9.992007221626409e-16  FAILED, KNOWN, expected 1.7763568394002505e-15\n\n    test 113 Matan2d : 2.842170943040401e-14  FAILED, KNOWN, expected 1.7763568394002505e-15\n    test 114 Msincosd: 8.881784197001252e-16  FAILED, KNOWN, expected 1.7763568394002505e-15\n    test 115 sincos*d: 2.7755575615628914e-16  FAILED, KNOWN, expected 1.7763568394002505e-15\n\n    test 116 tan  : -2.819220794060\n    test 117 tan_ : -2.819220794060\n\n    test 118 tand : -2.819220794060\n    test 119 tand_: -2.819220794060\n\n    test 120 iFt2m: 187441\n    test 121 iFt2m: 757050\n    test 122 sFt2m: 187441\n    test 123 sFt2m: 757050\n\n    test 124 m2iFt: 614963.91\n    test 125 m2iFt: 2483759.84\n    test 126 m2sFt: 614962.68\n    test 127 m2sFt: 2483754.88\n\n    test 128 acre2ha: 0.404686\n    test 129 acre2m2: 4046.856422\n    test 130 chain2m: 20.116800\n    test 131 fathom2m: 1.828800\n    test 132 furlong2m: 201.168000\n    test 133 ha2acre: 2.471054\n    test 134 toise2m: 1.949044\n    test 135 yard2m: 0.914400\n    test 136 m2chain: 0.049710\n    test 137 m2fathom: 0.546807\n    test 138 m2furlong: 0.004971\n    test 139 m2ha: 0.000100\n    test 140 m2toise: 0.513072\n    test 141 m2yard: 1.093613\n\n    test 142 degrees2m: 10007557.1761\n# lazily imported pygeodesy.datums by utily.py line 212\n# lazily imported pygeodesy.angles by units.py line 633\n    test 143 degrees2m: 8666798.7443\n    test 144 m2degrees: 90.0\n\n    test 145 degrees2m: 20015114.3522\n    test 146 degrees2m: 19987684.3336\n    test 147 m2degrees: 180.0\n\n    test 148 m2degrees2m(45, lat=0): 45.00\n    test 149 m2degrees2m(45, lat=7): 45.00\n    test 150 m2degrees2m(45, lat=14): 45.00\n    test 151 m2degrees2m(45, lat=21): 45.00\n    test 152 m2degrees2m(45, lat=28): 45.00\n    test 153 m2degrees2m(45, lat=35): 45.00\n    test 154 m2degrees2m(45, lat=42): 45.00\n    test 155 m2degrees2m(45, lat=49): 45.00\n    test 156 m2degrees2m(45, lat=56): 45.00\n    test 157 m2degrees2m(45, lat=63): 45.00\n    test 158 m2degrees2m(45, lat=70): 45.00\n    test 159 m2degrees2m(45, lat=77): 45.00\n    test 160 m2degrees2m(45, lat=84): 45.00\n\n    test 161 isPoints2: False\n\n    test 162 tan_2_semi: PI[1] edge (3.141592): semi-circular\n    test 163 sincostan3(+0.0000): (0.0, 1.0, 0.0)\n    test 164 sincostan3(-0.0000): (-0.0, 1.0, -0.0)  FAILED, KNOWN, expected (0.0, 1.0, 0.0)\n    test 165 sincostan3(+1.5708): (1.0, 0.0, inf)\n    test 166 sincostan3(-1.5708): (-1.0, 0.0, -inf)\n    test 167 sincostan3(+3.1416): (0.0, -1.0, -0.0)\n    test 168 sincostan3(-3.1416): (-0.0, -1.0, 0.0)\n    test 169 sincostan3(+4.7124): (-1.0, 0.0, -inf)  FAILED, KNOWN, expected (-1.0, -0.0, inf)\n    test 170 sincostan3(-1.5708): (-1.0, 0.0, -inf)\n    test 171 sincostan3(+6.2832): (0.0, 1.0, 0.0)  FAILED, KNOWN, expected (-0.0, 1.0, -0.0)\n    test 172 sincostan3(-6.2832): (-0.0, 1.0, -0.0)  FAILED, KNOWN, expected (0.0, 1.0, 0.0)\n\n    9 of 172 testUtily.py tests (5.2%) FAILED, ALL KNOWN (pygeodesy 26.3.26 Python 3.14.3 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 5.416 ms\nrunning /Library/Framewo....n3.14 -W default ~/PyGeodesy/test/testUtm.py\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.Ellipsoids from .ellipsoids by testUtm.py line 11\n# lazily imported pygeodesy.EPS from .constants by testUtm.py line 11\n# lazily imported pygeodesy.F_DEG from .dms by testUtm.py line 11\n# lazily imported pygeodesy.F_DMS from .dms by testUtm.py line 11\n# lazily imported pygeodesy.fstr from .streprs by testUtm.py line 11\n# lazily imported pygeodesy.parseUTM5 from .utm by testUtm.py line 11\n# lazily imported pygeodesy.toUtm8 from .utm by testUtm.py line 11\n# lazily imported pygeodesy.Utm from .utm by testUtm.py line 11\n# lazily imported pygeodesy.ellipsoidalVincenty by testUtm.py line 187\n\n    testing testUtm.py 25.04.25 (module pygeodesy.utm 24.11.26) isLazy=3\n    test 1 Utm1: 03 N 448251.0 5411932.0001\n    test 2 Utm2: 31 N 448252 5411933\n    test 3 Utm2: 31 N 448251.795 5411932.678\n    test 4 Utm2: 31 N 448251.8 5411932.7 n/a n/a\n    test 5 Utm.toLatLon1: 48.8582°N, 002.2945°E\n    test 6 Utm.toLatLon1: 48°51′29.52″N, 002°17′40.2″E\n    test 7 toUtm1: 31 N 448252 5411933\n    test 8 toUtm1: 31 N 448251.795 5411932.678\n    test 9 toUtm2: [Z:31U, H:N, E:448252, N:5411933, C:-31.87873265′, S:0.9996329]\n    test 10 toUtm4: 48 N 377302 1483035\n    test 11 toUtm5: 48P N 377302.354183 1483034.777084 -15.77480856′ 0.99978623\n    test 12 toUtm6: 13 S 622698 8516965\n    test 13 toUtm7: 13L S 622697.645817 8516965.222916 -15.77480856′ 0.99978623\n# lazily imported pygeodesy.etm by utm.py line 248\n    test 14 toEtm: 13 S 622698 8516965\n# lazily imported pygeodesy.mgrs by utmupsBase.py line 523\n    test 15 toMgrs1: 13L FF 22697 16965\n    test 16 toMgrs2: 31U DQ 48251 11932\n    test 17 toUtm14: 14 S -27436 8512042\n    test 18 Utm8: 18 N 516620 4574500\n    test 19 Utm8.toLatLon: 41.321801°N, 074.801413°W\n    test 20 Utm8.toLatLon: 41.321801N, 074.801413W\n    test 21 toUtm(61.44°N, 025.4°E): 35V N 414668 6812845\n    test 22 toUtm(47.04°S, 073.48°W): 18G S 615472 4789270\n    test 23 toUtm(40.4°N, 074.7°W): 18T N 525458 4472198\n    test 24 toUtm(44.5°N, 088.5°W): 16T N 380753 4928503\n    test 25 toUtm(50.8694°N, 115.6508°W): 11U N 594937 5636169\n    test 26 toUtm(00.0°N, 000.0°E): 31N N 166021 0\n    test 27 toUtm(00.13°N, 000.2324°W): 30N N 808084 14386\n    test 28 toUtm(45.6456°S, 023.3545°E): 34G S 683474 4942631\n    test 29 toUtm(12.765°S, 033.8765°W): 25L S 404859 8588691\n# imported pygeodesy.basics into errors.py line 443\n    test 30 toUtm(80.5434°S, 170.654°W): lat ('-80.5434°'): outside UTM range [-80, 84)\n    test 31 toUtm(90.0°N, 177.0°E): lat ('90.0°'): outside UTM range [-80, 84)\n    test 32 toUtm(90.0°S, 177.0°W): lat ('-90.0°'): outside UTM range [-80, 84)\n    test 33 toUtm(90.0°N, 003.0°E): lat ('90.0°'): outside UTM range [-80, 84)\n    test 34 toUtm(23.4578°N, 135.4545°W): 08Q N 453580 2594273\n    test 35 toUtm(77.345°N, 156.9876°E): 57X N 450794 8586116\n    test 36 toUtm(89.3454°S, 048.9306°W): lat ('-89.3454°'): outside UTM range [-80, 84)\n    test 37 toUtm(60.0°N, 001.0°E): 31V N 388456 6653097\n    test 38 toUtm(60.0°N, 003.0°E): 32V N 165640 6666594\n    test 39 toUtm(60.0°N, 006.0°E): 32V N 332705 6655205\n    test 40 toUtm(60.0°N, 009.0°E): 32V N 500000 6651411\n    test 41 toUtm(60.0°N, 012.0°E): 33V N 332705 6655205\n    test 42 toUtm(76.0°N, 001.0°E): 31X N 446000 8436100\n    test 43 toUtm(76.0°N, 007.0°E): 31X N 607943 8438843\n    test 44 toUtm(76.0°N, 013.0°E): 33X N 446000 8436100\n    test 45 toUtm(76.0°N, 019.0°E): 33X N 607943 8438843\n    test 46 toUtm(76.0°N, 025.0°E): 35X N 446000 8436100\n    test 47 toUtm(76.0°N, 031.0°E): 35X N 607943 8438843\n    test 48 toUtm(76.0°N, 037.0°E): 37X N 446000 8436100\n    test 49 toUtm(50.77535°N, 006.08389°E): 32U N 294409 5628898\n    test 50 toUtm(40.71435°N, 074.00597°W): 18T N 583960 4507523\n    test 51 toUtm(41.28646°S, 174.77624°E): 60G S 313784 5427057\n    test 52 toUtm(33.92487°S, 018.42406°E): 34H S 261878 6243186\n    test 53 toUtm(32.89018°S, 068.84405°W): 19H S 514586 6360877\n    test 54 toUtm(64.83778°N, 147.71639°W): 06W N 466013 7190568\n    test 55 toUtm(56.7968°N, 005.00601°W): 30V N 377486 6296562\n    test 56 toUtm(84.0°N, 005.00601°W): lat ('84.0°'): outside UTM range [-80, 84)\n    test 57 toUtm('Mt Assiniboine'): [Z:11U, H:N, E:594934, N:5636174]\n    test 58 Utm9: 55 S 321441 5810117\n    test 59 Utm9.toLatLon(eps=2.2204e-12): -37.83891644, 144.97077387\n    test 60 Utm9.toLatLon(eps=2.2204e-13): -37.83891644, 144.97077387\n    test 61 Utm9.toLatLon(eps=2.2204e-14): -37.83891644, 144.97077387\n    test 62 Utm9.toLatLon(eps=2.2204e-15): -37.83891644, 144.97077387\n    test 63 Utm9.toLatLon(eps=2.2204e-16): -37.83891644, 144.97077387\n    test 64 Utm9.toLatLon(eps=2.2204e-17): -37.83891644, 144.97077387\n    test 65 Utm9.toLatLon(eps=2.2204e-18): -37.83891644, 144.97077387\n    test 66 Utm9.toLatLon(eps=2.2204e-19): -37.83891644, 144.97077387\n    test 67 Utm9.toLatLon(eps=2.2204e-20): -37.83891644, 144.97077387\n    test 68 Utm10: 31 N 400000 5000000\n    test 69 Utm10.toLatLon(eps=2.2204e-12): 45.14639288, 1.72796704\n    test 70 Utm10.toLatLon(eps=2.2204e-13): 45.14639288, 1.72796704\n    test 71 Utm10.toLatLon(eps=2.2204e-14): 45.14639288, 1.72796704\n    test 72 Utm10.toLatLon(eps=2.2204e-15): 45.14639288, 1.72796704\n    test 73 Utm10.toLatLon(eps=2.2204e-16): 45.14639288, 1.72796704\n    test 74 Utm10.toLatLon(eps=2.2204e-17): 45.14639288, 1.72796704\n    test 75 Utm10.toLatLon(eps=2.2204e-18): 45.14639288, 1.72796704\n    test 76 Utm10.toLatLon(eps=2.2204e-19): 45.14639288, 1.72796704\n    test 77 Utm10.toLatLon(eps=2.2204e-20): 45.14639288, 1.72796704\n    test 78 Utm111: 37 N 1399093 8314607\n    test 79 Utm111.toLatLon(eps=2.2204e-12): 70.54298527, 40.28205459\n    test 80 Utm111.toLatLon(eps=2.2204e-13): 70.54298527, 40.28205459\n    test 81 Utm111.toLatLon(eps=2.2204e-14): 70.54298527, 40.28205459\n    test 82 Utm111.toLatLon(eps=2.2204e-15): 70.54298527, 40.28205459\n    test 83 Utm111.toLatLon(eps=2.2204e-16): 70.54298527, 40.28205459\n    test 84 Utm111.toLatLon(eps=2.2204e-17): 70.54298527, 40.28205459\n    test 85 Utm111.toLatLon(eps=2.2204e-18): 70.54298527, 40.28205459\n    test 86 Utm111.toLatLon(eps=2.2204e-19): 70.54298527, 40.28205459\n    test 87 Utm111.toLatLon(eps=2.2204e-20): 70.54298527, 40.28205459\n    test 88 CV#86: [Z:01, H:N, E:100000, N:0, C:n/a, S:n/a]\n    test 89 CV#86: 00.0°N, 179.407673°E\n    test 90 CV#86: [Z:60, H:N, E:767993, N:0, C:+0.0″, S:1.000489]  FAILED, KNOWN, expected [Z:01, H:N, E:100000, N:0, ...]\n    test 91 #63: 32 N 280000 5653000\n    test 92 toMgrs: 32U KB 80000 53000\n    test 93 toLatLon: (50.986484, 5.865326, Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Transforms.WGS84), -2.436605, 1.000194)\n    test 94 band: U\n    test 95 band: band ('?'): not 'C', 'D', 'E', 'F', 'G', 'H', 'J', 'K', 'L', 'M', 'N', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W' or 'X'\n    test 96 datum: Datum(name='_Sphere', ellipsoid=Ellipsoids.Sphere, transform=Transforms.Identity)  FAILED, KNOWN, expected same\n    test 97 repr: [Z:32U, H:N, E:280000, N:5653000]\n    test 98 E.N.: (280000.0, 5653000.0)\n# lazily imported pygeodesy.elliptic by ellipsoids.py line 856\n\n    test 99 latFootPoint: 59.97989371\n    test 100 latFootPoint: -59.97989371\n    test 101 latFootPoint: 59.97988614\n    test 102 latFootPoint: -59.97988614\n    test 103 phiFootPoint: 1.04407841\n    test 104 phiFootPoint: -1.04407841\n\n    2 of 104 testUtm.py tests (1.9%) FAILED, ALL KNOWN (pygeodesy 26.3.26 Python 3.14.3 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 24.471 ms\nrunning /Library/Framewo....n3.14 -W default ~/PyGeodesy/test/testUtmTMcoords.py\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.Ellipsoids from .ellipsoids by testTMcoords.py line 14\n# lazily imported pygeodesy.EPS from .constants by testTMcoords.py line 14\n# lazily imported pygeodesy.RangeError from .errors by testTMcoords.py line 14\n# lazily imported pygeodesy.toUtm8 from .utm by testUtmTMcoords.py line 17\n# lazily imported pygeodesy.Utm from .utm by testUtmTMcoords.py line 17\n\n    testing testUtmTMcoords.py 24.03.22 (module pygeodesy.utm 24.11.26) isLazy=3\n    test 1 line 1 toUtm8.easting: 1548706.791619\n    test 2 line 1 toUtm8.northing: 8451449.198772\n    test 3 line 1 toUtm8.gamma: 43.922790\n    test 4 line 1 toUtm8.scale: 1.029060\n    test 5 line 1 toUtm8.lat: 70.579277\n    test 6 line 1 toUtm8.lon: 45.599420\n    test 7 line 2 toUtm8.easting: 2624150.740929\n    test 8 line 2 toUtm8.northing: 1204434.041605\n    test 9 line 2 toUtm8.gamma: 4.292619\n    test 10 line 2 toUtm8.scale: 1.086051\n    test 11 line 2 toUtm8.lat: 10.018894\n    test 12 line 2 toUtm8.lon: 23.313324\n    test 13 line 3 toUtm8.easting: 9855841.232935\n    test 14 line 3 toUtm8.northing: 6145496.115157  FAILED, KNOWN, expected 6145496.115155\n    test 15 line 3 toUtm8.gamma: 53.348315\n    test 16 line 3 toUtm8.scale: 2.445098\n    test 17 line 3 toUtm8.lat: 19.479896\n    test 18 line 3 toUtm8.lon: 75.662049\n    test 19 line 4 toUtm8.easting: 3206390.691996\n    test 20 line 4 toUtm8.northing: 2650745.400406\n    test 21 line 4 toUtm8.gamma: 11.666950\n    test 22 line 4 toUtm8.scale: 1.129359\n    test 23 line 4 toUtm8.lat: 21.072465\n    test 24 line 4 toUtm8.lon: 29.828684\n    test 25 line 5 toUtm8.easting: 4328154.083501\n    test 26 line 5 toUtm8.northing: 749647.623690\n    test 27 line 5 toUtm8.gamma: 4.024317\n    test 28 line 5 toUtm8.scale: 1.240829\n    test 29 line 5 toUtm8.lat: 5.458957\n    test 30 line 5 toUtm8.lon: 36.385237\n    test 31 line 6 toUtm8.easting: 847598.266514\n    test 32 line 6 toUtm8.northing: 7947180.962440\n    test 33 line 6 toUtm8.gamma: 21.639091\n    test 34 line 6 toUtm8.scale: 1.008399\n    test 35 line 6 toUtm8.lat: 70.175454\n    test 36 line 6 toUtm8.lon: 22.865350\n    test 37 line 7 toUtm8.easting: 2727657.337974\n    test 38 line 7 toUtm8.northing: 8283916.696410\n    test 39 line 7 toUtm8.gamma: 55.690909\n    test 40 line 7 toUtm8.scale: 1.091942\n    test 41 line 7 toUtm8.lat: 61.965605\n    test 42 line 7 toUtm8.lon: 58.931371\n    test 43 line 8 toUtm8.easting: 2331001.751890\n    test 44 line 8 toUtm8.northing: 1313608.224751\n    test 45 line 8 toUtm8.gamma: 4.214690\n    test 46 line 8 toUtm8.scale: 1.067599\n    test 47 line 8 toUtm8.lat: 11.116050\n    test 48 line 8 toUtm8.lon: 20.901069\n    test 49 line 9 toUtm8.easting: 6035557.239480\n    test 50 line 9 toUtm8.northing: 5791770.791879\n    test 51 line 9 toUtm8.gamma: 43.698170\n    test 52 line 9 toUtm8.scale: 1.481260\n    test 53 line 9 toUtm8.lat: 32.210543\n    test 54 line 9 toUtm8.lon: 60.705849\n    test 55 line 10 toUtm8.easting: 1064553.125852\n    test 56 line 10 toUtm8.northing: 9417273.737208\n    test 57 line 10 toUtm8.gamma: 61.100380\n    test 58 line 10 toUtm8.scale: 1.013475\n    test 59 line 10 toUtm8.lat: 79.187451\n    test 60 line 10 toUtm8.lon: 61.532382\n    test 61 line 11 toUtm8.easting: 1400137.116164\n    test 62 line 11 toUtm8.northing: 9616907.017686\n    test 63 line 11 toUtm8.gamma: 74.527087\n    test 64 line 11 toUtm8.scale: 1.023640\n    test 65 line 11 toUtm8.lat: 77.103759\n    test 66 line 11 toUtm8.lon: 74.899105\n\n    test skipped (1): line 12 toUtm8.'21.889514024862 80.019885892785 9860691.0166261508479 7433039.1433282732643 65.357693372142649007 2.43897318400097845293'\n\n    test skipped (2): line 13 toUtm8.'30.53629567699 82.186177919416 8076501.8336948099169 8561614.1747819103782 75.073393190238557702 1.90620203595203984732'\n    test 67 line 14 toUtm8.easting: 3335099.866623\n    test 68 line 14 toUtm8.northing: 6740519.084015\n    test 69 line 14 toUtm8.gamma: 40.611821\n    test 70 line 14 toUtm8.scale: 1.139021\n    test 71 line 14 toUtm8.lat: 49.990485\n    test 72 line 14 toUtm8.lon: 48.203179\n\n    test skipped (3): line 15 toUtm8.'14.486311853451 80.905136710227 12051574.9284996192629 6587213.0519512810474 59.033236797073779959 3.3574686117030164354'\n    test 73 line 16 toUtm8.easting: 5387578.735298\n    test 74 line 16 toUtm8.northing: 4111216.907168\n    test 75 line 16 toUtm8.gamma: 27.574337\n    test 76 line 16 toUtm8.scale: 1.379357\n    test 77 line 16 toUtm8.lat: 25.936824\n    test 78 line 16 toUtm8.lon: 49.913598\n    test 79 line 17 toUtm8.easting: 2622214.380233\n    test 80 line 17 toUtm8.northing: 8678923.984567\n    test 81 line 17 toUtm8.gamma: 61.697275\n    test 82 line 17 toUtm8.scale: 1.084810\n    test 83 line 17 toUtm8.lat: 64.402196\n    test 84 line 17 toUtm8.lon: 64.091395\n\n    test skipped (4): line 18 toUtm8.'48.451353594584 84.856197560189 5068474.169632778036 9492066.9937094951003 83.156739839119105102 1.3299901985118008373'\n    test 85 line 19 toUtm8.easting: 738062.047779\n    test 86 line 19 toUtm8.northing: 3031007.074116\n    test 87 line 19 toUtm8.gamma: 3.416802\n    test 88 line 19 toUtm8.scale: 1.006332\n    test 89 line 19 toUtm8.lat: 27.203895\n    test 90 line 19 toUtm8.lon: 7.440229\n    test 91 line 20 toUtm8.easting: 1944413.834565\n    test 92 line 20 toUtm8.northing: 9613299.224493\n    test 93 line 20 toUtm8.gamma: 78.462831\n    test 94 line 20 toUtm8.scale: 1.046134\n    test 95 line 20 toUtm8.lat: 72.509000\n    test 96 line 20 toUtm8.lon: 78.982283\n    test 97 line 21 toUtm8.easting: 2114521.418406\n    test 98 line 21 toUtm8.northing: 4954077.440098\n    test 99 line 21 toUtm8.gamma: 17.571878\n    test 100 line 21 toUtm8.scale: 1.055093\n    test 101 line 21 toUtm8.lat: 41.824954\n    test 102 line 21 toUtm8.lon: 25.392744\n    test 103 line 22 toUtm8.easting: 620365.905090\n    test 104 line 22 toUtm8.northing: 4755542.026562\n    test 105 line 22 toUtm8.gamma: 5.152022\n    test 106 line 22 toUtm8.scale: 1.004338\n    test 107 line 22 toUtm8.lat: 42.701376\n    test 108 line 22 toUtm8.lon: 7.572738\n    test 109 line 23 toUtm8.easting: 263004.770989\n    test 110 line 23 toUtm8.northing: 4493669.762451\n    test 111 line 23 toUtm8.gamma: 2.020523\n    test 112 line 23 toUtm8.scale: 1.000452\n    test 113 line 23 toUtm8.lat: 40.552052\n    test 114 line 23 toUtm8.lon: 3.106056\n    test 115 line 24 toUtm8.easting: 3217221.739462\n    test 116 line 24 toUtm8.northing: 437776.119161\n    test 117 line 24 toUtm8.gamma: 1.848169\n    test 118 line 24 toUtm8.scale: 1.130558\n    test 119 line 24 toUtm8.lat: 3.501242\n    test 120 line 24 toUtm8.lon: 27.806507\n\n    test skipped (5): line 25 toUtm8.'10.148714782203 85.373767569431 14661142.4449607145297 7476100.8241849819567 68.376669038799719822 4.89664968310721668858'\n    test 121 line 26 toUtm8.easting: 967777.158554\n    test 122 line 26 toUtm8.northing: 6615684.266592\n    test 123 line 26 toUtm8.gamma: 14.410044\n    test 124 line 26 toUtm8.scale: 1.011100\n    test 125 line 26 toUtm8.lat: 58.582623\n    test 126 line 26 toUtm8.lon: 16.755558\n    test 127 line 27 toUtm8.easting: 7558840.728461\n    test 128 line 27 toUtm8.northing: 4144728.130764\n    test 129 line 27 toUtm8.gamma: 32.557264\n    test 130 line 27 toUtm8.scale: 1.791490\n    test 131 line 27 toUtm8.lat: 19.793004\n    test 132 line 27 toUtm8.lon: 61.746763\n    test 133 line 28 toUtm8.easting: 1056008.314161\n    test 134 line 28 toUtm8.northing: 9290799.692669\n    test 135 line 28 toUtm8.gamma: 55.843278\n    test 136 line 28 toUtm8.scale: 1.013253\n    test 137 line 28 toUtm8.lat: 78.666776\n    test 138 line 28 toUtm8.lon: 56.365355\n    test 139 line 29 toUtm8.easting: 1943965.134687\n    test 140 line 29 toUtm8.northing: 1389972.228690\n    test 141 line 29 toUtm8.gamma: 3.774869\n    test 142 line 29 toUtm8.scale: 1.046724\n    test 143 line 29 toUtm8.lat: 11.998788\n    test 144 line 29 toUtm8.lon: 17.597873\n    test 145 line 30 toUtm8.easting: 5803077.072902\n    test 146 line 30 toUtm8.northing: 5649957.943659\n    test 147 line 30 toUtm8.gamma: 41.717943\n    test 148 line 30 toUtm8.scale: 1.442572\n    test 149 line 30 toUtm8.lat: 32.540378\n    test 150 line 30 toUtm8.lon: 58.764613\n    test 151 line 31 toUtm8.easting: 2928716.986009\n    test 152 line 31 toUtm8.northing: 5731835.058317\n    test 153 line 31 toUtm8.gamma: 28.538550\n    test 154 line 31 toUtm8.scale: 1.106780\n    test 155 line 31 toUtm8.lat: 45.160356\n    test 156 line 31 toUtm8.lon: 37.465285\n    test 157 line 32 toUtm8.easting: 326141.975756\n    test 158 line 32 toUtm8.northing: 8881325.164543\n    test 159 line 32 toUtm8.gamma: 16.111415\n    test 160 line 32 toUtm8.scale: 1.000900\n    test 161 line 32 toUtm8.lat: 79.584190\n    test 162 line 32 toUtm8.lon: 16.367006\n    test 163 line 33 toUtm8.easting: 3933015.267450\n    test 164 line 33 toUtm8.northing: 7932373.909512\n    test 165 line 33 toUtm8.gamma: 58.577424\n    test 166 line 33 toUtm8.scale: 1.194811\n    test 167 line 33 toUtm8.lat: 52.470664\n    test 168 line 33 toUtm8.lon: 64.125580\n    test 169 line 34 toUtm8.easting: 8598926.983213\n    test 170 line 34 toUtm8.northing: 6214135.167503\n    test 171 line 34 toUtm8.gamma: 52.612878\n    test 172 line 34 toUtm8.scale: 2.051367\n    test 173 line 34 toUtm8.lat: 23.702673\n    test 174 line 34 toUtm8.lon: 72.630363\n    test 175 line 35 toUtm8.easting: 6620553.333772\n    test 176 line 35 toUtm8.northing: 6540527.122948\n    test 177 line 35 toUtm8.gamma: 52.350140\n    test 178 line 35 toUtm8.scale: 1.586614\n    test 179 line 35 toUtm8.lat: 32.603520\n    test 180 line 35 toUtm8.lon: 67.280123\n    test 181 line 36 toUtm8.easting: 1515136.758292\n    test 182 line 36 toUtm8.northing: 3858996.087537\n    test 183 line 36 toUtm8.gamma: 9.225127\n    test 184 line 36 toUtm8.scale: 1.028029\n    test 185 line 36 toUtm8.lat: 33.776224\n    test 186 line 36 toUtm8.lon: 16.280993\n    test 187 line 37 toUtm8.easting: 479854.373445\n    test 188 line 37 toUtm8.northing: 8980501.389896\n    test 189 line 37 toUtm8.gamma: 25.021222\n    test 190 line 37 toUtm8.scale: 1.002415\n    test 191 line 37 toUtm8.lat: 79.932747\n    test 192 line 37 toUtm8.lon: 25.363622\n    test 193 line 38 toUtm8.easting: 5243446.564940\n    test 194 line 38 toUtm8.northing: 140657.213960\n    test 195 line 38 toUtm8.gamma: 0.862817\n    test 196 line 38 toUtm8.scale: 1.360358\n    test 197 line 38 toUtm8.lat: 0.935056\n    test 198 line 38 toUtm8.lon: 42.538824\n\n    test skipped (6): line 39 toUtm8.'13.490862440668 83.178380075606 12806457.9232176809509 7170118.6846750266674 64.708921319446620085 3.7405880916836789809'\n    test 199 line 40 toUtm8.easting: 1202993.459158\n    test 200 line 40 toUtm8.northing: 5557316.053599\n    test 201 line 40 toUtm8.gamma: 12.579061\n    test 202 line 40 toUtm8.scale: 1.017426\n    test 203 line 40 toUtm8.lat: 48.979057\n    test 204 line 40 toUtm8.lon: 16.474542\n    test 205 line 41 toUtm8.easting: 1729088.710196\n    test 206 line 41 toUtm8.northing: 7770874.289954\n    test 207 line 41 toUtm8.gamma: 36.021783\n    test 208 line 41 toUtm8.scale: 1.036397\n    test 209 line 41 toUtm8.lat: 65.036016\n    test 210 line 41 toUtm8.lon: 38.729091\n    test 211 line 42 toUtm8.easting: 2437301.517425\n    test 212 line 42 toUtm8.northing: 5539327.748318\n    test 213 line 42 toUtm8.gamma: 23.461879\n    test 214 line 42 toUtm8.scale: 1.073459\n    test 215 line 42 toUtm8.lat: 45.510091\n    test 216 line 42 toUtm8.lon: 31.303729\n    test 217 line 43 toUtm8.easting: 3647186.135066\n    test 218 line 43 toUtm8.northing: 2086412.330983\n    test 219 line 43 toUtm8.gamma: 10.023991\n    test 220 line 43 toUtm8.scale: 1.168707\n    test 221 line 43 toUtm8.lat: 16.058010\n    test 222 line 43 toUtm8.lon: 32.520026\n    test 223 line 44 toUtm8.easting: 1818497.243556\n    test 224 line 44 toUtm8.northing: 4275471.745057\n    test 225 line 44 toUtm8.gamma: 12.499656\n    test 226 line 44 toUtm8.scale: 1.040604\n    test 227 line 44 toUtm8.lat: 36.845200\n    test 228 line 44 toUtm8.lon: 20.282283\n    test 229 line 45 toUtm8.easting: 3751304.113783\n    test 230 line 45 toUtm8.northing: 5130454.001592\n    test 231 line 45 toUtm8.gamma: 28.959707\n    test 232 line 45 toUtm8.scale: 1.177681\n    test 233 line 45 toUtm8.lat: 37.865481\n    test 234 line 45 toUtm8.lon: 41.990402\n    test 235 line 46 toUtm8.easting: 2616733.138544\n    test 236 line 46 toUtm8.northing: 394644.463815\n    test 237 line 46 toUtm8.gamma: 1.390425\n    test 238 line 46 toUtm8.scale: 1.085595\n    test 239 line 46 toUtm8.lat: 3.287272\n    test 240 line 46 toUtm8.lon: 22.917604\n    test 241 line 47 toUtm8.easting: 1756506.573942\n    test 242 line 47 toUtm8.northing: 5570393.986394\n    test 243 line 47 toUtm8.gamma: 17.897894\n    test 244 line 47 toUtm8.scale: 1.037732\n    test 245 line 47 toUtm8.lat: 47.813686\n    test 246 line 47 toUtm8.lon: 23.545092\n    test 247 line 48 toUtm8.easting: 8752461.894711\n    test 248 line 48 toUtm8.northing: 6087728.152284\n    test 249 line 48 toUtm8.gamma: 51.628465\n    test 250 line 48 toUtm8.scale: 2.095465\n    test 251 line 48 toUtm8.lat: 22.836853\n    test 252 line 48 toUtm8.lon: 72.604385\n    test 253 line 49 toUtm8.easting: 1309272.216432\n    test 254 line 49 toUtm8.northing: 59520.028899\n    test 255 line 49 toUtm8.gamma: 0.109069\n    test 256 line 49 toUtm8.scale: 1.020897\n    test 257 line 49 toUtm8.lat: 0.527262\n    test 258 line 49 toUtm8.lon: 11.684209\n    test 259 line 50 toUtm8.easting: 328652.277129\n    test 260 line 50 toUtm8.northing: 2233043.958874\n    test 261 line 50 toUtm8.gamma: 1.084863\n    test 262 line 50 toUtm8.scale: 1.000935\n    test 263 line 50 toUtm8.lat: 20.166742\n    test 264 line 50 toUtm8.lon: 3.143948\n\n    test skipped (7): line 51 toUtm8.'28.604629015528 85.988721094779 8637959.7164470998207 9190635.1560309800028 81.802562643198123218 2.05432863342852874819'\n\n    test skipped (8): line 52 toUtm8.'28.984047991106 85.833447775172 8548521.4551470334531 9172410.9432821880799 81.583928102890161419 2.02964145862183583179'\n    test 265 line 53 toUtm8.easting: 796987.281104\n    test 266 line 53 toUtm8.northing: 7677446.357675\n    test 267 line 53 toUtm8.gamma: 18.084472\n    test 268 line 53 toUtm8.scale: 1.007381\n    test 269 line 53 toUtm8.lat: 68.071020\n    test 270 line 53 toUtm8.lon: 19.392823\n\n    test skipped (9): line 54 toUtm8.'61.416576191872 81.981611413918 3291036.4967623295988 9513199.6006662170596 80.890253980644739593 1.13482563910814382209'\n    test 271 line 55 toUtm8.easting: 7087225.330906\n    test 272 line 55 toUtm8.northing: 8382823.855822\n    test 273 line 55 toUtm8.gamma: 72.253756\n    test 274 line 55 toUtm8.scale: 1.678070\n    test 275 line 55 toUtm8.lat: 35.074753\n    test 276 line 55 toUtm8.lon: 79.496003\n    test 277 line 56 toUtm8.easting: 5090358.125724\n    test 278 line 56 toUtm8.northing: 4318294.133489\n    test 279 line 56 toUtm8.gamma: 28.266280\n    test 280 line 56 toUtm8.scale: 1.336264\n    test 281 line 56 toUtm8.lat: 28.078790\n    test 282 line 56 toUtm8.lon: 48.684350\n\n    test skipped (10): line 57 toUtm8.'84.986930137199 2.067177857261 20163.0752214330146 9438635.9888499043815 2.059277291707588222 .99960496589466017622'\n    test 283 line 58 toUtm8.easting: 3447670.550785\n    test 284 line 58 toUtm8.northing: 3680238.888223\n    test 285 line 58 toUtm8.gamma: 17.934948\n    test 286 line 58 toUtm8.scale: 1.149831\n    test 287 line 58 toUtm8.lat: 28.473948\n    test 288 line 58 toUtm8.lon: 34.127306\n    test 289 line 59 toUtm8.easting: 3396522.906798\n    test 290 line 59 toUtm8.northing: 8093659.687593\n    test 291 line 59 toUtm8.gamma: 57.747117\n    test 292 line 59 toUtm8.scale: 1.144006\n    test 293 line 59 toUtm8.lat: 56.629354\n    test 294 line 59 toUtm8.lon: 62.196474\n    test 295 line 60 toUtm8.easting: 11249894.100794  FAILED, KNOWN, expected 11249894.100784\n    test 296 line 60 toUtm8.northing: 1619226.506360  FAILED, KNOWN, expected 1619226.506299\n    test 297 line 60 toUtm8.gamma: 14.210358\n    test 298 line 60 toUtm8.scale: 3.048347\n    test 299 line 60 toUtm8.lat: 4.747762\n    test 300 line 60 toUtm8.lon: 70.932555\n    test 301 line 61 toUtm8.easting: 6808805.230950\n    test 302 line 61 toUtm8.northing: 8044779.777369\n    test 303 line 61 toUtm8.gamma: 68.242008\n    test 304 line 61 toUtm8.scale: 1.621464\n    test 305 line 61 toUtm8.lat: 35.882113\n    test 306 line 61 toUtm8.lon: 76.741849\n    test 307 line 62 toUtm8.easting: 2306021.556506\n    test 308 line 62 toUtm8.northing: 757191.592866\n    test 309 line 62 toUtm8.gamma: 2.385686\n    test 310 line 62 toUtm8.scale: 1.066159\n    test 311 line 62 toUtm8.lat: 6.420705\n    test 312 line 62 toUtm8.lon: 20.416028\n    test 313 line 63 toUtm8.easting: 1547406.313862\n    test 314 line 63 toUtm8.northing: 6048712.751824\n    test 315 line 63 toUtm8.gamma: 18.474372\n    test 316 line 63 toUtm8.scale: 1.029123\n    test 317 line 63 toUtm8.lat: 52.335248\n    test 318 line 63 toUtm8.lon: 22.879294\n    test 319 line 64 toUtm8.easting: 2430467.650383\n    test 320 line 64 toUtm8.northing: 7557167.613972\n    test 321 line 64 toUtm8.gamma: 42.110021\n    test 322 line 64 toUtm8.scale: 1.072759\n    test 323 line 64 toUtm8.lat: 59.846391\n    test 324 line 64 toUtm8.lon: 46.262536\n    test 325 line 65 toUtm8.easting: 2334053.905830\n    test 326 line 65 toUtm8.northing: 1948076.966582\n    test 327 line 65 toUtm8.gamma: 6.353185\n    test 328 line 65 toUtm8.scale: 1.067733\n    test 329 line 65 toUtm8.lat: 16.461790\n    test 330 line 65 toUtm8.lon: 21.433269\n    test 331 line 66 toUtm8.easting: 5564175.186737\n    test 332 line 66 toUtm8.northing: 1836851.660412\n    test 333 line 66 toUtm8.gamma: 11.870682\n    test 334 line 66 toUtm8.scale: 1.408265\n    test 335 line 66 toUtm8.lat: 11.707905\n    test 336 line 66 toUtm8.lon: 45.827075\n    test 337 line 67 toUtm8.easting: 6118505.590359\n    test 338 line 67 toUtm8.northing: 7631684.552421\n    test 339 line 67 toUtm8.gamma: 62.477323\n    test 340 line 67 toUtm8.scale: 1.493420\n    test 341 line 67 toUtm8.lat: 38.519075\n    test 342 line 67 toUtm8.lon: 71.935918\n\n    test skipped (11): line 68 toUtm8.'34.264007222954 82.647878110272 7365359.2946646287171 8818194.4515306837741 77.207042218974141605 1.73763853091849729372'\n    test 343 line 69 toUtm8.easting: 36187.342415\n    test 344 line 69 toUtm8.northing: 2142565.324802\n    test 345 line 69 toUtm8.gamma: 0.114334\n    test 346 line 69 toUtm8.scale: 0.999616\n    test 347 line 69 toUtm8.lat: 19.376880\n    test 348 line 69 toUtm8.lon: 0.344605\n    test 349 line 70 toUtm8.easting: 2380328.546851\n    test 350 line 70 toUtm8.northing: 8440109.872384\n    test 351 line 70 toUtm8.gamma: 55.076067\n    test 352 line 70 toUtm8.scale: 1.069658\n    test 353 line 70 toUtm8.lat: 65.075805\n    test 354 line 70 toUtm8.lon: 57.653438\n    test 355 line 71 toUtm8.easting: 582511.608826\n    test 356 line 71 toUtm8.northing: 8876047.217071\n    test 357 line 71 toUtm8.gamma: 27.133300\n    test 358 line 71 toUtm8.scale: 1.003749\n    test 359 line 71 toUtm8.lat: 78.691870\n    test 360 line 71 toUtm8.lon: 27.591736\n    test 361 line 72 toUtm8.easting: 899441.350477\n    test 362 line 72 toUtm8.northing: 4582046.430516\n    test 363 line 72 toUtm8.gamma: 7.031211\n    test 364 line 72 toUtm8.scale: 1.009573\n    test 365 line 72 toUtm8.lat: 40.893022\n    test 366 line 72 toUtm8.lon: 10.668804\n\n    test skipped (12): line 73 toUtm8.'48.914278679322 87.35926802682 5022485.1243369246483 9741774.9337207800497 86.505947369926030588 1.32369954850478170836'\n    test 367 line 74 toUtm8.easting: 6701004.587204\n    test 368 line 74 toUtm8.northing: 2954368.258231\n    test 369 line 74 toUtm8.gamma: 21.560153\n    test 370 line 74 toUtm8.scale: 1.608554\n    test 371 line 74 toUtm8.lat: 16.208377\n    test 372 line 74 toUtm8.lon: 54.494282\n    test 373 line 75 toUtm8.easting: 454986.218897\n    test 374 line 75 toUtm8.northing: 4885087.887884\n    test 375 line 75 toUtm8.gamma: 3.945648\n    test 376 line 75 toUtm8.scale: 1.002147\n    test 377 line 75 toUtm8.lat: 43.977936\n    test 378 line 75 toUtm8.lon: 5.672541\n\n    test skipped (13): line 76 toUtm8.'26.850860749352 82.834479937822 8903956.1403106503714 8470608.5774824981183 74.723116471645531699 2.13131124920824155268'\n    test 379 line 77 toUtm8.easting: 1547627.594741\n    test 380 line 77 toUtm8.northing: 6036584.538347\n    test 381 line 77 toUtm8.gamma: 18.407629\n    test 382 line 77 toUtm8.scale: 1.029132\n    test 383 line 77 toUtm8.lat: 52.234165\n    test 384 line 77 toUtm8.lon: 22.827655\n    test 385 line 78 toUtm8.easting: 5221488.778597\n    test 386 line 78 toUtm8.northing: 1762592.044392\n    test 387 line 78 toUtm8.gamma: 10.927880\n    test 388 line 78 toUtm8.scale: 1.356721\n    test 389 line 78 toUtm8.lat: 11.674646\n    test 390 line 78 toUtm8.lon: 43.500147\n    test 391 line 79 toUtm8.easting: 4880570.297161\n    test 392 line 79 toUtm8.northing: 3325433.988867\n    test 393 line 79 toUtm8.gamma: 20.469862\n    test 394 line 79 toUtm8.scale: 1.308476\n    test 395 line 79 toUtm8.lat: 22.492753\n    test 396 line 79 toUtm8.lon: 44.179153\n\n    test skipped (14): line 80 toUtm8.'.910999463005 88.548822916123 23930680.0826936110445 7491462.0990379651261 75.937628056628715446 15.55636485152285563369'\n    test 397 line 81 toUtm8.easting: 71519.450458\n    test 398 line 81 toUtm8.northing: 3654740.444852\n    test 399 line 81 toUtm8.gamma: 0.417448\n    test 400 line 81 toUtm8.scale: 0.999663\n    test 401 line 81 toUtm8.lat: 33.028802\n    test 402 line 81 toUtm8.lon: 0.765843\n    test 403 line 82 toUtm8.easting: 4152797.795220\n    test 404 line 82 toUtm8.northing: 7823098.502751\n    test 405 line 82 toUtm8.gamma: 58.238901\n    test 406 line 82 toUtm8.scale: 1.218052\n    test 407 line 82 toUtm8.lat: 50.649195\n    test 408 line 82 toUtm8.lon: 64.389076\n    test 409 line 83 toUtm8.easting: 2926725.707639\n    test 410 line 83 toUtm8.northing: 7904918.072844\n    test 411 line 83 toUtm8.gamma: 51.592748\n    test 412 line 83 toUtm8.scale: 1.106206\n    test 413 line 83 toUtm8.lat: 58.820640\n    test 414 line 83 toUtm8.lon: 55.841048\n    test 415 line 84 toUtm8.easting: 1325509.113869\n    test 416 line 84 toUtm8.northing: 9675214.948213\n    test 417 line 84 toUtm8.gamma: 76.116213\n    test 418 line 84 toUtm8.scale: 1.021136\n    test 419 line 84 toUtm8.lat: 77.865762\n    test 420 line 84 toUtm8.lon: 76.414618\n    test 421 line 85 toUtm8.easting: 3045296.448926\n    test 422 line 85 toUtm8.northing: 542153.443280\n    test 423 line 85 toUtm8.gamma: 2.185095\n    test 424 line 85 toUtm8.scale: 1.116664\n    test 425 line 85 toUtm8.lat: 4.389639\n    test 426 line 85 toUtm8.lon: 26.458976\n    test 427 line 86 toUtm8.easting: 11843870.887791  FAILED, KNOWN, expected 11843870.887518\n    test 428 line 86 toUtm8.northing: 5912803.073690  FAILED, KNOWN, expected 5912803.073343\n    test 429 line 86 toUtm8.gamma: 52.814260  FAILED, KNOWN, expected 52.814259\n    test 430 line 86 toUtm8.scale: 3.267256\n    test 431 line 86 toUtm8.lat: 13.924448\n    test 432 line 86 toUtm8.lon: 79.017873\n    test 433 line 87 toUtm8.easting: 8891099.704936\n    test 434 line 87 toUtm8.northing: 162160.142227\n    test 435 line 87 toUtm8.gamma: 1.312094\n    test 436 line 87 toUtm8.scale: 2.157363\n    test 437 line 87 toUtm8.lat: 0.679713\n    test 438 line 87 toUtm8.lon: 62.036792\n    test 439 line 88 toUtm8.easting: 4784814.214449\n    test 440 line 88 toUtm8.northing: 2984497.432580\n    test 441 line 88 toUtm8.gamma: 17.946545\n    test 442 line 88 toUtm8.scale: 1.296116\n    test 443 line 88 toUtm8.lat: 20.478281\n    test 444 line 88 toUtm8.lon: 42.678234\n    test 445 line 89 toUtm8.easting: 1772074.682154\n    test 446 line 89 toUtm8.northing: 9491552.560143\n    test 447 line 89 toUtm8.gamma: 73.634830\n    test 448 line 89 toUtm8.scale: 1.038202\n    test 449 line 89 toUtm8.lat: 73.695703\n    test 450 line 89 toUtm8.lon: 74.259097\n    test 451 line 90 toUtm8.easting: 1907649.782106\n    test 452 line 90 toUtm8.northing: 6994232.429379\n    test 453 line 90 toUtm8.gamma: 29.718929\n    test 454 line 90 toUtm8.scale: 1.044503\n    test 455 line 90 toUtm8.lat: 58.569370\n    test 456 line 90 toUtm8.lon: 33.777549\n    test 457 line 91 toUtm8.easting: 2084423.818962\n    test 458 line 91 toUtm8.northing: 2211816.035619\n    test 459 line 91 toUtm8.gamma: 6.556448\n    test 460 line 91 toUtm8.scale: 1.053793\n    test 461 line 91 toUtm8.lat: 18.933881\n    test 462 line 91 toUtm8.lon: 19.492695\n    test 463 line 92 toUtm8.easting: 1064373.671729\n    test 464 line 92 toUtm8.northing: 7812482.547461\n    test 465 line 92 toUtm8.gamma: 24.874124\n    test 466 line 92 toUtm8.scale: 1.013490\n    test 467 line 92 toUtm8.lat: 68.317934\n    test 468 line 92 toUtm8.lon: 26.515687\n\n    test skipped (15): line 93 toUtm8.'50.641941364984 87.111556505544 4770385.4792965339274 9734318.9029801439364 86.27311877223132818 1.29055338238288419467'\n    test 469 line 94 toUtm8.easting: 6398096.677297\n    test 470 line 94 toUtm8.northing: 4410894.752104\n    test 471 line 94 toUtm8.gamma: 32.558023\n    test 472 line 94 toUtm8.scale: 1.548004\n    test 473 line 94 toUtm8.lat: 24.411298\n    test 474 line 94 toUtm8.lon: 56.881823\n    test 475 line 95 toUtm8.easting: 3138623.300415\n    test 476 line 95 toUtm8.northing: 3082960.600798\n    test 477 line 95 toUtm8.gamma: 13.557672\n    test 478 line 95 toUtm8.scale: 1.123724\n    test 479 line 95 toUtm8.lat: 24.571871\n    test 480 line 95 toUtm8.lon: 30.073097\n    test 481 line 96 toUtm8.easting: 2748325.794651\n    test 482 line 96 toUtm8.northing: 4202811.912668\n    test 483 line 96 toUtm8.gamma: 17.578706\n    test 484 line 96 toUtm8.scale: 1.094102\n    test 485 line 96 toUtm8.lat: 34.202576\n    test 486 line 96 toUtm8.lon: 29.383166\n    test 487 line 97 toUtm8.easting: 6677830.630367\n    test 488 line 97 toUtm8.northing: 5350071.837395\n    test 489 line 97 toUtm8.gamma: 41.306641\n    test 490 line 97 toUtm8.scale: 1.599774\n    test 491 line 97 toUtm8.lat: 27.756285\n    test 492 line 97 toUtm8.lon: 61.881905\n    test 493 line 98 toUtm8.easting: 5941536.667431\n    test 494 line 98 toUtm8.northing: 3293112.175140\n    test 495 line 98 toUtm8.gamma: 22.752845\n    test 496 line 98 toUtm8.scale: 1.468473\n    test 497 line 98 toUtm8.lat: 19.742270\n    test 498 line 98 toUtm8.lon: 50.957821\n    test 499 line 99 toUtm8.easting: 3152481.792567\n    test 500 line 99 toUtm8.northing: 5903048.837978\n    test 501 line 99 toUtm8.gamma: 31.494606\n    test 502 line 99 toUtm8.scale: 1.124085\n    test 503 line 99 toUtm8.lat: 45.453582\n    test 504 line 99 toUtm8.lon: 40.659833\n    test 505 line 100 toUtm8.easting: 10460475.897726  FAILED, KNOWN, expected 10460475.897730\n    test 506 line 100 toUtm8.northing: 2553463.624385  FAILED, KNOWN, expected 2553463.624391\n    test 507 line 100 toUtm8.gamma: 21.965869\n    test 508 line 100 toUtm8.scale: 2.700296\n    test 509 line 100 toUtm8.lat: 8.322144\n    test 510 line 100 toUtm8.lon: 69.488157\n    test 511 line 101 toUtm8.easting: 1964010.778021\n    test 512 line 101 toUtm8.northing: 5634042.923056\n    test 513 line 101 toUtm8.gamma: 20.117800\n    test 514 line 101 toUtm8.scale: 1.047344\n    test 515 line 101 toUtm8.lat: 47.749831\n    test 516 line 101 toUtm8.lon: 26.322002\n    test 517 line 102 toUtm8.easting: 2065306.424934\n    test 518 line 102 toUtm8.northing: 2135008.468651\n    test 519 line 102 toUtm8.gamma: 6.258981\n    test 520 line 102 toUtm8.scale: 1.052800\n    test 521 line 102 toUtm8.lat: 18.297493\n    test 522 line 102 toUtm8.lon: 19.244669\n    test 523 line 103 toUtm8.easting: 5127738.132976\n    test 524 line 103 toUtm8.northing: 6793804.304411\n    test 525 line 103 toUtm8.gamma: 50.557915\n    test 526 line 103 toUtm8.scale: 1.339412\n    test 527 line 103 toUtm8.lat: 40.834541\n    test 528 line 103 toUtm8.lon: 61.650750\n    test 529 line 104 toUtm8.easting: 8385525.148166\n    test 530 line 104 toUtm8.northing: 6924932.344306\n    test 531 line 104 toUtm8.gamma: 59.087561\n    test 532 line 104 toUtm8.scale: 1.990364\n    test 533 line 104 toUtm8.lat: 26.273247\n    test 534 line 104 toUtm8.lon: 74.926694\n    test 535 line 105 toUtm8.easting: 2297510.791909\n    test 536 line 105 toUtm8.northing: 2805666.962834\n    test 537 line 105 toUtm8.gamma: 9.301553\n    test 538 line 105 toUtm8.scale: 1.065508\n    test 539 line 105 toUtm8.lat: 23.698347\n    test 540 line 105 toUtm8.lon: 22.155657\n\n    test skipped (16): line 106 toUtm8.'12.364112546807 86.348578425071 13749544.9176345767153 8288728.3846500523233 75.033969786420407131 4.27058754359004466627'\n    test 541 line 107 toUtm8.easting: 317518.455546\n    test 542 line 107 toUtm8.northing: 1097517.583745\n    test 543 line 107 toUtm8.gamma: 0.499004\n    test 544 line 107 toUtm8.scale: 1.000848\n    test 545 line 107 toUtm8.lat: 9.916091\n    test 546 line 107 toUtm8.lon: 2.895277\n    test 547 line 108 toUtm8.easting: 3856035.184888\n    test 548 line 108 toUtm8.northing: 9141364.450290\n    test 549 line 108 toUtm8.gamma: 75.972763\n    test 550 line 108 toUtm8.scale: 1.186786\n    test 551 line 108 toUtm8.lat: 56.553876\n    test 552 line 108 toUtm8.lon: 78.215077\n    test 553 line 109 toUtm8.easting: 1457484.942823\n    test 554 line 109 toUtm8.northing: 9385297.101973\n    test 555 line 109 toUtm8.gamma: 66.784662\n    test 556 line 109 toUtm8.scale: 1.025660\n    test 557 line 109 toUtm8.lat: 75.957631\n    test 558 line 109 toUtm8.lon: 67.407383\n    test 559 line 110 toUtm8.easting: 1304934.901841\n    test 560 line 110 toUtm8.northing: 3604655.155715\n    test 561 line 110 toUtm8.gamma: 7.343989\n    test 562 line 110 toUtm8.scale: 1.020672\n    test 563 line 110 toUtm8.lat: 31.826531\n    test 564 line 110 toUtm8.lon: 13.731050\n    test 565 line 111 toUtm8.easting: 1399093.491792\n    test 566 line 111 toUtm8.northing: 8314607.120342\n    test 567 line 111 toUtm8.gamma: 38.630161\n    test 568 line 111 toUtm8.scale: 1.023625\n    test 569 line 111 toUtm8.lat: 70.542985\n    test 570 line 111 toUtm8.lon: 40.282055\n    test 571 line 112 toUtm8.easting: 356983.618540\n    test 572 line 112 toUtm8.northing: 4282309.048994\n    test 573 line 112 toUtm8.gamma: 2.561485\n    test 574 line 112 toUtm8.scale: 1.001170\n    test 575 line 112 toUtm8.lat: 38.617487\n    test 576 line 112 toUtm8.lon: 4.099838\n    test 577 line 113 toUtm8.easting: 9952911.325092  FAILED, KNOWN, expected 9952911.325091\n    test 578 line 113 toUtm8.northing: 1510288.212230  FAILED, KNOWN, expected 1510288.212229\n    test 579 line 113 toUtm8.gamma: 12.752154\n    test 580 line 113 toUtm8.scale: 2.511357\n    test 581 line 113 toUtm8.lat: 5.389447\n    test 582 line 113 toUtm8.lon: 66.729612\n    test 583 line 114 toUtm8.easting: 6367592.504007\n    test 584 line 114 toUtm8.northing: 1200437.077672\n    test 585 line 114 toUtm8.gamma: 8.338041\n    test 586 line 114 toUtm8.scale: 1.546210\n    test 587 line 114 toUtm8.lat: 6.995168\n    test 588 line 114 toUtm8.lon: 50.014763\n    test 589 line 115 toUtm8.easting: 4391263.676460\n    test 590 line 115 toUtm8.northing: 6325455.989408\n    test 591 line 115 toUtm8.gamma: 42.653541\n    test 592 line 115 toUtm8.scale: 1.245560\n    test 593 line 115 toUtm8.lat: 42.321894\n    test 594 line 115 toUtm8.lon: 53.784040\n    test 595 line 116 toUtm8.easting: 6209880.527527\n    test 596 line 116 toUtm8.northing: 2154754.449747\n    test 597 line 116 toUtm8.gamma: 14.919512\n    test 598 line 116 toUtm8.scale: 1.516560\n    test 599 line 116 toUtm8.lat: 12.698515\n    test 600 line 116 toUtm8.lon: 50.242047\n    test 601 line 117 toUtm8.easting: 1507053.688772\n    test 602 line 117 toUtm8.northing: 6261383.513280\n    test 603 line 117 toUtm8.gamma: 19.280373\n    test 604 line 117 toUtm8.scale: 1.027584\n    test 605 line 117 toUtm8.lat: 54.207636\n    test 606 line 117 toUtm8.lon: 23.325731\n    test 607 line 118 toUtm8.easting: 8332725.003777\n    test 608 line 118 toUtm8.northing: 3002712.329753\n    test 609 line 118 toUtm8.gamma: 24.059212\n    test 610 line 118 toUtm8.scale: 1.990450\n    test 611 line 118 toUtm8.lat: 13.224787\n    test 612 line 118 toUtm8.lon: 62.426698\n    test 613 line 119 toUtm8.easting: 3958910.085235\n    test 614 line 119 toUtm8.northing: 3462284.926102\n    test 615 line 119 toUtm8.gamma: 18.546398\n    test 616 line 119 toUtm8.scale: 1.199351\n    test 617 line 119 toUtm8.lat: 25.650282\n    test 618 line 119 toUtm8.lon: 37.710391\n\n    test skipped (17): line 120 toUtm8.'20.684773383075 82.849734261238 10452892.2820830090734 8000059.6051139389546 71.07524025411428855 2.6501109339363854772'\n    test 619 line 121 toUtm8.easting: 496148.253731\n    test 620 line 121 toUtm8.northing: 6388503.365043\n    test 621 line 121 toUtm8.gamma: 6.970955\n    test 622 line 121 toUtm8.scale: 1.002620\n    test 623 line 121 toUtm8.lat: 57.367533\n    test 624 line 121 toUtm8.lon: 8.260866\n    test 625 line 122 toUtm8.easting: 7375792.085850\n    test 626 line 122 toUtm8.northing: 5544624.072155\n    test 627 line 122 toUtm8.gamma: 44.510851\n    test 628 line 122 toUtm8.scale: 1.745898\n    test 629 line 122 toUtm8.lat: 25.958757\n    test 630 line 122 toUtm8.lon: 65.760477\n    test 631 line 123 toUtm8.easting: 2826258.041979\n    test 632 line 123 toUtm8.northing: 5167759.816959\n    test 633 line 123 toUtm8.gamma: 23.783897\n    test 634 line 123 toUtm8.scale: 1.099415\n    test 635 line 123 toUtm8.lat: 41.395848\n    test 636 line 123 toUtm8.lon: 33.661790\n    test 637 line 124 toUtm8.easting: 3958563.378851\n    test 638 line 124 toUtm8.northing: 8499923.231243\n    test 639 line 124 toUtm8.gamma: 66.570945\n    test 640 line 124 toUtm8.scale: 1.197296\n    test 641 line 124 toUtm8.lat: 54.266617\n    test 642 line 124 toUtm8.lon: 70.602199\n    test 643 line 125 toUtm8.easting: 4408189.533462\n    test 644 line 125 toUtm8.northing: 8046312.003642\n    test 645 line 125 toUtm8.gamma: 62.216959\n    test 646 line 125 toUtm8.scale: 1.246750\n    test 647 line 125 toUtm8.lat: 49.840393\n    test 648 line 125 toUtm8.lon: 68.036728\n    test 649 line 126 toUtm8.easting: 3629225.627512\n    test 650 line 126 toUtm8.northing: 6371258.454645\n    test 651 line 126 toUtm8.gamma: 38.881675\n    test 652 line 126 toUtm8.scale: 1.165511\n    test 653 line 126 toUtm8.lat: 46.306035\n    test 654 line 126 toUtm8.lon: 48.085828\n    test 655 line 127 toUtm8.easting: 602838.450710\n    test 656 line 127 toUtm8.northing: 4851370.637205\n    test 657 line 127 toUtm8.gamma: 5.160395\n    test 658 line 127 toUtm8.scale: 1.004073\n    test 659 line 127 toUtm8.lat: 43.570988\n    test 660 line 127 toUtm8.lon: 7.464494\n    test 661 line 128 toUtm8.easting: 764616.665051\n    test 662 line 128 toUtm8.northing: 2164299.337945\n    test 663 line 128 toUtm8.gamma: 2.429300\n    test 664 line 128 toUtm8.scale: 1.006835\n    test 665 line 128 toUtm8.lat: 19.427290\n    test 666 line 128 toUtm8.lon: 7.268247\n    test 667 line 129 toUtm8.easting: 5048953.021931\n    test 668 line 129 toUtm8.northing: 1885974.057398\n    test 669 line 129 toUtm8.gamma: 11.459804\n    test 670 line 129 toUtm8.scale: 1.332207\n    test 671 line 129 toUtm8.lat: 12.713794\n    test 672 line 129 toUtm8.lon: 42.507018\n    test 673 line 130 toUtm8.easting: 2293996.601155\n    test 674 line 130 toUtm8.northing: 2392408.644221\n    test 675 line 130 toUtm8.gamma: 7.791838\n    test 676 line 130 toUtm8.scale: 1.065348\n    test 677 line 130 toUtm8.lat: 20.238782\n    test 678 line 130 toUtm8.lon: 21.566068\n    test 679 line 131 toUtm8.easting: 1530603.839418\n    test 680 line 131 toUtm8.northing: 7287841.459898\n    test 681 line 131 toUtm8.gamma: 27.502921\n    test 682 line 131 toUtm8.scale: 1.028416\n    test 683 line 131 toUtm8.lat: 62.367847\n    test 684 line 131 toUtm8.lon: 30.438849\n    test 685 line 132 toUtm8.easting: 2660000.093152\n    test 686 line 132 toUtm8.northing: 5161982.213248\n    test 687 line 132 toUtm8.gamma: 22.629836\n    test 688 line 132 toUtm8.scale: 1.087851\n    test 689 line 132 toUtm8.lat: 41.891569\n    test 690 line 132 toUtm8.lon: 31.959547\n    test 691 line 133 toUtm8.easting: 5037478.329414\n    test 692 line 133 toUtm8.northing: 8768172.379908\n    test 693 line 133 toUtm8.gamma: 73.511182\n    test 694 line 133 toUtm8.scale: 1.325919\n    test 695 line 133 toUtm8.lat: 47.664248\n    test 696 line 133 toUtm8.lon: 77.630062\n    test 697 line 134 toUtm8.easting: 2289650.957799\n    test 698 line 134 toUtm8.northing: 8784328.593607\n    test 699 line 134 toUtm8.gamma: 60.786067\n    test 700 line 134 toUtm8.scale: 1.064346\n    test 701 line 134 toUtm8.lat: 67.259559\n    test 702 line 134 toUtm8.lon: 62.715293\n    test 703 line 135 toUtm8.easting: 647913.889744\n    test 704 line 135 toUtm8.northing: 6742382.228217\n    test 705 line 135 toUtm8.gamma: 10.252667\n    test 706 line 135 toUtm8.scale: 1.004748\n    test 707 line 135 toUtm8.lat: 60.295381\n    test 708 line 135 toUtm8.lon: 11.763097\n    test 709 line 136 toUtm8.easting: 1118372.698566\n    test 710 line 136 toUtm8.northing: 9040627.942263\n    test 711 line 136 toUtm8.gamma: 48.936803\n    test 712 line 136 toUtm8.scale: 1.014920\n    test 713 line 136 toUtm8.lat: 76.878914\n    test 714 line 136 toUtm8.lon: 49.685773\n    test 715 line 137 toUtm8.easting: 440696.510070\n    test 716 line 137 toUtm8.northing: 5500355.826297\n    test 717 line 137 toUtm8.gamma: 4.636104\n    test 718 line 137 toUtm8.scale: 1.001986\n    test 719 line 137 toUtm8.lat: 49.495349\n    test 720 line 137 toUtm8.lon: 6.087551\n    test 721 line 138 toUtm8.easting: 601728.149727\n    test 722 line 138 toUtm8.northing: 9095352.048149\n    test 723 line 138 toUtm8.gamma: 33.435771\n    test 724 line 138 toUtm8.scale: 1.004027\n    test 725 line 138 toUtm8.lat: 80.297265\n    test 726 line 138 toUtm8.lon: 33.816372\n    test 727 line 139 toUtm8.easting: 3481444.777827\n    test 728 line 139 toUtm8.northing: 291665.708749\n    test 729 line 139 toUtm8.gamma: 1.314726\n    test 730 line 139 toUtm8.scale: 1.153534\n    test 731 line 139 toUtm8.lat: 2.286437\n    test 732 line 139 toUtm8.lon: 29.855149\n    test 733 line 140 toUtm8.easting: 3515304.901524\n    test 734 line 140 toUtm8.northing: 1443981.882918\n    test 735 line 140 toUtm8.gamma: 6.641638\n    test 736 line 140 toUtm8.scale: 1.156509\n    test 737 line 140 toUtm8.lat: 11.264457\n    test 738 line 140 toUtm8.lon: 30.743907\n    test 739 line 141 toUtm8.easting: 160012.186959\n    test 740 line 141 toUtm8.northing: 3922609.253231\n    test 741 line 141 toUtm8.gamma: 1.022225\n    test 742 line 141 toUtm8.scale: 0.999916\n    test 743 line 141 toUtm8.lat: 35.434073\n    test 744 line 141 toUtm8.lon: 1.762795\n    test 745 line 142 toUtm8.easting: 4163744.245622\n    test 746 line 142 toUtm8.northing: 936884.674804\n    test 747 line 142 toUtm8.gamma: 4.892559\n    test 748 line 142 toUtm8.scale: 1.222164\n    test 749 line 142 toUtm8.lat: 6.923695\n    test 750 line 142 toUtm8.lon: 35.289456\n    test 751 line 143 toUtm8.easting: 6155200.017926\n    test 752 line 143 toUtm8.northing: 6926306.628390\n    test 753 line 143 toUtm8.gamma: 55.103258\n    test 754 line 143 toUtm8.scale: 1.500556\n    test 755 line 143 toUtm8.lat: 36.129672\n    test 756 line 143 toUtm8.lon: 67.533176\n\n    test skipped (18): line 144 toUtm8.'4.406528980638 81.965734206053 16263383.2854400911299 3591296.7313406507021 36.040254103487111035 6.58928781751888396522'\n\n    test skipped (19): line 145 toUtm8.'8.474589009114 81.129945130597 14220995.5153984992101 5100587.4575033509156 47.314258427760984573 4.69320221531225352172'\n    test 757 line 146 toUtm8.easting: 3173034.802372\n    test 758 line 146 toUtm8.northing: 7263421.942957\n    test 759 line 146 toUtm8.gamma: 45.215808\n    test 760 line 146 toUtm8.scale: 1.125410\n    test 761 line 146 toUtm8.lat: 53.907276\n    test 762 line 146 toUtm8.lon: 51.252904\n\n    test skipped (20): line 147 toUtm8.'22.120544817855 85.756781608119 10253274.0922039670098 8867574.2997916978265 79.198250285604314115 2.57237240666878171579'\n    test 763 line 148 toUtm8.easting: 2415561.483230\n    test 764 line 148 toUtm8.northing: 8813225.217097\n    test 765 line 148 toUtm8.gamma: 62.548978\n    test 766 line 148 toUtm8.scale: 1.071748\n    test 767 line 148 toUtm8.lat: 66.444100\n    test 768 line 148 toUtm8.lon: 64.532960\n    test 769 line 149 toUtm8.easting: 9589179.293294  FAILED, KNOWN, expected 9589179.293295\n    test 770 line 149 toUtm8.northing: 1777680.784144  FAILED, KNOWN, expected 1777680.784143\n    test 771 line 149 toUtm8.gamma: 14.838483\n    test 772 line 149 toUtm8.scale: 2.380716\n    test 773 line 149 toUtm8.lat: 6.670965\n    test 774 line 149 toUtm8.lon: 65.660408\n    test 775 line 150 toUtm8.easting: 727939.438391\n    test 776 line 150 toUtm8.northing: 3684363.236810\n    test 777 line 150 toUtm8.gamma: 4.266227\n    test 778 line 150 toUtm8.scale: 1.006140\n    test 779 line 150 toUtm8.lat: 33.054057\n    test 780 line 150 toUtm8.lon: 7.787458\n    test 781 line 151 toUtm8.easting: 1250765.991085\n    test 782 line 151 toUtm8.northing: 792869.242719\n    test 783 line 151 toUtm8.gamma: 1.396497\n    test 784 line 151 toUtm8.scale: 1.019026\n    test 785 line 151 toUtm8.lat: 7.035525\n    test 786 line 151 toUtm8.lon: 11.253707\n    test 787 line 152 toUtm8.easting: 710421.705887\n    test 788 line 152 toUtm8.northing: 5019406.075928\n    test 789 line 152 toUtm8.gamma: 6.393949\n    test 790 line 152 toUtm8.scale: 1.005812\n    test 791 line 152 toUtm8.lat: 44.971340\n    test 792 line 152 toUtm8.lon: 9.009304\n    test 793 line 153 toUtm8.easting: 4600995.074643\n    test 794 line 153 toUtm8.northing: 4505712.084593\n    test 795 line 153 toUtm8.gamma: 27.997458\n    test 796 line 153 toUtm8.scale: 1.271841\n    test 797 line 153 toUtm8.lat: 30.821397\n    test 798 line 153 toUtm8.lon: 45.970577\n    test 799 line 154 toUtm8.easting: 557642.627782\n    test 800 line 154 toUtm8.northing: 7006911.251644\n    test 801 line 154 toUtm8.gamma: 9.769903\n    test 802 line 154 toUtm8.scale: 1.003411\n    test 803 line 154 toUtm8.lat: 62.763886\n    test 804 line 154 toUtm8.lon: 10.960144\n    test 805 line 155 toUtm8.easting: 4635062.294291\n    test 806 line 155 toUtm8.northing: 2702556.153311\n    test 807 line 155 toUtm8.gamma: 15.779547\n    test 808 line 155 toUtm8.scale: 1.277178\n    test 809 line 155 toUtm8.lat: 18.888611\n    test 810 line 155 toUtm8.lon: 41.009871\n\n    test skipped (21): line 156 toUtm8.'7.524119461376 81.050715469439 14554962.2559189870471 4716639.9085720199214 44.192751352918149954 4.96001986321419027847'\n    test 811 line 157 toUtm8.easting: 882126.661736\n    test 812 line 157 toUtm8.northing: 7947612.369506\n    test 813 line 157 toUtm8.gamma: 22.429487\n    test 814 line 157 toUtm8.scale: 1.009132\n    test 815 line 157 toUtm8.lat: 70.063902\n    test 816 line 157 toUtm8.lon: 23.705255\n\n    test skipped (22): line 158 toUtm8.'3.556525834215 88.363529198819 20262021.6459832969292 8113827.8207957955275 76.936057264555500879 10.34909168211805703369'\n    test 817 line 159 toUtm8.easting: 6500508.399850\n    test 818 line 159 toUtm8.northing: 6956476.342368\n    test 819 line 159 toUtm8.gamma: 56.237116\n    test 820 line 159 toUtm8.scale: 1.563162\n    test 821 line 159 toUtm8.lat: 34.551257\n    test 822 line 159 toUtm8.lon: 69.111091\n    test 823 line 160 toUtm8.easting: 3884036.641314\n    test 824 line 160 toUtm8.northing: 6890167.411733\n    test 825 line 160 toUtm8.gamma: 45.760130\n    test 826 line 160 toUtm8.scale: 1.190167\n    test 827 line 160 toUtm8.lat: 47.929051\n    test 828 line 160 toUtm8.lon: 54.103418\n    test 829 line 161 toUtm8.easting: 217855.546078\n    test 830 line 161 toUtm8.northing: 6184108.122568\n    test 831 line 161 toUtm8.gamma: 2.870993\n    test 832 line 161 toUtm8.scale: 1.000182\n    test 833 line 161 toUtm8.lat: 55.753536\n    test 834 line 161 toUtm8.lon: 3.471798\n\n    test skipped (23): line 162 toUtm8.'18.530847071862 86.555312055898 11384139.290401676268 8893889.9495562311576 79.77485364572019046 3.02467156922968230025'\n    test 835 line 163 toUtm8.easting: 3469855.989805\n    test 836 line 163 toUtm8.northing: 7723193.799228\n    test 837 line 163 toUtm8.gamma: 53.114700\n    test 838 line 163 toUtm8.scale: 1.150540\n    test 839 line 163 toUtm8.lat: 54.510125\n    test 840 line 163 toUtm8.lon: 58.556056\n\n    test skipped (24): line 164 toUtm8.'42.864161881687 84.866325602975 5926165.994939154109 9385463.7327467371322 82.506981261616342016 1.45975761947329382411'\n    test 841 line 165 toUtm8.easting: 5798639.662224\n    test 842 line 165 toUtm8.northing: 5305387.640916\n    test 843 line 165 toUtm8.gamma: 38.617257\n    test 844 line 165 toUtm8.scale: 1.442263\n    test 845 line 165 toUtm8.lat: 30.911943\n    test 846 line 165 toUtm8.lon: 57.114102\n    test 847 line 166 toUtm8.easting: 9464.934388\n    test 848 line 166 toUtm8.northing: 6489121.624944\n    test 849 line 166 toUtm8.gamma: 0.138696\n    test 850 line 166 toUtm8.scale: 0.999601\n    test 851 line 166 toUtm8.lat: 58.542493\n    test 852 line 166 toUtm8.lon: 0.162593\n\n    test skipped (25): line 167 toUtm8.'15.022689088683 85.792615487152 12575834.2756139069875 8356610.8954857643175 75.235223160840771295 3.59944161831319404851'\n    test 853 line 168 toUtm8.easting: 2719653.543469\n    test 854 line 168 toUtm8.northing: 9362389.163495\n    test 855 line 168 toUtm8.gamma: 76.049670\n    test 856 line 168 toUtm8.scale: 1.091315\n    test 857 line 168 toUtm8.lat: 65.692275\n    test 858 line 168 toUtm8.lon: 77.241377\n    test 859 line 169 toUtm8.easting: 4845341.924698\n    test 860 line 169 toUtm8.northing: 8710522.326901\n    test 861 line 169 toUtm8.gamma: 72.320942\n    test 862 line 169 toUtm8.scale: 1.300382\n    test 863 line 169 toUtm8.lat: 48.806211\n    test 864 line 169 toUtm8.lon: 76.486365\n\n    test skipped (26): line 170 toUtm8.'56.436024794624 82.61156798689 3935261.5227628794258 9454271.6490618694486 81.162334302626197333 1.19476734082123451158'\n    test 865 line 171 toUtm8.easting: 7074299.823000\n    test 866 line 171 toUtm8.northing: 1648736.065055\n    test 867 line 171 toUtm8.gamma: 12.145925\n    test 868 line 171 toUtm8.scale: 1.687551\n    test 869 line 171 toUtm8.lat: 8.766053\n    test 870 line 171 toUtm8.lon: 54.367539\n    test 871 line 172 toUtm8.easting: 3689072.579308\n    test 872 line 172 toUtm8.northing: 2230802.665211\n    test 873 line 172 toUtm8.gamma: 10.856248\n    test 874 line 172 toUtm8.scale: 1.172689\n    test 875 line 172 toUtm8.lat: 17.095495\n    test 876 line 172 toUtm8.lon: 33.059128\n    test 877 line 173 toUtm8.easting: 8102565.885587\n    test 878 line 173 toUtm8.northing: 5167396.617580\n    test 879 line 173 toUtm8.gamma: 42.324886\n    test 880 line 173 toUtm8.scale: 1.921927\n    test 881 line 173 toUtm8.lat: 22.142861\n    test 882 line 173 toUtm8.lon: 67.200684\n    test 883 line 174 toUtm8.easting: 8181271.353564\n    test 884 line 174 toUtm8.northing: 4425436.547185\n    test 885 line 174 toUtm8.gamma: 35.900845\n    test 886 line 174 toUtm8.scale: 1.945017\n    test 887 line 174 toUtm8.lat: 19.222623\n    test 888 line 174 toUtm8.lon: 65.180785\n    test 889 line 175 toUtm8.easting: 767067.394003\n    test 890 line 175 toUtm8.northing: 3701745.857296\n    test 891 line 175 toUtm8.gamma: 4.519201\n    test 892 line 175 toUtm8.scale: 1.006863\n    test 893 line 175 toUtm8.lat: 33.182474\n    test 894 line 175 toUtm8.lon: 8.216952\n    test 895 line 176 toUtm8.easting: 6688114.168572\n    test 896 line 176 toUtm8.northing: 2052857.299639\n    test 897 line 176 toUtm8.gamma: 14.766191\n    test 898 line 176 toUtm8.scale: 1.607200\n    test 899 line 176 toUtm8.lat: 11.417963\n    test 900 line 176 toUtm8.lon: 52.808691\n    test 901 line 177 toUtm8.easting: 5608408.773761\n    test 902 line 177 toUtm8.northing: 3859055.659110\n    test 903 line 177 toUtm8.gamma: 26.244151\n    test 904 line 177 toUtm8.scale: 1.413463\n    test 905 line 177 toUtm8.lat: 23.836688\n    test 906 line 177 toUtm8.lon: 50.500180\n    test 907 line 178 toUtm8.easting: 3836942.765275\n    test 908 line 178 toUtm8.northing: 6415467.634326\n    test 909 line 178 toUtm8.gamma: 40.575885\n    test 910 line 178 toUtm8.scale: 1.185615\n    test 911 line 178 toUtm8.lat: 45.550020\n    test 912 line 178 toUtm8.lon: 50.148036\n    test 913 line 179 toUtm8.easting: 1298730.366025\n    test 914 line 179 toUtm8.northing: 6021453.000792\n    test 915 line 179 toUtm8.gamma: 15.613320\n    test 916 line 179 toUtm8.scale: 1.020367\n    test 917 line 179 toUtm8.lat: 52.746079\n    test 918 line 179 toUtm8.lon: 19.343926\n    test 919 line 180 toUtm8.easting: 416934.289208\n    test 920 line 180 toUtm8.northing: 7295683.451705\n    test 921 line 180 toUtm8.gamma: 8.238232\n    test 922 line 180 toUtm8.scale: 1.001729\n    test 923 line 180 toUtm8.lat: 65.513348\n    test 924 line 180 toUtm8.lon: 9.039529\n    test 925 line 181 toUtm8.easting: 4336076.850889\n    test 926 line 181 toUtm8.northing: 7617975.722779\n    test 927 line 181 toUtm8.gamma: 56.537088\n    test 928 line 181 toUtm8.scale: 1.238582\n    test 929 line 181 toUtm8.lat: 48.709795\n    test 930 line 181 toUtm8.lon: 63.554005\n    test 931 line 182 toUtm8.easting: 168047.336980\n    test 932 line 182 toUtm8.northing: 2185000.046530\n    test 933 line 182 toUtm8.gamma: 0.542187\n    test 934 line 182 toUtm8.scale: 0.999949\n    test 935 line 182 toUtm8.lat: 19.753509\n    test 936 line 182 toUtm8.lon: 1.603846\n    test 937 line 183 toUtm8.easting: 8276281.328790\n    test 938 line 183 toUtm8.northing: 263444.350545\n    test 939 line 183 toUtm8.gamma: 2.071435\n    test 940 line 183 toUtm8.scale: 1.980314\n    test 941 line 183 toUtm8.lat: 1.202816\n    test 942 line 183 toUtm8.lon: 59.377276\n    test 943 line 184 toUtm8.easting: 4772573.810710\n    test 944 line 184 toUtm8.northing: 6765710.336002\n    test 945 line 184 toUtm8.gamma: 48.857561\n    test 946 line 184 toUtm8.scale: 1.291911\n    test 947 line 184 toUtm8.lat: 42.564975\n    test 948 line 184 toUtm8.lon: 59.356947\n    test 949 line 185 toUtm8.easting: 5427755.074639\n    test 950 line 185 toUtm8.northing: 1556055.820924\n    test 951 line 185 toUtm8.gamma: 9.862178\n    test 952 line 185 toUtm8.scale: 1.387394\n    test 953 line 185 toUtm8.lat: 10.090572\n    test 954 line 185 toUtm8.lon: 44.604132\n    test 955 line 186 toUtm8.easting: 11588458.616240  FAILED, KNOWN, expected 11588458.616041\n    test 956 line 186 toUtm8.northing: 5707993.922683  FAILED, KNOWN, expected 5707993.922613\n    test 957 line 186 toUtm8.gamma: 50.784827\n    test 958 line 186 toUtm8.scale: 3.149567\n    test 959 line 186 toUtm8.lat: 14.133028\n    test 960 line 186 toUtm8.lon: 78.097533\n    test 961 line 187 toUtm8.easting: 7152433.802688\n    test 962 line 187 toUtm8.northing: 761390.695844\n    test 963 line 187 toUtm8.gamma: 5.607350\n    test 964 line 187 toUtm8.scale: 1.705261\n    test 965 line 187 toUtm8.lat: 4.031123\n    test 966 line 187 toUtm8.lon: 54.048782\n    test 967 line 188 toUtm8.easting: 3105651.390901\n    test 968 line 188 toUtm8.northing: 9426026.169064\n    test 969 line 188 toUtm8.gamma: 78.750206\n    test 970 line 188 toUtm8.scale: 1.119737\n    test 971 line 188 toUtm8.lat: 62.746603\n    test 972 line 188 toUtm8.lon: 79.968641\n    test 973 line 189 toUtm8.easting: 2959009.639022\n    test 974 line 189 toUtm8.northing: 8339242.269282\n    test 975 line 189 toUtm8.gamma: 58.460865\n    test 976 line 189 toUtm8.scale: 1.108554\n    test 977 line 189 toUtm8.lat: 60.626429\n    test 978 line 189 toUtm8.lon: 61.851551\n    test 979 line 190 toUtm8.easting: 8640472.267145\n    test 980 line 190 toUtm8.northing: 6230320.417931\n    test 981 line 190 toUtm8.gamma: 52.816810\n    test 982 line 190 toUtm8.scale: 2.062973\n    test 983 line 190 toUtm8.lat: 23.600626\n    test 984 line 190 toUtm8.lon: 72.811634\n    test 985 line 191 toUtm8.easting: 811352.108932\n    test 986 line 191 toUtm8.northing: 9816129.813481\n    test 987 line 191 toUtm8.gamma: 77.299184\n    test 988 line 191 toUtm8.scale: 1.007651\n    test 989 line 191 toUtm8.lat: 82.572236\n    test 990 line 191 toUtm8.lon: 77.402323\n    test 991 line 192 toUtm8.easting: 6521874.973458\n    test 992 line 192 toUtm8.northing: 1053612.479744\n    test 993 line 192 toUtm8.gamma: 7.407328\n    test 994 line 192 toUtm8.scale: 1.575529\n    test 995 line 192 toUtm8.lat: 6.030051\n    test 996 line 192 toUtm8.lon: 50.783505\n    test 997 line 193 toUtm8.easting: 3477983.997875\n    test 998 line 193 toUtm8.northing: 5651613.325947\n    test 999 line 193 toUtm8.gamma: 31.530673\n    test 1000 line 193 toUtm8.scale: 1.151875\n    test 1001 line 193 toUtm8.lat: 42.411523\n    test 1002 line 193 toUtm8.lon: 42.258009\n    test 1003 line 194 toUtm8.easting: 629892.822243\n    test 1004 line 194 toUtm8.northing: 3283914.910451\n    test 1005 line 194 toUtm8.gamma: 3.210482\n    test 1006 line 194 toUtm8.scale: 1.004499\n    test 1007 line 194 toUtm8.lat: 29.526120\n    test 1008 line 194 toUtm8.lon: 6.493069\n    test 1009 line 195 toUtm8.easting: 3381879.687227\n    test 1010 line 195 toUtm8.northing: 5103629.325665\n    test 1011 line 195 toUtm8.gamma: 26.748108\n    test 1012 line 195 toUtm8.scale: 1.143559\n    test 1013 line 195 toUtm8.lat: 39.021853\n    test 1014 line 195 toUtm8.lon: 38.641779\n    test 1015 line 196 toUtm8.easting: 2815986.534177\n    test 1016 line 196 toUtm8.northing: 9387029.120718\n    test 1017 line 196 toUtm8.gamma: 76.967262\n    test 1018 line 196 toUtm8.scale: 1.098032\n    test 1019 line 196 toUtm8.lat: 64.971850\n    test 1020 line 196 toUtm8.lon: 78.151893\n    test 1021 line 197 toUtm8.easting: 3398195.889603\n    test 1022 line 197 toUtm8.northing: 9138936.031490\n    test 1023 line 197 toUtm8.gamma: 74.477499\n    test 1024 line 197 toUtm8.scale: 1.144009\n    test 1025 line 197 toUtm8.lat: 59.961819\n    test 1026 line 197 toUtm8.lon: 76.473422\n    test 1027 line 198 toUtm8.easting: 2421734.754637\n    test 1028 line 198 toUtm8.northing: 5002372.094991\n    test 1029 line 198 toUtm8.gamma: 20.017082\n    test 1030 line 198 toUtm8.scale: 1.072592\n    test 1031 line 198 toUtm8.lat: 41.374040\n    test 1032 line 198 toUtm8.lon: 28.848343\n    test 1033 line 199 toUtm8.easting: 2360869.895525\n    test 1034 line 199 toUtm8.northing: 9553298.449536\n    test 1035 line 199 toUtm8.gamma: 78.848205\n    test 1036 line 199 toUtm8.scale: 1.068453\n    test 1037 line 199 toUtm8.lat: 68.946087\n    test 1038 line 199 toUtm8.lon: 79.574523\n\n    test skipped (27): line 200 toUtm8.'79.275096210569 83.551272329394 1196539.9721941076965 9861920.8362302532842 83.437668440198132309 1.01713723718699411107'\n    test 1039 line 201 toUtm8.easting: 1327758.704795\n    test 1040 line 201 toUtm8.northing: 2375509.241683\n    test 1041 line 201 toUtm8.gamma: 4.617572\n    test 1042 line 201 toUtm8.scale: 1.021465\n    test 1043 line 201 toUtm8.lat: 21.000252\n    test 1044 line 201 toUtm8.lon: 12.697444\n    test 1045 line 202 toUtm8.easting: 2070860.327644\n    test 1046 line 202 toUtm8.northing: 8604500.719581\n    test 1047 line 202 toUtm8.gamma: 54.722761\n    test 1048 line 202 toUtm8.scale: 1.052469\n    test 1049 line 202 toUtm8.lat: 68.015227\n    test 1050 line 202 toUtm8.lon: 56.732419\n    test 1051 line 203 toUtm8.easting: 6564776.654864\n    test 1052 line 203 toUtm8.northing: 8171207.177379\n    test 1053 line 203 toUtm8.gamma: 69.237523\n    test 1054 line 203 toUtm8.scale: 1.573894\n    test 1055 line 203 toUtm8.lat: 37.423675\n    test 1056 line 203 toUtm8.lon: 76.947359\n    test 1057 line 204 toUtm8.easting: 592653.553821\n    test 1058 line 204 toUtm8.northing: 6125529.810052\n    test 1059 line 204 toUtm8.gamma: 7.600785\n    test 1060 line 204 toUtm8.scale: 1.003912\n    test 1061 line 204 toUtm8.lat: 54.922707\n    test 1062 line 204 toUtm8.lon: 9.260818\n    test 1063 line 205 toUtm8.easting: 693459.671821\n    test 1064 line 205 toUtm8.northing: 6943779.991032\n    test 1065 line 205 toUtm8.gamma: 11.787587\n    test 1066 line 205 toUtm8.scale: 1.005496\n    test 1067 line 205 toUtm8.lat: 61.982810\n    test 1068 line 205 toUtm8.lon: 13.299659\n    test 1069 line 206 toUtm8.easting: 1838956.187625\n    test 1070 line 206 toUtm8.northing: 3511959.612381\n    test 1071 line 206 toUtm8.gamma: 9.844313\n    test 1072 line 206 toUtm8.scale: 1.041603\n    test 1073 line 206 toUtm8.lat: 30.324214\n    test 1074 line 206 toUtm8.lon: 18.959769\n    test 1075 line 207 toUtm8.easting: 4460690.884597\n    test 1076 line 207 toUtm8.northing: 5541873.235403\n    test 1077 line 207 toUtm8.gamma: 35.768613\n    test 1078 line 207 toUtm8.scale: 1.254179\n    test 1079 line 207 toUtm8.lat: 37.629667\n    test 1080 line 207 toUtm8.lon: 49.649131\n    test 1081 line 208 toUtm8.easting: 2311168.998941\n    test 1082 line 208 toUtm8.northing: 9480561.869119\n    test 1083 line 208 toUtm8.gamma: 76.828257\n    test 1084 line 208 toUtm8.scale: 1.065556\n    test 1085 line 208 toUtm8.lat: 69.225574\n    test 1086 line 208 toUtm8.lon: 77.656135\n    test 1087 line 209 toUtm8.easting: 4111775.114451\n    test 1088 line 209 toUtm8.northing: 6509014.348792\n    test 1089 line 209 toUtm8.gamma: 43.052130\n    test 1090 line 209 toUtm8.scale: 1.214125\n    test 1091 line 209 toUtm8.lat: 44.698478\n    test 1092 line 209 toUtm8.lon: 52.979304\n    test 1093 line 210 toUtm8.easting: 75358.261962\n    test 1094 line 210 toUtm8.northing: 7711258.662251\n    test 1095 line 210 toUtm8.gamma: 1.806297\n    test 1096 line 210 toUtm8.scale: 0.999669\n    test 1097 line 210 toUtm8.lat: 69.499594\n    test 1098 line 210 toUtm8.lon: 1.928336\n\n    test skipped (28): line 211 toUtm8.'27.981363604998 86.061112755721 8781885.2291162503299 9184776.4522114918448 81.795538514711932534 2.09490761781464961377'\n    test 1099 line 212 toUtm8.easting: 954378.415174\n    test 1100 line 212 toUtm8.northing: 7449110.669807\n    test 1101 line 212 toUtm8.gamma: 19.380657\n    test 1102 line 212 toUtm8.scale: 1.010768\n    test 1103 line 212 toUtm8.lat: 65.699839\n    test 1104 line 212 toUtm8.lon: 21.104725\n    test 1105 line 213 toUtm8.easting: 720971.793706\n    test 1106 line 213 toUtm8.northing: 5265195.121555\n    test 1107 line 213 toUtm8.gamma: 7.002995\n    test 1108 line 213 toUtm8.scale: 1.005995\n    test 1109 line 213 toUtm8.lat: 47.143648\n    test 1110 line 213 toUtm8.lon: 9.512189\n    test 1111 line 214 toUtm8.easting: 561561.493937\n    test 1112 line 214 toUtm8.northing: 989910.236221\n    test 1113 line 214 toUtm8.gamma: 0.793118\n    test 1114 line 214 toUtm8.scale: 1.003505\n    test 1115 line 214 toUtm8.lat: 8.920167\n    test 1116 line 214 toUtm8.lon: 5.101513\n    test 1117 line 215 toUtm8.easting: 3446829.634468\n    test 1118 line 215 toUtm8.northing: 9232868.155664\n    test 1119 line 215 toUtm8.gamma: 76.279075\n    test 1120 line 215 toUtm8.scale: 1.148263\n    test 1121 line 215 toUtm8.lat: 59.778971\n    test 1122 line 215 toUtm8.lon: 78.080322\n\n    test skipped (29): line 216 toUtm8.'55.865310107291 87.384288430943 4048307.5459092527942 9800416.4229977935137 86.843918034217523739 1.20649504624906774925'\n    test 1123 line 217 toUtm8.easting: 8973188.480293\n    test 1124 line 217 toUtm8.northing: 7042230.087021\n    test 1125 line 217 toUtm8.gamma: 60.872456\n    test 1126 line 217 toUtm8.scale: 2.156098\n    test 1127 line 217 toUtm8.lat: 24.310973\n    test 1128 line 217 toUtm8.lon: 76.823777\n    test 1129 line 218 toUtm8.easting: 126314.191618\n    test 1130 line 218 toUtm8.northing: 396006.687921\n    test 1131 line 218 toUtm8.gamma: 0.071065\n    test 1132 line 218 toUtm8.scale: 0.999798\n    test 1133 line 218 toUtm8.lat: 3.582041\n    test 1134 line 218 toUtm8.lon: 1.137286\n    test 1135 line 219 toUtm8.easting: 5247652.345647\n    test 1136 line 219 toUtm8.northing: 8670513.359752\n    test 1137 line 219 toUtm8.gamma: 72.700498\n    test 1138 line 219 toUtm8.scale: 1.355272\n    test 1139 line 219 toUtm8.lat: 46.124233\n    test 1140 line 219 toUtm8.lon: 77.313118\n\n    test skipped (30): line 220 toUtm8.'31.17139056295 87.104503768139 8103656.8381187232079 9469794.014736839373 84.490673011906282841 1.91216400164486142107'\n    test 1141 line 221 toUtm8.easting: 6300112.758236\n    test 1142 line 221 toUtm8.northing: 93835.917364\n    test 1143 line 221 toUtm8.gamma: 0.644805\n    test 1144 line 221 toUtm8.scale: 1.534073\n    test 1145 line 221 toUtm8.lat: 0.553171\n    test 1146 line 221 toUtm8.lon: 49.117104\n    test 1147 line 222 toUtm8.easting: 3894813.593782\n    test 1148 line 222 toUtm8.northing: 4833832.341027\n    test 1149 line 222 toUtm8.gamma: 27.453298\n    test 1150 line 222 toUtm8.scale: 1.192135\n    test 1151 line 222 toUtm8.lat: 35.361587\n    test 1152 line 222 toUtm8.lon: 41.860599\n    test 1153 line 223 toUtm8.easting: 402511.346712\n    test 1154 line 223 toUtm8.northing: 3520621.561911\n    test 1155 line 223 toUtm8.gamma: 2.238474\n    test 1156 line 223 toUtm8.scale: 1.001599\n    test 1157 line 223 toUtm8.lat: 31.750314\n    test 1158 line 223 toUtm8.lon: 4.248167\n    test 1159 line 224 toUtm8.easting: 5357378.503148\n    test 1160 line 224 toUtm8.northing: 2772997.602234\n    test 1161 line 224 toUtm8.gamma: 17.823560\n    test 1162 line 224 toUtm8.scale: 1.376031\n    test 1163 line 224 toUtm8.lat: 17.924336\n    test 1164 line 224 toUtm8.lon: 46.096402\n    test 1165 line 225 toUtm8.easting: 2807553.985866\n    test 1166 line 225 toUtm8.northing: 8177847.980275\n    test 1167 line 225 toUtm8.gamma: 54.680045\n    test 1168 line 225 toUtm8.scale: 1.097531\n    test 1169 line 225 toUtm8.lat: 60.931488\n    test 1170 line 225 toUtm8.lon: 58.221214\n\n    test skipped (31): line 226 toUtm8.'5.358150979521 87.556213284144 18289045.16650076146 7792942.3396035398889 73.216494415207315628 8.09800850850277481729'\n\n    test skipped (32): line 227 toUtm8.'28.616673489124 80.452426461437 8376822.4595378634541 8128174.6238782329989 70.920116640676321501 1.98487312027093768388'\n    test 1171 line 228 toUtm8.easting: 11898068.352950  FAILED, KNOWN, expected 11898068.353272\n    test 1172 line 228 toUtm8.northing: 4772439.493355  FAILED, KNOWN, expected 4772439.493697\n    test 1173 line 228 toUtm8.gamma: 42.613968\n    test 1174 line 228 toUtm8.scale: 3.314412\n    test 1175 line 228 toUtm8.lat: 11.709763\n    test 1176 line 228 toUtm8.lon: 76.760295\n    test 1177 line 229 toUtm8.easting: 10550946.939052  FAILED, KNOWN, expected 10550946.939050\n    test 1178 line 229 toUtm8.northing: 3851968.815305  FAILED, KNOWN, expected 3851968.815295\n    test 1179 line 229 toUtm8.gamma: 33.383025\n    test 1180 line 229 toUtm8.scale: 2.724754\n    test 1181 line 229 toUtm8.lat: 12.009498\n    test 1182 line 229 toUtm8.lon: 71.782351\n\n    test skipped (33): line 230 toUtm8.'37.62978386356 85.795687334213 6828299.1236065501034 9394803.2274626281036 83.181386462369626591 1.62435875189611017521'\n    test 1183 line 231 toUtm8.easting: 11162550.334001  FAILED, KNOWN, expected 11162550.334022\n    test 1184 line 231 toUtm8.northing: 2640267.279546  FAILED, KNOWN, expected 2640267.279593\n    test 1185 line 231 toUtm8.gamma: 23.145404\n    test 1186 line 231 toUtm8.scale: 2.998408\n    test 1187 line 231 toUtm8.lat: 7.721128\n    test 1188 line 231 toUtm8.lon: 71.662731\n    test 1189 line 232 toUtm8.easting: 4411584.447941\n    test 1190 line 232 toUtm8.northing: 4956173.694407\n    test 1191 line 232 toUtm8.gamma: 30.713919\n    test 1192 line 232 toUtm8.scale: 1.248736\n    test 1193 line 232 toUtm8.lat: 34.295026\n    test 1194 line 232 toUtm8.lon: 46.442191\n    test 1195 line 233 toUtm8.easting: 672108.897905\n    test 1196 line 233 toUtm8.northing: 4751554.657054\n    test 1197 line 233 toUtm8.gamma: 5.569178\n    test 1198 line 233 toUtm8.scale: 1.005162\n    test 1199 line 233 toUtm8.lat: 42.622496\n    test 1200 line 233 toUtm8.lon: 8.193605\n    test 1201 line 234 toUtm8.easting: 5022964.290579\n    test 1202 line 234 toUtm8.northing: 6860418.199502\n    test 1203 line 234 toUtm8.gamma: 50.862230\n    test 1204 line 234 toUtm8.scale: 1.324925\n    test 1205 line 234 toUtm8.lat: 41.667780\n    test 1206 line 234 toUtm8.lon: 61.518288\n    test 1207 line 235 toUtm8.easting: 1669655.595207\n    test 1208 line 235 toUtm8.northing: 4152086.537021\n    test 1209 line 235 toUtm8.gamma: 11.110237\n    test 1210 line 235 toUtm8.scale: 1.034138\n    test 1211 line 235 toUtm8.lat: 36.060369\n    test 1212 line 235 toUtm8.lon: 18.444112\n    test 1213 line 236 toUtm8.easting: 6055876.729655\n    test 1214 line 236 toUtm8.northing: 4896837.552619\n    test 1215 line 236 toUtm8.gamma: 35.799747\n    test 1216 line 236 toUtm8.scale: 1.485967\n    test 1217 line 236 toUtm8.lat: 27.948091\n    test 1218 line 236 toUtm8.lon: 56.816429\n    test 1219 line 237 toUtm8.easting: 1209214.164379\n    test 1220 line 237 toUtm8.northing: 7266409.859178\n    test 1221 line 237 toUtm8.gamma: 22.319633\n    test 1222 line 237 toUtm8.scale: 1.017554\n    test 1223 line 237 toUtm8.lat: 63.386030\n    test 1224 line 237 toUtm8.lon: 24.662716\n    test 1225 line 238 toUtm8.easting: 5154564.559584\n    test 1226 line 238 toUtm8.northing: 698118.349975\n    test 1227 line 238 toUtm8.gamma: 4.242360\n    test 1228 line 238 toUtm8.scale: 1.347481\n    test 1229 line 238 toUtm8.lat: 4.680922\n    test 1230 line 238 toUtm8.lon: 42.114426\n    test 1231 line 239 toUtm8.easting: 2695149.806543\n    test 1232 line 239 toUtm8.northing: 8208197.765605\n    test 1233 line 239 toUtm8.gamma: 54.178615\n    test 1234 line 239 toUtm8.scale: 1.089730\n    test 1235 line 239 toUtm8.lat: 61.826625\n    test 1236 line 239 toUtm8.lon: 57.525096\n    test 1237 line 240 toUtm8.easting: 3394792.327820\n    test 1238 line 240 toUtm8.northing: 3217583.415552\n    test 1239 line 240 toUtm8.gamma: 15.165863\n    test 1240 line 240 toUtm8.scale: 1.145285\n    test 1241 line 240 toUtm8.lat: 25.104353\n    test 1242 line 240 toUtm8.lon: 32.528660\n    test 1243 line 241 toUtm8.easting: 1429160.966985\n    test 1244 line 241 toUtm8.northing: 8212685.362032\n    test 1245 line 241 toUtm8.gamma: 37.484904\n    test 1246 line 241 toUtm8.scale: 1.024676\n    test 1247 line 241 toUtm8.lat: 69.678351\n    test 1248 line 241 toUtm8.lon: 39.275513\n\n    test skipped (34): line 242 toUtm8.'29.671383681805 84.19659549085 8343387.9980651104898 8885196.9545780118644 78.561937382568633298 1.97473261886829061763'\n    test 1249 line 243 toUtm8.easting: 1990722.928606\n    test 1250 line 243 toUtm8.northing: 7569202.065162\n    test 1251 line 243 toUtm8.gamma: 37.075276\n    test 1252 line 243 toUtm8.scale: 1.048486\n    test 1253 line 243 toUtm8.lat: 62.300208\n    test 1254 line 243 toUtm8.lon: 40.474051\n    test 1255 line 244 toUtm8.easting: 1554980.099559\n    test 1256 line 244 toUtm8.northing: 1449423.919586\n    test 1257 line 244 toUtm8.gamma: 3.188328\n    test 1258 line 244 toUtm8.scale: 1.029664\n    test 1259 line 244 toUtm8.lat: 12.721776\n    test 1260 line 244 toUtm8.lon: 14.190003\n    test 1261 line 245 toUtm8.easting: 785205.450196\n    test 1262 line 245 toUtm8.northing: 5575158.423096\n    test 1263 line 245 toUtm8.gamma: 8.388417\n    test 1264 line 245 toUtm8.scale: 1.007181\n    test 1265 line 245 toUtm8.lat: 49.811296\n    test 1266 line 245 toUtm8.lon: 10.925011\n    test 1267 line 246 toUtm8.easting: 3310405.988313\n    test 1268 line 246 toUtm8.northing: 5955022.233881\n    test 1269 line 246 toUtm8.gamma: 33.007587\n    test 1270 line 246 toUtm8.scale: 1.137141\n    test 1271 line 246 toUtm8.lat: 45.132680\n    test 1272 line 246 toUtm8.lon: 42.478624\n    test 1273 line 247 toUtm8.easting: 4733460.960666\n    test 1274 line 247 toUtm8.northing: 129034.889816\n    test 1275 line 247 toUtm8.gamma: 0.737551\n    test 1276 line 247 toUtm8.scale: 1.290439\n    test 1277 line 247 toUtm8.lat: 0.904279\n    test 1278 line 247 toUtm8.lon: 39.078412\n    test 1279 line 248 toUtm8.easting: 3322708.343909\n    test 1280 line 248 toUtm8.northing: 3864738.078742\n    test 1281 line 248 toUtm8.gamma: 18.472566\n    test 1282 line 248 toUtm8.scale: 1.138838\n    test 1283 line 248 toUtm8.lat: 30.163605\n    test 1284 line 248 toUtm8.lon: 33.577996\n\n    test skipped (35): line 249 toUtm8.'27.643243707755 81.892859091432 8672864.4172042475623 8333465.9834441061554 73.206272638168122883 2.06544053870286774312'\n\n    test skipped (36): line 250 toUtm8.'18.201207657521 82.434617649311 11126818.23119627031 7618712.1749910723126 67.88717347393512063 2.92241673495261070414'\n\n    test skipped (37): line 251 toUtm8.'28.804576432117 89.886072420251 8650100.9817967479337 9975084.1689971279206 89.767446308690086924 2.05728879562910108817'\n    test 1285 line 252 toUtm8.easting: 2212701.180192\n    test 1286 line 252 toUtm8.northing: 650348.100229\n    test 1287 line 252 toUtm8.gamma: 1.970441\n    test 1288 line 252 toUtm8.scale: 1.060830\n    test 1289 line 252 toUtm8.lat: 5.542998\n    test 1290 line 252 toUtm8.lon: 19.589578\n    test 1291 line 253 toUtm8.easting: 6890222.326618\n    test 1292 line 253 toUtm8.northing: 7506813.499547\n    test 1293 line 253 toUtm8.gamma: 62.684825\n    test 1294 line 253 toUtm8.scale: 1.638488\n    test 1295 line 253 toUtm8.lat: 34.237147\n    test 1296 line 253 toUtm8.lon: 73.678164\n    test 1297 line 254 toUtm8.easting: 6692260.067325\n    test 1298 line 254 toUtm8.northing: 4244174.008110\n    test 1299 line 254 toUtm8.gamma: 31.812920\n    test 1300 line 254 toUtm8.scale: 1.604640\n    test 1301 line 254 toUtm8.lat: 22.704949\n    test 1302 line 254 toUtm8.lon: 57.877010\n    test 1303 line 255 toUtm8.easting: 1225564.137190\n    test 1304 line 255 toUtm8.northing: 4778923.924144\n    test 1305 line 255 toUtm8.gamma: 10.083419\n    test 1306 line 255 toUtm8.scale: 1.018134\n    test 1307 line 255 toUtm8.lat: 42.192424\n    test 1308 line 255 toUtm8.lon: 14.828196\n    test 1309 line 256 toUtm8.easting: 12341116.155088  FAILED, KNOWN, expected 12341116.154950\n    test 1310 line 256 toUtm8.northing: 5081855.520287  FAILED, KNOWN, expected 5081855.521966\n    test 1311 line 256 toUtm8.gamma: 45.712545  FAILED, KNOWN, expected 45.712546\n    test 1312 line 256 toUtm8.scale: 3.535170\n    test 1313 line 256 toUtm8.lat: 11.481151\n    test 1314 line 256 toUtm8.lon: 78.189236\n    test 1315 line 257 toUtm8.easting: 6673845.021771\n    test 1316 line 257 toUtm8.northing: 1177587.190565\n    test 1317 line 257 toUtm8.gamma: 8.389141\n    test 1318 line 257 toUtm8.scale: 1.605171\n    test 1319 line 257 toUtm8.lat: 6.609626\n    test 1320 line 257 toUtm8.lon: 51.735783\n    test 1321 line 258 toUtm8.easting: 6966354.690417\n    test 1322 line 258 toUtm8.northing: 3641802.005093\n    test 1323 line 258 toUtm8.gamma: 27.409636\n    test 1324 line 258 toUtm8.scale: 1.661469\n    test 1325 line 258 toUtm8.lat: 19.059369\n    test 1326 line 258 toUtm8.lon: 57.526439\n    test 1327 max forward error: 1.678809e-03\n    test 1328 max reverse error: 3.170463e-09\n    test 1329 Utm.scale0: 0.9996\n    test 1330 Utm.datum: WGS84\n    test 1331 Utm.datum.ellipsoid.KsOrder: 8\n    test 1332 WGS84.KsOrder: 8\n\n    23 of 1332 testUtmTMcoords.py tests (1.7%) FAILED, ALL KNOWN, 37 skipped (pygeodesy 26.3.26 Python 3.14.3 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 137.169 ms\nrunning /Library/Framewo....n3.14 -W default ~/PyGeodesy/test/testUtmUps.py\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.F_DMS from .dms by testUtmUps.py line 11\n# lazily imported pygeodesy.parseUTMUPS5 from .utmups by testUtmUps.py line 11\n# lazily imported pygeodesy.toUps8 from .ups by testUtmUps.py line 11\n# lazily imported pygeodesy.toUtmUps8 from .utmups by testUtmUps.py line 11\n# lazily imported pygeodesy.UtmUps from .utmups by testUtmUps.py line 11\n# lazily imported pygeodesy.utmupsValidateOK from .utmups by testUtmUps.py line 11\n# lazily imported pygeodesy.ellipsoidalVincenty by testUtmUps.py line 200\n\n    testing testUtmUps.py 23.03.27 (module pygeodesy.utmups 25.04.14) isLazy=3\n    test 1 UtmUps: 00 N 448251.0 5411932.0001\n    test 2 UtmUps.ValidateOK: True\n    test 3 UtmUps: 00 N 448252 5411933\n    test 4 UtmUps: 00 N 448251.795 5411932.678\n    test 5 UtmUps: 00Z N 448251.8 5411932.7 n/a n/a\n    test 6 UtmUps.ValidateOK: True\n    test 7 UtmUps.toLatLon: 43.684097°N, 175.265195°E\n    test 8 UtmUps.toLatLon: 43°41′02.75″N, 175°15′54.7″E\n    test 9 LL.toUtmUps: 60 N 360177 4838249\n    test 10 LL.toUtmUps: 60 N 360176.686 4838249.416\n    test 11 LL.toUtmUps: [Z:60T, H:N, E:360177, N:4838249, C:-1.19839167°, S:0.99984048]\n    test 12 LL.toUtmUps.ValidateOK: True\n# imported pygeodesy.basics into errors.py line 443\n    test 13 toUtmUps8ID1: 00Y N 1530125.78 2426773.6 -132.24798917° 0.99647445\n    test 14 toUtmUps8ID1.ValidateOK: True\n    test 15 toUtmUps8ID1.ValidateOK: True\n    test 16 toUtmUps8ID2: 38 N 467367.68 8100752.13 -57.37878422′ 0.99961302  FAILED, KNOWN, expected 38 N 3320416.75 632668.43 +44.0° 1.01619505\n    test 17 toUtmUps8ID2.ValidateOK: True\n    test 18 toUtmUps8ID2.ValidateOK: True\n    test 19 toUtmUps8ID2: 00 N 3320416.75 632668.43 +44.0° 1.01619505\n    test 20 toUtmUps8ID2.ValidateOK: easting (3320416.7473598532): outside UPS range [1300000, 2700000]  FAILED, KNOWN, expected True\n    test 21 toUtmUps8ID3: 00B S 2222979.47 1797474.9 -132.24786194° 0.99455723\n    test 22 toUtmUps8ID3.ValidateOK: True\n    test 23 toUtmUps8ID3.ValidateOK: True\n    test 24 UtmUps.toLatLonID4.ValidateOK: True\n    test 25 UtmUps.toLatLonID4: 84°17′14.04″N, 132°14′52.76″W\n    test 26 UtmUps.toLatLonID4: 84.287234°N, 132.247989°W\n    test 27 UtmUps.ValidateOK: easting (3320416.75): outside UPS range [1300000, 2700000]  FAILED, KNOWN, expected True\n    test 28 UtmUps.toLatLonID5: 73°00′00.0″N, 044°00′00.0″E\n    test 29 UtmUps.toLatLonID5: 73.0°N, 044.0°E\n    test 30 UtmUps.ValidateOK: True\n    test 31 UtmUps.toLatLonID6: 87°17′14.4″S, 132°14′52.3″E\n    test 32 UtmUps.toLatLonID6: 87.287333°S, 132.247861°E\n    test 33 latlon1: 61.2°N, 149.9°W\n    test 34 toUtmUps8: 06 N 344174 6788521\n    test 35 toUtmUps8: 06V N 344173.864114 6788521.418164 -2.54179531° 0.99989751\n    test 36 toUtmUps8.ValidateOK: True\n# lazily imported pygeodesy.mgrs by utmupsBase.py line 523\n    test 37 toMgrs: 06V UN 44173 88521\n    test 38 latlon2: LatLon(83°37′37.2″N, 032°39′50.4″W)\n    test 39 toUtmUps8: 25 N 504164 9286466\n    test 40 toUtmUps8: [Z:25X, H:N, E:504164, N:9286466]\n    test 41 toUtmUps8: 25X N 504163.899383 9286465.664902 +20.03542083′ 0.99960021\n    test 42 toUtmUps8.ValidateOK: True\n    test 43 toMgrs: 25X EN 04163 86465\n    test 44 latlon3: 33.33°N, 044.44°E\n    test 45 toUtmUps8: 38 N 447882 3688012\n    test 46 toUtmUps8: 38S N 447882.413169 3688011.692733 -18.46228466′ 0.99963349\n    test 47 toUtmUps8.ValidateOK: True\n    test 48 toMgrs: 38S MB 47882 88011\n    test 49 latlon4: 79.0°S, 079.0°W\n    test 50 toUtmUps8: 17 S 542594 1229296\n    test 51 toUtmUps8: 17C S 542594.134555 1229296.157301 -1.96328341° 0.99962217\n    test 52 toUtmUps8.ValidateOK: True\n    test 53 toMgrs: 17C NN 42594 29296\n    test 54 latlon5: 84.0°N, 084.0°E\n    test 55 toUtmUps8: 00 N 2663075 1930308\n    test 56 toUtmUps8: 00Z N 2663075.299562 1930307.977716 +84.0° 0.99673\n    test 57 toUtmUps8.ValidateOK: True\n    test 58 latlon6: 13.4125°N, 103.8667°E\n    test 59 toUtmUps8: 48 N 377302 1483035\n    test 60 toUtmUps8: 48P N 377302.354183 1483034.777084 -15.77480856′ 0.99978623\n    test 61 toUtmUps8.ValidateOK: True\n    test 62 toMgrs: 48P UV 77302 83034\n    test 63 latlon7: 13.4125°S, 103.8667°W\n    test 64 LL.toUtmUps: 13 S 622698 8516965\n    test 65 LL.toUtmUps: 13L S 622697.645817 8516965.222916 -15.77480856′ 0.99978623\n    test 66 LL.toUtmUps.ValidateOK: True\n    test 67 toMgrs: 13L FF 22697 16965\n    test 68 latlon8: 43.684097°N, 175.265195°E\n    test 69 LL.toUtmUps: 60 N 360177 4838249\n    test 70 LL.toUtmUps: 60 N 360176.691 4838249.422\n    test 71 LL.toUtmUps: [Z:60T, H:N, E:360177, N:4838249, C:-1.19839163°, S:0.99984048]\n    test 72 LL.toUtmUps.ValidateOK: True\n    test 73 toMgrs: 60T UP 60176 38249\n    test 74 UtmUps.toLatLon: 43.684097°N, 175.265195°E\n    test 75 UtmUps.toLatLon: 43°41′02.75″N, 175°15′54.7″E\n    test 76 latlon9: 41.321801°N, 074.801413°W\n    test 77 LL.toUtmUps: 18 N 516620 4574500\n    test 78 LL.toUtmUps: [Z:18T, H:N, E:516620, N:4574500, C:+7.86748851′, S:0.9996034]\n    test 79 LL.toUtmUps.ValidateOK: True\n    test 80 toMgrs: 18T WL 16619 74500\n    test 81 UtmUps.toLatLon: 41.321801°N, 074.801413°W\n    test 82 UtmUps.toLatLon: 41°19′18.48″N, 074°48′05.09″W\n    test 83 parseUTMUPS5: 18 N 516620 4574500\n    test 84 parseUTMUPS5.ValidateOK: True\n    test 85 UtmUps.toLatLon: 41.321801°N, 074.801413°W\n    test 86 UtmUps: 00A S 321441 5810117\n    test 87 UtmUps.ValidateOK: easting (321441.0425108216): outside UPS range [800000, 3200000]  FAILED, KNOWN, expected True\n    test 88 UtmUps.toLatLon: 53.713776°S, 023.77604°W\n    test 89 UtmUps.toLatLon: 53°42′49.59″S, 023°46′33.74″W\n    test 90 LL.toUtmUps: 27 S 316807 4044745\n    test 91 LL.toUtmUps.ValidateOK: True\n    test 92 LL.toUtmUps: 27 S 316807.326 4044744.532\n    test 93 LL.toUtmUps: [Z:27F, H:S, E:316807, N:4044745, C:+2.23830171°, S:1.00001184]\n    test 94 UtmUps: 00Z N 400000 5000000\n    test 95 UtmUps.ValidateOK: True\n    test 96 parseUTMUPS5: (31, 'N', 446000.0, 8436100.0, 'X')\n    test 97 parseUTMUPS5: (0, 'S', 506346.0, 1057743.0, 'A')\n\n    4 of 97 testUtmUps.py tests (4.1%) FAILED, ALL KNOWN (pygeodesy 26.3.26 Python 3.14.3 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 8.601 ms\nrunning /Library/Framewo....n3.14 -W default ~/PyGeodesy/test/testUtmUpsTMcoords.py\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.Ellipsoids from .ellipsoids by testTMcoords.py line 14\n# lazily imported pygeodesy.EPS from .constants by testTMcoords.py line 14\n# lazily imported pygeodesy.RangeError from .errors by testTMcoords.py line 14\n# lazily imported pygeodesy.toUtmUps8 from .utmups by testUtmUpsTMcoords.py line 17\n# lazily imported pygeodesy.Ups from .ups by testUtmUpsTMcoords.py line 17\n# lazily imported pygeodesy.Utm from .utm by testUtmUpsTMcoords.py line 17\n\n    testing testUtmUpsTMcoords.py 24.03.22 (module pygeodesy.utmups 25.04.14) isLazy=3\n    test 1 line 1 toUtmUps8.easting: 1548706.791619\n    test 2 line 1 toUtmUps8.northing: 8451449.198772\n    test 3 line 1 toUtmUps8.gamma: 43.922790\n    test 4 line 1 toUtmUps8.scale: 1.029060\n    test 5 line 1 toUtmUps8.lat: 70.579277\n    test 6 line 1 toUtmUps8.lon: 45.599420\n    test 7 line 2 toUtmUps8.easting: 2624150.740929\n    test 8 line 2 toUtmUps8.northing: 1204434.041605\n    test 9 line 2 toUtmUps8.gamma: 4.292619\n    test 10 line 2 toUtmUps8.scale: 1.086051\n    test 11 line 2 toUtmUps8.lat: 10.018894\n    test 12 line 2 toUtmUps8.lon: 23.313324\n    test 13 line 3 toUtmUps8.easting: 9855841.232935\n    test 14 line 3 toUtmUps8.northing: 6145496.115157  FAILED, KNOWN, expected 6145496.115155\n    test 15 line 3 toUtmUps8.gamma: 53.348315\n    test 16 line 3 toUtmUps8.scale: 2.445098\n    test 17 line 3 toUtmUps8.lat: 19.479896\n    test 18 line 3 toUtmUps8.lon: 75.662049\n    test 19 line 4 toUtmUps8.easting: 3206390.691996\n    test 20 line 4 toUtmUps8.northing: 2650745.400406\n    test 21 line 4 toUtmUps8.gamma: 11.666950\n    test 22 line 4 toUtmUps8.scale: 1.129359\n    test 23 line 4 toUtmUps8.lat: 21.072465\n    test 24 line 4 toUtmUps8.lon: 29.828684\n    test 25 line 5 toUtmUps8.easting: 4328154.083501\n    test 26 line 5 toUtmUps8.northing: 749647.623690\n    test 27 line 5 toUtmUps8.gamma: 4.024317\n    test 28 line 5 toUtmUps8.scale: 1.240829\n    test 29 line 5 toUtmUps8.lat: 5.458957\n    test 30 line 5 toUtmUps8.lon: 36.385237\n    test 31 line 6 toUtmUps8.easting: 847598.266514\n    test 32 line 6 toUtmUps8.northing: 7947180.962440\n    test 33 line 6 toUtmUps8.gamma: 21.639091\n    test 34 line 6 toUtmUps8.scale: 1.008399\n    test 35 line 6 toUtmUps8.lat: 70.175454\n    test 36 line 6 toUtmUps8.lon: 22.865350\n    test 37 line 7 toUtmUps8.easting: 2727657.337974\n    test 38 line 7 toUtmUps8.northing: 8283916.696410\n    test 39 line 7 toUtmUps8.gamma: 55.690909\n    test 40 line 7 toUtmUps8.scale: 1.091942\n    test 41 line 7 toUtmUps8.lat: 61.965605\n    test 42 line 7 toUtmUps8.lon: 58.931371\n    test 43 line 8 toUtmUps8.easting: 2331001.751890\n    test 44 line 8 toUtmUps8.northing: 1313608.224751\n    test 45 line 8 toUtmUps8.gamma: 4.214690\n    test 46 line 8 toUtmUps8.scale: 1.067599\n    test 47 line 8 toUtmUps8.lat: 11.116050\n    test 48 line 8 toUtmUps8.lon: 20.901069\n    test 49 line 9 toUtmUps8.easting: 6035557.239480\n    test 50 line 9 toUtmUps8.northing: 5791770.791879\n    test 51 line 9 toUtmUps8.gamma: 43.698170\n    test 52 line 9 toUtmUps8.scale: 1.481260\n    test 53 line 9 toUtmUps8.lat: 32.210543\n    test 54 line 9 toUtmUps8.lon: 60.705849\n    test 55 line 10 toUtmUps8.easting: 1064553.125852\n    test 56 line 10 toUtmUps8.northing: 9417273.737208\n    test 57 line 10 toUtmUps8.gamma: 61.100380\n    test 58 line 10 toUtmUps8.scale: 1.013475\n    test 59 line 10 toUtmUps8.lat: 79.187451\n    test 60 line 10 toUtmUps8.lon: 61.532382\n    test 61 line 11 toUtmUps8.easting: 1400137.116164\n    test 62 line 11 toUtmUps8.northing: 9616907.017686\n    test 63 line 11 toUtmUps8.gamma: 74.527087\n    test 64 line 11 toUtmUps8.scale: 1.023640\n    test 65 line 11 toUtmUps8.lat: 77.103759\n    test 66 line 11 toUtmUps8.lon: 74.899105\n\n    test skipped (1): line 12 toUtmUps8.'21.889514024862 80.019885892785 9860691.0166261508479 7433039.1433282732643 65.357693372142649007 2.43897318400097845293'\n\n    test skipped (2): line 13 toUtmUps8.'30.53629567699 82.186177919416 8076501.8336948099169 8561614.1747819103782 75.073393190238557702 1.90620203595203984732'\n    test 67 line 14 toUtmUps8.easting: 3335099.866623\n    test 68 line 14 toUtmUps8.northing: 6740519.084015\n    test 69 line 14 toUtmUps8.gamma: 40.611821\n    test 70 line 14 toUtmUps8.scale: 1.139021\n    test 71 line 14 toUtmUps8.lat: 49.990485\n    test 72 line 14 toUtmUps8.lon: 48.203179\n\n    test skipped (3): line 15 toUtmUps8.'14.486311853451 80.905136710227 12051574.9284996192629 6587213.0519512810474 59.033236797073779959 3.3574686117030164354'\n    test 73 line 16 toUtmUps8.easting: 5387578.735298\n    test 74 line 16 toUtmUps8.northing: 4111216.907168\n    test 75 line 16 toUtmUps8.gamma: 27.574337\n    test 76 line 16 toUtmUps8.scale: 1.379357\n    test 77 line 16 toUtmUps8.lat: 25.936824\n    test 78 line 16 toUtmUps8.lon: 49.913598\n    test 79 line 17 toUtmUps8.easting: 2622214.380233\n    test 80 line 17 toUtmUps8.northing: 8678923.984567\n    test 81 line 17 toUtmUps8.gamma: 61.697275\n    test 82 line 17 toUtmUps8.scale: 1.084810\n    test 83 line 17 toUtmUps8.lat: 64.402196\n    test 84 line 17 toUtmUps8.lon: 64.091395\n\n    test skipped (4): line 18 toUtmUps8.'48.451353594584 84.856197560189 5068474.169632778036 9492066.9937094951003 83.156739839119105102 1.3299901985118008373'\n    test 85 line 19 toUtmUps8.easting: 738062.047779\n    test 86 line 19 toUtmUps8.northing: 3031007.074116\n    test 87 line 19 toUtmUps8.gamma: 3.416802\n    test 88 line 19 toUtmUps8.scale: 1.006332\n    test 89 line 19 toUtmUps8.lat: 27.203895\n    test 90 line 19 toUtmUps8.lon: 7.440229\n    test 91 line 20 toUtmUps8.easting: 1944413.834565\n    test 92 line 20 toUtmUps8.northing: 9613299.224493\n    test 93 line 20 toUtmUps8.gamma: 78.462831\n    test 94 line 20 toUtmUps8.scale: 1.046134\n    test 95 line 20 toUtmUps8.lat: 72.509000\n    test 96 line 20 toUtmUps8.lon: 78.982283\n    test 97 line 21 toUtmUps8.easting: 2114521.418406\n    test 98 line 21 toUtmUps8.northing: 4954077.440098\n    test 99 line 21 toUtmUps8.gamma: 17.571878\n    test 100 line 21 toUtmUps8.scale: 1.055093\n    test 101 line 21 toUtmUps8.lat: 41.824954\n    test 102 line 21 toUtmUps8.lon: 25.392744\n    test 103 line 22 toUtmUps8.easting: 620365.905090\n    test 104 line 22 toUtmUps8.northing: 4755542.026562\n    test 105 line 22 toUtmUps8.gamma: 5.152022\n    test 106 line 22 toUtmUps8.scale: 1.004338\n    test 107 line 22 toUtmUps8.lat: 42.701376\n    test 108 line 22 toUtmUps8.lon: 7.572738\n    test 109 line 23 toUtmUps8.easting: 263004.770989\n    test 110 line 23 toUtmUps8.northing: 4493669.762451\n    test 111 line 23 toUtmUps8.gamma: 2.020523\n    test 112 line 23 toUtmUps8.scale: 1.000452\n    test 113 line 23 toUtmUps8.lat: 40.552052\n    test 114 line 23 toUtmUps8.lon: 3.106056\n    test 115 line 24 toUtmUps8.easting: 3217221.739462\n    test 116 line 24 toUtmUps8.northing: 437776.119161\n    test 117 line 24 toUtmUps8.gamma: 1.848169\n    test 118 line 24 toUtmUps8.scale: 1.130558\n    test 119 line 24 toUtmUps8.lat: 3.501242\n    test 120 line 24 toUtmUps8.lon: 27.806507\n\n    test skipped (5): line 25 toUtmUps8.'10.148714782203 85.373767569431 14661142.4449607145297 7476100.8241849819567 68.376669038799719822 4.89664968310721668858'\n    test 121 line 26 toUtmUps8.easting: 967777.158554\n    test 122 line 26 toUtmUps8.northing: 6615684.266592\n    test 123 line 26 toUtmUps8.gamma: 14.410044\n    test 124 line 26 toUtmUps8.scale: 1.011100\n    test 125 line 26 toUtmUps8.lat: 58.582623\n    test 126 line 26 toUtmUps8.lon: 16.755558\n    test 127 line 27 toUtmUps8.easting: 7558840.728461\n    test 128 line 27 toUtmUps8.northing: 4144728.130764\n    test 129 line 27 toUtmUps8.gamma: 32.557264\n    test 130 line 27 toUtmUps8.scale: 1.791490\n    test 131 line 27 toUtmUps8.lat: 19.793004\n    test 132 line 27 toUtmUps8.lon: 61.746763\n    test 133 line 28 toUtmUps8.easting: 1056008.314161\n    test 134 line 28 toUtmUps8.northing: 9290799.692669\n    test 135 line 28 toUtmUps8.gamma: 55.843278\n    test 136 line 28 toUtmUps8.scale: 1.013253\n    test 137 line 28 toUtmUps8.lat: 78.666776\n    test 138 line 28 toUtmUps8.lon: 56.365355\n    test 139 line 29 toUtmUps8.easting: 1943965.134687\n    test 140 line 29 toUtmUps8.northing: 1389972.228690\n    test 141 line 29 toUtmUps8.gamma: 3.774869\n    test 142 line 29 toUtmUps8.scale: 1.046724\n    test 143 line 29 toUtmUps8.lat: 11.998788\n    test 144 line 29 toUtmUps8.lon: 17.597873\n    test 145 line 30 toUtmUps8.easting: 5803077.072902\n    test 146 line 30 toUtmUps8.northing: 5649957.943659\n    test 147 line 30 toUtmUps8.gamma: 41.717943\n    test 148 line 30 toUtmUps8.scale: 1.442572\n    test 149 line 30 toUtmUps8.lat: 32.540378\n    test 150 line 30 toUtmUps8.lon: 58.764613\n    test 151 line 31 toUtmUps8.easting: 2928716.986009\n    test 152 line 31 toUtmUps8.northing: 5731835.058317\n    test 153 line 31 toUtmUps8.gamma: 28.538550\n    test 154 line 31 toUtmUps8.scale: 1.106780\n    test 155 line 31 toUtmUps8.lat: 45.160356\n    test 156 line 31 toUtmUps8.lon: 37.465285\n    test 157 line 32 toUtmUps8.easting: 326141.975756\n    test 158 line 32 toUtmUps8.northing: 8881325.164543\n    test 159 line 32 toUtmUps8.gamma: 16.111415\n    test 160 line 32 toUtmUps8.scale: 1.000900\n    test 161 line 32 toUtmUps8.lat: 79.584190\n    test 162 line 32 toUtmUps8.lon: 16.367006\n    test 163 line 33 toUtmUps8.easting: 3933015.267450\n    test 164 line 33 toUtmUps8.northing: 7932373.909512\n    test 165 line 33 toUtmUps8.gamma: 58.577424\n    test 166 line 33 toUtmUps8.scale: 1.194811\n    test 167 line 33 toUtmUps8.lat: 52.470664\n    test 168 line 33 toUtmUps8.lon: 64.125580\n    test 169 line 34 toUtmUps8.easting: 8598926.983213\n    test 170 line 34 toUtmUps8.northing: 6214135.167503\n    test 171 line 34 toUtmUps8.gamma: 52.612878\n    test 172 line 34 toUtmUps8.scale: 2.051367\n    test 173 line 34 toUtmUps8.lat: 23.702673\n    test 174 line 34 toUtmUps8.lon: 72.630363\n    test 175 line 35 toUtmUps8.easting: 6620553.333772\n    test 176 line 35 toUtmUps8.northing: 6540527.122948\n    test 177 line 35 toUtmUps8.gamma: 52.350140\n    test 178 line 35 toUtmUps8.scale: 1.586614\n    test 179 line 35 toUtmUps8.lat: 32.603520\n    test 180 line 35 toUtmUps8.lon: 67.280123\n    test 181 line 36 toUtmUps8.easting: 1515136.758292\n    test 182 line 36 toUtmUps8.northing: 3858996.087537\n    test 183 line 36 toUtmUps8.gamma: 9.225127\n    test 184 line 36 toUtmUps8.scale: 1.028029\n    test 185 line 36 toUtmUps8.lat: 33.776224\n    test 186 line 36 toUtmUps8.lon: 16.280993\n    test 187 line 37 toUtmUps8.easting: 479854.373445\n    test 188 line 37 toUtmUps8.northing: 8980501.389896\n    test 189 line 37 toUtmUps8.gamma: 25.021222\n    test 190 line 37 toUtmUps8.scale: 1.002415\n    test 191 line 37 toUtmUps8.lat: 79.932747\n    test 192 line 37 toUtmUps8.lon: 25.363622\n    test 193 line 38 toUtmUps8.easting: 5243446.564940\n    test 194 line 38 toUtmUps8.northing: 140657.213960\n    test 195 line 38 toUtmUps8.gamma: 0.862817\n    test 196 line 38 toUtmUps8.scale: 1.360358\n    test 197 line 38 toUtmUps8.lat: 0.935056\n    test 198 line 38 toUtmUps8.lon: 42.538824\n\n    test skipped (6): line 39 toUtmUps8.'13.490862440668 83.178380075606 12806457.9232176809509 7170118.6846750266674 64.708921319446620085 3.7405880916836789809'\n    test 199 line 40 toUtmUps8.easting: 1202993.459158\n    test 200 line 40 toUtmUps8.northing: 5557316.053599\n    test 201 line 40 toUtmUps8.gamma: 12.579061\n    test 202 line 40 toUtmUps8.scale: 1.017426\n    test 203 line 40 toUtmUps8.lat: 48.979057\n    test 204 line 40 toUtmUps8.lon: 16.474542\n    test 205 line 41 toUtmUps8.easting: 1729088.710196\n    test 206 line 41 toUtmUps8.northing: 7770874.289954\n    test 207 line 41 toUtmUps8.gamma: 36.021783\n    test 208 line 41 toUtmUps8.scale: 1.036397\n    test 209 line 41 toUtmUps8.lat: 65.036016\n    test 210 line 41 toUtmUps8.lon: 38.729091\n    test 211 line 42 toUtmUps8.easting: 2437301.517425\n    test 212 line 42 toUtmUps8.northing: 5539327.748318\n    test 213 line 42 toUtmUps8.gamma: 23.461879\n    test 214 line 42 toUtmUps8.scale: 1.073459\n    test 215 line 42 toUtmUps8.lat: 45.510091\n    test 216 line 42 toUtmUps8.lon: 31.303729\n    test 217 line 43 toUtmUps8.easting: 3647186.135066\n    test 218 line 43 toUtmUps8.northing: 2086412.330983\n    test 219 line 43 toUtmUps8.gamma: 10.023991\n    test 220 line 43 toUtmUps8.scale: 1.168707\n    test 221 line 43 toUtmUps8.lat: 16.058010\n    test 222 line 43 toUtmUps8.lon: 32.520026\n    test 223 line 44 toUtmUps8.easting: 1818497.243556\n    test 224 line 44 toUtmUps8.northing: 4275471.745057\n    test 225 line 44 toUtmUps8.gamma: 12.499656\n    test 226 line 44 toUtmUps8.scale: 1.040604\n    test 227 line 44 toUtmUps8.lat: 36.845200\n    test 228 line 44 toUtmUps8.lon: 20.282283\n    test 229 line 45 toUtmUps8.easting: 3751304.113783\n    test 230 line 45 toUtmUps8.northing: 5130454.001592\n    test 231 line 45 toUtmUps8.gamma: 28.959707\n    test 232 line 45 toUtmUps8.scale: 1.177681\n    test 233 line 45 toUtmUps8.lat: 37.865481\n    test 234 line 45 toUtmUps8.lon: 41.990402\n    test 235 line 46 toUtmUps8.easting: 2616733.138544\n    test 236 line 46 toUtmUps8.northing: 394644.463815\n    test 237 line 46 toUtmUps8.gamma: 1.390425\n    test 238 line 46 toUtmUps8.scale: 1.085595\n    test 239 line 46 toUtmUps8.lat: 3.287272\n    test 240 line 46 toUtmUps8.lon: 22.917604\n    test 241 line 47 toUtmUps8.easting: 1756506.573942\n    test 242 line 47 toUtmUps8.northing: 5570393.986394\n    test 243 line 47 toUtmUps8.gamma: 17.897894\n    test 244 line 47 toUtmUps8.scale: 1.037732\n    test 245 line 47 toUtmUps8.lat: 47.813686\n    test 246 line 47 toUtmUps8.lon: 23.545092\n    test 247 line 48 toUtmUps8.easting: 8752461.894711\n    test 248 line 48 toUtmUps8.northing: 6087728.152284\n    test 249 line 48 toUtmUps8.gamma: 51.628465\n    test 250 line 48 toUtmUps8.scale: 2.095465\n    test 251 line 48 toUtmUps8.lat: 22.836853\n    test 252 line 48 toUtmUps8.lon: 72.604385\n    test 253 line 49 toUtmUps8.easting: 1309272.216432\n    test 254 line 49 toUtmUps8.northing: 59520.028899\n    test 255 line 49 toUtmUps8.gamma: 0.109069\n    test 256 line 49 toUtmUps8.scale: 1.020897\n    test 257 line 49 toUtmUps8.lat: 0.527262\n    test 258 line 49 toUtmUps8.lon: 11.684209\n    test 259 line 50 toUtmUps8.easting: 328652.277129\n    test 260 line 50 toUtmUps8.northing: 2233043.958874\n    test 261 line 50 toUtmUps8.gamma: 1.084863\n    test 262 line 50 toUtmUps8.scale: 1.000935\n    test 263 line 50 toUtmUps8.lat: 20.166742\n    test 264 line 50 toUtmUps8.lon: 3.143948\n\n    test skipped (7): line 51 toUtmUps8.'28.604629015528 85.988721094779 8637959.7164470998207 9190635.1560309800028 81.802562643198123218 2.05432863342852874819'\n\n    test skipped (8): line 52 toUtmUps8.'28.984047991106 85.833447775172 8548521.4551470334531 9172410.9432821880799 81.583928102890161419 2.02964145862183583179'\n    test 265 line 53 toUtmUps8.easting: 796987.281104\n    test 266 line 53 toUtmUps8.northing: 7677446.357675\n    test 267 line 53 toUtmUps8.gamma: 18.084472\n    test 268 line 53 toUtmUps8.scale: 1.007381\n    test 269 line 53 toUtmUps8.lat: 68.071020\n    test 270 line 53 toUtmUps8.lon: 19.392823\n\n    test skipped (9): line 54 toUtmUps8.'61.416576191872 81.981611413918 3291036.4967623295988 9513199.6006662170596 80.890253980644739593 1.13482563910814382209'\n    test 271 line 55 toUtmUps8.easting: 7087225.330906\n    test 272 line 55 toUtmUps8.northing: 8382823.855822\n    test 273 line 55 toUtmUps8.gamma: 72.253756\n    test 274 line 55 toUtmUps8.scale: 1.678070\n    test 275 line 55 toUtmUps8.lat: 35.074753\n    test 276 line 55 toUtmUps8.lon: 79.496003\n    test 277 line 56 toUtmUps8.easting: 5090358.125724\n    test 278 line 56 toUtmUps8.northing: 4318294.133489\n    test 279 line 56 toUtmUps8.gamma: 28.266280\n    test 280 line 56 toUtmUps8.scale: 1.336264\n    test 281 line 56 toUtmUps8.lat: 28.078790\n    test 282 line 56 toUtmUps8.lon: 48.684350\n\n    test skipped (10): line 57 toUtmUps8.'84.986930137199 2.067177857261 20163.0752214330146 9438635.9888499043815 2.059277291707588222 .99960496589466017622'\n    test 283 line 58 toUtmUps8.easting: 3447670.550785\n    test 284 line 58 toUtmUps8.northing: 3680238.888223\n    test 285 line 58 toUtmUps8.gamma: 17.934948\n    test 286 line 58 toUtmUps8.scale: 1.149831\n    test 287 line 58 toUtmUps8.lat: 28.473948\n    test 288 line 58 toUtmUps8.lon: 34.127306\n    test 289 line 59 toUtmUps8.easting: 3396522.906798\n    test 290 line 59 toUtmUps8.northing: 8093659.687593\n    test 291 line 59 toUtmUps8.gamma: 57.747117\n    test 292 line 59 toUtmUps8.scale: 1.144006\n    test 293 line 59 toUtmUps8.lat: 56.629354\n    test 294 line 59 toUtmUps8.lon: 62.196474\n    test 295 line 60 toUtmUps8.easting: 11249894.100794  FAILED, KNOWN, expected 11249894.100784\n    test 296 line 60 toUtmUps8.northing: 1619226.506360  FAILED, KNOWN, expected 1619226.506299\n    test 297 line 60 toUtmUps8.gamma: 14.210358\n    test 298 line 60 toUtmUps8.scale: 3.048347\n    test 299 line 60 toUtmUps8.lat: 4.747762\n    test 300 line 60 toUtmUps8.lon: 70.932555\n    test 301 line 61 toUtmUps8.easting: 6808805.230950\n    test 302 line 61 toUtmUps8.northing: 8044779.777369\n    test 303 line 61 toUtmUps8.gamma: 68.242008\n    test 304 line 61 toUtmUps8.scale: 1.621464\n    test 305 line 61 toUtmUps8.lat: 35.882113\n    test 306 line 61 toUtmUps8.lon: 76.741849\n    test 307 line 62 toUtmUps8.easting: 2306021.556506\n    test 308 line 62 toUtmUps8.northing: 757191.592866\n    test 309 line 62 toUtmUps8.gamma: 2.385686\n    test 310 line 62 toUtmUps8.scale: 1.066159\n    test 311 line 62 toUtmUps8.lat: 6.420705\n    test 312 line 62 toUtmUps8.lon: 20.416028\n    test 313 line 63 toUtmUps8.easting: 1547406.313862\n    test 314 line 63 toUtmUps8.northing: 6048712.751824\n    test 315 line 63 toUtmUps8.gamma: 18.474372\n    test 316 line 63 toUtmUps8.scale: 1.029123\n    test 317 line 63 toUtmUps8.lat: 52.335248\n    test 318 line 63 toUtmUps8.lon: 22.879294\n    test 319 line 64 toUtmUps8.easting: 2430467.650383\n    test 320 line 64 toUtmUps8.northing: 7557167.613972\n    test 321 line 64 toUtmUps8.gamma: 42.110021\n    test 322 line 64 toUtmUps8.scale: 1.072759\n    test 323 line 64 toUtmUps8.lat: 59.846391\n    test 324 line 64 toUtmUps8.lon: 46.262536\n    test 325 line 65 toUtmUps8.easting: 2334053.905830\n    test 326 line 65 toUtmUps8.northing: 1948076.966582\n    test 327 line 65 toUtmUps8.gamma: 6.353185\n    test 328 line 65 toUtmUps8.scale: 1.067733\n    test 329 line 65 toUtmUps8.lat: 16.461790\n    test 330 line 65 toUtmUps8.lon: 21.433269\n    test 331 line 66 toUtmUps8.easting: 5564175.186737\n    test 332 line 66 toUtmUps8.northing: 1836851.660412\n    test 333 line 66 toUtmUps8.gamma: 11.870682\n    test 334 line 66 toUtmUps8.scale: 1.408265\n    test 335 line 66 toUtmUps8.lat: 11.707905\n    test 336 line 66 toUtmUps8.lon: 45.827075\n    test 337 line 67 toUtmUps8.easting: 6118505.590359\n    test 338 line 67 toUtmUps8.northing: 7631684.552421\n    test 339 line 67 toUtmUps8.gamma: 62.477323\n    test 340 line 67 toUtmUps8.scale: 1.493420\n    test 341 line 67 toUtmUps8.lat: 38.519075\n    test 342 line 67 toUtmUps8.lon: 71.935918\n\n    test skipped (11): line 68 toUtmUps8.'34.264007222954 82.647878110272 7365359.2946646287171 8818194.4515306837741 77.207042218974141605 1.73763853091849729372'\n    test 343 line 69 toUtmUps8.easting: 36187.342415\n    test 344 line 69 toUtmUps8.northing: 2142565.324802\n    test 345 line 69 toUtmUps8.gamma: 0.114334\n    test 346 line 69 toUtmUps8.scale: 0.999616\n    test 347 line 69 toUtmUps8.lat: 19.376880\n    test 348 line 69 toUtmUps8.lon: 0.344605\n    test 349 line 70 toUtmUps8.easting: 2380328.546851\n    test 350 line 70 toUtmUps8.northing: 8440109.872384\n    test 351 line 70 toUtmUps8.gamma: 55.076067\n    test 352 line 70 toUtmUps8.scale: 1.069658\n    test 353 line 70 toUtmUps8.lat: 65.075805\n    test 354 line 70 toUtmUps8.lon: 57.653438\n    test 355 line 71 toUtmUps8.easting: 582511.608826\n    test 356 line 71 toUtmUps8.northing: 8876047.217071\n    test 357 line 71 toUtmUps8.gamma: 27.133300\n    test 358 line 71 toUtmUps8.scale: 1.003749\n    test 359 line 71 toUtmUps8.lat: 78.691870\n    test 360 line 71 toUtmUps8.lon: 27.591736\n    test 361 line 72 toUtmUps8.easting: 899441.350477\n    test 362 line 72 toUtmUps8.northing: 4582046.430516\n    test 363 line 72 toUtmUps8.gamma: 7.031211\n    test 364 line 72 toUtmUps8.scale: 1.009573\n    test 365 line 72 toUtmUps8.lat: 40.893022\n    test 366 line 72 toUtmUps8.lon: 10.668804\n\n    test skipped (12): line 73 toUtmUps8.'48.914278679322 87.35926802682 5022485.1243369246483 9741774.9337207800497 86.505947369926030588 1.32369954850478170836'\n    test 367 line 74 toUtmUps8.easting: 6701004.587204\n    test 368 line 74 toUtmUps8.northing: 2954368.258231\n    test 369 line 74 toUtmUps8.gamma: 21.560153\n    test 370 line 74 toUtmUps8.scale: 1.608554\n    test 371 line 74 toUtmUps8.lat: 16.208377\n    test 372 line 74 toUtmUps8.lon: 54.494282\n    test 373 line 75 toUtmUps8.easting: 454986.218897\n    test 374 line 75 toUtmUps8.northing: 4885087.887884\n    test 375 line 75 toUtmUps8.gamma: 3.945648\n    test 376 line 75 toUtmUps8.scale: 1.002147\n    test 377 line 75 toUtmUps8.lat: 43.977936\n    test 378 line 75 toUtmUps8.lon: 5.672541\n\n    test skipped (13): line 76 toUtmUps8.'26.850860749352 82.834479937822 8903956.1403106503714 8470608.5774824981183 74.723116471645531699 2.13131124920824155268'\n    test 379 line 77 toUtmUps8.easting: 1547627.594741\n    test 380 line 77 toUtmUps8.northing: 6036584.538347\n    test 381 line 77 toUtmUps8.gamma: 18.407629\n    test 382 line 77 toUtmUps8.scale: 1.029132\n    test 383 line 77 toUtmUps8.lat: 52.234165\n    test 384 line 77 toUtmUps8.lon: 22.827655\n    test 385 line 78 toUtmUps8.easting: 5221488.778597\n    test 386 line 78 toUtmUps8.northing: 1762592.044392\n    test 387 line 78 toUtmUps8.gamma: 10.927880\n    test 388 line 78 toUtmUps8.scale: 1.356721\n    test 389 line 78 toUtmUps8.lat: 11.674646\n    test 390 line 78 toUtmUps8.lon: 43.500147\n    test 391 line 79 toUtmUps8.easting: 4880570.297161\n    test 392 line 79 toUtmUps8.northing: 3325433.988867\n    test 393 line 79 toUtmUps8.gamma: 20.469862\n    test 394 line 79 toUtmUps8.scale: 1.308476\n    test 395 line 79 toUtmUps8.lat: 22.492753\n    test 396 line 79 toUtmUps8.lon: 44.179153\n\n    test skipped (14): line 80 toUtmUps8.'.910999463005 88.548822916123 23930680.0826936110445 7491462.0990379651261 75.937628056628715446 15.55636485152285563369'\n    test 397 line 81 toUtmUps8.easting: 71519.450458\n    test 398 line 81 toUtmUps8.northing: 3654740.444852\n    test 399 line 81 toUtmUps8.gamma: 0.417448\n    test 400 line 81 toUtmUps8.scale: 0.999663\n    test 401 line 81 toUtmUps8.lat: 33.028802\n    test 402 line 81 toUtmUps8.lon: 0.765843\n    test 403 line 82 toUtmUps8.easting: 4152797.795220\n    test 404 line 82 toUtmUps8.northing: 7823098.502751\n    test 405 line 82 toUtmUps8.gamma: 58.238901\n    test 406 line 82 toUtmUps8.scale: 1.218052\n    test 407 line 82 toUtmUps8.lat: 50.649195\n    test 408 line 82 toUtmUps8.lon: 64.389076\n    test 409 line 83 toUtmUps8.easting: 2926725.707639\n    test 410 line 83 toUtmUps8.northing: 7904918.072844\n    test 411 line 83 toUtmUps8.gamma: 51.592748\n    test 412 line 83 toUtmUps8.scale: 1.106206\n    test 413 line 83 toUtmUps8.lat: 58.820640\n    test 414 line 83 toUtmUps8.lon: 55.841048\n    test 415 line 84 toUtmUps8.easting: 1325509.113869\n    test 416 line 84 toUtmUps8.northing: 9675214.948213\n    test 417 line 84 toUtmUps8.gamma: 76.116213\n    test 418 line 84 toUtmUps8.scale: 1.021136\n    test 419 line 84 toUtmUps8.lat: 77.865762\n    test 420 line 84 toUtmUps8.lon: 76.414618\n    test 421 line 85 toUtmUps8.easting: 3045296.448926\n    test 422 line 85 toUtmUps8.northing: 542153.443280\n    test 423 line 85 toUtmUps8.gamma: 2.185095\n    test 424 line 85 toUtmUps8.scale: 1.116664\n    test 425 line 85 toUtmUps8.lat: 4.389639\n    test 426 line 85 toUtmUps8.lon: 26.458976\n    test 427 line 86 toUtmUps8.easting: 11843870.887791  FAILED, KNOWN, expected 11843870.887518\n    test 428 line 86 toUtmUps8.northing: 5912803.073690  FAILED, KNOWN, expected 5912803.073343\n    test 429 line 86 toUtmUps8.gamma: 52.814260  FAILED, KNOWN, expected 52.814259\n    test 430 line 86 toUtmUps8.scale: 3.267256\n    test 431 line 86 toUtmUps8.lat: 13.924448\n    test 432 line 86 toUtmUps8.lon: 79.017873\n    test 433 line 87 toUtmUps8.easting: 8891099.704936\n    test 434 line 87 toUtmUps8.northing: 162160.142227\n    test 435 line 87 toUtmUps8.gamma: 1.312094\n    test 436 line 87 toUtmUps8.scale: 2.157363\n    test 437 line 87 toUtmUps8.lat: 0.679713\n    test 438 line 87 toUtmUps8.lon: 62.036792\n    test 439 line 88 toUtmUps8.easting: 4784814.214449\n    test 440 line 88 toUtmUps8.northing: 2984497.432580\n    test 441 line 88 toUtmUps8.gamma: 17.946545\n    test 442 line 88 toUtmUps8.scale: 1.296116\n    test 443 line 88 toUtmUps8.lat: 20.478281\n    test 444 line 88 toUtmUps8.lon: 42.678234\n    test 445 line 89 toUtmUps8.easting: 1772074.682154\n    test 446 line 89 toUtmUps8.northing: 9491552.560143\n    test 447 line 89 toUtmUps8.gamma: 73.634830\n    test 448 line 89 toUtmUps8.scale: 1.038202\n    test 449 line 89 toUtmUps8.lat: 73.695703\n    test 450 line 89 toUtmUps8.lon: 74.259097\n    test 451 line 90 toUtmUps8.easting: 1907649.782106\n    test 452 line 90 toUtmUps8.northing: 6994232.429379\n    test 453 line 90 toUtmUps8.gamma: 29.718929\n    test 454 line 90 toUtmUps8.scale: 1.044503\n    test 455 line 90 toUtmUps8.lat: 58.569370\n    test 456 line 90 toUtmUps8.lon: 33.777549\n    test 457 line 91 toUtmUps8.easting: 2084423.818962\n    test 458 line 91 toUtmUps8.northing: 2211816.035619\n    test 459 line 91 toUtmUps8.gamma: 6.556448\n    test 460 line 91 toUtmUps8.scale: 1.053793\n    test 461 line 91 toUtmUps8.lat: 18.933881\n    test 462 line 91 toUtmUps8.lon: 19.492695\n    test 463 line 92 toUtmUps8.easting: 1064373.671729\n    test 464 line 92 toUtmUps8.northing: 7812482.547461\n    test 465 line 92 toUtmUps8.gamma: 24.874124\n    test 466 line 92 toUtmUps8.scale: 1.013490\n    test 467 line 92 toUtmUps8.lat: 68.317934\n    test 468 line 92 toUtmUps8.lon: 26.515687\n\n    test skipped (15): line 93 toUtmUps8.'50.641941364984 87.111556505544 4770385.4792965339274 9734318.9029801439364 86.27311877223132818 1.29055338238288419467'\n    test 469 line 94 toUtmUps8.easting: 6398096.677297\n    test 470 line 94 toUtmUps8.northing: 4410894.752104\n    test 471 line 94 toUtmUps8.gamma: 32.558023\n    test 472 line 94 toUtmUps8.scale: 1.548004\n    test 473 line 94 toUtmUps8.lat: 24.411298\n    test 474 line 94 toUtmUps8.lon: 56.881823\n    test 475 line 95 toUtmUps8.easting: 3138623.300415\n    test 476 line 95 toUtmUps8.northing: 3082960.600798\n    test 477 line 95 toUtmUps8.gamma: 13.557672\n    test 478 line 95 toUtmUps8.scale: 1.123724\n    test 479 line 95 toUtmUps8.lat: 24.571871\n    test 480 line 95 toUtmUps8.lon: 30.073097\n    test 481 line 96 toUtmUps8.easting: 2748325.794651\n    test 482 line 96 toUtmUps8.northing: 4202811.912668\n    test 483 line 96 toUtmUps8.gamma: 17.578706\n    test 484 line 96 toUtmUps8.scale: 1.094102\n    test 485 line 96 toUtmUps8.lat: 34.202576\n    test 486 line 96 toUtmUps8.lon: 29.383166\n    test 487 line 97 toUtmUps8.easting: 6677830.630367\n    test 488 line 97 toUtmUps8.northing: 5350071.837395\n    test 489 line 97 toUtmUps8.gamma: 41.306641\n    test 490 line 97 toUtmUps8.scale: 1.599774\n    test 491 line 97 toUtmUps8.lat: 27.756285\n    test 492 line 97 toUtmUps8.lon: 61.881905\n    test 493 line 98 toUtmUps8.easting: 5941536.667431\n    test 494 line 98 toUtmUps8.northing: 3293112.175140\n    test 495 line 98 toUtmUps8.gamma: 22.752845\n    test 496 line 98 toUtmUps8.scale: 1.468473\n    test 497 line 98 toUtmUps8.lat: 19.742270\n    test 498 line 98 toUtmUps8.lon: 50.957821\n    test 499 line 99 toUtmUps8.easting: 3152481.792567\n    test 500 line 99 toUtmUps8.northing: 5903048.837978\n    test 501 line 99 toUtmUps8.gamma: 31.494606\n    test 502 line 99 toUtmUps8.scale: 1.124085\n    test 503 line 99 toUtmUps8.lat: 45.453582\n    test 504 line 99 toUtmUps8.lon: 40.659833\n    test 505 line 100 toUtmUps8.easting: 10460475.897726  FAILED, KNOWN, expected 10460475.897730\n    test 506 line 100 toUtmUps8.northing: 2553463.624385  FAILED, KNOWN, expected 2553463.624391\n    test 507 line 100 toUtmUps8.gamma: 21.965869\n    test 508 line 100 toUtmUps8.scale: 2.700296\n    test 509 line 100 toUtmUps8.lat: 8.322144\n    test 510 line 100 toUtmUps8.lon: 69.488157\n    test 511 line 101 toUtmUps8.easting: 1964010.778021\n    test 512 line 101 toUtmUps8.northing: 5634042.923056\n    test 513 line 101 toUtmUps8.gamma: 20.117800\n    test 514 line 101 toUtmUps8.scale: 1.047344\n    test 515 line 101 toUtmUps8.lat: 47.749831\n    test 516 line 101 toUtmUps8.lon: 26.322002\n    test 517 line 102 toUtmUps8.easting: 2065306.424934\n    test 518 line 102 toUtmUps8.northing: 2135008.468651\n    test 519 line 102 toUtmUps8.gamma: 6.258981\n    test 520 line 102 toUtmUps8.scale: 1.052800\n    test 521 line 102 toUtmUps8.lat: 18.297493\n    test 522 line 102 toUtmUps8.lon: 19.244669\n    test 523 line 103 toUtmUps8.easting: 5127738.132976\n    test 524 line 103 toUtmUps8.northing: 6793804.304411\n    test 525 line 103 toUtmUps8.gamma: 50.557915\n    test 526 line 103 toUtmUps8.scale: 1.339412\n    test 527 line 103 toUtmUps8.lat: 40.834541\n    test 528 line 103 toUtmUps8.lon: 61.650750\n    test 529 line 104 toUtmUps8.easting: 8385525.148166\n    test 530 line 104 toUtmUps8.northing: 6924932.344306\n    test 531 line 104 toUtmUps8.gamma: 59.087561\n    test 532 line 104 toUtmUps8.scale: 1.990364\n    test 533 line 104 toUtmUps8.lat: 26.273247\n    test 534 line 104 toUtmUps8.lon: 74.926694\n    test 535 line 105 toUtmUps8.easting: 2297510.791909\n    test 536 line 105 toUtmUps8.northing: 2805666.962834\n    test 537 line 105 toUtmUps8.gamma: 9.301553\n    test 538 line 105 toUtmUps8.scale: 1.065508\n    test 539 line 105 toUtmUps8.lat: 23.698347\n    test 540 line 105 toUtmUps8.lon: 22.155657\n\n    test skipped (16): line 106 toUtmUps8.'12.364112546807 86.348578425071 13749544.9176345767153 8288728.3846500523233 75.033969786420407131 4.27058754359004466627'\n    test 541 line 107 toUtmUps8.easting: 317518.455546\n    test 542 line 107 toUtmUps8.northing: 1097517.583745\n    test 543 line 107 toUtmUps8.gamma: 0.499004\n    test 544 line 107 toUtmUps8.scale: 1.000848\n    test 545 line 107 toUtmUps8.lat: 9.916091\n    test 546 line 107 toUtmUps8.lon: 2.895277\n    test 547 line 108 toUtmUps8.easting: 3856035.184888\n    test 548 line 108 toUtmUps8.northing: 9141364.450290\n    test 549 line 108 toUtmUps8.gamma: 75.972763\n    test 550 line 108 toUtmUps8.scale: 1.186786\n    test 551 line 108 toUtmUps8.lat: 56.553876\n    test 552 line 108 toUtmUps8.lon: 78.215077\n    test 553 line 109 toUtmUps8.easting: 1457484.942823\n    test 554 line 109 toUtmUps8.northing: 9385297.101973\n    test 555 line 109 toUtmUps8.gamma: 66.784662\n    test 556 line 109 toUtmUps8.scale: 1.025660\n    test 557 line 109 toUtmUps8.lat: 75.957631\n    test 558 line 109 toUtmUps8.lon: 67.407383\n    test 559 line 110 toUtmUps8.easting: 1304934.901841\n    test 560 line 110 toUtmUps8.northing: 3604655.155715\n    test 561 line 110 toUtmUps8.gamma: 7.343989\n    test 562 line 110 toUtmUps8.scale: 1.020672\n    test 563 line 110 toUtmUps8.lat: 31.826531\n    test 564 line 110 toUtmUps8.lon: 13.731050\n    test 565 line 111 toUtmUps8.easting: 1399093.491792\n    test 566 line 111 toUtmUps8.northing: 8314607.120342\n    test 567 line 111 toUtmUps8.gamma: 38.630161\n    test 568 line 111 toUtmUps8.scale: 1.023625\n    test 569 line 111 toUtmUps8.lat: 70.542985\n    test 570 line 111 toUtmUps8.lon: 40.282055\n    test 571 line 112 toUtmUps8.easting: 356983.618540\n    test 572 line 112 toUtmUps8.northing: 4282309.048994\n    test 573 line 112 toUtmUps8.gamma: 2.561485\n    test 574 line 112 toUtmUps8.scale: 1.001170\n    test 575 line 112 toUtmUps8.lat: 38.617487\n    test 576 line 112 toUtmUps8.lon: 4.099838\n    test 577 line 113 toUtmUps8.easting: 9952911.325092  FAILED, KNOWN, expected 9952911.325091\n    test 578 line 113 toUtmUps8.northing: 1510288.212230  FAILED, KNOWN, expected 1510288.212229\n    test 579 line 113 toUtmUps8.gamma: 12.752154\n    test 580 line 113 toUtmUps8.scale: 2.511357\n    test 581 line 113 toUtmUps8.lat: 5.389447\n    test 582 line 113 toUtmUps8.lon: 66.729612\n    test 583 line 114 toUtmUps8.easting: 6367592.504007\n    test 584 line 114 toUtmUps8.northing: 1200437.077672\n    test 585 line 114 toUtmUps8.gamma: 8.338041\n    test 586 line 114 toUtmUps8.scale: 1.546210\n    test 587 line 114 toUtmUps8.lat: 6.995168\n    test 588 line 114 toUtmUps8.lon: 50.014763\n    test 589 line 115 toUtmUps8.easting: 4391263.676460\n    test 590 line 115 toUtmUps8.northing: 6325455.989408\n    test 591 line 115 toUtmUps8.gamma: 42.653541\n    test 592 line 115 toUtmUps8.scale: 1.245560\n    test 593 line 115 toUtmUps8.lat: 42.321894\n    test 594 line 115 toUtmUps8.lon: 53.784040\n    test 595 line 116 toUtmUps8.easting: 6209880.527527\n    test 596 line 116 toUtmUps8.northing: 2154754.449747\n    test 597 line 116 toUtmUps8.gamma: 14.919512\n    test 598 line 116 toUtmUps8.scale: 1.516560\n    test 599 line 116 toUtmUps8.lat: 12.698515\n    test 600 line 116 toUtmUps8.lon: 50.242047\n    test 601 line 117 toUtmUps8.easting: 1507053.688772\n    test 602 line 117 toUtmUps8.northing: 6261383.513280\n    test 603 line 117 toUtmUps8.gamma: 19.280373\n    test 604 line 117 toUtmUps8.scale: 1.027584\n    test 605 line 117 toUtmUps8.lat: 54.207636\n    test 606 line 117 toUtmUps8.lon: 23.325731\n    test 607 line 118 toUtmUps8.easting: 8332725.003777\n    test 608 line 118 toUtmUps8.northing: 3002712.329753\n    test 609 line 118 toUtmUps8.gamma: 24.059212\n    test 610 line 118 toUtmUps8.scale: 1.990450\n    test 611 line 118 toUtmUps8.lat: 13.224787\n    test 612 line 118 toUtmUps8.lon: 62.426698\n    test 613 line 119 toUtmUps8.easting: 3958910.085235\n    test 614 line 119 toUtmUps8.northing: 3462284.926102\n    test 615 line 119 toUtmUps8.gamma: 18.546398\n    test 616 line 119 toUtmUps8.scale: 1.199351\n    test 617 line 119 toUtmUps8.lat: 25.650282\n    test 618 line 119 toUtmUps8.lon: 37.710391\n\n    test skipped (17): line 120 toUtmUps8.'20.684773383075 82.849734261238 10452892.2820830090734 8000059.6051139389546 71.07524025411428855 2.6501109339363854772'\n    test 619 line 121 toUtmUps8.easting: 496148.253731\n    test 620 line 121 toUtmUps8.northing: 6388503.365043\n    test 621 line 121 toUtmUps8.gamma: 6.970955\n    test 622 line 121 toUtmUps8.scale: 1.002620\n    test 623 line 121 toUtmUps8.lat: 57.367533\n    test 624 line 121 toUtmUps8.lon: 8.260866\n    test 625 line 122 toUtmUps8.easting: 7375792.085850\n    test 626 line 122 toUtmUps8.northing: 5544624.072155\n    test 627 line 122 toUtmUps8.gamma: 44.510851\n    test 628 line 122 toUtmUps8.scale: 1.745898\n    test 629 line 122 toUtmUps8.lat: 25.958757\n    test 630 line 122 toUtmUps8.lon: 65.760477\n    test 631 line 123 toUtmUps8.easting: 2826258.041979\n    test 632 line 123 toUtmUps8.northing: 5167759.816959\n    test 633 line 123 toUtmUps8.gamma: 23.783897\n    test 634 line 123 toUtmUps8.scale: 1.099415\n    test 635 line 123 toUtmUps8.lat: 41.395848\n    test 636 line 123 toUtmUps8.lon: 33.661790\n    test 637 line 124 toUtmUps8.easting: 3958563.378851\n    test 638 line 124 toUtmUps8.northing: 8499923.231243\n    test 639 line 124 toUtmUps8.gamma: 66.570945\n    test 640 line 124 toUtmUps8.scale: 1.197296\n    test 641 line 124 toUtmUps8.lat: 54.266617\n    test 642 line 124 toUtmUps8.lon: 70.602199\n    test 643 line 125 toUtmUps8.easting: 4408189.533462\n    test 644 line 125 toUtmUps8.northing: 8046312.003642\n    test 645 line 125 toUtmUps8.gamma: 62.216959\n    test 646 line 125 toUtmUps8.scale: 1.246750\n    test 647 line 125 toUtmUps8.lat: 49.840393\n    test 648 line 125 toUtmUps8.lon: 68.036728\n    test 649 line 126 toUtmUps8.easting: 3629225.627512\n    test 650 line 126 toUtmUps8.northing: 6371258.454645\n    test 651 line 126 toUtmUps8.gamma: 38.881675\n    test 652 line 126 toUtmUps8.scale: 1.165511\n    test 653 line 126 toUtmUps8.lat: 46.306035\n    test 654 line 126 toUtmUps8.lon: 48.085828\n    test 655 line 127 toUtmUps8.easting: 602838.450710\n    test 656 line 127 toUtmUps8.northing: 4851370.637205\n    test 657 line 127 toUtmUps8.gamma: 5.160395\n    test 658 line 127 toUtmUps8.scale: 1.004073\n    test 659 line 127 toUtmUps8.lat: 43.570988\n    test 660 line 127 toUtmUps8.lon: 7.464494\n    test 661 line 128 toUtmUps8.easting: 764616.665051\n    test 662 line 128 toUtmUps8.northing: 2164299.337945\n    test 663 line 128 toUtmUps8.gamma: 2.429300\n    test 664 line 128 toUtmUps8.scale: 1.006835\n    test 665 line 128 toUtmUps8.lat: 19.427290\n    test 666 line 128 toUtmUps8.lon: 7.268247\n    test 667 line 129 toUtmUps8.easting: 5048953.021931\n    test 668 line 129 toUtmUps8.northing: 1885974.057398\n    test 669 line 129 toUtmUps8.gamma: 11.459804\n    test 670 line 129 toUtmUps8.scale: 1.332207\n    test 671 line 129 toUtmUps8.lat: 12.713794\n    test 672 line 129 toUtmUps8.lon: 42.507018\n    test 673 line 130 toUtmUps8.easting: 2293996.601155\n    test 674 line 130 toUtmUps8.northing: 2392408.644221\n    test 675 line 130 toUtmUps8.gamma: 7.791838\n    test 676 line 130 toUtmUps8.scale: 1.065348\n    test 677 line 130 toUtmUps8.lat: 20.238782\n    test 678 line 130 toUtmUps8.lon: 21.566068\n    test 679 line 131 toUtmUps8.easting: 1530603.839418\n    test 680 line 131 toUtmUps8.northing: 7287841.459898\n    test 681 line 131 toUtmUps8.gamma: 27.502921\n    test 682 line 131 toUtmUps8.scale: 1.028416\n    test 683 line 131 toUtmUps8.lat: 62.367847\n    test 684 line 131 toUtmUps8.lon: 30.438849\n    test 685 line 132 toUtmUps8.easting: 2660000.093152\n    test 686 line 132 toUtmUps8.northing: 5161982.213248\n    test 687 line 132 toUtmUps8.gamma: 22.629836\n    test 688 line 132 toUtmUps8.scale: 1.087851\n    test 689 line 132 toUtmUps8.lat: 41.891569\n    test 690 line 132 toUtmUps8.lon: 31.959547\n    test 691 line 133 toUtmUps8.easting: 5037478.329414\n    test 692 line 133 toUtmUps8.northing: 8768172.379908\n    test 693 line 133 toUtmUps8.gamma: 73.511182\n    test 694 line 133 toUtmUps8.scale: 1.325919\n    test 695 line 133 toUtmUps8.lat: 47.664248\n    test 696 line 133 toUtmUps8.lon: 77.630062\n    test 697 line 134 toUtmUps8.easting: 2289650.957799\n    test 698 line 134 toUtmUps8.northing: 8784328.593607\n    test 699 line 134 toUtmUps8.gamma: 60.786067\n    test 700 line 134 toUtmUps8.scale: 1.064346\n    test 701 line 134 toUtmUps8.lat: 67.259559\n    test 702 line 134 toUtmUps8.lon: 62.715293\n    test 703 line 135 toUtmUps8.easting: 647913.889744\n    test 704 line 135 toUtmUps8.northing: 6742382.228217\n    test 705 line 135 toUtmUps8.gamma: 10.252667\n    test 706 line 135 toUtmUps8.scale: 1.004748\n    test 707 line 135 toUtmUps8.lat: 60.295381\n    test 708 line 135 toUtmUps8.lon: 11.763097\n    test 709 line 136 toUtmUps8.easting: 1118372.698566\n    test 710 line 136 toUtmUps8.northing: 9040627.942263\n    test 711 line 136 toUtmUps8.gamma: 48.936803\n    test 712 line 136 toUtmUps8.scale: 1.014920\n    test 713 line 136 toUtmUps8.lat: 76.878914\n    test 714 line 136 toUtmUps8.lon: 49.685773\n    test 715 line 137 toUtmUps8.easting: 440696.510070\n    test 716 line 137 toUtmUps8.northing: 5500355.826297\n    test 717 line 137 toUtmUps8.gamma: 4.636104\n    test 718 line 137 toUtmUps8.scale: 1.001986\n    test 719 line 137 toUtmUps8.lat: 49.495349\n    test 720 line 137 toUtmUps8.lon: 6.087551\n    test 721 line 138 toUtmUps8.easting: 601728.149727\n    test 722 line 138 toUtmUps8.northing: 9095352.048149\n    test 723 line 138 toUtmUps8.gamma: 33.435771\n    test 724 line 138 toUtmUps8.scale: 1.004027\n    test 725 line 138 toUtmUps8.lat: 80.297265\n    test 726 line 138 toUtmUps8.lon: 33.816372\n    test 727 line 139 toUtmUps8.easting: 3481444.777827\n    test 728 line 139 toUtmUps8.northing: 291665.708749\n    test 729 line 139 toUtmUps8.gamma: 1.314726\n    test 730 line 139 toUtmUps8.scale: 1.153534\n    test 731 line 139 toUtmUps8.lat: 2.286437\n    test 732 line 139 toUtmUps8.lon: 29.855149\n    test 733 line 140 toUtmUps8.easting: 3515304.901524\n    test 734 line 140 toUtmUps8.northing: 1443981.882918\n    test 735 line 140 toUtmUps8.gamma: 6.641638\n    test 736 line 140 toUtmUps8.scale: 1.156509\n    test 737 line 140 toUtmUps8.lat: 11.264457\n    test 738 line 140 toUtmUps8.lon: 30.743907\n    test 739 line 141 toUtmUps8.easting: 160012.186959\n    test 740 line 141 toUtmUps8.northing: 3922609.253231\n    test 741 line 141 toUtmUps8.gamma: 1.022225\n    test 742 line 141 toUtmUps8.scale: 0.999916\n    test 743 line 141 toUtmUps8.lat: 35.434073\n    test 744 line 141 toUtmUps8.lon: 1.762795\n    test 745 line 142 toUtmUps8.easting: 4163744.245622\n    test 746 line 142 toUtmUps8.northing: 936884.674804\n    test 747 line 142 toUtmUps8.gamma: 4.892559\n    test 748 line 142 toUtmUps8.scale: 1.222164\n    test 749 line 142 toUtmUps8.lat: 6.923695\n    test 750 line 142 toUtmUps8.lon: 35.289456\n    test 751 line 143 toUtmUps8.easting: 6155200.017926\n    test 752 line 143 toUtmUps8.northing: 6926306.628390\n    test 753 line 143 toUtmUps8.gamma: 55.103258\n    test 754 line 143 toUtmUps8.scale: 1.500556\n    test 755 line 143 toUtmUps8.lat: 36.129672\n    test 756 line 143 toUtmUps8.lon: 67.533176\n\n    test skipped (18): line 144 toUtmUps8.'4.406528980638 81.965734206053 16263383.2854400911299 3591296.7313406507021 36.040254103487111035 6.58928781751888396522'\n\n    test skipped (19): line 145 toUtmUps8.'8.474589009114 81.129945130597 14220995.5153984992101 5100587.4575033509156 47.314258427760984573 4.69320221531225352172'\n    test 757 line 146 toUtmUps8.easting: 3173034.802372\n    test 758 line 146 toUtmUps8.northing: 7263421.942957\n    test 759 line 146 toUtmUps8.gamma: 45.215808\n    test 760 line 146 toUtmUps8.scale: 1.125410\n    test 761 line 146 toUtmUps8.lat: 53.907276\n    test 762 line 146 toUtmUps8.lon: 51.252904\n\n    test skipped (20): line 147 toUtmUps8.'22.120544817855 85.756781608119 10253274.0922039670098 8867574.2997916978265 79.198250285604314115 2.57237240666878171579'\n    test 763 line 148 toUtmUps8.easting: 2415561.483230\n    test 764 line 148 toUtmUps8.northing: 8813225.217097\n    test 765 line 148 toUtmUps8.gamma: 62.548978\n    test 766 line 148 toUtmUps8.scale: 1.071748\n    test 767 line 148 toUtmUps8.lat: 66.444100\n    test 768 line 148 toUtmUps8.lon: 64.532960\n    test 769 line 149 toUtmUps8.easting: 9589179.293294  FAILED, KNOWN, expected 9589179.293295\n    test 770 line 149 toUtmUps8.northing: 1777680.784144  FAILED, KNOWN, expected 1777680.784143\n    test 771 line 149 toUtmUps8.gamma: 14.838483\n    test 772 line 149 toUtmUps8.scale: 2.380716\n    test 773 line 149 toUtmUps8.lat: 6.670965\n    test 774 line 149 toUtmUps8.lon: 65.660408\n    test 775 line 150 toUtmUps8.easting: 727939.438391\n    test 776 line 150 toUtmUps8.northing: 3684363.236810\n    test 777 line 150 toUtmUps8.gamma: 4.266227\n    test 778 line 150 toUtmUps8.scale: 1.006140\n    test 779 line 150 toUtmUps8.lat: 33.054057\n    test 780 line 150 toUtmUps8.lon: 7.787458\n    test 781 line 151 toUtmUps8.easting: 1250765.991085\n    test 782 line 151 toUtmUps8.northing: 792869.242719\n    test 783 line 151 toUtmUps8.gamma: 1.396497\n    test 784 line 151 toUtmUps8.scale: 1.019026\n    test 785 line 151 toUtmUps8.lat: 7.035525\n    test 786 line 151 toUtmUps8.lon: 11.253707\n    test 787 line 152 toUtmUps8.easting: 710421.705887\n    test 788 line 152 toUtmUps8.northing: 5019406.075928\n    test 789 line 152 toUtmUps8.gamma: 6.393949\n    test 790 line 152 toUtmUps8.scale: 1.005812\n    test 791 line 152 toUtmUps8.lat: 44.971340\n    test 792 line 152 toUtmUps8.lon: 9.009304\n    test 793 line 153 toUtmUps8.easting: 4600995.074643\n    test 794 line 153 toUtmUps8.northing: 4505712.084593\n    test 795 line 153 toUtmUps8.gamma: 27.997458\n    test 796 line 153 toUtmUps8.scale: 1.271841\n    test 797 line 153 toUtmUps8.lat: 30.821397\n    test 798 line 153 toUtmUps8.lon: 45.970577\n    test 799 line 154 toUtmUps8.easting: 557642.627782\n    test 800 line 154 toUtmUps8.northing: 7006911.251644\n    test 801 line 154 toUtmUps8.gamma: 9.769903\n    test 802 line 154 toUtmUps8.scale: 1.003411\n    test 803 line 154 toUtmUps8.lat: 62.763886\n    test 804 line 154 toUtmUps8.lon: 10.960144\n    test 805 line 155 toUtmUps8.easting: 4635062.294291\n    test 806 line 155 toUtmUps8.northing: 2702556.153311\n    test 807 line 155 toUtmUps8.gamma: 15.779547\n    test 808 line 155 toUtmUps8.scale: 1.277178\n    test 809 line 155 toUtmUps8.lat: 18.888611\n    test 810 line 155 toUtmUps8.lon: 41.009871\n\n    test skipped (21): line 156 toUtmUps8.'7.524119461376 81.050715469439 14554962.2559189870471 4716639.9085720199214 44.192751352918149954 4.96001986321419027847'\n    test 811 line 157 toUtmUps8.easting: 882126.661736\n    test 812 line 157 toUtmUps8.northing: 7947612.369506\n    test 813 line 157 toUtmUps8.gamma: 22.429487\n    test 814 line 157 toUtmUps8.scale: 1.009132\n    test 815 line 157 toUtmUps8.lat: 70.063902\n    test 816 line 157 toUtmUps8.lon: 23.705255\n\n    test skipped (22): line 158 toUtmUps8.'3.556525834215 88.363529198819 20262021.6459832969292 8113827.8207957955275 76.936057264555500879 10.34909168211805703369'\n    test 817 line 159 toUtmUps8.easting: 6500508.399850\n    test 818 line 159 toUtmUps8.northing: 6956476.342368\n    test 819 line 159 toUtmUps8.gamma: 56.237116\n    test 820 line 159 toUtmUps8.scale: 1.563162\n    test 821 line 159 toUtmUps8.lat: 34.551257\n    test 822 line 159 toUtmUps8.lon: 69.111091\n    test 823 line 160 toUtmUps8.easting: 3884036.641314\n    test 824 line 160 toUtmUps8.northing: 6890167.411733\n    test 825 line 160 toUtmUps8.gamma: 45.760130\n    test 826 line 160 toUtmUps8.scale: 1.190167\n    test 827 line 160 toUtmUps8.lat: 47.929051\n    test 828 line 160 toUtmUps8.lon: 54.103418\n    test 829 line 161 toUtmUps8.easting: 217855.546078\n    test 830 line 161 toUtmUps8.northing: 6184108.122568\n    test 831 line 161 toUtmUps8.gamma: 2.870993\n    test 832 line 161 toUtmUps8.scale: 1.000182\n    test 833 line 161 toUtmUps8.lat: 55.753536\n    test 834 line 161 toUtmUps8.lon: 3.471798\n\n    test skipped (23): line 162 toUtmUps8.'18.530847071862 86.555312055898 11384139.290401676268 8893889.9495562311576 79.77485364572019046 3.02467156922968230025'\n    test 835 line 163 toUtmUps8.easting: 3469855.989805\n    test 836 line 163 toUtmUps8.northing: 7723193.799228\n    test 837 line 163 toUtmUps8.gamma: 53.114700\n    test 838 line 163 toUtmUps8.scale: 1.150540\n    test 839 line 163 toUtmUps8.lat: 54.510125\n    test 840 line 163 toUtmUps8.lon: 58.556056\n\n    test skipped (24): line 164 toUtmUps8.'42.864161881687 84.866325602975 5926165.994939154109 9385463.7327467371322 82.506981261616342016 1.45975761947329382411'\n    test 841 line 165 toUtmUps8.easting: 5798639.662224\n    test 842 line 165 toUtmUps8.northing: 5305387.640916\n    test 843 line 165 toUtmUps8.gamma: 38.617257\n    test 844 line 165 toUtmUps8.scale: 1.442263\n    test 845 line 165 toUtmUps8.lat: 30.911943\n    test 846 line 165 toUtmUps8.lon: 57.114102\n    test 847 line 166 toUtmUps8.easting: 9464.934388\n    test 848 line 166 toUtmUps8.northing: 6489121.624944\n    test 849 line 166 toUtmUps8.gamma: 0.138696\n    test 850 line 166 toUtmUps8.scale: 0.999601\n    test 851 line 166 toUtmUps8.lat: 58.542493\n    test 852 line 166 toUtmUps8.lon: 0.162593\n\n    test skipped (25): line 167 toUtmUps8.'15.022689088683 85.792615487152 12575834.2756139069875 8356610.8954857643175 75.235223160840771295 3.59944161831319404851'\n    test 853 line 168 toUtmUps8.easting: 2719653.543469\n    test 854 line 168 toUtmUps8.northing: 9362389.163495\n    test 855 line 168 toUtmUps8.gamma: 76.049670\n    test 856 line 168 toUtmUps8.scale: 1.091315\n    test 857 line 168 toUtmUps8.lat: 65.692275\n    test 858 line 168 toUtmUps8.lon: 77.241377\n    test 859 line 169 toUtmUps8.easting: 4845341.924698\n    test 860 line 169 toUtmUps8.northing: 8710522.326901\n    test 861 line 169 toUtmUps8.gamma: 72.320942\n    test 862 line 169 toUtmUps8.scale: 1.300382\n    test 863 line 169 toUtmUps8.lat: 48.806211\n    test 864 line 169 toUtmUps8.lon: 76.486365\n\n    test skipped (26): line 170 toUtmUps8.'56.436024794624 82.61156798689 3935261.5227628794258 9454271.6490618694486 81.162334302626197333 1.19476734082123451158'\n    test 865 line 171 toUtmUps8.easting: 7074299.823000\n    test 866 line 171 toUtmUps8.northing: 1648736.065055\n    test 867 line 171 toUtmUps8.gamma: 12.145925\n    test 868 line 171 toUtmUps8.scale: 1.687551\n    test 869 line 171 toUtmUps8.lat: 8.766053\n    test 870 line 171 toUtmUps8.lon: 54.367539\n    test 871 line 172 toUtmUps8.easting: 3689072.579308\n    test 872 line 172 toUtmUps8.northing: 2230802.665211\n    test 873 line 172 toUtmUps8.gamma: 10.856248\n    test 874 line 172 toUtmUps8.scale: 1.172689\n    test 875 line 172 toUtmUps8.lat: 17.095495\n    test 876 line 172 toUtmUps8.lon: 33.059128\n    test 877 line 173 toUtmUps8.easting: 8102565.885587\n    test 878 line 173 toUtmUps8.northing: 5167396.617580\n    test 879 line 173 toUtmUps8.gamma: 42.324886\n    test 880 line 173 toUtmUps8.scale: 1.921927\n    test 881 line 173 toUtmUps8.lat: 22.142861\n    test 882 line 173 toUtmUps8.lon: 67.200684\n    test 883 line 174 toUtmUps8.easting: 8181271.353564\n    test 884 line 174 toUtmUps8.northing: 4425436.547185\n    test 885 line 174 toUtmUps8.gamma: 35.900845\n    test 886 line 174 toUtmUps8.scale: 1.945017\n    test 887 line 174 toUtmUps8.lat: 19.222623\n    test 888 line 174 toUtmUps8.lon: 65.180785\n    test 889 line 175 toUtmUps8.easting: 767067.394003\n    test 890 line 175 toUtmUps8.northing: 3701745.857296\n    test 891 line 175 toUtmUps8.gamma: 4.519201\n    test 892 line 175 toUtmUps8.scale: 1.006863\n    test 893 line 175 toUtmUps8.lat: 33.182474\n    test 894 line 175 toUtmUps8.lon: 8.216952\n    test 895 line 176 toUtmUps8.easting: 6688114.168572\n    test 896 line 176 toUtmUps8.northing: 2052857.299639\n    test 897 line 176 toUtmUps8.gamma: 14.766191\n    test 898 line 176 toUtmUps8.scale: 1.607200\n    test 899 line 176 toUtmUps8.lat: 11.417963\n    test 900 line 176 toUtmUps8.lon: 52.808691\n    test 901 line 177 toUtmUps8.easting: 5608408.773761\n    test 902 line 177 toUtmUps8.northing: 3859055.659110\n    test 903 line 177 toUtmUps8.gamma: 26.244151\n    test 904 line 177 toUtmUps8.scale: 1.413463\n    test 905 line 177 toUtmUps8.lat: 23.836688\n    test 906 line 177 toUtmUps8.lon: 50.500180\n    test 907 line 178 toUtmUps8.easting: 3836942.765275\n    test 908 line 178 toUtmUps8.northing: 6415467.634326\n    test 909 line 178 toUtmUps8.gamma: 40.575885\n    test 910 line 178 toUtmUps8.scale: 1.185615\n    test 911 line 178 toUtmUps8.lat: 45.550020\n    test 912 line 178 toUtmUps8.lon: 50.148036\n    test 913 line 179 toUtmUps8.easting: 1298730.366025\n    test 914 line 179 toUtmUps8.northing: 6021453.000792\n    test 915 line 179 toUtmUps8.gamma: 15.613320\n    test 916 line 179 toUtmUps8.scale: 1.020367\n    test 917 line 179 toUtmUps8.lat: 52.746079\n    test 918 line 179 toUtmUps8.lon: 19.343926\n    test 919 line 180 toUtmUps8.easting: 416934.289208\n    test 920 line 180 toUtmUps8.northing: 7295683.451705\n    test 921 line 180 toUtmUps8.gamma: 8.238232\n    test 922 line 180 toUtmUps8.scale: 1.001729\n    test 923 line 180 toUtmUps8.lat: 65.513348\n    test 924 line 180 toUtmUps8.lon: 9.039529\n    test 925 line 181 toUtmUps8.easting: 4336076.850889\n    test 926 line 181 toUtmUps8.northing: 7617975.722779\n    test 927 line 181 toUtmUps8.gamma: 56.537088\n    test 928 line 181 toUtmUps8.scale: 1.238582\n    test 929 line 181 toUtmUps8.lat: 48.709795\n    test 930 line 181 toUtmUps8.lon: 63.554005\n    test 931 line 182 toUtmUps8.easting: 168047.336980\n    test 932 line 182 toUtmUps8.northing: 2185000.046530\n    test 933 line 182 toUtmUps8.gamma: 0.542187\n    test 934 line 182 toUtmUps8.scale: 0.999949\n    test 935 line 182 toUtmUps8.lat: 19.753509\n    test 936 line 182 toUtmUps8.lon: 1.603846\n    test 937 line 183 toUtmUps8.easting: 8276281.328790\n    test 938 line 183 toUtmUps8.northing: 263444.350545\n    test 939 line 183 toUtmUps8.gamma: 2.071435\n    test 940 line 183 toUtmUps8.scale: 1.980314\n    test 941 line 183 toUtmUps8.lat: 1.202816\n    test 942 line 183 toUtmUps8.lon: 59.377276\n    test 943 line 184 toUtmUps8.easting: 4772573.810710\n    test 944 line 184 toUtmUps8.northing: 6765710.336002\n    test 945 line 184 toUtmUps8.gamma: 48.857561\n    test 946 line 184 toUtmUps8.scale: 1.291911\n    test 947 line 184 toUtmUps8.lat: 42.564975\n    test 948 line 184 toUtmUps8.lon: 59.356947\n    test 949 line 185 toUtmUps8.easting: 5427755.074639\n    test 950 line 185 toUtmUps8.northing: 1556055.820924\n    test 951 line 185 toUtmUps8.gamma: 9.862178\n    test 952 line 185 toUtmUps8.scale: 1.387394\n    test 953 line 185 toUtmUps8.lat: 10.090572\n    test 954 line 185 toUtmUps8.lon: 44.604132\n    test 955 line 186 toUtmUps8.easting: 11588458.616240  FAILED, KNOWN, expected 11588458.616041\n    test 956 line 186 toUtmUps8.northing: 5707993.922683  FAILED, KNOWN, expected 5707993.922613\n    test 957 line 186 toUtmUps8.gamma: 50.784827\n    test 958 line 186 toUtmUps8.scale: 3.149567\n    test 959 line 186 toUtmUps8.lat: 14.133028\n    test 960 line 186 toUtmUps8.lon: 78.097533\n    test 961 line 187 toUtmUps8.easting: 7152433.802688\n    test 962 line 187 toUtmUps8.northing: 761390.695844\n    test 963 line 187 toUtmUps8.gamma: 5.607350\n    test 964 line 187 toUtmUps8.scale: 1.705261\n    test 965 line 187 toUtmUps8.lat: 4.031123\n    test 966 line 187 toUtmUps8.lon: 54.048782\n    test 967 line 188 toUtmUps8.easting: 3105651.390901\n    test 968 line 188 toUtmUps8.northing: 9426026.169064\n    test 969 line 188 toUtmUps8.gamma: 78.750206\n    test 970 line 188 toUtmUps8.scale: 1.119737\n    test 971 line 188 toUtmUps8.lat: 62.746603\n    test 972 line 188 toUtmUps8.lon: 79.968641\n    test 973 line 189 toUtmUps8.easting: 2959009.639022\n    test 974 line 189 toUtmUps8.northing: 8339242.269282\n    test 975 line 189 toUtmUps8.gamma: 58.460865\n    test 976 line 189 toUtmUps8.scale: 1.108554\n    test 977 line 189 toUtmUps8.lat: 60.626429\n    test 978 line 189 toUtmUps8.lon: 61.851551\n    test 979 line 190 toUtmUps8.easting: 8640472.267145\n    test 980 line 190 toUtmUps8.northing: 6230320.417931\n    test 981 line 190 toUtmUps8.gamma: 52.816810\n    test 982 line 190 toUtmUps8.scale: 2.062973\n    test 983 line 190 toUtmUps8.lat: 23.600626\n    test 984 line 190 toUtmUps8.lon: 72.811634\n    test 985 line 191 toUtmUps8.easting: 811352.108932\n    test 986 line 191 toUtmUps8.northing: 9816129.813481\n    test 987 line 191 toUtmUps8.gamma: 77.299184\n    test 988 line 191 toUtmUps8.scale: 1.007651\n    test 989 line 191 toUtmUps8.lat: 82.572236\n    test 990 line 191 toUtmUps8.lon: 77.402323\n    test 991 line 192 toUtmUps8.easting: 6521874.973458\n    test 992 line 192 toUtmUps8.northing: 1053612.479744\n    test 993 line 192 toUtmUps8.gamma: 7.407328\n    test 994 line 192 toUtmUps8.scale: 1.575529\n    test 995 line 192 toUtmUps8.lat: 6.030051\n    test 996 line 192 toUtmUps8.lon: 50.783505\n    test 997 line 193 toUtmUps8.easting: 3477983.997875\n    test 998 line 193 toUtmUps8.northing: 5651613.325947\n    test 999 line 193 toUtmUps8.gamma: 31.530673\n    test 1000 line 193 toUtmUps8.scale: 1.151875\n    test 1001 line 193 toUtmUps8.lat: 42.411523\n    test 1002 line 193 toUtmUps8.lon: 42.258009\n    test 1003 line 194 toUtmUps8.easting: 629892.822243\n    test 1004 line 194 toUtmUps8.northing: 3283914.910451\n    test 1005 line 194 toUtmUps8.gamma: 3.210482\n    test 1006 line 194 toUtmUps8.scale: 1.004499\n    test 1007 line 194 toUtmUps8.lat: 29.526120\n    test 1008 line 194 toUtmUps8.lon: 6.493069\n    test 1009 line 195 toUtmUps8.easting: 3381879.687227\n    test 1010 line 195 toUtmUps8.northing: 5103629.325665\n    test 1011 line 195 toUtmUps8.gamma: 26.748108\n    test 1012 line 195 toUtmUps8.scale: 1.143559\n    test 1013 line 195 toUtmUps8.lat: 39.021853\n    test 1014 line 195 toUtmUps8.lon: 38.641779\n    test 1015 line 196 toUtmUps8.easting: 2815986.534177\n    test 1016 line 196 toUtmUps8.northing: 9387029.120718\n    test 1017 line 196 toUtmUps8.gamma: 76.967262\n    test 1018 line 196 toUtmUps8.scale: 1.098032\n    test 1019 line 196 toUtmUps8.lat: 64.971850\n    test 1020 line 196 toUtmUps8.lon: 78.151893\n    test 1021 line 197 toUtmUps8.easting: 3398195.889603\n    test 1022 line 197 toUtmUps8.northing: 9138936.031490\n    test 1023 line 197 toUtmUps8.gamma: 74.477499\n    test 1024 line 197 toUtmUps8.scale: 1.144009\n    test 1025 line 197 toUtmUps8.lat: 59.961819\n    test 1026 line 197 toUtmUps8.lon: 76.473422\n    test 1027 line 198 toUtmUps8.easting: 2421734.754637\n    test 1028 line 198 toUtmUps8.northing: 5002372.094991\n    test 1029 line 198 toUtmUps8.gamma: 20.017082\n    test 1030 line 198 toUtmUps8.scale: 1.072592\n    test 1031 line 198 toUtmUps8.lat: 41.374040\n    test 1032 line 198 toUtmUps8.lon: 28.848343\n    test 1033 line 199 toUtmUps8.easting: 2360869.895525\n    test 1034 line 199 toUtmUps8.northing: 9553298.449536\n    test 1035 line 199 toUtmUps8.gamma: 78.848205\n    test 1036 line 199 toUtmUps8.scale: 1.068453\n    test 1037 line 199 toUtmUps8.lat: 68.946087\n    test 1038 line 199 toUtmUps8.lon: 79.574523\n\n    test skipped (27): line 200 toUtmUps8.'79.275096210569 83.551272329394 1196539.9721941076965 9861920.8362302532842 83.437668440198132309 1.01713723718699411107'\n    test 1039 line 201 toUtmUps8.easting: 1327758.704795\n    test 1040 line 201 toUtmUps8.northing: 2375509.241683\n    test 1041 line 201 toUtmUps8.gamma: 4.617572\n    test 1042 line 201 toUtmUps8.scale: 1.021465\n    test 1043 line 201 toUtmUps8.lat: 21.000252\n    test 1044 line 201 toUtmUps8.lon: 12.697444\n    test 1045 line 202 toUtmUps8.easting: 2070860.327644\n    test 1046 line 202 toUtmUps8.northing: 8604500.719581\n    test 1047 line 202 toUtmUps8.gamma: 54.722761\n    test 1048 line 202 toUtmUps8.scale: 1.052469\n    test 1049 line 202 toUtmUps8.lat: 68.015227\n    test 1050 line 202 toUtmUps8.lon: 56.732419\n    test 1051 line 203 toUtmUps8.easting: 6564776.654864\n    test 1052 line 203 toUtmUps8.northing: 8171207.177379\n    test 1053 line 203 toUtmUps8.gamma: 69.237523\n    test 1054 line 203 toUtmUps8.scale: 1.573894\n    test 1055 line 203 toUtmUps8.lat: 37.423675\n    test 1056 line 203 toUtmUps8.lon: 76.947359\n    test 1057 line 204 toUtmUps8.easting: 592653.553821\n    test 1058 line 204 toUtmUps8.northing: 6125529.810052\n    test 1059 line 204 toUtmUps8.gamma: 7.600785\n    test 1060 line 204 toUtmUps8.scale: 1.003912\n    test 1061 line 204 toUtmUps8.lat: 54.922707\n    test 1062 line 204 toUtmUps8.lon: 9.260818\n    test 1063 line 205 toUtmUps8.easting: 693459.671821\n    test 1064 line 205 toUtmUps8.northing: 6943779.991032\n    test 1065 line 205 toUtmUps8.gamma: 11.787587\n    test 1066 line 205 toUtmUps8.scale: 1.005496\n    test 1067 line 205 toUtmUps8.lat: 61.982810\n    test 1068 line 205 toUtmUps8.lon: 13.299659\n    test 1069 line 206 toUtmUps8.easting: 1838956.187625\n    test 1070 line 206 toUtmUps8.northing: 3511959.612381\n    test 1071 line 206 toUtmUps8.gamma: 9.844313\n    test 1072 line 206 toUtmUps8.scale: 1.041603\n    test 1073 line 206 toUtmUps8.lat: 30.324214\n    test 1074 line 206 toUtmUps8.lon: 18.959769\n    test 1075 line 207 toUtmUps8.easting: 4460690.884597\n    test 1076 line 207 toUtmUps8.northing: 5541873.235403\n    test 1077 line 207 toUtmUps8.gamma: 35.768613\n    test 1078 line 207 toUtmUps8.scale: 1.254179\n    test 1079 line 207 toUtmUps8.lat: 37.629667\n    test 1080 line 207 toUtmUps8.lon: 49.649131\n    test 1081 line 208 toUtmUps8.easting: 2311168.998941\n    test 1082 line 208 toUtmUps8.northing: 9480561.869119\n    test 1083 line 208 toUtmUps8.gamma: 76.828257\n    test 1084 line 208 toUtmUps8.scale: 1.065556\n    test 1085 line 208 toUtmUps8.lat: 69.225574\n    test 1086 line 208 toUtmUps8.lon: 77.656135\n    test 1087 line 209 toUtmUps8.easting: 4111775.114451\n    test 1088 line 209 toUtmUps8.northing: 6509014.348792\n    test 1089 line 209 toUtmUps8.gamma: 43.052130\n    test 1090 line 209 toUtmUps8.scale: 1.214125\n    test 1091 line 209 toUtmUps8.lat: 44.698478\n    test 1092 line 209 toUtmUps8.lon: 52.979304\n    test 1093 line 210 toUtmUps8.easting: 75358.261962\n    test 1094 line 210 toUtmUps8.northing: 7711258.662251\n    test 1095 line 210 toUtmUps8.gamma: 1.806297\n    test 1096 line 210 toUtmUps8.scale: 0.999669\n    test 1097 line 210 toUtmUps8.lat: 69.499594\n    test 1098 line 210 toUtmUps8.lon: 1.928336\n\n    test skipped (28): line 211 toUtmUps8.'27.981363604998 86.061112755721 8781885.2291162503299 9184776.4522114918448 81.795538514711932534 2.09490761781464961377'\n    test 1099 line 212 toUtmUps8.easting: 954378.415174\n    test 1100 line 212 toUtmUps8.northing: 7449110.669807\n    test 1101 line 212 toUtmUps8.gamma: 19.380657\n    test 1102 line 212 toUtmUps8.scale: 1.010768\n    test 1103 line 212 toUtmUps8.lat: 65.699839\n    test 1104 line 212 toUtmUps8.lon: 21.104725\n    test 1105 line 213 toUtmUps8.easting: 720971.793706\n    test 1106 line 213 toUtmUps8.northing: 5265195.121555\n    test 1107 line 213 toUtmUps8.gamma: 7.002995\n    test 1108 line 213 toUtmUps8.scale: 1.005995\n    test 1109 line 213 toUtmUps8.lat: 47.143648\n    test 1110 line 213 toUtmUps8.lon: 9.512189\n    test 1111 line 214 toUtmUps8.easting: 561561.493937\n    test 1112 line 214 toUtmUps8.northing: 989910.236221\n    test 1113 line 214 toUtmUps8.gamma: 0.793118\n    test 1114 line 214 toUtmUps8.scale: 1.003505\n    test 1115 line 214 toUtmUps8.lat: 8.920167\n    test 1116 line 214 toUtmUps8.lon: 5.101513\n    test 1117 line 215 toUtmUps8.easting: 3446829.634468\n    test 1118 line 215 toUtmUps8.northing: 9232868.155664\n    test 1119 line 215 toUtmUps8.gamma: 76.279075\n    test 1120 line 215 toUtmUps8.scale: 1.148263\n    test 1121 line 215 toUtmUps8.lat: 59.778971\n    test 1122 line 215 toUtmUps8.lon: 78.080322\n\n    test skipped (29): line 216 toUtmUps8.'55.865310107291 87.384288430943 4048307.5459092527942 9800416.4229977935137 86.843918034217523739 1.20649504624906774925'\n    test 1123 line 217 toUtmUps8.easting: 8973188.480293\n    test 1124 line 217 toUtmUps8.northing: 7042230.087021\n    test 1125 line 217 toUtmUps8.gamma: 60.872456\n    test 1126 line 217 toUtmUps8.scale: 2.156098\n    test 1127 line 217 toUtmUps8.lat: 24.310973\n    test 1128 line 217 toUtmUps8.lon: 76.823777\n    test 1129 line 218 toUtmUps8.easting: 126314.191618\n    test 1130 line 218 toUtmUps8.northing: 396006.687921\n    test 1131 line 218 toUtmUps8.gamma: 0.071065\n    test 1132 line 218 toUtmUps8.scale: 0.999798\n    test 1133 line 218 toUtmUps8.lat: 3.582041\n    test 1134 line 218 toUtmUps8.lon: 1.137286\n    test 1135 line 219 toUtmUps8.easting: 5247652.345647\n    test 1136 line 219 toUtmUps8.northing: 8670513.359752\n    test 1137 line 219 toUtmUps8.gamma: 72.700498\n    test 1138 line 219 toUtmUps8.scale: 1.355272\n    test 1139 line 219 toUtmUps8.lat: 46.124233\n    test 1140 line 219 toUtmUps8.lon: 77.313118\n\n    test skipped (30): line 220 toUtmUps8.'31.17139056295 87.104503768139 8103656.8381187232079 9469794.014736839373 84.490673011906282841 1.91216400164486142107'\n    test 1141 line 221 toUtmUps8.easting: 6300112.758236\n    test 1142 line 221 toUtmUps8.northing: 93835.917364\n    test 1143 line 221 toUtmUps8.gamma: 0.644805\n    test 1144 line 221 toUtmUps8.scale: 1.534073\n    test 1145 line 221 toUtmUps8.lat: 0.553171\n    test 1146 line 221 toUtmUps8.lon: 49.117104\n    test 1147 line 222 toUtmUps8.easting: 3894813.593782\n    test 1148 line 222 toUtmUps8.northing: 4833832.341027\n    test 1149 line 222 toUtmUps8.gamma: 27.453298\n    test 1150 line 222 toUtmUps8.scale: 1.192135\n    test 1151 line 222 toUtmUps8.lat: 35.361587\n    test 1152 line 222 toUtmUps8.lon: 41.860599\n    test 1153 line 223 toUtmUps8.easting: 402511.346712\n    test 1154 line 223 toUtmUps8.northing: 3520621.561911\n    test 1155 line 223 toUtmUps8.gamma: 2.238474\n    test 1156 line 223 toUtmUps8.scale: 1.001599\n    test 1157 line 223 toUtmUps8.lat: 31.750314\n    test 1158 line 223 toUtmUps8.lon: 4.248167\n    test 1159 line 224 toUtmUps8.easting: 5357378.503148\n    test 1160 line 224 toUtmUps8.northing: 2772997.602234\n    test 1161 line 224 toUtmUps8.gamma: 17.823560\n    test 1162 line 224 toUtmUps8.scale: 1.376031\n    test 1163 line 224 toUtmUps8.lat: 17.924336\n    test 1164 line 224 toUtmUps8.lon: 46.096402\n    test 1165 line 225 toUtmUps8.easting: 2807553.985866\n    test 1166 line 225 toUtmUps8.northing: 8177847.980275\n    test 1167 line 225 toUtmUps8.gamma: 54.680045\n    test 1168 line 225 toUtmUps8.scale: 1.097531\n    test 1169 line 225 toUtmUps8.lat: 60.931488\n    test 1170 line 225 toUtmUps8.lon: 58.221214\n\n    test skipped (31): line 226 toUtmUps8.'5.358150979521 87.556213284144 18289045.16650076146 7792942.3396035398889 73.216494415207315628 8.09800850850277481729'\n\n    test skipped (32): line 227 toUtmUps8.'28.616673489124 80.452426461437 8376822.4595378634541 8128174.6238782329989 70.920116640676321501 1.98487312027093768388'\n    test 1171 line 228 toUtmUps8.easting: 11898068.352950  FAILED, KNOWN, expected 11898068.353272\n    test 1172 line 228 toUtmUps8.northing: 4772439.493355  FAILED, KNOWN, expected 4772439.493697\n    test 1173 line 228 toUtmUps8.gamma: 42.613968\n    test 1174 line 228 toUtmUps8.scale: 3.314412\n    test 1175 line 228 toUtmUps8.lat: 11.709763\n    test 1176 line 228 toUtmUps8.lon: 76.760295\n    test 1177 line 229 toUtmUps8.easting: 10550946.939052  FAILED, KNOWN, expected 10550946.939050\n    test 1178 line 229 toUtmUps8.northing: 3851968.815305  FAILED, KNOWN, expected 3851968.815295\n    test 1179 line 229 toUtmUps8.gamma: 33.383025\n    test 1180 line 229 toUtmUps8.scale: 2.724754\n    test 1181 line 229 toUtmUps8.lat: 12.009498\n    test 1182 line 229 toUtmUps8.lon: 71.782351\n\n    test skipped (33): line 230 toUtmUps8.'37.62978386356 85.795687334213 6828299.1236065501034 9394803.2274626281036 83.181386462369626591 1.62435875189611017521'\n    test 1183 line 231 toUtmUps8.easting: 11162550.334001  FAILED, KNOWN, expected 11162550.334022\n    test 1184 line 231 toUtmUps8.northing: 2640267.279546  FAILED, KNOWN, expected 2640267.279593\n    test 1185 line 231 toUtmUps8.gamma: 23.145404\n    test 1186 line 231 toUtmUps8.scale: 2.998408\n    test 1187 line 231 toUtmUps8.lat: 7.721128\n    test 1188 line 231 toUtmUps8.lon: 71.662731\n    test 1189 line 232 toUtmUps8.easting: 4411584.447941\n    test 1190 line 232 toUtmUps8.northing: 4956173.694407\n    test 1191 line 232 toUtmUps8.gamma: 30.713919\n    test 1192 line 232 toUtmUps8.scale: 1.248736\n    test 1193 line 232 toUtmUps8.lat: 34.295026\n    test 1194 line 232 toUtmUps8.lon: 46.442191\n    test 1195 line 233 toUtmUps8.easting: 672108.897905\n    test 1196 line 233 toUtmUps8.northing: 4751554.657054\n    test 1197 line 233 toUtmUps8.gamma: 5.569178\n    test 1198 line 233 toUtmUps8.scale: 1.005162\n    test 1199 line 233 toUtmUps8.lat: 42.622496\n    test 1200 line 233 toUtmUps8.lon: 8.193605\n    test 1201 line 234 toUtmUps8.easting: 5022964.290579\n    test 1202 line 234 toUtmUps8.northing: 6860418.199502\n    test 1203 line 234 toUtmUps8.gamma: 50.862230\n    test 1204 line 234 toUtmUps8.scale: 1.324925\n    test 1205 line 234 toUtmUps8.lat: 41.667780\n    test 1206 line 234 toUtmUps8.lon: 61.518288\n    test 1207 line 235 toUtmUps8.easting: 1669655.595207\n    test 1208 line 235 toUtmUps8.northing: 4152086.537021\n    test 1209 line 235 toUtmUps8.gamma: 11.110237\n    test 1210 line 235 toUtmUps8.scale: 1.034138\n    test 1211 line 235 toUtmUps8.lat: 36.060369\n    test 1212 line 235 toUtmUps8.lon: 18.444112\n    test 1213 line 236 toUtmUps8.easting: 6055876.729655\n    test 1214 line 236 toUtmUps8.northing: 4896837.552619\n    test 1215 line 236 toUtmUps8.gamma: 35.799747\n    test 1216 line 236 toUtmUps8.scale: 1.485967\n    test 1217 line 236 toUtmUps8.lat: 27.948091\n    test 1218 line 236 toUtmUps8.lon: 56.816429\n    test 1219 line 237 toUtmUps8.easting: 1209214.164379\n    test 1220 line 237 toUtmUps8.northing: 7266409.859178\n    test 1221 line 237 toUtmUps8.gamma: 22.319633\n    test 1222 line 237 toUtmUps8.scale: 1.017554\n    test 1223 line 237 toUtmUps8.lat: 63.386030\n    test 1224 line 237 toUtmUps8.lon: 24.662716\n    test 1225 line 238 toUtmUps8.easting: 5154564.559584\n    test 1226 line 238 toUtmUps8.northing: 698118.349975\n    test 1227 line 238 toUtmUps8.gamma: 4.242360\n    test 1228 line 238 toUtmUps8.scale: 1.347481\n    test 1229 line 238 toUtmUps8.lat: 4.680922\n    test 1230 line 238 toUtmUps8.lon: 42.114426\n    test 1231 line 239 toUtmUps8.easting: 2695149.806543\n    test 1232 line 239 toUtmUps8.northing: 8208197.765605\n    test 1233 line 239 toUtmUps8.gamma: 54.178615\n    test 1234 line 239 toUtmUps8.scale: 1.089730\n    test 1235 line 239 toUtmUps8.lat: 61.826625\n    test 1236 line 239 toUtmUps8.lon: 57.525096\n    test 1237 line 240 toUtmUps8.easting: 3394792.327820\n    test 1238 line 240 toUtmUps8.northing: 3217583.415552\n    test 1239 line 240 toUtmUps8.gamma: 15.165863\n    test 1240 line 240 toUtmUps8.scale: 1.145285\n    test 1241 line 240 toUtmUps8.lat: 25.104353\n    test 1242 line 240 toUtmUps8.lon: 32.528660\n    test 1243 line 241 toUtmUps8.easting: 1429160.966985\n    test 1244 line 241 toUtmUps8.northing: 8212685.362032\n    test 1245 line 241 toUtmUps8.gamma: 37.484904\n    test 1246 line 241 toUtmUps8.scale: 1.024676\n    test 1247 line 241 toUtmUps8.lat: 69.678351\n    test 1248 line 241 toUtmUps8.lon: 39.275513\n\n    test skipped (34): line 242 toUtmUps8.'29.671383681805 84.19659549085 8343387.9980651104898 8885196.9545780118644 78.561937382568633298 1.97473261886829061763'\n    test 1249 line 243 toUtmUps8.easting: 1990722.928606\n    test 1250 line 243 toUtmUps8.northing: 7569202.065162\n    test 1251 line 243 toUtmUps8.gamma: 37.075276\n    test 1252 line 243 toUtmUps8.scale: 1.048486\n    test 1253 line 243 toUtmUps8.lat: 62.300208\n    test 1254 line 243 toUtmUps8.lon: 40.474051\n    test 1255 line 244 toUtmUps8.easting: 1554980.099559\n    test 1256 line 244 toUtmUps8.northing: 1449423.919586\n    test 1257 line 244 toUtmUps8.gamma: 3.188328\n    test 1258 line 244 toUtmUps8.scale: 1.029664\n    test 1259 line 244 toUtmUps8.lat: 12.721776\n    test 1260 line 244 toUtmUps8.lon: 14.190003\n    test 1261 line 245 toUtmUps8.easting: 785205.450196\n    test 1262 line 245 toUtmUps8.northing: 5575158.423096\n    test 1263 line 245 toUtmUps8.gamma: 8.388417\n    test 1264 line 245 toUtmUps8.scale: 1.007181\n    test 1265 line 245 toUtmUps8.lat: 49.811296\n    test 1266 line 245 toUtmUps8.lon: 10.925011\n    test 1267 line 246 toUtmUps8.easting: 3310405.988313\n    test 1268 line 246 toUtmUps8.northing: 5955022.233881\n    test 1269 line 246 toUtmUps8.gamma: 33.007587\n    test 1270 line 246 toUtmUps8.scale: 1.137141\n    test 1271 line 246 toUtmUps8.lat: 45.132680\n    test 1272 line 246 toUtmUps8.lon: 42.478624\n    test 1273 line 247 toUtmUps8.easting: 4733460.960666\n    test 1274 line 247 toUtmUps8.northing: 129034.889816\n    test 1275 line 247 toUtmUps8.gamma: 0.737551\n    test 1276 line 247 toUtmUps8.scale: 1.290439\n    test 1277 line 247 toUtmUps8.lat: 0.904279\n    test 1278 line 247 toUtmUps8.lon: 39.078412\n    test 1279 line 248 toUtmUps8.easting: 3322708.343909\n    test 1280 line 248 toUtmUps8.northing: 3864738.078742\n    test 1281 line 248 toUtmUps8.gamma: 18.472566\n    test 1282 line 248 toUtmUps8.scale: 1.138838\n    test 1283 line 248 toUtmUps8.lat: 30.163605\n    test 1284 line 248 toUtmUps8.lon: 33.577996\n\n    test skipped (35): line 249 toUtmUps8.'27.643243707755 81.892859091432 8672864.4172042475623 8333465.9834441061554 73.206272638168122883 2.06544053870286774312'\n\n    test skipped (36): line 250 toUtmUps8.'18.201207657521 82.434617649311 11126818.23119627031 7618712.1749910723126 67.88717347393512063 2.92241673495261070414'\n\n    test skipped (37): line 251 toUtmUps8.'28.804576432117 89.886072420251 8650100.9817967479337 9975084.1689971279206 89.767446308690086924 2.05728879562910108817'\n    test 1285 line 252 toUtmUps8.easting: 2212701.180192\n    test 1286 line 252 toUtmUps8.northing: 650348.100229\n    test 1287 line 252 toUtmUps8.gamma: 1.970441\n    test 1288 line 252 toUtmUps8.scale: 1.060830\n    test 1289 line 252 toUtmUps8.lat: 5.542998\n    test 1290 line 252 toUtmUps8.lon: 19.589578\n    test 1291 line 253 toUtmUps8.easting: 6890222.326618\n    test 1292 line 253 toUtmUps8.northing: 7506813.499547\n    test 1293 line 253 toUtmUps8.gamma: 62.684825\n    test 1294 line 253 toUtmUps8.scale: 1.638488\n    test 1295 line 253 toUtmUps8.lat: 34.237147\n    test 1296 line 253 toUtmUps8.lon: 73.678164\n    test 1297 line 254 toUtmUps8.easting: 6692260.067325\n    test 1298 line 254 toUtmUps8.northing: 4244174.008110\n    test 1299 line 254 toUtmUps8.gamma: 31.812920\n    test 1300 line 254 toUtmUps8.scale: 1.604640\n    test 1301 line 254 toUtmUps8.lat: 22.704949\n    test 1302 line 254 toUtmUps8.lon: 57.877010\n    test 1303 line 255 toUtmUps8.easting: 1225564.137190\n    test 1304 line 255 toUtmUps8.northing: 4778923.924144\n    test 1305 line 255 toUtmUps8.gamma: 10.083419\n    test 1306 line 255 toUtmUps8.scale: 1.018134\n    test 1307 line 255 toUtmUps8.lat: 42.192424\n    test 1308 line 255 toUtmUps8.lon: 14.828196\n    test 1309 line 256 toUtmUps8.easting: 12341116.155088  FAILED, KNOWN, expected 12341116.154950\n    test 1310 line 256 toUtmUps8.northing: 5081855.520287  FAILED, KNOWN, expected 5081855.521966\n    test 1311 line 256 toUtmUps8.gamma: 45.712545  FAILED, KNOWN, expected 45.712546\n    test 1312 line 256 toUtmUps8.scale: 3.535170\n    test 1313 line 256 toUtmUps8.lat: 11.481151\n    test 1314 line 256 toUtmUps8.lon: 78.189236\n    test 1315 line 257 toUtmUps8.easting: 6673845.021771\n    test 1316 line 257 toUtmUps8.northing: 1177587.190565\n    test 1317 line 257 toUtmUps8.gamma: 8.389141\n    test 1318 line 257 toUtmUps8.scale: 1.605171\n    test 1319 line 257 toUtmUps8.lat: 6.609626\n    test 1320 line 257 toUtmUps8.lon: 51.735783\n    test 1321 line 258 toUtmUps8.easting: 6966354.690417\n    test 1322 line 258 toUtmUps8.northing: 3641802.005093\n    test 1323 line 258 toUtmUps8.gamma: 27.409636\n    test 1324 line 258 toUtmUps8.scale: 1.661469\n    test 1325 line 258 toUtmUps8.lat: 19.059369\n    test 1326 line 258 toUtmUps8.lon: 57.526439\n    test 1327 max forward error: 1.678809e-03\n    test 1328 max reverse error: 3.170463e-09\n    test 1329 Utm.scale0: 0.9996\n    test 1330 Utm.datum: WGS84\n    test 1331 Utm.datum.ellipsoid.KsOrder: 8\n    test 1332 Ups.scale0: 0.994  FAILED, KNOWN, expected 0.9996\n    test 1333 Ups.datum: WGS84\n    test 1334 Ups.datum.ellipsoid.KsOrder: 8\n    test 1335 WGS84.KsOrder: 8\n\n    24 of 1335 testUtmUpsTMcoords.py tests (1.8%) FAILED, ALL KNOWN, 37 skipped (pygeodesy 26.3.26 Python 3.14.3 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 140.981 ms\nrunning /Library/Framewo....n3.14 -W default ~/PyGeodesy/test/testVectorial.py\n./pygeodesy/ellipsoidalBase.py:443: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  _ = self.datum.ellipsoid.geodesic\n./pygeodesy/azimuthal.py:636: DeprecationWarning: Property_RO L{geodesic<pygeodesy.ellipsoids.Ellipsoid.geodesic>} has been DEPRECATED, use property C{geodesicw}.\n  return self.datum.ellipsoid.geodesic\n./pygeodesy/ellipsoidalNvector.py:247: DeprecationWarning: Property_RO L{ned<pygeodesy.ltpTuples.Ned.ned>} has been DEPRECATED, use property C{ned4}.\n  dn = delta.ned[:3]  # XXX Ned4Tuple.to3Tuple\n./pygeodesy/deprecated/classes.py:33: DeprecationWarning: class L{Ned3Tuple<pygeodesy.deprecated.classes.Ned3Tuple>} has been DEPRECATED, use class L{Ned4Tuple}, ignoring item C{ltp}.\n  deprecated_class(cls)\n./test/testVectorial.py:128: DeprecationWarning: function L{nearestOn<pygeodesy.vector2d.nearestOn>} has been DEPRECATED on 2025.05.06, use L{pygeodesy.nearestOn<pygeodesy.vector3d.nearestOn>}.\n  t = vector2d.nearestOn(Nvector(0, 0, 0), p1, p2)\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.EPS from .constants by testVectorial.py line 11\n# lazily imported pygeodesy.EPS4 from .constants by testVectorial.py line 11\n# lazily imported pygeodesy.F_D from .dms by testVectorial.py line 11\n# lazily imported pygeodesy.NEG0 from .constants by testVectorial.py line 11\n# lazily imported pygeodesy.circin6 from .vector2d by testVectorial.py line 11\n# lazily imported pygeodesy.circum3 from .vector2d by testVectorial.py line 11\n# lazily imported pygeodesy.circum4_ from .vector2d by testVectorial.py line 11\n# lazily imported pygeodesy.fstr from .streprs by testVectorial.py line 11\n# lazily imported pygeodesy.intersection3d3 from .vector3d by testVectorial.py line 11\n# lazily imported pygeodesy.IntersectionError from .errors by testVectorial.py line 11\n# lazily imported pygeodesy.isnear0 from .constants by testVectorial.py line 11\n# lazily imported pygeodesy.meeus2 from .vector2d by testVectorial.py line 11\n# lazily imported pygeodesy.radii11 from .vector2d by testVectorial.py line 11\n# lazily imported pygeodesy.sincos2d from .utily by testVectorial.py line 11\n# lazily imported pygeodesy.sphericalNvector by testVectorial.py line 11\n# lazily imported pygeodesy.soddy4 from .vector2d by testVectorial.py line 11\n# lazily imported pygeodesy.trilaterate2d2 from .vector2d by testVectorial.py line 11\n# lazily imported pygeodesy.trilaterate3d2 from .vector3d by testVectorial.py line 11\n# lazily imported pygeodesy.Vector3d from .vector3d by testVectorial.py line 11\n# lazily imported pygeodesy.VectorError from .errors by testVectorial.py line 11\n# lazily imported pygeodesy.Datums from .datums by testVectorial.py line 533\n# lazily imported pygeodesy.ellipsoidalExact by testVectorial.py line 533\n# lazily imported pygeodesy.ellipsoidalKarney by testVectorial.py line 533\n# lazily imported pygeodesy.ellipsoidalNvector by testVectorial.py line 533\n# lazily imported pygeodesy.ellipsoidalVincenty by testVectorial.py line 533\n# lazily imported pygeodesy.sphericalTrigonometry by testVectorial.py line 533\n\n    testing testVectorial.py 25.10.07 isLazy=3\n\n    testVectorial(pygeodesy.ellipsoidalNvector, 25.05.12)\n\n    test 1 toLatLon: 44.995674°N, 045.0°E\n    test 2 toNvector: (0.50004, 0.50004, 0.70705)\n    test 3 isequalTo: False\n    test 4 isequalTo: True\n    test 5 length: 0.99992449715\n    test 6 euclid: 0.99995577\n    test 7 length: 1.00\n    test 8 euclid: 1.0000\n    test 9 meanOf: 44.995674°N, 045.0°E\n    test 10 meanOf: LatLon\n    test 11 apply: (0.5, 0.5, 0.707)\n    test 12 init: (0.5, 0.5, 0.707)\n    test 13 i***: (0.5, 0.5, 0.707)\n    test 14 abs: 0.99992449715\n    test 15 sumOf: (52.70504, 0.61904, 0.70705)\n    test 16 sumOf: Nv\n    test 17 sumOf: sumOf\n    test 18 length: 52.7134151513\n    test 19 sizeof: 217  FAILED, KNOWN, expected 128\n    test 20 length: 52.2051356286\n    test 21 sizeof: 320  FAILED, KNOWN, expected 247\n    test 22 copy: True\n    test 23 length: 52.2051356286\n    test 24 sizeof: 320\n# lazily imported pygeodesy.booleans by points.py line 1369\n    test 25 isenclosedBy: True\n    test 26 isenclosedBy*: True\n    test 27 isenclosedBy: True\n    test 28 isenclosedBy*: True\n# lazily imported pygeodesy.geodesicw by ellipsoids.py line 1074\n# lazily imported pygeodesy.azimuthal by ellipsoidalBase.py line 444\n\n    test 29 nearestOn: 51.0°N, 001.0°E\n    test 30 nearestOn: 50.987°N, 000.298°W\n    test 31 nearestOn: 51.0°N, 002.0°E\n    test 32 nearestOn: 50.995°N, 002.655°E\n# imported pygeodesy.formy into latlonBase.py line 756\n    test 33 nearestOn: 51.0°N, 001.9°E\n    test 34 nearestOn: True\n    test 35 distanceTo: 42.826\n    test 36 nearestOn: 51.0°N, 002.0°E\n    test 37 nearestOn: True\n    test 38 nearestOn: 00.0°N, 000.0°E\n    test 39 nearestOn: True\n    test 40 nearestOn: 00.0°N, 020.0°E\n    test 41 nearestOn: True\n    test 42 nearestOn: 02.0°N, 002.0°E\n    test 43 nearestOn: 02.0°N, 002.0°E\n# lazily imported pygeodesy.ecef by ellipsoidalNvector.py line 524\n\n    test 44 neareston6: (LatLon(45°00′00.0″N, 001°00′00.0″E), 4755443.4294, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E))\n    test 45 neareston6: (LatLon(45°30′03.94″N, 002°00′00.0″E), 39078.729285, 1.501072, 2, LatLon(45°00′00.0″N, 002°00′00.0″E), LatLon(46°00′00.0″N, 002°00′00.0″E))\n\n    test 46 BasseC: 47.3038°N, 002.5721°W\n    test 47 BasseH: 47.311067°N, 002.528617°W\n    test 48 triangulate: 47.323667°N, 002.568501°W\n    test 49 triangulate: True\n\n    test 50 trilaterate: 37.419078°N, 121.960579°W\n    test 51 trilaterate: True\n    test 52 trilaterate: 08.068912°S, 034.888699°W\n    test 53 trilaterate: True\n    test 54 trilaterate: 08.068912°S, 034.888695°W  FAILED, KNOWN, expected 08.068912°S, 034.888699°W\n    test 55 trilaterate: True\n    test 56 trilaterate: 42.67456065°N, 002.49539502°E\n# imported pygeodesy.basics into errors.py line 443\n    test 57 trilaterate: distance1 (5110), distance2 (5110), distance3 (5110), point1 (LatLon(42°41′19.82″N, 002°26′19.89″E)), point2 (LatLon(42°38′07.52″N, 002°31′21.25″E)) or point3 (LatLon(42°38′43.44″N, 002°30′17.32″E)): no intersection (useZ=False, wrap=False, z=-8.13526e-05)\n# lazily imported pygeodesy.Ned from .ltpTuples by testVectorial.py line 367\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by <frozen importlib._bootstrap> line 1423\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by <frozen importlib._bootstrap> line 1423\n# lazily imported pygeodesy.Conformal2Tuple from .triaxials.triaxial5 by <frozen importlib._bootstrap> line 1423\n# lazily imported pygeodesy.Conformal from .triaxials.triaxial5 by classes.py line 21\n# lazily imported pygeodesy.ConformalSphere from .triaxials.triaxial5 by classes.py line 21\n# lazily imported pygeodesy.Conformal2Tuple from .triaxials.triaxial5 by classes.py line 21\n# lazily imported pygeodesy.deprecated by ltpTuples.py line 483\n\n    test 58 destinationNed: 48°53′12.01″N, 002°22′29.0″E, +0.20m\n\n    testNvector(pygeodesy.ellipsoidalNvector, 25.05.12)\n    test 59 sumOf: Nvector\n    test 60 ecef.x, .y, .z: 3194659.54086, 3194659.54086, 4487008.4122\n    test 61 ecef.lat, .lon: 44.995674, 45.0\n    test 62 ecef.height: -0.0\n    test 63 ecef.M: -0.707106781, -0.499962243, 0.500037754, 0.707106781, -0.499962243, 0.500037754, 0.0, 0.707160174, 0.707053385\n    test 64 nearestOn: (0.0, 0.0, 0.0)\n    test 65 nearestOn: True\n    test 66 nearestOn: (100.0, 100.0, 100.0)\n    test 67 nearestOn: True\n# imported pygeodesy.vector2d into vector3d.py line 659\n    test 68 iscolinearWith: False\n    test 69 iscolinearWith: True\n    test 70 nearestOn: (0.0, 0.0, 0.0)\n    test 71 nearestOn: True\n    test 72 nearestOn: (100.0, 100.0, 100.0)\n    test 73 nearestOn: True\n    test 74 iscolinearWith: False\n    test 75 iscolinearWith: True\n\n    testVectorial(pygeodesy.sphericalNvector, 25.05.27)\n    test 76 crossTrackDistanceTo: -305.67\n    test 77 crossTrackDistanceTo: -307.55\n\n    test 78 toLatLon: 44.995674°N, 045.0°E\n    test 79 toNvector: (0.50004, 0.50004, 0.70705)\n    test 80 isequalTo: False\n    test 81 isequalTo: True\n    test 82 length: 0.99992449715\n    test 83 euclid: 0.99995577\n    test 84 length: 1.00\n    test 85 euclid: 1.0000\n    test 86 meanOf: 44.995674°N, 045.0°E\n    test 87 meanOf: LatLon\n    test 88 apply: (0.5, 0.5, 0.707)\n    test 89 init: (0.5, 0.5, 0.707)\n    test 90 i***: (0.5, 0.5, 0.707)\n    test 91 abs: 0.99992449715\n    test 92 sumOf: (52.70504, 0.61904, 0.70705)\n    test 93 sumOf: Nv\n    test 94 sumOf: sumOf\n    test 95 length: 52.7134151513\n    test 96 sizeof: 217  FAILED, KNOWN, expected 128\n    test 97 length: 52.2051356286\n    test 98 sizeof: 320  FAILED, KNOWN, expected 247\n    test 99 copy: True\n    test 100 length: 52.2051356286\n    test 101 sizeof: 320\n\n    test 102 toCartesian: [3185744.919, 3185744.919, 4504643.315]\n    test 103 toLatLon: 44.995674°N, 045.0°E\n    test 104 toNvector: (0.50004, 0.50004, 0.70705)  FAILED, KNOWN, expected (0.50004, 0.50004, 0.70705, -0.00)\n\n    test 105 intersection: 02.499372°N, 002.5°E\n\n    test 106 intersection1: 02.499372°N, 002.5°E\n    test 107 intersection2: 02.499372°S, 177.5°W\n\n    test 108 isenclosedBy: True\n    test 109 isenclosedBy*: True\n    test 110 isenclosedBy: True\n    test 111 isenclosedBy*: True\n\n    test 112 iswithin: False\n    test 113 iswithin: True\n\n    test 114 nearestOn: 51.0°N, 001.0°E\n    test 115 nearestOn: 50.987°N, 000.298°W\n    test 116 nearestOn: 51.0°N, 002.0°E\n    test 117 nearestOn: 50.995°N, 002.655°E\n    test 118 nearestOn: 51.0°N, 001.9°E\n    test 119 nearestOn: True\n    test 120 distanceTo: 42.712\n    test 121 nearestOn: 51.0°N, 002.0°E\n    test 122 nearestOn: True\n    test 123 nearestOn: 00.0°N, 000.0°E\n    test 124 nearestOn: True\n    test 125 nearestOn: 00.0°N, 020.0°E\n    test 126 nearestOn: True\n    test 127 nearestOn: 02.0°N, 002.0°E\n    test 128 nearestOn: 02.0°N, 002.0°E\n\n    test 129 neareston6: (LatLon(45°00′00.0″N, 001°00′00.0″E), 4773243.784965, 0.0, 1, LatLon(45°00′00.0″N, 001°00′00.0″E), LatLon(45°00′00.0″N, 001°00′00.0″E))\n    test 130 neareston6: (LatLon(45°30′03.93″N, 002°00′00.0″E), 38968.531578, 1.501091, 2, LatLon(45°00′00.0″N, 002°00′00.0″E), LatLon(46°00′00.0″N, 002°00′00.0″E))\n\n    test 131 BasseC: 47.3038°N, 002.5721°W\n    test 132 BasseH: 47.311067°N, 002.528617°W\n    test 133 triangulate: 47.323667°N, 002.568501°W\n    test 134 triangulate: True\n\n    test 135 trilaterate: 37.419078°N, 121.960579°W\n    test 136 trilaterate: True\n    test 137 trilaterate: 08.068912°S, 034.888699°W\n    test 138 trilaterate: True\n    test 139 trilaterate: 08.068912°S, 034.888695°W  FAILED, KNOWN, expected 08.068912°S, 034.888699°W\n    test 140 trilaterate: True\n    test 141 trilaterate: 42.67456065°N, 002.49539502°E\n    test 142 trilaterate: distance1 (5110), distance2 (5110), distance3 (5110), point1 (LatLon(42°41′19.82″N, 002°26′19.89″E)), point2 (LatLon(42°38′07.52″N, 002°31′21.25″E)) or point3 (LatLon(42°38′43.44″N, 002°30′17.32″E)): no intersection (useZ=False, wrap=False, z=-8.13526e-05)\n\n    testNvector(pygeodesy.sphericalNvector, 25.05.27)\n    test 143 sumOf: Nvector\n    test 144 ecef.x, .y, .z: 3185744.91853, 3185744.91853, 4504643.3148\n    test 145 ecef.lat, .lon: 44.995674, 45.0\n    test 146 ecef.height: -0.0\n    test 147 ecef.M: -0.707106781, -0.499962243, 0.500037754, 0.707106781, -0.499962243, 0.500037754, 0.0, 0.707160174, 0.707053385\n    test 148 nearestOn: (0.0, 0.0, 0.0)\n    test 149 nearestOn: True\n    test 150 nearestOn: (100.0, 100.0, 100.0)\n    test 151 nearestOn: True\n    test 152 iscolinearWith: False\n    test 153 iscolinearWith: True\n    test 154 nearestOn: (0.0, 0.0, 0.0)\n    test 155 nearestOn: True\n    test 156 nearestOn: (100.0, 100.0, 100.0)\n    test 157 nearestOn: True\n    test 158 iscolinearWith: False\n    test 159 iscolinearWith: True\n\n    testNvectorBase(pygeodesy.nvectorBase, 25.08.18)\n    test 160 sumOf: Vector4Tuple\n    test 161 ecef.x, .y, .z: 3185744.91853, 3185744.91853, 4504643.3148\n    test 162 ecef.lat, .lon: 44.995674, 45.0\n    test 163 ecef.height: -0.0\n    test 164 ecef.M: -0.707106781, -0.499962243, 0.500037754, 0.707106781, -0.499962243, 0.500037754, 0.0, 0.707160174, 0.707053385\n    test 165 nearestOn: (0.0, 0.0, 0.0)\n    test 166 nearestOn: True\n    test 167 nearestOn: (100.0, 100.0, 100.0)\n    test 168 nearestOn: True\n    test 169 iscolinearWith: False\n    test 170 iscolinearWith: True\n    test 171 nearestOn: (0.0, 0.0, 0.0)\n    test 172 nearestOn: True\n    test 173 nearestOn: (100.0, 100.0, 100.0)\n    test 174 nearestOn: True\n    test 175 iscolinearWith: False\n    test 176 iscolinearWith: True\n\n    testNvectorBase(pygeodesy.nvectorBase, 25.08.18)\n    test 177 sumOf: Vector4Tuple\n    test 178 ecef.x, .y, .z: 3194659.54086, 3194659.54086, 4487008.4122\n    test 179 ecef.lat, .lon: 44.995674, 45.0\n    test 180 ecef.height: -0.0\n    test 181 ecef.M: -0.707106781, -0.499962243, 0.500037754, 0.707106781, -0.499962243, 0.500037754, 0.0, 0.707160174, 0.707053385\n    test 182 nearestOn: (0.0, 0.0, 0.0)\n    test 183 nearestOn: True\n    test 184 nearestOn: (100.0, 100.0, 100.0)\n    test 185 nearestOn: True\n    test 186 iscolinearWith: False\n    test 187 iscolinearWith: True\n    test 188 nearestOn: (0.0, 0.0, 0.0)\n    test 189 nearestOn: True\n    test 190 nearestOn: (100.0, 100.0, 100.0)\n    test 191 nearestOn: True\n    test 192 iscolinearWith: False\n    test 193 iscolinearWith: True\n\n    testCartesian(pygeodesy.sphericalNvector, 25.05.27)\n\n    14 tests skipped (14): No module named 'numpy': required by vector2d._numpy\n\n    testCartesian(pygeodesy.sphericalTrigonometry, 25.08.31)\n\n    14 tests skipped (28): No module named 'numpy': required by vector2d._numpy\n\n    testCartesian(pygeodesy.ellipsoidalNvector, 25.05.12)\n\n    14 tests skipped (42): No module named 'numpy': required by vector2d._numpy\n\n    testCartesian(pygeodesy.ellipsoidalVincenty, 25.05.26)\n\n    14 tests skipped (56): No module named 'numpy': required by vector2d._numpy\n\n    testCartesian(pygeodesy.ellipsoidalKarney, 25.05.27)\n\n    14 tests skipped (70): No module named 'numpy': required by vector2d._numpy\n\n    testCartesian(pygeodesy.ellipsoidalExact, 25.08.28)\n\n    14 tests skipped (84): No module named 'numpy': required by vector2d._numpy\n\n    testCartesianBase(pygeodesy.cartesianBase, 26.01.06)\n\n    14 tests skipped (98): No module named 'numpy': required by vector2d._numpy\n\n    testNvectorBase(pygeodesy.nvectorBase, 25.08.18)\n\n    14 tests skipped (112): No module named 'numpy': required by vector2d._numpy\n\n    testVector3d(pygeodesy.vector2d, 26.02.27)\n\n    14 tests skipped (126): No module named 'numpy': required by vector2d._numpy\n\n    testTrilaterate2d2(pygeodesy.vector2d, 26.02.27)\n    test 194 trilaterate2d2: (2.0, 3.0)\n    test 195 trilaterate2d2: 'delta (6.39335377062e-06), radius1 (1.0), distance (1.00000639335) and trilaterate2d2(x=1.999994, y=3.000006)': exceeds eps (2.22045e-16)\n    test 196 trilaterate2d2: (-500.0, 250.0)\n    test 197 meeus2: 2.236, 3.0, 2.0, 0.0\n    test 198 meeus2: (3.0, 2.0, 0)\n    test 199 circum3: 2.2361\n    test 200 circum3: (3.0, 2.0, 0)\n    test 201 circum3: None\n\n    7 tests skipped (133): No module named 'numpy': required by vector2d._numpy\n\n    testTrilaterate3d2(pygeodesy.vector2d, 26.02.27)\n\n    18 tests skipped (151): No module named 'numpy': required by vector2d._numpy\n\n    testIntersection3d3(pygeodesy.vector3d, 25.05.07)\n    test 202 (30, 17): (Vector3d(30.30584, 16.75258, 0.0), 0, 0)\n    test 203 (-1,  3): (Vector3d(-1.0429, 2.92225, 0.0), -1, -2)\n    test 204 (65, 32): (Vector3d(64.86667, 32.0, 0.0), 1, -2)\n    test 205 (-2, 17): <class 'pygeodesy.errors.IntersectionError'>\n    test 206 (49, 25): (Vector3d(49.0, 25.0, 0.0), 0, 0)\n\n    test 207 at 0: (0.0, 50.0, 0.0)\n    test 208 at 3: (2.6168, 49.93148, 0.0)\n    test 209 at 6: (5.22642, 49.72609, 0.0)\n    test 210 at 9: (7.82172, 49.38442, 0.0)\n    test 211 at 12: (10.39558, 48.90738, 0.0)\n    test 212 at 15: (12.94095, 48.29629, 0.0)\n    test 213 at 18: (15.45085, 47.55283, 0.0)\n    test 214 at 21: (17.9184, 46.67902, 0.0)\n    test 215 at 24: (20.33683, 45.67727, 0.0)\n    test 216 at 27: (22.69952, 44.55033, 0.0)\n    test 217 at 30: (25.0, 43.30127, 0.0)\n    test 218 at 33: (27.23195, 41.93353, 0.0)\n    test 219 at 36: (29.38926, 40.45085, 0.0)\n    test 220 at 39: (31.46602, 38.8573, 0.0)\n    test 221 at 42: (33.45653, 37.15724, 0.0)\n    test 222 at 45: (35.35534, 35.35534, 0.0)\n    test 223 at 48: (37.15724, 33.45653, 0.0)\n    test 224 at 51: (38.8573, 31.46602, 0.0)\n    test 225 at 54: (40.45085, 29.38926, 0.0)\n    test 226 at 57: (41.93353, 27.23195, 0.0)\n    test 227 at 60: (43.30127, 25.0, 0.0)\n    test 228 at 63: (44.55033, 22.69952, 0.0)\n    test 229 at 66: (45.67727, 20.33683, 0.0)\n    test 230 at 69: (46.67902, 17.9184, 0.0)\n    test 231 at 72: (47.55283, 15.45085, 0.0)\n    test 232 at 75: (48.29629, 12.94095, 0.0)\n    test 233 at 78: (48.90738, 10.39558, 0.0)\n    test 234 at 81: (49.38442, 7.82172, 0.0)\n    test 235 at 84: (49.72609, 5.22642, 0.0)\n    test 236 at 87: (49.93148, 2.6168, 0.0)\n    test 237 at 90: (50.0, 0.0, 0.0)\n    test 238 at 93: (49.93148, -2.6168, 0.0)\n    test 239 at 96: (49.72609, -5.22642, 0.0)\n    test 240 at 99: (49.38442, -7.82172, 0.0)\n    test 241 at 102: (48.90738, -10.39558, 0.0)\n    test 242 at 105: (48.29629, -12.94095, 0.0)\n    test 243 at 108: (47.55283, -15.45085, 0.0)\n    test 244 at 111: (46.67902, -17.9184, 0.0)\n    test 245 at 114: (45.67727, -20.33683, 0.0)\n    test 246 at 117: (44.55033, -22.69952, 0.0)\n    test 247 at 120: (43.30127, -25.0, 0.0)\n    test 248 at 123: (41.93353, -27.23195, 0.0)\n    test 249 at 126: (40.45085, -29.38926, 0.0)\n    test 250 at 129: (38.8573, -31.46602, 0.0)\n    test 251 at 132: (37.15724, -33.45653, 0.0)\n    test 252 at 135: (35.35534, -35.35534, 0.0)\n    test 253 at 138: (33.45653, -37.15724, 0.0)\n    test 254 at 141: (31.46602, -38.8573, 0.0)\n    test 255 at 144: (29.38926, -40.45085, 0.0)\n    test 256 at 147: (27.23195, -41.93353, 0.0)\n    test 257 at 150: (25.0, -43.30127, 0.0)\n    test 258 at 153: (22.69952, -44.55033, 0.0)\n    test 259 at 156: (20.33683, -45.67727, 0.0)\n    test 260 at 159: (17.9184, -46.67902, 0.0)\n    test 261 at 162: (15.45085, -47.55283, 0.0)\n    test 262 at 165: (12.94095, -48.29629, 0.0)\n    test 263 at 168: (10.39558, -48.90738, 0.0)\n    test 264 at 171: (7.82172, -49.38442, 0.0)\n    test 265 at 174: (5.22642, -49.72609, 0.0)\n    test 266 at 177: (2.6168, -49.93148, 0.0)\n    test 267 at 180: (0.0, -50.0, 0.0)\n    test 268 at 183: (-2.6168, -49.93148, 0.0)\n    test 269 at 186: (-5.22642, -49.72609, 0.0)\n    test 270 at 189: (-7.82172, -49.38442, 0.0)\n    test 271 at 192: (-10.39558, -48.90738, 0.0)\n    test 272 at 195: (-12.94095, -48.29629, 0.0)\n    test 273 at 198: (-15.45085, -47.55283, 0.0)\n    test 274 at 201: (-17.9184, -46.67902, 0.0)\n    test 275 at 204: (-20.33683, -45.67727, 0.0)\n    test 276 at 207: (-22.69952, -44.55033, 0.0)\n    test 277 at 210: (-25.0, -43.30127, 0.0)\n    test 278 at 213: (-27.23195, -41.93353, 0.0)\n    test 279 at 216: (-29.38926, -40.45085, 0.0)\n    test 280 at 219: (-31.46602, -38.8573, 0.0)\n    test 281 at 222: (-33.45653, -37.15724, 0.0)\n    test 282 at 225: (-35.35534, -35.35534, 0.0)\n    test 283 at 228: (-37.15724, -33.45653, 0.0)\n    test 284 at 231: (-38.8573, -31.46602, 0.0)\n    test 285 at 234: (-40.45085, -29.38926, 0.0)\n    test 286 at 237: (-41.93353, -27.23195, 0.0)\n    test 287 at 240: (-43.30127, -25.0, 0.0)\n    test 288 at 243: (-44.55033, -22.69952, 0.0)\n    test 289 at 246: (-45.67727, -20.33683, 0.0)\n    test 290 at 249: (-46.67902, -17.9184, 0.0)\n    test 291 at 252: (-47.55283, -15.45085, 0.0)\n    test 292 at 255: (-48.29629, -12.94095, 0.0)\n    test 293 at 258: (-48.90738, -10.39558, 0.0)\n    test 294 at 261: (-49.38442, -7.82172, 0.0)\n    test 295 at 264: (-49.72609, -5.22642, 0.0)\n    test 296 at 267: (-49.93148, -2.6168, 0.0)\n    test 297 at 270: (-50.0, 0.0, 0.0)\n    test 298 at 273: (-49.93148, 2.6168, 0.0)\n    test 299 at 276: (-49.72609, 5.22642, 0.0)\n    test 300 at 279: (-49.38442, 7.82172, 0.0)\n    test 301 at 282: (-48.90738, 10.39558, 0.0)\n    test 302 at 285: (-48.29629, 12.94095, 0.0)\n    test 303 at 288: (-47.55283, 15.45085, 0.0)\n    test 304 at 291: (-46.67902, 17.9184, 0.0)\n    test 305 at 294: (-45.67727, 20.33683, 0.0)\n    test 306 at 297: (-44.55033, 22.69952, 0.0)\n    test 307 at 300: (-43.30127, 25.0, 0.0)\n    test 308 at 303: (-41.93353, 27.23195, 0.0)\n    test 309 at 306: (-40.45085, 29.38926, 0.0)\n    test 310 at 309: (-38.8573, 31.46602, 0.0)\n    test 311 at 312: (-37.15724, 33.45653, 0.0)\n    test 312 at 315: (-35.35534, 35.35534, 0.0)\n    test 313 at 318: (-33.45653, 37.15724, 0.0)\n    test 314 at 321: (-31.46602, 38.8573, 0.0)\n    test 315 at 324: (-29.38926, 40.45085, 0.0)\n    test 316 at 327: (-27.23195, 41.93353, 0.0)\n    test 317 at 330: (-25.0, 43.30127, 0.0)\n    test 318 at 333: (-22.69952, 44.55033, 0.0)\n    test 319 at 336: (-20.33683, 45.67727, 0.0)\n    test 320 at 339: (-17.9184, 46.67902, 0.0)\n    test 321 at 342: (-15.45085, 47.55283, 0.0)\n    test 322 at 345: (-12.94095, 48.29629, 0.0)\n    test 323 at 348: (-10.39558, 48.90738, 0.0)\n    test 324 at 351: (-7.82172, 49.38442, 0.0)\n    test 325 at 354: (-5.22642, 49.72609, 0.0)\n    test 326 at 357: (-2.6168, 49.93148, 0.0)\n    test 327 at 360: (0.0, 50.0, 0.0)\n    test 328 max error: 2.4343737502e-13\n\n    44 of 328 testVectorial.py tests (13.4%) FAILED, incl. 7 KNOWN plus 37 DeprecationWarnings, 151 skipped (pygeodesy 26.3.26 Python 3.14.3 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 74.498 ms\nrunning /Library/Framewo....n3.14 -W default ~/PyGeodesy/test/testWebMercator.py\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.F_D from .dms by testWebMercator.py line 12\n# lazily imported pygeodesy.F_DMS from .dms by testWebMercator.py line 12\n# lazily imported pygeodesy.R_M from .constants by testWebMercator.py line 12\n# lazily imported pygeodesy.R_MA from .constants by testWebMercator.py line 12\n# lazily imported pygeodesy.Datums from .datums by testWebMercator.py line 12\n# lazily imported pygeodesy.fstr from .streprs by testWebMercator.py line 12\n# lazily imported pygeodesy.toWm from .webmercator by testWebMercator.py line 12\n# lazily imported pygeodesy.Wm from .webmercator by testWebMercator.py line 12\n# lazily imported pygeodesy.ellipsoidalVincenty by testWebMercator.py line 153\n# lazily imported pygeodesy.sphericalTrigonometry by testWebMercator.py line 153\n\n    testing testWebMercator.py 23.06.12 (module pygeodesy.webmercator 25.05.12) isLazy=3\n    test 1 toWm1: -626172.13571216 6887893.4928338\n    test 2 Wm1.y: 6887893.49283380\n    test 3 copy(<class 'type'>): (<class 'pygeodesy.webmercator.Wm'>, True)\n    test 4 Wm.copy(): (<class 'pygeodesy.webmercator.Wm'>, True)\n    test 5 Wm2: 448251.795 5411932.678\n    test 6 Wm2: 448252 5411933\n    test 7 Wm2: 448251.8 5411932.7\n    test 8 copy(<class 'type'>): (<class 'pygeodesy.webmercator.Wm'>, True)\n    test 9 Wm.copy(): (<class 'pygeodesy.webmercator.Wm'>, True)\n    test 10 Wm2.to2ll: 43.65321741, 4.02671439\n    test 11 Wm2.toLatLon: (43.653217, 4.026714, Datum(name='_Wm', ellipsoid=Ellipsoids._Wm, transform=Transforms.Identity))\n    test 12 Wm2.toLatLon: 43.653217°N, 004.026714°E\n    test 13 Wm2.toLatLon: 43°39′11.58″N, 004°01′36.17″E\n    test 14 toWm1: 448251.795 5411932.678\n    test 15 toWm2: 448252 5411933\n    test 16 toWm3: [x:448252, y:5411933, radius:6378137]\n    test 17 copy: 448251.795 5411932.678\n    test 18 parse: 448251.795 5411932.678\n    test 19 parse: 448251.795 5411932.678\n    test 20 parse: [x:448251.795, y:5411932.678, radius:6378137.0]\n    test 21 toWm4: 11549466 1505215\n    test 22 toWm4: 11549465.988273 1505214.929251\n    test 23 toWm4E: 11562388 1496994\n    test 24 toWm4E: 11562388.154378 1496993.698095\n    test 25 toWm: -11169056 2800000\n    test 26 toWm: -11169055.576258 2800000.003136\n    test 27 toWm5E: -11169056 2782367\n    test 28 toWm5E: -11169055.576258 2782367.05923\n    test 29 toWm5: -11156573 2796871\n    test 30 toWm5: -11156573.000041 2796870.713179\n    test 31 Wm6.toLatLon: 24.46358°N, 100.333333°W\n    test 32 Wm6.toLatLon: 24°27′48.89″N, 100°20′00.0″W\n    test 33 Wm6.toLatLonE: 24.299812°N, 100.333333°W\n    test 34 Wm6.toLatLonE: 24°17′59.32″N, 100°20′00.0″W\n    test 35 Wm7.toLatLon: 24.381787°N, 100.333333°W\n    test 36 Wm7.toLatLon: 24°22′54.43″N, 100°20′00.0″W\n    test 37 Wm7.toLatLonE: 24.218566°N, 100.333333°W\n    test 38 Wm7.toLatLonE: 24°13′06.84″N, 100°20′00.0″W\n    test 39 Wm8.toWm: -33878.893, 6693890.382, 6378137.0\n    test 40 Wm8.toWm: [x:-33878.893, y:6693890.382]\n    test 41 Wm8.toWm: -33878.893 6693890.382 6371008.771\n    test 42 Wm8.toWm.x: -33878.893\n    test 43 Wm8.toWm.y: 6693890.382\n    test 44 Wm8.toWm.latlon: 51.408596, -0.304339\n    test 45 Wm8.toWm.philam: 0.897249, -0.005312\n    test 46 Wm8.toLatLon: 51.408596053784°N, 000.304339270785°W\n    test 47 Wm8.toLatLon: 51°24′30.945794″N, 000°18′15.621375″W\n# imported pygeodesy.streprs into errors.py line 553\n    test 48 Wm9.toLatLon: TypeError\n\n    test 49 toWm(10.0000, 0, earth=R_MA).y: 1118889.97\n    test 50 toWm(20.0000, 0, earth=R_MA).y: 2273030.93\n    test 51 toWm(30.0000, 0, earth=R_MA).y: 3503549.84\n    test 52 toWm(40.0000, 0, earth=R_MA).y: 4865942.28\n    test 53 toWm(50.0000, 0, earth=R_MA).y: 6446275.84\n    test 54 toWm(60.0000, 0, earth=R_MA).y: 8399737.89\n\n    test 55 toWm(10.0003, 0, earth=R_MA).y: 1118921.37\n    test 56 toWm(20.0003, 0, earth=R_MA).y: 2273063.83\n    test 57 toWm(30.0003, 0, earth=R_MA).y: 3503585.55\n    test 58 toWm(40.0003, 0, earth=R_MA).y: 4865982.65\n    test 59 toWm(50.0003, 0, earth=R_MA).y: 6446323.95\n    test 60 toWm(60.0003, 0, earth=R_MA).y: 8399799.73\n\n    test 61 toWm(10.0000, 0, earth=WGS84).y: 1111475.10\n    test 62 toWm(20.0000, 0, earth=WGS84).y: 2258423.65\n    test 63 toWm(30.0000, 0, earth=WGS84).y: 3482189.09\n    test 64 toWm(40.0000, 0, earth=WGS84).y: 4838471.40\n    test 65 toWm(50.0000, 0, earth=WGS84).y: 6413524.59\n    test 66 toWm(60.0000, 0, earth=WGS84).y: 8362698.55\n\n    test 67 toWm(10.0003, 0, earth=WGS84).y: 1111506.30\n    test 68 toWm(20.0003, 0, earth=WGS84).y: 2258456.36\n    test 69 toWm(30.0003, 0, earth=WGS84).y: 3482224.61\n    test 70 toWm(40.0003, 0, earth=WGS84).y: 4838511.61\n    test 71 toWm(50.0003, 0, earth=WGS84).y: 6413572.57\n    test 72 toWm(60.0003, 0, earth=WGS84).y: 8362760.29\n\n    all 72 testWebMercator.py tests passed (pygeodesy 26.3.26 Python 3.14.3 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 1.239 ms\nrunning /Library/Framewo....n3.14 -W default ~/PyGeodesy/test/testWgrs.py\n# lazily imported pygeodesy.basics by bases.py line 28\n# lazily imported pygeodesy.DeprecationWarnings from .props by bases.py line 28\n# lazily imported pygeodesy.isint from .basics by bases.py line 28\n# lazily imported pygeodesy.isLazy from .lazily by bases.py line 28\n# lazily imported pygeodesy.issubclassof from .basics by bases.py line 28\n# lazily imported pygeodesy.iterNumpy2over from .iters by bases.py line 28\n# lazily imported pygeodesy.LazyImportError from .lazily by bases.py line 28\n# lazily imported pygeodesy.karney by bases.py line 28\n# lazily imported pygeodesy.NN from .interns by bases.py line 28\n# lazily imported pygeodesy.normDMS from .dms by bases.py line 28\n# lazily imported pygeodesy.pairs from .streprs by bases.py line 28\n# lazily imported pygeodesy.printf from .internals by bases.py line 28\n# lazily imported pygeodesy.property_RO from .props by bases.py line 28\n# lazily imported pygeodesy.typename from .internals by bases.py line 28\n# lazily imported pygeodesy.anstr from .streprs by bases.py line 32\n# lazily imported pygeodesy.clips from .basics by bases.py line 32\n# lazily imported pygeodesy.map2 from .basics by bases.py line 32\n# lazily imported pygeodesy.degDMS from .dms by testWgrs.py line 11\n# lazily imported pygeodesy.fstr from .streprs by testWgrs.py line 11\n# lazily imported pygeodesy.Georef from .wgrs by testWgrs.py line 11\n# lazily imported pygeodesy.S_DEG from .dms by testWgrs.py line 11\n# lazily imported pygeodesy.S_MIN from .dms by testWgrs.py line 11\n# lazily imported pygeodesy.ellipsoidalVincenty by testWgrs.py line 96\n\n    testing testWgrs.py 23.03.27 (module pygeodesy.wgrs 25.04.14) isLazy=3\n    test 1 Georef: 'NKLN2444638946'\n    test 2 Georef: Georef('NKLN2444638946')\n    test 3 Georef: NKLN2444638946\n    test 4 Georef.latlon: 57.64911, 10.40744\n    test 5 Georef.toLatLon: LatLon(57°38′56.8″N, 010°24′26.78″E)\n    test 6 codec3: NKLN2444638946\n    test 7 decode3: 57.64911, 10.40744, 6.0\n    test 8 encode: NKLN2444638946\n    test 9 Georef: 'NKLN2444638946H0'\n    test 10 Georef: Georef('NKLN2444638946H0')\n    test 11 Georef: NKLN2444638946H0\n    test 12 Georef.latlon: 57.64911, 10.40744\n    test 13 Georef.precision: 6\n    test 14 Georef.radius: None\n    test 15 Georef: 'GJPJ3424917166'\n    test 16 Georef: Georef('GJPJ3424917166')\n    test 17 Georef: GJPJ3424917166\n    test 18 Georef.latlon: 38.286108, -76.42917\n    test 19 Georef.toLatLon: LatLon(38°17′09.99″N, 076°25′45.01″W)\n    test 20 codec3: GJPJ3424917166\n    test 21 decode3: 38.286108, -76.429175, 6.0\n    test 22 encode: GJPJ3424917166\n    test 23 Georef: 'GJPJ3424917166H0'\n    test 24 Georef: Georef('GJPJ3424917166H0')\n    test 25 Georef: GJPJ3424917166H0\n    test 26 Georef.latlon: 38.286108, -76.42917\n    test 27 Georef.precision: 6\n    test 28 Georef.radius: None\n    test 29 Georef.3Tuple: 38.286108, -76.42917, 0.0\n    test 30 codec3: MKPG1204\n    test 31 decode3: 51.075, -1.7917, 3.0\n    test 32 encode: MKPG1204\n    test 33 codec3: WJKG1503\n    test 34 decode3: 36.0583, 129.2583, 3.0\n    test 35 encode: WJKG1503\n    test 36 codec5: GJPJ4103R5\n    test 37 decode5: 38.0583, -76.3083, 3.0, None, 9260.0\n    test 38 encode: GJPJ4103R5\n    test 39 codec5: GJPJ4103H17\n    test 40 decode5: 38.0583, -76.3083, 3.0, 5181.6, None\n    test 41 encode: GJPJ4103H17\n    test 42 codec5: GJPJ4103R5H17\n    test 43 decode5: 38.0583, -76.3083, 3.0, 5181.6, 9260.0\n    test 44 encode: GJPJ4103R5H17\n    test 45 precision: -1  FAILED, KNOWN, expected 0\n    test 46 resolution: 15°\n    test 47 precision: 0\n    test 48 resolution: 15°\n    test 49 precision: 1\n    test 50 resolution: 1°\n    test 51 precision: 2\n    test 52 resolution: 0.1′\n    test 53 precision: 3\n    test 54 resolution: 0.01′\n    test 55 precision: 4\n    test 56 resolution: 0.001′\n    test 57 precision: 5\n    test 58 resolution: 0.0001′\n    test 59 precision: 6\n    test 60 resolution: 0.00001′\n    test 61 precision: 7\n    test 62 resolution: 0.000001′\n    test 63 precision: 8\n    test 64 resolution: 0.0000001′\n    test 65 precision: 9\n    test 66 resolution: 0.00000001′\n    test 67 precision: 10\n    test 68 resolution: 0.000000001′\n    test 69 precision: 11\n    test 70 resolution: 0.0000000001′\n    test 71 precision: 12  FAILED, KNOWN, expected 11\n    test 72 resolution: 0.0000000001′\n\n    2 of 72 testWgrs.py tests (2.8%) FAILED, ALL KNOWN (pygeodesy 26.3.26 Python 3.14.3 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W  default) 905.037 us\n\ntest/run.py /Library/Framewo....n3.14 -W default: all 44412 tests OK (pygeodesy 26.3.26 Python 3.14.3 64bit arm64 geographiclib 2.1 Math 2 macOS 26.3.1 isLazy 3 -W default) 4:59.299 (148.387 tps)\n"
  }
]